summary refs log tree commit diff
diff options
context:
space:
mode:
authorVagrant Cascadian <vagrant@debian.org>2021-01-25 16:08:07 -0800
committerVagrant Cascadian <vagrant@debian.org>2021-01-25 16:08:35 -0800
commitd8cc2683d00d975dea85a0958584cae26ff2c31c (patch)
tree9f9a3340b617677fad6d62200687056efb711032
parent47a5442aa7dad8b1904483954e91640c3cac5e90 (diff)
parent59c03bd4f9aba7ccd90428508ad072f8db01b9ed (diff)
downloadguix-d8cc2683d00d975dea85a0958584cae26ff2c31c.tar.gz
Merge branch 'master' into wip-pinebook-pro
-rw-r--r--.dir-locals.el41
-rw-r--r--.gitignore5
-rw-r--r--.guix-authorizations13
-rw-r--r--HACKING2
-rw-r--r--Makefile.am102
-rw-r--r--NEWS154
-rw-r--r--README21
-rw-r--r--build-aux/build-self.scm8
-rw-r--r--build-aux/cuirass/hurd-manifest.scm74
-rw-r--r--build-aux/hydra/guix-modular.scm30
-rw-r--r--build-aux/pre-inst-env.in9
-rw-r--r--build-aux/update-guix-package.scm145
-rw-r--r--config-daemon.ac3
-rw-r--r--configure.ac82
-rw-r--r--doc/build.scm487
-rw-r--r--doc/contributing.texi159
-rw-r--r--doc/guix-cookbook.texi712
-rw-r--r--doc/guix.texi4760
-rw-r--r--doc/local.mk18
-rwxr-xr-xetc/committer.scm.in4
-rw-r--r--etc/completion/bash/guix55
-rwxr-xr-xetc/git/pre-push33
-rw-r--r--etc/guix-daemon.cil.in207
-rwxr-xr-xetc/guix-install.sh108
-rwxr-xr-xetc/indent-code.el3
-rw-r--r--etc/news.scm748
-rw-r--r--etc/openrc/guix-daemon.in28
-rw-r--r--etc/release-manifest.scm12
-rw-r--r--etc/snippets/scheme-mode/guix-package10
-rw-r--r--etc/snippets/text-mode/guix-commit-message-add-cl-package15
-rw-r--r--etc/snippets/text-mode/guix-commit-message-add-package6
-rw-r--r--etc/snippets/text-mode/guix-commit-message-update-package8
-rw-r--r--gnu/bootloader.scm125
-rw-r--r--gnu/bootloader/grub.scm281
-rw-r--r--gnu/bootloader/u-boot.scm69
-rw-r--r--gnu/build/bootloader.scm18
-rw-r--r--gnu/build/chromium-extension.scm192
-rw-r--r--gnu/build/file-systems.scm110
-rw-r--r--gnu/build/hurd-boot.scm5
-rw-r--r--gnu/build/image.scm36
-rw-r--r--gnu/build/install.scm47
-rw-r--r--gnu/build/linux-boot.scm67
-rw-r--r--gnu/build/linux-container.scm6
-rw-r--r--gnu/build/linux-initrd.scm16
-rw-r--r--gnu/build/linux-modules.scm115
-rw-r--r--gnu/build/secret-service.scm190
-rw-r--r--gnu/build/shepherd.scm36
-rw-r--r--gnu/build/vm.scm14
-rw-r--r--gnu/ci.scm133
-rw-r--r--gnu/image.scm29
-rw-r--r--gnu/installer.scm14
-rw-r--r--gnu/installer/connman.scm2
-rw-r--r--gnu/installer/final.scm135
-rw-r--r--gnu/installer/newt.scm8
-rw-r--r--gnu/installer/newt/ethernet.scm2
-rw-r--r--gnu/installer/newt/final.scm26
-rw-r--r--gnu/installer/newt/keymap.scm21
-rw-r--r--gnu/installer/newt/locale.scm2
-rw-r--r--gnu/installer/newt/network.scm2
-rw-r--r--gnu/installer/newt/page.scm11
-rw-r--r--gnu/installer/newt/parameters.scm4
-rw-r--r--gnu/installer/newt/partition.scm24
-rw-r--r--gnu/installer/newt/services.scm6
-rw-r--r--gnu/installer/newt/substitutes.scm43
-rw-r--r--gnu/installer/newt/welcome.scm8
-rw-r--r--gnu/installer/newt/wifi.scm3
-rw-r--r--gnu/installer/parted.scm119
-rw-r--r--gnu/installer/proxy.scm6
-rw-r--r--gnu/installer/record.scm3
-rw-r--r--gnu/installer/services.scm6
-rw-r--r--gnu/installer/steps.scm4
-rw-r--r--gnu/installer/substitutes.scm41
-rw-r--r--gnu/installer/tests.scm31
-rw-r--r--gnu/installer/utils.scm25
-rw-r--r--gnu/local.mk195
-rw-r--r--gnu/machine/ssh.scm28
-rw-r--r--gnu/packages/abduco.scm3
-rw-r--r--gnu/packages/accessibility.scm174
-rw-r--r--gnu/packages/acl.scm4
-rw-r--r--gnu/packages/ada.scm119
-rw-r--r--gnu/packages/admin.scm633
-rw-r--r--gnu/packages/agda.scm46
-rw-r--r--gnu/packages/aidc.scm45
-rw-r--r--gnu/packages/algebra.scm214
-rw-r--r--gnu/packages/android.scm51
-rw-r--r--gnu/packages/animation.scm97
-rw-r--r--gnu/packages/antivirus.scm4
-rw-r--r--gnu/packages/aspell.scm77
-rw-r--r--gnu/packages/assembly.scm61
-rw-r--r--gnu/packages/astronomy.scm121
-rw-r--r--gnu/packages/audio.scm874
-rw-r--r--gnu/packages/authentication.scm45
-rw-r--r--gnu/packages/autotools.scm84
-rw-r--r--gnu/packages/aux-files/guile-launcher.c88
-rw-r--r--gnu/packages/aux-files/guix.vim7
-rw-r--r--gnu/packages/aux-files/linux-libre/4.14-arm.conf4
-rw-r--r--gnu/packages/aux-files/linux-libre/4.14-i686.conf4
-rw-r--r--gnu/packages/aux-files/linux-libre/4.14-x86_64.conf4
-rw-r--r--gnu/packages/aux-files/linux-libre/4.19-arm.conf7
-rw-r--r--gnu/packages/aux-files/linux-libre/4.19-arm64.conf7
-rw-r--r--gnu/packages/aux-files/linux-libre/4.19-i686.conf7
-rw-r--r--gnu/packages/aux-files/linux-libre/4.19-x86_64.conf7
-rw-r--r--gnu/packages/aux-files/linux-libre/4.4-i686.conf4
-rw-r--r--gnu/packages/aux-files/linux-libre/4.4-x86_64.conf4
-rw-r--r--gnu/packages/aux-files/linux-libre/4.9-i686.conf4
-rw-r--r--gnu/packages/aux-files/linux-libre/4.9-x86_64.conf4
-rw-r--r--gnu/packages/aux-files/linux-libre/5.10-arm.conf9877
-rw-r--r--gnu/packages/aux-files/linux-libre/5.10-arm64.conf10037
-rw-r--r--gnu/packages/aux-files/linux-libre/5.10-i686.conf10732
-rw-r--r--gnu/packages/aux-files/linux-libre/5.10-x86_64.conf10726
-rw-r--r--gnu/packages/aux-files/linux-libre/5.4-arm.conf7
-rw-r--r--gnu/packages/aux-files/linux-libre/5.4-arm64.conf7
-rw-r--r--gnu/packages/aux-files/linux-libre/5.4-i686.conf7
-rw-r--r--gnu/packages/aux-files/linux-libre/5.4-x86_64.conf7
-rw-r--r--gnu/packages/aux-files/linux-libre/5.9-arm.conf (renamed from gnu/packages/aux-files/linux-libre/5.7-arm.conf)537
-rw-r--r--gnu/packages/aux-files/linux-libre/5.9-arm64.conf (renamed from gnu/packages/aux-files/linux-libre/5.7-arm64.conf)607
-rw-r--r--gnu/packages/aux-files/linux-libre/5.9-i686.conf (renamed from gnu/packages/aux-files/linux-libre/5.7-i686.conf)625
-rw-r--r--gnu/packages/aux-files/linux-libre/5.9-x86_64.conf (renamed from gnu/packages/aux-files/linux-libre/5.7-x86_64.conf)499
-rw-r--r--gnu/packages/aux-files/run-in-namespace.c78
-rw-r--r--gnu/packages/avahi.scm2
-rw-r--r--gnu/packages/avr.scm67
-rw-r--r--gnu/packages/axoloti.scm4
-rw-r--r--gnu/packages/backup.scm94
-rw-r--r--gnu/packages/base.scm51
-rw-r--r--gnu/packages/bash.scm43
-rw-r--r--gnu/packages/benchmark.scm105
-rw-r--r--gnu/packages/bioconductor.scm2865
-rw-r--r--gnu/packages/bioinformatics.scm2548
-rw-r--r--gnu/packages/bittorrent.scm94
-rw-r--r--gnu/packages/boost.scm12
-rw-r--r--gnu/packages/bootloaders.scm245
-rw-r--r--gnu/packages/browser-extensions.scm123
-rw-r--r--gnu/packages/build-tools.scm70
-rw-r--r--gnu/packages/busybox.scm18
-rw-r--r--gnu/packages/c.scm157
-rw-r--r--gnu/packages/calendar.scm108
-rw-r--r--gnu/packages/ccache.scm4
-rw-r--r--gnu/packages/cdrom.scm25
-rw-r--r--gnu/packages/certs.scm4
-rw-r--r--gnu/packages/check.scm208
-rw-r--r--gnu/packages/chez.scm45
-rw-r--r--gnu/packages/chicken.scm220
-rw-r--r--gnu/packages/chromium.scm295
-rw-r--r--gnu/packages/ci.scm38
-rw-r--r--gnu/packages/clojure.scm22
-rw-r--r--gnu/packages/cluster.scm6
-rw-r--r--gnu/packages/cmake.scm75
-rw-r--r--gnu/packages/code.scm276
-rw-r--r--gnu/packages/commencement.scm36
-rw-r--r--gnu/packages/compression.scm184
-rw-r--r--gnu/packages/compton.scm4
-rw-r--r--gnu/packages/conky.scm2
-rw-r--r--gnu/packages/coq.scm62
-rw-r--r--gnu/packages/cpp.scm238
-rw-r--r--gnu/packages/cran.scm4197
-rw-r--r--gnu/packages/crates-graphics.scm2386
-rw-r--r--gnu/packages/crates-gtk.scm1225
-rw-r--r--gnu/packages/crates-io.scm20695
-rw-r--r--gnu/packages/cross-base.scm21
-rw-r--r--gnu/packages/crypto.scm204
-rw-r--r--gnu/packages/cryptsetup.scm6
-rw-r--r--gnu/packages/cups.scm245
-rw-r--r--gnu/packages/curl.scm79
-rw-r--r--gnu/packages/cybersecurity.scm5
-rw-r--r--gnu/packages/databases.scm782
-rw-r--r--gnu/packages/datastructures.scm69
-rw-r--r--gnu/packages/dav.scm79
-rw-r--r--gnu/packages/dbm.scm8
-rw-r--r--gnu/packages/debian.scm126
-rw-r--r--gnu/packages/debug.scm91
-rw-r--r--gnu/packages/dico.scm6
-rw-r--r--gnu/packages/dictionaries.scm79
-rw-r--r--gnu/packages/diffoscope.scm44
-rw-r--r--gnu/packages/digest.scm36
-rw-r--r--gnu/packages/disk.scm153
-rw-r--r--gnu/packages/display-managers.scm5
-rw-r--r--gnu/packages/django.scm843
-rw-r--r--gnu/packages/djvu.scm409
-rw-r--r--gnu/packages/dlang.scm25
-rw-r--r--gnu/packages/dns.scm390
-rw-r--r--gnu/packages/docbook.scm175
-rw-r--r--gnu/packages/docker.scm105
-rw-r--r--gnu/packages/documentation.scm46
-rw-r--r--gnu/packages/dunst.scm4
-rw-r--r--gnu/packages/easyrpg.scm4
-rw-r--r--gnu/packages/ebook.scm166
-rw-r--r--gnu/packages/education.scm85
-rw-r--r--gnu/packages/efi.scm41
-rw-r--r--gnu/packages/electronics.scm17
-rw-r--r--gnu/packages/elf.scm9
-rw-r--r--gnu/packages/elixir.scm11
-rw-r--r--gnu/packages/emacs-xyz.scm4887
-rw-r--r--gnu/packages/emacs.scm254
-rw-r--r--gnu/packages/embedded.scm367
-rw-r--r--gnu/packages/emulators.scm281
-rw-r--r--gnu/packages/enchant.scm54
-rw-r--r--gnu/packages/engineering.scm560
-rw-r--r--gnu/packages/enlightenment.scm99
-rw-r--r--gnu/packages/entr.scm35
-rw-r--r--gnu/packages/erlang.scm15
-rw-r--r--gnu/packages/esolangs.scm96
-rw-r--r--gnu/packages/fcitx.scm65
-rw-r--r--gnu/packages/fcitx5.scm450
-rw-r--r--gnu/packages/file-systems.scm333
-rw-r--r--gnu/packages/finance.scm605
-rw-r--r--gnu/packages/firmware.scm6
-rw-r--r--gnu/packages/flashing-tools.scm4
-rw-r--r--gnu/packages/fonts.scm181
-rw-r--r--gnu/packages/fontutils.scm220
-rw-r--r--gnu/packages/fpga.scm99
-rw-r--r--gnu/packages/freedesktop.scm317
-rw-r--r--gnu/packages/freeipmi.scm6
-rw-r--r--gnu/packages/ftp.scm24
-rw-r--r--gnu/packages/fvwm.scm19
-rw-r--r--gnu/packages/game-development.scm207
-rw-r--r--gnu/packages/games.scm1184
-rw-r--r--gnu/packages/gcc.scm20
-rw-r--r--gnu/packages/gd.scm4
-rw-r--r--gnu/packages/gdb.scm43
-rw-r--r--gnu/packages/genimage.scm8
-rw-r--r--gnu/packages/geo.scm188
-rw-r--r--gnu/packages/gettext.scm23
-rw-r--r--gnu/packages/gimp.scm238
-rw-r--r--gnu/packages/gl.scm92
-rw-r--r--gnu/packages/glib.scm142
-rw-r--r--gnu/packages/gnome-xyz.scm431
-rw-r--r--gnu/packages/gnome.scm2168
-rw-r--r--gnu/packages/gnu-pw-mgr.scm14
-rw-r--r--gnu/packages/gnucash.scm41
-rw-r--r--gnu/packages/gnunet.scm4
-rw-r--r--gnu/packages/gnupg.scm163
-rw-r--r--gnu/packages/gnuzilla.scm533
-rw-r--r--gnu/packages/gobby.scm16
-rw-r--r--gnu/packages/golang.scm1247
-rw-r--r--gnu/packages/gpodder.scm17
-rw-r--r--gnu/packages/gps.scm59
-rw-r--r--gnu/packages/graph.scm97
-rw-r--r--gnu/packages/graphics.scm499
-rw-r--r--gnu/packages/graphviz.scm23
-rw-r--r--gnu/packages/groff.scm69
-rw-r--r--gnu/packages/groovy.scm1404
-rw-r--r--gnu/packages/gsasl.scm8
-rw-r--r--gnu/packages/gstreamer.scm704
-rw-r--r--gnu/packages/gtk.scm244
-rw-r--r--gnu/packages/guile-xyz.scm1134
-rw-r--r--gnu/packages/guile.scm97
-rw-r--r--gnu/packages/hardware.scm45
-rw-r--r--gnu/packages/haskell-apps.scm60
-rw-r--r--gnu/packages/haskell-check.scm39
-rw-r--r--gnu/packages/haskell-crypto.scm42
-rw-r--r--gnu/packages/haskell-web.scm354
-rw-r--r--gnu/packages/haskell-xyz.scm988
-rw-r--r--gnu/packages/haskell.scm78
-rw-r--r--gnu/packages/heads.scm34
-rw-r--r--gnu/packages/hexedit.scm6
-rw-r--r--gnu/packages/hunspell.scm81
-rw-r--r--gnu/packages/hurd.scm15
-rw-r--r--gnu/packages/hyperledger.scm2
-rw-r--r--gnu/packages/ibus.scm6
-rw-r--r--gnu/packages/icu4c.scm16
-rw-r--r--gnu/packages/idris.scm30
-rw-r--r--gnu/packages/idutils.scm2
-rw-r--r--gnu/packages/image-processing.scm249
-rw-r--r--gnu/packages/image-viewers.scm114
-rw-r--r--gnu/packages/image.scm309
-rw-r--r--gnu/packages/imagemagick.scm25
-rw-r--r--gnu/packages/inkscape.scm26
-rw-r--r--gnu/packages/ipfs.scm4
-rw-r--r--gnu/packages/irc.scm48
-rw-r--r--gnu/packages/iso-codes.scm16
-rw-r--r--gnu/packages/java-compression.scm4
-rw-r--r--gnu/packages/java.scm703
-rw-r--r--gnu/packages/javascript.scm243
-rw-r--r--gnu/packages/julia.scm127
-rw-r--r--gnu/packages/kde-frameworks.scm21
-rw-r--r--gnu/packages/kde-internet.scm14
-rw-r--r--gnu/packages/kde-multimedia.scm24
-rw-r--r--gnu/packages/kde-pim.scm44
-rw-r--r--gnu/packages/kde-plasma.scm118
-rw-r--r--gnu/packages/kde-systemtools.scm50
-rw-r--r--gnu/packages/kde-utils.scm44
-rw-r--r--gnu/packages/kde.scm362
-rw-r--r--gnu/packages/kodi.scm10
-rw-r--r--gnu/packages/language.scm188
-rw-r--r--gnu/packages/lean.scm7
-rw-r--r--gnu/packages/lego.scm58
-rw-r--r--gnu/packages/less.scm22
-rw-r--r--gnu/packages/libcanberra.scm3
-rw-r--r--gnu/packages/libedit.scm6
-rw-r--r--gnu/packages/libffi.scm40
-rw-r--r--gnu/packages/libphidget.scm5
-rw-r--r--gnu/packages/libreoffice.scm290
-rw-r--r--gnu/packages/libunwind.scm4
-rw-r--r--gnu/packages/libusb.scm111
-rw-r--r--gnu/packages/license.scm8
-rw-r--r--gnu/packages/lighting.scm86
-rw-r--r--gnu/packages/linphone.scm25
-rw-r--r--gnu/packages/linux.scm1125
-rw-r--r--gnu/packages/lisp-xyz.scm9010
-rw-r--r--gnu/packages/lisp.scm257
-rw-r--r--gnu/packages/llvm.scm455
-rw-r--r--gnu/packages/logging.scm35
-rw-r--r--gnu/packages/loko.scm86
-rw-r--r--gnu/packages/lsof.scm77
-rw-r--r--gnu/packages/lua.scm254
-rw-r--r--gnu/packages/lxde.scm4
-rw-r--r--gnu/packages/lxqt.scm39
-rw-r--r--gnu/packages/machine-learning.scm151
-rw-r--r--gnu/packages/mail.scm1130
-rw-r--r--gnu/packages/man.scm83
-rw-r--r--gnu/packages/markup.scm22
-rw-r--r--gnu/packages/mate.scm138
-rw-r--r--gnu/packages/maths.scm425
-rw-r--r--gnu/packages/matrix.scm6
-rw-r--r--gnu/packages/maven.scm35
-rw-r--r--gnu/packages/mcrypt.scm5
-rw-r--r--gnu/packages/mercury.scm10
-rw-r--r--gnu/packages/mes.scm28
-rw-r--r--gnu/packages/messaging.scm1126
-rw-r--r--gnu/packages/moe.scm6
-rw-r--r--gnu/packages/monitoring.scm50
-rw-r--r--gnu/packages/moreutils.scm7
-rw-r--r--gnu/packages/mp3.scm151
-rw-r--r--gnu/packages/mpd.scm188
-rw-r--r--gnu/packages/mpi.scm27
-rw-r--r--gnu/packages/mtools.scm4
-rw-r--r--gnu/packages/music.scm994
-rw-r--r--gnu/packages/musl.scm4
-rw-r--r--gnu/packages/nano.scm6
-rw-r--r--gnu/packages/ncurses.scm6
-rw-r--r--gnu/packages/networking.scm755
-rw-r--r--gnu/packages/nfs.scm8
-rw-r--r--gnu/packages/nicotine.scm78
-rw-r--r--gnu/packages/node.scm37
-rw-r--r--gnu/packages/nss.scm66
-rw-r--r--gnu/packages/ntp.scm11
-rw-r--r--gnu/packages/nvi.scm38
-rw-r--r--gnu/packages/ocaml.scm1404
-rw-r--r--gnu/packages/onc-rpc.scm17
-rw-r--r--gnu/packages/opencl.scm7
-rw-r--r--gnu/packages/openldap.scm4
-rw-r--r--gnu/packages/openstack.scm280
-rw-r--r--gnu/packages/package-management.scm576
-rw-r--r--gnu/packages/pantheon.scm4
-rw-r--r--gnu/packages/parallel.scm73
-rw-r--r--gnu/packages/pascal.scm279
-rw-r--r--gnu/packages/password-utils.scm42
-rw-r--r--gnu/packages/patches/alsa-modular-synth-fix-vocoder.patch522
-rw-r--r--gnu/packages/patches/audacity-add-include.patch15
-rw-r--r--gnu/packages/patches/audiofile-check-number-of-coefficients.patch (renamed from gnu/packages/patches/audiofile-Check-the-number-of-coefficients.patch)0
-rw-r--r--gnu/packages/patches/audiofile-division-by-zero.patch (renamed from gnu/packages/patches/audiofile-division-by-zero-BlockCodec-runPull.patch)0
-rw-r--r--gnu/packages/patches/audiofile-function-signature.patch (renamed from gnu/packages/patches/audiofile-signature-of-multiplyCheckOverflow.patch)0
-rw-r--r--gnu/packages/patches/audiofile-multiply-overflow.patch (renamed from gnu/packages/patches/audiofile-Fix-multiply-overflow-sfconvert.patch)0
-rw-r--r--gnu/packages/patches/audiofile-overflow-in-MSADPCM.patch (renamed from gnu/packages/patches/audiofile-Fix-overflow-in-MSADPCM-decodeSam.patch)0
-rw-r--r--gnu/packages/patches/aws-c-event-stream-cmake-prefix.patch13
-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/benchmark-unbundle-googletest.patch69
-rw-r--r--gnu/packages/patches/bitcoin-core-python-compat.patch28
-rw-r--r--gnu/packages/patches/bsd-games-2.17-64bit.patch43
-rw-r--r--gnu/packages/patches/bsd-games-add-configure-config.patch22
-rw-r--r--gnu/packages/patches/bsd-games-add-wrapper.patch251
-rw-r--r--gnu/packages/patches/bsd-games-bad-ntohl-cast.patch22
-rw-r--r--gnu/packages/patches/bsd-games-dont-install-empty-files.patch87
-rw-r--r--gnu/packages/patches/bsd-games-gamescreen.h.patch14
-rw-r--r--gnu/packages/patches/bsd-games-getline.patch194
-rw-r--r--gnu/packages/patches/bsd-games-null-check.patch24
-rw-r--r--gnu/packages/patches/bsd-games-number.c-and-test.patch183
-rw-r--r--gnu/packages/patches/bsd-games-prevent-name-collisions.patch13
-rw-r--r--gnu/packages/patches/bsd-games-stdio.h.patch14
-rw-r--r--gnu/packages/patches/busybox-1.31.1-fix-build-with-glibc-2.31.patch68
-rw-r--r--gnu/packages/patches/cl-asdf-config-directories.patch44
-rw-r--r--gnu/packages/patches/clamav-system-tomsfastmath.patch53
-rw-r--r--gnu/packages/patches/clang-11.0-libc-search-path.patch89
-rw-r--r--gnu/packages/patches/clisp-remove-failing-test.patch43
-rw-r--r--gnu/packages/patches/combinatorial-blas-awpm.patch218
-rw-r--r--gnu/packages/patches/dbxfs-remove-sentry-sdk.patch64
-rw-r--r--gnu/packages/patches/dconf-meson-0.52.patch19
-rw-r--r--gnu/packages/patches/dee-vapi.patch15
-rw-r--r--gnu/packages/patches/eigen-remove-openmp-error-counting.patch64
-rw-r--r--gnu/packages/patches/emacs-exec-path.patch22
-rw-r--r--gnu/packages/patches/emacs-ignore-empty-xim-styles.patch4
-rw-r--r--gnu/packages/patches/emacs-scheme-complete-scheme-r5rs-info.patch14
-rw-r--r--gnu/packages/patches/emacs-source-date-epoch.patch6
-rw-r--r--gnu/packages/patches/emacs27-exec-path.patch18
-rw-r--r--gnu/packages/patches/farstream-make.patch39
-rw-r--r--gnu/packages/patches/fpc-reproducibility.patch28
-rw-r--r--gnu/packages/patches/fplll-std-fenv.patch18
-rw-r--r--gnu/packages/patches/freebayes-devendor-deps.patch152
-rw-r--r--gnu/packages/patches/gajim-honour-GAJIM_PLUGIN_PATH.patch11
-rw-r--r--gnu/packages/patches/gcc-6-fix-buffer-size.patch15
-rw-r--r--gnu/packages/patches/gcc-6-fix-isl-includes.patch16
-rw-r--r--gnu/packages/patches/genimage-signedness.patch24
-rw-r--r--gnu/packages/patches/glib-appinfo-watch.patch92
-rw-r--r--gnu/packages/patches/gnash-fix-giflib-version.patch17
-rw-r--r--gnu/packages/patches/gnome-settings-daemon-gc.patch43
-rw-r--r--gnu/packages/patches/gpodder-disable-updater.patch18
-rw-r--r--gnu/packages/patches/gpsbabel-fix-i686-test.patch46
-rw-r--r--gnu/packages/patches/gpsbabel-minizip.patch13
-rw-r--r--gnu/packages/patches/gpsbabel-qstring.patch69
-rw-r--r--gnu/packages/patches/guile-2.2-skip-so-test.patch23
-rw-r--r--gnu/packages/patches/gvfs-add-support-for-libplist-2.2.patch34
-rw-r--r--gnu/packages/patches/icecat-makeicecat.patch14
-rw-r--r--gnu/packages/patches/icedtea-6-extend-hotspot-aarch64-support.patch1831
-rw-r--r--gnu/packages/patches/icedtea-6-hotspot-gcc-segfault-workaround.patch42
-rw-r--r--gnu/packages/patches/icedtea-7-hotspot-aarch64-use-c++98.patch33
-rw-r--r--gnu/packages/patches/icedtea-7-hotspot-gcc-segfault-workaround.patch45
-rw-r--r--gnu/packages/patches/idris-disable-test.patch19
-rw-r--r--gnu/packages/patches/ipxe-reproducible-geniso.patch77
-rw-r--r--gnu/packages/patches/jamvm-1.5.1-aarch64-support.patch572
-rw-r--r--gnu/packages/patches/jamvm-1.5.1-armv7-support.patch (renamed from gnu/packages/patches/jamvm-arm.patch)0
-rw-r--r--gnu/packages/patches/jamvm-2.0.0-aarch64-support.patch645
-rw-r--r--gnu/packages/patches/jamvm-2.0.0-opcode-guard.patch35
-rw-r--r--gnu/packages/patches/java-antlr4-Add-standalone-generator.patch52
-rw-r--r--gnu/packages/patches/java-antlr4-fix-code-too-large.java90
-rw-r--r--gnu/packages/patches/java-tunnelvisionlabs-antlr-code-too-large.patch87
-rw-r--r--gnu/packages/patches/konversation-Fix-build-with-Qt-5.11.patch24
-rw-r--r--gnu/packages/patches/kpackage-fix-KF5PackageMacros.cmake.patch25
-rw-r--r--gnu/packages/patches/ldns-drill-examples.patch85
-rw-r--r--gnu/packages/patches/libcanberra-wayland-crash.patch55
-rw-r--r--gnu/packages/patches/libcyaml-libyaml-compat.patch51
-rw-r--r--gnu/packages/patches/libdrm-realpath-virtio.patch42
-rw-r--r--gnu/packages/patches/libexpected-nofetch.patch27
-rw-r--r--gnu/packages/patches/libffi-3.3-powerpc-fixes.patch138
-rw-r--r--gnu/packages/patches/libffi-float128-powerpc64le.patch58
-rw-r--r--gnu/packages/patches/libmhash-hmac-fix-uaf.patch22
-rw-r--r--gnu/packages/patches/libofa-curl.diff15
-rw-r--r--gnu/packages/patches/libofa-ftbfs-1.diff45
-rw-r--r--gnu/packages/patches/libofa-ftbfs-2.diff27
-rw-r--r--gnu/packages/patches/libquicktime-ffmpeg.patch1309
-rw-r--r--gnu/packages/patches/libsndfile-CVE-2017-12562.patch97
-rw-r--r--gnu/packages/patches/libsndfile-CVE-2017-8361-8363-8365.patch77
-rw-r--r--gnu/packages/patches/libsndfile-CVE-2017-8362.patch61
-rw-r--r--gnu/packages/patches/libsndfile-armhf-type-checks.patch42
-rw-r--r--gnu/packages/patches/llvm-9-fix-bitcast-miscompilation.patch8
-rw-r--r--gnu/packages/patches/llvm-9-fix-lpad-miscompilation.patch8
-rw-r--r--gnu/packages/patches/llvm-9-fix-scev-miscompilation.patch20
-rw-r--r--gnu/packages/patches/lsh-fix-x11-forwarding.patch20
-rw-r--r--gnu/packages/patches/lsof-fatal-test-failures.patch58
-rw-r--r--gnu/packages/patches/mailutils-fix-uninitialized-variable.patch26
-rw-r--r--gnu/packages/patches/mariadb-client-test-32bit.patch37
-rw-r--r--gnu/packages/patches/minimap2-aarch64-support.patch52
-rw-r--r--gnu/packages/patches/multipath-tools-sans-systemd.patch83
-rw-r--r--gnu/packages/patches/mupdf-fix-linkage.patch27
-rw-r--r--gnu/packages/patches/mutt-store-references.patch13
-rw-r--r--gnu/packages/patches/netcdf-date-time.patch6
-rw-r--r--gnu/packages/patches/netcdf-tst_h_par.patch21
-rw-r--r--gnu/packages/patches/nginx-socket-cloexec.patch185
-rw-r--r--gnu/packages/patches/nss-3.56-pkgconfig.patch (renamed from gnu/packages/patches/nss-pkgconfig.patch)11
-rw-r--r--gnu/packages/patches/oath-toolkit-glibc-compat.patch90
-rw-r--r--gnu/packages/patches/ocaml-bisect-fix-camlp4-in-another-directory.patch283
-rw-r--r--gnu/packages/patches/ocaml-cairo2-caml_ba_array-fix.patch68
-rw-r--r--gnu/packages/patches/ola-readdir-r.patch62
-rw-r--r--gnu/packages/patches/opencv-fix-build-of-grfmt_jpeg2000.cpp.patch39
-rw-r--r--gnu/packages/patches/openocd-nrf52.patch827
-rw-r--r--gnu/packages/patches/opensles-add-license-file.patch45
-rw-r--r--gnu/packages/patches/openssh-fix-ssh-copy-id.patch38
-rw-r--r--gnu/packages/patches/pam-mount-luks2-support.patch51
-rw-r--r--gnu/packages/patches/pciutils-hurd-fix.patch23
-rw-r--r--gnu/packages/patches/perl-www-curl-fix-struct-void.patch24
-rw-r--r--gnu/packages/patches/perl-www-curl-remove-symbol.patchbin1177 -> 984 bytes
-rw-r--r--gnu/packages/patches/picard-fix-id3-rename-test.patch11
-rw-r--r--gnu/packages/patches/pidgin-libnm.patch60
-rw-r--r--gnu/packages/patches/pidgin-vv-gst.patch48
-rw-r--r--gnu/packages/patches/plasma-framework-fix-KF5PlasmaMacros.cmake.patch25
-rw-r--r--gnu/packages/patches/podofo-cmake-3.12.patch19
-rw-r--r--gnu/packages/patches/pulseview-qt515-compat.patch145
-rw-r--r--gnu/packages/patches/purescript-relax-dependencies.patch28
-rw-r--r--gnu/packages/patches/python-3.9-fix-tests.patch370
-rw-r--r--gnu/packages/patches/python-aiohttp-3.6.2-no-warning-fail.patch34
-rw-r--r--gnu/packages/patches/python-cairocffi-dlopen-path.patch10
-rw-r--r--gnu/packages/patches/python-gst-fix-build-with-python-3.8.patch36
-rw-r--r--gnu/packages/patches/python-pydot-regression-test.patch79
-rw-r--r--gnu/packages/patches/python-robotframework-source-date-epoch.patch (renamed from gnu/packages/patches/python-robotframework-honor-source-date-epoch.patch)0
-rw-r--r--gnu/packages/patches/python-tinycss2-flake8-compat.patch36
-rw-r--r--gnu/packages/patches/python2-pygobject-2-deprecation.patch (renamed from gnu/packages/patches/python2-pygobject-2-gi-info-type-error-domain.patch)0
-rw-r--r--gnu/packages/patches/qemu-build-info-manual.patch139
-rw-r--r--gnu/packages/patches/r-httpuv-1.5.5-unvendor-libuv.patch59
-rw-r--r--gnu/packages/patches/rcs-5.10.0-no-stdin.patch57
-rw-r--r--gnu/packages/patches/rcs-5.9.4-noreturn.patch94
-rw-r--r--gnu/packages/patches/renpy-use-system-fribidi.patch52
-rw-r--r--gnu/packages/patches/rust-1.48-linker-locale.patch14
-rw-r--r--gnu/packages/patches/rust-ndarray-remove-blas-src-dep.patch36
-rw-r--r--gnu/packages/patches/samba-fix-fcntl-hint-detection.patch55
-rw-r--r--gnu/packages/patches/sbcl-clml-fix-types.patch280
-rw-r--r--gnu/packages/patches/sbcl-graph-asdf-definitions.patch70
-rw-r--r--gnu/packages/patches/scribus-1.5.5-poppler-0.86-build-fix.patch642
-rw-r--r--gnu/packages/patches/sdcc-disable-non-free-code.patch3664
-rw-r--r--gnu/packages/patches/seed-webkit.patch49
-rw-r--r--gnu/packages/patches/serf-python3.patch29
-rw-r--r--gnu/packages/patches/shakespeare-spl-fix-grammar.patch16
-rw-r--r--gnu/packages/patches/smalltalk-multiplication-overflow.patch121
-rw-r--r--gnu/packages/patches/sooperlooper-build-with-wx-30.patch179
-rw-r--r--gnu/packages/patches/sssd-system-directories.patch56
-rw-r--r--gnu/packages/patches/sunxi-tools-remove-sys-io.patch52
-rw-r--r--gnu/packages/patches/superlu-dist-awpm-grid.patch31
-rw-r--r--gnu/packages/patches/tipp10-disable-downloader.patch165
-rw-r--r--gnu/packages/patches/tipp10-qt5.patch69
-rw-r--r--gnu/packages/patches/tomb-fix-errors-on-open.patch25
-rw-r--r--gnu/packages/patches/transcode-ffmpeg.patch1408
-rw-r--r--gnu/packages/patches/transmission-honor-localedir.patch34
-rw-r--r--gnu/packages/patches/ttfautohint-source-date-epoch.patch70
-rw-r--r--gnu/packages/patches/u-boot-riscv64-fix-extlinux.patch6
-rw-r--r--gnu/packages/patches/ungoogled-chromium-extension-search-path.patch28
-rw-r--r--gnu/packages/patches/ungoogled-chromium-system-nspr.patch22
-rw-r--r--gnu/packages/patches/unison-fix-ocaml-4.08.patch81
-rw-r--r--gnu/packages/patches/unknown-horizons-python-3.8-distro.patch52
-rw-r--r--gnu/packages/patches/weasyprint-library-paths.patch43
-rw-r--r--gnu/packages/patches/webkitgtk-bind-all-fonts.patch26
-rw-r--r--gnu/packages/patches/wgetpaste-update-bpaste.patch27
-rw-r--r--gnu/packages/patches/xf86-video-geode-glibc-2.20.patch15
-rw-r--r--gnu/packages/patches/xf86-video-sis-xorg-compat.patch18
-rw-r--r--gnu/packages/patches/xmonad-dynamic-linking.patch16
-rw-r--r--gnu/packages/patches/xorg-server-CVE-2020-14347.patch33
-rw-r--r--gnu/packages/patches/yggdrasil-extra-config.patch86
-rw-r--r--gnu/packages/patchutils.scm73
-rw-r--r--gnu/packages/pciutils.scm19
-rw-r--r--gnu/packages/pdf.scm223
-rw-r--r--gnu/packages/perl-check.scm12
-rw-r--r--gnu/packages/perl-compression.scm16
-rw-r--r--gnu/packages/perl.scm252
-rw-r--r--gnu/packages/phabricator.scm66
-rw-r--r--gnu/packages/photo.scm156
-rw-r--r--gnu/packages/php.scm13
-rw-r--r--gnu/packages/piet.scm177
-rw-r--r--gnu/packages/plotutils.scm4
-rw-r--r--gnu/packages/popt.scm16
-rw-r--r--gnu/packages/pretty-print.scm43
-rw-r--r--gnu/packages/printers.scm70
-rw-r--r--gnu/packages/prolog.scm6
-rw-r--r--gnu/packages/protobuf.scm64
-rw-r--r--gnu/packages/pulseaudio.scm51
-rw-r--r--gnu/packages/purescript.scm7
-rw-r--r--gnu/packages/python-check.scm273
-rw-r--r--gnu/packages/python-compression.scm4
-rw-r--r--gnu/packages/python-crypto.scm260
-rw-r--r--gnu/packages/python-science.scm46
-rw-r--r--gnu/packages/python-web.scm1520
-rw-r--r--gnu/packages/python-xyz.scm3278
-rw-r--r--gnu/packages/python.scm68
-rw-r--r--gnu/packages/qt.scm273
-rw-r--r--gnu/packages/radio.scm73
-rw-r--r--gnu/packages/raspberry-pi.scm237
-rw-r--r--gnu/packages/rcm.scm5
-rw-r--r--gnu/packages/rdesktop.scm24
-rw-r--r--gnu/packages/rdf.scm42
-rw-r--r--gnu/packages/re2c.scm6
-rw-r--r--gnu/packages/regex.scm5
-rw-r--r--gnu/packages/rpc.scm11
-rw-r--r--gnu/packages/rsync.scm5
-rw-r--r--gnu/packages/ruby.scm243
-rw-r--r--gnu/packages/rust-apps.scm342
-rw-r--r--gnu/packages/rust.scm110
-rw-r--r--gnu/packages/sagemath.scm7
-rw-r--r--gnu/packages/samba.scm165
-rw-r--r--gnu/packages/scanner.scm11
-rw-r--r--gnu/packages/scheme.scm149
-rw-r--r--gnu/packages/scribus.scm33
-rw-r--r--gnu/packages/sdcc.scm70
-rw-r--r--gnu/packages/search.scm13
-rw-r--r--gnu/packages/security-token.scm47
-rw-r--r--gnu/packages/sequoia.scm92
-rw-r--r--gnu/packages/shells.scm25
-rw-r--r--gnu/packages/shellutils.scm47
-rw-r--r--gnu/packages/simulation.scm90
-rw-r--r--gnu/packages/skarnet.scm41
-rw-r--r--gnu/packages/skribilo.scm24
-rw-r--r--gnu/packages/smalltalk.scm52
-rw-r--r--gnu/packages/speech.scm68
-rw-r--r--gnu/packages/sphinx.scm90
-rw-r--r--gnu/packages/spice.scm13
-rw-r--r--gnu/packages/ssh.scm161
-rw-r--r--gnu/packages/sssd.scm10
-rw-r--r--gnu/packages/statistics.scm737
-rw-r--r--gnu/packages/stb.scm21
-rw-r--r--gnu/packages/storage.scm4
-rw-r--r--gnu/packages/suckless.scm4
-rw-r--r--gnu/packages/sync.scm19
-rw-r--r--gnu/packages/syncthing.scm3
-rw-r--r--gnu/packages/syndication.scm72
-rw-r--r--gnu/packages/task-management.scm68
-rw-r--r--gnu/packages/tbb.scm4
-rw-r--r--gnu/packages/telephony.scm8
-rw-r--r--gnu/packages/terminals.scm313
-rw-r--r--gnu/packages/tex.scm473
-rw-r--r--gnu/packages/text-editors.scm216
-rw-r--r--gnu/packages/textutils.scm93
-rw-r--r--gnu/packages/time.scm23
-rw-r--r--gnu/packages/tls.scm105
-rw-r--r--gnu/packages/tmux.scm11
-rw-r--r--gnu/packages/tor.scm18
-rw-r--r--gnu/packages/toys.scm110
-rw-r--r--gnu/packages/tryton.scm876
-rw-r--r--gnu/packages/tv.scm2
-rw-r--r--gnu/packages/uml.scm6
-rw-r--r--gnu/packages/upnp.scm56
-rw-r--r--gnu/packages/valgrind.scm23
-rw-r--r--gnu/packages/version-control.scm463
-rw-r--r--gnu/packages/video.scm1097
-rw-r--r--gnu/packages/vim.scm72
-rw-r--r--gnu/packages/virtualization.scm306
-rw-r--r--gnu/packages/visidata.scm40
-rw-r--r--gnu/packages/vlang.scm89
-rw-r--r--gnu/packages/vnc.scm86
-rw-r--r--gnu/packages/vpn.scm113
-rw-r--r--gnu/packages/vulkan.scm12
-rw-r--r--gnu/packages/web-browsers.scm421
-rw-r--r--gnu/packages/web.scm838
-rw-r--r--gnu/packages/webkit.scm143
-rw-r--r--gnu/packages/wget.scm27
-rw-r--r--gnu/packages/wine.scm89
-rw-r--r--gnu/packages/wm.scm506
-rw-r--r--gnu/packages/wv.scm20
-rw-r--r--gnu/packages/wxwidgets.scm16
-rw-r--r--gnu/packages/xdisorg.scm219
-rw-r--r--gnu/packages/xfce.scm323
-rw-r--r--gnu/packages/xiph.scm10
-rw-r--r--gnu/packages/xml.scm285
-rw-r--r--gnu/packages/xorg.scm135
-rw-r--r--gnu/packages/zile.scm6
-rw-r--r--gnu/services.scm15
-rw-r--r--gnu/services/admin.scm63
-rw-r--r--gnu/services/audio.scm39
-rw-r--r--gnu/services/avahi.scm4
-rw-r--r--gnu/services/base.scm353
-rw-r--r--gnu/services/certbot.scm11
-rw-r--r--gnu/services/cuirass.scm52
-rw-r--r--gnu/services/cups.scm13
-rw-r--r--gnu/services/databases.scm95
-rw-r--r--gnu/services/desktop.scm168
-rw-r--r--gnu/services/dict.scm2
-rw-r--r--gnu/services/dns.scm72
-rw-r--r--gnu/services/docker.scm31
-rw-r--r--gnu/services/ganeti.scm4
-rw-r--r--gnu/services/guix.scm449
-rw-r--r--gnu/services/linux.scm61
-rw-r--r--gnu/services/mail.scm203
-rw-r--r--gnu/services/mcron.scm33
-rw-r--r--gnu/services/messaging.scm12
-rw-r--r--gnu/services/monitoring.scm92
-rw-r--r--gnu/services/networking.scm191
-rw-r--r--gnu/services/nix.scm61
-rw-r--r--gnu/services/science.scm18
-rw-r--r--gnu/services/sddm.scm2
-rw-r--r--gnu/services/security-token.scm3
-rw-r--r--gnu/services/shepherd.scm27
-rw-r--r--gnu/services/ssh.scm131
-rw-r--r--gnu/services/syncthing.scm89
-rw-r--r--gnu/services/version-control.scm9
-rw-r--r--gnu/services/virtualization.scm252
-rw-r--r--gnu/services/vpn.scm6
-rw-r--r--gnu/services/web.scm169
-rw-r--r--gnu/services/xorg.scm3
-rw-r--r--gnu/system.scm184
-rw-r--r--gnu/system/examples/bare-hurd.tmpl11
-rw-r--r--gnu/system/examples/lightweight-desktop.tmpl5
-rw-r--r--gnu/system/examples/yggdrasil.tmpl60
-rw-r--r--gnu/system/file-systems.scm8
-rw-r--r--gnu/system/hurd.scm25
-rw-r--r--gnu/system/image.scm197
-rw-r--r--gnu/system/images/hurd.scm32
-rw-r--r--gnu/system/images/novena.scm61
-rw-r--r--gnu/system/images/pine64.scm66
-rw-r--r--gnu/system/images/pinebook-pro.scm68
-rw-r--r--gnu/system/install.scm115
-rw-r--r--gnu/system/linux-container.scm66
-rw-r--r--gnu/system/linux-initrd.scm99
-rw-r--r--gnu/system/mapped-devices.scm204
-rw-r--r--gnu/system/shadow.scm46
-rw-r--r--gnu/system/uuid.scm8
-rw-r--r--gnu/system/vm.scm95
-rw-r--r--gnu/tests/audio.scm13
-rw-r--r--gnu/tests/base.scm13
-rw-r--r--gnu/tests/databases.scm49
-rw-r--r--gnu/tests/docker.scm11
-rw-r--r--gnu/tests/guix.scm76
-rw-r--r--gnu/tests/install.scm263
-rw-r--r--gnu/tests/mail.scm3
-rw-r--r--gnu/tests/monitoring.scm4
-rw-r--r--gnu/tests/nfs.scm152
-rw-r--r--gnu/tests/reconfigure.scm4
-rw-r--r--gnu/tests/version-control.scm6
-rw-r--r--gnu/tests/virtualization.scm160
-rw-r--r--gnu/tests/web.scm4
-rw-r--r--guix/android-repo-download.scm156
-rw-r--r--guix/avahi.scm178
-rw-r--r--guix/build-system.scm35
-rw-r--r--guix/build-system/asdf.scm31
-rw-r--r--guix/build-system/chicken.scm132
-rw-r--r--guix/build-system/haskell.scm31
-rw-r--r--guix/build-system/linux-module.scm29
-rw-r--r--guix/build-system/ocaml.scm27
-rw-r--r--guix/build-system/r.scm2
-rw-r--r--guix/build/android-repo.scm75
-rw-r--r--guix/build/asdf-build-system.scm177
-rw-r--r--guix/build/cargo-build-system.scm25
-rw-r--r--guix/build/cargo-utils.scm5
-rw-r--r--guix/build/chicken-build-system.scm133
-rw-r--r--guix/build/download-nar.scm2
-rw-r--r--guix/build/go-build-system.scm13
-rw-r--r--guix/build/haskell-build-system.scm96
-rw-r--r--guix/build/hg.scm44
-rw-r--r--guix/build/lisp-utils.scm245
-rw-r--r--guix/build/maven-build-system.scm3
-rw-r--r--guix/build/maven/pom.scm12
-rw-r--r--guix/build/store-copy.scm133
-rw-r--r--guix/build/svn.scm38
-rw-r--r--guix/cache.scm9
-rw-r--r--guix/channels.scm17
-rw-r--r--guix/ci.scm11
-rw-r--r--guix/config.scm.in8
-rw-r--r--guix/cpio.scm33
-rw-r--r--guix/cve.scm13
-rw-r--r--guix/cvs-download.scm39
-rw-r--r--guix/d3.v3.js (renamed from d3.v3.js)0
-rw-r--r--guix/derivations.scm84
-rw-r--r--guix/describe.scm10
-rw-r--r--guix/download.scm35
-rw-r--r--guix/gexp.scm120
-rw-r--r--guix/git-download.scm33
-rw-r--r--guix/git.scm195
-rw-r--r--guix/glob.scm15
-rw-r--r--guix/gnu-maintenance.scm2
-rw-r--r--guix/graph.js (renamed from graph.js)0
-rw-r--r--guix/graph.scm10
-rw-r--r--guix/hg-download.scm75
-rw-r--r--guix/http-client.scm30
-rw-r--r--guix/import/cabal.scm2
-rw-r--r--guix/import/cpan.scm6
-rw-r--r--guix/import/cran.scm56
-rw-r--r--guix/import/crate.scm156
-rw-r--r--guix/import/elpa.scm240
-rw-r--r--guix/import/gem.scm13
-rw-r--r--guix/import/hackage.scm14
-rw-r--r--guix/import/launchpad.scm38
-rw-r--r--guix/import/opam.scm85
-rw-r--r--guix/import/print.scm14
-rw-r--r--guix/import/pypi.scm10
-rw-r--r--guix/import/stackage.scm32
-rw-r--r--guix/import/texlive.scm28
-rw-r--r--guix/import/utils.scm106
-rw-r--r--guix/inferior.scm11
-rw-r--r--guix/json.scm83
-rw-r--r--guix/licenses.scm17
-rw-r--r--guix/lint.scm125
-rw-r--r--guix/lzlib.scm709
-rw-r--r--guix/man-db.scm2
-rw-r--r--guix/modules.scm4
-rw-r--r--guix/monads.scm15
-rw-r--r--guix/nar.scm23
-rw-r--r--guix/narinfo.scm326
-rw-r--r--guix/openpgp.scm8
-rw-r--r--guix/packages.scm228
-rw-r--r--guix/profiles.scm188
-rw-r--r--guix/progress.scm76
-rw-r--r--guix/repl.scm8
-rw-r--r--guix/scripts.scm64
-rw-r--r--guix/scripts/archive.scm18
-rw-r--r--guix/scripts/authenticate.scm226
-rw-r--r--guix/scripts/build.scm386
-rw-r--r--guix/scripts/challenge.scm7
-rw-r--r--guix/scripts/container.scm6
-rw-r--r--guix/scripts/copy.scm13
-rw-r--r--guix/scripts/deploy.scm36
-rw-r--r--guix/scripts/describe.scm3
-rw-r--r--guix/scripts/discover.scm142
-rw-r--r--guix/scripts/download.scm5
-rw-r--r--guix/scripts/edit.scm7
-rw-r--r--guix/scripts/environment.scm34
-rw-r--r--guix/scripts/gc.scm4
-rw-r--r--guix/scripts/git.scm6
-rw-r--r--guix/scripts/graph.scm18
-rw-r--r--guix/scripts/hash.scm10
-rw-r--r--guix/scripts/import.scm8
-rw-r--r--guix/scripts/import/cran.scm46
-rw-r--r--guix/scripts/import/crate.scm15
-rw-r--r--guix/scripts/import/elpa.scm19
-rw-r--r--guix/scripts/import/hackage.scm2
-rw-r--r--guix/scripts/import/opam.scm10
-rw-r--r--guix/scripts/install.scm7
-rw-r--r--guix/scripts/lint.scm123
-rw-r--r--guix/scripts/offload.scm130
-rw-r--r--guix/scripts/pack.scm358
-rw-r--r--guix/scripts/package.scm50
-rw-r--r--guix/scripts/perform-download.scm18
-rw-r--r--guix/scripts/processes.scm156
-rw-r--r--guix/scripts/publish.scm259
-rw-r--r--guix/scripts/pull.scm14
-rw-r--r--guix/scripts/refresh.scm9
-rw-r--r--guix/scripts/remove.scm6
-rw-r--r--guix/scripts/repl.scm18
-rw-r--r--guix/scripts/search.scm6
-rw-r--r--guix/scripts/show.scm4
-rw-r--r--guix/scripts/size.scm7
-rwxr-xr-xguix/scripts/substitute.scm717
-rw-r--r--guix/scripts/system.scm328
-rw-r--r--guix/scripts/system/reconfigure.scm51
-rw-r--r--guix/scripts/time-machine.scm4
-rw-r--r--guix/scripts/upgrade.scm26
-rw-r--r--guix/scripts/weather.scm41
-rw-r--r--guix/self.scm156
-rw-r--r--guix/serialization.scm58
-rw-r--r--guix/ssh.scm167
-rw-r--r--guix/status.scm4
-rw-r--r--guix/store.scm57
-rw-r--r--guix/store/database.scm98
-rw-r--r--guix/store/deduplication.scm129
-rw-r--r--guix/svn-download.scm5
-rw-r--r--guix/swh.scm4
-rw-r--r--guix/tests.scm10
-rw-r--r--guix/transformations.scm738
-rw-r--r--guix/ui.scm272
-rw-r--r--guix/upstream.scm44
-rw-r--r--guix/utils.scm53
-rw-r--r--guix/zlib.scm241
-rw-r--r--m4/guix.m491
-rw-r--r--nix/libstore/build.cc386
-rw-r--r--nix/libstore/local-store.cc287
-rw-r--r--nix/libstore/local-store.hh25
-rw-r--r--nix/libutil/util.cc88
-rw-r--r--nix/libutil/util.hh28
-rw-r--r--nix/local.mk18
-rw-r--r--nix/nix-daemon/guix-daemon.cc21
-rw-r--r--po/doc/guix-cookbook.de.po2624
-rw-r--r--po/doc/guix-manual.de.po29544
-rw-r--r--po/doc/guix-manual.es.po31135
-rw-r--r--po/doc/guix-manual.fr.po34167
-rw-r--r--po/doc/guix-manual.ru.po29428
-rw-r--r--po/doc/local.mk6
-rw-r--r--po/guix/Makevars5
-rw-r--r--po/guix/POTFILES.in24
-rw-r--r--po/guix/de.po2501
-rw-r--r--po/guix/eo.po5799
-rw-r--r--po/guix/es.po2711
-rw-r--r--po/guix/fr.po2476
-rw-r--r--po/guix/pt_BR.po1952
-rw-r--r--po/guix/sv.po3597
-rw-r--r--po/guix/ta.po3429
-rw-r--r--po/packages/Makevars4
-rw-r--r--po/packages/de.po11545
-rw-r--r--po/packages/eo.po28774
-rw-r--r--po/packages/es.po26981
-rw-r--r--po/packages/fr.po12421
-rw-r--r--scripts/guix.in2
-rw-r--r--tests/base32.scm31
-rw-r--r--tests/boot-parameters.scm299
-rw-r--r--tests/build-utils.scm4
-rw-r--r--tests/challenge.scm2
-rw-r--r--tests/channels.scm1
-rw-r--r--tests/containers.scm8
-rw-r--r--tests/crate.scm591
-rw-r--r--tests/cve-sample.json2
-rw-r--r--tests/elpa.scm3
-rw-r--r--tests/gexp.scm34
-rw-r--r--tests/glob.scm8
-rw-r--r--tests/graph.scm2
-rw-r--r--tests/guix-archive.sh13
-rw-r--r--tests/guix-authenticate.sh84
-rw-r--r--tests/guix-build-branch.sh3
-rw-r--r--tests/guix-build.sh66
-rw-r--r--tests/guix-daemon.sh2
-rw-r--r--tests/guix-download.sh12
-rw-r--r--tests/guix-environment-container.sh25
-rw-r--r--tests/guix-environment.sh16
-rw-r--r--tests/guix-gc.sh13
-rw-r--r--tests/guix-git-authenticate.sh5
-rw-r--r--tests/guix-graph.sh7
-rw-r--r--tests/guix-hash.sh15
-rw-r--r--tests/guix-lint.sh31
-rw-r--r--tests/guix-pack-relocatable.sh113
-rw-r--r--tests/guix-pack.sh3
-rw-r--r--tests/guix-package-aliases.sh20
-rw-r--r--tests/guix-package-net.sh9
-rw-r--r--tests/guix-package.sh66
-rw-r--r--tests/guix-repl.sh4
-rw-r--r--tests/guix-system.sh31
-rw-r--r--tests/import-utils.scm40
-rw-r--r--tests/inferior.scm34
-rw-r--r--tests/lint.scm121
-rw-r--r--tests/lzlib.scm120
-rw-r--r--tests/nar.scm21
-rw-r--r--tests/networking.scm3
-rw-r--r--tests/offload.scm71
-rw-r--r--tests/opam.scm206
-rw-r--r--tests/openpgp.scm12
-rw-r--r--tests/packages.scm244
-rw-r--r--tests/profiles.scm38
-rw-r--r--tests/publish.scm132
-rw-r--r--tests/scripts-build.scm268
-rw-r--r--tests/store-database.scm40
-rw-r--r--tests/store-deduplication.scm20
-rw-r--r--tests/store.scm212
-rw-r--r--tests/substitute.scm159
-rw-r--r--tests/swh.scm39
-rw-r--r--tests/transformations.scm420
-rw-r--r--tests/utils.scm50
-rw-r--r--tests/zlib.scm62
897 files changed, 324104 insertions, 105630 deletions
diff --git a/.dir-locals.el b/.dir-locals.el
index 155255a770..8f07a08eb5 100644
--- a/.dir-locals.el
+++ b/.dir-locals.el
@@ -8,7 +8,38 @@
      ;; For use with 'bug-reference-prog-mode'.
      (bug-reference-url-format . "http://bugs.gnu.org/%s")
      (bug-reference-bug-regexp
-      . "<https?://\\(debbugs\\|bugs\\)\\.gnu\\.org/\\([0-9]+\\)>")))
+      . "<https?://\\(debbugs\\|bugs\\)\\.gnu\\.org/\\([0-9]+\\)>")
+
+     ;; Emacs-Guix
+     (eval . (setq-local guix-directory
+                         (locate-dominating-file default-directory
+                                                 ".dir-locals.el")))
+
+     ;; Geiser
+     ;; This allows automatically setting the `geiser-guile-load-path'
+     ;; variable when using various Guix checkouts (e.g., via git worktrees).
+     (eval . (let ((root-dir-unexpanded (locate-dominating-file
+                                         default-directory ".dir-locals.el")))
+               ;; While Guix should in theory always have a .dir-locals.el
+               ;; (we are reading this file, after all) there seems to be a
+               ;; strange problem where this code "escapes" to some other buffers,
+               ;; at least vc-mode.  See:
+               ;;   https://lists.gnu.org/archive/html/guix-devel/2020-11/msg00296.html
+               ;; Upstream report: <https://bugs.gnu.org/44698>
+               ;; Hence the following "when", which might otherwise be unnecessary;
+               ;; it prevents causing an error when root-dir-unexpanded is nil.
+               (when root-dir-unexpanded
+                 (let* ((root-dir (expand-file-name root-dir-unexpanded))
+                        ;; Workaround for bug https://issues.guix.gnu.org/43818.
+                        (root-dir* (directory-file-name root-dir)))
+
+                   (unless (boundp 'geiser-guile-load-path)
+                     (defvar geiser-guile-load-path '()))
+                   (make-local-variable 'geiser-guile-load-path)
+                   (require 'cl-lib)
+                   (cl-pushnew root-dir* geiser-guile-load-path
+                               :test #'string-equal)))))))
+
  (c-mode          . ((c-file-style . "gnu")))
  (scheme-mode
   .
@@ -37,9 +68,10 @@
    (eval . (put 'with-file-lock 'scheme-indent-function 1))
    (eval . (put 'with-file-lock/no-wait 'scheme-indent-function 1))
    (eval . (put 'with-profile-lock 'scheme-indent-function 1))
-   (eval . (put 'with-writable-file 'scheme-indent-function 1))
+   (eval . (put 'with-writable-file 'scheme-indent-function 2))
 
    (eval . (put 'package 'scheme-indent-function 0))
+   (eval . (put 'package/inherit 'scheme-indent-function 1))
    (eval . (put 'origin 'scheme-indent-function 0))
    (eval . (put 'build-system 'scheme-indent-function 0))
    (eval . (put 'bag 'scheme-indent-function 0))
@@ -89,9 +121,10 @@
    (eval . (put 'let-system 'scheme-indent-function 1))
 
    (eval . (put 'with-database 'scheme-indent-function 2))
-   (eval . (put 'call-with-transaction 'scheme-indent-function 2))
+   (eval . (put 'call-with-database 'scheme-indent-function 1))
+   (eval . (put 'call-with-transaction 'scheme-indent-function 1))
    (eval . (put 'with-statement 'scheme-indent-function 3))
-   (eval . (put 'call-with-retrying-transaction 'scheme-indent-function 2))
+   (eval . (put 'call-with-retrying-transaction 'scheme-indent-function 1))
    (eval . (put 'call-with-savepoint 'scheme-indent-function 1))
    (eval . (put 'call-with-retrying-savepoint 'scheme-indent-function 1))
 
diff --git a/.gitignore b/.gitignore
index f630444a0f..fc8a859336 100644
--- a/.gitignore
+++ b/.gitignore
@@ -74,6 +74,7 @@
 /etc/guix-publish.conf
 /etc/guix-publish.service
 /etc/init.d/guix-daemon
+/etc/openrc/guix-daemon
 /guix-daemon
 /guix/config.scm
 /libformat.a
@@ -139,9 +140,13 @@ Makefile
 Makefile.in
 config.cache
 stamp-h[0-9]
+.dirstamp
+.deps
 tmp
 /doc/os-config-lightweight-desktop.texi
 /nix/scripts/download
 /.version
 /doc/stamp-[0-9]
 /gnu/packages/bootstrap
+/gnu/packages/aux-files/guile-guile-launcher.o
+/guile
diff --git a/.guix-authorizations b/.guix-authorizations
index 7b3f2dfd1f..956bf351a7 100644
--- a/.guix-authorizations
+++ b/.guix-authorizations
@@ -1,5 +1,5 @@
-;; This is the list of OpenPGP keys currently authorized to sign commits in
-;; this repository.
+;; This file, which is best viewed as -*- Scheme -*-, lists the OpenPGP keys
+;; currently authorized to sign commits in this repository.
 
 (authorizations
  (version 0)
@@ -75,8 +75,12 @@
   (;; primary: "1BA4 08C5 8BF2 0EA7 3179  635A 865D C0A3 DED9 B5D0"
    "E31D 9DDE EBA5 4A14 8A20  4550 DA45 97F9 47B4 1025"
    (name "jlicht"))
+  ("8141 6036 E81A 5CF7 8F80  1071 ECFC 8398 8B4E 4B9F"
+   (name "jonsger"))
   ("83B6 703A DCCA 3B69 4BCE  2DA6 E6A5 EE3C 1946 7A0D"
    (name "kkebreau"))
+  ("ACC2 3BA0 59F7 CCF4 08F0  43AD 442A 84B8 C70E 2F87"
+   (name "leoprikler"))
   ("45E5 75FA 53EA 8BD6 1BCE  0B4E 3ADC 75F0 13D6 78F9"
    (name "leungbk"))
   (;; primary: "4F71 6F9A 8FA2 C80E F1B5  E1BA 5E35 F231 DE1A C5E0"
@@ -84,6 +88,8 @@
    (name "lfam"))
   ("2AE3 1395 932B E642 FC0E  D99C 9BED 6EDA 32E5 B0BC"
    (name "lsl88"))
+  ("8887 84C4 1459 ACCB 83E7  E84C 634C 6E89 79FA BEC2"
+   (name "m1gu3l"))
   ("CBF5 9755 CBE7 E7EF EF18  3FB1 DD40 9A15 D822 469D"
    (name "marusich"))
   ("BBB0 2DDF 2CEA F6A8 0D1D  E643 A2A0 6DF2 A33A 54FA"
@@ -101,6 +107,9 @@
    (name "ngz"))
   ("CEF4 CB91 4856 BA38 0A20  A7E2 3008 88CB 39C6 3817"
    (name "pelzflorian"))
+  (;; primary: "41CA 12EA DE0C F33F 6885  A58F 5719 6E37 E00B 77FD"
+   "72D5 3D81 8CB6 F4A1 7258  374C A8FC 9E44 7F4F 7D54"
+   (name "planglois"))
   (;; primary: "B68B DF22 73F9 DA0E 63C1  8A32 515B F416 9242 D600"
    "C699 ED09 E51B CE89 FD1D  A078 AAC7 E891 896B 568A"
    (name "pgarlick"))
diff --git a/HACKING b/HACKING
index aaa673fc93..9adef201c2 100644
--- a/HACKING
+++ b/HACKING
@@ -13,7 +13,7 @@ Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net>
 
 * Contributing
 
-See the manual for useful hacking informations, either by running
+See the manual for useful hacking information, either by running
 
   info -f doc/guix.info "Contributing"
 
diff --git a/Makefile.am b/Makefile.am
index 23027ebfd4..852e09ca56 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,5 +1,5 @@
 # GNU Guix --- Functional package management for GNU
-# Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
+# Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
 # Copyright © 2013 Andreas Enge <andreas@enge.fr>
 # Copyright © 2015, 2017 Alex Kost <alezost@gmail.com>
 # Copyright © 2016, 2018 Mathieu Lirzin <mthl@gnu.org>
@@ -39,6 +39,7 @@ do_subst = $(SED)					\
   -e 's,[@]GUILE[@],$(GUILE),g'				\
   -e 's,[@]guilemoduledir[@],$(guilemoduledir),g'	\
   -e 's,[@]guileobjectdir[@],$(guileobjectdir),g'	\
+  -e 's,[@]abs_top_builddir[@],$(abs_top_builddir),g'	\
   -e 's,[@]localedir[@],$(localedir),g'
 
 scripts/guix: scripts/guix.in Makefile
@@ -47,6 +48,18 @@ scripts/guix: scripts/guix.in Makefile
 	$(AM_V_GEN)$(do_subst) < "$(srcdir)/$@.in" > "$@-t"
 	$(AM_V_at)chmod a+x,a-w "$@-t" && mv -f "$@-t" "$@"
 
+# This is our variant of the 'guile' executable, one that doesn't complain
+# about locales.
+pkglibexec_PROGRAMS = guile
+guile_SOURCES = gnu/packages/aux-files/guile-launcher.c
+guile_LDADD   = $(GUILE_LIBS)
+guile_CFLAGS  = $(GUILE_CFLAGS)
+
+# Have the 'guix' command refer to our 'guile'.
+install-exec-hook:
+	$(SED) -i "$(DESTDIR)$(bindir)/guix"				\
+	       -e 's,^#![[:graph:]]\+,#!$(pkglibexecdir)/guile,g'
+
 nodist_noinst_SCRIPTS =				\
   pre-inst-env					\
   test-env
@@ -68,7 +81,6 @@ MODULES =					\
   guix/cpio.scm					\
   guix/deprecation.scm				\
   guix/docker.scm	   			\
-  guix/json.scm					\
   guix/records.scm				\
   guix/openpgp.scm				\
   guix/pki.scm					\
@@ -80,6 +92,7 @@ MODULES =					\
   guix/modules.scm				\
   guix/download.scm				\
   guix/discovery.scm				\
+  guix/android-repo-download.scm		\
   guix/bzr-download.scm            		\
   guix/git-download.scm				\
   guix/hg-download.scm				\
@@ -90,9 +103,11 @@ MODULES =					\
   guix/profiles.scm				\
   guix/serialization.scm			\
   guix/nar.scm					\
+  guix/narinfo.scm				\
   guix/derivations.scm				\
   guix/grafts.scm				\
   guix/repl.scm					\
+  guix/transformations.scm			\
   guix/inferior.scm				\
   guix/describe.scm				\
   guix/quirks.scm				\
@@ -109,12 +124,11 @@ MODULES =					\
   guix/cache.scm				\
   guix/cve.scm					\
   guix/workers.scm				\
-  guix/zlib.scm					\
-  guix/lzlib.scm				\
   guix/build-system.scm				\
   guix/build-system/android-ndk.scm		\
   guix/build-system/ant.scm			\
   guix/build-system/cargo.scm			\
+  guix/build-system/chicken.scm			\
   guix/build-system/clojure.scm			\
   guix/build-system/cmake.scm			\
   guix/build-system/dub.scm			\
@@ -164,6 +178,7 @@ MODULES =					\
   guix/build/download-nar.scm			\
   guix/build/cargo-build-system.scm		\
   guix/build/cargo-utils.scm			\
+  guix/build/chicken-build-system.scm		\
   guix/build/cmake-build-system.scm		\
   guix/build/dub-build-system.scm		\
   guix/build/dune-build-system.scm		\
@@ -172,6 +187,7 @@ MODULES =					\
   guix/build/minify-build-system.scm		\
   guix/build/font-build-system.scm		\
   guix/build/go-build-system.scm		\
+  guix/build/android-repo.scm			\
   guix/build/asdf-build-system.scm		\
   guix/build/bzr.scm				\
   guix/build/copy-build-system.scm		\
@@ -307,6 +323,14 @@ MODULES +=					\
 
 endif HAVE_GUILE_SSH
 
+if HAVE_GUILE_AVAHI
+
+MODULES += 					\
+  guix/avahi.scm				\
+  guix/scripts/discover.scm
+
+endif HAVE_GUILE_AVAHI
+
 if BUILD_DAEMON_OFFLOAD
 
 MODULES +=					\
@@ -333,10 +357,15 @@ dist_noinst_DATA =				\
 AUX_FILES =						\
   gnu/packages/aux-files/chromium/master-preferences.json		\
   gnu/packages/aux-files/emacs/guix-emacs.el		\
-  gnu/packages/aux-files/linux-libre/5.7-arm.conf	\
-  gnu/packages/aux-files/linux-libre/5.7-arm64.conf	\
-  gnu/packages/aux-files/linux-libre/5.7-i686.conf	\
-  gnu/packages/aux-files/linux-libre/5.7-x86_64.conf	\
+  gnu/packages/aux-files/guix.vim			\
+  gnu/packages/aux-files/linux-libre/5.10-arm.conf	\
+  gnu/packages/aux-files/linux-libre/5.10-arm64.conf	\
+  gnu/packages/aux-files/linux-libre/5.10-i686.conf	\
+  gnu/packages/aux-files/linux-libre/5.10-x86_64.conf	\
+  gnu/packages/aux-files/linux-libre/5.9-arm.conf	\
+  gnu/packages/aux-files/linux-libre/5.9-arm64.conf	\
+  gnu/packages/aux-files/linux-libre/5.9-i686.conf	\
+  gnu/packages/aux-files/linux-libre/5.9-x86_64.conf	\
   gnu/packages/aux-files/linux-libre/5.4-arm.conf	\
   gnu/packages/aux-files/linux-libre/5.4-arm64.conf	\
   gnu/packages/aux-files/linux-libre/5.4-i686.conf	\
@@ -370,6 +399,8 @@ EXAMPLES =					\
 GOBJECTS = $(MODULES:%.scm=%.go) guix/config.go $(dist_noinst_DATA:%.scm=%.go)
 
 nobase_dist_guilemodule_DATA =					\
+  guix/d3.v3.js							\
+  guix/graph.js							\
   guix/store/schema.sql						\
   $(MODULES) $(MODULES_NOT_COMPILED) $(AUX_FILES) $(EXAMPLES)	\
   $(MISC_DISTRO_FILES)
@@ -397,6 +428,7 @@ SCM_TESTS =					\
   tests/base16.scm				\
   tests/base32.scm				\
   tests/base64.scm				\
+  tests/boot-parameters.scm			\
   tests/bournish.scm				\
   tests/builders.scm				\
   tests/build-utils.scm			\
@@ -428,7 +460,6 @@ SCM_TESTS =					\
   tests/import-utils.scm			\
   tests/inferior.scm				\
   tests/lint.scm				\
-  tests/lzlib.scm				\
   tests/modules.scm				\
   tests/monads.scm				\
   tests/nar.scm				\
@@ -445,7 +476,6 @@ SCM_TESTS =					\
   tests/pypi.scm				\
   tests/records.scm				\
   tests/scripts.scm				\
-  tests/scripts-build.scm			\
   tests/search-paths.scm			\
   tests/services.scm				\
   tests/services/linux.scm			\
@@ -462,13 +492,19 @@ SCM_TESTS =					\
   tests/syscalls.scm				\
   tests/system.scm				\
   tests/texlive.scm				\
+  tests/transformations.scm			\
   tests/ui.scm					\
   tests/union.scm				\
   tests/upstream.scm				\
   tests/utils.scm				\
   tests/uuid.scm				\
-  tests/workers.scm				\
-  tests/zlib.scm
+  tests/workers.scm
+
+if BUILD_DAEMON_OFFLOAD
+SCM_TESTS  += tests/offload.scm
+else
+EXTRA_DIST += tests/offload.scm
+endif
 
 SH_TESTS =					\
   tests/guix-build.sh				\
@@ -551,7 +587,7 @@ dist_zshcompletion_DATA = etc/completion/zsh/_guix
 dist_fishcompletion_DATA = etc/completion/fish/guix.fish
 
 # SELinux policy
-dist_selinux_policy_DATA = etc/guix-daemon.cil
+nodist_selinux_policy_DATA = etc/guix-daemon.cil
 
 EXTRA_DIST +=						\
   HACKING						\
@@ -559,6 +595,7 @@ EXTRA_DIST +=						\
   TODO							\
   CODE-OF-CONDUCT					\
   .dir-locals.el					\
+  .guix-authorizations					\
   .guix-channel						\
   scripts/guix.in					\
   etc/guix-install.sh					\
@@ -574,6 +611,7 @@ EXTRA_DIST +=						\
   build-aux/hydra/guix-modular.scm			\
   build-aux/cuirass/gnu-system.scm			\
   build-aux/cuirass/guix-modular.scm			\
+  build-aux/cuirass/hurd-manifest.scm			\
   build-aux/cuirass/hydra-to-cuirass.scm		\
   build-aux/check-final-inputs-self-contained.scm	\
   build-aux/check-channel-news.scm			\
@@ -582,8 +620,6 @@ EXTRA_DIST +=						\
   build-aux/test-driver.scm				\
   build-aux/update-guix-package.scm			\
   build-aux/update-NEWS.scm				\
-  d3.v3.js						\
-  graph.js						\
   tests/test.drv					\
   tests/signing-key.pub					\
   tests/signing-key.sec					\
@@ -655,9 +691,11 @@ channel_intro_commit = 9edb3f66fd807b096b48283debdcddccfea34bad
 channel_intro_signer = BBB0 2DDF 2CEA F6A8 0D1D  E643 A2A0 6DF2 A33A 54FA
 
 # Authenticate the current Git checkout by checking signatures on every commit.
+GUIX_GIT_KEYRING = origin/keyring
 authenticate:
 	$(AM_V_at)echo "Authenticating Git checkout..." ;	\
 	guix git authenticate					\
+	    --keyring=$(GUIX_GIT_KEYRING)			\
 	    --cache-key=channels/guix --stats			\
 	    "$(channel_intro_commit)" "$(channel_intro_signer)"
 
@@ -691,12 +729,11 @@ AM_DISTCHECK_CONFIGURE_FLAGS =			\
   --localstatedir="$$dc_install_base/var"	\
   --with-libgcrypt-prefix="$(LIBGCRYPT_PREFIX)"	\
   --with-libgcrypt-libdir="$(LIBGCRYPT_LIBDIR)"	\
-  --with-nix-prefix="$(NIX_PREFIX)"		\
   --enable-daemon				\
   ac_cv_guix_test_root="$(GUIX_TEST_ROOT)"
 
 # Name of the 'guix' package shipped in the binary tarball.
-GUIX_FOR_BINARY_TARBALL = guile3.0-guix
+GUIX_FOR_BINARY_TARBALL = guix
 
 # The self-contained tarball.
 guix-binary.%.tar.xz:
@@ -716,8 +753,8 @@ distcheck-hook: assert-binaries-available assert-final-inputs-self-contained
 
 EXTRA_DIST += $(top_srcdir)/.version
 BUILT_SOURCES += $(top_srcdir)/.version
-$(top_srcdir)/.version:
-	echo $(VERSION) > "$@-t" && mv "$@-t" "$@"
+$(top_srcdir)/.version: config.status
+	$(AM_V_GEN)echo $(VERSION) > "$@-t" && mv "$@-t" "$@"
 
 gen-tarball-version:
 	echo $(VERSION) > "$(distdir)/.tarball-version"
@@ -812,9 +849,10 @@ release: dist-with-updated-version
 	$(MKDIR_P) "$(releasedir)"
 	rm -f "$(releasedir)"/*
 	mv $(SOURCE_TARBALLS) "$(releasedir)"
-	$(top_builddir)/pre-inst-env "$(GUILE)"			\
-	   $(top_srcdir)/build-aux/update-guix-package.scm	\
-	   "`git rev-parse HEAD`" "$(PACKAGE_VERSION)"
+	GUIX_ALLOW_ME_TO_USE_PRIVATE_COMMIT=yes \
+	$(top_builddir)/pre-inst-env "$(GUILE)"	\
+		$(top_srcdir)/build-aux/update-guix-package.scm	\
+	   	"`git rev-parse HEAD`" "$(PACKAGE_VERSION)"
 	git add $(top_srcdir)/gnu/packages/package-management.scm
 	git commit -m "gnu: guix: Update to $(PACKAGE_VERSION)."
 	$(top_builddir)/pre-inst-env guix build $(GUIX_FOR_BINARY_TARBALL)	\
@@ -826,9 +864,10 @@ release: dist-with-updated-version
 	  mv "guix-binary.$$system.tar.xz"					\
 	      "$(releasedir)/guix-binary-$(PACKAGE_VERSION).$$system.tar.xz" ;	\
 	done
-	$(top_builddir)/pre-inst-env "$(GUILE)"			\
-	   $(top_srcdir)/build-aux/update-guix-package.scm	\
-	   "`git rev-parse HEAD`"
+	GUIX_ALLOW_ME_TO_USE_PRIVATE_COMMIT=yes \
+	$(top_builddir)/pre-inst-env "$(GUILE)"	\
+		$(top_srcdir)/build-aux/update-guix-package.scm	\
+		"`git rev-parse HEAD`"
 	git add $(top_srcdir)/gnu/packages/package-management.scm
 	git commit -m "gnu: guix: Update to `git rev-parse HEAD | cut -c1-7`."
 	$(top_builddir)/pre-inst-env guix build guix			\
@@ -836,8 +875,8 @@ release: dist-with-updated-version
 	      -v1 --no-grafts --fallback
 	for system in $(GUIX_SYSTEM_SUPPORTED_SYSTEMS) ; do				\
 	  image=`$(top_builddir)/pre-inst-env						\
-	    guix system disk-image							\
-	    --file-system-type=iso9660							\
+	    guix system disk-image -t iso9660                                           \
+	    --label="GUIX_$${system}_$(VERSION)"					\
             --system=$$system --fallback						\
 	    gnu/system/install.scm` ;							\
 	  if [ ! -f "$$image" ] ; then							\
@@ -950,7 +989,7 @@ download-po.$(1):
 	fi ;									\
 	for lang in $$$$LINGUAS; do						\
 	  if wget -nv -O "$(top_srcdir)/$(2)/$(3)$$$$lang.po.tmp"		\
-	     "https://translationproject.org/latest/$(1)/$$$$lang.po" ;		\
+	     "https://translate.fedoraproject.org/api/translations/guix/$(1)/$$$$lang/file/" ; \
 	  then									\
 	    mv "$(top_srcdir)/$(2)/$(3)$$$$lang.po"{.tmp,} ;			\
 	  else									\
@@ -962,11 +1001,12 @@ download-po.$(1):
 
 endef
 
+$(eval $(call make-download-po-rule,documentation-cookbook,po/doc,guix-cookbook.))
+$(eval $(call make-download-po-rule,documentation-manual,po/doc,guix-manual.))
 $(eval $(call make-download-po-rule,guix,po/guix))
-$(eval $(call make-download-po-rule,guix-packages,po/packages))
-$(eval $(call make-download-po-rule,guix-manual,po/doc,guix-manual.))
+$(eval $(call make-download-po-rule,packages,po/packages))
 
-download-po: $(foreach domain,guix guix-packages guix-manual,download-po.$(domain))
+download-po: $(foreach domain,guix packages documentation-manual documentation-cookbook,download-po.$(domain))
 .PHONY: download-po
 
 ## -------------- ##
diff --git a/NEWS b/NEWS
index bb1de1e938..122c184f65 100644
--- a/NEWS
+++ b/NEWS
@@ -11,6 +11,160 @@ Copyright © 2016, 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
 
 Please send Guix bug reports to bug-guix@gnu.org.
 
+* Changes in 1.2.0 (since 1.1.0)
+
+** Package management
+*** ‘guix pull’ now crytographically authenticates channels
+*** ‘guix describe -f channels’ now shows “channel introductions”
+*** ‘guix describe -f channels-sans-intro’ omits channel introductions
+*** New ‘guix git authenticate’ command, to authenticate Git checkouts
+*** ‘guix pull’ and ‘guix system reconfigure’ detect attempts to downgrade
+*** New ‘--allow-downgrades’ option for ‘guix pull’ and ‘guix system’
+*** Guix build time reduced thanks to Guile 3.0.4’s “baseline compiler”
+*** New ‘--with-debug-info’ package transformation option
+*** New ‘--with-c-toolchain’ package transformation option
+*** New ‘--without-tests’ package transformation option
+*** ‘--with-input’ & co. now also apply to implicit dependencies
+*** Package transformation options are now recorded in profiles
+*** New fakechroot “execution engine” for packs produced by ‘guix pack -RR’
+*** New ‘--cache-bypass-threshold’ option for ‘guix publish’
+*** New ‘--diff’ option for ‘guix challenge’, to compare substitutes
+*** New ‘--exclude’ option for ‘guix lint’, to exclude checkers
+*** New ‘check-for-collisions’ checker in ‘guix lint’
+*** All of Guix and Guix System now runs on Guile 3.0
+*** ‘guix pull’ and ‘--with-git-url’ now support authenticated SSH repos
+*** ‘guix pull’ now honors $http_proxy and $https_proxy
+*** New ‘--path’ option for ‘guix graph’, showing the shortest path
+*** ‘guix repl’ can now be passed a script to execute
+*** ‘guix help’ finally shows command descriptions
+*** ‘guix install’ etc. no longer list items to download by default
+*** ‘guix search’ etc. now automatically invoke the pager
+*** New ‘--hash’ option for ‘guix hash’
+*** New ‘--list-formats’ option for ‘guix describe’
+*** New “Getting Started” section in the manual
+
+** Distribution
+*** Bootstrap binary seeds reduced to 60 MiB on x86_64/i686
+*** New ‘--target’ option for ‘guix system’, for cross-compilation
+*** New ‘--image-type’ option for ‘guix system disk-image’
+*** New ‘--label’ option for ‘guix system disk-image’
+*** Guix System can now boot from a Btrfs subvolume
+*** New ‘hurd’ field of ‘operating-system’, for GNU/Hurd support
+*** Guix System can be cross-compiled to GNU/Hurd with ‘--target=i586-pc-gnu’
+*** New ‘hurd-vm-service-type’ to spawn a GNU/Hurd VM on GNU/Linux
+*** /etc/guix/acl on Guix System is now built from the OS configuration
+*** ‘rottlog-service-type’ is now part of ‘%base-services’
+*** Linux-libre modules are now gzip-compressed
+*** The efivarfs file system is now part of ‘%base-file-systems’
+*** mcron job specs are now statically checked at OS build time
+*** ‘swap-devices’ field of ‘operating-system’ can contains UUIDs and labels
+*** Graphical installer uses UUIDs for unencrypted swap partitions
+*** Graphical installer now supports NTFS file systems
+*** File systems UUIDs and labels now recognized for F2FS and NTFS
+*** Root file system can now be on NFS
+*** New services
+
+autossh, ganeti, gmnisrv, guix-build-coordinator,
+guix-build-coordinator-agent, guix-build-coordinator-queue-builds, hostapd,
+hurd-console, hurd-getty, hurd-vm, lxqt, rshiny, secret-service,
+simulated-wifi, udev-rules, unattended-upgrade, webssh, zram
+
+*** 1999 new packages
+*** 3652 package updates
+
+Noteworthy updates:
+bash 5.0.16, binutils 2.34, cups 2.3.3, emacs 27.1, enlightenment 0.24.2,
+gcc-toolchain 10.2.0, gdb 10.1, ghc 8.8.3, gimp 2.10.22, glibc 2.31,
+gnome 3.34.2, gnupg 2.2.23, go 1.14.10, guile 3.0.4,
+icecat 78.4.0-guix0-preview1, inkscape 1.0.1, julia 1.5.2,
+libreoffice 6.4.6.2, linux-libre 5.9.3, mate 1.24.1, ocaml 4.09.0,
+openjdk 14.0, perl 5.30.2, python2 2.7.17, python 3.8.2, racket 7.8,
+rust 1.46.0, r 4.0.3, sbcl 2.0.10, shepherd 0.8.1, xfce 4.14.2,
+xorg-server 1.20.8
+
+
+** Programming interfaces
+*** New ‘maven-build-system’, for packages built with Maven
+*** ‘haskell-build-system’ now always adds a “static” output
+*** New (gnu image) module, to build system images
+*** New (guix git-authenticate) module, for Git checkout authentication
+*** New (guix openpgp) module with a minimal OpenPGP implementation
+*** New (guix transformations) module, for package transformations
+*** New (gnu services hurd) module providing GNU/Hurd services
+*** (guix json) removed in favor of Guile-JSON’s (json) module
+*** (guix zlib) and (guix lzlib) removed in favor of Guile-{Zlib,Lzlib}
+*** ‘local-file’ warns about non-literal relative file names
+*** Daemon now supports more hash algorithms: SHA3 and BLAKE2s
+*** New <content-hash> record type for use in ‘origin’
+*** New ‘let-system’ for in (guix gexp), for system-dependent code
+*** New lowerable <profile> record type in (guix profiles)
+*** (gnu build secret-service) can share secrets with a guest OS
+*** “Programming Interface” section of the manual greatly expounded
+
+** Noteworthy bug fixes
+*** ‘guix pull’ now shows a progress bar while fetching from Git
+    (<https://bugs.gnu.org/39260>)
+*** ‘guix copy’ and ‘guix deploy’ show a progress bar while copying
+*** Bootloader messages are now localized
+    (<https://issues.guix.gnu.org/35394>)
+*** ‘guix system reconfigure’ now starts services not currently running
+    (<https://bugs.gnu.org/43720>)
+*** Desktop environments now detect newly installed applications
+    (<https://bugs.gnu.org/35594>)
+*** Offloading and copying small items is now much faster
+    (<https://issues.guix.gnu.org/43340>)
+*** GCC switched back to C_INCLUDE_PATH & co. from CPATH
+    (<https://bugs.gnu.org/30756>)
+*** Graphical installer no longer hangs while connecting to WiFi network
+    (<https://issues.guix.gnu.org/40682>)
+*** GNU Aspell truly honors ASPELL_DICT_DIR (<https://bugs.gnu.org/29686>)
+*** Fix overly aggressive memoization of “commencement” packages
+    (<https://bugs.gnu.org/40482>)
+*** Duplicate /etc entries are now reported (<https://bugs.gnu.org/40729>)
+*** ‘guix pack -R’ wrapper correctly reports exit code
+    (<https://bugs.gnu.org/40816>)
+*** Fix time travel to pre-Guile 3.0 revisions
+    (<https://bugs.gnu.org/41028>)
+*** ‘package-grafts’ returns grafts for all the relevant outputs
+    (<https://bugs.gnu.org/41796>)
+*** ‘guix pull’ and related commands authenticate Git checkouts
+    (<https://bugs.gnu.org/22883>)
+*** Fix GNU libstdc++ misconfiguration in recent ‘gcc-toolchain’ versions
+    (<https://bugs.gnu.org/42392>)
+*** ‘guix pack -R’ wraps propagated inputs as well
+    (<https://bugs.gnu.org/42510>)
+*** ‘guix pack -R’ wrapper leaves root available to child processes
+    (<https://bugs.gnu.org/44261>)
+*** ‘lib/guix/package.cache’ generated by ‘guix pull’ is now bit-reproducible
+    (<https://bugs.gnu.org/42009>)
+*** Graphical installer now properly detects disks containing an LVM partition
+    (<https://issues.guix.gnu.org/42683>)
+*** Fix possible crash when copying store items over SSH
+    (<https://bugs.gnu.org/42740>)
+*** ‘gcc’ is now a “deprecated” alias for ‘gcc-toolchain’
+    (<https://bugs.gnu.org/43303>)
+*** ‘package-input-rewriting’ & co. no longer yield unnecessary rebuilds
+    (<https://bugs.gnu.org/42156>)
+*** Offloading better normalizes build machine load
+    (<https://issues.guix.gnu.org/43773>)
+*** ‘guix build --check’ now honors ‘--rounds’
+    (<https://issues.guix.gnu.org/40144>)
+*** ‘guix-install.sh’ now installs shell completion files
+    (<https://bugs.gnu.org/43744>)
+*** ‘guix-install.sh’ now warns about lack of ‘nscd’
+    (<https://bugs.gnu.org/43744>)
+
+** Native language support
+*** Updated translations of the manual
+
+The manual is fully translated into French, German, and Spanish, and has
+preliminary translations into Chinese and Russian.
+
+*** Updated translations of messages
+
+This version of Guix is fully translated in French, German, and Spanish, and
+partially translated in 11 other languages.
+
 * Changes in 1.1.0 (since 1.0.1)
 ** Package management
 *** New ‘guix deploy’ command to deploy several machines at once
diff --git a/README b/README
index 5e9069f80f..169061cbcb 100644
--- a/README
+++ b/README
@@ -33,25 +33,14 @@ See the manual for the installation instructions, either by running
 
 or by checking the [[https://guix.gnu.org/manual/en/html_node/Installation.html][web copy of the manual]].
 
-For information on installation from a Git checkout, please see the section
-"Building from Git" in the manual.
+* Building from Git
 
-* Installing Guix from Guix
+For information on building Guix from a Git checkout, please see the relevant
+section in the manual, either by running
 
-You can re-build and re-install Guix using a system that already runs Guix.
-To do so:
+  info -f doc/guix.info "Building from Git"
 
-  - Start a shell with the development environment for Guix:
-
-      guix environment guix
-
-  - Re-run the 'configure' script passing it the option
-    '--localstatedir=/somewhere', where '/somewhere' is the 'localstatedir'
-    value of the currently installed Guix (failing to do that would lead the
-    new Guix to consider the store to be empty!).  We recommend to use the
-    value '/var'.
-
-  - Run "make", "make check", and "make install".
+or by checking the [[https://guix.gnu.org/manual/en/html_node/Building-from-Git.html][web_copy of the manual]].
 
 * How It Works
 
diff --git a/build-aux/build-self.scm b/build-aux/build-self.scm
index e2495919d5..4b6e2bfae5 100644
--- a/build-aux/build-self.scm
+++ b/build-aux/build-self.scm
@@ -71,7 +71,7 @@
                                       (variables rest ...))))))
     (variables %localstatedir %storedir %sysconfdir %system)))
 
-(define* (make-config.scm #:key zlib gzip xz bzip2
+(define* (make-config.scm #:key gzip xz bzip2
                           (package-name "GNU Guix")
                           (package-version "0")
                           (bug-report-address "bug-guix@gnu.org")
@@ -133,11 +133,7 @@
                      (define %bzip2
                        #+(and bzip2 (file-append bzip2 "/bin/bzip2")))
                      (define %xz
-                       #+(and xz (file-append xz "/bin/xz")))
-
-                     (define %libz
-                       #+(and zlib
-                              (file-append zlib "/lib/libz")))))))
+                       #+(and xz (file-append xz "/bin/xz")))))))
 
 
 ;;;
diff --git a/build-aux/cuirass/hurd-manifest.scm b/build-aux/cuirass/hurd-manifest.scm
new file mode 100644
index 0000000000..0be8943cd1
--- /dev/null
+++ b/build-aux/cuirass/hurd-manifest.scm
@@ -0,0 +1,74 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@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/>.
+
+;;; Commentary:
+;;;
+;;; This file defines a manifest with a selection of packages for Cuirass to
+;;; build for GNU/Hurd.
+;;;
+;;; Code:
+
+(use-modules (gnu)
+             (gnu system hurd)
+             (guix packages)
+             (guix utils)
+             (ice-9 match)
+             (srfi srfi-1))
+
+(use-package-modules
+ base commencement compression file gawk gdb gettext guile
+ hurd less m4 package-management python ssh version-control)
+
+(define (input->package input)
+  "Return the INPUT as package, or #f."
+  (match input
+    ((label (and (? package?) package))
+     package)
+    ((label (and (? package?) package . output))
+     (cons package output))
+    (_ #f)))
+
+(define guix-dependencies
+  (filter-map input->package
+              (fold alist-delete (package-direct-inputs guix)
+                    '("glibc-utf8-locales" "graphviz" "po4a"))))
+
+(define (package-without-tests p)
+  (package/inherit p
+    (arguments
+     (substitute-keyword-arguments (package-arguments p)
+       ((#:tests? _ #f) #f)))))
+
+(packages->manifest
+ (cons*
+  ;; where it all starts
+  hello
+
+  ;; development utililities
+  diffutils file findutils gawk grep gzip less m4 openssh-sans-x tar xz
+
+  ;; development packages
+  gcc-toolchain gdb-minimal git-minimal gnu-make
+
+  ;; guix environment guix --without-tests=python-minimal --without-tests=gettext-minimal
+  (package-without-tests gettext-minimal)
+  (package-without-tests python-minimal)
+
+  (append
+   guix-dependencies
+   (delete guile-3.0 %base-packages/hurd))))
diff --git a/build-aux/hydra/guix-modular.scm b/build-aux/hydra/guix-modular.scm
index 8e07e7cd01..060b84b8ef 100644
--- a/build-aux/hydra/guix-modular.scm
+++ b/build-aux/hydra/guix-modular.scm
@@ -43,17 +43,25 @@ for SYSTEM.  Use VERSION as the version identifier."
     (define build
       (primitive-load (string-append source "/build-aux/build-self.scm")))
 
-    `((derivation . ,(derivation-file-name
-                      (run-with-store store
-                        (build source #:version version #:system system
-                               #:pull-version 1
-                               #:guile-version "2.2")))) ;the latest 2.2.x
-      (description . "Modular Guix")
-      (long-description
-       . "This is the modular Guix package as produced by 'guix pull'.")
-      (license . ,license:gpl3+)
-      (home-page . ,%guix-home-page-url)
-      (maintainers . (,%guix-bug-report-address)))))
+    (let ((drv (run-with-store store
+                 (build source #:version version #:system system
+                        #:pull-version 1
+                        #:guile-version "2.2"))))
+      `((derivation . ,(derivation-file-name drv)) ;the latest 2.2.x
+        (log . ,(log-file store (derivation-file-name drv)))
+        (outputs . ,(filter-map (lambda (res)
+                                  (match res
+                                    ((name . path)
+                                     `(,name . ,path))))
+                                (derivation->output-paths drv)))
+        (nix-name . ,(derivation-name drv))
+        (system . ,(derivation-system drv))
+        (description . "Modular Guix")
+        (long-description
+         . "This is the modular Guix package as produced by 'guix pull'.")
+        (license . ,license:gpl3+)
+        (home-page . ,%guix-home-page-url)
+        (maintainers . (,%guix-bug-report-address))))))
 
 (define (hydra-jobs store arguments)
   "Return Hydra jobs."
diff --git a/build-aux/pre-inst-env.in b/build-aux/pre-inst-env.in
index e0aa7fe868..cd90a06cbc 100644
--- a/build-aux/pre-inst-env.in
+++ b/build-aux/pre-inst-env.in
@@ -1,7 +1,7 @@
 #!/bin/sh
 
 # GNU Guix --- Functional package management for GNU
-# Copyright © 2012, 2013, 2014, 2015, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
+# Copyright © 2012, 2013, 2014, 2015, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
 # Copyright © 2017 Eric Bavier <bavier@cray.com>
 #
 # This file is part of GNU Guix.
@@ -46,13 +46,6 @@ export PATH
 GUIX="$abs_top_builddir/scripts/guix"
 export GUIX
 
-# The following variables need only be defined when compiling Guix
-# modules, but we define them to be on the safe side in case of
-# auto-compilation.
-
-NIX_HASH="@NIX_HASH@"
-export NIX_HASH
-
 # Define $GUIX_UNINSTALLED to prevent `guix' from
 # prepending @guilemoduledir@ to the Guile load paths.
 
diff --git a/build-aux/update-guix-package.scm b/build-aux/update-guix-package.scm
index f695e91cfd..9fe6c201cc 100644
--- a/build-aux/update-guix-package.scm
+++ b/build-aux/update-guix-package.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2017, 2018 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -24,20 +25,25 @@
 ;;; Code:
 
 (use-modules (guix)
+             (guix ui)
              (guix git-download)
              (guix upstream)
              (guix utils)
              (guix base32)
              (guix build utils)
+             (guix scripts hash)
              (gnu packages package-management)
-             (ice-9 match))
+             (ice-9 match)
+             (ice-9 popen)
+             (ice-9 regex)
+             (ice-9 textual-ports)
+             (srfi srfi-1)
+             (srfi srfi-2)
+             (srfi srfi-26))
 
 (define %top-srcdir
   (string-append (current-source-directory) "/.."))
 
-(define version-controlled?
-  (git-predicate %top-srcdir))
-
 (define (package-definition-location)
   "Return the source properties of the definition of the 'guix' package."
   (call-with-input-file (location-file (package-location guix))
@@ -101,44 +107,107 @@ COMMIT."
       (exp
        (error "'guix' package definition is not as expected" exp)))))
 
+(define (git-add-worktree directory commit)
+  "Create a new git worktree at DIRECTORY, detached on commit COMMIT."
+  (invoke "git" "worktree" "add" "--detach" directory commit))
+
+(define (call-with-temporary-git-worktree commit proc)
+  "Execute PROC in the context of a temporary git worktree created from
+COMMIT.  PROC receives the temporary directory file name as an argument."
+  (call-with-temporary-directory
+   (lambda (tmp-directory)
+     (dynamic-wind
+       (lambda ()
+         #t)
+       (lambda ()
+         (git-add-worktree tmp-directory commit)
+         (proc tmp-directory))
+       (lambda ()
+         (invoke "git" "worktree" "remove" "--force" tmp-directory))))))
+
+(define %savannah-guix-git-repo-push-url-regexp
+  "git.(savannah|sv).gnu.org:?/srv/git/guix.git \\(push\\)")
+
+(define-syntax-rule (with-input-pipe-to-string prog arg ...)
+  (let* ((input-pipe (open-pipe* OPEN_READ prog arg ...))
+	 (output (get-string-all input-pipe))
+	 (exit-val (status:exit-val (close-pipe input-pipe))))
+    (unless (zero? exit-val)
+      (error (format #f "Command ~s exited with non-zero exit status: ~s"
+                     (string-join (list prog arg ...)) exit-val)))
+    (string-trim-both output)))
+
+(define (find-origin-remote)
+  "Find the name of the git remote with the Savannah Guix git repo URL."
+  (and-let* ((remotes (string-split (with-input-pipe-to-string
+                                     "git" "remote" "-v")
+                                    #\newline))
+             (origin-entry (find (cut string-match
+                                      %savannah-guix-git-repo-push-url-regexp
+                                      <>)
+                                 remotes)))
+    (first (string-split origin-entry #\tab))))
+
+(define (commit-already-pushed? remote commit)
+  "True if COMMIT is found in the REMOTE repository."
+  (not (string-null? (with-input-pipe-to-string
+                      "git" "branch" "-r" "--contains" commit
+                      (string-append remote "/master")))))
+
+(define (keep-source-in-store store source)
+  "Add SOURCE to the store under the name that the 'guix' package expects."
+
+  ;; Add SOURCE to the store, but this time under the real name used in the
+  ;; 'origin'.  This allows us to build the package without having to make a
+  ;; real checkout; thus, it also works when working on a private branch.
+  (reload-module
+   (resolve-module '(gnu packages package-management)))
+
+  (let* ((source (add-to-store store
+                               (origin-file-name (package-source guix))
+                               #t "sha256" source
+                               #:select? (git-predicate source)))
+         (root   (store-path-package-name source)))
+
+    ;; Add an indirect GC root for SOURCE in the current directory.
+    (false-if-exception (delete-file root))
+    (symlink source root)
+    (add-indirect-root store
+                       (string-append (getcwd) "/" root))
+
+    (info (G_ "source code kept in ~a (GC root: ~a)~%")
+          source root)))
+
 
 (define (main . args)
   (match args
     ((commit version)
-     (with-store store
-       (let* ((source   (add-to-store store
-                                      "guix-checkout" ;dummy name
-                                      #t "sha256" %top-srcdir
-                                      #:select? version-controlled?))
-              (hash     (query-path-hash store source))
-              (location (package-definition-location))
-              (old-hash (content-hash-value
-                          (origin-hash (package-source guix)))))
-         (edit-expression location
-                          (update-definition commit hash
-                                             #:old-hash old-hash
-                                             #:version version))
-
-         ;; Re-add SOURCE to the store, but this time under the real name used
-         ;; in the 'origin'.  This allows us to build the package without
-         ;; having to make a real checkout; thus, it also works when working
-         ;; on a private branch.
-         (reload-module
-          (resolve-module '(gnu packages package-management)))
-
-         (let* ((source (add-to-store store
-                                      (origin-file-name (package-source guix))
-                                      #t "sha256" source))
-                (root   (store-path-package-name source)))
-
-           ;; Add an indirect GC root for SOURCE in the current directory.
-           (false-if-exception (delete-file root))
-           (symlink source root)
-           (add-indirect-root store
-                              (string-append (getcwd) "/" root))
-
-           (format #t "source code for commit ~a: ~a (GC root: ~a)~%"
-                   commit source root)))))
+     (with-directory-excursion %top-srcdir
+       (or (getenv "GUIX_ALLOW_ME_TO_USE_PRIVATE_COMMIT")
+           (let ((remote (find-origin-remote)))
+             (unless remote
+               (leave (G_ "Failed to find the origin git remote.~%")))
+             (commit-already-pushed? remote commit))
+           (leave (G_ "Commit ~a is not pushed upstream.  Aborting.~%") commit))
+       (call-with-temporary-git-worktree commit
+           (lambda (tmp-directory)
+             (let* ((hash (nix-base32-string->bytevector
+                           (string-trim-both
+                            (with-output-to-string
+		              (lambda ()
+		                (guix-hash "-rx" tmp-directory))))))
+                    (location (package-definition-location))
+                    (old-hash (content-hash-value
+                               (origin-hash (package-source guix)))))
+               (edit-expression location
+                                (update-definition commit hash
+                                                   #:old-hash old-hash
+                                                   #:version version))
+               ;; When GUIX_ALLOW_ME_TO_USE_PRIVATE_COMMIT is set, the sources are
+               ;; added to the store.  This is used as part of 'make release'.
+               (when (getenv "GUIX_ALLOW_ME_TO_USE_PRIVATE_COMMIT")
+                 (with-store store
+                   (keep-source-in-store store tmp-directory))))))))
     ((commit)
      ;; Automatically deduce the version and revision numbers.
      (main commit #f))))
diff --git a/config-daemon.ac b/config-daemon.ac
index 50ead355a8..85caee269b 100644
--- a/config-daemon.ac
+++ b/config-daemon.ac
@@ -13,7 +13,7 @@ if test "x$guix_build_daemon" = "xyes"; then
   GUIX_ASSERT_CXX11
 
   AC_PROG_RANLIB
-  AC_CONFIG_HEADER([nix/config.h])
+  AC_CONFIG_HEADERS([nix/config.h])
 
   dnl Use 64-bit file system calls so that we can support files > 2 GiB.
   AC_SYS_LARGEFILE
@@ -34,7 +34,6 @@ if test "x$guix_build_daemon" = "xyes"; then
   dnl Look for SQLite, a required dependency.
   PKG_CHECK_MODULES([SQLITE3], [sqlite3 >= 3.6.19])
 
-  AC_DEFINE([NIX_VERSION], ["0.0.0"], [Fake Nix version number.])
   AC_DEFINE_UNQUOTED([SYSTEM], ["$guix_system"],
     [Guix host system type--i.e., platform and OS kernel tuple.])
 
diff --git a/configure.ac b/configure.ac
index 7675eef7c4..aa97f67ebe 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,7 +1,7 @@
 #                                               -*- Autoconf -*-
 # Process this file with autoconf to produce a configure script.
 
-AC_PREREQ(2.68)
+AC_PREREQ([2.69])
 AC_INIT([GNU Guix],
   [m4_esyscmd([build-aux/git-version-gen .tarball-version])],
   [bug-guix@gnu.org], [guix],
@@ -29,35 +29,35 @@ GUIX_ASSERT_SUPPORTED_SYSTEM
 AM_CONDITIONAL([CROSS_COMPILING], [test "x$cross_compiling" = "xyes"])
 
 AC_ARG_WITH(store-dir,
-  AC_HELP_STRING([--with-store-dir=PATH],
+  AS_HELP_STRING([--with-store-dir=PATH],
     [file name of the store (defaults to /gnu/store)]),
   [storedir="$withval"],
   [storedir="/gnu/store"])
 AC_SUBST(storedir)
 
 AC_ARG_WITH([bash-completion-dir],
-  AC_HELP_STRING([--with-bash-completion-dir=DIR],
+  AS_HELP_STRING([--with-bash-completion-dir=DIR],
     [name of the Bash completion directory]),
   [bashcompletiondir="$withval"],
   [bashcompletiondir='${sysconfdir}/bash_completion.d'])
 AC_SUBST([bashcompletiondir])
 
 AC_ARG_WITH([zsh-completion-dir],
-  AC_HELP_STRING([--with-zsh-completion-dir=DIR],
+  AS_HELP_STRING([--with-zsh-completion-dir=DIR],
     [name of the Zsh completion directory]),
   [zshcompletiondir="$withval"],
   [zshcompletiondir='${datadir}/zsh/site-functions'])
 AC_SUBST([zshcompletiondir])
 
 AC_ARG_WITH([fish-completion-dir],
-  AC_HELP_STRING([--with-fish-completion-dir=DIR],
+  AS_HELP_STRING([--with-fish-completion-dir=DIR],
     [name of the Fish completion directory]),
   [fishcompletiondir="$withval"],
   [fishcompletiondir='${datadir}/fish/vendor_completions.d'])
 AC_SUBST([fishcompletiondir])
 
 AC_ARG_WITH([selinux-policy-dir],
-  AC_HELP_STRING([--with-selinux-policy-dir=DIR],
+  AS_HELP_STRING([--with-selinux-policy-dir=DIR],
     [name of the SELinux policy directory]),
   [selinux_policydir="$withval"],
   [selinux_policydir='${datadir}/selinux/'])
@@ -102,9 +102,12 @@ if test "x$GUILD" = "x"; then
 fi
 
 if test "x$GUILE_EFFECTIVE_VERSION" = "x2.2"; then
-  PKG_CHECK_MODULES([GUILE], [guile-2.2 >= 2.2.3])
+  PKG_CHECK_MODULES([GUILE], [guile-2.2 >= 2.2.6])
 fi
 
+dnl Get CFLAGS and LDFLAGS for libguile.
+GUILE_FLAGS
+
 dnl Installation directories for .scm and .go files.
 guilemoduledir="${datarootdir}/guile/site/$GUILE_EFFECTIVE_VERSION"
 guileobjectdir="${libdir}/guile/$GUILE_EFFECTIVE_VERSION/site-ccache"
@@ -141,6 +144,28 @@ if test "x$guix_cv_have_recent_guile_gcrypt" != "xyes"; then
   AC_MSG_ERROR([A recent Guile-Gcrypt could not be found; please install it.])
 fi
 
+GUIX_CHECK_GUILE_GIT
+if test "x$guix_cv_have_recent_guile_git" != "xyes"; then
+  AC_MSG_ERROR([A recent Guile-Git could not be found; please install it.])
+fi
+
+dnl Check for Guile-zlib.
+GUILE_MODULE_AVAILABLE([have_guile_zlib], [(zlib)])
+if test "x$have_guile_zlib" != "xyes"; then
+  AC_MSG_ERROR([Guile-zlib is missing; please install it.])
+fi
+
+dnl Check for Guile-lzlib.
+GUILE_MODULE_AVAILABLE([have_guile_lzlib], [(lzlib)])
+if test "x$have_guile_lzlib" != "xyes"; then
+  AC_MSG_ERROR([Guile-lzlib is missing; please install it.])
+fi
+
+dnl Check for Guile-Avahi.
+GUILE_MODULE_AVAILABLE([have_guile_avahi], [(avahi)])
+AM_CONDITIONAL([HAVE_GUILE_AVAHI],
+  [test "x$have_guile_avahi" = "xyes"])
+
 dnl Guile-newt is used by the graphical installer.
 GUILE_MODULE_AVAILABLE([have_guile_newt], [(newt)])
 
@@ -159,10 +184,6 @@ AM_CONDITIONAL([ENABLE_INSTALLER],
 dnl Make sure we have a full-fledged Guile.
 GUIX_ASSERT_GUILE_FEATURES([regex posix socket net-db threads])
 
-dnl Make sure we don't suffer from the bug in 'equal?' wrt. syntax objects
-dnl found in 2.2.1.  See <https://bugs.gnu.org/29903>.
-GUIX_ASSERT_SYNTAX_OBJECT_EQUAL
-
 AC_PROG_SED
 
 dnl Decompressors, for use by the substituter and other modules.
@@ -173,24 +194,6 @@ AC_SUBST([GZIP])
 AC_SUBST([BZIP2])
 AC_SUBST([XZ])
 
-AC_ARG_WITH([nix-prefix],
-  [AS_HELP_STRING([--with-nix-prefix=DIR],
-    [search for Nix in DIR (for testing purposes and '--disable-daemon' builds)])],
-  [case "$withval" in
-    yes|no) ;;
-    *)
-      NIX_PREFIX="$withval"
-      PATH="$NIX_PREFIX/bin:$PATH"; export PATH
-      AC_SUBST([NIX_PREFIX])
-      ;;
-   esac],
-  [])
-
-AC_PATH_PROG([NIX_HASH], [nix-hash])
-if test "x$guix_build_daemon$NIX_HASH" = "xno"; then
-   AC_MSG_ERROR([Nix programs not found; please install Nix or use `--with-nix-prefix'.])
-fi
-
 AC_ARG_WITH([nixpkgs],
   [AS_HELP_STRING([--with-nixpkgs=DIR],
     [search for Nixpkgs in DIR (for testing purposes only)])],
@@ -245,27 +248,6 @@ esac
 AC_SUBST([LIBGCRYPT_PREFIX])
 AC_SUBST([LIBGCRYPT_LIBDIR])
 
-dnl Library name of zlib suitable for 'dynamic-link'.
-GUIX_LIBZ_LIBDIR([libz_libdir])
-if test "x$libz_libdir" = "x"; then
-  LIBZ="libz"
-else
-  LIBZ="$libz_libdir/libz"
-fi
-AC_MSG_CHECKING([for zlib's shared library name])
-AC_MSG_RESULT([$LIBZ])
-AC_SUBST([LIBZ])
-
-dnl Library name of lzlib suitable for 'dynamic-link'.
-GUIX_LIBLZ_FILE_NAME([LIBLZ])
-if test "x$LIBLZ" = "x"; then
-  LIBLZ="liblz"
-else
-  # Strip the .so or .so.1 extension since that's what 'dynamic-link' expects.
-  LIBLZ="`echo $LIBLZ | sed -es'/\.so\(\.[[0-9.]]\+\)\?//g'`"
-fi
-AC_SUBST([LIBLZ])
-
 dnl Check for Guile-SSH, for the (guix ssh) module.
 GUIX_CHECK_GUILE_SSH
 AM_CONDITIONAL([HAVE_GUILE_SSH],
diff --git a/doc/build.scm b/doc/build.scm
index 7256fb9bb5..d77fc0a700 100644
--- a/doc/build.scm
+++ b/doc/build.scm
@@ -33,6 +33,7 @@
              (guix utils)
              (git)
              (gnu packages base)
+             (gnu packages compression)
              (gnu packages gawk)
              (gnu packages gettext)
              (gnu packages guile)
@@ -40,7 +41,10 @@
              (gnu packages iso-codes)
              (gnu packages texinfo)
              (gnu packages tex)
+             (ice-9 match)
+             (srfi srfi-1)
              (srfi srfi-19)
+             (srfi srfi-26)
              (srfi srfi-71))
 
 (define file-append*
@@ -204,9 +208,172 @@ content=\"width=device-width, initial-scale=1\" />"))
                (setenv "XFAIL_TESTS" "htmlprag.scm")
                #t))))))))
 
+(define (normalize-language-code language)        ;XXX: deduplicate
+  ;; Normalize LANGUAGE.  For instance, "zh_CN" becomes "zh-cn".
+  (string-map (match-lambda
+                (#\_ #\-)
+                (chr chr))
+              (string-downcase language)))
+
+(define* (html-manual-identifier-index manual base-url
+                                       #:key
+                                       (name "html-manual-identifier-index"))
+  "Return an index of all the identifiers that appear in MANUAL, a
+makeinfo-generated manual.  The index is a file that contains an alist; each
+key is an identifier and the associated value is the URL reference pointing to
+that identifier.  The URL is constructed by concatenating BASE-URL to the
+actual file name."
+  (define build
+    (with-extensions (list guile-lib/htmlprag-fixed)
+      (with-imported-modules '((guix build utils))
+        #~(begin
+            (use-modules (guix build utils)
+                         (htmlprag)
+                         (srfi srfi-1)
+                         (srfi srfi-26)
+                         (ice-9 ftw)
+                         (ice-9 match)
+                         (ice-9 threads)
+                         (ice-9 pretty-print))
+
+            (define file-url
+              (let ((prefix (string-append #$manual "/")))
+                (lambda (file)
+                  ;; Return the URL for FILE.
+                  (let ((file (string-drop file (string-length prefix)))
+                        (base #$base-url))
+                    (if (string-null? base)
+                        file
+                        (string-append base "/" file))))))
+
+            (define (underscore-decode str)
+              ;; Decode STR, an "underscore-encoded" string as produced by
+              ;; makeinfo for indexes, such as "_0025base_002dservices" for
+              ;; "%base-services".
+              (let loop ((str str)
+                         (result '()))
+                (match (string-index str #\_)
+                  (#f
+                   (string-concatenate-reverse (cons str result)))
+                  (index
+                   (let ((char (string->number
+                                (substring str (+ index 1) (+ index 5))
+                                16)))
+                     (loop (string-drop str (+ index 5))
+                           (append (list (string (integer->char char))
+                                         (string-take str index))
+                                   result)))))))
+
+            (define (anchor-id->key id)
+              ;; Convert ID, an anchor ID such as
+              ;; "index-pam_002dlimits_002dservice" to the corresponding key,
+              ;; "pam-limits-service" in this example.  Drop the suffix of
+              ;; duplicate anchor IDs like "operating_002dsystem-1".
+              (let ((id (if (any (cut string-suffix? <> id)
+                                 '("-1" "-2" "-3" "-4" "-5"))
+                            (string-drop-right id 2)
+                            id)))
+                (underscore-decode
+                 (string-drop id (string-length "index-")))))
+
+            (define* (collect-anchors file #:optional (anchors '()))
+              ;; Collect the anchors that appear in FILE, a makeinfo-generated
+              ;; file.  Grab those from <dt> tags, which corresponds to
+              ;; Texinfo @deftp, @defvr, etc.  Return ANCHORS augmented with
+              ;; more name/reference pairs.
+              (define string-or-entity?
+                (match-lambda
+                  ((? string?) #t)
+                  (('*ENTITY* _ ...) #t)
+                  (_ #f)))
+
+              (define (worthy-entry? lst)
+                ;; Attempt to match:
+                ;;   Scheme Variable: <strong>x</strong>
+                ;; but not:
+                ;;   <code>cups-configuration</code> parameter: …
+                (let loop ((lst lst))
+                  (match lst
+                    (((? string-or-entity?) rest ...)
+                     (loop rest))
+                    ((('strong _ ...) _ ...)
+                     #t)
+                    ((('span ('@ ('class "symbol-definition-category"))
+                             (? string-or-entity?) ...) rest ...)
+                     #t)
+                    (x
+                     #f))))
+
+              (let ((shtml (call-with-input-file file html->shtml)))
+                (let loop ((shtml shtml)
+                           (anchors anchors))
+                  (match shtml
+                    (('dt ('@ ('id id) _ ...) rest ...)
+                     (if (and (string-prefix? "index-" id)
+                              (worthy-entry? rest))
+                         (alist-cons (anchor-id->key id)
+                                     (string-append (file-url file)
+                                                    "#" id)
+                                     anchors)
+                         anchors))
+                    ((tag ('@ _ ...) body ...)
+                     (fold loop anchors body))
+                    ((tag body ...)
+                     (fold loop anchors body))
+                    (_ anchors)))))
+
+            (define (html-files directory)
+              ;; Return the list of HTML files under DIRECTORY.
+              (map (cut string-append directory "/" <>)
+                   (scandir #$manual (lambda (file)
+                                       (string-suffix? ".html" file)))))
+
+            (define anchors
+              (sort (concatenate
+                     (n-par-map (parallel-job-count)
+                                (cut collect-anchors <>)
+                                (html-files #$manual)))
+                    (match-lambda*
+                      (((key1 . url1) (key2 . url2))
+                       (if (string=? key1 key2)
+                           (string<? url1 url2)
+                           (string<? key1 key2))))))
+
+            (call-with-output-file #$output
+              (lambda (port)
+                (display ";; Identifier index for the manual.\n\n"
+                         port)
+                (pretty-print anchors port)))))))
+
+  (computed-file name build))
+
+(define* (html-identifier-indexes manual directory-suffix
+                                  #:key (languages %languages)
+                                  (manual-name %manual)
+                                  (base-url (const "")))
+  (map (lambda (language)
+         (let ((language (normalize-language-code language)))
+           (list language
+                 (html-manual-identifier-index
+                  (file-append manual "/" language directory-suffix)
+                  (base-url language)
+                  #:name (string-append manual-name "-html-index-"
+                                        language)))))
+       languages))
+
 (define* (syntax-highlighted-html input
                                   #:key
                                   (name "highlighted-syntax")
+                                  (languages %languages)
+                                  (mono-node-indexes
+                                   (html-identifier-indexes input ""
+                                                            #:languages
+                                                            languages))
+                                  (split-node-indexes
+                                   (html-identifier-indexes input
+                                                            "/html_node"
+                                                            #:languages
+                                                            languages))
                                   (syntax-css-url
                                    "/static/base/css/code.css"))
   "Return a derivation called NAME that processes all the HTML files in INPUT
@@ -310,10 +477,25 @@ its <pre class=\"lisp\"> blocks (as produced by 'makeinfo --html')."
                    (loop rest (cons (entity->string entity) strings)))
                   ((('span _ lst ...) . rest)     ;for <span class="roman">
                    (loop (append lst rest) strings))
+                  ((('var name) . rest)           ;for @var{name} within @lisp
+                   (loop rest (cons name strings))) ;XXX: losing formatting
                   (something
                    (pk 'unsupported-code-snippet something)
                    (primitive-exit 1)))))
 
+            (define (highlight-definition id category symbol args)
+              ;; Produce stylable HTML for the given definition (an @deftp,
+              ;; @deffn, or similar).
+              `(dt (@ (id ,id) (class "symbol-definition"))
+                   (span (@ (class "symbol-definition-category"))
+                         ,@category)
+                   (span (@ (class "symbol-definition-prototype"))
+                         ,symbol " " ,@args)))
+
+            (define (space? obj)
+              (and (string? obj)
+                   (string-every char-set:whitespace obj)))
+
             (define (syntax-highlight sxml anchors)
               ;; Recurse over SXML and syntax-highlight code snippets.
               (let loop ((sxml sxml))
@@ -332,6 +514,15 @@ its <pre class=\"lisp\"> blocks (as produced by 'makeinfo --html')."
                              (highlight lex-scheme
                                         (concatenate-snippets code-snippet)))
                             anchors)))
+
+                  ;; Replace the ugly <strong> used for @deffn etc., which
+                  ;; translate to <dt>, with more stylable markup.
+                  (('dt (@ ('id id)) category ... ('strong thing))
+                   (highlight-definition id category thing '()))
+                  (('dt (@ ('id id)) category ... ('strong thing)
+                        (? space?) ('em args ...))
+                   (highlight-definition id category thing args))
+
                   ((tag ('@ attributes ...) body ...)
                    `(,tag (@ ,@attributes) ,@(map loop body)))
                   ((tag body ...)
@@ -339,78 +530,6 @@ its <pre class=\"lisp\"> blocks (as produced by 'makeinfo --html')."
                   ((? string? str)
                    str))))
 
-            (define (underscore-decode str)
-              ;; Decode STR, an "underscore-encoded" string as produced by
-              ;; makeinfo for indexes, such as "_0025base_002dservices" for
-              ;; "%base-services".
-              (let loop ((str str)
-                         (result '()))
-                (match (string-index str #\_)
-                  (#f
-                   (string-concatenate-reverse (cons str result)))
-                  (index
-                   (let ((char (string->number
-                                (substring str (+ index 1) (+ index 5))
-                                16)))
-                     (loop (string-drop str (+ index 5))
-                           (append (list (string (integer->char char))
-                                         (string-take str index))
-                                   result)))))))
-
-            (define (anchor-id->key id)
-              ;; Convert ID, an anchor ID such as
-              ;; "index-pam_002dlimits_002dservice" to the corresponding key,
-              ;; "pam-limits-service" in this example.  Drop the suffix of
-              ;; duplicate anchor IDs like "operating_002dsystem-1".
-              (let ((id (if (any (cut string-suffix? <> id)
-                                 '("-1" "-2" "-3" "-4" "-5"))
-                            (string-drop-right id 2)
-                            id)))
-                (underscore-decode
-                 (string-drop id (string-length "index-")))))
-
-            (define* (collect-anchors file #:optional (vhash vlist-null))
-              ;; Collect the anchors that appear in FILE, a makeinfo-generated
-              ;; file.  Grab those from <dt> tags, which corresponds to
-              ;; Texinfo @deftp, @defvr, etc.  Return VHASH augmented with
-              ;; more name/reference pairs.
-              (define string-or-entity?
-                (match-lambda
-                  ((? string?) #t)
-                  (('*ENTITY* _ ...) #t)
-                  (_ #f)))
-
-              (define (worthy-entry? lst)
-                ;; Attempt to match:
-                ;;   Scheme Variable: <strong>x</strong>
-                ;; but not:
-                ;;   <code>cups-configuration</code> parameter: …
-                (let loop ((lst lst))
-                  (match lst
-                    (((? string-or-entity?) rest ...)
-                     (loop rest))
-                    ((('strong _ ...) _ ...)
-                     #t)
-                    (_ #f))))
-
-              (let ((shtml (call-with-input-file file html->shtml)))
-                (let loop ((shtml shtml)
-                           (vhash vhash))
-                  (match shtml
-                    (('dt ('@ ('id id)) rest ...)
-                     (if (and (string-prefix? "index-" id)
-                              (worthy-entry? rest))
-                         (vhash-cons (anchor-id->key id)
-                                     (string-append (basename file)
-                                                    "#" id)
-                                     vhash)
-                         vhash))
-                    ((tag ('@ _ ...) body ...)
-                     (fold loop vhash body))
-                    ((tag body ...)
-                     (fold loop vhash body))
-                    (_ vhash)))))
-
             (define (process-html file anchors)
               ;; Parse FILE and perform syntax highlighting for its Scheme
               ;; snippets.  Install the result to #$output.
@@ -442,38 +561,59 @@ its <pre class=\"lisp\"> blocks (as produced by 'makeinfo --html')."
             (define (html? file stat)
               (string-suffix? ".html" file))
 
+            (define language+node-anchors
+              (match-lambda
+                ((language files ...)
+                 (cons language
+                       (fold (lambda (file vhash)
+                               (let ((alist (call-with-input-file file read)))
+                                 ;; Use 'fold-right' so that the first entry
+                                 ;; wins (e.g., "car" from "Pairs" rather than
+                                 ;; from "rnrs base" in the Guile manual).
+                                 (fold-right (match-lambda*
+                                               (((key . value) vhash)
+                                                (vhash-cons key value vhash)))
+                                             vhash
+                                             alist)))
+                             vlist-null
+                             files)))))
+
+            (define mono-node-anchors
+              ;; List of language/vhash pairs, where each vhash maps an
+              ;; identifier to the corresponding URL in a single-page manual.
+              (map language+node-anchors '#$mono-node-indexes))
+
+            (define multi-node-anchors
+              ;; Likewise for split-node manuals.
+              (map language+node-anchors '#$split-node-indexes))
+
             ;; Install a UTF-8 locale so we can process UTF-8 files.
             (setenv "GUIX_LOCPATH"
                     #+(file-append glibc-utf8-locales "/lib/locale"))
             (setlocale LC_ALL "en_US.utf8")
 
             ;; First process the mono-node 'guix.html' files.
-            (n-par-for-each (parallel-job-count)
-                            (lambda (mono)
-                              (let ((anchors (collect-anchors mono)))
-                                (process-html mono anchors)))
-                            (find-files
-                             #$input
-                             "^guix(-cookbook|)(\\.[a-zA-Z_-]+)?\\.html$"))
-
-            ;; Next process the multi-node HTML files in two phases: (1)
-            ;; collect the list of anchors, and (2) perform
-            ;; syntax-highlighting.
-            (let* ((multi   (find-files #$input "^html_node$"
-                                        #:directories? #t))
-                   (anchors (n-par-map (parallel-job-count)
-                                       (lambda (multi)
-                                         (cons multi
-                                               (fold collect-anchors vlist-null
-                                                     (find-files multi html?))))
-                                       multi)))
-              (n-par-for-each (parallel-job-count)
-                              (lambda (file)
-                                (let ((anchors (assoc-ref anchors (dirname file))))
-                                  (process-html file anchors)))
-                              (append-map (lambda (multi)
-                                            (find-files multi html?))
-                                          multi)))
+            (for-each (match-lambda
+                        ((language . anchors)
+                         (let ((files (find-files
+                                       (string-append #$input "/" language)
+                                       "^guix(-cookbook|)(\\.[a-zA-Z_-]+)?\\.html$")))
+                           (n-par-for-each (parallel-job-count)
+                                           (cut process-html <> anchors)
+                                           files))))
+                      mono-node-anchors)
+
+            ;; Process the multi-node HTML files.
+            (for-each (match-lambda
+                        ((language . anchors)
+                         (let ((files (find-files
+                                       (string-append #$input "/" language
+                                                      "/html_node")
+                                       "\\.html$")))
+                           (n-par-for-each (parallel-job-count)
+                                           (cut process-html <> anchors)
+                                           files))))
+                      multi-node-anchors)
 
             ;; Last, copy non-HTML files as is.
             (for-each copy-as-is
@@ -484,6 +624,8 @@ its <pre class=\"lisp\"> blocks (as produced by 'makeinfo --html')."
 (define* (html-manual source #:key (languages %languages)
                       (version "0.0")
                       (manual %manual)
+                      (mono-node-indexes (map list languages))
+                      (split-node-indexes (map list languages))
                       (date 1)
                       (options %makeinfo-html-options))
   "Return the HTML manuals built from SOURCE for all LANGUAGES, with the given
@@ -572,6 +714,8 @@ makeinfo OPTIONS."
   (let* ((name   (string-append manual "-html-manual"))
          (manual (computed-file name build)))
     (syntax-highlighted-html manual
+                             #:mono-node-indexes mono-node-indexes
+                             #:split-node-indexes split-node-indexes
                              #:name (string-append name "-highlighted"))))
 
 (define* (pdf-manual source #:key (languages %languages)
@@ -918,6 +1062,8 @@ languages:\n"
                           #:key (languages %languages)
                           (version "0.0")
                           (date (time-second (current-time time-utc)))
+                          (mono-node-indexes (map list %languages))
+                          (split-node-indexes (map list %languages))
                           (manual %manual))
   "Return the union of the HTML and PDF manuals, as well as the indexes."
   (directory-union (string-append manual "-manual")
@@ -928,7 +1074,12 @@ languages:\n"
                                 #:version version
                                 #:manual manual))
                         (list html-manual-indexes
-                              html-manual pdf-manual))
+                              (lambda (source . args)
+                                (apply html-manual source
+                                       #:mono-node-indexes mono-node-indexes
+                                       #:split-node-indexes split-node-indexes
+                                       args))
+                              pdf-manual))
                    #:copy? #t))
 
 (define (latest-commit+date directory)
@@ -942,17 +1093,145 @@ commit date (an integer)."
     (values (oid->string oid) (commit-time commit))))
 
 
+;;;
+;;; Guile manual.
+;;;
+
+(define guile-manual
+  ;; The Guile manual as HTML, including both the mono-node "guile.html" and
+  ;; the split-node "html_node" directory.
+  (let ((guile guile-3.0-latest))
+    (computed-file (string-append "guile-manual-" (package-version guile))
+                   (with-imported-modules '((guix build utils))
+                     #~(begin
+                         (use-modules (guix build utils)
+                                      (ice-9 match))
+
+                         (setenv "PATH"
+                                 (string-append #+tar "/bin:"
+                                                #+xz "/bin:"
+                                                #+texinfo "/bin"))
+                         (invoke "tar" "xf" #$(package-source guile))
+                         (mkdir-p (string-append #$output "/en/html_node"))
+
+                         (let* ((texi (find-files "." "^guile\\.texi$"))
+                                (documentation (match texi
+                                                 ((file) (dirname file)))))
+                           (with-directory-excursion documentation
+                             (invoke "makeinfo" "--html" "--no-split"
+                                     "-o" (string-append #$output
+                                                         "/en/guile.html")
+                                     "guile.texi")
+                             (invoke "makeinfo" "--html" "-o" "split"
+                                     "guile.texi")
+                             (copy-recursively
+                              "split"
+                              (string-append #$output "/en/html_node")))))))))
+
+(define %guile-manual-base-url
+  "https://www.gnu.org/software/guile/manual")
+
+(define (for-all-languages index)
+  (map (lambda (language)
+         (list language index))
+       %languages))
+
+(define guile-mono-node-indexes
+  ;; The Guile manual is only available in English so use the same index in
+  ;; all languages.
+  (for-all-languages
+   (html-manual-identifier-index (file-append guile-manual "/en")
+                                 %guile-manual-base-url
+                                 #:name "guile-html-index-en")))
+
+(define guile-split-node-indexes
+  (for-all-languages
+   (html-manual-identifier-index (file-append guile-manual "/en/html_node")
+                                 (string-append %guile-manual-base-url
+                                                "/html_node")
+                                 #:name "guile-html-index-en")))
+
+(define (merge-index-alists alist1 alist2)
+  "Merge ALIST1 and ALIST2, both of which are list of tuples like:
+
+  (LANGUAGE INDEX1 INDEX2 ...)
+
+where LANGUAGE is a string like \"en\" and INDEX1 etc. are indexes as returned
+by 'html-identifier-indexes'."
+  (let ((languages (delete-duplicates
+                    (append (match alist1
+                              (((languages . _) ...)
+                               languages))
+                            (match alist2
+                              (((languages . _) ...)
+                               languages))))))
+    (map (lambda (language)
+           (cons language
+                 (append (or (assoc-ref alist1 language) '())
+                         (or (assoc-ref alist2 language) '()))))
+         languages)))
+
+
 (let* ((root (canonicalize-path
               (string-append (current-source-directory) "/..")))
-       (commit date (latest-commit+date root)))
+       (commit date (latest-commit+date root))
+       (version (or (getenv "GUIX_MANUAL_VERSION")
+                    (string-take commit 7)))
+       (select? (let ((vcs? (git-predicate root)))
+                  (lambda (file stat)
+                    (and (vcs? file stat)
+                         ;; Filter out this file.
+                         (not (string=? (basename file) "build.scm"))))))
+       (source (local-file root "guix" #:recursive? #t
+                           #:select? select?)))
+
+  (define guix-manual
+    (html-manual source
+                 #:manual "guix"
+                 #:version version
+                 #:date date))
+
+  (define guix-mono-node-indexes
+    ;; Alist of indexes for GUIX-MANUAL, where each key is a language code and
+    ;; each value is a file-like object containing the identifier index.
+    (html-identifier-indexes guix-manual ""
+                             #:manual-name "guix"
+                             #:base-url (if (string=? %manual "guix")
+                                            (const "")
+                                            (cut string-append
+                                              "/manual/devel/" <>))
+                             #:languages %languages))
+
+  (define guix-split-node-indexes
+    ;; Likewise for the split-node variant of GUIX-MANUAL.
+    (html-identifier-indexes guix-manual "/html_node"
+                             #:manual-name "guix"
+                             #:base-url (if (string=? %manual "guix")
+                                            (const "")
+                                            (cut string-append
+                                              "/manual/devel/" <>
+                                              "/html_node"))
+                             #:languages %languages))
+
+  (define mono-node-indexes
+    (merge-index-alists guix-mono-node-indexes guile-mono-node-indexes))
+
+  (define split-node-indexes
+    (merge-index-alists guix-split-node-indexes guile-split-node-indexes))
+
   (format (current-error-port)
           "building manual from work tree around commit ~a, ~a~%"
           commit
           (let* ((time (make-time time-utc 0 date))
                  (date (time-utc->date time)))
             (date->string date "~e ~B ~Y")))
-  (pdf+html-manual (local-file root "guix" #:recursive? #t
-                               #:select? (git-predicate root))
-                   #:version (or (getenv "GUIX_MANUAL_VERSION")
-                                 (string-take commit 7))
+
+  (pdf+html-manual source
+                   ;; Always use the identifier indexes of GUIX-MANUAL and
+                   ;; GUILE-MANUAL.  Both "guix" and "guix-cookbook" can
+                   ;; contain links to definitions that appear in either of
+                   ;; these two manuals.
+                   #:mono-node-indexes mono-node-indexes
+                   #:split-node-indexes split-node-indexes
+                   #:version version
                    #:date date))
diff --git a/doc/contributing.texi b/doc/contributing.texi
index f5d73e78aa..d1619d3a65 100644
--- a/doc/contributing.texi
+++ b/doc/contributing.texi
@@ -28,6 +28,7 @@ choice.
 * Submitting Patches::          Share your work.
 * Tracking Bugs and Patches::   Using Debbugs.
 * Commit Access::               Pushing to the official repository.
+* Updating the Guix Package::   Updating the Guix package definition.
 @end menu
 
 @node Building from Git
@@ -42,13 +43,14 @@ git clone https://git.savannah.gnu.org/git/guix.git
 
 @cindex authentication, of a Guix checkout
 How do you ensure that you obtained a genuine copy of the repository?
-To do that, run @command{guix git authenticate}, passing if the commit
+To do that, run @command{guix git authenticate}, passing it the commit
 and OpenPGP fingerprint of the @dfn{channel introduction}
 (@pxref{Invoking guix git authenticate}):
 
 @c The commit and fingerprint below must match those of the channel
 @c introduction in '%default-channels'.
 @example
+git fetch origin keyring:keyring
 guix git authenticate 9edb3f66fd807b096b48283debdcddccfea34bad \
   "BBB0 2DDF 2CEA F6A8 0D1D  E643 A2A0 6DF2 A33A 54FA"
 @end example
@@ -120,8 +122,9 @@ more information.
 Then, run @command{./configure} as usual.  Make sure to pass
 @code{--localstatedir=@var{directory}} where @var{directory} is the
 @code{localstatedir} value used by your current installation (@pxref{The
-Store}, for information about this).  We recommend to use the value
-@code{/var}.
+Store}, for information about this), usually @file{/var}.  Note that you
+will probably not run @command{make install} at the end (you don't have
+to) but it's still important to pass the right @code{localstatedir}.
 
 Finally, you have to invoke @code{make check} to run tests
 (@pxref{Running the Test Suite}).  If anything
@@ -137,6 +140,16 @@ make authenticate
 
 The first run takes a couple of minutes, but subsequent runs are faster.
 
+Or, when your configuration for your local Git repository doesn't match
+the default one, you can provide the reference for the @code{keyring}
+branch through the variable @code{GUIX_GIT_KEYRING}.  The following
+example assumes that you have a Git remote called @samp{myremote}
+pointing to the official repository:
+
+@example
+make authenticate GUIX_GIT_KEYRING=myremote/keyring
+@end example
+
 @quotation Note
 You are advised to run @command{make authenticate} after every
 @command{git pull} invocation.  This ensures you keep receiving valid
@@ -153,18 +166,17 @@ actually installing them.  So that you can distinguish between your
 ``end-user'' hat and your ``motley'' costume.
 
 To that end, all the command-line tools can be used even if you have not
-run @code{make install}.  To do that, you first need to have an environment
-with all the dependencies available (@pxref{Building from Git}), and then
-simply prefix each command with
-@command{./pre-inst-env} (the @file{pre-inst-env} script lives in the
-top build tree of Guix; it is generated by @command{./configure}).
-An example@footnote{The @option{-E} flag to
-@command{sudo} guarantees that @code{GUILE_LOAD_PATH} is correctly set
-such that @command{guix-daemon} and the tools it uses can find the Guile
-modules they need.}:
+run @code{make install}.  To do that, you first need to have an
+environment with all the dependencies available (@pxref{Building from
+Git}), and then simply prefix each command with @command{./pre-inst-env}
+(the @file{pre-inst-env} script lives in the top build tree of Guix; it
+is generated by running @command{./bootstrap} followed by
+@command{./configure}).  As an example, here is how you would build the
+@code{hello} package as defined in your working tree (this assumes
+@command{guix-daemon} is already running on your system; it's OK if it's
+a different version):
 
 @example
-$ sudo -E ./pre-inst-env guix-daemon --build-users-group=guixbuild
 $ ./pre-inst-env guix build hello
 @end example
 
@@ -199,6 +211,17 @@ scheme@@(guile-user)> (length snakes)
 $1 = 361
 @end example
 
+If you are hacking on the daemon and its supporting code or if
+@command{guix-daemon} is not already running on your system, you can
+launch it straight from the build tree@footnote{The @option{-E} flag to
+@command{sudo} guarantees that @code{GUILE_LOAD_PATH} is correctly set
+such that @command{guix-daemon} and the tools it uses can find the Guile
+modules they need.}:
+
+@example
+$ sudo -E ./pre-inst-env guix-daemon --build-users-group=guixbuild
+@end example
+
 The @command{pre-inst-env} script sets up all the environment variables
 necessary to support this, including @env{PATH} and @env{GUILE_LOAD_PATH}.
 
@@ -352,7 +375,7 @@ Once your package builds correctly, please send us a patch
 (@pxref{Submitting Patches}).  Well, if you need help, we will be happy to
 help you too.  Once the patch is committed in the Guix repository, the
 new package automatically gets built on the supported platforms by
-@url{@value{SUBSTITUTE-SERVER}, our continuous integration system}.
+@url{@value{SUBSTITUTE-URL}, our continuous integration system}.
 
 @cindex substituter
 Users can obtain the new package definition simply by running
@@ -368,6 +391,8 @@ needed is to review and apply the patch.
 * Package Naming::              What's in a name?
 * Version Numbers::             When the name is not enough.
 * Synopses and Descriptions::   Helping users find the right package.
+* Snippets versus Phases::      Whether to use a snippet, or a build phase.
+* Emacs Packages::              Your Elisp fix.
 * Python Modules::              A touch of British comedy.
 * Perl Modules::                Little pearls.
 * Java Packages::               Coffee break.
@@ -568,8 +593,8 @@ such as @command{guix package --show} take care of rendering it
 appropriately.
 
 Synopses and descriptions are translated by volunteers
-@uref{https://translationproject.org/domain/guix-packages.html, at the
-Translation Project} so that as many users as possible can read them in
+@uref{https://translate.fedoraproject.org/projects/guix/packages, at
+Weblate} so that as many users as possible can read them in
 their native language.  User interfaces search them and display them in
 the language specified by the current locale.
 
@@ -592,12 +617,66 @@ to make recommendations or instructions visible to them by inserting
 special comments like this (@pxref{xgettext Invocation,,, gettext, GNU
 Gettext}):
 
-@example
+@lisp
 ;; TRANSLATORS: "X11 resize-and-rotate" should not be translated.
 (description "ARandR is designed to provide a simple visual front end
 for the X11 resize-and-rotate (RandR) extension. @dots{}")
-@end example
+@end lisp
+
+@node Snippets versus Phases
+@subsection Snippets versus Phases
+
+@cindex snippets, when to use
+The boundary between using an origin snippet versus a build phase to
+modify the sources of a package can be elusive.  Origin snippets are
+typically used to remove unwanted files such as bundled libraries,
+nonfree sources, or to apply simple substitutions.  The source derived
+from an origin should produce a source that can be used to build the
+package on any system that the upstream package supports (i.e., act as
+the corresponding source).  In particular, origin snippets must not
+embed store items in the sources; such patching should rather be done
+using build phases.  Refer to the @code{origin} record documentation for
+more information (@pxref{origin Reference}).
+
+@node Emacs Packages
+@subsection Emacs Packages
+
+@cindex emacs, packaging
+@cindex elisp, packaging
+Emacs packages should preferably use the Emacs build system
+(@pxref{emacs-build-system}), for uniformity and the benefits provided
+by its build phases, such as the auto-generation of the autoloads file
+and the byte compilation of the sources.  Because there is no
+standardized way to run a test suite for Emacs packages, tests are
+disabled by default.  When a test suite is available, it should be
+enabled by setting the @code{#:tests?} argument to @code{#true}.  By
+default, the command to run the test is @command{make check}, but any
+command can be specified via the @code{#:test-command} argument.  The
+@code{#:test-command} argument expects a list containing a command and
+its arguments, to be invoked during the @code{check} phase.
+
+The Elisp dependencies of Emacs packages are typically provided as
+@code{propagated-inputs} when required at run time.  As for other
+packages, build or test dependencies should be specified as
+@code{native-inputs}.
+
+Emacs packages sometimes depend on resources directories that should be
+installed along the Elisp files.  The @code{#:include} argument can be
+used for that purpose, by specifying a list of regexps to match.  The
+best practice when using the @code{#:include} argument is to extend
+rather than override its default value (accessible via the
+@code{%default-include} variable).  As an example, a yasnippet extension
+package typically include a @file{snippets} directory, which could be
+copied to the installation directory using:
 
+@lisp
+#:include (cons "^snippets/" %default-include))
+@end lisp
+
+When encountering problems, it is wise to check for the presence of the
+@code{Package-Requires} extension header in the package main source
+file, and whether any dependencies and their versions listed therein are
+satisfied.
 
 @node Python Modules
 @subsection Python Modules
@@ -827,7 +906,8 @@ to proper type error reports.
 Guix code should define appropriate data types (for instance, using
 @code{define-record-type*}) rather than abuse lists.  In addition, it
 should use pattern matching, via Guile’s @code{(ice-9 match)} module,
-especially when matching lists.
+especially when matching lists (@pxref{Pattern Matching,,, guile, GNU
+Guile Reference Manual}).
 
 @node Formatting Code
 @subsection Formatting Code
@@ -971,7 +1051,7 @@ to other packages unwillingly retained.  It may also help determine
 whether to split the package (@pxref{Packages with Multiple Outputs}),
 and which optional dependencies should be used.  In particular, avoid adding
 @code{texlive} as a dependency: because of its extreme size, use
-@code{texlive-tiny} or @code{texlive-union} instead.
+the @code{texlive-tiny} package or @code{texlive-union} procedure instead.
 
 @item
 For important changes, check that dependent package (if applicable) are
@@ -1000,7 +1080,7 @@ changes).  This branch is intended to be merged in @code{master} every
 6 months or so.
 @end table
 
-All these branches are @uref{@value{SUBSTITUTE-SERVER},
+All these branches are @uref{@value{SUBSTITUTE-URL},
 tracked by our build farm} and merged into @code{master} once
 everything has been successfully built.  This allows us to fix issues
 before they hit users, and to reduce the window during which pre-built
@@ -1297,3 +1377,40 @@ only push their own awesome changes, but also offer some of their time
 @emph{reviewing} and pushing other people's changes.  As a committer,
 you're welcome to use your expertise and commit rights to help other
 contributors, too!
+
+@node Updating the Guix Package
+@section Updating the Guix Package
+
+@cindex update-guix-package, updating the guix package
+It is sometimes desirable to update the @code{guix} package itself (the
+package defined in @code{(gnu packages package-management)}), for
+example to make new daemon features available for use by the
+@code{guix-service-type} service type.  In order to simplify this task,
+the following command can be used:
+
+@example
+make update-guix-package
+@end example
+
+The @code{update-guix-package} make target will use the last known
+@emph{commit} corresponding to @code{HEAD} in your Guix checkout,
+compute the hash of the Guix sources corresponding to that commit and
+update the @code{commit}, @code{revision} and hash of the @code{guix}
+package definition.
+
+To validate that the updated @code{guix} package hashes are correct and
+that it can be built successfully, the following command can be run from
+the directory of your Guix checkout:
+
+@example
+./pre-inst-env guix build guix
+@end example
+
+To guard against accidentally updating the @code{guix} package to a
+commit that others can't refer to, a check is made that the commit used
+has already been pushed to the Savannah-hosted Guix git repository.
+
+This check can be disabled, @emph{at your own peril}, by setting the
+@code{GUIX_ALLOW_ME_TO_USE_PRIVATE_COMMIT} environment variable.  When
+this variable is set, the updated package source is also added to the
+store.  This is used as part of the release process of Guix.
diff --git a/doc/guix-cookbook.texi b/doc/guix-cookbook.texi
index f541592d13..1cddaa7faf 100644
--- a/doc/guix-cookbook.texi
+++ b/doc/guix-cookbook.texi
@@ -16,6 +16,7 @@ Copyright @copyright{} 2020 Matthew Brooks@*
 Copyright @copyright{} 2020 Marcin Karpezo@*
 Copyright @copyright{} 2020 Brice Waegeneire@*
 Copyright @copyright{} 2020 André Batista@*
+Copyright @copyright{} 2020 Christopher Lemmer Webber
 
 Permission is granted to copy, distribute and/or modify this document
 under the terms of the GNU Free Documentation License, Version 1.3 or
@@ -56,14 +57,16 @@ its API, and related concepts.
 @c how to join your own translation team and how to report issues with the
 @c translation.
 If you would like to translate this document in your native language, consider
-joining the @uref{https://translationproject.org/domain/guix-cookbook.html,
-Translation Project}.
+joining
+@uref{https://translate.fedoraproject.org/projects/guix/documentation-cookbook,
+Weblate}.
 
 @menu
 * Scheme tutorials::            Meet your new favorite language!
 * Packaging::                   Packaging tutorials
 * System Configuration::        Customizing the GNU System
 * Advanced package management:: Power to the users!
+* Environment management::      Control environment
 
 * Acknowledgments::             Thanks!
 * GNU Free Documentation License::  The license of this document.
@@ -126,8 +129,9 @@ REPL.
 @item
 Scheme syntax boils down to a tree of expressions (or @emph{s-expression} in
 Lisp lingo).  An expression can be a literal such as numbers and strings, or a
-compound which is a parenthesized list of compounds and literals.  @code{#t}
-and @code{#f} stand for the Booleans ``true'' and ``false'', respectively.
+compound which is a parenthesized list of compounds and literals.  @code{#true}
+and @code{#false} (abbreviated @code{#t} and @code{#f}) stand for the
+Booleans ``true'' and ``false'', respectively.
 
 Examples of valid expressions:
 
@@ -247,8 +251,10 @@ definitions.
 @end lisp
 
 @item
-The keyword syntax is @code{#:}; it is used to create unique identifiers.
-@pxref{Keywords,,, guile, GNU Guile Reference Manual}.
+@dfn{Keywords} are typically used to identify the named parameters of a
+procedure.  They are prefixed by @code{#:} (hash, colon) followed by
+alphanumeric characters: @code{#:like-this}.
+@xref{Keywords,,, guile, GNU Guile Reference Manual}.
 
 @item
 The percentage @code{%} is typically used for read-only global variables in
@@ -789,11 +795,11 @@ another, more sophisticated package (slightly modified from the source):
                 (snippet '(begin
                             ;; Remove bundled software.
                             (delete-file-recursively "deps")
-                            #t))))
+                            #true))))
       (build-system cmake-build-system)
       (outputs '("out" "debug"))
       (arguments
-       `(#:tests? #t                            ; Run the test suite (this is the default)
+       `(#:tests? #true                         ; Run the test suite (this is the default)
          #:configure-flags '("-DUSE_SHA1DC=ON") ; SHA-1 collision detection
          #:phases
          (modify-phases %standard-phases
@@ -804,12 +810,12 @@ another, more sophisticated package (slightly modified from the source):
                (substitute* "tests/clar/fs.h"
                  (("/bin/cp") (which "cp"))
                  (("/bin/rm") (which "rm")))
-               #t))
+               #true))
            ;; Run checks more verbosely.
            (replace 'check
              (lambda _ (invoke "./libgit2_clar" "-v" "-Q")))
            (add-after 'unpack 'make-files-writable-for-tests
-               (lambda _ (for-each make-file-writable (find-files "." ".*")))))))
+             (lambda _ (for-each make-file-writable (find-files "." ".*")))))))
       (inputs
        `(("libssh2" ,libssh2)
          ("http-parser" ,http-parser)
@@ -1027,7 +1033,7 @@ If you want to know more about what happens during those phases, consult the
 associated procedures.
 
 For instance, as of this writing the definition of @code{unpack} for the GNU build
-system is
+system is:
 
 @lisp
 (define* (unpack #:key source #:allow-other-keys)
@@ -1042,13 +1048,13 @@ working directory."
         ;; Preserve timestamps (set to the Epoch) on the copied tree so that
         ;; things work deterministically.
         (copy-recursively source "."
-                          #:keep-mtime? #t))
+                          #:keep-mtime? #true))
       (begin
         (if (string-suffix? ".zip" source)
             (invoke "unzip" source)
             (invoke "tar" "xvf" source))
         (chdir (first-subdirectory "."))))
-  #t)
+  #true)
 @end lisp
 
 Note the @code{chdir} call: it changes the working directory to where the source was
@@ -1064,16 +1070,16 @@ the following forms:
 
 @itemize
 @item
-@code{(add-before PHASE NEW-PHASE PROCEDURE)}: Run @code{PROCEDURE} named @code{NEW-PHASE} before @code{PHASE}.
+@code{(add-before @var{phase} @var{new-phase} @var{procedure})}: Run @var{procedure} named @var{new-phase} before @var{phase}.
 @item
-@code{(add-after PHASE NEW-PHASE PROCEDURE)}: Same, but afterwards.
+@code{(add-after @var{phase} @var{new-phase} @var{procedure})}: Same, but afterwards.
 @item
-@code{(replace PHASE PROCEDURE)}.
+@code{(replace @var{phase} @var{procedure})}.
 @item
-@code{(delete PHASE)}.
+@code{(delete @var{phase})}.
 @end itemize
 
-The @code{PROCEDURE} supports the keyword arguments @code{inputs} and @code{outputs}.  Each
+The @var{procedure} supports the keyword arguments @code{inputs} and @code{outputs}.  Each
 input (whether @emph{native}, @emph{propagated} or not) and output directory is referenced
 by their name in those variables.  Thus @code{(assoc-ref outputs "out")} is the store
 directory of the main output of the package.  A phase procedure may look like
@@ -1081,16 +1087,16 @@ this:
 
 @lisp
 (lambda* (#:key inputs outputs #:allow-other-keys)
-  (let (((bash-directory (assoc-ref inputs "bash"))
-         (output-directory (assoc-ref outputs "out"))
-         (doc-directory (assoc-ref outputs "doc"))
-  ; ...
-  #t)
+  (let ((bash-directory (assoc-ref inputs "bash"))
+        (output-directory (assoc-ref outputs "out"))
+        (doc-directory (assoc-ref outputs "doc")))
+    ;; ...
+    #true))
 @end lisp
 
-The procedure must return @code{#t} on success.  It's brittle to rely on the return
+The procedure must return @code{#true} on success.  It's brittle to rely on the return
 value of the last expression used to tweak the phase because there is no
-guarantee it would be a @code{#t}.  Hence the trailing @code{#t} to ensure the right value
+guarantee it would be a @code{#true}.  Hence the trailing @code{#true} to ensure the right value
 is returned on success.
 
 @subsubsection Code staging
@@ -1116,7 +1122,7 @@ Some of those functions can be found in
 @samp{$GUIX_CHECKOUT/guix/guix/build/utils.scm}.  Most of them mirror the behaviour
 of the traditional Unix system commands:
 
-@table @asis
+@table @code
 @item which
 Like the @samp{which} system command.
 @item find-files
@@ -1140,6 +1146,9 @@ then restore the previous working directory.
 A ``@command{sed}-like'' function.
 @end table
 
+@xref{Build Utilities,,, guix, GNU Guix Reference Manual}, for more
+information on these utilities.
+
 @subsubsection Module prefix
 
 The license in our last example needs a prefix: this is because of how the
@@ -1345,10 +1354,13 @@ reference.
 
 @menu
 * Customizing the Kernel::       Creating and using a custom Linux kernel on Guix System.
+* Guix System Image API::        Customizing images to target specific platforms.
 * Connecting to Wireguard VPN::  Connecting to a Wireguard VPN.
 * Customizing a Window Manager:: Handle customization of a Window manager on Guix System.
+* Running Guix on a Linode Server:: Running Guix on a Linode Server
 * Setting up a bind mount:: Setting up a bind mount in the file-systems definition.
 * Getting substitutes from Tor:: Configuring Guix daemon to get substitutes through Tor.
+* Setting up NGINX with Lua:: Configuring NGINX web-server to load Lua modules.
 @end menu
 
 @node Customizing the Kernel
@@ -1381,8 +1393,8 @@ creates a package.
                            #:key
                            ;; A function that takes an arch and a variant.
                            ;; See kernel-config for an example.
-                           (extra-version #f)
-                           (configuration-file #f)
+                           (extra-version #false)
+                           (configuration-file #false)
                            (defconfig "defconfig")
                            (extra-options %default-extra-linux-options)
                            (patches (list %boot-logo-patch)))
@@ -1425,7 +1437,7 @@ the @code{make-linux-libre} package definition:
       (begin
         (copy-file config ".config")
         (chmod ".config" #o666))
-      (invoke "make" ,defconfig))
+      (invoke "make" ,defconfig)))
 @end lisp
 
 Below is a sample kernel package.  The @code{linux-libre} package is nothing
@@ -1456,7 +1468,7 @@ it:
 @lisp
 (define %default-extra-linux-options
   `(;; https://lists.gnu.org/archive/html/guix-devel/2014-04/msg00039.html
-   ("CONFIG_DEVPTS_MULTIPLE_INSTANCES" . #t)
+   ("CONFIG_DEVPTS_MULTIPLE_INSTANCES" . #true)
    ;; Modules required for initrd:
    ("CONFIG_NET_9P" . m)
    ("CONFIG_NET_9P_VIRTIO" . m)
@@ -1473,9 +1485,9 @@ it:
   (string-join (map (match-lambda
                       ((option . 'm)
                        (string-append option "=m"))
-                      ((option . #t)
+                      ((option . #true)
                        (string-append option "=y"))
-                      ((option . #f)
+                      ((option . #false)
                        (string-append option "=n")))
                     options)
                "\n"))
@@ -1491,7 +1503,7 @@ And in the custom configure script from the `make-linux-libre` package:
   (display extra-configuration port)
   (close-port port))
 
-(invoke "make" "oldconfig"))))
+(invoke "make" "oldconfig")
 @end lisp
 
 So by not providing a configuration-file the @file{.config} starts blank, and
@@ -1591,6 +1603,217 @@ likely that you'll need to modify the initrd on a machine using a custom
 kernel, since certain modules which are expected to be built may not be
 available for inclusion into the initrd.
 
+@node Guix System Image API
+@section Guix System Image API
+
+Historically, Guix System is centered around an @code{operating-system}
+structure.  This structure contains various fields ranging from the
+bootloader and kernel declaration to the services to install.
+
+Depending on the target machine, that can go from a standard
+@code{x86_64} machine to a small ARM single board computer such as the
+Pine64, the image constraints can vary a lot.  The hardware
+manufacturers will impose different image formats with various partition
+sizes and offsets.
+
+To create images suitable for all those machines, a new abstraction is
+necessary: that's the goal of the @code{image} record.  This record
+contains all the required information to be transformed into a
+standalone image, that can be directly booted on any target machine.
+
+@lisp
+(define-record-type* <image>
+  image make-image
+  image?
+  (name               image-name ;symbol
+                      (default #f))
+  (format             image-format) ;symbol
+  (target             image-target
+                      (default #f))
+  (size               image-size  ;size in bytes as integer
+                      (default 'guess))
+  (operating-system   image-operating-system  ;<operating-system>
+                      (default #f))
+  (partitions         image-partitions ;list of <partition>
+                      (default '()))
+  (compression?       image-compression? ;boolean
+                      (default #t))
+  (volatile-root?     image-volatile-root? ;boolean
+                      (default #t))
+  (substitutable?     image-substitutable? ;boolean
+                      (default #t)))
+@end lisp
+
+This record contains the operating-system to instantiate. The
+@code{format} field defines the image type and can be @code{efi-raw},
+@code{qcow2} or @code{iso9660} for instance. In the future, it could be
+extended to @code{docker} or other image types.
+
+A new directory in the Guix sources is dedicated to images definition. For now
+there are four files:
+
+@itemize @bullet
+@item @file{gnu/system/images/hurd.scm}
+@item @file{gnu/system/images/pine64.scm}
+@item @file{gnu/system/images/novena.scm}
+@item @file{gnu/system/images/pinebook-pro.scm}
+@end itemize
+
+Let's have a look to @file{pine64.scm}. It contains the
+@code{pine64-barebones-os} variable which is a minimal definition of an
+operating-system dedicated to the @b{Pine A64 LTS} board.
+
+@lisp
+(define pine64-barebones-os
+  (operating-system
+   (host-name "vignemale")
+   (timezone "Europe/Paris")
+   (locale "en_US.utf8")
+   (bootloader (bootloader-configuration
+                (bootloader u-boot-pine64-lts-bootloader)
+                (target "/dev/vda")))
+   (initrd-modules '())
+   (kernel linux-libre-arm64-generic)
+   (file-systems (cons (file-system
+                        (device (file-system-label "my-root"))
+                        (mount-point "/")
+                        (type "ext4"))
+                       %base-file-systems))
+   (services (cons (service agetty-service-type
+                            (agetty-configuration
+                             (extra-options '("-L")) ; no carrier detect
+                             (baud-rate "115200")
+                             (term "vt100")
+                             (tty "ttyS0")))
+                   %base-services))))
+@end lisp
+
+The @code{kernel} and @code{bootloader} fields are pointing to packages
+dedicated to this board.
+
+Right below, the @code{pine64-image-type} variable is also defined.
+
+@lisp
+(define pine64-image-type
+  (image-type
+   (name 'pine64-raw)
+   (constructor (cut image-with-os arm64-disk-image <>))))
+@end lisp
+
+It's using a record we haven't talked about yet, the @code{image-type} record,
+defined this way:
+
+@lisp
+(define-record-type* <image-type>
+  image-type make-image-type
+  image-type?
+  (name           image-type-name) ;symbol
+  (constructor    image-type-constructor)) ;<operating-system> -> <image>
+@end lisp
+
+The main purpose of this record is to associate a name to a procedure
+transforming an @code{operating-system} to an image.  To understand why
+it is necessary, let's have a look to the command producing an image
+from an @code{operating-system} configuration file:
+
+@example
+guix system image my-os.scm
+@end example
+
+This command expects an @code{operating-system} configuration but how
+should we indicate that we want an image targeting a Pine64 board?  We
+need to provide an extra information, the @code{image-type}, by passing
+the @code{--image-type} or @code{-t} flag, this way:
+
+@example
+guix system image --image-type=pine64-raw my-os.scm
+@end example
+
+This @code{image-type} parameter points to the @code{pine64-image-type}
+defined above. Hence, the @code{operating-system} declared in
+@code{my-os.scm} will be applied the @code{(cut image-with-os
+arm64-disk-image <>)} procedure to turn it into an image.
+
+The resulting image looks like:
+
+@lisp
+(image
+ (format 'disk-image)
+ (target "aarch64-linux-gnu")
+ (operating-system my-os)
+ (partitions
+  (list (partition
+         (inherit root-partition)
+         (offset root-offset)))))
+@end lisp
+
+which is the aggregation of the @code{operating-system} defined in
+ @code{my-os.scm} to the @code{arm64-disk-image} record.
+
+But enough Scheme madness. What does this image API bring to the Guix user?
+
+One can run:
+
+@example
+mathieu@@cervin:~$ guix system --list-image-types
+The available image types are:
+
+   - pinebook-pro-raw
+   - pine64-raw
+   - novena-raw
+   - hurd-raw
+   - hurd-qcow2
+   - qcow2
+   - uncompressed-iso9660
+   - efi-raw
+   - arm64-raw
+   - arm32-raw
+   - iso9660
+@end example
+
+and by writing an @code{operating-system} file based on
+@code{pine64-barebones-os}, you can customize your image to your
+preferences in a file (@file{my-pine-os.scm}) like this:
+
+@lisp
+(use-modules (gnu services linux)
+             (gnu system images pine64))
+
+(let ((base-os pine64-barebones-os))
+  (operating-system
+    (inherit base-os)
+    (timezone "America/Indiana/Indianapolis")
+    (services
+     (cons
+      (service earlyoom-service-type
+               (earlyoom-configuration
+                (prefer-regexp "icecat|chromium")))
+      (operating-system-user-services base-os)))))
+@end lisp
+
+run:
+
+@example
+guix system image --image-type=pine64-raw my-pine-os.scm
+@end example
+
+or,
+
+@example
+guix system image --image-type=hurd-raw my-hurd-os.scm
+@end example
+
+to get an image that can be written directly to a hard drive and booted
+from.
+
+Without changing anything to @code{my-hurd-os.scm}, calling:
+
+@example
+guix system image --image-type=hurd-qcow2 my-hurd-os.scm
+@end example
+
+will instead produce a Hurd QEMU image.
+
 @node Connecting to Wireguard VPN
 @section Connecting to Wireguard VPN
 
@@ -1759,6 +1982,246 @@ your screen but not suspend it, it's a good idea to notify xss-lock about this s
 confusion occurs. This can be done by executing @code{xset s activate} immediately
 before you execute slock.
 
+@node Running Guix on a Linode Server
+@section Running Guix on a Linode Server
+@cindex linode, Linode
+
+To run Guix on a server hosted by @uref{https://www.linode.com, Linode},
+start with a recommended Debian server.  We recommend using the default
+distro as a way to bootstrap Guix. Create your SSH keys.
+
+@example
+ssh-keygen
+@end example
+
+Be sure to add your SSH key for easy login to the remote server.
+This is trivially done via Linode's graphical interface for adding
+SSH keys.  Go to your profile and click add SSH Key.
+Copy into it the output of:
+
+@example
+cat ~/.ssh/<username>_rsa.pub
+@end example
+
+Power the Linode down. In the Linode's Disks/Configurations tab, resize
+the Debian disk to be smaller. 30 GB is recommended.
+
+In the Linode settings, "Add a disk", with the following:
+@itemize @bullet
+@item
+Label: "Guix"
+
+@item
+Filesystem: ext4
+
+@item
+Set it to the remaining size
+@end itemize
+
+On the "configuration" field that comes with the default image, press
+"..." and select "Edit", then on that menu add to @file{/dev/sdc} the "Guix"
+label.
+
+Now "Add a Configuration", with the following:
+@itemize @bullet
+@item
+Label: Guix
+
+@item
+Kernel:GRUB 2 (it's at the bottom!  This step is @b{IMPORTANT!})
+
+@item
+Block device assignment:
+
+@item
+@file{/dev/sda}: Guix
+
+@item
+@file{/dev/sdb}: swap
+
+@item
+Root device: @file{/dev/sda}
+
+@item
+Turn off all the filesystem/boot helpers
+@end itemize
+
+Now power it back up, picking the Debian configuration.  Once it's
+booted up, ssh in your server via @code{ssh
+root@@@var{<your-server-IP-here>}}. (You can find your server IP address in
+your Linode Summary section.) Now you can run the "install guix from
+@pxref{Binary Installation,,, guix, GNU Guix}" steps:
+
+@example
+sudo apt-get install gpg
+wget https://sv.gnu.org/people/viewgpg.php?user_id=15145 -qO - | gpg --import -
+wget https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh
+chmod +x guix-install.sh
+./guix-install.sh
+guix pull
+@end example
+
+Now it's time to write out a config for the server.  The key information
+is below. Save the resulting file as @file{guix-config.scm}.
+
+@lisp
+(use-modules (gnu)
+             (guix modules))
+(use-service-modules networking
+                     ssh)
+(use-package-modules admin
+                     certs
+                     package-management
+                     ssh
+                     tls)
+
+(operating-system
+  (host-name "my-server")
+  (timezone "America/New_York")
+  (locale "en_US.UTF-8")
+  ;; This goofy code will generate the grub.cfg
+  ;; without installing the grub bootloader on disk.
+  (bootloader (bootloader-configuration
+               (bootloader
+                (bootloader
+                 (inherit grub-bootloader)
+                 (installer #~(const #true))))))
+  (file-systems (cons (file-system
+                        (device "/dev/sda")
+                        (mount-point "/")
+                        (type "ext4"))
+                      %base-file-systems))
+
+
+  (swap-devices (list "/dev/sdb"))
+
+
+  (initrd-modules (cons "virtio_scsi"    ; Needed to find the disk
+                        %base-initrd-modules))
+
+  (users (cons (user-account
+                (name "janedoe")
+                (group "users")
+                ;; Adding the account to the "wheel" group
+                ;; makes it a sudoer.
+                (supplementary-groups '("wheel"))
+                (home-directory "/home/janedoe"))
+               %base-user-accounts))
+
+  (packages (cons* nss-certs            ;for HTTPS access
+                   openssh-sans-x
+                   %base-packages))
+
+  (services (cons*
+             (service dhcp-client-service-type)
+             (service openssh-service-type
+                      (openssh-configuration
+                       (openssh openssh-sans-x)
+                       (password-authentication? #false)
+                       (authorized-keys
+                        `(("janedoe" ,(local-file "janedoe_rsa.pub"))
+                          ("root" ,(local-file "janedoe_rsa.pub"))))))
+             %base-services)))
+@end lisp
+
+Replace the following fields in the above configuration:
+@lisp
+(host-name "my-server")       ; replace with your server name
+; if you chose a linode server outside the U.S., then
+; use tzselect to find a correct timezone string
+(timezone "America/New_York") ; if needed replace timezone
+(name "janedoe")              ; replace with your username
+("janedoe" ,(local-file "janedoe_rsa.pub")) ; replace with your ssh key
+("root" ,(local-file "janedoe_rsa.pub")) ; replace with your ssh key
+@end lisp
+
+The last line in the above example lets you log into the server as root
+and set the initial root password.  After you have done this, you may
+delete that line from your configuration and reconfigure to prevent root
+login.
+
+Save your ssh public key (eg: @file{~/.ssh/id_rsa.pub}) as
+@file{@var{<your-username-here>}_rsa.pub} and your
+@file{guix-config.scm} in the same directory.  In a new terminal run
+these commands.
+
+@example
+sftp root@@<remote server ip address>
+put /home/<username>/ssh/id_rsa.pub .
+put /path/to/linode/guix-config.scm .
+@end example
+
+In your first terminal, mount the guix drive:
+
+@example
+mkdir /mnt/guix
+mount /dev/sdc /mnt/guix
+@end example
+
+Due to the way we set things up above, we do not install GRUB
+completely.  Instead we install only our grub configuration file.  So we
+need to copy over some of the other GRUB stuff that is already there:
+
+@example
+mkdir -p /mnt/guix/boot/grub
+cp -r /boot/grub/* /mnt/guix/boot/grub/
+@end example
+
+Now initialize the Guix installation:
+
+@example
+guix system init guix-config.scm /mnt/guix
+@end example
+
+Ok, power it down!
+Now from the Linode console, select boot and select "Guix".
+
+Once it boots, you should be able to log in via SSH!  (The server config
+will have changed though.)  You may encounter an error like:
+
+@example
+$ ssh root@@<server ip address>
+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
+Someone could be eavesdropping on you right now (man-in-the-middle attack)!
+It is also possible that a host key has just been changed.
+The fingerprint for the ECDSA key sent by the remote host is
+SHA256:0B+wp33w57AnKQuHCvQP0+ZdKaqYrI/kyU7CfVbS7R4.
+Please contact your system administrator.
+Add correct host key in /home/joshua/.ssh/known_hosts to get rid of this message.
+Offending ECDSA key in /home/joshua/.ssh/known_hosts:3
+ECDSA host key for 198.58.98.76 has changed and you have requested strict checking.
+Host key verification failed.
+@end example
+
+Either delete @file{~/.ssh/known_hosts} file, or delete the offending line
+starting with your server IP address.
+
+Be sure to set your password and root's password.
+
+@example
+ssh root@@<remote ip address>
+passwd  ; for the root password
+passwd <username> ; for the user password
+@end example
+
+You may not be able to run the above commands at this point.  If you
+have issues remotely logging into your linode box via SSH, then you may
+still need to set your root and user password initially by clicking on
+the ``Launch Console'' option in your linode.  Choose the ``Glish''
+instead of ``Weblish''.  Now you should be able to ssh into the machine.
+
+Horray!  At this point you can shut down the server, delete the
+Debian disk, and resize the Guix to the rest of the size.
+Congratulations!
+
+By the way, if you save it as a disk image right at this point, you'll
+have an easy time spinning up new Guix images!  You may need to
+down-size the Guix image to 6144MB, to save it as an image.  Then you
+can resize it again to the max size.
+
 @node Setting up a bind mount
 @section Setting up a bind mount
 
@@ -1870,6 +2333,63 @@ sudo herd set-http-proxy guix-daemon http://localhost:9250
 guix build --substitute-urls=https://bp7o7ckwlewr4slm.onion …
 @end example
 
+@node Setting up NGINX with Lua
+@section Setting up NGINX with Lua
+@cindex nginx, lua, openresty, resty
+
+NGINX could be extended with Lua scripts.
+
+Guix provides NGINX service with ability to load Lua module and specific
+Lua packages, and reply to requests by evaluating Lua scripts.
+
+The following example demonstrates system definition with configuration
+to evaluate @file{index.lua} Lua script on HTTP request to
+@uref{http://localhost/hello} endpoint:
+
+@example
+local shell = require "resty.shell"
+
+local stdin = ""
+local timeout = 1000  -- ms
+local max_size = 4096  -- byte
+
+local ok, stdout, stderr, reason, status =
+   shell.run([[/run/current-system/profile/bin/ls /tmp]], stdin, timeout, max_size)
+
+ngx.say(stdout)
+@end example
+
+@lisp
+(use-modules (gnu))
+(use-service-modules #;… web)
+(use-package-modules #;… lua)
+(operating-system
+  ;; …
+  (services
+   ;; …
+   (service nginx-service-type
+            (nginx-configuration
+             (modules
+              (list
+               (file-append nginx-lua-module "/etc/nginx/modules/ngx_http_lua_module.so")))
+             (lua-package-path (list lua-resty-core
+                                     lua-resty-lrucache
+                                     lua-resty-signal
+                                     lua-tablepool
+                                     lua-resty-shell))
+             (lua-package-cpath (list lua-resty-signal))
+             (server-blocks
+              (list (nginx-server-configuration
+                     (server-name '("localhost"))
+                     (listen '("80"))
+                     (root "/etc")
+                     (locations (list
+                                 (nginx-location-configuration
+                                  (uri "/hello")
+                                  (body (list #~(format #f "content_by_lua_file ~s;"
+                                                        #$(local-file "index.lua"))))))))))))))
+@end lisp
+
 @c *********************************************************************
 @node Advanced package management
 @chapter Advanced package management
@@ -1938,7 +2458,7 @@ section on @ref{Reproducible profiles}.
 
 @item
 Easier upgrades and maintenance: Multiple profiles make it easy to keep
-package listings at hand and make upgrades completely friction-less.
+package listings at hand and make upgrades completely frictionless.
 @end itemize
 
 Concretely, here follows some typical profiles:
@@ -2269,6 +2789,130 @@ It's safe to delete the Guix channel profile you've just installed with the
 channel specification, the project profile does not depend on it.
 
 @c *********************************************************************
+@node Environment management
+@chapter Environment management
+
+Guix provides multiple tools to manage environment.  This chapter
+demonstrate such utilities.
+
+@menu
+* Guix environment via direnv:: Setup Guix environment with direnv
+@end menu
+
+@node Guix environment via direnv
+@section Guix environment via direnv
+
+Guix provides a @samp{direnv} package, which could extend shell after
+directory change.  This tool could be used to prepare a pure Guix
+environment.
+
+The following example provides a shell function for @file{~/.direnvrc}
+file, which could be used from Guix Git repository in
+@file{~/src/guix/.envrc} file to setup a build environment similar to
+described in @pxref{Building from Git,,, guix, GNU Guix Reference
+Manual}.
+
+Create a @file{~/.direnvrc} with a Bash code:
+
+@example
+# Thanks <https://github.com/direnv/direnv/issues/73#issuecomment-152284914>
+export_function()
+@{
+  local name=$1
+  local alias_dir=$PWD/.direnv/aliases
+  mkdir -p "$alias_dir"
+  PATH_add "$alias_dir"
+  local target="$alias_dir/$name"
+  if declare -f "$name" >/dev/null; then
+    echo "#!$SHELL" > "$target"
+    declare -f "$name" >> "$target" 2>/dev/null
+    # Notice that we add shell variables to the function trigger.
+    echo "$name \$*" >> "$target"
+    chmod +x "$target"
+  fi
+@}
+
+use_guix()
+@{
+    # Set GitHub token.
+    export GUIX_GITHUB_TOKEN="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
+
+    # Unset 'GUIX_PACKAGE_PATH'.
+    export GUIX_PACKAGE_PATH=""
+
+    # Recreate a garbage collector root.
+    gcroots="$HOME/.config/guix/gcroots"
+    mkdir -p "$gcroots"
+    gcroot="$gcroots/guix"
+    if [ -L "$gcroot" ]
+    then
+        rm -v "$gcroot"
+    fi
+
+    # Miscellaneous packages.
+    PACKAGES_MAINTENANCE=(
+        direnv
+        git
+        git:send-email
+        git-cal
+        gnupg
+        guile-colorized
+        guile-readline
+        less
+        ncurses
+        openssh
+        xdot
+    )
+
+    # Environment packages.
+    PACKAGES=(help2man guile-sqlite3 guile-gcrypt)
+
+    # Thanks <https://lists.gnu.org/archive/html/guix-devel/2016-09/msg00859.html>
+    eval "$(guix environment --search-paths --root="$gcroot" --pure guix --ad-hoc $@{PACKAGES[@@]@} $@{PACKAGES_MAINTENANCE[@@]@} "$@@")"
+
+    # Predefine configure flags.
+    configure()
+    @{
+        ./configure --localstatedir=/var --prefix=
+    @}
+    export_function configure
+
+    # Run make and optionally build something.
+    build()
+    @{
+        make -j 2
+        if [ $# -gt 0 ]
+        then
+            ./pre-inst-env guix build "$@@"
+        fi
+    @}
+    export_function build
+
+    # Predefine push Git command.
+    push()
+    @{
+        git push --set-upstream origin
+    @}
+    export_function push
+
+    clear                        # Clean up the screen.
+    git-cal --author='Your Name' # Show contributions calendar.
+
+    # Show commands help.
+    echo "
+build          build a package or just a project if no argument provided
+configure      run ./configure with predefined parameters
+push           push to upstream Git repository
+"
+@}
+@end example
+
+Every project containing @file{.envrc} with a string @code{use guix}
+will have predefined environment variables and procedures.
+
+Run @command{direnv allow} to setup the environment for the first time.
+
+@c *********************************************************************
 @node Acknowledgments
 @chapter Acknowledgments
 
diff --git a/doc/guix.texi b/doc/guix.texi
index 587c004bee..7e7c43286f 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -21,7 +21,7 @@
 @set SUBSTITUTE-URL https://@value{SUBSTITUTE-SERVER}
 
 @copying
-Copyright @copyright{} 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès@*
+Copyright @copyright{} 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès@*
 Copyright @copyright{} 2013, 2014, 2016 Andreas Enge@*
 Copyright @copyright{} 2013 Nikita Karetnikov@*
 Copyright @copyright{} 2014, 2015, 2016 Alex Kost@*
@@ -40,7 +40,7 @@ Copyright @copyright{} 2016, 2017, 2018, 2019, 2020 Julien Lepiller@*
 Copyright @copyright{} 2016 Alex ter Weele@*
 Copyright @copyright{} 2016, 2017, 2018, 2019 Christopher Baines@*
 Copyright @copyright{} 2017, 2018, 2019 Clément Lassieur@*
-Copyright @copyright{} 2017, 2018 Mathieu Othacehe@*
+Copyright @copyright{} 2017, 2018, 2020 Mathieu Othacehe@*
 Copyright @copyright{} 2017 Federico Beffa@*
 Copyright @copyright{} 2017, 2018 Carlo Zancanaro@*
 Copyright @copyright{} 2017 Thomas Danckaert@*
@@ -55,11 +55,11 @@ Copyright @copyright{} 2017 Andy Wingo@*
 Copyright @copyright{} 2017, 2018, 2019, 2020 Arun Isaac@*
 Copyright @copyright{} 2017 nee@*
 Copyright @copyright{} 2018 Rutger Helling@*
-Copyright @copyright{} 2018 Oleg Pykhalov@*
+Copyright @copyright{} 2018, 2021 Oleg Pykhalov@*
 Copyright @copyright{} 2018 Mike Gerwitz@*
 Copyright @copyright{} 2018 Pierre-Antoine Rouby@*
 Copyright @copyright{} 2018, 2019 Gábor Boskovits@*
-Copyright @copyright{} 2018, 2019 Florian Pelz@*
+Copyright @copyright{} 2018, 2019, 2020 Florian Pelz@*
 Copyright @copyright{} 2018 Laura Lazzati@*
 Copyright @copyright{} 2018 Alex Vong@*
 Copyright @copyright{} 2019 Josh Holland@*
@@ -68,7 +68,7 @@ Copyright @copyright{} 2019 Ivan Petkov@*
 Copyright @copyright{} 2019 Jakob L. Kreuze@*
 Copyright @copyright{} 2019 Kyle Andrews@*
 Copyright @copyright{} 2019 Alex Griffin@*
-Copyright @copyright{} 2019 Guillaume Le Vaillant@*
+Copyright @copyright{} 2019, 2020 Guillaume Le Vaillant@*
 Copyright @copyright{} 2020 Leo Prikler@*
 Copyright @copyright{} 2019, 2020 Simon Tournier@*
 Copyright @copyright{} 2020 Wiktor Żelazny@*
@@ -80,6 +80,12 @@ Copyright @copyright{} 2020 Brice Waegeneire@*
 Copyright @copyright{} 2020 R Veera Kumar@*
 Copyright @copyright{} 2020 Pierre Langlois@*
 Copyright @copyright{} 2020 pinoaffe@*
+Copyright @copyright{} 2020 André Batista@*
+Copyright @copyright{} 2020 Alexandru-Sergiu Marton@*
+Copyright @copyright{} 2020 raingloom@*
+Copyright @copyright{} 2020 Daniel Brooks@*
+Copyright @copyright{} 2020 John Soo@*
+Copyright @copyright{} 2020 Jonathan Brielmaier@*
 
 Permission is granted to copy, distribute and/or modify this document
 under the terms of the GNU Free Documentation License, Version 1.3 or
@@ -101,7 +107,7 @@ Documentation License''.
 
 @dircategory Software development
 @direntry
-* guix environment: (guix)Invoking guix environment. Building development environments with Guix.
+* guix environment: (guix)Invoking guix environment.  Building development environments with Guix.
 * guix build: (guix)Invoking guix build.      Building packages.
 * guix pack: (guix)Invoking guix pack.        Creating binary bundles.
 @end direntry
@@ -136,15 +142,17 @@ GNU Guix参考手册}), French (@pxref{Top,,, guix.fr, Manuel de référence de
 Guix}), German (@pxref{Top,,, guix.de, Referenzhandbuch zu GNU Guix}),
 Spanish (@pxref{Top,,, guix.es, Manual de referencia de GNU Guix}), and
 Russian (@pxref{Top,,, guix.ru, Руководство GNU Guix}).  If you
-would like to translate it in your native language, consider joining the
-@uref{https://translationproject.org/domain/guix-manual.html, Translation
-Project}.
+would like to translate it in your native language, consider joining
+@uref{https://translate.fedoraproject.org/projects/guix/documentation-manual,
+Weblate}.
 
 @menu
 * Introduction::                What is Guix about?
 * Installation::                Installing Guix.
 * System Installation::         Installing the whole operating system.
+* Getting Started::             Your first steps.
 * Package Management::          Package installation, upgrade, etc.
+* Channels::                    Customizing the package collection.
 * Development::                 Guix-aided software development.
 * Programming Interface::       Using Guix in Scheme.
 * Utilities::                   Package management commands.
@@ -177,6 +185,7 @@ Installation
 * Setting Up the Daemon::       Preparing the build daemon's environment.
 * Invoking guix-daemon::        Running the build daemon.
 * Application Setup::           Application-specific setup.
+* Upgrading Guix::              Upgrading Guix and its build daemon.
 
 Setting Up the Daemon
 
@@ -209,7 +218,6 @@ Package Management
 * Packages with Multiple Outputs::  Single source package, multiple outputs.
 * Invoking guix gc::            Running the garbage collector.
 * Invoking guix pull::          Fetching the latest Guix and distribution.
-* Channels::                    Customizing the package collection.
 * Invoking guix time-machine::  Running an older revision of Guix.
 * Inferiors::                   Interacting with another revision of Guix.
 * Invoking guix describe::      Display information about your Guix revision.
@@ -219,27 +227,45 @@ Substitutes
 
 * Official Substitute Server::  One particular source of substitutes.
 * Substitute Server Authorization::  How to enable or disable substitutes.
+* Getting Substitutes from Other Servers::  Substitute diversity.
 * Substitute Authentication::   How Guix verifies substitutes.
 * Proxy Settings::              How to get substitutes via proxy.
 * Substitution Failure::        What happens when substitution fails.
 * On Trusting Binaries::        How can you trust that binary blob?
 
+Channels
+
+* Specifying Additional Channels::  Extending the package collection.
+* Using a Custom Guix Channel::  Using a customized Guix.
+* Replicating Guix::            Running the @emph{exact same} Guix.
+* Channel Authentication::      How Guix verifies what it fetches.
+* Creating a Channel::          How to write your custom channel.
+* Package Modules in a Sub-directory::  Specifying the channel's package modules location.
+* Declaring Channel Dependencies::  How to depend on other channels.
+* Specifying Channel Authorizations::  Defining channel authors authorizations.
+* Primary URL::                 Distinguishing mirror to original.
+* Writing Channel News::        Communicating information to channel's users.
+
 Development
 
 * Invoking guix environment::   Setting up development environments.
 * Invoking guix pack::          Creating software bundles.
 * The GCC toolchain::           Working with languages supported by GCC.
+* Invoking guix git authenticate:: Authenticating Git repositories.
 
 Programming Interface
 
 * Package Modules::             Packages from the programmer's viewpoint.
 * Defining Packages::           Defining new packages.
+* Defining Package Variants::   Customizing packages.
 * Build Systems::               Specifying how packages are built.
+* Build Phases::                Phases of the build process of a package.
+* Build Utilities::             Helpers for your package definitions and more.
 * The Store::                   Manipulating the package store.
 * Derivations::                 Low-level interface to package derivations.
 * The Store Monad::             Purely functional interface to the store.
 * G-Expressions::               Manipulating build expressions.
-* Invoking guix repl::          Programming Guix in Guile
+* Invoking guix repl::          Programming Guix in Guile.
 
 Defining Packages
 
@@ -297,6 +323,7 @@ Services
 * Scheduled Job Execution::     The mcron service.
 * Log Rotation::                The rottlog service.
 * Networking Services::         Network setup, SSH daemon, etc.
+* Unattended Upgrades::         Automated system upgrades.
 * X Window::                    Graphical display.
 * Printing Services::           Local and remote printer support.
 * Desktop Services::            D-Bus and desktop services.
@@ -307,6 +334,7 @@ Services
 * Telephony Services::          Telephony services.
 * Monitoring Services::         Monitoring services.
 * Kerberos Services::           Kerberos services.
+* LDAP Services::               LDAP services.
 * Web Services::                Web servers.
 * Certificate Services::        TLS certificates via Let's Encrypt.
 * DNS Services::                DNS daemons.
@@ -321,7 +349,7 @@ Services
 * PAM Mount Service::           Service to mount volumes when logging in.
 * Guix Services::               Services relating specifically to Guix.
 * Linux Services::              Services tied to the Linux kernel.
-* Hurd Services::               Services specific to a Hurd System.
+* Hurd Services::               Services specific for a Hurd System.
 * Miscellaneous Services::      Other services.
 
 Defining Services
@@ -331,6 +359,16 @@ Defining Services
 * Service Reference::           API reference.
 * Shepherd Services::           A particular type of service.
 
+Installing Debugging Files
+
+* Separate Debug Info::         Installing 'debug' outputs.
+* Rebuilding Debug Info::       Building missing debug info.
+
+Bootstrapping
+
+* Reduced Binary Seed Bootstrap::  A Bootstrap worthy of GNU.
+* Preparing to Use the Bootstrap Binaries:: Building that what matters most.
+
 @end detailmenu
 @end menu
 
@@ -370,7 +408,7 @@ using a different distro underneath!}.  @xref{GNU Distribution}.
 @cindex user interfaces
 Guix provides a command-line package management interface
 (@pxref{Package Management}), tools to help with software development
-(@pxref{Development}), command-line utilities for more advanced usage,
+(@pxref{Development}), command-line utilities for more advanced usage
 (@pxref{Utilities}), as well as Scheme programming interfaces
 (@pxref{Programming Interface}).
 @cindex build daemon
@@ -453,10 +491,10 @@ Packages are currently available on the following platforms:
 @table @code
 
 @item x86_64-linux
-Intel/AMD @code{x86_64} architecture, Linux-Libre kernel;
+Intel/AMD @code{x86_64} architecture, Linux-Libre kernel.
 
 @item i686-linux
-Intel 32-bit architecture (IA32), Linux-Libre kernel;
+Intel 32-bit architecture (IA32), Linux-Libre kernel.
 
 @item armhf-linux
 ARMv7-A architecture with hard float, Thumb-2 and NEON,
@@ -466,11 +504,21 @@ and Linux-Libre kernel.
 @item aarch64-linux
 little-endian 64-bit ARMv8-A processors, Linux-Libre kernel.
 
+@item i586-gnu
+@uref{https://hurd.gnu.org, GNU/Hurd} on the Intel 32-bit architecture
+(IA32).
+
+This configuration is experimental and under development.  The easiest
+way for you to give it a try is by setting up an instance of
+@code{hurd-vm-service-type} on your GNU/Linux machine
+(@pxref{transparent-emulation-qemu, @code{hurd-vm-service-type}}).
+@xref{Contributing}, on how to help!
+
 @item mips64el-linux (deprecated)
 little-endian 64-bit MIPS processors, specifically the Loongson series,
 n32 ABI, and Linux-Libre kernel.  This configuration is no longer fully
 supported; in particular, there is no ongoing work to ensure that this
-architecture still works. Should someone decide they wish to revive this
+architecture still works.  Should someone decide they wish to revive this
 architecture then the code is still available.
 
 @end table
@@ -562,6 +610,9 @@ wget https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh
 chmod +x guix-install.sh
 ./guix-install.sh
 @end example
+
+When you're done, @pxref{Application Setup} for extra configuration you
+might need, and @ref{Getting Started} for your first steps!
 @end quotation
 
 Installing goes along these lines:
@@ -623,7 +674,7 @@ not emit warnings about ``implausibly old time stamps'' (such
 warnings were triggered by GNU@tie{}tar 1.26 and older; recent
 versions are fine).
 They stem from the fact that all the
-files in the archive have their modification time set to zero (which
+files in the archive have their modification time set to 1 (which
 means January 1st, 1970).  This is done on purpose to make sure the
 archive content is independent of its creation time, thus making it
 reproducible.
@@ -778,12 +829,15 @@ Guile,, gnutls-guile, GnuTLS-Guile});
 @item
 @uref{https://notabug.org/guile-sqlite3/guile-sqlite3, Guile-SQLite3}, version 0.1.0
 or later;
+@item @uref{https://notabug.org/guile-zlib/guile-zlib, Guile-zlib};
+@item @uref{https://notabug.org/guile-lzlib/guile-lzlib, Guile-lzlib};
+@item @uref{https://www.nongnu.org/guile-avahi/, Guile-Avahi};
 @item
 @c FIXME: Specify a version number once a release has been made.
-@uref{https://gitlab.com/guile-git/guile-git, Guile-Git}, from August
-2017 or later;
-@item @uref{https://savannah.nongnu.org/projects/guile-json/, Guile-JSON} 3.x;
-@item @url{https://zlib.net, zlib};
+@uref{https://gitlab.com/guile-git/guile-git, Guile-Git}, version 0.3.0
+or later;
+@item @uref{https://savannah.nongnu.org/projects/guile-json/, Guile-JSON}
+4.3.0 or later;
 @item @url{https://www.gnu.org/software/make/, GNU Make}.
 @end itemize
 
@@ -798,9 +852,13 @@ Support for build offloading (@pxref{Daemon Offload Setup}) and
 version 0.13.0 or later.
 
 @item
-When @url{https://www.nongnu.org/lzip/lzlib.html, lzlib} is available, lzlib
-substitutes can be used and @command{guix publish} can compress substitutes
-with lzlib.
+@uref{https://notabug.org/guile-zstd/guile-zstd, Guile-zstd}, for zstd
+compression and decompression in @command{guix publish} and for
+substitutes (@pxref{Invoking guix publish}).
+
+@item
+@uref{https://ngyro.com/software/guile-semver.html, Guile-Semver} for
+the @code{crate} importer (@pxref{Invoking guix import}).
 
 @item
 When @url{http://www.bzip.org, libbz2} is available,
@@ -1042,29 +1100,53 @@ When desired, the build daemon can @dfn{offload} derivation builds to
 other machines running Guix, using the @code{offload} @dfn{build
 hook}@footnote{This feature is available only when
 @uref{https://github.com/artyom-poptsov/guile-ssh, Guile-SSH} is
-present.}.  When that
-feature is enabled, a list of user-specified build machines is read from
-@file{/etc/guix/machines.scm}; every time a build is requested, for
-instance via @code{guix build}, the daemon attempts to offload it to one
-of the machines that satisfy the constraints of the derivation, in
-particular its system type---e.g., @file{x86_64-linux}.  Missing
-prerequisites for the build are copied over SSH to the target machine,
-which then proceeds with the build; upon success the output(s) of the
-build are copied back to the initial machine.
+present.}.  When that feature is enabled, a list of user-specified build
+machines is read from @file{/etc/guix/machines.scm}; every time a build
+is requested, for instance via @code{guix build}, the daemon attempts to
+offload it to one of the machines that satisfy the constraints of the
+derivation, in particular its system types---e.g., @code{x86_64-linux}.
+A single machine can have multiple system types, either because its
+architecture natively supports it, via emulation
+(@pxref{transparent-emulation-qemu, Transparent Emulation with QEMU}),
+or both.  Missing prerequisites for the build are
+copied over SSH to the target machine, which then proceeds with the
+build; upon success the output(s) of the build are copied back to the
+initial machine.  The offload facility comes with a basic scheduler that
+attempts to select the best machine.  The best machine is chosen among
+the available machines based on criteria such as:
+
+@enumerate
+@item
+The availability of a build slot.  A build machine can have as many
+build slots (connections) as the value of the @code{parallel-builds}
+field of its @code{build-machine} object.
+
+@item
+Its relative speed, as defined via the @code{speed} field of its
+@code{build-machine} object.
+
+@item
+Its load.  The normalized machine load must be lower than a threshold
+value, configurable via the @code{overload-threshold} field of its
+@code{build-machine} object.
+
+@item
+Disk space availability.  More than a 100 MiB must be available.
+@end enumerate
 
 The @file{/etc/guix/machines.scm} file typically looks like this:
 
 @lisp
 (list (build-machine
         (name "eightysix.example.org")
-        (system "x86_64-linux")
+        (systems (list "x86_64-linux" "i686-linux"))
         (host-key "ssh-ed25519 AAAAC3Nza@dots{}")
         (user "bob")
         (speed 2.))     ;incredibly fast!
 
       (build-machine
         (name "armeight.example.org")
-        (system "aarch64-linux")
+        (systems (list "aarch64-linux"))
         (host-key "ssh-rsa AAAAB3Nza@dots{}")
         (user "alice")
         (private-key
@@ -1074,8 +1156,8 @@ The @file{/etc/guix/machines.scm} file typically looks like this:
 
 @noindent
 In the example above we specify a list of two build machines, one for
-the @code{x86_64} architecture and one for the @code{aarch64}
-architecture.
+the @code{x86_64} and @code{i686} architectures and one for the
+@code{aarch64} architecture.
 
 In fact, this file is---not surprisingly!---a Scheme file that is
 evaluated when the @code{offload} hook is started.  Its return value
@@ -1095,8 +1177,9 @@ builds.  The important fields are:
 @item name
 The host name of the remote machine.
 
-@item system
-The system type of the remote machine---e.g., @code{"x86_64-linux"}.
+@item systems
+The system types the remote machine supports---e.g., @code{(list
+"x86_64-linux" "i686-linux")}.
 
 @item user
 The user account to use when connecting to the remote machine over SSH.
@@ -1153,6 +1236,13 @@ when transferring files to and from build machines.
 File name of the Unix-domain socket @command{guix-daemon} is listening
 to on that machine.
 
+@item @code{overload-threshold} (default: @code{0.6})
+The load threshold above which a potential offload machine is
+disregarded by the offload scheduler.  The value roughly translates to
+the total processor usage of the build machine, ranging from 0.0 (0%) to
+1.0 (100%).  It can also be disabled by setting
+@code{overload-threshold} to @code{#f}.
+
 @item @code{parallel-builds} (default: @code{1})
 The number of builds that may run in parallel on the machine.
 
@@ -1212,7 +1302,7 @@ master node:
 @end example
 
 This will attempt to connect to each of the build machines specified in
-@file{/etc/guix/machines.scm}, make sure Guile and the Guix modules are
+@file{/etc/guix/machines.scm}, make sure Guix is
 available on each machine, attempt to export to the machine and import
 from it, and report any error in the process.
 
@@ -1316,6 +1406,11 @@ install and run it, which lifts it into the @code{guix_daemon_t} domain.
 At that point SELinux could not prevent it from accessing files that are
 allowed for processes in that domain.
 
+You will need to relabel the store directory after all upgrades to
+@file{guix-daemon}, such as after running @code{guix pull}.  Assuming the
+store is in @file{/gnu}, you can do this with @code{restorecon -vR /gnu},
+or by other means provided by your operating system.
+
 We could generate a much more restrictive policy at installation time,
 so that only the @emph{exact} file name of the currently installed
 @code{guix-daemon} executable would be labelled with
@@ -1389,8 +1484,8 @@ When the daemon runs with @option{--no-substitutes}, clients can still
 explicitly enable substitution @i{via} the @code{set-build-options}
 remote procedure call (@pxref{The Store}).
 
-@item --substitute-urls=@var{urls}
 @anchor{daemon-substitute-urls}
+@item --substitute-urls=@var{urls}
 Consider @var{urls} the default whitespace-separated list of substitute
 source URLs.  When this option is omitted,
 @indicateurl{https://@value{SUBSTITUTE-SERVER}} is used.
@@ -1398,6 +1493,9 @@ source URLs.  When this option is omitted,
 This means that substitutes may be downloaded from @var{urls}, as long
 as they are signed by a trusted signature (@pxref{Substitutes}).
 
+@xref{Getting Substitutes from Other Servers}, for more information on
+how to configure the daemon to get substitutes from other servers.
+
 @cindex offloading
 @item --no-offload
 Do not use offload builds to other machines (@pxref{Daemon Offload
@@ -1492,6 +1590,36 @@ Unless @option{--lose-logs} is used, all the build logs are kept in the
 @var{localstatedir}.  To save space, the daemon automatically compresses
 them with Bzip2 by default.
 
+@item --discover[=yes|no]
+Whether to discover substitute servers on the local network using mDNS
+and DNS-SD.
+
+This feature is still experimental.  However, here are a few
+considerations.
+
+@enumerate
+@item
+It might be faster/less expensive than fetching from remote servers;
+@item
+There are no security risks, only genuine substitutes will be used
+(@pxref{Substitute Authentication});
+@item
+An attacker advertising @command{guix publish} on your LAN cannot serve
+you malicious binaries, but they can learn what software you’re
+installing;
+@item
+Servers may serve substitute over HTTP, unencrypted, so anyone on the
+LAN can see what software you’re installing.
+@end enumerate
+
+It is also possible to enable or disable substitute server discovery at
+run-time by running:
+
+@example
+herd discover guix-daemon on
+herd discover guix-daemon off
+@end example
+
 @item --disable-deduplication
 @cindex deduplication
 Disable automatic file ``deduplication'' in the store.
@@ -1620,7 +1748,7 @@ $ export GUIX_LOCPATH=$HOME/.guix-profile/lib/locale
 
 Note that the @code{glibc-locales} package contains data for all the
 locales supported by the GNU@tie{}libc and weighs in at around
-917@tie{}MiB.  Alternatively, the @code{glibc-utf8-locales} is smaller but
+917@tie{}MiB@.  Alternatively, the @code{glibc-utf8-locales} is smaller but
 limited to a few UTF-8 locales.
 
 The @env{GUIX_LOCPATH} variable plays a role similar to @env{LOCPATH}
@@ -1864,9 +1992,6 @@ following noteworthy limitations applicable to version @value{VERSION}:
 
 @itemize
 @item
-Support for the Logical Volume Manager (LVM) is missing.
-
-@item
 More and more system services are provided (@pxref{Services}), but some
 may be missing.
 
@@ -2012,7 +2137,7 @@ Access to @file{/dev/srX} usually requires root privileges.
 @unnumberedsubsec Booting
 
 Once this is done, you should be able to reboot the system and boot from
-the USB stick or DVD.  The latter usually requires you to get in the
+the USB stick or DVD@.  The latter usually requires you to get in the
 BIOS or UEFI boot menu, where you can choose to boot from the USB stick.
 In order to boot from Libreboot, switch to the command mode by pressing
 the @kbd{c} key and type @command{search_grub usb}.
@@ -2272,9 +2397,9 @@ bootloaders.
 
 Once you are done partitioning the target hard disk drive, you have to
 create a file system on the relevant partition(s)@footnote{Currently
-Guix System only supports ext4, btrfs, and JFS file systems.  In particular,
-code that reads file system UUIDs and labels only works for these file system
-types.}.  For the ESP, if you have one and assuming it is
+Guix System only supports ext4, btrfs, JFS, and F2FS file systems.  In
+particular, code that reads file system UUIDs and labels only works for these
+file system types.}.  For the ESP, if you have one and assuming it is
 @file{/dev/sda1}, run:
 
 @example
@@ -2472,7 +2597,8 @@ as.  This means that if you choose to use @command{guix system reconfigure} in
 root's login shell, you'll need to @command{guix pull} separately.
 @end quotation
 
-Join us on @code{#guix} on the Freenode IRC network or on
+Now, @pxref{Getting Started}, and
+join us on @code{#guix} on the Freenode IRC network or on
 @email{guix-devel@@gnu.org} to share your experience!
 
 
@@ -2535,8 +2661,7 @@ The installation image described above was built using the @command{guix
 system} command, specifically:
 
 @example
-guix system disk-image --file-system-type=iso9660 \
-  gnu/system/install.scm
+guix system image -t iso9660 gnu/system/install.scm
 @end example
 
 Have a look at @file{gnu/system/install.scm} in the source tree,
@@ -2553,13 +2678,217 @@ If you build a disk image and the bootloader is not available otherwise
 includes the bootloader, specifically:
 
 @example
-guix system disk-image --system=armhf-linux -e '((@@ (gnu system install) os-with-u-boot) (@@ (gnu system install) installation-os) "A20-OLinuXino-Lime2")'
+guix system image --system=armhf-linux -e '((@@ (gnu system install) os-with-u-boot) (@@ (gnu system install) installation-os) "A20-OLinuXino-Lime2")'
 @end example
 
 @code{A20-OLinuXino-Lime2} is the name of the board.  If you specify an invalid
 board, a list of possible boards will be printed.
 
 @c *********************************************************************
+@node Getting Started
+@chapter Getting Started
+
+Presumably, you've reached this section because either you have
+installed Guix on top of another distribution (@pxref{Installation}), or
+you've installed the standalone Guix System (@pxref{System
+Installation}).  It's time for you to get started using Guix and this
+section aims to help you do that and give you a feel of what it's like.
+
+Guix is about installing software, so probably the first thing you'll
+want to do is to actually look for software.  Let's say you're looking
+for a text editor, you can run:
+
+@example
+guix search text editor
+@end example
+
+This command shows you a number of matching @dfn{packages}, each time
+showing the package's name, version, a description, and additional info.
+Once you've found out the one you want to use, let's say Emacs (ah ha!),
+you can go ahead and install it (run this command as a regular user,
+@emph{no need for root privileges}!):
+
+@example
+guix install emacs
+@end example
+
+You've installed your first package, congrats!  In the process, you've
+probably noticed that Guix downloaded pre-built binaries; or, if you
+explicitly chose to @emph{not} use pre-built binaries, then probably
+Guix is still building software (@pxref{Substitutes}, for more info).
+
+Unless you're using Guix System, the @command{guix install} command must
+have printed this hint:
+
+@example
+hint: Consider setting the necessary environment variables by running:
+
+     GUIX_PROFILE="$HOME/.guix-profile"
+     . "$GUIX_PROFILE/etc/profile"
+
+Alternately, see `guix package --search-paths -p "$HOME/.guix-profile"'.
+@end example
+
+Indeed, you must now tell your shell where @command{emacs} and other
+programs installed with Guix are to be found.  Pasting the two lines
+above will do just that: it will add
+@code{$HOME/.guix-profile/bin}---which is where the installed package
+is---to the @code{PATH} environment variable.  You can paste these two
+lines in your shell so they take effect right away, but more importantly
+you should add them to @file{~/.bash_profile} (or equivalent file if you
+do not use Bash) so that environment variables are set next time you
+spawn a shell.  You only need to do this once and other search paths
+environment variables will be taken care of similarly---e.g., if you
+eventually install @code{python} and Python libraries, @code{PYTHONPATH}
+will be defined.
+
+You can go on installing packages at your will.  To list installed
+packages, run:
+
+@example
+guix package --list-installed
+@end example
+
+To remove a package, you would unsurprisingly run @command{guix remove}.
+A distinguishing feature is the ability to @dfn{roll back} any operation
+you made---installation, removal, upgrade---by simply typing:
+
+@example
+guix package --roll-back
+@end example
+
+This is because each operation is in fact a @dfn{transaction} that
+creates a new @dfn{generation}.  These generations and the difference
+between them can be displayed by running:
+
+@example
+guix package --list-generations
+@end example
+
+Now you know the basics of package management!
+
+@quotation Going further
+@xref{Package Management}, for more about package management.  You may
+like @dfn{declarative} package management with @command{guix package
+--manifest}, managing separate @dfn{profiles} with @option{--profile},
+deleting old generations, collecting garbage, and other nifty features
+that will come in handy as you become more familiar with Guix.  If you
+are a developer, @pxref{Development} for additional tools.  And if
+you're curious, @pxref{Features}, to peek under the hood.
+@end quotation
+
+Once you've installed a set of packages, you will want to periodically
+@emph{upgrade} them to the latest and greatest version.  To do that, you
+will first pull the latest revision of Guix and its package collection:
+
+@example
+guix pull
+@end example
+
+The end result is a new @command{guix} command, under
+@file{~/.config/guix/current/bin}.  Unless you're on Guix System, the
+first time you run @command{guix pull}, be sure to follow the hint that
+the command prints and, similar to what we saw above, paste these two
+lines in your terminal and @file{.bash_profile}:
+
+@example
+GUIX_PROFILE="$HOME/.config/guix/current"
+. "$GUIX_PROFILE/etc/profile"
+@end example
+
+@noindent
+You must also instruct your shell to point to this new @command{guix}:
+
+@example
+hash guix
+@end example
+
+At this point, you're running a brand new Guix.  You can thus go ahead
+and actually upgrade all the packages you previously installed:
+
+@example
+guix upgrade
+@end example
+
+As you run this command, you will see that binaries are downloaded (or
+perhaps some packages are built), and eventually you end up with the
+upgraded packages.  Should one of these upgraded packages not be to your
+liking, remember you can always roll back!
+
+You can display the exact revision of Guix you're currently using by
+running:
+
+@example
+guix describe
+@end example
+
+The information it displays is @emph{all it takes to reproduce the exact
+same Guix}, be it at a different point in time or on a different
+machine.
+
+@quotation Going further
+@xref{Invoking guix pull}, for more information.  @xref{Channels}, on
+how to specify additional @dfn{channels} to pull packages from, how to
+replicate Guix, and more.  You may also find @command{time-machine}
+handy (@pxref{Invoking guix time-machine}).
+@end quotation
+
+If you installed Guix System, one of the first things you'll want to do
+is to upgrade your system.  Once you've run @command{guix pull} to get
+the latest Guix, you can upgrade the system like this:
+
+@example
+sudo guix system reconfigure /etc/config.scm
+@end example
+
+Upon completion, the system runs the latest versions of its software
+packages.  When you eventually reboot, you'll notice a sub-menu in the
+bootloader that reads ``Old system generations'': it's what allows you
+to boot @emph{an older generation of your system}, should the latest
+generation be ``broken'' or otherwise unsatisfying.  Just like for
+packages, you can always @emph{roll back} to a previous generation
+@emph{of the whole system}:
+
+@example
+sudo guix system roll-back
+@end example
+
+There are many things you'll probably want to tweak on your system:
+adding new user accounts, adding new system services, fiddling with the
+configuration of those services, etc.  The system configuration is
+@emph{entirely} described in the @file{/etc/config.scm} file.
+@xref{Using the Configuration System}, to learn how to change it.
+
+Now you know enough to get started!
+
+@quotation Resources
+The rest of this manual provides a reference for all things Guix.  Here
+are some additional resources you may find useful:
+
+@itemize
+@item
+@xref{Top,,, guix-cookbook, The GNU Guix Cookbook}, for a list of
+``how-to'' style of recipes for a variety of applications.
+
+@item
+The @uref{https://guix.gnu.org/guix-refcard.pdf, GNU Guix Reference
+Card} lists in two pages most of the commands and options you'll ever
+need.
+
+@item
+The web site contains @uref{https://guix.gnu.org/en/videos/,
+instructional videos} covering topics such as everyday use of Guix, how
+to get help, and how to become a contributor.
+
+@item
+@xref{Documentation}, to learn how to access documentation on your
+computer.
+@end itemize
+
+We hope you will enjoy Guix as much as the community enjoys building it!
+@end quotation
+
+@c *********************************************************************
 @node Package Management
 @chapter Package Management
 
@@ -2588,7 +2917,6 @@ guix install emacs-guix
 * Packages with Multiple Outputs::  Single source package, multiple outputs.
 * Invoking guix gc::            Running the garbage collector.
 * Invoking guix pull::          Fetching the latest Guix and distribution.
-* Channels::                    Customizing the package collection.
 * Invoking guix time-machine::  Running an older revision of Guix.
 * Inferiors::                   Interacting with another revision of Guix.
 * Invoking guix describe::      Display information about your Guix revision.
@@ -2598,6 +2926,10 @@ guix install emacs-guix
 @node Features
 @section Features
 
+Here we assume you've already made your first steps with Guix
+(@pxref{Getting Started}) and would like to get an overview about what's
+going on under the hood.
+
 When using Guix, each package ends up in the @dfn{package store}, in its
 own directory---something that resembles
 @file{/gnu/store/xxx-package-1.2}, where @code{xxx} is a base32 string.
@@ -2750,7 +3082,7 @@ shells get all the right environment variable definitions:
 
 @example
 GUIX_PROFILE="$HOME/.guix-profile" ; \
-source "$HOME/.guix-profile/etc/profile"
+source "$GUIX_PROFILE/etc/profile"
 @end example
 
 In a multi-user setup, user profiles are stored in a place registered as
@@ -2862,6 +3194,29 @@ in the distribution currently installed.  To update your distribution,
 you should regularly run @command{guix pull} (@pxref{Invoking guix
 pull}).
 
+@cindex package transformations, upgrades
+When upgrading, package transformations that were originally applied
+when creating the profile are automatically re-applied (@pxref{Package
+Transformation Options}).  For example, assume you first installed Emacs
+from the tip of its development branch with:
+
+@example
+guix install emacs-next --with-branch=emacs-next=master
+@end example
+
+Next time you run @command{guix upgrade}, Guix will again pull the tip
+of the Emacs development branch and build @code{emacs-next} from that
+checkout.
+
+Note that transformation options such as @option{--with-branch} and
+@option{--with-source} depend on external state; it is up to you to
+ensure that they work as expected.  You can also discard a
+transformations that apply to a package by running:
+
+@example
+guix install @var{package}
+@end example
+
 @item --do-not-upgrade[=@var{regexp} @dots{}]
 When used together with the @option{--upgrade} option, do @emph{not}
 upgrade any packages whose name matches a @var{regexp}.  For example, to
@@ -3221,11 +3576,8 @@ Consequently, this command must be used with care.
 Finally, since @command{guix package} may actually start build
 processes, it supports all the common build options (@pxref{Common Build
 Options}).  It also supports package transformation options, such as
-@option{--with-source} (@pxref{Package Transformation Options}).
-However, note that package transformations are lost when upgrading; to
-preserve transformations across upgrades, you should define your own
-package variant in a Guile module and add it to @env{GUIX_PACKAGE_PATH}
-(@pxref{Defining Packages}).
+@option{--with-source}, and preserves them across upgrades
+(@pxref{Package Transformation Options}).
 
 @node Substitutes
 @section Substitutes
@@ -3246,6 +3598,7 @@ also result from derivation builds, can be available as substitutes.
 @menu
 * Official Substitute Server::  One particular source of substitutes.
 * Substitute Server Authorization::  How to enable or disable substitutes.
+* Getting Substitutes from Other Servers::  Substitute diversity.
 * Substitute Authentication::   How Guix verifies substitutes.
 * Proxy Settings::              How to get substitutes via proxy.
 * Substitution Failure::        What happens when substitution fails.
@@ -3295,6 +3648,11 @@ imports, using the @command{guix archive} command (@pxref{Invoking guix
 archive}).  Doing so implies that you trust @code{@value{SUBSTITUTE-SERVER}} to not
 be compromised and to serve genuine substitutes.
 
+@quotation Note
+If you are using Guix System, you can skip this section: Guix System
+authorizes substitutes from @code{@value{SUBSTITUTE-SERVER}} by default.
+@end quotation
+
 The public key for @code{@value{SUBSTITUTE-SERVER}} is installed along with Guix, in
 @code{@var{prefix}/share/guix/@value{SUBSTITUTE-SERVER}.pub}, where @var{prefix} is
 the installation prefix of Guix.  If you installed Guix from source,
@@ -3345,6 +3703,108 @@ guix-daemon}).  It can also be disabled temporarily by passing the
 @option{--no-substitutes} option to @command{guix package},
 @command{guix build}, and other command-line tools.
 
+@node Getting Substitutes from Other Servers
+@subsection Getting Substitutes from Other Servers
+
+@cindex substitute servers, adding more
+Guix can look up and fetch substitutes from several servers.  This is
+useful when you are using packages from additional channels for which
+the official server does not have substitutes but another server
+provides them.  Another situation where this is useful is when you would
+prefer to download from your organization's substitute server, resorting
+to the official server only as a fallback or dismissing it altogether.
+
+You can give Guix a list of substitute server URLs and it will check
+them in the specified order.  You also need to explicitly authorize the
+public keys of substitute servers to instruct Guix to accept the
+substitutes they sign.
+
+On Guix System, this is achieved by modifying the configuration of the
+@code{guix} service.  Since the @code{guix} service is part of the
+default lists of services, @code{%base-services} and
+@code{%desktop-services}, you can use @code{modify-services} to change
+its configuration and add the URLs and substitute keys that you want
+(@pxref{Service Reference, @code{modify-services}}).
+
+As an example, suppose you want to fetch substitutes from
+@code{guix.example.org} and to authorize the signing key of that server,
+in addition to the default @code{@value{SUBSTITUTE-SERVER}}.  The
+resulting operating system configuration will look something like:
+
+@lisp
+(operating-system
+  ;; @dots{}
+  (services
+    ;; Assume we're starting from '%desktop-services'.  Replace it
+    ;; with the list of services you're actually using.
+    (modify-services %desktop-services
+      (guix-service-type config =>
+                        (guix-configuration
+                          (inherit config)
+                          (substitute-urls
+                            (append (list "https://guix.example.org")
+                                    %default-substitute-urls))
+                          (authorized-keys
+                            (append (list (local-file "./key.pub"))
+                                    %default-authorized-guix-keys)))))))
+@end lisp
+
+This assumes that the file @file{key.pub} contains the signing key of
+@code{guix.example.org}.  With this change in place in your operating
+system configuration file (say @file{/etc/config.scm}), you can
+reconfigure and restart the @code{guix-daemon} service or reboot so the
+changes take effect:
+
+@example
+$ sudo guix system reconfigure /etc/config.scm
+$ sudo herd restart guix-daemon
+@end example
+
+If you're running Guix on a ``foreign distro'', you would instead take
+the following steps to get substitutes from additional servers:
+
+@enumerate
+@item
+Edit the service configuration file for @code{guix-daemon}; when using
+systemd, this is normally
+@file{/etc/systemd/system/guix-daemon.service}.  Add the
+@option{--substitute-urls} option on the @command{guix-daemon} command
+line and list the URLs of interest (@pxref{daemon-substitute-urls,
+@code{guix-daemon --substitute-urls}}):
+
+@example
+@dots{} --substitute-urls='https://guix.example.org https://@value{SUBSTITUTE-SERVER}'
+@end example
+
+@item
+Restart the daemon.  For systemd, it goes like this:
+
+@example
+systemctl daemon-reload
+systemctl restart guix-daemon.service
+@end example
+
+@item
+Authorize the key of the new server (@pxref{Invoking guix archive}):
+
+@example
+guix archive --authorize < key.pub
+@end example
+
+Again this assumes @file{key.pub} contains the public key that
+@code{guix.example.org} uses to sign substitutes.
+@end enumerate
+
+Now you're all set!  Substitutes will be preferably taken from
+@code{https://guix.example.org}, using @code{@value{SUBSTITUTE-SERVER}}
+as a fallback.  Of course you can list as many substitute servers as you
+like, with the caveat that substitute lookup can be slowed down if too
+many servers need to be contacted.
+
+Note that there are also situations where one may want to add the URL of
+a substitute server @emph{without} authorizing its key.
+@xref{Substitute Authentication}, to understand this fine point.
+
 @node Substitute Authentication
 @subsection Substitute Authentication
 
@@ -3385,7 +3845,7 @@ authenticating bindings between domain names and public keys).
 
 @vindex http_proxy
 @vindex https_proxy
-Substitutes are downloaded over HTTP or HTTPS.  The @env{http_proxy} and
+Substitutes are downloaded over HTTP or HTTPS@.  The @env{http_proxy} and
 @env{https_proxy} environment variables can be set in the environment of
 @command{guix-daemon} and are honored for downloads of substitutes.
 Note that the value of those environment variables in the environment
@@ -3805,7 +4265,7 @@ Generation 3	Jun 13 2018 23:31:07	(current)
 describe the current status of Guix.
 
 This @code{~/.config/guix/current} profile works exactly like the profiles
-created by @command{guix package} (@pxref{Invoking guix package}). That
+created by @command{guix package} (@pxref{Invoking guix package}).  That
 is, you can list generations, roll back to the previous
 generation---i.e., the previous Guix---and so on:
 
@@ -3961,473 +4421,6 @@ information.
 In addition, @command{guix pull} supports all the common build options
 (@pxref{Common Build Options}).
 
-@node Channels
-@section Channels
-
-@cindex channels
-@cindex @file{channels.scm}, configuration file
-@cindex configuration file for channels
-@cindex @command{guix pull}, configuration file
-@cindex configuration of @command{guix pull}
-Guix and its package collection are updated by running @command{guix pull}
-(@pxref{Invoking guix pull}).  By default @command{guix pull} downloads and
-deploys Guix itself from the official GNU@tie{}Guix repository.  This can be
-customized by defining @dfn{channels} in the
-@file{~/.config/guix/channels.scm} file.  A channel specifies a URL and branch
-of a Git repository to be deployed, and @command{guix pull} can be instructed
-to pull from one or more channels.  In other words, channels can be used
-to @emph{customize} and to @emph{extend} Guix, as we will see below.
-Before that, some security considerations.
-
-@subsection Channel Authentication
-
-@anchor{channel-authentication}
-@cindex authentication, of channel code
-The @command{guix pull} and @command{guix time-machine} commands
-@dfn{authenticate} the code retrieved from channels: they make sure each
-commit that is fetched is signed by an authorized developer.  The goal
-is to protect from unauthorized modifications to the channel that would
-lead users to run malicious code.
-
-As a user, you must provide a @dfn{channel introduction} in your
-channels file so that Guix knows how to authenticate its first commit.
-A channel specification, including its introduction, looks something
-along these lines:
-
-@lisp
-(channel
-  (name 'my-channel)
-  (url "https://example.org/my-channel.git")
-  (introduction
-   (make-channel-introduction
-    "6f0d8cc0d88abb59c324b2990bfee2876016bb86"
-    (openpgp-fingerprint
-     "CABB A931 C0FF EEC6 900D  0CFB 090B 1199 3D9A EBB5"))))
-@end lisp
-
-The specification above shows the name and URL of the channel.  The call
-to @code{make-channel-introduction} above specifies that authentication
-of this channel starts at commit @code{6f0d8cc@dots{}}, which is signed
-by the OpenPGP key with fingerprint @code{CABB A931@dots{}}.
-
-For the main channel, called @code{guix}, you automatically get that
-information from your Guix installation.  For other channels, include
-the channel introduction provided by the channel authors in your
-@file{channels.scm} file.  Make sure you retrieve the channel
-introduction from a trusted source since that is the root of your trust.
-
-If you're curious about the authentication mechanics, read on!
-
-@subsection Using a Custom Guix Channel
-
-The channel called @code{guix} specifies where Guix itself---its command-line
-tools as well as its package collection---should be downloaded.  For instance,
-suppose you want to update from your own copy of the Guix repository at
-@code{example.org}, and specifically the @code{super-hacks} branch, you can
-write in @code{~/.config/guix/channels.scm} this specification:
-
-@lisp
-;; Tell 'guix pull' to use my own repo.
-(list (channel
-        (name 'guix)
-        (url "https://example.org/my-guix.git")
-        (branch "super-hacks")))
-@end lisp
-
-@noindent
-From there on, @command{guix pull} will fetch code from the @code{super-hacks}
-branch of the repository at @code{example.org}.
-
-@subsection Specifying Additional Channels
-
-@cindex extending the package collection (channels)
-@cindex personal packages (channels)
-@cindex channels, for personal packages
-You can also specify @emph{additional channels} to pull from.  Let's say you
-have a bunch of custom package variants or personal packages that you think
-would make little sense to contribute to the Guix project, but would like to
-have these packages transparently available to you at the command line.  You
-would first write modules containing those package definitions (@pxref{Package
-Modules}), maintain them in a Git repository, and then you and anyone else can
-use it as an additional channel to get packages from.  Neat, no?
-
-@c What follows stems from discussions at
-@c <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=22629#134> as well as
-@c earlier discussions on guix-devel@gnu.org.
-@quotation Warning
-Before you, dear user, shout---``woow this is @emph{soooo coool}!''---and
-publish your personal channel to the world, we would like to share a few words
-of caution:
-
-@itemize
-@item
-Before publishing a channel, please consider contributing your package
-definitions to Guix proper (@pxref{Contributing}).  Guix as a project is open
-to free software of all sorts, and packages in Guix proper are readily
-available to all Guix users and benefit from the project's quality assurance
-process.
-
-@item
-When you maintain package definitions outside Guix, we, Guix developers,
-consider that @emph{the compatibility burden is on you}.  Remember that
-package modules and package definitions are just Scheme code that uses various
-programming interfaces (APIs).  We want to remain free to change these APIs to
-keep improving Guix, possibly in ways that break your channel.  We never
-change APIs gratuitously, but we will @emph{not} commit to freezing APIs
-either.
-
-@item
-Corollary: if you're using an external channel and that channel breaks, please
-@emph{report the issue to the channel authors}, not to the Guix project.
-@end itemize
-
-You've been warned!  Having said this, we believe external channels are a
-practical way to exert your freedom to augment Guix' package collection and to
-share your improvements, which are basic tenets of
-@uref{https://www.gnu.org/philosophy/free-sw.html, free software}.  Please
-email us at @email{guix-devel@@gnu.org} if you'd like to discuss this.
-@end quotation
-
-To use a channel, write @code{~/.config/guix/channels.scm} to instruct
-@command{guix pull} to pull from it @emph{in addition} to the default Guix
-channel(s):
-
-@vindex %default-channels
-@lisp
-;; Add my personal packages to those Guix provides.
-(cons (channel
-        (name 'my-personal-packages)
-        (url "https://example.org/personal-packages.git"))
-      %default-channels)
-@end lisp
-
-@noindent
-Note that the snippet above is (as always!)@: Scheme code; we use @code{cons} to
-add a channel the list of channels that the variable @code{%default-channels}
-is bound to (@pxref{Pairs, @code{cons} and lists,, guile, GNU Guile Reference
-Manual}).  With this file in place, @command{guix pull} builds not only Guix
-but also the package modules from your own repository.  The result in
-@file{~/.config/guix/current} is the union of Guix with your own package
-modules:
-
-@example
-$ guix pull --list-generations
-@dots{}
-Generation 19	Aug 27 2018 16:20:48
-  guix d894ab8
-    repository URL: https://git.savannah.gnu.org/git/guix.git
-    branch: master
-    commit: d894ab8e9bfabcefa6c49d9ba2e834dd5a73a300
-  my-personal-packages dd3df5e
-    repository URL: https://example.org/personal-packages.git
-    branch: master
-    commit: dd3df5e2c8818760a8fc0bd699e55d3b69fef2bb
-  11 new packages: my-gimp, my-emacs-with-cool-features, @dots{}
-  4 packages upgraded: emacs-racket-mode@@0.0.2-2.1b78827, @dots{}
-@end example
-
-@noindent
-The output of @command{guix pull} above shows that Generation@tie{}19 includes
-both Guix and packages from the @code{my-personal-packages} channel.  Among
-the new and upgraded packages that are listed, some like @code{my-gimp} and
-@code{my-emacs-with-cool-features} might come from
-@code{my-personal-packages}, while others come from the Guix default channel.
-
-To create a channel, create a Git repository containing your own package
-modules and make it available.  The repository can contain anything, but a
-useful channel will contain Guile modules that export packages.  Once you
-start using a channel, Guix will behave as if the root directory of that
-channel's Git repository has been added to the Guile load path (@pxref{Load
-Paths,,, guile, GNU Guile Reference Manual}).  For example, if your channel
-contains a file at @file{my-packages/my-tools.scm} that defines a Guile
-module, then the module will be available under the name @code{(my-packages
-my-tools)}, and you will be able to use it like any other module
-(@pxref{Modules,,, guile, GNU Guile Reference Manual}).
-
-@cindex dependencies, channels
-@cindex meta-data, channels
-@subsection Declaring Channel Dependencies
-
-Channel authors may decide to augment a package collection provided by other
-channels.  They can declare their channel to be dependent on other channels in
-a meta-data file @file{.guix-channel}, which is to be placed in the root of
-the channel repository.
-
-The meta-data file should contain a simple S-expression like this:
-
-@lisp
-(channel
- (version 0)
- (dependencies
-  (channel
-   (name some-collection)
-   (url "https://example.org/first-collection.git")
-
-   ;; The 'introduction' bit below is optional: you would
-   ;; provide it for dependencies that can be authenticated.
-   (introduction
-    (channel-introduction
-      (version 0)
-      (commit "a8883b58dc82e167c96506cf05095f37c2c2c6cd")
-      (signer "CABB A931 C0FF EEC6 900D  0CFB 090B 1199 3D9A EBB5"))))
-  (channel
-   (name some-other-collection)
-   (url "https://example.org/second-collection.git")
-   (branch "testing"))))
-@end lisp
-
-In the above example this channel is declared to depend on two other channels,
-which will both be fetched automatically.  The modules provided by the channel
-will be compiled in an environment where the modules of all these declared
-channels are available.
-
-For the sake of reliability and maintainability, you should avoid dependencies
-on channels that you don't control, and you should aim to keep the number of
-dependencies to a minimum.
-
-@cindex subdirectory, channels
-@subsection Package Modules in a Sub-directory
-
-As a channel author, you may want to keep your channel modules in a
-sub-directory.  If your modules are in the sub-directory @file{guix}, you must
-add a meta-data file @file{.guix-channel} that contains:
-
-@lisp
-(channel
-  (version 0)
-  (directory "guix"))
-@end lisp
-
-@cindex channel authorizations
-@subsection Specifying Channel Authorizations
-
-@anchor{channel-authorizations}
-As we saw above, Guix ensures the source code it pulls from channels
-comes from authorized developers.  As a channel author, you need to
-specify the list of authorized developers in the
-@file{.guix-authorizations} file in the channel's Git repository.  The
-authentication rule is simple: each commit must be signed by a key
-listed in the @file{.guix-authorizations} file of its parent
-commit(s)@footnote{Git commits form a @dfn{directed acyclic graph}
-(DAG).  Each commit can have zero or more parents; ``regular'' commits
-have one parent and merge commits have two parent commits.  Read
-@uref{https://eagain.net/articles/git-for-computer-scientists/, @i{Git
-for Computer Scientists}} for a great overview.}  The
-@file{.guix-authorizations} file looks like this:
-
-@lisp
-;; Example '.guix-authorizations' file.
-
-(authorizations
- (version 0)               ;current file format version
-
- (("AD17 A21E F8AE D8F1 CC02  DBD9 F8AE D8F1 765C 61E3"
-   (name "alice"))
-  ("2A39 3FFF 68F4 EF7A 3D29  12AF 68F4 EF7A 22FB B2D5"
-   (name "bob"))
-  ("CABB A931 C0FF EEC6 900D  0CFB 090B 1199 3D9A EBB5"
-   (name "charlie"))))
-@end lisp
-
-Each fingerprint is followed by optional key/value pairs, as in the
-example above.  Currently these key/value pairs are ignored.
-
-This authentication rule creates a chicken-and-egg issue: how do we
-authenticate the first commit?  Related to that: how do we deal with
-channels whose repository history contains unsigned commits and lack
-@file{.guix-authorizations}?  And how do we fork existing channels?
-
-@cindex channel introduction
-Channel introductions answer these questions by describing the first
-commit of a channel that should be authenticated.  The first time a
-channel is fetched with @command{guix pull} or @command{guix
-time-machine}, the command looks up the introductory commit and verifies
-that it is signed by the specified OpenPGP key.  From then on, it
-authenticates commits according to the rule above.
-
-Additionally, your channel must provide all the OpenPGP keys that were
-ever mentioned in @file{.guix-authorizations}, stored as @file{.key}
-files, which can be either binary or ``ASCII-armored''.  By default,
-those @file{.key} files are searched for in the branch named
-@code{keyring} but you can specify a different branch name in
-@code{.guix-channel} like so:
-
-@lisp
-(channel
-  (version 0)
-  (keyring-reference "my-keyring-branch"))
-@end lisp
-
-To summarize, as the author of a channel, there are three things you have
-to do to allow users to authenticate your code:
-
-@enumerate
-@item
-Export the OpenPGP keys of past and present committers with @command{gpg
---export} and store them in @file{.key} files, by default in a branch
-named @code{keyring} (we recommend making it an @dfn{orphan branch}).
-
-@item
-Introduce an initial @file{.guix-authorizations} in the channel's
-repository.  Do that in a signed commit (@pxref{Commit Access}, for
-information on how to sign Git commits.)
-
-@item
-Advertise the channel introduction, for instance on your channel's web
-page.  The channel introduction, as we saw above, is the commit/key
-pair---i.e., the commit that introduced @file{.guix-authorizations}, and
-the fingerprint of the OpenPGP used to sign it.
-@end enumerate
-
-Before pushing to your public Git repository, you can run @command{guix
-git-authenticate} to verify that you did sign all the commits you are
-about to push with an authorized key:
-
-@example
-guix git authenticate @var{commit} @var{signer}
-@end example
-
-@noindent
-where @var{commit} and @var{signer} are your channel introduction.
-@xref{Invoking guix git authenticate}, for details.
-
-Publishing a signed channel requires discipline: any mistake, such as an
-unsigned commit or a commit signed by an unauthorized key, will prevent
-users from pulling from your channel---well, that's the whole point of
-authentication!  Pay attention to merges in particular: merge commits
-are considered authentic if and only if they are signed by a key present
-in the @file{.guix-authorizations} file of @emph{both} branches.
-
-@cindex primary URL, channels
-@subsection Primary URL
-
-Channel authors can indicate the primary URL of their channel's Git
-repository in the @file{.guix-channel} file, like so:
-
-@lisp
-(channel
-  (version 0)
-  (url "https://example.org/guix.git"))
-@end lisp
-
-This allows @command{guix pull} to determine whether it is pulling code
-from a mirror of the channel; when that is the case, it warns the user
-that the mirror might be stale and displays the primary URL.  That way,
-users cannot be tricked into fetching code from a stale mirror that does
-not receive security updates.
-
-This feature only makes sense for authenticated repositories, such as
-the official @code{guix} channel, for which @command{guix pull} ensures
-the code it fetches is authentic.
-
-@cindex news, for channels
-@subsection Writing Channel News
-
-Channel authors may occasionally want to communicate to their users
-information about important changes in the channel.  You'd send them all
-an email, but that's not convenient.
-
-Instead, channels can provide a @dfn{news file}; when the channel users
-run @command{guix pull}, that news file is automatically read and
-@command{guix pull --news} can display the announcements that correspond
-to the new commits that have been pulled, if any.
-
-To do that, channel authors must first declare the name of the news file
-in their @file{.guix-channel} file:
-
-@lisp
-(channel
-  (version 0)
-  (news-file "etc/news.txt"))
-@end lisp
-
-The news file itself, @file{etc/news.txt} in this example, must look
-something like this:
-
-@lisp
-(channel-news
-  (version 0)
-  (entry (tag "the-bug-fix")
-         (title (en "Fixed terrible bug")
-                (fr "Oh la la"))
-         (body (en "@@emph@{Good news@}!  It's fixed!")
-               (eo "Certe ĝi pli bone funkcias nun!")))
-  (entry (commit "bdcabe815cd28144a2d2b4bc3c5057b051fa9906")
-         (title (en "Added a great package")
-                (ca "Què vol dir guix?"))
-         (body (en "Don't miss the @@code@{hello@} package!"))))
-@end lisp
-
-While the news file is using the Scheme syntax, avoid naming it with a
-@file{.scm} extension or else it will get picked up when building the
-channel and yield an error since it is not a valid module.
-Alternatively, you can move the channel module to a subdirectory and
-store the news file in another directory.
-
-The file consists of a list of @dfn{news entries}.  Each entry is
-associated with a commit or tag: it describes changes made in this
-commit, possibly in preceding commits as well.  Users see entries only
-the first time they obtain the commit the entry refers to.
-
-The @code{title} field should be a one-line summary while @code{body}
-can be arbitrarily long, and both can contain Texinfo markup
-(@pxref{Overview,,, texinfo, GNU Texinfo}).  Both the title and body are
-a list of language tag/message tuples, which allows @command{guix pull}
-to display news in the language that corresponds to the user's locale.
-
-If you want to translate news using a gettext-based workflow, you can
-extract translatable strings with @command{xgettext} (@pxref{xgettext
-Invocation,,, gettext, GNU Gettext Utilities}).  For example, assuming
-you write news entries in English first, the command below creates a PO
-file containing the strings to translate:
-
-@example
-xgettext -o news.po -l scheme -ken etc/news.txt
-@end example
-
-To sum up, yes, you could use your channel as a blog.  But beware, this
-is @emph{not quite} what your users might expect.
-
-@subsection Replicating Guix
-
-@cindex pinning, channels
-@cindex replicating Guix
-@cindex reproducibility, of Guix
-The @command{guix pull --list-generations} output above shows precisely which
-commits were used to build this instance of Guix.  We can thus replicate it,
-say, on another machine, by providing a channel specification in
-@file{~/.config/guix/channels.scm} that is ``pinned'' to these commits:
-
-@lisp
-;; Deploy specific commits of my channels of interest.
-(list (channel
-       (name 'guix)
-       (url "https://git.savannah.gnu.org/git/guix.git")
-       (commit "6298c3ffd9654d3231a6f25390b056483e8f407c"))
-      (channel
-       (name 'my-personal-packages)
-       (url "https://example.org/personal-packages.git")
-       (commit "dd3df5e2c8818760a8fc0bd699e55d3b69fef2bb")))
-@end lisp
-
-The @command{guix describe --format=channels} command can even generate this
-list of channels directly (@pxref{Invoking guix describe}).  The resulting
-file can be used with the -C options of @command{guix pull}
-(@pxref{Invoking guix pull}) or @command{guix time-machine}
-(@pxref{Invoking guix time-machine}).
-
-At this point the two machines run the @emph{exact same Guix}, with access to
-the @emph{exact same packages}.  The output of @command{guix build gimp} on
-one machine will be exactly the same, bit for bit, as the output of the same
-command on the other machine.  It also means both machines have access to all
-the source code of Guix and, transitively, to all the source code of every
-package it defines.
-
-This gives you super powers, allowing you to track the provenance of binary
-artifacts with very fine grain, and to reproduce software environments at
-will---some sort of ``meta reproducibility'' capabilities, if you will.
-@xref{Inferiors}, for another way to take advantage of these super powers.
-
 @node Invoking guix time-machine
 @section Invoking @command{guix time-machine}
 
@@ -4469,7 +4462,7 @@ Scheme code that evaluates to a list of channel objects.
 @end table
 
 As for @command{guix pull}, the absence of any options means that the
-the latest commit on the master branch will be used. The command
+latest commit on the master branch will be used.  The command
 
 @example
 guix time-machine -- build hello
@@ -4770,7 +4763,13 @@ what you should use in this case (@pxref{Invoking guix copy}).
 
 @cindex nar, archive format
 @cindex normalized archive (nar)
-Archives are stored in the ``normalized archive'' or ``nar'' format, which is
+@cindex nar bundle, archive format
+Each store item is written in the @dfn{normalized archive} or @dfn{nar}
+format (described below), and the output of @command{guix archive
+--export} (and input of @command{guix archive --import}) is a @dfn{nar
+bundle}.
+
+The nar format is
 comparable in spirit to `tar', but with differences
 that make it more appropriate for our purposes.  First, rather than
 recording all Unix metadata for each file, the nar format only mentions
@@ -4780,6 +4779,10 @@ entries are stored always follows the order of file names according to
 the C locale collation order.  This makes archive production fully
 deterministic.
 
+That nar bundle format is essentially the concatenation of zero or more
+nars along with metadata for each store item it contains: its file name,
+references, corresponding derivation, and a digital signature.
+
 When exporting, the daemon digitally signs the contents of the archive,
 and that digital signature is appended.  When importing, the daemon
 verifies the signature and rejects the import in case of an invalid
@@ -4817,9 +4820,11 @@ the store.
 @item --generate-key[=@var{parameters}]
 @cindex signing, archives
 Generate a new key pair for the daemon.  This is a prerequisite before
-archives can be exported with @option{--export}.  Note that this
-operation usually takes time, because it needs to gather enough entropy
-to generate the key pair.
+archives can be exported with @option{--export}.  This
+operation is usually instantaneous but it can take time if the system's
+entropy pool needs to be refilled.  On Guix System,
+@code{guix-service-type} takes care of generating this key pair the
+first boot.
 
 The generated key pair is typically stored under @file{/etc/guix}, in
 @file{signing-key.pub} (public key) and @file{signing-key.sec} (private
@@ -4883,6 +4888,508 @@ $ wget -O - \
 
 @end table
 
+@c *********************************************************************
+@node Channels
+@chapter Channels
+
+@cindex channels
+@cindex @file{channels.scm}, configuration file
+@cindex configuration file for channels
+@cindex @command{guix pull}, configuration file
+@cindex configuration of @command{guix pull}
+Guix and its package collection are updated by running @command{guix pull}
+(@pxref{Invoking guix pull}).  By default @command{guix pull} downloads and
+deploys Guix itself from the official GNU@tie{}Guix repository.  This can be
+customized by defining @dfn{channels} in the
+@file{~/.config/guix/channels.scm} file.  A channel specifies a URL and branch
+of a Git repository to be deployed, and @command{guix pull} can be instructed
+to pull from one or more channels.  In other words, channels can be used
+to @emph{customize} and to @emph{extend} Guix, as we will see below.
+Guix is able to take into account security concerns and deal with authenticated
+updates.
+
+@menu
+* Specifying Additional Channels::  Extending the package collection.
+* Using a Custom Guix Channel::  Using a customized Guix.
+* Replicating Guix::            Running the @emph{exact same} Guix.
+* Channel Authentication::      How Guix verifies what it fetches.
+* Creating a Channel::          How to write your custom channel.
+* Package Modules in a Sub-directory::  Specifying the channel's package modules location.
+* Declaring Channel Dependencies::  How to depend on other channels.
+* Specifying Channel Authorizations::  Defining channel authors authorizations.
+* Primary URL::                 Distinguishing mirror to original.
+* Writing Channel News::        Communicating information to channel's users.
+@end menu
+
+@node Specifying Additional Channels
+@section Specifying Additional Channels
+
+@cindex extending the package collection (channels)
+@cindex variant packages (channels)
+You can specify @emph{additional channels} to pull from.  To use a channel, write
+@code{~/.config/guix/channels.scm} to instruct @command{guix pull} to pull from it
+@emph{in addition} to the default Guix channel(s):
+
+@vindex %default-channels
+@lisp
+;; Add variant packages to those Guix provides.
+(cons (channel
+        (name 'variant-packages)
+        (url "https://example.org/variant-packages.git"))
+      %default-channels)
+@end lisp
+
+@noindent
+Note that the snippet above is (as always!)@: Scheme code; we use @code{cons} to
+add a channel the list of channels that the variable @code{%default-channels}
+is bound to (@pxref{Pairs, @code{cons} and lists,, guile, GNU Guile Reference
+Manual}).  With this file in place, @command{guix pull} builds not only Guix
+but also the package modules from your own repository.  The result in
+@file{~/.config/guix/current} is the union of Guix with your own package
+modules:
+
+@example
+$ guix pull --list-generations
+@dots{}
+Generation 19	Aug 27 2018 16:20:48
+  guix d894ab8
+    repository URL: https://git.savannah.gnu.org/git/guix.git
+    branch: master
+    commit: d894ab8e9bfabcefa6c49d9ba2e834dd5a73a300
+  variant-packages dd3df5e
+    repository URL: https://example.org/variant-packages.git
+    branch: master
+    commit: dd3df5e2c8818760a8fc0bd699e55d3b69fef2bb
+  11 new packages: variant-gimp, variant-emacs-with-cool-features, @dots{}
+  4 packages upgraded: emacs-racket-mode@@0.0.2-2.1b78827, @dots{}
+@end example
+
+@noindent
+The output of @command{guix pull} above shows that Generation@tie{}19 includes
+both Guix and packages from the @code{variant-personal-packages} channel.  Among
+the new and upgraded packages that are listed, some like @code{variant-gimp} and
+@code{variant-emacs-with-cool-features} might come from
+@code{variant-packages}, while others come from the Guix default channel.
+
+@node Using a Custom Guix Channel
+@section Using a Custom Guix Channel
+
+The channel called @code{guix} specifies where Guix itself---its command-line
+tools as well as its package collection---should be downloaded.  For instance,
+suppose you want to update from another copy of the Guix repository at
+@code{example.org}, and specifically the @code{super-hacks} branch, you can
+write in @code{~/.config/guix/channels.scm} this specification:
+
+@lisp
+;; Tell 'guix pull' to use another repo.
+(list (channel
+        (name 'guix)
+        (url "https://example.org/another-guix.git")
+        (branch "super-hacks")))
+@end lisp
+
+@noindent
+From there on, @command{guix pull} will fetch code from the @code{super-hacks}
+branch of the repository at @code{example.org}.  The authentication concern is
+addressed below ((@pxref{Channel  Authentication}).
+
+@node Replicating Guix
+@section Replicating Guix
+
+@cindex pinning, channels
+@cindex replicating Guix
+@cindex reproducibility, of Guix
+The @command{guix pull --list-generations} output above shows precisely which
+commits were used to build this instance of Guix.  We can thus replicate it,
+say, on another machine, by providing a channel specification in
+@file{~/.config/guix/channels.scm} that is ``pinned'' to these commits:
+
+@lisp
+;; Deploy specific commits of my channels of interest.
+(list (channel
+       (name 'guix)
+       (url "https://git.savannah.gnu.org/git/guix.git")
+       (commit "6298c3ffd9654d3231a6f25390b056483e8f407c"))
+      (channel
+       (name 'variant-packages)
+       (url "https://example.org/variant-packages.git")
+       (commit "dd3df5e2c8818760a8fc0bd699e55d3b69fef2bb")))
+@end lisp
+
+The @command{guix describe --format=channels} command can even generate this
+list of channels directly (@pxref{Invoking guix describe}).  The resulting
+file can be used with the -C options of @command{guix pull}
+(@pxref{Invoking guix pull}) or @command{guix time-machine}
+(@pxref{Invoking guix time-machine}).
+
+At this point the two machines run the @emph{exact same Guix}, with access to
+the @emph{exact same packages}.  The output of @command{guix build gimp} on
+one machine will be exactly the same, bit for bit, as the output of the same
+command on the other machine.  It also means both machines have access to all
+the source code of Guix and, transitively, to all the source code of every
+package it defines.
+
+This gives you super powers, allowing you to track the provenance of binary
+artifacts with very fine grain, and to reproduce software environments at
+will---some sort of ``meta reproducibility'' capabilities, if you will.
+@xref{Inferiors}, for another way to take advantage of these super powers.
+
+@node Channel Authentication
+@section Channel Authentication
+
+@anchor{channel-authentication}
+@cindex authentication, of channel code
+The @command{guix pull} and @command{guix time-machine} commands
+@dfn{authenticate} the code retrieved from channels: they make sure each
+commit that is fetched is signed by an authorized developer.  The goal
+is to protect from unauthorized modifications to the channel that would
+lead users to run malicious code.
+
+As a user, you must provide a @dfn{channel introduction} in your
+channels file so that Guix knows how to authenticate its first commit.
+A channel specification, including its introduction, looks something
+along these lines:
+
+@lisp
+(channel
+  (name 'some-channel)
+  (url "https://example.org/some-channel.git")
+  (introduction
+   (make-channel-introduction
+    "6f0d8cc0d88abb59c324b2990bfee2876016bb86"
+    (openpgp-fingerprint
+     "CABB A931 C0FF EEC6 900D  0CFB 090B 1199 3D9A EBB5"))))
+@end lisp
+
+The specification above shows the name and URL of the channel.  The call
+to @code{make-channel-introduction} above specifies that authentication
+of this channel starts at commit @code{6f0d8cc@dots{}}, which is signed
+by the OpenPGP key with fingerprint @code{CABB A931@dots{}}.
+
+For the main channel, called @code{guix}, you automatically get that
+information from your Guix installation.  For other channels, include
+the channel introduction provided by the channel authors in your
+@file{channels.scm} file.  Make sure you retrieve the channel
+introduction from a trusted source since that is the root of your trust.
+
+If you're curious about the authentication mechanics, read on!
+
+@node Creating a Channel
+@section Creating a Channel
+
+@cindex personal packages (channels)
+@cindex channels, for personal packages
+Let's say you have a bunch of custom package variants or personal packages
+that you think would make little sense to contribute to the Guix project, but
+would like to have these packages transparently available to you at the
+command line.  You would first write modules containing those package
+definitions (@pxref{Package Modules}), maintain them in a Git repository, and
+then you and anyone else can use it as an additional channel to get packages
+from.  Neat, no?
+
+@c What follows stems from discussions at
+@c <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=22629#134> as well as
+@c earlier discussions on guix-devel@gnu.org.
+@quotation Warning
+Before you, dear user, shout---``woow this is @emph{soooo coool}!''---and
+publish your personal channel to the world, we would like to share a few words
+of caution:
+
+@itemize
+@item
+Before publishing a channel, please consider contributing your package
+definitions to Guix proper (@pxref{Contributing}).  Guix as a project is open
+to free software of all sorts, and packages in Guix proper are readily
+available to all Guix users and benefit from the project's quality assurance
+process.
+
+@item
+When you maintain package definitions outside Guix, we, Guix developers,
+consider that @emph{the compatibility burden is on you}.  Remember that
+package modules and package definitions are just Scheme code that uses various
+programming interfaces (APIs).  We want to remain free to change these APIs to
+keep improving Guix, possibly in ways that break your channel.  We never
+change APIs gratuitously, but we will @emph{not} commit to freezing APIs
+either.
+
+@item
+Corollary: if you're using an external channel and that channel breaks, please
+@emph{report the issue to the channel authors}, not to the Guix project.
+@end itemize
+
+You've been warned!  Having said this, we believe external channels are a
+practical way to exert your freedom to augment Guix' package collection and to
+share your improvements, which are basic tenets of
+@uref{https://www.gnu.org/philosophy/free-sw.html, free software}.  Please
+email us at @email{guix-devel@@gnu.org} if you'd like to discuss this.
+@end quotation
+
+To create a channel, create a Git repository containing your own package
+modules and make it available.  The repository can contain anything, but a
+useful channel will contain Guile modules that export packages.  Once you
+start using a channel, Guix will behave as if the root directory of that
+channel's Git repository has been added to the Guile load path (@pxref{Load
+Paths,,, guile, GNU Guile Reference Manual}).  For example, if your channel
+contains a file at @file{my-packages/my-tools.scm} that defines a Guile
+module, then the module will be available under the name @code{(my-packages
+my-tools)}, and you will be able to use it like any other module
+(@pxref{Modules,,, guile, GNU Guile Reference Manual}).
+
+As a channel author, consider bundling authentication material with your
+channel so that users can authenticate it.  @xref{Channel
+Authentication}, and @ref{Specifying Channel Authorizations}, for info
+on how to do it.
+
+
+@node Package Modules in a Sub-directory
+@section Package Modules in a Sub-directory
+
+@cindex subdirectory, channels
+As a channel author, you may want to keep your channel modules in a
+sub-directory.  If your modules are in the sub-directory @file{guix}, you must
+add a meta-data file @file{.guix-channel} that contains:
+
+@lisp
+(channel
+  (version 0)
+  (directory "guix"))
+@end lisp
+
+@node Declaring Channel Dependencies
+@section Declaring Channel Dependencies
+
+@cindex dependencies, channels
+@cindex meta-data, channels
+Channel authors may decide to augment a package collection provided by other
+channels.  They can declare their channel to be dependent on other channels in
+a meta-data file @file{.guix-channel}, which is to be placed in the root of
+the channel repository.
+
+The meta-data file should contain a simple S-expression like this:
+
+@lisp
+(channel
+ (version 0)
+ (dependencies
+  (channel
+   (name 'some-collection)
+   (url "https://example.org/first-collection.git")
+
+   ;; The 'introduction' bit below is optional: you would
+   ;; provide it for dependencies that can be authenticated.
+   (introduction
+    (channel-introduction
+      (version 0)
+      (commit "a8883b58dc82e167c96506cf05095f37c2c2c6cd")
+      (signer "CABB A931 C0FF EEC6 900D  0CFB 090B 1199 3D9A EBB5"))))
+  (channel
+   (name 'some-other-collection)
+   (url "https://example.org/second-collection.git")
+   (branch "testing"))))
+@end lisp
+
+In the above example this channel is declared to depend on two other channels,
+which will both be fetched automatically.  The modules provided by the channel
+will be compiled in an environment where the modules of all these declared
+channels are available.
+
+For the sake of reliability and maintainability, you should avoid dependencies
+on channels that you don't control, and you should aim to keep the number of
+dependencies to a minimum.
+
+@node Specifying Channel Authorizations
+@section Specifying Channel Authorizations
+
+@cindex channel authorizations
+@anchor{channel-authorizations}
+As we saw above, Guix ensures the source code it pulls from channels
+comes from authorized developers.  As a channel author, you need to
+specify the list of authorized developers in the
+@file{.guix-authorizations} file in the channel's Git repository.  The
+authentication rule is simple: each commit must be signed by a key
+listed in the @file{.guix-authorizations} file of its parent
+commit(s)@footnote{Git commits form a @dfn{directed acyclic graph}
+(DAG).  Each commit can have zero or more parents; ``regular'' commits
+have one parent and merge commits have two parent commits.  Read
+@uref{https://eagain.net/articles/git-for-computer-scientists/, @i{Git
+for Computer Scientists}} for a great overview.}  The
+@file{.guix-authorizations} file looks like this:
+
+@lisp
+;; Example '.guix-authorizations' file.
+
+(authorizations
+ (version 0)               ;current file format version
+
+ (("AD17 A21E F8AE D8F1 CC02  DBD9 F8AE D8F1 765C 61E3"
+   (name "alice"))
+  ("2A39 3FFF 68F4 EF7A 3D29  12AF 68F4 EF7A 22FB B2D5"
+   (name "bob"))
+  ("CABB A931 C0FF EEC6 900D  0CFB 090B 1199 3D9A EBB5"
+   (name "charlie"))))
+@end lisp
+
+Each fingerprint is followed by optional key/value pairs, as in the
+example above.  Currently these key/value pairs are ignored.
+
+This authentication rule creates a chicken-and-egg issue: how do we
+authenticate the first commit?  Related to that: how do we deal with
+channels whose repository history contains unsigned commits and lack
+@file{.guix-authorizations}?  And how do we fork existing channels?
+
+@cindex channel introduction
+Channel introductions answer these questions by describing the first
+commit of a channel that should be authenticated.  The first time a
+channel is fetched with @command{guix pull} or @command{guix
+time-machine}, the command looks up the introductory commit and verifies
+that it is signed by the specified OpenPGP key.  From then on, it
+authenticates commits according to the rule above.
+
+Additionally, your channel must provide all the OpenPGP keys that were
+ever mentioned in @file{.guix-authorizations}, stored as @file{.key}
+files, which can be either binary or ``ASCII-armored''.  By default,
+those @file{.key} files are searched for in the branch named
+@code{keyring} but you can specify a different branch name in
+@code{.guix-channel} like so:
+
+@lisp
+(channel
+  (version 0)
+  (keyring-reference "my-keyring-branch"))
+@end lisp
+
+To summarize, as the author of a channel, there are three things you have
+to do to allow users to authenticate your code:
+
+@enumerate
+@item
+Export the OpenPGP keys of past and present committers with @command{gpg
+--export} and store them in @file{.key} files, by default in a branch
+named @code{keyring} (we recommend making it an @dfn{orphan branch}).
+
+@item
+Introduce an initial @file{.guix-authorizations} in the channel's
+repository.  Do that in a signed commit (@pxref{Commit Access}, for
+information on how to sign Git commits.)
+
+@item
+Advertise the channel introduction, for instance on your channel's web
+page.  The channel introduction, as we saw above, is the commit/key
+pair---i.e., the commit that introduced @file{.guix-authorizations}, and
+the fingerprint of the OpenPGP used to sign it.
+@end enumerate
+
+Before pushing to your public Git repository, you can run @command{guix
+git-authenticate} to verify that you did sign all the commits you are
+about to push with an authorized key:
+
+@example
+guix git authenticate @var{commit} @var{signer}
+@end example
+
+@noindent
+where @var{commit} and @var{signer} are your channel introduction.
+@xref{Invoking guix git authenticate}, for details.
+
+Publishing a signed channel requires discipline: any mistake, such as an
+unsigned commit or a commit signed by an unauthorized key, will prevent
+users from pulling from your channel---well, that's the whole point of
+authentication!  Pay attention to merges in particular: merge commits
+are considered authentic if and only if they are signed by a key present
+in the @file{.guix-authorizations} file of @emph{both} branches.
+
+@node Primary URL
+@section Primary URL
+
+@cindex primary URL, channels
+Channel authors can indicate the primary URL of their channel's Git
+repository in the @file{.guix-channel} file, like so:
+
+@lisp
+(channel
+  (version 0)
+  (url "https://example.org/guix.git"))
+@end lisp
+
+This allows @command{guix pull} to determine whether it is pulling code
+from a mirror of the channel; when that is the case, it warns the user
+that the mirror might be stale and displays the primary URL@.  That way,
+users cannot be tricked into fetching code from a stale mirror that does
+not receive security updates.
+
+This feature only makes sense for authenticated repositories, such as
+the official @code{guix} channel, for which @command{guix pull} ensures
+the code it fetches is authentic.
+
+@node Writing Channel News
+@section Writing Channel News
+
+@cindex news, for channels
+Channel authors may occasionally want to communicate to their users
+information about important changes in the channel.  You'd send them all
+an email, but that's not convenient.
+
+Instead, channels can provide a @dfn{news file}; when the channel users
+run @command{guix pull}, that news file is automatically read and
+@command{guix pull --news} can display the announcements that correspond
+to the new commits that have been pulled, if any.
+
+To do that, channel authors must first declare the name of the news file
+in their @file{.guix-channel} file:
+
+@lisp
+(channel
+  (version 0)
+  (news-file "etc/news.txt"))
+@end lisp
+
+The news file itself, @file{etc/news.txt} in this example, must look
+something like this:
+
+@lisp
+(channel-news
+  (version 0)
+  (entry (tag "the-bug-fix")
+         (title (en "Fixed terrible bug")
+                (fr "Oh la la"))
+         (body (en "@@emph@{Good news@}!  It's fixed!")
+               (eo "Certe ĝi pli bone funkcias nun!")))
+  (entry (commit "bdcabe815cd28144a2d2b4bc3c5057b051fa9906")
+         (title (en "Added a great package")
+                (ca "Què vol dir guix?"))
+         (body (en "Don't miss the @@code@{hello@} package!"))))
+@end lisp
+
+While the news file is using the Scheme syntax, avoid naming it with a
+@file{.scm} extension or else it will get picked up when building the
+channel and yield an error since it is not a valid module.
+Alternatively, you can move the channel module to a subdirectory and
+store the news file in another directory.
+
+The file consists of a list of @dfn{news entries}.  Each entry is
+associated with a commit or tag: it describes changes made in this
+commit, possibly in preceding commits as well.  Users see entries only
+the first time they obtain the commit the entry refers to.
+
+The @code{title} field should be a one-line summary while @code{body}
+can be arbitrarily long, and both can contain Texinfo markup
+(@pxref{Overview,,, texinfo, GNU Texinfo}).  Both the title and body are
+a list of language tag/message tuples, which allows @command{guix pull}
+to display news in the language that corresponds to the user's locale.
+
+If you want to translate news using a gettext-based workflow, you can
+extract translatable strings with @command{xgettext} (@pxref{xgettext
+Invocation,,, gettext, GNU Gettext Utilities}).  For example, assuming
+you write news entries in English first, the command below creates a PO
+file containing the strings to translate:
+
+@example
+xgettext -o news.po -l scheme -ken etc/news.txt
+@end example
+
+To sum up, yes, you could use your channel as a blog.  But beware, this
+is @emph{not quite} what your users might expect.
+
 
 @c *********************************************************************
 @node Development
@@ -5031,7 +5538,7 @@ Another typical use case for containers is to run security-sensitive
 applications such as a web browser.  To run Eolie, we must expose and
 share some files and directories; we include @code{nss-certs} and expose
 @file{/etc/ssl/certs/} for HTTPS authentication; finally we preserve the
-the @env{DISPLAY} environment variable since containerized graphical
+@env{DISPLAY} environment variable since containerized graphical
 applications won't display without it.
 
 @example
@@ -5190,8 +5697,9 @@ device.
 @item --link-profile
 @itemx -P
 For containers, link the environment profile to @file{~/.guix-profile}
-within the container.  This is equivalent to running the command
-@samp{ln -s $GUIX_ENVIRONMENT ~/.guix-profile} within the container.
+within the container and set @code{GUIX_ENVIRONMENT} to that.
+This is equivalent to making @file{~/.guix-profile} a symlink to the
+actual profile within the container.
 Linking will fail and abort the environment if the directory already
 exists, which will certainly be the case if @command{guix environment}
 was invoked in the user's home directory.
@@ -5486,7 +5994,7 @@ direct syscalls are not intercepted either, leading to erratic behavior.
 @vindex GUIX_EXECUTION_ENGINE
 When running a wrapped program, you can explicitly request one of the
 execution engines listed above by setting the
-@code{GUIX_EXECUTION_ENGINE} environment variable accordingly.
+@env{GUIX_EXECUTION_ENGINE} environment variable accordingly.
 @end quotation
 
 @cindex entry point, for Docker images
@@ -5735,7 +6243,10 @@ package definitions.
 @menu
 * Package Modules::             Packages from the programmer's viewpoint.
 * Defining Packages::           Defining new packages.
+* Defining Package Variants::   Customizing packages.
 * Build Systems::               Specifying how packages are built.
+* Build Phases::                Phases of the build process of a package.
+* Build Utilities::             Helpers for your package definitions and more.
 * The Store::                   Manipulating the package store.
 * Derivations::                 Low-level interface to package derivations.
 * The Store Monad::             Purely functional interface to the store.
@@ -5854,7 +6365,7 @@ With luck, you may be able to import part or all of the definition of
 the package you are interested in from another repository, using the
 @code{guix import} command (@pxref{Invoking guix import}).
 
-In the example above, @var{hello} is defined in a module of its own,
+In the example above, @code{hello} is defined in a module of its own,
 @code{(gnu packages hello)}.  Technically, this is not strictly
 necessary, but it is convenient to do so: all the packages defined in
 modules under @code{(gnu packages @dots{})} are automatically known to
@@ -5887,15 +6398,19 @@ Scheme expression to modify the source code.
 @item
 @cindex GNU Build System
 The @code{build-system} field specifies the procedure to build the
-package (@pxref{Build Systems}).  Here, @var{gnu-build-system}
+package (@pxref{Build Systems}).  Here, @code{gnu-build-system}
 represents the familiar GNU Build System, where packages may be
 configured, built, and installed with the usual @code{./configure &&
 make && make check && make install} command sequence.
 
+When you start packaging non-trivial software, you may need tools to
+manipulate those build phases, manipulate files, and so on.  @xref{Build
+Utilities}, for more on this.
+
 @item
 The @code{arguments} field specifies options for the build system
 (@pxref{Build Systems}).  Here it is interpreted by
-@var{gnu-build-system} as a request run @file{configure} with the
+@code{gnu-build-system} as a request run @file{configure} with the
 @option{--enable-silent-rules} flag.
 
 @cindex quote
@@ -5919,8 +6434,8 @@ Reference Manual}).
 @item
 The @code{inputs} field specifies inputs to the build process---i.e.,
 build-time or run-time dependencies of the package.  Here, we define an
-input called @code{"gawk"} whose value is that of the @var{gawk}
-variable; @var{gawk} is itself bound to a @code{<package>} object.
+input called @code{"gawk"} whose value is that of the @code{gawk}
+variable; @code{gawk} is itself bound to a @code{<package>} object.
 
 @cindex backquote (quasiquote)
 @findex `
@@ -5937,7 +6452,7 @@ value in that list (@pxref{Expression Syntax, unquote,, guile, GNU Guile
 Reference Manual}).
 
 Note that GCC, Coreutils, Bash, and other essential tools do not need to
-be specified as inputs here.  Instead, @var{gnu-build-system} takes care
+be specified as inputs here.  Instead, @code{gnu-build-system} takes care
 of ensuring that they are present (@pxref{Build Systems}).
 
 However, any other dependencies need to be specified in the
@@ -5998,77 +6513,8 @@ and operating system, such as @code{"aarch64-linux-gnu"}
 (@pxref{Specifying Target Triplets,,, autoconf, Autoconf}).
 @end deffn
 
-@cindex package transformations
-@cindex input rewriting
-@cindex dependency tree rewriting
-Packages can be manipulated in arbitrary ways.  An example of a useful
-transformation is @dfn{input rewriting}, whereby the dependency tree of
-a package is rewritten by replacing specific inputs by others:
-
-@deffn {Scheme Procedure} package-input-rewriting @var{replacements} @
-           [@var{rewrite-name}]
-Return a procedure that, when passed a package, replaces its direct and
-indirect dependencies (but not its implicit inputs) according to
-@var{replacements}.  @var{replacements} is a list of package pairs; the
-first element of each pair is the package to replace, and the second one
-is the replacement.
-
-Optionally, @var{rewrite-name} is a one-argument procedure that takes
-the name of a package and returns its new name after rewrite.
-@end deffn
-
-@noindent
-Consider this example:
-
-@lisp
-(define libressl-instead-of-openssl
-  ;; This is a procedure to replace OPENSSL by LIBRESSL,
-  ;; recursively.
-  (package-input-rewriting `((,openssl . ,libressl))))
-
-(define git-with-libressl
-  (libressl-instead-of-openssl git))
-@end lisp
-
-@noindent
-Here we first define a rewriting procedure that replaces @var{openssl}
-with @var{libressl}.  Then we use it to define a @dfn{variant} of the
-@var{git} package that uses @var{libressl} instead of @var{openssl}.
-This is exactly what the @option{--with-input} command-line option does
-(@pxref{Package Transformation Options, @option{--with-input}}).
-
-The following variant of @code{package-input-rewriting} can match packages to
-be replaced by name rather than by identity.
-
-@deffn {Scheme Procedure} package-input-rewriting/spec @var{replacements}
-Return a procedure that, given a package, applies the given @var{replacements} to
-all the package graph (excluding implicit inputs).  @var{replacements} is a list of
-spec/procedures pair; each spec is a package specification such as @code{"gcc"} or
-@code{"guile@@2"}, and each procedure takes a matching package and returns a
-replacement for that package.
-@end deffn
-
-The example above could be rewritten this way:
-
-@lisp
-(define libressl-instead-of-openssl
-  ;; Replace all the packages called "openssl" with LibreSSL.
-  (package-input-rewriting/spec `(("openssl" . ,(const libressl)))))
-@end lisp
-
-The key difference here is that, this time, packages are matched by spec and
-not by identity.  In other words, any package in the graph that is called
-@code{openssl} will be replaced.
-
-A more generic procedure to rewrite a package dependency graph is
-@code{package-mapping}: it supports arbitrary changes to nodes in the
-graph.
-
-@deffn {Scheme Procedure} package-mapping @var{proc} [@var{cut?}]
-Return a procedure that, given a package, applies @var{proc} to all the packages
-depended on and returns the resulting package.  The procedure stops recursion
-when @var{cut?} returns true for a given package.
-@end deffn
+Once you have package definitions, you can easily define @emph{variants}
+of those packages.  @xref{Defining Package Variants}, for more on that.
 
 @menu
 * package Reference::           The package data type.
@@ -6140,21 +6586,22 @@ this area (@pxref{Invoking guix lint}).
 
 @anchor{package-propagated-inputs}
 Lastly, @code{propagated-inputs} is similar to @code{inputs}, but the
-specified packages will be automatically installed alongside the package
+specified packages will be automatically installed to profiles
+(@pxref{Features, the role of profiles in Guix}) alongside the package
 they belong to (@pxref{package-cmd-propagated-inputs, @command{guix
 package}}, for information on how @command{guix package} deals with
 propagated inputs).
 
-For example this is necessary when a C/C++ library needs headers of
-another library to compile, or when a pkg-config file refers to another
-one @i{via} its @code{Requires} field.
+For example this is necessary when packaging a C/C++ library that needs
+headers of another library to compile, or when a pkg-config file refers
+to another one @i{via} its @code{Requires} field.
 
 Another example where @code{propagated-inputs} is useful is for languages
 that lack a facility to record the run-time search path akin to the
 @code{RUNPATH} of ELF files; this includes Guile, Python, Perl, and
-more.  To ensure that libraries written in those languages can find
-library code they depend on at run time, run-time dependencies must be
-listed in @code{propagated-inputs} rather than @code{inputs}.
+more.  When packaging libraries written in those languages, ensure they
+can find library code they depend on at run time by listing run-time
+dependencies in @code{propagated-inputs} rather than @code{inputs}.
 
 @item @code{outputs} (default: @code{'("out")})
 The list of output names of the package.  @xref{Packages with Multiple
@@ -6217,11 +6664,44 @@ cross-compiling:
 It is an error to refer to @code{this-package} outside a package definition.
 @end deffn
 
+Because packages are regular Scheme objects that capture a complete
+dependency graph and associated build procedures, it is often useful to
+write procedures that take a package and return a modified version
+thereof according to some parameters.  Below are a few examples.
+
+@cindex tool chain, choosing a package's tool chain
+@deffn {Scheme Procedure} package-with-c-toolchain @var{package} @var{toolchain}
+Return a variant of @var{package} that uses @var{toolchain} instead of
+the default GNU C/C++ toolchain.  @var{toolchain} must be a list of
+inputs (label/package tuples) providing equivalent functionality, such
+as the @code{gcc-toolchain} package.
+
+The example below returns a variant of the @code{hello} package built
+with GCC@tie{}10.x and the rest of the GNU tool chain (Binutils and the
+GNU C Library) instead of the default tool chain:
+
+@lisp
+(let ((toolchain (specification->package "gcc-toolchain@@10")))
+  (package-with-c-toolchain hello `(("toolchain" ,toolchain))))
+@end lisp
+
+The build tool chain is part of the @dfn{implicit inputs} of
+packages---it's usually not listed as part of the various ``inputs''
+fields and is instead pulled in by the build system.  Consequently, this
+procedure works by changing the build system of @var{package} so that it
+pulls in @var{toolchain} instead of the defaults.  @ref{Build Systems},
+for more on build systems.
+@end deffn
+
 @node origin Reference
 @subsection @code{origin} Reference
 
-This section summarizes all the options available in @code{origin}
-declarations (@pxref{Defining Packages}).
+This section documents @dfn{origins}.  An @code{origin} declaration
+specifies data that must be ``produced''---downloaded, usually---and
+whose content hash is known in advance.  Origins are primarily used to
+represent the source code of packages (@pxref{Defining Packages}).  For
+that reason, the @code{origin} form allows you to declare patches to
+apply to the original source code as well as code snippets to modify it.
 
 @deftp {Data Type} origin
 This is the data type representing a source code origin.
@@ -6233,28 +6713,18 @@ the @code{method} (see below).  For example, when using the
 @var{url-fetch} method of @code{(guix download)}, the valid @code{uri}
 values are: a URL represented as a string, or a list thereof.
 
+@cindex fixed-output derivations, for download
 @item @code{method}
-A procedure that handles the URI.
-
-Examples include:
-
-@table @asis
-@item @var{url-fetch} from @code{(guix download)}
-download a file from the HTTP, HTTPS, or FTP URL specified in the
-@code{uri} field;
-
-@vindex git-fetch
-@item @var{git-fetch} from @code{(guix git-download)}
-clone the Git version control repository, and check out the revision
-specified in the @code{uri} field as a @code{git-reference} object; a
-@code{git-reference} looks like this:
+A monadic procedure that handles the given URI@.  The procedure must
+accept at least three arguments: the value of the @code{uri} field and
+the hash algorithm and hash value specified by the @code{hash} field.
+It must return a store item or a derivation in the store monad
+(@pxref{The Store Monad}); most methods return a fixed-output derivation
+(@pxref{Derivations}).
 
-@lisp
-(git-reference
-  (url "https://git.savannah.gnu.org/git/hello.git")
-  (commit "v2.10"))
-@end lisp
-@end table
+Commonly used methods include @code{url-fetch}, which fetches data from
+a URL, and @code{git-fetch}, which fetches data from a Git repository
+(see below).
 
 @item @code{sha256}
 A bytevector containing the SHA-256 hash of the source.  This is
@@ -6333,6 +6803,319 @@ It performs sanity checks at macro-expansion time, when possible, such
 as ensuring that @var{value} has the right size for @var{algorithm}.
 @end deftp
 
+As we have seen above, how exactly the data an origin refers to is
+retrieved is determined by its @code{method} field.  The @code{(guix
+download)} module provides the most common method, @code{url-fetch},
+described below.
+
+@deffn {Scheme Procedure} url-fetch @var{url} @var{hash-algo} @var{hash} @
+           [name] [#:executable? #f]
+Return a fixed-output derivation that fetches data from @var{url} (a
+string, or a list of strings denoting alternate URLs), which is expected
+to have hash @var{hash} of type @var{hash-algo} (a symbol).  By default,
+the file name is the base name of URL; optionally, @var{name} can
+specify a different file name.  When @var{executable?} is true, make the
+downloaded file executable.
+
+When one of the URL starts with @code{mirror://}, then its host part is
+interpreted as the name of a mirror scheme, taken from @file{%mirror-file}.
+
+Alternatively, when URL starts with @code{file://}, return the
+corresponding file name in the store.
+@end deffn
+
+Likewise, the @code{(guix git-download)} module defines the
+@code{git-fetch} origin method, which fetches data from a Git version
+control repository, and the @code{git-reference} data type to describe
+the repository and revision to fetch.
+
+@deffn {Scheme Procedure} git-fetch @var{ref} @var{hash-algo} @var{hash}
+Return a fixed-output derivation that fetches @var{ref}, a
+@code{<git-reference>} object.  The output is expected to have recursive
+hash @var{hash} of type @var{hash-algo} (a symbol).  Use @var{name} as
+the file name, or a generic name if @code{#f}.
+@end deffn
+
+@deftp {Data Type} git-reference
+This data type represents a Git reference for @code{git-fetch} to
+retrieve.
+
+@table @asis
+@item @code{url}
+The URL of the Git repository to clone.
+
+@item @code{commit}
+This string denotes either the commit to fetch (a hexadecimal string,
+either the full SHA1 commit or a ``short'' commit string; the latter is
+not recommended) or the tag to fetch.
+
+@item @code{recursive?} (default: @code{#f})
+This Boolean indicates whether to recursively fetch Git sub-modules.
+@end table
+
+The example below denotes the @code{v2.10} tag of the GNU@tie{}Hello
+repository:
+
+@lisp
+(git-reference
+  (url "https://git.savannah.gnu.org/git/hello.git")
+  (commit "v2.10"))
+@end lisp
+
+This is equivalent to the reference below, which explicitly names the
+commit:
+
+@lisp
+(git-reference
+  (url "https://git.savannah.gnu.org/git/hello.git")
+  (commit "dc7dc56a00e48fe6f231a58f6537139fe2908fb9"))
+@end lisp
+@end deftp
+
+For Mercurial repositories, the module @code{(guix hg-download)} defines
+the @code{hg-fetch} origin method and @code{hg-reference} data type for
+support of the Mercurial version control system.
+
+@deffn {Scheme Procedure} hg-fetch @var{ref} @var{hash-algo} @var{hash} @
+           [name]
+Return a fixed-output derivation that fetches @var{ref}, a
+@code{<hg-reference>} object.  The output is expected to have recursive
+hash @var{hash} of type @var{hash-algo} (a symbol).  Use @var{name} as
+the file name, or a generic name if @code{#false}.
+@end deffn
+
+@node Defining Package Variants
+@section Defining Package Variants
+
+@cindex customizing packages
+@cindex variants, of packages
+One of the nice things with Guix is that, given a package definition,
+you can easily @emph{derive} variants of that package---for a different
+upstream version, with different dependencies, different compilation
+options, and so on.  Some of these custom packages can be defined
+straight from the command line (@pxref{Package Transformation Options}).
+This section describes how to define package variants in code.  This can
+be useful in ``manifests'' (@pxref{profile-manifest,
+@option{--manifest}}) and in your own package collection
+(@pxref{Creating a Channel}), among others!
+
+@cindex inherit, for package definitions
+As discussed earlier, packages are first-class objects in the Scheme
+language.  The @code{(guix packages)} module provides the @code{package}
+construct to define new package objects (@pxref{package Reference}).
+The easiest way to define a package variant is using the @code{inherit}
+keyword together with @code{package}.  This allows you to inherit from a
+package definition while overriding the fields you want.
+
+For example, given the @code{hello} variable, which contains a
+definition for the current version of GNU@tie{}Hello, here's how you
+would define a variant for version 2.2 (released in 2006, it's
+vintage!):
+
+@lisp
+(use-modules (gnu packages base))    ;for 'hello'
+
+(define hello-2.2
+  (package
+    (inherit hello)
+    (version "2.2")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://gnu/hello/hello-" version
+                                  ".tar.gz"))
+              (sha256
+               (base32
+                "0lappv4slgb5spyqbh6yl5r013zv72yqg2pcl30mginf3wdqd8k9"))))))
+@end lisp
+
+The example above corresponds to what the @option{--with-source} package
+transformation option does.  Essentially @code{hello-2.2} preserves all
+the fields of @code{hello}, except @code{version} and @code{source},
+which it overrides.  Note that the original @code{hello} variable is
+still there, in the @code{(gnu packages base)} module, unchanged.  When
+you define a custom package like this, you are really @emph{adding} a
+new package definition; the original one remains available.
+
+You can just as well define variants with a different set of
+dependencies than the original package.  For example, the default
+@code{gdb} package depends on @code{guile}, but since that is an
+optional dependency, you can define a variant that removes that
+dependency like so:
+
+@lisp
+(use-modules (gnu packages gdb)    ;for 'gdb'
+             (srfi srfi-1))        ;for 'alist-delete'
+
+(define gdb-sans-guile
+  (package
+    (inherit gdb)
+    (inputs (alist-delete "guile"
+                          (package-inputs gdb)))))
+@end lisp
+
+The @code{alist-delete} call above removes the tuple from the
+@code{inputs} field that has @code{"guile"} as its first element
+(@pxref{SRFI-1 Association Lists,,, guile, GNU Guile Reference
+Manual}).
+
+In some cases, you may find it useful to write functions
+(``procedures'', in Scheme parlance) that return a package based on some
+parameters.  For example, consider the @code{luasocket} library for the
+Lua programming language.  We want to create @code{luasocket} packages
+for major versions of Lua.  One way to do that is to define a procedure
+that takes a Lua package and returns a @code{luasocket} package that
+depends on it:
+
+@lisp
+(define (make-lua-socket name lua)
+  ;; Return a luasocket package built with LUA.
+  (package
+    (name name)
+    (version "3.0")
+    ;; several fields omitted
+    (inputs
+     `(("lua" ,lua)))
+    (synopsis "Socket library for Lua")))
+
+(define-public lua5.1-socket
+  (make-lua-socket "lua5.1-socket" lua-5.1))
+
+(define-public lua5.2-socket
+  (make-lua-socket "lua5.2-socket" lua-5.2))
+@end lisp
+
+Here we have defined packages @code{lua5.1-socket} and
+@code{lua5.2-socket} by calling @code{make-lua-socket} with different
+arguments.  @xref{Procedures,,, guile, GNU Guile Reference Manual}, for
+more info on procedures.  Having top-level public definitions for these
+two packages means that they can be referred to from the command line
+(@pxref{Package Modules}).
+
+@cindex package transformations
+These are pretty simple package variants.  As a convenience, the
+@code{(guix transformations)} module provides a high-level interface
+that directly maps to the more sophisticated package transformation
+options (@pxref{Package Transformation Options}):
+
+@deffn {Scheme Procedure} options->transformation @var{opts}
+Return a procedure that, when passed an object to build (package,
+derivation, etc.), applies the transformations specified by @var{opts} and returns
+the resulting objects.  @var{opts} must be a list of symbol/string pairs such as:
+
+@lisp
+((with-branch . "guile-gcrypt=master")
+ (without-tests . "libgcrypt"))
+@end lisp
+
+Each symbol names a transformation and the corresponding string is an argument
+to that transformation.
+@end deffn
+
+For instance, a manifest equivalent to this command:
+
+@example
+guix build guix \
+  --with-branch=guile-gcrypt=master \
+  --with-debug-info=zlib
+@end example
+
+@noindent
+... would look like this:
+
+@lisp
+(use-modules (guix transformations))
+
+(define transform
+  ;; The package transformation procedure.
+  (options->transformation
+   '((with-branch . "guile-gcrypt=master")
+     (with-debug-info . "zlib"))))
+
+(packages->manifest
+ (list (transform (specification->package "guix"))))
+@end lisp
+
+@cindex input rewriting
+@cindex dependency graph rewriting
+The @code{options->transformation} procedure is convenient, but it's
+perhaps also not as flexible as you may like.  How is it implemented?
+The astute reader probably noticed that most package transformation
+options go beyond the superficial changes shown in the first examples of
+this section: they involve @dfn{input rewriting}, whereby the dependency
+graph of a package is rewritten by replacing specific inputs by others.
+
+Dependency graph rewriting, for the purposes of swapping packages in the
+graph, is what the @code{package-input-rewriting} procedure in
+@code{(guix packages)} implements.
+
+@deffn {Scheme Procedure} package-input-rewriting @var{replacements} @
+           [@var{rewrite-name}] [#:deep? #t]
+Return a procedure that, when passed a package, replaces its direct and
+indirect dependencies, including implicit inputs when @var{deep?} is
+true, according to @var{replacements}.  @var{replacements} is a list of
+package pairs; the first element of each pair is the package to replace,
+and the second one is the replacement.
+
+Optionally, @var{rewrite-name} is a one-argument procedure that takes
+the name of a package and returns its new name after rewrite.
+@end deffn
+
+@noindent
+Consider this example:
+
+@lisp
+(define libressl-instead-of-openssl
+  ;; This is a procedure to replace OPENSSL by LIBRESSL,
+  ;; recursively.
+  (package-input-rewriting `((,openssl . ,libressl))))
+
+(define git-with-libressl
+  (libressl-instead-of-openssl git))
+@end lisp
+
+@noindent
+Here we first define a rewriting procedure that replaces @var{openssl}
+with @var{libressl}.  Then we use it to define a @dfn{variant} of the
+@var{git} package that uses @var{libressl} instead of @var{openssl}.
+This is exactly what the @option{--with-input} command-line option does
+(@pxref{Package Transformation Options, @option{--with-input}}).
+
+The following variant of @code{package-input-rewriting} can match packages to
+be replaced by name rather than by identity.
+
+@deffn {Scheme Procedure} package-input-rewriting/spec @var{replacements} [#:deep? #t]
+Return a procedure that, given a package, applies the given
+@var{replacements} to all the package graph, including implicit inputs
+unless @var{deep?} is false.  @var{replacements} is a list of
+spec/procedures pair; each spec is a package specification such as
+@code{"gcc"} or @code{"guile@@2"}, and each procedure takes a matching
+package and returns a replacement for that package.
+@end deffn
+
+The example above could be rewritten this way:
+
+@lisp
+(define libressl-instead-of-openssl
+  ;; Replace all the packages called "openssl" with LibreSSL.
+  (package-input-rewriting/spec `(("openssl" . ,(const libressl)))))
+@end lisp
+
+The key difference here is that, this time, packages are matched by spec and
+not by identity.  In other words, any package in the graph that is called
+@code{openssl} will be replaced.
+
+A more generic procedure to rewrite a package dependency graph is
+@code{package-mapping}: it supports arbitrary changes to nodes in the
+graph.
+
+@deffn {Scheme Procedure} package-mapping @var{proc} [@var{cut?}] [#:deep? #f]
+Return a procedure that, given a package, applies @var{proc} to all the packages
+depended on and returns the resulting package.  The procedure stops recursion
+when @var{cut?} returns true for a given package.  When @var{deep?} is true, @var{proc} is
+applied to implicit inputs as well.
+@end deffn
+
+
 @node Build Systems
 @section Build Systems
 
@@ -6353,6 +7136,9 @@ ornamentation---in other words, a bag is a lower-level representation of
 a package, which includes all the inputs of that package, including some
 that were implicitly added by the build system.  This intermediate
 representation is then compiled to a derivation (@pxref{Derivations}).
+The @code{package-with-c-toolchain} is an example of a way to change the
+implicit inputs that a package's build system pulls in (@pxref{package
+Reference, @code{package-with-c-toolchain}}).
 
 Build systems accept an optional list of @dfn{arguments}.  In package
 definitions, these are passed @i{via} the @code{arguments} field
@@ -6424,15 +7210,8 @@ The build-side module @code{(guix build gnu-build-system)} defines
 @code{%standard-phases} is a list of symbol/procedure pairs, where the
 procedure implements the actual phase.
 
-The list of phases used for a particular package can be changed with the
-@code{#:phases} parameter.  For instance, passing:
-
-@example
-#:phases (modify-phases %standard-phases (delete 'configure))
-@end example
-
-means that all the phases described above will be used, except the
-@code{configure} phase.
+@xref{Build Phases}, for more info on build phases and ways to customize
+them.
 
 In addition, this build system ensures that the ``standard'' environment
 for GNU packages is available.  This includes tools such as GCC, libc,
@@ -6467,9 +7246,9 @@ specify the source sub-directory, defaulting to ``src''.
 The @code{#:main-class} parameter can be used with the minimal ant
 buildfile to specify the main class of the resulting jar.  This makes the
 jar file executable.  The @code{#:test-include} parameter can be used to
-specify the list of junit tests to run. It defaults to
+specify the list of junit tests to run.  It defaults to
 @code{(list "**/*Test.java")}.  The @code{#:test-exclude} can be used to
-disable some tests. It defaults to @code{(list "**/Abstract*.java")},
+disable some tests.  It defaults to @code{(list "**/Abstract*.java")},
 because abstract classes cannot be run as tests.
 
 The parameter @code{#:build-target} can be used to specify the Ant task
@@ -6503,12 +7282,12 @@ the libraries and header files are assumed to be host tools.
 
 These variables, exported by @code{(guix build-system asdf)}, implement
 build procedures for Common Lisp packages using
-@url{https://common-lisp.net/project/asdf/, ``ASDF''}. ASDF is a system
+@url{https://common-lisp.net/project/asdf/, ``ASDF''}.  ASDF is a system
 definition facility for Common Lisp programs and libraries.
 
 The @code{asdf-build-system/source} system installs the packages in
 source form, and can be loaded using any common lisp implementation, via
-ASDF.  The others, such as @code{asdf-build-system/sbcl}, install binary
+ASDF@.  The others, such as @code{asdf-build-system/sbcl}, install binary
 systems in the format which a particular implementation understands.
 These build systems can also be used to produce executable programs, or
 lisp images which contain a set of packages pre-loaded.
@@ -6521,30 +7300,27 @@ Additionally, the corresponding source package should be labeled using
 the same convention as python packages (see @ref{Python Modules}), using
 the @code{cl-} prefix.
 
-For binary packages, each system should be defined as a Guix package.
-If one package @code{origin} contains several systems, package variants
-can be created in order to build all the systems.  Source packages,
-which use @code{asdf-build-system/source}, may contain several systems.
-
 In order to create executable programs and images, the build-side
 procedures @code{build-program} and @code{build-image} can be used.
-They should be called in a build phase after the @code{create-symlinks}
-phase, so that the system which was just built can be used within the
-resulting image.  @code{build-program} requires a list of Common Lisp
-expressions to be passed as the @code{#:entry-program} argument.
-
-If the system is not defined within its own @file{.asd} file of the same
-name, then the @code{#:asd-file} parameter should be used to specify
-which file the system is defined in.  Furthermore, if the package
-defines a system for its tests in a separate file, it will be loaded
-before the tests are run if it is specified by the
+They should be called in a build phase after the
+@code{create-asdf-configuration} phase, so that the system which was
+just built can be used within the resulting image.  @code{build-program}
+requires a list of Common Lisp expressions to be passed as the
+@code{#:entry-program} argument.
+
+By default, all the @file{.asd} files present in the sources are read to
+find system definitions.  The @code{#:asd-files} parameter can be used
+to specify the list of @file{.asd} files to read.  Furthermore, if the
+package defines a system for its tests in a separate file, it will be
+loaded before the tests are run if it is specified by the
 @code{#:test-asd-file} parameter.  If it is not set, the files
 @code{<system>-tests.asd}, @code{<system>-test.asd}, @code{tests.asd},
 and @code{test.asd} will be tried if they exist.
 
 If for some reason the package must be named in a different way than the
-naming conventions suggest, the @code{#:asd-system-name} parameter can
-be used to specify the name of the system.
+naming conventions suggest, or if several systems must be compiled, the
+@code{#:asd-systems} parameter can be used to specify the list of system
+names.
 
 @end defvr
 
@@ -6570,10 +7346,33 @@ In its @code{configure} phase, this build system will make any source inputs
 specified in the @code{#:cargo-inputs} and @code{#:cargo-development-inputs}
 parameters available to cargo.  It will also remove an included
 @code{Cargo.lock} file to be recreated by @code{cargo} during the
-@code{build} phase.  The @code{install} phase installs any crate the binaries
-if they are defined by the crate.
+@code{build} phase.  The @code{install} phase installs the binaries
+defined by the crate.
 @end defvr
 
+@defvr {Scheme Variable} chicken-build-system
+This variable is exported by @code{(guix build-system chicken)}.  It
+builds @uref{https://call-cc.org/, CHICKEN Scheme} modules, also called
+``eggs'' or ``extensions''.  CHICKEN generates C source code, which then
+gets compiled by a C compiler, in this case GCC.
+
+This build system adds @code{chicken} to the package inputs, as well as
+the packages of @code{gnu-build-system}.
+
+The build system can't (yet) deduce the egg's name automatically, so just like
+with @code{go-build-system} and its @code{#:import-path}, you should define
+@code{#:egg-name} in the package's @code{arguments} field.
+
+For example, if you are packaging the @code{srfi-1} egg:
+
+@lisp
+(arguments '(#:egg-name "srfi-1"))
+@end lisp
+
+Egg dependencies must be defined in @code{propagated-inputs}, not @code{inputs}
+because CHICKEN doesn't embed absolute references in compiled eggs.
+Test dependencies should go to @code{native-inputs}, as usual.
+@end defvr
 
 @defvr {Scheme Variable} copy-build-system
 This variable is exported by @code{(guix build-system copy)}.  It
@@ -6817,19 +7616,19 @@ implements the build procedure used by @uref{https://julialang.org/,
 julia} packages, which essentially is similar to running @samp{julia -e
 'using Pkg; Pkg.add(package)'} in an environment where
 @env{JULIA_LOAD_PATH} contains the paths to all Julia package inputs.
-Tests are run not run.
+Tests are run with @code{Pkg.test}.
 
 Julia packages require the source @code{file-name} to be the real name of the
 package, correctly capitalized.
 
 For packages requiring shared library dependencies, you may need to write the
-@file{/deps/deps.jl} file manually. It's usually a line of @code{const
+@file{/deps/deps.jl} file manually.  It's usually a line of @code{const
 variable = /gnu/store/library.so} for each dependency, plus a void function
 @code{check_deps() = nothing}.
 
 Some older packages that aren't using @file{Package.toml} yet, will require
-this file to be created, too. The function @code{julia-create-package-toml}
-helps creating the file. You need to pass the outputs and the source of the
+this file to be created, too.  The function @code{julia-create-package-toml}
+helps creating the file.  You need to pass the outputs and the source of the
 package, it's name (the same as the @code{file-name} parameter), the package
 uuid, the package version, and a list of dependencies specified by their name
 and their uuid.
@@ -7026,7 +7825,7 @@ run after installation using the R function
 @defvr {Scheme Variable} rakudo-build-system
 This variable is exported by @code{(guix build-system rakudo)}.  It
 implements the build procedure used by @uref{https://rakudo.org/,
-Rakudo} for @uref{https://perl6.org/, Perl6} packages. It installs the
+Rakudo} for @uref{https://perl6.org/, Perl6} packages.  It installs the
 package to @code{/gnu/store/@dots{}/NAME-VERSION/share/perl6} and
 installs the binaries, library files and the resources, as well as wrap
 the files under the @code{bin/} directory.  Tests can be skipped by
@@ -7134,6 +7933,7 @@ Which D compiler is used can be specified with the @code{#:ldc}
 parameter which defaults to @code{ldc}.
 @end defvr
 
+@anchor{emacs-build-system}
 @defvr {Scheme Variable} emacs-build-system
 This variable is exported by @code{(guix build-system emacs)}.  It
 implements an installation procedure similar to the packaging system
@@ -7262,6 +8062,449 @@ with @code{build-expression->derivation} (@pxref{Derivations,
 @code{build-expression->derivation}}).
 @end defvr
 
+@node Build Phases
+@section Build Phases
+
+@cindex build phases, for packages
+Almost all package build systems implement a notion @dfn{build phases}:
+a sequence of actions that the build system executes, when you build the
+package, leading to the installed byproducts in the store.  A notable
+exception is the ``bare-bones'' @code{trivial-build-system}
+(@pxref{Build Systems}).
+
+As discussed in the previous section, those build systems provide a
+standard list of phases.  For @code{gnu-build-system}, the standard
+phases include an @code{unpack} phase to unpack the source code tarball,
+a @command{configure} phase to run @code{./configure}, a @code{build}
+phase to run @command{make}, and (among others) an @code{install} phase
+to run @command{make install}; @pxref{Build Systems}, for a more
+detailed view of these phases.  Likewise, @code{cmake-build-system}
+inherits these phases, but its @code{configure} phase runs
+@command{cmake} instead of @command{./configure}.  Other build systems,
+such as @code{python-build-system}, have a wholly different list of
+standard phases.  All this code runs on the @dfn{build side}: it is
+evaluated when you actually build the package, in a dedicated build
+process spawned by the build daemon (@pxref{Invoking guix-daemon}).
+
+Build phases are represented as association lists or ``alists''
+(@pxref{Association Lists,,, guile, GNU Guile Reference Manual}) where
+each key is a symbol for the name of the phase and the associated value
+is a procedure that accepts an arbitrary number of arguments.  By
+convention, those procedures receive information about the build in the
+form of @dfn{keyword parameters}, which they can use or ignore.
+
+For example, here is how @code{(guix build gnu-build-system)} defines
+@code{%standard-phases}, the variable holding its alist of build
+phases@footnote{We present a simplified view of those build phases, but
+do take a look at @code{(guix build gnu-build-system)} to see all the
+details!}:
+
+@lisp
+;; The build phases of 'gnu-build-system'.
+
+(define* (unpack #:key source #:allow-other-keys)
+  ;; Extract the source tarball.
+  (invoke "tar" "xvf" source))
+
+(define* (configure #:key outputs #:allow-other-keys)
+  ;; Run the 'configure' script.  Install to output "out".
+  (let ((out (assoc-ref outputs "out")))
+    (invoke "./configure"
+            (string-append "--prefix=" out))))
+
+(define* (build #:allow-other-keys)
+  ;; Compile.
+  (invoke "make"))
+
+(define* (check #:key (test-target "check") (tests? #true)
+                #:allow-other-keys)
+  ;; Run the test suite.
+  (if tests?
+      (invoke "make" test-target)
+      (display "test suite not run\n")))
+
+(define* (install #:allow-other-keys)
+  ;; Install files to the prefix 'configure' specified.
+  (invoke "make" "install"))
+
+(define %standard-phases
+  ;; The list of standard phases (quite a few are omitted
+  ;; for brevity).  Each element is a symbol/procedure pair.
+  (list (cons 'unpack unpack)
+        (cons 'configure configure)
+        (cons 'build build)
+        (cons 'check check)
+        (cons 'install install)))
+@end lisp
+
+This shows how @code{%standard-phases} is defined as a list of
+symbol/procedure pairs (@pxref{Pairs,,, guile, GNU Guile Reference
+Manual}).  The first pair associates the @code{unpack} procedure with
+the @code{unpack} symbol---a name; the second pair defines the
+@code{configure} phase similarly, and so on.  When building a package
+that uses @code{gnu-build-system} with its default list of phases, those
+phases are executed sequentially.  You can see the name of each phase
+started and completed in the build log of packages that you build.
+
+Let's now look at the procedures themselves.  Each one is defined with
+@code{define*}: @code{#:key} lists keyword parameters the procedure
+accepts, possibly with a default value, and @code{#:allow-other-keys}
+specifies that other keyword parameters are ignored (@pxref{Optional
+Arguments,,, guile, GNU Guile Reference Manual}).
+
+The @code{unpack} procedure honors the @code{source} parameter, which
+the build system uses to pass the file name of the source tarball (or
+version control checkout), and it ignores other parameters.  The
+@code{configure} phase only cares about the @code{outputs} parameter, an
+alist mapping package output names to their store file name
+(@pxref{Packages with Multiple Outputs}).  It extracts the file name of
+for @code{out}, the default output, and passes it to
+@command{./configure} as the installation prefix, meaning that
+@command{make install} will eventually copy all the files in that
+directory (@pxref{Configuration, configuration and makefile
+conventions,, standards, GNU Coding Standards}).  @code{build} and
+@code{install} ignore all their arguments.  @code{check} honors the
+@code{test-target} argument, which specifies the name of the Makefile
+target to run tests; it prints a message and skips tests when
+@code{tests?} is false.
+
+@cindex build phases, customizing
+The list of phases used for a particular package can be changed with the
+@code{#:phases} parameter of the build system.  Changing the set of
+build phases boils down to building a new alist of phases based on the
+@code{%standard-phases} alist described above.  This can be done with
+standard alist procedures such as @code{alist-delete} (@pxref{SRFI-1
+Association Lists,,, guile, GNU Guile Reference Manual}); however, it is
+more convenient to do so with @code{modify-phases} (@pxref{Build
+Utilities, @code{modify-phases}}).
+
+Here is an example of a package definition that removes the
+@code{configure} phase of @code{%standard-phases} and inserts a new
+phase before the @code{build} phase, called
+@code{set-prefix-in-makefile}:
+
+@lisp
+(define-public example
+  (package
+    (name "example")
+    ;; other fields omitted
+    (build-system gnu-build-system)
+    (arguments
+     '(#:phases (modify-phases %standard-phases
+                  (delete 'configure)
+                  (add-before 'build 'set-prefix-in-makefile
+                    (lambda* (#:key outputs #:allow-other-keys)
+                      ;; Modify the makefile so that its
+                      ;; 'PREFIX' variable points to "out".
+                      (let ((out (assoc-ref outputs "out")))
+                        (substitute* "Makefile"
+                          (("PREFIX =.*")
+                           (string-append "PREFIX = "
+                                          out "\n")))
+                        #true))))))))
+@end lisp
+
+The new phase that is inserted is written as an anonymous procedure,
+introduced with @code{lambda*}; it honors the @code{outputs} parameter
+we have seen before.  @xref{Build Utilities}, for more about the helpers
+used by this phase, and for more examples of @code{modify-phases}.
+
+@cindex code staging
+@cindex staging, of code
+Keep in mind that build phases are code evaluated at the time the
+package is actually built.  This explains why the whole
+@code{modify-phases} expression above is quoted (it comes after the
+@code{'} or apostrophe): it is @dfn{staged} for later execution.
+@xref{G-Expressions}, for an explanation of code staging and the
+@dfn{code strata} involved.
+
+@node Build Utilities
+@section Build Utilities
+
+As soon as you start writing non-trivial package definitions
+(@pxref{Defining Packages}) or other build actions
+(@pxref{G-Expressions}), you will likely start looking for helpers for
+``shell-like'' actions---creating directories, copying and deleting
+files recursively, manipulating build phases, and so on.  The
+@code{(guix build utils)} module provides such utility procedures.
+
+Most build systems load @code{(guix build utils)} (@pxref{Build
+Systems}).  Thus, when writing custom build phases for your package
+definitions, you can usually assume those procedures are in scope.
+
+When writing G-expressions, you can import @code{(guix build utils)} on
+the ``build side'' using @code{with-imported-modules} and then put it in
+scope with the @code{use-modules} form (@pxref{Using Guile Modules,,,
+guile, GNU Guile Reference Manual}):
+
+@lisp
+(with-imported-modules '((guix build utils))  ;import it
+  (computed-file "empty-tree"
+                 #~(begin
+                     ;; Put it in scope.
+                     (use-modules (guix build utils))
+
+                     ;; Happily use its 'mkdir-p' procedure.
+                     (mkdir-p (string-append #$output "/a/b/c")))))
+@end lisp
+
+The remainder of this section is the reference for most of the utility
+procedures provided by @code{(guix build utils)}.
+
+@c TODO Document what's missing.
+
+@subsection Dealing with Store File Names
+
+This section documents procedures that deal with store file names.
+
+@deffn {Scheme Procedure} %store-directory
+Return the directory name of the store.
+@end deffn
+
+@deffn {Scheme Procedure} store-file-name? @var{file}
+Return true if @var{file} is in the store.
+@end deffn
+
+@deffn {Scheme Procedure} strip-store-file-name @var{file}
+Strip the @file{/gnu/store} and hash from @var{file}, a store file name.
+The result is typically a @code{"@var{package}-@var{version}"} string.
+@end deffn
+
+@deffn {Scheme Procedure} package-name->name+version @var{name}
+Given @var{name}, a package name like @code{"foo-0.9.1b"}, return two
+values: @code{"foo"} and @code{"0.9.1b"}.  When the version part is
+unavailable, @var{name} and @code{#f} are returned.  The first hyphen
+followed by a digit is considered to introduce the version part.
+@end deffn
+
+@subsection File Types
+
+The procedures below deal with files and file types.
+
+@deffn {Scheme Procedure} directory-exists? @var{dir}
+Return @code{#t} if @var{dir} exists and is a directory.
+@end deffn
+
+@deffn {Scheme Procedure} executable-file? @var{file}
+Return @code{#t} if @var{file} exists and is executable.
+@end deffn
+
+@deffn {Scheme Procedure} symbolic-link? @var{file}
+Return @code{#t} if @var{file} is a symbolic link (aka. a ``symlink'').
+@end deffn
+
+@deffn {Scheme Procedure} elf-file? @var{file}
+@deffnx {Scheme Procedure} ar-file? @var{file}
+@deffnx {Scheme Procedure} gzip-file? @var{file}
+Return @code{#t} if @var{file} is, respectively, an ELF file, an
+@code{ar} archive (such as a @file{.a} static library), or a gzip file.
+@end deffn
+
+@deffn {Scheme Procedure} reset-gzip-timestamp @var{file} [#:keep-mtime? #t]
+If @var{file} is a gzip file, reset its embedded timestamp (as with
+@command{gzip --no-name}) and return true.  Otherwise return @code{#f}.
+When @var{keep-mtime?} is true, preserve @var{file}'s modification time.
+@end deffn
+
+@subsection File Manipulation
+
+The following procedures and macros help create, modify, and delete
+files.  They provide functionality comparable to common shell utilities
+such as @command{mkdir -p}, @command{cp -r}, @command{rm -r}, and
+@command{sed}.  They complement Guile's extensive, but low-level, file
+system interface (@pxref{POSIX,,, guile, GNU Guile Reference Manual}).
+
+@deffn {Scheme Syntax} with-directory-excursion @var{directory} @var{body}@dots{}
+Run @var{body} with @var{directory} as the process's current directory.
+
+Essentially, this macro changes the current directory to @var{directory}
+before evaluating @var{body}, using @code{chdir} (@pxref{Processes,,,
+guile, GNU Guile Reference Manual}).  It changes back to the initial
+directory when the dynamic extent of @var{body} is left, be it @i{via}
+normal procedure return or @i{via} a non-local exit such as an
+exception.
+@end deffn
+
+@deffn {Scheme Procedure} mkdir-p @var{dir}
+Create directory @var{dir} and all its ancestors.
+@end deffn
+
+@deffn {Scheme Procedure} install-file @var{file} @var{directory}
+Create @var{directory} if it does not exist and copy @var{file} in there
+under the same name.
+@end deffn
+
+@deffn {Scheme Procedure} make-file-writable @var{file}
+Make @var{file} writable for its owner.
+@end deffn
+
+@deffn {Scheme Procedure} copy-recursively @var{source} @var{destination} @
+  [#:log (current-output-port)] [#:follow-symlinks? #f] [#:keep-mtime? #f]
+Copy @var{source} directory to @var{destination}.  Follow symlinks if
+@var{follow-symlinks?}  is true; otherwise, just preserve them.  When
+@var{keep-mtime?} is true, keep the modification time of the files in
+@var{source} on those of @var{destination}.  Write verbose output to the
+@var{log} port.
+@end deffn
+
+@deffn {Scheme Procedure} delete-file-recursively @var{dir} @
+  [#:follow-mounts? #f]
+Delete @var{dir} recursively, like @command{rm -rf}, without following
+symlinks.  Don't follow mount points either, unless @var{follow-mounts?}
+is true.  Report but ignore errors.
+@end deffn
+
+@deffn {Scheme Syntax} substitute* @var{file} @
+  ((@var{regexp} @var{match-var}@dots{}) @var{body}@dots{}) @dots{}
+Substitute @var{regexp} in @var{file} by the string returned by
+@var{body}.  @var{body} is evaluated with each @var{match-var} bound to
+the corresponding positional regexp sub-expression.  For example:
+
+@lisp
+(substitute* file
+  (("hello")
+   "good morning\n")
+  (("foo([a-z]+)bar(.*)$" all letters end)
+   (string-append "baz" letter end)))
+@end lisp
+
+Here, anytime a line of @var{file} contains @code{hello}, it is replaced
+by @code{good morning}.  Anytime a line of @var{file} matches the second
+regexp, @code{all} is bound to the complete match, @code{letters} is bound
+to the first sub-expression, and @code{end} is bound to the last one.
+
+When one of the @var{match-var} is @code{_}, no variable is bound to the
+corresponding match substring.
+
+Alternatively, @var{file} may be a list of file names, in which case
+they are all subject to the substitutions.
+
+Be careful about using @code{$} to match the end of a line; by itself it
+won't match the terminating newline of a line.
+@end deffn
+
+@subsection File Search
+
+@cindex file, searching
+This section documents procedures to search and filter files.
+
+@deffn {Scheme Procedure} file-name-predicate @var{regexp}
+Return a predicate that returns true when passed a file name whose base
+name matches @var{regexp}.
+@end deffn
+
+@deffn {Scheme Procedure} find-files @var{dir} [@var{pred}] @
+  [#:stat lstat] [#:directories? #f] [#:fail-on-error? #f]
+Return the lexicographically sorted list of files under @var{dir} for
+which @var{pred} returns true.  @var{pred} is passed two arguments: the
+absolute file name, and its stat buffer; the default predicate always
+returns true.  @var{pred} can also be a regular expression, in which
+case it is equivalent to @code{(file-name-predicate @var{pred})}.
+@var{stat} is used to obtain file information; using @code{lstat} means
+that symlinks are not followed.  If @var{directories?} is true, then
+directories will also be included.  If @var{fail-on-error?} is true,
+raise an exception upon error.
+@end deffn
+
+Here are a few examples where we assume that the current directory is
+the root of the Guix source tree:
+
+@lisp
+;; List all the regular files in the current directory.
+(find-files ".")
+@result{} ("./.dir-locals.el" "./.gitignore" @dots{})
+
+;; List all the .scm files under gnu/services.
+(find-files "gnu/services" "\\.scm$")
+@result{} ("gnu/services/admin.scm" "gnu/services/audio.scm" @dots{})
+
+;; List ar files in the current directory.
+(find-files "." (lambda (file stat) (ar-file? file)))
+@result{} ("./libformat.a" "./libstore.a" @dots{})
+@end lisp
+
+@deffn {Scheme Procedure} which @var{program}
+Return the complete file name for @var{program} as found in
+@code{$PATH}, or @code{#f} if @var{program} could not be found.
+@end deffn
+
+@subsection Build Phases
+
+@cindex build phases
+The @code{(guix build utils)} also contains tools to manipulate build
+phases as used by build systems (@pxref{Build Systems}).  Build phases
+are represented as association lists or ``alists'' (@pxref{Association
+Lists,,, guile, GNU Guile Reference Manual}) where each key is a symbol
+naming the phase and the associated value is a procedure (@pxref{Build
+Phases}).
+
+Guile core and the @code{(srfi srfi-1)} module both provide tools to
+manipulate alists.  The @code{(guix build utils)} module complements
+those with tools written with build phases in mind.
+
+@cindex build phases, modifying
+@deffn {Scheme Syntax} modify-phases @var{phases} @var{clause}@dots{}
+Modify @var{phases} sequentially as per each @var{clause}, which may
+have one of the following forms:
+
+@lisp
+(delete @var{old-phase-name})
+(replace @var{old-phase-name} @var{new-phase})
+(add-before @var{old-phase-name} @var{new-phase-name} @var{new-phase})
+(add-after @var{old-phase-name} @var{new-phase-name} @var{new-phase})
+@end lisp
+
+Where every @var{phase-name} above is an expression evaluating to a
+symbol, and @var{new-phase} an expression evaluating to a procedure.
+@end deffn
+
+The example below is taken from the definition of the @code{grep}
+package.  It adds a phase to run after the @code{install} phase, called
+@code{fix-egrep-and-fgrep}.  That phase is a procedure (@code{lambda*}
+is for anonymous procedures) that takes a @code{#:outputs} keyword
+argument and ignores extra keyword arguments (@pxref{Optional
+Arguments,,, guile, GNU Guile Reference Manual}, for more on
+@code{lambda*} and optional and keyword arguments.)  The phase uses
+@code{substitute*} to modify the installed @file{egrep} and @file{fgrep}
+scripts so that they refer to @code{grep} by its absolute file name:
+
+@lisp
+(modify-phases %standard-phases
+  (add-after 'install 'fix-egrep-and-fgrep
+    ;; Patch 'egrep' and 'fgrep' to execute 'grep' via its
+    ;; absolute file name instead of searching for it in $PATH.
+    (lambda* (#:key outputs #:allow-other-keys)
+      (let* ((out (assoc-ref outputs "out"))
+             (bin (string-append out "/bin")))
+        (substitute* (list (string-append bin "/egrep")
+                           (string-append bin "/fgrep"))
+          (("^exec grep")
+           (string-append "exec " bin "/grep")))
+        #t))))
+@end lisp
+
+In the example below, phases are modified in two ways: the standard
+@code{configure} phase is deleted, presumably because the package does
+not have a @file{configure} script or anything similar, and the default
+@code{install} phase is replaced by one that manually copies the
+executable files to be installed:
+
+@lisp
+(modify-phases %standard-phases
+  (delete 'configure)      ;no 'configure' script
+  (replace 'install
+    (lambda* (#:key outputs #:allow-other-keys)
+      ;; The package's Makefile doesn't provide an "install"
+      ;; rule so do it by ourselves.
+      (let ((bin (string-append (assoc-ref outputs "out")
+                                "/bin")))
+        (install-file "footswitch" bin)
+        (install-file "scythe" bin)
+        #t))))
+@end lisp
+
+@c TODO: Add more examples.
+
 @node The Store
 @section The Store
 
@@ -7336,7 +8579,7 @@ instruct it to listen for TCP connections (@pxref{Invoking guix-daemon,
 
 @item ssh
 @cindex SSH access to build daemons
-These URIs allow you to connect to a remote daemon over SSH.  This
+These URIs allow you to connect to a remote daemon over SSH@.  This
 feature requires Guile-SSH (@pxref{Requirements}) and a working
 @command{guile} binary in @env{PATH} on the destination machine.  It
 supports public key and GSSAPI authentication.  A typical URL might look
@@ -7939,6 +9182,8 @@ These build actions are performed when asking the daemon to actually
 build the derivations; they are run by the daemon in a container
 (@pxref{Invoking guix-daemon}).
 
+@cindex code staging
+@cindex staging, of code
 @cindex strata of code
 It should come as no surprise that we like to write these build actions
 in Scheme.  When we do that, we end up with two @dfn{strata} of Scheme
@@ -7950,7 +9195,7 @@ on this topic}, refers to this kind of code generation as
 @dfn{staging}.}: the ``host code''---code that defines packages, talks
 to the daemon, etc.---and the ``build code''---code that actually
 performs build actions, such as making directories, invoking
-@command{make}, etc.
+@command{make}, and so on (@pxref{Build Phases}).
 
 To describe a derivation and its build actions, one typically needs to
 embed build code inside host code.  It boils down to manipulating build
@@ -8323,10 +9568,12 @@ This is the declarative counterpart of @code{text-file}.
 @end deffn
 
 @deffn {Scheme Procedure} computed-file @var{name} @var{gexp} @
-          [#:options '(#:local-build? #t)]
+          [#:local-build? #t]
+          [#:options '()]
 Return an object representing the store item @var{name}, a file or
-directory computed by @var{gexp}.  @var{options}
-is a list of additional arguments to pass to @code{gexp->derivation}.
+directory computed by @var{gexp}.  When @var{local-build?} is true (the
+default), the derivation is built locally.  @var{options} is a list of
+additional arguments to pass to @code{gexp->derivation}.
 
 This is the declarative counterpart of @code{gexp->derivation}.
 @end deffn
@@ -8501,7 +9748,7 @@ cross-compiling.
 @code{let-system} is useful in the occasional case where the object
 spliced into the gexp depends on the target system, as in this example:
 
-@example
+@lisp
 #~(system*
    #+(let-system system
        (cond ((string-prefix? "armhf-" system)
@@ -8511,7 +9758,7 @@ spliced into the gexp depends on the target system, as in this example:
              (else
               (error "dunno!"))))
    "-net" "user" #$image)
-@end example
+@end lisp
 @end deffn
 
 @deffn {Scheme Syntax} with-parameters ((@var{parameter} @var{value}) @dots{}) @var{exp}
@@ -8812,11 +10059,9 @@ Non-deterministic build processes are a problem because they make it
 practically impossible for users to @emph{verify} whether third-party
 binaries are genuine.  @xref{Invoking guix challenge}, for more.
 
-Note that, currently, the differing build results are not kept around,
-so you will have to manually investigate in case of an error---e.g., by
-stashing one of the build results with @code{guix archive --export}
-(@pxref{Invoking guix archive}), then rebuilding, and finally comparing
-the two results.
+When used in conjunction with @option{--keep-failed}, the differing
+output is kept in the store, under @file{/gnu/store/@dots{}-check}.
+This makes it easy to look for differences between the two results.
 
 @item --no-offload
 Do not use offload builds to other machines (@pxref{Daemon Offload
@@ -8901,6 +10146,15 @@ This is a convenient way to create customized packages on the fly
 without having to type in the definitions of package variants
 (@pxref{Defining Packages}).
 
+Package transformation options are preserved across upgrades:
+@command{guix upgrade} attempts to apply transformation options
+initially used when creating the profile to the upgraded packages.
+
+The available options are listed below.  Most commands support them and
+also support a @option{--help-transform} option that lists all the
+available options and a synopsis (these options are not shown in the
+@option{--help} output for brevity).
+
 @table @code
 
 @item --with-source=@var{source}
@@ -8987,6 +10241,75 @@ must be compatible.  If @var{replacement} is somehow incompatible with
 @var{package}, then the resulting package may be unusable.  Use with
 care!
 
+@cindex debugging info, rebuilding
+@item --with-debug-info=@var{package}
+Build @var{package} in a way that preserves its debugging info and graft
+it onto packages that depend on it.  This is useful if @var{package}
+does not already provide debugging info as a @code{debug} output
+(@pxref{Installing Debugging Files}).
+
+For example, suppose you're experiencing a crash in Inkscape and would
+like to see what's up in GLib, a library deep down in Inkscape's
+dependency graph.  GLib lacks a @code{debug} output, so debugging is
+tough.  Fortunately, you rebuild GLib with debugging info and tack it on
+Inkscape:
+
+@example
+guix install inkscape --with-debug-info=glib
+@end example
+
+Only GLib needs to be recompiled so this takes a reasonable amount of
+time.  @xref{Installing Debugging Files}, for more info.
+
+@quotation Note
+Under the hood, this option works by passing the @samp{#:strip-binaries?
+#f} to the build system of the package of interest (@pxref{Build
+Systems}).  Most build systems support that option but some do not.  In
+that case, an error is raised.
+
+Likewise, if a C/C++ package is built without @code{-g} (which is rarely
+the case), debugging info will remain unavailable even when
+@code{#:strip-binaries?} is false.
+@end quotation
+
+@cindex tool chain, changing the build tool chain of a package
+@item --with-c-toolchain=@var{package}=@var{toolchain}
+This option changes the compilation of @var{package} and everything that
+depends on it so that they get built with @var{toolchain} instead of the
+default GNU tool chain for C/C++.
+
+Consider this example:
+
+@example
+guix build octave-cli \
+  --with-c-toolchain=fftw=gcc-toolchain@@10 \
+  --with-c-toolchain=fftwf=gcc-toolchain@@10
+@end example
+
+The command above builds a variant of the @code{fftw} and @code{fftwf}
+packages using version 10 of @code{gcc-toolchain} instead of the default
+tool chain, and then builds a variant of the GNU@tie{}Octave
+command-line interface using them.  GNU@tie{}Octave itself is also built
+with @code{gcc-toolchain@@10}.
+
+This other example builds the Hardware Locality (@code{hwloc}) library
+and its dependents up to @code{intel-mpi-benchmarks} with the Clang C
+compiler:
+
+@example
+guix build --with-c-toolchain=hwloc=clang-toolchain \
+           intel-mpi-benchmarks
+@end example
+
+@quotation Note
+There can be application binary interface (ABI) incompatibilities among
+tool chains.  This is particularly true of the C++ standard library and
+run-time support libraries such as that of OpenMP@.  By rebuilding all
+dependents with the same tool chain, @option{--with-c-toolchain} minimizes
+the risks of incompatibility but cannot entirely eliminate them.  Choose
+@var{package} wisely.
+@end quotation
+
 @item --with-git-url=@var{package}=@var{url}
 @cindex Git, using the latest commit
 @cindex latest commit, building
@@ -9036,8 +10359,90 @@ guix build --with-branch=guile-sqlite3=master cuirass
 This is similar to @option{--with-branch}, except that it builds from
 @var{commit} rather than the tip of a branch.  @var{commit} must be a valid
 Git commit SHA1 identifier or a tag.
+
+@item --with-patch=@var{package}=@var{file}
+Add @var{file} to the list of patches applied to @var{package}, where
+@var{package} is a spec such as @code{python@@3.8} or @code{glibc}.
+@var{file} must contain a patch; it is applied with the flags specified
+in the @code{origin} of @var{package} (@pxref{origin Reference}), which
+by default includes @code{-p1} (@pxref{patch Directories,,, diffutils,
+Comparing and Merging Files}).
+
+As an example, the command below rebuilds Coreutils with the GNU C
+Library (glibc) patched with the given patch:
+
+@example
+guix build coreutils --with-patch=glibc=./glibc-frob.patch
+@end example
+
+In this example, glibc itself as well as everything that leads to
+Coreutils in the dependency graph is rebuilt.
+
+@cindex upstream, latest version
+@item --with-latest=@var{package}
+So you like living on the bleeding edge?  This option is for you!  It
+replaces occurrences of @var{package} in the dependency graph with its
+latest upstream version, as reported by @command{guix refresh}
+(@pxref{Invoking guix refresh}).
+
+It does so by determining the latest upstream release of @var{package}
+(if possible), downloading it, and authenticating it @emph{if} it comes
+with an OpenPGP signature.
+
+As an example, the command below builds Guix against the latest version
+of Guile-JSON:
+
+@example
+guix build guix --with-latest=guile-json
+@end example
+
+There are limitations.  First, in cases where the tool cannot or does
+not know how to authenticate source code, you are at risk of running
+malicious code; a warning is emitted in this case.  Second, this option
+simply changes the source used in the existing package definitions,
+which is not always sufficient: there might be additional dependencies
+that need to be added, patches to apply, and more generally the quality
+assurance work that Guix developers normally do will be missing.
+
+You've been warned!  In all the other cases, it's a snappy way to stay
+on top.  We encourage you to submit patches updating the actual package
+definitions once you have successfully tested an upgrade
+(@pxref{Contributing}).
+
+@cindex test suite, skipping
+@item --without-tests=@var{package}
+Build @var{package} without running its tests.  This can be useful in
+situations where you want to skip the lengthy test suite of a
+intermediate package, or if a package's test suite fails in a
+non-deterministic fashion.  It should be used with care because running
+the test suite is a good way to ensure a package is working as intended.
+
+Turning off tests leads to a different store item.  Consequently, when
+using this option, anything that depends on @var{package} must be
+rebuilt, as in this example:
+
+@example
+guix install --without-tests=python python-notebook
+@end example
+
+The command above installs @code{python-notebook} on top of
+@code{python} built without running its test suite.  To do so, it also
+rebuilds everything that depends on @code{python}, including
+@code{python-notebook} itself.
+
+Internally, @option{--without-tests} relies on changing the
+@code{#:tests?} option of a package's @code{check} phase (@pxref{Build
+Systems}).  Note that some packages use a customized @code{check} phase
+that does not respect a @code{#:tests? #f} setting.  Therefore,
+@option{--without-tests} has no effect on these packages.
+
 @end table
 
+Wondering how to achieve the same effect using Scheme code, for example
+in your manifest, or how to write your own package transformation?
+@xref{Defining Package Variants}, for an overview of the programming
+interfaces available.
+
 @node Additional Build Options
 @subsection Additional Build Options
 
@@ -9107,6 +10512,13 @@ The returned source tarball is the result of applying any patches and
 code snippets specified in the package @code{origin} (@pxref{Defining
 Packages}).
 
+@cindex source, verification
+As with other derivations, the result of building a source derivation
+can be verified using the @option{--check} option (@pxref{build-check}).
+This is useful to validate that a (potentially already built or
+substituted, thus cached) package source matches against its declared
+hash.
+
 Note that @command{guix build -S} compiles the sources only of the
 specified packages.  They do not include the sources of statically
 linked dependencies and by themselves are insufficient for reproducing
@@ -9649,9 +11061,16 @@ When @option{--recursive} is added, the importer will traverse the
 dependency graph of the given upstream package recursively and generate
 package expressions for all those packages that are not yet in Guix.
 
+When @option{--style=specification} is added, the importer will generate
+package definitions whose inputs are package specifications instead of
+references to package variables.  This is useful when generated package
+definitions are to be appended to existing user modules, as the list of
+used package modules need not be changed.  The default is
+@option{--style=variable}.
+
 When @option{--archive=bioconductor} is added, metadata is imported from
 @uref{https://www.bioconductor.org/, Bioconductor}, a repository of R
-packages for for the analysis and comprehension of high-throughput
+packages for the analysis and comprehension of high-throughput
 genomic data in bioinformatics.
 
 Information is extracted from the @file{DESCRIPTION} file contained in the
@@ -9932,6 +11351,25 @@ in Guix.
 @cindex OCaml
 Import metadata from the @uref{https://opam.ocaml.org/, OPAM} package
 repository used by the OCaml community.
+
+Additional options include:
+
+@table @code
+@item --recursive
+@itemx -r
+Traverse the dependency graph of the given upstream package recursively
+and generate package expressions for all those packages that are not yet
+in Guix.
+@item --repo
+Select the given repository (a repository name).  Possible values include:
+@itemize
+@item @code{opam}, the default opam repository,
+@item @code{coq} or @code{coq-released}, the stable repository for coq packages,
+@item @code{coq-core-dev}, the repository that contains development versions of coq,
+@item @code{coq-extra-dev}, the repository that contains development versions
+      of coq packages.
+@end itemize
+@end table
 @end table
 
 The structure of the @command{guix import} code is modular.  It would be
@@ -10060,7 +11498,7 @@ inconvenient.
 
 @item --manifest=@var{file}
 @itemx -m @var{file}
-Select all the packages from the manifest in @var{file}. This is useful to
+Select all the packages from the manifest in @var{file}.  This is useful to
 check if any packages of the user manifest can be updated.
 
 @item --type=@var{updater}
@@ -10289,7 +11727,7 @@ Identify inputs that should most likely be native inputs.
 Probe @code{home-page} and @code{source} URLs and report those that are
 invalid.  Suggest a @code{mirror://} URL when applicable.  If the
 @code{source} URL redirects to a GitHub URL, recommend usage of the GitHub
-URL.  Check that the source file name is meaningful, e.g.@: is not just a
+URL@.  Check that the source file name is meaningful, e.g.@: is not just a
 version number or ``git-checkout'', without a declared @code{file-name}
 (@pxref{origin Reference}).
 
@@ -10411,6 +11849,15 @@ and exit.
 Only enable the checkers specified in a comma-separated list using the
 names returned by @option{--list-checkers}.
 
+@item --exclude
+@itemx -x
+Only disable the checkers specified in a comma-separated list using the
+names returned by @option{--list-checkers}.
+
+@item --no-network
+@itemx -n
+Only enable the checkers that do not depend on Internet access.
+
 @item --load-path=@var{directory}
 @itemx -L @var{directory}
 Add @var{directory} to the front of the package module search path
@@ -10574,7 +12021,7 @@ the command-line tools.
 Packages and their dependencies form a @dfn{graph}, specifically a
 directed acyclic graph (DAG).  It can quickly become difficult to have a
 mental model of the package DAG, so the @command{guix graph} command
-provides a visual representation of the DAG.  By default,
+provides a visual representation of the DAG@.  By default,
 @command{guix graph} emits a DAG representation in the input format of
 @uref{https://www.graphviz.org/, Graphviz}, so its output can be passed
 directly to the @command{dot} command of Graphviz.  It can also emit an
@@ -10856,6 +12303,11 @@ The signing key pair must be generated before @command{guix publish} is
 launched, using @command{guix archive --generate-key} (@pxref{Invoking
 guix archive}).
 
+When the @option{--advertise} option is passed, the server advertises
+its availability on the local network using multicast DNS (mDNS) and DNS
+service discovery (DNS-SD), currently @i{via} Guile-Avahi (@pxref{Top,,,
+guile-avahi, Using Avahi in Guile Scheme Programs}).
+
 The general syntax is:
 
 @example
@@ -10869,12 +12321,8 @@ spawn an HTTP server on port 8080:
 guix publish
 @end example
 
-Once a publishing server has been authorized (@pxref{Invoking guix
-archive}), the daemon may download substitutes from it:
-
-@example
-guix-daemon --substitute-urls=http://example.org:8080
-@end example
+Once a publishing server has been authorized, the daemon may download
+substitutes from it.  @xref{Getting Substitutes from Other Servers}.
 
 By default, @command{guix publish} compresses archives on the fly as it
 serves them.  This ``on-the-fly'' mode is convenient in that it requires
@@ -10933,17 +12381,23 @@ server socket is open and the signing key has been read.
 @item --compression[=@var{method}[:@var{level}]]
 @itemx -C [@var{method}[:@var{level}]]
 Compress data using the given @var{method} and @var{level}.  @var{method} is
-one of @code{lzip} and @code{gzip}; when @var{method} is omitted, @code{gzip}
-is used.
+one of @code{lzip}, @code{zstd}, and @code{gzip}; when @var{method} is
+omitted, @code{gzip} is used.
 
 When @var{level} is zero, disable compression.  The range 1 to 9 corresponds
 to different compression levels: 1 is the fastest, and 9 is the best
 (CPU-intensive).  The default is 3.
 
-Usually, @code{lzip} compresses noticeably better than @code{gzip} for a small
-increase in CPU usage; see
-@uref{https://nongnu.org/lzip/lzip_benchmark.html,benchmarks on the lzip Web
-page}.
+Usually, @code{lzip} compresses noticeably better than @code{gzip} for a
+small increase in CPU usage; see
+@uref{https://nongnu.org/lzip/lzip_benchmark.html,benchmarks on the lzip
+Web page}.  However, @code{lzip} achieves low decompression throughput
+(on the order of 50@tie{}MiB/s on modern hardware), which can be a
+bottleneck for someone who downloads over a fast network connection.
+
+The compression ratio of @code{zstd} is between that of @code{lzip} and
+that of @code{gzip}; its main advantage is a
+@uref{https://facebook.github.io/zstd/,high decompression speed}.
 
 Unless @option{--cache} is used, compression occurs on the fly and
 the compressed streams are not
@@ -10973,13 +12427,20 @@ in advance, so @command{guix publish} does not add a
 prevents clients from knowing the amount of data being downloaded.
 
 Conversely, when @option{--cache} is used, the first request for a store
-item (@i{via} a @code{.narinfo} URL) returns 404 and triggers a
+item (@i{via} a @code{.narinfo} URL) triggers a
 background process to @dfn{bake} the archive---computing its
 @code{.narinfo} and compressing the archive, if needed.  Once the
 archive is cached in @var{directory}, subsequent requests succeed and
 are served directly from the cache, which guarantees that clients get
 the best possible bandwidth.
 
+That first @code{.narinfo} request nonetheless returns 200, provided the
+requested store item is ``small enough'', below the cache bypass
+threshold---see @option{--cache-bypass-threshold} below.  That way,
+clients do not have to wait until the archive is baked.  For larger
+store items, the first @code{.narinfo} request returns 404, meaning that
+clients have to wait until the archive is baked.
+
 The ``baking'' process is performed by worker threads.  By default, one
 thread per CPU core is created, but this can be customized.  See
 @option{--workers} below.
@@ -11005,6 +12466,21 @@ Additionally, when @option{--cache} is used, cached entries that have
 not been accessed for @var{ttl} and that no longer have a corresponding
 item in the store, may be deleted.
 
+@item --cache-bypass-threshold=@var{size}
+When used in conjunction with @option{--cache}, store items smaller than
+@var{size} are immediately available, even when they are not yet in
+cache.  @var{size} is a size in bytes, or it can be suffixed by @code{M}
+for megabytes and so on.  The default is @code{10M}.
+
+``Cache bypass'' allows you to reduce the publication delay for clients
+at the expense of possibly additional I/O and CPU use on the server
+side: depending on the client access patterns, those store items can end
+up being baked several times until a copy is available in cache.
+
+Increasing the threshold may be useful for sites that have few users, or
+to guarantee that users get substitutes even for store items that are
+not popular.
+
 @item --nar-path=@var{path}
 Use @var{path} as the prefix for the URLs of ``nar'' files
 (@pxref{Invoking guix archive, normalized archives}).
@@ -11480,8 +12956,9 @@ updating substitutes from '@value{SUBSTITUTE-URL}'... 100.0%
 @end example
 
 What this example shows is that @code{kcoreaddons} and presumably the 58
-packages that depend on it have no substitutes at @code{ci.guix.info};
-likewise for @code{qgpgme} and the 46 packages that depend on it.
+packages that depend on it have no substitutes at
+@code{@value{SUBSTITUTE-SERVER}}; likewise for @code{qgpgme} and the 46
+packages that depend on it.
 
 If you are a Guix developer, or if you are taking care of this build farm,
 you'll probably want to have a closer look at these packages: they may simply
@@ -11517,9 +12994,12 @@ ClientCommand: cuirass --cache-directory /var/cache/cuirass @dots{}
 LockHeld: /gnu/store/@dots{}-perl-ipc-cmd-0.96.lock
 LockHeld: /gnu/store/@dots{}-python-six-bootstrap-1.11.0.lock
 LockHeld: /gnu/store/@dots{}-libjpeg-turbo-2.0.0.lock
-ChildProcess: 20495: guix offload x86_64-linux 7200 1 28800
-ChildProcess: 27733: guix offload x86_64-linux 7200 1 28800
-ChildProcess: 27793: guix offload x86_64-linux 7200 1 28800
+ChildPID: 20495
+ChildCommand: guix offload x86_64-linux 7200 1 28800
+ChildPID: 27733
+ChildCommand: guix offload x86_64-linux 7200 1 28800
+ChildPID: 27793
+ChildCommand: guix offload x86_64-linux 7200 1 28800
 @end example
 
 In this example we see that @command{guix-daemon} has three clients:
@@ -11528,12 +13008,12 @@ integration tool; their process identifier (PID) is given by the
 @code{ClientPID} field.  The @code{SessionPID} field gives the PID of the
 @command{guix-daemon} sub-process of this particular session.
 
-The @code{LockHeld} fields show which store items are currently locked by this
-session, which corresponds to store items being built or substituted (the
-@code{LockHeld} field is not displayed when @command{guix processes} is not
-running as root).  Last, by looking at the @code{ChildProcess} field, we
-understand that these three builds are being offloaded (@pxref{Daemon Offload
-Setup}).
+The @code{LockHeld} fields show which store items are currently locked
+by this session, which corresponds to store items being built or
+substituted (the @code{LockHeld} field is not displayed when
+@command{guix processes} is not running as root).  Last, by looking at
+the @code{ChildPID} and @code{ChildCommand} fields, we understand that
+these three builds are being offloaded (@pxref{Daemon Offload Setup}).
 
 The output is in Recutils format so we can use the handy @command{recsel}
 command to select sessions of interest (@pxref{Selection Expressions,,,
@@ -11547,6 +13027,45 @@ ClientPID: 19419
 ClientCommand: cuirass --cache-directory /var/cache/cuirass @dots{}
 @end example
 
+Additional options are listed below.
+
+@table @code
+@item --format=@var{format}
+@itemx -f @var{format}
+Produce output in the specified @var{format}, one of:
+
+@table @code
+@item recutils
+The default option.  It outputs a set of Session recutils records
+that include each @code{ChildProcess} as a field.
+
+@item normalized
+Normalize the output records into record sets (@pxref{Record Sets,,,
+recutils, GNU recutils manual}).  Normalizing into record sets allows
+joins across record types.  The example below lists the PID of each
+@code{ChildProcess} and the associated PID for @code{Session} that
+spawned the @code{ChildProcess} where the @code{Session} was started
+using @command{guix build}.
+
+@example
+$ guix processes --format=normalized | \
+    recsel \
+    -j Session \
+    -t ChildProcess \
+    -p Session.PID,PID \
+    -e 'Session.ClientCommand ~ "guix build"'
+PID: 4435
+Session_PID: 4278
+
+PID: 4554
+Session_PID: 4278
+
+PID: 4646
+Session_PID: 4278
+@end example
+@end table
+@end table
+
 @node System Configuration
 @chapter System Configuration
 
@@ -11715,11 +13234,15 @@ following in your operating system declaration:
     (guix-service-type config =>
                        (guix-configuration
                         (inherit config)
-                        (use-substitutes? #f)
-                        (extra-options '("--gc-keep-derivations"))))
+                        ;; Fetch substitutes from example.org.
+                        (substitute-urls
+                          (list "https://example.org/guix"
+                                "https://ci.guix.gnu.org"))))
     (mingetty-service-type config =>
                            (mingetty-configuration
-                            (inherit config)))))
+                            (inherit config)
+                            ;; Automatially log in as "guest".
+                            (auto-login "guest")))))
 
 (operating-system
   ;; @dots{}
@@ -11849,7 +13372,7 @@ available when building a virtual machine disk image.}.
 
 @cindex hurd
 @item @code{hurd} (default: @code{#f})
-The package object of the hurd to be started by the kernel.  When this
+The package object of the Hurd to be started by the kernel.  When this
 field is set, produce a GNU/Hurd operating system.  In that case,
 @code{kernel} must also be set to the @code{gnumach} package---the
 microkernel the Hurd runs on.
@@ -11876,7 +13399,8 @@ The default label includes the kernel name and version.
 @item @code{keyboard-layout} (default: @code{#f})
 This field specifies the keyboard layout to use in the console.  It can be
 either @code{#f}, in which case the default keyboard layout is used (usually
-US English), or a @code{<keyboard-layout>} record.
+US English), or a @code{<keyboard-layout>} record. @xref{Keyboard Layout},
+for more information.
 
 This keyboard layout is in effect as soon as the kernel has booted.  For
 instance, it is the keyboard layout in effect when you type a passphrase if
@@ -11927,14 +13451,38 @@ A list of mapped devices.  @xref{Mapped Devices}.
 @item @code{file-systems}
 A list of file systems.  @xref{File Systems}.
 
-@item @code{swap-devices} (default: @code{'()})
 @cindex swap devices
-A list of strings identifying devices or files to be used for ``swap
+@cindex swap space
+@item @code{swap-devices} (default: @code{'()})
+A list of UUIDs, file system labels, or strings identifying devices or
+files to be used for ``swap
 space'' (@pxref{Memory Concepts,,, libc, The GNU C Library Reference
-Manual}).  For example, @code{'("/dev/sda3")} or @code{'("/swapfile")}.
+Manual}).  Here are some examples:
+
+@table @code
+@item (list (uuid "4dab5feb-d176-45de-b287-9b0a6e4c01cb"))
+Use the swap partition with the given UUID@.  You can learn the UUID of a
+Linux swap partition by running @command{swaplabel @var{device}}, where
+@var{device} is the @file{/dev} file name of that partition.
+
+@item (list (file-system-label "swap"))
+Use the partition with label @code{swap}.  Again, the
+@command{swaplabel} command allows you to view and change the label of a
+Linux swap partition.
+
+@item (list "/swapfile")
+Use the file @file{/swapfile} as swap space.
+
+@item (list "/dev/sda3" "/dev/sdb2")
+Use the @file{/dev/sda3} and @file{/dev/sdb2} partitions as swap space.
+We recommend referring to swap devices by UUIDs or labels as shown above
+instead.
+@end table
+
 It is possible to specify a swap file in a file system on a mapped
-device, provided that the necessary device mapping and file system are
-also specified.  @xref{Mapped Devices} and @ref{File Systems}.
+device (under @file{/dev/mapper}), provided that the necessary device
+mapping and file system are also specified.  @xref{Mapped Devices} and
+@ref{File Systems}.
 
 @item @code{users} (default: @code{%base-user-accounts})
 @itemx @code{groups} (default: @code{%base-groups})
@@ -12192,6 +13740,19 @@ example for an encrypted partition (@pxref{Mapped Devices}).
 @end table
 @end deftp
 
+@deffn {Scheme Procedure} file-system-label @var{str}
+This procedure returns an opaque file system label from @var{str}, a
+string:
+
+@lisp
+(file-system-label "home")
+@result{} #<file-system-label "home">
+@end lisp
+
+File system labels are used to refer to file systems by label rather
+than by device name.  See above for examples.
+@end deffn
+
 The @code{(gnu system file-systems)} exports the following useful
 variables.
 
@@ -12238,6 +13799,29 @@ and unmount user-space FUSE file systems.  This requires the
 @code{fuse.ko} kernel module to be loaded.
 @end defvr
 
+The @code{(gnu system uuid)} module provides tools to deal with file
+system ``unique identifiers'' (UUIDs).
+
+@deffn {Scheme Procedure} uuid @var{str} [@var{type}]
+Return an opaque UUID (unique identifier) object of the given @var{type}
+(a symbol) by parsing @var{str} (a string):
+
+@lisp
+(uuid "4dab5feb-d176-45de-b287-9b0a6e4c01cb")
+@result{} #<<uuid> type: dce bv: @dots{}>
+
+(uuid "1234-ABCD" 'fat)
+@result{} #<<uuid> type: fat bv: @dots{}>
+@end lisp
+
+@var{type} may be one of @code{dce}, @code{iso9660}, @code{fat},
+@code{ntfs}, or one of the commonly found synonyms for these.
+
+UUIDs are another way to unambiguously refer to file systems in
+operating system configuration.  See the examples above.
+@end deffn
+
+
 @node Btrfs file system
 @subsection Btrfs file system
 
@@ -12363,7 +13947,6 @@ Guix extends this notion by considering any device or set of devices that
 are @dfn{transformed} in some way to create a new device; for instance,
 RAID devices are obtained by @dfn{assembling} several other devices, such
 as hard disks or partitions, into a new one that behaves as one partition.
-Other examples, not yet implemented, are LVM logical volumes.
 
 Mapped devices are declared using the @code{mapped-device} form,
 defined as follows; for examples, see below.
@@ -12376,7 +13959,8 @@ the system boots up.
 @item source
 This is either a string specifying the name of the block device to be mapped,
 such as @code{"/dev/sda3"}, or a list of such strings when several devices
-need to be assembled for creating a new one.
+need to be assembled for creating a new one.  In case of LVM this is a
+string specifying name of the volume group to be mapped.
 
 @item target
 This string specifies the name of the resulting mapped device.  For
@@ -12385,6 +13969,12 @@ specifying @code{"my-partition"} leads to the creation of
 the @code{"/dev/mapper/my-partition"} device.
 For RAID devices of type @code{raid-device-mapping}, the full device name
 such as @code{"/dev/md0"} needs to be given.
+LVM logical volumes of type @code{lvm-device-mapping} need to
+be specified as @code{"VGNAME-LVNAME"}.
+
+@item targets
+This list of strings specifies names of the resulting mapped devices in case
+there are several.  The format is identical to @var{target}.
 
 @item type
 This must be a @code{mapped-device-kind} object, which specifies how
@@ -12405,6 +13995,14 @@ module for the appropriate RAID level to be loaded, such as @code{raid456}
 for RAID-4, RAID-5 or RAID-6, or @code{raid10} for RAID-10.
 @end defvr
 
+@cindex LVM, logical volume manager
+@defvr {Scheme Variable} lvm-device-mapping
+This defines one or more logical volumes for the Linux
+@uref{https://www.sourceware.org/lvm2/, Logical Volume Manager (LVM)}.
+The volume group is activated by the @command{vgchange} command from the
+@code{lvm2} package.
+@end defvr
+
 @cindex disk encryption
 @cindex LUKS
 The following example specifies a mapping from @file{/dev/sda3} to
@@ -12462,6 +14060,19 @@ Note that the RAID level need not be given; it is chosen during the
 initial creation and formatting of the RAID device and is determined
 automatically later.
 
+LVM logical volumes ``alpha'' and ``beta'' from volume group ``vg0'' can
+be declared as follows:
+
+@lisp
+(mapped-device
+  (source "vg0")
+  (target (list "vg0-alpha" "vg0-beta"))
+  (type lvm-device-mapping))
+@end lisp
+
+Devices @file{/dev/mapper/vg0-alpha} and @file{/dev/mapper/vg0-beta} can
+then be used as the @code{device} of a @code{file-system} declaration
+(@pxref{File Systems}).
 
 @node User Accounts
 @section User Accounts
@@ -12481,8 +14092,19 @@ User accounts and groups are entirely managed through the
                           "audio"   ;sound card
                           "video"   ;video devices such as webcams
                           "cdrom")) ;the good ol' CD-ROM
-  (comment "Bob's sister")
-  (home-directory "/home/alice"))
+  (comment "Bob's sister"))
+@end lisp
+
+Here's a user account that uses a different shell and a custom home
+directory (the default would be @file{"/home/bob"}):
+
+@lisp
+(user-account
+  (name "bob")
+  (group "users")
+  (comment "Alice's bro")
+  (shell (file-append zsh "/bin/zsh"))
+  (home-directory "/home/robert"))
 @end lisp
 
 When booting or upon completion of @command{guix system reconfigure},
@@ -12527,7 +14149,19 @@ if it does not exist yet.
 
 @item @code{shell} (default: Bash)
 This is a G-expression denoting the file name of a program to be used as
-the shell (@pxref{G-Expressions}).
+the shell (@pxref{G-Expressions}).  For example, you would refer to the
+Bash executable like this:
+
+@lisp
+(file-append bash "/bin/bash")
+@end lisp
+
+@noindent
+... and to the Zsh executable like that:
+
+@lisp
+(file-append zsh "/bin/zsh")
+@end lisp
 
 @item @code{system?} (default: @code{#f})
 This Boolean value indicates whether the account is a ``system''
@@ -12659,7 +14293,18 @@ the X Keyboard extension (XKB), each layout has four attributes: a name (often
 a language code such as ``fi'' for Finnish or ``jp'' for Japanese), an
 optional variant name, an optional keyboard model name, and a possibly empty
 list of additional options.  In most cases the layout name is all you care
-about.  Here are a few example:
+about.
+
+@deffn {Scheme Procedure} keyboard-layout @var{name} [@var{variant}] @
+                [#:model] [#:options '()]
+Return a new keyboard layout with the given @var{name} and @var{variant}.
+
+@var{name} must be a string such as @code{"fr"}; @var{variant} must be a
+string such as @code{"bepo"} or @code{"nodeadkeys"}.  See the
+@code{xkeyboard-config} package for valid options.
+@end deffn
+
+Here are a few examples:
 
 @lisp
 ;; The German QWERTZ layout.  Here we assume a standard
@@ -13117,6 +14762,9 @@ the name of the log-in program.
 When set to @code{#t} in conjunction with @var{auto-login}, the user
 will have to press a key before the log-in shell is launched.
 
+@item @code{clear-on-logout?} (default: @code{#t})
+When set to @code{#t}, the screen will be cleared after logout.
+
 @item @code{mingetty} (default: @var{mingetty})
 The Mingetty package to use.
 
@@ -13203,7 +14851,7 @@ Shadow tool suite.
 
 @item @code{local-line} (default: @code{#f})
 Control the CLOCAL line flag.  This accepts one of three symbols as
-arguments, @code{'auto}, @code{'always}, or @code{'never}. If @code{#f},
+arguments, @code{'auto}, @code{'always}, or @code{'never}.  If @code{#f},
 the default value chosen by agetty is @code{'auto}.
 
 @item @code{extract-baud?} (default: @code{#f})
@@ -13318,7 +14966,7 @@ implements virtual console log-in.
 The name of the console this Kmscon runs on---e.g., @code{"tty1"}.
 
 @item @code{login-program} (default: @code{#~(string-append #$shadow "/bin/login")})
-A gexp denoting the name of the log-in program. The default log-in program is
+A gexp denoting the name of the log-in program.  The default log-in program is
 @command{login} from the Shadow tool suite.
 
 @item @code{login-arguments} (default: @code{'("-p")})
@@ -13504,11 +15152,26 @@ Whether to authorize the substitute keys listed in
 @code{authorized-keys}---by default that of @code{@value{SUBSTITUTE-SERVER}}
 (@pxref{Substitutes}).
 
+When @code{authorize-key?} is true, @file{/etc/guix/acl} cannot be
+changed by invoking @command{guix archive --authorize}.  You must
+instead adjust @code{guix-configuration} as you wish and reconfigure the
+system.  This ensures that your operating system configuration file is
+self-contained.
+
+@quotation Note
+When booting or reconfiguring to a system where @code{authorize-key?}
+is true, the existing @file{/etc/guix/acl} file is backed up as
+@file{/etc/guix/acl.bak} if it was determined to be a manually modified
+file.  This is to facilitate migration from earlier versions, which
+allowed for in-place modifications to @file{/etc/guix/acl}.
+@end quotation
+
 @vindex %default-authorized-guix-keys
 @item @code{authorized-keys} (default: @code{%default-authorized-guix-keys})
 The list of authorized key files for archive imports, as a list of
 string-valued gexps (@pxref{Invoking guix archive}).  By default, it
 contains that of @code{@value{SUBSTITUTE-SERVER}} (@pxref{Substitutes}).
+See @code{substitute-urls} below for an example on how to change it.
 
 @item @code{use-substitutes?} (default: @code{#t})
 Whether to use substitutes.
@@ -13516,6 +15179,27 @@ Whether to use substitutes.
 @item @code{substitute-urls} (default: @code{%default-substitute-urls})
 The list of URLs where to look for substitutes by default.
 
+Suppose you would like to fetch substitutes from @code{guix.example.org}
+in addition to @code{@value{SUBSTITUTE-SERVER}}.  You will need to do
+two things: (1) add @code{guix.example.org} to @code{substitute-urls},
+and (2) authorize its signing key, having done appropriate checks
+(@pxref{Substitute Server Authorization}).  The configuration below does
+exactly that:
+
+@lisp
+(guix-configuration
+  (substitute-urls
+   (append (list "https://guix.example.org")
+           %default-substitute-urls))
+  (authorized-keys
+   (append (list (local-file "./guix.example.org-key.pub"))
+           %default-authorized-guix-keys)))
+@end lisp
+
+This example assumes that the file @file{./guix.example.org-key.pub}
+contains the public key that @code{guix.example.org} uses to sign
+substitutes.
+
 @item @code{max-silent-time} (default: @code{0})
 @itemx @code{timeout} (default: @code{0})
 The number of seconds of silence and the number of seconds of activity,
@@ -13526,6 +15210,10 @@ disables the timeout.
 The type of compression used for build logs---one of @code{gzip},
 @code{bzip2}, or @code{none}.
 
+@item @code{discover?} (default: @code{#f})
+Whether to discover substitute servers on the local network using mDNS
+and DNS-SD.
+
 @item @code{extra-options} (default: @code{'()})
 List of extra command-line options for @command{guix-daemon}.
 
@@ -13733,6 +15421,14 @@ The TCP port to listen for connections.
 The host (and thus, network interface) to listen to.  Use
 @code{"0.0.0.0"} to listen on all the network interfaces.
 
+@item @code{advertise?} (default: @code{#f})
+When true, advertise the service on the local network @i{via} the DNS-SD
+protocol, using Avahi.
+
+This allows neighboring Guix devices with discovery on (see
+@code{guix-configuration} above) to discover this @command{guix publish}
+instance and to automatically download substitutes from it.
+
 @item @code{compression} (default: @code{'(("gzip" 3))})
 This is a list of compression method/level tuple used when compressing
 substitutes.  For example, to compress all substitutes with @emph{both} lzip
@@ -13743,7 +15439,9 @@ at level 7 and gzip at level 9, write:
 @end lisp
 
 Level 9 achieves the best compression ratio at the expense of increased CPU
-usage, whereas level 1 achieves fast compression.
+usage, whereas level 1 achieves fast compression.  @xref{Invoking guix
+publish}, for more information on the available compression methods and
+the tradeoffs involved.
 
 An empty list disables compression altogether.
 
@@ -13763,6 +15461,12 @@ When it is an integer, this is the number of worker threads used for
 caching; when @code{#f}, the number of processors is used.
 @xref{Invoking guix publish, @option{--workers}}, for more information.
 
+@item @code{cache-bypass-threshold} (default: 10 MiB)
+When @code{cache} is true, this is the maximum size in bytes of a store
+item for which @command{guix publish} may bypass its cache in case of a
+cache miss.  @xref{Invoking guix publish,
+@option{--cache-bypass-threshold}}, for more information.
+
 @item @code{ttl} (default: @code{#f})
 When it is an integer, this denotes the @dfn{time-to-live} in seconds
 of the published archives.  @xref{Invoking guix publish, @option{--ttl}},
@@ -13857,11 +15561,15 @@ gexps to introduce job definitions that are passed to mcron
 
 (operating-system
   ;; @dots{}
-  (services (cons (service mcron-service-type
-                           (mcron-configuration
-                            (jobs (list garbage-collector-job
-                                        updatedb-job
-                                        idutils-job))))
+
+  ;; %BASE-SERVICES already includes an instance of
+  ;; 'mcron-service-type', which we extend with additional
+  ;; jobs using 'simple-service'.
+  (services (cons (simple-service 'my-cron-jobs
+                                   mcron-service-type
+                                   (list garbage-collector-job
+                                         updatedb-job
+                                         idutils-job))
                   %base-services)))
 @end lisp
 
@@ -14163,7 +15871,7 @@ and @command{wicd-curses} user interfaces.
 @defvr {Scheme Variable} modem-manager-service-type
 This is the service type for the
 @uref{https://wiki.gnome.org/Projects/ModemManager, ModemManager}
-service. The value for this service type is a
+service.  The value for this service type is a
 @code{modem-manager-configuration} record.
 
 This service is part of @code{%desktop-services} (@pxref{Desktop
@@ -14185,8 +15893,9 @@ The ModemManager package to use.
 
 @defvr {Scheme Variable} usb-modeswitch-service-type
 This is the service type for the
-@uref{https://www.draisberghof.de/usb_modeswitch/, USB_ModeSwitch} service. The
-value for this service type is a @code{usb-modeswitch-configuration} record.
+@uref{https://www.draisberghof.de/usb_modeswitch/, USB_ModeSwitch}
+service.  The value for this service type is
+a @code{usb-modeswitch-configuration} record.
 
 When plugged in, some USB modems (and other USB devices) initially present
 themselves as a read-only storage medium and not as a modem.  They need to be
@@ -14333,7 +16042,7 @@ It takes the following parameters:
 @item @code{wpa-supplicant} (default: @code{wpa-supplicant})
 The WPA Supplicant package to use.
 
-@item @code{requirement} (default: @code{'(user-processes dbus-system loopback syslogd)}
+@item @code{requirement} (default: @code{'(user-processes loopback syslogd)}
 List of services that should be started before WPA Supplicant starts.
 
 @item @code{dbus?} (default: @code{#t})
@@ -14531,7 +16240,7 @@ The data type representing the configuration of a NTP server.
 
 @table @asis
 @item @code{type} (default: @code{'server})
-The type of the NTP server, given as a symbol. One of @code{'pool},
+The type of the NTP server, given as a symbol.  One of @code{'pool},
 @code{'server}, @code{'peer}, @code{'broadcast} or @code{'manycastclient}.
 
 @item @code{address}
@@ -14539,7 +16248,7 @@ The address of the server, as a string.
 
 @item @code{options}
 NTPD options to use with that specific server, given as a list of option names
-and/or of option names and values tuples. The following example define a server
+and/or of option names and values tuples.  The following example define a server
 to use with the options @option{iburst} and @option{prefer}, as well as
 @option{version} 3 and a @option{maxpoll} time of 16 seconds.
 
@@ -14565,8 +16274,7 @@ clock synchronized with that of the given servers.
   (listen-on '("127.0.0.1" "::1"))
   (sensor '("udcf0 correction 70000"))
   (constraint-from '("www.gnu.org"))
-  (constraints-from '("https://www.google.com/"))
-  (allow-large-adjustment? #t)))
+  (constraints-from '("https://www.google.com/"))))
 
 @end lisp
 @end deffn
@@ -14604,9 +16312,6 @@ a constraint.
 As with constraint from, specify a list of URLs, IP addresses or hostnames of
 HTTPS servers to provide a constraint.  Should the hostname resolve to multiple
 IP addresses, @code{ntpd} will calculate a median constraint from all of them.
-@item @code{allow-large-adjustment?} (default: @code{#f})
-Determines if @code{ntpd} is allowed to make an initial adjustment of more
-than 180 seconds.
 @end table
 @end deftp
 
@@ -14840,6 +16545,55 @@ Group name or group ID that will be used when accessing the module.
 @end table
 @end deftp
 
+The @code{(gnu services syncthing)} module provides the following services:
+@cindex syncthing
+
+You might want a syncthing daemon if you have files between two or more
+computers and want to sync them in real time, safely protected from
+prying eyes.
+
+@deffn {Scheme Variable} syncthing-service-type
+This is the service type for the @uref{https://syncthing.net/,
+syncthing} daemon, The value for this service type is a
+@command{syncthing-configuration} record as in this example:
+
+@lisp
+(service syncthing-service-type
+         (syncthing-configuration (user "alice")))
+@end lisp
+
+See below for details about @code{syncthing-configuration}.
+
+@deftp {Data Type} syncthing-configuration
+Data type representing the configuration for @code{syncthing-service-type}.
+
+@table @asis
+@item @code{syncthing} (default: @var{syncthing})
+@code{syncthing} package to use.
+
+@item @code{arguments} (default: @var{'()})
+List of command-line arguments passing to @code{syncthing} binary.
+
+@item @code{logflags} (default: @var{0})
+Sum of loging flags, see
+@uref{https://docs.syncthing.net/users/syncthing.html#cmdoption-logflags, Syncthing documentation logflags}.
+
+@item @code{user} (default: @var{#f})
+The user as which the Syncthing service is to be run.
+This assumes that the specified user exists.
+
+@item @code{group} (default: @var{"users"})
+The group as which the Syncthing service is to be run.
+This assumes that the specified group exists.
+
+@item @code{home} (default: @var{#f})
+Common configuration and data directory.  The default configuration
+directory is @file{$HOME} of the specified Syncthing @code{user}.
+
+@end table
+@end deftp
+@end deffn
+
 Furthermore, @code{(gnu services ssh)} provides the following services.
 @cindex SSH
 @cindex SSH server
@@ -14913,6 +16667,9 @@ example:
 This is the configuration record for OpenSSH's @command{sshd}.
 
 @table @asis
+@item @code{openssh} (default @var{openssh})
+The Openssh package to use.
+
 @item @code{pid-file} (default: @code{"/var/run/sshd.pid"})
 Name of the file where @command{sshd} writes its PID.
 
@@ -15162,7 +16919,7 @@ a positive integer, ports @var{n} and @var{n}+1 are used for
 monitoring the connection, such that port @var{n} is the base
 monitoring port and @code{n+1} is the echo port.  When set to
 @code{"@var{n}:@var{m}"} where @var{n} and @var{m} are positive
-integers, the ports @var{n} and @var{n}+1 are used for monitoring the
+integers, the ports @var{n} and @var{m} are used for monitoring the
 connection, such that port @var{n} is the base monitoring port and
 @var{m} is the echo port.
 
@@ -15174,6 +16931,81 @@ may cause undefined behaviour.
 @end table
 @end deftp
 
+@cindex WebSSH
+@deffn {Scheme Variable} webssh-service-type
+This is the type for the @uref{https://webssh.huashengdun.org/, WebSSH}
+program that runs a web SSH client.  WebSSH can be run manually from the
+command-line by passing arguments to the binary @command{wssh} from the
+package @code{webssh}, but it can also be run as a Guix service.  This
+latter use case is documented here.
+
+For example, to specify a service running WebSSH on loopback interface
+on port @code{8888} with reject policy with a list of allowed to
+connection hosts, and NGINX as a reverse-proxy to this service listening
+for HTTPS connection, add this call to the operating system's
+@code{services} field:
+
+@lisp
+(service webssh-service-type
+  (webssh-configuration (address "127.0.0.1")
+                        (port 8888)
+                        (policy 'reject)
+                        (known-hosts '("localhost ecdsa-sha2-nistp256 AAAA…"
+                                       "127.0.0.1 ecdsa-sha2-nistp256 AAAA…"))))
+
+(service nginx-service-type
+         (nginx-configuration
+          (server-blocks
+           (list
+            (nginx-server-configuration
+             (inherit %webssh-configuration-nginx)
+             (server-name '("webssh.example.com"))
+             (listen '("443 ssl"))
+             (ssl-certificate (letsencrypt-certificate "webssh.example.com"))
+             (ssl-certificate-key (letsencrypt-key "webssh.example.com"))
+             (locations
+              (cons (nginx-location-configuration
+                     (uri "/.well-known")
+                     (body '("root /var/www;")))
+                    (nginx-server-configuration-locations %webssh-configuration-nginx))))))))
+@end lisp
+@end deffn
+
+@deftp {Data Type} webssh-configuration
+Data type representing the configuration for @code{webssh-service}.
+
+@table @asis
+@item @code{package} (default: @var{webssh})
+@code{webssh} package to use.
+
+@item @code{user-name} (default: @var{"webssh"})
+User name or user ID that file transfers to and from that module should take
+place.
+
+@item @code{group-name} (default: @var{"webssh"})
+Group name or group ID that will be used when accessing the module.
+
+@item @code{address} (default: @var{#f})
+IP address on which @command{webssh} listens for incoming connections.
+
+@item @code{port} (default: @var{8888})
+TCP port on which @command{webssh} listens for incoming connections.
+
+@item @code{policy} (default: @var{#f})
+Connection policy.  @var{reject} policy requires to specify @var{known-hosts}.
+
+@item @code{known-hosts} (default: @var{'()})
+List of hosts which allowed for SSH connection from @command{webssh}.
+
+@item @code{log-file} (default: @file{"/var/log/webssh.log"})
+Name of the file where @command{webssh} writes its log file.
+
+@item @code{log-level} (default: @var{#f})
+Logging level.
+
+@end table
+@end deftp
+
 @defvr {Scheme Variable} %facebook-host-aliases
 This variable contains a string for use in @file{/etc/hosts}
 (@pxref{Host Names,,, libc, The GNU C Library Reference Manual}).  Each
@@ -15209,7 +17041,7 @@ The @code{(gnu services avahi)} provides the following definition.
 This is the service that runs @command{avahi-daemon}, a system-wide
 mDNS/DNS-SD responder that allows for service discovery and
 ``zero-configuration'' host name lookups (see @uref{https://avahi.org/}).
-Its value must be a @code{zero-configuration} record---see below.
+Its value must be an @code{avahi-configuration} record---see below.
 
 This service extends the name service cache daemon (nscd) so that it can
 resolve @code{.local} host names using
@@ -15308,7 +17140,7 @@ Connect to the named PageKite frontend server instead of the
 @uref{https://pagekite.net,,pagekite.net} service.
 
 @item @code{kites} (default: @code{'("http:@@kitename:localhost:80:@@kitesecret")})
-List of service kites to use.  Exposes HTTP on port 80 by default. The format
+List of service kites to use.  Exposes HTTP on port 80 by default.  The format
 is @code{proto:kitename:host:port:secret}.
 
 @item @code{extra-file} (default: @code{#f})
@@ -15318,6 +17150,153 @@ Use this to add additional options and manage shared secrets out-of-band.
 @end table
 @end deftp
 
+@defvr {Scheme Variable} yggdrasil-service-type
+The service type for connecting to the @uref{https://yggdrasil-network.github.io/,
+Yggdrasil network}, an early-stage implementation of a fully end-to-end
+encrypted IPv6 network.
+
+@quotation
+Yggdrasil provides name-independent routing with cryptographically generated
+addresses.  Static addressing means you can keep the same address as long as
+you want, even if you move to a new location, or generate a new address (by
+generating new keys) whenever you want.
+@uref{https://yggdrasil-network.github.io/2018/07/28/addressing.html}
+@end quotation
+
+Pass it a value of @code{yggdrasil-configuration} to connect it to public
+peers and/or local peers.
+
+Here is an example using public peers and a static address.  The static
+signing and encryption keys are defined in @file{/etc/yggdrasil-private.conf}
+(the default value for @code{config-file}).
+
+@lisp
+;; part of the operating-system declaration
+(service yggdrasil-service-type
+              (yggdrasil-configuration
+               (autoconf? #f) ;; use only the public peers
+               (json-config
+               ;; choose one from
+               ;; https://github.com/yggdrasil-network/public-peers
+                '((peers . #("tcp://1.2.3.4:1337"))))
+               ;; /etc/yggdrasil-private.conf is the default value for config-file
+               ))
+@end lisp
+@example
+# sample content for /etc/yggdrasil-private.conf
+@{
+  # Your public encryption key. Your peers may ask you for this to put
+  # into their AllowedEncryptionPublicKeys configuration.
+  EncryptionPublicKey: 378dc5...
+
+  # Your private encryption key. DO NOT share this with anyone!
+  EncryptionPrivateKey: 0777...
+
+  # Your public signing key. You should not ordinarily need to share
+  # this with anyone.
+  SigningPublicKey: e1664...
+
+  # Your private signing key. DO NOT share this with anyone!
+  SigningPrivateKey: 0589d...
+@}
+@end example
+@end defvr
+
+@deftp {Data Type} yggdrasil-configuration
+Data type representing the configuration of Yggdrasil.
+
+@table @asis
+@item @code{package} (default: @code{yggdrasil})
+Package object of Yggdrasil.
+
+@item @code{json-config} (default: @code{'()})
+Contents of @file{/etc/yggdrasil.conf}.  Will be merged with
+@file{/etc/yggdrasil-private.conf}.  Note that these settings are stored in
+the Guix store, which is readable to all users. @strong{Do not store your
+private keys in it}.  See the output of @code{yggdrasil -genconf} for a
+quick overview of valid keys and their default values.
+
+@item @code{autoconf?} (default: @code{#f})
+Whether to use automatic mode.  Enabling it makes Yggdrasil use adynamic IP
+and peer with IPv6 neighbors.
+
+@item @code{log-level} (default: @code{'info})
+How much detail to include in logs.  Use @code{'debug} for more detail.
+
+@item @code{log-to} (default: @code{'stdout})
+Where to send logs.  By default, the service logs standard output to
+@file{/var/log/yggdrasil.log}.  The alternative is @code{'syslog}, which
+sends output to the running syslog service.
+
+@item @code{config-file} (default: @code{"/etc/yggdrasil-private.conf"})
+What HJSON file to load sensitive data from.  This is where private keys
+should be stored, which are necessary to specify if you don't want a
+randomized address after each restart.  Use @code{#f} to disable.  Options
+defined in this file take precedence over @code{json-config}.  Use the output
+of @code{yggdrasil -genconf} as a starting point.  To configure a static
+address, delete everything except these options:
+
+@itemize
+@item @code{EncryptionPublicKey}
+@item @code{EncryptionPrivateKey}
+@item @code{SigningPublicKey}
+@item @code{SigningPrivateKey}
+@end itemize
+@end table
+@end deftp
+
+@cindex keepalived
+@deffn {Scheme Variable} keepalived-service-type
+This is the type for the @uref{https://www.keepalived.org/, Keepalived}
+routing software, @command{keepalived}.  Its value must be an
+@code{keepalived-configuration} record as in this example for master
+machine:
+
+@lisp
+(service keepalived-service-type
+         (keepalived-configuration
+           (config-file (local-file "keepalived-master.conf"))))
+@end lisp
+
+where @file{keepalived-master.conf}:
+
+@example
+vrrp_instance my-group @{
+  state MASTER
+  interface enp9s0
+  virtual_router_id 100
+  priority 100
+  unicast_peer @{ 10.0.0.2 @}
+  virtual_ipaddress @{
+    10.0.0.4/24
+  @}
+@}
+@end example
+
+and for backup machine:
+
+@lisp
+(service keepalived-service-type
+         (keepalived-configuration
+          (config-file (local-file "keepalived-backup.conf"))))
+@end lisp
+
+where @file{keepalived-backup.conf}:
+
+@example
+vrrp_instance my-group @{
+  state BACKUP
+  interface enp9s0
+  virtual_router_id 100
+  priority 99
+  unicast_peer @{ 10.0.0.3 @}
+  virtual_ipaddress @{
+    10.0.0.4/24
+  @}
+@}
+@end example
+@end deffn
+
 @node Unattended Upgrades
 @subsection Unattended Upgrades
 
@@ -15392,6 +17371,29 @@ This gexp specifies the channels to use for the upgrade
 (@pxref{Channels}).  By default, the tip of the official @code{guix}
 channel is used.
 
+@item @code{operating-system-file} (default: @code{"/run/current-system/configuration.scm"})
+This field specifies the operating system configuration file to use.
+The default is to reuse the config file of the current configuration.
+
+There are cases, though, where referring to
+@file{/run/current-system/configuration.scm} is not enough, for instance
+because that file refers to extra files (SSH public keys, extra
+configuration files, etc.) @i{via} @code{local-file} and similar
+constructs.  For those cases, we recommend something along these lines:
+
+@lisp
+(unattended-upgrade-configuration
+  (operating-system-file
+    (file-append (local-file "." "config-dir" #:recursive? #t)
+                 "/config.scm")))
+@end lisp
+
+The effect here is to import all of the current directory into the
+store, and to refer to @file{config.scm} within that directory.
+Therefore, uses of @code{local-file} within @file{config.scm} will work
+as expected.  @xref{G-Expressions}, for information about
+@code{local-file} and @code{file-append}.
+
 @item @code{services-to-restart} (default: @code{'(mcron)})
 This field specifies the Shepherd services to restart when the upgrade
 completes.
@@ -15403,6 +17405,10 @@ only restarts services that are not currently running, which is
 conservative: it minimizes disruption but leaves outdated services
 running.
 
+Use @command{herd status} to find out candidates for restarting.
+@xref{Services}, for general information about services.  Common
+services to restart would include @code{ntpd} and @code{ssh-daemon}.
+
 By default, the @code{mcron} service is restarted.  This ensures that
 the latest version of the unattended upgrade job will be used next time.
 
@@ -15731,7 +17737,7 @@ auto-login session.
 @deftp {Data Type} xorg-configuration
 This data type represents the configuration of the Xorg graphical display
 server.  Note that there is no Xorg service; instead, the X server is started
-by a ``display manager'' such as GDM, SDDM, and SLiM.  Thus, the configuration
+by a ``display manager'' such as GDM, SDDM, and SLiM@.  Thus, the configuration
 of these display managers aggregates an @code{xorg-configuration} record.
 
 @table @asis
@@ -15833,16 +17839,17 @@ CUPS service will generate a self-signed certificate if needed, for
 secure connections to the print server.
 
 Suppose you want to enable the Web interface of CUPS and also add
-support for Epson printers @i{via} the @code{escpr} package and for HP
-printers @i{via} the @code{hplip-minimal} package.  You can do that directly,
-like this (you need to use the @code{(gnu packages cups)} module):
+support for Epson printers @i{via} the @code{epson-inkjet-printer-escpr}
+package and for HP printers @i{via} the @code{hplip-minimal} package.
+You can do that directly, like this (you need to use the
+@code{(gnu packages cups)} module):
 
 @lisp
 (service cups-service-type
          (cups-configuration
            (web-interface? #t)
            (extensions
-             (list cups-filters escpr hplip-minimal))))
+             (list cups-filters epson-inkjet-printer-escpr hplip-minimal))))
 @end lisp
 
 Note: If you wish to use the Qt5 based GUI which comes with the hplip
@@ -15871,7 +17878,7 @@ Available @code{cups-configuration} fields are:
 The CUPS package.
 @end deftypevr
 
-@deftypevr {@code{cups-configuration} parameter} package-list extensions
+@deftypevr {@code{cups-configuration} parameter} package-list extensions (default: @code{(list brlaser cups-filters epson-inkjet-printer-escpr foomatic-filters hplip-minimal splix)})
 Drivers and other extensions to the CUPS package.
 @end deftypevr
 
@@ -16693,33 +18700,33 @@ field of an @code{operating-system} declaration (@pxref{operating-system
 Reference, @code{services}}).
 
 Additionally, the @code{gnome-desktop-service-type},
-@code{xfce-desktop-service}, @code{mate-desktop-service-type} and
-@code{enlightenment-desktop-service-type} procedures can add GNOME, Xfce, MATE
-and/or Enlightenment to a system.  To ``add GNOME'' means that system-level
-services like the backlight adjustment helpers and the power management
-utilities are added to the system, extending @code{polkit} and @code{dbus}
-appropriately, allowing GNOME to operate with elevated privileges on a
-limited number of special-purpose system interfaces.  Additionally,
-adding a service made by @code{gnome-desktop-service-type} adds the GNOME
-metapackage to the system profile.  Likewise, adding the Xfce service
-not only adds the @code{xfce} metapackage to the system profile, but it
-also gives the Thunar file manager the ability to open a ``root-mode''
-file management window, if the user authenticates using the
-administrator's password via the standard polkit graphical interface.
-To ``add MATE'' means that @code{polkit} and @code{dbus} are extended
-appropriately, allowing MATE to operate with elevated privileges on a
-limited number of special-purpose system interfaces.  Additionally,
-adding a service of type @code{mate-desktop-service-type} adds the MATE
-metapackage to the system profile.  ``Adding Enlightenment'' means that
-@code{dbus} is extended appropriately, and several of Enlightenment's binaries
-are set as setuid, allowing Enlightenment's screen locker and other
-functionality to work as expected.
+@code{xfce-desktop-service}, @code{mate-desktop-service-type},
+@code{lxqt-desktop-service-type} and @code{enlightenment-desktop-service-type}
+procedures can add GNOME, Xfce, MATE and/or Enlightenment to a system.  To
+``add GNOME'' means that system-level services like the backlight adjustment
+helpers and the power management utilities are added to the system, extending
+@code{polkit} and @code{dbus} appropriately, allowing GNOME to operate with
+elevated privileges on a limited number of special-purpose system interfaces.
+Additionally, adding a service made by @code{gnome-desktop-service-type} adds
+the GNOME metapackage to the system profile.  Likewise, adding the Xfce
+service not only adds the @code{xfce} metapackage to the system profile, but
+it also gives the Thunar file manager the ability to open a ``root-mode'' file
+management window, if the user authenticates using the administrator's
+password via the standard polkit graphical interface.  To ``add MATE'' means
+that @code{polkit} and @code{dbus} are extended appropriately, allowing MATE
+to operate with elevated privileges on a limited number of special-purpose
+system interfaces.  Additionally, adding a service of type
+@code{mate-desktop-service-type} adds the MATE metapackage to the system
+profile.  ``Adding Enlightenment'' means that @code{dbus} is extended
+appropriately, and several of Enlightenment's binaries are set as setuid,
+allowing Enlightenment's screen locker and other functionality to work as
+expected.
 
 The desktop environments in Guix use the Xorg display server by
 default.  If you'd like to use the newer display server protocol
 called Wayland, you need to use the @code{sddm-service} instead of
 GDM as the graphical login manager.  You should then
-select the ``GNOME (Wayland)'' session in SDDM.  Alternatively you can
+select the ``GNOME (Wayland)'' session in SDDM@.  Alternatively you can
 also try starting GNOME on Wayland manually from a TTY with the
 command ``XDG_SESSION_TYPE=wayland exec dbus-run-session
 gnome-session``.  Currently only GNOME has support for Wayland.
@@ -16751,6 +18758,12 @@ This service adds the @code{xfce} package to the system profile, and
 extends polkit with the ability for @code{thunar} to manipulate the file
 system as root from within a user session, after the user has authenticated
 with the administrator's password.
+
+Note that @code{xfce4-panel} and its plugin packages should be installed in
+the same profile to ensure compatibility.  When using this service, you should
+add extra plugins (@code{xfce4-whiskermenu-plugin},
+@code{xfce4-weather-plugin}, etc.) to the @code{packages} field of your
+@code{operating-system}.
 @end defvr
 
 @deftp {Data Type} xfce-desktop-configuration
@@ -16781,6 +18794,24 @@ The MATE package to use.
 @end table
 @end deftp
 
+@deffn {Scheme Variable} lxqt-desktop-service-type
+This is the type of the service that runs the @uref{https://lxqt.github.io,
+LXQt desktop environment}.  Its value is a @code{lxqt-desktop-configuration}
+object (see below).
+
+This service adds the @code{lxqt} package to the system
+profile.
+@end deffn
+
+@deftp {Data Type} lxqt-desktop-configuration
+Configuration record for the LXQt desktop environment.
+
+@table @asis
+@item @code{lxqt} (default: @code{lxqt})
+The LXQT package to use.
+@end table
+@end deftp
+
 @deffn {Scheme Variable} enlightenment-desktop-service-type
 Return a service that adds the @code{enlightenment} package to the system
 profile, and extends dbus with actions from @code{efl}.
@@ -16867,6 +18898,8 @@ their default values are:
 @code{suspend}
 @item handle-lid-switch-docked
 @code{ignore}
+@item handle-lid-switch-external-power
+@code{ignore}
 @item power-key-ignore-inhibited?
 @code{#f}
 @item suspend-key-ignore-inhibited?
@@ -17203,7 +19236,7 @@ via @code{pulseaudio-configuration}, see below.
 
 @quotation Warning
 This service overrides per-user configuration files.  If you want
-PulseAudio to honor configuraton files in @file{~/.config/pulse} you
+PulseAudio to honor configuration files in @file{~/.config/pulse} you
 have to unset the environment variables @env{PULSE_CONFIG} and
 @env{PULSE_CLIENTCONFIG} in your @file{~/.bash_profile}.
 @end quotation
@@ -17221,21 +19254,21 @@ without a @code{pulseaudio} package, consider enabling it through the
 Data type representing the configuration for @code{pulseaudio-service}.
 
 @table @asis
-@item @var{client-conf} (default: @code{'()})
+@item @code{client-conf} (default: @code{'()})
 List of settings to set in @file{client.conf}.
 Accepts a list of strings or a symbol-value pairs.  A string will be
 inserted as-is with a newline added.  A pair will be formatted as
 ``key = value'', again with a newline added.
 
-@item @var{daemon-conf} (default: @code{'((flat-volumes . no))})
+@item @code{daemon-conf} (default: @code{'((flat-volumes . no))})
 List of settings to set in @file{daemon.conf}, formatted just like
 @var{client-conf}.
 
-@item @var{script-file} (default: @code{(file-append pulseaudio "/etc/pulse/default.pa")})
-Script file to use as as @file{default.pa}.
+@item @code{script-file} (default: @code{(file-append pulseaudio "/etc/pulse/default.pa")})
+Script file to use as @file{default.pa}.
 
-@item @var{system-script-file} (default: @code{(file-append pulseaudio "/etc/pulse/system.pa")})
-Script file to use as as @file{system.pa}.
+@item @code{system-script-file} (default: @code{(file-append pulseaudio "/etc/pulse/system.pa")})
+Script file to use as @file{system.pa}.
 @end table
 @end deftp
 
@@ -17263,15 +19296,16 @@ details.
 @cindex SQL
 The @code{(gnu services databases)} module provides the following services.
 
-@deffn {Scheme Procedure} postgresql-service [#:postgresql postgresql] @
-       [#:config-file] [#:data-directory ``/var/lib/postgresql/data''] @
-       [#:port 5432] [#:locale ``en_US.utf8''] [#:extension-packages '()]
-Return a service that runs @var{postgresql}, the PostgreSQL database
-server.
+@subsubheading PostgreSQL
 
-The PostgreSQL daemon loads its runtime configuration from @var{config-file},
-creates a database cluster with @var{locale} as the default
-locale, stored in @var{data-directory}.  It then listens on @var{port}.
+The following example describes a PostgreSQL service with the default
+configuration.
+
+@lisp
+(service postgresql-service-type
+         (postgresql-configuration
+          (postgresql postgresql-10)))
+@end lisp
 
 If the services fails to start, it may be due to an incompatible
 cluster already present in @var{data-directory}.  Adjust it (or, if you
@@ -17291,6 +19325,29 @@ createuser --interactive
 createdb $MY_USER_LOGIN      # Replace appropriately.
 @end example
 
+@deftp {Data Type} postgresql-configuration
+Data type representing the configuration for the
+@code{postgresql-service-type}.
+
+@table @asis
+@item @code{postgresql}
+PostgreSQL package to use for the service.
+
+@item @code{port} (default: @code{5432})
+Port on which PostgreSQL should listen.
+
+@item @code{locale} (default: @code{"en_US.utf8"})
+Locale to use as the default when creating the database cluster.
+
+@item @code{config-file} (default: @code{(postgresql-config-file)})
+The configuration file to use when running PostgreSQL@.  The default
+behaviour uses the postgresql-config-file record with the default values
+for the fields.
+
+@item @code{data-directory} (default: @code{"/var/lib/postgresql/data"})
+Directory in which to store the data.
+
+@item @code{extension-packages} (default: @code{'()})
 @cindex postgresql extension-packages
 Additional extensions are loaded from packages listed in
 @var{extension-packages}.  Extensions are available at runtime.  For instance,
@@ -17308,7 +19365,10 @@ configure the postgresql-service as in this example:
   (packages (cons* postgresql %base-packages))
   (services
     (cons*
-      (postgresql-service #:extension-packages (list postgis))
+      (service postgresql-service-type
+               (postgresql-configuration
+                (postgresql postgresql-10)
+                (extension-packages (list postgis))))
       %base-services)))
 @end lisp
 
@@ -17326,18 +19386,68 @@ psql -U postgres
 There is no need to add this field for contrib extensions such as hstore or
 dblink as they are already loadable by postgresql.  This field is only
 required to add extensions provided by other packages.
-@end deffn
 
-@deffn {Scheme Procedure} mysql-service [#:config (mysql-configuration)]
-Return a service that runs @command{mysqld}, the MySQL or MariaDB
-database server.
+@end table
+@end deftp
+
+@deftp {Data Type} postgresql-config-file
+Data type representing the PostgreSQL configuration file.  As shown in
+the following example, this can be used to customize the configuration
+of PostgreSQL@.  Note that you can use any G-expression or filename in
+place of this record, if you already have a configuration file you'd
+like to use for example.
 
-The optional @var{config} argument specifies the configuration for
-@command{mysqld}, which should be a @code{<mysql-configuration>} object.
-@end deffn
+@lisp
+(service postgresql-service-type
+         (postgresql-configuration
+          (config-file
+           (postgresql-config-file
+            (log-destination "stderr")
+            (hba-file
+             (plain-file "pg_hba.conf"
+                         "
+local	all	all			trust
+host	all	all	127.0.0.1/32 	md5
+host	all	all	::1/128 	md5"))
+            (extra-config
+             '(("session_preload_libraries"     "'auto_explain'")
+               ("random_page_cost"              "2")
+               ("auto_explain.log_min_duration" "'100ms'")
+               ("work_mem"                      "'500MB'")
+               ("logging_collector"             "on")
+               ("log_directory"                 "'/var/log/postgresql'")))))))
+@end lisp
+
+@table @asis
+@item @code{log-destination} (default: @code{"syslog"})
+The logging method to use for PostgreSQL@.  Multiple values are accepted,
+separated by commas.
+
+@item @code{hba-file} (default: @code{%default-postgres-hba})
+Filename or G-expression for the host-based authentication
+configuration.
+
+@item @code{ident-file} (default: @code{%default-postgres-ident})
+Filename or G-expression for the user name mapping configuration.
+
+@item @code{extra-config} (default: @code{'()})
+List of additional keys and values to include in the PostgreSQL config
+file.  Each entry in the list should be a list where the first element
+is the key, and the remaining elements are the values.
+
+@end table
+@end deftp
+
+@subsubheading MariaDB/MySQL
+
+@defvr {Scheme Variable} mysql-service-type
+This is the service type for a MySQL or MariaDB database server.  Its value
+is a @code{mysql-configuration} object that specifies which package to use,
+as well as various settings for the @command{mysqld} daemon.
+@end defvr
 
 @deftp {Data Type} mysql-configuration
-Data type representing the configuration of @var{mysql-service}.
+Data type representing the configuration of @var{mysql-service-type}.
 
 @table @asis
 @item @code{mysql} (default: @var{mariadb})
@@ -17347,11 +19457,30 @@ or @var{mysql}.
 For MySQL, a temporary root password will be displayed at activation time.
 For MariaDB, the root password is empty.
 
+@item @code{bind-address} (default: @code{"127.0.0.1"})
+The IP on which to listen for network connections.  Use @code{"0.0.0.0"}
+to bind to all available network interfaces.
+
 @item @code{port} (default: @code{3306})
 TCP port on which the database server listens for incoming connections.
+
+@item @code{socket} (default: @code{"/run/mysqld/mysqld.sock"})
+Socket file to use for local (non-network) connections.
+
+@item @code{extra-content} (default: @code{""})
+Additional settings for the @file{my.cnf} configuration file.
+
+@item @code{auto-upgrade?} (default: @code{#t})
+Whether to automatically run @command{mysql_upgrade} after starting the
+service.  This is necessary to upgrade the @dfn{system schema} after
+``major'' updates (such as switching from MariaDB 10.4 to 10.5), but can
+be disabled if you would rather do that manually.
+
 @end table
 @end deftp
 
+@subsubheading Memcached
+
 @defvr {Scheme Variable} memcached-service-type
 This is the service type for the @uref{https://memcached.org/,
 Memcached} service, which provides a distributed in memory cache.  The
@@ -17373,7 +19502,7 @@ The Memcached package to use.
 Network interfaces on which to listen.
 
 @item @code{tcp-port} (default: @code{11211})
-Port on which to accept connections on,
+Port on which to accept connections.
 
 @item @code{udp-port} (default: @code{11211})
 Port on which to accept UDP connections on, a value of 0 will disable
@@ -17384,6 +19513,8 @@ Additional command line options to pass to @code{memcached}.
 @end table
 @end deftp
 
+@subsubheading MongoDB
+
 @defvr {Scheme Variable} mongodb-service-type
 This is the service type for @uref{https://www.mongodb.com/, MongoDB}.
 The value for the service type is a @code{mongodb-configuration} object.
@@ -17410,6 +19541,8 @@ MongoDB is configured to use through the configuration file.
 @end table
 @end deftp
 
+@subsubheading Redis
+
 @defvr {Scheme Variable} redis-service-type
 This is the service type for the @uref{https://redis.io/, Redis}
 key/value store, whose value is a @code{redis-configuration} object.
@@ -17731,7 +19864,7 @@ Defaults to @samp{"private"}.
 @end deftypevr
 
 @deftypevr {@code{namespace-configuration} parameter} string separator
-Hierarchy separator to use. You should use the same separator for
+Hierarchy separator to use.  You should use the same separator for
 all namespaces or some clients get confused.  @samp{/} is usually a good
 one.  The default however depends on the underlying mail storage
 format.
@@ -17740,7 +19873,7 @@ Defaults to @samp{""}.
 
 @deftypevr {@code{namespace-configuration} parameter} string prefix
 Prefix required to access this namespace.  This needs to be
-different for all namespaces. For example @samp{Public/}.
+different for all namespaces.  For example @samp{Public/}.
 Defaults to @samp{""}.
 @end deftypevr
 
@@ -17758,7 +19891,7 @@ Defaults to @samp{#f}.
 
 @deftypevr {@code{namespace-configuration} parameter} boolean hidden?
 If namespace is hidden, it's not advertised to clients via NAMESPACE
-extension. You'll most likely also want to set @samp{list? #f}.  This is mostly
+extension.  You'll most likely also want to set @samp{list? #f}.  This is mostly
 useful when converting from another server with different namespaces
 which you want to deprecate but still keep working.  For example you can
 create hidden namespaces with prefixes @samp{~/mail/}, @samp{~%u/mail/}
@@ -17767,7 +19900,7 @@ Defaults to @samp{#f}.
 @end deftypevr
 
 @deftypevr {@code{namespace-configuration} parameter} boolean list?
-Show the mailboxes under this namespace with the LIST command. This
+Show the mailboxes under this namespace with the LIST command.  This
 makes the namespace visible for clients that do not support the NAMESPACE
 extension.  The special @code{children} value lists child mailboxes, but
 hides the namespace prefix.
@@ -18213,7 +20346,7 @@ could allow a user to delete others' mailboxes, or @code{ln -s
 
 @deftypevr {@code{dovecot-configuration} parameter} boolean mail-full-filesystem-access?
 Allow full file system access to clients.  There's no access checks
-other than what the operating system does for the active UID/GID.  It
+other than what the operating system does for the active UID/GID@.  It
 works with both maildir and mboxes, allowing you to prefix mailboxes
 names with e.g.@: @file{/path/} or @file{~user/}.
 Defaults to @samp{#f}.
@@ -18246,14 +20379,14 @@ Defaults to @samp{"optimized"}.
 @end deftypevr
 
 @deftypevr {@code{dovecot-configuration} parameter} boolean mail-nfs-storage?
-Mail storage exists in NFS.  Set this to yes to make Dovecot flush
+Mail storage exists in NFS@.  Set this to yes to make Dovecot flush
 NFS caches whenever needed.  If you're using only a single mail server
 this isn't needed.
 Defaults to @samp{#f}.
 @end deftypevr
 
 @deftypevr {@code{dovecot-configuration} parameter} boolean mail-nfs-index?
-Mail index files also exist in NFS.  Setting this to yes requires
+Mail index files also exist in NFS@.  Setting this to yes requires
 @samp{mmap-disable? #t} and @samp{fsync-disable? #f}.
 Defaults to @samp{#f}.
 @end deftypevr
@@ -18360,9 +20493,9 @@ Defaults to @samp{"30 secs"}.
 @end deftypevr
 
 @deftypevr {@code{dovecot-configuration} parameter} boolean mail-save-crlf?
-Save mails with CR+LF instead of plain LF.  This makes sending those
+Save mails with CR+LF instead of plain LF@.  This makes sending those
 mails take less CPU, especially with sendfile() syscall with Linux and
-FreeBSD.  But it also creates a bit more disk I/O which may just make it
+FreeBSD@.  But it also creates a bit more disk I/O which may just make it
 slower.  Also note that if other software reads the mboxes/maildirs,
 they may handle the extra CRs wrong and cause problems.
 Defaults to @samp{#f}.
@@ -18868,9 +21001,9 @@ Data type representing the configuration of exim.
 Package object of the Exim server.
 
 @item @code{config-file} (default: @code{#f})
-File-like object of the Exim configuration file to use. If its value is
+File-like object of the Exim configuration file to use.  If its value is
 @code{#f} then use the default configuration file from the package
-provided in @code{package}. The resulting configuration file is loaded
+provided in @code{package}.  The resulting configuration file is loaded
 after setting the @code{exim_user} and @code{exim_group} configuration
 variables.
 
@@ -19186,11 +21319,11 @@ specifying how to deliver mail to users on this system.
 
 The configuration for a @code{mail-aliases-service-type} service is an
 association list denoting how to deliver mail that comes to this
-system. Each entry is of the form @code{(alias addresses ...)}, with
+system.  Each entry is of the form @code{(alias addresses ...)}, with
 @code{alias} specifying the local alias and @code{addresses} specifying
 where to deliver this user's mail.
 
-The aliases aren't required to exist as users on the local system. In
+The aliases aren't required to exist as users on the local system.  In
 the above example, there doesn't need to be a @code{postmaster} entry in
 the @code{operating-system}'s @code{user-accounts} in order to deliver
 the @code{postmaster} mail to @code{bob} (which subsequently would
@@ -19226,6 +21359,30 @@ Mailutils Manual}, for details.
 @end table
 @end deftp
 
+@subsubheading Radicale Service
+@cindex CalDAV
+@cindex CardDAV
+
+@deffn {Scheme Variable} radicale-service-type
+This is the type of the @uref{https://radicale.org, Radicale} CalDAV/CardDAV
+server whose value should be a @code{radicale-configuration}.
+@end deffn
+
+@deftp {Data Type} radicale-configuration
+Data type representing the configuration of @command{radicale}.
+
+@table @asis
+@item @code{package} (default: @code{radicale})
+The package that provides @command{radicale}.
+
+@item @code{config-file} (default: @code{%default-radicale-config-file})
+File-like object of the configuration file to use, by default it will listen
+on TCP port 5232 of @code{localhost} and use the @code{htpasswd} file at
+@file{/var/lib/radicale/users} with no (@code{plain}) encryption.
+
+@end table
+@end deftp
+
 @node Messaging Services
 @subsection Messaging Services
 
@@ -19233,7 +21390,8 @@ Mailutils Manual}, for details.
 @cindex jabber
 @cindex XMPP
 The @code{(gnu services messaging)} module provides Guix service
-definitions for messaging services: currently only Prosody is supported.
+definitions for messaging services.  Currently it provides the following
+services:
 
 @subsubheading Prosody Service
 
@@ -19401,7 +21559,7 @@ A list of verification options (these mostly map to OpenSSL's
 @end deftypevr
 
 @deftypevr {@code{ssl-configuration} parameter} maybe-string-list options
-A list of general options relating to SSL/TLS.  These map to OpenSSL's
+A list of general options relating to SSL/TLS@.  These map to OpenSSL's
 @code{set_options()}.  For a full list of options available in LuaSec, see the
 LuaSec source.
 @end deftypevr
@@ -19423,7 +21581,7 @@ can create such a file with:
 @end deftypevr
 
 @deftypevr {@code{ssl-configuration} parameter} maybe-string curve
-Curve for Elliptic curve Diffie-Hellman. Prosody's default is
+Curve for Elliptic curve Diffie-Hellman.  Prosody's default is
 @samp{"secp384r1"}.
 @end deftypevr
 
@@ -19466,7 +21624,7 @@ Defaults to @samp{#f}.
 @deftypevr {@code{prosody-configuration} parameter} string-list s2s-insecure-domains
 Many servers don't support encryption or have invalid or self-signed
 certificates.  You can list domains here that will not be required to
-authenticate using certificates.  They will be authenticated using DNS.  See
+authenticate using certificates.  They will be authenticated using DNS@.  See
 @url{https://prosody.im/doc/s2s#security}.
 Defaults to @samp{()}.
 @end deftypevr
@@ -19830,7 +21988,7 @@ Maximum size in bytes that a user can send in one image message.
 
 @item @code{cert-required?} (default: @code{#f})
 If it is set to @code{#t} clients that use weak password authentication
-will not be accepted. Users must have completed the certificate wizard to join.
+will not be accepted.  Users must have completed the certificate wizard to join.
 
 @item @code{remember-channel?} (default: @code{#f})
 Should murmur remember the last channel each user was in when they disconnected
@@ -19841,7 +21999,7 @@ Should html be allowed in text messages, user comments, and channel descriptions
 
 @item @code{allow-ping?} (default: @code{#f})
 Setting to true exposes the current user count, the maximum user count, and
-the server's maximum bandwidth per client to unauthenticated users. In the
+the server's maximum bandwidth per client to unauthenticated users.  In the
 Mumble client, this information is shown in the Connect dialog.
 
 Disabling this setting will prevent public listing of the server.
@@ -19915,11 +22073,11 @@ Configuration for public registration of a murmur service.
 
 @table @asis
 @item @code{name}
-This is a display name for your server. Not to be confused with the hostname.
+This is a display name for your server.  Not to be confused with the hostname.
 
 @item @code{password}
 A password to identify your registration.
-Subsequent updates will need the same password. Don't lose your password.
+Subsequent updates will need the same password.  Don't lose your password.
 
 @item @code{url}
 This should be a @code{http://} or @code{https://} link to your web
@@ -19966,7 +22124,7 @@ This type has the following parameters:
 
 @table @asis
 @item @code{config-file} (default: @code{(tailon-configuration-file)})
-The configuration file to use for Tailon. This can be set to a
+The configuration file to use for Tailon.  This can be set to a
 @dfn{tailon-configuration-file} record value, or any gexp
 (@pxref{G-Expressions}).
 
@@ -19991,7 +22149,7 @@ This type has the following parameters:
 
 @table @asis
 @item @code{files} (default: @code{(list "/var/log")})
-List of files to display. The list can include strings for a single file
+List of files to display.  The list can include strings for a single file
 or directory, or a list, where the first item is the name of a
 subsection, and the remaining items are the files or directories in that
 subsection.
@@ -20012,24 +22170,24 @@ Allow tailing of not-yet existent files.
 Number of lines to read initially from each file.
 
 @item @code{allowed-commands} (default: @code{(list "tail" "grep" "awk")})
-Commands to allow running. By default, @code{sed} is disabled.
+Commands to allow running.  By default, @code{sed} is disabled.
 
 @item @code{debug?} (default: @code{#f})
 Set @code{debug?} to @code{#t} to show debug messages.
 
 @item @code{wrap-lines} (default: @code{#t})
-Initial line wrapping state in the web interface. Set to @code{#t} to
+Initial line wrapping state in the web interface.  Set to @code{#t} to
 initially wrap lines (the default), or to @code{#f} to initially not
 wrap lines.
 
 @item @code{http-auth} (default: @code{#f})
-HTTP authentication type to use. Set to @code{#f} to disable
-authentication (the default). Supported values are @code{"digest"} or
+HTTP authentication type to use.   Set to @code{#f} to disable
+authentication (the default).  Supported values are @code{"digest"} or
 @code{"basic"}.
 
 @item @code{users} (default: @code{#f})
 If HTTP authentication is enabled (see @code{http-auth}), access will be
-restricted to the credentials provided here. To configure users, use a
+restricted to the credentials provided here.  To configure users, use a
 list of pairs, where the first element of the pair is the username, and
 the 2nd element of the pair is the password.
 
@@ -20079,7 +22237,7 @@ Bind the web interface to the specified port.
 Bind the web interface to the specified address.
 
 @item @code{base} (default: @code{"/"})
-Specify the path of the base URL.  This can be useful if
+Specify the path of the base URL@.  This can be useful if
 @command{darkstat} is accessed via a reverse proxy.
 
 @end table
@@ -20096,13 +22254,10 @@ where monitoring these statistics is desirable.
 @defvar {Scheme variable} prometheus-node-exporter-service-type
 This is the service type for the
 @uref{https://github.com/prometheus/node_exporter/, prometheus-node-exporter}
-service, its value must be a @code{prometheus-node-exporter-configuration}
-record as in this example:
+service, its value must be a @code{prometheus-node-exporter-configuration}.
 
 @lisp
-(service prometheus-node-exporter-service-type
-         (prometheus-node-exporter-configuration
-           (web-listen-address ":9100")))
+(service prometheus-node-exporter-service-type)
 @end lisp
 @end defvar
 
@@ -20116,6 +22271,14 @@ The prometheus-node-exporter package to use.
 @item @code{web-listen-address} (default: @code{":9100"})
 Bind the web interface to the specified address.
 
+@item @code{textfile-directory} (default: @code{"/var/lib/prometheus/node-exporter"})
+This directory can be used to export metrics specific to this machine.
+Files containing metrics in the text format, with the filename ending in
+@code{.prom} should be placed in this directory.
+
+@item @code{extra-options} (default: @code{'()})
+Extra options to pass to the Prometheus node exporter.
+
 @end table
 @end deftp
 
@@ -20291,7 +22454,7 @@ Defaults to @samp{"zabbix"}.
 Unique, case sensitive hostname which is required for active checks and
 must match hostname as configured on the server.
 
-Defaults to @samp{"Zabbix server"}.
+Defaults to @samp{""}.
 
 @end deftypevr
 
@@ -20413,9 +22576,10 @@ Defaults to @samp{""}.
 @end deftypevr
 
 @deftypevr {@code{zabbix-front-end-configuration} parameter} string db-secret-file
-Secret file which will be appended to @file{zabbix.conf.php} file.  This
-file contains credentials for use by Zabbix front-end.  You are expected
-to create it manually.
+Secret file containing the credentials for the Zabbix front-end.  The value
+must be a local file name, not a G-expression.  You are expected to create
+this file manually.  Its contents will be copied into @file{zabbix.conf.php}
+as the value of @code{$DB['PASSWORD']}.
 
 Defaults to @samp{""}.
 
@@ -20637,7 +22801,7 @@ Defaults to @samp{"nslcd"}.
 
 @deftypevr {@code{nslcd-configuration} parameter} log-option log
 This option controls the way logging is done via a list containing
-SCHEME and LEVEL.  The SCHEME argument may either be the symbols
+SCHEME and LEVEL@.  The SCHEME argument may either be the symbols
 @samp{none} or @samp{syslog}, or an absolute file name.  The LEVEL
 argument is optional and specifies the log level.  The log level may be
 one of the following symbols: @samp{crit}, @samp{error}, @samp{warning},
@@ -21099,9 +23263,9 @@ The httpd package to use.
 The pid file used by the shepherd-service.
 
 @item @code{config} (default: @code{(httpd-config-file)})
-The configuration file to use with the httpd service. The default value
+The configuration file to use with the httpd service.  The default value
 is a @code{httpd-config-file} record, but this can also be a different
-G-expression that generates a file, for example a @code{plain-file}. A
+G-expression that generates a file, for example a @code{plain-file}.  A
 file outside of the store can also be specified through a string.
 
 @end table
@@ -21115,7 +23279,7 @@ This data type represents a module for the httpd service.
 The name of the module.
 
 @item @code{file}
-The file for the module. This can be relative to the httpd package being
+The file for the module.  This can be relative to the httpd package being
 used, the absolute location of a file, or a G-expression for a file
 within the store, for example @code{(file-append mod-wsgi
 "/modules/mod_wsgi.so")}.
@@ -21132,7 +23296,7 @@ This data type represents a configuration file for the httpd service.
 
 @table @asis
 @item @code{modules} (default: @code{%default-httpd-modules})
-The modules to load. Additional modules can be added here, or loaded by
+The modules to load.  Additional modules can be added here, or loaded by
 additional configuration.
 
 For example, in order to handle requests for PHP files, you can use Apache’s
@@ -21163,7 +23327,7 @@ For example, in order to handle requests for PHP files, you can use Apache’s
 
 @item @code{server-root} (default: @code{httpd})
 The @code{ServerRoot} in the configuration file, defaults to the httpd
-package. Directives including @code{Include} and @code{LoadModule} are
+package.  Directives including @code{Include} and @code{LoadModule} are
 taken as relative to the server root.
 
 @item @code{server-name} (default: @code{#f})
@@ -21172,7 +23336,7 @@ request scheme, hostname and port that the server uses to identify
 itself.
 
 This doesn't need to be set in the server config, and can be specified
-in virtual hosts. The default is @code{#f} to not specify a
+in virtual hosts.  The default is @code{#f} to not specify a
 @code{ServerName}.
 
 @item @code{document-root} (default: @code{"/srv/http"})
@@ -21180,12 +23344,12 @@ The @code{DocumentRoot} from which files will be served.
 
 @item @code{listen} (default: @code{'("80")})
 The list of values for the @code{Listen} directives in the config
-file. The value should be a list of strings, when each string can
+file.  The value should be a list of strings, when each string can
 specify the port number to listen on, and optionally the IP address and
 protocol to use.
 
 @item @code{pid-file} (default: @code{"/var/run/httpd"})
-The @code{PidFile} to use. This should match the @code{pid-file} set in
+The @code{PidFile} to use.  This should match the @code{pid-file} set in
 the @code{httpd-configuration} so that the Shepherd service is
 configured correctly.
 
@@ -21273,7 +23437,7 @@ configuration.  In our case, startup error messages can be found in
 with the @var{log-directory} configuration option.
 
 @deffn {Data Type} nginx-configuration
-This data type represents the configuration for NGinx. Some
+This data type represents the configuration for NGinx.  Some
 configuration can be done through this and the other provided record
 types, or alternatively, a config file can be provided.
 
@@ -21363,7 +23527,29 @@ names of loadable modules, as in this example:
 (modules
  (list
   (file-append nginx-accept-language-module "\
-/etc/nginx/modules/ngx_http_accept_language_module.so")))
+/etc/nginx/modules/ngx_http_accept_language_module.so")
+  (file-append nginx-lua-module "\
+/etc/nginx/modules/ngx_http_lua_module.so")))
+@end lisp
+
+@item @code{lua-package-path} (default: @code{'()})
+List of nginx lua packages to load.  This should be a list of package
+names of loadable lua modules, as in this example:
+
+@lisp
+(lua-package-path (list lua-resty-core
+                        lua-resty-lrucache
+                        lua-resty-signal
+                        lua-tablepool
+                        lua-resty-shell))
+@end lisp
+
+@item @code{lua-package-cpath} (default: @code{'()})
+List of nginx lua C packages to load.  This should be a list of package
+names of loadable lua C modules, as in this example:
+
+@lisp
+(lua-package-cpath (list lua-resty-signal))
 @end lisp
 
 @item @code{global-directives} (default: @code{'((events . ()))})
@@ -21465,7 +23651,7 @@ URI which this location block matches.
 
 @anchor{nginx-location-configuration body}
 @item @code{body}
-Body of the location block, specified as a list of strings. This can contain
+Body of the location block, specified as a list of strings.  This can contain
 many
 configuration directives.  For example, to pass requests to a upstream
 server group defined using an @code{nginx-upstream-configuration} block,
@@ -21631,8 +23817,8 @@ The domain to use for Patchwork, this is used in the HTTPD service virtual
 host.
 
 @item @code{settings-module}
-The settings module to use for Patchwork. As a Django application, Patchwork
-is configured with a Python module containing the settings. This can either be
+The settings module to use for Patchwork.  As a Django application, Patchwork
+is configured with a Python module containing the settings.  This can either be
 an instance of the @code{<patchwork-settings-module>} record, any other record
 that represents the settings in the store, or a directory outside of the
 store.
@@ -21642,7 +23828,7 @@ The path under which the HTTPD service should serve the static files.
 
 @item @code{getmail-retriever-config}
 The getmail-retriever-configuration record value to use with
-Patchwork. Getmail will be configured with this value, the messages will be
+Patchwork.  Getmail will be configured with this value, the messages will be
 delivered to Patchwork.
 
 @end table
@@ -21669,7 +23855,7 @@ value by the patchwork-setup shepherd service.
 This setting relates to Django.
 
 @item @code{allowed-hosts}
-A list of valid hosts for this Patchwork service. This should at least include
+A list of valid hosts for this Patchwork service.  This should at least include
 the domain specified in the @code{<patchwork-configuration>} record.
 
 This is a Django setting.
@@ -21680,7 +23866,7 @@ The email address from which Patchwork should send email by default.
 This is a Patchwork setting.
 
 @item @code{static-url} (default: @code{#f})
-The URL to use when serving static assets. It can be part of a URL, or a full
+The URL to use when serving static assets.  It can be part of a URL, or a full
 URL, but must end in a @code{/}.
 
 If the default value is used, the @code{static-path} value from the
@@ -21909,6 +24095,31 @@ Can be set to @code{#f} to disable logging.
 @item @code{file} (default @code{#f})
 An optional override of the whole configuration.
 You can use the @code{mixed-text-file} function or an absolute filepath for it.
+@item @code{php-ini-file} (default @code{#f})
+An optional override of the default php settings.
+It may be any ``file-like'' object (@pxref{G-Expressions, file-like objects}).
+You can use the @code{mixed-text-file} function or an absolute filepath for it.
+
+For local development it is useful to set a higher timeout and memory
+limit for spawned php processes.  This be accomplished with the
+following operating system configuration snippet:
+@lisp
+(define %local-php-ini
+  (plain-file "php.ini"
+              "memory_limit = 2G
+max_execution_time = 1800"))
+
+(operating-system
+  ;; @dots{}
+  (services (cons (service php-fpm-service-type
+                           (php-fpm-configuration
+                            (php-ini-file %local-php-ini)))
+                  %base-services)))
+@end lisp
+
+Consult the @url{https://www.php.net/manual/en/ini.core.php,core php.ini
+directives} for comprehensive documentation on the acceptable
+@file{php.ini} directives.
 @end table
 @end deftp
 
@@ -22076,6 +24287,40 @@ Thus, make sure to add @code{nss-certs} or another certificate package to the
 more information on X.509 certificates.
 @end quotation
 
+@subsubheading gmnisrv
+
+@cindex gmnisrv
+The @uref{https://git.sr.ht/~sircmpwn/gmnisrv, gmnisrv} program is a
+simple @uref{https://gemini.circumlunar.space/, Gemini} protocol server.
+
+@deffn {Scheme Variable} gmnisrv-service-type
+This is the type of the gmnisrv service, whose value should be a
+@code{gmnisrv-configuration} object, as in this example:
+
+@lisp
+(service gmnisrv-service-type
+         (gmnisrv-configuration
+           (config-file (local-file "./my-gmnisrv.ini"))))
+@end lisp
+@end deffn
+
+@deftp {Data Type} gmnisrv-configuration
+Data type representing the configuration of gmnisrv.
+
+@table @asis
+@item @code{package} (default: @var{gmnisrv})
+Package object of the gmnisrv server.
+
+@item @code{config-file} (default: @code{%default-gmnisrv-config-file})
+File-like object of the gmnisrv configuration file to use.  The default
+configuration listens on port 1965 and serves files from
+@file{/srv/gemini}.  Certificates are stored in
+@file{/var/lib/gemini/certs}.  For more information, run @command{man
+gmnisrv} and @command{man gmnisrv.ini}.
+
+@end table
+@end deftp
+
 @node Certificate Services
 @subsection Certificate Services
 
@@ -22096,7 +24341,7 @@ first securely generates a key on the server.  It then makes a request
 to the Let's Encrypt certificate authority (CA) to sign the key.  The CA
 checks that the request originates from the host in question by using a
 challenge-response protocol, requiring the server to provide its
-response over HTTP.  If that protocol completes successfully, the CA
+response over HTTP@.  If that protocol completes successfully, the CA
 signs the key, resulting in a certificate.  That certificate is valid
 for a limited period of time, and therefore to continue to provide TLS
 services, the server needs to periodically ask the CA to renew its
@@ -22162,9 +24407,10 @@ A list of @code{certificates-configuration}s for which to generate
 certificates and request signatures.  Each certificate has a @code{name}
 and several @code{domains}.
 
-@item @code{email}
-Mandatory email used for registration, recovery contact, and important
-account notifications.
+@item @code{email} (default: @code{#f})
+Optional email address used for registration and recovery contact.
+Setting this is encouraged as it allows you to receive important
+notifications about the account and issued certificates.
 
 @item @code{server} (default: @code{#f})
 Optional URL of ACME server.  Setting this overrides certbot's default,
@@ -22320,7 +24566,7 @@ This type has the following parameters:
 
 @table @asis
 @item @code{id} (default: @code{""})
-An identifier for other configuration fields to refer to this key. IDs must
+An identifier for other configuration fields to refer to this key.  IDs must
 be unique and must not be empty.
 
 @item @code{algorithm} (default: @code{#f})
@@ -22340,7 +24586,7 @@ This type has the following parameters:
 
 @table @asis
 @item @code{id} (default: @code{""})
-An identifier for ether configuration fields to refer to this key. IDs must be
+An identifier for other configuration fields to refer to this key.  IDs must be
 unique and must not be empty.
 
 @item @code{address} (default: @code{'()})
@@ -22354,7 +24600,7 @@ must match a key ID defined in a @code{knot-key-configuration}.  No key means
 that a key is not require to match that ACL.
 
 @item @code{action} (default: @code{'()})
-An ordered list of actions that are permitted or forbidden by this ACL.  Possible
+An ordered list of actions that are permitted or forbidden by this ACL@.  Possible
 values are lists of zero or more elements from @code{'transfer}, @code{'notify}
 and @code{'update}.
 
@@ -22455,7 +24701,7 @@ This type has the following parameters:
 
 @table @asis
 @item @code{id} (default: @code{""})
-An identifier for other configuration fields to refer to this remote. IDs must
+An identifier for other configuration fields to refer to this remote.  IDs must
 be unique and must not be empty.
 
 @item @code{address} (default: @code{'()})
@@ -22465,7 +24711,7 @@ An optional port can be given with the @@ separator.  For instance:
 
 @item @code{via} (default: @code{'()})
 An ordered list of source IP addresses.  An empty list will have Knot choose
-an appropriate source IP.  An optional port can be given with the @@ separator.
+an appropriate source IP@.  An optional port can be given with the @@ separator.
 The default is to choose at random.
 
 @item @code{key} (default: @code{#f})
@@ -22534,11 +24780,11 @@ When @code{#t}, use the Single-Type Signing Scheme.
 An algorithm of signing keys and issued signatures.
 
 @item @code{ksk-size} (default: @code{256})
-The length of the KSK.  Note that this value is correct for the default
+The length of the KSK@.  Note that this value is correct for the default
 algorithm, but would be unsecure for other algorithms.
 
 @item @code{zsk-size} (default: @code{256})
-The length of the ZSK.  Note that this value is correct for the default
+The length of the ZSK@.  Note that this value is correct for the default
 algorithm, but would be unsecure for other algorithms.
 
 @item @code{dnskey-ttl} (default: @code{'default})
@@ -22725,7 +24971,7 @@ The list of knot-zone-configuration used by this configuration.
 @subsubheading Knot Resolver Service
 
 @deffn {Scheme Variable} knot-resolver-service-type
-This this the type of the knot resolver service, whose value should be
+This is the type of the knot resolver service, whose value should be
 an @code{knot-resolver-configuration} object as in this example:
 
 @lisp
@@ -22830,6 +25076,61 @@ disables caching.
 @item @code{negative-cache?} (default: @code{#t})
 When false, disable negative caching.
 
+@item @code{tftp-enable?} (default: @code{#f})
+Whether to enable the built-in TFTP server.
+
+@item @code{tftp-no-fail?} (default: @code{#f})
+If true, does not fail dnsmasq if the TFTP server could not start up.
+
+@item @code{tftp-single-port?} (default: @code{#f})
+Whether to use only one single port for TFTP.
+
+@item @code{tftp-secure?} (default: @code{#f})
+If true, only files owned by the user running the dnsmasq process are accessible.
+
+If dnsmasq is being run as root, different rules apply:
+@code{tftp-secure?} has no effect, but only files which have the
+world-readable bit set are accessible.
+
+@item @code{tftp-max} (default: @code{#f})
+If set, sets the maximal number of concurrent connections allowed.
+
+@item @code{tftp-mtu} (default: @code{#f})
+If set, sets the MTU for TFTP packets to that value.
+
+@item @code{tftp-no-blocksize?} (default: @code{#f})
+If true, stops the TFTP server from negotiating the blocksize with a client.
+
+@item @code{tftp-lowercase?} (default: @code{#f})
+Whether to convert all filenames in TFTP requests to lowercase.
+
+@item @code{tftp-port-range} (default: @code{#f})
+If set, fixes the dynamical ports (one per client) to the given range
+(@code{"<start>,<end>"}).
+
+@item @code{tftp-root} (default: @code{/var/empty,lo})
+Look for files to transfer using TFTP relative to the given directory.
+When this is set, TFTP paths which include @samp{..} are rejected, to stop clients
+getting outside the specified root.  Absolute paths (starting with @samp{/}) are
+allowed, but they must be within the TFTP-root.  If the optional interface
+argument is given, the directory is only used for TFTP requests via that
+interface.
+
+@item @code{tftp-unique-root} (default: @code{#f})
+If set, add the IP or hardware address of the TFTP client as a path component
+on the end of the TFTP-root.  Only valid if a TFTP root is set and the
+directory exists.  Defaults to adding IP address (in standard dotted-quad
+format).
+
+For instance, if @option{--tftp-root} is @samp{/tftp} and client
+@samp{1.2.3.4} requests file @file{myfile} then the effective path will
+be @file{/tftp/1.2.3.4/myfile} if @file{/tftp/1.2.3.4} exists or
+@file{/tftp/myfile} otherwise.  When @samp{=mac} is specified it will
+append the MAC address instead, using lowercase zero padded digits
+separated by dashes, e.g.: @samp{01-02-03-04-aa-bb}.  Note that
+resolving MAC addresses is only possible if the client is in the local
+network or obtained a DHCP lease from dnsmasq.
+
 @end table
 @end deftp
 
@@ -22949,7 +25250,7 @@ Defaults to @samp{()}.
 The @code{(gnu services vpn)} module provides services related to
 @dfn{virtual private networks} (VPNs).  It provides a @emph{client} service for
 your machine to connect to a VPN, and a @emph{server} service for your machine
-to host a VPN.  Both services use @uref{https://openvpn.net/, OpenVPN}.
+to host a VPN@.  Both services use @uref{https://openvpn.net/, OpenVPN}.
 
 @deffn {Scheme Procedure} openvpn-client-service @
        [#:config (openvpn-client-configuration)]
@@ -22996,14 +25297,18 @@ Defaults to @samp{tun}.
 
 @end deftypevr
 
-@deftypevr {@code{openvpn-client-configuration} parameter} string ca
+If you do not have some of these files (eg.@: you use a username and
+password), you can disable any of the following three fields by setting
+it to @code{'disabled}.
+
+@deftypevr {@code{openvpn-client-configuration} parameter} maybe-string ca
 The certificate authority to check connections against.
 
 Defaults to @samp{"/etc/openvpn/ca.crt"}.
 
 @end deftypevr
 
-@deftypevr {@code{openvpn-client-configuration} parameter} string cert
+@deftypevr {@code{openvpn-client-configuration} parameter} maybe-string cert
 The certificate of the machine the daemon is running on.  It should be
 signed by the authority given in @code{ca}.
 
@@ -23011,7 +25316,7 @@ Defaults to @samp{"/etc/openvpn/client.crt"}.
 
 @end deftypevr
 
-@deftypevr {@code{openvpn-client-configuration} parameter} string key
+@deftypevr {@code{openvpn-client-configuration} parameter} maybe-string key
 The key of the machine the daemon is running on.  It must be the key whose
 certificate is @code{cert}.
 
@@ -23147,14 +25452,18 @@ Defaults to @samp{tun}.
 
 @end deftypevr
 
-@deftypevr {@code{openvpn-server-configuration} parameter} string ca
+If you do not have some of these files (eg.@: you use a username and
+password), you can disable any of the following three fields by setting
+it to @code{'disabled}.
+
+@deftypevr {@code{openvpn-server-configuration} parameter} maybe-string ca
 The certificate authority to check connections against.
 
 Defaults to @samp{"/etc/openvpn/ca.crt"}.
 
 @end deftypevr
 
-@deftypevr {@code{openvpn-server-configuration} parameter} string cert
+@deftypevr {@code{openvpn-server-configuration} parameter} maybe-string cert
 The certificate of the machine the daemon is running on.  It should be
 signed by the authority given in @code{ca}.
 
@@ -23162,7 +25471,7 @@ Defaults to @samp{"/etc/openvpn/client.crt"}.
 
 @end deftypevr
 
-@deftypevr {@code{openvpn-server-configuration} parameter} string key
+@deftypevr {@code{openvpn-server-configuration} parameter} maybe-string key
 The key of the machine the daemon is running on.  It must be the key whose
 certificate is @code{cert}.
 
@@ -23585,6 +25894,14 @@ Location of the log file.
 @item @code{web-log-file} (default: @code{"/var/log/cuirass-web.log"})
 Location of the log file used by the web interface.
 
+@item @code{queries-log-file} (default: @code{#f})
+Location of the SQL queries log file.  By default, SQL queries logging is
+disabled.
+
+@item @code{web-queries-log-file} (default: @code{#f})
+Location of the web SQL queries log file.  By default, web SQL queries
+logging is disabled.
+
 @item @code{cache-directory} (default: @code{"/var/cache/cuirass"})
 Location of the repository cache.
 
@@ -23598,6 +25915,9 @@ Owner's group of the @code{cuirass} process.
 Number of seconds between the poll of the repositories followed by the
 Cuirass jobs.
 
+@item @code{queue-size} (default: @code{1})
+Size of the database writer queue.
+
 @item @code{database} (default: @code{"/var/lib/cuirass/cuirass.db"})
 Location of sqlite database which contains the build results and previously
 added specifications.
@@ -23852,7 +26172,7 @@ Defaults to @samp{disabled}.
 @end deftypevr
 
 @deftypevr {@code{tlp-configuration} parameter} string energy-perf-policy-on-ac
-Set CPU performance versus energy saving policy on AC.  Alternatives are
+Set CPU performance versus energy saving policy on AC@.  Alternatives are
 performance, normal, powersave.
 
 Defaults to @samp{"performance"}.
@@ -24259,7 +26579,7 @@ is only useful for output plugins that can receive tags, for example the
 
 @item @code{always-on?} (default: @code{#f})
 If set to @code{#t}, then MPD attempts to keep this audio output always
-open. This may be useful for streaming servers, when you don’t want to
+open.  This may be useful for streaming servers, when you don’t want to
 disconnect all listeners even when playback is accidentally stopped.
 
 @item @code{mixer-type}
@@ -24269,7 +26589,7 @@ mixer, the @code{null} mixer (allows setting the volume, but with no
 effect; this can be used as a trick to implement an external mixer
 External Mixer) or no mixer (@code{none}).
 
-@item @code{extra-options} (default: @code{'()"})
+@item @code{extra-options} (default: @code{'()})
 An association list of option symbols to string values to be appended to
 the audio output configuration.
 
@@ -24294,15 +26614,16 @@ an HTTP audio streaming output.
 
 
 @node Virtualization Services
-@subsection Virtualization services
+@subsection Virtualization Services
 
 The @code{(gnu services virtualization)} module provides services for
 the libvirt and virtlog daemons, as well as other virtualization-related
 services.
 
 @subsubheading Libvirt daemon
+
 @code{libvirtd} is the server side daemon component of the libvirt
-virtualization management system. This daemon runs on host servers
+virtualization management system.  This daemon runs on host servers
 and performs required management tasks for virtualized guests.
 
 @deffn {Scheme Variable} libvirt-service-type
@@ -24327,7 +26648,7 @@ Libvirt package.
 
 @deftypevr {@code{libvirt-configuration} parameter} boolean listen-tls?
 Flag listening for secure TLS connections on the public TCP/IP port.
-must set @code{listen} for this to have any effect.
+You must set @code{listen} for this to have any effect.
 
 It is necessary to setup a CA and issue server certificates before using
 this capability.
@@ -24337,28 +26658,28 @@ Defaults to @samp{#t}.
 @end deftypevr
 
 @deftypevr {@code{libvirt-configuration} parameter} boolean listen-tcp?
-Listen for unencrypted TCP connections on the public TCP/IP port.  must
+Listen for unencrypted TCP connections on the public TCP/IP port.  You must
 set @code{listen} for this to have any effect.
 
 Using the TCP socket requires SASL authentication by default.  Only SASL
 mechanisms which support data encryption are allowed.  This is
-DIGEST_MD5 and GSSAPI (Kerberos5)
+DIGEST_MD5 and GSSAPI (Kerberos5).
 
 Defaults to @samp{#f}.
 
 @end deftypevr
 
 @deftypevr {@code{libvirt-configuration} parameter} string tls-port
-Port for accepting secure TLS connections This can be a port number, or
-service name
+Port for accepting secure TLS connections.   This can be a port number,
+or service name.
 
 Defaults to @samp{"16514"}.
 
 @end deftypevr
 
 @deftypevr {@code{libvirt-configuration} parameter} string tcp-port
-Port for accepting insecure TCP connections This can be a port number,
-or service name
+Port for accepting insecure TCP connections.  This can be a port number,
+or service name.
 
 Defaults to @samp{"16509"}.
 
@@ -24670,7 +26991,7 @@ Defaults to @samp{3}.
 Logging filters.
 
 A filter allows to select a different logging level for a given category
-of logs The format for a filter is one of:
+of logs.  The format for a filter is one of:
 
 @itemize @bullet
 @item
@@ -24784,7 +27105,7 @@ Defaults to @samp{#f}.
 @end deftypevr
 
 @deftypevr {@code{libvirt-configuration} parameter} optional-string host-uuid
-Host UUID.  UUID must not have all digits be the same.
+Host UUID@.  UUID must not have all digits be the same.
 
 Defaults to @samp{""}.
 
@@ -24867,9 +27188,9 @@ The virtlogd service is a server side daemon component of libvirt that is
 used to manage logs from virtual machine consoles.
 
 This daemon is not used directly by libvirt client applications, rather it
-is called on their behalf by @code{libvirtd}. By maintaining the logs in a
+is called on their behalf by @code{libvirtd}.  By maintaining the logs in a
 standalone daemon, the main @code{libvirtd} daemon can be restarted without
-risk of losing logs. The @code{virtlogd} daemon has the ability to re-exec()
+risk of losing logs.  The @code{virtlogd} daemon has the ability to re-exec()
 itself upon receiving @code{SIGUSR1}, to allow live upgrades without downtime.
 
 @deffn {Scheme Variable} virtlog-service-type
@@ -25002,6 +27323,7 @@ Defaults to @samp{3}
 
 @end deftypevr
 
+@anchor{transparent-emulation-qemu}
 @subsubheading Transparent Emulation with QEMU
 
 @cindex emulation
@@ -25011,6 +27333,8 @@ emulation of program binaries built for different architectures---e.g.,
 it allows you to transparently execute an ARMv7 program on an x86_64
 machine.  It achieves this by combining the @uref{https://www.qemu.org,
 QEMU} emulator and the @code{binfmt_misc} feature of the kernel Linux.
+This feature only allows you to emulate GNU/Linux on a different
+architecture, but see below for GNU/Hurd support.
 
 @defvr {Scheme Variable} qemu-binfmt-service-type
 This is the type of the QEMU/binfmt service for transparent emulation.
@@ -25038,7 +27362,7 @@ This is the configuration for the @code{qemu-binfmt} service.
 The list of emulated QEMU platforms.  Each item must be a @dfn{platform
 object} as returned by @code{lookup-qemu-platforms} (see below).
 
-@item @code{guix-support?} (default: @code{#f})
+@item @code{guix-support?} (default: @code{#t})
 When it is true, QEMU and all its dependencies are added to the build
 environment of @command{guix-daemon} (@pxref{Invoking guix-daemon,
 @option{--chroot-directory} option}).  This allows the @code{binfmt_misc}
@@ -25063,10 +27387,14 @@ guix build -s armhf-linux inkscape
 
 @noindent
 and it will build Inkscape for ARMv7 @emph{as if it were a native
-build}, transparently using QEMU to emulate the ARMv7 CPU.  Pretty handy
+build}, transparently using QEMU to emulate the ARMv7 CPU@.  Pretty handy
 if you'd like to test a package build for an architecture you don't have
 access to!
 
+When @code{guix-support?} is set to @code{#f}, programs for other
+architectures can still be executed transparently, but invoking commands
+like @command{guix build -s armhf-linux @dots{}} will fail.
+
 @item @code{qemu} (default: @code{qemu})
 The QEMU package to use.
 @end table
@@ -25092,18 +27420,44 @@ Return the name of @var{platform}---a string such as @code{"arm"}.
 
 @cindex @code{hurd}
 @cindex the Hurd
+@cindex childhurd
 
 Service @code{hurd-vm} provides support for running GNU/Hurd in a
-virtual machine (VM), a so-called ``Childhurd''.  The virtual machine is
-a Shepherd service that can be referred to by the names @code{hurd-vm}
-and @code{childhurd} and be controlled with commands such as:
+virtual machine (VM), a so-called @dfn{childhurd}.  This service is meant
+to be used on GNU/Linux and the given GNU/Hurd operating system
+configuration is cross-compiled.  The virtual machine is a Shepherd
+service that can be referred to by the names @code{hurd-vm} and
+@code{childhurd} and be controlled with commands such as:
 
 @example
 herd start hurd-vm
 herd stop childhurd
 @end example
 
-The given GNU/Hurd operating system configuration is cross-compiled.
+When the service is running, you can view its console by connecting to
+it with a VNC client, for example with:
+
+@example
+guix environment --ad-hoc tigervnc-client -- \
+         vncviewer localhost:5900
+@end example
+
+The default configuration (see @code{hurd-vm-configuration} below)
+spawns a secure shell (SSH) server in your GNU/Hurd system, which QEMU
+(the virtual machine emulator) redirects to port 10222 on the host.
+Thus, you can connect over SSH to the childhurd with:
+
+@example
+ssh root@@localhost -p 10022
+@end example
+
+The childhurd is volatile and stateless: it starts with a fresh root
+file system every time you restart it.  By default though, all the files
+under @file{/etc/childhurd} on the host are copied as is to the root
+file system of the childhurd when it boots.  This allows you to
+initialize ``secrets'' inside the VM: SSH host keys, authorized
+substitute keys, and so on---see the explanation of @code{secret-root}
+below.
 
 @defvr {Scheme Variable} hurd-vm-service-type
 This is the type of the Hurd in a Virtual Machine service.  Its value
@@ -25164,15 +27518,68 @@ By default, it produces
 @lisp
 '("--device" "rtl8139,netdev=net0"
   "--netdev" "user,id=net0\
-              ,hostfwd=tcp:127.0.0.1:<ssh-port>-:2222\
-              ,hostfwd=tcp:127.0.0.1:<vnc-port>-:5900")
+              ,hostfwd=tcp:127.0.0.1:@var{secrets-port}-:1004\
+              ,hostfwd=tcp:127.0.0.1:@var{ssh-port}-:2222\
+              ,hostfwd=tcp:127.0.0.1:@var{vnc-port}-:5900")
 @end lisp
-with forwarded ports
+
+with forwarded ports:
+
+@example
+@var{secrets-port}: @code{(+ 11004 (* 1000 @var{ID}))}
+@var{ssh-port}: @code{(+ 10022 (* 1000 @var{ID}))}
+@var{vnc-port}: @code{(+ 15900 (* 1000 @var{ID}))}
+@end example
+
+@item @code{secret-root} (default: @file{/etc/childhurd})
+The root directory with out-of-band secrets to be installed into the
+childhurd once it runs.  Childhurds are volatile which means that on
+every startup, secrets such as the SSH host keys and Guix signing key
+are recreated.
+
+If the @file{/etc/childhurd} directory does not exist, the
+@code{secret-service} running in the Childhurd will be sent an empty
+list of secrets.
+
+By default, the service automatically populates @file{/etc/childhurd}
+with the following non-volatile secrets, unless they already exist:
+
 @example
-<ssh-port>: @code{(+ 10022 (* 1000 @var{ID}))}
-<vnc-port>: @code{(+ 15900 (* 1000 @var{ID}))}
+/etc/childhurd/etc/guix/acl
+/etc/childhurd/etc/guix/signing-key.pub
+/etc/childhurd/etc/guix/signing-key.sec
+/etc/childhurd/etc/ssh/ssh_host_ed25519_key
+/etc/childhurd/etc/ssh/ssh_host_ecdsa_key
+/etc/childhurd/etc/ssh/ssh_host_ed25519_key.pub
+/etc/childhurd/etc/ssh/ssh_host_ecdsa_key.pub
 @end example
 
+These files are automatically sent to the guest Hurd VM when it boots,
+including permissions.
+
+@cindex childhurd, offloading
+@cindex Hurd, offloading
+Having these files in place means that only a couple of things are
+missing to allow the host to offload @code{i586-gnu} builds to the
+childhurd:
+
+@enumerate
+@item
+Authorizing the childhurd's key on the host so that the host accepts
+build results coming from the childhurd, which can be done like so:
+
+@example
+guix archive --authorize < \
+  /etc/childhurd/etc/guix/signing-key.pub
+@end example
+
+@item
+Adding the childhurd to @file{/etc/guix/machines.scm} (@pxref{Daemon
+Offload Setup}).
+@end enumerate
+
+We're working towards making that happen automatically---get in touch
+with us at @email{guix-devel@@gnu.org} to discuss it!
 @end table
 @end deftp
 
@@ -25185,7 +27592,7 @@ the @code{--snapshot} flag using something along these lines:
 (service hurd-vm-service-type
          (hurd-vm-configuration
           (image   (const "/out/of/store/writable/hurd.img"))
-          (options '("--hda"))))
+          (options '())))
 @end lisp
 
 @subsubheading Ganeti
@@ -25604,7 +28011,7 @@ When true, the daemon performs additional logging for debugging purposes.
 @defvr {Scheme Variable} ganeti-luxid-service-type
 @command{ganeti-luxid} is a daemon used to answer queries related to the
 configuration and the current live state of a Ganeti cluster.  Additionally,
-it is the authorative daemon for the Ganeti job queue.   Jobs can be
+it is the authoritative daemon for the Ganeti job queue.   Jobs can be
 submitted via this daemon and it schedules and starts them.
 
 It takes a @code{ganeti-luxid-configuration} object.
@@ -25764,7 +28171,7 @@ When true, the daemon performs additional logging for debugging purposes.
 @defvr {Scheme Variable} ganeti-watcher-service-type
 @command{ganeti-watcher} is a script designed to run periodically and ensure
 the health of a cluster.  It will automatically restart instances that have
-stopped without Ganetis consent, and repairs DRBD links in case a node has
+stopped without Ganeti's consent, and repairs DRBD links in case a node has
 rebooted.  It also archives old cluster jobs and restarts Ganeti daemons
 that are not running.  If the cluster parameter @code{ensure_node_health}
 is set, the watcher will also shutdown instances and DRBD devices if the
@@ -25917,7 +28324,7 @@ over HTTP.
 @deftp {Data Type} git-http-configuration
 Data type representing the configuration for a future
 @code{git-http-service-type}; can currently be used to configure Nginx
-trough @code{git-http-nginx-location-configuration}.
+through @code{git-http-nginx-location-configuration}.
 
 @table @asis
 @item @code{package} (default: @var{git})
@@ -25974,7 +28381,7 @@ serve the default @file{/srv/git} over HTTPS might be:
 This example assumes that you are using Let's Encrypt to get your TLS
 certificate.  @xref{Certificate Services}.  The default @code{certbot}
 service will redirect all HTTP traffic on @code{git.my-host.org} to
-HTTPS.  You will also need to add an @code{fcgiwrap} proxy to your
+HTTPS@.  You will also need to add an @code{fcgiwrap} proxy to your
 system services.  @xref{Web Services}.
 @end deffn
 
@@ -27007,12 +29414,12 @@ This controls the permissions Gitolite sets on the repositories and their
 contents.
 
 A value like @code{#o0027} will give read access to the group used by Gitolite
-(by default: @code{git}). This is necessary when using Gitolite with software
+(by default: @code{git}).  This is necessary when using Gitolite with software
 like cgit or gitweb.
 
 @item @code{git-config-keys} (default: @code{""})
-Gitolite allows you to set git config values using the @samp{config} keyword. This
-setting allows control over the config keys to accept.
+Gitolite allows you to set git config values using the @samp{config}
+keyword.  This setting allows control over the config keys to accept.
 
 @item @code{roles} (default: @code{'(("READERS" . 1) ("WRITERS" . ))})
 Set the role names allowed to be used by users running the perms command.
@@ -27079,8 +29486,8 @@ The configuration rules that will be used to generate
 @file{/etc/security/pam_mount.conf.xml}.
 
 The configuration rules are SXML elements (@pxref{SXML,,, guile, GNU
-Guile Reference Manual}), and the the default ones don't mount anything
-for anyone at login:
+Guile Reference Manual}), and the default ones don't mount anything for
+anyone at login:
 
 @lisp
 `((debug (@@ (enable "0")))
@@ -27142,6 +29549,168 @@ The complete list of possible options can be found in the man page for
 @node Guix Services
 @subsection Guix Services
 
+@subsubheading Guix Build Coordinator
+The @uref{https://git.cbaines.net/guix/build-coordinator/,Guix Build
+Coordinator} aids in distributing derivation builds among machines
+running an @dfn{agent}.  The build daemon is still used to build the
+derivations, but the Guix Build Coordinator manages allocating builds
+and working with the results.
+
+@quotation Note
+This service is considered experimental.  Configuration options may be
+changed in a backwards-incompatible manner, and not all features have
+been thorougly tested.
+@end quotation
+
+The Guix Build Coordinator consists of one @dfn{coordinator}, and one or
+more connected @dfn{agent} processes.  The coordinator process handles
+clients submitting builds, and allocating builds to agents.  The agent
+processes talk to a build daemon to actually perform the builds, then
+send the results back to the coordinator.
+
+There is a script to run the coordinator component of the Guix Build
+Coordinator, but the Guix service uses a custom Guile script instead, to
+provide better integration with G-expressions used in the configuration.
+
+@defvar {Scheme Variable} guix-build-coordinator-service-type
+Service type for the Guix Build Coordinator.  Its value must be a
+@code{guix-build-coordinator-configuration} object.
+@end defvar
+
+@deftp {Data Type} guix-build-coordinator-configuration
+Data type representing the configuration of the Guix Build Coordinator.
+
+@table @asis
+@item @code{package} (default: @code{guix-build-coordinator})
+The Guix Build Coordinator package to use.
+
+@item @code{user} (default: @code{"guix-build-coordinator"})
+The system user to run the service as.
+
+@item @code{group} (default: @code{"guix-build-coordinator"})
+The system group to run the service as.
+
+@item @code{database-uri-string} (default: @code{"sqlite:///var/lib/guix-build-coordinator/guix_build_coordinator.db"})
+The URI to use for the database.
+
+@item @code{agent-communication-uri} (default: @code{"http://0.0.0.0:8745"})
+The URI describing how to listen to requests from agent processes.
+
+@item @code{client-communication-uri} (default: @code{"http://127.0.0.1:8746"})
+The URI describing how to listen to requests from clients.  The client
+API allows submitting builds and currently isn't authenticated, so take
+care when configuring this value.
+
+@item @code{allocation-strategy} (default: @code{#~basic-build-allocation-strategy})
+A G-expression for the allocation strategy to be used.  This is a
+procedure that takes the datastore as an argument and populates the
+allocation plan in the database.
+
+@item @code{hooks} (default: @var{'()})
+An association list of hooks.  These provide a way to execute arbitrary
+code upon certain events, like a build result being processed.
+
+@item @code{guile} (default: @code{guile-3.0-latest})
+The Guile package with which to run the Guix Build Coordinator.
+
+@end table
+@end deftp
+
+@defvar {Scheme Variable} guix-build-coordinator-agent-service-type
+Service type for a Guix Build Coordinator agent.  Its value must be a
+@code{guix-build-coordinator-agent-configuration} object.
+@end defvar
+
+@deftp {Data Type} guix-build-coordinator-agent-configuration
+Data type representing the configuration a Guix Build Coordinator agent.
+
+@table @asis
+@item @code{package} (default: @code{guix-build-coordinator})
+The Guix Build Coordinator package to use.
+
+@item @code{user} (default: @code{"guix-build-coordinator-agent"})
+The system user to run the service as.
+
+@item @code{coordinator} (default: @code{"http://localhost:8745"})
+The URI to use when connecting to the coordinator.
+
+@item @code{uuid}
+The UUID of the agent.  This should be generated by the coordinator
+process, stored in the coordinator database, and used by the intended
+agent.
+
+@item @code{password} (default: @code{#f})
+The password to use when connecting to the coordinator.  A file to read
+the password from can also be specified, and this is more secure.
+
+@item @code{password-file} (default: @code{#f})
+A file containing the password to use when connecting to the
+coordinator.
+
+@item @code{systems} (default: @code{#f})
+The systems for which this agent should fetch builds.  The agent process
+will use the current system it's running on as the default.
+
+@item @code{max-parallel-builds} (default: @code{1})
+The number of builds to perform in parallel.
+
+@item @code{derivation-substitute-urls} (default: @code{#f})
+URLs from which to attempt to fetch substitutes for derivations, if the
+derivations aren't already available.
+
+@item @code{non-derivation-substitute-urls} (default: @code{#f})
+URLs from which to attempt to fetch substitutes for build inputs, if the
+input store items aren't already available.
+
+@end table
+@end deftp
+
+The Guix Build Coordinator package contains a script to query an
+instance of the Guix Data Service for derivations to build, and then
+submit builds for those derivations to the coordinator.  The service
+type below assists in running this script.  This is an additional tool
+that may be useful when building derivations contained within an
+instance of the Guix Data Service.
+
+@defvar {Scheme Variable} guix-build-coordinator-queue-builds-service-type
+Service type for the
+guix-build-coordinator-queue-builds-from-guix-data-service script.  Its
+value must be a @code{guix-build-coordinator-queue-builds-configuration}
+object.
+@end defvar
+
+@deftp {Data Type} guix-build-coordinator-queue-builds-configuration
+Data type representing the options to the queue builds from guix data
+service script.
+
+@table @asis
+@item @code{package} (default: @code{guix-build-coordinator})
+The Guix Build Coordinator package to use.
+
+@item @code{user} (default: @code{"guix-build-coordinator-queue-builds"})
+The system user to run the service as.
+
+@item @code{coordinator} (default: @code{"http://localhost:8745"})
+The URI to use when connecting to the coordinator.
+
+@item @code{systems} (default: @code{#f})
+The systems for which to fetch derivations to build.
+
+@item @code{systems-and-targets} (default: @code{#f})
+An association list of system and target pairs for which to fetch
+derivations to build.
+
+@item @code{guix-data-service} (default: @code{"https://data.guix.gnu.org"})
+The Guix Data Service instance from which to query to find out about
+derivations to build.
+
+@item @code{processed-commits-file} (default: @code{"/var/cache/guix-build-coordinator-queue-builds/processed-commits"})
+A file to record which commits have been processed, to avoid needlessly
+processing them again if the service is restarted.
+
+@end table
+@end deftp
+
 @subsubheading Guix Data Service
 The @uref{http://data.guix.gnu.org,Guix Data Service} processes, stores
 and provides data about GNU Guix.  This includes information about
@@ -27247,7 +29816,7 @@ disabled by default.
 
 @item @code{ignore-positive-oom-score-adj?} (default: @code{#f})
 A boolean indicating whether the positive adjustments set in
-@file{/proc/*/oom_score_adj}.
+@file{/proc/*/oom_score_adj} should be ignored.
 
 @item @code{show-debug-messages?} (default: @code{#f})
 A boolean indicating whether debug messages should be printed.  The logs
@@ -27316,22 +29885,22 @@ This is the data type representing the configuration for the zram-device
 service.
 
 @table @asis
-@item @code{size} (default @var{"1G"})
+@item @code{size} (default @code{"1G"})
 This is the amount of space you wish to provide for the zram device.  It
 accepts a string and can be a number of bytes or use a suffix, eg.:
-@var{"512M"} or @var{1024000}.
-@item @code{compression-algorithm} (default @var{'lzo})
+@code{"512M"} or @code{1024000}.
+@item @code{compression-algorithm} (default @code{'lzo})
 This is the compression algorithm you wish to use.  It is difficult to
 list all the possible compression options, but common ones supported by
-Guix's Linux Libre Kernel include @var{'lzo}, @var{'lz4} and @var{'zstd}.
-@item @code{memory-limit} (default @var{0})
+Guix's Linux Libre Kernel include @code{'lzo}, @code{'lz4} and @code{'zstd}.
+@item @code{memory-limit} (default @code{0})
 This is the maximum amount of memory which the zram device can use.
 Setting it to '0' disables the limit.  While it is generally expected
 that compression will be 2:1, it is possible that uncompressable data
 can be written to swap and this is a method to limit how much memory can
 be used.  It accepts a string and can be a number of bytes or use a
-suffix, eg.: @var{"2G"}.
-@item @code{priority} (default @var{-1})
+suffix, eg.: @code{"2G"}.
+@item @code{priority} (default @code{-1})
 This is the priority of the swap device created from the zram device.
 @code{swapon} accepts values between -1 and 32767, with higher values
 indicating higher priority.  Higher priority swap will generally be used
@@ -27436,7 +30005,7 @@ An association list specifies kernel parameters and their values.
 
 The @code{(gnu services security-token)} module provides the following service
 to run @command{pcscd}, the PC/SC Smart Card Daemon.  @command{pcscd} is the
-daemon program for pcsc-lite and the MuscleCard framework. It is a resource
+daemon program for pcsc-lite and the MuscleCard framework.  It is a resource
 manager that coordinates communications with smart card readers, smart cards
 and cryptographic tokens that are connected to the system.
 
@@ -27457,7 +30026,7 @@ The data type representing the configuration of @command{pcscd}.
 @item @code{pcsc-lite} (default: @code{pcsc-lite})
 The pcsc-lite package that provides pcscd.
 @item @code{usb-drivers} (default: @code{(list ccid)})
-List of packages that provide USB drivers to pcscd. Drivers are expected to be
+List of packages that provide USB drivers to pcscd.  Drivers are expected to be
 under @file{pcsc/drivers} in the store directory of the package.
 @end table
 @end deftp
@@ -27646,7 +30215,10 @@ This is the data type representing the configuration of Docker and Containerd.
 @table @asis
 
 @item @code{package} (default: @code{docker})
-The Docker package to use.
+The Docker daemon package to use.
+
+@item @code{package} (default: @code{docker-cli})
+The Docker client package to use.
 
 @item @code{containerd} (default: @var{containerd})
 The Containerd package to use.
@@ -27654,15 +30226,30 @@ The Containerd package to use.
 @item @code{proxy} (default @var{docker-libnetwork-cmd-proxy})
 The Docker user-land networking proxy package to use.
 
-@item @code{enable-proxy?} (default @code{#f})
+@item @code{enable-proxy?} (default @code{#t})
 Enable or disable the use of the Docker user-land networking proxy.
 
 @item @code{debug?} (default @code{#f})
 Enable or disable debug output.
 
+@item @code{enable-iptables?} (default @code{#t})
+Enable or disable the addition of iptables rules.
+
 @end table
 @end deftp
 
+@cindex Singularity, container service
+@defvr {Scheme Variable} singularity-service-type
+This is the type of the service that allows you to run
+@url{https://www.sylabs.io/singularity/, Singularity}, a Docker-style tool to
+create and run application bundles (aka. ``containers'').  The value for this
+service is the Singularity package to use.
+
+The service does not install a daemon; instead, it installs helper programs as
+setuid-root (@pxref{Setuid Programs}) such that unprivileged users can invoke
+@command{singularity run} and similar commands.
+@end defvr
+
 @cindex Audit
 @subsubheading Auditd Service
 
@@ -27719,17 +30306,6 @@ instantiate on startup.
 @end table
 @end deftp
 
-@defvr {Scheme Variable} singularity-service-type
-This is the type of the service that allows you to run
-@url{https://www.sylabs.io/singularity/, Singularity}, a Docker-style tool to
-create and run application bundles (aka. ``containers'').  The value for this
-service is the Singularity package to use.
-
-The service does not install a daemon; instead, it installs helper programs as
-setuid-root (@pxref{Setuid Programs}) such that unprivileged users can invoke
-@command{singularity run} and similar commands.
-@end defvr
-
 @cindex rshiny
 @subsubheading R-Shiny service
 
@@ -27738,7 +30314,7 @@ The @code{(gnu services science)} module provides the following service.
 @defvr {Scheme Variable} rshiny-service-type
 
 This is a type of service which is used to run a webapp created with
-@code{r-shiny}.  This service sets the @code{R_LIBS_USER} environment
+@code{r-shiny}.  This service sets the @env{R_LIBS_USER} environment
 variable and runs the provided script to call @code{runApp}.
 
 @deftp {Data Type} rshiny-configuration
@@ -27762,7 +30338,7 @@ The common way to create this file is as follows:
        (app       (string-append out "/bin/" ,name))
        (Rbin      (string-append (assoc-ref %build-inputs "r-min")
                                  "/bin/Rscript")))
-@dots{}
+  ;; @dots{}
   (mkdir-p (string-append out "/bin"))
   (call-with-output-file app
     (lambda (port)
@@ -27771,8 +30347,7 @@ The common way to create this file is as follows:
 library(shiny)
 setwd(\"~a\")
 runApp(launch.browser=0, port=4202)~%\n"
-      Rbin targetdir)))
-@dots{}
+      Rbin targetdir))))
 @end lisp
 
 @end table
@@ -28059,7 +30634,7 @@ system databases.
 @itemx rpc
 @itemx services
 @itemx shadow
-The system databases handled by the NSS.  Each of these fields must be a
+The system databases handled by the NSS@.  Each of these fields must be a
 list of @code{<name-service>} objects (see below).
 @end table
 @end deftp
@@ -28149,7 +30724,7 @@ volatile root file system.
 The @code{base-initrd} procedure is built from @code{raw-initrd} procedure.
 Unlike @code{base-initrd}, @code{raw-initrd} doesn't do anything high-level,
 such as trying to guess which kernel modules and packages should be included
-to the initrd. An example use of @code{raw-initrd} is when a user has
+to the initrd.  An example use of @code{raw-initrd} is when a user has
 a custom Linux kernel configuration and default kernel modules included by
 @code{base-initrd} are not available.
 
@@ -28210,7 +30785,8 @@ the root file system specified on the kernel command line via @option{--root}.
 @var{linux-modules} is a list of kernel modules to be loaded at boot time.
 @var{mapped-devices} is a list of device mappings to realize before
 @var{file-systems} are mounted (@pxref{Mapped Devices}).
-@var{helper-packages} is a list of packages to be copied in the initrd. It may
+@var{helper-packages} is a list of packages to be copied in the initrd.
+       It may
 include @code{e2fsck/static} or other packages needed by the initrd to check
 the root file system.
 
@@ -28292,9 +30868,17 @@ The type of a bootloader configuration declaration.
 @cindex EFI, bootloader
 @cindex UEFI, bootloader
 @cindex BIOS, bootloader
-The bootloader to use, as a @code{bootloader} object. For now
+The bootloader to use, as a @code{bootloader} object.  For now
 @code{grub-bootloader}, @code{grub-efi-bootloader},
-@code{extlinux-bootloader} and @code{u-boot-bootloader} are supported.
+@code{grub-efi-netboot-bootloader}, @code{extlinux-bootloader} and
+@code{u-boot-bootloader} are supported.
+
+@cindex ARM, bootloaders
+@cindex AArch64, bootloaders
+Available bootloaders are described in @code{(gnu bootloader @dots{})}
+modules.  In particular, @code{(gnu bootloader u-boot)} contains definitions
+of bootloaders for a wide range of ARM and AArch64 systems, using the
+@uref{https://www.denx.de/wiki/U-Boot/, U-Boot bootloader}.
 
 @vindex grub-efi-bootloader
 @code{grub-efi-bootloader} allows to boot on modern systems using the
@@ -28306,12 +30890,52 @@ when you boot it on your system.
 @code{grub-bootloader} allows you to boot in particular Intel-based machines
 in ``legacy'' BIOS mode.
 
-@cindex ARM, bootloaders
-@cindex AArch64, bootloaders
-Available bootloaders are described in @code{(gnu bootloader @dots{})}
-modules.  In particular, @code{(gnu bootloader u-boot)} contains definitions
-of bootloaders for a wide range of ARM and AArch64 systems, using the
-@uref{https://www.denx.de/wiki/U-Boot/, U-Boot bootloader}.
+@vindex grub-efi-netboot-bootloader
+@code{grub-efi-netboot-bootloader} allows you to boot your system over network
+through TFTP@.  In combination with an NFS root file system this allows you to
+build a diskless Guix system.
+
+The installation of the @code{grub-efi-netboot-bootloader} generates the content
+of the TFTP root directory at @code{target}
+(@pxref{Bootloader Configuration, @code{target}}), to be served by a TFTP server.
+ You may want to mount your TFTP server directory onto @code{target} to move the
+required files to the TFTP server automatically.
+
+If you plan to use an NFS root file system as well (actually if you mount the
+store from an NFS share), then the TFTP server needs to serve the file
+@file{/boot/grub/grub.cfg} and other files from the store (like GRUBs background
+image, the kernel (@pxref{operating-system Reference, @code{kernel}}) and the
+initrd (@pxref{operating-system Reference, @code{initrd}})), too.  All these
+files from the store will be accessed by GRUB through TFTP with their normal
+store path, for example as
+@file{tftp://tftp-server/gnu/store/…-initrd/initrd.cpio.gz}.
+
+Two symlinks are created to make this possible.  The first symlink is
+@code{target}@file{/efi/Guix/boot/grub/grub.cfg} pointing to
+@file{../../../boot/grub/grub.cfg},
+where @code{target} may be @file{/boot}.  In this case the link is not leaving
+the served TFTP root directory, but otherwise it does.  The second link is
+@code{target}@file{/gnu/store} and points to @file{../gnu/store}.  This link
+is leaving the served TFTP root directory.
+
+The assumption behind all this is that you have an NFS server exporting the root
+file system for your Guix system, and additionally a TFTP server exporting your
+@code{target} directory—usually @file{/boot}—from that same root file system for
+your Guix system.  In this constellation the symlinks will work.
+
+For other constellations you will have to program your own bootloader installer,
+which then takes care to make necessary files from the store accessible through
+TFTP, for example by copying them into the TFTP root directory at @code{target}.
+
+It is important to note that symlinks pointing outside the TFTP root directory
+may need to be allowed in the configuration of your TFTP server.  Further the
+store link exposes the whole store through TFTP@.  Both points need to be
+considered carefully for security aspects.
+
+Beside the @code{grub-efi-netboot-bootloader}, the already mentioned TFTP and
+NFS servers, you also need a properly configured DHCP server to make the booting
+over netboot possible.  For all this we can currently only recommend you to look
+for instructions about @acronym{PXE, Preboot eXecution Environment}.
 
 @item @code{target}
 This is a string denoting the target onto which to install the
@@ -28322,7 +30946,9 @@ The interpretation depends on the bootloader in question.  For
 the bootloader @command{installer} command, such as @code{/dev/sda} or
 @code{(hd0)} (@pxref{Invoking grub-install,,, grub, GNU GRUB Manual}).  For
 @code{grub-efi-bootloader}, it should be the mount point of the EFI file
-system, usually @file{/boot/efi}.
+system, usually @file{/boot/efi}.  For @code{grub-efi-netboot-bootloader},
+@code{target} should be the mount point corresponding to the TFTP root
+directory of your TFTP server.
 
 @item @code{menu-entries} (default: @code{()})
 A possibly empty list of @code{menu-entry} objects (see below), denoting
@@ -28484,7 +31110,7 @@ Data type representing the configuration of the GRUB theme.
 
 @table @asis
 @item @code{gfxmode} (default: @code{'("auto")})
-The GRUB @code{gfxmode} to set (a list of screen resolution strings, see
+The GRUB @code{gfxmode} to set (a list of screen resolution strings,
 @pxref{gfxmode,,, grub, GNU GRUB manual}).
 @end table
 @end deftp
@@ -28795,7 +31421,7 @@ size of the image.
 @cindex System images, creation in various formats
 @cindex Creating system images in various formats
 @item vm-image
-@itemx disk-image
+@itemx image
 @itemx docker-image
 Return a virtual machine, disk image, or Docker image of the operating
 system declared in @var{file} that stands alone.  By default,
@@ -28805,22 +31431,51 @@ a value.  Docker images are built to contain exactly what they need, so
 the @option{--image-size} option is ignored in the case of
 @code{docker-image}.
 
-You can specify the root file system type by using the
-@option{--file-system-type} option.  It defaults to @code{ext4}.
+@cindex image, creating disk images
+The @code{image} command can produce various image types.  The
+image type can be selected using the @option{--image-type} option.  It
+defaults to @code{efi-raw}.  When its value is @code{iso9660}, the
+@option{--label} option can be used to specify a volume ID with
+@code{image}.  By default, the root file system of a disk image is
+mounted non-volatile; the @option{--volatile} option can be provided to
+make it volatile instead.  When using @code{image}, the bootloader
+installed on the generated image is taken from the provided
+@code{operating-system} definition.  The following example demonstrates
+how to generate an image that uses the @code{grub-efi-bootloader}
+bootloader and boot it with QEMU:
 
-When using @code{vm-image}, the returned image is in qcow2 format, which
-the QEMU emulator can efficiently use. @xref{Running Guix in a VM},
-for more information on how to run the image in a virtual machine.
+@example
+image=$(guix system image --image-type=qcow2 \
+        gnu/system/examples/lightweight-desktop.tmpl)
+cp $image /tmp/my-image.qcow2
+chmod +w /tmp/my-image.qcow2
+qemu-system-x86_64 -enable-kvm -hda /tmp/my-image.qcow2 -m 1000 \
+                   -bios $(guix build ovmf)/share/firmware/ovmf_x64.bin
+@end example
 
-When using @code{disk-image}, a raw disk image is produced; it can be
-copied as is to a USB stick, for instance.  Assuming @code{/dev/sdc} is
-the device corresponding to a USB stick, one can copy the image to it
-using the following command:
+When using the @code{efi-raw} image type, a raw disk image is produced;
+it can be copied as is to a USB stick, for instance.  Assuming
+@code{/dev/sdc} is the device corresponding to a USB stick, one can copy
+the image to it using the following command:
 
 @example
-# dd if=$(guix system disk-image my-os.scm) of=/dev/sdc status=progress
+# dd if=$(guix system image my-os.scm) of=/dev/sdc status=progress
 @end example
 
+The @code{--list-image-types} command lists all the available image
+types.
+
+@cindex vm-image, creating virtual machine images
+When using @code{vm-image}, the returned image is in qcow2 format, which
+the QEMU emulator can efficiently use. @xref{Running Guix in a VM}, for
+more information on how to run the image in a virtual machine.  The
+@code{grub-bootloader} bootloader is always used independently of what
+is declared in the @code{operating-system} file passed as argument.
+This is to make it easier to work with QEMU, which uses the SeaBIOS BIOS
+by default, expecting a bootloader to be installed in the Master Boot
+Record (MBR).
+
+@cindex docker-image, creating docker images
 When using @code{docker-image}, a Docker image is produced.  Guix builds
 the image from scratch, not from a pre-existing Docker base image.  As a
 result, it contains @emph{exactly} what you define in the operating
@@ -28922,21 +31577,21 @@ information, one can rebuild the image to make sure it really contains
 what it pretends to contain; or they could use that to derive a variant
 of the image.
 
-@item --file-system-type=@var{type}
+@item --image-type=@var{type}
 @itemx -t @var{type}
-For the @code{disk-image} action, create a file system of the given
-@var{type} on the image.
+For the @code{image} action, create an image with given @var{type}.
 
-When this option is omitted, @command{guix system} uses @code{ext4}.
+When this option is omitted, @command{guix system} uses the
+@code{efi-raw} image type.
 
 @cindex ISO-9660 format
 @cindex CD image format
 @cindex DVD image format
-@option{--file-system-type=iso9660} produces an ISO-9660 image, suitable
+@option{--image-type=iso9660} produces an ISO-9660 image, suitable
 for burning on CDs and DVDs.
 
 @item --image-size=@var{size}
-For the @code{vm-image} and @code{disk-image} actions, create an image
+For the @code{vm-image} and @code{image} actions, create an image
 of the given @var{size}.  @var{size} may be a number of bytes, or it may
 include a unit as a suffix (@pxref{Block size, size specifications,,
 coreutils, GNU Coreutils}).
@@ -29040,10 +31695,12 @@ each other:
 @table @code
 
 @item extension-graph
-Emit in Dot/Graphviz format to standard output the @dfn{service
+Emit to standard output the @dfn{service
 extension graph} of the operating system defined in @var{file}
 (@pxref{Service Composition}, for more information on service
-extensions).
+extensions).  By default the output is in Dot/Graphviz format, but you
+can choose a different format with @option{--graph-backend}, as with
+@command{guix graph} (@pxref{Invoking guix graph, @option{--backend}}):
 
 The command:
 
@@ -29055,11 +31712,14 @@ shows the extension relations among services.
 
 @anchor{system-shepherd-graph}
 @item shepherd-graph
-Emit in Dot/Graphviz format to standard output the @dfn{dependency
+Emit to standard output the @dfn{dependency
 graph} of shepherd services of the operating system defined in
 @var{file}.  @xref{Shepherd Services}, for more information and for an
 example graph.
 
+Again, the default output format is Dot/Graphviz, but you can pass
+@option{--graph-backend} to select a different one.
+
 @end table
 
 @node Invoking guix deploy
@@ -29141,7 +31801,8 @@ a Virtual Private Server (VPS) provider.  In such a case, a different
 
 Do note that you first need to generate a key pair on the coordinator machine
 to allow the daemon to export signed archives of files from the store
-(@pxref{Invoking guix archive}).
+(@pxref{Invoking guix archive}), though this step is automatic on Guix
+System:
 
 @example
 # guix archive --generate-key
@@ -29254,9 +31915,9 @@ machine with an @code{environment} of @code{digital-ocean-environment-type}.
 @table @asis
 @item @code{ssh-key}
 The path to the SSH private key to use to authenticate with the remote
-host. In the future, this field may not exist.
+host.  In the future, this field may not exist.
 @item @code{tags}
-A list of string ``tags'' that uniquely identify the machine. Must be given
+A list of string ``tags'' that uniquely identify the machine.  Must be given
 such that no two machines in the deployment have the same set of tags.
 @item @code{region}
 A Digital Ocean region slug, such as @code{"nyc3"}.
@@ -29279,7 +31940,7 @@ decompress with @command{xz -d}, and then you can pass it to an emulator such
 as QEMU (see below for details).
 
 This image boots the Xfce graphical environment and it contains some
-commonly-used tools.  You can install more software in the image by running
+commonly used tools.  You can install more software in the image by running
 @command{guix package} in a terminal (@pxref{Invoking guix package}).  You can
 also reconfigure the system based on its initial configuration file available
 as @file{/run/current-system/configuration.scm} (@pxref{Using the
@@ -29339,8 +32000,8 @@ better performance than if it were emulating a complete disk drive.  See the
 QEMU and KVM documentation for more info.
 
 @item -drive if=none,file=/tmp/qemu-image,id=myhd
-Use our QCOW image, the @file{/tmp/qemu-image} file, as the backing store the
-the ``myhd'' drive.
+Use our QCOW image, the @file{/tmp/qemu-image} file, as the backing
+store of the ``myhd'' drive.
 @end table
 
 The default @command{run-vm.sh} script that is returned by an invocation of
@@ -29385,7 +32046,7 @@ connect pass the @command{-spice port=5930,disable-ticketing} flag to
 @command{qemu}.  See previous section for further information on how to do this.
 
 Spice also allows you to do some nice stuff like share your clipboard with your
-VM.  To enable that you'll also have to pass the following flags to @command{qemu}:
+VM@.  To enable that you'll also have to pass the following flags to @command{qemu}:
 
 @example
 -device virtio-serial-pci,id=virtio-serial0,max_ports=16,bus=pci.0,addr=0x5
@@ -29531,7 +32192,7 @@ A service of this type is instantiated like this:
 (service guix-service-type
          (guix-configuration
            (build-accounts 5)
-           (use-substitutes? #f)))
+           (extra-options '("--gc-keep-derivations"))))
 @end lisp
 
 The second argument to the @code{service} form is a value representing
@@ -29740,6 +32401,23 @@ calls it, passing it the initial value of the service as the first
 argument and the result of applying @code{compose} to the extension
 values as the second argument.  It must return a value that is a valid
 parameter value for the service instance.
+
+@item @code{description}
+This is a string, possibly using Texinfo markup, describing in a couple
+of sentences what the service is about.  This string allows users to
+find about the service through @command{guix system search}
+(@pxref{Invoking guix system}).
+
+@item @code{default-value} (default: @code{&no-default-value})
+The default value associated for instances of this service type.  This
+allows users to use the @code{service} form without its second argument:
+
+@lisp
+(service @var{type})
+@end lisp
+
+The returned service in this case has the default value specified by
+@var{type}.
 @end table
 
 @xref{Service Types and Services}, for examples.
@@ -30106,9 +32784,21 @@ typically written in the ELF format, with a section containing
 debugger, GDB, to map binary code to source code; it is required to
 debug a compiled program in good conditions.
 
+This chapter explains how to use separate debug info when packages
+provide it, and how to rebuild packages with debug info when it's
+missing.
+
+@menu
+* Separate Debug Info::         Installing 'debug' outputs.
+* Rebuilding Debug Info::       Building missing debug info.
+@end menu
+
+@node Separate Debug Info
+@section Separate Debug Info
+
 The problem with debugging information is that is takes up a fair amount
 of disk space.  For example, debugging information for the GNU C Library
-weighs in at more than 60 MiB.  Thus, as a user, keeping all the
+weighs in at more than 60 MiB@.  Thus, as a user, keeping all the
 debugging info of all the installed programs is usually not an option.
 Yet, space savings should not come at the cost of an impediment to
 debugging---especially in the GNU system, which should make it easier
@@ -30155,12 +32845,75 @@ directory using the @code{directory} command (@pxref{Source Path,
 @c XXX: keep me up-to-date
 The @code{debug} output mechanism in Guix is implemented by the
 @code{gnu-build-system} (@pxref{Build Systems}).  Currently, it is
-opt-in---debugging information is available only for the packages
-with definitions explicitly declaring a @code{debug} output.  This may be
-changed to opt-out in the future if our build farm servers can handle
-the load.  To check whether a package has a @code{debug} output, use
-@command{guix package --list-available} (@pxref{Invoking guix package}).
+opt-in---debugging information is available only for the packages with
+definitions explicitly declaring a @code{debug} output.  To check
+whether a package has a @code{debug} output, use @command{guix package
+--list-available} (@pxref{Invoking guix package}).
+
+Read on for how to deal with packages lacking a @code{debug} output.
+
+@node Rebuilding Debug Info
+@section Rebuilding Debug Info
+
+@cindex debugging info, rebuilding
+As we saw above, some packages, but not all, provide debugging info in a
+@code{debug} output.  What can you do when debugging info is missing?
+The @option{--with-debug-info} option provides a solution to that: it
+allows you to rebuild the package(s) for which debugging info is
+missing---and only those---and to graft those onto the application
+you're debugging.  Thus, while it's not as fast as installing a
+@code{debug} output, it is relatively inexpensive.
+
+Let's illustrate that.  Suppose you're experiencing a bug in Inkscape
+and would like to see what's going on in GLib, a library that's deep
+down in its dependency graph.  As it turns out, GLib does not have a
+@code{debug} output and the backtrace GDB shows is all sadness:
+
+@example
+(gdb) bt
+#0  0x00007ffff5f92190 in g_getenv ()
+   from /gnu/store/@dots{}-glib-2.62.6/lib/libglib-2.0.so.0
+#1  0x00007ffff608a7d6 in gobject_init_ctor ()
+   from /gnu/store/@dots{}-glib-2.62.6/lib/libgobject-2.0.so.0
+#2  0x00007ffff7fe275a in call_init (l=<optimized out>, argc=argc@@entry=1, argv=argv@@entry=0x7fffffffcfd8, 
+    env=env@@entry=0x7fffffffcfe8) at dl-init.c:72
+#3  0x00007ffff7fe2866 in call_init (env=0x7fffffffcfe8, argv=0x7fffffffcfd8, argc=1, l=<optimized out>)
+    at dl-init.c:118
+@end example
+
+To address that, you install Inkscape linked against a variant GLib that
+contains debug info:
+
+@example
+guix install inkscape --with-debug-info=glib
+@end example
+
+This time, debugging will be a whole lot nicer:
+
+@example
+$ gdb --args sh -c 'exec inkscape'
+@dots{}
+(gdb) b g_getenv
+Function "g_getenv" not defined.
+Make breakpoint pending on future shared library load? (y or [n]) y
+Breakpoint 1 (g_getenv) pending.
+(gdb) r
+Starting program: /gnu/store/@dots{}-profile/bin/sh -c exec\ inkscape
+@dots{}
+(gdb) bt
+#0  g_getenv (variable=variable@@entry=0x7ffff60c7a2e "GOBJECT_DEBUG") at ../glib-2.62.6/glib/genviron.c:252
+#1  0x00007ffff608a7d6 in gobject_init () at ../glib-2.62.6/gobject/gtype.c:4380
+#2  gobject_init_ctor () at ../glib-2.62.6/gobject/gtype.c:4493
+#3  0x00007ffff7fe275a in call_init (l=<optimized out>, argc=argc@@entry=3, argv=argv@@entry=0x7fffffffd088, 
+    env=env@@entry=0x7fffffffd0a8) at dl-init.c:72
+@dots{}
+@end example
+
+Much better!
 
+Note that there can be packages for which @option{--with-debug-info}
+will not have the desired effect.  @xref{Package Transformation Options,
+@option{--with-debug-info}}, for more information.
 
 @node Security Updates
 @chapter Security Updates
@@ -30288,10 +33041,15 @@ Bootstrapping in our context refers to how the distribution gets built
 ``from nothing''.  Remember that the build environment of a derivation
 contains nothing but its declared inputs (@pxref{Introduction}).  So
 there's an obvious chicken-and-egg problem: how does the first package
-get built?  How does the first compiler get compiled?  Note that this is
-a question of interest only to the curious hacker, not to the regular
-user, so you can shamelessly skip this section if you consider yourself
-a ``regular user''.
+get built?  How does the first compiler get compiled?
+
+It is tempting to think of this question as one that only die-hard
+hackers may care about.  However, while the answer to that question is
+technical in nature, its implications are wide-ranging.  How the
+distribution is bootstrapped defines the extent to which we, as
+individuals and as a collective of users and hackers, can trust the
+software we run.  It is a central concern from the standpoint of
+@emph{security} and from a @emph{user freedom} viewpoint.
 
 @cindex bootstrap binaries
 The GNU system is primarily made of C code, with libc at its core.  The
diff --git a/doc/local.mk b/doc/local.mk
index aca1958edd..97122c737d 100644
--- a/doc/local.mk
+++ b/doc/local.mk
@@ -96,14 +96,16 @@ define xref_command
 cat "$@.tmp" | egrep '@p?x?ref' -A1 | sed 'N;s|--\n||g;P;D' | sed 's|^| |g' | \
         tr -d '\012' | sed 's|\(@p\?x\?ref\)|\n\1|g' | egrep '@p?x?ref' | \
         sed 's|^.*@p\?x\?ref{\([^,}]*\).*$$|\1|g' | sort | uniq | while read e; do \
-  line=$$(grep -n "^msgid \"$$e\"" "$<" | cut -f1 --delimiter=":") ;\
-  ((line++)) ;\
-  if [ "$$line" != "1" ]; then \
-    translation=$$(head -n $$line "$<" | tail -1 | grep msgstr | sed 's|msgstr "\(.*\)"|\1|') ;\
-    if [ "$$translation" != "" ]; then \
-	  sed "N;s@\(p\?x\?ref\){$$(echo $$e | sed 's| |[\\n ]|g')\(,\|}\)@\1{$$translation\2@g;P;D" -i "$@.tmp" ;\
-    fi ;\
-  fi ;\
+    if [ -n "$$e" ]; then \
+      line=$$(grep -n "^msgid \"$$e\"" "$<" | cut -f1 --delimiter=":") ;\
+      ((line++)) ;\
+      if [ "$$line" != "1" ]; then \
+	translation=$$(head -n "$$line" "$<" | tail -1 | grep msgstr | sed 's|msgstr "\(.*\)"|\1|') ;\
+	if [ "$$translation" != "" ]; then \
+	      sed "N;s@\(p\?x\?ref\){$$(echo $$e | sed 's| |[\\n ]|g')\(,\|}\)@\1{$$translation\2@g;P;D" -i "$@.tmp" ;\
+	fi ;\
+      fi ;\
+   fi ;\
 done
 endef
 
diff --git a/etc/committer.scm.in b/etc/committer.scm.in
index 2f247835f3..ebe6b96bcc 100755
--- a/etc/committer.scm.in
+++ b/etc/committer.scm.in
@@ -175,8 +175,8 @@ corresponding to the top-level definition containing the staged changes."
               (let ((old-values (get-values old field))
                     (new-values (get-values new field)))
                 (or (equal? old-values new-values)
-                    (let ((removed (lset-difference eq? old-values new-values))
-                          (added (lset-difference eq? new-values old-values)))
+                    (let ((removed (lset-difference equal? old-values new-values))
+                          (added (lset-difference equal? new-values old-values)))
                       (format port
                               "[~a]: ~a~%" field
                               (match (list (map symbol->string removed)
diff --git a/etc/completion/bash/guix b/etc/completion/bash/guix
index 5aebd074e9..26480e5863 100644
--- a/etc/completion/bash/guix
+++ b/etc/completion/bash/guix
@@ -19,6 +19,20 @@
 # Bash completion for Guix commands.
 
 declare _guix_available_packages
+declare _guix_commands
+
+_guix_complete_command ()
+{
+    local word_at_point="${COMP_WORDS[$COMP_CWORD]}"
+    if [ -z "$_guix_commands" ]
+    then
+	# Cache the list of commands to speed things up.
+	_guix_commands="$(guix --help 2> /dev/null  \
+                                     | grep '^    ' \
+				     | sed '-es/^ *\([a-z-]\+\).*$/\1/g')"
+    fi
+    COMPREPLY=($(compgen -W "$_guix_commands" -- "$word_at_point"))
+}
 
 _guix_complete_subcommand ()
 {
@@ -97,6 +111,24 @@ _guix_is_removing ()
     $result
 }
 
+_guix_is_dash_f ()
+{
+    [ "${COMP_WORDS[$COMP_CWORD - 1]}" = "-f" ] \
+	|| { case "${COMP_WORDS[$COMP_CWORD]}" in
+		 --file=*|--install-from-file=*) true;;
+		 *)                              false;;
+	     esac }
+}
+
+_guix_is_dash_l ()
+{
+    [ "${COMP_WORDS[$COMP_CWORD - 1]}" = "-l" ] \
+	|| { case "${COMP_WORDS[$COMP_CWORD]}" in
+		 --load=*) true;;
+		 *)        false;;
+	     esac }
+}
+
 _guix_is_dash_L ()
 {
     [ "${COMP_WORDS[$COMP_CWORD - 1]}" = "-L" ] \
@@ -146,19 +178,6 @@ _guix_complete_pid ()
     COMPREPLY=($(compgen -W "$pids" -- "$1"))
 }
 
-declare _guix_subcommands
-
-_guix_complete_subcommand ()
-{
-    if [ -z "$_guix_subcommands" ]
-    then
-	# Cache the list of subcommands to speed things up.
-	_guix_subcommands="$(guix --help 2> /dev/null \
-                                     | grep '^  ' | cut -c 2-)"
-    fi
-    COMPREPLY=($(compgen -W "$_guix_subcommands" -- "$word_at_point"))
-}
-
 _guix_complete ()
 {
     local word_count=${#COMP_WORDS[*]}
@@ -176,12 +195,12 @@ _guix_complete ()
 
     case $COMP_CWORD in
 	1)
-	    _guix_complete_subcommand
+	    _guix_complete_command
 	    ;;
 	*)
 	    if _guix_is_command "package"
 	    then
-		if _guix_is_dash_L || _guix_is_dash_m
+		if _guix_is_dash_L || _guix_is_dash_m || _guix_is_dash_p || _guix_is_dash_f
 		then
 		    _guix_complete_file
 		elif _guix_is_removing
@@ -216,7 +235,7 @@ _guix_complete ()
 		fi
             elif _guix_is_command "build"
             then
-                if _guix_is_dash_L || _guix_is_dash_m
+                if _guix_is_dash_L || _guix_is_dash_m || _guix_is_dash_f
                 then
                     _guix_complete_file
 		else
@@ -224,7 +243,7 @@ _guix_complete ()
                 fi
 	    elif _guix_is_command "environment"
 	    then
-                if _guix_is_dash_L || _guix_is_dash_m || _guix_is_dash_p
+                if _guix_is_dash_L || _guix_is_dash_m || _guix_is_dash_p || _guix_is_dash_l
                 then
                     _guix_complete_file
 		else
@@ -251,7 +270,7 @@ _guix_complete ()
                 then
                     _guix_complete_file
 		else
-		    _guix_complete_subcommand
+		    _guix_complete_command
                 fi
 	    elif _guix_is_command "container"
 	    then
diff --git a/etc/git/pre-push b/etc/git/pre-push
index 415345fc75..59671b0d58 100755
--- a/etc/git/pre-push
+++ b/etc/git/pre-push
@@ -20,13 +20,26 @@
 #
 #   <local ref> <local sha1> <remote ref> <remote sha1>
 
-# Only use the hook when pushing to Savannah.
-case "$2" in
-    *.gnu.org*)
-	exec make authenticate check-channel-news
-	exit 127
-	;;
-    *)
-	exit 0
-	;;
-esac
+# This is the "empty hash" used by Git when pushing a branch deletion.
+z40=0000000000000000000000000000000000000000
+
+while read local_ref local_hash remote_ref remote_hash
+do
+	# When deleting a remote branch, no commits are pushed to the remote, and
+	# thus there are no signatures to be verified.
+	if [ "$local_hash" != $z40 ]
+	then
+		# Only use the hook when pushing to Savannah.
+		case "$2" in
+		    *.gnu.org*)
+			exec make authenticate check-channel-news
+			exit 127
+			;;
+		    *)
+			exit 0
+			;;
+		esac
+	fi
+done
+
+exit 0
diff --git a/etc/guix-daemon.cil.in b/etc/guix-daemon.cil.in
index e0c9113498..4f52157354 100644
--- a/etc/guix-daemon.cil.in
+++ b/etc/guix-daemon.cil.in
@@ -1,6 +1,8 @@
 ; -*- lisp -*-
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2020 Daniel Brooks <db48x@db48x.net>
+;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -21,6 +23,18 @@
 ;; Intermediate Language (CIL).  It refers to types that must be defined in
 ;; the system's base policy.
 
+;; If you, like me, need advice about fixing an SELinux policy, I recommend
+;; reading https://danwalsh.livejournal.com/55324.html
+
+;; In particular, you can run semanage permissive -a guix_daemon.guix_daemon_t
+;; to allow guix-daemon to do whatever it wants. SELinux will still check its
+;; permissions, and when it doesn't have permission it will still send an
+;; audit message to your system logs. This lets you know what permissions it
+;; ought to have. Use ausearch --raw to find the permissions violations, then
+;; pipe that to audit2allow to generate an updated policy. You'll still need
+;; to translate that policy into CIL in order to update this file, but that's
+;; fairly straight-forward. Annoying, but easy.
+
 (block guix_daemon
   ;; Require existing types
   (typeattributeset cil_gen_require init_t)
@@ -34,14 +48,19 @@
   (roletype object_r guix_daemon_t)
   (type guix_daemon_conf_t)
   (roletype object_r guix_daemon_conf_t)
+  (typeattributeset file_type guix_daemon_conf_t)
   (type guix_daemon_exec_t)
   (roletype object_r guix_daemon_exec_t)
+  (typeattributeset file_type guix_daemon_exec_t)
   (type guix_daemon_socket_t)
   (roletype object_r guix_daemon_socket_t)
+  (typeattributeset file_type guix_daemon_socket_t)
   (type guix_store_content_t)
   (roletype object_r guix_store_content_t)
+  (typeattributeset file_type guix_store_content_t)
   (type guix_profiles_t)
   (roletype object_r guix_profiles_t)
+  (typeattributeset file_type guix_profiles_t)
 
   ;; These types are domains, thereby allowing process rules
   (typeattributeset domain (guix_daemon_t guix_daemon_exec_t))
@@ -55,6 +74,30 @@
   (typetransition guix_store_content_t guix_daemon_exec_t
                   process guix_daemon_t)
 
+  (roletype system_r guix_daemon_t)
+
+  ;; allow init_t to read and execute guix files
+  (allow init_t
+         guix_profiles_t
+         (lnk_file (read)))
+  (allow init_t
+         guix_daemon_exec_t
+         (file (execute)))
+  (allow init_t
+         guix_daemon_t
+         (process (transition)))
+  (allow init_t
+         guix_store_content_t
+         (lnk_file (read)))
+  (allow init_t
+         guix_store_content_t
+         (file (open read execute)))
+
+  ;; guix-daemon needs to know the names of users
+  (allow guix_daemon_t
+         passwd_file_t
+         (file (getattr open read)))
+
   ;; Permit communication with NSCD
   (allow guix_daemon_t
          nscd_var_run_t
@@ -71,25 +114,46 @@
   (allow guix_daemon_t
          nscd_t
          (unix_stream_socket (connectto)))
+  (allow guix_daemon_t nscd_t
+         (nscd (getgrp gethost getpwd getserv shmemgrp shmemhost shmempwd shmemserv)))
+
+  ;; permit downloading packages via HTTP(s)
+  (allow guix_daemon_t http_port_t
+         (tcp_socket (name_connect)))
+  (allow guix_daemon_t ftp_port_t
+         (tcp_socket (name_connect)))
+  (allow guix_daemon_t ephemeral_port_t
+         (tcp_socket (name_connect)))
 
   ;; Permit logging and temp file access
   (allow guix_daemon_t
          tmp_t
-         (lnk_file (setattr unlink)))
+         (lnk_file (create rename setattr unlink)))
+  (allow guix_daemon_t
+         tmp_t
+         (file (link
+                rename create execute execute_no_trans write
+                unlink setattr map relabelto relabelfrom)))
+  (allow guix_daemon_t
+         tmp_t
+         (fifo_file (open read write create getattr ioctl setattr unlink)))
   (allow guix_daemon_t
          tmp_t
-         (dir (create
-               rmdir
+         (dir (create rename
+               rmdir relabelto relabelfrom reparent
                add_name remove_name
                open read write
                getattr setattr
                search)))
   (allow guix_daemon_t
+         tmp_t
+         (sock_file (create getattr setattr unlink write)))
+  (allow guix_daemon_t
          var_log_t
          (file (create getattr open write)))
   (allow guix_daemon_t
          var_log_t
-         (dir (getattr write add_name)))
+         (dir (getattr create write add_name)))
   (allow guix_daemon_t
          var_run_t
          (lnk_file (read)))
@@ -100,10 +164,12 @@
   ;; Spawning processes, execute helpers
   (allow guix_daemon_t
          self
-         (process (fork)))
+         (process (fork execmem setrlimit setpgid setsched)))
   (allow guix_daemon_t
          guix_daemon_exec_t
-         (file (execute execute_no_trans read open)))
+         (file (execute
+                execute_no_trans read write open entrypoint map
+                getattr link unlink)))
 
   ;; TODO: unknown
   (allow guix_daemon_t
@@ -119,38 +185,51 @@
   ;; Build isolation
   (allow guix_daemon_t
          guix_store_content_t
-         (file (mounton)))
+         (file (ioctl mounton)))
   (allow guix_store_content_t
          fs_t
          (filesystem (associate)))
   (allow guix_daemon_t
          guix_store_content_t
-         (dir (mounton)))
+         (dir (read mounton)))
   (allow guix_daemon_t
          guix_daemon_t
          (capability (net_admin
                       fsetid fowner
                       chown setuid setgid
                       dac_override dac_read_search
-                      sys_chroot)))
+                      sys_chroot
+                      sys_admin)))
   (allow guix_daemon_t
          fs_t
          (filesystem (unmount)))
   (allow guix_daemon_t
          devpts_t
+         (dir (search)))
+  (allow guix_daemon_t
+         devpts_t
          (filesystem (mount)))
   (allow guix_daemon_t
          devpts_t
-         (chr_file (setattr getattr)))
+         (chr_file (ioctl open read write setattr getattr)))
   (allow guix_daemon_t
          tmpfs_t
-         (filesystem (mount)))
+         (filesystem (getattr mount)))
   (allow guix_daemon_t
          tmpfs_t
-         (dir (getattr)))
+         (file (create open read unlink write)))
+  (allow guix_daemon_t
+         tmpfs_t
+         (dir (getattr add_name remove_name write)))
   (allow guix_daemon_t
          proc_t
-         (filesystem (mount)))
+         (file (getattr open read)))
+  (allow guix_daemon_t
+         proc_t
+         (dir (read)))
+  (allow guix_daemon_t
+         proc_t
+         (filesystem (associate mount)))
   (allow guix_daemon_t
          null_device_t
          (chr_file (getattr open read write)))
@@ -179,7 +258,7 @@
                search rename
                add_name remove_name
                open write
-               rmdir)))
+               rmdir relabelfrom)))
   (allow guix_daemon_t
          guix_store_content_t
          (file (create
@@ -189,7 +268,8 @@
                 link unlink
                 map
                 rename
-                open read write)))
+                append
+                open read write relabelfrom)))
   (allow guix_daemon_t
          guix_store_content_t
          (lnk_file (create
@@ -197,17 +277,23 @@
                     link unlink
                     read
                     rename)))
+  (allow guix_daemon_t
+         guix_store_content_t
+         (fifo_file (create getattr open read unlink write)))
+  (allow guix_daemon_t
+         guix_store_content_t
+         (sock_file (create getattr setattr unlink write)))
 
   ;; Access to configuration files and directories
   (allow guix_daemon_t
          guix_daemon_conf_t
-         (dir (search
+         (dir (search create
                setattr getattr
                add_name remove_name
                open read write)))
   (allow guix_daemon_t
          guix_daemon_conf_t
-         (file (create
+         (file (create rename
                 lock
                 map
                 getattr setattr
@@ -216,11 +302,17 @@
   (allow guix_daemon_t
          guix_daemon_conf_t
          (lnk_file (create getattr rename unlink)))
+  (allow guix_daemon_t net_conf_t
+         (file (getattr open read)))
+  (allow guix_daemon_t net_conf_t
+         (lnk_file (read)))
+  (allow guix_daemon_t NetworkManager_var_run_t
+         (dir (search)))
 
   ;; Access to profiles
   (allow guix_daemon_t
          guix_profiles_t
-         (dir (getattr setattr read open)))
+         (dir (search getattr setattr read write open create add_name)))
   (allow guix_daemon_t
          guix_profiles_t
          (lnk_file (read getattr)))
@@ -233,9 +325,23 @@
   (allow guix_daemon_t
          user_home_t
          (dir (search)))
+  (allow guix_daemon_t
+         cache_home_t
+         (dir (search)))
+
+  ;; self upgrades
+  (allow guix_daemon_t
+         self
+         (dir (add_name write)))
+  (allow guix_daemon_t
+         self
+         (netlink_route_socket (bind create getattr nlmsg_read read write getopt)))
 
   ;; Socket operations
   (allow guix_daemon_t
+         guix_daemon_socket_t
+         (sock_file (unlink)))
+  (allow guix_daemon_t
          init_t
          (fd (use)))
   (allow guix_daemon_t
@@ -255,10 +361,73 @@
                               getopt setopt)))
   (allow guix_daemon_t
          self
+         (tcp_socket (accept listen bind connect create setopt getopt getattr ioctl read write shutdown)))
+  (allow guix_daemon_t
+         unreserved_port_t
+         (tcp_socket (name_bind name_connect accept listen)))
+  (allow guix_daemon_t
+         self
+         (udp_socket (connect getattr bind getopt setopt read write)))
+  (allow guix_daemon_t
+         self
          (fifo_file (write read)))
   (allow guix_daemon_t
          self
          (udp_socket (ioctl create)))
+  (allow guix_daemon_t
+         self
+         (unix_stream_socket (connectto)))
+  (allow guix_daemon_t
+         self
+         (unix_dgram_socket (create bind connect sendto read write)))
+
+  ;; For some esoteric build jobs (i.e. running PostgreSQL, etc).
+  (allow guix_daemon_t
+         self
+         (capability (kill)))
+  (allow guix_daemon_t
+         node_t
+         (tcp_socket (node_bind)))
+  (allow guix_daemon_t
+         node_t
+         (udp_socket (node_bind)))
+  (allow guix_daemon_t
+         port_t
+         (tcp_socket (name_connect)))
+  (allow guix_daemon_t
+         tmpfs_t
+         (file (map read write link getattr)))
+  (allow guix_daemon_t
+         usermodehelper_t
+         (file (read)))
+  (allow guix_daemon_t
+         hugetlbfs_t
+         (file (map read write)))
+  (allow guix_daemon_t
+         proc_net_t
+         (file (read)))
+  (allow guix_daemon_t
+         postgresql_port_t
+         (tcp_socket (name_connect name_bind)))
+  (allow guix_daemon_t
+         rtp_media_port_t
+         (udp_socket (name_bind)))
+  (allow guix_daemon_t
+         vnc_port_t
+         (tcp_socket (name_bind)))
+
+  ;; I guess sometimes it needs random numbers
+  (allow guix_daemon_t
+         random_device_t
+         (chr_file (read)))
+
+  ;; guix system vm
+  (allow guix_daemon_t
+         kvm_device_t
+         (chr_file (ioctl open read write)))
+  (allow guix_daemon_t
+         kernel_t
+         (system (ipc_info)))
 
   ;; Label file system
   (filecon "@guix_sysconfdir@/guix(/.*)?"
@@ -277,5 +446,7 @@
            file (system_u object_r guix_daemon_exec_t (low low)))
   (filecon "@storedir@/.+-(guix-.+|profile)/bin/guix-daemon"
            file (system_u object_r guix_daemon_exec_t (low low)))
+  (filecon "@storedir@/[a-z0-9]+-guix-daemon"
+           file (system_u object_r guix_daemon_exec_t (low low)))
   (filecon "@guix_localstatedir@/guix/daemon-socket/socket"
            any (system_u object_r guix_daemon_socket_t (low low))))
diff --git a/etc/guix-install.sh b/etc/guix-install.sh
index 72dc3839e8..94c04aa646 100755
--- a/etc/guix-install.sh
+++ b/etc/guix-install.sh
@@ -4,6 +4,10 @@
 # Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
 # Copyright © 2018 Efraim Flashner <efraim@flashner.co.il>
 # Copyright © 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+# Copyright © 2020 Morgan Smith <Morgan.J.Smith@outlook.com>
+# Copyright © 2020 Simon Tournier <zimon.toutoune@gmail.com>
+# Copyright © 2020 Daniel Brooks <db48x@db48x.net>
+# Copyright © 2021 Jakub Kądziołka <kuba@kadziolka.net>
 #
 # This file is part of GNU Guix.
 #
@@ -53,10 +57,12 @@ REQUIRE=(
 
 PAS=$'[ \033[32;1mPASS\033[0m ] '
 ERR=$'[ \033[31;1mFAIL\033[0m ] '
+WAR=$'[ \033[33;1mWARN\033[0m ] '
 INF="[ INFO ] "
 
 DEBUG=0
 GNU_URL="https://ftp.gnu.org/gnu/guix/"
+#GNU_URL="https://alpha.gnu.org/gnu/guix/"
 OPENPGP_SIGNING_KEY_ID="3CE464558A84FDC69DB40CFB090B11993D9AEBB5"
 
 # This script needs to know where root's home directory is.  However, we
@@ -111,7 +117,7 @@ chk_gpg_keyring()
     # systems where gpg has never been used, causing errors and confusion.
     gpg --dry-run --list-keys ${OPENPGP_SIGNING_KEY_ID} >/dev/null 2>&1 || (
         _err "${ERR}Missing OpenPGP public key.  Fetch it with this command:"
-        echo "  wget https://sv.gnu.org/people/viewgpg.php?user_id=15145 -qO - | sudo -i gpg --import -"
+        echo "  wget 'https://sv.gnu.org/people/viewgpg.php?user_id=15145' -qO - | sudo -i gpg --import -"
         exit 1
     )
 }
@@ -150,6 +156,10 @@ chk_init_sys()
         _msg "${INF}init system is: sysv-init"
         INIT_SYS="sysv-init"
         return 0
+    elif [[ $(openrc --version 2>/dev/null) =~ \(OpenRC\) ]]; then
+        _msg "${INF}init system is: OpenRC"
+        INIT_SYS="openrc"
+        return 0
     else
         INIT_SYS="NA"
         _err "${ERR}Init system could not be detected."
@@ -174,9 +184,9 @@ chk_sys_arch()
         aarch64)
             local arch=aarch64
             ;;
-	armv7l)
-	    local arch=armhf
-	    ;;
+        armv7l)
+            local arch=armhf
+            ;;
         *)
             _err "${ERR}Unsupported CPU type: ${arch}"
             exit 1
@@ -194,6 +204,19 @@ chk_sys_arch()
     ARCH_OS="${arch}-${os}"
 }
 
+chk_sys_nscd()
+{ # Check if nscd is up and suggest to start it or install it
+    if [ "$(type -P pidof)" ]; then
+        if [ ! "$(pidof nscd)" ]; then
+            _msg "${WAR}We recommend installing and/or starting your distribution 'nscd' service"
+            _msg "${WAR}Please read 'info guix \"Application Setup\"' about \"Name Service Switch\""
+        fi
+    else
+        _msg "${INF}We cannot determine if your distribution 'nscd' service is running"
+        _msg "${INF}Please read 'info guix \"Application Setup\"' about \"Name Service Switch\""
+    fi
+}
+
 # ------------------------------------------------------------------------------
 #+MAIN
 
@@ -208,11 +231,11 @@ guix_get_bin_list()
 
     # Filter only version and architecture
     bin_ver_ls=("$(wget -qO- "$gnu_url" \
-        | sed -n -e 's/.*guix-binary-\([0-9.]*\)\..*.tar.xz.*/\1/p' \
+        | sed -n -e 's/.*guix-binary-\([0-9.]*[a-z0-9]*\)\..*.tar.xz.*/\1/p' \
         | sort -Vu)")
 
-    latest_ver="$(echo "$bin_ver_ls" \
-                       | grep -oP "([0-9]{1,2}\.){2}[0-9]{1,2}" \
+    latest_ver="$(echo "${bin_ver_ls[0]}" \
+                       | grep -oE "([0-9]{1,2}\.){2}[0-9]{1,2}[a-z0-9]*" \
                        | tail -n1)"
 
     default_ver="guix-binary-${latest_ver}.${ARCH_OS}"
@@ -225,7 +248,7 @@ guix_get_bin_list()
     fi
 
     # Use default to download according to the list and local ARCH_OS.
-    BIN_VER="$default_ver"
+    BIN_VER="${default_ver}"
 }
 
 guix_get_bin()
@@ -249,7 +272,7 @@ guix_get_bin()
         exit 1
     fi
 
-    pushd $dl_path >/dev/null
+    pushd "${dl_path}" >/dev/null
     gpg --verify "${bin_ver}.tar.xz.sig" >/dev/null 2>&1
     if [[ "$?" -eq 0 ]]; then
         _msg "${PAS}Signature is valid."
@@ -268,8 +291,7 @@ sys_create_store()
     _debug "--- [ $FUNCNAME ] ---"
 
     cd "$tmp_path"
-    tar --warning=no-timestamp \
-        --extract \
+    tar --extract \
         --file "$pkg" &&
     _msg "${PAS}unpacked archive"
 
@@ -358,15 +380,15 @@ sys_enable_guix_daemon()
                  /etc/systemd/system/;
               chmod 664 /etc/systemd/system/guix-daemon.service;
 
-	      # Work around <https://bugs.gnu.org/36074>, present in 1.0.1.
-	      sed -i /etc/systemd/system/guix-daemon.service \
-	          -e "s/GUIX_LOCPATH='/'GUIX_LOCPATH=/";
+              # Work around <https://bugs.gnu.org/36074>, present in 1.0.1.
+              sed -i /etc/systemd/system/guix-daemon.service \
+                  -e "s/GUIX_LOCPATH='/'GUIX_LOCPATH=/";
 
-	      # Work around <https://bugs.gnu.org/35671>, present in 1.0.1.
-	      if ! grep en_US /etc/systemd/system/guix-daemon.service >/dev/null;
-	      then sed -i /etc/systemd/system/guix-daemon.service \
-		       -e 's/^Environment=\(.*\)$/Environment=\1 LC_ALL=en_US.UTF-8';
-	      fi;
+              # Work around <https://bugs.gnu.org/35671>, present in 1.0.1.
+              if ! grep en_US /etc/systemd/system/guix-daemon.service >/dev/null;
+              then sed -i /etc/systemd/system/guix-daemon.service \
+                       -e 's/^Environment=\(.*\)$/Environment=\1 LC_ALL=en_US.UTF-8';
+              fi;
 
               systemctl daemon-reload &&
                   systemctl enable guix-daemon &&
@@ -384,6 +406,16 @@ sys_enable_guix_daemon()
                   service guix-daemon start; } &&
                 _msg "${PAS}enabled Guix daemon via sysv"
             ;;
+        openrc)
+            { mkdir -p /etc/init.d;
+              cp "${ROOT_HOME}/.config/guix/current/etc/openrc/guix-daemon" \
+                 /etc/init.d/guix-daemon;
+              chmod 775 /etc/init.d/guix-daemon;
+
+              rc-update add guix-daemon default &&
+                  rc-service guix-daemon start; } &&
+                _msg "${PAS}enabled Guix daemon via OpenRC"
+            ;;
         NA|*)
             _msg "${ERR}unsupported init system; run the daemon manually:"
             echo "  ${ROOT_HOME}/.config/guix/current/bin/guix-daemon --build-users-group=guixbuild"
@@ -396,7 +428,7 @@ sys_enable_guix_daemon()
     ln -sf "${var_guix}/bin/guix"  "$local_bin"
 
     [ -e "$info_path" ] || mkdir -p "$info_path"
-    for i in ${var_guix}/share/info/*; do
+    for i in "${var_guix}"/share/info/*; do
         ln -sf "$i" "$info_path"
     done
 }
@@ -423,14 +455,12 @@ sys_create_init_profile()
     cat <<"EOF" > /etc/profile.d/guix.sh
 # _GUIX_PROFILE: `guix pull` profile
 _GUIX_PROFILE="$HOME/.config/guix/current"
-if [ -L $_GUIX_PROFILE ]; then
-  export PATH="$_GUIX_PROFILE/bin${PATH:+:}$PATH"
-  # Export INFOPATH so that the updated info pages can be found
-  # and read by both /usr/bin/info and/or $GUIX_PROFILE/bin/info
-  # When INFOPATH is unset, add a trailing colon so that Emacs
-  # searches 'Info-default-directory-list'.
-  export INFOPATH="$_GUIX_PROFILE/share/info:$INFOPATH"
-fi
+export PATH="$_GUIX_PROFILE/bin${PATH:+:}$PATH"
+# Export INFOPATH so that the updated info pages can be found
+# and read by both /usr/bin/info and/or $GUIX_PROFILE/bin/info
+# When INFOPATH is unset, add a trailing colon so that Emacs
+# searches 'Info-default-directory-list'.
+export INFOPATH="$_GUIX_PROFILE/share/info:$INFOPATH"
 
 # GUIX_PROFILE: User's default profile
 GUIX_PROFILE="$HOME/.guix-profile"
@@ -445,6 +475,26 @@ export XDG_DATA_DIRS="$GUIX_PROFILE/share:${XDG_DATA_DIRS:-/usr/local/share/:/us
 EOF
 }
 
+sys_create_shell_completion()
+{ # Symlink supported shell completions system-wide
+
+    var_guix=/var/guix/profiles/per-user/root/current-guix
+    bash_completion=/etc/bash_completion.d
+    zsh_completion=/usr/share/zsh/site-functions
+    fish_completion=/usr/share/fish/vendor_completions.d
+
+    { # Just in case
+        for dir_shell in $bash_completion $zsh_completion $fish_completion; do
+            [ -d "$dir_shell" ] || mkdir -p $dir_shell
+        done;
+
+        ln -sf ${var_guix}/etc/bash_completion.d/* "$bash_completion";
+        ln -sf ${var_guix}/share/zsh/site-functions/* "$zsh_completion";
+        ln -sf ${var_guix}/share/fish/vendor_completions.d/* "$fish_completion"; } &&
+        _msg "${PAS}installed shell completion"
+}
+
+
 welcome()
 {
     cat<<"EOF"
@@ -488,6 +538,7 @@ main()
     chk_gpg_keyring
     chk_init_sys
     chk_sys_arch
+    chk_sys_nscd
 
     _msg "${INF}system is ${ARCH_OS}"
 
@@ -502,6 +553,7 @@ main()
     sys_enable_guix_daemon
     sys_authorize_build_farms
     sys_create_init_profile
+    sys_create_shell_completion
 
     _msg "${INF}cleaning up ${tmp_path}"
     rm -r "${tmp_path}"
diff --git a/etc/indent-code.el b/etc/indent-code.el
index 255ffb126b..84b15b356f 100755
--- a/etc/indent-code.el
+++ b/etc/indent-code.el
@@ -4,6 +4,7 @@
 ;; Copyright © 2017 Alex Kost <alezost@gmail.com>
 ;; Copyright © 2017 Ludovic Courtès <ludo@gnu.org>
 ;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 
 ;; This file is part of GNU Guix.
 
@@ -93,7 +94,7 @@
      ;; Indent the definition of PACKAGE-NAME in FILE-NAME.
      (find-file file-name)
      (goto-char (point-min))
-     (if (re-search-forward (concat "^(define\\(-public\\) +"
+     (if (re-search-forward (concat "^(define\\(\\|-public\\) +"
                                     package-name)
                             nil t)
          (let ((indent-tabs-mode nil))
diff --git a/etc/news.scm b/etc/news.scm
index 1ef238ca2d..044561cef9 100644
--- a/etc/news.scm
+++ b/etc/news.scm
@@ -1,7 +1,12 @@
 ;; GNU Guix news, for use by 'guix pull'.
 ;;
-;; Copyright © 2019, 2020 Ludovic Courtès <ludo@gnu.org>
+;; Copyright © 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
 ;; Copyright © 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;; Copyright © 2019, 2020 Miguel Ángel Arruga Vivas <rosen644835@gmail.com>
+;; Copyright © 2019, 2020 Konrad Hinsen <konrad.hinsen@fastmail.net>
+;; Copyright © 2019, 2020 Julien Lepiller <julien@lepiller.eu>
+;; Copyright © 2019, 2020, 2021 Florian Pelz <pelzflorian@pelzflorian.de>
+;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
 ;; Copyright © 2020 Mathieu Othacehe <m.othacehe@gmail.com>
 ;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
 ;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
@@ -13,8 +18,670 @@
 (channel-news
  (version 0)
 
+ (entry (commit "9ab817b2a4601b4a6755983590ed7d93ebdc8d09")
+        (title (en "New @option{--with-latest} package transformation option")
+               (de "Neue Paketumwandlungsoption @option{--with-latest}")
+               (fr "Nouvelle option de transformation @option{--with-latest}"))
+        (body
+         (en "The new @option{--with-latest} package transformation option
+gets the latest release of a package, as would be identified by @command{guix
+refresh}, and uses it instead of the currently-packaged version.  For example,
+to install the latest release of GNOME Weather linked against the latest
+version of libgweather, run:
+
+@example
+guix install gnome-weather \\
+  --with-latest=gnome-weather --with-latest=libgweather
+@end example
+
+Run @command{info \"(guix) Package Transformation Options\"} for more info.")
+         (de "Mit der neuen Paketumwandlungsoption @option{--with-latest} wird
+die neueste Veröffentlichung für ein Paket verwendet.  Diese wird wie bei
+@command{guix refresh} bestimmt und anstelle der zurzeit im Paket festgelegten
+Version verwendet.  Um zum Beispiel die neuste Veröffentlichung von GNOME
+Weather gebunden an die neuste Version von libgweather zu installieren, führen
+Sie dies aus:
+
+@example
+guix install gnome-weather \\
+  --with-latest=gnome-weather --with-latest=libgweather
+@end example
+
+Führen Sie für mehr Informationen @command{info \"(guix.de)
+Paketumwandlungsoptionen\"} aus.")
+         (fr "La nouvelle option de transformation de paquets
+@option{--with-latest} récupère la dernière version d'un logiciel telle
+qu'elle serait trouvée par @command{guix refresh} et l'utilise à la place la
+version actuellement fournie par le paquet.  Par exemple, pour installer la
+dernière version de GNOME Weather, elle-même compilée avec la dernière version
+de libgweather, on lancera :
+
+@example
+guix install gnome-weather \\
+  --with-latest=gnome-weather --with-latest=libgweather
+@end example
+
+Voir @command{info \"(guix.fr) Options de transformation de paquets\"} pour
+plus de détails.")))
+
+ (entry (commit "a879e35116043d5daf3d9d175b697d10b9177fd5")
+        (title (en "Substitutes can now be compressed with zstd")
+               (de "Substitute können nun mit zstd komprimiert werden")
+               (fr "Les substituts peuvent maintenant être compressés avec zstd"))
+        (body
+         (en "The @command{guix publish} command now supports substitute
+compression with zstd and @command{guix-daemon} can now fetch and decompress
+them.
+
+The advantage of zstd over the other options is its high compression and
+decompression throughput, with good compression ratios (not as good as lzip,
+but slightly better than gzip).  Its high decompression throughput makes it a
+good choice in situations where substitute downloads would otherwise be
+CPU-bound, typically when having a high-speed connection to the substitute
+server.  Run @command{info \"(guix) Invoking guix publish\"} for more info.
+
+To be able to fetch zstd-compressed substitutes (if the substitute servers you
+chose provide them), you need to upgrade your daemon.  Run @command{info
+\"(guix) Upgrading Guix\"} to learn how to do it.")
+         (de "Mit dem Befehl @command{guix publish} können Sie jetzt auch
+Substitute mit zstd komprimieren und @command{guix-daemon} kann sie laden und
+dekomprimieren.
+
+zstd bietet gegenüber den anderen Optionen einen hohen Durchsatz bei
+Kompression und Dekompression mit guten Kompressionsverhältnissen (nicht so
+gut wie lzip, aber etwas besser als gzip).  Wegen des hohen Durchsatzes bei
+der Dekompression ist zstd eine gute Wahl, wenn beim Herunterladen von
+Substituten ansonsten der Engpass bei der Prozessorleistung läge, etwa weil
+eine schnelle Netzwerkverbindung zum Substitutserver besteht.  Führen Sie für
+mehr Informationen @command{info \"(guix.de) Aufruf von guix publish\"} aus.
+
+Um zstd-komprimierte Substitute benutzen zu können (wenn der Substitutserver
+sie anbietet), müssen Sie Ihren Daemon aktualisieren.  Führen Sie
+@command{info \"(guix.de) Aktualisieren von Guix\"} aus, um zu erfahren, wie
+Sie ihn aktualisieren.")
+         (fr "La commande @command{guix publish} peut maintenant compresser
+les substituts avec zstd et @command{guix-daemon} est capable de les récupérer
+et de les décompresser.
+
+L'avantage de zstd par rapport aux autres méthodes est son haut débit en
+compression et décompression, avec un taux de compression correct (pas aussi
+bon que lzip, mais légèrement meilleur que gzip).  Sa vitesse de décompression
+en fait un bon choix dans les situations où le temps de téléchargement des
+substituts se retrouve sinon limité par le temps de calcul comme c'est le cas
+lorsqu'on bénéficie d'une connexion rapide au serveur de substitut.  Lancer
+@command{info \"(guix.fr) Invoquer guix publish\"} pour plus d'informations.
+
+Pour pouvoir télécharger des substituts compressés avec zstd (si les serveurs
+de substituts choisis les fournissent), il faudra d'abord mettre à jour le
+démon.  Lancer @command{info \"(guix.fr) Mettre à niveau Guix\"} pour voir
+comment faire.")))
+
+ (entry (commit "e38d90d497e19e00263fa28961c688a433154386")
+        (title (en "New @option{--with-patch} package transformation option")
+               (de "Neue Paketumwandlungsoption @option{--with-patch}")
+               (fr "Nouvelle option de transformation @option{--with-patch}"))
+        (body
+         (en "The new @option{--with-patch} package transformation option
+applies patches to the specified packages before building them.  The example
+below builds the GNU Core Utilities against a patched C library (glibc):
+
+@example
+guix build coreutils --with-patch=glibc=./glibc-frob.patch
+@end example
+
+Run @command{info \"(guix) Package Transformation Options\"} for more info.")
+         (de "Die neue Paketumwandlungsoption @option{--with-patch} wendet
+Patches auf die angegebenen Pakete an, bevor sie erstellt werden. Das folgende
+Beispiel lässt die GNU Core Utilities mit einer gepatchten
+C-Bibliothek (glibc) erstellen:
+
+@example
+guix build coreutils --with-patch=glibc=./glibc-frob.patch
+@end example
+
+Führen Sie für mehr Informationen @command{info \"(guix.de)
+Paketumwandlungsoptionen\"} aus.")
+         (fr "La nouvelle option de transformation de paquets
+@option{--with-patch} applique des modifications (@i{patches}) aux paquets
+spécifiés avant de les compiler.  L'exemple suivant compile les utilitaires de
+base GNU avec une bibliothèque C (glibc) modifiée :
+
+@example
+guix build coreutils --with-patch=glibc=./glibc-frob.patch
+@end example
+
+Voir @command{info \"(guix.fr) Options de transformation de paquets\"} pour
+plus de détails.")))
+
+ (entry (commit "79f9dee3c4c0e6d21066f142116a537207ae7ba4")
+        (title (en "Local substitute servers discovery is now supported")
+               (de "Substitutserver können jetzt im lokalen Netz erkannt werden")
+               (es "Los servidores de sustituciones se pueden descubrir localmente")
+               (fr "La découverte des serveurs de substituts locaux est désormais supportée"))
+        (body
+         (en "The @command{guix-daemon} can now discover local substitute
+servers when the @option{--discover} option is passed.  Only the substitute
+servers started with the @option{--advertise} option will be discovered.  The
+network discovery is based on mDNS and DNS-SD protocols, using Guile-Avahi
+library for now.")
+         (de "Mit dem @command{guix-daemon} können jetzt lokal laufende
+Substitutserver erkannt werden, wenn die Befehlszeilenoption
+@option{--discover} übergeben wurde.  Nur solche Substitutserver werden
+gefunden, die mit der Befehlszeilenoption @option{--advertise} gestartet
+wurden.  Die Ermittlung im Netzwerk verfügbarer Substitutserver baut auf den
+Protokollen mDNS und DNS-SD auf.  Derzeit wird dazu die Bibliothek Guile-Avahi
+benutzt.")
+         (es "El daemon @command{guix-daemon} ahora puede descubrir servidores
+de sustituciones locales cuando se le proporciona la opción
+@option{--discover}.  Únicamente se descubrirán los servidores de
+sustituciones que se hayan arrancado con la opción @option{--advertise}. La
+búsqueda en la red se basa en los protocolos mDNS y DNS-SD, actualmente
+mediante el uso de la biblioteca Guile-Avahi.")
+         (fr "Le @command{guix-daemon} peut désormais découvrir les serveurs
+de substituts locaux lorsque l'option @option{--discover} est passée.  Seuls
+les serveurs de substituts démarrés avec l'option @option{--advertise} seront
+découverts.  La découverte réseau utilise les protocoles mDNS et DNS-SD, pour
+l'instant grâce à la librairie Guile-Avahi.")))
+
+ (entry (commit "a9a2fdaabcc78e7a54d9a6bcfa4ee3de308e9a90")
+        (title (en "Logical Volume Manager (LVM) now supported on Guix System")
+               (de "Logical Volume Manager (LVM) wird jetzt auf Guix System unterstützt")
+               (es "El sistema Guix ahora implementa también volúmenes lógicos LVM"))
+        (body
+         (en "On Guix System, the new @code{lvm-device-mapping} variable
+allows you to declare ``mapped devices'' for LVM, the Linux Logical Volume
+Manager.  For example, LVM logical volumes ``alpha'' and ``beta'' from volume
+group ``vg0'' can be declared as follows:
+
+@lisp
+(mapped-device
+  (source \"vg0\")
+  (target (list \"vg0-alpha\" \"vg0-beta\"))
+  (type lvm-device-mapping))
+@end lisp
+
+See @command{info \"(guix) Mapped Devices\"} for more information.")
+         (de "Auf Guix System erlaubt Ihnen die neue Variable
+@code{lvm-device-mapping}, „zugeordnete Geräte“ (Mapped Devices) für LVM, den
+Linux Logical Volume Manager, zu deklarieren. Zum Beispiel können logische
+Datenträger von LVM namens „alpha“ und „beta“ aus der
+Datenträgergruppe (Volume Group) „vg0“ wie folgt deklariert werden:
+
+@lisp
+(mapped-device
+  (source \"vg0\")
+  (target (list \"vg0-alpha\" \"vg0-beta\"))
+  (type lvm-device-mapping))
+@end lisp
+
+Siehe @command{info \"(guix.de) Zugeordnete Geräte\"} für nähere Informationen.")
+         (es "En el sistema Guix, la nueva variable @code{lvm-device-mapping}
+le permite declarar «dispositivos traducidos» para LVM, el gestor de volúmenes
+lógicos de Linux. A continuación se muestra un ejemplo con la declaración de
+los volúmenes lógicos «alfa» y «beta» del grupo de volúmenes «vg0»:
+
+@lisp
+(mapped-device
+  (source \"vg0\")
+  (target (list \"vg0-alfa\" \"vg0-beta\"))
+  (type lvm-device-mapping))
+@end lisp
+
+Véase @command{info \"(guix.es) Dispositivos traducidos\"} para obtener más
+información.")))
+
+ (entry (commit "3b6e4e5fd05e72b8a32ff1a2d5e21464260e21e6")
+        (title (en "List of substitute keys is now declarative on Guix System")
+               (de "Liste der Substitutschlüssel auf Guix System ist jetzt deklarativ")
+               (es "Claves para sustituciones del sistema Guix en formato declarativo")
+               (fr "Liste des clefs de substituts désormais déclarative sur Guix System"))
+        (body
+         (en "The list of authorized substitute keys, available in
+@file{/etc/guix/acl}, is now built by default in a purely declarative fashion
+on Guix System based on the @code{authorized-keys} field of the configuration
+of @code{guix-service-type}.  This means that manual changes to
+@file{/etc/guix/acl} are now @emph{discarded} upon reconfiguration or
+reboot (a backup is made as @file{/etc/guix/acl.bak} in that case).
+
+We recommend updating your operating system configuration to explicitly list
+all the authorized substitute keys.  See @command{info \"(guix) Base
+Services\"}, for more info about @code{guix-configuration} and
+@code{authorized-keys}.
+
+Alternatively, you can set the @code{authorize-key?} field of
+@code{guix-configuration} to @code{#f} to restore previous behavior.")
+         (de "Die Liste von autorisierten Substitutschlüsseln, die in
+@file{/etc/guix/acl} steht, wird auf Guix System nach Vorgabe jetzt auf rein
+deklarative Weise erstellt, je nach Inhalt des @code{authorized-keys}-Feldes
+der Konfiguration des @code{guix-service-type}. Das hat zur Folge, dass
+manuelle Änderungen an @file{/etc/guix/acl} von jetzt an nach jedem
+Rekonfigurieren oder Neustarten @emph{verworfen} werden (in diesem Fall wird
+eine Sicherheitskopie namens @file{/etc/guix/acl.bak} angelegt).
+
+Wir empfehlen, dass Sie Ihre Betriebssystemkonfiguration aktualisieren, damit
+dort alle autorisierten Substitutschlüssel ausdrücklich aufgeführt
+werden. Siehe @command{info \"(guix.de) Basisdienste\"} für mehr Informationen
+zur @code{guix-configuration} und @code{authorized-keys}.
+
+Alternativ können Sie das @code{authorize-key?}-Feld der
+@code{guix-configuration} auf @code{#f} setzen, um zum alten Verhalten
+zurückzugehen.")
+         (es "El listado de claves autorizadas para la obtención de
+sustituciones, disponible en @file{/etc/guix/acl}, ahora se genera de manera
+predeterminada en el sistema Guix de forma completamente declarativa en base
+al campo @code{authorized-keys} del la configuración para el servicio
+@code{guix-service-type}. Esto significa que los cambios que se hayan
+realizado de manera manual en @file{/etc/guix/acl} @emph{se descartan} tras
+una reconfiguración del sistema o tras un reinicio (se realiza una copia de
+seguridad en la ruta @file{/etc/guix/acl.bak} en este caso).
+
+Le recomendamos que actualice su configuración del sistema operativo para que
+enumere explícitamente todas las claves que desea autorizar para la obtención
+de sustituciones.  Véase @command{info \"(guix.es) Servicios base\"}, para
+obtener más información sobre @code{guix-configuration} y
+@code{authorized-keys}.
+
+También puede proporcionar el valor @code{#f} en el campo
+@code{authorize-key?} de @code{guix-configuration} para volver al
+comportamiento que se obtenía con versiones previas.")
+         (fr "La liste des clefs de substituts autorisées, stockée dans
+@file{/guix/guix/acl}, est dorénavant construite par défaut de manière
+déclarative sur Guix System, en se basant sur le champs @code{authorized-keys}
+de la configuration de @code{guix-service-type}.  Cela signifie que les
+modifications apportées manuellement à @file{/etc/guix/acl} seront désormais
+@emph{perdues} lors d'une reconfiguration ou d'un redémarrage (dans ce cas une
+sauvegarde est faite dans @file{/etc/guix/acl.bak}).
+
+Nous recommandons de mettre à jour sa configuration de système d'exploitation
+pour y lister explicitement les clefs autorisées.  Lancez @command{info
+\"(guix.fr) Services de base\"} pour plus d'informations sur
+@code{guix-configuration} et @code{authorized-keys}.
+
+Il est également possible de mettre le champs @code{authorize-key?} de
+@code{guix-configuration} à @code{#f} pour restaurer le comportement qui
+prévalait jusqu'à maintenant.")))
+
+ (entry (commit "6aeda81602555fbeac0c0a209e74f5262093b513")
+        (title (en "New @option{--with-debug-info} package transformation option")
+               (de "Neue Paketumwandlungsoption @option{--with-debug-info}")
+               (es "Nueva opción de transformación @option{--with-debug-info}")
+               (fr "Nouvelle option de transformation @option{--with-debug-info}"))
+        (body
+         (en "The new @option{--with-debug-info} option builds a variant of a
+package that includes debug info and grafts it onto the application you want
+to debug.  Thus, only the package for which you want debug info needs to be
+recompiled.  This is useful for packages that do not already have a
+@code{debug} output.
+
+For example, here is how you would obtain debug info for the @code{glib}
+library so you can inspect it while debugging Inkscape:
+
+@example
+guix build --with-debug-info=glib inkscape
+@end example
+
+Run @command{info \"(guix) Package Transformation Options\"} for more info.")
+         (de "Die neue Paketumwandlungsoption @option{--with-debug-info} lässt
+eine Variante eines Pakets erstellen, die auch Informationen zur Fehlersuche
+enthält. Damit wird die Anwendung veredelt, wo Sie Fehler nachvollziehen
+möchten. Somit muss nur das Paket, für das Sie die Informationen brauchen, neu
+kompiliert werden. Das ist hilfreich bei Paketen, die noch nicht über eine
+@code{debug}-Ausgabe verfügen.
+
+Zum Beispiel würden Sie so Informationen zur Fehlersuche für die
+@code{glib}-Bibliothek bekommen, um sie inspizieren zu können, wenn Sie Fehler
+in Inkscape nachvollziehen möchten:
+
+@example
+guix build --with-debug-info=glib inkscape
+@end example
+
+Führen Sie für mehr Informationen @command{info \"(guix.de)
+Paketumwandlungsoptionen\"} aus.")
+         (es "La nueva opción @option{--with-debug-info} construye una
+variante del paquete que incluye la información de depuración y la injerta
+en la aplicación que desee depurar.  Por tanto, únicamente el paquete del
+que desee información de depuración debe construirse de nuevo.  Es útil
+para paquetes que no tienen ya una salida @code{debug}.
+
+El siguiente ejemplo muestra como obtener información de depuración
+para la biblioteca @code{glib} de modo que pueda inspeccionarla mientras
+depura Inkscape:
+
+@example
+guix build --with-debug-info=glib inkscape
+@end example
+
+Ejecute @command{info \"(guix.es) Opciones de transformación de paquetes\"}
+para obtener más información.")
+         (fr "La nouvelle option de transformation de paquets
+@option{--with-debug-info} compile une variante d'un paquet avec les
+informations de déboguage et la greffe sur l'application que l'on veut
+déboguer.  Ainsi seul le paquet pour lequel on demande des informations de
+déboguage a besoin d'être recompilé.  C'est utile pour les paquets n'ayant pas
+déjà un résultat @code{debug}.
+
+Voici par exemple comment obtenir des informations de déboguage pour la
+bibliothèque @code{glib} de manière à pouvoir l'inspecter quand on débuggue
+Inkscape :
+
+@example
+guix build --with-debug-info=glib inkscape
+@end example
+
+Voir @command{info \"(guix.fr) Options de transformation de paquets\"} pour
+plus de détails.")))
+
+ (entry (commit "abd7a474615353149a44f4504f0b4b248dcc0716")
+        (title (en "New @option{--with-c-toolchain} package transformation option")
+               (de "Neue Paketumwandlungsoption @option{--with-c-toolchain}")
+               (es "Nueva opción de transformación @option{--with-c-toolchain}")
+               (fr "Nouvelle option de transformation @option{--with-c-toolchain}"))
+        (body
+         (en "The new @option{--with-c-toolchain} package transformation
+options provides an easy way for developers to rebuild their favorite packages
+with the C/C++ tool chain of their choice instead of the default one.
+
+For example, the following command rebuilds the @code{fftw} and @code{fftwf}
+packages as well as every package that depends on them, up to and including
+@code{octave-cli}, using GCC version 10 (currently GCC 7.5 is used by
+default):
+
+@example
+guix build octave-cli \\
+  --with-c-toolchain=fftw=gcc-toolchain@@10 \\
+  --with-c-toolchain=fftwf=gcc-toolchain@@10
+@end example
+
+Run @command{info \"(guix) Package Transformation Options\"} for more info.")
+         (de "Die neue Paketumwandlungsoption @option{--with-c-toolchain}
+bietet Entwicklern die Möglichkeit, leicht ihre Lieblingspakete mit der
+selbstgewählten Toolchain für C/C++ anstelle der vorgegebenen neu zu
+erstellen.
+
+Zum Beispiel werden mit folgendem Befehl die Pakete @code{fftw} und
+@code{fftwf} sowie alle davon abhängigen Pakete bis einschließlich
+@code{octave-cli} mit Version 10 der GCC erstellt (vorgegeben wäre zurzeit,
+GCC 7.5 zu benutzen):
+
+@example
+guix build octave-cli \\
+  --with-c-toolchain=fftw=gcc-toolchain@@10 \\
+  --with-c-toolchain=fftwf=gcc-toolchain@@10
+@end example
+
+Führen Sie für mehr Informationen @command{info \"(guix.de)
+Paketumwandlungsoptionen\"} aus.")
+         (es "La nueva opción de transformación de paquetes
+@option{--with-c-toolchain} proporciona a las desarrolladoras una manera
+fácil de reconstruir sus paquetes favoritos con la cadena de herramientas
+de compilación de C/C++ que elijan en vez de la predeterminada.
+
+Por ejemplo, la siguiente orden reconstruye los paquetes @code{fftw} y
+@code{fftwf} así como todos los paquetes que dependen de ellos hasta
+@code{octave-cli}, usando la versión 10 de GCC (el compilador
+predeterminado en estos momentos es GCC 7.5):
+
+@example
+guix build octave-cli \\
+  --with-c-toolchain=fftw=gcc-toolchain@@10 \\
+  --with-c-toolchain=fftwf=gcc-toolchain@@10
+@end example
+
+Ejecute @command{info \"(guix.es) Opciones de transformación de paquetes\"}
+para obtener más información.")
+         (fr "La nouvelle option de transformation de paquets
+@option{--with-c-toolchain} permet aux développeur·euses de recompiler leurs
+paquets préférés avec la chaîne d'outils C/C++ de leur choix à la place de
+celle par défaut.
+
+Par exemple, la commande ci-dessous recompile @code{fftw}, @code{fftwf} et
+tous les paquets qui en dépendent, jusqu'à @code{octave-cli} inclus, avec GCC
+10 (actuellement c'est GCC 7.5 qui est utilisé par défaut):
+
+@example
+guix build octave-cli \\
+  --with-c-toolchain=fftw=gcc-toolchain@@10 \\
+  --with-c-toolchain=fftwf=gcc-toolchain@@10
+@end example
+
+Voir @command{info \"(guix.fr) Options de transformation de paquets\"} pour
+plus de détails.")))
+
+ (entry (commit "8e1907a72430aa989125b053573ef0897c480697")
+        (title (en "Package transformation options now recorded in profiles")
+               (es "Las opciones de transformación de paquetes ahora se
+quedan registradas en el perfil")
+               (de "Paketumwandlungsoptionen werden nun in Profilen gesichert")
+               (fr "Options de transformation sauvegardées dans les profils"))
+        (body
+         (en "When installing packages in a profile, package transformation
+options such as @option{--with-input} are now recorded in the profile.  When
+you eventually run @command{guix upgrade}, those transformations will be
+automatically applied to the upgraded packages.
+
+Run @command{info \"(guix) Package Transformation Options\"} for more info.")
+         (es "Si durante la instalación de paquetes en un perfil se utilizaron
+opciones de transformación de paquetes, como por ejemplo
+@option{--with-input}, éstas se registran en el perfil. Cuando vuelva a
+ejecutar @command{guix upgrade}, dichas transformaciones se aplicarán
+automáticamente a los paquetes actualizados.
+
+Ejecute @command{info \"(guix.es) Opciones de transformación de paquetes\"}
+para obtener más información.")
+         (de "Wenn Sie ein Paket in ein Profil installieren, werden nun
+Paketumwandlungsoptionen wie @option{--with-input} im Profil gespeichert.
+Sobald Sie später @command{guix upgrade} ausführen, werden dieselben
+Umwandlungen automatisch auf die aktualisierten Pakete angewandt.
+
+Führen Sie für mehr Informationen @command{info \"(guix.de)
+Paketumwandlungsoptionen\"} aus.")
+         (fr "Lorsqu'on installe des paquets dans un profil, les options de
+transformation telles que @option{--with-input} sont désormais enregistrées
+dans le profil.  Quand on le met plus tard à jour avec @command{guix upgrade},
+ces transformations sont automatiquement appliquées aux nouveaux paquets.
+
+Voir @command{info \"(guix.fr) Options de transformation de paquets\"} pour
+plus de détails.")))
+
+ (entry (commit "313f492657f1d0863c641fa5ee7f5b7028e27c94")
+        (title (en "New @option{--image-type} option for @command{guix system disk-image}.")
+               (es "Nueva opción @option{--image-type} para @command{guix system disk-image}.")
+               (de "Neue Option @option{--image-type} für @command{guix system disk-image}.")
+               (fr "Nouvelle option @option{--image-type} pour @command{guix system disk-image}."))
+        (body
+         (en "The @option{--file-system-type} option for @command{guix system
+disk-image} command has been replaced by the new @option{--image-type} option.
+By default, @code{raw} disk images are produced, but @code{hurd-qcow2},
+@code{hurd-raw}, @code{uncompressed-iso9660} and @code{iso9660} image types
+are also available.
+
+The @option{--list-image-types} option lists all the available image types.")
+         (es "La opción @option{--file-system-type} de @command{guix system
+disk-image} se ha sustituido por la nueva opción @option{--image-type}.  De
+manera predeterminada se producen imágenes en formato crudo (@code{raw}) pero
+también están disponibles los tipos de imagen @code{hurd-qcow2},
+@code{hurd-raw}, @code{uncompressed-iso9660} y @code{iso9660}.
+
+La opción @option{--list-image-types} muestra una lista con todos los tipos
+de imagen disponibles.")
+         (de "Anstelle der Befehlszeilenoption @option{--file-system-type} für
+@command{guix system disk-image} gibt es nun die neue Option
+@option{--image-type}.  In der Vorgabeeinstellung @code{raw} werden rohe
+Disk-Images erzeugt, aber es können auch die Abbildtypen @code{hurd-qcow2},
+@code{hurd-raw}, @code{uncompressed-iso9660} und @code{iso9660} ausgewählt
+werden.
+
+Mit der Option @option{--list-image-types} werden alle verfügbaren Abbildtypen
+aufgelistet.")
+         (fr "L'option @option{--file-system-type} pour la commande
+@command{guix system disk-image} a été remplacée par la nouvelle option
+@option{--image-type}. Par défaut, l'option @code{raw}, produisant des images
+disque brutes est sélectionnée. Les options @code{hurd-qcow2},
+@code{hurd-raw}, @code{uncompressed-iso9660} et @code{iso9660} sont également
+disponibles.
+
+La nouvelle option @option{--list-image-types} énumère les types d'image
+disponibles.")))
+
+ (entry (commit "8819551c8d2a12cd4e84e09b51e434d05a012c9d")
+        (title (en "Package transformations now apply to implicit inputs")
+               (es "Las transformaciones de paquetes ahora afectan también
+a las dependencias implícitas")
+               (de "Paketumwandlungen betreffen jetzt auch implizite Eingaben")
+               (fr "Les transformations de paquets s'appliquent aux
+dépendances implicites"))
+        (body
+         (en "Package transformation options such as @option{--with-branch},
+@option{--with-input}, and so on now apply to implicit inputs---previously
+only a package's explicit inputs would be affected.  This allows for things
+such as replacing the Python dependency of a package that uses
+@code{python-build-system}:
+
+@example
+guix install --with-input=python=python2 python-itsdangerous
+@end example
+
+Another example is grafting a different version of the GNU C
+Library (@code{glibc} is an implicit input of almost all the packages and is
+``deep down'' in the dependency graph):
+
+@example
+guix build --with-graft=glibc=glibc@@2.31 hello
+@end example
+
+Run @command{info \"(guix) Package Transformation Options\"} for more
+info.")
+         (es "Las opciones de transformación de paquetes como
+@option{--with-branch}, @option{--with-input}, etcétera, ahora también
+influyen en las entradas implícitas---antes únicamente las entradas explícitas
+del paquete se veían afectadas. Esto permite, por ejemplo, sustituir la
+dependencia en python de un paquete que use @code{python-build-system}:
+
+@example
+guix install --with-input=python=python2 python-itsdangerous
+@end example
+
+Otro ejemplo podría ser el injerto de una versión diferente de la biblioteca
+de C de GNU (@code{glibc} es una entrada implícita de casi todos los paquetes
+y ``muy abajo'' en el grafo de dependencias):
+
+@example
+guix build --with-graft=glibc=glibc@@2.31 hello
+@end example
+
+Ejecute @command{info \"(guix.es) Opciones de transformación de paquetes\"}
+para obtener más información.")
+         (de "Paketumwandlungsoptionen wie @option{--with-branch},
+@option{--with-input} und so weiter betreffen nun auch implizite Eingaben —
+zuvor haben sie sich nur auf die expliziten Eingaben eines Pakets
+ausgewirkt. Dadurch kann jetzt zum Beispiel die Python-Abhängigkeit eines
+Pakets, welches @code{python-build-system} benutzt, ersetzt werden:
+
+@example
+guix install --with-input=python=python2 python-itsdangerous
+@end example
+
+Ein weiteres Beispiel ist, mit einer anderen Version der GNU-C-Bibliothek zu
+veredeln (@code{glibc} ist eine implizite Eingabe fast aller Pakete und steckt
+„ganz tief“ im Abhängigkeitsgraphen):
+
+@example
+guix build --with-graft=glibc=glibc@@2.31 hello
+@end example
+
+Führen Sie für mehr Informationen @command{info \"(guix.de)
+Paketumwandlungsoptionen\"} aus.")
+         (fr "Les options de transformation de paquets telles que
+@option{--with-branch} et @option{--with-input} s'appliquent désormais aux
+dépendances implicites — jusque là seules les dépendances explicites des
+paquets étaient prises en compte.  Cela permet certaines choses telles que
+remplacer la dépendance sur Python d'un paquet utilisant
+@code{python-build-system} :
+
+@example
+guix install --with-input=python=python2 python-itsdangerous
+@end example
+
+Un autre exemple est la possibilité de greffer une version différente de la
+bibliothèque C GNU (la @code{glibc} est une dépendance implicite de tous les
+paquets et se trouve « tout en bas » du graphe de dépendance) :
+
+@example
+guix build --with-graft=glibc=glibc@@2.31 hello
+@end example
+
+Voir @command{info \"(guix.fr) Options de transformation de paquets\"} pour
+plus de détails.")))
+
+ (entry (commit "f458cfbcc54ed87b1a87dd9e150ea276f17eab74")
+        (title (en "New @option{--without-tests} transformation option")
+               (es "Nueva opción de transformación @option{--without-tests}")
+               (de "Neue Paketumwandlungsoption @option{--without-tests}")
+               (fr "Nouvelle option de transformation @option{--without-tests}"))
+        (body
+         (en "The new @option{--without-tests} package transformation option
+instructs Guix to skip the test suite of a given package.  In the example
+below, @code{guile-gcrypt} is built using a variant of @code{automake} itself
+built without running its (lengthy) test suite:
+
+@example
+guix build guile-gcrypt --without-tests=automake
+@end example
+
+This is primarily useful as a way to speed up development cycles, or to work
+around flaky test suites---skipping tests can hide real issues, so use with
+care.  Run @command{info \"(guix) Package Transformation Options\"} for more
+info.")
+         (es "La nueva opción de transformación de paquetes
+@option{--without-tests} indica a Guix que omita la batería de pruebas del
+paquete proporcionado. En el siguiente ejemplo @code{guile-gcrypt} se
+construye usando una variación de @code{automake}, la cual se ha construido
+sin ejecutar su (larga) batería de pruebas:
+
+@example
+guix build guile-gcrypt --without-tests=automake
+@end example
+
+Esto es principalmente útil como una forma de acelerar ciclos de desarrollo o
+de omitir temporalmente baterías de pruebas problemáticas---omitir las pruebas
+puede ocultar problemas reales, por lo que debe usarse con precaución.
+Ejecute @command{info \"(guix.es) Opciones de transformación de paquetes\"}
+para obtener más información.")
+         (de "Mit der neuen Paketumwandlungsoption @option{--without-tests}
+wird Guix angewiesen, den Testkatalog des angegebenen Pakets zu
+überspringen. Im folgenden Beispiel wird @code{guile-gcrypt} mit einer
+Variante von @code{automake} erstellt, die wiederum ohne Durchlauf ihres (viel
+Zeit in Anspruch nehmenden) Testkatalogs erstellt wird:
+
+@example
+guix build guile-gcrypt --without-tests=automake
+@end example
+
+Der hauptsächliche Nutzen liegt in der Beschleunigung von Entwicklungszyklen
+oder im Umgehen unzuverlässiger Testkataloge. Allerdings kann das Überspringen
+dazu führen, dass echte Probleme verborgen bleiben. Setzen Sie es mit Bedacht
+ein. Führen Sie @command{info \"(guix.de) Paketumwandlungsoptionen\"} aus, um
+mehr Informationen zu erhalten.")
+         (fr "La nouvelle option de transformation de paquets
+@option{--without-tests} demande à Guix de sauter la suite de tests d'un
+paquet.  Dans l'exemple ci-dessous, @code{guile-gcrypt} est construit en
+utilisant une variante de @code{automake} construite sans lancer sa suite de
+tests :
+
+@example
+guix build guile-gcrypt --without-tests=automake
+@end example
+
+Cette option est surtout intéressante pour raccourcir le cycle de
+développement ou pour contourner une suite de tests qui n'est pas
+fiable — sauter les tests peut cacher des vrais problèmes, à utiliser avec
+précaution donc.  Voir @command{info \"(guix.fr) Options de transformation de
+paquets\"} pour plus de détails.")))
+
  (entry (commit "a98712785e0b042a290420fd74e5a4a5da4fc68f")
         (title (en "New @command{guix git authenticate} command")
+               (es "Nueva orden @command{guix git authenticate}")
                (de "Neuer Befehl @command{guix git authenticate}")
                (fr "Nouvelle commande @command{guix git authenticate}"))
         (body
@@ -30,6 +697,20 @@ to allow people to authenticate code fetched from your repository.
 Run @command{info \"(guix) Invoking guix git authenticate\"} for more info,
 and see @uref{https://guix.gnu.org/blog/2020/securing-updates/} for details on
 these mechanisms.")
+         (es "La nueva orden @command{guix git authenticate} comprueba la
+validez de un repositorio git verificando las firmas de las revisiones y
+comprobando que todas las firmas están autorizadas, exactamente igual que
+@command{guix pull}.
+
+Esta orden es principalmente útil para desarrolladoras de canales. Permite
+asegurar, antes de subir nada al repositorio remoto, que el canal contiene
+únicamente revisiones firmadas por claves autorizadas. No obstante esta orden
+es útil siempre que use git y quiera que otras personas puedan verificar el
+código obtenido de su repositorio.
+
+Ejecute @command{info \"(guix.es) Invocación de guix git authenticate\"}
+para obtener más información y vea detalles sobre estos mecanismos en
+ @uref{https://guix.gnu.org/blog/2020/securing-updates/}.")
          (de "Mit dem neuen Befehl @command{guix git authenticate} können Sie
 ein Git-Repository authentifizieren. Dazu werden alle Commit-Signaturen
 verifiziert und geprüft, dass jede von einer autorisierten Quelle kommt, genau
@@ -62,6 +743,7 @@ pour en savoir plus sur ces mécanismes.")))
 
  (entry (commit "43badf261f4688c8a7a7a9004a4bff8acb205835")
         (title (en "@command{guix pull} authenticates channels")
+               (es "@command{guix pull} verifica los canales")
                (de "@command{guix pull} authentifiziert Kanäle")
                (fr "@command{guix pull} authentifie les canaux"))
         (body
@@ -74,6 +756,16 @@ repository and from attempts to ship malicious code to users.
 
 This feature is currently limited to the @code{guix} channel but will soon be
 available to third-party channel authors.")
+         (es "Las ordenes @command{guix pull} y @command{guix time-machine}
+ahora verifican el código fuente que obtienen, a menos que se proporcione la
+opción @option{--disable-authentication}. Lo que esto significa es que Guix se
+asegura de que cada revisión que recibe está firmada criptográficamente por
+una desarrolladora autorizada. Esto le protege de intentos de modificación del
+repositorio de Guix y de entregas de código con malas intenciones sobre las
+usuarias.
+
+Esta característica está limitada actualmente al canal @code{guix} pero pronto
+estará disponible para autoras de canales independientes.")
          (de "Die Befehle @command{guix pull} und @command{guix time-machine}
 prüfen nun die Authentizität des heruntergeladenen Quellcodes, außer wenn die
 neue Befehlszeilenoption @option{--disable-authentication} angegeben
@@ -97,6 +789,7 @@ Cette fonctionnalité n'est actuellement disponible que pour le canal
 
  (entry (commit "c924e541390f9595d819edc33c19d979917c15ec")
         (title (en "@command{guix repl} adds support for running Guile scripts")
+               (es "@command{guix repl} puede ejecutar guiones de Guile")
                (de "@command{guix repl} kann Guile-Skripte ausführen")
                (fr "@command{guix repl} permet d'exécuter des scripts en langage Guile"))
         (body
@@ -110,6 +803,18 @@ guix repl -- my-script,scm --option1 --option2=option-arg arg1 arg2
 @end example
 
 Run @command{info \"(guix) Invoking guix repl\"} for more information.")
+         (es "La orden @command{guix repl} ahora se puede usar para
+ejecutar guiones de Guile. En comparación con únicamente la ejecución
+de la orden @command{guile}, @command{guix repl} garantiza que todos
+los módulos de Guix y sus dependencias están disponibles en la ruta
+ de búsqueda. Los guiones se ejecutan de este modo:
+
+@example
+guix repl -- mi-guion.scm --opcion1 --opcion2=param-op2 param1 param2
+@end example
+
+Ejecute @command{info \"(guix.es) Invocación de guix repl\"} para obtener
+más información.")
          (de "Der Befehl @command{guix repl} kann jetzt zur Ausführung von
 Guile-Skripten verwendet werden.  Im Vergleich zum Befehl
 @command{guile} garantiert @command{guix repl}, dass alle Guix-Module und
@@ -136,6 +841,7 @@ Exécutez @command{info \"(guix.fr) Invoquer guix repl\"} pour plus d'informatio
 
  (entry (commit "b460ba7992a0b4af2ddb5927dcf062784539ef7b")
         (title (en "Add support to boot from a Btrfs subvolume")
+               (es "Implementado el arranque desde un subvolumen de Btrfs")
                (de "Unterstützung für Systemstart von einem
 Btrfs-Unterlaufwerk hinzugefügt")
                (fr "Ajout du support pour démarrer depuis un sous-volume Btrfs")
@@ -146,6 +852,11 @@ operating system declaration now takes into account the use of a Btrfs
 subvolume for the partition holding @file{/gnu/store}.  Run the command
 @command{info \"(guix) Btrfs file system\"} for more information and
 examples.")
+         (es "El fichero de configuración de GRUB producido por la
+declaración de sistema operativo ahora tiene en cuenta el uso de
+subvolúmenes de Btrfs en la partición que contiene @file{/gnu/store}.
+Ejecute la orden @command{info \"(guix.es) Sistema de ficheros Btrfs\"}
+ para obtener más información y ejemplos.")
          (de "Für die Erzeugung einer GRUB-Konfigurationsdatei aus einer
 Betriebssystemdeklaration kann jetzt ein Btrfs-Unterlaufwerk („Subvolume“) für
 die Partition mit @file{/gnu/store} angegeben werden.  Führen Sie
@@ -165,6 +876,8 @@ voorbeelden.")))
  (entry (commit "6456232164890dbf5aa20394ee24637feb4b7b9e")
         (title (en "@command{guix pack -RR} introduces a new execution
 engine")
+               (es "@command{guix pack -RR} introduce un nuevo motor
+de ejecución")
                (de "@command{guix pack -RR} führt neuen Ausführungstreiber
 ein"))
         (body
@@ -185,6 +898,26 @@ export GUIX_EXECUTION_ENGINE
 @end example
 
 Run @command{info \"(guix) Invoking guix pack\"} for more information.")
+         (es "La orden @command{guix pack -RR} le permite crear un
+archivador tar que contiene @dfn{binarios reposicionables}. Hasta ahora
+dichos binarios dependían o bien de los ``espacios de nombres de usuarias
+sin privilegios'' de Linux o en PRoot, cuando estos no estaban
+implementados. No obstante, PRoot introduce una sobrecarga significativa
+en algunos escenarios de trabajo.
+
+Para estos casos @command{guix pack -RR} introduce una tercera opción
+basada en una extensión al enlazador de tiempo de ejecución de GNU (ld.so)
+y en Fakechroot, lo que conlleva muy poca sobrecarga. Puede seleccionar
+la opción más rápida cuando ejecute un binario reposicionable de esta
+manera:
+
+@example
+GUIX_EXECUTION_ENGINE=performance
+export GUIX_EXECUTION_ENGINE
+@end example
+
+Ejecute @command{info \"(guix.es) Invocación de guix pack\"} para
+obtener más información.")
          (de "Mit dem Befehl @command{guix pack -RR} können Sie einen Tarball
 mit @dfn{verschieblichen Binärdateien} erzeugen (englisch „Relocatable
 Binaries“).  Bisher wurden diese entweder in „unprivilegierten
@@ -209,6 +942,7 @@ mehr wissen wollen.")))
 
  (entry (commit "88a96c568c47c97d05d883ada5afbc4e1200b10f")
         (title (en "New @option{--path} option for @command{guix graph}")
+               (es "Nueva opción @option{--path} para @command{guix graph}")
                (de "Neue Option @option{--path} für @command{guix graph}"))
         (body
          (en "The @command{guix graph} command has a new @option{--path}
@@ -221,6 +955,18 @@ guix graph --path libreoffice libunistring
 @end example
 
 Run @code{info \"(guix) Invoking guix graph\"} for more information.")
+         (es "La orden @command{guix graph} tiene una nueva opción
+@option{--path} que le indica que debe mostrar la ruta más corta entre dos
+paquetes, derivaciones o elementos del almacén. Por ejemplo, la siguiente
+orden muestra la ruta más corta desde el paquete @code{libreoffice} hasta
+@code{libunistring}:
+
+@example
+guix graph --path libreoffice libunistring
+@end example
+
+Ejecute @code{info \"(guix.es) Invocación de guix graph\"} para obtener más
+información.")
          (de "Der Befehl @command{guix graph} verfügt über eine neue
 Befehlszeilenoption @option{--path}, die ihn den kürzesten Pfad zwischen zwei
 Paketen, Ableitungen oder Store-Objekten ausgeben lässt.  Zum Beispiel zeigt
diff --git a/etc/openrc/guix-daemon.in b/etc/openrc/guix-daemon.in
new file mode 100644
index 0000000000..110a58b88d
--- /dev/null
+++ b/etc/openrc/guix-daemon.in
@@ -0,0 +1,28 @@
+#!/sbin/openrc-run
+# GNU Guix --- Functional package management for GNU
+# Copyright © 2020 Morgan Smith <Morgan.J.Smith@outlook.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/>.
+
+export GUIX_LOCPATH=@localstatedir@/guix/profiles/per-user/root/guix-profile/lib/locale
+export LC_ALL=en_US.utf8
+command="@localstatedir@/guix/profiles/per-user/root/current-guix/bin/guix-daemon"
+command_args="--build-users-group=guixbuild"
+command_background="yes"
+pidfile="/var/run/guix-daemon.pid"
+
+output_log="/var/log/guix-daemon-stdout.log"
+error_log="/var/log/guix-daemon-stderr.log"
diff --git a/etc/release-manifest.scm b/etc/release-manifest.scm
index caa200c673..da98d6e00b 100644
--- a/etc/release-manifest.scm
+++ b/etc/release-manifest.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -48,11 +49,18 @@ TARGET."
        '("bootstrap-tarballs" "gcc-toolchain" "nss-certs"
          "openssh" "emacs" "vim" "python" "guile" "guix")))
 
+(define %base-packages/hurd
+  ;; XXX: For now we are less demanding of "i586-gnu".
+  (map specification->package
+       '("coreutils" "grep" "findutils" "gawk" "make"
+         "gcc-toolchain" "tar" "xz")))
+
 (define %system-packages
   ;; Key packages proposed by the Guix System installer.
   (append (map specification->package
                '("xorg-server" "xfce" "gnome" "mate" "enlightenment"
                  "openbox" "awesome" "i3-wm" "ratpoison"
+                 "emacs" "emacs-exwm" "emacs-desktop-environment"
                  "xlockmore" "slock" "libreoffice"
                  "connman" "network-manager" "network-manager-applet"
                  "openssh" "ntp" "tor"
@@ -92,7 +100,9 @@ TARGET."
   (manifest
    (append-map (lambda (system)
                  (map (cut package->manifest-entry* <> system)
-                      %base-packages))
+                      (if (string=? system "i586-gnu")
+                          %base-packages/hurd
+                          %base-packages)))
                %hydra-supported-systems)))
 
 (define %system-manifest
diff --git a/etc/snippets/scheme-mode/guix-package b/etc/snippets/scheme-mode/guix-package
index 48b87e3599..9ff6f997d1 100644
--- a/etc/snippets/scheme-mode/guix-package
+++ b/etc/snippets/scheme-mode/guix-package
@@ -11,20 +11,30 @@
                                           "ant-build-system"
                                           "asdf-build-system"
                                           "cargo-build-system"
+                                          "clojure-build-system"
                                           "cmake-build-system"
+                                          "copy-build-system"
                                           "dub-build-system"
+                                          "dune-build-system"
                                           "emacs-build-system"
                                           "font-build-system"
                                           "glib-or-gtk-build-system"
                                           "gnu-build-system"
                                           "go-build-system"
+                                          "guile-build-system"
                                           "haskell-build-system"
+                                          "julia-build-system"
+                                          "linux-module-build-system"
+                                          "maven-build-system"
                                           "meson-build-system"
                                           "minify-build-system"
+                                          "node-build-system"
                                           "ocaml-build-system"
                                           "perl-build-system"
                                           "python-build-system"
+                                          "qt-build-system"
                                           "r-build-system"
+                                          "rakudo-build-system"
                                           "ruby-build-system"
                                           "scons-build-system"
                                           "texlive-build-system"
diff --git a/etc/snippets/text-mode/guix-commit-message-add-cl-package b/etc/snippets/text-mode/guix-commit-message-add-cl-package
new file mode 100644
index 0000000000..e255736b05
--- /dev/null
+++ b/etc/snippets/text-mode/guix-commit-message-add-cl-package
@@ -0,0 +1,15 @@
+# -*- mode: snippet -*-
+# name: guix-commit-message-add-cl-package
+# key: addcl
+# condition: git-commit-mode
+# --
+gnu: Add ${1:`(with-temp-buffer
+                (magit-git-wash #'magit-diff-wash-diffs
+                  "diff" "--staged")
+                (beginning-of-buffer)
+                (when (search-forward "+(define-public " nil 'noerror)
+                  (replace-regexp-in-string
+		   "^sbcl-" ""
+		   (thing-at-point 'sexp 'no-properties))))`}.
+
+* `(car (magit-staged-files))` (cl-${1:$(replace-regexp-in-string "^cl-" "" yas-text)}, ecl-$1, sbcl-$1): New variables.
\ No newline at end of file
diff --git a/etc/snippets/text-mode/guix-commit-message-add-package b/etc/snippets/text-mode/guix-commit-message-add-package
index 0dff2cbcf5..7cebd4023a 100644
--- a/etc/snippets/text-mode/guix-commit-message-add-package
+++ b/etc/snippets/text-mode/guix-commit-message-add-package
@@ -6,8 +6,8 @@
 gnu: Add ${1:`(with-temp-buffer
                 (magit-git-wash #'magit-diff-wash-diffs
                   "diff" "--staged")
-                (beginning-of-buffer)
-                (when (search-forward "(define-public " nil 'noerror)
-                  (thing-at-point 'sexp 'no-properties)))`}.
+                (goto-char (point-min))
+                (when (re-search-forward "\\+(define-public \\(\\S-+\\)" nil 'noerror)
+                  (match-string-no-properties 1)))`}.
 
 * `(car (magit-staged-files))` ($1): New variable.
\ No newline at end of file
diff --git a/etc/snippets/text-mode/guix-commit-message-update-package b/etc/snippets/text-mode/guix-commit-message-update-package
index 2cdb6ea28d..f187419aa2 100644
--- a/etc/snippets/text-mode/guix-commit-message-update-package
+++ b/etc/snippets/text-mode/guix-commit-message-update-package
@@ -7,12 +7,12 @@
 gnu: ${1:`(with-temp-buffer
            (magit-git-wash #'magit-diff-wash-diffs
              "diff" "--staged")
-           (beginning-of-buffer)
-           (when (search-forward "(define-public " nil 'noerror)
-             (thing-at-point 'sexp 'no-properties)))`}: Update to ${2:`(with-temp-buffer
+           (goto-char (point-min))
+           (when (re-search-forward "(define-public \\(\\S-+\\)" nil 'noerror)
+             (match-string-no-properties 1)))`}: Update to ${2:`(with-temp-buffer
     (magit-git-wash #'magit-diff-wash-diffs
       "diff" "--staged")
-    (beginning-of-buffer)
+    (goto-char (point-min))
     (search-forward "name" nil 'noerror)
     (search-forward "+" nil 'noerror)   ; first change
     (when (and (search-forward "version " nil 'noerror)
diff --git a/gnu/bootloader.scm b/gnu/bootloader.scm
index 2eebb8e9d9..6d7352ddd2 100644
--- a/gnu/bootloader.scm
+++ b/gnu/bootloader.scm
@@ -22,6 +22,8 @@
 
 (define-module (gnu bootloader)
   #:use-module (guix discovery)
+  #:use-module (guix gexp)
+  #:use-module (guix profiles)
   #:use-module (guix records)
   #:use-module (guix ui)
   #:use-module (srfi srfi-1)
@@ -66,7 +68,9 @@
             bootloader-configuration-additional-configuration
 
             %bootloaders
-            lookup-bootloader-by-name))
+            lookup-bootloader-by-name
+
+            efi-bootloader-chain))
 
 
 ;;;
@@ -227,3 +231,122 @@ record."
               (eq? name (bootloader-name bootloader)))
             (force %bootloaders))
       (leave (G_ "~a: no such bootloader~%") name)))
+
+(define (efi-bootloader-profile files bootloader-package hooks)
+  "Creates a profile with BOOTLOADER-PACKAGE and a directory collection/ with
+links to additional FILES from the store.  This collection is meant to be used
+by the bootloader installer.
+
+FILES is a list of file or directory names from the store, which will be
+symlinked into the collection/ directory.  If a directory name ends with '/',
+then the directory content instead of the directory itself will be symlinked
+into the collection/ directory.
+
+FILES may contain file like objects produced by functions like plain-file,
+local-file, etc., or package contents produced with file-append.
+
+HOOKS lists additional hook functions to modify the profile."
+  (define (bootloader-collection manifest)
+    (define build
+        (with-imported-modules '((guix build utils)
+                                 (ice-9 ftw)
+                                 (srfi srfi-1)
+                                 (srfi srfi-26))
+          #~(begin
+            (use-modules ((guix build utils)
+                          #:select (mkdir-p strip-store-file-name))
+                         ((ice-9 ftw)
+                          #:select (scandir))
+                         ((srfi srfi-1)
+                          #:select (append-map every remove))
+                         ((srfi srfi-26)
+                          #:select (cut)))
+            (define (symlink-to file directory transform)
+              "Creates a symlink to FILE named (TRANSFORM FILE) in DIRECTORY."
+              (symlink file (string-append directory "/" (transform file))))
+            (define (directory-content directory)
+              "Creates a list of absolute path names inside DIRECTORY."
+              (map (lambda (name)
+                     (string-append directory name))
+                   (or (scandir directory (lambda (name)
+                                            (not (member name '("." "..")))))
+                       '())))
+            (define name-ends-with-/? (cut string-suffix? "/" <>))
+            (define (name-is-store-entry? name)
+              "Return #t if NAME is a direct store entry and nothing inside."
+              (not (string-index (strip-store-file-name name) #\/)))
+            (let* ((collection (string-append #$output "/collection"))
+                   (files '#$files)
+                   (directories (filter name-ends-with-/? files))
+                   (names-from-directories
+                    (append-map (lambda (directory)
+                                  (directory-content directory))
+                                directories))
+                   (names (append names-from-directories
+                                  (remove name-ends-with-/? files))))
+              (mkdir-p collection)
+              (if (every file-exists? names)
+                  (begin
+                    (for-each (lambda (name)
+                               (symlink-to name collection
+                                            (if (name-is-store-entry? name)
+                                                strip-store-file-name
+                                                basename)))
+                              names)
+                    #t)
+                  #f)))))
+
+    (gexp->derivation "bootloader-collection"
+                      build
+                      #:local-build? #t
+                      #:substitutable? #f
+                      #:properties
+                      `((type . profile-hook)
+                        (hook . bootloader-collection))))
+
+  (profile (content (packages->manifest (list bootloader-package)))
+           (name "bootloader-profile")
+           (hooks (append (list bootloader-collection) hooks))
+           (locales? #f)
+           (allow-collisions? #f)
+           (relative-symlinks? #f)))
+
+(define* (efi-bootloader-chain files
+                               final-bootloader
+                               #:key
+                               (hooks '())
+                               installer)
+  "Define a bootloader chain with FINAL-BOOTLOADER as the final bootloader and
+certain directories and files from the store given in the list of FILES.
+
+FILES may contain file like objects produced by functions like plain-file,
+local-file, etc., or package contents produced with file-append.  They will be
+collected inside a directory collection/ inside a generated bootloader profile,
+which will be passed to the INSTALLER.
+
+If a directory name in FILES ends with '/', then the directory content instead
+of the directory itself will be symlinked into the collection/ directory.
+
+The procedures in the HOOKS list can be used to further modify the bootloader
+profile.  It is possible to pass a single function instead of a list.
+
+If the INSTALLER argument is used, then this function will be called to install
+the bootloader.  Otherwise the installer of the FINAL-BOOTLOADER will be called."
+  (let* ((final-installer (or installer
+                              (bootloader-installer final-bootloader)))
+         (profile (efi-bootloader-profile files
+                                          (bootloader-package final-bootloader)
+                                          (if (list? hooks)
+                                              hooks
+                                              (list hooks)))))
+    (bootloader
+     (inherit final-bootloader)
+     (package profile)
+     (installer
+      #~(lambda (bootloader target mount-point)
+          (#$final-installer bootloader target mount-point)
+          (copy-recursively
+           (string-append bootloader "/collection")
+           (string-append mount-point target)
+           #:follow-symlinks? #t
+           #:log (%make-void-port "w")))))))
diff --git a/gnu/bootloader/grub.scm b/gnu/bootloader/grub.scm
index b905ae360c..13ee695909 100644
--- a/gnu/bootloader/grub.scm
+++ b/gnu/bootloader/grub.scm
@@ -4,6 +4,7 @@
 ;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2017, 2020 Mathieu Othacehe <m.othacehe@gmail.com>
 ;;; Copyright © 2019, 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
+;;; Copyright © 2019, 2020 Miguel Ángel Arruga Vivas <rosen644835@gmail.com>
 ;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2020 Stefan <stefan-guix@vodafonemail.de>
 ;;;
@@ -23,14 +24,17 @@
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (gnu bootloader grub)
+  #:use-module (guix build union)
   #:use-module (guix records)
-  #:use-module ((guix utils) #:select (%current-system))
+  #:use-module (guix store)
+  #:use-module (guix utils)
   #:use-module (guix gexp)
   #:use-module (gnu artwork)
   #:use-module (gnu bootloader)
   #:use-module (gnu system uuid)
   #:use-module (gnu system file-systems)
   #:use-module (gnu system keyboard)
+  #:use-module (gnu system locale)
   #:use-module (gnu packages bootloaders)
   #:autoload   (gnu packages gtk) (guile-cairo guile-rsvg)
   #:autoload   (gnu packages xorg) (xkeyboard-config)
@@ -46,8 +50,11 @@
             grub-theme-color-highlight
             grub-theme-gfxmode
 
+            install-grub-efi-netboot
+
             grub-bootloader
             grub-efi-bootloader
+            grub-efi-netboot-bootloader
             grub-mkrescue-bootloader
             grub-minimal-bootloader
 
@@ -135,6 +142,24 @@ file with the resolution provided in CONFIG."
             (image->png image #:width width #:height height))
            (_ #f)))))
 
+(define (grub-locale-directory grub)
+  "Generate a directory with the locales from GRUB."
+  (define builder
+    #~(begin
+        (use-modules (ice-9 ftw))
+        (let ((locale (string-append #$grub "/share/locale"))
+              (out    #$output))
+          (mkdir out)
+          (chdir out)
+          (for-each (lambda (lang)
+                      (let ((file (string-append locale "/" lang
+                                                 "/LC_MESSAGES/grub.mo"))
+                            (dest (string-append lang ".mo")))
+                        (when (file-exists? file)
+                          (copy-file file dest))))
+                    (scandir locale)))))
+  (computed-file "grub-locales" builder))
+
 (define* (eye-candy config store-device store-mount-point
                     #:key store-directory-prefix port)
   "Return a gexp that writes to PORT (a port-valued gexp) the 'grub.cfg' part
@@ -143,15 +168,14 @@ STORE-DEVICE designates the device holding the store, and STORE-MOUNT-POINT is
 its mount point; these are used to determine where the background image and
 fonts must be searched for.  STORE-DIRECTORY-PREFIX is a directory prefix to
 prepend to any store file name."
-  (define (setup-gfxterm config font-file)
+  (define (setup-gfxterm config)
     (if (memq 'gfxterm (bootloader-configuration-terminal-outputs config))
         #~(format #f "
-if loadfont ~a; then
+if loadfont unicode; then
   set gfxmode=~a
   insmod all_video
   insmod gfxterm
 fi~%"
-                  #+font-file
                   #$(string-join
                      (grub-theme-gfxmode (bootloader-theme config))
                      ";"))
@@ -163,11 +187,6 @@ fi~%"
       (string-append (symbol->string (assoc-ref colors 'fg)) "/"
                      (symbol->string (assoc-ref colors 'bg)))))
 
-  (define font-file
-    (normalize-file (file-append grub "/share/grub/unicode.pf2")
-                    store-mount-point
-                    store-directory-prefix))
-
   (define image
     (normalize-file (grub-background-image config)
                     store-mount-point
@@ -189,8 +208,8 @@ else
   set menu_color_normal=cyan/blue
   set menu_color_highlight=white/blue
 fi~%"
-                 #$(grub-root-search store-device font-file)
-                 #$(setup-gfxterm config font-file)
+                 #$(grub-root-search store-device image)
+                 #$(setup-gfxterm config)
                  #$(grub-setup-io config)
 
                  #$image
@@ -295,18 +314,51 @@ code."
         ((? file-system-label? label)
          (format #f "search --label --set ~a"
                  (file-system-label->string label)))
+        ((? (lambda (device)
+              (and (string? device) (string-contains device ":/"))) nfs-uri)
+         ;; If the device is an NFS share, then we assume that the expected
+         ;; file on that device (e.g. the GRUB background image or the kernel)
+         ;; has to be loaded over the network.  Otherwise we would need an
+         ;; additional device information for some local disk to look for that
+         ;; file, which we do not have.
+         ;;
+         ;; We explicitly set "root=(tftp)" here even though if grub.cfg
+         ;; had been loaded via TFTP, Grub would have set "root=(tftp)"
+         ;; automatically anyway.  The reason is if you have a system that
+         ;; used to be on NFS but now is local, root would be set to local
+         ;; disk.  If you then selected an older system generation that is
+         ;; supposed to boot from network in the Grub boot menu, Grub still
+         ;; wouldn't load those files from network otherwise.
+         ;;
+         ;; TFTP is preferred to HTTP because it is used more widely and
+         ;; specified in standards more widely--especially BOOTP/DHCPv4
+         ;; defines a TFTP server for DHCP option 66, but not HTTP.
+         ;;
+         ;; Note: DHCPv6 specifies option 59 to contain a boot-file-url,
+         ;; which can contain a HTTP or TFTP URL.
+         ;;
+         ;; Note: It is assumed that the file paths are of a similar
+         ;; setup on both the TFTP server and the NFS server (it is
+         ;; not possible to search for files on TFTP).
+         ;;
+         ;; TODO: Allow HTTP.
+         "set root=(tftp)")
         ((or #f (? string?))
          #~(format #f "search --file --set ~a" #$file)))))
 
 (define* (grub-configuration-file config entries
                                   #:key
+                                  (locale #f)
                                   (system (%current-system))
                                   (old-entries '())
+                                  (store-crypto-devices '())
                                   store-directory-prefix)
   "Return the GRUB configuration file corresponding to CONFIG, a
 <bootloader-configuration> object, and where the store is available at
 STORE-FS, a <file-system> object.  OLD-ENTRIES is taken to be a list of menu
 entries corresponding to old generations of the system.
+STORE-CRYPTO-DEVICES contain the UUIDs of the encrypted units that must
+be unlocked to access the store contents.
 STORE-DIRECTORY-PREFIX may be used to specify a store prefix, as is required
 when booting a root file system on a Btrfs subvolume."
   (define all-entries
@@ -354,6 +406,21 @@ menuentry ~s {
                   (string-join (map string-join '#$modules)
                                "\n  module " 'prefix))))))
 
+  (define (crypto-devices)
+    (define (crypto-device->cryptomount dev)
+      (if (uuid? dev)
+          #~(format port "cryptomount -u ~a~%"
+                    ;; cryptomount only accepts UUID without the hypen.
+                    #$(string-delete #\- (uuid->string dev)))
+          ;; 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~%")))
+      (if (null? devices)
+          devices
+          (cons modules devices))))
+
   (define (sugar)
     (let* ((entry (first all-entries))
            (device (menu-entry-device entry))
@@ -364,17 +431,47 @@ menuentry ~s {
                  #:store-directory-prefix store-directory-prefix
                  #:port #~port)))
 
+  (define locale-config
+    (let* ((entry (first all-entries))
+           (device (menu-entry-device entry))
+           (mount-point (menu-entry-device-mount-point entry))
+           (bootloader (bootloader-configuration-bootloader config))
+           (grub (bootloader-package bootloader)))
+      #~(let ((locale #$(and locale
+                             (locale-definition-source
+                              (locale-name->definition locale))))
+              (locales #$(and locale
+                              (normalize-file (grub-locale-directory grub)
+                                              mount-point
+                                              store-directory-prefix))))
+          (when locale
+            (format port "\
+# Localization configuration.
+~asearch --file --set ~a/en@quot.mo
+set locale_dir=~a
+set lang=~a~%"
+                    ;; Skip the search if there is an image, as it has already
+                    ;; been performed by eye-candy and traversing the store is
+                    ;; an expensive operation.
+                    #$(if (grub-theme-image (bootloader-theme config))
+                          "# "
+                          "")
+                    locales
+                    locales
+                    locale)))))
+
   (define keyboard-layout-config
     (let* ((layout (bootloader-configuration-keyboard-layout config))
            (grub   (bootloader-package
                     (bootloader-configuration-bootloader config)))
            (keymap* (and layout
                          (keyboard-layout-file layout #:grub grub)))
+           (entry (first all-entries))
+           (device (menu-entry-device entry))
+           (mount-point (menu-entry-device-mount-point entry))
            (keymap (and keymap*
-                        (if store-directory-prefix
-                            #~(string-append #$store-directory-prefix
-                                             #$keymap*)
-                            keymap*))))
+                        (normalize-file keymap* mount-point
+                                        store-directory-prefix))))
       #~(when #$keymap
           (format port "\
 insmod keylayouts
@@ -387,7 +484,9 @@ keymap ~a~%" #$keymap))))
                   "# This file was generated from your Guix configuration.  Any changes
 # will be lost upon reconfiguration.
 ")
+          #$@(crypto-devices)
           #$(sugar)
+          #$locale-config
           #$keyboard-layout-config
           (format port "
 set default=~a
@@ -438,9 +537,13 @@ fi~%"))))
               (invoke/quiet grub "--no-floppy" "--target=i386-pc"
                             "--boot-directory" install-dir
                             device))
-            ;; When creating a disk-image, only install GRUB modules.
-            (copy-recursively (string-append bootloader "/lib/")
-                              install-dir)))))
+            ;; When creating a disk-image, only install a font and GRUB modules.
+            (let* ((fonts (string-append install-dir "/grub/fonts")))
+              (mkdir-p fonts)
+              (copy-file (string-append bootloader "/share/grub/unicode.pf2")
+                         (string-append fonts "/unicode.pf2"))
+              (copy-recursively (string-append bootloader "/lib/")
+                                install-dir))))))
 
 (define install-grub-disk-image
   #~(lambda (bootloader root-index image)
@@ -485,27 +588,127 @@ fi~%"))))
 
 (define install-grub-efi
   #~(lambda (bootloader efi-dir mount-point)
-      ;; Install GRUB onto the EFI partition mounted at EFI-DIR, for the
-      ;; system whose root is mounted at MOUNT-POINT.
-      (let ((grub-install (string-append bootloader "/sbin/grub-install"))
-            (install-dir (string-append mount-point "/boot"))
-            ;; When installing Guix, it's common to mount EFI-DIR below
-            ;; MOUNT-POINT rather than /boot/efi on the live image.
-            (target-esp (if (file-exists? (string-append mount-point efi-dir))
-                            (string-append mount-point efi-dir)
-                            efi-dir)))
-        ;; Tell 'grub-install' that there might be a LUKS-encrypted /boot or
-        ;; root partition.
-        (setenv "GRUB_ENABLE_CRYPTODISK" "y")
-        (invoke/quiet grub-install "--boot-directory" install-dir
-                      "--bootloader-id=Guix"
-                      "--efi-directory" target-esp))))
+      ;; There is nothing useful to do when called in the context of a disk
+      ;; image generation.
+      (when efi-dir
+        ;; Install GRUB onto the EFI partition mounted at EFI-DIR, for the
+        ;; system whose root is mounted at MOUNT-POINT.
+        (let ((grub-install (string-append bootloader "/sbin/grub-install"))
+              (install-dir (string-append mount-point "/boot"))
+              ;; When installing Guix, it's common to mount EFI-DIR below
+              ;; MOUNT-POINT rather than /boot/efi on the live image.
+              (target-esp (if (file-exists? (string-append mount-point efi-dir))
+                              (string-append mount-point efi-dir)
+                              efi-dir)))
+          ;; Tell 'grub-install' that there might be a LUKS-encrypted /boot or
+          ;; root partition.
+          (setenv "GRUB_ENABLE_CRYPTODISK" "y")
+          (invoke/quiet grub-install "--boot-directory" install-dir
+                        "--bootloader-id=Guix"
+                        "--efi-directory" target-esp)))))
+
+(define (install-grub-efi-netboot subdir)
+  "Define a grub-efi-netboot bootloader installer for installation in SUBDIR,
+which is usually efi/Guix or efi/boot."
+  (let* ((system (string-split (nix-system->gnu-triplet
+                                (or (%current-target-system)
+                                    (%current-system)))
+                               #\-))
+         (arch (first system))
+         (boot-efi-link (match system
+                          ;; These are the supportend systems and the names
+                          ;; defined by the UEFI standard for removable media.
+                          (("i686" _ ...)        "/bootia32.efi")
+                          (("x86_64" _ ...)      "/bootx64.efi")
+                          (("arm" _ ...)         "/bootarm.efi")
+                          (("aarch64" _ ...)     "/bootaa64.efi")
+                          (("riscv" _ ...)       "/bootriscv32.efi")
+                          (("riscv64" _ ...)     "/bootriscv64.efi")
+                          ;; Other systems are not supported, although defined.
+                          ;; (("riscv128" _ ...) "/bootriscv128.efi")
+                          ;; (("ia64" _ ...)     "/bootia64.efi")
+                          ((_ ...)               #f)))
+         (core-efi (string-append
+                    ;; This is the arch dependent file name of GRUB, e.g.
+                    ;; i368-efi/core.efi or arm64-efi/core.efi.
+                    (match arch
+                      ("i686"    "i386")
+                      ("aarch64" "arm64")
+                      ("riscv"   "riscv32")
+                      (_         arch))
+                    "-efi/core.efi")))
+    (with-imported-modules
+     '((guix build union))
+     #~(lambda (bootloader target mount-point)
+         "Install the BOOTLOADER, which must be the package grub, as e.g.
+bootx64.efi or bootaa64.efi into SUBDIR, which is usually efi/Guix or efi/boot,
+below the directory TARGET for the system whose root is mounted at MOUNT-POINT.
+
+MOUNT-POINT is the last argument in 'guix system init /etc/config.scm mnt/point'
+or '/' for other 'guix system' commands.
+
+TARGET is the target argument given to the bootloader-configuration in
+
+(operating-system
+ (bootloader (bootloader-configuration
+              (target \"/boot\")
+              …))
+ …)
+
+TARGET is required to be an absolute directory name, usually mounted via NFS,
+and finally needs to be provided by a TFTP server as the TFTP root directory.
+
+GRUB will load tftp://server/SUBDIR/grub.cfg and this file will instruct it to
+load more files from the store like tftp://server/gnu/store/…-linux…/Image.
+
+To make this possible two symlinks will be created. The first symlink points
+relatively form MOUNT-POINT/TARGET/SUBDIR/grub.cfg to
+MOUNT-POINT/boot/grub/grub.cfg, and the second symlink points relatively from
+MOUNT-POINT/TARGET/%store-prefix to MOUNT-POINT/%store-prefix.
+
+It is important to note that these symlinks need to be relativ, as the absolute
+paths on the TFTP server side are unknown.
+
+It is also important to note that both symlinks will point outside the TFTP root
+directory and that the TARGET/%store-prefix symlink makes the whole store
+accessible via TFTP. Possibly the TFTP server must be configured
+to allow accesses outside its TFTP root directory. This may need to be
+considered for security aspects."
+         (use-modules ((guix build union) #:select (symlink-relative)))
+         (let* ((net-dir (string-append mount-point target "/"))
+                (sub-dir (string-append net-dir #$subdir "/"))
+                (store (string-append mount-point (%store-prefix)))
+                (store-link (string-append net-dir (%store-prefix)))
+                (grub-cfg (string-append mount-point "/boot/grub/grub.cfg"))
+                (grub-cfg-link (string-append sub-dir (basename grub-cfg)))
+                (boot-efi-link (string-append sub-dir #$boot-efi-link)))
+           ;; Prepare the symlink to the store.
+           (mkdir-p (dirname store-link))
+           (false-if-exception (delete-file store-link))
+           (symlink-relative store store-link)
+           ;; Prepare the symlink to the grub.cfg, which points into the store.
+           (mkdir-p (dirname grub-cfg-link))
+           (false-if-exception (delete-file grub-cfg-link))
+           (symlink-relative grub-cfg grub-cfg-link)
+           ;; Install GRUB, which refers to the grub.cfg, with support for
+           ;; encrypted partitions,
+           (setenv "GRUB_ENABLE_CRYPTODISK" "y")
+           (invoke/quiet (string-append bootloader "/bin/grub-mknetdir")
+                         (string-append "--net-directory=" net-dir)
+                         (string-append "--subdir=" #$subdir))
+           ;; Prepare the bootloader symlink, which points to core.efi of GRUB.
+           (false-if-exception (delete-file boot-efi-link))
+           (symlink #$core-efi boot-efi-link))))))
 
 
 
 ;;;
 ;;; Bootloader definitions.
 ;;;
+;;; For all these grub-bootloader variables the path to /boot/grub/grub.cfg
+;;; is fixed.  Inheriting and overwriting the field 'configuration-file' will
+;;; break 'guix system delete-generations', 'guix system switch-generation',
+;;; and 'guix system roll-back'.
 
 (define grub-bootloader
   (bootloader
@@ -516,12 +719,12 @@ fi~%"))))
    (configuration-file "/boot/grub/grub.cfg")
    (configuration-file-generator grub-configuration-file)))
 
-(define* grub-minimal-bootloader
+(define grub-minimal-bootloader
   (bootloader
    (inherit grub-bootloader)
    (package grub-minimal)))
 
-(define* grub-efi-bootloader
+(define grub-efi-bootloader
   (bootloader
    (inherit grub-bootloader)
    (installer install-grub-efi)
@@ -529,7 +732,13 @@ fi~%"))))
    (name 'grub-efi)
    (package grub-efi)))
 
-(define* grub-mkrescue-bootloader
+(define grub-efi-netboot-bootloader
+  (bootloader
+   (inherit grub-efi-bootloader)
+   (name 'grub-efi-netboot-bootloader)
+   (installer (install-grub-efi-netboot "efi/Guix"))))
+
+(define grub-mkrescue-bootloader
   (bootloader
    (inherit grub-efi-bootloader)
    (package grub-hybrid)))
diff --git a/gnu/bootloader/u-boot.scm b/gnu/bootloader/u-boot.scm
index 1da9d04eb2..c57d4964c8 100644
--- a/gnu/bootloader/u-boot.scm
+++ b/gnu/bootloader/u-boot.scm
@@ -45,7 +45,7 @@
             u-boot-wandboard-bootloader))
 
 (define install-u-boot
-  #~(lambda (bootloader device mount-point)
+  #~(lambda (bootloader root-index image)
       (if bootloader
         (error "Failed to install U-Boot"))))
 
@@ -56,74 +56,74 @@
   ;; the MLO and is expected at 0x60000.  Write both first stage ("MLO") and
   ;; second stage ("u-boot.img") images, read in BOOTLOADER directory, to the
   ;; specified DEVICE.
-  #~(lambda (bootloader device mount-point)
+  #~(lambda (bootloader root-index image)
       (let ((mlo (string-append bootloader "/libexec/MLO"))
             (u-boot (string-append bootloader "/libexec/u-boot.img")))
         (write-file-on-device mlo (* 256 512)
-                              device (* 256 512))
+                              image (* 256 512))
         (write-file-on-device u-boot (* 1024 512)
-                              device (* 768 512)))))
+                              image (* 768 512)))))
 
 (define install-allwinner-u-boot
-  #~(lambda (bootloader device mount-point)
+  #~(lambda (bootloader root-index image)
       (let ((u-boot (string-append bootloader
                                    "/libexec/u-boot-sunxi-with-spl.bin")))
         (write-file-on-device u-boot (stat:size (stat u-boot))
-                              device (* 8 1024)))))
+                              image (* 8 1024)))))
 
 (define install-allwinner64-u-boot
-  #~(lambda (bootloader device mount-point)
+  #~(lambda (bootloader root-index image)
       (let ((spl (string-append bootloader "/libexec/spl/sunxi-spl.bin"))
             (u-boot (string-append bootloader "/libexec/u-boot.itb")))
         (write-file-on-device spl (stat:size (stat spl))
-                              device (* 8 1024))
+                              image (* 8 1024))
         (write-file-on-device u-boot (stat:size (stat u-boot))
-                              device (* 40 1024)))))
+                              image (* 40 1024)))))
 
 (define install-imx-u-boot
-  #~(lambda (bootloader device mount-point)
+  #~(lambda (bootloader root-index image)
       (let ((spl (string-append bootloader "/libexec/SPL"))
             (u-boot (string-append bootloader "/libexec/u-boot.img")))
         (write-file-on-device spl (stat:size (stat spl))
-                              device (* 1 1024))
+                              image (* 1 1024))
         (write-file-on-device u-boot (stat:size (stat u-boot))
-                              device (* 69 1024)))))
+                              image (* 69 1024)))))
 
 (define install-puma-rk3399-u-boot
-  #~(lambda (bootloader device mount-point)
+  #~(lambda (bootloader root-index image)
       (let ((spl (string-append bootloader "/libexec/u-boot-spl.rksd"))
             (u-boot (string-append bootloader "/libexec/u-boot.itb")))
         (write-file-on-device spl (stat:size (stat spl))
-                              device (* 64 512))
+                              image (* 64 512))
         (write-file-on-device u-boot (stat:size (stat u-boot))
-                              device (* 512 512)))))
+                              image (* 512 512)))))
 
 (define install-firefly-rk3399-u-boot
-  #~(lambda (bootloader device mount-point)
+  #~(lambda (bootloader root-index image)
       (let ((idb (string-append bootloader "/libexec/idbloader.img"))
             (u-boot (string-append bootloader "/libexec/u-boot.itb")))
         (write-file-on-device idb (stat:size (stat idb))
-                              device (* 64 512))
+                              image (* 64 512))
         (write-file-on-device u-boot (stat:size (stat u-boot))
-                              device (* 16384 512)))))
+                              image (* 16384 512)))))
 
 (define install-rock64-rk3328-u-boot
-  #~(lambda (bootloader device mount-point)
+  #~(lambda (bootloader root-index image)
       (let ((idb (string-append bootloader "/libexec/idbloader.img"))
             (u-boot (string-append bootloader "/libexec/u-boot.itb")))
         (write-file-on-device idb (stat:size (stat idb))
-                              device (* 64 512))
+                              image (* 64 512))
         (write-file-on-device u-boot (stat:size (stat u-boot))
-                              device (* 16384 512)))))
+                              image (* 16384 512)))))
 
 (define install-rockpro64-rk3399-u-boot
-  #~(lambda (bootloader device mount-point)
+  #~(lambda (bootloader root-index image)
       (let ((idb (string-append bootloader "/libexec/idbloader.img"))
             (u-boot (string-append bootloader "/libexec/u-boot.itb")))
         (write-file-on-device idb (stat:size (stat idb))
-                              device (* 64 512))
+                              image (* 64 512))
         (write-file-on-device u-boot (stat:size (stat u-boot))
-                              device (* 16384 512)))))
+                              image (* 16384 512)))))
 
 (define install-pinebook-pro-rk3399-u-boot install-rockpro64-rk3399-u-boot)
 
@@ -138,28 +138,29 @@
    (inherit extlinux-bootloader)
    (name 'u-boot)
    (package #f)
-   (installer install-u-boot)))
+   (installer #f)
+   (disk-image-installer install-u-boot)))
 
 (define u-boot-beaglebone-black-bootloader
   (bootloader
    (inherit u-boot-bootloader)
    (package u-boot-am335x-boneblack)
-   (installer install-beaglebone-black-u-boot)))
+   (disk-image-installer install-beaglebone-black-u-boot)))
 
 (define u-boot-allwinner-bootloader
   (bootloader
    (inherit u-boot-bootloader)
-   (installer install-allwinner-u-boot)))
+   (disk-image-installer install-allwinner-u-boot)))
 
 (define u-boot-allwinner64-bootloader
   (bootloader
    (inherit u-boot-bootloader)
-   (installer install-allwinner64-u-boot)))
+   (disk-image-installer install-allwinner64-u-boot)))
 
 (define u-boot-imx-bootloader
   (bootloader
    (inherit u-boot-bootloader)
-   (installer install-imx-u-boot)))
+   (disk-image-installer install-imx-u-boot)))
 
 (define u-boot-nintendo-nes-classic-edition-bootloader
   (bootloader
@@ -196,7 +197,7 @@
   (bootloader
    (inherit u-boot-bootloader)
    (package u-boot-firefly-rk3399)
-   (installer install-firefly-rk3399-u-boot)))
+   (disk-image-installer install-firefly-rk3399-u-boot)))
 
 (define u-boot-mx6cuboxi-bootloader
   (bootloader
@@ -232,25 +233,25 @@
   (bootloader
    (inherit u-boot-bootloader)
    (package u-boot-puma-rk3399)
-   (installer install-puma-rk3399-u-boot)))
+   (disk-image-installer install-puma-rk3399-u-boot)))
 
 (define u-boot-rock64-rk3328-bootloader
   ;; SD and eMMC use the same format
   (bootloader
    (inherit u-boot-bootloader)
    (package u-boot-rock64-rk3328)
-   (installer install-rock64-rk3328-u-boot)))
+   (disk-image-installer install-rock64-rk3328-u-boot)))
 
 (define u-boot-rockpro64-rk3399-bootloader
   ;; SD and eMMC use the same format
   (bootloader
    (inherit u-boot-bootloader)
    (package u-boot-rockpro64-rk3399)
-   (installer install-rockpro64-rk3399-u-boot)))
+   (disk-image-installer install-rockpro64-rk3399-u-boot)))
 
 (define u-boot-pinebook-pro-rk3399-bootloader
   ;; SD and eMMC use the same format
   (bootloader
    (inherit u-boot-bootloader)
    (package u-boot-pinebook-pro-rk3399)
-   (installer install-pinebook-pro-rk3399-u-boot)))
+   (disk-image-installer install-pinebook-pro-rk3399-u-boot)))
diff --git a/gnu/build/bootloader.scm b/gnu/build/bootloader.scm
index 498022f6db..3916930c89 100644
--- a/gnu/build/bootloader.scm
+++ b/gnu/build/bootloader.scm
@@ -22,6 +22,8 @@
   #:use-module (guix utils)
   #:use-module (ice-9 binary-ports)
   #:use-module (ice-9 format)
+  #:use-module (rnrs io ports)
+  #:use-module (rnrs io simple)
   #:export (write-file-on-device
             install-efi-loader))
 
@@ -35,11 +37,17 @@
   (call-with-input-file file
     (lambda (input)
       (let ((bv (get-bytevector-n input size)))
-        (call-with-output-file device
-          (lambda (output)
-            (seek output offset SEEK_SET)
-            (put-bytevector output bv))
-          #:binary #t)))))
+        (call-with-port
+         ;; Do not use "call-with-output-file" that would truncate the file.
+         (open-file-output-port device
+                                (file-options no-truncate no-fail)
+                                (buffer-mode block)
+                                ;; Use the binary-friendly ISO-8859-1
+                                ;; encoding.
+                                (make-transcoder (latin-1-codec)))
+         (lambda (output)
+           (seek output offset SEEK_SET)
+           (put-bytevector output bv)))))))
 
 
 ;;;
diff --git a/gnu/build/chromium-extension.scm b/gnu/build/chromium-extension.scm
new file mode 100644
index 0000000000..d65df09f37
--- /dev/null
+++ b/gnu/build/chromium-extension.scm
@@ -0,0 +1,192 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2020 Marius Bakke <marius@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 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)
+  #:use-module (gnu packages xorg)
+  #:use-module (guix build-system trivial)
+  #:export (make-chromium-extension))
+
+;;; Commentary:
+;;;
+;;; Tools to deal with Chromium extensions.
+;;;
+;;; Code:
+
+(define (make-signing-key seed)
+  "Return a derivation for a deterministic PKCS #8 private key using SEED."
+
+  (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))
+
+(define* (make-crx signing-key package #:optional (package-output "out"))
+  "Create a signed \".crx\" file from the unpacked Chromium extension residing
+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")
+     #~(begin
+         ;; This is not great.  We pull Xorg and Chromium just to Zip and
+         ;; sign an extension.  This should be implemented with something
+         ;; lighter.  (TODO: where is the CRXv3 documentation..?)
+         (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)
+           (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
+                   "--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)))
+
+(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."
+  ;; See chrome/browser/extensions/external_provider_impl.cc and
+  ;; extensions/common/extension.h for documentation on the JSON format.
+  (computed-file "extension.json"
+                 #~(call-with-output-file #$output
+                     (lambda (port)
+                       (format port "{
+  \"external_crx\": \"~a\",
+  \"external_version\": \"~a\"
+}
+"
+                               #$crx #$version)))
+                 #:local-build? #t))
+
+
+(define (signing-key->public-der key)
+  "Return a derivation for a file containing the public key of KEY in DER
+format."
+  (computed-file "der"
+                 #~(system* #$(file-append gnutls "/bin/certtool")
+                            "--load-privkey" #$key
+                            "--pubkey-info"
+                            "--outfile" #$output
+                            "--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))
+
+  (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))))
+
+(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)))
+    (package
+      (inherit p)
+      (name (string-append pname "-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))))
+      (propagated-inputs '())
+      (outputs '("out"))
+      (arguments
+       '(#:modules ((guix build utils))
+         #:builder
+         (begin
+           (use-modules (guix build utils))
+           (copy-recursively (assoc-ref %build-inputs "extension")
+                             (assoc-ref %outputs "out"))))))))
diff --git a/gnu/build/file-systems.scm b/gnu/build/file-systems.scm
index 4ba1503b9f..ddf6117b67 100644
--- a/gnu/build/file-systems.scm
+++ b/gnu/build/file-systems.scm
@@ -1,9 +1,9 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2020 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2016, 2017 David Craven <david@craven.ch>
 ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
 ;;; Copyright © 2019 Guillaume Le Vaillant <glv@posteo.net>
-;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2019 David C. Trudgian <dave@trudgian.net>
 ;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;;
@@ -181,6 +181,100 @@ if DEVICE does not contain an ext2 file system."
 
 
 ;;;
+;;; Linux swap.
+;;;
+
+;; Linux "swap space" is not a file system but it has a UUID and volume name,
+;; like actual file systems, and we want to be able to look up swap partitions
+;; by UUID and by label.
+
+(define %linux-swap-magic
+  (string->utf8 "SWAPSPACE2"))
+
+;; Like 'PAGE_SIZE' in Linux, arch/x86/include/asm/page.h.
+;; XXX: This is always 4K on x86_64, i386, and ARMv7.  However, on AArch64,
+;; this is determined by 'CONFIG_ARM64_PAGE_SHIFT' in the kernel, which is 12
+;; by default (4K) but can be 14 or 16.
+(define %page-size 4096)
+
+(define (linux-swap-superblock? sblock)
+  "Return #t when SBLOCK is an linux-swap superblock."
+  (and (= (bytevector-length sblock) %page-size)
+       (bytevector=? (sub-bytevector sblock (- %page-size 10) 10)
+                     %linux-swap-magic)))
+
+(define (read-linux-swap-superblock device)
+  "Return the raw contents of DEVICE's linux-swap superblock as a bytevector, or #f
+if DEVICE does not contain an linux-swap file system."
+  (read-superblock device 0 %page-size linux-swap-superblock?))
+
+;; See 'union swap_header' in 'include/linux/swap.h'.
+
+(define (linux-swap-superblock-uuid sblock)
+  "Return the UUID of Linux-swap superblock SBLOCK as a 16-byte bytevector."
+  (sub-bytevector sblock (+ 1024 4 4 4) 16))
+
+(define (linux-swap-superblock-volume-name sblock)
+  "Return the label of Linux-swap superblock SBLOCK as a string."
+  (null-terminated-latin1->string
+   (sub-bytevector sblock (+ 1024 4 4 4 16) 16)))
+
+
+;;;
+;;; Bcachefs file systems.
+;;;
+
+;; <https://evilpiepirate.org/git/bcachefs-tools.git/tree/libbcachefs/bcachefs_format.h>
+
+(define-syntax %bcachefs-endianness
+  ;; Endianness of bcachefs file systems.
+  (identifier-syntax (endianness little)))
+
+(define (bcachefs-superblock? sblock)
+  "Return #t when SBLOCK is an bcachefs superblock."
+  (bytevector=? (sub-bytevector sblock 24 16)
+                #vu8(#xc6 #x85 #x73 #xf6 #x4e #x1a #x45 #xca
+                     #x82 #x65 #xf5 #x7f #x48 #xba #x6d #x81)))
+
+(define (read-bcachefs-superblock device)
+  "Return the raw contents of DEVICE's bcachefs superblock as a bytevector, or #f
+if DEVICE does not contain a bcachefs file system."
+  ;; We completely ignore the back-up superblock & any checksum errors.
+  ;; Superblock field names, with offset & length respectively, in bytes:
+  ;;  0 16 bch_csum
+  ;; 16  8 version
+  ;; 24 16 magic
+  ;; 40 16 uuid ← ‘internal UUID’, you probably don't want this
+  ;; 56 16 user_uuid ← ‘external UUID’, the one by which to mount
+  ;; 72 32 label
+  ;; … there are more & the superblock is extensible, but we don't care yet.
+  (read-superblock device 4096 104 bcachefs-superblock?))
+
+(define (bcachefs-superblock-external-uuid sblock)
+  "Return the external UUID of bcachefs superblock SBLOCK as a 16-byte
+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."
+  (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."
+  (let ((ignored-bits (logior 2))       ; DEVICE was mounted read-only
+        (status
+         (status:exit-val
+          (apply system* "bcachefs" "fsck" "-p" "-v"
+                 ;; Make each multi-device member a separate argument.
+                 (string-split device #\:)))))
+    (match (logand (lognot ignored-bits) status)
+      (0 'pass)
+      (1 'errors-corrected)
+      (_ 'fatal-error))))
+
+
+;;;
 ;;; Btrfs file systems.
 ;;;
 
@@ -596,6 +690,10 @@ partition field reader that returned a value."
                                 iso9660-superblock-volume-name)
         (partition-field-reader read-ext2-superblock
                                 ext2-superblock-volume-name)
+        (partition-field-reader read-linux-swap-superblock
+                                linux-swap-superblock-volume-name)
+        (partition-field-reader read-bcachefs-superblock
+                                bcachefs-superblock-volume-name)
         (partition-field-reader read-btrfs-superblock
                                 btrfs-superblock-volume-name)
         (partition-field-reader read-fat32-superblock
@@ -612,6 +710,10 @@ partition field reader that returned a value."
                                 iso9660-superblock-uuid)
         (partition-field-reader read-ext2-superblock
                                 ext2-superblock-uuid)
+        (partition-field-reader read-linux-swap-superblock
+                                linux-swap-superblock-uuid)
+        (partition-field-reader read-bcachefs-superblock
+                                bcachefs-superblock-external-uuid)
         (partition-field-reader read-btrfs-superblock
                                 btrfs-superblock-uuid)
         (partition-field-reader read-fat32-superblock
@@ -675,7 +777,8 @@ were found."
 
 (define (canonicalize-device-spec spec)
   "Return the device name corresponding to SPEC, which can be a <uuid>, a
-<file-system-label>, or a string (typically a /dev file name)."
+<file-system-label>, or a string (typically a /dev file name or an nfs-root
+containing ':/')."
   (define max-trials
     ;; Number of times we retry partition label resolution, 1 second per
     ;; trial.  Note: somebody reported a delay of 16 seconds (!) before their
@@ -718,6 +821,7 @@ were found."
   (define check-procedure
     (cond
      ((string-prefix? "ext" type) check-ext2-file-system)
+     ((string-prefix? "bcachefs" type) check-bcachefs-file-system)
      ((string-prefix? "btrfs" type) check-btrfs-file-system)
      ((string-suffix? "fat" type) check-fat-file-system)
      ((string-prefix? "jfs" type) check-jfs-file-system)
diff --git a/gnu/build/hurd-boot.scm b/gnu/build/hurd-boot.scm
index adc8b4ce16..e66d4d1ba8 100644
--- a/gnu/build/hurd-boot.scm
+++ b/gnu/build/hurd-boot.scm
@@ -211,6 +211,9 @@ set."
       ("dev/vcs"     ("/hurd/console"))
       ("dev/tty"     ("/hurd/magic"    "tty")               #o666)
 
+      ;; 'fd_to_filename' in libc expects it.
+      ("dev/fd"      ("/hurd/magic"    "--directory" "fd")  #o555)
+
       ("dev/tty1"    ("/hurd/term"     "/dev/tty1" "hurdio" "/dev/vcs/1/console")
                                                             #o666)
       ("dev/tty2"    ("/hurd/term"     "/dev/tty2" "hurdio" "/dev/vcs/2/console")
@@ -240,10 +243,10 @@ set."
   (for-each scope-set-translator devices)
 
   (false-if-EEXIST (symlink "/dev/random" (scope "dev/urandom")))
-  (mkdir* "dev/fd")
   (false-if-EEXIST (symlink "/dev/fd/0" (scope "dev/stdin")))
   (false-if-EEXIST (symlink "/dev/fd/1" (scope "dev/stdout")))
   (false-if-EEXIST (symlink "/dev/fd/2" (scope "dev/stderr")))
+  (false-if-EEXIST (symlink "crash-dump-core" (scope "servers/crash")))
 
   ;; Make sure /etc/mtab is a symlink to /proc/mounts.
   (false-if-exception (delete-file (scope "etc/mtab")))
diff --git a/gnu/build/image.scm b/gnu/build/image.scm
index d8efa73f16..f6e5cb42f6 100644
--- a/gnu/build/image.scm
+++ b/gnu/build/image.scm
@@ -37,6 +37,7 @@
   #:use-module (srfi srfi-34)
   #:use-module (srfi srfi-35)
   #:export (make-partition-image
+            convert-disk-image
             genimage
             initialize-efi-partition
             initialize-root-partition
@@ -117,36 +118,39 @@ ROOT directory to populate the image."
      ((string=? type "vfat")
       (make-vfat-image partition target root))
      (else
-      (format (current-error-port)
-              "Unsupported partition type~%.")))))
+      (raise (condition
+              (&message
+               (message "unsupported partition type"))))))))
 
-(define* (genimage config target)
+(define (convert-disk-image image format output)
+  "Convert IMAGE to OUTPUT according to the given FORMAT."
+  (case format
+    ((compressed-qcow2)
+     (invoke "qemu-img" "convert" "-c" "-f" "raw"
+             "-O" "qcow2" image output))
+    (else
+     (copy-file image output))))
+
+(define* (genimage config)
   "Use genimage to generate in TARGET directory, the image described in the
 given CONFIG file."
   ;; genimage needs a 'root' directory.
   (mkdir "root")
-  (invoke "genimage" "--config" config
-          "--outputpath" target))
+  (invoke "genimage" "--config" config))
 
 (define* (register-closure prefix closure
                            #:key
-                           (deduplicate? #t) (reset-timestamps? #t)
                            (schema (sql-schema))
                            (wal-mode? #t))
   "Register CLOSURE in PREFIX, where PREFIX is the directory name of the
 target store and CLOSURE is the name of a file containing a reference graph as
-produced by #:references-graphs..  As a side effect, if RESET-TIMESTAMPS? is
-true, reset timestamps on store files and, if DEDUPLICATE? is true,
-deduplicates files common to CLOSURE and the rest of PREFIX.  Pass WAL-MODE?
-to call-with-database."
+produced by #:references-graphs.  Pass WAL-MODE? to call-with-database."
   (let ((items (call-with-input-file closure read-reference-graph)))
     (parameterize ((sql-schema schema))
       (with-database (store-database-file #:prefix prefix) db
        #:wal-mode? wal-mode?
        (register-items db items
                        #:prefix prefix
-                       #:deduplicate? deduplicate?
-                       #:reset-timestamps? reset-timestamps?
                        #:registration-time %epoch)))))
 
 (define* (initialize-efi-partition root
@@ -178,7 +182,8 @@ rest of the store when registering the closures.  SYSTEM-DIRECTORY is the name
 of the directory of the 'system' derivation.  Pass WAL-MODE? to
 register-closure."
   (populate-root-file-system system-directory root)
-  (populate-store references-graphs root)
+  (populate-store references-graphs root
+                  #:deduplicate? deduplicate?)
 
   ;; Populate /dev.
   (when make-device-nodes
@@ -186,10 +191,7 @@ register-closure."
 
   (when register-closures?
     (for-each (lambda (closure)
-                (register-closure root
-                                  closure
-                                  #:reset-timestamps? #t
-                                  #:deduplicate? deduplicate?
+                (register-closure root closure
                                   #:wal-mode? wal-mode?))
               references-graphs))
 
diff --git a/gnu/build/install.scm b/gnu/build/install.scm
index 87aa5d68da..f5c8407b89 100644
--- a/gnu/build/install.scm
+++ b/gnu/build/install.scm
@@ -18,6 +18,7 @@
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (gnu build install)
+  #:use-module (guix build syscalls)
   #:use-module (guix build utils)
   #:use-module (guix build store-copy)
   #:use-module (srfi srfi-26)
@@ -26,7 +27,9 @@
             evaluate-populate-directive
             populate-root-file-system
             install-database-and-gc-roots
-            populate-single-profile-directory))
+            populate-single-profile-directory
+            mount-cow-store
+            unmount-cow-store))
 
 ;;; Commentary:
 ;;;
@@ -211,7 +214,8 @@ This is used to create the self-contained tarballs with 'guix pack'."
     (symlink old (scope new)))
 
   ;; Populate the store.
-  (populate-store (list closure) directory)
+  (populate-store (list closure) directory
+                  #:deduplicate? #f)
 
   (when database
     (install-database-and-gc-roots directory database profile
@@ -229,4 +233,43 @@ This is used to create the self-contained tarballs with 'guix pack'."
     (_
      #t)))
 
+(define (mount-cow-store target backing-directory)
+  "Make the store copy-on-write, using TARGET as the backing store.  This is
+useful when TARGET is on a hard disk, whereas the current store is on a RAM
+disk."
+  (define (set-store-permissions directory)
+    "Set the right perms on DIRECTORY to use it as the store."
+    (chown directory 0 30000)      ;use the fixed 'guixbuild' GID
+    (chmod directory #o1775))
+
+  (let ((tmpdir (string-append target "/tmp")))
+    (mkdir-p tmpdir)
+    (mount tmpdir "/tmp" "none" MS_BIND))
+
+  (let* ((rw-dir (string-append target backing-directory))
+         (work-dir (string-append rw-dir "/../.overlayfs-workdir")))
+    (mkdir-p rw-dir)
+    (mkdir-p work-dir)
+    (mkdir-p "/.rw-store")
+    (set-store-permissions rw-dir)
+    (set-store-permissions "/.rw-store")
+
+    ;; Mount the overlay, then atomically make it the store.
+    (mount "none" "/.rw-store" "overlay" 0
+           (string-append "lowerdir=" (%store-directory) ","
+                          "upperdir=" rw-dir ","
+                          "workdir=" work-dir))
+    (mount "/.rw-store" (%store-directory) "" MS_MOVE)
+    (rmdir "/.rw-store")))
+
+(define (unmount-cow-store target backing-directory)
+  "Unmount copy-on-write store."
+  (let ((tmp-dir "/remove"))
+    (mkdir-p tmp-dir)
+    (mount (%store-directory) tmp-dir "" MS_MOVE)
+    (umount tmp-dir)
+    (rmdir tmp-dir)
+    (delete-file-recursively
+     (string-append target backing-directory))))
+
 ;;; install.scm ends here
diff --git a/gnu/build/linux-boot.scm b/gnu/build/linux-boot.scm
index 80fe0cfb9d..f20eeaac9f 100644
--- a/gnu/build/linux-boot.scm
+++ b/gnu/build/linux-boot.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2016, 2017, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
 ;;; Copyright © 2019 Guillaume Le Vaillant <glv@posteo.net>
 ;;;
@@ -110,6 +111,58 @@ OPTION doesn't appear in ARGUMENTS."
                        (substring arg (+ 1 (string-index arg #\=)))))
                 arguments)))
 
+(define (resume-if-hibernated device)
+  "Resume from hibernation if possible.  This is safe ONLY if no on-disk file
+systems have been mounted; calling it later risks severe file system corruption!
+See <Documentation/swsusp.txt> in the kernel source directory.  This is the
+caller's responsibility, as is catching exceptions if resumption was supposed to
+happen but didn't.
+
+Resume only from DEVICE if it's a string.  If it's #f, use the kernel's default
+hibernation device (CONFIG_PM_STD_PARTITION).  Never return if resumption
+succeeds.  Return nothing otherwise.  The kernel logs any details to dmesg."
+
+  (define (string->major:minor string)
+    "Return a string with MAJOR:MINOR numbers of the device specified by STRING"
+
+    ;; The "resume=" kernel command-line option always provides a string, which
+    ;; can represent a device, a UUID, or a label.  Check for all three.
+    (let* ((spec (cond ((string-prefix? "/" string) string)
+                       ((uuid string) => identity)
+                       (else (file-system-label string))))
+           ;; XXX The kernel's swsusp_resume_can_resume() waits if ‘resumewait’
+           ;; 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)))
+
+  ;; 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.
+  (let ((resume "/sys/power/resume"))
+    (when (file-exists? resume)         ; this kernel supports hibernation
+      ;; Honour the kernel's default device (only) if none other was given.
+      (let ((major:minor (if device
+                             (or (false-if-exception (string->major:minor
+                                                      device))
+                                 ;; We can't parse it.  Maybe the kernel can.
+                                 device)
+                             (let ((default (call-with-input-file resume
+                                              read-line)))
+                               ;; Don't waste time echoing 0:0 to /sys.
+                               (if (string=? "0:0" default)
+                                   #f
+                                   default)))))
+        (when major:minor
+          (call-with-output-file resume ; may throw an ‘Invalid argument’
+            (cut display major:minor <>))))))) ; may never return
+
 (define* (make-disk-device-nodes base major #:optional (minor 0))
   "Make the block device nodes around BASE (something like \"/root/dev/sda\")
 with the given MAJOR number, starting with MINOR."
@@ -469,9 +522,10 @@ upon error."
 
   (define (device-string->file-system-device device-string)
     ;; The "--root=SPEC" kernel command-line option always provides a
-    ;; string, but the string can represent a device, a UUID, or a
-    ;; label.  So check for all three.
+    ;; string, but the string can represent a device, an nfs-root, a UUID, or a
+    ;; label.  So check for all four.
     (cond ((string-prefix? "/" device-string) device-string)
+          ((string-contains device-string ":/") device-string) ; nfs-root
           ((uuid device-string) => identity)
           (else (file-system-label device-string))))
 
@@ -506,6 +560,15 @@ upon error."
         (load-linux-modules-from-directory linux-modules
                                            linux-module-directory)
 
+        (unless (or (member "hibernate=noresume" args)
+                    ;; Also handle the equivalent old-style argument.
+                    ;; See Documentation/admin-guide/kernel-parameters.txt.
+                    (member "noresume" args))
+          ;; Try to resume immediately after loading (storage) modules
+          ;; but before any on-disk file systems have been mounted.
+          (false-if-exception           ; failure is not fatal
+           (resume-if-hibernated (find-long-option "resume" args))))
+
         (when keymap-file
           (let ((status (system* "loadkeys" keymap-file)))
             (unless (zero? status)
diff --git a/gnu/build/linux-container.scm b/gnu/build/linux-container.scm
index 87695c98fd..4a8bed5a9a 100644
--- a/gnu/build/linux-container.scm
+++ b/gnu/build/linux-container.scm
@@ -170,7 +170,8 @@ for the process."
     (pivot-root root put-old)
     (chdir "/")
     (umount "real-root" MNT_DETACH)
-    (rmdir "real-root")))
+    (rmdir "real-root")
+    (chmod "/" #o755)))
 
 (define* (initialize-user-namespace pid host-uids
                                     #:key (guest-uid 0) (guest-gid 0))
@@ -243,7 +244,8 @@ that host UIDs (respectively GIDs) map to in the namespace."
              (match (read child)
                ('ready
                 (purify-environment)
-                (when (memq 'mnt namespaces)
+                (when (and (memq 'mnt namespaces)
+                           (not (string=? root "/")))
                   (catch #t
                     (lambda ()
                       (mount-file-systems root mounts
diff --git a/gnu/build/linux-initrd.scm b/gnu/build/linux-initrd.scm
index ea7de58553..bb2ed0db0c 100644
--- a/gnu/build/linux-initrd.scm
+++ b/gnu/build/linux-initrd.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014, 2015, 2018 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2014, 2015, 2018, 2020 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -39,8 +39,9 @@
                              #:key
                              (compress? #t)
                              (gzip "gzip"))
-  "Write a cpio archive containing DIRECTORY to file OUTPUT.  When
-COMPRESS? is true, compress it using GZIP.  On success, return OUTPUT."
+  "Write a cpio archive containing DIRECTORY to file OUTPUT, with reset
+timestamps in the archive.  When COMPRESS? is true, compress it using GZIP.
+On success, return OUTPUT."
 
   ;; Note: as per `ramfs-rootfs-initramfs.txt', always add directory entries
   ;; before the files that are inside of it: "The Linux kernel cpio
@@ -126,7 +127,8 @@ REFERENCES-GRAPHS."
   (mkdir "contents")
 
   ;; Copy the closures of all the items referenced in REFERENCES-GRAPHS.
-  (populate-store references-graphs "contents")
+  (populate-store references-graphs "contents"
+                  #:deduplicate? #f)
 
   (with-directory-excursion "contents"
     ;; Make '/init'.
@@ -141,12 +143,6 @@ REFERENCES-GRAPHS."
     (symlink (string-append guile "/bin/guile") "proc/self/exe")
     (readlink "proc/self/exe")
 
-    ;; Reset the timestamps of all the files that will make it in the initrd.
-    (for-each (lambda (file)
-                (unless (eq? 'symlink (stat:type (lstat file)))
-                  (utime file 0 0 0 0)))
-              (find-files "." ".*"))
-
     (write-cpio-archive output "." #:gzip gzip))
 
   ;; Make sure directories are writable so we can delete files.
diff --git a/gnu/build/linux-modules.scm b/gnu/build/linux-modules.scm
index aa1c7cfeae..3a47322065 100644
--- a/gnu/build/linux-modules.scm
+++ b/gnu/build/linux-modules.scm
@@ -24,6 +24,7 @@
   #:use-module (guix build syscalls)
   #:use-module ((guix build utils) #:select (find-files invoke))
   #:use-module (guix build union)
+  #:autoload   (zlib) (call-with-gzip-input-port)
   #:use-module (rnrs io ports)
   #:use-module (rnrs bytevectors)
   #:use-module (srfi srfi-1)
@@ -94,10 +95,28 @@ string list."
     (cons (string->symbol (string-take str =))
           (string-drop str (+ 1 =)))))
 
+;; Matches kernel modules, without compression, with GZIP compression or with
+;; XZ compression.
+(define module-regex "\\.ko(\\.gz|\\.xz)?$")
+
 (define (modinfo-section-contents file)
   "Return the contents of the '.modinfo' section of FILE as a list of
 key/value pairs.."
-  (let* ((bv      (call-with-input-file file get-bytevector-all))
+  (define (get-bytevector file)
+    (cond
+     ((string-suffix? ".ko.gz" file)
+      (let ((port (open-file file "r0")))
+        (dynamic-wind
+          (lambda ()
+            #t)
+          (lambda ()
+            (call-with-gzip-input-port port get-bytevector-all))
+          (lambda ()
+            (close-port port)))))
+     (else
+      (call-with-input-file file get-bytevector-all))))
+
+  (let* ((bv      (get-bytevector file))
          (elf     (parse-elf bv))
          (section (elf-section-by-name elf ".modinfo"))
          (modinfo (section-contents elf section)))
@@ -110,7 +129,7 @@ key/value pairs.."
 (define (module-formal-name file)
   "Return the module name of FILE as it appears in its info section.  Usually
 the module name is the same as the base name of FILE, modulo hyphens and minus
-the \".ko\" extension."
+the \".ko[.gz|.xz]\" extension."
   (match (assq 'name (modinfo-section-contents file))
     (('name . name) name)
     (#f #f)))
@@ -171,14 +190,25 @@ modules that can be postloaded, of the soft dependencies of module FILE."
                  (_ #f))
                 (modinfo-section-contents file))))
 
-(define dot-ko
-  (cut string-append <> ".ko"))
-
-(define (ensure-dot-ko name)
-  "Return NAME with a '.ko' prefix appended, unless it already has it."
-  (if (string-suffix? ".ko" name)
+(define (strip-extension filename)
+  (let ((extension (string-index filename #\.)))
+    (if extension
+        (string-take filename extension)
+        filename)))
+
+(define (dot-ko name compression)
+  (let ((suffix (match compression
+                  ('xz   ".ko.xz")
+                  ('gzip ".ko.gz")
+                  (else  ".ko"))))
+    (string-append name suffix)))
+
+(define (ensure-dot-ko name compression)
+  "Return NAME with a '.ko[.gz|.xz]' suffix appended, unless it already has
+it."
+  (if (string-contains name ".ko")
       name
-      (dot-ko name)))
+      (dot-ko name compression)))
 
 (define (normalize-module-name module)
   "Return the \"canonical\" name for MODULE, replacing hyphens with
@@ -191,9 +221,9 @@ underscores."
               module))
 
 (define (file-name->module-name file)
-  "Return the module name corresponding to FILE, stripping the trailing '.ko'
-and normalizing it."
-  (normalize-module-name (basename file ".ko")))
+  "Return the module name corresponding to FILE, stripping the trailing
+'.ko[.gz|.xz]' and normalizing it."
+  (normalize-module-name (strip-extension (basename file))))
 
 (define (find-module-file directory module)
   "Lookup module NAME under DIRECTORY, and return its absolute file name.
@@ -208,19 +238,19 @@ whereas file names often, but not always, use hyphens.  Examples:
     ;; List of possible file names.  XXX: It would of course be cleaner to
     ;; have a database that maps module names to file names and vice versa,
     ;; but everyone seems to be doing hacks like this one.  Oh well!
-    (map ensure-dot-ko
-         (delete-duplicates
-          (list module
-                (normalize-module-name module)
-                (string-map (lambda (chr) ;converse of 'normalize-module-name'
-                              (case chr
-                                ((#\_) #\-)
-                                (else chr)))
-                            module)))))
+    (delete-duplicates
+     (list module
+           (normalize-module-name module)
+           (string-map (lambda (chr) ;converse of 'normalize-module-name'
+                         (case chr
+                           ((#\_) #\-)
+                           (else chr)))
+                       module))))
 
   (match (find-files directory
                      (lambda (file stat)
-                       (member (basename file) names)))
+                       (member (strip-extension
+                                (basename file)) names)))
     ((file)
      file)
     (()
@@ -290,8 +320,8 @@ not a file name."
                              (recursive? #t)
                              (lookup-module dot-ko)
                              (black-list (module-black-list)))
-  "Load Linux module from FILE, the name of a '.ko' file; return true on
-success, false otherwise.  When RECURSIVE? is true, load its dependencies
+  "Load Linux module from FILE, the name of a '.ko[.gz|.xz]' file; return true
+on success, false otherwise.  When RECURSIVE? is true, load its dependencies
 first (à la 'modprobe'.)  The actual files containing modules depended on are
 obtained by calling LOOKUP-MODULE with the module name.  Modules whose name
 appears in BLACK-LIST are not loaded."
@@ -523,16 +553,29 @@ are required to access DEVICE."
 ;;; Module databases.
 ;;;
 
-(define (module-name->file-name/guess directory name)
+(define* (module-name->file-name/guess directory name
+                                       #:key compression)
   "Guess the file name corresponding to NAME, a module name.  That doesn't
 always work because sometimes underscores in NAME map to hyphens (e.g.,
-\"input-leds.ko\"), sometimes not (e.g., \"mac_hid.ko\")."
-  (string-append directory "/" (ensure-dot-ko name)))
+\"input-leds.ko\"), sometimes not (e.g., \"mac_hid.ko\").  If the module is
+compressed then COMPRESSED can be set to 'xz or 'gzip, depending on the
+compression type."
+  (string-append directory "/" (ensure-dot-ko name compression)))
 
 (define (module-name-lookup directory)
   "Return a one argument procedure that takes a module name (e.g.,
 \"input_leds\") and returns its absolute file name (e.g.,
 \"/.../input-leds.ko\")."
+  (define (guess-file-name name)
+    (let ((names (list
+                  (module-name->file-name/guess directory name)
+                  (module-name->file-name/guess directory name
+                                                #:compression 'xz)
+                  (module-name->file-name/guess directory name
+                                                #:compression 'gzip))))
+      (or (find file-exists? names)
+          (first names))))
+
   (catch 'system-error
     (lambda ()
       (define mapping
@@ -541,23 +584,23 @@ always work because sometimes underscores in NAME map to hyphens (e.g.,
 
       (lambda (name)
         (or (assoc-ref mapping name)
-            (module-name->file-name/guess directory name))))
+            (guess-file-name name))))
     (lambda args
       (if (= ENOENT (system-error-errno args))
-          (cut module-name->file-name/guess directory <>)
+          (cut guess-file-name <>)
           (apply throw args)))))
 
 (define (write-module-name-database directory)
   "Write a database that maps \"module names\" as they appear in the relevant
-ELF section of '.ko' files, to actual file names.  This format is
+ELF section of '.ko[.gz|.xz]' files, to actual file names.  This format is
 Guix-specific.  It aims to deal with inconsistent naming, in particular
 hyphens vs. underscores."
   (define mapping
     (map (lambda (file)
            (match (module-formal-name file)
-             (#f   (cons (basename file ".ko") file))
+             (#f   (cons (strip-extension (basename file)) file))
              (name (cons name file))))
-         (find-files directory "\\.ko$")))
+         (find-files directory module-regex)))
 
   (call-with-output-file (string-append directory "/modules.name")
     (lambda (port)
@@ -569,12 +612,12 @@ hyphens vs. underscores."
       (pretty-print mapping port))))
 
 (define (write-module-alias-database directory)
-  "Traverse the '.ko' files in DIRECTORY and create the corresponding
+  "Traverse the '.ko[.gz|.xz]' files in DIRECTORY and create the corresponding
 'modules.alias' file."
   (define aliases
     (map (lambda (file)
            (cons (file-name->module-name file) (module-aliases file)))
-         (find-files directory "\\.ko$")))
+         (find-files directory module-regex)))
 
   (call-with-output-file (string-append directory "/modules.alias")
     (lambda (port)
@@ -616,7 +659,7 @@ are found, return a tuple (DEVNAME TYPE MAJOR MINOR), otherwise return #f."
   (char-set-complement (char-set #\-)))
 
 (define (write-module-device-database directory)
-  "Traverse the '.ko' files in DIRECTORY and create the corresponding
+  "Traverse the '.ko[.gz|.xz]' files in DIRECTORY and create the corresponding
 'modules.devname' file.  This file contains information about modules that can
 be loaded on-demand, such as file system modules."
   (define aliases
@@ -624,7 +667,7 @@ be loaded on-demand, such as file system modules."
                   (match (aliases->device-tuple (module-aliases file))
                     (#f #f)
                     (tuple (cons (file-name->module-name file) tuple))))
-                (find-files directory "\\.ko$")))
+                (find-files directory module-regex)))
 
   (call-with-output-file (string-append directory "/modules.devname")
     (lambda (port)
diff --git a/gnu/build/secret-service.scm b/gnu/build/secret-service.scm
new file mode 100644
index 0000000000..46dcf1b9c3
--- /dev/null
+++ b/gnu/build/secret-service.scm
@@ -0,0 +1,190 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@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 build secret-service)
+  #:use-module (guix build utils)
+
+  #:use-module (srfi srfi-26)
+  #:use-module (rnrs bytevectors)
+  #:use-module (ice-9 binary-ports)
+  #:use-module (ice-9 match)
+  #:use-module (ice-9 rdelim)
+
+  #:export (secret-service-receive-secrets
+            secret-service-send-secrets))
+
+;;; Commentary:
+;;;
+;;; Utility procedures for copying secrets into a VM.
+;;;
+;;; Code:
+
+(define-syntax log
+  (lambda (s)
+    "Log the given message."
+    (syntax-case s ()
+      ((_ fmt args ...)
+       (with-syntax ((fmt (string-append "secret service: "
+                                         (syntax->datum #'fmt))))
+         ;; Log to the current output port.  That way, when
+         ;; 'secret-service-send-secrets' is called from shepherd, output goes
+         ;; to syslog.
+         #'(format (current-output-port) fmt args ...))))))
+
+(define* (secret-service-send-secrets port secret-root
+                                      #:key (retry 60)
+                                      (handshake-timeout 120))
+  "Copy all files under SECRET-ROOT using TCP to secret-service listening at
+local PORT.  If connect fails, sleep 1s and retry RETRY times; once connected,
+wait for at most HANDSHAKE-TIMEOUT seconds for handshake to complete.  Return
+#f on failure."
+  (define (file->file+size+mode file-name)
+    (let ((stat (stat file-name))
+          (target (substring file-name (string-length secret-root))))
+      (list target (stat:size stat) (stat:mode stat))))
+
+  (define (send-files sock)
+    (let* ((files (if secret-root (find-files secret-root) '()))
+           (files-sizes-modes (map file->file+size+mode files))
+           (secrets `(secrets
+                      (version 0)
+                      (files ,files-sizes-modes))))
+      (write secrets sock)
+      (for-each (lambda (file)
+                  (call-with-input-file file
+                    (lambda (input)
+                      (dump-port input sock))))
+                files)))
+
+  (log "sending secrets to ~a~%" port)
+  (let ((sock (socket AF_INET SOCK_STREAM 0))
+        (addr (make-socket-address AF_INET INADDR_LOOPBACK port)))
+    ;; Connect to QEMU on the forwarded port.  The 'connect' call succeeds as
+    ;; soon as QEMU is ready, even if there's no server listening on the
+    ;; forward port inside the guest.
+    (let loop ((retry retry))
+      (catch 'system-error
+        (cute connect sock addr)
+        (lambda (key . args)
+          (when (zero? retry)
+            (apply throw key args))
+          (log "retrying connection [~a attempts left]~%"
+               (- retry 1))
+          (sleep 1)
+          (loop (1- retry)))))
+
+    (log "connected; waiting for handshake...~%")
+
+    ;; Wait for "hello" message from the server.  This is the only way to know
+    ;; that we're really connected to the server inside the guest.
+    (match (select (list sock) '() '() handshake-timeout)
+      (((_) () ())
+       (match (read sock)
+         (('secret-service-server ('version version ...))
+          (log "sending files from ~s...~%" secret-root)
+          (send-files sock)
+          (log "done sending files to port ~a~%" port)
+          (close-port sock)
+          secret-root)
+         (x
+          (log "invalid handshake ~s~%" x)
+          (close-port sock)
+          #f)))
+      ((() () ())                                 ;timeout
+       (log "timeout while sending files to ~a~%" port)
+       (close-port sock)
+       #f))))
+
+(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,
+and #f otherwise."
+
+  (define (wait-for-client port)
+    ;; Wait for a TCP connection on PORT.  Note: We cannot use the
+    ;; virtio-serial ports, which would be safer, because they are
+    ;; (presumably) unsupported on GNU/Hurd.
+    (let ((sock (socket AF_INET SOCK_STREAM 0)))
+      (bind sock AF_INET INADDR_ANY port)
+      (listen sock 1)
+      (log "waiting for secrets on port ~a...~%" port)
+      (match (select (list sock) '() '() 60)
+        (((_) () ())
+         (match (accept sock)
+           ((client . address)
+            (log "client connection from ~a~%"
+                 (inet-ntop (sockaddr:fam address)
+                            (sockaddr:addr address)))
+
+            ;; Send a "hello" message.  This allows the client running on the
+            ;; host to know that it's now actually connected to server running
+            ;; in the guest.
+            (write '(secret-service-server (version 0)) client)
+            (force-output client)
+            (close-port sock)
+            client)))
+        ((() () ())
+         (log "did not receive any secrets; time out~%")
+         (close-port sock)
+         #f))))
+
+  ;; TODO: Remove when (@ (guix build utils) dump-port) has a 'size'
+  ;; parameter.
+  (define (dump in out size)
+    ;; Copy SIZE bytes from IN to OUT.
+    (define buf-size 65536)
+    (define buf (make-bytevector buf-size))
+
+    (let loop ((left size))
+      (if (<= left 0)
+          0
+          (let ((read (get-bytevector-n! in buf 0 (min left buf-size))))
+            (if (eof-object? read)
+                left
+                (begin
+                  (put-bytevector out buf 0 read)
+                  (loop (- left read))))))))
+
+  (define (read-secrets port)
+    ;; Read secret files from PORT and install them.
+    (match (false-if-exception (read port))
+      (('secrets ('version 0)
+                 ('files ((files sizes modes) ...)))
+       (for-each (lambda (file size mode)
+                   (log "installing file '~a' (~a bytes)...~%"
+                        file size)
+                   (mkdir-p (dirname file))
+                   (call-with-output-file file
+                     (lambda (output)
+                       (dump port output size)
+                       (chmod file mode))))
+                 files sizes modes)
+       (log "received ~a secret files~%" (length files))
+       files)
+      (_
+       (log "invalid secrets received~%")
+       #f)))
+
+  (let* ((port   (wait-for-client port))
+         (result (and=> port read-secrets)))
+    (when port
+      (close-port port))
+    result))
+
+;;; secret-service.scm ends here
diff --git a/gnu/build/shepherd.scm b/gnu/build/shepherd.scm
index fd93e7f3f4..d7b858dea4 100644
--- a/gnu/build/shepherd.scm
+++ b/gnu/build/shepherd.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2020 Mathieu Othacehe <othacehe@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -23,7 +24,8 @@
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-26)
   #:use-module (ice-9 match)
-  #:export (make-forkexec-constructor/container))
+  #:export (make-forkexec-constructor/container
+            fork+exec-command/container))
 
 ;;; Commentary:
 ;;;
@@ -93,7 +95,8 @@
 ;; XXX: Lazy-bind the Shepherd to avoid a compile-time dependency.
 (module-autoload! (current-module)
                   '(shepherd service)
-                  '(read-pid-file exec-command %precious-signals))
+                  '(fork+exec-command read-pid-file exec-command
+                    %precious-signals))
 (module-autoload! (current-module)
                   '(shepherd system) '(unblock-signals))
 
@@ -188,6 +191,35 @@ namespace, in addition to essential bind-mounts such /proc."
               (read-pid-file pid-file #:max-delay pid-file-timeout))
           pid))))
 
+(define* (fork+exec-command/container command
+                                      #:key pid
+                                      #:allow-other-keys
+                                      #:rest args)
+  "This is a variant of 'fork+exec-command' procedure, that joins the
+namespaces of process PID beforehand.  If there is no support for containers,
+on Hurd systems for instance, fallback to direct forking."
+  (define (strip-pid args)
+    ;; TODO: Replace with 'strip-keyword-arguments' when that no longer pulls
+    ;; in (guix config).
+    (let loop ((args args)
+               (result '()))
+      (match args
+        (()
+         (reverse result))
+        ((#:pid _ . rest)
+         (loop rest result))
+        ((head . rest)
+         (loop rest (cons head result))))))
+
+  (let ((container-support?
+         (file-exists? "/proc/self/ns"))
+        (fork-proc (lambda ()
+                     (apply fork+exec-command command
+                            (strip-pid args)))))
+    (if container-support?
+        (container-excursion* pid fork-proc)
+        (fork-proc))))
+
 ;; Local Variables:
 ;; eval: (put 'container-excursion* 'scheme-indent-function 1)
 ;; End:
diff --git a/gnu/build/vm.scm b/gnu/build/vm.scm
index 287d099f79..bd59916bf3 100644
--- a/gnu/build/vm.scm
+++ b/gnu/build/vm.scm
@@ -215,20 +215,15 @@ the #:references-graphs parameter of 'derivation'."
 
 (define* (register-closure prefix closure
                            #:key
-                           (deduplicate? #t) (reset-timestamps? #t)
                            (schema (sql-schema)))
   "Register CLOSURE in PREFIX, where PREFIX is the directory name of the
 target store and CLOSURE is the name of a file containing a reference graph as
-produced by #:references-graphs..  As a side effect, if RESET-TIMESTAMPS? is
-true, reset timestamps on store files and, if DEDUPLICATE? is true,
-deduplicates files common to CLOSURE and the rest of PREFIX."
+produced by #:references-graphs."
   (let ((items (call-with-input-file closure read-reference-graph)))
     (parameterize ((sql-schema schema))
       (with-database (store-database-file #:prefix prefix) db
         (register-items db items
                         #:prefix prefix
-                        #:deduplicate? deduplicate?
-                        #:reset-timestamps? reset-timestamps?
                         #:registration-time %epoch)))))
 
 
@@ -397,7 +392,8 @@ system that is passed to 'populate-root-file-system'."
     (when copy-closures?
       ;; Populate the store.
       (populate-store (map (cut string-append "/xchg/" <>) closures)
-                      target))
+                      target
+                      #:deduplicate? deduplicate?))
 
     ;; Populate /dev.
     (make-device-nodes target)
@@ -413,9 +409,7 @@ system that is passed to 'populate-root-file-system'."
       (display "registering closures...\n")
       (for-each (lambda (closure)
                   (register-closure target
-                                    (string-append "/xchg/" closure)
-                                    #:reset-timestamps? copy-closures?
-                                    #:deduplicate? deduplicate?))
+                                    (string-append "/xchg/" closure)))
                 closures)
       (unless copy-closures?
         (umount target-store)))
diff --git a/gnu/ci.scm b/gnu/ci.scm
index af0bb66775..858b6bf520 100644
--- a/gnu/ci.scm
+++ b/gnu/ci.scm
@@ -1,7 +1,9 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
-;;; Copyright © 2017 Jan Nieuwenhuizen <janneke@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>
+;;; Copyright © 2020 Mathieu Othacehe <othacehe@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -25,6 +27,7 @@
   #:use-module (guix profiles)
   #:use-module (guix packages)
   #:use-module (guix channels)
+  #:use-module (guix config)
   #:use-module (guix derivations)
   #:use-module (guix build-system)
   #:use-module (guix monads)
@@ -54,6 +57,9 @@
   #:use-module (gnu system vm)
   #:use-module (gnu system install)
   #:use-module (gnu system images hurd)
+  #:use-module (gnu system images novena)
+  #:use-module (gnu system images pine64)
+  #:use-module (gnu system images pinebook-pro)
   #:use-module (gnu tests)
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-26)
@@ -73,28 +79,36 @@
                          #:optional (package-derivation package-derivation))
   "Convert PACKAGE to an alist suitable for Hydra."
   (parameterize ((%graft? #f))
-    `((derivation . ,(derivation-file-name
-                      (package-derivation store package system
-                                          #:graft? #f)))
-      (description . ,(package-synopsis package))
-      (long-description . ,(package-description package))
-
-      ;; XXX: Hydra ignores licenses that are not a <license> structure or a
-      ;; list thereof.
-      (license . ,(let loop ((license (package-license package)))
-                    (match license
-                      ((? license?)
-                       (license-name license))
-                      ((lst ...)
-                       (map loop license)))))
-
-      (home-page . ,(package-home-page package))
-      (maintainers . ("bug-guix@gnu.org"))
-      (max-silent-time . ,(or (assoc-ref (package-properties package)
-                                         'max-silent-time)
-                              3600))              ;1 hour by default
-      (timeout . ,(or (assoc-ref (package-properties package) 'timeout)
-                      72000)))))                  ;20 hours by default
+    (let ((drv (package-derivation store package system
+                                   #:graft? #f)))
+      `((derivation . ,(derivation-file-name drv))
+        (log . ,(log-file store (derivation-file-name drv)))
+        (outputs . ,(filter-map (lambda (res)
+                                  (match res
+                                    ((name . path)
+                                     `(,name . ,path))))
+                                (derivation->output-paths drv)))
+        (nix-name . ,(derivation-name drv))
+        (system . ,(derivation-system drv))
+        (description . ,(package-synopsis package))
+        (long-description . ,(package-description package))
+
+        ;; XXX: Hydra ignores licenses that are not a <license> structure or a
+        ;; list thereof.
+        (license . ,(let loop ((license (package-license package)))
+                      (match license
+                        ((? license?)
+                         (license-name license))
+                        ((lst ...)
+                         (map loop license)))))
+
+        (home-page . ,(package-home-page package))
+        (maintainers . ("bug-guix@gnu.org"))
+        (max-silent-time . ,(or (assoc-ref (package-properties package)
+                                           'max-silent-time)
+                                3600))              ;1 hour by default
+        (timeout . ,(or (assoc-ref (package-properties package) 'timeout)
+                        72000))))))                  ;20 hours by default
 
 (define (package-job store job-name package system)
   "Return a job called JOB-NAME that builds PACKAGE on SYSTEM."
@@ -116,7 +130,7 @@ SYSTEM."
   ;; Note: Don't put the '-final' package variants because (1) that's
   ;; implicit, and (2) they cannot be cross-built (due to the explicit input
   ;; chain.)
-  (list gcc-4.8 gcc-4.9 gcc-5 glibc binutils
+  (list gcc-7 gcc-8 gcc-9 gcc-10 glibc binutils
         gmp mpfr mpc coreutils findutils diffutils patch sed grep
         gawk gnu-gettext hello guile-2.0 guile-2.2 zlib gzip xz
         %bootstrap-binaries-tarball
@@ -193,16 +207,33 @@ SYSTEM."
   '("x86_64-linux" "i686-linux"))
 
 (define %guix-system-images
-  (list hurd-barebones-disk-image))
+  (list hurd-barebones-qcow2-image
+        pine64-barebones-raw-image
+        pinebook-pro-barebones-raw-image
+        novena-barebones-raw-image))
+
+(define (hours hours)
+  (* 3600 hours))
 
 (define (image-jobs store system)
-  "Return a list of jobs that build images for SYSTEM."
+  "Return a list of jobs that build images for SYSTEM.  Those jobs are
+expensive in storage and I/O operations, hence their periodicity is limited by
+passing the PERIOD argument."
   (define (->alist drv)
     `((derivation . ,(derivation-file-name drv))
+      (log . ,(log-file store (derivation-file-name drv)))
+      (outputs . ,(filter-map (lambda (res)
+                                (match res
+                                  ((name . path)
+                                   `(,name . ,path))))
+                              (derivation->output-paths drv)))
+      (nix-name . ,(derivation-name drv))
+      (system . ,(derivation-system drv))
       (description . "Stand-alone image of the GNU system")
       (long-description . "This is a demo stand-alone image of the GNU
 system.")
       (license . ,(license-name gpl3+))
+      (period . ,(hours 48))
       (max-silent-time . 600)
       (timeout . 3600)
       (home-page . ,%guix-home-page-url)
@@ -233,7 +264,12 @@ system.")
         ,(->job 'iso9660-image
                 (build-image
                  (image
-                  (inherit iso9660-image)
+                  (inherit (image-with-label
+                             iso9660-image
+                             (string-append "GUIX_" system "_"
+                                            (if (> (string-length %guix-version) 7)
+                                                (substring %guix-version 0 7)
+                                                %guix-version))))
                   (operating-system installation-os))))
         ;; Only cross-compile Guix System images from x86_64-linux for now.
         ,@(if (string=? system "x86_64-linux")
@@ -296,11 +332,23 @@ system.")
             (set-guile-for-build (default-guile))
             (system-test-value test))))
 
+      ;; Those tests are extremely expensive in I/O operations and storage
+      ;; size, use the "period" attribute to run them with a period of at
+      ;; least 48 hours.
       `((derivation . ,(derivation-file-name drv))
+        (log . ,(log-file store (derivation-file-name drv)))
+        (outputs . ,(filter-map (lambda (res)
+                                  (match res
+                                    ((name . path)
+                                     `(,name . ,path))))
+                                (derivation->output-paths drv)))
+        (nix-name . ,(derivation-name drv))
+        (system . ,(derivation-system drv))
         (description . ,(format #f "Guix '~a' system test"
                                 (system-test-name test)))
         (long-description . ,(system-test-description test))
         (license . ,(license-name gpl3+))
+        (period . ,(hours 48))
         (max-silent-time . 600)
         (timeout . 3600)
         (home-page . ,%guix-home-page-url)
@@ -326,12 +374,21 @@ system.")
   "Return Hydra jobs to build the self-contained Guix binary tarball."
   (define (->alist drv)
     `((derivation . ,(derivation-file-name drv))
+      (log . ,(log-file store (derivation-file-name drv)))
+      (outputs . ,(filter-map (lambda (res)
+                                (match res
+                                  ((name . path)
+                                   `(,name . ,path))))
+                              (derivation->output-paths drv)))
+      (nix-name . ,(derivation-name drv))
+      (system . ,(derivation-system drv))
       (description . "Stand-alone binary Guix tarball")
       (long-description . "This is a tarball containing binaries of Guix and
 all its dependencies, and ready to be installed on \"foreign\" distributions.")
       (license . ,(license-name gpl3+))
       (home-page . ,%guix-home-page-url)
-      (maintainers . ("bug-guix@gnu.org"))))
+      (maintainers . ("bug-guix@gnu.org"))
+      (period . ,(hours 24))))
 
   (define (->job name drv)
     (let ((name (symbol-append name (string->symbol ".")
@@ -504,20 +561,16 @@ Return #f if no such checkout is found."
                              (cross-jobs store system)))
                     ((hello)
                      ;; Build hello package only.
-                     (if (string=? system (%current-system))
-                         (let ((hello (specification->package "hello")))
-                           (list (package-job store (job-name hello) hello system)))
-                         '()))
+                     (let ((hello (specification->package "hello")))
+                       (list (package-job store (job-name hello) hello system))))
                     ((list)
                      ;; Build selected list of packages only.
-                     (if (string=? system (%current-system))
-                         (let* ((names (assoc-ref arguments 'subset))
-                                (packages (map specification->package names)))
-                           (map (lambda (package)
-                                    (package-job store (job-name package)
-                                                 package system))
-                                  packages))
-                         '()))
+                     (let* ((names (assoc-ref arguments 'subset))
+                            (packages (map specification->package names)))
+                       (map (lambda (package)
+                              (package-job store (job-name package)
+                                           package system))
+                            packages)))
                     ((manifests)
                      ;; Build packages in the list of manifests.
                      (let* ((manifests (arguments->manifests arguments))
diff --git a/gnu/image.scm b/gnu/image.scm
index dc66f2c533..a60d83b175 100644
--- a/gnu/image.scm
+++ b/gnu/image.scm
@@ -39,7 +39,14 @@
             image-partitions
             image-compression?
             image-volatile-root?
-            image-substitutable?))
+            image-substitutable?
+
+            image-type
+            image-type?
+            image-type-name
+            image-type-constructor
+
+            os->image))
 
 
 ;;;
@@ -84,3 +91,23 @@
                       (default #t))
   (substitutable?     image-substitutable? ;boolean
                       (default #t)))
+
+
+;;;
+;;; Image type.
+;;;
+
+(define-record-type* <image-type>
+  image-type make-image-type
+  image-type?
+  (name           image-type-name) ;symbol
+  (constructor    image-type-constructor)) ;<operating-system> -> <image>
+
+
+;;;
+;;; Image creation.
+;;;
+
+(define* (os->image os #:key type)
+  (let ((constructor (image-type-constructor type)))
+    (constructor os)))
diff --git a/gnu/installer.scm b/gnu/installer.scm
index 5c3192d7a6..d2be4b34f9 100644
--- a/gnu/installer.scm
+++ b/gnu/installer.scm
@@ -71,7 +71,7 @@
     (_ #f)))
 
 (define* (build-compiled-file name locale-builder)
-  "Return a file-like object that evalutes the gexp LOCALE-BUILDER and store
+  "Return a file-like object that evaluates the gexp LOCALE-BUILDER and store
 its result in the scheme file NAME. The derivation will also build a compiled
 version of this file."
   (define set-utf8-locale
@@ -187,7 +187,7 @@ selected keymap."
                (lambda (models layouts)
                  ((installer-keymap-page current-installer)
                   layouts '#$context)))))
-        (#$apply-keymap result)
+        (and result (#$apply-keymap result))
         result)))
 
 (define (installer-steps)
@@ -266,6 +266,13 @@ selected keymap."
           (compute (lambda _
                      ((installer-network-page current-installer)))))
 
+         ;; Ask whether to enable substitute server discovery.
+         (installer-step
+          (id 'substitutes)
+          (description (G_ "Substitute server discovery"))
+          (compute (lambda _
+                     ((installer-substitutes-page current-installer)))))
+
          ;; Prompt for users (name, group and home directory).
          (installer-step
           (id 'user)
@@ -308,7 +315,8 @@ selected keymap."
     ;; translated.
     #~(begin
         (bindtextdomain "guix" (string-append #$guix "/share/locale"))
-        (textdomain "guix")))
+        (textdomain "guix")
+        (setlocale LC_ALL "")))
 
   (define set-installer-path
     ;; Add the specified binary to PATH for later use by the installer.
diff --git a/gnu/installer/connman.scm b/gnu/installer/connman.scm
index 386f431ced..2f33b58453 100644
--- a/gnu/installer/connman.scm
+++ b/gnu/installer/connman.scm
@@ -180,7 +180,7 @@ Return the corresponding association list of '((KEY . VALUE) (KEY2 . VALUE2)
 (define (connman-state)
   "Return the state of connman. The nominal states are 'offline, 'idle,
 'ready, 'oneline.  If an unexpected state is read, 'unknown is
-returned. Finally, an error is raised if the comman output could not be
+returned. Finally, an error is raised if the connman output could not be
 parsed, usually because the connman daemon is not responding."
   (let* ((output (connman "state"))
          (state-keys (parse-keys output)))
diff --git a/gnu/installer/final.scm b/gnu/installer/final.scm
index 685aa81d89..fc0b7803fa 100644
--- a/gnu/installer/final.scm
+++ b/gnu/installer/final.scm
@@ -26,6 +26,8 @@
   #:use-module (guix build syscalls)
   #:use-module (guix build utils)
   #:use-module (gnu build accounts)
+  #:use-module (gnu build install)
+  #:use-module (gnu build linux-container)
   #:use-module ((gnu system shadow) #:prefix sys:)
   #:use-module (rnrs io ports)
   #:use-module (srfi srfi-1)
@@ -133,49 +135,32 @@ USERS."
                        (_ #f))))))
               pids)))
 
-(define (umount-cow-store)
-  "Remove the store overlay and the bind-mount on /tmp created by the
-cow-store service.  This procedure is very fragile and a better approach would
-be much appreciated."
-  (catch #t
-    (lambda ()
-      (let ((tmp-dir "/remove"))
-        (syslog "Unmounting cow-store.~%")
-
-        (mkdir-p tmp-dir)
-        (mount (%store-directory) tmp-dir "" MS_MOVE)
-
-        ;; The guix-daemon has possibly opened files from the cow-store,
-        ;; restart it.
-        (restart-service 'guix-daemon)
-
-        (syslog "Killing cow users.")
-
-        ;; Kill all processes started while the cow-store was active (logins
-        ;; on other TTYs for instance).
-        (kill-cow-users tmp-dir)
-
-        ;; Try to umount the store overlay. Some process such as udevd
-        ;; workers might still be active, so do some retries.
-        (let loop ((try 5))
-          (syslog "Umount try ~a~%" (- 5 try))
-          (sleep 1)
-          (let ((umounted? (false-if-exception (umount tmp-dir))))
-            (if (and (not umounted?) (> try 0))
-                (loop (- try 1))
-                (if umounted?
-                    (syslog "Umounted ~a successfully.~%" tmp-dir)
-                    (syslog "Failed to umount ~a.~%" tmp-dir)))))
-
-        (umount "/tmp")))
-    (lambda args
-      (syslog "~a~%" args))))
+(define (call-with-mnt-container thunk)
+  "This is a variant of call-with-container. Run THUNK in a new container
+process, within a separate MNT namespace. The container is not jailed so that
+it can interact with the rest of the system."
+  (let ((pid (run-container "/" '() '(mnt) 1 thunk)))
+    ;; Catch SIGINT and kill the container process.
+    (sigaction SIGINT
+      (lambda (signum)
+        (false-if-exception
+         (kill pid SIGKILL))))
+
+    (match (waitpid pid)
+      ((_ . status) status))))
 
 (define* (install-system locale #:key (users '()))
   "Create /etc/shadow and /etc/passwd on the installation target for USERS.
 Start COW-STORE service on target directory and launch guix install command in
 a subshell.  LOCALE must be the locale name under which that command will run,
 or #f.  Return #t on success and #f on failure."
+  (define backing-directory
+    ;; Sub-directory used as the backing store for copy-on-write.
+    "/tmp/guix-inst")
+
+  (define (assert-exit x)
+    (primitive-exit (if x 0 1)))
+
   (let* ((options         (catch 'system-error
                             (lambda ()
                               ;; If this file exists, it can provide
@@ -188,7 +173,11 @@ or #f.  Return #t on success and #f on failure."
                                         "--fallback")
                                   options
                                   (list (%installer-configuration-file)
-                                        (%installer-target-dir)))))
+                                        (%installer-target-dir))))
+         (database-dir    "/var/guix/db")
+         (database-file   (string-append database-dir "/db.sqlite"))
+         (saved-database  (string-append database-dir "/db.save"))
+         (ret             #f))
     (mkdir-p (%installer-target-dir))
 
     ;; We want to initialize user passwords but we don't want to store them in
@@ -198,27 +187,49 @@ or #f.  Return #t on success and #f on failure."
     ;; passwords that we've put in there.
     (create-user-database users (%installer-target-dir))
 
-    (dynamic-wind
-      (lambda ()
-        (start-service 'cow-store (list (%installer-target-dir))))
-      (lambda ()
-        ;; If there are any connected clients, assume that we are running
-        ;; installation tests. In that case, dump the standard and error
-        ;; outputs to syslog.
-        (if (not (null? (current-clients)))
-            (with-output-to-file "/dev/console"
-              (lambda ()
-                (with-error-to-file "/dev/console"
-                  (lambda ()
-                    (setvbuf (current-output-port) 'none)
-                    (setvbuf (current-error-port) 'none)
-                    (run-command install-command #:locale locale)))))
-            (run-command install-command #:locale locale)))
-      (lambda ()
-        (stop-service 'cow-store)
-        ;; Remove the store overlay created at cow-store service start.
-        ;; Failing to do that will result in further umount calls to fail
-        ;; because the target device is seen as busy. See:
-        ;; https://lists.gnu.org/archive/html/guix-devel/2018-12/msg00161.html.
-        (umount-cow-store)
-        #f))))
+    ;; When the store overlay is mounted, other processes such as kmscon, udev
+    ;; and guix-daemon may open files from the store, preventing the
+    ;; underlying install support from being umounted. See:
+    ;; https://lists.gnu.org/archive/html/guix-devel/2018-12/msg00161.html.
+    ;;
+    ;; To avoid this situation, mount the store overlay inside a container,
+    ;; and run the installation from within that container.
+    (zero?
+     (call-with-mnt-container
+       (lambda ()
+         (dynamic-wind
+           (lambda ()
+             ;; Save the database, so that it can be restored once the
+             ;; cow-store is umounted.
+             (copy-file database-file saved-database)
+             (mount-cow-store (%installer-target-dir) backing-directory))
+           (lambda ()
+             ;; We need to drag the guix-daemon to the container MNT
+             ;; namespace, so that it can operate on the cow-store.
+             (stop-service 'guix-daemon)
+             (start-service 'guix-daemon (list (number->string (getpid))))
+
+             (setvbuf (current-output-port) 'none)
+             (setvbuf (current-error-port) 'none)
+
+             ;; If there are any connected clients, assume that we are running
+             ;; installation tests. In that case, dump the standard and error
+             ;; outputs to syslog.
+             (set! ret
+                   (if (not (null? (current-clients)))
+                       (with-output-to-file "/dev/console"
+                         (lambda ()
+                           (with-error-to-file "/dev/console"
+                             (lambda ()
+                               (run-command install-command
+                                            #:locale locale)))))
+                       (run-command install-command #:locale locale))))
+           (lambda ()
+             ;; Restart guix-daemon so that it does no keep the MNT namespace
+             ;; alive.
+             (restart-service 'guix-daemon)
+             (copy-file saved-database database-file)
+
+             ;; Finally umount the cow-store and exit the container.
+             (unmount-cow-store (%installer-target-dir) backing-directory)
+             (assert-exit ret))))))))
diff --git a/gnu/installer/newt.scm b/gnu/installer/newt.scm
index a24a152984..4f7fc6f4dc 100644
--- a/gnu/installer/newt.scm
+++ b/gnu/installer/newt.scm
@@ -30,6 +30,7 @@
   #:use-module (gnu installer newt page)
   #:use-module (gnu installer newt partition)
   #:use-module (gnu installer newt services)
+  #:use-module (gnu installer newt substitutes)
   #:use-module (gnu installer newt timezone)
   #:use-module (gnu installer newt user)
   #:use-module (gnu installer newt utils)
@@ -46,6 +47,7 @@
   (newt-init)
   (clear-screen)
   (set-screen-size!)
+  (syslog "Display is ~ax~a.~%" (screen-columns) (screen-rows))
   (push-help-line
    (format #f (G_ "Press <F1> for installation parameters."))))
 
@@ -100,6 +102,9 @@ problem. The backtrace is displayed below. Please report it by email to \
 (define (network-page)
   (run-network-page))
 
+(define (substitutes-page)
+  (run-substitutes-page))
+
 (define (hostname-page)
   (run-hostname-page))
 
@@ -107,7 +112,7 @@ problem. The backtrace is displayed below. Please report it by email to \
   (run-user-page))
 
 (define (partition-page)
-  (run-partioning-page))
+  (run-partitioning-page))
 
 (define (services-page)
   (run-services-page))
@@ -129,6 +134,7 @@ problem. The backtrace is displayed below. Please report it by email to \
    (locale-page locale-page)
    (menu-page menu-page)
    (network-page network-page)
+   (substitutes-page substitutes-page)
    (timezone-page timezone-page)
    (hostname-page hostname-page)
    (user-page user-page)
diff --git a/gnu/installer/newt/ethernet.scm b/gnu/installer/newt/ethernet.scm
index ba5e222a37..ecd22efbb2 100644
--- a/gnu/installer/newt/ethernet.scm
+++ b/gnu/installer/newt/ethernet.scm
@@ -77,7 +77,7 @@ connection is pending."
       #:title (G_ "Ethernet connection")
       #:listbox-items services
       #:listbox-item->text ethernet-service->text
-      #:listbox-height (min (+ (length services) 2) 10)
+      #:listbox-height (min (+ (length services) 2) 5)
       #:button-text (G_ "Exit")
       #:button-callback-procedure
       (lambda _
diff --git a/gnu/installer/newt/final.scm b/gnu/installer/newt/final.scm
index fa8d6fea71..7f6dd9f075 100644
--- a/gnu/installer/newt/final.scm
+++ b/gnu/installer/newt/final.scm
@@ -29,6 +29,7 @@
   #:use-module (srfi srfi-34)
   #:use-module (srfi srfi-35)
   #:use-module (ice-9 match)
+  #:use-module ((ice-9 rdelim) #:select (read-line))
   #:use-module (newt)
   #:export (run-final-page))
 
@@ -39,9 +40,8 @@
       file))
 
 (define* (run-config-display-page #:key locale)
-  (let ((width (%configuration-file-width))
-        (height (nearest-exact-integer
-                 (/ (screen-rows) 2))))
+  (let ((width (max 70 (- (screen-columns) 20)))
+        (height (default-listbox-height)))
     (run-file-textbox-page
      #:info-text (format #f (G_ "\
 We're now ready to proceed with the installation! \
@@ -102,18 +102,24 @@ a specific step, or restart the installer."))
                             #:key (users '()))
   (clear-screen)
   (newt-suspend)
-  ;; XXX: Force loading 'bold' font files before mouting the
-  ;; cow-store. Otherwise, if the file is loaded by kmscon after the cow-store
-  ;; in mounted, it will be necessary to kill kmscon to umount to cow-store.
-  (display
-   (colorize-string
-    (format #f (G_ "Installing Guix System ...~%"))
-    (color BOLD)))
   (let ((install-ok? (install-system locale #:users users)))
     (newt-resume)
     install-ok?))
 
 (define (run-final-page result prev-steps)
+  (define (wait-for-clients)
+    (unless (null? (current-clients))
+      (syslog "waiting with clients before starting final step~%")
+      (send-to-clients '(starting-final-step))
+      (match (select (current-clients) '() '())
+        (((port _ ...) _ _)
+         (read-line port)))))
+
+  ;; Before generating the configuration file, give clients a chance to do
+  ;; things such as changing the swap partition label.
+  (wait-for-clients)
+
+  (syslog "proceeding with final step~%")
   (let* ((configuration   (format-configuration prev-steps result))
          (user-partitions (result-step result 'partition))
          (locale          (result-step result 'locale))
diff --git a/gnu/installer/newt/keymap.scm b/gnu/installer/newt/keymap.scm
index 1b3af2f158..92f7f46f34 100644
--- a/gnu/installer/newt/keymap.scm
+++ b/gnu/installer/newt/keymap.scm
@@ -56,7 +56,7 @@ different layout at any time from the parameters menu.")))
        (else (G_ "Exit")))
      #:button-callback-procedure
      (case context
-       ((param) (const #t))
+       ((param) (const #f))
        (else
         (lambda _
           (raise
@@ -183,7 +183,9 @@ options."
       (compute
        (lambda (result _)
          (let* ((layout (result-step result 'layout))
-                (variants (x11-keymap-layout-variants layout)))
+                (variants (if layout
+                              (x11-keymap-layout-variants layout)
+                              '())))
            ;; Return #f if the layout does not have any variant.
            (and (not (null? variants))
                 (run-variant-page
@@ -196,16 +198,19 @@ options."
                        (gettext (x11-keymap-layout-description layout)
                                 "xkeyboard-config")))))))))))
 
-  (define (format-result result)
-    (let ((layout (x11-keymap-layout-name
-                   (result-step result 'layout)))
-          (variant (and=> (result-step result 'variant)
+  (define (format-result layout variant)
+    (let ((layout (x11-keymap-layout-name layout))
+          (variant (and=> variant
                           (lambda (variant)
                             (gettext (x11-keymap-variant-name variant)
                                      "xkeyboard-config")))))
       (toggleable-latin-layout layout variant)))
-  (format-result
-   (run-installer-steps #:steps keymap-steps)))
+
+  (let* ((result (run-installer-steps #:steps keymap-steps))
+         (layout (result-step result 'layout))
+         (variant (result-step result 'variant)))
+    (and layout
+         (format-result layout variant))))
 
 (define (keyboard-layout->configuration keymap)
   "Return the operating system configuration snippet to install KEYMAP."
diff --git a/gnu/installer/newt/locale.scm b/gnu/installer/newt/locale.scm
index 7108e2960b..bfd89aca2c 100644
--- a/gnu/installer/newt/locale.scm
+++ b/gnu/installer/newt/locale.scm
@@ -106,7 +106,7 @@ symbol.")
 territory, codeset and modifier. Use SUPPORTED-LOCALES as the list of glibc
 available locales. ISO639-LANGUAGES is an association list associating a
 locale code to a locale name. ISO3166-TERRITORIES is an association list
-associating a territory code with a territory name. The formated locale, under
+associating a territory code with a territory name. The formatted locale, under
 glibc format is returned."
 
   (define (break-on-locale-found locales)
diff --git a/gnu/installer/newt/network.scm b/gnu/installer/newt/network.scm
index 461d5d99c0..4af7143d63 100644
--- a/gnu/installer/newt/network.scm
+++ b/gnu/installer/newt/network.scm
@@ -80,7 +80,7 @@ network devices were found. Do you want to continue anyway?"))
       #:title (G_ "Internet access")
       #:listbox-items items
       #:listbox-item->text technology->text
-      #:listbox-height (min (+ (length items) 2) 10)
+      #:listbox-height (min (+ (length items) 2) 5)
       #:button-text (G_ "Exit")
       #:button-callback-procedure
       (lambda _
diff --git a/gnu/installer/newt/page.scm b/gnu/installer/newt/page.scm
index 1d6b9979b4..4209674c28 100644
--- a/gnu/installer/newt/page.scm
+++ b/gnu/installer/newt/page.scm
@@ -32,7 +32,9 @@
   #:use-module (srfi srfi-34)
   #:use-module (srfi srfi-35)
   #:use-module (newt)
-  #:export (draw-info-page
+  #:export (default-listbox-height
+
+            draw-info-page
             draw-connecting-page
             run-input-page
             run-error-page
@@ -168,6 +170,10 @@ Like 'run-form', return two values: the exit reason, and an \"argument\"."
         (_
          (values reason argument))))))
 
+(define (default-listbox-height)
+  "Return the default listbox height."
+  (max 5 (- (screen-rows) 20)))
+
 (define (draw-info-page text title)
   "Draw an informative page with the given TEXT as content.  Set the title of
 this page to TITLE."
@@ -339,7 +345,8 @@ of the page is set to TITLE."
                                      (info-textbox-width 50)
                                      listbox-items
                                      listbox-item->text
-                                     (listbox-height 20)
+                                     (listbox-height
+                                      (default-listbox-height))
                                      (listbox-default-item #f)
                                      (listbox-allow-multiple? #f)
                                      (sort-listbox-items? #t)
diff --git a/gnu/installer/newt/parameters.scm b/gnu/installer/newt/parameters.scm
index 95112b5780..8fb1aa3abb 100644
--- a/gnu/installer/newt/parameters.scm
+++ b/gnu/installer/newt/parameters.scm
@@ -20,6 +20,7 @@
   #:use-module (gnu installer proxy)
   #:use-module (gnu installer steps)
   #:use-module (gnu installer newt page)
+  #:use-module (guix build syscalls)
   #:use-module (guix i18n)
   #:use-module (ice-9 match)
   #:use-module (newt)
@@ -40,7 +41,8 @@ empty string, proxy usage will be disabled.")
   (let* ((items
           (list
            (cons (G_ "Change keyboard layout") keyboard-layout-selection)
-           (cons (G_ "Configure HTTP proxy") run-proxy-page)))
+           (cons (G_ "Configure HTTP proxy") run-proxy-page)
+           (cons (G_ "Reboot") reboot)))
          (result
           (run-listbox-selection-page
            #:info-text (G_ "Please choose one of the following parameters or \
diff --git a/gnu/installer/newt/partition.scm b/gnu/installer/newt/partition.scm
index 54d595f54e..81cf68d782 100644
--- a/gnu/installer/newt/partition.scm
+++ b/gnu/installer/newt/partition.scm
@@ -25,6 +25,7 @@
   #:use-module (gnu installer newt page)
   #:use-module (gnu installer newt utils)
   #:use-module (guix i18n)
+  #:use-module (ice-9 format)
   #:use-module (ice-9 match)
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-26)
@@ -32,7 +33,7 @@
   #:use-module (srfi srfi-35)
   #:use-module (newt)
   #:use-module (parted)
-  #:export (run-partioning-page))
+  #:export (run-partitioning-page))
 
 (define (button-exit-action)
   "Raise the &installer-step-abort condition."
@@ -56,11 +57,17 @@
                   #:button-callback-procedure button-exit-action)))
     (car result)))
 
-(define (draw-formatting-page)
+(define (draw-formatting-page partitions)
   "Draw a page asking for confirmation, and then indicating that partitions
 are being formatted."
-  (run-confirmation-page (G_ "We are about to format your hard disk.  All \
-its data will be lost.  Do you wish to continue?")
+  ;; TRANSLATORS: The ~{ and ~} format specifiers are used to iterate the list
+  ;; of device names of the user partitions that will be formatted.
+  (run-confirmation-page (format #f (G_ "We are about to write the configured \
+partition table to the disk and format the partitions listed below.  Their \
+data will be lost.  Do you wish to continue?~%~%~{ - ~a~%~}")
+                                 (map user-partition-file-name
+                                      (filter user-partition-need-formatting?
+                                              partitions)))
                          (G_ "Format disk?")
                          #:exit-button-procedure button-exit-action)
   (draw-info-page
@@ -674,7 +681,7 @@ by pressing the Exit button.~%~%")))
                       (G_ "Guided partitioning")
                       (G_ "Manual partitioning"))
           #:info-textbox-width 76         ;we need a lot of room for INFO-TEXT
-          #:listbox-height 12
+          #:listbox-height (max 5 (- (screen-rows) 30))
           #:listbox-items (disk-items)
           #:listbox-item->text cdr
           #:sort-listbox-items? #f
@@ -725,7 +732,7 @@ by pressing the Exit button.~%~%")))
           (run-disk-page result-disks new-user-partitions
                          #:guided? guided?)))))
 
-(define (run-partioning-page)
+(define (run-partitioning-page)
   "Run a page asking the user for a partitioning method."
   (define (run-page devices)
     (let* ((items
@@ -773,9 +780,12 @@ by pressing the Exit button.~%~%")))
          (user-partitions (run-page non-install-devices))
          (user-partitions-with-pass (prompt-luks-passwords
                                      user-partitions))
-         (form (draw-formatting-page)))
+         (form (draw-formatting-page user-partitions)))
     ;; Make sure the disks are not in use before proceeding to formatting.
     (free-parted non-install-devices)
     (format-user-partitions user-partitions-with-pass)
+    (syslog "formatted ~a user partitions~%"
+            (length user-partitions-with-pass))
+
     (destroy-form-and-pop form)
     user-partitions))
diff --git a/gnu/installer/newt/services.scm b/gnu/installer/newt/services.scm
index 4f32d9077b..ae249ba972 100644
--- a/gnu/installer/newt/services.scm
+++ b/gnu/installer/newt/services.scm
@@ -1,6 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
-;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2019, 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -40,7 +41,7 @@ choose the one to use on the log-in screen.")
      #:items items
      #:selection (map system-service-recommended? items)
      #:item->text system-service-name             ;no i18n for DE names
-     #:checkbox-tree-height 8
+     #:checkbox-tree-height 9
      #:exit-button-callback-procedure
      (lambda ()
        (raise
@@ -76,6 +77,7 @@ system.")
 We recommend NetworkManager or Connman for a WiFi-capable laptop; the DHCP \
 client may be enough for a server.")
      #:info-textbox-width 70
+     #:listbox-height 7
      #:listbox-items (filter (lambda (service)
                                (eq? 'network-management
                                     (system-service-type service)))
diff --git a/gnu/installer/newt/substitutes.scm b/gnu/installer/newt/substitutes.scm
new file mode 100644
index 0000000000..938cb1a53b
--- /dev/null
+++ b/gnu/installer/newt/substitutes.scm
@@ -0,0 +1,43 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2020 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 installer newt substitutes)
+  #:use-module (gnu installer substitutes)
+  #:use-module (gnu installer utils)
+  #:use-module (guix i18n)
+  #:use-module (newt)
+  #:use-module (ice-9 match)
+  #:export (run-substitutes-page))
+
+(define* (run-substitutes-page)
+  (match (current-clients)
+    (()
+     (case (choice-window
+            (G_ "Substitute server discovery.")
+            (G_ "Enable") (G_ "Disable")
+            (G_ " By turning this option on, you allow Guix to fetch \
+substitutes (pre-built binaries) during installation from servers \
+discovered on your local area network (LAN) in addition to the official \
+server.  This can increase download throughput.
+
+ There are no security risks: only genuine substitutes may be retrieved from \
+those servers.  However, eavesdroppers on your LAN may be able to see what \
+software you are installing."))
+       ((1) (enable-discovery))
+       ((2) (disable-discovery))))
+    (_ #f)))
diff --git a/gnu/installer/newt/welcome.scm b/gnu/installer/newt/welcome.scm
index 1b4b2df816..5f461279e2 100644
--- a/gnu/installer/newt/welcome.scm
+++ b/gnu/installer/newt/welcome.scm
@@ -38,6 +38,9 @@
 (define info-textbox-width (make-parameter 70))
 (define options-listbox-height (make-parameter 5))
 
+(define (display-logo?)
+  (> (screen-rows) 35))
+
 (define* (run-menu-page title info-text logo
                         #:key
                         listbox-items
@@ -55,7 +58,10 @@ we want this page to occupy all the screen space available."
          items))
 
   (let* ((logo-textbox
-          (make-textbox -1 -1 (logo-width) (logo-height) 0))
+          (make-textbox -1 -1
+                        (if (display-logo?) (logo-width) 0)
+                        (if (display-logo?) (logo-height) 0)
+                        0))
          (info-textbox
           (make-reflowed-textbox -1 -1
                                  info-text
diff --git a/gnu/installer/newt/wifi.scm b/gnu/installer/newt/wifi.scm
index 3fd5756b99..f5d8f1fdbf 100644
--- a/gnu/installer/newt/wifi.scm
+++ b/gnu/installer/newt/wifi.scm
@@ -165,7 +165,8 @@ of <service-item> records present in LISTBOX."
 (define service-name-max-length (make-parameter 20))
 
 ;; Height of the listbox displaying wifi services.
-(define wifi-listbox-height (make-parameter 20))
+(define wifi-listbox-height (make-parameter
+                             (default-listbox-height)))
 
 ;; Information textbox width.
 (define info-textbox-width (make-parameter 40))
diff --git a/gnu/installer/parted.scm b/gnu/installer/parted.scm
index ff5f6afd19..9ef263d1f9 100644
--- a/gnu/installer/parted.scm
+++ b/gnu/installer/parted.scm
@@ -36,10 +36,12 @@
   #:use-module (guix utils)
   #:use-module (guix i18n)
   #:use-module (parted)
+  #:use-module (ice-9 format)
   #:use-module (ice-9 match)
   #:use-module (ice-9 regex)
   #:use-module (rnrs io ports)
   #:use-module (srfi srfi-1)
+  #:use-module (srfi srfi-19)
   #:use-module (srfi srfi-26)
   #:use-module (srfi srfi-34)
   #:use-module (srfi srfi-35)
@@ -317,7 +319,7 @@ PARTED-OBJECT field equals PARTITION, return #f if not found."
 fail. See rereadpt function in wipefs.c of util-linux for an explanation."
   ;; Kernel always return EINVAL for BLKRRPART on loopdevices.
   (and (not (string-match "/dev/loop*" file-name))
-       (let loop ((try 4))
+       (let loop ((try 16))
          (usleep 250000)
          (let ((in-use? (device-in-use? file-name)))
            (if (and in-use? (> try 0))
@@ -338,15 +340,12 @@ fail. See rereadpt function in wipefs.c of util-linux for an explanation."
 (define (non-install-devices)
   "Return all the available devices, except the busy one, allegedly the
 install device. DEVICE-IS-BUSY? is a parted call, checking if the device is
-mounted. The install image uses an overlayfs so the install device does not
-appear as mounted and won't be considered as busy. So use also DEVICE-IN-USE?
-from (guix build syscalls) module, who will try to re-read the device's
-partition table to determine whether or not it is already used (like sfdisk
-from util-linux)."
+mounted."
+  ;; FIXME: The install image uses an overlayfs so the install device does not
+  ;; appear as mounted and won't be considered as busy.
   (remove (lambda (device)
             (let ((file-name (device-path device)))
-              (or (device-is-busy? device)
-                  (with-delay-device-in-use? file-name))))
+              (device-is-busy? device)))
           (devices)))
 
 
@@ -526,56 +525,54 @@ determined by MAX-LENGTH-COLUMN procedure."
          (size (user-partition-size user-partition))
          (mount-point (user-partition-mount-point user-partition)))
     `(,@(if has-name?
-            `((name . ,(string-append "Name: " (or name "None"))))
+            `((name . ,(format #f (G_ "Name: ~a")
+                               (or name (G_ "None")))))
             '())
       ,@(if (and has-extended?
                  (freespace-partition? partition)
                  (not (eq? type 'logical)))
-            `((type . ,(string-append "Type: " type-name)))
+            `((type . ,(format #f (G_ "Type: ~a") type-name)))
             '())
       ,@(if (eq? type 'extended)
             '()
-            `((fs-type . ,(string-append "Filesystem type: " fs-type-name))))
+            `((fs-type . ,(format #f (G_ "File system type: ~a")
+                                  fs-type-name))))
       ,@(if (or (eq? type 'extended)
                 (eq? fs-type 'swap)
                 (not has-extended?))
             '()
-            `((bootable . ,(string-append "Bootable flag: "
-                                          (if bootable? "On" "Off")))))
+            `((bootable . ,(format #f (G_ "Bootable flag: ~:[off~;on~]")
+                                   bootable?))))
       ,@(if (and (not has-extended?)
                  (not (eq? fs-type 'swap)))
-            `((esp? . ,(string-append "ESP flag: "
-                                      (if esp? "On" "Off"))))
+            `((esp? . ,(format #f (G_ "ESP flag: ~:[off~;on~]") esp?)))
             '())
       ,@(if (freespace-partition? partition)
             (let ((size-formatted
-                   (or size (unit-format device
+                   (or size (unit-format device   ;XXX: i18n
                                          (partition-length partition)))))
-              `((size . ,(string-append "Size : " size-formatted))))
+              `((size . ,(format #f (G_ "Size: ~a") size-formatted))))
             '())
       ,@(if (or (eq? type 'extended)
                 (eq? fs-type 'swap))
             '()
             `((crypt-label
-               . ,(string-append
-                   "Encryption: "
-                   (if crypt-label
-                       (format #f "Yes (label ~a)" crypt-label)
-                       "No")))))
+               . ,(format #f (G_ "Encryption: ~:[No~a~;Yes (label '~a')~]")
+                          crypt-label (or crypt-label "")))))
       ,@(if (or (freespace-partition? partition)
                 (eq? fs-type 'swap))
             '()
             `((need-formatting?
-               . ,(string-append "Format the partition? : "
-                                 (if need-formatting? "Yes" "No")))))
+               . ,(format #f (G_ "Format the partition? ~:[No~;Yes~]")
+                          need-formatting?))))
       ,@(if (or (eq? type 'extended)
                 (eq? fs-type 'swap))
             '()
             `((mount-point
-               . ,(string-append "Mount point : "
-                                 (or mount-point
-                                     (and esp? (default-esp-mount-point))
-                                     "None"))))))))
+               . ,(format #f (G_ "Mount point: ~a")
+                          (or mount-point
+                              (and esp? (default-esp-mount-point))
+                              (G_ "None")))))))))
 
 
 ;;
@@ -759,11 +756,33 @@ cause them to cross."
                                                       dev-constraint))
               (no-constraint (constraint-any device))
               ;; Try to create a partition with an optimal alignment
-              ;; constraint. If it fails, fallback to creating a partition with
-              ;; no specific constraint.
+              ;; constraint. If it fails, fallback to creating a partition
+              ;; with no specific constraint.
+              (partition-constraint-ok?
+               (disk-add-partition disk partition final-constraint))
+              (partition-no-contraint-ok?
+               (or partition-constraint-ok?
+                   (disk-add-partition disk partition no-constraint)))
               (partition-ok?
-               (or (disk-add-partition disk partition final-constraint)
-                   (disk-add-partition disk partition no-constraint))))
+               (or partition-constraint-ok? partition-no-contraint-ok?)))
+         (syslog "Creating partition:
+~/type: ~a
+~/filesystem-type: ~a
+~/start: ~a
+~/end: ~a
+~/start-range: [~a, ~a]
+~/end-range: [~a, ~a]
+~/constraint: ~a
+~/no-constraint: ~a
+"
+                 partition-type
+                 (filesystem-type-name filesystem-type)
+                 start-sector*
+                 end-sector
+                 (geometry-start start-range) (geometry-end start-range)
+                 (geometry-start end-range) (geometry-end end-range)
+                 partition-constraint-ok?
+                 partition-no-contraint-ok?)
          ;; Set the partition name if supported.
          (when (and partition-ok? has-name? name)
            (partition-set-name partition name))
@@ -911,13 +930,13 @@ exists."
 
     (let* ((start-partition
             (and (not has-extended?)
-                 (not esp-partition)
                  (if (efi-installation?)
-                     (user-partition
-                      (fs-type 'fat32)
-                      (esp? #t)
-                      (size new-esp-size)
-                      (mount-point (default-esp-mount-point)))
+                     (and (not esp-partition)
+                          (user-partition
+                           (fs-type 'fat32)
+                           (esp? #t)
+                           (size new-esp-size)
+                           (mount-point (default-esp-mount-point))))
                      (user-partition
                       (fs-type 'ext4)
                       (bootable? #t)
@@ -1201,13 +1220,13 @@ the FS-TYPE field set to 'swap, return the empty list if none found."
           user-partitions))
 
 (define (start-swapping user-partitions)
-  "Start swaping on <user-partition> records with FS-TYPE equal to 'swap."
+  "Start swapping on <user-partition> records with FS-TYPE equal to 'swap."
   (let* ((swap-user-partitions (find-swap-user-partitions user-partitions))
          (swap-devices (map user-partition-file-name swap-user-partitions)))
     (for-each swapon swap-devices)))
 
 (define (stop-swapping user-partitions)
-  "Stop swaping on <user-partition> records with FS-TYPE equal to 'swap."
+  "Stop swapping on <user-partition> records with FS-TYPE equal to 'swap."
   (let* ((swap-user-partitions (find-swap-user-partitions user-partitions))
          (swap-devices (map user-partition-file-name swap-user-partitions)))
     (for-each swapoff swap-devices)))
@@ -1327,7 +1346,12 @@ USER-PARTITIONS, or return nothing."
       ,@(initrd-configuration user-partitions)
       ,@(if (null? swap-devices)
             '()
-            `((swap-devices (list ,@swap-devices))))
+            (let* ((uuids (map (lambda (file)
+                                 (uuid->string (read-partition-uuid file)))
+                               swap-devices)))
+              `((swap-devices (list ,@(map (lambda (uuid)
+                                             `(uuid ,uuid))
+                                           uuids))))))
       ,@(if (null? encrypted-partitions)
             '()
             `((mapped-devices
@@ -1364,9 +1388,12 @@ the devices not to be used before returning."
   (let ((device-file-names (map device-path devices)))
     (for-each force-device-sync devices)
     (for-each (lambda (file-name)
-                (let ((in-use? (with-delay-device-in-use? file-name)))
-                  (and in-use?
-                       (error
-                        (format #f (G_ "Device ~a is still in use.")
-                                file-name)))))
+                (let/time ((time in-use?
+                                 (with-delay-device-in-use? file-name)))
+                  (if in-use?
+                      (error
+                       (format #f (G_ "Device ~a is still in use.")
+                               file-name))
+                      (syslog "Syncing ~a took ~a seconds.~%"
+                              file-name (time-second time)))))
               device-file-names)))
diff --git a/gnu/installer/proxy.scm b/gnu/installer/proxy.scm
index befaf3ab0a..86c827294e 100644
--- a/gnu/installer/proxy.scm
+++ b/gnu/installer/proxy.scm
@@ -17,15 +17,11 @@
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (gnu installer proxy)
+  #:use-module (gnu installer utils)
   #:use-module (gnu services herd)
   #:export (set-http-proxy
             clear-http-proxy))
 
-(define-syntax-rule (with-silent-shepherd exp ...)
-  (parameterize ((shepherd-message-port
-                  (%make-void-port "w")))
-    exp ...))
-
 (define (set-http-proxy proxy)
   (with-silent-shepherd
     (with-shepherd-action 'guix-daemon
diff --git a/gnu/installer/record.scm b/gnu/installer/record.scm
index 6ebd87f6a6..0b34318c45 100644
--- a/gnu/installer/record.scm
+++ b/gnu/installer/record.scm
@@ -33,6 +33,7 @@
             installer-locale-page
             installer-menu-page
             installer-network-page
+            installer-substitutes-page
             installer-timezone-page
             installer-hostname-page
             installer-user-page
@@ -73,6 +74,8 @@
   (menu-page installer-menu-page)
   ;; procedure void -> void
   (network-page installer-network-page)
+  ;; procedure void -> void
+  (substitutes-page installer-substitutes-page)
   ;; procedure (zonetab) -> posix-timezone
   (timezone-page installer-timezone-page)
   ;; procedure void -> void
diff --git a/gnu/installer/services.scm b/gnu/installer/services.scm
index dbac79196d..ec5ea30594 100644
--- a/gnu/installer/services.scm
+++ b/gnu/installer/services.scm
@@ -1,6 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
 ;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -82,6 +83,11 @@
       (name "ratpoison")
       (packages '((specification->package "ratpoison")
                   (specification->package "xterm"))))
+     (desktop-environment
+      (name "Emacs EXWM")
+      (packages '((specification->package "emacs")
+                  (specification->package "emacs-exwm")
+                  (specification->package "emacs-desktop-environment"))))
 
      ;; Networking.
      (system-service
diff --git a/gnu/installer/steps.scm b/gnu/installer/steps.scm
index 0b6d8e4649..fdcfb0cb4d 100644
--- a/gnu/installer/steps.scm
+++ b/gnu/installer/steps.scm
@@ -50,7 +50,6 @@
 
             %installer-configuration-file
             %installer-target-dir
-            %configuration-file-width
             format-configuration
             configuration->file))
 
@@ -88,7 +87,7 @@
                               (rewind-strategy 'previous)
                               (menu-proc (const #f)))
   "Run the COMPUTE procedure of all <installer-step> records in STEPS
-sequencially. If the &installer-step-abort condition is raised, fallback to a
+sequentially.  If the &installer-step-abort condition is raised, fallback to a
 previous install-step, accordingly to the specified REWIND-STRATEGY.
 
 REWIND-STRATEGY possible values are 'previous, 'menu and 'start.  If 'previous
@@ -218,7 +217,6 @@ stored in RESULTS. Return #f otherwise."
 
 (define %installer-configuration-file (make-parameter "/mnt/etc/config.scm"))
 (define %installer-target-dir (make-parameter "/mnt"))
-(define %configuration-file-width (make-parameter 79))
 
 (define (format-configuration steps results)
   "Return the list resulting from the application of the procedure defined in
diff --git a/gnu/installer/substitutes.scm b/gnu/installer/substitutes.scm
new file mode 100644
index 0000000000..c9a7418f89
--- /dev/null
+++ b/gnu/installer/substitutes.scm
@@ -0,0 +1,41 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2020 Mathieu Othacehe <m.othacehe@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 installer substitutes)
+  #:use-module (gnu installer utils)
+  #:use-module (gnu services herd)
+  #:export (enable-discovery
+            disable-discovery))
+
+(define (enable-discovery)
+  (with-silent-shepherd
+    (with-shepherd-action 'guix-daemon
+        ('discover "on")
+        result
+      result)))
+
+(define (disable-discovery)
+  (with-silent-shepherd
+    (with-shepherd-action 'guix-daemon
+        ('discover "off")
+        result
+      result)))
+
+;; Local Variables:
+;; eval: (put 'with-silent-shepherd 'scheme-indent-function 0)
+;; End:
diff --git a/gnu/installer/tests.scm b/gnu/installer/tests.scm
index 58bf0a2700..f318546a2f 100644
--- a/gnu/installer/tests.scm
+++ b/gnu/installer/tests.scm
@@ -286,8 +286,9 @@ instrumented for further testing."
                                edit-configuration-file))
   "Converse over PORT to choose the partitioning method.  When ENCRYPTED? is
 true, choose full-disk encryption with PASSPHRASE as the LUKS passphrase.
-This conversation goes past the final dialog box that shows the configuration
-file, actually starting the installation process."
+This conversation stops when the user partitions have been formatted, right
+before the installer generates the configuration file and shows it in a dialog
+box."
   (converse port
     ((list-selection (title "Partitioning method")
                      (multiple-choices? #f)
@@ -330,15 +331,29 @@ file, actually starting the installation process."
      #t)
     ((info (title "Preparing partitions") _ ...)
      (values))                                    ;nothing to return
-    ((file-dialog (title "Configuration file")
-                  (text _)
-                  (file ,configuration-file))
-     (edit-configuration-file configuration-file))))
+    ((starting-final-step)
+     ;; Do not return anything.  The reply will be sent by
+     ;; 'conclude-installation' and in the meantime the installer just waits
+     ;; for us, giving us a chance to do things such as changing partition
+     ;; UUIDs before it generates the configuration file.
+     (values))))
 
 (define (conclude-installation port)
-  "Conclude the installation by checking over PORT that we get the final
-messages once the 'guix system init' process has completed."
+  "Conclude the installation by checking over PORT that we get the generated
+configuration file, accepting it and starting the installation, and then
+receiving the final messages once the 'guix system init' process has
+completed."
+  ;; Assume the previous message received was 'starting-final-step'; here we
+  ;; send the reply to that message, which lets the installer continue.
+  (write #t port)
+  (newline port)
+  (force-output port)
+
   (converse port
+    ((file-dialog (title "Configuration file")
+                  (text _)
+                  (file ,configuration-file))
+     (edit-configuration-file configuration-file))
     ((pause)                                      ;"Press Enter to continue."
      #t)
     ((installation-complete)                      ;congratulations!
diff --git a/gnu/installer/utils.scm b/gnu/installer/utils.scm
index 5f8fe8ca01..bb97bc5560 100644
--- a/gnu/installer/utils.scm
+++ b/gnu/installer/utils.scm
@@ -18,10 +18,12 @@
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (gnu installer utils)
+  #:use-module (gnu services herd)
   #:use-module (guix utils)
   #:use-module (guix build utils)
   #:use-module (guix i18n)
   #:use-module (srfi srfi-1)
+  #:use-module (srfi srfi-19)
   #:use-module (srfi srfi-34)
   #:use-module (ice-9 match)
   #:use-module (ice-9 rdelim)
@@ -36,11 +38,15 @@
 
             syslog-port
             syslog
+            call-with-time
+            let/time
 
             with-server-socket
             current-server-socket
             current-clients
-            send-to-clients))
+            send-to-clients
+
+            with-silent-shepherd))
 
 (define* (read-lines #:optional (port (current-input-port)))
   "Read lines from PORT and return them as a list."
@@ -117,6 +123,17 @@ COMMAND exited successfully, #f otherwise."
 ;;; Logging.
 ;;;
 
+(define (call-with-time thunk kont)
+  "Call THUNK and pass KONT the elapsed time followed by THUNK's return
+values."
+  (let* ((start  (current-time time-monotonic))
+         (result (call-with-values thunk list))
+         (end    (current-time time-monotonic)))
+    (apply kont (time-difference end start) result)))
+
+(define-syntax-rule (let/time ((time result exp)) body ...)
+  (call-with-time (lambda () exp) (lambda (time result) body ...)))
+
 (define (open-syslog-port)
   "Return an open port (a socket) to /dev/log or #f if that wasn't possible."
   (let ((sock (socket AF_UNIX SOCK_DGRAM 0)))
@@ -219,3 +236,9 @@ accepting socket."
 
   (current-clients (reverse remainder))
   exp)
+
+(define-syntax-rule (with-silent-shepherd exp ...)
+  "Evaluate EXP while discarding shepherd messages."
+  (parameterize ((shepherd-message-port
+                  (%make-void-port "w")))
+    exp ...))
diff --git a/gnu/local.mk b/gnu/local.mk
index 18a4954005..4cc53db1c8 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -10,17 +10,17 @@
 # Copyright © 2016, 2017, 2018, 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
 # Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
 # Copyright © 2016, 2017, 2018, 2019 Alex Vong <alexvong1995@gmail.com>
-# 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, 2017, 2018, 2019, 2020 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>
 # Copyright © 2017, 2018, 2019 Gábor Boskovits <boskovits@gmail.com>
 # Copyright © 2018 Amirouche Boubekki <amirouche@hypermove.net>
-# Copyright © 2018, 2019, 2020 Oleg Pykhalov <go.wigust@gmail.com>
+# Copyright © 2018, 2019, 2020, 2021 Oleg Pykhalov <go.wigust@gmail.com>
 # Copyright © 2018 Stefan Stefanović <stefanx2ovic@gmail.com>
 # Copyright © 2018, 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
-# Copyright © 2019 Guillaume Le Vaillant <glv@posteo.net>
+# Copyright © 2019, 2020 Guillaume Le Vaillant <glv@posteo.net>
 # Copyright © 2019, 2020 John Soo <jsoo1@asu.edu>
 # Copyright © 2019 Jonathan Brielmaier <jonathan.brielmaier@web.de>
 # Copyright © 2019 Evan Straw <evan.straw99@gmail.com>
@@ -36,6 +36,10 @@
 # Copyright © 2020 Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl>
 # Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
 # Copyright © 2020 Tanguy Le Carrour <tanguy@bioneland.org>
+# Copyright © 2020 Martin Becze <mjbecze@riseup.net>
+# Copyright © 2020 Malte Frank Gerdes <mate.f.gerdes@gmail.com>
+# Copyright © 2020 Vinicius Monego <monego@posteo.net>
+# Copyright © 2021 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
 #
 # This file is part of GNU Guix.
 #
@@ -109,6 +113,7 @@ GNU_SYSTEM_MODULES =				\
   %D%/packages/boost.scm			\
   %D%/packages/bootloaders.scm			\
   %D%/packages/bootstrap.scm			\
+  %D%/packages/browser-extensions.scm		\
   %D%/packages/build-tools.scm			\
   %D%/packages/busybox.scm			\
   %D%/packages/c.scm				\
@@ -143,6 +148,8 @@ GNU_SYSTEM_MODULES =				\
   %D%/packages/cppi.scm				\
   %D%/packages/cran.scm				\
   %D%/packages/crates-io.scm			\
+  %D%/packages/crates-graphics.scm		\
+  %D%/packages/crates-gtk.scm			\
   %D%/packages/cross-base.scm			\
   %D%/packages/crypto.scm			\
   %D%/packages/cryptsetup.scm			\
@@ -197,8 +204,10 @@ GNU_SYSTEM_MODULES =				\
   %D%/packages/enlightenment.scm		\
   %D%/packages/entr.scm				\
   %D%/packages/erlang.scm			\
+  %D%/packages/esolangs.scm			\
   %D%/packages/fabric-management.scm		\
   %D%/packages/fcitx.scm			\
+  %D%/packages/fcitx5.scm			\
   %D%/packages/figlet.scm			\
   %D%/packages/file.scm				\
   %D%/packages/file-systems.scm			\
@@ -269,6 +278,7 @@ GNU_SYSTEM_MODULES =				\
   %D%/packages/heads.scm			\
   %D%/packages/hexedit.scm			\
   %D%/packages/hugs.scm				\
+  %D%/packages/hunspell.scm				\
   %D%/packages/hurd.scm				\
   %D%/packages/hyperledger.scm			\
   %D%/packages/i2p.scm				\
@@ -342,6 +352,7 @@ GNU_SYSTEM_MODULES =				\
   %D%/packages/lout.scm				\
   %D%/packages/logging.scm			\
   %D%/packages/logo.scm				\
+  %D%/packages/loko.scm				\
   %D%/packages/lolcode.scm                      \
   %D%/packages/lsof.scm				\
   %D%/packages/lua.scm				\
@@ -389,6 +400,7 @@ GNU_SYSTEM_MODULES =				\
   %D%/packages/networking.scm			\
   %D%/packages/nfs.scm                          \
   %D%/packages/nickle.scm                       \
+  %D%/packages/nicotine.scm                     \
   %D%/packages/nim.scm  			\
   %D%/packages/ninja.scm			\
   %D%/packages/node.scm				\
@@ -413,6 +425,7 @@ GNU_SYSTEM_MODULES =				\
   %D%/packages/package-management.scm		\
   %D%/packages/pantheon.scm			\
   %D%/packages/parallel.scm			\
+  %D%/packages/pascal.scm			\
   %D%/packages/password-utils.scm		\
   %D%/packages/patchutils.scm			\
   %D%/packages/pciutils.scm			\
@@ -428,6 +441,7 @@ GNU_SYSTEM_MODULES =				\
   %D%/packages/photo.scm			\
   %D%/packages/phabricator.scm 			\
   %D%/packages/php.scm				\
+  %D%/packages/piet.scm			\
   %D%/packages/pkg-config.scm			\
   %D%/packages/plotutils.scm			\
   %D%/packages/poedit.scm				\
@@ -458,6 +472,7 @@ GNU_SYSTEM_MODULES =				\
   %D%/packages/radio.scm			\
   %D%/packages/ragel.scm			\
   %D%/packages/rails.scm			\
+  %D%/packages/raspberry-pi.scm			\
   %D%/packages/ratpoison.scm			\
   %D%/packages/rcm.scm				\
   %D%/packages/rdesktop.scm			\
@@ -482,7 +497,6 @@ GNU_SYSTEM_MODULES =				\
   %D%/packages/screen.scm			\
   %D%/packages/scribus.scm			\
   %D%/packages/scsi.scm				\
-  %D%/packages/sdcc.scm				\
   %D%/packages/sdl.scm				\
   %D%/packages/search.scm			\
   %D%/packages/security-token.scm		\
@@ -616,6 +630,7 @@ GNU_SYSTEM_MODULES =				\
   %D%/services/sddm.scm				\
   %D%/services/spice.scm				\
   %D%/services/ssh.scm				\
+  %D%/services/syncthing.scm			\
   %D%/services/sysctl.scm			\
   %D%/services/telephony.scm			\
   %D%/services/version-control.scm              \
@@ -641,12 +656,16 @@ GNU_SYSTEM_MODULES =				\
   %D%/system/vm.scm				\
 						\
   %D%/system/images/hurd.scm			\
+  %D%/system/images/novena.scm			\
+  %D%/system/images/pine64.scm			\
+  %D%/system/images/pinebook-pro.scm		\
 						\
   %D%/machine.scm				\
 						\
   %D%/build/accounts.scm			\
   %D%/build/activation.scm			\
   %D%/build/bootloader.scm			\
+  %D%/build/chromium-extension.scm		\
   %D%/build/cross-toolchain.scm			\
   %D%/build/image.scm				\
   %D%/build/file-systems.scm			\
@@ -657,6 +676,7 @@ GNU_SYSTEM_MODULES =				\
   %D%/build/linux-initrd.scm			\
   %D%/build/linux-modules.scm			\
   %D%/build/marionette.scm			\
+  %D%/build/secret-service.scm			\
   %D%/build/vm.scm				\
 						\
   %D%/tests.scm					\
@@ -700,6 +720,7 @@ INSTALLER_MODULES =                             \
   %D%/installer/record.scm		        \
   %D%/installer/services.scm			\
   %D%/installer/steps.scm			\
+  %D%/installer/substitutes.scm			\
   %D%/installer/tests.scm			\
   %D%/installer/timezone.scm			\
   %D%/installer/user.scm			\
@@ -716,6 +737,7 @@ INSTALLER_MODULES =                             \
   %D%/installer/newt/page.scm			\
   %D%/installer/newt/partition.scm		\
   %D%/installer/newt/services.scm		\
+  %D%/installer/newt/substitutes.scm		\
   %D%/installer/newt/timezone.scm		\
   %D%/installer/newt/user.scm			\
   %D%/installer/newt/utils.scm			\
@@ -772,7 +794,6 @@ dist_patch_DATA =						\
   %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/alsa-modular-synth-fix-vocoder.patch	\
   %D%/packages/patches/amule-crypto-6.patch			\
   %D%/packages/patches/anki-mpv-args.patch			\
   %D%/packages/patches/antiword-CVE-2014-8123.patch			\
@@ -784,19 +805,20 @@ dist_patch_DATA =						\
   %D%/packages/patches/ath9k-htc-firmware-gcc.patch		\
   %D%/packages/patches/ath9k-htc-firmware-objcopy.patch		\
   %D%/packages/patches/audacity-build-with-system-portaudio.patch \
+  %D%/packages/patches/audacity-add-include.patch 		\
   %D%/packages/patches/audiofile-fix-datatypes-in-tests.patch	\
   %D%/packages/patches/audiofile-fix-sign-conversion.patch	\
   %D%/packages/patches/audiofile-CVE-2015-7747.patch		\
   %D%/packages/patches/audiofile-CVE-2018-13440.patch		\
   %D%/packages/patches/audiofile-CVE-2018-17095.patch		\
-  %D%/packages/patches/audiofile-Check-the-number-of-coefficients.patch \
+  %D%/packages/patches/audiofile-check-number-of-coefficients.patch \
   %D%/packages/patches/audiofile-Fail-on-error-in-parseFormat.patch \
   %D%/packages/patches/audiofile-Fix-index-overflow-in-IMA.cpp.patch \
-  %D%/packages/patches/audiofile-Fix-multiply-overflow-sfconvert.patch \
-  %D%/packages/patches/audiofile-Fix-overflow-in-MSADPCM-decodeSam.patch \
-  %D%/packages/patches/audiofile-division-by-zero-BlockCodec-runPull.patch \
-  %D%/packages/patches/audiofile-hurd.patch \
-  %D%/packages/patches/audiofile-signature-of-multiplyCheckOverflow.patch \
+  %D%/packages/patches/audiofile-multiply-overflow.patch	\
+  %D%/packages/patches/audiofile-overflow-in-MSADPCM.patch	\
+  %D%/packages/patches/audiofile-division-by-zero.patch 	\
+  %D%/packages/patches/audiofile-hurd.patch 			\
+  %D%/packages/patches/audiofile-function-signature.patch	\
   %D%/packages/patches/automake-skip-amhello-tests.patch	\
   %D%/packages/patches/avahi-localstatedir.patch		\
   %D%/packages/patches/avogadro-boost148.patch			\
@@ -804,6 +826,8 @@ dist_patch_DATA =						\
   %D%/packages/patches/avogadro-python-eigen-lib.patch		\
   %D%/packages/patches/avidemux-install-to-lib.patch		\
   %D%/packages/patches/awesome-reproducible-png.patch		\
+  %D%/packages/patches/aws-c-event-stream-cmake-prefix.patch  \
+  %D%/packages/patches/aws-checksums-cmake-prefix.patch		\
   %D%/packages/patches/azr3.patch				\
   %D%/packages/patches/bash-reproducible-linux-pgrp-pipe.patch	\
   %D%/packages/patches/bash-completion-directories.patch	\
@@ -811,11 +835,22 @@ dist_patch_DATA =						\
   %D%/packages/patches/bastet-change-source-of-unordered_set.patch	\
   %D%/packages/patches/bazaar-CVE-2017-14176.patch		\
   %D%/packages/patches/bc-fix-cross-compilation.patch		\
+  %D%/packages/patches/bear-disable-preinstall-tests.patch	\
+  %D%/packages/patches/bsd-games-2.17-64bit.patch		\
+  %D%/packages/patches/bsd-games-add-configure-config.patch	\
+  %D%/packages/patches/bsd-games-add-wrapper.patch		\
+  %D%/packages/patches/bsd-games-bad-ntohl-cast.patch		\
+  %D%/packages/patches/bsd-games-dont-install-empty-files.patch	\
+  %D%/packages/patches/bsd-games-gamescreen.h.patch		\
+  %D%/packages/patches/bsd-games-getline.patch			\
+  %D%/packages/patches/bsd-games-null-check.patch		\
+  %D%/packages/patches/bsd-games-number.c-and-test.patch	\
+  %D%/packages/patches/bsd-games-prevent-name-collisions.patch	\
+  %D%/packages/patches/bsd-games-stdio.h.patch			\
   %D%/packages/patches/beancount-disable-googleapis-fonts.patch	\
   %D%/packages/patches/beets-werkzeug-compat.patch		\
   %D%/packages/patches/behave-skip-a-couple-of-tests.patch	\
   %D%/packages/patches/beignet-correct-file-names.patch		\
-  %D%/packages/patches/benchmark-unbundle-googletest.patch	\
   %D%/packages/patches/biber-fix-encoding-write.patch		\
   %D%/packages/patches/biber-sortinithash.patch			\
   %D%/packages/patches/bidiv-update-fribidi.patch		\
@@ -823,7 +858,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/binutils-loongson-workaround.patch	\
   %D%/packages/patches/binutils-mingw-w64-timestamp.patch	\
   %D%/packages/patches/binutils-mingw-w64-deterministic.patch	\
-  %D%/packages/patches/bitcoin-core-python-compat.patch		\
   %D%/packages/patches/blender-2.79-gcc8.patch			\
   %D%/packages/patches/blender-2.79-gcc9.patch			\
   %D%/packages/patches/blender-2.79-newer-ffmpeg.patch		\
@@ -831,7 +865,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/blender-2.79-python-3.7-fix.patch	\
   %D%/packages/patches/blender-2.79-python-3.8-fix.patch	\
   %D%/packages/patches/bpftrace-disable-bfd-disasm.patch	\
-  %D%/packages/patches/busybox-1.31.1-fix-build-with-glibc-2.31.patch \
   %D%/packages/patches/byobu-writable-status.patch		\
   %D%/packages/patches/calibre-no-updates-dialog.patch		\
   %D%/packages/patches/calibre-remove-test-sqlite.patch		\
@@ -843,6 +876,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/cdrtools-3.01-mkisofs-isoinfo.patch 	\
   %D%/packages/patches/ceph-disable-cpu-optimizations.patch	\
   %D%/packages/patches/chmlib-inttypes.patch			\
+  %D%/packages/patches/cl-asdf-config-directories.patch		\
   %D%/packages/patches/clamav-config-llvm-libs.patch		\
   %D%/packages/patches/clamav-system-tomsfastmath.patch		\
   %D%/packages/patches/clang-3.5-libc-search-path.patch		\
@@ -852,6 +886,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/clang-7.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-runtime-asan-build-fixes.patch	\
   %D%/packages/patches/clang-runtime-esan-build-fixes.patch	\
   %D%/packages/patches/clang-runtime-9-libsanitizer-mode-field.patch	\
@@ -862,7 +897,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/clementine-fix-sqlite.patch		\
   %D%/packages/patches/clementine-remove-crypto++-dependency.patch	\
   %D%/packages/patches/clementine-use-openssl.patch		\
-  %D%/packages/patches/clisp-remove-failing-test.patch		\
   %D%/packages/patches/clucene-pkgconfig.patch			\
   %D%/packages/patches/cmake-curl-certificates.patch		\
   %D%/packages/patches/coda-use-system-libs.patch		\
@@ -887,9 +921,10 @@ dist_patch_DATA =						\
   %D%/packages/patches/dbus-CVE-2020-12049.patch		\
   %D%/packages/patches/dbus-c++-gcc-compat.patch		\
   %D%/packages/patches/dbus-c++-threading-mutex.patch		\
-  %D%/packages/patches/dconf-meson-0.52.patch			\
+  %D%/packages/patches/dbxfs-remove-sentry-sdk.patch		\
   %D%/packages/patches/debops-constants-for-external-program-names.patch \
   %D%/packages/patches/debops-debops-defaults-fall-back-to-less.patch \
+  %D%/packages/patches/dee-vapi.patch			\
   %D%/packages/patches/desmume-gcc6-fixes.patch			\
   %D%/packages/patches/desmume-gcc7-fixes.patch			\
   %D%/packages/patches/dfu-programmer-fix-libusb.patch		\
@@ -909,13 +944,13 @@ dist_patch_DATA =						\
   %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			\
+  %D%/packages/patches/eigen-remove-openmp-error-counting.patch	\
   %D%/packages/patches/eigen-stabilise-sparseqr-test.patch	\
   %D%/packages/patches/einstein-build.patch			\
   %D%/packages/patches/elfutils-tests-ptrace.patch		\
   %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/emacs27-exec-path.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	\
@@ -924,7 +959,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/emacs-highlight-stages-add-gexp.patch	\
   %D%/packages/patches/emacs-hyperbole-toggle-messaging.patch	\
   %D%/packages/patches/emacs-libgit-use-system-libgit2.patch    \
-  %D%/packages/patches/emacs-scheme-complete-scheme-r5rs-info.patch	\
   %D%/packages/patches/emacs-source-date-epoch.patch		\
   %D%/packages/patches/emacs-telega-patch-server-functions.patch	\
   %D%/packages/patches/emacs-telega-test-env.patch		\
@@ -942,6 +976,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/exiv2-CVE-2017-14859-14862-14864.patch	\
   %D%/packages/patches/extempore-unbundle-external-dependencies.patch	\
   %D%/packages/patches/extundelete-e2fsprogs-1.44.patch		\
+  %D%/packages/patches/farstream-make.patch                          \
   %D%/packages/patches/fastcap-mulGlobal.patch			\
   %D%/packages/patches/fastcap-mulSetup.patch			\
   %D%/packages/patches/fasthenry-spAllocate.patch		\
@@ -960,9 +995,13 @@ dist_patch_DATA =						\
   %D%/packages/patches/foomatic-filters-CVE-2015-8327.patch	\
   %D%/packages/patches/foomatic-filters-CVE-2015-8560.patch	\
   %D%/packages/patches/fontconfig-hurd-path-max.patch		\
+  %D%/packages/patches/fpc-reproducibility.patch		\
+  %D%/packages/patches/fplll-std-fenv.patch     		\
   %D%/packages/patches/freedink-engine-fix-sdl-hints.patch	\
+  %D%/packages/patches/freebayes-devendor-deps.patch		\
   %D%/packages/patches/freeimage-unbundle.patch		\
   %D%/packages/patches/fuse-overlapping-headers.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			\
@@ -985,6 +1024,8 @@ dist_patch_DATA =						\
   %D%/packages/patches/gcc-4.9-libsanitizer-ustat.patch		\
   %D%/packages/patches/gcc-libsanitizer-ustat.patch		\
   %D%/packages/patches/gcc-4.9-libsanitizer-mode-size.patch	\
+  %D%/packages/patches/gcc-6-fix-isl-includes.patch	\
+  %D%/packages/patches/gcc-6-fix-buffer-size.patch	\
   %D%/packages/patches/gcc-6-libsanitizer-mode-size.patch	\
   %D%/packages/patches/gcc-7-libsanitizer-mode-size.patch	\
   %D%/packages/patches/gcc-libvtv-runpath.patch			\
@@ -1007,10 +1048,11 @@ 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/gd-fix-tests-on-i686.patch		\
   %D%/packages/patches/gd-brect-bounds.patch			\
-  %D%/packages/patches/gdb-hurd.patch				\
   %D%/packages/patches/gdm-default-session.patch		\
+  %D%/packages/patches/genimage-signedness.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		\
@@ -1024,6 +1066,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/ghostscript-no-header-id.patch		\
   %D%/packages/patches/ghostscript-no-header-uuid.patch		\
   %D%/packages/patches/ghostscript-no-header-creationdate.patch \
+  %D%/packages/patches/glib-appinfo-watch.patch			\
   %D%/packages/patches/glib-tests-timer.patch			\
   %D%/packages/patches/glibc-CVE-2018-11236.patch		\
   %D%/packages/patches/glibc-CVE-2018-11237.patch		\
@@ -1057,8 +1100,10 @@ dist_patch_DATA =						\
   %D%/packages/patches/glibc-supported-locales.patch     	\
   %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-settings-daemon-gc.patch		\
   %D%/packages/patches/gnome-todo-delete-esource-duplicate.patch \
   %D%/packages/patches/gnome-tweaks-search-paths.patch		\
   %D%/packages/patches/gnupg-default-pinentry.patch		\
@@ -1069,8 +1114,8 @@ dist_patch_DATA =						\
   %D%/packages/patches/gobject-introspection-girepository.patch	\
   %D%/packages/patches/go-skip-gc-test.patch			\
   %D%/packages/patches/gpm-glibc-2.26.patch			\
-  %D%/packages/patches/gpsbabel-minizip.patch     		\
-  %D%/packages/patches/gpsbabel-qstring.patch     		\
+  %D%/packages/patches/gpodder-disable-updater.patch		\
+  %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/grocsvs-dont-use-admiral.patch		\
@@ -1083,6 +1128,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/gspell-dash-test.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             \
   %D%/packages/patches/guile-default-utf8.patch			\
   %D%/packages/patches/guile-2.2-default-utf8.patch		\
   %D%/packages/patches/guile-relocatable.patch			\
@@ -1101,6 +1147,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/gtk3-respect-GUIX_GTK3_IM_MODULE_FILE.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 		\
@@ -1127,25 +1174,33 @@ dist_patch_DATA =						\
   %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-hotspot-gcc-segfault-workaround.patch  \
-  %D%/packages/patches/icedtea-7-hotspot-gcc-segfault-workaround.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/icu4c-CVE-2020-10531.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/ilmbase-fix-tests.patch			\
   %D%/packages/patches/inetutils-hurd.patch			\
   %D%/packages/patches/inkscape-poppler-0.76.patch		\
   %D%/packages/patches/intel-xed-fix-nondeterminism.patch	\
   %D%/packages/patches/intltool-perl-compatibility.patch	\
   %D%/packages/patches/iputils-libcap-compat.patch		\
+  %D%/packages/patches/ipxe-reproducible-geniso.patch	        \
   %D%/packages/patches/irrlicht-use-system-libs.patch		\
   %D%/packages/patches/isl-0.11.1-aarch64-support.patch	\
   %D%/packages/patches/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/jacal-fix-texinfo.patch			\
+  %D%/packages/patches/jamvm-1.5.1-aarch64-support.patch	\
+  %D%/packages/patches/jamvm-1.5.1-armv7-support.patch	\
+  %D%/packages/patches/jamvm-2.0.0-aarch64-support.patch	\
   %D%/packages/patches/jamvm-2.0.0-disable-branch-patching.patch	\
-  %D%/packages/patches/jamvm-arm.patch				\
+  %D%/packages/patches/jamvm-2.0.0-opcode-guard.patch		\
+  %D%/packages/patches/java-antlr4-Add-standalone-generator.patch	\
+  %D%/packages/patches/java-antlr4-fix-code-too-large.java	\
+  %D%/packages/patches/java-tunnelvisionlabs-antlr-code-too-large.patch	\
   %D%/packages/patches/java-apache-ivy-port-to-latest-bouncycastle.patch	\
   %D%/packages/patches/java-commons-collections-fix-java8.patch \
   %D%/packages/patches/java-jeromq-fix-tests.patch		\
@@ -1161,6 +1216,8 @@ dist_patch_DATA =						\
   %D%/packages/patches/jsoncpp-fix-inverted-case.patch		\
   %D%/packages/patches/julia-SOURCE_DATE_EPOCH-mtime.patch	\
   %D%/packages/patches/kdbusaddons-kinit-file-name.patch	\
+  %D%/packages/patches/libffi-3.3-powerpc-fixes.patch		\
+  %D%/packages/patches/libffi-float128-powerpc64le.patch	\
   %D%/packages/patches/libvirt-create-machine-cgroup.patch	\
   %D%/packages/patches/libziparchive-add-includes.patch		\
   %D%/packages/patches/localed-xorg-keyboard.patch		\
@@ -1176,6 +1233,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/kmod-module-directory.patch		\
   %D%/packages/patches/kmscon-runtime-keymap-switch.patch	\
   %D%/packages/patches/kpackage-allow-external-paths.patch	\
+  %D%/packages/patches/kpackage-fix-KF5PackageMacros.cmake.patch \
   %D%/packages/patches/kmplayer-aarch64.patch			\
   %D%/packages/patches/kmplayer-upstream_Fix-build-with-Qt-5.9.patch	\
   %D%/packages/patches/kobodeluxe-paths.patch			\
@@ -1187,7 +1245,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/kodi-increase-test-timeout.patch		\
   %D%/packages/patches/kodi-set-libcurl-ssl-parameters.patch		\
   %D%/packages/patches/kodi-skip-test-449.patch		\
-  %D%/packages/patches/konversation-Fix-build-with-Qt-5.11.patch	\
   %D%/packages/patches/laby-make-install.patch			\
   %D%/packages/patches/lcalc-default-parameters-1.patch		\
   %D%/packages/patches/lcalc-default-parameters-2.patch		\
@@ -1196,6 +1253,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/lcms-CVE-2018-16435.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			\
@@ -1207,13 +1265,18 @@ dist_patch_DATA =						\
   %D%/packages/patches/libbase-use-own-logging.patch		\
   %D%/packages/patches/libbonobo-activation-test-race.patch	\
   %D%/packages/patches/libcanberra-sound-theme-freedesktop.patch \
-  %D%/packages/patches/libdrm-realpath-virtio.patch		\
+  %D%/packages/patches/libcanberra-wayland-crash.patch \
+  %D%/packages/patches/libcyaml-libyaml-compat.patch		\
+  %D%/packages/patches/libexpected-nofetch.patch                \
   %D%/packages/patches/libgeotiff-adapt-test-script-for-proj-6.2.patch		\
   %D%/packages/patches/libgit2-mtime-0.patch			\
   %D%/packages/patches/libgnome-encoding.patch			\
   %D%/packages/patches/libgnomeui-utf8.patch			\
   %D%/packages/patches/libjxr-fix-function-signature.patch	\
   %D%/packages/patches/libjxr-fix-typos.patch			\
+  %D%/packages/patches/libofa-ftbfs-1.diff		\
+  %D%/packages/patches/libofa-curl.diff		\
+  %D%/packages/patches/libofa-ftbfs-2.diff		\
   %D%/packages/patches/libotr-test-auth-fix.patch		\
   %D%/packages/patches/libksieve-Fix-missing-link-libraries.patch \
   %D%/packages/patches/libmad-armv7-thumb-pt1.patch		\
@@ -1227,10 +1290,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/libmygpo-qt-fix-qt-5.11.patch		\
   %D%/packages/patches/libmygpo-qt-missing-qt5-modules.patch	\
   %D%/packages/patches/libqalculate-3.8.0-libcurl-ssl-fix.patch	\
-  %D%/packages/patches/libsndfile-armhf-type-checks.patch	\
-  %D%/packages/patches/libsndfile-CVE-2017-8361-8363-8365.patch	\
-  %D%/packages/patches/libsndfile-CVE-2017-8362.patch		\
-  %D%/packages/patches/libsndfile-CVE-2017-12562.patch		\
+  %D%/packages/patches/libquicktime-ffmpeg.patch 		\
   %D%/packages/patches/libtar-CVE-2013-4420.patch 		\
   %D%/packages/patches/libtgvoip-disable-sse2.patch 		\
   %D%/packages/patches/libtgvoip-disable-webrtc.patch 		\
@@ -1266,6 +1326,8 @@ dist_patch_DATA =						\
   %D%/packages/patches/lm-sensors-hwmon-attrs.patch		\
   %D%/packages/patches/lrcalc-includes.patch    		\
   %D%/packages/patches/lrzip-CVE-2017-8842.patch		\
+  %D%/packages/patches/lsh-fix-x11-forwarding.patch		\
+  %D%/packages/patches/lsof-fatal-test-failures.patch		\
   %D%/packages/patches/lua-CVE-2014-5461.patch                      \
   %D%/packages/patches/lua-pkgconfig.patch                      \
   %D%/packages/patches/lua51-liblua-so.patch                    \
@@ -1274,8 +1336,8 @@ dist_patch_DATA =						\
   %D%/packages/patches/luajit-no_ldconfig.patch			\
   %D%/packages/patches/luit-posix.patch				\
   %D%/packages/patches/lvm2-static-link.patch			\
+  %D%/packages/patches/mailutils-fix-uninitialized-variable.patch	\
   %D%/packages/patches/make-impure-dirs.patch			\
-  %D%/packages/patches/mariadb-client-test-32bit.patch		\
   %D%/packages/patches/mars-install.patch			\
   %D%/packages/patches/mars-sfml-2.3.patch			\
   %D%/packages/patches/maxima-defsystem-mkdir.patch		\
@@ -1286,6 +1348,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/mcrypt-CVE-2012-4426.patch			\
   %D%/packages/patches/mcrypt-CVE-2012-4527.patch			\
   %D%/packages/patches/libmemcached-build-with-gcc7.patch	\
+  %D%/packages/patches/libmhash-hmac-fix-uaf.patch		\
   %D%/packages/patches/mediastreamer2-srtp2.patch		\
   %D%/packages/patches/mesa-skip-disk-cache-test.patch		\
   %D%/packages/patches/mescc-tools-boot.patch			\
@@ -1295,6 +1358,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/mingw-w64-6.0.0-gcc.patch		\
   %D%/packages/patches/mingw-w64-dlltool-temp-prefix.patch	\
   %D%/packages/patches/mingw-w64-reproducible-gendef.patch	\
+  %D%/packages/patches/minimap2-aarch64-support.patch		\
   %D%/packages/patches/minisat-friend-declaration.patch		\
   %D%/packages/patches/minisat-install.patch			\
   %D%/packages/patches/mit-krb5-hurd.patch			\
@@ -1312,11 +1376,11 @@ dist_patch_DATA =						\
   %D%/packages/patches/mozjs38-version-detection.patch		\
   %D%/packages/patches/mrrescue-support-love-11.patch		\
   %D%/packages/patches/mtools-mformat-uninitialized.patch	\
-  %D%/packages/patches/multipath-tools-sans-systemd.patch	\
   %D%/packages/patches/mumps-build-parallelism.patch		\
   %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/mupen64plus-ui-console-notice.patch	\
   %D%/packages/patches/mupen64plus-video-z64-glew-correct-path.patch    \
   %D%/packages/patches/musl-cross-locale.patch			\
@@ -1324,7 +1388,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/m4-gnulib-libio.patch			\
   %D%/packages/patches/ncompress-fix-softlinks.patch		\
   %D%/packages/patches/netcdf-date-time.patch			\
-  %D%/packages/patches/netcdf-tst_h_par.patch			\
   %D%/packages/patches/netpbm-CVE-2017-2586.patch		\
   %D%/packages/patches/netpbm-CVE-2017-2587.patch		\
   %D%/packages/patches/netsurf-message-timestamp.patch		\
@@ -1334,17 +1397,17 @@ dist_patch_DATA =						\
   %D%/packages/patches/nfs4-acl-tools-0.3.7-fixpaths.patch	\
   %D%/packages/patches/ngircd-handle-zombies.patch		\
   %D%/packages/patches/network-manager-plugin-path.patch	\
+  %D%/packages/patches/nginx-socket-cloexec.patch		\
   %D%/packages/patches/nsis-env-passthru.patch			\
   %D%/packages/patches/nss-increase-test-timeout.patch		\
-  %D%/packages/patches/nss-pkgconfig.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/oath-toolkit-glibc-compat.patch		\
-  %D%/packages/patches/ocaml-bisect-fix-camlp4-in-another-directory.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	\
@@ -1353,18 +1416,19 @@ dist_patch_DATA =						\
   %D%/packages/patches/ocaml-dose3-dont-make-printconf.patch	\
   %D%/packages/patches/ocaml-dose3-Install-mli-cmx-etc.patch	\
   %D%/packages/patches/omake-fix-non-determinism.patch	\
-  %D%/packages/patches/ola-readdir-r.patch			\
   %D%/packages/patches/openbabel-fix-crash-on-nwchem-output.patch	\
   %D%/packages/patches/opencascade-oce-glibc-2.26.patch		\
+  %D%/packages/patches/opencv-fix-build-of-grfmt_jpeg2000.cpp.patch	\
   %D%/packages/patches/opencv-rgbd-aarch64-test-fix.patch	\
   %D%/packages/patches/opendht-fix-jami.patch			\
   %D%/packages/patches/openfoam-4.1-cleanup.patch			\
   %D%/packages/patches/openjdk-10-idlj-reproducibility.patch	\
   %D%/packages/patches/openmpi-mtl-priorities.patch		\
-  %D%/packages/patches/openocd-nrf52.patch			\
+  %D%/packages/patches/openssh-fix-ssh-copy-id.patch		\
   %D%/packages/patches/openssh-hurd.patch			\
   %D%/packages/patches/openresolv-restartcmd-guix.patch	\
   %D%/packages/patches/openscad-parser-boost-1.72.patch	\
+  %D%/packages/patches/opensles-add-license-file.patch			\
   %D%/packages/patches/openssl-runpath.patch			\
   %D%/packages/patches/openssl-1.1-c-rehash-in.patch		\
   %D%/packages/patches/openssl-c-rehash-in.patch		\
@@ -1404,17 +1468,22 @@ dist_patch_DATA =						\
   %D%/packages/patches/p7zip-CVE-2017-17969.patch		\
   %D%/packages/patches/p7zip-remove-unused-code.patch		\
   %D%/packages/patches/pam-krb5-CVE-2020-10595.patch		\
-  %D%/packages/patches/pam-mount-luks2-support.patch		\
   %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/plasma-framework-fix-KF5PlasmaMacros.cmake.patch \
   %D%/packages/patches/ppsspp-disable-upgrade-and-gold.patch		\
+  %D%/packages/patches/samba-fix-fcntl-hint-detection.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		\
   %D%/packages/patches/sdl-pango-fillrect_crash.patch		\
   %D%/packages/patches/sdl-pango-header-guard.patch		\
   %D%/packages/patches/sdl-pango-matrix_declarations.patch	\
   %D%/packages/patches/sdl-pango-sans-serif.patch		\
+  %D%/packages/patches/smalltalk-multiplication-overflow.patch	\
   %D%/packages/patches/sqlite-hurd.patch			\
+  %D%/packages/patches/sunxi-tools-remove-sys-io.patch	\
   %D%/packages/patches/patchutils-test-perms.patch		\
   %D%/packages/patches/patch-hurd-path-max.patch		\
   %D%/packages/patches/perl-autosplit-default-time.patch	\
@@ -1428,10 +1497,12 @@ dist_patch_DATA =						\
   %D%/packages/patches/perl-text-markdown-discount-unbundle.patch	\
   %D%/packages/patches/perl-module-pluggable-search.patch	\
   %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/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/pidgin-libnm.patch			\
+  %D%/packages/patches/pidgin-vv-gst.patch                        \
   %D%/packages/patches/pinball-const-fix.patch			\
   %D%/packages/patches/pinball-cstddef.patch			\
   %D%/packages/patches/pinball-missing-separators.patch		\
@@ -1448,7 +1519,6 @@ 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/podofo-cmake-3.12.patch			\
   %D%/packages/patches/portaudio-audacity-compat.patch		\
   %D%/packages/patches/portmidi-modular-build.patch		\
   %D%/packages/patches/postgresql-disable-resolve_symlinks.patch	\
@@ -1462,6 +1532,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/psm-repro.patch				\
   %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			\
@@ -1478,17 +1549,15 @@ dist_patch_DATA =						\
   %D%/packages/patches/python-3-search-paths.patch		\
   %D%/packages/patches/python-3-fix-tests.patch			\
   %D%/packages/patches/python-3.8-fix-tests.patch		\
+  %D%/packages/patches/python-3.9-fix-tests.patch		\
   %D%/packages/patches/python-CVE-2018-14647.patch		\
-  %D%/packages/patches/python-aiohttp-3.6.2-no-warning-fail.patch	\
   %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-cairocffi-dlopen-path.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	\
   %D%/packages/patches/python-flask-restful-werkzeug-compat.patch	\
-  %D%/packages/patches/python-gst-fix-build-with-python-3.8.patch	\
   %D%/packages/patches/python-keras-integration-test.patch	\
   %D%/packages/patches/python-pep8-stdlib-tokenize-compat.patch \
   %D%/packages/patches/python-pyfakefs-remove-bad-test.patch	\
@@ -1503,16 +1572,17 @@ dist_patch_DATA =						\
   %D%/packages/patches/python-paste-remove-timing-test.patch	\
   %D%/packages/patches/python-pycrypto-CVE-2013-7459.patch	\
   %D%/packages/patches/python-pycrypto-time-clock.patch		\
-  %D%/packages/patches/python2-pygobject-2-gi-info-type-error-domain.patch \
+  %D%/packages/patches/python-pydot-regression-test.patch	\
+  %D%/packages/patches/python2-pygobject-2-deprecation.patch	\
   %D%/packages/patches/python-pygpgme-fix-pinentry-tests.patch	\
-  %D%/packages/patches/python-robotframework-honor-source-date-epoch.patch \
+  %D%/packages/patches/python-robotframework-source-date-epoch.patch \
   %D%/packages/patches/python-shouldbe-0.1.2-cpy3.8.patch	\
   %D%/packages/patches/python2-subprocess32-disable-input-test.patch	\
-  %D%/packages/patches/python-tinycss2-flake8-compat.patch	\
   %D%/packages/patches/python-unittest2-python3-compat.patch	\
   %D%/packages/patches/python-unittest2-remove-argparse.patch	\
   %D%/packages/patches/python-waitress-fix-tests.patch		\
   %D%/packages/patches/pypy3-7.3.1-fix-tests.patch		\
+  %D%/packages/patches/qemu-build-info-manual.patch		\
   %D%/packages/patches/qemu-glibc-2.27.patch 			\
   %D%/packages/patches/qrcodegen-cpp-make-install.patch		\
   %D%/packages/patches/qt4-ldflags.patch			\
@@ -1531,11 +1601,13 @@ dist_patch_DATA =						\
   %D%/packages/patches/raptor2-heap-overflow.patch		\
   %D%/packages/patches/ratpoints-sturm_and_rp_private.patch	\
   %D%/packages/patches/ratpoison-shell.patch			\
-  %D%/packages/patches/rcs-5.9.4-noreturn.patch			\
+  %D%/packages/patches/rcs-5.10.0-no-stdin.patch		\
   %D%/packages/patches/rct-add-missing-headers.patch		\
   %D%/packages/patches/readline-link-ncurses.patch		\
   %D%/packages/patches/readline-6.2-CVE-2014-2524.patch		\
+  %D%/packages/patches/renpy-use-system-fribidi.patch		\
   %D%/packages/patches/reposurgeon-add-missing-docbook-files.patch	\
+  %D%/packages/patches/r-httpuv-1.5.5-unvendor-libuv.patch	\
   %D%/packages/patches/ri-li-modernize_cpp.patch		\
   %D%/packages/patches/ripperx-missing-file.patch		\
   %D%/packages/patches/rpcbind-CVE-2017-8779.patch		\
@@ -1554,22 +1626,26 @@ dist_patch_DATA =						\
   %D%/packages/patches/rust-1.19-mrustc.patch			\
   %D%/packages/patches/rust-1.25-accept-more-detailed-gdb-lines.patch \
   %D%/packages/patches/rust-1.45-linker-locale.patch		\
+  %D%/packages/patches/rust-1.48-linker-locale.patch		\
   %D%/packages/patches/rust-bootstrap-stage0-test.patch		\
   %D%/packages/patches/rust-coresimd-doctest.patch		\
+  %D%/packages/patches/rust-ndarray-remove-blas-src-dep.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/rxvt-unicode-escape-sequences.patch	\
-  %D%/packages/patches/sbcl-graph-asdf-definitions.patch	\
+  %D%/packages/patches/sbcl-clml-fix-types.patch		\
   %D%/packages/patches/scalapack-blacs-mpi-deprecations.patch	\
   %D%/packages/patches/scheme48-tests.patch			\
   %D%/packages/patches/scotch-build-parallelism.patch		\
   %D%/packages/patches/scotch-integer-declarations.patch	\
   %D%/packages/patches/screen-hurd-path-max.patch		\
-  %D%/packages/patches/scribus-1.5.5-poppler-0.86-build-fix.patch	\
   %D%/packages/patches/sdl-libx11-1.6.patch			\
+  %D%/packages/patches/seed-webkit.patch			\
   %D%/packages/patches/seq24-rename-mutex.patch			\
+  %D%/packages/patches/serf-python3.patch			\
+  %D%/packages/patches/shakespeare-spl-fix-grammar.patch		\
   %D%/packages/patches/sharutils-CVE-2018-1000097.patch		\
   %D%/packages/patches/shadow-hurd-pctrl.patch			\
   %D%/packages/patches/shishi-fix-libgcrypt-detection.patch	\
@@ -1580,9 +1656,9 @@ dist_patch_DATA =						\
   %D%/packages/patches/slim-login.patch				\
   %D%/packages/patches/slim-display.patch			\
   %D%/packages/patches/snappy-add-O2-flag-in-CmakeLists.txt.patch	\
-  %D%/packages/patches/sooperlooper-build-with-wx-30.patch 	\
   %D%/packages/patches/sphinxbase-fix-doxygen.patch		\
   %D%/packages/patches/sssd-fix-samba.patch			\
+  %D%/packages/patches/sssd-system-directories.patch		\
   %D%/packages/patches/steghide-fixes.patch			\
   %D%/packages/patches/suitesparse-mongoose-cmake.patch		\
   %D%/packages/patches/superlu-dist-awpm-grid.patch		\
@@ -1617,19 +1693,24 @@ dist_patch_DATA =						\
   %D%/packages/patches/thefuck-test-environ.patch		\
   %D%/packages/patches/tidy-CVE-2015-5522+5523.patch		\
   %D%/packages/patches/tinyxml-use-stl.patch			\
+  %D%/packages/patches/tipp10-disable-downloader.patch		\
   %D%/packages/patches/tipp10-fix-compiling.patch		\
   %D%/packages/patches/tipp10-remove-license-code.patch		\
+  %D%/packages/patches/tipp10-qt5.patch			\
   %D%/packages/patches/tk-find-library.patch			\
+  %D%/packages/patches/transcode-ffmpeg.patch	\
+  %D%/packages/patches/transmission-honor-localedir.patch	\
   %D%/packages/patches/ttf2eot-cstddef.patch			\
-  %D%/packages/patches/ttfautohint-source-date-epoch.patch	\
-  %D%/packages/patches/tomb-fix-errors-on-open.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-riscv64-fix-extlinux.patch	\
   %D%/packages/patches/ucx-tcp-iface-ioctl.patch		\
   %D%/packages/patches/udiskie-no-appindicator.patch		\
+  %D%/packages/patches/ungoogled-chromium-extension-search-path.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		\
   %D%/packages/patches/unzip-CVE-2014-8140.patch		\
   %D%/packages/patches/unzip-CVE-2014-8141.patch		\
@@ -1661,9 +1742,10 @@ dist_patch_DATA =						\
   %D%/packages/patches/vte-CVE-2012-2738-pt1.patch			\
   %D%/packages/patches/vte-CVE-2012-2738-pt2.patch			\
   %D%/packages/patches/warsow-qfusion-fix-bool-return-type.patch	\
-  %D%/packages/patches/weasyprint-library-paths.patch		\
   %D%/packages/patches/webkitgtk-share-store.patch		\
+  %D%/packages/patches/webkitgtk-bind-all-fonts.patch		\
   %D%/packages/patches/websocketpp-fix-for-cmake-3.15.patch	\
+  %D%/packages/patches/wgetpaste-update-bpaste.patch		\
   %D%/packages/patches/wicd-bitrate-none-fix.patch		\
   %D%/packages/patches/wicd-get-selected-profile-fix.patch	\
   %D%/packages/patches/wicd-urwid-1.3.patch			\
@@ -1676,16 +1758,14 @@ dist_patch_DATA =						\
   %D%/packages/patches/wordnet-CVE-2008-3908-pt2.patch			\
   %D%/packages/patches/x265-arm-flags.patch			\
   %D%/packages/patches/xf86-video-ark-remove-mibstore.patch	\
-  %D%/packages/patches/xf86-video-geode-glibc-2.20.patch	\
   %D%/packages/patches/xf86-video-mach64-glibc-2.20.patch	\
   %D%/packages/patches/xf86-video-savage-xorg-compat.patch 	\
   %D%/packages/patches/xf86-video-siliconmotion-fix-ftbfs.patch \
-  %D%/packages/patches/xf86-video-sis-xorg-compat.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/xorg-server-CVE-2020-14347.patch		\
+  %D%/packages/patches/xmonad-dynamic-linking.patch		\
   %D%/packages/patches/xplanet-1.3.1-cxx11-eof.patch		\
   %D%/packages/patches/xplanet-1.3.1-libdisplay_DisplayOutput.cpp.patch	\
   %D%/packages/patches/xplanet-1.3.1-libimage_gif.c.patch	\
@@ -1696,6 +1776,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/xsane-fix-snprintf-buffer-length.patch	\
   %D%/packages/patches/xsane-support-ipv6.patch			\
   %D%/packages/patches/xsane-tighten-default-umask.patch	\
+  %D%/packages/patches/yggdrasil-extra-config.patch	\
   %D%/packages/patches/zziplib-CVE-2018-16548.patch
 
 MISC_DISTRO_FILES =				\
diff --git a/gnu/machine/ssh.scm b/gnu/machine/ssh.scm
index 4e31baa4b9..997d673e75 100644
--- a/gnu/machine/ssh.scm
+++ b/gnu/machine/ssh.scm
@@ -1,6 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2019 Jakob L. Kreuze <zerodaysfordays@sdf.org>
-;;; Copyright © 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2020, 2021 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -37,6 +37,7 @@
   #:use-module (guix ssh)
   #:use-module (guix store)
   #:use-module (guix utils)
+  #:use-module ((guix self) #:select (make-config.scm))
   #:use-module (gcrypt pk-crypto)
   #:use-module (ice-9 format)
   #:use-module (ice-9 match)
@@ -172,6 +173,8 @@ exist on the machine."
               (and (file-system-mount? fs)
                    (not (member (file-system-type fs)
                                 %pseudo-file-system-types))
+                   ;; Don't try to validate network file systems.
+                   (not (string-prefix? "nfs" (file-system-type fs)))
                    (not (memq 'bind-mount (file-system-flags fs)))))
             (operating-system-file-systems (machine-operating-system machine))))
 
@@ -343,6 +346,14 @@ by MACHINE."
 ;;; System deployment.
 ;;;
 
+(define not-config?
+  ;; Select (guix …) and (gnu …) modules, except (guix config).
+  (match-lambda
+    (('guix 'config) #f)
+    (('guix _ ...) #t)
+    (('gnu _ ...) #t)
+    (_ #f)))
+
 (define (machine-boot-parameters machine)
   "Monadic procedure returning a list of 'boot-parameters' for the generations
 of MACHINE's system profile, ordered from most recent to oldest."
@@ -351,8 +362,10 @@ of MACHINE's system profile, ordered from most recent to oldest."
 
   (define remote-exp
     (with-extensions (list guile-gcrypt)
-      (with-imported-modules (source-module-closure '((guix config)
-                                                      (guix profiles)))
+      (with-imported-modules `(((guix config) => ,(make-config.scm))
+                               ,@(source-module-closure
+                                  '((guix profiles))
+                                  #:select? not-config?))
         #~(begin
             (use-modules (guix config)
                          (guix profiles)
@@ -478,6 +491,12 @@ an environment type of 'managed-host."
                                  (raise roll-back-failure)))
                        (entries -> (map boot-parameters->menu-entry
                                         (list (second boot-parameters))))
+                       (locale -> (boot-parameters-locale
+                                   (second boot-parameters)))
+                       (crypto-dev -> (boot-parameters-store-crypto-devices
+                                       (second boot-parameters)))
+                       (store-dir -> (boot-parameters-store-directory-prefix
+                                      (second boot-parameters)))
                        (old-entries -> (map boot-parameters->menu-entry
                                             (drop boot-parameters 2)))
                        (bootloader -> (operating-system-bootloader
@@ -487,6 +506,9 @@ an environment type of 'managed-host."
                                    (bootloader-configuration-bootloader
                                     bootloader))
                                   bootloader entries
+                                  #:locale locale
+                                  #:store-crypto-devices crypto-dev
+                                  #:store-directory-prefix store-dir
                                   #:old-entries old-entries)))
                        (remote-result (machine-remote-eval machine remote-exp)))
     (when (eqv? 'error remote-result)
diff --git a/gnu/packages/abduco.scm b/gnu/packages/abduco.scm
index 37d2f37773..19671d14c9 100644
--- a/gnu/packages/abduco.scm
+++ b/gnu/packages/abduco.scm
@@ -19,6 +19,7 @@
 
 (define-module (gnu packages abduco)
   #:use-module (guix build-system gnu)
+  #:use-module (guix utils)
   #:use-module (guix download)
   #:use-module (guix licenses)
   #:use-module (guix packages))
@@ -37,7 +38,7 @@
               "1x1m58ckwsprljgmdy93mvgjyg9x3cqrzdf3mysp0mx97zhhj2f9"))))
    (build-system gnu-build-system)
    (arguments
-    `(#:make-flags (list "CC=gcc"
+    `(#:make-flags (list (string-append "CC=" ,(cc-for-target))
                          (string-append "PREFIX=" (assoc-ref %outputs "out")))
       #:phases (modify-phases %standard-phases
                  (delete 'configure)
diff --git a/gnu/packages/accessibility.scm b/gnu/packages/accessibility.scm
index 8d421a092a..f3bd094c92 100644
--- a/gnu/packages/accessibility.scm
+++ b/gnu/packages/accessibility.scm
@@ -1,8 +1,9 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2017 Nikita <nikita@n0.is>
 ;;; Copyright © 2017 Stefan Reichör <stefan@xsteve.at>
-;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2019 Andrew Miloradovsky <andrew@interpretmath.pw>
+;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -21,12 +22,31 @@
 
 (define-module (gnu packages accessibility)
   #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix utils)
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix git-download)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system glib-or-gtk)
   #:use-module (gnu packages)
+  #:use-module (gnu packages lisp)
+  #:use-module (gnu packages base)
+  #:use-module (gnu packages ocaml)
+  #:use-module (gnu packages pcre)
+  #:use-module (gnu packages polkit)
+  #:use-module (gnu packages ncurses)
+  #:use-module (gnu packages music)
+  #:use-module (gnu packages language)
+  #:use-module (gnu packages icu4c)
+  #:use-module (gnu packages speech)
+  #:use-module (gnu packages linux)
+  #:use-module (gnu packages documentation)
+  #:use-module (gnu packages swig)
+  #:use-module (gnu packages libusb)
+  #:use-module (gnu packages java)
+  #:use-module (gnu packages python)
+  #:use-module (gnu packages python-xyz)
+  #:use-module (gnu packages tcl)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages gstreamer)
@@ -37,6 +57,154 @@
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages libusb))
 
+(define-public libbraille
+  (package
+    (name "libbraille")
+    (version "0.19.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://sourceforge.net/projects/" name "/files/" name "/"
+                       name "-" version "/" name "-" version ".tar.gz"))
+       (sha256
+        (base32 "05g8r0ypazqn10i7k48iibs8bzc3scdfcnhcykab8j16lhzd27d0"))))
+    (build-system glib-or-gtk-build-system)
+    (outputs '("out" "bin"))
+    (arguments
+     `(#:tests? #f                      ; Tests require drivers
+       #:configure-flags
+       (list
+        "--disable-static"
+        "--enable-fake")))
+    (native-inputs
+     `(("latex2html" ,latex2html)
+       ("pkg-config" ,pkg-config)
+       ("python" ,python-wrapper)
+       ("swig" ,swig)))
+    (inputs
+     `(("glib" ,glib)
+       ("gtk+" ,gtk+-2)
+       ("libusb" ,libusb-compat)))
+    (synopsis "Portable Braille Library")
+    (description "Libbraille is a library to easily access Braille displays and
+terminals.")
+    (home-page "https://libbraille.org")
+    (license license:lgpl2.1+)))
+
+(define-public brltty
+  (package
+    (name "brltty")
+    (version "6.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://brltty.app/archive/brltty-" version ".tar.gz"))
+       (sha256
+        (base32 "0m0cq3p1cwp52n81si621gij82w3mdqwgr39m6bs652pmk5na72l"))))
+    (build-system glib-or-gtk-build-system)
+    (arguments
+     `(#:tests? #f                      ; No target
+       #:configure-flags
+       (list
+        (string-append "--with-tcl-config="
+                       (assoc-ref %build-inputs "tcl")
+                       "/lib/tclConfig.sh")
+        (string-append "--with-libbraille="
+                       (assoc-ref %build-inputs "libbraille"))
+        (string-append "--with-espeak_ng="
+                       (assoc-ref %build-inputs "espeak-ng"))
+        (string-append "--with-espeak="
+                       (assoc-ref %build-inputs "espeak"))
+        (string-append "--with-flite="
+                       (assoc-ref %build-inputs "flite"))
+        ;; Required for RUNPATH validation.
+        (string-append "LDFLAGS=-Wl,-rpath="
+                       (assoc-ref %outputs "out")
+                       "/lib"))
+       #:make-flags
+       (list
+        (string-append "JAVA_JAR_DIR="
+                       (assoc-ref %outputs "out"))
+        (string-append "JAVA_JNI_DIR="
+                       (assoc-ref %outputs "out"))
+        (string-append "OCAML_DESTDIR="
+                       (assoc-ref %outputs "out")
+                       "/lib")
+        (string-append "PYTHON_PREFIX="
+                       (assoc-ref %outputs "out"))
+        "PYTHON_ROOT=/"
+        (string-append "TCL_DIR="
+                       (assoc-ref %outputs "out")
+                       "/lib")
+        "INSTALL_WRITABLE_DIRECTORY=no-thanks")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-errors
+           (lambda* (#:key outputs #:allow-other-keys)
+             (substitute* "configure"
+               (("/sbin/ldconfig")
+                (which "true")))
+             ;; Make Python bindings use rpath.
+             (substitute* "Bindings/Python/setup.py.in"
+               (("extra_compile_args =")
+                (string-append "extra_link_args = ['-Wl,-rpath="
+                               (assoc-ref outputs "out")
+                               "/lib'], "
+                               "extra_compile_args = ")))
+             #t)))))
+    (native-inputs
+     `(("clisp" ,clisp)
+       ("cython" ,python-cython)
+       ("doxygen" ,doxygen)
+       ("gettext" ,gettext-minimal)
+       ("java" ,icedtea "jdk")
+       ;; ("linuxdoc" ,linuxdoc-tools)
+       ("ocaml" ,ocaml)
+       ("ocamlfind" ,ocaml-findlib)
+       ("pkg-config" ,pkg-config)
+       ("python" ,python-wrapper)
+       ("tcl" ,tcl)))
+    (inputs
+     `(("alsa" ,alsa-lib)
+       ("atspi2" ,at-spi2-core)
+       ("bluez" ,bluez)
+       ("dbus" ,dbus)
+       ("espeak" ,espeak)
+       ("espeak-ng" ,espeak-ng)
+       ("expat" ,expat)
+       ("festival" ,festival)
+       ("flite" ,flite)
+       ("glib" ,glib)
+       ("gpm" ,gpm)
+       ("iconv" ,libiconv)
+       ("icu" ,icu4c)
+       ("libbraille" ,libbraille)
+       ("libpcre2" ,pcre2)
+       ("linux-headers" ,linux-libre-headers)
+       ("louis" ,liblouis)
+       ("ncurses" ,ncurses)
+       ("polkit" ,polkit)
+       ("speech-dispatcher" ,speech-dispatcher)
+       ("util-linux" ,util-linux)
+       ("util-linux:lib" ,util-linux "lib")
+       ("x11" ,libx11)
+       ("xaw" ,libxaw)
+       ("xaw3d" ,libxaw3d)
+       ("xext" ,libxext)
+       ("xfixes" ,libxfixes)
+       ("xt" ,libxt)
+       ("xtst" ,libxtst)))
+    (synopsis "Braille TTY")
+    (description "BRLTTY is a background process (daemon) which provides access
+to the Linux/Unix console (when in text mode) for a blind person using a
+refreshable braille display.  It drives the braille display, and provides
+complete screen review functionality.  Some speech capability has also been
+incorporated.")
+    (home-page "https://brltty.app/")
+    (license license:lgpl2.1+)))
+
 (define-public florence
   (package
     (name "florence")
@@ -105,7 +273,7 @@ available to help to click.")
        `(("hidapi" ,hidapi)))
       (arguments
        `(#:tests? #f ; no tests
-         #:make-flags (list "CC=gcc")
+         #:make-flags (list (string-append "CC=" ,(cc-for-target)))
          #:phases (modify-phases %standard-phases
                     (delete 'configure)
                     ;; Install target in the Makefile does not work for Guix
@@ -141,7 +309,7 @@ devices have vendorId:productId = 0c45:7403 or 0c45:7404.")
     (arguments
      `(#:tests? #f ; none included
        #:make-flags
-       (list "CC=gcc"
+       (list (string-append "CC=" ,(cc-for-target))
              (string-append "prefix=" (assoc-ref %outputs "out")))
        #:phases
        (modify-phases %standard-phases
diff --git a/gnu/packages/acl.scm b/gnu/packages/acl.scm
index bcab125164..be4b079b04 100644
--- a/gnu/packages/acl.scm
+++ b/gnu/packages/acl.scm
@@ -5,6 +5,7 @@
 ;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -25,6 +26,7 @@
   #:use-module (guix licenses)
   #:use-module (gnu packages attr)
   #:use-module (gnu packages base)
+  #:use-module (gnu packages hurd)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages perl)
   #:use-module (guix packages)
@@ -49,6 +51,8 @@
      `(#:modules ((ice-9 ftw)
                   ,@%gnu-build-system-modules)
        #:configure-flags '("--disable-static")
+       #:tests? ,(not (or (%current-target-system)
+                          (hurd-target?)))
        #:phases
        (modify-phases %standard-phases
          ;; XXX After repacking the sources the timestamps are reset to the
diff --git a/gnu/packages/ada.scm b/gnu/packages/ada.scm
index e58b0d7754..d24aa2b168 100644
--- a/gnu/packages/ada.scm
+++ b/gnu/packages/ada.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2018 Danny Milosavljevic <dannym@scratchpost.org>
+;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -24,10 +25,126 @@
   #:use-module (guix download)
   #:use-module (guix git-download)
   #:use-module (gnu packages)
+  #:use-module (gnu packages base)
   #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages python)
-  #:use-module (gnu packages python-xyz))
+  #:use-module (gnu packages python-xyz)
+  #:use-module (ice-9 match))
+
+(define-public ada/ed
+  (package
+    (name "ada-ed")
+    (version "1.11.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             ;; The HOME-PAGE sources, mirrored by one of the original authors.
+             (url "https://github.com/daveshields/AdaEd")
+             (commit "57daecfb7ccadfd9aaf13b4d54f51065affbe599")))
+       (sha256
+        (base32 "1k97a8nqsvbsadizrmhhypcx758sxqkai8wq3ckk853qxvzaasd8"))
+       (file-name (git-file-name name version))))
+    (build-system gnu-build-system)
+    (supported-systems (list "i686-linux" "x86_64-linux"
+                             "armhf-linux" "aarch64-linux"))
+    (outputs (list "out" "debug"))
+    (arguments
+     `(#:system
+       ,@(match (%current-system)
+           ;; This package predates 64-bit PCs: a ‘64-bit’ adaexec segfaults.
+           ;; Force a 32-bit build targeting a similar architecture.
+           ((or "armhf-linux" "aarch64-linux")
+            `("armhf-linux"))
+           (_
+            `("i686-linux")))
+       #:make-flags
+       (let ((out (assoc-ref %outputs "out")))
+         (list (string-append
+                "CFLAGS=-g"             ; compile with :debug symbols
+                " -DOP_SYS='\"GNU\"'"   ; sic; quoting gets mangled somewhere
+                " -DSYSTEM_V"           ; closest to modern GNU
+                " -DWORDSIZE32"
+                " -DALIGN4")            ; suffices on both x86 and ARM
+               "LFLAGS="                ; don't link against -lg
+               (string-append "BINDIR=" out "/bin")
+               (string-append "LIBDIR=" out "/lib")
+               (string-append "MANDIR=" out "/share/man")))
+       #:modules ((guix build gnu-build-system)
+                  (guix build utils)
+                  (srfi srfi-26))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-sources
+           (lambda _
+             ;; Rename the custom (and incompatible) getline() implementation.
+             (substitute* "adalex.c"
+               (("getline") "adaed_getline"))
+             ;; Work around ‘error: initializer element is not constant’ by not
+             ;; initialising MSGFILE.
+             (substitute* "vars.ch"
+               (("INIT\\(stdout\\)") ""))
+             #t))
+         (delete 'configure)            ; no configure script
+         (add-before 'build 'find-build-scripts
+           (lambda _
+             (setenv "PATH" (string-append ".:" (getenv "PATH")))
+             #t))
+         (add-after 'build 'build-predef
+           (lambda* (#:key make-flags #:allow-other-keys)
+             ;; These aren't otherwise compiled until the ‘install’ phase.
+             (apply invoke "make" "predef" make-flags)
+             #t))
+         (delete 'check)                ; no test suite; run our own below
+         (add-before 'install 'create-output-directories
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (mkdir-p (string-append out "/share/man/manl"))
+               #t)))
+         (add-after 'install 'check
+           ;; Run most of the included demos as our own ‘test suite’.
+           (lambda* (#:key outputs tests? #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (when tests?
+                 (setenv "ADAED" (string-append out "/lib"))
+                 (setenv "PATH" (string-append out "/bin:" (getenv "PATH")))
+                 (with-directory-excursion "demos" ; won't run outside of it
+                   (for-each
+                    delete-file
+                    '("runc"   ; ‘invalid data. Please make it a positive no.’
+                      "rund"   ; deadlocks by design
+                      "rune"   ; ‘dining2.ada: No such file or directory’
+                      "rung")) ; ‘mathlib cannot be used as a library’ (!)
+                   (for-each (lambda (script)
+                               (format #t "\n=== Invoking ~a ===\n" script)
+                               (invoke script))
+                             (find-files "." "^run")))))))
+         (add-after 'install 'clean-up-output
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (with-directory-excursion out
+                 ;; These needn't be executable.
+                 (for-each (cut chmod <> #o644)
+                           (append (find-files "lib" "\\....$")
+                                   (find-files "share" ".")))
+                 #t)))))))
+    (native-inputs
+     `(("sed" ,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"))
+    (synopsis "Ada 83 interpreter")
+    (description "Ada/Ed is a translator-interpreter for Ada 83.  It's intended
+primarily as a teaching tool and lacks the capacity, performance, and robustness
+of other contemporary or modern-day Ada compilers.
+
+Ada/Ed was the first Ada compiler to pass the @acronym{ACVC, Ada Compiler
+Validation Suite} version 1.7 but fails many newer tests and is not a validated
+Ada system.  Being an interpreter, it does not implement most representation
+clauses, and thus does not support systems programming close to the machine
+level.")
+    (license license:gpl2+)))
 
 (define-public python2-langkit
   (let ((commit "fe0bc8bf60dbd2937759810df76ac420d99fc15f")
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index f0bd22aa19..87b0f36cc1 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -1,19 +1,19 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com>
-;;; Copyright © 2014, 2015, 2016, 2018, 2019 Mark H Weaver <mhw@netris.org>
+;;; Copyright © 2014, 2015, 2016, 2018, 2019, 2020 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2020 Eric Bavier <bavier@posteo.net>
 ;;; Copyright © 2015, 2016 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
 ;;; Copyright © 2015 Alex Sassmannshausen <alex.sassmannshausen@gmail.com>
 ;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr>
-;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name>
+;;; Copyright © 2016, 2017, 2020 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2016 Pjotr Prins <pjotr.guix@thebird.nl>
 ;;; Copyright © 2016, 2017 Ricardo Wurmus <rekado@elephly.net>
-;;; Copyright © 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016 Peter Feigl <peter.feigl@nexoid.at>
 ;;; Copyright © 2016 John J. Foerch <jjfoerch@earthlink.net>
 ;;; Copyright © 2016, 2017 Nikita <nikita@n0.is>
-;;; Copyright © 2016, 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2016–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2016 John Darrington <jmd@gnu.org>
 ;;; Copyright © 2017 Ben Sturmfels <ben@sturm.com.au>
 ;;; Copyright © 2017 Ethan R. Jones <doubleplusgood23@gmail.com>
@@ -56,6 +56,7 @@
   #:use-module (guix build-system emacs)
   #:use-module (guix build-system glib-or-gtk)
   #:use-module (guix build-system gnu)
+  #:use-module (guix build-system go)
   #:use-module (guix build-system meson)
   #:use-module (guix build-system perl)
   #:use-module (guix build-system python)
@@ -106,6 +107,7 @@
   #:use-module (gnu packages libusb)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages lua)
+  #:use-module (gnu packages mail)
   #:use-module (gnu packages man)
   #:use-module (gnu packages mcrypt)
   #:use-module (gnu packages mpi)
@@ -265,7 +267,8 @@ and provides a \"top-like\" mode (monitoring).")
                 "0x9zr0x3xvk4qkb6jnda451d5iyrl06cz1bjzjsm0lxvjj3fabyk"))))
     (build-system gnu-build-system)
     (arguments
-     '(#:configure-flags '("--localstatedir=/var")))
+     '(#:configure-flags '("--localstatedir=/var")
+       #:make-flags '("GUILE_AUTO_COMPILE=0")))
     (native-inputs
      `(("pkg-config" ,pkg-config)
 
@@ -295,7 +298,8 @@ interface and is based on GNU Guile.")
      `(("pkg-config" ,pkg-config)
        ("guile" ,guile-2.2)))
     (inputs
-     `(("guile" ,guile-2.2)))))
+     `(("guile" ,guile-2.2)
+       ("guile2.2-readline" ,guile2.2-readline)))))
 
 (define-public guile3.0-shepherd
   (deprecated-package "guile3.0-shepherd" shepherd))
@@ -305,15 +309,26 @@ interface and is based on GNU Guile.")
     (inherit shepherd)
     (name "guile2.0-shepherd")
     (native-inputs
-     `(("pkg-config" ,pkg-config)
+     `(("help2man" ,help2man)
+       ("pkg-config" ,pkg-config)
        ("guile" ,guile-2.0)))
     (inputs
-     `(("guile" ,guile-2.0)))))
+     `(("guile" ,guile-2.0)))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-source
+           (lambda _
+             ;; (ice-9 threads) isn't available in guile-2.0
+             (substitute* "modules/shepherd.scm"
+               ((".*\\(ice-9 threads\\).*") ""))
+             #t)))
+       ,@(package-arguments shepherd)))))
 
 (define-public cloud-utils
   (package
     (name "cloud-utils")
-    (version "0.31")
+    (version "0.32")
     (source
      (origin
        (method url-fetch)
@@ -322,7 +337,7 @@ interface and is based on GNU Guile.")
              version "/+download/cloud-utils-" version ".tar.gz"))
        (sha256
         (base32
-         "07fl3dlqwdzw4xx7mcxhpkks6dnmaxha80zgs9f6wmibgzni8z0r"))))
+         "0xxdi55lzw7j91zfajw7jhd2ilsqj2dy04i9brlk8j3pvb5ma8hk"))))
     (build-system gnu-build-system)
     (arguments
      '(#:make-flags
@@ -443,7 +458,7 @@ graphs and can export its output to different formats.")
 (define-public facter
   (package
     (name "facter")
-    (version "4.0.33")
+    (version "4.0.49")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -452,7 +467,7 @@ graphs and can export its output to different formats.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0r9fi15cib4324ii4pniayjf27g51dka2skv9isiaj8y4wyhcq0v"))))
+                "0l7gic5ql5xiy5s6rb0j9ydyaal5bcxl10bx45khcgdr9zg16pb1"))))
     (build-system ruby-build-system)
     (arguments
      `(#:phases
@@ -514,20 +529,23 @@ or via the @code{facter} Ruby library.")
 (define-public htop
   (package
     (name "htop")
-    (version "2.2.0")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "http://hisham.hm/htop/releases/"
-                                  version "/htop-" version ".tar.gz"))
-              (sha256
-               (base32
-                "0mrwpb3cpn3ai7ar33m31yklj64c3pp576vh1naqff6f21pq5mnr"))))
+    (version "3.0.5")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/htop-dev/htop")
+             (commit version)))
+       (sha256
+        (base32 "10lp6cbfvigzp6pq5nwj3s3l4vs7cv92krz2r08nwrz8vl6rqdzp"))
+       (file-name (git-file-name name version))))
     (build-system gnu-build-system)
     (inputs
      `(("ncurses" ,ncurses)))
     (native-inputs
-     `(("python" ,python-wrapper)))     ;for scripts/MakeHeader.py
-    (home-page "https://hisham.hm/htop/")
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)))
+    (home-page "https://htop.dev")
     (synopsis "Interactive process viewer")
     (description
      "This is htop, an interactive process viewer.  It is a text-mode
@@ -561,7 +579,7 @@ memory, disks, network and processes.")
 (define-public pies
   (package
     (name "pies")
-    (version "1.4")
+    (version "1.5")
     (source
      (origin
        (method url-fetch)
@@ -569,7 +587,7 @@ memory, disks, network and processes.")
                            version ".tar.bz2"))
        (sha256
         (base32
-         "14jb4pa4zs26d5j2skxbaypnwhsx2lw8jgj1irrgs03c2dnf7gp6"))))
+         "11j168qljsinaj5dwmg7nkm2z1aghi6gc3d0wf0pikflnh2q2wqf"))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases (modify-phases %standard-phases
@@ -824,7 +842,7 @@ would need and has several interesting built-in capabilities.")
 (define-public netcat-openbsd
   (package
     (name "netcat-openbsd")
-    (version "1.217-1")
+    (version "1.217-2")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -833,12 +851,12 @@ would need and has several interesting built-in capabilities.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0kcvi3pav2fdx5c22psjv5dggk4cmrqiaq2cklhqngsk4a7vrjan"))))
+                "19sr52ix14w344pv13ppb0c1wyg5dxhic1fw2q0s3qfmx57b9hhp"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                      ; no test suite
        #:make-flags
-       (list "CC=gcc")
+       (list (string-append "CC=" ,(cc-for-target)))
        #:phases
        (modify-phases %standard-phases
          (delete 'configure)
@@ -924,14 +942,14 @@ recursive runs on the generated subnets.  (also IPv6)
 (define-public alive
   (package
     (name "alive")
-    (version "2.0.2")
+    (version "2.0.3")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://gnu/alive/alive-"
                                  version ".tar.xz"))
              (sha256
               (base32
-               "1vrzg51ai68x9yld7vbgl58sxaw5qpx8rbakwcxn4cqq6vpxj38j"))))
+               "053hfp7s66lnilm1ii4jrjmy44wpa2cwwh6f0sl8cyz0mm813x4b"))))
     (build-system gnu-build-system)
     (arguments '(#:configure-flags '("alive_cv_nice_ping=yes")))
     (inputs `(("guile" ,guile-2.0)
@@ -946,7 +964,7 @@ connection alive.")
 (define-public isc-dhcp
   (let* ((bind-major-version "9")
          (bind-minor-version "11")
-         (bind-patch-version "18")
+         (bind-patch-version "22")
          (bind-release-type "")         ; for patch release, use "-P"
          (bind-release-version "")      ; for patch release, e.g. "6"
          (bind-version (string-append bind-major-version
@@ -1042,10 +1060,10 @@ connection alive.")
                ;; if finds all the programs it needs.
                (let* ((out       (assoc-ref outputs "out"))
                       (libexec   (string-append out "/libexec"))
-                      (coreutils (assoc-ref inputs "coreutils"))
+                      (coreutils (assoc-ref inputs "coreutils*"))
                       (inetutils (assoc-ref inputs "inetutils"))
                       (net-tools (assoc-ref inputs "net-tools"))
-                      (sed       (assoc-ref inputs "sed")))
+                      (sed       (assoc-ref inputs "sed*")))
                  (substitute* "client/scripts/linux"
                    (("/sbin/ip")
                     (string-append (assoc-ref inputs "iproute")
@@ -1083,14 +1101,10 @@ connection alive.")
                                         "/bind-" bind-version ".tar.gz"))
                     (sha256
                      (base32
-                      "0vws0zzb39mkphj4hhjrgfj9dzw951lc4pfa6pqg5ll5ma51mbsr"))))
+                      "1j9a4r83a77mp8k1y8z524c9rzdqgd8rzwczd6zwmw86a00xiimg"))))
 
-                ;; When cross-compiling, we need the cross Coreutils and sed.
-                ;; Otherwise just use those from %FINAL-INPUTS.
-                ,@(if (%current-target-system)
-                      `(("coreutils" ,coreutils)
-                        ("sed" ,sed))
-                      '())))
+                ("coreutils*" ,coreutils)
+                ("sed*" ,sed)))
 
       (home-page "https://www.isc.org/products/DHCP/")
       (synopsis "Dynamic Host Configuration Protocol (DHCP) tools")
@@ -1343,9 +1357,11 @@ at once based on a Perl regular expression.")
 
        #:phases (modify-phases %standard-phases
                   (add-after 'unpack 'patch-paths
-                    (lambda _
+                    (lambda* (#:key inputs #:allow-other-keys)
                       (substitute* "rc/rc"
-                        (("/usr/sbin/sendmail") "sendmail"))
+                        (("/usr/sbin/sendmail")
+                         (string-append (assoc-ref inputs "mailutils")
+                                        "/bin/mail")))
                       #t))
                   (add-after 'unpack 'fix-configure
                     (lambda* (#:key inputs native-inputs #:allow-other-keys)
@@ -1369,10 +1385,11 @@ at once based on a Perl regular expression.")
                          "packdir=\"/var/log\""))
                       #t))
                   (add-before 'install 'tweak-rc-weekly
-                    (lambda _
+                    (lambda* (#:key inputs #:allow-other-keys)
                       (substitute* "rc/weekly"
                         (("/bin/kill")
-                         (which "kill"))
+                         (string-append (assoc-ref inputs "coreutils*")
+                                        "/bin/kill"))
                         (("syslogd\\.pid")
                          ;; The file is called 'syslog.pid' (no 'd').
                          "syslog.pid"))
@@ -1383,6 +1400,8 @@ at once based on a Perl regular expression.")
     (native-inputs `(("texinfo" ,texinfo)
                      ("automake" ,automake)
                      ("util-linux" ,util-linux))) ; for 'cal'
+    (inputs `(("coreutils*" ,coreutils)
+              ("mailutils" ,mailutils)))
     (home-page "https://www.gnu.org/software/rottlog/")
     (synopsis "Log rotation and management")
     (description
@@ -1396,7 +1415,7 @@ system administrator.")
 (define-public sudo
   (package
     (name "sudo")
-    (version "1.9.2")
+    (version "1.9.5p1")
     (source (origin
               (method url-fetch)
               (uri
@@ -1406,25 +1425,19 @@ system administrator.")
                                     version ".tar.gz")))
               (sha256
                (base32
-                "05432672iilb7s52j9l9xzrlambb1wg3k7qvf5973i41y40x563w"))
+                "10kqdfbfpf3vk5ihz5gwynv4pxdf1lg6ircrlanyygb549yg7pad"))
               (modules '((guix build utils)))
               (snippet
                '(begin
                   (delete-file-recursively "lib/zlib")
                   #t))))
     (build-system gnu-build-system)
-    (outputs (list "out" "python"))
+    (outputs (list "out"))
     (arguments
      `(#:configure-flags
        (list (string-append "--docdir=" (assoc-ref %outputs "out")
                             "/share/doc/" ,name "-" ,version)
 
-             ;; XXX: Disable Python support when cross-compiling because
-             ;; 'configure' tries to run 'python', which fails.
-             ,(if (%current-target-system)
-                  "--disable-python"
-                  "--enable-python")              ; for plug-ins written in ~
-
              "--with-logpath=/var/log/sudo.log"
              "--with-rundir=/var/run/sudo" ; must be cleaned up at boot time
              "--with-vardir=/var/db/sudo"
@@ -1471,34 +1484,19 @@ system administrator.")
              (substitute* "plugins/sudoers/Makefile.in"
                (("^pre-install:" match)
                 (string-append match "\ndisabled-" match)))
-             #t))
-         (add-after 'install 'separate-python-output
-           (lambda* (#:key target outputs #:allow-other-keys)
-             (let ((out        (assoc-ref outputs "out"))
-                   (out:python (assoc-ref outputs "python")))
-               (if target
-                   (mkdir-p (string-append out:python "/empty"))
-                   (for-each
-                    (lambda (file)
-                      (let ((old (string-append out "/" file))
-                            (new (string-append out:python "/" file)))
-                        (mkdir-p (dirname new))
-                        (rename-file old new)))
-                    (list "libexec/sudo/python_plugin.so"
-                          "libexec/sudo/python_plugin.la")))
-               #t))))
+             #t)))
 
        ;; 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)))
+     ;; XXX TODO: Remove on next rebuild cycle.
+     (if (hurd-target?)
+         '()
+         `(("groff" ,groff))))
     (inputs
      `(("coreutils" ,coreutils)
        ("linux-pam" ,linux-pam)
-       ,@(if (%current-target-system)
-             '()
-             `(("python" ,python)))
        ("zlib" ,zlib)))
     (home-page "https://www.sudo.ws/")
     (synopsis "Run commands as root")
@@ -1514,7 +1512,7 @@ commands and their arguments.")
 (define-public opendoas
   (package
     (name "opendoas")
-    (version "6.6.1")
+    (version "6.8")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -1523,7 +1521,7 @@ commands and their arguments.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "07kkc5729p654jrgfsc8zyhiwicgmq38yacmwfvay2b3gmy728zn"))))
+                "1dlwnvy8r6slxcy260gfkximp1ms510wdslpfq9y6xvd2qi5izcb"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
@@ -1531,19 +1529,17 @@ commands and their arguments.")
          (replace 'configure
            ;; The configure script doesn't accept most of the default flags.
            (lambda* (#:key configure-flags #:allow-other-keys)
-             ;; The configure script can only be told which compiler to use
+             ;; The configure script can be told which compiler to use only
              ;; through environment variables.
              (setenv "CC" ,(cc-for-target))
              (apply invoke "./configure" configure-flags)))
          (add-before 'install 'fix-makefile
            (lambda* (#:key outputs #:allow-other-keys)
-             (substitute* "bsd.prog.mk"
+             (substitute* "GNUmakefile"
                (("^\tchown.*$") ""))
              #t)))
        #:configure-flags
        (list (string-append "--prefix=" (assoc-ref %outputs "out"))
-             ;; Nothing is done with this value (yet?) but it's supported.
-             ;; (string-append "--target=" (or ,(%current-target-system) ""))
              "--with-timestamp")
        ;; Compiler choice is not carried over from the configure script.
        #:make-flags
@@ -1581,10 +1577,10 @@ features of sudo with a fraction of the codebase.")
                     #t))))
     (build-system gnu-build-system)
     (arguments
-     '(#:phases
+     `(#:phases
        (modify-phases %standard-phases
          (replace 'configure
-           (lambda* (#:key outputs #:allow-other-keys)
+           (lambda _
              (chdir "wpa_supplicant")
              (copy-file "defconfig" ".config")
              (let ((port (open-file ".config" "al")))
@@ -1598,6 +1594,15 @@ features of sudo with a fraction of the codebase.")
       CONFIG_LIBNL32=y
       CONFIG_READLINE=y\n" port)
                (close-port port))
+             ;; Make sure we have a pkg-config when cross compiling
+             (substitute* '(".config"
+                            "Android.mk"
+                            "Makefile"
+                            "dbus/Makefile")
+               (("pkg-config")
+                (or (which "pkg-config")
+                    (which (string-append ,(%current-target-system)
+                                          "-pkg-config")))))
              #t))
          (add-after 'install 'install-documentation
            (lambda* (#:key outputs #:allow-other-keys)
@@ -1626,7 +1631,7 @@ features of sudo with a fraction of the codebase.")
                            "wpa_supplicant.conf"))
                #t))))
 
-      #:make-flags (list "CC=gcc"
+      #:make-flags (list (string-append "CC=" ,(cc-for-target))
                          (string-append "BINDIR=" (assoc-ref %outputs "out")
                                         "/sbin")
                          (string-append "LIBDIR=" (assoc-ref %outputs "out")
@@ -1736,10 +1741,10 @@ command.")
                 "1mrbvg4v7vm7mknf0n29mf88k3s4a4qj6r4d51wq8hmjj1m7s7c8"))))
     (build-system gnu-build-system)
     (arguments
-     '(#:phases
+     `(#:phases
        (modify-phases %standard-phases
          (replace 'configure
-           (lambda* (#:key outputs #:allow-other-keys)
+           (lambda _
              ;; This is mostly copied from 'wpa-supplicant' above.
              (chdir "hostapd")
              (copy-file "defconfig" ".config")
@@ -1751,6 +1756,14 @@ command.")
       CONFIG_IEEE80211AC=y\n" port)
                (close-port port))
              #t))
+         (add-after 'unpack 'patch-pkg-config
+           (lambda _
+             (substitute* "src/drivers/drivers.mak"
+               (("pkg-config")
+                (or (which "pkg-config")
+                    (string-append ,(%current-target-system)
+                                   "-pkg-config"))))
+             #t))
          (add-after 'install 'install-man-pages
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out  (assoc-ref outputs "out"))
@@ -1767,7 +1780,7 @@ command.")
                          (find-files "." "\\.8"))
                #t))))
 
-      #:make-flags (list "CC=gcc"
+      #:make-flags (list (string-append "CC=" ,(cc-for-target))
                          (string-append "BINDIR=" (assoc-ref %outputs "out")
                                         "/sbin")
                          (string-append "LIBDIR=" (assoc-ref %outputs "out")
@@ -1829,21 +1842,24 @@ network, which causes enabled computers to power on.")
 (define-public dmidecode
   (package
     (name "dmidecode")
-    (version "3.2")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "mirror://savannah/dmidecode/dmidecode-"
-                    version ".tar.xz"))
-              (sha256
-               (base32
-                "1pcfhcgs2ifdjwp7amnsr3lq95pgxpr150bjhdinvl505px0cw07"))))
+    (version "3.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://savannah/dmidecode/dmidecode-"
+                           version ".tar.xz"))
+       (sha256
+        (base32 "0m8lzg9rf1qssasiix672bxk5qwms90561g8hfkkhk31h2kkgiw2"))))
     (build-system gnu-build-system)
     (arguments
-     '(#:phases (modify-phases %standard-phases (delete 'configure))
-       #:tests? #f                                ; no 'check' target
-       #:make-flags (list (string-append "prefix="
-                                         (assoc-ref %outputs "out")))))
+     `(#:tests? #f                                ; no 'check' target
+       #:make-flags
+       (list (string-append "CC=" ,(cc-for-target))
+             (string-append "prefix="
+                            (assoc-ref %outputs "out")))
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure))))                   ; no configure script
     (home-page "https://www.nongnu.org/dmidecode/")
     (synopsis "Read hardware information from the BIOS")
     (description
@@ -1859,7 +1875,7 @@ module slots, and the list of I/O ports (e.g. serial, parallel, USB).")
 (define-public acpica
   (package
     (name "acpica")
-    (version "20200528")
+    (version "20210105")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1867,13 +1883,13 @@ module slots, and the list of I/O ports (e.g. serial, parallel, USB).")
                     version ".tar.gz"))
               (sha256
                (base32
-                "01ajxnz9dpnvdbib7yv20dw21a1yyfgwiw3whg0xi57cf4app2md"))))
+                "1gi7qzfywg118g5nlqn5lawxk25pg2sz01gmbz40vvmikks4ri9r"))))
     (build-system gnu-build-system)
     (native-inputs `(("flex" ,flex)
                      ("bison" ,bison)))
     (arguments
-     '(#:make-flags (list (string-append "PREFIX=" %output)
-                          "CC=gcc"
+     `(#:make-flags (list (string-append "PREFIX=" %output)
+                          (string-append "CC=" ,(cc-for-target))
                           "HOST=_LINUX"
                           "OPT_CFLAGS=-Wall -fno-strict-aliasing")
        #:tests? #f                      ; no 'check' target
@@ -2079,7 +2095,7 @@ track changes in important system configuration files.")
 (define-public libcap-ng
   (package
     (name "libcap-ng")
-    (version "0.7.10")
+    (version "0.8")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -2087,7 +2103,7 @@ track changes in important system configuration files.")
                     version ".tar.gz"))
               (sha256
                (base32
-                "1gzzy12agfa9ddipdf72h9y68zqqnvsjjylv4vnq6hj4w2safk58"))))
+                "08cy59iassiwbmfxa5v0kb374r80290vv32f5q1mnip11av26kgi"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags
@@ -2107,7 +2123,7 @@ various ways that may be running with too much privilege.")
 (define-public smartmontools
   (package
     (name "smartmontools")
-    (version "7.1")
+    (version "7.2")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -2115,7 +2131,7 @@ various ways that may be running with too much privilege.")
                     version "/smartmontools-" version ".tar.gz"))
               (sha256
                (base32
-                "0imqb7ka4ia5573w8rnpck571pjjc9698pdjcapy9cfyk4n4swrz"))))
+                "1mlc25sd5rgj5xmzcllci47inmfdw7cp185fday6hc9rwqkqmnaw"))))
     (build-system gnu-build-system)
     (inputs `(("libcap-ng" ,libcap-ng)))
     (home-page "https://www.smartmontools.org/")
@@ -2131,24 +2147,19 @@ degradation and failure.")
 (define-public fdupes
   (package
     (name "fdupes")
-    (version "1.6.1")
+    (version "2.1.2")
     (source
      (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/adrianlopezroche/fdupes")
-             (commit (string-append "v" version))))
-       (file-name (git-file-name name version))
+       (method url-fetch)
+       (uri (string-append "https://github.com/adrianlopezroche/fdupes/"
+                           "releases/download/v" version "/"
+                           "fdupes-" version ".tar.gz"))
        (sha256
-        (base32 "19b6vqblddaw8ccw4sn0qsqzbswlhrz8ia6n4m3hymvcxn8skpz9"))))
+        (base32 "1g9p50xhi2sp0hqxml4w2k0kq9jv988q2yxm347z5349dlxvap6d"))))
     (build-system gnu-build-system)
-    (arguments
-     '(#:phases (modify-phases %standard-phases
-                  (delete 'configure))
-       #:tests? #f ; no 'check' target
-       #:make-flags (list "CC=gcc"
-                          (string-append "PREFIX="
-                                         (assoc-ref %outputs "out")))))
+    (inputs
+     `(("ncurses" ,ncurses)
+       ("pcre2" ,pcre2)))
     (home-page "https://github.com/adrianlopezroche/fdupes")
     (synopsis "Identify duplicate files")
     (description
@@ -2195,13 +2206,13 @@ of supported upstream metrics systems simultaneously.")
 (define-public ansible
   (package
     (name "ansible")
-    (version "2.9.11")
+    (version "2.9.16")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "ansible" version))
        (sha256
-        (base32 "1c9ayh61qwasgncmlw7rjx5r4g5n2cpg1d5blgn53zg7xhrx1yc8"))))
+        (base32 "0j1icfqff25zm9sq6j41ipl6gcj3i67mb5bqbjf2f2q1yx6rm8sk"))))
     (build-system python-build-system)
     (native-inputs
      `(("python-bcrypt" ,python-bcrypt)
@@ -2398,17 +2409,20 @@ lookup to YAML Mode.  You could enable the mode with @code{(add-hook
      `(#:phases (modify-phases %standard-phases
                   (delete 'configure)
                   (replace 'build
-                    (lambda _
-                      (invoke "make" "CC=gcc" "-Csrc")))
+                    (lambda* (#:key make-flags #:allow-other-keys)
+                      (apply invoke "make" "-Csrc" make-flags)))
                   (replace 'check
-                    (lambda _
-                      (invoke "make" "CC=gcc" "-Ctests")))
+                    (lambda* (#:key tests? make-flags #:allow-other-keys)
+                      (when tests?
+                        (apply invoke "make" "-Ctests" make-flags))
+                      #t))
                   (replace 'install
                     (lambda* (#:key outputs #:allow-other-keys)
                       (let* ((out (assoc-ref outputs "out"))
                              (bin (string-append out "/bin")))
                         (install-file "src/cpulimit" bin))
-                      #t)))))
+                      #t)))
+       #:make-flags (list (string-append "CC=" ,(cc-for-target)))))
     (home-page "https://github.com/opsengine/cpulimit")
     (synopsis "Limit CPU usage")
     (description
@@ -2705,7 +2719,7 @@ results (ndiff), and a packet generation and response analysis tool (nping).")
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://github.com/dagwieers/dstat")
+             (url "https://github.com/dstat-real/dstat")
              (commit (string-append "v" version))))
        (file-name (git-file-name "dstat" version))
        (sha256
@@ -2715,9 +2729,8 @@ results (ndiff), and a packet generation and response analysis tool (nping).")
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                      ; no make check
-       #:make-flags (let ((out (assoc-ref %outputs "out")))
-                      (list (string-append "DESTDIR=" out)
-                            "prefix=/"))
+       #:make-flags
+       (list (string-append "prefix=" (assoc-ref %outputs "out")))
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'fix-python3-DeprecationWarning
@@ -2898,9 +2911,13 @@ shortcut syntax and completion options.")
     (version "4.8")
     (source (origin
               (method url-fetch)
-              (uri (string-append
-                    "https://archives.eyrie.org/software/kerberos/"
-                    "pam-krb5-" version ".tar.xz"))
+              (uri
+                (list (string-append
+                        "https://archives.eyrie.org/software/kerberos/"
+                        "pam-krb5-" version ".tar.xz")
+                      (string-append
+                        "https://archives.eyrie.org/software/ARCHIVE/"
+                        "pam-krb5/pam-krb5-" version ".tar.xz")))
               (patches (search-patches "pam-krb5-CVE-2020-10595.patch"))
               (sha256
                (base32
@@ -2934,7 +2951,7 @@ with @code{ChallengeResponseAuthentication} and @code{PrivilegeSeparation}
 enabled, and supports extensive configuration either by PAM options or in
 krb5.conf or both.  PKINIT is supported with recent versions of both MIT
 Kerberos and Heimdal and FAST is supported with recent MIT Kerberos.")
-    (home-page "https://www.eyrie.org/~eagle/software/pam-krb5")
+    (home-page "https://www.eyrie.org/~eagle/software/pam-krb5/")
     ;; Dual licenced under  a homebrew non-copyleft OR GPL (any version)
     ;; However, the tarball does not contain a copy of the GPL,  so unless
     ;; we put one in, we cannot distribute it under GPL without violating
@@ -2949,6 +2966,8 @@ Kerberos and Heimdal and FAST is supported with recent MIT Kerberos.")
              (commit (string-append "v" version))))
        (sha256
         (base32 "04f3jqg8ww4jxsf9c6ddcdgy2xbhkyp0b3l5f1hvvbv94p81rjxd"))
+       (patches
+        (search-patches "sunxi-tools-remove-sys-io.patch"))
        (modules '((guix build utils)))
        (snippet
         ;; Remove binaries contained in the tarball which are only for the
@@ -3107,7 +3126,7 @@ buffers.")
 (define-public igt-gpu-tools
   (package
     (name "igt-gpu-tools")
-    (version "1.24")
+    (version "1.25")
     (source
      (origin
        (method git-fetch)
@@ -3116,27 +3135,22 @@ buffers.")
              (commit (string-append "igt-gpu-tools-" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1gpdjs5aj6vsnzwcjvw5bb120lgffvvshi4202phr0bzw3b92ky8"))))
-    (build-system gnu-build-system)
+        (base32 "1lvhkdhilw0fn4nzkpfwvrhiv8d92h811qs2v6ac3p5w7v86a9zm"))))
+    (build-system meson-build-system)
     (arguments
      `(#:tests? #f))            ; many of the tests try to load kernel modules
     (inputs
      `(("cairo" ,cairo)
        ("elfutils" ,elfutils)           ; libdw
        ("eudev" ,eudev)
-       ("glib" ,glib)
        ("kmod" ,kmod)
        ("libdrm" ,libdrm)
        ("libpciaccess" ,libpciaccess)
        ("libunwind" ,libunwind)
-       ("libxrandr" ,libxrandr)
-       ("openssl" ,openssl)
-       ("procps" ,procps)
-       ("util-macros" ,util-macros)))
+       ("procps" ,procps)))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
+     `(("bison" ,bison)
+       ("flex" ,flex)
        ("pkg-config" ,pkg-config)))
     (home-page "https://gitlab.freedesktop.org/drm/igt-gpu-tools")
     (synopsis "Tools for development and testing of the Intel DRM driver")
@@ -3374,14 +3388,14 @@ information tool.")
 (define-public nnn
   (package
     (name "nnn")
-    (version "3.3")
+    (version "3.5")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://github.com/jarun/nnn/releases/download/v"
                            version "/nnn-v" version ".tar.gz"))
        (sha256
-        (base32 "1jiaygylwrlz6rlls1q69xw10j6ypr96yshsbzisg0adk37lbchn"))))
+        (base32 "1ww18vvfjkvi36rcamw8kpix4bhk71w5bw9kmnh158crah1x8dp6"))))
     (build-system gnu-build-system)
     (inputs
      `(("ncurses" ,ncurses)
@@ -3389,15 +3403,23 @@ information tool.")
     (native-inputs
      `(("pkg-config" ,pkg-config)))
     (arguments
-     '(#:tests? #f                      ; no tests
+     `(#:tests? #f                      ; no tests
        #:phases
        (modify-phases %standard-phases
-         (delete 'configure))           ; no configure script
+         (delete 'configure)            ; no configure script
+         (add-after 'unpack 'patch-pkg-config
+           (lambda _
+             (substitute* "Makefile"
+               (("pkg-config")
+                (or (which "pkg-config")
+                    (string-append ,(%current-target-system)
+                                   "-pkg-config"))))
+             #t)))
        #:make-flags
        (list
         (string-append "PREFIX="
                        (assoc-ref %outputs "out"))
-        "CC=gcc")))
+        (string-append "CC=" ,(cc-for-target)))))
     (home-page "https://github.com/jarun/nnn")
     (synopsis "Terminal file browser")
     (description "@command{nnn} is a fork of @command{noice}, a blazing-fast
@@ -3410,40 +3432,56 @@ make it a perfect utility on modern distros.")
 (define-public thermald
   (package
     (name "thermald")
-    (version "1.9.1")
+    (version "2.4.1")
     (source
      (origin
       (method git-fetch)
       (uri (git-reference
-             (url "https://github.com/01org/thermal_daemon")
+             (url "https://github.com/intel/thermal_daemon")
              (commit (string-append "v" version))))
       (file-name (git-file-name name version))
       (sha256
-       (base32 "0iagc3jqpnh6q2fa1gx4wx6r8qg0556j60xr159zqg95djr4dv99"))))
+       (base32 "0rlac7v1b59m7gh767hkd8a0r4p001nd24786fnmryygbxynd2s6"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags
-       (let ((out      (assoc-ref %outputs "out")))
-         (list (string-append "--sysconfdir="
-                              out "/etc")
-               (string-append "--with-dbus-sys-dir="
+       (let ((out (assoc-ref %outputs "out")))
+         (list (string-append "--with-dbus-sys-dir="
                               out "/etc/dbus-1/system.d")
-               "--localstatedir=/var"))))
+               "--localstatedir=/var"))
+       #:make-flags
+       (list "V=1")                     ; log build commands
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'bootstrap 'no-early-./configure
+           (lambda _
+             (setenv "NO_CONFIGURE" "yet")
+             ;; XXX thd_trip_point.h redefines "__STDC_LIMIT_MACROS" after
+             ;; <xz>/include/lzma.h.  ./configure forcibly appends -Werror
+             ;; to CXXFLAGS, overriding any -Wno-error we'd add.
+             (substitute* "configure.ac"
+               (("-Werror") ""))
+             #t)))))
     (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)))
     (inputs
      `(("dbus-glib" ,dbus-glib)
-       ("libxml2" ,libxml2)))
+       ("libevdev" ,libevdev)
+       ("libxml2" ,libxml2)
+       ("upower" ,upower)
+       ("xz" ,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
 on systems running the Linux kernel.")
     ;; arm and aarch64 don't have cpuid.h.
     (supported-systems '("i686-linux" "x86_64-linux"))
-    (license license:gpl2+)))
+    (license license:gpl2)))
 
 (define-public masscan
   (package
@@ -3462,9 +3500,9 @@ on systems running the Linux kernel.")
     (inputs
      `(("libpcap" ,libpcap)))
     (arguments
-     '(#:test-target "regress"
+     `(#:test-target "regress"
        #:make-flags
-       (list "CC=gcc"
+       (list (string-append "CC=" ,(cc-for-target))
              (string-append "PREFIX=" (assoc-ref %outputs "out")))
        #:phases
        (modify-phases %standard-phases
@@ -3592,7 +3630,7 @@ Python loading in HPC environments.")
   (let ((real-name "inxi"))
     (package
       (name "inxi-minimal")
-      (version "3.1.05-2")
+      (version "3.2.02-2")
       (source
        (origin
          (method git-fetch)
@@ -3601,7 +3639,7 @@ Python loading in HPC environments.")
                (commit version)))
          (file-name (git-file-name real-name version))
          (sha256
-          (base32 "1a7nl2wk49yz5hcrph692xh5phv1mdg1m5cbvgv3ya12c6r32pa2"))))
+          (base32 "0fwx798v9kwiwkgbj97w6rjdanwf7ap65vvq1fqy7gd9x78xcxsq"))))
       (build-system trivial-build-system)
       (inputs
        `(("bash" ,bash-minimal)
@@ -3694,6 +3732,8 @@ support forum.  It runs with the @code{/exec} command in most IRC clients.")
        ("perl-io-socket-ssl" ,perl-io-socket-ssl)
        ("perl-json-xs" ,perl-json-xs)
        ("perl-time-hires" ,perl-time-hires)
+       ("lvm2" ,lvm2)                   ; lvs
+       ("mdadm" ,mdadm)
        ;; TODO: Add more inputs:
        ;; ipmi-sensors
        ;; hddtemp
@@ -3771,26 +3811,20 @@ support forum.  It runs with the @code{/exec} command in most IRC clients.")
 (define-public solaar
   (package
     (name "solaar")
-    (version "0.9.2")
+    (version "1.0.4")
     (source (origin
               (method git-fetch)
               (uri (git-reference
-                    (url "https://github.com/pwr/Solaar")
+                    (url "https://github.com/pwr-Solaar/Solaar")
                     (commit version)))
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "085mfa13dap3wqik1dqlad0d7kff4rv7j4ljh99c7l8nhczkqgwm"))))
+                "15wzxxr2m5349kkvcs3k5clg1rsmvh6by2066qm4hlgvjwmigggy"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'fix-prefix-detection
-           (lambda _
-             (substitute* "setup.py"
-              (("'--prefix' in sys\\.argv")
-               "len([x.startswith('--prefix=') for x in sys.argv]) > 0"))
-             #t))
          (add-before 'build 'setenv-PATH
            (lambda _
              (setenv "PYTHONPATH" (string-append "lib:" (getenv "PYTHONPATH")))
@@ -3918,19 +3952,14 @@ tcpdump and snoop.")
 (define-public pam-mount
   (package
     (name "pam-mount")
-    (version "2.16")
+    (version "2.17")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://sourceforge/pam-mount/pam_mount/"
-                           version "/pam_mount-" version ".tar.xz"))
+                           "pam_mount-" version ".tar.xz"))
        (sha256
-        (base32
-         "1rvi4irb7ylsbhvx1cr6islm2xxw1a4b19q6z4a9864ndkm0f0mf"))
-       (patches
-        ;; Patch adding support for encrypted volumes in LUKS2 format.
-        ;; It comes from the Gentoo package definition for sys-auth/pam_mount.
-        (search-patches "pam-mount-luks2-support.patch"))))
+        (base32 "1q2n6a2ah6nghdn8i6ad2wj247njwb5nx48cggxknaa6lqxylidy"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("perl" ,perl)
@@ -3984,21 +4013,22 @@ supplied by the user when logging in.")
 (define-public jc
   (package
     (name "jc")
-    (version "1.11.8")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://github.com/kellyjonbrazil/jc")
-                    (commit (string-append "v" version))))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "0rkckbgm04ql4r48wjgljfiqvsz36n99yqcpcyna8lvlm8h4nmwa"))))
+    (version "1.13.4")
+    (source
+     (origin
+       ;; The PyPI tarball lacks the test suite.
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/kellyjonbrazil/jc")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0rwvyyrdnw43pixp8h51rncq2inc9pbbj1j2191y5si00pjw34zr"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-ruamel.yaml" ,python-ruamel.yaml)
-       ("python-xmltodict" ,python-xmltodict)
-       ("python-pygments" ,python-pygments)))
+     `(("python-pygments" ,python-pygments)
+       ("python-ruamel.yaml" ,python-ruamel.yaml)
+       ("python-xmltodict" ,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
@@ -4101,3 +4131,218 @@ the system configuration; hosts only works when using the Guix package manager
 on a foreign distro.  @command{hosts} works with existing hosts files and
 entries, providing commands to add, remove, comment, and search.")
     (license license:expat)))
+
+(define-public nmrpflash
+  (package
+    (name "nmrpflash")
+    (version "0.9.14")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/jclehner/nmrpflash")
+         (commit (string-append "v" version))))
+       (sha256
+        (base32 "1fdjrxhjs96rdclbkld57xarf592slhkp79h46z833npxpn12ck1"))
+       (file-name (git-file-name name version))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("libnl" ,libnl)
+       ("libpcap" ,libpcap)))
+    (arguments
+     `(#:tests? #f ; None exist
+       #:make-flags
+       (list (string-append "CC=" ,(cc-for-target))
+             (string-append "PREFIX=" (assoc-ref %outputs "out")))
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (add-before 'install 'prepare-install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (mkdir-p (string-append (assoc-ref outputs "out") "/bin"))
+             #t)))))
+    (home-page "https://github.com/jclehner/nmrpflash")
+    (synopsis "Netgear unbrick utility")
+    (description "This package provides a utility to flash a new firmware
+image to a Netgear device.  It has been tested on Netgear EX2700, EX6120,
+EX6150v2, DNG3700v2, R6100, R6220, R7000, D7000, WNR3500, R6400, R6800,
+R8000, R8500, WNDR3800, but is likely to be compatible with many other
+Netgear devices.")
+    (license license:gpl3+)))
+
+(define-public atop
+  (package
+    (name "atop")
+    (version "2.5.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://www.atoptool.nl/download/atop-"
+                                  version ".tar.gz"))
+              (sha256
+               (base32
+                "0crzz4i2nabyh7d6xg7fvl65qls87nbca5ihidp3nijhrrbi14ab"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f ; no test suite
+       #:make-flags
+       (list (string-append "CC=" ,(cc-for-target))
+             ;; The installer requires a choice between systemd or SysV.
+             "systemdinstall"
+             (string-append "DESTDIR=" (assoc-ref %outputs "out"))
+             (string-append "BINPATH=/bin")
+             (string-append "SBINPATH=/sbin")
+             (string-append "SYSDPATH=/etc/systemd/system")
+             (string-append "PMPATHD=/etc/systemd/system-sleep")
+             (string-append "MAN1PATH=/share/man/man1")
+             (string-append "MAN5PATH=/share/man/man5")
+             (string-append "MAN8PATH=/share/man/man8")
+             ;; Or else it tries to create /var/log/atop...
+             (string-append "LOGPATH="))
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure) ; No ./configure script
+         (add-before 'build 'patch-build
+           (lambda* (#:key outputs #:allow-other-keys)
+             (substitute* "Makefile"
+               ;; We don't need to chown things in the build environment.
+               (("chown.*$") "")
+               ;; We can't toggle the setuid bit in the build environment.
+               (("chmod 04711") "chmod 0711")
+               ;; Otherwise, it creates a blank configuration file as a "default".
+               (("touch.*DEFPATH)/atop") "")
+               (("chmod.*DEFPATH)/atop") ""))
+             #t)))))
+    (inputs
+     `(("ncurses" ,ncurses)
+       ("python" ,python-wrapper) ; for `atopgpud`
+       ("zlib" ,zlib)))
+    (home-page "https://www.atoptool.nl/")
+    (synopsis "Linux performance monitoring console")
+    (description "Atop is an ASCII full-screen performance monitor for Linux
+that is capable of reporting the activity of all processes (even processes have
+finished during the monitoring interval), daily logging of system and process
+activity for long-term analysis, highlighting overloaded system resources by
+using colors, etc.  At regular intervals, it shows system-level activity related
+to the CPU, memory, swap, disks (including LVM) and network layers, and for
+every process (and thread) it shows e.g. the CPU utilization, memory growth,
+disk utilization, priority, username, state, and exit code.")
+    (license license:gpl2+)))
+
+;; TODO: Unvendor u-root (pkg: forth, golang, testutil).
+(define fiano
+  (package
+    (name "fiano")
+    (version "5.0.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/linuxboot/fiano.git")
+                    (commit (string-append "v" version))))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32
+                "03ihdwwhb7g6bihx141cn0924sjs5ps6q3ps58pk1cg0g0srrr9h"))
+              (modules '((guix build utils)))
+              (snippet
+               '(begin
+                  (delete-file-recursively "vendor/golang.org")
+                  (delete-file-recursively "vendor/github.com")
+                  #t))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "github.com/linuxboot/fiano"
+       #:unpack-path "github.com/linuxboot/fiano"))
+    (native-inputs
+     `())
+    (inputs
+     `(("go-golang-org-x-text" ,go-golang-org-x-text)
+       ("go-github.com-ulikunitz-xz" ,go-github.com-ulikunitz-xz)))
+    (synopsis "UEFI image editor")
+    (description "This package provides a command-line UEFI image editor.")
+    (home-page "https://github.com/linuxboot/fiano")
+    (license license:bsd-3)))
+
+(define-public fiano-utk
+  (package
+    (inherit fiano)
+    (name "fiano-utk")
+    (arguments
+     `(#:import-path "github.com/linuxboot/fiano/cmds/utk"
+       #:unpack-path "github.com/linuxboot/fiano"))))
+
+(define-public fiano-fmap
+  (package
+    (inherit fiano)
+    (name "fiano-fmap")
+    (arguments
+     `(#:import-path "github.com/linuxboot/fiano/cmds/fmap"
+       #:unpack-path "github.com/linuxboot/fiano"))))
+
+(define-public novena-eeprom
+  (package
+    (name "novena-eeprom")
+    (version "2.3")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/xobs/novena-eeprom.git")
+                    (commit (string-append "v" version))))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32
+                "00pd71mg0g20v0820ggp3ghf9nyj5s4wavaz9mkmrmsr91hcnf7i"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f   ; No tests exist
+       #:make-flags
+       (list (string-append "CC=" ,(cc-for-target)))
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (out-bin (string-append out "/bin"))
+                    (out-share-man (string-append out "/share/man/man8")))
+               (install-file "novena-eeprom" out-bin)
+               (install-file "novena-eeprom.8" out-share-man)))))))
+    (inputs
+     `(("i2c-tools" ,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
+various parameters such as serial number, MAC address, and featureset.
+This program allows you to view and manipulate this EEPROM list.")
+    (home-page "https://github.com/xobs/novena-eeprom/")
+    (supported-systems '("armhf-linux"))
+    (license license:bsd-3)))
+
+(define-public lrzsz
+  (package
+    (name "lrzsz")
+    (version "0.12.20")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://www.ohse.de/uwe/releases/lrzsz-"
+                                  version ".tar.gz"))
+              (sha256
+               (base32
+                "1wcgfa9fsigf1gri74gq0pa7pyajk12m4z69x7ci9c6x9fqkd2y2"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'configure
+           (lambda* (#:key outputs #:allow-other-keys)
+             (setenv "CONFIG_SHELL" (which "bash"))
+             (invoke "./configure"
+              (string-append "--prefix="
+                             (assoc-ref outputs "out"))))))))
+    (synopsis "Implementation of XMODEM/YMODEM/ZMODEM transfer protocols")
+    (description "This package provides programs that transfer files using
+the XMODEM/YMODEM/ZMODEM file transfer protocols.")
+    (home-page "https://ohse.de/uwe/software/lrzsz.html")
+    (license license:gpl2+)))
diff --git a/gnu/packages/agda.scm b/gnu/packages/agda.scm
index 98768c668a..7b0cdd0d89 100644
--- a/gnu/packages/agda.scm
+++ b/gnu/packages/agda.scm
@@ -79,6 +79,11 @@
                   (ice-9 match))
        #:phases
        (modify-phases %standard-phases
+         ;; 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
@@ -90,30 +95,25 @@
                      #: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)))
+                    (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)
diff --git a/gnu/packages/aidc.scm b/gnu/packages/aidc.scm
index 944ea048bf..6628a8ead3 100644
--- a/gnu/packages/aidc.scm
+++ b/gnu/packages/aidc.scm
@@ -28,6 +28,7 @@
   #:use-module (guix download)
   #:use-module (guix git-download)
   #:use-module (gnu packages autotools)
+  #:use-module (gnu packages check)
   #:use-module (gnu packages imagemagick)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gtk)
@@ -37,8 +38,52 @@
   #:use-module (gnu packages python-xyz)
   #: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
+    (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)))
 
 (define-public barcode
   (package
diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm
index 2fca9ec86c..4699f766b5 100644
--- a/gnu/packages/algebra.scm
+++ b/gnu/packages/algebra.scm
@@ -1,10 +1,10 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Andreas Enge <andreas@enge.fr>
-;;; Copyright © 2013, 2015, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
-;;; Copyright © 2016, 2017, 2018, 2019, 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;; Copyright © 2013, 2015, 2017, 2018, 2021 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;; Copyright © 2014, 2018 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2016, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
-;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2017, 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2017, 2019 Eric Bavier <bavier@member.fsf.org>
@@ -48,6 +48,7 @@
   #:use-module (gnu packages maths)
   #:use-module (gnu packages mpi)
   #:use-module (gnu packages multiprecision)
+  #:use-module (gnu packages ocaml)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages pulseaudio)
@@ -74,7 +75,7 @@
 (define-public mpfrcx
   (package
    (name "mpfrcx")
-   (version "0.5")
+   (version "0.6")
    (source (origin
             (method url-fetch)
             (uri (string-append
@@ -82,7 +83,7 @@
                   version ".tar.gz"))
             (sha256
              (base32
-              "1s968480ymv6w0rnvfp9mxvx98hvi29fkvw8nk4ggzc6azxgwybs"))))
+              "0gz5rma9al2jrifpknqkcnd9dkf8l05jcxy3s4ghwhd4y3h5dwia"))))
    (build-system gnu-build-system)
    (propagated-inputs
      `(("gmp" ,gmp)
@@ -123,15 +124,15 @@ greatest common divisor operations.")
 (define-public cm
   (package
    (name "cm")
-   (version "0.3")
+   (version "0.3.1")
    (source (origin
             (method url-fetch)
             (uri (string-append
-                  "http://www.multiprecision.org/cm/download/cm-"
+                  "http://www.multiprecision.org/downloads/cm-"
                   version ".tar.gz"))
             (sha256
              (base32
-              "1nf5kr0nqmhbzrsrinky18z0ighjpsmb5cr8zyg8jf04bfbyrfmc"))))
+              "0qq6b1kwb1byj8ws33ya5awq0ilkpm32037pi1l4cf2737fg9m42"))))
    (build-system gnu-build-system)
    (propagated-inputs
      `(("mpfrcx" ,mpfrcx)
@@ -151,7 +152,7 @@ line applications.")
 (define-public fplll
   (package
     (name "fplll")
-    (version "5.2.1")
+    (version "5.3.3")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -160,13 +161,15 @@ line applications.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "015qmrd7nfaysbv1hbwiprz9g6hnww1y1z1xw8f43ysb7k1b5nbg"))))
+                "06nyfidagp8pc2kfcw88ldgb2b1xm0a8z31n0sln7j72ihlmd8zj"))
+              (patches (search-patches "fplll-std-fenv.patch"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("autoconf" ,autoconf)
        ("automake" ,automake)
-       ("libtool" ,libtool)))
-    (inputs
+       ("libtool" ,libtool)
+       ("pkg-config" ,pkg-config)))
+    (propagated-inputs ; header files pulled in by fplll/defs.h
      `(("gmp" ,gmp)
        ("mpfr" ,mpfr)))
     (home-page "https://github.com/fplll/fplll")
@@ -198,7 +201,7 @@ the real span of the lattice.")
 (define-public python-fpylll
   (package
     (name "python-fpylll")
-    (version "0.4.1")
+    (version "0.5.2")
     (source
      (origin
        ;; Pypi contains and older release, so we use a tagged release from
@@ -210,7 +213,7 @@ the real span of the lattice.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "01x2sqdv0sbjj4g4waj0hj4rcn4bq7h17442xaqwbznym9azmn9w"))))
+         "1a25iibihph626jl4wbs4b77xc4a2c4nfc2ypscf9wpani3dnhjf"))))
     (build-system python-build-system)
     (inputs
      `(("fplll" ,fplll)
@@ -231,7 +234,7 @@ the real span of the lattice.")
 (define-public pari-gp
   (package
     (name "pari-gp")
-    (version "2.11.4")
+    (version "2.13.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -239,7 +242,7 @@ the real span of the lattice.")
                     version ".tar.gz"))
               (sha256
                (base32
-                "070bjw4kg7r6lqs1hfs08n5fmjv90cpwflp3wr04hbrmyz28zj5z"))))
+                "14xs90wrw8mbdx08hxlbhiahp6kgjq6yh27zjw7fvhfjx5nr84f8"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("texlive" ,(texlive-union
@@ -273,7 +276,7 @@ PARI is also available as a C library to allow for faster computations.")
 (define-public gp2c
   (package
    (name "gp2c")
-   (version "0.0.11pl4")
+   (version "0.0.12")
    (source (origin
             (method url-fetch)
             (uri (string-append
@@ -281,7 +284,7 @@ PARI is also available as a C library to allow for faster computations.")
                   version ".tar.gz"))
             (sha256
               (base32
-                "1cnnh7diqc97q76q5pyhpbljbhc0sz8mlrbqgiwi0sjkgh8iqsj0"))))
+                "039ip7qkwwv46wrcdrz7y12m30kazzkjr44kqbc0h137g4wzd7zf"))))
    (build-system gnu-build-system)
    (native-inputs `(("perl" ,perl)))
    (inputs `(("pari-gp" ,pari-gp)))
@@ -324,9 +327,9 @@ GP2C, the GP to C compiler, translates GP scripts to PARI programs.")
    (version "1.0")
    (source (origin
             (method url-fetch)
-            (uri (string-append
-                  "https://gforge.inria.fr/frs/download.php/33497/cmh-"
-                  version ".tar.gz"))
+            ;; Git repo at <https://gitlab.inria.fr/cmh/cmh>.
+            (uri (string-append "http://www.multiprecision.org/downloads/cmh-"
+                                version ".tar.gz"))
             (sha256
              (base32
               "1a28xr9bs0igms0ik99x0w8lnb0jyfcmvyi26pbyh9ggcdivd33p"))))
@@ -346,12 +349,12 @@ varieties, i.e. Jacobians of hyperelliptic curves.
 It can also be used to compute theta constants at arbitrary
 precision.")
    (license license:gpl3+)
-   (home-page "http://cmh.gforge.inria.fr/")))
+   (home-page "http://www.multiprecision.org/cmh/home.html")))
 
 (define-public giac
   (package
     (name "giac")
-    (version "1.6.0-7")
+    (version "1.6.0-47")
     (source
      (origin
        (method url-fetch)
@@ -363,7 +366,7 @@ precision.")
                            "~parisse/debian/dists/stable/main/source/"
                            "giac_" version ".tar.gz"))
        (sha256
-        (base32 "1pvgp137zcl0rbhdn1j41xxfml7fp771a7x4ph8qrhhlx0hxzn3p"))))
+        (base32 "15sgsr8l6njp5spagbqclqkdy3x7ra23wi6wvpc8vzlbivy3v43k"))))
     (build-system gnu-build-system)
     (arguments
      `(#:modules ((ice-9 ftw)
@@ -374,7 +377,8 @@ precision.")
          (add-after 'unpack 'patch-bin-cp
            ;; Some Makefiles contain hard-coded "/bin/cp".
            (lambda _
-             (substitute* (find-files "doc" "^Makefile")
+             (substitute* (cons "micropython-1.12/xcas/Makefile"
+                                (find-files "doc" "^Makefile"))
                (("/bin/cp") (which "cp")))
              #t))
          (add-after 'unpack 'disable-failing-test
@@ -403,9 +407,9 @@ precision.")
                (delete-file (string-append out "/bin/xcasnew"))
                #t))))))
     (inputs
-;;; TODO: Add libnauty.
+     ;; TODO: Add libnauty, unbundle "libmicropython.a".
      `(("fltk" ,fltk)
-       ("glpk" ,glpk)
+       ("glpk" ,glpk-4)
        ("gmp" ,gmp)
        ("gsl" ,gsl)
        ("lapack" ,lapack)
@@ -427,6 +431,8 @@ precision.")
     (native-inputs
      `(("bison" ,bison)
        ("flex" ,flex)
+       ("hevea" ,hevea)
+       ("python" ,python-wrapper)
        ("readline" ,readline)
        ("texlive" ,texlive-tiny)))
     (home-page "https://www-fourier.ujf-grenoble.fr/~parisse/giac.html")
@@ -440,15 +446,13 @@ or text interfaces) or as a C++ library.")
 (define-public flint
   (package
    (name "flint")
-   ;; When updating this package, change its licence to lgpl2.1+.
-   ;; https://github.com/wbhart/flint2/issues/812
-   (version "2.6.2")
+   (version "2.6.3")
    (source
     (origin
       (method url-fetch)
       (uri (string-append "http://flintlib.org/flint-" version ".tar.gz"))
       (sha256
-       (base32 "1np1p8dx4g3jnlfr1sxmi1jdk2pb57crskm0ch2w2l1v7h8lb6sz"))))
+       (base32 "1qrf6hzbbmg7mhkhbb0bab8z2xpdnba5cj4kmmf72lzs0457a6nf"))))
    (build-system gnu-build-system)
    (inputs
     `(("ntl" ,ntl)))
@@ -490,7 +494,7 @@ Operations that can be performed include conversions, arithmetic,
 GCDs, factoring, solving linear systems, and evaluating special
 functions.  In addition, FLINT provides various low-level routines for
 fast arithmetic.")
-   (license license:gpl2+)
+   (license license:lgpl2.1+)
    (home-page "http://flintlib.org/")))
 
 (define-public arb
@@ -528,14 +532,14 @@ fast arithmetic.")
                        (string-append "--with-flint=" flint)
                        (string-append "--with-gmp=" gmp)
                        (string-append "--with-mpfr=" mpfr))))))))
+    (home-page "https://arblib.org")
     (synopsis "Arbitrary precision floating-point ball arithmetic")
     (description
      "Arb is a C library for arbitrary-precision floating-point ball
 arithmetic.  It supports efficient high-precision computation with
 polynomials, power series, matrices and special functions over the
 real and complex numbers, with automatic, rigorous error control.")
-    (license license:lgpl2.1+)
-    (home-page "http://arblib.org")))
+    (license license:lgpl2.1+)))
 
 (define-public python-flint
   (package
@@ -669,9 +673,11 @@ geometry and singularity theory.")
    (version "7.0.4")
    (source (origin
              (method url-fetch)
-             ;; Use the ‘Latest version’ link for a stable URI across releases.
-             (uri (string-append "https://gforge.inria.fr/frs/download.php/"
-                                 "latestfile/160/ecm-" version ".tar.gz"))
+             (uri
+               (let ((hash "00c4c691a1ef8605b65bdf794a71539d"))
+                    (string-append "https://gitlab.inria.fr/zimmerma/ecm/"
+                                   "uploads/" hash "/ecm-" version
+                                   ".tar.gz")))
              (sha256 (base32
                       "0hxs24c2m3mh0nq1zz63z3sb7dhy1rilg2s1igwwcb26x3pb7xqc"))))
    (build-system gnu-build-system)
@@ -1000,16 +1006,20 @@ Optional thin wrappers allow usage of the library from other languages.")
 (define-public eigen
   (package
     (name "eigen")
-    (version "3.3.7")
+    (version "3.3.8")
     (source (origin
               (method url-fetch)
-              (uri (string-append "https://bitbucket.org/eigen/eigen/get/"
-                                  version ".tar.bz2"))
+              (uri (list
+                     (string-append "https://bitbucket.org/eigen/eigen/get/"
+                                    version ".tar.bz2")
+                     (string-append "mirror://debian/pool/main/e/eigen3/eigen3_"
+                                    version ".orig.tar.bz2")))
               (sha256
                (base32
-                "1km3fyfzyqfdvmnl79drps3fjwnz3zbh0c7l34mfbqyvvs8cy4wz"))
+                "1vxrsncfnkyq6gwxpsannpryp12mk7lc8f42ybvz3saf7icwc582"))
               (file-name (string-append name "-" version ".tar.bz2"))
-              (patches (search-patches "eigen-stabilise-sparseqr-test.patch"))
+              (patches (search-patches "eigen-remove-openmp-error-counting.patch"
+                                       "eigen-stabilise-sparseqr-test.patch"))
               (modules '((guix build utils)))
               (snippet
                ;; There are 3 test failures in the "unsupported" directory,
@@ -1084,7 +1094,7 @@ features, and more.")
     (source (origin
               (method git-fetch)
               (uri (git-reference
-                    (url "https://github.com/QuantStack/xtensor")
+                    (url "https://github.com/xtensor-stack/xtensor")
                     (commit version)))
               (sha256
                (base32
@@ -1098,7 +1108,7 @@ features, and more.")
      `(#:configure-flags
        '("-DBUILD_TESTS=ON")
        #:test-target "xtest"))
-    (home-page "https://quantstack.net/xtensor")
+    (home-page "https://xtensor.readthedocs.io/en/latest/")
     (synopsis "C++ tensors with broadcasting and lazy computing")
     (description "xtensor is a C++ library meant for numerical analysis with
 multi-dimensional array expressions.
@@ -1114,17 +1124,17 @@ xtensor provides:
 (define-public gap
   (package
     (name "gap")
-    (version "4.10.2")
+    (version "4.11.0")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "https://www.gap-system.org/pub/gap/gap-"
+       (uri (string-append "https://files.gap-system.org/gap-"
                            (version-major+minor version)
                            "/tar.bz2/gap-"
                            version
                            ".tar.bz2"))
        (sha256
-        (base32 "0cp6ddk0469zzv1m1vair6gm27ic6c5m77ri8rn0znq3gaps6x94"))
+        (base32 "00l6hvy4iggnlrib4vp805sxdm3j7n3hzpv5zs9hbiiavh80l1xz"))
        (modules '((guix build utils) (ice-9 ftw) (srfi srfi-1)))
        (snippet
         '(begin
@@ -1136,41 +1146,46 @@ xtensor provides:
            ;; FIXME: This might be fixed in the next release, see
            ;; https://github.com/gap-system/gap/issues/3292
            (delete-file "tst/testinstall/dir.tst")
-           ;; Delete all packages except for a fixed list.
+           ;; Delete all packages except for a fixed list,
+           ;; given by their names up to version numbers.
            (with-directory-excursion "pkg"
              (for-each delete-file-recursively
-               (lset-difference string=? (scandir ".")
+               (lset-difference
+                 (lambda (all keep) (string-prefix? keep all))
+                 (scandir ".")
                  '("." ".."
                    ;; Necessary packages.
-                   "GAPDoc-1.6.2"
-                   "primgrp-3.3.2"
-                   "SmallGrp-1.3"    ; artistic2.0
-                   "transgrp"        ; artistic2.0 for data,
-                                     ; gpl2 or gpl3 for code
-                   ;; Recommanded package.
-                   "io-4.5.4"        ; gpl3+
+                   "GAPDoc-"
+                   "primgrp-"
+                   "SmallGrp-"   ; artistic2.0
+                   "transgrp"    ; artistic2.0 for data,
+                                 ; gpl2 or gpl3 for code
+                   ;; Recommended package.
+                   "io-"         ; gpl3+
                    ;; Optional packages, searched for at start,
                    ;; and their depedencies.
-                   "alnuth-3.1.0"
-                   "autpgrp-1.10"
-                   "crisp-1.4.4"     ; bsd-2
-                   "ctbllib"       ; gpl3+ according to doc/chap0.txt
-                   "FactInt-1.6.2"
+                   "alnuth-"
+                   "autpgrp-"
+                   "crisp-"      ; bsd-2
+                   "ctbllib"     ; gpl3+, clarified in the next release;
+                                 ; see
+                                 ; http://www.math.rwth-aachen.de/~Thomas.Breuer/ctbllib/README.md
+                   "FactInt-"
                    "fga"
-                   "irredsol-1.4"    ; bsd-2
-                   "laguna-3.9.2"
-                   "polenta-1.3.8"
-                   "polycyclic-2.14"
-                   "radiroot-2.8"
-                   "resclasses-4.7.1"
-                   "sophus-1.24"
-                   "tomlib-1.2.7"  ; gpl2+, clarified in the git repository
-                                   ; and the next release
-                   "utils-0.59"))))
+                   "irredsol-"   ; bsd-2
+                   "laguna-"
+                   "polenta-"
+                   "polycyclic-"
+                   "radiroot-"
+                   "resclasses-"
+                   "sophus-"
+                   "tomlib-"
+                   "utils-"))))
            #t))))
     (build-system gnu-build-system)
     (inputs
      `(("gmp" ,gmp)
+       ("readline" ,readline)
        ("zlib" ,zlib)))
     (arguments
      `(#:modules ((ice-9 ftw)
@@ -1197,15 +1212,14 @@ xtensor provides:
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
                     (bin (string-append out "/bin"))
-                    (lib (string-append out "/lib"))
                     (prog (string-append bin "/gap"))
                     (prog-real (string-append bin "/.gap-real"))
-                    (share (string-append out "/share/gap"))
-                    (include (string-append out "/include/gap"))
-                    (include-hpc (string-append include "/hpc")))
+                    (share (string-append out "/share/gap")))
                ;; Install only the gap binary; the gac compiler is left
                ;; for maybe later. "Wrap" it in a shell script that calls
                ;; the binary with the correct parameter.
+               ;; The make target install-bin is supposed to do that, but
+               ;; is not currently working.
                (mkdir-p bin)
                (copy-file "gap" prog-real)
                (call-with-output-file prog
@@ -1216,52 +1230,18 @@ xtensor provides:
                            prog-real
                            share)))
                (chmod prog #o755)
-               ;; Install the headers, which are needed by Sage. The
-               ;; Makefile target "install-headers" was available in
-               ;; gap-4.10.0, but has been commented out in gap-4.10.1.
-               (mkdir-p include-hpc)
-               (install-file "gen/config.h" include)
-               (let ((file-name-predicate-without-stat
-                       (lambda (regex)
-                         (cut (file-name-predicate regex) <> #f))))
-                 (with-directory-excursion "src"
-                   (for-each
-                     (cut install-file <> include)
-                     (scandir "."
-                              (file-name-predicate-without-stat ".*\\.h$"))))
-                 (with-directory-excursion "src/hpc"
-                   (for-each
-                     (cut install-file <> include-hpc)
-                     (scandir "."
-                              (file-name-predicate-without-stat ".*\\.h$")))))
-               ;; Install the library, which is needed by Sage. The
-               ;; Makefile target "install-libgap" was available in
-               ;; gap-4.10.0, but has been commented out in gap-4.10.1.
-               ;; Compared to the Makefile, which used libtool, the
-               ;; following approach of copying files and making symlinks
-               ;; is rather pedestrian. There is hope that some later
-               ;; version of gap reinstates and completes the install
-               ;; targets.
-               (invoke "make" "libgap.la")
-               (install-file "libgap.la" lib)
-               (install-file ".libs/libgap.so.0.0.0" lib)
-               (symlink "libgap.so.0.0.0" (string-append lib "/libgap.so")) 
-               (symlink "libgap.so.0.0.0" (string-append lib "/libgap.so.0"))
-               ;; Install a certain number of files and directories to
-               ;; SHARE, where the wrapped shell script expects them.
+               ;; Install the headers and library, which are needed by Sage.
+               (invoke "make" "install-headers")
+               (invoke "make" "install-libgap")
                ;; Remove information on the build directory from sysinfo.gap.
                (substitute* "sysinfo.gap"
                  (("GAP_BIN_DIR=\".*\"") "GAP_BIN_DIR=\"\"")
                  (("GAP_LIB_DIR=\".*\"") "GAP_LIB_DIR=\"\"")
                  (("GAP_CPPFLAGS=\".*\"") "GAP_CPPFLAGS=\"\""))
-               (install-file "sysinfo.gap" share)
-               (copy-recursively "grp" (string-append share "/grp"))
-               (copy-recursively "pkg" (string-append share "/pkg"))
-               ;; The following is not the C library libgap.so, but a
-               ;; library of GAP code.
-               (copy-recursively "lib" (string-append share "/lib"))
-               ;; The gap binary looks for documentation inside SHARE.
-               (copy-recursively "doc" (string-append share "/doc")))
+               (invoke "make" "install-gaproot")
+               ;; Copy the directory of compiled packages; the make target
+               ;; install-pkg is currently empty.
+               (copy-recursively "pkg" (string-append share "/pkg")))
              #t)))))
     (home-page "https://www.gap-system.org/")
     (synopsis
@@ -1580,7 +1560,7 @@ structure constants of Schubert polynomials.")
          "0akwhhz9b40bz6lrfxpamp7r7wkk48p455qbn04mfnl9a1l6db8x"))))
     (build-system gnu-build-system)
     (inputs
-     `(("gmp", gmp)
+     `(("gmp" ,gmp)
        ("cblas" ,openblas))) ; or any other BLAS library; the documentation
                              ; mentions ATLAS in particular
     (arguments
diff --git a/gnu/packages/android.scm b/gnu/packages/android.scm
index 3c3a9cd594..eb538f6540 100644
--- a/gnu/packages/android.scm
+++ b/gnu/packages/android.scm
@@ -7,9 +7,10 @@
 ;;; Copyright © 2017 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2019 Andreas Enge <andreas@enge.fr>
+;;; 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>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -30,8 +31,9 @@
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix git-download)
-  #:use-module (guix build-system gnu)
   #:use-module (guix build-system android-ndk)
+  #:use-module (guix build-system gnu)
+  #:use-module (guix build-system go)
   #:use-module (guix build-system python)
   #:use-module (guix build-system trivial)
   #:use-module ((guix licenses) #:prefix license:)
@@ -41,6 +43,7 @@
   #:use-module (gnu packages docker)
   #:use-module (gnu packages gcc)
   #:use-module (gnu packages gnupg)
+  #:use-module (gnu packages golang)
   #:use-module (gnu packages java)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages pcre)
@@ -916,14 +919,14 @@ useful for reverse engineering, analysis of Android applications and more.")
 (define-public fdroidserver
   (package
     (name "fdroidserver")
-    (version "1.1.1")
+    (version "1.1.9")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "fdroidserver" version))
         (sha256
          (base32
-          "0fp7q8faicx6i6wxm717qqaham3jpilb23mvynpz6v73z7hm6wcg"))))
+          "0m07f791z45w7r2dzx4yb6s54b3c3wykm3w9hn25p2jcyax082a2"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -931,14 +934,20 @@ useful for reverse engineering, analysis of Android applications and more.")
          (add-after 'unpack 'fix-versioning
            (lambda _
              (substitute* "setup.py"
-               (("0.2.1") ,(package-version python-pyasn1-modules)))
+               (("0.2.1") ,(package-version python-pyasn1-modules))
+               ;; The dependency on docker has been removed upstream by
+               ;; a fairly large patch:
+               ;; https://gitlab.com/fdroid/fdroidserver/-/commit/89614851250c79a05db84070feca6dea033af334
+               ;; that is not in a release yet. It appears we can compile with
+               ;; a newer version.
+               (("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-py" ,python-docker-py)
+       ("python-docker" ,python-docker)
        ("python-gitpython" ,python-gitpython)
        ("python-mwclient" ,python-mwclient)
        ("python-paramiko" ,python-paramiko)
@@ -966,6 +975,36 @@ publishing, or to assist in creating, testing and submitting metadata to the
 main repository.")
     (license license:agpl3+)))
 
+(define-public fdroidcl
+  (package
+    (name "fdroidcl")
+    (version "0.5.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/mvdan/fdroidcl")
+                     (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32 "1rxcdyy2j34z0ql9d62w7ivsch9xihjnpb1z9kgy9q46vl8zhhy0"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "mvdan.cc/fdroidcl"
+       #:tests? #f  ; TODO: Inputs missing.
+       #:install-source? #f))
+    (inputs
+     `(("go-github-com-kr-pretty" ,go-github-com-kr-pretty)))
+    ;(native-inputs
+    ; `(("go-github-com-rogpeppe-go-internal-testscript"
+    ;    ,go-github-com-rogpeppe-go-internal-testscript)))
+    (synopsis "F-Droid desktop client")
+    (description
+     "While the Android client integrates with the system with regular update
+checks and notifications, this is a simple command line client that talks to
+connected devices via ADB.")
+    (home-page "https://github.com/mvdan/fdroidcl")
+    (license license:bsd-3)))
+
 (define-public enjarify
   (package
     (name "enjarify")
diff --git a/gnu/packages/animation.scm b/gnu/packages/animation.scm
index 3176a1237a..6bfe8f0a12 100644
--- a/gnu/packages/animation.scm
+++ b/gnu/packages/animation.scm
@@ -2,6 +2,7 @@
 ;;; Copyright © 2015, 2017 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2019 Pkill -9 <pkill9@runbox.com>
+;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -27,19 +28,30 @@
   #:use-module (guix build-system gnu)
   #:use-module (gnu packages)
   #:use-module (gnu packages algebra)
+  #:use-module (gnu packages autotools)
   #:use-module (gnu packages boost)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages curl)
+  #:use-module (gnu packages dejagnu)
   #:use-module (gnu packages fontutils)
+  #:use-module (gnu packages gettext)
+  #:use-module (gnu packages gl)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages graphics)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages image)
   #:use-module (gnu packages imagemagick)
+  #:use-module (gnu packages jemalloc)
+  #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages pulseaudio)
+  #:use-module (gnu packages python)
   #:use-module (gnu packages qt)
-  #:use-module (gnu packages video))
+  #:use-module (gnu packages sdl)
+  #:use-module (gnu packages tls)
+  #:use-module (gnu packages video)
+  #:use-module (gnu packages xiph))
 
 ;; ETL, synfig, and Synfig Studio are updated in tandem.
 (define synfig-version "1.2.2")
@@ -192,6 +204,89 @@ need for tweening, preventing the need to hand-draw each frame.  This package
 contains the graphical user interface for synfig.")
     (license license:gpl3+)))
 
+;; This package provides a standalone (no browser plugin) version of Gnash.
+(define-public gnash
+  ;; The last tagged release of Gnash was in 2013.
+  (let ((commit "583ccbc1275c7701dc4843ec12142ff86bb305b4")
+        (revision "0"))
+    (package
+      (name "gnash")
+      (version (git-version "0.8.11" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://git.savannah.gnu.org/git/gnash.git/")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (patches (search-patches "gnash-fix-giflib-version.patch"))
+         (sha256
+          (base32 "0fh0bljn0i6ypyh6l99afi855p7ki7lm869nq1qj6k8hrrwhmfry"))))
+      (build-system gnu-build-system)
+      (arguments
+       `(#:configure-flags
+         (list "--disable-static"
+               ;; Plugins are based on XULRunner and NPAPI only.  Disable.
+               "--disable-plugins"
+               "--enable-gui=gtk"
+               "--enable-media=ffmpeg"
+               (string-append "--with-boost-incl="
+                              (assoc-ref %build-inputs "boost") "/include")
+               (string-append "--with-boost-lib="
+                              (assoc-ref %build-inputs "boost") "/lib")
+               (string-append "--with-ffmpeg-incl="
+                              (assoc-ref %build-inputs "ffmpeg")
+                              "/include/libavcodec")
+               (string-append "--with-speex-incl="
+                              (assoc-ref %build-inputs "speex") "/include")
+               (string-append "--with-jemalloc-incl="
+                              (assoc-ref %build-inputs "jemalloc")
+                              "/include/jemalloc")
+               (string-append "--with-speex-lib="
+                              (assoc-ref %build-inputs "speex") "/lib")
+               (string-append "--with-jpeg-incl="
+                              (assoc-ref %build-inputs "libjpeg") "/include")
+               (string-append "--with-zlib-incl="
+                              (assoc-ref %build-inputs "zlib") "/include")
+               (string-append "--with-png-incl="
+                              (assoc-ref %build-inputs "libpng")
+                              "/include"))))
+      (native-inputs
+       `(("autoconf" ,autoconf)
+         ("automake" ,automake)
+         ("dejagnu" ,dejagnu) ;for tests
+         ("gettext" ,gettext-minimal)
+         ("libtool" ,libtool)
+         ("perl" ,perl)
+         ("pkg-config" ,pkg-config)
+         ("python" ,python-wrapper)))
+      (inputs
+       `(("agg" ,agg)
+         ("atk" ,atk)
+         ("boost" ,boost)
+         ("curl" ,curl)
+         ("ffmpeg" ,ffmpeg-2.8)
+         ("freeglut" ,freeglut)
+         ("gconf" ,gconf)
+         ("giflib" ,giflib)
+         ("glib" ,glib)
+         ("gtk+" ,gtk+-2)
+         ("gtkglext" ,gtkglext)
+         ("jemalloc" ,jemalloc)
+         ("libjpeg" ,libjpeg-turbo)
+         ("libltdl" ,libltdl)
+         ("libpng" ,libpng)
+         ("pangox-compat" ,pangox-compat)
+         ("sdl" ,sdl)
+         ("speex" ,speex)))
+      (synopsis "Flash movie player")
+      (description
+       "Gnash is a Flash movie player.  It supports SWF version v7 and some
+of v8 and v9.  It is possible to configure Gnash to use several different
+audio or video backends, ensuring good performance.")
+      (home-page "https://www.gnu.org/software/gnash/")
+      (license license:gpl3+))))
+
 (define-public papagayo
   (let ((commit "e143684b30e59fe4a554f965cb655d23cbe93ee7")
         (revision "1"))
diff --git a/gnu/packages/antivirus.scm b/gnu/packages/antivirus.scm
index c7bf911ae7..fa62173572 100644
--- a/gnu/packages/antivirus.scm
+++ b/gnu/packages/antivirus.scm
@@ -44,14 +44,14 @@
 (define-public clamav
   (package
     (name "clamav")
-    (version "0.102.4")
+    (version "0.103.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://www.clamav.net/downloads/production/"
                                   "clamav-" version ".tar.gz"))
               (sha256
                (base32
-                "06rrzyrhnr0rswryijpbbzywr6387rv8qjq8sb8cl3h2d1m45ggf"))
+                "0ih5x1rscg2m64y0z20njj7435q8k7ss575cfw7aipdzfx979a9j"))
               (modules '((guix build utils)))
               (snippet
                '(begin
diff --git a/gnu/packages/aspell.scm b/gnu/packages/aspell.scm
index 22256f750b..26c0cf4332 100644
--- a/gnu/packages/aspell.scm
+++ b/gnu/packages/aspell.scm
@@ -2,13 +2,16 @@
 ;;; Copyright © 2013, 2014, 2015, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2015, 2016 Alex Kost <alezost@gmail.com>
 ;;; Copyright © 2016 John Darrington <jmd@gnu.org>
-;;; Copyright © 2016, 2017, 2019 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2017, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016 Christopher Andersson <christopher@8bits.nu>
 ;;; Copyright © 2016 Theodoros Foradis <theodoros@foradis.org>
-;;; Copyright © 2016, 2017, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2016, 2017, 2019, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2019 Jens Mølgaard <jens@zete.tk>
 ;;; Copyright © 2020 Timotej Lazar <timotej.lazar@araneo.si>
 ;;; Copyright © 2020 Marcin Karpezo <sirmacik@wioo.waw.pl>
+;;; Copyright © 2020 Jonathan Brielmaier <jonathan.brielmaier@web.de>
+;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
+;;; Copyright © 2020 Noah Landis <noahlandis@posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -33,7 +36,9 @@
   #:use-module (guix utils)
   #:use-module (gnu packages)
   #:use-module (gnu packages base)
+  #:use-module (gnu packages bison)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages ncurses)
   #:use-module (gnu packages perl)
   #:use-module (ice-9 match))
 
@@ -166,6 +171,13 @@ dictionaries, including personal ones.")
          (hash (content-hash sha256))))
       (home-page "https://www.softcatala.org/pub/softcatala/aspell/"))))
 
+(define-public aspell-dict-cs
+  (aspell-dictionary "cs" "Czech"
+                     #:version "20040614-1"
+                     #:sha256
+                     (base32
+                      "0rihj4hsw96pd9casvmpvw3r8040pfa28p1h73x4vyn20zwr3h01")))
+
 (define-public aspell-dict-de
   (aspell-dictionary "de" "German"
                      #:version "20161207-7-0"
@@ -271,6 +283,7 @@ dictionaries, including personal ones.")
 (define-public aspell-dict-mi
   (aspell-dictionary "mi" "Maori"
                      #:version "0.50-0"
+                     #:prefix "aspell-"
                      #:sha256
                      (base32
                       "12bxplpd348yx8d2q8qvahi9dlp7qf28qmanzhziwc7np8rixvmy")))
@@ -286,6 +299,7 @@ dictionaries, including personal ones.")
 (define-public aspell-dict-nn
   (aspell-dictionary "nn" "Norwegian Nynorsk"
                      #:version "0.50.1-1"
+                     #:prefix "aspell-"
                      #:sha256
                      (base32
                       "0w2k5l5rbqpliripgqwiqixz5ghnjf7i9ggbrc4ly4vy1ia10rmc")))
@@ -293,6 +307,7 @@ dictionaries, including personal ones.")
 (define-public aspell-dict-pl
   (aspell-dictionary "pl" "Polish"
                      #:version "0.51-0"
+                     #:prefix "aspell-"
                      #:sha256
                      (base32
                       "1a3ccji6k5gys7l3ilr2lh5pzxgzb7ipc5vb737svl6nqgdy8757")))
@@ -359,8 +374,8 @@ dictionaries, including personal ones.")
     (source (origin
               (method url-fetch)
               (uri (string-append
-                    "http://downloads.sourceforge.net/wordlist/scowl-"
-                    version ".tar.gz"))
+                    "mirror://sourceforge/wordlist/SCOWL/"
+                    version "/scowl-" version ".tar.gz"))
               (sha256
                (base32
                 "11lkrnhwrf5mvrrq45k4mads3n9aswgac8dc25ba61c75alxb5rs"))))
@@ -404,8 +419,12 @@ dictionaries, including personal ones.")
                              (find-files "speller"
                                          ,(string-append language ".*\\.dic$"))))
 
-               (install-file ,(string-append "speller/" language ".aff")
-                             hunspell)
+               ;; Install affix files corresponding to installed dictionaries
+               (for-each (lambda (dic)
+                           (install-file (string-append
+                                           "speller/" (basename dic ".dic") ".aff")
+                                         hunspell))
+                         (find-files hunspell ".*\\.dic$"))
                (symlink hunspell (string-append myspell "/dicts"))
                (for-each (lambda (file)
                            (install-file file doc))
@@ -453,3 +472,49 @@ under permissive licensing terms.  See the 'Copyright' file."))))
 (define-word-list-dictionary hunspell-dict-en-us
   "en_US"
   (synopsis "Hunspell dictionary for United States English"))
+
+(define-public ispell
+  (package
+    (name "ispell")
+    (version "3.4.02")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://www.cs.hmc.edu/~geoff/tars/ispell-"
+                           version ".tar.gz"))
+       (sha256
+        (base32 "0b6rqzqjdhwf323sf1dv8qzx5pxa5asz618922r59zjp65660yb6"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:parallel-build? #f
+       #:tests? #f ; no tests
+       #:phases
+       (modify-phases %standard-phases
+         (replace 'configure
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             ;; Based on local.h.linux
+             (let* ((grep (assoc-ref inputs "grep"))
+                    (out (assoc-ref outputs "out")))
+               (call-with-output-file "local.h"
+                 (lambda (port)
+                   (format port "#define MINIMENU~%")
+                   (format port "#define USG~%")
+                   (format port "#define HAS_RENAME~%")
+                   (format port "#define CC \"gcc\"~%")
+                   (format port "#define POUNDBANG \"#!~a\"~%" (which "sh"))
+                   (format port "#define EGREPCMD \"~a/bin/grep -Ei\"~%" grep)
+                   (format port "#define BINDIR \"~a/bin\"~%" out)
+                   (format port "#define LIBDIR \"~a/lib/ispell\"~%" out)
+                   (format port "#define MAN1DIR \"~a/share/man/man1\"~%" out)
+                   (format port "#define MAN45DIR \"~a/share/man/man5\"~%" out))))
+             #t)))))
+    (inputs
+     `(("grep" ,grep)
+       ("ncurses" ,ncurses)))
+    (native-inputs
+     `(("bison" ,bison)))
+    (synopsis "Interactive spell-checking tool for Unix")
+    (description "Ispell is an interactive spell-checking tool supporting many
+European languages.")
+    (home-page "https://www.cs.hmc.edu/~geoff/ispell.html")
+    (license bsd-3)))
diff --git a/gnu/packages/assembly.scm b/gnu/packages/assembly.scm
index 6587dc5aa2..55a1be8d54 100644
--- a/gnu/packages/assembly.scm
+++ b/gnu/packages/assembly.scm
@@ -2,7 +2,7 @@
 ;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
 ;;; Copyright © 2013, 2015 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
-;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2019 Guy Fleury Iteriteka <hoonandon@gmail.com>
 ;;; Copyright © 2019 Andy Tai <atai@atai.org>
@@ -26,6 +26,7 @@
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (gnu packages assembly)
+  #:use-module (guix build-system meson)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
   #:use-module (guix download)
@@ -51,7 +52,7 @@
   #:use-module (gnu packages shells)
   #:use-module (gnu packages xml)
   #:use-module ((guix utils)
-                #:select (%current-system)))
+                #:select (%current-system cc-for-target)))
 
 (define-public nasm
   (package
@@ -148,17 +149,49 @@ to the clients.")
     (home-page "https://www.gnu.org/software/lightning/")
     (license license:gpl3+)))
 
+(define-public simde
+  (package
+    (name "simde")
+    (version "0.7.0")
+    (source (origin
+             (method git-fetch)
+             (uri (git-reference
+                    (url "https://github.com/simd-everywhere/simde")
+                    (commit (string-append "v" version))))
+             (file-name (git-file-name name version))
+             (sha256
+              (base32
+               "1xf5xfzkk9rj47cichgz5ni8xs9hbpz5p6fmxr4ij721ffd002k3"))
+             (modules '((guix build utils)))
+             (snippet
+              '(begin
+                 ;; Fix the version string
+                 (substitute* "meson.build"
+                   (("0.7.0-rc2") "0.7.0"))
+                 #t))))
+    (build-system meson-build-system)
+    ;; We really want this for the headers, and the tests require a bundled library.
+    (arguments '(#:configure-flags '("-Dtests=false")))
+    (synopsis "Implementations of SIMD instruction sets for foreign systems")
+    (description "The SIMDe header-only library provides fast, portable
+implementations of SIMD intrinsics on hardware which doesn't natively support
+them, such as calling SSE functions on ARM.  There is no performance penalty if
+the hardware supports the native implementation (e.g., SSE/AVX runs at full
+speed on x86, NEON on ARM, etc.).")
+    (home-page "https://simd-everywhere.github.io/blog/")
+    (license license:expat)))
+
 (define-public fasm
   (package
     (name "fasm")
-    (version "1.73.24")
+    (version "1.73.25")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://flatassembler.net/fasm-"
                            version ".tgz"))
        (sha256
-        (base32 "142vxhs8mh8isvlzq7ir0asmqda410phzxmk9gk9b43dldskkj7k"))))
+        (base32 "0k3h61mfwslyb34kf4dnapfwl8jxlmrp4dv666wc057hkj047knn"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                      ; no tests exist
@@ -261,28 +294,36 @@ runtime")
 (define-public rgbds
   (package
     (name "rgbds")
-    (version "0.4.1")
+    (version "0.4.2")
     (source (origin
               (method git-fetch)
               (uri (git-reference
-                    (url "https://github.com/rednex/rgbds")
+                    (url "https://github.com/gbdev/rgbds")
                     (commit (string-append "v" version))))
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "05djzl3h18zg2z5p2a881wjbmgikzkhf67cgk00frhw4v05sq0lf"))))
+                "0lygj7jzjlq4w0mkiir7ycysrd1p1akyvzrppjcchja05mi8wy9p"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
        (modify-phases %standard-phases
          (delete 'configure)
+         (add-after 'unpack 'patch-pkg-config
+           (lambda _
+             (substitute* "Makefile"
+               (("pkg-config")
+                (or (which "pkg-config")
+                    (string-append ,(%current-target-system)
+                                   "-pkg-config"))))
+             #t))
          (replace 'check
            (lambda _
              (with-directory-excursion "test/asm"
                (invoke "./test.sh"))
              (with-directory-excursion "test/link"
                (invoke "./test.sh")))))
-       #:make-flags `("CC=gcc"
+       #:make-flags `(,(string-append "CC=" ,(cc-for-target))
                       ,(string-append "PREFIX="
                                       (assoc-ref %outputs "out")))))
     (native-inputs
@@ -292,7 +333,7 @@ runtime")
        ("util-linux" ,util-linux)))
     (inputs
      `(("libpng" ,libpng)))
-    (home-page "https://github.com/rednex/rgbds")
+    (home-page "https://github.com/gbdev/rgbds")
     (synopsis "Rednex Game Boy Development System")
     (description
      "RGBDS (Rednex Game Boy Development System) is an assembler/linker
@@ -436,7 +477,7 @@ sets, both THUMB and ARM mode.")
            (origin
              (method git-fetch)
              (uri (git-reference
-                   (url "https://github.com/intelxed/mbuild.git")
+                   (url "https://github.com/intelxed/mbuild")
                    (commit "5304b94361fccd830c0e2417535a866b79c1c297")))
              (sha256
               (base32
diff --git a/gnu/packages/astronomy.scm b/gnu/packages/astronomy.scm
index 72368f12f1..45d62cd855 100644
--- a/gnu/packages/astronomy.scm
+++ b/gnu/packages/astronomy.scm
@@ -1,10 +1,11 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2016 John Darrington <jmd@gnu.org>
-;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
-;;; Copyright © 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2019 by Amar Singh <nly@disroot.org>
 ;;; Copyright © 2020 R Veera Kumar <vkor@vkten.in>
 ;;; Copyright © 2020 Guillaume Le Vaillant <glv@posteo.net>
+;;; Copyright © 2021 Sharlatan Hellseher <sharlatanus@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -51,25 +52,26 @@
   #:use-module (gnu packages xorg)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
+  #:use-module (ice-9 match)
   #:use-module (srfi srfi-1))
 
 (define-public cfitsio
   (package
     (name "cfitsio")
-    (version "3.47")
+    (version "3.49")
     (source
      (origin
        (method url-fetch)
        (uri (string-append
              "http://heasarc.gsfc.nasa.gov/FTP/software/fitsio/c/"
-             name "-" version ".tar.gz"))
+             "cfitsio-" version ".tar.gz"))
        (sha256
-        (base32 "1vzlxnrjckz78p2wf148v2z3krkwnykfqvlj42sz3q711vqid1a1"))))
+        (base32 "1cyl1qksnkl3cq1fzl4dmjvkd6329b57y9iqyv44wjakbh6s4rav"))))
     (build-system gnu-build-system)
     ;; XXX Building with curl currently breaks wcslib.  It doesn't use
     ;; pkg-config and hence won't link with -lcurl.
     (arguments
-     `(#:tests? #f ; no tests
+     `(#:tests? #f                      ; no tests
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'patch-paths
@@ -128,7 +130,7 @@ header.")
 (define-public gnuastro
   (package
     (name "gnuastro")
-    (version "0.12")
+    (version "0.14")
     (source
      (origin
        (method url-fetch)
@@ -136,13 +138,15 @@ header.")
                            version ".tar.lz"))
        (sha256
         (base32
-         "0ypk1c72q778cixfa52vjxzbd5m4qc6hfjgnipy16sfa7mnspmyf"))))
+         "1xp6n42qxv0x6yigi2w2l5k8006smv27lhrcssysgsvzbydghzg5"))))
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags '("--disable-static")))
     (inputs
      `(("cfitsio" ,cfitsio)
+       ("curl" ,curl-minimal)
        ("gsl" ,gsl)
+       ("libgit2" ,libgit2)
        ("libjpeg" ,libjpeg-turbo)
        ("libtiff" ,libtiff)
        ("wcslib" ,wcslib)
@@ -156,10 +160,56 @@ header.")
 programs for the manipulation and analysis of astronomical data.")
     (license license:gpl3+)))
 
+(define-public sextractor
+  (package
+    (name "sextractor")
+    (version "2.25.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/astromatic/sextractor")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0q69n3nyal57h3ik2xirwzrxzljrwy9ivwraxzv9566vi3n4z5mw"))))
+    (build-system gnu-build-system)
+    ;; NOTE: (Sharlatan-20210124T103117+0000): Building with `atlas' is failing
+    ;; due to missing shared library which required on configure phase. Switch
+    ;; build to use `openblas' instead. It requires FFTW with single precision
+    ;; `fftwf'.
+    (arguments
+     `(#:configure-flags
+       (list
+        "--enable-openblas"
+        (string-append
+         "--with-openblas-libdir=" (assoc-ref %build-inputs "openblas") "/lib")
+        (string-append
+         "--with-openblas-incdir=" (assoc-ref %build-inputs "openblas") "/include")
+        (string-append
+         "--with-fftw-libdir=" (assoc-ref %build-inputs "fftw") "/lib")
+        (string-append
+         "--with-fftw-incdir=" (assoc-ref %build-inputs "fftw") "/include"))))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("libtool" ,libtool)))
+    (inputs
+     `(("openblas" ,openblas)
+       ("fftw" ,fftwf)))
+    (home-page "http://www.astromatic.net/software/sextractor")
+    (synopsis "Extract catalogs of sources from astronomical images")
+    (description
+     "SExtractor is a program that builds a catalogue of objects from an
+astronomical image.  Although it is particularly oriented towards reduction of
+large scale galaxy-survey data, it can perform reasonably well on moderately
+crowded star fields.")
+    (license license:gpl3+)))
+
 (define-public stellarium
   (package
     (name "stellarium")
-    (version "0.20.2")
+    (version "0.20.4")
     (source
      (origin
        (method url-fetch)
@@ -167,7 +217,7 @@ programs for the manipulation and analysis of astronomical data.")
                            "/releases/download/v" version
                            "/stellarium-" version ".tar.gz"))
        (sha256
-        (base32 "16symz212vjvhfabh39a68qf7d0rm574c6djlibj2qd1q9jgj3j0"))))
+        (base32 "1253zlr0mi4kdbj119spxk7spg4rkahb4rlpd0hz1d81mnv3n0v3"))))
     (build-system cmake-build-system)
     (inputs
      `(("qtbase" ,qtbase)
@@ -299,6 +349,55 @@ Mechanics, Astrometry and Astrodynamics library.")
     (license (list license:lgpl2.0+
                    license:gpl2+)))) ; examples/transforms.c & lntest/*.c
 
+(define-public libpasastro
+  ;; NOTE: (Sharlatan-20210122T215921+0000): the version tag has a build
+  ;; error on spice which is resolved with the latest commit.
+  (let ((commit "e3c218d1502a18cae858c83a9a8812ab197fcb60")
+        (revision "1"))
+    (package
+      (name "libpasastro")
+      (version (git-version "1.4.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/pchev/libpasastro")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "0asp2sn34nds5va2ghppwc41vb6j3d1mf049j949rgrll817kx47"))))
+      (build-system gnu-build-system)
+      (arguments
+       `(#:tests? #f
+         #:make-flags
+         (list
+          ,(match (or (%current-target-system) (%current-system))
+             ((or "aarch64-linux" "armhf-linux" "i686-linux" "x86_64-linux")
+              "OS_TARGET=linux")
+             (_ #f))
+          ,(match (or (%current-target-system) (%current-system))
+             ("i686-linux" "CPU_TARGET=i386")
+             ("x86_64-linux" "CPU_TARGET=x86_64")
+             ((or "armhf-linux" "aarch64-linux") "CPU_TARGET=armv7l")
+             (_ #f))
+          (string-append "PREFIX=" (assoc-ref %outputs "out")))
+         #:phases
+         (modify-phases %standard-phases
+           (delete 'configure))))
+      (home-page "https://github.com/pchev/libpasastro")
+      (synopsis "Interface to astronomy library for use from Pascal program")
+      (description
+       "This package provides shared libraries to interface Pascal program with
+standard astronomy libraries:
+
+@itemize
+@item @code{libpasgetdss.so}: Interface with GetDSS to work with DSS images.
+@item @code{libpasplan404.so}: Interface with Plan404 to compute planets position.
+@item @code{libpaswcs.so}: Interface with libwcs to work with FITS WCS.
+@item @code{libpasspice.so}: To work with NAIF/SPICE kernel.
+@end itemize\n")
+      (license license:gpl2+))))
+
 (define-public xplanet
   (package
     (name "xplanet")
@@ -328,7 +427,7 @@ Mechanics, Astrometry and Astrodynamics library.")
        ("freetype" ,freetype)
        ("pango" ,pango)
        ("giflib" ,giflib)
-       ("libjpeg", libjpeg-turbo)
+       ("libjpeg" ,libjpeg-turbo)
        ("libpng" ,libpng)
        ("libtiff" ,libtiff)
        ("netpbm" ,netpbm)
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index 8a74d68fee..2e46dc3a26 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -1,14 +1,14 @@
 ;;; 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 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
 ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2015 Alex Kost <alezost@gmail.com>
 ;;; Copyright © 2015, 2016 Mark H Weaver <mhw@netris.org>
-;;; Copyright © 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016, 2017 Alex Griffin <a@ajgrf.com>
 ;;; Copyright © 2016 Nikita <nikita@n0.is>
 ;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox.org>
-;;; Copyright © 2016, 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2016–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018, 2020 Oleg Pykhalov <go.wigust@gmail.com>
 ;;; Copyright © 2018 okapi <okapi@firemail.cc>
 ;;; Copyright © 2018, 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
@@ -32,6 +32,8 @@
 ;;; Copyright © 2020 Guillaume Le Vaillant <glv@posteo.net>
 ;;; Copyright © 2020 Jonathan Frederickson <jonathan@terracrypt.net>
 ;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org>
+;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
+;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -56,6 +58,7 @@
   #:use-module (gnu packages backup)
   #:use-module (gnu packages base)
   #:use-module (gnu packages bison)
+  #:use-module (gnu packages build-tools)
   #:use-module (gnu packages boost)
   #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
@@ -107,12 +110,14 @@
   #:use-module (gnu packages valgrind)
   #:use-module (gnu packages video)
   #:use-module (gnu packages vim) ;xxd
+  #:use-module (gnu packages web)
   #:use-module (gnu packages webkit)
   #: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 copy)
   #:use-module (guix build-system glib-or-gtk)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system meson)
@@ -127,6 +132,308 @@
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-26))
 
+(define-public opensles
+  (package
+    (name "opensles")
+    (version "1.1.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/KhronosGroup/OpenSL-ES-Registry")
+         (commit "ea5104bf37bf525c25e6ae2386586048179d0fda")))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0j5bm7h3ahz66f23i9abwc0y10agfkpksnj6y078x2nichq66h4f"))
+       (patches
+        (search-patches "opensles-add-license-file.patch"))))
+    (build-system copy-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'clean
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out")))
+               (mkdir-p (string-append out "/etc"))
+               (mkdir-p (string-append out "/include"))
+               (mkdir-p (string-append out "/share"))
+               (rename-file
+                (string-append out "/api/1.1/OpenSLES_IID.c")
+                (string-append out "/etc/OpenSLES_IID.c"))
+               (rename-file
+                (string-append out "/api/1.1/OpenSLES.h")
+                (string-append out "/include/OpenSLES.h"))
+               (rename-file
+                (string-append out "/api/1.1/OpenSLES_Platform.h")
+                (string-append out "/include/OpenSLES_Platform.h"))
+               (rename-file
+                (string-append out "/api/1.1/README.txt")
+                (string-append out "/share/README.txt"))
+               (rename-file
+                (string-append out "/LICENSE.txt")
+                (string-append out "/share/LICENSE.txt"))
+               (for-each delete-file-recursively
+                         (list
+                          (string-append out "/api")
+                          (string-append out "/specs")))
+               (for-each delete-file
+                         (list
+                          (string-append out "/CODE_OF_CONDUCT.md")
+                          (string-append out "/index.php")
+                          (string-append out "/README.md"))))
+             #t)))))
+    (synopsis "Embedded Audio Acceleration")
+    (description "OpenSLES is a royalty-free, cross-platform,
+hardware-accelerated audio API tuned for embedded systems.  It provides a
+standardized, high-performance, low-latency method to access audio
+functionality for developers of native applications on embedded mobile
+multimedia devices, enabling straightforward cross-platform deployment of
+hardware and software audio capabilities, reducing implementation effort, and
+promoting the market for advanced audio.")
+    (home-page "https://www.khronos.org/opensles/")
+    (license (license:non-copyleft "file:///LICENSE.txt"))))
+
+(define-public wildmidi
+  (package
+    (name "wildmidi")
+    (version "0.4.3")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/Mindwerks/wildmidi")
+         (commit (string-append name "-" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "01f4a9c5xlap5a4pkfnlgkzk5pjlk43zkq6fnw615ghya04g6hrl"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:tests? #f ; No target
+       #:configure-flags
+       (list
+        "-DWANT_ALSA=ON"
+        "-DWANT_OSS=ON"
+        "-DWANT_OPENAL=ON")))
+    (inputs
+     `(("alsa" ,alsa-lib)
+       ("openal" ,openal)))
+    (synopsis "Software Synthesizer")
+    (description "WildMIDI is a simple software midi player which has a core
+softsynth library that can be use with other applications.")
+    (home-page "https://www.mindwerks.net/projects/wildmidi/")
+    (license
+     (list
+      ;; Library.
+      license:lgpl3+
+      ;; Player.
+      license:gpl3+))))
+
+(define-public webrtc-audio-processing
+  (package
+    (name "webrtc-audio-processing")
+    (version "0.3.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "http://freedesktop.org/software/pulseaudio/"
+                       name "/" name "-" version ".tar.xz"))
+       (sha256
+        (base32 "1gsx7k77blfy171b6g3m0k0s0072v6jcawhmx1kjs9w5zlwdkzd0"))))
+    (build-system gnu-build-system)
+    (synopsis "WebRTC's Audio Processing Library")
+    (description "WebRTC-Audio-Processing library based on Google's
+implementation of WebRTC.")
+    (home-page
+     "https://freedesktop.org/software/pulseaudio/webrtc-audio-processing/")
+    (license (license:non-copyleft "file:///COPYING"))))
+
+(define-public vo-aacenc
+  (package
+    (name "vo-aacenc")
+    (version "0.1.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://sourceforge.net/projects/opencore-amr/files/"
+                       name "/" name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0dhghm3c8pqrriwwyj5x9i0yf52fmdfijbgqqkvqvwarldvp86p5"))))
+    (build-system gnu-build-system)
+    (synopsis "VisualOn AAC Encoder")
+    (description "VO-AACENC is the VisualOn implementation of Advanced Audio
+Coding (AAC) encoder.")
+    (home-page "https://sourceforge.net/projects/opencore-amr/")
+    (license license:asl2.0)))
+
+(define-public tinyalsa
+  (package
+    (name "tinyalsa")
+    (version "1.1.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/tinyalsa/tinyalsa")
+         (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0ajyvml5bnzvhiyyrn42gqwgg23ssxkfh09rvsnywhzxhd0xai4h"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f                      ; No target
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure))
+       #:make-flags
+       (list
+        (string-append "PREFIX=" (assoc-ref %outputs "out")))))
+    (synopsis "ALSA interfacing library")
+    (description "TinyALSA is a small library to interface with ALSA in the
+Linux kernel.")
+    (home-page "https://github.com/tinyalsa/tinyalsa")
+    (license (license:non-copyleft "file:///NOTICE"))))
+
+(define-public libopenmpt
+  (package
+    (name "libopenmpt")
+    (version "0.5.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://download.openmpt.org/archive/libopenmpt/src/"
+                       "libopenmpt-" version "+release.autotools.tar.gz"))
+       (sha256
+        (base32 "0h7gpjx1221jwsq3k91p8zhf1h77qaxyasakc88s3g57vawhckgk"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:configure-flags
+       (list (string-append "--docdir=" (assoc-ref %outputs "out")
+                            "/share/doc/" ,name "-" ,version))
+       #: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$"))
+               #t))))))
+    (native-inputs
+     `(("doxygen" ,doxygen)
+       ("perl" ,perl)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("alsa" ,alsa-lib)
+       ("flac" ,flac)
+       ("mpg123" ,mpg123)
+       ("portaudio" ,portaudio)
+       ("pulseaudio" ,pulseaudio)
+       ("sdl2" ,sdl2)
+       ("sndfile" ,libsndfile)
+       ("vorbis" ,libvorbis)
+       ("zlib" ,zlib)))
+    (synopsis "Audio tracking library")
+    (description "LibOpenMPT is a cross-platform C++ and C module playback
+library.  It is based on the player code of the Open ModPlug Tracker project.")
+    (home-page "https://openmpt.org/")
+    (license (license:non-copyleft "file:///LICENSE"))))
+
+(define-public libofa
+  (package
+    (name "libofa")
+    (version "0.9.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://storage.googleapis.com/"
+                       "google-code-archive-downloads/v2/code.google.com/"
+                       "musicip-libofa/" name "-" version ".tar.gz"))
+       (sha256
+        (base32 "184ham039l7lwhfgg0xr2vch2xnw1lwh7sid432mh879adhlc5h2"))
+       (patches
+        (search-patches
+         "libofa-ftbfs-1.diff"
+         "libofa-curl.diff"
+         "libofa-ftbfs-2.diff"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("curl" ,curl)
+       ("expat" ,expat)))
+    (propagated-inputs
+     `(("fftw" ,fftw)))
+    (synopsis "Open Fingerprint Architecture")
+    (description "LibOFA is an audio fingerprint library, created and provided
+by MusicIP.")
+    (home-page "https://code.google.com/archive/p/musicip-libofa/")
+    (license license:gpl2+)))
+
+(define-public faac
+  (package
+    (name "faac")
+    (version "1.30")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://sourceforge.net/projects/faac/files/faac-src/"
+                       "faac-1.30/faac-1_30.tar.gz/download"))
+       (sha256
+        (base32 "1lmj0dib3mjp84jhxc5ddvydkzzhb0gfrdh3ikcidjlcb378ghxd"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("libtool" ,libtool)
+       ("pkg-config" ,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")
+    (license
+     (list
+      ;; ISO MPEG-4 reference code.
+      license:gpl2+
+      ;; Others.
+      license:lgpl2.0+))))
+
+(define-public libtimidity
+  (package
+    (name "libtimidity")
+    (version "0.2.6")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://sourceforge.net/projects/" name "/files/"
+                       name "/" version "/" name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0p2px0m907gi1zpdr0l9adq25jl89j85c11ag9s2g4yc6n1nhgfm"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f))       ; XXX: LibTiMidity could not be initialised
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("ao" ,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
+General MIDI files.")
+    (home-page "http://libtimidity.sourceforge.net/")
+    (license
+     ;; This project is dual-licensed.
+     ;; Either of the following licenses can be exercised.
+     (list
+      license:lgpl2.1+
+      license:artistic2.0))))
+
 (define-public vo-amrwbenc
   (package
     (name "vo-amrwbenc")
@@ -169,41 +476,15 @@ implementation of Adaptive Multi Rate Narrowband and Wideband
 (define-public alsa-modular-synth
   (package
     (name "alsa-modular-synth")
-    (version "2.1.2")
+    (version "2.2.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://sourceforge/alsamodular/alsamodular"
                                   "/" version "/ams-" version ".tar.bz2"))
               (sha256
                (base32
-                "1azbrhpfk4nnybr7kgmc7w6al6xnzppg853vas8gmkh185kk11l0"))
-              (patches
-               (search-patches "alsa-modular-synth-fix-vocoder.patch"))))
+                "056dn6b9c5nsw2jdww7z1kxrjqqfvxjzxhsd5x9gi4wkwyiv21nz"))))
     (build-system gnu-build-system)
-    (arguments
-     `(#:configure-flags
-       '("--enable-qt5"
-         "CXXFLAGS=-std=gnu++11")
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'set-paths 'hide-default-gcc
-           (lambda* (#:key inputs #:allow-other-keys)
-             (let ((gcc (assoc-ref inputs "gcc")))
-               ;; Remove the default GCC from CPLUS_INCLUDE_PATH to prevent
-               ;; conflicts with the GCC 5 input.
-               (setenv "CPLUS_INCLUDE_PATH"
-                       (string-join
-                        (delete (string-append gcc "/include/c++")
-                                (string-split (getenv "CPLUS_INCLUDE_PATH") #\:))
-                        ":"))
-               #t)))
-         ;; Insert an extra space between linker flags.
-         (add-before 'configure 'add-missing-space
-           (lambda _
-             (substitute* "configure"
-               (("LIBS\\+=\\$LIBSsave") "LIBS+=\" $LIBSsave\"")
-               (("CFLAGS\\+=\\$CFLAGSsave") "CFLAGS+=\" $CFLAGSsave\""))
-             #t)))))
     (inputs
      `(("alsa-lib" ,alsa-lib)
        ;; We cannot use zita-alsa-pcmi (the successor of clalsadrv) due to
@@ -216,8 +497,7 @@ implementation of Adaptive Multi Rate Narrowband and Wideband
        ("qtbase" ,qtbase)))
     (native-inputs
      `(("pkg-config" ,pkg-config)
-       ("qttools" ,qttools)
-       ("gcc@5" ,gcc-5)))
+       ("qttools" ,qttools)))
     (home-page "http://alsamodular.sourceforge.net/")
     (synopsis "Realtime modular synthesizer and effect processor")
     (description
@@ -396,7 +676,7 @@ engineers, musicians, soundtrack editors and composers.")
 (define-public audacity
   (package
     (name "audacity")
-    (version "2.4.1")
+    (version "2.4.2")
     (source
      (origin
        (method git-fetch)
@@ -406,8 +686,9 @@ engineers, musicians, soundtrack editors and composers.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "1xk0piv72d2xd3p7igr916fhcbrm76fhjr418k1rlqdzzg1hfljn"))
-       (patches (search-patches "audacity-build-with-system-portaudio.patch"))
+         "0lklcvqkxrr2gkb9gh3422iadzl2rv9v0a8s76rwq43lj2im7546"))
+       (patches (search-patches "audacity-build-with-system-portaudio.patch"
+                                "audacity-add-include.patch"))
        (modules '((guix build utils)))
        (snippet
         ;; Remove bundled libraries.
@@ -417,7 +698,7 @@ engineers, musicians, soundtrack editors and composers.")
               (delete-file-recursively (string-append "lib-src/" dir)))
             '("expat" "ffmpeg" "lame" "libflac" "libid3tag" "libmad" "libogg"
               "libsndfile" "libsoxr" "libvamp" "libvorbis" "lv2"
-              "portaudio-v19" "portmidi" "soundtouch" "twolame"
+              "portmidi" "soundtouch" "twolame"
               ;; FIXME: these libraries have not been packaged yet:
               ;; "libnyquist"
               ;; "libscorealign"
@@ -431,7 +712,7 @@ engineers, musicians, soundtrack editors and composers.")
               ;; "sbsms"
               ))
            #t))))
-    (build-system glib-or-gtk-build-system)
+    (build-system cmake-build-system)
     (inputs
      `(("wxwidgets" ,wxwidgets)
        ("gtk+" ,gtk+)
@@ -453,7 +734,6 @@ engineers, musicians, soundtrack editors and composers.")
        ("lv2" ,lv2)
        ("lilv" ,lilv)                   ;for lv2
        ("suil" ,suil)                   ;for lv2
-       ("portaudio" ,portaudio)
        ("portmidi" ,portmidi)))
     (native-inputs
      `(("autoconf" ,autoconf)
@@ -465,52 +745,18 @@ engineers, musicians, soundtrack editors and composers.")
        ("which" ,which)))
     (arguments
      `(#:configure-flags
-       (let ((libid3tag (assoc-ref %build-inputs "libid3tag"))
-             (libmad (assoc-ref %build-inputs "libmad"))
-             (portmidi (assoc-ref %build-inputs "portmidi")))
-         (list
-          ;; Loading FFmpeg dynamically is problematic.
-          "--disable-dynamic-loading"
-          ;; SSE instructions are available on Intel systems only.
-          ,@(if (any (cute string-prefix? <> (or (%current-target-system)
-                                                 (%current-system)))
-                    '("x64_64" "i686"))
-              '()
-              '("--enable-sse=no"))
-          ;; portmidi, libid3tag and libmad provide no .pc files, so
-          ;; pkg-config fails to find them.  Force their inclusion.
-          (string-append "ID3TAG_CFLAGS=-I" libid3tag "/include")
-          (string-append "ID3TAG_LIBS=-L" libid3tag "/lib -lid3tag -lz")
-          (string-append "LIBMAD_CFLAGS=-I" libmad "/include")
-          (string-append "LIBMAD_LIBS=-L" libmad "/lib -lmad")
-          (string-append "PORTMIDI_CFLAGS=-I" portmidi "/include")
-          (string-append "PORTMIDI_LIBS=-L" portmidi "/lib -lportmidi")
-          "EXPAT_USE_SYSTEM=yes"
-          "FFMPEG_USE_SYSTEM=yes"
-          "LAME_USE_SYSTEM=yes"
-          "LIBFLAC_USE_SYSTEM=yes"
-          "LIBID3TAG_USE_SYSTEM=yes"
-          "LIBMAD_USE_SYSTEM=yes"
-          "USE_LOCAL_LIBNYQUIST="      ;not packaged yet
-          ;;"LIBSBSMS_USE_SYSTEM=yes"  ;bundled version is patched
-          "LIBSNDFILE_USE_SYSTEM=yes"
-          "LIBSOUNDTOUCH_USE_SYSTEM=yes"
-          "LIBSOXR_USE_SYSTEM=yes"
-          "LIBTWOLAME_USE_SYSTEM=yes"
-          "LIBVAMP_USE_SYSTEM=yes"
-          "LIBVORBIS_USE_SYSTEM=yes"
-          "LV2_USE_SYSTEM=yes"
-          "PORTAUDIO_USE_SYSTEM=yes"))
+       (list
+        ;; Loading FFmpeg dynamically is problematic.
+        "-Daudacity_use_ffmpeg=linked"
+        "-Daudacity_use_lame=system"
+        "-Daudacity_use_portsmf=system")
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'fix-sbsms-check
+         (add-after 'unpack 'comment-out-revision-ident
            (lambda _
-             ;; This check is wrong: there is no 2.2.0 release; not even the
-             ;; bundled sources match this release string.
-             (substitute* '("m4/audacity_checklib_libsbsms.m4"
-                            "configure")
-               (("sbsms >= 2.2.0") "sbsms >= 2.0.0"))
-             #t))
+             (substitute* "src/AboutDialog.cpp"
+               (("(.*RevisionIdent\\.h.*)" include-line)
+                (string-append "// " include-line)))))
          (add-after 'unpack 'use-upstream-headers
            (lambda* (#:key inputs #:allow-other-keys)
              (substitute* '("src/NoteTrack.cpp"
@@ -520,12 +766,11 @@ engineers, musicians, soundtrack editors and composers.")
                (("../lib-src/portmidi/pm_common/portmidi.h") "portmidi.h")
                (("../lib-src/portmidi/porttime/porttime.h") "porttime.h"))
              (substitute* "src/prefs/MidiIOPrefs.cpp"
-               (("../../lib-src/portmidi/pm_common/portmidi.h") "portmidi.h"))
-             #t)))
-       ;; The test suite is not "well exercised" according to the developers,
-       ;; and fails with various errors.  See
-       ;; <http://sourceforge.net/p/audacity/mailman/message/33524292/>.
-       #:tests? #f))
+               (("../../lib-src/portmidi/pm_common/portmidi.h") "portmidi.h")))))
+         ;; The test suite is not "well exercised" according to the developers,
+         ;; and fails with various errors.  See
+         ;; <http://sourceforge.net/p/audacity/mailman/message/33524292/>.
+         #:tests? #f))
     (home-page "https://www.audacityteam.org/")
     (synopsis "Software for recording and editing sounds")
     (description
@@ -556,18 +801,30 @@ tools.")
          "audiofile-Fix-index-overflow-in-IMA.cpp.patch"
          ;; CVE-2017-6827, CVE-2017-6828, CVE-2017-6832, CVE-2017-6835,
          ;; CVE-2017-6837:
-         "audiofile-Check-the-number-of-coefficients.patch"
+         "audiofile-check-number-of-coefficients.patch"
          ;; CVE-2017-6839:
-         "audiofile-Fix-overflow-in-MSADPCM-decodeSam.patch"
+         "audiofile-overflow-in-MSADPCM.patch"
          ;; CVE-2017-6830, CVE-2017-6834, CVE-2017-6836, CVE-2017-6838:
-         "audiofile-Fix-multiply-overflow-sfconvert.patch"
-         "audiofile-signature-of-multiplyCheckOverflow.patch"
+         "audiofile-multiply-overflow.patch"
+         "audiofile-function-signature.patch"
          ;; CVE-2017-6831:
          "audiofile-Fail-on-error-in-parseFormat.patch"
          ;; CVE-2017-6833:
-         "audiofile-division-by-zero-BlockCodec-runPull.patch"
+         "audiofile-division-by-zero.patch"
          "audiofile-CVE-2018-13440.patch"
          "audiofile-CVE-2018-17095.patch"))))
+    (properties `((lint-hidden-cve . ("CVE-2017-6829"
+
+                                      "CVE-2017-6827" "CVE-2017-6828"
+                                      "CVE-2017-6832" "CVE-2017-6835"
+                                      "CVE-2017-6837"
+
+                                      "CVE-2017-6839"
+
+                                      "CVE-2017-6830" "CVE-2017-6834"
+                                      "CVE-2017-6836" "CVE-2017-6838"
+
+                                      "CVE-2017-6831" "CVE-2017-6833"))))
     (build-system gnu-build-system)
     (inputs
      `(("alsa-lib" ,alsa-lib)))
@@ -741,7 +998,7 @@ tools (analyzer, mono/stereo tools, crossovers).")
      `(("lv2" ,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 colection")
+    (synopsis "LV2 port of the CAPS audio plugin collection")
     (description
      "LV2 port of CAPS, a collection of audio plugins comprising basic virtual
 guitar amplification and a small range of classic effects, signal processors and
@@ -1326,7 +1583,7 @@ follower.")
 (define-public fluidsynth
   (package
     (name "fluidsynth")
-    (version "2.1.4")
+    (version "2.1.5")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -1335,7 +1592,7 @@ follower.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1r3khwyw57ybg5m4x0rvdzq7hgw2484sd52k6bm19akbw8yicfna"))))
+                "0ccpq4p1h1g53ng3961g3lh590qnwvpzwdzpl6ai4j6iazq0bh73"))))
     (build-system cmake-build-system)
     (arguments
      '(#:tests? #f                      ; no check target
@@ -1386,22 +1643,22 @@ also play midifiles using a Soundfont.")
 (define-public faad2
   (package
     (name "faad2")
-    (version "2.8.6")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://sourceforge/faac/faad2-src/faad2-"
-                                  (version-major+minor version) ".0/"
-                                  "faad2-" version ".tar.gz"))
-              (sha256
-               (base32
-                "089zqykqgmmysznvk0bi2pfvdqwclnn540d0zks83sv2pynpfjb5"))))
+    (version "2.8.8")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://sourceforge/faac/faad2-src/faad2-"
+                       (version-major+minor version) ".0/"
+                       "faad2-" version ".tar.gz"))
+       (sha256
+        (base32 "0va284hndhn0ynm4lyn219qw4y8wa4agfkqgwlaji7bqp6nkyp4q"))))
     (build-system gnu-build-system)
     (home-page "https://www.audiocoding.com/faad2.html")
     (synopsis "MPEG-4 and MPEG-2 AAC decoder")
     (description
-     "FAAD2 is an MPEG-4 and MPEG-2 AAC decoder supporting LC, Main, LTP, SBR,
-PS, and DAB+.")
-    (license license:gpl2)))
+     "FAAD2 is an MPEG-4 and MPEG-2 AAC decoder supporting LC, Main, LTP, SBR, -PS, and DAB+.")
+    (license license:gpl2+)))
 
 (define-public faust
   (package
@@ -1518,7 +1775,7 @@ patches that can be used with softsynths such as Timidity and WildMidi.")
 (define-public guitarix
   (package
     (name "guitarix")
-    (version "0.38.1")
+    (version "0.41.0")
     (source (origin
              (method url-fetch)
              (uri (string-append
@@ -1526,28 +1783,14 @@ patches that can be used with softsynths such as Timidity and WildMidi.")
                    version ".tar.xz"))
              (sha256
               (base32
-               "0bw7xnrx062nwb1bfj9x660h7069ncmz77szcs8icpqxrvhs7z80"))))
+               "0qsfbyrrpb3bbdyq68k28mjql7kglxh8nqcw9jvja28x6x9ik5a0"))))
     (build-system waf-build-system)
     (arguments
      `(#:tests? #f ; no "check" target
-       #:python ,python-2
        #:configure-flags
        (list
         ;; Add the output lib directory to the RUNPATH.
-        (string-append "--ldflags=-Wl,-rpath=" %output "/lib"))
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'fix-boost-includes
-           (lambda _
-             (substitute* "src/headers/gx_internal_plugins.h"
-               (("namespace gx_jack" m)
-                (string-append "#include <boost/noncopyable.hpp>\n" m)))
-             (substitute* '("src/headers/gx_system.h"
-                            "src/headers/gx_parameter.h"
-                            "src/headers/gx_json.h")
-               (("namespace gx_system" m)
-                (string-append "#include <boost/noncopyable.hpp>\n" m)))
-             #t)))))
+        (string-append "--ldflags=-Wl,-rpath=" %output "/lib"))))
     (inputs
      `(("libsndfile" ,libsndfile)
        ("boost" ,boost)
@@ -1558,8 +1801,8 @@ patches that can be used with softsynths such as Timidity and WildMidi.")
        ("lilv" ,lilv)
        ("ladspa" ,ladspa)
        ("jack" ,jack-1)
-       ("gtkmm" ,gtkmm-2)
-       ("gtk+" ,gtk+-2)
+       ("gtkmm" ,gtkmm)
+       ("gtk+" ,gtk+)
        ("fftwf" ,fftwf)
        ("lrdf" ,lrdf)
        ("zita-resampler" ,zita-resampler)
@@ -1569,7 +1812,8 @@ patches that can be used with softsynths such as Timidity and WildMidi.")
        ("faust" ,faust)
        ("intltool" ,intltool)
        ("gettext" ,gettext-minimal)
-       ("pkg-config" ,pkg-config)))
+       ("pkg-config" ,pkg-config)
+       ("sassc" ,sassc)))
     (native-search-paths
      (list (search-path-specification
             (variable "LV2_PATH")
@@ -1663,8 +1907,15 @@ well suited to all musical instruments and vocals.")
        (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
              (string-append "INSTDIR="
                             (assoc-ref %outputs "out") "/lib/lv2"))
-       #:phases (modify-phases %standard-phases
-                  (delete 'configure))))        ; no configure script
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)        ; no configure script
+         ;; See https://github.com/tomszilagyi/ir.lv2/pull/20
+         (add-after 'unpack 'fix-type 
+           (lambda _
+             (substitute* '("ir_gui.cc" "lv2_ui.h")
+               (("_LV2UI_Descriptor") "LV2UI_Descriptor"))
+             #t)))))
     (inputs
      `(("libsndfile" ,libsndfile)
        ("libsamplerate" ,libsamplerate)
@@ -1738,7 +1989,7 @@ synchronous execution of all clients, and low latency operation.")
 (define-public jack-2
   (package (inherit jack-1)
     (name "jack2")
-    (version "1.9.13")
+    (version "1.9.14")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://github.com/jackaudio/jack2/releases/"
@@ -1747,7 +1998,7 @@ synchronous execution of all clients, and low latency operation.")
              (file-name (string-append name "-" version ".tar.gz"))
              (sha256
               (base32
-               "1d1d403jn4366mqig6g8ghr8057b3rn7gs26b5p3rkal34j20qw2"))))
+               "0z11hf55a6mi8h50hfz5wry9pshlwl4mzfwgslghdh40cwv342m2"))))
     (build-system waf-build-system)
     (arguments
      `(#:tests? #f  ; no check target
@@ -1757,6 +2008,10 @@ synchronous execution of all clients, and low latency operation.")
        (modify-phases %standard-phases
          (add-before 'configure 'set-linkflags
            (lambda _
+             ;; Ensure -lstdc++ is the tail of LDFLAGS or the simdtests.cpp
+             ;; will not link with undefined reference to symbol
+             ;; '__gxx_personality_v0@@CXXABI_1.3'
+             (setenv "LDFLAGS" "-lstdc++")
              ;; Add $libdir to the RUNPATH of all the binaries.
              (substitute* "wscript"
                ((".*CFLAGS.*-Wall.*" m)
@@ -1991,6 +2246,48 @@ with applications that support them (e.g. PulseAudio).")
 implementation of the Open Sound Control (@dfn{OSC}) protocol.")
     (license license:lgpl2.1+)))
 
+(define-public rtaudio
+  (package
+    (name "rtaudio")
+    (version "5.1.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/thestk/rtaudio")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "156c2dgh6jrsyfn1y89nslvaxm4yifmxridsb708yvkaym02w2l8"))))
+    (build-system cmake-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("alsa-lib" ,alsa-lib)
+       ("jack" ,jack-1)
+       ("pulseaudio" ,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
+audio input/output.  It was designed with the following objectives:
+
+@itemize
+@item object-oriented C++ design
+@item simple, common API across all supported platforms
+@item only one source and one header file for easy inclusion in programming
+projects
+@item allow simultaneous multi-api support
+@item support dynamic connection of devices
+@item provide extensive audio device parameter control
+@item allow audio device capability probing
+@item automatic internal conversion for data format, channel number
+compensation, (de)interleaving, and byte-swapping
+@end itemize")
+    (home-page "https://www.music.mcgill.ca/~gary/rtaudio/")
+    ;; License is expat with a non-binding request to send modifications to
+    ;; original developer.
+    (license license:expat)))
+
 (define-public python-pyaudio
   (package
     (name "python-pyaudio")
@@ -2046,14 +2343,14 @@ included are the command line utilities @code{send_osc} and @code{dump_osc}.")
 (define-public lilv
   (package
     (name "lilv")
-    (version "0.24.8")
+    (version "0.24.10")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://download.drobilla.net/lilv-"
                                  version ".tar.bz2"))
              (sha256
               (base32
-               "0063i5zgf3d3accwmyx651hw0wh5ik7kji2hvfkcdbl1qia3dp6a"))))
+               "1565zy0yz46cf2f25pi46msdnzkj6bbhml9gfigdpjnsdlyskfyi"))))
     (build-system waf-build-system)
     (arguments
      `(#:tests? #f                      ; no check target
@@ -2342,20 +2639,21 @@ different audio devices such as ALSA or PulseAudio.")
 (define-public qjackctl
   (package
     (name "qjackctl")
-    (version "0.5.9")
+    (version "0.9.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://sourceforge/qjackctl/qjackctl/"
                                   version "/qjackctl-" version ".tar.gz"))
               (sha256
                (base32
-                "1saywsda9m124rmjp7i3n0llryaliabjxhqhvqr6dm983qy7pypk"))))
+                "1gaabf2ncd5xd846fjm3k5d0kzphlyc33k9pralc2j3r3g0cb5ji"))))
     (build-system gnu-build-system)
     (arguments
      '(#:tests? #f))                    ; no check target
     (inputs
      `(("jack" ,jack-1)
        ("alsa-lib" ,alsa-lib)
+       ("portaudio" ,portaudio)
        ("qtbase" ,qtbase)
        ("qtx11extras" ,qtx11extras)))
     (native-inputs
@@ -2405,7 +2703,7 @@ background file post-processing.")
 (define-public supercollider
   (package
     (name "supercollider")
-    (version "3.11.0")
+    (version "3.11.2")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -2416,7 +2714,7 @@ background file post-processing.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "02v911w2kdbg3kfl593lb2ig4sjbfxzv20a0vbcymhfzpvp1x6xp"))
+                "1gi7nrmjmbnjndqkmhfrkk0jchrzvnhl3f6gp6n5wgdd4mxbgxgw"))
               (modules '((guix build utils)
                          (ice-9 ftw)))
               (snippet
@@ -2446,7 +2744,8 @@ link REQUIRED)"))
     (arguments
      `(#:configure-flags '("-DSYSTEM_BOOST=on" "-DSYSTEM_YAMLCPP=on"
                            "-DSC_QT=ON" "-DCMAKE_BUILD_TYPE=Release"
-                           "-DFORTIFY=ON" "-DLIBSCSYNTH=ON"
+                           "-DFORTIFY=ON"
+                           ;"-DLIBSCSYNTH=ON"   ; TODO: Re-enable?
                            "-DSC_EL=off") ;scel is packaged individually as
                                           ;emacs-scel
        #:phases
@@ -2586,7 +2885,7 @@ aimed at audio/musical applications.")
     (description "This package contains the @command{resample} and
 @command{windowfilter} command line utilities.  The @command{resample} command
 allows changing the sampling rate of a sound file, while the
-@command{windowfilter} command allows to design Finite Impulse Response (FIR)
+@command{windowfilter} command allows designing Finite Impulse Response (FIR)
 filters using the so-called @emph{window method}.")
     (home-page "https://ccrma.stanford.edu/~jos/resample/Free_Resampling_Software.html")
     (license license:lgpl2.1+)))
@@ -2662,14 +2961,14 @@ input/output.")
 (define-public sratom
   (package
     (name "sratom")
-    (version "0.6.4")
+    (version "0.6.6")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://download.drobilla.net/sratom-"
                                   version ".tar.bz2"))
               (sha256
                (base32
-                "0vh0biy3ngpzzgdml309c2mqz8xq9q0hlblczb4c6alhp0a8yv0l"))))
+                "178v90qvsp6lw4sqdmdz0bzyjkgwhv9m75ph1d1z8say5bv0p4gv"))))
     (build-system waf-build-system)
     (arguments `(#:tests? #f))          ;no check target
     (propagated-inputs
@@ -2689,14 +2988,14 @@ the Turtle syntax.")
 (define-public suil
   (package
     (name "suil")
-    (version "0.10.6")
+    (version "0.10.8")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://download.drobilla.net/suil-"
                                   version ".tar.bz2"))
               (sha256
                (base32
-                "0z4v01pjw4wh65x38w6icn28wdwxz13ayl8hvn4p1g9kmamp1z06"))))
+                "0h0ghk1s0lrj4gh12r7390b0ybaw7awnj0vhchyy9ll0gvhqgkci"))))
     (build-system waf-build-system)
     (arguments
      `(#:tests? #f))                    ;no check target
@@ -2720,10 +3019,36 @@ that toolkit will work in all hosts that use Suil automatically.
 Suil currently supports every combination of Gtk, Qt, and X11.")
     (license license:isc)))
 
+(define-public libebur128
+  (package
+    (name "libebur128")
+    (version "1.2.4")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/jiixyj/libebur128")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0n81rnm8dm1zmibkr2v3q79rsd609y0dbbsrbay18njcjva88p0g"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(;; Tests require proprietary .wav files. See
+       ;; https://github.com/jiixyj/libebur128/issues/82.
+       #:tests? #f
+       #:configure-flags '("-DBUILD_STATIC_LIBS=OFF")))
+    (home-page "https://github.com/jiixyj/libebur128")
+    (synopsis "Library implementing the EBU R 128 loudness standard")
+    (description
+     "@code{libebur128} is a C library that implements the EBU R 128 standard
+for loudness normalisation.")
+    (license license:expat)))
+
 (define-public timidity++
   (package
     (name "timidity++")
-    (version "2.14.0")
+    (version "2.15.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://sourceforge/timidity/TiMidity++"
@@ -2731,7 +3056,7 @@ Suil currently supports every combination of Gtk, Qt, and X11.")
                                   "/TiMidity++-" version ".tar.bz2"))
               (sha256
                (base32
-                "0xk41w4qbk23z1fvqdyfblbz10mmxsllw0svxzjw5sa9y11vczzr"))))
+                "1xf8n6dqzvi6nr2asags12ijbj1lwk1hgl3s27vm2szib8ww07qn"))))
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags
@@ -2964,7 +3289,7 @@ Tracker 3 S3M and Impulse Tracker IT files.")
 (define-public soundtouch
   (package
     (name "soundtouch")
-    (version "2.1.2")
+    (version "2.2")
     (source
      (origin
        (method git-fetch)
@@ -2973,7 +3298,7 @@ Tracker 3 S3M and Impulse Tracker IT files.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "174wgm3s0inmbnkrlnspxjwm2014qhjhkbdqa5r8rbfi0nzqxzsz"))))
+        (base32 "12i6yg8vvqwyk412lxl2krbfby6hnxld8qxy0k4m5xp4g94jiq4p"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("autoconf" ,autoconf)
@@ -3144,8 +3469,11 @@ interface.")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "mirror://sourceforge/qsynth/qsynth/" version
-                           "/qsynth-" version ".tar.gz"))
+       (uri (list
+              (string-append "mirror://sourceforge/qsynth/qsynth/" version
+                             "/qsynth-" version ".tar.gz")
+              (string-append "mirror://sourceforge/qsynth/qsynth (attic)"
+                             "/qsynth-" version ".tar.gz")))
        (sha256
         (base32 "18im4w8agj60nkppwbkxqnhpp13z5li3w30kklv4lgs20rvgbvl6"))))
     (build-system gnu-build-system)
@@ -3424,8 +3752,11 @@ machine-readable ASCII format.")
     (version "3.0.10")
     (source (origin
              (method url-fetch)
-             (uri (string-append "http://etree.org/shnutils/shntool/dist/src/"
-                                 "shntool-" version ".tar.gz"))
+             (uri (list
+                    (string-append "http://etree.org/shnutils/shntool/dist/src/"
+                                   "shntool-" version ".tar.gz")
+                    (string-append "mirror://debian/pool/main/s/shntool/shntool_"
+                                   version ".orig.tar.gz")))
              (sha256
               (base32
                "00i1rbjaaws3drkhiczaign3lnbhr161b7rbnjr8z83w8yn2wc3l"))))
@@ -3456,9 +3787,9 @@ use them split WAVE data into multiple files.")
     (build-system gnu-build-system)
     (arguments
      ;; Test files are missing: https://github.com/foo86/dcadec/issues/53
-     '(#:tests? #f
+     `(#:tests? #f
        #:make-flags
-       (list "CC=gcc"
+       (list (string-append "CC=" ,(cc-for-target))
              ;; Build shared library.
              "CONFIG_SHARED=1"
              (string-append "PREFIX=" (assoc-ref %outputs "out"))
@@ -3533,8 +3864,8 @@ loudness of audio and video files to the same level.")
            "0hbb290n3wb23f2k692a6bhc23nnqmxqi9sc9j15pnya8wifw64g"))))
       (build-system gnu-build-system)
       (arguments
-       '(#:make-flags (list (string-append "PREFIX=" %output)
-                            "CC=gcc")
+       `(#:make-flags (list (string-append "PREFIX=" %output)
+                            (string-append "CC=" ,(cc-for-target)))
          #:tests? #f ; No tests
          #:phases
          (modify-phases %standard-phases
@@ -3625,10 +3956,31 @@ mixers.")
 (define-public python2-pyalsaaudio
   (package-with-python2 python-pyalsaaudio))
 
+(define-public ldacbt
+  (package
+    (name "ldacbt")
+    (version "2.0.2.3")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://github.com/EHfive/ldacBT"
+                                  "/releases/download/v" version
+                                  "/ldacBT-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1d65dms4klzql29abi15i90f41h523kl6mxrz9hi6p5vg37fxn2b"))))
+    (build-system cmake-build-system)
+    (arguments `(#:tests? #f)) ; no check target
+    (home-page "https://github.com/EHfive/ldacBT/")
+    (synopsis "LDAC Bluetooth encoder and ABR library")
+    (description "This package provides an encoder for the LDAC
+high-resolution Bluetooth audio streaming codec for streaming at up to 990
+kbps at 24 bit/96 kHz.")
+    (license license:asl2.0)))
+
 (define-public bluez-alsa
   (package
     (name "bluez-alsa")
-    (version "2.0.0")
+    (version "3.0.0")
     (source (origin
               ;; The tarballs are mere snapshots and don't contain a
               ;; bootstrapped build system.
@@ -3639,11 +3991,12 @@ mixers.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "08mppgnjf1j2733bk9yf0cny6rfxxwiys0s62lz2zd2lpdl6d9lz"))))
+                "1jlsgxyqfhncfhx1sy3ry0dp6p95kd4agh7g2b7g51h0c4cv74h8"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags
-       (list (string-append "--with-alsaplugindir="
+       (list "--enable-ldac"
+             (string-append "--with-alsaplugindir="
                             (assoc-ref %outputs "out")
                             "/lib/alsa-lib")
              (string-append "--with-dbusconfdir="
@@ -3659,6 +4012,7 @@ mixers.")
        ("bluez" ,bluez)
        ("dbus" ,dbus)
        ("glib" ,glib)
+       ("ldacbt" ,ldacbt)
        ("libbsd" ,libbsd)
        ("ncurses" ,ncurses)
        ("ortp" ,ortp)
@@ -3679,14 +4033,14 @@ on the ALSA software PCM plugin.")
 (define-public snd
   (package
     (name "snd")
-    (version "20.6")
+    (version "20.9")
     (source (origin
               (method url-fetch)
               (uri (string-append "ftp://ccrma-ftp.stanford.edu/pub/Lisp/"
                                   "snd-" version ".tar.gz"))
               (sha256
                (base32
-                "1h4dsq5xcvwjbnayhn719cln0lg199w3xm59sl9d2jz8bq78gqgj"))))
+                "0jxkycxn6jcbs4gklk9sk3gfr0y26dz1m71nxah9rnx80wnzj6hr"))))
     (build-system glib-or-gtk-build-system)
     (arguments
      `(#:tests? #f                      ; no tests
@@ -3780,6 +4134,63 @@ the following features:
 ")
     (license license:lgpl3+)))
 
+(define-public lv2-speech-denoiser
+  (let ((commit "04cfba929630404f8d4f4ca5bac8d9b09a99152f")
+        (revision "1"))
+    (package
+      (name "lv2-speech-denoiser")
+      (version (git-version "0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/lucianodato/speech-denoiser/")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "189l6lz8sz5vr6bjyzgcsrvksl1w6crqsg0q65r94b5yjsmjnpr4"))))
+      (build-system meson-build-system)
+      (arguments
+       `(#:meson ,meson-0.55
+         ;; Using a "release" build is recommended for performance
+         #:build-type "release"
+         #:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'patch-meson-build
+             (lambda _
+               (substitute* "meson.build"
+                 (("install_folder = 'sdenoise.lv2'")
+                  "install_folder = 'lib/lv2/sdenoise.lv2'")
+                 (("build/manifest.ttl") "../build/manifest.ttl"))
+               #t))
+           (add-after 'unpack 'build-rnnoise
+             (lambda _
+               (with-directory-excursion "rnnoise"
+                 (let ((old-CFLAGS (getenv "CFLAGS")))
+                   (setenv "CFLAGS" "-fvisibility=hidden -fPIC -Wl,--exclude-libs,ALL")
+                   (setenv "CONFIG_SHELL" (which "bash"))
+                   (invoke "autoreconf" "-vif")
+                   (invoke "sh" "configure"
+                           "--disable-examples"
+                           "--disable-doc"
+                           "--disable-shared"
+                           "--enable-static")
+                   (invoke "make")
+                   (setenv "CFLAGS" old-CFLAGS))))))))
+      (inputs
+       `(("lv2" ,lv2)))
+      (native-inputs
+       `(("autoconf" ,autoconf)
+         ("automake" ,automake)
+         ("libtool" ,libtool)
+         ("pkg-config" ,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
+noise supression to audio sources with voice presence.  This package provides
+an LV2 audio plugin.")
+      (license license:lgpl3+))))
+
 (define-public cli-visualizer
   (package
     (name "cli-visualizer")
@@ -3829,7 +4240,7 @@ representations.")
 (define-public cava
   (package
     (name "cava")
-    (version "0.6.1")
+    (version "0.7.3")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -3838,7 +4249,7 @@ representations.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1kvhqgijs29909w3sq9m0bslx2zxxn4b3i07kdz4hb0dqkppxpjy"))))
+                "04j5hb29hivcbk542sfsx9m57dbnj2s6qpvy9fs488zvgjbgxrai"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("autoconf" ,autoconf)
@@ -4130,10 +4541,40 @@ supports both of ID3v1/v2 and APEv2 tags.")
     (home-page "http://tausoft.org/")
     (license license:gpl2+)))
 
+(define-public libsoundio
+  (package
+    (name "libsoundio")
+    (version "2.0.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/andrewrk/libsoundio")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "12l4rvaypv87vigdrmjz48d4d6sq4gfxf5asvnc4adyabxb73i4x"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:tests? #f)) ;no tests included
+    (inputs
+     `(("alsa-lib" ,alsa-lib)
+       ("jack" ,jack-1)
+       ("pulseaudio" ,pulseaudio)))
+    (native-inputs
+     `(("pkg-config" ,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
+output.  The API is suitable for real-time software such as digital audio
+workstations as well as consumer software such as music players.")
+    (license license:expat)))
+
 (define-public redkite
   (package
     (name "redkite")
-    (version "0.8.1")
+    (version "1.0.3")
     (source
      (origin
        (method git-fetch)
@@ -4142,14 +4583,14 @@ supports both of ID3v1/v2 and APEv2 tags.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "17kv2jc4jvn3sdicz3sf8dnf25wbvv7ijzkr0mm0sbrrjz6vrwz0"))))
+        (base32 "1m2db7c791fi33snkjwnvlxapmf879g5r8azlkx7sr6vp2s0jq2k"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f))                    ;no tests included
     (inputs
      `(("cairo" ,cairo)))
     (native-inputs
-     `(("pkg-config", pkg-config)))
+     `(("pkg-config" ,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
@@ -4276,7 +4717,7 @@ in the package.")
 (define-public libaudec
   (package
     (name "libaudec")
-    (version "0.2.2")
+    (version "0.2.4")
     (source
       (origin
         (method git-fetch)
@@ -4286,16 +4727,18 @@ in the package.")
         (file-name (git-file-name name version))
         (sha256
           (base32
-            "04mpmfmqc43asw0m3zxhb6jj4qms7x4jw7mx4xb1d3lh16xllniz"))))
+            "1570m2dfia17dbkhd2qhx8jjihrpm7g8nnyg6n4wif4vv229s7dz"))))
    (build-system meson-build-system)
    (arguments
-    `(#:configure-flags `("-Denable_tests=true -Denable_ffmpeg=true")))
+    `(#:meson ,meson-0.55
+      #:configure-flags
+      ;; Build the tests.
+      `("-Dtests=true")))
    (inputs
     `(("libsamplerate" ,libsamplerate)
-      ("libsndfile" ,libsndfile)
-      ("ffmpeg" ,ffmpeg)))
+      ("libsndfile" ,libsndfile)))
    (native-inputs
-     `(("pkg-config", pkg-config)))
+     `(("pkg-config" ,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'
@@ -4306,7 +4749,7 @@ libsamplerate for reading and resampling audio files, based on Robin Gareus'
 (define-public lv2lint
   (package
     (name "lv2lint")
-    (version "0.4.0")
+    (version "0.8.0")
     (source
       (origin
         (method git-fetch)
@@ -4316,18 +4759,18 @@ libsamplerate for reading and resampling audio files, based on Robin Gareus'
         (file-name (git-file-name name version))
         (sha256
           (base32
-            "1pspwqpzl2dw1hd9ra9yr53arqbbqjn7d7j0f7p9g3iqa76vblpi"))))
+            "1jrka0hsn4n1clri7zfkcl3c2vi52144lkpjm81l51ff8rqy8ks1"))))
     (build-system meson-build-system)
     (arguments
      `(#:configure-flags
        `("-Delf-tests=true" ; for checking symbol visibility
          "-Donline-tests=true"))) ; for checking URI existence
     (inputs
-      `(("curl", curl)
-        ("libelf", libelf)
-        ("lilv", lilv)))
+      `(("curl" ,curl)
+        ("libelf" ,libelf)
+        ("lilv" ,lilv)))
     (native-inputs
-      `(("pkg-config", pkg-config)))
+      `(("pkg-config" ,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
@@ -4358,11 +4801,11 @@ to well-known best practices.")
       (modify-phases %standard-phases
         (delete 'configure))))
     (inputs
-      `(("jalv", jalv)
-        ("lilv", lilv)))
+      `(("jalv" ,jalv)
+        ("lilv" ,lilv)))
     (native-inputs
-      `(("help2man", help2man)
-        ("pkg-config", pkg-config)))
+      `(("help2man" ,help2man)
+        ("pkg-config" ,pkg-config)))
     (synopsis "Documentation generator for LV2 plugins")
     (description
       "lv2toweb allows the user to create an xhtml page with information
@@ -4401,6 +4844,38 @@ minimum.")
     (home-page "https://git.zrythm.org/cgit/ztoolkit/")
     (license license:agpl3+)))
 
+(define-public libinstpatch
+  (package
+    (name "libinstpatch")
+    (version "1.1.5")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/swami/libinstpatch")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0psx4hc5yksfd3k2xqsc7c8lbz2d4yybikyddyd9hlkhq979cmjb"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:tests? #f)) ;there are no tests
+    (native-inputs
+     `(("glib:bin" ,glib "bin")
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("glib" ,glib)
+       ("libsndfile" ,libsndfile)))
+    (home-page "http://www.swamiproject.org/")
+    (synopsis "Instrument file software library")
+    (description
+     "libInstPatch is a library for processing digital sample based MIDI
+instrument \"patch\" files.  The types of files libInstPatch supports are used
+for creating instrument sounds for wavetable synthesis.  libInstPatch provides
+an object framework (based on GObject) to load patch files, which can then be
+edited, converted, compressed and saved.")
+    (license license:lgpl2.1)))
+
 (define-public ztoolkit-rsvg
   (package
     (inherit ztoolkit)
@@ -4412,6 +4887,41 @@ minimum.")
        ,@(package-inputs ztoolkit)))
     (synopsis "ZToolkit with SVG support")))
 
+(define-public lsp-dsp-lib
+  (package
+    (name "lsp-dsp-lib")
+    (version "0.5.11")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append "https://github.com/sadko4u/lsp-dsp-lib/"
+                            "releases/download/" version
+                            "/lsp-dsp-lib-" version "-src.tar.gz"))
+        (sha256
+         (base32 "0lkar6r9jfrrqswi8nnndlm5a9kfwqjn92d81gp2yhc3p46xsswz"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f ; no tests
+       #:make-flags
+       (list (string-append "CC=" ,(cc-for-target)))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'omit-static-library
+           (lambda _
+             (substitute* "src/Makefile"
+               ((".*@.*ARTIFACT_SLIB.*") "")       ; don't install it
+               ((" \\$\\(ARTIFACT_SLIB\\)") "")))) ; don't build it
+         (replace 'configure
+           (lambda* (#:key outputs #:allow-other-keys)
+             (invoke "make" "config"
+                     (string-append "PREFIX=" (assoc-ref outputs "out"))))))))
+    (home-page "https://github.com/sadko4u/lsp-dsp-lib")
+    (synopsis "Digital signal processing library")
+    (description "The LSP DSP library provides a set of functions that perform
+SIMD-optimized computing on several hardware architectures.  All functions
+currently operate on IEEE-754 single-precision floating-point numbers.")
+    (license license:lgpl3+)))
+
 (define-public codec2
   (package
     (name "codec2")
diff --git a/gnu/packages/authentication.scm b/gnu/packages/authentication.scm
index b3ff912c8f..bd40a6eb5c 100644
--- a/gnu/packages/authentication.scm
+++ b/gnu/packages/authentication.scm
@@ -1,6 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
-;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2018, 2020, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -33,26 +33,14 @@
 (define-public oath-toolkit
   (package
     (name "oath-toolkit")
-    (version "2.6.2")
+    (version "2.6.5")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://download.savannah.nongnu.org/releases/"
                            name "/" name "-" version ".tar.gz"))
-       (patches
-        (append (search-patches "oath-toolkit-glibc-compat.patch")
-                (list (origin
-                        ;; This huge commit updates gnulib for GCC 7 compatibility.
-                        (method url-fetch)
-                        (uri (string-append
-                              "https://gitlab.com/oath-toolkit/oath-toolkit/commit/"
-                              "2fffce2a471f74a585939c84cce16ef3015e5d3d.diff"))
-                        (file-name "oath-toolkit-update-gnulib.patch")
-                        (sha256
-                         (base32
-                          "088c9s4ay1b54bjqc4mwfs5l3f6357zj5vpw771zlq5g4addd4s0"))))))
        (sha256
-        (base32 "182ah8vfbg0yhv6mh1b6ap944d0na6x7lpfkwkmzb6jl9gx4cd5h"))))
+        (base32 "06f21smb412xads4lygvyb47fcpvhdns0k6h880m9pbzgq6141yj"))))
     (build-system gnu-build-system)
     (arguments
      ;; TODO ‘--enable-pskc’ causes xmlsec-related test suite failures.
@@ -127,3 +115,28 @@ and the time-based @dfn{TOTP} algorithm (RFC6238).")
       (description "The Yubico PAM module provides an easy way to integrate the
 YubiKey into your existing user authentication infrastructure.")
       (license license:bsd-2))))
+
+(define-public pamtester
+  (package
+    (name "pamtester")
+    (version "0.1.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "mirror://sourceforge/pamtester/pamtester/"
+             version "/pamtester-" version ".tar.gz"))
+       (sha256
+        (base32 "1mdj1wj0adcnx354fs17928yn2xfr1hj5mfraq282dagi873sqw3"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("linux-pam" ,linux-pam)))
+    (home-page "http://pamtester.sourceforge.net/")
+    (synopsis "Utility for testing pluggable authentication modules (PAM) facility")
+    (description
+     "Pamtester is a tiny utility program to test the pluggable authentication
+modules (PAM) facility, specifically designed to help PAM module authors to
+intensively test their own modules.")
+    (license license:bsd-3)))
diff --git a/gnu/packages/autotools.scm b/gnu/packages/autotools.scm
index 775576ff5d..6074379c46 100644
--- a/gnu/packages/autotools.scm
+++ b/gnu/packages/autotools.scm
@@ -11,6 +11,7 @@
 ;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2019 Pierre-Moana Levesque <pierre.moana.levesque@gmail.com>
 ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
+;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -38,12 +39,13 @@
   #:use-module (guix utils)
   #:use-module (guix packages)
   #:use-module (guix download)
+  #:use-module (guix git-download)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system trivial)
   #:use-module (ice-9 match)
   #:export (autoconf-wrapper))
 
-(define-public autoconf
+(define-public autoconf-2.69
   (package
     (name "autoconf")
     (version "2.69")
@@ -103,6 +105,39 @@ scripts are self-contained and portable, freeing the user from needing to
 know anything about Autoconf or M4.")
     (license gpl3+))) ; some files are under GPLv2+
 
+(define-public autoconf-2.70
+  (package
+    (inherit autoconf-2.69)
+    (version "2.70")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://gnu/autoconf/autoconf-"
+                           version ".tar.xz"))
+       (sha256
+        (base32
+         "1ipckz0wr2mvhj9n3ys54fmf2aksin6bhqvzl304bn6rc1w257ps"))))
+    (arguments
+     (substitute-keyword-arguments (package-arguments autoconf-2.69)
+       ((#:tests? _ #f)
+        ;; FIXME: To run the test suite, fix all the instances where scripts
+        ;; generates "#! /bin/sh" shebangs.
+        #f)
+       ((#:phases phases '%standard-phases)
+        `(modify-phases ,phases
+           (add-before 'check 'prepare-tests
+             (lambda _
+               (for-each patch-shebang
+                         (append (find-files "tests"
+                                             (lambda (file stat)
+                                               (executable-file? file)))
+                                 (find-files "bin"
+                                             (lambda (file stat)
+                                               (executable-file? file)))))
+               #t))))))))
+
+(define-public autoconf autoconf-2.69)
+
 (define-public autoconf-2.68
   (package (inherit autoconf)
     (version "2.68")
@@ -458,6 +493,53 @@ complexity of working with shared libraries across platforms.")
     (license gpl3+)
     (home-page "https://www.gnu.org/software/libtool/")))
 
+(define-public config
+  (let ((revision "1")
+        (commit "c8ddc8472f8efcadafc1ef53ca1d863415fddd5f"))
+    (package
+      (name "config")
+      (version (git-version "0.0.0" revision commit)) ;no release tag
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://git.savannah.gnu.org/git/config.git/")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "0x6ycvkmmhhhag97wsf0pw8n5fvh12rjvrck90rz17my4ys16qwv"))))
+      (build-system gnu-build-system)
+      (arguments
+       `(#:phases (modify-phases %standard-phases
+                    (add-after 'unpack 'patch-/bin/sh
+                      (lambda _
+                        (substitute* "testsuite/config-guess.sh"
+                          (("#!/bin/sh")
+                           (string-append "#!" (which "sh"))))
+                        #t))
+                    (replace 'build
+                      (lambda _
+                        (invoke "make" "manpages")))
+                    (delete 'configure)
+                    (replace 'install
+                      (lambda* (#:key outputs #:allow-other-keys)
+                        (let* ((out (assoc-ref outputs "out"))
+                               (bin (string-append out "/bin"))
+                               (man1 (string-append out "/share/man/man1")))
+                          (install-file "config.guess" bin)
+                          (install-file "config.sub" bin)
+                          (install-file "doc/config.guess.1" man1)
+                          (install-file "doc/config.sub.1" man1)
+                          #t))))))
+      (native-inputs
+       `(("help2man" ,help2man)))
+      (home-page "https://savannah.gnu.org/projects/config")
+      (synopsis "Ubiquitious config.guess and config.sub scripts")
+      (description "The `config.guess' script tries to guess a canonical system triple,
+and `config.sub' validates and canonicalizes.  These are used as part of
+configuration in nearly all GNU packages (and many others).")
+      (license gpl2+))))
+
 (define-public libltdl
   ;; This is a libltdl package separate from the libtool package.  This is
   ;; useful because, unlike libtool, it has zero extra dependencies (making it
diff --git a/gnu/packages/aux-files/guile-launcher.c b/gnu/packages/aux-files/guile-launcher.c
new file mode 100644
index 0000000000..1dd5d77e66
--- /dev/null
+++ b/gnu/packages/aux-files/guile-launcher.c
@@ -0,0 +1,88 @@
+/* GNU Guix --- Functional package management for GNU
+   Copyright 1996-1997,2000-2001,2006,2008,2011,2013,2018,2020
+      Free Software Foundation, Inc.
+   Copyright (C) 2020 Ludovic Courtès <ludo@gnu.org>
+
+   This file is part of GNU Guix.
+
+   GNU Guix is free software; you can redistribute it and/or modify it
+   under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or (at
+   your option) any later version.
+
+   GNU Guix is distributed in the hope that it will be useful, but
+   WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.  */
+
+/* This file implements a variant of the 'guile' executable that does not
+   complain about locale issues and arranges to reduce startup time by
+   ignoring GUILE_LOAD_PATH and GUILE_LOAD_COMPILED_PATH until it has
+   booted.  */
+
+#include <stdlib.h>
+#include <string.h>
+#include <locale.h>
+#include <libguile.h>
+
+/* Saved values of GUILE_LOAD_PATH and GUILE_LOAD_COMPILED_PATH.  */
+static const char *load_path, *load_compiled_path;
+
+static void
+inner_main (void *unused, int argc, char **argv)
+{
+  if (load_path != NULL)
+    {
+      setenv ("GUILE_LOAD_PATH", load_path, 1);
+      SCM load_path_var =
+	scm_c_public_lookup ("guile", "%load-path");
+      SCM addition =
+	scm_parse_path (scm_from_locale_string (load_path), SCM_EOL);
+      scm_variable_set_x (load_path_var,
+			  scm_append
+			  (scm_list_2 (scm_variable_ref (load_path_var),
+				       addition)));
+    }
+
+  if (load_compiled_path != NULL)
+    {
+      setenv ("GUILE_LOAD_COMPILED_PATH", load_compiled_path, 1);
+      SCM load_compiled_path_var =
+	scm_c_public_lookup ("guile", "%load-compiled-path");
+      SCM addition =
+	scm_parse_path (scm_from_locale_string (load_compiled_path), SCM_EOL);
+      scm_variable_set_x (load_compiled_path_var,
+			  scm_append
+			  (scm_list_2 (scm_variable_ref (load_compiled_path_var),
+				       addition)));
+    }
+
+  scm_shell (argc, argv);
+}
+
+int
+main (int argc, char **argv)
+{
+  /* Try to install the current locale; remain silent if it fails.  */
+  if (setlocale (LC_ALL, "") == NULL)
+    /* The 'guix pull'-provided 'guix' includes at least en_US.utf8 so use
+       that.  That gives us UTF-8 support for 'scm_to_locale_string', etc.,
+       which is always preferable over the C locale.  */
+    setlocale (LC_ALL, "en_US.utf8");
+
+  const char *str;
+  str = getenv ("GUILE_LOAD_PATH");
+  load_path = str != NULL ? strdup (str) : NULL;
+  str = getenv ("GUILE_LOAD_COMPILED_PATH");
+  load_compiled_path = str ? strdup (str) : NULL;
+
+  unsetenv ("GUILE_LOAD_PATH");
+  unsetenv ("GUILE_LOAD_COMPILED_PATH");
+
+  scm_install_gmp_memory_functions = 1;
+  scm_boot_guile (argc, argv, inner_main, 0);
+  return 0; /* never reached */
+}
diff --git a/gnu/packages/aux-files/guix.vim b/gnu/packages/aux-files/guix.vim
new file mode 100644
index 0000000000..7dc359e52b
--- /dev/null
+++ b/gnu/packages/aux-files/guix.vim
@@ -0,0 +1,7 @@
+" This appends all of the vim plugins to the end of Vim's runtimepath.
+for directory in ["/run/current-system/profile", $HOME . "/.guix-profile", $GUIX_PROFILE, $GUIX_ENVIRONMENT]
+    let vimplugins = directory . "/share/vim/vimfiles"
+    if isdirectory(vimplugins)
+        let &rtp = join([&rtp,vimplugins], ',')
+    endif
+endfor
diff --git a/gnu/packages/aux-files/linux-libre/4.14-arm.conf b/gnu/packages/aux-files/linux-libre/4.14-arm.conf
index 05fa8cc96f..c6d19f50d7 100644
--- a/gnu/packages/aux-files/linux-libre/4.14-arm.conf
+++ b/gnu/packages/aux-files/linux-libre/4.14-arm.conf
@@ -305,7 +305,9 @@ CONFIG_MODULE_FORCE_UNLOAD=y
 CONFIG_MODVERSIONS=y
 # CONFIG_MODULE_SRCVERSION_ALL is not set
 # CONFIG_MODULE_SIG is not set
-# CONFIG_MODULE_COMPRESS is not set
+CONFIG_MODULE_COMPRESS=y
+CONFIG_MODULE_COMPRESS_GZIP=y
+# CONFIG_MODULE_COMPRESS_XZ is not set
 # CONFIG_TRIM_UNUSED_KSYMS is not set
 CONFIG_MODULES_TREE_LOOKUP=y
 CONFIG_BLOCK=y
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 db09a41d7d..28bf8204e1 100644
--- a/gnu/packages/aux-files/linux-libre/4.14-i686.conf
+++ b/gnu/packages/aux-files/linux-libre/4.14-i686.conf
@@ -350,7 +350,9 @@ CONFIG_MODULE_UNLOAD=y
 CONFIG_MODVERSIONS=y
 CONFIG_MODULE_SRCVERSION_ALL=y
 # CONFIG_MODULE_SIG is not set
-# CONFIG_MODULE_COMPRESS is not set
+CONFIG_MODULE_COMPRESS=y
+CONFIG_MODULE_COMPRESS_GZIP=y
+# CONFIG_MODULE_COMPRESS_XZ is not set
 CONFIG_MODULES_TREE_LOOKUP=y
 CONFIG_BLOCK=y
 CONFIG_LBDAF=y
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 508c943b47..f5b9730622 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
@@ -370,7 +370,9 @@ CONFIG_MODULE_UNLOAD=y
 CONFIG_MODVERSIONS=y
 CONFIG_MODULE_SRCVERSION_ALL=y
 # CONFIG_MODULE_SIG is not set
-# CONFIG_MODULE_COMPRESS is not set
+CONFIG_MODULE_COMPRESS=y
+CONFIG_MODULE_COMPRESS_GZIP=y
+# CONFIG_MODULE_COMPRESS_XZ is not set
 CONFIG_MODULES_TREE_LOOKUP=y
 CONFIG_BLOCK=y
 CONFIG_BLK_SCSI_REQUEST=y
diff --git a/gnu/packages/aux-files/linux-libre/4.19-arm.conf b/gnu/packages/aux-files/linux-libre/4.19-arm.conf
index 239e6e5f23..ee5916b278 100644
--- a/gnu/packages/aux-files/linux-libre/4.19-arm.conf
+++ b/gnu/packages/aux-files/linux-libre/4.19-arm.conf
@@ -876,7 +876,9 @@ CONFIG_MODULE_FORCE_UNLOAD=y
 CONFIG_MODVERSIONS=y
 # CONFIG_MODULE_SRCVERSION_ALL is not set
 # CONFIG_MODULE_SIG is not set
-# CONFIG_MODULE_COMPRESS is not set
+CONFIG_MODULE_COMPRESS=y
+CONFIG_MODULE_COMPRESS_GZIP=y
+# CONFIG_MODULE_COMPRESS_XZ is not set
 # CONFIG_TRIM_UNUSED_KSYMS is not set
 CONFIG_MODULES_TREE_LOOKUP=y
 CONFIG_BLOCK=y
@@ -1021,7 +1023,8 @@ CONFIG_XFRM_IPCOMP=m
 CONFIG_NET_KEY=m
 CONFIG_NET_KEY_MIGRATE=y
 # CONFIG_SMC is not set
-# CONFIG_XDP_SOCKETS is not set
+CONFIG_XDP_SOCKETS=y
+CONFIG_XDP_SOCKETS_DIAG=m
 CONFIG_INET=y
 CONFIG_IP_MULTICAST=y
 CONFIG_IP_ADVANCED_ROUTER=y
diff --git a/gnu/packages/aux-files/linux-libre/4.19-arm64.conf b/gnu/packages/aux-files/linux-libre/4.19-arm64.conf
index 45f9ab89ef..852ae64ee1 100644
--- a/gnu/packages/aux-files/linux-libre/4.19-arm64.conf
+++ b/gnu/packages/aux-files/linux-libre/4.19-arm64.conf
@@ -750,7 +750,9 @@ CONFIG_MODULE_FORCE_UNLOAD=y
 CONFIG_MODVERSIONS=y
 # CONFIG_MODULE_SRCVERSION_ALL is not set
 # CONFIG_MODULE_SIG is not set
-# CONFIG_MODULE_COMPRESS is not set
+CONFIG_MODULE_COMPRESS=y
+CONFIG_MODULE_COMPRESS_GZIP=y
+# CONFIG_MODULE_COMPRESS_XZ is not set
 # CONFIG_TRIM_UNUSED_KSYMS is not set
 CONFIG_MODULES_TREE_LOOKUP=y
 CONFIG_BLOCK=y
@@ -964,7 +966,8 @@ CONFIG_XFRM_IPCOMP=m
 CONFIG_NET_KEY=m
 CONFIG_NET_KEY_MIGRATE=y
 # CONFIG_SMC is not set
-# CONFIG_XDP_SOCKETS is not set
+CONFIG_XDP_SOCKETS=y
+CONFIG_XDP_SOCKETS_DIAG=m
 CONFIG_INET=y
 CONFIG_IP_MULTICAST=y
 CONFIG_IP_ADVANCED_ROUTER=y
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 03f51f4bf8..d01e74d8c7 100644
--- a/gnu/packages/aux-files/linux-libre/4.19-i686.conf
+++ b/gnu/packages/aux-files/linux-libre/4.19-i686.conf
@@ -881,7 +881,9 @@ CONFIG_MODULE_UNLOAD=y
 CONFIG_MODVERSIONS=y
 CONFIG_MODULE_SRCVERSION_ALL=y
 # CONFIG_MODULE_SIG is not set
-# CONFIG_MODULE_COMPRESS is not set
+CONFIG_MODULE_COMPRESS=y
+CONFIG_MODULE_COMPRESS_GZIP=y
+# CONFIG_MODULE_COMPRESS_XZ is not set
 CONFIG_MODULES_TREE_LOOKUP=y
 CONFIG_BLOCK=y
 CONFIG_LBDAF=y
@@ -1051,7 +1053,8 @@ CONFIG_XFRM_IPCOMP=m
 CONFIG_NET_KEY=m
 # CONFIG_NET_KEY_MIGRATE is not set
 # CONFIG_SMC is not set
-# CONFIG_XDP_SOCKETS is not set
+CONFIG_XDP_SOCKETS=y
+CONFIG_XDP_SOCKETS_DIAG=m
 CONFIG_INET=y
 CONFIG_IP_MULTICAST=y
 CONFIG_IP_ADVANCED_ROUTER=y
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 685ca2adfb..dd9469039c 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
@@ -872,7 +872,9 @@ CONFIG_MODULE_UNLOAD=y
 CONFIG_MODVERSIONS=y
 CONFIG_MODULE_SRCVERSION_ALL=y
 # CONFIG_MODULE_SIG is not set
-# CONFIG_MODULE_COMPRESS is not set
+CONFIG_MODULE_COMPRESS=y
+CONFIG_MODULE_COMPRESS_GZIP=y
+# CONFIG_MODULE_COMPRESS_XZ is not set
 CONFIG_MODULES_TREE_LOOKUP=y
 CONFIG_BLOCK=y
 CONFIG_BLK_SCSI_REQUEST=y
@@ -1061,7 +1063,8 @@ CONFIG_XFRM_IPCOMP=m
 CONFIG_NET_KEY=m
 # CONFIG_NET_KEY_MIGRATE is not set
 # CONFIG_SMC is not set
-# CONFIG_XDP_SOCKETS is not set
+CONFIG_XDP_SOCKETS=y
+CONFIG_XDP_SOCKETS_DIAG=m
 CONFIG_INET=y
 CONFIG_IP_MULTICAST=y
 CONFIG_IP_ADVANCED_ROUTER=y
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 33a5f67d85..32442eb55a 100644
--- a/gnu/packages/aux-files/linux-libre/4.4-i686.conf
+++ b/gnu/packages/aux-files/linux-libre/4.4-i686.conf
@@ -302,7 +302,9 @@ CONFIG_MODULE_UNLOAD=y
 CONFIG_MODVERSIONS=y
 CONFIG_MODULE_SRCVERSION_ALL=y
 # CONFIG_MODULE_SIG is not set
-# CONFIG_MODULE_COMPRESS is not set
+CONFIG_MODULE_COMPRESS=y
+CONFIG_MODULE_COMPRESS_GZIP=y
+# CONFIG_MODULE_COMPRESS_XZ is not set
 CONFIG_MODULES_TREE_LOOKUP=y
 CONFIG_BLOCK=y
 CONFIG_LBDAF=y
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 aabd0dfee1..adfb848f5b 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
@@ -315,7 +315,9 @@ CONFIG_MODULE_UNLOAD=y
 CONFIG_MODVERSIONS=y
 CONFIG_MODULE_SRCVERSION_ALL=y
 # CONFIG_MODULE_SIG is not set
-# CONFIG_MODULE_COMPRESS is not set
+CONFIG_MODULE_COMPRESS=y
+CONFIG_MODULE_COMPRESS_GZIP=y
+# CONFIG_MODULE_COMPRESS_XZ is not set
 CONFIG_MODULES_TREE_LOOKUP=y
 CONFIG_BLOCK=y
 CONFIG_BLK_DEV_BSG=y
diff --git a/gnu/packages/aux-files/linux-libre/4.9-i686.conf b/gnu/packages/aux-files/linux-libre/4.9-i686.conf
index d1a64e2772..d4a4b7f254 100644
--- a/gnu/packages/aux-files/linux-libre/4.9-i686.conf
+++ b/gnu/packages/aux-files/linux-libre/4.9-i686.conf
@@ -322,7 +322,9 @@ CONFIG_MODULE_UNLOAD=y
 CONFIG_MODVERSIONS=y
 CONFIG_MODULE_SRCVERSION_ALL=y
 # CONFIG_MODULE_SIG is not set
-# CONFIG_MODULE_COMPRESS is not set
+CONFIG_MODULE_COMPRESS=y
+CONFIG_MODULE_COMPRESS_GZIP=y
+# CONFIG_MODULE_COMPRESS_XZ is not set
 CONFIG_MODULES_TREE_LOOKUP=y
 CONFIG_BLOCK=y
 CONFIG_LBDAF=y
diff --git a/gnu/packages/aux-files/linux-libre/4.9-x86_64.conf b/gnu/packages/aux-files/linux-libre/4.9-x86_64.conf
index 3d69605c19..94aa2174c7 100644
--- a/gnu/packages/aux-files/linux-libre/4.9-x86_64.conf
+++ b/gnu/packages/aux-files/linux-libre/4.9-x86_64.conf
@@ -339,7 +339,9 @@ CONFIG_MODULE_UNLOAD=y
 CONFIG_MODVERSIONS=y
 CONFIG_MODULE_SRCVERSION_ALL=y
 # CONFIG_MODULE_SIG is not set
-# CONFIG_MODULE_COMPRESS is not set
+CONFIG_MODULE_COMPRESS=y
+CONFIG_MODULE_COMPRESS_GZIP=y
+# CONFIG_MODULE_COMPRESS_XZ is not set
 CONFIG_MODULES_TREE_LOOKUP=y
 CONFIG_BLOCK=y
 CONFIG_BLK_DEV_BSG=y
diff --git a/gnu/packages/aux-files/linux-libre/5.10-arm.conf b/gnu/packages/aux-files/linux-libre/5.10-arm.conf
new file mode 100644
index 0000000000..e021c94372
--- /dev/null
+++ b/gnu/packages/aux-files/linux-libre/5.10-arm.conf
@@ -0,0 +1,9877 @@
+#
+# Automatically generated file; DO NOT EDIT.
+# Linux/arm 5.10.0 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_LD_VERSION=231010000
+CONFIG_CLANG_VERSION=0
+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_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_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_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_BPF=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_BPF_LSM=y
+CONFIG_BPF_SYSCALL=y
+# CONFIG_BPF_JIT_ALWAYS_ON is not set
+# CONFIG_BPF_PRELOAD is not set
+CONFIG_USERFAULTFD=y
+CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=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_EBSA110 is not set
+# 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_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_SIRF is not set
+# 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_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_TANGO is not set
+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_ZX is not set
+# 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_HAS_HOLES_MEMORYMODEL=y
+CONFIG_ARCH_SELECT_MEMORY_MODEL=y
+CONFIG_ARCH_FLATMEM_ENABLE=y
+CONFIG_ARCH_SPARSEMEM_ENABLE=y
+CONFIG_HAVE_ARCH_PFN_VALID=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=y
+# 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 is not set
+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_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_OPROFILE=m
+CONFIG_HAVE_OPROFILE=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_WANT_IPC_PARSE_VERSION=y
+CONFIG_HAVE_ARCH_SECCOMP=y
+CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
+CONFIG_SECCOMP=y
+CONFIG_SECCOMP_FILTER=y
+CONFIG_HAVE_STACKPROTECTOR=y
+CONFIG_STACKPROTECTOR=y
+CONFIG_STACKPROTECTOR_STRONG=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
+
+#
+# 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=y
+CONFIG_MODULE_COMPRESS_GZIP=y
+# CONFIG_MODULE_COMPRESS_XZ is not set
+# CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS is not set
+# CONFIG_UNUSED_SYMBOLS is not set
+# 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_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_FRAME_VECTOR=y
+# CONFIG_PERCPU_STATS is not set
+# CONFIG_GUP_BENCHMARK is not set
+# 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_COMMON=m
+CONFIG_NF_LOG_NETDEV=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_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
+
+#
+# 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_LOG_BRIDGE=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_HAVE_NET_DSA=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_PREPEND=m
+CONFIG_NET_DSA_TAG_GSWIP=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_QCA=m
+CONFIG_NET_DSA_TAG_LAN9303=m
+CONFIG_NET_DSA_TAG_SJA1105=m
+CONFIG_NET_DSA_TAG_TRAILER=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_DEBUGFS=y
+# CONFIG_BATMAN_ADV_DEBUG is not set
+CONFIG_BATMAN_ADV_SYSFS=y
+# 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_RPS=y
+CONFIG_RFS_ACCEL=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_JIT=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_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_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
+# 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_WIMAX=m
+CONFIG_WIMAX_DEBUG_LEVEL=8
+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_DEVLINK=y
+CONFIG_PAGE_POOL=y
+CONFIG_FAILOVER=m
+CONFIG_ETHTOOL_NETLINK=y
+CONFIG_HAVE_EBPF_JIT=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_PCIE_BW is not set
+CONFIG_PCI_MSI=y
+CONFIG_PCI_MSI_IRQ_DOMAIN=y
+CONFIG_PCI_MSI_ARCH_FALLBACKS=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
+
+#
+# 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_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_PCCARD is not set
+# CONFIG_RAPIDIO is not set
+
+#
+# Generic Driver Options
+#
+# 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 is not set
+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
+# 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=m
+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_NAND_ECC_SW_HAMMING=m
+# CONFIG_MTD_NAND_ECC_SW_HAMMING_SMC is not set
+CONFIG_MTD_RAW_NAND=m
+# CONFIG_MTD_NAND_ECC_SW_BCH is not set
+
+#
+# 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
+
+#
+# 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
+# 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_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_WRITEBACK is not set
+# CONFIG_ZRAM_MEMORY_TRACKING is not set
+# CONFIG_BLK_DEV_UMEM 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_PCI_ENDPOINT_TEST is not set
+CONFIG_XILINX_SDFEC=m
+CONFIG_MISC_RTSX=m
+# CONFIG_PVPANIC is not set
+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_MISC_ALCOR_PCI=m
+CONFIG_MISC_RTSX_PCI=m
+CONFIG_MISC_RTSX_USB=m
+# CONFIG_HABANA_AI is not set
+CONFIG_UACCE=m
+# 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_GDTH is not set
+# 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_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_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_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_GLOBAL2=y
+# 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_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_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_AURORA is not set
+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_ENETC=m
+CONFIG_FSL_ENETC_VF=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_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_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_CORE_EN_DCB=y
+# CONFIG_MLX5_CORE_IPOIB is not set
+CONFIG_MLX5_SW_STEERING=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_AXI_EMAC=m
+CONFIG_XILINX_LL_TEMAC=m
+CONFIG_FDDI=y
+CONFIG_DEFXX=m
+# CONFIG_DEFXX_MMIO is not set
+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_MICREL_PHY=m
+CONFIG_MICROCHIP_PHY=m
+CONFIG_MICROCHIP_T1_PHY=m
+CONFIG_MICROSEMI_PHY=m
+CONFIG_NATIONAL_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_WLAN=y
+# CONFIG_WIRELESS_WDS is not set
+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_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
+
+#
+# WiMAX Wireless Broadband devices
+#
+CONFIG_WIMAX_I2400M=m
+CONFIG_WIMAX_I2400M_USB=m
+CONFIG_WIMAX_I2400M_DEBUG_LEVEL=8
+# end of WiMAX Wireless Broadband devices
+
+# 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_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_POLLDEV=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_GTCO=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_PROPERTIES=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_ILI210X is not set
+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_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_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_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_IFX6X60 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_TRACE_SINK is not set
+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_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_DEVKMEM is not set
+# 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_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_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 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_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_IDT82P33=m
+CONFIG_PTP_1588_CLOCK_IDTCM=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_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_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
+# 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_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
+
+CONFIG_GPIO_AGGREGATOR=m
+# CONFIG_GPIO_MOCKUP is not set
+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_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_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_SMB347 is not set
+# CONFIG_BATTERY_GAUGE_LTC2941 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_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_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_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_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_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_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_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_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_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_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_SL28CPLD is not set
+# CONFIG_MFD_SM501 is not set
+# CONFIG_MFD_SKY81452 is not set
+# CONFIG_ABX500_CORE 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_STPMIC1 is not set
+# CONFIG_MFD_STMFX 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_AS3722=y
+CONFIG_REGULATOR_AXP20X=m
+CONFIG_REGULATOR_BD70528=m
+CONFIG_REGULATOR_BD71828=m
+CONFIG_REGULATOR_BD718XX=m
+CONFIG_REGULATOR_BD9571MWV=m
+CONFIG_REGULATOR_CROS_EC=m
+CONFIG_REGULATOR_DA9052=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_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_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_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_SMIAPP_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_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_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_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_RDACM20=m
+CONFIG_VIDEO_RJ54N1=m
+CONFIG_VIDEO_S5K6AA=m
+CONFIG_VIDEO_S5K6A3=m
+CONFIG_VIDEO_S5K4ECGX=m
+CONFIG_VIDEO_S5K5BAF=m
+CONFIG_VIDEO_SMIAPP=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
+
+#
+# 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_TTM_DMA_PAGE_POOL=y
+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_VM=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_INIT=y
+CONFIG_OMAP_DSS_BASE=m
+CONFIG_OMAP2_DSS=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
+
+#
+# OMAPDRM External Display Device Drivers
+#
+# CONFIG_DRM_OMAP_PANEL_DSI_CM is not set
+# end of OMAPDRM External Display Device Drivers
+
+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_PLL=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_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_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_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_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_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_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_CHRONTEL_CH7033=m
+CONFIG_DRM_DISPLAY_CONNECTOR=m
+CONFIG_DRM_LONTIUM_LT9611=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_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_ARCPGU is not set
+# CONFIG_DRM_MXSFB 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 is not set
+CONFIG_DRM_LIMA=m
+CONFIG_DRM_PANFROST=m
+CONFIG_DRM_MCDE=m
+CONFIG_DRM_TIDSS=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_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_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_UTILS=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
+CONFIG_SND_SOC_IMX_SSI=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_IMX_MC13783=m
+# CONFIG_SND_SOC_FSL_ASOC_CARD is not set
+CONFIG_SND_SOC_IMX_AUDMIX=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_ZX_TDM is not set
+CONFIG_SND_SOC_I2C_AND_SPI=m
+
+#
+# CODEC drivers
+#
+# CONFIG_SND_SOC_AC97_CODEC 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_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_RT5677=m
+CONFIG_SND_SOC_RT5677_SPI=m
+CONFIG_SND_SOC_SGTL5000=m
+# CONFIG_SND_SOC_SIMPLE_AMPLIFIER is not set
+# CONFIG_SND_SOC_SIRF_AUDIO_CODEC 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_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_MC13783=m
+# CONFIG_SND_SOC_MT6351 is not set
+# CONFIG_SND_SOC_MT6358 is not set
+# CONFIG_SND_SOC_MT6660 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
+# 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_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_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_PRIMAX=m
+# CONFIG_HID_RETRODE is not set
+CONFIG_HID_ROCCAT=m
+CONFIG_HID_SAITEK=m
+CONFIG_HID_SAMSUNG=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 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_MXC=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_IMX21_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_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_XIRCOM=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_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_SISUSBVGA_CON=y
+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_FSL_USB2 is not set
+# 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
+
+#
+# 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
+
+#
+# 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_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_RX6110 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
+
+#
+# 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_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_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_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_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_STAGING=y
+# CONFIG_PRISM2_USB is not set
+# CONFIG_COMEDI 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_AD7150 is not set
+# 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_BCM2835_VCHIQ_MMAL is not set
+CONFIG_PI433=m
+
+#
+# Gasket devices
+#
+# end of Gasket devices
+
+# 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_CLK_QORIQ is not set
+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_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_PX30 is not set
+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_CLK_RK3308 is not set
+# CONFIG_CLK_RK3328 is not set
+# CONFIG_CLK_RK3368 is not set
+# CONFIG_CLK_RK3399 is not set
+CONFIG_COMMON_CLK_SAMSUNG=y
+CONFIG_EXYNOS_AUDSS_CLK_CON=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_COMMON_CLK_TI_ADPLL=y
+# 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_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
+
+#
+# Aspeed SoC drivers
+#
+# end of Aspeed 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
+
+#
+# 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=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_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
+#
+# CONFIG_XILINX_VCU is not set
+# 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_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_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_AD9467 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_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_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
+
+#
+# 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
+
+#
+# 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_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
+# 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
+# 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_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_BCM2835=m
+# CONFIG_PWM_CROS_EC is not set
+# 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_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_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_TI_PRUSS_INTC=m
+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_USB_LGM_PHY is not set
+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_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
+
+#
+# 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
+
+#
+# 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 is not set
+CONFIG_COUNTER=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_IO_TRACE 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_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_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_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_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_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_RMD128=m
+CONFIG_CRYPTO_RMD160=m
+CONFIG_CRYPTO_RMD256=m
+CONFIG_CRYPTO_RMD320=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_TGR192=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_SALSA20=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_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_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
+
+#
+# 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_DWARF4 is not set
+# CONFIG_DEBUG_INFO_BTF is not set
+# CONFIG_GDB_SCRIPTS is not set
+CONFIG_ENABLE_MUST_CHECK=y
+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_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_PAGE_POISONING_NO_SANITY=y
+# CONFIG_PAGE_POISONING_ZERO is not set
+# 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_HIGHMEM is not set
+CONFIG_CC_HAS_KASAN_GENERIC=y
+CONFIG_CC_HAS_WORKING_NOSANITIZE_ADDRESS=y
+# 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_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_RING_BUFFER_ALLOW_SWAP=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_UPROBE_EVENTS=y
+CONFIG_BPF_EVENTS=y
+CONFIG_DYNAMIC_EVENTS=y
+CONFIG_PROBE_EVENTS=y
+CONFIG_FTRACE_MCOUNT_RECORD=y
+CONFIG_SYNTH_EVENTS=y
+# 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_STARTUP_TEST is not set
+# CONFIG_RING_BUFFER_STARTUP_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_SAMPLES is not set
+CONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED=y
+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_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_MEMTEST is not set
+# end of Kernel Testing and Coverage
+# end of Kernel hacking
diff --git a/gnu/packages/aux-files/linux-libre/5.10-arm64.conf b/gnu/packages/aux-files/linux-libre/5.10-arm64.conf
new file mode 100644
index 0000000000..2c02488633
--- /dev/null
+++ b/gnu/packages/aux-files/linux-libre/5.10-arm64.conf
@@ -0,0 +1,10037 @@
+#
+# Automatically generated file; DO NOT EDIT.
+# Linux/arm64 5.10.0 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_LD_VERSION=231010000
+CONFIG_CLANG_VERSION=0
+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_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_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_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_BPF=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_MEMBARRIER=y
+CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_ALL is not set
+CONFIG_KALLSYMS_BASE_RELATIVE=y
+CONFIG_BPF_LSM=y
+CONFIG_BPF_SYSCALL=y
+CONFIG_ARCH_WANT_DEFAULT_BPF_JIT=y
+# CONFIG_BPF_JIT_ALWAYS_ON is not set
+CONFIG_BPF_JIT_DEFAULT_ON=y
+# CONFIG_BPF_PRELOAD is not set
+CONFIG_USERFAULTFD=y
+CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=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_SLUB_MEMCG_SYSFS_ON is not set
+# 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_ENABLE_MEMORY_HOTPLUG=y
+CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=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_AGILEX is not set
+CONFIG_ARCH_SUNXI=y
+# CONFIG_ARCH_ALPINE is not set
+CONFIG_ARCH_BCM2835=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_STRATIX10 is not set
+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_ZX is not set
+# 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_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_SUPPORTS_DEBUG_PAGEALLOC=y
+CONFIG_ARCH_SPARSEMEM_ENABLE=y
+CONFIG_ARCH_SPARSEMEM_DEFAULT=y
+CONFIG_ARCH_SELECT_MEMORY_MODEL=y
+CONFIG_HAVE_ARCH_PFN_VALID=y
+CONFIG_HW_PERF_EVENTS=y
+CONFIG_SYS_SUPPORTS_HUGETLBFS=y
+CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y
+CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
+CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK=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_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
+CONFIG_ARM64_VHE=y
+# end of ARMv8.1 architectural features
+
+#
+# ARMv8.2 architectural features
+#
+CONFIG_ARM64_UAO=y
+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
+
+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
+CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION=y
+CONFIG_ARCH_ENABLE_THP_MIGRATION=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=y
+# 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 is not set
+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_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_KVM_ARM_PMU=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_SET_FS=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_HAVE_ARCH_STACKLEAK=y
+CONFIG_HAVE_STACKPROTECTOR=y
+CONFIG_STACKPROTECTOR=y
+CONFIG_STACKPROTECTOR_STRONG=y
+CONFIG_HAVE_CONTEXT_TRACKING=y
+CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y
+CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y
+CONFIG_HAVE_MOVE_PMD=y
+CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y
+CONFIG_HAVE_ARCH_HUGE_VMAP=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_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
+
+#
+# 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=y
+CONFIG_MODULE_COMPRESS_GZIP=y
+# CONFIG_MODULE_COMPRESS_XZ is not set
+# CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS is not set
+# CONFIG_UNUSED_SYMBOLS is not set
+# 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_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_ARCH_KEEP_MEMBLOCK=y
+CONFIG_MEMORY_ISOLATION=y
+# CONFIG_MEMORY_HOTPLUG is not set
+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_PHYS_ADDR_T_64BIT=y
+CONFIG_BOUNCE=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_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_PTE_DEVMAP=y
+CONFIG_HMM_MIRROR=y
+CONFIG_FRAME_VECTOR=y
+# CONFIG_PERCPU_STATS is not set
+# CONFIG_GUP_BENCHMARK 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_COMMON=m
+CONFIG_NF_LOG_NETDEV=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_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
+
+#
+# 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_LOG_BRIDGE=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_HAVE_NET_DSA=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_PREPEND=m
+CONFIG_NET_DSA_TAG_GSWIP=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_QCA=m
+CONFIG_NET_DSA_TAG_LAN9303=m
+CONFIG_NET_DSA_TAG_SJA1105=m
+CONFIG_NET_DSA_TAG_TRAILER=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_DEBUGFS=y
+# CONFIG_BATMAN_ADV_DEBUG is not set
+CONFIG_BATMAN_ADV_SYSFS=y
+# 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_RPS=y
+CONFIG_RFS_ACCEL=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_JIT=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_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_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
+# 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_WIMAX=m
+CONFIG_WIMAX_DEBUG_LEVEL=8
+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_DEVLINK=y
+CONFIG_PAGE_POOL=y
+CONFIG_FAILOVER=m
+CONFIG_ETHTOOL_NETLINK=y
+CONFIG_HAVE_EBPF_JIT=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_BW is not set
+# CONFIG_PCIE_EDR is not set
+CONFIG_PCI_MSI=y
+CONFIG_PCI_MSI_IRQ_DOMAIN=y
+CONFIG_PCI_MSI_ARCH_FALLBACKS=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
+
+#
+# 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
+#
+# CONFIG_PCIE_LAYERSCAPE_GEN4 is not set
+# 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_PCCARD is not set
+# CONFIG_RAPIDIO is not set
+
+#
+# Generic Driver Options
+#
+# 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
+# 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
+# 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_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_NAND_ECC_SW_HAMMING=m
+# CONFIG_MTD_NAND_ECC_SW_HAMMING_SMC is not set
+CONFIG_MTD_RAW_NAND=m
+# CONFIG_MTD_NAND_ECC_SW_BCH is not set
+
+#
+# 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
+
+#
+# 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
+# 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_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_WRITEBACK is not set
+# CONFIG_ZRAM_MEMORY_TRACKING is not set
+# CONFIG_BLK_DEV_UMEM 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_SKD=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_PCI_ENDPOINT_TEST is not set
+CONFIG_XILINX_SDFEC=m
+CONFIG_MISC_RTSX=m
+CONFIG_PVPANIC=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_MISC_ALCOR_PCI=m
+CONFIG_MISC_RTSX_PCI=m
+CONFIG_MISC_RTSX_USB=m
+CONFIG_HABANA_AI=m
+CONFIG_UACCE=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_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_GDTH is not set
+# 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_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_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_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_GLOBAL2=y
+# 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_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_AURORA is not set
+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_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_ENETC=m
+CONFIG_FSL_ENETC_VF=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_JME=m
+CONFIG_NET_VENDOR_MARVELL=y
+CONFIG_MVMDIO=m
+CONFIG_MVNETA=m
+CONFIG_MVPP2=m
+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_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_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_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_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_AXI_EMAC=m
+CONFIG_XILINX_LL_TEMAC=m
+CONFIG_FDDI=y
+CONFIG_DEFXX=m
+# CONFIG_DEFXX_MMIO is not set
+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_MICREL_PHY=m
+CONFIG_MICROCHIP_PHY=m
+CONFIG_MICROCHIP_T1_PHY=m
+CONFIG_MICROSEMI_PHY=m
+CONFIG_NATIONAL_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_WLAN=y
+# CONFIG_WIRELESS_WDS is not set
+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_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=m
+CONFIG_QTNFMAC_PCIE=m
+CONFIG_MAC80211_HWSIM=m
+CONFIG_USB_NET_RNDIS_WLAN=m
+CONFIG_VIRT_WIFI=m
+
+#
+# WiMAX Wireless Broadband devices
+#
+CONFIG_WIMAX_I2400M=m
+CONFIG_WIMAX_I2400M_USB=m
+CONFIG_WIMAX_I2400M_DEBUG_LEVEL=8
+# end of WiMAX Wireless Broadband devices
+
+# 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_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_POLLDEV=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_GTCO=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_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_ADXL34X is not set
+# CONFIG_INPUT_IMS_PCU is not set
+CONFIG_INPUT_IQS269A=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_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_ALTERA_JTAGUART is not set
+# CONFIG_SERIAL_ALTERA_UART is not set
+# CONFIG_SERIAL_IFX6X60 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_TRACE_SINK is not set
+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_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_HISI_V2=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_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_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_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 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_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_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 is not set
+# 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_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_IDT82P33=m
+CONFIG_PTP_1588_CLOCK_IDTCM=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_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_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_SDM660 is not set
+# CONFIG_PINCTRL_SDM845 is not set
+CONFIG_PINCTRL_SM8150=m
+CONFIG_PINCTRL_SM8250=m
+
+#
+# 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_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
+CONFIG_GPIO_REGMAP=m
+
+#
+# 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_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_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_BD71828=m
+CONFIG_GPIO_MADERA=m
+CONFIG_GPIO_MAX77620=y
+CONFIG_GPIO_SL28CPLD=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
+
+CONFIG_GPIO_AGGREGATOR=m
+# CONFIG_GPIO_MOCKUP is not set
+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_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_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 is not set
+# CONFIG_CHARGER_MANAGER is not set
+# CONFIG_CHARGER_LT3651 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_SMB347 is not set
+# CONFIG_BATTERY_GAUGE_LTC2941 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_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_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_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_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_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_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_SL28CPLD=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 is not set
+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_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_GPIO_WATCHDOG=m
+# CONFIG_WDAT_WDT is not set
+# CONFIG_XILINX_WATCHDOG is not set
+# CONFIG_ZIIRAVE_WATCHDOG is not set
+CONFIG_SL28CPLD_WATCHDOG=m
+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_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_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_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_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_SIMPLE_MFD_I2C=m
+CONFIG_MFD_SL28CPLD=m
+# CONFIG_MFD_SM501 is not set
+# CONFIG_MFD_SKY81452 is not set
+# CONFIG_ABX500_CORE 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 is not set
+CONFIG_MFD_ROHM_BD718XX=m
+CONFIG_MFD_ROHM_BD70528=m
+CONFIG_MFD_ROHM_BD71828=m
+# CONFIG_MFD_STPMIC1 is not set
+# CONFIG_MFD_STMFX is not set
+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_AXP20X=m
+CONFIG_REGULATOR_BD70528=m
+CONFIG_REGULATOR_BD71828=m
+CONFIG_REGULATOR_BD718XX=m
+CONFIG_REGULATOR_CROS_EC=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_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_MT6360=m
+CONFIG_REGULATOR_PCA9450=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_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_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_MEM2MEM_DEINTERLACE is not set
+# CONFIG_VIDEO_ROCKCHIP_RGA is not set
+CONFIG_VIDEO_QCOM_VENUS=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_SMIAPP_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_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_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_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_RDACM20=m
+CONFIG_VIDEO_RJ54N1=m
+CONFIG_VIDEO_S5K6AA=m
+CONFIG_VIDEO_S5K6A3=m
+CONFIG_VIDEO_S5K4ECGX=m
+CONFIG_VIDEO_S5K5BAF=m
+CONFIG_VIDEO_SMIAPP=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
+
+#
+# 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_TTM_DMA_PAGE_POOL=y
+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_VM=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
+# CONFIG_DRM_AMDGPU_GART_DEBUGFS is not set
+
+#
+# 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
+# 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_VGEM=m
+# CONFIG_DRM_VKMS is not set
+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_PLL=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_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_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_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_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_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_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_CHRONTEL_CH7033=m
+CONFIG_DRM_DISPLAY_CONNECTOR=m
+CONFIG_DRM_LONTIUM_LT9611=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_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 is not set
+# CONFIG_DRM_DW_HDMI_CEC is not set
+# 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_ARCPGU is not set
+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_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 is not set
+CONFIG_DRM_LIMA=m
+CONFIG_DRM_PANFROST=m
+CONFIG_DRM_TIDSS=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_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_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_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_IMX_PCM_DMA=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
+# 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_PLATFORM=m
+CONFIG_SND_SOC_LPASS_APQ8016=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_ROCKCHIP 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 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_ZX_TDM is not set
+CONFIG_SND_SOC_I2C_AND_SPI=m
+
+#
+# CODEC drivers
+#
+# CONFIG_SND_SOC_AC97_CODEC 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 is not set
+# CONFIG_SND_SOC_DMIC is not set
+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=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_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_RT5677=m
+CONFIG_SND_SOC_RT5677_SPI=m
+CONFIG_SND_SOC_SGTL5000=m
+# CONFIG_SND_SOC_SIMPLE_AMPLIFIER is not set
+# CONFIG_SND_SOC_SIRF_AUDIO_CODEC 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 is not set
+# CONFIG_SND_SOC_TLV320ADCX140 is not set
+# CONFIG_SND_SOC_TS3A227E is not set
+# 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_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_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
+# 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_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_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_PRIMAX=m
+# CONFIG_HID_RETRODE is not set
+CONFIG_HID_ROCCAT=m
+CONFIG_HID_SAITEK=m
+CONFIG_HID_SAMSUNG=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 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_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_MXC=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_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_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_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_XIRCOM=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_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_SISUSBVGA_CON=y
+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_FSL_USB2=m
+# 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 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
+
+#
+# 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
+
+#
+# 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_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_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_RX6110 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
+
+#
+# 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
+
+#
+# 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_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_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_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_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_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_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
+# end of Xen driver support
+
+# CONFIG_GREYBUS is not set
+CONFIG_STAGING=y
+# CONFIG_PRISM2_USB is not set
+# CONFIG_COMEDI 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_AD7150 is not set
+# 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_BCM2835_VCHIQ_MMAL is not set
+# CONFIG_PI433 is not set
+
+#
+# Gasket devices
+#
+# CONFIG_STAGING_GASKET_FRAMEWORK is not set
+# end of Gasket devices
+
+# 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_REGULATOR_HI6421V600=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_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 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_CLK_QORIQ is not set
+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_CLK_APCS_MSM8916=m
+CONFIG_QCOM_CLK_APCC_MSM8996=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_DISPCC_7180 is not set
+CONFIG_SC_GCC_7180=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 is not set
+# 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_SM_GCC_8150 is not set
+# CONFIG_SM_GCC_8250 is not set
+# 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_COMMON_CLK_ROCKCHIP=y
+CONFIG_CLK_PX30=y
+CONFIG_CLK_RV110X=y
+# CONFIG_CLK_RK3036 is not set
+# CONFIG_CLK_RK312X is not set
+# CONFIG_CLK_RK3188 is not set
+# CONFIG_CLK_RK322X is not set
+CONFIG_CLK_RK3308=y
+CONFIG_CLK_RK3328=y
+CONFIG_CLK_RK3368=y
+CONFIG_CLK_RK3399=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_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_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_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_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_ROCKCHIP_IOMMU is not set
+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_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
+CONFIG_MESON_MX_SOCINFO=y
+# end of Amlogic SoC drivers
+
+#
+# Aspeed SoC drivers
+#
+# end of Aspeed 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_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
+
+#
+# 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_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
+#
+# CONFIG_XILINX_VCU is not set
+# 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_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_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_AD9467 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_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_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
+
+#
+# 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
+
+#
+# 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_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
+# 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
+# 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_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_BCM2835=m
+# CONFIG_PWM_CROS_EC is not set
+# 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_MESON=m
+# CONFIG_PWM_PCA9685 is not set
+CONFIG_PWM_ROCKCHIP=m
+CONFIG_PWM_SL28CPLD=m
+CONFIG_PWM_SUN4I=m
+CONFIG_PWM_TEGRA=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_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
+# 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_USB_LGM_PHY is not set
+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_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=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_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 is not set
+CONFIG_PHY_ROCKCHIP_DPHY_RX0=m
+CONFIG_PHY_ROCKCHIP_EMMC=m
+# CONFIG_PHY_ROCKCHIP_INNO_HDMI is not set
+CONFIG_PHY_ROCKCHIP_INNO_USB2=m
+# CONFIG_PHY_ROCKCHIP_INNO_DSIDPHY is not set
+CONFIG_PHY_ROCKCHIP_PCIE=m
+# CONFIG_PHY_ROCKCHIP_TYPEC is not set
+# CONFIG_PHY_ROCKCHIP_USB is not set
+# 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
+# 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_HISI_PMU is not set
+# end of Performance monitor support
+
+CONFIG_RAS=y
+CONFIG_USB4=m
+# CONFIG_USB4_DEBUGFS_WRITE 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 is not set
+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
+
+#
+# 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 is not set
+# 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_IO_TRACE 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_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_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_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_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_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_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_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_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_RMD128=m
+CONFIG_CRYPTO_RMD160=m
+CONFIG_CRYPTO_RMD256=m
+CONFIG_CRYPTO_RMD320=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_TGR192=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_SALSA20=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_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_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 is not set
+CONFIG_CRYPTO_DEV_HISI_HPRE=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_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_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=m
+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_DMA_VIRT_OPS=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_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
+
+#
+# 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_DWARF4 is not set
+# CONFIG_DEBUG_INFO_BTF is not set
+# CONFIG_GDB_SCRIPTS is not set
+CONFIG_ENABLE_MUST_CHECK=y
+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_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_PAGE_POISONING_NO_SANITY=y
+# CONFIG_PAGE_POISONING_ZERO 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=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_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
+# CONFIG_CSD_LOCK_WAIT_DEBUG is not set
+# end of Lock Debugging (spinlocks, mutexes, etc...)
+
+CONFIG_STACKTRACE=y
+# CONFIG_WARN_ALL_UNSEEDED_RANDOM is not set
+# CONFIG_DEBUG_KOBJECT is not set
+CONFIG_HAVE_DEBUG_BUGVERBOSE=y
+
+#
+# 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_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_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_STARTUP_TEST is not set
+# CONFIG_RING_BUFFER_STARTUP_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_SAMPLES is not set
+CONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED=y
+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_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_MEMTEST is not set
+# end of Kernel Testing and Coverage
+# end of Kernel hacking
diff --git a/gnu/packages/aux-files/linux-libre/5.10-i686.conf b/gnu/packages/aux-files/linux-libre/5.10-i686.conf
new file mode 100644
index 0000000000..73ca45b879
--- /dev/null
+++ b/gnu/packages/aux-files/linux-libre/5.10-i686.conf
@@ -0,0 +1,10732 @@
+#
+# Automatically generated file; DO NOT EDIT.
+# Linux/i386 5.10.0 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_LD_VERSION=231010000
+CONFIG_CLANG_VERSION=0
+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_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_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_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_BPF=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_BPF_SYSCALL=y
+# CONFIG_BPF_PRELOAD is not set
+CONFIG_USERFAULTFD=y
+CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=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_SLUB_MEMCG_SYSFS_ON is not set
+# 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_CACHE_LINE_SIZE=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_ARCH_SUPPORTS_DEBUG_PAGEALLOC=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_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
+CONFIG_X86_THERMAL_VECTOR=y
+
+#
+# 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_ENABLE_MEMORY_HOTPLUG=y
+CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK=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_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_SFI=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=y
+# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL is not set
+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_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_OPROFILE=m
+# CONFIG_OPROFILE_EVENT_MULTIPLEX is not set
+CONFIG_HAVE_OPROFILE=y
+CONFIG_OPROFILE_NMI_TIMER=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_HAVE_ARCH_STACKLEAK=y
+CONFIG_HAVE_STACKPROTECTOR=y
+CONFIG_STACKPROTECTOR=y
+CONFIG_STACKPROTECTOR_STRONG=y
+CONFIG_HAVE_ARCH_WITHIN_STACK_FRAMES=y
+CONFIG_HAVE_IRQ_TIME_ACCOUNTING=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_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_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_ARCH_WANT_LD_ORPHAN_WARN=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=y
+CONFIG_MODULE_COMPRESS_GZIP=y
+# CONFIG_MODULE_COMPRESS_XZ is not set
+# CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS is not set
+CONFIG_UNUSED_SYMBOLS=y
+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_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_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_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_HMM_MIRROR=y
+CONFIG_VMAP_PFN=y
+CONFIG_FRAME_VECTOR=y
+# CONFIG_PERCPU_STATS is not set
+# CONFIG_GUP_BENCHMARK 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
+# 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_COMMON=m
+CONFIG_NF_LOG_NETDEV=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_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
+
+#
+# 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_LOG_BRIDGE=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_HAVE_NET_DSA=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_PREPEND=m
+CONFIG_NET_DSA_TAG_GSWIP=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_QCA=m
+CONFIG_NET_DSA_TAG_LAN9303=m
+CONFIG_NET_DSA_TAG_SJA1105=m
+CONFIG_NET_DSA_TAG_TRAILER=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_DEBUGFS=y
+# CONFIG_BATMAN_ADV_DEBUG is not set
+CONFIG_BATMAN_ADV_SYSFS=y
+# 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_RPS=y
+CONFIG_RFS_ACCEL=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_JIT is not set
+# 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_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_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_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
+# 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_WIMAX=m
+CONFIG_WIMAX_DEBUG_LEVEL=8
+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_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_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_SOCK_MSG=y
+CONFIG_NET_DEVLINK=y
+CONFIG_PAGE_POOL=y
+CONFIG_FAILOVER=y
+CONFIG_ETHTOOL_NETLINK=y
+CONFIG_HAVE_EBPF_JIT=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_BW is not set
+# 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_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_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
+# 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_NAND_ECC_SW_HAMMING=m
+# CONFIG_MTD_NAND_ECC_SW_HAMMING_SMC is not set
+CONFIG_MTD_RAW_NAND=m
+# CONFIG_MTD_NAND_ECC_SW_BCH is not set
+
+#
+# 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
+# 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_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_WRITEBACK is not set
+# CONFIG_ZRAM_MEMORY_TRACKING is not set
+CONFIG_BLK_DEV_UMEM=m
+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_PCI_ENDPOINT_TEST is not set
+CONFIG_XILINX_SDFEC=m
+CONFIG_MISC_RTSX=m
+CONFIG_PVPANIC=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_MISC_ALCOR_PCI=m
+CONFIG_MISC_RTSX_PCI=m
+CONFIG_MISC_RTSX_USB=m
+CONFIG_HABANA_AI=m
+CONFIG_UACCE=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_GDTH=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_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_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_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_MV88E6XXX=m
+CONFIG_NET_DSA_MV88E6XXX_GLOBAL2=y
+# 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_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_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_AURORA=y
+CONFIG_AURORA_NB8800=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_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_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_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_AXI_EMAC=m
+CONFIG_XILINX_LL_TEMAC=m
+CONFIG_NET_VENDOR_XIRCOM=y
+CONFIG_PCMCIA_XIRC2PS=m
+CONFIG_FDDI=y
+CONFIG_DEFXX=m
+# CONFIG_DEFXX_MMIO is not set
+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_MICREL_PHY=m
+CONFIG_MICROCHIP_PHY=m
+CONFIG_MICROCHIP_T1_PHY=m
+CONFIG_MICROSEMI_PHY=m
+CONFIG_NATIONAL_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_WLAN=y
+# CONFIG_WIRELESS_WDS is not set
+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_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
+
+#
+# WiMAX Wireless Broadband devices
+#
+CONFIG_WIMAX_I2400M=m
+CONFIG_WIMAX_I2400M_USB=m
+CONFIG_WIMAX_I2400M_DEBUG_LEVEL=8
+# end of WiMAX Wireless Broadband devices
+
+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_DLCI=m
+CONFIG_DLCI_MAX=8
+CONFIG_SDLA=m
+CONFIG_LAPBETHER=m
+CONFIG_X25_ASY=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_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_POLLDEV=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_GTCO=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_PROPERTIES=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_ILI210X=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_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_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_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_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_ALTERA_JTAGUART=m
+CONFIG_SERIAL_ALTERA_UART=m
+CONFIG_SERIAL_ALTERA_UART_MAXPORTS=4
+CONFIG_SERIAL_ALTERA_UART_BAUDRATE=115200
+# CONFIG_SERIAL_IFX6X60 is not set
+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_ROCKETPORT=m
+CONFIG_CYCLADES=m
+# CONFIG_CYZ_INTR is not set
+CONFIG_MOXA_INTELLIO=m
+CONFIG_MOXA_SMARTIO=m
+CONFIG_SYNCLINK=m
+CONFIG_SYNCLINKMP=m
+CONFIG_SYNCLINK_GT=m
+CONFIG_ISI=m
+CONFIG_N_HDLC=m
+CONFIG_N_GSM=m
+CONFIG_NOZOMI=m
+CONFIG_NULL_TTY=m
+CONFIG_TRACE_ROUTER=m
+CONFIG_TRACE_SINK=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_DEVKMEM is not set
+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_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_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_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_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
+# 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_BROXTON=m
+CONFIG_PINCTRL_CANNONLAKE=m
+CONFIG_PINCTRL_CEDARFORK=m
+CONFIG_PINCTRL_DENVERTON=m
+CONFIG_PINCTRL_EMMITSBURG=m
+CONFIG_PINCTRL_GEMINILAKE=m
+CONFIG_PINCTRL_ICELAKE=m
+CONFIG_PINCTRL_JASPERLAKE=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_REGMAP=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_XILINX=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_MSIC=y
+CONFIG_GPIO_PALMAS=y
+CONFIG_GPIO_RC5T583=y
+CONFIG_GPIO_SL28CPLD=m
+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
+
+CONFIG_GPIO_AGGREGATOR=m
+# CONFIG_GPIO_MOCKUP is not set
+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_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_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_SMB347=m
+CONFIG_CHARGER_TPS65090=m
+CONFIG_BATTERY_GAUGE_LTC2941=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_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_AMD_ENERGY=m
+CONFIG_SENSORS_APPLESMC=m
+CONFIG_SENSORS_ASB100=m
+CONFIG_SENSORS_ASPEED=m
+CONFIG_SENSORS_ATXP1=m
+CONFIG_SENSORS_CORSAIR_CPRO=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_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_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_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_PCF8591=m
+CONFIG_PMBUS=m
+CONFIG_SENSORS_PMBUS=m
+CONFIG_SENSORS_ADM1266=m
+CONFIG_SENSORS_ADM1275=m
+CONFIG_SENSORS_BEL_PFE=m
+CONFIG_SENSORS_IBM_CFFPS=m
+CONFIG_SENSORS_INSPUR_IPSPS=m
+CONFIG_SENSORS_IR35221=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_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_PXE1610=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_SL28CPLD=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_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
+# 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_SL28CPLD_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_MSIC=y
+CONFIG_MFD_INTEL_PMC_BXT=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_SIMPLE_MFD_I2C=m
+CONFIG_MFD_SL28CPLD=m
+CONFIG_MFD_SM501=m
+CONFIG_MFD_SM501_GPIO=y
+CONFIG_MFD_SKY81452=m
+CONFIG_ABX500_CORE=y
+CONFIG_AB3100_CORE=y
+CONFIG_AB3100_OTP=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_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_AB3100=m
+CONFIG_REGULATOR_ARIZONA_LDO1=m
+CONFIG_REGULATOR_ARIZONA_MICSUPP=m
+CONFIG_REGULATOR_AS3711=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_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_PFUZE100=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_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_SMIAPP_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_OV2640=m
+CONFIG_VIDEO_OV2659=m
+CONFIG_VIDEO_OV2680=m
+CONFIG_VIDEO_OV2685=m
+CONFIG_VIDEO_OV2740=m
+CONFIG_VIDEO_OV5647=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_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_RDACM20=m
+CONFIG_VIDEO_RJ54N1=m
+CONFIG_VIDEO_S5K6AA=m
+CONFIG_VIDEO_S5K6A3=m
+CONFIG_VIDEO_S5K4ECGX=m
+CONFIG_VIDEO_S5K5BAF=m
+CONFIG_VIDEO_SMIAPP=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
+
+#
+# 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_TTM_DMA_PAGE_POOL=y
+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
+# CONFIG_DRM_AMDGPU_GART_DEBUGFS is not set
+
+#
+# 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_DCN3_0=y
+# CONFIG_DRM_AMD_DC_HDCP is not set
+CONFIG_DRM_AMD_DC_SI=y
+# CONFIG_DEBUG_KERNEL_DC is not set
+# 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_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_GMA600=y
+CONFIG_DRM_GMA3600=y
+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_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_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=64
+CONFIG_SND_INTEL_NHLT=y
+CONFIG_SND_INTEL_DSP_CONFIG=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_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_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_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_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=m
+CONFIG_SND_SOC_SOF_ACPI=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_ACPI=m
+CONFIG_SND_SOC_SOF_INTEL_PCI=m
+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_BROADWELL_SUPPORT=y
+CONFIG_SND_SOC_SOF_BROADWELL=m
+CONFIG_SND_SOC_SOF_MERRIFIELD_SUPPORT=y
+CONFIG_SND_SOC_SOF_MERRIFIELD=m
+CONFIG_SND_SOC_SOF_APOLLOLAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_APOLLOLAKE=m
+CONFIG_SND_SOC_SOF_GEMINILAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_GEMINILAKE=m
+CONFIG_SND_SOC_SOF_CANNONLAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_CANNONLAKE=m
+CONFIG_SND_SOC_SOF_COFFEELAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_COFFEELAKE=m
+CONFIG_SND_SOC_SOF_ICELAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_ICELAKE=m
+CONFIG_SND_SOC_SOF_COMETLAKE=m
+CONFIG_SND_SOC_SOF_COMETLAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_COMETLAKE_LP_SUPPORT=y
+CONFIG_SND_SOC_SOF_TIGERLAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_TIGERLAKE=m
+CONFIG_SND_SOC_SOF_ELKHARTLAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_ELKHARTLAKE=m
+CONFIG_SND_SOC_SOF_JASPERLAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_JASPERLAKE=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_ZX_TDM=m
+CONFIG_SND_SOC_I2C_AND_SPI=m
+
+#
+# CODEC drivers
+#
+CONFIG_SND_SOC_AC97_CODEC=m
+CONFIG_SND_SOC_ADAU_UTILS=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_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_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_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_SIRF_AUDIO_CODEC=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_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_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_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
+# 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_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_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_PRIMAX=m
+CONFIG_HID_RETRODE=m
+CONFIG_HID_ROCCAT=m
+CONFIG_HID_SAITEK=m
+CONFIG_HID_SAMSUNG=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=m
+# 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=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_CDNS3=m
+# CONFIG_USB_CDNS3_GADGET is not set
+# CONFIG_USB_CDNS3_HOST is not set
+CONFIG_USB_CDNS3_PCI_WRAP=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
+#
+
+#
+# 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_XIRCOM=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_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_SISUSBVGA_CON is not set
+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
+
+#
+# Platform Support
+#
+CONFIG_USB_BDC_PCI=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_HD3SS3220=m
+CONFIG_TYPEC_TPS6598X=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
+
+#
+# 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
+
+#
+# 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_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_AMD64_ERROR_INJECTION is not set
+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_RX6110=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
+
+#
+# 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_AB3100=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_WILCO_EC=m
+CONFIG_DMADEVICES=y
+# CONFIG_DMADEVICES_DEBUG is not set
+
+#
+# DMA Devices
+#
+CONFIG_DMA_ENGINE=y
+CONFIG_DMA_VIRTUAL_CHANNELS=m
+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_XILINX_ZYNQMP_DPDMA=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
+
+#
+# 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_SELFTESTS is not set
+# CONFIG_DMABUF_HEAPS is not set
+# end of DMABUF options
+
+CONFIG_AUXDISPLAY=y
+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_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_CHARLCD=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_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_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_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_STAGING=y
+CONFIG_PRISM2_USB=m
+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_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_AD7150=m
+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_SOUND=m
+CONFIG_MOST_VIDEO=m
+CONFIG_MOST_I2C=m
+CONFIG_KS7010=m
+# CONFIG_PI433 is not set
+
+#
+# Gasket devices
+#
+# end of Gasket devices
+
+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_ALIENWARE_WMI=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_ACERHDF=m
+CONFIG_ACER_WIRELESS=m
+CONFIG_ACER_WMI=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_DCDBAS=m
+CONFIG_DELL_SMBIOS=m
+CONFIG_DELL_SMBIOS_WMI=y
+CONFIG_DELL_SMBIOS_SMM=y
+CONFIG_DELL_LAPTOP=m
+CONFIG_DELL_RBTN=m
+CONFIG_DELL_RBU=m
+CONFIG_DELL_SMO8800=m
+CONFIG_DELL_WMI=m
+CONFIG_DELL_WMI_DESCRIPTOR=m
+CONFIG_DELL_WMI_AIO=m
+CONFIG_DELL_WMI_LED=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_SURFACE3_WMI=m
+CONFIG_SURFACE_3_BUTTON=m
+CONFIG_SURFACE_3_POWER_OPREGION=m
+CONFIG_SURFACE_PRO3_BUTTON=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_MFLD_THERMAL=m
+CONFIG_INTEL_MID_POWER_BUTTON=m
+CONFIG_INTEL_MRFLD_PWRBTN=m
+CONFIG_INTEL_PMC_CORE=y
+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_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_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_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_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
+
+#
+# Aspeed SoC drivers
+#
+# end of Aspeed 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
+
+#
+# Qualcomm SoC drivers
+#
+CONFIG_QCOM_QMI_HELPERS=m
+# end of Qualcomm SoC drivers
+
+CONFIG_SOC_TI=y
+
+#
+# Xilinx SoC drivers
+#
+CONFIG_XILINX_VCU=m
+# 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_ARIZONA=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_MEMORY=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=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_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_AD9467=m
+CONFIG_ADI_AXI_ADC=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_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_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
+
+#
+# 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
+
+#
+# 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_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
+# 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
+# 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_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_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_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_SL28CPLD=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_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
+
+#
+# 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
+
+#
+# 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_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_MOST=m
+CONFIG_MOST_USB_HDM=m
+CONFIG_MOST_CDEV=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_IO_TRACE 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_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_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_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_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_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_GLUE_HELPER_X86=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_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_RMD128=m
+CONFIG_CRYPTO_RMD160=m
+CONFIG_CRYPTO_RMD256=m
+CONFIG_CRYPTO_RMD320=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_TGR192=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_SALSA20=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_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_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
+
+#
+# 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_ENABLE_MUST_CHECK 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_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_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
+# 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_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_RING_BUFFER_ALLOW_SWAP=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 is not set
+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_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_STARTUP_TEST is not set
+# CONFIG_RING_BUFFER_STARTUP_TEST 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_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_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.10-x86_64.conf b/gnu/packages/aux-files/linux-libre/5.10-x86_64.conf
new file mode 100644
index 0000000000..8e0771ff44
--- /dev/null
+++ b/gnu/packages/aux-files/linux-libre/5.10-x86_64.conf
@@ -0,0 +1,10726 @@
+#
+# Automatically generated file; DO NOT EDIT.
+# Linux/x86 5.10.0 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_LD_VERSION=231010000
+CONFIG_CLANG_VERSION=0
+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_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_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_BPF=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_MEMBARRIER=y
+CONFIG_KALLSYMS=y
+CONFIG_KALLSYMS_ALL=y
+CONFIG_KALLSYMS_ABSOLUTE_PERCPU=y
+CONFIG_KALLSYMS_BASE_RELATIVE=y
+CONFIG_BPF_SYSCALL=y
+CONFIG_ARCH_WANT_DEFAULT_BPF_JIT=y
+# CONFIG_BPF_PRELOAD is not set
+CONFIG_USERFAULTFD=y
+CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=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_SLUB_MEMCG_SYSFS_ON is not set
+# 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_CACHE_LINE_SIZE=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_ARCH_SUPPORTS_DEBUG_PAGEALLOC=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_PV_SMP=y
+CONFIG_XEN_DOM0=y
+CONFIG_XEN_PVHVM=y
+CONFIG_XEN_PVHVM_SMP=y
+CONFIG_XEN_512GB=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
+CONFIG_X86_THERMAL_VECTOR=y
+
+#
+# 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_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_ENABLE_MEMORY_HOTPLUG=y
+CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
+CONFIG_USE_PERCPU_NUMA_NODE_ID=y
+CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK=y
+CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION=y
+CONFIG_ARCH_ENABLE_THP_MIGRATION=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_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_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
+CONFIG_SFI=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=y
+# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL is not set
+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_KVM_AMD=m
+CONFIG_KVM_AMD_SEV=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_OPROFILE=m
+# CONFIG_OPROFILE_EVENT_MULTIPLEX is not set
+CONFIG_HAVE_OPROFILE=y
+CONFIG_OPROFILE_NMI_TIMER=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_HAVE_ARCH_STACKLEAK=y
+CONFIG_HAVE_STACKPROTECTOR=y
+CONFIG_STACKPROTECTOR=y
+CONFIG_STACKPROTECTOR_STRONG=y
+CONFIG_HAVE_ARCH_WITHIN_STACK_FRAMES=y
+CONFIG_HAVE_CONTEXT_TRACKING=y
+CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y
+CONFIG_HAVE_IRQ_TIME_ACCOUNTING=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_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_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_ARCH_WANT_LD_ORPHAN_WARN=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=y
+CONFIG_MODULE_COMPRESS_GZIP=y
+# CONFIG_MODULE_COMPRESS_XZ is not set
+# CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS is not set
+CONFIG_UNUSED_SYMBOLS=y
+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_MEMORY_HOTPLUG=y
+CONFIG_MEMORY_HOTPLUG_SPARSE=y
+# CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE is not set
+CONFIG_MEMORY_HOTREMOVE=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_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_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_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_FRAME_VECTOR=y
+CONFIG_ARCH_USES_HIGH_VMA_FLAGS=y
+CONFIG_ARCH_HAS_PKEYS=y
+# CONFIG_PERCPU_STATS is not set
+# CONFIG_GUP_BENCHMARK 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_COMMON=m
+CONFIG_NF_LOG_NETDEV=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_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
+
+#
+# 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_LOG_BRIDGE=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_HAVE_NET_DSA=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_PREPEND=m
+CONFIG_NET_DSA_TAG_GSWIP=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_QCA=m
+CONFIG_NET_DSA_TAG_LAN9303=m
+CONFIG_NET_DSA_TAG_SJA1105=m
+CONFIG_NET_DSA_TAG_TRAILER=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_DEBUGFS=y
+# CONFIG_BATMAN_ADV_DEBUG is not set
+CONFIG_BATMAN_ADV_SYSFS=y
+# 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_RPS=y
+CONFIG_RFS_ACCEL=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_JIT is not set
+# 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_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_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_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
+# 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_WIMAX=m
+CONFIG_WIMAX_DEBUG_LEVEL=8
+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_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_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_SOCK_MSG=y
+CONFIG_NET_DEVLINK=y
+CONFIG_PAGE_POOL=y
+CONFIG_FAILOVER=y
+CONFIG_ETHTOOL_NETLINK=y
+CONFIG_HAVE_EBPF_JIT=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_BW is not set
+# 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 is not set
+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_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_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_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
+# 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_NAND_ECC_SW_HAMMING=m
+# CONFIG_MTD_NAND_ECC_SW_HAMMING_SMC is not set
+CONFIG_MTD_RAW_NAND=m
+# CONFIG_MTD_NAND_ECC_SW_BCH is not set
+
+#
+# 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
+# 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_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_WRITEBACK is not set
+# CONFIG_ZRAM_MEMORY_TRACKING is not set
+CONFIG_BLK_DEV_UMEM=m
+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_SKD=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_PCI_ENDPOINT_TEST is not set
+CONFIG_XILINX_SDFEC=m
+CONFIG_MISC_RTSX=m
+CONFIG_PVPANIC=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_MISC_ALCOR_PCI=m
+CONFIG_MISC_RTSX_PCI=m
+CONFIG_MISC_RTSX_USB=m
+CONFIG_HABANA_AI=m
+CONFIG_UACCE=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_GDTH=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_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_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_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_MV88E6XXX=m
+CONFIG_NET_DSA_MV88E6XXX_GLOBAL2=y
+# 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_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_AURORA=y
+CONFIG_AURORA_NB8800=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_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_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_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_AXI_EMAC=m
+CONFIG_XILINX_LL_TEMAC=m
+CONFIG_NET_VENDOR_XIRCOM=y
+CONFIG_PCMCIA_XIRC2PS=m
+CONFIG_FDDI=y
+CONFIG_DEFXX=m
+# CONFIG_DEFXX_MMIO is not set
+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_MICREL_PHY=m
+CONFIG_MICROCHIP_PHY=m
+CONFIG_MICROCHIP_T1_PHY=m
+CONFIG_MICROSEMI_PHY=m
+CONFIG_NATIONAL_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_WLAN=y
+# CONFIG_WIRELESS_WDS is not set
+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_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
+
+#
+# WiMAX Wireless Broadband devices
+#
+CONFIG_WIMAX_I2400M=m
+CONFIG_WIMAX_I2400M_USB=m
+CONFIG_WIMAX_I2400M_DEBUG_LEVEL=8
+# end of WiMAX Wireless Broadband devices
+
+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_DLCI=m
+CONFIG_DLCI_MAX=8
+CONFIG_LAPBETHER=m
+CONFIG_X25_ASY=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_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_POLLDEV=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_GTCO=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_PROPERTIES=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_ILI210X=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_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_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_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_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_ALTERA_JTAGUART=m
+CONFIG_SERIAL_ALTERA_UART=m
+CONFIG_SERIAL_ALTERA_UART_MAXPORTS=4
+CONFIG_SERIAL_ALTERA_UART_BAUDRATE=115200
+# CONFIG_SERIAL_IFX6X60 is not set
+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_ROCKETPORT=m
+CONFIG_CYCLADES=m
+# CONFIG_CYZ_INTR is not set
+CONFIG_MOXA_INTELLIO=m
+CONFIG_MOXA_SMARTIO=m
+CONFIG_SYNCLINK=m
+CONFIG_SYNCLINKMP=m
+CONFIG_SYNCLINK_GT=m
+CONFIG_ISI=m
+CONFIG_N_HDLC=m
+CONFIG_N_GSM=m
+CONFIG_NOZOMI=m
+CONFIG_NULL_TTY=m
+CONFIG_TRACE_ROUTER=m
+CONFIG_TRACE_SINK=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_DEVKMEM is not set
+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_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_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_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_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
+# 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_BROXTON=m
+CONFIG_PINCTRL_CANNONLAKE=m
+CONFIG_PINCTRL_CEDARFORK=m
+CONFIG_PINCTRL_DENVERTON=m
+CONFIG_PINCTRL_EMMITSBURG=m
+CONFIG_PINCTRL_GEMINILAKE=m
+CONFIG_PINCTRL_ICELAKE=m
+CONFIG_PINCTRL_JASPERLAKE=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_REGMAP=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_XILINX=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_MSIC=y
+CONFIG_GPIO_PALMAS=y
+CONFIG_GPIO_RC5T583=y
+CONFIG_GPIO_SL28CPLD=m
+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
+
+CONFIG_GPIO_AGGREGATOR=m
+# CONFIG_GPIO_MOCKUP is not set
+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_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_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_SMB347=m
+CONFIG_CHARGER_TPS65090=m
+CONFIG_BATTERY_GAUGE_LTC2941=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_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_AMD_ENERGY=m
+CONFIG_SENSORS_APPLESMC=m
+CONFIG_SENSORS_ASB100=m
+CONFIG_SENSORS_ASPEED=m
+CONFIG_SENSORS_ATXP1=m
+CONFIG_SENSORS_CORSAIR_CPRO=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_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_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_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_PCF8591=m
+CONFIG_PMBUS=m
+CONFIG_SENSORS_PMBUS=m
+CONFIG_SENSORS_ADM1266=m
+CONFIG_SENSORS_ADM1275=m
+CONFIG_SENSORS_BEL_PFE=m
+CONFIG_SENSORS_IBM_CFFPS=m
+CONFIG_SENSORS_INSPUR_IPSPS=m
+CONFIG_SENSORS_IR35221=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_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_PXE1610=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_SL28CPLD=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_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=y
+# end of ACPI INT340X thermal drivers
+
+CONFIG_INTEL_BXT_PMIC_THERMAL=m
+CONFIG_INTEL_PCH_THERMAL=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_SL28CPLD_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_MSIC=y
+CONFIG_MFD_INTEL_PMC_BXT=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_SIMPLE_MFD_I2C=m
+CONFIG_MFD_SL28CPLD=m
+CONFIG_MFD_SM501=m
+CONFIG_MFD_SM501_GPIO=y
+CONFIG_MFD_SKY81452=m
+CONFIG_ABX500_CORE=y
+CONFIG_AB3100_CORE=y
+CONFIG_AB3100_OTP=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_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_AB3100=m
+CONFIG_REGULATOR_ARIZONA_LDO1=m
+CONFIG_REGULATOR_ARIZONA_MICSUPP=m
+CONFIG_REGULATOR_AS3711=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_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_PFUZE100=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_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_SMIAPP_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_OV2640=m
+CONFIG_VIDEO_OV2659=m
+CONFIG_VIDEO_OV2680=m
+CONFIG_VIDEO_OV2685=m
+CONFIG_VIDEO_OV2740=m
+CONFIG_VIDEO_OV5647=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_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_RDACM20=m
+CONFIG_VIDEO_RJ54N1=m
+CONFIG_VIDEO_S5K6AA=m
+CONFIG_VIDEO_S5K6A3=m
+CONFIG_VIDEO_S5K4ECGX=m
+CONFIG_VIDEO_S5K5BAF=m
+CONFIG_VIDEO_SMIAPP=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
+
+#
+# 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_TTM_DMA_PAGE_POOL=y
+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
+# CONFIG_DRM_AMDGPU_GART_DEBUGFS is not set
+
+#
+# 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_DCN3_0=y
+# CONFIG_DRM_AMD_DC_HDCP is not set
+CONFIG_DRM_AMD_DC_SI=y
+# CONFIG_DEBUG_KERNEL_DC is not set
+# 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_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_GMA600=y
+CONFIG_DRM_GMA3600=y
+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_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_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=64
+CONFIG_SND_INTEL_NHLT=y
+CONFIG_SND_INTEL_DSP_CONFIG=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_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_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_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_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=m
+CONFIG_SND_SOC_SOF_ACPI=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_ACPI=m
+CONFIG_SND_SOC_SOF_INTEL_PCI=m
+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_BROADWELL_SUPPORT=y
+CONFIG_SND_SOC_SOF_BROADWELL=m
+CONFIG_SND_SOC_SOF_MERRIFIELD_SUPPORT=y
+CONFIG_SND_SOC_SOF_MERRIFIELD=m
+CONFIG_SND_SOC_SOF_APOLLOLAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_APOLLOLAKE=m
+CONFIG_SND_SOC_SOF_GEMINILAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_GEMINILAKE=m
+CONFIG_SND_SOC_SOF_CANNONLAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_CANNONLAKE=m
+CONFIG_SND_SOC_SOF_COFFEELAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_COFFEELAKE=m
+CONFIG_SND_SOC_SOF_ICELAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_ICELAKE=m
+CONFIG_SND_SOC_SOF_COMETLAKE=m
+CONFIG_SND_SOC_SOF_COMETLAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_COMETLAKE_LP_SUPPORT=y
+CONFIG_SND_SOC_SOF_TIGERLAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_TIGERLAKE=m
+CONFIG_SND_SOC_SOF_ELKHARTLAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_ELKHARTLAKE=m
+CONFIG_SND_SOC_SOF_JASPERLAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_JASPERLAKE=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_ZX_TDM=m
+CONFIG_SND_SOC_I2C_AND_SPI=m
+
+#
+# CODEC drivers
+#
+CONFIG_SND_SOC_AC97_CODEC=m
+CONFIG_SND_SOC_ADAU_UTILS=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_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_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_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_SIRF_AUDIO_CODEC=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_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_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_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
+# 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_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_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_PRIMAX=m
+CONFIG_HID_RETRODE=m
+CONFIG_HID_ROCCAT=m
+CONFIG_HID_SAITEK=m
+CONFIG_HID_SAMSUNG=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=m
+# end of I2C HID support
+
+#
+# Intel ISH HID support
+#
+CONFIG_INTEL_ISH_HID=m
+# CONFIG_INTEL_ISH_FIRMWARE_DOWNLOADER is not set
+# end of Intel ISH 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=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_CDNS3=m
+# CONFIG_USB_CDNS3_GADGET is not set
+# CONFIG_USB_CDNS3_HOST is not set
+CONFIG_USB_CDNS3_PCI_WRAP=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
+#
+
+#
+# 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_XIRCOM=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_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_SISUSBVGA_CON is not set
+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
+
+#
+# Platform Support
+#
+CONFIG_USB_BDC_PCI=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_HD3SS3220=m
+CONFIG_TYPEC_TPS6598X=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
+
+#
+# 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
+
+#
+# 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_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_AMD64_ERROR_INJECTION is not set
+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_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_RX6110=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
+
+#
+# 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_AB3100=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_WILCO_EC=m
+CONFIG_DMADEVICES=y
+# CONFIG_DMADEVICES_DEBUG is not set
+
+#
+# DMA Devices
+#
+CONFIG_DMA_ENGINE=y
+CONFIG_DMA_VIRTUAL_CHANNELS=m
+CONFIG_DMA_ACPI=y
+CONFIG_ALTERA_MSGDMA=m
+CONFIG_INTEL_IDMA64=m
+CONFIG_INTEL_IDXD=m
+CONFIG_INTEL_IOATDMA=m
+CONFIG_PLX_DMA=m
+CONFIG_XILINX_ZYNQMP_DPDMA=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
+
+#
+# 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_SELFTESTS is not set
+# CONFIG_DMABUF_HEAPS is not set
+# end of DMABUF options
+
+CONFIG_DCA=m
+CONFIG_AUXDISPLAY=y
+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_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_CHARLCD=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_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_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_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_BALLOON_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_STAGING=y
+CONFIG_PRISM2_USB=m
+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_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_AD7150=m
+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_SOUND=m
+CONFIG_MOST_VIDEO=m
+CONFIG_MOST_I2C=m
+CONFIG_KS7010=m
+# CONFIG_PI433 is not set
+
+#
+# Gasket devices
+#
+CONFIG_STAGING_GASKET_FRAMEWORK=m
+CONFIG_STAGING_APEX_DRIVER=m
+# end of Gasket devices
+
+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_ALIENWARE_WMI=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_ACERHDF=m
+CONFIG_ACER_WIRELESS=m
+CONFIG_ACER_WMI=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_DCDBAS=m
+CONFIG_DELL_SMBIOS=m
+CONFIG_DELL_SMBIOS_WMI=y
+CONFIG_DELL_SMBIOS_SMM=y
+CONFIG_DELL_LAPTOP=m
+CONFIG_DELL_RBTN=m
+CONFIG_DELL_RBU=m
+CONFIG_DELL_SMO8800=m
+CONFIG_DELL_WMI=m
+CONFIG_DELL_WMI_DESCRIPTOR=m
+CONFIG_DELL_WMI_AIO=m
+CONFIG_DELL_WMI_LED=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_SURFACE3_WMI=m
+CONFIG_SURFACE_3_BUTTON=m
+CONFIG_SURFACE_3_POWER_OPREGION=m
+CONFIG_SURFACE_PRO3_BUTTON=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_MFLD_THERMAL=m
+CONFIG_INTEL_MID_POWER_BUTTON=m
+CONFIG_INTEL_MRFLD_PWRBTN=m
+CONFIG_INTEL_PMC_CORE=y
+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_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_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
+#
+# 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_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
+
+#
+# Aspeed SoC drivers
+#
+# end of Aspeed 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
+
+#
+# Qualcomm SoC drivers
+#
+CONFIG_QCOM_QMI_HELPERS=m
+# end of Qualcomm SoC drivers
+
+CONFIG_SOC_TI=y
+
+#
+# Xilinx SoC drivers
+#
+CONFIG_XILINX_VCU=m
+# 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_ARIZONA=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_MEMORY=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=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_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_AD9467=m
+CONFIG_ADI_AXI_ADC=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_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_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
+
+#
+# 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
+
+#
+# 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_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
+# 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
+# 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_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_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_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_SL28CPLD=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_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
+
+#
+# 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
+
+#
+# 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_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_MOST=m
+CONFIG_MOST_USB_HDM=m
+CONFIG_MOST_CDEV=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_IO_TRACE 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_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_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_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_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_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_GLUE_HELPER_X86=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_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_RMD128=m
+CONFIG_CRYPTO_RMD160=m
+CONFIG_CRYPTO_RMD256=m
+CONFIG_CRYPTO_RMD320=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_TGR192=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_SALSA20=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_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_DMA_VIRT_OPS=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_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
+
+#
+# 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_ENABLE_MUST_CHECK 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_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_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
+# 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_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_RING_BUFFER_ALLOW_SWAP=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 is not set
+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_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_STARTUP_TEST is not set
+# CONFIG_RING_BUFFER_STARTUP_TEST 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_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_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.4-arm.conf b/gnu/packages/aux-files/linux-libre/5.4-arm.conf
index a54228643b..12654de3c6 100644
--- a/gnu/packages/aux-files/linux-libre/5.4-arm.conf
+++ b/gnu/packages/aux-files/linux-libre/5.4-arm.conf
@@ -880,7 +880,9 @@ CONFIG_MODULE_FORCE_UNLOAD=y
 CONFIG_MODVERSIONS=y
 # CONFIG_MODULE_SRCVERSION_ALL is not set
 # CONFIG_MODULE_SIG is not set
-# CONFIG_MODULE_COMPRESS is not set
+CONFIG_MODULE_COMPRESS=y
+CONFIG_MODULE_COMPRESS_GZIP=y
+# CONFIG_MODULE_COMPRESS_XZ is not set
 # CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS is not set
 # CONFIG_UNUSED_SYMBOLS is not set
 # CONFIG_TRIM_UNUSED_KSYMS is not set
@@ -1032,7 +1034,8 @@ CONFIG_XFRM_IPCOMP=m
 CONFIG_NET_KEY=m
 CONFIG_NET_KEY_MIGRATE=y
 # CONFIG_SMC is not set
-# CONFIG_XDP_SOCKETS is not set
+CONFIG_XDP_SOCKETS=y
+CONFIG_XDP_SOCKETS_DIAG=m
 CONFIG_INET=y
 CONFIG_IP_MULTICAST=y
 CONFIG_IP_ADVANCED_ROUTER=y
diff --git a/gnu/packages/aux-files/linux-libre/5.4-arm64.conf b/gnu/packages/aux-files/linux-libre/5.4-arm64.conf
index fabd25c6a4..45cfdaa85c 100644
--- a/gnu/packages/aux-files/linux-libre/5.4-arm64.conf
+++ b/gnu/packages/aux-files/linux-libre/5.4-arm64.conf
@@ -781,7 +781,9 @@ CONFIG_MODVERSIONS=y
 CONFIG_ASM_MODVERSIONS=y
 # CONFIG_MODULE_SRCVERSION_ALL is not set
 # CONFIG_MODULE_SIG is not set
-# CONFIG_MODULE_COMPRESS is not set
+CONFIG_MODULE_COMPRESS=y
+CONFIG_MODULE_COMPRESS_GZIP=y
+# CONFIG_MODULE_COMPRESS_XZ is not set
 # CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS is not set
 # CONFIG_UNUSED_SYMBOLS is not set
 # CONFIG_TRIM_UNUSED_KSYMS is not set
@@ -1006,7 +1008,8 @@ CONFIG_XFRM_IPCOMP=m
 CONFIG_NET_KEY=m
 CONFIG_NET_KEY_MIGRATE=y
 # CONFIG_SMC is not set
-# CONFIG_XDP_SOCKETS is not set
+CONFIG_XDP_SOCKETS=y
+CONFIG_XDP_SOCKETS_DIAG=m
 CONFIG_INET=y
 CONFIG_IP_MULTICAST=y
 CONFIG_IP_ADVANCED_ROUTER=y
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 50a41f6cc9..cc2d8dde01 100644
--- a/gnu/packages/aux-files/linux-libre/5.4-i686.conf
+++ b/gnu/packages/aux-files/linux-libre/5.4-i686.conf
@@ -850,7 +850,9 @@ CONFIG_MODVERSIONS=y
 CONFIG_ASM_MODVERSIONS=y
 CONFIG_MODULE_SRCVERSION_ALL=y
 # CONFIG_MODULE_SIG is not set
-# CONFIG_MODULE_COMPRESS is not set
+CONFIG_MODULE_COMPRESS=y
+CONFIG_MODULE_COMPRESS_GZIP=y
+# CONFIG_MODULE_COMPRESS_XZ is not set
 # CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS is not set
 CONFIG_UNUSED_SYMBOLS=y
 CONFIG_MODULES_TREE_LOOKUP=y
@@ -1025,7 +1027,8 @@ CONFIG_XFRM_IPCOMP=m
 CONFIG_NET_KEY=m
 # CONFIG_NET_KEY_MIGRATE is not set
 # CONFIG_SMC is not set
-# CONFIG_XDP_SOCKETS is not set
+CONFIG_XDP_SOCKETS=y
+CONFIG_XDP_SOCKETS_DIAG=m
 CONFIG_INET=y
 CONFIG_IP_MULTICAST=y
 CONFIG_IP_ADVANCED_ROUTER=y
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 30fdc4e86a..2e2804879a 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
@@ -849,7 +849,9 @@ CONFIG_MODVERSIONS=y
 CONFIG_ASM_MODVERSIONS=y
 CONFIG_MODULE_SRCVERSION_ALL=y
 # CONFIG_MODULE_SIG is not set
-# CONFIG_MODULE_COMPRESS is not set
+CONFIG_MODULE_COMPRESS=y
+CONFIG_MODULE_COMPRESS_GZIP=y
+# CONFIG_MODULE_COMPRESS_XZ is not set
 # CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS is not set
 CONFIG_UNUSED_SYMBOLS=y
 CONFIG_MODULES_TREE_LOOKUP=y
@@ -1042,7 +1044,8 @@ CONFIG_XFRM_IPCOMP=m
 CONFIG_NET_KEY=m
 # CONFIG_NET_KEY_MIGRATE is not set
 # CONFIG_SMC is not set
-# CONFIG_XDP_SOCKETS is not set
+CONFIG_XDP_SOCKETS=y
+CONFIG_XDP_SOCKETS_DIAG=m
 CONFIG_INET=y
 CONFIG_IP_MULTICAST=y
 CONFIG_IP_ADVANCED_ROUTER=y
diff --git a/gnu/packages/aux-files/linux-libre/5.7-arm.conf b/gnu/packages/aux-files/linux-libre/5.9-arm.conf
index 6ed8459b26..1d1a86250e 100644
--- a/gnu/packages/aux-files/linux-libre/5.7-arm.conf
+++ b/gnu/packages/aux-files/linux-libre/5.9-arm.conf
@@ -1,16 +1,12 @@
 #
 # Automatically generated file; DO NOT EDIT.
-# Linux/arm 5.7.12-gnu Kernel Configuration
-#
-
-#
-# Compiler: gcc (Debian 8.3.0-6) 8.3.0
+# Linux/arm 5.9.2 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_LD_VERSION=231010000
 CONFIG_CLANG_VERSION=0
-CONFIG_CC_CAN_LINK=y
 CONFIG_CC_HAS_ASM_GOTO=y
 CONFIG_CC_HAS_ASM_INLINE=y
 CONFIG_IRQ_WORK=y
@@ -34,12 +30,14 @@ CONFIG_HAVE_KERNEL_LZ4=y
 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
@@ -115,6 +113,8 @@ 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_RCU_STALL_COMMON=y
 CONFIG_RCU_NEED_SEGCBLIST=y
 # end of RCU Subsystem
@@ -137,7 +137,6 @@ CONFIG_CGROUPS=y
 CONFIG_PAGE_COUNTER=y
 CONFIG_MEMCG=y
 CONFIG_MEMCG_SWAP=y
-# CONFIG_MEMCG_SWAP_ENABLED is not set
 CONFIG_MEMCG_KMEM=y
 CONFIG_BLK_CGROUP=y
 CONFIG_CGROUP_WRITEBACK=y
@@ -174,6 +173,7 @@ 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
@@ -232,6 +232,7 @@ CONFIG_SLAB=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_SYSTEM_DATA_VERIFICATION=y
 CONFIG_PROFILING=y
@@ -394,6 +395,9 @@ CONFIG_SOC_IMX6Q=y
 # 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
@@ -458,6 +462,7 @@ CONFIG_MACH_OMAP3_PANDORA=y
 # CONFIG_ARCH_SIRF is not set
 # 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
@@ -605,6 +610,9 @@ CONFIG_ARM_PATCH_IDIV=y
 CONFIG_AEABI=y
 # CONFIG_OABI_COMPAT is not set
 CONFIG_ARCH_HAS_HOLES_MEMORYMODEL=y
+CONFIG_ARCH_SELECT_MEMORY_MODEL=y
+CONFIG_ARCH_FLATMEM_ENABLE=y
+CONFIG_ARCH_SPARSEMEM_ENABLE=y
 CONFIG_HAVE_ARCH_PFN_VALID=y
 CONFIG_HIGHMEM=y
 CONFIG_HIGHPTE=y
@@ -682,10 +690,9 @@ 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=y
+CONFIG_ARM_TEGRA20_CPUFREQ=m
 CONFIG_ARM_TEGRA124_CPUFREQ=y
 # CONFIG_ARM_TI_CPUFREQ is not set
-# CONFIG_QORIQ_CPUFREQ is not set
 # end of CPU Frequency scaling
 
 #
@@ -717,6 +724,7 @@ 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
@@ -752,8 +760,6 @@ CONFIG_DMI_SYSFS=y
 CONFIG_RASPBERRYPI_FIRMWARE=y
 CONFIG_TRUSTED_FOUNDATIONS=y
 # CONFIG_TURRIS_MOX_RWTM is not set
-CONFIG_HAVE_ARM_SMCCC=y
-CONFIG_ARM_PSCI_FW=y
 # CONFIG_GOOGLE_FIRMWARE is not set
 
 #
@@ -763,8 +769,9 @@ CONFIG_EFI_VARS=m
 CONFIG_EFI_ESRT=y
 CONFIG_EFI_PARAMS_FROM_FDT=y
 CONFIG_EFI_RUNTIME_WRAPPERS=y
-CONFIG_EFI_ARMSTUB=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
@@ -774,6 +781,10 @@ CONFIG_RESET_ATTACK_MITIGATION=y
 
 # 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
@@ -820,7 +831,6 @@ 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_CLK=y
 CONFIG_HAVE_HW_BREAKPOINT=y
 CONFIG_HAVE_PERF_REGS=y
 CONFIG_HAVE_PERF_USER_STACK_DUMP=y
@@ -829,7 +839,6 @@ CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y
 CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
 CONFIG_SECCOMP_FILTER=y
 CONFIG_HAVE_STACKPROTECTOR=y
-CONFIG_CC_HAS_STACKPROTECTOR_NONE=y
 CONFIG_STACKPROTECTOR=y
 CONFIG_STACKPROTECTOR_STRONG=y
 CONFIG_HAVE_CONTEXT_TRACKING=y
@@ -842,7 +851,6 @@ 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_HAVE_COPY_THREAD_TLS=y
 CONFIG_CLONE_BACKWARDS=y
 CONFIG_OLD_SIGSUSPEND3=y
 CONFIG_OLD_SIGACTION=y
@@ -875,7 +883,9 @@ CONFIG_MODULE_FORCE_UNLOAD=y
 CONFIG_MODVERSIONS=y
 # CONFIG_MODULE_SRCVERSION_ALL is not set
 # CONFIG_MODULE_SIG is not set
-# CONFIG_MODULE_COMPRESS is not set
+CONFIG_MODULE_COMPRESS=y
+CONFIG_MODULE_COMPRESS_GZIP=y
+# CONFIG_MODULE_COMPRESS_XZ is not set
 # CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS is not set
 # CONFIG_UNUSED_SYMBOLS is not set
 # CONFIG_TRIM_UNUSED_KSYMS is not set
@@ -898,6 +908,8 @@ 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
@@ -971,6 +983,9 @@ CONFIG_COREDUMP=y
 #
 # 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
@@ -1009,7 +1024,6 @@ CONFIG_ZPOOL=y
 CONFIG_ZBUD=y
 # CONFIG_Z3FOLD is not set
 CONFIG_ZSMALLOC=m
-# CONFIG_PGTABLE_MAPPING is not set
 # CONFIG_ZSMALLOC_STAT is not set
 CONFIG_GENERIC_EARLY_IOREMAP=y
 # CONFIG_IDLE_PAGE_TRACKING is not set
@@ -1040,11 +1054,14 @@ 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 is not set
+CONFIG_XDP_SOCKETS=y
+CONFIG_XDP_SOCKETS_DIAG=m
 CONFIG_INET=y
 CONFIG_IP_MULTICAST=y
 CONFIG_IP_ADVANCED_ROUTER=y
@@ -1109,6 +1126,7 @@ 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
@@ -1132,8 +1150,8 @@ CONFIG_IPV6_PIMSM_V2=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_MPTCP_HMAC_TEST is not set
 CONFIG_NETWORK_SECMARK=y
 CONFIG_NET_PTP_CLASSIFY=y
 # CONFIG_NETWORK_PHY_TIMESTAMPING is not set
@@ -1543,6 +1561,7 @@ CONFIG_MRP=m
 CONFIG_BRIDGE=m
 CONFIG_BRIDGE_IGMP_SNOOPING=y
 CONFIG_BRIDGE_VLAN_FILTERING=y
+CONFIG_BRIDGE_MRP=y
 CONFIG_HAVE_NET_DSA=y
 CONFIG_NET_DSA=m
 CONFIG_NET_DSA_TAG_8021Q=m
@@ -1555,6 +1574,7 @@ 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_QCA=m
 CONFIG_NET_DSA_TAG_LAN9303=m
@@ -1682,6 +1702,7 @@ 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
@@ -1717,6 +1738,9 @@ 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_RPS=y
 CONFIG_RFS_ACCEL=y
@@ -1809,8 +1833,9 @@ CONFIG_BT_HS=y
 CONFIG_BT_LE=y
 CONFIG_BT_6LOWPAN=m
 # CONFIG_BT_LEDS is not set
-# CONFIG_BT_SELFTEST is not set
+CONFIG_BT_MSFTEXT=y
 CONFIG_BT_DEBUGFS=y
+# CONFIG_BT_SELFTEST is not set
 
 #
 # Bluetooth device drivers
@@ -1997,6 +2022,7 @@ 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
 
@@ -2167,6 +2193,9 @@ CONFIG_MTD_SST25L=m
 # CONFIG_MTD_DOCG3 is not set
 # end of Self-contained MTD device drivers
 
+#
+# NAND
+#
 CONFIG_MTD_NAND_CORE=m
 CONFIG_MTD_ONENAND=y
 CONFIG_MTD_ONENAND_VERIFY_WRITE=y
@@ -2199,6 +2228,7 @@ 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
 
 #
 # Misc
@@ -2208,6 +2238,7 @@ CONFIG_MTD_NAND_NANDSIM=m
 CONFIG_MTD_NAND_RICOH=m
 # CONFIG_MTD_NAND_DISKONCHIP is not set
 CONFIG_MTD_SPI_NAND=m
+# end of NAND
 
 #
 # LPDDR & LPDDR2 PCM memory drivers
@@ -2219,7 +2250,6 @@ CONFIG_MTD_QINFO_PROBE=m
 
 CONFIG_MTD_SPI_NOR=m
 CONFIG_MTD_SPI_NOR_USE_4K_SECTORS=y
-# CONFIG_SPI_CADENCE_QUADSPI is not set
 CONFIG_MTD_UBI=m
 CONFIG_MTD_UBI_WL_THRESHOLD=4096
 CONFIG_MTD_UBI_BEB_LIMIT=20
@@ -2272,6 +2302,9 @@ 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
@@ -2285,6 +2318,7 @@ 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
@@ -2316,7 +2350,6 @@ CONFIG_DS1682=m
 # CONFIG_LATTICE_ECP3_CONFIG is not set
 CONFIG_SRAM=y
 CONFIG_SRAM_EXEC=y
-CONFIG_VEXPRESS_SYSCFG=y
 # CONFIG_PCI_ENDPOINT_TEST is not set
 CONFIG_XILINX_SDFEC=m
 CONFIG_MISC_RTSX=m
@@ -2440,6 +2473,7 @@ 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
@@ -2600,6 +2634,7 @@ CONFIG_MD_FAULTY=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=m
 # CONFIG_DM_DEBUG is not set
@@ -2614,6 +2649,7 @@ 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
@@ -2623,6 +2659,7 @@ 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_DELAY=m
 CONFIG_DM_DUST=m
 CONFIG_DM_UEVENT=y
@@ -2910,6 +2947,7 @@ 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_CORE_EN_DCB=y
 # CONFIG_MLX5_CORE_IPOIB is not set
 CONFIG_MLX5_SW_STEERING=y
@@ -2926,8 +2964,8 @@ CONFIG_ENC28J60=m
 # 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_MSCC_OCELOT_SWITCH_OCELOT=m
 CONFIG_NET_VENDOR_MYRI=y
 CONFIG_MYRI10GE=m
 CONFIG_FEALNX=m
@@ -3013,6 +3051,7 @@ CONFIG_DWMAC_ROCKCHIP=m
 CONFIG_DWMAC_SOCFPGA=m
 CONFIG_DWMAC_SUNXI=m
 CONFIG_DWMAC_SUN8I=m
+CONFIG_DWMAC_IMX8=m
 # CONFIG_STMMAC_PCI is not set
 CONFIG_NET_VENDOR_SUN=y
 # CONFIG_HAPPYMEAL is not set
@@ -3047,6 +3086,7 @@ CONFIG_SKFP=m
 # CONFIG_HIPPI is not set
 CONFIG_MDIO_DEVICE=y
 CONFIG_MDIO_BUS=y
+CONFIG_MDIO_DEVRES=y
 CONFIG_MDIO_BCM_UNIMAC=m
 # CONFIG_MDIO_BITBANG is not set
 CONFIG_MDIO_BUS_MUX=m
@@ -3055,6 +3095,7 @@ CONFIG_MDIO_BUS_MUX=m
 # CONFIG_MDIO_BUS_MUX_MULTIPLEXER is not set
 # CONFIG_MDIO_HISI_FEMAC is not set
 CONFIG_MDIO_I2C=m
+# CONFIG_MDIO_IPQ4019 is not set
 CONFIG_MDIO_IPQ8064=m
 # CONFIG_MDIO_MSCC_MIIM is not set
 CONFIG_MDIO_MVUSB=m
@@ -3077,6 +3118,7 @@ CONFIG_BCM7XXX_PHY=m
 CONFIG_BCM87XX_PHY=m
 CONFIG_BCM_NET_PHYLIB=m
 CONFIG_BROADCOM_PHY=m
+CONFIG_BCM54140_PHY=m
 CONFIG_BCM84881_PHY=m
 CONFIG_CICADA_PHY=m
 # CONFIG_CORTINA_PHY is not set
@@ -3339,6 +3381,12 @@ CONFIG_MT7601U=m
 # 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_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
@@ -3443,6 +3491,7 @@ CONFIG_IEEE802154_ADF7242=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
@@ -3561,6 +3610,7 @@ CONFIG_TOUCHSCREEN_ATMEL_MXT=m
 # 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
@@ -3650,10 +3700,8 @@ CONFIG_INPUT_MISC=y
 # CONFIG_INPUT_ATMEL_CAPTOUCH is not set
 # CONFIG_INPUT_BMA150 is not set
 # CONFIG_INPUT_E3X0_BUTTON is not set
-# CONFIG_INPUT_MSM_VIBRATOR is not set
 # CONFIG_INPUT_MC13783_PWRBUTTON is not set
 CONFIG_INPUT_MMA8450=m
-# CONFIG_INPUT_GP2A is not set
 # CONFIG_INPUT_GPIO_BEEPER is not set
 # CONFIG_INPUT_GPIO_DECODER is not set
 # CONFIG_INPUT_GPIO_VIBRA is not set
@@ -3678,6 +3726,7 @@ CONFIG_INPUT_RK805_PWRKEY=m
 # 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_CMA3000 is not set
 CONFIG_INPUT_XEN_KBDDEV_FRONTEND=y
 # CONFIG_INPUT_DRV260X_HAPTICS is not set
@@ -3774,6 +3823,7 @@ CONFIG_SERIAL_TEGRA=y
 # 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
@@ -3823,12 +3873,14 @@ CONFIG_VIRTIO_CONSOLE=m
 # CONFIG_IPMI_HANDLER is not set
 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_APPLICOM is not set
 CONFIG_DEVMEM=y
 # CONFIG_DEVKMEM is not set
@@ -3906,6 +3958,7 @@ CONFIG_I2C_ISCH=m
 #
 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
@@ -3972,6 +4025,7 @@ CONFIG_SPI_BCM2835AUX=m
 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
@@ -3999,6 +4053,7 @@ CONFIG_SPI_TEGRA20_SFLASH=m
 # 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
@@ -4012,6 +4067,7 @@ 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
@@ -4065,7 +4121,8 @@ CONFIG_GENERIC_PINCONF=y
 # CONFIG_DEBUG_PINCTRL is not set
 CONFIG_PINCTRL_AS3722=y
 CONFIG_PINCTRL_AXP209=m
-# CONFIG_PINCTRL_AMD is not set
+CONFIG_PINCTRL_MCP23S08_I2C=m
+CONFIG_PINCTRL_MCP23S08_SPI=m
 CONFIG_PINCTRL_MCP23S08=m
 CONFIG_PINCTRL_ROCKCHIP=y
 CONFIG_PINCTRL_SINGLE=y
@@ -4119,7 +4176,6 @@ CONFIG_PINCTRL_TI_IODELAY=y
 CONFIG_PINCTRL_WMT=y
 CONFIG_PINCTRL_WM8850=y
 CONFIG_PINCTRL_MADERA=m
-CONFIG_PINCTRL_EQUILIBRIUM=m
 CONFIG_ARCH_HAVE_CUSTOM_GPIO_H=y
 CONFIG_GPIOLIB=y
 CONFIG_GPIOLIB_FASTPATH_LIMIT=512
@@ -4168,6 +4224,8 @@ CONFIG_GPIO_XILINX=m
 # 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
@@ -4213,6 +4271,7 @@ CONFIG_GPIO_MAX3191X=m
 CONFIG_GPIO_VIPERBOARD=m
 # end of USB GPIO expanders
 
+CONFIG_GPIO_AGGREGATOR=m
 # CONFIG_GPIO_MOCKUP is not set
 CONFIG_W1=m
 CONFIG_W1_CON=y
@@ -4262,6 +4321,7 @@ CONFIG_POWER_RESET_AS3722=y
 # 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_RESTART=y
@@ -4280,6 +4340,7 @@ CONFIG_POWER_SUPPLY_HWMON=y
 # 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
@@ -4314,6 +4375,7 @@ 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_SMB347 is not set
 # CONFIG_BATTERY_GAUGE_LTC2941 is not set
@@ -4321,6 +4383,7 @@ CONFIG_CHARGER_BQ2415X=m
 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
@@ -4350,6 +4413,7 @@ 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_DRIVETEMP=m
 CONFIG_SENSORS_DS620=m
 # CONFIG_SENSORS_DS1621 is not set
@@ -4475,6 +4539,7 @@ 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
@@ -4490,13 +4555,11 @@ CONFIG_THERMAL_GOV_STEP_WISE=y
 # CONFIG_THERMAL_GOV_POWER_ALLOCATOR is not set
 CONFIG_CPU_THERMAL=y
 CONFIG_CPU_FREQ_THERMAL=y
-# CONFIG_CLOCK_THERMAL is not set
 # 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_QORIQ_THERMAL is not set
 CONFIG_SUN8I_THERMAL=m
 CONFIG_ROCKCHIP_THERMAL=m
 CONFIG_ARMADA_THERMAL=y
@@ -4532,6 +4595,7 @@ 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
@@ -4569,6 +4633,8 @@ CONFIG_TWL4030_WATCHDOG=m
 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
@@ -4648,9 +4714,11 @@ CONFIG_MFD_DA9052_I2C=y
 # 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
@@ -4672,6 +4740,7 @@ CONFIG_MFD_MAX77686=y
 # 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
@@ -4690,7 +4759,6 @@ 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_SMSC is not set
 # CONFIG_ABX500_CORE is not set
 CONFIG_MFD_STMPE=y
 
@@ -4748,6 +4816,7 @@ CONFIG_MFD_ROHM_BD70528=m
 CONFIG_MFD_ROHM_BD71828=m
 # CONFIG_MFD_STPMIC1 is not set
 # CONFIG_MFD_STMFX is not set
+CONFIG_MFD_KHADAS_MCU=m
 CONFIG_MFD_VEXPRESS_SYSREG=y
 # end of Multifunction device drivers
 
@@ -4768,10 +4837,12 @@ CONFIG_REGULATOR_BD70528=m
 CONFIG_REGULATOR_BD71828=m
 CONFIG_REGULATOR_BD718XX=m
 CONFIG_REGULATOR_BD9571MWV=m
+CONFIG_REGULATOR_CROS_EC=m
 CONFIG_REGULATOR_DA9052=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
@@ -4788,6 +4859,7 @@ CONFIG_REGULATOR_GPIO=m
 # 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
@@ -4799,6 +4871,7 @@ CONFIG_REGULATOR_MPQ7920=m
 # CONFIG_REGULATOR_MT6311 is not set
 CONFIG_REGULATOR_PALMAS=y
 CONFIG_REGULATOR_PBIAS=m
+CONFIG_REGULATOR_PCA9450=m
 CONFIG_REGULATOR_PFUZE100=m
 # CONFIG_REGULATOR_PV88060 is not set
 # CONFIG_REGULATOR_PV88080 is not set
@@ -4813,6 +4886,7 @@ 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
@@ -4822,8 +4896,6 @@ CONFIG_REGULATOR_SY8824X=m
 CONFIG_REGULATOR_TWL4030=y
 # CONFIG_REGULATOR_VCTRL is not set
 CONFIG_REGULATOR_VEXPRESS=m
-CONFIG_CEC_CORE=m
-CONFIG_CEC_NOTIFIER=y
 CONFIG_RC_CORE=y
 CONFIG_RC_MAP=m
 CONFIG_LIRC=y
@@ -4861,24 +4933,47 @@ 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
 
 #
-# Multimedia core support
+# 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_CEC_SUPPORT=y
-# CONFIG_MEDIA_CEC_RC is not set
-CONFIG_MEDIA_CONTROLLER=y
-CONFIG_MEDIA_CONTROLLER_DVB=y
+CONFIG_MEDIA_PLATFORM_SUPPORT=y
+CONFIG_MEDIA_TEST_SUPPORT=y
+# end of Media device types
+
+#
+# Media core support
+#
 CONFIG_VIDEO_DEV=y
-CONFIG_VIDEO_V4L2_SUBDEV_API=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
@@ -4887,18 +4982,34 @@ CONFIG_V4L2_FWNODE=m
 CONFIG_VIDEOBUF_GEN=m
 CONFIG_VIDEOBUF_DMA_SG=m
 CONFIG_VIDEOBUF_VMALLOC=m
-CONFIG_DVB_CORE=y
+# 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_TTPCI_EEPROM=m
 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
 
 #
@@ -5059,12 +5170,6 @@ CONFIG_VIDEO_EM28XX_RC=m
 CONFIG_USB_AIRSPY=m
 CONFIG_USB_HACKRF=m
 CONFIG_USB_MSI2500=m
-
-#
-# USB HDMI CEC adapters
-#
-CONFIG_USB_PULSE8_CEC=m
-CONFIG_USB_RAINSHADOW_CEC=m
 CONFIG_MEDIA_PCI_SUPPORT=y
 
 #
@@ -5137,52 +5242,6 @@ CONFIG_DVB_DDBRIDGE=m
 # CONFIG_DVB_DDBRIDGE_MSIENABLE is not set
 CONFIG_DVB_SMIPCIE=m
 CONFIG_DVB_NETUP_UNIDVB=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_SAMSUNG_EXYNOS4_IS is not set
-# CONFIG_VIDEO_XILINX is not set
-# CONFIG_VIDEO_SUN4I_CSI is not set
-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_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_SH_VEU 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_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_PLATFORM_DRIVERS is not set
-# CONFIG_CEC_PLATFORM_DRIVERS is not set
-# CONFIG_SDR_PLATFORM_DRIVERS is not set
-
-#
-# Supported MMC/SDIO adapters
-#
-CONFIG_SMS_SDIO_DRV=m
 CONFIG_RADIO_ADAPTERS=y
 CONFIG_RADIO_TEA575X=m
 CONFIG_RADIO_SI470X=y
@@ -5204,18 +5263,7 @@ CONFIG_USB_MA901=m
 # CONFIG_RADIO_SAA7706H is not set
 # CONFIG_RADIO_TEF6862 is not set
 # CONFIG_RADIO_WL1273 is not set
-
-#
-# Texas Instruments WL128x FM driver (ST based)
-#
 CONFIG_RADIO_WL128X=m
-# end of Texas Instruments WL128x FM driver (ST based)
-
-#
-# Supported FireWire (IEEE 1394) Adapters
-#
-CONFIG_DVB_FIREDTV=m
-CONFIG_DVB_FIREDTV_INPUT=y
 CONFIG_MEDIA_COMMON_OPTIONS=y
 
 #
@@ -5238,17 +5286,67 @@ 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_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_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
 
 #
-# Media ancillary drivers (tuners, sensors, i2c, spi, frontends)
+# 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
+
+#
+# FireWire (IEEE 1394) Adapters
+#
+CONFIG_DVB_FIREDTV=m
+CONFIG_DVB_FIREDTV_INPUT=y
+# end of Media drivers
+
+#
+# Media ancillary drivers
 #
-CONFIG_MEDIA_SUBDRV_AUTOSELECT=y
 CONFIG_MEDIA_ATTACH=y
-CONFIG_VIDEO_IR_I2C=y
 
 #
-# I2C Encoders, decoders, sensors and other helper chips
+# IR I2C driver auto-selected by 'Autoselect ancillary drivers'
 #
+CONFIG_VIDEO_IR_I2C=y
 
 #
 # Audio decoders, processors and mixers
@@ -5269,11 +5367,13 @@ 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
@@ -5302,12 +5402,14 @@ 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
@@ -5323,6 +5425,35 @@ 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
@@ -5370,6 +5501,7 @@ CONFIG_VIDEO_MT9V111=m
 CONFIG_VIDEO_SR030PC30=m
 CONFIG_VIDEO_NOON010PC30=m
 CONFIG_VIDEO_M5MOLS=m
+CONFIG_VIDEO_RDACM20=m
 CONFIG_VIDEO_RJ54N1=m
 CONFIG_VIDEO_S5K6AA=m
 CONFIG_VIDEO_S5K6A3=m
@@ -5378,6 +5510,7 @@ CONFIG_VIDEO_S5K5BAF=m
 CONFIG_VIDEO_SMIAPP=m
 CONFIG_VIDEO_ET8EK8=m
 CONFIG_VIDEO_S5C73M3=m
+# end of Camera sensor devices
 
 #
 # Lens drivers
@@ -5385,7 +5518,9 @@ CONFIG_VIDEO_S5C73M3=m
 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
@@ -5393,31 +5528,7 @@ CONFIG_VIDEO_DW9807_VCM=m
 CONFIG_VIDEO_ADP1653=m
 CONFIG_VIDEO_LM3560=m
 CONFIG_VIDEO_LM3646=m
-
-#
-# Video improvement chips
-#
-CONFIG_VIDEO_UPD64031A=m
-CONFIG_VIDEO_UPD64083=m
-
-#
-# Audio/Video compression chips
-#
-CONFIG_VIDEO_SAA6752HS=m
-
-#
-# SDR tuner chips
-#
-CONFIG_SDR_MAX2175=m
-
-#
-# Miscellaneous helper chips
-#
-CONFIG_VIDEO_THS7303=m
-CONFIG_VIDEO_M52790=m
-CONFIG_VIDEO_I2C=m
-CONFIG_VIDEO_ST_MIPID02=m
-# end of I2C Encoders, decoders, sensors and other helper chips
+# end of Flash devices
 
 #
 # SPI helper chips
@@ -5638,12 +5749,13 @@ CONFIG_DVB_HELENE=m
 #
 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 Customise DVB Frontends
+# end of Media ancillary drivers
 
 #
 # Graphics support
@@ -5736,7 +5848,6 @@ CONFIG_ROCKCHIP_RK3066_HDMI=y
 CONFIG_DRM_UDL=m
 # CONFIG_DRM_AST is not set
 # CONFIG_DRM_MGAG200 is not set
-CONFIG_DRM_CIRRUS_QEMU=m
 # CONFIG_DRM_ARMADA is not set
 # CONFIG_DRM_RCAR_DW_HDMI is not set
 # CONFIG_DRM_RCAR_LVDS is not set
@@ -5788,6 +5899,7 @@ CONFIG_DRM_PANEL=y
 # Display Panels
 #
 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_LVDS is not set
@@ -5800,6 +5912,7 @@ 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_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
@@ -5814,7 +5927,6 @@ CONFIG_DRM_PANEL_OSD_OSD101T2587_53TS=m
 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_ROCKTECH_JH057N00900 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
@@ -5827,6 +5939,7 @@ CONFIG_DRM_PANEL_SAMSUNG_S6E88A0_AMS452EF01=m
 # 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
@@ -5834,6 +5947,7 @@ CONFIG_DRM_PANEL_SONY_ACX424AKP=m
 # 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
 
@@ -5844,9 +5958,11 @@ CONFIG_DRM_PANEL_BRIDGE=y
 # Display Interface Bridges
 #
 CONFIG_DRM_CDNS_DSI=m
+CONFIG_DRM_CHRONTEL_CH7033=m
 CONFIG_DRM_DISPLAY_CONNECTOR=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
@@ -5885,6 +6001,7 @@ CONFIG_DRM_ETNAVIV=m
 CONFIG_DRM_ETNAVIV_THERMAL=y
 # CONFIG_DRM_ARCPGU is not set
 # CONFIG_DRM_MXSFB is not set
+CONFIG_DRM_CIRRUS_QEMU=m
 CONFIG_DRM_GM12U320=m
 # CONFIG_TINYDRM_HX8357D is not set
 # CONFIG_TINYDRM_ILI9225 is not set
@@ -5997,7 +6114,6 @@ CONFIG_FB_SIMPLE=y
 #
 # CONFIG_LCD_CLASS_DEVICE is not set
 CONFIG_BACKLIGHT_CLASS_DEVICE=y
-# CONFIG_BACKLIGHT_GENERIC is not set
 CONFIG_BACKLIGHT_PWM=m
 # CONFIG_BACKLIGHT_DA9052 is not set
 CONFIG_BACKLIGHT_QCOM_WLED=m
@@ -6154,6 +6270,7 @@ CONFIG_SND_VIRTUOSO=m
 # 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
@@ -6233,6 +6350,7 @@ 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_UTILS=m
 CONFIG_SND_SOC_IMX_PCM_DMA=m
 CONFIG_SND_SOC_IMX_AUDMUX=m
@@ -6289,6 +6407,11 @@ 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
@@ -6392,7 +6515,9 @@ CONFIG_SND_SOC_MAX98090=m
 # 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 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
@@ -6473,6 +6598,7 @@ CONFIG_SND_SOC_WM8904=m
 # 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_MC13783=m
@@ -6655,8 +6781,8 @@ CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
 CONFIG_USB_DEFAULT_PERSIST=y
 CONFIG_USB_DYNAMIC_MINORS=y
 # CONFIG_USB_OTG is not set
-# CONFIG_USB_OTG_WHITELIST is not set
-# CONFIG_USB_OTG_BLACKLIST_HUB 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
@@ -6668,6 +6794,7 @@ CONFIG_USB_MON=m
 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
@@ -6792,10 +6919,13 @@ CONFIG_USB_DWC2_DUAL_ROLE=y
 # CONFIG_USB_DWC2_DEBUG is not set
 # CONFIG_USB_DWC2_TRACK_MISSED_SOFS is not set
 CONFIG_USB_CHIPIDEA=m
-CONFIG_USB_CHIPIDEA_OF=m
-CONFIG_USB_CHIPIDEA_PCI=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
 
 #
@@ -7102,16 +7232,19 @@ 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
@@ -7177,13 +7310,30 @@ 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 is not set
+CONFIG_LEDS_TRIGGER_AUDIO=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_EXP_LEGACY_VERBS_NEW_UAPI is not set
 CONFIG_INFINIBAND_USER_MEM=y
 CONFIG_INFINIBAND_ON_DEMAND_PAGING=y
 CONFIG_INFINIBAND_ADDR_TRANS=y
@@ -7205,6 +7355,9 @@ 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
@@ -7340,6 +7493,7 @@ 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
@@ -7375,6 +7529,7 @@ CONFIG_MX3_IPU_IRQS=4
 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
@@ -7418,6 +7573,7 @@ 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_MENU=y
@@ -7431,9 +7587,9 @@ CONFIG_VIRTIO_MMIO=m
 CONFIG_VDPA=m
 # CONFIG_VDPA_SIM is not set
 CONFIG_IFCVF=m
+CONFIG_MLX5_VDPA=y
+CONFIG_MLX5_VDPA_NET=m
 CONFIG_VHOST_IOTLB=m
-CONFIG_VHOST_RING=m
-CONFIG_VHOST_DPN=y
 CONFIG_VHOST=m
 CONFIG_VHOST_MENU=y
 CONFIG_VHOST_NET=m
@@ -7542,24 +7698,6 @@ CONFIG_88EU_AP_MODE=y
 # end of IIO staging drivers
 
 # CONFIG_FB_SM750 is not set
-
-#
-# 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_MFD_NVEC is not set
 # CONFIG_STAGING_MEDIA is not set
 
@@ -7573,15 +7711,13 @@ CONFIG_SPEAKUP_SYNTH_DUMMY=m
 # CONFIG_FIREWIRE_SERIAL is not set
 # CONFIG_GS_FPGABOOT is not set
 # CONFIG_UNISYSSPAR is not set
-# CONFIG_COMMON_CLK_XLNX_CLKWZRD is not set
 # CONFIG_FB_TFT is not set
-# CONFIG_WILC1000_SDIO is not set
-# CONFIG_WILC1000_SPI 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_BCM2835_VCHIQ_MMAL is not set
 CONFIG_PI433=m
 
 #
@@ -7610,17 +7746,19 @@ 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
 
 #
-# Common Clock Framework
+# Clock driver for ARM Reference designs
 #
 CONFIG_ICST=y
-CONFIG_COMMON_CLK_VERSATILE=y
 CONFIG_CLK_SP810=y
 CONFIG_CLK_VEXPRESS_OSC=y
+# end of Clock driver for ARM Reference designs
+
 # CONFIG_CLK_HSDK is not set
 CONFIG_COMMON_CLK_MAX77686=m
 CONFIG_COMMON_CLK_MAX9485=m
@@ -7642,17 +7780,24 @@ CONFIG_COMMON_CLK_PALMAS=m
 # 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_IMX8MM is not set
+# CONFIG_CLK_IMX8MN is not set
+# CONFIG_CLK_IMX8MP is not set
+# CONFIG_CLK_IMX8MQ is not set
 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_SAMSUNG=y
 CONFIG_EXYNOS_AUDSS_CLK_CON=y
 CONFIG_CLK_SUNXI=y
@@ -7673,11 +7818,8 @@ CONFIG_SUN8I_V3S_CCU=y
 CONFIG_SUN8I_R40_CCU=y
 CONFIG_SUN9I_A80_CCU=y
 CONFIG_SUN8I_R_CCU=y
-CONFIG_TEGRA_CLK_EMC=y
 CONFIG_TEGRA_CLK_DFLL=y
 CONFIG_COMMON_CLK_TI_ADPLL=y
-# end of Common Clock Framework
-
 # CONFIG_HWSPINLOCK is not set
 
 #
@@ -7741,6 +7883,7 @@ 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
@@ -7810,6 +7953,7 @@ 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_SRAM=y
 # CONFIG_ARCH_TEGRA_2x_SOC is not set
 # CONFIG_ARCH_TEGRA_3x_SOC is not set
@@ -7842,6 +7986,7 @@ CONFIG_DEVFREQ_GOV_USERSPACE=m
 # 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
@@ -7899,6 +8044,7 @@ CONFIG_IIO_CONSUMERS_PER_TRIGGER=2
 # CONFIG_BMA220 is not set
 CONFIG_BMA400=m
 CONFIG_BMA400_I2C=m
+CONFIG_BMA400_SPI=m
 # CONFIG_BMC150_ACCEL is not set
 # CONFIG_DA280 is not set
 # CONFIG_DA311 is not set
@@ -7947,6 +8093,8 @@ CONFIG_AD7091R5=m
 # CONFIG_AD7923 is not set
 # CONFIG_AD7949 is not set
 # CONFIG_AD799X is not set
+# CONFIG_AD9467 is not set
+# CONFIG_ADI_AXI_ADC is not set
 CONFIG_AXP20X_ADC=m
 CONFIG_AXP288_ADC=m
 # CONFIG_CC10001_ADC is not set
@@ -7963,11 +8111,13 @@ CONFIG_LTC2471=m
 # 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_MP2629_ADC is not set
 # CONFIG_NAU7802 is not set
 # CONFIG_PALMAS_GPADC is not set
 CONFIG_ROCKCHIP_SARADC=m
@@ -8012,9 +8162,12 @@ CONFIG_XILINX_XADC=m
 # 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
@@ -8149,12 +8302,16 @@ CONFIG_HID_SENSOR_GYRO_3D=m
 #
 # 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
@@ -8313,8 +8470,10 @@ CONFIG_HID_SENSOR_PRESS=m
 # 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
 
@@ -8352,6 +8511,7 @@ CONFIG_PWM_BCM2835=m
 # 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_ROCKCHIP=m
@@ -8412,6 +8572,7 @@ CONFIG_PHY_SUN50I_USB3=m
 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
@@ -8437,6 +8598,7 @@ 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
@@ -8451,7 +8613,6 @@ CONFIG_TI_PIPE3=m
 CONFIG_PHY_TUSB1210=m
 CONFIG_TWL4030_USB=m
 CONFIG_PHY_TI_GMII_SEL=m
-# CONFIG_PHY_INTEL_EMMC is not set
 # end of PHY Subsystem
 
 # CONFIG_POWERCAP is not set
@@ -8467,6 +8628,7 @@ CONFIG_FSL_IMX8_DDR_PMU=m
 # end of Performance monitor support
 
 CONFIG_RAS=y
+CONFIG_USB4=m
 
 #
 # Android
@@ -8478,7 +8640,7 @@ CONFIG_DAX=m
 CONFIG_NVMEM=y
 CONFIG_NVMEM_SYSFS=y
 # CONFIG_NVMEM_IMX_IIM is not set
-# CONFIG_NVMEM_IMX_OCOTP is not set
+CONFIG_NVMEM_IMX_OCOTP=m
 CONFIG_ROCKCHIP_EFUSE=m
 CONFIG_ROCKCHIP_OTP=m
 CONFIG_NVMEM_SUNXI_SID=m
@@ -8512,6 +8674,7 @@ CONFIG_PM_OPP=y
 CONFIG_COUNTER=m
 CONFIG_TI_EQEP=m
 CONFIG_FTM_QUADDEC=m
+CONFIG_MICROCHIP_TCB_CAPTURE=m
 # CONFIG_MOST is not set
 # end of Device Drivers
 
@@ -8770,6 +8933,7 @@ 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
@@ -8873,10 +9037,10 @@ CONFIG_IO_WQ=y
 CONFIG_KEYS=y
 CONFIG_KEYS_REQUEST_CACHE=y
 # CONFIG_PERSISTENT_KEYRINGS is not set
-# CONFIG_BIG_KEYS 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
@@ -8978,7 +9142,7 @@ CONFIG_CRYPTO_ALGAPI=y
 CONFIG_CRYPTO_ALGAPI2=y
 CONFIG_CRYPTO_AEAD=m
 CONFIG_CRYPTO_AEAD2=y
-CONFIG_CRYPTO_SKCIPHER=m
+CONFIG_CRYPTO_SKCIPHER=y
 CONFIG_CRYPTO_SKCIPHER2=y
 CONFIG_CRYPTO_HASH=y
 CONFIG_CRYPTO_HASH2=y
@@ -9199,6 +9363,7 @@ CONFIG_BINARY_PRINTF=y
 #
 CONFIG_RAID6_PQ=m
 CONFIG_RAID6_PQ_BENCHMARK=y
+CONFIG_LINEAR_RANGES=y
 CONFIG_PACKING=y
 CONFIG_BITREVERSE=y
 CONFIG_HAVE_ARCH_BITREVERSE=y
@@ -9206,6 +9371,7 @@ 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
@@ -9236,7 +9402,7 @@ CONFIG_LZ4_COMPRESS=m
 CONFIG_LZ4HC_COMPRESS=m
 CONFIG_LZ4_DECOMPRESS=y
 CONFIG_ZSTD_COMPRESS=m
-CONFIG_ZSTD_DECOMPRESS=m
+CONFIG_ZSTD_DECOMPRESS=y
 CONFIG_XZ_DEC=y
 # CONFIG_XZ_DEC_X86 is not set
 # CONFIG_XZ_DEC_POWERPC is not set
@@ -9252,9 +9418,11 @@ 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
@@ -9263,6 +9431,7 @@ 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
@@ -9340,6 +9509,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
@@ -9349,6 +9519,7 @@ CONFIG_DEBUG_BUGVERBOSE=y
 #
 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_DWARF4 is not set
 # CONFIG_DEBUG_INFO_BTF is not set
@@ -9360,6 +9531,7 @@ CONFIG_STRIP_ASM_SYMS=y
 # 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_DEBUG_FORCE_WEAK_PER_CPU is not set
@@ -9373,6 +9545,9 @@ 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
@@ -9391,6 +9566,7 @@ CONFIG_PAGE_POISONING_NO_SANITY=y
 # CONFIG_PAGE_POISONING_ZERO is not set
 # 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
@@ -9404,7 +9580,7 @@ CONFIG_DEBUG_MEMORY_INIT=y
 # CONFIG_DEBUG_PER_CPU_MAPS is not set
 # CONFIG_DEBUG_HIGHMEM is not set
 CONFIG_CC_HAS_KASAN_GENERIC=y
-CONFIG_KASAN_STACK=1
+CONFIG_CC_HAS_WORKING_NOSANITIZE_ADDRESS=y
 # end of Memory Debugging
 
 # CONFIG_DEBUG_SHIRQ is not set
@@ -9476,6 +9652,7 @@ CONFIG_BUG_ON_DATA_CORRUPTION=y
 #
 # CONFIG_RCU_PERF_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
@@ -9510,7 +9687,6 @@ CONFIG_DYNAMIC_FTRACE=y
 CONFIG_DYNAMIC_FTRACE_WITH_REGS=y
 # CONFIG_FUNCTION_PROFILER is not set
 CONFIG_STACK_TRACER=y
-# CONFIG_PREEMPTIRQ_EVENTS is not set
 # CONFIG_IRQSOFF_TRACER is not set
 # CONFIG_SCHED_TRACER is not set
 # CONFIG_HWLAT_TRACER is not set
@@ -9526,6 +9702,7 @@ CONFIG_BPF_EVENTS=y
 CONFIG_DYNAMIC_EVENTS=y
 CONFIG_PROBE_EVENTS=y
 CONFIG_FTRACE_MCOUNT_RECORD=y
+CONFIG_SYNTH_EVENTS=y
 # CONFIG_TRACE_EVENT_INJECT is not set
 # CONFIG_TRACEPOINT_BENCHMARK is not set
 # CONFIG_RING_BUFFER_BENCHMARK is not set
@@ -9533,6 +9710,7 @@ CONFIG_FTRACE_MCOUNT_RECORD=y
 # CONFIG_FTRACE_STARTUP_TEST is not set
 # CONFIG_RING_BUFFER_STARTUP_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_SAMPLES is not set
 CONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED=y
@@ -9544,7 +9722,6 @@ CONFIG_IO_STRICT_DEVMEM=y
 #
 CONFIG_ARM_PTDUMP_CORE=y
 # CONFIG_ARM_PTDUMP_DEBUGFS is not set
-CONFIG_DEBUG_WX=y
 CONFIG_UNWINDER_FRAME_POINTER=y
 # CONFIG_DEBUG_USER is not set
 # CONFIG_DEBUG_LL is not set
@@ -9594,6 +9771,7 @@ CONFIG_TEST_XARRAY=m
 # 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
@@ -9607,6 +9785,7 @@ CONFIG_TEST_STATIC_KEYS=m
 # 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_MEMTEST is not set
 # end of Kernel Testing and Coverage
 # end of Kernel hacking
diff --git a/gnu/packages/aux-files/linux-libre/5.7-arm64.conf b/gnu/packages/aux-files/linux-libre/5.9-arm64.conf
index 7c2cfc1ca5..28d683a040 100644
--- a/gnu/packages/aux-files/linux-libre/5.7-arm64.conf
+++ b/gnu/packages/aux-files/linux-libre/5.9-arm64.conf
@@ -1,16 +1,14 @@
 #
 # Automatically generated file; DO NOT EDIT.
-# Linux/arm64 5.7.12-gnu Kernel Configuration
-#
-
-#
-# Compiler: gcc (Debian 8.3.0-6) 8.3.0
+# Linux/arm64 5.9.2 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_LD_VERSION=231010000
 CONFIG_CLANG_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
@@ -25,12 +23,14 @@ CONFIG_INIT_ENV_ARG_LIMIT=32
 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
@@ -50,6 +50,7 @@ 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_MSI_IRQ=y
 CONFIG_GENERIC_MSI_IRQ_DOMAIN=y
 CONFIG_IRQ_MSI_IOMMU=y
@@ -107,6 +108,8 @@ 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_RCU_STALL_COMMON=y
 CONFIG_RCU_NEED_SEGCBLIST=y
 # end of RCU Subsystem
@@ -134,7 +137,6 @@ CONFIG_CGROUPS=y
 CONFIG_PAGE_COUNTER=y
 CONFIG_MEMCG=y
 CONFIG_MEMCG_SWAP=y
-# CONFIG_MEMCG_SWAP_ENABLED is not set
 CONFIG_MEMCG_KMEM=y
 CONFIG_BLK_CGROUP=y
 CONFIG_CGROUP_WRITEBACK=y
@@ -156,6 +158,7 @@ CONFIG_CGROUP_BPF=y
 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
@@ -172,6 +175,7 @@ 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
@@ -286,10 +290,12 @@ CONFIG_ARCH_BCM2835=y
 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
@@ -331,12 +337,12 @@ 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_VHE=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_WORKAROUND_SPECULATIVE_AT_NVHE=y
-CONFIG_ARM64_ERRATUM_1319367=y
 CONFIG_ARM64_ERRATUM_1463225=y
 CONFIG_ARM64_ERRATUM_1542419=y
 CONFIG_CAVIUM_ERRATUM_22375=y
@@ -345,14 +351,13 @@ 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_ARM64_WORKAROUND_REPEAT_TLBI=y
 CONFIG_QCOM_FALKOR_ERRATUM_1009=y
 CONFIG_QCOM_QDF2400_ERRATUM_0065=y
-CONFIG_SOCIONEXT_SYNQUACER_PREITS=y
-CONFIG_HISILICON_ERRATUM_161600802=y
 CONFIG_QCOM_FALKOR_ERRATUM_E1041=y
-CONFIG_FUJITSU_ERRATUM_010001=y
+CONFIG_SOCIONEXT_SYNQUACER_PREITS=y
 # end of ARM errata workarounds via the alternatives framework
 
 CONFIG_ARM64_4K_PAGES=y
@@ -403,7 +408,6 @@ CONFIG_XEN=y
 CONFIG_FORCE_MAX_ZONEORDER=11
 CONFIG_UNMAP_KERNEL_AT_EL0=y
 CONFIG_HARDEN_BRANCH_PREDICTOR=y
-CONFIG_HARDEN_EL2_VECTORS=y
 CONFIG_ARM64_SSBD=y
 CONFIG_RODATA_FULL_DEFAULT_ENABLED=y
 # CONFIG_ARM64_SW_TTBR0_PAN is not set
@@ -447,6 +451,7 @@ CONFIG_ARM64_AMU_EXTN=y
 #
 # ARMv8.5 architectural features
 #
+CONFIG_ARM64_BTI=y
 CONFIG_ARM64_E0PD=y
 CONFIG_ARCH_RANDOM=y
 # end of ARMv8.5 architectural features
@@ -480,6 +485,7 @@ 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
@@ -558,10 +564,10 @@ 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=y
+CONFIG_ARM_TEGRA20_CPUFREQ=m
 CONFIG_ARM_TEGRA124_CPUFREQ=y
 # CONFIG_ARM_TEGRA186_CPUFREQ is not set
-# CONFIG_QORIQ_CPUFREQ is not set
+CONFIG_ARM_TEGRA194_CPUFREQ=m
 # end of CPU Frequency scaling
 # end of CPU Power Management
 
@@ -581,9 +587,6 @@ CONFIG_RASPBERRYPI_FIRMWARE=y
 CONFIG_QCOM_SCM=y
 # CONFIG_QCOM_SCM_DOWNLOAD_MODE_DEFAULT is not set
 # CONFIG_TURRIS_MOX_RWTM is not set
-CONFIG_HAVE_ARM_SMCCC=y
-CONFIG_ARM_PSCI_FW=y
-# CONFIG_ARM_PSCI_CHECKER is not set
 # CONFIG_GOOGLE_FIRMWARE is not set
 
 #
@@ -596,8 +599,9 @@ CONFIG_EFI_VARS_PSTORE=m
 CONFIG_EFI_SOFT_RESERVE=y
 CONFIG_EFI_PARAMS_FROM_FDT=y
 CONFIG_EFI_RUNTIME_WRAPPERS=y
-CONFIG_EFI_ARMSTUB=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
@@ -611,6 +615,11 @@ CONFIG_EFI_CUSTOM_SSDT_OVERLAYS=y
 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
@@ -660,6 +669,9 @@ CONFIG_HAVE_ACPI_APEI=y
 CONFIG_ACPI_IORT=y
 CONFIG_ACPI_GTDT=y
 CONFIG_ACPI_PPTT=y
+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
@@ -672,10 +684,6 @@ 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_IRQ_BYPASS_MANAGER=y
-CONFIG_VIRTUALIZATION=y
-CONFIG_KVM=y
-CONFIG_KVM_ARM_HOST=y
 CONFIG_KVM_ARM_PMU=y
 CONFIG_KVM_INDIRECT_VECTORS=y
 CONFIG_ARM64_CRYPTO=y
@@ -727,7 +735,6 @@ 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_CLK=y
 CONFIG_HAVE_HW_BREAKPOINT=y
 CONFIG_HAVE_PERF_REGS=y
 CONFIG_HAVE_PERF_USER_STACK_DUMP=y
@@ -744,7 +751,6 @@ CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
 CONFIG_SECCOMP_FILTER=y
 CONFIG_HAVE_ARCH_STACKLEAK=y
 CONFIG_HAVE_STACKPROTECTOR=y
-CONFIG_CC_HAS_STACKPROTECTOR_NONE=y
 CONFIG_STACKPROTECTOR=y
 CONFIG_STACKPROTECTOR_STRONG=y
 CONFIG_HAVE_CONTEXT_TRACKING=y
@@ -760,7 +766,6 @@ 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_HAVE_COPY_THREAD_TLS=y
 CONFIG_CLONE_BACKWARDS=y
 CONFIG_OLD_SIGSUSPEND3=y
 CONFIG_COMPAT_OLD_SIGACTION=y
@@ -797,7 +802,9 @@ CONFIG_MODVERSIONS=y
 CONFIG_ASM_MODVERSIONS=y
 # CONFIG_MODULE_SRCVERSION_ALL is not set
 # CONFIG_MODULE_SIG is not set
-# CONFIG_MODULE_COMPRESS is not set
+CONFIG_MODULE_COMPRESS=y
+CONFIG_MODULE_COMPRESS_GZIP=y
+# CONFIG_MODULE_COMPRESS_XZ is not set
 # CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS is not set
 # CONFIG_UNUSED_SYMBOLS is not set
 # CONFIG_TRIM_UNUSED_KSYMS is not set
@@ -820,6 +827,8 @@ 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
@@ -933,6 +942,9 @@ CONFIG_FREEZER=y
 #
 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
@@ -947,11 +959,9 @@ CONFIG_SELECT_MEMORY_MODEL=y
 CONFIG_SPARSEMEM_MANUAL=y
 CONFIG_SPARSEMEM=y
 CONFIG_NEED_MULTIPLE_NODES=y
-CONFIG_HAVE_MEMORY_PRESENT=y
 CONFIG_SPARSEMEM_EXTREME=y
 CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
 CONFIG_SPARSEMEM_VMEMMAP=y
-CONFIG_HAVE_MEMBLOCK_NODE_MAP=y
 CONFIG_HAVE_FAST_GUP=y
 CONFIG_ARCH_KEEP_MEMBLOCK=y
 CONFIG_MEMORY_ISOLATION=y
@@ -997,7 +1007,6 @@ CONFIG_ZPOOL=y
 CONFIG_ZBUD=y
 # CONFIG_Z3FOLD is not set
 CONFIG_ZSMALLOC=m
-# CONFIG_PGTABLE_MAPPING is not set
 # CONFIG_ZSMALLOC_STAT is not set
 CONFIG_GENERIC_EARLY_IOREMAP=y
 # CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set
@@ -1035,11 +1044,14 @@ 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 is not set
+CONFIG_XDP_SOCKETS=y
+CONFIG_XDP_SOCKETS_DIAG=m
 CONFIG_INET=y
 CONFIG_IP_MULTICAST=y
 CONFIG_IP_ADVANCED_ROUTER=y
@@ -1104,6 +1116,7 @@ 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
@@ -1128,8 +1141,8 @@ 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_MPTCP_HMAC_TEST is not set
 CONFIG_NETWORK_SECMARK=y
 CONFIG_NET_PTP_CLASSIFY=y
 # CONFIG_NETWORK_PHY_TIMESTAMPING is not set
@@ -1539,6 +1552,7 @@ CONFIG_MRP=m
 CONFIG_BRIDGE=m
 CONFIG_BRIDGE_IGMP_SNOOPING=y
 CONFIG_BRIDGE_VLAN_FILTERING=y
+CONFIG_BRIDGE_MRP=y
 CONFIG_HAVE_NET_DSA=y
 CONFIG_NET_DSA=m
 CONFIG_NET_DSA_TAG_8021Q=m
@@ -1551,6 +1565,7 @@ 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_QCA=m
 CONFIG_NET_DSA_TAG_LAN9303=m
@@ -1678,6 +1693,7 @@ 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
@@ -1804,8 +1820,9 @@ CONFIG_BT_HS=y
 CONFIG_BT_LE=y
 CONFIG_BT_6LOWPAN=m
 CONFIG_BT_LEDS=y
-# CONFIG_BT_SELFTEST is not set
+CONFIG_BT_MSFTEXT=y
 CONFIG_BT_DEBUGFS=y
+# CONFIG_BT_SELFTEST is not set
 
 #
 # Bluetooth device drivers
@@ -2022,6 +2039,7 @@ CONFIG_PCIE_TEGRA194_HOST=m
 # 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
 
@@ -2136,6 +2154,7 @@ 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
 
@@ -2190,6 +2209,9 @@ CONFIG_MTD_SST25L=m
 # 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
@@ -2220,6 +2242,7 @@ 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
 
 #
 # Misc
@@ -2232,6 +2255,7 @@ CONFIG_MTD_NAND_DISKONCHIP=m
 CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADDRESS=0
 # CONFIG_MTD_NAND_DISKONCHIP_BBTWRITE is not set
 CONFIG_MTD_SPI_NAND=m
+# end of NAND
 
 #
 # LPDDR & LPDDR2 PCM memory drivers
@@ -2242,7 +2266,6 @@ CONFIG_MTD_QINFO_PROBE=m
 
 CONFIG_MTD_SPI_NOR=m
 CONFIG_MTD_SPI_NOR_USE_4K_SECTORS=y
-# CONFIG_SPI_CADENCE_QUADSPI is not set
 CONFIG_SPI_HISI_SFC=m
 CONFIG_MTD_UBI=m
 CONFIG_MTD_UBI_WL_THRESHOLD=4096
@@ -2302,6 +2325,9 @@ 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
@@ -2315,6 +2341,7 @@ 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
@@ -2348,7 +2375,6 @@ CONFIG_HMC6352=m
 CONFIG_DS1682=m
 # CONFIG_LATTICE_ECP3_CONFIG is not set
 CONFIG_SRAM=y
-CONFIG_VEXPRESS_SYSCFG=y
 # CONFIG_PCI_ENDPOINT_TEST is not set
 CONFIG_XILINX_SDFEC=m
 CONFIG_MISC_RTSX=m
@@ -2482,6 +2508,7 @@ 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
@@ -2649,6 +2676,7 @@ CONFIG_MD_FAULTY=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=m
 # CONFIG_DM_DEBUG is not set
@@ -2663,6 +2691,7 @@ 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
@@ -2672,6 +2701,7 @@ 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_DELAY=m
 CONFIG_DM_DUST=m
 CONFIG_DM_UEVENT=y
@@ -2963,14 +2993,18 @@ 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_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_MLXSW_CORE is not set
 # CONFIG_MLXFW is not set
@@ -2984,8 +3018,8 @@ CONFIG_NET_VENDOR_MICROCHIP=y
 # 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_MSCC_OCELOT_SWITCH_OCELOT=m
 CONFIG_NET_VENDOR_MYRI=y
 CONFIG_MYRI10GE=m
 CONFIG_FEALNX=m
@@ -3080,6 +3114,7 @@ CONFIG_DWMAC_QCOM_ETHQOS=m
 CONFIG_DWMAC_ROCKCHIP=m
 CONFIG_DWMAC_SUNXI=m
 CONFIG_DWMAC_SUN8I=m
+CONFIG_DWMAC_IMX8=m
 # CONFIG_STMMAC_PCI is not set
 CONFIG_NET_VENDOR_SUN=y
 # CONFIG_HAPPYMEAL is not set
@@ -3110,6 +3145,7 @@ CONFIG_SKFP=m
 # CONFIG_NET_SB1000 is not set
 CONFIG_MDIO_DEVICE=m
 CONFIG_MDIO_BUS=m
+CONFIG_MDIO_DEVRES=m
 # CONFIG_MDIO_BCM_UNIMAC is not set
 # CONFIG_MDIO_BITBANG is not set
 CONFIG_MDIO_BUS_MUX=m
@@ -3119,6 +3155,7 @@ CONFIG_MDIO_BUS_MUX_MMIOREG=m
 # CONFIG_MDIO_BUS_MUX_MULTIPLEXER is not set
 CONFIG_MDIO_CAVIUM=m
 CONFIG_MDIO_HISI_FEMAC=m
+# CONFIG_MDIO_IPQ4019 is not set
 CONFIG_MDIO_IPQ8064=m
 CONFIG_MDIO_MSCC_MIIM=m
 CONFIG_MDIO_MVUSB=m
@@ -3144,6 +3181,7 @@ CONFIG_AX88796B_PHY=m
 CONFIG_BCM87XX_PHY=m
 CONFIG_BCM_NET_PHYLIB=m
 CONFIG_BROADCOM_PHY=m
+CONFIG_BCM54140_PHY=m
 CONFIG_BCM84881_PHY=m
 CONFIG_CICADA_PHY=m
 # CONFIG_CORTINA_PHY is not set
@@ -3409,6 +3447,12 @@ CONFIG_MT7601U=m
 # 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_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
@@ -3515,6 +3559,7 @@ 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
@@ -3620,11 +3665,9 @@ CONFIG_INPUT_MISC=y
 # CONFIG_INPUT_ATMEL_CAPTOUCH is not set
 # CONFIG_INPUT_BMA150 is not set
 # CONFIG_INPUT_E3X0_BUTTON is not set
-# CONFIG_INPUT_MSM_VIBRATOR is not set
 CONFIG_INPUT_PM8941_PWRKEY=m
 # CONFIG_INPUT_PM8XXX_VIBRATOR is not set
 # CONFIG_INPUT_MMA8450 is not set
-# CONFIG_INPUT_GP2A is not set
 # CONFIG_INPUT_GPIO_BEEPER is not set
 # CONFIG_INPUT_GPIO_DECODER is not set
 # CONFIG_INPUT_GPIO_VIBRA is not set
@@ -3644,6 +3687,7 @@ CONFIG_INPUT_UINPUT=m
 # CONFIG_INPUT_GPIO_ROTARY_ENCODER is not set
 # CONFIG_INPUT_ADXL34X is not set
 # CONFIG_INPUT_IMS_PCU is not set
+CONFIG_INPUT_IQS269A=m
 # CONFIG_INPUT_CMA3000 is not set
 CONFIG_INPUT_XEN_KBDDEV_FRONTEND=y
 # CONFIG_INPUT_SOC_BUTTON_ARRAY is not set
@@ -3744,6 +3788,8 @@ 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
@@ -3798,6 +3844,7 @@ CONFIG_IPMI_SSIF=m
 # CONFIG_IPMI_POWEROFF is not set
 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
@@ -3808,6 +3855,7 @@ 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_APPLICOM is not set
 CONFIG_DEVMEM=y
 # CONFIG_RAW_DRIVER is not set
@@ -3883,11 +3931,12 @@ CONFIG_I2C_ISCH=m
 # I2C system bus drivers (mostly embedded / system-on-chip)
 #
 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_PLATFORM=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
@@ -3900,6 +3949,7 @@ 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
@@ -3955,6 +4005,7 @@ 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
@@ -3988,6 +4039,7 @@ CONFIG_SPI_THUNDERX=m
 # CONFIG_SPI_XILINX is not set
 CONFIG_SPI_XLP=m
 # CONFIG_SPI_ZYNQMP_GQSPI is not set
+CONFIG_SPI_AMD=m
 
 #
 # SPI Multiplexer support
@@ -4001,6 +4053,7 @@ CONFIG_SPI_MUX=m
 # 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
@@ -4059,6 +4112,7 @@ 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
@@ -4087,6 +4141,7 @@ CONFIG_PINCTRL_QCOM_SSBI_PMIC=y
 # CONFIG_PINCTRL_SDM660 is not set
 # CONFIG_PINCTRL_SDM845 is not set
 CONFIG_PINCTRL_SM8150=m
+CONFIG_PINCTRL_SM8250=m
 CONFIG_PINCTRL_SUNXI=y
 # CONFIG_PINCTRL_SUN4I_A10 is not set
 # CONFIG_PINCTRL_SUN5I is not set
@@ -4121,7 +4176,6 @@ CONFIG_PINCTRL_MESON_AXG_PMX=y
 CONFIG_PINCTRL_MESON_G12A=y
 CONFIG_PINCTRL_MESON_A1=y
 CONFIG_PINCTRL_MADERA=m
-CONFIG_PINCTRL_EQUILIBRIUM=m
 CONFIG_GPIOLIB=y
 CONFIG_GPIOLIB_FASTPATH_LIMIT=512
 CONFIG_OF_GPIO=y
@@ -4173,6 +4227,7 @@ CONFIG_GPIO_XLP=y
 # 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
@@ -4212,6 +4267,7 @@ CONFIG_GPIO_MOXTET=m
 CONFIG_GPIO_VIPERBOARD=m
 # end of USB GPIO expanders
 
+CONFIG_GPIO_AGGREGATOR=m
 # CONFIG_GPIO_MOCKUP is not set
 CONFIG_W1=m
 CONFIG_W1_CON=y
@@ -4260,6 +4316,7 @@ CONFIG_POWER_RESET=y
 # 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
@@ -4278,6 +4335,7 @@ CONFIG_POWER_SUPPLY_HWMON=y
 # 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
@@ -4308,6 +4366,7 @@ CONFIG_CHARGER_QCOM_SMBB=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_SMB347 is not set
 # CONFIG_BATTERY_GAUGE_LTC2941 is not set
@@ -4315,6 +4374,7 @@ CONFIG_CHARGER_QCOM_SMBB=m
 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
@@ -4344,6 +4404,7 @@ 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_DRIVETEMP=m
 CONFIG_SENSORS_DS620=m
 # CONFIG_SENSORS_DS1621 is not set
@@ -4475,6 +4536,7 @@ CONFIG_SENSORS_XGENE=m
 #
 # 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
@@ -4490,7 +4552,6 @@ CONFIG_THERMAL_GOV_STEP_WISE=y
 # CONFIG_THERMAL_GOV_POWER_ALLOCATOR is not set
 CONFIG_CPU_THERMAL=y
 CONFIG_CPU_FREQ_THERMAL=y
-# CONFIG_CLOCK_THERMAL is not set
 # CONFIG_DEVFREQ_THERMAL is not set
 # CONFIG_THERMAL_EMULATION is not set
 # CONFIG_THERMAL_MMIO is not set
@@ -4528,6 +4589,7 @@ CONFIG_QCOM_TSENS=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
@@ -4564,6 +4626,7 @@ 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_ALIM7101_WDT is not set
 # CONFIG_I6300ESB_WDT is not set
@@ -4639,8 +4702,10 @@ CONFIG_MFD_MADERA_SPI=m
 # 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
@@ -4663,6 +4728,7 @@ CONFIG_MFD_MAX77620=y
 # 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
@@ -4682,7 +4748,6 @@ CONFIG_MFD_RK808=m
 # CONFIG_MFD_SI476X_CORE is not set
 # CONFIG_MFD_SM501 is not set
 # CONFIG_MFD_SKY81452 is not set
-# CONFIG_MFD_SMSC is not set
 # CONFIG_ABX500_CORE is not set
 # CONFIG_MFD_STMPE is not set
 CONFIG_MFD_SUN6I_PRCM=y
@@ -4726,6 +4791,7 @@ CONFIG_MFD_ROHM_BD70528=m
 CONFIG_MFD_ROHM_BD71828=m
 # CONFIG_MFD_STPMIC1 is not set
 # CONFIG_MFD_STMFX is not set
+CONFIG_MFD_KHADAS_MCU=m
 CONFIG_MFD_VEXPRESS_SYSREG=y
 # CONFIG_RAVE_SP_CORE is not set
 # end of Multifunction device drivers
@@ -4745,9 +4811,11 @@ CONFIG_REGULATOR_AXP20X=m
 CONFIG_REGULATOR_BD70528=m
 CONFIG_REGULATOR_BD71828=m
 CONFIG_REGULATOR_BD718XX=m
+CONFIG_REGULATOR_CROS_EC=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_ISL9305 is not set
@@ -4764,12 +4832,14 @@ CONFIG_REGULATOR_MAX77620=m
 # 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_PCA9450=m
 # CONFIG_REGULATOR_PFUZE100 is not set
 # CONFIG_REGULATOR_PV88060 is not set
 # CONFIG_REGULATOR_PV88080 is not set
@@ -4778,11 +4848,13 @@ 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_RK808=m
 CONFIG_REGULATOR_ROHM=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
@@ -4792,7 +4864,7 @@ CONFIG_REGULATOR_SY8824X=m
 # CONFIG_REGULATOR_VCTRL is not set
 # CONFIG_REGULATOR_VEXPRESS is not set
 # CONFIG_REGULATOR_VQMMC_IPQ4019 is not set
-CONFIG_CEC_CORE=m
+CONFIG_REGULATOR_QCOM_LABIBB=m
 CONFIG_RC_CORE=m
 CONFIG_RC_MAP=m
 CONFIG_LIRC=y
@@ -4833,44 +4905,85 @@ CONFIG_RC_LOOPBACK=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_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
 
 #
-# Multimedia core support
+# 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_CEC_SUPPORT=y
-# CONFIG_MEDIA_CEC_RC is not set
-CONFIG_MEDIA_CONTROLLER=y
-CONFIG_MEDIA_CONTROLLER_DVB=y
+CONFIG_MEDIA_PLATFORM_SUPPORT=y
+CONFIG_MEDIA_TEST_SUPPORT=y
+# end of Media device types
+
+#
+# Media core support
+#
 CONFIG_VIDEO_DEV=m
-# CONFIG_VIDEO_V4L2_SUBDEV_API is not set
+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
-CONFIG_DVB_CORE=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_TTPCI_EEPROM=m
 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
 
 #
@@ -5031,12 +5144,6 @@ CONFIG_VIDEO_EM28XX_RC=m
 CONFIG_USB_AIRSPY=m
 CONFIG_USB_HACKRF=m
 CONFIG_USB_MSI2500=m
-
-#
-# USB HDMI CEC adapters
-#
-CONFIG_USB_PULSE8_CEC=m
-CONFIG_USB_RAINSHADOW_CEC=m
 CONFIG_MEDIA_PCI_SUPPORT=y
 
 #
@@ -5108,33 +5215,6 @@ CONFIG_DVB_DDBRIDGE=m
 # CONFIG_DVB_DDBRIDGE_MSIENABLE is not set
 CONFIG_DVB_SMIPCIE=m
 CONFIG_DVB_NETUP_UNIDVB=m
-CONFIG_V4L_PLATFORM_DRIVERS=y
-CONFIG_VIDEO_CAFE_CCIC=m
-CONFIG_VIDEO_CADENCE=y
-# CONFIG_VIDEO_ASPEED is not set
-CONFIG_V4L_MEM2MEM_DRIVERS=y
-CONFIG_VIDEO_CODA=m
-CONFIG_VIDEO_IMX_PXP=m
-# CONFIG_VIDEO_MEM2MEM_DEINTERLACE is not set
-# CONFIG_VIDEO_SH_VEU is not set
-# CONFIG_VIDEO_ROCKCHIP_RGA is not set
-CONFIG_VIDEO_QCOM_VENUS=m
-CONFIG_VIDEO_SUN8I_DEINTERLACE=m
-CONFIG_VIDEO_SUN8I_ROTATE=m
-CONFIG_V4L_TEST_DRIVERS=y
-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_PLATFORM_DRIVERS is not set
-# CONFIG_CEC_PLATFORM_DRIVERS is not set
-# CONFIG_SDR_PLATFORM_DRIVERS is not set
-
-#
-# Supported MMC/SDIO adapters
-#
-CONFIG_SMS_SDIO_DRV=m
 CONFIG_RADIO_ADAPTERS=y
 CONFIG_RADIO_TEA575X=m
 CONFIG_RADIO_SI470X=m
@@ -5153,18 +5233,7 @@ CONFIG_USB_MA901=m
 # CONFIG_RADIO_SAA7706H is not set
 # CONFIG_RADIO_TEF6862 is not set
 # CONFIG_RADIO_WL1273 is not set
-
-#
-# Texas Instruments WL128x FM driver (ST based)
-#
 # CONFIG_RADIO_WL128X is not set
-# end of Texas Instruments WL128x FM driver (ST based)
-
-#
-# Supported FireWire (IEEE 1394) Adapters
-#
-CONFIG_DVB_FIREDTV=m
-CONFIG_DVB_FIREDTV_INPUT=y
 CONFIG_MEDIA_COMMON_OPTIONS=y
 
 #
@@ -5187,17 +5256,56 @@ 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_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_MEM2MEM_DEINTERLACE is not set
+# CONFIG_VIDEO_ROCKCHIP_RGA is not set
+CONFIG_VIDEO_QCOM_VENUS=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
 
 #
-# Media ancillary drivers (tuners, sensors, i2c, spi, frontends)
+# 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
+
+#
+# FireWire (IEEE 1394) Adapters
+#
+CONFIG_DVB_FIREDTV=m
+CONFIG_DVB_FIREDTV_INPUT=y
+# end of Media drivers
+
+#
+# Media ancillary drivers
 #
-CONFIG_MEDIA_SUBDRV_AUTOSELECT=y
 CONFIG_MEDIA_ATTACH=y
-CONFIG_VIDEO_IR_I2C=m
 
 #
-# I2C Encoders, decoders, sensors and other helper chips
+# IR I2C driver auto-selected by 'Autoselect ancillary drivers'
 #
+CONFIG_VIDEO_IR_I2C=m
 
 #
 # Audio decoders, processors and mixers
@@ -5205,6 +5313,7 @@ CONFIG_VIDEO_IR_I2C=m
 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
@@ -5217,16 +5326,24 @@ 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
@@ -5234,6 +5351,8 @@ 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
@@ -5242,12 +5361,14 @@ 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
@@ -5258,35 +5379,106 @@ 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_SMIAPP_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_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_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_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_RDACM20=m
 CONFIG_VIDEO_RJ54N1=m
+CONFIG_VIDEO_S5K6AA=m
+CONFIG_VIDEO_S5K6A3=m
+CONFIG_VIDEO_S5K4ECGX=m
+CONFIG_VIDEO_S5K5BAF=m
+CONFIG_VIDEO_SMIAPP=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
@@ -5294,34 +5486,12 @@ CONFIG_VIDEO_AD5820=m
 CONFIG_VIDEO_ADP1653=m
 CONFIG_VIDEO_LM3560=m
 CONFIG_VIDEO_LM3646=m
-
-#
-# Video improvement chips
-#
-CONFIG_VIDEO_UPD64031A=m
-CONFIG_VIDEO_UPD64083=m
-
-#
-# Audio/Video compression chips
-#
-CONFIG_VIDEO_SAA6752HS=m
-
-#
-# SDR tuner chips
-#
-CONFIG_SDR_MAX2175=m
-
-#
-# Miscellaneous helper chips
-#
-CONFIG_VIDEO_THS7303=m
-CONFIG_VIDEO_M52790=m
-CONFIG_VIDEO_I2C=m
-# end of I2C Encoders, decoders, sensors and other helper chips
+# end of Flash devices
 
 #
 # SPI helper chips
 #
+CONFIG_VIDEO_GS1662=m
 # end of SPI helper chips
 
 #
@@ -5537,12 +5707,13 @@ CONFIG_DVB_HELENE=m
 #
 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 Customise DVB Frontends
+# end of Media ancillary drivers
 
 #
 # Graphics support
@@ -5621,13 +5792,13 @@ 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_VGEM=m
 # CONFIG_DRM_VKMS is not set
 CONFIG_DRM_UDL=m
 CONFIG_DRM_AST=m
 # CONFIG_DRM_MGAG200 is not set
-CONFIG_DRM_CIRRUS_QEMU=m
 # CONFIG_DRM_RCAR_DW_HDMI is not set
 # CONFIG_DRM_RCAR_LVDS is not set
 CONFIG_DRM_RCAR_WRITEBACK=y
@@ -5656,6 +5827,7 @@ CONFIG_DRM_PANEL=y
 # Display Panels
 #
 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_LVDS is not set
@@ -5668,6 +5840,7 @@ CONFIG_DRM_PANEL_FEIXIN_K101_IM2BA02=m
 # CONFIG_DRM_PANEL_INNOLUX_P079ZCA is not set
 # CONFIG_DRM_PANEL_JDI_LT070ME05000 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
@@ -5682,7 +5855,6 @@ CONFIG_DRM_PANEL_OSD_OSD101T2587_53TS=m
 # 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_ROCKTECH_JH057N00900 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
@@ -5695,6 +5867,7 @@ CONFIG_DRM_PANEL_SAMSUNG_S6E88A0_AMS452EF01=m
 # 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
@@ -5702,6 +5875,7 @@ CONFIG_DRM_PANEL_SONY_ACX424AKP=m
 # 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
 
@@ -5712,9 +5886,11 @@ CONFIG_DRM_PANEL_BRIDGE=y
 # Display Interface Bridges
 #
 CONFIG_DRM_CDNS_DSI=m
+CONFIG_DRM_CHRONTEL_CH7033=m
 CONFIG_DRM_DISPLAY_CONNECTOR=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
@@ -5751,6 +5927,7 @@ CONFIG_DRM_HISI_KIRIN=m
 # CONFIG_DRM_MXSFB is not set
 CONFIG_DRM_MESON=m
 CONFIG_DRM_MESON_DW_HDMI=m
+CONFIG_DRM_CIRRUS_QEMU=m
 CONFIG_DRM_GM12U320=m
 # CONFIG_TINYDRM_HX8357D is not set
 # CONFIG_TINYDRM_ILI9225 is not set
@@ -5862,7 +6039,6 @@ CONFIG_LCD_LMS501KF03=m
 CONFIG_LCD_HX8357=m
 CONFIG_LCD_OTM3225A=m
 CONFIG_BACKLIGHT_CLASS_DEVICE=y
-CONFIG_BACKLIGHT_GENERIC=m
 CONFIG_BACKLIGHT_PWM=m
 CONFIG_BACKLIGHT_QCOM_WLED=m
 # CONFIG_BACKLIGHT_ADP8860 is not set
@@ -6021,6 +6197,7 @@ CONFIG_SND_VIRTUOSO=m
 # 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
@@ -6042,6 +6219,7 @@ 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
@@ -6118,6 +6296,7 @@ CONFIG_SND_SOC_IMX_AUDMIX=m
 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
 
 #
@@ -6182,6 +6361,11 @@ CONFIG_SND_SOC_TEGRA=m
 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
@@ -6259,7 +6443,9 @@ CONFIG_SND_SOC_MAX98090=m
 # CONFIG_SND_SOC_MAX98504 is not set
 # CONFIG_SND_SOC_MAX9867 is not set
 CONFIG_SND_SOC_MAX98927=m
-# CONFIG_SND_SOC_MAX98373 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_ANALOG is not set
 # CONFIG_SND_SOC_MSM8916_WCD_DIGITAL is not set
@@ -6337,6 +6523,7 @@ CONFIG_SND_SOC_WM8904=m
 # CONFIG_SND_SOC_WM8974 is not set
 # CONFIG_SND_SOC_WM8978 is not set
 # CONFIG_SND_SOC_WM8985 is not set
+# 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
@@ -6349,6 +6536,7 @@ CONFIG_SND_SOC_WM8904=m
 # CONFIG_SND_SOC_TPA6130A2 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
@@ -6518,8 +6706,8 @@ CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
 CONFIG_USB_DEFAULT_PERSIST=y
 CONFIG_USB_DYNAMIC_MINORS=y
 # CONFIG_USB_OTG is not set
-# CONFIG_USB_OTG_WHITELIST is not set
-# CONFIG_USB_OTG_BLACKLIST_HUB 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
@@ -6531,6 +6719,7 @@ CONFIG_USB_MON=m
 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
@@ -6650,10 +6839,13 @@ CONFIG_USB_DWC2_DUAL_ROLE=y
 # CONFIG_USB_DWC2_DEBUG is not set
 # CONFIG_USB_DWC2_TRACK_MISSED_SOFS is not set
 CONFIG_USB_CHIPIDEA=m
-CONFIG_USB_CHIPIDEA_OF=m
-CONFIG_USB_CHIPIDEA_PCI=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
@@ -6960,12 +7152,14 @@ 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
@@ -6978,6 +7172,7 @@ CONFIG_LEDS_BRIGHTNESS_HW_CHANGED=y
 CONFIG_LEDS_GPIO=m
 CONFIG_LEDS_LP3944=m
 # CONFIG_LEDS_LP3952 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
@@ -7034,10 +7229,27 @@ CONFIG_LEDS_TRIGGER_PANIC=y
 CONFIG_LEDS_TRIGGER_AUDIO=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_EXP_LEGACY_VERBS_NEW_UAPI is not set
 CONFIG_INFINIBAND_USER_MEM=y
 CONFIG_INFINIBAND_ON_DEMAND_PAGING=y
 CONFIG_INFINIBAND_ADDR_TRANS=y
@@ -7063,6 +7275,9 @@ 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
@@ -7235,6 +7450,7 @@ 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_HIDMA_MGMT=m
 CONFIG_QCOM_HIDMA=m
@@ -7297,8 +7513,9 @@ CONFIG_VIRTIO_MMIO=m
 CONFIG_VDPA=m
 # CONFIG_VDPA_SIM is not set
 CONFIG_IFCVF=m
+CONFIG_MLX5_VDPA=y
+CONFIG_MLX5_VDPA_NET=m
 CONFIG_VHOST_IOTLB=m
-CONFIG_VHOST_DPN=y
 CONFIG_VHOST=m
 CONFIG_VHOST_MENU=y
 CONFIG_VHOST_NET=m
@@ -7407,24 +7624,6 @@ CONFIG_88EU_AP_MODE=y
 # end of IIO staging drivers
 
 # CONFIG_FB_SM750 is not set
-
-#
-# 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_MFD_NVEC is not set
 # CONFIG_STAGING_MEDIA is not set
 
@@ -7438,15 +7637,13 @@ CONFIG_SPEAKUP_SYNTH_DUMMY=m
 # CONFIG_FIREWIRE_SERIAL is not set
 # CONFIG_GS_FPGABOOT is not set
 # CONFIG_UNISYSSPAR is not set
-# CONFIG_COMMON_CLK_XLNX_CLKWZRD is not set
 # CONFIG_FB_TFT is not set
-# CONFIG_WILC1000_SDIO is not set
-# CONFIG_WILC1000_SPI 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_BCM2835_VCHIQ_MMAL is not set
 # CONFIG_PI433 is not set
 
 #
@@ -7479,16 +7676,19 @@ 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
 
 #
-# Common Clock Framework
+# Clock driver for ARM Reference designs
 #
-CONFIG_COMMON_CLK_VERSATILE=y
+CONFIG_ICST=y
 CONFIG_CLK_SP810=y
 CONFIG_CLK_VEXPRESS_OSC=y
+# end of Clock driver for ARM Reference designs
+
 # CONFIG_CLK_HSDK is not set
 # CONFIG_COMMON_CLK_MAX77686 is not set
 CONFIG_COMMON_CLK_MAX9485=m
@@ -7510,6 +7710,7 @@ CONFIG_COMMON_CLK_XGENE=y
 # 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
@@ -7551,10 +7752,13 @@ CONFIG_QCOM_RPMCC=y
 CONFIG_COMMON_CLK_QCOM=y
 CONFIG_QCOM_A53PLL=y
 CONFIG_QCOM_CLK_APCS_MSM8916=m
+CONFIG_QCOM_CLK_APCC_MSM8996=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
@@ -7562,6 +7766,7 @@ CONFIG_QCOM_CLK_SMD_RPM=m
 # 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
@@ -7577,7 +7782,8 @@ CONFIG_MSM_MMCC_8996=y
 # CONFIG_MSM_MMCC_8998 is not set
 # CONFIG_QCS_GCC_404 is not set
 # CONFIG_SC_DISPCC_7180 is not set
-# CONFIG_SC_GCC_7180 is not set
+CONFIG_SC_GCC_7180=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
@@ -7592,6 +7798,8 @@ CONFIG_SDM_DISPCC_845=m
 CONFIG_SDM_LPASSCC_845=m
 # CONFIG_SM_GCC_8150 is not set
 # CONFIG_SM_GCC_8250 is not set
+# CONFIG_SM_GPUCC_8150 is not set
+# CONFIG_SM_GPUCC_8250 is not set
 # CONFIG_SPMI_PMIC_CLKDIV is not set
 # CONFIG_QCOM_HFPLL is not set
 # CONFIG_KPSS_XCC is not set
@@ -7610,8 +7818,6 @@ CONFIG_SUN8I_DE2_CCU=y
 CONFIG_SUN8I_R_CCU=y
 CONFIG_CLK_TEGRA_BPMP=y
 CONFIG_TEGRA_CLK_DFLL=y
-# end of Common Clock Framework
-
 # CONFIG_HWSPINLOCK is not set
 
 #
@@ -7631,7 +7837,6 @@ CONFIG_HISILICON_ERRATUM_161010101=y
 CONFIG_ARM64_ERRATUM_858921=y
 CONFIG_SUN50I_ERRATUM_UNKNOWN1=y
 CONFIG_ARM_TIMER_SP804=y
-CONFIG_CLKSRC_VERSATILE=y
 CONFIG_TIMER_IMX_SYS_CTR=y
 # CONFIG_MICROCHIP_PIT64B is not set
 # end of Clock Source drivers
@@ -7653,6 +7858,7 @@ 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_IOMMU_API=y
 CONFIG_IOMMU_SUPPORT=y
@@ -7671,6 +7877,7 @@ CONFIG_IOMMU_IO_PGTABLE_LPAE=y
 CONFIG_OF_IOMMU=y
 CONFIG_IOMMU_DMA=y
 # CONFIG_ROCKCHIP_IOMMU is not set
+CONFIG_SUN50I_IOMMU=y
 CONFIG_TEGRA_IOMMU_SMMU=y
 CONFIG_ARM_SMMU=y
 # CONFIG_ARM_SMMU_LEGACY_DT_BINDINGS is not set
@@ -7690,7 +7897,7 @@ CONFIG_VIRTIO_IOMMU=m
 #
 CONFIG_RPMSG=m
 # CONFIG_RPMSG_CHAR is not set
-CONFIG_RPMSG_QCOM_GLINK_NATIVE=m
+CONFIG_RPMSG_QCOM_GLINK=m
 CONFIG_RPMSG_QCOM_GLINK_RPM=m
 # CONFIG_RPMSG_VIRTIO is not set
 # end of Rpmsg drivers
@@ -7738,7 +7945,6 @@ CONFIG_FSL_RCPM=y
 # i.MX SoC drivers
 #
 CONFIG_IMX_GPCV2_PM_DOMAINS=y
-# CONFIG_IMX_SCU_SOC is not set
 CONFIG_SOC_IMX8M=y
 # end of i.MX SoC drivers
 
@@ -7750,12 +7956,14 @@ CONFIG_QCOM_COMMAND_DB=y
 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
@@ -7795,6 +8003,7 @@ CONFIG_DEVFREQ_GOV_USERSPACE=m
 #
 # 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
@@ -7817,6 +8026,8 @@ CONFIG_EXTCON_USB_GPIO=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
@@ -7842,6 +8053,7 @@ CONFIG_IIO_CONSUMERS_PER_TRIGGER=2
 # CONFIG_BMA220 is not set
 CONFIG_BMA400=m
 CONFIG_BMA400_I2C=m
+CONFIG_BMA400_SPI=m
 # CONFIG_BMC150_ACCEL is not set
 # CONFIG_DA280 is not set
 # CONFIG_DA311 is not set
@@ -7889,6 +8101,8 @@ CONFIG_AD7124=m
 # CONFIG_AD7923 is not set
 # CONFIG_AD7949 is not set
 # CONFIG_AD799X is not set
+# CONFIG_AD9467 is not set
+# CONFIG_ADI_AXI_ADC is not set
 CONFIG_AXP20X_ADC=m
 CONFIG_AXP288_ADC=m
 # CONFIG_CC10001_ADC is not set
@@ -7904,12 +8118,14 @@ CONFIG_IMX7D_ADC=m
 # 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_MESON_SARADC=m
+# CONFIG_MP2629_ADC is not set
 # CONFIG_NAU7802 is not set
 CONFIG_QCOM_VADC_COMMON=m
 CONFIG_QCOM_SPMI_IADC=m
@@ -7952,10 +8168,14 @@ CONFIG_XILINX_XADC=m
 # 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
@@ -8086,12 +8306,16 @@ CONFIG_DHT11=m
 #
 # 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
@@ -8251,8 +8475,10 @@ CONFIG_HID_SENSOR_PRESS=m
 # 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
 
@@ -8291,6 +8517,7 @@ CONFIG_PWM_BCM2835=m
 # 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_MESON=m
 # CONFIG_PWM_PCA9685 is not set
 CONFIG_PWM_ROCKCHIP=m
@@ -8355,7 +8582,6 @@ CONFIG_PHY_SUN4I_USB=m
 CONFIG_PHY_SUN50I_USB3=m
 CONFIG_PHY_MESON8B_USB2=m
 CONFIG_PHY_MESON_GXL_USB2=y
-CONFIG_PHY_MESON_GXL_USB3=y
 CONFIG_PHY_MESON_G12A_USB2=y
 CONFIG_PHY_MESON_G12A_USB3_PCIE=y
 CONFIG_PHY_MESON_AXG_PCIE=y
@@ -8364,6 +8590,7 @@ CONFIG_PHY_MESON_AXG_MIPI_PCIE_ANALOG=y
 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
@@ -8380,16 +8607,17 @@ CONFIG_PHY_MVEBU_CP110_COMPHY=m
 # 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_UFS=m
-CONFIG_PHY_QCOM_UFS_14NM=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 is not set
 CONFIG_PHY_ROCKCHIP_EMMC=m
 # CONFIG_PHY_ROCKCHIP_INNO_HDMI is not set
@@ -8402,7 +8630,6 @@ CONFIG_PHY_ROCKCHIP_PCIE=m
 CONFIG_PHY_TEGRA_XUSB=m
 CONFIG_PHY_TEGRA194_P2U=m
 CONFIG_PHY_TUSB1210=m
-# CONFIG_PHY_INTEL_EMMC is not set
 # end of PHY Subsystem
 
 # CONFIG_POWERCAP is not set
@@ -8418,15 +8645,16 @@ 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_HISI_PMU is not set
 # 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_HISI_PMU is not set
 # end of Performance monitor support
 
 CONFIG_RAS=y
+CONFIG_USB4=m
 
 #
 # Android
@@ -8643,6 +8871,7 @@ 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
@@ -8733,6 +8962,11 @@ CONFIG_PSTORE_COMPRESS_DEFAULT="deflate"
 # 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
@@ -8772,6 +9006,7 @@ 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
@@ -8875,9 +9110,9 @@ CONFIG_IO_WQ=y
 CONFIG_KEYS=y
 CONFIG_KEYS_REQUEST_CACHE=y
 # CONFIG_PERSISTENT_KEYRINGS is not set
-# CONFIG_BIG_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
@@ -8958,7 +9193,7 @@ CONFIG_CRYPTO_ALGAPI=y
 CONFIG_CRYPTO_ALGAPI2=y
 CONFIG_CRYPTO_AEAD=m
 CONFIG_CRYPTO_AEAD2=y
-CONFIG_CRYPTO_SKCIPHER=m
+CONFIG_CRYPTO_SKCIPHER=y
 CONFIG_CRYPTO_SKCIPHER2=y
 CONFIG_CRYPTO_HASH=y
 CONFIG_CRYPTO_HASH2=y
@@ -9210,6 +9445,7 @@ CONFIG_BINARY_PRINTF=y
 #
 CONFIG_RAID6_PQ=m
 CONFIG_RAID6_PQ_BENCHMARK=y
+CONFIG_LINEAR_RANGES=y
 CONFIG_PACKING=y
 CONFIG_BITREVERSE=y
 CONFIG_HAVE_ARCH_BITREVERSE=y
@@ -9217,11 +9453,13 @@ 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_ARCH_HAS_FAST_MULTIPLIER=y
+CONFIG_ARCH_USE_SYM_ANNOTATIONS=y
 # CONFIG_INDIRECT_PIO is not set
 CONFIG_CRC_CCITT=m
 CONFIG_CRC16=y
@@ -9251,7 +9489,7 @@ CONFIG_LZ4_COMPRESS=m
 CONFIG_LZ4HC_COMPRESS=m
 CONFIG_LZ4_DECOMPRESS=y
 CONFIG_ZSTD_COMPRESS=m
-CONFIG_ZSTD_DECOMPRESS=m
+CONFIG_ZSTD_DECOMPRESS=y
 CONFIG_XZ_DEC=y
 # CONFIG_XZ_DEC_X86 is not set
 # CONFIG_XZ_DEC_POWERPC is not set
@@ -9266,11 +9504,13 @@ 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
@@ -9282,6 +9522,7 @@ 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
@@ -9294,6 +9535,7 @@ CONFIG_ARCH_HAS_DMA_PREP_COHERENT=y
 CONFIG_DMA_VIRT_OPS=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
@@ -9326,6 +9568,7 @@ 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
@@ -9363,6 +9606,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
@@ -9372,6 +9616,7 @@ CONFIG_DEBUG_BUGVERBOSE=y
 #
 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_DWARF4 is not set
 # CONFIG_DEBUG_INFO_BTF is not set
@@ -9383,6 +9628,7 @@ CONFIG_STRIP_ASM_SYMS=y
 # 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_DEBUG_FORCE_WEAK_PER_CPU is not set
@@ -9396,6 +9642,9 @@ 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
@@ -9416,6 +9665,8 @@ CONFIG_PAGE_POISONING_NO_SANITY=y
 # CONFIG_PAGE_POISONING_ZERO 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
@@ -9425,7 +9676,9 @@ 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
@@ -9433,8 +9686,8 @@ CONFIG_DEBUG_MEMORY_INIT=y
 CONFIG_HAVE_ARCH_KASAN=y
 CONFIG_HAVE_ARCH_KASAN_SW_TAGS=y
 CONFIG_CC_HAS_KASAN_GENERIC=y
+CONFIG_CC_HAS_WORKING_NOSANITIZE_ADDRESS=y
 # CONFIG_KASAN is not set
-CONFIG_KASAN_STACK=1
 # end of Memory Debugging
 
 # CONFIG_DEBUG_SHIRQ is not set
@@ -9507,6 +9760,7 @@ CONFIG_BUG_ON_DATA_CORRUPTION=y
 #
 # CONFIG_RCU_PERF_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
@@ -9540,7 +9794,6 @@ CONFIG_DYNAMIC_FTRACE=y
 CONFIG_DYNAMIC_FTRACE_WITH_REGS=y
 # CONFIG_FUNCTION_PROFILER is not set
 CONFIG_STACK_TRACER=y
-# CONFIG_PREEMPTIRQ_EVENTS is not set
 # CONFIG_IRQSOFF_TRACER is not set
 # CONFIG_SCHED_TRACER is not set
 # CONFIG_HWLAT_TRACER is not set
@@ -9558,6 +9811,7 @@ CONFIG_DYNAMIC_EVENTS=y
 CONFIG_PROBE_EVENTS=y
 # CONFIG_BPF_KPROBE_OVERRIDE is not set
 CONFIG_FTRACE_MCOUNT_RECORD=y
+CONFIG_SYNTH_EVENTS=y
 # CONFIG_HIST_TRIGGERS is not set
 # CONFIG_TRACE_EVENT_INJECT is not set
 # CONFIG_TRACEPOINT_BENCHMARK is not set
@@ -9566,6 +9820,7 @@ CONFIG_FTRACE_MCOUNT_RECORD=y
 # CONFIG_FTRACE_STARTUP_TEST is not set
 # CONFIG_RING_BUFFER_STARTUP_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_SAMPLES is not set
 CONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED=y
@@ -9576,8 +9831,6 @@ CONFIG_IO_STRICT_DEVMEM=y
 # arm64 Debugging
 #
 # CONFIG_PID_IN_CONTEXTIDR is not set
-# CONFIG_ARM64_RANDOMIZE_TEXT_OFFSET is not set
-# CONFIG_DEBUG_WX is not set
 # CONFIG_DEBUG_EFI is not set
 # CONFIG_ARM64_RELOC_TEST is not set
 # CONFIG_CORESIGHT is not set
@@ -9622,6 +9875,7 @@ CONFIG_TEST_XARRAY=m
 # 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
@@ -9635,6 +9889,7 @@ CONFIG_TEST_STATIC_KEYS=m
 # 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_MEMTEST is not set
 # end of Kernel Testing and Coverage
 # end of Kernel hacking
diff --git a/gnu/packages/aux-files/linux-libre/5.7-i686.conf b/gnu/packages/aux-files/linux-libre/5.9-i686.conf
index 45a50395ac..f4abcf55b5 100644
--- a/gnu/packages/aux-files/linux-libre/5.7-i686.conf
+++ b/gnu/packages/aux-files/linux-libre/5.9-i686.conf
@@ -1,16 +1,12 @@
 #
 # Automatically generated file; DO NOT EDIT.
-# Linux/i386 5.7.12-gnu Kernel Configuration
-#
-
-#
-# Compiler: gcc (Debian 8.3.0-6) 8.3.0
+# Linux/i386 5.9.2 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_LD_VERSION=231010000
 CONFIG_CLANG_VERSION=0
-CONFIG_CC_CAN_LINK=y
 CONFIG_CC_HAS_ASM_GOTO=y
 CONFIG_CC_HAS_ASM_INLINE=y
 CONFIG_IRQ_WORK=y
@@ -31,18 +27,22 @@ 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
@@ -78,6 +78,8 @@ 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
@@ -99,7 +101,6 @@ CONFIG_PREEMPT_VOLUNTARY=y
 #
 CONFIG_TICK_CPU_ACCOUNTING=y
 # 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
@@ -119,6 +120,8 @@ 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_RCU_STALL_COMMON=y
 CONFIG_RCU_NEED_SEGCBLIST=y
 # end of RCU Subsystem
@@ -126,7 +129,7 @@ CONFIG_RCU_NEED_SEGCBLIST=y
 CONFIG_BUILD_BIN2C=y
 # CONFIG_IKCONFIG is not set
 # CONFIG_IKHEADERS is not set
-CONFIG_LOG_BUF_SHIFT=17
+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
@@ -142,7 +145,6 @@ CONFIG_CGROUPS=y
 CONFIG_PAGE_COUNTER=y
 CONFIG_MEMCG=y
 CONFIG_MEMCG_SWAP=y
-# CONFIG_MEMCG_SWAP_ENABLED is not set
 CONFIG_MEMCG_KMEM=y
 CONFIG_BLK_CGROUP=y
 CONFIG_CGROUP_WRITEBACK=y
@@ -181,6 +183,7 @@ 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
@@ -285,7 +288,7 @@ CONFIG_CC_HAS_SANE_STACKPROTECTOR=y
 #
 # Processor type and features
 #
-CONFIG_ZONE_DMA=y
+# CONFIG_ZONE_DMA is not set
 CONFIG_SMP=y
 CONFIG_X86_FEATURE_NAMES=y
 CONFIG_X86_MPPARSE=y
@@ -295,26 +298,23 @@ CONFIG_RETPOLINE=y
 # CONFIG_X86_BIGSMP is not set
 CONFIG_X86_EXTENDED_PLATFORM=y
 # CONFIG_X86_GOLDFISH is not set
-CONFIG_X86_INTEL_MID=y
-# CONFIG_X86_INTEL_QUARK 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 is not set
-# CONFIG_X86_32_NON_STANDARD is not set
+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_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_PV_SMP=y
-CONFIG_XEN_DOM0=y
 CONFIG_XEN_PVHVM=y
 CONFIG_XEN_PVHVM_SMP=y
 CONFIG_XEN_SAVE_RESTORE=y
@@ -323,7 +323,6 @@ CONFIG_XEN_PVH=y
 CONFIG_KVM_GUEST=y
 CONFIG_ARCH_CPUIDLE_HALTPOLL=y
 CONFIG_PVH=y
-CONFIG_KVM_DEBUG_FS=y
 # CONFIG_PARAVIRT_TIME_ACCOUNTING is not set
 CONFIG_PARAVIRT_CLOCK=y
 # CONFIG_M486SX is not set
@@ -374,7 +373,6 @@ CONFIG_CPU_SUP_UMC_32=y
 CONFIG_CPU_SUP_ZHAOXIN=y
 CONFIG_HPET_TIMER=y
 CONFIG_HPET_EMULATE_RTC=y
-CONFIG_APB_TIMER=y
 CONFIG_DMI=y
 CONFIG_NR_CPUS_RANGE_BEGIN=2
 CONFIG_NR_CPUS_RANGE_END=8
@@ -475,7 +473,6 @@ CONFIG_MODIFY_LDT_SYSCALL=y
 # end of Processor type and features
 
 CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
-CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
 CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK=y
 
 #
@@ -487,6 +484,7 @@ 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
@@ -513,7 +511,6 @@ CONFIG_ACPI_SYSTEM_POWER_STATES_SUPPORT=y
 # CONFIG_ACPI_DEBUGGER is not set
 CONFIG_ACPI_SPCR_TABLE=y
 CONFIG_ACPI_SLEEP=y
-# CONFIG_ACPI_PROCFS_POWER is not set
 CONFIG_ACPI_REV_OVERRIDE_POSSIBLE=y
 CONFIG_ACPI_EC_DEBUGFS=m
 CONFIG_ACPI_AC=m
@@ -537,7 +534,6 @@ 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
@@ -593,7 +589,6 @@ CONFIG_X86_INTEL_PSTATE=y
 CONFIG_X86_PCC_CPUFREQ=y
 CONFIG_X86_ACPI_CPUFREQ=y
 CONFIG_X86_ACPI_CPUFREQ_CPB=y
-CONFIG_X86_SFI_CPUFREQ=m
 CONFIG_X86_POWERNOW_K6=m
 CONFIG_X86_POWERNOW_K7=m
 CONFIG_X86_POWERNOW_K7_ACPI=y
@@ -688,6 +683,7 @@ CONFIG_EFI_VARS_PSTORE=m
 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
@@ -723,15 +719,17 @@ 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 is not set
+CONFIG_KVM_WERROR=y
 CONFIG_KVM_INTEL=m
 CONFIG_KVM_AMD=m
 # 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
@@ -739,6 +737,7 @@ CONFIG_AS_SHA256_NI=y
 CONFIG_CRASH_CORE=y
 CONFIG_KEXEC_CORE=y
 CONFIG_HOTPLUG_SMT=y
+CONFIG_GENERIC_ENTRY=y
 CONFIG_OPROFILE=m
 # CONFIG_OPROFILE_EVENT_MULTIPLEX is not set
 CONFIG_HAVE_OPROFILE=y
@@ -772,7 +771,6 @@ 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_CLK=y
 CONFIG_HAVE_HW_BREAKPOINT=y
 CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y
 CONFIG_HAVE_USER_RETURN_NOTIFIER=y
@@ -793,7 +791,6 @@ CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
 CONFIG_SECCOMP_FILTER=y
 CONFIG_HAVE_ARCH_STACKLEAK=y
 CONFIG_HAVE_STACKPROTECTOR=y
-CONFIG_CC_HAS_STACKPROTECTOR_NONE=y
 CONFIG_STACKPROTECTOR=y
 CONFIG_STACKPROTECTOR_STRONG=y
 CONFIG_HAVE_ARCH_WITHIN_STACK_FRAMES=y
@@ -808,7 +805,6 @@ 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_HAVE_COPY_THREAD_TLS=y
 CONFIG_ISA_BUS_API=y
 CONFIG_CLONE_BACKWARDS=y
 CONFIG_OLD_SIGSUSPEND3=y
@@ -843,7 +839,9 @@ CONFIG_MODVERSIONS=y
 CONFIG_ASM_MODVERSIONS=y
 CONFIG_MODULE_SRCVERSION_ALL=y
 # CONFIG_MODULE_SIG is not set
-# CONFIG_MODULE_COMPRESS is not set
+CONFIG_MODULE_COMPRESS=y
+CONFIG_MODULE_COMPRESS_GZIP=y
+# CONFIG_MODULE_COMPRESS_XZ is not set
 # CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS is not set
 CONFIG_UNUSED_SYMBOLS=y
 CONFIG_MODULES_TREE_LOOKUP=y
@@ -866,6 +864,8 @@ 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
@@ -946,15 +946,9 @@ CONFIG_SELECT_MEMORY_MODEL=y
 # CONFIG_FLATMEM_MANUAL is not set
 CONFIG_SPARSEMEM_MANUAL=y
 CONFIG_SPARSEMEM=y
-CONFIG_HAVE_MEMORY_PRESENT=y
 CONFIG_SPARSEMEM_STATIC=y
-CONFIG_HAVE_MEMBLOCK_NODE_MAP=y
 CONFIG_HAVE_FAST_GUP=y
 CONFIG_MEMORY_ISOLATION=y
-CONFIG_MEMORY_HOTPLUG=y
-CONFIG_MEMORY_HOTPLUG_SPARSE=y
-# CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE is not set
-CONFIG_MEMORY_HOTREMOVE=y
 CONFIG_SPLIT_PTLOCK_CPUS=4
 CONFIG_MEMORY_BALLOON=y
 CONFIG_BALLOON_COMPACTION=y
@@ -994,7 +988,7 @@ CONFIG_ZPOOL=y
 CONFIG_ZBUD=y
 CONFIG_Z3FOLD=m
 CONFIG_ZSMALLOC=y
-CONFIG_PGTABLE_MAPPING=y
+# CONFIG_ZSMALLOC_PGTABLE_MAPPING is not set
 # CONFIG_ZSMALLOC_STAT is not set
 CONFIG_GENERIC_EARLY_IOREMAP=y
 CONFIG_IDLE_PAGE_TRACKING=y
@@ -1033,11 +1027,14 @@ 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 is not set
+CONFIG_XDP_SOCKETS=y
+CONFIG_XDP_SOCKETS_DIAG=m
 CONFIG_INET=y
 CONFIG_IP_MULTICAST=y
 CONFIG_IP_ADVANCED_ROUTER=y
@@ -1105,6 +1102,7 @@ CONFIG_IPV6_ROUTE_INFO=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=m
 CONFIG_IPV6_ILA=m
@@ -1128,8 +1126,8 @@ CONFIG_IPV6_PIMSM_V2=y
 # CONFIG_IPV6_RPL_LWTUNNEL is not set
 CONFIG_NETLABEL=y
 CONFIG_MPTCP=y
+CONFIG_INET_MPTCP_DIAG=m
 CONFIG_MPTCP_IPV6=y
-# CONFIG_MPTCP_HMAC_TEST is not set
 CONFIG_NETWORK_SECMARK=y
 CONFIG_NET_PTP_CLASSIFY=y
 # CONFIG_NETWORK_PHY_TIMESTAMPING is not set
@@ -1544,6 +1542,7 @@ CONFIG_MRP=m
 CONFIG_BRIDGE=m
 CONFIG_BRIDGE_IGMP_SNOOPING=y
 CONFIG_BRIDGE_VLAN_FILTERING=y
+CONFIG_BRIDGE_MRP=y
 CONFIG_HAVE_NET_DSA=y
 CONFIG_NET_DSA=m
 CONFIG_NET_DSA_TAG_8021Q=m
@@ -1556,6 +1555,7 @@ 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_QCA=m
 CONFIG_NET_DSA_TAG_LAN9303=m
@@ -1688,6 +1688,7 @@ 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
@@ -1725,6 +1726,10 @@ 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_RPS=y
@@ -1851,8 +1856,9 @@ CONFIG_BT_HS=y
 CONFIG_BT_LE=y
 CONFIG_BT_6LOWPAN=m
 # CONFIG_BT_LEDS is not set
-# CONFIG_BT_SELFTEST is not set
+CONFIG_BT_MSFTEXT=y
 CONFIG_BT_DEBUGFS=y
+# CONFIG_BT_SELFTEST is not set
 
 #
 # Bluetooth device drivers
@@ -2013,11 +2019,7 @@ CONFIG_HAVE_EBPF_JIT=y
 # Device Drivers
 #
 CONFIG_HAVE_EISA=y
-CONFIG_EISA=y
-CONFIG_EISA_VLB_PRIMING=y
-CONFIG_EISA_PCI_EISA=y
-CONFIG_EISA_VIRTUAL_ROOT=y
-CONFIG_EISA_NAMES=y
+# CONFIG_EISA is not set
 CONFIG_HAVE_PCI=y
 CONFIG_PCI=y
 CONFIG_PCI_DOMAINS=y
@@ -2221,6 +2223,7 @@ 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
 
@@ -2294,6 +2297,9 @@ 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
@@ -2315,6 +2321,7 @@ 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
@@ -2327,6 +2334,7 @@ CONFIG_MTD_NAND_DISKONCHIP=m
 CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADDRESS=0
 # CONFIG_MTD_NAND_DISKONCHIP_BBTWRITE is not set
 CONFIG_MTD_SPI_NAND=m
+# end of NAND
 
 #
 # LPDDR & LPDDR2 PCM memory drivers
@@ -2426,6 +2434,9 @@ 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
@@ -2439,6 +2450,7 @@ 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
@@ -2456,7 +2468,6 @@ CONFIG_AD525X_DPOT_SPI=m
 CONFIG_DUMMY_IRQ=m
 CONFIG_IBM_ASM=m
 CONFIG_PHANTOM=m
-CONFIG_INTEL_MID_PTI=m
 CONFIG_TIFM_CORE=m
 CONFIG_TIFM_7XX1=m
 CONFIG_ICS932S401=m
@@ -2582,7 +2593,6 @@ CONFIG_SCSI_3W_SAS=m
 CONFIG_SCSI_ACARD=m
 CONFIG_SCSI_AHA152X=m
 CONFIG_SCSI_AHA1542=m
-CONFIG_SCSI_AHA1740=m
 CONFIG_SCSI_AACRAID=m
 CONFIG_SCSI_AIC7XXX=m
 CONFIG_AIC7XXX_CMDS_PER_DEVICE=8
@@ -2623,6 +2633,7 @@ 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
@@ -2670,7 +2681,6 @@ CONFIG_QEDI=m
 CONFIG_QEDF=m
 CONFIG_SCSI_LPFC=m
 # CONFIG_SCSI_LPFC_DEBUG_FS is not set
-CONFIG_SCSI_SIM710=m
 CONFIG_SCSI_DC395x=m
 CONFIG_SCSI_AM53C974=m
 CONFIG_SCSI_NSP32=m
@@ -2816,6 +2826,7 @@ 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
@@ -2830,6 +2841,7 @@ 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
@@ -2839,6 +2851,7 @@ 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_DELAY=m
 CONFIG_DM_DUST=m
 # CONFIG_DM_INIT is not set
@@ -3162,14 +3175,18 @@ 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_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_MLXSW_CORE=m
 CONFIG_MLXSW_CORE_HWMON=y
@@ -3193,7 +3210,6 @@ CONFIG_ENC28J60=m
 CONFIG_ENCX24J600=m
 CONFIG_LAN743X=m
 CONFIG_NET_VENDOR_MICROSEMI=y
-CONFIG_MSCC_OCELOT_SWITCH=m
 CONFIG_NET_VENDOR_MYRI=y
 CONFIG_MYRI10GE=m
 CONFIG_FEALNX=m
@@ -3325,6 +3341,7 @@ CONFIG_SKFP=m
 CONFIG_NET_SB1000=m
 CONFIG_MDIO_DEVICE=y
 CONFIG_MDIO_BUS=y
+CONFIG_MDIO_DEVRES=y
 CONFIG_MDIO_BCM_UNIMAC=m
 CONFIG_MDIO_BITBANG=m
 CONFIG_MDIO_GPIO=m
@@ -3349,6 +3366,7 @@ CONFIG_BCM7XXX_PHY=m
 CONFIG_BCM87XX_PHY=m
 CONFIG_BCM_NET_PHYLIB=m
 CONFIG_BROADCOM_PHY=m
+CONFIG_BCM54140_PHY=m
 CONFIG_BCM84881_PHY=m
 CONFIG_CICADA_PHY=m
 CONFIG_CORTINA_PHY=m
@@ -3634,6 +3652,14 @@ CONFIG_MT7601U=m
 # 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_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
@@ -3945,6 +3971,7 @@ 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
@@ -4041,7 +4068,6 @@ CONFIG_INPUT_AD714X_SPI=m
 CONFIG_INPUT_ARIZONA_HAPTICS=m
 CONFIG_INPUT_BMA150=m
 CONFIG_INPUT_E3X0_BUTTON=m
-CONFIG_INPUT_MSM_VIBRATOR=m
 CONFIG_INPUT_PCSPKR=m
 CONFIG_INPUT_MAX77693_HAPTIC=m
 CONFIG_INPUT_MAX8925_ONKEY=m
@@ -4049,7 +4075,6 @@ CONFIG_INPUT_MAX8997_HAPTIC=m
 CONFIG_INPUT_MC13783_PWRBUTTON=m
 CONFIG_INPUT_MMA8450=m
 CONFIG_INPUT_APANEL=m
-CONFIG_INPUT_GP2A=m
 CONFIG_INPUT_GPIO_BEEPER=m
 CONFIG_INPUT_GPIO_DECODER=m
 CONFIG_INPUT_GPIO_VIBRA=m
@@ -4083,6 +4108,7 @@ 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_CMA3000=m
 CONFIG_INPUT_CMA3000_I2C=m
 CONFIG_INPUT_XEN_KBDDEV_FRONTEND=m
@@ -4192,6 +4218,7 @@ 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
@@ -4258,6 +4285,7 @@ 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
@@ -4379,10 +4407,10 @@ CONFIG_I2C_SCMI=m
 #
 CONFIG_I2C_CBUS_GPIO=m
 CONFIG_I2C_DESIGNWARE_CORE=y
-CONFIG_I2C_DESIGNWARE_PLATFORM=y
 # CONFIG_I2C_DESIGNWARE_SLAVE is not set
-CONFIG_I2C_DESIGNWARE_PCI=m
+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
@@ -4437,13 +4465,14 @@ 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_MID_DMA=y
 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
@@ -4455,6 +4484,7 @@ 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
@@ -4468,6 +4498,7 @@ 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
@@ -4507,7 +4538,7 @@ 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=m
+# CONFIG_PTP_1588_CLOCK_VMW is not set
 # end of PTP clock support
 
 CONFIG_PINCTRL=y
@@ -4516,20 +4547,23 @@ CONFIG_PINCONF=y
 CONFIG_GENERIC_PINCONF=y
 # CONFIG_DEBUG_PINCTRL is not set
 CONFIG_PINCTRL_AMD=y
-CONFIG_PINCTRL_DA9062=m
+# 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_MERRIFIELD=m
 CONFIG_PINCTRL_INTEL=m
 CONFIG_PINCTRL_BROXTON=m
 CONFIG_PINCTRL_CANNONLAKE=m
 CONFIG_PINCTRL_CEDARFORK=m
 CONFIG_PINCTRL_DENVERTON=m
+CONFIG_PINCTRL_EMMITSBURG=m
 CONFIG_PINCTRL_GEMINILAKE=m
 CONFIG_PINCTRL_ICELAKE=m
+CONFIG_PINCTRL_JASPERLAKE=m
 CONFIG_PINCTRL_LEWISBURG=m
 CONFIG_PINCTRL_SUNRISEPOINT=m
 CONFIG_PINCTRL_TIGERLAKE=m
@@ -4553,6 +4587,7 @@ 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_XILINX=m
 CONFIG_GPIO_AMD_FCH=m
@@ -4576,6 +4611,8 @@ 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
@@ -4618,8 +4655,6 @@ CONFIG_GPIO_WM8994=m
 # PCI GPIO expanders
 #
 CONFIG_GPIO_AMD8111=m
-CONFIG_GPIO_INTEL_MID=y
-CONFIG_GPIO_MERRIFIELD=m
 CONFIG_GPIO_ML_IOH=m
 CONFIG_GPIO_PCH=m
 CONFIG_GPIO_PCI_IDIO_16=m
@@ -4643,6 +4678,7 @@ CONFIG_GPIO_XRA1403=m
 CONFIG_GPIO_VIPERBOARD=m
 # end of USB GPIO expanders
 
+CONFIG_GPIO_AGGREGATOR=m
 # CONFIG_GPIO_MOCKUP is not set
 CONFIG_W1=m
 CONFIG_W1_CON=y
@@ -4699,6 +4735,7 @@ 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
@@ -4738,10 +4775,12 @@ 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_SMB347=m
 CONFIG_CHARGER_TPS65090=m
@@ -4749,6 +4788,7 @@ CONFIG_BATTERY_GAUGE_LTC2941=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
@@ -4782,11 +4822,13 @@ CONFIG_SENSORS_AXI_FAN_CONTROL=m
 CONFIG_SENSORS_K8TEMP=m
 CONFIG_SENSORS_K10TEMP=m
 CONFIG_SENSORS_FAM15H_POWER=m
+CONFIG_SENSORS_AMD_ENERGY=m
 CONFIG_SENSORS_APPLESMC=m
 CONFIG_SENSORS_ASB100=m
 CONFIG_SENSORS_ASPEED=m
 CONFIG_SENSORS_ATXP1=m
-CONFIG_SENSORS_DRIVETEMP=m
+CONFIG_SENSORS_CORSAIR_CPRO=m
+CONFIG_SENSORS_DRIVETEMP=y
 CONFIG_SENSORS_DS620=m
 CONFIG_SENSORS_DS1621=m
 CONFIG_SENSORS_DELL_SMM=m
@@ -4881,6 +4923,7 @@ CONFIG_SENSORS_LTC2978=m
 CONFIG_SENSORS_LTC2978_REGULATOR=y
 CONFIG_SENSORS_LTC3815=m
 CONFIG_SENSORS_MAX16064=m
+CONFIG_SENSORS_MAX16601=m
 CONFIG_SENSORS_MAX20730=m
 CONFIG_SENSORS_MAX20751=m
 CONFIG_SENSORS_MAX31785=m
@@ -4950,6 +4993,7 @@ CONFIG_SENSORS_XGENE=m
 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
@@ -4961,7 +5005,6 @@ 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_CLOCK_THERMAL=y
 CONFIG_DEVFREQ_THERMAL=y
 CONFIG_THERMAL_EMULATION=y
 
@@ -4972,6 +5015,7 @@ CONFIG_INTEL_POWERCLAMP=m
 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
@@ -5033,8 +5077,6 @@ CONFIG_IBMASR=m
 CONFIG_WAFER_WDT=m
 CONFIG_I6300ESB_WDT=m
 CONFIG_IE6XX_WDT=m
-CONFIG_INTEL_SCU_WATCHDOG=y
-CONFIG_INTEL_MID_WATCHDOG=m
 CONFIG_ITCO_WDT=m
 CONFIG_ITCO_VENDOR_SUPPORT=y
 CONFIG_IT8712F_WDT=m
@@ -5046,6 +5088,7 @@ 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
@@ -5140,6 +5183,7 @@ 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
@@ -5154,6 +5198,7 @@ CONFIG_MFD_INTEL_LPSS=m
 CONFIG_MFD_INTEL_LPSS_ACPI=m
 CONFIG_MFD_INTEL_LPSS_PCI=m
 CONFIG_MFD_INTEL_MSIC=y
+CONFIG_MFD_INTEL_PMC_BXT=m
 CONFIG_MFD_IQS62X=m
 CONFIG_MFD_JANZ_CMODIO=m
 CONFIG_MFD_KEMPLD=m
@@ -5167,6 +5212,7 @@ 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
@@ -5184,10 +5230,10 @@ CONFIG_MFD_SI476X_CORE=m
 CONFIG_MFD_SM501=m
 CONFIG_MFD_SM501_GPIO=y
 CONFIG_MFD_SKY81452=m
-CONFIG_MFD_SMSC=y
 CONFIG_ABX500_CORE=y
 CONFIG_AB3100_CORE=y
 CONFIG_AB3100_OTP=m
+CONFIG_MFD_STA2X11=y
 CONFIG_MFD_SYSCON=y
 CONFIG_MFD_TI_AM335X_TSCADC=m
 CONFIG_MFD_LP3943=m
@@ -5279,14 +5325,17 @@ 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_MT6323=m
+CONFIG_REGULATOR_MT6358=m
 CONFIG_REGULATOR_MT6397=m
 CONFIG_REGULATOR_PALMAS=m
+CONFIG_REGULATOR_PCA9450=m
 CONFIG_REGULATOR_PCAP=m
 CONFIG_REGULATOR_PCF50633=m
 CONFIG_REGULATOR_PFUZE100=m
@@ -5295,6 +5344,7 @@ 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_RC5T583=m
 CONFIG_REGULATOR_RT5033=m
 CONFIG_REGULATOR_S2MPA01=m
@@ -5320,8 +5370,7 @@ CONFIG_REGULATOR_WM831X=m
 CONFIG_REGULATOR_WM8350=m
 CONFIG_REGULATOR_WM8400=m
 CONFIG_REGULATOR_WM8994=m
-CONFIG_CEC_CORE=m
-CONFIG_CEC_NOTIFIER=y
+CONFIG_REGULATOR_QCOM_LABIBB=m
 CONFIG_RC_CORE=m
 CONFIG_RC_MAP=m
 CONFIG_LIRC=y
@@ -5357,25 +5406,47 @@ 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
 
 #
-# Multimedia core support
+# 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_CEC_SUPPORT=y
-# CONFIG_MEDIA_CEC_RC is not set
-CONFIG_MEDIA_CONTROLLER=y
-CONFIG_MEDIA_CONTROLLER_DVB=y
-# CONFIG_MEDIA_CONTROLLER_REQUEST_API is not set
+CONFIG_MEDIA_PLATFORM_SUPPORT=y
+CONFIG_MEDIA_TEST_SUPPORT=y
+# end of Media device types
+
+#
+# Media core support
+#
 CONFIG_VIDEO_DEV=m
-CONFIG_VIDEO_V4L2_SUBDEV_API=y
+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
@@ -5385,18 +5456,34 @@ CONFIG_V4L2_FWNODE=m
 CONFIG_VIDEOBUF_GEN=m
 CONFIG_VIDEOBUF_DMA_SG=m
 CONFIG_VIDEOBUF_VMALLOC=m
-CONFIG_DVB_CORE=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_TTPCI_EEPROM=m
 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
 
 #
@@ -5559,12 +5646,6 @@ CONFIG_VIDEO_EM28XX_RC=m
 CONFIG_USB_AIRSPY=m
 CONFIG_USB_HACKRF=m
 CONFIG_USB_MSI2500=m
-
-#
-# USB HDMI CEC adapters
-#
-CONFIG_USB_PULSE8_CEC=m
-CONFIG_USB_RAINSHADOW_CEC=m
 CONFIG_MEDIA_PCI_SUPPORT=y
 
 #
@@ -5572,6 +5653,7 @@ CONFIG_MEDIA_PCI_SUPPORT=y
 #
 CONFIG_VIDEO_MEYE=m
 CONFIG_VIDEO_SOLO6X10=m
+CONFIG_STA2X11_VIP=m
 CONFIG_VIDEO_TW5864=m
 CONFIG_VIDEO_TW68=m
 CONFIG_VIDEO_TW686X=m
@@ -5641,34 +5723,6 @@ CONFIG_DVB_DDBRIDGE=m
 CONFIG_DVB_SMIPCIE=m
 CONFIG_DVB_NETUP_UNIDVB=m
 CONFIG_VIDEO_IPU3_CIO2=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_VIDEO_SH_VEU=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_PLATFORM_DRIVERS=y
-CONFIG_CEC_PLATFORM_DRIVERS=y
-CONFIG_VIDEO_CROS_EC_CEC=m
-CONFIG_VIDEO_SECO_CEC=m
-# CONFIG_VIDEO_SECO_RC is not set
-CONFIG_SDR_PLATFORM_DRIVERS=y
-
-#
-# Supported MMC/SDIO adapters
-#
-CONFIG_SMS_SDIO_DRV=m
 CONFIG_RADIO_ADAPTERS=y
 CONFIG_RADIO_TEA575X=m
 CONFIG_RADIO_SI470X=m
@@ -5692,13 +5746,7 @@ CONFIG_RADIO_SAA7706H=m
 CONFIG_RADIO_TEF6862=m
 CONFIG_RADIO_TIMBERDALE=m
 CONFIG_RADIO_WL1273=m
-
-#
-# Texas Instruments WL128x FM driver (ST based)
-#
 CONFIG_RADIO_WL128X=m
-# end of Texas Instruments WL128x FM driver (ST based)
-
 CONFIG_V4L_RADIO_ISA_DRIVERS=y
 CONFIG_RADIO_ISA=m
 CONFIG_RADIO_CADET=m
@@ -5713,12 +5761,6 @@ CONFIG_RADIO_TERRATEC=m
 CONFIG_RADIO_TRUST=m
 CONFIG_RADIO_TYPHOON=m
 CONFIG_RADIO_ZOLTRIX=m
-
-#
-# Supported FireWire (IEEE 1394) Adapters
-#
-CONFIG_DVB_FIREDTV=m
-CONFIG_DVB_FIREDTV_INPUT=y
 CONFIG_MEDIA_COMMON_OPTIONS=y
 
 #
@@ -5741,17 +5783,46 @@ 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
 
 #
-# Media ancillary drivers (tuners, sensors, i2c, spi, frontends)
+# 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
+
+#
+# FireWire (IEEE 1394) Adapters
+#
+CONFIG_DVB_FIREDTV=m
+CONFIG_DVB_FIREDTV_INPUT=y
+# end of Media drivers
+
+#
+# Media ancillary drivers
 #
-CONFIG_MEDIA_SUBDRV_AUTOSELECT=y
 CONFIG_MEDIA_ATTACH=y
-CONFIG_VIDEO_IR_I2C=m
 
 #
-# I2C Encoders, decoders, sensors and other helper chips
+# IR I2C driver auto-selected by 'Autoselect ancillary drivers'
 #
+CONFIG_VIDEO_IR_I2C=m
 
 #
 # Audio decoders, processors and mixers
@@ -5772,11 +5843,13 @@ 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
@@ -5810,6 +5883,7 @@ CONFIG_VIDEO_VPX3220=m
 #
 CONFIG_VIDEO_SAA717X=m
 CONFIG_VIDEO_CX25840=m
+# end of Video decoders
 
 #
 # Video encoders
@@ -5825,6 +5899,35 @@ 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
@@ -5843,6 +5946,7 @@ 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_OV6650=m
 CONFIG_VIDEO_OV5670=m
@@ -5870,6 +5974,7 @@ CONFIG_VIDEO_MT9V111=m
 CONFIG_VIDEO_SR030PC30=m
 CONFIG_VIDEO_NOON010PC30=m
 CONFIG_VIDEO_M5MOLS=m
+CONFIG_VIDEO_RDACM20=m
 CONFIG_VIDEO_RJ54N1=m
 CONFIG_VIDEO_S5K6AA=m
 CONFIG_VIDEO_S5K6A3=m
@@ -5878,6 +5983,7 @@ CONFIG_VIDEO_S5K5BAF=m
 CONFIG_VIDEO_SMIAPP=m
 CONFIG_VIDEO_ET8EK8=m
 CONFIG_VIDEO_S5C73M3=m
+# end of Camera sensor devices
 
 #
 # Lens drivers
@@ -5885,7 +5991,9 @@ CONFIG_VIDEO_S5C73M3=m
 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
@@ -5893,31 +6001,7 @@ CONFIG_VIDEO_DW9807_VCM=m
 CONFIG_VIDEO_ADP1653=m
 CONFIG_VIDEO_LM3560=m
 CONFIG_VIDEO_LM3646=m
-
-#
-# Video improvement chips
-#
-CONFIG_VIDEO_UPD64031A=m
-CONFIG_VIDEO_UPD64083=m
-
-#
-# Audio/Video compression chips
-#
-CONFIG_VIDEO_SAA6752HS=m
-
-#
-# SDR tuner chips
-#
-CONFIG_SDR_MAX2175=m
-
-#
-# Miscellaneous helper chips
-#
-CONFIG_VIDEO_THS7303=m
-CONFIG_VIDEO_M52790=m
-CONFIG_VIDEO_I2C=m
-CONFIG_VIDEO_ST_MIPID02=m
-# end of I2C Encoders, decoders, sensors and other helper chips
+# end of Flash devices
 
 #
 # SPI helper chips
@@ -6138,12 +6222,13 @@ CONFIG_DVB_HELENE=m
 #
 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 Customise DVB Frontends
+# end of Media ancillary drivers
 
 #
 # Graphics support
@@ -6218,6 +6303,7 @@ CONFIG_DRM_AMDGPU_USERPTR=y
 #
 CONFIG_DRM_AMD_DC=y
 CONFIG_DRM_AMD_DC_DCN=y
+CONFIG_DRM_AMD_DC_DCN3_0=y
 # CONFIG_DRM_AMD_DC_HDCP is not set
 # CONFIG_DEBUG_KERNEL_DC is not set
 # end of Display Engine Configuration
@@ -6227,6 +6313,7 @@ CONFIG_DRM_NOUVEAU=m
 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=""
@@ -6252,6 +6339,7 @@ CONFIG_DRM_I915_USERPTR=y
 #
 # drm/i915 Profile Guided Optimisation
 #
+CONFIG_DRM_I915_FENCE_TIMEOUT=10000
 CONFIG_DRM_I915_USERFAULT_AUTOSUSPEND=250
 CONFIG_DRM_I915_HEARTBEAT_INTERVAL=2500
 CONFIG_DRM_I915_PREEMPT_TIMEOUT=640
@@ -6267,11 +6355,9 @@ CONFIG_DRM_VMWGFX_FBCON=y
 CONFIG_DRM_GMA500=m
 CONFIG_DRM_GMA600=y
 CONFIG_DRM_GMA3600=y
-CONFIG_DRM_MEDFIELD=y
 CONFIG_DRM_UDL=m
 CONFIG_DRM_AST=m
 # CONFIG_DRM_MGAG200 is not set
-CONFIG_DRM_CIRRUS_QEMU=m
 CONFIG_DRM_QXL=m
 CONFIG_DRM_BOCHS=m
 CONFIG_DRM_VIRTIO_GPU=m
@@ -6294,6 +6380,7 @@ 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
@@ -6442,7 +6529,6 @@ CONFIG_LCD_LMS501KF03=m
 CONFIG_LCD_HX8357=m
 CONFIG_LCD_OTM3225A=m
 CONFIG_BACKLIGHT_CLASS_DEVICE=y
-CONFIG_BACKLIGHT_GENERIC=m
 CONFIG_BACKLIGHT_LM3533=m
 CONFIG_BACKLIGHT_CARILLO_RANCH=m
 CONFIG_BACKLIGHT_PWM=m
@@ -6481,7 +6567,6 @@ CONFIG_HDMI=y
 # Console display driver support
 #
 CONFIG_VGA_CONSOLE=y
-# CONFIG_VGACON_SOFT_SCROLLBACK is not set
 CONFIG_MDA_CONSOLE=m
 CONFIG_DUMMY_CONSOLE=y
 CONFIG_DUMMY_CONSOLE_COLUMNS=80
@@ -6596,9 +6681,7 @@ CONFIG_SND_MSND_PINNACLE=m
 CONFIG_SND_MSND_CLASSIC=m
 CONFIG_SND_PCI=y
 CONFIG_SND_AD1889=m
-CONFIG_SND_ALS300=m
 CONFIG_SND_ALS4000=m
-CONFIG_SND_ALI5451=m
 CONFIG_SND_ASIHPI=m
 CONFIG_SND_ATIIXP=m
 CONFIG_SND_ATIIXP_MODEM=m
@@ -6606,7 +6689,6 @@ CONFIG_SND_AU8810=m
 CONFIG_SND_AU8820=m
 CONFIG_SND_AU8830=m
 CONFIG_SND_AW2=m
-CONFIG_SND_AZT3328=m
 CONFIG_SND_BT87X=m
 # CONFIG_SND_BT87X_OVERCLOCK is not set
 CONFIG_SND_CA0106=m
@@ -6633,28 +6715,18 @@ 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=m
 CONFIG_SND_ENS1371=m
-CONFIG_SND_ES1938=m
-CONFIG_SND_ES1968=m
-CONFIG_SND_ES1968_INPUT=y
-CONFIG_SND_ES1968_RADIO=y
 CONFIG_SND_FM801=m
 CONFIG_SND_FM801_TEA575X_BOOL=y
 CONFIG_SND_HDSP=m
 CONFIG_SND_HDSPM=m
-CONFIG_SND_ICE1712=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_MAESTRO3=m
-CONFIG_SND_MAESTRO3_INPUT=y
 CONFIG_SND_MIXART=m
 CONFIG_SND_NM256=m
 CONFIG_SND_PCXHR=m
@@ -6662,9 +6734,6 @@ CONFIG_SND_RIPTIDE=m
 CONFIG_SND_RME32=m
 CONFIG_SND_RME96=m
 CONFIG_SND_RME9652=m
-CONFIG_SND_SIS7019=m
-CONFIG_SND_SONICVIBES=m
-CONFIG_SND_TRIDENT=m
 CONFIG_SND_VIA82XX=m
 CONFIG_SND_VIA82XX_MODEM=m
 CONFIG_SND_VIRTUOSO=m
@@ -6675,6 +6744,7 @@ 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
@@ -6695,6 +6765,7 @@ 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
@@ -6747,6 +6818,8 @@ 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
@@ -6767,6 +6840,7 @@ 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_IMX_AUDMUX=m
 # end of SoC Audio for Freescale CPUs
 
@@ -6820,12 +6894,21 @@ 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=m
@@ -6833,7 +6916,41 @@ CONFIG_SND_SOC_SOF_ACPI=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_INTEL_TOPLEVEL is not set
+CONFIG_SND_SOC_SOF_PROBE_WORK_QUEUE=y
+CONFIG_SND_SOC_SOF_INTEL_TOPLEVEL=y
+CONFIG_SND_SOC_SOF_INTEL_ACPI=m
+CONFIG_SND_SOC_SOF_INTEL_PCI=m
+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_MERRIFIELD_SUPPORT=y
+CONFIG_SND_SOC_SOF_MERRIFIELD=m
+CONFIG_SND_SOC_SOF_APOLLOLAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_APOLLOLAKE=m
+CONFIG_SND_SOC_SOF_GEMINILAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_GEMINILAKE=m
+CONFIG_SND_SOC_SOF_CANNONLAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_CANNONLAKE=m
+CONFIG_SND_SOC_SOF_COFFEELAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_COFFEELAKE=m
+CONFIG_SND_SOC_SOF_ICELAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_ICELAKE=m
+CONFIG_SND_SOC_SOF_COMETLAKE=m
+CONFIG_SND_SOC_SOF_COMETLAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_COMETLAKE_LP_SUPPORT=y
+CONFIG_SND_SOC_SOF_TIGERLAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_TIGERLAKE=m
+CONFIG_SND_SOC_SOF_ELKHARTLAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_ELKHARTLAKE=m
+CONFIG_SND_SOC_SOF_JASPERLAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_JASPERLAKE=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_XTENSA=m
 
 #
 # STMicroelectronics STM32 SOC audio support
@@ -6917,6 +7034,8 @@ 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
@@ -6943,6 +7062,8 @@ 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_RT5514=m
 CONFIG_SND_SOC_RT5514_SPI=m
 CONFIG_SND_SOC_RT5616=m
@@ -6956,6 +7077,7 @@ 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
@@ -7018,6 +7140,7 @@ 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
@@ -7203,8 +7326,8 @@ CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
 CONFIG_USB_DEFAULT_PERSIST=y
 CONFIG_USB_DYNAMIC_MINORS=y
 # CONFIG_USB_OTG is not set
-# CONFIG_USB_OTG_WHITELIST is not set
-# CONFIG_USB_OTG_BLACKLIST_HUB 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
@@ -7216,6 +7339,7 @@ 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
@@ -7323,9 +7447,11 @@ 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_PCI=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
@@ -7636,6 +7762,7 @@ 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
 
 #
@@ -7657,11 +7784,6 @@ CONFIG_LEDS_PCA9532_GPIO=y
 CONFIG_LEDS_GPIO=m
 CONFIG_LEDS_LP3944=m
 CONFIG_LEDS_LP3952=m
-CONFIG_LEDS_LP55XX_COMMON=m
-CONFIG_LEDS_LP5521=m
-CONFIG_LEDS_LP5523=m
-CONFIG_LEDS_LP5562=m
-CONFIG_LEDS_LP8501=m
 CONFIG_LEDS_LP8788=m
 CONFIG_LEDS_CLEVO_MAIL=m
 CONFIG_LEDS_PCA955X=m
@@ -7689,13 +7811,14 @@ 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 is not set
-# CONFIG_LEDS_MLXREG is not set
+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
 
 #
 # LED Triggers
@@ -7725,7 +7848,6 @@ CONFIG_LEDS_TRIGGER_AUDIO=m
 CONFIG_INFINIBAND=m
 CONFIG_INFINIBAND_USER_MAD=m
 CONFIG_INFINIBAND_USER_ACCESS=m
-# CONFIG_INFINIBAND_EXP_LEGACY_VERBS_NEW_UAPI is not set
 CONFIG_INFINIBAND_USER_MEM=y
 CONFIG_INFINIBAND_ON_DEMAND_PAGING=y
 CONFIG_INFINIBAND_ADDR_TRANS=y
@@ -7748,6 +7870,9 @@ 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
@@ -7872,7 +7997,6 @@ CONFIG_RTC_DRV_RV3029_HWMON=y
 # Platform RTC drivers
 #
 CONFIG_RTC_DRV_CMOS=y
-CONFIG_RTC_DRV_VRTC=m
 CONFIG_RTC_DRV_DS1286=m
 CONFIG_RTC_DRV_DS1511=m
 CONFIG_RTC_DRV_DS1553=m
@@ -7928,6 +8052,7 @@ CONFIG_INTEL_IDMA64=m
 CONFIG_PCH_DMA=m
 CONFIG_PLX_DMA=m
 CONFIG_TIMB_DMA=m
+CONFIG_XILINX_ZYNQMP_DPDMA=m
 CONFIG_QCOM_HIDMA_MGMT=m
 CONFIG_QCOM_HIDMA=m
 CONFIG_DW_DMAC_CORE=m
@@ -7936,7 +8061,6 @@ CONFIG_DW_DMAC_PCI=m
 CONFIG_DW_EDMA=m
 CONFIG_DW_EDMA_PCIE=m
 CONFIG_HSU_DMA=m
-CONFIG_HSU_DMA_PCI=m
 CONFIG_SF_PDMA=m
 
 #
@@ -8011,9 +8135,10 @@ CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y
 CONFIG_VDPA=m
 # CONFIG_VDPA_SIM is not set
 CONFIG_IFCVF=m
+CONFIG_MLX5_VDPA=y
+CONFIG_MLX5_VDPA_NET=m
 CONFIG_VHOST_IOTLB=m
 CONFIG_VHOST_RING=m
-CONFIG_VHOST_DPN=y
 CONFIG_VHOST=m
 CONFIG_VHOST_MENU=y
 CONFIG_VHOST_NET=m
@@ -8035,8 +8160,6 @@ CONFIG_HYPERV_BALLOON=m
 # Xen driver support
 #
 CONFIG_XEN_BALLOON=y
-CONFIG_XEN_BALLOON_MEMORY_HOTPLUG=y
-CONFIG_XEN_BALLOON_MEMORY_HOTPLUG_LIMIT=4
 CONFIG_XEN_SCRUB_PAGES_DEFAULT=y
 CONFIG_XEN_DEV_EVTCHN=m
 CONFIG_XEN_BACKEND=y
@@ -8053,13 +8176,8 @@ 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_AUTO_XLATE=y
 CONFIG_XEN_ACPI=y
-CONFIG_XEN_SYMS=y
-CONFIG_XEN_HAVE_VPMU=y
 CONFIG_XEN_FRONT_PGDIR_SHBUF=m
 # end of Xen driver support
 
@@ -8281,34 +8399,9 @@ CONFIG_AD2S1210=m
 # end of IIO staging drivers
 
 CONFIG_FB_SM750=m
-
-#
-# Speakup console speech
-#
-CONFIG_SPEAKUP=m
-CONFIG_SPEAKUP_SYNTH_ACNTSA=m
-CONFIG_SPEAKUP_SYNTH_ACNTPC=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_DECPC=m
-CONFIG_SPEAKUP_SYNTH_DTLK=m
-CONFIG_SPEAKUP_SYNTH_KEYPC=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_STAGING_MEDIA=y
-# CONFIG_VIDEO_IPU3_IMGU is not set
-
-#
-# soc_camera sensor drivers
-#
+CONFIG_INTEL_ATOMISP=y
+CONFIG_VIDEO_IPU3_IMGU=m
 CONFIG_VIDEO_USBVISION=m
 
 #
@@ -8321,7 +8414,7 @@ CONFIG_FIREWIRE_SERIAL=m
 CONFIG_FWTTY_MAX_TOTAL_PORTS=64
 CONFIG_FWTTY_MAX_CARD_PORTS=32
 CONFIG_GS_FPGABOOT=m
-# CONFIG_UNISYSSPAR is not set
+CONFIG_UNISYSSPAR=y
 CONFIG_FB_TFT=m
 CONFIG_FB_TFT_AGM1264K_FL=m
 CONFIG_FB_TFT_BD663474=m
@@ -8355,17 +8448,12 @@ CONFIG_FB_TFT_UC1611=m
 CONFIG_FB_TFT_UC1701=m
 CONFIG_FB_TFT_UPD161704=m
 CONFIG_FB_TFT_WATTEROTT=m
-CONFIG_WILC1000=m
-CONFIG_WILC1000_SDIO=m
-CONFIG_WILC1000_SPI=m
-# CONFIG_WILC1000_HW_OOB_INTR is not set
 CONFIG_MOST_COMPONENTS=m
 CONFIG_MOST_CDEV=m
 CONFIG_MOST_NET=m
 CONFIG_MOST_SOUND=m
 CONFIG_MOST_VIDEO=m
 CONFIG_MOST_I2C=m
-CONFIG_MOST_USB=m
 CONFIG_KS7010=m
 # CONFIG_PI433 is not set
 
@@ -8382,7 +8470,8 @@ CONFIG_X86_PLATFORM_DEVICES=y
 CONFIG_ACPI_WMI=m
 CONFIG_WMI_BMOF=m
 CONFIG_ALIENWARE_WMI=m
-# CONFIG_HUAWEI_WMI is not set
+CONFIG_HUAWEI_WMI=m
+CONFIG_INTEL_WMI_SBL_FW_UPDATE=m
 CONFIG_INTEL_WMI_THUNDERBOLT=m
 CONFIG_MXM_WMI=m
 CONFIG_PEAQ_WMI=m
@@ -8412,7 +8501,7 @@ CONFIG_DELL_WMI_LED=m
 CONFIG_AMILO_RFKILL=m
 CONFIG_FUJITSU_LAPTOP=m
 CONFIG_FUJITSU_TABLET=m
-# CONFIG_GPD_POCKET_FAN is not set
+CONFIG_GPD_POCKET_FAN=m
 CONFIG_HP_ACCEL=m
 CONFIG_HP_WIRELESS=m
 CONFIG_HP_WMI=m
@@ -8427,7 +8516,7 @@ CONFIG_THINKPAD_ACPI_DEBUGFACILITIES=y
 # CONFIG_THINKPAD_ACPI_UNSAFE_LEDS is not set
 CONFIG_THINKPAD_ACPI_VIDEO=y
 CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y
-CONFIG_INTEL_ATOMISP2_PM=m
+CONFIG_INTEL_ATOMISP2_LED=m
 CONFIG_INTEL_CHT_INT33FE=m
 CONFIG_INTEL_HID_EVENT=m
 CONFIG_INTEL_INT0002_VGPIO=m
@@ -8458,6 +8547,7 @@ 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
@@ -8467,9 +8557,11 @@ CONFIG_INTEL_MFLD_THERMAL=m
 CONFIG_INTEL_MID_POWER_BUTTON=m
 CONFIG_INTEL_MRFLD_PWRBTN=m
 CONFIG_INTEL_PMC_CORE=y
-CONFIG_INTEL_PMC_IPC=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_MFD_CROS_EC=m
@@ -8496,13 +8588,10 @@ CONFIG_WILCO_EC=m
 CONFIG_WILCO_EC_EVENTS=m
 CONFIG_WILCO_EC_TELEMETRY=m
 # CONFIG_MELLANOX_PLATFORM is not set
+CONFIG_HAVE_CLK=y
 CONFIG_CLKDEV_LOOKUP=y
 CONFIG_HAVE_CLK_PREPARE=y
 CONFIG_COMMON_CLK=y
-
-#
-# Common Clock Framework
-#
 CONFIG_COMMON_CLK_WM831X=m
 CONFIG_COMMON_CLK_MAX9485=m
 CONFIG_COMMON_CLK_SI5341=m
@@ -8514,8 +8603,6 @@ CONFIG_COMMON_CLK_S2MPS11=m
 CONFIG_CLK_TWL6040=m
 CONFIG_COMMON_CLK_PALMAS=m
 CONFIG_COMMON_CLK_PWM=m
-# end of Common Clock Framework
-
 # CONFIG_HWSPINLOCK is not set
 
 #
@@ -8525,7 +8612,6 @@ CONFIG_CLKSRC_I8253=y
 CONFIG_CLKEVT_I8253=y
 CONFIG_I8253_LOCK=y
 CONFIG_CLKBLD_I8253=y
-CONFIG_DW_APB_TIMER=y
 # end of Clock Source drivers
 
 CONFIG_MAILBOX=y
@@ -8561,7 +8647,7 @@ CONFIG_HYPERV_IOMMU=y
 #
 CONFIG_RPMSG=m
 # CONFIG_RPMSG_CHAR is not set
-CONFIG_RPMSG_QCOM_GLINK_NATIVE=m
+CONFIG_RPMSG_QCOM_GLINK=m
 CONFIG_RPMSG_QCOM_GLINK_RPM=m
 CONFIG_RPMSG_VIRTIO=m
 # end of Rpmsg drivers
@@ -8607,7 +8693,7 @@ CONFIG_SOC_TI=y
 #
 # Xilinx SoC drivers
 #
-# CONFIG_XILINX_VCU is not set
+CONFIG_XILINX_VCU=m
 # end of Xilinx SoC drivers
 # end of SOC (System On Chip) specific Drivers
 
@@ -8654,6 +8740,8 @@ CONFIG_MEMORY=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=m
 CONFIG_IIO_KFIFO_BUF=m
 CONFIG_IIO_TRIGGERED_BUFFER=m
@@ -8672,10 +8760,10 @@ CONFIG_ADIS16209=m
 CONFIG_ADXL372=m
 CONFIG_ADXL372_SPI=m
 CONFIG_ADXL372_I2C=m
-CONFIG_BMA180=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
@@ -8732,6 +8820,8 @@ CONFIG_AD7887=m
 CONFIG_AD7923=m
 CONFIG_AD7949=m
 CONFIG_AD799X=m
+CONFIG_AD9467=m
+CONFIG_ADI_AXI_ADC=m
 CONFIG_AXP20X_ADC=m
 CONFIG_AXP288_ADC=m
 CONFIG_CC10001_ADC=m
@@ -8749,12 +8839,14 @@ 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_MEN_Z188_ADC=m
+CONFIG_MP2629_ADC=m
 CONFIG_NAU7802=m
 CONFIG_PALMAS_GPADC=m
 CONFIG_QCOM_VADC_COMMON=m
@@ -8794,12 +8886,16 @@ CONFIG_HMC425=m
 # 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
@@ -8950,6 +9046,7 @@ CONFIG_SI7020=m
 #
 CONFIG_ADIS16400=m
 CONFIG_ADIS16460=m
+CONFIG_ADIS16475=m
 CONFIG_ADIS16480=m
 CONFIG_BMI160=m
 CONFIG_BMI160_I2C=m
@@ -8958,6 +9055,9 @@ 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
@@ -9142,8 +9242,10 @@ 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
 
@@ -9202,6 +9304,7 @@ CONFIG_PWM_SYSFS=y
 # CONFIG_PWM_DEBUG is not set
 CONFIG_PWM_CRC=y
 CONFIG_PWM_CROS_EC=m
+CONFIG_PWM_IQS620A=m
 CONFIG_PWM_LP3943=m
 CONFIG_PWM_LPSS=m
 CONFIG_PWM_LPSS_PCI=m
@@ -9270,7 +9373,6 @@ CONFIG_NVDIMM_KEYS=y
 CONFIG_DAX_DRIVER=y
 CONFIG_DAX=y
 CONFIG_DEV_DAX=m
-CONFIG_DEV_DAX_KMEM=m
 CONFIG_NVMEM=y
 CONFIG_NVMEM_SYSFS=y
 CONFIG_NVMEM_SPMI_SDAM=m
@@ -9336,6 +9438,7 @@ CONFIG_PM_OPP=y
 # CONFIG_INTERCONNECT is not set
 CONFIG_COUNTER=m
 CONFIG_MOST=m
+CONFIG_MOST_USB_HDM=m
 # end of Device Drivers
 
 #
@@ -9576,6 +9679,11 @@ CONFIG_PSTORE_COMPRESS_DEFAULT="deflate"
 # 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
@@ -9615,6 +9723,7 @@ 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
@@ -9718,10 +9827,10 @@ CONFIG_IO_WQ=y
 CONFIG_KEYS=y
 CONFIG_KEYS_REQUEST_CACHE=y
 CONFIG_PERSISTENT_KEYRINGS=y
-CONFIG_BIG_KEYS=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
@@ -9780,6 +9889,7 @@ CONFIG_IMA_NG_TEMPLATE=y
 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
@@ -9929,7 +10039,7 @@ CONFIG_CRYPTO_RMD256=m
 CONFIG_CRYPTO_RMD320=m
 CONFIG_CRYPTO_SHA1=y
 CONFIG_CRYPTO_SHA256=y
-CONFIG_CRYPTO_SHA512=m
+CONFIG_CRYPTO_SHA512=y
 CONFIG_CRYPTO_SHA3=m
 CONFIG_CRYPTO_SM3=m
 CONFIG_CRYPTO_STREEBOG=m
@@ -10062,6 +10172,7 @@ CONFIG_BINARY_PRINTF=y
 #
 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
@@ -10069,10 +10180,12 @@ 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
@@ -10101,7 +10214,7 @@ CONFIG_LZ4_COMPRESS=m
 CONFIG_LZ4HC_COMPRESS=m
 CONFIG_LZ4_DECOMPRESS=y
 CONFIG_ZSTD_COMPRESS=m
-CONFIG_ZSTD_DECOMPRESS=m
+CONFIG_ZSTD_DECOMPRESS=y
 CONFIG_XZ_DEC=y
 CONFIG_XZ_DEC_X86=y
 CONFIG_XZ_DEC_POWERPC=y
@@ -10117,6 +10230,7 @@ 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
@@ -10135,6 +10249,7 @@ 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
@@ -10194,6 +10309,8 @@ CONFIG_OBJAGG=m
 # CONFIG_STRING_SELFTEST is not set
 # end of Library routines
 
+CONFIG_PLDMFW=y
+
 #
 # Kernel hacking
 #
@@ -10208,6 +10325,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
@@ -10223,6 +10341,7 @@ CONFIG_FRAME_WARN=1024
 # 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_DEBUG_FORCE_WEAK_PER_CPU is not set
 # end of Compile-time checks and compiler options
@@ -10235,6 +10354,9 @@ 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_SERIAL_CONSOLE=y
@@ -10244,6 +10366,7 @@ 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
@@ -10260,6 +10383,8 @@ CONFIG_PAGE_EXTENSION=y
 # 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
@@ -10273,13 +10398,12 @@ CONFIG_SCHED_STACK_END_CHECK=y
 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_DEBUG_HIGHMEM is not set
 CONFIG_HAVE_DEBUG_STACKOVERFLOW=y
 # CONFIG_DEBUG_STACKOVERFLOW is not set
 CONFIG_CC_HAS_KASAN_GENERIC=y
-CONFIG_KASAN_STACK=1
+CONFIG_CC_HAS_WORKING_NOSANITIZE_ADDRESS=y
 # end of Memory Debugging
 
 # CONFIG_DEBUG_SHIRQ is not set
@@ -10356,6 +10480,7 @@ CONFIG_STACKTRACE=y
 CONFIG_TORTURE_TEST=m
 # CONFIG_RCU_PERF_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
@@ -10394,7 +10519,6 @@ CONFIG_DYNAMIC_FTRACE_WITH_REGS=y
 CONFIG_DYNAMIC_FTRACE_WITH_DIRECT_CALLS=y
 CONFIG_FUNCTION_PROFILER=y
 CONFIG_STACK_TRACER=y
-# CONFIG_PREEMPTIRQ_EVENTS is not set
 # CONFIG_IRQSOFF_TRACER is not set
 CONFIG_SCHED_TRACER=y
 # CONFIG_HWLAT_TRACER is not set
@@ -10413,6 +10537,7 @@ CONFIG_DYNAMIC_EVENTS=y
 CONFIG_PROBE_EVENTS=y
 # CONFIG_BPF_KPROBE_OVERRIDE is not set
 CONFIG_FTRACE_MCOUNT_RECORD=y
+CONFIG_SYNTH_EVENTS=y
 # CONFIG_HIST_TRIGGERS is not set
 # CONFIG_TRACE_EVENT_INJECT is not set
 # CONFIG_TRACEPOINT_BENCHMARK is not set
@@ -10422,6 +10547,7 @@ CONFIG_FTRACE_MCOUNT_RECORD=y
 # CONFIG_RING_BUFFER_STARTUP_TEST 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
@@ -10433,14 +10559,13 @@ 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_WX is not set
-CONFIG_DOUBLEFAULT=y
 # CONFIG_DEBUG_TLBFLUSH is not set
 CONFIG_HAVE_MMIOTRACE_SUPPORT=y
 # CONFIG_X86_DECODER_SELFTEST is not set
@@ -10452,6 +10577,7 @@ CONFIG_IO_DELAY_0XED=y
 # 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
@@ -10496,6 +10622,7 @@ 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
@@ -10510,6 +10637,8 @@ CONFIG_TEST_STATIC_KEYS=m
 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_MEMTEST=y
 # CONFIG_HYPERV_TESTING is not set
 # end of Kernel Testing and Coverage
diff --git a/gnu/packages/aux-files/linux-libre/5.7-x86_64.conf b/gnu/packages/aux-files/linux-libre/5.9-x86_64.conf
index 316a0620e6..adfa32de3e 100644
--- a/gnu/packages/aux-files/linux-libre/5.7-x86_64.conf
+++ b/gnu/packages/aux-files/linux-libre/5.9-x86_64.conf
@@ -1,16 +1,14 @@
 #
 # Automatically generated file; DO NOT EDIT.
-# Linux/x86 5.7.12-gnu Kernel Configuration
-#
-
-#
-# Compiler: gcc (Debian 8.3.0-6) 8.3.0
+# Linux/x86 5.9.2 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_LD_VERSION=231010000
 CONFIG_CLANG_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
@@ -31,18 +29,22 @@ 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
@@ -79,6 +81,8 @@ 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
@@ -102,7 +106,6 @@ CONFIG_PREEMPT_VOLUNTARY=y
 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
@@ -122,6 +125,8 @@ 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_RCU_STALL_COMMON=y
 CONFIG_RCU_NEED_SEGCBLIST=y
 # end of RCU Subsystem
@@ -150,7 +155,6 @@ CONFIG_CGROUPS=y
 CONFIG_PAGE_COUNTER=y
 CONFIG_MEMCG=y
 CONFIG_MEMCG_SWAP=y
-# CONFIG_MEMCG_SWAP_ENABLED is not set
 CONFIG_MEMCG_KMEM=y
 CONFIG_BLK_CGROUP=y
 CONFIG_CGROUP_WRITEBACK=y
@@ -189,6 +193,7 @@ 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
@@ -338,7 +343,6 @@ CONFIG_XEN_PVH=y
 CONFIG_KVM_GUEST=y
 CONFIG_ARCH_CPUIDLE_HALTPOLL=y
 CONFIG_PVH=y
-CONFIG_KVM_DEBUG_FS=y
 # CONFIG_PARAVIRT_TIME_ACCOUNTING is not set
 CONFIG_PARAVIRT_CLOCK=y
 CONFIG_JAILHOUSE_GUEST=y
@@ -413,7 +417,6 @@ CONFIG_X86_DIRECT_GBPAGES=y
 CONFIG_NUMA=y
 CONFIG_AMD_NUMA=y
 CONFIG_X86_64_ACPI_NUMA=y
-CONFIG_NODES_SPAN_OTHER_NODES=y
 # CONFIG_NUMA_EMU is not set
 CONFIG_NODES_SHIFT=6
 CONFIG_ARCH_SPARSEMEM_ENABLE=y
@@ -494,6 +497,7 @@ 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
@@ -521,7 +525,6 @@ CONFIG_ACPI_SYSTEM_POWER_STATES_SUPPORT=y
 CONFIG_ACPI_SPCR_TABLE=y
 CONFIG_ACPI_LPIT=y
 CONFIG_ACPI_SLEEP=y
-# CONFIG_ACPI_PROCFS_POWER is not set
 CONFIG_ACPI_REV_OVERRIDE_POSSIBLE=y
 CONFIG_ACPI_EC_DEBUGFS=m
 CONFIG_ACPI_AC=m
@@ -677,6 +680,7 @@ 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
@@ -712,6 +716,7 @@ 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
@@ -722,6 +727,7 @@ CONFIG_KVM_AMD_SEV=y
 CONFIG_AS_AVX512=y
 CONFIG_AS_SHA1_NI=y
 CONFIG_AS_SHA256_NI=y
+CONFIG_AS_TPAUSE=y
 
 #
 # General architecture-dependent options
@@ -729,6 +735,7 @@ CONFIG_AS_SHA256_NI=y
 CONFIG_CRASH_CORE=y
 CONFIG_KEXEC_CORE=y
 CONFIG_HOTPLUG_SMT=y
+CONFIG_GENERIC_ENTRY=y
 CONFIG_OPROFILE=m
 # CONFIG_OPROFILE_EVENT_MULTIPLEX is not set
 CONFIG_HAVE_OPROFILE=y
@@ -761,7 +768,6 @@ 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_CLK=y
 CONFIG_HAVE_HW_BREAKPOINT=y
 CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y
 CONFIG_HAVE_USER_RETURN_NOTIFIER=y
@@ -783,7 +789,6 @@ CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
 CONFIG_SECCOMP_FILTER=y
 CONFIG_HAVE_ARCH_STACKLEAK=y
 CONFIG_HAVE_STACKPROTECTOR=y
-CONFIG_CC_HAS_STACKPROTECTOR_NONE=y
 CONFIG_STACKPROTECTOR=y
 CONFIG_STACKPROTECTOR_STRONG=y
 CONFIG_HAVE_ARCH_WITHIN_STACK_FRAMES=y
@@ -798,7 +803,6 @@ 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_ARCH_HAS_ELF_RANDOMIZE=y
 CONFIG_HAVE_ARCH_MMAP_RND_BITS=y
 CONFIG_HAVE_EXIT_THREAD=y
@@ -806,7 +810,6 @@ 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_COPY_THREAD_TLS=y
 CONFIG_HAVE_STACK_VALIDATION=y
 CONFIG_HAVE_RELIABLE_STACKTRACE=y
 CONFIG_ISA_BUS_API=y
@@ -844,7 +847,9 @@ CONFIG_MODVERSIONS=y
 CONFIG_ASM_MODVERSIONS=y
 CONFIG_MODULE_SRCVERSION_ALL=y
 # CONFIG_MODULE_SIG is not set
-# CONFIG_MODULE_COMPRESS is not set
+CONFIG_MODULE_COMPRESS=y
+CONFIG_MODULE_COMPRESS_GZIP=y
+# CONFIG_MODULE_COMPRESS_XZ is not set
 # CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS is not set
 CONFIG_UNUSED_SYMBOLS=y
 CONFIG_MODULES_TREE_LOOKUP=y
@@ -867,6 +872,8 @@ 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
@@ -949,11 +956,9 @@ CONFIG_SELECT_MEMORY_MODEL=y
 CONFIG_SPARSEMEM_MANUAL=y
 CONFIG_SPARSEMEM=y
 CONFIG_NEED_MULTIPLE_NODES=y
-CONFIG_HAVE_MEMORY_PRESENT=y
 CONFIG_SPARSEMEM_EXTREME=y
 CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
 CONFIG_SPARSEMEM_VMEMMAP=y
-CONFIG_HAVE_MEMBLOCK_NODE_MAP=y
 CONFIG_HAVE_FAST_GUP=y
 CONFIG_NUMA_KEEP_MEMINFO=y
 CONFIG_MEMORY_ISOLATION=y
@@ -1006,7 +1011,7 @@ CONFIG_ZPOOL=y
 CONFIG_ZBUD=y
 CONFIG_Z3FOLD=m
 CONFIG_ZSMALLOC=y
-CONFIG_PGTABLE_MAPPING=y
+# CONFIG_ZSMALLOC_PGTABLE_MAPPING is not set
 # CONFIG_ZSMALLOC_STAT is not set
 CONFIG_GENERIC_EARLY_IOREMAP=y
 # CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set
@@ -1052,11 +1057,14 @@ 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 is not set
+CONFIG_XDP_SOCKETS=y
+CONFIG_XDP_SOCKETS_DIAG=m
 CONFIG_INET=y
 CONFIG_IP_MULTICAST=y
 CONFIG_IP_ADVANCED_ROUTER=y
@@ -1124,6 +1132,7 @@ CONFIG_IPV6_ROUTE_INFO=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=m
 CONFIG_IPV6_ILA=m
@@ -1147,8 +1156,8 @@ CONFIG_IPV6_PIMSM_V2=y
 # CONFIG_IPV6_RPL_LWTUNNEL is not set
 CONFIG_NETLABEL=y
 CONFIG_MPTCP=y
+CONFIG_INET_MPTCP_DIAG=m
 CONFIG_MPTCP_IPV6=y
-CONFIG_MPTCP_HMAC_TEST=n
 CONFIG_NETWORK_SECMARK=y
 CONFIG_NET_PTP_CLASSIFY=y
 # CONFIG_NETWORK_PHY_TIMESTAMPING is not set
@@ -1563,6 +1572,7 @@ CONFIG_MRP=m
 CONFIG_BRIDGE=m
 CONFIG_BRIDGE_IGMP_SNOOPING=y
 CONFIG_BRIDGE_VLAN_FILTERING=y
+CONFIG_BRIDGE_MRP=y
 CONFIG_HAVE_NET_DSA=y
 CONFIG_NET_DSA=m
 CONFIG_NET_DSA_TAG_8021Q=m
@@ -1575,6 +1585,7 @@ 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_QCA=m
 CONFIG_NET_DSA_TAG_LAN9303=m
@@ -1703,6 +1714,7 @@ 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
@@ -1740,6 +1752,10 @@ 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_RPS=y
@@ -1860,8 +1876,9 @@ CONFIG_BT_HS=y
 CONFIG_BT_LE=y
 CONFIG_BT_6LOWPAN=m
 # CONFIG_BT_LEDS is not set
-# CONFIG_BT_SELFTEST is not set
+CONFIG_BT_MSFTEXT=y
 CONFIG_BT_DEBUGFS=y
+# CONFIG_BT_SELFTEST is not set
 
 #
 # Bluetooth device drivers
@@ -2225,6 +2242,7 @@ 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
 
@@ -2297,6 +2315,9 @@ 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
@@ -2317,6 +2338,7 @@ 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
@@ -2329,6 +2351,7 @@ CONFIG_MTD_NAND_DISKONCHIP=m
 CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADDRESS=0
 # CONFIG_MTD_NAND_DISKONCHIP_BBTWRITE is not set
 CONFIG_MTD_SPI_NAND=m
+# end of NAND
 
 #
 # LPDDR & LPDDR2 PCM memory drivers
@@ -2425,6 +2448,9 @@ 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
@@ -2438,6 +2464,7 @@ 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
@@ -2624,6 +2651,7 @@ 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
@@ -2803,6 +2831,7 @@ 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
@@ -2817,6 +2846,7 @@ 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
@@ -2826,6 +2856,7 @@ 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_DELAY=m
 CONFIG_DM_DUST=m
 # CONFIG_DM_INIT is not set
@@ -3151,14 +3182,18 @@ 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_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_MLXSW_CORE=m
 CONFIG_MLXSW_CORE_HWMON=y
@@ -3182,7 +3217,6 @@ CONFIG_ENC28J60=m
 CONFIG_ENCX24J600=m
 CONFIG_LAN743X=m
 CONFIG_NET_VENDOR_MICROSEMI=y
-CONFIG_MSCC_OCELOT_SWITCH=m
 CONFIG_NET_VENDOR_MYRI=y
 CONFIG_MYRI10GE=m
 CONFIG_MYRI10GE_DCA=y
@@ -3312,6 +3346,7 @@ CONFIG_SKFP=m
 CONFIG_NET_SB1000=m
 CONFIG_MDIO_DEVICE=y
 CONFIG_MDIO_BUS=y
+CONFIG_MDIO_DEVRES=y
 CONFIG_MDIO_BCM_UNIMAC=m
 CONFIG_MDIO_BITBANG=m
 CONFIG_MDIO_CAVIUM=m
@@ -3338,6 +3373,7 @@ CONFIG_BCM7XXX_PHY=m
 CONFIG_BCM87XX_PHY=m
 CONFIG_BCM_NET_PHYLIB=m
 CONFIG_BROADCOM_PHY=m
+CONFIG_BCM54140_PHY=m
 CONFIG_BCM84881_PHY=m
 CONFIG_CICADA_PHY=m
 CONFIG_CORTINA_PHY=m
@@ -3623,6 +3659,14 @@ CONFIG_MT7601U=m
 # 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_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
@@ -3925,6 +3969,7 @@ 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
@@ -4020,7 +4065,6 @@ CONFIG_INPUT_AD714X_SPI=m
 CONFIG_INPUT_ARIZONA_HAPTICS=m
 CONFIG_INPUT_BMA150=m
 CONFIG_INPUT_E3X0_BUTTON=m
-CONFIG_INPUT_MSM_VIBRATOR=m
 CONFIG_INPUT_PCSPKR=m
 CONFIG_INPUT_MAX77693_HAPTIC=m
 CONFIG_INPUT_MAX8925_ONKEY=m
@@ -4028,7 +4072,6 @@ CONFIG_INPUT_MAX8997_HAPTIC=m
 CONFIG_INPUT_MC13783_PWRBUTTON=m
 CONFIG_INPUT_MMA8450=m
 CONFIG_INPUT_APANEL=m
-CONFIG_INPUT_GP2A=m
 CONFIG_INPUT_GPIO_BEEPER=m
 CONFIG_INPUT_GPIO_DECODER=m
 CONFIG_INPUT_GPIO_VIBRA=m
@@ -4061,6 +4104,7 @@ 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_CMA3000=m
 CONFIG_INPUT_CMA3000_I2C=m
 CONFIG_INPUT_XEN_KBDDEV_FRONTEND=m
@@ -4165,6 +4209,7 @@ 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
@@ -4229,6 +4274,7 @@ 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_APPLICOM=m
@@ -4344,10 +4390,10 @@ CONFIG_I2C_SCMI=m
 #
 CONFIG_I2C_CBUS_GPIO=m
 CONFIG_I2C_DESIGNWARE_CORE=y
-CONFIG_I2C_DESIGNWARE_PLATFORM=y
 # CONFIG_I2C_DESIGNWARE_SLAVE is not set
-CONFIG_I2C_DESIGNWARE_PCI=m
+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
@@ -4400,13 +4446,14 @@ 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_MID_DMA=y
 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
@@ -4417,6 +4464,7 @@ 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
@@ -4430,6 +4478,7 @@ 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
@@ -4478,6 +4527,8 @@ 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
@@ -4488,8 +4539,10 @@ CONFIG_PINCTRL_BROXTON=m
 CONFIG_PINCTRL_CANNONLAKE=m
 CONFIG_PINCTRL_CEDARFORK=m
 CONFIG_PINCTRL_DENVERTON=m
+CONFIG_PINCTRL_EMMITSBURG=m
 CONFIG_PINCTRL_GEMINILAKE=m
 CONFIG_PINCTRL_ICELAKE=m
+CONFIG_PINCTRL_JASPERLAKE=m
 CONFIG_PINCTRL_LEWISBURG=m
 CONFIG_PINCTRL_SUNRISEPOINT=m
 CONFIG_PINCTRL_TIGERLAKE=m
@@ -4536,6 +4589,8 @@ 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
@@ -4555,6 +4610,7 @@ CONFIG_GPIO_KEMPLD=m
 CONFIG_GPIO_LP3943=m
 CONFIG_GPIO_LP873X=m
 CONFIG_GPIO_MADERA=m
+CONFIG_GPIO_MSIC=y
 CONFIG_GPIO_PALMAS=y
 CONFIG_GPIO_RC5T583=y
 CONFIG_GPIO_TPS65086=m
@@ -4597,6 +4653,7 @@ CONFIG_GPIO_XRA1403=m
 CONFIG_GPIO_VIPERBOARD=m
 # end of USB GPIO expanders
 
+CONFIG_GPIO_AGGREGATOR=m
 # CONFIG_GPIO_MOCKUP is not set
 CONFIG_W1=m
 CONFIG_W1_CON=y
@@ -4653,6 +4710,7 @@ 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
@@ -4692,10 +4750,12 @@ 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_SMB347=m
 CONFIG_CHARGER_TPS65090=m
@@ -4703,6 +4763,7 @@ CONFIG_BATTERY_GAUGE_LTC2941=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
@@ -4736,10 +4797,12 @@ CONFIG_SENSORS_AXI_FAN_CONTROL=m
 CONFIG_SENSORS_K8TEMP=m
 CONFIG_SENSORS_K10TEMP=m
 CONFIG_SENSORS_FAM15H_POWER=m
+CONFIG_SENSORS_AMD_ENERGY=m
 CONFIG_SENSORS_APPLESMC=m
 CONFIG_SENSORS_ASB100=m
 CONFIG_SENSORS_ASPEED=m
 CONFIG_SENSORS_ATXP1=m
+CONFIG_SENSORS_CORSAIR_CPRO=m
 CONFIG_SENSORS_DRIVETEMP=y
 CONFIG_SENSORS_DS620=m
 CONFIG_SENSORS_DS1621=m
@@ -4835,6 +4898,7 @@ CONFIG_SENSORS_LTC2978=m
 CONFIG_SENSORS_LTC2978_REGULATOR=y
 CONFIG_SENSORS_LTC3815=m
 CONFIG_SENSORS_MAX16064=m
+CONFIG_SENSORS_MAX16601=m
 CONFIG_SENSORS_MAX20730=m
 CONFIG_SENSORS_MAX20751=m
 CONFIG_SENSORS_MAX31785=m
@@ -4904,6 +4968,7 @@ CONFIG_SENSORS_XGENE=m
 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
@@ -4915,7 +4980,6 @@ 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_CLOCK_THERMAL=y
 CONFIG_DEVFREQ_THERMAL=y
 CONFIG_THERMAL_EMULATION=y
 
@@ -5082,6 +5146,7 @@ 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
@@ -5091,9 +5156,12 @@ 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_MSIC=y
+CONFIG_MFD_INTEL_PMC_BXT=m
 CONFIG_MFD_IQS62X=m
 CONFIG_MFD_JANZ_CMODIO=m
 CONFIG_MFD_KEMPLD=m
@@ -5107,6 +5175,7 @@ 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
@@ -5124,7 +5193,6 @@ CONFIG_MFD_SI476X_CORE=m
 CONFIG_MFD_SM501=m
 CONFIG_MFD_SM501_GPIO=y
 CONFIG_MFD_SKY81452=m
-CONFIG_MFD_SMSC=y
 CONFIG_ABX500_CORE=y
 CONFIG_AB3100_CORE=y
 CONFIG_AB3100_OTP=m
@@ -5218,14 +5286,17 @@ 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_MT6323=m
+CONFIG_REGULATOR_MT6358=m
 CONFIG_REGULATOR_MT6397=m
 CONFIG_REGULATOR_PALMAS=m
+CONFIG_REGULATOR_PCA9450=m
 CONFIG_REGULATOR_PCAP=m
 CONFIG_REGULATOR_PCF50633=m
 CONFIG_REGULATOR_PFUZE100=m
@@ -5234,6 +5305,7 @@ 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_RC5T583=m
 CONFIG_REGULATOR_RT5033=m
 CONFIG_REGULATOR_S2MPA01=m
@@ -5259,8 +5331,7 @@ CONFIG_REGULATOR_WM831X=m
 CONFIG_REGULATOR_WM8350=m
 CONFIG_REGULATOR_WM8400=m
 CONFIG_REGULATOR_WM8994=m
-CONFIG_CEC_CORE=m
-CONFIG_CEC_NOTIFIER=y
+CONFIG_REGULATOR_QCOM_LABIBB=m
 CONFIG_RC_CORE=m
 CONFIG_RC_MAP=m
 CONFIG_LIRC=y
@@ -5296,25 +5367,47 @@ 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
 
 #
-# Multimedia core support
+# 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_CEC_SUPPORT=y
-# CONFIG_MEDIA_CEC_RC is not set
-CONFIG_MEDIA_CONTROLLER=y
-CONFIG_MEDIA_CONTROLLER_DVB=y
-# CONFIG_MEDIA_CONTROLLER_REQUEST_API is not set
+CONFIG_MEDIA_PLATFORM_SUPPORT=y
+CONFIG_MEDIA_TEST_SUPPORT=y
+# end of Media device types
+
+#
+# Media core support
+#
 CONFIG_VIDEO_DEV=m
-CONFIG_VIDEO_V4L2_SUBDEV_API=y
+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
@@ -5324,18 +5417,34 @@ CONFIG_V4L2_FWNODE=m
 CONFIG_VIDEOBUF_GEN=m
 CONFIG_VIDEOBUF_DMA_SG=m
 CONFIG_VIDEOBUF_VMALLOC=m
-CONFIG_DVB_CORE=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_TTPCI_EEPROM=m
 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
 
 #
@@ -5498,12 +5607,6 @@ CONFIG_VIDEO_EM28XX_RC=m
 CONFIG_USB_AIRSPY=m
 CONFIG_USB_HACKRF=m
 CONFIG_USB_MSI2500=m
-
-#
-# USB HDMI CEC adapters
-#
-CONFIG_USB_PULSE8_CEC=m
-CONFIG_USB_RAINSHADOW_CEC=m
 CONFIG_MEDIA_PCI_SUPPORT=y
 
 #
@@ -5580,34 +5683,6 @@ CONFIG_DVB_DDBRIDGE=m
 CONFIG_DVB_SMIPCIE=m
 CONFIG_DVB_NETUP_UNIDVB=m
 CONFIG_VIDEO_IPU3_CIO2=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_VIDEO_SH_VEU=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_PLATFORM_DRIVERS=y
-CONFIG_CEC_PLATFORM_DRIVERS=y
-CONFIG_VIDEO_CROS_EC_CEC=m
-CONFIG_VIDEO_SECO_CEC=m
-# CONFIG_VIDEO_SECO_RC is not set
-CONFIG_SDR_PLATFORM_DRIVERS=y
-
-#
-# Supported MMC/SDIO adapters
-#
-CONFIG_SMS_SDIO_DRV=m
 CONFIG_RADIO_ADAPTERS=y
 CONFIG_RADIO_TEA575X=m
 CONFIG_RADIO_SI470X=m
@@ -5630,18 +5705,7 @@ CONFIG_RADIO_TEA5764=m
 CONFIG_RADIO_SAA7706H=m
 CONFIG_RADIO_TEF6862=m
 CONFIG_RADIO_WL1273=m
-
-#
-# Texas Instruments WL128x FM driver (ST based)
-#
 CONFIG_RADIO_WL128X=m
-# end of Texas Instruments WL128x FM driver (ST based)
-
-#
-# Supported FireWire (IEEE 1394) Adapters
-#
-CONFIG_DVB_FIREDTV=m
-CONFIG_DVB_FIREDTV_INPUT=y
 CONFIG_MEDIA_COMMON_OPTIONS=y
 
 #
@@ -5664,17 +5728,46 @@ 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
 
 #
-# Media ancillary drivers (tuners, sensors, i2c, spi, frontends)
+# 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
+
+#
+# FireWire (IEEE 1394) Adapters
+#
+CONFIG_DVB_FIREDTV=m
+CONFIG_DVB_FIREDTV_INPUT=y
+# end of Media drivers
+
+#
+# Media ancillary drivers
 #
-CONFIG_MEDIA_SUBDRV_AUTOSELECT=y
 CONFIG_MEDIA_ATTACH=y
-CONFIG_VIDEO_IR_I2C=m
 
 #
-# I2C Encoders, decoders, sensors and other helper chips
+# IR I2C driver auto-selected by 'Autoselect ancillary drivers'
 #
+CONFIG_VIDEO_IR_I2C=m
 
 #
 # Audio decoders, processors and mixers
@@ -5695,11 +5788,13 @@ 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
@@ -5733,6 +5828,7 @@ CONFIG_VIDEO_VPX3220=m
 #
 CONFIG_VIDEO_SAA717X=m
 CONFIG_VIDEO_CX25840=m
+# end of Video decoders
 
 #
 # Video encoders
@@ -5748,6 +5844,35 @@ 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
@@ -5766,6 +5891,7 @@ 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_OV6650=m
 CONFIG_VIDEO_OV5670=m
@@ -5793,6 +5919,7 @@ CONFIG_VIDEO_MT9V111=m
 CONFIG_VIDEO_SR030PC30=m
 CONFIG_VIDEO_NOON010PC30=m
 CONFIG_VIDEO_M5MOLS=m
+CONFIG_VIDEO_RDACM20=m
 CONFIG_VIDEO_RJ54N1=m
 CONFIG_VIDEO_S5K6AA=m
 CONFIG_VIDEO_S5K6A3=m
@@ -5801,6 +5928,7 @@ CONFIG_VIDEO_S5K5BAF=m
 CONFIG_VIDEO_SMIAPP=m
 CONFIG_VIDEO_ET8EK8=m
 CONFIG_VIDEO_S5C73M3=m
+# end of Camera sensor devices
 
 #
 # Lens drivers
@@ -5808,7 +5936,9 @@ CONFIG_VIDEO_S5C73M3=m
 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
@@ -5816,31 +5946,7 @@ CONFIG_VIDEO_DW9807_VCM=m
 CONFIG_VIDEO_ADP1653=m
 CONFIG_VIDEO_LM3560=m
 CONFIG_VIDEO_LM3646=m
-
-#
-# Video improvement chips
-#
-CONFIG_VIDEO_UPD64031A=m
-CONFIG_VIDEO_UPD64083=m
-
-#
-# Audio/Video compression chips
-#
-CONFIG_VIDEO_SAA6752HS=m
-
-#
-# SDR tuner chips
-#
-CONFIG_SDR_MAX2175=m
-
-#
-# Miscellaneous helper chips
-#
-CONFIG_VIDEO_THS7303=m
-CONFIG_VIDEO_M52790=m
-CONFIG_VIDEO_I2C=m
-CONFIG_VIDEO_ST_MIPID02=m
-# end of I2C Encoders, decoders, sensors and other helper chips
+# end of Flash devices
 
 #
 # SPI helper chips
@@ -6061,12 +6167,13 @@ CONFIG_DVB_HELENE=m
 #
 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 Customise DVB Frontends
+# end of Media ancillary drivers
 
 #
 # Graphics support
@@ -6135,6 +6242,7 @@ CONFIG_DRM_AMDGPU_USERPTR=y
 #
 CONFIG_DRM_AMD_DC=y
 CONFIG_DRM_AMD_DC_DCN=y
+CONFIG_DRM_AMD_DC_DCN3_0=y
 # CONFIG_DRM_AMD_DC_HDCP is not set
 # CONFIG_DEBUG_KERNEL_DC is not set
 # end of Display Engine Configuration
@@ -6145,6 +6253,7 @@ CONFIG_DRM_NOUVEAU=m
 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=""
@@ -6171,6 +6280,7 @@ CONFIG_DRM_I915_USERPTR=y
 #
 # drm/i915 Profile Guided Optimisation
 #
+CONFIG_DRM_I915_FENCE_TIMEOUT=10000
 CONFIG_DRM_I915_USERFAULT_AUTOSUSPEND=250
 CONFIG_DRM_I915_HEARTBEAT_INTERVAL=2500
 CONFIG_DRM_I915_PREEMPT_TIMEOUT=640
@@ -6189,7 +6299,6 @@ CONFIG_DRM_GMA3600=y
 CONFIG_DRM_UDL=m
 CONFIG_DRM_AST=m
 # CONFIG_DRM_MGAG200 is not set
-CONFIG_DRM_CIRRUS_QEMU=m
 CONFIG_DRM_QXL=m
 CONFIG_DRM_BOCHS=m
 CONFIG_DRM_VIRTIO_GPU=m
@@ -6212,6 +6321,7 @@ 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
@@ -6354,7 +6464,6 @@ CONFIG_LCD_LMS501KF03=m
 CONFIG_LCD_HX8357=m
 CONFIG_LCD_OTM3225A=m
 CONFIG_BACKLIGHT_CLASS_DEVICE=y
-CONFIG_BACKLIGHT_GENERIC=m
 CONFIG_BACKLIGHT_LM3533=m
 CONFIG_BACKLIGHT_CARILLO_RANCH=m
 CONFIG_BACKLIGHT_PWM=m
@@ -6393,7 +6502,6 @@ CONFIG_HDMI=y
 # Console display driver support
 #
 CONFIG_VGA_CONSOLE=y
-# CONFIG_VGACON_SOFT_SCROLLBACK is not set
 CONFIG_DUMMY_CONSOLE=y
 CONFIG_DUMMY_CONSOLE_COLUMNS=80
 CONFIG_DUMMY_CONSOLE_ROWS=25
@@ -6528,6 +6636,7 @@ 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
@@ -6548,6 +6657,7 @@ 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
@@ -6600,6 +6710,8 @@ 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
@@ -6620,6 +6732,7 @@ 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_IMX_AUDMUX=m
 # end of SoC Audio for Freescale CPUs
 
@@ -6673,6 +6786,7 @@ 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
@@ -6686,6 +6800,7 @@ 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=m
@@ -6712,15 +6827,15 @@ CONFIG_SND_SOC_SOF_COFFEELAKE_SUPPORT=y
 CONFIG_SND_SOC_SOF_COFFEELAKE=m
 CONFIG_SND_SOC_SOF_ICELAKE_SUPPORT=y
 CONFIG_SND_SOC_SOF_ICELAKE=m
-CONFIG_SND_SOC_SOF_COMETLAKE_LP=m
+CONFIG_SND_SOC_SOF_COMETLAKE=m
+CONFIG_SND_SOC_SOF_COMETLAKE_SUPPORT=y
 CONFIG_SND_SOC_SOF_COMETLAKE_LP_SUPPORT=y
-CONFIG_SND_SOC_SOF_COMETLAKE_H=m
-CONFIG_SND_SOC_SOF_COMETLAKE_H_SUPPORT=y
 CONFIG_SND_SOC_SOF_TIGERLAKE_SUPPORT=y
 CONFIG_SND_SOC_SOF_TIGERLAKE=m
 CONFIG_SND_SOC_SOF_ELKHARTLAKE_SUPPORT=y
 CONFIG_SND_SOC_SOF_ELKHARTLAKE=m
 CONFIG_SND_SOC_SOF_JASPERLAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_JASPERLAKE=m
 CONFIG_SND_SOC_SOF_HDA_COMMON=m
 CONFIG_SND_SOC_SOF_HDA_LINK=y
 CONFIG_SND_SOC_SOF_HDA_AUDIO_CODEC=y
@@ -6811,6 +6926,8 @@ 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
@@ -6852,6 +6969,7 @@ 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
@@ -6914,6 +7032,7 @@ 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
@@ -7105,8 +7224,8 @@ CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
 CONFIG_USB_DEFAULT_PERSIST=y
 CONFIG_USB_DYNAMIC_MINORS=y
 # CONFIG_USB_OTG is not set
-# CONFIG_USB_OTG_WHITELIST is not set
-# CONFIG_USB_OTG_BLACKLIST_HUB 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
@@ -7118,6 +7237,7 @@ 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
@@ -7225,9 +7345,11 @@ 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_PCI=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
@@ -7538,6 +7660,7 @@ 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
 
 #
@@ -7557,11 +7680,6 @@ CONFIG_LEDS_PCA9532_GPIO=y
 CONFIG_LEDS_GPIO=m
 CONFIG_LEDS_LP3944=m
 CONFIG_LEDS_LP3952=m
-CONFIG_LEDS_LP55XX_COMMON=m
-CONFIG_LEDS_LP5521=m
-CONFIG_LEDS_LP5523=m
-CONFIG_LEDS_LP5562=m
-CONFIG_LEDS_LP8501=m
 CONFIG_LEDS_LP8788=m
 CONFIG_LEDS_CLEVO_MAIL=m
 CONFIG_LEDS_PCA955X=m
@@ -7595,6 +7713,7 @@ CONFIG_LEDS_NIC78BX=m
 CONFIG_LEDS_TI_LMU_COMMON=m
 CONFIG_LEDS_LM36274=m
 CONFIG_LEDS_TPS6105X=m
+CONFIG_LEDS_SGM3140=m
 
 #
 # LED Triggers
@@ -7624,7 +7743,6 @@ CONFIG_LEDS_TRIGGER_AUDIO=m
 CONFIG_INFINIBAND=m
 CONFIG_INFINIBAND_USER_MAD=m
 CONFIG_INFINIBAND_USER_ACCESS=m
-# CONFIG_INFINIBAND_EXP_LEGACY_VERBS_NEW_UAPI is not set
 CONFIG_INFINIBAND_USER_MEM=y
 CONFIG_INFINIBAND_ON_DEMAND_PAGING=y
 CONFIG_INFINIBAND_ADDR_TRANS=y
@@ -7656,6 +7774,9 @@ 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
@@ -7836,6 +7957,7 @@ CONFIG_INTEL_IDXD=m
 CONFIG_INTEL_IOATDMA=m
 CONFIG_INTEL_MIC_X100_DMA=m
 CONFIG_PLX_DMA=m
+CONFIG_XILINX_ZYNQMP_DPDMA=m
 CONFIG_QCOM_HIDMA_MGMT=m
 CONFIG_QCOM_HIDMA=m
 CONFIG_DW_DMAC_CORE=m
@@ -7914,15 +8036,17 @@ 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_VDPA=m
 # CONFIG_VDPA_SIM is not set
 CONFIG_IFCVF=m
+CONFIG_MLX5_VDPA=y
+CONFIG_MLX5_VDPA_NET=m
 CONFIG_VHOST_IOTLB=m
 CONFIG_VHOST_RING=m
-CONFIG_VHOST_DPN=y
 CONFIG_VHOST=m
 CONFIG_VHOST_MENU=y
 CONFIG_VHOST_NET=m
@@ -7971,6 +8095,7 @@ 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
@@ -8190,30 +8315,9 @@ CONFIG_AD2S1210=m
 # end of IIO staging drivers
 
 CONFIG_FB_SM750=m
-
-#
-# 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_STAGING_MEDIA=y
+CONFIG_INTEL_ATOMISP=y
 CONFIG_VIDEO_IPU3_IMGU=m
-
-#
-# soc_camera sensor drivers
-#
 CONFIG_VIDEO_USBVISION=m
 
 #
@@ -8263,17 +8367,12 @@ CONFIG_FB_TFT_UC1611=m
 CONFIG_FB_TFT_UC1701=m
 CONFIG_FB_TFT_UPD161704=m
 CONFIG_FB_TFT_WATTEROTT=m
-CONFIG_WILC1000=m
-CONFIG_WILC1000_SDIO=m
-CONFIG_WILC1000_SPI=m
-# CONFIG_WILC1000_HW_OOB_INTR is not set
 CONFIG_MOST_COMPONENTS=m
 CONFIG_MOST_CDEV=m
 CONFIG_MOST_NET=m
 CONFIG_MOST_SOUND=m
 CONFIG_MOST_VIDEO=m
 CONFIG_MOST_I2C=m
-CONFIG_MOST_USB=m
 CONFIG_KS7010=m
 # CONFIG_PI433 is not set
 
@@ -8293,6 +8392,7 @@ CONFIG_ACPI_WMI=m
 CONFIG_WMI_BMOF=m
 CONFIG_ALIENWARE_WMI=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
@@ -8336,7 +8436,7 @@ CONFIG_THINKPAD_ACPI_DEBUGFACILITIES=y
 # CONFIG_THINKPAD_ACPI_UNSAFE_LEDS is not set
 CONFIG_THINKPAD_ACPI_VIDEO=y
 CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y
-CONFIG_INTEL_ATOMISP2_PM=m
+CONFIG_INTEL_ATOMISP2_LED=m
 CONFIG_INTEL_CHT_INT33FE=m
 CONFIG_INTEL_HID_EVENT=m
 CONFIG_INTEL_INT0002_VGPIO=m
@@ -8381,9 +8481,16 @@ CONFIG_INTEL_SPEED_SELECT_INTERFACE=m
 CONFIG_INTEL_UNCORE_FREQ_CONTROL=m
 CONFIG_INTEL_BXTWC_PMIC_TMU=m
 CONFIG_INTEL_CHTDC_TI_PWRBTN=m
+CONFIG_INTEL_MFLD_THERMAL=m
+CONFIG_INTEL_MID_POWER_BUTTON=m
+CONFIG_INTEL_MRFLD_PWRBTN=m
 CONFIG_INTEL_PMC_CORE=y
-CONFIG_INTEL_PMC_IPC=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_MFD_CROS_EC=m
@@ -8411,13 +8518,10 @@ CONFIG_WILCO_EC=m
 CONFIG_WILCO_EC_EVENTS=m
 CONFIG_WILCO_EC_TELEMETRY=m
 # CONFIG_MELLANOX_PLATFORM is not set
+CONFIG_HAVE_CLK=y
 CONFIG_CLKDEV_LOOKUP=y
 CONFIG_HAVE_CLK_PREPARE=y
 CONFIG_COMMON_CLK=y
-
-#
-# Common Clock Framework
-#
 CONFIG_COMMON_CLK_WM831X=m
 CONFIG_COMMON_CLK_MAX9485=m
 CONFIG_COMMON_CLK_SI5341=m
@@ -8429,8 +8533,6 @@ CONFIG_COMMON_CLK_S2MPS11=m
 CONFIG_CLK_TWL6040=m
 CONFIG_COMMON_CLK_PALMAS=m
 CONFIG_COMMON_CLK_PWM=m
-# end of Common Clock Framework
-
 # CONFIG_HWSPINLOCK is not set
 
 #
@@ -8479,7 +8581,7 @@ CONFIG_HYPERV_IOMMU=y
 #
 CONFIG_RPMSG=m
 # CONFIG_RPMSG_CHAR is not set
-CONFIG_RPMSG_QCOM_GLINK_NATIVE=m
+CONFIG_RPMSG_QCOM_GLINK=m
 CONFIG_RPMSG_QCOM_GLINK_RPM=m
 CONFIG_RPMSG_VIRTIO=m
 # end of Rpmsg drivers
@@ -8556,6 +8658,7 @@ 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
@@ -8571,6 +8674,8 @@ CONFIG_MEMORY=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=m
 CONFIG_IIO_KFIFO_BUF=m
 CONFIG_IIO_TRIGGERED_BUFFER=m
@@ -8589,10 +8694,10 @@ CONFIG_ADIS16209=m
 CONFIG_ADXL372=m
 CONFIG_ADXL372_SPI=m
 CONFIG_ADXL372_I2C=m
-CONFIG_BMA180=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
@@ -8649,6 +8754,8 @@ CONFIG_AD7887=m
 CONFIG_AD7923=m
 CONFIG_AD7949=m
 CONFIG_AD799X=m
+CONFIG_AD9467=m
+CONFIG_ADI_AXI_ADC=m
 CONFIG_AXP20X_ADC=m
 CONFIG_AXP288_ADC=m
 CONFIG_CC10001_ADC=m
@@ -8657,6 +8764,7 @@ 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
@@ -8665,12 +8773,14 @@ 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_MEN_Z188_ADC=m
+CONFIG_MP2629_ADC=m
 CONFIG_NAU7802=m
 CONFIG_PALMAS_GPADC=m
 CONFIG_QCOM_VADC_COMMON=m
@@ -8710,12 +8820,16 @@ CONFIG_HMC425=m
 # 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
@@ -8866,6 +8980,7 @@ CONFIG_SI7020=m
 #
 CONFIG_ADIS16400=m
 CONFIG_ADIS16460=m
+CONFIG_ADIS16475=m
 CONFIG_ADIS16480=m
 CONFIG_BMI160=m
 CONFIG_BMI160_I2C=m
@@ -8874,6 +8989,9 @@ 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
@@ -9058,8 +9176,10 @@ 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
 
@@ -9120,6 +9240,7 @@ CONFIG_PWM_SYSFS=y
 # CONFIG_PWM_DEBUG is not set
 CONFIG_PWM_CRC=y
 CONFIG_PWM_CROS_EC=m
+CONFIG_PWM_IQS620A=m
 CONFIG_PWM_LP3943=m
 CONFIG_PWM_LPSS=m
 CONFIG_PWM_LPSS_PCI=m
@@ -9263,6 +9384,7 @@ CONFIG_UNISYS_VISORBUS=m
 # CONFIG_INTERCONNECT is not set
 CONFIG_COUNTER=m
 CONFIG_MOST=m
+CONFIG_MOST_USB_HDM=m
 # end of Device Drivers
 
 #
@@ -9416,6 +9538,7 @@ 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
@@ -9507,6 +9630,11 @@ CONFIG_PSTORE_COMPRESS_DEFAULT="deflate"
 # 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
@@ -9546,6 +9674,7 @@ 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
@@ -9649,10 +9778,10 @@ CONFIG_IO_WQ=y
 CONFIG_KEYS=y
 CONFIG_KEYS_REQUEST_CACHE=y
 CONFIG_PERSISTENT_KEYRINGS=y
-CONFIG_BIG_KEYS=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
@@ -10023,6 +10152,7 @@ CONFIG_BINARY_PRINTF=y
 #
 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
@@ -10030,11 +10160,13 @@ 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
@@ -10062,7 +10194,7 @@ CONFIG_LZ4_COMPRESS=m
 CONFIG_LZ4HC_COMPRESS=m
 CONFIG_LZ4_DECOMPRESS=y
 CONFIG_ZSTD_COMPRESS=m
-CONFIG_ZSTD_DECOMPRESS=m
+CONFIG_ZSTD_DECOMPRESS=y
 CONFIG_XZ_DEC=y
 CONFIG_XZ_DEC_X86=y
 CONFIG_XZ_DEC_POWERPC=y
@@ -10078,6 +10210,7 @@ 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
@@ -10096,6 +10229,7 @@ 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
@@ -10158,6 +10292,8 @@ CONFIG_OBJAGG=m
 # CONFIG_STRING_SELFTEST is not set
 # end of Library routines
 
+CONFIG_PLDMFW=y
+
 #
 # Kernel hacking
 #
@@ -10172,6 +10308,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
@@ -10187,6 +10324,7 @@ CONFIG_FRAME_WARN=1024
 # 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_DEBUG_FORCE_WEAK_PER_CPU is not set
@@ -10200,6 +10338,9 @@ 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_SERIAL_CONSOLE=y
@@ -10209,8 +10350,10 @@ 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
@@ -10225,6 +10368,8 @@ CONFIG_DEBUG_MISC=y
 # 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
@@ -10234,7 +10379,9 @@ 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
@@ -10243,8 +10390,8 @@ CONFIG_MEMORY_NOTIFIER_ERROR_INJECT=m
 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_KASAN_STACK=1
 # end of Memory Debugging
 
 # CONFIG_DEBUG_SHIRQ is not set
@@ -10322,6 +10469,7 @@ CONFIG_STACKTRACE=y
 CONFIG_TORTURE_TEST=m
 # CONFIG_RCU_PERF_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
@@ -10360,7 +10508,6 @@ CONFIG_DYNAMIC_FTRACE_WITH_REGS=y
 CONFIG_DYNAMIC_FTRACE_WITH_DIRECT_CALLS=y
 CONFIG_FUNCTION_PROFILER=y
 CONFIG_STACK_TRACER=y
-# CONFIG_PREEMPTIRQ_EVENTS is not set
 # CONFIG_IRQSOFF_TRACER is not set
 CONFIG_SCHED_TRACER=y
 # CONFIG_HWLAT_TRACER is not set
@@ -10379,6 +10526,7 @@ CONFIG_DYNAMIC_EVENTS=y
 CONFIG_PROBE_EVENTS=y
 # CONFIG_BPF_KPROBE_OVERRIDE is not set
 CONFIG_FTRACE_MCOUNT_RECORD=y
+CONFIG_SYNTH_EVENTS=y
 # CONFIG_HIST_TRIGGERS is not set
 # CONFIG_TRACE_EVENT_INJECT is not set
 # CONFIG_TRACEPOINT_BENCHMARK is not set
@@ -10388,6 +10536,7 @@ CONFIG_FTRACE_MCOUNT_RECORD=y
 # CONFIG_RING_BUFFER_STARTUP_TEST 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
@@ -10399,14 +10548,13 @@ 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_WX is not set
-CONFIG_DOUBLEFAULT=y
 # CONFIG_DEBUG_TLBFLUSH is not set
 # CONFIG_IOMMU_DEBUG is not set
 CONFIG_HAVE_MMIOTRACE_SUPPORT=y
@@ -10466,6 +10614,7 @@ 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
@@ -10481,6 +10630,8 @@ CONFIG_TEST_STATIC_KEYS=m
 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_MEMTEST=y
 # CONFIG_HYPERV_TESTING is not set
 # end of Kernel Testing and Coverage
diff --git a/gnu/packages/aux-files/run-in-namespace.c b/gnu/packages/aux-files/run-in-namespace.c
index 436c0b6286..44c3c5a6cb 100644
--- a/gnu/packages/aux-files/run-in-namespace.c
+++ b/gnu/packages/aux-files/run-in-namespace.c
@@ -41,6 +41,7 @@
 #include <fcntl.h>
 #include <dirent.h>
 #include <sys/syscall.h>
+#include <sys/prctl.h>
 
 /* Whether we're building the ld.so/libfakechroot wrapper.  */
 #define HAVE_EXEC_WITH_LOADER						\
@@ -258,11 +259,20 @@ exec_in_user_namespace (const char *store, int argc, char *argv[])
 {
   /* Spawn @WRAPPED_PROGRAM@ in a separate namespace where STORE is
      bind-mounted in the right place.  */
-  int err;
+  int err, is_tmpfs;
   char *new_root = mkdtemp (strdup ("/tmp/guix-exec-XXXXXX"));
   char *new_store = concat (new_root, original_store);
   char *cwd = get_current_dir_name ();
 
+  /* Become the new parent of grand-children when their parent dies.  */
+  prctl (PR_SET_CHILD_SUBREAPER, 1);
+
+  /* Optionally, make NEW_ROOT a tmpfs.  That way, if we have to leave it
+     behind because there are sub-processes still running when this wrapper
+     exits, it's OK.  */
+  err = mount ("none", new_root, "tmpfs", 0, NULL);
+  is_tmpfs = (err == 0);
+
   /* Create a child with separate namespaces and set up bind-mounts from
      there.  That way, bind-mounts automatically disappear when the child
      exits, which simplifies cleanup for the parent.  Note: clone is more
@@ -300,6 +310,7 @@ exec_in_user_namespace (const char *store, int argc, char *argv[])
       /* Failure: user namespaces not supported.  */
       fprintf (stderr, "%s: error: 'clone' failed: %m\n", argv[0]);
       rm_rf (new_root);
+      free (new_root);
       break;
 
     default:
@@ -312,10 +323,25 @@ exec_in_user_namespace (const char *store, int argc, char *argv[])
 	write_id_map (child, "uid_map", getuid ());
 	write_id_map (child, "gid_map", getgid ());
 
-	int status;
+	int status, status_other;
 	waitpid (child, &status, 0);
-	chdir ("/");			  /* avoid EBUSY */
-	rm_rf (new_root);
+
+	chdir ("/");				  /* avoid EBUSY */
+	if (is_tmpfs)
+	  {
+	    /* NEW_ROOT lives on in child processes and we no longer need it
+	       to exist as an empty directory in the global namespace.  */
+	    umount (new_root);
+	    rmdir (new_root);
+	  }
+	/* Check whether there are child processes left.  If there are none,
+	   we can remove NEW_ROOT just fine.  Conversely, if there are
+	   processes left (for example because this wrapper's child forked),
+	   we have to leave NEW_ROOT behind so that those processes can still
+	   access their root file system (XXX).  */
+	else if (waitpid (-1 , &status_other, WNOHANG) == -1)
+	  rm_rf (new_root);
+
 	free (new_root);
 
 	if (WIFEXITED (status))
@@ -405,6 +431,23 @@ relocated_search_path (const char *path[], const char *store)
   return new_path;
 }
 
+/* Concatenate PATH1 and PATH2 with a colon in between.  The result is
+   potentially malloc'd.  */
+static char *
+concat_paths (const char *path1, const char *path2)
+{
+  if (path1[0] == '\0')
+    return (char *) path2;
+  else
+    {
+      char *result = xmalloc (strlen (path1) + strlen (path2) + 2);
+      strcpy (result, path1);
+      strcat (result, ":");
+      strcat (result, path2);
+      return result;
+    }
+}
+
 /* Execute the wrapped program by invoking the loader (ld.so) directly,
    passing it the audit module and preloading libfakechroot.so.  */
 static void
@@ -421,9 +464,12 @@ exec_with_loader (const char *store, int argc, char *argv[])
   loader_argv[2] = concat (store,
 			   LOADER_AUDIT_MODULE + sizeof original_store);
 
-  /* The audit module depends on libc.so and libgcc_s.so.  */
+  /* The audit module depends on libc.so and libgcc_s.so so honor
+     AUDIT_LIBRARY_PATH.  Additionally, honor $LD_LIBRARY_PATH if set.  */
   loader_argv[3] = "--library-path";
-  loader_argv[4] = relocated_search_path (audit_library_path, store);
+  loader_argv[4] =
+    concat_paths (getenv ("LD_LIBRARY_PATH") ?: "",
+		  relocated_search_path (audit_library_path, store));
 
   loader_argv[5] = "--preload";
   loader_argv[6] = concat (store,
@@ -470,6 +516,9 @@ exec_with_loader (const char *store, int argc, char *argv[])
 
   setenv ("FAKECHROOT_BASE", new_root, 1);
 
+  /* Become the new parent of grand-children when their parent dies.  */
+  prctl (PR_SET_CHILD_SUBREAPER, 1);
+
   pid_t child = fork ();
   switch (child)
     {
@@ -487,12 +536,19 @@ exec_with_loader (const char *store, int argc, char *argv[])
 
     default:
       {
-  	int status;
+  	int status, status_other;
 	waitpid (child, &status, 0);
-	chdir ("/");			  /* avoid EBUSY */
-	rm_rf (new_root);
-	free (new_root);
 
+	/* If there are child processes still running, leave NEW_ROOT around
+	   so they can still access it.  XXX: In that case NEW_ROOT is left
+	   behind.  */
+	if (waitpid (-1 , &status_other, WNOHANG) == -1)
+	  {
+	    chdir ("/");			  /* avoid EBUSY */
+	    rm_rf (new_root);
+	  }
+
+	free (new_root);
 	close (2);			/* flushing stderr should be silent */
 
 	if (WIFEXITED (status))
@@ -600,7 +656,7 @@ main (int argc, char *argv[])
   /* SELF is something like "/home/ludo/.local/gnu/store/…-foo/bin/ls" and we
      want to extract "/home/ludo/.local/gnu/store".  */
   size_t index = strlen (self)
-    - strlen ("@WRAPPED_PROGRAM@") + strlen (original_store);
+    - strlen (WRAPPER_PROGRAM) + strlen (original_store);
   char *store = strdup (self);
   store[index] = '\0';
 
diff --git a/gnu/packages/avahi.scm b/gnu/packages/avahi.scm
index 602f9d7997..b2aeeadf47 100644
--- a/gnu/packages/avahi.scm
+++ b/gnu/packages/avahi.scm
@@ -74,7 +74,7 @@
        ("expat" ,expat)
        ("gdbm" ,gdbm)
        ("glib" ,glib)
-       ("libcap" ,libcap)            ;to enable chroot support in avahi-daemon
+       ("libcap" ,libcap-2.31)       ;to enable chroot support in avahi-daemon
        ("libdaemon" ,libdaemon)
        ("libevent" ,libevent)))
     (native-inputs
diff --git a/gnu/packages/avr.scm b/gnu/packages/avr.scm
index 76af6fdef1..c113707283 100644
--- a/gnu/packages/avr.scm
+++ b/gnu/packages/avr.scm
@@ -5,6 +5,7 @@
 ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2020 Arun Isaac <arunisaac@systemreboot.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -41,8 +42,8 @@
     (inherit (cross-binutils "avr"))
     (name "avr-binutils")))
 
-(define-public avr-gcc-4.9
-  (let ((xgcc (cross-gcc "avr" #:xgcc gcc-4.9 #:xbinutils avr-binutils)))
+(define avr-gcc
+  (let ((xgcc (cross-gcc "avr" #:xgcc gcc #:xbinutils avr-binutils)))
     (package
       (inherit xgcc)
       (name "avr-gcc")
@@ -94,19 +95,10 @@
               (variable "CROSS_LIBRARY_PATH")
               (files '("avr/lib")))))
       (native-inputs
-       `(("gcc@5" ,gcc-5)
+       `(("gcc" ,gcc)
          ,@(package-native-inputs xgcc))))))
 
-(define-public avr-gcc-5
-  (package
-    (inherit avr-gcc-4.9)
-    (version (package-version gcc-5))
-    (source (origin
-              (inherit (package-source gcc-5))
-              (patches (append (origin-patches (package-source gcc-5))
-                               (search-patches "gcc-cross-environment-variables.patch")))))))
-
-(define (avr-libc avr-gcc)
+(define avr-libc
   (package
     (name "avr-libc")
     (version "2.0.0")
@@ -120,18 +112,7 @@
     (build-system gnu-build-system)
     (arguments
      '(#:out-of-source? #t
-       #:configure-flags '("--host=avr")
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'unpack 'fix-cpath
-           (lambda _
-             ;; C_INCLUDE_PATH and CPATH pose issues for cross-building,
-             ;; leading to failures when building avr-libc on 64-bit systems.
-             ;; Simply unsetting them allows the build to succeed because it
-             ;; doesn't try to use any of the native system's headers.
-             (unsetenv "C_INCLUDE_PATH")
-             (unsetenv "CPATH")
-             #t)))))
+       #:configure-flags '("--host=avr")))
     (native-inputs `(("avr-binutils" ,avr-binutils)
                      ("avr-gcc" ,avr-gcc)))
     (home-page "https://www.nongnu.org/avr-libc/")
@@ -142,31 +123,27 @@ for use with GCC on Atmel AVR microcontrollers.")
     (license
      (license:non-copyleft "http://www.nongnu.org/avr-libc/LICENSE.txt"))))
 
-(define (avr-toolchain avr-gcc)
+(define-public avr-toolchain
   ;; avr-libc checks the compiler version and passes "--enable-device-lib" for avr-gcc > 5.1.0.
   ;; It wouldn't install the library for atmega32u4 etc if we didn't use the corret avr-gcc.
-  (let ((avr-libc (avr-libc avr-gcc)))
-    (package
-      (name "avr-toolchain")
-      (version (package-version avr-gcc))
-      (source #f)
-      (build-system trivial-build-system)
-      (arguments '(#:builder (begin (mkdir %output) #t)))
-      (propagated-inputs
-       `(("avrdude" ,avrdude)
-         ("binutils" ,avr-binutils)
-         ("gcc" ,avr-gcc)
-         ("libc" ,avr-libc)))
-      (synopsis "Complete GCC tool chain for AVR microcontroller development")
-      (description "This package provides a complete GCC tool chain for AVR
+  (package
+    (name "avr-toolchain")
+    (version (package-version avr-gcc))
+    (source #f)
+    (build-system trivial-build-system)
+    (arguments '(#:builder (begin (mkdir %output) #t)))
+    (propagated-inputs
+     `(("avrdude" ,avrdude)
+       ("binutils" ,avr-binutils)
+       ("gcc" ,avr-gcc)
+       ("libc" ,avr-libc)))
+    (synopsis "Complete GCC tool chain for AVR microcontroller development")
+    (description "This package provides a complete GCC tool chain for AVR
 microcontroller development.  This includes the GCC AVR cross compiler and
 avrdude for firmware flashing.  The supported programming languages are C and
 C++.")
-      (home-page (package-home-page avr-libc))
-      (license (package-license avr-gcc)))))
-
-(define-public avr-toolchain-4.9 (avr-toolchain avr-gcc-4.9))
-(define-public avr-toolchain-5 (avr-toolchain avr-gcc-5))
+    (home-page (package-home-page avr-libc))
+    (license (package-license avr-gcc))))
 
 (define-public microscheme
   (package
diff --git a/gnu/packages/axoloti.scm b/gnu/packages/axoloti.scm
index ba49a9d0f0..2a5cf8e0fc 100644
--- a/gnu/packages/axoloti.scm
+++ b/gnu/packages/axoloti.scm
@@ -527,7 +527,7 @@ patcher application.")))
                (install-file "dist/Axoloti.jar" share)
 
                ;; Install old firmware
-               (let ((target (string-append share "/old_firmware/"))
+               (let ((target (string-append share "/old_firmware/firmware-1.0.12"))
                      (old-firmware
                       (string-append (assoc-ref inputs "axoloti-runtime")
                                      "/share/axoloti/firmware/")))
@@ -557,7 +557,7 @@ patcher application.")))
                                         toolchain
                                         "/arm-none-eabi/include:"
                                         toolchain
-                                        "/arm-none-eabi/include/arm-none-eabi/armv7e-m")))
+                                        "/arm-none-eabi/include/arm-none-eabi/thumb/v7e-m")))
                        (display
                         (string-append "#!" (which "sh") "\n"
                                        "export CROSS_CPATH=" includes "\n"
diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm
index c8e6f175b1..ce6ea7fd49 100644
--- a/gnu/packages/backup.scm
+++ b/gnu/packages/backup.scm
@@ -6,7 +6,7 @@
 ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
 ;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net>
 ;;; Copyright © 2017 Kei Kebreau <kkebreau@posteo.net>
-;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2017, 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2017 Christopher Allan Webber <cwebber@dustycloud.org>
 ;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com>
 ;;; Copyright © 2018 Mark H Weaver <mhw@netris.org>
@@ -17,6 +17,7 @@
 ;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
 ;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;; Copyright © 2020 Marcin Karpezo <sirmacik@wioo.waw.pl>
+;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -82,7 +83,7 @@
 (define-public duplicity
   (package
     (name "duplicity")
-    (version "0.8.15")
+    (version "0.8.17")
     (source
      (origin
       (method url-fetch)
@@ -91,10 +92,10 @@
                           "-series/" version "/+download/duplicity-"
                           version ".tar.gz"))
       (sha256
-       (base32 "1kg467mxg5a97v1rlv4shk32krgv8ys4nczq4b11av4bp1lgysdc"))))
+       (base32 "114rwkf9b3h4fcagrx013sb7krc4hafbwl9gawjph2wd9pkv2wx2"))))
     (build-system python-build-system)
     (native-inputs
-     `(("gettext" ,gnu-gettext)         ; for msgfmt
+     `(("gettext" ,gettext-minimal)     ; for msgfmt
        ("util-linux" ,util-linux)       ; setsid command, for the tests
        ("par2cmdline" ,par2cmdline)
        ("python-fasteners" ,python-fasteners)
@@ -148,7 +149,7 @@ spying and/or modification by the server.")
 (define-public par2cmdline
   (package
     (name "par2cmdline")
-    (version "0.8.0")
+    (version "0.8.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -157,7 +158,7 @@ spying and/or modification by the server.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0f1jsd5sw2wynjzi7yjqjaf13yhyjfdid91p8yh0jn32y03kjyrz"))))
+                "11mx8q29cr0sryd11awab7y4mhqgbamb1ss77rffjj6in8pb4hdk"))))
     (native-inputs
      `(("automake" ,automake)
        ("autoconf" ,autoconf)))
@@ -392,7 +393,7 @@ list and implement the backup strategy.")
      `(("librsync" ,librsync-0.9)))
     (arguments
      `(#:make-flags `(,(string-append "PREFIX=" (assoc-ref %outputs "out"))
-                      "CC=gcc")
+                      ,(string-append "CC=" ,(cc-for-target)))
        #:tests? #f                      ;test input not distributed
        #:phases
        ;; no configure phase
@@ -569,13 +570,13 @@ detection, and lossless compression.")
 (define-public borg
   (package
     (name "borg")
-    (version "1.1.13")
+    (version "1.1.15")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "borgbackup" version))
        (sha256
-        (base32 "089q3flmwbz7dc28zlscwylf64kgck3jf1n6lqpwww8hlrk8cjhn"))
+        (base32 "1g62sdzcw3zx4ccky125ciwnzx6z9kwyvskvp7ijmqxqk3nrxjs9"))
        (modules '((guix build utils)))
        (snippet
         '(begin
@@ -593,7 +594,8 @@ detection, and lossless compression.")
                        "src/borg/platform/darwin.c"
                        "src/borg/platform/freebsd.c"
                        "src/borg/platform/linux.c"
-                       "src/borg/platform/posix.c"))
+                       "src/borg/platform/posix.c"
+                       "src/borg/platform/syncfilerange.c"))
            ;; Remove bundled shared libraries.
            (with-directory-excursion "src/borg/algorithms"
              (for-each delete-file-recursively
@@ -606,7 +608,7 @@ detection, and lossless compression.")
            #t))))
     (build-system python-build-system)
     (arguments
-     `(#:modules ((srfi srfi-26) ; for cut
+     `(#:modules ((srfi srfi-26)        ; for cut
                   (guix build utils)
                   (guix build python-build-system))
        #:phases
@@ -653,6 +655,7 @@ detection, and lossless compression.")
                         "and not test_access_acl "
                         "and not test_default_acl "
                         "and not test_non_ascii_acl "
+                        "and not test_create_stdin "
                         ;; This test needs the unpackaged pytest-benchmark.
                         "and not benchmark "
                         ;; These tests assume the kernel supports FUSE.
@@ -670,6 +673,19 @@ detection, and lossless compression.")
                            "docs/misc/internals-picture.txt"
                            "docs/misc/prune-example.txt"))
                (copy-recursively "docs/man" man)
+               #t)))
+         (add-after 'install-docs 'install-shell-completions
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (etc (string-append out "/etc"))
+                    (share (string-append out "/share")))
+               (with-directory-excursion "scripts/shell_completions"
+                 (install-file "bash/borg"
+                               (string-append etc "/bash_completion.d"))
+                 (install-file "zsh/_borg"
+                               (string-append share "/zsh/site-functions"))
+                 (install-file "fish/borg.fish"
+                               (string-append share "/fish/vendor_completions.d")))
                #t))))))
     (native-inputs
      `(("python-cython" ,python-cython)
@@ -696,61 +712,17 @@ to not fully trusted targets.  Borg is a fork of Attic.")
     (home-page "https://www.borgbackup.org/")
     (license license:bsd-3)))
 
-(define-public attic
-  (package
-    (name "attic")
-    (version "0.16")
-    (source (origin
-              (method url-fetch)
-              (uri (pypi-uri "Attic" version))
-              (sha256
-               (base32
-                "0b5skd36r4c0915lwpkqg5hxm49gls9pprs1b7hc40910wlcsl36"))))
-    (build-system python-build-system)
-    (arguments
-     `(;; The tests assume they are run as root:
-       ;; https://github.com/jborg/attic/issues/7
-       #:tests? #f
-       #:phases
-       (modify-phases %standard-phases
-         (add-before
-          'build 'set-openssl-prefix
-          (lambda* (#:key inputs #:allow-other-keys)
-            (setenv "ATTIC_OPENSSL_PREFIX" (assoc-ref inputs "openssl"))
-            #t)))))
-    (inputs
-     `(("acl" ,acl)
-       ("openssl" ,openssl)
-       ("python-msgpack" ,python-msgpack)
-
-       ;; Attic is probably incompatible with llfuse > 0.41.
-       ;; These links are to discussions of llfuse compatibility from
-       ;; the borg project. Borg is a recent fork of attic, and attic
-       ;; has not been updated since the fork, so it's likely that
-       ;; llfuse compatibility requirements are still the same.
-       ;; https://github.com/borgbackup/borg/issues/642
-       ;; https://github.com/borgbackup/borg/issues/643
-       ("python-llfuse" ,python-llfuse-0.41)))
-    (synopsis "Deduplicating backup program")
-    (description "Attic is a deduplicating backup program.  The main goal of
-Attic is to provide an efficient and secure way to backup data.  The data
-deduplication technique used makes Attic suitable for daily backups since only
-changes are stored.")
-    (home-page "https://attic-backup.org/")
-    (license license:bsd-3)
-    (properties `((superseded . ,borg)))))
-
 (define-public wimlib
   (package
     (name "wimlib")
-    (version "1.13.2")
+    (version "1.13.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://wimlib.net/downloads/"
                                   "wimlib-" version ".tar.gz"))
               (sha256
                (base32
-                "0id9ym3hzij4kpdrk0sz3ijxp5r0z1md5jch83pml9hdy1zbx5bj"))))
+                "0zpsbl9iicc6y81xfl6kf8farwfsyrl63shc0idp654kgp8421wa"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
@@ -1066,13 +1038,13 @@ other storage medium.  Subsequent incremental backups can then be layered on
 top of the full backup.  The restore command performs the inverse function of
 dump; it can restore a full backup of a file system.  Single files and
 directory subtrees may also be restored from full or partial backups in
-interractive mode.")
+interactive mode.")
     (license license:bsd-3)))
 
 (define-public burp
   (package
     (name "burp")
-    (version "2.3.32")
+    (version "2.3.38")
     (source
      (origin
        (method git-fetch)
@@ -1080,7 +1052,7 @@ interractive mode.")
              (url "https://github.com/grke/burp")
              (commit version)))
        (sha256
-        (base32 "0cxxf9ni34c9662ffmr2qc8xmh4g9pmg3swqvhn49mqgr5ra6k2g"))
+        (base32 "0m0s6rrgxn3l6bad45vyhks6iz6bwvd0f3rzdsc7l28gar79wsj6"))
        (file-name (git-file-name name version))))
     (build-system gnu-build-system)
     (arguments
@@ -1103,7 +1075,7 @@ interractive mode.")
     (native-inputs
      `(("autoconf" ,autoconf)
        ("automake" ,automake)
-       ("check" ,check)
+       ("check" ,check-0.14)
        ("pkg-config" ,pkg-config)))
     (home-page "https://burp.grke.org")
     (synopsis "Differential backup and restore")
diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
index c83775d8ee..b8301828cc 100644
--- a/gnu/packages/base.scm
+++ b/gnu/packages/base.scm
@@ -52,13 +52,16 @@
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
   #:use-module (gnu packages gettext)
+  #:use-module (guix i18n)
   #:use-module (guix utils)
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix git-download)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system trivial)
+  #:use-module (ice-9 format)
   #:use-module (ice-9 match)
+  #:use-module (ice-9 optargs)
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-26)
   #:export (glibc
@@ -324,7 +327,7 @@ used to apply commands with arbitrarily long arguments.")
              ,@(if (and (not (%current-target-system))
                         (member (%current-system)
                                 (package-supported-systems libcap)))
-             `(("libcap" ,libcap))  ;capability support in 'ls', etc.
+             `(("libcap" ,libcap-2.31))        ;capability support in 'ls', etc.
              '())))
    (native-inputs
     ;; Perl is needed to run tests in native builds, and to run the bundled
@@ -1106,9 +1109,16 @@ to the @code{share/locale} sub-directory of this package.")
                                         ,(version-major+minor
                                           (package-version glibc)))))))))))
 
-(define-public (make-glibc-utf8-locales glibc)
+(define %default-utf8-locales
+  ;; These are the locales commonly used for tests---e.g., in Guile's i18n
+  ;; tests.
+  '("de_DE" "el_GR" "en_US" "fr_FR" "tr_TR"))
+(define*-public (make-glibc-utf8-locales glibc #:key
+                                         (locales %default-utf8-locales)
+                                         (name "glibc-utf8-locales"))
+  (define default-locales? (equal? locales %default-utf8-locales))
   (package
-    (name "glibc-utf8-locales")
+    (name name)
     (version (package-version glibc))
     (source #f)
     (build-system trivial-build-system)
@@ -1142,17 +1152,22 @@ to the @code{share/locale} sub-directory of this package.")
                                  (symlink (string-append locale ".utf8")
                                           (string-append localedir "/"
                                                          locale ".UTF-8")))
-
-                               ;; These are the locales commonly used for
-                               ;; tests---e.g., in Guile's i18n tests.
-                               '("de_DE" "el_GR" "en_US" "fr_FR" "tr_TR"))
+                               ',locales)
                      #t))))
     (native-inputs `(("glibc" ,glibc)
                      ("gzip" ,gzip)))
-    (synopsis "Small sample of UTF-8 locales")
+    (synopsis (if default-locales?
+                  (P_ "Small sample of UTF-8 locales")
+                  (P_ "Customized sample of UTF-8 locales")))
     (description
-     "This package provides a small sample of UTF-8 locales mostly useful in
+     (if default-locales?
+         (P_ "This package provides a small sample of UTF-8 locales mostly useful in
 test environments.")
+         (format #f (P_ "This package provides the following UTF-8 locales:
+@itemize
+~{@item ~a~%~}
+@end itemize~%")
+                 locales)))
     (home-page (package-home-page glibc))
     (license (package-license glibc))))
 
@@ -1229,7 +1244,7 @@ command.")
 (define-public tzdata
   (package
     (name "tzdata")
-    (version "2020a")
+    (version "2020d")
     (source (origin
              (method url-fetch)
              (uri (string-append
@@ -1237,10 +1252,10 @@ command.")
                    version ".tar.gz"))
              (sha256
               (base32
-               "18lrp0zh8m931jjlrv8lvjas4ka5dfkzdbwnbw5lwd2dlbn62wal"))))
+               "1wxskk9mh1x2073n99qna2mq58mgi648mbq5dxlqfcrnvrbkk0cd"))))
     (build-system gnu-build-system)
     (arguments
-     '(#:tests? #f
+     `(#:tests? #f
        #:make-flags (let ((out (assoc-ref %outputs "out"))
                           (tmp (getenv "TMPDIR")))
                       (list (string-append "TOPDIR=" out)
@@ -1252,6 +1267,16 @@ command.")
                             (string-append "LIBDIR=" tmp "/lib")
                             (string-append "MANDIR=" tmp "/man")
 
+                            ;; XXX: tzdata 2020b changed the on-disk format
+                            ;; of the time zone files from 'fat' to 'slim'.
+                            ;; Many packages (particularly evolution-data-server)
+                            ;; can not yet handle the latter, so we stick with
+                            ;; 'fat' for now.
+                            ,@(if (version>=? (package-version this-package)
+                                              "2020b")
+                                  '("CPPFLAGS=-DZIC_BLOAT_DEFAULT='\"fat\"'")
+                                  '())
+
                             "AWK=awk"
                             "CC=gcc"))
        #:modules ((guix build utils)
@@ -1287,7 +1312,7 @@ command.")
                                 version ".tar.gz"))
                           (sha256
                            (base32
-                            "0sfnlqw1p93r7klny69rwr94fh22mz632h52phgzfgg01q9gfakx"))))))
+                            "1mgsckixmmk9qxzsflfxnp3999qi3ls72bgksclk01g852x51w3c"))))))
     (home-page "https://www.iana.org/time-zones")
     (synopsis "Database of current and historical time zones")
     (description "The Time Zone Database (often called tz or zoneinfo)
diff --git a/gnu/packages/bash.scm b/gnu/packages/bash.scm
index 47ca625d9a..ed2931fd97 100644
--- a/gnu/packages/bash.scm
+++ b/gnu/packages/bash.scm
@@ -5,6 +5,7 @@
 ;;; Copyright © 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
+;;; Copyright © 2020 Zhu Zihao <all_but_last@163.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -22,14 +23,18 @@
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (gnu packages bash)
-  #:use-module (guix licenses)
+  #:use-module ((guix licenses) #:prefix license:)
   #:use-module (gnu packages)
   #:use-module (gnu packages base)
   #:use-module (gnu packages bootstrap)
+  #:use-module (gnu packages compression)
+  #:use-module (gnu packages elf)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages readline)
   #:use-module (gnu packages bison)
   #:use-module (gnu packages linux)
+  #:use-module (gnu packages libffi)
+  #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages guile)
   #:use-module (guix packages)
   #:use-module (guix download)
@@ -210,7 +215,7 @@ from the Korn Shell and the C Shell and new improvements of its own.  It
 allows command-line editing, unlimited command history, shell functions and
 aliases, and job control while still allowing most sh scripts to be run
 without modification.")
-     (license gpl3+)
+     (license license:gpl3+)
      (home-page "https://www.gnu.org/software/bash/"))))
 
 (define-public bash-minimal
@@ -320,7 +325,7 @@ without modification.")
      "This package provides extensions that allow Bash to provide adapted
 completion for many common commands.")
     (home-page "https://github.com/scop/bash-completion")
-    (license gpl2+)))
+    (license license:gpl2+)))
 
 (define-public bash-tap
   (package
@@ -364,7 +369,7 @@ test library")
 for Bash shell scripts and functions.  Along with the Test::More-style testing
 helpers it provides helper functions for mocking commands and in-process output
 capturing.")
-    (license expat)))
+    (license license:expat)))
 
 (define-public bats
   (package
@@ -414,4 +419,32 @@ capturing.")
 framework for Bash.  It provides a simple way to verify that the UNIX programs
 you write behave as expected.  Bats is most useful when testing software written
 in Bash, but you can use it to test any UNIX program.")
-    (license expat)))
+    (license license:expat)))
+
+(define-public bash-ctypes
+  (package
+    (name "bash-ctypes")
+    (version "1.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://github.com/taviso/ctypes.sh/releases/download/v"
+                           version "/ctypes-sh-" version ".tar.gz"))
+       (sha256
+        (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)))
+    (native-inputs
+     `(("pkg-config" ,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
+function interface (FFI) directly in your shell.  In other words, it allows
+you to call routines in shared libraries from within Bash.")
+    (license license:expat)))
diff --git a/gnu/packages/benchmark.scm b/gnu/packages/benchmark.scm
index 5bd16ad7be..3470f3860b 100644
--- a/gnu/packages/benchmark.scm
+++ b/gnu/packages/benchmark.scm
@@ -7,6 +7,9 @@
 ;;; Copyright © 2019 Gábor Boskovits <boskovits@gmail.com>
 ;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
+;;; Copyright © 2020 malte Frank Gerdes <malte.f.gerdes@gmail.com>
+;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2020 Greg Hogan <code@greghogan.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -30,6 +33,7 @@
   #: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 (gnu packages)
   #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
@@ -39,6 +43,7 @@
   #:use-module (gnu packages perl)
   #:use-module (gnu packages python)
   #: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))
@@ -46,14 +51,14 @@
 (define-public fio
   (package
     (name "fio")
-    (version "3.21")
+    (version "3.25")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://brick.kernel.dk/snaps/"
                                   "fio-" version ".tar.bz2"))
               (sha256
                (base32
-                "0np1scxqfpd6fcnnnfyn8xdsh6lc5pyq3vk1jm1zk7sa58fvccd4"))))
+                "16r734an459cz1ax3jyhxc269i3syzdkll4qbv18wqaxpm5y34v6"))))
     (build-system gnu-build-system)
     (arguments
      '(#:test-target "test"
@@ -127,7 +132,7 @@ is to write a job file matching the I/O load one wants to simulate.")
                          (if (string=? (package-name mpi) "openmpi")
                              ""
                              (string-append "-" (package-name mpi)))))
-    (version "2019.3")
+    (version "2019.6")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -136,7 +141,16 @@ is to write a job file matching the I/O load one wants to simulate.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0si5xi6ilhd3w0gbsg124589pvp094hvf366rvjjb9pi7pdk5p4i"))))
+                "02hxbk9g9nl59bk5qcfl3djj7b58vsqys340m1xdbyqwcrbnahh9"))
+              (modules '((guix build utils)))
+              (snippet
+               '(begin
+                  ;; Some source configuration files in the original tarball
+                  ;; have inappropriate execute permissions, which interferes
+                  ;; with the install phase below.
+                  (for-each (lambda (file) (chmod file #o444))
+                            (find-files "WINDOWS" "."))
+                  #t))))
     (build-system gnu-build-system)
     (inputs
      `(("mpi" ,mpi)))
@@ -213,7 +227,7 @@ This can give a much better understanding of the command's performance.")
 (define-public benchmark
   (package
     (name "benchmark")
-    (version "1.5.0")
+    (version "1.5.2")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -222,16 +236,24 @@ This can give a much better understanding of the command's performance.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0r9dbg4cbk47gwmayys31a83m3y67k0kh1f6pl8i869rbd609ndh"))
-              (patches (search-patches "benchmark-unbundle-googletest.patch"))))
+                "13rxagpzw6bal6ajlmrxlh9kgfvcixn6j734b2bvfqz7lch8n0pa"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("googletest" ,googletest)))
+     `(("googletest-source" ,(package-source googletest))
+       ("googletest" ,googletest)))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'unpack-googletest
+           (lambda* (#:key inputs #:allow-other-keys)
+             (copy-recursively (assoc-ref inputs "googletest-source")
+                               "googletest")
+             #t)))))
     (home-page "https://github.com/google/benchmark")
     (synopsis "Microbenchmark support library")
     (description
-     "Benchmark is a library to benchmark code snippets,
-similar to unit tests.")
+     "Benchmark is a library to benchmark code snippets, similar to unit
+tests.")
     (license license:asl2.0)))
 
 (define-public bonnie++
@@ -258,3 +280,66 @@ benchmark how your file systems perform with respect to data read and write
 speed, the number of seeks that can be performed per second, and the number of
 file metadata operations that can be performed per second.")
     (license license:gpl2)))   ;GPL 2 only, see copyright.txt
+
+(define-public python-locust
+  (package
+    (name "python-locust")
+    (version "1.4.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "locust" version))
+       (sha256
+        (base32
+         "1q2nza37fwsqf8qdmisfz6bmjpss90shi1bajrclf6gkbslhryxl"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-before 'check 'extend-PATH
+           ;; Add the 'locust' script to PATH, which is used in the test
+           ;; suite.
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (setenv "PATH" (string-append out "/bin:"
+                                             (getenv "PATH"))))
+             #t))
+         (replace 'check
+           (lambda _
+             (invoke "python" "-m" "pytest"
+                     "-k" (string-join
+                           (list
+                            ;; These tests return "non-zero exit status 1".
+                            "not test_default_headless_spawn_options"
+                            "not test_default_headless_spawn_options_with_shape"
+                            "not test_headless_spawn_options_wo_run_time"
+                            ;; This test depends on networking.
+                            "not test_web_options"
+                            ;; This test fails because of the warning "System open
+                            ;; file limit '1024' is below minimum setting '10000'".
+                            "not test_skip_logging") " and "))
+             #t)))))
+    (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)))
+    (native-inputs
+     `(("python-mock" ,python-mock)
+       ("python-pyquery" ,python-pyquery)
+       ("python-pytest" ,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
+use, scriptable and scalable.  The test scenarios are described in plain
+Python.  It provides a web-based user interface to visualize the results in
+real-time, but can also be run non-interactively.  Locust is primarily geared
+toward testing HTTP-based applications or services, but it can be customized to
+test any system or protocol.")
+    (license license:expat)))
diff --git a/gnu/packages/bioconductor.scm b/gnu/packages/bioconductor.scm
index 4a37681ae5..f1af34844f 100644
--- a/gnu/packages/bioconductor.scm
+++ b/gnu/packages/bioconductor.scm
@@ -2,7 +2,10 @@
 ;;; Copyright © 2016, 2017, 2018, 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2016, 2017, 2018, 2020 Roel Janssen <roel@gnu.org>
 ;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
-;;; Copyright © 2019 Simon Tournier <zimon.toutoune@gmail.com>
+;;; Copyright © 2019, 2020 Simon Tournier <zimon.toutoune@gmail.com>
+;;; Copyright © 2020 Peter Lo <peterloleungyau@gmail.com>
+;;; Copyright © 2020 Mădălin Ionel Patrașcu <madalinionel.patrascu@mdc-berlin.de>
+;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -47,6 +50,33 @@
 
 ;;; Annotations
 
+(define-public r-org-eck12-eg-db
+  (package
+    (name "r-org-eck12-eg-db")
+    (version "3.12.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "org.EcK12.eg.db" version 'annotation))
+       (sha256
+        (base32 "0c4p6jr83k0gm6pvn760yr8xf33wggrfcr6fg7a42a96bcf817gs"))))
+    (properties
+     `((upstream-name . "org.EcK12.eg.db")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-annotationdbi" ,r-annotationdbi)))
+    (home-page "https://bioconductor.org/packages/org.EcK12.eg.db")
+    (synopsis "Genome wide annotation for E coli strain K12")
+    (description
+     "This package provides genome wide annotation for E coli strain K12,
+primarily based on mapping using Entrez Gene identifiers.  Entrez Gene is
+National Center for Biotechnology Information (NCBI)’s database for
+gene-specific information.  Entrez Gene maintains records from genomes which
+have been completely sequenced, which have an active research community to
+submit gene-specific information, or which are scheduled for intense sequence
+analysis.")
+    (license license:artistic2.0)))
+
 (define-public r-reactome-db
   (package
     (name "r-reactome-db")
@@ -359,6 +389,33 @@ musculus (Mouse) as provided by UCSC (mm10, December 2011) and stored
 in Biostrings objects.")
     (license license:artistic2.0)))
 
+(define-public r-homo-sapiens
+  (package
+    (name "r-homo-sapiens")
+    (version "1.3.1")
+    (source (origin
+              (method url-fetch)
+              (uri (bioconductor-uri "Homo.sapiens" version 'annotation))
+              (sha256
+               (base32
+                "151vj7h5p1c8yd5swrchk46z469p135wk50hvkl0nhgndvy0jj01"))))
+    (properties
+     `((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)))
+    (home-page "https://bioconductor.org/packages/Homo.sapiens/")
+    (synopsis "Annotation package for the Homo.sapiens object")
+    (description
+     "This package contains the Homo.sapiens object to access data from
+several related annotation packages.")
+    (license license:artistic2.0)))
+
 (define-public r-org-ce-eg-db
   (package
     (name "r-org-ce-eg-db")
@@ -539,30 +596,6 @@ as provided by UCSC (hg38, Dec. 2013) and stored in Biostrings objects.")
      "This package exposes an annotation database generated from Ensembl.")
     (license license:artistic2.0)))
 
-(define-public r-genelendatabase
-  (package
-    (name "r-genelendatabase")
-    (version "1.18.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (bioconductor-uri "geneLenDataBase" version 'experiment))
-       (sha256
-        (base32
-         "03gm4pvsfascx7kjg0jycpf4f572mja68wwmwigs390vbmawyb4a"))))
-    (properties
-     `((upstream-name . "geneLenDataBase")))
-    (build-system r-build-system)
-    (propagated-inputs
-     `(("r-rtracklayer" ,r-rtracklayer)
-       ("r-genomicfeatures" ,r-genomicfeatures)))
-    (home-page "https://bioconductor.org/packages/geneLenDataBase/")
-    (synopsis "Lengths of mRNA transcripts for a number of genomes")
-    (description
-     "This package provides the lengths of mRNA transcripts for a number of
-genomes and gene ID formats, largely based on the UCSC table browser.")
-    (license license:lgpl2.0+)))
-
 (define-public r-txdb-hsapiens-ucsc-hg19-knowngene
   (package
     (name "r-txdb-hsapiens-ucsc-hg19-knowngene")
@@ -742,103 +775,6 @@ annotations.")
      "This is a manifest package for Illumina's EPIC methylation arrays.")
     (license license:artistic2.0)))
 
-(define-public r-ideoviz
-  (package
-    (name "r-ideoviz")
-    (version "1.24.0")
-    (source (origin
-              (method url-fetch)
-              (uri (bioconductor-uri "IdeoViz" version))
-              (sha256
-               (base32
-                "1ndj14qhpgidjb4qsga80ghqzz1x8kvy2gy1bvvgwlkfxa62rn50"))))
-    (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)))
-    (home-page "https://bioconductor.org/packages/IdeoViz/")
-    (synopsis "Plots data along a chromosomal ideogram")
-    (description "This package provides functions to plot data associated with
-arbitrary genomic intervals along chromosomal ideogram.")
-    (license license:gpl2)))
-
-;; This is a CRAN package, but it depends on r-bsgenome-hsapiens-ucsc-hg19
-;; from Bioconductor.
-(define-public r-deconstructsigs
-  (package
-    (name "r-deconstructsigs")
-    (version "1.8.0")
-    (source (origin
-              (method url-fetch)
-              (uri (cran-uri "deconstructSigs" version))
-              (sha256
-               (base32
-                "014x0nb23jb98666kaav2phkvmkr38pi38jv0dqd4jv7zp0gdf1a"))))
-    (properties
-     `((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)))
-    (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
-fraction of mutations in each of 96 trinucleotide contexts and identifies
-the weighted combination of published signatures that, when summed, most
-closely reconstructs the mutational profile.")
-    (license license:gpl2+)))
-
-;; This is a CRAN package, but it depends on Bioconductor packages.
-(define-public r-nmf
-  (package
-    (name "r-nmf")
-    (version "0.23.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (cran-uri "NMF" version))
-       (sha256
-        (base32
-         "0ls7q9yc9l1z10jphq5a11wkfgcxc3gm3sfjj376zx3vnc0wl30g"))))
-    (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)))
-    (home-page "http://renozao.github.io/NMF")
-    (synopsis "Algorithms and framework for nonnegative matrix factorization")
-    (description
-     "This package provides a framework to perform Non-negative Matrix
-Factorization (NMF).  The package implements a set of already published
-algorithms and seeding methods, and provides a framework to test, develop and
-plug new or custom algorithms.  Most of the built-in algorithms have been
-optimized in C++, and the main interface function provides an easy way of
-performing parallel computations on multicore machines.")
-    (license license:gpl2+)))
-
 (define-public r-do-db
   (package
     (name "r-do-db")
@@ -861,32 +797,6 @@ performing parallel computations on multicore machines.")
 Disease Ontology.")
     (license license:artistic2.0)))
 
-(define-public r-pasilla
-  (package
-    (name "r-pasilla")
-    (version "1.14.0")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "http://bioconductor.org/packages/release/data/experiment"
-                    "/src/contrib/pasilla_" version ".tar.gz"))
-              (sha256
-               (base32
-                "0h124i2fb2lbj2k48zzf1n7ldqa471bs26fbd9vw50299aqx28x0"))))
-    (build-system r-build-system)
-    (propagated-inputs
-     `(("r-biocstyle" ,r-biocstyle)
-       ("r-dexseq" ,r-dexseq)
-       ("r-knitr" ,r-knitr)
-       ("r-rmarkdown" ,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
-computed for selected genes from RNA-seq data that were presented in the
-article 'Conservation of an RNA regulatory map between Drosophila and mammals'
-by Brooks et al., Genome Research 2011.")
-    (license license:lgpl2.1+)))
-
 (define-public r-pfam-db
   (package
     (name "r-pfam-db")
@@ -995,6 +905,56 @@ All datasets are restricted to protein coding genes.")
 from Illumina 450k methylation arrays.")
     (license license:artistic2.0)))
 
+(define-public r-genelendatabase
+  (package
+    (name "r-genelendatabase")
+    (version "1.18.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "geneLenDataBase" version 'experiment))
+       (sha256
+        (base32
+         "03gm4pvsfascx7kjg0jycpf4f572mja68wwmwigs390vbmawyb4a"))))
+    (properties
+     `((upstream-name . "geneLenDataBase")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-rtracklayer" ,r-rtracklayer)
+       ("r-genomicfeatures" ,r-genomicfeatures)))
+    (home-page "https://bioconductor.org/packages/geneLenDataBase/")
+    (synopsis "Lengths of mRNA transcripts for a number of genomes")
+    (description
+     "This package provides the lengths of mRNA transcripts for a number of
+genomes and gene ID formats, largely based on the UCSC table browser.")
+    (license license:lgpl2.0+)))
+
+(define-public r-pasilla
+  (package
+    (name "r-pasilla")
+    (version "1.14.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "http://bioconductor.org/packages/release/data/experiment"
+                    "/src/contrib/pasilla_" version ".tar.gz"))
+              (sha256
+               (base32
+                "0h124i2fb2lbj2k48zzf1n7ldqa471bs26fbd9vw50299aqx28x0"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-biocstyle" ,r-biocstyle)
+       ("r-dexseq" ,r-dexseq)
+       ("r-knitr" ,r-knitr)
+       ("r-rmarkdown" ,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
+computed for selected genes from RNA-seq data that were presented in the
+article 'Conservation of an RNA regulatory map between Drosophila and mammals'
+by Brooks et al., Genome Research 2011.")
+    (license license:lgpl2.1+)))
+
 (define-public r-hsmmsinglecell
   (package
     (name "r-hsmmsinglecell")
@@ -1071,62 +1031,31 @@ examples' of Affymetrix data, unlike the artificial examples included in the
 package @code{affy}.")
     (license license:gpl2+)))
 
-(define-public r-coverageview
+(define-public r-gagedata
   (package
-    (name "r-coverageview")
-    (version "1.26.0")
-    (source (origin
-              (method url-fetch)
-              (uri (bioconductor-uri "CoverageView" version))
-              (sha256
-               (base32
-                "1fcz7pkffz5l3jdxb9glji2zdmr6nx67h6vfpr2yi8n3slg2hrrj"))))
+    (name "r-gagedata")
+    (version "2.28.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "gageData" version 'experiment))
+       (sha256
+        (base32 "16lmnvmbykvbdgwyx7r2jc217gb9nidn81860v5kri99g97j4jdn"))))
+    (properties `((upstream-name . "gageData")))
     (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)))
-    (home-page "https://bioconductor.org/packages/CoverageView/")
-    (synopsis "Coverage visualization package for R")
-    (description "This package provides a framework for the visualization of
-genome coverage profiles.  It can be used for ChIP-seq experiments, but it can
-be also used for genome-wide nucleosome positioning experiments or other
-experiment types where it is important to have a framework in order to inspect
-how the coverage distributed across the genome.")
-    (license license:artistic2.0)))
-
-(define-public r-cummerbund
-  (package
-   (name "r-cummerbund")
-   (version "2.30.0")
-   (source (origin
-             (method url-fetch)
-             (uri (bioconductor-uri "cummeRbund" version))
-             (sha256
-              (base32
-               "1av7yfxcq1wwbqfqcz7caiz5kf6kg5wq9qcg5v6yccihclzwvxjc"))))
-   (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)))
-   (home-page "https://bioconductor.org/packages/cummeRbund/")
-   (synopsis "Analyze Cufflinks high-throughput sequencing data")
-   (description "This package allows for persistent storage, access,
-exploration, and manipulation of Cufflinks high-throughput sequencing
-data.  In addition, provides numerous plotting functions for commonly
-used visualizations.")
-   (license license:artistic2.0)))
+    (home-page "https://bioconductor.org/packages/gageData")
+    (synopsis "Auxillary data for gage package")
+    (description
+     "This is a supportive data package for the software package @code{gage}.
+However, the data supplied here are also useful for gene set or pathway
+analysis or microarray data analysis in general.  In this package, we provide
+two demo microarray dataset: GSE16873 (a breast cancer dataset from GEO) and
+BMP6 (originally published as an demo dataset for GAGE, also registered as
+GSE13604 in GEO).  This package also includes commonly used gene set data based
+on KEGG pathways and GO terms for major research species, including human,
+mouse, rat and budding yeast.  Mapping data between common gene IDs for budding
+yeast are also included.")
+    (license license:gpl2+)))
 
 (define-public r-curatedtcgadata
   (package
@@ -1167,14 +1096,14 @@ across the entire multi-'omics experiment.")
 (define-public r-biocversion
   (package
     (name "r-biocversion")
-    (version "3.11.1")
+    (version "3.12.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "BiocVersion" version))
        (sha256
         (base32
-         "1rrzx3dqds0jlj1bmjc744wiamb2hssbh3jfxz1s9jp4cvnwrpmz"))))
+         "1cj9swyf4zbkdq45bhw0kymh2aghkwimxjlfj5r2j7kdiyh6n3rk"))))
     (properties `((upstream-name . "BiocVersion")))
     (build-system r-build-system)
     (home-page "https://bioconductor.org/packages/BiocVersion/")
@@ -1187,13 +1116,13 @@ of Bioconductor.")
 (define-public r-biocgenerics
   (package
     (name "r-biocgenerics")
-    (version "0.34.0")
+    (version "0.36.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "BiocGenerics" version))
               (sha256
                (base32
-                "15nvqyh2gx5zkn1krbs5c4rhw5642bijdfsf2rgic70gzr05cksk"))))
+                "1y9pgangz2f0n9v3zj8brz8bv7a1yjsncdnd5h1l7zv0c0j9fh9q"))))
     (properties
      `((upstream-name . "BiocGenerics")))
     (build-system r-build-system)
@@ -1204,17 +1133,200 @@ of Bioconductor.")
 packages.")
     (license license:artistic2.0)))
 
+(define-public r-coverageview
+  (package
+    (name "r-coverageview")
+    (version "1.28.0")
+    (source (origin
+              (method url-fetch)
+              (uri (bioconductor-uri "CoverageView" version))
+              (sha256
+               (base32
+                "1k89gzqhd8ca8s9gk5bfzringnc5nayqbwzwwy35fls1cg96qmsj"))))
+    (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)))
+    (home-page "https://bioconductor.org/packages/CoverageView/")
+    (synopsis "Coverage visualization package for R")
+    (description "This package provides a framework for the visualization of
+genome coverage profiles.  It can be used for ChIP-seq experiments, but it can
+be also used for genome-wide nucleosome positioning experiments or other
+experiment types where it is important to have a framework in order to inspect
+how the coverage distributed across the genome.")
+    (license license:artistic2.0)))
+
+(define-public r-cummerbund
+  (package
+   (name "r-cummerbund")
+   (version "2.32.0")
+   (source (origin
+             (method url-fetch)
+             (uri (bioconductor-uri "cummeRbund" version))
+             (sha256
+              (base32
+               "1x7rby50api1c66al6a0i92q82ydjmh3h8l2k7hj0ffpn8c5pdgj"))))
+   (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)))
+   (home-page "https://bioconductor.org/packages/cummeRbund/")
+   (synopsis "Analyze Cufflinks high-throughput sequencing data")
+   (description "This package allows for persistent storage, access,
+exploration, and manipulation of Cufflinks high-throughput sequencing
+data.  In addition, provides numerous plotting functions for commonly
+used visualizations.")
+   (license license:artistic2.0)))
+
+(define-public r-bluster
+  (package
+   (name "r-bluster")
+   (version "1.0.0")
+   (source (origin
+            (method url-fetch)
+            (uri (bioconductor-uri "bluster" version))
+            (sha256
+             (base32
+              "0izrf82m5znyrgai5y5jss4k2brabh4ajxdvnlwwc92l5bw7jp61"))))
+   (properties `((upstream-name . "bluster")))
+   (build-system r-build-system)
+   (propagated-inputs
+    `(("r-biocneighbors" ,r-biocneighbors)
+      ("r-biocparallel" ,r-biocparallel)
+      ("r-igraph" ,r-igraph)
+      ("r-matrix" ,r-matrix)
+      ("r-rcpp" ,r-rcpp)
+      ("r-s4vectors" ,r-s4vectors)))
+   (native-inputs
+    `(("r-knitr" ,r-knitr)))
+   (home-page "https://bioconductor.org/packages/bluster")
+   (synopsis "Clustering algorithms for Bioconductor")
+   (description"This package wraps common clustering algorithms in an easily
+extended S4 framework.  Backends are implemented for hierarchical, k-means
+and graph-based clustering.  Several utilities are also provided to compare
+and evaluate clustering results.")
+   (license license:gpl3)))
+
+(define-public r-ideoviz
+  (package
+    (name "r-ideoviz")
+    (version "1.26.0")
+    (source (origin
+              (method url-fetch)
+              (uri (bioconductor-uri "IdeoViz" version))
+              (sha256
+               (base32
+                "1k5c0skr6pvpcvkak9f0a088w5wsx4fl3jb9a76gyyni4nkj7djq"))))
+    (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)))
+    (home-page "https://bioconductor.org/packages/IdeoViz/")
+    (synopsis "Plots data along a chromosomal ideogram")
+    (description "This package provides functions to plot data associated with
+arbitrary genomic intervals along chromosomal ideogram.")
+    (license license:gpl2)))
+
+;; This is a CRAN package, but it depends on r-bsgenome-hsapiens-ucsc-hg19
+;; from Bioconductor.
+(define-public r-deconstructsigs
+  (package
+    (name "r-deconstructsigs")
+    (version "1.8.0")
+    (source (origin
+              (method url-fetch)
+              (uri (cran-uri "deconstructSigs" version))
+              (sha256
+               (base32
+                "014x0nb23jb98666kaav2phkvmkr38pi38jv0dqd4jv7zp0gdf1a"))))
+    (properties
+     `((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)))
+    (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
+fraction of mutations in each of 96 trinucleotide contexts and identifies
+the weighted combination of published signatures that, when summed, most
+closely reconstructs the mutational profile.")
+    (license license:gpl2+)))
+
+;; This is a CRAN package, but it depends on Bioconductor packages.
+(define-public r-nmf
+  (package
+    (name "r-nmf")
+    (version "0.23.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "NMF" version))
+       (sha256
+        (base32
+         "0ls7q9yc9l1z10jphq5a11wkfgcxc3gm3sfjj376zx3vnc0wl30g"))))
+    (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)))
+    (home-page "http://renozao.github.io/NMF")
+    (synopsis "Algorithms and framework for nonnegative matrix factorization")
+    (description
+     "This package provides a framework to perform Non-negative Matrix
+Factorization (NMF).  The package implements a set of already published
+algorithms and seeding methods, and provides a framework to test, develop and
+plug new or custom algorithms.  Most of the built-in algorithms have been
+optimized in C++, and the main interface function provides an easy way of
+performing parallel computations on multicore machines.")
+    (license license:gpl2+)))
+
 (define-public r-affycomp
   (package
     (name "r-affycomp")
-    (version "1.64.0")
+    (version "1.66.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "affycomp" version))
        (sha256
         (base32
-         "0zg8dshas5b2ny4pnxxxqihnr4l20666ivrgglb939a23mplgps0"))))
+         "106gz4rami04r0ffc7rxkrv92s3yrcnlqnyykd5s8lrkndbihrpk"))))
     (properties `((upstream-name . "affycomp")))
     (build-system r-build-system)
     (propagated-inputs `(("r-biobase" ,r-biobase)))
@@ -1228,14 +1340,14 @@ measures for Affymetrix Oligonucleotide Arrays.")
 (define-public r-affycompatible
   (package
     (name "r-affycompatible")
-    (version "1.48.0")
+    (version "1.50.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "AffyCompatible" version))
        (sha256
         (base32
-         "0394sr4spafhfypjsafwjr0y0zsgv52ajdcyvsmkdk7375898lqd"))))
+         "0pcs51miy45bky26i1d4iarbjh569gssb5g4fr26bzgjmq19yl7x"))))
     (properties
      `((upstream-name . "AffyCompatible")))
     (build-system r-build-system)
@@ -1256,14 +1368,14 @@ Command Console} (AGCC)-compatible sample annotation files.")
 (define-public r-affycontam
   (package
     (name "r-affycontam")
-    (version "1.46.0")
+    (version "1.48.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "affyContam" version))
        (sha256
         (base32
-         "1dh5c3blk2dl9kg13y6snplnx61x2f9hvp5lc7jmg25xk916517i"))))
+         "0pi5fll5868sb80vb9kbymz6gkjv58f0abk6zwn407cnyjhr342b"))))
     (properties `((upstream-name . "affyContam")))
     (build-system r-build-system)
     (propagated-inputs
@@ -1281,14 +1393,14 @@ problems in CEL-level data to help evaluate performance of quality metrics.")
 (define-public r-affycoretools
   (package
     (name "r-affycoretools")
-    (version "1.60.1")
+    (version "1.62.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "affycoretools" version))
        (sha256
         (base32
-         "0cnb54b3kmg9rnycvaz949bdali9n98qzrw7gwka6abmg1lv232s"))))
+         "0jacgwylg7wjw3xk3ga2sb1wkdklm5glamhbmqgvzm5kdjnl0rv0"))))
     (properties `((upstream-name . "affycoretools")))
     (build-system r-build-system)
     (propagated-inputs
@@ -1323,14 +1435,14 @@ to streamline the more common analyses that a Biostatistician might see.")
 (define-public r-affxparser
   (package
     (name "r-affxparser")
-    (version "1.60.0")
+    (version "1.62.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "affxparser" version))
        (sha256
         (base32
-         "0d4hq1w0a3dm4bg9qsv7wqrbv2y7b9gllxfmnqs9n2nnwmvgi8yq"))))
+         "13h4iwskvgwgxid9f60gzb1zndgbhdlbn9ixv5waihy1jkcbn24p"))))
     (properties `((upstream-name . "affxparser")))
     (build-system r-build-system)
     (home-page "https://github.com/HenrikBengtsson/affxparser")
@@ -1351,21 +1463,21 @@ structure.")
 (define-public r-annotate
   (package
     (name "r-annotate")
-    (version "1.66.0")
+    (version "1.68.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "annotate" version))
        (sha256
         (base32
-         "1ivszqknryq6n5a85z8zj12fvgcs6zz3zlza8q08pl6cs4m5rm4w"))))
+         "1rql591x56532m8n4axdkfkhkbcsz5hfrf7271s0lmkvy84i7z6l"))))
     (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-httr" ,r-httr)
        ("r-xml" ,r-xml)
        ("r-xtable" ,r-xtable)))
     (home-page
@@ -1378,14 +1490,14 @@ microarrays.")
 (define-public r-hpar
   (package
     (name "r-hpar")
-    (version "1.30.0")
+    (version "1.32.1")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "hpar" version))
        (sha256
         (base32
-         "1jq0qw7wq3426cp004divywjm3ryixkykcmwlhrri13agz6rx3r9"))))
+         "0h10b0fyblpsnxj60rpbk99z7snrkkb5jssmf0v27s6d445jq2zr"))))
     (build-system r-build-system)
     (native-inputs
      `(("r-knitr" ,r-knitr)))
@@ -1398,14 +1510,14 @@ the Human Protein Atlas project.")
 (define-public r-regioner
   (package
     (name "r-regioner")
-    (version "1.20.1")
+    (version "1.22.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "regioneR" version))
        (sha256
         (base32
-         "0bzjwzj5mvb49wgvs3gd3jfpm7s0zfkca763i65i7m994lgvz33c"))))
+         "0c2khfyrgy3y68cj6b07s91hplabbj70xwdgwrf2bsd9h6gknjdi"))))
     (properties `((upstream-name . "regioneR")))
     (build-system r-build-system)
     (propagated-inputs
@@ -1429,14 +1541,14 @@ region sets and other genomic features.")
 (define-public r-reportingtools
   (package
     (name "r-reportingtools")
-    (version "2.28.0")
+    (version "2.30.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "ReportingTools" version))
        (sha256
         (base32
-         "1ig1h224silbdbdr0j9j9sysp9l9dzpcsjzn8jp57h3gh4pdqbfx"))))
+         "0gkshdhx44yjffqf1xmvik7j5hlhszp1n9ckanaws9ky3iia8j31"))))
     (properties
      `((upstream-name . "ReportingTools")))
     (build-system r-build-system)
@@ -1479,14 +1591,14 @@ browser.")
 (define-public r-geneplotter
   (package
     (name "r-geneplotter")
-    (version "1.66.0")
+    (version "1.68.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "geneplotter" version))
        (sha256
         (base32
-         "1y494da1llmrvn3qm7akwgwjazvpffabi8llw3fbday14cay1br5"))))
+         "1f8nr60n1nig1gdy85wqdhpzxvp9r4chygxm8xpy882mdvfv6rqx"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-annotate" ,r-annotate)
@@ -1504,14 +1616,14 @@ browser.")
 (define-public r-oligoclasses
   (package
     (name "r-oligoclasses")
-    (version "1.50.0")
+    (version "1.52.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "oligoClasses" version))
        (sha256
         (base32
-         "05jy9qz3ir4maxackr1xqlfi1czhy1qd22wwibjdhfh5dp534cpn"))))
+         "19p6h0cgnma5md5mm9bn6rxfhr0a9znljgdbvsqybms6asvh18gy"))))
     (properties `((upstream-name . "oligoClasses")))
     (build-system r-build-system)
     (propagated-inputs
@@ -1539,14 +1651,14 @@ packages.")
 (define-public r-oligo
   (package
     (name "r-oligo")
-    (version "1.52.0")
+    (version "1.54.1")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "oligo" version))
        (sha256
         (base32
-         "102szyiicws4c6l3k282236ml1m1vl9zmars4q1kdjfnvsyclfc4"))))
+         "0cpfkvxpni7an361li0k0qlfcraj7z9zv71r25dbly5kp3dql7k3"))))
     (properties `((upstream-name . "oligo")))
     (build-system r-build-system)
     (inputs `(("zlib" ,zlib)))
@@ -1575,14 +1687,14 @@ Affymetrix (CEL files) and NimbleGen arrays (XYS files).")
 (define-public r-qvalue
   (package
     (name "r-qvalue")
-    (version "2.20.0")
+    (version "2.22.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "qvalue" version))
        (sha256
         (base32
-         "1hndmdr9niagbr4ry0vbhffvjzjg9im27kdbn0sa774k6r5b4z3f"))))
+         "0xbww16lz0k2p4mmq1aqd7iz7d8rvzgw1gm55jy6xbx19ymj64i5"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-ggplot2" ,r-ggplot2)
@@ -1603,32 +1715,110 @@ problems in genomics, brain imaging, astrophysics, and data mining.")
     ;; Any version of the LGPL.
     (license license:lgpl3+)))
 
+(define r-rcppnumerical
+  (package
+   (name "r-rcppnumerical")
+   (version "0.4-0")
+   (source (origin
+            (method url-fetch)
+            (uri (cran-uri "RcppNumerical" version))
+            (sha256
+             (base32
+              "1a92fql6mijhnr1kxkcxwivf95pk9lhgmhzkshs51h0ybfv5krik"))))
+   (properties `((upstream-name . "RcppNumerical")))
+   (build-system r-build-system)
+   (propagated-inputs
+    `(("r-rcpp" ,r-rcpp)
+      ("r-rcppeigen" ,r-rcppeigen)))
+   (native-inputs
+    `(("r-knitr" ,r-knitr)))
+   (home-page "https://github.com/yixuan/RcppNumerical")
+   (synopsis "Rcpp integration for numerical computing libraries")
+   (description "This package provides a collection of open source libraries
+for numerical computing (numerical integration, optimization, etc.) and their
+integration with @code{Rcpp}.")
+   (license license:gpl2+)))
+
+(define-public r-apeglm
+  (package
+   (name "r-apeglm")
+   (version "1.12.0")
+   (source (origin
+            (method url-fetch)
+            (uri (bioconductor-uri "apeglm" version))
+            (sha256
+             (base32
+              "0pix1fhxk2q89p2745fgsmxwics9rf10l392qhw3rw6v6ynhims2"))))
+   (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)))
+   (home-page "https://bioconductor.org/packages/apeglm")
+   (synopsis "Approximate posterior estimation for GLM coefficients")
+   (description "This package provides Bayesian shrinkage estimators for
+effect sizes for a variety of GLM models, using approximation of the
+posterior for individual coefficients.")
+   (license license:gpl2)))
+
+(define-public r-greylistchip
+  (package
+   (name "r-greylistchip")
+   (version "1.22.0")
+   (source (origin
+            (method url-fetch)
+            (uri (bioconductor-uri "GreyListChIP" version))
+            (sha256
+             (base32
+              "1d1yvza1aw3vs3di6mrra5l52ig0p9bpzprrqvknjaz5i4yb8ma6"))))
+   (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)))
+   (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
+signal in the input, that lead to spurious peaks during peak calling.")
+   (license license:artistic2.0)))
+
 (define-public r-diffbind
   (package
     (name "r-diffbind")
-    (version "2.16.0")
+    (version "3.0.8")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "DiffBind" version))
        (sha256
         (base32
-         "1mwqgljya1c7r2dfrdds3nswn9bn1l3ak1wavbpv4lbv3nkmykn5"))))
+         "11svdfjp4faswrmzwkryzhd0ji2pl9vwsd35lvbfjgakbpxnyn8a"))))
     (properties `((upstream-name . "DiffBind")))
     (build-system r-build-system)
-    (inputs
-     `(("zlib" ,zlib)))
     (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-edger" ,r-edger)
        ("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)
@@ -1684,14 +1874,14 @@ processing to visualization and annotation.")
 (define-public r-multtest
   (package
     (name "r-multtest")
-    (version "2.44.0")
+    (version "2.46.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "multtest" version))
        (sha256
         (base32
-         "12li7nzzygm3sjfx472095irqpawixk48d0k591wlnrms6sxchx2"))))
+         "06vixd81nh3nxrc6km73p7c4bwln1zm39fa9gp7gj272vsxkx53q"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-survival" ,r-survival)
@@ -1722,13 +1912,13 @@ expressed genes in DNA microarray experiments.")
 (define-public r-graph
   (package
     (name "r-graph")
-    (version "1.66.0")
+    (version "1.68.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "graph" version))
               (sha256
                (base32
-                "15v0nx9gzpszmdn5lil1s1y8qfmsirlznh56wcyqq4sxwjbyjn9g"))))
+                "0wr7j2pasvi3srvg9z3n034ljk8mldcixny6b3kmqbqm8dqy9py4"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-biocgenerics" ,r-biocgenerics)))
@@ -1762,6 +1952,33 @@ expressed genes in DNA microarray experiments.")
 fitting of some classes of graphical Markov models.")
     (license license:gpl2+)))
 
+;; This is a CRAN package, but it depends on a Bioconductor package, r-graph.
+(define-public r-perfmeas
+  (package
+    (name "r-perfmeas")
+    (version "1.2.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "PerfMeas" version))
+       (sha256
+        (base32
+         "1x7ancmb41zd1js24rx94plgbssyc71z2bvpic6mg34xjkwdjw93"))))
+    (properties `((upstream-name . "PerfMeas")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-graph" ,r-graph)
+       ("r-limma" ,r-limma)
+       ("r-rbgl" ,r-rbgl)))
+    (home-page "https://cran.r-project.org/web/packages/PerfMeas/")
+    (synopsis "Performance measures for ranking and classification tasks")
+    (description
+     "This package implements different performance measures for
+classification and ranking tasks.  @dfn{Area under curve} (AUC), precision at
+a given recall, F-score for single and multiple classes are available.")
+    (license license:gpl2+)))
+
+;; This is a CRAN package, but it depends on a Bioconductor package.
 (define-public r-codedepends
   (package
     (name "r-codedepends")
@@ -1793,36 +2010,31 @@ determining dependencies between variables, code improvement suggestions.")
 (define-public r-chippeakanno
   (package
     (name "r-chippeakanno")
-    (version "3.22.2")
+    (version "3.24.1")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "ChIPpeakAnno" version))
        (sha256
         (base32
-         "199mlg0gwjy39afyk0ah6lzcm759bzxla4hgcajj0ay9jiibjqpa"))))
+         "0qdkwjv8s46d1kmgg2chijv7yzy9sv49kiks18w8x2z89prn15gj"))))
     (properties `((upstream-name . "ChIPpeakAnno")))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-annotationdbi" ,r-annotationdbi)
-       ("r-biobase" ,r-biobase)
        ("r-biocgenerics" ,r-biocgenerics)
-       ("r-biocmanager" ,r-biocmanager)
        ("r-biomart" ,r-biomart)
        ("r-biostrings" ,r-biostrings)
-       ("r-bsgenome" ,r-bsgenome)
        ("r-dbi" ,r-dbi)
-       ("r-delayedarray" ,r-delayedarray)
        ("r-ensembldb" ,r-ensembldb)
        ("r-genomeinfodb" ,r-genomeinfodb)
        ("r-genomicalignments" ,r-genomicalignments)
        ("r-genomicfeatures" ,r-genomicfeatures)
        ("r-genomicranges" ,r-genomicranges)
-       ("r-go-db" ,r-go-db)
+       ("r-ggplot2" ,r-ggplot2)
        ("r-graph" ,r-graph)
-       ("r-idr" ,r-idr)
        ("r-iranges" ,r-iranges)
-       ("r-limma" ,r-limma)
+       ("r-keggrest" ,r-keggrest)
        ("r-matrixstats" ,r-matrixstats)
        ("r-multtest" ,r-multtest)
        ("r-rbgl" ,r-rbgl)
@@ -1830,7 +2042,6 @@ determining dependencies between variables, code improvement suggestions.")
        ("r-rsamtools" ,r-rsamtools)
        ("r-rtracklayer" ,r-rtracklayer)
        ("r-s4vectors" ,r-s4vectors)
-       ("r-seqinr" ,r-seqinr)
        ("r-summarizedexperiment" ,r-summarizedexperiment)
        ("r-venndiagram" ,r-venndiagram)))
     (native-inputs
@@ -1848,15 +2059,42 @@ for finding the peaks with bi-directional promoters with summary statistics
 enrichedGO (addGeneIDs).")
     (license license:gpl2+)))
 
+(define-public r-matrixgenerics
+  (package
+   (name "r-matrixgenerics")
+   (version "1.2.0")
+   (source (origin
+            (method url-fetch)
+            (uri (bioconductor-uri "MatrixGenerics" version))
+            (sha256
+             (base32
+              "1a3sw79185d6rld3wlrynkzcbp754a7jkracrmvn0ra964ia8zvc"))))
+   (properties
+    `((upstream-name . "MatrixGenerics")))
+   (build-system r-build-system)
+   (propagated-inputs
+    `(("r-matrixstats" ,r-matrixstats)))
+   (home-page "https://bioconductor.org/packages/MatrixGenerics")
+   (synopsis "S4 generic summary statistic functions for matrix-like objects")
+   (description
+    "This package provides S4 generic functions modeled after the
+@code{matrixStats} API for alternative matrix implementations.  Packages with
+alternative matrix implementation can depend on this package and implement the
+generic functions that are defined here for a useful set of row and column
+summary statistics.  Other package developers can import this package and
+handle a different matrix implementations without worrying about
+incompatibilities.")
+   (license license:artistic2.0)))
+
 (define-public r-marray
   (package
     (name "r-marray")
-    (version "1.66.0")
+    (version "1.68.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "marray" version))
               (sha256
-               (base32 "1sym3nis5qzg05b2in83xr019mvz8czy8qvispc0hzsq42yng6kd"))))
+               (base32 "1kkgv166gzvlj8p58vzam3hcaz8mypi3hhpdsjhaszwg6nav4ray"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-limma" ,r-limma)))
@@ -1870,12 +2108,12 @@ normalization and quality checking.")
 (define-public r-cghbase
   (package
    (name "r-cghbase")
-   (version "1.48.0")
+   (version "1.50.0")
    (source (origin
             (method url-fetch)
             (uri (bioconductor-uri "CGHbase" version))
             (sha256
-             (base32 "0gfqqa9rs5hid53ihlky88qndgrwxxz0s6j7s505f660dd5nzlkf"))))
+             (base32 "10zhjmls3f63cj0bnywjb97zhrj7x3xsq6yjhvf5cclxc4kcrcx4"))))
    (properties `((upstream-name . "CGHbase")))
    (build-system r-build-system)
    (propagated-inputs
@@ -1890,12 +2128,12 @@ the @code{arrayCGH} packages.")
 (define-public r-cghcall
   (package
    (name "r-cghcall")
-   (version "2.50.0")
+   (version "2.52.0")
    (source (origin
             (method url-fetch)
             (uri (bioconductor-uri "CGHcall" version))
             (sha256
-             (base32 "1dz6sag8khl18vkb97b5w6fk6k9s7s9xxnc467dd3bmhmajlmrrg"))))
+             (base32 "1a6k87xfm79wnsc30k5aziakv51h4dd9zqw81q8bd72hc3fpz8ba"))))
    (properties `((upstream-name . "CGHcall")))
    (build-system r-build-system)
    (propagated-inputs
@@ -1913,12 +2151,12 @@ the @code{arrayCGH} packages.")
 (define-public r-qdnaseq
   (package
     (name "r-qdnaseq")
-    (version "1.24.0")
+    (version "1.26.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "QDNAseq" version))
               (sha256
-               (base32 "1ji9pl2r1idyj3qzggj7qd2kqx31i6b3igwk2hqjb8qzkyb37p86"))))
+               (base32 "1njka1ldaj12id3m2z8ghlrm2lg0n5pxsxyv5gpjnsiabnnaw6ph"))))
     (properties `((upstream-name . "QDNAseq")))
     (build-system r-build-system)
     (propagated-inputs
@@ -1946,14 +2184,14 @@ respectively.")
 (define-public r-bayseq
   (package
     (name "r-bayseq")
-    (version "2.22.0")
+    (version "2.24.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "baySeq" version))
        (sha256
         (base32
-         "1x0d34pqv9s15nmmxsfbw0ycxbf5348mi30ahycarjkjsyzycymj"))))
+         "1496inlw0x4mfy3g2v7j9ips96sf7576ydnfn6hvn2m6rz2ls215"))))
     (properties `((upstream-name . "baySeq")))
     (build-system r-build-system)
     (propagated-inputs
@@ -1972,14 +2210,14 @@ more complex hypotheses) via empirical Bayesian methods.")
 (define-public r-chipcomp
   (package
     (name "r-chipcomp")
-    (version "1.18.0")
+    (version "1.20.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "ChIPComp" version))
        (sha256
         (base32
-         "0780kj9vbzdhf2jkfb1my8m58pcdwk6jqw6zfng82g46jias98cp"))))
+         "0dbypfgys74snmyf982183ilzg6vamfw1d5y0lp5p8zxbffh2xl7"))))
     (properties `((upstream-name . "ChIPComp")))
     (build-system r-build-system)
     (propagated-inputs
@@ -2006,14 +2244,14 @@ datasets.")
 (define-public r-riboprofiling
   (package
     (name "r-riboprofiling")
-    (version "1.18.0")
+    (version "1.20.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "RiboProfiling" version))
        (sha256
         (base32
-         "0s30m96dbbrzbywz3wai5ar0nsshb16lq101nyl20w1bk7sk2bha"))))
+         "112071w7aw7cwckipq0dll1lssl7pwafma4v9jj9sx12rjcj57xg"))))
     (properties `((upstream-name . "RiboProfiling")))
     (build-system r-build-system)
     (propagated-inputs
@@ -2047,14 +2285,14 @@ assessment, principal component analysis on codon coverage.")
 (define-public r-riboseqr
   (package
     (name "r-riboseqr")
-    (version "1.22.0")
+    (version "1.24.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "riboSeqR" version))
        (sha256
         (base32
-         "04a4dkmacd6xy55m84amxa0fspbc4kgg9r9k7bc3wrxswk77ccxk"))))
+         "07i64gch14rsbjlfv17s689wzlqbi7hcqhcw21pp6cw8bvhvd5xr"))))
     (properties `((upstream-name . "riboSeqR")))
     (build-system r-build-system)
     (propagated-inputs
@@ -2073,16 +2311,16 @@ parsing of genetic sequencing data from ribosome profiling experiments.")
     (license license:gpl3)))
 
 (define-public r-interactionset
-  (package
+  (package                              ;BROKEN
     (name "r-interactionset")
-    (version "1.16.0")
+    (version "1.18.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "InteractionSet" version))
        (sha256
         (base32
-         "1nsivm9j0mzkfhwqsa2y9gxxdbaplg4z8vn5dfvls3nrihnqpk4v"))))
+         "14lp23b298wr3r7ggcfvas0xlf1866cpla0rv7dz589f50z6bj31"))))
     (properties
      `((upstream-name . "InteractionSet")))
     (build-system r-build-system)
@@ -2109,14 +2347,14 @@ experiments.")
 (define-public r-genomicinteractions
   (package
     (name "r-genomicinteractions")
-    (version "1.22.0")
+    (version "1.24.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "GenomicInteractions" version))
        (sha256
         (base32
-         "0fg66v31nfajb40da6gxpigm2z11ywkdijs7npvc1mr62ynx9qmy"))))
+         "0ad0a5cadchx1rkqj4cc8k0y1zf34jgp1406hvik5zabr7xijkbd"))))
     (properties
      `((upstream-name . "GenomicInteractions")))
     (build-system r-build-system)
@@ -2150,14 +2388,14 @@ information and producing various plots and statistics.")
 (define-public r-ctc
   (package
     (name "r-ctc")
-    (version "1.62.0")
+    (version "1.64.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "ctc" version))
        (sha256
         (base32
-         "0lv126xj092hps3f3dsv7hasdyy26wcx8npl9idq2l4h9addk6v6"))))
+         "1nwlphbfba3w8ixck02k5c84qm4flnp9fd68li0jn5a08qi9gmyp"))))
     (build-system r-build-system)
     (propagated-inputs `(("r-amap" ,r-amap)))
     (home-page "https://bioconductor.org/packages/ctc/")
@@ -2170,14 +2408,14 @@ trees and clusters to other programs.")
 (define-public r-goseq
   (package
     (name "r-goseq")
-    (version "1.40.0")
+    (version "1.42.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "goseq" version))
        (sha256
         (base32
-         "1iyri4rrchzsn8p6wjxr4k30d3cqx3km5mnd9hkfm5d0s7fjzlym"))))
+         "18fs3m4kl3zahn42j20rjvxy83irscgqx0dvid7va4majvsib509"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-annotationdbi" ,r-annotationdbi)
@@ -2196,20 +2434,24 @@ defined categories which are over/under represented in RNA-seq data.")
 (define-public r-glimma
   (package
     (name "r-glimma")
-    (version "1.16.0")
+    (version "2.0.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "Glimma" version))
        (sha256
         (base32
-         "1bxfgwjqb9p400a5a5q6p17kcnl3ddz090llihkfih9kyxii9n4y"))))
+         "0gy30v30lw27frhmw39pzacqzrv2vwj5rsp6gb3yifllrahdiffv"))))
     (properties `((upstream-name . "Glimma")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-edger" ,r-edger)
+     `(("r-deseq2" ,r-deseq2)
+       ("r-edger" ,r-edger)
+       ("r-htmlwidgets" ,r-htmlwidgets)
        ("r-jsonlite" ,r-jsonlite)
-       ("r-s4vectors" ,r-s4vectors)))
+       ("r-limma" ,r-limma)
+       ("r-s4vectors" ,r-s4vectors)
+       ("r-summarizedexperiment" ,r-summarizedexperiment)))
     (native-inputs
      `(("r-knitr" ,r-knitr)))
     (home-page "https://github.com/Shians/Glimma")
@@ -2225,14 +2467,14 @@ information.")
 (define-public r-rots
   (package
     (name "r-rots")
-    (version "1.16.0")
+    (version "1.18.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "ROTS" version))
        (sha256
         (base32
-         "1mqhi1rfiw7mhiyify7vm3w17p7sc76wjda3ak6690hrc3gsm3cm"))))
+         "0qk0gfhgr14g13zlfyf5101b5s8cma7j3r8a92q93h0axy8ka23n"))))
     (properties `((upstream-name . "ROTS")))
     (build-system r-build-system)
     (propagated-inputs
@@ -2249,14 +2491,14 @@ in omics data.")
 (define-public r-plgem
   (package
     (name "r-plgem")
-    (version "1.60.0")
+    (version "1.62.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "plgem" version))
        (sha256
         (base32
-         "1fs5nbjnrm7x23y7d9krq56r1kzxka40ca1rs6sq70mn6syhj90a"))))
+         "039gqwsm1v6q8v8b248nm8g9gnsk379mfx65rbgdmh3chsd8pm8a"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-biobase" ,r-biobase)
@@ -2274,14 +2516,14 @@ genes or proteins in these datasets.")
 (define-public r-inspect
   (package
     (name "r-inspect")
-    (version "1.18.0")
+    (version "1.20.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "INSPEcT" version))
        (sha256
         (base32
-         "1yyglkdc3ww2jzswhcxk9g1imydfm39krl87as5l9fbm7mv3vd4z"))))
+         "1jymvi5mf7vhs58zfh290pacfswgvkw09rmbirmr24kxcgl30483"))))
     (properties `((upstream-name . "INSPEcT")))
     (build-system r-build-system)
     (propagated-inputs
@@ -2321,14 +2563,14 @@ modeling the rates that determines changes in mature mRNA levels.")
 (define-public r-dnabarcodes
   (package
     (name "r-dnabarcodes")
-    (version "1.18.0")
+    (version "1.20.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "DNABarcodes" version))
        (sha256
         (base32
-         "03y39hjpkb05fnawy3k797bph1iydi1blmpgyy4244zjgk6rs5x7"))))
+         "0zzf6xgg6k1gdig8zvpawck2bgmamsc0k43j4pl4xsz9an6dmzbg"))))
     (properties `((upstream-name . "DNABarcodes")))
     (build-system r-build-system)
     (propagated-inputs
@@ -2350,14 +2592,14 @@ demultiplexed, i.e. assigned to their original reference barcode.")
 (define-public r-ruvseq
   (package
     (name "r-ruvseq")
-    (version "1.22.0")
+    (version "1.24.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "RUVSeq" version))
        (sha256
         (base32
-         "0yqs9xgyzw3cwb4l7zjl1cjgbsjp05qrqnwyvh7q81wdp7x5p55x"))))
+         "1anrybyrzpajr5434svyfbaypjai6x0ifsmqvjgimmxq3xqhv0jh"))))
     (properties `((upstream-name . "RUVSeq")))
     (build-system r-build-system)
     (propagated-inputs
@@ -2378,21 +2620,20 @@ samples.")
 (define-public r-biocneighbors
   (package
     (name "r-biocneighbors")
-    (version "1.6.0")
+    (version "1.8.2")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "BiocNeighbors" version))
        (sha256
         (base32
-         "14cyyrwxi82xm5wy6bb1176zg322ll67wjrw9vvi4fhfs1k4wqxy"))))
+         "19gyl917lf5ydy5hgj0hnc388rw5sbj83awav9js2yr2zmbgn4d7"))))
     (properties `((upstream-name . "BiocNeighbors")))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-biocparallel" ,r-biocparallel)
        ("r-matrix" ,r-matrix)
        ("r-rcpp" ,r-rcpp)
-       ("r-rcppannoy" ,r-rcppannoy)
        ("r-rcpphnsw" ,r-rcpphnsw)
        ("r-s4vectors" ,r-s4vectors)))
     (native-inputs
@@ -2411,14 +2652,14 @@ achieved for all methods using the BiocParallel framework.")
 (define-public r-biocsingular
   (package
     (name "r-biocsingular")
-    (version "1.4.0")
+    (version "1.6.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "BiocSingular" version))
        (sha256
         (base32
-         "0368a9xj4cvicqkxmhh12ln46q9gnxla70s1dqrxxfn3b6k525ih"))))
+         "1hczix1h14d19hzcsngqkqqnqkprs41phzlcird8haxnw9bs03ni"))))
     (properties `((upstream-name . "BiocSingular")))
     (build-system r-build-system)
     (propagated-inputs
@@ -2445,14 +2686,14 @@ possible, parallelization is achieved using the BiocParallel framework.")
 (define-public r-destiny
   (package
     (name "r-destiny")
-    (version "3.2.0")
+    (version "3.4.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "destiny" version))
        (sha256
         (base32
-         "0ik5vwxz9cci3glwgb5ff03sfyr4sjcp8ckfymlgmlm6fz8cp21n"))))
+         "1i7f5q02zvpfaxhd76fbw0h1wfgjphyn5hrmrjpvlnv4ardzsir2"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-biobase" ,r-biobase)
@@ -2463,7 +2704,6 @@ possible, parallelization is achieved using the BiocParallel framework.")
        ("r-irlba" ,r-irlba)
        ("r-knn-covertree" ,r-knn-covertree)
        ("r-matrix" ,r-matrix)
-       ("r-nbconvertr" ,r-nbconvertr)
        ("r-pcamethods" ,r-pcamethods)
        ("r-proxy" ,r-proxy)
        ("r-rcpp" ,r-rcpp)
@@ -2490,14 +2730,14 @@ maps.")
 (define-public r-savr
   (package
     (name "r-savr")
-    (version "1.26.0")
+    (version "1.28.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "savR" version))
        (sha256
         (base32
-         "17jdnr47ivblfspr4b32z9fds1fqiiwsi2z6r524g1v4944p8w5a"))))
+         "1vha9b7gndwjzvrzr1hdhv3wc6a1s2n9grxwfd78yb2lkysf4hic"))))
     (properties `((upstream-name . "savR")))
     (build-system r-build-system)
     (propagated-inputs
@@ -2516,14 +2756,14 @@ Viewer (SAV) files, access data, and generate QC plots.")
 (define-public r-chipexoqual
   (package
     (name "r-chipexoqual")
-    (version "1.12.0")
+    (version "1.14.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "ChIPexoQual" version))
        (sha256
         (base32
-         "02rsf1rvm0p6dn18zq2a4hpvpd9m2i5rziyi4zm8j43qvs8xhafp"))))
+         "15r5jgkfwwfqpw4v4q2ddmglm3bfw002nnbnzn1s0v2b1w3bgiag"))))
     (properties `((upstream-name . "ChIPexoQual")))
     (build-system r-build-system)
     (propagated-inputs
@@ -2556,13 +2796,13 @@ sequencing data.")
 (define-public r-copynumber
   (package
     (name "r-copynumber")
-    (version "1.28.0")
+    (version "1.30.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "copynumber" version))
               (sha256
                (base32
-                "1b7v6xijpi2mir49cf83gpadhxm5pnbs6d8q8qga7y06hn9jx6my"))))
+                "00fyfy3kpz33v1hqisd5m5xdazwjmjrfj8ssbf6p9m3am2ar23gm"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-s4vectors" ,r-s4vectors)
@@ -2579,14 +2819,14 @@ penalized least squares regression method.")
 (define-public r-dnacopy
   (package
     (name "r-dnacopy")
-    (version "1.62.0")
+    (version "1.64.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "DNAcopy" version))
        (sha256
         (base32
-         "0jg8lr83drzfs5h73c7mk7x99vj99a2p2s1sqjc4gicn927xvhza"))))
+         "0km5af4iw8a0m6by933lgdi5246jafyfxk6fsqdiwg07v9wxw5hc"))))
     (properties `((upstream-name . "DNAcopy")))
     (build-system r-build-system)
     (native-inputs `(("gfortran" ,gfortran)))
@@ -2679,14 +2919,14 @@ and regression inferences from RNA-sequencing data.")
 (define-public r-ebseq
   (package
     (name "r-ebseq")
-    (version "1.28.0")
+    (version "1.30.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "EBSeq" version))
        (sha256
         (base32
-         "0s9r1xxpfm5794ipjm5a5c8gfxicc6arma6f74aaz8zi5y5q9x5f"))))
+         "1x2489xaqg85v7n3yhqs0nh9ha6dn4m167dkc6akzig4xivwjjny"))))
     (properties `((upstream-name . "EBSeq")))
     (build-system r-build-system)
     (propagated-inputs
@@ -2703,13 +2943,13 @@ gene and isoform level using RNA-seq data")
 (define-public r-karyoploter
   (package
     (name "r-karyoploter")
-    (version "1.14.0")
+    (version "1.16.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "karyoploteR" version))
               (sha256
                (base32
-                "0h0gk4xd95k5phy6qcsv7j931d7gk3p24i2fg4mz5dsk110lpifs"))))
+                "1agw49mckm3g33igqdp9lr8a4ky8nhivaxrs7d00dvzk0diqwdb2"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-annotationdbi" ,r-annotationdbi)
@@ -2732,7 +2972,7 @@ gene and isoform level using RNA-seq data")
     (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
-offers a complete set of functions to plot arbitrary data on them.  It mimicks
+offers a complete set of functions to plot arbitrary data on them.  It mimics
 many R base graphics functions coupling them with a coordinate change function
 automatically mapping the chromosome and data coordinates into the plot
 coordinates.")
@@ -2741,14 +2981,14 @@ coordinates.")
 (define-public r-lpsymphony
   (package
     (name "r-lpsymphony")
-    (version "1.16.0")
+    (version "1.18.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "lpsymphony" version))
        (sha256
         (base32
-         "072ikmd267n18hrj7dip4dp1vb5dinj82p3h95n2jaf04h9hwfn4"))))
+         "0f9qjfv7rp1y3mwscnjz3pph7m40zgz55xcdhyii6k1iw2vyaxx9"))))
     (build-system r-build-system)
     (inputs
      `(("zlib" ,zlib)))
@@ -2771,14 +3011,14 @@ to install interface to SYMPHONY.")
 (define-public r-ihw
   (package
     (name "r-ihw")
-    (version "1.16.0")
+    (version "1.18.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "IHW" version))
        (sha256
         (base32
-         "169ir0k1gygdh1wybwa0drdxnhrdrlyzzy0rkygi7jsirn69m74j"))))
+         "04szg3bj5cjixxcp8j3inmj0fzk2mg8gp2w2b33x0im8ik24qiw0"))))
     (properties `((upstream-name . "IHW")))
     (build-system r-build-system)
     (propagated-inputs
@@ -2803,14 +3043,14 @@ independent of the p-value under the null hypothesis.")
 (define-public r-icobra
   (package
     (name "r-icobra")
-    (version "1.16.0")
+    (version "1.18.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "iCOBRA" version))
        (sha256
         (base32
-         "0cvklagby3i221dlhyb51cciv0b3ch4a8z0wpm67q5n6n3k0cil1"))))
+         "0knqvvfi5y53jk8s2g2bqgxnh2pbdf38676fk7pkdp1r2j6cbi3s"))))
     (properties `((upstream-name . "iCOBRA")))
     (build-system r-build-system)
     (propagated-inputs
@@ -2839,14 +3079,14 @@ interactive exploration of results.")
 (define-public r-mast
   (package
     (name "r-mast")
-    (version "1.14.0")
+    (version "1.16.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "MAST" version))
        (sha256
         (base32
-         "12d0q2fbq9d5jgyccmfv0cghv282s0j86wjfbnjpdf73fdrp6brr"))))
+         "11qr7n9i4masqz0yzikddchyn223m8dy6zv461dly07fd43qi9mn"))))
     (properties `((upstream-name . "MAST")))
     (build-system r-build-system)
     (propagated-inputs
@@ -2874,14 +3114,14 @@ single cell assay data.")
 (define-public r-monocle
   (package
     (name "r-monocle")
-    (version "2.16.0")
+    (version "2.18.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "monocle" version))
        (sha256
         (base32
-         "1vziidavlyhixmx6j7lf29qx8xcjwrc9q3x2f63gcff41q3jf9xd"))))
+         "1k3hwi9aspjy75arigg7i1w7ygf112y12cndibf2bhpz2phzwslx"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-biobase" ,r-biobase)
@@ -2993,14 +3233,14 @@ qPCR data, but could be used with other types as well.")
 (define-public r-noiseq
   (package
     (name "r-noiseq")
-    (version "2.31.0")
+    (version "2.34.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "NOISeq" version))
        (sha256
         (base32
-         "0lg3za0km6v9l6dxigbxx6nsx9y6m3dyzh9srngi53s8387vhj33"))))
+         "08qlavakclgzk345bliam4cfjhsy39n4s6m1biqpq94n9qp00x8f"))))
     (properties `((upstream-name . "NOISeq")))
     (build-system r-build-system)
     (propagated-inputs
@@ -3020,14 +3260,14 @@ assumptions.")
 (define-public r-scdd
   (package
     (name "r-scdd")
-    (version "1.12.0")
+    (version "1.14.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "scDD" version))
        (sha256
         (base32
-         "19q01jksxpv4p26wp2c6faa4fffkjnqlbcds2x955pk35jkqknxx"))))
+         "07l07fq5633ccq5d3l35dm34pwvaqfa3b3qwpn5v5xn99f5hfz0g"))))
     (properties `((upstream-name . "scDD")))
     (build-system r-build-system)
     (propagated-inputs
@@ -3058,14 +3298,14 @@ distributions.")
 (define-public r-scone
   (package
     (name "r-scone")
-    (version "1.12.0")
+    (version "1.14.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "scone" version))
        (sha256
         (base32
-         "12hcmbpncm0l1yxhm3sgkqqfri7s5qc46ikv5qcj8pw5a42rkx3g"))))
+         "1lnyxcrw3kn5gi3n59dwdhkqps58cjxfknsjsj53qz5rv8iiqz73"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-aroma-light" ,r-aroma-light)
@@ -3100,14 +3340,14 @@ high-throughput analyses.")
 (define-public r-geoquery
   (package
     (name "r-geoquery")
-    (version "2.56.0")
+    (version "2.58.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "GEOquery" version))
        (sha256
         (base32
-         "0sap1dsa3k3qpv5z5y3cimxyhbm8qai87gqn3g1w3hwlcqsss92m"))))
+         "1jzhgnd404wkz978vbqzwbgixr7yk98c7s9q1fzlyax4f8l0cpi4"))))
     (properties `((upstream-name . "GEOquery")))
     (build-system r-build-system)
     (propagated-inputs
@@ -3133,14 +3373,14 @@ the bridge between GEO and BioConductor.")
 (define-public r-illuminaio
   (package
     (name "r-illuminaio")
-    (version "0.30.0")
+    (version "0.32.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "illuminaio" version))
        (sha256
         (base32
-         "0i587r1v5aa25w0jm1zvh7spc1gqmvza49i2kv00g1qzj8whq67c"))))
+         "1yqm2fqw5ka7qywbal3p7axlwm1r0wibsr33n5xjma1dl9pi8fay"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-base64" ,r-base64)))
@@ -3154,14 +3394,14 @@ files, including IDAT.")
 (define-public r-siggenes
   (package
     (name "r-siggenes")
-    (version "1.62.0")
+    (version "1.64.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "siggenes" version))
        (sha256
         (base32
-         "0i4y1hgq1ljxkf6sypb6c8yp412a8q5v5z68cx1zrgxnccvp0mfy"))))
+         "08wi2i6pqx06v13533y3mpli5fb637h0xfwcwy67ya9j2ygypv7w"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-biobase" ,r-biobase)
@@ -3180,14 +3420,14 @@ Bayes Analyses of Microarrays} (EBAM).")
 (define-public r-bumphunter
   (package
     (name "r-bumphunter")
-    (version "1.30.0")
+    (version "1.32.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "bumphunter" version))
        (sha256
         (base32
-         "04y6spdx89j3bsq2xniqd3sbfmakwc0klbpzjlp1q2xs9kywr4dq"))))
+         "0hfl820kfxydv5kpgyly7sibv2sp6dqsmc78qm33n81w4z4j0mkk"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-annotationdbi" ,r-annotationdbi)
@@ -3214,14 +3454,14 @@ studies.")
 (define-public r-minfi
   (package
     (name "r-minfi")
-    (version "1.34.0")
+    (version "1.36.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "minfi" version))
        (sha256
         (base32
-         "0bl1sk9syy770d5wqa0k1y0wrs5x8sbj13px1v03v3693pdj081w"))))
+         "1x3ksp6syl54hds7wgm4p9yj4mznhhhhk20ijn3i2jc3k8xqcqfi"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-beanplot" ,r-beanplot)
@@ -3265,14 +3505,14 @@ methylation arrays.")
 (define-public r-methylumi
   (package
     (name "r-methylumi")
-    (version "2.34.0")
+    (version "2.36.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "methylumi" version))
        (sha256
         (base32
-         "0phb2dyndnk9rv79nx246cn1sc9wbzdqqbgl6402knc7dgh799wr"))))
+         "00w5affxzirf6ffiznk33papwwvwsk2zgy6xvsx7iaf5kvnak2nh"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-annotate" ,r-annotate)
@@ -3311,14 +3551,14 @@ and Infinium HD arrays are also included.")
 (define-public r-lumi
   (package
     (name "r-lumi")
-    (version "2.40.0")
+    (version "2.42.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "lumi" version))
        (sha256
         (base32
-         "196izc4mdh8j4f04fsf8cqm99w1inzpwy34kwvhz6zvxj2ywn1i9"))))
+         "19asap8vhm3g8hyvpr8l7mw071dsa1d95wx46lh8m6achffngqv3"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-affy" ,r-affy)
@@ -3350,14 +3590,14 @@ especially Illumina Infinium methylation microarrays.")
 (define-public r-linnorm
   (package
     (name "r-linnorm")
-    (version "2.12.0")
+    (version "2.14.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "Linnorm" version))
        (sha256
         (base32
-         "143hdfswp5sda5al1igrm5gyn7a6mp1j7hjm5jsc300335lm3kgp"))))
+         "1is1kp5av01kqqph16xl7w1dqbyd0q85pgqfv9gqkk8m53635cz3"))))
     (properties `((upstream-name . "Linnorm")))
     (build-system r-build-system)
     (propagated-inputs
@@ -3411,14 +3651,14 @@ evaluation of DEG analysis methods.")
 (define-public r-ioniser
   (package
     (name "r-ioniser")
-    (version "2.12.0")
+    (version "2.14.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "IONiseR" version))
        (sha256
         (base32
-         "05fndlblczabva60gn6h0dijqxyn0wknrv8a925fgc4bn415g31w"))))
+         "0cfa64d3qv881sa9d665rfki91jaz2spg0zfrb24m37948qzk1lx"))))
     (properties `((upstream-name . "IONiseR")))
     (build-system r-build-system)
     (propagated-inputs
@@ -3452,14 +3692,14 @@ surface of a flowcell.")
 (define-public r-gkmsvm
   (package
     (name "r-gkmsvm")
-    (version "0.80.0")
+    (version "0.81.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "gkmSVM" version))
        (sha256
         (base32
-         "0ljcga246ad0ql8x3drvrdsyp0f20mgp3p6lnl79xb76qgfdnm0p"))))
+         "119g5rhc7ffyviz04r04aj5z1g6abnj3ddd01g7db505sdr6lapj"))))
     (properties `((upstream-name . "gkmSVM")))
     (build-system r-build-system)
     (propagated-inputs
@@ -3559,14 +3799,14 @@ peak definition in combination with known profile characteristics.")
 (define-public r-varianttools
   (package
     (name "r-varianttools")
-    (version "1.30.0")
+    (version "1.32.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "VariantTools" version))
        (sha256
         (base32
-         "0g93rljlmhk1d53z0bgi84i2cn5c3r1dpm8id2pv0nk9ncdh3yxx"))))
+         "1im4g9p419mikkh4v585yf5f23d13chy67znk4g2mii2i1cd1c89"))))
     (properties `((upstream-name . "VariantTools")))
     (build-system r-build-system)
     (propagated-inputs
@@ -3599,14 +3839,14 @@ gmapR.")
 (define-public r-heatplus
   (package
     (name "r-heatplus")
-    (version "2.34.0")
+    (version "2.36.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "Heatplus" version))
        (sha256
         (base32
-         "12nd0h8svx7qydv1shk0gdpvnbixf7qi6zh06881wsmxf5s970rw"))))
+         "0vp8y0242k6q07yjk4sg2w7mlk5pgzhjgqkxa79c5ypkyp095a8n"))))
     (properties `((upstream-name . "Heatplus")))
     (build-system r-build-system)
     (propagated-inputs
@@ -3624,14 +3864,14 @@ information about samples and features can be added to the plot.")
 (define-public r-gosemsim
   (package
     (name "r-gosemsim")
-    (version "2.14.0")
+    (version "2.16.1")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "GOSemSim" version))
        (sha256
         (base32
-         "0mg4d8whq90iyl2jjj5dx3kyar17yqn00jvia3b4a8lhmjw8l1hk"))))
+         "1hk1626172scja2gr6axy98czblz0zljiqgqaknsv2xj6frhxcgs"))))
     (properties `((upstream-name . "GOSemSim")))
     (build-system r-build-system)
     (propagated-inputs
@@ -3653,14 +3893,14 @@ sets of GO terms, gene products and gene clusters.")
 (define-public r-anota
   (package
     (name "r-anota")
-    (version "1.36.0")
+    (version "1.38.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "anota" version))
        (sha256
         (base32
-         "1ind5cyq85l63xpqmg2n9rg805s5amh48iiw05zqr8kih6hlilpm"))))
+         "02s061q6dfw1czppqiklb0fz6q0mjyqgxg6926b2dpqpz8hv690x"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-multtest" ,r-multtest)
@@ -3670,7 +3910,7 @@ sets of GO terms, gene products and gene clusters.")
     (description
      "Genome wide studies of translational control is emerging as a tool to
 study various biological conditions.  The output from such analysis is both
-the mRNA level (e.g. cytosolic mRNA level) and the levl of mRNA actively
+the mRNA level (e.g. cytosolic mRNA level) and the level of mRNA actively
 involved in translation (the actively translating mRNA level) for each mRNA.
 The standard analysis of such data strives towards identifying differential
 translational between two or more sample classes - i.e.  differences in
@@ -3684,14 +3924,14 @@ the data set is suitable for such analysis.")
 (define-public r-sigpathway
   (package
     (name "r-sigpathway")
-    (version "1.56.0")
+    (version "1.58.0")
     (source
       (origin
         (method url-fetch)
         (uri (bioconductor-uri "sigPathway" version))
         (sha256
           (base32
-            "0a79sdvag80p7xcdz8mp8wiby36yxmappzycfd2rp36v9drjk0h5"))))
+            "1fkw0ss471pllqxyjyif5lr35cr8sqpx31x0ccjp85lm3blws72l"))))
     (properties `((upstream-name . "sigPathway")))
     (build-system r-build-system)
     (home-page "https://www.pnas.org/cgi/doi/10.1073/pnas.0506577102")
@@ -3706,14 +3946,14 @@ phenotype of interest.")
 (define-public r-fgsea
   (package
     (name "r-fgsea")
-    (version "1.14.0")
+    (version "1.16.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "fgsea" version))
        (sha256
         (base32
-         "0zbjj8al1ps7immxixsn5g8lvbmpmxvqwqbpdgsicxp00gb9bybc"))))
+         "0jmkkayabx3m0lyyc2mxd4vdvv7gv7fbk1r884gplnf2zgsx068n"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-bh" ,r-bh)
@@ -3738,14 +3978,14 @@ to multiple hypothesis correction.")
 (define-public r-dose
   (package
     (name "r-dose")
-    (version "3.14.0")
+    (version "3.16.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "DOSE" version))
        (sha256
         (base32
-         "1j0wcg7w2ns3ag9d272cqlg3j62ag2xnc5gfsjl6g2ij5xkvylb8"))))
+         "149hpf690jls5r5g84sh2hqs10qbqi94syhxfv8n2f800fk7lgy4"))))
     (properties `((upstream-name . "DOSE")))
     (build-system r-build-system)
     (propagated-inputs
@@ -3773,32 +4013,29 @@ data.")
 (define-public r-enrichplot
   (package
     (name "r-enrichplot")
-    (version "1.8.1")
+    (version "1.10.1")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "enrichplot" version))
        (sha256
         (base32
-         "01m3cp717ldfbz5w3yfywvjg6sfjzz7s3vlk7w268lmmcg6g6bz7"))))
+         "0h0455plh8bxnpizgfxij9625ff32rs1a51yzpnrf5hl27xbfkdd"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-annotationdbi" ,r-annotationdbi)
-       ("r-cowplot" ,r-cowplot)
+     `(("r-cowplot" ,r-cowplot)
        ("r-dose" ,r-dose)
-       ("r-europepmc" ,r-europepmc)
        ("r-ggplot2" ,r-ggplot2)
-       ("r-ggplotify" ,r-ggplotify)
        ("r-ggraph" ,r-ggraph)
-       ("r-ggridges" ,r-ggridges)
        ("r-gosemsim" ,r-gosemsim)
-       ("r-gridextra" ,r-gridextra)
        ("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-scatterpie" ,r-scatterpie)
+       ("r-shadowtext" ,r-shadowtext)))
     (native-inputs
      `(("r-knitr" ,r-knitr)))
     (home-page "https://github.com/GuangchuangYu/enrichplot")
@@ -3812,14 +4049,14 @@ All the visualization methods are developed based on ggplot2 graphics.")
 (define-public r-clusterprofiler
   (package
     (name "r-clusterprofiler")
-    (version "3.16.0")
+    (version "3.18.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "clusterProfiler" version))
        (sha256
         (base32
-         "0m7919gzrd2fddb4kcznwpshhab1ha2yppnkxg11zmh40wcdawyi"))))
+         "07xkc515gp9j4axg0qh39ni65mcbjgxmzjh5wxd86w64lz7xh8b9"))))
     (properties
      `((upstream-name . "clusterProfiler")))
     (build-system r-build-system)
@@ -3834,6 +4071,7 @@ All the visualization methods are developed based on ggplot2 graphics.")
        ("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
@@ -3848,14 +4086,14 @@ profiles (GO and KEGG) of gene and gene clusters.")
 (define-public r-mlinterfaces
   (package
     (name "r-mlinterfaces")
-    (version "1.68.0")
+    (version "1.70.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "MLInterfaces" version))
        (sha256
         (base32
-         "0x3mnvb5a6kri4q5w0wfmx02v79my08zhmkaik9pqlprd7y5wynq"))))
+         "1j920h1657rc5agd1vrkzk126npfhw7pzr7p7gwg4i0h0wv25q3r"))))
     (properties `((upstream-name . "MLInterfaces")))
     (build-system r-build-system)
     (propagated-inputs
@@ -3889,14 +4127,14 @@ data in R and Bioconductor containers.")
 (define-public r-annaffy
   (package
     (name "r-annaffy")
-    (version "1.60.0")
+    (version "1.62.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "annaffy" version))
        (sha256
         (base32
-         "1rc9fb83by9jfgwfj2zhhbj93v296blwd8jl2rh7jj200mrpznn4"))))
+         "1szlr33lq98pd3kx6n9l07lhr93swbk6vjpvb2n9f7716k39mi4i"))))
     (build-system r-build-system)
     (arguments
      `(#:phases
@@ -3925,19 +4163,21 @@ It allows searching of biological metadata using various criteria.")
 (define-public r-a4core
   (package
     (name "r-a4core")
-    (version "1.36.0")
+    (version "1.38.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "a4Core" version))
        (sha256
         (base32
-         "1hn9lkaib1bx5n52as882f8zwsln8w40sx8hxbrnimjvgfxrbvnp"))))
+         "13mzhn92kqpbn58zmh96f6frkm85sv9137mldfzaljf6snk0spg2"))))
     (properties `((upstream-name . "a4Core")))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-biobase" ,r-biobase)
        ("r-glmnet" ,r-glmnet)))
+    (native-inputs
+     `(("r-knitr" ,r-knitr)))
     (home-page "https://bioconductor.org/packages/a4Core")
     (synopsis "Automated Affymetrix array analysis core package")
     (description
@@ -3948,24 +4188,26 @@ arrays.")
 (define-public r-a4classif
   (package
     (name "r-a4classif")
-    (version "1.36.0")
+    (version "1.38.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "a4Classif" version))
        (sha256
         (base32
-         "0bj8m4nprw3maahd1qx9jjdxfip9ihbbpydbzwjxn6dlgw2i8mcr"))))
+         "03fln0x1am5fqhj4fpkx1yq58paqha086bhhr8az8j0vsq1r7wcz"))))
     (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-mlinterfaces" ,r-mlinterfaces)
        ("r-pamr" ,r-pamr)
        ("r-rocr" ,r-rocr)
        ("r-varselrf" ,r-varselrf)))
+    (native-inputs
+     `(("r-knitr" ,r-knitr)))
     (home-page "https://bioconductor.org/packages/a4Classif/")
     (synopsis "Automated Affymetrix array analysis classification package")
     (description
@@ -3976,18 +4218,21 @@ Affymetrix arrays.")
 (define-public r-a4preproc
   (package
     (name "r-a4preproc")
-    (version "1.36.0")
+    (version "1.38.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "a4Preproc" version))
        (sha256
         (base32
-         "1hy3jvhdjyjzzmw5wkil3cs26hvqnb056r09x0p2bjg5sc9hh8b8"))))
+         "1j8jhal83x1xpmsaw8iwv2r32i1ghzm6n0ipjk06yqa9f6zb7f7i"))))
     (properties `((upstream-name . "a4Preproc")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-annotationdbi" ,r-annotationdbi)))
+     `(("r-biobase" ,r-biobase)
+       ("r-biocgenerics" ,r-biocgenerics)))
+    (native-inputs
+     `(("r-knitr" ,r-knitr)))
     (home-page "https://bioconductor.org/packages/a4Preproc/")
     (synopsis "Automated Affymetrix array analysis preprocessing package")
     (description
@@ -3998,19 +4243,20 @@ is used for preprocessing the arrays.")
 (define-public r-a4reporting
   (package
     (name "r-a4reporting")
-    (version "1.36.0")
+    (version "1.38.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "a4Reporting" version))
        (sha256
         (base32
-         "1jhlxqwfbgflcyzy9gyxznzcadj9zxchl3lfdlc4ffm0hwz5jl2f"))))
+         "1jx4ym3hyix8gwr8d2r38w1wj7siv6ynzhwanczcjf1naws3dqpy"))))
     (properties `((upstream-name . "a4Reporting")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-annaffy" ,r-annaffy)
-       ("r-xtable" ,r-xtable)))
+     `(("r-xtable" ,r-xtable)))
+    (native-inputs
+     `(("r-knitr" ,r-knitr)))
     (home-page "https://bioconductor.org/packages/a4Reporting/")
     (synopsis "Automated Affymetrix array analysis reporting package")
     (description
@@ -4021,21 +4267,20 @@ provides reporting features.")
 (define-public r-a4base
   (package
     (name "r-a4base")
-    (version "1.36.0")
+    (version "1.38.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "a4Base" version))
        (sha256
         (base32
-         "0b7fy1wcydb9z43wb1663skswvhivn7ji15g00gqcshwkkiq4x02"))))
+         "0bqagjmg3yjmdzxv4j7685jjhgb261pq60b5qkfffr1lfnz27lsp"))))
     (properties `((upstream-name . "a4Base")))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-a4core" ,r-a4core)
        ("r-a4preproc" ,r-a4preproc)
        ("r-annaffy" ,r-annaffy)
-       ("r-annotationdbi" ,r-annotationdbi)
        ("r-biobase" ,r-biobase)
        ("r-genefilter" ,r-genefilter)
        ("r-glmnet" ,r-glmnet)
@@ -4053,14 +4298,14 @@ Affymetrix arrays.")
 (define-public r-a4
   (package
     (name "r-a4")
-    (version "1.36.0")
+    (version "1.38.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "a4" version))
        (sha256
         (base32
-         "1rzxg1h48jnlwqfjyyqzz6i3zlkfzc0i714rfplry7dyni6asgr7"))))
+         "12q09dhxjl7yrd5m2y7a03kv5614dp144ajmskp5q9x2gvz30f79"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-a4base" ,r-a4base)
@@ -4078,18 +4323,18 @@ Affymetrix arrays.")
 (define-public r-abseqr
   (package
     (name "r-abseqr")
-    (version "1.6.0")
+    (version "1.8.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "abseqR" version))
        (sha256
         (base32
-         "0pzyfn0jv41rja6l4jbgwgsqy0q1d3kz23m9m6pc67p2a231i9c5"))))
+         "0lh7kcsp3yb3s8s8j6w9k1by8i16q7r2a49z8y1xjmkcb2klsi3f"))))
     (properties `((upstream-name . "abseqR")))
     (build-system r-build-system)
     (inputs
-     `(("pandoc" ,ghc-pandoc)))
+     `(("pandoc" ,pandoc)))
     (propagated-inputs
      `(("r-biocparallel" ,r-biocparallel)
        ("r-biocstyle" ,r-biocstyle)
@@ -4126,14 +4371,14 @@ further downstream analysis on its output.")
 (define-public r-bacon
   (package
     (name "r-bacon")
-    (version "1.16.0")
+    (version "1.18.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "bacon" version))
        (sha256
         (base32
-         "066b9vyp8ivnzm9741mb5z763a7z40ar9m8w31yw84fjiv01v3dl"))))
+         "0cv4zhs075mz8c5gdwhr45v14fb1lyi3rlwjfqyz15dmmnzlxw47"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-biocparallel" ,r-biocparallel)
@@ -4153,14 +4398,14 @@ fitting a three-component normal mixture on z-scores.")
 (define-public r-rgadem
   (package
     (name "r-rgadem")
-    (version "2.36.0")
+    (version "2.38.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "rGADEM" version))
        (sha256
         (base32
-         "14mflbwhhj9f3b05zdlsdjwxmpb120r23fy306qkvxjprdqn4sz8"))))
+         "0x13glgkcnjg4qsn0v0qgzy6bgmghqpvgwfww2ha641p0c5i9qzw"))))
     (properties `((upstream-name . "rGADEM")))
     (build-system r-build-system)
     (propagated-inputs
@@ -4211,12 +4456,12 @@ distributions, modules and filter motifs.")
 (define-public r-motifdb
   (package
    (name "r-motifdb")
-   (version "1.30.0")
+   (version "1.32.0")
    (source (origin
             (method url-fetch)
             (uri (bioconductor-uri "MotifDb" version))
             (sha256
-             (base32 "0ixmdqp0s0xv9ar85n2wirbbssrzlk8a892wam55jdsf9y8aabkm"))))
+             (base32 "0gfk1dgw7gd2y4cnmfdzpzjqkvvikcwx20h0fp7aiq8f0zfwlav5"))))
    (properties `((upstream-name . "MotifDb")))
    (build-system r-build-system)
    (propagated-inputs
@@ -4238,12 +4483,12 @@ frequency matrices from nine public sources, for multiple organisms.")
 (define-public r-motifbreakr
   (package
    (name "r-motifbreakr")
-   (version "2.2.0")
+   (version "2.4.0")
    (source (origin
             (method url-fetch)
             (uri (bioconductor-uri "motifbreakR" version))
             (sha256
-             (base32 "09czgmyjcycsvyvadpjddwwvqvxzd0ba3zhczh4mqc09gwa6vhlm"))))
+             (base32 "0nni6i7h51kz0ch8ls9c9jzd7fjmc9wsavp11hx6w6bmhnh3k4n7"))))
    (properties `((upstream-name . "motifbreakR")))
    (build-system r-build-system)
    (propagated-inputs
@@ -4289,24 +4534,21 @@ Bioconductor.")
 (define-public r-motifstack
   (package
     (name "r-motifstack")
-    (version "1.32.0")
+    (version "1.34.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "motifStack" version))
        (sha256
         (base32
-         "008f2mjcyyiz84ilrsldpqwvxy2lp93hjggrq4nrqwi78nyx3ls5"))))
+         "1psqpdbgbad31bd8hg5bl62qi5s9rl75nzm85igfpxar3zwwxjlb"))))
     (properties `((upstream-name . "motifStack")))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-ade4" ,r-ade4)
        ("r-biostrings" ,r-biostrings)
        ("r-ggplot2" ,r-ggplot2)
-       ("r-grimport2" ,r-grimport2)
        ("r-htmlwidgets" ,r-htmlwidgets)
-       ("r-motiv" ,r-motiv)
-       ("r-scales" ,r-scales)
        ("r-xml" ,r-xml)))
     (native-inputs
      `(("r-knitr" ,r-knitr)))
@@ -4323,20 +4565,22 @@ type and symbol colors.")
 (define-public r-genomicscores
   (package
     (name "r-genomicscores")
-    (version "2.0.0")
+    (version "2.2.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "GenomicScores" version))
        (sha256
         (base32
-         "0si2lgc37mkah4w990q1q2bf8xmshxj7cbx92bcrp0zaipjr96bb"))))
+         "1492xirsgag2dsr6ys9wm3a65sq826p9hcdg3b4dm1wbxgdfx6jr"))))
     (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)
@@ -4358,14 +4602,14 @@ position-specific scores within R and Bioconductor.")
 (define-public r-atacseqqc
   (package
     (name "r-atacseqqc")
-    (version "1.12.3")
+    (version "1.14.4")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "ATACseqQC" version))
        (sha256
         (base32
-         "12710c4024pndwwqiiqr6dhrd360z26fc8r3fxhs739gyd0ddk9r"))))
+         "04sn0zl4m60i5jvqz5rmhc4qwcgrhk6rhznrygmm93k9v363mbn9"))))
     (properties `((upstream-name . "ATACseqQC")))
     (build-system r-build-system)
     (propagated-inputs
@@ -4405,14 +4649,14 @@ footprints.")
 (define-public r-gofuncr
   (package
     (name "r-gofuncr")
-    (version "1.8.0")
+    (version "1.10.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "GOfuncR" version))
        (sha256
         (base32
-         "1ixjkqb9wpwqfzxsg0h96c6fa63wrk72sfh6x4pq0kpyrcc0ind1"))))
+         "1ah4v2jj508wjsmrncw58wjq2cyris7bnzfw6kr7jp9n4dvn33mq"))))
     (properties `((upstream-name . "GOfuncR")))
     (build-system r-build-system)
     (propagated-inputs
@@ -4454,14 +4698,14 @@ annotations and ontologies.")
 (define-public r-abaenrichment
   (package
     (name "r-abaenrichment")
-    (version "1.18.0")
+    (version "1.20.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "ABAEnrichment" version))
        (sha256
         (base32
-         "09ihbgxrhpcz2q7svldhm710a0yrhiqk9p0q0myv11c2w50ymwkw"))))
+         "0i0214ap9f6lnyawdgcdsds6g3g9qqji3wbn6ln6rs698gjs9w9c"))))
     (properties `((upstream-name . "ABAEnrichment")))
     (build-system r-build-system)
     (propagated-inputs
@@ -4486,14 +4730,14 @@ the brain using an ontology, both provided by the Allen Brain Atlas project.")
 (define-public r-annotationfuncs
   (package
     (name "r-annotationfuncs")
-    (version "1.38.0")
+    (version "1.40.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "AnnotationFuncs" version))
        (sha256
         (base32
-         "1yfsxzn7s1nlc3xz2yj39j6hmdfapc9qj9h0cd71gkaxj53ial7d"))))
+         "0xsm7741zm81bi4c9hy0zaacnk8a6bahdpc6srqzrbsz0pfzdyhr"))))
     (properties
      `((upstream-name . "AnnotationFuncs")))
     (build-system r-build-system)
@@ -4511,14 +4755,14 @@ different identifieres using the Biocore Data Team data-packages (e.g.
 (define-public r-annotationtools
   (package
     (name "r-annotationtools")
-    (version "1.62.0")
+    (version "1.64.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "annotationTools" version))
        (sha256
         (base32
-         "1b1yfnknr9vbn4y2mxdfyx57i5jbabhp9pwx8axlg2a7lawkfmdk"))))
+         "1q3c30hqxjgar3gm8d7h4rw3m7cgc11cgv9q0fwv5abj075cj224"))))
     (properties
      `((upstream-name . "annotationTools")))
     (build-system r-build-system)
@@ -4536,14 +4780,14 @@ text files).")
 (define-public r-allelicimbalance
   (package
     (name "r-allelicimbalance")
-    (version "1.26.0")
+    (version "1.28.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "AllelicImbalance" version))
        (sha256
         (base32
-         "0irn4xdlvazdkv0055f45693y6zvqaz7j3vml5xscnh45ls6vmqr"))))
+         "1hk08kwxjlg2jb59bwv9fbc446pyf6knkscfj757nl6yjf11akbl"))))
     (properties
      `((upstream-name . "AllelicImbalance")))
     (build-system r-build-system)
@@ -4579,14 +4823,14 @@ investigation using RNA-seq data.")
 (define-public r-aucell
   (package
     (name "r-aucell")
-    (version "1.10.0")
+    (version "1.12.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "AUCell" version))
        (sha256
         (base32
-         "0fgqkgjhf92vkljkwn44lm8cjvzq1lvk80nk6xhsp5q6s5isbmns"))))
+         "0ibsf3nid27hipr03z7phh0yzwfj8bqza6n6g7wfghpls4l12ipx"))))
     (properties `((upstream-name . "AUCell")))
     (build-system r-build-system)
     (propagated-inputs
@@ -4618,14 +4862,14 @@ needed.")
 (define-public r-ebimage
   (package
     (name "r-ebimage")
-    (version "4.30.0")
+    (version "4.32.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "EBImage" version))
        (sha256
         (base32
-         "13amrbh545hwk7sygndzyv7wpa0m2y0lzlwj89jm1xm62x577w9v"))))
+         "0qi8bbix5bjahs73ljhfvidlbj8hz5m5j0sb9cjxlngnnldbh4ww"))))
     (properties `((upstream-name . "EBImage")))
     (build-system r-build-system)
     (propagated-inputs
@@ -4657,14 +4901,14 @@ visualization with image data.")
 (define-public r-yamss
   (package
     (name "r-yamss")
-    (version "1.14.0")
+    (version "1.16.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "yamss" version))
        (sha256
         (base32
-         "00x2lnssgzbmhy5bb2m0f8rq2nsz3lb5xlp2vhkcagza39h3xb0c"))))
+         "0cxzn7j9apjcabbvvii16kn4whwd9khcyz867w5ag3zdxwvg7l7w"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-biocgenerics" ,r-biocgenerics)
@@ -4691,14 +4935,14 @@ analysis.")
 (define-public r-gtrellis
   (package
     (name "r-gtrellis")
-    (version "1.20.1")
+    (version "1.22.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "gtrellis" version))
        (sha256
         (base32
-         "1v2l7r945xx4cf9s8m19csj7716n2ayxy05adkl8zqgxk0gxzqm1"))))
+         "14mpavkxlp9d1kccwi4b9hi7x8md5j4s1g17ivqsj38lxqjvg5gw"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-circlize" ,r-circlize)
@@ -4720,14 +4964,14 @@ genomic categories and to add self-defined graphics in the plot.")
 (define-public r-somaticsignatures
   (package
     (name "r-somaticsignatures")
-    (version "2.24.0")
+    (version "2.26.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "SomaticSignatures" version))
        (sha256
         (base32
-         "0d34mss73w1jdnmilk060a1fywlfmqbnlir089q9m3q1p3x0j4c1"))))
+         "1pwf9ws0klcij27w22p0nh924yp5h2jsidp54ppp7mnx08iv0801"))))
     (properties
      `((upstream-name . "SomaticSignatures")))
     (build-system r-build-system)
@@ -4759,14 +5003,14 @@ decomposition algorithms.")
 (define-public r-yapsa
   (package
     (name "r-yapsa")
-    (version "1.14.0")
+    (version "1.16.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "YAPSA" version))
        (sha256
         (base32
-         "06lkf01vl4fyhj82srx8k870fhw76a1han0kp4jglh43b1c19c1k"))))
+         "1vwccrp01p8i42axbaz1bqq173la18ldrzmrjawr5nkjjkvddbpb"))))
     (properties `((upstream-name . "YAPSA")))
     (build-system r-build-system)
     (propagated-inputs
@@ -4786,7 +5030,7 @@ decomposition algorithms.")
        ("r-gridextra" ,r-gridextra)
        ("r-gtrellis" ,r-gtrellis)
        ("r-keggrest" ,r-keggrest)
-       ("r-lsei" ,r-lsei)
+       ("r-limsolve" ,r-limsolve)
        ("r-magrittr" ,r-magrittr)
        ("r-pmcmr" ,r-pmcmr)
        ("r-pracma" ,r-pracma)
@@ -4808,14 +5052,14 @@ provided.")
 (define-public r-gcrma
   (package
     (name "r-gcrma")
-    (version "2.60.0")
+    (version "2.62.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "gcrma" version))
        (sha256
         (base32
-         "1klbnygc1i5ac1x00bsk0rjw5h5dn6pn65fa3y9r09q47gpy1c5g"))))
+         "1v1x13iwcv6c9x7r1iz2598rwlyzic67jbqcajg24ib6lcfn9f00"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-affy" ,r-affy)
@@ -4837,21 +5081,21 @@ a more complex way than the simple GC content.  Instead, the base types (A, T,
 G or C) at each position along the probe determine the affinity of each probe.
 The parameters of the position-specific base contributions to the probe
 affinity is estimated in an NSB experiment in which only NSB but no
-gene-specific bidning is expected.")
+gene-specific binding is expected.")
     ;; Any version of the LGPL
     (license license:lgpl2.1+)))
 
 (define-public r-simpleaffy
   (package
     (name "r-simpleaffy")
-    (version "2.64.0")
+    (version "2.66.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "simpleaffy" version))
        (sha256
         (base32
-         "040043spblr8v67lkn3nnxhgfmfh2iwaizph4fnms1ik6qz662x7"))))
+         "04a11dsqd5y4b39nny94acnh0qhdazjc6d1803izza4vrgmw2csb"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-affy" ,r-affy)
@@ -4872,14 +5116,14 @@ generating high resolution journal figures.")
 (define-public r-yaqcaffy
   (package
     (name "r-yaqcaffy")
-    (version "1.48.0")
+    (version "1.50.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "yaqcaffy" version))
        (sha256
         (base32
-         "1l0cblh9sfrsil15bjya7d8kkas8bj6klj2w3c4384njdsjsjcf0"))))
+         "18gphcjj15iivrahp52186bvdg07yd2dvrykfjdd4r1vyf33im96"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-simpleaffy" ,r-simpleaffy)))
@@ -4894,14 +5138,14 @@ chips with the MAQC reference datasets.")
 (define-public r-quantro
   (package
     (name "r-quantro")
-    (version "1.22.0")
+    (version "1.24.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "quantro" version))
        (sha256
         (base32
-         "0ap9cl5z79wg44mnagjsk8py3kngb4f0ddnx85cbnwqkvb769zbz"))))
+         "1mq4hda73idkq0lkfrhcmiz4kkalfn47dh3i75br5fi33mdgc0k2"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-biobase" ,r-biobase)
@@ -4927,14 +5171,14 @@ groups.")
 (define-public r-yarn
   (package
     (name "r-yarn")
-    (version "1.14.0")
+    (version "1.16.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "yarn" version))
        (sha256
         (base32
-         "1xdjwy1gkfg8lhgq4iwwmbi01903qljjs7yd96cvacmvgn8z6qvx"))))
+         "0p8wz5jn601vxbbxkm73ps3fx0j1y56nr2qf6y8k80vgrk7bv5gp"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-biobase" ,r-biobase)
@@ -4964,14 +5208,14 @@ large RNA-seq experiments.")
 (define-public r-roar
   (package
     (name "r-roar")
-    (version "1.24.0")
+    (version "1.26.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "roar" version))
        (sha256
         (base32
-         "069g887migvk70n0377dqr0fk7wjbz3w0asgk42bwhp8xpjfym6f"))))
+         "0spidrcjnrcli0whkf6h8pa1i9dg9arjbm7b1skxbs6dn2k4yyqw"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-biocgenerics" ,r-biocgenerics)
@@ -4993,14 +5237,14 @@ sites and alignments obtained from standard RNA-seq experiments.")
 (define-public r-xbseq
   (package
     (name "r-xbseq")
-    (version "1.20.0")
+    (version "1.22.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "XBSeq" version))
        (sha256
         (base32
-         "13br7x1q6dg8daxahskwq24f09wbxr8kyszl1z7dhc26bid2pvy0"))))
+         "1dvk2jpsdynqw5071z54yd5j0ddprhc1ppk834cz9liibd72d7vz"))))
     (properties `((upstream-name . "XBSeq")))
     (build-system r-build-system)
     (propagated-inputs
@@ -5032,14 +5276,14 @@ genes.")
 (define-public r-massspecwavelet
   (package
     (name "r-massspecwavelet")
-    (version "1.54.0")
+    (version "1.56.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "MassSpecWavelet" version))
        (sha256
         (base32
-         "0nv1r68g7f1rps6sqaccd4n4x0i19wklvyabhp4b03cdk22gl3nq"))))
+         "1vvxbxc538raqdsy0x9ln41vjhp2aw1nrh4k35y3s9mhb1jlzzv3"))))
     (properties
      `((upstream-name . "MassSpecWavelet")))
     (build-system r-build-system)
@@ -5056,14 +5300,14 @@ based on @dfn{Continuous Wavelet Transform} (CWT).")
 (define-public r-xcms
   (package
     (name "r-xcms")
-    (version "3.10.1")
+    (version "3.12.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "xcms" version))
        (sha256
         (base32
-         "1aa11gy1v7kkamv3hsnvdx715q8f1saw9p664j6wifyjj0hx13kn"))))
+         "17kyybj093mj0g2sbfmjp19mmkww4w025n6zc0hbznqb94vkc8fv"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-biobase" ,r-biobase)
@@ -5072,6 +5316,7 @@ based on @dfn{Continuous Wavelet Transform} (CWT).")
        ("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)
@@ -5095,14 +5340,14 @@ data for high-throughput, untargeted analyte profiling.")
 (define-public r-wrench
   (package
     (name "r-wrench")
-    (version "1.6.0")
+    (version "1.8.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "Wrench" version))
        (sha256
         (base32
-         "05dyk3yvbqrzvinv3ig8ad9wffwr14z715cicsbxwxpv5lq84wx6"))))
+         "01z7rd9fn6cpab3dxgwfpfjlq6vsqb8jhbzvhcqn9v2vqc2pridx"))))
     (properties `((upstream-name . "Wrench")))
     (build-system r-build-system)
     (propagated-inputs
@@ -5121,14 +5366,14 @@ that arising from 16s metagenomic surveys.")
 (define-public r-wiggleplotr
   (package
     (name "r-wiggleplotr")
-    (version "1.12.1")
+    (version "1.14.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "wiggleplotr" version))
        (sha256
         (base32
-         "1wknigh1md3w4h68caqlpq945maipdkpmw10hc2rlx4nbbpcnawp"))))
+         "1k4wlh5ayb1w4dr6dydqfgm3415qhsfmshmi6zjyyhhkd2626vad"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-assertthat" ,r-assertthat)
@@ -5155,14 +5400,14 @@ visualization of exonic read coverage.")
 (define-public r-widgettools
   (package
     (name "r-widgettools")
-    (version "1.66.0")
+    (version "1.68.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "widgetTools" version))
        (sha256
         (base32
-         "0lrdpsgm9r7yfyyj5crvb7px4hrghxhmiic4iissz40slbfyvilx"))))
+         "172f0pmsspd9lss557cmxzjfsbansimjyhwdiahg8pqrayhwvf2w"))))
     (properties `((upstream-name . "widgetTools")))
     (build-system r-build-system)
     (home-page "https://bioconductor.org/packages/widgetTools/")
@@ -5176,14 +5421,14 @@ widgets in R.")
 (define-public r-webbioc
   (package
     (name "r-webbioc")
-    (version "1.60.0")
+    (version "1.62.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "webbioc" version))
        (sha256
         (base32
-         "16376ya5a5x2hwkl1v9y4r7np1drdwm912knnqg2dn90zmrdwr5f"))))
+         "1nnmr4ddi07x7sy89fgdn7iwz5k4l8n5ca3xjnlbpwxycza793vj"))))
     (build-system r-build-system)
     (inputs
      `(("netpbm" ,netpbm)
@@ -5209,14 +5454,14 @@ Currently only Affymetrix oligonucleotide analysis is supported.")
 (define-public r-zfpkm
   (package
     (name "r-zfpkm")
-    (version "1.10.0")
+    (version "1.12.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "zFPKM" version))
        (sha256
         (base32
-         "0scszhfqrgzhglz1a6kxfydq9dx8fqx28j3dypp91y5ah2w6mdys"))))
+         "1sa7m7mzzr92c9ickial5701414rab233lq1il1sm9yfdkf8s9fm"))))
     (properties `((upstream-name . "zFPKM")))
     (build-system r-build-system)
     (propagated-inputs
@@ -5238,14 +5483,14 @@ This algorithm is based on the publication by Hart et al., 2013 (Pubmed ID
 (define-public r-rbowtie2
   (package
     (name "r-rbowtie2")
-    (version "1.10.0")
+    (version "1.12.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "Rbowtie2" version))
        (sha256
         (base32
-         "1z2dn0q3wcw8b9ibx388kh7p5km16i71sw9miqj3daw7g0v5bxp3"))))
+         "1pcdcqn82ray73bajjnx5zgs98m56acviq3adbzga0cfqf6wiqx5"))))
     (properties `((upstream-name . "Rbowtie2")))
     (build-system r-build-system)
     (inputs
@@ -5263,14 +5508,14 @@ rapid adapter trimming, identification, and read merging.")
 (define-public r-progeny
   (package
     (name "r-progeny")
-    (version "1.10.0")
+    (version "1.12.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "progeny" version))
        (sha256
         (base32
-         "09rq3nf9zm7w9djmx8xc8j3win3597p2v36zqgkhgkjwq5rkjgsh"))))
+         "00lhzz4plmx5128khs298n6zv9204mhqv548lxxdhaw18b16vwm7"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-biobase" ,r-biobase)
@@ -5293,14 +5538,14 @@ expression\".")
 (define-public r-arrmnormalization
   (package
     (name "r-arrmnormalization")
-    (version "1.28.0")
+    (version "1.30.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "ARRmNormalization" version))
        (sha256
         (base32
-         "0zhhvr051fmh6g0bqrl525mkf094j1jnc57j201jlzmvdpkydlpv"))))
+         "1ximvi0jbwmymx6iy70qfyr9j26x5arlarra9fzs5hq05jif6q95"))))
     (properties
      `((upstream-name . "ARRmNormalization")))
     (build-system r-build-system)
@@ -5316,14 +5561,14 @@ Infinium HumanMethylation 450k assay.")
 (define-public r-biocfilecache
   (package
     (name "r-biocfilecache")
-    (version "1.12.0")
+    (version "1.14.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "BiocFileCache" version))
        (sha256
         (base32
-         "02chrzwccmazi7rdfpyriizhbgxyxlmprlw32w05wk54as6wrxv8"))))
+         "0r032a033636bxap0vvb02jvjqiynzj9npqd8603qnwmhvvfi5z1"))))
     (properties `((upstream-name . "BiocFileCache")))
     (build-system r-build-system)
     (propagated-inputs
@@ -5348,14 +5593,14 @@ and data files used across sessions.")
 (define-public r-iclusterplus
   (package
     (name "r-iclusterplus")
-    (version "1.24.0")
+    (version "1.26.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "iClusterPlus" version))
        (sha256
         (base32
-         "0j987xvxixdz0wnhgp4kgfcgz5jffrcdhmldrgpgv582qmf4r94w"))))
+         "02ji84dsbn4wir8sim4qy8h57524mnrsq51wxc7n8ybp5x7n9k9q"))))
     (properties `((upstream-name . "iClusterPlus")))
     (build-system r-build-system)
     (native-inputs `(("gfortran" ,gfortran)))
@@ -5378,14 +5623,14 @@ Gaussian distributions.")
 (define-public r-rbowtie
   (package
     (name "r-rbowtie")
-    (version "1.28.0")
+    (version "1.30.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "Rbowtie" version))
        (sha256
         (base32
-         "06y1qp915dlwjdi2fs3344sgya55pcv07f3i61y0cxb0bhbcgvrz"))))
+         "0rgxqc3sbq7phnrn9a6z361725h4zi2mi985i43n7fi3csif7507"))))
     (properties `((upstream-name . "Rbowtie")))
     (build-system r-build-system)
     (inputs
@@ -5403,14 +5648,14 @@ alignment tool.")
 (define-public r-sgseq
   (package
     (name "r-sgseq")
-    (version "1.22.0")
+    (version "1.24.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "SGSeq" version))
        (sha256
         (base32
-         "11rxx7abjyga2sdcp4x4z3n8xjx6973sckyzmh9ax6r46kwhxq8c"))))
+         "1nfhy5kgyz56b6pyxcq8kflqwnhl9nlffszwpqb5fdh5ibz8xbjx"))))
     (properties `((upstream-name . "SGSeq")))
     (build-system r-build-system)
     (propagated-inputs
@@ -5446,14 +5691,14 @@ interpretation.")
 (define-public r-rhisat2
   (package
     (name "r-rhisat2")
-    (version "1.4.0")
+    (version "1.6.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "Rhisat2" version))
        (sha256
         (base32
-         "0hhmcdnixkaqx9x9cl2vjaba3ri8m6wkbnbhxjmy51jwqzy2223a"))))
+         "0f9x2qcazml0zjcgyy0kdphnww4d1m62rn0ijcqlhy1bng6ihwwb"))))
     (properties `((upstream-name . "Rhisat2")))
     (build-system r-build-system)
     (arguments
@@ -5486,18 +5731,16 @@ index.")
 (define-public r-quasr
   (package
     (name "r-quasr")
-    (version "1.28.0")
+    (version "1.30.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "QuasR" version))
        (sha256
         (base32
-         "0d87ajaaq8a7xgzl820qx5bvxw86ppab8clqk77sj02rfijnvjn8"))))
+         "032m01q34nnmvbhcb2g3pz2fqmgcw5464m74m1m0h7x9bl04a5k8"))))
     (properties `((upstream-name . "QuasR")))
     (build-system r-build-system)
-    (inputs
-     `(("zlib" ,zlib)))
     (propagated-inputs
      `(("r-annotationdbi" ,r-annotationdbi)
        ("r-biobase" ,r-biobase)
@@ -5533,14 +5776,14 @@ quantification of genomic regions of interest.")
 (define-public r-rqc
   (package
     (name "r-rqc")
-    (version "1.22.0")
+    (version "1.24.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "Rqc" version))
        (sha256
         (base32
-         "1qsm9r6xfsplk8zpf7p0k7fi86l8a74nx963sna8gzig5qgrvnm3"))))
+         "083c3ql0gndb6y7m9d3rpbkimyw8cj8jyv77mwwjhq49lzwsg6n9"))))
     (properties `((upstream-name . "Rqc")))
     (build-system r-build-system)
     (propagated-inputs
@@ -5576,14 +5819,14 @@ graphics.")
 (define-public r-birewire
   (package
     (name "r-birewire")
-    (version "3.20.0")
+    (version "3.22.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "BiRewire" version))
        (sha256
         (base32
-         "0y7jb1abnik2y4ivpyqrgfl77rml6fhz88isd54l646ghslwxj0g"))))
+         "1h9zjjd5krsjpbxlmsbzwx7kbishn0z6mpm8zmrcpmbfrprp38qw"))))
     (properties `((upstream-name . "BiRewire")))
     (build-system r-build-system)
     (propagated-inputs
@@ -5634,14 +5877,14 @@ Markov-Chain-Monte-Carlo is applied to sample the activity states.")
 (define-public r-multidataset
   (package
     (name "r-multidataset")
-    (version "1.16.0")
+    (version "1.18.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "MultiDataSet" version))
        (sha256
         (base32
-         "0hjnj32m9wwlh2krdpdyl5jk1cakvlgki80z51mabhc62pajzf39"))))
+         "025gfgn83ancp0khdmq2y4lwm97v5zqnjksi79rr0w175syznx5w"))))
     (properties `((upstream-name . "MultiDataSet")))
     (build-system r-build-system)
     (propagated-inputs
@@ -5671,14 +5914,14 @@ packages.")
 (define-public r-ropls
   (package
     (name "r-ropls")
-    (version "1.20.0")
+    (version "1.22.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "ropls" version))
        (sha256
         (base32
-         "1drww1mr0nira3qplyga6s3mljpjxshjgbn524kzxi0nrfbcvmnx"))))
+         "1h76s89hsafrkshpkx7vjinfni9lzfpnbfyg3fhkkrwpp1fnwyj5"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-biobase" ,r-biobase)
@@ -5709,14 +5952,14 @@ coefficients).")
 (define-public r-biosigner
   (package
     (name "r-biosigner")
-    (version "1.16.0")
+    (version "1.18.2")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "biosigner" version))
        (sha256
         (base32
-         "1v760q7hzaybkf2q9230rmr4phi8hglm59qwsjzvncxrhs3dpj06"))))
+         "0i18j4fk91x5017yk1l35c58k5aby22yh81zkp59irphpv9akvjn"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-biobase" ,r-biobase)
@@ -5742,14 +5985,14 @@ datasets.")
 (define-public r-annotatr
   (package
     (name "r-annotatr")
-    (version "1.14.0")
+    (version "1.16.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "annotatr" version))
        (sha256
         (base32
-         "0z3ydcybd81w543fw8fiblghndx5m28w8qsphh5vqj726i0nj8cl"))))
+         "0dq67snpqxl9mifljm6zlnkdb0ghjwday0fvcn3i7zmrfszgzyf9"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-annotationdbi" ,r-annotationdbi)
@@ -5783,14 +6026,14 @@ annotations.")
 (define-public r-rsubread
   (package
     (name "r-rsubread")
-    (version "2.2.4")
+    (version "2.4.2")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "Rsubread" version))
        (sha256
         (base32
-         "0yznfqgp5cbz68n3rrfvm752267da16kl538zdrb1g1aw9zdfqc6"))))
+         "1wczrw5jb69x45hd3rdqqs9vkysdqwlxn9h3kjzn57r4x5q7jrra"))))
     (properties `((upstream-name . "Rsubread")))
     (build-system r-build-system)
     (inputs `(("zlib" ,zlib)))
@@ -5809,14 +6052,14 @@ and to both short and long sequence reads.")
 (define-public r-flowutils
   (package
     (name "r-flowutils")
-    (version "1.52.0")
+    (version "1.54.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "flowUtils" version))
        (sha256
         (base32
-         "03jj4zyffm9kwzrg4vbsk6clc2v2m95wgalgqwzi31n9a2zyaza4"))))
+         "1q4g666nd51j24hcp2wxla1bdi77kbfd4i0pxgp7rs2jf7200k09"))))
     (properties `((upstream-name . "flowUtils")))
     (build-system r-build-system)
     (propagated-inputs
@@ -5835,14 +6078,14 @@ and to both short and long sequence reads.")
 (define-public r-consensusclusterplus
   (package
     (name "r-consensusclusterplus")
-    (version "1.52.0")
+    (version "1.54.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "ConsensusClusterPlus" version))
        (sha256
         (base32
-         "06gq3a95h0km1hzbx1za8q0l7kla3jdzvn6cnfz43ijx4n3dzzcq"))))
+         "06h85l1mg2kpjprylzz44nhxp64k211plhch5qhg39wp0fk34lfp"))))
     (properties
      `((upstream-name . "ConsensusClusterPlus")))
     (build-system r-build-system)
@@ -5860,20 +6103,30 @@ cluster count and membership by stability evidence in unsupervised analysis.")
 (define-public r-cytolib
   (package
     (name "r-cytolib")
-    (version "2.0.3")
+    (version "2.2.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "cytolib" version))
        (sha256
         (base32
-         "123d1wlymq8r8d83as380h1dgw6v4s317acyvp1lsg2cpfp3gslj"))))
+         "1wylzps7wbvm64k62w5bbi8l74gaqca96psfapxfg6mcac5yz4qw"))))
     (properties `((upstream-name . "cytolib")))
     (build-system r-build-system)
-    (inputs
-     `(("zlib" ,zlib)))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-linking
+           (lambda _
+             (substitute* "src/Makevars.in"
+               ;; This is to avoid having a plain directory on the list of
+               ;; libraries to link.
+               (("\\(RHDF5_LIBS\\)" match)
+                (string-append match "/libhdf5.a")))
+             #t)))))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     `(("r-knitr" ,r-knitr)
+       ("pkg-config" ,pkg-config)))
     (propagated-inputs
      `(("r-bh" ,r-bh)
        ("r-rcpp" ,r-rcpp)
@@ -5891,14 +6144,14 @@ interact with gated cytometry data.")
 (define-public r-flowcore
   (package
     (name "r-flowcore")
-    (version "2.0.1")
+    (version "2.2.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "flowCore" version))
        (sha256
         (base32
-         "1xalndmfidfzqwlppdanx7cnm4ysznq21ingmykhxni86s42kd8p"))))
+         "001ickrl2asdl0zwpdjqkl1w7137nzxbryamxihgya394jw73xr8"))))
     (properties `((upstream-name . "flowCore")))
     (build-system r-build-system)
     (propagated-inputs
@@ -5909,7 +6162,8 @@ interact with gated cytometry data.")
        ("r-matrixstats" ,r-matrixstats)
        ("r-rcpp" ,r-rcpp)
        ("r-rcpparmadillo" ,r-rcpparmadillo)
-       ("r-rprotobuflib" ,r-rprotobuflib)))
+       ("r-rprotobuflib" ,r-rprotobuflib)
+       ("r-s4vectors" ,r-s4vectors)))
     (native-inputs
      `(("r-knitr" ,r-knitr)))
     (home-page "https://bioconductor.org/packages/flowCore")
@@ -5922,14 +6176,14 @@ with flow cytometry data.")
 (define-public r-flowmeans
   (package
     (name "r-flowmeans")
-    (version "1.48.0")
+    (version "1.50.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "flowMeans" version))
        (sha256
         (base32
-         "1sv5vpwm3qdhkn1gdrk3n674harjcni91g63sqzfmybiwq8dlym7"))))
+         "02y5b3iqjlqjlxrqq0l24dr68sjaniz26jqf14cnnwz1xg5hz734"))))
     (properties `((upstream-name . "flowMeans")))
     (build-system r-build-system)
     (propagated-inputs
@@ -5948,18 +6202,27 @@ change point detection.")
 (define-public r-ncdfflow
   (package
     (name "r-ncdfflow")
-    (version "2.34.0")
+    (version "2.36.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "ncdfFlow" version))
        (sha256
         (base32
-         "0avxn2abh4fk1gkncrxz7jwzgvd90m3m0ly318q0z38cjhsw3j9f"))))
+         "1knqc3ic2vpck7n7m7adxjz3ac70ra89d5gvlgp9r2q3kgaciwac"))))
     (properties `((upstream-name . "ncdfFlow")))
     (build-system r-build-system)
-    (inputs
-     `(("zlib" ,zlib)))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-linking
+           (lambda _
+             (substitute* "src/Makevars"
+               ;; This is to avoid having a plain directory on the list of
+               ;; libraries to link.
+               (("\\(RHDF5_LIBS\\)" match)
+                (string-append match "/libhdf5.a")))
+             #t)))))
     (propagated-inputs
      `(("r-bh" ,r-bh)
        ("r-biobase" ,r-biobase)
@@ -5981,14 +6244,14 @@ manipulation of flow cytometry data.")
 (define-public r-ggcyto
   (package
     (name "r-ggcyto")
-    (version "1.16.0")
+    (version "1.18.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "ggcyto" version))
        (sha256
         (base32
-         "1ih6ggay7jjxnx8blc2sk95g8d40gkim145jllkk8sqwl02g44p0"))))
+         "0myjvhm9jjb9cih5nlka3f9zg5ncy8gy3krpdpa0618jdglvgr1m"))))
     (properties `((upstream-name . "ggcyto")))
     (build-system r-build-system)
     (propagated-inputs
@@ -6018,14 +6281,14 @@ statistics to the plot.")
 (define-public r-flowviz
   (package
     (name "r-flowviz")
-    (version "1.52.0")
+    (version "1.54.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "flowViz" version))
        (sha256
         (base32
-         "0f3jfwdmaq9wrgl737blk5gmpc29l9kb6nadqhxpvbjwqsnzx0yq"))))
+         "1s6jrn2a7hv984xvm6gyn8k3hnma8qidrw9kgj9z5128hv330z7k"))))
     (properties `((upstream-name . "flowViz")))
     (build-system r-build-system)
     (propagated-inputs
@@ -6049,14 +6312,14 @@ statistics to the plot.")
 (define-public r-flowclust
   (package
     (name "r-flowclust")
-    (version "3.26.0")
+    (version "3.28.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "flowClust" version))
        (sha256
         (base32
-         "06mkq9y41jax07x4knhvhzgrkgqdvpvcw604bxdk6bv9wx3ipq5b"))))
+         "1ml3y5wq68jbyr7l5j4zs79bj5bbwzmn5gx41yi88hq78iwkscrq"))))
     (properties `((upstream-name . "flowClust")))
     (build-system r-build-system)
     (arguments
@@ -6089,14 +6352,14 @@ model with Box-Cox transformation.")
 (define-public r-rprotobuflib
   (package
     (name "r-rprotobuflib")
-    (version "2.0.0")
+    (version "2.2.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "RProtoBufLib" version))
        (sha256
         (base32
-         "0kfinf9vzc1i5qxmaw832id557gr1vqdi1m8yiaxz83g37wh8vps"))))
+         "09n4ny3ymfkja2br4rrr2n9dzw3hs7qijhcq4mj0avr86i27llqz"))))
     (properties `((upstream-name . "RProtoBufLib")))
     (build-system r-build-system)
     (arguments
@@ -6119,18 +6382,31 @@ for other R packages to compile and link against.")
 (define-public r-flowworkspace
   (package
     (name "r-flowworkspace")
-    (version "4.0.6")
+    (version "4.2.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "flowWorkspace" version))
        (sha256
         (base32
-         "123ny8n3jjgmsnpghk1dafxkwmcyr513gxi8y4h4qszq4s6ai15v"))))
+         "19svh32jq1dpq3ayhpd5r8bw0iax8d9kdvpvc23gx2pf16g1j5ag"))))
     (properties `((upstream-name . "flowWorkspace")))
     (build-system r-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-linking
+           (lambda _
+             (substitute* "src/Makevars"
+               ;; This is to avoid having a plain directory on the list of
+               ;; libraries to link.
+               (("\\{h5lib\\}" match)
+                (string-append match "/libhdf5.a")))
+             #t)))))
     (propagated-inputs
-     `(("r-bh" ,r-bh)
+     `(("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)
@@ -6152,7 +6428,6 @@ for other R packages to compile and link against.")
        ("r-rhdf5lib" ,r-rhdf5lib)
        ("r-rprotobuflib" ,r-rprotobuflib)
        ("r-scales" ,r-scales)
-       ("r-stringr" ,r-stringr)
        ("r-xml" ,r-xml)))
     (native-inputs
      `(("r-knitr" ,r-knitr)))
@@ -6170,14 +6445,14 @@ matches the flowJo analysis.")
 (define-public r-flowstats
   (package
     (name "r-flowstats")
-    (version "4.0.0")
+    (version "4.2.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "flowStats" version))
        (sha256
         (base32
-         "1ygvxvd7y6jp907y0h3hycdwvw1fch16w84g06nk4f4g4kvrzdir"))))
+         "1i6nrwc55k4bn4qprgs6npy7wf8537m429yncqsygsv47z21ix6x"))))
     (properties `((upstream-name . "flowStats")))
     (build-system r-build-system)
     (propagated-inputs
@@ -6206,14 +6481,14 @@ package.")
 (define-public r-opencyto
   (package
     (name "r-opencyto")
-    (version "2.0.0")
+    (version "2.2.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "openCyto" version))
        (sha256
         (base32
-         "10dyd6dddskv70vhpwfbsqdb8pb9i3ka0fgvl1h51wqlckbsj89m"))))
+         "02dymy5fa0wjd4pql3jdv1d65mak7ra4il96va7c0km8s87rn40v"))))
     (properties `((upstream-name . "openCyto")))
     (build-system r-build-system)
     (propagated-inputs
@@ -6250,16 +6525,27 @@ sequential way to mimic the manual gating strategy.")
 (define-public r-cytoml
   (package
     (name "r-cytoml")
-    (version "2.0.5")
+    (version "2.2.1")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "CytoML" version))
        (sha256
         (base32
-         "174brv027mm90lydfg6hnhazwh8jy4vf6ial4hpsfalwa5jrz55n"))))
+         "1d8x49aqc95x1vx456hya5r7mal80pj9l6wmr5x5pb5r8qyzz6yq"))))
     (properties `((upstream-name . "CytoML")))
     (build-system r-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-linking
+           (lambda _
+             (substitute* "src/Makevars.in"
+               ;; This is to avoid having a plain directory on the list of
+               ;; libraries to link.
+               (("\\{h5lib\\}" match)
+                (string-append match "/libhdf5.a")))
+             #t)))))
     (inputs
      `(("libxml2" ,libxml2)))
     (propagated-inputs
@@ -6302,14 +6588,14 @@ standard to exchange gated cytometry data with other software platforms.")
 (define-public r-flowsom
   (package
     (name "r-flowsom")
-    (version "1.20.0")
+    (version "1.22.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "FlowSOM" version))
        (sha256
         (base32
-         "1p17jv4q1dbcc47jpjy9hbcvzpwrx8waq7qpcj778jsyz6z6jh78"))))
+         "0gydp6q6zqkadw356k9br646zfynz8gk9ckbx9d297x503j5sgwf"))))
     (properties `((upstream-name . "FlowSOM")))
     (build-system r-build-system)
     (propagated-inputs
@@ -6332,20 +6618,21 @@ self-organizing map clustering and minimal spanning trees.")
 (define-public r-mixomics
   (package
     (name "r-mixomics")
-    (version "6.12.1")
+    (version "6.14.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "mixOmics" version))
        (sha256
         (base32
-         "13kq9l5xwhwp30y5gfqfh5f11n63vn8rk195mb2y2mww4cwi6lv4"))))
+         "0q43ay5r0qsx0zjjnrq24fk6pq5cimviky5lm4w2mbjclqf0gv0q"))))
     (properties `((upstream-name . "mixOmics")))
     (build-system r-build-system)
     (propagated-inputs
      `(("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)
@@ -6374,16 +6661,16 @@ delete entire rows with missing data.")
     (license license:gpl2+)))
 
 (define-public r-depecher
-  (package
+  (package                              ;Source/Weave error
     (name "r-depecher")
-    (version "1.4.1")
+    (version "1.6.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "DepecheR" version))
        (sha256
         (base32
-         "0dscfl6wxpl5538jzkrwisdwbr873d38rzd19vl6z5br71jvpv3v"))))
+         "0c7yv3a7k22nhhw3601n8jdl61cjmlny9b3nfrzsp78mkxi0h469"))))
     (properties `((upstream-name . "DepecheR")))
     (build-system r-build-system)
     (propagated-inputs
@@ -6393,6 +6680,7 @@ delete entire rows with missing data.")
        ("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)
@@ -6421,14 +6709,14 @@ data, to only emphasize the data that actually matters.")
 (define-public r-rcistarget
   (package
     (name "r-rcistarget")
-    (version "1.8.0")
+    (version "1.10.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "RcisTarget" version))
        (sha256
         (base32
-         "1lvi873dv0vhw53s1pmcilw8qwlywm9p2ybphcl168nzh6w31r4i"))))
+         "0a711jzxl1kggpk3ln68xzc5y30my4nbs1mxx8951pyi3jvzjfyf"))))
     (properties `((upstream-name . "RcisTarget")))
     (build-system r-build-system)
     (propagated-inputs
@@ -6458,14 +6746,14 @@ genes in the gene-set that are ranked above the leading edge).")
 (define-public r-cicero
   (package
     (name "r-cicero")
-    (version "1.6.1")
+    (version "1.8.1")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "cicero" version))
        (sha256
         (base32
-         "0nf9yqg5krj26n4n82iyx3rsr84d46b17i9zfk35sh12l4xssbii"))))
+         "12y857p4p0m7k72bimli8wjn9cd0gxjwcs3n7ri9pn9l9d42krqr"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-assertthat" ,r-assertthat)
@@ -6569,14 +6857,14 @@ cisTopics and explore the nature and regulatory proteins driving them.")
 (define-public r-genie3
   (package
     (name "r-genie3")
-    (version "1.10.0")
+    (version "1.12.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "GENIE3" version))
        (sha256
         (base32
-         "1bsm0gxracsyg1wnaw3whvskghfpbgbm9navr8wdmxj2hjp3dqs7"))))
+         "1z7qkv0cgdx2plhc7xdz6s7vwdjhzcdadi35wg3fl6xpids5njf5"))))
     (properties `((upstream-name . "GENIE3")))
     (build-system r-build-system)
     (propagated-inputs `(("r-reshape2" ,r-reshape2)))
@@ -6592,14 +6880,14 @@ regulatory networks from expression data.")
 (define-public r-roc
   (package
     (name "r-roc")
-    (version "1.64.0")
+    (version "1.66.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "ROC" version))
        (sha256
         (base32
-         "0gmx3r77yl5fqrj5j2hamwynbis75qd62q28964kx16z33xfgx89"))))
+         "02b9n42z3kjrfxpdf3glqvimd79nhnycq00mb09fzhkpp5zl43c9"))))
     (properties `((upstream-name . "ROC")))
     (build-system r-build-system)
     (propagated-inputs
@@ -6640,14 +6928,14 @@ data.")
 (define-public r-watermelon
   (package
     (name "r-watermelon")
-    (version "1.32.0")
+    (version "1.34.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "wateRmelon" version))
        (sha256
         (base32
-         "1c3a6bq3ggmv8kmdfrgiar6nwgircgzjrbgd9z9dqiin7j13gxwn"))))
+         "1sc2nxg9bafpvlwqhky2p5b6fkimkk9v3xcab9kvwnj6szrb6p3f"))))
     (properties `((upstream-name . "wateRmelon")))
     (build-system r-build-system)
     (propagated-inputs
@@ -6677,14 +6965,14 @@ metrics, with methods for objects produced by the @code{methylumi} and
 (define-public r-gdsfmt
   (package
     (name "r-gdsfmt")
-    (version "1.24.1")
+    (version "1.26.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "gdsfmt" version))
        (sha256
         (base32
-         "0ipf60wylbhvwk9q3mbnak0f1n6k7spfh90s1c1c0b47ryxsri67"))
+         "0x8ik179sf38ihx2y24cvsa9d8isdmx2z27sjhcwq0r3xpjxpz1a"))
        (modules '((guix build utils)))
        ;; Remove bundled sources of zlib, lz4, and xz.  Don't attempt to build
        ;; them and link with system libraries instead.
@@ -6736,14 +7024,14 @@ with multiple R processes supported by the package @code{parallel}.")
 (define-public r-bigmelon
   (package
     (name "r-bigmelon")
-    (version "1.14.0")
+    (version "1.16.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "bigmelon" version))
        (sha256
         (base32
-         "1cryjhbiacm45g097rpqgbva49hs5vdx4y4h5h2v1gw4k78hwb4y"))))
+         "0hj5njwx7n681vigkq4560f9dm7mdjgvcwbgp5nbdn1fb2z24bk7"))))
     (properties `((upstream-name . "bigmelon")))
     (build-system r-build-system)
     (propagated-inputs
@@ -6764,22 +7052,20 @@ with multiple R processes supported by the package @code{parallel}.")
 (define-public r-seqbias
   (package
     (name "r-seqbias")
-    (version "1.36.0")
+    (version "1.38.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "seqbias" version))
        (sha256
         (base32
-         "0sy2fv98x4qfz9llns28jh1n4bi991jj856y8a5fbzpx7y990lai"))))
+         "1m634sidmk6c603k2gflyiddkns9vr6ij591nmab523xk5r2f4b2"))))
     (properties `((upstream-name . "seqbias")))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-biostrings" ,r-biostrings)
        ("r-genomicranges" ,r-genomicranges)
        ("r-rhtslib" ,r-rhtslib)))
-    (inputs
-     `(("zlib" ,zlib))) ; This comes from rhtslib.
     (home-page "https://bioconductor.org/packages/seqbias/")
     (synopsis "Estimation of per-position bias in high-throughput sequencing data")
     (description
@@ -6830,14 +7116,14 @@ injected in that sequence).")
 (define-public r-reqon
   (package
     (name "r-reqon")
-    (version "1.34.0")
+    (version "1.36.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "ReQON" version))
        (sha256
         (base32
-         "06m0hd4aqsxjyzhs8b1zys7lz8289qgwn7jp2dpln1j7cf02q4bz"))))
+         "1yz0r0rrk4n6dnqbdq41lvs5z8l6vkx729m0a7f29svw4dbc6mdq"))))
     (properties `((upstream-name . "ReQON")))
     (build-system r-build-system)
     (propagated-inputs
@@ -6855,14 +7141,14 @@ format.")
 (define-public r-wavcluster
   (package
     (name "r-wavcluster")
-    (version "2.22.0")
+    (version "2.24.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "wavClusteR" version))
        (sha256
         (base32
-         "0204czqjmkwhd6gznwxzb0vj3dg3aif628g8c30085aa2jljn9bk"))))
+         "18cg0jbr3rjyx31wwyag1n5gams55pbd2rvb99i3g80q9hvswawi"))))
     (properties `((upstream-name . "wavClusteR")))
     (build-system r-build-system)
     (propagated-inputs
@@ -6879,8 +7165,7 @@ format.")
        ("r-rtracklayer" ,r-rtracklayer)
        ("r-s4vectors" ,r-s4vectors)
        ("r-seqinr" ,r-seqinr)
-       ("r-stringr" ,r-stringr)
-       ("r-wmtsa" ,r-wmtsa)))
+       ("r-stringr" ,r-stringr)))
     (native-inputs
      `(("r-knitr" ,r-knitr)))
     (home-page "https://bioconductor.org/packages/wavClusteR/")
@@ -6903,14 +7188,14 @@ procedures that induce nucleotide substitutions (e.g. BisSeq).")
 (define-public r-timeseriesexperiment
   (package
     (name "r-timeseriesexperiment")
-    (version "1.6.0")
+    (version "1.8.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "TimeSeriesExperiment" version))
        (sha256
         (base32
-         "1k0djvcsyjj1ayncvmi8nlqi3jdn5qp41y3fwsqg1cp0qsvx7zv3"))))
+         "1jx0rk660mfzk7rfhamnp0disx3bv456cqi9hyaz2wcbcdrlvcjn"))))
     (properties
      `((upstream-name . "TimeSeriesExperiment")))
     (build-system r-build-system)
@@ -6944,14 +7229,14 @@ provides methods for retrieving enriched pathways.")
 (define-public r-variantfiltering
   (package
     (name "r-variantfiltering")
-    (version "1.24.0")
+    (version "1.26.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "VariantFiltering" version))
        (sha256
         (base32
-         "0lsrnybsbm9siyjv4nal6bmprj8ynwgk4n1145f4h52g78wq3br4"))))
+         "0zy53knvyk8wy3hmnsxc0w9qkhvx6xhviskvx7rwmrsi7pz531l5"))))
     (properties
      `((upstream-name . "VariantFiltering")))
     (build-system r-build-system)
@@ -7050,14 +7335,14 @@ arrays based on fast wavelet-based functional models.")
 (define-public r-variancepartition
   (package
     (name "r-variancepartition")
-    (version "1.18.2")
+    (version "1.20.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "variancePartition" version))
        (sha256
         (base32
-         "19bhkb8vd44m3nkznw075fx3y2p3a1bsazbhcfiqw9n4190k9bgv"))))
+         "0fisaqd5v8xy9rz9l1zs62k1n2h4k1irzgwj46ci947l52x1qhah"))))
     (properties
      `((upstream-name . "variancePartition")))
     (build-system r-build-system)
@@ -7094,14 +7379,14 @@ measures.")
 (define-public r-htqpcr
   (package
     (name "r-htqpcr")
-    (version "1.42.0")
+    (version "1.44.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "HTqPCR" version))
        (sha256
         (base32
-         "08bd5zkjdnz726s03bvvzv03va0xbrr818ipp6737z9g3nk9m81j"))))
+         "1fzjx6psr41naq9ycpnv3lxlgkiyrpn7r2wl1i4gz45f3lax0yji"))))
     (properties `((upstream-name . "HTqPCR")))
     (build-system r-build-system)
     (propagated-inputs
@@ -7128,14 +7413,14 @@ features (e.g.  genes, microRNAs).")
 (define-public r-unifiedwmwqpcr
   (package
     (name "r-unifiedwmwqpcr")
-    (version "1.24.0")
+    (version "1.26.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "unifiedWMWqPCR" version))
        (sha256
         (base32
-         "1l9gxq3askr3cz2a4bqsw7vjr1agivzvx651cblkygv57x08zf81"))))
+         "1ad5a7gy43l8x1rf5lgqiy2bv6fgah7cbnp4lrqwshphlnr30ndv"))))
     (properties
      `((upstream-name . "unifiedWMWqPCR")))
     (build-system r-build-system)
@@ -7155,14 +7440,14 @@ data.")
 (define-public r-activedriverwgs
   (package
     (name "r-activedriverwgs")
-    (version "1.0.1")
+    (version "1.1.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "ActiveDriverWGS" version))
        (sha256
         (base32
-         "08l9dj8d3cd74z1dqn8n4yqykwvqjxsfa067wnxyh7xnfvvnm5v1"))))
+         "06mvakdc8d2pn91p0sr4ixc561s4ia5h1cvd1p7pqd6s50dy4say"))))
     (properties
      `((upstream-name . "ActiveDriverWGS")))
     (build-system r-build-system)
@@ -7173,8 +7458,9 @@ data.")
        ("r-genomeinfodb" ,r-genomeinfodb)
        ("r-genomicranges" ,r-genomicranges)
        ("r-iranges" ,r-iranges)
-       ("r-plyr" ,r-plyr)
        ("r-s4vectors" ,r-s4vectors)))
+    (native-inputs
+     `(("r-knitr" ,r-knitr)))
     (home-page "https://cran.r-project.org/web/packages/ActiveDriverWGS/")
     (synopsis "Driver discovery tool for cancer whole genomes")
     (description
@@ -7218,14 +7504,14 @@ cellular organization in health and disease.")
 (define-public r-bgmix
   (package
     (name "r-bgmix")
-    (version "1.48.0")
+    (version "1.50.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "BGmix" version))
        (sha256
         (base32
-         "1pfi3hinjn6ymikadgj8dqm59h7mapf01wj86dbbvf8y1xqp8y8n"))))
+         "0r9gjqajarg5mivxhqdzn8m8hmfarmzbplp3zqyyznccri03pv50"))))
     (properties `((upstream-name . "BGmix")))
     (build-system r-build-system)
     (propagated-inputs
@@ -7240,14 +7526,14 @@ gene expression.")
 (define-public r-bgx
   (package
     (name "r-bgx")
-    (version "1.54.0")
+    (version "1.56.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "bgx" version))
        (sha256
         (base32
-         "0r67a6m5hrnsxgk0f57hl5yaagi2wai2kpfyjjlhrck4rlm1sjcx"))))
+         "0gm4wv9drqvg9r4f0id1ivrfgv0nvh0hb6hp63b3jd14092777im"))))
     (properties `((upstream-name . "bgx")))
     (build-system r-build-system)
     (propagated-inputs
@@ -7265,14 +7551,14 @@ Affymetrix GeneChips.")
 (define-public r-bhc
   (package
     (name "r-bhc")
-    (version "1.40.0")
+    (version "1.42.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "BHC" version))
        (sha256
         (base32
-         "06milqjg2nl3ra47sxi7a2p2d3mbrx3wk168pqgimvs8snldd2xr"))))
+         "1n2rkbj8j10f38d40wvi6mwjxnrlfx71a48ab07bp2s0hwhxd7yn"))))
     (properties `((upstream-name . "BHC")))
     (build-system r-build-system)
     (home-page "https://bioconductor.org/packages/BHC/")
@@ -7291,14 +7577,14 @@ algorithm which is more efficient for larger data sets.")
 (define-public r-bicare
   (package
     (name "r-bicare")
-    (version "1.46.0")
+    (version "1.48.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "BicARE" version))
        (sha256
         (base32
-         "0llckbl3l26lf6wgjg7rxs8k1yrk043vvdhnkc6ncg33sydj383y"))))
+         "1np3967rjx54hbjsynvya75lcsqa6zic6frw5fjwqybwv2pzzw2k"))))
     (properties `((upstream-name . "BicARE")))
     (build-system r-build-system)
     (propagated-inputs
@@ -7315,14 +7601,14 @@ results.")
 (define-public r-bifet
   (package
     (name "r-bifet")
-    (version "1.8.0")
+    (version "1.10.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "BiFET" version))
        (sha256
         (base32
-         "1v2dshs09iy2glzq0vwxmr83x867j844i1ixsfcamvfq33fwbbr5"))))
+         "191m1xhsj4l64rrh67hqiz1rdkfhw0gfd5aymf3x0xm710l3rh4a"))))
     (properties `((upstream-name . "BiFET")))
     (build-system r-build-system)
     (propagated-inputs
@@ -7345,14 +7631,14 @@ the read count and GC content bias.")
 (define-public r-rsbml
   (package
     (name "r-rsbml")
-    (version "2.46.0")
+    (version "2.48.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "rsbml" version))
        (sha256
         (base32
-         "1i1izznnwzrc6m7s3hblfff466icfvxl2gjdqaln8qfg9v87rslx"))))
+         "0vrjfhwcpc699sq78pkm022fam3ahar8h3lx3fr879dd21k02g61"))))
     (properties `((upstream-name . "rsbml")))
     (build-system r-build-system)
     (inputs
@@ -7373,14 +7659,14 @@ validating output, provides an S4 SBML DOM, converts SBML to R graph objects.")
 (define-public r-hypergraph
   (package
     (name "r-hypergraph")
-    (version "1.60.0")
+    (version "1.62.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "hypergraph" version))
        (sha256
         (base32
-         "1iq9b9rzy3ikx8xszsjiv3p8l702n2h2s9w33797wcmkg4apslb7"))))
+         "1p5mzr2aiqqc1j2inh45abjvqhid9jqv6wiym1xxnz16mpaa7q97"))))
     (properties `((upstream-name . "hypergraph")))
     (build-system r-build-system)
     (propagated-inputs
@@ -7395,14 +7681,14 @@ manipulating hypergraphs.")
 (define-public r-hyperdraw
   (package
     (name "r-hyperdraw")
-    (version "1.40.0")
+    (version "1.42.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "hyperdraw" version))
        (sha256
         (base32
-         "1qzx5sqp7rpspk8g1j34p03ds1vmw0h7hpzb2ijpbvmsja5drzvf"))))
+         "0z3a3lpz7s0fw023fxldkgxvl2dl1wn8agnyj09sky11ainxdayz"))))
     (properties `((upstream-name . "hyperdraw")))
     (build-system r-build-system)
     (inputs `(("graphviz" ,graphviz)))
@@ -7419,14 +7705,14 @@ manipulating hypergraphs.")
 (define-public r-biggr
   (package
     (name "r-biggr")
-    (version "1.24.0")
+    (version "1.26.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "BiGGR" version))
        (sha256
         (base32
-         "05afi6hsh1dv6lc6l0dfhvvi8k34wyzf1k1jimam7a6pbrhyy5dk"))))
+         "1hlsnss6071ck4ky1akxp1dnv3vmd8f85drdziqmm4nc2dfrr14y"))))
     (properties `((upstream-name . "BiGGR")))
     (build-system r-build-system)
     (propagated-inputs
@@ -7449,14 +7735,14 @@ networks and estimated fluxes can be visualized with hypergraphs.")
 (define-public r-bigmemoryextras
   (package
     (name "r-bigmemoryextras")
-    (version "1.36.0")
+    (version "1.38.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "bigmemoryExtras" version))
        (sha256
         (base32
-         "053bqcd3p4i7agj43ccjxfz40a1sxrymd49vdpfq8ypslkwk7g0g"))))
+         "1k31h746j8r3f92vj62s38fw12qjkv5814ipcqfbswnxgaan17zj"))))
     (properties
      `((upstream-name . "bigmemoryExtras")))
     (build-system r-build-system)
@@ -7471,7 +7757,7 @@ networks and estimated fluxes can be visualized with hypergraphs.")
 safety and convenience features to the @code{filebacked.big.matrix} class from
 the @code{bigmemory} package.  @code{BigMatrix} protects against segfaults by
 monitoring and gracefully restoring the connection to on-disk data and it also
-protects against accidental data modification with a filesystem-based
+protects against accidental data modification with a file-system-based
 permissions system.  Utilities are provided for using @code{BigMatrix}-derived
 classes as @code{assayData} matrices within the @code{Biobase} package's
 @code{eSet} family of classes.  @code{BigMatrix} provides some optimizations
@@ -7483,14 +7769,14 @@ a file-backed matrix with factor properties.")
 (define-public r-bigpint
   (package
     (name "r-bigpint")
-    (version "1.4.0")
+    (version "1.6.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "bigPint" version))
        (sha256
         (base32
-         "1m92ngkzimcc37byf0ziphrby8wmjd5hfa53gvfphgaakyj9bjg8"))))
+         "1axgapy4iyx059777m9faczwwj03h3i5dyrs0rlc84axzhzd2kis"))))
     (properties `((upstream-name . "bigPint")))
     (build-system r-build-system)
     (propagated-inputs
@@ -7526,14 +7812,14 @@ visualizing RNA-sequencing datasets and differentially expressed genes.")
 (define-public r-chemminer
   (package
     (name "r-chemminer")
-    (version "3.40.0")
+    (version "3.42.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "ChemmineR" version))
        (sha256
         (base32
-         "0cna5xsqflvhlp2k47asxyv3w4ympmz2wy2cwjyzlal6936fjikf"))))
+         "14q9zhhxgkx5skj424i2rbjdbp5j8jfkxspkhnkwv5i45cvkgh19"))))
     (properties `((upstream-name . "ChemmineR")))
     (build-system r-build-system)
     (propagated-inputs
@@ -7567,14 +7853,14 @@ structures.")
 (define-public r-bioassayr
   (package
     (name "r-bioassayr")
-    (version "1.26.0")
+    (version "1.28.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "bioassayR" version))
        (sha256
         (base32
-         "1n0gsnxcl0lplqk8rs5ygxrxpx389ddl6wv3ciyz9g2xry5biyfy"))))
+         "0vxnd8wnhjdfqh47nc6y1ffiy5r9a6n3g2hyk1r9bv6vhrd0ns3f"))))
     (properties `((upstream-name . "bioassayR")))
     (build-system r-build-system)
     (propagated-inputs
@@ -7602,14 +7888,14 @@ available bioactivity data.")
 (define-public r-biobroom
   (package
     (name "r-biobroom")
-    (version "1.20.0")
+    (version "1.22.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "biobroom" version))
        (sha256
         (base32
-         "06qcrprn58kbrr5kyw1jl6z88b9w9g8xs6rkhrbnz8k7rv373fhf"))))
+         "07wzamwl07p20s932aym2jkf6c1zz7d9h7kyby5ka4pw4abynlrv"))))
     (properties `((upstream-name . "biobroom")))
     (build-system r-build-system)
     (propagated-inputs
@@ -7634,14 +7920,14 @@ visualize bioinformatics analyses.")
 (define-public r-graphite
   (package
     (name "r-graphite")
-    (version "1.34.0")
+    (version "1.36.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "graphite" version))
        (sha256
         (base32
-         "0rc9cw3picz1y0lwhbzpk03ciij8kij74m15qgzh2ykla7zprb2p"))))
+         "1ihza8m397qfvr79fhghs2knmw862hwz2akysy39r8hndv6lc7wk"))))
     (properties `((upstream-name . "graphite")))
     (build-system r-build-system)
     (propagated-inputs
@@ -7661,14 +7947,14 @@ symbols).")
 (define-public r-reactomepa
   (package
     (name "r-reactomepa")
-    (version "1.32.0")
+    (version "1.34.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "ReactomePA" version))
        (sha256
         (base32
-         "1ngilyn1mihwxs4sh5gk9y829xghdmh277cfw3vfgflz9sgwy21x"))))
+         "04b2ng9jp2bsfbg3wnbg6m6a5c3szcmbypk1lx34i63228g8z98m"))))
     (properties `((upstream-name . "ReactomePA")))
     (build-system r-build-system)
     (propagated-inputs
@@ -7693,14 +7979,14 @@ enrichment analysis and several functions for visualization.")
 (define-public r-ebarrays
   (package
     (name "r-ebarrays")
-    (version "2.52.0")
+    (version "2.54.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "EBarrays" version))
        (sha256
         (base32
-         "00ld26bld8xgin9zqwxybahvhmqbrvr09jfphg0yr4j4zck6sqgf"))))
+         "1r2dl19my1hqkq01fqk48pk3agb98vgrplj56kb4srhz2xm0w9pd"))))
     (properties `((upstream-name . "EBarrays")))
     (build-system r-build-system)
     (propagated-inputs
@@ -7717,14 +8003,14 @@ microarray data.")
 (define-public r-bioccasestudies
   (package
     (name "r-bioccasestudies")
-    (version "1.50.0")
+    (version "1.52.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "BiocCaseStudies" version))
        (sha256
         (base32
-         "0fadck1dk1zavpn9yrcwx6zgfi18fw5xfs8svgzipns6bq41j8ix"))))
+         "03n49b6fvyyzmvdy4yif3cl7yv21c09c8xdx4cvvax5zz4v4sab1"))))
     (properties
      `((upstream-name . "BiocCaseStudies")))
     (build-system r-build-system)
@@ -7739,14 +8025,14 @@ monograph.")
 (define-public r-biocgraph
   (package
     (name "r-biocgraph")
-    (version "1.50.0")
+    (version "1.52.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "biocGraph" version))
        (sha256
         (base32
-         "1372bm4y3czqhpki10pnprxfkfncfcsy59zzvf8wj6q03acaavrj"))))
+         "02y7vizc6jv8y9r8chsda4yysim0ch45i3rasqvv7m85zqsskf75"))))
     (properties `((upstream-name . "biocGraph")))
     (build-system r-build-system)
     (propagated-inputs
@@ -7764,14 +8050,14 @@ different graph related packages produced by Bioconductor.")
 (define-public r-experimenthub
   (package
     (name "r-experimenthub")
-    (version "1.14.0")
+    (version "1.16.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "ExperimentHub" version))
        (sha256
         (base32
-         "18d6kjfavy5b769gpkblihdkz2nz2hsgyjki8mp1sywi0ik08ncd"))))
+         "1zi7vsrhf1hj27rlzrxl4jd81fqh1yhn0svp2d9w71fizsi71akg"))))
     (properties `((upstream-name . "ExperimentHub")))
     (build-system r-build-system)
     (propagated-inputs
@@ -7798,14 +8084,14 @@ access.")
 (define-public r-multiassayexperiment
   (package
     (name "r-multiassayexperiment")
-    (version "1.14.0")
+    (version "1.16.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "MultiAssayExperiment" version))
        (sha256
         (base32
-         "0qlfnd86999jqv2nd0ikixi2sfd449dyg3ml4nbs8ycs57c2irgh"))))
+         "1nx3gikl8vr54862h6wl0q30arnpynla085219lhh61ziswdffrs"))))
     (properties
      `((upstream-name . "MultiAssayExperiment")))
     (build-system r-build-system)
@@ -7833,14 +8119,14 @@ rownames.")
 (define-public r-bioconcotk
   (package
     (name "r-bioconcotk")
-    (version "1.8.0")
+    (version "1.10.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "BiocOncoTK" version))
        (sha256
         (base32
-         "021qzygfwdnd3naz1iqq01zr3zxv3k7wm1lklik24vc7axshxbmk"))))
+         "1jwp0gww2xyx8qfv5h4y0v3g66mmlyrd1v64xn91si4fsymk4108"))))
     (properties `((upstream-name . "BiocOncoTK")))
     (build-system r-build-system)
     (propagated-inputs
@@ -7878,14 +8164,14 @@ tools for genome-scale analysis of cancer studies.")
 (define-public r-biocor
   (package
     (name "r-biocor")
-    (version "1.12.0")
+    (version "1.14.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "BioCor" version))
        (sha256
         (base32
-         "1xghclfqv8d23g72g8914br5zjx4sz9zihzczwwmpl15lghpnqwy"))))
+         "12slrdn98h43j3y7klk3chrwa2ycwm4krhz3l3kfzbxr834mhy19"))))
     (properties `((upstream-name . "BioCor")))
     (build-system r-build-system)
     (propagated-inputs
@@ -7907,14 +8193,14 @@ gene selection, testing relationships, and so on.")
 (define-public r-biocpkgtools
   (package
     (name "r-biocpkgtools")
-    (version "1.6.0")
+    (version "1.8.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "BiocPkgTools" version))
        (sha256
         (base32
-         "0l5fvi1m4834n4h0iswbap135s9mpaiabw9czzn1r72ssz86vrcr"))))
+         "12j4vag40zdgrxfzaqvf3ly7776qyziryz04c3jqzgsqfvzvzz8m"))))
     (properties `((upstream-name . "BiocPkgTools")))
     (build-system r-build-system)
     (propagated-inputs
@@ -7957,24 +8243,27 @@ analytics on packages.")
 (define-public r-biocset
   (package
     (name "r-biocset")
-    (version "1.2.1")
+    (version "1.4.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "BiocSet" version))
        (sha256
         (base32
-         "14dmkc878lskbm001kgjyqmrwnn6s032z4h64f617f1xd9zx9wrj"))))
+         "16pjg09i0j5qk9s9qzm6fq5q0bgwb4wgqvp6scs06ajgrr07qjqg"))))
     (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-rtracklayer" ,r-rtracklayer)
-       ("r-tibble" ,r-tibble)))
+       ("r-s4vectors" ,r-s4vectors)
+       ("r-tibble" ,r-tibble)
+       ("r-tidyr" ,r-tidyr)))
     (native-inputs
      `(("r-knitr" ,r-knitr)))
     (home-page
@@ -7992,14 +8281,14 @@ accessing web references for elements/sets are also available in BiocSet.")
 (define-public r-biocworkflowtools
   (package
     (name "r-biocworkflowtools")
-    (version "1.14.0")
+    (version "1.16.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "BiocWorkflowTools" version))
        (sha256
         (base32
-         "0p9r71ql67sdlgd5pv118lhz8b85pr5y4ijfwzcy8wrr8jwlbddy"))))
+         "0lvckdy20bhgyhqbccp0rdfi2p6vvip694r27qwpyi5092nfmqh6"))))
     (properties
      `((upstream-name . "BiocWorkflowTools")))
     (build-system r-build-system)
@@ -8025,14 +8314,14 @@ Rmarkdown and LaTeX documents when authoring a Bioconductor Workflow.")
 (define-public r-biodist
   (package
     (name "r-biodist")
-    (version "1.60.0")
+    (version "1.62.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "bioDist" version))
        (sha256
         (base32
-         "17bvxk0anvsp29j5nbblvaymf8qgbj3sz4ir2l7wj8kb8jfi19cp"))))
+         "10p4iajpyqgqb35743jm1a33lwbsmax2g4vz9fbbhn2cpiq3chap"))))
     (properties `((upstream-name . "bioDist")))
     (build-system r-build-system)
     (propagated-inputs
@@ -8048,14 +8337,14 @@ distance measures.")
 (define-public r-pcatools
   (package
     (name "r-pcatools")
-    (version "2.0.0")
+    (version "2.2.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "PCAtools" version))
        (sha256
         (base32
-         "0mnwqrhm1hmhzwrpidf6z207w1ycpm572snvpp5swlg6hnxq6bnc"))))
+         "1fz9h99yyn49b5rcnkg2kjdfmczfwnc44fpwbia0izj6gx192phb"))))
     (properties `((upstream-name . "PCAtools")))
     (build-system r-build-system)
     (propagated-inputs
@@ -8094,14 +8383,14 @@ dimensional mass cytometry data.")
 (define-public r-rgreat
   (package
     (name "r-rgreat")
-    (version "1.20.0")
+    (version "1.22.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "rGREAT" version))
        (sha256
         (base32
-         "0n8dw9ibb2klsczcxvvinpi9l53w8cs436i0c8w2jmramayl593v"))))
+         "0p2b8cqxibxxmsh687y7yvlvr2a5ipiz53jb4wsr8ddypynb1asj"))))
     (properties `((upstream-name . "rGREAT")))
     (build-system r-build-system)
     (propagated-inputs
@@ -8122,14 +8411,14 @@ user's input and automatically retrieving results from GREAT web server.")
 (define-public r-m3c
   (package
     (name "r-m3c")
-    (version "1.10.0")
+    (version "1.12.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "M3C" version))
        (sha256
         (base32
-         "0zq8lm4280p8h65i7myscwa4srs5ajh944xv6zni2f5sjyp7ij2y"))))
+         "05ygi4fd85hh17mlww5wcww8d5z5zvkn2r46s4n6g18mcbv8snv5"))))
     (properties `((upstream-name . "M3C")))
     (build-system r-build-system)
     (propagated-inputs
@@ -8151,3 +8440,1291 @@ user's input and automatically retrieving results from GREAT web server.")
 simulation to eliminate overestimation of @code{K} and can reject the null
 hypothesis @code{K=1}.")
     (license license:agpl3+)))
+
+(define-public r-icens
+  (package
+    (name "r-icens")
+    (version "1.62.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "Icens" version))
+       (sha256
+        (base32
+         "1w94mvh8pai77h4fcaiyacmzs58n4kbiq6bm4z0hk24j1ywph3dr"))))
+    (properties `((upstream-name . "Icens")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-survival" ,r-survival)))
+    (home-page "https://bioconductor.org/packages/Icens")
+    (synopsis "NPMLE for censored and truncated data")
+    (description
+     "This package provides many functions for computing the
+@dfn{nonparametric maximum likelihood estimator} (NPMLE) for censored and
+truncated data.")
+    (license license:artistic2.0)))
+
+;; This is a CRAN package but it depends on r-icens, which is published on
+;; Bioconductor.
+(define-public r-interval
+  (package
+    (name "r-interval")
+    (version "1.1-0.7")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "interval" version))
+       (sha256
+        (base32
+         "1b31lh0sv7lzy76230djipahxa10lblbr37kdiigr6hp3dd1xmz9"))))
+    (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)))
+    (home-page "https://cran.r-project.org/web/packages/interval/")
+    (synopsis "Weighted Logrank tests and NPMLE for interval censored data")
+    (description
+     "This package provides functions to fit nonparametric survival curves,
+plot them, and perform logrank or Wilcoxon type tests.")
+    (license license:gpl2+)))
+
+;; This is a CRAN package, but it depends on r-interval, which depends on a
+;; Bioconductor package.
+(define-public r-fhtest
+  (package
+    (name "r-fhtest")
+    (version "1.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "FHtest" version))
+       (sha256
+        (base32
+         "00mql2r4f5hxhdqf27q3x9s5rz2zzakx2myym97b1w1s7c5znl4q"))))
+    (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)))
+    (home-page "https://cran.r-project.org/web/packages/FHtest/")
+    (synopsis "Tests for survival data based on the Fleming-Harrington class")
+    (description
+     "This package provides functions to compare two or more survival curves
+with:
+
+@itemize
+@item The Fleming-Harrington test for right-censored data based on
+  permutations and on counting processes.
+@item An extension of the Fleming-Harrington test for interval-censored data
+  based on a permutation distribution and on a score vector distribution.
+@end itemize
+")
+    (license license:gpl2+)))
+
+(define-public r-fourcseq
+  (package
+    (name "r-fourcseq")
+    (version "1.24.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "FourCSeq" version))
+       (sha256
+        (base32 "1rwdphcj26xis47n8j1fiyc3k3qbsgn0bhf5bhgy5vm11yqyvicb"))))
+    (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)))
+    (home-page
+     "https://bioconductor.org/packages/release/bioc/html/FourCSeq.html")
+    (synopsis "Analysis of multiplexed 4C sequencing data")
+    (description
+     "This package is an R package dedicated to the analysis of (multiplexed)
+4C sequencing data.  @code{r-fourcseq} provides a pipeline to detect specific
+interactions between DNA elements and identify differential interactions
+between conditions.  The statistical analysis in R starts with individual bam
+files for each sample as inputs.  To obtain these files, the package contains
+a Python script to demultiplex libraries and trim off primer sequences.  With
+a standard alignment software the required bam files can be then be
+generated.")
+    (license license:gpl3+)))
+
+(define-public r-preprocesscore
+  (package
+    (name "r-preprocesscore")
+    (version "1.52.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "preprocessCore" version))
+       (sha256
+        (base32
+         "1i5ky3bfbkrz4lgfs72fkckr8q3wq48p38mp05cjmnmh1chmdw38"))))
+    (properties
+     `((upstream-name . "preprocessCore")))
+    (build-system r-build-system)
+    (home-page "https://github.com/bmbolstad/preprocessCore")
+    (synopsis "Collection of pre-processing functions")
+    (description
+     "This package provides a library of core pre-processing and normalization
+routines.")
+    (license license:lgpl2.0+)))
+
+;; This is a CRAN package, but it depends on preprocessorcore, which is a
+;; Bioconductor package.
+(define-public r-wgcna
+  (package
+    (name "r-wgcna")
+    (version "1.69")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "WGCNA" version))
+       (sha256
+        (base32
+         "022hkprnrafvggi8pkjffkvk1qlnibmbbxxrni00wkrdbga5589f"))))
+    (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)))
+    (home-page
+     "http://www.genetics.ucla.edu/labs/horvath/CoexpressionNetwork/Rpackages/WGCNA/")
+    (synopsis "Weighted correlation network analysis")
+    (description
+     "This package provides functions necessary to perform Weighted
+Correlation Network Analysis on high-dimensional data.  It includes functions
+for rudimentary data cleaning, construction and summarization of correlation
+networks, module identification and functions for relating both variables and
+modules to sample traits.  It also includes a number of utility functions for
+data manipulation and visualization.")
+    (license license:gpl2+)))
+
+(define-public r-rgraphviz
+  (package
+    (name "r-rgraphviz")
+    (version "2.34.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "Rgraphviz" version))
+       (sha256
+        (base32
+         "1k0nrskak2v5xv7za226r3wypja3zxxmmc0cxz2imjhlgnkbha77"))))
+    (properties `((upstream-name . "Rgraphviz")))
+    (build-system r-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'make-reproducible
+           (lambda _
+             ;; The replacement value is taken from src/graphviz/builddate.h
+             (substitute* "src/graphviz/configure"
+               (("VERSION_DATE=.*")
+                "VERSION_DATE=20200427.2341\n"))
+             #t)))))
+    ;; 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)))
+    (propagated-inputs
+     `(("r-graph" ,r-graph)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (home-page "https://bioconductor.org/packages/Rgraphviz")
+    (synopsis "Plotting capabilities for R graph objects")
+    (description
+     "This package interfaces R with the graphviz library for plotting R graph
+objects from the @code{graph} package.")
+    (license license:epl1.0)))
+
+(define-public r-fithic
+  (package
+    (name "r-fithic")
+    (version "1.16.0")
+    (source (origin
+              (method url-fetch)
+              (uri (bioconductor-uri "FitHiC" version))
+              (sha256
+               (base32
+                "1sdfkqc6s7m9whkzr0mllzzfjzhj2g54ncjwxj8q0azjgszrfwd2"))))
+    (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)))
+    (native-inputs
+     `(("r-knitr" ,r-knitr)))
+    (home-page "https://bioconductor.org/packages/FitHiC")
+    (synopsis "Confidence estimation for intra-chromosomal contact maps")
+    (description
+     "Fit-Hi-C is a tool for assigning statistical confidence estimates to
+intra-chromosomal contact maps produced by genome-wide genome architecture
+assays such as Hi-C.")
+    (license license:gpl2+)))
+
+(define-public r-hitc
+  (package
+    (name "r-hitc")
+    (version "1.34.0")
+    (source (origin
+              (method url-fetch)
+              (uri (bioconductor-uri "HiTC" version))
+              (sha256
+               (base32
+                "1xbh36qgmzl8b6xq0hnl41li2x18yma50fq0v4dglh2ddn7as9iy"))))
+    (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)))
+    (home-page "https://bioconductor.org/packages/HiTC")
+    (synopsis "High throughput chromosome conformation capture analysis")
+    (description
+     "The HiTC package was developed to explore high-throughput \"C\" data
+such as 5C or Hi-C.  Dedicated R classes as well as standard methods for
+quality controls, normalization, visualization, and further analysis are also
+provided.")
+    (license license:artistic2.0)))
+
+(define-public r-hdf5array
+  (package
+    (name "r-hdf5array")
+    (version "1.18.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "HDF5Array" version))
+       (sha256
+        (base32
+         "1hr149q03p09y1cjnx8av854j53041wfyq66xpsjw4mypzjf6f28"))))
+    (properties `((upstream-name . "HDF5Array")))
+    (build-system r-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-linking
+           (lambda _
+             (substitute* "src/Makevars"
+               ;; This is to avoid having a plain directory on the list of
+               ;; libraries to link.
+               (("\\(RHDF5LIB_LIBS\\)" match)
+                (string-append match "/libhdf5.a")))
+             #t)))))
+    (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-rhdf5lib" ,r-rhdf5lib)
+       ("r-s4vectors" ,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
+access and manipulation of HDF5 datasets.  It supports delayed operations and
+block processing.")
+    (license license:artistic2.0)))
+
+(define-public r-rhdf5lib
+  (package
+    (name "r-rhdf5lib")
+    (version "1.12.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "Rhdf5lib" version))
+       (sha256
+        (base32
+         "0wia85a6dkgibsjcmpqas5068msck3h3bqpgw2x07bk189z4vay2"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin
+           ;; Delete bundled binaries
+           (delete-file-recursively "src/wininclude/")
+           (delete-file-recursively "src/winlib-4.9.3/")
+           (delete-file-recursively "src/winlib-8.3.0/")
+           (delete-file "src/hdf5small_cxx_hl_1.10.6.tar.gz")
+           #t))))
+    (properties `((upstream-name . "Rhdf5lib")))
+    (build-system r-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'do-not-use-bundled-hdf5
+           (lambda* (#:key inputs #:allow-other-keys)
+             (for-each delete-file '("configure" "configure.ac"))
+             ;; Do not make other packages link with the proprietary libsz.
+             (substitute* "R/zzz.R"
+               ((" \"%s/libsz.a\"") ""))
+             (with-directory-excursion "src"
+               (invoke "tar" "xvf" (assoc-ref inputs "hdf5-source"))
+               (rename-file (string-append "hdf5-" ,(package-version hdf5-1.10))
+                            "hdf5")
+               ;; Remove timestamp and host system information to make
+               ;; the build reproducible.
+               (substitute* "hdf5/src/libhdf5.settings.in"
+                 (("Configured on: @CONFIG_DATE@")
+                  "Configured on: Guix")
+                 (("Uname information:.*")
+                  "Uname information: Linux\n")
+                 ;; Remove unnecessary store reference.
+                 (("C Compiler:.*")
+                  "C Compiler: GCC\n"))
+               (rename-file "hdf5/src/libhdf5.settings.in"
+                            "hdf5/src/libhdf5.settings")
+               (rename-file "Makevars.in" "Makevars")
+               (substitute* "Makevars"
+                 (("@ZLIB_LIB@") "-lz")
+                 (("@ZLIB_INCLUDE@") "")
+                 (("HDF5_CXX_LIB=.*")
+                  (string-append "HDF5_CXX_LIB="
+                                 (assoc-ref inputs "hdf5") "/lib/libhdf5_cpp.a\n"))
+                 (("HDF5_LIB=.*")
+                  (string-append "HDF5_LIB="
+                                 (assoc-ref inputs "hdf5") "/lib/libhdf5.a\n"))
+                 (("HDF5_CXX_INCLUDE=.*") "HDF5_CXX_INCLUDE=./hdf5/c++/src\n")
+                 (("HDF5_INCLUDE=.*") "HDF5_INCLUDE=./hdf5/src\n")
+                 (("HDF5_HL_INCLUDE=.*") "HDF5_HL_INCLUDE=./hdf5/hl/src\n")
+                 (("HDF5_HL_CXX_INCLUDE=.*") "HDF5_HL_CXX_INCLUDE=./hdf5/hl/c++/src\n")
+                 (("HDF5_HL_LIB=.*")
+                  (string-append "HDF5_HL_LIB="
+                                 (assoc-ref inputs "hdf5") "/lib/libhdf5_hl.a\n"))
+                 (("HDF5_HL_CXX_LIB=.*")
+                  (string-append "HDF5_HL_CXX_LIB="
+                                 (assoc-ref inputs "hdf5") "/lib/libhdf5_hl_cpp.a\n"))
+                 ;; szip is non-free software
+                 (("cp \"\\$\\{SZIP_LIB\\}.*") "")
+                 (("PKG_LIBS =.*") "PKG_LIBS = -lz -lhdf5\n")))
+             #t)))))
+    (inputs
+     `(("zlib" ,zlib)))
+    (propagated-inputs
+     `(("hdf5" ,hdf5-1.10)))
+    (native-inputs
+     `(("hdf5-source" ,(package-source hdf5-1.10))
+       ("r-knitr" ,r-knitr)))
+    (home-page "https://bioconductor.org/packages/Rhdf5lib")
+    (synopsis "HDF5 library as an R package")
+    (description "This package provides C and C++ HDF5 libraries for use in R
+packages.")
+    (license license:artistic2.0)))
+
+(define-public r-beachmat
+  (package
+    (name "r-beachmat")
+    (version "2.6.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "beachmat" version))
+       (sha256
+        (base32
+         "1yxm5andf4hsxxsmwrn5vl79707yfqkhzzajq6fvhsmaad3f97n7"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-biocgenerics" ,r-biocgenerics)
+       ("r-delayedarray" ,r-delayedarray)
+       ("r-matrix" ,r-matrix)))
+    (native-inputs
+     `(("r-knitr" ,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
+variety of commonly used matrix types, including sparse and HDF5-backed
+matrices.")
+    (license license:gpl3)))
+
+(define-public r-singlecellexperiment
+  (package
+    (name "r-singlecellexperiment")
+    (version "1.12.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "SingleCellExperiment" version))
+       (sha256
+        (base32
+         "0wpgb2rhxxlclpmwl08iyfy204f7gpj8ijd0qdy4j41c58bl4qm2"))))
+    (properties
+     `((upstream-name . "SingleCellExperiment")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-biocgenerics" ,r-biocgenerics)
+       ("r-s4vectors" ,r-s4vectors)
+       ("r-summarizedexperiment" ,r-summarizedexperiment)))
+    (native-inputs
+     `(("r-knitr" ,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
+single-cell experiments.  This includes specialized methods to store and
+retrieve spike-in information, dimensionality reduction coordinates and size
+factors for each cell, along with the usual metadata for genes and
+libraries.")
+    (license license:gpl3)))
+
+(define-public r-scuttle
+  (package
+    (name "r-scuttle")
+    (version "1.0.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "scuttle" version))
+       (sha256
+        (base32
+         "0l2r6fhyd33dllf2mc5a1pd5sawfvcin54pgh9l1nafqzg3sdv2m"))))
+    (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)))
+    (home-page "https://bioconductor.org/packages/scuttle")
+    (synopsis "Single-cell RNA-Seq analysis utilities")
+    (description
+     "This package provides basic utility functions for performing single-cell
+analyses, focusing on simple normalization, quality control and data
+transformations.  It also provides some helper functions to assist development
+of other packages.")
+    (license license:gpl3)))
+
+(define-public r-scater
+  (package
+    (name "r-scater")
+    (version "1.18.3")
+    (source (origin
+              (method url-fetch)
+              (uri (bioconductor-uri "scater" version))
+              (sha256
+               (base32
+                "14f7yw277nykxmcm7wlhlsf3nizpwzz24hax1icx73lavfxmc535"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("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-rlang" ,r-rlang)
+       ("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)))
+    (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
+various analyses of single-cell RNA-seq gene expression data, with a focus on
+quality control.")
+    (license license:gpl2+)))
+
+(define-public r-scran
+  (package
+    (name "r-scran")
+    (version "1.18.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "scran" version))
+       (sha256
+        (base32
+         "1zap12rm61z2hg6ykknbif478nr7g468v8mp50bj5hqgi69ywcww"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-beachmat" ,r-beachmat)
+       ("r-bh" ,r-bh)
+       ("r-biocgenerics" ,r-biocgenerics)
+       ("r-biocneighbors" ,r-biocneighbors)
+       ("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-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)))
+    (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
+single-cell RNA-seq data.  Methods are provided for normalization of
+cell-specific biases, assignment of cell cycle phase, and detection of highly
+variable and significantly correlated genes.")
+    (license license:gpl3)))
+
+(define-public r-sparsematrixstats
+  (package
+    (name "r-sparsematrixstats")
+    (version "1.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "sparseMatrixStats" version))
+       (sha256
+        (base32
+         "0d1idbda1pzhdam9m0i5rn0c6pl7gwv0v3mcrv4wi5760v9qd5qh"))))
+    (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)))
+    (home-page "https://bioconductor.org/packages/sparseMatrixStats/")
+    (synopsis "Summary statistics for rows and columns of sparse matrices")
+    (description
+     "This package provides high performance functions for row and column
+operations on sparse matrices.  Currently, the optimizations are limited to
+data in the column sparse format.")
+    (license license:expat)))
+
+(define-public r-delayedmatrixstats
+  (package
+    (name "r-delayedmatrixstats")
+    (version "1.12.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "DelayedMatrixStats" version))
+       (sha256
+        (base32
+         "1cyvj6ffl10vaiip146dldc1w8if854kpz9nhi50ndhpkmdb8sa0"))))
+    (properties
+     `((upstream-name . "DelayedMatrixStats")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-biocparallel" ,r-biocparallel)
+       ("r-delayedarray" ,r-delayedarray)
+       ("r-hdf5array" ,r-hdf5array)
+       ("r-iranges" ,r-iranges)
+       ("r-matrix" ,r-matrix)
+       ("r-matrixgenerics" ,r-matrixgenerics)
+       ("r-matrixstats" ,r-matrixstats)
+       ("r-s4vectors" ,r-s4vectors)
+       ("r-sparsematrixstats" ,r-sparsematrixstats)))
+    (native-inputs
+     `(("r-knitr" ,r-knitr)))
+    (home-page "https://github.com/PeteHaitch/DelayedMatrixStats")
+    (synopsis "Functions that apply to rows and columns of DelayedMatrix objects")
+    (description
+     "This package provides a port of the @code{matrixStats} API for use with
+@code{DelayedMatrix} objects from the @code{DelayedArray} package.  It
+contains high-performing functions operating on rows and columns of
+@code{DelayedMatrix} objects, e.g. @code{colMedians}, @code{rowMedians},
+@code{colRanks}, @code{rowRanks}, @code{colSds}, and @code{rowSds}.  Functions
+are optimized per data type and for subsetted calculations such that both
+memory usage and processing time is minimized.")
+    (license license:expat)))
+
+(define-public r-mscoreutils
+  (package
+    (name "r-mscoreutils")
+    (version "1.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "MsCoreUtils" version))
+       (sha256
+        (base32
+         "0fa3bcf2cmzf5y8wjs7pnzs26qwgqnrrl4hj4sa4fp9kv8z80630"))))
+    (properties `((upstream-name . "MsCoreUtils")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-mass" ,r-mass)
+       ("r-rcpp" ,r-rcpp)
+       ("r-s4vectors" ,r-s4vectors)))
+    (native-inputs
+     `(("r-knitr" ,r-knitr)))
+    (home-page "https://github.com/RforMassSpectrometry/MsCoreUtils")
+    (synopsis "Core utils for mass spectrometry data")
+    (description
+     "This package defines low-level functions for mass spectrometry data and
+is independent of any high-level data structures.  These functions include
+mass spectra processing functions (noise estimation, smoothing, binning),
+quantitative aggregation functions (median polish, robust summarisation,
+etc.), missing data imputation, data normalisation (quantiles, vsn, etc.) as
+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-biocio
+  (package
+    (name "r-biocio")
+    (version "1.0.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (bioconductor-uri "BiocIO" version))
+        (sha256
+          (base32
+            "06gg5ra3r7q4b6mz14c2s9d453cnh1lxh517ffl9f8dr8vwv5s18"))))
+    (properties `((upstream-name . "BiocIO")))
+    (build-system r-build-system)
+    (propagated-inputs
+      `(("r-biocgenerics" ,r-biocgenerics)
+        ("r-genomicranges" ,r-genomicranges)
+        ("r-rcurl" ,r-rcurl)
+        ("r-s4vectors" ,r-s4vectors)))
+    (native-inputs
+     `(("r-knitr" ,r-knitr)))
+    (home-page "https://bioconductor.org/packages/BiocIO")
+    (synopsis "Standard input and output for Bioconductor packages")
+    (description
+      "This package implements `import()` and `export()` standard generics for
+importing and exporting biological data formats. `import()` supports
+whole-file as well as chunk-wise iterative import.  The `import()` interface
+optionally provides a standard mechanism for 'lazy' access via `filter()` (on
+row or element-like components of the file resource), `select()` (on
+column-like components of the file resource) and `collect()`.  The `import()`
+interface optionally provides transparent access to remote (e.g.  via https)
+as well as local access.  Developers can register a file extension, e.g.,
+`.loom` for dispatch from character-based URIs to specific `import()` /
+`export()` methods based on classes representing file types, e.g.,
+`LoomFile()`.")
+    (license license:artistic2.0)))
+
+(define-public r-msmseda
+  (package
+    (name "r-msmseda")
+    (version "1.28.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "msmsEDA" version))
+       (sha256
+        (base32
+         "1llmy8msxmrqik3s3439wffma1662vwvvcaz8q0a4g5ridkmdbrx"))))
+    (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)))
+    (home-page
+     "https://bioconductor.org/packages/msmsEDA")
+    (synopsis "Exploratory data analysis of LC-MS/MS data by spectral counts")
+    (description
+     "Exploratory data analysis to assess the quality of a set of LC-MS/MS
+experiments, and visualize de influence of the involved factors.")
+    (license license:gpl2)))
+
+(define-public r-msmstests
+  (package
+    (name "r-msmstests")
+    (version "1.28.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "msmsTests" version))
+       (sha256
+        (base32
+         "1zsnmzj1qvjdwz7mwg9wrsk5iskpqs0f6jccqn8mxy9dgkskmp0j"))))
+    (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)))
+    (home-page
+     "https://bioconductor.org/packages/msmsTests")
+    (synopsis "Differential LC-MS/MS expression tests")
+    (description
+     "This packages provides statistical tests for label-free LC-MS/MS data
+by spectral counts, to discover differentially expressed proteins between two
+biological conditions.  Three tests are available: Poisson GLM regression,
+quasi-likelihood GLM regression, and the negative binomial of the edgeR
+package.The three models admit blocking factors to control for nuissance
+variables.To assure a good level of reproducibility a post-test filter is
+available, where we may set the minimum effect size considered biologicaly
+relevant, and the minimum expression of the most abundant condition.")
+    (license license:gpl2)))
+
+(define-public r-catalyst
+  (package
+    (name "r-catalyst")
+    (version "1.14.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (bioconductor-uri "CATALYST" version))
+        (sha256
+          (base32
+            "13af7c4irx1f5yqi32k7kj661vzg32wn3dnps7r9pjijfl4drhrh"))))
+    (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)))
+    (home-page
+      "https://github.com/HelenaLC/CATALYST")
+    (synopsis "Cytometry data analysis tools")
+    (description
+      "This package is Cytometry dATa anALYSis Tools (CATALYST).  Mass
+cytometry (CyTOF) uses heavy metal isotopes rather than fluorescent tags as
+reporters to label antibodies, thereby substantially decreasing spectral
+overlap and allowing for examination of over 50 parameters at the single cell
+level.  While spectral overlap is significantly less pronounced in CyTOF than
+flow cytometry, spillover due to detection sensitivity, isotopic impurities,
+and oxide formation can impede data interpretability.  We designed
+CATALYST (Cytometry dATa anALYSis Tools) to provide a pipeline for
+preprocessing of cytometry data, including i) normalization using bead
+standards, ii) single-cell deconvolution, and iii) bead-based compensation.")
+    (license license:gpl2+)))
+
+(define-public r-erma
+  (package
+    (name "r-erma")
+    (version "1.6.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "erma" version))
+       (sha256
+        (base32
+         "1k2j1xhv0vwn45xmh8ds0gz812px5hnpgzvp37ngsdn4j5ai1l0k"))))
+    (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)))
+    (native-inputs
+     `(("r-knitr" ,r-knitr)))
+    (home-page "https://bioconductor.org/packages/erma")
+    (synopsis "Epigenomic road map adventures")
+    (description
+     "The epigenomics road map describes locations of epigenetic marks in DNA
+from a variety of cell types.  Of interest are locations of histone
+modifications, sites of DNA methylation, and regions of accessible chromatin.
+This package presents a selection of elements of the road map including
+metadata and outputs of the ChromImpute procedure applied to ENCODE cell lines
+by Ernst and Kellis.")
+    (license license:artistic2.0)))
+
+(define-public r-ggbio
+  (package
+    (name "r-ggbio")
+    (version "1.38.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "ggbio" version))
+       (sha256
+        (base32
+         "0vabil4jzrlv01aibqjhdkvrv2bf2kkpsidrkjj06isqr5fz54lw"))))
+    (build-system r-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         ;; See https://github.com/tengfei/ggbio/issues/117
+         ;; This fix will be included in the next release.
+         (add-after 'unpack 'fix-typo
+           (lambda _
+             (substitute* "R/GGbio-class.R"
+               (("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)))
+    (home-page "http://www.tengfei.name/ggbio/")
+    (synopsis "Visualization tools for genomic data")
+    (description
+     "The ggbio package extends and specializes the grammar of graphics for
+biological data.  The graphics are designed to answer common scientific
+questions, in particular those often asked of high throughput genomics data.
+All core Bioconductor data structures are supported, where appropriate.  The
+package supports detailed views of particular genomic regions, as well as
+genome-wide overviews.  Supported overviews include ideograms and grand linear
+views.  High-level plots include sequence fragment length, edge-linked
+interval to data view, mismatch pileup, and several splicing summaries.")
+    (license license:artistic2.0)))
+
+(define-public r-gqtlbase
+  (package
+    (name "r-gqtlbase")
+    (version "1.21.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "gQTLBase" version))
+       (sha256
+        (base32
+         "0nipibm1bk9k70ajbw1f6vjmz0dh7gk21l17q3m54bnawxsggrfh"))))
+    (properties `((upstream-name . "gQTLBase")))
+    (build-system r-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         ;; This is an upstream bug.
+         (add-after 'unpack 'fix-imports
+           (lambda _
+             (substitute* "NAMESPACE"
+               ((".*maxffmode.*") "")
+               (("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)))
+    (home-page "https://bioconductor.org/packages/gQTLBase")
+    (synopsis "Infrastructure for eQTL, mQTL and similar studies")
+    (description
+     "The purpose of this package is to simplify the storage and interrogation
+of @dfn{quantitative trait loci} (QTL) archives, such as eQTL, mQTL, dsQTL,
+and more.")
+    (license license:artistic2.0)))
+
+(define-public r-gqtlstats
+  (package
+    (name "r-gqtlstats")
+    (version "1.21.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "gQTLstats" version))
+       (sha256
+        (base32
+         "1h78l23idf867djmdk97b02jxgmz4vfr2dai01fp648d0lsx5mkl"))))
+    (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)))
+    (home-page "https://bioconductor.org/packages/gQTLstats")
+    (synopsis "Computationally efficient analysis for eQTL and allied studies")
+    (description
+     "This package provides tools for the computationally efficient analysis
+of @dfn{quantitative trait loci} (QTL) data, including eQTL, mQTL, dsQTL, etc.
+The software in this package aims to support refinements and functional
+interpretation of members of a collection of association statistics on a
+family of feature/genome hypotheses.")
+    (license license:artistic2.0)))
+
+(define-public r-gviz
+  (package
+    (name "r-gviz")
+    (version "1.34.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "Gviz" version))
+       (sha256
+        (base32
+         "0v7bz46b91dnrr55ah42ljj1i2xs3090s4w0lw8098pag00p4vh2"))))
+    (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)))
+    (home-page "https://bioconductor.org/packages/Gviz")
+    (synopsis "Plotting data and annotation information along genomic coordinates")
+    (description
+     "Genomic data analyses requires integrated visualization of known genomic
+information and new experimental data.  Gviz uses the biomaRt and the
+rtracklayer packages to perform live annotation queries to Ensembl and UCSC
+and translates this to e.g. gene/transcript structures in viewports of the
+grid graphics package.  This results in genomic information plotted together
+with your data.")
+    (license license:artistic2.0)))
+
+(define-public r-gwascat
+  (package
+    (name "r-gwascat")
+    (version "2.22.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "gwascat" version))
+       (sha256
+        (base32
+         "1aqi1ny93virnzsxkh9ccx3mws70bgv0r8nwgla09vffb7f16nna"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-annotationdbi" ,r-annotationdbi)
+       ("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)))
+    (native-inputs
+     `(("r-knitr" ,r-knitr)))
+    (home-page "https://bioconductor.org/packages/gwascat")
+    (synopsis "Tools for data in the EMBL-EBI GWAS catalog")
+    (description
+     "This package provides tools for representing and modeling data in the
+EMBL-EBI GWAS catalog.")
+    (license license:artistic2.0)))
+
+(define-public r-kegggraph
+  (package
+    (name "r-kegggraph")
+    (version "1.50.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "KEGGgraph" version))
+       (sha256
+        (base32 "1h293hn02ysm923bh9gxk87xv663xiqchqcvpaxpla9c3yrgkx2v"))))
+    (properties `((upstream-name . "KEGGgraph")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-graph" ,r-graph)
+       ("r-rcurl" ,r-rcurl)
+       ("r-xml" ,r-xml)))
+    (home-page "https://bioconductor.org/packages/KEGGgraph")
+    (synopsis "Graph approach to Kegg Pathway database in R and Bioconductor")
+    (description
+     "@code{r-kegggraph} is an interface between Kegg Pathway database and graph
+object as well as a collection of tools to analyze, dissect and visualize these
+graphs.  It parses the regularly updated kgml (Kegg XML) files into graph models
+maintaining all essential pathway attributes.  The package offers
+functionalities including parsing, graph operation, visualization and etc.")
+    (license license:gpl2+)))
+
+(define-public r-ldblock
+  (package
+    (name "r-ldblock")
+    (version "1.20.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "ldblock" version))
+       (sha256
+        (base32
+         "09i3ikv0axks9g842z1pjsc8x0fba51zyyc218h0bylbi1n9cdkm"))))
+    (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)))
+    (native-inputs
+     `(("r-knitr" ,r-knitr)))
+    (home-page "https://bioconductor.org/packages/ldblock")
+    (synopsis "Data structures for linkage disequilibrium measures in populations")
+    (description
+     "This package defines data structures for @dfn{linkage
+disequilibrium} (LD) measures in populations.  Its purpose is to simplify
+handling of existing population-level data for the purpose of flexibly
+defining LD blocks.")
+    (license license:artistic2.0)))
+
+;; This is a CRAN package, but it depends on r-snpstats, which is a
+;; Bioconductor package.
+(define-public r-ldheatmap
+  (package
+    (name "r-ldheatmap")
+    (version "1.0-4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "LDheatmap" version))
+       (sha256
+        (base32
+         "1jp578cf29qcgx95w10lpymlwx2pgjsf0nypwkl9b8g635gkisq7"))))
+    (properties `((upstream-name . "LDheatmap")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-genetics" ,r-genetics)
+       ("r-rcpp" ,r-rcpp)
+       ("r-snpstats" ,r-snpstats)))
+    (home-page "https://stat.sfu.ca/statgen/research/ldheatmap.html")
+    (synopsis "Graphical display of pairwise linkage disequilibria between SNPs")
+    (description
+     "This package provides tools to produce a graphical display, as a heat
+map, of measures of pairwise linkage disequilibria between SNPs.  Users may
+optionally include the physical locations or genetic map distances of each SNP
+on the plot.")
+    (license license:gpl3)))
+
+(define-public r-pathview
+  (package
+    (name "r-pathview")
+    (version "1.30.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "pathview" version))
+       (sha256
+        (base32 "11fisiksw1y64ii9q8p2znyp9w8mlqzgiaacmycw59rngkjlmbs4"))))
+    (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)))
+    (home-page "https://pathview.uncc.edu/")
+    (synopsis "Tool set for pathway based data integration and visualization")
+    (description
+     "@code{r-pathview} is a tool set for pathway based data integration and
+visualization.  It maps and renders a wide variety of biological data on
+relevant pathway graphs.  All users need is to supply their data and specify
+the target pathway.  This package automatically downloads the pathway graph
+data, parses the data file, maps user data to the pathway, and render pathway
+graph with the mapped data.  In addition, @code{r-pathview} also seamlessly
+integrates with pathway and gene set (enrichment) analysis tools for
+large-scale and fully automated analysis.")
+    (license license:gpl3+)))
+
+(define-public r-snpstats
+  (package
+    (name "r-snpstats")
+    (version "1.40.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "snpStats" version))
+       (sha256
+        (base32
+         "1298a71swwav53yf9kfqkdpach3818plqcbw0lgb6sibs8y8ff24"))))
+    (properties `((upstream-name . "snpStats")))
+    (build-system r-build-system)
+    (inputs `(("zlib" ,zlib)))
+    (propagated-inputs
+     `(("r-biocgenerics" ,r-biocgenerics)
+       ("r-matrix" ,r-matrix)
+       ("r-survival" ,r-survival)
+       ("r-zlibbioc" ,r-zlibbioc)))
+    (home-page "https://bioconductor.org/packages/snpStats")
+    (synopsis "Methods for SNP association studies")
+    (description
+     "This package provides classes and statistical methods for large
+@dfn{single-nucleotide polymorphism} (SNP) association studies.  This extends
+the earlier snpMatrix package, allowing for uncertainty in genotypes.")
+    (license license:gpl3)))
+
+(define-public r-sushi
+  (package
+    (name "r-sushi")
+    (version "1.28.0")
+    (source (origin
+              (method url-fetch)
+              (uri (bioconductor-uri "Sushi" version))
+              (sha256
+               (base32
+                "0ksj4f9z14mjsv6ssg5dwhpldw4r7wpdsln2if5g486mm1c56r8p"))))
+    (properties `((upstream-name . "Sushi")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-biomart" ,r-biomart)
+       ("r-zoo" ,r-zoo)))
+    (home-page "https://bioconductor.org/packages/Sushi")
+    (synopsis "Tools for visualizing genomics data")
+    (description
+     "This package provides flexible, quantitative, and integrative genomic
+visualizations for publication-quality multi-panel figures.")
+    (license license:gpl2+)))
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 57bfcf8207..8514306f94 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -1,23 +1,24 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2015, 2016, 2017, 2018 Ben Woodcroft <donttrustben@gmail.com>
-;;; Copyright © 2015, 2016 Pjotr Prins <pjotr.guix@thebird.nl>
+;;; Copyright © 2015, 2016, 2018, 2019, 2020 Pjotr Prins <pjotr.guix@thebird.nl>
 ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2016, 2020 Roel Janssen <roel@gnu.org>
-;;; 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, 2020 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2016, 2018 Raoul Bonnal <ilpuccio.febo@gmail.com>
 ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net>
 ;;; Copyright © 2018 Joshua Sierles, Nextjournal <joshua@nextjournal.com>
 ;;; Copyright © 2018 Gábor Boskovits <boskovits@gmail.com>
-;;; Copyright © 2018, 2019 Mădălin Ionel Patrașcu <madalinionel.patrascu@mdc-berlin.de>
-;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2018, 2019, 2020, 2021 Mădălin Ionel Patrașcu <madalinionel.patrascu@mdc-berlin.de>
+;;; Copyright © 2019, 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2019 Brian Leung <bkleung89@gmail.com>
 ;;; Copyright © 2019 Brett Gilio <brettg@gnu.org>
 ;;; Copyright © 2020 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
 ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
 ;;; Copyright © 2020 Pierre Langlois <pierre.langlois@gmx.com>
+;;; Copyright © 2020 Bonface Munyoki Kilyungi <bonfacemunyoki@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -56,6 +57,7 @@
   #:use-module (guix build-system trivial)
   #:use-module (guix deprecation)
   #:use-module (gnu packages)
+  #:use-module (gnu packages assembly)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages algebra)
   #:use-module (gnu packages base)
@@ -65,6 +67,8 @@
   #:use-module (gnu packages boost)
   #:use-module (gnu packages check)
   #:use-module (gnu packages code)
+  #:use-module (gnu packages commencement)
+  #:use-module (gnu packages cmake)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages cpio)
   #:use-module (gnu packages cran)
@@ -81,6 +85,7 @@
   #:use-module (gnu packages golang)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages graph)
+  #:use-module (gnu packages graphics)
   #:use-module (gnu packages graphviz)
   #:use-module (gnu packages groff)
   #:use-module (gnu packages gtk)
@@ -90,6 +95,7 @@
   #:use-module (gnu packages haskell-web)
   #:use-module (gnu packages haskell-xyz)
   #:use-module (gnu packages image)
+  #:use-module (gnu packages image-processing)
   #:use-module (gnu packages imagemagick)
   #:use-module (gnu packages java)
   #:use-module (gnu packages java-compression)
@@ -102,6 +108,7 @@
   #:use-module (gnu packages maths)
   #:use-module (gnu packages mpi)
   #:use-module (gnu packages ncurses)
+  #:use-module (gnu packages node)
   #:use-module (gnu packages ocaml)
   #:use-module (gnu packages pcre)
   #:use-module (gnu packages parallel)
@@ -112,10 +119,12 @@
   #:use-module (gnu packages popt)
   #:use-module (gnu packages protobuf)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages python-check)
   #:use-module (gnu packages python-compression)
   #:use-module (gnu packages python-science)
   #:use-module (gnu packages python-web)
   #:use-module (gnu packages python-xyz)
+  #:use-module (gnu packages rdf)
   #:use-module (gnu packages readline)
   #:use-module (gnu packages ruby)
   #:use-module (gnu packages serialization)
@@ -134,6 +143,7 @@
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg)
   #:use-module (srfi srfi-1)
+  #:use-module (srfi srfi-26)
   #:use-module (ice-9 match))
 
 (define-public aragorn
@@ -313,7 +323,7 @@ BAM files.")
 (define-public bcftools
   (package
     (name "bcftools")
-    (version "1.9")
+    (version "1.11")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/samtools/bcftools/"
@@ -321,11 +331,11 @@ BAM files.")
                                   version "/bcftools-" version ".tar.bz2"))
               (sha256
                (base32
-                "1j3h638i8kgihzyrlnpj82xg1b23sijibys9hvwari3fy7kd0dkg"))
+                "0r508mp15pqzf8r1269kb4v5naw9zsvbwd3cz8s1yj7carsf9viw"))
               (modules '((guix build utils)))
               (snippet '(begin
                           ;; Delete bundled htslib.
-                          (delete-file-recursively "htslib-1.9")
+                          (delete-file-recursively "htslib-1.11")
                           #t))))
     (build-system gnu-build-system)
     (arguments
@@ -354,6 +364,28 @@ transparently with both VCFs and BCFs, both uncompressed and BGZF-compressed.")
     ;; The sources are dual MIT/GPL, but becomes GPL-only when USE_GPL=1.
     (license (list license:gpl3+ license:expat))))
 
+(define-public bcftools-1.9
+  (package (inherit bcftools)
+    (name "bcftools")
+    (version "1.9")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://github.com/samtools/bcftools/"
+                                  "releases/download/"
+                                  version "/bcftools-" version ".tar.bz2"))
+              (sha256
+               (base32
+                "1j3h638i8kgihzyrlnpj82xg1b23sijibys9hvwari3fy7kd0dkg"))
+              (modules '((guix build utils)))
+              (snippet '(begin
+                          ;; Delete bundled htslib.
+                          (delete-file-recursively "htslib-1.9")
+                          #t))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("htslib" ,htslib-1.9)
+       ("perl" ,perl)))))
+
 (define-public bedops
   (package
     (name "bedops")
@@ -437,7 +469,7 @@ computational cluster.")
     (native-inputs
      `(("python" ,python-wrapper)))
     (inputs
-     `(("samtools" ,samtools)
+     `(("samtools" ,samtools-1.9)
        ("zlib" ,zlib)))
     (home-page "https://github.com/arq5x/bedtools2")
     (synopsis "Tools for genome analysis and arithmetic")
@@ -1646,7 +1678,8 @@ gapped, local, and paired-end alignment modes.")
        (modify-phases %standard-phases
          (delete 'configure))))
     (inputs
-     `(("tbb" ,tbb)
+     `(("python-wrapper" ,python-wrapper)
+       ("tbb" ,tbb)
        ("zlib" ,zlib)))
     (supported-systems '("x86_64-linux"))
     (home-page "http://bowtie-bio.sourceforge.net/index.shtml")
@@ -1683,6 +1716,17 @@ genome (2.9 GB for paired-end).")
      '(#:parallel-build? #f             ; not supported
        #:phases
        (modify-phases %standard-phases
+         (add-after 'set-paths 'hide-default-gcc
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((gcc (assoc-ref inputs "gcc")))
+               ;; Remove the default GCC from CPLUS_INCLUDE_PATH to prevent
+               ;; conflicts with the GCC 5 input.
+               (setenv "CPLUS_INCLUDE_PATH"
+                       (string-join
+                        (delete (string-append gcc "/include/c++")
+                                (string-split (getenv "CPLUS_INCLUDE_PATH") #\:))
+                        ":"))
+               #t)))
          (add-after 'unpack 'use-system-samtools
            (lambda* (#:key inputs #:allow-other-keys)
              (substitute* "src/Makefile.in"
@@ -1705,7 +1749,7 @@ genome (2.9 GB for paired-end).")
                (("#include <sam.h>") "#include <samtools/sam.h>"))
              #t)))))
     (native-inputs
-     `(("gcc" ,gcc-5))) ;; doesn't build with later versions
+     `(("gcc@5" ,gcc-5))) ;; doesn't build with later versions
     (inputs
      `(("boost" ,boost)
        ("bowtie" ,bowtie)
@@ -1943,7 +1987,7 @@ multiple sequence alignments.")
                ;; FIXME: tests keep timing out on some systems.
                (invoke "nosetests" "-v" "--processes" "1")))))))
     (propagated-inputs
-     `(("htslib" ,htslib))) ; Included from installed header files.
+     `(("htslib" ,htslib-1.9))) ; Included from installed header files.
     (inputs
      `(("ncurses" ,ncurses)
        ("curl" ,curl)
@@ -1951,8 +1995,8 @@ multiple sequence alignments.")
     (native-inputs
      `(("python-cython" ,python-cython)
        ;; Dependencies below are are for tests only.
-       ("samtools" ,samtools)
-       ("bcftools" ,bcftools)
+       ("samtools" ,samtools-1.9)
+       ("bcftools" ,bcftools-1.9)
        ("python-nose" ,python-nose)))
     (home-page "https://github.com/pysam-developers/pysam")
     (synopsis "Python bindings to the SAMtools C API")
@@ -2545,6 +2589,132 @@ accessing bigWig files.")
 (define-public python2-pybigwig
   (package-with-python2 python-pybigwig))
 
+(define-public python-schema-salad
+  (package
+    (name "python-schema-salad")
+    (version "7.0.20200811075006")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "schema-salad" version))
+        (sha256
+         (base32
+          "0wanbwmqb189x1m0vacnhpivfsr8rwbqknngivzxxs8j46yj80bg"))))
+    (build-system python-build-system)
+    (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)))
+    (home-page "https://github.com/common-workflow-language/schema_salad")
+    (synopsis "Schema Annotations for Linked Avro Data (SALAD)")
+    (description
+     "Salad is a schema language for describing JSON or YAML structured linked
+data documents.  Salad schema describes rules for preprocessing, structural
+validation, and hyperlink checking for documents described by a Salad schema.
+Salad supports rich data modeling with inheritance, template specialization,
+object identifiers, object references, documentation generation, code
+generation, and transformation to RDF.  Salad provides a bridge between document
+and record oriented data modeling and the Semantic Web.")
+    (license license:asl2.0)))
+
+(define-public cwltool
+  (package
+    (name "cwltool")
+    (version "3.0.20201121085451")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/common-workflow-language/cwltool")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1awf99n7aglxc5zszrlrv6jxp355jp45ws7wpsgjlgcdv7advn0w"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'loosen-version-restrictions
+           (lambda _
+             (substitute* "setup.py"
+               (("== 1.5.1") ">=1.5.1") ; prov
+               ((", < 3.5") ""))        ; shellescape
+             #t))
+         (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))
+         (add-after 'unpack 'modify-tests
+           (lambda _
+             ;; Tries to connect to the internet.
+             (delete-file "tests/test_udocker.py")
+             (delete-file "tests/test_http_input.py")
+             (substitute* "tests/test_load_tool.py"
+               (("def test_load_graph_fragment_from_packed")
+                (string-append "@pytest.mark.skip(reason=\"Disabled by Guix\")\n"
+                               "def test_load_graph_fragment_from_packed")))
+             (substitute* "tests/test_examples.py"
+               (("def test_env_filtering")
+                (string-append "@pytest.mark.skip(reason=\"Disabled by Guix\")\n"
+                               "def test_env_filtering")))
+             ;; Tries to use cwl-runners.
+             (substitute* "tests/test_examples.py"
+               (("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)))))
+    (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)))
+    (home-page
+     "https://github.com/common-workflow-language/common-workflow-language")
+    (synopsis "Common Workflow Language reference implementation")
+    (description
+     "This is the reference implementation of the @acronym{CWL, Common Workflow
+Language} standards.  The CWL open standards are for describing analysis
+workflows and tools in a way that makes them portable and scalable across a
+variety of software and hardware environments, from workstations to cluster,
+cloud, and high performance computing (HPC) environments.  CWL is designed to
+meet the needs of data-intensive science, such as Bioinformatics, Medical
+Imaging, Astronomy, Physics, and Chemistry.  The @acronym{cwltool, CWL reference
+implementation} is intended to be feature complete and to provide comprehensive
+validation of CWL files as well as provide other tools related to working with
+CWL descriptions.")
+    (license license:asl2.0)))
+
 (define-public python-dendropy
   (package
     (name "python-dendropy")
@@ -2608,7 +2778,7 @@ with Python.")
 (define-public delly
   (package
     (name "delly")
-    (version "0.7.9")
+    (version "0.8.3")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -2616,7 +2786,7 @@ with Python.")
                     (commit (string-append "v" version))))
               (file-name (git-file-name name version))
               (sha256
-               (base32 "034jqsxswy9gqdh2zkgc1js99qkv75ks4xvzgmh0284sraagv61z"))
+               (base32 "1ibnplgfzj96w8glkx17v7sld3pm402fr5ybmf3h0rlcryabxrqy"))
               (modules '((guix build utils)))
               (snippet
                '(begin
@@ -2640,9 +2810,9 @@ with Python.")
                #t))))))
     (inputs
      `(("boost" ,boost)
+       ("bzip2" ,bzip2)
        ("htslib" ,htslib)
-       ("zlib" ,zlib)
-       ("bzip2" ,bzip2)))
+       ("zlib" ,zlib)))
     (home-page "https://github.com/dellytools/delly")
     (synopsis "Integrated structural variant prediction method")
     (description "Delly is an integrated structural variant prediction method
@@ -3395,61 +3565,60 @@ comment or quality sections.")
 (define-public gemma
   (package
     (name "gemma")
-    (version "0.98")
+    (version "0.98.3")
     (source (origin
               (method git-fetch)
               (uri (git-reference
-                    (url "https://github.com/xiangzhou/GEMMA")
-                    (commit (string-append "v" version))))
+                    (url "https://github.com/genetics-statistics/GEMMA")
+                    (commit version)))
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1s3ncnbn45r2hh1cvrqky1kbqq6546biypr4f5mkw1kqlrgyh0yg"))))
+                "1p8a7kkfn1mmrg017aziy544aha8i9h6wd1x2dk3w2794wl33qb7"))
+              (modules '((guix build utils)))
+              (snippet
+               '(begin
+                  (delete-file-recursively "contrib")
+                  #t))))
+    (build-system gnu-build-system)
     (inputs
-     `(("eigen" ,eigen)
-       ("gfortran" ,gfortran "lib")
-       ("gsl" ,gsl)
-       ("lapack" ,lapack)
+     `(("gsl" ,gsl)
        ("openblas" ,openblas)
        ("zlib" ,zlib)))
-    (build-system gnu-build-system)
+    (native-inputs
+     `(("catch" ,catch-framework2-1)
+       ("perl" ,perl)
+       ("shunit2" ,shunit2)
+       ("which" ,which)))
     (arguments
-     `(#:make-flags
-       '(,@(match (%current-system)
-         ("x86_64-linux"
-          '("FORCE_DYNAMIC=1"))
-         ("i686-linux"
-          '("FORCE_DYNAMIC=1" "FORCE_32BIT=1"))
-         (_
-          '("FORCE_DYNAMIC=1" "NO_INTEL_COMPAT=1"))))
-       #:phases
+     `(#:phases
        (modify-phases %standard-phases
          (delete 'configure)
-         (add-after 'unpack 'find-eigen
+         (add-after 'unpack 'prepare-build
            (lambda* (#:key inputs #:allow-other-keys)
-             ;; Ensure that Eigen headers can be found
-             (setenv "CPLUS_INCLUDE_PATH"
-                     (string-append (assoc-ref inputs "eigen")
-                                    "/include/eigen3"))
+             (mkdir-p "bin")
+             (substitute* "Makefile"
+               (("/usr/local/opt/openblas")
+                (assoc-ref inputs "openblas")))
              #t))
-         (add-before 'build 'bin-mkdir
-          (lambda _
-            (mkdir-p "bin")
-            #t))
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               ;; 'make slow-check' expects shunit2-2.0.3.
+               (with-directory-excursion "test"
+                 (invoke "./test_suite.sh"))
+               #t)))
          (replace 'install
            (lambda* (#:key outputs #:allow-other-keys)
-             (let ((out (assoc-ref outputs "out")))
-               (install-file "bin/gemma"
-                             (string-append
-                              out "/bin")))
-             #t)))
-       #:tests? #f)) ; no tests included yet
-    (home-page "https://github.com/xiangzhou/GEMMA")
+             (install-file "bin/gemma"
+                           (string-append (assoc-ref outputs "out") "/bin"))
+             #t)))))
+    (home-page "https://github.com/genetics-statistics/GEMMA")
     (synopsis "Tool for genome-wide efficient mixed model association")
     (description
-     "Genome-wide Efficient Mixed Model Association (GEMMA) provides a
-standard linear mixed model resolver with application in genome-wide
-association studies (GWAS).")
+     "@acronym{GEMMA, Genome-wide Efficient Mixed Model Association} provides a
+standard linear mixed model resolver with application in @acronym{GWAS,
+genome-wide association studies}.")
     (license license:gpl3)))
 
 (define-public grit
@@ -3606,7 +3775,7 @@ particular, reads spanning multiple exons.")
     (native-inputs
      `(("unzip" ,unzip)                 ; needed for archive from ftp
        ("perl" ,perl)
-       ("pandoc" ,ghc-pandoc)))         ; for documentation
+       ("pandoc" ,pandoc)))             ; for documentation
     (home-page "https://ccb.jhu.edu/software/hisat2/index.shtml")
     (synopsis "Graph-based alignment of genomic sequencing reads")
     (description "HISAT2 is a fast and sensitive alignment program for mapping
@@ -3997,6 +4166,7 @@ VCF.")
        ;; [testng] Exception in thread "main" java.lang.NoClassDefFoundError: com/beust/jcommander/ParameterException
        #:tests? #f
        #:jdk ,icedtea-8
+       #:ant ,ant/java8
        ;; This is only used for tests.
        #:make-flags
        (list "-Dsamjdk.intel_deflater_so_path=lib/jni/libIntelDeflater.so")
@@ -4074,7 +4244,7 @@ VCF.")
      `(("java-snappy-1" ,java-snappy-1)
        ("java-commons-jexl-2" ,java-commons-jexl-2)
        ("java-cofoja" ,java-cofoja)
-       ("ant" ,ant) ; for bzip2 support at runtime
+       ("ant" ,ant/java8) ; for bzip2 support at runtime
        ("zlib" ,zlib)))
     (native-inputs
      `(("ant-apache-bcel" ,ant-apache-bcel)
@@ -4203,7 +4373,7 @@ performance.")
 (define-public htslib
   (package
     (name "htslib")
-    (version "1.9")
+    (version "1.11")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -4211,8 +4381,15 @@ performance.")
                     version "/htslib-" version ".tar.bz2"))
               (sha256
                (base32
-                "16ljv43sc3fxmv63w7b2ff8m1s7h89xhazwmbm1bicz8axq8fjz0"))))
+                "1mrq4mihzx37yqhj3sfz6da6mw49niia808bzsw2gkkgmadxvyng"))))
     (build-system gnu-build-system)
+    ;; Let htslib translate "gs://" and "s3://" to regular https links with
+    ;; "--enable-gcs" and "--enable-s3". For these options to work, we also
+    ;; need to set "--enable-libcurl".
+    (arguments
+     `(#:configure-flags '("--enable-gcs"
+                           "--enable-libcurl"
+                           "--enable-s3")))
     (inputs
      `(("curl" ,curl)
        ("openssl" ,openssl)))
@@ -4231,6 +4408,19 @@ data.  It also provides the @command{bgzip}, @command{htsfile}, and
     ;; the rest is released under the Expat license
     (license (list license:expat license:bsd-3))))
 
+(define-public htslib-1.9
+  (package (inherit htslib)
+    (name "htslib")
+    (version "1.9")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://github.com/samtools/htslib/releases/download/"
+                    version "/htslib-" version ".tar.bz2"))
+              (sha256
+               (base32
+                "16ljv43sc3fxmv63w7b2ff8m1s7h89xhazwmbm1bicz8axq8fjz0"))))))
+
 ;; This package should be removed once no packages rely upon it.
 (define htslib-1.3
   (package
@@ -4451,26 +4641,40 @@ experiments.")
               ;; The PyPi tarball does not contain tests.
               (method git-fetch)
               (uri (git-reference
-                    (url "https://github.com/taoliu/MACS")
+                    (url "https://github.com/macs3-project/MACS")
                     (commit (string-append "v" version))))
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1c5gxr0mk6hkd4vclf0k00wvyvzw2vrmk52c85338p7aqjwg6n15"))))
+                "1c5gxr0mk6hkd4vclf0k00wvyvzw2vrmk52c85338p7aqjwg6n15"))
+        (modules '((guix build utils)))
+        ;; Remove files generated by Cython
+        (snippet
+         '(begin
+            (for-each (lambda (file)
+                        (let ((generated-file
+                                (string-append (string-drop-right file 3) "c")))
+                          (when (file-exists? generated-file)
+                            (delete-file generated-file))))
+                      (find-files "." "\\.pyx$"))
+            (delete-file "MACS2/IO/CallPeakUnitPrecompiled.c")
+            #t))))
     (build-system python-build-system)
     (arguments
      `(#:phases
        (modify-phases %standard-phases
-         (delete 'check)
-         (add-after 'install 'check
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (add-installed-pythonpath inputs outputs)
-             (invoke "pytest" "-v"))))))
+         (replace 'check
+           (lambda* (#:key tests? inputs outputs #:allow-other-keys)
+             (when tests?
+               (add-installed-pythonpath inputs outputs)
+               (invoke "pytest" "-v"))
+             #t)))))
     (inputs
      `(("python-numpy" ,python-numpy)))
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
-    (home-page "https://github.com/taoliu/MACS/")
+     `(("python-cython" ,python-cython)
+       ("python-pytest" ,python-pytest)))
+    (home-page "https://github.com/macs3-project/MACS")
     (synopsis "Model based analysis for ChIP-Seq data")
     (description
      "MACS is an implementation of a ChIP-Seq analysis algorithm for
@@ -4484,7 +4688,7 @@ sequencing tag position and orientation.")
 (define-public mafft
   (package
     (name "mafft")
-    (version "7.394")
+    (version "7.475")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -4493,7 +4697,7 @@ sequencing tag position and orientation.")
               (file-name (string-append name "-" version ".tgz"))
               (sha256
                (base32
-                "0bacjkxfg944p5khhyh5rd4y7wkjc9qk4v2jjj442sqlq0f8ar7b"))))
+                "0i2i2m3blh2xkbkdk48hxfssks30ny0v381gdl7zwhcvp0axs26r"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f ; no automated tests, though there are tests in the read me
@@ -4556,7 +4760,7 @@ sequencing tag position and orientation.")
        ("gawk" ,gawk)
        ("grep" ,grep)
        ("coreutils" ,coreutils)))
-    (home-page "http://mafft.cbrc.jp/alignment/software/")
+    (home-page "https://mafft.cbrc.jp/alignment/software/")
     (synopsis "Multiple sequence alignment program")
     (description
      "MAFFT offers a range of multiple alignment methods for nucleotide and
@@ -4564,7 +4768,7 @@ protein sequences.  For instance, it offers L-INS-i (accurate; for alignment
 of <~200 sequences) and FFT-NS-2 (fast; for alignment of <~30,000
 sequences).")
     (license (license:non-copyleft
-              "http://mafft.cbrc.jp/alignment/software/license.txt"
+              "https://mafft.cbrc.jp/alignment/software/license.txt"
               "BSD-3 with different formatting"))))
 
 (define-public mash
@@ -5594,7 +5798,7 @@ to the user's query of interest.")
 (define-public samtools
   (package
     (name "samtools")
-    (version "1.9")
+    (version "1.11")
     (source
      (origin
        (method url-fetch)
@@ -5603,11 +5807,11 @@ to the user's query of interest.")
                        version "/samtools-" version ".tar.bz2"))
        (sha256
         (base32
-         "10ilqbmm7ri8z431sn90lvbjwizd0hhkf9rcqw8j823hf26nhgq8"))
+         "1dp5wknak4arnw5ghhif9mmljlfnw5bgm91wib7z0j8wdjywx0z2"))
        (modules '((guix build utils)))
        (snippet '(begin
                    ;; Delete bundled htslib.
-                   (delete-file-recursively "htslib-1.9")
+                   (delete-file-recursively "htslib-1.11")
                    #t))))
     (build-system gnu-build-system)
     (arguments
@@ -5653,6 +5857,31 @@ variant calling (in conjunction with bcftools), and a simple alignment
 viewer.")
     (license license:expat)))
 
+(define-public samtools-1.9
+  (package (inherit samtools)
+    (name "samtools")
+    (version "1.9")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://sourceforge/samtools/samtools/"
+                       version "/samtools-" version ".tar.bz2"))
+       (sha256
+        (base32
+         "10ilqbmm7ri8z431sn90lvbjwizd0hhkf9rcqw8j823hf26nhgq8"))
+       (modules '((guix build utils)))
+       (snippet '(begin
+                   ;; Delete bundled htslib.
+                   (delete-file-recursively "htslib-1.9")
+                   #t))))
+    (inputs
+     `(("htslib" ,htslib-1.9)
+       ("ncurses" ,ncurses)
+       ("perl" ,perl)
+       ("python" ,python)
+       ("zlib" ,zlib)))))
+
 (define-public samtools-0.1
   ;; This is the most recent version of the 0.1 line of samtools.  The input
   ;; and output formats differ greatly from that used and produced by samtools
@@ -6345,14 +6574,14 @@ bioinformatics file formats, sequence alignment, and more.")
 (define-public seqmagick
   (package
     (name "seqmagick")
-    (version "0.7.0")
+    (version "0.8.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "seqmagick" version))
        (sha256
         (base32
-         "12bfyp8nqi0hd36rmj450aygafp01qy3hkbvlwn3bk39pyjjkgg5"))))
+         "0pf98da7i59q47gwrbx0wjk6xlvbybiwphw80w7h4ydjj0579a2b"))))
     (build-system python-build-system)
     (inputs
      `(("python-biopython" ,python-biopython)))
@@ -6845,6 +7074,55 @@ sequence.")
     (supported-systems '("i686-linux" "x86_64-linux"))
     (license license:bsd-3)))
 
+(define-public r-snapatac
+  (package
+    (name "r-snapatac")
+    (version "2.0")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/r3fang/SnapATAC")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+          (base32 "037jzlbl436fi7lkpq7d83i2vd1crnrik3vac2x6xj75dbikb2av"))))
+    (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)))
+    (home-page "https://github.com/r3fang/SnapATAC")
+    (synopsis "Single nucleus analysis package for ATAC-Seq")
+    (description
+      "This package provides a fast and accurate analysis toolkit for single
+cell ATAC-seq (Assay for transposase-accessible chromatin using sequencing).
+Single cell ATAC-seq can resolve the heterogeneity of a complex tissue and
+reveal cell-type specific regulatory landscapes.  However, the exceeding data
+sparsity has posed unique challenges for the data analysis.  This package
+@code{r-snapatac} is an end-to-end bioinformatics pipeline for analyzing large-
+scale single cell ATAC-seq data which includes quality control, normalization,
+clustering analysis, differential analysis, motif inference and exploration of
+single cell ATAC-seq sequencing data.")
+    (license license:gpl3)))
+
 (define-public r-scde
   (package
     (name "r-scde")
@@ -6914,14 +7192,14 @@ information as possible.")
 (define-public r-genefilter
   (package
     (name "r-genefilter")
-    (version "1.70.0")
+    (version "1.72.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "genefilter" version))
        (sha256
         (base32
-         "1sbbrnq6p90fri0ik6aq2zw26kasw63nyiy7xkzrj6vgyq7x258g"))))
+         "0929g6c4v2qhgipgrh1a5gv6444sm2dp52x9c3qbk03i8wzc6633"))))
     (build-system r-build-system)
     (native-inputs
      `(("gfortran" ,gfortran)
@@ -6942,14 +7220,14 @@ high-throughput sequencing experiments.")
 (define-public r-deseq2
   (package
     (name "r-deseq2")
-    (version "1.28.1")
+    (version "1.30.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "DESeq2" version))
        (sha256
         (base32
-         "0xh12c2skr0bbv893p05gvbismkcnqw8zwh7yz4wmycgajfzg2pp"))))
+         "0q2f9cywrcmp1p7ii8f45g4dk4hsnjflq3yqhsxgnpv9fw338qpp"))))
     (properties `((upstream-name . "DESeq2")))
     (build-system r-build-system)
     (propagated-inputs
@@ -6980,14 +7258,14 @@ distribution.")
 (define-public r-dexseq
   (package
     (name "r-dexseq")
-    (version "1.34.1")
+    (version "1.36.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "DEXSeq" version))
        (sha256
         (base32
-         "1m03awaw06mfv5gszq23k5apsqqzjqa5rcwp20y4xbpl7bywpsyl"))))
+         "0wfjb42xcr4wjy8a654b74411dky8hp6sp8xdwf0sxqgsxy106qi"))))
     (properties `((upstream-name . "DEXSeq")))
     (build-system r-build-system)
     (propagated-inputs
@@ -7025,14 +7303,14 @@ exploration of the results.")
 (define-public r-annotationforge
   (package
     (name "r-annotationforge")
-    (version "1.30.1")
+    (version "1.32.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "AnnotationForge" version))
        (sha256
         (base32
-         "1a2155jxbwc6qr3dcyvp850grhdr7czc7bs3s87ff4sgdl0jp3jw"))))
+         "0y3820dkvwz09wlmz9drx6gqpsr9cwppaiz40zafwfxbz65y8px7"))))
     (properties
      `((upstream-name . "AnnotationForge")))
     (build-system r-build-system)
@@ -7057,14 +7335,14 @@ databases.  Packages produced are intended to be used with AnnotationDbi.")
 (define-public r-rbgl
   (package
     (name "r-rbgl")
-    (version "1.64.0")
+    (version "1.66.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "RBGL" version))
        (sha256
         (base32
-         "079599a6xn2i7snfn2vgshkw0c00rrfhj44pvi03ap8id29bkayy"))))
+         "016vyzgixb3gjpzi21rbs6ngnnqcxr77krwjjf1ldnzzj8vqrqsz"))))
     (properties `((upstream-name . "RBGL")))
     (build-system r-build-system)
     (propagated-inputs
@@ -7080,14 +7358,14 @@ the graph algorithms contained in the Boost library.")
 (define-public r-gseabase
   (package
     (name "r-gseabase")
-    (version "1.50.1")
+    (version "1.52.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "GSEABase" version))
        (sha256
         (base32
-         "1k4faj53cwvqijad8cf7fcghzxcv9shlbpl8n73bsncc8k192y2j"))))
+         "0lcxbxfg62zdf2nql49asn3555cqrrxpjm2xsxf7vlxv84dl6r44"))))
     (properties `((upstream-name . "GSEABase")))
     (build-system r-build-system)
     (propagated-inputs
@@ -7109,14 +7387,14 @@ Enrichment Analysis} (GSEA).")
 (define-public r-category
   (package
     (name "r-category")
-    (version "2.54.0")
+    (version "2.56.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "Category" version))
        (sha256
         (base32
-         "1grspdzk5a4vidnxwcd1jmy1vcn494aydsp3vydx235yv7iqac1b"))))
+         "0m77wpnica0h2ia9ajdaiga4plgz1s9wls6pdnxzk7kwl8a68wkr"))))
     (properties `((upstream-name . "Category")))
     (build-system r-build-system)
     (propagated-inputs
@@ -7140,14 +7418,14 @@ analysis.")
 (define-public r-gostats
   (package
     (name "r-gostats")
-    (version "2.54.0")
+    (version "2.56.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "GOstats" version))
        (sha256
         (base32
-         "00q39cyv4l28r6s9gjnd0qhl7h80vmwp4lpmchisqzj44xzyics9"))))
+         "18q8p0fv9fl2r6zjxknfjwqxr69dlyxy6c8amzn6c6dwjq1cxk6j"))))
     (properties `((upstream-name . "GOstats")))
     (build-system r-build-system)
     (propagated-inputs
@@ -7171,14 +7449,14 @@ testing and other simple calculations.")
 (define-public r-shortread
   (package
     (name "r-shortread")
-    (version "1.46.0")
+    (version "1.48.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "ShortRead" version))
        (sha256
         (base32
-         "0l4kdln69y6yhln0xiv2jmpxg05fjcglln406p43a2bqvk2lr03d"))))
+         "0w4m8d3h660mmr2ymp206r1n4aqssxmkv8yxkbr5y1swrahxzfk9"))))
     (properties `((upstream-name . "ShortRead")))
     (build-system r-build-system)
     (inputs
@@ -7191,6 +7469,7 @@ testing and other simple calculations.")
        ("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)
@@ -7213,14 +7492,14 @@ ungapped alignment formats.")
 (define-public r-systempiper
   (package
     (name "r-systempiper")
-    (version "1.22.0")
+    (version "1.24.2")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "systemPipeR" version))
        (sha256
         (base32
-         "01ilhlrvy28jfdyxjria4024yryj5zgympgqznw17g3y3az78kk2"))))
+         "0blvvci57q12sl18yvw07233rfnj47mfadzm0pdpig1ll5z6ld2j"))))
     (properties `((upstream-name . "systemPipeR")))
     (build-system r-build-system)
     (propagated-inputs
@@ -7236,6 +7515,7 @@ ungapped alignment formats.")
        ("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)
@@ -7266,14 +7546,14 @@ annotation infrastructure.")
 (define-public r-grohmm
   (package
     (name "r-grohmm")
-    (version "1.22.0")
+    (version "1.24.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "groHMM" version))
        (sha256
         (base32
-         "04z9qq1xwdsaxbqhyld37w0ybvzly9pc1hcyrnwdbyjwd7n1fncb"))))
+         "08pap9wsaxl4jjlc1py0rc019gmi6daa0f9cr3ih1d97wybncanx"))))
     (properties `((upstream-name . "groHMM")))
     (build-system r-build-system)
     (propagated-inputs
@@ -7496,16 +7776,41 @@ BLAST, KEGG, GenBank, MEDLINE and GO.")
     ;; (LGPLv2.1+) and scripts in samples (which have GPL2 and GPL2+)
     (license (list license:ruby license:lgpl2.1+ license:gpl2+ ))))
 
+(define-public bio-vcf
+  (package
+    (name "bio-vcf")
+    (version "0.9.5")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (rubygems-uri "bio-vcf" version))
+        (sha256
+         (base32
+          "1glw5pn9s8z13spxk6yyfqaz80n9lga67f33w35nkpq9dwi2vg6g"))))
+    (build-system ruby-build-system)
+    (native-inputs
+     `(("ruby-cucumber" ,ruby-cucumber)))
+    (synopsis "Smart VCF parser DSL")
+    (description
+     "Bio-vcf provides a @acronym{DSL, domain specific language} for processing
+the VCF format.  Record named fields can be queried with regular expressions.
+Bio-vcf is a new generation VCF parser, filter and converter.  Bio-vcf is not
+only very fast for genome-wide (WGS) data, it also comes with a filtering,
+evaluation and rewrite language and can output any type of textual data,
+including VCF header and contents in RDF and JSON.")
+    (home-page "https://github.com/vcflib/bio-vcf")
+    (license license:expat)))
+
 (define-public r-biocviews
   (package
     (name "r-biocviews")
-    (version "1.56.1")
+    (version "1.58.1")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "biocViews" version))
               (sha256
                (base32
-                "0zcx8gha3x3jc0ra6ii6wwq2vfsmffrrnilknbq8h5xjrl55m6ci"))))
+                "1by2639z7n62z84dr8rj9jz12gsd1k8q42zsnxacxbwfwp6h0cl4"))))
     (properties
      `((upstream-name . "biocViews")))
     (build-system r-build-system)
@@ -7527,13 +7832,13 @@ also known as views, in a controlled vocabulary.")
 (define-public r-biocstyle
   (package
     (name "r-biocstyle")
-    (version "2.16.0")
+    (version "2.18.1")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "BiocStyle" version))
               (sha256
                (base32
-                "07rjl2n4sazdg581zh7w3yykzphgr2gpz41ba4ryqs7347vh9nbf"))))
+                "0rsxyna4dd99x42vc82mlkxx774vb9375llpakg53max1hhwkrqp"))))
     (properties
      `((upstream-name . "BiocStyle")))
     (build-system r-build-system)
@@ -7555,13 +7860,13 @@ functionality.")
 (define-public r-bioccheck
   (package
     (name "r-bioccheck")
-    (version "1.24.0")
+    (version "1.26.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "BiocCheck" version))
               (sha256
                (base32
-                "1p9ys18sn1crxw1iac2jdgqvwpb5hjd9nfxx0qn0ncrv0b550mny"))))
+                "1hyncn9zqj432da95k86rm5b28nbwrvzm52jbhisifkxj1j43cib"))))
     (properties
      `((upstream-name . "BiocCheck")))
     (build-system r-build-system)
@@ -7604,13 +7909,13 @@ checks on R packages that are to be submitted to the Bioconductor repository.")
 (define-public r-s4vectors
   (package
     (name "r-s4vectors")
-    (version "0.26.1")
+    (version "0.28.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "S4Vectors" version))
               (sha256
                (base32
-                "1ddr3ngyczx332zw9ai1a6h7442lgrbfcj8vrhvbkdkzqwj14xmb"))))
+                "0rfn46g2mfda01s75vpcfn5jc7xkp0jrl5v79gyd40jm37p4j1zv"))))
     (properties
      `((upstream-name . "S4Vectors")))
     (build-system r-build-system)
@@ -7631,13 +7936,13 @@ S4Vectors package itself.")
 (define-public r-iranges
   (package
     (name "r-iranges")
-    (version "2.22.2")
+    (version "2.24.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "IRanges" version))
               (sha256
                (base32
-                "1y24jw62806wp2afiyj1x6n00gj7d3323klqdypra9q43pg1w49d"))))
+                "1lfc8xz45v63y3q40im00i944hi0p9idwhx50w3nzkwdpk79315b"))))
     (properties
      `((upstream-name . "IRanges")))
     (build-system r-build-system)
@@ -7683,13 +7988,13 @@ ID and species.  It is used by functions in the GenomeInfoDb package.")
 (define-public r-genomeinfodb
   (package
     (name "r-genomeinfodb")
-    (version "1.24.2")
+    (version "1.26.2")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "GenomeInfoDb" version))
               (sha256
                (base32
-                "1cqs53p4m5q1dr59war72bccphy01ilw4xra24fmngrv4x32rznd"))))
+                "092izc49maxjhf6m4b0qx21ad16dz7bmxy5pysp3vkyhdrfa2f7v"))))
     (properties
      `((upstream-name . "GenomeInfoDb")))
     (build-system r-build-system)
@@ -7713,13 +8018,13 @@ names in their natural, rather than lexicographic, order.")
 (define-public r-edger
   (package
     (name "r-edger")
-    (version "3.30.3")
+    (version "3.32.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "edgeR" version))
               (sha256
                (base32
-                "1z9bkg08rgqn3jm2s4ndbj641w33wl8jd3j6m5if6h2nnw6011ic"))))
+                "0dkjd6li270icy1x5qbzpakk9bx712mdm5k32lrr3yrggq92jhjg"))))
     (properties `((upstream-name . "edgeR")))
     (build-system r-build-system)
     (propagated-inputs
@@ -7741,17 +8046,15 @@ CAGE.")
 (define-public r-variantannotation
   (package
     (name "r-variantannotation")
-    (version "1.34.0")
+    (version "1.36.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "VariantAnnotation" version))
               (sha256
                (base32
-                "09y6ymwky839nb0y7y93w810hk9mvwqn7595q1276c28dkddiqvw"))))
+                "1sl0l6v05lfglj281nszma0h5k234md7rn2pdah8vs2d4iq3kimw"))))
     (properties
      `((upstream-name . "VariantAnnotation")))
-    (inputs
-     `(("zlib" ,zlib)))
     (propagated-inputs
      `(("r-annotationdbi" ,r-annotationdbi)
        ("r-biobase" ,r-biobase)
@@ -7763,6 +8066,7 @@ CAGE.")
        ("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)
@@ -7780,13 +8084,13 @@ coding changes and predict coding outcomes.")
 (define-public r-limma
   (package
     (name "r-limma")
-    (version "3.44.3")
+    (version "3.46.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "limma" version))
               (sha256
                (base32
-                "09fnqxx4rzq5n447aqg2l6y0idfwgz2jxz99sifxsr2q8afzbcj6"))))
+                "1xxv493q1kip9bjfv7v7k5dnq7hz7gvl80i983v4mvwavhgnbxfz"))))
     (build-system r-build-system)
     (home-page "http://bioinf.wehi.edu.au/limma")
     (synopsis "Package for linear models for microarray and RNA-seq data")
@@ -7799,13 +8103,13 @@ different technologies, including microarrays, RNA-seq, and quantitative PCR.")
 (define-public r-xvector
   (package
     (name "r-xvector")
-    (version "0.28.0")
+    (version "0.30.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "XVector" version))
               (sha256
                (base32
-                "11h1hszv4798q1gbx8r6zf8vlaqx4v9ql0lbh2xaxybp66a03pvc"))))
+                "1pqljikg4f6jb7wgm5537zwgq5b013nyz1agjrwfq2cljb0ym6lq"))))
     (properties
      `((upstream-name . "XVector")))
     (build-system r-build-system)
@@ -7835,13 +8139,13 @@ different technologies, including microarrays, RNA-seq, and quantitative PCR.")
 (define-public r-genomicranges
   (package
     (name "r-genomicranges")
-    (version "1.40.0")
+    (version "1.42.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "GenomicRanges" version))
               (sha256
                (base32
-                "0wn1zr2qq0rpv9z2wialgizn6xzdlcjg1w2kif67n53svz6vk2x1"))))
+                "0j4py5g6pdj35xhlaqhxxhg55j9l4mcdk3yck4dgyavv5f2dh24i"))))
     (properties
      `((upstream-name . "GenomicRanges")))
     (build-system r-build-system)
@@ -7866,13 +8170,13 @@ manipulating genomic intervals and variables defined along a genome.")
 (define-public r-biobase
   (package
     (name "r-biobase")
-    (version "2.48.0")
+    (version "2.50.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "Biobase" version))
               (sha256
                (base32
-                "13p3kgnxm7hbn8cy289kbhaiyfa6rxx7l1pbvajwqzbay3cxznqp"))))
+                "11kgc4flywlm3i18603558l8ksv91c24vkc5fnnbcd375i2dhhd4"))))
     (properties
      `((upstream-name . "Biobase")))
     (build-system r-build-system)
@@ -7888,13 +8192,13 @@ on Bioconductor or which replace R functions.")
 (define-public r-annotationdbi
   (package
     (name "r-annotationdbi")
-    (version "1.50.1")
+    (version "1.52.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "AnnotationDbi" version))
               (sha256
                (base32
-                "00pd8lsdppxlmx0l65phw0jhsm0qkwjc4wsdxpvgc31iiz9yslbj"))))
+                "0zqxgh3nx6y8ry12s2vss2f4axz5vpqxha1y4ifhhcx4zhpzsglr"))))
     (properties
      `((upstream-name . "AnnotationDbi")))
     (build-system r-build-system)
@@ -7917,13 +8221,13 @@ annotation data packages using SQLite data storage.")
 (define-public r-biomart
   (package
     (name "r-biomart")
-    (version "2.44.1")
+    (version "2.46.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "biomaRt" version))
               (sha256
                (base32
-                "0np4nh3gj60mgb6312z7x0z9fg5bhrhw872sp3dzgmqc8q8b84iz"))))
+                "1zpdm8nw1d0m31pdmzw1dccbd6iczfhiklhm4d325zkzf3jrkvxf"))))
     (properties
      `((upstream-name . "biomaRt")))
     (build-system r-build-system)
@@ -7935,7 +8239,8 @@ annotation data packages using SQLite data storage.")
        ("r-progress" ,r-progress)
        ("r-rappdirs" ,r-rappdirs)
        ("r-stringr" ,r-stringr)
-       ("r-xml" ,r-xml)))
+       ("r-xml" ,r-xml)
+       ("r-xml2" ,r-xml2)))
     (native-inputs
      `(("r-knitr" ,r-knitr)))
     (home-page "https://bioconductor.org/packages/biomaRt")
@@ -7954,13 +8259,13 @@ powerful online queries from gene annotation to database mining.")
 (define-public r-biocparallel
   (package
     (name "r-biocparallel")
-    (version "1.22.0")
+    (version "1.24.1")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "BiocParallel" version))
               (sha256
                (base32
-                "1lsg5xm5j3ly5k60fidzhkgqc9jgscyfkqngjvd9qp6yfzvsb82g"))))
+                "1iryicvmcagcrj29kp49mqhiq2kn72j4idj380hi9illmdrg9ism"))))
     (properties
      `((upstream-name . "BiocParallel")))
     (build-system r-build-system)
@@ -7981,13 +8286,13 @@ objects.")
 (define-public r-biostrings
   (package
     (name "r-biostrings")
-    (version "2.56.0")
+    (version "2.58.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "Biostrings" version))
               (sha256
                (base32
-                "0imhfz7dg8b3l5qzipjranqqshdsg2x6zc49drlhn8sc7j40cvi8"))))
+                "1rbqhs73mhfr1gi0rx28jiyan7i3hb45ai3jpl1656fnrhgjfxq5"))))
     (properties
      `((upstream-name . "Biostrings")))
     (build-system r-build-system)
@@ -8008,13 +8313,13 @@ biological sequences or sets of sequences.")
 (define-public r-rsamtools
   (package
     (name "r-rsamtools")
-    (version "2.4.0")
+    (version "2.6.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "Rsamtools" version))
               (sha256
                (base32
-                "0z01z0s71f941k7sns46nyabps28c69d6jxx6sppjpc6h4vrw0vq"))))
+                "040pggkwglc6wy90qnc7xcdnaj0v3iqlykvvsl74241409qly554"))))
     (properties
      `((upstream-name . "Rsamtools")))
     (build-system r-build-system)
@@ -8028,8 +8333,6 @@ biological sequences or sets of sequences.")
              (substitute* "NAMESPACE"
                (("import\\(zlibbioc\\)") ""))
              #t)))))
-    (inputs
-     `(("zlib" ,zlib)))
     (propagated-inputs
      `(("r-biocgenerics" ,r-biocgenerics)
        ("r-biocparallel" ,r-biocparallel)
@@ -8053,13 +8356,13 @@ tab-delimited (tabix) files.")
 (define-public r-delayedarray
   (package
     (name "r-delayedarray")
-    (version "0.14.0")
+    (version "0.16.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "DelayedArray" version))
               (sha256
                (base32
-                "1lz7a0rrlfv3w44n073mk8pw39z7lfs0njdxp5vpp0rdsmvdf1qk"))))
+                "1564wnradxw15nsnv6w2wd3xngcs3xa1mlibbq3hygi5fcx4fk3g"))))
     (properties
      `((upstream-name . "DelayedArray")))
     (build-system r-build-system)
@@ -8068,7 +8371,7 @@ tab-delimited (tabix) files.")
        ("r-s4vectors" ,r-s4vectors)
        ("r-iranges" ,r-iranges)
        ("r-matrix" ,r-matrix)
-       ("r-matrixstats" ,r-matrixstats)))
+       ("r-matrixgenerics" ,r-matrixgenerics)))
     (native-inputs
      `(("r-knitr" ,r-knitr)))
     (home-page "https://bioconductor.org/packages/DelayedArray")
@@ -8086,13 +8389,13 @@ array-like objects like @code{DataFrame} objects (typically with Rle columns),
 (define-public r-summarizedexperiment
   (package
     (name "r-summarizedexperiment")
-    (version "1.18.2")
+    (version "1.20.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "SummarizedExperiment" version))
               (sha256
                (base32
-                "1raw5ycigr6gjgzn3kx3jls5hzww10fhnwd8c17c20hmhirf13rw"))))
+                "04x6d4mcsnvz6glkmf6k2cv3fs8zk03i9rvv0ahpl793n8l411ps"))))
     (properties
      `((upstream-name . "SummarizedExperiment")))
     (build-system r-build-system)
@@ -8104,6 +8407,7 @@ array-like objects like @code{DataFrame} objects (typically with Rle columns),
        ("r-genomicranges" ,r-genomicranges)
        ("r-iranges" ,r-iranges)
        ("r-matrix" ,r-matrix)
+       ("r-matrixgenerics" ,r-matrixgenerics)
        ("r-s4vectors" ,r-s4vectors)))
     (native-inputs
      `(("r-knitr" ,r-knitr)))
@@ -8119,13 +8423,13 @@ samples.")
 (define-public r-genomicalignments
   (package
     (name "r-genomicalignments")
-    (version "1.24.0")
+    (version "1.26.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "GenomicAlignments" version))
               (sha256
                (base32
-                "0v8k6d7frm5p48cmk4zik78cw9abz4inx0zhl4zrmmx31ifyvk8d"))))
+                "1q95px6s6snsax4ax955zzpdlrwp5liwf70wqq0lrk9mp6lq0hbr"))))
     (properties
      `((upstream-name . "GenomicAlignments")))
     (build-system r-build-system)
@@ -8152,13 +8456,13 @@ alignments.")
 (define-public r-rtracklayer
   (package
     (name "r-rtracklayer")
-    (version "1.48.0")
+    (version "1.50.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "rtracklayer" version))
               (sha256
                (base32
-                "1zcgk92sidhy4y7ws9ms4nkkh2hnccfhfh53qgna0kma9jy4v5xf"))))
+                "12zimhpdzjyzd81wrzz5hdbzvlgzcs22x1nnaf2jq4cba3ch5px8"))))
     (build-system r-build-system)
     (arguments
      `(#:phases
@@ -8185,7 +8489,8 @@ alignments.")
        ("r-rsamtools" ,r-rsamtools)
        ("r-s4vectors" ,r-s4vectors)
        ("r-xml" ,r-xml)
-       ("r-xvector" ,r-xvector)))
+       ("r-xvector" ,r-xvector)
+       ("r-zlibbioc" ,r-zlibbioc)))
     (home-page "https://bioconductor.org/packages/rtracklayer")
     (synopsis "R interface to genome browsers and their annotation tracks")
     (description
@@ -8199,13 +8504,13 @@ as well as query and modify the browser state, such as the current viewport.")
 (define-public r-genomicfeatures
   (package
     (name "r-genomicfeatures")
-    (version "1.40.1")
+    (version "1.42.1")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "GenomicFeatures" version))
               (sha256
                (base32
-                "0zm7q957g952qyfqmvf27sldsnq6sqd0wlgnqzvmxayg9pxh0l0z"))))
+                "17dyd9hcw6pw16y353dh55wfhxmkxka99lbsxsp9xyrhffwrxi0s"))))
     (properties
      `((upstream-name . "GenomicFeatures")))
     (build-system r-build-system)
@@ -8266,13 +8571,13 @@ information about the latest version of the Gene Ontologies.")
 (define-public r-topgo
   (package
     (name "r-topgo")
-    (version "2.40.0")
+    (version "2.42.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "topGO" version))
               (sha256
                (base32
-                "13rhbvn27sj75fklf1cnjaazacx8yyjlhqlnbp5zk157q6y5cwdr"))))
+                "0vr3l9gvd3dhy446k3fkj6rm7z1abxi56rbnrs64297yzxaz1ngl"))))
     (properties
      `((upstream-name . "topGO")))
     (build-system r-build-system)
@@ -8299,13 +8604,13 @@ dependencies between GO terms can be implemented and applied.")
 (define-public r-bsgenome
   (package
     (name "r-bsgenome")
-    (version "1.56.0")
+    (version "1.58.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "BSgenome" version))
               (sha256
                (base32
-                "1jw8r1qm9fpg2s1cw2y4np243jjxm65j2xdy2785h8fc1b02msf6"))))
+                "1gbvmxr6r57smgvhqgwspbcnwyk4hsfkxkpzzcs6470q03zfb4wq"))))
     (properties
      `((upstream-name . "BSgenome")))
     (build-system r-build-system)
@@ -8330,13 +8635,13 @@ genome data packages and support for efficient SNP representation.")
 (define-public r-impute
   (package
     (name "r-impute")
-    (version "1.62.0")
+    (version "1.64.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "impute" version))
               (sha256
                (base32
-                "161p6l1cp3wwdynkxwvg0yhrh6yv20brdlplw5w5mavn4hf1nm0h"))))
+                "1pnjasw9i19nmxwjzrd9jbln31yc5jilfvwk414ya5zbqfsazvxa"))))
     (native-inputs
      `(("gfortran" ,gfortran)))
     (build-system r-build-system)
@@ -8350,13 +8655,13 @@ microarray data, using nearest neighbor averaging.")
 (define-public r-seqpattern
   (package
     (name "r-seqpattern")
-    (version "1.20.0")
+    (version "1.22.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "seqPattern" version))
               (sha256
                (base32
-                "0f1yvx2ri1557rzjx08q5bgml1cvkm8hjl8xn1qi4rjs64sy6mci"))))
+                "0j68n6fwycxjpl2va5fw7ajb123n758s2pq997d76dysxghmrlzq"))))
     (properties
      `((upstream-name . "seqPattern")))
     (build-system r-build-system)
@@ -8377,13 +8682,13 @@ reference point and sorted by a user defined feature.")
 (define-public r-genomation
   (package
     (name "r-genomation")
-    (version "1.20.0")
+    (version "1.22.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "genomation" version))
               (sha256
                (base32
-                "1cy8kqwddiha5jy6nda1al956i4wncbgjkrxwijdb08cmka2sfwh"))))
+                "1ana06irlpdgnmk8mb329nws9sm8n6max4qargf1xdcdf3rnk45g"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-biostrings" ,r-biostrings)
@@ -8425,7 +8730,7 @@ genomic intervals.  In addition, it can use BAM or BigWig files as input.")
 (define-public r-genomationdata
   (package
     (name "r-genomationdata")
-    (version "1.14.0")
+    (version "1.22.0")
     (source (origin
               (method url-fetch)
               ;; We cannot use bioconductor-uri here because this tarball is
@@ -8435,7 +8740,7 @@ genomic intervals.  In addition, it can use BAM or BigWig files as input.")
                                   "genomationData_" version ".tar.gz"))
               (sha256
                (base32
-                "10xyb8akjrhmak2i0mnv1agny2ipy364q9nlibyplpzc7vdb6bw7"))))
+                "0igjsvfnws3498j65ifniw0kbxfqpfr59rcjddqvq4zsj453fx1g"))))
     (build-system r-build-system)
     ;; As this package provides little more than large data files, it doesn't
     ;; make sense to build substitutes.
@@ -8453,16 +8758,18 @@ downloaded from Encode.")
 (define-public r-seqlogo
   (package
     (name "r-seqlogo")
-    (version "1.54.3")
+    (version "1.56.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "seqLogo" version))
        (sha256
         (base32
-         "09kkxir305fv8z2yyihvspkrzclxbw1cx5mvhfkrhl10rap6662j"))))
+         "02rpzjjfg5chlwwfbvv72cm78cg2vfmdwzars0cin9hz1hd7rnq1"))))
     (properties `((upstream-name . "seqLogo")))
     (build-system r-build-system)
+    (native-inputs
+     `(("r-knitr" ,r-knitr)))
     (home-page "https://bioconductor.org/packages/seqLogo")
     (synopsis "Sequence logos for DNA sequence alignments")
     (description
@@ -8498,67 +8805,16 @@ Stephens (1990).")
 throughput genetic sequencing data sets using regression methods.")
     (license license:artistic2.0)))
 
-(define-public r-qtl
- (package
-  (name "r-qtl")
-  (version "1.46-2")
-  (source
-   (origin
-    (method url-fetch)
-    (uri (string-append "mirror://cran/src/contrib/qtl_"
-                        version ".tar.gz"))
-    (sha256
-     (base32
-      "0rbwcnvyy96gq1dsgpxx03pv423qya26h6ws5y0blj3blfdmj83a"))))
-  (build-system r-build-system)
-  (home-page "https://rqtl.org/")
-  (synopsis "R package for analyzing QTL experiments in genetics")
-  (description "R/qtl is an extension library for the R statistics
-system.  It is used to analyze experimental crosses for identifying
-genes contributing to variation in quantitative traits (so-called
-quantitative trait loci, QTLs).
-
-Using a hidden Markov model, R/qtl estimates genetic maps, to
-identify genotyping errors, and to perform single-QTL and two-QTL,
-two-dimensional genome scans.")
-  (license license:gpl3)))
-
-(define-public r-qtl2
-  (package
-    (name "r-qtl2")
-    (version "0.22-11")
-    (source (origin
-              (method url-fetch)
-              (uri (cran-uri "qtl2" version))
-              (sha256
-               (base32 "0dfdzjylqzc92dcszawc8cyinxccjm3p36v9vcq9ma818pqcanmr"))))
-    (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)))
-    (home-page "https://kbroman.org/qtl2/")
-    (synopsis "Quantitative Trait Locus Mapping in Experimental Crosses")
-    (description
-     "This package provides a set of tools to perform @dfn{Quantitative Trait
-Locus} (QTL) analysis in experimental crosses.  It is a reimplementation of the
-@code{R/qtl} package to better handle high-dimensional data and complex cross
-designs.  Broman et al. (2018) <doi:10.1534/genetics.118.301595>.")
-    (license license:gpl3)))
-
 (define-public r-zlibbioc
   (package
     (name "r-zlibbioc")
-    (version "1.34.0")
+    (version "1.36.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "zlibbioc" version))
               (sha256
                (base32
-                "0j1l052jb2cwc1nifxzwknc9csagf4f2d092zs0i95dz0rma89l0"))))
+                "0m36ddss0znvm19dhnxcclxjhgjplw8ajk8v419h20ab8an6khxg"))))
     (properties
      `((upstream-name . "zlibbioc")))
     (build-system r-build-system)
@@ -8594,14 +8850,14 @@ secondary structure and comparative analysis in R.")
 (define-public r-rhtslib
   (package
     (name "r-rhtslib")
-    (version "1.20.0")
+    (version "1.22.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "Rhtslib" version))
        (sha256
         (base32
-         "186r7icrkzrni1c4n33ip7dlsfgys7hnqf0simvxrpl3yhh3ygdi"))))
+         "18wag2jnpda6078xjkpfdvar1gkb2myhw83gg03l39sabh35qya4"))))
     (properties `((upstream-name . "Rhtslib")))
     (build-system r-build-system)
     ;; Without this a temporary directory ends up in the Rhtslib.so binary,
@@ -8609,9 +8865,8 @@ secondary structure and comparative analysis in R.")
     (arguments '(#:configure-flags '("--no-staged-install")))
     (propagated-inputs
      `(("curl" ,curl)
+       ("zlib" ,zlib) ; packages using rhtslib need to link with zlib
        ("r-zlibbioc" ,r-zlibbioc)))
-    (inputs
-     `(("zlib" ,zlib)))
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("r-knitr" ,r-knitr)))
@@ -8626,14 +8881,14 @@ of other R packages who wish to make use of HTSlib.")
 (define-public r-bamsignals
   (package
     (name "r-bamsignals")
-    (version "1.20.0")
+    (version "1.22.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "bamsignals" version))
        (sha256
         (base32
-         "0p858xxfv79yc8b3lq58zl9f00irvbn3czsd8wdi5040xg42m402"))))
+         "0p3r9z9z5sfkd0b951cgr751k4z0yviyn1jfw9d4fcnyld7g1jxv"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-biocgenerics" ,r-biocgenerics)
@@ -8642,8 +8897,6 @@ of other R packages who wish to make use of HTSlib.")
        ("r-rcpp" ,r-rcpp)
        ("r-rhtslib" ,r-rhtslib)
        ("r-zlibbioc" ,r-zlibbioc)))
-    (inputs
-     `(("zlib" ,zlib)))
     (native-inputs
      `(("r-knitr" ,r-knitr)))
     (home-page "https://bioconductor.org/packages/bamsignals")
@@ -8658,13 +8911,13 @@ paired-end data.")
 (define-public r-rcas
   (package
     (name "r-rcas")
-    (version "1.14.0")
+    (version "1.16.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "RCAS" version))
               (sha256
                (base32
-                "0f812pgv3ys1zv4n9sqkgm01hj4cdd0i0h85dqbhkwd94zl6cavl"))))
+                "0vdxml618vqvf8xyh0zxs307p9zby0cj9dqyiiz625ilyq1hkw2m"))))
     (properties `((upstream-name . "RCAS")))
     (build-system r-build-system)
     (propagated-inputs
@@ -8693,7 +8946,7 @@ paired-end data.")
        ("r-rtracklayer" ,r-rtracklayer)
        ("r-rmarkdown" ,r-rmarkdown)
        ("r-s4vectors" ,r-s4vectors)
-       ("pandoc" ,ghc-pandoc)))
+       ("pandoc" ,pandoc)))
     (native-inputs
      `(("r-knitr" ,r-knitr)))
     (synopsis "RNA-centric annotation system")
@@ -8758,33 +9011,40 @@ library implementing most of the pipeline's features.")
 (define-public r-mutationalpatterns
   (package
     (name "r-mutationalpatterns")
-    (version "2.0.0")
+    (version "3.0.1")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "MutationalPatterns" version))
        (sha256
         (base32
-         "02lyjiabyhmifycksvpcx29a0pb7z9xjw0hgg8n0sd0dy3afqhcm"))))
+         "1988kjjgq8af0hj7chhpxi88717wwmzs9qgrwapjh0hm2hjwhn35"))))
     (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-genomicranges" ,r-genomicranges)
+       ("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-plyr" ,r-plyr)
        ("r-pracma" ,r-pracma)
-       ("r-reshape2" ,r-reshape2)
-       ("r-cowplot" ,r-cowplot)
-       ("r-ggdendro" ,r-ggdendro)
+       ("r-purrr" ,r-purrr)
        ("r-s4vectors" ,r-s4vectors)
-       ("r-summarizedexperiment" ,r-summarizedexperiment)
+       ("r-stringr" ,r-stringr)
+       ("r-tibble" ,r-tibble)
+       ("r-tidyr" ,r-tidyr)
        ("r-variantannotation" ,r-variantannotation)))
     (home-page "https://bioconductor.org/packages/MutationalPatterns/")
     (synopsis "Extract and visualize mutational patterns in genomic data")
@@ -8863,13 +9123,13 @@ factors bound at the specific regions.")
 (define-public r-tximport
   (package
     (name "r-tximport")
-    (version "1.16.1")
+    (version "1.18.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "tximport" version))
               (sha256
                (base32
-                "1x9959lkjl2h869rgd1b30q1idxzjkr1fyqbpndqk3kbi4q2gr40"))))
+                "1nxnlvl4iv2392xa72j0lzy2xnb3vrvyhfrdj9l54znwkrryyq34"))))
     (build-system r-build-system)
     (native-inputs
      `(("r-knitr" ,r-knitr)))
@@ -8884,21 +9144,57 @@ provided as a matrix which can be used as an offset for different expression
 of gene-level counts.")
     (license license:gpl2+)))
 
+(define-public r-rhdf5filters
+  (package
+    (name "r-rhdf5filters")
+    (version "1.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "rhdf5filters" version))
+       (sha256
+        (base32
+         "1jvnss44liapbc6hk93yg1gknv0ahd5x86dydqiwq9l65jd03psq"))))
+    (properties `((upstream-name . "rhdf5filters")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-rhdf5lib" ,r-rhdf5lib)))
+    (inputs
+     `(("zlib" ,zlib)))
+    (native-inputs
+     `(("r-knitr" ,r-knitr)))
+    (home-page "https://github.com/grimbough/rhdf5filters")
+    (synopsis "HDF5 compression filters")
+    (description
+     "This package provides a collection of compression filters for use with
+HDF5 datasets.")
+    (license license:bsd-2)))
+
 (define-public r-rhdf5
   (package
     (name "r-rhdf5")
-    (version "2.32.2")
+    (version "2.34.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "rhdf5" version))
               (sha256
                (base32
-                "1v6ygi0avh3gmaj2ld2nr7vww4ipw39b5kqci9w27i3ja985lb8j"))))
+                "0almr1vscrgj5g4dyrags131wia2pmdbdidlpskbgm44ha6hpmqi"))))
     (build-system r-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-linking
+           (lambda _
+             (substitute* "src/Makevars"
+               ;; This is to avoid having a plain directory on the list of
+               ;; libraries to link.
+               (("\\(RHDF5_LIBS\\)" match)
+                (string-append match "/libhdf5.a")))
+             #t)))))
     (propagated-inputs
-     `(("r-rhdf5lib" ,r-rhdf5lib)))
-    (inputs
-     `(("zlib" ,zlib)))
+     `(("r-rhdf5filters" ,r-rhdf5filters)
+       ("r-rhdf5lib" ,r-rhdf5lib)))
     (native-inputs
      `(("r-knitr" ,r-knitr)))
     (home-page "https://bioconductor.org/packages/rhdf5")
@@ -8916,13 +9212,13 @@ the available RAM.")
 (define-public r-annotationfilter
   (package
     (name "r-annotationfilter")
-    (version "1.12.0")
+    (version "1.14.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "AnnotationFilter" version))
               (sha256
                (base32
-                "18kh1xrhpwb48s1qj4f1v8af3jmw49pnbp5afi2myn9894hxg0cs"))))
+                "0npk0laa2rc93rsh6yikj886zf2fl53a050j07fj9w67j0q0h3s9"))))
     (properties
      `((upstream-name . "AnnotationFilter")))
     (build-system r-build-system)
@@ -9165,8 +9461,9 @@ group or two ChIP groups run under different conditions.")
            (delete 'configure) ; There is no configure phase.
            (replace 'install
              (lambda* (#:key outputs #:allow-other-keys)
-               (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
-                 (install-file "filevercmp" bin)
+               (let ((out (assoc-ref outputs "out")))
+                 (install-file "filevercmp" (string-append out "/bin"))
+                 (install-file "filevercmp.h" (string-append out "/include"))
                  #t))))))
       (home-page "https://github.com/ekg/filevercmp")
       (synopsis "This program compares version strings")
@@ -9263,14 +9560,14 @@ manipulate and analyze genetic variants.")
 (define-public r-chipseq
   (package
     (name "r-chipseq")
-    (version "1.38.0")
+    (version "1.40.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "chipseq" version))
        (sha256
         (base32
-         "0lh859s0aq73vac1phcgagf6n000qgq2xsk0bmfr61n5swifml2a"))))
+         "12pzq24aarvgxfmhcad0l5g951xqdvvi7bspgbsvlvmfkqd74j2v"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-biocgenerics" ,r-biocgenerics)
@@ -9315,14 +9612,14 @@ GenomicRanges Bioconductor package.")
 (define-public r-copywriter
   (package
     (name "r-copywriter")
-    (version "2.20.0")
+    (version "2.22.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "CopywriteR" version))
        (sha256
         (base32
-         "0c36wpv0rygkbqpf3dwh5xmc3lr7p8lrdzsq2fbbpw04skl6i7m2"))))
+         "060p6l6l8i6b15hyyz5v5kkxih3h4wcciixii51m9mn82z23xr2f"))))
     (properties `((upstream-name . "CopywriteR")))
     (build-system r-build-system)
     (propagated-inputs
@@ -9355,13 +9652,13 @@ number detection tools.")
 (define-public r-methylkit
   (package
     (name "r-methylkit")
-    (version "1.14.2")
+    (version "1.16.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "methylKit" version))
               (sha256
                (base32
-                "1qr13d2712ypbn96ijic2z5adr5dsd61kzscx7shw6vyj360rlm5"))))
+                "11pmn191n0ga28x1w20cm2cmw8kddl29q6h2xfjjba5bspp2g613"))))
     (properties `((upstream-name . "methylKit")))
     (build-system r-build-system)
     (propagated-inputs
@@ -9386,8 +9683,6 @@ number detection tools.")
        ("r-zlibbioc" ,r-zlibbioc)))
     (native-inputs
      `(("r-knitr" ,r-knitr))) ; for vignettes
-    (inputs
-     `(("zlib" ,zlib)))
     (home-page "https://github.com/al2na/methylKit")
     (synopsis
      "DNA methylation analysis from high-throughput bisulfite sequencing results")
@@ -9404,14 +9699,14 @@ TAB-Seq.")
 (define-public r-sva
   (package
     (name "r-sva")
-    (version "3.36.0")
+    (version "3.38.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "sva" version))
        (sha256
         (base32
-         "0xa1lm0k1a6nig90mab6xh4gln88rbs5l1cdr6ik6agg7jhs7ji4"))))
+         "1hpzzg3qrgkd8kwg1m5gq94cikjgk9j4l1wk58fxl49s6fmd13zy"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-edger" ,r-edger)
@@ -9432,28 +9727,6 @@ imaging data that can be used in subsequent analyses to adjust for unknown,
 unmodeled, or latent sources of noise.")
     (license license:artistic2.0)))
 
-(define-public r-seqminer
-  (package
-    (name "r-seqminer")
-    (version "8.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (cran-uri "seqminer" version))
-       (sha256
-        (base32
-         "00jzj8mwb0zaiwlifd41b26mrq9mzigj18nc29dydi0r42hxg16i"))))
-    (build-system r-build-system)
-    (inputs
-     `(("zlib" ,zlib)))
-    (home-page "http://seqminer.genomic.codes")
-    (synopsis "Read nucleotide sequence data (VCF, BCF, and METAL formats)")
-    (description
-     "This package provides tools to integrate nucleotide sequencing
-data (variant call format, e.g. VCF or BCF) or meta-analysis results in R.")
-    ;; Any version of the GPL is acceptable
-    (license (list license:gpl2+ license:gpl3+))))
-
 (define-public r-raremetals2
   (package
     (name "r-raremetals2")
@@ -9486,43 +9759,17 @@ for analyzing gene-level association tests in meta-analyses for binary
 trait.")
     (license license:gpl3)))
 
-(define-public r-maldiquant
-  (package
-    (name "r-maldiquant")
-    (version "1.19.3")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (cran-uri "MALDIquant" version))
-       (sha256
-        (base32
-         "0b7kdz3x4sdq413h1q09l1qhcvdnnwv6fqsqwllks1cd3xy34c57"))))
-    (properties `((upstream-name . "MALDIquant")))
-    (build-system r-build-system)
-    (home-page "https://cran.r-project.org/web/packages/MALDIquant")
-    (synopsis "Quantitative analysis of mass spectrometry data")
-    (description
-     "This package provides a complete analysis pipeline for matrix-assisted
-laser desorption/ionization-time-of-flight (MALDI-TOF) and other
-two-dimensional mass spectrometry data.  In addition to commonly used plotting
-and processing methods it includes distinctive features, namely baseline
-subtraction methods such as morphological filters (TopHat) or the
-statistics-sensitive non-linear iterative peak-clipping algorithm (SNIP), peak
-alignment using warping functions, handling of replicated measurements as well
-as allowing spectra with different resolutions.")
-    (license license:gpl3+)))
-
 (define-public r-protgenerics
   (package
     (name "r-protgenerics")
-    (version "1.20.0")
+    (version "1.22.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "ProtGenerics" version))
        (sha256
         (base32
-         "14xzdh7vxss8vmrw91hcwrszdn3ikm71mah8875b2lkrkrfzbl73"))))
+         "0yihxphgkshvfv1sn67wc4zvr2zlzws2j7ki3zabm6vyfkfdkfiz"))))
     (properties `((upstream-name . "ProtGenerics")))
     (build-system r-build-system)
     (home-page "https://github.com/lgatto/ProtGenerics")
@@ -9535,14 +9782,14 @@ proteomics packages.")
 (define-public r-mzr
   (package
     (name "r-mzr")
-    (version "2.22.0")
+    (version "2.24.1")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "mzR" version))
        (sha256
         (base32
-         "1r8j8yiz5lcan7j4h37sza2kwczl48dxvld3da3ghjjq67cdc2cm"))
+         "0ik0yrjhvk8r5pm990chn2aadp0gqzzkkm0027682ky34xp142sg"))
        (modules '((guix build utils)))
        (snippet
         '(begin
@@ -9557,14 +9804,19 @@ proteomics packages.")
            (lambda _
              (substitute* "src/Makevars"
                (("\\./boost/libs.*") "")
-               (("ARCH_OBJS=" line)
+               ;; This is to avoid having a plain directory on the list of
+               ;; libraries to link.
+               (("\\(RHDF5_LIBS\\)" match)
+                (string-append match "/libhdf5.a"))
+               (("PKG_LIBS=") "PKG_LIBS=$(BOOST_LIBS) ")
+               (("\\ARCH_OBJS=" line)
                 (string-append line
-                               "\nARCH_LIBS=-lboost_system -lboost_regex \
+                               "\nBOOST_LIBS=-lboost_system -lboost_regex \
 -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.22.0.
+       ;; mzR version 2.24.1.
        ("boost" ,boost-for-mysql) ; use this instead of the bundled boost sources
        ("zlib" ,zlib)))
     (propagated-inputs
@@ -9591,14 +9843,14 @@ previously been used in XCMS.")
 (define-public r-affyio
   (package
     (name "r-affyio")
-    (version "1.58.0")
+    (version "1.60.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "affyio" version))
        (sha256
         (base32
-         "0j1f61409yq6hmkqrpzamfm7dx35rlq33ccs7wb1qcqx3d3nb75q"))))
+         "14xnzrxrvgxgixjhq5a9fdgcmrxam2j74hwidkc9if92ffv6s83h"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-zlibbioc" ,r-zlibbioc)))
@@ -9615,14 +9867,14 @@ CDF file formats.")
 (define-public r-affy
   (package
     (name "r-affy")
-    (version "1.66.0")
+    (version "1.68.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "affy" version))
        (sha256
         (base32
-         "0m6hkyjxmsf80n3anhwh9k26csxczv6v92fkb7klnchdski61pyc"))))
+         "0ywz548cbzk2k1njnxhlk5ydzvz2dk78ka8kx53gwrmdc4sc2b06"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-affyio" ,r-affyio)
@@ -9643,14 +9895,14 @@ analysis.")
 (define-public r-vsn
   (package
     (name "r-vsn")
-    (version "3.56.0")
+    (version "3.58.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "vsn" version))
        (sha256
         (base32
-         "1k82dikrv1gcync5y1131wg7z1kxv2z2jl4nndg20bixc3398h58"))))
+         "0dfrfflidpnphwyqzmmfiz9blfqv6qa09xlwgfabhpfsf3ml2rlb"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-affy" ,r-affy)
@@ -9679,14 +9931,14 @@ and specific in detecting differential transcription.")
 (define-public r-mzid
   (package
     (name "r-mzid")
-    (version "1.26.0")
+    (version "1.28.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "mzID" version))
        (sha256
         (base32
-         "0y50lzkdamkpz67f6r5whp246qsxpbammjil7g8vjprx0c4jk5n5"))))
+         "0s7d6cz1li7v3ni6n6hrdspl93yiyr283kmbbd3hhkfgzgx6kpq2"))))
     (properties `((upstream-name . "mzID")))
     (build-system r-build-system)
     (propagated-inputs
@@ -9695,7 +9947,6 @@ and specific in detecting differential transcription.")
        ("r-iterators" ,r-iterators)
        ("r-plyr" ,r-plyr)
        ("r-protgenerics" ,r-protgenerics)
-       ("r-rcpp" ,r-rcpp)
        ("r-xml" ,r-xml)))
     (native-inputs
      `(("r-knitr" ,r-knitr)))
@@ -9711,14 +9962,14 @@ specific parser.")
 (define-public r-pcamethods
   (package
     (name "r-pcamethods")
-    (version "1.80.0")
+    (version "1.82.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "pcaMethods" version))
        (sha256
         (base32
-         "10cww4jxyynkwxbbsx804nwac31j0hh8dgisygld0q663gaxkgni"))))
+         "04xb4vjky6hq58l30i1iq9rv5gzjdxnidjxpnzg7pvg67vz8pgf0"))))
     (properties `((upstream-name . "pcaMethods")))
     (build-system r-build-system)
     (propagated-inputs
@@ -9741,14 +9992,14 @@ structure (pcaRes) to provide a common interface to the PCA results.")
 (define-public r-msnbase
   (package
     (name "r-msnbase")
-    (version "2.14.2")
+    (version "2.16.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "MSnbase" version))
        (sha256
         (base32
-         "17vlv9gh41s1hp043b7j1jfqiw52alh1misjzy1kxl0g90rld00l"))))
+         "0cvcdmq1glifga5qwv9j3lgj31dcrcc6ql4kkk83jy4y43v2zxlx"))))
     (properties `((upstream-name . "MSnbase")))
     (build-system r-build-system)
     (propagated-inputs
@@ -9786,30 +10037,43 @@ of mass spectrometry based proteomics data.")
 (define-public r-msnid
   (package
     (name "r-msnid")
-    (version "1.22.0")
+    (version "1.24.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "MSnID" version))
        (sha256
         (base32
-         "0dwa6j2nqb3223a8g4f453aznjh69wngrpvdi12iy69j1psbbjcc"))))
+         "05bncy7lw2a3h8xgnavjiz56pc6mk8q7l6qdd81197nawxs3j02d"))))
     (properties `((upstream-name . "MSnID")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biobase" ,r-biobase)
+     `(("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-reshape2" ,r-reshape2)
+       ("r-rlang" ,r-rlang)
+       ("r-runit" ,r-runit)
+       ("r-stringr" ,r-stringr)
+       ("r-tibble" ,r-tibble)
+       ("r-xtable" ,r-xtable)))
     (home-page "https://bioconductor.org/packages/MSnID")
     (synopsis "Utilities for LC-MSn proteomics identifications")
     (description
@@ -9822,82 +10086,17 @@ contains a number of utilities to explore the MS/MS results and assess missed
 and irregular enzymatic cleavages, mass measurement accuracy, etc.")
     (license license:artistic2.0)))
 
-(define-public r-seurat
-  (package
-    (name "r-seurat")
-    (version "3.2.0")
-    (source (origin
-              (method url-fetch)
-              (uri (cran-uri "Seurat" version))
-              (sha256
-               (base32
-                "1vj3dlsqakgnn4x1jz9fkl2cy0jzc5s65h1c20fnamr7lk45pnf2"))))
-    (properties `((upstream-name . "Seurat")))
-    (build-system r-build-system)
-    (propagated-inputs
-     `(("r-ape" ,r-ape)
-       ("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-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-rsvd" ,r-rsvd)
-       ("r-rtsne" ,r-rtsne)
-       ("r-scales" ,r-scales)
-       ("r-sctransform" ,r-sctransform)
-       ("r-shiny" ,r-shiny)
-       ("r-spatstat" ,r-spatstat)
-       ("r-tibble" ,r-tibble)
-       ("r-uwot" ,r-uwot)))
-    (home-page "http://www.satijalab.org/seurat")
-    (synopsis "Seurat is an R toolkit for single cell genomics")
-    (description
-     "This package is an R package designed for QC, analysis, and
-exploration of single cell RNA-seq data.  It easily enables widely-used
-analytical techniques, including the identification of highly variable genes,
-dimensionality reduction; PCA, ICA, t-SNE, standard unsupervised clustering
-algorithms; density clustering, hierarchical clustering, k-means, and the
-discovery of differentially expressed genes and markers.")
-    (license license:gpl3)))
-
 (define-public r-aroma-light
   (package
     (name "r-aroma-light")
-    (version "3.18.0")
+    (version "3.20.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "aroma.light" version))
        (sha256
         (base32
-         "19y5f2minx2pp73zdh43v1qkwpkaxygkl8cwlnwja15i46s0bcyc"))))
+         "0pi37rlfqh24p9wd7l1xb3f7c7938xdscgcc5agp8c9qhajq25a0"))))
     (properties `((upstream-name . "aroma.light")))
     (build-system r-build-system)
     (propagated-inputs
@@ -9948,14 +10147,14 @@ distribution.")
 (define-public r-edaseq
   (package
     (name "r-edaseq")
-    (version "2.22.0")
+    (version "2.24.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "EDASeq" version))
        (sha256
         (base32
-         "12gzxjh73qshlwvsf92lbrf4bi199kxg2snrkprh1z4yqf7bjfm4"))))
+         "0fznj7lsgkss1svv4rq8g87s1gmnbd7hccim41dv1c2w2nl0n2ip"))))
     (properties `((upstream-name . "EDASeq")))
     (build-system r-build-system)
     (propagated-inputs
@@ -9966,7 +10165,6 @@ distribution.")
        ("r-biocmanager" ,r-biocmanager)
        ("r-biomart" ,r-biomart)
        ("r-biostrings" ,r-biostrings)
-       ("r-deseq" ,r-deseq)
        ("r-genomicfeatures" ,r-genomicfeatures)
        ("r-genomicranges" ,r-genomicranges)
        ("r-iranges" ,r-iranges)
@@ -9989,14 +10187,14 @@ global-scaling and full-quantile normalization.")
 (define-public r-interactivedisplaybase
   (package
     (name "r-interactivedisplaybase")
-    (version "1.26.3")
+    (version "1.28.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "interactiveDisplayBase" version))
        (sha256
         (base32
-         "1x5vipqa4pgwpd62c1c58shnlpv3zyzzpf4wdwr00q1swkdb7wv3"))))
+         "08id2hkx4ssxj34dildx00a4j3z0nv171b7b0wl6xjks7wk6lv01"))))
     (properties
      `((upstream-name . "interactiveDisplayBase")))
     (build-system r-build-system)
@@ -10016,14 +10214,14 @@ Shiny-based display methods for Bioconductor objects.")
 (define-public r-annotationhub
   (package
     (name "r-annotationhub")
-    (version "2.20.0")
+    (version "2.22.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "AnnotationHub" version))
        (sha256
         (base32
-         "0r4xzf93bm9cpys5cg70wg0b8hxli80hvqwgh4hzbd45yyf5c4wz"))))
+         "1950x654ffqx53b154kbph808zdh2xm5vmj9vzmc5nxc28fi2z5g"))))
     (properties `((upstream-name . "AnnotationHub")))
     (build-system r-build-system)
     (propagated-inputs
@@ -10057,14 +10255,14 @@ by the user, helping with quick and reproducible access.")
 (define-public r-fastseg
   (package
     (name "r-fastseg")
-    (version "1.34.0")
+    (version "1.36.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "fastseg" version))
        (sha256
         (base32
-         "1d48n245pzmvcpsz93lxb4frqh222gfhpmlvm0sb74skn16way63"))))
+         "1ln6w93ag4wanp0nrm0pqngbfc88w95zq2kcj583hbxy885dkg4f"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-biobase" ,r-biobase)
@@ -10087,14 +10285,14 @@ microarrays or GRanges for sequencing data.")
 (define-public r-keggrest
   (package
     (name "r-keggrest")
-    (version "1.28.0")
+    (version "1.30.1")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "KEGGREST" version))
        (sha256
         (base32
-         "0q76w17fya2x0z7mvyhkk5kqh07flldgih13ma44vhcy1bdlm6j1"))))
+         "0k9z85xf9la2y98xqmdmjb8mci9fh2fdybkl77x1yl26hyalip0s"))))
     (properties `((upstream-name . "KEGGREST")))
     (build-system r-build-system)
     (propagated-inputs
@@ -10113,17 +10311,18 @@ microarrays or GRanges for sequencing data.")
 (define-public r-gage
   (package
     (name "r-gage")
-    (version "2.37.0")
+    (version "2.40.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "gage" version))
        (sha256
         (base32
-         "1zfaas4x6g7wiml6cmxa7b4f43az9s0lrw80k6sf7c96hsh1jijr"))))
+         "0xm50wgjjjymv71mbv1clnhx4m12nrd1pc6vfplpdqr5q49v3yd5"))))
     (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)))
     (home-page (string-append "https://bmcbioinformatics.biomedcentral.com/"
@@ -10143,14 +10342,14 @@ analysis using other methods.")
 (define-public r-genomicfiles
   (package
     (name "r-genomicfiles")
-    (version "1.24.0")
+    (version "1.26.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "GenomicFiles" version))
        (sha256
         (base32
-         "1k3824pzf9fdqvcv6cz2742q3mabpmncrc72hwa21ac8wy1b04n4"))))
+         "0awnf0m1pz7cw9wvh9cfxz9k7xm6wnvjm7xbxf139lrhd4nlyqjz"))))
     (properties `((upstream-name . "GenomicFiles")))
     (build-system r-build-system)
     (propagated-inputs
@@ -10160,6 +10359,7 @@ analysis using other methods.")
        ("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)
@@ -10176,25 +10376,30 @@ provide added flexibility for data combination and manipulation.")
 (define-public r-complexheatmap
   (package
     (name "r-complexheatmap")
-    (version "2.4.2")
+    (version "2.6.2")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "ComplexHeatmap" version))
        (sha256
         (base32
-         "01jxxwxhf9n8baxgja4rb592p5210s4ppd7a5b4xby5aalhzkr0l"))))
+         "1nx1xxpq8zrvi990v9fmvx3msl85pdz5dp1gp6m78q6i4s2alg5x"))))
     (properties
      `((upstream-name . "ComplexHeatmap")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-circlize" ,r-circlize)
+     `(("r-cairo" ,r-cairo)
+       ("r-circlize" ,r-circlize)
        ("r-clue" ,r-clue)
        ("r-colorspace" ,r-colorspace)
+       ("r-digest" ,r-digest)
        ("r-getoptlong" ,r-getoptlong)
        ("r-globaloptions" ,r-globaloptions)
+       ("r-iranges" ,r-iranges)
+       ("r-matrixstats" ,r-matrixstats)
        ("r-png" ,r-png)
-       ("r-rcolorbrewer" ,r-rcolorbrewer)))
+       ("r-rcolorbrewer" ,r-rcolorbrewer)
+       ("r-s4vectors" ,r-s4vectors)))
     (native-inputs
      `(("r-knitr" ,r-knitr)))
     (home-page
@@ -10210,14 +10415,14 @@ self-defined annotation graphics.")
 (define-public r-dirichletmultinomial
   (package
     (name "r-dirichletmultinomial")
-    (version "1.30.0")
+    (version "1.32.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "DirichletMultinomial" version))
        (sha256
         (base32
-         "1m9dsrddrllb2i88qzik1867iv9mggrgdkn0dlp8sq7gl69vmalb"))))
+         "098zql6ryd1b0gkq4cjybblyh0x8xidxxfygqq5a5x9asl8y4vsk"))))
     (properties
      `((upstream-name . "DirichletMultinomial")))
     (build-system r-build-system)
@@ -10239,14 +10444,14 @@ originally made available by Holmes, Harris, and Quince, 2012, PLoS ONE 7(2):
 (define-public r-ensembldb
   (package
     (name "r-ensembldb")
-    (version "2.12.1")
+    (version "2.14.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "ensembldb" version))
        (sha256
         (base32
-         "1vvchc04nshxc768fp31rxb603aj3hmq8xlh5qabcwf2c3z9719g"))))
+         "04il99gcrqzakvc0bxchdp9gghkn1sp9lpiian0iz4y7r67z3wpy"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-annotationdbi" ,r-annotationdbi)
@@ -10284,14 +10489,14 @@ chromosome region or transcript models of lincRNA genes.")
 (define-public r-organismdbi
   (package
     (name "r-organismdbi")
-    (version "1.30.0")
+    (version "1.32.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "OrganismDbi" version))
        (sha256
         (base32
-         "194h5576inq44qr666snzq0ygnc77rk5ljkn9bn8zs6x6gb3cwaw"))))
+         "1mklnzs0d0ygcdibwfnk5xqr8ln6wpa00qcaw9c68m342kql0jqw"))))
     (properties `((upstream-name . "OrganismDbi")))
     (build-system r-build-system)
     (propagated-inputs
@@ -10316,14 +10521,14 @@ the fact that each of these packages implements a select methods.")
 (define-public r-biovizbase
   (package
     (name "r-biovizbase")
-    (version "1.36.0")
+    (version "1.38.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "biovizBase" version))
        (sha256
         (base32
-         "1vq2mxa2jkljgw75zqjdkyml0ppi5dspvwj4cznfhi31cq8ds0qh"))))
+         "10jflvadfcgxq2jnfxkpn417xd8ibh3zllz9rsqnq5w3wgfr4fhq"))))
     (properties `((upstream-name . "biovizBase")))
     (build-system r-build-system)
     (propagated-inputs
@@ -10355,766 +10560,6 @@ high-level packages for biological data visualization.  This saves development
 effort and encourages consistency.")
     (license license:artistic2.0)))
 
-(define-public r-ggbio
-  (package
-    (name "r-ggbio")
-    (version "1.36.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (bioconductor-uri "ggbio" version))
-       (sha256
-        (base32
-         "11ggnqjq42fi2hm9xlvrrlr2xhy4kglvl1a0mycp1s4v67lxw5h5"))))
-    (build-system r-build-system)
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         ;; See https://github.com/tengfei/ggbio/issues/117
-         ;; This fix will be included in the next release.
-         (add-after 'unpack 'fix-typo
-           (lambda _
-             (substitute* "R/GGbio-class.R"
-               (("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)))
-    (home-page "http://www.tengfei.name/ggbio/")
-    (synopsis "Visualization tools for genomic data")
-    (description
-     "The ggbio package extends and specializes the grammar of graphics for
-biological data.  The graphics are designed to answer common scientific
-questions, in particular those often asked of high throughput genomics data.
-All core Bioconductor data structures are supported, where appropriate.  The
-package supports detailed views of particular genomic regions, as well as
-genome-wide overviews.  Supported overviews include ideograms and grand linear
-views.  High-level plots include sequence fragment length, edge-linked
-interval to data view, mismatch pileup, and several splicing summaries.")
-    (license license:artistic2.0)))
-
-(define-public r-gqtlbase
-  (package
-    (name "r-gqtlbase")
-    (version "1.20.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (bioconductor-uri "gQTLBase" version))
-       (sha256
-        (base32
-         "06xvzp4fn3qfa46ggg8kxi267gbyd821vvx4040173xkqxpr0g5j"))))
-    (properties `((upstream-name . "gQTLBase")))
-    (build-system r-build-system)
-    (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)))
-    (home-page "https://bioconductor.org/packages/gQTLBase")
-    (synopsis "Infrastructure for eQTL, mQTL and similar studies")
-    (description
-     "The purpose of this package is to simplify the storage and interrogation
-of @dfn{quantitative trait loci} (QTL) archives, such as eQTL, mQTL, dsQTL,
-and more.")
-    (license license:artistic2.0)))
-
-(define-public r-snpstats
-  (package
-    (name "r-snpstats")
-    (version "1.38.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (bioconductor-uri "snpStats" version))
-       (sha256
-        (base32
-         "1qv3nqqr30d3n66mawqd9dbl95dl89r4bcjvkc5iassy1yrwr8wq"))))
-    (properties `((upstream-name . "snpStats")))
-    (build-system r-build-system)
-    (inputs `(("zlib" ,zlib)))
-    (propagated-inputs
-     `(("r-biocgenerics" ,r-biocgenerics)
-       ("r-matrix" ,r-matrix)
-       ("r-survival" ,r-survival)
-       ("r-zlibbioc" ,r-zlibbioc)))
-    (home-page "https://bioconductor.org/packages/snpStats")
-    (synopsis "Methods for SNP association studies")
-    (description
-     "This package provides classes and statistical methods for large
-@dfn{single-nucleotide polymorphism} (SNP) association studies.  This extends
-the earlier snpMatrix package, allowing for uncertainty in genotypes.")
-    (license license:gpl3)))
-
-(define-public r-homo-sapiens
-  (package
-    (name "r-homo-sapiens")
-    (version "1.3.1")
-    (source (origin
-              (method url-fetch)
-              ;; We cannot use bioconductor-uri here because this tarball is
-              ;; located under "data/annotation/" instead of "bioc/".
-              (uri (string-append "https://www.bioconductor.org/packages/"
-                                  "release/data/annotation/src/contrib/"
-                                  "Homo.sapiens_"
-                                  version ".tar.gz"))
-              (sha256
-               (base32
-                "151vj7h5p1c8yd5swrchk46z469p135wk50hvkl0nhgndvy0jj01"))))
-    (properties
-     `((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)))
-    (home-page "https://bioconductor.org/packages/Homo.sapiens/")
-    (synopsis "Annotation package for the Homo.sapiens object")
-    (description
-     "This package contains the Homo.sapiens object to access data from
-several related annotation packages.")
-    (license license:artistic2.0)))
-
-(define-public r-erma
-  (package
-    (name "r-erma")
-    (version "1.4.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (bioconductor-uri "erma" version))
-       (sha256
-        (base32
-         "1ccfbq0r48sr3h8050w8zv8402h7nx09adr0xdyqlg7kwp9vd2l3"))))
-    (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)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
-    (home-page "https://bioconductor.org/packages/erma")
-    (synopsis "Epigenomic road map adventures")
-    (description
-     "The epigenomics road map describes locations of epigenetic marks in DNA
-from a variety of cell types.  Of interest are locations of histone
-modifications, sites of DNA methylation, and regions of accessible chromatin.
-This package presents a selection of elements of the road map including
-metadata and outputs of the ChromImpute procedure applied to ENCODE cell lines
-by Ernst and Kellis.")
-    (license license:artistic2.0)))
-
-(define-public r-ldblock
-  (package
-    (name "r-ldblock")
-    (version "1.18.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (bioconductor-uri "ldblock" version))
-       (sha256
-        (base32
-         "0plw00n2zfgh029ab41dnydzgv2yxrapjp770147rx9pff4dngrv"))))
-    (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)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
-    (home-page "https://bioconductor.org/packages/ldblock")
-    (synopsis "Data structures for linkage disequilibrium measures in populations")
-    (description
-     "This package defines data structures for @dfn{linkage
-disequilibrium} (LD) measures in populations.  Its purpose is to simplify
-handling of existing population-level data for the purpose of flexibly
-defining LD blocks.")
-    (license license:artistic2.0)))
-
-(define-public r-gqtlstats
-  (package
-    (name "r-gqtlstats")
-    (version "1.20.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (bioconductor-uri "gQTLstats" version))
-       (sha256
-        (base32
-         "1jjqfpjp93nmxjn757j5mzcax96bzcqdd1gr3rsdxg7ap008l2w7"))))
-    (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)))
-    (home-page "https://bioconductor.org/packages/gQTLstats")
-    (synopsis "Computationally efficient analysis for eQTL and allied studies")
-    (description
-     "This package provides tools for the computationally efficient analysis
-of @dfn{quantitative trait loci} (QTL) data, including eQTL, mQTL, dsQTL, etc.
-The software in this package aims to support refinements and functional
-interpretation of members of a collection of association statistics on a
-family of feature/genome hypotheses.")
-    (license license:artistic2.0)))
-
-(define-public r-gviz
-  (package
-    (name "r-gviz")
-    (version "1.32.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (bioconductor-uri "Gviz" version))
-       (sha256
-        (base32
-         "0cgkp0ciyy2qykqgh3vzp5mx9b4vsvacjh2jnsj3wldiapzlz08a"))))
-    (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)))
-    (home-page "https://bioconductor.org/packages/Gviz")
-    (synopsis "Plotting data and annotation information along genomic coordinates")
-    (description
-     "Genomic data analyses requires integrated visualization of known genomic
-information and new experimental data.  Gviz uses the biomaRt and the
-rtracklayer packages to perform live annotation queries to Ensembl and UCSC
-and translates this to e.g. gene/transcript structures in viewports of the
-grid graphics package.  This results in genomic information plotted together
-with your data.")
-    (license license:artistic2.0)))
-
-(define-public r-gwascat
-  (package
-    (name "r-gwascat")
-    (version "2.20.1")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (bioconductor-uri "gwascat" version))
-       (sha256
-        (base32
-         "1cq5cmdrf0a0arr841yvkh6d8drc15p7mif1afr215l1s3y2dwd4"))))
-    (build-system r-build-system)
-    (propagated-inputs
-     `(("r-annotationdbi" ,r-annotationdbi)
-       ("r-biocgenerics" ,r-biocgenerics)
-       ("r-biostrings" ,r-biostrings)
-       ("r-genomeinfodb" ,r-genomeinfodb)
-       ("r-genomicfeatures" ,r-genomicfeatures)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-iranges" ,r-iranges)
-       ("r-rsamtools" ,r-rsamtools)
-       ("r-rtracklayer" ,r-rtracklayer)
-       ("r-s4vectors" ,r-s4vectors)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
-    (home-page "https://bioconductor.org/packages/gwascat")
-    (synopsis "Tools for data in the EMBL-EBI GWAS catalog")
-    (description
-     "This package provides tools for representing and modeling data in the
-EMBL-EBI GWAS catalog.")
-    (license license:artistic2.0)))
-
-(define-public r-sushi
-  (package
-    (name "r-sushi")
-    (version "1.26.0")
-    (source (origin
-              (method url-fetch)
-              (uri (bioconductor-uri "Sushi" version))
-              (sha256
-               (base32
-                "17j3d5qjq5nbv99by5mq8rwr0jgh2jyyfn2nwxmwgzlmk3lgi1rb"))))
-    (properties `((upstream-name . "Sushi")))
-    (build-system r-build-system)
-    (propagated-inputs
-     `(("r-biomart" ,r-biomart)
-       ("r-zoo" ,r-zoo)))
-    (home-page "https://bioconductor.org/packages/Sushi")
-    (synopsis "Tools for visualizing genomics data")
-    (description
-     "This package provides flexible, quantitative, and integrative genomic
-visualizations for publication-quality multi-panel figures.")
-    (license license:gpl2+)))
-
-(define-public r-fithic
-  (package
-    (name "r-fithic")
-    (version "1.14.0")
-    (source (origin
-              (method url-fetch)
-              (uri (bioconductor-uri "FitHiC" version))
-              (sha256
-               (base32
-                "1dffkdxm08wq4kjd9j2v2625x3p6vbrk33a2zx94pwpgkghr72yp"))))
-    (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)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
-    (home-page "https://bioconductor.org/packages/FitHiC")
-    (synopsis "Confidence estimation for intra-chromosomal contact maps")
-    (description
-     "Fit-Hi-C is a tool for assigning statistical confidence estimates to
-intra-chromosomal contact maps produced by genome-wide genome architecture
-assays such as Hi-C.")
-    (license license:gpl2+)))
-
-(define-public r-hitc
-  (package
-    (name "r-hitc")
-    (version "1.32.0")
-    (source (origin
-              (method url-fetch)
-              (uri (bioconductor-uri "HiTC" version))
-              (sha256
-               (base32
-                "1jx2pfa7sbdz7xi466lz1h5xv126g56z73n0a5l2wrq28k47qaxy"))))
-    (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)))
-    (home-page "https://bioconductor.org/packages/HiTC")
-    (synopsis "High throughput chromosome conformation capture analysis")
-    (description
-     "The HiTC package was developed to explore high-throughput \"C\" data
-such as 5C or Hi-C.  Dedicated R classes as well as standard methods for
-quality controls, normalization, visualization, and further analysis are also
-provided.")
-    (license license:artistic2.0)))
-
-(define-public r-hdf5array
-  (package
-    (name "r-hdf5array")
-    (version "1.16.1")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (bioconductor-uri "HDF5Array" version))
-       (sha256
-        (base32
-         "01767v90nl0499jcicpxngbbs0af5p9c5aasi5va01w3v5bnqddn"))))
-    (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-rhdf5lib" ,r-rhdf5lib)
-       ("r-s4vectors" ,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
-access and manipulation of HDF5 datasets.  It supports delayed operations and
-block processing.")
-    (license license:artistic2.0)))
-
-(define-public r-rhdf5lib
-  (package
-    (name "r-rhdf5lib")
-    (version "1.10.1")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (bioconductor-uri "Rhdf5lib" version))
-       (sha256
-        (base32
-         "0f45sqrvzj6x4mckalyp8366hm8v0rrmzklx3xd4gs6l2wallcn9"))
-       (modules '((guix build utils)))
-       (snippet
-        '(begin
-           ;; Delete bundled binaries
-           (delete-file-recursively "src/wininclude/")
-           (delete-file-recursively "src/winlib-4.9.3/")
-           (delete-file-recursively "src/winlib-8.3.0/")
-           (delete-file "src/hdf5small_cxx_hl_1.10.6.tar.gz")
-           #t))))
-    (properties `((upstream-name . "Rhdf5lib")))
-    (build-system r-build-system)
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'do-not-use-bundled-hdf5
-           (lambda* (#:key inputs #:allow-other-keys)
-             (for-each delete-file '("configure" "configure.ac"))
-             ;; Do not make other packages link with the proprietary libsz.
-             (substitute* "R/zzz.R"
-               ((" \"%s/libsz.a\"") ""))
-             (with-directory-excursion "src"
-               (invoke "tar" "xvf" (assoc-ref inputs "hdf5-source"))
-               (rename-file (string-append "hdf5-" ,(package-version hdf5-1.10))
-                            "hdf5")
-               ;; Remove timestamp and host system information to make
-               ;; the build reproducible.
-               (substitute* "hdf5/src/libhdf5.settings.in"
-                 (("Configured on: @CONFIG_DATE@")
-                  "Configured on: Guix")
-                 (("Uname information:.*")
-                  "Uname information: Linux\n")
-                 ;; Remove unnecessary store reference.
-                 (("C Compiler:.*")
-                  "C Compiler: GCC\n"))
-               (rename-file "Makevars.in" "Makevars")
-               (substitute* "Makevars"
-                 (("@ZLIB_LIB@") "-lz")
-                 (("@ZLIB_INCLUDE@") "")
-                 (("HDF5_CXX_LIB=.*")
-                  (string-append "HDF5_CXX_LIB="
-                                 (assoc-ref inputs "hdf5") "/lib/libhdf5_cpp.a\n"))
-                 (("HDF5_LIB=.*")
-                  (string-append "HDF5_LIB="
-                                 (assoc-ref inputs "hdf5") "/lib/libhdf5.a\n"))
-                 (("HDF5_CXX_INCLUDE=.*") "HDF5_CXX_INCLUDE=./hdf5/c++/src\n")
-                 (("HDF5_INCLUDE=.*") "HDF5_INCLUDE=./hdf5/src\n")
-                 (("HDF5_HL_INCLUDE=.*") "HDF5_HL_INCLUDE=./hdf5/hl/src\n")
-                 (("HDF5_HL_CXX_INCLUDE=.*") "HDF5_HL_CXX_INCLUDE=./hdf5/hl/c++/src\n")
-                 (("HDF5_HL_LIB=.*")
-                  (string-append "HDF5_HL_LIB="
-                                 (assoc-ref inputs "hdf5") "/lib/libhdf5_hl.a\n"))
-                 (("HDF5_HL_CXX_LIB=.*")
-                  (string-append "HDF5_HL_CXX_LIB="
-                                 (assoc-ref inputs "hdf5") "/lib/libhdf5_hl_cpp.a\n"))
-                 ;; szip is non-free software
-                 (("cp \"\\$\\{SZIP_LIB\\}.*") "")
-                 (("PKG_LIBS =.*") "PKG_LIBS = -lz -lhdf5\n")))
-             #t)))))
-    (inputs
-     `(("zlib" ,zlib)))
-    (propagated-inputs
-     `(("hdf5" ,hdf5-1.10)))
-    (native-inputs
-     `(("hdf5-source" ,(package-source hdf5-1.10))
-       ("r-knitr" ,r-knitr)))
-    (home-page "https://bioconductor.org/packages/Rhdf5lib")
-    (synopsis "HDF5 library as an R package")
-    (description "This package provides C and C++ HDF5 libraries for use in R
-packages.")
-    (license license:artistic2.0)))
-
-(define-public r-beachmat
-  (package
-    (name "r-beachmat")
-    (version "2.4.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (bioconductor-uri "beachmat" version))
-       (sha256
-        (base32
-         "1vl6jbf9ia78cm4ikdb8vz04jv4b46zhvg5i006c63a9pzw7zhxi"))))
-    (build-system r-build-system)
-    (propagated-inputs
-     `(("r-biocgenerics" ,r-biocgenerics)
-       ("r-delayedarray" ,r-delayedarray)
-       ("r-matrix" ,r-matrix)))
-    (native-inputs
-     `(("r-knitr" ,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
-variety of commonly used matrix types, including sparse and HDF5-backed
-matrices.")
-    (license license:gpl3)))
-
-(define-public r-singlecellexperiment
-  (package
-    (name "r-singlecellexperiment")
-    (version "1.10.1")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (bioconductor-uri "SingleCellExperiment" version))
-       (sha256
-        (base32
-         "092wvk11n7pa234vlwhxm3gdi4k3sbnz1splhxalbdhz3jf02zfp"))))
-    (properties
-     `((upstream-name . "SingleCellExperiment")))
-    (build-system r-build-system)
-    (propagated-inputs
-     `(("r-biocgenerics" ,r-biocgenerics)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-summarizedexperiment" ,r-summarizedexperiment)))
-    (native-inputs
-     `(("r-knitr" ,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
-single-cell experiments.  This includes specialized methods to store and
-retrieve spike-in information, dimensionality reduction coordinates and size
-factors for each cell, along with the usual metadata for genes and
-libraries.")
-    (license license:gpl3)))
-
-(define-public r-scater
-  (package
-    (name "r-scater")
-    (version "1.16.2")
-    (source (origin
-              (method url-fetch)
-              (uri (bioconductor-uri "scater" version))
-              (sha256
-               (base32
-                "1pa5wvgjb30rw1vsjwbnn07ss3sc5n8ck5d7khdby4r2s9177s33"))))
-    (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-matrix" ,r-matrix)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rlang" ,r-rlang)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-singlecellexperiment" ,r-singlecellexperiment)
-       ("r-summarizedexperiment" ,r-summarizedexperiment)
-       ("r-viridis" ,r-viridis)))
-    (native-inputs
-     `(("r-knitr" ,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
-various analyses of single-cell RNA-seq gene expression data, with a focus on
-quality control.")
-    (license license:gpl2+)))
-
-(define-public r-scran
-  (package
-    (name "r-scran")
-    (version "1.16.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (bioconductor-uri "scran" version))
-       (sha256
-        (base32
-         "1gm4ys4aq8h1pn45k1rxk384wjyf55izivw8kgxbrflj6j4xvvsv"))))
-    (build-system r-build-system)
-    (propagated-inputs
-     `(("r-beachmat" ,r-beachmat)
-       ("r-bh" ,r-bh)
-       ("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-dqrng" ,r-dqrng)
-       ("r-edger" ,r-edger)
-       ("r-igraph" ,r-igraph)
-       ("r-iranges" ,r-iranges)
-       ("r-limma" ,r-limma)
-       ("r-matrix" ,r-matrix)
-       ("r-rcpp" ,r-rcpp)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-scater" ,r-scater)
-       ("r-singlecellexperiment" ,r-singlecellexperiment)
-       ("r-statmod" ,r-statmod)
-       ("r-summarizedexperiment" ,r-summarizedexperiment)))
-    (native-inputs
-     `(("r-knitr" ,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
-single-cell RNA-seq data.  Methods are provided for normalization of
-cell-specific biases, assignment of cell cycle phase, and detection of highly
-variable and significantly correlated genes.")
-    (license license:gpl3)))
-
-(define-public r-delayedmatrixstats
-  (package
-    (name "r-delayedmatrixstats")
-    (version "1.10.1")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (bioconductor-uri "DelayedMatrixStats" version))
-       (sha256
-        (base32
-         "046sam0rz42ph0m7jz7v3bck7d3h2mp45gzywh5dvc1qkjq6fdxx"))))
-    (properties
-     `((upstream-name . "DelayedMatrixStats")))
-    (build-system r-build-system)
-    (propagated-inputs
-     `(("r-biocparallel" ,r-biocparallel)
-       ("r-delayedarray" ,r-delayedarray)
-       ("r-hdf5array" ,r-hdf5array)
-       ("r-iranges" ,r-iranges)
-       ("r-matrix" ,r-matrix)
-       ("r-matrixstats" ,r-matrixstats)
-       ("r-s4vectors" ,r-s4vectors)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
-    (home-page "https://github.com/PeteHaitch/DelayedMatrixStats")
-    (synopsis "Functions that apply to rows and columns of DelayedMatrix objects")
-    (description
-     "This package provides a port of the @code{matrixStats} API for use with
-@code{DelayedMatrix} objects from the @code{DelayedArray} package.  It
-contains high-performing functions operating on rows and columns of
-@code{DelayedMatrix} objects, e.g. @code{colMedians}, @code{rowMedians},
-@code{colRanks}, @code{rowRanks}, @code{colSds}, and @code{rowSds}.  Functions
-are optimized per data type and for subsetted calculations such that both
-memory usage and processing time is minimized.")
-    (license license:expat)))
-
-(define-public r-phangorn
-  (package
-    (name "r-phangorn")
-    (version "2.5.5")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (cran-uri "phangorn" version))
-       (sha256
-        (base32
-         "0ihkaykqjmf80d8wrk3saphxvnv58zma6pd13633bd3cwanc33f5"))))
-    (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)))
-    (home-page "https://github.com/KlausVigo/phangorn")
-    (synopsis "Phylogenetic analysis in R")
-    (description
-     "Phangorn is a package for phylogenetic analysis in R.  It supports
-estimation of phylogenetic trees and networks using Maximum Likelihood,
-Maximum Parsimony, distance methods and Hadamard conjugation.")
-    (license license:gpl2+)))
-
 (define-public r-dropbead
   (let ((commit "d746c6f3b32110428ea56d6a0001ce52a251c247")
         (revision "2"))
@@ -11145,41 +10590,20 @@ explore and perform basic analysis of single cell sequencing data coming from
 droplet sequencing.  It has been particularly tailored for Drop-seq.")
       (license license:gpl3))))
 
-(define htslib-for-sambamba
-  (let ((commit "2f3c3ea7b301f9b45737a793c0b2dcf0240e5ee5"))
-    (package
-      (inherit htslib)
-      (name "htslib-for-sambamba")
-      (version (string-append "1.3.1-1." (string-take commit 9)))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/lomereiter/htslib")
-               (commit commit)))
-         (file-name (string-append "htslib-" version "-checkout"))
-         (sha256
-          (base32
-           "0g38g8s3npr0gjm9fahlbhiskyfws9l5i0x1ml3rakzj7az5l9c9"))))
-      (native-inputs
-       `(("autoconf" ,autoconf)
-         ("automake" ,automake)
-         ,@(package-native-inputs htslib))))))
-
 (define-public sambamba
   (package
     (name "sambamba")
-    (version "0.7.1")
+    (version "0.8.0")
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://github.com/lomereiter/sambamba")
+             (url "https://github.com/biod/sambamba")
              (commit (string-append "v" version))))
-       (file-name (string-append name "-" version "-checkout"))
+       (file-name (git-file-name name version))
        (sha256
         (base32
-         "111h05b60pj8dxbidiamy4imc92x2962b3lmb7wgysl6lx064qis"))))
+         "07dznzl6m8k7sw84jxw2kx6i3ymrapbmcmyh0fxz8wrybhw8fmwc"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                      ; there is no test target
@@ -11189,52 +10613,30 @@ droplet sequencing.  It has been particularly tailored for Drop-seq.")
          (delete 'configure)
          (add-after 'unpack 'fix-ldc-version
            (lambda _
-             (substitute* "gen_ldc_version_info.py"
-               (("/usr/bin/env.*") (which "python3")))
              (substitute* "Makefile"
                ;; We use ldc2 instead of ldmd2 to compile sambamba.
                (("\\$\\(shell which ldmd2\\)") (which "ldc2")))
              #t))
-         (add-after 'unpack 'place-biod-and-undead
-           (lambda* (#:key inputs #:allow-other-keys)
-             (copy-recursively (assoc-ref inputs "biod") "BioD")
-             #t))
          (add-after 'unpack 'unbundle-prerequisites
            (lambda _
              (substitute* "Makefile"
-               (("htslib/libhts.a lz4/lib/liblz4.a")
-                "-L-lhts -L-llz4")
-               ((" lz4-static htslib-static") ""))
+               (("= lz4/lib/liblz4.a") "= -L-llz4")
+               (("ldc_version_info lz4-static") "ldc_version_info"))
              #t))
          (replace 'install
            (lambda* (#:key outputs #:allow-other-keys)
-             (let* ((out   (assoc-ref outputs "out"))
-                    (bin   (string-append out "/bin")))
+             (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
                (mkdir-p bin)
                (copy-file (string-append "bin/sambamba-" ,version)
                           (string-append bin "/sambamba"))
                #t))))))
     (native-inputs
-     `(("ldc" ,ldc)
-       ("rdmd" ,rdmd)
-       ("python" ,python)
-       ("biod"
-        ,(let ((commit "7969eb0a847b05874e83ffddead26e193ece8101"))
-           (origin
-             (method git-fetch)
-             (uri (git-reference
-                   (url "https://github.com/biod/BioD")
-                   (commit commit)))
-             (file-name (string-append "biod-"
-                                       (string-take commit 9)
-                                       "-checkout"))
-             (sha256
-              (base32
-               "0mjxsmbmv0jxl3pq21p8j5r829d648if8q58ka50b2956lc6qkpm")))))))
+     `(("python" ,python)))
     (inputs
-     `(("lz4" ,lz4)
-       ("htslib" ,htslib-for-sambamba)))
-    (home-page "https://lomereiter.github.io/sambamba/")
+     `(("ldc" ,ldc)
+       ("lz4" ,lz4)
+       ("zlib" ,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
 fast tool (and library), written in the D programming language, for
@@ -11463,7 +10865,7 @@ programs for inferring phylogenies (evolutionary trees).")
 (define-public imp
   (package
     (name "imp")
-    (version "2.6.2")
+    (version "2.13.0")
     (source
      (origin
        (method url-fetch)
@@ -11471,25 +10873,47 @@ programs for inferring phylogenies (evolutionary trees).")
                            version "/download/imp-" version ".tar.gz"))
        (sha256
         (base32
-         "0lxqx7vh79d771svr611dkilp6sn30qrbw8zvscbrm37v38d2j6h"))))
+         "1z1vcpwbylixk0zywngg5iw0jv083jj1bqphi817jpg3fb9fx2jj"))))
     (build-system cmake-build-system)
     (arguments
-     `(;; FIXME: Some tests fail because they produce warnings, others fail
-       ;; because the PYTHONPATH does not include the modeller's directory.
-       #:tests? #f))
+     `( ;; CMake 3.17 or newer is required for the CMAKE_TEST_ARGUMENTS used
+       ;; below to have an effect.
+       #:cmake ,cmake
+       #:configure-flags
+       (let ((disabled-tests
+              '("expensive"                 ;exclude expensive tests
+                "IMP.modeller"              ;fail to import its own modules
+                "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")))
+         (list
+          (string-append
+           "-DCMAKE_CTEST_ARGUMENTS="
+           (string-join
+            (list "-L" "-tests?-"       ;select only tests
+                  "-E" (format #f "'(~a)'" (string-join disabled-tests "|")))
+            ";"))))))
+    (native-inputs
+     `(("python" ,python-wrapper)
+       ("swig" ,swig)))
     (inputs
      `(("boost" ,boost)
+       ("cgal" ,cgal)
        ("gsl" ,gsl)
-       ("swig" ,swig)
        ("hdf5" ,hdf5)
        ("fftw" ,fftw)
-       ("python" ,python-2)))
+       ("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)))
     (propagated-inputs
-     `(("python2-numpy" ,python2-numpy)
-       ("python2-scipy" ,python2-scipy)
-       ("python2-pandas" ,python2-pandas)
-       ("python2-scikit-learn" ,python2-scikit-learn)
-       ("python2-networkx" ,python2-networkx)))
+     `(("python-numpy" ,python-numpy)
+       ("python-scipy" ,python-scipy)
+       ("python-pandas" ,python-pandas)
+       ("python-scikit-learn" ,python-scikit-learn)
+       ("python-networkx" ,python-networkx)))
     (home-page "https://integrativemodeling.org")
     (synopsis "Integrative modeling platform")
     (description "IMP's broad goal is to contribute to a comprehensive
@@ -11507,7 +10931,7 @@ applications for tackling some common problems in a user-friendly way.")
 (define-public tadbit
   (package
     (name "tadbit")
-    (version "0.2.0")
+    (version "1.0.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -11516,21 +10940,13 @@ applications for tackling some common problems in a user-friendly way.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "07g3aj648prmsvxp9caz5yl41k0y0647vxh0f5p3w8376mfiljd0"))))
+                "0hqrlymh2a2bimcfdvlssy1x5h1lp3h1c5a7jj11hmcqczzqn3ni"))))
     (build-system python-build-system)
     (arguments
-     `(;; Tests are included and must be run after installation, but
-       ;; they are incomplete and thus cannot be run.
-       #:tests? #f
-       #:python ,python-2
-       #:phases
+     `(#:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'fix-problems-with-setup.py
            (lambda* (#:key outputs #:allow-other-keys)
-             ;; setup.py opens these files for writing
-             (chmod "_pytadbit/_version.py" #o664)
-             (chmod "README.rst" #o664)
-
              ;; Don't attempt to install the bash completions to
              ;; the home directory.
              (rename-file "extras/.bash_completion"
@@ -11542,15 +10958,25 @@ applications for tackling some common problems in a user-friendly way.")
                                "/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)
-       ("python2-scipy" ,python2-scipy)
-       ("python2-numpy" ,python2-numpy)
-       ("python2-matplotlib" ,python2-matplotlib)
-       ("python2-pysam" ,python2-pysam)))
+       ("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
@@ -11650,22 +11076,23 @@ models.  TADbit is complemented by TADkit for visualizing 3D models.")
              #t)))))
     (native-inputs
      `(("samtabix"
-        ,(origin
-           (method git-fetch)
-           (uri (git-reference
-                 (url "http://genome-source.cse.ucsc.edu/samtabix.git")
-                 (commit "10fd107909c1ac4d679299908be4262a012965ba")))
-           (sha256
-            (base32
-             "0c1nj64l42v395sa84n7az43xiap4i6f9n9dfz4058aqiwkhkmma"))))))
+        ,(let ((commit "10fd107909c1ac4d679299908be4262a012965ba"))
+           (origin
+             (method git-fetch)
+             (uri (git-reference
+                   (url "http://genome-source.cse.ucsc.edu/samtabix.git")
+                   (commit commit)))
+             (file-name (git-file-name "samtabix" (string-take commit 7)))
+             (sha256
+              (base32
+               "0c1nj64l42v395sa84n7az43xiap4i6f9n9dfz4058aqiwkhkmma")))))))
     (inputs
      `(("zlib" ,zlib)
        ("tcsh" ,tcsh)
        ("perl" ,perl)
        ("libpng" ,libpng)
-       ("mariadb" ,mariadb "lib")
        ("mariadb-dev" ,mariadb "dev")
-       ("openssl" ,openssl-1.0)))
+       ("openssl" ,openssl)))
     (home-page "https://genome.cse.ucsc.edu/index.html")
     (synopsis "Assorted bioinformatics utilities")
     (description "This package provides the kentUtils, a selection of
@@ -12942,8 +12369,8 @@ once.  This package provides tools to perform Drop-seq analyses.")
        ("r-rtracklayer" ,r-rtracklayer)
        ("r-rjson" ,r-rjson)
        ("salmon" ,salmon)
-       ("ghc-pandoc" ,ghc-pandoc)
-       ("ghc-pandoc-citeproc" ,ghc-pandoc-citeproc)
+       ("pandoc" ,pandoc)
+       ("pandoc-citeproc" ,pandoc-citeproc)
        ("python-wrapper" ,python-wrapper)
        ("python-pyyaml" ,python-pyyaml)))
     (home-page "https://bioinformatics.mdc-berlin.de/pigx/")
@@ -12959,7 +12386,7 @@ expression report comparing samples in an easily configurable manner.")
 (define-public pigx-chipseq
   (package
     (name "pigx-chipseq")
-    (version "0.0.42")
+    (version "0.0.51")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/BIMSBbioinfo/pigx_chipseq/"
@@ -12967,7 +12394,7 @@ expression report comparing samples in an easily configurable manner.")
                                   "/pigx_chipseq-" version ".tar.gz"))
               (sha256
                (base32
-                "0xbvgqpk32a8iczhvac56cacr46rdkqb0allhhpvmj940idf72bi"))))
+                "0bb6hzpl0qq0jd57pgd1m5ns547rfipr6071a4m12vxlm4nlpi5q"))))
     (build-system gnu-build-system)
     ;; parts of the tests rely on access to the network
     (arguments '(#:tests? #f))
@@ -12979,23 +12406,30 @@ expression report comparing samples in an easily configurable manner.")
        ("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)
-       ("r-jsonlite" ,r-jsonlite)
-       ("r-heatmaply" ,r-heatmaply)
-       ("r-htmlwidgets" ,r-htmlwidgets)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-plotly" ,r-plotly)
-       ("r-rmarkdown" ,r-rmarkdown)
        ("python-wrapper" ,python-wrapper)
        ("python-pyyaml" ,python-pyyaml)
        ("python-magic" ,python-magic)
@@ -13004,8 +12438,8 @@ expression report comparing samples in an easily configurable manner.")
        ("macs" ,macs)
        ("multiqc" ,multiqc)
        ("perl" ,perl)
-       ("ghc-pandoc" ,ghc-pandoc)
-       ("ghc-pandoc-citeproc" ,ghc-pandoc-citeproc)
+       ("pandoc" ,pandoc)
+       ("pandoc-citeproc" ,pandoc-citeproc)
        ("fastqc" ,fastqc)
        ("bowtie" ,bowtie)
        ("idr" ,idr)
@@ -13029,7 +12463,7 @@ in an easily configurable manner.")
 (define-public pigx-bsseq
   (package
     (name "pigx-bsseq")
-    (version "0.0.10")
+    (version "0.1.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/BIMSBbioinfo/pigx_bsseq/"
@@ -13037,10 +12471,13 @@ in an easily configurable manner.")
                                   "/pigx_bsseq-" version ".tar.gz"))
               (sha256
                (base32
-                "0l97wvkq4diq8lcarraj33bby1zzf0w804jwi8mlc5qddp8idwhy"))))
+                "0mpzlay2d5cjpmrcp7knff6rg1c2mqszd638n7lw0mc0cycbp9f8"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:phases
+     `(;; TODO: tests currently require 12+GB of RAM.  See
+       ;; https://github.com/BIMSBbioinfo/pigx_bsseq/issues/164
+       #:tests? #f
+       #:phases
        (modify-phases %standard-phases
          (add-before 'check 'set-timezone
            ;; The readr package is picky about timezones.
@@ -13060,22 +12497,27 @@ in an easily configurable manner.")
        ("r-annotationhub" ,r-annotationhub)
        ("r-dt" ,r-dt)
        ("r-genomation" ,r-genomation)
+       ("r-ggrepel" ,r-ggrepel)
        ("r-methylkit" ,r-methylkit)
        ("r-rtracklayer" ,r-rtracklayer)
        ("r-rmarkdown" ,r-rmarkdown)
        ("r-bookdown" ,r-bookdown)
        ("r-ggplot2" ,r-ggplot2)
        ("r-ggbio" ,r-ggbio)
-       ("ghc-pandoc" ,ghc-pandoc)
-       ("ghc-pandoc-citeproc" ,ghc-pandoc-citeproc)
+       ("pandoc" ,pandoc)
+       ("pandoc-citeproc" ,pandoc-citeproc)
        ("python-wrapper" ,python-wrapper)
        ("python-pyyaml" ,python-pyyaml)
        ("snakemake" ,snakemake)
        ("bismark" ,bismark)
-       ("fastqc" ,fastqc)
        ("bowtie" ,bowtie)
+       ("bwa-meth" ,bwa-meth)
+       ("fastqc" ,fastqc)
+       ("methyldackel" ,methyldackel)
+       ("multiqc" ,multiqc)
        ("trim-galore" ,trim-galore)
        ("cutadapt" ,cutadapt)
+       ("samblaster" ,samblaster)
        ("samtools" ,samtools)))
     (home-page "https://bioinformatics.mdc-berlin.de/pigx/")
     (synopsis "Bisulfite sequencing pipeline from fastq to methylation reports")
@@ -13088,7 +12530,7 @@ methylation and segmentation.")
 (define-public pigx-scrnaseq
   (package
     (name "pigx-scrnaseq")
-    (version "1.1.4")
+    (version "1.1.7")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/BIMSBbioinfo/pigx_scrnaseq/"
@@ -13096,7 +12538,7 @@ methylation and segmentation.")
                                   "/pigx_scrnaseq-" version ".tar.gz"))
               (sha256
                (base32
-                "1d5l3gywypi67yz9advxq5xkgfhr4733gj0bwnngm723i3hdf5w9"))))
+                "1h5mcxzwj3cidlkvy9ly5wmi48vwfsjf8dxjfirknqxr9a92hwlx"))))
     (build-system gnu-build-system)
     (inputs
      `(("coreutils" ,coreutils)
@@ -13111,8 +12553,8 @@ methylation and segmentation.")
        ("python-magic" ,python-magic)
        ("python-numpy" ,python-numpy)
        ("python-loompy" ,python-loompy)
-       ("ghc-pandoc" ,ghc-pandoc)
-       ("ghc-pandoc-citeproc" ,ghc-pandoc-citeproc)
+       ("pandoc" ,pandoc)
+       ("pandoc-citeproc" ,pandoc-citeproc)
        ("samtools" ,samtools)
        ("snakemake" ,snakemake)
        ("star" ,star)
@@ -13255,37 +12697,6 @@ analyses in addition to large-scale sequence-level searches.")
       (supported-systems '("x86_64-linux"))
       (license license:bsd-3))))
 
-(define-public r-diversitree
-  (package
-    (name "r-diversitree")
-    (version "0.9-13")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (cran-uri "diversitree" version))
-        (sha256
-         (base32
-          "00vi4klywi35hd170ksjv3xja3hqqbkcidcnrrlpgv4179k0azix"))))
-    (build-system r-build-system)
-    (native-inputs
-     `(("gfortran" ,gfortran)))
-    (inputs `(("fftw" ,fftw) ("gsl" ,gsl)))
-    (propagated-inputs
-     `(("r-ape" ,r-ape)
-       ("r-desolve" ,r-desolve)
-       ("r-rcpp" ,r-rcpp)
-       ("r-subplex" ,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\"
-methods, mostly focusing on analysing diversification and character evolution.
-Contains implementations of \"BiSSE\" (Binary State Speciation and Extinction)
-and its unresolved tree extensions, \"MuSSE\" (Multiple State Speciation and
-Extinction), \"QuaSSE\", \"GeoSSE\", and \"BiSSE-ness\" Other included methods
-include Markov models of discrete and continuous trait evolution and constant
-rate speciation and extinction.")
-    (license license:gpl2+)))
-
 (define-public sjcount
   ;; There is no tag for version 3.2, nor is there a release archive.
   (let ((commit "292d3917cadb3f6834c81e509c30e61cd7ead6e5")
@@ -13349,21 +12760,26 @@ version does count multisplits.")
                            "minimap2-" version ".tar.bz2"))
        (sha256
         (base32
-         "0hi7i9pzxhvjj44khzzzj1lrn5gb5837arr4wgln7k1k5n4ci2mn"))))
+         "0hi7i9pzxhvjj44khzzzj1lrn5gb5837arr4wgln7k1k5n4ci2mn"))
+       (patches (search-patches "minimap2-aarch64-support.patch"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                      ; there are none
        #:make-flags
-       (list "CC=gcc"
+       (list (string-append "CC=" ,(cc-for-target))
              (let ((system ,(or (%current-target-system)
                                 (%current-system))))
                (cond
-                ((string-prefix? "x86_64" system)
-                 "all")
-                ((or (string-prefix? "armhf" system)
-                     (string-prefix? "aarch64" system))
-                 "arm_neon=1")
-                (else "sse2only=1"))))
+                 ((string-prefix? "x86_64" system)
+                  "all")
+                 ((or (string-prefix? "i586" system)
+                      (string-prefix? "i686" system))
+                  "sse2only=1")
+                 ((string-prefix? "armhf" system)
+                  "arm_neon=1")
+                 ((string-prefix? "aarch64" system)
+                  "aarch64=1")
+                 (else ""))))
        #:phases
        (modify-phases %standard-phases
          (delete 'configure)
@@ -14285,33 +13701,6 @@ downstream analysis.  Poretools operates directly on the native FAST5, a variant
 of the Hierarchical Data Format (HDF5) standard.")
       (license license:expat))))
 
-(define-public r-absfiltergsea
-  (package
-    (name "r-absfiltergsea")
-    (version "1.5.1")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (cran-uri "AbsFilterGSEA" version))
-       (sha256
-        (base32 "15srxkxsvn38kd5frdrwfdf0ad8gskrd0h01wmdf9hglq8fjrp7w"))))
-    (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)))
-    (home-page "https://cran.r-project.org/web/packages/AbsFilterGSEA/")
-    (synopsis "Improved false positive control of gene-permuting with absolute filtering")
-    (description
-     "This package provides a function that performs gene-permuting of a gene-set
-enrichment analysis (GSEA) calculation with or without the absolute filtering.
-  Without filtering, users can perform (original) two-tailed or one-tailed
-absolute GSEA.")
-    (license license:gpl2)))
-
 (define-public jamm
   (package
     (name "jamm")
@@ -15379,12 +14768,34 @@ mutations from scRNA-Seq data.")
                       (string-append "HTS_LIB=" htslib-ref "/lib/libhts.a")
                       (string-append "INCLUDES= -I" htslib-ref "/include/htslib")
                       "HTS_HEADERS="    ; No need to check for headers here.
-                      (string-append "LIBPATH=-L. -L" htslib-ref "/include")))))
+                      (string-append "LIBPATH=-L. -L" htslib-ref "/include"))
+              (invoke "g++" "-shared" "-o" "libtabixpp.so" "tabix.o" "-lhts")
+              (invoke "ar" "rcs" "libtabixpp.a" "tabix.o"))))
         (replace 'install
           (lambda* (#:key outputs #:allow-other-keys)
-            (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
-              (install-file "tabix++" bin))
-            #t)))))
+            (let* ((out (assoc-ref outputs "out"))
+                   (lib (string-append out "/lib"))
+                   (bin (string-append out "/bin")))
+              (install-file "tabix++" bin)
+              (install-file "libtabixpp.so" lib)
+              (install-file "libtabixpp.a" lib)
+              (install-file "tabix.hpp" (string-append out "/include"))
+              (mkdir-p (string-append lib "/pkgconfig"))
+              (with-output-to-file (string-append lib "/pkgconfig/tabixpp.pc")
+                (lambda _
+                  (format #t "prefix=~a~@
+                          exec_prefix=${prefix}~@
+                          libdir=${exec_prefix}/lib~@
+                          includedir=${prefix}/include~@
+                          ~@
+                          ~@
+                          Name: libtabixpp~@
+                          Version: ~a~@
+                          Description: C++ wrapper around tabix project~@
+                          Libs: -L${libdir} -ltabixpp~@
+                          Cflags: -I${includedir}~%"
+                          out ,version)))
+              #t))))))
    (home-page "https://github.com/ekg/tabixpp")
    (synopsis "C++ wrapper around tabix project")
    (description "This is a C++ wrapper around the Tabix project which abstracts
@@ -15411,13 +14822,45 @@ some of the details of opening and jumping in tabix-indexed files.")
          #:phases
          (modify-phases %standard-phases
            (delete 'configure) ; There is no configure phase.
+           (add-after 'unpack 'patch-source
+             (lambda _
+               (substitute* "Makefile"
+                 (("-c ") "-c -fPIC "))
+               #t))
+           (add-after 'build 'build-dynamic
+             (lambda _
+               (invoke "g++"
+                       "-shared" "-o" "libsmithwaterman.so"
+                       "smithwaterman.o" "SmithWatermanGotoh.o"
+                       "disorder.o" "BandedSmithWaterman.o"
+                       "LeftAlign.o" "Repeats.o" "IndelAllele.o")))
            (replace 'install
              (lambda* (#:key outputs #:allow-other-keys)
                (let* ((out (assoc-ref outputs "out"))
                       (bin (string-append out "/bin"))
                       (lib (string-append out "/lib")))
                  (install-file "smithwaterman" bin)
-                 (install-file "libsw.a" lib))
+                 (for-each
+                   (lambda (file)
+                     (install-file file (string-append out "/include/smithwaterman")))
+                   (find-files "." "\\.h$"))
+                 (install-file "libsmithwaterman.so" lib)
+                 (install-file "libsw.a" lib)
+                 (mkdir-p (string-append lib "/pkgconfig"))
+                 (with-output-to-file (string-append lib "/pkgconfig/smithwaterman.pc")
+                   (lambda _
+                     (format #t "prefix=~a~@
+                             exec_prefix=${prefix}~@
+                             libdir=${exec_prefix}/lib~@
+                             includedir=${prefix}/include/smithwaterman~@
+                             ~@
+                             ~@
+                             Name: smithwaterman~@
+                             Version: ~a~@
+                             Description: smith-waterman-gotoh alignment algorithm~@
+                             Libs: -L${libdir} -lsmithwaterman~@
+                             Cflags: -I${includedir}~%"
+                             out ,version))))
                #t)))))
       (home-page "https://github.com/ekg/smithwaterman")
       (synopsis "Implementation of the Smith-Waterman algorithm")
@@ -15445,10 +14888,14 @@ some of the details of opening and jumping in tabix-indexed files.")
          (delete 'configure) ; There is no configure phase.
          (replace 'install
            (lambda* (#:key outputs #:allow-other-keys)
-             (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
+             (let* ((out (assoc-ref outputs "out"))
+                    (bin (string-append out "/bin"))
+                    (include (string-append out "/include")))
                ;; TODO: There are Python modules for these programs too.
                (install-file "multichoose" bin)
-               (install-file "multipermute" bin))
+               (install-file "multipermute" bin)
+               (install-file "multichoose.h" include)
+               (install-file "multipermute.h" include))
              #t)))))
     (home-page "https://github.com/ekg/multichoose")
     (synopsis "Efficient loopless multiset combination generation algorithm")
@@ -15507,10 +14954,43 @@ neural networks.")
        #:phases
        (modify-phases %standard-phases
          (delete 'configure) ; There is no configure phase.
+           (add-after 'unpack 'patch-source
+             (lambda _
+               (substitute* "Makefile"
+                 (("-c ") "-c -fPIC "))
+               #t))
+         (add-after 'build 'build-dynamic
+           (lambda _
+             (invoke "g++"
+                     "-shared" "-o" "libfastahack.so"
+                     "Fasta.o" "FastaHack.o" "split.o" "disorder.o")))
          (replace 'install
            (lambda* (#:key outputs #:allow-other-keys)
-             (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
-               (install-file "fastahack" bin))
+             (let* ((out (assoc-ref outputs "out"))
+                    (lib (string-append out "/lib"))
+                    (bin (string-append out "/bin")))
+               (mkdir-p (string-append out "/include/fastahack"))
+               (for-each
+                 (lambda (file)
+                   (install-file file (string-append out "/include/fastahack")))
+                 (find-files "." "\\.h$"))
+               (install-file "fastahack" bin)
+               (install-file "libfastahack.so" lib)
+               (mkdir-p (string-append lib "/pkgconfig"))
+               (with-output-to-file (string-append lib "/pkgconfig/fastahack.pc")
+                 (lambda _
+                   (format #t "prefix=~a~@
+                           exec_prefix=${prefix}~@
+                           libdir=${exec_prefix}/lib~@
+                           includedir=${prefix}/include/fastahack~@
+                           ~@
+                           ~@
+                           Name: fastahack~@
+                           Version: ~a~@
+                           Description: Indexing and sequence extraction from FASTA files~@
+                           Libs: -L${libdir} -lfastahack~@
+                           Cflags: -I${includedir}~%"
+                           out ,version))))
              #t)))))
     (home-page "https://github.com/ekg/fastahack")
     (synopsis "Indexing and sequence extraction from FASTA files")
@@ -15524,53 +15004,70 @@ library automatically handles index file generation and use.")
 (define-public vcflib
   (package
     (name "vcflib")
-    (version "1.0.1")
+    (version "1.0.2")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/vcflib/vcflib/releases/"
-                           "download/v" version
-                           "/vcflib-" version "-src.tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+              (url "https://github.com/vcflib/vcflib")
+              (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
-        (base32 "14zzrg8hg8cq9cvq2wdvp21j7nmxxkjrbagw2apd2yqv2kyx42lm"))
+        (base32 "1k1z3876kbzifj1sqfzsf3lgb4rw779hvkg6ryxbyq5bc2paj9kh"))
        (modules '((guix build utils)))
        (snippet
-        `(begin
+        '(begin
+           (substitute* "CMakeLists.txt"
+             ((".*fastahack.*") "")
+             ((".*smithwaterman.*") "")
+             (("(pkg_check_modules\\(TABIXPP)" text)
+              (string-append
+                "pkg_check_modules(FASTAHACK REQUIRED fastahack)\n"
+                "pkg_check_modules(SMITHWATERMAN REQUIRED smithwaterman)\n"
+                text))
+             (("\\$\\{TABIXPP_LIBRARIES\\}" text)
+              (string-append "${FASTAHACK_LIBRARIES} "
+                             "${SMITHWATERMAN_LIBRARIES} "
+                             text)))
+           (substitute* (find-files "." "\\.(h|c)(pp)?$")
+             (("\"SmithWatermanGotoh.h\"") "<smithwaterman/SmithWatermanGotoh.h>")
+             (("\"convert.h\"") "<smithwaterman/convert.h>")
+             (("\"disorder.h\"") "<smithwaterman/disorder.h>")
+             (("Fasta.h") "fastahack/Fasta.h"))
            (for-each delete-file-recursively
                      '("fastahack" "filevercmp" "fsom" "googletest" "intervaltree"
-                       "libVCFH" "multichoose" "smithwaterman" "tabixpp"))
+                       "libVCFH" "multichoose" "smithwaterman"))
            #t))))
-    (build-system gnu-build-system)
+    (build-system cmake-build-system)
     (inputs
-     `(("htslib" ,htslib)
+     `(("bzip2" ,bzip2)
+       ("htslib" ,htslib)
+       ("fastahack" ,fastahack)
        ("perl" ,perl)
        ("python" ,python)
+       ("smithwaterman" ,smithwaterman)
+       ("tabixpp" ,tabixpp)
+       ("xz" ,xz)
        ("zlib" ,zlib)))
     (native-inputs
-     `(;; Submodules.
+     `(("pkg-config" ,pkg-config)
+       ;; Submodules.
        ;; This package builds against the .o files so we need to extract the source.
-       ("fastahack-src" ,(package-source fastahack))
        ("filevercmp-src" ,(package-source filevercmp))
        ("fsom-src" ,(package-source fsom))
        ("intervaltree-src" ,(package-source intervaltree))
-       ("multichoose-src" ,(package-source multichoose))
-       ("smithwaterman-src" ,(package-source smithwaterman))
-       ("tabixpp-src" ,(package-source tabixpp))))
+       ("multichoose-src" ,(package-source multichoose))))
     (arguments
      `(#:tests? #f ; no tests
-       #:make-flags (list (string-append "HTS_LIB="
-                                         (assoc-ref %build-inputs "htslib")
-                                         "/lib/libhts.a")
-                          (string-append "HTS_INCLUDES= -I"
-                                         (assoc-ref %build-inputs "htslib")
-                                         "/include/htslib")
-                          (string-append "HTS_LDFLAGS= -L"
-                                         (assoc-ref %build-inputs "htslib")
-                                         "/include/htslib" " -lhts"))
        #:phases
        (modify-phases %standard-phases
-         (delete 'configure)
-         (delete 'check)
+         (add-after 'unpack 'build-shared-library
+           (lambda _
+             (substitute* "CMakeLists.txt"
+               (("vcflib STATIC") "vcflib SHARED"))
+             (substitute* "test/Makefile"
+               (("libvcflib.a") "libvcflib.so"))
+             #t))
          (add-after 'unpack 'unpack-submodule-sources
            (lambda* (#:key inputs #:allow-other-keys)
              (let ((unpack (lambda (source target)
@@ -15582,35 +15079,32 @@ library automatically handles index file generation and use.")
                                            (assoc-ref inputs source)
                                            "--strip-components=1"))))))
                (and
-                (unpack "fastahack-src" "fastahack")
                 (unpack "filevercmp-src" "filevercmp")
                 (unpack "fsom-src" "fsom")
                 (unpack "intervaltree-src" "intervaltree")
-                (unpack "multichoose-src" "multichoose")
-                (unpack "smithwaterman-src" "smithwaterman")
-                (unpack "tabixpp-src" "tabixpp")))))
-         (replace 'build
-           (lambda* (#:key inputs make-flags #:allow-other-keys)
-             (let ((htslib (assoc-ref inputs "htslib")))
-               (with-directory-excursion "tabixpp"
-                 (substitute* "Makefile"
-                   (("-Ihtslib") (string-append "-I" htslib "/include/htslib"))
-                   (("-Lhtslib") (string-append "-L" htslib "/lib/htslib"))
-                   (("htslib/htslib") (string-append htslib "/include/htslib")))
-                 (invoke "make"
-                         (string-append "HTS_LIB=" htslib "/lib/libhts.a")))
-               (apply invoke "make" "CC=gcc" "CFLAGS=-Itabixpp" make-flags))))
-         (replace 'install
+                (unpack "multichoose-src" "multichoose"))
+               #t)))
+         ;; This pkg-config file is provided by other distributions.
+         (add-after 'install 'install-pkg-config-file
            (lambda* (#:key outputs #:allow-other-keys)
-             (let ((bin (string-append (assoc-ref outputs "out") "/bin"))
-                   (lib (string-append (assoc-ref outputs "out") "/lib")))
-               (for-each (lambda (file)
-                           (install-file file bin))
-                         (find-files "bin" ".*"))
-               ;; The header files in src/ do not interface libvcflib,
-               ;; therefore they are left out.
-               (install-file "libvcflib.a" lib))
-             #t)))))
+             (let* ((out (assoc-ref outputs "out"))
+                    (pkgconfig (string-append out "/lib/pkgconfig")))
+               (mkdir-p pkgconfig)
+               (with-output-to-file (string-append pkgconfig "/libvcflib.pc")
+                 (lambda _
+                   (format #t "prefix=~a~@
+                           exec_prefix=${prefix}~@
+                           libdir=${exec_prefix}/lib~@
+                           includedir=${prefix}/include~@
+                           ~@
+                           Name: libvcflib~@
+                           Version: ~a~@
+                           Requires: smithwaterman, fastahack~@
+                           Description: C++ library for parsing and manipulating VCF files~@
+                           Libs: -L${libdir} -llibvcflib~@
+                           Cflags: -I${includedir}~%"
+                           out ,version)))
+                 #t))))))
     (home-page "https://github.com/vcflib/vcflib/")
     (synopsis "Library for parsing and manipulating VCF files")
     (description "Vcflib provides methods to manipulate and interpret
@@ -15621,125 +15115,94 @@ manipulations on VCF files.")
     (license license:expat)))
 
 (define-public freebayes
-  (let ((commit "3ce827d8ebf89bb3bdc097ee0fe7f46f9f30d5fb")
-        (revision "1")
-        (version "1.0.2"))
-    (package
-      (name "freebayes")
-      (version (git-version version revision commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://github.com/ekg/freebayes")
-                      (commit commit)))
-                (file-name (git-file-name name version))
-                (sha256
-                 (base32 "1sbzwmcbn78ybymjnhwk7qc5r912azy5vqz2y7y81616yc3ba2a2"))))
-      (build-system gnu-build-system)
-      (inputs
-       `(("bamtools" ,bamtools)
-         ("htslib" ,htslib)
-         ("zlib" ,zlib)))
-      (native-inputs
-       `(("bc" ,bc)                     ; Needed for running tests.
-         ("samtools" ,samtools)         ; Needed for running tests.
-         ("parallel" ,parallel)         ; Needed for running tests.
-         ("perl" ,perl)                 ; Needed for running tests.
-         ("procps" ,procps)             ; Needed for running tests.
-         ("python" ,python-2)           ; Needed for running tests.
-         ("vcflib-src" ,(package-source vcflib))
-         ;; These are submodules for the vcflib version used in freebayes.
-         ;; This package builds against the .o files so we need to extract the source.
-         ("tabixpp-src" ,(package-source tabixpp))
-         ("smithwaterman-src" ,(package-source smithwaterman))
-         ("multichoose-src" ,(package-source multichoose))
-         ("fsom-src" ,(package-source fsom))
-         ("filevercmp-src" ,(package-source filevercmp))
-         ("fastahack-src" ,(package-source fastahack))
-         ("intervaltree-src" ,(package-source intervaltree))
-         ;; These submodules are needed to run the tests.
-         ("bash-tap-src" ,(package-source bash-tap))
-         ("test-simple-bash-src"
-          ,(origin
-             (method git-fetch)
-             (uri (git-reference
-                   (url "https://github.com/ingydotnet/test-simple-bash/")
-                   (commit "124673ff204b01c8e96b7fc9f9b32ee35d898acc")))
-             (file-name "test-simple-bash-src-checkout")
-             (sha256
-              (base32 "043plp6z0x9yf7mdpky1fw7zcpwn1p47px95w9mh16603zqqqpga"))))))
-      (arguments
-       `(#:make-flags
-         (list "CC=gcc"
-               (string-append "BAMTOOLS_ROOT="
-                              (assoc-ref %build-inputs "bamtools")))
-         #:test-target "test"
-         #:phases
-         (modify-phases %standard-phases
-           (delete 'configure)
-           (add-after 'unpack 'fix-tests
-             (lambda _
-               (substitute* "test/t/01_call_variants.t"
-                 (("grep -P \"\\(\\\\t500\\$\\|\\\\t11000\\$\\|\\\\t1000\\$\\)\"")
-                  "grep -E '	(500|11000|1000)$'"))
-               #t))
-           (add-after 'unpack 'unpack-submodule-sources
-             (lambda* (#:key inputs #:allow-other-keys)
-               (let ((unpack (lambda (source target)
-                               (with-directory-excursion target
-                                 (if (file-is-directory? (assoc-ref inputs source))
-                                     (copy-recursively (assoc-ref inputs source) ".")
-                                     (invoke "tar" "xvf"
-                                             (assoc-ref inputs source)
-                                             "--strip-components=1"))))))
-                 (and
-                  (unpack "vcflib-src" "vcflib")
-                  (unpack "fastahack-src" "vcflib/fastahack")
-                  (unpack "filevercmp-src" "vcflib/filevercmp")
-                  (unpack "fsom-src" "vcflib/fsom")
-                  (unpack "intervaltree-src" "vcflib/intervaltree")
-                  (unpack "multichoose-src" "vcflib/multichoose")
-                  (unpack "smithwaterman-src" "vcflib/smithwaterman")
-                  (unpack "tabixpp-src" "vcflib/tabixpp")
-                  (unpack "test-simple-bash-src" "test/test-simple-bash")
-                  (unpack "bash-tap-src" "test/bash-tap")))))
-           (add-after 'unpack-submodule-sources 'fix-makefiles
-             (lambda _
-               ;; We don't have the .git folder to get the version tag from.
-               (substitute* "vcflib/Makefile"
-                 (("^GIT_VERSION.*")
-                  (string-append "GIT_VERSION = v" ,version)))
-               (substitute* "src/Makefile"
-                 (("-I\\$\\(BAMTOOLS_ROOT\\)/src")
-                  "-I$(BAMTOOLS_ROOT)/include/bamtools"))
-               #t))
-           (add-before 'build 'build-tabixpp-and-vcflib
-             (lambda* (#:key inputs make-flags #:allow-other-keys)
-               (with-directory-excursion "vcflib"
-                 (with-directory-excursion "tabixpp"
-                   (apply invoke "make"
-                          (string-append "HTS_LIB="
-                                         (assoc-ref inputs "htslib")
-                                         "/lib/libhts.a")
-                          make-flags))
-                 (apply invoke "make"
-                        (string-append "CFLAGS=-Itabixpp")
-                        "all"
-                        make-flags))))
-           (replace 'install
-             (lambda* (#:key outputs #:allow-other-keys)
-               (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
-                 (install-file "bin/freebayes" bin)
-                 (install-file "bin/bamleftalign" bin))
-               #t)))))
-      (home-page "https://github.com/ekg/freebayes")
-      (synopsis "Haplotype-based variant detector")
-      (description "FreeBayes is a Bayesian genetic variant detector designed to
+  (package
+    (name "freebayes")
+    (version "1.3.3")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/freebayes/freebayes")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32 "0myz3giad7jqp6ricdfnig9ymlcps2h67mlivadvx97ngagm85z8"))
+              (patches (search-patches "freebayes-devendor-deps.patch"))
+              (modules '((guix build utils)))
+              (snippet
+               '(begin
+                  (delete-file-recursively "contrib/htslib")
+                  #t))))
+    (build-system meson-build-system)
+    (inputs
+     `(("fastahack" ,fastahack)
+       ("htslib" ,htslib)
+       ("smithwaterman" ,smithwaterman)
+       ("tabixpp" ,tabixpp)
+       ("vcflib" ,vcflib)
+       ("zlib" ,zlib)))
+    (native-inputs
+     `(("bash-tap" ,bash-tap)
+       ("bc" ,bc)
+       ("grep" ,grep)   ; Built with perl support.
+       ("parallel" ,parallel)
+       ("perl" ,perl)
+       ("pkg-config" ,pkg-config)
+       ("samtools" ,samtools)
+       ("simde" ,simde)
+       ;; This submodule is needed to run the tests.
+       ("test-simple-bash-src"
+        ,(origin
+           (method git-fetch)
+           (uri (git-reference
+                 (url "https://github.com/ingydotnet/test-simple-bash/")
+                 (commit "124673ff204b01c8e96b7fc9f9b32ee35d898acc")))
+           (file-name "test-simple-bash-src-checkout")
+           (sha256
+            (base32 "043plp6z0x9yf7mdpky1fw7zcpwn1p47px95w9mh16603zqqqpga"))))))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-source
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((bash-tap (assoc-ref inputs "bash-tap")))
+               (substitute* (find-files "test/t")
+                 (("BASH_TAP_ROOT=bash-tap")
+                  (string-append "BASH_TAP_ROOT=" bash-tap "/bin"))
+                 (("bash-tap/bash-tap-bootstrap")
+                  (string-append bash-tap "/bin/bash-tap-bootstrap"))
+                 (("source.*bash-tap-bootstrap")
+                  (string-append "source " bash-tap "/bin/bash-tap-bootstrap")))
+               (substitute* "meson.build"
+                  ;; Some inputs aren't actually needed.
+                 ((".*bamtools/src.*") "")
+                 ((".*multichoose.*") ""))
+               (substitute* '("src/BedReader.cpp"
+                              "src/BedReader.h")
+                 (("../intervaltree/IntervalTree.h") "IntervalTree.h"))
+               #t)))
+         (add-after 'unpack 'unpack-submodule-sources
+           (lambda* (#:key inputs #:allow-other-keys)
+             (mkdir-p "test/test-simple-bash")
+             (copy-recursively (assoc-ref inputs "test-simple-bash-src")
+                               "test/test-simple-bash")
+             #t))
+        ;; The slow tests take longer than the specified timeout.
+        ,@(if (any (cute string=? <> (%current-system))
+                   '("armhf-linux" "aarch64-linux"))
+            '((replace 'check
+              (lambda* (#:key tests? #:allow-other-keys)
+                (when tests?
+                  (invoke "meson" "test" "--timeout-multiplier" "5"))
+                #t)))
+            '()))))
+    (home-page "https://github.com/freebayes/freebayes")
+    (synopsis "Haplotype-based variant detector")
+    (description "FreeBayes is a Bayesian genetic variant detector designed to
 find small polymorphisms, specifically SNPs (single-nucleotide polymorphisms),
 indels (insertions and deletions), MNPs (multi-nucleotide polymorphisms), and
 complex events (composite insertion and substitution events) smaller than the
 length of a short-read sequencing alignment.")
-      (license license:expat))))
+    (license license:expat)))
 
 (define-public samblaster
   (package
@@ -15822,7 +15285,7 @@ patterns.")
 (define-public methyldackel
   (package
     (name "methyldackel")
-    (version "0.4.0")
+    (version "0.5.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -15831,7 +15294,7 @@ patterns.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "10gh8k0ca92kywnrw5pkacq3g6r8s976s12k8jhp8g3g49q9a97g"))))
+                "1sfhf2ap75qxpnmy1ifgmxqs18rq8mah9mcgkby73vc6h0sw99ws"))))
     (build-system gnu-build-system)
     (arguments
      `(#:test-target "test"
@@ -15844,11 +15307,14 @@ patterns.")
          (replace 'configure
            (lambda* (#:key outputs #:allow-other-keys)
              (substitute* "Makefile"
+               (("-lhts ") "-lhts -lBigWig ")
                (("install MethylDackel \\$\\(prefix\\)" match)
                 (string-append "install -d $(prefix); " match)))
              #t)))))
     (inputs
-     `(("htslib" ,htslib)
+     `(("curl" ,curl) ; XXX: needed by libbigwig
+       ("htslib" ,htslib-1.9)
+       ("libbigwig" ,libbigwig)
        ("zlib" ,zlib)))
     ;; Needed for tests
     (native-inputs
@@ -16011,7 +15477,7 @@ than is possible with plain-text methods alone.")
     (propagated-inputs
      `(("libxml2" ,libxml2)))
     (native-inputs
-     `(("check" ,check)
+     `(("check" ,check-0.14)
        ("swig" ,swig)))
     (home-page "http://sbml.org/Software/libSBML")
     (synopsis "Process SBML files and data streams")
diff --git a/gnu/packages/bittorrent.scm b/gnu/packages/bittorrent.scm
index f54e568b55..08e61d7ba2 100644
--- a/gnu/packages/bittorrent.scm
+++ b/gnu/packages/bittorrent.scm
@@ -2,7 +2,7 @@
 ;;; Copyright © 2014 Taylan Ulrich Bayirli/Kammer <taylanbayirli@gmail.com>
 ;;; Copyright © 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2016, 2017, 2018, 2019, 2020 Leo Famulari <leo@famulari.name>
-;;; Copyright © 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016 Tomáš Čech <sleep_walker@gnu.org>
 ;;; Copyright © 2016, 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2017 Jelle Licht <jlicht@fsfe.org>
@@ -34,6 +34,7 @@
   #:use-module (guix build-system python)
   #:use-module (guix build-system glib-or-gtk)
   #:use-module ((guix licenses) #:prefix l:)
+  #:use-module (guix utils)
   #:use-module (gnu packages)
   #:use-module (gnu packages adns)
   #:use-module (gnu packages boost)
@@ -55,6 +56,7 @@
   #: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)
   #:use-module (gnu packages sqlite)
@@ -73,12 +75,17 @@
                                   version ".tar.xz"))
               (sha256
                (base32
-                "1wjmn96zrvmk8j1yz2ysmqd7a2x6ilvnwwapcvfzgxs2wwpnai4i"))))
+                "1wjmn96zrvmk8j1yz2ysmqd7a2x6ilvnwwapcvfzgxs2wwpnai4i"))
+              (patches (search-patches "transmission-honor-localedir.patch"))))
     (build-system glib-or-gtk-build-system)
     (outputs '("out"                      ; library and command-line interface
                "gui"))                    ; graphical user interface
     (arguments
-     '(#:glib-or-gtk-wrap-excluded-outputs '("out")
+     '(#:configure-flags
+       (list (string-append "--localedir="
+                            (assoc-ref %outputs "gui")
+                            "/share/locale"))
+       #:glib-or-gtk-wrap-excluded-outputs '("out")
        #:phases
        (modify-phases %standard-phases
          (add-after 'install 'move-gui
@@ -91,14 +98,17 @@
                (rename-file (string-append out "/bin/transmission-gtk")
                             (string-append gui "/bin/transmission-gtk"))
 
-               ;; Move the '.desktop' and icon files as well.
-               (mkdir (string-append gui "/share"))
                (for-each
                 (lambda (dir)
                   (rename-file (string-append out "/share/" dir)
                                (string-append gui "/share/" dir)))
-                '("applications" "icons" "pixmaps")))
-             #t)))))
+                '("appdata" "applications" "icons" "pixmaps"))
+
+               (mkdir-p (string-append gui "/share/man/man1"))
+               (rename-file
+                (string-append out "/share/man/man1/transmission-gtk.1")
+                (string-append gui "/share/man/man1/transmission-gtk.1"))
+             #t))))))
     (inputs
      `(("libevent" ,libevent)
        ("curl" ,curl)
@@ -306,7 +316,7 @@ Aria2 can be manipulated via built-in JSON-RPC and XML-RPC interfaces.")
 (define-public uget
   (package
     (name "uget")
-    (version "2.2.0")
+    (version "2.2.1")
     (source
      (origin
        (method url-fetch)
@@ -314,7 +324,7 @@ Aria2 can be manipulated via built-in JSON-RPC and XML-RPC interfaces.")
                            "uget%20%28stable%29/" version "/uget-"
                            version ".tar.gz"))
        (sha256
-        (base32 "0rg2mr2cndxvnjib8zm5dp7y2hgbvnqkz2j2jmg0xlzfh9d34b2m"))))
+        (base32 "0dlrjhnm1pg2vwmp7nl2xv1aia5hyirb3021rl46x859k63zap24"))))
     (build-system gnu-build-system)
     (inputs
      `(("curl" ,curl)
@@ -353,7 +363,7 @@ downloads, download scheduling, download rate limiting.")
     (arguments
      `(#:phases (modify-phases %standard-phases
                   (delete 'configure))          ; no configure script
-       #:make-flags (list "CC=gcc"
+       #:make-flags (list (string-append "CC=" ,(cc-for-target))
                           (string-append "PREFIX=" (assoc-ref %outputs "out"))
                           "NO_HASH_CHECK=1"
                           "USE_LARGE_FILES=1"
@@ -465,29 +475,65 @@ features.")
 (define-public deluge
   (package
     (name "deluge")
-    (version "1.3.15")
+    (version "2.0.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://download.deluge-torrent.org/source/deluge-"
-             version ".tar.xz"))
+             "https://ftp.osuosl.org/pub/deluge/source/"
+             (version-major+minor version) "/deluge-" version ".tar.xz"))
        (sha256
         (base32
-         "0b7rri4x0wrcj7rjghrnw1kfrsd5i7i6aq85dsg5dg1w1qa0ar59"))))
+         "14d8kn2pvr1qv8mwqrxmj85jycr73vwfqz12hzag0ararbkfhyky"))))
     (build-system python-build-system)
-    (inputs
-     `(("libtorrent" ,libtorrent-rasterbar)
-       ("python2-chardet" ,python2-chardet)
-       ("python2-pygtk" ,python2-pygtk)
-       ("python2-pyopenssl" ,python2-pyopenssl)
-       ("python2-pyxdg" ,python2-pyxdg)
-       ("python2-service-identity" ,python2-service-identity)
-       ("python2-twisted" ,python2-twisted)))
+    (propagated-inputs
+     `(("gtk+" ,gtk+)
+       ("librsvg" ,librsvg)
+       ("libtorrent" ,libtorrent-rasterbar)
+       ("python-pycairo" ,python-pycairo)
+       ("python-chardet" ,python-chardet)
+       ("python-dbus" ,python-dbus)
+       ("python-mako" ,python-mako)
+       ("python-pygobject" ,python-pygobject)
+       ("python-pillow" ,python-pillow)
+       ("python-pyopenssl" ,python-pyopenssl)
+       ("python-pyxdg" ,python-pyxdg)
+       ("python-rencode" ,python-rencode)
+       ("python-service-identity" ,python-service-identity)
+       ("python-setproctitle" ,python-setproctitle)
+       ("python-six" ,python-six)
+       ("python-twisted" ,python-twisted)
+       ("python-zope-interface" ,python-zope-interface)))
     (native-inputs
-     `(("intltool" ,intltool)))
+     `(("intltool" ,intltool)
+       ("python-wheel" ,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
+    ;; that require a network connection.
     (arguments
-     `(#:python ,python-2))
+     `(#:tests? #f
+       #:phases
+       (modify-phases %standard-phases
+         ;; Remove this phase when upgrading to version 2.0.4 or beyond, as
+         ;; the issue is fixed upstream.
+         (add-after 'unpack 'fix-gettext-warning
+           (lambda _
+             (substitute* "deluge/i18n/util.py"
+               (("names='ngettext'") "names=['ngettext']"))
+             #t))
+         (add-after 'install 'wrap
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out               (assoc-ref outputs "out"))
+                   (gi-typelib-path   (getenv "GI_TYPELIB_PATH")))
+               (for-each
+                (lambda (program)
+                  (wrap-program program
+                    `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
+                (map (lambda (name)
+                       (string-append out "/bin/" name))
+                     '("deluge" "deluge-gtk"))))
+             #t)))))
     (home-page "https://www.deluge-torrent.org/")
     (synopsis  "Fully-featured cross-platform ​BitTorrent client")
     (description
diff --git a/gnu/packages/boost.scm b/gnu/packages/boost.scm
index 6a08b0d6c7..b1ab8a4ec9 100644
--- a/gnu/packages/boost.scm
+++ b/gnu/packages/boost.scm
@@ -3,7 +3,7 @@
 ;;; Copyright © 2014, 2015, 2018 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org>
-;;; Copyright © 2015, 2019 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2015, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
@@ -40,6 +40,7 @@
   #:use-module (guix build-system trivial)
   #:use-module (gnu packages)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages hurd)
   #:use-module (gnu packages icu4c)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages python)
@@ -138,6 +139,15 @@
                                     ,(%current-target-system)))))
                      '())
 
+               ;; Change an #ifdef __MACH__ that really targets macOS.
+               ;; TODO: Inline this on the next rebuild cycle.
+               ,@(if (hurd-target?)
+                     '((substitute* "boost/test/utils/timer.hpp"
+                         (("defined\\(__MACH__\\)")
+                          "(defined __MACH__ && !defined __GNU__)"))
+                       #t)
+                     '())
+
                (invoke "./bootstrap.sh"
                        (string-append "--prefix=" out)
                        ;; Auto-detection looks for ICU only in traditional
diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
index 769238203c..88abe29a1e 100644
--- a/gnu/packages/bootloaders.scm
+++ b/gnu/packages/bootloaders.scm
@@ -6,13 +6,15 @@
 ;;; Copyright © 2016, 2017, 2018 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2016, 2017 Danny Milosavljevic <dannym@scratchpost.org>
 ;;; Copyright © 2016, 2017 David Craven <david@craven.ch>
-;;; Copyright © 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017, 2018, 2020 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2018, 2019, 2020, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2019 nee <nee@cock.li>
 ;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
 ;;; Copyright © 2020 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
 ;;; Copyright © 2018, 2019, 2020 Vagrant Cascadian <vagrant@debian.org>
 ;;; Copyright © 2020 Pierre Langlois <pierre.langlois@gmx.com>
+;;; Copyright © 2021 Vincent Legoll <vincent.legoll@gmail.com>
+;;; Copyright © 2021 Brice Waegeneire <brice@waegenei.re>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -115,11 +117,12 @@
                      ;; determine the root file system when it's a RAID
                      ;; device.  Failing to do that, 'grub-probe' silently
                      ;; fails if 'mdadm' is not in $PATH.
-                     (substitute* "grub-core/osdep/linux/getroot.c"
-                       (("argv\\[0\\] = \"mdadm\"")
-                        (string-append "argv[0] = \""
-                                       (assoc-ref inputs "mdadm")
-                                       "/sbin/mdadm\"")))
+                     (when (assoc-ref inputs "mdadm")
+                       (substitute* "grub-core/osdep/linux/getroot.c"
+                         (("argv\\[0\\] = \"mdadm\"")
+                          (string-append "argv[0] = \""
+                                         (assoc-ref inputs "mdadm")
+                                         "/sbin/mdadm\""))))
 
                      ;; Make the font visible.
                      (copy-file (assoc-ref (or native-inputs inputs)
@@ -133,6 +136,20 @@
                         (string-append (assoc-ref inputs "console-setup")
                                        "/bin/ckbcomp ")))
                      #t))
+                  (add-after 'unpack 'set-freetype-variables
+                    ;; These variables need to be set to the native versions
+                    ;; of the dependencies because they are used to build
+                    ;; programs which are executed during build time.
+                    (lambda* (#:key native-inputs #:allow-other-keys)
+                      (when (assoc-ref native-inputs "freetype")
+                        (let ((freetype (assoc-ref native-inputs "freetype")))
+                          (setenv "BUILD_FREETYPE_LIBS"
+                                  (string-append "-L" freetype
+                                                 "/lib -lfreetype"))
+                          (setenv "BUILD_FREETYPE_CFLAGS"
+                                  (string-append "-I" freetype
+                                                 "/include/freetype2"))))
+                     #t))
                   (add-before 'check 'disable-flaky-test
                     (lambda _
                       ;; This test is unreliable. For more information, see:
@@ -149,10 +166,11 @@
                         (("test_unset grub_func_test")
                           "test_unset"))
                       #t)))
-       ;; Disable tests on ARM and AARCH64 platforms.
-       #:tests? ,(not (any (cute string-prefix? <> (or (%current-target-system)
-                                                       (%current-system)))
-                           '("arm" "aarch64")))))
+       ;; Disable tests on ARM and AARCH64 platforms or when cross-compiling.
+       #:tests? ,(not (or (any (cute string-prefix? <> (or (%current-target-system)
+                                                           (%current-system)))
+                               '("arm" "aarch64"))
+                          (%current-target-system)))))
     (inputs
      `(("gettext" ,gettext-minimal)
 
@@ -194,6 +212,7 @@
        ("flex" ,flex)
        ("texinfo" ,texinfo)
        ("help2man" ,help2man)
+       ("freetype" ,freetype)   ; native version needed for build-grub-mkfont
 
        ;; XXX: When building GRUB 2.02 on 32-bit x86, we need a binutils
        ;; capable of assembling 64-bit instructions.  However, our default
@@ -241,21 +260,25 @@ menu to select one of the installed operating systems.")
      (fold alist-delete (package-native-inputs grub)
            '("help2man" "texinfo" "parted" "qemu" "xorriso")))
     (arguments
-     `(#:configure-flags (list "PYTHON=true")
-       #:phases (modify-phases %standard-phases
-                  (add-after 'unpack 'patch-stuff
-                   (lambda* (#:key native-inputs inputs #:allow-other-keys)
-                     (substitute* "grub-core/Makefile.in"
-                       (("/bin/sh") (which "sh")))
+     (substitute-keyword-arguments (package-arguments grub)
+       ((#:configure-flags _ ''())
+        '(list "PYTHON=true"))
+       ((#:tests? _ #t)
+        #f)
+       ((#:phases phases '%standard-phases)
+        `(modify-phases ,phases
+           (replace 'patch-stuff
+             (lambda* (#:key native-inputs inputs #:allow-other-keys)
+               (substitute* "grub-core/Makefile.in"
+                 (("/bin/sh") (which "sh")))
 
-                     ;; Make the font visible.
-                     (copy-file (assoc-ref (or native-inputs inputs)
-                                           "unifont")
-                                "unifont.bdf.gz")
-                     (system* "gunzip" "unifont.bdf.gz")
+               ;; Make the font visible.
+               (copy-file (assoc-ref (or native-inputs inputs)
+                                     "unifont")
+                          "unifont.bdf.gz")
+               (system* "gunzip" "unifont.bdf.gz")
 
-                     #t)))
-       #:tests? #f))))
+               #t))))))))
 
 (define-public grub-efi
   (package
@@ -403,7 +426,7 @@ menu to select one of the installed operating systems.")
 (define-public dtc
   (package
     (name "dtc")
-    (version "1.5.1")
+    (version "1.6.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -411,7 +434,7 @@ menu to select one of the installed operating systems.")
                     "dtc-" version ".tar.xz"))
               (sha256
                (base32
-                "07q3mdsvl4smbiakriq3hnsyyd0q344lsm306q0kgz4hjq1p82v6"))))
+                "0bf8801z6fpd1gz9mxd5pqqj8nq101x393cyw8rpkc712w13nl0h"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("bison" ,bison)
@@ -424,7 +447,7 @@ menu to select one of the installed operating systems.")
      `(("python" ,python)))
     (arguments
      `(#:make-flags
-       (list "CC=gcc"
+       (list (string-append "CC=" ,(cc-for-target))
 
              ;; /bin/fdt{get,overlay,put} need help finding libfdt.so.1.
              (string-append "LDFLAGS=-Wl,-rpath="
@@ -435,6 +458,15 @@ menu to select one of the installed operating systems.")
              "INSTALL=install")
        #:phases
        (modify-phases %standard-phases
+         (add-after 'unpack 'patch-pkg-config
+           (lambda _
+             (substitute* '("Makefile"
+                            "tests/run_tests.sh")
+               (("pkg-config")
+                (or (which "pkg-config")
+                    (string-append ,(%current-target-system)
+                                   "-pkg-config"))))
+             #t))
          (delete 'configure))))         ; no configure script
     (home-page "https://www.devicetree.org")
     (synopsis "Compiles device tree source files")
@@ -446,7 +478,7 @@ tree binary files.  These are board description files used by Linux and BSD.")
 (define u-boot
   (package
     (name "u-boot")
-    (version "2020.07")
+    (version "2020.10")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -454,7 +486,7 @@ tree binary files.  These are board description files used by Linux and BSD.")
                     "u-boot-" version ".tar.bz2"))
               (sha256
                (base32
-                "0sjzy262x93aaqd6z24ziaq19xjjjk5f577ivf768vmvwsgbzxf1"))))
+                "08m6f1bh4pdcqbxf983qdb66ccd5vak5cbzc114yf3jwq2yinj0d"))))
     (native-inputs
      `(("bc" ,bc)
        ("bison" ,bison)
@@ -465,7 +497,6 @@ tree binary files.  These are board description files used by Linux and BSD.")
        ("python" ,python)
        ("python-coverage" ,python-coverage)
        ("python-pytest" ,python-pytest)
-       ("sdl2" ,sdl2)
        ("swig" ,swig)))
     (build-system  gnu-build-system)
     (home-page "https://www.denx.de/wiki/U-Boot/")
@@ -478,9 +509,12 @@ also initializes the boards (RAM etc).")
   (package
     (inherit u-boot)
     (name "u-boot-tools")
+    (native-inputs
+     `(("sdl2" ,sdl2)
+       ,@(package-native-inputs u-boot)))
     (arguments
      `(#:make-flags '("HOSTCC=gcc")
-       #:test-target "tests"
+       #:test-target "tcheck"
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'patch
@@ -491,11 +525,8 @@ also initializes the boards (RAM etc).")
              (substitute* "tools/dtoc/fdt_util.py"
               (("'cc'") "'gcc'"))
              (substitute* "tools/patman/test_util.py"
-              ;; python*-coverage is simply called coverage in guix.
-              (("%s-coverage") "coverage")
-              ;; XXX Allow for only 99% test coverage.
-              ;; TODO: Find out why that is needed.
-              (("if coverage != '100%':") "if not int(coverage.rstrip('%')) >= 99:"))
+              ;; python3-coverage is simply called coverage in guix.
+              (("python3-coverage") "coverage"))
              (substitute* "test/run"
               ;; Make it easier to find test failures.
               (("#!/bin/bash") "#!/bin/bash -x")
@@ -505,8 +536,6 @@ also initializes the boards (RAM etc).")
               (("run_test \"binman\"") ": run_test \"binman\"")
               ;; FIXME: code coverage not working
               (("run_test \"binman code coverage\"") ": run_test \"binman code coverage\"")
-              (("run_test \"dtoc code coverage\"") ": run_test \"dtoc code coverage\"")
-              (("run_test \"fdt code coverage\"") ": run_test \"fdt code coverage\"")
               ;; This test would require internet access.
               (("\\./tools/buildman/buildman") (which "true")))
              (substitute* "test/py/tests/test_sandbox_exit.py"
@@ -519,10 +548,12 @@ def test_ctrl_c"))
                (("BASEDIR=sandbox") "BASEDIR=."))
              (for-each (lambda (file)
                               (substitute* file
-                                  ;; Disable signatures, due to GPL/Openssl
-                                  ;; license incompatibilities.  See
-                                  ;; https://bugs.gnu.org/34717 for details.
-                                  (("CONFIG_FIT_SIGNATURE=y") "CONFIG_FIT_SIGNATURE=n")
+                                  ;; Disable features that require OpenSSL due
+                                  ;; to GPL/Openssl license incompatibilities.
+                                  ;; See https://bugs.gnu.org/34717 for
+                                  ;; details.
+                                  (("CONFIG_FIT_SIGNATURE=y")
+                                   "CONFIG_FIT_SIGNATURE=n\nCONFIG_UT_LIB_ASN1=n")
                                   ;; This test requires a sound system, which is un-used
                                   ;; in u-boot-tools.
                                   (("CONFIG_SOUND=y") "CONFIG_SOUND=n")))
@@ -869,7 +900,14 @@ to Novena upstream, does not load u-boot.img from the first partition.")
         (substitute-keyword-arguments (package-arguments base)
           ((#:phases phases)
            `(modify-phases ,phases
-              (add-after 'unpack 'set-environment
+              (add-after 'unpack 'patch-rockpro64-config
+                ;; Fix regression in 2020.10 causing freezes on boot with USB boot enabled.
+                ;; See https://gitlab.manjaro.org/manjaro-arm/packages/core/uboot-rockpro64/-/issues/4
+                (lambda _
+                  (substitute* "configs/rockpro64-rk3399_defconfig"
+                    (("CONFIG_USE_PREBOOT=y") "CONFIG_USE_PREBOOT=n"))
+                  #t))
+              (add-after 'patch-rockpro64-config 'set-environment
                 (lambda* (#:key inputs #:allow-other-keys)
                   (setenv "BL31" (string-append (assoc-ref inputs "firmware")
                                                 "/bl31.elf"))
@@ -1059,3 +1097,124 @@ systems so that they can be added to the bootloader.  It also works out how to
 boot existing GNU/Linux systems and detects what distribution is installed in
 order to add a suitable bootloader menu entry.")
     (license license:gpl2+)))
+
+(define-public ipxe
+  ;; XXX: 'BUILD_TIMESTAMP' is used to automatically select the newest version
+  ;; of iPXE if multiple iPXE drivers are loaded concurrently in a UEFI system.
+  ;;
+  ;; TODO: Bump this timestamp at each modifications of the package (not only
+  ;; for updates) by running: date +%s.
+  (let ((timestamp "1591706427"))
+    (package
+      (name "ipxe")
+      (version "1.21.1")
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/ipxe/ipxe")
+                      (commit (string-append "v" version))))
+                (file-name (git-file-name name version))
+                (patches (search-patches "ipxe-reproducible-geniso.patch"))
+                (sha256
+                 (base32
+                  "1pkf1n1c0rdlzfls8fvjvi1sd9xjd9ijqlyz3wigr70ijcv6x8i9"))))
+      (build-system gnu-build-system)
+      (arguments
+       `(#:modules ((guix build utils)
+                    (guix build gnu-build-system)
+                    (guix base32)
+                    (ice-9 string-fun)
+                    (ice-9 regex)
+                    (rnrs bytevectors))
+         #:imported-modules ((guix base32)
+                             ,@%gnu-build-system-modules)
+         #:make-flags
+         ;; XXX: 'BUILD_ID' is used to determine when another ROM in the
+         ;; system contains identical code in order to save space within the
+         ;; legacy BIOS option ROM area, which is extremely limited in size.
+         ;; It is supposed to be collision-free across all ROMs, to do so we
+         ;; use the truncated output hash of the package.
+         (let ((build-id
+                (lambda (out)
+                  (let* ((nix-store (string-append
+                                     (or (getenv "NIX_STORE") "/gnu/store")
+                                     "/"))
+                         (filename
+                          (string-replace-substring out nix-store ""))
+                         (hash (match:substring (string-match "[0-9a-z]{32}"
+                                                              filename)))
+                         (bv (nix-base32-string->bytevector hash)))
+                    (format #f "0x~x"
+                            (bytevector-u32-ref bv 0 (endianness big))))))
+               (out (assoc-ref %outputs "out"))
+               (syslinux (assoc-ref %build-inputs "syslinux")))
+           (list "ECHO_E_BIN_ECHO=echo"
+                 "ECHO_E_BIN_ECHO_E=echo -e"
+
+                 ;; cdrtools' mkisofs will silently ignore a missing isolinux.bin!
+                 ;; Luckily xorriso is more strict.
+                 (string-append "ISOLINUX_BIN=" syslinux
+                                "/share/syslinux/isolinux.bin")
+                 (string-append "SYSLINUX_MBR_DISK_PATH=" syslinux
+                                "/share/syslinux/isohdpfx.bin")
+
+                 ;; Build reproducibly.
+                 (string-append "BUILD_ID_CMD=echo -n " (build-id out))
+                 (string-append "BUILD_TIMESTAMP=" ,timestamp)
+                 "everything"))
+         #:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'enter-source-directory
+             (lambda _ (chdir "src") #t))
+           (add-after 'enter-source-directory 'set-options
+             (lambda _
+               (substitute* "config/general.h"
+                 (("^//(#define PING_CMD.*)" _ uncommented) uncommented)
+                 (("^//(#define IMAGE_TRUST_CMD.*)" _ uncommented)
+                  uncommented)
+                 (("^#undef.*(DOWNLOAD_PROTO_HTTPS.*)" _ option)
+                  (string-append "#define " option))
+                 (("^#undef.*(DOWNLOAD_PROTO_NFS.*)" _ option)
+                  (string-append "#define " option)))
+               #t))
+           (delete 'configure)          ; no configure script
+           (replace 'install
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let* ((out (assoc-ref outputs "out"))
+                      (ipxe (string-append out "/lib/ipxe"))
+                      (exts-re
+                       "\\.(efi|efirom|iso|kkpxe|kpxe|lkrn|mrom|pxe|rom|usb)$")
+                      (dirs '("bin" "bin-i386-linux" "bin-x86_64-pcbios"
+                              "bin-x86_64-efi" "bin-x86_64-linux" "bin-i386-efi"))
+                      (files (apply append
+                                    (map (lambda (dir)
+                                           (find-files dir exts-re)) dirs))))
+                 (for-each (lambda (file)
+                             (let* ((subdir (dirname file))
+                                    (fn (basename file))
+                                    (tgtsubdir (cond
+                                                ((string=? "bin" subdir) "")
+                                                ((string-prefix? "bin-" subdir)
+                                                 (string-drop subdir 4)))))
+                               (install-file file
+                                             (string-append ipxe "/" tgtsubdir))))
+                           files))
+               #t))
+           (add-after 'install 'leave-source-directory
+             (lambda _ (chdir "..") #t)))
+         #:tests? #f))                  ; no test suite
+      (native-inputs
+       `(("perl" ,perl)
+         ("syslinux" ,syslinux)
+         ("xorriso" ,xorriso)))
+      (home-page "https://ipxe.org")
+      (synopsis "PXE-compliant network boot firmware")
+      (description "iPXE is a network boot firmware.  It provides a full PXE
+implementation enhanced with additional features such as booting from: a web
+server via HTTP, an iSCSI SAN, a Fibre Channel SAN via FCoE, an AoE SAN, a
+wireless network, a wide-area network, an Infiniband network.  It allows to
+control the boot process with a script.  You can use iPXE to replace the
+existing PXE ROM on your network card, or you can chainload into iPXE to obtain
+the features of iPXE without the hassle of reflashing.")
+      (license license:gpl2+))))
+
diff --git a/gnu/packages/browser-extensions.scm b/gnu/packages/browser-extensions.scm
new file mode 100644
index 0000000000..10b8304eb6
--- /dev/null
+++ b/gnu/packages/browser-extensions.scm
@@ -0,0 +1,123 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages browser-extensions)
+  #:use-module (guix packages)
+  #:use-module (guix git-download)
+  #:use-module (guix build-system copy)
+  #:use-module (guix build-system gnu)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (gnu build chromium-extension)
+  #:use-module (gnu packages compression)
+  #:use-module (gnu packages python))
+
+(define play-to-kodi
+  (package
+    (name "play-to-kodi")
+    (version "1.9.1")
+    (home-page "https://github.com/khloke/play-to-xbmc-chrome")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference (url home-page) (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "01rmcpbkn9vhcd8mrah2jmd2801k2r5fz7aqvp22hbwmh2z5f1ch"))))
+    (build-system copy-build-system)
+    (synopsis "Send website contents to Kodi")
+    (description
+     "Play to Kodi is a browser add-on that can send video, audio, and other
+supported content to the Kodi media center.")
+    (license license:expat)))
+
+(define-public play-to-kodi/chromium
+  (make-chromium-extension play-to-kodi))
+
+(define uassets
+  (let ((commit "8e79f25fceb7c27960753de6f4d21491257741ab"))
+    (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
+        "19ymyv6qpmmyw4lnpx6adm6mzf8ygfj0c9ljw24wl239v9vzn46w")))))
+
+(define ublock-origin
+  (package
+    (name "ublock-origin")
+    (version "1.32.4")
+    (home-page "https://github.com/gorhill/uBlock")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference (url home-page) (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0v5phzsrav1z0gd7rirmsy7k500xhibw73ffk61754hkqd0l635v"))))
+    (build-system gnu-build-system)
+    (outputs '("xpi" "firefox" "chromium"))
+    (arguments
+     '(#:tests? #f                      ;no tests
+       #:allowed-references ()
+       #:phases
+       (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 'make-files-writable
+           (lambda _
+             ;; The build system copies some files and later tries
+             ;; modifying them.
+             (for-each make-file-writable (find-files "."))
+             #t))
+         (add-after 'patch-source-shebangs 'build-xpi
+           (lambda _
+             (invoke "./tools/make-firefox.sh" "all")))
+         (add-after 'build-xpi 'build-chromium
+           (lambda _
+             (invoke "./tools/make-chromium.sh")))
+         (add-after 'build-chromium 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((firefox (assoc-ref outputs "firefox"))
+                   (xpi (assoc-ref outputs "xpi"))
+                   (chromium (assoc-ref outputs "chromium")))
+               (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))))))
+    (native-inputs
+     `(("python" ,python-wrapper)
+       ("uassets" ,uassets)
+       ("zip" ,zip)))
+    (synopsis "Block unwanted content from web sites")
+    (description
+     "uBlock Origin is a @dfn{wide spectrum blocker} for IceCat and
+ungoogled-chromium.")
+    (license license:gpl3+)))
+
+(define-public ublock-origin/chromium
+  (make-chromium-extension ublock-origin "chromium"))
diff --git a/gnu/packages/build-tools.scm b/gnu/packages/build-tools.scm
index 7213c1bd0b..63417e5b81 100644
--- a/gnu/packages/build-tools.scm
+++ b/gnu/packages/build-tools.scm
@@ -6,11 +6,12 @@
 ;;; 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 Brett Gilio <brettg@gnu.org>
+;;; 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 Yuval Kogman <nothingmuch@woobling.org>
 ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
+;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -35,18 +36,27 @@
   #:use-module (guix git-download)
   #:use-module (guix build-system cmake)
   #:use-module (gnu packages)
+  #:use-module (gnu packages adns)
   #: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)
   #:use-module (gnu packages package-management)
   #:use-module (gnu packages pcre)
   #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages pretty-print)
+  #:use-module (gnu packages protobuf)
   #: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 regex)
+  #:use-module (gnu packages rpc)
   #:use-module (gnu packages sqlite)
+  #:use-module (gnu packages tls)
   #:use-module (gnu packages ninja)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system python))
@@ -67,7 +77,7 @@
                 "13br735ig7lygvzyfd15fc2rdygrqm503j6xj5xkrl1r7w2wipq6"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:make-flags `("CC=gcc"
+     `(#:make-flags `(,(string-append "CC=" ,(cc-for-target))
                       ,(string-append "INSTALL_PREFIX="
                                       (assoc-ref %outputs "out")))
        #:test-target "test"
@@ -89,19 +99,46 @@ makes a few sacrifices to acquire fast full and incremental build times.")
 (define-public bear
   (package
     (name "bear")
-    (version "2.4.3")
+    (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
-                "19fk4flfykbzhb89ppmzqf0zlrkbjm6ajl9fsayndj9km5ys0041"))))
+                "15r22sbk5bibrhf54lf0shiqw1gnsik24fr5as96w3hnj6iahgwn"))))
     (build-system cmake-build-system)
+    (arguments
+     `(#:phases (modify-phases %standard-phases
+                  (add-before 'check 'set-build-environment
+                    (lambda _
+                      (setenv "CC" "gcc")
+                      #t))
+                  ;; TODO: Test Configuration is Incomplete
+                  (replace 'check
+                    (lambda _
+                      (invoke "ctest"))))))
     (inputs
-     `(("python" ,python-wrapper)))
+     `(("c-ares" ,c-ares)
+       ("fmt" ,fmt)
+       ("grpc" ,grpc)
+       ("json-modern-cxx" ,json-modern-cxx)
+       ("protobuf" ,protobuf)
+       ("python" ,python-wrapper)
+       ("re2" ,re2)
+       ("spdlog" ,spdlog)))
+    (native-inputs
+     `(("abseil-cpp" ,abseil-cpp)
+       ("gcc-9" ,gcc-9) ; for <filesystem>, #44896
+       ("googletest" ,googletest)
+       ("openssl" ,openssl)
+       ("pkg-config" ,pkg-config)
+       ("python-lit" ,python-lit)
+       ("zlib" ,zlib)))
     (home-page "https://github.com/rizsotto/Bear")
     (synopsis "Tool for generating a compilation database")
     (description "A JSON compilation database is used in the Clang project to
@@ -111,8 +148,8 @@ generate such a compilation database.")
     (license license:gpl3+)))
 
 (define-public gn
-  (let ((commit "eb997b5ab9c3f1ba6a2c52072785884864a84eae")
-        (revision "1794"))            ;as returned by `git describe`, used below
+  (let ((commit "e327ffdc503815916db2543ec000226a8df45163")
+        (revision "1819"))            ;as returned by `git describe`, used below
     (package
       (name "gn")
       (version (git-version "0.0" revision commit))
@@ -122,7 +159,7 @@ generate such a compilation database.")
                 (uri (git-reference (url home-page) (commit commit)))
                 (sha256
                  (base32
-                  "1vfkcy34wqhg7wsk7jdzhgnnzwim10wgbxv5bnavxzjcs871i2xa"))
+                  "0kvlfj3www84zp1vmxh76x8fdjm9hyk8lkh2vdsidafpmm75fphr"))
                 (file-name (git-file-name name version))))
       (build-system gnu-build-system)
       (arguments
@@ -211,6 +248,21 @@ files}, are written in a custom domain-specific language (@dfn{DSL}) that
 resembles Python.")
     (license license:asl2.0)))
 
+;; Added temporarily for packages that need it.
+;; TODO: Remove when core-updates is merged.
+(define-public meson-0.55
+  (package
+    (inherit meson)
+    (version "0.55.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://github.com/mesonbuild/meson/"
+                                  "releases/download/" version  "/meson-"
+                                  version ".tar.gz"))
+              (sha256
+               (base32
+                "1070kjiirxxdfppmrhi3wsc6rykay1zlciqrzayjhjg0hkw42mrv"))))))
+
 (define-public meson-for-build
   (package
     (inherit meson)
@@ -237,7 +289,7 @@ resembles Python.")
     (native-inputs
      `(("unzip" ,unzip))) ; for unpacking the source
     (arguments
-     `(#:make-flags '("CC=gcc")
+     `(#:make-flags (list (string-append "CC=" ,(cc-for-target)))
        #:tests? #f ; No test suite
        #:phases
        (modify-phases %standard-phases
diff --git a/gnu/packages/busybox.scm b/gnu/packages/busybox.scm
index 0a93c6475e..5af67e084d 100644
--- a/gnu/packages/busybox.scm
+++ b/gnu/packages/busybox.scm
@@ -1,7 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2014 John Darrington <jmd@gnu.org>
-;;; Copyright © 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -22,6 +22,7 @@
   #:use-module (guix licenses)
   #:use-module (guix packages)
   #:use-module (guix download)
+  #:use-module (guix utils)
   #:use-module (guix build-system gnu)
   #:use-module (gnu packages)
   #:use-module (gnu packages admin)
@@ -32,7 +33,7 @@
 (define-public busybox
   (package
     (name "busybox")
-    (version "1.31.1")
+    (version "1.32.1")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -40,10 +41,7 @@
                     version ".tar.bz2"))
               (sha256
                (base32
-                "1659aabzp8w4hayr4z8kcpbk2z1q2wqhw7i1yb0l72b45ykl1yfh"))
-              (patches
-               (search-patches
-                "busybox-1.31.1-fix-build-with-glibc-2.31.patch"))))
+                "1vhd59qmrdyrr1q7rvxmyl96z192mxl089hi87yl0hcp6fyw8mwx"))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases
@@ -90,7 +88,7 @@
              ;; true in guix build environment
              (substitute* "testsuite/pidof.tests"
                (("-s init") "-s $(cat /proc/1/comm)"))
-  
+
              ;; This test cannot possibly pass.
              ;; It is trying to test that "which ls" returns "/bin/ls" when PATH is not set.
              ;; However, this relies on /bin/ls existing.  Which it does not in guix.
@@ -135,11 +133,11 @@ any small or embedded system.")
                 "00aw9d809wj1bqlb2fsssdgz7rj0363ya14py0gfdm0rkp98zcpa"))))
     (build-system gnu-build-system)
     (arguments
-     '(#:phases
+     `(#:phases
        (modify-phases %standard-phases
          (add-before 'configure 'set-environment-variables
            (lambda _
-             (setenv "CC" (which "gcc"))
+             (setenv "CC" ,(cc-for-target))
              (setenv "HOSTCC" (which "gcc"))
              #t))
          (replace 'configure
diff --git a/gnu/packages/c.scm b/gnu/packages/c.scm
index 25bc78e6bf..d9e5e4d7de 100644
--- a/gnu/packages/c.scm
+++ b/gnu/packages/c.scm
@@ -1,15 +1,16 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2016, 2018 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2016, 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
-;;; Copyright © 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018, 2020, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018, 2019 Pierre Neidhardt <mail@ambrevar.xyz>
-;;; Copyright © 2019 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2019 Guillaume Le Vaillant <glv@posteo.net>
 ;;; Copyright © 2019 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
 ;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
-;;; Copyright @ 2020 Katherine Cox-Buday <cox.katherine.e@gmail.com>
+;;; Copyright © 2020 Katherine Cox-Buday <cox.katherine.e@gmail.com>
 ;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2020 Greg Hogan <code@greghogan.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -28,11 +29,14 @@
 
 (define-module (gnu packages c)
   #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix utils)
   #: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 trivial)
+  #:use-module (gnu packages)
   #:use-module (gnu packages bootstrap)
   #:use-module (gnu packages bison)
   #:use-module (gnu packages check)
@@ -40,6 +44,7 @@
   #:use-module (gnu packages perl)
   #:use-module (gnu packages texinfo)
   #:use-module (gnu packages guile)
+  #:use-module (gnu packages lua)
   #:use-module (gnu packages multiprecision)
   #:use-module (gnu packages pcre)
   #:use-module (gnu packages python)
@@ -182,15 +187,20 @@ language with thin bindings for other languages.")
 (define-public udunits
   (package
     (name "udunits")
-    (version "2.2.26")
+    ;; Four-part version numbers are development snapshots, not releases.  See
+    ;; <https://github.com/Unidata/UDUNITS-2/issues/99#issuecomment-732323472>.
+    (version "2.2.28")
     (source (origin
               (method url-fetch)
               (uri (string-append "ftp://ftp.unidata.ucar.edu/pub/udunits/"
                                   "udunits-" version ".tar.gz"))
               (sha256
                (base32
-                "0v9mqw4drnkzkm57331ail6yvs9485jmi37s40lhvmf7r5lli3rn"))))
+                "17jpbp6f0rr132jn2gqy8ry8mv1w27v6dyhfq1igv8v1674aw2sr"))))
     (build-system gnu-build-system)
+    (arguments
+     `(#:configure-flags
+       (list "--disable-static")))
     (inputs
      `(("expat" ,expat)))
     (home-page "https://www.unidata.ucar.edu/software/udunits/")
@@ -257,6 +267,64 @@ string formatting and autoresizing, option and config file parsing, type
 checking casts and more.")
     (license license:lgpl2.1+)))
 
+(define-public libwuya
+  ;; This commit is the one before "wuy_pool.h" was removed from libwuya,
+  ;; which libleak currently requires.
+  (let ((revision "1")
+        (commit "883502041044f4616cfbf75c8f2bb60059f704a9"))
+    (package
+      (name "libwuya")
+      (version (git-version "0.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/WuBingzheng/libwuya")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "1xrsqbgr13g2v0ag165ryp7xrwzv41xfygzk2a3445ca98c1qpdc"))))
+      (build-system gnu-build-system)
+      (arguments
+       `(#:tests? #f                    ;no test suite
+         #:phases (modify-phases %standard-phases
+                    (add-after 'unpack 'patch-lua-includes
+                      (lambda _
+                        (substitute* '("wuy_cflua.h" "wuy_cflua.c")
+                          (("<lua5\\.1/") "<"))
+                        #t))
+                    (add-after 'unpack 'add--fPIC-to-CFLAGS
+                      (lambda _
+                        (substitute* "Makefile"
+                          (("CFLAGS[^\n]*" all)
+                           (string-append all " -fPIC")))
+                        #t))
+                    (add-before 'build 'set-CC
+                      (lambda _
+                        (setenv "CC" "gcc")
+                        #t))
+                    (delete 'configure) ;no configure script
+                    (replace 'install
+                      (lambda* (#:key outputs #:allow-other-keys)
+                        (let* ((out (assoc-ref outputs "out"))
+                               (include-dir (string-append out "/include"))
+                               (headers (find-files "." "\\.h$")))
+                          (for-each (lambda (h)
+                                      (install-file h include-dir))
+                                    headers)
+                          (install-file "libwuya.a" (string-append out "/lib"))
+                          #t))))))
+      (inputs `(("lua" ,lua)))
+      (home-page "https://github.com/WuBingzheng/libwuya/")
+      (synopsis "C library implementing various data structures")
+      (description "The @code{libwuya} library implements data structures such
+as dictionaries, skip lists, and memory pools.")
+      ;; There is no clear information as to what license this is distributed
+      ;; under, but it is included (bundled) with libleak from the same author
+      ;; under the GNU GPL v2 or later license, so use this here until it is
+      ;; clarified (see: https://github.com/WuBingzheng/libwuya/issues/2).
+      (license license:gpl2+))))
+
 (define-public packcc
   (package
     (name "packcc")
@@ -311,7 +379,7 @@ any other grammar rules.")
 (define-public sparse
   (package
     (name "sparse")
-    (version "0.6.2")
+    (version "0.6.3")
     (source (origin
               (method url-fetch)
               (uri
@@ -319,7 +387,7 @@ any other grammar rules.")
                               "sparse-"  version ".tar.xz"))
               (sha256
                (base32
-                "1z11chawwcmf5xxx5v52cj7wrr3warz6q5wlcjvxpif1jbga172i"))))
+                "16d8c4dhipjzjf8z4z7pix1pdpqydz0v4r7i345f5s09hjnxpxnl"))))
     (build-system gnu-build-system)
     (inputs `(("perl" ,perl)))
     (arguments
@@ -459,7 +527,8 @@ replacement for the syslog() call, but retains its ease of use.")
     (arguments
      `(#:phases (modify-phases %standard-phases
                   (delete 'configure))
-       #:make-flags (list "CC=gcc" (string-append "prefix=" %output))
+       #:make-flags (list (string-append "CC=" ,(cc-for-target))
+                          (string-append "prefix=" %output))
        #:tests? #f))                    ;no test suite
     (native-inputs
      `(("perl" ,perl)))
@@ -473,3 +542,75 @@ avoiding distractions when studying code that uses @code{#ifdef} heavily for
 portability.")
     (license (list license:bsd-2        ;all files except...
                    license:bsd-3))))    ;...the unidef.1 manual page
+
+(define-public aws-c-common
+  (package
+    (name "aws-c-common")
+    (version "0.4.63")
+    (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
+                "16bc6fn1gq3nqcrzgpi2kjphq7xkkr73aljakrg89ysm6hyzyim9"))))
+    (build-system cmake-build-system)
+    (synopsis "Amazon Web Services core C library")
+    (description
+     "This library provides common C99 primitives, configuration, data
+ structures, and error handling for the @acronym{AWS,Amazon Web Services} SDK.")
+    (home-page "https://github.com/awslabs/aws-c-common")
+    (license license:asl2.0)))
+
+(define-public aws-checksums
+  (package
+    (name "aws-checksums")
+    (version "0.1.10")
+    (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
+                "1f9scl5734pgjlsixspwljrrlndzhllwlfygdcr1gx5p0za08zjb"))
+              (patches (search-patches "aws-checksums-cmake-prefix.patch"))))
+    (build-system cmake-build-system)
+    (inputs
+     `(("aws-c-common" ,aws-c-common)))
+    (synopsis "Amazon Web Services checksum library")
+    (description
+     "This library provides cross-Platform hardware accelerated CRC32c and CRC32
+with fallback to efficient C99 software implementations.")
+    (home-page "https://github.com/awslabs/aws-checksums")
+    (license license:asl2.0)))
+
+(define-public aws-c-event-stream
+  (package
+    (name "aws-c-event-stream")
+    (version "0.1.6")
+    (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
+                "1vl9ainc4klv0g9gk1iv4833bsllni6jxn6mwb0fnv2dnlz7zv9q"))
+              (patches (search-patches "aws-c-event-stream-cmake-prefix.patch"))))
+    (build-system cmake-build-system)
+    (propagated-inputs
+     `(("aws-c-common" ,aws-c-common)))
+    (inputs
+     `(("aws-checksums" ,aws-checksums)))
+    (synopsis "Amazon Web Services client-server message format library")
+    (description
+     "This library is a C99 implementation for @acronym{AWS,Amazon Web Services}
+event stream encoding, a binary format for bidirectional client-server
+communication.")
+    (home-page "https://github.com/awslabs/aws-c-event-stream")
+    (license license:asl2.0)))
diff --git a/gnu/packages/calendar.scm b/gnu/packages/calendar.scm
index 9987ae1bf8..93303d632f 100644
--- a/gnu/packages/calendar.scm
+++ b/gnu/packages/calendar.scm
@@ -9,6 +9,7 @@
 ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com
 ;;; Copyright © 2020 Brendan Tildesley <mail@brendan.scot>
 ;;; Copyright © 2020 Tanguy Le Carrour <tanguy@bioneland.org>
+;;; Copyright © 2020 Peng Mei Yu <pengmeiyu@riseup.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -37,6 +38,7 @@
   #:use-module (gnu packages base)
   #:use-module (gnu packages check)
   #:use-module (gnu packages dav)
+  #:use-module (gnu packages docbook)
   #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
@@ -124,12 +126,20 @@ the <tz.h> library for handling time zones and leap seconds.")
     (build-system cmake-build-system)
     (arguments
      '(#:tests? #f ; test suite appears broken
+       #:parallel-build? #f             ;may cause GIR generation failure
        #:configure-flags '("-DSHARED_ONLY=true"
                            ;; required by evolution-data-server
                            "-DGOBJECT_INTROSPECTION=true"
                            "-DICAL_GLIB_VAPI=true")
        #:phases
        (modify-phases %standard-phases
+         (add-after 'unpack 'patch-docbook-reference
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "doc/reference/libical-glib/libical-glib-docs.sgml.in"
+               (("http://www.oasis-open.org/docbook/xml/4.3/")
+                (string-append (assoc-ref inputs "docbook-xml")
+                               "/xml/dtd/docbook/")))
+             #t))
          (add-before 'configure 'patch-paths
            (lambda* (#:key inputs #:allow-other-keys)
              ;; TODO: libical 3.1.0 supports using TZDIR instead of a hard-coded
@@ -144,7 +154,8 @@ the <tz.h> library for handling time zones and leap seconds.")
                  (("\\\"/usr/share/lib/zoneinfo\\\"") "")))
              #t)))))
     (native-inputs
-     `(("gobject-introspection" ,gobject-introspection)
+     `(("docbook-xml" ,docbook-xml-4.3)
+       ("gobject-introspection" ,gobject-introspection)
        ("gtk-doc" ,gtk-doc)
        ("perl" ,perl)
        ("pkg-config" ,pkg-config)
@@ -167,26 +178,17 @@ data units.")
 (define-public khal
   (package
     (name "khal")
-    (version "0.10.1")
+    (version "0.10.2")
     (source (origin
-             (method url-fetch)
-             (uri (pypi-uri "khal" version))
-             (sha256
-              (base32
-               "1r8bkgjwkh7i8ygvsv51h1cnax50sb183vafg66x5snxf3dgjl6l"))
-             (patches
-               (list
-                 (origin
-                   (method url-fetch)
-                   ;; This patch fixes an issue with python-urwid-2.1.0
-                   (uri "https://github.com/pimutils/khal/commit/2c5990c2de2015b251ba23617faa40ee11b8c22a.patch")
-                   (file-name "khal-compat-urwid-2.1.0.patch")
-                   (sha256
-                    (base32
-                     "11nd8hkjz68imwqqn0p54zmb53z2pfxmzchaviy7jc1ky5s9l663")))))))
+              (method url-fetch)
+              (uri (pypi-uri "khal" version))
+              (sha256
+               (base32
+                "11qhrga44knlnp88py9p547d4nr5kn041d2nszwa3dqw7mf22ks9"))))
     (build-system python-build-system)
     (arguments
-     `(#:phases (modify-phases %standard-phases
+     `(#:tests? #f ; The test suite is unreliable. See <https://bugs.gnu.org/44197>
+       #:phases (modify-phases %standard-phases
         ;; Building the manpage requires khal to be installed.
         (add-after 'install 'manpage
           (lambda* (#:key inputs outputs #:allow-other-keys)
@@ -196,28 +198,9 @@ data units.")
             (install-file
              "doc/build/man/khal.1"
              (string-append (assoc-ref outputs "out") "/share/man/man1"))
-            #t))
-        (add-before 'check 'fix-tests
-          (lambda _
-            ;; Reported upstream: <https://github.com/pimutils/khal/issues/947>.
-            (substitute* "tests/cli_test.py"
-             (("Invalid value for \"\\[ICS\\]\"") "Invalid value for \\'[ICS]\\'"))
-            #t))
-        (replace 'check
-          (lambda* (#:key inputs #:allow-other-keys)
-            ;; The tests require us to choose a timezone.
-            (setenv "TZ"
-                    (string-append (assoc-ref inputs "tzdata")
-                                   "/share/zoneinfo/Zulu"))
-            (invoke "py.test" "tests"))))))
+            #t)))))
     (native-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-pytest-cov" ,python-pytest-cov)
-       ("python-setuptools-scm" ,python-setuptools-scm)
-       ;; Required for tests
-       ("python-freezegun" ,python-freezegun)
-       ("tzdata" ,tzdata-for-tests)
-       ("vdirsyncer" ,vdirsyncer)
+     `(("python-setuptools-scm" ,python-setuptools-scm)
        ;; Required to build manpage
        ("python-sphinxcontrib-newsfeed" ,python-sphinxcontrib-newsfeed)
        ("python-sphinx" ,python-sphinx)))
@@ -228,6 +211,11 @@ data units.")
        ("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)))
     (synopsis "Console calendar program")
     (description "Khal is a standards based console calendar program,
@@ -339,3 +327,45 @@ DebConf, FrOSCon, Grazer LinuxTage, and the CCC congresses.
 ConfClerk is targeted at mobile devices but works on any system running Qt.")
     (license (list license:gpl2+
                    license:lgpl3)))) ; or cc-by3.0 for src/icons/*
+
+(define-public ccal
+  (package
+    (name "ccal")
+    (version "2.5.3")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://ccal.chinesebay.com/ccal/ccal-"
+                                  version ".tar.gz"))
+              (sha256
+               (base32
+                "15nza1d1lvk3dp0wcl53wsd32yhbgyzznha092mh5kh5z74vsk1x"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (replace 'configure
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (substitute* "Makefile"
+                 (("/usr/local/bin")
+                  (string-append out "/bin"))
+                 (("/usr/local/man")
+                  (string-append out "/share/man"))))
+             #t))
+         (add-after 'install 'install-manuals
+           (lambda _
+             (invoke "make" "install-man"))))
+       ;; no tests
+       #:tests? #f))
+    (home-page "http://ccal.chinesebay.com/ccal/ccal.htm")
+    (synopsis "Command line program for Chinese calendar")
+    (description "@command{ccal} is a command line program which writes a
+Gregorian calendar together with Chinese calendar to standard output.  Its
+usage is similar to the @command{cal} program.  In addition to console output,
+it can also generate Encapsulated Postscript and HTML table outputs for use in
+do-it-yourself calendars and web pages.  It supports both simplified and
+traditional Chinese characters.")
+    ;; Both licenses are in use in various source files.  Note that
+    ;; COPYING.LESSER specifies LGPL 3.0, but all source files say
+    ;; 'Lesser GPL version 2 or later'.
+    (license (list license:gpl2+ license:lgpl2.1+))))
diff --git a/gnu/packages/ccache.scm b/gnu/packages/ccache.scm
index 5a1128f44c..c5b9790f27 100644
--- a/gnu/packages/ccache.scm
+++ b/gnu/packages/ccache.scm
@@ -30,14 +30,14 @@
 (define-public ccache
   (package
     (name "ccache")
-    (version "3.7.11")
+    (version "3.7.12")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://github.com/ccache/ccache/releases/download/v"
                            version "/ccache-" version ".tar.xz"))
        (sha256
-        (base32 "0s1g0ylrayzax68xlqnxx46f5bhvr2pcm1yzswmj0kcs14404icd"))))
+        (base32 "005liq8csgxdn7m9hj2ah07hishww855p8sc96y1hrnwc21lwbx0"))))
     (build-system gnu-build-system)
     (native-inputs `(("perl" ,perl)     ; for test/run
                      ("which" ,(@ (gnu packages base) which))))
diff --git a/gnu/packages/cdrom.scm b/gnu/packages/cdrom.scm
index 6dee19fb29..a8da7ba48b 100644
--- a/gnu/packages/cdrom.scm
+++ b/gnu/packages/cdrom.scm
@@ -737,16 +737,15 @@ information is written to standard error.")
 (define-public asunder
   (package
     (name "asunder")
-    (version "2.9.6")
-    (source (origin
-              (method url-fetch)
-              (uri
-               (string-append "http://www.littlesvr.ca/asunder/releases/asunder-"
-                              version
-                              ".tar.bz2"))
-              (sha256
-               (base32
-                "1ycnd82lh7qy1pcbngd4b41s16j9hnm2kyfrncg4cwr3bfk7yg7a"))))
+    (version "2.9.7")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "http://www.littlesvr.ca/asunder/releases/asunder-"
+                       version ".tar.bz2"))
+       (sha256
+        (base32 "1x3l308ss0iqhz90qyjb94gyd8b4piyrm2nzjmg5kf049k9prjf1"))))
     (build-system glib-or-gtk-build-system)
     (arguments
      '(#:out-of-source? #f
@@ -954,7 +953,7 @@ CD data, and more.  It's mostly compatible with @code{cdrtools}.")
     (source (origin
               (method url-fetch)
               (uri (string-append
-                    "https://downloads.sourceforge.net/cdemu/libmirage-"
+                    "mirror://sourceforge/cdemu/libmirage/libmirage-"
                     version ".tar.bz2"))
               (sha256
                (base32
@@ -983,7 +982,7 @@ the data stored in various image formats.")
     (source (origin
               (method url-fetch)
               (uri (string-append
-                    "https://downloads.sourceforge.net/cdemu/cdemu-daemon/"
+                    "mirror://sourceforge/cdemu/cdemu-daemon/"
                     "cdemu-daemon-" version ".tar.bz2"))
               (sha256
                (base32
@@ -1012,7 +1011,7 @@ drive and disc (including CD-ROMs and DVD-ROMs).")
     (source (origin
               (method url-fetch)
               (uri (string-append
-                    "https://downloads.sourceforge.net/cdemu/cdemu-client-"
+                    "mirror://sourceforge/cdemu/cdemu-client/cdemu-client-"
                     version ".tar.bz2"))
               (sha256
                (base32
diff --git a/gnu/packages/certs.scm b/gnu/packages/certs.scm
index 7f4dca5f56..0cb20467ab 100644
--- a/gnu/packages/certs.scm
+++ b/gnu/packages/certs.scm
@@ -76,7 +76,7 @@
 (define-public nss-certs
   (package
     (name "nss-certs")
-    (version "3.52.1")
+    (version "3.57")
     (source (origin
               (method url-fetch)
               (uri (let ((version-with-underscores
@@ -87,7 +87,7 @@
                       "nss-" version ".tar.gz")))
               (sha256
                (base32
-                "0y4jb9095f7bbgw7d7kvzm4c3g4p5i6y68fwhb8wlkpb7b1imj5w"))))
+                "10n3pncg6k81ikjz12la147rppwqn57bkrdl9gb820w6pq0nra2m"))))
     (build-system gnu-build-system)
     (outputs '("out"))
     (native-inputs
diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm
index 8aa64e2ba4..d9a1fb3acf 100644
--- a/gnu/packages/check.scm
+++ b/gnu/packages/check.scm
@@ -7,7 +7,7 @@
 ;;; Copyright © 2015, 2017 Cyril Roelandt <tipecaml@gmail.com>
 ;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
 ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
-;;; Copyright © 2015, 2016, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2015, 2016, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2016 Christopher Allan Webber <cwebber@dustycloud.org>
 ;;; Copyright © 2016, 2017 Danny Milosavljevic <dannym+a@scratchpost.org>
@@ -35,6 +35,7 @@
 ;;; Copyright © 2020 Josh Marshall <joshua.r.marshall.1991@gmail.com>
 ;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
 ;;; Copyright © 2020 Tanguy Le Carrour <tanguy@bioneland.org>
+;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -76,15 +77,67 @@
   #:use-module (guix download)
   #:use-module (guix git-download)
   #: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 go)
+  #:use-module (guix build-system meson)
   #:use-module (guix build-system python)
-  #:use-module (guix build-system trivial))
+  #:use-module (guix build-system trivial)
+  #:use-module (srfi srfi-1))
+
+(define-public pedansee
+  (package
+    (name "pedansee")
+    (version "0.0.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://www.flyn.org/projects/"
+                       name "/" name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0lsg791x6n95pxg6vif8qfc46nqcamhjq3g0dl5xqf6imy7n3acd"))))
+    (build-system glib-or-gtk-build-system)
+    (native-inputs
+     `(("clang" ,clang)
+       ("pkg-config" ,pkg-config)
+       ("python" ,python-wrapper)))
+    (inputs
+     `(("glib" ,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
+in the form of functions which walk each source file’s syntax tree.  You can
+modify some aspects of this style through the use of regular expressions.")
+    (home-page "https://www.flyn.org/projects/pedansee/")
+    (license license:gpl3+)))
+
+(define-public mutest
+  (package
+    (name "mutest")
+    (version "0.0.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/ebassi/mutest")
+         (commit "e6246c9")))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0gdqwq6fvk06wld4rhnw5752hahrvhd69zrci045x25rwx90x26q"))))
+    (build-system meson-build-system)
+    (synopsis "Small C testing library")
+    (description "Mutest aims to be a small unit testing library for C projects,
+with an API heavily modelled on high level Behavior-Driver Development frameworks
+like Jasmine or Mocha.")
+    (home-page "https://ebassi.github.io/mutest/mutest.md.html")
+    (license license:expat)))
 
 (define-public check
   (package
     (name "check")
-    (version "0.14.0")
+    (version "0.15.2")
     (source
      (origin
       (method url-fetch)
@@ -92,7 +145,7 @@
                           version "/check-" version ".tar.gz"))
       (sha256
        (base32
-        "02zkfiyklckmivrfvdsrlzvzphkdsgjrz3igncw05dv5pshhq3xx"))))
+        "02m25y9m46pb6n46s51av62kpd936lkfv3b13kfpckgvmh5lxpm8"))))
     (build-system gnu-build-system)
     (home-page "https://libcheck.github.io/check/")
     (synopsis "Unit test framework for C")
@@ -105,7 +158,19 @@ faults or other signals.  The output from unit tests can be used within
 source code editors and IDEs.")
     (license license:lgpl2.1+)))
 
-;; Some packages require this older version.  Removed once no longer needed.
+;; Some packages require older versions.  Removed once no longer needed.
+(define-public check-0.14
+  (package
+    (inherit check)
+    (version "0.14.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://github.com/libcheck/check/releases"
+                                  "/download/" version "/check-" version ".tar.gz"))
+              (sha256
+               (base32
+                "02zkfiyklckmivrfvdsrlzvzphkdsgjrz3igncw05dv5pshhq3xx"))))))
+
 (define-public check-0.12
   (package
    (inherit check)
@@ -201,14 +266,14 @@ with a flexible variety of user interfaces.")
 (define-public cppunit
   (package
     (name "cppunit")
-    (version "1.14.0")
+    (version "1.15.1")
     (source (origin
              (method url-fetch)
               (uri (string-append "http://dev-www.libreoffice.org/src/"
                                   name "-" version ".tar.gz"))
              (sha256
               (base32
-               "1027cyfx5gsjkdkaf6c2wnjh68882grw8n672018cj3vs9lrhmix"))))
+               "19qpqzy66bq76wcyadmi3zahk5v1ll2kig1nvg96zx9padkcdic9"))))
     ;; Explicitly link with libdl. This is expected to be done by packages
     ;; relying on cppunit for their tests. However, not all of them do.
     ;; If we added the linker flag to such packages, we would pollute all
@@ -223,6 +288,55 @@ unit testing.  Test output is in XML for automatic testing and GUI based for
 supervised tests.")
     (license license:lgpl2.1))) ; no copyright notices. LGPL2.1 is in the tarball
 
+(define-public shunit2
+  (package
+    (name "shunit2")
+    (version "2.1.8")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/kward/shunit2")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "08vs0jjl3pfh100sjlw31x4638xj7fghr0j2g1zfikba8n1f9491"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (delete 'configure)    ; no configure script
+         (delete 'build)
+         (add-after 'patch-source-shebangs 'patch-more-shebangs
+           (lambda _
+             (substitute* "shunit2"
+               (("#! /bin/sh") (string-append "#! " (which "sh")))
+               (("/usr/bin/od") (which "od")))
+             (substitute* "test_runner"
+               (("/bin/sh") (which "sh"))
+               (("/bin/bash") (which "bash")))
+             #t))
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               ;; This test is buggy in the build container.
+               (delete-file "shunit2_misc_test.sh")
+               (invoke "sh" "test_runner"))
+             #t))
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (install-file "shunit2"
+                           (string-append (assoc-ref outputs "out")
+                                          "/bin"))
+             #t)))))
+    (home-page "https://github.com/kward/shunit2")
+    (synopsis "@code{xUnit} based unit testing for Unix shell scripts")
+    (description "@code{shUnit2} was originally developed to provide a
+consistent testing solution for @code{log4sh}, a shell based logging framework
+similar to @code{log4j}.  It is designed to work in a similar manner to JUnit,
+PyUnit and others.")
+    (license license:asl2.0)))
+
 ;; When dependent packages upgraded to use newer version of catch, this one should
 ;; be removed.
 (define-public catch-framework
@@ -286,7 +400,7 @@ a multi-paradigm automated test framework for C++ and Objective-C.")
 (define-public catch-framework2
   (package
     (name "catch2")
-    (version "2.13.0")
+    (version "2.13.2")
     (home-page "https://github.com/catchorg/Catch2")
     (source (origin
               (method git-fetch)
@@ -296,7 +410,7 @@ a multi-paradigm automated test framework for C++ and Objective-C.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0i4w0c9280a5fyi00mvvf13wlnfzyifr487n1iyr30zvvj5s5f1h"))))
+                "100r0kmra8jmra2hv92lzvwcmphpaiccwvq3lpdsa5b7hailhach"))))
     (build-system cmake-build-system)
     (inputs
      `(("python" ,python-wrapper)))
@@ -377,7 +491,7 @@ format.")
 (define-public cppcheck
   (package
     (name "cppcheck")
-    (version "1.90")
+    (version "2.3")
     (source (origin
       (method git-fetch)
       (uri (git-reference
@@ -385,7 +499,7 @@ format.")
              (commit version)))
       (file-name (git-file-name name version))
       (sha256
-       (base32 "0h7ir2x0k005fm586dxmaphgv5cyz25k3k4sh02p7zb78gzx398h"))))
+       (base32 "03ic5mig3ryzkf85r95ryagf84s7y5nd6sqr915l3zj30apnifvz"))))
     (build-system cmake-build-system)
     (arguments
      '(#:configure-flags '("-DBUILD_TESTS=ON")))
@@ -446,7 +560,7 @@ and it supports a very flexible form of test discovery.")
 (define-public doctest
   (package
     (name "doctest")
-    (version "2.4.0")
+    (version "2.4.4")
     (home-page "https://github.com/onqtam/doctest")
     (source (origin
               (method git-fetch)
@@ -454,7 +568,7 @@ and it supports a very flexible form of test discovery.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1yi95saqv8qb3ix6w8d7ffvs7qbwvqmq6wblckhxhicxxdxk85cd"))))
+                "0xldd6cr1w3bn33rdb7yc6p57w143cgnjb48ig1b99iwvvkw599n"))))
     (build-system cmake-build-system)
     (synopsis "C++ test framework")
     (description
@@ -868,18 +982,57 @@ and many external plugins.")
     (license license:expat)
     (properties `((python2-variant . ,(delay python2-pytest))))))
 
+(define-public python-pytest-6
+  (package
+    (inherit (strip-python2-variant python-pytest))
+    (version "6.1.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "pytest" version))
+       (sha256
+        (base32
+         "0gl2sdm322vzmsh5k4f8kj9raiq2y7kdinnca4m45ifvii5fk9y0"))))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (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.
+                          " not test_argcomplete"
+                          ;; These test do not honor the isatty detection and
+                          ;; fail.
+                          " and not test_code_highlight"
+                          " and not test_color_yes"))
+                 (format #t "test suite not run~%"))
+             #t)))))
+    (propagated-inputs
+     (append (alist-delete "python-py"
+                           (package-propagated-inputs python-pytest))
+             `(("python-py" ,python-py-next))))
+    (native-inputs
+     (append (alist-delete "python-pytest"
+                           (package-native-inputs python-pytest))
+             `(("python-pytest" ,python-pytest-6-bootstrap)
+               ("python-toml" ,python-toml)
+               ("python-iniconfig" ,python-iniconfig))))))
+
 ;; Pytest 4.x are the last versions that support Python 2.
 (define-public python2-pytest
   (package
     (inherit (strip-python2-variant python-pytest))
     (name "python2-pytest")
-    (version "4.6.9")
+    (version "4.6.11")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "pytest" version))
               (sha256
                (base32
-                "0fgkmpc31nzy97fxfrkqbzycigdwxwwmninx3qhkzp81migggs0r"))))
+                "0ls3pqr86xgif6bphsb6wrww9r2vc7p7a2naq8zcq8115wwq5yjh"))))
     (build-system python-build-system)
     (arguments
      `(#:python ,python-2
@@ -912,6 +1065,15 @@ and many external plugins.")
     (arguments `(#:tests? #f))
     (properties `((python2-variant . ,(delay python2-pytest-bootstrap))))))
 
+(define-public python-pytest-6-bootstrap
+  (package
+    (inherit (strip-python2-variant python-pytest-6))
+    (name "python-pytest-bootstrap")
+    (arguments `(#:tests? #f))
+    (native-inputs
+     `(("python-setuptools-scm" ,python-setuptools-scm)
+       ("python-toml" ,python-toml)))))
+
 (define-public python2-pytest-bootstrap
   (hidden-package
    (package/inherit
@@ -1085,14 +1247,14 @@ same arguments.")
 (define-public python-pytest-xdist
   (package
     (name "python-pytest-xdist")
-    (version "1.25.0")
+    (version "2.1.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "pytest-xdist" version))
        (sha256
         (base32
-         "1d812apvcmshh2l8f38spqwb3bpp0x43yy7lyfpxxzc99h4r7y4n"))
+         "0wh6pn66nncfs6ay0n863bgyriwsgppn8flx5l7551j1lbqkinc2"))
        (modules '((guix build utils)))
        (snippet
         '(begin
@@ -1364,14 +1526,14 @@ use of resources by test cases.")))
 (define-public python-subunit-bootstrap
   (package
     (name "python-subunit-bootstrap")
-    (version "1.3.0")
+    (version "1.4.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "python-subunit" version))
        (sha256
         (base32
-         "1fsw8rsn1s3nklx06mayrg5rn2zbky6wwjc5z07s7rf1wjzfs1wn"))))
+         "0j0ymmnc5nfxi1qzvy59j27viqca7l7xd0y9x29g7yr0h693j804"))))
     (build-system python-build-system)
     (propagated-inputs
      `(("python-extras" ,python-extras)
@@ -1511,14 +1673,14 @@ have failed since the last commit or what tests are currently failing.")))
 (define-public python-coverage
   (package
     (name "python-coverage")
-    (version "5.0.3")
+    (version "5.2.1")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "coverage" version))
        (sha256
         (base32
-         "1vrg8panqw79pswg52ygbrff3wdnxarrd9qz6c64ah0c4h2cmbvp"))))
+         "16z8i18msgs8k74n73dj9x49wzkl0vk4vq8k5pl1bsj70y7b4k53"))))
     (build-system python-build-system)
     (arguments
      ;; FIXME: 95 tests failed, 539 passed, 6 skipped, 2 errors.
@@ -2630,7 +2792,7 @@ provides a simple way to achieve this.")
 (define-public umockdev
   (package
     (name "umockdev")
-    (version "0.14.2")
+    (version "0.14.4")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/martinpitt/umockdev/"
@@ -2638,7 +2800,7 @@ provides a simple way to achieve this.")
                                   "umockdev-" version ".tar.xz"))
               (sha256
                (base32
-                "1nh6xsssmssmk0lxp9c9dmq3wzlpbpkg77nmmd09csbpybibgxfp"))))
+                "0xmi24ckpps32k7hc139psgbsnsf4g106sv4l9m445m46amkxggd"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
diff --git a/gnu/packages/chez.scm b/gnu/packages/chez.scm
index b80421d3f7..eac556c4d0 100644
--- a/gnu/packages/chez.scm
+++ b/gnu/packages/chez.scm
@@ -3,6 +3,7 @@
 ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2017, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2019 Brett Gilio <brettg@gnu.org>
+;;; Copyright © 2020 Brendan Tildesley <mail@brendan.scot>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -42,29 +43,29 @@
   #:use-module (srfi srfi-1))
 
 (define nanopass
-  (let ((version "1.9"))
+  (let ((version "1.9.1"))
     (origin
       (method git-fetch)
       (uri (git-reference
             (url "https://github.com/nanopass/nanopass-framework-scheme")
             (commit (string-append "v" version))))
-      (sha256 (base32 "0lrngdna6w7v9vlp1a873hgwrwsz2p0pgkccswa4smzvdyhgfsri"))
+      (sha256 (base32 "1synadgaycca39jfx525975ss9y0lkl516sdrc62wrrllamm8n21"))
       (file-name (git-file-name "nanopass" version)))))
 
 (define stex
-  (let ((version "1.2.1"))
+  (let ((version "1.2.2"))
     (origin
       (method git-fetch)
       (uri (git-reference
             (url "https://github.com/dybvig/stex")
             (commit (string-append "v" version))))
-      (sha256 (base32 "1jiawhhqnsj42hzmlbq5xby3iarhf8vhiqs0kg1a0zg5jsn6cf8n"))
+      (sha256 (base32 "1q5i8pf4cdfjsj6r2k1rih7ljbfggyxdng2p2fvsgarzihpsin2i"))
       (file-name (git-file-name "stex" version)))))
 
 (define-public chez-scheme
   (package
     (name "chez-scheme")
-    (version "9.5.2")
+    (version "9.5.4")
     (source
      (origin
        (method git-fetch)
@@ -72,13 +73,15 @@
              (url "https://github.com/cisco/ChezScheme")
              (commit (string-append "v" version))))
        (sha256
-        (base32 "1hagrqdp649n2g0wq2a9gfnz7mjcjakkw7ziplbj3db412bb7kx5"))
+        (base32 "0prgn2z9l888j93ydxaf04ph424g0fi3a8w7f8m0b2r7fr1v7388"))
        (file-name (git-file-name name version))))
     (build-system gnu-build-system)
     (inputs
      `(("ncurses" ,ncurses)
        ("libuuid" ,util-linux "lib")
        ("libx11" ,libx11)
+       ("lz4" ,lz4)
+       ("lz4:static" ,lz4 "static")
        ("xorg-rgb" ,xorg-rgb)
        ("nanopass" ,nanopass)
        ("zlib" ,zlib)
@@ -118,7 +121,7 @@
              (let ((out (assoc-ref outputs "out"))
                    (nanopass (assoc-ref inputs "nanopass"))
                    (stex (assoc-ref inputs "stex"))
-                   (zlib (assoc-ref inputs "zlib"))
+                   (lz4-static (assoc-ref inputs "lz4:static"))
                    (zlib-static (assoc-ref inputs "zlib:static"))
                    (unpack (assoc-ref %standard-phases 'unpack))
                    (patch-source-shebangs
@@ -137,13 +140,6 @@
                ;; and manually patch the needed modules for compilation.
                (substitute* "configure"
                  (("! -f '") "-d '")) ; working around CURL.
-               (substitute* (find-files "./c" "Mf-[a-zA-Z0-9.]+")
-                 (("\\$\\{Kernel\\}: \\$\\{kernelobj\\} \\.\\./zlib/libz\\.a")
-                  "${Kernel}: ${kernelobj}")
-                 (("ld ([-a-zA-Z0-9_${} ]+) \\.\\./zlib/libz\\.a" all args)
-                  (string-append "ld " args " " zlib-static "/lib/libz.a"))
-                 (("\\(cd \\.\\./zlib; ([-a-zA-Z0-9=./ ]+))")
-                  (which "true")))
                (substitute* (find-files "mats" "Mf-.*")
                  (("^[[:space:]]+(cc ) *") "\tgcc "))
                (substitute*
@@ -155,16 +151,21 @@
                                     "|stex\\.stex"
                                     "|newrelease"
                                     "|workarea"
+                                    "|unix\\.ms"
+                                    "|^6\\.ms"
                                     ;;"|[a-zA-Z0-9.]+\\.ms" ; guile can't read
                                     ")"))
                  (("/bin/rm") (which "rm"))
                  (("/bin/ln") (which "ln"))
-                 (("/bin/cp") (which "cp")))
+                 (("/bin/cp") (which "cp"))
+                 (("/bin/echo") (which "echo")))
                (substitute* "makefiles/installsh"
                  (("/bin/true") (which "true")))
                (substitute* "stex/Makefile"
                  (("PREFIX=/usr") (string-append "PREFIX=" out)))
                (invoke "./configure" "--threads"
+                       (string-append "ZLIB=" zlib-static "/lib/libz.a")
+                       (string-append "LZ4=" lz4-static "/lib/liblz4.a")
                        (string-append "--installprefix=" out)))))
          ;; Installation of the documentation requires a running "chez".
          (add-after 'install 'install-doc
@@ -240,7 +241,9 @@ and 32-bit PowerPC architectures.")
      `(("chez-scheme" ,chez-scheme)))
     (arguments
      `(#:make-flags (let ((out (assoc-ref %outputs "out")))
-                      (list (string-append "PREFIX=" out)))
+                      (list (string-append "PREFIX=" out)
+                            "CHEZ=chez-scheme --libdirs ./"
+                            (string-append "chezversion=" ,(package-version chez-scheme))))
        #:test-target "test"
        #:phases (modify-phases %standard-phases
                   (delete 'configure))))
@@ -414,9 +417,13 @@ Chez Scheme.")
 ;; files.
 (define (chez-make-flags name version)
   `(let ((out (assoc-ref %outputs "out")))
-     (list (string-append "PREFIX=" out)
-           (string-append "DOCDIR=" out "/share/doc/"
-                          ,name "-" ,version))))
+     (list
+      ;; Set 'chezversion' so that libraries are installed in
+      ;; 'lib/csvX.Y.Z-site' like Chez's 'native-search-paths' expects.
+      (string-append "chezversion=" ,(package-version chez-scheme))
+      (string-append "PREFIX=" out)
+      (string-append "DOCDIR=" out "/share/doc/"
+                     ,name "-" ,version))))
 
 (define-public chez-matchable
   (package
diff --git a/gnu/packages/chicken.scm b/gnu/packages/chicken.scm
index 7b86a58012..866ba8a062 100644
--- a/gnu/packages/chicken.scm
+++ b/gnu/packages/chicken.scm
@@ -1,6 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2020 Ekaitz Zarraga <ekaitz@elenq.tech>
 ;;; Copyright © 2020 Evan Hanson <evhan@foldling.org>
+;;; Copyright © 2020 raingloom <raingloom@riseup.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -20,11 +21,14 @@
 (define-module (gnu packages chicken)
   #:use-module (gnu packages)
   #:use-module (guix packages)
+  #:use-module (guix build-system chicken)
   #:use-module (guix build-system gnu)
   #:use-module (guix download)
+  #:use-module (guix git-download)
+  #:use-module (guix svn-download)
   #:use-module (gnu packages commencement)
   #:use-module ((guix licenses)
-                #:select (bsd-3)))
+                #:prefix license:))
 
 (define-public chicken
   (package
@@ -59,11 +63,221 @@
 
        ;; Parallel builds are not supported, as noted in README.
        #:parallel-build? #f))
-    (propagated-inputs `(("gcc-toolchain", gcc-toolchain)))
+    (native-search-paths
+     (list (search-path-specification
+            (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)))
     (home-page "https://www.call-cc.org/")
     (synopsis "R5RS Scheme implementation that compiles native code via C")
     (description
      "CHICKEN is a compiler for the Scheme programming language.  CHICKEN
 produces portable and efficient C, supports almost all of the R5RS Scheme
 language standard, and includes many enhancements and extensions.")
-    (license bsd-3)))
+    (license license:bsd-3)))
+
+(define-public chicken-srfi-1
+  (package
+    (name "chicken-srfi-1")
+    (version "0.5.1")
+    (source
+     (origin
+       (method svn-fetch)
+       (uri (svn-reference
+             (url (string-append
+                   "https://code.call-cc.org/svn/chicken-eggs/"
+                   "release/5/srfi-1/tags/"
+                   version))
+             (revision 39055)
+             (user-name "anonymous")
+             (password "")))
+       (file-name (string-append "chicken-srfi-1" version "-checkout"))
+       (sha256
+        (base32
+         "02940zsjrmn7c34rnp1rllm2nahh9jvszlzrw8ak4pf31q09cmq1"))))
+    (build-system chicken-build-system)
+    (arguments '(#:egg-name "srfi-1"))
+    (inputs
+     `(("chicken-test" ,chicken-test)))
+    (home-page "https://wiki.call-cc.org/eggref/5/srfi-1")
+    (synopsis "SRFI-1 list library")
+    (description
+     "The list library defined in
+@uref{https://srfi.schemers.org/srfi-1/srfi-1.html, SRFI-1} contains a lot of
+useful list processing procedures for construction, examining, destructuring
+and manipulating lists and pairs.")
+    (license license:bsd-3)))
+
+(define-public chicken-srfi-14
+  (package
+    (name "chicken-srfi-14")
+    (version "0.2.1")
+    (source
+     (origin
+       (method svn-fetch)
+       (uri (svn-reference
+             (url (string-append "https://code.call-cc.org/svn/chicken-eggs/"
+                                 "release/5/srfi-14/tags/" version))
+             (revision 39057)
+             (user-name "anonymous")
+             (password "")))
+       (file-name (string-append "chicken-srfi-14-" version "-checkout"))
+       (sha256
+        (base32
+         "0wjsqfwawh9bx6vvii1gwag166bxkflc0ib374fbws14914g2ac1"))))
+    (build-system chicken-build-system)
+    (arguments '(#:egg-name "srfi-14"))
+    (home-page "https://wiki.call-cc.org/eggref/5/srfi-14")
+    (synopsis "Character set library")
+    (description
+     "Character sets can be created, extended, tested for the membership of
+a characters and be compared to other character sets")
+    (license (license:non-copyleft
+              "http://wiki.call-cc.org/eggref/5/srfi-14#license"))))
+
+(define-public chicken-srfi-69
+  (package
+    (name "chicken-srfi-69")
+    (version "0.4.1")
+    (source
+     (origin
+       (method svn-fetch)
+       (uri (svn-reference
+             (url (string-append "https://code.call-cc.org/svn/chicken-eggs/"
+                                 "release/5/srfi-69/tags/"
+                                 version))
+             (revision 39057)
+             (user-name "anonymous")
+             (password "")))
+       (file-name (string-append "chicken-srfi-69-" version "-checkout"))
+       (sha256
+        (base32
+         "1z0m9vmg9bj9z0a941pls6igvg8nmhq4mj5psjjidbp0fac572mp"))))
+    (arguments '(#:egg-name "srfi-69"))
+    (build-system chicken-build-system)
+    (home-page "https://wiki.call-cc.org/eggref/5/srfi-69")
+    (synopsis "Implementation of SRFI 69 with SRFI 90 extensions")
+    (description
+     "This package provides an implementation of
+@uref{https://srfi.schemers.org/srfi-69/srfi-69.html, SRFI-69 hash tables} for
+CHICKEN Scheme, along with
+@uref{https://srfi.schemers.org/srfi-90/srfi-90.html, SRFI-90} extensions.")
+    (license license:bsd-3)))
+
+(define-public chicken-agrep
+  (package
+    (name "chicken-agrep")
+    (version "1.7")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/iraikov/chicken-agrep")
+             (commit version)))
+       (file-name (string-append "chicken-agrep-" version "-checkout"))
+       (sha256
+        (base32
+         "0z05x7f154n9bgmainrsmncf5i6dil43r9ymr3rdgwbg4wnxmz4s"))))
+    ;; 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)))
+    (inputs
+     `(("chicken-test" ,chicken-test)))
+    (build-system chicken-build-system)
+    (arguments '(#:egg-name "agrep"))
+    (synopsis "Approximate string matching library")
+    (home-page "https://wiki.call-cc.org/eggref/5/agrep")
+    (description
+     "This library implements the Wu-Manber algorithm for approximate string
+searching with errors, popularized by the agrep Unix command and the glimpse
+file indexing tool.")
+    (license license:gpl3+)))
+
+(define-public chicken-datatype
+  (package
+    (name "chicken-datatype")
+    (version "1.6")
+    (source
+     (origin
+       (method svn-fetch)
+       (uri (svn-reference
+             (url (string-append "https://code.call-cc.org/svn/chicken-eggs/"
+                                 "release/5/datatype/tags/" version))
+             (revision 39266)
+             (user-name "anonymous")
+             (password "")))
+       (file-name (string-append "chicken-datatype-" version "-checkout"))
+       (sha256
+        (base32
+         "1a58q8ypjkjz6wdv25247wixds4179239d36nnvsfn6gp70s9jfq"))))
+    (build-system chicken-build-system)
+    (arguments '(#:egg-name "datatype"))
+    (inputs
+     `(("chicken-srfi-1" ,chicken-srfi-1)
+       ("chicken-test" ,chicken-test)))
+    (home-page "https://wiki.call-cc.org/eggref/5/datatype")
+    (synopsis "Facility for creating and using variant records")
+    (description
+     "This CHICKEN Scheme library provides a facility for creating and using
+variant records, as described in the book @i{Essentials of Programming
+Languages} by Friedman, Wand, and Haynes.")
+    (license license:bsd-3)))
+
+(define-public chicken-iset
+  (package
+    (name "chicken-iset")
+    (version "2.2")
+    (source
+     (origin
+       (method svn-fetch)
+       (uri (svn-reference
+             (url (string-append "https://code.call-cc.org/svn/chicken-eggs/"
+                                 "release/5/iset/tags/" version))
+             (revision 39057)
+             (user-name "anonymous")
+             (password "")))
+       (file-name (string-append "chicken-iset-" version "-checkout"))
+       (sha256
+        (base32
+         "0gz50n5i561n5sk9prry0lrxz6bfrq9if5bclaq6a0f7lzinhnzb"))))
+    (inputs
+     `(("chicken-test" ,chicken-test)))
+    (build-system chicken-build-system)
+    (arguments '(#:egg-name "iset"))
+    (synopsis "Integer set library")
+    (home-page "https://wiki.call-cc.org/eggref/5/iset")
+    (description
+     "This ``integer set'' CHICKEN Scheme library implements bit vectors.
+Bit-vectors provide an abstract interface to bitwise operations typically done
+with integers.")
+    (license license:bsd-3)))
+
+(define-public chicken-test
+  (package
+    (name "chicken-test")
+    (version "1.1")
+    (source
+     (origin
+       (method svn-fetch)
+       (uri (svn-reference
+             (url (string-append "https://code.call-cc.org/svn/chicken-eggs/"
+                                 "release/5/test/tags/" version))
+             (revision 39263)
+             (user-name "anonymous")
+             (password "")))
+       (file-name (string-append "chicken-test-" version "-checkout"))
+       (sha256
+        (base32
+         "14i91cxsn6hjkx6kqf7i9syck73cw71jik61jmhg87vpxx5kfnzx"))))
+    (build-system chicken-build-system)
+    (arguments '(#:egg-name "test"))
+    (home-page "https://wiki.call-cc.org/eggref/5/test")
+    (synopsis "Yet another testing utility")
+    (description
+     "This package provides a simple testing utility for CHICKEN Scheme.")
+    (license license:bsd-3)))
+
diff --git a/gnu/packages/chromium.scm b/gnu/packages/chromium.scm
index 3b650288d7..a994b387bb 100644
--- a/gnu/packages/chromium.scm
+++ b/gnu/packages/chromium.scm
@@ -27,9 +27,11 @@
   #:use-module (guix git-download)
   #:use-module (guix utils)
   #:use-module (guix build-system gnu)
+  #:use-module (guix build-system trivial)
   #:use-module (gnu packages)
   #:use-module (gnu packages assembly)
   #:use-module (gnu packages base)
+  #:use-module (gnu packages bash)
   #:use-module (gnu packages bison)
   #:use-module (gnu packages build-tools)
   #:use-module (gnu packages compression)
@@ -83,6 +85,9 @@
     "base/third_party/symbolize" ;BSD-3
     "base/third_party/xdg_mime" ;LGPL2.0+ or Academic 2.0
     "base/third_party/xdg_user_dirs" ;Expat
+    ;; XXX: Chromium requires a newer C++ standard library.  Remove this when
+    ;; the default GCC is 9 or later.
+    "buildtools/third_party/libc++" ;ASL2.0, with LLVM exceptions
     "chrome/third_party/mozilla_security_manager" ;MPL-1.1/GPL2+/LGPL2.1+
     "courgette/third_party/bsdiff" ;BSD-2, BSD protection license
     "courgette/third_party/divsufsort" ;Expat
@@ -111,7 +116,6 @@
     "third_party/boringssl/src/third_party/fiat" ;Expat
     "third_party/breakpad" ;BSD-3
     "third_party/brotli" ;Expat
-    "third_party/cacheinvalidation" ;ASL2.0
     "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
@@ -139,11 +143,18 @@
     "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
+    "third_party/devtools-frontend/src/front_end/third_party/axe-core" ;MPL2.0
+    "third_party/devtools-frontend/src/front_end/third_party/chromium" ;BSD-3
     "third_party/devtools-frontend/src/front_end/third_party/codemirror" ;Expat
     "third_party/devtools-frontend/src/front_end/third_party/fabricjs" ;Expat
+    "third_party/devtools-frontend/src/front_end/third_party/i18n" ;ASL2.0
+    "third_party/devtools-frontend/src/front_end/third_party/intl-messageformat" ;BSD-3
     "third_party/devtools-frontend/src/front_end/third_party/lighthouse" ;ASL2.0
+    "third_party/devtools-frontend/src/front_end/third_party/lit-html" ;BSD-3
+    "third_party/devtools-frontend/src/front_end/third_party/lodash-isequal" ;Expat
+    "third_party/devtools-frontend/src/front_end/third_party/marked" ;Expat, BSD-3
+    "third_party/devtools-frontend/src/front_end/third_party/puppeteer" ;ASL2.0
     "third_party/devtools-frontend/src/front_end/third_party/wasmparser" ;ASL2.0
-    "third_party/devtools-frontend/src/third_party/axe-core" ;MPL2.0
     "third_party/devtools-frontend/src/third_party/pyjson5" ;ASL2.0
     "third_party/devtools-frontend/src/third_party/typescript" ;ASL2.0
     "third_party/dom_distiller_js" ;BSD-3
@@ -159,6 +170,8 @@
     "third_party/iccjpeg" ;IJG
     "third_party/inspector_protocol" ;BSD-3
     "third_party/jinja2" ;BSD-3
+    ;; XXX: Unbundle this when switching back to libstdc++.
+    "third_party/jsoncpp" ;Public Domain or Expat
     "third_party/jstemplate" ;ASL2.0
     "third_party/khronos" ;Expat, SGI
     "third_party/leveldatabase" ;BSD-3
@@ -175,6 +188,11 @@
     "third_party/libsrtp" ;BSD-3
     "third_party/libsync" ;ASL2.0
     "third_party/libudev" ;LGPL2.1+
+
+    ;; FIXME: build/linux/unbundle/libvpx.gn does not work for all users.
+    "third_party/libvpx" ;BSD-3
+    "third_party/libvpx/source/libvpx/third_party/x86inc" ;Expat
+
     "third_party/libwebm" ;BSD-3
     "third_party/libxml/chromium" ;BSD-3
     "third_party/libyuv" ;BSD-3
@@ -186,6 +204,7 @@
     "third_party/metrics_proto" ;BSD-3
     "third_party/modp_b64" ;BSD-3
     "third_party/nasm" ;BSD-2
+    "third_party/nearby" ;ASL2.0
     "third_party/node" ;Expat
     "third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2" ;BSD-2
     "third_party/one_euro_filter" ;BSD-3
@@ -203,14 +222,21 @@
     "third_party/pffft" ;the "FFTPACK" license, similar to BSD-3
     "third_party/ply" ;BSD-3
     "third_party/polymer" ;BSD-3
+    "third_party/private_membership" ;ASL2.0
     "third_party/private-join-and-compute" ;ASL2.0
     "third_party/protobuf" ;BSD-3
     "third_party/protobuf/third_party/six" ;Expat
     "third_party/pyjson5" ;ASL2.0
     "third_party/qcms" ;Expat
+    ;; XXX: System re2 cannot be used when Chromium uses libc++ because the re2
+    ;; ABI relies on libstdc++ internals.  See build/linux/unbundle/re2.gn.
+    "third_party/re2" ;BSD-3
     "third_party/rnnoise" ;BSD-3
     "third_party/s2cellid" ;ASL2.0
     "third_party/schema_org" ;CC-BY-SA3.0
+    "third_party/securemessage" ;ASL2.0
+    "third_party/shaka-player" ;ASL2.0
+    "third_party/shell-encryption" ;ASL2.0
     "third_party/skia" ;BSD-3
     "third_party/skia/include/third_party/skcms" ;BSD-3
     "third_party/skia/third_party/skcms" ;BSD-3
@@ -222,15 +248,18 @@
     "third_party/sqlite" ;Public domain
     "third_party/swiftshader" ;ASL2.0
     "third_party/swiftshader/third_party/astc-encoder" ;ASL2.0
-    "third_party/swiftshader/third_party/llvm-7.0" ;NCSA
+    "third_party/swiftshader/third_party/llvm-10.0" ;ASL2.0, with LLVM exception
     "third_party/swiftshader/third_party/llvm-subzero" ;NCSA
     "third_party/swiftshader/third_party/marl" ;ASL2.0
     "third_party/swiftshader/third_party/subzero" ;NCSA
     "third_party/swiftshader/third_party/SPIRV-Headers" ;X11-style
     "third_party/tcmalloc/chromium" ;BSD-3
+    "third_party/ukey2" ;ASL2.0
     "third_party/usb_ids" ;BSD-3
     "third_party/usrsctp" ;BSD-2
     "third_party/vulkan_memory_allocator" ;Expat
+    "third_party/wayland/protocol" ;Expat
+    "third_party/wayland/stubs" ;BSD-3, Expat
     "third_party/wayland/wayland_scanner_wrapper.py" ;BSD-3
     "third_party/wayland-protocols" ;Expat
     "third_party/web-animations-js" ;ASL2.0
@@ -246,8 +275,10 @@
     "third_party/widevine/cdm/widevine_cdm_version.h" ;BSD-3
     "third_party/widevine/cdm/widevine_cdm_common.h" ;BSD-3
     "third_party/woff2" ;ASL2.0
+    "third_party/xcbproto" ;X11
     "third_party/xdg-utils" ;Expat
     "third_party/zlib/google" ;BSD-3
+    "third_party/zxcvbn-cpp" ;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
@@ -258,27 +289,9 @@
 (define %blacklisted-files
   ;; 'third_party/blink/perf_tests/resources/svg/HarveyRayner.svg' carries a
   ;; nonfree license according to LICENSES in the same directory.  As we don't
-  ;; run the Blink performance tests, just remove everything to save ~24MiB.
+  ;; run the Blink performance tests, just remove everything to save ~70MiB.
   '("third_party/blink/perf_tests"))
 
-(define (gentoo-patch name revision hash)
-  (origin
-    (method url-fetch)
-    (uri (string-append "https://gitweb.gentoo.org/repo/gentoo.git/plain"
-                        "/www-client/chromium/files/" name "?id=" revision))
-    (file-name (string-append "ungoogled-" name))
-    (sha256 (base32 hash))))
-
-;; This repository contains libstdc++ compatibility patches for Chromium.
-(define (chromium-gcc-patchset commit hash)
-  (origin
-    (method git-fetch)
-    (uri (git-reference
-          (url "https://github.com/stha09/chromium-patches")
-          (commit commit)))
-    (file-name (git-file-name "chromium-gcc-patches" commit))
-    (sha256 (base32 hash))))
-
 (define (debian-patch name revision hash)
   (origin
     (method url-fetch)
@@ -289,39 +302,16 @@
                   (string-append "ungoogled-chromium-" category "-" name))))
     (sha256 (base32 hash))))
 
-(define %ungoogled-revision "cc3e311f33519a5ba961ad1f1dc19507ce98b0d2")
-(define %debian-revision "debian/83.0.4103.116-3")
-(define %gentoo-revision "f3f649046d31ebdbc8c4a302b2384504eff78027")
-
-(define %gentoo-patches
-  ;; This patch is necessary for compatibility with FFmpeg 4.3.
-  (list (gentoo-patch "chromium-84-mediaalloc.patch" %gentoo-revision
-                      "0snxdc4nb8ykzncz62vpsl8hgxpy24m17mycx67i2gckmrpslzzv")))
-
-(define %chromium-gcc-patches
-  (chromium-gcc-patchset
-   "chromium-84-patchset-3"
-   "0l05gx3pn703n47anjwsl5sjcqw8kaxmivf7llax97kj3k6d127v"))
+(define %chromium-version "87.0.4280.141")
+(define %ungoogled-revision "483a1bae4eee601c7d0a4a63499380e40e4f8a44")
+(define %debian-revision "debian/84.0.4147.105-1")
 
 (define %debian-patches
   (list (debian-patch "system/zlib.patch" %debian-revision
-                      "0bp2vh1cgmwjrn1zkpphkd3bs662s23xwdhy3abm9cfjvwrj117n")
-        (debian-patch "system/jsoncpp.patch" %debian-revision
-                      "0d95brl4a5y5w142yd0rvf59z513h7chsz0vnm034d6lqf22ahwf")
+                      "09vqgs37w9ycc7par14wa7rnvmg9bm0z9pqg6fyl3iqvpghyjyr4")
         (debian-patch "system/openjpeg.patch" %debian-revision
                       "0zd6v5njx1pc7i0y6mslxvpx5j4cq01mmyx55qcqx8qzkm0gm48j")))
 
-(define %arch-patches
-  (list (origin
-          (method url-fetch)
-          (uri "https://git.archlinux.org/svntogit/packages.git/plain/trunk/\
-chromium-fix-vaapi-on-intel.patch?h=packages/chromium\
-&id=93b5b90621b4827084288197c6e0e09b987b372a")
-          (file-name "ungoogled-chromium-fix-vaapi-on-intel.patch")
-          (sha256
-           (base32
-            "16jbjjf4d9jp52rdrrxx5vm69nx3w0qrijgjpwapnmcif13z55g4")))))
-
 (define %ungoogled-origin
   (origin
     (method git-fetch)
@@ -331,7 +321,15 @@ chromium-fix-vaapi-on-intel.patch?h=packages/chromium\
                               (string-take %ungoogled-revision 7)))
     (sha256
      (base32
-      "168mmpgmp4m24lcwbnwa5y8z2qrrr7bjcdrb1vvx64zswksb25hd"))))
+      "0r09d27jrdz01rcwifchbq7ksh2bac15h8svq18jx426mr56dzla"))))
+
+(define %guix-patches
+  (list (local-file
+         (assume-valid-file-name
+          (search-patch "ungoogled-chromium-system-nspr.patch")))
+        (local-file
+         (assume-valid-file-name
+          (search-patch "ungoogled-chromium-extension-search-path.patch")))))
 
 ;; This is a source 'snippet' that does the following:
 ;; *) Applies various patches for unbundling purposes and libstdc++ compatibility.
@@ -354,20 +352,15 @@ chromium-fix-vaapi-on-intel.patch?h=packages/chromium\
           (for-each (lambda (patch)
                       (invoke "patch" "-p1" "--force" "--input"
                               patch "--no-backup-if-mismatch"))
-                    (append
-                     '#+%gentoo-patches '#+%debian-patches '#+%arch-patches
-                     (find-files #$%chromium-gcc-patches "\\.patch$")
-                     '#+(list (local-file
-                               (search-patch
-                                "ungoogled-chromium-system-nspr.patch")))))
+                    (append '#+%debian-patches '#+%guix-patches))
 
           (with-directory-excursion #+%ungoogled-origin
             (format #t "Ungooglifying...~%")
             (force-output)
             (invoke "python" "utils/prune_binaries.py" chromium-dir
                     "pruning.list")
-            (invoke "python" "utils/patches.py" "apply"
-                    chromium-dir "patches")
+            (invoke "python" "utils/patches.py" "apply" chromium-dir
+                    "patches")
             (invoke "python" "utils/domain_substitution.py" "apply" "-r"
                     "domain_regex.list" "-f" "domain_substitution.list"
                     "-c" "/tmp/domainscache.tar.gz" chromium-dir))
@@ -396,8 +389,8 @@ chromium-fix-vaapi-on-intel.patch?h=packages/chromium\
           (invoke "python" "build/linux/unbundle/replace_gn_files.py"
                   "--system-libraries" "ffmpeg" "flac" "fontconfig"
                   "freetype" "harfbuzz-ng" "icu" "libdrm" "libevent"
-                  "libjpeg" "libpng" "libvpx" "libwebp" "libxml"
-                  "libxslt" "openh264" "opus" "re2" "snappy" "zlib")
+                  "libjpeg" "libpng" "libwebp" "libxml" "libxslt"
+                  "openh264" "opus" "snappy" "zlib")
           #t))))
 
 (define opus+custom
@@ -412,16 +405,6 @@ chromium-fix-vaapi-on-intel.patch?h=packages/chromium\
         `(cons "--enable-custom-modes"
                ,flags))))))
 
-;; Chromium still has Python2-only code, so we need this special Python 2
-;; variant of xcb-proto.
-(define xcb-proto/python2
-  (package/inherit
-   xcb-proto
-   (name "python2-xcb-proto")
-   (native-inputs
-    `(("pkg-config" ,pkg-config)
-      ("python" ,python-2)))))
-
 ;; '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)
@@ -450,17 +433,17 @@ chromium-fix-vaapi-on-intel.patch?h=packages/chromium\
 (define-public ungoogled-chromium
   (package
     (name "ungoogled-chromium")
-    (version (string-append "84.0.4147.105-0."
+    (version (string-append %chromium-version "-0."
                             (string-take %ungoogled-revision 7)))
     (synopsis "Graphical web browser")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://commondatastorage.googleapis.com"
                                   "/chromium-browser-official/chromium-"
-                                  (car (string-split version #\-)) ".tar.xz"))
+                                  %chromium-version ".tar.xz"))
               (sha256
                (base32
-                "1b6cqnwx76pp4y5hvz3qm8lm1ayaxr5578k76164acr35bmypx6a"))
+                "0x9k809m36pfirnw2vnr9pk93nxdbgrvna0xf1rs3q91zkbr2x8l"))
               (modules '((guix build utils)))
               (snippet (force ungoogled-chromium-snippet))))
     (build-system gnu-build-system)
@@ -470,13 +453,11 @@ chromium-fix-vaapi-on-intel.patch?h=packages/chromium\
        #:validate-runpath? #f
        #:modules ((guix build gnu-build-system)
                   (guix build utils)
-                  (ice-9 ftw)
-                  (ice-9 regex)
                   (srfi srfi-26))
        #:configure-flags
        ;; See tools/gn/docs/cookbook.md and
        ;; https://www.chromium.org/developers/gn-build-configuration
-       ;; for usage.  Run "./gn args . --list" in the Release
+       ;; for usage.  Run "gn args . --list" in the Release
        ;; directory for an exhaustive list of supported flags.
        ;; (Note: The 'configure' phase will do that for you.)
        (list "is_debug=false"
@@ -484,9 +465,10 @@ chromium-fix-vaapi-on-intel.patch?h=packages/chromium\
              ;; a developer build.
              "is_official_build=true"
              (string-append "max_jobs_per_link="
-                            (number->string (parallel-job-count)))
+                            ;; Respect the default cap of 8 jobs.
+                            (number->string (min 8 (parallel-job-count))))
              "clang_use_chrome_plugins=false"
-             "use_custom_libcxx=false"
+             "chrome_pgo_phase=0"
              "use_sysroot=false"
              "goma_dir=\"\""
              "enable_nacl=false"
@@ -505,16 +487,13 @@ chromium-fix-vaapi-on-intel.patch?h=packages/chromium\
              "enable_vr=false"
              "enable_widevine=false"
              ;; Disable type-checking for the Web UI to avoid a Java dependency.
-             "closure_compile=false"
+             "enable_js_type_check=false"
 
              ;; Define a custom toolchain that simply looks up CC, AR and
              ;; friends from the environment.
              "custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
              "host_toolchain=\"//build/toolchain/linux/unbundle:default\""
 
-             (string-append "xcbproto_path=\""
-                            (assoc-ref %build-inputs "xcb-proto") "/share/xcb\"")
-
              ;; Prefer system libraries.
              "use_system_freetype=true"
              "use_system_harfbuzz=true"
@@ -523,6 +502,11 @@ chromium-fix-vaapi-on-intel.patch?h=packages/chromium\
              "use_system_libjpeg=true"
              "use_system_libopenjpeg2=true"
              "use_system_libpng=true"
+             "use_system_wayland_scanner=true"
+             (string-append "system_wayland_scanner_path=\""
+                            (assoc-ref %build-inputs "wayland-scanner")
+                            "/bin/wayland-scanner\"")
+
              "use_system_zlib=true"
              "use_gnome_keyring=false"  ;deprecated by libsecret
              "use_openh264=true"
@@ -546,17 +530,16 @@ chromium-fix-vaapi-on-intel.patch?h=packages/chromium\
 
              ;; WebRTC stuff.
              "rtc_use_h264=true"
+             "rtc_use_pipewire=true"
+             "rtc_link_pipewire=true"
              ;; Don't use bundled sources.
-             "rtc_build_json=false"
+             "rtc_build_json=true"      ;FIXME: libc++ std::string ABI difference
              "rtc_build_libevent=false"
              "rtc_build_libvpx=false"
              "rtc_build_opus=false"
              "rtc_build_ssl=false"
              "rtc_build_libsrtp=true"   ;FIXME: fails to find headers
              "rtc_build_usrsctp=true"   ;TODO: package this
-             (string-append "rtc_jsoncpp_root=\""
-                            (assoc-ref %build-inputs "jsoncpp")
-                            "/include/jsoncpp/json\"")
              (string-append "rtc_ssl_root=\""
                             (assoc-ref %build-inputs "openssl")
                             "/include/openssl\""))
@@ -564,12 +547,6 @@ chromium-fix-vaapi-on-intel.patch?h=packages/chromium\
        (modify-phases %standard-phases
          (add-after 'unpack 'patch-stuff
            (lambda _
-             ;; Fix build with newer re2.  Taken from:
-             ;; https://chromium-review.googlesource.com/c/chromium/src/+/2145261
-             (substitute* "components/autofill/core/browser/address_rewriter.cc"
-               (("options\\.set_utf8\\(true\\)")
-                "options.set_encoding(RE2::Options::EncodingUTF8)"))
-
              (substitute*
                  '("base/process/launch_posix.cc"
                    "base/third_party/dynamic_annotations/dynamic_annotations.c"
@@ -597,11 +574,6 @@ chromium-fix-vaapi-on-intel.patch?h=packages/chromium\
                        (find-files (string-append "third_party/webrtc/modules"
                                                   "/audio_coding/codecs/opus")))
 
-             (substitute* "chrome/common/chrome_paths.cc"
-               (("/usr/share/chromium/extensions")
-                ;; TODO: Add ~/.guix-profile.
-                "/run/current-system/profile/share/chromium/extensions"))
-
              ;; Many files try to include ICU headers from "third_party/icu/...".
              ;; Remove the "third_party/" prefix to use system headers instead.
              (substitute* (find-files "chrome" "\\.cc$")
@@ -615,10 +587,8 @@ chromium-fix-vaapi-on-intel.patch?h=packages/chromium\
 
              (substitute*
                  "third_party/breakpad/breakpad/src/common/linux/libcurl_wrapper.h"
-               (("include \"third_party/curl") "include \"curl"))
-
-             (substitute* "third_party/webrtc/rtc_base/strings/json.h"
-               (("#include \"third_party/jsoncpp/") "#include \"json/"))
+               (("include \"third_party/curl")
+                "include \"curl"))
 
              (substitute* '("components/viz/common/gpu/vulkan_context_provider.h"
                             "components/viz/common/resources/resource_format_utils.h"
@@ -628,17 +598,6 @@ chromium-fix-vaapi-on-intel.patch?h=packages/chromium\
              (substitute* "third_party/skia/include/gpu/vk/GrVkVulkan.h"
                (("include/third_party/vulkan/") ""))
 
-             ;; Building chromedriver embeds some files using the ZIP
-             ;; format which doesn't support timestamps before
-             ;; 1980. Therefore, advance the timestamps of the files
-             ;; which are included so that building chromedriver
-             ;; works.
-             (let ((circa-1980 (* 10 366 24 60 60)))
-               (for-each (lambda (file)
-                           (utime file circa-1980 circa-1980))
-                         '("chrome/test/chromedriver/extension/background.js"
-                           "chrome/test/chromedriver/extension/manifest.json")))
-
              #t))
          (add-after 'patch-stuff 'add-absolute-references
            (lambda* (#:key inputs #:allow-other-keys)
@@ -656,14 +615,39 @@ chromium-fix-vaapi-on-intel.patch?h=packages/chromium\
                (substitute* "device/udev_linux/udev1_loader.cc"
                  (("libudev\\.so\\.1")
                   (string-append udev "/lib/libudev.so.1")))
+
+               (substitute*
+                   '("ui/ozone/platform/x11/gl_ozone_glx.cc"
+                     "ui/ozone/common/egl_util.cc"
+                     "ui/gl/init/gl_initializer_linux_x11.cc"
+                     "third_party/angle/src/libANGLE/renderer/gl/glx/FunctionsGLX.cpp")
+                 (("libGL\\.so\\.1")
+                  (string-append mesa "/lib/libGL.so.1"))
+                 (("libEGL\\.so\\.1")
+                  (string-append mesa "/lib/libEGL.so.1"))
+                 (("libGLESv2\\.so\\.2")
+                  (string-append mesa "/lib/libGLESv2.so.2")))
                #t)))
          (add-before 'configure 'prepare-build-environment
            (lambda* (#:key inputs #:allow-other-keys)
 
-             ;; Make sure the right build tools are used.
+             ;; Define the GN toolchain.
              (setenv "AR" "llvm-ar") (setenv "NM" "llvm-nm")
              (setenv "CC" "clang") (setenv "CXX" "clang++")
 
+             (let ((gcc (assoc-ref inputs  "gcc")))
+               ;; Remove the default compiler from CPLUS_INCLUDE_PATH to
+               ;; prevent header conflict with the bundled libcxx.
+               (setenv "CPLUS_INCLUDE_PATH"
+                       (string-join
+                        (delete (string-append gcc "/include/c++")
+                                (string-split (getenv "CPLUS_INCLUDE_PATH")
+                                              #\:))
+                        ":"))
+               (format #t
+                       "environment variable `CPLUS_INCLUDE_PATH' changed to ~a~%"
+                       (getenv "CPLUS_INCLUDE_PATH")))
+
              (setenv "CXXFLAGS"
                      (string-join
                       '(;; Do not optimize away null pointer safety checks.
@@ -728,7 +712,13 @@ chromium-fix-vaapi-on-intel.patch?h=packages/chromium\
                     (lib            (string-append out "/lib"))
                     (man            (string-append out "/share/man/man1"))
                     (applications   (string-append out "/share/applications"))
-                    (install-regexp (make-regexp "\\.(bin|pak|so)$"))
+                    (libs           '("chrome_100_percent.pak"
+                                      "chrome_200_percent.pak"
+                                      "resources.pak"
+                                      "v8_context_snapshot.bin"
+                                      ;; Chromium ships its own libGL
+                                      ;; implementation called ANGLE.
+                                      "libEGL.so" "libGLESv2.so"))
                     (locales        (string-append lib "/locales"))
                     (resources      (string-append lib "/resources"))
                     (preferences    (assoc-ref inputs "master-preferences"))
@@ -753,9 +743,7 @@ chromium-fix-vaapi-on-intel.patch?h=packages/chromium\
                (copy-file preferences (string-append lib "/master_preferences"))
 
                (with-directory-excursion "out/Release"
-                 (for-each (lambda (file)
-                             (install-file file lib))
-                           (scandir "." (cut regexp-exec install-regexp <>)))
+                 (for-each (cut install-file <> lib) libs)
                  (copy-file "chrome" (string-append lib "/chromium"))
 
                  (copy-recursively "locales" locales)
@@ -785,7 +773,7 @@ chromium-fix-vaapi-on-intel.patch?h=packages/chromium\
                #t))))))
     (native-inputs
      `(("bison" ,bison)
-       ("clang" ,clang-10)
+       ("clang" ,clang-11)
        ("gn" ,gn)
        ("gperf" ,gperf)
        ("ld-wrapper" ,(make-lld-wrapper lld))
@@ -799,7 +787,8 @@ chromium-fix-vaapi-on-intel.patch?h=packages/chromium\
 
        ("python-beautifulsoup4" ,python2-beautifulsoup4)
        ("python-html5lib" ,python2-html5lib)
-       ("python" ,python-2)))
+       ("python" ,python-2)
+       ("wayland-scanner" ,wayland)))
     (inputs
      `(("alsa-lib" ,alsa-lib)
        ("atk" ,atk)
@@ -817,7 +806,6 @@ chromium-fix-vaapi-on-intel.patch?h=packages/chromium\
        ("gtk+" ,gtk+)
        ("harfbuzz" ,harfbuzz)
        ("icu4c" ,icu4c-67)
-       ("jsoncpp" ,jsoncpp)
        ("lcms" ,lcms)
        ("libevent" ,libevent)
        ("libffi" ,libffi)
@@ -850,14 +838,19 @@ chromium-fix-vaapi-on-intel.patch?h=packages/chromium\
        ("opus" ,opus+custom)
        ("pango" ,pango)
        ("pciutils" ,pciutils)
+       ("pipewire" ,pipewire)
        ("pulseaudio" ,pulseaudio)
-       ("re2" ,re2)
        ("snappy" ,snappy)
        ("speech-dispatcher" ,speech-dispatcher)
        ("udev" ,eudev)
        ("valgrind" ,valgrind)
        ("vulkan-headers" ,vulkan-headers)
-       ("xcb-proto" ,xcb-proto/python2)))
+       ("wayland" ,wayland)))
+    (native-search-paths
+     (list (search-path-specification
+            (variable "CHROMIUM_EXTENSION_DIRECTORY")
+            (separator #f)              ;single entry
+            (files '("share/chromium/extensions")))))
 
     ;; Building Chromium takes ... a very long time.  On a single core, a busy
     ;; mid-end x86 system may need more than 24 hours to complete the build.
@@ -885,24 +878,46 @@ disabled in order to protect the users privacy.")
                    license:lgpl2.1+))))
 
 (define-public ungoogled-chromium/wayland
-  (package/inherit ungoogled-chromium
+  (package
+    (inherit ungoogled-chromium)
     (name "ungoogled-chromium-wayland")
+    (native-inputs '())
     (inputs
-     `(("wayland" ,wayland)
-       ("wayland-protocols" ,wayland-protocols)
-       ,@(package-inputs ungoogled-chromium)))
+     `(("bash" ,bash-minimal)
+       ("glibc-locales" ,glibc-utf8-locales)
+       ("ungoogled-chromium" ,ungoogled-chromium)))
+    (build-system trivial-build-system)
     (arguments
-     (substitute-keyword-arguments (package-arguments ungoogled-chromium)
-       ((#:configure-flags flags)
-        `(append (list "use_ozone=true"
-                       "ozone_platform_wayland=true"
-                       "ozone_platform_x11=true"
-                       "ozone_auto_platforms=false"
-                       "ozone_platform=\"wayland\""
-                       "use_xkbcommon=true"
-                       "use_system_minigbm=true"
-                       "use_system_libwayland=true"
-                       (string-append "system_wayland_scanner_path=\""
-                                      (assoc-ref %build-inputs "wayland")
-                                      "/bin/wayland-scanner\""))
-                 (delete "use_vaapi=true" ,flags)))))))
+     '(#:modules ((guix build utils))
+       #:builder
+       (begin
+         (use-modules (guix build utils))
+         (let* ((bash (assoc-ref %build-inputs "bash"))
+                (chromium (assoc-ref %build-inputs "ungoogled-chromium"))
+                (locales (assoc-ref %build-inputs "glibc-locales"))
+                (out (assoc-ref %outputs "out"))
+                (exe (string-append out "/bin/chromium")))
+
+           ;; Use a Unicode locale so we can substitute the file below.
+           (setenv "GUIX_LOCPATH" (string-append locales "/lib/locale"))
+           (setlocale LC_ALL "en_US.utf8")
+
+           (mkdir-p (dirname exe))
+           (symlink (string-append chromium "/bin/chromedriver")
+                    (string-append out "/bin/chromedriver"))
+
+           (call-with-output-file exe
+             (lambda (port)
+               (format port "#!~a
+exec ~a --enable-features=UseOzonePlatform --ozone-platform=wayland $@"
+                       (string-append bash "/bin/bash")
+                       (string-append chromium "/bin/chromium"))))
+           (chmod exe #o555)
+
+           ;; Provide the manual and .desktop file.
+           (copy-recursively (string-append chromium "/share")
+                             (string-append out "/share"))
+           (substitute* (string-append
+                         out "/share/applications/chromium.desktop")
+             ((chromium) out))
+           #t))))))
diff --git a/gnu/packages/ci.scm b/gnu/packages/ci.scm
index cda9269965..161b45846e 100644
--- a/gnu/packages/ci.scm
+++ b/gnu/packages/ci.scm
@@ -39,6 +39,7 @@
   #:use-module (gnu packages perl)
   #:use-module (gnu packages perl-compression)
   #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages sqlite)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages texinfo)
   #:use-module (gnu packages version-control)
@@ -46,9 +47,29 @@
   #:use-module (gnu packages xml)
   #:use-module (guix build-system gnu))
 
+;; Guile-Sqlite3 package adding SQL query logging support.
+;; Remove it when next Guile-Sqlite3 release is out.
+(define-public guile-sqlite3-dev
+  (let ((commit "22ef45d268de7707cbbb943c404f9b0c1668e2e1")
+        (revision "1"))
+    (package
+      (inherit guile-sqlite3)
+      (name "guile-sqlite3")
+      (version (git-version "0.1.2" revision commit))
+      (home-page "https://notabug.org/mothacehe/guile-sqlite3.git")
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url home-page)
+                      (commit commit)))
+                (sha256
+                 (base32
+                  "1q90f8zhw9n1c39szd2ba7aj5fi92m09pnlv0z7jbhnnjam5jwcd"))
+                (file-name (string-append name "-" version "-checkout")))))))
+
 (define-public cuirass
-  (let ((commit "d3329551fe2b90a454617da0f241e51fb4a72c58")
-        (revision "42"))
+  (let ((commit "697fa14584551d9595cd042f1ffeba240e45a127")
+        (revision "56"))
     (package
       (name "cuirass")
       (version (git-version "0.0.1" revision commit))
@@ -60,7 +81,7 @@
                 (file-name (git-file-name name version))
                 (sha256
                  (base32
-                  "03ylkfwjk3qjl8pbml9gjz0skfq42klv3xbh9jpnf7rxillmcf20"))))
+                  "0gw9cja8fiyra9vnn3y384gwanvsqdq6gwjcvmz91sy5lvfwv34m"))))
       (build-system gnu-build-system)
       (arguments
        '(#:modules ((guix build utils)
@@ -73,7 +94,7 @@
          #:phases
          (modify-phases %standard-phases
            (add-after 'unpack 'disable-repo-tests
-             (λ _
+             (lambda _
                ;; Disable tests that use a connection to the Guix daemon.
                (substitute* "Makefile.am"
                  (("tests/repo.scm \\\\") "\\"))
@@ -93,8 +114,10 @@
                       (git    (assoc-ref inputs "guile-git"))
                       (bytes  (assoc-ref inputs "guile-bytestructures"))
                       (fibers (assoc-ref inputs "guile-fibers"))
+                      (zlib   (assoc-ref inputs "guile-zlib"))
                       (guix   (assoc-ref inputs "guix"))
-                      (deps   (list gcrypt json sqlite git bytes fibers guix))
+                      (deps   (list gcrypt json sqlite git bytes fibers
+                                    zlib guix))
                       (guile  (assoc-ref %build-inputs "guile"))
                       (effective (read-line
                                   (open-pipe* OPEN_READ
@@ -120,12 +143,13 @@
                    `("GUILE_LOAD_COMPILED_PATH" ":" prefix (,objs)))
                  #t))))))
       (inputs
-       `(("guile" ,@(assoc-ref (package-native-inputs guix) "guile"))
+       `(("guile" ,guile-3.0/libgc-7)
          ("guile-fibers" ,guile-fibers)
          ("guile-gcrypt" ,guile-gcrypt)
          ("guile-json" ,guile-json-4)
-         ("guile-sqlite3" ,guile-sqlite3)
+         ("guile-sqlite3" ,guile-sqlite3-dev)
          ("guile-git" ,guile-git)
+         ("guile-zlib" ,guile-zlib)
          ;; 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)
diff --git a/gnu/packages/clojure.scm b/gnu/packages/clojure.scm
index e66132ab40..5b238ab996 100644
--- a/gnu/packages/clojure.scm
+++ b/gnu/packages/clojure.scm
@@ -2,6 +2,7 @@
 ;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com>
 ;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
 ;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2019 Jesse Gibbons <jgibbons2357+guix@gmail.com>
 ;;; Copyright © 2020 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -21,6 +22,7 @@
 
 (define-module (gnu packages clojure)
   #:use-module (gnu packages)
+  #:use-module (gnu packages java)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix download)
@@ -78,6 +80,8 @@
                   (sha256
                    (base32 "1kcyv2836acs27vi75hvf3r773ahv2nlh9b3j9xa9m9sdanz1h83")))))
       (build-system ant-build-system)
+      (inputs
+       `(("jre" ,icedtea)))
       (arguments
        `(#:imported-modules ((guix build clojure-utils)
                              (guix build guile-build-system)
@@ -114,7 +118,23 @@
            (add-after 'install-license-files 'install-doc
              (cut install-doc #:doc-dirs '("doc/clojure/") <...>))
            (add-after 'install-doc 'install-javadoc
-             (install-javadoc "target/javadoc/")))))
+             (install-javadoc "target/javadoc/"))
+           (add-after 'install 'make-wrapper
+             (lambda* (#:key inputs outputs #:allow-other-keys)
+               (let* ((out (assoc-ref outputs "out"))
+                      (wrapper (string-append out "/bin/clojure")))
+                 (mkdir-p (string-append out "/bin"))
+                 (with-output-to-file wrapper
+                   (lambda _
+                     (display
+                      (string-append
+                       "#!"
+                       (which "sh")
+                       "\n\n"
+                       (assoc-ref inputs "jre") "/bin/java -jar "
+                       out "/share/java/clojure.jar \"$@\"\n"))))
+                 (chmod wrapper #o555))
+               #t)))))
       (native-inputs libraries)
       (home-page "https://clojure.org/")
       (synopsis "Lisp dialect running on the JVM")
diff --git a/gnu/packages/cluster.scm b/gnu/packages/cluster.scm
index 5241ed1296..01996591c7 100644
--- a/gnu/packages/cluster.scm
+++ b/gnu/packages/cluster.scm
@@ -1,6 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2018 Sou Bunnbu <iyzsong@member.fsf.org>
-;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2019 Andrew Miloradovsky <andrew@interpretmath.pw>
 ;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
 ;;;
@@ -39,7 +39,7 @@
 (define-public drbd-utils
   (package
     (name "drbd-utils")
-    (version "9.13.1")
+    (version "9.15.1")
     (source (origin
               (method url-fetch)
               ;; Older releases are moved to /archive.  List it first because in
@@ -51,7 +51,7 @@
                                         "/utils/drbd-utils-" version ".tar.gz")))
               (sha256
                (base32
-                "0di55y0vzaw8jhcgz0fakww03h1gpg4a5q1zklxhjw3dwzjvysnk"))
+                "1q92bwnprqkkj9iy6fxcybcfpxvvjw5clis0igrbxqnq869kwp1i"))
               (modules '((guix build utils)))
               (snippet
                '(begin
diff --git a/gnu/packages/cmake.scm b/gnu/packages/cmake.scm
index cf3bc406bc..56b32792fe 100644
--- a/gnu/packages/cmake.scm
+++ b/gnu/packages/cmake.scm
@@ -7,8 +7,8 @@
 ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2017, 2018, 2020 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
-;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
-;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2019, 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2019 Pierre-Moana Levesque <pierre.moana.levesque@gmail.com>
 ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
 ;;;
@@ -101,7 +101,7 @@
     (version "3.16.5")
     (source (origin
               (method url-fetch)
-              (uri (string-append "https://www.cmake.org/files/v"
+              (uri (string-append "https://cmake.org/files/v"
                                   (version-major+minor version)
                                   "/cmake-" version ".tar.gz"))
               (sha256
@@ -297,6 +297,39 @@ and workspaces that can be used in the compiler environment of your choice.")
   (package
     (inherit cmake-minimal)
     (name "cmake")
+    (version "3.19.2")
+    ;; TODO: Move the following source field to the cmake-bootstrap package in
+    ;; the next rebuild cycle.
+    (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
+                "1w67w0ak6vf37501dlz9yhnzlvvpw1w10n2nm3hi7yxp4cxzvq73"))
+              (snippet
+               (match (origin-snippet (package-source cmake-bootstrap))
+                 ((_ _ exp ...)
+                  ;; Now we can delete the remaining software bundles.
+                  (append `(begin
+                             (define preserved-files
+                               '(,@%preserved-third-party-files
+                                 ;; TODO: Move this file to the
+                                 ;; %preserved-third-party-files variable in
+                                 ;; the next rebuild cycle.
+                                 "Utilities/cm3p" ;CMake header wrappers
+                                 ;; Use the bundled JsonCpp during bootstrap
+                                 ;; to work around a circular dependency.
+                                 ;; TODO: JsonCpp can be built with Meson
+                                 ;; instead of CMake, but meson-build-system
+                                 ;; currently does not support
+                                 ;; cross-compilation.
+                                 "Utilities/cmjsoncpp"
+                                 ;; LibUV is required to bootstrap the initial
+                                 ;; build system.
+                                 "Utilities/cmlibuv")))
+                          exp))))))
     (arguments
      (substitute-keyword-arguments (package-arguments cmake-minimal)
        ;; Use cmake-minimal this time.
@@ -318,6 +351,42 @@ and workspaces that can be used in the compiler environment of your choice.")
                  ,flags))
        ((#:phases phases)
         `(modify-phases ,phases
+           ;; TODO: Remove this override in the next rebuild cycle and adjust
+           ;; the %common-build-phases variable instead: the
+           ;; Utilities/Release/release_cmake.cmake file no longer exists in
+           ;; version 3.19.0.
+           (replace 'patch-bin-sh
+             (lambda _
+               ;; Replace "/bin/sh" by the right path in... a lot of
+               ;; files.
+               (substitute*
+                   '("Modules/CompilerId/Xcode-3.pbxproj.in"
+                     "Modules/Internal/CPack/CPack.RuntimeScript.in"
+                     "Source/cmGlobalXCodeGenerator.cxx"
+                     "Source/cmLocalUnixMakefileGenerator3.cxx"
+                     "Source/cmExecProgramCommand.cxx"
+                     "Tests/CMakeLists.txt"
+                     "Tests/RunCMake/File_Generate/RunCMakeTest.cmake")
+                 (("/bin/sh") (which "sh")))
+               #t))
+           ;; TODO: Remove this override in the next rebuild cycle and adjust
+           ;; the %common-disabled-tests variable instead.
+           (replace 'check
+             (lambda* (#:key tests? parallel-tests? #:allow-other-keys)
+               (let ((skipped-tests (list ,@%common-disabled-tests
+                                          ;; This test fails for unknown reason.
+                                          "RunCMake.file-GET_RUNTIME_DEPENDENCIES"
+                                          ;; This test requires the bundled libuv.
+                                          "BootstrapTest")))
+                 (if tests?
+                     (begin
+                       (invoke "ctest" "-j" (if parallel-tests?
+                                                (number->string (parallel-job-count))
+                                                "1")
+                               "--exclude-regex"
+                               (string-append "^(" (string-join skipped-tests "|") ")$")))
+                     (format #t "test suite not run~%"))
+                 #t)))
            (add-after 'install 'move-html-doc
              (lambda* (#:key outputs #:allow-other-keys)
                (let ((out (assoc-ref outputs "out"))
diff --git a/gnu/packages/code.scm b/gnu/packages/code.scm
index 6229a04deb..4e30dacdf4 100644
--- a/gnu/packages/code.scm
+++ b/gnu/packages/code.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2015, 2018 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2015, 2018, 2020 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2015, 2018 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2016, 2017, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
@@ -39,6 +39,7 @@
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system cmake)
+  #:use-module (guix build-system python)
   #:use-module (guix build-system trivial)
   #:use-module (gnu packages)
   #:use-module (gnu packages autogen)
@@ -125,14 +126,14 @@ highlighting your own code that seemed comprehensible when you wrote it.")
 (define-public global                             ; a global variable
   (package
     (name "global")
-    (version "6.6.4")
+    (version "6.6.5")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://gnu/global/global-"
                                  version ".tar.gz"))
              (sha256
               (base32
-               "1515642wsjz7x3rsgaqk4sc7n0z2znl7idsk8jz8wgy5aswqqzlq"))))
+               "10vvsgx8v54whb4j9mk5qqyb5h3rdd9da0il3wir8pcpksyk0dww"))))
     (build-system gnu-build-system)
     (inputs `(("ncurses" ,ncurses)
               ("libltdl" ,libltdl)
@@ -233,7 +234,7 @@ COCOMO model or user-provided parameters.")
 (define-public cloc
   (package
     (name "cloc")
-    (version "1.86")
+    (version "1.88")
     (source
      (origin
        (method git-fetch)
@@ -242,7 +243,7 @@ COCOMO model or user-provided parameters.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "082gj2b3x11bilz8c572dd60vn6n0fhld5zhi7wk7g1wy9wlgm9w"))))
+        (base32 "1ixgswzbzv63bl50gb2kgaqr0jcicjz6w610hi9fal1i7744zraw"))))
     (build-system gnu-build-system)
     (inputs
      `(("coreutils" ,coreutils)
@@ -338,81 +339,93 @@ features that are not supported by the standard @code{stdio} implementation.")
               "http://sourceforge.net/p/ctrio/git/ci/master/tree/README"))))
 
 (define-public universal-ctags
-  ;; The project is unable to decide whether to use 1.0 or 6.0 as the
-  ;; first public release version (it started as a fork of another ctags
-  ;; project that was on version 5.8), and five years later have been
-  ;; unable to tag a release.  Thus, we just take the master branch.
-  (let ((commit "0c78c0c4a68030df0d025c90bad291108b5e7107")
-        (revision "0"))
-    (package
-      (name "universal-ctags")
-      (version (git-version "0.0.0" revision commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/universal-ctags/ctags")
-               (commit commit)))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32
-           "0lnxc3kwi6srw0015m16vyjfdc7pdr9d1qzxjsbfv3c69ag87jhc"))
-         (modules '((guix build utils)))
-         (snippet
-          '(begin
-             ;; Remove the bundled PackCC and associated build rules.
-             (substitute* "Makefile.am"
-               (("\\$\\(packcc_verbose\\)\\$\\(PACKCC\\)")
-                "packcc")
-               (("\\$\\(PEG_SRCS\\) \\$\\(PEG_HEADS\\): packcc\\$\\(EXEEXT\\)")
-                "$(PEG_SRCS) $(PEG_HEADS):")
-               (("noinst_PROGRAMS \\+= packcc")
-                ""))
-             (delete-file-recursively "misc/packcc")
-             #t))))
-      (build-system gnu-build-system)
-      (arguments
-       '(#:phases (modify-phases %standard-phases
-                    (add-after 'unpack 'make-files-writable
-                      (lambda _
-                        (for-each make-file-writable (find-files "."))
-                        #t))
-                    (add-before 'bootstrap 'patch-optlib2c
-                      (lambda _
-                        ;; The autogen.sh script calls out to optlib2c to
-                        ;; generate translations, so we can not wait for the
-                        ;; patch-source-shebangs phase.
-                        (patch-shebang "misc/optlib2c")
-                        #t))
-                    (add-before 'check 'patch-tests
-                      (lambda _
-                        (substitute* "misc/units"
-                          (("SHELL=/bin/sh")
-                           (string-append "SHELL=" (which "sh"))))
-                        (substitute* "Tmain/utils.sh"
-                          (("/bin/echo") (which "echo")))
-                        #t)))))
-      (native-inputs
-       `(("autoconf" ,autoconf)
-         ("automake" ,automake)
-         ("packcc" ,packcc)
-         ("perl" ,perl)
-         ("pkg-config" ,pkg-config)))
-      (inputs
-       `(("jansson" ,jansson)
-         ("libseccomp" ,libseccomp)
-         ("libxml2" ,libxml2)
-         ("libyaml" ,libyaml)))
-      (home-page "https://ctags.io/")
-      (synopsis "Generate tag files for source code")
-      (description
-       "Universal Ctags generates an index (or tag) file of language objects
+  (package
+    (name "universal-ctags")
+    (version "5.9.20201018.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/universal-ctags/ctags")
+             (commit (string-append "p" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "174p1w20pl25k996hfw61inw4mqhskmmic1lyw2m65firmkyvs7x"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin
+           ;; Remove the bundled PackCC and associated build rules.
+           (substitute* "Makefile.am"
+             (("\\$\\(packcc_verbose\\)\\$\\(PACKCC\\)")
+              "packcc")
+             (("\\$\\(PEG_SRCS\\) \\$\\(PEG_HEADS\\): packcc\\$\\(EXEEXT\\)")
+              "$(PEG_SRCS) $(PEG_HEADS):")
+             (("noinst_PROGRAMS \\+= packcc")
+              ""))
+           (delete-file-recursively "misc/packcc")
+           #t))))
+    (build-system gnu-build-system)
+    (arguments
+     '(;; Don't use the build-time TMPDIR (/tmp/guix-build-...) at runtime.
+       #:configure-flags '("--enable-tmpdir=/tmp")
+       #:phases (modify-phases %standard-phases
+                  (add-after 'unpack 'make-files-writable
+                    (lambda _
+                      (for-each make-file-writable (find-files "."))
+                      #t))
+                  (add-before 'bootstrap 'patch-optlib2c
+                    (lambda _
+                      ;; The autogen.sh script calls out to optlib2c to
+                      ;; generate translations, so we can not wait for the
+                      ;; patch-source-shebangs phase.
+                      (patch-shebang "misc/optlib2c")
+                      #t))
+                  (add-before 'check 'patch-tests
+                    (lambda _
+                      (substitute* "misc/units"
+                        (("SHELL=/bin/sh")
+                         (string-append "SHELL=" (which "sh"))))
+                      (substitute* "Tmain/utils.sh"
+                        (("/bin/echo") (which "echo")))
+                      #t)))))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ;; XXX: Use ctags' own packcc fork even though we meticolously unbundle
+       ;; it above.  Mainly for historical reasons, and perhaps their changes
+       ;; get upstreamed in the future.
+       ("packcc"
+        ,(let ((commit "03402b79505dc0024f90d5bebfd7e5d3fb62da9a"))
+           (package
+             (inherit packcc)
+             (source (origin
+                       (method git-fetch)
+                       (uri (git-reference
+                             (url "https://github.com/universal-ctags/packcc")
+                             (commit commit)))
+                       (file-name (git-file-name "packcc-for-ctags"
+                                                 (string-take commit 7)))
+                       (sha256
+                        (base32
+                         "0vxpdk9l2lf7f32nx1p3b3xmw2kw2wp95vnf9bc4lyqrg69pblm0")))))))
+       ("perl" ,perl)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("jansson" ,jansson)
+       ("libseccomp" ,libseccomp)
+       ("libxml2" ,libxml2)
+       ("libyaml" ,libyaml)))
+    (home-page "https://ctags.io/")
+    (synopsis "Generate tag files for source code")
+    (description
+     "Universal Ctags generates an index (or tag) file of language objects
 found in source files for many popular programming languages.  This index
 makes it easy for text editors and other tools to locate the indexed items.
 Universal Ctags improves on traditional ctags because of its multilanguage
 support, its ability for the user to define new languages searched by regular
 expressions, and its ability to generate emacs-style TAGS files.")
-      (license license:gpl2+))))
+    (license license:gpl2+)))
 
 (define-public withershins
   (package
@@ -470,60 +483,75 @@ stack traces.")
     (license license:gpl3+)))
 
 (define-public lcov
-  ;; Use a recent commit from upstream since the latest official release
-  ;; (1.14) doesn't support GCC 9 (see:
-  ;; https://github.com/linux-test-project/lcov/issues/58).
-  (let* ((commit "40580cd65909bc8324ae09b36bca2e178652ff3f")
-         (revision "0")
-         (version (git-version "1.14" revision commit)))
-    (package
-      (name "lcov")
-      (version "1.14")
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://github.com/linux-test-project/lcov")
-                      (commit commit)))
-                (file-name (git-file-name name version))
-                (sha256
-                 (base32
-                  "0shgmh6fzhnj1qfdl90jgjmlbb1ih1qh879dca8hc58yggy3hqgb"))))
-      (build-system gnu-build-system)
-      (arguments
-       '(#:test-target "test"
-         #:make-flags (list (string-append "PREFIX="
-                                           (assoc-ref %outputs "out")))
-         #:phases
-         (modify-phases %standard-phases
-           (add-after 'unpack 'patch-pwd
-             ;; Lift the requirement of having a shell in PATH.
-             (lambda _
-               (substitute* "bin/geninfo"
-                 (("qw/abs_path/")
-                  "qw/abs_path getcwd/"))
-               (substitute* '("bin/lcov" "bin/geninfo")
-                 (("`pwd`")
-                  "getcwd()"))
-               #t))
-           (delete 'configure)          ;no configure script
-           (add-after 'install 'wrap
-             (lambda* (#:key outputs #:allow-other-keys)
-               (let ((out (assoc-ref outputs "out")))
-                 (wrap-program (string-append out "/bin/geninfo")
-                   `("PERL5LIB" ":" prefix (,(getenv "PERL5LIB")))))
-               #t)))))
-      (inputs `(("perl" ,perl)
-                ("perl-json" ,perl-json)
-                ("perl-perlio-gzip" ,perl-perlio-gzip)))
-      (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
+  (package
+    (name "lcov")
+    (version "1.15")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://github.com/linux-test-project/lcov"
+                           "/releases/download/v" version
+                           "/lcov-" version ".tar.gz"))
+       (sha256
+        (base32 "0fh5z0q5wg2jxr2nn5w7321y0zg9rwk75j3k5hnamjdy6gxa5kf1"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:test-target "test"
+       #:make-flags (list (string-append "PREFIX="
+                                         (assoc-ref %outputs "out")))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-pwd
+           ;; Lift the requirement of having a shell in PATH.
+           (lambda _
+             (substitute* "bin/geninfo"
+               (("qw/abs_path/")
+                "qw/abs_path getcwd/"))
+             (substitute* '("bin/lcov" "bin/geninfo")
+               (("`pwd`")
+                "getcwd()"))
+             #t))
+         (delete 'configure)            ;no configure script
+         (add-after 'install 'wrap
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (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)))
+    (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
 GNU@tie{}Binutils, which provides information about what parts of a program
 are actually executed (i.e., \"covered\") while running a particular test
 case.  The extension consists of a set of Perl scripts which build on the
 textual @command{gcov} output to implement the following enhanced
 functionality such as HTML output.")
-      (license license:gpl2+))))
+    (license license:gpl2+)))
+
+(define-public lcov-cobertura
+  (package
+    (name "python-lcov-cobertura")
+    (version "1.6")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "lcov_cobertura" version))
+       (sha256
+        (base32
+         "02ar6yjazlxq4p64cz9gag08bvakmzjrp147jara9wlnlbc96j8g"))))
+    (build-system python-build-system)
+    (home-page "https://eriwen.github.io/lcov-to-cobertura-xml/")
+    (synopsis "LCOV to Cobertura XML converter")
+    (description
+     "The lcov-to-cobertura Python module converts code coverage report files
+in the lcov format to the XML format of
+@uref{http://cobertura.github.io/cobertura/, Cobertura}, a Java code coverage
+tool.  It allows continuous integration servers like Jenkins to aggregate
+results and determine build stability.")
+    (license license:asl2.0)))
 
 (define-public kcov
   (package
diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm
index aa30e3fa18..432910d7a3 100644
--- a/gnu/packages/commencement.scm
+++ b/gnu/packages/commencement.scm
@@ -381,7 +381,7 @@ $MES -e '(mescc)' module/mescc.scm -- \"$@\"
     (inputs '())
     (propagated-inputs '())
     (native-inputs
-     `(("nyacc-source" ,(origin (inherit (package-source nyacc))
+     `(("nyacc-source" ,(origin (inherit (package-source nyacc-0.99))
                                 (snippet #f)))
        ("mes" ,%bootstrap-mes-rewired)
        ("mescc-tools" ,%bootstrap-mescc-tools)
@@ -477,7 +477,7 @@ $MES -e '(mescc)' module/mescc.scm -- \"$@\"
     (propagated-inputs '())
     (native-inputs
      `(("mes" ,mes-boot)
-       ("nyacc-source" ,(origin (inherit (package-source nyacc))
+       ("nyacc-source" ,(origin (inherit (package-source nyacc-0.99))
                                 (snippet #f)))
        ("mescc-tools" ,%bootstrap-mescc-tools)
        ,@(%boot-gash-inputs)))
@@ -788,14 +788,17 @@ $MES -e '(mescc)' module/mescc.scm -- \"$@\"
              (substitute* "config.h"
                (("#define GETCWD_BROKEN 1") "#undef GETCWD_BROKEN"))
              (let ((config.h (open-file "config.h" "a")))
-               (display (string-append "
+               (display (string-append
+                         ;; XXX TODO: remove nested ,(string-append ...) and
+                         ;; store file name on next rebuild cycle
+                         ,(string-append "
 // tcc: error: undefined symbol 'enable_hostname_completion'
 #define enable_hostname_completion(on_or_off) 0
 
-// /gnu/store/cq0cmv35s9dhilx14zaghlc08gpc0hwr-tcc-boot0-0.9.26-6.c004e9a/lib/libc.a: error: 'sigprocmask' defined twice
+// /gnu/store/" "cq0cmv35s9dhilx14zaghlc08gpc0hwr-tcc-boot0-0.9.26-6.c004e9a/lib/libc.a: error: 'sigprocmask' defined twice
 #define HAVE_POSIX_SIGNALS 1
 #define endpwent(x) 0
-")
+"))
                         config.h)
                (close config.h))
              #t))
@@ -2815,6 +2818,12 @@ exec " gcc "/bin/" program
                            "--disable-shared"
                            "--enable-languages=c,c++"
 
+                           ,@(if (equal? "powerpc64le-linux-gnu" (boot-triplet))
+                                 ;; On POWER9 (little endian) glibc needs the
+                                 ;; 128-bit long double type.
+                                 '("--with-long-double-128")
+                                 '())
+
                            ;; libstdc++ cannot be built at this stage
                            ;; ("Link tests are not allowed after
                            ;; GCC_NO_EXECUTABLES.").
@@ -3853,15 +3862,20 @@ COREUTILS-FINAL vs. COREUTILS, etc."
                                                      "libc-static")))
                        #t))))
 
-      (native-search-paths (package-native-search-paths gcc))
-      (search-paths (package-search-paths gcc))
+      (native-search-paths
+       (append (package-native-search-paths gcc)
+               (package-native-search-paths libc))) ;GUIX_LOCPATH
+      (search-paths
+       (append (package-search-paths gcc)
+               (package-search-paths libc)))
 
       (license (package-license gcc))
       (synopsis "Complete GCC tool chain for C/C++ development")
       (description
        "This package provides a complete GCC tool chain for C/C++ development to
 be installed in user profiles.  This includes GCC, as well as libc (headers and
-binaries, plus debugging symbols in the @code{debug} output), and Binutils.")
+binaries, plus debugging symbols in the @code{debug} output), and Binutils.  GCC
+is the GNU Compiler Collection.")
       (home-page "https://gcc.gnu.org/")
       (outputs '("out" "debug" "static"))
 
@@ -3902,6 +3916,12 @@ binaries, plus debugging symbols in the @code{debug} output), and Binutils.")
 (define-public gcc-toolchain-10
   (make-gcc-toolchain gcc-10))
 
+(define-public gcc-toolchain-aka-gcc
+  ;; It's natural for users to try "guix install gcc".  This package
+  ;; automatically "redirects" them to 'gcc-toolchain'.
+  (deprecated-package "gcc" gcc-toolchain-10))
+
+
 (define-public gdc-toolchain-10
   (package (inherit (make-gcc-toolchain gdc-10))
     (synopsis "Complete GCC tool chain for D lang development")
diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm
index 97f254ff6e..56350089f5 100644
--- a/gnu/packages/compression.scm
+++ b/gnu/packages/compression.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012, 2013, 2014, 2015, 2017, 2019 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012, 2013, 2014, 2015, 2017, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2014, 2015, 2018 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
@@ -10,7 +10,7 @@
 ;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
 ;;; Copyright © 2016 Danny Milosavljevic <dannym@scratchpost.org>
-;;; Copyright © 2016, 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2016–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2016 David Craven <david@craven.ch>
 ;;; Copyright © 2016, 2019, 2020 Kei Kebreau <kkebreau@posteo.net>
 ;;; Copyright © 2016, 2018, 2019, 2020 Marius Bakke <mbakke@fastmail.com>
@@ -28,6 +28,7 @@
 ;;; Copyright © 2020 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
 ;;; Copyright © 2020 Arun Isaac <arunisaac@systemreboot.net>
 ;;; Copyright © 2020 Lars-Dominik Braun <lars@6xq.net>
+;;; Copyright © 2020 Guillaume Le Vaillant <glv@posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -620,14 +621,14 @@ archiving.  Lzip is a clean implementation of the LZMA algorithm.")
 (define-public lziprecover
   (package
     (name "lziprecover")
-    (version "1.21")
+    (version "1.22")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://savannah/lzip/lziprecover/"
                                   "lziprecover-" version ".tar.gz"))
               (sha256
                (base32
-                "094w2z8fz41yaq0gkyr61cl7pb1d7kchpl5dka7rvm3qvbb7ncd2"))))
+                "0qh8dnhr5rly2k9dnx43qqynqwqzi5kfb15pyd29qwppfl4qm5gx"))))
     (build-system gnu-build-system)
     (home-page "https://www.nongnu.org/lzip/lziprecover.html")
     (synopsis "Recover and decompress data from damaged lzip files")
@@ -786,39 +787,43 @@ decompression of some loosely related file formats used by Microsoft.")
 (define-public lz4
   (package
     (name "lz4")
-    (version "1.9.2")
+    (version "1.9.3")
     (source
      (origin
        (method git-fetch)
        (uri (git-reference (url "https://github.com/lz4/lz4")
                            (commit (string-append "v" version))))
        (sha256
-        (base32
-         "0lpaypmk70ag2ks3kf2dl4ac3ba40n5kc1ainkp9wfjawz76mh61"))
+        (base32 "1w02kazh1fps3sji2sn89fz862j1199c5ajrqcgl1bnlxj09kcbz"))
        (file-name (git-file-name name version))))
     (build-system gnu-build-system)
+    (outputs (list "out" "static"))
     (native-inputs
      `(;; For tests.
        ("python" ,python)
        ("valgrind" ,valgrind)))
     (arguments
      `(#:test-target "test"
-       #:make-flags (list "CC=gcc"
+       #:make-flags (list (string-append "CC=" ,(cc-for-target))
                           (string-append "prefix=" (assoc-ref %outputs "out")))
-       #:phases (modify-phases %standard-phases
-                  (delete 'configure)            ;no configure script
-                  (add-before 'check 'disable-broken-test
-                    (lambda _
-                      ;; XXX: test_install.sh fails when prefix is a subdirectory.
-                      (substitute* "tests/Makefile"
-                        (("^test: (.*) test-install" _ targets)
-                         (string-append "test: " targets)))
-                      #t))
-                  (add-after 'install 'delete-static-library
-                    (lambda* (#:key outputs #:allow-other-keys)
-                      (let ((out (assoc-ref outputs "out")))
-                        (delete-file (string-append out "/lib/liblz4.a"))
-                        #t))))))
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)            ; no configure script
+         (add-before 'check 'disable-broken-test
+           (lambda _
+             (substitute* "tests/Makefile"
+               ;; This fails when $prefix is not a single top-level directory.
+               (("^test: (.*) test-install" _ targets)
+                (string-append "test: " targets)))
+             #t))
+         (add-after 'install 'move-static-library
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out"))
+                   (static (assoc-ref outputs "static")))
+               (mkdir-p (string-append static "/lib"))
+               (rename-file (string-append out "/lib/liblz4.a")
+                            (string-append static "/lib/liblz4.a"))
+               #t))))))
     (home-page "https://www.lz4.org")
     (synopsis "Compression algorithm focused on speed")
     (description "LZ4 is a lossless compression algorithm, providing
@@ -844,9 +849,9 @@ time for compression ratio.")
                 "0zmhvczscqz0mzh4b9m8m42asq14db0a6lc8clp5ljq5ybrv70d9"))))
     (build-system gnu-build-system)
     (arguments
-     '(#:tests? #f                      ; no check target
+     `(#:tests? #f                      ; no check target
        #:make-flags
-       (list "CC=gcc"
+       (list (string-append "CC=" ,(cc-for-target))
              "XZ_SUPPORT=1"
              "LZO_SUPPORT=1"
              "LZ4_SUPPORT=1"
@@ -951,7 +956,8 @@ tarballs.")
                 "0j2zm3z271x5aw63mwhr3vymzn45p2vvrlrpm9cz2nywna41b0hq"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:make-flags (list "INSTALL=install" "CC=gcc"
+     `(#:make-flags (list "INSTALL=install"
+                          (string-append "CC=" ,(cc-for-target))
                           (string-append "PREFIX=" (assoc-ref %outputs "out")))
        #:phases (modify-phases %standard-phases
                   (delete 'configure)
@@ -1296,7 +1302,7 @@ or junctions, and always follows hard links.")
     (source
      (origin (method git-fetch)
              (uri (git-reference
-                    (url "http://github.com/twogood/unshield.git")
+                    (url "http://github.com/twogood/unshield")
                     (commit version)))
              (file-name (git-file-name name version))
              (sha256
@@ -1421,7 +1427,10 @@ or junctions, and always follows hard links.")
 
                #t))))
        #:make-flags
-       (list "CC=gcc"
+       ;; TODO: Integrate in next rebuild cycle.
+       (list ,(if (%current-target-system)
+                (string-append "CC=" (cc-for-target))
+                "CC=gcc")
              (string-append "PREFIX=" (assoc-ref %outputs "out"))
              (string-append "LIBDIR=" (assoc-ref %outputs "lib") "/lib")
              (string-append "INCLUDEDIR=" (assoc-ref %outputs "lib") "/include")
@@ -1453,8 +1462,14 @@ speed.")
     (version (package-version zstd))
     (source (package-source zstd))
     (build-system gnu-build-system)
+    (inputs
+     `(,@(if (%current-target-system)
+           `(("googletest" ,googletest))
+           '())))
     (native-inputs
-     `(("googletest" ,googletest)))
+     `(,@(if (%current-system)
+           `(("googletest" ,googletest))
+           '())))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -1472,7 +1487,8 @@ speed.")
                (install-file "README.md" doc)
                #t))))
        #:make-flags
-       (list "CC=gcc"
+       (list (string-append "CC=" ,(cc-for-target))
+             (string-append "CXX=" ,(cxx-for-target))
              (string-append "PREFIX=" (assoc-ref %outputs "out")))))
     (home-page (package-home-page zstd))
     (synopsis "Threaded implementation of the Zstandard compression algorithm")
@@ -1590,6 +1606,55 @@ recreates the stored directory structure by default.")
     (license (license:non-copyleft "file://LICENSE"
                                    "See LICENSE in the distribution."))))
 
+(define-public ziptime
+  (let ((commit "2a5bc9dfbf7c6a80e5f7cb4dd05b4036741478bc")
+        (revision "0"))
+  (package
+    (name "ziptime")
+    (version (git-version "0.0.0" revision commit))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://android.googlesource.com/platform/build")
+             (commit commit)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0hrn61b3a97dlc4iqc28rwx8k8zf7ycbwzqqp93vj34zy5a541kn"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f                      ; no test suite
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'change-directory
+           (lambda _
+             (chdir "tools/ziptime")))
+         (delete 'configure)            ; nothing to configure
+         (replace 'build
+           ;; There is no Makefile, only an ‘Android.bp’ file.  Ignore it.
+           (lambda _
+             (let ((c++ ,(cxx-for-target)))
+               (apply invoke c++ "-O2" "-o" "ziptime"
+                      (find-files "." "\\.cpp$")))))
+         (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/" ,name "-" ,version)))
+               (install-file "ziptime" bin)
+               (install-file "README.txt" doc)))))))
+    ;; There is no separate home page for this tiny bundled build tool.
+    (home-page (string-append "https://android.googlesource.com/platform/build/"
+                              "+/master/tools/ziptime/README.txt"))
+    (synopsis "Normalize @file{.zip} archive header timestamps")
+    (description
+     "Ziptime helps make @file{.zip} archives reproducible by replacing
+timestamps in the file header with a fixed time (1 January 2008).
+
+``Extra fields'' are not changed, so you'll need to use the @code{-X} option to
+@command{zip} to prevent it from storing the ``universal time'' field.")
+    (license license:asl2.0))))
+
 (define-public zziplib
   (package
     (name "zziplib")
@@ -1666,7 +1731,7 @@ archive can be reverted.")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "http://savannah.nongnu.org/download/atool/atool-"
+       (uri (string-append "mirror://savannah/atool/atool-"
                            version ".tar.gz"))
        (sha256
         (base32
@@ -1751,18 +1816,19 @@ Clzip is intended to be fully compatible with the regular lzip package.")
 (define-public lzlib
   (package
     (name "lzlib")
-    (version "1.11")
+    (version "1.12")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://savannah/lzip/lzlib/"
                            "lzlib-" version ".tar.gz"))
        (sha256
-        (base32 "0djdj4sg33rzi4k84cygvnp09bfsv6i8wy2k7i67rayib63myp3c"))))
+        (base32 "1c9pwd6by8is4z8bs6j306jyy6pgm2dvsn4fr7fg2b5m5qj88pcf"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags
-       (list "CC=gcc"
+       (list (string-append "CC=" ,(cc-for-target))
+             "--disable-static"
              "--enable-shared")))       ; only static (.a) is built by default
     (home-page "https://www.nongnu.org/lzip/lzlib.html")
     (synopsis "Lzip data compression C library")
@@ -1777,14 +1843,14 @@ corrupted input.")
 (define-public plzip
   (package
     (name "plzip")
-    (version "1.8")
+    (version "1.9")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://savannah/lzip/plzip/"
                            "plzip-" version ".tar.gz"))
        (sha256
-        (base32 "04indil809qgfmz776imb3dnhkysh7zk28jcv3mw0ahl2lyaxbzd"))))
+        (base32 "19zinpx7hssl6r3vilpvq2s7wha3545xan8b0vcvsxnyipdx3n0l"))))
     (build-system gnu-build-system)
     (inputs
      `(("lzlib" ,lzlib)))
@@ -1832,7 +1898,7 @@ non-Windows systems without running the actual installer using wine.")
 (define-public google-brotli
   (package
     (name "google-brotli")
-    (version "1.0.7")
+    (version "1.0.9")
     (source
      (origin
        (method git-fetch)
@@ -1841,7 +1907,15 @@ non-Windows systems without running the actual installer using wine.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1811b55wdfg4kbsjcgh1kc938g118jpvif97ilgrmbls25dfpvvw"))))
+        (base32 "1fikasxf7r2dwlk8mv8w7nmjkn0jw5ic31ky3mvpkdzwgd4xfndl"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin
+           ;; Cherry-picked from upstream since the latest release
+           ;; https://github.com/google/brotli/commit/09b0992b6acb7faa6fd3b23f9bc036ea117230fc
+           (substitute* (find-files "scripts" "^lib.*pc\\.in")
+             (("-R\\$\\{libdir\\} ") ""))
+           #t))))
     (build-system cmake-build-system)
     (arguments
      `(#:phases
@@ -2001,13 +2075,13 @@ reading from and writing to ZIP archives. ")
 (define-public zutils
   (package
     (name "zutils")
-    (version "1.9")
+    (version "1.10")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://savannah/zutils/zutils-" version ".tar.lz"))
        (sha256
-        (base32 "0y2wm8wqr1wi1b1fv45dn50njv4q81p6ifx0279ji1bq56qkrn2r"))))
+        (base32 "15dimqp8zlqaaa2l46r22srp1py38mlmn69ph1j5fmrd54w43m0d"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags
@@ -2128,7 +2202,7 @@ file compression algorithm.")
 (define-public xarchiver
   (package
     (name "xarchiver")
-    (version "0.5.4.15")
+    (version "0.5.4.16")
     (source
      (origin
        (method git-fetch)
@@ -2137,7 +2211,7 @@ file compression algorithm.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0a3y54r5zp2c0cqm77r07qrl1vh200wvqmbhm35diy22fvkq5mwc"))))
+        (base32 "0nblyk65w1in0zpfbyzy6dw4x0fzx3q7xs85dby5ap4w0gjz9s44"))))
     (build-system glib-or-gtk-build-system)
     (native-inputs
      `(("gettext" ,gettext-minimal)
@@ -2249,3 +2323,31 @@ computations.")
 with their error correction data losslessly rearranged for better compression,
 to their original, binary CD format.")
     (license license:gpl3+)))
+
+(define-public tarlz
+  (package
+    (name "tarlz")
+    (version "0.17")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://savannah/lzip/tarlz/"
+                           "tarlz-" version ".tar.lz"))
+       (sha256
+        (base32 "0gpdm6z9pdr5bn31kxg73wm686hhpb5pdf5782pbl5a4xqqhqj90"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("lzip" ,lzip)))
+    (inputs
+     `(("lzlib" ,lzlib)))
+    (home-page "https://www.nongnu.org/lzip/tarlz.html")
+    (synopsis "Combination of the tar archiver and the lzip compressor")
+    (description
+     "Tarlz is a massively parallel (multi-threaded) combined implementation of
+the tar archiver and the lzip compressor.  Tarlz creates, lists, and extracts
+archives in a simplified and safer variant of the POSIX pax format compressed
+with lzip, keeping the alignment between tar members and lzip members.  The
+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+)))
diff --git a/gnu/packages/compton.scm b/gnu/packages/compton.scm
index 940fc83143..60eae9f1cd 100644
--- a/gnu/packages/compton.scm
+++ b/gnu/packages/compton.scm
@@ -114,7 +114,7 @@ performance).
 (define-public picom
   (package
     (name "picom")
-    (version "7.5")
+    (version "8.2")
     (source
      (origin
        (method git-fetch)
@@ -123,7 +123,7 @@ performance).
              (commit (string-append "v" version))))
        (sha256
         (base32
-         "1l48fxl04vkzr4r94sl37nbbw7a621rn8sxmkbdv4252i1gjxd4z"))
+         "0gjksayz2xpmgglvw17ppsan2imrd1fijs579kbf27xwp503xgfl"))
        (file-name (string-append "picom-" version))))
     (build-system meson-build-system)
     (inputs
diff --git a/gnu/packages/conky.scm b/gnu/packages/conky.scm
index 6bae336b1c..0df6d1f760 100644
--- a/gnu/packages/conky.scm
+++ b/gnu/packages/conky.scm
@@ -79,7 +79,7 @@
        ("libxext" ,libxext)
        ("libxft" ,libxft)
        ("libxinerama" ,libxinerama)
-       ("pulseaudio", pulseaudio)
+       ("pulseaudio" ,pulseaudio)
        ("lua" ,lua)
        ("ncurses" ,ncurses)
        ("curl" ,curl)))
diff --git a/gnu/packages/coq.scm b/gnu/packages/coq.scm
index 166e66c09e..fb6a899b48 100644
--- a/gnu/packages/coq.scm
+++ b/gnu/packages/coq.scm
@@ -4,6 +4,8 @@
 ;;; Copyright © 2019 Dan Frumin <dfrumin@cs.ru.nl>
 ;;; Copyright © 2020 Brett Gilio <brettg@gnu.org>
 ;;; Copyright © 2020 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
+;;; Copyright © 2020 raingloom <raingloom@riseup.net>
+;;; Copyright © 2020 Robin Green <greenrd@greenrd.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -33,6 +35,7 @@
   #:use-module (gnu packages ocaml)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages rsync)
   #:use-module (gnu packages texinfo)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system ocaml)
@@ -46,7 +49,7 @@
 (define-public coq
   (package
     (name "coq")
-    (version "8.10.2")
+    (version "8.11.2")
     (source
      (origin
        (method git-fetch)
@@ -56,7 +59,7 @@
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "0ji2rzd70b3hcwfw97qk7rv3m2977ylqnq82l1555dp3njr8nm3q"))))
+         "1gia82dkmzqspw2w3s4gjyh39ghbmw4i41i4hyzc91g7mza17nbz"))))
     (native-search-paths
      (list (search-path-specification
             (variable "COQPATH")
@@ -69,7 +72,9 @@
        ("camlp5" ,camlp5)
        ("ocaml-num" ,ocaml-num)))
     (native-inputs
-     `(("ocaml-ounit" ,ocaml-ounit)))
+     `(("ocaml-ounit" ,ocaml-ounit)
+       ("rsync" ,rsync)
+       ("which" ,which)))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -96,11 +101,18 @@
          (add-after 'install 'remove-duplicate
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
-                    (bin (string-append out "/bin")))
+                    (bin (string-append out "/bin"))
+                    (coqtop (string-append bin "/coqtop"))
+                    (coqidetop (string-append bin "/coqidetop"))
+                    (coqtop.opt (string-append coqtop ".opt"))
+                    (coqidetop.opt (string-append coqidetop ".opt")))
                ;; These files are exact copies without `.opt` extension.
                ;; Removing these saves 35 MiB in the resulting package.
-               (delete-file (string-append bin "/coqtop.opt"))
-               (delete-file (string-append bin "/coqidetop.opt")))
+               ;; Unfortunately, completely deleting them breaks coqide.
+               (delete-file coqtop.opt)
+               (delete-file coqidetop.opt)
+               (symlink coqtop coqtop.opt)
+               (symlink coqidetop coqidetop.opt))
              #t))
          (add-after 'install 'install-ide
            (lambda* (#:key outputs #:allow-other-keys)
@@ -117,7 +129,7 @@
                ;; Fails because the output is not formatted as expected.
                (delete-file-recursively "coq-makefile/timing")
                ;; Fails because we didn't build coqtop.byte.
-               (delete-file-recursively "coq-makefile/findlib-package")
+               (delete-file "misc/printers.sh")
                (invoke "make")))))))
     (home-page "https://coq.inria.fr")
     (synopsis "Proof assistant for higher-order logic")
@@ -207,7 +219,7 @@ provers.")
 (define-public coq-flocq
   (package
     (name "coq-flocq")
-    (version "3.2.0")
+    (version "3.3.1")
     (source
      (origin
        (method git-fetch)
@@ -217,7 +229,7 @@ provers.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "15bi36x7zj0glsb3s2gwqd4wswhfzh36rbp7imbyff53a7nna95l"))))
+         "01gdykva0lcw6y3dm8j0djxayb87szfg9vn0mxd6z3pks644misl"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("autoconf" ,autoconf)
@@ -264,7 +276,7 @@ inside Coq.")
 (define-public coq-gappa
   (package
     (name "coq-gappa")
-    (version "1.4.2")
+    (version "1.4.4")
     (source
      (origin
        (method git-fetch)
@@ -274,7 +286,7 @@ inside Coq.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "0r7jwp5xssdfzivs2flp7mzrscqhgl63mryhhf1cvndpgzqwfk2f"))))
+         "0f3g3wjkvfkm961l4jpckhsqd43jnvm7f5qqk78qc32zh1fg339n"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("autoconf" ,autoconf)
@@ -324,7 +336,7 @@ assistant.")
 (define-public coq-mathcomp
   (package
     (name "coq-mathcomp")
-    (version "1.10.0")
+    (version "1.11.0")
     (source
      (origin
        (method git-fetch)
@@ -333,7 +345,7 @@ assistant.")
              (commit (string-append "mathcomp-" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1h5h1c2025r1ms5qryvwy6pikxmpmmjav6yl127xpzmqdi6w732d"))))
+        (base32 "1axywpa1jcpnidd86irpd1gdbbg2sfbwc652675xisq5wnmfmf6f"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("ocaml" ,ocaml)
@@ -366,7 +378,7 @@ part of the distribution.")
 (define-public coq-coquelicot
   (package
     (name "coq-coquelicot")
-    (version "3.0.3")
+    (version "3.1.0")
     (source
      (origin
        (method git-fetch)
@@ -376,7 +388,7 @@ part of the distribution.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "0m5wbr2s8lnf8b7cfwv15hyzsmbcaz6hgdn7aazcrkxnwr87vgkp"))))
+         "0mz3pxan1237fr5fi79c66y7b9z7bmi0sc45kwrmkczsjm5462jm"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("autoconf" ,autoconf)
@@ -419,7 +431,7 @@ theorems between the two libraries.")
 (define-public coq-bignums
   (package
     (name "coq-bignums")
-    (version "8.10.0")
+    (version "8.11.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -428,7 +440,7 @@ theorems between the two libraries.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0bpb4flckn4nqxbs3wjiznyx1k7r8k93qdigp3qwmikp2lxvcbw5"))))
+                "1xcd7c7qlvs0narfba6px34zq0mz8rffnhxw0kzhhg6i4iw115dp"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("ocaml" ,ocaml)
@@ -452,7 +464,7 @@ provides BigN, BigZ, BigQ that used to be part of Coq standard library.")
 (define-public coq-interval
   (package
     (name "coq-interval")
-    (version "3.4.1")
+    (version "4.0.0")
     (source
      (origin
        (method git-fetch)
@@ -462,7 +474,7 @@ provides BigN, BigZ, BigQ that used to be part of Coq standard library.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "03q3dfqi3r3f7aji5s06ig4aav9ajcwswwdzi5lrgr69z0m487k4"))))
+         "01iz6qmnsm6b9s1vmdjs79vjx9xgwzn5rwyjp6bvs8hg3zlmhpip"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("autoconf" ,autoconf)
@@ -510,7 +522,7 @@ Coq proof assistant.")
       (source (origin
                 (method git-fetch)
                 (uri (git-reference
-                      (url "git://github.com/uds-psl/autosubst.git")
+                      (url "git://github.com/uds-psl/autosubst")
                       (commit commit)))
                 (file-name (git-file-name name version))
                 (sha256
@@ -548,16 +560,16 @@ uses Ltac to synthesize the substitution operation.")
 (define-public coq-equations
   (package
     (name "coq-equations")
-    (version "1.2.1")
+    (version "1.2.3")
     (source (origin
               (method git-fetch)
               (uri (git-reference
                     (url "https://github.com/mattam82/Coq-Equations")
-                    (commit (string-append "v" version "-8.10"))))
+                    (commit (string-append "v" version "-8.11"))))
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "023q5dww3drw35dm9bi9p9d0wrj9k7vax7hfdsprf8l340pb4s0k"))))
+                "1srxz1rws8jsh7402g2x2vcqgjbbsr64dxxj5d2zs48pmhb20csf"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("ocaml"  ,ocaml)
@@ -588,7 +600,7 @@ kernel.")
 (define-public coq-stdpp
   (package
     (name "coq-stdpp")
-    (version "1.2.1")
+    (version "1.4.0")
     (synopsis "Alternative Coq standard library std++")
     (source (origin
               (method git-fetch)
@@ -598,7 +610,7 @@ kernel.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1lczybg1jq9drbi8nzrlb0k199x4n07aawjwfzrl3qqc0w8kmvdz"))))
+                "1m6c7ibwc99jd4cv14v3r327spnfvdf3x2mnq51f9rz99rffk68r"))))
     (build-system gnu-build-system)
     (inputs
      `(("coq" ,coq)))
diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
index 6b74bfe04b..ca8f7a9f80 100644
--- a/gnu/packages/cpp.scm
+++ b/gnu/packages/cpp.scm
@@ -13,6 +13,9 @@
 ;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
 ;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
 ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
+;;; Copyright © 2020 Alexandros Theodotou <alex@zrythm.org>
+;;; Copyright © 2020 Greg Hogan <code@greghogan.com>
+;;; Copyright © 2020 Brett Gilio <brettg@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -39,12 +42,24 @@
   #:use-module (guix build-system python)
   #:use-module (gnu packages)
   #:use-module (gnu packages autotools)
+  #:use-module (gnu packages boost)
+  #:use-module (gnu packages c)
   #:use-module (gnu packages check)
   #:use-module (gnu packages code)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages crypto)
+  #:use-module (gnu packages curl)
+  #:use-module (gnu packages gcc)
+  #:use-module (gnu packages libevent)
+  #:use-module (gnu packages libunwind)
+  #:use-module (gnu packages linux)
   #:use-module (gnu packages llvm)
+  #:use-module (gnu packages logging)
+  #:use-module (gnu packages maths)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages popt)
+  #:use-module (gnu packages pretty-print)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages web))
 
@@ -181,7 +196,7 @@ combination of these streams.")
 (define-public xsimd
   (package
     (name "xsimd")
-    (version "7.2.3")
+    (version "7.4.9")
     (source
      (origin
        (method git-fetch)
@@ -189,7 +204,7 @@ combination of these streams.")
              (url "https://github.com/QuantStack/xsimd")
              (commit version)))
        (sha256
-        (base32 "1ny2qin1j4h35mljivh8z52kwdyjxf4yxlzb8j52ji91v2ccc88j"))
+        (base32 "11by8gbshm4vv6flqp0ihff8c6nmbaqq7ms93b38rrq68bigcply"))
        (file-name (git-file-name name version))))
     (build-system cmake-build-system)
     (arguments
@@ -199,11 +214,12 @@ combination of these streams.")
      `(("googletest" ,googletest)))
     (home-page "https://github.com/QuantStack/xsimd")
     (synopsis "C++ wrappers for SIMD intrinsics and math implementations")
-    (description "xsimd provides a unified means for using SIMD features for
-library authors.  Namely, it enables manipulation of batches of numbers with
-the same arithmetic operators as for single values.  It also provides
-accelerated implementation of common mathematical functions operating on
-batches.")
+    (description
+     "xsimd provides a unified means for using @acronym{SIMD, single instruction
+multiple data} features for library authors.  Namely, it enables manipulation of
+batches of numbers with the same arithmetic operators as for single values.
+It also provides accelerated implementation of common mathematical functions
+operating on batches.")
     (license license:bsd-3)))
 
 (define-public chaiscript
@@ -318,7 +334,8 @@ as ordering relation.")
     (build-system cmake-build-system)
     (arguments
      '(#:configure-flags
-       (list (string-append "-DJSON_TestDataDirectory="
+       (list "-DJSON_MultipleHeaders=ON" ; For json_fwd.hpp.
+             (string-append "-DJSON_TestDataDirectory="
                             (assoc-ref %build-inputs "json_test_data")))
        #:phases (modify-phases %standard-phases
                   ;; XXX: When tests are enabled, the install phase will cause
@@ -360,7 +377,7 @@ intuitive syntax and trivial integration.")
 (define-public xtl
   (package
     (name "xtl")
-    (version "0.6.15")
+    (version "0.6.23")
     (source (origin
               (method git-fetch)
               (uri
@@ -369,7 +386,7 @@ intuitive syntax and trivial integration.")
                 (commit version)))
               (sha256
                (base32
-                "0kq88cbcsvgq4hinrzxirqfpfnm3c5a0x0n2309l9zawh8vm33j4"))
+                "1kd9zl4h6nrsg29hq13vwp4zhfj8sa90vj40726lpw6vxz48k4di"))
               (file-name (git-file-name name version))))
     (native-inputs
      `(("googletest" ,googletest)
@@ -394,7 +411,7 @@ tools (containers, algorithms) used by other QuantStack packages.")
 (define-public ccls
   (package
     (name "ccls")
-    (version "0.20190823.6")
+    (version "0.20201025")
     (source
      (origin
        (method git-fetch)
@@ -402,7 +419,8 @@ tools (containers, algorithms) used by other QuantStack packages.")
              (url "https://github.com/MaskRay/ccls")
              (commit version)))
        (sha256
-        (base32 "11h5nwk4qqshf3i8yr4bxpnvmidrhkzd0zxhf1xqv8cv6r08k47f"))
+        (base32
+         "13v00q1bz8g0ckw1sv0zyicbc44irc00vhwxdv3vvwlvylm7s21p"))
        (file-name (git-file-name name version))))
     (build-system cmake-build-system)
     (arguments
@@ -493,6 +511,36 @@ it's own version of the tool, this is a fork that aims to be more responsive
 and make @code{cpplint} usable in wider contexts.")
     (license license:bsd-3)))
 
+(define-public reproc
+  (package
+    (name "reproc")
+    (version "14.1.0")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/DaanDeMeyer/reproc")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+          (base32
+            "1n71wb50qv2dmhjgw7azx5gigbrp19l2n3d41g9p05l5l0y1qg0q"))))
+   (build-system cmake-build-system)
+   (arguments
+      ;; No tests.
+    `(#:tests? #f
+      ;; Enable building of shared library.
+      #:configure-flags `("-DBUILD_SHARED_LIBS=1")))
+   (native-inputs
+    `(("pkg-config" ,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
+main use case is executing command line applications directly from C or C++
+code and retrieving their output.")
+   (home-page "https://github.com/DaanDeMeyer/reproc")
+   (license license:expat)))
+
 (define-public sobjectizer
   (package
     (name "sobjectizer")
@@ -616,3 +664,169 @@ Google's C++ code base.")
 a zero-dependency C++ header-only parser combinator library for creating
 parsers according to a Parsing Expression Grammar (PEG).")
     (license license:expat)))
+
+(define-public cxxopts
+  (package
+    (name "cxxopts")
+    (version "2.2.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/jarro2783/cxxopts")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0d3y747lsh1wkalc39nxd088rbypxigm991lk3j91zpn56whrpha"))))
+    (build-system cmake-build-system)
+    (synopsis "Lightweight C++ command line option parser")
+    (description
+     "A lightweight header-only C++ option parser library, supporting the
+standard GNU style syntax for options.")
+    (home-page "https://github.com/jarro2783/cxxopts/wiki")
+    (license license:expat)))
+
+(define-public folly
+  (package
+    (name "folly")
+    (version "2020.10.05.00")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/facebook/folly")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0q4w4cvjxffc462hvs8h4zryq4965j7015zvkwagcm6cj6wmz3cn"))))
+    (build-system cmake-build-system)
+    (arguments
+     '(;; Tests must be explicitly enabled
+       ;;#:configure-flags '("-DBUILD_TESTS=ON")))
+       ;; Leave tests disabled; see https://github.com/facebook/folly/issues/1456
+       #:tests? #f))
+    (propagated-inputs
+     `(("boost" ,boost)
+       ("gflags" ,gflags)
+       ("glog" ,glog)
+       ("liburing" ,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")))
+    (native-inputs
+     `(("googletest" ,googletest)))
+    (synopsis "Collection of C++ components complementing the standard library")
+    (description
+     "Folly (acronymed loosely after Facebook Open Source Library) is a library
+of C++14 components that complements @code{std} and Boost.")
+    (home-page "https://github.com/facebook/folly/wiki")
+    ;; 32-bit is not supported: https://github.com/facebook/folly/issues/103
+    (supported-systems '("aarch64-linux" "x86_64-linux"))
+    (license license:asl2.0)))
+
+(define-public aws-sdk-cpp
+  (package
+    (name "aws-sdk-cpp")
+    (version "1.8.102")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/aws/aws-sdk-cpp")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1w8x2vakg5ngjyyg08n4g3dqy8wqnz0k3gkrlqrh460s2pvdivba"))))
+    (build-system cmake-build-system)
+    (arguments
+     '(;; Tests are run during the build phase.
+       #:tests? #f
+       #:configure-flags
+       '("-DBUILD_SHARED_LIBS=OFF"
+         "-DBUILD_DEPS=OFF")))
+    (propagated-inputs
+     `(("aws-c-common" ,aws-c-common)
+       ("aws-c-event-stream" ,aws-c-event-stream)))
+    (inputs
+     `(("aws-checksums" ,aws-checksums)
+       ("curl" ,curl)
+       ("openssl" ,openssl)
+       ("zlib" ,zlib)))
+    (synopsis "Amazon Web Services SDK for C++")
+    (description
+     "The AWS SDK for C++ provides a C++11 interface to the @acronym{AWS,Amazon
+Web Services} API.  AWS provides on-demand computing infrastructure and software
+services including database, analytic, and machine learning technologies.")
+    (home-page "https://github.com/aws/aws-sdk-cpp")
+    (license license:asl2.0)))
+
+(define-public libexpected
+  (package
+    (name "libexpected")
+    (version "1.0.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/TartanLlama/expected")
+             (commit (string-append "v" version))
+             ;; NOTE: Requires TL_CMAKE from custom
+             ;; repository. Should not affect reproducibility.
+             (recursive? #t)))
+       (file-name (git-file-name name version))
+       ;; NOTE: This patch will be unnecessary on subsequent tags.
+       (patches (search-patches "libexpected-nofetch.patch"))
+       (sha256
+        (base32 "1ckzfrljzzdw9wf8hvdfjz4wjx5na57iwxc48mbv9rf5067m21a5"))))
+    (build-system cmake-build-system)
+    ;; TODO: Clean up install phase.
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda _
+             (invoke "./tests"))))))
+    (native-inputs
+     `(("catch2" ,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
+value giving information about why something failed.  Unfortunately, chaining
+together many computations which may fail can be verbose, as error-checking
+code will be mixed in with the actual programming logic.  This implementation
+provides a number of utilities to make coding with expected cleaner.")
+    (home-page "https://tl.tartanllama.xyz/")
+    (license license:cc0)))
+
+(define-public magic-enum
+  (package
+    (name "magic-enum")
+    (version "0.7.2")
+    (home-page "https://github.com/Neargye/magic_enum")
+    (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
+                "07j5zdf3vkliwrcv6k663k35akn7qp23794sz2mnvkj9hbv9s8cx"))))
+    (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.")
+    (license license:expat)))
diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm
index 11dba4e047..874a77c552 100644
--- a/gnu/packages/cran.scm
+++ b/gnu/packages/cran.scm
@@ -1,6 +1,7 @@
 ;;; 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 Andreas Enge <andreas@enge.fr>
+;;; Copyright © 2015, 2016 Pjotr Prins <pjotr.guix@thebird.nl>
 ;;; Copyright © 2016, 2017 Ben Woodcroft <donttrustben@gmail.com>
 ;;; Copyright © 2016, 2017, 2018, 2020 Roel Janssen <roel@gnu.org>
 ;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
@@ -16,14 +17,22 @@
 ;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2018, 2019 Brett Gilio <brettg@gnu.org>
 ;;; Copyright © 2019 Nicolò Balzarotti <anothersms@gmail.com>
-;;; Copyright © 2019 Wiktor Żelazny <wzelazny@vurv.cz>
+;;; Copyright © 2019, 2020 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>
 ;;; Copyright © 2020 Danjela Lura <danielaluraa@gmail.com>
 ;;; Copyright © 2020 Naga Malleswari <nagamalli@riseup.net>
 ;;; Copyright © 2020 Eric Brown <ecbrown@ericcbrown.com>
 ;;; Copyright © 2020 Peter Lo <peterloleungyau@gmail.com>
 ;;; Copyright © 2020 Rafael Luque Leiva <rafael.luque@osoco.es>
+;;; Copyright © 2020 Lars-Dominik Braun <ldb@leibniz-psychology.org>
+;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
+;;; 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 Aniket Patil <aniket112.patil@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -47,6 +56,7 @@
   #:use-module (guix git-download)
   #:use-module (guix utils)
   #:use-module (guix build-system r)
+  #:use-module (gnu packages)
   #:use-module (gnu packages algebra)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages base)
@@ -69,6 +79,7 @@
   #:use-module (gnu packages imagemagick)
   #: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)
@@ -82,23 +93,99 @@
   #:use-module (gnu packages pulseaudio)  ;libsndfile
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-xyz)
+  #:use-module (gnu packages sqlite)
   #:use-module (gnu packages statistics)
   #:use-module (gnu packages tcl)
   #:use-module (gnu packages tls)
+  #:use-module (gnu packages version-control)
   #:use-module (gnu packages web)
+  #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg))
 
+(define-public r-brio
+  (package
+    (name "r-brio")
+    (version "1.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "brio" version))
+       (sha256
+        (base32
+         "0f7amcd2cjm09aiq39209cz680l5d2gqpp6wwfhz24zagfsa7cvb"))))
+    (properties `((upstream-name . "brio")))
+    (build-system r-build-system)
+    (home-page "https://github.com/r-lib/brio")
+    (synopsis "Basic R input output")
+    (description
+     "This package provides functions to handle basic input output.  These
+functions always read and write UTF-8 (8-bit Unicode Transformation Format)
+files and provide more explicit control over line endings.")
+    (license license:expat)))
+
+(define-public r-diffobj
+  (package
+    (name "r-diffobj")
+    (version "0.3.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "diffobj" version))
+       (sha256
+        (base32
+         "1x3d5sk8mk0s2d7dq8wxi1zv6krlx33n22ls2jwnb58b8xrmakj1"))))
+    (properties `((upstream-name . "diffobj")))
+    (build-system r-build-system)
+    (propagated-inputs `(("r-crayon" ,r-crayon)))
+    (native-inputs `(("r-knitr" ,r-knitr)))
+    (home-page "https://github.com/brodieG/diffobj")
+    (synopsis "Diffs for R objects")
+    (description
+     "Generate a colorized diff of two R objects for an intuitive
+visualization of their differences.")
+    (license license:gpl2+)))
+
+(define-public r-waldo
+  (package
+    (name "r-waldo")
+    (version "0.2.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "waldo" version))
+       (sha256
+        (base32
+         "0lsw8p4wiggqm9fvh5vgmf0ms0npcg3hcwyzlg5ahv5yx4pv5fhz"))))
+    (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)))
+    (home-page "https://github.com/r-lib/waldo")
+    (synopsis "Find differences between R objects")
+    (description
+     "Compare complex R objects and reveal the key differences.  This package
+was designed particularly for use in testing packages where being able to
+quickly isolate key differences makes understanding test failures much
+easier.")
+    (license license:expat)))
+
 (define-public r-rticles
   (package
     (name "r-rticles")
-    (version "0.14")
+    (version "0.18")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "rticles" version))
        (sha256
         (base32
-         "1377fib4asazhhki4aajvld0wa35vd3zjvyl3lf2hjm2qk3vyak7"))))
+         "1srczjy9dqw06glrv95798xsg462kfbbwm3yk1fv1zhpz9jhakwv"))))
     (properties `((upstream-name . "rticles")))
     (build-system r-build-system)
     (propagated-inputs
@@ -136,14 +223,14 @@ degree elevation and curve fitting.")
 (define-public r-v8
   (package
     (name "r-v8")
-    (version "3.2.0")
+    (version "3.4.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "V8" version))
        (sha256
         (base32
-         "0z0dwa538lkggawiwrlplz698xznzlgv9fwhdslm7g7gdxyf0xgm"))))
+         "1g9z22pc8ydx1yhv57ww2d2jg5hvrl7ilwa79x89zgn17jha5j7m"))))
     (properties `((upstream-name . "V8")))
     (build-system r-build-system)
     (arguments
@@ -206,15 +293,17 @@ programming packages such as @code{knitr} and @code{rmarkdown}.")
 (define-public r-clipr
   (package
     (name "r-clipr")
-    (version "0.7.0")
+    (version "0.7.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "clipr" version))
        (sha256
         (base32
-         "1qn2p13d0c1bpqss6mv9hk60980rzhznfqpyaf5x0fy65svy9903"))))
+         "1ywa4kipwc2d7na6iiz3wzdah99h6aynnh74yxl3nzl40xxlgbgz"))))
     (build-system r-build-system)
+    (native-inputs
+     `(("r-knitr" ,r-knitr)))
     (home-page "https://github.com/mdlincoln/clipr")
     (synopsis "Read and write from the system clipboard")
     (description
@@ -242,20 +331,50 @@ ordered indexed observations.  It is particularly aimed at irregular time
 series of numeric vectors/matrices and factors.")
     (license license:gpl2+)))
 
+(define-public r-ggalluvial
+  (package
+   (name "r-ggalluvial")
+   (version "0.12.3")
+   (source (origin
+            (method url-fetch)
+            (uri (cran-uri "ggalluvial" version))
+            (sha256
+             (base32
+              "0mkan9gxg3yxjism22yxbhvlh2lh7wpbrqpb355za790prcmjbh3"))))
+   (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)))
+   (native-inputs
+    `(("r-knitr" ,r-knitr)))
+   (home-page "http://corybrunson.github.io/ggalluvial/")
+   (synopsis "Alluvial plots for ggplot2")
+   (description "This package provides alluvial plots for @code{ggplot2}.
+Alluvial plots use variable-width ribbons and stacked bar plots to represent
+multi-dimensional or repeated-measures data with categorical or ordinal
+variables.")
+   (license license:gpl3)))
+
 (define-public r-ggpmisc
   (package
     (name "r-ggpmisc")
-    (version "0.3.5")
+    (version "0.3.7")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "ggpmisc" version))
               (sha256
                (base32
-                "0ma2d3a3v8n85sghxr9anl6vgbs8gi82i1dllw99n81gsm59wgin"))))
+                "121s6c9k4fn3rcz2myc1kxczllq2826c8zllaii58q8lica7dsyn"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-broom" ,r-broom)
        ("r-dplyr" ,r-dplyr)
+       ("r-glue" ,r-glue)
        ("r-ggplot2" ,r-ggplot2)
        ("r-gridextra" ,r-gridextra)
        ("r-lubridate" ,r-lubridate)
@@ -305,14 +424,14 @@ organisms via the @code{g:Profiler} toolkit.")
 (define-public r-gprofiler2
   (package
     (name "r-gprofiler2")
-    (version "0.1.9")
+    (version "0.2.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "gprofiler2" version))
        (sha256
         (base32
-         "112hmmvdwg8xz90w1bsbzc55y4xi9jj4dqy0q4bsgp49x58r92rb"))))
+         "0q8hl3gdxy34c0181ql405fdklz82nfvmwdcafd5mzf935rjpyjg"))))
     (properties `((upstream-name . "gprofiler2")))
     (build-system r-build-system)
     (propagated-inputs
@@ -427,13 +546,13 @@ control over dimensions and appearance.")
 (define-public r-ecp
   (package
     (name "r-ecp")
-    (version "3.1.2")
+    (version "3.1.3")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "ecp" version))
               (sha256
                (base32
-                "11f9p869xr0zg779i46gmflxlq4xclk9wxbab0nj2fan26pn4sfy"))))
+                "0n602jssl6rf596nwm6hbl7s9vdlqi20w8mrhxicj373mw5v22m8"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-rcpp" ,r-rcpp)))
@@ -517,6 +636,59 @@ functions are simplified but can be faster or have other advantages.")
 objects.")
     (license license:gpl3)))
 
+(define-public r-mboost
+  (package
+   (name "r-mboost")
+   (version "2.9-4")
+   (source (origin
+            (method url-fetch)
+            (uri (cran-uri "mboost" version))
+            (sha256
+             (base32
+              "1dgyc38axfk2a430wsdnnk76xikizkyxf5r0l1kbp6cacrx6idz0"))))
+   (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)))
+   (home-page "https://github.com/boost-R/mboost")
+   (synopsis "Model-based boosting")
+   (description
+    "This package provides a functional gradient descent algorithm (boosting)
+for optimizing general risk functions utilizing component-wise (penalised)
+least squares estimates or regression trees as base-learners for fitting
+generalized linear, additive and interaction models to potentially
+high-dimensional data.")
+   (license license:gpl2)))
+
+(define-public r-shadowtext
+  (package
+   (name "r-shadowtext")
+   (version "0.0.7")
+   (source (origin
+            (method url-fetch)
+            (uri (cran-uri "shadowtext" version))
+            (sha256
+             (base32
+              "1s1ip8zfr684a3ld7hvf524bhn2j31k6d1wbhh1ni0flsggv2ckf"))))
+   (properties `((upstream-name . "shadowtext")))
+   (build-system r-build-system)
+   (propagated-inputs
+    `(("r-ggplot2" ,r-ggplot2)
+      ("r-scales" ,r-scales)))
+   (native-inputs
+    `(("r-knitr" ,r-knitr)))
+   (home-page "https://github.com/GuangchuangYu/shadowtext/")
+   (synopsis "Shadow text grob and layer")
+   (description "This package implements @code{shadowtextGrob()} for
+@code{grid} and @code{geom_shadowtext()} layer for @code{ggplot2}.
+These functions draw text grob with background shadow.")
+   (license license:artistic2.0)))
+
 (define-public r-sys
   (package
     (name "r-sys")
@@ -542,6 +714,34 @@ interrupts and timeouts.  This provides the basis for a sandboxing
 mechanism.")
     (license license:expat)))
 
+(define-public r-ashr
+  (package
+   (name "r-ashr")
+   (version "2.2-47")
+   (source (origin
+            (method url-fetch)
+            (uri (cran-uri "ashr" version))
+            (sha256
+             (base32
+              "1rqb5j30ylaf1h4l66x4jxyn5inrvhc42d90qd5mgkxsq0ghdlr4"))))
+   (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)))
+   (native-inputs
+    `(("r-knitr" ,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
+large-scale hypothesis testing and false discovery rate estimation.")
+   (license license:gpl3+)))
+
 (define-public r-askpass
   (package
     (name "r-askpass")
@@ -566,20 +766,20 @@ read a protected key.")
 (define-public r-vegan
   (package
     (name "r-vegan")
-    (version "2.5-6")
+    (version "2.5-7")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "vegan" version))
        (sha256
         (base32
-         "0g60rgn1i7wqf9pf5m1yki1m45gcp7i5hmjic0ci0f6vng70mh5k"))))
+         "0aj6m9l1vkh32sar6fyvq4p8j4h2f2f347w1300qnzgaa5lmhfz6"))))
     (build-system r-build-system)
     (native-inputs
-     `(("gfortran" ,gfortran)))
+     `(("r-knitr" ,r-knitr)             ; needed for vignettes
+       ("gfortran" ,gfortran)))
     (propagated-inputs
      `(("r-cluster" ,r-cluster)
-       ("r-knitr" ,r-knitr)             ; needed for vignettes
        ("r-lattice" ,r-lattice)
        ("r-mass" ,r-mass)
        ("r-mgcv" ,r-mgcv)
@@ -746,14 +946,14 @@ same time tries to group instances from the same class together.")
 (define-public r-callr
   (package
     (name "r-callr")
-    (version "3.4.3")
+    (version "3.5.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "callr" version))
        (sha256
         (base32
-         "1dc20gdawy9mhnc452qlshv2p4krs6c2gymvpv365mn141zjgdq1"))))
+         "15l6ppsxdadlnl4fk0f8bvf327n8izk96px5d08m1ay9iij8qcyf"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-r6" ,r-r6)
@@ -824,14 +1024,39 @@ into a pipeline of data manipulation and visualisation.")
 (define-public r-httpuv
   (package
     (name "r-httpuv")
-    (version "1.5.4")
+    (version "1.5.5")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "httpuv" version))
               (sha256
                (base32
-                "066rprqvz9qln6xd85x1yh1wbbmzd157xjl8zq1zbgr8l6347inm"))))
+                "05rir03xwamwfq5691vx0x957sgmr4i8iv5vpx5rv1f74y4wkrhb"))
+              ;; 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"))
+              (modules '((guix build utils)))
+              (snippet
+               `(begin
+                  (delete-file-recursively "src/libuv")
+                  ;; Cannot unbundle http-parser, because it contains local
+                  ;; modifications.
+                  #t))))
     (build-system r-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'unbundle-libuv
+           (lambda* (#:key outputs #:allow-other-keys)
+             (substitute* (find-files "src" "\\.cpp$|\\.h$")
+               (("\"libuv/include/uv\\.h\"")
+                "<uv.h>"))
+             ;; Fix https://github.com/rstudio/httpuv/issues/282
+             (substitute* "src/http.cpp"
+               (("uv_pipe_init\\(pLoop, &pSocket->handle\\.pipe, true\\);")
+                "uv_pipe_init(pLoop, &pSocket->handle.pipe, 0);"))
+             #t)))))
+    (inputs
+     `(("libuv" ,libuv)))
     (propagated-inputs
      `(("r-bh" ,r-bh)
        ("r-later" ,r-later)
@@ -853,13 +1078,13 @@ particularly easy to create complete web applications using httpuv alone.")
 (define-public r-jsonlite
   (package
     (name "r-jsonlite")
-    (version "1.7.0")
+    (version "1.7.2")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "jsonlite" version))
               (sha256
                (base32
-                "1izfrk5yahsz6s69wanfspn72qdffjglbr5305akj72ig9fnladq"))))
+                "1lhzcpz9clwq04i5m6jzkvw9x03pwlqrixv4l9xzchjr8d84nd86"))))
     (build-system r-build-system)
     (native-inputs
      `(("r-knitr" ,r-knitr)))
@@ -879,13 +1104,13 @@ in systems and applications.")
 (define-public r-servr
   (package
     (name "r-servr")
-    (version "0.18")
+    (version "0.21")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "servr" version))
               (sha256
                (base32
-                "0xfbf1a1w34hbsx4jrdr4rqf22v7gf1p37ngknglv1dyxih7ipja"))))
+                "12fk585hmz735v4hra8da9wld1fmd67byqnf95m7jjyh7l3dmh1z"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-httpuv" ,r-httpuv)
@@ -903,13 +1128,13 @@ directory.")
 (define-public r-htmltools
   (package
     (name "r-htmltools")
-    (version "0.5.0")
+    (version "0.5.1")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "htmltools" version))
               (sha256
                (base32
-                "07fjznax5sin563ddnzlb7iwc8b39wzf7ymjn66pbmxgskijq2pz"))))
+                "01v33zcs9rv16r6v8ckqh92k5axj6skmk9hyakmqqmgra522xj3a"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-base64enc" ,r-base64enc)
@@ -924,18 +1149,20 @@ directory.")
 (define-public r-htmlwidgets
   (package
     (name "r-htmlwidgets")
-    (version "1.5.1")
+    (version "1.5.3")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "htmlwidgets" version))
               (sha256
                (base32
-                "10fp306l1nybkah6jrlrqwwdb6zvklbddp8i3w9v9naj8la5jbnl"))))
+                "0a8g7wqd3qxnhwkm9c9bkzg29db7gvjiaa5y038ln8nch8qq7981"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-htmltools" ,r-htmltools)
        ("r-jsonlite" ,r-jsonlite)
        ("r-yaml" ,r-yaml)))
+    (native-inputs
+     `(("r-knitr" ,r-knitr)))
     (home-page "https://github.com/ramnathv/htmlwidgets")
     (synopsis "HTML Widgets for R")
     (description
@@ -947,13 +1174,13 @@ applications.")
 (define-public r-htmltable
   (package
     (name "r-htmltable")
-    (version "2.0.1")
+    (version "2.1.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "htmlTable" version))
        (sha256
-        (base32 "0ma52kajzxfg9w811d6ldhghzn9xhyr8bh7k5v265k82bzx7rac6"))))
+        (base32 "1gzh0bdxi55p1ckxv4k0a41b1j0grwv2w3lkqz4c3gkw66dk6ja0"))))
     (properties `((upstream-name . "htmlTable")))
     (build-system r-build-system)
     (propagated-inputs
@@ -1324,13 +1551,13 @@ application framework for R, making it easy to create attractive dashboards.")
 (define-public r-shinyfiles
   (package
     (name "r-shinyfiles")
-    (version "0.8.0")
+    (version "0.9.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "shinyFiles" version))
        (sha256
-        (base32 "0gwyx37f2r86cldsyknws9pafpj8g5mg3mchlyl9ymgnk5f4b88w"))))
+        (base32 "0rsijlx16vd74r7bd8s9zipy71kgpw19v9s85kxj5bmwc6njmbai"))))
     (properties `((upstream-name . "shinyFiles")))
     (build-system r-build-system)
     (propagated-inputs
@@ -1379,20 +1606,19 @@ Bootstrap themes, which are packaged for use with Shiny applications.")
 (define-public r-d3r
   (package
     (name "r-d3r")
-    (version "0.9.0")
+    (version "0.9.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "d3r" version))
        (sha256
         (base32
-         "0vd1qk8yr18xdfkv5ybhqvf0mmccpi721wqa7c881nzm9nnlzc4y"))))
+         "0kc82vvyfxhxvqfalngn36prn3sxdiinsx04rn99ha6zdc27zp5k"))))
     (build-system r-build-system)
     (arguments
      `(#:modules ((guix build utils)
                   (guix build r-build-system)
-                  (srfi srfi-1)
-                  (ice-9 popen))
+                  (srfi srfi-1))
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'process-javascript
@@ -1406,16 +1632,16 @@ Bootstrap themes, which are packaged for use with Shiny applications.")
                         (,(assoc-ref inputs "d3.v4.js")
                          "v4/dist/d3.min.js")
                         (,(assoc-ref inputs "d3.v5.js")
-                         "v5/dist/d3.min.js"))))
+                         "v5/dist/d3.min.js")
+                        (,(assoc-ref inputs "d3.v6.js")
+                         "v6/dist/d3.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)))))
+                               (invoke "esbuild" source "--minify"
+                                       (string-append "--outfile=" target)))
                              sources targets))))
              #t)))))
     (propagated-inputs
@@ -1424,7 +1650,7 @@ Bootstrap themes, which are packaged for use with Shiny applications.")
        ("r-rlang" ,r-rlang)
        ("r-tidyr" ,r-tidyr)))
     (native-inputs
-     `(("uglify-js" ,uglify-js)
+     `(("esbuild" ,esbuild)
        ("d3.v3.js"
         ,(origin
            (method url-fetch)
@@ -1445,7 +1671,14 @@ Bootstrap themes, which are packaged for use with Shiny applications.")
            (uri "https://d3js.org/d3.v5.js")
            (sha256
             (base32
-             "0kxvx5pfagxn6nhavdwsdnzyd26g0z5dsfi1pi5dvcmb0c8ipcdn"))))))
+             "0kxvx5pfagxn6nhavdwsdnzyd26g0z5dsfi1pi5dvcmb0c8ipcdn"))))
+       ("d3.v6.js"
+        ,(origin
+           (method url-fetch)
+           (uri "https://d3js.org/d3.v6.js")
+           (sha256
+            (base32
+             "1x6432ca7p1pfxhz3airzw943fincn9izzxkclc1wmphcvv2n2p9"))))))
     (home-page "https://github.com/timelyportfolio/d3r")
     (synopsis "d3.js utilities for R")
     (description
@@ -1493,14 +1726,14 @@ in R and Shiny via the D3 visualization library.")
 (define-public r-crosstalk
   (package
     (name "r-crosstalk")
-    (version "1.1.0.1")
+    (version "1.1.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "crosstalk" version))
        (sha256
         (base32
-         "03ihj7cimkklrbad9zic78xsrfcisygmgy859hqnx0hiph80p9rn"))))
+         "1n6c6s7a6yxiwvva71x6bzcrim8xprl5s01fqiy61yq0y3vk8cpd"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-htmltools" ,r-htmltools)
@@ -1784,14 +2017,14 @@ component analysis (with robust methods, and parallelized functions).")
 (define-public r-ape
   (package
     (name "r-ape")
-    (version "5.4")
+    (version "5.4-1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "ape" version))
        (sha256
         (base32
-         "0f74x9vx9sxpns2hlq4w2x80cd2gw42isfgncvs9pqbjf4hiyqnr"))))
+         "1r7fwyz30ippcl1ibqiv1xryf44x5crcks5kx19h146ffj76qcgh"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-lattice" ,r-lattice)
@@ -1840,14 +2073,16 @@ XML.  To learn more about the Abbyy OCR API, see @url{http://ocrsdk.com/}.")
 (define-public r-colorspace
   (package
     (name "r-colorspace")
-    (version "1.4-1")
+    (version "2.0-0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "colorspace" version))
        (sha256
-        (base32 "0wyny3ah2d74hqv80s6imrarpna09gq3j9rjnz6zx2qg0lx72gb9"))))
+        (base32 "13h1hara0s6xn16bgkrbd0flszah1yiylwfwxwn2inqqk6pm6sjf"))))
     (build-system r-build-system)
+    (native-inputs
+     `(("r-knitr" ,r-knitr)))
     (home-page "https://cran.r-project.org/web/packages/colorspace")
     (synopsis "Color space manipulation")
     (description
@@ -1860,14 +2095,14 @@ colors are provided.")
 (define-public r-glue
   (package
     (name "r-glue")
-    (version "1.4.1")
+    (version "1.4.2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "glue" version))
        (sha256
         (base32
-         "1j1va4vi3g9sl0cyjdwxvh5lvh10x8k9qvnsr9zyxddcbk9qgdpq"))))
+         "1bgpirdvjrf0da734clrixawvpdap4lpda4g89vais96589m8wwz"))))
     (build-system r-build-system)
     ;; knitr depends on glue, so we can't add knitr here to build the
     ;; vignettes.
@@ -1903,6 +2138,32 @@ of space-time series.  The @code{pastecs} library is a PNEC-Art4 and IFREMER
 initiative to bring PASSTEC 2000 functionalities to R.")
    (license license:gpl2+)))
 
+(define-public r-partykit
+  (package
+   (name "r-partykit")
+   (version "1.2-11")
+   (source (origin
+             (method url-fetch)
+             (uri (cran-uri "partykit" version))
+             (sha256
+              (base32
+               "00n6a74x257m2jk7jadjfxaclihxqpqwh356bgxmq8rag0nk70rs"))))
+   (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)))
+   (home-page "http://partykit.R-Forge.R-project.org/partykit")
+   (synopsis "Toolkit for recursive partytioning")
+   (description
+    "This package provides a toolkit with infrastructure for representing,
+summarizing, and visualizing tree-structured regression and classification
+models.")
+   (license license:gpl2+)))
+
 (define-public r-plogr
   (package
     (name "r-plogr")
@@ -1960,13 +2221,13 @@ print, summary, plot, update, etc.
 (define-public r-ps
   (package
     (name "r-ps")
-    (version "1.3.4")
+    (version "1.5.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "ps" version))
        (sha256
-        (base32 "1cxfhnff22fbsr9vynhql0rhhrqfxvkb6kv11h2m740r9scwcs44"))))
+        (base32 "15pyz94b0z6ibrjp25np5nd4z20whnnr35wsavdgwmsmynba2qbl"))))
     (build-system r-build-system)
     (home-page "https://ps.r-lib.org")
     (synopsis "List, query, and manipulate system processes")
@@ -1978,13 +2239,13 @@ processes.  Most of its code is based on the @code{psutil} Python package.")
 (define-public r-pkgbuild
   (package
     (name "r-pkgbuild")
-    (version "1.1.0")
+    (version "1.2.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "pkgbuild" version))
        (sha256
-        (base32 "1gdbrjq4kiwm45c6pb23mp327qyjvslhyf72ca4zhlzwc5vgp6xk"))))
+        (base32 "0qx920h2viwjg10va81nj0xja495d8ni6vcc25ggvzki6a6k069f"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-callr" ,r-callr)
@@ -2035,13 +2296,13 @@ you to rapidly iterate while developing a package.")
 (define-public r-rcpp
   (package
     (name "r-rcpp")
-    (version "1.0.5")
+    (version "1.0.6")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "Rcpp" version))
        (sha256
-        (base32 "012wbj446k1wz6bp6bpf6h77ypvcsw69xvnax6qf6vyc7dj2qimq"))))
+        (base32 "04ph6lm36cmvz01ng53pvvf3jxvzsn9smyflkfc7l3q0pib4gwn9"))))
     (build-system r-build-system)
     (home-page "http://www.rcpp.org")
     (synopsis "Seamless R and C++ integration")
@@ -2098,6 +2359,31 @@ where the bound function accepts additional arguments.")
 bindings that call a C++ function.")
     (license license:expat)))
 
+(define-public r-bisquerna
+  (package
+   (name "r-bisquerna")
+   (version "1.0.4")
+   (source (origin
+            (method url-fetch)
+            (uri (cran-uri "BisqueRNA" version))
+            (sha256
+             (base32
+              "01g34n87ml7n3pck77497ddgbv3rr5p4153ac8ninpgjijlm3jw2"))))
+   (properties `((upstream-name . "BisqueRNA")))
+   (build-system r-build-system)
+   (propagated-inputs
+    `(("r-biobase" ,r-biobase)
+      ("r-limsolve" ,r-limsolve)))
+   (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
+abundances from heterogeneous bulk expression.  A reference-based method
+utilizes single-cell information to generate a signature matrix and
+transformation of bulk expression for accurate regression based estimates.
+A marker-based method utilizes known cell-specific marker genes to measure
+relative abundances across samples.")
+   (license license:gpl3)))
+
 (define-public r-auc
   (package
     (name "r-auc")
@@ -2145,14 +2431,14 @@ on (non-orthogonal) variable vectors in scatterplots and biplots.")
 (define-public r-shape
   (package
     (name "r-shape")
-    (version "1.4.4")
+    (version "1.4.5")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "shape" version))
        (sha256
         (base32
-         "0hadk3mapkhbh8xjkiz52vxdagmmgvm15xwpzb90ikw4giyipjzl"))))
+         "17qqhjyfhxv9la07ykaslb50c8g4d0cgfypx4y91h9i2yjw7jjh9"))))
     (build-system r-build-system)
     (home-page "https://cran.r-project.org/web/packages/shape")
     (synopsis "Functions for plotting graphical shapes")
@@ -2185,14 +2471,14 @@ validation and filtering on the values, making options invisible or private.")
 (define-public r-circlize
   (package
     (name "r-circlize")
-    (version "0.4.10")
+    (version "0.4.12")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "circlize" version))
        (sha256
         (base32
-         "1xb1jq3mg4kw1513zv1i09vhn7rj7f8vp0bnms2qml74s47wxsgk"))))
+         "1x2j6a80bb4fly3dm91ias964s1gb1cmzj3lyh69ikwjaam0rdmk"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-colorspace" ,r-colorspace)
@@ -2264,19 +2550,21 @@ rows, dropping names) to see if the modified versions are identical.")
 (define-public r-dendextend
   (package
     (name "r-dendextend")
-    (version "1.13.4")
+    (version "1.14.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "dendextend" version))
        (sha256
         (base32
-         "1pjbz6sb4pgh3d5pm53vmf3q8y6lq3hrgjd6547xxs3m63sb8mn4"))))
+         "0n3qg76apgbqbvxv2yp5qwpy6nx03xmmc9mdfyq4dqblqhdld29p"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-ggplot2" ,r-ggplot2)
        ("r-magrittr" ,r-magrittr)
        ("r-viridis" ,r-viridis)))
+    (native-inputs
+     `(("r-knitr" ,r-knitr)))
     (home-page "https://cran.r-project.org/web/packages/dendextend")
     (synopsis "Extending 'dendrogram' functionality in R")
     (description
@@ -2291,14 +2579,14 @@ compare different dendrograms to one another.")
 (define-public r-getoptlong
   (package
     (name "r-getoptlong")
-    (version "1.0.2")
+    (version "1.0.5")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "GetoptLong" version))
        (sha256
         (base32
-         "1p89v2qzqfxyrmqzkv245716n9i4bllnq77a6gw811mgdhxbd51l"))))
+         "00fpm6nd3kqa2ikasxa62jzywi46fvvmx1mdavcp5yrxxn37j8wc"))))
     (properties `((upstream-name . "GetoptLong")))
     (build-system r-build-system)
     (inputs
@@ -2341,14 +2629,14 @@ any subsequent lookup as it keeps the hash table in memory.")
 (define-public r-ff
   (package
     (name "r-ff")
-    (version "4.0.2")
+    (version "4.0.4")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "ff" version))
        (sha256
         (base32
-         "1qbfmhk4v76q145yalqaiaffklvkfs615b5m0imxyjyjcvx1nbn0"))))
+         "1rfj2ff5cxzdp9nvfnbgmswc1jvxz5vkxqgpv6gprwk32a0z3v12"))))
     (build-system r-build-system)
     (propagated-inputs `(("r-bit" ,r-bit)))
     (home-page "http://ff.r-forge.r-project.org/")
@@ -2364,14 +2652,14 @@ in main memory.")
 (define-public r-ffbase
   (package
     (name "r-ffbase")
-    (version "0.12.8")
+    (version "0.13.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "ffbase" version))
        (sha256
         (base32
-         "0mjk7dkq1ginqqfvngzny747ggf9a8fd7kblq96n5ys1jrwjyqhq"))))
+         "0knl0vnh8w4q3ry24gp4fd55ipnaj9hb1rwm31fs119kgmh3gd8x"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-bit" ,r-bit)
@@ -2425,6 +2713,36 @@ quantities.")
 @code{melt} and @code{cast}.  This package provides them.")
     (license license:expat)))
 
+(define-public r-restrserve
+  (package
+    (name "r-restrserve")
+    (version "0.4.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "RestRserve" version))
+       (sha256
+        (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)))
+    (native-inputs
+     `(("r-knitr" ,r-knitr)))
+    (home-page "https://restrserve.org")
+    (synopsis "R web API framework")
+    (description
+     "RestRserve is an R web API framework for building high-performance AND
+robust microservices and app backends.  With Rserve backend on UNIX-like
+systems it is parallel by design.  It will handle incoming requests in
+parallel - each request in a separate fork.")
+    (license license:gpl2+)))
+
 (define-public r-progress
   (package
     (name "r-progress")
@@ -2454,20 +2772,22 @@ package also provides a C++ API, that works with or without Rcpp.")
 (define-public r-ggally
   (package
     (name "r-ggally")
-    (version "2.0.0")
+    (version "2.1.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "GGally" version))
        (sha256
         (base32
-         "1gkmpzh1yvwvypkw0nwqv3gsf6za3220wig3rfv8g23kss60rl1s"))))
+         "0lvcvlc8p2cii7rqx7m81f7cv3kk9mlf7cbbgv7l75g7ljw8dyvz"))))
     (properties `((upstream-name . "GGally")))
     (build-system r-build-system)
     (inputs
-     `(("libressl" ,libressl)))
+     `(("openssl" ,openssl)))
     (propagated-inputs
-     `(("r-ggplot2" ,r-ggplot2)
+     `(("r-dplyr" ,r-dplyr)
+       ("r-forcats" ,r-forcats)
+       ("r-ggplot2" ,r-ggplot2)
        ("r-gtable" ,r-gtable)
        ("r-lifecycle" ,r-lifecycle)
        ("r-plyr" ,r-plyr)
@@ -2475,7 +2795,8 @@ package also provides a C++ API, that works with or without Rcpp.")
        ("r-rcolorbrewer" ,r-rcolorbrewer)
        ("r-reshape" ,r-reshape)
        ("r-rlang" ,r-rlang)
-       ("r-scales" ,r-scales)))
+       ("r-scales" ,r-scales)
+       ("r-tidyr" ,r-tidyr)))
     (home-page "https://ggobi.github.io/ggally")
     (synopsis "Extension to ggplot2")
     (description
@@ -2510,13 +2831,13 @@ most popular ones.")
 (define-public r-sp
   (package
     (name "r-sp")
-    (version "1.4-2")
+    (version "1.4-5")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "sp" version))
        (sha256
-        (base32 "02jxsd30apzjbdbssirysq70d4svdwzn931jhxr0ladl72g9bqvk"))))
+        (base32 "1nh9izsnszzm5kbq461w8bi0yh7fqzb74b2zmpg5qis0slbb5vkb"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-lattice" ,r-lattice)))
@@ -2530,6 +2851,25 @@ selection, as well as methods for retrieving coordinates, for subsetting,
 print, summary, etc.")
     (license license:gpl2+)))
 
+(define-public r-laplacesdemon
+  (package
+    (name "r-laplacesdemon")
+    (version "16.1.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "LaplacesDemon" version))
+       (sha256
+        (base32 "1nv1kx86cg8f2s8q15pzskc0lg94bb250p0fhybrx5sjqv1s2lj1"))))
+    (properties `((upstream-name . "LaplacesDemon")))
+    (build-system r-build-system)
+    (home-page "https://github.com/LaplacesDemonR/LaplacesDemon")
+    (synopsis "Complete environment for Bayesian inference")
+    (description
+     "This package provides a complete environment for Bayesian inference using
+a variety of different samplers.")
+    (license license:expat)))
+
 (define-public r-rmtstat
   (package
     (name "r-rmtstat")
@@ -2607,14 +2947,14 @@ quantile mixture from L-moments and trimmed L-moments.")
 (define-public r-distillery
   (package
     (name "r-distillery")
-    (version "1.1")
+    (version "1.2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "distillery" version))
        (sha256
         (base32
-         "15qhvhg6wmvlxrvvw70sk8pv76z5pd04vyasgczvxa0599ih7bzh"))))
+         "10nhh9p0hp294pp4aav0y0zsmir2qbn05sf3k52rmzmm36q2kc8y"))))
     (build-system r-build-system)
     (home-page "https://ral.ucar.edu/staff/ericg/")
     (synopsis "Functions for confidence intervals and object information")
@@ -2625,17 +2965,36 @@ complex object; primarily used in common with the packages extRemes and
 SpatialVx.")
     (license license:gpl2+)))
 
+(define-public r-etrunct
+  (package
+   (name "r-etrunct")
+   (version "0.1")
+   (source (origin
+            (method url-fetch)
+            (uri (cran-uri "etrunct" version))
+            (sha256
+             (base32
+              "0ayazgyqlc8jcqr03cwfmfhm4pck6xri1r6vkgqy4arqkrrnrcqr"))))
+   (properties `((upstream-name . "etrunct")))
+   (build-system r-build-system)
+   (home-page "https://cran.r-project.org/web/packages/etrunct")
+   (synopsis "Computes moments of univariate truncated T distribution")
+   (description "This package computes moments of univariate truncated
+T distribution.  There is only one exported function, @code{e_trunct},
+which should be seen for details.")
+   (license license:expat)))
+
 (define-public r-extremes
   (package
     (name "r-extremes")
-    (version "2.0-12")
+    (version "2.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "extRemes" version))
        (sha256
         (base32
-         "0wldzvj1h93jksq31dw9zgnr1wrqwmfr9qwmg7qk7nznsn2yy1h2"))))
+         "1b69r3mzl6hp3g3rqxyc77m8r40jyq7c2d87q85af7xqkn6hnxid"))))
     (properties `((upstream-name . "extRemes")))
     (build-system r-build-system)
     (propagated-inputs
@@ -2652,14 +3011,14 @@ or excesses over a high threshold.")
 (define-public r-lmtest
   (package
     (name "r-lmtest")
-    (version "0.9-37")
+    (version "0.9-38")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "lmtest" version))
        (sha256
         (base32
-         "02nasm0j2vwkhz11dxqixs23msy1s3yj0jps6949fmgh9gwjkjfx"))))
+         "0sr19bmw2cpagfvwg772m79wvl1i2hww1xfr69bzr3rr8pm2r8ij"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-zoo" ,r-zoo)))
@@ -2697,13 +3056,13 @@ by Li, Brown, Huang, and Bickel")
 (define-public r-inline
   (package
     (name "r-inline")
-    (version "0.3.15")
+    (version "0.3.17")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "inline" version))
               (sha256
                (base32
-                "0s4wssvpan189fijahknxq5s22ww9bzmdlmyhnra748r7khky17z"))))
+                "1wslsn60q959yrr27cwanba43qlpfaxzdli46i9dc26lxfr5fa3r"))))
     (build-system r-build-system)
     (home-page "https://cran.r-project.org/web/packages/inline")
     (synopsis "Functions to inline C, C++, Fortran function calls from R")
@@ -2734,6 +3093,24 @@ and S4 methods with inlined C, C++ or Fortran code supporting @code{.C} and
 representation of intervals, including a method of coercing variables
 in data frames.")
     (license license:gpl2)))
+(define-public r-invgamma
+  (package
+   (name "r-invgamma")
+   (version "1.1")
+   (source (origin
+            (method url-fetch)
+            (uri (cran-uri "invgamma" version))
+            (sha256
+             (base32
+              "12ga2y4wc9bc5zz6vimvxwgjpsx3ys3209nq63gscbw559ydxa5a"))))
+   (properties `((upstream-name . "invgamma")))
+   (build-system r-build-system)
+   (home-page "https://github.com/dkahle/invgamma")
+   (synopsis "Inverse gamma distribution")
+   (description "This package provides a light weight implementation of the
+standard distribution functions for the inverse gamma distribution, wrapping
+those for the gamma distribution in the @code{stats} package.")
+   (license license:gpl2)))
 
 (define-public r-bdsmatrix
   (package
@@ -2869,14 +3246,14 @@ functions from LINPACK.")
 (define-public r-fitdistrplus
   (package
     (name "r-fitdistrplus")
-    (version "1.1-1")
+    (version "1.1-3")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "fitdistrplus" version))
        (sha256
         (base32
-         "1rnfnwmxa495fql7q0h9018cnwygwhj8gfh6ryz1vbf474570vjl"))))
+         "1pjnqx0j26dai2fa4ip56wspmfsrcm9dpmxkg15y9623w5b58vbp"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-mass" ,r-mass)
@@ -3011,14 +3388,14 @@ contexts.")
 (define-public r-squarem
   (package
     (name "r-squarem")
-    (version "2020.3")
+    (version "2021.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "SQUAREM" version))
        (sha256
         (base32
-         "17l05i87vwvcsk79fbg52zrx04zdlwiiyl3ga8qafs7mqx0j976q"))))
+         "0n1s32l9p4vdm3h5q6g43s0qbpzry08difsh0yay80wrla6f3rb6"))))
     (properties `((upstream-name . "SQUAREM")))
     (build-system r-build-system)
     (home-page "https://coah.jhu.edu/people/Faculty_personal_Pages/Varadhan.html")
@@ -3034,19 +3411,21 @@ available in a vignette.")
 (define-public r-lava
   (package
     (name "r-lava")
-    (version "1.6.7")
+    (version "1.6.8.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "lava" version))
        (sha256
         (base32
-         "0ffzxbb8pvfh1m6j61az4ga37snyhylq2941fyc76w7w9i2sixv3"))))
+         "1yiz8y3jhxkszgz9m9fialp9r27hy97xh0imfvs8ziv7dk43y93d"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-numderiv" ,r-numderiv)
        ("r-squarem" ,r-squarem)
        ("r-survival" ,r-survival)))
+    (native-inputs
+     `(("r-knitr" ,r-knitr)))
     (home-page "https://github.com/kkholst/lava")
     (synopsis "Latent variable models")
     (description
@@ -3174,19 +3553,18 @@ dimensioned arrays.")
 (define-public r-rmysql
   (package
     (name "r-rmysql")
-    (version "0.10.20")
+    (version "0.10.21")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "RMySQL" version))
        (sha256
         (base32
-         "0lv9m6zpm8dgv7yixr6xhw379vbq45d7n7gkrmjrppdj8vcih77i"))))
+         "0cbb5ln9iigl816nzvsls9zil5qlfr8yv2aginapqv6n69nz0srs"))))
     (properties `((upstream-name . "RMySQL")))
     (build-system r-build-system)
     (inputs
-     `(("mariadb" ,mariadb "lib")
-       ("mariadb-dev" ,mariadb "dev")
+     `(("mariadb-dev" ,mariadb "dev")
        ("zlib" ,zlib)))
     (propagated-inputs
      `(("r-dbi" ,r-dbi)))
@@ -3264,7 +3642,7 @@ Optimization problems by using the simplex algorithm.")
        ("r-rcpp" ,r-rcpp)
        ("r-rcppprogress" ,r-rcppprogress)))
     (home-page "http://geometry.r-forge.r-project.org/")
-    (synopsis "Mesh generation and surface tesselation")
+    (synopsis "Mesh generator and surface tessellator")
     (description
      "This package makes the qhull library available in R, in a similar manner
 as in Octave.  Qhull computes convex hulls, Delaunay triangulations, halfspace
@@ -3388,14 +3766,14 @@ problems as well as resampling based estimators of prediction error.")
 (define-public r-psych
   (package
     (name "r-psych")
-    (version "2.0.7")
+    (version "2.0.12")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "psych" version))
        (sha256
         (base32
-         "13z26yk9nrgviyakkij3jc7mja8wy7al9ripab07mvy21kli79bc"))))
+         "0k5dw5nb7kx7f21b0z01dry99qcpnk7iaicv7xq9d35wv2hx8wca"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-lattice" ,r-lattice)
@@ -3421,14 +3799,14 @@ created using basic graphics.")
 (define-public r-generics
   (package
     (name "r-generics")
-    (version "0.0.2")
+    (version "0.1.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "generics" version))
        (sha256
         (base32
-         "0xk1xhpy7gpv3pvaygzhpfdxj72zmb38pb4nscfyg2ff36vx3cvi"))))
+         "0qw7r0d2qvlj1pvrlpv30d6akml624ydxkk19hv85iv6pfyx2wdb"))))
     (build-system r-build-system)
     (home-page "https://github.com/r-lib/generics")
     (synopsis "Common S3 generics not provided by base R methods")
@@ -3441,14 +3819,14 @@ by base R methods related to model fitting.")
 (define-public r-broom
   (package
     (name "r-broom")
-    (version "0.7.0")
+    (version "0.7.3")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "broom" version))
        (sha256
         (base32
-         "0bq8w1ckrladzck2g0mgiyjdrzi06kbqalk5q3pfvj1607fdv3d5"))))
+         "0bxwmqj37m06ci378xqlf7kar7pg5g903i1vnrv4i256dkj50mny"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-backports" ,r-backports)
@@ -3479,14 +3857,14 @@ provides a one-row summary of model-level statistics.")
 (define-public r-recipes
   (package
     (name "r-recipes")
-    (version "0.1.13")
+    (version "0.1.15")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "recipes" version))
        (sha256
         (base32
-         "1d3pmprkiz60w7lq5q4lpl5zlwf7fg7qghf7sq6xs1294w54gzbs"))))
+         "0xif0ak3w90xmfzlxvb5pnzc3scpfl1pyhrjffi3mq4asvsd52l0"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-dplyr" ,r-dplyr)
@@ -3545,18 +3923,19 @@ for certain use cases.")
 (define-public r-ggrepel
   (package
     (name "r-ggrepel")
-    (version "0.8.2")
+    (version "0.9.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "ggrepel" version))
        (sha256
         (base32
-         "1qaifn3dazdqbqlii210xhw7yf142iw7g9p2axmmxbz90p0by08d"))))
+         "1z5xyr5f4aryy0v1gzz9m8m4s5fzzwbrf0fxll1nbflr8xnr3yr9"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-ggplot2" ,r-ggplot2)
        ("r-rcpp" ,r-rcpp)
+       ("r-rlang" ,r-rlang)
        ("r-scales" ,r-scales)))
     (native-inputs
      `(("r-knitr" ,r-knitr))) ; for vignettes
@@ -3593,20 +3972,20 @@ color labels, layout, etc.")
 (define-public r-stringdist
   (package
     (name "r-stringdist")
-    (version "0.9.6")
+    (version "0.9.6.3")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "stringdist" version))
        (sha256
-        (base32 "0nb3iwpl4f3xxirns1frwvarpyrl4i5f74h8r6h80cg0a4mpdgcb"))))
+        (base32 "06rzbgw43vzg496xca82pydf3g2rz6iw6h50ai0prbp9hbwrhvfd"))))
     (build-system r-build-system)
     (home-page "https://github.com/markvanderloo/stringdist")
     (synopsis "Approximate string matching and string distance functions")
     (description
      "This package implements an approximate string matching version of R's
 native @code{match} function.  It can calculate various string distances based
-on edits (Damerau-Levenshtein, Hamming, Levenshtein, optimal sting alignment),
+on edits (Damerau-Levenshtein, Hamming, Levenshtein, optimal string alignment),
 qgrams (q- gram, cosine, jaccard distance) or heuristic metrics (Jaro,
 Jaro-Winkler).  An implementation of soundex is provided as well.  Distances
 can be computed between character vectors while taking proper care of encoding
@@ -3637,6 +4016,36 @@ algorithm.  The interface of @code{ucminf} is designed for easy interchange
 with the package @code{optim}.")
     (license license:gpl2+)))
 
+(define-public r-useful
+  (package
+   (name "r-useful")
+   (version "1.2.6")
+   (source (origin
+            (method url-fetch)
+            (uri (cran-uri "useful" version))
+            (sha256
+             (base32
+              "0n50v1q75k518sq23id14jphwla35q4sasahrnrnllwrachl67v1"))))
+   (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)))
+   (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
+found useful to do little odds and ends such as plotting the results of K-means
+clustering, substituting special text characters, viewing parts of a
+@code{data.frame}, constructing formulas from text and building design and
+response matrices.")
+   (license license:bsd-3)))
+
 (define-public r-ordinal
   (package
     (name "r-ordinal")
@@ -3667,14 +4076,14 @@ Laplace approximation and adaptive Gauss-Hermite quadrature.")
 (define-public r-jomo
   (package
     (name "r-jomo")
-    (version "2.7-1")
+    (version "2.7-2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "jomo" version))
        (sha256
         (base32
-         "0cdy9m4ylarkk9d0v1s61k2d877l4bbxly8a4jwhfy43fdvskz1w"))))
+         "1sbcpacxnxbzwa8rr9x2bq7hh0s3sw6yznr90dkp43n6xk5xaqir"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-lme4" ,r-lme4)
@@ -3740,21 +4149,23 @@ analysis of multiply imputed data sets.")
 (define-public r-mice
   (package
     (name "r-mice")
-    (version "3.11.0")
+    (version "3.12.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "mice" version))
        (sha256
         (base32
-         "1gawccw32l00rcriyxys0mzbxh44x04rziy0cbycc3i1qm39d4fq"))))
+         "0i7i9r0ipn7fypzp5xv1dnr54l30b7kg38mmq1kcvj2z1mjrwpap"))))
     (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)))
     (home-page "https://cran.r-project.org/web/packages/mice/")
     (synopsis "Multivariate imputation by chained equations")
@@ -3819,14 +4230,14 @@ programming} (SQP) based solver).")
 (define-public r-hardyweinberg
   (package
     (name "r-hardyweinberg")
-    (version "1.6.3")
+    (version "1.7.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "HardyWeinberg" version))
        (sha256
         (base32
-         "1irz44q6nf95h37av868f47aakwv3jgwgw217xfsfw0afkm7s25f"))))
+         "0afjz818yvaq3akvgpy4irnlpspd2dj71qkrwj81lm9y36ypwlw6"))))
     (properties `((upstream-name . "HardyWeinberg")))
     (build-system r-build-system)
     (propagated-inputs
@@ -3945,14 +4356,14 @@ training models for classification or ranking.")
 (define-public r-xts
   (package
     (name "r-xts")
-    (version "0.12-0")
+    (version "0.12.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "xts" version))
        (sha256
         (base32
-         "0q4cc8ynp7ndmgll1jj3lxyl6wmgg89ad3wq09kjc2ngszdfc4fz"))))
+         "0b6a7mpyk9aw6axas7nz01gadczprwwfhii01fz31z26z555i06n"))))
     (build-system r-build-system)
     (propagated-inputs `(("r-zoo" ,r-zoo)))
     (home-page "https://github.com/joshuaulrich/xts")
@@ -4019,14 +4430,14 @@ modeling for empirical income distributions.")
 (define-public r-vcd
   (package
     (name "r-vcd")
-    (version "1.4-7")
+    (version "1.4-8")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "vcd" version))
        (sha256
         (base32
-         "16aj688nhlcvdxzfsqh4s375v8f8vl8997dl8h1xg29b42nv52gc"))))
+         "030yyhpzsj4ivwrla7p9kgvmyjh6b8fr7czf678ykxjj64ccnvr3"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-colorspace" ,r-colorspace)
@@ -4065,14 +4476,14 @@ of Eigenmatrices} (JADE).")
 (define-public r-dtw
   (package
     (name "r-dtw")
-    (version "1.21-3")
+    (version "1.22-3")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "dtw" version))
        (sha256
         (base32
-         "02hyhx1sy5h3vzh9zixy18a7d47df4k5d0wyflcvlcbsbcl6p90s"))))
+         "004gm4mzgdzdj807j3bwqsv5lizmnmz5jq514bdjshhkysnzjz6z"))))
     (build-system r-build-system)
     (propagated-inputs `(("r-proxy" ,r-proxy)))
     (home-page "http://dtw.r-forge.r-project.org/")
@@ -4130,20 +4541,22 @@ plotting.  a three dimensional point cloud.")
 (define-public r-ggridges
   (package
     (name "r-ggridges")
-    (version "0.5.2")
+    (version "0.5.3")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "ggridges" version))
        (sha256
         (base32
-         "03pz257aw0mkh5k75rby9givkc1ky3n5scvhjhjiz9vry9fpffmh"))))
+         "0bmlqy1p6rac90af97ffpdi6php7dblx66l2hcm8ljidgyqzmspm"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-ggplot2" ,r-ggplot2)
        ("r-plyr" ,r-plyr)
        ("r-scales" ,r-scales)
        ("r-withr" ,r-withr)))
+    (native-inputs
+     `(("r-knitr" ,r-knitr)))
     (home-page "https://github.com/clauswilke/ggridges")
     (synopsis "Ridgeline plots in ggplot2")
     (description
@@ -4177,14 +4590,14 @@ plots in @code{ggplot2}.")
 (define-public r-cli
   (package
     (name "r-cli")
-    (version "2.0.2")
+    (version "2.2.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "cli" version))
        (sha256
         (base32
-         "1dhkah6jvr96k4h4agcc2rfls75bpjb0j58fzaz3dc0fp3jk8229"))))
+         "1f20mk9pb9kqn0ni2z0sqsx8qj1apcbiw08pa4gwry142zv7m9rr"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-assertthat" ,r-assertthat)
@@ -4242,13 +4655,13 @@ constants, and control debugging of packages via environment variables.")
 (define-public r-processx
   (package
     (name "r-processx")
-    (version "3.4.3")
+    (version "3.4.5")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "processx" version))
        (sha256
-        (base32 "07dhzijqnj2zkm3qrk4ppsv8wscn8ysdsjbidlg9zrbj1wcg4izj"))))
+        (base32 "055v2gdrgqsfy8s672wsq79bqr44b4jjmcbqivx4p2d6lqx10s73"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-ps" ,r-ps)
@@ -4355,14 +4768,14 @@ Markdown documents.")
 (define-public r-seriation
   (package
     (name "r-seriation")
-    (version "1.2-8")
+    (version "1.2-9")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "seriation" version))
        (sha256
         (base32
-         "1zbdxq0s5rc5v307b69fw9k52m0654ls7pf22lh35ggirig6lwsk"))))
+         "1glxn098ar1v96xlwp85kjxzfd1nyfzp2f82x5z3fm87yv57k4lb"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-cluster" ,r-cluster)
@@ -4389,13 +4802,13 @@ iVAT).")
 (define-public r-xfun
   (package
     (name "r-xfun")
-    (version "0.16")
+    (version "0.20")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "xfun" version))
        (sha256
-        (base32 "1x7b71xhbl44fyccz69l24nbgyxawm2km90s4h1l3zr5z2vly0sg"))))
+        (base32 "043wv9qihs3r29810mf8ajpn2iks1bxq44wbxz8sfpix5b8kjhi8"))))
     (build-system r-build-system)
     ;; knitr itself depends on xfun
     #;
@@ -4452,14 +4865,14 @@ to variables on the left-hand side of the assignment.")
 (define-public r-vctrs
   (package
     (name "r-vctrs")
-    (version "0.3.2")
+    (version "0.3.6")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "vctrs" version))
        (sha256
         (base32
-         "05s8v3ms4jaim44c7m4y0dnv8mysj9b26cdfyrfgcjpllayrjib2"))))
+         "09ddxgzyah7lw42hn6n8fynsixf43s10jamsf94d2aidky63czfz"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-digest" ,r-digest)
@@ -4491,14 +4904,14 @@ to variables on the left-hand side of the assignment.")
 (define-public r-pillar
   (package
     (name "r-pillar")
-    (version "1.4.6")
+    (version "1.4.7")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "pillar" version))
        (sha256
         (base32
-         "01ck8ziqzjc9ibbj3g88siz1iw263dgl8jx6ryw2v50rjrr3y7fj"))))
+         "167ji21fx04s2niw5pjq9vzxgagxzsg3gimh8dzr2kl5ljrb5vfd"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-cli" ,r-cli)
@@ -4539,14 +4952,14 @@ terminals.")
 (define-public r-tinytex
   (package
     (name "r-tinytex")
-    (version "0.25")
+    (version "0.28")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "tinytex" version))
        (sha256
         (base32
-         "0zbhzxxjlkdj9byxyab477p7cnws5y87nyg989lkzarxdc7dglza"))))
+         "11pa1q7gl17ala74lz10qbghk2yqanl9pylwvi9b4kmhx856b83n"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-xfun" ,r-xfun)))
@@ -4563,14 +4976,14 @@ automatically.")
 (define-public r-network
   (package
     (name "r-network")
-    (version "1.16.0")
+    (version "1.16.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "network" version))
        (sha256
         (base32
-         "0dnf1wl3za2lhx2lwd8smhlijl1cfhckgr8zz9piiirrfi2m2kx2"))))
+         "1cgy7vlbinyndl0zkzvnpcmi240wry6iwfb42sz1mj5c9iwkar7b"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-magrittr" ,r-magrittr)
@@ -4583,22 +4996,68 @@ automatically.")
 supports arbitrary vertex/edge/graph attributes.")
     (license license:gpl2+)))
 
+(define-public r-stabs
+  (package
+  (name "r-stabs")
+  (version "0.6-3")
+  (source
+    (origin
+      (method url-fetch)
+      (uri (cran-uri "stabs" version))
+      (sha256
+        (base32
+          "17sa0sjxf6h7gx1ga1pxhv17yrz3qisaivbf5cbc3asvshhswqg9"))))
+  (build-system r-build-system)
+  (home-page "https://github.com/hofnerb/stabs")
+  (synopsis "Stability selection with error control")
+  (description
+    "This package provides resampling procedures to assess the stability of
+selected variables with additional finite sample error control for
+high-dimensional variable selection procedures such as Lasso or boosting.
+Both, standard stability selection (Meinshausen & Buhlmann, 2010) and
+complementary pairs stability selection with improved error bounds
+(Shah & Samworth, 2013) are implemented.  The package can be combined with
+arbitrary user specified variable selection approaches.")
+  (license license:gpl2)))
+
+(define-public r-rle
+  (package
+    (name "r-rle")
+    (version "0.9.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "rle" version))
+       (sha256
+        (base32
+         "0sagl0jggg40lihzy7pfq4593rfvc3b3f7g6ggi85s7n18qvwg40"))))
+    (properties `((upstream-name . "rle")))
+    (build-system r-build-system)
+    (home-page "https://cran.r-project.org/web/packages/rle/")
+    (synopsis "Common functions for run-length encoded vectors")
+    (description
+     "This package provides common @code{base} and @code{stats} methods for
+@code{rle} objects, aiming to make it possible to treat them transparently as
+vectors.")
+    (license license:gpl3)))
+
 (define-public r-statnet-common
   (package
     (name "r-statnet-common")
-    (version "4.3.0")
+    (version "4.4.1")
     (source
       (origin
         (method url-fetch)
         (uri (cran-uri "statnet.common" version))
         (sha256
           (base32
-            "0ng90i0wm9wlyhjbnmnylc1bbqw396p1dr7f402dyry9x9ck6jl3"))))
+            "1z89an46xcl1d7dacj4irhk6pkajdz7v85b2347vczwdf622pksf"))))
     (properties
       `((upstream-name . "statnet.common")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-coda" ,r-coda)))
+     `(("r-coda" ,r-coda)
+       ("r-rle" ,r-rle)))
     (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
@@ -4632,14 +5091,14 @@ detect possible inconsistencies.")
 (define-public r-sna
   (package
     (name "r-sna")
-    (version "2.5")
+    (version "2.6")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "sna" version))
        (sha256
         (base32
-         "1j3i6300m686qqfmyvadim377cd3mplzgj6mandygw8brg50id8k"))))
+         "0ai0v4538d30m4wks5s3lch1yfmx1ml0nnrz7ihs097lv586a09s"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-network" ,r-network)
@@ -4685,14 +5144,14 @@ of these tests are also included.")
 (define-public r-ttr
   (package
     (name "r-ttr")
-    (version "0.24.0")
+    (version "0.24.2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "TTR" version))
        (sha256
         (base32
-         "0dcmfr98bxhdhszsdr1yjhvy4kplnfm88fh8sdzrkjank1qsxia2"))))
+         "06vicgbhwpsww09hhha5mbcd0cwip6cvkfbhjjhp950rv64bk1r5"))))
     (properties `((upstream-name . "TTR")))
     (build-system r-build-system)
     (propagated-inputs
@@ -4751,14 +5210,14 @@ provides some missing S-PLUS functionality in R.")
 (define-public r-ifultools
   (package
     (name "r-ifultools")
-    (version "2.0-5")
+    (version "2.0-22")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "ifultools" version))
        (sha256
         (base32
-         "040kvbczcmmbaiaz0k0pdq9af541pjj6iwzh1a3w4szh9w6b5a3j"))))
+         "0f95vqc47dgssqngznk0rclr72ndbyxc7gdq2cmbksvq7qpn3gg1"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-mass" ,r-mass)
@@ -4814,14 +5273,14 @@ Fisher's method), and Sidak correction.")
 (define-public r-quantmod
   (package
     (name "r-quantmod")
-    (version "0.4.17")
+    (version "0.4.18")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "quantmod" version))
        (sha256
         (base32
-         "1ss441rwlr88kz212m0wgx0hwgwi41rhy1jncg2lgqzqfvr5dzqa"))))
+         "0dbcrncv06iqcbkky95dd7l32xq0hhbnkb0kj8wwzym1jf748h5a"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-curl" ,r-curl)
@@ -4838,14 +5297,14 @@ financial trading strategies.")
 (define-public r-tseries
   (package
     (name "r-tseries")
-    (version "0.10-47")
+    (version "0.10-48")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "tseries" version))
        (sha256
         (base32
-         "0yzvc9djp3angvxdxqi60wi726y76ablsb71q88ycvw0avgpf8r0"))))
+         "0wa4rcf0igayi1yrwc6wak6d491560p0z89rz32haqlkiiq25gak"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-quadprog" ,r-quadprog)
@@ -4887,20 +5346,21 @@ University Press, 2000.")
 (define-public r-tsa
   (package
     (name "r-tsa")
-    (version "1.2")
+    (version "1.3")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "TSA" version))
        (sha256
         (base32
-         "0gjfqibwdznz0nka95k4fjm935svxjpnqfywwz403crn2lh30h6q"))))
+         "1bv5q609lhmrcxnjnvcj497fbjlv89zwa8q918hw4iki5nkvwwdb"))))
     (properties `((upstream-name . "TSA")))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-leaps" ,r-leaps)
        ("r-locfit" ,r-locfit)
-       ("r-mgcv" ,r-mgcv)))
+       ("r-mgcv" ,r-mgcv)
+       ("r-tseries" ,r-tseries)))
     (home-page "https://homepage.divms.uiowa.edu/~kchan/TSA.htm")
     (synopsis "Time series analysis")
     (description
@@ -4912,14 +5372,14 @@ Cryer and Kung-Sik Chan.")
 (define-public r-extradistr
   (package
     (name "r-extradistr")
-    (version "1.8.11")
+    (version "1.9.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "extraDistr" version))
        (sha256
         (base32
-         "1vvqv1d4hxa025gmm8cbiph63qsqy87l3ri5idd524gyz3chbcl3"))))
+         "1gypnbvdzczl0mvznvy8r7hzsvc5gvdvi2mmzj21cqdw9n63944r"))))
     (properties `((upstream-name . "extraDistr")))
     (build-system r-build-system)
     (propagated-inputs
@@ -5009,14 +5469,14 @@ interface.")
 (define-public r-trend
   (package
     (name "r-trend")
-    (version "1.1.2")
+    (version "1.1.4")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "trend" version))
        (sha256
         (base32
-         "09b6ycyfgs4xlhx6kn6qm5rl2acp58hzhv8qclzn3kb1wjjyvxy5"))))
+         "1mr5g5gaxiqj6x83ngcbwwh57vhrhcz0x9dh0rmvs9y2ivk29ccs"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-extradistr" ,r-extradistr)))
@@ -5040,14 +5500,14 @@ sample Robust Rank-Order Distributional Test.")
 (define-public r-expm
   (package
     (name "r-expm")
-    (version "0.999-5")
+    (version "0.999-6")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "expm" version))
        (sha256
         (base32
-         "0y98ya8rhy891nysjlzzy7kcm13dsz8gvxwzvbkmcp1xx0vicxc7"))))
+         "1p5dapwv8ycxaysgi6imnby04i4kh1c5a2czqa4wygz0s8pr2y9c"))))
     (build-system r-build-system)
     (propagated-inputs `(("r-matrix" ,r-matrix)))
     (native-inputs `(("gfortran" ,gfortran)))
@@ -5182,14 +5642,14 @@ functions to enforce symmetric scales or add tags to facetted plots.")
 (define-public r-heatmaply
   (package
     (name "r-heatmaply")
-    (version "1.1.0")
+    (version "1.1.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "heatmaply" version))
        (sha256
         (base32
-         "133q8ir45vhfxs2lnd96k97g21ihg2arfhp349kmk339pk32fcxz"))))
+         "02fv66h61y55bn5wrnlvhj7v6xwqs3pddyp3jgk554s1zv4qs2fr"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-assertthat" ,r-assertthat)
@@ -5279,15 +5739,17 @@ Memorial-Sloan-Kettering Cancer Center (MSKCC).")
 (define-public r-import
   (package
     (name "r-import")
-    (version "1.1.0")
+    (version "1.2.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "import" version))
        (sha256
         (base32
-         "0blf9539rbfwcmw8zsb4k58slb4pdnc075v34vmyjw752fznhcji"))))
+         "018s0x224gqnv4cjfh0fwliyfg6ma9vslmwybrlizfsmqcc5wp37"))))
     (build-system r-build-system)
+    (native-inputs
+     `(("r-knitr" ,r-knitr)))
     (home-page "https://github.com/smbache/import")
     (synopsis "Import mechanism for R")
     (description
@@ -5375,14 +5837,14 @@ systems.")
 (define-public r-radiant-data
   (package
     (name "r-radiant-data")
-    (version "1.3.10")
+    (version "1.3.12")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "radiant.data" version))
        (sha256
         (base32
-         "09a3wn3gl1zjq5zsc5zaxyq71dg5qnpk57bmwd6qy8w99g2clm8c"))
+         "08bqqrfvpgyf613ikihwfnzb23l23f5nfs7zynnxbjxc1zfhbpny"))
        (modules '((guix build utils)))
        (snippet
         '(begin
@@ -5584,14 +6046,14 @@ specific S3-method.")
 (define-public r-vim
   (package
     (name "r-vim")
-    (version "6.0.0")
+    (version "6.1.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "VIM" version))
        (sha256
         (base32
-         "0ddhca4v912q82rjpf1qld6i6g2c381g0v5b4hbnygr3lm6a7wiv"))))
+         "1a8aw0ysaf0al95m2la2zx1p3g5mnwqx0x30br1s1dqqkfnv57hz"))))
     (properties `((upstream-name . "VIM")))
     (build-system r-build-system)
     (propagated-inputs
@@ -5617,7 +6079,7 @@ specific S3-method.")
 imputed values are introduced, which can be used for exploring the data and
 the structure of the missing and/or imputed values.  Depending on this
 structure of the missing values, the corresponding methods may help to
-identify the mechanism generating the missing values and allows to explore the
+identify the mechanism generating the missing values and explore the
 data including missing values.  In addition, the quality of imputation can be
 visually explored using various univariate, bivariate, multiple and
 multivariate plot methods.")
@@ -5841,14 +6303,14 @@ misclassification probabilities of different models.")
 (define-public r-zip
   (package
     (name "r-zip")
-    (version "2.1.0")
+    (version "2.1.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "zip" version))
        (sha256
         (base32
-         "1dfsagb7bx35x4zx6f5xk2sk057fbyhskkpw3w72b805cjw920da"))))
+         "0b3wmbx5v0i1scylgk4nli2ljg4p12wx7a1sqljklv9969wl3p8i"))))
     (build-system r-build-system)
     (home-page "https://github.com/gaborcsardi/zip")
     (synopsis "Cross-platform Zip compression")
@@ -5861,14 +6323,14 @@ additional external tools on any platform.")
 (define-public r-openxlsx
   (package
     (name "r-openxlsx")
-    (version "4.1.5")
+    (version "4.2.3")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "openxlsx" version))
        (sha256
         (base32
-         "0wkpa3wsd8rs0pib7cp67iv0s6jn99frcrw7clypqxmvvdwyb9kq"))))
+         "0vz4nlrwgsiifrgza8kfd9i1c0ya6plymrgk59vyy2z54vc8kvyd"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-rcpp" ,r-rcpp)
@@ -5923,14 +6385,14 @@ simple method for converting between file types.")
 (define-public r-maptools
   (package
     (name "r-maptools")
-    (version "1.0-1")
+    (version "1.0-2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "maptools" version))
        (sha256
         (base32
-         "0fs1y3cbymcq4f76wd27h5a7ihdmxii3ca8x29x32xgxhmasni4l"))))
+         "0jgf3wg47jdnznxb3ncv4is9ackwviy4lzcyggqwzw3wh6jnvb6s"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-foreign" ,r-foreign)
@@ -6006,14 +6468,14 @@ promises, but with a syntax that is idiomatic R.")
 (define-public r-dosnow
   (package
     (name "r-dosnow")
-    (version "1.0.18")
+    (version "1.0.19")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "doSNOW" version))
        (sha256
         (base32
-         "0rj72z5505cprh6wykhhiz08l9bmd966srqh2qypwivf321bvrvh"))))
+         "0f07b38cl7s61vwzkyqkzzsic9g4sw9k6ndbxk3g90l4ca0d1ljc"))))
     (properties `((upstream-name . "doSNOW")))
     (build-system r-build-system)
     (propagated-inputs
@@ -6072,14 +6534,14 @@ Python's @url{https://github.com/ActiveState/appdirs,Appdirs} to R.")
 (define-public r-renv
   (package
     (name "r-renv")
-    (version "0.11.0")
+    (version "0.12.5")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "renv" version))
        (sha256
         (base32
-         "0dd63jr240pg95a6p058s5kcclfmscihdy89v212msihmwvylwh3"))))
+         "0wfq1z5glng6jrfxj25mjhp129z6468gaszr9ggks5gp8lrwszzh"))))
     (properties `((upstream-name . "renv")))
     (build-system r-build-system)
     (native-inputs
@@ -6167,14 +6629,14 @@ obtain a better initial configuration in non-metric MDS.")
 (define-public r-reticulate
   (package
     (name "r-reticulate")
-    (version "1.16")
+    (version "1.18")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "reticulate" version))
        (sha256
         (base32
-         "0ddx3xrlw55d8d3w7pxap618w2c5pd1n2jw4xsa185s8mf1zifkl"))))
+         "04w5c9jfxakb4rr2qjynxgagb42khsja3y4dwgxywiplb1d8agxk"))))
     (build-system r-build-system)
     (inputs `(("python" ,python)))
     (propagated-inputs
@@ -6196,14 +6658,14 @@ Python to R they are converted back to R types.")
 (define-public r-bibtex
   (package
     (name "r-bibtex")
-    (version "0.4.2.2")
+    (version "0.4.2.3")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "bibtex" version))
        (sha256
         (base32
-         "140hkjzdp3033cvji861rd06z1ixgpnn4n5amygqsmhnixk8ff07"))))
+         "0vdwx6808r73pk15263f33bkqbfmb08d8jkmr4d7h4ml414ikbbv"))))
     (build-system r-build-system)
     (propagated-inputs `(("r-stringr" ,r-stringr)))
     (home-page "https://github.com/romainfrancois/bibtex")
@@ -6409,19 +6871,20 @@ clustering.")
 (define-public r-factominer
   (package
     (name "r-factominer")
-    (version "2.3")
+    (version "2.4")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "FactoMineR" version))
        (sha256
         (base32
-         "0ldgf3daksh6lpblhqys67m4mxqx3q9s9n5plfam6dwshfik0ky6"))))
+         "0lg8n9fxxk46nchnj4pbpqqf4swxfsq7r9jzr36dmd36kb7avqxr"))))
     (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)
@@ -6430,6 +6893,8 @@ clustering.")
        ("r-leaps" ,r-leaps)
        ("r-mass" ,r-mass)
        ("r-scatterplot3d" ,r-scatterplot3d)))
+    (native-inputs
+     `(("r-knitr" ,r-knitr)))
     (home-page "http://factominer.free.fr")
     (synopsis "Multivariate exploratory data analysis and data mining")
     (description
@@ -6480,14 +6945,14 @@ steps and provides ggplot2-based elegant data visualization.")
 (define-public r-fansi
   (package
     (name "r-fansi")
-    (version "0.4.1")
+    (version "0.4.2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "fansi" version))
        (sha256
         (base32
-         "028ywjy538psnmdnddvy5jr3idzffr4hikzr4x97x0m30g4fws9w"))))
+         "0i7wmaflkjzdbggqv31wnsj3m9imvc6db429vyjk64xrz1ng1vd2"))))
     (build-system r-build-system)
     (native-inputs
      `(("r-knitr" ,r-knitr))) ; for vignettes
@@ -6522,14 +6987,14 @@ results to the user.")
 (define-public r-hdf5r
   (package
     (name "r-hdf5r")
-    (version "1.3.2")
+    (version "1.3.3")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "hdf5r" version))
        (sha256
         (base32
-         "0c2p06k9bp9rf0fyavnxw5d8jr2bbgx3gjblahz581cpvsfksj9i"))))
+         "0i8m4yjxggrs05slq2afvz2ckl1yc9wq7gd1s7dq2gjn46zkry50"))))
     (build-system r-build-system)
     (inputs
      `(("hdf5" ,hdf5)
@@ -6637,21 +7102,43 @@ Just Another Gibbs Sampler.  It is a program for analysis of Bayesian
 hierarchical models using Markov Chain Monte Carlo (MCMC) simulation.")
     (license license:gpl2)))
 
+(define-public r-rbibutils
+  (package
+    (name "r-rbibutils")
+    (version "2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "rbibutils" version))
+       (sha256
+        (base32
+         "1vfg2188i4dyhrmvnwpsh2la8qkd4wkryz2fpj4cppi1wfz3ml83"))))
+    (properties `((upstream-name . "rbibutils")))
+    (build-system r-build-system)
+    (home-page "https://geobosh.github.io/rbibutils/")
+    (synopsis "Convert between bibliography formats")
+    (description
+     "This package converts between a number of bibliography formats,
+including BibTeX, BibLaTeX and Bibentry.  It includes a port of the bibutils
+utilities and supports all bibliography formats and character encodings
+implemented in bibutils.")
+    (license license:gpl2)))
+
 (define-public r-rdpack
   (package
     (name "r-rdpack")
-    (version "1.0.0")
+    (version "2.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "Rdpack" version))
        (sha256
         (base32
-         "069yh9h57z3gjl5ih1r6wyiwmgmfzkpjxrpxg8mfq7y6zr1mynsw"))))
+         "1kmz0kq2z1xl55w22paz98x9jpss06abvicmkslv4zq77kz99q16"))))
     (properties `((upstream-name . "Rdpack")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-bibtex" ,r-bibtex)
+     `(("r-rbibutils" ,r-rbibutils)
        ("r-gbrd" ,r-gbrd)))
     (home-page "https://github.com/GeoBosh/Rdpack")
     (synopsis "Update and manipulate Rd documentation objects")
@@ -6667,18 +7154,17 @@ references and Rd files.")
 (define-public r-officer
   (package
     (name "r-officer")
-    (version "0.3.12")
+    (version "0.3.16")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "officer" version))
        (sha256
         (base32
-         "1wk9h6bz77s5j6lgksmlrmi1vyaa35c766gq6hgb1dp0dz0x342x"))))
+         "1ls5kp70jfxrzxxb3xrg8sn2fyk6qd7rmx23n5jxi7z7850avjrj"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-magrittr" ,r-magrittr)
-       ("r-r6" ,r-r6)
+     `(("r-r6" ,r-r6)
        ("r-uuid" ,r-uuid)
        ("r-xml2" ,r-xml2)
        ("r-zip" ,r-zip)))
@@ -6700,14 +7186,14 @@ to help insert or delete content at a specific location in the document.")
 (define-public r-profilemodel
   (package
     (name "r-profilemodel")
-    (version "0.6.0")
+    (version "0.6.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "profileModel" version))
        (sha256
         (base32
-         "0yq8hy43h62hlz8bbf9ila4a3xcwizi1if27b78xc5y857ncwad8"))))
+         "01m5nb8cmq0aq555pxk2a99182si65hhmn68yn9nal2j3zl2bp4i"))))
     (properties `((upstream-name . "profileModel")))
     (build-system r-build-system)
     (home-page "https://github.com/ikosmidis/profileModel")
@@ -6723,14 +7209,14 @@ on the methods that are implemented can be found in Kosmidis (2008)
 (define-public r-brglm
   (package
     (name "r-brglm")
-    (version "0.6.2")
+    (version "0.7.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "brglm" version))
        (sha256
         (base32
-         "0c9ngscc6zlfm90fqyggnj04qfkhp5qgf5q3wnfpxwyc8cm47by2"))))
+         "1v68ma1agwhxar76mfvdfkcnd5h4gmxiz8j491rhdsckg271j7sa"))))
     (properties `((upstream-name . "brglm")))
     (build-system r-build-system)
     (propagated-inputs
@@ -6779,24 +7265,19 @@ there are functions for discretizing continuous random variables.")
 (define-public r-abn
   (package
     (name "r-abn")
-    (version "2.2.2")
+    (version "2.3-0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "abn" version))
        (sha256
         (base32
-         "1wwnzv5yir8cyl0f0arxagbsg9ndgs0799m42wbjkpr8cg9sfdhc"))))
+         "17vdrqm6qp5aijg00ah2imj3pqr6cl5r43hgg8dijbrbhznarci6"))))
     (build-system r-build-system)
     (inputs
      `(("gsl" ,gsl)))
     (propagated-inputs
-     `(("r-boot" ,r-boot)
-       ("r-brglm" ,r-brglm)
-       ("r-entropy" ,r-entropy)
-       ("r-lme4" ,r-lme4)
-       ("r-mass" ,r-mass)
-       ("r-moments" ,r-moments)
+     `(("r-lme4" ,r-lme4)
        ("r-nnet" ,r-nnet)
        ("r-rcpp" ,r-rcpp)
        ("r-rcpparmadillo" ,r-rcpparmadillo)
@@ -6934,14 +7415,14 @@ other add-on packages.")
 (define-public r-insight
   (package
     (name "r-insight")
-    (version "0.9.0")
+    (version "0.12.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "insight" version))
        (sha256
         (base32
-         "1ajc8c5mi3ma5411lmlqp2ihkk5n0h8a1c0r3j07wk33p31c1qvl"))))
+         "0gkvcw9d729ql1gfrpxzgrag4xafd0hchrdww215qz11ma1rzy7s"))))
     (build-system r-build-system)
     (native-inputs
      `(("r-knitr" ,r-knitr)))
@@ -6962,14 +7443,14 @@ information are missing.")
 (define-public r-sjlabelled
   (package
     (name "r-sjlabelled")
-    (version "1.1.6")
+    (version "1.1.7")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "sjlabelled" version))
        (sha256
         (base32
-         "0xvb0yi7c7wiiqjbnbisyb2cjinm11i373jacfv1yzyc9cznzyzq"))))
+         "0d3fsjd2gxchv8mlx9l5pf8xvkmx4pgvizam83f3qss07bmvpzwg"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-insight" ,r-insight)))
@@ -6988,14 +7469,14 @@ vice versa), or to deal with multiple declared missing values.")
 (define-public r-sjmisc
   (package
     (name "r-sjmisc")
-    (version "2.8.5")
+    (version "2.8.6")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "sjmisc" version))
        (sha256
         (base32
-         "0xl0s56d13bia89ai619rcr0fzbvc2k8f7hjxik4qp0g4v87zzlk"))))
+         "1nfrkv5jfnwb85blpv7yk7xac1myzi2c30bqcf7xicniknkjwycr"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-dplyr" ,r-dplyr)
@@ -7039,23 +7520,25 @@ hypothesis of normality.")
 (define-public r-moonbook
   (package
     (name "r-moonbook")
-    (version "0.2.3")
+    (version "0.2.4")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "moonBook" version))
        (sha256
         (base32
-         "0hys56mwbm776ff7dibi8wzyf69qiais9rs1jazv79lk6h56s9s6"))))
+         "0z78pzc8sr2g19xjdd9cmai4iqyifmh79gj8x40ddww6a27dalry"))))
     (properties `((upstream-name . "moonBook")))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-magrittr" ,r-magrittr)
        ("r-nortest" ,r-nortest)
-       ("r-purrr" ,r-purrr)
        ("r-sjmisc" ,r-sjmisc)
        ("r-stringr" ,r-stringr)
-       ("r-survival" ,r-survival)))
+       ("r-survival" ,r-survival)
+       ("r-ztable" ,r-ztable)))
+    (native-inputs
+     `(("r-knitr" ,r-knitr)))
     (home-page "https://github.com/cardiomoon/moonBook")
     (synopsis "Functions and datasets for the book by Keon-Woong Moon")
     (description
@@ -7068,14 +7551,14 @@ functions.")
 (define-public r-flextable
   (package
     (name "r-flextable")
-    (version "0.5.10")
+    (version "0.6.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "flextable" version))
        (sha256
         (base32
-         "1j7yvjiavar21ywck6nyz0p6bd66fnj99bq8lljdz4rrl3314yb8"))))
+         "06nzyd2a9yaf9hmn740xrgxw0448z5dvlplcj3kizz9sm23aw9li"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-base64enc" ,r-base64enc)
@@ -7088,6 +7571,8 @@ functions.")
        ("r-rmarkdown" ,r-rmarkdown)
        ("r-uuid" ,r-uuid)
        ("r-xml2" ,r-xml2)))
+    (native-inputs
+     `(("r-knitr" ,r-knitr)))
     (home-page "https://davidgohel.github.io/flextable")
     (synopsis "Functions for tabular reporting")
     (description
@@ -7101,14 +7586,14 @@ documents.")
 (define-public r-writexl
   (package
     (name "r-writexl")
-    (version "1.3")
+    (version "1.3.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "writexl" version))
        (sha256
         (base32
-         "0lah0r2pd996s0vdbi614j3h52dbxmifha6f19v53p2b7fr32wjd"))))
+         "1njdhvh8605wd2j8glrbxfyc36p2n88prpq080jn44s9lgfmbgsb"))))
     (build-system r-build-system)
     (inputs `(("zlib" ,zlib)))
     (home-page "https://github.com/ropensci/writexl")
@@ -7218,20 +7703,22 @@ matches version and feature constraints.")
 (define-public r-argparse
   (package
     (name "r-argparse")
-    (version "2.0.1")
+    (version "2.0.3")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "argparse" version))
        (sha256
         (base32
-         "1as7h6z7kzgv0fqzpnp76qbm96b4jcd37azd58b7rz0l1n94764l"))))
+         "1c2r417m1dxk1jhcggv3g4zax5a59k9rqs9jcs6xy2pa2333jqfj"))))
     (build-system r-build-system)
     (inputs `(("python" ,python)))
     (propagated-inputs
      `(("r-findpython" ,r-findpython)
        ("r-jsonlite" ,r-jsonlite)
        ("r-r6" ,r-r6)))
+    (native-inputs
+     `(("r-knitr" ,r-knitr)))
     (home-page "https://github.com/trevorld/argparse")
     (synopsis "Command line optional and positional argument parser")
     (description
@@ -7290,14 +7777,14 @@ Group (Non-)Overlap considerations.")
 (define-public r-deriv
   (package
     (name "r-deriv")
-    (version "4.0")
+    (version "4.1.2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "Deriv" version))
        (sha256
         (base32
-         "03mlfy8jzzzbh2l18gnmw0a71n9savx4cw72yhkxq93v2xj8fy3n"))))
+         "1j9sh1w9lsnnhlh59g4ghykyfx46rxh380s8imvm7pzna7rw7c64"))))
     (properties `((upstream-name . "Deriv")))
     (build-system r-build-system)
     (home-page "https://cran.r-project.org/web/packages/Deriv")
@@ -7312,14 +7799,14 @@ the work.")
 (define-public r-doby
   (package
     (name "r-doby")
-    (version "4.6.7")
+    (version "4.6.8")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "doBy" version))
        (sha256
         (base32
-         "16vg1aa272sfzyqxfb63fyis9hv6g5m3nmxxa6mk1gy0irqnl3jk"))))
+         "0r97kwsj6g87m7shgnjc5c9y71jkhiq4xd9q0s2bxl0vl92qqwvg"))))
     (properties `((upstream-name . "doBy")))
     (build-system r-build-system)
     (propagated-inputs
@@ -7398,14 +7885,14 @@ procedures to speed up calculations in R.")
 (define-public r-blockfest
   (package
     (name "r-blockfest")
-    (version "1.6")
+    (version "1.8")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "BlockFeST" version))
        (sha256
         (base32
-         "0hj7a5as7nxbgjac7lbj6qfwffx3g8x8phpf9a55f1c9cdzi73a5"))))
+         "12cbrmgqszlj729zrn9d1d7drbr0iay43knnmrzcxs6v7lfszsx5"))))
     (properties `((upstream-name . "BlockFeST")))
     (build-system r-build-system)
     (propagated-inputs `(("r-basix" ,r-basix)))
@@ -7422,14 +7909,14 @@ containing one or more SNPs that evolved under directional selection.")
 (define-public r-proc
   (package
     (name "r-proc")
-    (version "1.16.2")
+    (version "1.17.0.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "pROC" version))
        (sha256
         (base32
-         "0apwa5zzqh74pjnvf5a1s5qf6i9r5h44jdllfrwymkd2v479d2xn"))))
+         "1gd6a47d6bcfd237s3g7r9rws8x2sg7zrvq5k6clpc41zdpp4712"))))
     (properties `((upstream-name . "pROC")))
     (build-system r-build-system)
     (propagated-inputs
@@ -7505,13 +7992,13 @@ the analyzed items.")
 (define-public r-slam
   (package
     (name "r-slam")
-    (version "0.1-47")
+    (version "0.1-48")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "slam" version))
        (sha256
-        (base32 "12fggw2c7hz3bpvsaqm24g3r6lbpq6jgli24g7x5j859iak5cqv9"))))
+        (base32 "1ppsvkph4v1dffxgp12a4wnr9arj7pkmh4qv0and3f6nbz9k42qa"))))
     (build-system r-build-system)
     (home-page "https://cran.r-project.org/web/packages/slam/")
     (synopsis "Sparse lightweight arrays and matrices")
@@ -7697,13 +8184,13 @@ and coverage methods to tune the choice of threshold.")
 (define-public r-ggstance
   (package
     (name "r-ggstance")
-    (version "0.3.4")
+    (version "0.3.5")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "ggstance" version))
        (sha256
-        (base32 "0aqz3dn02cgij018a4sglqwrwr9dzzj12l8xr1064q7hfd4f64m1"))))
+        (base32 "0jz9vvnmcc6a38n8nzr458r65sna23bgn5r8mxdhzdlyqibihr7d"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-ggplot2" ,r-ggplot2)
@@ -7723,18 +8210,17 @@ and coverage methods to tune the choice of threshold.")
 (define-public r-mosaiccore
   (package
     (name "r-mosaiccore")
-    (version "0.6.0")
+    (version "0.9.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "mosaicCore" version))
        (sha256
-        (base32 "1klw97h6lchw1cpcl8s637ikcl428cckmjq0czi7mibh9q9mw72z"))))
+        (base32 "1h3ixzna4xy42rdnd89jj0v9q0riy3fnkd33z6l5c0zaidzm58fz"))))
     (properties `((upstream-name . "mosaicCore")))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-dplyr" ,r-dplyr)
-       ("r-lazyeval" ,r-lazyeval)
        ("r-mass" ,r-mass)
        ("r-rlang" ,r-rlang)
        ("r-tidyr" ,r-tidyr)))
@@ -7744,26 +8230,62 @@ and coverage methods to tune the choice of threshold.")
      "Common utilities used in other Mosaic family packages are collected here.")
     (license license:gpl2+)))
 
+(define-public r-labelled
+  (package
+    (name "r-labelled")
+    (version "2.7.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "labelled" version))
+       (sha256
+        (base32
+         "1nsb0mh0jg7gggc41b6v55nmfq07g0qn9fy55x4jws5dscs6pdmi"))))
+    (properties `((upstream-name . "labelled")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-dplyr" ,r-dplyr)
+       ("r-haven" ,r-haven)
+       ("r-lifecycle" ,r-lifecycle)
+       ("r-pillar" ,r-pillar)
+       ("r-rlang" ,r-rlang)
+       ("r-tidyr" ,r-tidyr)
+       ("r-vctrs" ,r-vctrs)))
+    (native-inputs
+     `(("r-knitr" ,r-knitr)))
+    (home-page "http://larmarange.github.io/labelled/")
+    (synopsis "Manipulating labelled data")
+    (description
+     "This package provides useful functions to deal with the
+@code{haven_labelled} and @code{haven_labelled_spss} classes introduced by the
+haven package. ")
+    (license license:gpl3)))
+
 (define-public r-ggformula
   (package
     (name "r-ggformula")
-    (version "0.9.4")
+    (version "0.10.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "ggformula" version))
        (sha256
-        (base32 "04vdhg1bbc1psrx9ggaphz7cx4fw5xsmhkqpqfcg2w4ba2bjy46f"))))
+        (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)))
+    (native-inputs
+     `(("r-knitr" ,r-knitr)))
     (home-page "https://github.com/ProjectMOSAIC/ggformula/")
     (synopsis "Formula interface for the @code{r-ggplot2}")
     (description
@@ -7776,13 +8298,13 @@ while providing the intuitive capabilities of @code{r-ggplot2}.")
 (define-public r-mosaicdata
   (package
     (name "r-mosaicdata")
-    (version "0.18.0")
+    (version "0.20.2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "mosaicData" version))
        (sha256
-        (base32 "0cx5dg26ha7nzkdyghkbbd6ikncj60qv1538az77lfgn2jylvkbz"))))
+        (base32 "0h3f5fgzkzjfgf3ml0qa5j52921y6wy6jgggxmhs31bs8fd4srg4"))))
     (properties `((upstream-name . "mosaicData")))
     (build-system r-build-system)
     (home-page "https://cran.r-project.org/web/packages/mosaicData/")
@@ -7795,14 +8317,14 @@ used to teach mathematics, statistics, computation and modeling.")
 (define-public r-raster
   (package
     (name "r-raster")
-    (version "3.3-13")
+    (version "3.4-5")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "raster" version))
        (sha256
         (base32
-         "1s6457rq94qvm3s2lqscs2c2gn5kzcpxa13i8nhlgb1klx5kams7"))))
+         "19g4chd0nyhnz6hc2j0v9ahjcgz64vvja4y3mrj1pfis1dwhsqn6"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-rcpp" ,r-rcpp)
@@ -7997,20 +8519,23 @@ genotypes as \"graphical genotypes\".")
 (define-public r-furrr
   (package
     (name "r-furrr")
-    (version "0.1.0")
+    (version "0.2.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "furrr" version))
        (sha256
         (base32
-         "1ld9aa9hydna94hgm6p91zjbfv1dz1vsgchjlpknkg6irbvkfafx"))))
+         "16s6sgfgh1ayzhf3kvpy9vhsd5h6p57waj1xgbksgdmf4j1wkcq7"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-future" ,r-future)
+     `(("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-rlang" ,r-rlang)
+       ("r-vctrs" ,r-vctrs)))
     (home-page "https://github.com/DavisVaughan/furrr")
     (synopsis "Apply mapping functions in parallel using futures")
     (description
@@ -8023,31 +8548,22 @@ distributed on a compute cluster.")
 (define-public r-abjutils
   (package
     (name "r-abjutils")
-    (version "0.2.3")
+    (version "0.3.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "abjutils" version))
        (sha256
-        (base32 "0n4zps65y3zg0gfzlv97w91si52a9izkncirskbkj5x9hk0nhxcv"))))
+        (base32 "18mmlkqsrjfclk8islfjdsp8sbw6dpjj5x45kqilxdiss69gg5zd"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-devtools" ,r-devtools)
-       ("r-dplyr" ,r-dplyr)
-       ("r-furrr" ,r-furrr)
-       ("r-future" ,r-future)
-       ("r-glue" ,r-glue)
-       ("r-httr" ,r-httr)
+     `(("r-dplyr" ,r-dplyr)
        ("r-magrittr" ,r-magrittr)
-       ("r-progress" ,r-progress)
        ("r-purrr" ,r-purrr)
-       ("r-readr" ,r-readr)
        ("r-rlang" ,r-rlang)
        ("r-rstudioapi" ,r-rstudioapi)
-       ("r-scales" ,r-scales)
        ("r-stringi" ,r-stringi)
        ("r-stringr" ,r-stringr)
-       ("r-tibble" ,r-tibble)
        ("r-tidyr" ,r-tidyr)))
     (home-page "https://github.com/abjur/abjutils/")
     (synopsis "Collection of tools for jurimetrical analysis")
@@ -8362,17 +8878,48 @@ conveniently wrapped into a data frame.")
 multiple-imputation datasets.")
     (license license:gpl2)))
 
+(define-public r-mixsqp
+  (package
+   (name "r-mixsqp")
+   (version "0.3-43")
+   (source (origin
+            (method url-fetch)
+            (uri (cran-uri "mixsqp" version))
+            (sha256
+             (base32
+              "1qics04w0swyp216d6g8dmsph8q2kpadpacp66h2qih3521js12q"))))
+   (properties `((upstream-name . "mixsqp")))
+   (build-system r-build-system)
+   (propagated-inputs
+    `(("r-irlba" ,r-irlba)
+      ("r-rcpp" ,r-rcpp)
+      ("r-rcpparmadillo" ,r-rcpparmadillo)))
+   (native-inputs
+    `(("r-knitr" ,r-knitr)))
+   (home-page "https://github.com/stephenslab/mixsqp")
+   (synopsis
+    "Sequential quadratic programming for maximum-likelihood estimation")
+   (description
+    "This package provides an optimization method based on sequential
+quadratic programming for maximum likelihood estimation of the mixture
+proportions in a finite mixture model where the component densities are
+known.  The algorithm is expected to obtain solutions that are at least
+as accurate as the state-of-the-art MOSEK interior-point solver, and they
+are expected to arrive at solutions more quickly when the number of
+samples is large and the number of mixture components is not too large.")
+   (license license:expat)))
+
 (define-public r-magick
   (package
     (name "r-magick")
-    (version "2.4.0")
+    (version "2.6.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "magick" version))
        (sha256
         (base32
-         "1y1p2blkg0h6061ay7mdwssxbswgrc25raffp6d8d9cqhdmsa72s"))))
+         "1k4fqhxh2ppynl56fs044wpn4wk6gbv6lwp2x4x7j67zwcv56n36"))))
     (build-system r-build-system)
     (inputs
      `(("imagemagick" ,imagemagick)
@@ -8734,14 +9281,14 @@ observation.")
 (define-public r-sandwich
   (package
     (name "r-sandwich")
-    (version "2.5-1")
+    (version "3.0-0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "sandwich" version))
        (sha256
         (base32
-         "1mk685b9wq7k566pbml52rj96i5h6b3vf215k9picgmq296nzvyv"))))
+         "0afm6snak7r11dxyl3qirqdjah6d9pdv4afmxwam1nq9bqxyb3w2"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-zoo" ,r-zoo)))
@@ -8779,14 +9326,14 @@ packages maintained by Torsten Hothorn.")
 (define-public r-multcomp
   (package
     (name "r-multcomp")
-    (version "1.4-13")
+    (version "1.4-15")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "multcomp" version))
        (sha256
         (base32
-         "1nszi22rcc551yc75h9cdfkdqsxw1rz30vadazmpyzihp1bh63yk"))))
+         "1klvn4a1rlrzwhy1cjrkbbh6jspgzbrdm0jxsb1lmf1yzdz609wr"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-codetools" ,r-codetools)
@@ -8807,14 +9354,14 @@ Hothorn, Westfall, 2010, CRC Press).")
 (define-public r-emmeans
   (package
     (name "r-emmeans")
-    (version "1.4.8")
+    (version "1.5.3")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "emmeans" version))
        (sha256
         (base32
-         "0h884qn4cip03w0h5psrz5y9zkm2wppklrhdz2chm2xk13zqnq5k"))))
+         "11x7bn260v91gb7qri1pq54l339zm4msa5frc8saqb9ykbg4dby5"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-estimability" ,r-estimability)
@@ -8858,14 +9405,13 @@ Cohen (1988).")
 (define-public r-libcoin
   (package
     (name "r-libcoin")
-    (version "1.0-5")
+    (version "1.0-7")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "libcoin" version))
        (sha256
-        (base32
-         "1cm9x1dlg9f7fh7n5nw3x4a7rl88c7ylrlc8x3rx4mq5w1j42x0a"))))
+        (base32 "1vb21pw3vpv2pdnfcddw2bax13v0dg656r28j0p8njcyhwk89xln"))))
     (build-system r-build-system)
     (propagated-inputs `(("r-mvtnorm" ,r-mvtnorm)))
     (home-page "https://cran.r-project.org/web/packages/libcoin")
@@ -8878,14 +9424,14 @@ and permutation inference in the framework of Strasser and Weber (1999).")
 (define-public r-coin
   (package
     (name "r-coin")
-    (version "1.3-1")
+    (version "1.4-0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "coin" version))
        (sha256
         (base32
-         "0qi03fyqw42a2vnqcia5l2m1mzyarj2q1iblknx9n19bdsd53qjx"))))
+         "1n2ad4m3zw8px6yc0h750k59pci3fqpnr742hhvsqirrwcdzp6zv"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-libcoin" ,r-libcoin)
@@ -8905,18 +9451,18 @@ correlation, censored, ordered and multivariate problems.")
 (define-public r-bayesplot
   (package
     (name "r-bayesplot")
-    (version "1.7.2")
+    (version "1.8.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "bayesplot" version))
        (sha256
         (base32
-         "0aqy4bfjq1fmds0vpacsmqih528cp8wk4v4w0balzkph6zqzpwcl"))))
+         "0j69a78l5z0wyxcz607amaa4jc8kwwvcia9wxyir65b8ks9gj1d6"))))
     (build-system r-build-system)
     (inputs
-     `(("pandoc" ,ghc-pandoc)
-       ("pandoc-citeproc" ,ghc-pandoc-citeproc)))
+     `(("pandoc" ,pandoc)
+       ("pandoc-citeproc" ,pandoc-citeproc)))
     (native-inputs
      `(("r-knitr" ,r-knitr)))
     (propagated-inputs
@@ -8969,13 +9515,13 @@ detection, parallelism through BLAS and parallel user templates.")
 (define-public r-sjstats
   (package
     (name "r-sjstats")
-    (version "0.18.0")
+    (version "0.18.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "sjstats" version))
        (sha256
-        (base32 "17b1fcrhgjw66qa8zk2jj1bvz3vp5bnjn3p4y1wsg5ng5nxq8jz0"))))
+        (base32 "1cv80yjnyh6qihxf57zivihhia20gibr5f03x8aspy6382wnwlka"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-bayestestr" ,r-bayestestr)
@@ -9044,14 +9590,14 @@ differentiation.")
 (define-public r-bayestestr
   (package
     (name "r-bayestestr")
-    (version "0.7.2")
+    (version "0.8.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "bayestestR" version))
        (sha256
         (base32
-         "1c82bpxg2ha93rna4sy9pdp422dnk6b378dcg8x04clfg0y0lsi2"))))
+         "11mxnpqc85y13wf8mnnrh0k8d3jqdsr99hkv4cgvwav38qpvjhhw"))))
     (properties `((upstream-name . "bayestestR")))
     (build-system r-build-system)
     (propagated-inputs
@@ -9071,14 +9617,14 @@ ROPE percentage and pd).")
 (define-public r-performance
   (package
     (name "r-performance")
-    (version "0.4.8")
+    (version "0.6.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "performance" version))
        (sha256
         (base32
-         "1gl3m1pw0wrj9m9cgd0vzbj9swfwjg4aa40gpliplb9y7dcmgi4l"))))
+         "0wz2zc98r99pg6r4l09qxxzv1fwxwp1md6wmhay401568kd8h5zn"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-bayestestr" ,r-bayestestr)
@@ -9098,14 +9644,14 @@ effects models and Bayesian models.")
 (define-public r-ggeffects
   (package
     (name "r-ggeffects")
-    (version "0.15.1")
+    (version "1.0.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "ggeffects" version))
        (sha256
         (base32
-         "12z58casz0yl1w7nfs64bz4miz0mmc300ap3rz4d2cc4z0rg0r47"))))
+         "1c5rvycaqp7zp1j6j17c84v8nlpi0w7bhfxmcha4n37m0snk1kgy"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-insight" ,r-insight)
@@ -9128,14 +9674,14 @@ results using @code{ggplot2}.")
 (define-public r-effectsize
   (package
     (name "r-effectsize")
-    (version "0.3.2")
+    (version "0.4.3")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "effectsize" version))
        (sha256
         (base32
-         "0h9f260gb8707pcssf8dq7dakpq1ggkxr5kpbrbl8sn8h3qbvws9"))))
+         "1hcrnax9wf0nwsb8nv15rxw8yy8w5dak16dw3w5bxi8xnf56lkz2"))))
     (properties `((upstream-name . "effectsize")))
     (build-system r-build-system)
     (propagated-inputs
@@ -9155,13 +9701,13 @@ conversion of indices such as Cohen's d, r, odds, etc.")
 (define-public r-sjplot
   (package
     (name "r-sjplot")
-    (version "2.8.4")
+    (version "2.8.7")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "sjPlot" version))
        (sha256
-        (base32 "0b7k0mshkk8k26w11xbxkb5v0klhq279zn2xdz83cn8k791xkqyd"))))
+        (base32 "1g4qabg654kwdm09ihp4h3mg64a1d7a7gsn6w56rwsidqqaxilq0"))))
     (properties `((upstream-name . "sjPlot")))
     (build-system r-build-system)
     (propagated-inputs
@@ -9218,23 +9764,50 @@ files to an structured list.  Users can manipulate this resulting list with
 back to file after modifications.")
     (license license:gpl3)))
 
+(define-public r-gitcreds
+  (package
+    (name "r-gitcreds")
+    (version "0.1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "gitcreds" version))
+       (sha256
+        (base32
+         "1snzn7nxy0rwz0bzjsg6k04c0n811dgn8gn9cmn2v78aj57ayjmi"))))
+    (properties `((upstream-name . "gitcreds")))
+    (build-system r-build-system)
+    (inputs `(("git" ,git-minimal)))
+    (native-inputs `(("r-knitr" ,r-knitr)))
+    (home-page "https://github.com/r-lib/gitcreds")
+    (synopsis "Query git credentials from R")
+    (description
+     "Query, set, and delete credentials from the git credential store.
+Manage GitHub tokens and other git credentials.  This package is to be used by
+other packages that need to authenticate to GitHub and/or other git
+repositories.")
+    (license license:expat)))
+
 (define-public r-gh
   (package
     (name "r-gh")
-    (version "1.1.0")
+    (version "1.2.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "gh" version))
        (sha256
         (base32
-         "1bc9bn1078s664hc806dh0y1ncxif77q479rfmxfir9z7hwaz7yy"))))
+         "1zvy3ylxvni10lhvmbm9h14mg4wlsbdbzbzviwf28jxss8749219"))))
     (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)))
+    (native-inputs
+     `(("r-knitr" ,r-knitr)))
     (home-page "https://github.com/r-lib/gh#readme")
     (synopsis "Access the GitHub API via R")
     (description
@@ -9282,17 +9855,96 @@ when building command line applications.  They fall back to alternatives on
 terminals that do not support Unicode.")
     (license license:expat)))
 
+(define-public r-credentials
+  (package
+    (name "r-credentials")
+    (version "1.3.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "credentials" version))
+       (sha256
+        (base32
+         "1w9zj34xdwz9bszsvhv2cbgq96y5sgxbh7ndn31pgfcpzlkfq6f1"))))
+    (properties `((upstream-name . "credentials")))
+    (build-system r-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'setenv-HOME
+           (lambda _
+             ;; This is necessary because git looks for $HOME/.gitconfig
+             (setenv "HOME" "/tmp")
+             #t)))))
+    (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)))
+    (native-inputs
+     `(("r-knitr" ,r-knitr)))
+    (home-page "https://docs.ropensci.org/credentials/")
+    (synopsis "Tools for managing SSH and Git credentials")
+    (description
+     "This package assists you in setting up and retrieving of HTTPS and SSH
+credentials for use with git and other services.  For HTTPS remotes the
+package interfaces the @command{git-credential} utility which @command{git}
+uses to store HTTP usernames and passwords.  For SSH remotes this package
+provides convenient functions to find or generate appropriate SSH keys.  The
+package both helps the user to setup a local git installation, and also
+provides a back-end for git/ssh client libraries to authenticate with existing
+user credentials.")
+    (license license:expat)))
+
+(define-public r-gert
+  (package
+    (name "r-gert")
+    (version "1.0.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "gert" version))
+       (sha256
+        (base32
+         "1lq4hgv2727lwcv8vha5af26nslj99rjxjrgflshmmcihawpls1n"))))
+    (properties `((upstream-name . "gert")))
+    (build-system r-build-system)
+    (inputs
+     `(("libgit2" ,libgit2)
+       ("zlib" ,zlib)))
+    (propagated-inputs
+     `(("r-askpass" ,r-askpass)
+       ("r-credentials" ,r-credentials)
+       ("r-openssl" ,r-openssl)
+       ("r-rstudioapi" ,r-rstudioapi)
+       ("r-zip" ,r-zip)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("r-knitr" ,r-knitr)))
+    (home-page "https://docs.ropensci.org/gert/")
+    (synopsis "Simple Git client for R")
+    (description
+     "This package provides a simple git client for R based on libgit2 with
+support for SSH and HTTPS remotes.  All functions in gert use basic R data
+types (such as vectors and data-frames) for their arguments and return values.
+User credentials are shared with command line git through the
+@code{git-credential} store and SSH keys stored on disk or ssh-agent.")
+    (license license:expat)))
+
 (define-public r-usethis
   (package
     (name "r-usethis")
-    (version "1.6.1")
+    (version "2.0.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "usethis" version))
        (sha256
         (base32
-         "0vwxsnq615mwc706a4a71gyy0hmvnllbh249gzm7vl3ym5cr0cv0"))))
+         "0m4qnnkdiizsdvq33x502zwkn98hw2qcfm45cjj031vaydcjpai2"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-cli" ,r-cli)
@@ -9301,11 +9953,13 @@ terminals that do not support Unicode.")
        ("r-curl" ,r-curl)
        ("r-desc" ,r-desc)
        ("r-fs" ,r-fs)
+       ("r-gert" ,r-gert)
        ("r-gh" ,r-gh)
-       ("r-git2r" ,r-git2r)
        ("r-glue" ,r-glue)
+       ("r-jsonlite" ,r-jsonlite)
+       ("r-lifecycle" ,r-lifecycle)
        ("r-purrr" ,r-purrr)
-       ("r-rematch2" ,r-rematch2)
+       ("r-rappdirs" ,r-rappdirs)
        ("r-rlang" ,r-rlang)
        ("r-rprojroot" ,r-rprojroot)
        ("r-rstudioapi" ,r-rstudioapi)
@@ -9473,14 +10127,14 @@ ways.")
 (define-public r-summarytools
   (package
     (name "r-summarytools")
-    (version "0.9.6")
+    (version "0.9.8")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "summarytools" version))
        (sha256
         (base32
-         "03pcb2ild1rb9f15yq8b68p9bg10z5wk2x7ahgyzkwdh5f81vbq2"))))
+         "0n7rad6bkfn9cb99wbfzbwl5qzch48r0gafhddfcqvyh4fbn2k0j"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-base64enc" ,r-base64enc)
@@ -9495,6 +10149,8 @@ ways.")
        ("r-rapportools" ,r-rapportools)
        ("r-tibble" ,r-tibble)
        ("r-tidyr" ,r-tidyr)))
+    (native-inputs
+     `(("r-knitr" ,r-knitr)))
     (home-page "https://github.com/dcomtois/summarytools")
     (synopsis "Tools to quickly and neatly summarize data")
     (description
@@ -9508,14 +10164,14 @@ users.")
 (define-public r-lsei
   (package
     (name "r-lsei")
-    (version "1.2-0.1")
+    (version "1.3-0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "lsei" version))
        (sha256
         (base32
-         "1rvzdb33x9ykl5qfwxkps1iylxqzlf1qla3l88420nbq7pxp7m87"))))
+         "1dka0rigfw4vj809qma2dkiwjb3nw5635ynnba5cm299cn7hb2b2"))))
     (build-system r-build-system)
     (native-inputs
      `(("gfortran" ,gfortran)))
@@ -9531,14 +10187,14 @@ problems into least squares ones first.")
 (define-public r-npsurv
   (package
     (name "r-npsurv")
-    (version "0.4-0.1")
+    (version "0.5-0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "npsurv" version))
        (sha256
         (base32
-         "09nxibp93bp9v8qcx0gnazk7fkvyh0fq9vlgxl639m6ndr7fwp88"))))
+         "1ihxhb42cga1hssj2jv4ah0f4hlwsky899ij5261fzh1wxvdp1xw"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-lsei" ,r-lsei)))
@@ -9623,14 +10279,14 @@ the interfaces between R and C++.")
 (define-public r-mvabund
   (package
     (name "r-mvabund")
-    (version "4.1.3")
+    (version "4.1.6")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "mvabund" version))
        (sha256
         (base32
-         "1z58h4dk3mc2hfnfvc7pghk471cbp7ah2s1z2ria5igw4s80962b"))))
+         "0aisvax9d7bk6aykrcdcn1ji618r520mcrkr1i3jnck1qs31z41f"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-mass" ,r-mass)
@@ -9648,14 +10304,14 @@ analysing multivariate abundance data in community ecology.")
 (define-public r-afex
   (package
     (name "r-afex")
-    (version "0.27-2")
+    (version "0.28-1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "afex" version))
        (sha256
         (base32
-         "0qsmcddy4449qjj3ajmqvdiqdkhkswmz5dqf150wxwq897p3bvf2"))))
+         "0blwqr5ni3psav1dcdmhfi4jy3b4scm5njimqfpr1d81zadvgc6g"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-car" ,r-car)
@@ -9675,14 +10331,14 @@ experiments using ANOVA or mixed models.")
 (define-public r-lmertest
   (package
     (name "r-lmertest")
-    (version "3.1-2")
+    (version "3.1-3")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "lmerTest" version))
        (sha256
         (base32
-         "1qkdxx5sri65zgpb9gw4nkfkdam51kgy4hxclk5c40yk7y3p0n1q"))))
+         "1zd8gqjkazhxgpnnr484xwsq30p62fq8592nzyc171zjyplpbaim"))))
     (properties `((upstream-name . "lmerTest")))
     (build-system r-build-system)
     (propagated-inputs
@@ -9765,14 +10421,14 @@ address a bug.")
 (define-public r-rcppannoy
   (package
     (name "r-rcppannoy")
-    (version "0.0.16")
+    (version "0.0.18")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "RcppAnnoy" version))
        (sha256
         (base32
-         "0bfa35lp6vc4b0h3ymvdx50br233q8vvyjml34ngi81rj0imz3fr"))))
+         "0n68cf77gz34iq6w6ad87pbqwqam45nxp1gjzns4g6qhf7qdvrz4"))))
     (properties `((upstream-name . "RcppAnnoy")))
     (build-system r-build-system)
     (propagated-inputs
@@ -9790,14 +10446,14 @@ This package provides an R interface.")
 (define-public r-rcpphnsw
   (package
     (name "r-rcpphnsw")
-    (version "0.2.0")
+    (version "0.3.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "RcppHNSW" version))
        (sha256
         (base32
-         "0gqdkw7vkcm544rz45g0hplg836ygzbfwk9gh9wr0817icvdb3qv"))))
+         "01z0plf1i6dyibw4ica8shmijyk1grpqb886hcga72z2cpm4xsx0"))))
     (properties `((upstream-name . "RcppHNSW")))
     (build-system r-build-system)
     (propagated-inputs `(("r-rcpp" ,r-rcpp)))
@@ -9881,23 +10537,24 @@ Bioconductor packages.")
 (define-public r-rgl
   (package
     (name "r-rgl")
-    (version "0.100.54")
+    (version "0.104.16")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "rgl" version))
        (sha256
         (base32
-         "1mgs2d8igmcdzzymfwbqdrypmaidd4pra5n5gnhsn9pm6pqzidqp"))))
+         "169a8riiam8445nl7rcwn0x92dlwyzh5xldvap6dcxjyjqmjwbdq"))))
     (build-system r-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     `(("pkg-config" ,pkg-config)
+       ("r-knitr" ,r-knitr)))
     (inputs
      `(("freetype" ,freetype)
        ("libpng" ,libpng)
        ("glu" ,glu)
        ("libx11" ,libx11)
-       ("ghc-pandoc" ,ghc-pandoc)
+       ("pandoc" ,pandoc)
        ("zlib" ,zlib)))
     (propagated-inputs
      `(("r-crosstalk" ,r-crosstalk)
@@ -9944,14 +10601,14 @@ to colexicographical order.")
 (define-public r-misc3d
   (package
     (name "r-misc3d")
-    (version "0.8-4")
+    (version "0.9-0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "misc3d" version))
        (sha256
         (base32
-         "0qjzpw3h09qi2gfz52b7nhzd95p7yyxsd03fldc9wzzn6wi3vpkm"))))
+         "10jf5r1x588vi54bzaqgi9mgcqlkiga2c3jvmqmk3lavc8fjksd1"))))
     (build-system r-build-system)
     (home-page "https://cran.r-project.org/web/packages/misc3d/")
     (synopsis "Miscellaneous 3D Plots")
@@ -9994,19 +10651,19 @@ hypothesis testing.")
 (define-public r-feature
   (package
     (name "r-feature")
-    (version "1.2.13")
+    (version "1.2.14")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "feature" version))
        (sha256
         (base32
-         "07hkw0bv38naj2hdsx4xxrm2dngi6w3rbvgr7s50bjic8hlgy1ra"))))
+         "1c12rny9nx8dynzxbcf49h76a7wlmsk1m131wh0jiyqx3c3y41y1"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-ks" ,r-ks)
-       ("r-misc3d" ,r-misc3d)
-       ("r-rgl" ,r-rgl)))
+     `(("r-ks" ,r-ks)))
+    (native-inputs
+     `(("r-knitr" ,r-knitr)))
     (home-page "http://www.mvstat.net/tduong/")
     (synopsis "Inferential feature significance for kernel density estimation")
     (description
@@ -10230,14 +10887,14 @@ components).")
 (define-public r-fftwtools
   (package
     (name "r-fftwtools")
-    (version "0.9-8")
+    (version "0.9-9")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "fftwtools" version))
        (sha256
         (base32
-         "1nqvpzda281rxi1cmwajxxsn3sc3gz7scv8bvs5jm34kf36whha6"))))
+         "0h8lyl2i6zq16ir7xnfj9dhyivxvwikm8lml19s8s8jx95z3n9x9"))))
     (build-system r-build-system)
     (inputs `(("fftw" ,fftw)))
     (home-page "https://github.com/krahim/fftwtools")
@@ -10255,14 +10912,14 @@ redundant complex conjugate when the input is real data.")
 (define-public r-tiff
   (package
     (name "r-tiff")
-    (version "0.1-5")
+    (version "0.1-6")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "tiff" version))
        (sha256
         (base32
-         "0asf2bws3x3yd3g3ixvk0f86b0mdf882pl8xrqlxrkbgjalyc54m"))))
+         "1yy4im2lwzhjnnkfwxgkknsajvm83pcwaf370pkgfva2db0xjfv2"))))
     (build-system r-build-system)
     (inputs
      `(("libtiff" ,libtiff)
@@ -10280,14 +10937,14 @@ in-memory raw vectors.")
 (define-public r-nlp
   (package
     (name "r-nlp")
-    (version "0.2-0")
+    (version "0.2-1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "NLP" version))
        (sha256
         (base32
-         "0xbhkrnxcbf322jfw31xcn4y2gnk5y7ccq1bz4h3prf44h0whr7w"))))
+         "1dpj04fmld2lnhg072ahgjbhmciqqy9h1lrz0wf32mr7mm9s9sh5"))))
     (properties `((upstream-name . "NLP")))
     (build-system r-build-system)
     (home-page "https://cran.r-project.org/web/packages/NLP/")
@@ -10300,14 +10957,14 @@ Processing.")
 (define-public r-tm
   (package
     (name "r-tm")
-    (version "0.7-7")
+    (version "0.7-8")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "tm" version))
        (sha256
         (base32
-         "0pyics8j7a4wkh5gzin46l0qars5vgbb1886xqpdqjs1z0gy9nyh"))))
+         "0mk2lsplynms15nw92vbdgsafg4bw1m0ik31gch1mnsnv61idsxi"))))
     (properties `((upstream-name . "tm")))
     (build-system r-build-system)
     (propagated-inputs
@@ -10488,14 +11145,14 @@ only sparse real matrices in Matrix package format are supported.")
 (define-public r-speedglm
   (package
     (name "r-speedglm")
-    (version "0.3-2")
+    (version "0.3-3")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "speedglm" version))
        (sha256
         (base32
-         "1b25zimk0z7ad62yacqdg0zk0qs0jja4i918ym942xfw4j1z3jjz"))))
+         "0f37w4lj8dpcg1sfkd7cv6qpdkanmb97mnd8zih2fxzv8bpd0rfh"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-mass" ,r-mass)
@@ -10687,14 +11344,14 @@ diagnostics for controlling type-1 errors are also provided.")
 (define-public r-flare
   (package
     (name "r-flare")
-    (version "1.6.0.2")
+    (version "1.7.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "flare" version))
        (sha256
         (base32
-         "1ybrsx1djqldw0l5l1iz4pfh6xxb8ckkg1ric7wnsr51wm9ljlh5"))))
+         "0f992dmgnr6s8g3386i9bjfyf08q8srgw7sjz2yx7snj8znq7251"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-igraph" ,r-igraph)
@@ -10787,14 +11444,14 @@ Touzet and Varre (2007).")
 (define-public r-rnifti
   (package
     (name "r-rnifti")
-    (version "1.1.0")
+    (version "1.3.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "RNifti" version))
        (sha256
         (base32
-         "1z8ninp3aq18w0slcfn8r2fp48cdz8l0k0namsrnvgyp8lzcpqpn"))))
+         "1zr0q79id62csmc30c7gs4hbmavk8n6p50a981sfz51dczhjj5ny"))))
     (properties `((upstream-name . "RNifti")))
     (build-system r-build-system)
     (propagated-inputs `(("r-rcpp" ,r-rcpp)))
@@ -10872,14 +11529,14 @@ conditional reporting based on the current \"output level\".")
 (define-public r-tractor-base
   (package
     (name "r-tractor-base")
-    (version "3.3.2")
+    (version "3.3.3.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "tractor.base" version))
        (sha256
         (base32
-         "0y5gm0y4chl30f5qqq8qiiw4j8g32s4i9xrvyp3cwg902kf2p86i"))))
+         "0w5jw7pf77npkgig7667yikpbwv4dfk1dcq63qm88l409ga2f95p"))))
     (properties `((upstream-name . "tractor.base")))
     (build-system r-build-system)
     (propagated-inputs
@@ -11196,14 +11853,14 @@ preparing, executing, and processing HTTP requests.")
 (define-public r-bigrquery
   (package
     (name "r-bigrquery")
-    (version "1.3.1")
+    (version "1.3.2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "bigrquery" version))
        (sha256
         (base32
-         "0mq03sqv5lkyn3dlxvyd6lqqwnryfdaqh05pjvngzp194fxmd9cy"))))
+         "16whccv7f94vf57dvbbrhdskz3nnbmpa11a14kp7aynckldlfy0v"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-assertthat" ,r-assertthat)
@@ -11229,14 +11886,14 @@ preparing, executing, and processing HTTP requests.")
 (define-public r-gmp
   (package
     (name "r-gmp")
-    (version "0.6-0")
+    (version "0.6-2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "gmp" version))
        (sha256
         (base32
-         "1c9vpr6j6h5f6dm9l535nscl66rvr8sba5az2kswjhmzwb9xpjxc"))))
+         "03kzbflgpy5sgnzxmhshs5qv7jjmfc113ybkhxys4z8y7xdv9z3b"))))
     (build-system r-build-system)
     (arguments
      '(#:phases
@@ -11256,14 +11913,14 @@ limitations\" using the GNU Multiple Precision library.")
 (define-public r-rmpfr
   (package
     (name "r-rmpfr")
-    (version "0.8-1")
+    (version "0.8-2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "Rmpfr" version))
        (sha256
         (base32
-         "09kw7hyca8xc09r2d88qj81cclar8acaq5q9q5rw9f49iffda0rr"))))
+         "007pc7fpzl2mcg3qxa2vfjip6m2dr314qjsnybkj3kdj70bszxkl"))))
     (properties `((upstream-name . "Rmpfr")))
     (build-system r-build-system)
     (inputs
@@ -11725,17 +12382,19 @@ This makes it a convenient and fast interface to C/C++ and Fortran code.")
 (define-public r-spam
   (package
     (name "r-spam")
-    (version "2.5-1")
+    (version "2.6-0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "spam" version))
        (sha256
-        (base32 "0ry0a76cljlmilrzcriiizcidxyhq1i7i9bqhvl1qda81ld8hifi"))))
+        (base32 "0p5ycvpry955ldrgbbq3syy91wx9425mddpn8r5m9xwlirjxv3v3"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-dotcall64" ,r-dotcall64)))
-    (native-inputs `(("gfortran" ,gfortran)))
+    (native-inputs
+     `(("gfortran" ,gfortran)
+       ("r-knitr" ,r-knitr)))
     (home-page "https://www.math.uzh.ch/pages/spam/")
     (synopsis "Sparse matrix algebra")
     (description
@@ -11754,13 +12413,13 @@ Differences with other sparse matrix packages are:
 (define-public r-fields
   (package
     (name "r-fields")
-    (version "10.3")
+    (version "11.6")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "fields" version))
        (sha256
-        (base32 "12k97vfjlz5h8vynirnvik1nyj1iw25n8xl7awmx9mpd6wvgy2s9"))))
+        (base32 "1nsrgkw9w3mwd3sajyzc06h49gg1s0bkq6xh5b66h1n4jbcx2046"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-maps" ,r-maps)
@@ -11779,14 +12438,14 @@ covariance functions for large data sets.")
 (define-public r-spatialextremes
   (package
     (name "r-spatialextremes")
-    (version "2.0-8")
+    (version "2.0-9")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "SpatialExtremes" version))
        (sha256
         (base32
-         "0r2byz5xxc46zqnigdax28q7446ibmzmsmi10lmm2hdks3ml6sl3"))))
+         "1mhn1c8n3bmgf0fjyac3wji4790zswzkqliqcv3n8kv9806crb0y"))))
     (properties
      `((upstream-name . "SpatialExtremes")))
     (build-system r-build-system)
@@ -12019,14 +12678,14 @@ JASA, 94:496-509.")
 (define-public r-etm
   (package
     (name "r-etm")
-    (version "1.1")
+    (version "1.1.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "etm" version))
        (sha256
         (base32
-         "02yvh473l5qajaymhsxwb235a9r7q3nsig9a9mrfca68xih8yvgd"))))
+         "1hvrplmdpjjpjji663rw0vjbbrzj2nvr04d1nkc8bf46p4ixyxgy"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-data-table" ,r-data-table)
@@ -12045,19 +12704,20 @@ model with finite state space using the Aalen-Johansen estimator.")
 (define-public r-epi
   (package
     (name "r-epi")
-    (version "2.41")
+    (version "2.42")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "Epi" version))
        (sha256
         (base32
-         "09miba6zk63bwc79n3030kgzlvy3whkq968pgqyghxnsjfh5ckp5"))))
+         "1vsyxlxl6n5y3wr8w7ji17hnhvbr0xsawqbdl1ajcfg5faizm9sl"))))
     (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)
@@ -12203,14 +12863,14 @@ subsetting.")
 (define-public r-globals
   (package
     (name "r-globals")
-    (version "0.12.5")
+    (version "0.14.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "globals" version))
        (sha256
         (base32
-         "1ha8iasgijp4q3v2b0b17y1wh7cd3nvzd9b03w49qm2bidkaf68m"))))
+         "1wrjiiif6rpc268zz79pvpw33si6n6ffgxdnxmmcracwhb5vqg90"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-codetools" ,r-codetools)))
@@ -12224,22 +12884,51 @@ simple as possible to identify global objects for the purpose of exporting
 them in distributed compute environments.")
     (license license:lgpl2.1+)))
 
+(define-public r-parallelly
+  (package
+    (name "r-parallelly")
+    (version "1.23.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "parallelly" version))
+       (sha256
+        (base32
+         "025whcz55wj9jd73dalkbxh4l2331mqn758glr6hlf472lwf4v1p"))))
+    (properties `((upstream-name . "parallelly")))
+    (build-system r-build-system)
+    (home-page "https://github.com/HenrikBengtsson/parallelly")
+    (synopsis "Enhancements of the parallel package")
+    (description
+     "This package provides utility functions that enhance the @code{parallel}
+package and support the built-in parallel backends of the @code{future}
+package.  For example, @code{availableCores} gives the number of CPU cores
+available to your R process as given by R options and environment variables,
+including those set by job schedulers on high-performance compute clusters.
+If none is set, it will fall back to @code{parallel::detectCores}.  Another
+example is @code{makeClusterPSOCK}, which is backward compatible with
+@code{parallel::makePSOCKcluster} while doing a better job in setting up
+remote cluster workers without the need for configuring the firewall to do
+port-forwarding to your local computer.")
+    (license license:lgpl2.1+)))
+
 (define-public r-future
   (package
     (name "r-future")
-    (version "1.18.0")
+    (version "1.21.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "future" version))
        (sha256
         (base32
-         "01fp8kgjf0k6c83q1w3dy9z90g72cc9d0004d1qw6n1j65nwxg4f"))))
+         "0bfiy17n5rghxw0702k0vgpjkk13268lniifdlx59flf0q16d7lh"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-digest" ,r-digest)
        ("r-globals" ,r-globals)
-       ("r-listenv" ,r-listenv)))
+       ("r-listenv" ,r-listenv)
+       ("r-parallelly" ,r-parallelly)))
     (native-inputs
      `(("r-r-rsp" ,r-r-rsp))) ; vignette builder
     (home-page "https://github.com/HenrikBengtsson/future")
@@ -12259,14 +12948,14 @@ the local machine to, say, distributed processing on a remote compute cluster.")
 (define-public r-future-apply
   (package
     (name "r-future-apply")
-    (version "1.6.0")
+    (version "1.7.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "future.apply" version))
        (sha256
         (base32
-         "1zbfycjfvxnrigm6l2fd2zgnw96g0apiw426c73gkv3xv7bdy6ms"))))
+         "1ns5cf80vyabvyz9qp6kpvkg4jycinn7x6v7x6692fgjapdnmyig"))))
     (properties `((upstream-name . "future.apply")))
     (build-system r-build-system)
     (propagated-inputs
@@ -12525,14 +13214,14 @@ Coefficient Logit Models.")
 (define-public r-tensora
   (package
     (name "r-tensora")
-    (version "0.36.1")
+    (version "0.36.2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "tensorA" version))
        (sha256
         (base32
-         "176hjy3bvg3in62r97wxbhq187sjz6c1gwy9x6spaxl6k4my3zy7"))))
+         "19wwh654qlja4z1n7afjpzsrrm53p8ddysa2vra5mdnkddb4g2cf"))))
     (properties `((upstream-name . "tensorA")))
     (build-system r-build-system)
     (home-page "http://www.stat.boogaart.de/tensorA")
@@ -12572,14 +13261,14 @@ users of rARPACK are advised to switch to the RSpectra package.")
 (define-public r-compositions
   (package
     (name "r-compositions")
-    (version "2.0-0")
+    (version "2.0-1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "compositions" version))
        (sha256
         (base32
-         "0xsx4n699q2r4pk2jrvifi3wi49lih7d1j3j6qgqqd31brg53jqr"))))
+         "03qslsfx11gshls901zlhw47prd55mf16w4mkmd8x1dgiwq938l4"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-bayesm" ,r-bayesm)
@@ -12674,20 +13363,22 @@ transformation, respectively.")
 (define-public r-shinyjs
   (package
     (name "r-shinyjs")
-    (version "1.1")
+    (version "2.0.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "shinyjs" version))
        (sha256
         (base32
-         "14k8y313ppj23m9rhlk8jc94x6sbn3qrsnx6xrijiyv8m8dii1l9"))))
+         "1zzq356dvd8ciajy6r5n4ybgx9xk7ydwv25j86xlcsqznkxdkkf2"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-digest" ,r-digest)
        ("r-htmltools" ,r-htmltools)
        ("r-jsonlite" ,r-jsonlite)
        ("r-shiny" ,r-shiny)))
+    (native-inputs
+     `(("r-knitr" ,r-knitr)))
     (home-page "https://deanattali.com/shinyjs")
     (synopsis "Improve the user experience of your Shiny apps")
     (description
@@ -12704,14 +13395,14 @@ to easily call your own custom JavaScript functions from R.")
 (define-public r-colourpicker
   (package
     (name "r-colourpicker")
-    (version "1.0")
+    (version "1.1.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "colourpicker" version))
        (sha256
         (base32
-         "0z3v2083g7kwdp21x9s2n1crfh24agpdq3yxkcdzc2awn2pwpnpi"))))
+         "1qjispj7i12m02js5cm5xlgn5lyff0kc5ybz6lbknz8q5lkbdyrd"))))
     (build-system r-build-system)
     (arguments
      `(#:modules ((guix build utils)
@@ -12752,7 +13443,8 @@ to easily call your own custom JavaScript functions from R.")
        ("r-shiny" ,r-shiny)
        ("r-shinyjs" ,r-shinyjs)))
     (native-inputs
-     `(("uglify-js" ,uglify-js)
+     `(("r-knitr" ,r-knitr)
+       ("uglify-js" ,uglify-js)
        ("js-jquery"
         ,(origin
            (method url-fetch)
@@ -12857,17 +13549,19 @@ them (Anscombe-Glynn, D'Agostino, Bonett-Seier).")
 (define-public r-msir
   (package
     (name "r-msir")
-    (version "1.3.2")
+    (version "1.3.3")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "msir" version))
        (sha256
         (base32
-         "0pvc3q162vqq3k39nni732x05zzfz4y9y2zf56d83185ypszv9kb"))))
+         "1wm83m3cqd6llxb9p2jwim0wb81v84pgdmgcznygzaaq6kbn3n84"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-mclust" ,r-mclust)))
+    (native-inputs
+     `(("r-knitr" ,r-knitr)))
     (home-page "https://cran.r-project.org/web/packages/msir")
     (synopsis "Model-based sliced inverse regression")
     (description
@@ -13049,14 +13743,14 @@ graphs.")
 (define-public r-pbdzmq
   (package
     (name "r-pbdzmq")
-    (version "0.3-3")
+    (version "0.3-4")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "pbdZMQ" version))
        (sha256
         (base32
-         "1jkfcfhspvqra7vbllrvkz3jx8j7d0ang6zzcdjgpb7200sc29mf"))))
+         "0adiac53yq305ymhrds1gas4jm0rn1ddv7c7df5ky2cfhpb4ny87"))))
     (properties `((upstream-name . "pbdZMQ")))
     (build-system r-build-system)
     (inputs
@@ -13222,14 +13916,14 @@ plotting functions are available for analyzing clustering results.")
 (define-public r-valr
   (package
     (name "r-valr")
-    (version "0.6.1")
+    (version "0.6.2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "valr" version))
        (sha256
         (base32
-         "1qxw6h63i2vfb2w6q453zzwk0ypma3xdwwpj15i06669vzgyy3bb"))))
+         "1vbp89zfylgih5acvw7lcx3a0dbbd7dhq7yhywr7kq02737qykdx"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-broom" ,r-broom)
@@ -13575,14 +14269,14 @@ barplots or heatmaps.")
 (define-public r-seqinr
   (package
     (name "r-seqinr")
-    (version "3.6-1")
+    (version "4.2-5")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "seqinr" version))
        (sha256
         (base32
-         "0j30za6kji6y3v09cvcydiacnp65pv6ig8aw7cydl47l5s9chky4"))))
+         "1z1jipgrn9nrnxlx7bcf8c2chwpa3kfva0zgyb12xbr3kisn166y"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-ade4" ,r-ade4)
@@ -13708,14 +14402,14 @@ sampling.")
 (define-public r-deldir
   (package
     (name "r-deldir")
-    (version "0.1-28")
+    (version "0.2-9")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "deldir" version))
        (sha256
         (base32
-         "12ys8jdcrgzhf9m2yirlqfars397qb0q0pbypahmfa66lgr6wdx5"))))
+         "0jfwff5kk0zraspsvbk26lphl3fnrc6xmhl4690hr0a5k177ildm"))))
     (build-system r-build-system)
     (native-inputs `(("gfortran" ,gfortran)))
     (home-page "https://cran.r-project.org/web/packages/deldir")
@@ -13732,19 +14426,20 @@ tessellation.")
 (define-public r-sf
   (package
     (name "r-sf")
-    (version "0.9-5")
+    (version "0.9-7")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "sf" version))
        (sha256
         (base32
-         "0c58asqrvz1pkdkb0lkzwz8cwb43pmxd39z0jp217hk7p7q3ngwf"))))
+         "175fmnnw11fjhfgjv9sn9b0jfjcqbybpgwsvv99d5yddigvw5jja"))))
     (build-system r-build-system)
     (inputs
      `(("gdal" ,gdal)
        ("geos" ,geos)
-       ("proj" ,proj.4)
+       ("proj" ,proj)
+       ("sqlite" ,sqlite)
        ("zlib" ,zlib)))
     (propagated-inputs
      `(("r-classint" ,r-classint)
@@ -13844,13 +14539,13 @@ also provided to illustrate various methods.")
 (define-public r-pegas
   (package
     (name "r-pegas")
-    (version "0.13")
+    (version "0.14")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "pegas" version))
        (sha256
-        (base32 "002i7s4g0nhnq0v05gs0yssqiyhpq2f7rw2rhn31hsbgxc86frvy"))))
+        (base32 "0lr06gajzdanj8ax91kgpxsj863m367v2s1z5gnxps3999n0xybx"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-adegenet" ,r-adegenet)
@@ -13971,13 +14666,13 @@ lspec, polyclass, and polymars.")
 (define-public r-rms
   (package
     (name "r-rms")
-    (version "6.0-1")
+    (version "6.1-0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "rms" version))
        (sha256
-        (base32 "1zkcsqcvldfj4kyn0346vi51igq951qrnpxlv2pfvap6n2v5wbxq"))))
+        (base32 "0llz519rgnc7v2jqhfrjgixkpkmmi5wi1a52hgz3n28s46ww77mq"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-cluster" ,r-cluster)
@@ -14014,21 +14709,61 @@ generalized least squares for serially or spatially correlated observations,
 generalized linear models, and quantile regression.")
     (license license:gpl2+)))
 
+(define-public r-arsenal
+  (package
+    (name "r-arsenal")
+    (version "3.5.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "arsenal" version))
+       (sha256
+        (base32
+         "0avi434wkk3w7axd89a4jwsbb11fi0239mkkla6zasnjwbqgjim0"))))
+    (properties `((upstream-name . "arsenal")))
+    (build-system r-build-system)
+    (propagated-inputs `(("r-knitr" ,r-knitr)))
+    (native-inputs `(("r-knitr" ,r-knitr)))
+    (home-page "https://github.com/mayoverse/arsenal")
+    (synopsis "Functions for large-scale statistical summaries")
+    (description
+     "This package provides an arsenal of R functions for large-scale
+statistical summaries, which are streamlined to work within the latest
+reporting tools in R and RStudio and which use formulas and versatile
+summary statistics for summary tables and models.  The primary functions
+include
+
+@enumerate
+@item @code{tableby}, a Table-1-like summary of multiple variable types by the
+  levels of one or more categorical variables;
+@item @code{paired}, a Table-1-like summary of multiple variable types paired
+  across two time points;
+@item @code{modelsum}, which performs simple model fits on one or more
+  endpoints for many variables (univariate or adjusted for covariates);
+@item @code{freqlist}, a powerful frequency table across many categorical
+  variables;
+@item @code{comparedf}, a function for comparing @code{data.frames}; and
+@item @code{write2}, a function to output tables to a document.
+@end enumerate
+")
+    (license license:gpl2+)))
+
 (define-public r-haplo-stats
   (package
     (name "r-haplo-stats")
-    (version "1.7.9")
+    (version "1.8.6")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "haplo.stats" version))
        (sha256
         (base32
-         "19kxascqq5qz0zdxx0w837ji207y1z2ggxkl4vmlbay03k2dw2mx"))))
+         "1imz4gs0n57vixwwbirrihpgvn2pyj5da4rgjcjk14n2xkk0nay7"))))
     (properties `((upstream-name . "haplo.stats")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-rms" ,r-rms)))
+     `(("r-arsenal" ,r-arsenal)
+       ("r-rms" ,r-rms)))
     (native-inputs
      `(("r-r-rsp" ,r-r-rsp))) ; for vignettes
     (home-page "https://www.mayo.edu/research/labs/statistical-genetics-genetic-epidemiology/software")
@@ -14115,32 +14850,6 @@ effects.  It is applicable to backcrosses, doubled haploids, recombinant
 inbred lines, F2 intercrosses, and association mapping populations.")
     (license license:gpl2)))
 
-(define-public r-ldheatmap
-  (package
-    (name "r-ldheatmap")
-    (version "0.99-8")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (cran-uri "LDheatmap" version))
-       (sha256
-        (base32
-         "1x3da3rbhyqb2ddngi48qv7vzb6vc347n9qhryr70qgcc1xvqj4z"))))
-    (properties `((upstream-name . "LDheatmap")))
-    (build-system r-build-system)
-    (propagated-inputs
-     `(("r-genetics" ,r-genetics)
-       ("r-rcpp" ,r-rcpp)
-       ("r-snpstats" ,r-snpstats)))
-    (home-page "https://stat.sfu.ca/statgen/research/ldheatmap.html")
-    (synopsis "Graphical display of pairwise linkage disequilibria between SNPs")
-    (description
-     "This package provides tools to produce a graphical display, as a heat
-map, of measures of pairwise linkage disequilibria between SNPs.  Users may
-optionally include the physical locations or genetic map distances of each SNP
-on the plot.")
-    (license license:gpl3)))
-
 (define-public r-hwde
   (package
     (name "r-hwde")
@@ -14209,13 +14918,13 @@ SELECT or UPDATE queries to an end-point.")
 (define-public r-bookdown
   (package
     (name "r-bookdown")
-    (version "0.20")
+    (version "0.21")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "bookdown" version))
               (sha256
                (base32
-                "0gnshkp1aj7f29sjkhzxn890hz39nwaqdln61x8apmrc658nacdg"))))
+                "0xms1srx9l2mn8xaxnpic0s21y8k56bhwpj45wy7b0yscmxgmh27"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-htmltools" ,r-htmltools)
@@ -14223,7 +14932,8 @@ SELECT or UPDATE queries to an end-point.")
        ("r-rmarkdown" ,r-rmarkdown)
        ("r-tinytex" ,r-tinytex)
        ("r-xfun" ,r-xfun)
-       ("pandoc" ,ghc-pandoc)))
+       ("r-yaml" ,r-yaml)
+       ("pandoc" ,pandoc)))
     (home-page "https://github.com/rstudio/bookdown")
     (synopsis "Authoring books and technical documents with R markdown")
     (description "This package provides output formats and utilities for
@@ -14254,44 +14964,6 @@ authoring books and technical documents with R Markdown.")
 that accept short and long options.")
     (license license:gpl2+)))
 
-(define-public r-wgcna
-  (package
-    (name "r-wgcna")
-    (version "1.69")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (cran-uri "WGCNA" version))
-       (sha256
-        (base32
-         "022hkprnrafvggi8pkjffkvk1qlnibmbbxxrni00wkrdbga5589f"))))
-    (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)))
-    (home-page
-     "http://www.genetics.ucla.edu/labs/horvath/CoexpressionNetwork/Rpackages/WGCNA/")
-    (synopsis "Weighted correlation network analysis")
-    (description
-     "This package provides functions necessary to perform Weighted
-Correlation Network Analysis on high-dimensional data.  It includes functions
-for rudimentary data cleaning, construction and summarization of correlation
-networks, module identification and functions for relating both variables and
-modules to sample traits.  It also includes a number of utility functions for
-data manipulation and visualization.")
-    (license license:gpl2+)))
-
 (define-public r-kernlab
   (package
     (name "r-kernlab")
@@ -14367,14 +15039,14 @@ handle missing genotypes at some SNPs.")
 (define-public r-sampling
   (package
     (name "r-sampling")
-    (version "2.8")
+    (version "2.9")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "sampling" version))
        (sha256
         (base32
-         "06pj7dan0mknpsblmlnk7am78qrnwgnql5vvx7vmbfvib7rj6s9m"))))
+         "11xis4vzn2ga8ml9xrgfgqzccvwbnabq35aidzdvpnvciybsanvz"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-lpsolve" ,r-lpsolve)
@@ -14606,20 +15278,21 @@ the XKCD web comic.")
 (define-public r-msigdbr
   (package
     (name "r-msigdbr")
-    (version "7.1.1")
+    (version "7.2.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "msigdbr" version))
        (sha256
         (base32
-         "0jvi49qa7616s58p0rx66pcw7h12rc8kgcg9225jk7pc3934hnzh"))))
+         "1rc2p9vw57pn4prmfgay4w18qd53ggq7wxfsi9kp7w25ciip1dq1"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-dplyr" ,r-dplyr)
        ("r-magrittr" ,r-magrittr)
        ("r-rlang" ,r-rlang)
-       ("r-tibble" ,r-tibble)))
+       ("r-tibble" ,r-tibble)
+       ("r-tidyselect" ,r-tidyselect)))
     (native-inputs
      `(("r-knitr" ,r-knitr)))
     (home-page "https://github.com/igordot/msigdbr")
@@ -14639,14 +15312,14 @@ yeast.")
 (define-public r-gridgraphics
   (package
     (name "r-gridgraphics")
-    (version "0.5-0")
+    (version "0.5-1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "gridGraphics" version))
        (sha256
         (base32
-         "0rlyc3xk8kfrfzbfd8n4javq3yxqd7lsfmi4q5n6s61srnrl6c1r"))))
+         "12yswy02j3h5wir7m5jnkhpjmb0sa4snn61vjd68i49qwsa6w219"))))
     (properties `((upstream-name . "gridGraphics")))
     (build-system r-build-system)
     (home-page "https://github.com/pmur002/gridgraphics")
@@ -14888,14 +15561,14 @@ databases, including ENA, PDB or ChEMBL are also accessible.")
 (define-public r-ggraph
   (package
     (name "r-ggraph")
-    (version "2.0.3")
+    (version "2.0.4")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "ggraph" version))
        (sha256
         (base32
-         "1pz06j0za4p6dc3fqjzcw8bpym70bmnfcvpv1q34r74rnwzjdyvq"))))
+         "1j3xf4fsv0i0gbppdrw4yprfyk53wx6s8nvnkipi2ywbm7cr4q4w"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-digest" ,r-digest)
@@ -14911,7 +15584,8 @@ databases, including ENA, PDB or ChEMBL are also accessible.")
        ("r-rlang" ,r-rlang)
        ("r-scales" ,r-scales)
        ("r-tidygraph" ,r-tidygraph)
-       ("r-viridis" ,r-viridis)))
+       ("r-viridis" ,r-viridis)
+       ("r-withr" ,r-withr)))
     (native-inputs
      `(("r-knitr" ,r-knitr)))
     (home-page "https://cran.r-project.org/web/packages/ggraph/")
@@ -14996,22 +15670,22 @@ discriminant analysis for the purpose of classifying high dimensional data.")
 (define-public r-ggvis
   (package
     (name "r-ggvis")
-    (version "0.4.5")
+    (version "0.4.7")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "ggvis" version))
        (sha256
         (base32
-         "091i9f17912j8qcyxppjgwzjnyqj7769ixs9d2gjg6f2clskqdw2"))))
+         "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-lazyeval" ,r-lazyeval)
        ("r-magrittr" ,r-magrittr)
+       ("r-rlang" ,r-rlang)
        ("r-shiny" ,r-shiny)))
     (home-page "https://ggvis.rstudio.com/")
     (synopsis "Interactive grammar of graphics")
@@ -15451,14 +16125,14 @@ regular expressions from human readable expressions")
 (define-public r-xmlparsedata
   (package
     (name "r-xmlparsedata")
-    (version "1.0.3")
+    (version "1.0.4")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "xmlparsedata" version))
        (sha256
         (base32
-         "0gjr3l5z5dp276lchr2649as1rkj56d2mlvbr66yg393zzw50lsh"))))
+         "177vfyjrqfi3wam8scpsradap1lv35yc25xq745dr7gabg116yrq"))))
     (properties `((upstream-name . "xmlparsedata")))
     (build-system r-build-system)
     (home-page "https://github.com/r-lib/xmlparsedata#readme")
@@ -15533,23 +16207,25 @@ code edited with @code{RStudio IDE}, @code{Emacs} and @code{Vim}.")
 (define-public r-sctransform
   (package
     (name "r-sctransform")
-    (version "0.2.1")
+    (version "0.3.2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "sctransform" version))
        (sha256
         (base32
-         "07v3lzccsrkh1glfxd1q20r8f8gl9ls5az0s1dvxm4vcls0hlhyn"))))
+         "1p3m6i28nlxh6r609syn88cwlbdpl3dw44dy3gsijk2ibq20mfsx"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-future-apply" ,r-future-apply)
+     `(("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-rcppeigen" ,r-rcppeigen)
+       ("r-rcpparmadillo" ,r-rcpparmadillo)
        ("r-reshape2" ,r-reshape2)))
     (home-page "https://github.com/ChristophH/sctransform")
     (synopsis "Variance stabilizing transformations for Single Cell UMI Data")
@@ -15635,14 +16311,14 @@ parallel versions of vectorized R functions of the @code{mc*apply} family.")
 (define-public r-blme
   (package
     (name "r-blme")
-    (version "1.0-4")
+    (version "1.0-5")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "blme" version))
        (sha256
         (base32
-         "1ca2b0248k0fj3lczn9shfjplz1sl4ay4v6djldizp2ch2vwdgy2"))))
+         "0413j7gwr5yj14jamkizj55q7xii1a0kgazzj0ilqn2ascclz6k7"))))
     (build-system r-build-system)
     (propagated-inputs `(("r-lme4" ,r-lme4)))
     (home-page "https://github.com/vdorie/blme")
@@ -15656,14 +16332,14 @@ extends the lme4 package.")
 (define-public r-batchtools
   (package
     (name "r-batchtools")
-    (version "0.9.13")
+    (version "0.9.15")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "batchtools" version))
        (sha256
         (base32
-         "02bwfinwgn5nl638997javig61jmr0ci0qybmprz13jnvmam1yns"))))
+         "0d2xy77hkzhcnyz8zxcv98i80fx6ripjw4rvyx4ww1d0vjjgqf52"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-backports" ,r-backports)
@@ -15695,14 +16371,14 @@ experiments in a well-organized and reproducible way.")
 (define-public r-clue
   (package
     (name "r-clue")
-    (version "0.3-57")
+    (version "0.3-58")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "clue" version))
        (sha256
         (base32
-         "05rdcahawxlxci3fjxihjvvh33wqpxw50sx015165ab4nh3rsdkf"))))
+         "1rwwxlnpl1k0n4k96vxc9zajw9kb4syqwzj76fvaf0qim8p6ddia"))))
     (build-system r-build-system)
     (propagated-inputs `(("r-cluster" ,r-cluster)))
     (home-page "https://cran.r-project.org/web/packages/clue/")
@@ -15772,14 +16448,14 @@ engine (Salmon et al., 2011) as provided by the package @code{sitmo}.")
 (define-public r-ingredients
   (package
     (name "r-ingredients")
-    (version "1.3.1")
+    (version "2.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "ingredients" version))
        (sha256
         (base32
-         "0l0dqrm9am6wk8jcf8cdhc6xnrna9cqr5wz6lsnczq2gf6ybhjg1"))))
+         "084ywbq0dwnf075bazz40n23wh7r1fwl6zs7xqkcg07kfzqkzb2w"))))
     (properties `((upstream-name . "ingredients")))
     (build-system r-build-system)
     (propagated-inputs
@@ -15838,14 +16514,14 @@ classification and regression models.")
 (define-public r-dae
   (package
     (name "r-dae")
-    (version "3.1-27")
+    (version "3.1-32")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "dae" version))
        (sha256
         (base32
-         "14q3cxhcz0zqjdkas0dl71k2bp5qwvb60gha47s78hdr38r46kml"))))
+         "126w1lb9pz8mb2ajl2vz5dj798nbifp0dypnzfgcwixif5g5bpqi"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-ggplot2" ,r-ggplot2)
@@ -15877,14 +16553,14 @@ been used in the call to @code{aov}.")
 (define-public r-dalex
   (package
     (name "r-dalex")
-    (version "1.3.1.1")
+    (version "2.0.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "DALEX" version))
        (sha256
         (base32
-         "0akw1yzhb3shpg6yb89vralqd2z80z5yk9azqaa55dx56as52kjs"))))
+         "1hiknx55d91abyfj3w4a2xxin7f1q8h5k0041m7w93xjdc4kis98"))))
     (properties `((upstream-name . "DALEX")))
     (build-system r-build-system)
     (propagated-inputs
@@ -15952,14 +16628,14 @@ includes data sets from oceanography.")
 (define-public r-ggfortify
   (package
     (name "r-ggfortify")
-    (version "0.4.10")
+    (version "0.4.11")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "ggfortify" version))
        (sha256
         (base32
-         "0wmcwp63h90v3f00ixszvis4z28im621jickvc0wgi6qvjvnayq0"))))
+         "1wfm7l9bz6msh7rflgfv9dgbxh1ikz2ay0v7sgk9nkc24y6lhbpk"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-dplyr" ,r-dplyr)
@@ -15983,24 +16659,25 @@ results and plots in a unified style using the @code{ggplot2} package.")
 (define-public r-refmanager
   (package
     (name "r-refmanager")
-    (version "1.2.12")
+    (version "1.3.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "RefManageR" version))
        (sha256
         (base32
-         "1hfxa1qacfryk36mpaqdhdgws5jwxiyy489ikd3wa18bp1wz8dkp"))))
+         "1spzdp5ni52dybcaxqnhwdphh27wjyrsfy4hsxsplpg9rqwfqfps"))))
     (properties `((upstream-name . "RefManageR")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-bibtex" ,r-bibtex)
-       ("r-httr" ,r-httr)
+     `(("r-httr" ,r-httr)
        ("r-jsonlite" ,r-jsonlite)
        ("r-lubridate" ,r-lubridate)
        ("r-plyr" ,r-plyr)
        ("r-stringr" ,r-stringr)
        ("r-xml2" ,r-xml2)))
+    (native-inputs
+     `(("r-knitr" ,r-knitr)))
     (home-page "https://github.com/ropensci/RefManageR/")
     (synopsis "Straightforward BibTeX and BibLaTeX bibliography management")
     (description
@@ -16048,20 +16725,19 @@ the current document.")
 (define-public r-xgboost
   (package
     (name "r-xgboost")
-    (version "1.1.1.1")
+    (version "1.3.2.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "xgboost" version))
        (sha256
         (base32
-         "13njhcxljhbcs37ni6r5174fk8kx9b5p7rlw1an1ak3w92jn56cq"))))
+         "117q8xqm82589517fi8xicd8724v9c0wnq3qpl84h6nm3aw65x1g"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-data-table" ,r-data-table)
        ("r-magrittr" ,r-magrittr)
-       ("r-matrix" ,r-matrix)
-       ("r-stringi" ,r-stringi)))
+       ("r-matrix" ,r-matrix)))
     (native-inputs
      `(("r-knitr" ,r-knitr)))
     (home-page "https://github.com/dmlc/xgboost")
@@ -16080,14 +16756,14 @@ easily.")
 (define-public r-umap
   (package
     (name "r-umap")
-    (version "0.2.6.0")
+    (version "0.2.7.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "umap" version))
        (sha256
         (base32
-         "0zajn2sk705sckljxl5vz4q2sxpsqim2grmjq2jwwc8ysr1h2s9f"))))
+         "191vpy84s0bar06y9z1qx43x2kc4qp7lmrcmd0cvz2pnzq722jab"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-openssl" ,r-openssl)
@@ -16107,14 +16783,14 @@ in R, including a translation of the original algorithm into R.")
 (define-public r-uwot
   (package
     (name "r-uwot")
-    (version "0.1.8")
+    (version "0.1.10")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "uwot" version))
        (sha256
         (base32
-         "1jzh8r1h6f7pw7pb1fr32vn6ai9g10s56ahkq0vi77iznihy1rpd"))))
+         "08vxh085wnrxgwy35ksb4cr7ccjvd98pyr2zlgarqryfgc1bdqbf"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-dqrng" ,r-dqrng)
@@ -16138,14 +16814,14 @@ LargeVis method of Tang et al. (2016) is also provided.")
 (define-public r-kableextra
   (package
     (name "r-kableextra")
-    (version "1.1.0")
+    (version "1.3.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "kableExtra" version))
        (sha256
         (base32
-         "1nicvw06xsf3a1f5c10mih07b76m2v5s5h165vmz0qx6n1a3492i"))))
+         "1zixccpgy9x95fgzfgxc43pm020c80c21flch71klc3zzzsq53gf"))))
     (properties `((upstream-name . "kableExtra")))
     (build-system r-build-system)
     (propagated-inputs
@@ -16154,7 +16830,6 @@ LargeVis method of Tang et al. (2016) is also provided.")
        ("r-htmltools" ,r-htmltools)
        ("r-knitr" ,r-knitr)
        ("r-magrittr" ,r-magrittr)
-       ("r-readr" ,r-readr)
        ("r-rmarkdown" ,r-rmarkdown)
        ("r-rstudioapi" ,r-rstudioapi)
        ("r-rvest" ,r-rvest)
@@ -16163,6 +16838,8 @@ LargeVis method of Tang et al. (2016) is also provided.")
        ("r-viridislite" ,r-viridislite)
        ("r-webshot" ,r-webshot)
        ("r-xml2" ,r-xml2)))
+    (native-inputs
+     `(("r-knitr" ,r-knitr)))
     (home-page "https://haozhu233.github.io/kableExtra/")
     (synopsis "Construct complex tables with pipe syntax")
     (description
@@ -16265,20 +16942,22 @@ computed using the L1 (Manhattan, taxicab) metric.")
 (define-public r-leiden
   (package
     (name "r-leiden")
-    (version "0.3.3")
+    (version "0.3.6")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "leiden" version))
        (sha256
         (base32
-         "1hh6bmbz6cpqwl4i94gxylgv9x92zbqdg81r8r4ymfy8c70f3df2"))))
+         "1k1250bjgf2cb1whp2sl1r6b88156qwi2zkamw5iy2q1qhw6w2d7"))))
     (properties `((upstream-name . "leiden")))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-igraph" ,r-igraph)
        ("r-matrix" ,r-matrix)
        ("r-reticulate" ,r-reticulate)))
+    (native-inputs
+     `(("r-knitr" ,r-knitr)))
     (home-page "https://github.com/TomKellyGenetics/leiden")
     (synopsis "R implementation of Leiden clustering algorithm")
     (description
@@ -16291,14 +16970,14 @@ guaranteeing well-connected communities.\" <arXiv:1810.08473>.")
 (define-public r-patchwork
   (package
     (name "r-patchwork")
-    (version "1.0.1")
+    (version "1.1.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "patchwork" version))
        (sha256
         (base32
-         "0wm93a40idrkzn5hpnykhznvh7hdbfqw0dkzzn0zk83qlwyc9g02"))))
+         "10glgkf58lcykcwda1hj6xdps02m3i247qynk6s2jmwljagps3fg"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-ggplot2" ,r-ggplot2)
@@ -16311,7 +16990,7 @@ guaranteeing well-connected communities.\" <arXiv:1810.08473>.")
      "The @code{ggplot2} package provides a strong API for sequentially
 building up a plot, but does not concern itself with composition of multiple
 plots.  Patchwork is a package that expands the API to allow for arbitrarily
-complex composition of plots by providing mathmatical operators for combining
+complex composition of plots by providing mathematical operators for combining
 multiple plots.")
     (license license:expat)))
 
@@ -16435,13 +17114,13 @@ function and interfaces to external frameworks.")
 (define-public r-covr
   (package
     (name "r-covr")
-    (version "3.5.0")
+    (version "3.5.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "covr" version))
        (sha256
-        (base32 "1pvr95h7jg9hqq1qq1cccy323pkxldrwafl08151cc410499k4fb"))))
+        (base32 "0v5cv3cw2kpdr6wxmkbd3wclavr17zipypdcb10hhmpa4cvgqk55"))))
     (properties `((upstream-name . "covr")))
     (build-system r-build-system)
     (propagated-inputs
@@ -16468,16 +17147,18 @@ both R code and compiled C/C++/FORTRAN code.")
 (define-public r-systemfonts
   (package
     (name "r-systemfonts")
-    (version "0.2.3")
+    (version "0.3.2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "systemfonts" version))
        (sha256
         (base32
-         "0wf62mfam5zlrck0wrdbyi4hi7pn5j0739rihgp8sj2cjypm2lnb"))))
+         "12hdvv66kkd3b4rs82blc3c4ifz2dw1048sqpkbz6vkk1zqpc53x"))))
     (properties `((upstream-name . "systemfonts")))
     (build-system r-build-system)
+    (propagated-inputs
+     `(("r-cpp11" ,r-cpp11)))
     (inputs
      `(("fontconfig" ,fontconfig)
        ("zlib" ,zlib)))
@@ -16497,14 +17178,14 @@ be used further by e.g. graphic devices.")
 (define-public r-graphlayouts
   (package
     (name "r-graphlayouts")
-    (version "0.7.0")
+    (version "0.7.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "graphlayouts" version))
        (sha256
         (base32
-         "17lc75k8i3c696hfj44zj7j1a5sb0nap8spc5r98v7vd6xh4nii0"))))
+         "05v7ss18bflhqa4ipsca8iw2ln8ddbaiyrizx2a5cwq81g5qq3rq"))))
     (properties `((upstream-name . "graphlayouts")))
     (build-system r-build-system)
     (propagated-inputs
@@ -16614,14 +17295,14 @@ in pipelines.")
 (define-public r-parameters
   (package
     (name "r-parameters")
-    (version "0.8.2")
+    (version "0.11.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "parameters" version))
        (sha256
         (base32
-         "0kamszscywvdh4gikl5mmma7s5p7spmhirq3wrgf7x7f4gppbbmh"))))
+         "020k3vxnp0vjrlkcxx5vj30vag474hw48zxzw9315whsq4hhhbqc"))))
     (properties `((upstream-name . "parameters")))
     (build-system r-build-system)
     (propagated-inputs
@@ -16643,18 +17324,18 @@ effect size.")
 (define-public r-rgdal
   (package
     (name "r-rgdal")
-    (version "1.5-16")
+    (version "1.5-19")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "rgdal" version))
        (sha256
-        (base32 "0rwlsafqxgqflfid4ciaa9qz3f75fgw8hilhaqj558gdxg8bzigp"))))
+        (base32 "1cii2azm3zv5l6fn33xzwahp8349z3pb2769vpdxkf7734dxggvg"))))
     (properties `((upstream-name . "rgdal")))
     (build-system r-build-system)
     (inputs
      `(("gdal" ,gdal)
-       ("proj.4" ,proj.4)
+       ("proj" ,proj)
        ("zlib" ,zlib)))
     (propagated-inputs
      `(("r-sp" ,r-sp)))
@@ -16897,14 +17578,14 @@ structural data.")
 (define-public r-bios2cor
   (package
     (name "r-bios2cor")
-    (version "2.1")
+    (version "2.2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "Bios2cor" version))
        (sha256
         (base32
-         "04wk1cjrrxhpv1kdhd67r1qvjv268xxi0z0r105wy912110z9m6x"))))
+         "1wkj9vr33m9jilidil9jpw5rzr3pf7gkimxdvch22ks4bgkx7l1w"))))
     (properties `((upstream-name . "Bios2cor")))
     (build-system r-build-system)
     (propagated-inputs
@@ -17261,14 +17942,14 @@ server-side.")
 (define-public r-sysfonts
   (package
     (name "r-sysfonts")
-    (version "0.8.1")
+    (version "0.8.3")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "sysfonts" version))
        (sha256
         (base32
-         "1xp40hchjfif80a6jj210ghrjcvjjf66vqcssdy7a1j53nl1n994"))))
+         "00kbazxw6zd1kakfshffdj928krca53bw9k78k0zar40mbqxiwd5"))))
     (properties `((upstream-name . "sysfonts")))
     (build-system r-build-system)
     (inputs
@@ -17309,14 +17990,14 @@ package.")
 (define-public r-showtext
   (package
     (name "r-showtext")
-    (version "0.8-1")
+    (version "0.9-2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "showtext" version))
        (sha256
         (base32
-         "1n1cd9f4zrv45k5953akclqh1jh7fy122dqkgmbfi5h122v6p2h0"))))
+         "0y5mw6ffk92r7b22irrfhdmj4hxfl0d1wjxj14hznbapc4qm6f0z"))))
     (properties `((upstream-name . "showtext")))
     (build-system r-build-system)
     (inputs
@@ -17430,14 +18111,14 @@ regression models.")
 (define-public r-abtest
   (package
     (name "r-abtest")
-    (version "0.2.1")
+    (version "0.2.2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "abtest" version))
        (sha256
         (base32
-         "1zfd13d7dplawk24dbdr1ka8cbdp5w6sxb0zlm7k4dhvn6ksi8h0"))))
+         "1ak0m4jd1grriwg4pn3aqf1468qma6rjn5kqjh8izx7zl29jd07v"))))
     (properties `((upstream-name . "abtest")))
     (build-system r-build-system)
     (propagated-inputs
@@ -17802,14 +18483,14 @@ See e.g. Gentle (2003) @url{doi:10.1007/b97336}.")
 (define-public r-lhs
   (package
     (name "r-lhs")
-    (version "1.0.2")
+    (version "1.1.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "lhs" version))
        (sha256
         (base32
-         "0n0i1hr9gmc0hfcs2cvpjvdfgm6k26rhcq3q22r8ic0gfj953572"))))
+         "1p4h03qlijs2a59wfd4rlvdlb9i87pw2zm8xsjd6yzz8vlm9yglh"))))
     (properties `((upstream-name . "lhs")))
     (build-system r-build-system)
     (propagated-inputs `(("r-rcpp" ,r-rcpp)))
@@ -17825,14 +18506,14 @@ Latin Hypercube Samples.")
 (define-public r-acebayes
   (package
     (name "r-acebayes")
-    (version "1.9")
+    (version "1.10")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "acebayes" version))
        (sha256
         (base32
-         "1imfwm1vpbb24vfmfn1nljhmaz8429mwjihw34892p387s8h7xz2"))))
+         "11bffz430gdfdaxjx3simig66vhynmx6l1ylac4q2shcmj52nx73"))))
     (properties `((upstream-name . "acebayes")))
     (build-system r-build-system)
     (propagated-inputs
@@ -17856,14 +18537,14 @@ to maximise an approximation to the expectation of the utility function.")
 (define-public r-acet
   (package
     (name "r-acet")
-    (version "1.8.0")
+    (version "1.8.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "ACEt" version))
        (sha256
         (base32
-         "0626d6kg485xjya164wagrr5z223jvi93ywbwpdns7fkm03c0dlq"))))
+         "0b5lfpnppyk0237phr2aybhx29nhm8ngwk2qa1y4lshrvsw97wg4"))))
     (properties `((upstream-name . "ACEt")))
     (build-system r-build-system)
     (propagated-inputs
@@ -17932,14 +18613,14 @@ models.")
 (define-public r-gamlss
   (package
     (name "r-gamlss")
-    (version "5.1-7")
+    (version "5.2-0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "gamlss" version))
        (sha256
         (base32
-         "0ywqwsp4k6jgnicp1gdsglji61l5cnackl52700v8kmkk83bq4c8"))))
+         "1q82md0439si0n7vqbbbdk45sjr0ad7i8mgrn3kwnr4h213pb4nk"))))
     (properties `((upstream-name . "gamlss")))
     (build-system r-build-system)
     (propagated-inputs
@@ -18030,7 +18711,7 @@ the align-and-count method.")
     (native-inputs
      `(("r-knitr" ,r-knitr)
        ("r-rmarkdown" ,r-rmarkdown)
-       ("pandoc-citeproc" ,ghc-pandoc-citeproc)))
+       ("pandoc-citeproc" ,pandoc-citeproc)))
     (home-page "https://github.com/andreyshabalin/filematrix")
     (synopsis "File-backed matrix class with convenient read and write access")
     (description
@@ -18124,14 +18805,14 @@ the @code{aroma.affymetrix} package.")
 (define-public r-r-filesets
   (package
     (name "r-r-filesets")
-    (version "2.13.0")
+    (version "2.14.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "R.filesets" version))
        (sha256
         (base32
-         "124rygq0bl9n4akxcm868nl30cyk3rz0iprb98zlpk62gci9f5fg"))))
+         "08xv8b3c81nf54viyr3w912al18483k5gfnjpg7bxbdfk70dfzbh"))))
     (properties `((upstream-name . "R.filesets")))
     (build-system r-build-system)
     (propagated-inputs
@@ -18156,14 +18837,14 @@ identify file sets and individual files.")
 (define-public r-r-devices
   (package
     (name "r-r-devices")
-    (version "2.16.1")
+    (version "2.17.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "R.devices" version))
        (sha256
         (base32
-         "15zlnq3g27whq26fbcy5zfl5hiddm256h4rga4frblg6wqlbkvdd"))))
+         "1djz6vm1b7sjvx1q319dl47gbnz9kvipaxcz9i0spyp094lv3m62"))))
     (properties `((upstream-name . "R.devices")))
     (build-system r-build-system)
     (propagated-inputs
@@ -18777,21 +19458,124 @@ metrics to quantify time accumulation strategies based on minute level
 actigraphy-measured activity counts data.")
     (license license:gpl3)))
 
+(define-public r-ash
+  (package
+    (name "r-ash")
+    (version "1.0-15")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "ash" version))
+       (sha256
+        (base32
+         "1ay2a2agdmiz7zzvn26mli0x0iwk09g5pp4yy1r23knhkp1pn2lb"))))
+    (properties `((upstream-name . "ash")))
+    (build-system r-build-system)
+    (native-inputs `(("gfortran" ,gfortran)))
+    (home-page "https://cran.r-project.org/web/packages/ash/")
+    (synopsis "David Scott's ASH routines")
+    (description
+     "This package provides David Scott's ASH routines ported from S-PLUS to
+R.")
+    (license license:gpl2+)))
+
+(define-public r-hdrcde
+  (package
+    (name "r-hdrcde")
+    (version "3.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "hdrcde" version))
+       (sha256
+        (base32
+         "16qlk44cjvn2s0vzaf915df65ksdx20dbxhy7fpdqins46hccha3"))))
+    (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)))
+    (home-page "http://pkg.robjhyndman.com/hdrcde")
+    (synopsis "Highest density regions and conditional density estimation")
+    (description
+     "This is a package for the computation of highest density regions in one
+and two dimensions, kernel estimation of univariate density functions
+conditional on one covariate, and multimodal regression.")
+    (license license:gpl3)))
+
+(define-public r-rainbow
+  (package
+    (name "r-rainbow")
+    (version "3.6")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "rainbow" version))
+       (sha256
+        (base32
+         "11vfcck17d2xjc049ci5i8l1nqv345anmd110gdz7654i1pj9lb3"))))
+    (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)))
+    (home-page "https://cran.r-project.org/web/packages/rainbow/")
+    (synopsis "Bagplots, boxplots and rainbow plots for functional data")
+    (description
+     "This is a package for visualizing functional data and identifying
+functional outliers with bagplots, boxplots and rainbow plots.")
+    (license license:gpl3)))
+
+(define-public r-fds
+  (package
+    (name "r-fds")
+    (version "1.8")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "fds" version))
+       (sha256
+        (base32
+         "1284vncixrzrz9x6b52gslrbrbia07sd0xac7nwdqhp5f5v5wfi0"))))
+    (properties `((upstream-name . "fds")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-rainbow" ,r-rainbow)
+       ("r-rcurl" ,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,
+sliced functional time series, and functional data sets.  Functional time
+series is a special type of functional data observed over time.  Sliced
+functional time series is a special type of functional time series with a time
+variable observed over time.")
+    (license license:gpl2+)))
+
 (define-public r-fda
   (package
     (name "r-fda")
-    (version "5.1.5.1")
+    (version "5.1.9")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "fda" version))
        (sha256
         (base32
-         "0zi001cw5536x6rgr4l0skva7fk53663zf6ggnsa8znml090sihm"))))
+         "0yjrjsv55bcwqn2yxjgj3hn17wfvjvgngfw9xv3w802i52yz9gf8"))))
     (properties `((upstream-name . "fda")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-matrix" ,r-matrix)))
+     `(("r-fds" ,r-fds)
+       ("r-matrix" ,r-matrix)))
     (home-page "https://www.functionaldata.org")
     (synopsis "Functional data analysis")
     (description
@@ -18886,20 +19670,22 @@ data for different accelerometer brands.")
 (define-public r-activityindex
   (package
     (name "r-activityindex")
-    (version "0.3.6")
+    (version "0.3.7")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "ActivityIndex" version))
        (sha256
         (base32
-         "14k6d78s15j7kb7jhixf4msrdjdl28d0r264cbvy41p8dkq7ysvk"))))
+         "1zj2b6x31a1kxl80rarmkrlm7ack4154mrkbqs3fpi48zpmjbgd5"))))
     (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)))
+    (native-inputs
+     `(("r-knitr" ,r-knitr)))
     (home-page "https://cran.r-project.org/web/packages/ActivityIndex/")
     (synopsis "Activity Index calculation using raw accelerometry data")
     (description
@@ -19018,14 +19804,14 @@ API; see the package vignette for details.")
 (define-public r-actuar
   (package
     (name "r-actuar")
-    (version "3.0-0")
+    (version "3.1-0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "actuar" version))
        (sha256
         (base32
-         "0dkp1sczldzy7kj70qvh1q59jhsq1brjybmxdz43jnx63y45llpz"))))
+         "15a8axb2ym46j8vlm7icwnsc950p8m66hp0armha7drk0725y77k"))))
     (properties `((upstream-name . "actuar")))
     (build-system r-build-system)
     (propagated-inputs `(("r-expint" ,r-expint)))
@@ -19428,7 +20214,7 @@ on distances rather than on unit x variables.")
      "This package provides tools for depth functions methodology applied to
 multivariate analysis.  Besides allowing calculation of depth values and
 depth-based location estimators, the package includes functions or drawing
-contour plots and perspective plots of depth functions.  Euclidian and
+contour plots and perspective plots of depth functions.  Euclidean and
 spherical depths are supported.")
     (license license:gpl2)))
 
@@ -19547,7 +20333,7 @@ statistical shape analysis and archetypal analysis.")
      "This package is a collection of several algorithms to obtain
 archetypoids with small and large databases and with both classical
 multivariate data and functional data (univariate and multivariate).  Some of
-these algorithms also allow to detect anomalies (outliers).")
+these algorithms also detect anomalies (outliers).")
     (license license:gpl2+)))
 
 (define-public r-idpmisc
@@ -19681,14 +20467,14 @@ generation for the Poisson binomial distribution.")
 (define-public r-diagram
   (package
     (name "r-diagram")
-    (version "1.6.4")
+    (version "1.6.5")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "diagram" version))
        (sha256
         (base32
-         "0f6ffprn5k0ir1s7m9s7izc64aa17r3gnygagz5bihrlsvawaavw"))))
+         "1r3lyl0h7mk9cfg8smr3jydfkjdawaphnxibkxfjqa7029vkxh79"))))
     (properties `((upstream-name . "diagram")))
     (build-system r-build-system)
     (propagated-inputs
@@ -20081,14 +20867,14 @@ Raftery, Appl.Statistics, 1989); it includes inference and basic methods.")
 (define-public r-forecast
   (package
     (name "r-forecast")
-    (version "8.12")
+    (version "8.13")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "forecast" version))
        (sha256
         (base32
-         "1ycj5z4wd5a16nlcjy07dqm8jkih240xa02cn4wvysnnhkapyq7b"))))
+         "0vrql5d4v28890np2m6ws1nr1fcl6frs1bz74vfkihkixcmkl3j9"))))
     (properties `((upstream-name . "forecast")))
     (build-system r-build-system)
     (propagated-inputs
@@ -20167,14 +20953,14 @@ and Euclidean distance is particularly fast.")
 (define-public r-isocodes
   (package
     (name "r-isocodes")
-    (version "2020.03.16")
+    (version "2020.12.04")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "ISOcodes" version))
        (sha256
         (base32
-         "1hz1sj57qkkkrgn8slsz2n4jv1fkyp40503j9rg30lxy4gmb83hn"))))
+         "18373rkhmwm7y2drvfbhrxkqw9d23avf0ndvh0fg00z4djvddkjx"))))
     (properties `((upstream-name . "ISOcodes")))
     (build-system r-build-system)
     (home-page "https://cran.r-project.org/package=ISOcodes")
@@ -20189,14 +20975,14 @@ character codes as well as the UN M.49 area codes.")
 (define-public r-stopwords
   (package
     (name "r-stopwords")
-    (version "2.0")
+    (version "2.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "stopwords" version))
        (sha256
         (base32
-         "155g00ansyqfpp1mzd2q6mn0k214xinf78nww2368h24kz761jjw"))))
+         "1g2p8gsj7xjck7idcwczgc7fmv72lzwjw00qarrj0cv44kypmiq8"))))
     (properties `((upstream-name . "stopwords")))
     (build-system r-build-system)
     (propagated-inputs
@@ -20259,14 +21045,14 @@ Norwegian, Portuguese, Romanian, Russian, Spanish, Swedish and Turkish.")
 (define-public r-quanteda
   (package
     (name "r-quanteda")
-    (version "2.1.1")
+    (version "2.1.2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "quanteda" version))
        (sha256
         (base32
-         "1wlrd7g2b459pnkqhihxhn74f37py1c9pxrdzp5xzp4mnbdxcsj8"))))
+         "13rjwgmg5v1dbryrs9ifyy76s5ib6wrbrm2y5af44vhf1h6p9cvy"))))
     (properties `((upstream-name . "quanteda")))
     (build-system r-build-system)
     (propagated-inputs
@@ -20335,14 +21121,14 @@ Gibbs sampling by Xuan-Hieu Phan and co-authors.")
 (define-public r-stm
   (package
     (name "r-stm")
-    (version "1.3.5")
+    (version "1.3.6")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "stm" version))
        (sha256
         (base32
-         "1yyfxaxqc6yq0yq68zhdnhpwpvsyp71dlmivn7zxixfmp932s6cn"))))
+         "0qwq4nin2n9fjd06852r8k7arvcgh46kcfb3lm21swgx6j8bgrhb"))))
     (properties `((upstream-name . "stm")))
     (build-system r-build-system)
     (propagated-inputs
@@ -20523,14 +21309,14 @@ least squares.")
 (define-public r-semtools
   (package
     (name "r-semtools")
-    (version "0.5-3")
+    (version "0.5-4")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "semTools" version))
        (sha256
         (base32
-         "0k3w10fnq0l89inhxvnypyrfhlrm921mfn0kwyyfpndvbqizky1d"))))
+         "15kban4ds2mssxqslm126b89p8biya14c9m68sqk61vzvx5dm2vq"))))
     (properties `((upstream-name . "semTools")))
     (build-system r-build-system)
     (propagated-inputs
@@ -20544,14 +21330,14 @@ least squares.")
 (define-public r-regsem
   (package
     (name "r-regsem")
-    (version "1.5.2")
+    (version "1.6.2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "regsem" version))
        (sha256
         (base32
-         "0ch057010xfsw0nqcsarzakdbiplvxaldyqlbbacspqs65ax1yk7"))))
+         "14nrzyrkrijdrr4jwkri5zra2wh36w68wy6xs600l2z1633h2lmn"))))
     (properties `((upstream-name . "regsem")))
     (build-system r-build-system)
     (propagated-inputs
@@ -20559,6 +21345,8 @@ least squares.")
        ("r-rcpp" ,r-rcpp)
        ("r-rcpparmadillo" ,r-rcpparmadillo)
        ("r-rsolnp" ,r-rsolnp)))
+    (native-inputs
+     `(("r-knitr" ,r-knitr)))
     (home-page "https://cran.r-project.org/package=regsem")
     (synopsis "Regularized structural equation modeling")
     (description
@@ -20572,17 +21360,17 @@ perform @dfn{exploratory mediation} (XMed).")
 (define-public r-stanheaders
   (package
     (name "r-stanheaders")
-    (version "2.21.0-5")
+    (version "2.21.0-7")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "StanHeaders" version))
        (sha256
         (base32
-         "1zyph2x47x9a5baj5d79a1lzj7gajirisajvkrcngrjvw8bq7810"))))
+         "0srkyawyiykn3p5lw1z3zf18s4ax4iasv1ci3l1px40f9w36wm17"))))
     (properties `((upstream-name . "StanHeaders")))
     (build-system r-build-system)
-    (inputs `(("pandoc" ,ghc-pandoc)))
+    (inputs `(("pandoc" ,pandoc)))
     (propagated-inputs
      `(("r-rcppeigen" ,r-rcppeigen)
        ("r-rcppparallel" ,r-rcppparallel)))
@@ -20613,14 +21401,14 @@ and analyze Stan models.")
 (define-public r-rpf
   (package
     (name "r-rpf")
-    (version "1.0.4")
+    (version "1.0.5")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "rpf" version))
        (sha256
         (base32
-         "17crcgsbcsh0c00n7bgdqfnd7n1vzz7drfxjs7d18253yl5x44pl"))))
+         "0kz7i7g3l16irz6bxgnkxdmmd931m1fk6rl72dvs21ir5brr010l"))))
     (properties `((upstream-name . "rpf")))
     (build-system r-build-system)
     (propagated-inputs
@@ -20643,19 +21431,20 @@ Complete access to optimized C functions is made available with
 (define-public r-openmx
   (package
     (name "r-openmx")
-    (version "2.17.4")
+    (version "2.18.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "OpenMx" version))
        (sha256
         (base32
-         "07y4w7xdb63p5kkrj6sdx1kabbsgbbj7nw9hc690jy84r15aryal"))))
+         "0gyjps0l3ig90piccgd04s63cz65kk5i5l9iyakps4bv27h1lzwm"))))
     (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)
@@ -20755,14 +21544,14 @@ output in R.")
 (define-public r-bdgraph
   (package
     (name "r-bdgraph")
-    (version "2.62")
+    (version "2.63")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "BDgraph" version))
        (sha256
         (base32
-         "1b1vfar940swvn3pcil848qsp8ji50fjjll8jjzp6y2adx0f8pby"))))
+         "05q6dbvdnxmh7myvw60zqcqx16f80i8d6qa4y7xnfkx02l9lwiyc"))))
     (properties `((upstream-name . "BDgraph")))
     (build-system r-build-system)
     (propagated-inputs
@@ -21017,14 +21806,14 @@ Haberman's interaction model when all items are dichotomously scored.")
 (define-public r-iheatmapr
   (package
     (name "r-iheatmapr")
-    (version "0.5.0")
+    (version "0.5.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "iheatmapr" version))
        (sha256
         (base32
-         "0s2lc088rq2siy2wzmg1y6nss68rs33mf7w2izqqmg6kbx6d7y9h"))))
+         "1pwkwh7ljlpr6zyz6j8knpz3iw60xzkw8amc98x4pc2mw148jvzx"))))
     (properties `((upstream-name . "iheatmapr")))
     (build-system r-build-system)
     (propagated-inputs
@@ -21236,7 +22025,7 @@ using the @code{rstan} and @code{rstanarm} packages).")
          "0b9x8rzj3dr4m7yjx476nn42z22xd1xnw85m9frfwxy5ivg1any9"))))
     (properties `((upstream-name . "rstantools")))
     (build-system r-build-system)
-    (inputs `(("pandoc" ,ghc-pandoc)))
+    (inputs `(("pandoc" ,pandoc)))
     (propagated-inputs
      `(("r-desc" ,r-desc)
        ("r-rcpp" ,r-rcpp)
@@ -21256,18 +22045,18 @@ recommendations for developers.")
 (define-public r-loo
   (package
     (name "r-loo")
-    (version "2.3.1")
+    (version "2.4.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "loo" version))
        (sha256
-        (base32 "12z0k8lhz0rxygs5lc7076nw6qhk0pda8nxf65hkinfrf4dy53fr"))))
+        (base32 "0l2v8zpashqbnck3qx5lp1gqjcfphzky8mxyw5gfk9wk99mzn8dw"))))
     (properties `((upstream-name . "loo")))
     (build-system r-build-system)
     (inputs
-     `(("pandoc" ,ghc-pandoc)
-       ("pandoc-citeproc" ,ghc-pandoc-citeproc)))
+     `(("pandoc" ,pandoc)
+       ("pandoc-citeproc" ,pandoc-citeproc)))
     (propagated-inputs
      `(("r-checkmate" ,r-checkmate)
        ("r-matrixstats" ,r-matrixstats)))
@@ -21313,7 +22102,7 @@ techniques to average Bayesian predictive distributions.")
              #t)))))
     (native-inputs
      `(("tzdata" ,tzdata-for-tests)
-       ("pandoc" ,ghc-pandoc)
+       ("pandoc" ,pandoc)
        ("r-knitr" ,r-knitr)))
     (propagated-inputs
      `(("r-bh" ,r-bh)
@@ -21356,8 +22145,8 @@ need to derive the partial derivatives.")
     (properties `((upstream-name . "rstanarm")))
     (build-system r-build-system)
     (inputs
-     `(("pandoc" ,ghc-pandoc)
-       ("pandoc-citeproc" ,ghc-pandoc-citeproc)))
+     `(("pandoc" ,pandoc)
+       ("pandoc-citeproc" ,pandoc-citeproc)))
     (propagated-inputs
      `(("r-bayesplot" ,r-bayesplot)
        ("r-bh" ,r-bh)
@@ -21558,14 +22347,14 @@ Encyclopedia of Integer Sequences} (OEIS) in the function help page.")
 (define-public r-isoband
   (package
     (name "r-isoband")
-    (version "0.2.2")
+    (version "0.2.3")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "isoband" version))
        (sha256
         (base32
-         "044fg014gb6v6v11gm7ivfipz45iqw9cpahjhaacw6kyahyb66zx"))))
+         "1zkzdc39dpw2z59bjck27nimz9a2vskmw0f7wb17s53dvy7k3lzr"))))
     (properties `((upstream-name . "isoband")))
     (build-system r-build-system)
     (propagated-inputs
@@ -21710,7 +22499,7 @@ appropriate dog and cat images for many status codes.")
     (build-system r-build-system)
     (propagated-inputs
      `(("r-stringr" ,r-stringr)
-       ("r-magrittr", r-magrittr)))
+       ("r-magrittr" ,r-magrittr)))
     (home-page "https://github.com/stefano-meschiari/latex2exp/")
     (synopsis "Use LaTeX expressions in plots")
     (description "@code{latex2exp} parses and converts LaTeX math formulas to
@@ -21852,7 +22641,7 @@ subpopulation type designs.")
     (build-system r-build-system)
     (inputs
      `(("jupyter" ,python-nbconvert)
-       ("pandoc" ,ghc-pandoc)))
+       ("pandoc" ,pandoc)))
     (home-page "https://cran.r-project.org/web/packages/nbconvertR/")
     (synopsis "Vignette engine wrapping Jupyter notebooks")
     (description
@@ -21914,7 +22703,7 @@ general, via different versions of bridge sampling.")
     (description
      "This package provides different approaches for selecting the threshold
 in generalized Pareto distributions.  Most of them are based on minimizing the
-AMSE-criterion or atleast by reducing the bias of the assumed GPD-model.
+AMSE-criterion or at least by reducing the bias of the assumed GPD-model.
 Others are heuristically motivated by searching for stable sample paths, i.e.
 a nearly constant region of the tail index estimator with respect to k, which
 is the number of data in the tail.  The third class is motivated by graphical
@@ -21947,14 +22736,14 @@ is also implemented here.")
 (define-public r-aws
   (package
     (name "r-aws")
-    (version "2.4-3")
+    (version "2.5-1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "aws" version))
        (sha256
         (base32
-         "0ccm8ffjf8bylhfr64j9wzi49hzigz4bs172pvkb0bi4d5vdr0l5"))))
+         "1fhm87iax6bkvd4vszvjbcqw3b2drs11rjxr7zf2w4sgc72svaz8"))))
     (properties
      `((upstream-name . "aws")))
     (build-system r-build-system)
@@ -22111,21 +22900,22 @@ infinite-precision rational arithmetic.")
 (define-public r-rxnat
   (package
     (name "r-rxnat")
-    (version "1.0.12")
+    (version "1.0.14")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "Rxnat" version))
        (sha256
         (base32
-         "06w99b5lvpycykzlga6grw33zkajwbb04s89s37wy9zxy42vc4cb"))))
+         "00fl68pa0c2vy4xlny67pn41lzgm7b97wgg3dwm6z35izca62l11"))))
     (properties
      `((upstream-name . "Rxnat")))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-dplyr" ,r-dplyr)
        ("r-httr" ,r-httr)
-       ("r-rcurl" ,r-rcurl)))
+       ("r-rcurl" ,r-rcurl)
+       ("r-tibble" ,r-tibble)))
     (native-inputs
      `(("r-knitr" ,r-knitr)))
     (home-page "https://cran.r-project.org/web/packages/Rxnat/")
@@ -22173,17 +22963,109 @@ connection, user authentication and file transfer.  A simple R client is
 included in this package as well.")
     (license license:gpl2)))
 
+(define-public r-gamm4
+  (package
+    (name "r-gamm4")
+    (version "0.2-6")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "gamm4" version))
+       (sha256
+        (base32
+         "128c725y9s07c1m9cvd9hgi9hldrymcs5divd8pw7bdjh9jvdiap"))))
+    (properties `((upstream-name . "gamm4")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-lme4" ,r-lme4)
+       ("r-matrix" ,r-matrix)
+       ("r-mgcv" ,r-mgcv)))
+    (home-page "https://cran.r-project.org/web/packages/gamm4/")
+    (synopsis "Generalized additive mixed models using mgcv and lme4")
+    (description
+     "Estimate generalized additive mixed models via a version of function
+@code{gamm} from the @code{mgcv} package, using the @code{lme4} packagefor
+estimation.")
+    (license license:gpl2+)))
+
+(define-public r-optimx
+  (package
+    (name "r-optimx")
+    (version "2020-4.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "optimx" version))
+       (sha256
+        (base32
+         "00bi2sr2hr7x6cfwlsn7hz2r56lcyv9naa8vmfcgr1r269fc50b3"))))
+    (properties `((upstream-name . "optimx")))
+    (build-system r-build-system)
+    (propagated-inputs `(("r-numderiv" ,r-numderiv)))
+    (native-inputs `(("r-knitr" ,r-knitr)))
+    (home-page "https://cran.r-project.org/web/packages/optimx/")
+    (synopsis "Expanded replacement and extension of the optim function")
+    (description
+     "This package provides a replacement and extension of the @code{optim}
+function to call to several function minimization codes in R in a single
+statement.  These methods handle smooth, possibly box constrained functions of
+several or many parameters.  Note that the function @code{optimr} was prepared
+to simplify the incorporation of minimization codes going forward.  This
+package also implements some utility codes and some extra solvers, including
+safeguarded Newton methods.  Many methods previously separate are now included
+here.")
+    (license license:gpl2)))
+
+(define-public r-projpred
+  (package
+    (name "r-projpred")
+    (version "2.0.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "projpred" version))
+       (sha256
+        (base32
+         "0nx514mrfh3gv854pr71w5x3zgdnn0kinf5nh7z90q3h7ysry2mg"))))
+    (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)))
+    (home-page "https://mc-stan.org/projpred/")
+    (synopsis "Projection predictive feature selection")
+    (description
+     "This package performs projection predictive feature selection for
+generalized linear models and generalized linear and additive multilevel
+models.  The package is compatible with the @code{rstanarm} and @code{brms}
+packages, but other reference models can also be used.  See the package
+vignette for more information and examples.")
+    (license license:gpl3)))
+
 (define-public r-brms
   (package
     (name "r-brms")
-    (version "2.13.5")
+    (version "2.14.4")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "brms" version))
        (sha256
         (base32
-         "0a2m5wr134sxflmiq5jzvanzn81fv7xndy9gyvrq3bay9vakic69"))))
+         "0mzwihhgmn405l6zq11a180q4k3chggj9qj0j7q838b9vrszg59j"))))
     (properties `((upstream-name . "brms")))
     (build-system r-build-system)
     (propagated-inputs
@@ -22201,6 +23083,7 @@ included in this package as well.")
        ("r-mgcv" ,r-mgcv)
        ("r-nleqslv" ,r-nleqslv)
        ("r-nlme" ,r-nlme)
+       ("r-projpred" ,r-projpred)
        ("r-rcpp" ,r-rcpp)
        ("r-rstan" ,r-rstan)
        ("r-rstantools" ,r-rstantools)
@@ -22228,19 +23111,26 @@ with posterior predictive checks and leave-one-out cross-validation.")
 (define-public r-mstate
   (package
     (name "r-mstate")
-    (version "0.2.12")
+    (version "0.3.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "mstate" version))
        (sha256
         (base32
-         "0qnhivbibzss8yfsg44cvbf73n4jj4i28rbdysl88g14ig5sabgv"))))
+         "11i3p7fph8nbnfis1m7rdrq32qryaajv2wrkxk1x6k17zkh4rq6i"))))
     (properties `((upstream-name . "mstate")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-rcolorbrewer" ,r-rcolorbrewer)
-       ("r-survival" ,r-survival)))
+     `(("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)))
+    (native-inputs
+     `(("r-knitr" ,r-knitr)))
     (home-page
      "https://www.lumc.nl/org/bds/research/medische-statistiek/survival-analysis/")
     (synopsis
@@ -22254,14 +23144,14 @@ multi-state models.")
 (define-public r-scatterpie
   (package
     (name "r-scatterpie")
-    (version "0.1.4")
+    (version "0.1.5")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "scatterpie" version))
        (sha256
         (base32
-         "0g5sn0iv6c1q7y51j4gbbbnil5089dgk1w4q94c7h5y3x7wfrzqb"))))
+         "0h48l0699lpfagv09f53yismir84945m56qwzk52lc7wxyvkfcp1"))))
     (properties `((upstream-name . "scatterpie")))
     (build-system r-build-system)
     (propagated-inputs
@@ -22305,14 +23195,14 @@ permuted copies (shadows).")
 (define-public r-directlabels
   (package
     (name "r-directlabels")
-    (version "2020.6.17")
+    (version "2021.1.13")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "directlabels" version))
        (sha256
         (base32
-         "1b6v206kizz5rjw03chjvn40a7cqihjpk80h1h79z2x27hp1qi3f"))))
+         "0415kh9k2qzdwi8zb32fh2icl5wf5335kyj11cyfdmfxji39zv2w"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-quadprog" ,r-quadprog)))
@@ -22348,50 +23238,6 @@ Try a demo of the LSD by running @code{demotour()}.")
     ;; Either version
     (license (list license:gpl2 license:gpl3))))
 
-(define-public r-fourcseq
-  (package
-    (name "r-fourcseq")
-    (version "1.21.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (bioconductor-uri "FourCSeq" version))
-       (sha256
-        (base32 "0lhcjw2hmmdafq52c5fvpm1crnzynbslamzh7r6ygifmzaz2pa8x"))))
-    (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)))
-    (home-page
-     "https://bioconductor.org/packages/release/bioc/html/FourCSeq.html")
-    (synopsis "Analysis of multiplexed 4C sequencing data")
-    (description
-     "This package is an R package dedicated to the analysis of (multiplexed)
-4C sequencing data.  @code{r-fourcseq} provides a pipeline to detect specific
-interactions between DNA elements and identify differential interactions
-between conditions.  The statistical analysis in R starts with individual bam
-files for each sample as inputs.  To obtain these files, the package contains
-a Python script to demultiplex libraries and trim off primer sequences.  With
-a standard alignment software the required bam files can be then be
-generated.")
-    (license license:gpl3+)))
-
 (define-public r-phylogram
   (package
     (name "r-phylogram")
@@ -22441,17 +23287,86 @@ and clustering large sequence datasets using fast alignment-free k-mer
 counting and recursive k-means partitioning.")
     (license license:gpl3)))
 
+(define-public r-hardhat
+  (package
+    (name "r-hardhat")
+    (version "0.1.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "hardhat" version))
+       (sha256
+        (base32
+         "1b7f9i9fy39j9n03g40vd6nzgq9fgq914xg3svf84najlknvjzly"))))
+    (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)))
+    (native-inputs
+     `(("r-knitr" ,r-knitr)))
+    (home-page "https://github.com/tidymodels/hardhat")
+    (synopsis "Construct modeling packages")
+    (description
+     "Building modeling packages is hard.  A large amount of effort generally
+goes into providing an implementation for a new method that is efficient,
+fast, and correct, but often less emphasis is put on the user interface.  A
+good interface requires specialized knowledge about S3 methods and formulas,
+which the average package developer might not have.  The goal of
+@code{hardhat} is to reduce the burden around building new modeling packages
+by providing functionality for preprocessing, predicting, and validating
+input.")
+    (license license:expat)))
+
+(define-public r-lightgbm
+  (package
+    (name "r-lightgbm")
+    (version "3.1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "lightgbm" version))
+       (sha256
+        (base32
+         "1pwsh6j9ksahh58b15j5ij56bsc6syy3z4k4a5zhy5n7829rz555"))))
+    (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)))
+    (home-page "https://github.com/Microsoft/LightGBM")
+    (synopsis "Light gradient boosting machine")
+    (description
+     "Tree based algorithms can be improved by introducing boosting
+frameworks.  LightGBM is one such framework, based on Ke, Guolin et
+al. (2017).  This package offers an R interface to work with it.  It is
+designed to be distributed and efficient with the following goals:
+
+@enumerate
+@item Faster training speed and higher efficiency;
+@item lower memory usage;
+@item better accuracy;
+@item parallel learning supported; and
+@item capable of handling large-scale data.
+@end enumerate
+")
+    (license license:expat)))
+
 (define-public r-shapforxgboost
   (package
     (name "r-shapforxgboost")
-    (version "0.0.4")
+    (version "0.1.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "SHAPforxgboost" version))
        (sha256
         (base32
-         "0k6bg27wqnkzv82bcahbapmqhiz6rvnx81m23zbjw58c7lwshgnq"))))
+         "0jgyss9bawl7sf4dwa75sn7ld3mvrrr0z2074lbkq3f5qb9gwsly"))))
     (properties
      `((upstream-name . "SHAPforxgboost")))
     (build-system r-build-system)
@@ -22462,6 +23377,7 @@ counting and recursive k-means partitioning.")
        ("r-ggforce" ,r-ggforce)
        ("r-ggplot2" ,r-ggplot2)
        ("r-ggpubr" ,r-ggpubr)
+       ("r-lightgbm" ,r-lightgbm)
        ("r-rcolorbrewer" ,r-rcolorbrewer)
        ("r-xgboost" ,r-xgboost)))
     (home-page "https://github.com/liuyanguu/SHAPforxgboost")
@@ -22477,14 +23393,14 @@ values.")
 (define-public r-rismed
   (package
     (name "r-rismed")
-    (version "2.1.7")
+    (version "2.2")
     (source
       (origin
         (method url-fetch)
         (uri (cran-uri "RISmed" version))
         (sha256
           (base32
-            "08dmkkxsmwp9b4h2g1bbx03cijn793fsnzkmbima8x9d42vxnm1l"))))
+            "0nwixhngi4r2f73362salivsmsf7l52bm13jqvhdq8mfiigm80vd"))))
     (properties `((upstream-name . "RISmed")))
     (build-system r-build-system)
     (home-page "https://cran.r-project.org/web/packages/RISmed")
@@ -22526,14 +23442,14 @@ incremented as outlined at @url{http://semver.org}.")
 (define-public r-binman
   (package
     (name "r-binman")
-    (version "0.1.1")
+    (version "0.1.2")
     (source
       (origin
         (method url-fetch)
         (uri (cran-uri "binman" version))
         (sha256
           (base32
-            "0hm0h285p4v9lhrqjy8s22f1s1vmfpfla5iaycpj8vw3qb3632az"))))
+            "00l7m98h41r67gf0qxqis3vx63j7wylnk9vlgcyk41szkrz8ikkc"))))
     (properties `((upstream-name . "binman")))
     (build-system r-build-system)
     (propagated-inputs
@@ -22625,14 +23541,14 @@ you can automate browsers locally or remotely.")
 (define-public r-conquer
   (package
     (name "r-conquer")
-    (version "1.0.1")
+    (version "1.0.2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "conquer" version))
        (sha256
         (base32
-         "1c7id7wgspma5bdcirrhw7f9fp709zxpj31klivasdbvd4jgi4vb"))))
+         "1zvlsrbmrij011mcdi3qngs1al2lhrdiyknxnk0w1zhzrra62bsl"))))
     (properties `((upstream-name . "conquer")))
     (build-system r-build-system)
     (propagated-inputs
@@ -22795,14 +23711,14 @@ diagonals.  This package allows you to compute the tensor product of arrays.")
 (define-public r-spatstat-utils
   (package
     (name "r-spatstat-utils")
-    (version "1.17-0")
+    (version "1.20-2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "spatstat.utils" version))
        (sha256
         (base32
-         "08h9kzkkxvlnngxnv5mdylfali5jj4yhgbr8kvf8l7glswz6ik9r"))))
+         "066f35017wpbz9plwc14gji3ddq4a1h2lx4mcgxajrcrk0zl3hk2"))))
     (properties
      `((upstream-name . "spatstat.utils")))
     (build-system r-build-system)
@@ -22816,14 +23732,14 @@ which may also be useful for other purposes.")
 (define-public r-spatstat-data
   (package
     (name "r-spatstat-data")
-    (version "1.4-3")
+    (version "1.7-0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "spatstat.data" version))
        (sha256
         (base32
-         "18lfj5vkwxgf5w9qz0g5al3zy8y2yi3bnd13w24hszfc82nbcmc9"))))
+         "0by10dx72jjn6rvgrdj4xwh4zg6vxi4cp536aq4b6drb7za95hdv"))))
     (properties `((upstream-name . "spatstat.data")))
     (build-system r-build-system)
     (propagated-inputs
@@ -22878,14 +23794,14 @@ formal inference.")
 (define-public r-gaston
   (package
     (name "r-gaston")
-    (version "1.5.6")
+    (version "1.5.7")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "gaston" version))
        (sha256
         (base32
-         "1bx6iqfjb9lf3vn0z7v8wjv9m7issvqsnymm4qsgl3622s6qz6rg"))))
+         "14z94dpln4dvgrv2w7w9ik7h6rpvbf02qhq1hqzx8c2cndzxr21i"))))
     (properties `((upstream-name . "gaston")))
     (build-system r-build-system)
     (inputs `(("zlib" ,zlib)))
@@ -22906,14 +23822,14 @@ for linear mixed models (AIREML).")
 (define-public r-cpp11
   (package
     (name "r-cpp11")
-    (version "0.2.1")
+    (version "0.2.5")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "cpp11" version))
        (sha256
         (base32
-         "1113y61lj4cg1d2yjavdx9zih5rzb4pnxmj5v3sr4bhzlxz2scda"))))
+         "081f3b98mcxyilqsxbzzdnj2x6v7xycprrw7r5934163q0397vvg"))))
     (properties `((upstream-name . "cpp11")))
     (build-system r-build-system)
     (native-inputs `(("r-knitr" ,r-knitr)))
@@ -22925,3 +23841,1944 @@ Compared to other approaches @code{cpp11} strives to be safe against long
 jumps from the C API as well as C++ exceptions, conform to normal R function
 semantics and supports interaction with @code{ALTREP} vectors.")
     (license license:expat)))
+
+(define-public r-rcppziggurat
+  (package
+    (name "r-rcppziggurat")
+    (version "0.1.6")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "RcppZiggurat" version))
+       (sha256
+        (base32
+         "0wgd1v2p7zajnbrjf3hfi56p3pk3ld6iwkanbb04bjbnlif2ay4w"))))
+    (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)))
+    (home-page "https://cran.r-project.org/web/packages/RcppZiggurat/")
+    (synopsis "Rcpp integration of different \"Ziggurat\" normal RNG implementations")
+    (description
+     "The Ziggurat generator for normally distributed random numbers,
+originally proposed by Marsaglia and Tsang (2000,
+@url{https://doi.org/10.18637/jss.v005.i08}) has been improved upon a few
+times starting with Leong et al (2005,
+@url{https://doi.org/10.18637/jss.v012.i07}).  This package provides an
+aggregation for comparing different implementations in order to provide a
+'faster but good enough' alternative for use with R and C++ code.")
+    (license license:gpl2+)))
+
+(define-public r-rfast
+  (package
+    (name "r-rfast")
+    (version "2.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "Rfast" version))
+       (sha256
+        (base32
+         "1cq3mcg49hsvqhwn6f4dgsx7f8ma4qnwr5n6s7m22qy57rg31958"))))
+    (properties `((upstream-name . "Rfast")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-rcpp" ,r-rcpp)
+       ("r-rcpparmadillo" ,r-rcpparmadillo)
+       ("r-rcppziggurat" ,r-rcppziggurat)))
+    (home-page "https://github.com/RfastOfficial/Rfast")
+    (synopsis "Collection of efficient and fast R functions")
+    (description
+     "This package provides a collection of fast (utility) functions for data
+analysis.  Column- and row- wise means, medians, variances, minimums,
+maximums, many t, F and G-square tests, many regressions (normal, logistic,
+Poisson), are some of the many fast functions.")
+    (license license:gpl2+)))
+
+(define-public r-clusterr
+  (package
+    (name "r-clusterr")
+    (version "1.2.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "ClusterR" version))
+       (sha256
+        (base32
+         "1ky172bk15a78hky77vl60j7c81nq2495sxjrv53is25nkac7sjm"))))
+    (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)))
+    (home-page "https://github.com/mlampros/ClusterR")
+    (synopsis "Clustering")
+    (description
+     "This package provides Gaussian mixture models, k-means,
+mini-batch-kmeans, k-medoids and affinity propagation clustering with the
+option to plot, validate, predict (new data) and estimate the optimal number
+of clusters.  The package takes advantage of @code{RcppArmadillo} to speed up
+the computationally intensive parts of the functions.  For more information,
+see
+
+@enumerate
+@item \"Clustering in an Object-Oriented Environment\" by Anja Struyf, Mia
+  Hubert, Peter Rousseeuw (1997), Journal of Statistical Software,
+  @url{https://doi.org/10.18637/jss.v001.i04};
+@item \"Web-scale k-means clustering\" by D. Sculley (2010), ACM Digital
+  Library, @url{https://doi.org/10.1145/1772690.1772862};
+@item \"Armadillo: a template-based C++ library
+  for linear algebra\" by Sanderson et al (2016), The Journal of Open Source
+  Software, @url{https://doi.org/10.21105/joss.00026};
+@item \"Clustering by Passing Messages Between Data Points\" by Brendan
+  J. Frey and Delbert Dueck, Science 16 Feb 2007: Vol. 315, Issue 5814,
+  pp. 972-976, @url{https://doi.org/10.1126/science.1136800}.
+@end enumerate
+")
+    (license license:gpl3)))
+
+(define-public r-spectrum
+  (package
+    (name "r-spectrum")
+    (version "1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "Spectrum" version))
+       (sha256
+        (base32
+         "0n38d360azkck6vvhr771zsh0gbvd9qsf9ygg5r18vhz0pb1xcfw"))))
+    (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)))
+    (home-page "https://cran.r-project.org/web/packages/Spectrum/")
+    (synopsis "Fast adaptive spectral clustering for single and multi-view data")
+    (description
+     "This package provides a self-tuning spectral clustering method for
+single or multi-view data.  Spectrum uses a new type of adaptive density aware
+kernel that strengthens connections in the graph based on common nearest
+neighbours.  It uses a tensor product graph data integration and diffusion
+procedure to integrate different data sources and reduce noise.  Spectrum uses
+either the eigengap or multimodality gap heuristics to determine the number of
+clusters.  The method is sufficiently flexible so that a wide range of
+Gaussian and non-Gaussian structures can be clustered with automatic selection
+of K.")
+    (license license:agpl3+)))
+
+(define-public r-nabor
+  (package
+    (name "r-nabor")
+    (version "0.5.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "nabor" version))
+       (sha256
+        (base32
+         "1nj39cdfwrmhgsi3cq8imxv3n6xzc1v6dzdb2cf2hybjk368v4s7"))))
+    (properties `((upstream-name . "nabor")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-bh" ,r-bh)
+       ("r-rcpp" ,r-rcpp)
+       ("r-rcppeigen" ,r-rcppeigen)))
+    (home-page "https://cran.r-project.org/web/packages/nabor/")
+    (synopsis "Wrapper for K nearest neighbour library for low dimensions")
+    (description
+     "This package provides an R wrapper for libnabo, an exact or approximate
+k nearest neighbour library which is optimised for low dimensional
+spaces (e.g. 3D).  @code{nabor} includes a @code{knn} function that is
+designed as a drop-in replacement for the RANN function @code{nn2}.  In
+addition, objects which include the k-d tree search structure can be returned
+to speed up repeated queries of the same set of target points.")
+    (license license:bsd-3)))
+
+(define-public r-muhaz
+  (package
+    (name "r-muhaz")
+    (version "1.2.6.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "muhaz" version))
+       (sha256
+        (base32
+         "08qh43zx6h3yby44q2vxphfvmfdmqxpgyp0734yn341sy9n8pkkk"))))
+    (properties `((upstream-name . "muhaz")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-survival" ,r-survival)))
+    (native-inputs
+     `(("gfortran" ,gfortran)))
+    (home-page "https://cran.r-project.org/web/packages/muhaz/")
+    (synopsis "Hazard function estimation in survival analysis")
+    (description
+     "This package produces a smooth estimate of the hazard function for
+censored data.")
+    ;; Any version of the GPL.
+    (license license:gpl3+)))
+
+(define-public r-flexsurv
+  (package
+    (name "r-flexsurv")
+    (version "1.1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "flexsurv" version))
+       (sha256
+        (base32
+         "0x7p1rv51pplfyyzcg63ssb8z56mig7y0363hkr0219w3cvyq9nr"))))
+    (properties `((upstream-name . "flexsurv")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-desolve" ,r-desolve)
+       ("r-mstate" ,r-mstate)
+       ("r-muhaz" ,r-muhaz)
+       ("r-mvtnorm" ,r-mvtnorm)
+       ("r-quadprog" ,r-quadprog)
+       ("r-rcpp" ,r-rcpp)
+       ("r-survival" ,r-survival)
+       ("r-tibble" ,r-tibble)
+       ("r-tidyr" ,r-tidyr)))
+    (native-inputs
+     `(("r-knitr" ,r-knitr)))
+    (home-page "https://github.com/chjackson/flexsurv-dev")
+    (synopsis "Flexible parametric survival and multi-state models")
+    (description
+     "This package provides flexible parametric models for time-to-event data,
+including the Royston-Parmar spline model, generalized gamma and generalized F
+distributions.  Any user-defined parametric distribution can be fitted, given
+at least an R function defining the probability density or hazard.  There are
+also tools for fitting and predicting from fully parametric multi-state
+models.")
+    (license license:gpl2+)))
+
+(define-public r-transphylo
+  (package
+    (name "r-transphylo")
+    (version "1.4.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "TransPhylo" version))
+       (sha256
+        (base32
+         "1506c97y8dnhd0c38rgvmg70q0l3xmmn07mjglhnw7hi5n5y9mv9"))))
+    (properties `((upstream-name . "TransPhylo")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-ape" ,r-ape)
+       ("r-rcpp" ,r-rcpp)))
+    (native-inputs
+     `(("r-knitr" ,r-knitr)))
+    (home-page "https://cran.r-project.org/web/packages/TransPhylo/")
+    (synopsis "Inference of transmission tree from a dated phylogeny")
+    (description
+     "This is a package to infer transmission trees from a dated phylogeny.
+It includes methods to simulate and analyze outbreaks.  The methodology is
+described in @url{https://doi.org/10.1093/molbev/msu121,Didelot et al. (2014)}
+and @url{https://doi.org/10.1093/molbev/msw275,Didelot et al. (2017)}.")
+    (license license:gpl2+)))
+
+(define-public r-km-ci
+  (package
+    (name "r-km-ci")
+    (version "0.5-2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "km.ci" version))
+       (sha256
+        (base32
+         "1l6kw8jppaa1802yc5pbfwwgac56nhwc9p076ivylhms4w7cdf8v"))))
+    (properties `((upstream-name . "km.ci")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-survival" ,r-survival)))
+    (home-page "https://cran.r-project.org/web/packages/km.ci/")
+    (synopsis "Confidence intervals for the Kaplan-Meier estimator")
+    (description
+     "This package computes various @dfn{confidence intervals} (CI) for the
+Kaplan-Meier estimator, namely: Petos CI, Rothman CI, CIs based on Greenwoods
+variance, Thomas and Grunkemeier CI and the simultaneous confidence bands by
+Nair and Hall and Wellner.")
+    (license license:gpl2+)))
+
+(define-public r-kmsurv
+  (package
+    (name "r-kmsurv")
+    (version "0.1-5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "KMsurv" version))
+       (sha256
+        (base32
+         "0hi5vvk584rl70gbrr75w9hc775xmbxnaig0dd6hlpi4071pnqjm"))))
+    (properties `((upstream-name . "KMsurv")))
+    (build-system r-build-system)
+    (home-page "https://cran.r-project.org/web/packages/KMsurv/")
+    (synopsis "Data sets from Klein and Moeschberger (1997), Survival Analysis")
+    (description
+     "This package provides data sets and functions for Klein and Moeschberger
+(1997), \"Survival Analysis, Techniques for Censored and Truncated Data\",
+Springer.")
+    (license license:gpl3+)))
+
+(define-public r-survmisc
+  (package
+    (name "r-survmisc")
+    (version "0.5.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "survMisc" version))
+       (sha256
+        (base32
+         "00nvvl8gz4477ab24rd0xvfksm8msv8h021b9ld5c9cizc41n2bm"))))
+    (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)))
+    (native-inputs
+     `(("r-knitr" ,r-knitr)))
+    (home-page "https://cran.r-project.org/web/packages/survMisc/")
+    (synopsis "Miscellaneous functions for survival data")
+    (description
+     "This package provides a collection of functions to help in the analysis
+of right-censored survival data.  These extend the methods available in
+the @code{survival} package.")
+    (license license:gpl2)))
+
+(define-public r-exactranktests
+  (package
+    (name "r-exactranktests")
+    (version "0.8-31")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "exactRankTests" version))
+       (sha256
+        (base32
+         "1154dkcid3njhamdp87qs9bnx7l8bdqkcjsds9q9f2xmizs9x8gw"))))
+    (properties
+     `((upstream-name . "exactRankTests")))
+    (build-system r-build-system)
+    (home-page "https://cran.r-project.org/web/packages/exactRankTests/")
+    (synopsis "Exact distributions for rank and permutation tests")
+    (description
+     "This package computes exact conditional p-values and quantiles using an
+implementation of the Shift-Algorithm by Streitberg & Roehmel.")
+    (license license:gpl2+)))
+
+(define-public r-maxstat
+  (package
+    (name "r-maxstat")
+    (version "0.7-25")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "maxstat" version))
+       (sha256
+        (base32
+         "114z1rwxwvk05ijjhdppzm148n1h192fp0w12ky10zkrhf6kphbg"))))
+    (properties `((upstream-name . "maxstat")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-exactranktests" ,r-exactranktests)
+       ("r-mvtnorm" ,r-mvtnorm)))
+    (home-page "https://cran.r-project.org/web/packages/maxstat/")
+    (synopsis "Maximally selected rank statistics")
+    (description
+     "This package provides maximally selected rank statistics with several
+p-value approximations.")
+    (license license:gpl2+)))
+
+(define-public r-survminer
+  (package
+    (name "r-survminer")
+    (version "0.4.8")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "survminer" version))
+       (sha256
+        (base32
+         "1niysd89mxb2a6ncvzm1s6xgfvq3psba65af0whh2p56r2hwrwff"))))
+    (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-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)))
+    (home-page "https://rpkgs.datanovia.com/survminer/index.html")
+    (synopsis "Drawing survival curves using ggplot2")
+    (description
+     "This package contains the function @code{ggsurvplot()} for easily
+drawing beautiful and 'ready-to-publish' survival curves with the 'number at
+risk' table and 'censoring count plot'.  Other functions are also available to
+plot adjusted curves for Cox model and to visually examine Cox model
+assumptions.")
+    (license license:gpl2)))
+
+(define-public r-forge
+  (package
+    (name "r-forge")
+    (version "0.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "forge" version))
+       (sha256
+        (base32
+         "0pjfzsc35agkh0zfw2czwajkbsyn6liys5irl5bhz5r1vim3jmwa"))))
+    (properties `((upstream-name . "forge")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-magrittr" ,r-magrittr)
+       ("r-rlang" ,r-rlang)))
+    (home-page "https://cran.r-project.org/web/packages/forge/")
+    (synopsis "Cast values into shape")
+    (description
+     "This package provides helper functions with a consistent interface to
+coerce and verify the types and shapes of values for input checking.")
+    (license license:asl2.0)))
+
+(define-public r-config
+  (package
+    (name "r-config")
+    (version "0.3.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "config" version))
+       (sha256
+        (base32
+         "0l2zp7v6qaz72dclcbjrlis633zlwp8rsi5azr7iw127iyz7i26l"))))
+    (properties `((upstream-name . "config")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-yaml" ,r-yaml)))
+    (native-inputs
+     `(("r-knitr" ,r-knitr)))
+    (home-page "https://github.com/rstudio/config")
+    (synopsis "Manage environment specific configuration values")
+    (description
+     "This package lets you manage configuration values across multiple
+environments (e.g.  development, test, production).  It reads values using a
+function that determines the current environment and returns the appropriate
+value.")
+    (license license:gpl3)))
+
+(define-public r-adaptivesparsity
+  (package
+    (name "r-adaptivesparsity")
+    (version "1.6")
+    (source (origin
+              (method url-fetch)
+              (uri (cran-uri "AdaptiveSparsity" version))
+              (sha256
+               (base32
+                "0imr5m8mll9j6n4icsv6z9rl5kbnwsp9wvzrg7n90nnmcxq2cz91"))))
+    (properties
+     `((upstream-name . "AdaptiveSparsity")))
+    (build-system r-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'link-against-armadillo
+           (lambda _
+             (substitute* "src/Makevars"
+               (("PKG_LIBS=" prefix)
+                (string-append prefix "-larmadillo")))
+             #t)))))
+    (propagated-inputs
+     `(("r-mass" ,r-mass)
+       ("r-matrix" ,r-matrix)
+       ("r-rcpp" ,r-rcpp)
+       ("r-rcpparmadillo" ,r-rcpparmadillo)))
+    (inputs
+     `(("armadillo" ,armadillo)))
+    (home-page "https://cran.r-project.org/web/packages/AdaptiveSparsity")
+    (synopsis "Adaptive sparsity models")
+    (description
+     "This package implements the Figueiredo machine learning algorithm for
+adaptive sparsity and the Wong algorithm for adaptively sparse Gaussian
+geometric models.")
+    (license license:lgpl3+)))
+
+(define-public r-diffusionmap
+  (package
+    (name "r-diffusionmap")
+    (version "1.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "diffusionMap" version))
+       (sha256
+        (base32
+         "1rvk7069brlm1s9kqj4c31mwwr3mw4hmhay95cjjjfmw5xclff2j"))))
+    (properties `((upstream-name . "diffusionMap")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-igraph" ,r-igraph)
+       ("r-matrix" ,r-matrix)
+       ("r-scatterplot3d" ,r-scatterplot3d)))
+    (home-page "https://www.r-project.org")
+    (synopsis "Diffusion map")
+    (description "This package implements the diffusion map method of data
+parametrization, including creation and visualization of diffusion maps,
+clustering with diffusion K-means and regression using the adaptive regression
+model.")
+    (license license:gpl2)))
+
+(define-public r-igraph
+  (package
+    (name "r-igraph")
+    (version "1.2.6")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "igraph" version))
+       (sha256
+        (base32
+         "0vf7wrx77cdiav8724cw8gchrn0y9wvywphf5km4pa7xcqhsf3b4"))))
+    (build-system r-build-system)
+    (native-inputs
+     `(("gfortran" ,gfortran)))
+    (inputs
+     `(("gmp" ,gmp)
+       ("glpk" ,glpk)
+       ("libxml2" ,libxml2)
+       ("zlib" ,zlib)))
+    (propagated-inputs
+     `(("r-magrittr" ,r-magrittr)
+       ("r-matrix" ,r-matrix)
+       ("r-pkgconfig" ,r-pkgconfig)))
+    (home-page "https://igraph.org")
+    (synopsis "Network analysis and visualization")
+    (description
+     "This package provides routines for simple graphs and network analysis.
+It can handle large graphs very well and provides functions for generating
+random and regular graphs, graph visualization, centrality methods and much
+more.")
+    (license license:gpl2+)))
+
+(define-public r-workflows
+  (package
+    (name "r-workflows")
+    (version "0.2.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "workflows" version))
+       (sha256
+        (base32
+         "1mk0pnmpqlhf143mvj9rwvjrrshirz6s83s5hbfalhnyw7hzkfb9"))))
+    (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-parsnip" ,r-parsnip)
+       ("r-rlang" ,r-rlang)
+       ("r-tidyselect" ,r-tidyselect)))
+    (native-inputs
+     `(("r-knitr" ,r-knitr)))
+    (home-page "https://github.com/tidymodels/workflows")
+    (synopsis "Modeling workflows")
+    (description
+     "A workflow is an object that can bundle together your pre-processing,
+modeling, and post-processing requests.  For example, if you have a
+@code{recipe} and @code{parsnip} model, these can be combined into a
+workflow.  The advantages are:
+
+@enumerate
+@item You don’t have to keep track of separate objects in your workspace.
+@item The recipe prepping and model fitting can be executed using a single
+  call to @code{fit()}.
+@item If you have custom tuning parameter settings, these can be defined using
+  a simpler interface when combined with @code{tune}.
+@item In the future, workflows will be able to add post-processing operations,
+  such as modifying the probability cutoff for two-class models.
+@end enumerate
+")
+    (license license:expat)))
+
+(define-public r-gpfit
+  (package
+    (name "r-gpfit")
+    (version "1.0-8")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "GPfit" version))
+       (sha256
+        (base32
+         "05mpiyi2vxv0wqp422n1mnxa8msc4daq40cwpnpngbcwqhlgqkby"))))
+    (properties `((upstream-name . "GPfit")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-lattice" ,r-lattice)
+       ("r-lhs" ,r-lhs)))
+    (home-page "https://cran.r-project.org/web/packages/GPfit/")
+    (synopsis "Gaussian Processes modeling")
+    (description
+     "This package provides a computationally stable approach of fitting a
+@dfn{Gaussian Process} (GP) model to a deterministic simulator.")
+    (license license:gpl2)))
+
+(define-public r-yardstick
+  (package
+    (name "r-yardstick")
+    (version "0.0.7")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "yardstick" version))
+       (sha256
+        (base32
+         "1yrvlhn4gxyn9f20z5yv3xam0j0a8z362jwa32r33r0g0jk5z2fq"))))
+    (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)))
+    (native-inputs
+     `(("r-knitr" ,r-knitr)))
+    (home-page "https://github.com/tidymodels/yardstick")
+    (synopsis "Tidy characterizations of model performance")
+    (description
+     "This package provides tidy tools for quantifying how well a model fits
+to a data set such as confusion matrices, class probability curve summaries,
+and regression metrics (e.g., RMSE).")
+    (license license:gpl2)))
+
+(define-public r-warp
+  (package
+    (name "r-warp")
+    (version "0.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "warp" version))
+       (sha256
+        (base32
+         "0s0acddc5h14245hi1faycxp0fyvw6nlgaz2df7da4fpyd2f638f"))))
+    (properties `((upstream-name . "warp")))
+    (build-system r-build-system)
+    (native-inputs `(("r-knitr" ,r-knitr)))
+    (home-page "https://github.com/DavisVaughan/warp")
+    (synopsis "Group dates")
+    (description
+     "This package provides tooling to group dates by a variety of periods
+including: yearly, monthly, by second, by week of the month, and more.  The
+groups are defined in such a way that they also represent the distance between
+dates in terms of the period.  This extracts valuable information that can be
+used in further calculations that rely on a specific temporal spacing between
+observations.")
+    (license license:expat)))
+
+(define-public r-slider
+  (package
+    (name "r-slider")
+    (version "0.1.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "slider" version))
+       (sha256
+        (base32
+         "1x4jwfxam4czfkb1s5qds5krfw1h2p5a4rh6f5z4yvhsv0d81xck"))))
+    (properties `((upstream-name . "slider")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-glue" ,r-glue)
+       ("r-rlang" ,r-rlang)
+       ("r-vctrs" ,r-vctrs)
+       ("r-warp" ,r-warp)))
+    (native-inputs `(("r-knitr" ,r-knitr)))
+    (home-page "https://github.com/DavisVaughan/slider")
+    (synopsis "Sliding window functions")
+    (description
+     "This package provides type-stable rolling window functions over any R
+data type.  Cumulative and expanding windows are also supported.  For more
+advanced usage, an index can be used as a secondary vector that defines how
+sliding windows are to be created.")
+    (license license:expat)))
+
+(define-public r-rsample
+  (package
+    (name "r-rsample")
+    (version "0.0.8")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "rsample" version))
+       (sha256
+        (base32
+         "1psmxk16d4bz1v05x0gb9hn4brkdjxw8hjbxmj62snichnix3q3i"))))
+    (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-modeldata" ,r-modeldata)
+       ("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)))
+    (home-page "https://rsample.tidymodels.org")
+    (synopsis "General resampling infrastructure")
+    (description
+     "This package provides classes and functions to create and summarize
+different types of resampling objects (e.g. bootstrap, cross-validation).")
+    (license license:gpl2)))
+
+(define-public r-dicedesign
+  (package
+    (name "r-dicedesign")
+    (version "1.8-1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "DiceDesign" version))
+       (sha256
+        (base32
+         "11s1m543kxd6gv4amh8z6pph1n67sj9sfwm6hjy83wfs65syf5vp"))))
+    (properties `((upstream-name . "DiceDesign")))
+    (build-system r-build-system)
+    (home-page "http://dice.emse.fr/")
+    (synopsis "Designs of computer experiments")
+    (description
+     "This package provides tools to create some specific @code{Space-Filling
+Design} (SFD) and to test their quality.")
+    (license license:gpl3)))
+
+(define-public r-dials
+  (package
+    (name "r-dials")
+    (version "0.0.9")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "dials" version))
+       (sha256
+        (base32
+         "0g9wj2py4wz703rh4p7hk8qxqnkm7zyrypv4qz4vaqziazjsmxks"))))
+    (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)))
+    (home-page "https://dials.tidymodels.org/")
+    (synopsis "Tools for creating tuning parameter values")
+    (description
+     "Many models contain tuning parameters (i.e. parameters that cannot be
+directly estimated from the data).  These tools can be used to define objects
+for creating, simulating, or validating values for such parameters.")
+    (license license:gpl2)))
+
+(define-public r-tune
+  (package
+    (name "r-tune")
+    (version "0.1.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "tune" version))
+       (sha256
+        (base32
+         "0ja7rjkjj88v3ngrc6izcz2qh9qv4s8abgcafmvx2ihgz99hds37"))))
+    (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-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-workflows" ,r-workflows)
+       ("r-yardstick" ,r-yardstick)))
+    (home-page "https://github.com/tidymodels/tune")
+    (synopsis "Tidy tuning tools")
+    (description
+     "The ability to tune models is important.  @code{tune} contains functions
+and classes to be used in conjunction with other @code{tidymodels} packages
+for finding reasonable values of hyper-parameters in models, pre-processing
+methods, and post-processing steps.")
+    (license license:expat)))
+
+(define-public r-tidyposterior
+  (package
+    (name "r-tidyposterior")
+    (version "0.0.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "tidyposterior" version))
+       (sha256
+        (base32
+         "0wsv800w056ziqbnwal7ncmdy4li8cn5yrdx07w35b7j8kl4mwhg"))))
+    (properties `((upstream-name . "tidyposterior")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-dplyr" ,r-dplyr)
+       ("r-generics" ,r-generics)
+       ("r-ggplot2" ,r-ggplot2)
+       ("r-lifecycle" ,r-lifecycle)
+       ("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-vctrs" ,r-vctrs)))
+    (native-inputs
+     `(("r-knitr" ,r-knitr)))
+    (home-page "https://tidyposterior.tidymodels.org")
+    (synopsis "Bayesian analysis to compare models using resampling statistics")
+    (description
+     "This package can be used to conduct post hoc analyses of resampling
+results generated by models.  For example, if two models are evaluated with
+the @dfn{root mean squared error} (RMSE) using 10-fold cross-validation, there
+are 10 paired statistics.  These can be used to make comparisons between
+models without involving a test set.")
+    (license license:gpl2)))
+
+(define-public r-tidypredict
+  (package
+    (name "r-tidypredict")
+    (version "0.4.8")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "tidypredict" version))
+       (sha256
+        (base32
+         "0fff349pkksss8h1k2qza78l81ha6avx63pxziv6dfa8h62qmrdy"))))
+    (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)))
+    (native-inputs
+     `(("r-knitr" ,r-knitr)))
+    (home-page "https://tidypredict.tidymodels.org")
+    (synopsis "Run predictions inside the database")
+    (description
+     "This package parses a fitted R model object, and returns a formula in
+Tidy Eval code that calculates the predictions.  It works with several
+database backends because it leverages @code{dplyr} and @code{dbplyr} for the
+final SQL translation of the algorithm.  It currently supports @code{lm()},
+@code{glm()}, @code{randomForest()}, @code{ranger()}, @code{earth()},
+@code{xgb.Booster.complete()}, @code{cubist()}, and @code{ctree()} models.")
+    (license license:gpl3)))
+
+(define-public r-janeaustenr
+  (package
+    (name "r-janeaustenr")
+    (version "0.1.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "janeaustenr" version))
+       (sha256
+        (base32
+         "1wyn4qc28a3sval8shmyi2d7s4nl3jh96s8pzq871brxcmrncbwr"))))
+    (properties `((upstream-name . "janeaustenr")))
+    (build-system r-build-system)
+    (home-page "https://github.com/juliasilge/janeaustenr")
+    (synopsis "Jane Austen's complete novels")
+    (description
+     "This package provides the full texts for Jane Austen's six completed
+novels, ready for text analysis.  These novels are \"Sense and Sensibility\",
+\"Pride and Prejudice\", \"Mansfield Park\", \"Emma\", \"Northanger Abbey\",
+and \"Persuasion\".")
+    (license license:expat)))
+
+(define-public r-tokenizers
+  (package
+    (name "r-tokenizers")
+    (version "0.2.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "tokenizers" version))
+       (sha256
+        (base32
+         "006xf1vdrmp9skhpss9ldhmk4cwqk512cjp1pxm2gxfybpf7qq98"))))
+    (properties `((upstream-name . "tokenizers")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-rcpp" ,r-rcpp)
+       ("r-snowballc" ,r-snowballc)
+       ("r-stringi" ,r-stringi)))
+    (native-inputs
+     `(("r-knitr" ,r-knitr)))
+    (home-page "https://lincolnmullen.com/software/tokenizers/")
+    (synopsis "Fast, consistent tokenization of natural language text")
+    (description
+     "This is a package for converting natural language text into tokens.
+It includes tokenizers for shingled n-grams, skip n-grams, words, word stems,
+sentences, paragraphs, characters, shingled characters, lines, tweets, Penn
+Treebank, regular expressions, as well as functions for counting characters,
+words, and sentences, and a function for splitting longer texts into separate
+documents, each with the same number of words.  The tokenizers have a
+consistent interface, and the package is built on the @code{stringi} and
+@code{Rcpp} packages for fast yet correct tokenization in UTF-8 encoding.")
+    (license license:expat)))
+
+(define-public r-hunspell
+  (package
+    (name "r-hunspell")
+    (version "3.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "hunspell" version))
+       (sha256
+        (base32
+         "0ql6y05d4xxpm468rslb0wxdp1x9l3flxzmb5w6pjg617f8vpv8z"))))
+    (properties `((upstream-name . "hunspell")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-digest" ,r-digest)
+       ("r-rcpp" ,r-rcpp)))
+    (native-inputs
+     `(("r-knitr" ,r-knitr)))
+    (home-page "https://github.com/ropensci/hunspell#readme")
+    (synopsis "High-performance stemmer, tokenizer, and spell checker")
+    (description
+     "This package provides a low-level spell checker and morphological
+analyzer based on the famous @code{hunspell} library.  The package can analyze
+or check individual words as well as parse text, LaTeX, HTML or XML documents.
+For a more user-friendly interface use the @code{spelling} package which
+builds on this package to automate checking of files, documentation and
+vignettes in all common formats.")
+    ;; The hunspell library itself is available under one of GPL2, LGPL2.1, or
+    ;; MPL; in addition to these licenses the rest of the R wrapper is also
+    ;; available under the Expat license.
+    (license (list license:gpl2
+                   license:lgpl2.1
+                   license:mpl1.1
+                   license:expat))))
+
+(define-public r-tidytext
+  (package
+    (name "r-tidytext")
+    (version "0.3.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "tidytext" version))
+       (sha256
+        (base32
+         "1icbfw4zkbs9sp6vk814mw2zzm0bc0d7af92vhriqxaga0gbwdkx"))))
+    (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)))
+    (home-page "https://github.com/juliasilge/tidytext")
+    (synopsis "Text mining using dplyr, ggplot2, and other Tidy tools")
+    (description
+     "This is a package for text mining for word processing and sentiment
+analysis using @code{dplyr}, @code{ggplot2}, and other Tidy tools.")
+    (license license:expat)))
+
+(define-public r-parsnip
+  (package
+    (name "r-parsnip")
+    (version "0.1.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "parsnip" version))
+       (sha256
+        (base32
+         "0c12lyfxqsdprqlcmgy421py38z28h88d68pxb1c4fw14v1c2d06"))))
+    (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-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)))
+    (home-page "https://parsnip.tidymodels.org")
+    (synopsis "Common API to modeling and analysis functions")
+    (description
+     "This package provides a common interface to allow users to specify a
+model without having to remember the different argument names across different
+functions or computational engines (e.g. R, Spark, Stan, etc).")
+    (license license:gpl2)))
+
+(define-public r-infer
+  (package
+    (name "r-infer")
+    (version "0.5.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "infer" version))
+       (sha256
+        (base32
+         "0wvvgqjhyv7ql98cjzqad61wbmk7xrqd1ybk894jr5cmza13c8w2"))))
+    (properties `((upstream-name . "infer")))
+    (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-rlang" ,r-rlang)
+       ("r-tibble" ,r-tibble)))
+    (native-inputs
+     `(("r-knitr" ,r-knitr)))
+    (home-page "https://github.com/tidymodels/infer")
+    (synopsis "Tidy statistical inference")
+    (description
+     "The objective of this package is to perform inference using an
+expressive statistical grammar that coheres with the Tidy design framework.")
+    (license license:cc0)))
+
+(define-public r-modeldata
+  (package
+    (name "r-modeldata")
+    (version "0.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "modeldata" version))
+       (sha256
+        (base32
+         "0lbvmicvhw560jn9qk5dywrl6mgj1rf7zh7p86lf97c6bmz0zp2r"))))
+    (properties `((upstream-name . "modeldata")))
+    (build-system r-build-system)
+    (home-page "https://modeldata.tidymodels.org")
+    (synopsis "Data sets useful for modeling packages")
+    (description
+     "This package provides data sets used for demonstrating or testing
+model-related packages.")
+    (license license:expat)))
+
+(define-public r-tidymodels
+  (package
+    (name "r-tidymodels")
+    (version "0.1.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "tidymodels" version))
+       (sha256
+        (base32
+         "09njrl655sh82xrzckgg56a6ndfrjla5fy8675wj4jsj14jpv0fw"))))
+    (properties `((upstream-name . "tidymodels")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-broom" ,r-broom)
+       ("r-cli" ,r-cli)
+       ("r-dials" ,r-dials)
+       ("r-dplyr" ,r-dplyr)
+       ("r-ggplot2" ,r-ggplot2)
+       ("r-infer" ,r-infer)
+       ("r-magrittr" ,r-magrittr)
+       ("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-yardstick" ,r-yardstick)))
+    (native-inputs
+     `(("r-knitr" ,r-knitr)
+       ("r-rmarkdown" ,r-rmarkdown)
+       ("pandoc" ,pandoc)
+       ("pandoc-citeproc" ,pandoc-citeproc))) ; for vignettes
+    (home-page "https://github.com/tidymodels/tidymodels")
+    (synopsis "Tidy collection for modeling and statistical analysis")
+    (description
+     "The tidy modeling \"verse\" is a collection of packages for modeling and
+statistical analysis that share the underlying design philosophy, grammar, and
+data structures of the tidyverse.")
+    (license license:gpl3)))
+
+(define-public r-mlecens
+  (package
+    (name "r-mlecens")
+    (version "0.1-4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "MLEcens" version))
+       (sha256
+        (base32
+         "0zlmrcjraypscgs2v0w4s4hm7qccsmaz4hjsgqpn0058vx622945"))))
+    (properties `((upstream-name . "MLEcens")))
+    (build-system r-build-system)
+    (home-page "http://stat.ethz.ch/~maathuis/")
+    (synopsis "Computation of the MLE for bivariate (interval) censored data")
+    (description
+     "This package contains functions to compute the nonparametric
+@dfn{maximum likelihood estimator} (MLE) for the bivariate distribution of
+@code{(X,Y)}, when realizations of @code{(X,Y)} cannot be observed directly.
+To be more precise, we consider the situation where we observe a set of
+rectangles that are known to contain the unobservable realizations of (X,Y).
+We compute the MLE based on such a set of rectangles.  The methods can also be
+used for univariate censored data (see data set @code{cosmesis}), and for
+censored data with competing risks (see data set @code{menopause}).  The
+package also provides functions to visualize the observed data and the MLE.")
+    (license license:gpl2+)))
+
+(define-public r-metafor
+  (package
+    (name "r-metafor")
+    (version "2.4-0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "metafor" version))
+       (sha256
+        (base32
+         "1b599fxk7s0brkchmx698fr5k4g1kzkia2rnlvhg349ffs5nfjmn"))))
+    (properties `((upstream-name . "metafor")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-matrix" ,r-matrix)
+       ("r-nlme" ,r-nlme)))
+    (home-page "https://cran.r-project.org/web/packages/metafor/")
+    (synopsis "Meta-analysis package for R")
+    (description
+     "This package provides a comprehensive collection of functions for
+conducting meta-analyses in R.  The package includes functions to calculate
+various effect sizes or outcome measures, fit fixed-, random-, and
+mixed-effects models to such data, carry out moderator and meta-regression
+analyses, and create various types of meta-analytical plots (e.g., forest,
+funnel, radial, L'Abbe, Baujat, GOSH plots).  For meta-analyses of binomial
+and person-time data, the package also provides functions that implement
+specialized methods, including the Mantel-Haenszel method, Peto's method, and
+a variety of suitable generalized linear (mixed-effects) models (i.e.
+mixed-effects logistic and Poisson regression models).  Finally, the package
+provides functionality for fitting meta-analytic multivariate/multilevel
+models that account for non-independent sampling errors and/or true
+effects (e.g. due to the inclusion of multiple treatment studies, multiple
+endpoints, or other forms of clustering).  Network meta-analyses and
+meta-analyses accounting for known correlation structures (e.g. due to
+phylogenetic relatedness) can also be conducted.")
+    (license license:gpl2+)))
+
+(define-public r-altmeta
+  (package
+    (name "r-altmeta")
+    (version "3.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "altmeta" version))
+       (sha256
+        (base32
+         "0z252lbsknqp33i0b0xf5r7spr535iq47bv40vgip6nsqhgrl7b0"))))
+    (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)))
+    (home-page "https://cran.r-project.org/web/packages/altmeta/")
+    (synopsis "Alternative meta-analysis methods")
+    (description
+     "This package provides alternative statistical methods for meta-analysis,
+including:
+
+@enumerate
+@item bivariate generalized linear mixed models for synthesizing odds ratios,
+  relative risks, and risk differences
+@item heterogeneity tests and measures that are robust to outliers;
+@item measures, tests, and visualization tools for publication bias or
+  small-study effects;
+@item meta-analysis of diagnostic tests for synthesizing sensitivities,
+  specificities, etc.;
+@item meta-analysis methods for synthesizing proportions;
+@item models for multivariate meta-analysis.
+@end enumerate
+")
+    (license license:gpl2+)))
+
+(define-public r-perm
+  (package
+    (name "r-perm")
+    (version "1.0-0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "perm" version))
+       (sha256
+        (base32
+         "0075awl66ynv10vypg63fcxk33qzvxddrp8mi4w08ysvimcyxijk"))))
+    (properties `((upstream-name . "perm")))
+    (build-system r-build-system)
+    (home-page "https://cran.r-project.org/web/packages/perm/")
+    (synopsis "Exact or asymptotic permutation tests")
+    (description
+     "This package provides several methods for performing permutation tests.
+It has three main functions, to perform linear permutation tests.  These tests
+are tests where the test statistic is the sum of the product of a
+covariate (usually group indicator) and the scores.")
+    ;; Any version of the GPL
+    (license license:gpl2+)))
+
+(define-public r-qtl
+  (package
+    (name "r-qtl")
+    (version "1.47-9")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "qtl" version))
+       (sha256
+        (base32
+         "0hffirsvw9j82cdx6l7vhqn3a7ab52claqjlinv3lswl1nsfg93b"))))
+    (build-system r-build-system)
+    (home-page "https://rqtl.org/")
+    (synopsis "R package for analyzing QTL experiments in genetics")
+    (description "R/qtl is an extension library for the R statistics system.
+It is used to analyze experimental crosses for identifying genes contributing
+to variation in quantitative traits (so-called quantitative trait loci, QTLs).
+
+Using a hidden Markov model, R/qtl estimates genetic maps, to identify
+genotyping errors, and to perform single-QTL and two-QTL, two-dimensional
+genome scans.")
+    (license license:gpl3)))
+
+(define-public r-qtl2
+  (package
+    (name "r-qtl2")
+    (version "0.24")
+    (source (origin
+              (method url-fetch)
+              (uri (cran-uri "qtl2" version))
+              (sha256
+               (base32 "1558khh0zkwm0rdk87krv9836krvwv5h7ymlz9bsrgcvypyr9186"))))
+    (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)))
+    (home-page "https://kbroman.org/qtl2/")
+    (synopsis "Quantitative Trait Locus Mapping in Experimental Crosses")
+    (description
+     "This package provides a set of tools to perform @dfn{Quantitative Trait
+Locus} (QTL) analysis in experimental crosses.  It is a reimplementation of the
+@code{R/qtl} package to better handle high-dimensional data and complex cross
+designs.  Broman et al. (2018) <doi:10.1534/genetics.118.301595>.")
+    (license license:gpl3)))
+
+(define-public r-seqminer
+  (package
+    (name "r-seqminer")
+    (version "8.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "seqminer" version))
+       (sha256
+        (base32
+         "00jzj8mwb0zaiwlifd41b26mrq9mzigj18nc29dydi0r42hxg16i"))))
+    (build-system r-build-system)
+    (inputs
+     `(("zlib" ,zlib)))
+    (home-page "http://seqminer.genomic.codes")
+    (synopsis "Read nucleotide sequence data (VCF, BCF, and METAL formats)")
+    (description
+     "This package provides tools to integrate nucleotide sequencing
+data (variant call format, e.g. VCF or BCF) or meta-analysis results in R.")
+    ;; Any version of the GPL is acceptable
+    (license (list license:gpl2+ license:gpl3+))))
+
+(define-public r-maldiquant
+  (package
+    (name "r-maldiquant")
+    (version "1.19.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "MALDIquant" version))
+       (sha256
+        (base32
+         "0b7kdz3x4sdq413h1q09l1qhcvdnnwv6fqsqwllks1cd3xy34c57"))))
+    (properties `((upstream-name . "MALDIquant")))
+    (build-system r-build-system)
+    (home-page "https://cran.r-project.org/web/packages/MALDIquant")
+    (synopsis "Quantitative analysis of mass spectrometry data")
+    (description
+     "This package provides a complete analysis pipeline for matrix-assisted
+laser desorption/ionization-time-of-flight (MALDI-TOF) and other
+two-dimensional mass spectrometry data.  In addition to commonly used plotting
+and processing methods it includes distinctive features, namely baseline
+subtraction methods such as morphological filters (TopHat) or the
+statistics-sensitive non-linear iterative peak-clipping algorithm (SNIP), peak
+alignment using warping functions, handling of replicated measurements as well
+as allowing spectra with different resolutions.")
+    (license license:gpl3+)))
+
+(define-public r-scattermore
+  (package
+    (name "r-scattermore")
+    (version "0.7")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "scattermore" version))
+       (sha256
+        (base32
+         "18nzlprmphkvjg946h10h2qq0wbkmv2526p8di6k2xl4gccq0qpk"))))
+    (properties `((upstream-name . "scattermore")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-ggplot2" ,r-ggplot2)
+       ("r-scales" ,r-scales)))
+    (home-page "https://github.com/exaexa/scattermore")
+    (synopsis "Scatterplots with more points")
+    (description
+     "This package provides C-based tools for converting large scatterplot
+data to rasters.  It speeds up plotting of data with millions of points.")
+    (license license:gpl3+)))
+
+(define-public r-seurat
+  (package
+    (name "r-seurat")
+    (version "3.2.3")
+    (source (origin
+              (method url-fetch)
+              (uri (cran-uri "Seurat" version))
+              (sha256
+               (base32
+                "11rzc7h2ad8z8k5r1sbz4d7y4rl3080qp2hh7vibwmipbkvlial3"))))
+    (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-rsvd" ,r-rsvd)
+       ("r-rtsne" ,r-rtsne)
+       ("r-scales" ,r-scales)
+       ("r-scattermore" ,r-scattermore)
+       ("r-sctransform" ,r-sctransform)
+       ("r-shiny" ,r-shiny)
+       ("r-spatstat" ,r-spatstat)
+       ("r-tibble" ,r-tibble)
+       ("r-uwot" ,r-uwot)))
+    (home-page "http://www.satijalab.org/seurat")
+    (synopsis "Seurat is an R toolkit for single cell genomics")
+    (description
+     "This package is an R package designed for QC, analysis, and
+exploration of single cell RNA-seq data.  It easily enables widely-used
+analytical techniques, including the identification of highly variable genes,
+dimensionality reduction; PCA, ICA, t-SNE, standard unsupervised clustering
+algorithms; density clustering, hierarchical clustering, k-means, and the
+discovery of differentially expressed genes and markers.")
+    (license license:gpl3)))
+
+(define-public r-phangorn
+  (package
+    (name "r-phangorn")
+    (version "2.5.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "phangorn" version))
+       (sha256
+        (base32
+         "0ihkaykqjmf80d8wrk3saphxvnv58zma6pd13633bd3cwanc33f5"))))
+    (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)))
+    (home-page "https://github.com/KlausVigo/phangorn")
+    (synopsis "Phylogenetic analysis in R")
+    (description
+     "Phangorn is a package for phylogenetic analysis in R.  It supports
+estimation of phylogenetic trees and networks using Maximum Likelihood,
+Maximum Parsimony, distance methods and Hadamard conjugation.")
+    (license license:gpl2+)))
+
+(define-public r-diversitree
+  (package
+    (name "r-diversitree")
+    (version "0.9-15")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (cran-uri "diversitree" version))
+        (sha256
+         (base32
+          "1sk3sgn5hi04978s5s7gy6pzp28g3v9rglmiamlgs96c9wyyyff7"))))
+    (build-system r-build-system)
+    (native-inputs
+     `(("gfortran" ,gfortran)))
+    (inputs `(("fftw" ,fftw) ("gsl" ,gsl)))
+    (propagated-inputs
+     `(("r-ape" ,r-ape)
+       ("r-desolve" ,r-desolve)
+       ("r-rcpp" ,r-rcpp)
+       ("r-subplex" ,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\"
+methods, mostly focusing on analysing diversification and character evolution.
+Contains implementations of \"BiSSE\" (Binary State Speciation and Extinction)
+and its unresolved tree extensions, \"MuSSE\" (Multiple State Speciation and
+Extinction), \"QuaSSE\", \"GeoSSE\", and \"BiSSE-ness\" Other included methods
+include Markov models of discrete and continuous trait evolution and constant
+rate speciation and extinction.")
+    (license license:gpl2+)))
+
+(define-public r-absfiltergsea
+  (package
+    (name "r-absfiltergsea")
+    (version "1.5.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "AbsFilterGSEA" version))
+       (sha256
+        (base32 "15srxkxsvn38kd5frdrwfdf0ad8gskrd0h01wmdf9hglq8fjrp7w"))))
+    (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)))
+    (home-page "https://cran.r-project.org/web/packages/AbsFilterGSEA/")
+    (synopsis "Improved false positive control of gene-permuting with absolute filtering")
+    (description
+     "This package provides a function that performs gene-permuting of a gene-set
+enrichment analysis (GSEA) calculation with or without the absolute filtering.
+  Without filtering, users can perform (original) two-tailed or one-tailed
+absolute GSEA.")
+    (license license:gpl2)))
+
+(define-public r-calculus
+  (package
+    (name "r-calculus")
+    (version "0.3.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "calculus" version))
+       (sha256
+        (base32
+         "1wa5ap89cfcp0ancj9ivx5s2y0wqr2vmp9y115g7f6g772jwhscj"))))
+    (properties `((upstream-name . "calculus")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-rcpp" ,r-rcpp)))
+    (native-inputs
+     `(("r-knitr" ,r-knitr)))
+    (home-page "https://github.com/eguidotti/calculus")
+    (synopsis "High dimensional numerical and symbolic calculus")
+    (description
+     "Efficient C++ optimized functions for numerical and symbolic calculus.
+It includes basic symbolic arithmetic, tensor calculus, Einstein summing
+convention, fast computation of the Levi-Civita symbol and generalized
+Kronecker delta, Taylor series expansion, multivariate Hermite polynomials,
+accurate high-order derivatives, differential operators (Gradient, Jacobian,
+Hessian, Divergence, Curl, Laplacian) and numerical integration in arbitrary
+orthogonal coordinate systems: cartesian, polar, spherical, cylindrical,
+parabolic or user defined by custom scale factors.")
+    (license license:gpl3)))
+
+(define-public r-decon
+  (package
+    (name "r-decon")
+    (version "1.2-4")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (cran-uri "decon" version))
+        (sha256
+          (base32
+            "1v4l0xq29rm8mks354g40g9jxn0didzlxg3g7z08m0gvj29zdj7s"))))
+    (properties `((upstream-name . "decon")))
+    (build-system r-build-system)
+    (native-inputs
+     `(("gfortran" ,gfortran)))
+    (home-page
+      "https://cran.r-project.org/web/packages/decon/")
+    (synopsis "Deconvolution Estimation in Measurement Error Models")
+    (description
+      "This package contains a collection of functions to deal with
+nonparametric measurement error problems using deconvolution
+kernel methods.  We focus two measurement error models in the
+package: (1) an additive measurement error model, where the
+goal is to estimate the density or distribution function from
+contaminated data; (2) nonparametric regression model with
+errors-in-variables.  The R functions allow the measurement errors
+to be either homoscedastic or heteroscedastic.  To make the
+deconvolution estimators computationally more efficient in R,
+we adapt the \"Fast Fourier Transform\" (FFT) algorithm for
+density estimation with error-free data to the deconvolution
+kernel estimation.  Several methods for the selection of the
+data-driven smoothing parameter are also provided in the package.
+See details in: Wang, X.F.  and Wang, B. (2011).  Deconvolution
+estimation in measurement error models: The R package decon.
+Journal of Statistical Software, 39(10), 1-24.")
+    (license license:gpl3+)))
+
+(define-public r-locpol
+  (package
+    (name "r-locpol")
+    (version "0.7-0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (cran-uri "locpol" version))
+        (sha256
+          (base32
+            "1p915n0l09kbwkly627074jslxl01yssp1rf0c7sygvsw6sgy5lm"))))
+    (properties `((upstream-name . "locpol")))
+    (build-system r-build-system)
+    (home-page
+      "https://cran.r-project.org/web/packages/locpol/")
+    (synopsis "Kernel Local Polynomial Regression")
+    (description
+      "Computes local polynomial estimators for the regression and
+also density.  It comprises several different utilities to handle
+kernel estimators.")
+    (license license:gpl2+)))
+
+(define-public r-lpme
+  (package
+    (name "r-lpme")
+    (version "1.1.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (cran-uri "lpme" version))
+        (sha256
+          (base32
+            "0si90nkgl8bqk8yvd2igdsrngiwqh8891072pfpzipifnd0f5448"))))
+    (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)))
+    (home-page
+      "https://cran.r-project.org/web/packages/lpme/")
+    (synopsis "Nonparametric Estimation of Measurement Error Models")
+    (description
+      "Provide nonparametric methods for mean regression model,
+modal regression and conditional density estimation in the
+presence/absence of measurement error. Bandwidth selection is
+also provided for each method.")
+    (license license:gpl2+)))
+
+(define-public r-aws-signature
+  (package
+    (name "r-aws-signature")
+    (version "0.6.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "aws.signature" version))
+       (sha256
+        (base32
+         "15llpcnrdq4y6jsn7079yjmgbr5d1wgy2ymsm3jj3gkrd5l4zzpp"))))
+    (properties `((upstream-name . "aws.signature")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-base64enc" ,r-base64enc)
+       ("r-digest" ,r-digest)))
+    (home-page "https://github.com/cloudyr/aws.signature")
+    (synopsis "Amazon Web Services Request Signatures")
+    (description
+     "This package generates version 2 and 4 request signatures for Amazon Web
+Services (AWS) and provides a mechanism for retrieving credentials from
+environment variables, AWS credentials files, and EC2 instance metadata.  For
+use on EC2 instances, the package 'aws.ec2metadata' is suggested.")
+    (license license:gpl2+)))
+
+(define-public r-aws-s3
+  (package
+    (name "r-aws-s3")
+    (version "0.3.21")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "aws.s3" version))
+       (sha256
+        (base32
+         "132cczq0ml7lpp2yl6l4p99dn1zihrncnpa6wyad4m9mnr50a8dx"))))
+    (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)))
+    (home-page "https://github.com/cloudyr/aws.s3")
+    (synopsis "AWS S3 Client Package")
+    (description
+     "This package provides a simple client package for the Amazon Web
+Services (AWS) Simple Storage Service (S3) REST API.")
+    (license license:gpl2+)))
+
+(define-public r-lgr
+  (package
+    (name "r-lgr")
+    (version "0.4.2")
+    (source (origin
+              (method url-fetch)
+              (uri (cran-uri "lgr" version))
+              (sha256
+               (base32
+                "0k4kacjk7swm3gmdpha1rg44xb29vzvhvx48jhpb78glj5c9phyr"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-r6" ,r-r6)))
+    (native-inputs
+     `(("r-knitr" ,r-knitr)))
+    (home-page "https://s-fleck.github.io/lgr/")
+    (synopsis "Fully featured logging framework")
+    (description "This package offers a flexible, feature-rich yet
+light-weight logging framework based on @code{R6} classes.  It supports
+hierarchical loggers, custom log levels, arbitrary data fields in log events,
+logging to plaintext, JSON, (rotating) files, memory buffers, and databases, as
+well as email and push notifications.")
+    (license license:expat)))
+
+(define-public r-mlr3measures
+  (package
+    (name "r-mlr3measures")
+    (version "0.3.1")
+    (source (origin
+              (method url-fetch)
+              (uri (cran-uri "mlr3measures" version))
+              (sha256
+               (base32
+                "18jk4kdj9771r16smz7xhmmiilcdg1qlavln5hrpvkx780zh3hj6"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-checkmate" ,r-checkmate)
+       ("r-prroc" ,r-prroc)))
+    (home-page "https://mlr3measures.mlr-org.com/")
+    (synopsis "Performance measures for mlr3")
+    (description "This package implements multiple performance measures for
+supervised learning.  It includes over 40 measures for regression and
+classification.  Additionally, meta information about the performance measures
+can be queried, e.g. what the best and worst possible performances scores
+are.")
+    (license license:lgpl3)))
+
+(define-public r-mlr3misc
+  (package
+    (name "r-mlr3misc")
+    (version "0.7.0")
+    (source (origin
+              (method url-fetch)
+              (uri (cran-uri "mlr3misc" version))
+              (sha256
+               (base32
+                "19k3l2d6wnqvdng0m7p54rrlvwl5457lcy7bg82m2bbpqxi8qch3"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-backports" ,r-backports)
+       ("r-checkmate" ,r-checkmate)
+       ("r-data-table" ,r-data-table)
+       ("r-r6" ,r-r6)))
+    (home-page "https://mlr3misc.mlr-org.com/")
+    (synopsis "Helper functions for mlr3")
+    (description "@code{mlr3misc} provides frequently used helper functions
+and assertions used in @code{mlr3} and its companion packages.  It comes with
+helper functions for functional programming, for printing, to work with
+@code{data.table}, as well as some generally useful @code{R6} classes.  This
+package also supersedes the package @code{BBmisc}.")
+    (license license:lgpl3)))
+
+(define-public r-paradox
+  (package
+    (name "r-paradox")
+    (version "0.6.0")
+    (source (origin
+              (method url-fetch)
+              (uri (cran-uri "paradox" version))
+              (sha256
+               (base32
+                "1zv0q411wcwigkf4yggs3w2gz48lvv3jhnrddrv40qih8b70ywi3"))))
+    (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)))
+    (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,
+constraints and dependencies for arbitrary algorithms, and to program on such
+spaces.  It also includes statistical designs and random samplers.  Objects are
+implemented as @code{R6} classes.")
+    (license license:lgpl3)))
+
+(define-public r-mlr3
+  (package
+    (name "r-mlr3")
+    (version "0.9.0")
+    (source (origin
+              (method url-fetch)
+              (uri (cran-uri "mlr3" version))
+              (sha256
+               (base32
+                "0gg7rrzxwrnpg6sgm0aa6bmfwmqv3d3za0ghnqrnibg33p9ynpgb"))))
+    (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-digest" ,r-digest)
+       ("r-future-apply" ,r-future-apply)
+       ("r-lgr" ,r-lgr)
+       ("r-mlbench" ,r-mlbench)
+       ("r-mlr3measures" ,r-mlr3measures)
+       ("r-mlr3misc" ,r-mlr3misc)
+       ("r-paradox" ,r-paradox)
+       ("r-uuid" ,r-uuid)))
+    (home-page "https://mlr3.mlr-org.com/")
+    (synopsis "Machine Learning in R - Next Generation")
+    (description "@code{mlr3} enables efficient, object-oriented programming
+on the building blocks of machine learning.  It provides @code{R6} objects for
+tasks, learners, resamplings, and measures.  The package is geared towards
+scalability and larger datasets by supporting parallelization and out-of-memory
+data-backends like databases.  While @code{mlr3} focuses on the core
+computational operations, add-on packages provide additional functionality.")
+    (license license:lgpl3)))
+
+(define-public r-mlr3learners
+  (package
+    (name "r-mlr3learners")
+    (version "0.4.3")
+    (source (origin
+              (method url-fetch)
+              (uri (cran-uri "mlr3learners" version))
+              (sha256
+               (base32
+                "1wxlpzz3hpkn77n4ag1v868dmp140j1pmrhynsv5xfgk9fg0w7ri"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-data-table" ,r-data-table)
+       ("r-mlr3" ,r-mlr3)
+       ("r-mlr3misc" ,r-mlr3misc)
+       ("r-paradox" ,r-paradox)
+       ("r-r6" ,r-r6)))
+    (home-page "https://mlr3learners.mlr-org.com/")
+    (synopsis "Recommended Learners for @code{mlr3}")
+    (description "@code{mlr3learners} extends @code{mlr3} and @code{mlr3proba}
+with interfaces to essential machine learning packages on CRAN.  This includes,
+but is not limited to: (penalized) linear and logistic regression, linear and
+quadratic discriminant analysis, k-nearest neighbors, naive Bayes, support
+vector machines, and gradient boosting.")
+    (license license:lgpl3)))
+
+(define-public r-bbotk
+  (package
+    (name "r-bbotk")
+    (version "0.2.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "bbotk" version))
+       (sha256
+        (base32
+         "06iz6gyymcxkbjiw049v1dk3vjfni646z247q08i2s0x59sqfqxv"))))
+    (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)))
+    (home-page "https://bbotk.mlr-org.com")
+    (synopsis "Black-Box Optimization Toolkit")
+    (description "This package provides a common framework for optimization of
+black-box functions for other packages, e.g. @code{mlr3}.  It offers various
+optimization methods e.g. grid search, random search and generalized simulated
+annealing.")
+    (license license:lgpl3)))
+
+(define-public r-mlr3tuning
+  (package
+    (name "r-mlr3tuning")
+    (version "0.5.0")
+    (source (origin
+              (method url-fetch)
+              (uri (cran-uri "mlr3tuning" version))
+              (sha256
+               (base32
+                "1pn80qjxzj2pivgs6qgairci6yh1bdnl2zbgl9ykdip2rqzv6r6m"))))
+    (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)))
+    (home-page "https://mlr3tuning.mlr-org.com/")
+    (synopsis "Tuning for @code{mlr3}")
+    (description "@code{mlr3tuning} implements methods for hyperparameter
+tuning, e.g. Grid Search, Random Search, or Simulated Annealing.  Various
+termination criteria can be set and combined.  The class @code{AutoTuner} provides a
+convenient way to perform nested resampling in combination with @code{mlr3}.")
+    (license license:lgpl3)))
diff --git a/gnu/packages/crates-graphics.scm b/gnu/packages/crates-graphics.scm
new file mode 100644
index 0000000000..ca1fd9b3a7
--- /dev/null
+++ b/gnu/packages/crates-graphics.scm
@@ -0,0 +1,2386 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2020 Valentin Ignatev <valentignatev@gmail.com>
+;;; Copyright © 2020 Hartmut Goebel <h.goebel@crazy-compilers.com>
+;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2020 John Soo <jsoo1@asu.edu>
+;;; Copyright © 2020 Gabriel Arazas <foo.dogsquared@gmail.com>
+;;; Copyright © 2020 Raghav Gururajan <raghavgururajan@disroot.org>
+;;; Copyright © 2020 Danny Milosavljevic <dannym@scratchpost.org>
+;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2020 Leo Famulari <leo@famulari.name>
+;;; Copyright © 2020, 2021 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;; Copyright © 2020 Antoine Côté <antoine.cote@posteo.net>
+;;;
+;;; 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 crates-graphics)
+  #:use-module (guix build-system cargo)
+  #:use-module (guix download)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix packages)
+  #:use-module (gnu packages)
+  #:use-module (gnu packages crates-io)
+  #:use-module (gnu packages freedesktop)
+  #:use-module (gnu packages llvm)
+  #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages python)
+  #:use-module (gnu packages video))
+
+;;;
+;;; Please: Try to add new module packages in alphabetic order.
+
+(define-public rust-andrew-0.2
+  (package
+    (name "rust-andrew")
+    (version "0.2.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "andrew" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0pmklwcwy8g1jras46fz8xcny779zfqpg4riksrbdhkjk3w0jzwv"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-line-drawing" ,rust-line-drawing-0.7)
+        ("rust-rusttype" ,rust-rusttype-0.7)
+        ("rust-walkdir" ,rust-walkdir-2)
+        ("rust-xdg" ,rust-xdg-2)
+        ("rust-xml-rs" ,rust-xml-rs-0.8))
+       #:cargo-development-inputs
+       (("rust-smithay-client-toolkit" ,rust-smithay-client-toolkit-0.4))))
+    (inputs
+     `(("wayland" ,wayland)))
+    (home-page "https://github.com/trimental/andrew")
+    (synopsis "Provides convenient drawing of objects to buffers")
+    (description
+     "The @code{andrew} crate provides convenient drawing of objects such as
+shapes, lines and text to buffers.")
+    (license license:expat)))
+
+(define-public rust-ansi-colours-1
+  (package
+    (name "rust-ansi-colours")
+    (version "1.0.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "ansi_colours" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1dnqmpk68mzvncj37jlv0362kdgsgjxg010c6psagimgh4m303qx"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-cc" ,rust-cc-1))
+       #:cargo-development-inputs
+       (("rust-delta-e" ,rust-delta-e-0.2)
+        ("rust-lab" ,rust-lab-0.4))))
+    (home-page "https://github.com/mina86/ansi_colours")
+    (synopsis "Palette converter between true-colour and ANSI terminal")
+    (description
+     "@code{ansi_colours} is a library which converts between 24-bit sRGB
+colours and 8-bit colour palette used by ANSI terminals such as @code{xterm} on
+@code{rxvt-unicode} in 256-colour mode.
+The most common use case is when using 24-bit colours in a terminal emulator
+which only support 8-bit colour palette.  This package allows true-colours to be
+approximated by values supported by the terminal.")
+    (license license:lgpl3+)))
+
+(define-public rust-ansi-term-0.12
+  (package
+    (name "rust-ansi-term")
+    (version "0.12.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "ansi_term" version))
+        (file-name (string-append name "-" version ".crate"))
+        (sha256
+         (base32
+          "1ljmkbilxgmhavxvxqa7qvm6f3fjggi7q2l3a72q9x0cxjvrnanm"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-serde" ,rust-serde-1)
+        ("rust-winapi" ,rust-winapi-0.3))
+       #:cargo-development-inputs
+       (("rust-doc-comment" ,rust-doc-comment-0.3)
+        ("rust-regex" ,rust-regex-1)
+        ("rust-serde-json" ,rust-serde-json-1))))
+    (home-page "https://github.com/ogham/rust-ansi-term")
+    (synopsis "Library for ANSI terminal colours and styles")
+    (description
+     "This is a library for controlling colours and formatting, such as red bold
+text or blue underlined text, on ANSI terminals.")
+    (license license:expat)))
+
+(define-public rust-ansi-term-0.11
+  (package
+    (inherit rust-ansi-term-0.12)
+    (name "rust-ansi-term")
+    (version "0.11.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "ansi_term" version))
+        (file-name (string-append name "-" version ".crate"))
+        (sha256
+         (base32
+          "16wpvrghvd0353584i1idnsgm0r3vchg8fyrm0x8ayv1rgvbljgf"))))
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-winapi" ,rust-winapi-0.3))))))
+
+(define-public rust-ansi-term-0.9
+  (package
+    (inherit rust-ansi-term-0.11)
+    (name "rust-ansi-term")
+    (version "0.9.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "ansi_term" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1xif1bh938qpfc3d0f9xgidibpm65xix11w9gszwqnia00q7rb13"))))
+    (arguments `())))
+
+(define-public rust-aom-sys-0.2
+  (package
+    (name "rust-aom-sys")
+    (version "0.2.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "aom-sys" version))
+        (file-name
+          (string-append name "-" version ".tar.gz"))
+        (sha256
+          (base32
+            "03a0xhaafjn0hlpcf9ba73hv557m0jqnmj9wl57wzrcnka96zvgj"))))
+    (build-system cargo-build-system)
+    (arguments
+      `(#:cargo-inputs
+        (("rust-bindgen" ,rust-bindgen-0.54)
+         ("rust-metadeps" ,rust-metadeps-1.1))))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("libaom" ,libaom)
+       ("clang" ,clang)
+       ("llvm" ,llvm)))
+    (home-page "https://github.com/rust-av/aom-rs")
+    (synopsis "FFI bindings to aom")
+    (description "This package provides FFI bindings to aom.")
+    (license license:expat)))
+
+(define-public rust-aom-sys-0.1
+  (package
+    (inherit rust-aom-sys-0.2)
+    (name "rust-aom-sys")
+    (version "0.1.4")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "aom-sys" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1bqcpkycv1d67r6jcl9npfbw6rkl829rdq9w6vlpb0rjqxp0xzsn"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bindgen" ,rust-bindgen-0.53)
+        ("rust-metadeps" ,rust-metadeps-1.1))))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("libaom" ,libaom)
+       ("clang" ,clang)
+       ("llvm" ,llvm)))))
+
+(define-public rust-ascii-canvas-2
+  (package
+    (name "rust-ascii-canvas")
+    (version "2.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "ascii-canvas" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0a9s8vrbc5jr6ry5ygjyfqmbs9gyya1v6dsxzsczpai8z4nvg3pz"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t  ;; TODO: failes due to an unresolved import
+       #:cargo-inputs
+       (("rust-term" ,rust-term-0.5))))
+    (home-page "https://github.com/nikomatsakis/ascii-canvas")
+    (synopsis "Simple canvas for drawing lines and styled text and emitting to
+the terminal")
+    (description "@code{ASCII} canvas is a simple Rust library that allows you
+to draw lines and colored text and then write them to the terminal.  It uses
+the term library to handle the ANSI nonsense and hence it works on Windows,
+Mac, and Unix.")
+    (license (list license:asl2.0 license:expat))))
+
+(define-public rust-cgl-0.3
+  (package
+    (name "rust-cgl")
+    (version "0.3.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "cgl" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1zs7skrsyrsm759vfy2cygkx52fx91b567a12bpaz1sf4d8hbv8c"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t     ; only available on macOS
+       #:cargo-inputs (("rust-libc" ,rust-libc-0.2))))
+    (home-page "https://github.com/servo/cgl-rs")
+    (synopsis "Rust bindings for CGL on Mac")
+    (description "Rust bindings for CGL on Mac.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-cgl-0.2
+  (package
+    (inherit rust-cgl-0.3)
+    (name "rust-cgl")
+    (version "0.2.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "cgl" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0j8ayr8pbwvyv6l8r7m5z197rs3pqn97085w9j4rfn7yfh5yrrsm"))))
+    (arguments
+     `(#:skip-build? #t     ; only available on macOS
+       #:cargo-inputs
+       (("rust-gleam" ,rust-gleam-0.6)
+        ("rust-libc" ,rust-libc-0.2))))))
+
+(define-public rust-cgmath-0.17
+  (package
+    (name "rust-cgmath")
+    (version "0.17.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "cgmath" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1rvgila6ivr0dh1bxza450a4yfwdi2pwj3h1vnwg0jy4xk6l8f98"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t     ; Crate won't build without glium.
+       #:cargo-inputs
+       (("rust-approx" ,rust-approx-0.3)
+        ("rust-mint" ,rust-mint-0.5)
+        ("rust-num-traits" ,rust-num-traits-0.2)
+        ("rust-rand" ,rust-rand-0.6)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-simd" ,rust-simd-0.2))
+       #:cargo-development-inputs
+       (;("rust-glium" ,rust-glium-0.23)
+        ("rust-serde-json" ,rust-serde-json-1))))
+    (home-page "https://github.com/brendanzab/cgmath")
+    (synopsis "Linear algebra and mathematics library")
+    (description
+     "This package provides a linear algebra and mathematics library
+for computer graphics.")
+    (license license:asl2.0)))
+
+(define-public rust-cgmath-0.16
+  (package
+    (inherit rust-cgmath-0.17)
+    (name "rust-cgmath")
+    (version "0.16.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "cgmath" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "07754c03v3srzf64ghsl3fggrdi4kjy6l3vyq2d2wfjfixybb934"))))
+    (arguments
+     `(#:skip-build? #t     ; Crate won't build without glium.
+       #:cargo-inputs
+       (("rust-approx" ,rust-approx-0.1)
+        ("rust-mint" ,rust-mint-0.5)
+        ("rust-num-traits" ,rust-num-traits-0.1)
+        ("rust-rand" ,rust-rand-0.4)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-simd" ,rust-simd-0.2))
+       #:cargo-development-inputs
+       (;("rust-glium" ,rust-glium-0.19)
+        ("rust-serde-json" ,rust-serde-json-1))))))
+
+(define-public rust-core-graphics-0.17
+  (package
+    (name "rust-core-graphics")
+    (version "0.17.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "core-graphics" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1acm3vygngnilzlr6klym5ywh7kfzh2xxrh2l41152hwmdl0jyan"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t     ; only for macOS
+       #:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-core-foundation" ,rust-core-foundation-0.6)
+        ("rust-foreign-types" ,rust-foreign-types-0.3)
+        ("rust-libc" ,rust-libc-0.2))))
+    (home-page "https://github.com/servo/core-graphics-rs")
+    (synopsis "Bindings to Core Graphics for macOS")
+    (description
+     "Bindings to Core Graphics for macOS.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-core-video-sys-0.1
+  (package
+    (name "rust-core-video-sys")
+    (version "0.1.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "core-video-sys" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1l59cg88482hkl95ssb30ac9x65hpbdsmxz9s5r6y222jlhnbh4d"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t     ; only for macOS
+       #:cargo-inputs
+       (("rust-cfg-if" ,rust-cfg-if-0.1)
+        ("rust-core-foundation-sys" ,rust-core-foundation-sys-0.6)
+        ("rust-core-graphics" ,rust-core-graphics-0.17)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-metal" ,rust-metal-0.14)
+        ("rust-objc" ,rust-objc-0.2))))
+    (home-page "https://github.com/luozijun/rust-core-video-sys")
+    (synopsis "Bindings to CoreVideo.framework for macOS and iOS")
+    (description "Bindings to CoreVideo.framework for macOS and iOS.")
+    (license license:expat)))
+
+(define-public rust-dav1d-sys-0.3
+  (package
+    (name "rust-dav1d-sys")
+    (version "0.3.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "dav1d-sys" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1jdxhnlxcml6jd67lx78ifzkn1xm18zfk4li7vjdh3fa61i073kx"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bindgen" ,rust-bindgen-0.54)
+        ("rust-metadeps" ,rust-metadeps-1.1))))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("dav1d" ,dav1d)
+       ("clang" ,clang)
+       ("llvm" ,llvm)))
+    (home-page "https://github.com/rust-av/dav1d-rs")
+    (synopsis "FFI bindings to dav1d")
+    (description "This package provides FFI bindings to dav1d.")
+    (license license:expat)))
+
+(define-public rust-euclid-0.20
+  (package
+    (name "rust-euclid")
+    (version "0.20.10")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "euclid" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0c3hbl0kvc53k6nws0v9d46hi0giza1j079sqx2bgl4wfw65nshc"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-mint" ,rust-mint-0.5)
+        ("rust-num-traits" ,rust-num-traits-0.2)
+        ("rust-serde" ,rust-serde-1))
+       #:cargo-development-inputs
+       (("rust-serde-test" ,rust-serde-test-1))))
+    (home-page "https://github.com/servo/euclid")
+    (synopsis "Geometry primitives")
+    (description "Geometry primitives written in Rust.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-gfx-0.18
+  (package
+    (name "rust-gfx")
+    (version "0.18.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "gfx" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0nqmxqi3x4ni0g78g77a6aldrv8cfvzhnpqhxyd2ap4aa3wldph1"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-log" ,rust-log-0.4)
+        ("rust-mint" ,rust-mint-0.5)
+        ("rust-draw-state" ,rust-draw-state-0.8)
+        ("rust-gfx-core" ,rust-gfx-core-0.9))))
+    (home-page "https://github.com/gfx-rs/gfx")
+    (synopsis "High-performance, bindless graphics API")
+    (description
+     "This package provides a high-performance, bindless graphics API.")
+    (license license:asl2.0)))
+
+(define-public rust-gfx-core-0.9
+  (package
+    (name "rust-gfx-core")
+    (version "0.9.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "gfx_core" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0haldr99n12d90vqgvl77n59hywlklhdff85j2aljaz1yapdvyvm"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-log" ,rust-log-0.4)
+        ("rust-mint" ,rust-mint-0.5)
+        ("rust-draw-state" ,rust-draw-state-0.8)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-bitflags" ,rust-bitflags-1))))
+    (home-page "https://github.com/gfx-rs/gfx")
+    (synopsis "Core library of Gfx-rs")
+    (description "This package is a core library of Gfx-rs.")
+    (license license:asl2.0)))
+
+(define-public rust-gfx-device-gl-0.16
+  (package
+    (name "rust-gfx-device-gl")
+    (version "0.16.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "gfx_device_gl" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1g5yg19jvxdmviljyakhd6253bnb2qg7v8iscf48ihc0ldgki70h"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-log" ,rust-log-0.4)
+        ("rust-gfx-gl" ,rust-gfx-gl-0.6)
+        ("rust-gfx-core" ,rust-gfx-core-0.9))))
+    (home-page "https://github.com/gfx-rs/gfx")
+    (synopsis "OpenGL backend for gfx-rs")
+    (description "This package provides the openGL backend for gfx-rs.")
+    (license license:asl2.0)))
+
+(define-public rust-gfx-gl-0.6
+  (package
+    (name "rust-gfx-gl")
+    (version "0.6.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "gfx_gl" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0ppzj4bgjawdqz3fvnscqk8lnmgh95pwzh0v96vwy809cxj83lzj"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-gl-generator" ,rust-gl-generator-0.14))))
+    (home-page "https://github.com/gfx-rs/gfx_gl")
+    (synopsis "OpenGL bindings for gfx, based on gl-rs")
+    (description
+     "This package provides OpenGL bindings for gfx, based on gl-rs.")
+    (license license:asl2.0)))
+
+(define-public rust-gif-0.10
+  (package
+    (name "rust-gif")
+    (version "0.10.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "gif" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1bw174f7civdfgryvc8pvyhicpr96hzdajnda4s3y8iv3ch907a7"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f      ; tests not included in release
+       #:cargo-inputs
+       (("rust-color-quant" ,rust-color-quant-1.0)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-lzw" ,rust-lzw-0.10))
+       #:cargo-development-inputs
+       (("rust-glob" ,rust-glob-0.3))))
+    (home-page "https://github.com/image-rs/image-gif")
+    (synopsis "GIF decoder and encoder")
+    (description "This package provides a GIF decoder and encoder in Rust.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-gl-0.11
+  (package
+    (name "rust-gl")
+    (version "0.11.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "gl" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1wcqpyhck0xriffkmgmldy33lwk2044hb4l02d44vm4fbvicin6p"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-gl-generator" ,rust-gl-generator-0.10))))
+    (home-page "https://github.com/brendanzab/gl-rs/")
+    (synopsis "OpenGL bindings for rust")
+    (description "This package provides OpenGL bindings for rust.")
+    (license license:asl2.0)))
+
+(define-public rust-gl-generator-0.14
+  (package
+    (name "rust-gl-generator")
+    (version "0.14.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "gl-generator" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0k8j1hmfnff312gy7x1aqjzcm8zxid7ij7dlb8prljib7b1dz58s"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-khronos-api" ,rust-khronos-api-3)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-xml-rs" ,rust-xml-rs-0.8))))
+    (home-page "https://github.com/brendanzab/gl-rs/")
+    (synopsis "Code generators for bindings to the Khronos OpenGL APIs")
+    (description
+     "Code generators for creating bindings to the Khronos OpenGL APIs.")
+    (license license:asl2.0)))
+
+(define-public rust-gl-generator-0.13
+  (package
+    (inherit rust-gl-generator-0.14)
+    (name "rust-gl-generator")
+    (version "0.13.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "gl-generator" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0jpqjqpyrl73sf8y20p5rv50qz8glnsvv9infg8h4vi52zgbp66a"))))))
+
+(define-public rust-gl-generator-0.11
+ (package
+   (inherit rust-gl-generator-0.13)
+   (name "rust-gl-generator")
+   (version "0.11.0")
+   (source
+    (origin
+      (method url-fetch)
+      (uri (crate-uri "gl-generator" version))
+      (file-name
+       (string-append name "-" version ".tar.gz"))
+      (sha256
+       (base32
+        "1gdchvay0k0g931b2ki33mkfixcw4radk5b8sqsm29rahxg3v8ir"))))))
+
+(define-public rust-gl-generator-0.10
+  (package
+    (name "rust-gl-generator")
+    (version "0.10.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "gl_generator" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0146yd4i9wbgfrhnkc04w7n7civbanznc0q87skp6v7p7hbszzx0"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-log" ,rust-log-0.4)
+        ("rust-xml-rs" ,rust-xml-rs-0.8)
+        ("rust-khronos-api" ,rust-khronos-api-3))))
+    (home-page "https://github.com/brendanzab/gl-rs/")
+    (synopsis
+     "Code generators for creating bindings to the Khronos OpenGL APIs")
+    (description
+     "Code generators for creating bindings to the Khronos OpenGL APIs.")
+    (license license:asl2.0)))
+
+(define-public rust-gleam-0.6
+  (package
+    (name "rust-gleam")
+    (version "0.6.19")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "gleam" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1iazvk3kvw3620gm6x8hy2x1lz51k04acl78cr3ppryhk5y0vqfa"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-gl-generator" ,rust-gl-generator-0.13))))
+    (home-page "https://github.com/servo/gleam")
+    (synopsis "Generated OpenGL bindings and wrapper for Servo")
+    (description
+     "Generated OpenGL bindings and wrapper for Servo.")
+    (license (list license:asl2.0 license:expat))))
+
+(define-public rust-glutin-0.22
+  (package
+    (name "rust-glutin")
+    (version "0.22.0-alpha5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "glutin" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0lilr4f335m1fq1acmshd51zblfaglw1hha6lhalnc1fw3cg0aag"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-android-glue" ,rust-android-glue-0.2)
+        ("rust-cgl" ,rust-cgl-0.3)
+        ("rust-cocoa" ,rust-cocoa-0.19)
+        ("rust-core-foundation" ,rust-core-foundation-0.6)
+        ("rust-core-graphics" ,rust-core-graphics-0.17)
+        ("rust-glutin-egl-sys" ,rust-glutin-egl-sys-0.1)
+        ("rust-glutin-emscripten-sys" ,rust-glutin-emscripten-sys-0.1)
+        ("rust-glutin-gles2-sys" ,rust-glutin-gles2-sys-0.1)
+        ("rust-glutin-glx-sys" ,rust-glutin-glx-sys-0.1)
+        ("rust-glutin-wgl-sys" ,rust-glutin-wgl-sys-0.1)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-libloading" ,rust-libloading-0.5)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-objc" ,rust-objc-0.2)
+        ("rust-osmesa-sys" ,rust-osmesa-sys-0.1)
+        ("rust-parking-lot" ,rust-parking-lot-0.9)
+        ("rust-wayland-client" ,rust-wayland-client-0.23)
+        ("rust-winapi" ,rust-winapi-0.3)
+        ("rust-winit" ,rust-winit-0.20))))
+    (home-page "https://github.com/tomaka/glutin")
+    (synopsis
+     "Cross-platform OpenGL context provider")
+    (description
+     "Cross-platform OpenGL context provider.")
+    (license license:asl2.0)))
+
+(define-public rust-glutin-0.21
+  (package
+    (inherit rust-glutin-0.22)
+    (name "rust-glutin")
+    (version "0.21.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "glutin" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1ggyyqn7dvz4yx5ygqfvnxwfb78wvdm5y6xqw5my1b4x61dv6wak"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-android-glue" ,rust-android-glue-0.2)
+        ("rust-cgl" ,rust-cgl-0.2)
+        ("rust-cocoa" ,rust-cocoa-0.18)
+        ("rust-core-foundation" ,rust-core-foundation-0.6)
+        ("rust-core-graphics" ,rust-core-graphics-0.17)
+        ("rust-glutin-egl-sys" ,rust-glutin-egl-sys-0.1)
+        ("rust-glutin-emscripten-sys" ,rust-glutin-emscripten-sys-0.1)
+        ("rust-glutin-gles2-sys" ,rust-glutin-gles2-sys-0.1)
+        ("rust-glutin-glx-sys" ,rust-glutin-glx-sys-0.1)
+        ("rust-glutin-wgl-sys" ,rust-glutin-wgl-sys-0.1)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-libloading" ,rust-libloading-0.5)
+        ("rust-objc" ,rust-objc-0.2)
+        ("rust-osmesa-sys" ,rust-osmesa-sys-0.1)
+        ("rust-parking-lot" ,rust-parking-lot-0.9)
+        ("rust-wayland-client" ,rust-wayland-client-0.21)
+        ("rust-winapi" ,rust-winapi-0.3)
+        ("rust-winit" ,rust-winit-0.19))))))
+
+(define-public rust-glutin-egl-sys-0.1
+  (package
+    (name "rust-glutin-egl-sys")
+    (version "0.1.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "glutin-egl-sys" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0k1x1frdp4wp47qkai8zzmgqxzpfcn7780m29qgd92lbnbrxwbkp"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-winapi" ,rust-winapi-0.3)
+        ("rust-gl-generator" ,rust-gl-generator-0.13))))
+    (home-page "https://github.com/rust-windowing/glutin")
+    (synopsis "Egl bindings for glutin")
+    (description "The egl bindings for glutin.")
+    (license license:asl2.0)))
+
+(define-public rust-glutin-emscripten-sys-0.1
+  (package
+    (name "rust-glutin-emscripten-sys")
+    (version "0.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "glutin_emscripten_sys" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1ix0jmm8p5if4qarzdfl5mz9rbq4hhgqarakb3bzwvyz13dkynr4"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/tomaka/glutin")
+    (synopsis "Emscripten bindings for glutin")
+    (description "The emscripten bindings for glutin.")
+    (license license:asl2.0)))
+
+(define-public rust-glutin-gles2-sys-0.1
+  (package
+    (name "rust-glutin-gles2-sys")
+    (version "0.1.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "glutin_gles2_sys" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1pswvl5zyqmqwzjr674yzslj0al2xbqsp2ai9ggb9qbshlq6r6c9"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-objc" ,rust-objc-0.2)
+        ("rust-gl-generator" ,rust-gl-generator-0.11))))
+    (home-page "https://github.com/tomaka/glutin")
+    (synopsis "The gles2 bindings for glutin")
+    (description "The gles2 bindings for glutin.")
+    (license license:asl2.0)))
+
+(define-public rust-glutin-glx-sys-0.1
+  (package
+    (name "rust-glutin-glx-sys")
+    (version "0.1.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "glutin-glx-sys" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0mxs3mil68xqqb49466n5rpwpcllj6fwqjgrcrzzmz26bv5ab40j"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-x11-dl" ,rust-x11-dl-2)
+        ("rust-gl-generator" ,rust-gl-generator-0.11))))
+    (home-page "https://github.com/tomaka/glutin")
+    (synopsis "Glx bindings for glutin")
+    (description "The glx bindings for glutin.")
+    (license license:asl2.0)))
+
+(define-public rust-glutin-wgl-sys-0.1
+  (package
+    (name "rust-glutin-wgl-sys")
+    (version "0.1.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "glutin-wgl-sys" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "08chlfzpj59q36qm212i4k879gvjzha7i90q90fds8pw3v4vn0gq"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-gl-generator" ,rust-gl-generator-0.11))))
+    (home-page "https://github.com/tomaka/glutin")
+    (synopsis "Wgl bindings for glutin")
+    (description "The wgl bindings for glutin.")
+    (license license:asl2.0)))
+
+(define-public rust-image-0.23
+  (package
+    (name "rust-image")
+    (version "0.23.6")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "image" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1d2a80k7pwqshliqi5fw1dwkz7q9zd6pjnwpw8zxc1v4xhzmbc5m"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f      ; Some test images are missing from the release.
+       #:cargo-inputs
+       (("rust-bytemuck" ,rust-bytemuck-1)
+        ("rust-byteorder" ,rust-byteorder-1)
+        ("rust-gif" ,rust-gif-0.10)
+        ("rust-jpeg-decoder" ,rust-jpeg-decoder-0.1)
+        ("rust-num-iter" ,rust-num-iter-0.1)
+        ("rust-num-rational" ,rust-num-rational-0.3)
+        ("rust-num-traits" ,rust-num-traits-0.2)
+        ("rust-png" ,rust-png-0.16)
+        ("rust-scoped-threadpool" ,rust-scoped-threadpool-0.1)
+        ("rust-tiff" ,rust-tiff-0.5))
+       #:cargo-development-inputs
+       (("rust-crc32fast" ,rust-crc32fast-1)
+        ("rust-criterion" ,rust-criterion-0.3)
+        ("rust-glob" ,rust-glob-0.3)
+        ("rust-num-complex" ,rust-num-complex-0.3)
+        ("rust-quickcheck" ,rust-quickcheck-0.9))))
+    (home-page "https://github.com/image-rs/image")
+    (synopsis "Imaging library written in Rust")
+    (description
+     "Imaging library written in Rust.  Provides basic filters and decoders
+for the most common image formats.")
+    (license license:expat)))
+
+(define-public rust-image-0.22
+  (package
+    (inherit rust-image-0.23)
+    (name "rust-image")
+    (version "0.22.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "image" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0jpbd0p1q7xx6395ba9ikz2k4cfp26qczisa8m2v15w3hzd2mv88"))))
+    (arguments
+     `(#:tests? #f      ; Some test images are missing from the release.
+       #:cargo-inputs
+       (("rust-byteorder" ,rust-byteorder-1)
+        ("rust-gif" ,rust-gif-0.10)
+        ("rust-jpeg-decoder" ,rust-jpeg-decoder-0.1)
+        ("rust-num-iter" ,rust-num-iter-0.1)
+        ("rust-num-rational" ,rust-num-rational-0.2)
+        ("rust-num-traits" ,rust-num-traits-0.2)
+        ("rust-png" ,rust-png-0.15)
+        ("rust-scoped-threadpool" ,rust-scoped-threadpool-0.1)
+        ("rust-tiff" ,rust-tiff-0.3))
+       #:cargo-development-inputs
+       (("rust-crc32fast" ,rust-crc32fast-1)
+        ("rust-glob" ,rust-glob-0.3)
+        ("rust-num-complex" ,rust-num-complex-0.2)
+        ("rust-quickcheck" ,rust-quickcheck-0.9))))))
+
+(define-public rust-image-0.21
+  (package
+    (inherit rust-image-0.22)
+    (name "rust-image")
+    (version "0.21.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "image" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1sv534xp8yyn7jj0q6yn2bgng1350f962g81sv8v7c6pgi31wdrm"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-byteorder" ,rust-byteorder-1)
+        ("rust-gif" ,rust-gif-0.10)
+        ("rust-jpeg-decoder" ,rust-jpeg-decoder-0.1)
+        ("rust-lzw" ,rust-lzw-0.10)
+        ("rust-num-iter" ,rust-num-iter-0.1)
+        ("rust-num-rational" ,rust-num-rational-0.2)
+        ("rust-num-traits" ,rust-num-traits-0.2)
+        ("rust-png" ,rust-png-0.14)
+        ("rust-scoped-threadpool" ,rust-scoped-threadpool-0.1)
+        ("rust-tiff" ,rust-tiff-0.2))
+       #:cargo-development-inputs
+       (("rust-glob" ,rust-glob-0.3)
+        ("rust-num-complex" ,rust-num-complex-0.2)
+        ("rust-quickcheck" ,rust-quickcheck-0.6))))))
+
+(define-public rust-image-0.20
+  (package
+    (inherit rust-image-0.21)
+    (name "rust-image")
+    (version "0.20.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "image" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "01058n0jcw25pq5shn7lkvywv8c28xsxb3nwwyb4r16ijm1mnrj4"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-byteorder" ,rust-byteorder-1)
+        ("rust-gif" ,rust-gif-0.10)
+        ("rust-jpeg-decoder" ,rust-jpeg-decoder-0.1)
+        ("rust-lzw" ,rust-lzw-0.10)
+        ("rust-num-iter" ,rust-num-iter-0.1)
+        ("rust-num-rational" ,rust-num-rational-0.2)
+        ("rust-num-traits" ,rust-num-traits-0.2)
+        ("rust-png" ,rust-png-0.12)
+        ("rust-scoped-threadpool" ,rust-scoped-threadpool-0.1)
+        ("rust-tiff" ,rust-tiff-0.2))
+       #:cargo-development-inputs
+       (("rust-glob" ,rust-glob-0.2)
+        ("rust-num-complex" ,rust-num-complex-0.2)
+        ("rust-quickcheck" ,rust-quickcheck-0.6))))))
+
+(define-public rust-jpeg-decoder-0.1
+  (package
+    (name "rust-jpeg-decoder")
+    (version "0.1.18")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "jpeg-decoder" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0lc428qgffh2a1agkq0p26mvf9rjaiswpywy5883j99mqypg0mh2"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f      ; Some test files missing.
+       #:cargo-inputs
+       (("rust-byteorder" ,rust-byteorder-1)
+        ("rust-rayon" ,rust-rayon-1))
+       #:cargo-development-inputs
+       (("rust-criterion" ,rust-criterion-0.3)
+        ("rust-png" ,rust-png-0.14)
+        ("rust-walkdir" ,rust-walkdir-2))))
+    (home-page "https://github.com/image-rs/jpeg-decoder")
+    (synopsis "JPEG decoder")
+    (description "JPEG decoder written in Rust.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-line-drawing-0.7
+  (package
+    (name "rust-line-drawing")
+    (version "0.7.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "line_drawing" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1fcna7hq1g1kkkqy07hydscx5d2zgb6gskz3vnsvsif8h8ysvisw"))))
+    (build-system cargo-build-system)
+    (arguments
+     ;; This version does not specify any versions on dependants.
+     `(#:tests? #f      ; Cannot compile line_drawing for the test suite.
+       #:cargo-inputs
+       (("rust-num-traits" ,rust-num-traits-0.2))
+       #:cargo-development-inputs
+       (("rust-bresenham" ,rust-bresenham-0.1)
+        ("rust-image" ,rust-image-0.22) ; 0.17?
+        ("rust-rand" ,rust-rand-0.6))))
+    (home-page "https://github.com/expenses/line_drawing")
+    (synopsis "Collection of line-drawing algorithms")
+    (description
+     "This package provides a collection of line-drawing algorithms for use in
+graphics and video games.")
+    (license license:expat)))
+
+(define-public rust-lyon-geom-0.14
+  (package
+    (name "rust-lyon-geom")
+    (version "0.14.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "lyon_geom" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "178z4cqqmyw0rsabbgx9phkjxjzcnq0604062lqjlq87k063216a"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-num-traits" ,rust-num-traits-0.2)
+        ("rust-euclid" ,rust-euclid-0.20)
+        ("rust-arrayvec" ,rust-arrayvec-0.4)
+        ("rust-serde" ,rust-serde-1))))
+    (home-page "https://github.com/nical/lyon")
+    (synopsis "2D graphics rendering on the GPU using tessellation")
+    (description
+     "This package provides 2D graphics rendering on the GPU using tessellation.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-lyon-path-0.14
+  (package
+    (name "rust-lyon-path")
+    (version "0.14.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "lyon_path" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0qk8x46w0sf6j04l6gvhgn9kr4ymcqkmkh67w8wqahm54jn5gjqb"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-lyon-geom" ,rust-lyon-geom-0.14)
+        ("rust-serde" ,rust-serde-1))))
+    (home-page "https://github.com/nical/lyon")
+    (synopsis "Types and utilities to store, build and iterate over 2D paths")
+    (description
+     "Types and utilities to store, build and iterate over 2D paths.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-osmesa-sys-0.1
+  (package
+    (name "rust-osmesa-sys")
+    (version "0.1.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "osmesa-sys" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0fq1q1zcgfb0qydrg9r2738jlwc4hqxgb9vj11z72bjxx7kfrkw8"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-shared-library" ,rust-shared-library-0.1))))
+    (home-page "https://crates.io/crates/osmesa-sys")
+    (synopsis "OSMesa library bindings for Rust")
+    (description "This package provides OSMesa library bindings for Rust.")
+    (license license:cc0)))
+
+(define-public rust-piston-0.49
+  (package
+    (name "rust-piston")
+    (version "0.49.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "piston" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1y0rbw92mzagqmwk79wv9axq0m7aid0s0d5cppyzh33wrxhdl3xj"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-pistoncore-input" ,rust-pistoncore-input-0.28)
+        ("rust-pistoncore-window" ,rust-pistoncore-window-0.44)
+        ("rust-pistoncore-event-loop" ,rust-pistoncore-event-loop-0.49))))
+    (home-page "https://github.com/PistonDevelopers/piston")
+    (synopsis "Piston game engine core libraries")
+    (description
+     "The Piston game engine core libraries.")
+    (license license:expat)))
+
+(define-public rust-piston-float-1.0
+  (package
+    (name "rust-piston-float")
+    (version "1.0.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "piston-float" version))
+        (file-name
+          (string-append name "-" version ".tar.gz"))
+        (sha256
+          (base32
+            "0r35aasycms79hf2vf1ap40kkp8ywgl4hmfkf762dq8jwd3vw07r"))))
+    (build-system cargo-build-system)
+    (arguments `(#:skip-build? #t))
+    (home-page
+      "https://github.com/pistondevelopers/float")
+    (synopsis
+      "Traits for generic floats in game development")
+    (description
+      "Traits for generic floats in game development")
+    (license license:expat)))
+
+(define-public rust-piston-gfx-texture-0.40
+  (package
+    (name "rust-piston-gfx-texture")
+    (version "0.40.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "piston-gfx_texture" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1nr5awdgk3njfvfanszrv4gxz93f6skid1c8yijswccygripchqz"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-gfx" ,rust-gfx-0.18)
+        ("rust-image" ,rust-image-0.22)
+        ("rust-piston-texture" ,rust-piston-texture-0.8)
+        ("rust-gfx-core" ,rust-gfx-core-0.9))))
+    (home-page "https://github.com/pistondevelopers/gfx_texture")
+    (synopsis
+      "Gfx texture representation that works nicely with Piston libraries")
+    (description "This package provides a Gfx texture representation that works
+nicely with Piston libraries.")
+    (license license:expat)))
+
+(define-public rust-piston-graphics-api-version-0.2
+  (package
+    (name "rust-piston-graphics-api-version")
+    (version "0.2.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "piston-graphics_api_version" version))
+        (file-name
+          (string-append name "-" version ".tar.gz"))
+        (sha256
+          (base32
+            "1b5p6s45jqv057lpbxkiq3yrdjjhvcynmi2vjf8292rf0yh4hky5"))))
+    (build-system cargo-build-system)
+    (arguments `(#:skip-build? #t))
+    (home-page
+      "https://github.com/PistonDevelopers/graphics_api_version")
+    (synopsis
+      "A library for storing graphics API versions")
+    (description
+      "This package provides a library for storing graphics API versions")
+    (license license:expat)))
+
+(define-public rust-piston-shaders-graphics2d-0.3
+  (package
+    (name "rust-piston-shaders-graphics2d")
+    (version "0.3.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "piston-shaders_graphics2d" version))
+        (file-name
+          (string-append name "-" version ".tar.gz"))
+        (sha256
+          (base32
+            "1dhh9bv4q19gdnj9d1nqq0yrvzs6gcn0c5j1p1f3xzyzq7d1gg4p"))))
+    (build-system cargo-build-system)
+    (arguments `(#:skip-build? #t))
+    (home-page
+      "https://github.com/PistonDevelopers/shaders")
+    (synopsis "Shaders for 2D graphics in Rust")
+    (description "Shaders for 2D graphics in Rust")
+    (license license:expat)))
+
+(define-public rust-piston-texture-0.8
+  (package
+    (name "rust-piston-texture")
+    (version "0.8.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "piston-texture" version))
+        (file-name
+          (string-append name "-" version ".tar.gz"))
+        (sha256
+          (base32
+            "1pcv5my49b8xzqcb87wqh2ndgvr4s9ipys96s0h9j2plxrj3bjb2"))))
+    (build-system cargo-build-system)
+    (arguments `(#:skip-build? #t))
+    (home-page
+      "https://github.com/pistondevelopers/texture")
+    (synopsis "A generic library for textures")
+    (description
+      "This package provides a generic library for textures")
+    (license license:expat)))
+
+(define-public rust-piston-viewport-1.0
+  (package
+    (name "rust-piston-viewport")
+    (version "1.0.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "piston-viewport" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "16378hcy41b7x3zj2z4har0wq6fl4r62kf9p106jjl8hg2dv3aq1"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-piston-float" ,rust-piston-float-1.0))))
+    (home-page "https://github.com/PistonDevelopers/viewport")
+    (synopsis "Library for storing viewport information")
+    (description
+     "This package provides a library for storing viewport information.")
+    (license license:expat)))
+
+(define-public rust-piston-window-0.105
+  (package
+    (name "rust-piston-window")
+    (version "0.105.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "piston_window" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "05n2905gkp5ck25kbq95ia6pj1xz63dpp247jz3xcw1d41xpvi95"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-gfx-device-gl" ,rust-gfx-device-gl-0.16)
+        ("rust-gfx" ,rust-gfx-0.18)
+        ("rust-piston2d-graphics" ,rust-piston2d-graphics-0.35)
+        ("rust-piston" ,rust-piston-0.49)
+        ("rust-shader-version" ,rust-shader-version-0.6)
+        ("rust-pistoncore-glutin-window" ,rust-pistoncore-glutin-window-0.63)
+        ("rust-piston2d-gfx-graphics" ,rust-piston2d-gfx-graphics-0.66)
+        ("rust-piston-texture" ,rust-piston-texture-0.8))))
+    (home-page "https://github.com/pistondevelopers/piston_window")
+    (synopsis "Official Piston window wrapper for the Piston game engine")
+    (description
+     "The official Piston window wrapper for the Piston game engine.")
+    (license license:expat)))
+
+(define-public rust-piston2d-gfx-graphics-0.66
+  (package
+    (name "rust-piston2d-gfx-graphics")
+    (version "0.66.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "piston2d-gfx_graphics" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1pmlkf5rl6pr0c1lqm0059xwj9pwlws7gaq9w6r9d916di6fzki1"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-gfx" ,rust-gfx-0.18)
+        ("rust-piston-shaders-graphics2d" ,rust-piston-shaders-graphics2d-0.3)
+        ("rust-piston-gfx-texture" ,rust-piston-gfx-texture-0.40)
+        ("rust-shader-version" ,rust-shader-version-0.6)
+        ("rust-draw-state" ,rust-draw-state-0.8))))
+    (home-page "https://github.com/PistonDevelopers/gfx_graphics")
+    (synopsis "Gfx 2D back-end for the Piston game engine")
+    (description
+     "This package provides a Gfx 2D back-end for the Piston game engine.")
+    (license license:expat)))
+
+(define-public rust-piston2d-graphics-0.35
+  (package
+    (name "rust-piston2d-graphics")
+    (version "0.35.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "piston2d-graphics" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1dx2fanxc2pj76hc5l72x0fh4qg9gchjlr8rmbhdk6jpggcmq56g"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-interpolation" ,rust-interpolation-0.2)
+        ("rust-rusttype" ,rust-rusttype-0.7)
+        ("rust-piston-texture" ,rust-piston-texture-0.8)
+        ("rust-piston-viewport" ,rust-piston-viewport-1.0)
+        ("rust-read-color" ,rust-read-color-1.0)
+        ("rust-vecmath" ,rust-vecmath-1.0)
+        ("rust-fnv" ,rust-fnv-1))))
+    (home-page "https://github.com/pistondevelopers/graphics")
+    (synopsis "Library for 2D graphics that works with multiple back-ends")
+    (description "This package provides a library for 2D graphics that works
+with multiple back-ends.")
+    (license license:expat)))
+
+(define-public rust-pistoncore-event-loop-0.49
+  (package
+    (name "rust-pistoncore-event-loop")
+    (version "0.49.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "pistoncore-event_loop" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1h9ij9vx42xg39198yxdlpk842pli5jqm2kwswiv3bqqcji0fwsm"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-pistoncore-input" ,rust-pistoncore-input-0.28)
+        ("rust-pistoncore-window" ,rust-pistoncore-window-0.44))))
+    (home-page "https://github.com/PistonDevelopers/piston")
+    (synopsis "Piston event loop for games and interactive applications")
+    (description "This package provides a Piston event loop for games and
+interactive applications.")
+    (license license:expat)))
+
+(define-public rust-pistoncore-glutin-window-0.63
+  (package
+    (name "rust-pistoncore-glutin-window")
+    (version "0.63.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "pistoncore-glutin_window" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0dhbyxarv5i742d400bmqdqq3f8c25kcgcg0xavrc18dc913rixc"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-gl" ,rust-gl-0.11)
+        ("rust-glutin" ,rust-glutin-0.21)
+        ("rust-pistoncore-input" ,rust-pistoncore-input-0.28)
+        ("rust-pistoncore-window" ,rust-pistoncore-window-0.44)
+        ("rust-shader-version" ,rust-shader-version-0.6))))
+    (home-page "https://github.com/pistondevelopers/glutin_window")
+    (synopsis "Piston window back-end using the Glutin library")
+    (description
+     "This package provides a Piston window back-end using the Glutin library.")
+    (license license:expat)))
+
+(define-public rust-pistoncore-input-0.28
+  (package
+    (name "rust-pistoncore-input")
+    (version "0.28.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "pistoncore-input" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1rrcz9px098m3nx98gvrvzirfdp3vg03cblfkcrp4wnvswc0hwq5"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-piston-viewport" ,rust-piston-viewport-1.0)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-derive" ,rust-serde-derive-1)
+        ("rust-bitflags" ,rust-bitflags-1))))
+    (home-page "https://github.com/PistonDevelopers/piston")
+    (synopsis "Structure for user input")
+    (description
+     "This package provides a structure for user input.")
+    (license license:expat)))
+
+(define-public rust-pistoncore-window-0.44
+  (package
+    (name "rust-pistoncore-window")
+    (version "0.44.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "pistoncore-window" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "18qy3nnpb9jczvkiyzzznamck0pzgiyi6073jrkldnci6b3in10q"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-piston-graphics-api-version"
+         ,rust-piston-graphics-api-version-0.2)
+        ("rust-pistoncore-input" ,rust-pistoncore-input-0.28))))
+    (home-page "https://github.com/PistonDevelopers/piston")
+    (synopsis "Library for window abstraction")
+    (description
+     "This package provides a library for window abstraction.")
+    (license license:expat)))
+
+(define-public rust-png-0.16
+  (package
+    (name "rust-png")
+    (version "0.16.6")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "png" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1393s3v3kg4bxnn86d7yn2vyz8xj6g64ighdfkc3vzpsg5sbyl61"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-crc32fast" ,rust-crc32fast-1)
+        ("rust-deflate" ,rust-deflate-0.8)
+        ("rust-miniz-oxide" ,rust-miniz-oxide-0.3))
+       #:cargo-development-inputs
+       (("rust-criterion" ,rust-criterion-0.3)
+        ("rust-getopts" ,rust-getopts-0.2)
+        ;; TODO: glium has many cyclic dependencies with other packages
+        ;; ("rust-glium" ,rust-glium-0.24)
+        ("rust-glob" ,rust-glob-0.3)
+        ("rust-rand" ,rust-rand-0.7)
+        ("rust-term" ,rust-term-0.6))))
+    (home-page "https://github.com/image-rs/image-png.git")
+    (synopsis "PNG decoding and encoding library in pure Rust")
+    (description
+     "PNG decoding and encoding library in pure Rust.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-png-0.15
+  (package
+    (inherit rust-png-0.16)
+    (name "rust-png")
+    (version "0.15.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "png" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "10x2qkhyfnm3si5vgx77r2ik811gaap7ahi825wfxgsb0lirm1gg"))))
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-crc32fast" ,rust-crc32fast-1)
+        ("rust-deflate" ,rust-deflate-0.7)
+        ("rust-inflate" ,rust-inflate-0.4))
+       #:cargo-development-inputs
+       (("rust-getopts" ,rust-getopts-0.2)
+        ;; TODO: glium has many cyclic dependencies with other packages
+        ;;("rust-glium" ,rust-glium-0.24)
+        ("rust-glob" ,rust-glob-0.3)
+        ("rust-rand" ,rust-rand-0.7)
+        ("rust-term" ,rust-term-0.6))))))
+
+(define-public rust-png-0.14
+  (package
+    (inherit rust-png-0.15)
+    (name "rust-png")
+    (version "0.14.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "png" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0nf3a8r9p9zrj4x30b48f7yv18dz9xkmrq9b3lnzmpnhzn0z9nk3"))))
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-deflate" ,rust-deflate-0.7)
+        ("rust-inflate" ,rust-inflate-0.4)
+        ("rust-num-iter" ,rust-num-iter-0.1))
+       #:cargo-development-inputs
+       (("rust-getopts" ,rust-getopts-0.2)
+        ;; TODO: glium has many cyclic dependencies with other packages
+        ;; ("rust-glium" ,rust-glium-0.22)
+        ("rust-glob" ,rust-glob-0.2)
+        ("rust-rand" ,rust-rand-0.5)
+        ("rust-term" ,rust-term-0.4))))))
+
+(define-public rust-png-0.12
+  (package
+    (inherit rust-png-0.14)
+    (name "rust-png")
+    (version "0.12.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "png" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0nqlc8lqf8ncv3kj0gzlxwli61dbbxcjlrp176kvilw4sl09cjzm"))))
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-deflate" ,rust-deflate-0.7)
+        ("rust-inflate" ,rust-inflate-0.4)
+        ("rust-num-iter" ,rust-num-iter-0.1))
+       #:cargo-development-inputs
+       (("rust-getopts" ,rust-getopts-0.2)
+        ;; TODO: gluum has many cyclic dependencies with other packages
+        ;; ("rust-glium" ,rust-glium-0.21)
+        ("rust-glob" ,rust-glob-0.2)
+        ("rust-term" ,rust-term-0.4))))))
+
+(define-public rust-raw-window-handle-0.3
+  (package
+    (name "rust-raw-window-handle")
+    (version "0.3.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "raw-window-handle" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "04c2wir7qq3g2b143yav52a1g5ack8ffqx2bpmrn9bc0dix1li0a"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-libc" ,rust-libc-0.2))))
+    (home-page "https://github.com/rust-windowing/raw-window-handle")
+    (synopsis "Interoperability library for Rust Windowing applications")
+    (description
+     "Interoperability library for Rust Windowing applications.")
+    (license license:expat)))
+
+(define-public rust-resize-0.3
+  (package
+    (name "rust-resize")
+    (version "0.3.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "resize" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1ai83laz5yvg4r7z9q8d1m0vq0fqj2ycyprw5fxzxyzaj3im7rmr"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-development-inputs
+       (("rust-png" ,rust-png-0.15))))
+    (home-page "https://github.com/PistonDevelopers/resize")
+    (synopsis "Simple image resampling library in pure Rust")
+    (description
+     "This package provides a simple image resampling library in pure Rust.")
+    (license license:expat)))
+
+(define-public rust-rgb-0.8
+  (package
+    (name "rust-rgb")
+    (version "0.8.20")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "rgb" version))
+       (file-name (string-append name "-" version ".crate"))
+       (sha256
+        (base32
+         "1620mn5dp1rr9fpvd9wbr3b8l2g4zrij8zjri1x34cg1bas59vwh"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bytemuck" ,rust-bytemuck-1)
+        ("rust-serde" ,rust-serde-1))
+       #:cargo-development-inputs
+       (("rust-serde-json" ,rust-serde-json-1))))
+    (home-page "https://lib.rs/crates/rgb")
+    (synopsis "Struct for sharing pixels between crates")
+    (description
+     "This package provides @code{struct RGB/RGBA/etc.} for sharing pixels
+between crates + convenience methods for color manipulation.  It allows no-copy
+high-level interoperability.  It also adds common convenience methods and
+implements standard Rust traits to make `RGB`/`RGBA` pixels and slices
+first-class Rust objects.")
+    (license license:expat)))
+
+(define-public rust-smithay-client-toolkit-0.6
+  (package
+    (name "rust-smithay-client-toolkit")
+    (version "0.6.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "smithay-client-toolkit" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0m20687zs36l6xak2s5k9s7qp78ly8xfjpbmrhacp7whfn4hx5lk"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-andrew" ,rust-andrew-0.2)
+        ("rust-bitflags" ,rust-bitflags-1)
+        ("rust-dlib" ,rust-dlib-0.4)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-memmap" ,rust-memmap-0.7)
+        ("rust-nix" ,rust-nix-0.14)
+        ("rust-wayland-client" ,rust-wayland-client-0.23)
+        ("rust-wayland-protocols" ,rust-wayland-protocols-0.23))
+       #:cargo-development-inputs
+       (("rust-byteorder" ,rust-byteorder-1)
+        ("rust-image" ,rust-image-0.21)
+        ("rust-wayland-client" ,rust-wayland-client-0.23))))
+    (home-page "https://github.com/smithay/client-toolkit")
+    (synopsis "Toolkit for making client wayland applications")
+    (description
+     "Toolkit for making client wayland applications.")
+    (license license:expat)))
+
+(define-public rust-smithay-client-toolkit-0.4
+  (package
+    (inherit rust-smithay-client-toolkit-0.6)
+    (name "rust-smithay-client-toolkit")
+    (version "0.4.6")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "smithay-client-toolkit" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1yj8yzd0lhqpsgq0x4iikl9a02q2hnkky81brk938alv0ibqrjrc"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-andrew" ,rust-andrew-0.2)
+        ("rust-bitflags" ,rust-bitflags-1)
+        ("rust-dlib" ,rust-dlib-0.4)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-memmap" ,rust-memmap-0.7)
+        ("rust-nix" ,rust-nix-0.14)
+        ("rust-wayland-client" ,rust-wayland-client-0.21)
+        ("rust-wayland-commons" ,rust-wayland-commons-0.21)
+        ("rust-wayland-protocols" ,rust-wayland-protocols-0.21))
+       #:cargo-development-inputs
+       (("rust-byteorder" ,rust-byteorder-1)
+        ("rust-image" ,rust-image-0.20)
+        ("rust-wayland-client" ,rust-wayland-client-0.21))))))
+
+(define-public rust-smithay-clipboard-0.3
+  (package
+    (name "rust-smithay-clipboard")
+    (version "0.3.6")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "smithay-clipboard" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1h7qhcx44cgwncgpn5llky0c56vgsg9mqrkybb2z37vsxxia4rwn"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-nix" ,rust-nix-0.14)
+        ("rust-smithay-client-toolkit" ,rust-smithay-client-toolkit-0.6))
+       #:cargo-development-inputs
+       (("rust-andrew" ,rust-andrew-0.2))))
+    (inputs
+     `(("wayland" ,wayland)))
+    (home-page "https://github.com/smithay/smithay-clipboard")
+    (synopsis
+     "Provides access to the wayland clipboard for client applications")
+    (description
+     "This package provides access to the wayland clipboard for client applications.")
+    (license license:expat)))
+
+(define-public rust-tiff-0.5
+  (package
+    (name "rust-tiff")
+    (version "0.5.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "tiff" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0bzzvxcx21pzryxgd7x7a1himiqs2y4k55754wzlr56sqj3qlfrz"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f      ; not all test files included
+       #:cargo-inputs
+       (("rust-byteorder" ,rust-byteorder-1)
+        ("rust-lzw" ,rust-lzw-0.10)
+        ("rust-miniz-oxide" ,rust-miniz-oxide-0.3))))
+    (home-page "https://github.com/image-rs/image-tiff")
+    (synopsis
+     "TIFF decoding and encoding library in pure Rust")
+    (description
+     "TIFF decoding and encoding library in pure Rust.")
+    (license license:expat)))
+
+(define-public rust-tiff-0.3
+  (package
+    (inherit rust-tiff-0.5)
+    (name "rust-tiff")
+    (version "0.3.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tiff" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0zgmbny2f8rssqmjdfvnysy0vqwcvlwl6q9f5yixhavlqk7w5dyp"))))
+    (arguments
+     `(#:tests? #f      ; Tests images not included with release.
+       #:cargo-inputs
+       (("rust-byteorder" ,rust-byteorder-1)
+        ("rust-lzw" ,rust-lzw-0.10)
+        ("rust-num-derive" ,rust-num-derive-0.2)
+        ("rust-num-traits" ,rust-num-traits-0.2))
+       #:cargo-development-inputs
+       (("rust-tempfile" ,rust-tempfile-3))))))
+
+(define-public rust-tiff-0.2
+  (package
+    (inherit rust-tiff-0.3)
+    (name "rust-tiff")
+    (version "0.2.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tiff" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1kn7psgpacns337vvqh272rkqwnakmjd51rc7ygwnc03ibr38j0y"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-byteorder" ,rust-byteorder-1)
+        ("rust-lzw" ,rust-lzw-0.10)
+        ("rust-num-derive" ,rust-num-derive-0.2)
+        ("rust-num-traits" ,rust-num-traits-0.2))))))
+
+(define-public rust-wayland-client-0.23
+  (package
+    (name "rust-wayland-client")
+    (version "0.23.6")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "wayland-client" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1nmw2kz70llc5mxwzg6bglnqy0qnyr9224zjmq9czazgw3mq045g"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-calloop" ,rust-calloop-0.4)
+        ("rust-downcast-rs" ,rust-downcast-rs-1.1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-mio" ,rust-mio-0.6)
+        ("rust-nix" ,rust-nix-0.14)
+        ("rust-wayland-commons" ,rust-wayland-commons-0.23)
+        ("rust-wayland-sys" ,rust-wayland-sys-0.23)
+        ("rust-wayland-scanner" ,rust-wayland-scanner-0.23))
+       #:cargo-development-inputs
+       (("rust-byteorder" ,rust-byteorder-1)
+        ("rust-tempfile" ,rust-tempfile-3))))
+    (home-page "https://github.com/smithay/wayland-rs")
+    (synopsis
+     "Rust bindings to the standard C implementation of the wayland protocol")
+    (description
+     "This package provides Rust bindings to the standard C implementation of
+the wayland protocol, client side.")
+    (license license:expat)))
+
+(define-public rust-wayland-client-0.21
+  (package
+    (inherit rust-wayland-client-0.23)
+    (name "rust-wayland-client")
+    (version "0.21.13")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "wayland-client" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "04r7dy074hhdalsi1day482wvmczr40hg7qvrnzkgxpakrgkx5j9"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-calloop" ,rust-calloop-0.4)
+        ("rust-downcast-rs" ,rust-downcast-rs-1.1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-mio" ,rust-mio-0.6)
+        ("rust-nix" ,rust-nix-0.14)
+        ("rust-wayland-commons" ,rust-wayland-commons-0.21)
+        ("rust-wayland-sys" ,rust-wayland-sys-0.21)
+        ("rust-wayland-scanner" ,rust-wayland-scanner-0.21))
+       #:cargo-development-inputs
+       (("rust-byteorder" ,rust-byteorder-1)
+        ("rust-tempfile" ,rust-tempfile-3))))))
+
+(define-public rust-wayland-commons-0.23
+  (package
+    (name "rust-wayland-commons")
+    (version "0.23.6")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "wayland-commons" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1nyvcs6xxxzqgh0wvc7z0fgi89bf3h9p4qrbf77bnfbwlb8v0rmv"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-nix" ,rust-nix-0.14)
+        ("rust-wayland-sys" ,rust-wayland-sys-0.23))))
+    (home-page "https://github.com/smithay/wayland-rs")
+    (synopsis
+     "Common types and structures used by wayland-client and wayland-server")
+    (description
+     "Common types and structures used by wayland-client and wayland-server.")
+    (license license:expat)))
+
+(define-public rust-wayland-commons-0.21
+  (package
+    (inherit rust-wayland-commons-0.23)
+    (name "rust-wayland-commons")
+    (version "0.21.13")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "wayland-commons" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1v1jpcsnn6cwwy5ii5pdl58i6b9slmi8mn4my4fpwrlbfsb8ih20"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-nix" ,rust-nix-0.14)
+        ("rust-wayland-sys" ,rust-wayland-sys-0.21))))))
+
+(define-public rust-wayland-protocols-0.23
+  (package
+    (name "rust-wayland-protocols")
+    (version "0.23.6")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "wayland-protocols" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1ygwbzqlnks5xzafka3c8ag6k92g2h6ygj2xsmvjfx2n6rj8dhkc"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-wayland-client" ,rust-wayland-client-0.23)
+        ("rust-wayland-commons" ,rust-wayland-commons-0.23)
+        ("rust-wayland-server" ,rust-wayland-server-0.23)
+        ("rust-wayland-scanner" ,rust-wayland-scanner-0.23))))
+    (home-page "https://github.com/smithay/wayland-rs")
+    (synopsis
+     "Generated API for the officials wayland protocol extensions")
+    (description
+     "Generated API for the officials wayland protocol extensions.")
+    (license license:expat)))
+
+(define-public rust-wayland-protocols-0.21
+  (package
+    (inherit rust-wayland-protocols-0.23)
+    (name "rust-wayland-protocols")
+    (version "0.21.13")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "wayland-protocols" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0i91yh3nxk9llhly2ly3nvlfx0lbpvyq919cgmnyx3j25bmf5zaa"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-wayland-client" ,rust-wayland-client-0.21)
+        ("rust-wayland-commons" ,rust-wayland-commons-0.21)
+        ("rust-wayland-server" ,rust-wayland-server-0.21)
+        ("rust-wayland-sys" ,rust-wayland-sys-0.21)
+        ("rust-wayland-scanner" ,rust-wayland-scanner-0.21))))))
+
+(define-public rust-wayland-scanner-0.23
+  (package
+    (name "rust-wayland-scanner")
+    (version "0.23.6")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "wayland-scanner" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0g8wcphykjrcpslznyi3qccx1pckw97rckq5b295nfbg6r3j5c4k"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-proc-macro2" ,rust-proc-macro2-0.4)
+        ("rust-quote" ,rust-quote-0.6)
+        ("rust-xml-rs" ,rust-xml-rs-0.8))))
+    (home-page "https://github.com/smithay/wayland-rs")
+    (synopsis "Generate Rust APIs from XML Wayland protocol files")
+    (description
+     "Wayland Scanner generates Rust APIs from XML Wayland protocol files.
+It is intended for use with wayland-sys.  You should only need this crate if
+you are working on custom Wayland protocol extensions.
+Look at the wayland-client crate for usable bindings.")
+    (license license:expat)))
+
+(define-public rust-wayland-scanner-0.21
+  (package
+    (inherit rust-wayland-scanner-0.23)
+    (name "rust-wayland-scanner")
+    (version "0.21.13")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "wayland-scanner" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "17mp49v7w0p0x5ry628lj2llljnwkr9aj9g4bqqhfibid32jhf5z"))))))
+
+(define-public rust-wayland-server-0.23
+  (package
+    (name "rust-wayland-server")
+    (version "0.23.6")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "wayland-server" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1ccsalq6gnf07klnbjx2dxcbibhw03rqsgi578p913s3zsjlcg8a"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-calloop" ,rust-calloop-0.4)
+        ("rust-downcast-rs" ,rust-downcast-rs-1.1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-mio" ,rust-mio-0.6)
+        ("rust-nix" ,rust-nix-0.14)
+        ("rust-wayland-commons" ,rust-wayland-commons-0.23)
+        ("rust-wayland-sys" ,rust-wayland-sys-0.23)
+        ("rust-wayland-scanner" ,rust-wayland-scanner-0.23))))
+    (home-page "https://github.com/smithay/wayland-rs")
+    (synopsis
+     "Bindings to the standard C implementation of the wayland protocol")
+    (description
+     "This package provides Rust bindings to the standard C implementation of
+the wayland protocol, server side.")
+    (license license:expat)))
+
+(define-public rust-wayland-server-0.21
+  (package
+    (inherit rust-wayland-server-0.23)
+    (name "rust-wayland-server")
+    (version "0.21.13")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "wayland-server" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0ayn4wlrpg0fw04prri9awpkjvbzjil0d3l3a8zs9pdbnspvw6ah"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-calloop" ,rust-calloop-0.4)
+        ("rust-downcast-rs" ,rust-downcast-rs-1.1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-mio" ,rust-mio-0.6)
+        ("rust-nix" ,rust-nix-0.14)
+        ("rust-wayland-commons" ,rust-wayland-commons-0.21)
+        ("rust-wayland-sys" ,rust-wayland-sys-0.21)
+        ("rust-wayland-scanner" ,rust-wayland-scanner-0.21))))))
+
+(define-public rust-wayland-sys-0.23
+  (package
+    (name "rust-wayland-sys")
+    (version "0.23.6")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "wayland-sys" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1x2qafvj8hd2x5qfaan2dfpw9amg0f5g9sqrkdy7qvbddsl8jknr"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-dlib" ,rust-dlib-0.4)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-libc" ,rust-libc-0.2))))
+    (home-page "https://github.com/smithay/wayland-rs")
+    (synopsis "FFI bindings to the various libwayland-*.so libraries")
+    (description
+     "FFI bindings to the various libwayland-*.so libraries.
+You should only need this crate if you are working on custom wayland
+protocol extensions.  Look at the crate wayland-client for usable bindings.")
+    (license license:expat)))
+
+(define-public rust-wayland-sys-0.21
+  (package
+    (inherit rust-wayland-sys-0.23)
+    (name "rust-wayland-sys")
+    (version "0.21.13")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "wayland-sys" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0a0ndgkg98pvmkv44yya4f7mxzjaxylknqh64bpa05w0azyv02jj"))))))
+
+(define-public rust-winit-0.20
+  (package
+    (name "rust-winit")
+    (version "0.20.0-alpha6")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "winit" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1g5cchl97zcg525j6jdr77yby8cmhwv1qqwcd3sf4l4zl263195z"))
+       (patches
+         (list
+           (origin
+             (method url-fetch)
+             (uri "https://github.com/rust-windowing/winit/commit/d1c6506865c7bddbb5fb4d80a613e43ddc1370b5.patch")
+             (file-name (string-append name "-fix-bindings.patch"))
+             (sha256
+              (base32
+               "03q4bvdq86kii53d0vsywv08g8vqirf9h1lz2cl6rcc7gjfynpds")))))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-android-glue" ,rust-android-glue-0.2)
+        ("rust-bitflags" ,rust-bitflags-1)
+        ("rust-calloop" ,rust-calloop-0.4)
+        ("rust-cocoa" ,rust-cocoa-0.19)
+        ("rust-core-foundation" ,rust-core-foundation-0.6)
+        ("rust-core-graphics" ,rust-core-graphics-0.17)
+        ("rust-core-video-sys" ,rust-core-video-sys-0.1)
+        ("rust-dispatch" ,rust-dispatch-0.1)
+        ("rust-instant" ,rust-instant-0.1)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-objc" ,rust-objc-0.2)
+        ("rust-parking-lot" ,rust-parking-lot-0.10)
+        ("rust-percent-encoding" ,rust-percent-encoding-2)
+        ("rust-raw-window-handle" ,rust-raw-window-handle-0.3)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-smithay-client-toolkit" ,rust-smithay-client-toolkit-0.6)
+        ("rust-stdweb" ,rust-stdweb-0.4)
+        ("rust-wasm-bindgen" ,rust-wasm-bindgen-0.2)
+        ("rust-wayland-client" ,rust-wayland-client-0.23)
+        ("rust-web-sys" ,rust-web-sys-0.3)
+        ("rust-winapi" ,rust-winapi-0.3)
+        ("rust-x11-dl" ,rust-x11-dl-2))
+       #:cargo-development-inputs
+       (("rust-console-log" ,rust-console-log-0.1)
+        ("rust-env-logger" ,rust-env-logger-0.5)
+        ("rust-image" ,rust-image-0.21))))
+    (home-page "https://github.com/rust-windowing/winit")
+    (synopsis
+     "Cross-platform window creation library")
+    (description
+     "Cross-platform window creation library.")
+    (license license:asl2.0)))
+
+(define-public rust-winit-0.19
+  (package
+    (inherit rust-winit-0.20)
+    (name "rust-winit")
+    (version "0.19.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "winit" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1a4lnfyvlc4jabhs30wlmkgdjv7qhbplmyp833kl7ykjni5yp5hy"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-android-glue" ,rust-android-glue-0.2)
+        ("rust-backtrace" ,rust-backtrace-0.3)
+        ("rust-bitflags" ,rust-bitflags-1)
+        ("rust-cocoa" ,rust-cocoa-0.18)
+        ("rust-core-foundation" ,rust-core-foundation-0.6)
+        ("rust-core-graphics" ,rust-core-graphics-0.17)
+        ("rust-image" ,rust-image-0.21)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-objc" ,rust-objc-0.2)
+        ("rust-parking-lot" ,rust-parking-lot-0.9)
+        ("rust-percent-encoding" ,rust-percent-encoding-2)
+        ("rust-raw-window-handle" ,rust-raw-window-handle-0.3)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-smithay-client-toolkit" ,rust-smithay-client-toolkit-0.4)
+        ("rust-wayland-client" ,rust-wayland-client-0.21)
+        ("rust-winapi" ,rust-winapi-0.3)
+        ("rust-x11-dl" ,rust-x11-dl-2))))))
+
+(define-public rust-x11-2
+  (package
+    (name "rust-x11")
+    (version "2.18.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "x11" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0wz7l6dlbraa9zalh9i45v9wibvkir9m2m1sg0jnzcbcaj9d1v3p"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-libc" ,rust-libc-0.2)
+        ("rust-pkg-config" ,rust-pkg-config-0.3))))
+    (home-page "https://github.com/erlepereira/x11-rs")
+    (synopsis "X11 library bindings for Rust")
+    (description "This crate provides X11 library bindings for Rust.")
+    (license license:expat)))
+
+(define-public rust-x11-clipboard-0.4
+  (package
+    (name "rust-x11-clipboard")
+    (version "0.4.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "x11-clipboard" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0nqdnswiyj28b1izjp5rzbc67cxpb5c8p4vh1xyndkirzs84vqqk"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f  ; Tests require display server.
+       #:cargo-inputs (("rust-xcb" ,rust-xcb-0.9))))
+    (native-inputs
+     `(("python" ,python)))
+    (home-page "https://github.com/quininer/x11-clipboard")
+    (synopsis "x11 clipboard support for Rust")
+    (description "This package provides x11 clipboard support for Rust.")
+    (license license:expat)))
+
+(define-public rust-x11-dl-2
+  (package
+    (name "rust-x11-dl")
+    (version "2.18.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "x11-dl" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1y7yq4sfvv56shk4v3s7gvlrwk9d0migj622fl4i4c5klpiq3y9b"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-maybe-uninit" ,rust-maybe-uninit-2.0)
+        ("rust-pkg-config" ,rust-pkg-config-0.3))))
+    (home-page "https://github.com/erlepereira/x11-rs.git")
+    (synopsis "X11 library bindings for Rust")
+    (description "This package provides X11 library bindings for Rust.")
+    (license license:cc0)))
+
+(define-public rust-y4m-0.5
+  (package
+    (name "rust-y4m")
+    (version "0.5.3")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "y4m" version))
+        (file-name
+          (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1933677by64y06zfgip2yq8b2dza8xnljhaksx93czq90b54kscz"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-development-inputs
+       (("rust-resize" ,rust-resize-0.3))))
+    (home-page "https://github.com/image-rs/y4m")
+    (synopsis "YUV4MPEG2 (.y4m) Encoder/Decoder.")
+    (description "YUV4MPEG2 (.y4m) Encoder/Decoder.")
+    (license license:expat)))
diff --git a/gnu/packages/crates-gtk.scm b/gnu/packages/crates-gtk.scm
new file mode 100644
index 0000000000..ebe2a4e45b
--- /dev/null
+++ b/gnu/packages/crates-gtk.scm
@@ -0,0 +1,1225 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;;
+;;; 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 crates-gtk)
+  #:use-module (guix build-system cargo)
+  #:use-module (guix download)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix packages)
+  #:use-module (gnu packages)
+  #:use-module (gnu packages crates-io)
+  #:use-module (gnu packages crates-graphics)
+  #:use-module (gnu packages glib)
+  #:use-module (gnu packages gtk))
+
+;;;
+;;; Please: Try to add new module packages in alphabetic order.
+;;;
+
+(define-public rust-atk-sys-0.9
+  (package
+    (name "rust-atk-sys")
+    (version "0.9.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "atk-sys" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0vzcm1inhax78bcsbapr6mrp4z7lk783csyh200wi91pcxvw2lp5"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f                      ;missing files
+       #:cargo-inputs
+       (("rust-glib-sys" ,rust-glib-sys-0.9)
+        ("rust-gobject-sys" ,rust-gobject-sys-0.9)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-pkg-config" ,rust-pkg-config-0.3))
+       #:cargo-development-inputs
+       (("rust-shell-words" ,rust-shell-words-0.1)
+        ("rust-tempfile" ,rust-tempfile-3))))
+    (inputs
+     `(("atk" ,atk)
+       ("glib" ,glib)))
+    (home-page "http://gtk-rs.org/")
+    (synopsis "FFI bindings to libatk-1")
+    (description "FFI bindings to libatk-1")
+    (license license:expat)))
+
+(define-public rust-atk-0.8
+  (package
+    (name "rust-atk")
+    (version "0.8.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "atk" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0gk6ijqsd6kh8cki1wznw570499psbppg3d5bqaayagjapxawka4"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-atk-sys" ,rust-atk-sys-0.9)
+        ("rust-bitflags" ,rust-bitflags-1)
+        ("rust-glib" ,rust-glib-0.9)
+        ("rust-glib-sys" ,rust-glib-sys-0.9)
+        ("rust-gobject-sys" ,rust-gobject-sys-0.9)
+        ("rust-gtk-rs-lgpl-docs" ,rust-gtk-rs-lgpl-docs-0.1)
+        ("rust-libc" ,rust-libc-0.2))
+       #:cargo-development-inputs
+       (("rust-gir-format-check" ,rust-gir-format-check-0.1))))
+    (inputs
+     `(("atk" ,atk)
+       ("glib" ,glib)))
+    (home-page "http://gtk-rs.org/")
+    (synopsis "Rust bindings for the ATK library")
+    (description "Rust bindings for the ATK library")
+    (license license:expat)))
+
+(define-public rust-cairo-rs-0.9
+  (package
+    (name "rust-cairo-rs")
+    (version "0.9.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "cairo-rs" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1f5x6ipfpzz0ffph0pg0xfkdfcbr0jp59714zz857jp88zhg5h65"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.10)
+        ("rust-glib" ,rust-glib-0.10)
+        ("rust-glib-sys" ,rust-glib-sys-0.10)
+        ("rust-gobject-sys" ,rust-gobject-sys-0.10)
+        ("rust-gtk-rs-lgpl-docs" ,rust-gtk-rs-lgpl-docs-0.1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-thiserror" ,rust-thiserror-1))
+       #:cargo-development-inputs
+       (("rust-tempfile" ,rust-tempfile-3))))
+    (inputs
+     `(("cairo" ,cairo)))
+    (home-page "http://gtk-rs.org/")
+    (synopsis "Rust bindings for the Cairo library")
+    (description "Rust bindings for the Cairo library")
+    (license license:expat)))
+
+(define-public rust-cairo-rs-0.8
+  (package
+    (inherit rust-cairo-rs-0.9)
+    (name "rust-cairo-rs")
+    (version "0.8.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "cairo-rs" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "11303v1fv6hsc9n70ak380gknkf0098phpcxqdhkmahqjsx4jw0m"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.9)
+        ("rust-glib" ,rust-glib-0.9)
+        ("rust-glib-sys" ,rust-glib-sys-0.9)
+        ("rust-gobject-sys" ,rust-gobject-sys-0.9)
+        ("rust-libc" ,rust-libc-0.2))
+       #:cargo-development-inputs
+       (("rust-gtk-rs-lgpl-docs" ,rust-gtk-rs-lgpl-docs-0.1)
+        ("rust-tempfile" ,rust-tempfile-3))))))
+
+(define-public rust-cairo-rs-0.7
+  (package
+    (inherit rust-cairo-rs-0.8)
+    (name "rust-cairo-rs")
+    (version "0.7.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "cairo-rs" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "171m98g41avp5mmshqir4ka21napp7ma5fx45wi9mw5hwdyv8pg0"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.9)
+        ("rust-glib" ,rust-glib-0.8)
+        ("rust-glib-sys" ,rust-glib-sys-0.9)
+        ("rust-gobject-sys" ,rust-gobject-sys-0.9)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-gtk-rs-lgpl-docs" ,rust-gtk-rs-lgpl-docs-0.1))
+       #:cargo-development-inputs
+       (("rust-tempfile" ,rust-tempfile-3))))))
+
+(define-public rust-cairo-sys-rs-0.10
+  (package
+    (name "rust-cairo-sys-rs")
+    (version "0.10.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "cairo-sys-rs" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "19wch8zc11hbi724mn16hhqyff8kw5c5bsbdlzpxdwfmkadn7lif"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-glib-sys" ,rust-glib-sys-0.10)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-system-deps" ,rust-system-deps-1)
+        ("rust-winapi" ,rust-winapi-0.3)
+        ("rust-x11" ,rust-x11-2))))
+    (inputs
+     `(("cairo" ,cairo)))
+    (home-page "http://gtk-rs.org/")
+    (synopsis "FFI bindings to libcairo")
+    (description "This package provides FFI bindings to libcairo.")
+    (license license:expat)))
+
+(define-public rust-cairo-sys-rs-0.9
+  (package
+    (inherit rust-cairo-sys-rs-0.10)
+    (name "rust-cairo-sys-rs")
+    (version "0.9.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "cairo-sys-rs" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0qsdy6s57yvscg2rfm7wdqrlhzbn1aq9lhk3dy1vw5f7r81blrgz"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-glib-sys" ,rust-glib-sys-0.9)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-winapi" ,rust-winapi-0.3)
+        ("rust-x11" ,rust-x11-2)
+        ("rust-pkg-config" ,rust-pkg-config-0.3))))))
+
+(define-public rust-gdk-0.13
+  (package
+    (name "rust-gdk")
+    (version "0.13.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "gdk" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0zbb9bwg2z9vlcjj9b59qch3mfmszsrxya7syc5a39v85adq606v"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-cairo-rs" ,rust-cairo-rs-0.9)
+        ("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.10)
+        ("rust-gdk-pixbuf" ,rust-gdk-pixbuf-0.9)
+        ("rust-gdk-sys" ,rust-gdk-sys-0.10)
+        ("rust-gio" ,rust-gio-0.9)
+        ("rust-gio-sys" ,rust-gio-sys-0.10)
+        ("rust-glib" ,rust-glib-0.10)
+        ("rust-glib-sys" ,rust-glib-sys-0.10)
+        ("rust-gobject-sys" ,rust-gobject-sys-0.10)
+        ("rust-gtk-rs-lgpl-docs" ,rust-gtk-rs-lgpl-docs-0.1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-pango" ,rust-pango-0.9))
+       #: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)))
+    (home-page "http://gtk-rs.org/")
+    (synopsis "Rust bindings for the GDK 3 library")
+    (description "This package provides Rust bindings for the GDK 3 library.")
+    (license license:expat)))
+
+(define-public rust-gdk-0.12
+  (package
+    (inherit rust-gdk-0.13)
+    (name "rust-gdk")
+    (version "0.12.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "gdk" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "12bmk9vfpk7f03fx22cq9ps00xylsxcpmp8c8r95r1n05xvyirgv"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-cairo-rs" ,rust-cairo-rs-0.8)
+        ("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.9)
+        ("rust-gdk-pixbuf" ,rust-gdk-pixbuf-0.8)
+        ("rust-gdk-sys" ,rust-gdk-sys-0.9)
+        ("rust-gio" ,rust-gio-0.8)
+        ("rust-gio-sys" ,rust-gio-sys-0.9)
+        ("rust-glib" ,rust-glib-0.9)
+        ("rust-glib-sys" ,rust-glib-sys-0.9)
+        ("rust-gobject-sys" ,rust-gobject-sys-0.9)
+        ("rust-gtk-rs-lgpl-docs" ,rust-gtk-rs-lgpl-docs-0.1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-pango" ,rust-pango-0.8))
+       #:cargo-development-inputs
+       (("rust-gir-format-check" ,rust-gir-format-check-0.1))))))
+
+(define-public rust-gdk-pixbuf-0.9
+  (package
+    (name "rust-gdk-pixbuf")
+    (version "0.9.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "gdk-pixbuf" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "12lrk7zwshid8dgx9vg87bk0h4a0ilpi7w48idsrpm4xp4yawvcg"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-gdk-pixbuf-sys" ,rust-gdk-pixbuf-sys-0.10)
+        ("rust-gio" ,rust-gio-0.9)
+        ("rust-gio-sys" ,rust-gio-sys-0.10)
+        ("rust-glib" ,rust-glib-0.10)
+        ("rust-glib-sys" ,rust-glib-sys-0.10)
+        ("rust-gobject-sys" ,rust-gobject-sys-0.10)
+        ("rust-gtk-rs-lgpl-docs" ,rust-gtk-rs-lgpl-docs-0.1)
+        ("rust-libc" ,rust-libc-0.2))
+       #:cargo-development-inputs
+       (("rust-gir-format-check" ,rust-gir-format-check-0.1))))
+    (inputs
+     `(("gdk-pixbuf" ,gdk-pixbuf)))
+    (home-page "http://gtk-rs.org/")
+    (synopsis "Rust bindings for the GdkPixbuf library")
+    (description "Rust bindings for the GdkPixbuf library")
+    (license license:expat)))
+
+(define-public rust-gdk-pixbuf-0.8
+  (package
+    (inherit rust-gdk-pixbuf-0.9)
+    (name "rust-gdk-pixbuf")
+    (version "0.8.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "gdk-pixbuf" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1mxxca0fkcw2rsd3kl3nvlb8ys4cgxqx4n5isjbv0adk8q624j72"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-gdk-pixbuf-sys" ,rust-gdk-pixbuf-sys-0.9)
+        ("rust-gio" ,rust-gio-0.8)
+        ("rust-gio-sys" ,rust-gio-sys-0.9)
+        ("rust-glib" ,rust-glib-0.9)
+        ("rust-glib-sys" ,rust-glib-sys-0.9)
+        ("rust-gobject-sys" ,rust-gobject-sys-0.9)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-gtk-rs-lgpl-docs" ,rust-gtk-rs-lgpl-docs-0.1))
+       #:cargo-development-inputs
+       (("rust-gir-format-check" ,rust-gir-format-check-0.1))))))
+
+(define-public rust-gdk-pixbuf-0.7
+  (package
+    (inherit rust-gdk-pixbuf-0.8)
+    (name "rust-gdk-pixbuf")
+    (version "0.7.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "gdk-pixbuf" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1k2g3w2p57m68bi5sldvkmgjgslgqswrjsijjhqaibdvw67409lp"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-fragile" ,rust-fragile-0.3)
+        ("rust-futures-preview" ,rust-futures-preview-0.3)
+        ("rust-gdk-pixbuf-sys" ,rust-gdk-pixbuf-sys-0.9)
+        ("rust-gio" ,rust-gio-0.7)
+        ("rust-gio-sys" ,rust-gio-sys-0.9)
+        ("rust-glib" ,rust-glib-0.8)
+        ("rust-glib-sys" ,rust-glib-sys-0.9)
+        ("rust-gobject-sys" ,rust-gobject-sys-0.9)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-gtk-rs-lgpl-docs" ,rust-gtk-rs-lgpl-docs-0.1))
+       #:cargo-development-inputs
+       (("rust-gir-format-check" ,rust-gir-format-check-0.1))))))
+
+(define-public rust-gdk-pixbuf-sys-0.10
+  (package
+    (name "rust-gdk-pixbuf-sys")
+    (version "0.10.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "gdk-pixbuf-sys" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "13qyxazj9bmw3llvkh6br8v7sypnbin2nxis366ppsa3gy54dziv"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-gio-sys" ,rust-gio-sys-0.10)
+        ("rust-glib-sys" ,rust-glib-sys-0.10)
+        ("rust-gobject-sys" ,rust-gobject-sys-0.10)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-system-deps" ,rust-system-deps-1))
+       #:cargo-development-inputs
+       (("rust-shell-words" ,rust-shell-words-0.1)
+        ("rust-tempfile" ,rust-tempfile-3))))
+    (inputs
+     `(("gdk-pixbuf" ,gdk-pixbuf)))
+    (home-page "http://gtk-rs.org/")
+    (synopsis "FFI bindings to libgdk_pixbuf-2.0")
+    (description "This package provides FFI bindings to @code{libgdk_pixbuf-2.0}.")
+    (license license:expat)))
+
+(define-public rust-gdk-pixbuf-sys-0.9
+  (package
+    (inherit rust-gdk-pixbuf-sys-0.10)
+    (name "rust-gdk-pixbuf-sys")
+    (version "0.9.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "gdk-pixbuf-sys" version))
+        (file-name (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32 "1c2andpjb10y7bahh6nxnksh9m3g5qh4mgq9znx634cy1831p6fq"))))
+    (arguments
+     `(#:tests? #f      ; tests not included in release
+       #:cargo-inputs
+       (("rust-gio-sys" ,rust-gio-sys-0.9)
+        ("rust-glib-sys" ,rust-glib-sys-0.9)
+        ("rust-gobject-sys" ,rust-gobject-sys-0.9)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-pkg-config" ,rust-pkg-config-0.3))
+       #:cargo-development-inputs
+       (("rust-shell-words" ,rust-shell-words-0.1)
+        ("rust-tempfile" ,rust-tempfile-3))))))
+
+(define-public rust-gdk-sys-0.10
+  (package
+    (name "rust-gdk-sys")
+    (version "0.10.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "gdk-sys" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0s8d2jymffbv2kpwrx53krf7mpy3vdfhbb5i2n02dz80qp7m75ha"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.10)
+        ("rust-gdk-pixbuf-sys" ,rust-gdk-pixbuf-sys-0.10)
+        ("rust-gio-sys" ,rust-gio-sys-0.10)
+        ("rust-glib-sys" ,rust-glib-sys-0.10)
+        ("rust-gobject-sys" ,rust-gobject-sys-0.10)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-pango-sys" ,rust-pango-sys-0.10)
+        ("rust-pkg-config" ,rust-pkg-config-0.3)
+        ("rust-system-deps" ,rust-system-deps-1))
+       #:cargo-development-inputs
+       (("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)))
+    (home-page "http://gtk-rs.org/")
+    (synopsis "FFI bindings to libgdk-3")
+    (description "FFI bindings to libgdk-3")
+    (license license:expat)))
+
+(define-public rust-gdk-sys-0.9
+  (package
+    (inherit rust-gdk-sys-0.10)
+    (name "rust-gdk-sys")
+    (version "0.9.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "gdk-sys" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1fwgr1b3n0khlkhdq9145m6baz9y8207ya30d30g1gyij6g6gpva"))))
+    (arguments
+     `(#:tests? #f
+       #:cargo-inputs
+       (("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.9)
+        ("rust-gdk-pixbuf-sys" ,rust-gdk-pixbuf-sys-0.9)
+        ("rust-gio-sys" ,rust-gio-sys-0.9)
+        ("rust-glib-sys" ,rust-glib-sys-0.9)
+        ("rust-gobject-sys" ,rust-gobject-sys-0.9)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-pango-sys" ,rust-pango-sys-0.9)
+        ("rust-pkg-config" ,rust-pkg-config-0.3))
+       #:cargo-development-inputs
+       (("rust-shell-words" ,rust-shell-words-0.1)
+        ("rust-tempfile" ,rust-tempfile-3))))))
+
+(define-public rust-gio-0.9
+  (package
+    (name "rust-gio")
+    (version "0.9.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "gio" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0qc5aqi2ijval5i9df0qryy4wbmayyhy7ng5v9r0fw7zpx105dhz"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-futures" ,rust-futures-0.3)
+        ("rust-futures-channel" ,rust-futures-channel-0.3)
+        ("rust-futures-core" ,rust-futures-core-0.3)
+        ("rust-futures-io" ,rust-futures-io-0.3)
+        ("rust-futures-util" ,rust-futures-util-0.3)
+        ("rust-gio-sys" ,rust-gio-sys-0.10)
+        ("rust-glib" ,rust-glib-0.10)
+        ("rust-glib-sys" ,rust-glib-sys-0.10)
+        ("rust-gobject-sys" ,rust-gobject-sys-0.10)
+        ("rust-gtk-rs-lgpl-docs" ,rust-gtk-rs-lgpl-docs-0.1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-once-cell" ,rust-once-cell-1)
+        ("rust-thiserror" ,rust-thiserror-1))
+       #:cargo-development-inputs
+       (("rust-gir-format-check" ,rust-gir-format-check-0.1)
+        ("rust-serial-test" ,rust-serial-test-0.4))))
+    (inputs
+     `(("glib" ,glib)))
+    (home-page "http://gtk-rs.org/")
+    (synopsis "Rust bindings for the Gio library")
+    (description "Rust bindings for the Gio library")
+    (license license:expat)))
+
+(define-public rust-gio-0.8
+  (package
+    (inherit rust-gio-0.9)
+    (name "rust-gio")
+    (version "0.8.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "gio" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "19cnla2ya0mi6wwaabd5mxbq2kzq46dg6jq2z19rpqyc2na0zl8c"))))
+    (arguments
+     `(#:tests? #f                    ; Not all files included in the tarball.
+       #:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-futures-channel" ,rust-futures-channel-0.3)
+        ("rust-futures-core" ,rust-futures-core-0.3)
+        ("rust-futures-io" ,rust-futures-io-0.3)
+        ("rust-futures-util" ,rust-futures-util-0.3)
+        ("rust-gio-sys" ,rust-gio-sys-0.9)
+        ("rust-glib" ,rust-glib-0.9)
+        ("rust-glib-sys" ,rust-glib-sys-0.9)
+        ("rust-gobject-sys" ,rust-gobject-sys-0.9)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-gtk-rs-lgpl-docs" ,rust-gtk-rs-lgpl-docs-0.1))
+       #:cargo-development-inputs
+       (("rust-gir-format-check" ,rust-gir-format-check-0.1)
+        ("rust-serial-test" ,rust-serial-test-0.1)
+        ("rust-serial-test-derive" ,rust-serial-test-derive-0.1))))))
+
+(define-public rust-gio-0.7
+  (package
+    (inherit rust-gio-0.8)
+    (name "rust-gio")
+    (version "0.7.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "gio" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1qv0wc1hqyb81c03h81s3xrl9jslrw23fr4yhygxbhih9k9vaqb2"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-fragile" ,rust-fragile-0.3)
+        ("rust-futures-preview" ,rust-futures-preview-0.3)
+        ("rust-gio-sys" ,rust-gio-sys-0.9)
+        ("rust-glib" ,rust-glib-0.8)
+        ("rust-glib-sys" ,rust-glib-sys-0.9)
+        ("rust-gobject-sys" ,rust-gobject-sys-0.9)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-gtk-rs-lgpl-docs" ,rust-gtk-rs-lgpl-docs-0.1))
+       #:cargo-development-inputs
+       (("rust-gir-format-check" ,rust-gir-format-check-0.1))))))
+
+(define-public rust-gio-sys-0.10
+  (package
+    (name "rust-gio-sys")
+    (version "0.10.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "gio-sys" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1b2f6jvghm2djymj3qrgbqfci2f95gyhdin2pgv2qpcg5xszn92y"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-glib-sys" ,rust-glib-sys-0.10)
+        ("rust-gobject-sys" ,rust-gobject-sys-0.10)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-system-deps" ,rust-system-deps-1)
+        ("rust-winapi" ,rust-winapi-0.3))))
+    (inputs
+     `(("glib" ,glib)))
+    (home-page "http://gtk-rs.org/")
+    (synopsis "FFI bindings to libgio-2.0")
+    (description "This package provides FFI bindings to libgio-2.0.")
+    (license license:expat)))
+
+(define-public rust-gio-sys-0.9
+  (package
+    (inherit rust-gio-sys-0.10)
+    (name "rust-gio-sys")
+    (version "0.9.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "gio-sys" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "049rafihxp3maxg3fwj6062ni9dcfilvhfq6ibnfgsmr89925bag"))))
+    (arguments
+     `(#:tests? #f              ; Some test libraries not included in release.
+       #:cargo-inputs
+       (("rust-glib-sys" ,rust-glib-sys-0.9)
+        ("rust-gobject-sys" ,rust-gobject-sys-0.9)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-pkg-config" ,rust-pkg-config-0.3))
+       #:cargo-development-inputs
+       (("rust-shell-words" ,rust-shell-words-0.1)
+        ("rust-tempfile" ,rust-tempfile-3))))))
+
+(define-public rust-gir-format-check-0.1
+  (package
+    (name "rust-gir-format-check")
+    (version "0.1.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "gir-format-check" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0znl4qcgmg0656zk9vjkwdn9wj1zpkd0m0l5jnzmahd80ii7vf4b"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/gtk-rs/gir-format-check")
+    (synopsis "File format checker")
+    (description "File format checker in Rust.")
+    (license license:expat)))
+
+(define-public rust-glib-0.10
+  (package
+    (name "rust-glib")
+    (version "0.10.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "glib" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1ifh56nhvhcrssxqkad876qqrlnl16q6b8ap3f7ncpjinw9m0s0c"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-futures-channel" ,rust-futures-channel-0.3)
+        ("rust-futures-core" ,rust-futures-core-0.3)
+        ("rust-futures-executor" ,rust-futures-executor-0.3)
+        ("rust-futures-preview" ,rust-futures-preview-0.3)
+        ("rust-futures-task" ,rust-futures-task-0.3)
+        ("rust-futures-util" ,rust-futures-util-0.3)
+        ("rust-glib-macros" ,rust-glib-macros-0.10)
+        ("rust-glib-sys" ,rust-glib-sys-0.10)
+        ("rust-gobject-sys" ,rust-gobject-sys-0.10)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-once-cell" ,rust-once-cell-1))))
+    (inputs
+     `(("glib" ,glib)))
+    (home-page "http://gtk-rs.org/")
+    (synopsis "Rust bindings for the GLib library")
+    (description "Rust bindings for the GLib library")
+    (license license:expat)))
+
+(define-public rust-glib-0.9
+  (package
+    (inherit rust-glib-0.10)
+    (name "rust-glib")
+    (version "0.9.3")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "glib" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1h3100mf7kdfxibjz5na0sqzbd2mcsyd8pzivn3666w414x5gys0"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-futures-channel" ,rust-futures-channel-0.3)
+        ("rust-futures-core" ,rust-futures-core-0.3)
+        ("rust-futures-executor" ,rust-futures-executor-0.3)
+        ("rust-futures-preview" ,rust-futures-preview-0.3)
+        ("rust-futures-task" ,rust-futures-task-0.3)
+        ("rust-futures-util" ,rust-futures-util-0.3)
+        ("rust-glib-sys" ,rust-glib-sys-0.9)
+        ("rust-gobject-sys" ,rust-gobject-sys-0.9)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-libc" ,rust-libc-0.2))
+       #:cargo-development-inputs
+       (("rust-tempfile" ,rust-tempfile-3))))))
+
+(define-public rust-glib-0.8
+  (package
+    (inherit rust-glib-0.9)
+    (name "rust-glib")
+    (version "0.8.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "glib" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0ysy87zrwyzhfpf3d8rkyyr3amwj85wky05fsl7kx95s84l269xy"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-futures-preview" ,rust-futures-preview-0.3)
+        ("rust-glib-sys" ,rust-glib-sys-0.9)
+        ("rust-gobject-sys" ,rust-gobject-sys-0.9)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-libc" ,rust-libc-0.2))
+       #:cargo-development-inputs
+       (("rust-tempfile" ,rust-tempfile-3))))))
+
+(define-public rust-glib-macros-0.10
+  (package
+    (name "rust-glib-macros")
+    (version "0.10.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "glib-macros" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0fa00s6gnj3hgri9z926199jidczlmjr1db0n4r80sins4k6lj21"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-anyhow" ,rust-anyhow-1)
+        ("rust-heck" ,rust-heck-0.3)
+        ("rust-itertools" ,rust-itertools-0.9)
+        ("rust-proc-macro-crate" ,rust-proc-macro-crate-0.1)
+        ("rust-proc-macro-error" ,rust-proc-macro-error-1)
+        ("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-1))))
+    (home-page "http://gtk-rs.org/")
+    (synopsis "Rust bindings for the GLib library, proc macros crate")
+    (description "Rust bindings for the GLib library, proc macros crate.")
+    (license license:expat)))
+
+(define-public rust-glib-sys-0.10
+  (package
+    (name "rust-glib-sys")
+    (version "0.10.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "glib-sys" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1hfdwilf3dnrv3pnfbwmp3h2afgwvfsapcgjfg8276kflsbvksf7"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-libc" ,rust-libc-0.2)
+        ("rust-system-deps" ,rust-system-deps-1))
+       #:cargo-development-inputs
+       (("rust-shell-words" ,rust-shell-words-0.1)
+        ("rust-tempfile" ,rust-tempfile-3))))
+    (inputs
+     `(("glib" ,glib)))
+    (home-page "http://gtk-rs.org/")
+    (synopsis "FFI bindings to libglib-2.0")
+    (description "This package provides FFI bindings to libglib-2.0.")
+    (license license:expat)))
+
+(define-public rust-glib-sys-0.9
+  (package
+    (inherit rust-glib-sys-0.10)
+    (name "rust-glib-sys")
+    (version "0.9.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "glib-sys" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1qhnwfqqcp63mx4q9744rfkq78g6ky2j8ppsxxgw0ipl08w6z1cm"))))
+    (arguments
+     `(#:tests? #f              ; Some test libraries not included in release.
+       #:cargo-inputs
+       (("rust-libc" ,rust-libc-0.2)
+        ("rust-pkg-config" ,rust-pkg-config-0.3))
+       #:cargo-development-inputs
+       (("rust-shell-words" ,rust-shell-words-0.1)
+        ("rust-tempfile" ,rust-tempfile-3))))))
+
+(define-public rust-gobject-sys-0.10
+  (package
+    (name "rust-gobject-sys")
+    (version "0.10.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "gobject-sys" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1311d3zbdhl1g7ibj1iy1650513yrhxbjxgfhazn52ii1jv368cm"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-glib-sys" ,rust-glib-sys-0.10)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-system-deps" ,rust-system-deps-1))
+       #:cargo-development-inputs
+       (("rust-shell-words" ,rust-shell-words-0.1)
+        ("rust-tempfile" ,rust-tempfile-3))))
+    (inputs
+     `(("glib" ,glib)))
+    (home-page "http://gtk-rs.org/")
+    (synopsis "FFI bindings to libgobject-2.0")
+    (description "This package provides FFI bindings to libgobject-2.0.")
+    (license license:expat)))
+
+(define-public rust-gobject-sys-0.9
+  (package
+    (inherit rust-gobject-sys-0.10)
+    (name "rust-gobject-sys")
+    (version "0.9.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "gobject-sys" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1nakflbp3gjaas4fw7sn3p1p32khyfpcq1h06z7yqd10yq2ail9i"))))
+    (arguments
+     `(#:tests? #f              ; Some test libraries not included in release.
+       #:cargo-inputs
+       (("rust-glib-sys" ,rust-glib-sys-0.9)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-pkg-config" ,rust-pkg-config-0.3))
+       #:cargo-development-inputs
+       (("rust-shell-words" ,rust-shell-words-0.1)
+        ("rust-tempfile" ,rust-tempfile-3))))))
+
+(define-public rust-gtk-0.8
+  (package
+    (name "rust-gtk")
+    (version "0.8.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "gtk" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "13ygzblfv40l2kp70rnjymz7vk2g2wdjs04lhmk9q8wh0bbyiqc7"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-atk" ,rust-atk-0.8)
+        ("rust-bitflags" ,rust-bitflags-1)
+        ("rust-cairo-rs" ,rust-cairo-rs-0.8)
+        ("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.9)
+        ("rust-cc" ,rust-cc-1)
+        ("rust-gdk" ,rust-gdk-0.12)
+        ("rust-gdk-pixbuf" ,rust-gdk-pixbuf-0.8)
+        ("rust-gdk-pixbuf-sys" ,rust-gdk-pixbuf-sys-0.9)
+        ("rust-gdk-sys" ,rust-gdk-sys-0.9)
+        ("rust-gio" ,rust-gio-0.8)
+        ("rust-gio-sys" ,rust-gio-sys-0.9)
+        ("rust-glib" ,rust-glib-0.9)
+        ("rust-glib-sys" ,rust-glib-sys-0.9)
+        ("rust-gobject-sys" ,rust-gobject-sys-0.9)
+        ("rust-gtk-rs-lgpl-docs" ,rust-gtk-rs-lgpl-docs-0.1)
+        ("rust-gtk-sys" ,rust-gtk-sys-0.9)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-pango" ,rust-pango-0.8)
+        ("rust-pango-sys" ,rust-pango-sys-0.9))
+       #:cargo-development-inputs
+       (("rust-gir-format-check" ,rust-gir-format-check-0.1))))
+    (inputs
+     `(("atk" ,atk)
+       ("cairo" ,cairo)
+       ("glib" ,glib)
+       ("gtk+" ,gtk+)
+       ("pango" ,pango)))
+    (home-page "http://gtk-rs.org/")
+    (synopsis "Rust bindings for the GTK+ 3 library")
+    (description "This package provides Rust bindings for the GTK+ 3 library.")
+    (license license:expat)))
+
+(define-public rust-gtk-rs-lgpl-docs-0.1
+  (package
+    (name "rust-gtk-rs-lgpl-docs")
+    (version "0.1.18")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "gtk-rs-lgpl-docs" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0xm3lm15j8yfn2jzh3sz6hrq2g2k917ahnp5caxw9c7z8sgr9f4m"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-rustdoc-stripper" ,rust-rustdoc-stripper-0.1))))
+    (home-page "https://gtk-rs.org/")
+    (synopsis "LGPL-licensed docs for Gtk-rs crates")
+    (description
+     "LGPL-licensed docs for Gtk-rs crates.")
+    (license license:lgpl2.0)))
+
+(define-public rust-gtk-sys-0.9
+  (package
+    (name "rust-gtk-sys")
+    (version "0.9.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "gtk-sys" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1hd4w49iaivzjkbxi0bhabqp1ifkzg9g47n822sh12xlqxhgdpjk"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f                      ;missing files
+       #:cargo-inputs
+       (("rust-atk-sys" ,rust-atk-sys-0.9)
+        ("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.9)
+        ("rust-gdk-pixbuf-sys" ,rust-gdk-pixbuf-sys-0.9)
+        ("rust-gdk-sys" ,rust-gdk-sys-0.9)
+        ("rust-gio-sys" ,rust-gio-sys-0.9)
+        ("rust-glib-sys" ,rust-glib-sys-0.9)
+        ("rust-gobject-sys" ,rust-gobject-sys-0.9)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-pango-sys" ,rust-pango-sys-0.9)
+        ("rust-pkg-config" ,rust-pkg-config-0.3))
+       #:cargo-development-inputs
+       (("rust-shell-words" ,rust-shell-words-0.1)
+        ("rust-tempfile" ,rust-tempfile-3))))
+    (inputs
+     `(("gtk+" ,gtk+)))
+    (home-page "http://gtk-rs.org/")
+    (synopsis "FFI bindings to libgtk-3")
+    (description "This package provides FFI bindings to libgtk-3.")
+    (license license:expat)))
+
+(define-public rust-pango-0.9
+  (package
+    (name "rust-pango")
+    (version "0.9.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "pango" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0f64hynd9vq6966wb66mrg5kq9q371bkhncp37nqrgdyh22hcdwr"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-glib" ,rust-glib-0.10)
+        ("rust-glib-sys" ,rust-glib-sys-0.10)
+        ("rust-gobject-sys" ,rust-gobject-sys-0.10)
+        ("rust-gtk-rs-lgpl-docs" ,rust-gtk-rs-lgpl-docs-0.1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-once-cell" ,rust-once-cell-1)
+        ("rust-pango-sys" ,rust-pango-sys-0.10))
+       #:cargo-development-inputs
+       (("rust-gir-format-check" ,rust-gir-format-check-0.1))))
+    (inputs
+     `(("pango" ,pango)))
+    (home-page "http://gtk-rs.org/")
+    (synopsis "Rust bindings for the Pango library")
+    (description "Rust bindings for the Pango library")
+    (license license:expat)))
+
+(define-public rust-pango-0.8
+  (package
+    (inherit rust-pango-0.9)
+    (name "rust-pango")
+    (version "0.8.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "pango" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0xq50950il3228grzs4xvc5s6phxcl5l50grz6syvs0vixr6p70y"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-glib" ,rust-glib-0.9)
+        ("rust-glib-sys" ,rust-glib-sys-0.9)
+        ("rust-gobject-sys" ,rust-gobject-sys-0.9)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-pango-sys" ,rust-pango-sys-0.9)
+        ("rust-gtk-rs-lgpl-docs" ,rust-gtk-rs-lgpl-docs-0.1))
+       #:cargo-development-inputs
+       (("rust-gir-format-check" ,rust-gir-format-check-0.1))))))
+
+(define-public rust-pango-0.7
+  (package
+    (inherit rust-pango-0.8)
+    (name "rust-pango")
+    (version "0.7.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "pango" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "11np7nxb69g3kid2l78b7k519x1wk1c3f9yy7swgzy24n5qs0grr"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-glib" ,rust-glib-0.8)
+        ("rust-glib-sys" ,rust-glib-sys-0.9)
+        ("rust-gobject-sys" ,rust-gobject-sys-0.9)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-pango-sys" ,rust-pango-sys-0.9)
+        ("rust-gtk-rs-lgpl-docs" ,rust-gtk-rs-lgpl-docs-0.1))
+       #:cargo-development-inputs
+       (("rust-gir-format-check" ,rust-gir-format-check-0.1))))))
+
+(define-public rust-pango-sys-0.10
+  (package
+    (name "rust-pango-sys")
+    (version "0.10.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "pango-sys" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1468xzyk2wanxb2b32fsmwk6bnafdaicxl5b4301dlb2ic66bli4"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-glib-sys" ,rust-glib-sys-0.10)
+        ("rust-gobject-sys" ,rust-gobject-sys-0.10)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-system-deps" ,rust-system-deps-1))))
+    (inputs
+     `(("pango" ,pango)))
+    (home-page "http://gtk-rs.org/")
+    (synopsis "FFI bindings to libpango-1.0")
+    (description "This package provides FFI bindings to @code{libpango-1.0}.")
+    (license license:expat)))
+
+(define-public rust-pango-sys-0.9
+  (package
+    (inherit rust-pango-sys-0.10)
+    (name "rust-pango-sys")
+    (version "0.9.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "pango-sys" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0zdynikh6jrfa31fpmbrwnz46a57idci73zzkf0z0g3vj223vfc6"))))
+    (arguments
+     `(#:tests? #f                  ; Some test files not included in release.
+       #:cargo-inputs
+       (("rust-glib-sys" ,rust-glib-sys-0.9)
+        ("rust-gobject-sys" ,rust-gobject-sys-0.9)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-pkg-config" ,rust-pkg-config-0.3))
+       #:cargo-development-inputs
+       (("rust-shell-words" ,rust-shell-words-0.1)
+        ("rust-tempfile" ,rust-tempfile-3))))))
+
+(define-public rust-pangocairo-0.9
+  (package
+    (name "rust-pangocairo")
+    (version "0.9.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "pangocairo" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0bap3h78hdqdyln58349qjjbcv45m8a0a16c4n9fprdj1my0gldx"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-cairo-rs" ,rust-cairo-rs-0.8)
+        ("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.9)
+        ("rust-glib" ,rust-glib-0.9)
+        ("rust-glib-sys" ,rust-glib-sys-0.9)
+        ("rust-gobject-sys" ,rust-gobject-sys-0.9)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-pango" ,rust-pango-0.8)
+        ("rust-pango-sys" ,rust-pango-sys-0.9)
+        ("rust-pangocairo-sys" ,rust-pangocairo-sys-0.10)
+        ("rust-gtk-rs-lgpl-docs" ,rust-gtk-rs-lgpl-docs-0.1))
+       #:cargo-development-inputs
+       (("rust-gir-format-check" ,rust-gir-format-check-0.1))))
+    (inputs
+     `(("gtk+" ,gtk+)))
+    (home-page "http://gtk-rs.org/")
+    (synopsis "Rust bindings for the PangoCairo library")
+    (description
+     "Rust bindings for the PangoCairo library.")
+    (license license:expat)))
+
+(define-public rust-pangocairo-0.8
+  (package
+    (inherit rust-pangocairo-0.9)
+    (name "rust-pangocairo")
+    (version "0.8.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "pangocairo" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0qjiwsp73x3w0493dzycyjzxnzwq7ixwmf1ccr5r41pjhxbnk1kl"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-cairo-rs" ,rust-cairo-rs-0.7)
+        ("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.9)
+        ("rust-glib" ,rust-glib-0.8)
+        ("rust-glib-sys" ,rust-glib-sys-0.9)
+        ("rust-gobject-sys" ,rust-gobject-sys-0.9)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-pango" ,rust-pango-0.7)
+        ("rust-pango-sys" ,rust-pango-sys-0.9)
+        ("rust-pangocairo-sys" ,rust-pangocairo-sys-0.10)
+        ("rust-gtk-rs-lgpl-docs" ,rust-gtk-rs-lgpl-docs-0.1))
+       #:cargo-development-inputs
+       (("rust-gir-format-check" ,rust-gir-format-check-0.1))))))
+
+(define-public rust-pangocairo-sys-0.10
+  (package
+    (name "rust-pangocairo-sys")
+    (version "0.10.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "pangocairo-sys" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1zlyf5vajarnxg5034b8qa5w5zajv96lfvlgiki26svpmcqip4m3"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.9)
+        ("rust-glib-sys" ,rust-glib-sys-0.9)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-pango-sys" ,rust-pango-sys-0.9)
+        ("rust-pkg-config" ,rust-pkg-config-0.3))
+       #:cargo-development-inputs
+       (("rust-shell-words" ,rust-shell-words-0.1)
+        ("rust-tempfile" ,rust-tempfile-3))))
+    (inputs
+     `(("gtk+" ,gtk+)))
+    (home-page "https://gtk-rs.org/")
+    (synopsis "FFI bindings to libgtk-3")
+    (description "This package provides FFI bindings to libgtk-3.")
+    (license license:expat)))
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 0200b28734..36f0b98112 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -1,13 +1,17 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2019 Ivan Petkov <ivanppetkov@gmail.com>
-;;; Copyright © 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2019, 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;; Copyright © 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2019, 2020, 2021 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org>
-;;; Copyright © 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2019–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2019, 2020 John Soo <jsoo1@asu.edu>
 ;;; Copyright © 2019, 2020 Hartmut Goebel <h.goebel@crazy-compilers.com>
 ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
 ;;; Copyright © 2020 Leo Famulari <leo@famulari.name>
+;;; Copyright © 2020 Gabriel Arazas <foo.dogsquared@gmail.com>
+;;; Copyright © 2020 André Batista <nandre@riseup.net>
+;;; Copyright © 2020 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2020 Antoine Côté <antoine.cote@posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -27,17 +31,20 @@
 (define-module (gnu packages crates-io)
   #:use-module (guix build-system cargo)
   #:use-module (guix download)
+  #:use-module (guix git-download)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
+  #:use-module (guix utils)
   #:use-module (gnu packages)
-  #:use-module (gnu packages base)
+  #:use-module (gnu packages cmake)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages crates-graphics)
+  #:use-module (gnu packages crates-gtk)
+  #:use-module (gnu packages crypto)
   #:use-module (gnu packages curl)
+  #:use-module (gnu packages databases)
   #:use-module (gnu packages fontutils)
-  #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages gettext)
-  #:use-module (gnu packages glib)
-  #:use-module (gnu packages gtk)
   #:use-module (gnu packages jemalloc)
   #:use-module (gnu packages llvm)
   #:use-module (gnu packages multiprecision)
@@ -49,7 +56,6 @@
   #:use-module (gnu packages sqlite)
   #:use-module (gnu packages ssh)
   #:use-module (gnu packages tls)
-  #:use-module (gnu packages video)
   #:use-module (gnu packages version-control)
   #:use-module (gnu packages web)
   #:use-module (gnu packages xml)
@@ -83,6 +89,652 @@
 library in Rust.")
     (license license:expat)))
 
+(define-public rust-actix-0.10
+  (package
+    (name "rust-actix")
+    (version "0.10.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "actix" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0q6cd08d0xikilj9l3gfsyhva5b91y55lfxy7yd7w7ivizw43qhv"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #false                  ;doc test fails
+       #:cargo-inputs
+       (("rust-actix-rt" ,rust-actix-rt-1)
+        ("rust-actix-derive" ,rust-actix-derive-0.5)
+        ("rust-bitflags" ,rust-bitflags-1)
+        ("rust-bytes" ,rust-bytes-0.5)
+        ("rust-crossbeam-channel" ,rust-crossbeam-channel-0.4)
+        ("rust-derive-more" ,rust-derive-more-0.99)
+        ("rust-futures-channel" ,rust-futures-channel-0.3)
+        ("rust-futures-util" ,rust-futures-util-0.3)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-once-cell" ,rust-once-cell-1)
+        ("rust-parking-lot" ,rust-parking-lot-0.11)
+        ("rust-pin-project" ,rust-pin-project-0.4)
+        ("rust-smallvec" ,rust-smallvec-1)
+        ("rust-tokio" ,rust-tokio-0.2)
+        ("rust-tokio-util" ,rust-tokio-util-0.3)
+        ("rust-trust-dns-proto" ,rust-trust-dns-proto-0.19)
+        ("rust-trust-dns-resolver" ,rust-trust-dns-resolver-0.19))))
+    (home-page "https://actix.rs")
+    (synopsis "Actor framework for Rust")
+    (description "This package provides Actix actor framework for Rust.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-actix-codec-0.3
+  (package
+    (name "rust-actix-codec")
+    (version "0.3.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "actix-codec" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0w7506qd2f8q83z6l5lqx1363ks0ysx8f7qgvy8fknrq70xq7lbq"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-bytes" ,rust-bytes-0.5)
+        ("rust-futures-core" ,rust-futures-core-0.3)
+        ("rust-futures-sink" ,rust-futures-sink-0.3)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-pin-project" ,rust-pin-project-0.4)
+        ("rust-tokio" ,rust-tokio-0.2)
+        ("rust-tokio-util" ,rust-tokio-util-0.3))))
+    (home-page "https://actix.rs")
+    (synopsis "Codec utilities for working with framed protocols")
+    (description
+     "This package provides codec utilities for working with framed
+protocols.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-actix-codec-0.2
+  (package
+    (inherit rust-actix-codec-0.3)
+    (name "rust-actix-codec")
+    (version "0.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "actix-codec" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "100k0n155fnnjqjz2s1gnwim2fp7s1mw942x0famg89cbh55zr89"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-bytes" ,rust-bytes-0.5)
+        ("rust-futures-core" ,rust-futures-core-0.3)
+        ("rust-futures-sink" ,rust-futures-sink-0.3)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-tokio" ,rust-tokio-0.2)
+        ("rust-tokio-util" ,rust-tokio-util-0.2))))))
+
+(define-public rust-actix-connect-1
+  (package
+    (name "rust-actix-connect")
+    (version "1.0.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "actix-connect" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0v77m394gzbrrzg12xkqgli11vwhig0zcxy3yhmq1s91j9bcjp69"))))
+    (build-system cargo-build-system)
+    (arguments
+     ;; XXX: The crate fails to't build with: "error[E0432]: unresolved import
+     ;; `trust_dns_resolver::Background`".  I assume it really expects
+     ;; trust-dns-resolver at version 0.18-alpha.2, which we do not provide.
+     `(#:skip-build? #true
+       #:cargo-inputs
+       (("rust-actix-codec" ,rust-actix-codec-0.2)
+        ("rust-actix-rt" ,rust-actix-rt-1)
+        ("rust-actix-service" ,rust-actix-service-1)
+        ("rust-actix-utils" ,rust-actix-utils-1)
+        ("rust-derive-more" ,rust-derive-more-0.99)
+        ("rust-either" ,rust-either-1)
+        ("rust-futures" ,rust-futures-0.3)
+        ("rust-http" ,rust-http-0.2)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-openssl" ,rust-openssl-0.10)
+        ("rust-rustls" ,rust-rustls-0.16)
+        ("rust-tokio-openssl" ,rust-tokio-openssl-0.4)
+        ("rust-tokio-rustls" ,rust-tokio-rustls-0.12)
+        ("rust-trust-dns-proto" ,rust-trust-dns-proto-0.18)
+        ("rust-trust-dns-resolver" ,rust-trust-dns-resolver-0.18)
+        ("rust-webpki" ,rust-webpki-0.21))
+       #:cargo-development-inputs
+       (("rust-actix-testing" ,rust-actix-testing-1))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-version-requirements
+           (lambda _
+             (substitute* "Cargo.toml"
+               (("0.18.0-alpha.2")
+                ,(package-version rust-trust-dns-proto-0.18)))
+             #t)))))
+    (home-page "https://actix.rs")
+    (synopsis "TCP connector service for Actix ecosystem")
+    (description
+     "This package provides a TCP connector service for Actix ecosystem.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-actix-derive-0.5
+  (package
+    (name "rust-actix-derive")
+    (version "0.5.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "actix-derive" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0k1kg4gkp2jhi5fgdfd0cq2qfbyy3gfgwqjrvzq1hzrjmynwwnmr"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #true              ;bootsrapping issues with rust-actix
+       #:cargo-inputs
+       (("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-1))
+       ;; #:cargo-development-inputs
+       ;; (("rust-actix" ,rust-actix-0.8))
+       ))
+    (home-page "https://github.com/actix/actix-derive/")
+    (synopsis "Proc macros for Actix Rust actor framework")
+    (description
+     "This package provides proc macros for the Rust actor framework Actix.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-actix-http-1
+  (package
+    (name "rust-actix-http")
+    (version "1.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "actix-http" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "06chrs9asbxmxzgiw5sw7ky97yrin9g88nmd6w407a6y9z668rn1"))))
+    (build-system cargo-build-system)
+    ;; XXX: The crate fails to't build with with the same error as
+    ;; rust-actix-connect.  Skip build for now.
+    (arguments
+     `(#:skip-build? #true
+       #:cargo-inputs
+       (("rust-actix-codec" ,rust-actix-codec-0.2)
+        ("rust-actix-connect" ,rust-actix-connect-1)
+        ("rust-actix-rt" ,rust-actix-rt-1)
+        ("rust-actix-service" ,rust-actix-service-1)
+        ("rust-actix-threadpool" ,rust-actix-threadpool-0.3)
+        ("rust-actix-tls" ,rust-actix-tls-1)
+        ("rust-actix-utils" ,rust-actix-utils-1)
+        ("rust-base64" ,rust-base64-0.11)
+        ("rust-bitflags" ,rust-bitflags-1)
+        ("rust-brotli2" ,rust-brotli2-0.3)
+        ("rust-bytes" ,rust-bytes-0.5)
+        ("rust-chrono" ,rust-chrono-0.4)
+        ("rust-copyless" ,rust-copyless-0.1)
+        ("rust-derive-more" ,rust-derive-more-0.99)
+        ("rust-either" ,rust-either-1)
+        ("rust-encoding-rs" ,rust-encoding-rs-0.8)
+        ("rust-failure" ,rust-failure-0.1)
+        ("rust-flate2" ,rust-flate2-1)
+        ("rust-futures-channel" ,rust-futures-channel-0.3)
+        ("rust-futures-core" ,rust-futures-core-0.3)
+        ("rust-futures-util" ,rust-futures-util-0.3)
+        ("rust-fxhash" ,rust-fxhash-0.2)
+        ("rust-h2" ,rust-h2-0.2)
+        ("rust-http" ,rust-http-0.2)
+        ("rust-httparse" ,rust-httparse-1)
+        ("rust-indexmap" ,rust-indexmap-1)
+        ("rust-language-tags" ,rust-language-tags-0.2)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-mime" ,rust-mime-0.3)
+        ("rust-percent-encoding" ,rust-percent-encoding-2)
+        ("rust-pin-project" ,rust-pin-project-0.4)
+        ("rust-rand" ,rust-rand-0.7)
+        ("rust-regex" ,rust-regex-1)
+        ("rust-ring" ,rust-ring-0.16)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-serde-urlencoded" ,rust-serde-urlencoded-0.6)
+        ("rust-sha1" ,rust-sha1-0.6)
+        ("rust-slab" ,rust-slab-0.4)
+        ("rust-time" ,rust-time-0.1))
+       #:cargo-development-inputs
+       (("rust-actix-http-test" ,rust-actix-http-test-1))))
+    (home-page "https://actix.rs")
+    (synopsis "HTTP primitives for the Actix ecosystem")
+    (description
+     "This package provides HTTP primitives for the Actix ecosystem.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-actix-http-test-1
+  (package
+    (name "rust-actix-http-test")
+    (version "1.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "actix-http-test" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "06z6iy9ffsjcw3g8zwwghky5zpyg7c1z823x35lgc4y1yjzxfizq"))))
+    (build-system cargo-build-system)
+    (arguments
+     ;; XXX: The crate fails to't build with with the same error as
+     ;; rust-actix-connect.  Skip build for now.
+     `(#:skip-build? #true
+       #:cargo-inputs
+       (("rust-actix-codec" ,rust-actix-codec-0.2)
+        ("rust-actix-connect" ,rust-actix-connect-1)
+        ("rust-actix-rt" ,rust-actix-rt-1)
+        ("rust-actix-server" ,rust-actix-server-1)
+        ("rust-actix-service" ,rust-actix-service-1)
+        ("rust-actix-testing" ,rust-actix-testing-1)
+        ("rust-actix-utils" ,rust-actix-utils-1)
+        ("rust-awc" ,rust-awc-1)
+        ("rust-base64" ,rust-base64-0.11)
+        ("rust-bytes" ,rust-bytes-0.5)
+        ("rust-env-logger" ,rust-env-logger-0.6)
+        ("rust-futures" ,rust-futures-0.3)
+        ("rust-http" ,rust-http-0.2)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-net2" ,rust-net2-0.2)
+        ("rust-openssl" ,rust-openssl-0.10)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-serde-urlencoded" ,rust-serde-urlencoded-0.6)
+        ("rust-sha1" ,rust-sha1-0.6)
+        ("rust-slab" ,rust-slab-0.4)
+        ("rust-time" ,rust-time-0.1))
+       #:cargo-development-inputs
+       (("rust-actix-http" ,rust-actix-http-1))))
+    (home-page "https://actix.rs")
+    (synopsis "Helpers for Actix applications to use during testing")
+    (description
+     "This package provides various helpers for Actix applications to use
+during testing.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-actix-macros-0.1
+  (package
+    (name "rust-actix-macros")
+    (version "0.1.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "actix-macros" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0mfnprr8gy1gb5xcr18iwsv781hysvh7sr5xxg6ghyi61gh8rjml"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-1))
+       #:cargo-development-inputs
+       (("rust-actix-rt" ,rust-actix-rt-1)
+        ("rust-futures-util" ,rust-futures-util-0.3)
+        ("rust-trybuild" ,rust-trybuild-1))))
+    (home-page "https://actix.rs")
+    (synopsis "Actix runtime macros")
+    (description "This package provides Actix runtime macros.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-actix-router-0.2
+  (package
+    (name "rust-actix-router")
+    (version "0.2.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "actix-router" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0df2626hk4n4yki6j88v3k0gcm8pi5hdnm1mldyvyi8nvbdzgldv"))))
+    (build-system cargo-build-system)
+    (arguments
+     ;; Tests fail with "error[E0432]: unresolved import `serde_derive`".
+     `(#:tests? #false
+       #:cargo-inputs
+       (("rust-bytestring" ,rust-bytestring-0.1)
+        ("rust-http" ,rust-http-0.2)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-regex" ,rust-regex-1)
+        ("rust-serde" ,rust-serde-1))))
+    (home-page "https://actix.rs")
+    (synopsis "Resource path matching library")
+    (description "This package provides resource path matching library.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-actix-rt-1
+  (package
+    (name "rust-actix-rt")
+    (version "1.1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "actix-rt" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "09xj7pxy0ng13rd6hya1md98dhk0586p4bsfrwmxxlg028lwqgql"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-actix-macros" ,rust-actix-macros-0.1)
+        ("rust-actix-threadpool" ,rust-actix-threadpool-0.3)
+        ("rust-copyless" ,rust-copyless-0.1)
+        ("rust-futures-channel" ,rust-futures-channel-0.3)
+        ("rust-futures-util" ,rust-futures-util-0.3)
+        ("rust-smallvec" ,rust-smallvec-1)
+        ("rust-tokio" ,rust-tokio-0.2))))
+    (home-page "https://actix.rs")
+    (synopsis "Actix runtime")
+    (description "This package provides Actix runtime.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-actix-server-1
+  (package
+    (name "rust-actix-server")
+    (version "1.0.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "actix-server" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "13khzd6pz9pqksxmw2syipfwq2gi5v9warx6pa24g8iccxp7wh25"))))
+    (build-system cargo-build-system)
+    (arguments
+     ;; Tests fail with "error[E0432]: unresolved import `bytes`" error.
+     `(#:tests? #false
+       #:cargo-inputs
+       (("rust-actix-codec" ,rust-actix-codec-0.3)
+        ("rust-actix-rt" ,rust-actix-rt-1)
+        ("rust-actix-service" ,rust-actix-service-1)
+        ("rust-actix-utils" ,rust-actix-utils-2)
+        ("rust-futures-channel" ,rust-futures-channel-0.3)
+        ("rust-futures-util" ,rust-futures-util-0.3)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-mio" ,rust-mio-0.6)
+        ("rust-mio-uds" ,rust-mio-uds-0.6)
+        ("rust-num-cpus" ,rust-num-cpus-1)
+        ("rust-slab" ,rust-slab-0.4)
+        ("rust-socket2" ,rust-socket2-0.3))))
+    (home-page "https://actix.rs")
+    (synopsis "General purpose TCP server built for the Actix ecosystem")
+    (description
+     "This package provides a general purpose TCP server built for the Actix
+ecosystem.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-actix-service-1
+  (package
+    (name "rust-actix-service")
+    (version "1.0.6")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "actix-service" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1fw2b1cpxrpqk778mpvxv0cazj0pwjyb6khzs4syhnqvb1fl6lh0"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-futures-util" ,rust-futures-util-0.3)
+        ("rust-pin-project" ,rust-pin-project-0.4))
+       #:cargo-development-inputs
+       (("rust-actix-rt" ,rust-actix-rt-1)
+        ("rust-criterion" ,rust-criterion-0.3))))
+    (home-page "https://actix.rs")
+    (synopsis
+     "Service trait and combinators for asynchronous request/response")
+    (description
+     "This package provides a service trait and combinators for representing
+asynchronous request/response operations.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-actix-testing-1
+  (package
+    (name "rust-actix-testing")
+    (version "1.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "actix-testing" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "073r3rlnz9km7w7zfhpj6snb453hhp7d354adbp79awrhyirq8s7"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-actix-macros" ,rust-actix-macros-0.1)
+        ("rust-actix-rt" ,rust-actix-rt-1)
+        ("rust-actix-server" ,rust-actix-server-1)
+        ("rust-actix-service" ,rust-actix-service-1)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-socket2" ,rust-socket2-0.3))))
+    (home-page "https://actix.rs")
+    (synopsis "Actix testing utils")
+    (description "This package provides Actix testing utils.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-actix-threadpool-0.3
+  (package
+    (name "rust-actix-threadpool")
+    (version "0.3.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "actix-threadpool" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0c0frk19ml94d01mvgv5g60mhq86gfi34c3lsfpvjm18016z02fj"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-derive-more" ,rust-derive-more-0.99)
+        ("rust-futures-channel" ,rust-futures-channel-0.3)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-num-cpus" ,rust-num-cpus-1)
+        ("rust-parking-lot" ,rust-parking-lot-0.11)
+        ("rust-threadpool" ,rust-threadpool-1))))
+    (home-page "https://actix.rs")
+    (synopsis "Actix thread pool for sync code")
+    (description "This package provides Actix thread pool for sync code.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-actix-tls-1
+  (package
+    (name "rust-actix-tls")
+    (version "1.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "actix-tls" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1a4m96jz6vzmknpk5m803c337c6dillnqq4w71nrlphhmzxb9rd4"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-actix-codec" ,rust-actix-codec-0.2)
+        ("rust-actix-rt" ,rust-actix-rt-1)
+        ("rust-actix-service" ,rust-actix-service-1)
+        ("rust-actix-utils" ,rust-actix-utils-1)
+        ("rust-derive-more" ,rust-derive-more-0.99)
+        ("rust-either" ,rust-either-1)
+        ("rust-futures" ,rust-futures-0.3)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-native-tls" ,rust-native-tls-0.2)
+        ("rust-openssl" ,rust-openssl-0.10)
+        ("rust-rustls" ,rust-rustls-0.16)
+        ("rust-tokio-openssl" ,rust-tokio-openssl-0.4)
+        ("rust-tokio-rustls" ,rust-tokio-rustls-0.12)
+        ("rust-tokio-tls" ,rust-tokio-tls-0.3)
+        ("rust-webpki" ,rust-webpki-0.21)
+        ("rust-webpki-roots" ,rust-webpki-roots-0.17))
+       #:cargo-development-inputs
+       (("rust-actix-testing" ,rust-actix-testing-1))))
+    (home-page "https://actix.rs")
+    (synopsis "TLS acceptor services for Actix ecosystem")
+    (description
+     "This package provides TLS acceptor services for Actix ecosystem.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-actix-utils-2
+  (package
+    (name "rust-actix-utils")
+    (version "2.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "actix-utils" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0nkby6wpwcmjr3zcghd962l2hyjry0aayncyjzbx2ck6qpg2541f"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-actix-codec" ,rust-actix-codec-0.3)
+        ("rust-actix-rt" ,rust-actix-rt-1)
+        ("rust-actix-service" ,rust-actix-service-1)
+        ("rust-bitflags" ,rust-bitflags-1)
+        ("rust-bytes" ,rust-bytes-0.5)
+        ("rust-either" ,rust-either-1)
+        ("rust-futures-channel" ,rust-futures-channel-0.3)
+        ("rust-futures-sink" ,rust-futures-sink-0.3)
+        ("rust-futures-util" ,rust-futures-util-0.3)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-pin-project" ,rust-pin-project-0.4)
+        ("rust-slab" ,rust-slab-0.4))))
+    (home-page "https://actix.rs")
+    (synopsis "Network related services and utilities for the Actix ecosystem")
+    (description
+     "This package provides various network related services and utilities for
+the Actix ecosystem.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-actix-utils-1
+  (package
+    (inherit rust-actix-utils-2)
+    (name "rust-actix-utils")
+    (version "1.0.6")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "actix-utils" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0kkz2hfz8r2k1gxcjk2qq1h1qxlb487g023q4v1dw6ph3dizby7w"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-actix-codec" ,rust-actix-codec-0.2)
+        ("rust-actix-rt" ,rust-actix-rt-1)
+        ("rust-actix-service" ,rust-actix-service-1)
+        ("rust-bitflags" ,rust-bitflags-1)
+        ("rust-bytes" ,rust-bytes-0.5)
+        ("rust-either" ,rust-either-1)
+        ("rust-futures" ,rust-futures-0.3)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-pin-project" ,rust-pin-project-0.4)
+        ("rust-slab" ,rust-slab-0.4))))))
+
+(define-public rust-actix-web-2
+  (package
+    (name "rust-actix-web")
+    (version "2.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "actix-web" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0dgnn7xiw2yhvrx7l7b57gwra7yfqawka5xz1lpq4h0h8qifhn1i"))))
+    (build-system cargo-build-system)
+    (arguments
+     ;; XXX: The crate fails to't build with with the same error as
+     ;; rust-actix-connect.  Skip build for now.
+     `(#:skip-build? #true
+       #:cargo-inputs
+       (("rust-actix-codec" ,rust-actix-codec-0.2)
+        ("rust-actix-http" ,rust-actix-http-1)
+        ("rust-actix-macros" ,rust-actix-macros-0.1)
+        ("rust-actix-router" ,rust-actix-router-0.2)
+        ("rust-actix-rt" ,rust-actix-rt-1)
+        ("rust-actix-server" ,rust-actix-server-1)
+        ("rust-actix-service" ,rust-actix-service-1)
+        ("rust-actix-testing" ,rust-actix-testing-1)
+        ("rust-actix-threadpool" ,rust-actix-threadpool-0.3)
+        ("rust-actix-tls" ,rust-actix-tls-1)
+        ("rust-actix-utils" ,rust-actix-utils-1)
+        ("rust-actix-web-codegen" ,rust-actix-web-codegen-0.2)
+        ("rust-awc" ,rust-awc-1)
+        ("rust-bytes" ,rust-bytes-0.5)
+        ("rust-derive-more" ,rust-derive-more-0.99)
+        ("rust-encoding-rs" ,rust-encoding-rs-0.8)
+        ("rust-futures" ,rust-futures-0.3)
+        ("rust-fxhash" ,rust-fxhash-0.2)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-mime" ,rust-mime-0.3)
+        ("rust-net2" ,rust-net2-0.2)
+        ("rust-openssl" ,rust-openssl-0.10)
+        ("rust-pin-project" ,rust-pin-project-0.4)
+        ("rust-regex" ,rust-regex-1)
+        ("rust-rustls" ,rust-rustls-0.16)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-serde-urlencoded" ,rust-serde-urlencoded-0.6)
+        ("rust-time" ,rust-time-0.1)
+        ("rust-url" ,rust-url-2))))
+    (home-page "https://actix.rs")
+    (synopsis "Powerful, pragmatic, and fast web framework for Rust")
+    (description
+     "Actix Web is a powerful, pragmatic, and fast web framework for
+Rust.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-actix-web-codegen-0.2
+  (package
+    (name "rust-actix-web-codegen")
+    (version "0.2.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "actix-web-codegen" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0rjpzwsm51nfjqsz269jwbkiic9d454bnsk9ng882wp0rdsz86x7"))))
+    (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))
+       #:cargo-development-inputs
+       (("rust-actix-rt" ,rust-actix-rt-1)
+        ("rust-actix-web" ,rust-actix-web-2))))
+    (home-page "https://actix.rs")
+    (synopsis "Actix web proc macros")
+    (description "This package provides Actix web proc macros.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-addr2line-0.11
   (package
     (name "rust-addr2line")
@@ -106,7 +758,7 @@ library in Rust.")
         ("rust-cpp-demangle" ,rust-cpp-demangle-0.2)
         ("rust-gimli" ,rust-gimli-0.20)
         ("rust-smallvec" ,rust-smallvec-1)
-        ("rust-lazycell" ,rust-lazycell-1.2))
+        ("rust-lazycell" ,rust-lazycell-1))
        #:cargo-development-inputs
        (("rust-backtrace" ,rust-backtrace-0.3)
         ("rust-clap" ,rust-clap-2)
@@ -141,7 +793,7 @@ Rust, using gimli.")
         ("rust-fallible-iterator" ,rust-fallible-iterator-0.2)
         ("rust-gimli" ,rust-gimli-0.18)
         ("rust-intervaltree" ,rust-intervaltree-0.2)
-        ("rust-lazycell" ,rust-lazycell-1.2)
+        ("rust-lazycell" ,rust-lazycell-1)
         ("rust-object" ,rust-object-0.12)
         ("rust-rustc-demangle" ,rust-rustc-demangle-0.1)
         ("rust-smallvec" ,rust-smallvec-0.6))
@@ -169,7 +821,7 @@ Rust, using gimli.")
     (arguments
      `(#:cargo-inputs
        (("rust-compiler-builtins" ,rust-compiler-builtins-0.1)
-        ("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1.0))
+        ("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1))
        #:cargo-development-inputs
        (("rust-bencher" ,rust-bencher-0.1)
         ("rust-rand" ,rust-rand-0.4))))
@@ -181,19 +833,157 @@ the Rust programming language.")
     (license (list license:bsd-3
                    license:zlib))))
 
+(define-public rust-aead-0.3
+  (package
+    (name "rust-aead")
+    (version "0.3.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "aead" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0c8388alvivcj4qkxgh4s4l6fbczn3p8wc0pnar6crlfvcdmvjbz"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-blobby" ,rust-blobby-0.3)
+        ("rust-generic-array" ,rust-generic-array-0.14)
+        ("rust-heapless" ,rust-heapless-0.5))))
+    (home-page "https://github.com/RustCrypto/traits")
+    (synopsis "Traits for Authenticated Encryption with Associated Data (AEAD)
+algorithms")
+    (description "This package provides traits for Authenticated Encryption
+with Associated Data (AEAD) algorithms.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-aes-0.4
+  (package
+    (name "rust-aes")
+    (version "0.4.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "aes" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (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))))
+
+(define-public rust-aes-gcm-0.6
+  (package
+    (name "rust-aes-gcm")
+    (version "0.6.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "aes-gcm" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1lga8my3zlc0b1nhcpc1hrbykfm014fqs6d64bwrjqii05w01xc6"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-aead" ,rust-aead-0.3)
+        ("rust-aes" ,rust-aes-0.4)
+        ("rust-block-cipher" ,rust-block-cipher-0.7)
+        ("rust-ghash" ,rust-ghash-0.3)
+        ("rust-subtle" ,rust-subtle-2)
+        ("rust-zeroize" ,rust-zeroize-1))
+       #:cargo-development-inputs
+       (("rust-criterion" ,rust-criterion-0.3)
+        ("rust-criterion-cycles-per-byte"
+         ,rust-criterion-cycles-per-byte-0.1)
+        ("rust-hex-literal" ,rust-hex-literal-0.2))))
+    (home-page "https://github.com/RustCrypto/AEADs")
+    (synopsis "AES-GCM (Galois/Counter Mode) Authenticated Encryption")
+    (description "This package provides a pure Rust implementation of the
+AES-GCM (Galois/Counter Mode) Authenticated Encryption with Associated
+Data (AEAD) Cipher with optional architecture-specific hardware
+acceleration.")
+    (license (list license:asl2.0 license:expat))))
+
+(define-public rust-aes-soft-0.4
+  (package
+    (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"))))
+    (build-system cargo-build-system)
+    (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))))
+    (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.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-aesni-0.7
+  (package
+    (name "rust-aesni")
+    (version "0.7.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "aesni" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0r6j0mjkyqnwvgib01cvrwfw8rlx1biw75234niv723n1fdx6l6h"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-block-cipher" ,rust-block-cipher-0.7)
+        ("rust-opaque-debug" ,rust-opaque-debug-0.2)
+        ("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))))
+
 (define-public rust-afl-0.8
   (package
     (name "rust-afl")
     (version "0.8.0")
     (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "afl" version))
-        (file-name
-         (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32
-          "1rw11hycfjhqbc7z1smn75m0sczq519msjwimxh7b8s6n4pzk5r7"))))
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "afl" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1rw11hycfjhqbc7z1smn75m0sczq519msjwimxh7b8s6n4pzk5r7"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -203,10 +993,10 @@ the Rust programming language.")
         ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-libc" ,rust-libc-0.2)
         ("rust-rustc-version" ,rust-rustc-version-0.2)
-        ("rust-xdg" ,rust-xdg-2.2))
+        ("rust-xdg" ,rust-xdg-2))
        #:cargo-development-inputs
        (("rust-rustc-version" ,rust-rustc-version-0.2)
-        ("rust-xdg" ,rust-xdg-2.2))))
+        ("rust-xdg" ,rust-xdg-2))))
     (home-page "https://github.com/rust-fuzz/afl.rs")
     (synopsis
      "Fuzzing Rust code with american-fuzzy-lop")
@@ -233,11 +1023,11 @@ the Rust programming language.")
        #:cargo-inputs
        (("rust-rustc-version" ,rust-rustc-version-0.2)
         ("rust-cc" ,rust-cc-1)
-        ("rust-xdg" ,rust-xdg-2.2)
+        ("rust-xdg" ,rust-xdg-2)
         ("rust-clap" ,rust-clap-2))
        #:cargo-development-inputs
        (("rust-rustc-version" ,rust-rustc-version-0.2)
-        ("rust-xdg" ,rust-xdg-2.2))))))
+        ("rust-xdg" ,rust-xdg-2))))))
 
 (define-public rust-afl-0.4
   (package
@@ -254,28 +1044,82 @@ the Rust programming language.")
         (base32
          "0g2chc18ji7qxi0d03n2ai140qdcww958v5si6rcjnnhmri1vyfb"))))))
 
-(define-public rust-aho-corasick-0.7
+(define-public rust-ahash-0.4
   (package
-    (name "rust-aho-corasick")
-    (version "0.7.13")
+    (name "rust-ahash")
+    (version "0.4.4")
     (source
      (origin
        (method url-fetch)
-       (uri (crate-uri "aho-corasick" version))
+       (uri (crate-uri "ahash" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "06bxygcis4pfx0axi1ld0lclg8mf4plywdy7fnkyw2hrhcb74rkd"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-const-random" ,rust-const-random-0.1))
+       #:cargo-development-inputs
+       (("rust-criterion" ,rust-criterion-0.3)
+        ("rust-fnv" ,rust-fnv-1)
+        ("rust-fxhash" ,rust-fxhash-0.2)
+        ("rust-hex" ,rust-hex-0.3)
+        ("rust-no-panic" ,rust-no-panic-0.1)
+        ("rust-rand" ,rust-rand-0.6)
+        ("rust-seahash" ,rust-seahash-3))))
+    (home-page "https://github.com/tkaitchuck/ahash")
+    (synopsis "Non-cryptographic hash function using AES-NI")
+    (description "This package provides a non-cryptographic hash function
+using AES-NI for high performance.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-ahash-0.3
+  (package
+    (inherit rust-ahash-0.4)
+    (name "rust-ahash")
+    (version "0.3.8")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "ahash" version))
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "11hfmqf90rdvjdpk0x1lixw1s9n08y3fxfy9zqsk0k2wpbc68c84"))))
+         "05qjnr0wccch0gg2kghg0xyh8qd5gfqd15q9dd6r1lamcs375zg8"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-const-random" ,rust-const-random-0.1))
+       #:cargo-development-inputs
+       (("rust-criterion" ,rust-criterion-0.3)
+        ("rust-fnv" ,rust-fnv-1)
+        ("rust-fxhash" ,rust-fxhash-0.2)
+        ("rust-hex" ,rust-hex-0.3)
+        ("rust-no-panic" ,rust-no-panic-0.1)
+        ("rust-rand" ,rust-rand-0.6)
+        ("rust-seahash" ,rust-seahash-3))))))
+
+(define-public rust-aho-corasick-0.7
+  (package
+    (name "rust-aho-corasick")
+    (version "0.7.15")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "aho-corasick" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1rb8gzhljl8r87dpf2n5pnqnkl694casgns4ma0sqzd4zazzw13l"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:cargo-inputs (("rust-memchr" ,rust-memchr-2))
+     `(#:cargo-inputs
+       (("rust-memchr" ,rust-memchr-2))
        #:cargo-development-inputs
        (("rust-doc-comment" ,rust-doc-comment-0.3))))
     (home-page "https://github.com/BurntSushi/aho-corasick")
     (synopsis "Fast multiple substring searching")
-    (description
-     "Fast multiple substring searching.")
+    (description "This package provides a fast multiple substring searching.")
     (license (list license:unlicense license:expat))))
 
 (define-public rust-aho-corasick-0.6
@@ -293,11 +1137,10 @@ the Rust programming language.")
          (base32
           "19f8v503ibvlyr824g5ynicrh1lsmp2i0zmpszr8lqay0qw3vkl1"))))
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-memchr" ,rust-memchr-2))
        #:cargo-development-inputs
-       (("rust-csv" ,rust-csv-1.1)
+       (("rust-csv" ,rust-csv-1)
         ("rust-docopt" ,rust-docopt-1.1)
         ("rust-memmap" ,rust-memmap-0.6)
         ("rust-quickcheck" ,rust-quickcheck-0.7)
@@ -391,38 +1234,51 @@ code that is generic with regard to the algebraic entity types.")
 @code{alga} crate.")
     (license license:asl2.0)))
 
-(define-public rust-andrew-0.2
+(define-public rust-alloc-no-stdlib-2
+  (package
+    (name "rust-alloc-no-stdlib")
+    (version "2.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "alloc-no-stdlib" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "19lhmi73fii1b6vrzh23vvp5yjqm33cb94h9yz17pn25b51yr4ji"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/dropbox/rust-alloc-no-stdlib")
+    (synopsis "Dynamic allocator that may be used with or without the stdlib")
+    (description "This package provides a dynamic allocator that may be used
+with or without the stdlib.  This allows a package with nostd to allocate
+memory dynamically and be used either with a custom allocator, items on the
+stack, or by a package that wishes to simply use Box<>.  It also provides
+options to use calloc or a mutable global variable for pre-zeroed memory.")
+    (license license:bsd-3)))
+
+(define-public rust-alloc-no-stdlib-2.0 rust-alloc-no-stdlib-2)
+
+(define-public rust-alloc-stdlib-0.2
   (package
-    (name "rust-andrew")
+    (name "rust-alloc-stdlib")
     (version "0.2.1")
     (source
      (origin
        (method url-fetch)
-       (uri (crate-uri "andrew" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
+       (uri (crate-uri "alloc-stdlib" version))
+       (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0pmklwcwy8g1jras46fz8xcny779zfqpg4riksrbdhkjk3w0jzwv"))))
+         "1hj3r1x88aajnvigdck0diygj2isc90wa271kkj1swgiq3nxfzk9"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-bitflags" ,rust-bitflags-1)
-        ("rust-line-drawing" ,rust-line-drawing-0.7)
-        ("rust-rusttype" ,rust-rusttype-0.7)
-        ("rust-walkdir" ,rust-walkdir-2)
-        ("rust-xdg" ,rust-xdg-2.2)
-        ("rust-xml-rs" ,rust-xml-rs-0.8))
-       #:cargo-development-inputs
-       (("rust-smithay-client-toolkit" ,rust-smithay-client-toolkit-0.4))))
-    (inputs
-     `(("wayland" ,wayland)))
-    (home-page "https://github.com/trimental/andrew")
-    (synopsis "Provides convenient drawing of objects to buffers")
-    (description
-     "The @code{andrew} crate provides convenient drawing of objects such as
-shapes, lines and text to buffers.")
-    (license license:expat)))
+       (("rust-alloc-no-stdlib" ,rust-alloc-no-stdlib-2.0))))
+    (home-page "https://github.com/dropbox/rust-alloc-no-stdlib")
+    (synopsis "A dynamic allocator example that may be used with the stdlib")
+    (description "This package provides a dynamic allocator example that may
+be used with the stdlib.")
+    (license license:bsd-3)))
 
 (define-public rust-android-glue-0.2
   (package
@@ -443,51 +1299,72 @@ shapes, lines and text to buffers.")
     (description "This package provides the glue for the Android JNI.")
     (license license:expat)))
 
-(define-public rust-ansi-term-0.12
+(define-public rust-android-log-sys-0.1
   (package
-    (name "rust-ansi-term")
-    (version "0.12.1")
+    (name "rust-android-log-sys")
+    (version "0.1.2")
     (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "ansi_term" version))
-        (file-name (string-append name "-" version ".crate"))
-        (sha256
-         (base32
-          "1ljmkbilxgmhavxvxqa7qvm6f3fjggi7q2l3a72q9x0cxjvrnanm"))))
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "android_log-sys" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0klq7cp4lm74gjf9p12zdjcr159blbicrfvadmaqvfxbi8njw1dq"))))
+    (arguments `(#:skip-build? #true))  ;XXX: Android only
+    (build-system cargo-build-system)
+    (home-page "https://github.com/nercury/android_log-sys-rs")
+    (synopsis "FFI bindings to Android log Library")
+    (description "This package provides FFI bindings to Android log Library.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-android-logger-0.8
+  (package
+    (name "rust-android-logger")
+    (version "0.8.6")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "android_logger" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0kj8i03fqqwxd803hrk27j2399v27ajjj9zxi2nnyml0s4nm9gcc"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-serde" ,rust-serde-1)
-        ("rust-winapi" ,rust-winapi-0.3))
-       #:cargo-development-inputs
-       (("rust-doc-comment" ,rust-doc-comment-0.3)
-        ("rust-regex" ,rust-regex-1)
-        ("rust-serde-json" ,rust-serde-json-1))))
-    (home-page "https://github.com/ogham/rust-ansi-term")
-    (synopsis "Library for ANSI terminal colours and styles")
+       (("rust-android-log-sys" ,rust-android-log-sys-0.1)
+        ("rust-env-logger" ,rust-env-logger-0.7)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-log" ,rust-log-0.4))))
+    (home-page "https://github.com/Nercury/android_logger-rs")
+    (synopsis "Logging implementation for @code{log}")
     (description
-     "This is a library for controlling colours and formatting, such as red bold
-text or blue underlined text, on ANSI terminals.")
-    (license license:expat)))
+     "This library is a drop-in replacement for @code{env_logger}.  Instead,
+it outputs messages to Android's logcat.")
+    (license (list license:expat license:asl2.0))))
 
-(define-public rust-ansi-term-0.11
+(define-public rust-ansi-parser-0.6
   (package
-    (inherit rust-ansi-term-0.12)
-    (name "rust-ansi-term")
-    (version "0.11.0")
+    (name "rust-ansi-parser")
+    (version "0.6.5")
     (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "ansi_term" version))
-        (file-name (string-append name "-" version ".crate"))
-        (sha256
-         (base32
-          "16wpvrghvd0353584i1idnsgm0r3vchg8fyrm0x8ayv1rgvbljgf"))))
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "ansi-parser" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "152idb8a6gwdxzj6m099h3xgx8vw0sjc6skgw94nm2k3y5swc6kn"))))
+    (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-winapi" ,rust-winapi-0.3))))))
+     `(#:cargo-inputs
+       (("rust-heapless" ,rust-heapless-0.5)
+        ("rust-nom" ,rust-nom-4.2))))
+    (home-page "https://gitlab.com/DavidBittner/ansi-parser")
+    (synopsis "Library using nom for parsing ANSI escape codes")
+    (description
+     "This package provides a library using nom for parsing ANSI
+escape codes.")
+    (license license:mpl2.0)))
 
 (define-public rust-antidote-1.0
   (package
@@ -510,10 +1387,10 @@ text or blue underlined text, on ANSI terminals.")
     (license (list license:asl2.0
                    license:expat))))
 
-(define-public rust-anyhow-1.0
+(define-public rust-anyhow-1
   (package
     (name "rust-anyhow")
-    (version "1.0.26")
+    (version "1.0.37")
     (source
      (origin
        (method url-fetch)
@@ -522,56 +1399,47 @@ text or blue underlined text, on ANSI terminals.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0g6mzcxyj88k8bv8rr3zx4yczgimqvvgr12n14a29sqj6s1zc9bq"))))
+         "11kaqp25lchr2ckyc46zm6blzndnw0w2w8qv0sp8z4xcxqgw2rzf"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-development-inputs
+     `(#:cargo-development-inputs
        (("rust-futures" ,rust-futures-0.3)
-        ("rust-rustversion" ,rust-rustversion-1.0)
-        ("rust-thiserror" ,rust-thiserror-1.0)
-        ("rust-trybuild" ,rust-trybuild-1.0))))
+        ("rust-rustversion" ,rust-rustversion-1)
+        ("rust-thiserror" ,rust-thiserror-1)
+        ("rust-trybuild" ,rust-trybuild-1))))
     (home-page "https://github.com/dtolnay/anyhow")
     (synopsis "Flexible concrete Error type")
     (description "This package provides a flexible concrete Error type built on
 @code{std::error::Error}.")
     (license (list license:expat license:asl2.0))))
 
-(define-public rust-aom-sys-0.1
+(define-public rust-app-dirs2-2
   (package
-    (name "rust-aom-sys")
-    (version "0.1.4")
+    (name "rust-app-dirs2")
+    (version "2.3.1")
     (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "aom-sys" version))
-        (file-name
-         (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32
-          "1bqcpkycv1d67r6jcl9npfbw6rkl829rdq9w6vlpb0rjqxp0xzsn"))))
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "app_dirs2" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "04v2q3jkqr32mwqs4niqfyhbkvvgrcsw0dajwqaz83nc5hs1igsm"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-bindgen" ,rust-bindgen-0.53)
-        ("rust-metadeps" ,rust-metadeps-1.1))
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'set-environmental-variable
-           (lambda* (#:key inputs #:allow-other-keys)
-             (let ((clang (assoc-ref inputs "libclang")))
-               (setenv "LIBCLANG_PATH"
-                       (string-append clang "/lib")))
-             #t)))))
-    (native-inputs
-     `(("pkg-config" ,pkg-config)))
-    (inputs
-     `(("libaom" ,libaom)
-       ("libclang" ,clang)
-       ("llvm" ,llvm)))
-    (home-page "https://github.com/rust-av/aom-rs")
-    (synopsis "FFI bindings to aom")
-    (description "This package provides FFI bindings to aom.")
+       (("rust-jni" ,rust-jni-0.18)
+        ("rust-ndk-glue" ,rust-ndk-glue-0.2)
+        ("rust-winapi" ,rust-winapi-0.3)
+        ("rust-xdg" ,rust-xdg-2))
+       #:cargo-development-inputs
+       (("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-tempfile" ,rust-tempfile-3)
+        ("rust-test-case" ,rust-test-case-1))))
+    (home-page "https://lib.rs/app_dirs2")
+    (synopsis "Put app's data in the right place on every platform")
+    (description
+     "This package helps you to put your app's data in the right place
+on every platform.")
     (license license:expat)))
 
 (define-public rust-approx-0.3
@@ -656,7 +1524,7 @@ text or blue underlined text, on ANSI terminals.")
         ("rust-itertools" ,rust-itertools-0.8)
         ("rust-model" ,rust-model-0.1)
         ("rust-num-cpus" ,rust-num-cpus-1)
-        ("rust-once-cell" ,rust-once-cell-1.2)
+        ("rust-once-cell" ,rust-once-cell-1)
         ("rust-proptest" ,rust-proptest-0.8)
         ("rust-version-sync" ,rust-version-sync-0.8))))
     (home-page "https://github.com/vorner/arc-swap")
@@ -726,7 +1594,7 @@ that runs on Argon2.")
 (define-public rust-arrayref-0.3
   (package
     (name "rust-arrayref")
-    (version "0.3.5")
+    (version "0.3.6")
     (source
      (origin
        (method url-fetch)
@@ -735,11 +1603,10 @@ that runs on Argon2.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1vphy316jbgmgckk4z7m8csvlyc8hih9w95iyq48h8077xc2wf0d"))))
+         "0i6m1l3f73i0lf0cjdf5rh3xpvxydyhfbakq7xx7bkrp5qajgid4"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-development-inputs
+     `(#:cargo-development-inputs
        (("rust-quickcheck" ,rust-quickcheck-0.6))))
     (home-page "https://github.com/droundy/arrayref")
     (synopsis "Macros to take array references of slices")
@@ -801,6 +1668,31 @@ ArrayVec and ArrayString.")
         ("rust-matches" ,rust-matches-0.1)
         ("rust-serde-test" ,rust-serde-test-1))))))
 
+(define-public rust-as-slice-0.1
+  (package
+    (name "rust-as-slice")
+    (version "0.1.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "as-slice" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1rmhdfj11va424163d6r79wbgf2043i2p37s59ky6x2v8wiiqkdv"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-generic-array-0.14" ,rust-generic-array-0.14)
+        ("rust-generic-array-0.13" ,rust-generic-array-0.13)
+        ("rust-generic-array-0.12" ,rust-generic-array-0.12)
+        ("rust-stable-deref-trait" ,rust-stable-deref-trait-1))))
+    (home-page "https://github.com/japaric/as-slice")
+    (synopsis "AsSlice and AsMutSlice traits")
+    (description "This package provides @code{AsSlice} and @code{AsMutSlice}
+traits.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-ascii-1.0
   (package
     (name "rust-ascii")
@@ -848,31 +1740,6 @@ standard library.")
         ("rust-serde" ,rust-serde-1)
         ("rust-serde-test" ,rust-serde-test-1))))))
 
-(define-public rust-ascii-canvas-2
-  (package
-    (name "rust-ascii-canvas")
-    (version "2.0.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "ascii-canvas" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "0a9s8vrbc5jr6ry5ygjyfqmbs9gyya1v6dsxzsczpai8z4nvg3pz"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:skip-build? #t  ;; TODO: failes due to an unresolved import
-       #:cargo-inputs
-       (("rust-term" ,rust-term-0.5))))
-    (home-page "https://github.com/nikomatsakis/ascii-canvas")
-    (synopsis "Simple canvas for drawing lines and styled text and emitting to
-the terminal")
-    (description "@code{ASCII} canvas is a simple Rust library that allows you
-to draw lines and colored text and then write them to the terminal.  It uses
-the term library to handle the ANSI nonsense and hence it works on Windows,
-Mac, and Unix.")
-    (license (list license:asl2.0 license:expat))))
-
 (define-public rust-assert-cli-0.6
   (package
     (name "rust-assert-cli")
@@ -888,8 +1755,8 @@ Mac, and Unix.")
     (arguments
      `(#:tests? #f ;; requires `printenv`, but installing coreutils doesn't help
        #:cargo-inputs
-       (("rust-colored" ,rust-colored-1.9)
-        ("rust-difference" ,rust-difference-2.0)
+       (("rust-colored" ,rust-colored-1)
+        ("rust-difference" ,rust-difference-2)
         ("rust-environment" ,rust-environment-0.1)
         ("rust-failure" ,rust-failure-0.1)
         ("rust-failure-derive" ,rust-failure-derive-0.1)
@@ -929,6 +1796,29 @@ Mac, and Unix.")
     (description "Test CLI Applications.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-assert-cmd-0.9
+  (package
+    (inherit rust-assert-cmd-1)
+    (name "rust-assert-cmd")
+    (version "0.9.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "assert-cmd" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "02gq7j9qzjkbyq4hk18cih3kylk3dyxwa2gc5k7lah9kdwkhrdn5"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-escargot" ,rust-escargot-0.3)
+        ("rust-predicates" ,rust-predicates-0.9)
+        ("rust-predicates-core" ,rust-predicates-core-0.9)
+        ("rust-predicates-tree" ,rust-predicates-tree-0.9))
+       #:cargo-development-inputs
+       (("rust-docmatic" ,rust-docmatic-0.1))))))
+
 (define-public rust-assert-fs-0.11
   (package
     (name "rust-assert-fs")
@@ -953,11 +1843,41 @@ Mac, and Unix.")
        #:cargo-development-inputs
        (("rust-docmatic" ,rust-docmatic-0.1))))
     (home-page "https://github.com/assert-rs/assert_fs")
-    (synopsis "Filesystem fixtures and assertions for testing")
+    (synopsis "File system fixtures and assertions for testing")
     (description
-     "Filesystem fixtures and assertions for testing.")
+     "File system fixtures and assertions for testing.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-assert-json-diff-1
+  (package
+    (name "rust-assert-json-diff")
+    (version "1.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "assert-json-diff" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1h2w4n8f8a1n9sc8snka0arzw5x95ky5k8i7603z3lhkcplwnna2"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-extend" ,rust-extend-0.1)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-json" ,rust-serde-json-1))
+       #:cargo-development-inputs
+       (("rust-version-sync" ,rust-version-sync-0.8))))
+    (home-page "https://github.com/davidpdrsn/assert-json-diff")
+    (synopsis "Easily compare two JSON values and get great output")
+    (description
+     "This crate includes macros for comparing two serializable values
+by diffing their JSON representations.  It is designed to give much
+more helpful error messages than the standard @code{assert_eq!}.  It
+basically does a diff of the two objects and tells you the exact
+differences.  This is useful when asserting that two large JSON
+objects are the same.")
+    (license license:expat)))
+
 (define-public rust-assert-matches-1.3
   (package
     (name "rust-assert-matches")
@@ -1003,18 +1923,678 @@ Mac, and Unix.")
     (description "This package provides a libsyntax ast builder.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-async-attributes-1
+  (package
+    (name "rust-async-attributes")
+    (version "1.1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "async-attributes" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "08w41342hybxhln7j7hjsf7v04p3r9d6qdczfwp8d53xj5bd3lzg"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-1))
+       #:cargo-development-inputs
+       (("rust-async-std" ,rust-async-std-0.99))))
+    (home-page "https://github.com/async-rs/async-attributes")
+    (synopsis "Experimental language-level polyfills for Async Rust")
+    (description
+     "This package provides experimental language-level polyfills for Async
+Rust.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-async-channel-1
+  (package
+    (name "rust-async-channel")
+    (version "1.5.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "async-channel" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1ffn42ig82az8ndgjb545imifarcavwxs9dff6psbdkdjj1hsx2r"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-concurrent-queue" ,rust-concurrent-queue-1)
+        ("rust-event-listener" ,rust-event-listener-2)
+        ("rust-futures-core" ,rust-futures-core-0.3))
+       #:cargo-development-inputs
+       (("rust-blocking" ,rust-blocking-0.6)
+        ("rust-easy-parallel" ,rust-easy-parallel-3)
+        ("rust-futures-lite" ,rust-futures-lite-1))))
+    (home-page "https://github.com/stjepang/async-channel")
+    (synopsis "Async multi-producer multi-consumer channel")
+    (description
+     "Async multi-producer multi-consumer channel")
+    (license (list license:asl2.0 license:expat))))
+
+(define-public rust-async-compression-0.3
+  (package
+    (name "rust-async-compression")
+    (version "0.3.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "async-compression" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "164dfy1wrl9qbj95rvcpkfbrkpz3c1s7mk288sv9cwp7rj5pc8ch"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-brotli" ,rust-brotli-3)
+        ("rust-bytes" ,rust-bytes-0.5)
+        ("rust-bzip2" ,rust-bzip2-0.3)
+        ("rust-flate2" ,rust-flate2-1)
+        ("rust-futures-core" ,rust-futures-core-0.3)
+        ("rust-futures-io" ,rust-futures-io-0.3)
+        ("rust-memchr" ,rust-memchr-2)
+        ("rust-pin-project-lite" ,rust-pin-project-lite-0.1)
+        ("rust-tokio" ,rust-tokio-0.2)
+        ("rust-xz2" ,rust-xz2-0.1)
+        ("rust-zstd" ,rust-zstd-0.5)
+        ("rust-zstd-safe" ,rust-zstd-safe-2))
+       #:cargo-development-inputs
+       (("rust-bytes" ,rust-bytes-0.5)
+        ("rust-futures" ,rust-futures-0.3)
+        ("rust-futures-test" ,rust-futures-test-0.3)
+        ("rust-ntest" ,rust-ntest-0.3)
+        ("rust-proptest" ,rust-proptest-0.9)
+        ("rust-proptest-derive" ,rust-proptest-derive-0.1)
+        ("rust-rand" ,rust-rand-0.7)
+        ("rust-timebomb" ,rust-timebomb-0.1)
+        ("rust-tokio" ,rust-tokio-0.2))))
+    (home-page "https://github.com/Nemo157/async-compression")
+    (synopsis "Adaptors between compression crates and Rust's modern asynchronous IO types")
+    (description "This package provides adaptors between compression crates
+and Rust's modern asynchronous IO types.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-async-dup-1
+  (package
+    (name "rust-async-dup")
+    (version "1.2.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "async-dup" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0z3grxarv9wpck6jm31qayib9barf12a47gvii9934n0ilms29vl"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-futures-io" ,rust-futures-io-0.3)
+        ("rust-simple-mutex" ,rust-simple-mutex-1))
+       #:cargo-development-inputs
+       (("rust-futures" ,rust-futures-0.3)
+        ("rust-smol" ,rust-smol-0.1))))
+    (home-page "https://github.com/stjepang/async-dup")
+    (synopsis "Duplicate an async I/O handle")
+    (description
+     "This crate provides two tools, Arc and Mutex.  Arc implements
+AsyncRead, AsyncWrite, and AsyncSeek if a reference to the inner type
+does.  A reference to Mutex implements AsyncRead, AsyncWrite, and
+AsyncSeek if the inner type does.")
+    (license (list license:asl2.0 license:expat))))
+
+(define-public rust-async-executor-1
+  (package
+    (name "rust-async-executor")
+    (version "1.4.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "async-executor" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0ilivvzc082ynr096xxghc8hdmlmacxilcpn738ylh5lqxq7k1zb"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-async-task" ,rust-async-task-4)
+        ("rust-concurrent-queue" ,rust-concurrent-queue-1)
+        ("rust-fastrand" ,rust-fastrand-1)
+        ("rust-futures-lite" ,rust-futures-lite-1)
+        ("rust-once-cell" ,rust-once-cell-1)
+        ("rust-vec-arena" ,rust-vec-arena-1))
+       #:cargo-development-inputs
+       (("rust-async-channel" ,rust-async-channel-1)
+        ("rust-async-io" ,rust-async-io-1)
+        ("rust-easy-parallel" ,rust-easy-parallel-3))))
+    (home-page "https://github.com/stjepang/async-executor")
+    (synopsis "Async executor")
+    (description "This library provides async executors.")
+    (license (list license:asl2.0 license:expat))))
+
+(define-public rust-async-global-executor-1
+  (package
+    (name "rust-async-global-executor")
+    (version "1.4.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "async-global-executor" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "017s1lik153s587l6q9x5bf9i1n7gxqcg3zn2mdgvf16rm4rn1vk"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-async-executor" ,rust-async-executor-1)
+        ("rust-async-io" ,rust-async-io-1)
+        ("rust-futures-lite" ,rust-futures-lite-1)
+        ("rust-num-cpus" ,rust-num-cpus-1)
+        ("rust-once-cell" ,rust-once-cell-1)
+        ("rust-tokio" ,rust-tokio-0.2)
+        ("rust-tokio" ,rust-tokio-0.3))
+       #:cargo-development-inputs
+       (("rust-doc-comment" ,rust-doc-comment-0.3))))
+    (home-page "https://github.com/async-rs/async-global-executor")
+    (synopsis "Global executor built on top of @code{async-executor} and
+@code{async-io}")
+    (description
+     "This package provides a global executor built on top of
+@code{async-executor} and @code{async-io}.")
+    (license (list license:asl2.0 license:expat))))
+
+(define-public rust-async-io-1
+  (package
+    (name "rust-async-io")
+    (version "1.3.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "async-io" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1zg0bvb58615qar6ih3ddr1cyjh0fsrfdhpy90z1qxjnfpqgh5ck"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-concurrent-queue" ,rust-concurrent-queue-1)
+        ("rust-fastrand" ,rust-fastrand-1)
+        ("rust-futures-lite" ,rust-futures-lite-1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-nb-connect" ,rust-nb-connect-1)
+        ("rust-once-cell" ,rust-once-cell-1)
+        ("rust-parking" ,rust-parking-2)
+        ("rust-polling" ,rust-polling-2)
+        ("rust-vec-arena" ,rust-vec-arena-1)
+        ("rust-waker-fn" ,rust-waker-fn-1)
+        ("rust-winapi" ,rust-winapi-0.3))
+       #:cargo-development-inputs
+       (("rust-async-channel" ,rust-async-channel-1)
+        ("rust-async-net" ,rust-async-net-1)
+        ("rust-inotify" ,rust-inotify-0.8)
+        ("rust-nix" ,rust-nix-0.18)
+        ("rust-signal-hook" ,rust-signal-hook-0.1)
+        ("rust-tempfile" ,rust-tempfile-3)
+        ("rust-timerfd" ,rust-timerfd-1)
+        ("rust-uds-windows" ,rust-uds-windows-0.1))))
+    (home-page "https://github.com/stjepang/async-io")
+    (synopsis "Async I/O and timers")
+    (description
+     "This crate provides two tools: Async, an adapter for standard networking
+types (and many other types) to use in async programs, and Timer, a future
+that expires at a point in time.")
+    (license (list license:asl2.0 license:expat))))
+
+(define-public rust-async-log-1
+  (package
+    (name "rust-async-log")
+    (version "1.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "async-log" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "16ymra7f8169br9ss9m9n4l6rjcav9ns6r9mv4nr4r9i9wq37fpm"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-async-log-attributes" ,rust-async-log-attributes-1)
+        ("rust-backtrace" ,rust-backtrace-0.3)
+        ("rust-log" ,rust-log-0.4))))
+    (home-page "https://github.com/async-rs/async-log")
+    (synopsis "Async tracing capabilities for the @code{log} crate")
+    (description
+     "This crate provides extension types and hooks to @code{log} to enable
+asynchronous logging.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-async-log-attributes-1
+  (package
+    (name "rust-async-log-attributes")
+    (version "1.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "async-log-attributes" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0b9nysb5yxf772cinl5rsyhl2zazj2qfhbckv1kjz9qr3gkgi5ys"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-proc-macro2" ,rust-proc-macro2-0.4)
+        ("rust-quote" ,rust-quote-0.6)
+        ("rust-syn" ,rust-syn-0.15))))
+    (home-page "https://github.com/rustasync/runtime")
+    (synopsis
+     "Proc Macro attributes for the async-log crate.")
+    (description
+     "This package provides proc macro attributes for the @code{async-log}
+crate.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-async-macros-1
+  (package
+    (name "rust-async-macros")
+    (version "1.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "async-macros" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1fib4wxiym9f045xqb8a2gyfa8yym3hb62g4jqjfmzn14jdxa8g4"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #false
+       #:cargo-inputs
+       (("rust-futures-core-preview" ,rust-futures-core-preview-0.3)
+        ("rust-pin-utils" ,rust-pin-utils-0.1))
+       #:cargo-development-inputs
+       (("rust-futures-preview" ,rust-futures-preview-0.3))))
+    (home-page "https://github.com/async-rs/async-macros")
+    (synopsis "Macros for async-std")
+    (description "Macros for async-std.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-async-mutex-1
+  (package
+    (name "rust-async-mutex")
+    (version "1.4.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "async-mutex" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0vhmsscqx48dmxw0yir6az0pbwcq6qjvcv2f43vdpn95vd9bi7a7"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #true      ;XXX: enable when rust-async-std-1 is packaged
+       #:cargo-inputs
+       (("rust-event-listener" ,rust-event-listener-2))
+       #:cargo-development-inputs
+       (;("rust-async-std" ,rust-async-std-1)
+        ("rust-futures" ,rust-futures-0.3)
+        ("rust-futures-intrusive" ,rust-futures-intrusive-0.3)
+        ("rust-futures-lite" ,rust-futures-lite-1)
+        ("rust-smol" ,rust-smol-0.1)
+        ("rust-tokio" ,rust-tokio-0.2))))
+    (home-page "https://github.com/stjepang/async-lock")
+    (synopsis "Async synchronisation primitives")
+    (description "This crate provides the following async synchronisation
+primitives:
+
+@itemize
+@item Barrier: enables tasks to synchronize all together at the same time.
+@item Mutex: a mutual exclusion lock.
+@item RwLock: a reader-writer lock, allowing any number of readers or a single writer.
+@item Semaphore: limits the number of concurrent operations.
+@end itemize")
+    (license (list license:asl2.0 license:expat))))
+
+(define-public rust-async-native-tls-0.3
+  (package
+    (name "rust-async-native-tls")
+    (version "0.3.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "async-native-tls" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0cwv4vbrvcbv58b51y1azfbszzgzhrzxx92q5nl6hk6kkf97m7ly"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #true       ;XXX: build when rust-async-std-1 is packaged
+       #:cargo-inputs
+       (;;("rust-async-std" ,rust-async-std-1)
+        ("rust-native-tls" ,rust-native-tls-0.2)
+        ("rust-thiserror" ,rust-thiserror-1)
+        ("rust-tokio" ,rust-tokio-0.2)
+        ("rust-url" ,rust-url-2))
+       #:cargo-development-inputs
+       (("rust-threadpool" ,rust-threadpool-1))))
+    (home-page "https://docs.rs/crate/async-native-tls/")
+    (synopsis "Native TLS using futures")
+    (description "Native TLS using futures")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-async-net-1
+  (package
+    (name "rust-async-net")
+    (version "1.5.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "async-net" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1rgvvqb1l86hawl1j0jfyzq35yracbbh29109131izmghmf4gph6"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-async-io" ,rust-async-io-1)
+        ("rust-blocking" ,rust-blocking-1)
+        ("rust-fastrand" ,rust-fastrand-1)
+        ("rust-futures-lite" ,rust-futures-lite-1))))
+    (home-page "https://github.com/stjepang/async-net")
+    (synopsis "Async networking primitives for TCP/UDP/Unix communication")
+    (description
+     "Async networking primitives for TCP/UDP/Unix communication")
+    (license (list license:asl2.0 license:expat))))
+
+(define-public rust-async-process-1
+  (package
+    (name "rust-async-process")
+    (version "1.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "async-process" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1nmvqwqxzy0gv7n8agknaijns9dsxqj81bxms4bs647vq44ym32c"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-test-flags '("--release" "--"
+                            "--skip=set_current_dir_works"
+                            "--skip=signal_reported_right"
+                            "--skip=stdin_works")
+       #:cargo-inputs
+       (("rust-async-io" ,rust-async-io-1)
+        ("rust-blocking" ,rust-blocking-1)
+        ("rust-cfg-if" ,rust-cfg-if-0.1)
+        ("rust-event-listener" ,rust-event-listener-2)
+        ("rust-futures-lite" ,rust-futures-lite-1)
+        ("rust-once-cell" ,rust-once-cell-1)
+        ("rust-signal-hook" ,rust-signal-hook-0.1)
+        ("rust-winapi" ,rust-winapi-0.3))))
+    (home-page "https://github.com/stjepang/async-process")
+    (synopsis "Async interface for working with processes")
+    (description
+     "This crate is an async version of @code{std::process}.  A background
+thread named @code{async-process} is lazily created on first use, which waits
+for spawned child processes to exit and then calls the @code{wait()} syscall
+to clean up the ``zombie'' processes.
+
+This is unlike the process API in the standard library, where dropping
+a running Child leaks its resources.")
+    (license (list license:asl2.0 license:expat))))
+
+(define-public rust-async-std-0.99
+  (package
+    (name "rust-async-std")
+    (version "0.99.12")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "async-std" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1k34181r1xzalyf7alka0ibnbqll6s5l435ycydm7fv1g6gill24"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-test-flags '("--release" "--" "--skip=io_timeout")
+       #:cargo-inputs
+       (("rust-async-attributes" ,rust-async-attributes-1)
+        ("rust-async-macros" ,rust-async-macros-1)
+        ("rust-async-task" ,rust-async-task-1)
+        ("rust-broadcaster" ,rust-broadcaster-0.2)
+        ("rust-crossbeam-channel" ,rust-crossbeam-channel-0.3)
+        ("rust-crossbeam-deque" ,rust-crossbeam-deque-0.7)
+        ("rust-crossbeam-utils" ,rust-crossbeam-utils-0.6)
+        ("rust-futures-core" ,rust-futures-core-0.3)
+        ("rust-futures-io" ,rust-futures-io-0.3)
+        ("rust-futures-timer" ,rust-futures-timer-1)
+        ("rust-kv-log-macro" ,rust-kv-log-macro-1)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-memchr" ,rust-memchr-2)
+        ("rust-mio" ,rust-mio-0.6)
+        ("rust-mio-uds" ,rust-mio-uds-0.6)
+        ("rust-num-cpus" ,rust-num-cpus-1)
+        ("rust-once-cell" ,rust-once-cell-1)
+        ("rust-pin-project-lite" ,rust-pin-project-lite-0.1)
+        ("rust-pin-utils" ,rust-pin-utils-0.1)
+        ("rust-slab" ,rust-slab-0.4))
+       #:cargo-development-inputs
+       (("rust-femme" ,rust-femme-1)
+        ("rust-futures" ,rust-futures-0.3)
+        ("rust-tempdir" ,rust-tempdir-0.3))))
+    (home-page "https://async.rs")
+    (synopsis "Async version of the Rust standard library")
+    (description
+     "This crate provides an async version of @code{std}.  It provides all the
+interfaces you are used to, but in an async version and ready for Rust's
+@code{async/await} syntax.")
+    (license (list license:asl2.0 license:expat))))
+
+(define-public rust-async-stream-0.3
+  (package
+    (name "rust-async-stream")
+    (version "0.3.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "async-stream" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0p19qn5igblb86d35lda72q8vimk2iw8hk7r07wjj5y0rdqdyw1n"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#: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-trybuild" ,rust-trybuild-1))))
+    (home-page "https://github.com/tokio-rs/async-stream")
+    (synopsis "Asynchronous streams using async & await notation")
+    (description
+     "This package provides asynchronous streams using async & await
+notation.")
+    (license license:expat)))
+
+(define-public rust-async-stream-impl-0.3
+  (package
+    (name "rust-async-stream-impl")
+    (version "0.3.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "async-stream-impl" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0w0aif9aw103b5wrm1svkqdh7aaihjywa21819d8m3lzzj78nm53"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-test-flags '("--release" "--"
+                            "--skip=try_stream"
+                            "--skip=stream")
+       #:cargo-inputs
+       (("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-1))
+       #: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))))
+    (home-page "https://github.com/tokio-rs/async-stream")
+    (synopsis "Proc macros for async-stream crate")
+    (description
+     "This package provides proc macros for @code{rust-async-stream}
+crate.")
+    (license license:expat)))
+
+(define-public rust-async-task-4
+  (package
+    (name "rust-async-task")
+    (version "4.0.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "async-task" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1w0a1c8jim6s5bvcyiiwg9m4bdv3xnd4hbjm97ndgmphmgg32679"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-development-inputs
+       (("rust-atomic-waker" ,rust-atomic-waker-1)
+        ("rust-easy-parallel" ,rust-easy-parallel-3)
+        ("rust-flume" ,rust-flume-0.10))))
+    (home-page "https://github.com/stjepang/async-task")
+    (synopsis "Task abstraction for building executors")
+    (description
+     "This package provides a task abstraction for building executors.")
+    (license (list license:asl2.0 license:expat))))
+
+(define-public rust-async-task-3
+  (package
+    (inherit rust-async-task-4)
+    (name "rust-async-task")
+    (version "3.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "async-task" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1lrm7cm9dpashmkbqa8mvglbf85gadviqil7qnnrm0pjdqap4xy1"))))
+    (arguments
+     `(#:cargo-development-inputs
+       (("rust-crossbeam" ,rust-crossbeam-0.7)
+        ("rust-futures" ,rust-futures-0.3))))))
+
+(define-public rust-async-task-1
+  (package
+    (inherit rust-async-task-4)
+    (name "rust-async-task")
+    (version "1.3.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "async-task" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0p88087z43zvv924my16a17qd65kdlv1r59h80h73rvrn0bc1hha"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-libc" ,rust-libc-0.2)
+        ("rust-winapi" ,rust-winapi-0.3))
+       #:cargo-development-inputs
+       (("rust-crossbeam" ,rust-crossbeam-0.7)
+        ("rust-futures" ,rust-futures-0.3))))))
+
+(define-public rust-async-trait-0.1
+  (package
+    (name "rust-async-trait")
+    (version "0.1.42")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "async-trait" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0gd13pqgw5m6l4bqwjkickq13c4v0jxzxs5i4dwmldrlgvklafld"))))
+    (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))
+       #:cargo-development-inputs
+       (("rust-rustversion" ,rust-rustversion-1)
+        ("rust-tracing" ,rust-tracing-0.1)
+        ("rust-tracing-attributes" ,rust-tracing-attributes-0.1)
+        ("rust-tracing-futures" ,rust-tracing-futures-0.2)
+        ("rust-trybuild" ,rust-trybuild-1))))
+    (home-page "https://github.com/dtolnay/async-trait")
+    (synopsis "Type erasure for async trait methods")
+    (description "This package provides type erasure for async trait
+methods.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-atom-0.3
+  (package
+    (name "rust-atom")
+    (version "0.3.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "atom" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1qig9fcdqf07mzzpkicm5wgxv0zpr28njdsqf708wxq27yf6k1iw"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/slide-rs/atom")
+    (synopsis "A safe abstraction around AtomicPtr")
+    (description "This package provides a safe abstraction around AtomicPtr.")
+    (license license:asl2.0)))
+
+(define-public rust-atomic-waker-1
+  (package
+    (name "rust-atomic-waker")
+    (version "1.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "atomic-waker" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0ansiq5vlw684fhks2x4a4is2rqlbv50q5mi8x0fxxvx5q2p8lq6"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-development-inputs
+       (("rust-futures" ,rust-futures-0.3))))
+    (home-page "https://github.com/stjepang/atomic-waker")
+    (synopsis "Synchronization primitive for task wakeup")
+    (description
+     "This package provides a synchronization primitive for task wakeup.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-atty-0.2
   (package
     (name "rust-atty")
     (version "0.2.14")
     (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "atty" version))
-        (file-name (string-append name "-" version ".crate"))
-        (sha256
-         (base32
-          "1s7yslcs6a28c5vz7jwj63lkfgyx8mx99fdirlhi9lbhhzhrpcyr"))))
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "atty" version))
+       (file-name (string-append name "-" version ".crate"))
+       (sha256
+        (base32
+         "1s7yslcs6a28c5vz7jwj63lkfgyx8mx99fdirlhi9lbhhzhrpcyr"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -1028,10 +2608,10 @@ Mac, and Unix.")
      "This package provides a simple interface for querying atty.")
     (license license:expat)))
 
-(define-public rust-autocfg-1.0
+(define-public rust-autocfg-1
   (package
     (name "rust-autocfg")
-    (version "1.0.0")
+    (version "1.0.1")
     (source
      (origin
        (method url-fetch)
@@ -1040,7 +2620,7 @@ Mac, and Unix.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "17cv6pwb4q08s0ynpr4n8hv5299hcmhdgvdchzixfpw8y5qcgapq"))))
+         "0jj6i9zn4gjl03kjvziqdji6rwx8ykz8zk2ngpc331z2g3fk3c6d"))))
     (build-system cargo-build-system)
     (home-page "https://github.com/cuviper/autocfg")
     (synopsis
@@ -1051,7 +2631,7 @@ Mac, and Unix.")
 
 (define-public rust-autocfg-0.1
   (package
-    (inherit rust-autocfg-1.0)
+    (inherit rust-autocfg-1)
     (name "rust-autocfg")
     (version "0.1.7")
     (source
@@ -1064,6 +2644,32 @@ Mac, and Unix.")
           "1chwgimpx5z7xbag7krr9d8asxfqbh683qhgl9kn3hxk2l0djj8x"))))
     (arguments '(#:skip-build? #t))))
 
+(define-public rust-automod-1
+  (package
+    (name "rust-automod")
+    (version "1.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "automod" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1z8kdbvvz0k8mfs45mvs16lr9xj59cdcp0sm45fawfh93gai4mhg"))))
+    (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))
+       ;; Tests not included in tar.
+       #:tests? #f))
+    (home-page "https://github.com/dtolnay/automod")
+    (synopsis "Pull in every source file in a directory as a module")
+    (description "Pull in every source file in a directory as a module.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-average-0.10
   (package
     (name "rust-average")
@@ -1130,6 +2736,70 @@ in Rust.")
         ("rust-serde-json" ,rust-serde-json-1)
         ("rust-streaming-stats" ,rust-streaming-stats-0.2))))))
 
+(define-public rust-awc-1
+  (package
+    (name "rust-awc")
+    (version "1.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "awc" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1idacmq7n3irmdjkbxc5kdwspxk9w1gip94pcmfk7wky3m6isq6p"))))
+    (build-system cargo-build-system)
+    ;; XXX: The crate fails to't build with with the same error as
+    ;; rust-actix-connect.  Skip build for now.
+    (arguments
+     `(#:skip-build? #true
+       #:cargo-inputs
+       (("rust-actix-codec" ,rust-actix-codec-0.2)
+        ("rust-actix-http" ,rust-actix-http-1)
+        ("rust-actix-rt" ,rust-actix-rt-1)
+        ("rust-actix-service" ,rust-actix-service-1)
+        ("rust-base64" ,rust-base64-0.11)
+        ("rust-bytes" ,rust-bytes-0.5)
+        ("rust-derive-more" ,rust-derive-more-0.99)
+        ("rust-futures-core" ,rust-futures-core-0.3)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-mime" ,rust-mime-0.3)
+        ("rust-openssl" ,rust-openssl-0.10)
+        ("rust-percent-encoding" ,rust-percent-encoding-2)
+        ("rust-rand" ,rust-rand-0.7)
+        ("rust-rustls" ,rust-rustls-0.16)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-serde-urlencoded" ,rust-serde-urlencoded-0.6))
+       #:cargo-development-inputs
+       (("rust-actix-http-test" ,rust-actix-http-test-1)
+        ("rust-actix-web" ,rust-actix-web-2)
+        ("rust-brotli" ,rust-brotli-3))))
+    (home-page "https://actix.rs")
+    (synopsis "Async HTTP and WebSocket client library")
+    (description
+     "This package provides async HTTP and WebSocket client library
+built on the Actix ecosystem.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-az-1
+  (package
+    (name "rust-az")
+    (version "1.0.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "az" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0sb51w9pjcqb315dg6zv9wwqj1q2fldcc3xmfv0bhkmajiyx9g79"))))
+    (build-system cargo-build-system)
+    (home-page "https://gitlab.com/tspiteri/az")
+    (synopsis "Casts and checked casts")
+    (description "This crate provides casts and checked casts.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-backtrace-0.3
   (package
     (name "rust-backtrace")
@@ -1158,7 +2828,7 @@ in Rust.")
         ("rust-memmap" ,rust-memmap-0.7)
         ("rust-rustc-demangle" ,rust-rustc-demangle-0.1)
         ("rust-rustc-serialize" ,rust-rustc-serialize-0.3)
-        ("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1.0)
+        ("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1)
         ("rust-serde" ,rust-serde-1)
         ("rust-winapi" ,rust-winapi-0.3))))
     (home-page "https://github.com/rust-lang/backtrace-rs")
@@ -1169,10 +2839,25 @@ in Rust.")
 trace (backtrace) at runtime in a Rust program.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-backtrace-0.3.35
+  (package
+    (inherit rust-backtrace-0.3)
+    (name "rust-backtrace")
+    (version "0.3.35")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "backtrace" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0mfwbb6832rh1za304w8x37bvs9fjbybpmmz0iksqfzsaf108w8k"))))))
+
 (define-public rust-backtrace-sys-0.1
   (package
     (name "rust-backtrace-sys")
-    (version "0.1.35")
+    (version "0.1.37")
     (source
       (origin
         (method url-fetch)
@@ -1180,13 +2865,13 @@ trace (backtrace) at runtime in a Rust program.")
         (file-name (string-append name "-" version ".crate"))
         (sha256
          (base32
-          "066iviphi72mx9hd3njzsplk5v45jhi10mrccbbyij391ahsps3x"))))
+          "16a3igz22q9lnnjjr77f4k8ci48v8zdwrs67khx3h7wx3jzfpyqq"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-libc" ,rust-libc-0.2)
         ("rust-compiler-builtins" ,rust-compiler-builtins-0.1)
-        ("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1.0)
+        ("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1)
         ("rust-cc" ,rust-cc-1))))
     (home-page "https://github.com/rust-lang/backtrace-rs")
     (synopsis "Bindings to the libbacktrace gcc library")
@@ -1195,10 +2880,58 @@ trace (backtrace) at runtime in a Rust program.")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-base58-0.1
+  (package
+    (name "rust-base58")
+    (version "0.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "base58" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "10xfw6v7jzn9i682mkw9nqybzafrvl3i2wawwgp5a8gh2n0fw92h"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/debris/base58")
+    (synopsis "Tiny and fast base58 encoding")
+    (description
+     "Encode to base58 using only Rust.  This package is based on
+@url{https://github.com/trezor/trezor-crypto/blob/master/base58.c} at commit
+c6e7d37.  However, this package works only up to 128 bytes.")
+    (license license:expat)))
+
+(define-public rust-base64-0.13
+  (package
+    (name "rust-base64")
+    (version "0.13.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "base64" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1z82g23mbzjgijkpcrilc7nljpxpvpf7zxf6iyiapkgka2ngwkch"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-development-inputs
+       (("rust-criterion" ,rust-criterion-0.3)
+        ("rust-rand" ,rust-rand-0.6)
+        ("rust-structopt" ,rust-structopt-0.3))))
+    (home-page "https://github.com/marshallpierce/rust-base64")
+    (synopsis "Encodes and decodes base64 as bytes or utf8")
+    (description
+     "This package encodes and decodes base64 as bytes or utf8.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-base64-0.12
   (package
+    (inherit rust-base64-0.13)
     (name "rust-base64")
-    (version "0.12.2")
+    (version "0.12.3")
     (source
      (origin
        (method url-fetch)
@@ -1207,7 +2940,7 @@ trace (backtrace) at runtime in a Rust program.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0ryc48pp8dpx3rl1dcwn723dyfgifi4imh1f6kwd95lcqh6sy8z2"))
+         "1zq33had71xh48n17g4kqs96szhx3yh7qibzwi4fk217n3vz0h9l"))
        (modules '((guix build utils)))
        (snippet
         '(begin
@@ -1215,17 +2948,11 @@ trace (backtrace) at runtime in a Rust program.")
            (substitute* "src/lib.rs"
              (("\\(doctest") "(test"))
            #t))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-development-inputs
        (("rust-criterion" ,rust-criterion-0.3)
         ("rust-doc-comment" ,rust-doc-comment-0.3)
-        ("rust-rand" ,rust-rand-0.6))))
-    (home-page "https://github.com/marshallpierce/rust-base64")
-    (synopsis "Encodes and decodes base64 as bytes or utf8")
-    (description
-     "This package encodes and decodes base64 as bytes or utf8.")
-    (license (list license:expat license:asl2.0))))
+        ("rust-rand" ,rust-rand-0.6))))))
 
 (define-public rust-base64-0.11
   (package
@@ -1258,7 +2985,7 @@ trace (backtrace) at runtime in a Rust program.")
          "13k6bvd3n6dm7jqn9x918w65dd9xhx454bqphbnv0bkd6n9dj98b"))))
     (arguments
      `(#:cargo-inputs
-       (("rust-byteorder" ,rust-byteorder-1.3))
+       (("rust-byteorder" ,rust-byteorder-1))
        #:cargo-development-inputs
        (("rust-criterion" ,rust-criterion-0.2)
         ("rust-rand" ,rust-rand-0.4))))))
@@ -1277,7 +3004,7 @@ trace (backtrace) at runtime in a Rust program.")
         (base32 "0hs62r35bgxslawyrn1vp9rmvrkkm76fqv0vqcwd048vs876r7a8"))))
     (arguments
      `(#:cargo-inputs
-       (("rust-byteorder" ,rust-byteorder-1.3)
+       (("rust-byteorder" ,rust-byteorder-1)
         ("rust-safemem" ,rust-safemem-0.3))
        #:cargo-development-inputs
        (("rust-rand" ,rust-rand-0.4))))))
@@ -1354,6 +3081,32 @@ and no more (caveat: black_box is still missing!).")
 tracebacks.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-bigdecimal-0.2
+  (package
+    (name "rust-bigdecimal")
+    (version "0.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "bigdecimal" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0fd5chyy76y4qb043w1bbgz1v22f9hw5703f5r90ac5hwqk3qh6c"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-num-bigint" ,rust-num-bigint-0.3)
+        ("rust-num-integer" ,rust-num-integer-0.1)
+        ("rust-num-traits" ,rust-num-traits-0.2)
+        ("rust-serde" ,rust-serde-1))
+       #:cargo-development-inputs
+       (("rust-serde-json" ,rust-serde-json-1))))
+    (home-page "https://github.com/akubera/bigdecimal-rs")
+    (synopsis "Arbitrary precision decimal numbers")
+    (description "This package provides arbitrary precision decimal numbers.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-bincode-1
   (package
     (name "rust-bincode")
@@ -1371,7 +3124,7 @@ tracebacks.")
     (arguments
      `(#:cargo-inputs
        (("rust-serde" ,rust-serde-1)
-        ("rust-byteorder" ,rust-byteorder-1.3))
+        ("rust-byteorder" ,rust-byteorder-1))
        #:cargo-development-inputs
        (("rust-serde-bytes" ,rust-serde-bytes-0.11)
         ("rust-serde-derive" ,rust-serde-derive-1))))
@@ -1383,8 +3136,81 @@ tracebacks.")
 that uses Serde for transforming structs into bytes and vice versa!")
     (license license:expat)))
 
+(define-public rust-bincode-0.8
+  (package
+    (inherit rust-bincode-1)
+    (name "rust-bincode")
+    (version "0.8.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "bincode" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0nbj0lwykwa1a7sa4303rxgpng9p2hcz9s5d5qcrckrpmcxjsjkf"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-byteorder" ,rust-byteorder-1)
+        ("rust-num-traits" ,rust-num-traits-0.1)
+        ("rust-serde" ,rust-serde-1))
+       #:cargo-development-inputs
+       (("rust-serde-bytes" ,rust-serde-bytes-0.10)
+        ("rust-serde-derive" ,rust-serde-derive-1))))))
+
+(define-public rust-bindgen-0.55
+  (package
+    (name "rust-bindgen")
+    (version "0.55.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "bindgen" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0hxlvy9q9984rr3rqaxwmgxjrd9wh11mcc161hv3shz6b7jkrcbm"))))
+    (build-system cargo-build-system)
+    (inputs
+     `(("clang" ,clang)))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-cexpr" ,rust-cexpr-0.4)
+        ("rust-cfg-if" ,rust-cfg-if-0.1)
+        ("rust-clang-sys" ,rust-clang-sys-1)
+        ("rust-clap" ,rust-clap-2)
+        ("rust-env-logger" ,rust-env-logger-0.7)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-lazycell" ,rust-lazycell-1)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-peeking-take-while" ,rust-peeking-take-while-0.1)
+        ("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-regex" ,rust-regex-1)
+        ("rust-rustc-hash" ,rust-rustc-hash-1)
+        ("rust-shlex" ,rust-shlex-0.1)
+        ("rust-which" ,rust-which-3))
+       #:cargo-development-inputs
+       (("rust-clap" ,rust-clap-2)
+        ("rust-diff" ,rust-diff-0.1)
+        ("rust-shlex" ,rust-shlex-0.1))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'enable-unstable-features
+           (lambda _
+             (setenv "RUSTC_BOOTSTRAP" "1")
+             #t)))))
+    (home-page "https://rust-lang.github.io/rust-bindgen/")
+    (synopsis "Generate Rust FFI bindings to C and C++ libraries.")
+    (description "This package can be used to automatically generate Rust FFI
+bindings to C and C++ libraries.")
+    (license license:bsd-3)))
+
 (define-public rust-bindgen-0.54
   (package
+    (inherit rust-bindgen-0.55)
     (name "rust-bindgen")
     (version "0.54.1")
     (source
@@ -1407,35 +3233,21 @@ that uses Serde for transforming structs into bytes and vice versa!")
         ("rust-clap" ,rust-clap-2)
         ("rust-env-logger" ,rust-env-logger-0.7)
         ("rust-lazy-static" ,rust-lazy-static-1)
-        ("rust-lazycell" ,rust-lazycell-1.2)
+        ("rust-lazycell" ,rust-lazycell-1)
         ("rust-log" ,rust-log-0.4)
         ("rust-peeking-take-while" ,rust-peeking-take-while-0.1)
         ("rust-proc-macro2" ,rust-proc-macro2-1)
         ("rust-quote" ,rust-quote-1)
         ("rust-regex" ,rust-regex-1)
-        ("rust-rustc-hash" ,rust-rustc-hash-1.1)
+        ("rust-rustc-hash" ,rust-rustc-hash-1)
         ("rust-shlex" ,rust-shlex-0.1)
-        ("rust-which" ,rust-which-3.1))
+        ("rust-which" ,rust-which-3))
        #:cargo-development-inputs
        (("rust-clap" ,rust-clap-2)
         ("rust-diff" ,rust-diff-0.1)
-        ("rust-shlex" ,rust-shlex-0.1))
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'set-environmental-variable
-           (lambda* (#:key inputs #:allow-other-keys)
-             (let ((clang (assoc-ref inputs "libclang")))
-               (setenv "LIBCLANG_PATH"
-                       (string-append clang "/lib")))
-             #t)))))
+        ("rust-shlex" ,rust-shlex-0.1))))
     (inputs
-     `(("libclang" ,clang)))
-    (home-page "https://rust-lang.github.io/rust-bindgen/")
-    (synopsis
-     "Automatically generates Rust FFI bindings to C and C++ libraries")
-    (description
-     "Automatically generates Rust FFI bindings to C and C++ libraries.")
-    (license license:bsd-3)))
+     `(("clang" ,clang)))))
 
 (define-public rust-bindgen-0.53
   (package
@@ -1460,27 +3272,19 @@ that uses Serde for transforming structs into bytes and vice versa!")
         ("rust-clap" ,rust-clap-2)
         ("rust-env-logger" ,rust-env-logger-0.7)
         ("rust-lazy-static" ,rust-lazy-static-1)
-        ("rust-lazycell" ,rust-lazycell-1.2)
+        ("rust-lazycell" ,rust-lazycell-1)
         ("rust-log" ,rust-log-0.4)
         ("rust-peeking-take-while" ,rust-peeking-take-while-0.1)
         ("rust-proc-macro2" ,rust-proc-macro2-1)
         ("rust-quote" ,rust-quote-1)
         ("rust-regex" ,rust-regex-1)
-        ("rust-rustc-hash" ,rust-rustc-hash-1.1)
+        ("rust-rustc-hash" ,rust-rustc-hash-1)
         ("rust-shlex" ,rust-shlex-0.1)
-        ("rust-which" ,rust-which-3.1))
+        ("rust-which" ,rust-which-3))
        #:cargo-development-inputs
        (("rust-clap" ,rust-clap-2)
         ("rust-diff" ,rust-diff-0.1)
-        ("rust-shlex" ,rust-shlex-0.1))
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'set-environmental-variable
-           (lambda* (#:key inputs #:allow-other-keys)
-             (let ((clang (assoc-ref inputs "libclang")))
-               (setenv "LIBCLANG_PATH"
-                       (string-append clang "/lib")))
-             #t)))))))
+        ("rust-shlex" ,rust-shlex-0.1))))))
 
 (define-public rust-bindgen-0.52
   (package
@@ -1508,25 +3312,17 @@ that uses Serde for transforming structs into bytes and vice versa!")
         ("rust-env-logger" ,rust-env-logger-0.7)
         ("rust-proc-macro2" ,rust-proc-macro2-1)
         ("rust-quote" ,rust-quote-1)
-        ("rust-rustc-hash" ,rust-rustc-hash-1.1)
+        ("rust-rustc-hash" ,rust-rustc-hash-1)
         ("rust-bitflags" ,rust-bitflags-1)
-        ("rust-lazycell" ,rust-lazycell-1.2)
+        ("rust-lazycell" ,rust-lazycell-1)
         ("rust-regex" ,rust-regex-1)
         ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-clap" ,rust-clap-2)
-        ("rust-which" ,rust-which-3.1))
+        ("rust-which" ,rust-which-3))
        #:cargo-development-inputs
        (("rust-clap" ,rust-clap-2)
         ("rust-diff" ,rust-diff-0.1)
-        ("rust-shlex" ,rust-shlex-0.1))
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'set-environmental-variable
-           (lambda* (#:key inputs #:allow-other-keys)
-             (let ((clang (assoc-ref inputs "libclang")))
-               (setenv "LIBCLANG_PATH"
-                       (string-append clang "/lib")))
-             #t)))))))
+        ("rust-shlex" ,rust-shlex-0.1))))))
 
 (define-public rust-bindgen-0.51
   (package
@@ -1554,12 +3350,12 @@ that uses Serde for transforming structs into bytes and vice versa!")
         ("rust-env-logger" ,rust-env-logger-0.6)
         ("rust-proc-macro2" ,rust-proc-macro2-1)
         ("rust-quote" ,rust-quote-1)
-        ("rust-rustc-hash" ,rust-rustc-hash-1.1)
+        ("rust-rustc-hash" ,rust-rustc-hash-1)
         ("rust-bitflags" ,rust-bitflags-1)
         ("rust-regex" ,rust-regex-1)
         ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-clap" ,rust-clap-2)
-        ("rust-which" ,rust-which-3.1))
+        ("rust-which" ,rust-which-3))
        #:cargo-development-inputs
        (("rust-clap" ,rust-clap-2)
         ("rust-diff" ,rust-diff-0.1)
@@ -1596,12 +3392,78 @@ that uses Serde for transforming structs into bytes and vice versa!")
         ("rust-quote" ,rust-quote-0.6)
         ("rust-regex" ,rust-regex-1)
         ("rust-shlex" ,rust-shlex-0.1)
-        ("rust-which" ,rust-which-2.0))
+        ("rust-which" ,rust-which-2))
        #:cargo-development-inputs
        (("rust-clap" ,rust-clap-2)
         ("rust-diff" ,rust-diff-0.1)
         ("rust-shlex" ,rust-shlex-0.1))))))
 
+(define-public rust-bindgen-0.47
+  (package
+    (inherit rust-bindgen-0.50)
+    (name "rust-bindgen")
+    (version "0.47.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "bindgen" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0b9fyq3h4lz5xfy6gv5h8v6j3hzyqcarlylvw9zc715pas1pz09a"))))
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-cexpr" ,rust-cexpr-0.3)
+        ("rust-cfg-if" ,rust-cfg-if-0.1)
+        ("rust-clang-sys" ,rust-clang-sys-0.26)
+        ("rust-clap" ,rust-clap-2)
+        ("rust-env-logger" ,rust-env-logger-0.6)
+        ("rust-hashbrown" ,rust-hashbrown-0.1)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-peeking-take-while" ,rust-peeking-take-while-0.1)
+        ("rust-proc-macro2" ,rust-proc-macro2-0.4)
+        ("rust-quote" ,rust-quote-0.6)
+        ("rust-regex" ,rust-regex-1)
+        ("rust-shlex" ,rust-shlex-0.1)
+        ("rust-which" ,rust-which-2))))))
+
+(define-public rust-bindgen-0.46
+  (package
+    (inherit rust-bindgen-0.50)
+    (name "rust-bindgen")
+    (version "0.46.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "bindgen" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1qclvj5pydn5camw396b0r3nz4nn3p5wpxg4fgg1favp043pyzwg"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-cexpr" ,rust-cexpr-0.3)
+        ("rust-cfg-if" ,rust-cfg-if-0.1)
+        ("rust-clang-sys" ,rust-clang-sys-0.26)
+        ("rust-clap" ,rust-clap-2)
+        ("rust-env-logger" ,rust-env-logger-0.6)
+        ("rust-hashbrown" ,rust-hashbrown-0.1)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-peeking-take-while" ,rust-peeking-take-while-0.1)
+        ("rust-proc-macro2" ,rust-proc-macro2-0.4)
+        ("rust-quote" ,rust-quote-0.6)
+        ("rust-regex" ,rust-regex-1)
+        ("rust-which" ,rust-which-2))
+       #:cargo-development-inputs
+       (("rust-clap" ,rust-clap-2)
+        ("rust-diff" ,rust-diff-0.1)
+        ("rust-shlex" ,rust-shlex-0.1))))) )
+
 (define-public rust-bindgen-0.37
   (package
     (inherit rust-bindgen-0.50)
@@ -1665,7 +3527,7 @@ that uses Serde for transforming structs into bytes and vice versa!")
         ("rust-quote" ,rust-quote-0.6)
         ("rust-regex" ,rust-regex-1)
         ("rust-shlex" ,rust-shlex-0.1)
-        ("rust-which" ,rust-which-2.0))
+        ("rust-which" ,rust-which-2))
        #:cargo-development-inputs
        (("rust-clap" ,rust-clap-2)
         ("rust-diff" ,rust-diff-0.1)
@@ -1704,6 +3566,26 @@ that uses Serde for transforming structs into bytes and vice versa!")
         ("rust-diff" ,rust-diff-0.1)
         ("rust-shlex" ,rust-shlex-0.1))))))
 
+(define-public rust-bit-field-0.10
+  (package
+    (name "rust-bit-field")
+    (version "0.10.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "bit-field" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "192rsg8g3ki85gj8rzslblnwr53yw5q4l8vfg6bf1lkn4cfdvdnw"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/phil-opp/rust-bit-field")
+    (synopsis "Methods for operating on individual bits and ranges of bits")
+    (description
+     "This is a simple crate which provides the BitField trait, which provides
+methods for operating on individual bits and ranges of bits on Rust's integral
+types.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-bit-set-0.5
   (package
     (name "rust-bit-set")
@@ -1730,6 +3612,27 @@ that uses Serde for transforming structs into bytes and vice versa!")
      "This package provides a set of bits.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-bit-set-0.4
+  (package
+    (inherit rust-bit-set-0.5)
+    (name "rust-bit-set")
+    (version "0.4.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "bit-set" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0320hhcbr73yzjpj2237vw2zq728yg7vmzb8dardg04ff4263gyr"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bit-vec" ,rust-bit-vec-0.4))
+       #:cargo-development-inputs
+       (("rust-rand" ,rust-rand-0.3))))))
+
 (define-public rust-bit-vec-0.5
   (package
     (name "rust-bit-vec")
@@ -1756,6 +3659,24 @@ that uses Serde for transforming structs into bytes and vice versa!")
      "This package provides a vector of bits.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-bit-vec-0.4
+  (package
+    (inherit rust-bit-vec-0.5)
+    (name "rust-bit-vec")
+    (version "0.4.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "bit-vec" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0pw902a8ail0k64a7092a8vngfzsq7xkj2r22hz6q1z62s5zzd02"))))
+    (arguments
+     `(#:cargo-development-inputs
+       (("rust-rand" ,rust-rand-0.3))))))
+
 (define-public rust-bitflags-1
   (package
     (name "rust-bitflags")
@@ -1776,6 +3697,21 @@ behave like a set of bitflags.")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-bitflags-0.9
+  (package
+    (inherit rust-bitflags-1)
+    (name "rust-bitflags")
+    (version "0.9.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "bitflags" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "19dk39gfwmhi3iy1x0wgml1fv1bkb525ywy25zwihbm063i05zaf"))))))
+
 (define-public rust-bitflags-0.8
   (package
     (inherit rust-bitflags-1)
@@ -1842,6 +3778,39 @@ behave like a set of bitflags.")
       "Library for reading/writing un-aligned values from/to streams in big-endian and little-endian formats.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-bitvec-0.19
+  (package
+    (name "rust-bitvec")
+    (version "0.19.4")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "bitvec" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "10bz751jbsy8fj203ibjwil07p2fwfzvx7b326wfssaravlkbfm7"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-funty" ,rust-funty-1)
+        ("rust-radium" ,rust-radium-0.5)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-tap" ,rust-tap-1)
+        ("rust-wyz" ,rust-wyz-0.2))
+       #:cargo-development-inputs
+       (("rust-criterion" ,rust-criterion-0.3)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-serde-test" ,rust-serde-test-1)
+        ("rust-static-assertions" ,rust-static-assertions-1))))
+    (home-page "https://myrrlyn.net/crates/bitvec")
+    (synopsis "Manipulate memory, bit by bit")
+    (description
+     "This package provides a crate for manipulating memory, bit by bit.")
+    (license license:expat)))
+
 (define-public rust-blake2-0.8
   (package
     (name "rust-blake2")
@@ -1892,7 +3861,7 @@ behave like a set of bitflags.")
         ("rust-clippy" ,rust-clippy-0.0)
         ("rust-constant-time-eq" ,rust-constant-time-eq-0.1))
        #:cargo-development-inputs
-       (("rust-data-encoding" ,rust-data-encoding-2.1))))
+       (("rust-data-encoding" ,rust-data-encoding-2))))
     (home-page "https://github.com/cesarb/blake2-rfc")
     (synopsis "Rust implementation of BLAKE2 based on RFC 7693")
     (description
@@ -1946,12 +3915,36 @@ BLAKE2bp hash functions.")
     (home-page "https://github.com/blas-lapack-rs/blas-sys")
     (synopsis "Bindings to BLAS (Fortran)")
     (description
-     "Ths package provides bindings to BLAS (Fortran).")
+     "This package provides bindings to BLAS (Fortran).")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-blobby-0.3
+  (package
+    (name "rust-blobby")
+    (version "0.3.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "blobby" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1s2f3a7lx5rd26554d9940basff7qpyf1y8gkc309cgc8csmalpw"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-development-inputs
+       (("rust-hex" ,rust-hex-0.3))))
+    (home-page "https://github.com/RustCrypto/utils")
+    (synopsis "Iterator over simple binary blob storage")
+    (description "This package provides an iterator over simple binary blob
+storage.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-blobby-0.1
   (package
+    (inherit rust-blobby-0.3)
     (name "rust-blobby")
     (version "0.1.2")
     (source
@@ -1967,15 +3960,10 @@ BLAKE2bp hash functions.")
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
-       (("rust-byteorder" ,rust-byteorder-1.3))
+       (("rust-byteorder" ,rust-byteorder-1))
        #:cargo-development-inputs
-       (("rust-byteorder" ,rust-byteorder-1.3)
-        ("rust-hex" ,rust-hex-0.3))))
-    (home-page "https://github.com/RustCrypto/utils")
-    (synopsis "Iterator over simple binary blob storage")
-    (description
-     "Iterator over simple binary blob storage.")
-    (license (list license:asl2.0 license:expat))))
+       (("rust-byteorder" ,rust-byteorder-1)
+        ("rust-hex" ,rust-hex-0.3))))))
 
 (define-public rust-block-0.1
   (package
@@ -2043,7 +4031,7 @@ extension of blocks.")
      `(#:cargo-inputs
        (("rust-block-padding" ,rust-block-padding-0.1)
         ("rust-byte-tools" ,rust-byte-tools-0.3)
-        ("rust-byteorder" ,rust-byteorder-1.3)
+        ("rust-byteorder" ,rust-byteorder-1)
         ("rust-generic-array" ,rust-generic-array-0.14))))))
 
 (define-public rust-block-buffer-0.7
@@ -2064,9 +4052,54 @@ extension of blocks.")
      `(#:cargo-inputs
        (("rust-block-padding" ,rust-block-padding-0.1)
         ("rust-byte-tools" ,rust-byte-tools-0.3)
-        ("rust-byteorder" ,rust-byteorder-1.3)
+        ("rust-byteorder" ,rust-byteorder-1)
         ("rust-generic-array" ,rust-generic-array-0.12))))))
 
+(define-public rust-block-cipher-0.7
+  (package
+    (name "rust-block-cipher")
+    (version "0.7.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "block-cipher" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "043zgfz1x4sxkdcsyabrcr440fcwhfpcqqa54jm7zp35wx4n84zs"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-blobby" ,rust-blobby-0.1)
+        ("rust-generic-array" ,rust-generic-array-0.14))))
+    (home-page "https://github.com/RustCrypto/traits")
+    (synopsis "Traits for description of block ciphers")
+    (description "This package provides traits for description of block
+ciphers.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-block-cipher-trait-0.4
+  (package
+    (name "rust-block-cipher-trait")
+    (version "0.4.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "block-cipher-trait" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "10qmg8vphqmfllb9a2yx6s7r66jh1wh33clhsawq7ikg2wgz2p6q"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-generic-array" ,rust-generic-array-0.8))))
+    (home-page "https://github.com/RustCrypto/block-ciphers")
+    (synopsis "Block cipher algorithms")
+    (description "This package provides a collection of block cipher
+algorithms.  This package is deprecated.  Please use block-cipher instead")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-block-padding-0.2
   (package
     (name "rust-block-padding")
@@ -2105,6 +4138,75 @@ extension of blocks.")
      `(#:cargo-inputs
        (("rust-byte-tools" ,rust-byte-tools-0.3))))))
 
+(define-public rust-blocking-1
+  (package
+    (name "rust-blocking")
+    (version "1.0.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "blocking" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1s9myg9gqmwzrbc38p23bh4vkc8w4pbpddqrcrrl1xz1xpdp1qf5"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-async-channel" ,rust-async-channel-1)
+        ("rust-async-task" ,rust-async-task-4)
+        ("rust-atomic-waker" ,rust-atomic-waker-1)
+        ("rust-fastrand" ,rust-fastrand-1)
+        ("rust-futures-lite" ,rust-futures-lite-1)
+        ("rust-once-cell" ,rust-once-cell-1))))
+    (home-page "https://github.com/stjepang/blocking")
+    (synopsis "Thread pool for isolating blocking I/O in async programs")
+    (description
+     "This package provides a thread pool for isolating blocking I/O in async
+programs.")
+    (license (list license:asl2.0 license:expat))))
+
+(define-public rust-blocking-0.6
+  (package
+    (inherit rust-blocking-1)
+    (name "rust-blocking")
+    (version "0.6.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "blocking" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "13g1xlsd1ardf9wxkj1d03baxfy8f8kvgjz55l6zi1q4jn5f0c1z"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-async-channel" ,rust-async-channel-1)
+        ("rust-atomic-waker" ,rust-atomic-waker-1)
+        ("rust-fastrand" ,rust-fastrand-1)
+        ("rust-futures-lite" ,rust-futures-lite-1)
+        ("rust-once-cell" ,rust-once-cell-1)
+        ("rust-waker-fn" ,rust-waker-fn-1))))))
+
+(define-public rust-blocking-0.4
+  (package
+    (inherit rust-blocking-0.6)
+    (name "rust-blocking")
+    (version "0.4.7")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "blocking" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0av1h5p6lb5bpzghmzsksx31icvdwrpxxzkq6r56n1l5pzvqyinj"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-async-channel" ,rust-async-channel-1)
+        ("rust-atomic-waker" ,rust-atomic-waker-1)
+        ("rust-futures-lite" ,rust-futures-lite-0.1)
+        ("rust-once-cell" ,rust-once-cell-1)
+        ("rust-parking" ,rust-parking-1)
+        ("rust-waker-fn" ,rust-waker-fn-1))))))
+
 (define-public rust-bresenham-0.1
   (package
     (name "rust-bresenham")
@@ -2127,6 +4229,164 @@ extension of blocks.")
 Bresenham's line algorithm.")
     (license license:expat)))
 
+(define-public rust-broadcaster-0.2
+  (package
+    (name "rust-broadcaster")
+    (version "0.2.6")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "broadcaster" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1848lwapy955rs8kbiv87adj68vdlh6vlj8n4wq10vx541j49887"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-futures-channel-preview" ,rust-futures-channel-preview-0.3)
+        ("rust-futures-core-preview" ,rust-futures-core-preview-0.3)
+        ("rust-futures-sink-preview" ,rust-futures-sink-preview-0.3)
+        ("rust-futures-util-preview" ,rust-futures-util-preview-0.3)
+        ("rust-parking-lot" ,rust-parking-lot-0.9)
+        ("rust-slab" ,rust-slab-0.4))
+       #:cargo-development-inputs
+       (("rust-futures-executor-preview" ,rust-futures-executor-preview-0.3))))
+    (home-page "https://github.com/leo60228/broadcaster")
+    (synopsis "Broadcasting futures mpmc channel")
+    (description
+     "This package provides a wrapper for any Stream and Sink implementing the
+@code{mpsc} pattern to enable broadcasting items.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-brotli-3
+  (package
+    (name "rust-brotli")
+    (version "3.3.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "brotli" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0gk1g3fx1vps2ic8kh5n32gzq9h5w1j3ff6lvjm171ph428r2abz"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-alloc-no-stdlib" ,rust-alloc-no-stdlib-2)
+        ("rust-alloc-stdlib" ,rust-alloc-stdlib-0.2)
+        ("rust-brotli-decompressor" ,rust-brotli-decompressor-2)
+        ("rust-packed-simd" ,rust-packed-simd-0.3)
+        ("rust-sha2" ,rust-sha2-0.8))))
+    (home-page "https://github.com/dropbox/rust-brotli")
+    (synopsis "Brotli compressor and decompressor")
+    (description "This package provides a brotli compressor and decompressor
+with no dependency on the rust stdlib.  This makes it suitable for embedded
+devices and kernels.")
+    (license (list license:bsd-3 license:expat))))
+
+(define-public rust-brotli-decompressor-2
+  (package
+    (name "rust-brotli-decompressor")
+    (version "2.3.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "brotli-decompressor" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1v7l1sa63ix1aq8h0k1ijvxvb5w796hz154b9aw0xn6lp31y2lhh"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f      ; not all test files included
+       #:cargo-inputs
+       (("rust-alloc-no-stdlib" ,rust-alloc-no-stdlib-2.0)
+        ("rust-alloc-stdlib" ,rust-alloc-stdlib-0.2))))
+    (home-page "https://github.com/dropbox/rust-brotli-decompressor")
+    (synopsis "Brotli decompressor")
+    (description "This package provides a brotli decompressor with no
+dependency on the rust stdlib.  This makes it suitable for embedded devices
+and kernels.")
+    (license (list license:bsd-3 license:expat))))
+
+(define-public rust-brotli-sys-0.3
+  (package
+    (name "rust-brotli-sys")
+    (version "0.3.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "brotli-sys" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1kdfdbcba6zwa13xpjwgiplblkdf6vigxjbwwp6l2ascbylxwia4"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-cc" ,rust-cc-1)
+        ("rust-libc" ,rust-libc-0.2))))
+    (home-page "https://github.com/alexcrichton/brotli2-rs")
+    (synopsis "Raw bindings to libbrotli")
+    (description "This package provides raw bindings to libbrotli.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-brotli2-0.3
+  (package
+    (name "rust-brotli2")
+    (version "0.3.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "brotli2" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "13jnhpmfkqy2xar4lxrsk3rx3i12bgnarnsxq4arhc6yxb1kdc0c"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-brotli-sys" ,rust-brotli-sys-0.3)
+        ("rust-libc" ,rust-libc-0.2))
+       #:cargo-development-inputs
+       (("rust-quickcheck" ,rust-quickcheck-0.4))))
+    (home-page "https://github.com/alexcrichton/brotli2-rs")
+    (synopsis "Rust bindings to compression library libbrotli")
+    (description
+     "This package provides bindings to libbrotli to provide brotli
+decompression and compression to Rust.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-bs58-0.2
+  (package
+    (name "rust-bs58")
+    (version "0.2.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "bs58" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "125i962x0m0ggdif6ds51wfif2lypiicy469dj5j2l6rm6xycpn9"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-sha2" ,rust-sha2-0.8))
+       #:cargo-development-inputs
+       (("rust-assert-matches" ,rust-assert-matches-1.3)
+        ("rust-base58" ,rust-base58-0.1)
+        ("rust-rust-base58" ,rust-rust-base58-0.0))))
+    (home-page "https://github.com/mycorrhiza/bs58-rs")
+    (synopsis "Another Base58 codec implementation")
+    (description
+     "Another Base58 codec implementation.  Compared to the base58 crate this
+is significantly faster at decoding (about 2.4x as fast when decoding 32
+bytes), almost the same speed for encoding (about 3% slower when encoding 32
+bytes), doesn't have the 128 byte limitation and supports a configurable
+alphabet.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-bstr-0.2
   (package
     (name "rust-bstr")
@@ -2151,7 +4411,7 @@ Bresenham's line algorithm.")
        #:cargo-development-inputs
        (("rust-quickcheck" ,rust-quickcheck-0.8)
         ("rust-ucd-parse" ,rust-ucd-parse-0.1)
-        ("rust-unicode-segmentation" ,rust-unicode-segmentation-1.3))))
+        ("rust-unicode-segmentation" ,rust-unicode-segmentation-1))))
     (home-page "https://github.com/BurntSushi/bstr")
     (synopsis
      "String type that is not required to be valid UTF-8")
@@ -2175,6 +4435,54 @@ UTF-8.")
         (base32
          "0nzi9vqhl56ws8gq39f3aj4qjrr4l3g5lbkkcj8xq1x4cb74wq2r"))))))
 
+(define-public rust-buffered-reader-0.9
+  (package
+    (name "rust-buffered-reader")
+    (version "0.9.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "buffered-reader" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "05rklfiia1k4c4ifpim08l22i0q0l3j9xdg2yh3njrp6w58z6z13"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bzip2" ,rust-bzip2-0.3)
+        ("rust-flate2" ,rust-flate2-1)
+        ("rust-libc" ,rust-libc-0.2))))
+    (home-page "https://sequoia-pgp.org/")
+    (synopsis "Super-powered Reader")
+    (description
+     "Like the @code{BufRead} trait, the @code{BufferedReader} trait has an
+internal buffer that is directly exposed to the user.  This design enables two
+performance optimizations.  First, the use of an internal buffer amortizes
+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-build-const-0.2
+  (package
+    (name "rust-build-const")
+    (version "0.2.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "build_const" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0faz882spx9474cszay2djmb0lghbwq51qayabcar1s7g4r2l29r"))))
+    (build-system cargo-build-system)
+    (home-page "https://crates.io/crates/build_const")
+    (synopsis "Create importable constants from build.rs or a script")
+    (description "This package provides a library for creating importable
+constants from build.rs or a script.")
+    (license license:expat)))
+
 (define-public rust-bumpalo-3
   (package
     (name "rust-bumpalo")
@@ -2220,6 +4528,29 @@ UTF-8.")
        (("rust-criterion" ,rust-criterion-0.2)
         ("rust-quickcheck" ,rust-quickcheck-0.8))))))
 
+(define-public rust-byte-pool-0.2
+  (package
+    (name "rust-byte-pool")
+    (version "0.2.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "byte-pool" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0yh96ral0pni02bzm3fhvicp1ixz1hz3c5m03hsyq66mk61fjf0y"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-crossbeam-queue" ,rust-crossbeam-queue-0.2)
+        ("rust-stable-deref-trait" ,rust-stable-deref-trait-1))))
+    (home-page "https://crates.io/crates/byte-pool")
+    (synopsis "Pool of byte slices, for efficient memory usage")
+    (description
+     "This package provides a pool of byte slices, for efficient
+memory usage.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-byte-tools-0.3
   (package
     (name "rust-byte-tools")
@@ -2240,6 +4571,28 @@ UTF-8.")
     (description "Bytes related utility functions.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-byte-unit-4
+  (package
+    (name "rust-byte-unit")
+    (version "4.0.9")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "byte-unit" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0lxi11qf6h1rqr0yhsh7i6755l325qrkv9r4bgismyik531mi1qw"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-serde" ,rust-serde-1)
+        ("rust-utf8-width" ,rust-utf8-width-0.1))))
+    (home-page "https://magiclen.org/byte-unit")
+    (synopsis "Library for interaction with units of bytes.")
+    (description
+     "This package provides a library for interaction with units of bytes.")
+    (license license:expat)))
+
 (define-public rust-bytecount-0.6
   (package
     (name "rust-bytecount")
@@ -2315,7 +4668,7 @@ in a byte slice, fast.")
 (define-public rust-bytemuck-1
   (package
     (name "rust-bytemuck")
-    (version "1.2.0")
+    (version "1.4.0")
     (source
       (origin
         (method url-fetch)
@@ -2324,45 +4677,71 @@ in a byte slice, fast.")
          (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "0cclc9v10hc1abqrxgirg3qbwa3ra3s0dai3xiwv9v4j4bgi7yip"))))
+          "071043n73hwi55z9c55ga4v52v8a7ri56gqja8r98clkdyxns14j"))))
     (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")
+    (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-byteorder-1.3
+(define-public rust-bytemuck-derive-1
+  (package
+    (name "rust-bytemuck-derive")
+    (version "1.0.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "bytemuck-derive" version))
+        (file-name (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1k59b6g2d87nf32qwhp73vng3al0zklxg64iiwf0pkxy74xf5ni8"))))
+    (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))
+       #:cargo-development-inputs
+       (("rust-bytemuck" ,rust-bytemuck-1))))
+    (home-page "https://github.com/Lokathor/bytemuck")
+    (synopsis "Derive proc-macros for @code{bytemuck}")
+    (description
+     "This package derives proc-macros for the @code{bytemuck} crate.")
+    (license
+      (list license:zlib license:asl2.0 license:expat))))
+
+(define-public rust-byteorder-1
   (package
     (name "rust-byteorder")
-    (version "1.3.4")
+    (version "1.4.2")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "byteorder" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32
-         "1pkjfhgjnq898g1d38ygcfi0msg3m6756cwv0sgysj1d26p8mi08"))))
+        (base32 "0srh0h0594jmsnbvm7n0g8xabhla8lwb3gn8s0fzd7d1snix2i5f"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-development-inputs
-       (("rust-doc-comment" ,rust-doc-comment-0.3)
-        ("rust-quickcheck" ,rust-quickcheck-0.8)
-        ("rust-rand" ,rust-rand-0.6))))
-    (home-page
-     "https://github.com/BurntSushi/byteorder")
-    (synopsis
-     "Reading/writing numbers in big-endian and little-endian")
+       (("rust-quickcheck" ,rust-quickcheck-0.9)
+        ("rust-rand" ,rust-rand-0.7))))
+    (home-page "https://github.com/BurntSushi/byteorder")
+    (synopsis "Reading/writing numbers in big-endian and little-endian")
     (description
-     "Library for reading/writing numbers in big-endian and
+     "This library is used for reading or writing numbers in big-endian and
 little-endian.")
     (license (list license:expat license:unlicense))))
 
 (define-public rust-byteorder-0.5
   (package
-    (inherit rust-byteorder-1.3)
+    (inherit rust-byteorder-1)
     (name "rust-byteorder")
     (version "0.5.3")
     (source
@@ -2380,29 +4759,67 @@ little-endian.")
        (("rust-quickcheck" ,rust-quickcheck-0.2)
         ("rust-rand" ,rust-rand-0.3))))))
 
-(define-public rust-bytes-0.5
+(define-public rust-bytes-1
   (package
     (name "rust-bytes")
-    (version "0.5.4")
+    (version "1.0.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "bytes" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1q9r7si1l8vndg4n2ny2nv833ghp5vyqzk5indb9rmhd5ibaq2hk"))))
+        (base32 "0wpsy2jwmbrsn7x6vcd00hw9vvz071lv8nrb25wrspvmkna8w7xd"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-serde" ,rust-serde-1))
        #:cargo-development-inputs
-       (("rust-loom" ,rust-loom-0.2)
+       (("rust-loom" ,rust-loom-0.4)
         ("rust-serde-test" ,rust-serde-test-1))))
     (home-page "https://github.com/tokio-rs/bytes")
     (synopsis "Types and traits for working with bytes")
-    (description "Types and traits for working with bytes.")
+    (description "This package is a utility library for working with bytes.")
     (license license:expat)))
 
+(define-public rust-bytes-0.6
+  (package
+    (inherit rust-bytes-1)
+    (name "rust-bytes")
+    (version "0.6.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "bytes" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "05ivrcbgl4f7z2zzm9hbsi8cy66spi70xlm6fp16zsq4ylsvrp70"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-serde" ,rust-serde-1))
+       #:cargo-development-inputs
+       (("rust-loom" ,rust-loom-0.3)
+        ("rust-serde-test" ,rust-serde-test-1))))))
+
+(define-public rust-bytes-0.5
+  (package
+    (inherit rust-bytes-0.6)
+    (name "rust-bytes")
+    (version "0.5.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "bytes" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1q9r7si1l8vndg4n2ny2nv833ghp5vyqzk5indb9rmhd5ibaq2hk"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-serde" ,rust-serde-1))
+       #:cargo-development-inputs
+       (("rust-loom" ,rust-loom-0.2)
+        ("rust-serde-test" ,rust-serde-test-1))))))
+
 (define-public rust-bytes-0.4
   (package/inherit rust-bytes-0.5
     (name "rust-bytes")
@@ -2419,8 +4836,8 @@ little-endian.")
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-byteorder" ,rust-byteorder-1.3)
-        ("rust-either" ,rust-either-1.5)
+       (("rust-byteorder" ,rust-byteorder-1)
+        ("rust-either" ,rust-either-1)
         ("rust-iovec" ,rust-iovec-0.1)
         ("rust-serde" ,rust-serde-1))
        #:cargo-development-inputs
@@ -2445,10 +4862,34 @@ little-endian.")
        #:cargo-development-inputs
        (("rust-rand" ,rust-rand-0.3))))))
 
-(define-public rust-bzip2-0.3
+(define-public rust-bytestring-0.1
+  (package
+    (name "rust-bytestring")
+    (version "0.1.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "bytestring" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0qzkncgky5p5vsdb9msmfg6d92dcs9idcjcr5nk7inkja7x0az7w"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bytes" ,rust-bytes-0.5)
+        ("rust-serde" ,rust-serde-1))
+       #:cargo-development-inputs
+       (("rust-serde-json" ,rust-serde-json-1))))
+    (home-page "https://actix.rs")
+    (synopsis "UTF-8 encoded string with Bytes as a storage")
+    (description
+     "This package provides a UTF-8 encoded string with Bytes as a storage.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-bzip2-0.4
   (package
     (name "rust-bzip2")
-    (version "0.3.3")
+    (version "0.4.1")
     (source
      (origin
        (method url-fetch)
@@ -2456,18 +4897,18 @@ little-endian.")
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32
-         "0fvfwanp42j1zpig880jhb5mc0na50bijmwd6211p77sy35w7ds2"))))
+        (base32 "1gpwm7qj8adi0zffm8r17vkv6f98d1q9glvpjk28v0wb6kz88p97"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:cargo-inputs
+     `(#:skip-build? #t
+       #:cargo-inputs
        (("rust-bzip2-sys" ,rust-bzip2-sys-0.1)
         ("rust-futures" ,rust-futures-0.1)
         ("rust-libc" ,rust-libc-0.2)
         ("rust-tokio-io" ,rust-tokio-io-0.1))
        #:cargo-development-inputs
-       (("rust-partial-io" ,rust-partial-io-0.2)
-        ("rust-quickcheck" ,rust-quickcheck-0.4)
+       (("rust-partial-io" ,rust-partial-io-0.3)
+        ("rust-quickcheck" ,rust-quickcheck-0.9)
         ("rust-rand" ,rust-rand-0.3)
         ("rust-tokio-core" ,rust-tokio-core-0.1))))
     (home-page "https://github.com/alexcrichton/bzip2-rs")
@@ -2478,10 +4919,37 @@ little-endian.")
 exposed as Reader/Writer streams.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-bzip2-0.3
+  (package
+    (inherit rust-bzip2-0.4)
+    (name "rust-bzip2")
+    (version "0.3.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "bzip2" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0fvfwanp42j1zpig880jhb5mc0na50bijmwd6211p77sy35w7ds2"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-bzip2-sys" ,rust-bzip2-sys-0.1)
+        ("rust-futures" ,rust-futures-0.1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-tokio-io" ,rust-tokio-io-0.1))
+       #:cargo-development-inputs
+       (("rust-partial-io" ,rust-partial-io-0.2)
+        ("rust-quickcheck" ,rust-quickcheck-0.4)
+        ("rust-rand" ,rust-rand-0.3)
+        ("rust-tokio-core" ,rust-tokio-core-0.1))))))
+
 (define-public rust-bzip2-sys-0.1
   (package
     (name "rust-bzip2-sys")
-    (version "0.1.7")
+    (version "0.1.9+1.0.8")
     (source
      (origin
        (method url-fetch)
@@ -2490,11 +4958,11 @@ exposed as Reader/Writer streams.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0pz2mdhkk8yphiqdh2kghdxb60kqyd10lfrjym3r4k5dylvam135"))
+         "0pi8lxzb1104q9cpvv1jgnk909cggqh2zcdhywqwlbq6c2i3jfxd"))
         (modules '((guix build utils)))
         (snippet
          '(begin
-            (delete-file-recursively "bzip2-1.0.6")
+            (delete-file-recursively "bzip2-1.0.8")
             (delete-file "build.rs")
             ;; Inspired by Debian's patch.
             (with-output-to-file "build.rs"
@@ -2507,7 +4975,8 @@ exposed as Reader/Writer streams.")
     (arguments
      `(#:cargo-inputs
        (("rust-libc" ,rust-libc-0.2)
-        ("rust-cc" ,rust-cc-1))))
+        ("rust-cc" ,rust-cc-1)
+        ("rust-pkg-config" ,rust-pkg-config-0.3))))
     (home-page "https://github.com/alexcrichton/bzip2-rs")
     (synopsis "Rust bindings to libbzip2")
     (description
@@ -2532,7 +5001,7 @@ exposed as Reader/Writer streams.")
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
-       (("rust-byteorder" ,rust-byteorder-1.3)
+       (("rust-byteorder" ,rust-byteorder-1)
         ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-ppv-lite86" ,rust-ppv-lite86-0.2)
         ("rust-stream-cipher" ,rust-stream-cipher-0.3))
@@ -2544,92 +5013,54 @@ exposed as Reader/Writer streams.")
      "The ChaCha family of stream ciphers.")
     (license (list license:asl2.0 license:expat))))
 
-(define-public rust-cairo-rs-0.8
+(define-public rust-cache-padded-1
   (package
-    (name "rust-cairo-rs")
-    (version "0.8.1")
+    (name "rust-cache-padded")
+    (version "1.1.1")
     (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "cairo-rs" version))
-        (file-name
-         (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32
-          "11303v1fv6hsc9n70ak380gknkf0098phpcxqdhkmahqjsx4jw0m"))))
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "cache-padded" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1fkdwv9vjazm6fs3s5v56mm4carwswdmw8fcwm9ygrcvihcya6k3"))))
     (build-system cargo-build-system)
-    (arguments
-     `(#:cargo-inputs
-       (("rust-bitflags" ,rust-bitflags-1)
-        ("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.9)
-        ("rust-glib" ,rust-glib-0.9)
-        ("rust-glib-sys" ,rust-glib-sys-0.9)
-        ("rust-gobject-sys" ,rust-gobject-sys-0.9)
-        ("rust-libc" ,rust-libc-0.2))
-       #:cargo-development-inputs
-       (("rust-gtk-rs-lgpl-docs" ,rust-gtk-rs-lgpl-docs-0.1)
-        ("rust-tempfile" ,rust-tempfile-3))))
-    (inputs
-     `(("cairo" ,cairo)))
-    (home-page "https://gtk-rs.org/")
-    (synopsis "Rust bindings for the Cairo library")
+    (home-page "https://github.com/stjepang/cache-padded")
+    (synopsis "Prevent once piece of data invalidating other cached data")
     (description
-     "Rust bindings for the Cairo library.")
-    (license license:expat)))
-
-(define-public rust-cairo-rs-0.7
-  (package
-    (inherit rust-cairo-rs-0.8)
-    (name "rust-cairo-rs")
-    (version "0.7.1")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "cairo-rs" version))
-        (file-name
-         (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32
-          "171m98g41avp5mmshqir4ka21napp7ma5fx45wi9mw5hwdyv8pg0"))))
-    (arguments
-     `(#:cargo-inputs
-       (("rust-bitflags" ,rust-bitflags-1)
-        ("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.9)
-        ("rust-glib" ,rust-glib-0.8)
-        ("rust-glib-sys" ,rust-glib-sys-0.9)
-        ("rust-gobject-sys" ,rust-gobject-sys-0.9)
-        ("rust-libc" ,rust-libc-0.2)
-        ("rust-gtk-rs-lgpl-docs" ,rust-gtk-rs-lgpl-docs-0.1))
-       #:cargo-development-inputs
-       (("rust-tempfile" ,rust-tempfile-3))))))
+     "In concurrent programming, sometimes it is desirable to make sure
+commonly accessed shared data is not all placed into the same cache line.
+Updating an atomic value invalides the whole cache line it belongs to, which
+makes the next access to the same cache line slower for other CPU cores.  Use
+CachePadded to ensure updating one piece of data doesn't invalidate other
+cached data.")
+    (license (list license:asl2.0 license:expat))))
 
-(define-public rust-cairo-sys-rs-0.9
+(define-public rust-cachedir-0.1
   (package
-    (name "rust-cairo-sys-rs")
-    (version "0.9.2")
+    (name "rust-cachedir")
+    (version "0.1.1")
     (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "cairo-sys-rs" version))
-        (file-name
-         (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32
-          "0qsdy6s57yvscg2rfm7wdqrlhzbn1aq9lhk3dy1vw5f7r81blrgz"))))
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "cachedir" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1j18j73fxrr82marcdrn86123vr9v5n0fgyjkf9mi9pzyk8hjrf0"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-glib-sys" ,rust-glib-sys-0.9)
-        ("rust-libc" ,rust-libc-0.2)
-        ("rust-winapi" ,rust-winapi-0.3)
-        ("rust-x11" ,rust-x11-2)
-        ("rust-pkg-config" ,rust-pkg-config-0.3))))
-    (inputs
-     `(("cairo" ,cairo)))
-    (home-page "https://gtk-rs.org/")
-    (synopsis "FFI bindings to libcairo")
-    (description "This package provides FFI bindings to libcairo.")
-    (license license:expat)))
+       (("rust-tempfile" ,rust-tempfile-3))
+       ;; Tests require a mutable home directory and access to /var/tmp.
+       #:tests? #f))
+    (home-page "https://github.com/lilianmoraru/cachedir")
+    (synopsis "Interact with cache directories and @file{CACHEDIR.TAG} files")
+    (description
+     "This package provides a library to help interacting with cache
+directories and @code{CACHEDIR.TAG} files.")
+    (license (list license:expat license:asl2.0))))
 
 (define-public rust-calloop-0.4
   (package
@@ -2657,27 +5088,28 @@ exposed as Reader/Writer streams.")
         ("rust-mio-extras" ,rust-mio-extras-2)
         ("rust-nix" ,rust-nix-0.14))
        #:cargo-development-inputs
-       (("rust-lazycell" ,rust-lazycell-1.2))))
+       (("rust-lazycell" ,rust-lazycell-1))))
     (home-page "https://github.com/Smithay/calloop")
     (synopsis "Callback-based event loop")
     (description
      "This package provides a callback-based event loop")
     (license license:expat)))
 
-(define-public rust-capnp-0.10
+(define-public rust-capnp-0.13
   (package
     (name "rust-capnp")
-    (version "0.10.3")
+    (version "0.13.6")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "capnp" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "17hsnmlcrzksjjpwpz51y8g36xzq8042i2cwns0lsg7rixfw2rxq"))))
+        (base32 "1bx2pj0ysmyd1ryd5s43m3c7n5k067x1aciqiiyg4kjswlcs6xjf"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:cargo-inputs
+     `(#:skip-build? #t
+       #:cargo-inputs
        (("rust-futures" ,rust-futures-0.1)
         ("rust-quickcheck" ,rust-quickcheck-0.2))
        #:cargo-development-inputs
@@ -2688,24 +5120,25 @@ exposed as Reader/Writer streams.")
 encoding.")
     (license license:expat)))
 
-(define-public rust-capnp-futures-0.10
+(define-public rust-capnp-futures-0.13
   (package
     (name "rust-capnp-futures")
-    (version "0.10.1")
+    (version "0.13.2")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "capnp-futures" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0qdiqkp9mh4acpa0dqhpzv2gwf949rj3m85mgwl1rih6gvgbh1zs"))))
+        (base32 "18q93ncbfcnjq7zhvy9idnifypmi2qcp775q7454y3r4lvvdcyyw"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:cargo-inputs
-       (("rust-capnp" ,rust-capnp-0.10)
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-capnp" ,rust-capnp-0.13)
         ("rust-futures" ,rust-futures-0.1))
        #:cargo-development-inputs
-       (("rust-capnp" ,rust-capnp-0.10)
+       (("rust-capnp" ,rust-capnp-0.13)
         ("rust-quickcheck" ,rust-quickcheck-0.2))))
     (home-page "https://github.com/capnproto/capnproto-rust")
     (synopsis "Async serialization for Cap'n Proto messages")
@@ -2713,47 +5146,49 @@ encoding.")
 messages.")
     (license license:expat)))
 
-(define-public rust-capnp-rpc-0.10
+(define-public rust-capnp-rpc-0.13
   (package
     (name "rust-capnp-rpc")
-    (version "0.10.0")
+    (version "0.13.1")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "capnp-rpc" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1j6xg7yays1hlm1045wviyn1642yvvi2p4kba26yk07a0kafr3jn"))))
+        (base32 "17p0y0yk68pzsnpmaklhiqrrlrrv0ld8nhbg4qflmgibshi8b69p"))))
     (build-system cargo-build-system)
     (native-inputs
      `(("capnproto" ,capnproto)))
     (arguments
-     `(#:cargo-inputs
-       (("rust-capnp" ,rust-capnp-0.10)
-        ("rust-capnp-futures" ,rust-capnp-futures-0.10)
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-capnp" ,rust-capnp-0.13)
+        ("rust-capnp-futures" ,rust-capnp-futures-0.13)
         ("rust-futures" ,rust-futures-0.1))
        #:cargo-development-inputs
-       (("rust-capnpc" ,rust-capnpc-0.10))))
+       (("rust-capnpc" ,rust-capnpc-0.13))))
     (home-page "https://github.com/capnproto/capnproto-rust")
     (synopsis "Cap'n Proto remote procedure call protocol implementation")
     (description "This package provides an implementation of the Cap'n Proto
 remote procedure call protocol")
     (license license:expat)))
 
-(define-public rust-capnpc-0.10
+(define-public rust-capnpc-0.13
   (package
     (name "rust-capnpc")
-    (version "0.10.2")
+    (version "0.13.1")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "capnpc" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1zxbmdkr0xfzkfq9p8zn7pp9jjq275qhr8fh9a0cc0ab37yfvbyj"))))
+        (base32 "1hbm5xqpam3f0ha5ds39wjmpqpzdalpbrls9wlp7m3slh3p5r1c1"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:cargo-inputs (("rust-capnp" ,rust-capnp-0.10))))
+     `(#:skip-build? #t
+       #:cargo-inputs (("rust-capnp" ,rust-capnp-0.13))))
     (home-page "https://github.com/capnproto/capnproto-rust")
     (synopsis "Cap'n Proto code generation")
     (description "Cap'n Proto code generation")
@@ -2908,8 +5343,7 @@ used in argon2rs' bench suite.")
           "0rgsn3klhhh09d8qf3b87zl4rwk93l2g0qzh9hhb0lff5kcfrzmn"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs (("rust-libc" ,rust-libc-0.2))))
+     `(#:cargo-inputs (("rust-libc" ,rust-libc-0.2))))
     (home-page "https://github.com/blas-lapack-rs/cblas-sys")
     (synopsis "Bindings to CBLAS (C)")
     (description
@@ -2920,7 +5354,7 @@ used in argon2rs' bench suite.")
 (define-public rust-cc-1
   (package
     (name "rust-cc")
-    (version "1.0.58")
+    (version "1.0.66")
     (source
       (origin
         (method url-fetch)
@@ -2928,7 +5362,7 @@ used in argon2rs' bench suite.")
         (file-name (string-append name "-" version ".crate"))
         (sha256
          (base32
-          "065m2fphrv5csy8hvv37msi3a739mfkgw7pcg71dfw9jwnr6z87r"))))
+          "0j7d7h4n81z5f22l3v8ggjvvw8m64636nlaqax4x1y44da1rc12c"))))
     (build-system cargo-build-system)
     (arguments
      `(#:tests? #f
@@ -2945,6 +5379,26 @@ archive to be linked into Rustcode.")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-cesu8-1
+  (package
+    (name "rust-cesu8")
+    (version "1.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "cesu8" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0g6q58wa7khxrxcxgnqyi9s1z2cjywwwd3hzr5c55wskhx6s0hvd"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/emk/cesu8-rs")
+    (synopsis "Convert to and from CESU-8 encoding")
+    (description
+     "This library implements the CESU-8 compatibility encoding scheme.  This
+is a non-standard variant of UTF-8 that is used internally by some systems
+that need to represent UTF-16 data as 8-bit characters.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-cexpr-0.4
   (package
     (name "rust-cexpr")
@@ -2963,17 +5417,9 @@ archive to be linked into Rustcode.")
      `(#:cargo-inputs
        (("rust-nom" ,rust-nom-5))
        #:cargo-development-inputs
-       (("rust-clang-sys" ,rust-clang-sys-0.28))
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'set-environmental-variable
-           (lambda* (#:key inputs #:allow-other-keys)
-             (let ((clang (assoc-ref inputs "libclang")))
-               (setenv "LIBCLANG_PATH"
-                       (string-append clang "/lib")))
-             #t)))))
+       (("rust-clang-sys" ,rust-clang-sys-0.28))))
     (inputs
-     `(("libclang" ,clang)))
+     `(("clang" ,clang)))
     (home-page "https://github.com/jethrogb/rust-cexpr")
     (synopsis "C expression parser and evaluator")
     (description
@@ -2998,15 +5444,7 @@ archive to be linked into Rustcode.")
      `(#:cargo-inputs
        (("rust-nom" ,rust-nom-4.2))
        #:cargo-development-inputs
-       (("rust-clang-sys" ,rust-clang-sys-0.28))
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'set-environmental-variable
-           (lambda* (#:key inputs #:allow-other-keys)
-             (let ((clang (assoc-ref inputs "libclang")))
-               (setenv "LIBCLANG_PATH"
-                       (string-append clang "/lib")))
-             #t)))))))
+       (("rust-clang-sys" ,rust-clang-sys-0.28))))))
 
 (define-public rust-cexpr-0.2
   (package
@@ -3027,147 +5465,55 @@ archive to be linked into Rustcode.")
      `(#:cargo-inputs
        (("rust-nom" ,rust-nom-3))
        #:cargo-development-inputs
-       (("rust-clang-sys" ,rust-clang-sys-0.11))
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'set-environmental-variable
-           (lambda* (#:key inputs #:allow-other-keys)
-             (let ((clang (assoc-ref inputs "libclang")))
-               (setenv "LIBCLANG_PATH"
-                       (string-append clang "/lib")))
-             #t)))))))
+       (("rust-clang-sys" ,rust-clang-sys-0.11))))))
 
-(define-public rust-cfg-if-0.1
+(define-public rust-cfg-if-1
   (package
     (name "rust-cfg-if")
-    (version "0.1.10")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "cfg-if" version))
-        (file-name (string-append name "-" version ".crate"))
-        (sha256
-         (base32
-          "08h80ihs74jcyp24cd75wwabygbbdgl05k6p5dmq8akbr78vv1a7"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:cargo-inputs
-       (("rust-compiler-builtins" ,rust-compiler-builtins-0.1)
-        ("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1.0))))
-    (home-page "https://github.com/alexcrichton/cfg-if")
-    (synopsis "Define an item depending on parameters")
-    (description "This package provides a macro to ergonomically define an item
-depending on a large number of #[cfg] parameters.  Structured like an
-@code{if-else} chain, the first matching branch is the item that gets emitted.")
-    (license (list license:asl2.0
-                   license:expat))))
-
-(define-public rust-cgl-0.3
-  (package
-    (name "rust-cgl")
-    (version "0.3.2")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "cgl" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32
-         "1zs7skrsyrsm759vfy2cygkx52fx91b567a12bpaz1sf4d8hbv8c"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:skip-build? #t     ; only available on macOS
-       #:cargo-inputs (("rust-libc" ,rust-libc-0.2))))
-    (home-page "https://github.com/servo/cgl-rs")
-    (synopsis "Rust bindings for CGL on Mac")
-    (description "Rust bindings for CGL on Mac.")
-    (license (list license:expat license:asl2.0))))
-
-(define-public rust-cgl-0.2
-  (package
-    (inherit rust-cgl-0.3)
-    (name "rust-cgl")
-    (version "0.2.3")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "cgl" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32
-         "0j8ayr8pbwvyv6l8r7m5z197rs3pqn97085w9j4rfn7yfh5yrrsm"))))
-    (arguments
-     `(#:skip-build? #t     ; only available on macOS
-       #:cargo-inputs
-       (("rust-gleam" ,rust-gleam-0.6)
-        ("rust-libc" ,rust-libc-0.2))))))
-
-(define-public rust-cgmath-0.17
-  (package
-    (name "rust-cgmath")
-    (version "0.17.0")
+    (version "1.0.0")
     (source
      (origin
        (method url-fetch)
-       (uri (crate-uri "cgmath" version))
+       (uri (crate-uri "cfg-if" version))
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32
-         "1rvgila6ivr0dh1bxza450a4yfwdi2pwj3h1vnwg0jy4xk6l8f98"))))
+        (base32 "1za0vb97n4brpzpv8lsbnzmq5r8f2b0cpqqr0sy8h5bn751xxwds"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t     ; Crate won't build without glium.
-       #:cargo-inputs
-       (("rust-approx" ,rust-approx-0.3)
-        ("rust-mint" ,rust-mint-0.5)
-        ("rust-num-traits" ,rust-num-traits-0.2)
-        ("rust-rand" ,rust-rand-0.6)
-        ("rust-serde" ,rust-serde-1)
-        ("rust-simd" ,rust-simd-0.2))
-       #:cargo-development-inputs
-       (;("rust-glium" ,rust-glium-0.23)
-        ("rust-serde-json" ,rust-serde-json-1))))
-    (home-page "https://github.com/brendanzab/cgmath")
-    (synopsis "Linear algebra and mathematics library")
+     `(#:cargo-inputs
+       (("rust-compiler-builtins" ,rust-compiler-builtins-0.1)
+        ("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1))))
+    (home-page "https://github.com/alexcrichton/cfg-if")
+    (synopsis "Define an item depending on parameters")
     (description
-     "This package provides a linear algebra and mathematics library
-for computer graphics.")
-    (license license:asl2.0)))
+     "This package provides a macro to ergonomically define an item depending
+on a large number of @code{#[cfg]} parameters.  Structured like an if-else
+chain, the first matching branch is the item that gets emitted.")
+    (license (list license:expat license:asl2.0))))
 
-(define-public rust-cgmath-0.16
+(define-public rust-cfg-if-0.1
   (package
-    (inherit rust-cgmath-0.17)
-    (name "rust-cgmath")
-    (version "0.16.1")
+    (inherit rust-cfg-if-1)
+    (name "rust-cfg-if")
+    (version "0.1.10")
     (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "cgmath" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32
-         "07754c03v3srzf64ghsl3fggrdi4kjy6l3vyq2d2wfjfixybb934"))))
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "cfg-if" version))
+        (file-name (string-append name "-" version ".crate"))
+        (sha256
+         (base32
+          "08h80ihs74jcyp24cd75wwabygbbdgl05k6p5dmq8akbr78vv1a7"))))
     (arguments
-     `(#:skip-build? #t     ; Crate won't build without glium.
-       #:cargo-inputs
-       (("rust-approx" ,rust-approx-0.1)
-        ("rust-mint" ,rust-mint-0.5)
-        ("rust-num-traits" ,rust-num-traits-0.1)
-        ("rust-rand" ,rust-rand-0.4)
-        ("rust-serde" ,rust-serde-1)
-        ("rust-simd" ,rust-simd-0.2))
-       #:cargo-development-inputs
-       (;("rust-glium" ,rust-glium-0.19)
-        ("rust-serde-json" ,rust-serde-json-1))))))
+     `(#:cargo-inputs
+       (("rust-compiler-builtins" ,rust-compiler-builtins-0.1)
+        ("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1))))))
 
 (define-public rust-chrono-0.4
   (package
     (name "rust-chrono")
-    (version "0.4.11")
+    (version "0.4.19")
     (source
      (origin
        (method url-fetch)
@@ -3176,32 +5522,59 @@ for computer graphics.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1cmmxamkzzs36zncqjjr7qm7xkb6zyrkjslnlj3axdgqki84y2c0"))))
+         "0wyfl6c00vhfl562spnfcna3zkw8jqvcp652m9iskhl8j26dc2k7"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-num-integer" ,rust-num-integer-0.1)
+     `(#:cargo-inputs
+       (("rust-js-sys" ,rust-js-sys-0.3)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-num-integer" ,rust-num-integer-0.1)
         ("rust-num-traits" ,rust-num-traits-0.2)
-        ("rust-js-sys" ,rust-js-sys-0.3)
+        ("rust-pure-rust-locales" ,rust-pure-rust-locales-0.5)
         ("rust-rustc-serialize" ,rust-rustc-serialize-0.3)
         ("rust-serde" ,rust-serde-1)
         ("rust-time" ,rust-time-0.1)
         ("rust-wasm-bindgen" ,rust-wasm-bindgen-0.2))
        #:cargo-development-inputs
-       (;("rust-bincode" ,rust-bincode-0.8)
-        ("rust-criterion" ,rust-criterion-0.2)
+       (("rust-bincode" ,rust-bincode-0.8)
+        ("rust-criterion" ,rust-criterion-0.3)
         ("rust-doc-comment" ,rust-doc-comment-0.3)
         ("rust-num-iter" ,rust-num-iter-0.1)
         ("rust-serde-derive" ,rust-serde-derive-1)
         ("rust-serde-json" ,rust-serde-json-1)
-        ("rust-wasm-bindgen-test" ,rust-wasm-bindgen-test-0.2))))
-    (home-page
-     "https://github.com/chronotope/chrono")
+        ("rust-wasm-bindgen-test" ,rust-wasm-bindgen-test-0.3))
+       #:features '("unstable-locales")
+       #:tests? #f))
+    (home-page "https://github.com/chronotope/chrono")
     (synopsis "Date and time library for Rust")
     (description "Date and time library for Rust.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-chrono-tz-0.5
+  (package
+    (name "rust-chrono-tz")
+    (version "0.5.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "chrono-tz" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "085i4940kn0fn4gkl3xi1kv3vp2frhfig1vla1i461pcbwas6m15"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-chrono" ,rust-chrono-0.4)
+        ("rust-parse-zoneinfo" ,rust-parse-zoneinfo-0.3)
+        ("rust-serde" ,rust-serde-1))))
+    (home-page "https://github.com/chronotope/chrono-tz")
+    (synopsis "TimeZone implementations for rust-chrono from the IANA database")
+    (description
+     "Chrono-TZ is a library that provides implementors of the
+TimeZone trait for @code{rust-chrono}.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-ci-info-0.3
   (package
     (name "rust-ci-info")
@@ -3226,8 +5599,60 @@ for computer graphics.")
      "This package provides current CI environment information.")
     (license license:asl2.0)))
 
+(define-public rust-clang-sys-1
+  (package
+    (name "rust-clang-sys")
+    (version "1.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "clang-sys" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0695kfrqx7n091fzm6msbqg2q2kyhka64q08lm63f3l9d964i8cx"))))
+    (build-system cargo-build-system)
+    (inputs
+     `(("clang" ,clang)))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-glob" ,rust-glob-0.3)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-libloading" ,rust-libloading-0.6))))
+    (home-page "https://github.com/KyleMayes/clang-sys")
+    (synopsis "Rust bindings for libclang")
+    (description "This package provides Rust bindings for libclang.")
+    (license license:asl2.0)))
+
+(define-public rust-cipher-0.2
+  (package
+    (name "rust-cipher")
+    (version "0.2.5")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "cipher" version))
+        (file-name
+          (string-append name "-" version ".tar.gz"))
+        (sha256
+          (base32 "00b8imbmdg7zdrbaczlivmdfdy09xldg95wl4iijl15xgjcfgy0j"))))
+    (build-system cargo-build-system)
+    (arguments
+      `(#:skip-build? #t
+        #:cargo-inputs
+        (("rust-blobby" ,rust-blobby-0.3)
+         ("rust-generic-array" ,rust-generic-array-0.14))))
+    (home-page "https://docs.rs/cipher/")
+    (synopsis "Traits for describing block ciphers and stream ciphers")
+    (description "This package provides traits which define the functionality
+of block ciphers and stream ciphers.  See RustCrypto/block-ciphers and
+RustCrypto/stream-ciphers for algorithm implementations which use these
+traits.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-clang-sys-0.29
   (package
+    (inherit rust-clang-sys-1)
     (name "rust-clang-sys")
     (version "0.29.3")
     (source
@@ -3243,22 +5668,7 @@ for computer graphics.")
      `(#:cargo-inputs
        (("rust-glob" ,rust-glob-0.3)
         ("rust-libc" ,rust-libc-0.2)
-        ("rust-libloading" ,rust-libloading-0.5))
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'set-environmental-variable
-           (lambda* (#:key inputs #:allow-other-keys)
-             (let ((clang (assoc-ref inputs "libclang")))
-               (setenv "LIBCLANG_PATH"
-                       (string-append clang "/lib")))
-             #t)))))
-    (inputs
-     `(("libclang" ,clang)))
-    (home-page "https://github.com/KyleMayes/clang-sys")
-    (synopsis "Rust bindings for libclang")
-    (description
-     "This package provides Rust bindings for @code{libclang}.")
-    (license license:asl2.0)))
+        ("rust-libloading" ,rust-libloading-0.5))))))
 
 (define-public rust-clang-sys-0.28
   (package
@@ -3291,15 +5701,7 @@ for computer graphics.")
      `(#:cargo-inputs
        (("rust-glob" ,rust-glob-0.2)
         ("rust-libc" ,rust-libc-0.2)
-        ("rust-libloading" ,rust-libloading-0.5))
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'set-environmental-variable
-           (lambda* (#:key inputs #:allow-other-keys)
-             (let ((clang (assoc-ref inputs "libclang")))
-               (setenv "LIBCLANG_PATH"
-                       (string-append clang "/lib")))
-             #t)))))))
+        ("rust-libloading" ,rust-libloading-0.5))))))
 
 (define-public rust-clang-sys-0.23
   (package
@@ -3336,15 +5738,7 @@ for computer graphics.")
        (("rust-clippy" ,rust-clippy-0.0)
         ("rust-glob" ,rust-glob-0.2)
         ("rust-libc" ,rust-libc-0.2)
-        ("rust-libloading" ,rust-libloading-0.5))
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'set-environmental-variable
-           (lambda* (#:key inputs #:allow-other-keys)
-             (let ((clang (assoc-ref inputs "libclang")))
-               (setenv "LIBCLANG_PATH"
-                       (string-append clang "/lib")))
-             #t)))))))
+        ("rust-libloading" ,rust-libloading-0.5))))))
 
 (define-public rust-clang-sys-0.11
   (package
@@ -3368,20 +5762,12 @@ for computer graphics.")
         ("rust-glob" ,rust-glob-0.2)
         ("rust-lazy-static" ,rust-lazy-static-0.2)
         ("rust-libc" ,rust-libc-0.2)
-        ("rust-libloading" ,rust-libloading-0.3))
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'set-environmental-variable
-           (lambda* (#:key inputs #:allow-other-keys)
-             (let ((clang (assoc-ref inputs "libclang")))
-               (setenv "LIBCLANG_PATH"
-                       (string-append clang "/lib")))
-             #t)))))))
+        ("rust-libloading" ,rust-libloading-0.3))))))
 
 (define-public rust-clap-2
   (package
     (name "rust-clap")
-    (version "2.33.1")
+    (version "2.33.3")
     (source
       (origin
         (method url-fetch)
@@ -3389,7 +5775,7 @@ for computer graphics.")
         (file-name (string-append name "-" version ".crate"))
         (sha256
          (base32
-          "0a91g4m6rcqpf6gzxh43cj6mnj9g8ahpr634baim6kcmgza81ymx"))))
+          "00i065a58987k1sbzqmlz721rw521zcg08jmsh40gi3khp3qmr9p"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -3489,10 +5875,10 @@ colorization.")
 pitfalls in Rust.")
     (license (list license:expat license:asl2.0))))
 
-(define-public rust-cloudabi-0.0
+(define-public rust-cloudabi-0.1
   (package
     (name "rust-cloudabi")
-    (version "0.0.3")
+    (version "0.1.0")
     (source
       (origin
         (method url-fetch)
@@ -3500,18 +5886,35 @@ pitfalls in Rust.")
         (file-name (string-append name "-" version ".crate"))
         (sha256
          (base32
-          "0kxcg83jlihy0phnd2g8c2c303px3l2p3pkjz357ll6llnd5pz6x"))))
+          "0rv4yf5jlldfkynzrw687s00f4x12ypw7axv71vawhy6h4i52i23"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-bitflags" ,rust-bitflags-1))))
-    (home-page "https://nuxi.nl/cloudabi/")
+    (home-page "https://cloudabi.org/")
     (synopsis "Low level interface to CloudABI")
-    (description
-     "Low level interface to CloudABI.  Contains all syscalls and related types.")
+    (description "This package provides a low level interface to CloudABI.  It
+contains all syscalls and related types.")
     (license license:bsd-2)))
 
+(define-public rust-cloudabi-0.0
+  (package
+    (inherit rust-cloudabi-0.1)
+    (name "rust-cloudabi")
+    (version "0.0.3")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "cloudabi" version))
+        (file-name (string-append name "-" version ".crate"))
+        (sha256
+         (base32
+          "0kxcg83jlihy0phnd2g8c2c303px3l2p3pkjz357ll6llnd5pz6x"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1))))))
+
 (define-public rust-cloudflare-zlib-sys-0.2
   (package
     (name "rust-cloudflare-zlib-sys")
@@ -3541,6 +5944,31 @@ pitfalls in Rust.")
             license:asl2.0
             license:zlib))))
 
+(define-public rust-cmac-0.5
+  (package
+    (name "rust-cmac")
+    (version "0.5.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "cmac" version))
+        (file-name
+          (string-append name "-" version ".tar.gz"))
+        (sha256
+          (base32 "0wj2kd4lb5hb7dvxfad4hi8gklmbq8vvvcnzmmqgxr94fx7xxm3k"))))
+    (build-system cargo-build-system)
+    (arguments
+      `(#:skip-build? #t
+        #:cargo-inputs
+        (("rust-crypto-mac" ,rust-crypto-mac-0.10)
+         ("rust-dbl" ,rust-dbl-0.3))))
+    (home-page "https://docs.rs/cmac/")
+    (synopsis "Generic implementation of Cipher-based Message Authentication
+Code")
+    (description "This package provides a pure Rust implementation of the
+Cipher-based Message Authentication Code (CMAC).")
+    (license (list license:expat license:asl2.0))))  ; at your choice
+
 (define-public rust-cmake-0.1
   (package
     (name "rust-cmake")
@@ -3609,6 +6037,39 @@ CMAKE environmental variable is set.")
         (base32
          "0m6fgdr4d2fp8jhkqvwr23hrqqqjv72g0j9vdgijc58k05j9j1hp"))))))
 
+(define-public rust-codespan-reporting-0.9
+  (package
+    (name "rust-codespan-reporting")
+    (version "0.9.5")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "codespan-reporting" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "07g86hv1lp5bbr6w6hsa3mgdmavs36igc7k5pi1fvc86ad2n41vf"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-serde" ,rust-serde-1)
+        ("rust-termcolor" ,rust-termcolor-1)
+        ("rust-unicode-width" ,rust-unicode-width-0.1))
+       #:cargo-development-inputs
+       (("rust-anyhow" ,rust-anyhow-1)
+        ("rust-insta" ,rust-insta-0.16)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-peg" ,rust-peg-0.6)
+        ("rust-rustyline" ,rust-rustyline-6)
+        ("rust-structopt" ,rust-structopt-0.3)
+        ("rust-unindent" ,rust-unindent-0.1))))
+    (home-page "https://github.com/brendanzab/codespan")
+    (synopsis "Diagnostic reporting for text-based programming languages")
+    (description "This package provides diagnostic reporting for text-based
+programming languages.")
+    (license license:asl2.0)))
+
 (define-public rust-color-quant-1.0
   (package
     (name "rust-color-quant")
@@ -3630,7 +6091,7 @@ CMAKE environmental variable is set.")
      "Color quantization library to reduce n colors to 256 colors.")
     (license license:expat)))
 
-(define-public rust-colored-1.9
+(define-public rust-colored-1
   (package
     (name "rust-colored")
     (version "1.9.3")
@@ -3667,7 +6128,7 @@ CMAKE environmental variable is set.")
     (license license:mpl2.0)))
 
 (define-public rust-colored-1.9.1
-  (package/inherit rust-colored-1.9
+  (package/inherit rust-colored-1
     (name "rust-colored")
     (version "1.9.1")
     (source
@@ -3678,6 +6139,90 @@ CMAKE environmental variable is set.")
        (sha256
         (base32 "0fildacm47g86acmx44yvxx6cka8fdym5qkgfm8x8gh2hsrghc7r"))))))
 
+(define-public rust-combine-4
+  (package
+    (name "rust-combine")
+    (version "4.5.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "combine" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0zkvqp21fbhznf7sjssdiw3zgx3x3q8w10c9mmjdzkf0wjsnjhyc"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-bytes" ,rust-bytes-0.5)
+        ("rust-bytes" ,rust-bytes-1)
+        ("rust-futures-io" ,rust-futures-io-0.3)
+        ("rust-futures-util" ,rust-futures-util-0.3)
+        ("rust-memchr" ,rust-memchr-2)
+        ("rust-pin-project-lite" ,rust-pin-project-lite-0.2)
+        ("rust-regex" ,rust-regex-1)
+        ("rust-tokio" ,rust-tokio-1)
+        ("rust-tokio" ,rust-tokio-0.2)
+        ("rust-tokio" ,rust-tokio-0.3))))
+    (home-page "https://github.com/Marwes/combine")
+    (synopsis "Parser combinators on arbitrary streams with zero-copy support")
+    (description
+     "This package is an implementation of parser combinators for Rust,
+inspired by the Haskell library Parsec.  As in Parsec the parsers are LL(1) by
+default but they can opt-in to arbitrary lookahead using the attempt
+combinator.")
+    (license license:expat)))
+
+(define-public rust-combine-3
+  (package
+    (inherit rust-combine-4)
+    (name "rust-combine")
+    (version "3.8.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "combine" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1006sbl3ybiky3d5q28p0lyph37hk7sipls1rkhikv11lfxacgfs"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-ascii" ,rust-ascii-0.9)
+        ("rust-byteorder" ,rust-byteorder-1)
+        ("rust-combine-regex-1" ,rust-combine-regex-1-1)
+        ("rust-either" ,rust-either-1)
+        ("rust-memchr" ,rust-memchr-2)
+        ("rust-regex" ,rust-regex-0.2)
+        ("rust-unreachable" ,rust-unreachable-1.0))
+       #:cargo-development-inputs
+       (("rust-bencher" ,rust-bencher-0.1)
+        ("rust-bytes" ,rust-bytes-0.4)
+        ("rust-futures" ,rust-futures-0.1)
+        ("rust-partial-io" ,rust-partial-io-0.3)
+        ("rust-tokio-codec" ,rust-tokio-codec-0.1))))))
+
+(define-public rust-combine-regex-1-1
+  (package
+    (name "rust-combine-regex-1")
+    (version "1.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "combine-regex-1" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1bzir63nvrg98i8g6b7crhgq5qbj4vq9f4y6d279af537djvh5ns"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-regex" ,rust-regex-1))))
+    (home-page "https://github.com/Marwes/combine")
+    (synopsis "Re-export of regex 1.0 letting combine use both 0.2 and 1.0")
+    (description
+     "This package is a re-export of regex 1.0 letting combine use both 0.2
+and 1.0.")
+    (license (list license:expat license:asl2.0))))
+
 ;; This package requires features which are unavailable
 ;; on the stable releases of Rust.
 (define-public rust-compiler-builtins-0.1
@@ -3696,7 +6241,7 @@ CMAKE environmental variable is set.")
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
-       (("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1.0)
+       (("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1)
         ("rust-cc" ,rust-cc-1))))
     (home-page "https://github.com/rust-lang/compiler-builtins")
     (synopsis "Compiler intrinsics used by the Rust compiler")
@@ -3786,19 +6331,42 @@ harness.")
         ("rust-rustc-serialize" ,rust-rustc-serialize-0.3)
         ("rust-tempdir" ,rust-tempdir-0.3))))))
 
-(define-public rust-console-0.11
+(define-public rust-concurrent-queue-1
+  (package
+    (name "rust-concurrent-queue")
+    (version "1.2.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "concurrent-queue" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "18w6hblcjjk9d0my3657ra1zdj79gwfjmzvc0b3985g01dahgv9h"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-cache-padded" ,rust-cache-padded-1))
+       #:cargo-development-inputs
+       (("rust-easy-parallel" ,rust-easy-parallel-3)
+        ("rust-fastrand" ,rust-fastrand-1))))
+    (home-page "https://github.com/stjepang/concurrent-queue")
+    (synopsis "Concurrent multi-producer multi-consumer queue")
+    (description
+     "This package provides a concurrent multi-producer multi-consumer
+queue.")
+    (license (list license:asl2.0 license:expat))))
+
+(define-public rust-console-0.13
   (package
     (name "rust-console")
-    (version "0.11.3")
+    (version "0.13.0")
     (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "console" version))
-        (file-name
-         (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32
-          "0nmwkbb1j1zjb2z4akk83rqgnbv7j3dla4nxv0ibk9xvavk982cc"))))
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "console" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "022ai0jbbawngrx396qppwgzk4pk3v2fdwckzamvz6h154jsn2m5"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -3807,16 +6375,39 @@ harness.")
         ("rust-libc" ,rust-libc-0.2)
         ("rust-regex" ,rust-regex-1)
         ("rust-terminal-size" ,rust-terminal-size-0.1)
-        ("rust-termios" ,rust-termios-0.3)
         ("rust-unicode-width" ,rust-unicode-width-0.1)
         ("rust-winapi" ,rust-winapi-0.3)
         ("rust-winapi-util" ,rust-winapi-util-0.1))))
     (home-page "https://github.com/mitsuhiko/console")
     (synopsis "Terminal and console abstraction for Rust")
     (description
-     "This package provides a terminal and console abstraction for Rust")
+     "This package provides a terminal and console abstraction for Rust.")
     (license license:expat)))
 
+(define-public rust-console-0.11
+  (package
+    (inherit rust-console-0.13)
+    (name "rust-console")
+    (version "0.11.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "console" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0nmwkbb1j1zjb2z4akk83rqgnbv7j3dla4nxv0ibk9xvavk982cc"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-encode-unicode" ,rust-encode-unicode-0.3)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-regex" ,rust-regex-1)
+        ("rust-terminal-size" ,rust-terminal-size-0.1)
+        ("rust-termios" ,rust-termios-0.3)
+        ("rust-unicode-width" ,rust-unicode-width-0.1)
+        ("rust-winapi" ,rust-winapi-0.3)
+        ("rust-winapi-util" ,rust-winapi-util-0.1))))))
+
 (define-public rust-console-0.9
   (package
     (inherit rust-console-0.11)
@@ -3926,6 +6517,71 @@ that logs panics to @code{console.error}.")
 the browser's console.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-const-fn-0.4
+  (package
+    (name "rust-const-fn")
+    (version "0.4.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "const-fn" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1wnhzyrhfcaawnzi172k98cfawwi5zwqql7pg0nz2qlccm6dz46f"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/taiki-e/const_fn")
+    (synopsis "Generate const functions with conditional compilations")
+    (description "This package provides an attribute for easy generation of
+const functions with conditional compilations.")
+    (license (list license:asl2.0 license:expat))))
+
+(define-public rust-const-random-0.1
+  (package
+    (name "rust-const-random")
+    (version "0.1.8")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "const-random" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0sp1ang5sh27fq5b7g9fdwpq4d5s17ymj7khfzax4bbvffngj6ig"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-const-random-macro" ,rust-const-random-macro-0.1)
+        ("rust-proc-macro-hack" ,rust-proc-macro-hack-0.5))))
+    (home-page "https://github.com/tkaitchuck/constrandom")
+    (synopsis "Compile time random number generation")
+    (description "This package provides compile time random number
+generation.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-const-random-macro-0.1
+  (package
+    (name "rust-const-random-macro")
+    (version "0.1.8")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "const-random-macro" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0ykc9riajn6bijvw46092gp18vrbky3y1cjpgjgx57a5xc3cdr15"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-getrandom" ,rust-getrandom-0.1)
+        ("rust-proc-macro-hack" ,rust-proc-macro-hack-0.5))))
+    (home-page "https://github.com/tkaitchuck/constrandom")
+    (synopsis "Procedural macro used by const-random")
+    (description "This package provides the procedural macro used by
+@code{rust-const-random}.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-constant-time-eq-0.1
   (package
     (name "rust-constant-time-eq")
@@ -3947,6 +6603,28 @@ the browser's console.")
 It is inspired by the Linux kernel's @code{crypto_memneq}.")
     (license license:cc0)))
 
+(define-public rust-content-inspector-0.2
+  (package
+    (name "rust-content-inspector")
+    (version "0.2.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "content_inspector" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0f1gwv4axxw9wck4a4jxlkm7xjjakb3616isll2k0s4chmpadgdp"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-memchr" ,rust-memchr-2))))
+    (home-page "https://github.com/sharkdp/content_inspector")
+    (synopsis "Fast inspection of binary buffers to guess the encoding")
+    (description
+     "This package is a simple library for fast inspection of binary buffers
+to guess the type of content.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-conv-0.3
   (package
     (name "rust-conv")
@@ -3979,6 +6657,199 @@ It is inspired by the Linux kernel's @code{crypto_memneq}.")
 semantics than those provided by @code{as} or @code{From}/@code{Into}.")
     (license license:expat)))
 
+(define-public rust-cookie-0.12
+  (package
+    (name "rust-cookie")
+    (version "0.12.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "cookie" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1mdvqixahcywvqp0y8k2skkgbpfhsp0w73l9mz93dcrx1gq091l8"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-base64" ,rust-base64-0.10)
+        ("rust-ring" ,rust-ring-0.14)
+        ("rust-time" ,rust-time-0.1)
+        ("rust-url" ,rust-url-1))))
+    (home-page "https://github.com/SergioBenitez/cookie-rs")
+    (synopsis
+     "Crate for parsing HTTP cookie headers and managing a cookie jar")
+    (description
+     "Parse HTTP cookie headers and manage a cookie jar with this crate.
+It supports signed and private (encrypted + signed) jars.")
+    (license (list license:asl2.0 license:expat))))
+
+(define-public rust-cookie-store-0.7
+  (package
+    (name "rust-cookie-store")
+    (version "0.7.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "cookie-store" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "174i9k9g62pfx7y1nqynywdpjplkl3j4hi3ck6bz2r996qzhnxa6"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-cookie" ,rust-cookie-0.12)
+        ("rust-idna" ,rust-idna-0.1)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-publicsuffix" ,rust-publicsuffix-1)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-time" ,rust-time-0.1)
+        ("rust-try-from" ,rust-try-from-0.3)
+        ("rust-url" ,rust-url-1))
+       #:cargo-development-inputs
+       (("rust-env-logger" ,rust-env-logger-0.6)
+        ("rust-pretty-assertions" ,rust-pretty-assertions-0.6))))
+    (home-page "https://github.com/pfernie/cookie_store")
+    (synopsis "Implementation of Cookie storage and retrieval per RFC6265")
+    (description
+     "This crate provides an implementation for storing and retrieving Cookies per
+the path and domain matching rules specified in RFC6265.
+
+Split from the user_agent crate.")
+    (license (list license:asl2.0 license:expat))))
+
+(define-public rust-copyless-0.1
+  (package
+    (name "rust-copyless")
+    (version "0.1.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "copyless" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0dmmxsq3m0i6g9s2kj96n777qhmm7vjgv4r7agc2v6w6bl7rdpx2"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/kvark/copyless")
+    (synopsis "Ways to eliminate @code{memcpy} calls")
+    (description
+     "This package provides ways to eliminate @code{memcpy} calls when using
+the standard library.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-cordic-0.1
+  (package
+    (name "rust-cordic")
+    (version "0.1.4")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "cordic" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "13zvqn6c8d8lp18p9ik10q100wfsyv2m2n4fca16laq3yw7r231m"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t     ; rust-fixed fails to build
+       #:cargo-inputs (("rust-fixed" ,rust-fixed-1))))
+    (home-page "https://github.com/sebcrozet/cordic")
+    (synopsis "Special functions for fixed-point numbers using the CORDIC method")
+    (description "This package provides special functions for fixed-point
+numbers using the CORDIC method.")
+    (license license:bsd-3)))
+
+(define-public rust-cookie-0.14
+  (package
+    (name "rust-cookie")
+    (version "0.14.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "cookie" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1q56fl2cqrci9ksa80d7g220phq02nf1yfbvxkpk9g1p95ma2wqk"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-aes-gcm" ,rust-aes-gcm-0.6)
+        ("rust-base64" ,rust-base64-0.12)
+        ("rust-hkdf" ,rust-hkdf-0.9)
+        ("rust-hmac" ,rust-hmac-0.8)
+        ("rust-percent-encoding" ,rust-percent-encoding-2)
+        ("rust-rand" ,rust-rand-0.7)
+        ("rust-sha2" ,rust-sha2-0.9)
+        ("rust-time" ,rust-time-0.2))
+       #:cargo-development-inputs
+       (("rust-version-check" ,rust-version-check-0.9))))
+    (home-page "https://github.com/SergioBenitez/cookie-rs")
+    (synopsis "HTTP cookie parsing and cookie jar management")
+    (description "This package provides HTTP cookie parsing and cookie jar
+management.  It supports signed and private (encrypted, authenticated) jars.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-cookie-store-0.12
+  (package
+    (name "rust-cookie-store")
+    (version "0.12.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "cookie_store" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1lqhmdwgnyvi1mjmw4rbgd02fwav4aabpg4vcld23d8c9g5dy61q"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-cookie" ,rust-cookie-0.14)
+        ("rust-idna" ,rust-idna-0.2)
+        ("rust-indexmap" ,rust-indexmap-1)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-publicsuffix" ,rust-publicsuffix-1)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-time" ,rust-time-0.2)
+        ("rust-url" ,rust-url-2))
+       #:cargo-development-inputs
+       (("rust-env-logger" ,rust-env-logger-0.7)
+        ("rust-pretty-assertions" ,rust-pretty-assertions-0.6))))
+    (home-page "https://github.com/pfernie/cookie_store")
+    (synopsis "Cookie storage and retrieval")
+    (description "This package implements cookie storage and retrieval.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-core-affinity-0.5
+  (package
+    (name "rust-core-affinity")
+    (version "0.5.10")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "core-affinity" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "07qpwyxps4gp3gci2p6c5h4cmcql7551bp91qgbv0ky3bh8h72kz"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-kernel32-sys" ,rust-kernel32-sys-0.2)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-num-cpus" ,rust-num-cpus-1)
+        ("rust-winapi" ,rust-winapi-0.2))))
+    (home-page "https://github.com/Elzair/core_affinity_rs")
+    (synopsis "Manage CPU affinities")
+    (description "This package manages CPU affinities.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-core-arch-0.1
   (package
     (name "rust-core-arch")
@@ -4005,8 +6876,53 @@ semantics than those provided by @code{as} or @code{From}/@code{Into}.")
 intrinsics.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-core-foundation-0.9
+  (package
+    (name "rust-core-foundation")
+    (version "0.9.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "core-foundation" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0qhackx0i914nbhcwi6bbxnyyqqldgxc046gviak3a3f8apf528a"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f             ;tests fail with a lot of "undefined reference"
+       #:cargo-inputs
+       (("rust-chrono" ,rust-chrono-0.4)
+        ("rust-core-foundation-sys" ,rust-core-foundation-sys-0.8)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-uuid" ,rust-uuid-0.5))))
+    (home-page "https://github.com/servo/core-foundation-rs")
+    (synopsis "Bindings to Core Foundation for macOS")
+    (description "This package provides bindings to Core Foundation for macOS.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-core-foundation-0.7
+  (package
+    (inherit rust-core-foundation-0.9)
+    (name "rust-core-foundation")
+    (version "0.7.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "core-foundation" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0wbias8f0m5kyn2pcksi0h58fdslams6nmf16w78fgn42dx4rljp"))))
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-chrono" ,rust-chrono-0.4)
+        ("rust-core-foundation-sys" ,rust-core-foundation-sys-0.7)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-uuid" ,rust-uuid-0.5))))))
+
 (define-public rust-core-foundation-0.6
   (package
+    (inherit rust-core-foundation-0.7)
     (name "rust-core-foundation")
     (version "0.6.4")
     (source
@@ -4018,68 +6934,95 @@ intrinsics.")
        (sha256
         (base32
          "0va97wf49c8dzm9c8pgyk1jn7z21rl0bj1syf2zz5m2z2hzy1f95"))))
-    (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t     ; only for macOS
+     `(#:tests? #f
        #:cargo-inputs
        (("rust-chrono" ,rust-chrono-0.4)
         ("rust-core-foundation-sys" ,rust-core-foundation-sys-0.6)
         ("rust-libc" ,rust-libc-0.2)
-        ("rust-uuid" ,rust-uuid-0.5))))
+        ("rust-uuid" ,rust-uuid-0.5))))))
+
+(define-public rust-core-foundation-0.2
+  (package
+    (inherit rust-core-foundation-0.6)
+    (name "rust-core-foundation")
+    (version "0.2.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "core-foundation" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0rvcn7ab5r69wvn7gby745jlpy8pirfywcdxbiypy083s93dggr5"))))
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-core-foundation-sys" ,rust-core-foundation-sys-0.2)
+        ("rust-libc" ,rust-libc-0.2))))))
+
+(define-public rust-core-foundation-sys-0.8
+  (package
+    (name "rust-core-foundation-sys")
+    (version "0.8.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "core-foundation-sys" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "06wq7yb7mlkc4h2kbc0yjfi0xv44z4snzdpr7c1l0zm4hi91n8pa"))))
+    (build-system cargo-build-system)
     (home-page "https://github.com/servo/core-foundation-rs")
-    (synopsis
-     "Bindings to Core Foundation for macOS")
-    (description
-     "Bindings to Core Foundation for macOS.")
+    (synopsis "Bindings to Core Foundation for macOS")
+    (description "This package provides bindings to Core Foundation for macOS.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-core-foundation-sys-0.7
+  (package
+    (inherit rust-core-foundation-sys-0.8)
+    (name "rust-core-foundation-sys")
+    (version "0.7.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "core-foundation-sys" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1ghrg46h4ci306agr2vwm28w6gb5l455nzp61y2zkhwfs49p4nis"))))))
+
 (define-public rust-core-foundation-sys-0.6
   (package
+    (inherit rust-core-foundation-sys-0.7)
     (name "rust-core-foundation-sys")
     (version "0.6.2")
     (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "core-foundation-sys" version))
-        (file-name (string-append name "-" version ".crate"))
-        (sha256
-         (base32
-          "0fzsw1j9g1x598yhwklg59l15hwzc0pyvs01w9fg2kin4598mjp7"))))
-    (build-system cargo-build-system)
-    (arguments '(#:skip-build? #t))
-    (home-page "https://github.com/servo/core-foundation-rs")
-    (synopsis "Bindings to Core Foundation for OS X")
-    (description
-     "Bindings to Core Foundation for OS X.")
-    (license (list license:asl2.0
-                   license:expat))))
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "core-foundation-sys" version))
+       (file-name (string-append name "-" version ".crate"))
+       (sha256
+        (base32
+         "0fzsw1j9g1x598yhwklg59l15hwzc0pyvs01w9fg2kin4598mjp7"))))))
 
-(define-public rust-core-graphics-0.17
+(define-public rust-core-foundation-sys-0.2
   (package
-    (name "rust-core-graphics")
-    (version "0.17.3")
+    (inherit rust-core-foundation-sys-0.6)
+    (name "rust-core-foundation-sys")
+    (version "0.2.3")
     (source
      (origin
        (method url-fetch)
-       (uri (crate-uri "core-graphics" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
+       (uri (crate-uri "core-foundation-sys" version))
+       (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1acm3vygngnilzlr6klym5ywh7kfzh2xxrh2l41152hwmdl0jyan"))))
-    (build-system cargo-build-system)
+         "13f7f3kblyj6yxcxm74yg84vj9ahaprlc1vgblagmj6bzmzmsnh6"))))
     (arguments
-     `(#:skip-build? #t     ; only for macOS
+     `(#:skip-build? #t
        #:cargo-inputs
-       (("rust-bitflags" ,rust-bitflags-1)
-        ("rust-core-foundation" ,rust-core-foundation-0.6)
-        ("rust-foreign-types" ,rust-foreign-types-0.3)
-        ("rust-libc" ,rust-libc-0.2))))
-    (home-page "https://github.com/servo/core-graphics-rs")
-    (synopsis "Bindings to Core Graphics for macOS")
-    (description
-     "Bindings to Core Graphics for macOS.")
-    (license (list license:expat license:asl2.0))))
+       (("rust-libc" ,rust-libc-0.2))))))
 
 (define-public rust-core-text-13
   (package
@@ -4108,36 +7051,6 @@ intrinsics.")
      "Bindings to the Core Text framework.")
     (license (list license:expat license:asl2.0))))
 
-(define-public rust-core-video-sys-0.1
-  (package
-    (name "rust-core-video-sys")
-    (version "0.1.3")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "core-video-sys" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32
-         "1l59cg88482hkl95ssb30ac9x65hpbdsmxz9s5r6y222jlhnbh4d"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:skip-build? #t     ; only for macOS
-       #:cargo-inputs
-       (("rust-cfg-if" ,rust-cfg-if-0.1)
-        ("rust-core-foundation-sys" ,rust-core-foundation-sys-0.6)
-        ("rust-core-graphics" ,rust-core-graphics-0.17)
-        ("rust-libc" ,rust-libc-0.2)
-        ("rust-metal" ,rust-metal-0.14)
-        ("rust-objc" ,rust-objc-0.2))))
-    (home-page "https://github.com/luozijun/rust-core-video-sys")
-    (synopsis
-     "Bindings to CoreVideo.framework for macOS and iOS")
-    (description
-     "Bindings to CoreVideo.framework for macOS and iOS.")
-    (license license:expat)))
-
 (define-public rust-cpp-demangle-0.2
   (package
     (name "rust-cpp-demangle")
@@ -4221,7 +7134,29 @@ to @code{is_x86_feature_detected}.")
      "Library for retrieving and interacting with the crates.io index.")
     (license license:asl2.0)))
 
-(define-public rust-crc32fast-1.2
+(define-public rust-crc-1
+  (package
+    (name "rust-crc")
+    (version "1.8.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "crc" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1sqal6gm6lbj7f45iv3rw2s9w3pvvha8v970y51s7k7mwy6m8qyn"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-build-const" ,rust-build-const-0.2))))
+    (home-page "https://crates.io/crates/crc")
+    (synopsis "Rust implementation of CRC(16, 32, 64)")
+    (description "This package provides a Rust implementation of CRC(16, 32,
+64) with support for various standards.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-crc32fast-1
   (package
     (name "rust-crc32fast")
     (version "1.2.0")
@@ -4253,7 +7188,7 @@ to @code{is_x86_feature_detected}.")
 (define-public rust-criterion-0.3
   (package
     (name "rust-criterion")
-    (version "0.3.1")
+    (version "0.3.3")
     (source
      (origin
        (method url-fetch)
@@ -4262,7 +7197,7 @@ to @code{is_x86_feature_detected}.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1lgpr82rlmg6rm4gr3c3pla2xgxnakbf8w9sabjsig8jkikmbiqz"))))
+         "1n24l95pgjig4nfhgm3vn9gxb49ky5ylr8390scl7wbcxk7agnkh"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -4270,23 +7205,25 @@ to @code{is_x86_feature_detected}.")
         ("rust-cast" ,rust-cast-0.2)
         ("rust-clap" ,rust-clap-2)
         ("rust-criterion-plot" ,rust-criterion-plot-0.4)
-        ("rust-csv" ,rust-csv-1.1)
-        ("rust-itertools" ,rust-itertools-0.8)
+        ("rust-csv" ,rust-csv-1)
+        ("rust-itertools" ,rust-itertools-0.9)
         ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-num-traits" ,rust-num-traits-0.2)
         ("rust-oorandom" ,rust-oorandom-11.1)
         ("rust-plotters" ,rust-plotters-0.2)
         ("rust-rayon" ,rust-rayon-1)
+        ("rust-regex" ,rust-regex-1)
         ("rust-serde" ,rust-serde-1)
+        ("rust-serde-cbor" ,rust-serde-cbor-0.11)
         ("rust-serde-derive" ,rust-serde-derive-1)
         ("rust-serde-json" ,rust-serde-json-1)
-        ("rust-tinytemplate" ,rust-tinytemplate-1.0)
+        ("rust-tinytemplate" ,rust-tinytemplate-1)
         ("rust-walkdir" ,rust-walkdir-2))
        #:cargo-development-inputs
        (("rust-approx" ,rust-approx-0.3)
         ("rust-quickcheck" ,rust-quickcheck-0.9)
         ("rust-rand" ,rust-rand-0.7)
-        ("rust-tempdir" ,rust-tempdir-0.3))))
+        ("rust-tempfile" ,rust-tempfile-3))))
     (home-page "https://bheisler.github.io/criterion.rs/book/index.html")
     (synopsis "Statistics-driven micro-benchmarking library")
     (description
@@ -4313,7 +7250,7 @@ to @code{is_x86_feature_detected}.")
         ("rust-cast" ,rust-cast-0.2)
         ("rust-clap" ,rust-clap-2)
         ("rust-criterion-plot" ,rust-criterion-plot-0.3)
-        ("rust-csv" ,rust-csv-1.1)
+        ("rust-csv" ,rust-csv-1)
         ("rust-itertools" ,rust-itertools-0.8)
         ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-libc" ,rust-libc-0.2)
@@ -4326,7 +7263,7 @@ to @code{is_x86_feature_detected}.")
         ("rust-serde" ,rust-serde-1)
         ("rust-serde-derive" ,rust-serde-derive-1)
         ("rust-serde-json" ,rust-serde-json-1)
-        ("rust-tinytemplate" ,rust-tinytemplate-1.0)
+        ("rust-tinytemplate" ,rust-tinytemplate-1)
         ("rust-walkdir" ,rust-walkdir-2))
        #:cargo-development-inputs
        (("rust-approx" ,rust-approx-0.3)
@@ -4334,10 +7271,32 @@ to @code{is_x86_feature_detected}.")
         ("rust-rand" ,rust-rand-0.6)
         ("rust-tempdir" ,rust-tempdir-0.3))))))
 
+(define-public rust-criterion-cycles-per-byte-0.1
+  (package
+    (name "rust-criterion-cycles-per-byte")
+    (version "0.1.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "criterion-cycles-per-byte" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "15iw8zvyilx6k3a7z79vpzmpm6kkyds4c1ng3jlwfc43axd4hd4d"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-criterion" ,rust-criterion-0.3))))
+    (home-page "https://crates.io/crates/criterion-cycles-per-byte")
+    (synopsis "Measure time with CPU cycles for criterion")
+    (description "This package lets you measure time with CPU cycles for
+criterion.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-criterion-plot-0.4
   (package
     (name "rust-criterion-plot")
-    (version "0.4.1")
+    (version "0.4.3")
     (source
      (origin
        (method url-fetch)
@@ -4346,12 +7305,12 @@ to @code{is_x86_feature_detected}.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0id5sfww0hjxlzvkzacdlgbls3lxza8iysqljr7j7s2qxbh1a7m0"))))
+         "17c8v5fv064181yspagkdcfd6jhs7233ba6g94bbl7v0xjnzw8p0"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-cast" ,rust-cast-0.2)
-        ("rust-itertools" ,rust-itertools-0.8))
+        ("rust-itertools" ,rust-itertools-0.9))
        #:cargo-development-inputs
        (("rust-itertools-num" ,rust-itertools-num-0.1)
         ("rust-num-complex" ,rust-num-complex-0.2)
@@ -4377,7 +7336,7 @@ to @code{is_x86_feature_detected}.")
          "13pv09z4ryp70qyzablkibwa2mh6c2852qq1sjr9wjigvwnj3ybn"))))
     (arguments
      `(#:cargo-inputs
-       (("rust-byteorder" ,rust-byteorder-1.3)
+       (("rust-byteorder" ,rust-byteorder-1)
         ("rust-cast" ,rust-cast-0.2)
         ("rust-itertools" ,rust-itertools-0.8))
        #:cargo-development-inputs
@@ -4414,8 +7373,34 @@ to @code{is_x86_feature_detected}.")
     (description "Tools for concurrent programming.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-crossbeam-channel-0.5
+  (package
+    (name "rust-crossbeam-channel")
+    (version "0.5.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "crossbeam-channel" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0xfplw54pskl3kyf2q6kw8y2phnq6wn8pqxx003n8qfkz3hnx8nw"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-cfg-if" ,rust-cfg-if-1)
+        ("rust-crossbeam-utils" ,rust-crossbeam-utils-0.8))))
+    (home-page
+     "https://github.com/crossbeam-rs/crossbeam/tree/master/crossbeam-channel")
+    (synopsis "Multi-producer multi-consumer channels for message passing")
+    (description
+     "This package provides multi-producer multi-consumer channels for
+message passing.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-crossbeam-channel-0.4
   (package
+    (inherit rust-crossbeam-channel-0.5)
     (name "rust-crossbeam-channel")
     (version "0.4.2")
     (source
@@ -4427,7 +7412,6 @@ to @code{is_x86_feature_detected}.")
         (sha256
          (base32
           "0qd05n5bcwafkmbzq1lspwrfi29xnzlw46qarg1sl0lwj68qdvfc"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
         (("rust-crossbeam-utils" ,rust-crossbeam-utils-0.7)
@@ -4435,16 +7419,7 @@ to @code{is_x86_feature_detected}.")
         #:cargo-development-inputs
         (("rust-num-cpus" ,rust-num-cpus-1)
          ("rust-rand" ,rust-rand-0.6)
-         ("rust-signal-hook" ,rust-signal-hook-0.1))))
-    (home-page
-     "https://github.com/crossbeam-rs/crossbeam/tree/master/crossbeam-channel")
-    (synopsis
-     "Multi-producer multi-consumer channels for message passing")
-    (description
-     "Multi-producer multi-consumer channels for message passing.")
-    (license (list license:expat
-                   license:asl2.0
-                   license:bsd-2))))
+         ("rust-signal-hook" ,rust-signal-hook-0.1))))))
 
 (define-public rust-crossbeam-channel-0.3
   (package
@@ -4468,8 +7443,33 @@ to @code{is_x86_feature_detected}.")
         ("rust-rand" ,rust-rand-0.6)
         ("rust-signal-hook" ,rust-signal-hook-0.1))))))
 
+(define-public rust-crossbeam-deque-0.8
+  (package
+    (name "rust-crossbeam-deque")
+    (version "0.8.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "crossbeam-deque" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1ad995vzq74k7jd1pgn9zxbacyzj9ii6l0svhlb2dxzy8vxnxbwl"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-cfg-if" ,rust-cfg-if-1)
+        ("rust-crossbeam-epoch" ,rust-crossbeam-epoch-0.9)
+        ("rust-crossbeam-utils" ,rust-crossbeam-utils-0.8))))
+    (home-page
+     "https://github.com/crossbeam-rs/crossbeam/tree/master/crossbeam-deque")
+    (synopsis "Concurrent work-stealing deque")
+    (description "This package provides a concurrent work-stealing deque.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-crossbeam-deque-0.7
   (package
+    (inherit rust-crossbeam-deque-0.8)
     (name "rust-crossbeam-deque")
     (version "0.7.3")
     (source
@@ -4481,19 +7481,13 @@ to @code{is_x86_feature_detected}.")
        (sha256
         (base32
          "11c2c0x5grdba3ah3g94yn6b8s47xi8qwm85h8hq5vmf9nbsy0lz"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-crossbeam-epoch" ,rust-crossbeam-epoch-0.8)
         ("rust-crossbeam-utils" ,rust-crossbeam-utils-0.7)
         ("rust-maybe-uninit" ,rust-maybe-uninit-2.0))
        #:cargo-development-inputs
-       (("rust-rand" ,rust-rand-0.6))))
-    (home-page
-     "https://github.com/crossbeam-rs/crossbeam/tree/master/crossbeam-deque")
-    (synopsis "Concurrent work-stealing deque")
-    (description "Concurrent work-stealing deque.")
-    (license (list license:expat license:asl2.0))))
+       (("rust-rand" ,rust-rand-0.6))))))
 
 (define-public rust-crossbeam-deque-0.6
   (package
@@ -4516,8 +7510,36 @@ to @code{is_x86_feature_detected}.")
        #:cargo-development-inputs
        (("rust-rand" ,rust-rand-0.6))))))
 
+(define-public rust-crossbeam-epoch-0.9
+  (package
+    (name "rust-crossbeam-epoch")
+    (version "0.9.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "crossbeam-epoch" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "17anyfg5azjpmcfidq6wn4phj9h0a0zqcxksi33w44akz4wsgam1"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-cfg-if" ,rust-cfg-if-1)
+        ("rust-const-fn" ,rust-const-fn-0.4)
+        ("rust-crossbeam-utils" ,rust-crossbeam-utils-0.8)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-memoffset" ,rust-memoffset-0.6)
+        ("rust-scopeguard" ,rust-scopeguard-1))))
+    (home-page
+     "https://github.com/crossbeam-rs/crossbeam/tree/master/crossbeam-epoch")
+    (synopsis "Epoch-based garbage collection")
+    (description "This package provides an Epoch-based garbage collection.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-crossbeam-epoch-0.8
   (package
+    (inherit rust-crossbeam-epoch-0.9)
     (name "rust-crossbeam-epoch")
     (version "0.8.2")
     (source
@@ -4529,23 +7551,17 @@ to @code{is_x86_feature_detected}.")
        (sha256
         (base32
          "1knsf0zz7rgzxn0nwz5gajjcrivxpw3zrdcp946gdhdgr9sd53h5"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-autocfg" ,rust-autocfg-1.0)
+       (("rust-autocfg" ,rust-autocfg-1)
         ("rust-cfg-if" ,rust-cfg-if-0.1)
         ("rust-crossbeam-utils" ,rust-crossbeam-utils-0.7)
         ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-maybe-uninit" ,rust-maybe-uninit-2.0)
         ("rust-memoffset" ,rust-memoffset-0.5)
-        ("rust-scopeguard" ,rust-scopeguard-1.0))
+        ("rust-scopeguard" ,rust-scopeguard-1))
        #:cargo-development-inputs
-       (("rust-rand" ,rust-rand-0.6))))
-    (home-page
-     "https://github.com/crossbeam-rs/crossbeam/tree/master/crossbeam-epoch")
-    (synopsis "Epoch-based garbage collection")
-    (description "Epoch-based garbage collection.")
-    (license (list license:expat license:asl2.0))))
+       (("rust-rand" ,rust-rand-0.6))))))
 
 (define-public rust-crossbeam-epoch-0.7
   (package
@@ -4568,7 +7584,7 @@ to @code{is_x86_feature_detected}.")
         ("rust-crossbeam-utils" ,rust-crossbeam-utils-0.6)
         ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-memoffset" ,rust-memoffset-0.5)
-        ("rust-scopeguard" ,rust-scopeguard-1.0))
+        ("rust-scopeguard" ,rust-scopeguard-1))
        #:cargo-development-inputs
        (("rust-rand" ,rust-rand-0.6))))))
 
@@ -4621,8 +7637,35 @@ to @code{is_x86_feature_detected}.")
        #:cargo-development-inputs
        (("rust-rand" ,rust-rand-0.6))))))
 
+(define-public rust-crossbeam-utils-0.8
+  (package
+    (name "rust-crossbeam-utils")
+    (version "0.8.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "crossbeam-utils" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "13fvrqlap7bgvlnpqr5gjcxdhx1jv99pkfg5xdlq5xcy30g6vn82"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-autocfg" ,rust-autocfg-1)
+        ("rust-cfg-if" ,rust-cfg-if-1)
+        ("rust-lazy-static" ,rust-lazy-static-1))
+       #:cargo-development-inputs
+       (("rust-rand" ,rust-rand-0.7))))
+    (home-page
+     "https://github.com/crossbeam-rs/crossbeam/tree/master/crossbeam-utils")
+    (synopsis "Utilities for concurrent programming")
+    (description
+     "This crate provides miscellaneous tools for concurrent programming.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-crossbeam-utils-0.7
   (package
+    (inherit rust-crossbeam-utils-0.8)
     (name "rust-crossbeam-utils")
     (version "0.7.2")
     (source
@@ -4634,20 +7677,13 @@ to @code{is_x86_feature_detected}.")
        (sha256
         (base32
          "1a31wbrda1320gj2a6az1lin2d34xfc3xf88da4c17qy5lxcgiy3"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-autocfg" ,rust-autocfg-1.0)
+       (("rust-autocfg" ,rust-autocfg-1)
         ("rust-cfg-if" ,rust-cfg-if-0.1)
         ("rust-lazy-static" ,rust-lazy-static-1))
        #:cargo-development-inputs
-       (("rust-rand" ,rust-rand-0.6))))
-    (home-page
-     "https://github.com/crossbeam-rs/crossbeam/tree/master/crossbeam-utils")
-    (synopsis "Utilities for concurrent programming")
-    (description
-     "Utilities for concurrent programming.")
-    (license (list license:expat license:asl2.0))))
+       (("rust-rand" ,rust-rand-0.6))))))
 
 (define-public rust-crossbeam-utils-0.6
   (package
@@ -4716,10 +7752,10 @@ manipulating terminals.")
 around common WinAPI calls.")
     (license license:expat)))
 
-(define-public rust-crypto-mac-0.8
+(define-public rust-crypto-mac-0.10
   (package
     (name "rust-crypto-mac")
-    (version "0.8.0")
+    (version "0.10.0")
     (source
       (origin
         (method url-fetch)
@@ -4727,20 +7763,41 @@ around common WinAPI calls.")
         (file-name
          (string-append name "-" version ".tar.gz"))
         (sha256
-         (base32
-          "1axfs4zmy74rn9666p92j7nmcv11zdp2d51yrppc2dv26cqa715m"))))
+         (base32 "19iyh7h9qaqrv29dhbd31rm6pq023ry78nw7jwr3qjy3l22zsms8"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:cargo-inputs
-       (("rust-blobby" ,rust-blobby-0.1)
-        ("rust-generic-array" ,rust-generic-array-0.14)
-        ("rust-subtle" ,rust-subtle-2))))
+     `(#:skip-build? #t
+       #:cargo-inputs
+        (("rust-blobby" ,rust-blobby-0.3)
+         ("rust-cipher" ,rust-cipher-0.2)
+         ("rust-generic-array" ,rust-generic-array-0.14)
+         ("rust-subtle" ,rust-subtle-2))))
     (home-page "https://github.com/RustCrypto/traits")
     (synopsis "Trait for Message Authentication Code (MAC) algorithms")
     (description "This package provides trait for @dfn{Message Authentication
 Code} (MAC) algorithms.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-crypto-mac-0.8
+  (package
+    (inherit rust-crypto-mac-0.10)
+    (name "rust-crypto-mac")
+    (version "0.8.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "crypto-mac" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1axfs4zmy74rn9666p92j7nmcv11zdp2d51yrppc2dv26cqa715m"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-blobby" ,rust-blobby-0.1)
+        ("rust-generic-array" ,rust-generic-array-0.14)
+        ("rust-subtle" ,rust-subtle-2))))))
+
 (define-public rust-crypto-mac-0.7
   (package
     (inherit rust-crypto-mac-0.8)
@@ -4761,19 +7818,96 @@ Code} (MAC) algorithms.")
         ("rust-generic-array" ,rust-generic-array-0.12)
         ("rust-subtle" ,rust-subtle-1.0))))))
 
+(define-public rust-crypto-mac-0.4
+  (package
+    (name "rust-crypto-mac")
+    (version "0.4.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "crypto-mac" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "160ixpghhz5kz16f38kzcyv6lx8wmi4cgbhlhq4nazf678iib43p"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-constant-time-eq" ,rust-constant-time-eq-0.1)
+        ("rust-generic-array" ,rust-generic-array-0.8))))
+    (home-page "https://github.com/RustCrypto/traits")
+    (synopsis "Trait for Message Authentication Code (MAC) algorithms")
+    (description "This package provides traits for Message Authentication
+Code (MAC) algorithms.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-crypto-tests-0.5
+  (package
+    (name "rust-crypto-tests")
+    (version "0.5.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "crypto-tests" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "08yrh40a9ll4k29ppizg2yjf96i6s3i9pbkhxp60y8arar93134v"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-block-cipher-trait" ,rust-block-cipher-trait-0.4)
+        ("rust-crypto-mac" ,rust-crypto-mac-0.4)
+        ("rust-digest" ,rust-digest-0.6)
+        ("rust-generic-array" ,rust-generic-array-0.8))))
+    (home-page "https://github.com/RustCrypto/utils")
+    (synopsis "Test helpers for cryptographic algorithms")
+    (description "This package provides test helpers for cryptographic
+algorithms.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-cryptovec-0.4
+  (package
+    (name "rust-cryptovec")
+    (version "0.4.6")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "cryptovec" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1n88dmhfb2dxs48zllq1g1dya76zx4fajw482qy8jj4hgg1da4p4"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f  ; CryptoVec::from_slice failed
+       #:cargo-inputs
+       (("rust-kernel32-sys" ,rust-kernel32-sys-0.2)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-winapi" ,rust-winapi-0.2))))
+    (home-page "https://crates.io/crates/cryptovec")
+    (synopsis
+     "Vector which zeroes its memory on clears and reallocations")
+    (description
+     "This package provides a vector which zeroes its memory on clears and
+reallocations.")
+    (license license:asl2.0)))
+
 (define-public rust-cssparser-0.27
   (package
     (name "rust-cssparser")
     (version "0.27.2")
     (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "cssparser" version))
-        (file-name
-         (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32
-          "02nbm690rmkaz1ca0383qq7mc1g066w3s85f17pdihnda79njjvm"))))
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "cssparser" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "02nbm690rmkaz1ca0383qq7mc1g066w3s85f17pdihnda79njjvm"))))
     (build-system cargo-build-system)
     (arguments
      `(#:tests? #f  ; Not all files included in the tarball.
@@ -4789,7 +7923,7 @@ Code} (MAC) algorithms.")
         ("rust-smallvec" ,rust-smallvec-1)
         ("rust-syn" ,rust-syn-1))
        #:cargo-development-inputs
-       (("rust-difference" ,rust-difference-2.0)
+       (("rust-difference" ,rust-difference-2)
         ("rust-encoding-rs" ,rust-encoding-rs-0.8)
         ("rust-serde-json" ,rust-serde-json-1))))
     (home-page "https://github.com/servo/rust-cssparser")
@@ -4829,7 +7963,7 @@ Code} (MAC) algorithms.")
         ("rust-quote" ,rust-quote-1)
         ("rust-syn" ,rust-syn-1))
        #:cargo-development-inputs
-       (("rust-difference" ,rust-difference-2.0)
+       (("rust-difference" ,rust-difference-2)
         ("rust-encoding-rs" ,rust-encoding-rs-0.8)
         ("rust-serde-json" ,rust-serde-json-1))))))
 
@@ -4879,10 +8013,10 @@ Code} (MAC) algorithms.")
         ("rust-quote" ,rust-quote-1)
         ("rust-syn" ,rust-syn-1))))))
 
-(define-public rust-csv-1.1
+(define-public rust-csv-1
   (package
     (name "rust-csv")
-    (version "1.1.3")
+    (version "1.1.5")
     (source
      (origin
        (method url-fetch)
@@ -4891,15 +8025,14 @@ Code} (MAC) algorithms.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0yd2z55m2pg4al4yng4nl2y7c9dw2v7yhg5ynihxyrmmd9zzxbq0"))))
+         "15wydz6klf1shh1ac5n6rsihc4xrz1lzi8vjmhava94v54rqdmgr"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-bstr" ,rust-bstr-0.2)
         ("rust-csv-core" ,rust-csv-core-0.1)
         ("rust-itoa" ,rust-itoa-0.4)
-        ("rust-ryu" ,rust-ryu-1.0)
+        ("rust-ryu" ,rust-ryu-1)
         ("rust-serde" ,rust-serde-1))
        #:cargo-development-inputs
        (("rust-serde" ,rust-serde-1))))
@@ -4911,7 +8044,7 @@ Code} (MAC) algorithms.")
 
 (define-public rust-csv-0.14
   (package
-    (inherit rust-csv-1.1)
+    (inherit rust-csv-1)
     (name "rust-csv")
     (version "0.14.7")
     (source
@@ -4956,27 +8089,59 @@ Code} (MAC) algorithms.")
      "Bare bones CSV parsing with no_std support.")
     (license (list license:unlicense license:expat))))
 
-(define-public rust-ct-logs-0.3
+(define-public rust-ct-logs-0.7
   (package
     (name "rust-ct-logs")
-    (version "0.3.0")
+    (version "0.7.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "ct-logs" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1f0885ws3p49xh6dfgnhh7zjw9h4rhs9ljs8i9cnkhifzz98784f"))))
+        (base32
+         "0bk7pbmkjm18cgccm4a76vyn3wkaf2z4bh0jy9fk3dl4188i73lc"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:cargo-inputs
-       (("rust-sct" ,rust-sct-0.3))))
+     `(#:cargo-inputs (("rust-sct" ,rust-sct-0.6))))
     (home-page "https://github.com/ctz/ct-logs")
     (synopsis "Google's list of Certificate Transparency logs")
     (description "This package contains Google's list of Certificate
 Transparency logs for use with sct crate.")
     (license (list license:asl2.0 license:isc license:expat))))
 
+(define-public rust-ct-logs-0.6
+  (package
+    (inherit rust-ct-logs-0.7)
+    (name "rust-ct-logs")
+    (version "0.6.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "ct-logs" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "04wiwiv4ghni3x2vni3z711mlz0ndqvh04vmdkbw3nr7zbsqcdjd"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-sct" ,rust-sct-0.6))))))
+
+(define-public rust-ct-logs-0.3
+  (package
+    (inherit rust-ct-logs-0.7)
+    (name "rust-ct-logs")
+    (version "0.3.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "ct-logs" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1f0885ws3p49xh6dfgnhh7zjw9h4rhs9ljs8i9cnkhifzz98784f"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-sct" ,rust-sct-0.3))))))
+
 (define-public rust-ctor-0.1
   (package
     (name "rust-ctor")
@@ -5003,6 +8168,31 @@ Transparency logs for use with sct crate.")
      "This package provides an @code{__attribute__((constructor))} for Rust.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-ctr-0.6
+  (package
+    (name "rust-ctr")
+    (version "0.6.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "ctr" version))
+        (file-name
+          (string-append name "-" version ".tar.gz"))
+        (sha256
+          (base32 "0zvyf13675hrlc37myj97k5ng7m1mj3d9p4ic4yvyhvl9zak0jpv"))))
+    (build-system cargo-build-system)
+    (arguments
+      `(#:skip-build? #t
+        #:cargo-inputs
+        (("rust-cipher" ,rust-cipher-0.2))))
+    (home-page "https://docs.rs/ctr/")
+    (synopsis "CTR block mode of operation")
+    (description "This package provides a generic implementations of CTR mode
+for block ciphers.
+
+Mode functionality is accessed using traits from re-exported cipher crate.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-ctrlc-3.1
   (package
     (name "rust-ctrlc")
@@ -5029,10 +8219,69 @@ Transparency logs for use with sct crate.")
      "This package provides an easy Ctrl-C handler for Rust projects.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-cty-0.2
+  (package
+    (name "rust-cty")
+    (version "0.2.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "cty" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1qvkdnkxmd7g6fwhmv26zxqi0l7b9cd4d7h1knylvjyh43bc04vk"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/japaric/cty")
+    (synopsis "Type aliases to C types")
+    (description "This package provides type aliases to C types like c_int for
+use with bindgen.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-curl-0.4
+  (package
+    (name "rust-curl")
+    (version "0.4.34")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "curl" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0vkm6fyizf8m9yxpv3n5pm9ag3bwlyqa6nz2ga8qkzm5y4m1cs72"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #false                  ;require internet access
+       #:cargo-inputs
+       (("rust-curl-sys" ,rust-curl-sys-0.4)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-openssl-probe" ,rust-openssl-probe-0.1)
+        ("rust-openssl-sys" ,rust-openssl-sys-0.9)
+        ("rust-schannel" ,rust-schannel-0.1)
+        ("rust-socket2" ,rust-socket2-0.3)
+        ("rust-winapi" ,rust-winapi-0.3))
+       #:cargo-development-inputs
+       (("rust-anyhow" ,rust-anyhow-1)
+        ("rust-mio" ,rust-mio-0.6)
+        ("rust-mio-extras" ,rust-mio-extras-2))))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("curl" ,curl)
+       ("nghttp2" ,nghttp2)
+       ("openssl" ,openssl)
+       ("zlib" ,zlib)))
+    (home-page "https://github.com/alexcrichton/curl-rust")
+    (synopsis "Rust bindings to libcurl for making HTTP requests")
+    (description
+     "This package provides Rust bindings to libcurl for making HTTP
+requests")
+    (license license:expat)))
+
 (define-public rust-curl-sys-0.4
   (package
     (name "rust-curl-sys")
-    (version "0.4.20")
+    (version "0.4.39+curl-7.74.0")
     (source
       (origin
         (method url-fetch)
@@ -5040,7 +8289,7 @@ Transparency logs for use with sct crate.")
         (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "02542zmvl3fpdqf7ai4cqnamm4albx9j645dkjx5qr1myq8ax42y"))
+          "0x7qhq7c3b1vmp3740yiigzm09qvkzpdf578jjrs0s3v3s3cxa07"))
         (modules '((guix build utils)))
         (snippet
          '(begin (delete-file-recursively "curl") #t))))
@@ -5049,19 +8298,15 @@ Transparency logs for use with sct crate.")
      `(#:cargo-inputs
        (("rust-libc" ,rust-libc-0.2)
         ("rust-libnghttp2-sys" ,rust-libnghttp2-sys-0.1)
-        ("rust-libz-sys" ,rust-libz-sys-1.0)
+        ("rust-libz-sys" ,rust-libz-sys-1)
+        ("rust-mesalink" ,rust-mesalink-1)
         ("rust-openssl-sys" ,rust-openssl-sys-0.9)
         ("rust-winapi" ,rust-winapi-0.3)
         ("rust-cc" ,rust-cc-1)
         ("rust-pkg-config" ,rust-pkg-config-0.3)
         ("rust-vcpkg" ,rust-vcpkg-0.2))
-       #:phases
-       (modify-phases %standard-phases
-        (add-after 'unpack 'find-openssl
-          (lambda* (#:key inputs #:allow-other-keys)
-            (let ((openssl (assoc-ref inputs "openssl")))
-              (setenv "OPENSSL_DIR" openssl))
-            #t)))))
+       #:cargo-development-inputs
+       (("rust-cfg-if" ,rust-cfg-if-1))))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
     (inputs
@@ -5075,6 +8320,35 @@ Transparency logs for use with sct crate.")
      "This package provides native bindings to the @code{libcurl} library.")
     (license license:expat)))
 
+(define-public rust-curve25519-dalek-3
+  (package
+    (name "rust-curve25519-dalek")
+    (version "3.0.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "curve25519-dalek" version))
+        (file-name (string-append name "-" version ".tar.gz"))
+        (sha256
+          (base32 "01xknhlwagv601k6125372vr0lw2j6xjsvnnl74hprp943j2sjf8"))))
+    (build-system cargo-build-system)
+    (arguments
+      `(#:skip-build? #t
+        #:cargo-inputs
+        (("rust-byteorder" ,rust-byteorder-1)
+         ("rust-digest" ,rust-digest-0.9)
+         ("rust-packed-simd" ,rust-packed-simd-0.3)
+         ("rust-rand-core" ,rust-rand-core-0.5)
+         ("rust-serde" ,rust-serde-1)
+         ("rust-subtle" ,rust-subtle-2)
+         ("rust-zeroize" ,rust-zeroize-1))))
+    (home-page "https://dalek.rs/curve25519-dalek")
+    (synopsis "Group operations on ristretto255 and Curve25519")
+    (description
+      "This package provides a pure-Rust implementation of group operations on
+ristretto255 and Curve25519")
+    (license license:bsd-3)))
+
 (define-public rust-custom-derive-0.1
   (package
     (name "rust-custom-derive")
@@ -5100,6 +8374,166 @@ Transparency logs for use with sct crate.")
 attributes.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-cxx-0.5
+  (package
+    (name "rust-cxx")
+    (version "0.5.10")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "cxx" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1alj19zf8jm5j8c8hynqb36f0vyjqs8yhwmxpcapfmb5lav4ipgb"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f  ; Cannot compile cxx-test-suite.
+       #:cargo-inputs
+       (("rust-cc" ,rust-cc-1)
+        ("rust-cxxbridge-flags" ,rust-cxxbridge-flags-0.5)
+        ("rust-cxxbridge-macro" ,rust-cxxbridge-macro-0.5)
+        ("rust-link-cplusplus" ,rust-link-cplusplus-1))
+       #:cargo-development-inputs
+       (("rust-cxx-build" ,rust-cxx-build-0.5)
+        ("rust-cxx-gen" ,rust-cxx-gen-0.6)
+        ("rust-cxx-test-suite" ,rust-cxx-test-suite-0.0.0)
+        ("rust-rustversion" ,rust-rustversion-1)
+        ("rust-trybuild" ,rust-trybuild-1))))
+    (home-page "https://cxx.rs")
+    (synopsis "Safe interop between Rust and C++")
+    (description "This package provides a safe interop between Rust and C++.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-cxx-build-0.5
+  (package
+    (name "rust-cxx-build")
+    (version "0.5.10")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "cxx-build" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "01109arjlj8wdq2rcyy3s76a5aidkn7zvhhhvhvkg1cxgqza9p22"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-cc" ,rust-cc-1)
+        ("rust-codespan-reporting" ,rust-codespan-reporting-0.9)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-scratch" ,rust-scratch-1)
+        ("rust-syn" ,rust-syn-1))
+       #:cargo-development-inputs
+       (("rust-cxx-gen" ,rust-cxx-gen-0.6)
+        ("rust-pkg-config" ,rust-pkg-config-0.3))))
+    (home-page "https://cxx.rs")
+    (synopsis "C++ code generator")
+    (description
+     "This package provides a C++ code generator for integrating the @code{cxx}
+crate into a Cargo build.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-cxx-gen-0.6
+  (package
+    (name "rust-cxx-gen")
+    (version "0.6.7")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "cxx-gen" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0avkca16wjy0paplq1ycaf04bj62agfj0awyhyzxyfpdn9rm45j2"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-cc" ,rust-cc-1)
+        ("rust-codespan-reporting" ,rust-codespan-reporting-0.9)
+        ("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-1))))
+    (home-page "https://cxx.rs")
+    (synopsis "C++ code generator")
+    (description
+     "This package provides a C++ code generator for integrating the @code{cxx}
+crate into higher level tools.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-cxx-test-suite-0.0.0
+  (package
+    (name "rust-cxx-test-suite")
+    (version "0.0.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "cxx-test-suite" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1pkf4ay1210g9wqyqhkgvlcsv4i6kgdcmgnh19mrymylznv7pcal"))))
+    (build-system cargo-build-system)
+    (arguments '(#:skip-build? #t)) ; Not meant to be built independantly.
+    (home-page "https://github.com/dtolnay/cxx")
+    (synopsis "Test suite of the cxx crate")
+    (description "This package provides the test suite of the cxx crate.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-cxxbridge-flags-0.5
+  (package
+    (name "rust-cxxbridge-flags")
+    (version "0.5.10")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "cxxbridge-flags" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0jfwsm85s5kalgqbqlg1kq79zcb5zwk375h0qw7ycz5i6v3c8j0k"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/dtolnay/cxx")
+    (synopsis "Compiler configuration of the `cxx` crate")
+    (description "This package provides a compiler configuration of the `cxx`
+crate (implementation detail).")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-cxxbridge-macro-0.5
+  (package
+    (name "rust-cxxbridge-macro")
+    (version "0.5.10")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "cxxbridge-macro" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "05mhvchmcb8dpgcqkl5vyxycywp2x42vw1qh2hyxxyi576nmmxsr"))))
+    (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))
+       #:cargo-development-inputs
+       (("rust-cxx" ,rust-cxx-0.5))))
+    (home-page "https://cxx.rs")
+    (synopsis "Implementation detail of the `cxx` crate")
+    (description
+     "This package provides an implementation detail of the @code{cxx} crate.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-darling-0.10
   (package
     (name "rust-darling")
@@ -5184,10 +8618,71 @@ reading attributes into structs when implementing custom derives.")
 reading attributes into structs when implementing custom derives.")
     (license license:expat)))
 
-(define-public rust-data-encoding-2.1
+(define-public rust-dashmap-4
+  (package
+    (name "rust-dashmap")
+    (version "4.0.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "dashmap" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1773x18k5m2zw1iyibs8l3wl1p1aijdbrc0w844xys06inr46yp7"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-cfg-if" ,rust-cfg-if-1)
+        ("rust-num-cpus" ,rust-num-cpus-1)
+        ("rust-rayon" ,rust-rayon-1)
+        ("rust-serde" ,rust-serde-1))))
+    (home-page "https://github.com/xacrimon/dashmap")
+    (synopsis "Blazing fast concurrent HashMap for Rust.")
+    (description "This package implements a blazing fast concurrent HashMap
+for Rust.")
+    (license license:expat)))
+
+(define-public rust-dashmap-3
+  (package
+    (inherit rust-dashmap-4)
+    (name "rust-dashmap")
+    (version "3.11.10")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "dashmap" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1ddrjj4khb0s263pw278g5dvbhaid40611h123s9w5shr0phw9hg"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin
+           ;; Enable unstable features
+           (substitute* "src/lib.rs"
+             (("#!\\[cfg_attr" all)
+              (string-append "#![feature(map_get_key_value)]" "\n"
+                             "#![feature(inner_deref)]" "\n"
+                             all)))
+           #t))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-ahash" ,rust-ahash-0.3)
+        ("rust-hashbrown" ,rust-hashbrown-0.8)
+        ("rust-serde" ,rust-serde-1))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'enable-unstable-features
+           (lambda _
+             (setenv "RUSTC_BOOTSTRAP" "1")
+             #t)))))))
+
+(define-public rust-data-encoding-2
   (package
     (name "rust-data-encoding")
-    (version "2.1.2")
+    (version "2.3.1")
     (source
       (origin
         (method url-fetch)
@@ -5195,9 +8690,8 @@ reading attributes into structs when implementing custom derives.")
         (file-name (string-append name "-" version ".crate"))
         (sha256
          (base32
-          "15xd6afhsjl08285piwczrafmckpp8i29padj8v12xhahshprx7l"))))
+          "027rcrwdschrkdr2n9d24gnh03vl41qmvhjqn9vn6z1njy2n0flr"))))
     (build-system cargo-build-system)
-    (arguments '(#:skip-build? #t))
     (home-page "https://github.com/ia0/data-encoding")
     (synopsis "Efficient and customizable data-encoding functions")
     (description
@@ -5265,41 +8759,30 @@ hexadecimal, base32, and base64.")
 and arithmetic.")
     (license license:expat)))
 
-(define-public rust-dav1d-sys-0.3
+(define-public rust-dbl-0.3
   (package
-    (name "rust-dav1d-sys")
-    (version "0.3.2")
+    (name "rust-dbl")
+    (version "0.3.0")
     (source
       (origin
         (method url-fetch)
-        (uri (crate-uri "dav1d-sys" version))
+        (uri (crate-uri "dbl" version))
         (file-name
-         (string-append name "-" version ".tar.gz"))
+          (string-append name "-" version ".tar.gz"))
         (sha256
-         (base32
-          "1jdxhnlxcml6jd67lx78ifzkn1xm18zfk4li7vjdh3fa61i073kx"))))
+          (base32 "1pihf6zrzncbs3lsyqkzxxxqmjf8rfpwvs1sg8nmz8cv7df18d97"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:cargo-inputs
-       (("rust-bindgen" ,rust-bindgen-0.54)
-        ("rust-metadeps" ,rust-metadeps-1.1))
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'set-environmental-variable
-           (lambda* (#:key inputs #:allow-other-keys)
-             (let ((clang (assoc-ref inputs "libclang")))
-               (setenv "LIBCLANG_PATH"
-                       (string-append clang "/lib")))
-             #t)))))
-    (inputs
-     `(("dav1d" ,dav1d)
-       ("pkg-config" ,pkg-config)
-       ("libclang" ,clang)
-       ("llvm" ,llvm)))
-    (home-page "https://github.com/rust-av/dav1d-rs")
-    (synopsis "FFI bindings to dav1d")
-    (description "This package provides FFI bindings to dav1d.")
-    (license license:expat)))
+      `(#:skip-build? #t
+        #:cargo-inputs
+        (("rust-generic-array" ,rust-generic-array-0.14))))
+    (home-page "https://docs.rs/dbl")
+    (synopsis "Double operation in Galois Field")
+    (description
+      "This package provides double and inverse double over Galois Field -
+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-decimal-2.0
   (package
@@ -5349,7 +8832,7 @@ and arithmetic.")
      `(#:tests? #f      ; not all test files included
        #:cargo-inputs
        (("rust-adler32" ,rust-adler32-1)
-        ("rust-byteorder" ,rust-byteorder-1.3)
+        ("rust-byteorder" ,rust-byteorder-1)
         ("rust-gzip-header" ,rust-gzip-header-0.3))
        #:cargo-development-inputs
        (("rust-miniz-oxide" ,rust-miniz-oxide-0.3))))
@@ -5376,9 +8859,9 @@ and arithmetic.")
     (arguments
      `(#:cargo-inputs
        (("rust-adler32" ,rust-adler32-1)
-        ("rust-byteorder" ,rust-byteorder-1.3)
+        ("rust-byteorder" ,rust-byteorder-1)
         ("rust-gzip-header" ,rust-gzip-header-0.3)
-        ("rust-flate2" ,rust-flate2-1.0))))))
+        ("rust-flate2" ,rust-flate2-1))))))
 
 (define-public rust-defmac-0.2
   (package
@@ -5413,6 +8896,29 @@ and arithmetic.")
          (base32
           "17giv0n0n1r64z0dahfvkjy3ys517jxyhs8sd9lmgvcljpjyryxa"))))))
 
+(define-public rust-delta-e-0.2
+  (package
+    (name "rust-delta-e")
+    (version "0.2.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "delta_e" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "18rxibmi27ark8vj367qm2iqmv5x293l8fm9ang4y2sv3l251sf5"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-lab" ,rust-lab-0.7))))
+    (home-page "https://github.com/elliotekj/DeltaE")
+    (synopsis "Pure Rust implementation of the CIEDE2000 algorithm")
+    (description "DeltaE is a pure-Rust implementation of the
+@url{http://en.wikipedia.org/wiki/Color_difference#CIEDE2000, CIEDE2000}
+algorithm which serves to quantify the difference between two colors.")
+    (license license:expat)))
+
 (define-public rust-demo-hack-0.0
   (package
     (name "rust-demo-hack")
@@ -5460,6 +8966,32 @@ and arithmetic.")
     (description "Demo of proc-macro-hack.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-derivative-2
+  (package
+    (name "rust-derivative")
+    (version "2.1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "derivative" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "03rqx8j9q5nlrpr7w8cwwrvw916pr0ahzs3y8yln18cx6mh2nn6b"))))
+    (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))
+       #:cargo-development-inputs
+       (("rust-trybuild" ,rust-trybuild-1))))
+    (home-page "https://github.com/mcarton/rust-derivative")
+    (synopsis "Set of alternative @code{derive} attributes for Rust")
+    (description
+     "This package provides a set of alternative @code{derive} attributes for
+Rust.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-derive-builder-0.9
   (package
     (name "rust-derive-builder")
@@ -5569,10 +9101,33 @@ for arbitrary structs.")
        #:cargo-development-inputs
        (("rust-pretty-assertions" ,rust-pretty-assertions-0.2))))))
 
+(define-public rust-derive-error-chain-0.10
+  (package
+    (name "rust-derive-error-chain")
+    (version "0.10.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "derive-error-chain" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0jnybrpiq5jzx69xq74cwxply36js02z14y9sym8sf2iwsnsk71w"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-quote" ,rust-quote-0.3)
+        ("rust-syn" ,rust-syn-0.14))))
+    (home-page "https://github.com/Arnavion/derive-error-chain")
+    (synopsis "Macros 1.1 implementation of error-chain")
+    (description "This package provides a Macros 1.1 implementation of
+error-chain.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-derive-more-0.99
   (package
     (name "rust-derive-more")
-    (version "0.99.9")
+    (version "0.99.11")
     (source
      (origin
        (method url-fetch)
@@ -5581,7 +9136,7 @@ for arbitrary structs.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0xizcpj39rx0474mbbx8m0xww98qh92zsg82gf52qnvbryqri299"))))
+         "131xrz5nmnh8zq3vcvv0wfpcaflypbxp3fin984fsqddc5hhxjs1"))))
     (build-system cargo-build-system)
     (arguments
      `(#:tests? #f  ; Some test files missing.
@@ -5630,6 +9185,146 @@ traits for both structs and enums.")
 structs and enums.")
   (license license:expat)))
 
+(define-public rust-deunicode-0.4
+  (package
+    (name "rust-deunicode")
+    (version "0.4.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "deunicode" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "146nc3wlwz2j9awwf7zf76qvjcahnls0mlv9jm6clcvr9dlph245"))))
+    (build-system cargo-build-system)
+    (arguments `(#:skip-build? #t))
+    (home-page "https://lib.rs/crates/deunicode")
+    (synopsis "Convert Unicode strings to pure ASCII")
+    (description
+     "This package converts Unicode strings to pure ASCII by
+intelligently transliterating them.  It supports Emoji and Chinese.")
+    (license license:bsd-3)))
+
+(define-public rust-dialoguer-0.6
+  (package
+    (name "rust-dialoguer")
+    (version "0.6.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "dialoguer" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0f31ahy6myg2vz9xrdmp0vx0m7x427a1wxpgrgwhxd0rgfpqdapl"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-console" ,rust-console-0.11)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-tempfile" ,rust-tempfile-3))))
+    (home-page "https://github.com/mitsuhiko/dialoguer")
+    (synopsis "Library for command line prompts")
+    (description
+     "This package provides a library for command line prompts and the like.")
+    (license license:expat)))
+
+(define-public rust-dialoguer-0.3
+  (package
+    (inherit rust-dialoguer-0.6)
+    (name "rust-dialoguer")
+    (version "0.3.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "dialoguer" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1a9gqvqp83gg4jbm286q5ab3l44zyyzlsdaiqmw8x4k80fdc5l8s"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-test-flags '("--lib")
+       #:cargo-inputs
+       (("rust-console" ,rust-console-0.11)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-tempfile" ,rust-tempfile-2))))))
+
+(define-public rust-diesel-1
+  (package
+    (name "rust-diesel")
+    (version "1.4.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "diesel" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "134dy6gdbv30q388gsp5777w2qh63hdqsim1j8s1aylpmggfjb9y"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bigdecimal" ,rust-bigdecimal-0.2)
+        ("rust-bitflags" ,rust-bitflags-1)
+        ("rust-byteorder" ,rust-byteorder-1)
+        ("rust-chrono" ,rust-chrono-0.4)
+        ("rust-diesel-derives" ,rust-diesel-derives-1.4)
+        ("rust-ipnetwork" ,rust-ipnetwork-0.17)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-libsqlite3-sys" ,rust-libsqlite3-sys-0.15)
+        ("rust-mysqlclient-sys" ,rust-mysqlclient-sys-0.2)
+        ("rust-num-bigint" ,rust-num-bigint-0.3)
+        ("rust-num-integer" ,rust-num-integer-0.1)
+        ("rust-num-traits" ,rust-num-traits-0.2)
+        ("rust-pq-sys" ,rust-pq-sys-0.4)
+        ("rust-quickcheck" ,rust-quickcheck-0.4)
+        ("rust-r2d2" ,rust-r2d2)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-time" ,rust-time-0.1)
+        ("rust-url" ,rust-url-1)
+        ("rust-uuid" ,rust-uuid-0.7))
+       #:cargo-development-inputs
+       (("rust-cfg-if" ,rust-cfg-if-0.1)
+        ("rust-dotenv" ,rust-dotenv-0.10)
+        ("rust-quickcheck" ,rust-quickcheck-0.4)
+        ("rust-tempdir" ,rust-tempdir-0.3))))
+    (home-page "https://diesel.rs")
+    (synopsis "A safe, extensible ORM and Query Builder")
+    (description "This package provides a safe, extensible ORM and Query
+Builder for PostgreSQL, SQLite, and MySQL.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-diesel-derives-1.4
+  (package
+    (name "rust-diesel-derives")
+    (version "1.4.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "diesel_derives" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1lsq133fwk0zj8xvxhdxqgg0xs31zf3abnwdyshaf0ldca7hkxa5"))))
+    (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))
+       #: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 "Crate internal to Diesel")
+    (description "You should not use this crate directly, it is internal to
+Diesel.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-diff-0.1
   (package
     (name "rust-diff")
@@ -5656,7 +9351,7 @@ structs and enums.")
      "An LCS based slice and string diffing implementation.")
     (license (list license:expat license:asl2.0))))
 
-(define-public rust-difference-2.0
+(define-public rust-difference-2
   (package
     (name "rust-difference")
     (version "2.0.0")
@@ -5684,7 +9379,7 @@ structs and enums.")
     (license license:expat)))
 
 (define-public rust-difference-1
-  (package/inherit rust-difference-2.0
+  (package/inherit rust-difference-2
     (name "rust-difference")
     (version "1.0.0")
     (source
@@ -5701,6 +9396,28 @@ structs and enums.")
        #:cargo-development-inputs
        (("rust-term" ,rust-term-0.2))))))
 
+(define-public rust-diffs-0.3
+  (package
+    (name "rust-diffs")
+    (version "0.3.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "diffs" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "036sqycmir4bbl4016jprsyjq4hicc31r68dyqadmc8ac9pk55d1"))))
+    (build-system cargo-build-system)
+    (home-page "https://nest.pijul.com/pijul_org/pijul")
+    (synopsis "Diff algorithms, also called longest common subsequence")
+    (description
+     "This package provides a number of diff algorithms, also called longest
+common subsequence.  The diff algorithms include Myer's diff and Patience
+diff.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-digest-0.9
   (package
     (name "rust-digest")
@@ -5745,6 +9462,28 @@ structs and enums.")
        (("rust-blobby" ,rust-blobby-0.1)
         ("rust-generic-array" ,rust-generic-array-0.13))))))
 
+(define-public rust-digest-0.6
+  (package
+    (name "rust-digest")
+    (version "0.6.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "digest" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "02mgf8z4hi96w9nl2zb5w3k6lqbhjgv5z8hhyv2b7x7kavqrpcp5"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-generic-array" ,rust-generic-array-0.8))))
+    (home-page "https://github.com/RustCrypto/traits")
+    (synopsis "Traits for cryptographic hash functions")
+    (description "This package provides traits for cryptographic hash
+functions.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-directories-3
   (package
     (name "rust-directories")
@@ -5775,34 +9514,67 @@ on Linux, the Known Folder API on Windows, and the Standard
 Directory guidelines on macOS.")
     (license (list license:expat license:asl2.0))))
 
-(define-public rust-dirs-2.0
+(define-public rust-directories-next-1
   (package
-    (name "rust-dirs")
-    (version "2.0.2")
+    (inherit rust-directories-3)
+    (name "rust-directories-next")
+    (version "1.0.3")
     (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "dirs" version))
-        (file-name
-          (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32
-          "1qymhyq7w7wlf1dirq6gsnabdyzg6yi2yyxkx6c4ldlkbjdaibhk"))))
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "directories-next" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0mmym1h9vlyapwlzygfas3q9mx03mki8cnf5y1bmr713q7mwqa4a"))))
     (arguments
      `(#:cargo-inputs
-       (("rust-cfg-if" ,rust-cfg-if-0.1)
-        ("rust-dirs-sys" ,rust-dirs-sys-0.3))))
+       (("rust-cfg-if" ,rust-cfg-if-1)
+        ("rust-dirs-sys" ,rust-dirs-sys-next-0.1))
+       #:cargo-development-inputs
+       (("rust-bencher" ,rust-bencher-0.1))))
+    (home-page "https://github.com/xdg-rs/dirs/tree/master/directories")))
+
+(define-public rust-dirs-3
+  (package
+    (name "rust-dirs")
+    (version "3.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "dirs" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1zxrb3anxsh80mnp2il7awccv0s5gvy7djn6gis18nbm0bnraa8l"))))
     (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-dirs-sys" ,rust-dirs-sys-0.3))))
     (home-page "https://github.com/soc/dirs-rs")
     (synopsis "Abstractions for standard locations for various platforms")
     (description
-     "This package provides a tiny low-level library that provides
-platform-specific standard locations of directories for config, cache and other
-data on Linux, Windows, macOS and Redox by leveraging the mechanisms defined by
-the XDG base/user directory specifications on Linux, the Known Folder API on
-Windows, and the Standard Directory guidelines on macOS.")
+     "This package is a tiny low-level library that provides platform-specific
+standard locations of directories for config, cache and other data.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-dirs-2.0
+  (package
+    (inherit rust-dirs-3)
+    (name "rust-dirs")
+    (version "2.0.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "dirs" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1qymhyq7w7wlf1dirq6gsnabdyzg6yi2yyxkx6c4ldlkbjdaibhk"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-cfg-if" ,rust-cfg-if-0.1)
+        ("rust-dirs-sys" ,rust-dirs-sys-0.3))))))
+
 (define-public rust-dirs-1.0
   (package
     (inherit rust-dirs-2.0)
@@ -5823,6 +9595,28 @@ Windows, and the Standard Directory guidelines on macOS.")
         ("rust-redox-users" ,rust-redox-users-0.3)
         ("rust-winapi" ,rust-winapi-0.3))))))
 
+(define-public rust-dirs-next-1
+  (package
+    (inherit rust-dirs-1.0)
+    (name "rust-dirs-next")
+    (version "1.0.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "dirs-next" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1dl2dqzsrcb7qigfiwpdpakhdkpz0629pvylbj2ylyrkh1dfcdng"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-cfg-if" ,rust-cfg-if-1)
+        ("rust-dirs-sys" ,rust-dirs-sys-next-0.1))))
+    (home-page "https://github.com/xdg-rs/dirs")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-dirs-sys-0.3
   (package
     (name "rust-dirs-sys")
@@ -5851,6 +9645,27 @@ Windows, and the Standard Directory guidelines on macOS.")
 and @code{directories} crates.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-dirs-sys-next-0.1
+  (package
+    (inherit rust-dirs-sys-0.3)
+    (name "rust-dirs-sys-next")
+    (version "0.1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "dirs-sys-next" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0zgy7is3h2dyf1l4sa7k065w2kvx0l12l40my4rswm2mc1gkdplr"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-libc" ,rust-libc-0.2)
+        ("rust-redox-users" ,rust-redox-users-0.3)
+        ("rust-winapi" ,rust-winapi-0.3))))
+    (home-page "https://github.com/xdg-rs/dirs/tree/master/dirs-sys")))
+
 (define-public rust-discard-1.0
   (package
     (name "rust-discard")
@@ -5972,7 +9787,7 @@ from macros.")
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-which" ,rust-which-2.0))))
+       (("rust-which" ,rust-which-2))))
     (home-page "https://github.com/assert-rs/docmatic")
     (synopsis "Test Rust examples in your documentation")
     (description "Test Rust examples in your documentation.")
@@ -6085,6 +9900,27 @@ from macros.")
 parameters, associated types, and type constraints.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-downcast-rs-1.2
+  (package
+    (name "rust-downcast-rs")
+    (version "1.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "downcast-rs" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0l36kgxqd5djhqwf5abxjmgasdw8n0qsjvw3jdvhi91nj393ba4y"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/marcianx/downcast-rs")
+    (synopsis "Trait object downcasting support using only safe Rust")
+    (description
+     "Trait object downcasting support using only safe Rust.  It supports type
+parameters, associated types, and type constraints.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-dogged-0.2
   (package
     (name "rust-dogged")
@@ -6110,19 +9946,62 @@ O(1)-in-practice, if not in theory, but obviously not as fast as a
 non-persistent vector.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-dotenv-0.15
+  (package
+    (name "rust-dotenv")
+    (version "0.15.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "dotenv" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "13ysjx7n2bqxxqydvnnbdwgik7i8n6h5c1qhr9g11x6cxnnhpjbp"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-clap" ,rust-clap-2))
+       #:cargo-development-inputs
+       (("rust-tempfile" ,rust-tempfile-3))))
+    (home-page "https://github.com/dotenv-rs/dotenv")
+    (synopsis "@code{dotenv} implementation for Rust")
+    (description "This package provides a @code{dotenv} implementation for
+Rust.")
+    (license license:expat)))
+
+(define-public rust-dotenv-0.10
+  (package
+    (inherit rust-dotenv-0.15)
+    (name "rust-dotenv")
+    (version "0.10.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "dotenv" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1ww0wfnilz4cy789fni06gckm45xsb9fplrih26l4qyi4jxy5w6n"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-derive-error-chain" ,rust-derive-error-chain-0.10)
+        ("rust-error-chain" ,rust-error-chain-0.10)
+        ("rust-regex" ,rust-regex-0.2))))))
+
 (define-public rust-draw-state-0.8
   (package
     (name "rust-draw-state")
     (version "0.8.0")
     (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "draw_state" version))
-        (file-name
-         (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32
-          "0lfng4fz9x7bwsmzv9r20ply10w0iid6vfcrhx292s6hw8vrbkrk"))))
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "draw_state" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0lfng4fz9x7bwsmzv9r20ply10w0iid6vfcrhx292s6hw8vrbkrk"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -6211,7 +10090,7 @@ floating-point primitives to an @code{io::Write}.")
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-libc" ,rust-libc-0.2)
-        ("rust-once-cell" ,rust-once-cell-1.2)
+        ("rust-once-cell" ,rust-once-cell-1)
         ("rust-os-pipe" ,rust-os-pipe-0.8)
         ("rust-shared-child" ,rust-shared-child-0.3))
        #:cargo-development-inputs
@@ -6224,6 +10103,25 @@ floating-point primitives to an @code{io::Write}.")
      "A library for running child processes.")
     (license license:expat)))
 
+(define-public rust-dyn-clone-1
+  (package
+    (name "rust-dyn-clone")
+    (version "1.0.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "dyn-clone" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "10idzzq2sad7dhrfhrhcx7yckzj8il2bzr16204683ryclxdqlsc"))))
+    (arguments
+     `(#:skip-build? #t))
+    (build-system cargo-build-system)
+    (home-page "https://crates.io/crates/dyn-clone")
+    (synopsis "Clone trait that is object-safe")
+    (description "Clone trait that is object-safe")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-dwrote-0.9
   (package
     (name "rust-dwrote")
@@ -6253,6 +10151,119 @@ floating-point primitives to an @code{io::Write}.")
      "This package provides lightweight binding to DirectWrite.")
     (license license:mpl2.0)))
 
+(define-public rust-easy-parallel-3
+  (package
+    (name "rust-easy-parallel")
+    (version "3.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "easy-parallel" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1x28z540fc4g8fqm1sbpqbpdfbi40mkas4xr57s3yn0jjbbszm0x"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/stjepang/easy-parallel")
+    (synopsis "Run closures in parallel")
+    (description
+     "This crate provides a simple primitive for spawning threads in bulk and
+waiting for them to complete.  Threads are allowed to borrow local variables
+from the main thread.")
+    (license (list license:asl2.0 license:expat))))
+
+(define-public rust-eax-0.3
+  (package
+    (name "rust-eax")
+    (version "0.3.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "eax" version))
+        (file-name
+          (string-append name "-" version ".tar.gz"))
+        (sha256
+          (base32 "0vmpbqncpbj2ldm3fhfz87ija1sk4zk9vad91yd2jjsrbrx6xxz1"))))
+    (build-system cargo-build-system)
+    (arguments
+      `(#:skip-build? #t
+        #:cargo-inputs
+        (("rust-aead" ,rust-aead-0.3)
+         ("rust-cipher" ,rust-cipher-0.2)
+         ("rust-cmac" ,rust-cmac-0.5)
+         ("rust-ctr" ,rust-ctr-0.6)
+         ("rust-subtle" ,rust-subtle-2))))
+    (home-page "https://docs.rs/eax/")
+    (synopsis "Pure Rust implementation of the EAX Authenticated Encryption
+with Associated Data (AEAD)")
+    (description "This package provides a pure Rust implementation of the EAX
+Authenticated Encryption with Associated Data (AEAD) Cipher with optional
+architecture-specific hardware acceleration.  This scheme is only based on a
+block cipher.  It uses counter mode (CTR) for encryption and CBC mode for
+generating a OMAC/CMAC/CBCMAC (all names for the same thing).")
+    (license (list license:asl2.0 license:expat))))  ; at your choice
+
+(define-public rust-ed25519-1
+  (package
+    (name "rust-ed25519")
+    (version "1.0.3")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "ed25519" version))
+        (file-name (string-append name "-" version ".tar.gz"))
+        (sha256
+          (base32 "1vxn7x1xinbv1cl31015m0fw08jwkphylxrll17animv9i9nmiip"))))
+    (build-system cargo-build-system)
+    (arguments
+      `(#:skip-build? #t
+        #:cargo-inputs
+        (("rust-serde" ,rust-serde-1)
+         ("rust-signature" ,rust-signature-1))))
+    (home-page "")
+    (synopsis "Edwards Digital Signature Algorithm (EdDSA) over Curve25519")
+    (description
+      "EdDSA over Curve25519 is specified in RFC 8032.  This package contains
+an ed25519::Signature type which other packages can use in conjunction with
+the signature::Signer and signature::Verifier traits It doesn't contain an
+implementation of Ed25519.
+
+These traits allow packages which produce and consume Ed25519 signatures to be
+written abstractly in such a way that different signer/verifier providers can
+be plugged in, enabling support for using different Ed25519 implementations,
+including HSMs or Cloud KMS services.")
+    (license (list license:asl2.0 license:expat))))
+
+(define-public rust-ed25519-dalek-1
+  (package
+    (name "rust-ed25519-dalek")
+    (version "1.0.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "ed25519-dalek" version))
+        (file-name (string-append name "-" version ".tar.gz"))
+        (sha256
+          (base32 "17bsriciv93nkm39z22w7mr0h2a3hnbmgf378v4c895gvkkblqn7"))))
+    (build-system cargo-build-system)
+    (arguments
+      `(#:skip-build? #t
+        #:cargo-inputs
+        (("rust-curve25519-dalek" ,rust-curve25519-dalek-3)
+         ("rust-ed25519" ,rust-ed25519-1)
+         ("rust-merlin" ,rust-merlin-2)
+         ("rust-rand" ,rust-rand-0.7)
+         ("rust-rand-core" ,rust-rand-core-0.5)
+         ("rust-serde" ,rust-serde-1)
+         ("rust-serde-bytes" ,rust-serde-bytes-0.11)
+         ("rust-sha2" ,rust-sha2-0.9)
+         ("rust-zeroize" ,rust-zeroize-1))))
+    (home-page "https://dalek.rs")
+    (synopsis "Ed25519 EdDSA key generations, signing, and verification")
+    (description
+      "This package provides fast and efficient ed25519 EdDSA key generations,
+signing, and verification in pure Rust.")
+    (license license:bsd-3)))
+
 (define-public rust-edit-distance-2.1
   (package
     (name "rust-edit-distance")
@@ -6276,7 +10287,7 @@ floating-point primitives to an @code{io::Write}.")
      "Levenshtein edit distance between strings, a measure for similarity.")
     (license license:asl2.0)))
 
-(define-public rust-either-1.5
+(define-public rust-either-1
   (package
     (name "rust-either")
     (version "1.5.3")
@@ -6304,7 +10315,7 @@ floating-point primitives to an @code{io::Write}.")
 (define-public rust-embed-resource-1.3
   (package
     (name "rust-embed-resource")
-    (version "1.3.1")
+    (version "1.3.3")
     (source
      (origin
        (method url-fetch)
@@ -6312,8 +10323,7 @@ floating-point primitives to an @code{io::Write}.")
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32
-         "0v1adsw9mq7gjjjhx4hcjhqppdf4vm0gbcgh7sxirbxh99la9axv"))))
+        (base32 "0pbif8kl6xcvfnp8gibqsw0w14l28vfkff9k6byw506s0d20nsqz"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -6327,20 +10337,21 @@ floating-point primitives to an @code{io::Write}.")
 inclusion of Windows resources in the most resilient fashion imaginable.")
     (license license:expat)))
 
-(define-public rust-ena-0.13
+(define-public rust-ena-0.14
   (package
     (name "rust-ena")
-    (version "0.13.1")
+    (version "0.14.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "ena" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0dkggq0qwv140y2kjfd4spp77zi3v7vnpm4bfy7s7r4cla7xqi49"))))
+        (base32 "1hrnkx2swbczn0jzpscxxipx7jcxhg6sf9vk911ff91wm6a2nh6p"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:cargo-inputs
+     `(#:skip-build? #t
+       #:cargo-inputs
        (("rust-dogged" ,rust-dogged-0.2)
         ("rust-log" ,rust-log-0.4)
         ("rust-petgraph" ,rust-petgraph-0.4))))
@@ -6351,6 +10362,19 @@ congruence-closure in Rust.  It was extracted from rustc for independent
 experimentation.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-ena-0.13
+  (package
+    (inherit rust-ena-0.14)
+    (name "rust-ena")
+    (version "0.13.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "ena" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0dkggq0qwv140y2kjfd4spp77zi3v7vnpm4bfy7s7r4cla7xqi49"))))))
+
 (define-public rust-encode-unicode-0.3
   (package
     (name "rust-encode-unicode")
@@ -6562,7 +10586,7 @@ encodings.")
 (define-public rust-encoding-rs-0.8
   (package
     (name "rust-encoding-rs")
-    (version "0.8.17")
+    (version "0.8.26")
     (source
      (origin
        (method url-fetch)
@@ -6571,13 +10595,12 @@ encodings.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1v902qqnbd37vdq4rjvp6k05wmghrasfdcjy30gp1xpjg5f7hma1"))))
+         "10xjcafwbxvm2kfsyymxlz8wc9s4bmdj1xzlc809rxyp2yrbl6w0"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-cfg-if" ,rust-cfg-if-0.1)
-        ("rust-packed-simd" ,rust-packed-simd-0.3)
+     `(#:cargo-inputs
+       (("rust-cfg-if" ,rust-cfg-if-1)
+        ("rust-packed-simd" ,rust-packed-simd-2-0.3)
         ("rust-serde" ,rust-serde-1))
        #:cargo-development-inputs
        (("rust-bincode" ,rust-bincode-1)
@@ -6613,8 +10636,103 @@ Standard.")
      "Streaming transcoding for encoding_rs.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-enum-as-inner-0.3
+  (package
+    (name "rust-enum-as-inner")
+    (version "0.3.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "enum-as-inner" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "15gmpgywijda93lkq7hf2y53h66sqkhzabzbxich288xm6b00pvw"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#: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))))
+    (home-page "https://github.com/bluejekyll/enum-as-inner")
+    (synopsis "Proc-macro for deriving inner field accessor functions on enums")
+    (description "This package provides a proc-macro for deriving inner field
+accessor functions on enums.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-enum-as-inner-0.2
+  (package
+    (inherit rust-enum-as-inner-0.3)
+    (name "rust-enum-as-inner")
+    (version "0.2.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "enum-as-inner" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0zg3h7k3g1z7a9ayqy63sk302d4dg5g2h274ddv80mj4jxn2cn1x"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-proc-macro2" ,rust-proc-macro2-0.4)
+        ("rust-quote" ,rust-quote-0.6)
+        ("rust-syn" ,rust-syn-0.15))))))
+
+(define-public rust-enum-to-u8-slice-derive-0.1
+  (package
+    (name "rust-enum-to-u8-slice-derive")
+    (version "0.1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "enum_to_u8_slice_derive" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0hvzi74pnh5a7f4klrk0dz45l0mgcy5l3zajjhjsxzws28js4yc4"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-quote" ,rust-quote-0.3)
+        ("rust-syn" ,rust-syn-0.11))))
+    (home-page "https://github.com/mesalock-linux/enum_to_u8_slice_derive")
+    (synopsis "Convert enum to u8 slice ref")
+    (description
+     "This package provides a simple fork of @code{enum_to_str_derive},
+convert enum to u8 slice ref.")
+    (license license:bsd-3)))
+
+(define-public rust-env-logger-0.8
+  (package
+    (name "rust-env-logger")
+    (version "0.8.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "env-logger" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "07k6m6igz02g2b1v7nims7vd8azwxrav43xl14a6rjmxnikcnvpj"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-atty" ,rust-atty-0.2)
+        ("rust-humantime" ,rust-humantime-2)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-regex" ,rust-regex-1)
+        ("rust-termcolor" ,rust-termcolor-1))))
+    (home-page "https://github.com/sebasmagri/env_logger/")
+    (synopsis "Logging implementation for @code{log}")
+    (description
+     "This package provides a logging implementation for @code{log} which
+is configured via an environment variable.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-env-logger-0.7
   (package
+    (inherit rust-env-logger-0.8)
     (name "rust-env-logger")
     (version "0.7.1")
     (source
@@ -6626,7 +10744,6 @@ Standard.")
        (sha256
         (base32
          "0djx8h8xfib43g5w94r1m1mkky5spcw4wblzgnhiyg5vnfxknls4"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
@@ -6634,13 +10751,7 @@ Standard.")
         ("rust-humantime" ,rust-humantime-1)
         ("rust-log" ,rust-log-0.4)
         ("rust-regex" ,rust-regex-1)
-        ("rust-termcolor" ,rust-termcolor-1))))
-    (home-page "https://github.com/sebasmagri/env_logger/")
-    (synopsis "Logging implementation for @code{log}")
-    (description
-     "This package provides a logging implementation for @code{log} which
-is configured via an environment variable.")
-    (license (list license:expat license:asl2.0))))
+        ("rust-termcolor" ,rust-termcolor-1))))))
 
 (define-public rust-env-logger-0.6
   (package
@@ -6819,7 +10930,7 @@ variables.")
         ("rust-proc-macro-error" ,rust-proc-macro-error-0.4)
         ("rust-proc-macro2" ,rust-proc-macro2-1)
         ("rust-syn" ,rust-syn-1)
-        ("rust-rustversion" ,rust-rustversion-1.0)
+        ("rust-rustversion" ,rust-rustversion-1)
         ("rust-quote" ,rust-quote-1))
        #:cargo-development-inputs
        (("rust-skeptic" ,rust-skeptic-0.13))))
@@ -6970,30 +11081,76 @@ variables.")
     (description "Cargo API written in Paris.")
     (license (list license:expat license:asl2.0))))
 
-(define-public rust-euclid-0.20
+(define-public rust-escargot-0.3
   (package
-    (name "rust-euclid")
-    (version "0.20.10")
+    (inherit rust-escargot-0.5)
+    (name "rust-escargot")
+    (version "0.3.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "escargot" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "19fmn7bz1h6nlqy0mp825xwjwnrjn4xjdpwc06jl51j3fiz1znqr"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-serde" ,rust-serde-1)
+        ("rust-serde-json" ,rust-serde-json-1))))))
+
+(define-public rust-event-listener-2
+  (package
+    (name "rust-event-listener")
+    (version "2.5.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "event-listener" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0ndyp41pb2cx7gxijqh4ymnc47nyrvhvir7rvjlw6x09ayb10lzp"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-development-inputs
+       (("rust-futures" ,rust-futures-0.3)
+        ("rust-waker-fn" ,rust-waker-fn-1))))
+    (home-page "https://github.com/stjepang/event-listener")
+    (synopsis "Notify async tasks or threads")
+    (description
+     "This is a synchronization primitive similar to @code{eventcounts}.
+You can use this crate to turn non-blocking data structures into async or
+blocking data structures.")
+    (license (list license:asl2.0 license:expat))))
+
+(define-public rust-exitfailure-0.5
+  (package
+    (name "rust-exitfailure")
+    (version "0.5.1")
     (source
      (origin
        (method url-fetch)
-       (uri (crate-uri "euclid" version))
+       (uri (crate-uri "exitfailure" version))
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0c3hbl0kvc53k6nws0v9d46hi0giza1j079sqx2bgl4wfw65nshc"))))
+         "0585wix3b3pjjj90fkqj9x4ar46d24x82k8rdin3czzk5a1vvx9g"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-mint" ,rust-mint-0.5)
-        ("rust-num-traits" ,rust-num-traits-0.2)
-        ("rust-serde" ,rust-serde-1))
+       (("rust-failure" ,rust-failure-0.1))
        #:cargo-development-inputs
-       (("rust-serde-test" ,rust-serde-test-1))))
-    (home-page "https://github.com/servo/euclid")
-    (synopsis "Geometry primitives")
-    (description "Geometry primitives written in Rust.")
+       (("rust-assert-cmd" ,rust-assert-cmd-0.9)
+        ("rust-predicates" ,rust-predicates-0.9))
+       ;; Tests fail with "No such file or directory".
+       #:tests? #f))
+    (home-page "https://github.com/tismith/exitfailure")
+    (synopsis "Provide @code{newtype} wrappers for using @code{?} in @code{main}")
+    (description
+     "This package provides a basic @code{newtype} wrappers to help with using
+@code{?} in @code{main}.")
     (license (list license:expat license:asl2.0))))
 
 (define-public rust-expat-sys-2.1
@@ -7047,6 +11204,34 @@ variables.")
 testing.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-extend-0.1
+  (package
+    (name "rust-extend")
+    (version "0.1.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "extend" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "01azyniinxrwng13hkj450gplp1ajslbqzksjg4dk6655sks6zgl"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-test-flags '("--release" "--" "--skip=test::test_ui" )
+       #:cargo-inputs
+       (("rust-proc-macro-error" ,rust-proc-macro-error-1)
+        ("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-1))
+       #:cargo-development-inputs
+       (("rust-trybuild" ,rust-trybuild-1))))
+    (home-page "https://github.com/davidpdrsn/extend")
+    (synopsis "Create extensions for types you don't own")
+    (description
+     "This crates creates extensions for types you don't own with extension
+traits but without the boilerplate.")
+    (license license:expat)))
+
 (define-public rust-fake-simd-0.1
   (package
     (name "rust-fake-simd")
@@ -7160,6 +11345,128 @@ provides implementations for @code{HashMap} and @code{HashSet}.")
     (description "Fallible streaming iteration")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-fancy-regex-0.3
+  (package
+    (name "rust-fancy-regex")
+    (version "0.3.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "fancy-regex" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "051bnj890xrvhslppdzw6n956xfjg0wr2ixvhy336d2japvap4df"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bit-set" ,rust-bit-set-0.5)
+        ("rust-regex" ,rust-regex-1))
+       #:cargo-development-inputs
+       (("rust-criterion" ,rust-criterion-0.3)
+        ("rust-matches" ,rust-matches-0.1)
+        ("rust-quickcheck" ,rust-quickcheck-0.7))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-version-requirements
+           (lambda _
+             (substitute* "Cargo.toml"
+               (("0.3.0") ,(package-version rust-criterion-0.3)))))
+         ;; XXX: Remove Oniguruma-related tests since Guix does not provide
+         ;; the library yet.
+         (add-after 'unpack 'remove-oniguruma-tests
+           (lambda _
+             (delete-file-recursively "tests/oniguruma")
+             (delete-file "tests/oniguruma.rs"))))))
+    (home-page "https://github.com/fancy-regex/fancy-regex")
+    (synopsis "Implementation of regexes with a rich set of features")
+    (description
+     "This package is a Rust library for compiling and matching regular
+expressions.  It uses a hybrid regex implementation designed to support
+a relatively rich set of features.  In particular, it uses backtracking to
+implement features such as look-around and backtracking, which are not
+supported in purely NFA-based implementations.")
+    (license license:expat)))
+
+(define-public rust-fastrand-1
+  (package
+    (name "rust-fastrand")
+    (version "1.4.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "fastrand" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1qvz1i7g5mb2hcsaawrvxx88b8vwrsr85qr98ffmrkj5fh2sypya"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-instant" ,rust-instant-0.1))
+       #:cargo-development-inputs
+       (("rust-rand" ,rust-rand-0.7))))
+    (home-page "https://github.com/stjepang/fastrand")
+    (synopsis "Simple and fast random number generator")
+    (description
+     "This package provides a simple and fast random number generator.")
+    (license (list license:asl2.0 license:expat))))
+
+(define-public rust-femme-2
+  (package
+    (name "rust-femme")
+    (version "2.1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "femme" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0d7h1lzbcrqcn8v5l6m7i15lkbbaaz394l6vavbr8nhs757s5w9a"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-cfg-if" ,rust-cfg-if-0.1)
+        ("rust-js-sys" ,rust-js-sys-0.3)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-derive" ,rust-serde-derive-1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-wasm-bindgen" ,rust-wasm-bindgen-0.2)
+        ("rust-web-sys" ,rust-web-sys-0.3))
+       #:cargo-development-inputs
+       (("rust-kv-log-macro" ,rust-kv-log-macro-1))))
+    (home-page "https://github.com/lrlna/femme")
+    (synopsis "Pretty-printer and @code{ndjson} logger for @code{log} crate")
+    (description
+     "This package provides a pretty-printer and @code{ndjson} logger for
+@code{log} crate.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-femme-1
+  (package
+    (inherit rust-femme-2)
+    (name "rust-femme")
+    (version "1.3.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "femme" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0spf66m22dvnz6x077znybk906lh4p5z30nh8c37mad2c3dc56jd"))))
+    (arguments
+     `(#:tests? #false
+       #:cargo-inputs
+       (("rust-async-log" ,rust-async-log-1)
+        ("rust-cfg-if" ,rust-cfg-if-0.1)
+        ("rust-console" ,rust-console-0.7)
+        ("rust-js-sys" ,rust-js-sys-0.3)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-derive" ,rust-serde-derive-1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-wasm-bindgen" ,rust-wasm-bindgen-0.2)
+        ("rust-web-sys" ,rust-web-sys-0.3))))))
+
 (define-public rust-fern-0.6
   (package
     (name "rust-fern")
@@ -7177,7 +11484,7 @@ provides implementations for @code{HashMap} and @code{HashSet}.")
     (arguments
      `(#:cargo-inputs
        (("rust-chrono" ,rust-chrono-0.4)
-        ("rust-colored" ,rust-colored-1.9)
+        ("rust-colored" ,rust-colored-1)
         ("rust-libc" ,rust-libc-0.2)
         ("rust-log" ,rust-log-0.4)
         ("rust-reopen" ,rust-reopen-0.3)
@@ -7213,7 +11520,7 @@ provides implementations for @code{HashMap} and @code{HashSet}.")
         ("rust-reopen" ,rust-reopen-0.3)
         ("rust-log" ,rust-log-0.4)
         ("rust-chrono" ,rust-chrono-0.4)
-        ("rust-colored" ,rust-colored-1.9)
+        ("rust-colored" ,rust-colored-1)
         ("rust-syslog" ,rust-syslog-3.3)
         ("rust-syslog" ,rust-syslog-4.0))
        #:cargo-development-inputs
@@ -7279,6 +11586,38 @@ cross platform API.")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-fixed-1
+  (package
+    (name "rust-fixed")
+    (version "1.2.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "fixed" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0p0v4jjgbbvp91sl8rkfqb2hldaxbzv89mzwmp8753mlrfqwn185"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-az" ,rust-az-1)
+        ("rust-half" ,rust-half-1)
+        ("rust-num-traits" ,rust-num-traits-0.2)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-typenum" ,rust-typenum-1))
+       #:cargo-development-inputs
+       (("rust-criterion" ,rust-criterion-0.3)
+        ("rust-num-traits" ,rust-num-traits-0.2)
+        ("rust-rand" ,rust-rand-0.7)
+        ("rust-rand-xoshiro" ,rust-rand-xoshiro-0.4))))
+    (home-page "https://gitlab.com/tspiteri/fixed")
+    (synopsis "Rust fixed-point numbers")
+    (description "This package provides fixed-point numbers in Rust.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-fixedbitset-0.2
   (package
     (name "rust-fixedbitset")
@@ -7332,7 +11671,7 @@ cross platform API.")
         ("rust-serde" ,rust-serde-1)
         ("rust-serde-derive" ,rust-serde-derive-1)
         ("rust-serde-json" ,rust-serde-json-1)
-        ("rust-thread-id" ,rust-thread-id-3.3))))
+        ("rust-thread-id" ,rust-thread-id-3))))
     (home-page "https://github.com/llogiq/flame")
     (synopsis "Profiling and flamegraph library")
     (description "A profiling and flamegraph library.")
@@ -7364,7 +11703,7 @@ cross platform API.")
      "A procedural macro to insert @code{flame::start_guard(_)} calls.")
     (license license:asl2.0)))
 
-(define-public rust-flate2-1.0
+(define-public rust-flate2-1
   (package
     (name "rust-flate2")
     (version "1.0.14")
@@ -7384,10 +11723,10 @@ cross platform API.")
        (("rust-cfg-if" ,rust-cfg-if-0.1)
         ("rust-cloudflare-zlib-sys"
          ,rust-cloudflare-zlib-sys-0.2)
-        ("rust-crc32fast" ,rust-crc32fast-1.2)
+        ("rust-crc32fast" ,rust-crc32fast-1)
         ("rust-futures" ,rust-futures-0.1)
         ("rust-libc" ,rust-libc-0.2)
-        ("rust-libz-sys" ,rust-libz-sys-1.0)
+        ("rust-libz-sys" ,rust-libz-sys-1)
         ("rust-miniz-sys" ,rust-miniz-sys-0.1)
         ("rust-miniz-oxide" ,rust-miniz-oxide-0.3)
         ("rust-tokio-io" ,rust-tokio-io-0.1))
@@ -7407,10 +11746,10 @@ Reader/Writer streams.  Contains bindings for zlib, deflate, and gzip-based
 streams.")
     (license (list license:expat license:asl2.0))))
 
-(define-public rust-float-cmp-0.6
+(define-public rust-float-cmp-0.8
   (package
     (name "rust-float-cmp")
-    (version "0.6.0")
+    (version "0.8.0")
     (source
       (origin
         (method url-fetch)
@@ -7419,7 +11758,7 @@ streams.")
          (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "0zb1lv3ga18vsnpjjdg87yazbzvmfwwllj3aiid8660rp3qw8qns"))))
+          "1i56hnzjn5pmrcm47fwkmfxiihk7wz5vvcgpb0kpfhzkqi57y9p1"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs (("rust-num-traits" ,rust-num-traits-0.2))))
@@ -7429,6 +11768,21 @@ streams.")
      "Floating point approximate comparison traits in Rust.")
     (license license:expat)))
 
+(define-public rust-float-cmp-0.6
+  (package
+    (inherit rust-float-cmp-0.8)
+    (name "rust-float-cmp")
+    (version "0.6.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "float-cmp" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0zb1lv3ga18vsnpjjdg87yazbzvmfwwllj3aiid8660rp3qw8qns"))))))
+
 (define-public rust-float-cmp-0.5
   (package
     (inherit rust-float-cmp-0.6)
@@ -7444,6 +11798,21 @@ streams.")
          (base32
           "03hmx3n48hjm0x1ig84n1j87kzp75lzr6cj1sgi6a6pykgn4n8km"))))))
 
+(define-public rust-float-cmp-0.4
+  (package
+    (inherit rust-float-cmp-0.5)
+    (name "rust-float-cmp")
+    (version "0.4.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "float-cmp" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0036jb8ry4h83n319jb20b5yvyfyq8mx8dkxnyjm22nq8fl8yjhk"))))))
+
 (define-public rust-float-cmp-0.3
   (package
     (inherit rust-float-cmp-0.5)
@@ -7484,6 +11853,108 @@ streams.")
      "This package provides a total ordering for floating-point numbers.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-fluid-0.4
+  (package
+    (name "rust-fluid")
+    (version "0.4.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "fluid" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "04qgdc4lx934158icx9rvs0v6lyvirmb0brllvz38hj9fsaqfbsp"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-colored" ,rust-colored-1)
+        ("rust-fluid-attributes" ,rust-fluid-attributes-0.4)
+        ("rust-num-traits" ,rust-num-traits-0.2))))
+    (home-page "https://crates.io/crates/fluid")
+    (synopsis "Human readable test library")
+    (description "This package provides a human readable test library.")
+    (license license:asl2.0)))
+
+(define-public rust-fluid-attributes-0.4
+  (package
+    (name "rust-fluid-attributes")
+    (version "0.4.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "fluid_attributes" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1i67vcas0gr64bc8spprlfp7m7msv1jyspghgq1q8f0qrnvy8px8"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f
+       #:cargo-inputs
+       (("rust-proc-macro2" ,rust-proc-macro2-0.4)
+        ("rust-quote" ,rust-quote-0.6)
+        ("rust-syn" ,rust-syn-0.15)
+        ("rust-uuid" ,rust-uuid-0.7))))
+    (home-page "https://gitlab.com/Boiethios/fluid-rs/wikis")
+    (synopsis "Proc macro attributes for the fluid crate")
+    (description "This package provides proc macro attributes for the fluid
+crate.")
+    (license license:asl2.0)))
+
+(define-public rust-flume-0.10
+  (package
+    (name "rust-flume")
+    (version "0.10.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "flume" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "14dvj6d2r6vgsy3adv4lncbddjwc59rgl0rcwc1kdnsmqkh7lwhy"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #true    ;XXX: remove when rust-async-std-1 is packaged
+       #:cargo-inputs
+       (("rust-futures-core" ,rust-futures-core-0.3)
+        ("rust-futures-sink" ,rust-futures-sink-0.3)
+        ("rust-nanorand" ,rust-nanorand-0.5)
+        ("rust-spinning-top" ,rust-spinning-top-0.2))
+       #:cargo-development-inputs
+       (;("rust-async-std" ,rust-async-std-1)
+        ("rust-criterion" ,rust-criterion-0.3)
+        ("rust-crossbeam-channel" ,rust-crossbeam-channel-0.4)
+        ("rust-crossbeam-utils" ,rust-crossbeam-utils-0.7)
+        ("rust-futures" ,rust-futures-0.3)
+        ("rust-rand" ,rust-rand-0.7)
+        ("rust-waker-fn" ,rust-waker-fn-1))))
+    (home-page "https://github.com/zesterer/flume")
+    (synopsis "Fast multi-producer channel")
+    (description
+     "This package provides a fast multi-producer channel.")
+    (license (list license:asl2.0 license:expat))))
+
+(define-public rust-flume-0.9
+  (package
+    (inherit rust-flume-0.10)
+    (name "rust-flume")
+    (version "0.9.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "flume" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0ck1w9881848xjjk93nxqsvnxfp4xsaysxxn23a210bg2amsvsqv"))))
+    (arguments
+     `(#:skip-build? #true
+       #:cargo-inputs
+       (("rust-futures-core" ,rust-futures-core-0.3)
+        ("rust-futures-sink" ,rust-futures-sink-0.3)
+        ("rust-nanorand" ,rust-nanorand-0.4)
+        ("rust-spinning-top" ,rust-spinning-top-0.2))))))
+
 (define-public rust-fnv-1
   (package
     (name "rust-fnv")
@@ -7536,7 +12007,7 @@ implementation that is more efficient for smaller hash keys.")
         ("rust-memmap" ,rust-memmap-0.7)
         ("rust-dwrote" ,rust-dwrote-0.9)
         ("rust-dirs" ,rust-dirs-1.0)
-        ("rust-byteorder" ,rust-byteorder-1.3)
+        ("rust-byteorder" ,rust-byteorder-1)
         ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-core-text" ,rust-core-text-13)
         ("rust-walkdir" ,rust-walkdir-2))))
@@ -7678,6 +12149,29 @@ implementation that is more efficient for smaller hash keys.")
         (base32
          "0jxgzd04ra4imjv8jgkmdq59kj8fsz6w4zxsbmlai34h26225c00"))))))
 
+(define-public rust-form-urlencoded-1
+  (package
+    (name "rust-form-urlencoded")
+    (version "1.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "form_urlencoded" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "005yi1319k5bz8g5ylbdiakq5jp5jh90yy6k357zm11fr4aqvrpc"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-matches" ,rust-matches-0.1)
+        ("rust-percent-encoding" ,rust-percent-encoding-2))))
+    (home-page "https://github.com/servo/rust-url")
+    (synopsis "Parser and serializer for the urlencoded syntax")
+    (description
+     "Parser and serializer for the application/x-www-form-urlencoded
+syntax, as used by HTML forms.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-fragile-0.3
   (package
     (name "rust-fragile")
@@ -7769,7 +12263,7 @@ values to other threads.")
     (arguments
      `(#:cargo-inputs
        (("rust-libc" ,rust-libc-0.2)
-        ("rust-libz-sys" ,rust-libz-sys-1.0)
+        ("rust-libz-sys" ,rust-libz-sys-1)
         ("rust-pkg-config" ,rust-pkg-config-0.3))))
     (inputs
      `(("freetype" ,freetype)
@@ -7820,7 +12314,7 @@ duplication.")
     (build-system cargo-build-system)
     (arguments '(#:skip-build? #t))
     (home-page "https://github.com/webdesus/fs_extra")
-    (synopsis "Extra filesystem methods")
+    (synopsis "Extra file system methods")
     (description "Expanding opportunities standard library @code{std::fs} and
 @code{std::io}.  Recursively copy folders with recept information about
 process and much more.")
@@ -7994,6 +12488,31 @@ pseudorandom number generator")
     (description "Low-level Rust bindings for the Zircon kernel.")
     (license license:bsd-3)))
 
+(define-public rust-funty-1
+  (package
+    (name "rust-funty")
+    (version "1.1.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "funty" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "19wx3p3jmv863y0mjb56sr4qf1kvqhl3fsyslkd92zli0p8lrlzy"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-development-inputs
+       (("rust-static-assertions" ,rust-static-assertions-1))))
+    (home-page "https://github.com/myrrlyn/funty")
+    (synopsis "Trait generalization over the primitive types")
+    (description
+     "Prior to 1.0, Rust had traits for the numeric primitive types to permit
+code to generalize over which specific type it accepted. This was never
+stabilized, and eventually removed.  This library reïnstates these traits.")
+    (license license:expat)))
+
 (define-public rust-futf-0.1
   (package
     (name "rust-futf")
@@ -8021,7 +12540,7 @@ pseudorandom number generator")
 (define-public rust-futures-0.3
   (package
     (name "rust-futures")
-    (version "0.3.1")
+    (version "0.3.8")
     (source
      (origin
        (method url-fetch)
@@ -8030,7 +12549,7 @@ pseudorandom number generator")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "11srrbc0hp7pgz142qjfx2z07kfhc98rbfwqyrgm4mxvxib61wdn"))))
+         "1l434mh7p5na5c3c7lih575hszqc515r9idk62fm5rhz1820qfwv"))))
     (build-system cargo-build-system)
     (arguments
      `(#:tests? #f
@@ -8077,7 +12596,7 @@ featuring zero allocations, composability, and iterator-like interfaces.")
 (define-public rust-futures-channel-0.3
   (package
     (name "rust-futures-channel")
-    (version "0.3.1")
+    (version "0.3.8")
     (source
      (origin
        (method url-fetch)
@@ -8086,7 +12605,7 @@ featuring zero allocations, composability, and iterator-like interfaces.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "11lvk749n61654ad40xn751gmxzwb697nwh36s5gs0ni2z59ibpw"))))
+         "0r7y228kkhwx9jj3ny5ppmw2gvw0capm6ig8dzppgqd4g9l0jwab"))))
     (build-system cargo-build-system)
     (arguments
      `(#:tests? #f
@@ -8102,7 +12621,7 @@ featuring zero allocations, composability, and iterator-like interfaces.")
 (define-public rust-futures-channel-preview-0.3
   (package
     (name "rust-futures-channel-preview")
-    (version "0.3.0-alpha.17")
+    (version "0.3.0-alpha.19")
     (source
      (origin
        (method url-fetch)
@@ -8111,7 +12630,7 @@ featuring zero allocations, composability, and iterator-like interfaces.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1blgpikhw391lzrfqcgg4xsn5xc0dlybni77ka7f0vb08zaixir1"))))
+         "0fi6bi4lpyxjigy11y5sjg6wlc8nc71vbpmxz31c3aagjvgz9rfm"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -8127,7 +12646,7 @@ featuring zero allocations, composability, and iterator-like interfaces.")
 (define-public rust-futures-core-0.3
   (package
     (name "rust-futures-core")
-    (version "0.3.1")
+    (version "0.3.8")
     (source
      (origin
        (method url-fetch)
@@ -8136,7 +12655,7 @@ featuring zero allocations, composability, and iterator-like interfaces.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0rh8q6pg08dizk5hwksvjgvkw26s3sr3b199nggv3ypyg914qmkr"))))
+         "0j0pixxv8dmqas1h5cgy92z4r9lpmnlis8ls22v17yrgnwqy2z44"))))
     (build-system cargo-build-system)
     (arguments '(#:tests? #f))
     (home-page "https://rust-lang-nursery.github.io/futures-rs")
@@ -8148,7 +12667,7 @@ featuring zero allocations, composability, and iterator-like interfaces.")
 (define-public rust-futures-core-preview-0.3
   (package
     (name "rust-futures-core-preview")
-    (version "0.3.0-alpha.17")
+    (version "0.3.0-alpha.19")
     (source
       (origin
         (method url-fetch)
@@ -8156,7 +12675,7 @@ featuring zero allocations, composability, and iterator-like interfaces.")
         (file-name (string-append name "-" version ".crate"))
         (sha256
          (base32
-          "1xaq8m609k6cz8xydwhwp8xxyxigabcw1w9ngycfy0bnkg7iq52b"))))
+          "02n66jkjhpy210dv24pz0j30lvyin5kzlrb50p1j7x8yzdin4nxk"))))
     (build-system cargo-build-system)
     (arguments '(#:tests? #f))
     (home-page "https://rust-lang-nursery.github.io/futures-rs/")
@@ -8194,7 +12713,7 @@ the computation on the threads themselves.")
 (define-public rust-futures-executor-0.3
   (package
     (name "rust-futures-executor")
-    (version "0.3.1")
+    (version "0.3.8")
     (source
      (origin
        (method url-fetch)
@@ -8203,7 +12722,7 @@ the computation on the threads themselves.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0cf24wbgxqh4kdjbb557vk1axzmbpmwb8s05ga1nls1zaqv4f9qy"))))
+         "0r8ayj6g08d1i0hj2v6g5zr3hzlkxpqlkpf1awq0105qd0mjpajc"))))
     (build-system cargo-build-system)
     (arguments
      `(#:tests? #f
@@ -8222,7 +12741,7 @@ the computation on the threads themselves.")
 (define-public rust-futures-executor-preview-0.3
   (package
     (name "rust-futures-executor-preview")
-    (version "0.3.0-alpha.17")
+    (version "0.3.0-alpha.19")
     (source
      (origin
        (method url-fetch)
@@ -8231,7 +12750,7 @@ the computation on the threads themselves.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "053g5kf2qa1xhdkwp3d1grrizzy4683mpbb3y0vvm00hwl7jdfl7"))))
+         "161yv7wwha60mdzj1id47kh8ylnhcnv7blgwidg8xs4zpn46w8vm"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -8249,10 +12768,36 @@ the computation on the threads themselves.")
 library.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-futures-intrusive-0.3
+  (package
+    (name "rust-futures-intrusive")
+    (version "0.3.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "futures-intrusive" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "00qpir3q6j7blwpnpffj7ypf1z8wc87ldn62qr7sapymgg82j5dw"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #true              ;XXX: need rust-async-std-1
+       #:cargo-inputs
+       (("rust-futures-core" ,rust-futures-core-0.3)
+        ("rust-lock-api" ,rust-lock-api-0.3)
+        ("rust-parking-lot" ,rust-parking-lot-0.10))))
+    (home-page "https://github.com/Matthias247/futures-intrusive")
+    (synopsis "Futures based on intrusive data structures")
+    (description
+     "This crate provides a variety of Futures-based and
+@code{async/await} compatible types that are based on the idea of
+intrusive collections.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-futures-io-0.3
   (package
     (name "rust-futures-io")
-    (version "0.3.1")
+    (version "0.3.8")
     (source
      (origin
        (method url-fetch)
@@ -8261,7 +12806,7 @@ library.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1zxm41fmkrb0r39ajk3rr9invcd5bdwlafazn8m9aw4y49ymfxp6"))))
+         "1frh7d0n96lczy22al3bkgwpq0p1agbgax5kqh9vv8da33738631"))))
     (build-system cargo-build-system)
     (home-page "https://rust-lang-nursery.github.io/futures-rs")
     (synopsis
@@ -8274,7 +12819,7 @@ for the futures-rs library.")
 (define-public rust-futures-io-preview-0.3
   (package
     (name "rust-futures-io-preview")
-    (version "0.3.0-alpha.17")
+    (version "0.3.0-alpha.19")
     (source
       (origin
         (method url-fetch)
@@ -8282,7 +12827,7 @@ for the futures-rs library.")
         (file-name (string-append name "-" version ".crate"))
         (sha256
          (base32
-          "0fhvwhdb8ywjjbfng0ra1r8yyc9yzpyxg9sv3spb3f7w0lk40bh8"))))
+          "1npb04xbn2gw5rjllz88cb88fql44xxfkgcidjjj26fva3j4m4gl"))))
     (build-system cargo-build-system)
     (home-page "https://rust-lang-nursery.github.io/futures-rs/")
     (synopsis "Async read and write traits for the futures library")
@@ -8291,10 +12836,88 @@ for the futures-rs library.")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-futures-join-macro-preview-0.3
+  (package
+    (name "rust-futures-join-macro-preview")
+    (version "0.3.0-alpha.19")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "futures-join-macro-preview" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1smwaja466yjh5adlhgggfk9k942sy4702n46scxkrwcnkk61qjr"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-proc-macro-hack" ,rust-proc-macro-hack-0.5)
+        ("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-1))))
+    (home-page "https://rust-lang-nursery.github.io/futures-rs")
+    (synopsis "Definition of the `join!` macro and the `try_join!` macro")
+    (description
+     "This package provides the definition of the @code{join!} macro and the
+@code{try_join!} macro.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-futures-lite-1
+  (package
+    (name "rust-futures-lite")
+    (version "1.11.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "futures-lite" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1ywmyvpy4f348jri8rxhpj59a7bvy12pspm59x5207fys061sj5l"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-fastrand" ,rust-fastrand-1)
+        ("rust-futures-core" ,rust-futures-core-0.3)
+        ("rust-futures-io" ,rust-futures-io-0.3)
+        ("rust-memchr" ,rust-memchr-2)
+        ("rust-parking" ,rust-parking-2)
+        ("rust-pin-project-lite" ,rust-pin-project-lite-0.2)
+        ("rust-waker-fn" ,rust-waker-fn-1))
+       #:cargo-development-inputs
+       (("rust-spin-on" ,rust-spin-on-0.1))))
+    (home-page "https://github.com/stjepang/futures-lite")
+    (synopsis "Futures, streams, and async I/O combinators")
+    (description
+     "This crate is a subset of @code{futures} that compiles an order of
+magnitude faster, fixes minor warts in its API, fills in some obvious gaps,
+and removes almost all unsafe code from it.")
+    (license (list license:asl2.0 license:expat))))
+
+(define-public rust-futures-lite-0.1
+  (package
+    (inherit rust-futures-lite-1)
+    (name "rust-futures-lite")
+    (version "0.1.11")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "futures-lite" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1lnflz8ysp0vlq1sxzz1sw9cq7s33lh12cm9rc68z04v29q9k6cp"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-fastrand" ,rust-fastrand-1)
+        ("rust-futures-core" ,rust-futures-core-0.3)
+        ("rust-futures-io" ,rust-futures-io-0.3)
+        ("rust-memchr" ,rust-memchr-2)
+        ("rust-parking" ,rust-parking-2)
+        ("rust-pin-project-lite" ,rust-pin-project-lite-0.1)
+        ("rust-waker-fn" ,rust-waker-fn-1))))))
+
 (define-public rust-futures-macro-0.3
   (package
     (name "rust-futures-macro")
-    (version "0.3.1")
+    (version "0.3.8")
     (source
      (origin
        (method url-fetch)
@@ -8303,7 +12926,7 @@ for the futures-rs library.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0r3px32wgqfbmfyb1lrj9wplvjris5magdyhfr7xnyjk2mncbrsj"))))
+         "0mjmb46zapb59iilsbljpj7l0hq6w19df0f03p3br5qz5xlqlh3p"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -8320,7 +12943,7 @@ for the futures-rs library.")
 (define-public rust-futures-preview-0.3
   (package
     (name "rust-futures-preview")
-    (version "0.3.0-alpha.17")
+    (version "0.3.0-alpha.19")
     (source
       (origin
         (method url-fetch)
@@ -8329,7 +12952,7 @@ for the futures-rs library.")
          (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "0rsq8d1ciyg37i5ysd9dynwmklwy4sx466z9a72687wsi8fgj9dz"))))
+          "0vnp63aicm9vgapn4hm45ag9lrsf9f3bma3mzz3abbb708mcw79v"))))
     (build-system cargo-build-system)
     (arguments
      `(#:tests? #f
@@ -8339,18 +12962,21 @@ for the futures-rs library.")
         ("rust-futures-executor-preview" ,rust-futures-executor-preview-0.3)
         ("rust-futures-io-preview" ,rust-futures-io-preview-0.3)
         ("rust-futures-sink-preview" ,rust-futures-sink-preview-0.3)
-        ("rust-futures-util-preview" ,rust-futures-util-preview-0.3))))
+        ("rust-futures-util-preview" ,rust-futures-util-preview-0.3))
+       #:cargo-development-inputs
+       (("rust-futures-join-macro-preview"
+         ,rust-futures-join-macro-preview-0.3))))
     (home-page "https://rust-lang-nursery.github.io/futures-rs")
-    (synopsis "An implementation of futures and streams")
+    (synopsis "Implementation of futures and streams")
     (description
-     "An implementation of futures and streams featuring zero allocations,
-composability, and iterator-like interfaces.")
+     "This package provides an implementation of futures and streams featuring
+zero allocations, composability, and iterator-like interfaces.")
     (license (list license:expat license:asl2.0))))
 
 (define-public rust-futures-select-macro-preview-0.3
   (package
     (name "rust-futures-select-macro-preview")
-    (version "0.3.0-alpha.17")
+    (version "0.3.0-alpha.19")
     (source
      (origin
        (method url-fetch)
@@ -8359,26 +12985,26 @@ composability, and iterator-like interfaces.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1a90ivjzkgz7msiz5si05xzi8xwsk5gar1gkrbmrgqpgkliqd7a6"))))
+         "1xsq55cf2rnf7k6r04q8wynmxiy9svm3pi840vjva47bc0sy8anz"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-proc-macro-hack" ,rust-proc-macro-hack-0.5)
-        ("rust-proc-macro2" ,rust-proc-macro2-0.4)
-        ("rust-quote" ,rust-quote-0.6)
-        ("rust-syn" ,rust-syn-0.15))))
+        ("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-1))))
     (home-page "https://github.com/rust-lang/futures-rs")
     (synopsis
      "Handle the first Future to complete")
     (description
-     "The @code{select!} macro for waiting on multiple different
-@code{Future}s at once and handling the first one to complete.")
+     "This package provides the @code{select!} macro for waiting on multiple
+different @code{Future}s at once and handling the first one to complete.")
     (license (list license:expat license:asl2.0))))
 
 (define-public rust-futures-sink-0.3
   (package
     (name "rust-futures-sink")
-    (version "0.3.1")
+    (version "0.3.8")
     (source
      (origin
        (method url-fetch)
@@ -8387,7 +13013,7 @@ composability, and iterator-like interfaces.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "05iwskzxq3yqvxv9l1kqnd7kkmp0dwc39fnvwrcjsg76z8zf66qp"))))
+         "0gfb1z97q861ki6lqsvpgfn3hnm9w3vkrf82dc00xrff95d1jy7q"))))
     (build-system cargo-build-system)
     (home-page "https://rust-lang-nursery.github.io/futures-rs")
     (synopsis "Asynchronous `Sink` trait for the futures-rs library")
@@ -8398,7 +13024,7 @@ the futures-rs library.")
 (define-public rust-futures-sink-preview-0.3
   (package
     (name "rust-futures-sink-preview")
-    (version "0.3.0-alpha.17")
+    (version "0.3.0-alpha.19")
     (source
       (origin
         (method url-fetch)
@@ -8406,7 +13032,7 @@ the futures-rs library.")
         (file-name (string-append name "-" version ".crate"))
         (sha256
          (base32
-          "1r4d0gy73hdxkh5g1lrhl1kjnwp6mywjgcj70v0z78b921da42a3"))))
+          "1v7y5qvgvl0d6hd9s4k7bd5qrj2gdlrs5yfl22v5pxv9dgpliwc6"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -8422,7 +13048,7 @@ futures-rs library.")
 (define-public rust-futures-task-0.3
   (package
     (name "rust-futures-task")
-    (version "0.3.1")
+    (version "0.3.8")
     (source
      (origin
        (method url-fetch)
@@ -8431,37 +13057,86 @@ futures-rs library.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1yg5d7b3z58mhqbrax5a0qdsfvzfclwyqvw5k3i41x4wnbb55bhb"))))
+         "03ad39v8scy353src2f9dkkvcs24n736iavi8xn45cj8pyslwmbw"))))
     (build-system cargo-build-system)
-    (arguments '(#:tests? #f))
+    (arguments
+     `(#:tests? #f
+       #:cargo-inputs (("rust-once-cell" ,rust-once-cell-1))))
     (home-page "https://rust-lang-nursery.github.io/futures-rs")
     (synopsis "Tools for working with tasks")
     (description "Tools for working with tasks.")
     (license (list license:expat license:asl2.0))))
 
-(define-public rust-futures-timer-0.1
+(define-public rust-futures-test-0.3
+  (package
+    (name "rust-futures-test")
+    (version "0.3.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "futures-test" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0v9r2mmgdbm0x4gppd5jzf4rss7439ivkqwi604m0r2il3zap6ci"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-futures-core" ,rust-futures-core-0.3)
+        ("rust-futures-executor" ,rust-futures-executor-0.3)
+        ("rust-futures-io" ,rust-futures-io-0.3)
+        ("rust-futures-task" ,rust-futures-task-0.3)
+        ("rust-futures-util" ,rust-futures-util-0.3)
+        ("rust-once-cell" ,rust-once-cell-1)
+        ("rust-pin-utils" ,rust-pin-utils-0.1))))
+    (home-page "https://rust-lang.github.io/futures-rs")
+    (synopsis "Test components built off futures-rs")
+    (description "This package provides common utilities for testing
+components built off futures-rs.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-futures-timer-1
   (package
     (name "rust-futures-timer")
-    (version "0.1.1")
+    (version "1.0.3")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "futures-timer" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0hw0nlyrq5an6l6y8md1rg6r380zrddvmh9cg0h64xfwnvlxzkm5"))))
+        (base32 "0idyz2k72jbl9z0wj48n15wjv6qgxgsgvs6k8lrhkzr9jj728ikr"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:cargo-inputs (("rust-futures" ,rust-futures-0.1))))
+     `(#:skip-build? #true
+       #:cargo-inputs
+       (("rust-futures-core-preview" ,rust-futures-core-preview-0.3)
+        ("rust-pin-utils" ,rust-pin-utils-0.1))))
     (home-page "https://github.com/async-rs/futures-timer")
     (synopsis "Timeouts for futures")
-    (description "Timeouts for futures.")
+    (description "This package is a general purpose crate for working with
+timeouts and delays with futures.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-futures-timer-0.1
+  (package
+    (inherit rust-futures-timer-1)
+    (name "rust-futures-timer")
+    (version "0.1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "futures-timer" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0hw0nlyrq5an6l6y8md1rg6r380zrddvmh9cg0h64xfwnvlxzkm5"))))
+    (arguments
+     `(#:cargo-inputs (("rust-futures" ,rust-futures-0.1))))))
+
 (define-public rust-futures-util-0.3
   (package
     (name "rust-futures-util")
-    (version "0.3.1")
+    (version "0.3.8")
     (source
      (origin
        (method url-fetch)
@@ -8470,10 +13145,11 @@ futures-rs library.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0xlyqdn6lnpkw27lwxczihx91h64gbdd31n8c8y5v63nzds65mn0"))))
+         "1lnbhpyrypn9giw6122af0pffxfijfz3zm7phrwzp75rlzscy16k"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:cargo-inputs
+     `(#:tests? #false
+       #:cargo-inputs
        (("rust-futures" ,rust-futures-0.1)
         ("rust-futures-channel" ,rust-futures-channel-0.3)
         ("rust-futures-core" ,rust-futures-core-0.3)
@@ -8482,6 +13158,7 @@ futures-rs library.")
         ("rust-futures-sink" ,rust-futures-sink-0.3)
         ("rust-futures-task" ,rust-futures-task-0.3)
         ("rust-memchr" ,rust-memchr-2)
+        ("rust-pin-project" ,rust-pin-project-1)
         ("rust-pin-utils" ,rust-pin-utils-0.1)
         ("rust-proc-macro-hack" ,rust-proc-macro-hack-0.5)
         ("rust-proc-macro-nested" ,rust-proc-macro-nested-0.1)
@@ -8496,7 +13173,7 @@ for the futures-rs library.")
 (define-public rust-futures-util-preview-0.3
   (package
     (name "rust-futures-util-preview")
-    (version "0.3.0-alpha.17")
+    (version "0.3.0-alpha.19")
     (source
      (origin
        (method url-fetch)
@@ -8505,7 +13182,7 @@ for the futures-rs library.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0kizm86wgr5qldyavskfi0r1msg6m4x2pkj0d4r04br2ig29i0dg"))))
+         "138f8wy0vqy2gsgk28kldbqnrdcgwfv9f9xx6rwzkr8p7iinisaw"))))
     (build-system cargo-build-system)
     (arguments
      `(#:tests? #f
@@ -8521,17 +13198,42 @@ for the futures-rs library.")
         ("rust-pin-utils" ,rust-pin-utils-0.1)
         ("rust-proc-macro-hack" ,rust-proc-macro-hack-0.5)
         ("rust-proc-macro-nested" ,rust-proc-macro-nested-0.1)
-        ("rust-rand" ,rust-rand-0.7)
         ("rust-slab" ,rust-slab-0.4)
-        ("rust-tokio-io" ,rust-tokio-io-0.1))))
+        ("rust-tokio-io" ,rust-tokio-io-0.1))
+       #:cargo-development-inputs
+       (("rust-futures-join-macro-preview"
+         ,rust-futures-join-macro-preview-0.3))))
     (home-page "https://github.com/rust-lang/futures-rs")
-    (synopsis
-     "Utilities and extension traits for futures-rs library")
+    (synopsis "Utilities and extension traits for futures-rs library")
     (description
-     "Common utilities and extension traits for the futures-rs
-library.")
+     "This package provides common utilities and extension traits for the
+futures-rs library.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-fuzzy-matcher-0.3
+  (package
+    (name "rust-fuzzy-matcher")
+    (version "0.3.7")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "fuzzy-matcher" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "153csv8rsk2vxagb68kpmiknvdd3bzqj03x805khckck28rllqal"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-thread-local" ,rust-thread-local-1))
+       #:cargo-development-inputs
+       (("rust-termion" ,rust-termion-1.5))))
+    (home-page "https://github.com/lotabout/fuzzy-matcher")
+    (synopsis "Fuzzy Matching Library")
+    (description "This package provides a fuzzy matching library in Rust.")
+    (license license:expat)))
+
 (define-public rust-fxhash-0.2
   (package
     (name "rust-fxhash")
@@ -8547,12 +13249,11 @@ library.")
          "037mb9ichariqi45xm6mz0b11pa92gj38ba0409z3iz239sns6y3"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-byteorder" ,rust-byteorder-1.3))
+     `(#:cargo-inputs
+       (("rust-byteorder" ,rust-byteorder-1))
        #:cargo-development-inputs
        (("rust-fnv" ,rust-fnv-1)
-        ("rust-seahash" ,rust-seahash-3.0))))
+        ("rust-seahash" ,rust-seahash-3))))
     (home-page "https://github.com/cbreeden/fxhash")
     (synopsis "Hashing algorithm from hasher used in FireFox and Rustc")
     (description
@@ -8562,25 +13263,29 @@ derived from an internal hasher used in FireFox and Rustc.")
 
 (define-public rust-gcc-0.3
   (package
-    (inherit rust-cc-1)
     (name "rust-gcc")
     (version "0.3.55")
     (source
       (origin
         (method url-fetch)
         (uri (crate-uri "gcc" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "1hng1sajn4r67hndvhjysswz8niayjwvcj42zphpxzhbz89kjpwg"))))
     (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f  ; gcc-test folder missing from release tarball.
+       #:cargo-inputs
+       (("rust-rayon" ,rust-rayon-0.8))
+       #:cargo-development-inputs
+       (("rust-tempdir" ,rust-tempdir-0.3))))
     (home-page "https://github.com/alexcrichton/cc-rs")
     (synopsis "Library to compile C/C++ code into a Rust library/application")
     (description
      "This package provides a build-time dependency for Cargo build scripts to
 assist in invoking the native C compiler to compile native C code into a static
 archive to be linked into Rustcode.")
-    (properties '((hidden? . #t)))
     (license (list license:asl2.0
                    license:expat))))
 
@@ -8609,101 +13314,6 @@ archive to be linked into Rustcode.")
 API library @code{gdi32}.")
     (license license:expat)))
 
-(define-public rust-gdk-pixbuf-0.8
-  (package
-    (name "rust-gdk-pixbuf")
-    (version "0.8.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "gdk-pixbuf" version))
-        (file-name
-         (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32
-          "1mxxca0fkcw2rsd3kl3nvlb8ys4cgxqx4n5isjbv0adk8q624j72"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:cargo-inputs
-       (("rust-gdk-pixbuf-sys" ,rust-gdk-pixbuf-sys-0.9)
-        ("rust-gio" ,rust-gio-0.8)
-        ("rust-gio-sys" ,rust-gio-sys-0.9)
-        ("rust-glib" ,rust-glib-0.9)
-        ("rust-glib-sys" ,rust-glib-sys-0.9)
-        ("rust-gobject-sys" ,rust-gobject-sys-0.9)
-        ("rust-libc" ,rust-libc-0.2)
-        ("rust-gtk-rs-lgpl-docs" ,rust-gtk-rs-lgpl-docs-0.1))
-       #:cargo-development-inputs
-       (("rust-gir-format-check" ,rust-gir-format-check-0.1))))
-    (inputs
-     `(("gdk-pixbuf" ,gdk-pixbuf)))
-    (home-page "https://gtk-rs.org/")
-    (synopsis "Rust bindings for the GdkPixbuf library")
-    (description
-     "Rust bindings for the GdkPixbuf library.")
-    (license license:expat)))
-
-(define-public rust-gdk-pixbuf-0.7
-  (package
-    (inherit rust-gdk-pixbuf-0.8)
-    (name "rust-gdk-pixbuf")
-    (version "0.7.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "gdk-pixbuf" version))
-        (file-name
-         (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32
-          "1k2g3w2p57m68bi5sldvkmgjgslgqswrjsijjhqaibdvw67409lp"))))
-    (arguments
-     `(#:cargo-inputs
-       (("rust-fragile" ,rust-fragile-0.3)
-        ("rust-futures-preview" ,rust-futures-preview-0.3)
-        ("rust-gdk-pixbuf-sys" ,rust-gdk-pixbuf-sys-0.9)
-        ("rust-gio" ,rust-gio-0.7)
-        ("rust-gio-sys" ,rust-gio-sys-0.9)
-        ("rust-glib" ,rust-glib-0.8)
-        ("rust-glib-sys" ,rust-glib-sys-0.9)
-        ("rust-gobject-sys" ,rust-gobject-sys-0.9)
-        ("rust-libc" ,rust-libc-0.2)
-        ("rust-gtk-rs-lgpl-docs" ,rust-gtk-rs-lgpl-docs-0.1))
-       #:cargo-development-inputs
-       (("rust-gir-format-check" ,rust-gir-format-check-0.1))))))
-
-(define-public rust-gdk-pixbuf-sys-0.9
-  (package
-    (name "rust-gdk-pixbuf-sys")
-    (version "0.9.1")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "gdk-pixbuf-sys" version))
-        (file-name
-         (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32
-          "1c2andpjb10y7bahh6nxnksh9m3g5qh4mgq9znx634cy1831p6fq"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:tests? #f      ; tests not included in release
-       #:cargo-inputs
-       (("rust-gio-sys" ,rust-gio-sys-0.9)
-        ("rust-glib-sys" ,rust-glib-sys-0.9)
-        ("rust-gobject-sys" ,rust-gobject-sys-0.9)
-        ("rust-libc" ,rust-libc-0.2)
-        ("rust-pkg-config" ,rust-pkg-config-0.3))
-       #:cargo-development-inputs
-       (("rust-shell-words" ,rust-shell-words-0.1)
-        ("rust-tempfile" ,rust-tempfile-3))))
-    (inputs
-     `(("gdk-pixbuf" ,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}.")
-    (license license:expat)))
-
 (define-public rust-generator-0.6
   (package
     (name "rust-generator")
@@ -8796,6 +13406,27 @@ API library @code{gdi32}.")
         (base32
          "1v5jg7djicq34nbiv1dwaki71gkny002wyy9qfn3y0hfmrs053y6"))))))
 
+(define-public rust-generic-array-0.8
+  (package
+    (inherit rust-generic-array-0.12)
+    (name "rust-generic-array")
+    (version "0.8.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "generic-array" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1wi6rlx3dmrvl26yxm4z5n68kyj2ikk4nllk1kazw2ik9scnkszw"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-nodrop" ,rust-nodrop-0.1)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-typenum" ,rust-typenum-1))
+       #:cargo-development-inputs
+       (("rust-serde-json" ,rust-serde-json-1))))))
+
 (define-public rust-genmesh-0.6
   (package
     (name "rust-genmesh")
@@ -8820,6 +13451,31 @@ API library @code{gdi32}.")
      "This package provides a package for generating 3D meshes/")
     (license license:asl2.0)))
 
+(define-public rust-getch-0.2
+  (package
+    (name "rust-getch")
+    (version "0.2.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "getch" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "00in8q95qi8a5q3zn2zcaqp5avj79f5myd2a4zfdy2m24ycvbc5v"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-libc" ,rust-libc-0.2)
+        ("rust-termios" ,rust-termios-0.2))))
+    (home-page "https://nest.pijul.com/pijul_org/getch")
+    (synopsis "Portable implementation of getch")
+    (description
+     "This package provides a portable implementation of getch, using
+@code{_getch} on Windows, and @code{termios} on Unix.")
+    (license license:asl2.0)))
+
 (define-public rust-getopts-0.2
   (package
     (name "rust-getopts")
@@ -8834,10 +13490,9 @@ API library @code{gdi32}.")
           "1mgb3qvivi26gs6ihqqhh8iyhp3vgxri6vwyrwg28w0xqzavznql"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-unicode-width" ,rust-unicode-width-0.1)
-        ("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1.0)
+        ("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1)
         ("rust-rustc-std-workspace-std" ,rust-rustc-std-workspace-std-1.0))
        #:cargo-development-inputs
        (("rust-log" ,rust-log-0.3))))
@@ -8847,8 +13502,39 @@ API library @code{gdi32}.")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-getrandom-0.2
+  (package
+    (name "rust-getrandom")
+    (version "0.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "getrandom" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1x3clmvj5k2h9qv3ihbyif1rns3pf5y5n66f5jjyc5zr6v7jb07f"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-cfg-if" ,rust-cfg-if-0.1)
+        ("rust-compiler-builtins" ,rust-compiler-builtins-0.1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1)
+        ("rust-stdweb" ,rust-stdweb-0.4)
+        ("rust-wasi" ,rust-wasi-0.9)
+        ("rust-wasm-bindgen" ,rust-wasm-bindgen-0.2))
+       #:cargo-development-inputs
+       (("rust-wasm-bindgen-test" ,rust-wasm-bindgen-test-0.3))))
+    (home-page "https://github.com/rust-random/getrandom")
+    (synopsis "Retrieve random data from system source")
+    (description
+     "This package provides a small cross-platform library for
+retrieving random data from system source.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-getrandom-0.1
   (package
+    (inherit rust-getrandom-0.2)
     (name "rust-getrandom")
     (version "0.1.14")
     (source
@@ -8860,7 +13546,6 @@ API library @code{gdi32}.")
        (sha256
         (base32
          "1sq30li71h19rhnhs1h6576ja68insajx8wvh1nn088r8pc8vg3s"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
@@ -8871,18 +13556,12 @@ API library @code{gdi32}.")
         ("rust-log" ,rust-log-0.4)
         ("rust-stdweb" ,rust-stdweb-0.4)
         ("rust-wasi" ,rust-wasi-0.9)
-        ("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1.0))))
-    (home-page "https://github.com/rust-random/getrandom")
-    (synopsis "Retrieve random data from system source")
-    (description
-     "This package provides a small cross-platform library for
-retrieving random data from system source.")
-    (license (list license:expat license:asl2.0))))
+        ("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1))))))
 
-(define-public rust-gettext-rs-0.4
+(define-public rust-gettext-rs-0.5
   (package
     (name "rust-gettext-rs")
-    (version "0.4.4")
+    (version "0.5.0")
     (source
       (origin
         (method url-fetch)
@@ -8891,19 +13570,12 @@ retrieving random data from system source.")
          (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "0z6fcsn1g3w9mlgfj6ln6qvqf8610w3zwvk6g062h657v114lifz"))))
+          "1qc9a63i54b9ad3jx951hn7xb6xf76c9f3hmi2cdy2m7rhczm58v"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-gettext-sys" ,rust-gettext-sys-0.19)
-        ("rust-locale-config" ,rust-locale-config-0.2))
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'configure 'use-system-gettext
-           (lambda* (#:key inputs #:allow-other-keys)
-             (let ((gettext (assoc-ref inputs "gettext")))
-               (setenv "GETTEXT_SYSTEM" gettext)
-               #t))))))
+        ("rust-locale-config" ,rust-locale-config-0.3))))
     (inputs
      `(("gettext" ,gettext-minimal)))
     (home-page "https://github.com/Koka/gettext-rs")
@@ -8911,6 +13583,25 @@ retrieving random data from system source.")
     (description "This package provides GNU Gettext FFI bindings for Rust.")
     (license license:expat)))
 
+(define-public rust-gettext-rs-0.4
+  (package
+    (inherit rust-gettext-rs-0.5)
+    (name "rust-gettext-rs")
+    (version "0.4.4")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "gettext-rs" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0z6fcsn1g3w9mlgfj6ln6qvqf8610w3zwvk6g062h657v114lifz"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-gettext-sys" ,rust-gettext-sys-0.19)
+        ("rust-locale-config" ,rust-locale-config-0.2))))))
+
 (define-public rust-gettext-sys-0.19
   (package
     (name "rust-gettext-sys")
@@ -8930,14 +13621,7 @@ retrieving random data from system source.")
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-cc" ,rust-cc-1))
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'configure 'use-system-gettext
-           (lambda* (#:key inputs #:allow-other-keys)
-             (let ((gettext (assoc-ref inputs "gettext")))
-               (setenv "GETTEXT_SYSTEM" gettext)
-               #t))))))
+       (("rust-cc" ,rust-cc-1))))
     (inputs
      `(("gettext" ,gettext-minimal)))
     (home-page "https://github.com/Koka/gettext-rs")
@@ -8945,134 +13629,61 @@ retrieving random data from system source.")
     (description "This package provides raw FFI bindings for GNU Gettext.")
     (license license:expat)))
 
-(define-public rust-gfx-0.18
-  (package
-    (name "rust-gfx")
-    (version "0.18.2")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "gfx" version))
-        (file-name
-         (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32
-          "0nqmxqi3x4ni0g78g77a6aldrv8cfvzhnpqhxyd2ap4aa3wldph1"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-log" ,rust-log-0.4)
-        ("rust-mint" ,rust-mint-0.5)
-        ("rust-draw-state" ,rust-draw-state-0.8)
-        ("rust-gfx-core" ,rust-gfx-core-0.9))))
-    (home-page "https://github.com/gfx-rs/gfx")
-    (synopsis "High-performance, bindless graphics API")
-    (description
-     "This package provides a high-performance, bindless graphics API.")
-    (license license:asl2.0)))
-
-(define-public rust-gfx-core-0.9
-  (package
-    (name "rust-gfx-core")
-    (version "0.9.2")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "gfx_core" version))
-        (file-name
-         (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32
-          "0haldr99n12d90vqgvl77n59hywlklhdff85j2aljaz1yapdvyvm"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-log" ,rust-log-0.4)
-        ("rust-mint" ,rust-mint-0.5)
-        ("rust-draw-state" ,rust-draw-state-0.8)
-        ("rust-serde" ,rust-serde-1)
-        ("rust-bitflags" ,rust-bitflags-1))))
-    (home-page "https://github.com/gfx-rs/gfx")
-    (synopsis "Core library of Gfx-rs")
-    (description "This package is a core library of Gfx-rs.")
-    (license license:asl2.0)))
-
-(define-public rust-gfx-device-gl-0.16
-  (package
-    (name "rust-gfx-device-gl")
-    (version "0.16.2")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "gfx_device_gl" version))
-        (file-name
-         (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32
-          "1g5yg19jvxdmviljyakhd6253bnb2qg7v8iscf48ihc0ldgki70h"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-log" ,rust-log-0.4)
-        ("rust-gfx-gl" ,rust-gfx-gl-0.6)
-        ("rust-gfx-core" ,rust-gfx-core-0.9))))
-    (home-page "https://github.com/gfx-rs/gfx")
-    (synopsis "OpenGL backend for gfx-rs")
-    (description "This package provides the openGL backend for gfx-rs.")
-    (license license:asl2.0)))
-
-(define-public rust-gfx-gl-0.6
+(define-public rust-gfa-0.6
   (package
-    (name "rust-gfx-gl")
-    (version "0.6.1")
+    (name "rust-gfa")
+    (version "0.6.2")
     (source
       (origin
         (method url-fetch)
-        (uri (crate-uri "gfx_gl" version))
+        (uri (crate-uri "gfa" version))
         (file-name
          (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "0ppzj4bgjawdqz3fvnscqk8lnmgh95pwzh0v96vwy809cxj83lzj"))))
+          "0ghmy4r0324s6vvmj9nmh326346nkwm7nybnpcpswnjvf02b85gw"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-gl-generator" ,rust-gl-generator-0.14))))
-    (home-page "https://github.com/gfx-rs/gfx_gl")
-    (synopsis "OpenGL bindings for gfx, based on gl-rs")
+     `(#:cargo-inputs
+       (("rust-bstr" ,rust-bstr-0.2)
+        ("rust-bytemuck" ,rust-bytemuck-1)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-nom" ,rust-nom-5)
+        ("rust-regex" ,rust-regex-1)
+        ("rust-serde" ,rust-serde-1))
+       #:cargo-development-inputs
+       (("rust-criterion" ,rust-criterion-0.3))))
+    (home-page "https://github.com/chfi/rs-gfa")
+    (synopsis "Library for graphs in the GFA (Graphical Fragment Assembly) format")
     (description
-     "This package provides OpenGL bindings for gfx, based on gl-rs.")
-    (license license:asl2.0)))
+     "This package provides a library for working with graphs in the
+@acronym{GFA, Graphical Fragment Assembly} format.")
+    (license license:expat)))
 
-(define-public rust-gif-0.10
+(define-public rust-ghash-0.3
   (package
-    (name "rust-gif")
-    (version "0.10.3")
+    (name "rust-ghash")
+    (version "0.3.0")
     (source
      (origin
        (method url-fetch)
-       (uri (crate-uri "gif" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
+       (uri (crate-uri "ghash" version))
+       (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1bw174f7civdfgryvc8pvyhicpr96hzdajnda4s3y8iv3ch907a7"))))
+         "0c957q9sk1q93pqqfvhcmflfm1zvbr14aznfpm25kqd6i437zqnn"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:tests? #f      ; tests not included in release
-       #:cargo-inputs
-       (("rust-color-quant" ,rust-color-quant-1.0)
-        ("rust-libc" ,rust-libc-0.2)
-        ("rust-lzw" ,rust-lzw-0.10))
+     `(#:cargo-inputs
+       (("rust-polyval" ,rust-polyval-0.4)
+        ("rust-zeroize" ,rust-zeroize-1))
        #:cargo-development-inputs
-       (("rust-glob" ,rust-glob-0.3))))
-    (home-page "https://github.com/image-rs/image-gif")
-    (synopsis "GIF decoder and encoder")
-    (description "This package provides a GIF decoder and encoder in Rust.")
+       (("rust-hex-literal" ,rust-hex-literal-0.1))))
+    (home-page "https://github.com/RustCrypto/universal-hashes")
+    (synopsis "Universal hash over GF(2^128)")
+    (description "This package provides a universal hash over GF(2^128) useful
+for constructing a Message Authentication Code (MAC), as in the AES-GCM
+authenticated encryption cipher.")
     (license (list license:expat license:asl2.0))))
 
 (define-public rust-gimli-0.20
@@ -9096,10 +13707,10 @@ retrieving random data from system source.")
          ,rust-fallible-iterator-0.2)
         ("rust-arrayvec" ,rust-arrayvec-0.5)
         ("rust-stable-deref-trait"
-         ,rust-stable-deref-trait-1.1)
+         ,rust-stable-deref-trait-1)
         ("rust-smallvec" ,rust-smallvec-1)
         ("rust-indexmap" ,rust-indexmap-1)
-        ("rust-byteorder" ,rust-byteorder-1.3))))
+        ("rust-byteorder" ,rust-byteorder-1))))
     (home-page "https://github.com/gimli-rs/gimli")
     (synopsis "Library for reading and writing the DWARF debugging format")
     (description
@@ -9123,10 +13734,10 @@ retrieving random data from system source.")
     (arguments
      `(#:cargo-inputs
        (("rust-arrayvec" ,rust-arrayvec-0.4)
-        ("rust-byteorder" ,rust-byteorder-1.3)
+        ("rust-byteorder" ,rust-byteorder-1)
         ("rust-fallible-iterator" ,rust-fallible-iterator-0.2)
         ("rust-indexmap" ,rust-indexmap-1)
-        ("rust-stable-deref-trait" ,rust-stable-deref-trait-1.1))
+        ("rust-stable-deref-trait" ,rust-stable-deref-trait-1))
        #:cargo-development-inputs
        (("rust-crossbeam" ,rust-crossbeam-0.7)
         ("rust-getopts" ,rust-getopts-0.2)
@@ -9144,139 +13755,59 @@ retrieving random data from system source.")
 DWARF debugging format.")
     (license (list license:asl2.0 license:expat))))
 
-(define-public rust-gio-0.8
+(define-public rust-git2-0.13
   (package
-    (name "rust-gio")
-    (version "0.8.1")
+    (name "rust-git2")
+    (version "0.13.15")
     (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "gio" version))
-        (file-name
-         (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32
-          "19cnla2ya0mi6wwaabd5mxbq2kzq46dg6jq2z19rpqyc2na0zl8c"))))
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "git2" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0na3vsa44nn1sr6pzscn93w69wbmdih277mm2p3f6kcavb4ngwj4"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:tests? #f  ; Not all files included in the tarball.
-       #:cargo-inputs
-       (("rust-bitflags" ,rust-bitflags-1)
-        ("rust-futures-channel" ,rust-futures-channel-0.3)
-        ("rust-futures-core" ,rust-futures-core-0.3)
-        ("rust-futures-io" ,rust-futures-io-0.3)
-        ("rust-futures-util" ,rust-futures-util-0.3)
-        ("rust-gio-sys" ,rust-gio-sys-0.9)
-        ("rust-glib" ,rust-glib-0.9)
-        ("rust-glib-sys" ,rust-glib-sys-0.9)
-        ("rust-gobject-sys" ,rust-gobject-sys-0.9)
-        ("rust-lazy-static" ,rust-lazy-static-1)
-        ("rust-libc" ,rust-libc-0.2)
-        ("rust-gtk-rs-lgpl-docs" ,rust-gtk-rs-lgpl-docs-0.1))
-       #:cargo-development-inputs
-       (("rust-gir-format-check" ,rust-gir-format-check-0.1)
-        ("rust-serial-test" ,rust-serial-test-0.1)
-        ("rust-serial-test-derive" ,rust-serial-test-derive-0.1))))
-    (inputs
-     `(("glib" ,glib)))
-    (home-page "https://gtk-rs.org/")
-    (synopsis "Rust bindings for the Gio library")
-    (description "Rust bindings for the Gio library.")
-    (license license:expat)))
-
-(define-public rust-gio-0.7
-  (package
-    (inherit rust-gio-0.8)
-    (name "rust-gio")
-    (version "0.7.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "gio" version))
-        (file-name
-         (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32
-          "1qv0wc1hqyb81c03h81s3xrl9jslrw23fr4yhygxbhih9k9vaqb2"))))
-    (arguments
      `(#:cargo-inputs
        (("rust-bitflags" ,rust-bitflags-1)
-        ("rust-fragile" ,rust-fragile-0.3)
-        ("rust-futures-preview" ,rust-futures-preview-0.3)
-        ("rust-gio-sys" ,rust-gio-sys-0.9)
-        ("rust-glib" ,rust-glib-0.8)
-        ("rust-glib-sys" ,rust-glib-sys-0.9)
-        ("rust-gobject-sys" ,rust-gobject-sys-0.9)
-        ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-libc" ,rust-libc-0.2)
-        ("rust-gtk-rs-lgpl-docs" ,rust-gtk-rs-lgpl-docs-0.1))
-       #:cargo-development-inputs
-       (("rust-gir-format-check" ,rust-gir-format-check-0.1))))))
-
-(define-public rust-gio-sys-0.9
-  (package
-    (name "rust-gio-sys")
-    (version "0.9.1")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "gio-sys" version))
-        (file-name
-         (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32
-          "049rafihxp3maxg3fwj6062ni9dcfilvhfq6ibnfgsmr89925bag"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:tests? #f      ; Some test libraries not included in release.
-       #:cargo-inputs
-       (("rust-glib-sys" ,rust-glib-sys-0.9)
-        ("rust-gobject-sys" ,rust-gobject-sys-0.9)
-        ("rust-libc" ,rust-libc-0.2)
-        ("rust-pkg-config" ,rust-pkg-config-0.3))
+        ("rust-libgit2-sys" ,rust-libgit2-sys-0.12)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-openssl-probe" ,rust-openssl-probe-0.1)
+        ("rust-openssl-sys" ,rust-openssl-sys-0.9)
+        ("rust-url" ,rust-url-2))
        #:cargo-development-inputs
-       (("rust-shell-words" ,rust-shell-words-0.1)
-        ("rust-tempfile" ,rust-tempfile-3))))
+       (("rust-paste" ,rust-paste-0.1)
+        ("rust-structopt" ,rust-structopt-0.3)
+        ("rust-time" ,rust-time-0.1))))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("git" ,git-minimal)))           ;for a single test
     (inputs
-     `(("glib" ,glib)))
-    (home-page "http://gtk-rs.org/")
-    (synopsis "FFI bindings to libgio-2.0")
-    (description "This package provides FFI bindings to libgio-2.0.")
-    (license license:expat)))
-
-(define-public rust-gir-format-check-0.1
-  (package
-    (name "rust-gir-format-check")
-    (version "0.1.1")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "gir-format-check" version))
-        (file-name
-         (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32
-          "0znl4qcgmg0656zk9vjkwdn9wj1zpkd0m0l5jnzmahd80ii7vf4b"))))
-    (build-system cargo-build-system)
-    (home-page "https://github.com/gtk-rs/gir-format-check")
-    (synopsis "File format checker")
-    (description "File format checker in Rust.")
-    (license license:expat)))
+     `(("libgit2" ,libgit2)
+       ("libssh2" ,libssh2)
+       ("openssl" ,openssl)
+       ("zlib" ,zlib)))
+    (home-page "https://github.com/rust-lang/git2-rs")
+    (synopsis "Rust bindings to libgit2")
+    (description
+     "This package provides bindings to libgit2 for interoperating with git
+repositories.  This library is both threadsafe and memory safe and allows both
+reading and writing git repositories.")
+    (license (list license:expat license:asl2.0))))
 
 (define-public rust-git2-0.11
   (package
+    (inherit rust-git2-0.13)
     (name "rust-git2")
     (version "0.11.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "git2" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32
-         "1i0fgsr91r97hsjbgqnymkcyiyg0057m7m04116k3vmyqpvrwlbp"))))
-    (build-system cargo-build-system)
+        (base32 "1i0fgsr91r97hsjbgqnymkcyiyg0057m7m04116k3vmyqpvrwlbp"))))
     (arguments
      `(#:cargo-inputs
        (("rust-bitflags" ,rust-bitflags-1)
@@ -9285,27 +13816,14 @@ DWARF debugging format.")
         ("rust-log" ,rust-log-0.4)
         ("rust-openssl-probe" ,rust-openssl-probe-0.1)
         ("rust-openssl-sys" ,rust-openssl-sys-0.9)
-        ("rust-url" ,rust-url-2.1))
+        ("rust-url" ,rust-url-2))
        #:cargo-development-inputs
        (("rust-docopt" ,rust-docopt-1.1)
         ("rust-serde" ,rust-serde-1)
         ("rust-serde-derive" ,rust-serde-derive-1)
         ("rust-tempfile" ,rust-tempfile-3)
-        ("rust-thread-id" ,rust-thread-id-3.3)
-        ("rust-time" ,rust-time-0.1))))
-    (native-inputs
-     `(("libgit2" ,libgit2)
-       ("libssh2" ,libssh2)
-       ("openssl" ,openssl)
-       ("pkg-config" ,pkg-config)
-       ("zlib" ,zlib)))
-    (home-page "https://github.com/rust-lang/git2-rs")
-    (synopsis "Rust bindings to libgit2")
-    (description
-     "Bindings to libgit2 for interoperating with git repositories.
-This library is both threadsafe and memory safe and allows both
-reading and writing git repositories.")
-    (license (list license:asl2.0 license:expat))))
+        ("rust-thread-id" ,rust-thread-id-3)
+        ("rust-time" ,rust-time-0.1))))))
 
 (define-public rust-git2-0.9
   (package
@@ -9329,234 +13847,15 @@ reading and writing git repositories.")
         ("rust-log" ,rust-log-0.4)
         ("rust-openssl-probe" ,rust-openssl-probe-0.1)
         ("rust-openssl-sys" ,rust-openssl-sys-0.9)
-        ("rust-url" ,rust-url-1.7))
+        ("rust-url" ,rust-url-1))
        #:cargo-development-inputs
        (("rust-docopt" ,rust-docopt-1.1)
         ("rust-serde" ,rust-serde-1)
         ("rust-serde-derive" ,rust-serde-derive-1)
         ("rust-tempdir" ,rust-tempdir-0.3)
-        ("rust-thread-id" ,rust-thread-id-3.3)
+        ("rust-thread-id" ,rust-thread-id-3)
         ("rust-time" ,rust-time-0.1))))))
 
-(define-public rust-gl-0.11
-  (package
-    (name "rust-gl")
-    (version "0.11.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "gl" version))
-        (file-name
-         (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32
-          "1wcqpyhck0xriffkmgmldy33lwk2044hb4l02d44vm4fbvicin6p"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-gl-generator" ,rust-gl-generator-0.10))))
-    (home-page "https://github.com/brendanzab/gl-rs/")
-    (synopsis "OpenGL bindings for rust")
-    (description "This package provides OpenGL bindings for rust.")
-    (license license:asl2.0)))
-
-(define-public rust-gl-generator-0.14
-  (package
-    (name "rust-gl-generator")
-    (version "0.14.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "gl-generator" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32
-         "0k8j1hmfnff312gy7x1aqjzcm8zxid7ij7dlb8prljib7b1dz58s"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:cargo-inputs
-       (("rust-khronos-api" ,rust-khronos-api-3)
-        ("rust-log" ,rust-log-0.4)
-        ("rust-xml-rs" ,rust-xml-rs-0.8))))
-    (home-page "https://github.com/brendanzab/gl-rs/")
-    (synopsis "Code generators for bindings to the Khronos OpenGL APIs")
-    (description
-     "Code generators for creating bindings to the Khronos OpenGL APIs.")
-    (license license:asl2.0)))
-
-(define-public rust-gl-generator-0.13
-  (package
-    (inherit rust-gl-generator-0.14)
-    (name "rust-gl-generator")
-    (version "0.13.1")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "gl-generator" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32
-         "0jpqjqpyrl73sf8y20p5rv50qz8glnsvv9infg8h4vi52zgbp66a"))))))
-
-(define-public rust-gl-generator-0.11
- (package
-   (inherit rust-gl-generator-0.13)
-   (name "rust-gl-generator")
-   (version "0.11.0")
-   (source
-    (origin
-      (method url-fetch)
-      (uri (crate-uri "gl-generator" version))
-      (file-name
-       (string-append name "-" version ".tar.gz"))
-      (sha256
-       (base32
-        "1gdchvay0k0g931b2ki33mkfixcw4radk5b8sqsm29rahxg3v8ir"))))))
-
-(define-public rust-gl-generator-0.10
-  (package
-    (name "rust-gl-generator")
-    (version "0.10.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "gl_generator" version))
-        (file-name
-         (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32
-          "0146yd4i9wbgfrhnkc04w7n7civbanznc0q87skp6v7p7hbszzx0"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-log" ,rust-log-0.4)
-        ("rust-xml-rs" ,rust-xml-rs-0.8)
-        ("rust-khronos-api" ,rust-khronos-api-3))))
-    (home-page "https://github.com/brendanzab/gl-rs/")
-    (synopsis
-     "Code generators for creating bindings to the Khronos OpenGL APIs")
-    (description
-     "Code generators for creating bindings to the Khronos OpenGL APIs.")
-    (license license:asl2.0)))
-
-(define-public rust-gleam-0.6
-  (package
-    (name "rust-gleam")
-    (version "0.6.19")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "gleam" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32
-         "1iazvk3kvw3620gm6x8hy2x1lz51k04acl78cr3ppryhk5y0vqfa"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:cargo-inputs
-       (("rust-gl-generator" ,rust-gl-generator-0.13))))
-    (home-page "https://github.com/servo/gleam")
-    (synopsis "Generated OpenGL bindings and wrapper for Servo")
-    (description
-     "Generated OpenGL bindings and wrapper for Servo.")
-    (license (list license:asl2.0 license:expat))))
-
-(define-public rust-glib-0.9
-  (package
-    (name "rust-glib")
-    (version "0.9.3")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "glib" version))
-        (file-name
-         (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32
-          "1h3100mf7kdfxibjz5na0sqzbd2mcsyd8pzivn3666w414x5gys0"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:cargo-inputs
-       (("rust-bitflags" ,rust-bitflags-1)
-        ("rust-futures-channel" ,rust-futures-channel-0.3)
-        ("rust-futures-core" ,rust-futures-core-0.3)
-        ("rust-futures-executor" ,rust-futures-executor-0.3)
-        ("rust-futures-preview" ,rust-futures-preview-0.3)
-        ("rust-futures-task" ,rust-futures-task-0.3)
-        ("rust-futures-util" ,rust-futures-util-0.3)
-        ("rust-glib-sys" ,rust-glib-sys-0.9)
-        ("rust-gobject-sys" ,rust-gobject-sys-0.9)
-        ("rust-lazy-static" ,rust-lazy-static-1)
-        ("rust-libc" ,rust-libc-0.2))
-       #:cargo-development-inputs
-       (("rust-tempfile" ,rust-tempfile-3))))
-    (inputs
-     `(("glib" ,glib)))
-    (home-page "https://gtk-rs.org/")
-    (synopsis "Rust bindings for the GLib library")
-    (description
-     "Rust bindings for the GLib library.")
-    (license license:expat)))
-
-(define-public rust-glib-0.8
-  (package
-    (inherit rust-glib-0.9)
-    (name "rust-glib")
-    (version "0.8.2")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "glib" version))
-        (file-name
-         (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32
-          "0ysy87zrwyzhfpf3d8rkyyr3amwj85wky05fsl7kx95s84l269xy"))))
-    (arguments
-     `(#:cargo-inputs
-       (("rust-bitflags" ,rust-bitflags-1)
-        ("rust-futures-preview" ,rust-futures-preview-0.3)
-        ("rust-glib-sys" ,rust-glib-sys-0.9)
-        ("rust-gobject-sys" ,rust-gobject-sys-0.9)
-        ("rust-lazy-static" ,rust-lazy-static-1)
-        ("rust-libc" ,rust-libc-0.2))
-       #:cargo-development-inputs
-       (("rust-tempfile" ,rust-tempfile-3))))))
-
-(define-public rust-glib-sys-0.9
-  (package
-    (name "rust-glib-sys")
-    (version "0.9.1")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "glib-sys" version))
-        (file-name
-         (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32
-          "1qhnwfqqcp63mx4q9744rfkq78g6ky2j8ppsxxgw0ipl08w6z1cm"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:tests? #f      ; Some test libraries not included in release.
-       #:cargo-inputs
-       (("rust-libc" ,rust-libc-0.2)
-        ("rust-pkg-config" ,rust-pkg-config-0.3))
-       #:cargo-development-inputs
-       (("rust-shell-words" ,rust-shell-words-0.1)
-        ("rust-tempfile" ,rust-tempfile-3))))
-    (inputs
-     `(("glib" ,glib)))
-    (home-page "http://gtk-rs.org/")
-    (synopsis "FFI bindings to libglib-2.0")
-    (description "This package provides FFI bindings to libglib-2.0.")
-    (license license:expat)))
-
 (define-public rust-glium-0.25
   (package
     (name "rust-glium")
@@ -9609,7 +13908,7 @@ OpenGL's old and error-prone API.")
           "0x25wfr7vg3mzxc9x05dcphvd3nwlcmbnxrvwcvrrdwplcrrk4cv"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
+     `(#:tests? #f
        #:cargo-development-inputs
        (("rust-tempdir" ,rust-tempdir-0.3))))
     (home-page "https://github.com/rust-lang-nursery/glob")
@@ -9670,249 +13969,86 @@ the process of matching one or more glob patterns against a single candidate
 path simultaneously, and returning all of the globs that matched.")
     (license (list license:expat license:unlicense))))
 
-(define-public rust-globwalk-0.5
+(define-public rust-globwalk-0.8
   (package
     (name "rust-globwalk")
-    (version "0.5.0")
+    (version "0.8.1")
     (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "globwalk" version))
-        (file-name
-         (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32
-          "09axyql26s09z60sgi3y3lkin9swy2b5km3b0v6mm84xhlljxyl9"))))
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "globwalk" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1k6xwkydr7igvwjn3xkwjywk4213lcs53f576ilqz1h84jaazqwk"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-ignore" ,rust-ignore-0.4)
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-ignore" ,rust-ignore-0.4)
         ("rust-walkdir" ,rust-walkdir-2))
        #:cargo-development-inputs
-       (("rust-docmatic" ,rust-docmatic-0.1)
+       (("rust-backtrace" ,rust-backtrace-0.3.35)
+        ("rust-docmatic" ,rust-docmatic-0.1)
         ("rust-tempdir" ,rust-tempdir-0.3))))
     (home-page "https://github.com/gilnaa/globwalk")
     (synopsis "Glob-matched recursive file system walking")
-    (description
-     "Glob-matched recursive file system walking.")
+    (description "This package provides glob-matched recursive file system
+walking.  Based on both @code{rust-walkdir} and @code{rust-ignore}, this crate
+inherits many goodies from both, such as limiting search depth and amount of
+open file descriptors.")
     (license license:expat)))
 
-(define-public rust-glutin-0.22
-  (package
-    (name "rust-glutin")
-    (version "0.22.0-alpha5")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "glutin" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32
-         "0lilr4f335m1fq1acmshd51zblfaglw1hha6lhalnc1fw3cg0aag"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:cargo-inputs
-       (("rust-android-glue" ,rust-android-glue-0.2)
-        ("rust-cgl" ,rust-cgl-0.3)
-        ("rust-cocoa" ,rust-cocoa-0.19)
-        ("rust-core-foundation" ,rust-core-foundation-0.6)
-        ("rust-core-graphics" ,rust-core-graphics-0.17)
-        ("rust-glutin-egl-sys" ,rust-glutin-egl-sys-0.1)
-        ("rust-glutin-emscripten-sys" ,rust-glutin-emscripten-sys-0.1)
-        ("rust-glutin-gles2-sys" ,rust-glutin-gles2-sys-0.1)
-        ("rust-glutin-glx-sys" ,rust-glutin-glx-sys-0.1)
-        ("rust-glutin-wgl-sys" ,rust-glutin-wgl-sys-0.1)
-        ("rust-lazy-static" ,rust-lazy-static-1)
-        ("rust-libloading" ,rust-libloading-0.5)
-        ("rust-log" ,rust-log-0.4)
-        ("rust-objc" ,rust-objc-0.2)
-        ("rust-osmesa-sys" ,rust-osmesa-sys-0.1)
-        ("rust-parking-lot" ,rust-parking-lot-0.9)
-        ("rust-wayland-client" ,rust-wayland-client-0.23)
-        ("rust-winapi" ,rust-winapi-0.3)
-        ("rust-winit" ,rust-winit-0.20))))
-    (home-page "https://github.com/tomaka/glutin")
-    (synopsis
-     "Cross-platform OpenGL context provider")
-    (description
-     "Cross-platform OpenGL context provider.")
-    (license license:asl2.0)))
-
-(define-public rust-glutin-0.21
-  (package
-    (inherit rust-glutin-0.22)
-    (name "rust-glutin")
-    (version "0.21.2")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "glutin" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32
-         "1ggyyqn7dvz4yx5ygqfvnxwfb78wvdm5y6xqw5my1b4x61dv6wak"))))
-    (arguments
-     `(#:cargo-inputs
-       (("rust-android-glue" ,rust-android-glue-0.2)
-        ("rust-cgl" ,rust-cgl-0.2)
-        ("rust-cocoa" ,rust-cocoa-0.18)
-        ("rust-core-foundation" ,rust-core-foundation-0.6)
-        ("rust-core-graphics" ,rust-core-graphics-0.17)
-        ("rust-glutin-egl-sys" ,rust-glutin-egl-sys-0.1)
-        ("rust-glutin-emscripten-sys" ,rust-glutin-emscripten-sys-0.1)
-        ("rust-glutin-gles2-sys" ,rust-glutin-gles2-sys-0.1)
-        ("rust-glutin-glx-sys" ,rust-glutin-glx-sys-0.1)
-        ("rust-glutin-wgl-sys" ,rust-glutin-wgl-sys-0.1)
-        ("rust-lazy-static" ,rust-lazy-static-1)
-        ("rust-libloading" ,rust-libloading-0.5)
-        ("rust-objc" ,rust-objc-0.2)
-        ("rust-osmesa-sys" ,rust-osmesa-sys-0.1)
-        ("rust-parking-lot" ,rust-parking-lot-0.9)
-        ("rust-wayland-client" ,rust-wayland-client-0.21)
-        ("rust-winapi" ,rust-winapi-0.3)
-        ("rust-winit" ,rust-winit-0.19))))))
-
-(define-public rust-glutin-egl-sys-0.1
-  (package
-    (name "rust-glutin-egl-sys")
-    (version "0.1.4")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "glutin-egl-sys" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32
-         "0k1x1frdp4wp47qkai8zzmgqxzpfcn7780m29qgd92lbnbrxwbkp"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:cargo-inputs
-       (("rust-winapi" ,rust-winapi-0.3)
-        ("rust-gl-generator" ,rust-gl-generator-0.13))))
-    (home-page "https://github.com/rust-windowing/glutin")
-    (synopsis "Egl bindings for glutin")
-    (description "The egl bindings for glutin.")
-    (license license:asl2.0)))
-
-(define-public rust-glutin-emscripten-sys-0.1
-  (package
-    (name "rust-glutin-emscripten-sys")
-    (version "0.1.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "glutin_emscripten_sys" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32
-         "1ix0jmm8p5if4qarzdfl5mz9rbq4hhgqarakb3bzwvyz13dkynr4"))))
-    (build-system cargo-build-system)
-    (home-page "https://github.com/tomaka/glutin")
-    (synopsis "Emscripten bindings for glutin")
-    (description "The emscripten bindings for glutin.")
-    (license license:asl2.0)))
-
-(define-public rust-glutin-gles2-sys-0.1
-  (package
-    (name "rust-glutin-gles2-sys")
-    (version "0.1.3")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "glutin_gles2_sys" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32
-         "1pswvl5zyqmqwzjr674yzslj0al2xbqsp2ai9ggb9qbshlq6r6c9"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:cargo-inputs
-       (("rust-objc" ,rust-objc-0.2)
-        ("rust-gl-generator" ,rust-gl-generator-0.11))))
-    (home-page "https://github.com/tomaka/glutin")
-    (synopsis "The gles2 bindings for glutin")
-    (description "The gles2 bindings for glutin.")
-    (license license:asl2.0)))
-
-(define-public rust-glutin-glx-sys-0.1
+(define-public rust-globwalk-0.5
   (package
-    (name "rust-glutin-glx-sys")
-    (version "0.1.5")
+    (inherit rust-globwalk-0.8)
+    (name "rust-globwalk")
+    (version "0.5.0")
     (source
      (origin
        (method url-fetch)
-       (uri (crate-uri "glutin-glx-sys" version))
+       (uri (crate-uri "globwalk" version))
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0mxs3mil68xqqb49466n5rpwpcllj6fwqjgrcrzzmz26bv5ab40j"))))
-    (build-system cargo-build-system)
+         "09axyql26s09z60sgi3y3lkin9swy2b5km3b0v6mm84xhlljxyl9"))))
     (arguments
      `(#:cargo-inputs
-       (("rust-x11-dl" ,rust-x11-dl-2)
-        ("rust-gl-generator" ,rust-gl-generator-0.11))))
-    (home-page "https://github.com/tomaka/glutin")
-    (synopsis "Glx bindings for glutin")
-    (description "The glx bindings for glutin.")
-    (license license:asl2.0)))
+       (("rust-ignore" ,rust-ignore-0.4)
+        ("rust-walkdir" ,rust-walkdir-2))
+       #:cargo-development-inputs
+       (("rust-docmatic" ,rust-docmatic-0.1)
+        ("rust-tempdir" ,rust-tempdir-0.3))))))
 
-(define-public rust-glutin-wgl-sys-0.1
+(define-public rust-gloo-timers-0.2
   (package
-    (name "rust-glutin-wgl-sys")
-    (version "0.1.3")
+    (name "rust-gloo-timers")
+    (version "0.2.1")
     (source
      (origin
        (method url-fetch)
-       (uri (crate-uri "glutin-wgl-sys" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
+       (uri (crate-uri "gloo-timers" version))
+       (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32
-         "08chlfzpj59q36qm212i4k879gvjzha7i90q90fds8pw3v4vn0gq"))))
+        (base32 "07w999jm1r1i8r574qbmsa3l4w3gxhyx04cbllg0m4pzm934l827"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-gl-generator" ,rust-gl-generator-0.11))))
-    (home-page "https://github.com/tomaka/glutin")
-    (synopsis "Wgl bindings for glutin")
-    (description "The wgl bindings for glutin.")
-    (license license:asl2.0)))
-
-(define-public rust-gobject-sys-0.9
-  (package
-    (name "rust-gobject-sys")
-    (version "0.9.1")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "gobject-sys" version))
-        (file-name
-         (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32
-          "1nakflbp3gjaas4fw7sn3p1p32khyfpcq1h06z7yqd10yq2ail9i"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:tests? #f      ; Some test libraries not included in release.
-       #:cargo-inputs
-       (("rust-glib-sys" ,rust-glib-sys-0.9)
-        ("rust-libc" ,rust-libc-0.2)
-        ("rust-pkg-config" ,rust-pkg-config-0.3))
+       (("rust-futures-channel" ,rust-futures-channel-0.3)
+        ("rust-futures-core" ,rust-futures-core-0.3)
+        ("rust-js-sys" ,rust-js-sys-0.3)
+        ("rust-wasm-bindgen" ,rust-wasm-bindgen-0.2)
+        ("rust-web-sys" ,rust-web-sys-0.3))
        #:cargo-development-inputs
-       (("rust-shell-words" ,rust-shell-words-0.1)
-        ("rust-tempfile" ,rust-tempfile-3))))
-    (inputs
-     `(("glib" ,glib)))
-    (home-page "http://gtk-rs.org/")
-    (synopsis "FFI bindings to libgobject-2.0")
-    (description "This package provides FFI bindings to libgobject-2.0.")
-    (license license:expat)))
+       (("rust-futures-util" ,rust-futures-util-0.3)
+        ("rust-wasm-bindgen-futures" ,rust-wasm-bindgen-futures-0.4)
+        ("rust-wasm-bindgen-test" ,rust-wasm-bindgen-test-0.3))))
+    (home-page "https://github.com/rustwasm/gloo")
+    (synopsis "Convenience crate for working with JavaScript timers")
+    (description
+     "This package is a convenience crate for working with JavaScript
+timers.")
+    (license (list license:expat license:asl2.0))))
 
 (define-public rust-goblin-0.2
   (package
@@ -10042,7 +14178,7 @@ loading crate.")
         ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-log" ,rust-log-0.4)
         ("rust-regex" ,rust-regex-1)
-        ("rust-same-file" ,rust-same-file-1.0)
+        ("rust-same-file" ,rust-same-file-1)
         ("rust-termcolor" ,rust-termcolor-1)
         ("rust-winapi-util" ,rust-winapi-util-0.1))))
     (home-page
@@ -10162,7 +14298,7 @@ standard printing of search results, similar to grep itself.")
         ("rust-log" ,rust-log-0.4)
         ("rust-regex" ,rust-regex-1)
         ("rust-regex-syntax" ,rust-regex-syntax-0.6)
-        ("rust-thread-local" ,rust-thread-local-1.0))))
+        ("rust-thread-local" ,rust-thread-local-1))))
     (home-page "https://github.com/BurntSushi/ripgrep")
     (synopsis "Use Rust's regex library with the grep crate")
     (description
@@ -10201,29 +14337,6 @@ standard printing of search results, similar to grep itself.")
      "Fast line oriented regex searching as a library.")
     (license (list license:unlicense license:expat))))
 
-(define-public rust-gtk-rs-lgpl-docs-0.1
-  (package
-    (name "rust-gtk-rs-lgpl-docs")
-    (version "0.1.15")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "gtk-rs-lgpl-docs" version))
-        (file-name
-         (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32
-          "06b1j64zg0xmhwfkyhzh3y0apclg6qihn3f7s1bd7kgjmkia4jlr"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:cargo-inputs
-       (("rust-rustdoc-stripper" ,rust-rustdoc-stripper-0.1))))
-    (home-page "https://gtk-rs.org/")
-    (synopsis "LGPL-licensed docs for Gtk-rs crates")
-    (description
-     "LGPL-licensed docs for Gtk-rs crates.")
-    (license license:lgpl2.0)))
-
 (define-public rust-gzip-header-0.3
   (package
     (name "rust-gzip-header")
@@ -10240,7 +14353,7 @@ standard printing of search results, similar to grep itself.")
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-crc32fast" ,rust-crc32fast-1.2))))
+       (("rust-crc32fast" ,rust-crc32fast-1))))
     (home-page "https://github.com/oyvindln/gzip-header")
     (synopsis "Decoding and encoding the header part of gzip files")
     (description
@@ -10248,8 +14361,53 @@ standard printing of search results, similar to grep itself.")
 of gzip files based on the gzip header implementation in the @code{flate2} crate.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-h2-0.2
+  (package
+    (name "rust-h2")
+    (version "0.2.6")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "h2" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0lvdrzn43iikl521dlrb7z96lsmy7l6nnm35ylf00q7dmq5rwgwr"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bytes" ,rust-bytes-0.5)
+        ("rust-fnv" ,rust-fnv-1)
+        ("rust-futures-core" ,rust-futures-core-0.3)
+        ("rust-futures-sink" ,rust-futures-sink-0.3)
+        ("rust-futures-util" ,rust-futures-util-0.3)
+        ("rust-http" ,rust-http-0.2)
+        ("rust-indexmap" ,rust-indexmap-1)
+        ("rust-slab" ,rust-slab-0.4)
+        ("rust-tokio" ,rust-tokio-0.2)
+        ("rust-tokio-util" ,rust-tokio-util-0.3)
+        ("rust-tracing" ,rust-tracing-0.1))
+       #:cargo-development-inputs
+       (("rust-env-logger" ,rust-env-logger-0.5)
+        ("rust-hex" ,rust-hex-0.2)
+        ("rust-quickcheck" ,rust-quickcheck-0.4)
+        ("rust-rand" ,rust-rand-0.3)
+        ("rust-rustls" ,rust-rustls-0.16)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-tokio" ,rust-tokio-0.2)
+        ("rust-tokio-rustls" ,rust-tokio-rustls-0.12)
+        ("rust-walkdir" ,rust-walkdir-1)
+        ("rust-webpki" ,rust-webpki-0.21)
+        ("rust-webpki-roots" ,rust-webpki-roots-0.17))))
+    (home-page "https://github.com/hyperium/h2")
+    (synopsis "HTTP/2.0 client and server")
+    (description "This package provides an HTTP/2.0 client and server.")
+    (license license:expat)))
+
 (define-public rust-h2-0.1
   (package
+    (inherit rust-h2-0.2)
     (name "rust-h2")
     (version "0.1.26")
     (source
@@ -10259,11 +14417,10 @@ of gzip files based on the gzip header implementation in the @code{flate2} crate
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "0qn457y8xh03p7c7cpk76r22gqpyqxc58g5022j3iya7d0j4rcx5"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t ;; TODO missing indirect dependency
        #:cargo-inputs
-       (("rust-byteorder" ,rust-byteorder-1.3)
+       (("rust-byteorder" ,rust-byteorder-1)
         ("rust-bytes" ,rust-bytes-0.4)
         ("rust-fnv" ,rust-fnv-1)
         ("rust-futures" ,rust-futures-0.1)
@@ -10285,16 +14442,12 @@ of gzip files based on the gzip header implementation in the @code{flate2} crate
         ("rust-tokio-rustls" ,rust-tokio-rustls-0.12)
         ("rust-walkdir" ,rust-walkdir-1)
         ("rust-webpki" ,rust-webpki-0.21)
-        ("rust-webpki-roots" ,rust-webpki-roots-0.17))))
-    (home-page "https://github.com/hyperium/h2")
-    (synopsis "HTTP/2.0 client and server")
-    (description "This packages provides a HTTP/2.0 client and server.")
-    (license license:expat)))
+        ("rust-webpki-roots" ,rust-webpki-roots-0.17))))))
 
-(define-public rust-half-1.3
+(define-public rust-half-1
   (package
     (name "rust-half")
-    (version "1.3.0")
+    (version "1.6.0")
     (source
      (origin
        (method url-fetch)
@@ -10303,11 +14456,17 @@ of gzip files based on the gzip header implementation in the @code{flate2} crate
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0diqajg3mgar511hxswl4kgqqz9a026yvn3103x5h2smknlc4lwk"))))
+         "0xq1qkbfwnxv72b2fakgi5ai0j8arw38whwxgxs3rp1fz28anvyk"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs (("rust-serde" ,rust-serde-1))))
+     `(#:cargo-inputs
+       (("rust-serde" ,rust-serde-1))
+       #:cargo-development-inputs
+       (("rust-criterion" ,rust-criterion-0.3)
+        ("rust-quickcheck" ,rust-quickcheck-0.9)
+        ("rust-quickcheck-macros" ,rust-quickcheck-macros-0.9)
+        ("rust-rand" ,rust-rand-0.7)
+        ("rust-version-sync" ,rust-version-sync-0.8))))
     (home-page "https://github.com/starkat99/half-rs")
     (synopsis "Half-precision floating point f16 type")
     (description
@@ -10334,8 +14493,8 @@ IEEE 754-2008 binary16 type.")
        #:cargo-inputs
         (("rust-hashbrown" ,rust-hashbrown-0.5)
          ("rust-log" ,rust-log-0.4)
-         ("rust-pest" ,rust-pest-2.1)
-         ("rust-pest-derive" ,rust-pest-derive-2.1)
+         ("rust-pest" ,rust-pest-2)
+         ("rust-pest-derive" ,rust-pest-derive-2)
          ("rust-quick-error" ,rust-quick-error-1.2)
          ("rust-serde" ,rust-serde-1)
          ("rust-serde-json" ,rust-serde-json-1)
@@ -10353,8 +14512,144 @@ IEEE 754-2008 binary16 type.")
 the template engine that renders the official Rust website")
     (license license:expat)))
 
+(define-public rust-handlegraph-0.3
+  (package
+    (name "rust-handlegraph")
+    (version "0.3.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "handlegraph" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1sj100w4lpj7798pws85qrfrzsily5hhzh6j118rwf56sgic1yml"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bstr" ,rust-bstr-0.2)
+        ("rust-gfa" ,rust-gfa-0.6))))
+    (home-page "https://github.com/chfi/rs-handlegraph")
+    (synopsis "Library for use in variation graphs")
+    (description
+     "This package provides a Rust implementation of VG handle graph.")
+    (license license:expat)))
+
+(define-public rust-hash32-0.1
+  (package
+    (name "rust-hash32")
+    (version "0.1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "hash32" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1k7lv7hsbzv14pz90cxay6v7avh6d6kcrra0rsc45b33dvw1l16l"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-byteorder" ,rust-byteorder-1))
+       #:cargo-development-inputs
+       (("rust-hash32-derive" ,rust-hash32-derive-0.1))))
+    (home-page "https://github.com/japaric/hash32")
+    (synopsis "32-bit hashing machinery")
+    (description "This package provides 32-bit hashing machinery.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-hash32-derive-0.1
+  (package
+    (name "rust-hash32-derive")
+    (version "0.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "hash32-derive" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "18lrlxycq45kaz0l688shxnhgh3ryjp3zn0n6vfcs5sa2nyyzh7b"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-proc-macro2" ,rust-proc-macro2-0.3)
+        ("rust-quote" ,rust-quote-0.5)
+        ("rust-syn" ,rust-syn-0.13))))
+    (home-page "https://github.com/japaric/hash32")
+    (synopsis "Macros 1.1 implementation of @code{#[derive(Hash32)]}")
+    (description "This package provides a macros 1.1 implementation of
+@code{#[derive(Hash32)]}.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-hashbrown-0.9
+  (package
+    (name "rust-hashbrown")
+    (version "0.9.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "hashbrown" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "016dsm9s4xmxlkw2jfikm54qlz6vyk0qr280gab7kzp342jf9byp"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-ahash" ,rust-ahash-0.4)
+        ("rust-compiler-builtins" ,rust-compiler-builtins-0.1)
+        ("rust-rayon" ,rust-rayon-1)
+        ("rust-rustc-std-workspace-alloc" ,rust-rustc-std-workspace-alloc-1)
+        ("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1)
+        ("rust-serde" ,rust-serde-1))
+       #:cargo-development-inputs
+       (("rust-doc-comment" ,rust-doc-comment-0.3)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-rand" ,rust-rand-0.7)
+        ("rust-rayon" ,rust-rayon-1)
+        ("rust-rustc-hash" ,rust-rustc-hash-1.0)
+        ("rust-serde-test" ,rust-serde-test-1))))
+    (home-page "https://github.com/rust-lang/hashbrown")
+    (synopsis "Rust port of Google's SwissTable hash map")
+    (description "This package provides a Rust port of Google's SwissTable
+hash map.")
+    (license (list license:asl2.0 license:expat))))
+
+(define-public rust-hashbrown-0.8
+  (package
+    (inherit rust-hashbrown-0.9)
+    (name "rust-hashbrown")
+    (version "0.8.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "hashbrown" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "09y86zmf59n6ys9yf2bvg9ckwwa1ijv2i3flkz45iqkwfmh7i6xb"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-ahash" ,rust-ahash-0.3)
+        ("rust-compiler-builtins" ,rust-compiler-builtins-0.1)
+        ("rust-rayon" ,rust-rayon-1)
+        ("rust-rustc-std-workspace-alloc" ,rust-rustc-std-workspace-alloc-1)
+        ("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1)
+        ("rust-serde" ,rust-serde-1))
+       #:cargo-development-inputs
+       (("rust-doc-comment" ,rust-doc-comment-0.3)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-rand" ,rust-rand-0.7)
+        ("rust-rayon" ,rust-rayon-1)
+        ("rust-rustc-hash" ,rust-rustc-hash-1.0)
+        ("rust-serde-test" ,rust-serde-test-1))))))
+
 (define-public rust-hashbrown-0.5
   (package
+    (inherit rust-hashbrown-0.8)
     (name "rust-hashbrown")
     (version "0.5.0")
     (source
@@ -10366,39 +14661,169 @@ the template engine that renders the official Rust website")
        (sha256
         (base32
          "0lr3gsicplw7czapsscmii87hgzpvxf5ch92v7pi95xsipxl3pp1"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-compiler-builtins" ,rust-compiler-builtins-0.1)
         ("rust-rayon" ,rust-rayon-1)
-        ("rust-rustc-std-workspace-alloc" ,rust-rustc-std-workspace-alloc-1.0)
-        ("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1.0)
+        ("rust-rustc-std-workspace-alloc" ,rust-rustc-std-workspace-alloc-1)
+        ("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1)
         ("rust-serde" ,rust-serde-1))
        #:cargo-development-inputs
        (("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-rand" ,rust-rand-0.5)
         ("rust-rayon" ,rust-rayon-1)
-        ("rust-rustc-hash" ,rust-rustc-hash-1.1)
-        ("rust-serde-test" ,rust-serde-test-1))))
-    (home-page "https://github.com/rust-lang/hashbrown")
-    (synopsis "Rust port of Google's SwissTable hash map")
-    (description
-     "This package provides a Rust port of Google's SwissTable hash map.")
-    (license (list license:asl2.0 license:expat))))
+        ("rust-rustc-hash" ,rust-rustc-hash-1)
+        ("rust-serde-test" ,rust-serde-test-1))))))
+
+(define-public rust-hashbrown-0.1
+  (package
+    (inherit rust-hashbrown-0.5)
+    (name "rust-hashbrown")
+    (version "0.1.8")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "hashbrown" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1np350nrzysy021ndn2135q5vpzrp5nli78ywz114d1vcnv2kbiv"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin
+           (substitute* "Cargo.toml"
+             (("~1.2") "1.2"))
+           #t))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-byteorder" ,rust-byteorder-1)
+        ("rust-rayon" ,rust-rayon-1)
+        ("rust-scopeguard" ,rust-scopeguard-0.3)
+        ("rust-serde" ,rust-serde-1))
+       #:cargo-development-inputs
+       (("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-rand" ,rust-rand-0.5)
+        ("rust-rayon" ,rust-rayon-1)
+        ("rust-rustc-hash" ,rust-rustc-hash-1)
+        ("rust-serde-test" ,rust-serde-test-1))))))
+
+(define-public rust-hashlink-0.6
+  (package
+    (name "rust-hashlink")
+    (version "0.6.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "hashlink" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1a2gi4737lmqq1i48b9w13gvbkh4g3gc7gj6d3974hywy21gg76r"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-hashbrown" ,rust-hashbrown-0.9)
+        ("rust-serde" ,rust-serde-1))
+       #:cargo-development-inputs
+       (("rust-serde-test" ,rust-serde-test-1))))
+    (home-page "https://crates.io/crates/hashlink")
+    (synopsis "HashMap-like containers with user controllable order")
+    (description "This package provides HashMap-like containers that hold
+their key-value pairs in a user controllable order.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-headers-0.2
+  (package
+    (name "rust-headers")
+    (version "0.2.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "headers" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0hmnrra00cjqpsn05klnr9cysrv2bm19akxl5lncwcrgfbcafb48"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-base64" ,rust-base64-0.10)
+        ("rust-bitflags" ,rust-bitflags-1)
+        ("rust-bytes" ,rust-bytes-0.4)
+        ("rust-headers-core" ,rust-headers-core-0.1)
+        ("rust-http" ,rust-http-0.1)
+        ("rust-mime" ,rust-mime-0.3)
+        ("rust-sha-1" ,rust-sha-1-0.8)
+        ("rust-time" ,rust-time-0.1))))
+    (home-page "https://hyper.rs")
+    (synopsis "typed HTTP headers")
+    (description "This package provides typed HTTP headers.")
+    (license license:expat)))
+
+(define-public rust-headers-core-0.1
+  (package
+    (name "rust-headers-core")
+    (version "0.1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "headers-core" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0ds20kg0igncs2r0jrcf26mq72k3j6ilanr0qwh7r7xak8kk2wcn"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bytes" ,rust-bytes-0.4)
+        ("rust-http" ,rust-http-0.1))))
+    (home-page "https://hyper.rs")
+    (synopsis "Typed HTTP headers core trait")
+    (description "This package provides typed HTTP headers core trait.")
+    (license license:expat)))
+
+(define-public rust-heapless-0.5
+  (package
+    (name "rust-heapless")
+    (version "0.5.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "heapless" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1h1d6s1f9zn0rz2vkdn0b42kcnkmlpd90yhfyqqhpirv38ws5a3k"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-as-slice" ,rust-as-slice-0.1)
+        ("rust-generic-array" ,rust-generic-array-0.13)
+        ("rust-hash32" ,rust-hash32-0.1)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-stable-deref-trait" ,rust-stable-deref-trait-1)
+        ("rust-ufmt-write" ,rust-ufmt-write-0.1))
+       #:cargo-development-inputs
+       (("rust-scoped-threadpool" ,rust-scoped-threadpool-0.1)
+        ("rust-ufmt" ,rust-ufmt-0.1))))
+    (home-page "https://github.com/japaric/heapless")
+    (synopsis "@code{statice} friendly data structures")
+    (description "This package provides @code{static} friendly data structures
+that don't require dynamic memory allocation.")
+    (license (list license:expat license:asl2.0))))
 
 (define-public rust-heapsize-0.4
   (package
     (name "rust-heapsize")
     (version "0.4.2")
     (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "heapsize" version))
-        (file-name (string-append name "-" version ".crate"))
-        (sha256
-         (base32
-          "0q94q9ppqjgrw71swiyia4hgby2cz6dldp7ij57nkvhd6zmfcy8n"))))
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "heapsize" version))
+       (file-name (string-append name "-" version ".crate"))
+       (sha256
+        (base32
+         "0q94q9ppqjgrw71swiyia4hgby2cz6dldp7ij57nkvhd6zmfcy8n"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -10468,7 +14893,7 @@ total runtime size of an object on the heap")
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
-       (("rust-unicode-segmentation" ,rust-unicode-segmentation-1.3))))
+       (("rust-unicode-segmentation" ,rust-unicode-segmentation-1))))
     (home-page "https://github.com/withoutboats/heck")
     (synopsis "Case conversion library")
     (description
@@ -10497,7 +14922,7 @@ consistent, and reasonably well performing.")
        #:cargo-inputs
         (("rust-compiler-builtins" ,rust-compiler-builtins-0.1)
          ("rust-libc" ,rust-libc-0.2)
-         ("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1.0))))
+         ("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1))))
     (home-page "https://github.com/hermitcore/rusty-hermit")
     (synopsis "Small interface to call functions from RustyHermit")
     (description
@@ -10508,16 +14933,14 @@ It is used to build the target x86_64-unknown-hermit.")
 (define-public rust-hex-0.4
   (package
     (name "rust-hex")
-    (version "0.4.0")
+    (version "0.4.2")
     (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "hex" version))
-        (file-name
-          (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32
-          "0glsfrx2pxfsf6ivxj7vfrvd7g78j4z47ssgm5idm8p376z3jfq2"))))
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "hex" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0dbf00j3h3pz0lw8jp245rwypna6i23l4cpvym8gsczin9c92kv4"))))
     (build-system cargo-build-system)
     (arguments '(#:skip-build? #t))
     (home-page "https://github.com/KokaKiwi/rust-hex")
@@ -10640,6 +15063,35 @@ compile time.")
      `(#:cargo-inputs
        (("rust-proc-macro-hack" ,rust-proc-macro-hack-0.4))))))
 
+(define-public rust-hkdf-0.9
+  (package
+    (name "rust-hkdf")
+    (version "0.9.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "hkdf" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1jdvmf8aadk3s0kn9kk3dj00nprjk9glks5f8dm55r43af34j4gy"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-digest" ,rust-digest-0.9)
+        ("rust-hmac" ,rust-hmac-0.8))
+       #:cargo-development-inputs
+       (("rust-bencher" ,rust-bencher-0.1)
+        ("rust-crypto-tests" ,rust-crypto-tests-0.5)
+        ("rust-hex" ,rust-hex-0.4)
+        ("rust-sha-1" ,rust-sha-1-0.9)
+        ("rust-sha2" ,rust-sha2-0.9))))
+    (home-page "https://github.com/RustCrypto/KDFs/")
+    (synopsis "HMAC-based Extract-and-Expand Key Derivation Function (HKDF)")
+    (description "This package provides a HMAC-based Extract-and-Expand Key
+Derivation Function (HKDF).")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-hmac-0.8
   (package
     (name "rust-hmac")
@@ -10817,7 +15269,7 @@ Hash-based Message Authentication Code}.")
         ("rust-indexmap" ,rust-indexmap-1)
         ("rust-quickcheck" ,rust-quickcheck-0.9)
         ("rust-rand" ,rust-rand-0.7)
-        ("rust-seahash" ,rust-seahash-3.0)
+        ("rust-seahash" ,rust-seahash-3)
         ("rust-serde" ,rust-serde-1)
         ("rust-serde-json" ,rust-serde-json-1))))
     (home-page "https://github.com/hyperium/http")
@@ -10848,7 +15300,7 @@ requests and responses.")
        (("rust-indexmap" ,rust-indexmap-1)
         ("rust-quickcheck" ,rust-quickcheck-0.6)
         ("rust-rand" ,rust-rand-0.4)
-        ("rust-seahash" ,rust-seahash-3.0)
+        ("rust-seahash" ,rust-seahash-3)
         ("rust-serde" ,rust-serde-1)
         ("rust-serde-json" ,rust-serde-json-1))))))
 
@@ -10920,10 +15372,10 @@ or response body.")
      "Simple and lightweight HTTP client with built-in HTTPS support.")
     (license license:expat)))
 
-(define-public rust-httparse-1.3
+(define-public rust-httparse-1
   (package
     (name "rust-httparse")
-    (version "1.3.3")
+    (version "1.3.4")
     (source
      (origin
        (method url-fetch)
@@ -10932,11 +15384,10 @@ or response body.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "10vsfx1b8drhif08fbi0ha9d3v1f3h80w42rxh0y3hrvzl64nwz8"))))
+         "1yf23ldnjwfkkhkca7f4w15mky9961gjz28dlwyybhphc7l9l5yd"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-development-inputs
+     `(#:cargo-development-inputs
        (("rust-pico-sys" ,rust-pico-sys-0.0))))
     (home-page "https://github.com/seanmonstar/httparse")
     (synopsis "Zero-copy HTTP/1.x parser")
@@ -10944,6 +15395,25 @@ or response body.")
      "This package provides a tiny, safe, speedy, zero-copy HTTP/1.x parser.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-humansize-1
+  (package
+    (name "rust-humansize")
+    (version "1.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "humansize" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0piadmwjah1jv6q288im4za9szlgalzjyq2811w35i6gg9ib5jmn"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/LeopoldArkham/humansize")
+    (synopsis "Represent file sizes in a human-readable format")
+    (description "This package provides a configurable crate to easily
+represent file sizes in a human-readable format.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-humantime-2
   (package
     (name "rust-humantime")
@@ -10994,8 +15464,59 @@ SystemTime}}.")
         ("rust-rand" ,rust-rand-0.4)
         ("rust-time" ,rust-time-0.1))))))
 
+(define-public rust-hyper-0.13
+  (package
+    (name "rust-hyper")
+    (version "0.13.7")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "hyper" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1symcnba2y03b8lj6xp2wd994lk3xyk3wizacjg5s60njzfshs1y"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bytes" ,rust-bytes-0.5)
+        ("rust-futures-channel" ,rust-futures-channel-0.3)
+        ("rust-futures-core" ,rust-futures-core-0.3)
+        ("rust-futures-util" ,rust-futures-util-0.3)
+        ("rust-h2" ,rust-h2-0.2)
+        ("rust-http" ,rust-http-0.2)
+        ("rust-http-body" ,rust-http-body-0.3)
+        ("rust-httparse" ,rust-httparse-1)
+        ("rust-itoa" ,rust-itoa-0.4)
+        ("rust-pin-project" ,rust-pin-project-0.4)
+        ("rust-socket2" ,rust-socket2-0.3)
+        ("rust-time" ,rust-time-0.1)
+        ("rust-tokio" ,rust-tokio-0.2)
+        ("rust-tower-service" ,rust-tower-service-0.3)
+        ("rust-tracing" ,rust-tracing-0.1)
+        ("rust-want" ,rust-want-0.3))
+       #:cargo-development-inputs
+       (("rust-futures-util" ,rust-futures-util-0.3)
+        ("rust-matches" ,rust-matches-0.1)
+        ("rust-num-cpus" ,rust-num-cpus-1)
+        ("rust-pretty-env-logger" ,rust-pretty-env-logger-0.4)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-derive" ,rust-serde-derive-1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-spmc" ,rust-spmc-0.3)
+        ("rust-tokio" ,rust-tokio-0.2)
+        ("rust-tokio-test" ,rust-tokio-test-0.2)
+        ("rust-tokio-util" ,rust-tokio-util-0.3)
+        ("rust-tower-util" ,rust-tower-util-0.3)
+        ("rust-url" ,rust-url-1))))
+    (home-page "https://hyper.rs")
+    (synopsis "Fast and correct HTTP library.")
+    (description "This package provides a fast and correct HTTP library.")
+    (license license:expat)))
+
 (define-public rust-hyper-0.12
   (package
+    (inherit rust-hyper-0.13)
     (name "rust-hyper")
     (version "0.12.35")
     (source
@@ -11005,7 +15526,6 @@ SystemTime}}.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "1xnm8zi4bdjqhlnx3238kx8yjf29jjd1ww54apcql7wf8g8nxglx"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t ;; fails due to some missing example file
        #:cargo-inputs
@@ -11015,7 +15535,7 @@ SystemTime}}.")
         ("rust-h2" ,rust-h2-0.1)
         ("rust-http" ,rust-http-0.1)
         ("rust-http-body" ,rust-http-body-0.1)
-        ("rust-httparse" ,rust-httparse-1.3)
+        ("rust-httparse" ,rust-httparse-1)
         ("rust-iovec" ,rust-iovec-0.1)
         ("rust-itoa" ,rust-itoa-0.4)
         ("rust-log" ,rust-log-0.4)
@@ -11041,23 +15561,115 @@ SystemTime}}.")
         ("rust-spmc" ,rust-spmc-0.3)
         ("rust-tokio-fs" ,rust-tokio-fs-0.1)
         ("rust-tokio-mockstream" ,rust-tokio-mockstream-1)
-        ("rust-url" ,rust-url-1.7))))
+        ("rust-url" ,rust-url-1))))))
+
+(define-public rust-hyper-old-types-0.11
+  (package
+    (name "rust-hyper-old-types")
+    (version "0.11.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "hyper-old-types" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1i69sks0bwamzqdbx8ffgkssxffv6crdmwjgl47nr5pkxi8vx5k8"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f ; Tests do not compile
+       #:cargo-inputs
+       (("rust-base64" ,rust-base64-0.9)
+        ("rust-bytes" ,rust-bytes-0.4)
+        ("rust-http" ,rust-http-0.1)
+        ("rust-httparse" ,rust-httparse-1)
+        ("rust-language-tags" ,rust-language-tags-0.2)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-mime" ,rust-mime-0.3)
+        ("rust-percent-encoding" ,rust-percent-encoding-1.0)
+        ("rust-time" ,rust-time-0.1)
+        ("rust-unicase" ,rust-unicase-2))))
     (home-page "https://hyper.rs")
-    (synopsis "Fast and correct HTTP library")
-    (description "This package provides a fast and correct HTTP library.")
-    (license license:expat)) )
+    (synopsis "HTTP types from hyper 0.11.x")
+    (description
+     "This package contains HTTP types from the newer hyper crate in versions
+0.11.x.")
+    (license license:expat)))
 
-(define-public rust-hyper-tls-0.3
+(define-public rust-hyper-rustls-0.21
+  (package
+    (name "rust-hyper-rustls")
+    (version "0.21.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "hyper-rustls" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1dmbj15fx6qyg26hji2jm7q9y383090jy3z9zjn5xs4f7v43qx1p"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bytes" ,rust-bytes-0.5)
+        ("rust-ct-logs" ,rust-ct-logs-0.7)
+        ("rust-futures-util" ,rust-futures-util-0.3)
+        ("rust-hyper" ,rust-hyper-0.13)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-rustls" ,rust-rustls-0.18)
+        ("rust-rustls-native-certs" ,rust-rustls-native-certs-0.4)
+        ("rust-tokio" ,rust-tokio-0.2)
+        ("rust-tokio-rustls" ,rust-tokio-rustls-0.14)
+        ("rust-webpki" ,rust-webpki-0.21)
+        ("rust-webpki-roots" ,rust-webpki-roots-0.20))
+       #:cargo-development-inputs
+       (("rust-tokio" ,rust-tokio-0.2))))
+    (home-page "https://github.com/ctz/hyper-rustls")
+    (synopsis "Rustls+hyper integration for pure rust HTTPS")
+    (description "This package provides Rustls+hyper integration for pure rust
+HTTPS.")
+    (license
+     (list license:asl2.0 license:isc license:expat))))
+
+(define-public rust-hyper-rustls-0.17
+  (package
+    (inherit rust-hyper-rustls-0.21)
+    (name "rust-hyper-rustls")
+    (version "0.17.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "hyper-rustls" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0li9xkzmqd40dbjbl9g0nbf2ka9y0q538ififyd30zsavz3qb7bi"))))
+    (arguments
+     `(#:cargo-test-flags '("--release" "--" "--skip=server" "--skip=client"
+                            "--skip=custom_ca_store")
+       #:cargo-inputs
+       (("rust-bytes" ,rust-bytes-0.4)
+        ("rust-ct-logs" ,rust-ct-logs-0.6)
+        ("rust-futures" ,rust-futures-0.1)
+        ("rust-hyper" ,rust-hyper-0.12)
+        ("rust-rustls" ,rust-rustls-0.16)
+        ("rust-tokio-io" ,rust-tokio-io-0.1)
+        ("rust-tokio-rustls" ,rust-tokio-rustls-0.10)
+        ("rust-webpki" ,rust-webpki-0.21)
+        ("rust-webpki-roots" ,rust-webpki-roots-0.17))))))
+
+(define-public rust-hyper-tls-0.4
   (package
     (name "rust-hyper-tls")
-    (version "0.3.2")
+    (version "0.4.3")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "hyper-tls" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0kqp4sz8613j6nv375wfj3gh95ff4nb6a3rb1f2vbx0almm0v01s"))))
+        (base32
+         "1vcfyz7dxavf4brns15afmj5fxz88lbn05rrpbfqsnybdp2sqyfr"))))
     (build-system cargo-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
@@ -11065,17 +15677,40 @@ SystemTime}}.")
      `(("openssl" ,openssl)))
     (arguments
      `(#:cargo-inputs
+       (("rust-bytes" ,rust-bytes-0.5)
+        ("rust-hyper" ,rust-hyper-0.13)
+        ("rust-native-tls" ,rust-native-tls-0.2)
+        ("rust-tokio" ,rust-tokio-0.2)
+        ("rust-tokio-tls" ,rust-tokio-tls-0.3))
+       #:cargo-development-inputs
+       (("rust-tokio" ,rust-tokio-0.2))))
+    (home-page "https://hyper.rs")
+    (synopsis "Default TLS implementation for use with hyper")
+    (description "This package provides the default TLS implementation for use
+with hyper.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-hyper-tls-0.3
+  (package
+    (inherit rust-hyper-tls-0.4)
+    (name "rust-hyper-tls")
+    (version "0.3.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "hyper-tls" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0kqp4sz8613j6nv375wfj3gh95ff4nb6a3rb1f2vbx0almm0v01s"))))
+    (arguments
+     `(#:cargo-inputs
        (("rust-bytes" ,rust-bytes-0.4)
         ("rust-futures" ,rust-futures-0.1)
         ("rust-hyper" ,rust-hyper-0.12)
         ("rust-native-tls" ,rust-native-tls-0.2)
         ("rust-tokio-io" ,rust-tokio-io-0.1))
        #:cargo-development-inputs
-       (("rust-tokio" ,rust-tokio-0.1))))
-    (home-page "https://hyper.rs")
-    (synopsis "Default TLS implementation for use with hyper")
-    (description "Default TLS implementation for use with hyper")
-    (license (list license:expat license:asl2.0))))
+       (("rust-tokio" ,rust-tokio-0.1))))))
 
 (define-public rust-ident-case-1
   (package
@@ -11150,212 +15785,175 @@ SystemTime}}.")
        (("rust-rustc-serialize" ,rust-rustc-serialize-0.3)
         ("rust-rustc-test" ,rust-rustc-test-0.3))))))
 
+(define-public rust-if-chain-1
+  (package
+    (name "rust-if-chain")
+    (version "1.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "if_chain" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0zgcn31bahnsmsjc0cgk0cy38p8sfjs79yvi6rjs5zz5b5xhqdn3"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/lfairy/if_chain")
+    (synopsis "Macro for writing nested @code{if let} expressions")
+    (description "This package provides a macro for writing nested @code{if
+let} expressions.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-ignore-0.4
   (package
     (name "rust-ignore")
-    (version "0.4.16")
+    (version "0.4.17")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "ignore" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32
-         "0wpcv4qgfzcyzydhlqa2qr56j72fj1a66s11xzdji59898mbzp12"))))
+        (base32 "1347mxd0cwiidcl0qvixl7za524x5ds0izv8vjh2df0bqr2zp1xj"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-crossbeam-utils" ,rust-crossbeam-utils-0.7)
+       (("rust-crossbeam-utils" ,rust-crossbeam-utils-0.8)
         ("rust-globset" ,rust-globset-0.4)
         ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-log" ,rust-log-0.4)
         ("rust-memchr" ,rust-memchr-2)
         ("rust-regex" ,rust-regex-1)
-        ("rust-same-file" ,rust-same-file-1.0)
-        ("rust-thread-local" ,rust-thread-local-1.0)
+        ("rust-same-file" ,rust-same-file-1)
+        ("rust-thread-local" ,rust-thread-local-1)
         ("rust-walkdir" ,rust-walkdir-2)
         ("rust-winapi-util" ,rust-winapi-util-0.1))
        #:cargo-development-inputs
-       (("rust-crossbeam-channel" ,rust-crossbeam-channel-0.4))))
-    (home-page "https://github.com/BurntSushi/ripgrep/tree/master/ignore")
-    (synopsis "Efficiently match ignore files such as .gitignore")
+       (("rust-crossbeam-channel" ,rust-crossbeam-channel-0.5))))
+    (home-page "https://github.com/BurntSushi/ripgrep/tree/master/crates/ignore")
+    (synopsis "Efficiently match ignore files such as @file{.gitignore}")
     (description
      "This package provides a fast library for efficiently matching
-ignore files such as .gitignore against file paths.")
+ignore files such as @file{.gitignore} against file paths.")
     (license (list license:unlicense license:expat))))
 
-(define-public rust-image-0.23
+(define-public rust-indexmap-1
   (package
-    (name "rust-image")
-    (version "0.23.6")
+    (name "rust-indexmap")
+    (version "1.6.1")
     (source
       (origin
         (method url-fetch)
-        (uri (crate-uri "image" version))
+        (uri (crate-uri "indexmap" version))
         (file-name
          (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "1d2a80k7pwqshliqi5fw1dwkz7q9zd6pjnwpw8zxc1v4xhzmbc5m"))))
+          "0friqyzr4ssyayks7nirqbc36zcsf8fdi67jmvl4vpjh8a9zmcag"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:tests? #f      ; Some test images are missing from the release.
-       #:cargo-inputs
-       (("rust-bytemuck" ,rust-bytemuck-1)
-        ("rust-byteorder" ,rust-byteorder-1.3)
-        ("rust-gif" ,rust-gif-0.10)
-        ("rust-jpeg-decoder" ,rust-jpeg-decoder-0.1)
-        ("rust-num-iter" ,rust-num-iter-0.1)
-        ("rust-num-rational" ,rust-num-rational-0.3)
-        ("rust-num-traits" ,rust-num-traits-0.2)
-        ("rust-png" ,rust-png-0.16)
-        ("rust-scoped-threadpool" ,rust-scoped-threadpool-0.1)
-        ("rust-tiff" ,rust-tiff-0.5))
+     `(#:cargo-inputs
+       (("rust-autocfg" ,rust-autocfg-1)
+        ("rust-hashbrown" ,rust-hashbrown-0.9)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-rayon" ,rust-rayon-1))
        #:cargo-development-inputs
-       (("rust-crc32fast" ,rust-crc32fast-1.2)
-        ("rust-criterion" ,rust-criterion-0.3)
-        ("rust-glob" ,rust-glob-0.3)
-        ("rust-num-complex" ,rust-num-complex-0.3)
-        ("rust-quickcheck" ,rust-quickcheck-0.9))))
-    (home-page "https://github.com/image-rs/image")
-    (synopsis "Imaging library written in Rust")
+       (("rust-fnv" ,rust-fnv-1)
+        ("rust-fxhash" ,rust-fxhash-0.2)
+        ("rust-itertools" ,rust-itertools-0.9)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-quickcheck" ,rust-quickcheck-0.9)
+        ("rust-rand" ,rust-rand-0.7)
+        ("rust-serde-derive" ,rust-serde-derive-1))))
+    (home-page "https://github.com/bluss/indexmap")
+    (synopsis "Hash table with consistent order and fast iteration.")
     (description
-     "Imaging library written in Rust.  Provides basic filters and decoders
-for the most common image formats.")
-    (license license:expat)))
+     "This package provides a hash table with consistent order and fast iteration.
+
+The indexmap is a hash table where the iteration order of the key-value
+pairs is independent of the hash values of the keys.  It has the usual
+hash table functionality, it preserves insertion order except after
+removals, and it allows lookup of its elements by either hash table key
+or numerical index.  A corresponding hash set type is also provided.")
+    (license (list license:asl2.0 license:expat))))
 
-(define-public rust-image-0.22
+(define-public rust-indicatif-0.15
   (package
-    (inherit rust-image-0.23)
-    (name "rust-image")
-    (version "0.22.5")
+    (name "rust-indicatif")
+    (version "0.15.0")
     (source
      (origin
        (method url-fetch)
-       (uri (crate-uri "image" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
+       (uri (crate-uri "indicatif" version))
+       (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32
-         "0jpbd0p1q7xx6395ba9ikz2k4cfp26qczisa8m2v15w3hzd2mv88"))))
+        (base32 "1r4n50mclyi4c7b9c9mlma1rhchjamw71r3z8vgqcmp24mhvbakv"))))
+    (build-system cargo-build-system)
     (arguments
-     `(#:tests? #f      ; Some test images are missing from the release.
-       #:cargo-inputs
-       (("rust-byteorder" ,rust-byteorder-1.3)
-        ("rust-gif" ,rust-gif-0.10)
-        ("rust-jpeg-decoder" ,rust-jpeg-decoder-0.1)
-        ("rust-num-iter" ,rust-num-iter-0.1)
-        ("rust-num-rational" ,rust-num-rational-0.2)
-        ("rust-num-traits" ,rust-num-traits-0.2)
-        ("rust-png" ,rust-png-0.15)
-        ("rust-scoped-threadpool" ,rust-scoped-threadpool-0.1)
-        ("rust-tiff" ,rust-tiff-0.3))
+     `(#:cargo-inputs
+       (("rust-console" ,rust-console-0.13)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-number-prefix" ,rust-number-prefix-0.3)
+        ("rust-rayon" ,rust-rayon-1)
+        ("rust-regex" ,rust-regex-1)
+        ("rust-unicode-segmentation" ,rust-unicode-segmentation-1)
+        ("rust-unicode-width" ,rust-unicode-width-0.1))
        #:cargo-development-inputs
-       (("rust-crc32fast" ,rust-crc32fast-1.2)
-        ("rust-glob" ,rust-glob-0.3)
-        ("rust-num-complex" ,rust-num-complex-0.2)
-        ("rust-quickcheck" ,rust-quickcheck-0.9))))))
+       (("rust-rand" ,rust-rand-0.7)
+        ("rust-tokio" ,rust-tokio-0.2))))
+    (home-page "https://github.com/mitsuhiko/indicatif")
+    (synopsis "Progress bar and CLI reporting library for Rust")
+    (description
+     "This package provides a progress bar and CLI reporting library for
+Rust.")
+    (license license:expat)))
 
-(define-public rust-image-0.21
+(define-public rust-indoc-1
   (package
-    (inherit rust-image-0.22)
-    (name "rust-image")
-    (version "0.21.3")
+    (name "rust-indoc")
+    (version "1.0.3")
     (source
      (origin
        (method url-fetch)
-       (uri (crate-uri "image" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
+       (uri (crate-uri "indoc" version))
+       (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32
-         "1sv534xp8yyn7jj0q6yn2bgng1350f962g81sv8v7c6pgi31wdrm"))))
+        (base32 "0diih20xsxjb159nr0dq6jxnyhq7gg10dlsnh2siikphmvm5m9z5"))))
+    (build-system cargo-build-system)
     (arguments
-     `(#:cargo-inputs
-       (("rust-byteorder" ,rust-byteorder-1.3)
-        ("rust-gif" ,rust-gif-0.10)
-        ("rust-jpeg-decoder" ,rust-jpeg-decoder-0.1)
-        ("rust-lzw" ,rust-lzw-0.10)
-        ("rust-num-iter" ,rust-num-iter-0.1)
-        ("rust-num-rational" ,rust-num-rational-0.2)
-        ("rust-num-traits" ,rust-num-traits-0.2)
-        ("rust-png" ,rust-png-0.14)
-        ("rust-scoped-threadpool" ,rust-scoped-threadpool-0.1)
-        ("rust-tiff" ,rust-tiff-0.2))
+     `(#:skip-build? #true
+       #:cargo-inputs
+       (("rust-unindent" ,rust-unindent-0.1))
        #:cargo-development-inputs
-       (("rust-glob" ,rust-glob-0.3)
-        ("rust-num-complex" ,rust-num-complex-0.2)
-        ("rust-quickcheck" ,rust-quickcheck-0.6))))))
+       (("rust-rustversion" ,rust-rustversion-1)
+        ("rust-trybuild" ,rust-trybuild-1))))
+    (home-page "https://github.com/dtolnay/indoc")
+    (synopsis "Indented document literals for Rust")
+    (description
+     "This crate provides a procedural macro for indented string literals.
+The @code{indoc!()} macro takes a multiline string literal and un-indents it
+at compile time so the leftmost non-space character is in the first column.")
+    (license (list license:expat license:asl2.0))))
 
-(define-public rust-image-0.20
+(define-public rust-infer-0.2
   (package
-    (inherit rust-image-0.21)
-    (name "rust-image")
-    (version "0.20.1")
+    (name "rust-infer")
+    (version "0.2.3")
     (source
      (origin
        (method url-fetch)
-       (uri (crate-uri "image" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
+       (uri (crate-uri "infer" version))
+       (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32
-         "01058n0jcw25pq5shn7lkvywv8c28xsxb3nwwyb4r16ijm1mnrj4"))))
-    (arguments
-     `(#:cargo-inputs
-       (("rust-byteorder" ,rust-byteorder-1.3)
-        ("rust-gif" ,rust-gif-0.10)
-        ("rust-jpeg-decoder" ,rust-jpeg-decoder-0.1)
-        ("rust-lzw" ,rust-lzw-0.10)
-        ("rust-num-iter" ,rust-num-iter-0.1)
-        ("rust-num-rational" ,rust-num-rational-0.2)
-        ("rust-num-traits" ,rust-num-traits-0.2)
-        ("rust-png" ,rust-png-0.12)
-        ("rust-scoped-threadpool" ,rust-scoped-threadpool-0.1)
-        ("rust-tiff" ,rust-tiff-0.2))
-       #:cargo-development-inputs
-       (("rust-glob" ,rust-glob-0.2)
-        ("rust-num-complex" ,rust-num-complex-0.2)
-        ("rust-quickcheck" ,rust-quickcheck-0.6))))))
-
-(define-public rust-indexmap-1
-  (package
-    (name "rust-indexmap")
-    (version "1.4.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "indexmap" version))
-        (file-name
-         (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32
-          "1ziabh0lc4wwahv3qgv6aqckyydcrczpagpfp770jn5m2fqv5663"))))
+        (base32 "1b4ziqcv0d1wga5yfqf620dkgzijsdw3ylnzq61bfaxla2d85sb4"))))
     (build-system cargo-build-system)
-    (arguments
-     `(#:cargo-inputs
-       (("rust-autocfg" ,rust-autocfg-1.0)
-        ("rust-serde" ,rust-serde-1)
-        ("rust-rayon" ,rust-rayon-1))
-       #:cargo-development-inputs
-       (("rust-fnv" ,rust-fnv-1)
-        ("rust-itertools" ,rust-itertools-0.8)
-        ("rust-lazy-static" ,rust-lazy-static-1)
-        ("rust-quickcheck" ,rust-quickcheck-0.9)
-        ("rust-rand" ,rust-rand-0.7)
-        ("rust-serde-test" ,rust-serde-test-1))))
-    (home-page "https://github.com/bluss/indexmap")
-    (synopsis "Hash table with consistent order and fast iteration.")
+    (arguments `(#:tests? #false))      ;missing files
+    (home-page "https://github.com/bojand/infer")
+    (synopsis "Infer file types based on its magic number signature")
     (description
-     "This package provides a hash table with consistent order and fast iteration.
-
-The indexmap is a hash table where the iteration order of the key-value
-pairs is independent of the hash values of the keys.  It has the usual
-hash table functionality, it preserves insertion order except after
-removals, and it allows lookup of its elements by either hash table key
-or numerical index.  A corresponding hash set type is also provided.")
-    (license (list license:asl2.0 license:expat))))
+     "This crate infers a file types based on its magic number
+signature.")
+    (license license:expat)))
 
 (define-public rust-inflate-0.4
   (package
@@ -11378,8 +15976,64 @@ or numerical index.  A corresponding hash set type is also provided.")
     (description "This package provides DEFLATE decoding.")
     (license license:expat)))
 
+(define-public rust-inflector-0.11
+  (package
+    (name "rust-inflector")
+    (version "0.11.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "Inflector" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1lqmcni21ifzyq41fhz6k1j2b23cmsx469s4g4sf01l78miqqhzy"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-regex" ,rust-regex-1))))
+    (home-page "https://github.com/whatisinternet/inflector")
+    (synopsis "String based inflections for Rust")
+    (description "This package adds String based inflections for Rust.  Snake,
+kebab, camel, sentence, class, title and table cases as well as ordinalize,
+deordinalize, demodulize, foreign key, and pluralize/singularize are supported
+as both traits and pure functions acting on String types.")
+    (license license:bsd-2)))
+
+(define-public rust-inotify-0.8
+  (package
+    (name "rust-inotify")
+    (version "0.8.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "inotify" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1m74znskinrvfcp0hczwwdxvc7kvnrrailngkivk1iwknfa0mpa6"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-futures-core" ,rust-futures-core-0.3)
+        ("rust-inotify-sys" ,rust-inotify-sys-0.1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-mio" ,rust-mio-0.6)
+        ("rust-tokio" ,rust-tokio-0.2))
+       #:cargo-development-inputs
+       (("rust-futures-util" ,rust-futures-util-0.3)
+        ("rust-tempdir" ,rust-tempdir-0.3)
+        ("rust-tokio" ,rust-tokio-0.2))))
+    (home-page "https://github.com/inotify-rs/inotify")
+    (synopsis "Idiomatic wrapper for inotify")
+    (description "This package provides an idiomatic wrapper for inotify
+written in Rust.")
+    (license license:isc)))
+
 (define-public rust-inotify-0.7
   (package
+    (inherit rust-inotify-0.8)
     (name "rust-inotify")
     (version "0.7.1")
     (source
@@ -11391,7 +16045,6 @@ or numerical index.  A corresponding hash set type is also provided.")
        (sha256
         (base32
          "0byhq4x4b2rlbkmfrab5dni39wiq2ls1hv1nhggp7rla5inwc5j8"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-bitflags" ,rust-bitflags-1)
@@ -11403,12 +16056,7 @@ or numerical index.  A corresponding hash set type is also provided.")
         ("rust-tokio-io" ,rust-tokio-io-0.1)
         ("rust-tokio-reactor" ,rust-tokio-reactor-0.1))
        #:cargo-development-inputs
-       (("rust-tempdir" ,rust-tempdir-0.3))))
-    (home-page "https://github.com/inotify-rs/inotify")
-    (synopsis "Idiomatic wrapper for inotify")
-    (description "This package provides an idiomatic wrapper for inotify written
-in Rust.")
-    (license license:isc)))
+       (("rust-tempdir" ,rust-tempdir-0.3))))))
 
 (define-public rust-inotify-0.6
   (package
@@ -11458,8 +16106,69 @@ in Rust.")
      "This package provides inotify bindings for the Rust programming language.")
     (license license:isc)))
 
+(define-public rust-insta-0.16
+  (package
+    (name "rust-insta")
+    (version "0.16.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "insta" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1vhqlirp75nx8qalz87qk2wjs7mzwxww0n09n2ircgw1phd94zk1"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-backtrace" ,rust-backtrace-0.3)
+        ("rust-console" ,rust-console-0.11)
+        ("rust-difference" ,rust-difference-2)
+        ("rust-globwalk" ,rust-globwalk-0.8)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-pest" ,rust-pest-2)
+        ("rust-pest-derive" ,rust-pest-derive-2)
+        ("rust-ron" ,rust-ron-0.5)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-serde-yaml" ,rust-serde-yaml-0.8))))
+    (home-page "https://github.com/mitsuhiko/insta")
+    (synopsis "Snapshot testing library for Rust")
+    (description "This package provides a snapshot testing library for Rust.")
+    (license license:asl2.0)))
+
+(define-public rust-insta-0.12
+  (package
+    (inherit rust-insta-0.16)
+    (name "rust-insta")
+    (version "0.12.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "insta" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0j8k8rfcbdvh2s3jfj9hj7mspl32rqxqa393cw55jhg8cb09sj8d"))))
+    (arguments
+     `(#:cargo-test-flags
+       '("--release"
+         "--"
+         "--skip=runtime::test_format_rust_expression")
+       #:cargo-inputs
+       (("rust-console" ,rust-console-0.9)
+        ("rust-difference" ,rust-difference-2)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-pest" ,rust-pest-2)
+        ("rust-pest-derive" ,rust-pest-derive-2)
+        ("rust-ron" ,rust-ron-0.5)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-serde-yaml" ,rust-serde-yaml-0.8)
+        ("rust-uuid" ,rust-uuid-0.8))))))
+
 (define-public rust-insta-0.8
   (package
+    (inherit rust-insta-0.16)
     (name "rust-insta")
     (version "0.8.1")
     (source
@@ -11471,33 +16180,27 @@ in Rust.")
        (sha256
         (base32
          "17rvqw9xm61prncbqi3cplphr3l2dl85sljdpyr3fz2mqjgbdfwb"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-chrono" ,rust-chrono-0.4)
         ("rust-ci-info" ,rust-ci-info-0.3)
         ("rust-console" ,rust-console-0.7)
-        ("rust-difference" ,rust-difference-2.0)
+        ("rust-difference" ,rust-difference-2)
         ("rust-failure" ,rust-failure-0.1)
         ("rust-lazy-static" ,rust-lazy-static-1)
-        ("rust-pest" ,rust-pest-2.1)
-        ("rust-pest-derive" ,rust-pest-derive-2.1)
+        ("rust-pest" ,rust-pest-2)
+        ("rust-pest-derive" ,rust-pest-derive-2)
         ("rust-ron" ,rust-ron-0.4)
         ("rust-serde" ,rust-serde-1)
         ("rust-serde-json" ,rust-serde-json-1)
         ("rust-serde-yaml" ,rust-serde-yaml-0.8)
-        ("rust-uuid" ,rust-uuid-0.7))))
-    (home-page "https://github.com/mitsuhiko/insta")
-    (synopsis "Snapshot testing library for Rust")
-    (description
-     "This package provides a snapshot testing library for Rust.")
-    (license license:asl2.0)))
+        ("rust-uuid" ,rust-uuid-0.7))))))
 
 (define-public rust-instant-0.1
   (package
     (name "rust-instant")
-    (version "0.1.2")
+    (version "0.1.4")
     (source
      (origin
        (method url-fetch)
@@ -11506,13 +16209,15 @@ in Rust.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1bwca9fr29a1pyimfl94q6m6k2l57ljw1hhhvjafzs1zkqlnqd3c"))))
+         "10k1170waz1na056wvjvkps3lz28z9pc8kp8vpy4kpp53i5a4xvp"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
+     `(#:tests? #f  ; Issue during the wasm test.
        #:cargo-inputs
-       (("rust-stdweb" ,rust-stdweb-0.4)
+       (("rust-js-sys" ,rust-js-sys-0.3)
+        ("rust-stdweb" ,rust-stdweb-0.4)
         ("rust-time" ,rust-time-0.1)
+        ("rust-wasm-bindgen" ,rust-wasm-bindgen-0.2)
         ("rust-web-sys" ,rust-web-sys-0.3))
        #:cargo-development-inputs
        (("rust-wasm-bindgen-test" ,rust-wasm-bindgen-test-0.2))))
@@ -11619,6 +16324,207 @@ immutable interval tree.")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-ipconfig-0.2
+  (package
+    (name "rust-ipconfig")
+    (version "0.2.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "ipconfig" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1mzsagc6bk3i3fpggqlq8am5rxn4hgs297rsaya90w79xj5g3qpp"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-socket2" ,rust-socket2-0.3)
+        ("rust-widestring" ,rust-widestring-0.4)
+        ("rust-winapi" ,rust-winapi-0.3)
+        ("rust-winreg" ,rust-winreg-0.6))))
+    (home-page "https://github.com/liranringel/ipconfig")
+    (synopsis "Get network adapters and configuration information for Windows")
+    (description "This package lets you get network adapters information and
+network configuration for Windows.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-is-macro-0.1
+  (package
+    (name "rust-is-macro")
+    (version "0.1.8")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "is-macro" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1vjh4sdpvx1kdf1znyk3b54gkyk7f8lsasc47ypkksp3r4ypz004"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-inflector" ,rust-inflector-0.11)
+        ("rust-pmutil" ,rust-pmutil-0.5)
+        ("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-1))))
+    (home-page "https://github.com/kdy1/is-macro")
+    (synopsis "Create methods to use custom enum like Option/Result")
+    (description "This package lets you easily create methods to use a custom
+enum like Option/Result.")
+    (license license:expat)))
+
+(define-public rust-isahc-0.9
+  (package
+    (name "rust-isahc")
+    (version "0.9.14")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "isahc" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "12iqz5fj0509pr813pds2fgdk649a0b6ipvy3pqjwb1ywh68m572"))))
+    (build-system cargo-build-system)
+    (arguments
+     ;; Build fails with "failed to run custom build command for `curl-sys
+     ;; v0.4.39+curl-7.74.0`".  Skip for now.
+     `(#:skip-build? #true
+       #:cargo-inputs
+       (("rust-bytes" ,rust-bytes-0.5)
+        ("rust-chrono" ,rust-chrono-0.4)
+        ("rust-crossbeam-utils" ,rust-crossbeam-utils-0.8)
+        ("rust-curl" ,rust-curl-0.4)
+        ("rust-curl-sys" ,rust-curl-sys-0.4)
+        ("rust-encoding-rs" ,rust-encoding-rs-0.8)
+        ("rust-flume" ,rust-flume-0.9)
+        ("rust-futures-lite" ,rust-futures-lite-1)
+        ("rust-http" ,rust-http-0.2)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-mime" ,rust-mime-0.3)
+        ("rust-once-cell" ,rust-once-cell-1)
+        ("rust-parking-lot" ,rust-parking-lot-0.11)
+        ("rust-publicsuffix" ,rust-publicsuffix-1)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-slab" ,rust-slab-0.4)
+        ("rust-sluice" ,rust-sluice-0.5)
+        ("rust-tracing" ,rust-tracing-0.1)
+        ("rust-tracing-futures" ,rust-tracing-futures-0.2)
+        ("rust-url" ,rust-url-2)
+        ("rust-waker-fn" ,rust-waker-fn-1))
+       #:cargo-development-inputs
+       (("rust-env-logger" ,rust-env-logger-0.8)
+        ("rust-indicatif" ,rust-indicatif-0.15)
+        ("rust-structopt" ,rust-structopt-0.3)
+        ("rust-test-case" ,rust-test-case-1)
+        ("rust-tracing-subscriber" ,rust-tracing-subscriber-0.2))))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("curl" ,curl)
+       ("openssl" ,openssl)
+       ("zlib" ,zlib)))
+    (home-page "https://github.com/sagebind/isahc")
+    (synopsis "Practical HTTP client")
+    (description
+     "Isahc is an acronym that stands for Incredible Streaming Asynchronous
+HTTP Client.  It is an asynchronous HTTP client for the Rust language.  It
+uses libcurl as an HTTP engine inside, and provides an easy-to-use API on top
+that integrates with Rust idioms.")
+    (license license:expat)))
+
+(define-public rust-ipnet-2
+  (package
+    (name "rust-ipnet")
+    (version "2.3.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "ipnet" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0db147nh8jnxr23yxa7hwqn7dcjivdqi3aq4mgf2zgkqqqa2zgj7"))))
+    (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/krisprice/ipnet")
+    (synopsis "Work with IPv4 and IPv6 network addresses")
+    (description "This package provides types and useful methods for working
+with IPv4 and IPv6 network addresses, commonly called IP prefixes.  The new
+IpNet, Ipv4Net, and Ipv6Net types build on the existing IpAddr, Ipv4Addr, and
+Ipv6Addr types already provided in Rust's standard library and align to their
+design to stay consistent.  The module also provides useful traits that extend
+Ipv4Addr and Ipv6Addr with methods for Add, Sub, BitAnd, and BitOr operations.
+The module only uses stable feature so it is guaranteed to compile using the
+stable toolchain.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-ipnetwork-0.17
+  (package
+    (name "rust-ipnetwork")
+    (version "0.17.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "ipnetwork" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0sviri9ksb3cmhx3h0rcfy8pvpx7f0cx5ba1z87ydvf07amymhq2"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-serde" ,rust-serde-1))
+       #:cargo-development-inputs
+       (("rust-criterion" ,rust-criterion-0.3)
+        ("rust-serde-derive" ,rust-serde-derive-1)
+        ("rust-serde-json" ,rust-serde-json-1))))
+    (home-page "https://crates.io/crates/ipnetwork")
+    (synopsis "Work with IP CIDRs in Rust")
+    (description "This package provides a library to work with IP CIDRs in
+Rust.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-is-executable
+  (package
+    (name "rust-is-executable")
+    (version "0.1.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "is_executable" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0xy516afjh79a0d53j9v4w5mgi2s0r6f6qynnyz8g0dwi8xmab9h"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(;; One test tries to invoke 'cargo readme' which does not exist and aborts.
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-test
+           (lambda _
+             (substitute* "tests/tests.rs"
+               (("panic!\\(\"Run `cargo readme > README.md` to update README.md\"\\)")
+                "return;"))
+             #t)))
+       #:cargo-inputs
+       (("rust-diff" ,rust-diff-0.1)
+        ("rust-winapi" ,rust-winapi-0.3))))
+    (home-page "https://github.com/fitzgen/is_executable")
+    (synopsis "Find executable files at path")
+    (description
+     "This package provides a small helper function which determines
+whether or not a given path points to an executable file.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-iso8601-0.1
   (package
     (name "rust-iso8601")
@@ -11658,7 +16564,7 @@ immutable interval tree.")
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-either" ,rust-either-1.5))
+       (("rust-either" ,rust-either-1))
        #:cargo-development-inputs
        (("rust-criterion" ,rust-criterion-0.3)
         ("rust-permutohedron" ,rust-permutohedron-0.2)
@@ -11696,7 +16602,7 @@ immutable interval tree.")
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
-       (("rust-either" ,rust-either-1.5))
+       (("rust-either" ,rust-either-1))
        #:cargo-development-inputs
        (("rust-permutohedron" ,rust-permutohedron-0.2)
         ("rust-quickcheck" ,rust-quickcheck-0.7)
@@ -11717,7 +16623,7 @@ immutable interval tree.")
           "03cpsj26xmyamcalclqzr1i700vwx8hnbgxbpjvs354f8mnr8iqd"))))
     (arguments
      `(#:cargo-inputs
-       (("rust-either" ,rust-either-1.5))
+       (("rust-either" ,rust-either-1))
        #:cargo-development-inputs
        (("rust-permutohedron" ,rust-permutohedron-0.2)
         ("rust-quickcheck" ,rust-quickcheck-0.5))))))
@@ -11738,7 +16644,7 @@ immutable interval tree.")
     (arguments
      `(#:tests? #f ; Tests fail to compile
        #:cargo-inputs
-       (("rust-either" ,rust-either-1.5))
+       (("rust-either" ,rust-either-1))
        #:cargo-development-inputs
        (("rust-permutohedron" ,rust-permutohedron-0.2)
         ("rust-quickcheck" ,rust-quickcheck-0.4))))))
@@ -11958,6 +16864,102 @@ primitives to an @code{io::Write}.")
     (native-inputs
      `(("jemalloc" ,jemalloc)))))
 
+(define-public rust-jni-0.18
+  (package
+    (name "rust-jni")
+    (version "0.18.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "jni" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1brglk3kfia9wkr6rkm6p297b8qk6rv3k8rf6jjiqc74l49735i4"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-cesu8" ,rust-cesu8-1)
+        ("rust-combine" ,rust-combine-4)
+        ("rust-jni-sys" ,rust-jni-sys-0.3)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-thiserror" ,rust-thiserror-1)
+        ("rust-walkdir" ,rust-walkdir-2))
+       #:cargo-development-inputs
+       (("rust-lazy-static" ,rust-lazy-static-1))))
+    (home-page "https://github.com/jni-rs/jni-rs")
+    (synopsis "Rust bindings to the JNI")
+    (description
+     "This package provides Rust bindings to the JNI.  It permits to
+implement native Java methods for JVM and Android in Rust, call Java
+code from Rust, embed JVM in Rust applications and use any Java
+libraries.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-jni-0.14
+  (package
+    (inherit rust-jni-0.18)
+    (name "rust-jni")
+    (version "0.14.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "jni" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "00jl4jzzbbcf1nyziras5drp501xsk89g0132pwg194ilh6k308r"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-cesu8" ,rust-cesu8-1)
+        ("rust-combine" ,rust-combine-3)
+        ("rust-error-chain" ,rust-error-chain-0.12)
+        ("rust-jni-sys" ,rust-jni-sys-0.3)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-walkdir" ,rust-walkdir-2))
+       #:cargo-development-inputs
+       (("rust-lazy-static" ,rust-lazy-static-1))))))
+
+(define-public rust-jni-glue-0.0
+  (package
+    (name "rust-jni-glue")
+    (version "0.0.10")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "jni-glue" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "054kc2hkdfjiihy7ssrn97s9hs35c2v32ph2h0jlv4vkazx39ddb"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-jni-sys" ,rust-jni-sys-0.3)
+        ("rust-lazy-static" ,rust-lazy-static-1))))
+    (home-page "https://github.com/MaulingMonkey/jni-bindgen")
+    (synopsis "Glue code to accompany the jni-bindgen code generator")
+    (description
+     "This package provides manually written glue code to accompany
+the jni-bindgen code generator for binding to JVM APIs from Rust.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-jni-sys-0.3
+  (package
+    (name "rust-jni-sys")
+    (version "0.3.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "jni-sys" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0c01zb9ygvwg9wdx2fii2d39myzprnpqqhy7yizxvjqp5p04pbwf"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/sfackler/rust-jni-sys")
+    (synopsis "Rust definitions corresponding to @file{jni.h}")
+    (description
+     "This package provides Rust definitions corresponding to
+@file{jni.h}.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-jobserver-0.1
   (package
     (name "rust-jobserver")
@@ -11987,38 +16989,10 @@ primitives to an @code{io::Write}.")
      "An implementation of the GNU make jobserver for Rust.")
     (license (list license:expat license:asl2.0))))
 
-(define-public rust-jpeg-decoder-0.1
-  (package
-    (name "rust-jpeg-decoder")
-    (version "0.1.18")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "jpeg-decoder" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32
-         "0lc428qgffh2a1agkq0p26mvf9rjaiswpywy5883j99mqypg0mh2"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:tests? #f      ; Some test files missing.
-       #:cargo-inputs
-       (("rust-byteorder" ,rust-byteorder-1.3)
-        ("rust-rayon" ,rust-rayon-1))
-       #:cargo-development-inputs
-       (("rust-criterion" ,rust-criterion-0.3)
-        ("rust-png" ,rust-png-0.14)
-        ("rust-walkdir" ,rust-walkdir-2))))
-    (home-page "https://github.com/image-rs/jpeg-decoder")
-    (synopsis "JPEG decoder")
-    (description "JPEG decoder written in Rust.")
-    (license (list license:expat license:asl2.0))))
-
 (define-public rust-js-sys-0.3
   (package
     (name "rust-js-sys")
-    (version "0.3.37")
+    (version "0.3.46")
     (source
      (origin
        (method url-fetch)
@@ -12027,7 +17001,7 @@ primitives to an @code{io::Write}.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0mbhpbw3zjjl51m24qx3ilq4y8xipm5sfa5hsavaabqs6wsx89va"))))
+         "0xc1llkp23q8ac2wdwh46y6gjbc34prrd98g5my9qz4zja1p6gfg"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -12065,6 +17039,91 @@ friction with idiomatic Rust structs to ease interopability.")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-juniper-codegen-0.14
+  (package
+    (name "rust-juniper-codegen")
+    (version "0.14.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "juniper_codegen" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "06ym8568k9p75kvnfc4ywqbkzaa4ib6gngx9vpbsjwg9v0sg42nl"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #false                  ;FIXME: fail due to unresolved import
+       #:cargo-inputs
+       (("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-1))
+       #:cargo-development-inputs
+       (("rust-juniper" ,rust-juniper-0.14))))
+    (home-page "https://github.com/graphql-rust/juniper")
+    (synopsis "Internal custom derive trait for Juniper GraphQL")
+    (description
+     "This package provides an internal custom derive trait for Juniper
+GraphQL.")
+    (license license:bsd-2)))
+
+(define-public rust-juniper-0.14
+  (package
+    (name "rust-juniper")
+    (version "0.14.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "juniper" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0s56rb31yddhvjynl5bk8jihcdln8h5yfsx63kfxdhzvw98vlqpn"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-chrono" ,rust-chrono-0.4)
+        ("rust-fnv" ,rust-fnv-1)
+        ("rust-indexmap" ,rust-indexmap-1)
+        ("rust-juniper-codegen" ,rust-juniper-codegen-0.14)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-derive" ,rust-serde-derive-1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-url" ,rust-url-2)
+        ("rust-uuid" ,rust-uuid-0.7))
+       #:cargo-development-inputs
+       (("rust-bencher" ,rust-bencher-0.1)
+        ("rust-serde-json" ,rust-serde-json-1))))
+    (home-page "https://github.com/graphql-rust/juniper")
+    (synopsis "GraphQL server library for Rust")
+    (description
+     "Juniper makes it possible to write GraphQL servers in Rust that are
+type-safe and fast.  It also tries to make declaring and resolving GraphQL
+schemas convenient.
+
+Juniper does not include a web server.  Instead it provides building blocks to
+make integration with existing servers straightforward.  It optionally
+provides a pre-built integration for the Actix, Hyper, Iron, Rocket, and Warp
+frameworks, including embedded Graphiql and GraphQL Playground for easy
+debugging.")
+    (license license:bsd-2)))
+
+(define-public rust-keccak-0.1
+  (package
+    (name "rust-keccak")
+    (version "0.1.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "keccak" version))
+        (file-name (string-append name "-" version ".tar.gz"))
+        (sha256
+          (base32 "19ybbvxrdk9yy65rk7f5ad0hcxszkjwph68yzkj3954lnir1bhk7"))))
+    (build-system cargo-build-system)
+    (arguments `(#:skip-build? #t))
+    (home-page "https://crates.io/crates/keccak")
+    (synopsis "Keccak-f sponge function for Rust")
+    (description "This package provides a keccak-f sponge function")
+    (license license:cc0)))
+
 (define-public rust-kernel32-sys-0.2
   (package
     (name "rust-kernel32-sys")
@@ -12109,6 +17168,29 @@ kernel32.")
      "The Khronos XML API Registry, exposed as byte string constants.")
     (license license:asl2.0)))
 
+(define-public rust-kv-log-macro-1
+  (package
+    (name "rust-kv-log-macro")
+    (version "1.0.7")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "kv-log-macro" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0zwp4bxkkp87rl7xy2dain77z977rvcry1gmr5bssdbn541v7s0d"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-log" ,rust-log-0.4))
+       #:cargo-development-inputs
+       (("rust-femme" ,rust-femme-1))))
+    (home-page "https://github.com/yoshuawuyts/kv-log-macro")
+    (synopsis "Log macro for log's kv-unstable backend")
+    (description
+     "This package provides a Log macro for log's kv-unstable backend.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-language-tags-0.2
   (package
     (name "rust-language-tags")
@@ -12137,8 +17219,118 @@ currently supports parsing (fully conformant parser), formatting and comparing
 language tags.")
     (license license:expat)))
 
+(define-public rust-lab-0.8
+  (package
+    (name "rust-lab")
+    (version "0.8.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "lab" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1ysnbviwi35mq6xyz9c59mpgigyfp4s4y2mispxzrms4vk83bx15"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-development-inputs
+       (("rust-approx" ,rust-approx-0.3)
+        ("rust-criterion" ,rust-criterion-0.3)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-pretty-assertions" ,rust-pretty-assertions-0.6)
+        ("rust-rand" ,rust-rand-0.5))))
+    (home-page "https://github.com/TooManyBees/lab")
+    (synopsis "Convert RGB to CIE-LAB for Rust")
+    (description
+     "This package contains tools for converting RGB colors to the CIE-LAB color
+space, and comparing differences in color.")
+    (license license:expat)))
+
+(define-public rust-lab-0.7
+  (package
+    (inherit rust-lab-0.8)
+    (name "rust-lab")
+    (version "0.7.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "lab" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0g692d489lq01pv3mzfhxd98j0r22lw28l6bk112m74djlfzxdmw"))))
+    (arguments
+     `(#:tests? #f  ; test suite assumes avx2 support
+       #:cargo-development-inputs
+       (("rust-criterion" ,rust-criterion-0.3)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-pretty-assertions" ,rust-pretty-assertions-0.6)
+        ("rust-rand" ,rust-rand-0.5))))))
+
+(define-public rust-lab-0.4
+  (package
+    (inherit rust-lab-0.8)
+    (name "rust-lab")
+    (version "0.4.4")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "lab" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0h4ig5bvzmwlzd74zj7b4sh7kzi3c6mjjnw7yjz8ijxvr4mrcr1s"))))
+    (arguments
+     `(#:cargo-development-inputs
+       (("rust-rand" ,rust-rand-0.3))))))
+
+(define-public rust-lalrpop-0.19
+  (package
+    (name "rust-lalrpop")
+    (version "0.19.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "lalrpop" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1j52sybjhn82ydgsmnw7nkywjyb7pvg50mvyb48m7vdq3wcmdyv0"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+      (("rust-ascii-canvas" ,rust-ascii-canvas-2)
+       ("rust-atty" ,rust-atty-0.2)
+       ("rust-bit-set" ,rust-bit-set-0.5)
+       ("rust-diff" ,rust-diff-0.1)
+       ("rust-docopt" ,rust-docopt-1.1)
+       ("rust-ena" ,rust-ena-0.14)
+       ("rust-itertools" ,rust-itertools-0.9)
+       ("rust-lalrpop-util" ,rust-lalrpop-util-0.19)
+       ("rust-petgraph" ,rust-petgraph-0.5)
+       ("rust-regex" ,rust-regex-1)
+       ("rust-regex-syntax" ,rust-regex-syntax-0.6)
+       ("rust-serde" ,rust-serde-1)
+       ("rust-serde-derive" ,rust-serde-derive-1)
+       ("rust-sha2" ,rust-sha2-0.8)
+       ("rust-string-cache" ,rust-string-cache-0.8)
+       ("rust-term" ,rust-term-0.5)
+       ("rust-unicode-xid" ,rust-unicode-xid-0.2))
+      #:cargo-development-inputs
+      (("rust-rand" ,rust-rand-0.7))))
+    (home-page "https://github.com/lalrpop/lalrpop")
+    (synopsis "Convenient LR(1) parser generator for Rust")
+    (description "LALRPOP is a Rust parser generator framework with usability
+as its primary goal.  You should be able to write compact, DRY, readable
+grammars.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-lalrpop-0.17
   (package
+    (inherit rust-lalrpop-0.19)
     (name "rust-lalrpop")
     (version "0.17.2")
     (source
@@ -12169,28 +17361,23 @@ language tags.")
        ("rust-term" ,rust-term-0.5)
        ("rust-unicode-xid" ,rust-unicode-xid-0.2))
       #:cargo-development-inputs
-      (("rust-rand" ,rust-rand-0.6))))
-    (home-page "https://github.com/lalrpop/lalrpop")
-    (synopsis "Convenient LR(1) parser generator for Rust")
-    (description "LALRPOP is a Rust parser generator framework with usability
-as its primary goal.  You should be able to write compact, DRY, readable
-grammars.")
-    (license (list license:asl2.0 license:expat))))
+      (("rust-rand" ,rust-rand-0.6))))))
 
-(define-public rust-lalrpop-util-0.17
+(define-public rust-lalrpop-util-0.19
   (package
     (name "rust-lalrpop-util")
-    (version "0.17.2")
+    (version "0.19.1")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "lalrpop-util" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0z4bjn3g9232n1im5p6mn9mwlvw5aj5iac6hbjmljqxkhf3d2xy2"))))
+        (base32 "0224r8gsbk8and96nhwgzdj4hc1c01g78zmvv3x4f5jnzwg1cwb7"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:cargo-inputs
+     `(#:skip-build? #t
+       #:cargo-inputs
        (("rust-regex" ,rust-regex-1))))
   (home-page "https://github.com/lalrpop/lalrpop")
   (synopsis "Runtime library for parsers generated by LALRPOP")
@@ -12198,6 +17385,19 @@ grammars.")
 generated by LALRPOP.")
   (license (list license:asl2.0 license:expat))))
 
+(define-public rust-lalrpop-util-0.17
+  (package
+    (inherit rust-lalrpop-util-0.19)
+    (name "rust-lalrpop-util")
+    (version "0.17.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "lalrpop-util" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0z4bjn3g9232n1im5p6mn9mwlvw5aj5iac6hbjmljqxkhf3d2xy2"))))))
+
 (define-public rust-lazy-static-1.4
   (package
     (name "rust-lazy-static")
@@ -12280,7 +17480,7 @@ requires non-const function calls to be computed.")
          "05vl1h4b0iv800grsdyc3fg2bq29p70wjav6zpjvxxd5i8d6s66g"))))
     (arguments '())))
 
-(define-public rust-lazycell-1.2
+(define-public rust-lazycell-1
   (package
     (name "rust-lazycell")
     (version "1.2.1")
@@ -12323,7 +17523,7 @@ requires non-const function calls to be computed.")
         ("rust-bitflags" ,rust-bitflags-1)
         ("rust-cfg-if" ,rust-cfg-if-0.1)
         ("rust-dtoa" ,rust-dtoa-0.4)
-        ("rust-ryu" ,rust-ryu-1.0)
+        ("rust-ryu" ,rust-ryu-1)
         ("rust-static-assertions" ,rust-static-assertions-1))
        #:cargo-development-inputs
        (("rust-approx" ,rust-approx-0.3)
@@ -12356,7 +17556,7 @@ requires non-const function calls to be computed.")
        #:cargo-inputs
        (("rust-cfg-if" ,rust-cfg-if-0.1)
         ("rust-dtoa" ,rust-dtoa-0.4)
-        ("rust-ryu" ,rust-ryu-1.0)
+        ("rust-ryu" ,rust-ryu-1)
         ("rust-stackvector" ,rust-stackvector-1.0)
         ("rust-static-assertions" ,rust-static-assertions-0.3))
        #:cargo-development-inputs
@@ -12368,7 +17568,7 @@ requires non-const function calls to be computed.")
 (define-public rust-libc-0.2
   (package
     (name "rust-libc")
-    (version "0.2.71")
+    (version "0.2.81")
     (source
      (origin
        (method url-fetch)
@@ -12376,11 +17576,11 @@ requires non-const function calls to be computed.")
        (file-name (string-append name "-" version ".crate"))
        (sha256
         (base32
-         "0jbgi25rhglhvpxv62alyzyral6601kldmlhbxim4w6j15jv0mwl"))))
+         "1jsk82v5snd286ba92lir5snrxl18qm3kjkagz8c97hn0q9q50hl"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1.0))))
+       (("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1))))
     (home-page "https://github.com/rust-lang/libc")
     (synopsis "Raw FFI bindings to platform libraries like libc")
     (description
@@ -12415,49 +17615,138 @@ values of all the exported APIs match the platform that libc is compiled for.")
 macros on libc without stdlib.")
     (license (list license:asl2.0 license:expat))))
 
-(define-public rust-libgit2-sys-0.10
+(define-public rust-libflate-1
+  (package
+    (name "rust-libflate")
+    (version "1.0.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "libflate" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0jarv5ildsm0ci4prd4gz7fqypifhp9xk34z9w49rchx7q1ckfp9"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-adler32" ,rust-adler32-1)
+        ("rust-crc32fast" ,rust-crc32fast-1)
+        ("rust-libflate-lz77" ,rust-libflate-lz77-1)
+        ("rust-rle-decode-fast" ,rust-rle-decode-fast-1))
+       #:cargo-development-inputs
+       (("rust-clap" ,rust-clap-2))))
+    (home-page "https://github.com/sile/libflate")
+    (synopsis "DEFLATE algorithm and related formats (ZLIB, GZIP)")
+    (description "This package provides a Rust implementation of DEFLATE
+algorithm and related formats (ZLIB, GZIP).")
+    (license license:expat)))
+
+(define-public rust-libflate-0.1
+  (package
+    (inherit rust-libflate-1)
+    (name "rust-libflate")
+    (version "0.1.27")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "libflate" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1p8z839c5lpl0g01mf8iglys9lgcjxw6xjw56crhwp8z7gs5s4yr"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-adler32" ,rust-adler32-1)
+        ("rust-crc32fast" ,rust-crc32fast-1)
+        ("rust-rle-decode-fast" ,rust-rle-decode-fast-1)
+        ("rust-take-mut" ,rust-take-mut-0.2))
+       #:cargo-development-inputs
+       (("rust-clap" ,rust-clap-2))))))
+
+(define-public rust-libflate-lz77-1
+  (package
+    (name "rust-libflate-lz77")
+    (version "1.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "libflate_lz77" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "06xir79gmp97mdnlnjclk5zlzgkf5s6qvwilcd4gq9j9gngz11ij"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-development-inputs
+       (("rust-libflate" ,rust-libflate-0.1))))
+    (home-page "https://github.com/sile/libflate")
+    (synopsis "LZ77 encoder for libflate crate")
+    (description "This package provides a LZ77 encoder for libflate crate.")
+    (license license:expat)))
+
+(define-public rust-libgit2-sys-0.12
   (package
     (name "rust-libgit2-sys")
-    (version "0.10.0")
+    (version "0.12.17+1.1.0")
     (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "libgit2-sys" version))
-        (file-name (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32
-          "0l9fvki7qxsl97vgzqwlv75nl213a5vxw7b1jaik97ala356pv6r"))
-        (modules '((guix build utils)))
-        (snippet
-         '(begin (delete-file-recursively "libgit2") #t))))
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "libgit2-sys" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0hc89v7kp2b3rbc64cxq024shd85m8vqcs14i3gjclblr9jxzszl"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin (delete-file-recursively "libgit2") #t))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-libc" ,rust-libc-0.2)
-        ("rust-libz-sys" ,rust-libz-sys-1.0)
+       (("rust-cc" ,rust-cc-1)
+        ("rust-libc" ,rust-libc-0.2)
         ("rust-libssh2-sys" ,rust-libssh2-sys-0.2)
+        ("rust-libz-sys" ,rust-libz-sys-1)
         ("rust-openssl-sys" ,rust-openssl-sys-0.9)
-        ;; Build dependencies:
-        ("rust-cc" ,rust-cc-1)
-        ("rust-pkg-config" ,rust-pkg-config-0.3))
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'configure 'dont-vendor-sources
-           (lambda* (#:key inputs #:allow-other-keys)
-             (let ((openssl (assoc-ref inputs "openssl")))
-               (setenv "OPENSSL_DIR" openssl))
-             #t)))))
+        ("rust-pkg-config" ,rust-pkg-config-0.3))))
     (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
      `(("libgit2" ,libgit2)
        ("openssl" ,openssl)
-       ("pkg-config" ,pkg-config)
        ("zlib" ,zlib)))
     (home-page "https://github.com/rust-lang/git2-rs")
     (synopsis "Native bindings to the libgit2 library")
     (description
-     "This package provides native rust bindings to the @code{libgit2} library.")
-    (license (list license:asl2.0
-                   license:expat))))
+     "This package provides native Rust bindings to the @code{libgit2}
+library.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-libgit2-sys-0.10
+  (package
+    (inherit rust-libgit2-sys-0.12)
+    (name "rust-libgit2-sys")
+    (version "0.10.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "libgit2-sys" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0l9fvki7qxsl97vgzqwlv75nl213a5vxw7b1jaik97ala356pv6r"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin (delete-file-recursively "libgit2") #t))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-libc" ,rust-libc-0.2)
+        ("rust-libz-sys" ,rust-libz-sys-1)
+        ("rust-libssh2-sys" ,rust-libssh2-sys-0.2)
+        ("rust-openssl-sys" ,rust-openssl-sys-0.9)
+        ;; Build dependencies:
+        ("rust-cc" ,rust-cc-1)
+        ("rust-pkg-config" ,rust-pkg-config-0.3))))))
 
 (define-public rust-libgit2-sys-0.8
   (package
@@ -12497,11 +17786,44 @@ macros on libc without stdlib.")
        (("rust-curl-sys" ,rust-curl-sys-0.4)
         ("rust-libc" ,rust-libc-0.2)
         ("rust-libssh2-sys" ,rust-libssh2-sys-0.2)
-        ("rust-libz-sys" ,rust-libz-sys-1.0)
+        ("rust-libz-sys" ,rust-libz-sys-1)
         ("rust-openssl-sys" ,rust-openssl-sys-0.9)
         ("rust-cc" ,rust-cc-1)
         ("rust-pkg-config" ,rust-pkg-config-0.3))))))
 
+(define-public rust-libloading-0.6
+  (package
+    (name "rust-libloading")
+    (version "0.6.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "libloading" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1ygliqa518jjxwa5ih4b2f8m984ib596vxmjb28pa5lb8zqdhhr4"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin
+           ;; Enable unstable features
+           (substitute* "src/lib.rs"
+             (("//! A memory" all)
+              (string-append "#![feature(non_exhaustive)]\n" all)))))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-cfg-if" ,rust-cfg-if-0.1)
+        ("rust-winapi" ,rust-winapi-0.3))
+       #:cargo-development-inputs
+       (("rust-libc" ,rust-libc-0.2)
+        ("rust-static-assertions" ,rust-static-assertions-1))))
+    (home-page "https://github.com/nagisa/rust_libloading/")
+    (synopsis "Safer binding to dynamic library loading utilities")
+    (description "This package provides a safer binding to dynamic library
+loading utilities.")
+    (license license:isc)))
+
 (define-public rust-libloading-0.5
   (package
     (name "rust-libloading")
@@ -12591,10 +17913,35 @@ functions and static variables these libraries contain.")
         (base32
          "16pc0gx4gkg0q2s1ssq8268brn14j8344623vwhadmivc4lsmivz"))))))
 
+(define-public rust-libmimalloc-sys-0.1
+  (package
+    (name "rust-libmimalloc-sys")
+    (version "0.1.18")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "libmimalloc-sys" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0bbm03687j9fspvk6nqspmjlvchlvbxydl0mrc1x9i1k6kqiy5c2"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-cty" ,rust-cty-0.2)
+        ("rust-cmake" ,rust-cmake-0.1))))
+    (native-inputs
+     `(("cmake" ,cmake-minimal)))
+    (home-page "https://github.com/purpleprotocol/mimalloc_rust")
+    (synopsis "Sys crate wrapping the mimalloc allocator")
+    (description "This package provides a sys crate wrapping the mimalloc
+allocator.")
+    (license license:expat)))
+
 (define-public rust-libnghttp2-sys-0.1
   (package
     (name "rust-libnghttp2-sys")
-    (version "0.1.2")
+    (version "0.1.4+1.41.0")
     (source
       (origin
         (method url-fetch)
@@ -12602,18 +17949,30 @@ functions and static variables these libraries contain.")
         (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "0qr4lyh7righx9n22c7amlcpk906rn1jnb2zd6gdfpa3yi24s982"))
+          "1wcd93a8cw1h9y25834160y6ng982fi0qcd277hpjvhnvz34wqh3"))
         (modules '((guix build utils)))
         (snippet
-         '(begin (delete-file-recursively "nghttp2") #t))))
+         '(begin
+            (delete-file-recursively "nghttp2")
+            (substitute* "Cargo.toml"
+              (("false")
+               "false\n[build-dependencies.pkg-config]\nversion = \"0.3\"\n"))
+            (delete-file "build.rs")
+            (with-output-to-file "build.rs"
+              (lambda _
+                (format #t "fn main() {~@
+                        println!(\"cargo:rustc-link-lib=nghttp2\");~@
+                        }~%")))
+                 #t))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t     ; Uses unstable features
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-libc" ,rust-libc-0.2)
-        ("rust-cc" ,rust-cc-1))))
+        ("rust-cc" ,rust-cc-1)
+        ("rust-pkg-config" ,rust-pkg-config-0.3))))
     (inputs
-     `(("nghttp2" ,nghttp2)))
+     `(("nghttp2" ,nghttp2 "lib")
+       ("pkg-config" ,pkg-config)))
     (home-page "https://github.com/alexcrichton/nghttp2-rs")
     (synopsis "FFI bindings for libnghttp2 (nghttp2)")
     (description
@@ -12621,24 +17980,88 @@ functions and static variables these libraries contain.")
     (license (list license:asl2.0
                    license:expat))))
 
-(define-public rust-libsqlite3-sys-0.15
+(define-public rust-libpijul-0.12
+  (package
+    (name "rust-libpijul")
+    (version "0.12.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "libpijul" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "18d9n8xaq5ncq3375f0xrr96l8si1frczgzdlrz3fl1jby8vbl6f"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f  ; backend::file_header::test_fileheader_alignment fails
+       #:cargo-inputs
+       (("rust-base64" ,rust-base64-0.10)
+        ("rust-bincode" ,rust-bincode-1)
+        ("rust-bitflags" ,rust-bitflags-1)
+        ("rust-bs58" ,rust-bs58-0.2)
+        ("rust-byteorder" ,rust-byteorder-1)
+        ("rust-chrono" ,rust-chrono-0.4)
+        ("rust-diffs" ,rust-diffs-0.3)
+        ("rust-failure" ,rust-failure-0.1)
+        ("rust-flate2" ,rust-flate2-1)
+        ("rust-hex" ,rust-hex-0.3)
+        ("rust-ignore" ,rust-ignore-0.4)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-openssl" ,rust-openssl-0.10)
+        ("rust-rand" ,rust-rand-0.6)
+        ("rust-sanakirja" ,rust-sanakirja-0.10)
+        ("rust-sequoia-openpgp" ,rust-sequoia-openpgp-0.9)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-derive" ,rust-serde-derive-1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-tempdir" ,rust-tempdir-0.3)
+        ("rust-toml" ,rust-toml-0.4))))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("clang" ,clang)
+       ("nettle" ,nettle)
+       ("openssl" ,openssl)))
+    (home-page "https://pijul.org/")
+    (synopsis "Library component of the pijul version control system")
+    (description
+     "This crate contains the core API to access Pijul repositories.
+
+The key object is a @code{Repository}, on which @code{Txn} (immutable
+transactions) and @code{MutTxn} (mutable transactions) can be started, to
+perform a variety of operations.
+
+Another important object is a @code{Patch}, which encodes two different pieces
+of information:
+
+@itemize
+@item Information about deleted and inserted lines between two versions of a
+file.
+@item Information about file moves, additions and deletions.
+@end itemize")
+    (license license:gpl2+)))
+
+(define-public rust-libsqlite3-sys-0.20
   (package
     (name "rust-libsqlite3-sys")
-    (version "0.15.0")
+    (version "0.20.1")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "libsqlite3-sys" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "104n0s4f46zprppjq6y82y0wjh1r2cgwzw26w914yj30rizy1cbj"))))
+        (base32 "1g9gbjjpm9phhs991abkzmacszibp94m5nrh331ycd99y9ci1lv4"))))
     (build-system cargo-build-system)
     (inputs
      `(("sqlite" ,sqlite)))
     (arguments
-     `(#:cargo-inputs
+     `(#:skip-build? #t
+       #:cargo-inputs
        ;; build dependencies
-       (("rust-bindgen" ,rust-bindgen-0.49)
+       (("rust-bindgen" ,rust-bindgen-0.55)
         ("rust-cc" ,rust-cc-1)
         ("rust-pkg-config" ,rust-pkg-config-0.3)
         ("rust-vcpkg" ,rust-vcpkg-0.2))))
@@ -12647,10 +18070,69 @@ functions and static variables these libraries contain.")
     (description "Native bindings to the libsqlite3 library")
     (license license:expat)))
 
-(define-public rust-libz-sys-1.0
+(define-public rust-libsqlite3-sys-0.18
+  (package
+    (inherit rust-libsqlite3-sys-0.20)
+    (name "rust-libsqlite3-sys")
+    (version "0.18.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "libsqlite3-sys" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1ggpbnis0rci97ln628y2v6pkgfhb6zgc8rsp444mkdfph14lw0y"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin
+           (delete-file-recursively "sqlite3")
+           ;; Enable unstable features
+           (substitute* "src/lib.rs"
+             (("#!\\[allow\\(non_snake_case, non_camel_case_types\\)\\]" all)
+              (string-append "#![feature(non_exhaustive)]\n" all)))))))
+    (arguments
+     `(#:cargo-inputs
+       ;; build-dependencies
+       (("rust-bindgen" ,rust-bindgen-0.53)
+        ("rust-cc" ,rust-cc-1)
+        ("rust-pkg-config" ,rust-pkg-config-0.3)
+        ("rust-vcpkg" ,rust-vcpkg-0.2))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'enable-unstable-features
+           (lambda _
+             (setenv "RUSTC_BOOTSTRAP" "1")
+             #t)))))))
+
+(define-public rust-libsqlite3-sys-0.15
+  (package
+    (inherit rust-libsqlite3-sys-0.20)
+    (name "rust-libsqlite3-sys")
+    (version "0.15.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "libsqlite3-sys" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "104n0s4f46zprppjq6y82y0wjh1r2cgwzw26w914yj30rizy1cbj"))))
+    (build-system cargo-build-system)
+    (inputs
+     `(("sqlite" ,sqlite)))
+    (arguments
+     `(#:cargo-inputs
+       ;; build dependencies
+       (("rust-bindgen" ,rust-bindgen-0.49)
+        ("rust-cc" ,rust-cc-1)
+        ("rust-pkg-config" ,rust-pkg-config-0.3)
+        ("rust-vcpkg" ,rust-vcpkg-0.2))))))
+
+(define-public rust-libz-sys-1
   (package
     (name "rust-libz-sys")
-    (version "1.0.25")
+    (version "1.1.1")
     (source
       (origin
         (method url-fetch)
@@ -12658,16 +18140,19 @@ functions and static variables these libraries contain.")
         (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "1gjycyl2283525abks98bhxa4r259m617xfm5z52p3p3c8ry9d9f"))
+          "1q25cb8vs113si7q2p0innhi8jk0wpq37hqi2wcc219hcmw43cr3"))
         (modules '((guix build utils)))
         (snippet
-         '(begin (delete-file-recursively "src/zlib") #t))))
+         '(begin (delete-file-recursively "src/zlib")
+                 (delete-file-recursively "src/zlib-ng")
+                 #t))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-libc" ,rust-libc-0.2)
         ;; Build dependencies:
         ("rust-cc" ,rust-cc-1)
+        ("rust-cmake" ,rust-cmake-0.1)
         ("rust-pkg-config" ,rust-pkg-config-0.3)
         ("rust-vcpkg" ,rust-vcpkg-0.2))))
     (native-inputs
@@ -12681,35 +18166,37 @@ known as zlib).")
     (license (list license:asl2.0
                    license:expat))))
 
-(define-public rust-line-drawing-0.7
+(define-public rust-line-0.1
   (package
-    (name "rust-line-drawing")
-    (version "0.7.0")
+    (name "rust-line")
+    (version "0.1.15")
     (source
      (origin
        (method url-fetch)
-       (uri (crate-uri "line_drawing" version))
+       (uri (crate-uri "line" version))
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1fcna7hq1g1kkkqy07hydscx5d2zgb6gskz3vnsvsif8h8ysvisw"))))
+         "0pissvrl5398701zlfd22w51ca32vhw83vbsl58a330hr4w5ra04"))))
     (build-system cargo-build-system)
     (arguments
-     ;; This version does not specify any versions on dependants.
-     `(#:tests? #f      ; Cannot compile line_drawing for the test suite.
-       #:cargo-inputs
-       (("rust-num-traits" ,rust-num-traits-0.2))
-       #:cargo-development-inputs
-       (("rust-bresenham" ,rust-bresenham-0.1)
-        ("rust-image" ,rust-image-0.22) ; 0.17?
-        ("rust-rand" ,rust-rand-0.6))))
-    (home-page "https://github.com/expenses/line_drawing")
-    (synopsis "Collection of line-drawing algorithms")
-    (description
-     "This package provides a collection of line-drawing algorithms for use in
-graphics and video games.")
-    (license license:expat)))
+     `(#:cargo-inputs
+       (("rust-libc" ,rust-libc-0.2)
+        ("rust-utf8parse" ,rust-utf8parse-0.1))))
+    (home-page "https://crates.io/crates/line")
+    (synopsis "Rust implementation of line editing in a terminal")
+    (description
+     "The main goals of this library are:
+
+@itemize
+@item Portability: should work on any system (Unix or Windows).
+@item Support: was written for a real-world project (Pijul), so support is
+unlikely to stop soon.
+@item Output quality: avoid usual blinking terminal lines that older C
+libraries have.
+@end itemize")
+    (license (list license:asl2.0 license:expat))))
 
 (define-public rust-line-wrap-0.1
   (package
@@ -12736,6 +18223,28 @@ graphics and video games.")
      "Efficiently insert line separators.")
     (license license:asl2.0)))
 
+(define-public rust-link-cplusplus-1
+  (package
+    (name "rust-link-cplusplus")
+    (version "1.0.4")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "link-cplusplus" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0m7365ig7r88x7b4gkzj5m7b6wiq42pi1ign7mvyq63jr22sfspr"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-cc" ,rust-cc-1))))
+    (home-page "https://github.com/dtolnay/link-cplusplus")
+    (synopsis "Link libstdc++ or libc++ automatically or manually")
+    (description "This crate helps link to libstdc++ or libc++ automatically or
+manually from Rust.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-linked-hash-map-0.5
   (package
     (name "rust-linked-hash-map")
@@ -12806,10 +18315,35 @@ pairs in insertion order.")
         ("rust-serde" ,rust-serde-0.8)
         ("rust-serde-test" ,rust-serde-test-0.8))))))
 
+(define-public rust-linkify-0.4
+  (package
+    (name "rust-linkify")
+    (version "0.4.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "linkify" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "15i0q81vrhm4asskacy2z83fyj09ivcff0km82gwbli4vlkib583"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-memchr" ,rust-memchr-2))
+       #:cargo-development-inputs
+       (("rust-version-sync" ,rust-version-sync-0.8))))
+    (home-page "https://github.com/robinst/linkify")
+    (synopsis "Find URLs and email addresses in plain text")
+    (description
+     "Linkify is a Rust library to find links such as URLs and email addresses
+in plain text.  It is smart about where a link ends, such as with trailing
+punctuation.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-libssh2-sys-0.2
   (package
     (name "rust-libssh2-sys")
-    (version "0.2.14")
+    (version "0.2.19")
     (source
       (origin
         (method url-fetch)
@@ -12817,7 +18351,7 @@ pairs in insertion order.")
         (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "042gsgbvxgm5by4mk906j3zm4qdvzcfhjxrb55is1lrr6f0nxain"))
+          "0mkhw4pksbz7gldj8hia7k6npc479n1x09i8r0pm275sac424ina"))
         (modules '((guix build utils)))
         (snippet
          '(begin (delete-file-recursively "libssh2") #t))))
@@ -12825,23 +18359,17 @@ pairs in insertion order.")
     (arguments
      `(#:cargo-inputs
        (("rust-libc" ,rust-libc-0.2)
-        ("rust-libz-sys" ,rust-libz-sys-1.0)
+        ("rust-libz-sys" ,rust-libz-sys-1)
         ("rust-openssl-sys" ,rust-openssl-sys-0.9)
         ;; Build dependencies:
         ("rust-cc" ,rust-cc-1)
         ("rust-pkg-config" ,rust-pkg-config-0.3)
-        ("rust-vcpkg" ,rust-vcpkg-0.2))
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'configure 'dont-vendor-sources
-           (lambda* (#:key inputs #:allow-other-keys)
-             (let ((openssl (assoc-ref inputs "openssl")))
-               (setenv "OPENSSL_DIR" openssl))
-             #t)))))
+        ("rust-vcpkg" ,rust-vcpkg-0.2))))
     (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
      `(("libssh2" ,libssh2)
        ("openssl" ,openssl)
-       ("pkg-config" ,pkg-config)
        ("zlib" ,zlib)))
     (home-page "https://github.com/alexcrichton/ssh2-rs")
     (synopsis "Native bindings to the libssh2 library")
@@ -12850,6 +18378,74 @@ pairs in insertion order.")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-lmdb-rkv-0.14
+  (package
+    (name "rust-lmdb-rkv")
+    (version "0.14.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "lmdb-rkv" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0aylp9j3s34cgxfj3dszcnplj5a594ylykhgnpxrqafag9pjjyj4"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-byteorder" ,rust-byteorder-1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-lmdb-rkv-sys" ,rust-lmdb-rkv-sys-0.11))
+       #:cargo-development-inputs
+       (("rust-rand" ,rust-rand-0.4)
+        ("rust-tempdir" ,rust-tempdir-0.3))))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("lmdb" ,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
+with lmdb.")
+    (license license:asl2.0)))
+
+(define-public rust-lmdb-rkv-sys-0.11
+  (package
+    (name "rust-lmdb-rkv-sys")
+    (version "0.11.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "lmdb-rkv-sys" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1994mvbdxkvq6c3z9npv1zjpvrhvpk9zry3azgyklyqn4nn70x5j"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin
+           (delete-file-recursively "lmdb")
+           #t))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f  ; Tests fail after removing bundled source.
+       #:cargo-inputs
+       (("rust-libc" ,rust-libc-0.2)
+        ("rust-bindgen" ,rust-bindgen-0.53)
+        ("rust-cc" ,rust-cc-1)
+        ("rust-pkg-config" ,rust-pkg-config-0.3))))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("lmdb" ,lmdb)))
+    (home-page "https://github.com/mozilla/lmdb-rs")
+    (synopsis "Rust bindings for liblmdb")
+    (description "This package provides rust bindings for liblmdb.")
+    (license license:asl2.0)))
+
 (define-public rust-locale-0.2
   (package
     (name "rust-locale")
@@ -12920,32 +18516,45 @@ by inspecting the system for user preference.")
         ("rust-regex" ,rust-regex-1)
         ("rust-winapi" ,rust-winapi-0.3))))))
 
-(define-public rust-lock-api-0.3
+(define-public rust-lock-api-0.4
   (package
     (name "rust-lock-api")
-    (version "0.3.4")
+    (version "0.4.1")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "lock_api" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0xgc5dzmajh0akbh5d6d7rj9mh5rzpk74pyrc946v2ixgakj9nn4"))))
+         "0716z2rs0kydmd1818kqp4641dfkqzr0rpbnrpxhabxylp2pq918"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-owning-ref" ,rust-owning-ref-0.4)
-        ("rust-scopeguard" ,rust-scopeguard-1.0)
+        ("rust-scopeguard" ,rust-scopeguard-1)
         ("rust-serde" ,rust-serde-1))))
     (home-page "https://github.com/Amanieu/parking_lot")
-    (synopsis
-     "Wrappers to create fully-featured Mutex and RwLock types")
-    (description
-     "This package provides wrappers to create fully-featured @code{Mutex} and
-@code{RwLock} types.  It is compatible with @code{no_std}.")
-    (license (list license:expat license:asl2.0))))
+    (synopsis "Wrappers to create fully-featured Mutex and RwLock types")
+    (description "This package provides wrappers to create fully-featured
+@code{Mutex} and @code{RwLock} types.  It is compatible with @code{no_std}.")
+    (license (list license:asl2.0 license:expat))))
+
+(define-public rust-lock-api-0.3
+  (package
+    (inherit rust-lock-api-0.4)
+    (name "rust-lock-api")
+    (version "0.3.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "lock_api" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0xgc5dzmajh0akbh5d6d7rj9mh5rzpk74pyrc946v2ixgakj9nn4"))))
+    (build-system cargo-build-system)))
 
 (define-public rust-lock-api-0.2
   (package
@@ -12983,7 +18592,7 @@ by inspecting the system for user preference.")
 (define-public rust-log-0.4
   (package
     (name "rust-log")
-    (version "0.4.8")
+    (version "0.4.11")
     (source
       (origin
         (method url-fetch)
@@ -12991,13 +18600,13 @@ by inspecting the system for user preference.")
         (file-name (string-append name "-" version ".crate"))
         (sha256
          (base32
-          "1xz18ixccl5c6np4linv3ypc7hpmmgpc5zzd2ymp2ssfx0mhbdhl"))))
+          "12xzqaflpiljn5cmxsbnbv9sjaj13ykhwsvll0gysbx4blbyvasg"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-cfg-if" ,rust-cfg-if-0.1)
-        ("rust-serde" ,rust-serde-1))
+        ("rust-serde" ,rust-serde-1)
+        ("rust-sval" ,rust-sval-0.5))
        #:cargo-development-inputs
        (("rust-serde-test" ,rust-serde-test-1))))
     (home-page "https://github.com/rust-lang/log")
@@ -13023,32 +18632,83 @@ by inspecting the system for user preference.")
      `(#:cargo-inputs
        (("rust-log" ,rust-log-0.4))))))
 
-(define-public rust-loom-0.3
+(define-public rust-logtest-2
+  (package
+    (name "rust-logtest")
+    (version "2.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "logtest" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "09ihwkq6z7xm6wdwxmc9mz74lsl20g5bi7fcdm8n87bwcnl46gpb"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #false
+       #:cargo-inputs
+       (("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-log" ,rust-log-0.4))
+       #:cargo-development-inputs
+       (("rust-kv-log-macro" ,rust-kv-log-macro-1))))
+    (home-page "https://github.com/yoshuawuyts/logtest")
+    (synopsis "Test and assert log statements")
+    (description "This package tests and asserts log statements.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-loom-0.4
   (package
     (name "rust-loom")
-    (version "0.3.2")
+    (version "0.4.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "loom" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "10z738ig6vgvwc2kxjhjdr5b29p3ribk5f6gg6ak0xjxhjb4cnkc"))))
+        (base32 "1941ji91nvriqqkgzlx285kq38zg74sw68gb2x4pnjbfcfs76k6l"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t ;; TODO fails due to unresolved import
+     ;; FIXME: build phase fails with the error: "the
+     ;; `#[track_caller]` attribute is an experimental feature".
+     `(#:skip-build? #true
        #:cargo-inputs
-       (("rust-cfg-if" ,rust-cfg-if-0.1)
+       (("rust-cfg-if" ,rust-cfg-if-1)
         ("rust-futures-util" ,rust-futures-util-0.3)
         ("rust-generator" ,rust-generator-0.6)
-        ("rust-scoped-tls" ,rust-scoped-tls-0.1)
+        ("rust-scoped-tls" ,rust-scoped-tls-1)
         ("rust-serde" ,rust-serde-1)
         ("rust-serde-json" ,rust-serde-json-1))))
     (home-page "https://github.com/tokio-rs/loom")
     (synopsis "Permutation testing for concurrent code")
-    (description "Permutation testing for concurrent code")
+    (description
+     "Loom is a testing tool for concurrent Rust code.  It runs a test many
+times, permuting the possible concurrent executions of that test under the C11
+memory model.  It uses state reduction techniques to avoid combinatorial
+explosion.")
     (license license:expat)))
 
+(define-public rust-loom-0.3
+  (package
+    (inherit rust-loom-0.4)
+    (name "rust-loom")
+    (version "0.3.6")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "loom" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1vabpqzdhcqy1d64kcyzgfwigiak0dr18whq0lkic8915w7lds50"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-cfg-if" ,rust-cfg-if-0.1)
+        ("rust-futures-util" ,rust-futures-util-0.3)
+        ("rust-generator" ,rust-generator-0.6)
+        ("rust-scoped-tls" ,rust-scoped-tls-1)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-json" ,rust-serde-json-1))))))
+
 (define-public rust-loom-0.2
   (package/inherit rust-loom-0.3
     (name "rust-loom")
@@ -13094,6 +18754,41 @@ by inspecting the system for user preference.")
         ("rust-serde-derive" ,rust-serde-derive-1)
         ("rust-serde-json" ,rust-serde-json-1))))))
 
+(define-public rust-lopdf-0.25
+  (package
+    (name "rust-lopdf")
+    (version "0.25.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "lopdf" version))
+        (file-name
+          (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1yb4yj1a8a88w78hz9msg65xbkyx5n4d9gm1xb2c67zaj1xvyw1i"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-chrono" ,rust-chrono-0.4)
+        ("rust-dtoa" ,rust-dtoa-0.4)
+        ("rust-encoding" ,rust-encoding-0.2)
+        ("rust-flate2" ,rust-flate2-1)
+        ("rust-image" ,rust-image-0.20)
+        ("rust-itoa" ,rust-itoa-0.4)
+        ("rust-linked-hash-map" ,rust-linked-hash-map-0.4)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-lzw" ,rust-lzw-0.10)
+        ("rust-nom" ,rust-nom-5)
+        ("rust-pom" ,rust-pom-3)
+        ("rust-rayon" ,rust-rayon-1)
+        ("rust-time" ,rust-time-0.1))))
+    (home-page "https://github.com/J-F-Liu/lopdf")
+    (synopsis "Rust library for PDF document manipulation")
+    (description
+     "This package provides a Rust library for PDF document manipulation.")
+    (license license:expat)))
+
 (define-public rust-lru-cache-0.1
   (package
     (name "rust-lru-cache")
@@ -13156,73 +18851,21 @@ key-value pairs.")
         (base32
          "0jxsgkn378kxkiqdshdjdclw5wwp2xaz45cqd3yw85fhn8a38fza"))))))
 
-(define-public rust-lyon-geom-0.14
-  (package
-    (name "rust-lyon-geom")
-    (version "0.14.1")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "lyon_geom" version))
-        (file-name
-         (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32
-          "178z4cqqmyw0rsabbgx9phkjxjzcnq0604062lqjlq87k063216a"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-num-traits" ,rust-num-traits-0.2)
-        ("rust-euclid" ,rust-euclid-0.20)
-        ("rust-arrayvec" ,rust-arrayvec-0.4)
-        ("rust-serde" ,rust-serde-1))))
-    (home-page "https://github.com/nical/lyon")
-    (synopsis "2D graphics rendering on the GPU using tessellation")
-    (description
-     "This package provides 2D graphics rendering on the GPU using tessellation.")
-    (license (list license:expat license:asl2.0))))
-
-(define-public rust-lyon-path-0.14
-  (package
-    (name "rust-lyon-path")
-    (version "0.14.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "lyon_path" version))
-        (file-name
-         (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32
-          "0qk8x46w0sf6j04l6gvhgn9kr4ymcqkmkh67w8wqahm54jn5gjqb"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-lyon-geom" ,rust-lyon-geom-0.14)
-        ("rust-serde" ,rust-serde-1))))
-    (home-page "https://github.com/nical/lyon")
-    (synopsis "Types and utilities to store, build and iterate over 2D paths")
-    (description
-     "Types and utilities to store, build and iterate over 2D paths.")
-    (license (list license:expat license:asl2.0))))
-
 (define-public rust-lzma-sys-0.1
   (package
     (name "rust-lzma-sys")
-    (version "0.1.15")
+    (version "0.1.17")
     (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "lzma-sys" version))
-        (file-name (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32
-          "14gyj256yh0wm77jbvmlc39v7lfn0navpfrja4alczarzlc8ir2k"))
-        (modules '((guix build utils)))
-        (snippet
-         '(begin (delete-file-recursively "xz-5.2") #t))))
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "lzma-sys" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "06fnjsx5cj2w6rsqb12x30nl9lnj0xv4hv78z4x1vlfsxp1vgd5x"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin (delete-file-recursively "xz-5.2") #t))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -13477,6 +19120,31 @@ statement, the first matching branch is the item that gets emitted.")
 whether an expression matches a pattern.")
     (license license:expat)))
 
+(define-public rust-matchers-0.0
+  (package
+    (name "rust-matchers")
+    (version "0.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "matchers" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1q8ckqmkjqkznvdi9x0z769yz2bmvlqcwx51ad2lpk4mfmgpi6gh"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-regex-automata" ,rust-regex-automata-0.1))))
+    (home-page "https://github.com/hawkw/matchers")
+    (synopsis "Regex matching on character and byte streams")
+    (description
+     "Use this crate to match on character and byte streams using regular
+grammars.  It provides the subset of the regex crate that only deals with
+matching, not parsing substrings.")
+    (license license:expat)))
+
 (define-public rust-matrixmultiply-0.2
   (package
     (name "rust-matrixmultiply")
@@ -13669,10 +19337,10 @@ compression function.")
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-byteorder" ,rust-byteorder-1.3)
+       (("rust-byteorder" ,rust-byteorder-1)
         ("rust-memmap" ,rust-memmap-0.7)
         ("rust-parking-lot" ,rust-parking-lot-0.9)
-        ("rust-rustc-hash" ,rust-rustc-hash-1.1))))
+        ("rust-rustc-hash" ,rust-rustc-hash-1))))
     (home-page "https://github.com/rust-lang/measureme")
     (synopsis "Support crate for rustc's self-profiling feature")
     (description
@@ -13806,8 +19474,32 @@ file IO.")
        #:cargo-development-inputs
        (("rust-tempdir" ,rust-tempdir-0.3))))))
 
+(define-public rust-memoffset-0.6
+  (package
+    (name "rust-memoffset")
+    (version "0.6.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "memoffset" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "11yxgw330cf8g4wy0fnb20ag8gg1b33fsnfmg2g8z6h5wc444yqm"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-autocfg" ,rust-autocfg-1))))
+    (home-page "https://github.com/Gilnaa/memoffset")
+    (synopsis "C-like offset_of functionality for Rust structs")
+    (description
+     "This package provides C-like @code{offset_of} functionality
+for Rust structs.")
+    (license license:expat)))
+
 (define-public rust-memoffset-0.5
   (package
+    (inherit rust-memoffset-0.6)
     (name "rust-memoffset")
     (version "0.5.3")
     (source
@@ -13819,19 +19511,12 @@ file IO.")
        (sha256
         (base32
          "1fblqzc25hfaym8m0pj112s66pqq87avvaqm5hp5rskib2w9w63m"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-rustc-version" ,rust-rustc-version-0.2))
        #:cargo-development-inputs
-       (("rust-doc-comment" ,rust-doc-comment-0.3))))
-    (home-page "https://github.com/Gilnaa/memoffset")
-    (synopsis
-     "C-like offset_of functionality for Rust structs")
-    (description "This package provides C-like @code{offset_of} functionality
-for Rust structs.")
-    (license license:expat)))
+       (("rust-doc-comment" ,rust-doc-comment-0.3))))))
 
 (define-public rust-memoffset-0.2
   (package
@@ -13849,20 +19534,21 @@ for Rust structs.")
          "1cvm2z7dy138s302ii7wlzcxbka5a8yfl5pl5di7lbdnw9hw578g"))))
     (arguments `(#:skip-build? #t))))
 
-(define-public rust-memsec-0.5
+(define-public rust-memsec-0.6
   (package
     (name "rust-memsec")
-    (version "0.5.7")
+    (version "0.6.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "memsec" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "13ir50j549gdz94pds1i7ljnk14d66q5x91s11hncm1pih7jif8c"))))
+        (base32 "1pfbpl75586bjdkphnaa4j58d668rl1wgcqzpnpzzx1phxfzkx1a"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:cargo-inputs
+     `(#:skip-build? #t
+       #:cargo-inputs
        (("rust-getrandom" ,rust-getrandom-0.1)
         ("rust-libc" ,rust-libc-0.2)
         ("rust-mach-o-sys" ,rust-mach-o-sys-0.1)
@@ -13873,6 +19559,92 @@ for Rust structs.")
 @code{libsodium/utils}.")
     (license license:expat)))
 
+(define-public rust-memsec-0.5
+  (package
+    (inherit rust-memsec-0.6)
+    (name "rust-memsec")
+    (version "0.5.7")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "memsec" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "13ir50j549gdz94pds1i7ljnk14d66q5x91s11hncm1pih7jif8c"))))))
+
+(define-public rust-merlin-2
+  (package
+    (name "rust-merlin")
+    (version "2.0.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "merlin" version))
+        (file-name (string-append name "-" version ".tar.gz"))
+        (sha256
+          (base32 "0y5vd610q7x82vf54pmnzlh0mh8hgxr6imv92yh46d7syi3cmzn6"))))
+    (build-system cargo-build-system)
+    (arguments
+      `(#:skip-build? #t
+        #:cargo-inputs
+        (("rust-byteorder" ,rust-byteorder-1)
+         ("rust-hex" ,rust-hex-0.3)
+         ("rust-keccak" ,rust-keccak-0.1)
+         ("rust-rand-core" ,rust-rand-core-0.5)
+         ("rust-zeroize" ,rust-zeroize-1))))
+    (home-page "https://docs.rs/merlin")
+    (synopsis "Composable proof transcripts for public-coin arguments of
+knowledge")
+    (description
+     "Merlin is a STROBE-based transcript construction for zero-knowledge
+proofs.  It automates the Fiat-Shamir transform, so that by using Merlin,
+non-interactive protocols can be implemented as if they were interactive.")
+    (license license:expat)))
+
+(define-public rust-mesalink-1
+  (package
+    (name "rust-mesalink")
+    (version "1.1.0-cratesio")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "mesalink" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "02lp27j5vxdc95bf5g983yr660cm6vljikk0yqry4j6cjvfnyq85"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-test-flags
+       '("--release"
+         "--"
+         "--skip=libssl::ssl::tests::early_data_to_mesalink_io"
+         "--skip=libssl::ssl::tests::get_ssl_fd"
+         "--skip=libssl::ssl::tests::ssl_on_nonblocking_socket")
+       #:cargo-inputs
+       (("rust-base64" ,rust-base64-0.10)
+        ("rust-bitflags" ,rust-bitflags-1)
+        ("rust-enum-to-u8-slice-derive" ,rust-enum-to-u8-slice-derive-0.1)
+        ("rust-env-logger" ,rust-env-logger-0.6)
+        ("rust-jemallocator" ,rust-jemallocator-0.3)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-parking-lot" ,rust-parking-lot-0.9)
+        ("rust-ring" ,rust-ring-0.16)
+        ("rust-rustls" ,rust-rustls-0.16)
+        ("rust-sct" ,rust-sct-0.6)
+        ("rust-untrusted" ,rust-untrusted-0.7)
+        ("rust-walkdir" ,rust-walkdir-2)
+        ("rust-webpki" ,rust-webpki-0.21)
+        ("rust-webpki-roots" ,rust-webpki-roots-0.17))
+       #:cargo-development-inputs
+       (("rust-cfg-if" ,rust-cfg-if-1))))
+    (home-page "https://github.com/mesalock-linux/mesalink")
+    (synopsis "Memory-safe and OpenSSL-compatible TLS library")
+    (description
+     "MesaLink is a memory-safe and OpenSSL-compatible TLS library
+based on Rustls and Ring.")
+    (license license:bsd-3)))
+
 (define-public rust-metadeps-1.1
   (package
     (name "rust-metadeps")
@@ -13933,6 +19705,28 @@ for Rust structs.")
     (description "Rust bindings for Metal.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-mimalloc-0.1
+  (package
+    (name "rust-mimalloc")
+    (version "0.1.20")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "mimalloc" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0x74b6jv6pxfl6bh44bnch6ajm3l5z3zq8w8mqlscbq8d77rnx80"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-libmimalloc-sys" ,rust-libmimalloc-sys-0.1))))
+    (home-page "https://crates.io/crates/mimalloc")
+    (synopsis "Performance and security oriented drop-in allocator")
+    (description "This package provides a performance and security oriented
+drop-in allocator.")
+    (license license:expat)))
+
 (define-public rust-mime-0.3
   (package
     (name "rust-mime")
@@ -13954,6 +19748,32 @@ for Rust structs.")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-mime-guess-2
+  (package
+    (name "rust-mime-guess")
+    (version "2.0.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "mime_guess" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "04pjpbl90z4yn0cmifvwgf4mqznciw6b095k626q96bxx71d9116"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-mime" ,rust-mime-0.3)
+        ("rust-unicase" ,rust-unicase-2))
+       #:cargo-development-inputs
+       (("rust-criterion" ,rust-criterion-0.3)
+        ("rust-unicase" ,rust-unicase-2))))
+    (home-page "https://github.com/abonander/mime_guess")
+    (synopsis "Detect a file's MIME type by its extension")
+    (description "This package provides a simple crate for detection of a
+file's MIME type by its extension.")
+    (license license:expat)))
+
 (define-public rust-miniz-oxide-0.3
   (package
     (name "rust-miniz-oxide")
@@ -14010,7 +19830,7 @@ streaming API for miniz_oxide.")
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
-       (("rust-crc32fast" ,rust-crc32fast-1.2)
+       (("rust-crc32fast" ,rust-crc32fast-1)
         ("rust-libc" ,rust-libc-0.2)
         ("rust-miniz-oxide" ,rust-miniz-oxide-0.2))
        #:cargo-development-inputs
@@ -14067,20 +19887,48 @@ drop-in replacement for miniz.")
      "This package provides math interoperability standard types.")
     (license license:expat)))
 
+(define-public rust-mio-0.7
+  (package
+    (name "rust-mio")
+    (version "0.7.6")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "mio" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "12qsvmsmpijnghgci5i0liskvwxrbg2dz6hc09kgvwaf0s3whfzk"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-libc" ,rust-libc-0.2)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-miow" ,rust-miow-0.3)
+        ("rust-ntapi" ,rust-ntapi-0.3)
+        ("rust-winapi" ,rust-winapi-0.3))
+       #:cargo-development-inputs
+       (("rust-env-logger" ,rust-env-logger-0.6)
+        ("rust-rand" ,rust-rand-0.4))))
+    (home-page "https://github.com/tokio-rs/mio")
+    (synopsis "Lightweight non-blocking IO")
+    (description
+     "Mio is a fast, low-level I/O library for Rust focusing on non-blocking
+APIs and event notification for building I/O apps with as little overhead as
+possible over the OS abstractions.")
+    (license license:expat)))
+
 (define-public rust-mio-0.6
   (package
+    (inherit rust-mio-0.7)
     (name "rust-mio")
     (version "0.6.21")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "mio" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32
-         "13q02a7cwc140aygf8amadpzpl5lyj3p2r4wnvgydfpnphifqb9h"))))
-    (build-system cargo-build-system)
+        (base32 "13q02a7cwc140aygf8amadpzpl5lyj3p2r4wnvgydfpnphifqb9h"))))
     (arguments
      `(#:tests? #f
        #:cargo-inputs
@@ -14098,11 +19946,7 @@ drop-in replacement for miniz.")
        #:cargo-development-inputs
        (("rust-bytes" ,rust-bytes-0.3)
         ("rust-env-logger" ,rust-env-logger-0.4)
-        ("rust-tempdir" ,rust-tempdir-0.3))))
-    (home-page "https://github.com/tokio-rs/mio")
-    (synopsis "Lightweight non-blocking IO")
-    (description "Lightweight non-blocking IO.")
-    (license license:expat)))
+        ("rust-tempdir" ,rust-tempdir-0.3))))))
 
 (define-public rust-mio-anonymous-pipes-0.1
   (package
@@ -14147,7 +19991,7 @@ drop-in replacement for miniz.")
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-lazycell" ,rust-lazycell-1.2)
+       (("rust-lazycell" ,rust-lazycell-1)
         ("rust-log" ,rust-log-0.4)
         ("rust-mio" ,rust-mio-0.6)
         ("rust-slab" ,rust-slab-0.4))))
@@ -14217,19 +20061,17 @@ drop-in replacement for miniz.")
 (define-public rust-miow-0.3
   (package
     (name "rust-miow")
-    (version "0.3.3")
+    (version "0.3.6")
     (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "miow" version))
-        (file-name (string-append name "-" version ".crate"))
-        (sha256
-         (base32
-          "09ljvx6wg30f2xlv7b7hhpkw7k312n3hjgmrbhwzhz9x03ra0sir"))))
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "miow" version))
+       (file-name (string-append name "-" version ".crate"))
+       (sha256
+        (base32 "15sqdhh29dqgw5xh59clwv6scbsbvdkbmdc16hbfvyq7b2sw2css"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-socket2" ,rust-socket2-0.3)
         ("rust-winapi" ,rust-winapi-0.3))
        #:cargo-development-inputs
@@ -14265,6 +20107,40 @@ IOCP and Async I/O abstractions.")
        #:cargo-development-inputs
        (("rust-rand" ,rust-rand-0.3))))))
 
+(define-public rust-mockito-0.23
+  (package
+    (name "rust-mockito")
+    (version "0.23.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "mockito" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0kh2wg24441miqcnrp2miaapphn8wgm18x23yjq45pajsjxfd0mf"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-test-flags
+       '("--release"
+         "--"
+         "--skip=test_assert_with_last_unmatched_request"
+         "--skip=test_assert_with_last_unmatched_request_and_headers")
+       #:cargo-inputs
+       (("rust-assert-json-diff" ,rust-assert-json-diff-1)
+        ("rust-colored" ,rust-colored-1)
+        ("rust-difference" ,rust-difference-2)
+        ("rust-httparse" ,rust-httparse-1)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-percent-encoding" ,rust-percent-encoding-2)
+        ("rust-rand" ,rust-rand-0.7)
+        ("rust-regex" ,rust-regex-1)
+        ("rust-serde-json" ,rust-serde-json-1))))
+    (home-page "https://github.com/lipanski/mockito")
+    (synopsis "HTTP mocking for Rust")
+    (description "This crate provides HTTP mocking for Rust.")
+    (license license:expat)))
+
 (define-public rust-model-0.1
   (package
     (name "rust-model")
@@ -14311,8 +20187,139 @@ checking.")
       "Chaining APIs for both self -> Self and &mut self methods.")
     (license license:expat)))
 
+(define-public rust-multi-default-trait-impl-0.1
+  (package
+    (name "rust-multi-default-trait-impl")
+    (version "0.1.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "multi-default-trait-impl" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1r6y5zb6kg655zi02yk4amkwsgds5ay9ag1dk30cls7rn3dlvvqs"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-1))))
+    (home-page "https://github.com/hainish/multi-default-trait-impl")
+    (synopsis "Define multiple implementations of trait")
+    (description
+     "This library contains two attribute macros: @code{default_trait_impl}
+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-mysqlclient-sys-0.2
+  (package
+    (name "rust-mysqlclient-sys")
+    (version "0.2.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "mysqlclient-sys" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "11ggkcbfnmp81amc9g0j98dk17fnmqcp9smgm9w401286kckg5ky"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-pkg-config" ,rust-pkg-config-0.3)
+        ("rust-vcpkg" ,rust-vcpkg-0.2))))
+    (native-inputs
+     `(("mariadb" ,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
+libmysqlclient.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-nanorand-0.5
+  (package
+    (name "rust-nanorand")
+    (version "0.5.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "nanorand" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1ryi6jdfsfij4di33f269099g7m32rlr7sv7j4pklnjcj2xxfwri"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #true              ;error with pre-release randomize
+       #:cargo-inputs
+       (("rust-getrandom" ,rust-getrandom-0.2)
+        ("rust-zeroize" ,rust-zeroize-1))
+       #:cargo-development-inputs
+       (("rust-criterion" ,rust-criterion-0.3)
+        ("rust-fastrand" ,rust-fastrand-1)
+        ("rust-hex" ,rust-hex-0.4)
+        ("rust-random-fast-rng" ,rust-random-fast-rng-0.1)
+        ("rust-randomize" ,rust-randomize-4))))
+    (home-page "https://github.com/aspenluxxxy/nanorand-rs")
+    (synopsis "Tiny, fast, zero-dep library for random number generation")
+    (description
+     "This library is meant for fast, random number generation with
+quick compile time, and minimal dependencies.")
+    (license license:zlib)))
+
+(define-public rust-nanorand-0.4
+  (package
+    (inherit rust-nanorand-0.5)
+    (name "rust-nanorand")
+    (version "0.4.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "nanorand" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1ifpjgir1a6lw64jkb6la5hb8j5jvqq70nmxgzjj0cjf13jd3kys"))))
+    (arguments
+     `(#:skip-build? #true              ;error with pre-release randomize
+       #:cargo-inputs
+       (("rust-getrandom" ,rust-getrandom-0.2)
+        ("rust-zeroize" ,rust-zeroize-1))
+       #:cargo-development-inputs
+       (("rust-criterion" ,rust-criterion-0.3)
+        ("rust-fastrand" ,rust-fastrand-1)
+        ("rust-hex" ,rust-hex-0.4)
+        ("rust-random-fast-rng" ,rust-random-fast-rng-0.1)
+        ("rust-randomize" ,rust-randomize-4))))))
+
+(define-public rust-nasm-rs-0.2
+  (package
+    (name "rust-nasm-rs")
+    (version "0.2.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "nasm-rs" version))
+        (file-name
+          (string-append name "-" version ".tar.gz"))
+        (sha256
+          (base32
+            "1lgc3gg32hj4pcbfp07vzwy013smdm27469fyy4rqgyil3x46vx7"))))
+    (build-system cargo-build-system)
+    (arguments
+      `(#:cargo-inputs
+        (("rust-arrayvec" ,rust-arrayvec-0.5)
+         ("rust-rayon" ,rust-rayon-1))))
+    (home-page "https://github.com/medek/nasm-rs")
+    (synopsis "Run NASM during your Cargo build")
+    (description "Run NASM during your Cargo build.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-nasm-rs-0.1
   (package
+    (inherit rust-nasm-rs-0.2)
     (name "rust-nasm-rs")
     (version "0.1.7")
     (source
@@ -14328,16 +20335,12 @@ checking.")
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
-       (("rust-rayon" ,rust-rayon-1))))
-    (home-page "https://github.com/medek/nasm-rs")
-    (synopsis "Run NASM during your Cargo build")
-    (description "Run NASM during your Cargo build.")
-    (license (list license:expat license:asl2.0))))
+       (("rust-rayon" ,rust-rayon-1))))))
 
-(define-public rust-nalgebra-0.19
+(define-public rust-nalgebra-0.21
   (package
     (name "rust-nalgebra")
-    (version "0.19.0")
+    (version "0.21.1")
     (source
       (origin
         (method url-fetch)
@@ -14346,7 +20349,7 @@ checking.")
          (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "0i87k57nav221lnr9z7ljlwxh8073qsx33bajdm146y00q805fqa"))))
+          "11ili22n4ffgcjbgvbjqmpbd67qrl2acqbpymg6z7d2h7my19dnn"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -14359,16 +20362,18 @@ checking.")
         ("rust-num-complex" ,rust-num-complex-0.2)
         ("rust-num-rational" ,rust-num-rational-0.2)
         ("rust-num-traits" ,rust-num-traits-0.2)
-        ("rust-pest" ,rust-pest-2.1)
-        ("rust-pest-derive" ,rust-pest-derive-2.1)
+        ("rust-pest" ,rust-pest-2)
+        ("rust-pest-derive" ,rust-pest-derive-2)
         ("rust-quickcheck" ,rust-quickcheck-0.9)
         ("rust-rand" ,rust-rand-0.7)
         ("rust-rand-distr" ,rust-rand-distr-0.2)
         ("rust-serde" ,rust-serde-1)
         ("rust-serde-derive" ,rust-serde-derive-1)
+        ("rust-simba" ,rust-simba-0.1)
         ("rust-typenum" ,rust-typenum-1))
        #:cargo-development-inputs
-       (("rust-rand-xorshift" ,rust-rand-xorshift-0.2)
+       (("rust-rand-isaac" ,rust-rand-isaac-0.2)
+        ("rust-rand-xorshift" ,rust-rand-xorshift-0.2)
         ("rust-serde-json" ,rust-serde-json-1))))
     (home-page "https://nalgebra.org")
     (synopsis "Linear algebra library")
@@ -14377,6 +20382,43 @@ checking.")
 statically-sized or dynamically-sized matrices.")
     (license license:bsd-3)))
 
+(define-public rust-nalgebra-0.19
+  (package
+    (inherit rust-nalgebra-0.21)
+    (name "rust-nalgebra")
+    (version "0.19.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "nalgebra" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0i87k57nav221lnr9z7ljlwxh8073qsx33bajdm146y00q805fqa"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-abomonation" ,rust-abomonation-0.7)
+        ("rust-alga" ,rust-alga-0.9)
+        ("rust-approx" ,rust-approx-0.3)
+        ("rust-generic-array" ,rust-generic-array-0.13)
+        ("rust-matrixmultiply" ,rust-matrixmultiply-0.2)
+        ("rust-mint" ,rust-mint-0.5)
+        ("rust-num-complex" ,rust-num-complex-0.2)
+        ("rust-num-rational" ,rust-num-rational-0.2)
+        ("rust-num-traits" ,rust-num-traits-0.2)
+        ("rust-pest" ,rust-pest-2)
+        ("rust-pest-derive" ,rust-pest-derive-2)
+        ("rust-quickcheck" ,rust-quickcheck-0.9)
+        ("rust-rand" ,rust-rand-0.7)
+        ("rust-rand-distr" ,rust-rand-distr-0.2)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-derive" ,rust-serde-derive-1)
+        ("rust-typenum" ,rust-typenum-1))
+       #:cargo-development-inputs
+       (("rust-rand-xorshift" ,rust-rand-xorshift-0.2)
+        ("rust-serde-json" ,rust-serde-json-1))))))
+
 (define-public rust-nalgebra-0.18
   (package
     (inherit rust-nalgebra-0.19)
@@ -14402,8 +20444,8 @@ statically-sized or dynamically-sized matrices.")
         ("rust-num-complex" ,rust-num-complex-0.2)
         ("rust-num-rational" ,rust-num-rational-0.2)
         ("rust-num-traits" ,rust-num-traits-0.2)
-        ("rust-pest" ,rust-pest-2.1)
-        ("rust-pest-derive" ,rust-pest-derive-2.1)
+        ("rust-pest" ,rust-pest-2)
+        ("rust-pest-derive" ,rust-pest-derive-2)
         ("rust-quickcheck" ,rust-quickcheck-0.8)
         ("rust-rand" ,rust-rand-0.6)
         ("rust-serde" ,rust-serde-1)
@@ -14436,22 +20478,126 @@ statically-sized or dynamically-sized matrices.")
 IO of Windows's named pipes.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-napi-0.5
+  (package
+    (name "rust-napi")
+    (version "0.5.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "napi" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0mp0di7zv1r9gn3r3pmqnyy6q94akd9d6bl1p7m76nm9hgj9rw56"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-encoding-rs" ,rust-encoding-rs-0.8)
+        ("rust-futures" ,rust-futures-0.3)
+        ("rust-napi-sys" ,rust-napi-sys-0.4)
+        ("rust-once-cell" ,rust-once-cell-1)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-tokio" ,rust-tokio-0.2))
+       #:cargo-development-inputs
+       (("rust-napi-build" ,rust-napi-build-0.2))))
+    (home-page "https://github.com/napi-rs/napi-rs")
+    (synopsis "N-API bindings")
+    (description "This package provides N-API bindings.")
+    (license license:expat)))
+
+(define-public rust-napi-build-0.2
+  (package
+    (name "rust-napi-build")
+    (version "0.2.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "napi-build" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1z02mlw1wa01fjpjnqns3f3vxacbg1jnk98hcg3pgwp5xy3zdyqq"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-cfg-if" ,rust-cfg-if-0.1)
+        ("rust-reqwest" ,rust-reqwest-0.10))))
+    (home-page "https://github.com/napi-rs/napi-rs")
+    (synopsis "N-API build support")
+    (description "This package provides N-API build support.")
+    (license license:expat)))
+
+(define-public rust-napi-derive-0.5
+  (package
+    (name "rust-napi-derive")
+    (version "0.5.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "napi-derive" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0kkgpzw4i6f0zkg80v9vhr7y5rg25q3kv67029i1gcgsrxlqx4zi"))))
+    (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/napi-rs/napi-rs")
+    (synopsis "N-API procedural macros")
+    (description "This package provides N-API procedural macros.")
+    (license license:expat)))
+
+(define-public rust-napi-sys-0.4
+  (package
+    (name "rust-napi-sys")
+    (version "0.4.7")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "napi-sys" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0cjirf6n4i2lw65iaww8d4hahv3cbfm5ka9hlansvnbfgzwadzq9"))))
+    (build-system cargo-build-system)
+    (inputs
+     `(("openssl" ,openssl)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bindgen" ,rust-bindgen-0.55)
+        ("rust-semver" ,rust-semver-0.10)
+        ("rust-tar" ,rust-tar-0.4))
+       #:cargo-development-inputs
+       (("rust-flate2" ,rust-flate2-1)
+        ("rust-glob" ,rust-glob-0.3)
+        ("rust-regex" ,rust-regex-1)
+        ("rust-reqwest" ,rust-reqwest-0.10))))
+    (home-page "https://github.com/napi-rs/napi-rs")
+    (synopsis "NodeJS N-API raw binding")
+    (description "This package provides a NodeJS N-API raw binding.")
+    (license license:expat)))
+
 (define-public rust-native-tls-0.2
   (package
     (name "rust-native-tls")
-    (version "0.2.3")
+    (version "0.2.6")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "native-tls" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32
-         "0ki7cj4wzyd2nach4qdjly69sp7rs0yz3n3z2ii4mm1gqajg2bab"))))
+        (base32 "0grsinsgq1pd70c6k9mif7wambwq2jxh8jhvdgwf9i7dnlwpkk3g"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:tests? #f      ; tests require network access
+     `(#:tests? #f                      ; tests require network access
        #:cargo-inputs
        (("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-libc" ,rust-libc-0.2)
@@ -14460,21 +20606,15 @@ IO of Windows's named pipes.")
         ("rust-openssl-probe" ,rust-openssl-probe-0.1)
         ("rust-openssl-sys" ,rust-openssl-sys-0.9)
         ("rust-schannel" ,rust-schannel-0.1)
-        ("rust-security-framework" ,rust-security-framework-0.3)
-        ("rust-security-framework-sys" ,rust-security-framework-sys-0.3)
+        ("rust-security-framework" ,rust-security-framework-2)
+        ("rust-security-framework-sys" ,rust-security-framework-sys-2)
         ("rust-tempfile" ,rust-tempfile-3))
        #:cargo-development-inputs
-       (("rust-hex" ,rust-hex-0.3))
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'find-openssl
-           (lambda* (#:key inputs #:allow-other-keys)
-             (let ((openssl (assoc-ref inputs "openssl")))
-               (setenv "OPENSSL_DIR" openssl))
-             #t)))))
+       (("rust-hex" ,rust-hex-0.4))))
     (native-inputs
-     `(("openssl" ,openssl)
-       ("pkg-config" ,pkg-config)))
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("openssl" ,openssl)))
     (home-page "https://github.com/sfackler/rust-native-tls")
     (synopsis
      "Wrapper over a platform's native TLS implementation")
@@ -14502,6 +20642,163 @@ IO of Windows's named pipes.")
      "This package provides a crate to perform natural ordering for Rust.")
     (license license:expat)))
 
+(define-public rust-nb-connect-1
+  (package
+    (name "rust-nb-connect")
+    (version "1.0.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "nb-connect" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1649m71wc0cg1rqgl8vbh0489znkhpwgl0isjd5x8mz470ash8w1"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-libc" ,rust-libc-0.2)
+        ("rust-winapi" ,rust-winapi-0.3))
+       #:cargo-development-inputs
+       (("rust-polling" ,rust-polling-2))))
+    (home-page "https://github.com/stjepang/nb-connect")
+    (synopsis "Non-blocking TCP or Unix connect")
+    (description
+     "This crate allows you to create a TcpStream or a UnixStream in
+a non-blocking way, without waiting for the connection to become fully
+established.")
+    (license (list license:asl2.0 license:expat))))
+
+(define-public rust-ndarray-0.12
+  (package
+    (name "rust-ndarray")
+    (version "0.12.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "ndarray" version))
+        (file-name (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0a5rfwcbqnvbwi3nw5sfz6kf0flhmjxs64s0b4kxc6lhmyl81wvw"))
+        (patches (search-patches "rust-ndarray-remove-blas-src-dep.patch"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-itertools" ,rust-itertools-0.7)
+        ("rust-matrixmultiply" ,rust-matrixmultiply-0.1)
+        ("rust-num-complex" ,rust-num-complex-0.2)
+        ("rust-cblas-sys" ,rust-cblas-sys-0.1)
+        ("rust-rustc-serialize" ,rust-rustc-serialize-0.3)
+        ("rust-serde" ,rust-serde-1))
+       #:cargo-development-inputs
+       (("rust-defmac" ,rust-defmac-0.1)
+        ("rust-quickcheck" ,rust-quickcheck-0.7)
+        ("rust-rawpointer" ,rust-rawpointer-0.1))))
+    (home-page "https://github.com/rust-ndarray/ndarray")
+    (synopsis "N-dimensional container for general elements and for numerics")
+    (description "@code{ndarray} implements an n-dimensional container for
+general elements and for numerics.")
+    (license (list license:asl2.0
+                   license:expat))))
+
+(define-public rust-ndk-0.2
+  (package
+    (name "rust-ndk")
+    (version "0.2.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "ndk" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0wvf4hy18lpfkr4bap846qv2cx1vdg3x0d4hcfba9l5yzv0ngcay"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #true              ;XXX: Android only
+       #:cargo-inputs
+       (("rust-jni" ,rust-jni-0.14)
+        ("rust-jni-glue" ,rust-jni-glue-0.0)
+        ("rust-jni-sys" ,rust-jni-sys-0.3)
+        ("rust-ndk-sys" ,rust-ndk-sys-0.2)
+        ("rust-num-enum" ,rust-num-enum-0.4)
+        ("rust-thiserror" ,rust-thiserror-1))))
+    (home-page "https://github.com/rust-windowing/android-ndk-rs")
+    (synopsis "Safe Rust bindings to the Android NDK")
+    (description
+     "This package provides safe Rust bindings to the Android NDK.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-ndk-glue-0.2
+  (package
+    (name "rust-ndk-glue")
+    (version "0.2.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "ndk-glue" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0hajn6nsg6i3khi7yr2ayafpiznm5z3k5v64afqnz753nyw9kwxx"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #true              ;XXX: Android only
+       #:cargo-inputs
+       (("rust-android-logger" ,rust-android-logger-0.8)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-ndk" ,rust-ndk-0.2)
+        ("rust-ndk-macro" ,rust-ndk-macro-0.2)
+        ("rust-ndk-sys" ,rust-ndk-sys-0.2))))
+    (home-page "https://github.com/rust-windowing/android-ndk-rs")
+    (synopsis "Startup code for Android binaries")
+    (description
+     "This package provides startup code for Android binaries.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-ndk-macro-0.2
+  (package
+    (name "rust-ndk-macro")
+    (version "0.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "ndk-macro" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "07a8vjr4fpksssgp453bf82n73i4i17yj1lvbgvd0964glqcdl85"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-darling" ,rust-darling-0.10)
+        ("rust-proc-macro-crate" ,rust-proc-macro-crate-0.1)
+        ("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-1))))
+    (home-page "https://github.com/rust-windowing/android-ndk-rs")
+    (synopsis "Helper macros for android ndk")
+    (description "This package provides helper macros for android ndk.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-ndk-sys-0.2
+  (package
+    (name "rust-ndk-sys")
+    (version "0.2.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "ndk-sys" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "13c68a217ag3k18vlffpcj2qjfinchxxchzlwnsp075v7p5j4jf4"))))
+    (build-system cargo-build-system)
+    (arguments `(#:skip-build? #t))
+    (home-page "https://github.com/rust-windowing/android-ndk-rs")
+    (synopsis "FFI bindings for the Android NDK")
+    (description "This package provides FFI bindings for the Android NDK.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-net2-0.2
   (package
     (name "rust-net2")
@@ -14529,30 +20826,6 @@ types as proposed in RFC 1158.")
     (license (list license:asl2.0
                    license:expat))))
 
-(define-public rust-netlib-src-0.7
-  (package
-    (name "rust-netlib-src")
-    (version "0.7.4")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "netlib-src" version))
-        (file-name (string-append name "-" version ".crate"))
-        (sha256
-         (base32
-          "112hwfw1zzdj10h3j213xxqjrq38iygb3nb3ijay65ycmrg819s4"))))
-    (build-system cargo-build-system)
-    ;(inputs
-    ; `(("gfortran:lib" ,gfortran "lib")
-    ;   ("lapack" ,lapack)))
-    (home-page "https://github.com/blas-lapack-rs/netlib-src")
-    (synopsis "Source of BLAS and LAPACK via Netlib")
-    (description
-     "The package provides a source of BLAS and LAPACK via Netlib.")
-    (properties '((hidden? . #t)))
-    (license (list license:asl2.0
-                   license:expat))))
-
 (define-public rust-nettle-7
   (package
     (name "rust-nettle")
@@ -14578,24 +20851,30 @@ types as proposed in RFC 1158.")
        (("rust-getrandom" ,rust-getrandom-0.1)
         ("rust-libc" ,rust-libc-0.2)
         ("rust-nettle-sys" ,rust-nettle-sys-2)
-        ("rust-thiserror" ,rust-thiserror-1.0))
+        ("rust-thiserror" ,rust-thiserror-1))
        #:cargo-development-inputs
        (("rust-bindgen" ,rust-bindgen-0.51)
-        ("rust-pkg-config" ,rust-pkg-config-0.3))
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'set-missing-env-vars
-           (lambda* (#:key inputs #:allow-other-keys)
-             ;; FIXME: why do we need to set this?
-             (setenv "LIBCLANG_PATH"
-                     (string-append (assoc-ref inputs "clang") "/lib"))
-             #t)))))
+        ("rust-pkg-config" ,rust-pkg-config-0.3))))
     (home-page "https://gitlab.com/sequoia-pgp/nettle-rs")
   (synopsis "Rust bindings for the Nettle cryptographic library")
   (description "This package provides Rust bindings for the Nettle
 cryptographic library.")
   (license (list license:lgpl3 license:gpl2 license:gpl3))))
 
+(define-public rust-nettle-5
+  (package
+    (inherit rust-nettle-7)
+    (version "5.0.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "nettle" version))
+       (file-name
+        (string-append (package-name rust-nettle-7) "-" version ".tar.gz"))
+       (sha256
+        (base32 "0zfplqdf3mag8r7lc124hl24vri8yg711jmm8gl1mpwnlhass2n4"))
+       (patches (search-patches "rust-nettle-disable-vendor.patch"))))))
+
 (define-public rust-nettle-sys-2
   (package
     (name "rust-nettle-sys")
@@ -14615,8 +20894,7 @@ cryptographic library.")
     (inputs
      `(("nettle", nettle)))
     (arguments
-     `(#:skip-build? #t
-       #:cargo-development-inputs
+     `(#:cargo-inputs
        (("rust-bindgen" ,rust-bindgen-0.51)
         ("rust-pkg-config" ,rust-pkg-config-0.3))))
     (home-page "https://gitlab.com/sequoia-pgp/nettle-sys")
@@ -14650,40 +20928,97 @@ cryptographic library.")
 release (fork of debug_unreachable)")
     (license license:expat)))
 
-(define-public rust-nix-0.17
+(define-public rust-nix-0.19
   (package
     (name "rust-nix")
-    (version "0.17.0")
+    (version "0.19.1")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "nix" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32
-         "0qvk09kib3jpvpbaps0682nav20ibql61pf1s2h8jx9v5igpir2h"))))
+        (base32 "1wk1pmaf9pv84sc4jf19gm1as2yq3ydwcx0n5nc1bpsgzq6bmk5j"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:tests? #f      ; test suite hangs
+     `(#:tests? #f                      ; test suite hangs
        #:cargo-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)
-        ("rust-void" ,rust-void-1))
+        ("rust-cfg-if" ,rust-cfg-if-1)
+        ("rust-libc" ,rust-libc-0.2))
        #:cargo-development-inputs
        (("rust-bytes" ,rust-bytes-0.4)
         ("rust-caps" ,rust-caps-0.3)
         ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-rand" ,rust-rand-0.6)
+        ("rust-semver" ,rust-semver-0.9)
         ("rust-sysctl" ,rust-sysctl-0.1)
         ("rust-tempfile" ,rust-tempfile-3))))
     (home-page "https://github.com/nix-rust/nix")
     (synopsis "Rust friendly bindings to *nix APIs")
-    (description "Rust friendly bindings to *nix APIs.")
+    (description
+     "Nix seeks to provide friendly bindings to various *nix platform APIs.
+The goal is to not provide a 100% unified interface, but to unify what can be
+while still providing platform specific APIs.")
     (license license:expat)))
 
+(define-public rust-nix-0.18
+  (package
+    (inherit rust-nix-0.19)
+    (name "rust-nix")
+    (version "0.18.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "nix" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0m8h9bskjjqx9sk687z8bxqg2kpwhdh78jq6zfaxsb8llvk0yic3"))))
+    (arguments
+     `(#:tests? #f                      ; test suite hangs
+       #:cargo-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))
+       #:cargo-development-inputs
+       (("rust-bytes" ,rust-bytes-0.4)
+        ("rust-caps" ,rust-caps-0.3)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-rand" ,rust-rand-0.6)
+        ("rust-semver" ,rust-semver-0.9)
+        ("rust-sysctl" ,rust-sysctl-0.1)
+        ("rust-tempfile" ,rust-tempfile-3))))))
+
+(define-public rust-nix-0.17
+  (package
+    (inherit rust-nix-0.19)
+    (name "rust-nix")
+    (version "0.17.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "nix" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0qvk09kib3jpvpbaps0682nav20ibql61pf1s2h8jx9v5igpir2h"))))
+    (arguments
+     `(#:tests? #f                      ; test suite hangs
+       #:cargo-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)
+        ("rust-void" ,rust-void-1))
+       #:cargo-development-inputs
+       (("rust-bytes" ,rust-bytes-0.4)
+        ("rust-caps" ,rust-caps-0.3)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-rand" ,rust-rand-0.6)
+        ("rust-sysctl" ,rust-sysctl-0.1)
+        ("rust-tempfile" ,rust-tempfile-3))))))
+
 (define-public rust-nix-0.15
   (package
     (inherit rust-nix-0.17)
@@ -14796,10 +21131,10 @@ implementation (which is unstable / requires nightly).")
     (license (list license:asl2.0
                    license:expat))))
 
-(define-public rust-nom-5
+(define-public rust-nom-6
   (package
     (name "rust-nom")
-    (version "5.1.2")
+    (version "6.0.1")
     (source
      (origin
        (method url-fetch)
@@ -14808,20 +21143,21 @@ implementation (which is unstable / requires nightly).")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1br74rwdp3c2ddga03bphnf355spn4mzwf1slg0a30zd4qnjdd7z"))))
+         "1w0ppq112myzwk23c8m0wmq0nv73xvn0g9gl2kfm83aadgylq0w8"))))
     (build-system cargo-build-system)
     (arguments
      `(#:tests? #f  ; Tests require example directory, not included in tarball.
        #:cargo-inputs
-       (("rust-lazy-static" ,rust-lazy-static-1)
+       (("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.2)
+       (("rust-criterion" ,rust-criterion-0.3)
         ("rust-doc-comment" ,rust-doc-comment-0.3)
-        ("rust-jemallocator" ,rust-jemallocator-0.1))
+        ("rust-jemallocator" ,rust-jemallocator-0.3))
        #:phases
        (modify-phases %standard-phases
          (add-after 'configure 'override-jemalloc
@@ -14840,6 +21176,41 @@ implementation (which is unstable / requires nightly).")
 combinators library.")
     (license license:expat)))
 
+(define-public rust-nom-5
+  (package
+    (inherit rust-nom-6)
+    (name "rust-nom")
+    (version "5.1.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "nom" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1br74rwdp3c2ddga03bphnf355spn4mzwf1slg0a30zd4qnjdd7z"))))
+    (arguments
+     `(#:tests? #f  ; Tests require example directory, not included in tarball.
+       #:cargo-inputs
+       (("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.2)
+        ("rust-doc-comment" ,rust-doc-comment-0.3)
+        ("rust-jemallocator" ,rust-jemallocator-0.1))
+       #: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-4.2
   (package
     (inherit rust-nom-5)
@@ -14888,6 +21259,27 @@ combinators library.")
         ("rust-memchr" ,rust-memchr-1.0)
         ("rust-regex" ,rust-regex-0.2))))))
 
+(define-public rust-nom-2
+  (package
+    (inherit rust-nom-4.2)
+    (name "rust-nom")
+    (version "2.2.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "nom" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1zv6ig7nw532rl4p35jsahglfhyyznjkblwa6si6c0plxhlsflfg"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-lazy-static" ,rust-lazy-static-0.2)
+        ("rust-regex" ,rust-regex-0.2))
+       #:tests? #f))))
+
 (define-public rust-nom-1.2
   (package
     (inherit rust-nom-4.2)
@@ -14951,6 +21343,21 @@ combinators library.")
 with all line endings.")
     (license license:asl2.0)))
 
+(define-public rust-normalize-line-endings-0.2
+  (package
+    (inherit rust-normalize-line-endings-0.3)
+    (name "rust-normalize-line-endings")
+    (version "0.2.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "normalize-line-endings" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1a1knz9j1w5a1pl2q6whmjphm3z6p64r5njnam7syp5rx8wil2if"))))))
+
 (define-public rust-notify-4
   (package
     (name "rust-notify")
@@ -14980,15 +21387,111 @@ with all line endings.")
        #:cargo-development-inputs
        (("rust-tempfile" ,rust-tempfile-3))))
     (home-page "https://github.com/passcod/notify")
-    (synopsis "Cross-platform filesystem notification library")
+    (synopsis "Cross-platform file system notification library")
     (description
-     "Cross-platform filesystem notification library.")
+     "Cross-platform file system notification library.")
     (license license:cc0)))
 
-(define-public rust-num-0.2
+(define-public rust-ntapi-0.3
+  (package
+    (name "rust-ntapi")
+    (version "0.3.6")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "ntapi" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0i5daj9sr8wyi5jkpwpybln2jqpn59z0mqfc0dpdidipwh1bjsrz"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-winapi" ,rust-winapi-0.3))))
+    (home-page "")
+    (synopsis "FFI bindings for Native API")
+    (description "FFI bindings for Native API")
+    (license (list license:asl2.0 license:expat))))
+
+(define-public rust-ntest-0.3
+  (package
+    (name "rust-ntest")
+    (version "0.3.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "ntest" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "04cljndihkcqqwj061bgpnxyv7wqbd3f91ag1b3ryrayn7rrclxv"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-ntest-test-cases" ,rust-ntest-test-cases-0.3)
+        ("rust-ntest-timeout" ,rust-ntest-timeout-0.3)
+        ("rust-timebomb" ,rust-timebomb-0.1))
+       #:cargo-development-inputs
+       (("rust-ntest-test-cases" ,rust-ntest-test-cases-0.3)
+        ("rust-ntest-timeout" ,rust-ntest-timeout-0.3)
+        ("rust-timebomb" ,rust-timebomb-0.1))))
+    (home-page "https://github.com/becheran/ntest")
+    (synopsis "Testing framework for Rust")
+    (description "This package provides a testing framework for Rust which
+enhances the built-in library with some useful features.")
+    (license license:expat)))
+
+(define-public rust-ntest-test-cases-0.3
+  (package
+    (name "rust-ntest-test-cases")
+    (version "0.3.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "ntest_test_cases" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0b67m368599b2zgwx19psqz6n3m9m5532h1257x6vz1pym3gd2na"))))
+    (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/becheran/ntest")
+    (synopsis "Test cases for ntest framework")
+    (description "This package provides test cases for ntest framework.")
+    (license license:expat)))
+
+(define-public rust-ntest-timeout-0.3
+  (package
+    (name "rust-ntest-timeout")
+    (version "0.3.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "ntest_timeout" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0klryn3rgjxnq3cv6j8bwcsr0b7zw3x216h63144v22aja18p0g0"))))
+    (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)
+        ("rust-timebomb" ,rust-timebomb-0.1))))
+    (home-page "https://github.com/becheran/ntest")
+    (synopsis "Timeout attribute for the ntest framework")
+    (description "This package provides a timeout attribute for the ntest
+framework.")
+    (license license:expat)))
+
+(define-public rust-num-0.3
   (package
     (name "rust-num")
-    (version "0.2.1")
+    (version "0.3.0")
     (source
      (origin
        (method url-fetch)
@@ -14997,15 +21500,15 @@ with all line endings.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0dhcvhprvvx1iaaq7sxlgxw5awmj8dibni8vhizi59zyz4q60lxq"))))
+         "0jng6s3i51k3227id2z8h348l2da8x3jq4p3az9slkxwj5hifgmb"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-num-bigint" ,rust-num-bigint-0.2)
-        ("rust-num-complex" ,rust-num-complex-0.2)
+       (("rust-num-bigint" ,rust-num-bigint-0.3)
+        ("rust-num-complex" ,rust-num-complex-0.3)
         ("rust-num-integer" ,rust-num-integer-0.1)
         ("rust-num-iter" ,rust-num-iter-0.1)
-        ("rust-num-rational" ,rust-num-rational-0.2)
+        ("rust-num-rational" ,rust-num-rational-0.3)
         ("rust-num-traits" ,rust-num-traits-0.2))))
     (home-page "https://github.com/rust-num/num")
     (synopsis "Collection of numeric types and traits for Rust")
@@ -15014,6 +21517,29 @@ with all line endings.")
 including bigint, complex, rational, range iterators, generic integers, and more.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-num-0.2
+  (package
+    (inherit rust-num-0.3)
+    (name "rust-num")
+    (version "0.2.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "num" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0dhcvhprvvx1iaaq7sxlgxw5awmj8dibni8vhizi59zyz4q60lxq"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-num-bigint" ,rust-num-bigint-0.2)
+        ("rust-num-complex" ,rust-num-complex-0.2)
+        ("rust-num-integer" ,rust-num-integer-0.1)
+        ("rust-num-iter" ,rust-num-iter-0.1)
+        ("rust-num-rational" ,rust-num-rational-0.2)
+        ("rust-num-traits" ,rust-num-traits-0.2))))))
+
 (define-public rust-num-0.1
   (package
     (inherit rust-num-0.2)
@@ -15058,7 +21584,7 @@ including bigint, complex, rational, range iterators, generic integers, and more
         ("rust-quickcheck" ,rust-quickcheck-0.9)
         ("rust-rand" ,rust-rand-0.7)
         ("rust-serde" ,rust-serde-1)
-        ("rust-autocfg" ,rust-autocfg-1.0))))
+        ("rust-autocfg" ,rust-autocfg-1))))
     (home-page "https://github.com/rust-num/num-bigint")
     (synopsis "Big integer implementation for Rust")
     (description
@@ -15087,7 +21613,7 @@ including bigint, complex, rational, range iterators, generic integers, and more
         ("rust-quickcheck-macros" ,rust-quickcheck-macros-0.8)
         ("rust-rand" ,rust-rand-0.5)
         ("rust-serde" ,rust-serde-1)
-        ("rust-autocfg" ,rust-autocfg-1.0))
+        ("rust-autocfg" ,rust-autocfg-1))
        #:cargo-development-inputs
        (("rust-serde-test" ,rust-serde-test-1))))))
 
@@ -15115,6 +21641,39 @@ including bigint, complex, rational, range iterators, generic integers, and more
        #:cargo-development-inputs
        (("rust-rand" ,rust-rand-0.4))))))
 
+(define-public rust-num-bigint-dig-0.6
+  (package
+    (name "rust-num-bigint-dig")
+    (version "0.6.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "num-bigint-dig" version))
+        (file-name (string-append name "-" version ".tar.gz"))
+        (sha256
+          (base32 "1aljx3bxfnzq35i9pkbqkj0d0hc1wjc2dd60wccjqylz1wrkrl5k"))))
+    (build-system cargo-build-system)
+    (arguments
+      `(#:skip-build? #t
+        #:cargo-inputs
+        (("rust-autocfg" ,rust-autocfg-0.1)
+         ("rust-byteorder" ,rust-byteorder-1)
+         ("rust-lazy-static" ,rust-lazy-static-1)
+         ("rust-libm" ,rust-libm-0.2)
+         ("rust-num-integer" ,rust-num-integer-0.1)
+         ("rust-num-iter" ,rust-num-iter-0.1)
+         ("rust-num-traits" ,rust-num-traits-0.2)
+         ("rust-rand" ,rust-rand-0.7)
+         ("rust-serde" ,rust-serde-1)
+         ("rust-smallvec" ,rust-smallvec-1)
+         ("rust-zeroize" ,rust-zeroize-1))))
+    (home-page
+      "https://github.com/dignifiedquire/num-bigint")
+    (synopsis "Big integer implementation for Rust")
+    (description "This package provides a big integer implementation
+for Rust")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-num-complex-0.3
   (package
     (name "rust-num-complex")
@@ -15161,7 +21720,7 @@ including bigint, complex, rational, range iterators, generic integers, and more
        (("rust-num-traits" ,rust-num-traits-0.2)
         ("rust-rand" ,rust-rand-0.5)
         ("rust-serde" ,rust-serde-1)
-        ("rust-autocfg" ,rust-autocfg-1.0))))))
+        ("rust-autocfg" ,rust-autocfg-1))))))
 
 (define-public rust-num-complex-0.1
   (package
@@ -15212,7 +21771,7 @@ including bigint, complex, rational, range iterators, generic integers, and more
 (define-public rust-num-derive-0.3
   (package
     (name "rust-num-derive")
-    (version "0.3.0")
+    (version "0.3.2")
     (source
       (origin
         (method url-fetch)
@@ -15221,14 +21780,16 @@ including bigint, complex, rational, range iterators, generic integers, and more
          (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "0imprwv8cs01k46g56ajlvc97dp8kz51y2vn6cp9jkw1c6r1b2qc"))))
+          "1czs5215ypgbwg0qgy2i515xj3vfcgm8fw7gi4gmwsyv3a2bj2bg"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-proc-macro2" ,rust-proc-macro2-1)
         ("rust-syn" ,rust-syn-1)
-        ("rust-quote" ,rust-quote-1))))
+        ("rust-quote" ,rust-quote-1))
+       #:cargo-development-inputs
+       (("rust-num" ,rust-num-0.3)
+        ("rust-num-traits" ,rust-num-traits-0.2))))
     (home-page "https://github.com/rust-num/num-derive")
     (synopsis "Numeric syntax extensions")
     (description "This package provides numeric syntax extensions.")
@@ -15261,24 +21822,131 @@ including bigint, complex, rational, range iterators, generic integers, and more
     (description "Numeric syntax extensions in Rust.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-num-enum-0.4
+  (package
+    (name "rust-num-enum")
+    (version "0.4.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "num_enum" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1r1nisdzm9m7xm0389nwyi85jhx1bnh5pwllai44ngbgy1ymlmna"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #false                  ;missing files
+       #:cargo-inputs
+       (("rust-derivative" ,rust-derivative-2)
+        ("rust-num-enum" ,rust-num-enum-0.4)
+        ("rust-num-enum-derive" ,rust-num-enum-derive-0.4))))
+    (home-page "https://github.com/illicitonion/num_enum")
+    (synopsis "Macros easing inter-operation between primitives and enums")
+    (description
+     "This library provides procedural macros to make inter-operation between
+primitives and enums easier.")
+    (license license:bsd-3)))
+
+(define-public rust-num-enum-derive-0.4
+  (package
+    (name "rust-num-enum-derive")
+    (version "0.4.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "num_enum_derive" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "17fvb7xpxq2dsqp5nsz98w1qhkk3gnc56xis53009vnzvlys79gz"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f                      ;FIXME: some doc tests fail
+       #:cargo-inputs
+       (("rust-proc-macro-crate" ,rust-proc-macro-crate-0.1)
+        ("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-1))))
+    (home-page "https://github.com/illicitonion/num_enum")
+    (synopsis "Procedural macros to ease operation between primitives and enums")
+    (description
+     "This package provides procedural macros to make inter-operation between
+primitives and enums easier.")
+    (license license:bsd-3)))
+
+(define-public rust-num-format-0.4
+  (package
+    (name "rust-num-format")
+    (version "0.4.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "num-format" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0r94i9lhr15hk32494v9my31r0829w29yyp7iql98a1cf9wl3zms"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-arrayvec" ,rust-arrayvec-0.4)
+        ("rust-cfg-if" ,rust-cfg-if-0.1)
+        ("rust-encoding-rs" ,rust-encoding-rs-0.8)
+        ("rust-itoa" ,rust-itoa-0.4)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-num-bigint" ,rust-num-bigint-0.2)
+        ("rust-num-format-windows" ,rust-num-format-windows-0.3)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-widestring" ,rust-widestring-0.4)
+        ("rust-winapi" ,rust-winapi-0.3))))
+    (home-page "https://github.com/bcmyers/num-format")
+    (synopsis "Produce string-representations of numbers")
+    (description
+     "This package provides a Rust crate for producing string-representations
+of numbers, formatted according to international standards.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-num-format-windows-0.3
+  (package
+    (name "rust-num-format-windows")
+    (version "0.3.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "num-format-windows" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1sy5jxrbhv6s28c51ibzi34s8qcjm8b21nf7biray7v1qi89h5sf"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-bindgen" ,rust-bindgen-0.47))))
+    (home-page "https://github.com/bcmyers/num-format/num-format-windows")
+    (synopsis "Helper crate for @code{num-format}")
+    (description
+     "This package provides a helper crate for num-format.  Do not use it
+directly.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-num-integer-0.1
   (package
     (name "rust-num-integer")
-    (version "0.1.42")
+    (version "0.1.43")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "num-integer" version))
        (file-name
-        (string-append name "-" version ".crate"))
+        (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1fpw8yr9xwsf3qrh91rm7mzqaiwlc2dmnalsxv9pr9w1klpacviz"))))
+         "0nw79ynfvw8br6yncv27pw65y2vw2z7m3kv9g2hinm1dcrz4ancd"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-num-traits" ,rust-num-traits-0.2)
-        ("rust-autocfg" ,rust-autocfg-1.0))))
+        ("rust-autocfg" ,rust-autocfg-1))))
     (home-page "https://github.com/rust-num/num-integer")
     (synopsis "Integer traits and functions")
     (description "Integer traits and functions.")
@@ -15289,21 +21957,21 @@ including bigint, complex, rational, range iterators, generic integers, and more
 (define-public rust-num-iter-0.1
   (package
     (name "rust-num-iter")
-    (version "0.1.40")
+    (version "0.1.41")
     (source
       (origin
         (method url-fetch)
         (uri (crate-uri "num-iter" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "005wif3bk23b5jdg7l0cprzqzyc4jg0xjyzyykciv2ci08581c6z"))))
+          "17sb142lhmpsq17cf9wrffjh8vjk901axxf55565r6cgfiy6nvks"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-num-integer" ,rust-num-integer-0.1)
         ("rust-num-traits" ,rust-num-traits-0.2)
-        ("rust-autocfg" ,rust-autocfg-1.0))))
+        ("rust-autocfg" ,rust-autocfg-1))))
     (home-page "https://github.com/rust-num/num-iter")
     (synopsis "External iterators for generic mathematics")
     (description
@@ -15331,7 +21999,7 @@ including bigint, complex, rational, range iterators, generic integers, and more
         ("rust-num-integer" ,rust-num-integer-0.1)
         ("rust-num-traits" ,rust-num-traits-0.2)
         ("rust-serde" ,rust-serde-1)
-        ("rust-autocfg" ,rust-autocfg-1.0))))
+        ("rust-autocfg" ,rust-autocfg-1))))
     (home-page "https://github.com/rust-num/num-rational")
     (synopsis "Rational numbers implementation for Rust")
     (description
@@ -15358,7 +22026,7 @@ including bigint, complex, rational, range iterators, generic integers, and more
         ("rust-num-integer" ,rust-num-integer-0.1)
         ("rust-num-traits" ,rust-num-traits-0.2)
         ("rust-serde" ,rust-serde-1)
-        ("rust-autocfg" ,rust-autocfg-1.0))))))
+        ("rust-autocfg" ,rust-autocfg-1))))))
 
 (define-public rust-num-rational-0.1
   (package
@@ -15385,7 +22053,7 @@ including bigint, complex, rational, range iterators, generic integers, and more
 (define-public rust-num-traits-0.2
   (package
     (name "rust-num-traits")
-    (version "0.2.11")
+    (version "0.2.12")
     (source
      (origin
        (method url-fetch)
@@ -15394,11 +22062,11 @@ including bigint, complex, rational, range iterators, generic integers, and more
         (string-append name "-" version ".crate"))
        (sha256
         (base32
-         "15khrlm1bra50nd48ijl1vln13m9xg4fxzghf28jp16ic5zf8ay6"))))
+         "04fnzwlnn6fcy09jjbi9l7bj5dvg657x5c2sjgwfb3pl0z67n9mc"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-autocfg" ,rust-autocfg-1.0)
+       (("rust-autocfg" ,rust-autocfg-1)
         ("rust-libm" ,rust-libm-0.2))))
     (home-page "https://github.com/rust-num/num-traits")
     (synopsis "Numeric traits for generic mathematics")
@@ -15631,8 +22299,8 @@ Foundation framework.")
         ("rust-scroll" ,rust-scroll-0.10)
         ("rust-parity-wasm" ,rust-parity-wasm-0.41)
         ("rust-uuid" ,rust-uuid-0.8)
-        ("rust-flate2" ,rust-flate2-1.0)
-        ("rust-crc32fast" ,rust-crc32fast-1.2)
+        ("rust-flate2" ,rust-flate2-1)
+        ("rust-crc32fast" ,rust-crc32fast-1)
         ("rust-indexmap" ,rust-indexmap-1))))
     (home-page "https://github.com/gimli-rs/object")
     (synopsis "Unified interface for reading and writing object file formats")
@@ -15657,7 +22325,7 @@ writing object file formats.")
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
-       (("rust-flate2" ,rust-flate2-1.0)
+       (("rust-flate2" ,rust-flate2-1)
         ("rust-goblin" ,rust-goblin-0.0)
         ("rust-parity-wasm" ,rust-parity-wasm-0.40)
         ("rust-scroll" ,rust-scroll-0.9)
@@ -15729,71 +22397,102 @@ Things in odds may move to more appropriate crates if we find them.")
         ("rust-memchr" ,rust-memchr-2)
         ("rust-quickcheck" ,rust-quickcheck-0.4))))))
 
-(define-public rust-onig-5.0
+(define-public rust-onig-6
   (package
     (name "rust-onig")
-    (version "5.0.0")
+    (version "6.1.1")
     (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "onig" version))
-        (file-name
-         (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32
-          "0ivr0wq1zlyjhhkxpsnmpncg92sjx3rha8pnp3m1mzvgk7y27rz4"))))
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "onig" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1mcx125hh22kx2d0676hkk2gli6v8r6c4rp3wh5qy0dwxpcnzd1h"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
-       (("rust-libc" ,rust-libc-0.2)
-        ("rust-bitflags" ,rust-bitflags-1)
+       (("rust-bitflags" ,rust-bitflags-1)
         ("rust-lazy-static" ,rust-lazy-static-1)
-        ("rust-onig-sys" ,rust-onig-sys-69.2))))
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-onig-sys" ,rust-onig-sys-69.6))))
     (home-page "https://github.com/rust-onig/rust-onig")
-    (synopsis
-     "Rust bindings for the Oniguruma regular expression library")
+    (synopsis "Rust bindings for the Oniguruma regular expression library")
     (description
      "Rust-Onig is a set of Rust bindings for the Oniguruma regular expression
-library.  Oniguruma is a modern regex library with support for multiple
-character encodings and regex syntaxes.")
+library.")
     (license license:expat)))
 
-(define-public rust-onig-sys-69.2
+(define-public rust-onig-5.0
+  (package
+    (inherit rust-onig-6)
+    (name "rust-onig")
+    (version "5.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "onig" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0ivr0wq1zlyjhhkxpsnmpncg92sjx3rha8pnp3m1mzvgk7y27rz4"))))
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-libc" ,rust-libc-0.2)
+        ("rust-bitflags" ,rust-bitflags-1)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-onig-sys" ,rust-onig-sys-69.2))))))
+
+(define-public rust-onig-sys-69.6
   (package
     (name "rust-onig-sys")
-    (version "69.2.0")
+    (version "69.6.0")
     (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "onig_sys" version))
-        (file-name
-         (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32
-          "0kjijq29yx05xxg9snvqnfn53dl52hchb4sk3zhfr77mypxlx38a"))))
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "onig_sys" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0xapbm4mrmyar1lbs3xrly2hm2mkb38hji1j15fjw3scryb3q1pd"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
-       (("rust-pkg-config" ,rust-pkg-config-0.3)
-        ("rust-bindgen" ,rust-bindgen-0.50)
-        ("rust-cc" ,rust-cc-1))))
+       (("rust-bindgen" ,rust-bindgen-0.55)
+        ("rust-cc" ,rust-cc-1)
+        ("rust-pkg-config" ,rust-pkg-config-0.3))))
     (home-page "https://github.com/rust-onig/rust-onig")
-    (synopsis
-     "Rust bindings to the oniguruma library.")
+    (synopsis "Rust bindings to the Oniguruma library")
     (description
-      "The @code{onig_sys} crate contains raw rust bindings to the oniguruma
-library.  This crate exposes a set of unsafe functions which can then be used by
-other crates to create safe wrappers around Oniguruma.
-You probably don't want to link to this crate directly; instead check out the
-@code{onig} crate.")
+     "This crate contains raw Rust bindings to the Oniguruma library.
+This crate exposes a set of unsafe functions which can then be used by
+other crates to create safe wrappers around Oniguruma.")
     (license license:expat)))
 
-(define-public rust-once-cell-1.2
+(define-public rust-onig-sys-69.2
+  (package
+    (inherit rust-onig-sys-69.6)
+    (name "rust-onig-sys")
+    (version "69.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "onig_sys" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0kjijq29yx05xxg9snvqnfn53dl52hchb4sk3zhfr77mypxlx38a"))))
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-bindgen" ,rust-bindgen-0.50)
+        ("rust-cc" ,rust-cc-1)
+        ("rust-pkg-config" ,rust-pkg-config-0.3))))))
+
+(define-public rust-once-cell-1
   (package
     (name "rust-once-cell")
-    (version "1.2.0")
+    (version "1.5.2")
     (source
      (origin
        (method url-fetch)
@@ -15802,25 +22501,27 @@ You probably don't want to link to this crate directly; instead check out the
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1vdz8xlg3r05w3wfjimnc347hgm54i5nrqf72r4mlp0fcdplh7w9"))))
+         "183zs1dbmsv24mkafjypf9qwjrx46an58vb004a162l113sl3g8k"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-parking-lot" ,rust-parking-lot-0.9))
+     `(#:cargo-inputs
+       (("rust-parking-lot" ,rust-parking-lot-0.11))
        #:cargo-development-inputs
-       (("rust-crossbeam-utils" ,rust-crossbeam-utils-0.6)
+       (("rust-crossbeam-utils" ,rust-crossbeam-utils-0.7)
         ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-regex" ,rust-regex-1))))
     (home-page "https://github.com/matklad/once_cell")
     (synopsis "Single assignment cells and lazy values")
     (description
-     "Single assignment cells and lazy values.")
+     "This package provides two new cell-like types, @code{unsync::OnceCell}
+and @code{sync::OnceCell}.  OnceCell might store arbitrary non-copy types, can
+be assigned to at most once and provide direct access to the stored
+contents.")
     (license (list license:expat license:asl2.0))))
 
 (define-public rust-once-cell-0.1
   (package
-    (inherit rust-once-cell-1.2)
+    (inherit rust-once-cell-1)
     (name "rust-once-cell")
     (version "0.1.8")
     (source
@@ -15894,10 +22595,32 @@ You probably don't want to link to this crate directly; instead check out the
         (base32
          "02942l2gc7w5r4js7i9063x99szic5mzzk1055j83v4diqpbpxck"))))))
 
+(define-public rust-open-1
+  (package
+    (name "rust-open")
+    (version "1.4.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "open" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0j6ci7jc2aabvw0rvq7a51sw9s2rk3mfsq0s5zjakzjf27q3na3w"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("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
+     "Use this library to open a path or URL using the program configured on
+the system.")
+    (license license:expat)))
+
 (define-public rust-openssl-0.10
   (package
     (name "rust-openssl")
-    (version "0.10.26")
+    (version "0.10.30")
     (source
      (origin
        (method url-fetch)
@@ -15906,7 +22629,7 @@ You probably don't want to link to this crate directly; instead check out the
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "11d505lwlrh5a0jc2l6q36gvsaqic3vizq5q860hiqcqkmwwag1s"))))
+         "1d5wwajanjw1q5d2y23yaq8rvbaqb20z53v7hfdryhb56vzmwmwd"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -15960,7 +22683,7 @@ You probably don't want to link to this crate directly; instead check out the
              (substitute* "Cargo.toml"
                ((", path =.*}") "}"))
              #t)))))
-    (native-inputs
+    (inputs
      `(("openssl" ,openssl-1.0))))) ; for openssl-sys-extras
 
 (define-public rust-openssl-probe-0.1
@@ -15987,34 +22710,28 @@ system for OpenSSL.")
 (define-public rust-openssl-sys-0.9
   (package
     (name "rust-openssl-sys")
-    (version "0.9.53")
+    (version "0.9.58")
     (source
       (origin
         (method url-fetch)
         (uri (crate-uri "openssl-sys" version))
         (file-name (string-append name "-" version ".tar.gz"))
         (sha256
-         (base32 "0vvk8vzrc73y8n5rf4yj3x8ygyxjaz7wxrbxiwqi7qy0gyp1cpa6"))
+         (base32 "1pkq3x8w16kqvkg75g4w7nny56w9clssww0ibpzg015n153xnhm8"))
         (patches (search-patches "rust-openssl-sys-no-vendor.patch"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-libc" ,rust-libc-0.2)
         ;; Build dependencies:
-        ("rust-autocfg" ,rust-autocfg-0.1)
+        ("rust-autocfg" ,rust-autocfg-1)
         ("rust-cc" ,rust-cc-1)
         ("rust-pkg-config" ,rust-pkg-config-0.3)
-        ("rust-vcpkg" ,rust-vcpkg-0.2))
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'find-openssl
-           (lambda* (#:key inputs #:allow-other-keys)
-             (let ((openssl (assoc-ref inputs "openssl")))
-               (setenv "OPENSSL_DIR" openssl))
-             #t)))))
+        ("rust-vcpkg" ,rust-vcpkg-0.2))))
     (native-inputs
-     `(("openssl" ,openssl)
-       ("pkg-config" ,pkg-config)))
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("openssl" ,openssl)))
     (home-page "https://github.com/sfackler/rust-openssl")
     (synopsis "FFI bindings to OpenSSL")
     (description
@@ -16048,14 +22765,7 @@ system for OpenSSL.")
        (("rust-gdi32-sys" ,rust-gdi32-sys-0.2)
         ("rust-libc" ,rust-libc-0.2)
         ("rust-user32-sys" ,rust-user32-sys-0.2)
-        ("rust-pkg-config" ,rust-pkg-config-0.3))
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'find-openssl
-           (lambda* (#:key inputs #:allow-other-keys)
-             (let ((openssl (assoc-ref inputs "openssl")))
-               (setenv "OPENSSL_DIR" openssl))
-             #t)))))))
+        ("rust-pkg-config" ,rust-pkg-config-0.3))))))
 
 (define-public rust-openssl-sys-extras-0.7
   (package
@@ -16083,7 +22793,7 @@ system for OpenSSL.")
              (substitute* "Cargo.toml"
                ((", path =.*}") "}"))
              #t)))))
-    (native-inputs
+    (inputs
      `(("openssl" ,openssl-1.0)))   ; openssl-1.0 specifically
     (home-page "https://github.com/sfackler/rust-openssl")
     (synopsis
@@ -16224,32 +22934,10 @@ under its new name.")
      "Utility to activate escape codes in Windows' CMD and PowerShell.")
     (license license:expat)))
 
-(define-public rust-osmesa-sys-0.1
-  (package
-    (name "rust-osmesa-sys")
-    (version "0.1.2")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "osmesa-sys" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32
-         "0fq1q1zcgfb0qydrg9r2738jlwc4hqxgb9vj11z72bjxx7kfrkw8"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:cargo-inputs
-       (("rust-shared-library" ,rust-shared-library-0.1))))
-    (home-page "https://crates.io/crates/osmesa-sys")
-    (synopsis "OSMesa library bindings for Rust")
-    (description "This package provides OSMesa library bindings for Rust.")
-    (license license:cc0)))
-
 (define-public rust-owning-ref-0.4
   (package
     (name "rust-owning-ref")
-    (version "0.4.0")
+    (version "0.4.1")
     (source
       (origin
         (method url-fetch)
@@ -16257,11 +22945,11 @@ under its new name.")
         (file-name (string-append name "-" version ".crate"))
         (sha256
          (base32
-          "04zgwy77lin8qz398s6g44467pd6kjhbrlqifkia5rkr47mbi929"))))
+          "1kjj9m28wjv452jw49p1mp3d8ql058x78v4bz00avr7rvsnmpxbg"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-stable-deref-trait" ,rust-stable-deref-trait-1.1))))
+       (("rust-stable-deref-trait" ,rust-stable-deref-trait-1))))
     (home-page "https://github.com/Kimundi/owning-ref-rs")
     (synopsis "Create references that carry their owner with them")
     (description
@@ -16300,6 +22988,51 @@ normally prevent moving a type that has been borrowed from.")
     (description "Portable Packed SIMD vectors.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-packed-simd-2-0.3
+  (package
+    (name "rust-packed-simd-2")
+    (version "0.3.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "packed-simd-2" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "05wsm2yxxpwww6a74hi8l80qszisfar5d7whf2pd87wn5x4y0y1j"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin
+           ;; Unpin the dependencies.
+           (substitute* "Cargo.toml"
+             (("=0.2.52") "^0.2.52")
+             (("=0.3.2") "^0.3.2"))
+           #t))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f  ; error[E0432]: unresolved import `packed_simd`
+       #:cargo-inputs
+       (("rust-cfg-if" ,rust-cfg-if-0.1)
+        ("rust-core-arch" ,rust-core-arch-0.1)
+        ("rust-libm" ,rust-libm-0.1)
+        ("rust-sleef-sys" ,rust-sleef-sys-0.1))
+       #:cargo-development-inputs
+       (("rust-arrayvec" ,rust-arrayvec-0.5)
+        ("rust-paste" ,rust-paste-0.1)
+        ("rust-wasm-bindgen" ,rust-wasm-bindgen-0.2)
+        ("rust-wasm-bindgen-test" ,rust-wasm-bindgen-test-0.3))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'enable-unstable-features
+           (lambda _
+             (setenv "RUSTC_BOOTSTRAP" "1")
+             #t)))))
+    (home-page "https://github.com/rust-lang-nursery/packed_simd")
+    (synopsis "Portable Packed SIMD vectors")
+    (description "Portable Packed SIMD vectors.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-pad-0.1
   (package
     (name "rust-pad")
@@ -16378,196 +23111,6 @@ normally prevent moving a type that has been borrowed from.")
      "Automatically implement traits from the palette crate.")
     (license (list license:expat license:asl2.0))))
 
-(define-public rust-pango-0.8
-  (package
-    (name "rust-pango")
-    (version "0.8.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "pango" version))
-        (file-name
-         (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32
-          "0xq50950il3228grzs4xvc5s6phxcl5l50grz6syvs0vixr6p70y"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:cargo-inputs
-       (("rust-bitflags" ,rust-bitflags-1)
-        ("rust-glib" ,rust-glib-0.9)
-        ("rust-glib-sys" ,rust-glib-sys-0.9)
-        ("rust-gobject-sys" ,rust-gobject-sys-0.9)
-        ("rust-lazy-static" ,rust-lazy-static-1)
-        ("rust-libc" ,rust-libc-0.2)
-        ("rust-pango-sys" ,rust-pango-sys-0.9)
-        ("rust-gtk-rs-lgpl-docs" ,rust-gtk-rs-lgpl-docs-0.1))
-       #:cargo-development-inputs
-       (("rust-gir-format-check" ,rust-gir-format-check-0.1))))
-    (inputs
-     `(("pango" ,pango)))
-    (home-page "https://gtk-rs.org/")
-    (synopsis "Rust bindings for the Pango library")
-    (description
-     "Rust bindings for the Pango library.")
-    (license license:expat)))
-
-(define-public rust-pango-0.7
-  (package
-    (inherit rust-pango-0.8)
-    (name "rust-pango")
-    (version "0.7.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "pango" version))
-        (file-name
-         (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32
-          "11np7nxb69g3kid2l78b7k519x1wk1c3f9yy7swgzy24n5qs0grr"))))
-    (arguments
-     `(#:cargo-inputs
-       (("rust-bitflags" ,rust-bitflags-1)
-        ("rust-glib" ,rust-glib-0.8)
-        ("rust-glib-sys" ,rust-glib-sys-0.9)
-        ("rust-gobject-sys" ,rust-gobject-sys-0.9)
-        ("rust-lazy-static" ,rust-lazy-static-1)
-        ("rust-libc" ,rust-libc-0.2)
-        ("rust-pango-sys" ,rust-pango-sys-0.9)
-        ("rust-gtk-rs-lgpl-docs" ,rust-gtk-rs-lgpl-docs-0.1))
-       #:cargo-development-inputs
-       (("rust-gir-format-check" ,rust-gir-format-check-0.1))))))
-
-(define-public rust-pango-sys-0.9
-  (package
-    (name "rust-pango-sys")
-    (version "0.9.1")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "pango-sys" version))
-        (file-name
-         (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32
-          "0zdynikh6jrfa31fpmbrwnz46a57idci73zzkf0z0g3vj223vfc6"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:tests? #f      ; Some test files not included in release.
-       #:cargo-inputs
-       (("rust-glib-sys" ,rust-glib-sys-0.9)
-        ("rust-gobject-sys" ,rust-gobject-sys-0.9)
-        ("rust-libc" ,rust-libc-0.2)
-        ("rust-pkg-config" ,rust-pkg-config-0.3))
-       #:cargo-development-inputs
-       (("rust-shell-words" ,rust-shell-words-0.1)
-        ("rust-tempfile" ,rust-tempfile-3))))
-    (inputs
-     `(("pango" ,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}.")
-    (license license:expat)))
-
-(define-public rust-pangocairo-0.9
-  (package
-    (name "rust-pangocairo")
-    (version "0.9.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "pangocairo" version))
-        (file-name
-         (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32
-          "0bap3h78hdqdyln58349qjjbcv45m8a0a16c4n9fprdj1my0gldx"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:cargo-inputs
-       (("rust-bitflags" ,rust-bitflags-1)
-        ("rust-cairo-rs" ,rust-cairo-rs-0.8)
-        ("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.9)
-        ("rust-glib" ,rust-glib-0.9)
-        ("rust-glib-sys" ,rust-glib-sys-0.9)
-        ("rust-gobject-sys" ,rust-gobject-sys-0.9)
-        ("rust-libc" ,rust-libc-0.2)
-        ("rust-pango" ,rust-pango-0.8)
-        ("rust-pango-sys" ,rust-pango-sys-0.9)
-        ("rust-pangocairo-sys" ,rust-pangocairo-sys-0.10)
-        ("rust-gtk-rs-lgpl-docs" ,rust-gtk-rs-lgpl-docs-0.1))
-       #:cargo-development-inputs
-       (("rust-gir-format-check" ,rust-gir-format-check-0.1))))
-    (inputs
-     `(("gtk+" ,gtk+)))
-    (home-page "http://gtk-rs.org/")
-    (synopsis "Rust bindings for the PangoCairo library")
-    (description
-     "Rust bindings for the PangoCairo library.")
-    (license license:expat)))
-
-(define-public rust-pangocairo-0.8
-  (package
-    (inherit rust-pangocairo-0.9)
-    (name "rust-pangocairo")
-    (version "0.8.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "pangocairo" version))
-        (file-name
-         (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32
-          "0qjiwsp73x3w0493dzycyjzxnzwq7ixwmf1ccr5r41pjhxbnk1kl"))))
-    (arguments
-     `(#:cargo-inputs
-       (("rust-bitflags" ,rust-bitflags-1)
-        ("rust-cairo-rs" ,rust-cairo-rs-0.7)
-        ("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.9)
-        ("rust-glib" ,rust-glib-0.8)
-        ("rust-glib-sys" ,rust-glib-sys-0.9)
-        ("rust-gobject-sys" ,rust-gobject-sys-0.9)
-        ("rust-libc" ,rust-libc-0.2)
-        ("rust-pango" ,rust-pango-0.7)
-        ("rust-pango-sys" ,rust-pango-sys-0.9)
-        ("rust-pangocairo-sys" ,rust-pangocairo-sys-0.10)
-        ("rust-gtk-rs-lgpl-docs" ,rust-gtk-rs-lgpl-docs-0.1))
-       #:cargo-development-inputs
-       (("rust-gir-format-check" ,rust-gir-format-check-0.1))))))
-
-(define-public rust-pangocairo-sys-0.10
-  (package
-    (name "rust-pangocairo-sys")
-    (version "0.10.1")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "pangocairo-sys" version))
-        (file-name
-         (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32
-          "1zlyf5vajarnxg5034b8qa5w5zajv96lfvlgiki26svpmcqip4m3"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:cargo-inputs
-       (("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.9)
-        ("rust-glib-sys" ,rust-glib-sys-0.9)
-        ("rust-libc" ,rust-libc-0.2)
-        ("rust-pango-sys" ,rust-pango-sys-0.9)
-        ("rust-pkg-config" ,rust-pkg-config-0.3))
-       #:cargo-development-inputs
-       (("rust-shell-words" ,rust-shell-words-0.1)
-        ("rust-tempfile" ,rust-tempfile-3))))
-    (inputs
-     `(("gtk+" ,gtk+)))
-    (home-page "https://gtk-rs.org/")
-    (synopsis "FFI bindings to libgtk-3")
-    (description "This package provides FFI bindings to libgtk-3.")
-    (license license:expat)))
-
 (define-public rust-parity-tokio-ipc-0.4
   (package
     (name "rust-parity-tokio-ipc")
@@ -16645,6 +23188,69 @@ deserialization, and interpreter in Rust.")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-parking-2
+  (package
+    (name "rust-parking")
+    (version "2.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "parking" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0wnxxnizfxlax3n709s5r83f4n8awy3m4a18q4fdk0z7z693hz22"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-development-inputs
+       (("rust-easy-parallel" ,rust-easy-parallel-3))))
+    (home-page "https://github.com/stjepang/parking")
+    (synopsis "Thread parking and unparking")
+    (description "This packages provides methods for thread parking and
+unparking.")
+    (license (list license:asl2.0 license:expat))))
+
+(define-public rust-parking-1
+  (package
+    (inherit rust-parking-2)
+    (name "rust-parking")
+    (version "1.0.6")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "parking" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0z6q9rxm98vrp3fimw8b5syzwgf8l0pnn6y0cqm4lbblf7r01cvc"))))))
+
+(define-public rust-parking-lot-0.11
+  (package
+    (name "rust-parking-lot")
+    (version "0.11.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "parking_lot" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1sqmgaia8zfd5fbnqw2w13ijh7crk3lf9vw4cb52vwlx0an48xvd"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-instant" ,rust-instant-0.1)
+        ("rust-lock-api" ,rust-lock-api-0.4)
+        ("rust-parking-lot-core" ,rust-parking-lot-core-0.8))
+       #:cargo-development-inputs
+       (("rust-bincode" ,rust-bincode-1)
+        ("rust-rand" ,rust-rand-0.7))))
+    (home-page "https://github.com/Amanieu/parking_lot")
+    (synopsis
+     "Efficient implementations of the standard synchronization primitives")
+    (description
+     "This package provides more compact and efficient implementations
+of the standard synchronization primitives.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-parking-lot-0.10
   (package
     (name "rust-parking-lot")
@@ -16653,8 +23259,7 @@ deserialization, and interpreter in Rust.")
      (origin
        (method url-fetch)
        (uri (crate-uri "parking_lot" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
          "0pjhcbyk6n0g6jsr6s9nf4x8wribm1b2yf8fgc8drbqa77mh99yk"))))
@@ -16749,8 +23354,40 @@ synchronization primitives.")
         ("rust-rand" ,rust-rand-0.4)
         ("rust-rustc-version" ,rust-rustc-version-0.2))))))
 
+(define-public rust-parking-lot-core-0.8
+  (package
+    (name "rust-parking-lot-core")
+    (version "0.8.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "parking_lot_core" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "16yazfg3sq9mz6cfdkhgbv8yvc1kkasyhys4y7r3g16hgmralqf3"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-backtrace" ,rust-backtrace-0.3)
+        ("rust-cfg-if" ,rust-cfg-if-0.1)
+        ("rust-cloudabi" ,rust-cloudabi-0.1)
+        ("rust-instant" ,rust-instant-0.1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-petgraph" ,rust-petgraph-0.5)
+        ("rust-redox-syscall" ,rust-redox-syscall-0.1)
+        ("rust-smallvec" ,rust-smallvec-1)
+        ("rust-thread-id" ,rust-thread-id-3)
+        ("rust-winapi" ,rust-winapi-0.3))))
+    (home-page "https://github.com/Amanieu/parking_lot")
+    (synopsis "API for creating custom synchronization primitives")
+    (description "This package provides an advanced API for creating custom
+synchronization primitives.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-parking-lot-core-0.7
   (package
+    (inherit rust-parking-lot-core-0.8)
     (name "rust-parking-lot-core")
     (version "0.7.2")
     (source
@@ -16762,7 +23399,6 @@ synchronization primitives.")
        (sha256
         (base32
          "18s0cw5y32447c06fhg2mp3xfng22fn1h9fpx3il98sbimv7r36m"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-backtrace" ,rust-backtrace-0.3)
@@ -16772,13 +23408,8 @@ synchronization primitives.")
         ("rust-petgraph" ,rust-petgraph-0.5)
         ("rust-redox-syscall" ,rust-redox-syscall-0.1)
         ("rust-smallvec" ,rust-smallvec-1)
-        ("rust-thread-id" ,rust-thread-id-3.3)
-        ("rust-winapi" ,rust-winapi-0.3))))
-    (home-page "https://github.com/Amanieu/parking_lot")
-    (synopsis "API for creating custom synchronization primitives")
-    (description
-     "An advanced API for creating custom synchronization primitives in Rust.")
-    (license (list license:asl2.0 license:expat))))
+        ("rust-thread-id" ,rust-thread-id-3)
+        ("rust-winapi" ,rust-winapi-0.3))))))
 
 (define-public rust-parking-lot-core-0.6
   (package
@@ -16805,7 +23436,7 @@ synchronization primitives.")
         ("rust-rand" ,rust-rand-0.4)
         ("rust-redox-syscall" ,rust-redox-syscall-0.1)
         ("rust-smallvec" ,rust-smallvec-0.6)
-        ("rust-thread-id" ,rust-thread-id-3.3)
+        ("rust-thread-id" ,rust-thread-id-3)
         ("rust-winapi" ,rust-winapi-0.3))
        #:cargo-development-inputs
        (("rust-rustc-version" ,rust-rustc-version-0.2))))))
@@ -16823,7 +23454,20 @@ synchronization primitives.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1317j5a1yd03baza2kqqrxb4kr1vxa7rckw4frksl2vrncfcp26b"))))))
+         "1317j5a1yd03baza2kqqrxb4kr1vxa7rckw4frksl2vrncfcp26b"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-backtrace" ,rust-backtrace-0.3)
+        ("rust-cfg-if" ,rust-cfg-if-0.1)
+        ("rust-cloudabi" ,rust-cloudabi-0.0)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-petgraph" ,rust-petgraph-0.4)
+        ("rust-rand" ,rust-rand-0.6)
+        ("rust-redox-syscall" ,rust-redox-syscall-0.1)
+        ("rust-smallvec" ,rust-smallvec-0.6)
+        ("rust-thread-id" ,rust-thread-id-3)
+        ("rust-winapi" ,rust-winapi-0.3)
+        ("rust-rustc-version" ,rust-rustc-version-0.2))))))
 
 (define-public rust-parking-lot-core-0.4
   (package
@@ -16838,10 +23482,71 @@ synchronization primitives.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1jcq8aq4wv9y5fip7jg12jdwjd5g5r3x857xdma8vcin769cgj4l"))))))
+         "1jcq8aq4wv9y5fip7jg12jdwjd5g5r3x857xdma8vcin769cgj4l"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-backtrace" ,rust-backtrace-0.3)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-petgraph" ,rust-petgraph-0.4)
+        ("rust-rand" ,rust-rand-0.6)
+        ("rust-smallvec" ,rust-smallvec-0.6)
+        ("rust-thread-id" ,rust-thread-id-3)
+        ("rust-winapi" ,rust-winapi-0.3)
+        ("rust-rustc-version" ,rust-rustc-version-0.2))))))
+
+(define-public rust-parse-zoneinfo-0.3
+  (package
+    (name "rust-parse-zoneinfo")
+    (version "0.3.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "parse-zoneinfo" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0h8g6jy4kckn2gk8sd5adaws180n1ip65xhzw5jxlq4w8ibg41f7"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-regex" ,rust-regex-1))))
+    (home-page "")
+    (synopsis "Parse zoneinfo files from the IANA database")
+    (description
+     "This packages parses zoneinfo files from the IANA database.")
+    (license license:expat)))
+
+(define-public rust-partial-io-0.3
+  (package
+    (name "rust-partial-io")
+    (version "0.3.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "partial-io" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0b9a2bvqmaj2r4rkbshjsg8zzvp23b67qfvj2y6jwjckrn6zhb38"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-futures" ,rust-futures-0.1)
+        ("rust-quickcheck" ,rust-quickcheck-0.6)
+        ("rust-tokio-io" ,rust-tokio-io-0.1))
+       #:cargo-development-inputs
+       (("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-quickcheck" ,rust-quickcheck-0.6)
+        ("rust-tokio-core" ,rust-tokio-core-0.1))))
+    (home-page "https://github.com/facebookincubator/rust-partial-io")
+    (synopsis "Helpers to test partial, interrupted and would-block I/O operations")
+    (description "This package provides helpers to test partial, interrupted
+and would-block I/O operations.")
+    (license license:expat)))
 
 (define-public rust-partial-io-0.2
   (package
+    (inherit rust-partial-io-0.3)
     (name "rust-partial-io")
     (version "0.2.5")
     (source
@@ -16853,7 +23558,6 @@ synchronization primitives.")
        (sha256
         (base32
          "03iynvayh11a4mckhwflm5y1qmnkw5m3b20gzi1crpasndy3h8xx"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-futures" ,rust-futures-0.1)
@@ -16863,17 +23567,12 @@ synchronization primitives.")
        (("rust-lazy-static" ,rust-lazy-static-0.2)
         ("rust-quickcheck" ,rust-quickcheck-0.4)
         ("rust-tokio-core" ,rust-tokio-core-0.1))))
-    (home-page "https://github.com/facebookincubator/rust-partial-io")
-    (synopsis
-     "Helpers to test partial, interrupted and would-block I/O operations")
-    (description
-     "Helpers to test partial, interrupted and would-block I/O operations.")
     (license license:bsd-3)))
 
 (define-public rust-paste-0.1
   (package
     (name "rust-paste")
-    (version "0.1.10")
+    (version "0.1.18")
     (source
      (origin
        (method url-fetch)
@@ -16882,15 +23581,15 @@ synchronization primitives.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0yk4zbi7128dcrklsbwfa63d39x0dv8f7pdbrylvdlcj0s9v2kxb"))))
+         "10587zrlmzhq66yhd0z36fzglf32m1nlhi9bxxm6dgl0gp3j1jj5"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-paste-impl" ,rust-paste-impl-0.1)
         ("rust-proc-macro-hack" ,rust-proc-macro-hack-0.5))
        #:cargo-development-inputs
-       (("rust-rustversion" ,rust-rustversion-1.0)
-        ("rust-trybuild" ,rust-trybuild-1.0))))
+       (("rust-rustversion" ,rust-rustversion-1)
+        ("rust-trybuild" ,rust-trybuild-1))))
     (home-page "https://github.com/dtolnay/paste")
     (synopsis "Macros for all your token pasting needs")
     (description
@@ -16900,7 +23599,7 @@ synchronization primitives.")
 (define-public rust-paste-impl-0.1
   (package
     (name "rust-paste-impl")
-    (version "0.1.10")
+    (version "0.1.18")
     (source
      (origin
        (method url-fetch)
@@ -16909,7 +23608,7 @@ synchronization primitives.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "12jsm83dnsqnrcabfacnwcxh3h4kykl622vi7glv2wg527hqc956"))))
+         "1dlqzk05cx74522s4iyhyzzhszig4n401pp6r1qg6zmr02r7snnr"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -16923,6 +23622,74 @@ synchronization primitives.")
      "Implementation detail of the paste crate.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-path-abs-0.5
+  (package
+    (name "rust-path-abs")
+    (version "0.5.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "path_abs" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "131qi5j201caraqz9rwbzk4mybd9bcrryrhf63lr9gz0xmnqwszb"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-serde" ,rust-serde-1)
+        ("rust-serde-derive" ,rust-serde-derive-1)
+        ("rust-std-prelude" ,rust-std-prelude-0.2)
+        ("rust-stfu8" ,rust-stfu8-0.2))
+       #:cargo-development-inputs
+       (("rust-pretty-assertions" ,rust-pretty-assertions-0.4)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-tempdir" ,rust-tempdir-0.3))))
+    (home-page "https://github.com/vitiral/path_abs")
+    (synopsis "Ergonomic paths and files in Rust")
+    (description "This library provides ergonomic path and file operations to
+Rust with reasonable performance.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-path-clean-0.1
+  (package
+    (name "rust-path-clean")
+    (version "0.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "path-clean" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1pcgqxw0mgg3ha5hi5xkjhyjf488bw5rw1g3qlr9awbq4szh3fpc"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/danreeves/path-clean")
+    (synopsis "Rust implementation of cleanname or path.Clean")
+    (description "This package provides a Rust implementation of cleanname or
+path.Clean.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-pathdiff-0.1
+  (package
+    (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"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/Manishearth/pathdiff")
+    (synopsis "Library for diffing paths to obtain relative paths")
+    (description
+     "Use diff_paths to construct a relative path from a provided base
+directory path to the provided path.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-pbkdf2-0.4
   (package
     (name "rust-pbkdf2")
@@ -16975,7 +23742,7 @@ in pure Rust.")
     (arguments
      `(#:cargo-inputs
        (("rust-base64" ,rust-base64-0.9)
-        ("rust-byteorder" ,rust-byteorder-1.3)
+        ("rust-byteorder" ,rust-byteorder-1)
         ("rust-crypto-mac" ,rust-crypto-mac-0.7)
         ("rust-hmac" ,rust-hmac-0.7)
         ("rust-rand" ,rust-rand-0.5)
@@ -17006,7 +23773,7 @@ in pure Rust.")
        (("rust-libc" ,rust-libc-0.2)
         ("rust-log" ,rust-log-0.4)
         ("rust-pcre2-sys" ,rust-pcre2-sys-0.2)
-        ("rust-thread-local" ,rust-thread-local-1.0))))
+        ("rust-thread-local" ,rust-thread-local-1))))
     (native-inputs
      `(("pcre2" ,pcre2)
        ("pkg-config" ,pkg-config)))
@@ -17019,7 +23786,7 @@ in pure Rust.")
 (define-public rust-pcre2-sys-0.2
   (package
     (name "rust-pcre2-sys")
-    (version "0.2.2")
+    (version "0.2.5")
     (source
      (origin
        (method url-fetch)
@@ -17028,7 +23795,7 @@ in pure Rust.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0nwdvc43dkb89qmm5q8gw1zyll0wsfqw7kczpn23mljra3874v47"))
+         "08mp6yxrvadplwd0drdydzskvzapr6dri9fyy7xvhzn3krg0xhyy"))
        (modules '((guix build utils)))
        (snippet
         '(begin (delete-file-recursively "pcre2") #t))))
@@ -17090,7 +23857,7 @@ the @code{take_while} predicate returned false after dropping the @code{by_ref}.
        (("rust-peg-macros" ,rust-peg-macros-0.6)
         ("rust-peg-runtime" ,rust-peg-runtime-0.6))
        #:cargo-development-inputs
-       (("rust-trybuild" ,rust-trybuild-1.0))))
+       (("rust-trybuild" ,rust-trybuild-1))))
     (home-page "https://github.com/kevinmehall/rust-peg")
     (synopsis "Simple Parsing Expression Grammar (PEG) parser generator")
     (description
@@ -17163,7 +23930,7 @@ procedural macros for rust-peg.  To use rust-peg, see the peg package.")
 runtime support for rust-peg grammars.  To use rust-peg, see the peg crate.")
     (license license:expat)))
 
-(define-public rust-percent-encoding-2.1
+(define-public rust-percent-encoding-2
   (package
     (name "rust-percent-encoding")
     (version "2.1.0")
@@ -17184,7 +23951,7 @@ runtime support for rust-peg grammars.  To use rust-peg, see the peg crate.")
 
 (define-public rust-percent-encoding-1.0
   (package
-    (inherit rust-percent-encoding-2.1)
+    (inherit rust-percent-encoding-2)
     (name "rust-percent-encoding")
     (version "1.0.1")
     (source
@@ -17219,7 +23986,7 @@ algorithm.")
     (license (list license:asl2.0
                    license:expat))))
 
-(define-public rust-pest-2.1
+(define-public rust-pest-2
   (package
     (name "rust-pest")
     (version "2.1.1")
@@ -17244,7 +24011,7 @@ algorithm.")
     (description "The Elegant Parser.")
     (license (list license:asl2.0 license:expat))))
 
-(define-public rust-pest-derive-2.1
+(define-public rust-pest-derive-2
   (package
     (name "rust-pest-derive")
     (version "2.1.0")
@@ -17261,7 +24028,7 @@ algorithm.")
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
-       (("rust-pest" ,rust-pest-2.1)
+       (("rust-pest" ,rust-pest-2)
         ("rust-pest-generator" ,rust-pest-generator-2.1))))
     (home-page "https://pest.rs/")
     (synopsis "Pest's derive macro")
@@ -17285,7 +24052,7 @@ algorithm.")
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
-       (("rust-pest" ,rust-pest-2.1)
+       (("rust-pest" ,rust-pest-2)
         ("rust-pest-meta" ,rust-pest-meta-2.1)
         ("rust-proc-macro2" ,rust-proc-macro2-1)
         ("rust-quote" ,rust-quote-1)
@@ -17313,7 +24080,7 @@ algorithm.")
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-maplit" ,rust-maplit-1.0)
-        ("rust-pest" ,rust-pest-2.1)
+        ("rust-pest" ,rust-pest-2)
         ("rust-sha-1" ,rust-sha-1-0.8))))
     (home-page "https://pest.rs")
     (synopsis "Pest meta language parser and validator")
@@ -17658,416 +24425,180 @@ function data structures.")
          (base32
           "1q5pg0ms6szz6b5h26h4k40zb76zbwwjgyigac4wly9qngdj4yl5"))))
     (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-libc" ,rust-libc-0.2)
+        ("rust-gcc" ,rust-gcc-0.3))))
     (home-page "https://github.com/reem/rust-pico-sys")
     (synopsis "Bindings to the PicoHTTPParser")
     (description
      "This package provides bindings to the PicoHTTPParser.")
-    (properties '((hidden? . #t)))
     (license license:expat)))
 
-(define-public rust-pin-utils-0.1
-  (package
-    (name "rust-pin-utils")
-    (version "0.1.0-alpha.4")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "pin-utils" version))
-        (file-name (string-append name "-" version ".crate"))
-        (sha256
-         (base32
-          "11xmyx00n4m37d546by2rxb8ryxs12v55cc172i3yak1rqccd52q"))))
-    (build-system cargo-build-system)
-    (home-page "https://github.com/rust-lang-nursery/pin-utils")
-    (synopsis "Utilities for pinning")
-    (description "This crate provides utilities for pinning values on the stack.")
-    (license (list license:asl2.0
-                   license:expat))))
-
-(define-public rust-piston-0.49
+(define-public rust-pin-project-1
   (package
-    (name "rust-piston")
-    (version "0.49.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "piston" version))
-        (file-name
-         (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32
-          "1y0rbw92mzagqmwk79wv9axq0m7aid0s0d5cppyzh33wrxhdl3xj"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-pistoncore-input" ,rust-pistoncore-input-0.28)
-        ("rust-pistoncore-window" ,rust-pistoncore-window-0.44)
-        ("rust-pistoncore-event-loop" ,rust-pistoncore-event-loop-0.49))))
-    (home-page "https://github.com/PistonDevelopers/piston")
-    (synopsis "Piston game engine core libraries")
-    (description
-     "The Piston game engine core libraries.")
-    (license license:expat)))
-
-(define-public rust-piston-float-1.0
-  (package
-    (name "rust-piston-float")
-    (version "1.0.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "piston-float" version))
-        (file-name
-          (string-append name "-" version ".tar.gz"))
-        (sha256
-          (base32
-            "0r35aasycms79hf2vf1ap40kkp8ywgl4hmfkf762dq8jwd3vw07r"))))
-    (build-system cargo-build-system)
-    (arguments `(#:skip-build? #t))
-    (home-page
-      "https://github.com/pistondevelopers/float")
-    (synopsis
-      "Traits for generic floats in game development")
-    (description
-      "Traits for generic floats in game development")
-    (license license:expat)))
-
-(define-public rust-piston-gfx-texture-0.40
-  (package
-    (name "rust-piston-gfx-texture")
-    (version "0.40.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "piston-gfx_texture" version))
-        (file-name
-         (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32
-          "1nr5awdgk3njfvfanszrv4gxz93f6skid1c8yijswccygripchqz"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-gfx" ,rust-gfx-0.18)
-        ("rust-image" ,rust-image-0.22)
-        ("rust-piston-texture" ,rust-piston-texture-0.8)
-        ("rust-gfx-core" ,rust-gfx-core-0.9))))
-    (home-page "https://github.com/pistondevelopers/gfx_texture")
-    (synopsis
-      "Gfx texture representation that works nicely with Piston libraries")
-    (description "This package provides a Gfx texture representation that works
-nicely with Piston libraries.")
-    (license license:expat)))
-
-(define-public rust-piston-graphics-api-version-0.2
-  (package
-    (name "rust-piston-graphics-api-version")
-    (version "0.2.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "piston-graphics_api_version" version))
-        (file-name
-          (string-append name "-" version ".tar.gz"))
-        (sha256
-          (base32
-            "1b5p6s45jqv057lpbxkiq3yrdjjhvcynmi2vjf8292rf0yh4hky5"))))
-    (build-system cargo-build-system)
-    (arguments `(#:skip-build? #t))
-    (home-page
-      "https://github.com/PistonDevelopers/graphics_api_version")
-    (synopsis
-      "A library for storing graphics API versions")
-    (description
-      "This package provides a library for storing graphics API versions")
-    (license license:expat)))
-
-(define-public rust-piston-shaders-graphics2d-0.3
-  (package
-    (name "rust-piston-shaders-graphics2d")
-    (version "0.3.1")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "piston-shaders_graphics2d" version))
-        (file-name
-          (string-append name "-" version ".tar.gz"))
-        (sha256
-          (base32
-            "1dhh9bv4q19gdnj9d1nqq0yrvzs6gcn0c5j1p1f3xzyzq7d1gg4p"))))
-    (build-system cargo-build-system)
-    (arguments `(#:skip-build? #t))
-    (home-page
-      "https://github.com/PistonDevelopers/shaders")
-    (synopsis "Shaders for 2D graphics in Rust")
-    (description "Shaders for 2D graphics in Rust")
-    (license license:expat)))
-
-(define-public rust-piston-texture-0.8
-  (package
-    (name "rust-piston-texture")
-    (version "0.8.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "piston-texture" version))
-        (file-name
-          (string-append name "-" version ".tar.gz"))
-        (sha256
-          (base32
-            "1pcv5my49b8xzqcb87wqh2ndgvr4s9ipys96s0h9j2plxrj3bjb2"))))
-    (build-system cargo-build-system)
-    (arguments `(#:skip-build? #t))
-    (home-page
-      "https://github.com/pistondevelopers/texture")
-    (synopsis "A generic library for textures")
-    (description
-      "This package provides a generic library for textures")
-    (license license:expat)))
-
-(define-public rust-piston-viewport-1.0
-  (package
-    (name "rust-piston-viewport")
-    (version "1.0.0")
+    (name "rust-pin-project")
+    (version "1.0.2")
     (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "piston-viewport" version))
-        (file-name
-         (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32
-          "16378hcy41b7x3zj2z4har0wq6fl4r62kf9p106jjl8hg2dv3aq1"))))
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "pin-project" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "19qw2nm2kk38v9j16nsm8j3fkh0g8pjq0k4cplx7i2f4q8vj5k4w"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-piston-float" ,rust-piston-float-1.0))))
-    (home-page "https://github.com/PistonDevelopers/viewport")
-    (synopsis "Library for storing viewport information")
+     `(#:cargo-inputs
+       (("rust-pin-project-internal" ,rust-pin-project-internal-1))
+       #:cargo-development-inputs
+       (("rust-pin-project-auxiliary-macro"
+         ,rust-pin-project-auxiliary-macro-0.0)
+        ("rust-rustversion" ,rust-rustversion-1)
+        ("rust-static-assertions" ,rust-static-assertions-1)
+        ("rust-trybuild" ,rust-trybuild-1))))
+    (home-page "https://github.com/taiki-e/pin-project")
+    (synopsis "Crate for safe and ergonomic pin-projection")
     (description
-     "This package provides a library for storing viewport information.")
-    (license license:expat)))
+     "This package provides a crate for safe and ergonomic pin-projection.")
+    (license (list license:asl2.0 license:expat))))
 
-(define-public rust-piston-window-0.105
+(define-public rust-pin-project-0.4
   (package
-    (name "rust-piston-window")
-    (version "0.105.0")
+    (inherit rust-pin-project-1)
+    (name "rust-pin-project")
+    (version "0.4.22")
     (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "piston_window" version))
-        (file-name
-         (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32
-          "05n2905gkp5ck25kbq95ia6pj1xz63dpp247jz3xcw1d41xpvi95"))))
-    (build-system cargo-build-system)
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "pin-project" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "05wwxy46j9z27ibbiisjqk0rivf0z00h4al1f92mwjp9pz6sdqqj"))))
     (arguments
-     `(#:skip-build? #t
+     `(#:tests? #f ; XXX: Fix-me.
        #:cargo-inputs
-       (("rust-gfx-device-gl" ,rust-gfx-device-gl-0.16)
-        ("rust-gfx" ,rust-gfx-0.18)
-        ("rust-piston2d-graphics" ,rust-piston2d-graphics-0.35)
-        ("rust-piston" ,rust-piston-0.49)
-        ("rust-shader-version" ,rust-shader-version-0.6)
-        ("rust-pistoncore-glutin-window" ,rust-pistoncore-glutin-window-0.63)
-        ("rust-piston2d-gfx-graphics" ,rust-piston2d-gfx-graphics-0.66)
-        ("rust-piston-texture" ,rust-piston-texture-0.8))))
-    (home-page "https://github.com/pistondevelopers/piston_window")
-    (synopsis "Official Piston window wrapper for the Piston game engine")
-    (description
-     "The official Piston window wrapper for the Piston game engine.")
-    (license license:expat)))
+       (("rust-pin-project-internal" ,rust-pin-project-internal-0.4))))))
 
-(define-public rust-piston2d-gfx-graphics-0.66
+(define-public rust-pin-project-auxiliary-macro-0.0
   (package
-    (name "rust-piston2d-gfx-graphics")
-    (version "0.66.0")
+    (name "rust-pin-project-auxiliary-macro")
+    (version "0.0.0")
     (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "piston2d-gfx_graphics" version))
-        (file-name
-         (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32
-          "1pmlkf5rl6pr0c1lqm0059xwj9pwlws7gaq9w6r9d916di6fzki1"))))
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "pin-project-auxiliary-macro" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1fk48gab989xxmw466yp4mvqwfkkx9ckqzmjlfyk2hnzavqwvkxj"))))
     (build-system cargo-build-system)
-    (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-gfx" ,rust-gfx-0.18)
-        ("rust-piston-shaders-graphics2d" ,rust-piston-shaders-graphics2d-0.3)
-        ("rust-piston-gfx-texture" ,rust-piston-gfx-texture-0.40)
-        ("rust-shader-version" ,rust-shader-version-0.6)
-        ("rust-draw-state" ,rust-draw-state-0.8))))
-    (home-page "https://github.com/PistonDevelopers/gfx_graphics")
-    (synopsis "Gfx 2D back-end for the Piston game engine")
+    (home-page "https://github.com/taiki-e/pin-project")
+    (synopsis "Internal test tool of the pin-project crate")
     (description
-     "This package provides a Gfx 2D back-end for the Piston game engine.")
-    (license license:expat)))
-
-(define-public rust-piston2d-graphics-0.35
-  (package
-    (name "rust-piston2d-graphics")
-    (version "0.35.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "piston2d-graphics" version))
-        (file-name
-         (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32
-          "1dx2fanxc2pj76hc5l72x0fh4qg9gchjlr8rmbhdk6jpggcmq56g"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-interpolation" ,rust-interpolation-0.2)
-        ("rust-rusttype" ,rust-rusttype-0.7)
-        ("rust-piston-texture" ,rust-piston-texture-0.8)
-        ("rust-piston-viewport" ,rust-piston-viewport-1.0)
-        ("rust-read-color" ,rust-read-color-1.0)
-        ("rust-vecmath" ,rust-vecmath-1.0)
-        ("rust-fnv" ,rust-fnv-1))))
-    (home-page "https://github.com/pistondevelopers/graphics")
-    (synopsis "Library for 2D graphics that works with multiple back-ends")
-    (description "This package provides a library for 2D graphics that works
-with multiple back-ends.")
-    (license license:expat)))
-
-(define-public rust-pistoncore-event-loop-0.49
-  (package
-    (name "rust-pistoncore-event-loop")
-    (version "0.49.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "pistoncore-event_loop" version))
-        (file-name
-         (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32
-          "1h9ij9vx42xg39198yxdlpk842pli5jqm2kwswiv3bqqcji0fwsm"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-pistoncore-input" ,rust-pistoncore-input-0.28)
-        ("rust-pistoncore-window" ,rust-pistoncore-window-0.44))))
-    (home-page "https://github.com/PistonDevelopers/piston")
-    (synopsis "Piston event loop for games and interactive applications")
-    (description "This package provides a Piston event loop for games and
-interactive applications.")
-    (license license:expat)))
+     "This package is an internal test tool of the @code{pin-project} crate.")
+    (license (list license:asl2.0 license:expat))))
 
-(define-public rust-pistoncore-glutin-window-0.63
+(define-public rust-pin-project-internal-1
   (package
-    (name "rust-pistoncore-glutin-window")
-    (version "0.63.0")
+    (name "rust-pin-project-internal")
+    (version "1.0.2")
     (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "pistoncore-glutin_window" version))
-        (file-name
-         (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32
-          "0dhbyxarv5i742d400bmqdqq3f8c25kcgcg0xavrc18dc913rixc"))))
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "pin-project-internal" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0pwy3m32scf3ypjb9ai151lmaa27vyj06lc64i28l0r31fzx5s7q"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
+     `(#:tests? #false
        #:cargo-inputs
-       (("rust-gl" ,rust-gl-0.11)
-        ("rust-glutin" ,rust-glutin-0.21)
-        ("rust-pistoncore-input" ,rust-pistoncore-input-0.28)
-        ("rust-pistoncore-window" ,rust-pistoncore-window-0.44)
-        ("rust-shader-version" ,rust-shader-version-0.6))))
-    (home-page "https://github.com/pistondevelopers/glutin_window")
-    (synopsis "Piston window back-end using the Glutin library")
+       (("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-1))))
+    (home-page "https://github.com/taiki-e/pin-project")
+    (synopsis "Implementation detail of the @code{pin-project} crate")
     (description
-     "This package provides a Piston window back-end using the Glutin library.")
-    (license license:expat)))
+     "This package is an implementation detail of the @code{pin-project}
+crate.")
+    (license (list license:asl2.0 license:expat))))
 
-(define-public rust-pistoncore-input-0.28
+(define-public rust-pin-project-internal-0.4
   (package
-    (name "rust-pistoncore-input")
-    (version "0.28.0")
+    (inherit rust-pin-project-internal-1)
+    (name "rust-pin-project-internal")
+    (version "0.4.22")
     (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "pistoncore-input" version))
-        (file-name
-         (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32
-          "1rrcz9px098m3nx98gvrvzirfdp3vg03cblfkcrp4wnvswc0hwq5"))))
-    (build-system cargo-build-system)
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "pin-project-internal" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1xxac6f3ip45zqbfcmmk748ywjw9sbavz1fcswvqgn3rrx2zs3va"))))
     (arguments
-     `(#:skip-build? #t
+     `(#:tests? #f ; XXX: Fix-me.
        #:cargo-inputs
-       (("rust-piston-viewport" ,rust-piston-viewport-1.0)
-        ("rust-serde" ,rust-serde-1)
-        ("rust-serde-derive" ,rust-serde-derive-1)
-        ("rust-bitflags" ,rust-bitflags-1))))
-    (home-page "https://github.com/PistonDevelopers/piston")
-    (synopsis "Structure for user input")
-    (description
-     "This package provides a structure for user input.")
-    (license license:expat)))
+       (("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-1))))))
 
-(define-public rust-pistoncore-window-0.44
+(define-public rust-pin-project-lite-0.2
   (package
-    (name "rust-pistoncore-window")
-    (version "0.44.0")
+    (name "rust-pin-project-lite")
+    (version "0.2.0")
     (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "pistoncore-window" version))
-        (file-name
-         (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32
-          "18qy3nnpb9jczvkiyzzznamck0pzgiyi6073jrkldnci6b3in10q"))))
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "pin-project-lite" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "070klqy200alrhxb79fxarrrrn0vbwg95dmqw9062vhqxibky1kb"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-piston-graphics-api-version"
-         ,rust-piston-graphics-api-version-0.2)
-        ("rust-pistoncore-input" ,rust-pistoncore-input-0.28))))
-    (home-page "https://github.com/PistonDevelopers/piston")
-    (synopsis "Library for window abstraction")
-    (description
-     "This package provides a library for window abstraction.")
-    (license license:expat)))
+     `(#:cargo-development-inputs
+       (("rust-rustversion" ,rust-rustversion-1)
+        ("rust-static-assertions" ,rust-static-assertions-1)
+        ("rust-trybuild" ,rust-trybuild-1))))
+    (home-page "https://github.com/taiki-e/pin-project-lite")
+    (synopsis "Lightweight version of pin-project")
+    (description "This package provides a lightweight version of pin-project
+written with declarative macros.")
+    (license (list license:asl2.0 license:expat))))
 
 (define-public rust-pin-project-lite-0.1
   (package
+    (inherit rust-pin-project-lite-0.2)
     (name "rust-pin-project-lite")
-    (version "0.1.4")
+    (version "0.1.11")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "pin-project-lite" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1bljczwz9yyb6jskjhbkilcbdg7v1mhfwzp2mxknzf7v1isl8y13"))))
-    (build-system cargo-build-system)
+        (base32 "0srgdb3vkx7ppcww1qr7a67c7n84y01lq35j9g44z4h1z8x145y9"))))
     (arguments
      `(#:cargo-development-inputs
-       (("rust-rustversion" ,rust-rustversion-1.0)
-        ("rust-trybuild" ,rust-trybuild-1.0))))
-    (home-page "https://github.com/taiki-e/pin-project-lite")
-    (synopsis "Lightweight version of pin-project written with declarative
-macros")
-    (description "This package provides a lightweight version of pin-project
-written with declarative macros.")
-    (license (list license:asl2.0 license:expat))))
+       (("rust-rustversion" ,rust-rustversion-1)
+        ("rust-static-assertions" ,rust-static-assertions-1)
+        ("rust-trybuild" ,rust-trybuild-1))))))
+
+(define-public rust-pin-utils-0.1
+  (package
+    (name "rust-pin-utils")
+    (version "0.1.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "pin-utils" version))
+        (file-name
+          (string-append name "-" version ".tar.gz"))
+        (sha256
+          (base32 "117ir7vslsl2z1a7qzhws4pd01cg2d3338c47swjyvqv2n60v1wb"))))
+    (build-system cargo-build-system)
+    (home-page "https://docs.rs/pin-utils")
+    (synopsis "Utilities for pinning")
+    (description "This crate provides utilities for pinning values on the stack.")
+    (license (list license:expat license:asl2.0))))
 
 (define-public rust-pkg-config-0.3
   (package
@@ -18115,20 +24646,45 @@ used in Cargo build scripts.")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-plist-1
+  (package
+    (name "rust-plist")
+    (version "1.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "plist" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1zb7k48x1zf1dhqavs37qm24fxi98qb978xv2nzjkkp4x2a6scvv"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-base64" ,rust-base64-0.12)
+        ("rust-chrono" ,rust-chrono-0.4)
+        ("rust-indexmap" ,rust-indexmap-1)
+        ("rust-line-wrap" ,rust-line-wrap-0.1)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-xml-rs" ,rust-xml-rs-0.8))))
+    (home-page "https://github.com/ebarnard/rust-plist/")
+    (synopsis "Rusty plist parser")
+    (description
+     "This package provides a Rusty plist parser.  It supports Serde
+serialization.")
+    (license license:expat)))
+
 (define-public rust-plist-0.4
   (package
+    (inherit rust-plist-1)
     (name "rust-plist")
     (version "0.4.2")
     (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "plist" version))
-        (file-name
-         (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32
-          "0zqnxc5i4y6mj119vr0lzpb5j67vffpx2phhgh711533bw3ryajz"))))
-    (build-system cargo-build-system)
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "plist" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0zqnxc5i4y6mj119vr0lzpb5j67vffpx2phhgh711533bw3ryajz"))))
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
@@ -18137,12 +24693,7 @@ used in Cargo build scripts.")
         ("rust-xml-rs" ,rust-xml-rs-0.8)
         ("rust-serde" ,rust-serde-1)
         ("rust-humantime" ,rust-humantime-1)
-        ("rust-byteorder" ,rust-byteorder-1.3))))
-    (home-page "https://github.com/ebarnard/rust-plist/")
-    (synopsis "Rusty plist parser")
-    (description
-     "This package provides a rusty plist parser.  Supports Serde serialization.")
-    (license license:expat)))
+        ("rust-byteorder" ,rust-byteorder-1))))))
 
 (define-public rust-plotters-0.2
   (package
@@ -18205,6 +24756,29 @@ both WASM and native applications")
      "Lazily evaluated, order-independent plugins for extensible types.")
     (license license:expat)))
 
+(define-public rust-pmutil-0.5
+  (package
+    (name "rust-pmutil")
+    (version "0.5.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "pmutil" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0170zgziivri4qsch682pga3qq3z4wpr4wngzr5f9jyc97ayb51q"))))
+    (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/kdy1/rust-pmutil")
+    (synopsis "Utils for proc-macro")
+    (description "This package provides utils for proc-macro.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-pnacl-build-helper-1.4
   (package
     (name "rust-pnacl-build-helper")
@@ -18230,165 +24804,142 @@ both WASM and native applications")
      "Build script helper for building PNaCl/NaCl C/CXX libraries from source")
     (license license:mpl2.0)))
 
-(define-public rust-png-0.16
+(define-public rust-pocket-resources-0.3
   (package
-    (name "rust-png")
-    (version "0.16.6")
+    (name "rust-pocket-resources")
+    (version "0.3.2")
     (source
       (origin
         (method url-fetch)
-        (uri (crate-uri "png" version))
-        (file-name
-         (string-append name "-" version ".tar.gz"))
+        (uri (crate-uri "pocket-resources" version))
+        (file-name (string-append name "-" version ".crate"))
         (sha256
          (base32
-          "1393s3v3kg4bxnn86d7yn2vyz8xj6g64ighdfkc3vzpsg5sbyl61"))))
+          "1n2i5vmi8fdbw89wm5nz1ws1z9f1qax911p6ksg4scmdg23z6df1"))))
     (build-system cargo-build-system)
-    (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-bitflags" ,rust-bitflags-1)
-        ("rust-crc32fast" ,rust-crc32fast-1.2)
-        ("rust-deflate" ,rust-deflate-0.8)
-        ("rust-miniz-oxide" ,rust-miniz-oxide-0.3))
-       #:cargo-development-inputs
-       (("rust-criterion" ,rust-criterion-0.3)
-        ("rust-getopts" ,rust-getopts-0.2)
-        ;; TODO: glium has many cyclic dependencies with other packages
-        ;; ("rust-glium" ,rust-glium-0.24)
-        ("rust-glob" ,rust-glob-0.3)
-        ("rust-rand" ,rust-rand-0.7)
-        ("rust-term" ,rust-term-0.6))))
-    (home-page "https://github.com/image-rs/image-png.git")
-    (synopsis "PNG decoding and encoding library in pure Rust")
-    (description
-     "PNG decoding and encoding library in pure Rust.")
-    (license (list license:expat license:asl2.0))))
+    (home-page "https://github.com/tomaka/pocket-resources")
+    (synopsis "Include resources in your applications")
+    (description "This crate allows you to include resources in your
+applications.")
+    (license license:expat)))
 
-(define-public rust-png-0.15
+(define-public rust-podio-0.1
   (package
-    (inherit rust-png-0.16)
-    (name "rust-png")
-    (version "0.15.3")
+    (name "rust-podio")
+    (version "0.1.7")
     (source
      (origin
        (method url-fetch)
-       (uri (crate-uri "png" version))
+       (uri (crate-uri "podio" version))
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "10x2qkhyfnm3si5vgx77r2ik811gaap7ahi825wfxgsb0lirm1gg"))))
-    (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-bitflags" ,rust-bitflags-1)
-        ("rust-crc32fast" ,rust-crc32fast-1.2)
-        ("rust-deflate" ,rust-deflate-0.7)
-        ("rust-inflate" ,rust-inflate-0.4))
-       #:cargo-development-inputs
-       (("rust-getopts" ,rust-getopts-0.2)
-        ;; TODO: glium has many cyclic dependencies with other packages
-        ;;("rust-glium" ,rust-glium-0.24)
-        ("rust-glob" ,rust-glob-0.3)
-        ("rust-rand" ,rust-rand-0.7)
-        ("rust-term" ,rust-term-0.6))))))
+         "06bzjxrl0h8rp5860n51dlr1g143grg2jmx4g6y1mdn2ignyz2xi"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/mvdnes/podio.git")
+    (synopsis "Additional trait to read and write Plain Old Data")
+    (description
+     "Additional trait for Read and Write to read and write Plain Old Data.")
+    (license (list license:expat license:asl2.0))))
 
-(define-public rust-png-0.14
+(define-public rust-polling-2
   (package
-    (inherit rust-png-0.15)
-    (name "rust-png")
-    (version "0.14.1")
+    (name "rust-polling")
+    (version "2.0.2")
     (source
      (origin
        (method url-fetch)
-       (uri (crate-uri "png" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
+       (uri (crate-uri "polling" version))
+       (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32
-         "0nf3a8r9p9zrj4x30b48f7yv18dz9xkmrq9b3lnzmpnhzn0z9nk3"))))
+        (base32 "1r5xm3f6qs84ibg09nw1cz78r883521l3jaiakj35ri959mvr9x2"))))
+    (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-bitflags" ,rust-bitflags-1)
-        ("rust-deflate" ,rust-deflate-0.7)
-        ("rust-inflate" ,rust-inflate-0.4)
-        ("rust-num-iter" ,rust-num-iter-0.1))
+     `(#:cargo-inputs
+       (("rust-cfg-if" ,rust-cfg-if-0.1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-wepoll-sys" ,rust-wepoll-sys-3)
+        ("rust-winapi" ,rust-winapi-0.3))
        #:cargo-development-inputs
-       (("rust-getopts" ,rust-getopts-0.2)
-        ;; TODO: glium has many cyclic dependencies with other packages
-        ;; ("rust-glium" ,rust-glium-0.22)
-        ("rust-glob" ,rust-glob-0.2)
-        ("rust-rand" ,rust-rand-0.5)
-        ("rust-term" ,rust-term-0.4))))))
+       (("rust-easy-parallel" ,rust-easy-parallel-3))))
+    (home-page "https://github.com/stjepang/polling")
+    (synopsis "Portable interface to epoll, kqueue, event ports, and wepoll")
+    (description
+     "This package provides a portable interface to @code{epoll},
+@code{kqueue}, @code{event ports}, and @code{wepoll}.")
+    (license (list license:asl2.0 license:expat))))
 
-(define-public rust-png-0.12
+(define-public rust-polyval-0.4
   (package
-    (inherit rust-png-0.14)
-    (name "rust-png")
-    (version "0.12.0")
+    (name "rust-polyval")
+    (version "0.4.0")
     (source
      (origin
        (method url-fetch)
-       (uri (crate-uri "png" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
+       (uri (crate-uri "polyval" version))
+       (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0nqlc8lqf8ncv3kj0gzlxwli61dbbxcjlrp176kvilw4sl09cjzm"))))
+         "1p0765j30qxr50zh74aflafx540xkxqb7pv8kw7fvcssnm1039fr"))))
+    (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-bitflags" ,rust-bitflags-1)
-        ("rust-deflate" ,rust-deflate-0.7)
-        ("rust-inflate" ,rust-inflate-0.4)
-        ("rust-num-iter" ,rust-num-iter-0.1))
+     `(#:cargo-inputs
+       (("rust-cfg-if" ,rust-cfg-if-0.1)
+        ("rust-universal-hash" ,rust-universal-hash-0.4)
+        ("rust-zeroize" ,rust-zeroize-1))
        #:cargo-development-inputs
-       (("rust-getopts" ,rust-getopts-0.2)
-        ;; TODO: gluum has many cyclic dependencies with other packages
-        ;; ("rust-glium" ,rust-glium-0.21)
-        ("rust-glob" ,rust-glob-0.2)
-        ("rust-term" ,rust-term-0.4))))))
+       (("rust-criterion" ,rust-criterion-0.3)
+        ("rust-criterion-cycles-per-byte"
+         ,rust-criterion-cycles-per-byte-0.1)
+        ("rust-hex-literal" ,rust-hex-literal-0.1))))
+    (home-page "https://github.com/RustCrypto/universal-hashes")
+    (synopsis "GHASH-like universal hash")
+    (description "POLYVAL is a GHASH-like universal hash over GF(2^128) useful
+for constructing a Message Authentication Code (MAC).")
+    (license (list license:asl2.0 license:expat))))
 
-(define-public rust-pocket-resources-0.3
+(define-public rust-pom-3
   (package
-    (name "rust-pocket-resources")
-    (version "0.3.2")
+    (name "rust-pom")
+    (version "3.2.0")
     (source
       (origin
         (method url-fetch)
-        (uri (crate-uri "pocket-resources" version))
-        (file-name (string-append name "-" version ".crate"))
+        (uri (crate-uri "pom" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "1n2i5vmi8fdbw89wm5nz1ws1z9f1qax911p6ksg4scmdg23z6df1"))))
+          "1v14c2p1irblagnljkw4n0f1w5r8mbybzycz0j1f5y79h0kikqh7"))))
     (build-system cargo-build-system)
-    (home-page "https://github.com/tomaka/pocket-resources")
-    (synopsis "Include resources in your applications")
-    (description "This crate allows you to include resources in your
-applications.")
+    (home-page "https://github.com/J-F-Liu/pom")
+    (synopsis "PEG parser combinators using operator overloading without macros")
+    (description "This package provides a PEG parser combinators using operator
+overloading without macros in Rust.")
     (license license:expat)))
 
-(define-public rust-podio-0.1
+(define-public rust-portpicker-0.1
   (package
-    (name "rust-podio")
-    (version "0.1.7")
+    (name "rust-portpicker")
+    (version "0.1.0")
     (source
      (origin
        (method url-fetch)
-       (uri (crate-uri "podio" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
+       (uri (crate-uri "portpicker" version))
+       (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32
-         "06bzjxrl0h8rp5860n51dlr1g143grg2jmx4g6y1mdn2ignyz2xi"))))
+        (base32 "1fgb5pdayxy5nlx1lh60r7gx7wx45zza802w8hwhkq3gq42psjav"))))
     (build-system cargo-build-system)
-    (home-page "https://github.com/mvdnes/podio.git")
-    (synopsis "Additional trait to read and write Plain Old Data")
+    (arguments
+     `(#:cargo-inputs (("rust-rand" ,rust-rand-0.6))))
+    (home-page "https://github.com/Dentosal/portpicker-rs")
+    (synopsis "Pick a free unused port")
     (description
-     "Additional trait for Read and Write to read and write Plain Old Data.")
-    (license (list license:expat license:asl2.0))))
+     "This crate provides picks a free port, that is unused on both TCP and
+UDP.")
+    (license license:unlicense)))
 
 (define-public rust-ppv-lite86-0.2
   (package
@@ -18410,6 +24961,31 @@ for x86.")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-pq-sys-0.4
+  (package
+    (name "rust-pq-sys")
+    (version "0.4.6")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "pq-sys" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1npz9756283pjq3lcpwss8xh1rw4sx8f6dz8cxdg90h5bbp5xhka"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-pkg-config" ,rust-pkg-config-0.3)
+        ("rust-vcpkg" ,rust-vcpkg-0.2))))
+    (native-inputs
+     `(("postgresql" ,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
+libpq.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-precomputed-hash-0.1
   (package
     (name "rust-precomputed-hash")
@@ -18437,33 +25013,55 @@ dependency to expose a precomputed hash.")
 (define-public rust-predicates-1
   (package
     (name "rust-predicates")
-    (version "1.0.4")
+    (version "1.0.5")
     (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "predicates" version))
-        (file-name
-         (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32
-          "0c0hafd7z7v97218na8nampmy64f7fw61yvjk2y3dri11dpinyil"))))
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "predicates" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0nkkn3h3b9vigyy4adlnhi2zrxm5j0nbnqid6snwxp4h5v8ymgwn"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-difference" ,rust-difference-2.0)
-        ("rust-float-cmp" ,rust-float-cmp-0.6)
+       (("rust-difference" ,rust-difference-2)
+        ("rust-float-cmp" ,rust-float-cmp-0.8)
         ("rust-normalize-line-endings" ,rust-normalize-line-endings-0.3)
         ("rust-predicates-core" ,rust-predicates-core-1)
         ("rust-regex" ,rust-regex-1))
        #:cargo-development-inputs
        (("rust-predicates-tree" ,rust-predicates-tree-1))))
     (home-page "https://github.com/assert-rs/predicates-rs")
-    (synopsis
-     "Implementation of boolean-valued predicate functions")
+    (synopsis "Implementation of boolean-valued predicate functions")
     (description
-     "An implementation of boolean-valued predicate functions.")
+     "This package provides an implementation of boolean-valued predicate
+functions.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-predicates-0.9
+  (package
+    (inherit rust-predicates-1)
+    (name "rust-predicates")
+    (version "0.9.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "predicates" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "085ysw5iigw9l7fdy0pxqs7h165m9hxaxdknmkyq868izivpj7pk"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-difference" ,rust-difference-2)
+        ("rust-float-cmp" ,rust-float-cmp-0.4)
+        ("rust-normalize-line-endings" ,rust-normalize-line-endings-0.2)
+        ("rust-predicates-core" ,rust-predicates-core-0.9)
+        ("rust-regex" ,rust-regex-1))
+       #:cargo-development-inputs
+       (("rust-predicates-tree" ,rust-predicates-tree-0.9))))))
+
 (define-public rust-predicates-core-1
   (package
     (name "rust-predicates-core")
@@ -18485,6 +25083,21 @@ dependency to expose a precomputed hash.")
      "An API for boolean-valued predicate functions.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-predicates-core-0.9
+  (package
+    (inherit rust-predicates-core-1)
+    (name "rust-predicates-core")
+    (version "0.9.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "predicates-core" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1ig5wi3j2faxss6kshv5xdwnchiwbkq2fgx6v962mh6ij31hpy45"))))))
+
 (define-public rust-predicates-tree-1
   (package
     (name "rust-predicates-tree")
@@ -18511,6 +25124,25 @@ dependency to expose a precomputed hash.")
      "Render boolean-valued predicate functions results as a tree.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-predicates-tree-0.9
+  (package
+    (inherit rust-predicates-tree-1)
+    (name "rust-predicates-tree")
+    (version "0.9.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "predicates-tree" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1ga0yyfmqbwi28naxlr6cvpmiig0qnwx5adc858hmjxxh6dxz1if"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-predicates-core" ,rust-predicates-core-0.9)
+        ("rust-treeline" ,rust-treeline-0.1))))))
+
 (define-public rust-pretty-assertions-0.6
   (package
     (name "rust-pretty-assertions")
@@ -18531,7 +25163,7 @@ dependency to expose a precomputed hash.")
        (("rust-ctor" ,rust-ctor-0.1)
         ("rust-output-vt100" ,rust-output-vt100-0.1)
         ("rust-ansi-term" ,rust-ansi-term-0.11)
-        ("rust-difference" ,rust-difference-2.0))))
+        ("rust-difference" ,rust-difference-2))))
     (home-page "https://github.com/colin-kiegel/rust-pretty-assertions")
     (synopsis "Drop-in replacements for assert_eq! and assert_ne!")
     (description
@@ -18539,6 +25171,27 @@ dependency to expose a precomputed hash.")
 replacements, adding colorful diffs.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-pretty-assertions-0.4
+  (package
+    (inherit rust-pretty-assertions-0.6)
+    (name "rust-pretty-assertions")
+    (version "0.4.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "pretty_assertions" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1llxlnhh4qz9kda27v6nllgzvgi1fv08i3djfk4zn6zlw8c53si8"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f
+       #:cargo-inputs
+       (("rust-ansi-term" ,rust-ansi-term-0.9)
+        ("rust-difference" ,rust-difference-1))))))
+
 (define-public rust-pretty-assertions-0.2
   (package
     (name "rust-pretty-assertions")
@@ -18619,7 +25272,7 @@ replacements, adding colorful diffs.")
     (arguments
      `(#:cargo-inputs
        (("rust-atty" ,rust-atty-0.2)
-        ("rust-csv" ,rust-csv-1.1)
+        ("rust-csv" ,rust-csv-1)
         ("rust-encode-unicode" ,rust-encode-unicode-0.3)
         ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-term" ,rust-term-0.5)
@@ -18630,48 +25283,127 @@ replacements, adding colorful diffs.")
 formatted tables in terminal.")
     (license license:bsd-3)))
 
+(define-public rust-proc-macro-crate-0.1
+  (package
+    (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"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-toml" ,rust-toml-0.5))))
+    (home-page "https://github.com/bkchr/proc-macro-crate")
+    (synopsis "Support for @code{$crate} in procedural macros")
+    (description
+     "This crate provides a way to get the name of a crate, even if it
+renamed in @file{Cargo.toml}.")
+    (license (list license:asl2.0 license:expat))))
+
+(define-public rust-proc-macro-error-1
+  (package
+    (name "rust-proc-macro-error")
+    (version "1.0.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "proc-macro-error" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1373bhxaf0pagd8zkyd03kkx6bchzf6g0dkwrwzsnal9z47lj9fs"))))
+    (build-system cargo-build-system)
+    (arguments
+     ;; Tests fail with "extern crate test_crate; <-- can't find crate" error.
+     `(#:tests? #f
+       #:cargo-inputs
+       (("rust-proc-macro-error-attr" ,rust-proc-macro-error-attr-1)
+        ("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-1)
+        ("rust-version-check" ,rust-version-check-0.9))
+       #:cargo-development-inputs
+       (("rust-serde-derive" ,rust-serde-derive-1)
+        ("rust-toml" ,rust-toml-0.5)
+        ("rust-trybuild" ,rust-trybuild-1))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-version-requirements
+           (lambda _
+             (substitute* "Cargo.toml"
+               (("1.0.107") ,(package-version rust-serde-derive-1))
+               (("0.5.2") ,(package-version rust-toml-0.5))))))))
+    (home-page "https://gitlab.com/CreepySkeleton/proc-macro-error")
+    (synopsis "Drop-in replacement to panics in proc-macros")
+    (description
+     "This crate serves as a tiny shim around @code{proc_macro::Diagnostic}
+and @code{compile_error!}.  It detects the most preferable way to emit errors
+based on compiler's version.  When the underlying diagnostic type is finally
+stabilized, this crate will be simply delegating to it, requiring no changes
+in your code.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-proc-macro-error-0.4
   (package
+    (inherit rust-proc-macro-error-1)
     (name "rust-proc-macro-error")
     (version "0.4.12")
     (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "proc-macro-error" version))
-        (file-name
-         (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32
-          "1rvpaadwv7vmsp142qqh2axqrr9v78f1nvdsi9nhmfhy10kk1wqq"))))
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "proc-macro-error" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1rvpaadwv7vmsp142qqh2axqrr9v78f1nvdsi9nhmfhy10kk1wqq"))))
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-proc-macro-error-attr" ,rust-proc-macro-error-attr-0.4)
+        ("rust-version-check" ,rust-version-check-0.9)
+        ("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-syn" ,rust-syn-1)
+        ("rust-quote" ,rust-quote-1))))))
+
+(define-public rust-proc-macro-error-attr-1
+  (package
+    (name "rust-proc-macro-error-attr")
+    (version "1.0.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "proc-macro-error-attr" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0sgq6m5jfmasmwwy8x4mjygx5l7kp8s4j60bv25ckv2j1qc41gm1"))))
     (build-system cargo-build-system)
     (arguments
-      `(#:skip-build? #t
-        #:cargo-inputs
-        (("rust-proc-macro-error-attr" ,rust-proc-macro-error-attr-0.4)
-         ("rust-version-check" ,rust-version-check-0.9)
-         ("rust-proc-macro2" ,rust-proc-macro2-1)
-         ("rust-syn" ,rust-syn-1)
-         ("rust-quote" ,rust-quote-1))))
+     `(#:cargo-inputs
+       (("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-version-check" ,rust-version-check-0.9))))
     (home-page "https://gitlab.com/CreepySkeleton/proc-macro-error")
-    (synopsis "Almost drop-in replacement to panics in proc-macros")
-    (description
-     "Almost drop-in replacement to panics in proc-macros.")
+    (synopsis "Attribute macro for proc-macro-error crate")
+    (description "Attribute macro for proc-macro-error crate")
     (license (list license:expat license:asl2.0))))
 
 (define-public rust-proc-macro-error-attr-0.4
   (package
+    (inherit rust-proc-macro-error-attr-1)
     (name "rust-proc-macro-error-attr")
     (version "0.4.12")
     (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "proc-macro-error-attr" version))
-        (file-name
-         (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32
-          "1pk9mwcfnpf8favgc2cl4sqlmi818p96hg8pfb51wg5nzmvlnnwa"))))
-    (build-system cargo-build-system)
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "proc-macro-error-attr" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1pk9mwcfnpf8favgc2cl4sqlmi818p96hg8pfb51wg5nzmvlnnwa"))))
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
@@ -18679,17 +25411,12 @@ formatted tables in terminal.")
         ("rust-version-check" ,rust-version-check-0.9)
         ("rust-proc-macro2" ,rust-proc-macro2-1)
         ("rust-syn" ,rust-syn-1)
-        ("rust-quote" ,rust-quote-1))))
-    (home-page "https://gitlab.com/CreepySkeleton/proc-macro-error")
-    (synopsis "Attribute macro for proc-macro-error crate")
-    (description
-     "Attribute macro for proc-macro-error crate.")
-    (license (list license:expat license:asl2.0))))
+        ("rust-quote" ,rust-quote-1))))))
 
 (define-public rust-proc-macro-hack-0.5
   (package
     (name "rust-proc-macro-hack")
-    (version "0.5.16")
+    (version "0.5.19")
     (source
      (origin
        (method url-fetch)
@@ -18698,14 +25425,14 @@ formatted tables in terminal.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1r657v7d9vh1ivrvq65rvg9gjb29dpa0l3zg2fgrn5j8znz5c13y"))))
+         "1rg0kzsj7lj00qj602d3h77spwfz48vixn1wbjp7a4yrq65w9w6v"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-development-inputs
        (("rust-quote" ,rust-quote-1)
-        ("rust-rustversion" ,rust-rustversion-1.0)
+        ("rust-rustversion" ,rust-rustversion-1)
         ("rust-syn" ,rust-syn-1)
-        ("rust-trybuild" ,rust-trybuild-1.0)
+        ("rust-trybuild" ,rust-trybuild-1)
         ("rust-demo-hack" ,rust-demo-hack-0.0)
         ("rust-demo-hack-impl" ,rust-demo-hack-impl-0.0))))
     (home-page "https://github.com/dtolnay/proc-macro-hack")
@@ -18781,7 +25508,7 @@ formatted tables in terminal.")
 (define-public rust-proc-macro2-1
   (package
     (name "rust-proc-macro2")
-    (version "1.0.10")
+    (version "1.0.24")
     (source
       (origin
         (method url-fetch)
@@ -18789,10 +25516,11 @@ formatted tables in terminal.")
         (file-name (string-append name "-" version ".crate"))
         (sha256
          (base32
-          "1qxbnl8i3a5b2nxb8kdxbq6kj3pd1ckhm35wm7z3jd7n5wlns96z"))))
+          "0wcabxzrddcjmryndw8fpyxcq6rw63m701vx86xxf03y3bp081qy"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:cargo-inputs
+     `(#:cargo-test-flags '("--lib")
+       #:cargo-inputs
        (("rust-unicode-xid" ,rust-unicode-xid-0.2))
        #:cargo-development-inputs
        (("rust-quote" ,rust-quote-1))))
@@ -18871,25 +25599,92 @@ macro use case.")
 @code{proc_macro_derive} pretend to be @code{proc_macro}.")
     (license (list license:expat license:asl2.0))))
 
-(define-public rust-proptest-0.9
+(define-public rust-progrs-0.1
   (package
-    (name "rust-proptest")
-    (version "0.9.6")
+    (name "rust-progrs")
+    (version "0.1.1")
     (source
      (origin
        (method url-fetch)
-       (uri (crate-uri "proptest" version))
+       (uri (crate-uri "progrs" version))
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0nsslp46lvf3ll5rd83rin652qlz1kqyp0rmsciy0pw4kf0pgi01"))))
+         "108jx8jrv2r1brhvbqfw6fwx298k5fnw3m46kn7lv0jx2wmf0ifz"))))
+    (build-system cargo-build-system)
+    (arguments '(#:tests? #f))
+    (home-page "https://nest.pijul.com/laumann/progrs")
+    (synopsis "Small library for displaying compact progress bars")
+    (description
+     "There are a number of libraries out there that can be used for progress
+display, but in the author's opinion these libraries do it almost right -
+either they eat up too much screen real estate (by not sticking to one line
+per thing that should use progress) or they try to align stuff left and right.
+
+In the author's humble opinion, the best example of just the right amount of
+information vs screen real-estate is in the Git progress output (when cloning,
+pulling, etc).  It uses one line per thing, and may display both percentage
+complete (in cases where it's known) and even throughput (for network
+transfer).
+
+This library mimics the Git way of showing progress.")
+    (license license:gpl2+)))
+
+(define-public rust-proptest-0.10
+  (package
+    (name "rust-proptest")
+    (version "0.10.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "proptest" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0vv4cvwn1v7h0zjajmhznll554a2ri8dqw26xql3q49r246cirhj"))))
     (build-system cargo-build-system)
     (arguments
+     `(#:skip-build? #t
+       #: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-1.2)
+        ("rust-rand" ,rust-rand-0.7)
+        ("rust-rand-chacha" ,rust-rand-chacha-0.2)
+        ("rust-rand-xorshift" ,rust-rand-xorshift-0.2)
+        ("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.9
+  (package
+    (inherit rust-proptest-0.10)
+    (name "rust-proptest")
+    (version "0.9.6")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "proptest" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0nsslp46lvf3ll5rd83rin652qlz1kqyp0rmsciy0pw4kf0pgi01"))))
+    (arguments
      `(#:cargo-inputs
        (("rust-bit-set" ,rust-bit-set-0.5)
         ("rust-bitflags" ,rust-bitflags-1)
-        ("rust-byteorder" ,rust-byteorder-1.3)
+        ("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-1.2)
@@ -18900,14 +25695,7 @@ macro use case.")
         ("rust-rusty-fork" ,rust-rusty-fork-0.2)
         ("rust-tempfile" ,rust-tempfile-3))
        #: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
-     "Hypothesis-like property-based testing and shrinking.")
-    (license (list license:asl2.0 license:expat))))
+       (("rust-regex" ,rust-regex-1))))))
 
 (define-public rust-proptest-0.8
   (package
@@ -18929,7 +25717,7 @@ macro use case.")
        #:cargo-inputs
        (("rust-bit-set" ,rust-bit-set-0.5)
         ("rust-bitflags" ,rust-bitflags-1)
-        ("rust-byteorder" ,rust-byteorder-1.3)
+        ("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-1.2)
@@ -18968,6 +25756,59 @@ macro use case.")
        #:cargo-development-inputs
        (("rust-regex" ,rust-regex-0.2))))))
 
+(define-public rust-proptest-0.3
+  (package
+    (inherit rust-proptest-0.7)
+    (name "rust-proptest")
+    (version "0.3.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "proptest" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "15633iq8x3x0im5vyij2gr8ncpflv4fa9w63rh94k20xhzv4m308"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bit-set" ,rust-bit-set-0.4)
+        ("rust-lazy-static" ,rust-lazy-static-0.2)
+        ("rust-quick-error" ,rust-quick-error-1.2)
+        ("rust-rand" ,rust-rand-0.3)
+        ("rust-regex-syntax" ,rust-regex-syntax-0.4))
+       #:cargo-development-inputs
+       (("rust-regex" ,rust-regex-0.2))))))
+
+(define-public rust-proptest-derive-0.1
+  (package
+    (name "rust-proptest-derive")
+    (version "0.1.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "proptest-derive" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0nziczbm7w0jisjrd216hh2j45fs5m363ga7r6nawwxcxlbxn7nk"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-proc-macro2" ,rust-proc-macro2-0.4)
+        ("rust-quote" ,rust-quote-0.6)
+        ("rust-syn" ,rust-syn-0.15))
+       #:cargo-development-inputs
+       (("rust-compiletest-rs" ,rust-compiletest-rs-0.3)
+        ("rust-criterion" ,rust-criterion-0.2)
+        ("rust-proptest" ,rust-proptest-0.9))))
+    (home-page
+     "https://altsysrq.github.io/proptest-book/proptest-derive/index.html")
+    (synopsis "Custom-derive for the Arbitrary trait of proptest")
+    (description "This package provides a Custom-derive for the Arbitrary
+trait of proptest.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-psm-0.1
   (package
     (name "rust-psm")
@@ -18991,6 +25832,35 @@ macro use case.")
 stack pointer and inspect the properties of the stack.")
     (license (list license:isc license:asl2.0))))
 
+(define-public rust-publicsuffix-1
+  (package
+    (name "rust-publicsuffix")
+    (version "1.5.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "publicsuffix" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0yvmjpywfyypfr17kxiwy6ssykgv8nmcdhfakas6548pfn8a9fiv"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-error-chain" ,rust-error-chain-0.12)
+        ("rust-idna" ,rust-idna-0.2)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-native-tls" ,rust-native-tls-0.2)
+        ("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))))
+
 (define-public rust-pulldown-cmark-0.4
   (package
     (name "rust-pulldown-cmark")
@@ -19049,6 +25919,26 @@ stack pointer and inspect the properties of the stack.")
      "This package provides a pull parser for CommonMark.")
     (license license:expat)))
 
+(define-public rust-pulldown-cmark-0.1
+  (package
+    (inherit rust-pulldown-cmark-0.2)
+    (name "rust-pulldown-cmark")
+    (version "0.1.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "pulldown-cmark" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0ckflr6w5vfvgb2xnzbnph9b6c0k8cfncm4a8bjzmbbcv9fgizfn"))))
+    (arguments
+     `(#:tests? #f
+       #:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-0.9)
+        ("rust-getopts" ,rust-getopts-0.2))))))
+
 (define-public rust-pulldown-cmark-0.0.8
   (package/inherit rust-pulldown-cmark-0.4
     (name "rust-pulldown-cmark")
@@ -19066,6 +25956,53 @@ stack pointer and inspect the properties of the stack.")
        (("rust-bitflags" ,rust-bitflags-0.5)
         ("rust-getopts" ,rust-getopts-0.2))))))
 
+(define-public rust-pulse-0.5
+  (package
+    (name "rust-pulse")
+    (version "0.5.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "pulse" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1w4skcnwmavm8ra9blf1hy7bc9grnin2kziiyc18lsnrr2v14mk5"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-atom" ,rust-atom-0.3)
+        ("rust-time" ,rust-time-0.1))))
+    (home-page "https://github.com/csherratt/pulse")
+    (synopsis "Async wake signals library")
+    (description "This package provides a library for async wake signals.")
+    (license license:asl2.0)))
+
+(define-public rust-pure-rust-locales-0.5
+  (package
+    (name "rust-pure-rust-locales")
+    (version "0.5.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "pure-rust-locales" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0ryjj0gs4hfadqx9vl4sgi32zyb2dlvwpxca1m1kmrw9hk1g7gv5"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-itertools" ,rust-itertools-0.8)
+        ("rust-nom" ,rust-nom-5))))
+    (home-page "https://github.com/cecton/pure-rust-locales")
+    (synopsis "Pure Rust locales imported directly from the GNU C Library")
+    (description
+     "Pure Rust locales imported directly from the GNU C Library.
+@code{LC_COLLATE} and @code{LC_CTYPE} are not yet supported.")
+    (license license:expat)))
+
 (define-public rust-quantiles-0.7
   (package
     (name "rust-quantiles")
@@ -19334,10 +26271,10 @@ integers, floats, tuples, booleans, lists, strings, options and results.")
         (base32
          "1vb4acppaavlnchzc1jmn5wlkgir9x9gmhgp97bavyxxqxgsg1nh"))))))
 
-(define-public rust-quickcheck-macros-0.8
+(define-public rust-quickcheck-macros-0.9
   (package
     (name "rust-quickcheck-macros")
-    (version "0.8.0")
+    (version "0.9.1")
     (source
      (origin
        (method url-fetch)
@@ -19346,25 +26283,47 @@ integers, floats, tuples, booleans, lists, strings, options and results.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0b3mhn0xcrdd3fkbkx3rghhivwzwil8w991ngp6gaj70l72c3pyp"))))
+         "0zsb9b4jpg7qvbiym4v8y9pgqk7p1g4f5hn9gp0fnzz9v1pib330"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-proc-macro2" ,rust-proc-macro2-0.4)
-        ("rust-quote" ,rust-quote-0.6)
-        ("rust-syn" ,rust-syn-0.15))
+       (("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-1))
        #:cargo-development-inputs
-       (("rust-quickcheck" ,rust-quickcheck-0.8))))
+       (("rust-quickcheck" ,rust-quickcheck-0.9))))
     (home-page "https://github.com/BurntSushi/quickcheck")
     (synopsis "Macro attribute for quickcheck")
     (description
      "This package provides a macro attribute for quickcheck.")
     (license (list license:unlicense license:expat))))
 
+(define-public rust-quickcheck-macros-0.8
+  (package
+    (inherit rust-quickcheck-macros-0.9)
+    (name "rust-quickcheck-macros")
+    (version "0.8.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "quickcheck_macros" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0b3mhn0xcrdd3fkbkx3rghhivwzwil8w991ngp6gaj70l72c3pyp"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-proc-macro2" ,rust-proc-macro2-0.4)
+        ("rust-quote" ,rust-quote-0.6)
+        ("rust-syn" ,rust-syn-0.15))
+       #:cargo-development-inputs
+       (("rust-quickcheck" ,rust-quickcheck-0.8))))))
+
 (define-public rust-quote-1
   (package
     (name "rust-quote")
-    (version "1.0.3")
+    (version "1.0.7")
     (source
       (origin
         (method url-fetch)
@@ -19372,14 +26331,14 @@ integers, floats, tuples, booleans, lists, strings, options and results.")
         (file-name (string-append name "-" version ".crate"))
         (sha256
          (base32
-          "0zwd6fp74xfg4jnnnwj4v84lkzif2giwj4ch1hka9g35ghc6rp1b"))))
+          "0drzd6pq7whq7qhdvvs8wn6pbb0hhc12pz8wv80fb05ixhbksmma"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-proc-macro2" ,rust-proc-macro2-1))
        #:cargo-development-inputs
-       (("rust-rustversion" ,rust-rustversion-1.0)
-        ("rust-trybuild" ,rust-trybuild-1.0))))
+       (("rust-rustversion" ,rust-rustversion-1)
+        ("rust-trybuild" ,rust-trybuild-1))))
     (home-page "https://github.com/dtolnay/quote")
     (synopsis "Quasi-quoting macro quote!(...)")
     (description "Quasi-quoting macro quote!(...)")
@@ -19435,6 +26394,29 @@ integers, floats, tuples, booleans, lists, strings, options and results.")
          "0yhnnix4dzsv8y4wwz4csbnqjfh73al33j35msr10py6cl5r4vks"))))
     (arguments '())))
 
+(define-public rust-r2d2
+  (package
+    (name "rust-r2d2")
+    (version "0.8.9")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "r2d2" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0vxjgh83bss63mkx308p16iwl33s80c781p422f3r5w0p315np2l"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-log" ,rust-log-0.4)
+        ("rust-parking-lot" ,rust-parking-lot-0.11)
+        ("rust-scheduled-thread-pool" ,rust-scheduled-thread-pool-0.2))))
+    (home-page "https://github.com/sfackler/r2d2")
+    (synopsis "A generic connection pool")
+    (description "This package provides a generic connection pool.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-racer-cargo-metadata-0.1
   (package
     (name "rust-racer-cargo-metadata")
@@ -19485,20 +26467,95 @@ Racer.")
 fashion.  It is mostly used in Racer.")
     (license license:expat)))
 
-(define-public rust-rand-0.7
+(define-public rust-radium-0.5
   (package
-    (name "rust-rand")
-    (version "0.7.3")
+    (name "rust-radium")
+    (version "0.5.3")
     (source
       (origin
         (method url-fetch)
-        (uri (crate-uri "rand" version))
-        (file-name (string-append name "-" version ".crate"))
+        (uri (crate-uri "radium" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "00sdaimkbz491qgi6qxkv582yivl32m2jd401kzbn94vsiwicsva"))))
+          "1f5vj5zy4kcsw8p87y976dm5pln6v6jfw5f0fkj7qbwfipbsj6wl"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-development-inputs
+       (("rust-static-assertions" ,rust-static-assertions-1))))
+    (home-page "https://github.com/mystor/radium")
+    (synopsis "Portable interfaces for maybe-atomic types")
+    (description
+     "@code{radium} provides abstractions and graceful degradation for behavior
+that must be shared-mutable, but merely may use atomic instructions to do so.")
+    (license license:expat)))
+
+(define-public rust-radix-fmt-1
+  (package
+    (name "rust-radix-fmt")
+    (version "1.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "radix_fmt" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "09jlq152iwn56215kghqby4pi8vamhg0nzcb9any5b5782cjl26f"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-development-inputs
+       (("rust-fluid" ,rust-fluid-0.4))))
+    (home-page "https://gitlab.com/Boiethios/radix_fmt_rs")
+    (synopsis "Format a number in an arbitrary radix")
+    (description "This package lets you format a number in an arbitrary
+radix.")
+    (license license:asl2.0)))
+
+(define-public rust-rand-0.8
+  (package
+    (name "rust-rand")
+    (version "0.8.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "rand" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "07lb17qj02bi17mhqxlmsiyf4g8cmplm6hbiw5hxc900li19nl8q"))))
     (build-system cargo-build-system)
     (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-libc" ,rust-libc-0.2)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-packed-simd-2" ,rust-packed-simd-2-0.3)
+        ("rust-rand-chacha" ,rust-rand-chacha-0.3)
+        ("rust-rand-core" ,rust-rand-core-0.6)
+        ("rust-rand-hc" ,rust-rand-hc-0.3)
+        ("rust-serde" ,rust-serde-1))))
+    (home-page "https://crates.io/crates/rand")
+    (synopsis "Random number generators and other randomness functionality")
+    (description
+     "Rand provides utilities to generate random numbers, to convert them to
+useful types and distributions, and some randomness-related algorithms.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-rand-0.7
+  (package
+    (inherit rust-rand-0.8)
+    (name "rust-rand")
+    (version "0.7.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "rand" version))
+       (file-name (string-append name "-" version ".crate"))
+       (sha256
+        (base32
+         "00sdaimkbz491qgi6qxkv582yivl32m2jd401kzbn94vsiwicsva"))))
+    (arguments
      `(#:cargo-inputs
        (("rust-getrandom" ,rust-getrandom-0.1)
         ("rust-libc" ,rust-libc-0.2)
@@ -19510,14 +26567,7 @@ fashion.  It is mostly used in Racer.")
         ("rust-rand-pcg" ,rust-rand-pcg-0.2))
        #:cargo-development-inputs
        (("rust-rand-hc" ,rust-rand-hc-0.2)
-        ("rust-rand-pcg" ,rust-rand-pcg-0.2))))
-    (home-page "https://crates.io/crates/rand")
-    (synopsis "Random number generators and other randomness functionality")
-    (description
-     "Rand provides utilities to generate random numbers, to convert them to
-useful types and distributions, and some randomness-related algorithms.")
-    (license (list license:asl2.0
-                   license:expat))))
+        ("rust-rand-pcg" ,rust-rand-pcg-0.2))))))
 
 (define-public rust-rand-0.6
   (package
@@ -19619,8 +26669,32 @@ useful types and distributions, and some randomness-related algorithms.")
        (("rust-libc" ,rust-libc-0.2)
         ("rust-rand" ,rust-rand-0.4))))))
 
+(define-public rust-rand-chacha-0.3
+  (package
+    (name "rust-rand-chacha")
+    (version "0.3.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "rand_chacha" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "03df2xh5nbdvwr17qm3sviaxa95r8yhm1nil2pr0pqf90p7ka9z1"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-ppv-lite86" ,rust-ppv-lite86-0.2)
+        ("rust-rand-core" ,rust-rand-core-0.6))))
+    (home-page "https://crates.io/crates/rand_chacha")
+    (synopsis "ChaCha random number generator")
+    (description
+     "This package provides the ChaCha random number generator.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-rand-chacha-0.2
   (package
+    (inherit rust-rand-chacha-0.3)
     (name "rust-rand-chacha")
     (version "0.2.2")
     (source
@@ -19632,15 +26706,10 @@ useful types and distributions, and some randomness-related algorithms.")
        (sha256
         (base32
          "00il36fkdbsmpr99p9ksmmp6dn1md7rmnwmz0rr77jbrca2yvj7l"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-c2-chacha" ,rust-c2-chacha-0.2)
-        ("rust-rand-core" ,rust-rand-core-0.5))))
-    (home-page "https://crates.io/crates/rand-chacha")
-    (synopsis "ChaCha random number generator")
-    (description "ChaCha random number generator.")
-    (license (list license:asl2.0 license:expat))))
+        ("rust-rand-core" ,rust-rand-core-0.5))))))
 
 (define-public rust-rand-chacha-0.1
   (package
@@ -19661,8 +26730,33 @@ useful types and distributions, and some randomness-related algorithms.")
        #:cargo-development-inputs
        (("rust-autocfg" ,rust-autocfg-0.1))))))
 
+(define-public rust-rand-core-0.6
+  (package
+    (name "rust-rand-core")
+    (version "0.6.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "rand_core" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1rfjrcyaj7blz2nawv2pypm5kqc59p80n6f5pg691399iggxf9n0"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-getrandom" ,rust-getrandom-0.2)
+        ("rust-serde" ,rust-serde-1))))
+    (home-page "https://rust-random.github.io/book")
+    (synopsis "Core random number generator traits and tools")
+    (description
+     "This package provides core random number generator traits and
+tools for implementation.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-rand-core-0.5
   (package
+    (inherit rust-rand-core-0.6)
     (name "rust-rand-core")
     (version "0.5.1")
     (source
@@ -19674,17 +26768,10 @@ useful types and distributions, and some randomness-related algorithms.")
        (sha256
         (base32
          "06bdvx08v3rkz451cm7z59xwwqn1rkfh6v9ay77b14f8dwlybgch"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-getrandom" ,rust-getrandom-0.1)
-        ("rust-serde" ,rust-serde-1))))
-    (home-page "https://crates.io/crates/rand-core")
-    (synopsis
-     "Core random number generator traits and tools for implementation")
-    (description
-     "Core random number generator traits and tools for implementation.")
-    (license (list license:expat license:asl2.0))))
+        ("rust-serde" ,rust-serde-1))))))
 
 (define-public rust-rand-core-0.4
   (package
@@ -19767,8 +26854,32 @@ useful types and distributions, and some randomness-related algorithms.")
      "Sampling from random number distributions.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-rand-hc-0.3
+  (package
+    (name "rust-rand-hc")
+    (version "0.3.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "rand_hc" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0wra6ar22zdjkry9dsq1mg620m4h3qb9s8rfykkz4im4crqfz41i"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-rand-core" ,rust-rand-core-0.6))))
+    (home-page "https://crates.io/crates/rand_hc")
+    (synopsis "HC128 random number generator")
+    (description "This package provides a cryptographically secure random number
+generator that uses the HC-128 algorithm.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-rand-hc-0.2
   (package
+    (inherit rust-rand-hc-0.3)
     (name "rust-rand-hc")
     (version "0.2.0")
     (source
@@ -19779,16 +26890,9 @@ useful types and distributions, and some randomness-related algorithms.")
         (sha256
          (base32
           "0g31sqwpmsirdlwr0svnacr4dbqyz339im4ssl9738cjgfpjjcfa"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-rand-hc" ,rust-rand-core-0.5))))
-    (home-page "https://crates.io/crates/rand_hc")
-    (synopsis "HC128 random number generator")
-    (description "This package provides a cryptographically secure random number
-generator that uses the HC-128 algorithm.")
-    (license (list license:asl2.0
-                   license:expat))))
+       (("rust-rand-hc" ,rust-rand-core-0.5))))))
 
 (define-public rust-rand-hc-0.1
   (package
@@ -20073,7 +27177,7 @@ random number generators.")
          "07w3qgrac8r356lz5vqff42rly6yd9vs3g5lx5pbn13rcmb05rqb"))))
     (arguments
      `(#:cargo-inputs
-       (("rust-byteorder" ,rust-byteorder-1.3)
+       (("rust-byteorder" ,rust-byteorder-1)
         ("rust-rand-core" ,rust-rand-core-0.5)
         ("rust-serde" ,rust-serde-1))
        #:cargo-development-inputs
@@ -20096,31 +27200,109 @@ random number generators.")
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-byteorder" ,rust-byteorder-1.3)
+       (("rust-byteorder" ,rust-byteorder-1)
         ("rust-rand-core" ,rust-rand-core-0.3))
        #:cargo-development-inputs
        (("rust-rand" ,rust-rand-0.6))))))
 
-(define-public rust-raw-window-handle-0.3
+(define-public rust-random-fast-rng-0.1
   (package
-    (name "rust-raw-window-handle")
-    (version "0.3.3")
+    (name "rust-random-fast-rng")
+    (version "0.1.1")
     (source
      (origin
        (method url-fetch)
-       (uri (crate-uri "raw-window-handle" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
+       (uri (crate-uri "random-fast-rng" version))
+       (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32
-         "04c2wir7qq3g2b143yav52a1g5ack8ffqx2bpmrn9bc0dix1li0a"))))
+        (base32 "18q577c8j2j9j044b5fnj1xw1lwkyjrkl3agzp3lvx3iln24wy4m"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:cargo-inputs (("rust-libc" ,rust-libc-0.2))))
-    (home-page "https://github.com/rust-windowing/raw-window-handle")
-    (synopsis "Interoperability library for Rust Windowing applications")
+     `(#:cargo-inputs
+       (("rust-doc-comment" ,rust-doc-comment-0.3)
+        ("rust-random-trait" ,rust-random-trait-0.1))))
+    (home-page "https://github.com/elichai/random-rs")
+    (synopsis "Library for fast non cryptographic random number generator")
+    (description
+     "This package is a Rust library for fast non cryptographic random number
+generator.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-random-trait-0.1
+  (package
+    (name "rust-random-trait")
+    (version "0.1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "random-trait" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0iw4laa9i97x1m1mc72rx0km0j6pjdrb75b0c93fdaq45spqcc8d"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-doc-comment" ,rust-doc-comment-0.3))))
+    (home-page "https://crates.io/crates/random-trait")
+    (synopsis "Rust library for a random trait")
+    (description
+     "This package is a Rust library for a random trait meant to produce
+random generic types.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-randomize-4
+  (package
+    (name "rust-randomize")
+    (version "4.0.0-alpha.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "randomize" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0m4vkgm161q51ww9bvf0kram9cxg8j3p80rl9w1fzpgkwcwbqhpm"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #true
+       #:cargo-inputs
+       (("rust-getrandom" ,rust-getrandom-0.1))))
+    (home-page "https://github.com/Lokathor/randomize")
+    (synopsis "Minimalist randomization library")
     (description
-     "Interoperability library for Rust Windowing applications.")
+     "This package provides a minimalist randomization library.")
+    (license
+     (list license:zlib license:asl2.0 license:expat))))
+
+(define-public rust-raw-cpuid-8
+  (package
+    (name "rust-raw-cpuid")
+    (version "8.1.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "raw-cpuid" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0wry932lx7gqyxn7w54mg61b7hiwywyir754jhfxiws3pnfpvpqz"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-cc" ,rust-cc-1)
+        ("rust-rustc-version" ,rust-rustc-version-0.2)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-derive" ,rust-serde-derive-1))
+       #:cargo-development-inputs
+       (("rust-core-affinity" ,rust-core-affinity-0.5)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-rustversion" ,rust-rustversion-0.1))))
+    (home-page "https://github.com/gz/rust-cpuid")
+    (synopsis "Library to parse the x86 CPUID instruction, written in Rust")
+    (description
+     "This package provides a library to parse the x86 CPUID instruction,
+written in Rust with no external dependencies.  The implementation closely
+resembles the Intel CPUID manual description.  The library does only depend on
+libcore.")
     (license license:expat)))
 
 (define-public rust-rawpointer-0.2
@@ -20188,22 +27370,20 @@ accessors.")
 (define-public rust-rayon-1
   (package
     (name "rust-rayon")
-    (version "1.3.1")
+    (version "1.5.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "rayon" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32
-         "104h6i5lcp9kx8g80jgqf6z7wcqa186q57wj4qzf011xfmb2iw32"))))
+        (base32 "0x2n4zkrm6z3avdfh7zgcwx0wq6hx8332dx89v3j1p7s3448w3cb"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-autocfg" ,rust-autocfg-1.0)
-        ("rust-crossbeam-deque" ,rust-crossbeam-deque-0.7)
-        ("rust-either" ,rust-either-1.5)
+       (("rust-autocfg" ,rust-autocfg-1)
+        ("rust-crossbeam-deque" ,rust-crossbeam-deque-0.8)
+        ("rust-either" ,rust-either-1)
         ("rust-rayon-core" ,rust-rayon-core-1))
        #:cargo-development-inputs
        (("rust-docopt" ,rust-docopt-1.1)
@@ -20214,7 +27394,8 @@ accessors.")
     (home-page "https://github.com/rayon-rs/rayon")
     (synopsis "Simple work-stealing parallelism for Rust")
     (description
-     "Simple work-stealing parallelism for Rust.")
+     "This package provides a simple work-stealing parallelism for
+Rust.")
     (license (list license:asl2.0 license:expat))))
 
 (define-public rust-rayon-0.8
@@ -20243,36 +27424,34 @@ accessors.")
 (define-public rust-rayon-core-1
   (package
     (name "rust-rayon-core")
-    (version "1.7.1")
+    (version "1.9.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "rayon-core" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32
-         "101jjwkcfw5jk31695gbdm163iicc2pz349q6l8lwj43j3c1abp9"))))
+        (base32 "0jpsi8zf66xyx4m5f329lpgiql8775vpm6zqm7zn5p11b6n4dcws"))))
     (build-system cargo-build-system)
     (arguments
-     `(;; One of the tests attempts to overflow the stack, but the compiler
-       ;; has since gotten smarter and the test became defective.
-       #:tests? #f
+     ;; One of the tests attempts to overflow the stack, but the compiler has
+     ;; since gotten smarter and the test became defective.
+     `(#:tests? #f
        #:cargo-inputs
-       (("rust-crossbeam-deque" ,rust-crossbeam-deque-0.7)
-        ("rust-crossbeam-queue" ,rust-crossbeam-queue-0.2)
-        ("rust-crossbeam-utils" ,rust-crossbeam-utils-0.7)
+       (("rust-crossbeam-channel" ,rust-crossbeam-channel-0.5)
+        ("rust-crossbeam-deque" ,rust-crossbeam-deque-0.8)
+        ("rust-crossbeam-utils" ,rust-crossbeam-utils-0.8)
         ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-num-cpus" ,rust-num-cpus-1))
        #:cargo-development-inputs
        (("rust-libc" ,rust-libc-0.2)
         ("rust-rand" ,rust-rand-0.7)
         ("rust-rand-xorshift" ,rust-rand-xorshift-0.2)
-        ("rust-scoped-tls" ,rust-scoped-tls-1.0))))
+        ("rust-scoped-tls" ,rust-scoped-tls-1))))
     (home-page "https://github.com/rayon-rs/rayon")
     (synopsis "Core APIs for Rayon")
-    (description "Core APIs for Rayon.")
-    (license (list license:expat license:asl2.0))))
+    (description "This package provides core APIs for Rayon.")
+    (license (list license:asl2.0 license:expat))))
 
 (define-public rust-rctree-0.3
   (package
@@ -20367,7 +27546,7 @@ owned memory.")
 (define-public rust-redox-syscall-0.1
   (package
     (name "rust-redox-syscall")
-    (version "0.1.56")
+    (version "0.1.57")
     (source
       (origin
         (method url-fetch)
@@ -20375,7 +27554,7 @@ owned memory.")
         (file-name (string-append name "-" version ".crate"))
         (sha256
          (base32
-          "110y7dyfm2vci4x5vk7gr0q551dvp31npl99fnsx2fb17wzwcf94"))))
+          "1kh59fpwy33w9nwd5iyc283yglq8pf2s41hnhvl48iax9mz0zk21"))))
     (build-system cargo-build-system)
     (arguments '(#:skip-build? #t))
     (home-page "https://gitlab.redox-os.org/redox-os/syscall")
@@ -20452,8 +27631,8 @@ functionality.")
      `(#:cargo-inputs
        (("rust-ref-cast-impl" ,rust-ref-cast-impl-1.0))
        #:cargo-development-inputs
-       (("rust-rustversion" ,rust-rustversion-1.0)
-        ("rust-trybuild" ,rust-trybuild-1.0))))
+       (("rust-rustversion" ,rust-rustversion-1)
+        ("rust-trybuild" ,rust-trybuild-1))))
     (home-page "https://github.com/dtolnay/ref-cast")
     (synopsis "Safely cast &T to &U")
     (description
@@ -20479,7 +27658,7 @@ functionality.")
        (("rust-ref-cast-impl" ,rust-ref-cast-impl-0.2))
        #:cargo-development-inputs
        (("rust-rustversion" ,rust-rustversion-0.1)
-        ("rust-trybuild" ,rust-trybuild-1.0))))
+        ("rust-trybuild" ,rust-trybuild-1))))
     (home-page "https://github.com/dtolnay/ref-cast")
     (synopsis "Safely cast &T to &U")
     (description
@@ -20529,23 +27708,21 @@ functionality.")
 (define-public rust-regex-1
   (package
     (name "rust-regex")
-    (version "1.3.9")
+    (version "1.4.3")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "regex" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32
-         "1rnqga94ypykl2apgj26l2j1s9bvr2ix4dlzs323n6abyky80dww"))))
+        (base32 "12llbg82js69mdl50lav4yn1iqlx71ckb18dww467q99w4wi49fr"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-aho-corasick" ,rust-aho-corasick-0.7)
         ("rust-memchr" ,rust-memchr-2)
         ("rust-regex-syntax" ,rust-regex-syntax-0.6)
-        ("rust-thread-local" ,rust-thread-local-1.0))
+        ("rust-thread-local" ,rust-thread-local-1))
        #:cargo-development-inputs
        (("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-quickcheck" ,rust-quickcheck-0.8)
@@ -20553,7 +27730,7 @@ functionality.")
     (home-page "https://github.com/rust-lang/regex")
     (synopsis "Regular expressions for Rust")
     (description
-     "An implementation of regular expressions for Rust.  This implementation
+     "This package is an implementation of regular expressions for Rust.  It
 uses finite automata and guarantees linear time matching on all inputs.")
     (license (list license:expat license:asl2.0))))
 
@@ -20631,7 +27808,7 @@ uses finite automata and guarantees linear time matching on all inputs.")
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-fst" ,rust-fst-0.4)
-        ("rust-byteorder" ,rust-byteorder-1.3)
+        ("rust-byteorder" ,rust-byteorder-1)
         ("rust-regex-syntax" ,rust-regex-syntax-0.6))
        #:cargo-development-inputs
        (("rust-bstr" ,rust-bstr-0.2)
@@ -20651,22 +27828,20 @@ uses finite automata and guarantees linear time matching on all inputs.")
 (define-public rust-regex-syntax-0.6
   (package
     (name "rust-regex-syntax")
-    (version "0.6.18")
+    (version "0.6.22")
     (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "regex-syntax" version))
-        (file-name (string-append name "-" version ".crate"))
-        (sha256
-         (base32
-          "1s648w7rwpxnq9iqwbyy43ar4al07906jpz0jxlql23bgjwjwh96"))))
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "regex-syntax" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "10b56ylil35jkb4nwqxm8hbyx3zq7fws0wpydjln165s8xql3sxm"))))
     (build-system cargo-build-system)
     (home-page "https://github.com/rust-lang/regex")
     (synopsis "Regular expression parser")
     (description
      "This package provides a regular expression parser.")
-    (license (list license:asl2.0
-                   license:expat))))
+    (license (list license:expat license:asl2.0))))
 
 (define-public rust-regex-syntax-0.5
   (package
@@ -20724,6 +27899,29 @@ 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-relative-path-1
+  (package
+    (name "rust-relative-path")
+    (version "1.3.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "relative_path" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "152zdks8chgsq4vmp562bx6whvixm7gzivab1cf8rs1r634ggbv5"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-serde" ,rust-serde-1))
+       #:cargo-development-inputs
+       (("rust-serde" ,rust-serde-1))))
+    (home-page "https://docs.rs/crate/relative-path/")
+    (synopsis "Portable, relative paths for Rust")
+    (description "This package provides portable, relative paths for Rust.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-remove-dir-all-0.5
   (package
     (name "rust-remove-dir-all")
@@ -20781,28 +27979,136 @@ uses finite automata and guarantees linear time matching on all inputs.")
     (description "File reopening utility.")
     (license (list license:asl2.0 license:expat))))
 
-(define-public rust-resize-0.3
+(define-public rust-reqwest-0.10
   (package
-    (name "rust-resize")
-    (version "0.3.1")
+    (name "rust-reqwest")
+    (version "0.10.10")
     (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "resize" version))
-        (file-name
-         (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32
-          "1ai83laz5yvg4r7z9q8d1m0vq0fqj2ycyprw5fxzxyzaj3im7rmr"))))
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "reqwest" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0z7l46m1mjnvncscaq61zq6qmazrmb33vwjcnfrxpi0liqdgh607"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:cargo-development-inputs
-       (("rust-png" ,rust-png-0.15))))
-    (home-page "https://github.com/PistonDevelopers/resize")
-    (synopsis "Simple image resampling library in pure Rust")
-    (description
-     "This package provides a simple image resampling library in pure Rust.")
-    (license license:expat)))
+     `(#:cargo-test-flags '("--release" "--"
+                            ;; These tests require internet access.
+                            "--skip=test_badssl_modern"
+                            "--skip=test_badssl_self_signed"
+                            ;; XXX: Not sure why these fail.
+                            "--skip=test_allowed_methods"
+                            "--skip=connect_timeout")
+       #:cargo-inputs
+       (("rust-async-compression" ,rust-async-compression-0.3)
+        ("rust-base64" ,rust-base64-0.13)
+        ("rust-bytes" ,rust-bytes-0.5)
+        ("rust-cookie" ,rust-cookie-0.14)
+        ("rust-cookie-store" ,rust-cookie-store-0.12)
+        ("rust-encoding-rs" ,rust-encoding-rs-0.8)
+        ("rust-futures-core" ,rust-futures-core-0.3)
+        ("rust-futures-util" ,rust-futures-util-0.3)
+        ("rust-http" ,rust-http-0.2)
+        ("rust-http-body" ,rust-http-body-0.3)
+        ("rust-hyper" ,rust-hyper-0.13)
+        ("rust-hyper-rustls" ,rust-hyper-rustls-0.21)
+        ("rust-hyper-tls" ,rust-hyper-tls-0.4)
+        ("rust-ipnet" ,rust-ipnet-2)
+        ("rust-js-sys" ,rust-js-sys-0.3)
+        ("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-native-tls" ,rust-native-tls-0.2)
+        ("rust-percent-encoding" ,rust-percent-encoding-2)
+        ("rust-pin-project-lite" ,rust-pin-project-lite-0.2)
+        ("rust-rustls" ,rust-rustls-0.18)
+        ("rust-rustls-native-certs" ,rust-rustls-native-certs-0.4)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-serde-urlencoded" ,rust-serde-urlencoded-0.7)
+        ("rust-time" ,rust-time-0.2)
+        ("rust-tokio" ,rust-tokio-0.2)
+        ("rust-tokio-rustls" ,rust-tokio-rustls-0.14)
+        ("rust-tokio-socks" ,rust-tokio-socks-0.3)
+        ("rust-tokio-tls" ,rust-tokio-tls-0.3)
+        ("rust-trust-dns-resolver" ,rust-trust-dns-resolver-0.19)
+        ("rust-url" ,rust-url-2)
+        ("rust-wasm-bindgen" ,rust-wasm-bindgen-0.2)
+        ("rust-wasm-bindgen-futures" ,rust-wasm-bindgen-futures-0.4)
+        ("rust-web-sys" ,rust-web-sys-0.3)
+        ("rust-webpki-roots" ,rust-webpki-roots-0.20)
+        ("rust-winreg" ,rust-winreg-0.7))
+       #:cargo-development-inputs
+       (("rust-brotli" ,rust-brotli-3)
+        ("rust-doc-comment" ,rust-doc-comment-0.3)
+        ("rust-env-logger" ,rust-env-logger-0.7)
+        ("rust-hyper" ,rust-hyper-0.13)
+        ("rust-libflate" ,rust-libflate-1)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-tokio" ,rust-tokio-0.2)
+        ("rust-wasm-bindgen-test" ,rust-wasm-bindgen-test-0.3))))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("openssl" ,openssl)))
+    (home-page "https://github.com/seanmonstar/reqwest")
+    (synopsis "High level HTTP client library")
+    (description "This package provides a high level HTTP client library.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-reqwest-0.9
+  (package
+    (inherit rust-reqwest-0.10)
+    (name "rust-reqwest")
+    (version "0.9.24")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "reqwest" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1aql4wpmf1cfl09xddlxnmd7y1nj7fcbzmsh9603qd61lfp471pq"))))
+    (arguments
+     `(#:cargo-test-flags '("--release" "--" "--skip=badssl")
+       #:cargo-inputs
+       (("rust-base64" ,rust-base64-0.10)
+        ("rust-bytes" ,rust-bytes-0.4)
+        ("rust-cookie" ,rust-cookie-0.12)
+        ("rust-cookie-store" ,rust-cookie-store-0.7)
+        ("rust-encoding-rs" ,rust-encoding-rs-0.8)
+        ("rust-flate2" ,rust-flate2-1)
+        ("rust-futures" ,rust-futures-0.1)
+        ("rust-http" ,rust-http-0.1)
+        ("rust-hyper" ,rust-hyper-0.12)
+        ("rust-hyper-old-types" ,rust-hyper-old-types-0.11)
+        ("rust-hyper-rustls" ,rust-hyper-rustls-0.17)
+        ("rust-hyper-tls" ,rust-hyper-tls-0.3)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-mime" ,rust-mime-0.3)
+        ("rust-mime-guess" ,rust-mime-guess-2)
+        ("rust-native-tls" ,rust-native-tls-0.2)
+        ("rust-rustls" ,rust-rustls-0.16)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-serde-urlencoded" ,rust-serde-urlencoded-0.5)
+        ("rust-socks" ,rust-socks-0.3)
+        ("rust-time" ,rust-time-0.1)
+        ("rust-tokio" ,rust-tokio-0.1)
+        ("rust-tokio-executor" ,rust-tokio-executor-0.1)
+        ("rust-tokio-io" ,rust-tokio-io-0.1)
+        ("rust-tokio-rustls" ,rust-tokio-rustls-0.10)
+        ("rust-tokio-threadpool" ,rust-tokio-threadpool-0.1)
+        ("rust-tokio-timer" ,rust-tokio-timer-0.2)
+        ("rust-trust-dns-resolver" ,rust-trust-dns-resolver-0.11)
+        ("rust-url" ,rust-url-1)
+        ("rust-uuid" ,rust-uuid-0.7)
+        ("rust-webpki-roots" ,rust-webpki-roots-0.17)
+        ("rust-winreg" ,rust-winreg-0.6))
+       #:cargo-development-inputs
+       (("rust-doc-comment" ,rust-doc-comment-0.3)
+        ("rust-libflate" ,rust-libflate-0.1))))))
 
 (define-public rust-resolv-conf-0.6
   (package
@@ -20829,33 +28135,23 @@ uses finite automata and guarantees linear time matching on all inputs.")
     (license (list license:asl2.0
                    license:expat))))
 
-(define-public rust-rgb-0.8
+(define-public rust-retain-mut-0.1
   (package
-    (name "rust-rgb")
-    (version "0.8.18")
+    (name "rust-retain-mut")
+    (version "0.1.1")
     (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "rgb" version))
-        (file-name
-         (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32
-          "15hrf0gb1l1a8rhx7b6gzrcmb43xlll4r1ym0mq55c7068dhc537"))))
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "retain_mut" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0cgmm1q7sr31r9wk7syh53ipgqpl37jzsvahdhmwrsi6mmcdc1g0"))))
     (build-system cargo-build-system)
-    (arguments
-     `(#:cargo-inputs
-       (("rust-serde" ,rust-serde-1))
-       #:cargo-development-inputs
-       (("rust-serde-json" ,rust-serde-json-1))))
-    (home-page "https://lib.rs/crates/rgb")
-    (synopsis "Struct for sharing pixels between crates")
-    (description
-     "This package provides @code{struct RGB/RGBA/etc.} for sharing pixels
-between crates + convenience methods for color manipulation.  It allows no-copy
-high-level interoperability.  It also adds common convenience methods and
-implements standard Rust traits to make `RGB`/`RGBA` pixels and slices
-first-class Rust objects.")
+    (home-page "https://github.com/upsuper/retain_mut")
+    (synopsis "Mutable borrow for the retain predicate")
+    (description "This package provides retain_mut method that has the same
+functionality as retain but gives mutable borrow to the predicate.")
     (license license:expat)))
 
 (define-public rust-ring-0.16
@@ -20888,6 +28184,29 @@ first-class Rust objects.")
     (description "This package provided safe, fast, small crypto using Rust.")
     (license (list license:isc license:openssl))))
 
+(define-public rust-ring-0.14
+  (package
+    (inherit rust-ring-0.16)
+    (name "rust-ring")
+    (version "0.14.6")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "ring" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0g091akf4dpg9qj05z3gc4nlrs57mjj2bqab98gaqp79wf3c2ss2"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-spin" ,rust-spin-0.5)
+        ("rust-untrusted" ,rust-untrusted-0.6)
+        ("rust-winapi" ,rust-winapi-0.3)
+        ("rust-cc" ,rust-cc-1))))))
+
 (define-public rust-ring-0.13
   (package/inherit rust-ring-0.16
     (name "rust-ring")
@@ -20960,8 +28279,74 @@ your own implementation.")
 Rust Language Server.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-rkv-0.10
+  (package
+    (name "rust-rkv")
+    (version "0.10.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "rkv" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "14v7izkpwvk4ag8p9machzjq2v10xwimy5ylbra744wpyk0xp8rh"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f  ; Some test files missing.
+       #:cargo-inputs
+       (("rust-arrayref" ,rust-arrayref-0.3)
+        ("rust-bincode" ,rust-bincode-1)
+        ("rust-bitflags" ,rust-bitflags-1)
+        ("rust-byteorder" ,rust-byteorder-1)
+        ("rust-failure" ,rust-failure-0.1)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-lmdb-rkv" ,rust-lmdb-rkv-0.14)
+        ("rust-ordered-float" ,rust-ordered-float-1.0)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-derive" ,rust-serde-derive-1)
+        ("rust-url" ,rust-url-2)
+        ("rust-uuid" ,rust-uuid-0.8))
+       #:cargo-development-inputs
+       (("rust-byteorder" ,rust-byteorder-1)
+        ("rust-tempfile" ,rust-tempfile-3))))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("lmdb" ,lmdb)))
+    (home-page "https://github.com/mozilla/rkv")
+    (synopsis "Typed key-value storage")
+    (description "This package provides a typed key-value storage solution.")
+    (license license:asl2.0)))
+
+(define-public rust-ron-0.5
+  (package
+    (name "rust-ron")
+    (version "0.5.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "ron" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256 (base32 "1mb2bavvp8jg5wx0kx9n45anrsbjwhjzddim987bjaa11hg45kif"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-base64" ,rust-base64-0.10)
+        ("rust-bitflags" ,rust-bitflags-1)
+        ("rust-serde" ,rust-serde-1))
+       #:cargo-development-inputs
+       (("rust-serde-bytes" ,rust-serde-bytes-0.10)
+        ("rust-serde-json" ,rust-serde-json-1))))
+    (home-page "https://github.com/ron-rs/ron")
+    (synopsis "Rusty Object Notation")
+    (description "This package provides Rusty Object Notation (RON).")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-ron-0.4
   (package
+    (inherit rust-ron-0.5)
     (name "rust-ron")
     (version "0.4.2")
     (source
@@ -20973,7 +28358,6 @@ Rust Language Server.")
        (sha256
         (base32
          "13ypx80ac1minrmn9w9sgnbxlknwiv7qhx5n50azh0s484j2mx8p"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
@@ -20982,12 +28366,26 @@ Rust Language Server.")
         ("rust-serde" ,rust-serde-1))
        #:cargo-development-inputs
        (;("rust-serde-bytes" ,rust-serde-bytes-0.10)
-        ("rust-serde-json" ,rust-serde-json-1))))
-    (home-page "https://github.com/ron-rs/ron")
-    (synopsis "Rusty Object Notation")
-    (description "Rusty Object Notation.")
-    (license (list license:asl2.0
-                   license:expat))))
+        ("rust-serde-json" ,rust-serde-json-1))))))
+
+(define-public rust-route-recognizer-0.2
+  (package
+    (name "rust-route-recognizer")
+    (version "0.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "route-recognizer" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "17mmnyzg7yr5x84n28y6bll1qn21g11k61p6sgg2fjf0xdshcxsn"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/http-rs/route-recognizer")
+    (synopsis "Recognizes URL patterns")
+    (description
+     "This package helps recognizing URL patterns with support for dynamic and
+wildcard segments")
+    (license license:expat)))
 
 (define-public rust-rspec-1
   (package
@@ -21004,7 +28402,7 @@ Rust Language Server.")
     (arguments
      `(#:skip-build? #t ;; TODO unpackaged dev-dependencies
        #:cargo-inputs
-       (("rust-colored" ,rust-colored-1.9)
+       (("rust-colored" ,rust-colored-1)
         ("rust-derive-new" ,rust-derive-new-0.5)
         ("rust-derive-builder" ,rust-derive-builder-0.5)
         ("rust-expectest" ,rust-expectest-0.9)
@@ -21017,20 +28415,21 @@ Rust Language Server.")
 rust.")
     (license license:mpl2.0)))
 
-(define-public rust-rpassword-4
+(define-public rust-rpassword-5
   (package
     (name "rust-rpassword")
-    (version "4.0.5")
+    (version "5.0.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "rpassword" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "17z99xazhhbaczw0ib1vnnq450j0zacdn8b2zcbdir68sdbicdwr"))))
+        (base32 "1j96nc3dmqhxwb4ql50r5xjs0imwr2x6mrj02mj9i7grq1zj6mfp"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:cargo-inputs
+     `(#:skip-build? #t
+       #:cargo-inputs
        (("rust-libc" ,rust-libc-0.2)
         ("rust-winapi" ,rust-winapi-0.3))))
     (home-page "https://github.com/conradkleinespel/rpassword")
@@ -21039,41 +28438,93 @@ rust.")
 console applications.")
   (license license:asl2.0)))
 
-(define-public rust-rusqlite-0.19
+(define-public rust-rpassword-4
+  (package
+    (inherit rust-rpassword-5)
+    (name "rust-rpassword")
+    (version "4.0.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "rpassword" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "17z99xazhhbaczw0ib1vnnq450j0zacdn8b2zcbdir68sdbicdwr"))))))
+
+(define-public rust-rpassword-3
+  (package
+    (inherit rust-rpassword-4)
+    (name "rust-rpassword")
+    (version "3.0.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "rpassword" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0vkifbbs160d7i7wy3kb0vw9mbf3pf470hg8f623rjkzmsyafky3"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-kernel32-sys" ,rust-kernel32-sys-0.2)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-winapi" ,rust-winapi-0.2))))))
+
+(define-public rust-rpassword-2
+  (package
+    (inherit rust-rpassword-3)
+    (name "rust-rpassword")
+    (version "2.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "rpassword" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1v255xqkig5lwnczvm3achydhxx6kf9jcdxdlgzndgpd18bp6x6k"))))))
+
+(define-public rust-rusqlite-0.24
   (package
     (name "rust-rusqlite")
-    (version "0.19.0")
+    (version "0.24.1")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "rusqlite" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "19xq7s0kzhlljm3hqx0vidr91ia8hl49r4m5gwdj9dyywgks5g3f"))))
+        (base32 "0s5svm32zl1qqmln8ww8g6ziwg5mi2k88si1a5zj25smmf8lfgby"))))
     (build-system cargo-build-system)
     (inputs
      `(("sqlite" ,sqlite)))
     (arguments
-     `(#:cargo-inputs
+     `(#:skip-build? #t
+       #:cargo-inputs
        (("rust-bitflags" ,rust-bitflags-1)
-        ("rust-byteorder" ,rust-byteorder-1.3)
+        ("rust-byteorder" ,rust-byteorder-1)
         ("rust-chrono" ,rust-chrono-0.4)
-        ("rust-csv" ,rust-csv-1.1)
+        ("rust-csv" ,rust-csv-1)
         ("rust-fallible-iterator" ,rust-fallible-iterator-0.2)
         ("rust-fallible-streaming-iterator"
          ,rust-fallible-streaming-iterator-0.1)
+        ("rust-hashlink" ,rust-hashlink-0.6)
         ("rust-lazy-static" ,rust-lazy-static-1)
-        ("rust-libsqlite3-sys" ,rust-libsqlite3-sys-0.15)
-        ("rust-lru-cache" ,rust-lru-cache-0.1)
+        ("rust-libsqlite3-sys" ,rust-libsqlite3-sys-0.20)
+        ;;("rust-lru-cache" ,rust-lru-cache-0.1)
         ("rust-memchr" ,rust-memchr-2)
         ("rust-serde-json" ,rust-serde-json-1)
-        ("rust-time" ,rust-time-0.1)
-        ("rust-url" ,rust-url-1.7)
+        ("rust-time" ,rust-time-0.2)
+        ("rust-url" ,rust-url-2)
         ("rust-uuid" ,rust-uuid-0.7))
        #:cargo-development-inputs
-       (("rust-lazy-static" ,rust-lazy-static-1)
+       (("rust-bencher" ,rust-bencher-0.1)
+        ("rust-doc-comment" ,rust-doc-comment-0.3)
+        ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-regex" ,rust-regex-1)
-        ("rust-tempdir" ,rust-tempdir-0.3)
+        ("rust-tempfile" ,rust-tempfile-3)
         ("rust-unicase" ,rust-unicase-2)
         ("rust-uuid" ,rust-uuid-0.7))))
     (home-page "https://github.com/rusqlite/rusqlite")
@@ -21081,6 +28532,63 @@ console applications.")
     (description "This prackage provides a wrapper for SQLite.")
     (license license:expat)))
 
+(define-public rust-rusqlite-0.23
+  (package
+    (inherit rust-rusqlite-0.24)
+    (name "rust-rusqlite")
+    (version "0.23.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "rusqlite" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "12z5584sylfqg7v2fyiycahyg0hf186v8v2ff5ad4qyzw5igvl25"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin
+           ;; Enable unstable features
+           (substitute* "src/lib.rs"
+             (("#!\\[allow\\(unknown_lints\\)\\]" all)
+              (string-append
+               "#![feature(cfg_doctest)]\n"
+               "#![feature(non_exhaustive)]\n"
+               all)))))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-byteorder" ,rust-byteorder-1)
+        ("rust-chrono" ,rust-chrono-0.4)
+        ("rust-csv" ,rust-csv-1)
+        ("rust-fallible-iterator" ,rust-fallible-iterator-0.2)
+        ("rust-fallible-streaming-iterator"
+         ,rust-fallible-streaming-iterator-0.1)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-libsqlite3-sys" ,rust-libsqlite3-sys-0.18)
+        ("rust-lru-cache" ,rust-lru-cache-0.1)
+        ("rust-memchr" ,rust-memchr-2)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-smallvec" ,rust-smallvec-1)
+        ("rust-time" ,rust-time-0.1)
+        ("rust-url" ,rust-url-2)
+        ("rust-uuid" ,rust-uuid-0.8))
+       #:cargo-development-inputs
+       (("rust-bencher" ,rust-bencher-0.1)
+        ("rust-doc-comment" ,rust-doc-comment-0.3)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-regex" ,rust-regex-1)
+        ("rust-tempfile" ,rust-tempfile-3)
+        ("rust-unicase" ,rust-unicase-2)
+        ("rust-uuid" ,rust-uuid-0.8))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'enable-unstable-features
+           (lambda _
+             (setenv "RUSTC_BOOTSTRAP" "1")
+             #t)))))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))))
+
 (define-public rust-rust-argon2-0.7
   (package
     (name "rust-rust-argon2")
@@ -21138,6 +28646,41 @@ hashing function.")
 password hashing function.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-rust-base58-0.0
+  (package
+    (name "rust-rust-base58")
+    (version "0.0.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "rust-base58" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0fa4y2jjjmg1a0cr3gz4z8rkic0hx2vx5nm23za9lwf6rlgvj4xk"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin
+           ;; Otherwise we get an error: no method named `gen_iter` found
+           ;; for type `rand::prelude::ThreadRng`
+           (substitute* "Cargo.toml"
+             (("rand.*") "rand = \"<0.6\"\n"))
+           #t))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-num" ,rust-num-0.1))
+       #:cargo-development-inputs
+       (("rust-rand" ,rust-rand-0.4))))
+    (home-page "https://github.com/nham/rust-base58")
+    (synopsis
+     "Simple library for converting to and from base-58 strings")
+    (description
+     "Convert to and from base-58 strings with a simple Rust api.
+ Currently the conversion uses the Bitcoin base58 alphabet.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-rust-hawktracer-0.7
   (package
     (name "rust-rust-hawktracer")
@@ -21322,7 +28865,7 @@ It is automatically published using the compiler repository at
         ("rust-rustc-ap-rustc-macros" ,rust-rustc-ap-rustc-macros-654)
         ("rust-rustc-ap-serialize" ,rust-rustc-ap-serialize-654)
         ("rust-rustc-ap-rustc-span" ,rust-rustc-ap-rustc-span-654)
-        ("rust-scoped-tls" ,rust-scoped-tls-1.0)
+        ("rust-scoped-tls" ,rust-scoped-tls-1)
         ("rust-smallvec" ,rust-smallvec-1))))
     (home-page "https://github.com/alexcrichton/rustc-auto-publish")
     (synopsis
@@ -21364,11 +28907,11 @@ It is automatically published using the compiler repository at
         ("rust-rustc-ap-graphviz" ,rust-rustc-ap-graphviz-654)
         ("rust-rustc-ap-rustc-index" ,rust-rustc-ap-rustc-index-654)
         ("rust-rustc-ap-serialize" ,rust-rustc-ap-serialize-654)
-        ("rust-rustc-hash" ,rust-rustc-hash-1.1)
+        ("rust-rustc-hash" ,rust-rustc-hash-1)
         ("rust-rustc-rayon" ,rust-rustc-rayon-0.3)
         ("rust-rustc-rayon-core" ,rust-rustc-rayon-core-0.3)
         ("rust-smallvec" ,rust-smallvec-1)
-        ("rust-stable-deref-trait" ,rust-stable-deref-trait-1.1)
+        ("rust-stable-deref-trait" ,rust-stable-deref-trait-1)
         ("rust-winapi" ,rust-winapi-0.3))))
     (home-page "https://github.com/alexcrichton/rustc-auto-publish")
     (synopsis "Automatically published versions of rustc data structures")
@@ -21486,7 +29029,7 @@ It is automatically published using the compiler repository at
         ("rust-rustc-ap-rustc-index" ,rust-rustc-ap-rustc-index-654)
         ("rust-rustc-ap-rustc-macros" ,rust-rustc-ap-rustc-macros-654)
         ("rust-rustc-ap-serialize" ,rust-rustc-ap-serialize-654)
-        ("rust-scoped-tls" ,rust-scoped-tls-1.0)
+        ("rust-scoped-tls" ,rust-scoped-tls-1)
         ("rust-sha-1" ,rust-sha-1-0.8)
         ("rust-unicode-width" ,rust-unicode-width-0.1))))
     (home-page "https://github.com/alexcrichton/rustc-auto-publish")
@@ -21577,7 +29120,7 @@ It is automatically published using the compiler repository at
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-compiler-builtins" ,rust-compiler-builtins-0.1)
-        ("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1.0))))
+        ("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1))))
     (home-page "https://github.com/alexcrichton/rustc-demangle")
     (synopsis "Rust compiler symbol demangling")
     (description
@@ -21585,7 +29128,7 @@ It is automatically published using the compiler repository at
     (license (list license:asl2.0
                    license:expat))))
 
-(define-public rust-rustc-hash-1.1
+(define-public rust-rustc-hash-1
   (package
     (name "rust-rustc-hash")
     (version "1.1.0")
@@ -21606,6 +29149,20 @@ It is automatically published using the compiler repository at
      "This package provides a speedy, non-cryptographic hash used in rustc.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-rustc-hash-1.0
+  (package
+    (inherit rust-rustc-hash-1)
+    (name "rust-rustc-hash")
+    (version "1.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "rustc-hash" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1f4cnbcmz2c3zjidqszc9c4fip37ch4xl74nkkp9dw291j5zqh3m"))))))
+
 (define-public rust-rustc-rayon-0.3
   (package
     (name "rust-rustc-rayon")
@@ -21624,7 +29181,7 @@ It is automatically published using the compiler repository at
      `(#:tests? #f
        #:cargo-inputs
        (("rust-crossbeam-deque" ,rust-crossbeam-deque-0.7)
-        ("rust-either" ,rust-either-1.5)
+        ("rust-either" ,rust-either-1)
         ("rust-rustc-rayon-core" ,rust-rustc-rayon-core-0.3))
        #:cargo-development-inputs
        (("rust-doc-comment" ,rust-doc-comment-0.3)
@@ -21671,7 +29228,7 @@ should be using the real rayon crate, not rustc-rayon.")
        (("rust-libc" ,rust-libc-0.2)
         ("rust-rand" ,rust-rand-0.6)
         ("rust-rand-xorshift" ,rust-rand-xorshift-0.1)
-        ("rust-scoped-tls" ,rust-scoped-tls-1.0))))
+        ("rust-scoped-tls" ,rust-scoped-tls-1))))
     (home-page "https://github.com/rust-lang/rustc-rayon")
     (synopsis "Core APIs for Rayon - fork for rustc")
     (description
@@ -21708,7 +29265,7 @@ decoding.")
     (license (list license:asl2.0
                    license:expat))))
 
-(define-public rust-rustc-std-workspace-alloc-1.0
+(define-public rust-rustc-std-workspace-alloc-1
   (package
     (name "rust-rustc-std-workspace-alloc")
     (version "1.0.0")
@@ -21728,7 +29285,7 @@ decoding.")
     (description "This package is a Rust workspace hack.")
     (license (list license:asl2.0 license:expat))))
 
-(define-public rust-rustc-std-workspace-core-1.0
+(define-public rust-rustc-std-workspace-core-1
   (package
     (name "rust-rustc-std-workspace-core")
     (version "1.0.0")
@@ -21850,16 +29407,15 @@ rustc compiler.")
 (define-public rust-rustdoc-stripper-0.1
   (package
     (name "rust-rustdoc-stripper")
-    (version "0.1.9")
+    (version "0.1.16")
     (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "rustdoc-stripper" version))
-        (file-name
-         (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32
-          "13rf65a0xk1zyb92jd8p12x529rsbfchwk9zvjr0snr9savpxw19"))))
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "rustdoc-stripper" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "053041694rjfcs0c6nkfz164d67klmj66wkf8dwlcc7y75gf57wp"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-development-inputs
@@ -21892,7 +29448,7 @@ rustc compiler.")
         ("rust-serde" ,rust-serde-1)
         ("rust-serde-json" ,rust-serde-json-1))
        #:cargo-development-inputs
-       (("rust-difference" ,rust-difference-2.0)
+       (("rust-difference" ,rust-difference-2)
         ("rust-duct" ,rust-duct-0.13)
         ("rust-env-logger" ,rust-env-logger-0.6)
         ("rust-log" ,rust-log-0.4)
@@ -21904,8 +29460,70 @@ rustc compiler.")
      "Automatically apply the suggestions made by rustc.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-rustls-0.18
+  (package
+    (name "rust-rustls")
+    (version "0.18.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "rustls" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "108cf3bfw5high066shz9xrfv4jz7djdmnwqs3kwx4wfypf2c4ax"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-base64" ,rust-base64-0.12)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-ring" ,rust-ring-0.16)
+        ("rust-sct" ,rust-sct-0.6)
+        ("rust-webpki" ,rust-webpki-0.21))
+       #:cargo-development-inputs
+       (("rust-criterion" ,rust-criterion-0.3)
+        ("rust-env-logger" ,rust-env-logger-0.7)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-webpki-roots" ,rust-webpki-roots-0.20))))
+    (home-page "https://github.com/ctz/rustls")
+    (synopsis "Modern TLS library written in Rust.")
+    (description "This package provides a modern TLS library written in
+Rust.")
+    (license
+     (list license:asl2.0 license:isc license:expat))))
+
+(define-public rust-rustls-0.17
+  (package
+    (inherit rust-rustls-0.18)
+    (name "rust-rustls")
+    (version "0.17.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "rustls" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1q8m835viqrf4bbd2fa8rnmaj48fkd984saxf0238hb8blgs7m60"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-base64" ,rust-base64-0.11)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-ring" ,rust-ring-0.16)
+        ("rust-sct" ,rust-sct-0.6)
+        ("rust-webpki" ,rust-webpki-0.21))
+       #:cargo-development-inputs
+       (("rust-criterion" ,rust-criterion-0.3)
+        ("rust-env-logger" ,rust-env-logger-0.7)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-tempfile" ,rust-tempfile-3)
+        ("rust-webpki-roots" ,rust-webpki-roots-0.19))))))
+
 (define-public rust-rustls-0.16
   (package
+    (inherit rust-rustls-0.17)
     (name "rust-rustls")
     (version "0.16.0")
     (source
@@ -21915,7 +29533,6 @@ rustc compiler.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "17n0fx3fpkg4fhpdplrdhkissnl003kj90vzbqag11vkpyqihnmj"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:tests? #f ;; 1/114 tests fail (test file not found)
        #:cargo-inputs
@@ -21929,11 +29546,36 @@ rustc compiler.")
         ("rust-env-logger" ,rust-env-logger-0.6)
         ("rust-log" ,rust-log-0.4)
         ("rust-tempfile" ,rust-tempfile-3)
-        ("rust-webpki-roots" ,rust-webpki-roots-0.17))))
-    (home-page "https://github.com/ctz/rustls")
-  (synopsis "Modern TLS library written in Rust")
-  (description "This package provides a modern TLS library written in Rust.")
-  (license (list license:asl2.0 license:isc license:expat))))
+        ("rust-webpki-roots" ,rust-webpki-roots-0.17))))))
+
+(define-public rust-rustls-0.15
+  (package
+    (inherit rust-rustls-0.16)
+    (name "rust-rustls")
+    (version "0.15.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "rustls" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0vh93fhqfbn4ysw4xzkpkpqdz36xixz4mhs1qllgldfq5iay6wgj"))))
+    (arguments
+     `(#:tests? #f ;; 1/111 tests fail (test file not found)
+       #:cargo-inputs
+       (("rust-base64" ,rust-base64-0.10)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-ring" ,rust-ring-0.14)
+        ("rust-sct" ,rust-sct-0.5)
+        ("rust-untrusted" ,rust-untrusted-0.6)
+        ("rust-webpki" ,rust-webpki-0.19))
+       #:cargo-development-inputs
+       (("rust-env-logger" ,rust-env-logger-0.6)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-tempfile" ,rust-tempfile-3)
+        ("rust-webpki-roots" ,rust-webpki-roots-0.16))))))
 
 (define-public rust-rustls-0.12
   (package/inherit rust-rustls-0.16
@@ -21967,6 +29609,38 @@ rustc compiler.")
         ("rust-serde-derive" ,rust-serde-derive-1)
         ("rust-webpki-roots" ,rust-webpki-roots-0.14))))))
 
+(define-public rust-rustls-native-certs-0.4
+  (package
+    (name "rust-rustls-native-certs")
+    (version "0.4.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "rustls-native-certs" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1f2rkvdkz92qcmwryyqiw9phkqkf95g4962ljpfq5nkjfsd477b2"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-openssl-probe" ,rust-openssl-probe-0.1)
+        ("rust-rustls" ,rust-rustls-0.18)
+        ("rust-schannel" ,rust-schannel-0.1)
+        ("rust-security-framework"
+         ,rust-security-framework-1))
+       #:cargo-development-inputs
+       (("rust-ring" ,rust-ring-0.16)
+        ("rust-untrusted" ,rust-untrusted-0.7)
+        ("rust-webpki" ,rust-webpki-0.21)
+        ("rust-webpki-roots" ,rust-webpki-roots-0.20))))
+    (home-page "https://github.com/ctz/rustls-native-certs")
+    (synopsis "Use the platform native certificate store with rustls")
+    (description "@code{rustls-native-certs} allows rustls to use the platform
+native certificate store.")
+    (license
+     (list license:asl2.0 license:isc license:expat))))
+
 (define-public rust-rusttype-0.8
   (package
     (name "rust-rusttype")
@@ -21992,7 +29666,7 @@ rustc compiler.")
         ("rust-linked-hash-map" ,rust-linked-hash-map-0.5)
         ("rust-num-cpus" ,rust-num-cpus-1)
         ("rust-ordered-float" ,rust-ordered-float-1.0)
-        ("rust-rustc-hash" ,rust-rustc-hash-1.1)
+        ("rust-rustc-hash" ,rust-rustc-hash-1)
         ("rust-stb-truetype" ,rust-stb-truetype-0.3))))
     (home-page "https://gitlab.redox-os.org/redox-os/rusttype")
     (synopsis "Pure Rust alternative to libraries like FreeType")
@@ -22029,7 +29703,7 @@ font rendering.")
         ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-unicode-normalization" ,rust-unicode-normalization-0.1))))))
 
-(define-public rust-rustversion-1.0
+(define-public rust-rustversion-1
   (package
     (name "rust-rustversion")
     (version "1.0.2")
@@ -22080,23 +29754,20 @@ font rendering.")
 rustc compiler version.")
     (license (list license:expat license:asl2.0))))
 
-(define-public rust-rusty-fork-0.2
+(define-public rust-rusty-fork-0.3
   (package
     (name "rust-rusty-fork")
-    (version "0.2.2")
+    (version "0.3.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "rusty-fork" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32
-         "1bjg8adk0i921088j52rn0hmvsry34q19g96x41pamqcw5j35n9x"))))
+        (base32 "0kxwq5c480gg6q0j3bg4zzyfh2kwmc3v2ba94jw8ncjc8mpcqgfb"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-fnv" ,rust-fnv-1)
         ("rust-quick-error" ,rust-quick-error-1.2)
         ("rust-tempfile" ,rust-tempfile-3)
@@ -22104,11 +29775,94 @@ rustc compiler version.")
     (home-page "https://github.com/altsysrq/rusty-fork")
     (synopsis "Library for running Rust tests in sub-processes")
     (description
-     "Cross-platform library for running Rust tests in sub-processes
-using a fork-like interface.")
-    (license (list license:asl2.0 license:expat))))
+     "This package is a cross-platform library for running Rust tests in
+sub-processes using a fork-like interface.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-rusty-fork-0.2
+  (package
+    (inherit rust-rusty-fork-0.3)
+    (name "rust-rusty-fork")
+    (version "0.2.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "rusty-fork" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1bjg8adk0i921088j52rn0hmvsry34q19g96x41pamqcw5j35n9x"))))
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-fnv" ,rust-fnv-1)
+        ("rust-quick-error" ,rust-quick-error-1.2)
+        ("rust-tempfile" ,rust-tempfile-3)
+        ("rust-wait-timeout" ,rust-wait-timeout-0.2))))))
 
-(define-public rust-ryu-1.0
+(define-public rust-rustyline-6
+  (package
+    (name "rust-rustyline")
+    (version "6.3.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "rustyline" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "04w4k0nwsra84h90rvwkr6vmjp3nshjqaj9rakfym8qr09xmw3bg"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-cfg-if" ,rust-cfg-if-0.1)
+        ("rust-dirs-next" ,rust-dirs-next-1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-memchr" ,rust-memchr-2)
+        ("rust-nix" ,rust-nix-0.18)
+        ("rust-scopeguard" ,rust-scopeguard-1)
+        ("rust-skim" ,rust-skim-0.7)
+        ("rust-unicode-segmentation" ,rust-unicode-segmentation-1)
+        ("rust-unicode-width" ,rust-unicode-width-0.1)
+        ("rust-utf8parse" ,rust-utf8parse-0.2)
+        ("rust-winapi" ,rust-winapi-0.3))
+       #:cargo-development-inputs
+       (("rust-assert-matches" ,rust-assert-matches-1.3)
+        ("rust-doc-comment" ,rust-doc-comment-0.3)
+        ("rust-env-logger" ,rust-env-logger-0.7)
+        ("rust-rustyline-derive" ,rust-rustyline-derive-0.3)
+        ("rust-tempfile" ,rust-tempfile-3))))
+    (home-page "https://github.com/kkawakam/rustyline")
+    (synopsis "Readline implementation in Rust")
+    (description
+     "Rustyline, a readline implementation based on the linenoise package.")
+    (license license:expat)))
+
+(define-public rust-rustyline-derive-0.3
+  (package
+    (name "rust-rustyline-derive")
+    (version "0.3.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "rustyline-derive" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0daj9szvfi442vj2fhm7qb92wmzv7g75qsjq9a6ycnqac4lhx9al"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-1))))
+    (home-page "https://github.com/kkawakam/rustyline")
+    (synopsis "Rustyline macros implementation in Rust")
+    (description "This package provides Rustyline macros implementation in Rust.")
+    (license license:expat)))
+
+(define-public rust-ryu-1
   (package
     (name "rust-ryu")
     (version "1.0.3")
@@ -22156,7 +29910,7 @@ quickly convert floating point numbers to decimal strings.")
     (license (list license:asl2.0
                    license:expat))))
 
-(define-public rust-same-file-1.0
+(define-public rust-same-file-1
   (package
     (name "rust-same-file")
     (version "1.0.6")
@@ -22184,7 +29938,7 @@ paths point to the same file.")
 
 (define-public rust-same-file-0.1
   (package
-    (inherit rust-same-file-1.0)
+    (inherit rust-same-file-1)
     (name "rust-same-file")
     (version "0.1.3")
     (source
@@ -22204,6 +29958,46 @@ paths point to the same file.")
        #:cargo-development-inputs
        (("rust-rand" ,rust-rand-0.3))))))
 
+(define-public rust-sanakirja-0.10
+  (package
+    (name "rust-sanakirja")
+    (version "0.10.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "sanakirja" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1fhn5lb6jn0pimnk0nbf5h4xvp28xdkdh33d57gq1ixy8b2y091y"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f  ; tests::test_del_medium_fork fails
+       #:cargo-inputs
+       (("rust-fs2" ,rust-fs2-0.4)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-memmap" ,rust-memmap-0.7)
+        ("rust-rand" ,rust-rand-0.6)
+        ("rust-uuid" ,rust-uuid-0.7))
+       #:cargo-development-inputs
+       (("rust-env-logger" ,rust-env-logger-0.6)
+        ("rust-hex" ,rust-hex-0.3)
+        ("rust-tempdir" ,rust-tempdir-0.3))))
+    (home-page "https://nest.pijul.com/pijul_org/sanakirja")
+    (synopsis "Key-value dictionary, using copy-on-write and B-trees")
+    (description
+     "This package provides a key-value dictionary, using copy-on-write and B
+trees.  It features:
+@itemize
+@item ACID semantics.
+@item B trees with copy-on-write.
+@item Support for referential transparency: databases can be cloned in time
+O(log n) (where n is the size of the database).  This was the original
+motivation for writing this library.
+@end itemize")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-scan-fmt-0.2
   (package
     (name "rust-scan-fmt")
@@ -22253,6 +30047,27 @@ paths point to the same file.")
 server functionality.")
     (license license:expat)))
 
+(define-public rust-scheduled-thread-pool-0.2
+  (package
+    (name "rust-scheduled-thread-pool")
+    (version "0.2.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "scheduled-thread-pool" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1mz7s21q1d7xn9j15dlhhv1y86q2r2z6hpax5nh3y1q42byp8vyw"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-parking-lot" ,rust-parking-lot-0.11))))
+    (home-page "https://github.com/sfackler/scheduled-thread-pool")
+    (synopsis "A scheduled thread pool")
+    (description "This package provides a scheduled thread pool.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-scoped-threadpool-0.1
   (package
     (name "rust-scoped-threadpool")
@@ -22282,7 +30097,7 @@ non-'static references in parallel.")
     (license (list license:asl2.0
                    license:expat))))
 
-(define-public rust-scoped-tls-1.0
+(define-public rust-scoped-tls-1
   (package
     (name "rust-scoped-tls")
     (version "1.0.0")
@@ -22306,7 +30121,7 @@ library's old @code{scoped_thread_local!} macro for providing scoped access to
 
 (define-public rust-scoped-tls-0.1
   (package
-    (inherit rust-scoped-tls-1.0)
+    (inherit rust-scoped-tls-1)
     (name "rust-scoped-tls")
     (version "0.1.2")
     (source
@@ -22318,10 +30133,10 @@ library's old @code{scoped_thread_local!} macro for providing scoped access to
          (base32
           "0a2bn9d2mb07c6l16sadijy4p540g498zddfxyiq4rsqpwrglbrk"))))))
 
-(define-public rust-scopeguard-1.0
+(define-public rust-scopeguard-1
   (package
     (name "rust-scopeguard")
-    (version "1.0.0")
+    (version "1.1.0")
     (source
       (origin
         (method url-fetch)
@@ -22329,9 +30144,8 @@ library's old @code{scoped_thread_local!} macro for providing scoped access to
         (file-name (string-append name "-" version ".crate"))
         (sha256
          (base32
-          "03aay84r1f6w87ckbpj6cc4rnsxkxcfs13n5ynxjia0qkgjiabml"))))
+          "1kbqm85v43rq92vx7hfiay6pmcga03vrjbbfwqpyj3pwsg3b16nj"))))
     (build-system cargo-build-system)
-    (arguments '(#:skip-build? #t))
     (home-page "https://github.com/bluss/scopeguard")
     (synopsis "Scope guard which will run a closure even out of scope")
     (description "This package provides a RAII scope guard that will run a
@@ -22342,9 +30156,24 @@ with one of the implemented strategies.")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-scopeguard-1.0
+  (package
+    (inherit rust-scopeguard-1)
+    (name "rust-scopeguard")
+    (version "1.0.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "scopeguard" version))
+        (file-name (string-append name "-" version ".crate"))
+        (sha256
+         (base32
+          "03aay84r1f6w87ckbpj6cc4rnsxkxcfs13n5ynxjia0qkgjiabml"))))
+    (arguments '(#:skip-build? #t))))
+
 (define-public rust-scopeguard-0.3
   (package
-    (inherit rust-scopeguard-1.0)
+    (inherit rust-scopeguard-1)
     (name "rust-scopeguard")
     (version "0.3.3")
     (source
@@ -22357,6 +30186,29 @@ with one of the implemented strategies.")
          (base32
           "09sy9wbqp409pkwmqni40qmwa99ldqpl48pp95m1xw8sc19qy9cl"))))))
 
+(define-public rust-scratch-1
+  (package
+    (name "rust-scratch")
+    (version "1.0.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "scratch" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0sff4rvfalp0ip98pl3xa32n7lhzcr4zqn8fgamaalbb64v4a4by"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-development-inputs
+       (("rust-fs2" ,rust-fs2-0.4))))
+    (home-page "https://github.com/dtolnay/scratch")
+    (synopsis "Compile-time temporary directory")
+    (description "This crate exposes a compile-time temporary directory sharable
+by multiple crates in a build graph and erased by @code{cargo clean}.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-scrypt-0.3
   (package
     (name "rust-scrypt")
@@ -22404,7 +30256,7 @@ with one of the implemented strategies.")
      `(#:cargo-inputs
        (("rust-base64" ,rust-base64-0.9)
         ("rust-byte-tools" ,rust-byte-tools-0.3)
-        ("rust-byteorder" ,rust-byteorder-1.3)
+        ("rust-byteorder" ,rust-byteorder-1)
         ("rust-hmac" ,rust-hmac-0.7)
         ("rust-pbkdf2" ,rust-pbkdf2-0.3)
         ("rust-rand" ,rust-rand-0.5)
@@ -22456,7 +30308,7 @@ endian-aware Read/Write traits for byte buffers.")
        (("rust-scroll-derive" ,rust-scroll-derive-0.9)
         ("rust-rustc-version" ,rust-rustc-version-0.2))
        #:cargo-development-inputs
-       (("rust-byteorder" ,rust-byteorder-1.3)
+       (("rust-byteorder" ,rust-byteorder-1)
         ("rust-rayon" ,rust-rayon-1))))
     (home-page "https://github.com/m4b/scroll")
     (synopsis "Read/Write traits for byte buffers")
@@ -22543,6 +30395,25 @@ Pwrite traits from the scroll crate.")
     (description "Certificate transparency SCT verification library")
     (license (list license:asl2.0 license:isc license:expat))))
 
+(define-public rust-sct-0.5
+  (package
+    (inherit rust-sct-0.6)
+    (name "rust-sct")
+    (version "0.5.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "sct" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1fb9ym5bwswx01yyggn7v2vfryih4vnqpp4r4ssv3qaqpn7xynig"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-ring" ,rust-ring-0.14)
+        ("rust-untrusted" ,rust-untrusted-0.6))))))
+
 (define-public rust-sct-0.3
   (package/inherit rust-sct-0.6
     (name "rust-sct")
@@ -22563,7 +30434,7 @@ Pwrite traits from the scroll crate.")
        (("rust-cc" ,rust-cc-1))))))
 
 
-(define-public rust-seahash-3.0
+(define-public rust-seahash-3
   (package
     (name "rust-seahash")
     (version "3.0.7")
@@ -22606,8 +30477,62 @@ proven statistical guarantees.")
      "This package provides a library for section-style testing.")
     (license license:expat)))
 
+(define-public rust-security-framework-2
+  (package
+    (name "rust-security-framework")
+    (version "2.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "security-framework" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0scc4vj2mw9k6qpxp26zx8gnqnmw79nwayja91x030457hp9qxf1"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f                      ;missing files
+       #:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-core-foundation" ,rust-core-foundation-0.9)
+        ("rust-core-foundation-sys" ,rust-core-foundation-sys-0.8)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-security-framework-sys" ,rust-security-framework-sys-2))
+       #:cargo-development-inputs
+       (("rust-hex" ,rust-hex-0.4)
+        ("rust-tempdir" ,rust-tempdir-0.3))))
+    (home-page "https://lib.rs/crates/security_framework")
+    (synopsis "@code{Security.framework} bindings for macOS and iOS")
+    (description "This package provides @code{Security.framework} bindings for
+macOS and iOS.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-security-framework-1
+  (package
+    (inherit rust-security-framework-2)
+    (name "rust-security-framework")
+    (version "1.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "security-framework" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0axwlax65j1f79rsm4ylc8rc6p2knbi3dgnpbdq7a1bzh5k2hl5d"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-core-foundation" ,rust-core-foundation-0.7)
+        ("rust-core-foundation-sys" ,rust-core-foundation-sys-0.7)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-security-framework-sys" ,rust-security-framework-sys-1))
+       #:cargo-development-inputs
+       (("rust-hex" ,rust-hex-0.4)
+        ("rust-tempdir" ,rust-tempdir-0.3))))))
+
 (define-public rust-security-framework-0.3
   (package
+    (inherit rust-security-framework-1)
     (name "rust-security-framework")
     (version "0.3.4")
     (source
@@ -22619,7 +30544,6 @@ proven statistical guarantees.")
        (sha256
         (base32
          "1pqn79cl9njnnhsmjvvphkzx8is5jhfd8bhxpllgvrgggjfl5wlf"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:tests? #f      ; Some test files not included in release.
        #:cargo-inputs
@@ -22629,16 +30553,103 @@ proven statistical guarantees.")
         ("rust-security-framework-sys" ,rust-security-framework-sys-0.3))
        #:cargo-development-inputs
        (("rust-hex" ,rust-hex-0.4)
-        ("rust-tempdir" ,rust-tempdir-0.3))))
-    (home-page "https://lib.rs/crates/security_framework")
-    (synopsis
-     "Security.framework bindings for macOS and iOS")
-    (description
-     "Security.framework bindings for macOS and iOS.")
+        ("rust-tempdir" ,rust-tempdir-0.3))))))
+
+(define-public rust-security-framework-0.2
+  (package
+    (inherit rust-security-framework-0.3)
+    (name "rust-security-framework")
+    (version "0.2.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "security-framework" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0gw3xxg8yzbjb4ny5cy07gky177c1nbgpxqjsw3hfzpfgrxji9bz"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-core-foundation"
+         ,rust-core-foundation-0.6)
+        ("rust-core-foundation-sys"
+         ,rust-core-foundation-sys-0.6)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-security-framework-sys"
+         ,rust-security-framework-sys-0.2))
+       #:cargo-development-inputs
+       (("rust-hex" ,rust-hex-0.3)
+        ("rust-tempdir" ,rust-tempdir-0.3))))))
+
+(define-public rust-security-framework-0.1
+  (package
+    (inherit rust-security-framework-0.2)
+    (name "rust-security-framework")
+    (version "0.1.16")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "security-framework" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0ci39ax08h2ngrl1yf1ra9smivhjs6xarmg7kp6fxracqpllx96z"))))
+    (arguments
+     `(#:skip-build? #t ; MacOS specific
+       #:cargo-inputs
+       (("rust-core-foundation" ,rust-core-foundation-0.2)
+        ("rust-core-foundation-sys" ,rust-core-foundation-sys-0.2)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-security-framework-sys" ,rust-security-framework-sys-0.1))
+       #:cargo-development-inputs
+       (("rust-hex" ,rust-hex-0.2)
+        ("rust-tempdir" ,rust-tempdir-0.3))))))
+
+(define-public rust-security-framework-sys-2
+  (package
+    (name "rust-security-framework-sys")
+    (version "2.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "security-framework-sys" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "12v7wpf7cbc92xza4lf3w12411wzrkkvlbjgrhrid9yj4rg9v6zr"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-core-foundation-sys" ,rust-core-foundation-sys-0.8)
+        ("rust-libc" ,rust-libc-0.2))))
+    (home-page "https://lib.rs/crates/security-framework-sys")
+    (synopsis "Low-level FFI bindings to Apple @code{Security.framework}")
+    (description "This package provides low level FFI bindings to Apple
+@code{Security.framework}.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-security-framework-sys-1
+  (package
+    (inherit rust-security-framework-sys-2)
+    (name "rust-security-framework-sys")
+    (version "1.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "security-framework-sys" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1iynsjz53lqkkw4zbq8l99xn799chbx90lsmrlfnsyxii14v1kji"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-core-foundation-sys" ,rust-core-foundation-sys-0.7)
+        ("rust-libc" ,rust-libc-0.2))))))
+
 (define-public rust-security-framework-sys-0.3
   (package
+    (inherit rust-security-framework-sys-1)
     (name "rust-security-framework-sys")
     (version "0.3.3")
     (source
@@ -22652,13 +30663,44 @@ proven statistical guarantees.")
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-core-foundation-sys" ,rust-core-foundation-sys-0.6))))
-    (home-page "https://lib.rs/crates/security-framework-sys")
-    (synopsis "Apple `Security.framework` low-level FFI bindings")
-    (description
-     "Apple @code{Security.framework} low-level FFI bindings.")
-    (license (list license:asl2.0
-                   license:expat))))
+       (("rust-core-foundation-sys" ,rust-core-foundation-sys-0.6))))))
+
+(define-public rust-security-framework-sys-0.2
+  (package
+    (inherit rust-security-framework-sys-0.3)
+    (name "rust-security-framework-sys")
+    (version "0.2.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "security-framework-sys" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "07zv0szz2kfy1hn251h0qsq0q9i1zia768d8vzril1g6xarj7mcj"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-core-foundation-sys" ,rust-core-foundation-sys-0.6)
+        ("rust-libc" ,rust-libc-0.2))))))
+
+(define-public rust-security-framework-sys-0.1
+  (package
+    (inherit rust-security-framework-sys-0.2)
+    (name "rust-security-framework-sys")
+    (version "0.1.16")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "security-framework-sys" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1bdy87gvmahiiyfzghsdg2dkhznww3p3d3r676qs0y32hcg648al"))))
+    (arguments
+     `(#:skip-build? #t ; MacOS specific
+       #:cargo-inputs
+       (("rust-core-foundation-sys" ,rust-core-foundation-sys-0.2)
+        ("rust-libc" ,rust-libc-0.2))))))
 
 (define-public rust-selectors-0.22
   (package
@@ -22726,6 +30768,50 @@ proven statistical guarantees.")
     (description "Rust semaphore library.")
     (license license:expat)))
 
+(define-public rust-semver-0.11
+  (package
+    (name "rust-semver")
+    (version "0.11.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "semver" version))
+       (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))))
+
+(define-public rust-semver-0.10
+  (package
+    (inherit rust-semver-0.11)
+    (name "rust-semver")
+    (version "0.10.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "semver" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1401i88135h2paxwvf0b51hf585rdzxa8yxg7j800gk2z8lfqk1r"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-diesel" ,rust-diesel-1)
+        ("rust-semver-parser" ,rust-semver-parser-0.7)
+        ("rust-serde" ,rust-serde-1))
+       #:cargo-development-inputs
+       (("rust-serde-derive" ,rust-serde-derive-1)
+        ("rust-serde-json" ,rust-serde-json-1))))))
+
 (define-public rust-semver-0.9
   (package
     (name "rust-semver")
@@ -22757,8 +30843,32 @@ proven statistical guarantees.")
      "Semantic version parsing and comparison.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-semver-parser-0.10
+  (package
+    (name "rust-semver-parser")
+    (version "0.10.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "semver-parser" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0a0lgmnd7jga3c6090lsn4lifh3mnzmy4v6d6yqg9rfm59n19vs2"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f                      ;missing files
+       #:cargo-inputs
+       (("rust-pest" ,rust-pest-2))
+       #:cargo-development-inputs
+       (("rust-pest-generator" ,rust-pest-generator-2.1))))
+    (home-page "https://github.com/steveklabnik/semver-parser")
+    (synopsis "Parsing of the Semver spec")
+    (description "This package provides for parsing of the Semver spec.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-semver-parser-0.9
   (package
+    (inherit rust-semver-parser-0.10)
     (name "rust-semver-parser")
     (version "0.9.0")
     (source
@@ -22768,13 +30878,7 @@ proven statistical guarantees.")
         (file-name (string-append name "-" version ".crate"))
         (sha256
          (base32
-          "1ahqhvgpzhcsd28id7xnrjv4419i9yyalhm7d7zi430qx0hi2vml"))))
-    (build-system cargo-build-system)
-    (home-page "https://github.com/steveklabnik/semver-parser")
-    (synopsis "Parsing of the semver spec")
-    (description "This package provides for parsing of the semver spec.")
-    (license (list license:asl2.0
-                   license:expat))))
+          "1ahqhvgpzhcsd28id7xnrjv4419i9yyalhm7d7zi430qx0hi2vml"))))))
 
 (define-public rust-semver-parser-0.7
   (package
@@ -22790,10 +30894,101 @@ proven statistical guarantees.")
          (base32
           "18vhypw6zgccnrlm5ps1pwa0khz7ry927iznpr88b87cagr1v2iq"))))))
 
+(define-public rust-sequoia-openpgp-0.9
+  (package
+    (name "rust-sequoia-openpgp")
+    (version "0.9.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "sequoia-openpgp" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "007h2pi7lcph5jf5bxjydm7hjwjai33yk6dic3cxknki22lxlkfw"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-base64" ,rust-base64-0.9)
+        ("rust-buffered-reader" ,rust-buffered-reader-0.9)
+        ("rust-bzip2" ,rust-bzip2-0.3)
+        ("rust-failure" ,rust-failure-0.1)
+        ("rust-flate2" ,rust-flate2-1)
+        ("rust-idna" ,rust-idna-0.1)
+        ("rust-lalrpop" ,rust-lalrpop-0.17)
+        ("rust-lalrpop-util" ,rust-lalrpop-util-0.17)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-memsec" ,rust-memsec-0.5)
+        ("rust-nettle" ,rust-nettle-5)
+        ("rust-quickcheck" ,rust-quickcheck-0.8)
+        ("rust-rand" ,rust-rand-0.6)
+        ("rust-sequoia-rfc2822" ,rust-sequoia-rfc2822-0.9)
+        ("rust-time" ,rust-time-0.1))
+       #:cargo-development-inputs
+       (("rust-rpassword" ,rust-rpassword-3))))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("clang" ,clang)
+       ("nettle" ,nettle)))
+    (home-page "https://sequoia-pgp.org/")
+    (synopsis "OpenPGP data types and associated machinery")
+    (description
+     "This crate aims to provide a complete implementation of OpenPGP as
+defined by RFC 4880 as well as some extensions (e.g., RFC 6637, which
+describes ECC cryptography) for OpenPGP.  This includes support for unbuffered
+message processing.
+
+A few features that the OpenPGP community considers to be deprecated (e.g.,
+version 3 compatibility) have been left out.  We have also updated some
+OpenPGP defaults to avoid foot guns (e.g., we selected modern algorithm
+defaults).  If some functionality is missing, please file a bug report.")
+    (license license:gpl3)))
+
+(define-public rust-sequoia-rfc2822-0.9
+  (package
+    (name "rust-sequoia-rfc2822")
+    (version "0.9.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "sequoia-rfc2822" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1aj34i6862718m162rqfv69fkmvdw063s6ws7hbp42n73gb08p5c"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-failure" ,rust-failure-0.1)
+        ("rust-lalrpop" ,rust-lalrpop-0.17)
+        ("rust-lalrpop-util" ,rust-lalrpop-util-0.17))
+       #:cargo-development-inputs
+       (("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-quickcheck" ,rust-quickcheck-0.8)
+        ("rust-rand" ,rust-rand-0.6))))
+    (home-page "https://sequoia-pgp.org/")
+    (synopsis "RFC 2822 name-addr parser")
+    (description
+     "Currently, this crate only recognizes the RFC 2822 name-addr and
+addr-spec productions, i.e., things of the form:
+
+Name (Comment) <email@@example.org>
+
+and
+
+email@@example.org
+
+Although the above appear simple to parse, RFC 2822's whitespace and comment
+rules are rather complex.  This crate implements the whole grammar." )
+    (license license:gpl3)))
+
 (define-public rust-serde-1
   (package
     (name "rust-serde")
-    (version "1.0.105")
+    (version "1.0.118")
     (source
       (origin
         (method url-fetch)
@@ -22801,10 +30996,12 @@ proven statistical guarantees.")
         (file-name (string-append name "-" version ".crate"))
         (sha256
          (base32
-          "1zrj157dxvmymp5ii60anap2qqks4pkr3fwsp71wi3sv4nzzn1z7"))))
+          "0028kv3dh3ix5g7jfws22zb9hcqq4cnpwn2lnlpam1wxhmil5ih6"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
+     ;; Tests fail with "error: cannot find derive macro `Deserialize` in this
+     ;; scope".
+     `(#:tests? #false
        #:cargo-inputs
        (("rust-serde-derive" ,rust-serde-derive-1))
        #:cargo-development-inputs
@@ -22945,6 +31142,21 @@ proven statistical guarantees.")
      "Optimized handling of @code{&[u8]} and @code{Vec<u8>} for Serde.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-serde-bytes-0.10
+  (package
+    (inherit rust-serde-bytes-0.11)
+    (name "rust-serde-bytes")
+    (version "0.10.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "serde_bytes" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "127c9br02ygajs4z3bw850i48nc25f4yn7kmh21wqd3z7nlbiyyy"))))))
+
 (define-public rust-serde-cbor-0.11
   (package
     (name "rust-serde-cbor")
@@ -22961,7 +31173,7 @@ proven statistical guarantees.")
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-half" ,rust-half-1.3)
+       (("rust-half" ,rust-half-1)
         ("rust-serde" ,rust-serde-1))
        #:cargo-development-inputs
        (("rust-serde-derive" ,rust-serde-derive-1))))
@@ -22987,8 +31199,8 @@ proven statistical guarantees.")
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
-       (("rust-byteorder" ,rust-byteorder-1.3)
-        ("rust-half" ,rust-half-1.3)
+       (("rust-byteorder" ,rust-byteorder-1)
+        ("rust-half" ,rust-half-1)
         ("rust-serde" ,rust-serde-1))
        #:cargo-development-inputs
        (("rust-serde-derive" ,rust-serde-derive-1))))))
@@ -23049,7 +31261,7 @@ for the serde framework.")
 (define-public rust-serde-derive-1
   (package
     (name "rust-serde-derive")
-    (version "1.0.105")
+    (version "1.0.118")
     (source
       (origin
         (method url-fetch)
@@ -23057,11 +31269,10 @@ for the serde framework.")
         (file-name (string-append name "-" version ".crate"))
         (sha256
          (base32
-          "1y5gzwpy8yjv9pwh1js11vr18nfz4gg1g2kmyr6p58hvavy00pdc"))))
+          "1pvj4v8k107ichsnm7jgm9kxyi2lf971x52bmxhm5mcwd4k3akf8"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-proc-macro2" ,rust-proc-macro2-1)
         ("rust-quote" ,rust-quote-1)
         ("rust-syn" ,rust-syn-1))
@@ -23104,30 +31315,28 @@ for the serde framework.")
 (define-public rust-serde-json-1
   (package
     (name "rust-serde-json")
-    (version "1.0.50")
+    (version "1.0.61")
     (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "serde-json" version))
-        (file-name (string-append name "-" version ".crate"))
-        (sha256
-         (base32
-          "0rs8rsk59kgkgsrw8hyyjrlhas9k1by2jwxxqcz3c2bq2qna39vq"))))
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "serde_json" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0nijvxvgcncvd1wbn73zx7q14bdxah0gf2789qd8kdjpa1cv5kjg"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-indexmap" ,rust-indexmap-1)
         ("rust-itoa" ,rust-itoa-0.4)
-        ("rust-ryu" ,rust-ryu-1.0)
+        ("rust-ryu" ,rust-ryu-1)
         ("rust-serde" ,rust-serde-1))
        #:cargo-development-inputs
-       (;("rust-automod" ,rust-automod-0.1)
-        ("rust-rustversion" ,rust-rustversion-1.0)
+       (("rust-automod" ,rust-automod-1)
+        ("rust-rustversion" ,rust-rustversion-1)
         ("rust-serde-bytes" ,rust-serde-bytes-0.11)
         ("rust-serde-derive" ,rust-serde-derive-1)
-        ;("rust-serde-stacker" ,rust-serde-stacker-0.1)
-        ("rust-trybuild" ,rust-trybuild-1.0))))
+        ("rust-serde-stacker" ,rust-serde-stacker-0.1)
+        ("rust-trybuild" ,rust-trybuild-1))))
     (home-page "https://github.com/serde-rs/json")
     (synopsis "JSON serialization file format")
     (description
@@ -23195,10 +31404,72 @@ for the serde framework.")
      "Macros to auto-generate implementations for the serde framework.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-serde-qs-0.7
+  (package
+    (name "rust-serde-qs")
+    (version "0.7.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "serde_qs" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1jz6gpr02d393f8cwdxbgfl3jhx5svr1z5ilxhdh16slqvijvy2s"))))
+    (build-system cargo-build-system)
+    (arguments
+     ;; XXX: The crate fails to't build with with the same error as
+     ;; rust-actix-connect.  Skip build for now.
+     `(#:skip-build? #true
+       #:cargo-inputs
+       (("rust-actix-web" ,rust-actix-web-2)
+        ("rust-data-encoding" ,rust-data-encoding-2)
+        ("rust-futures" ,rust-futures-0.3)
+        ("rust-percent-encoding" ,rust-percent-encoding-2)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-thiserror" ,rust-thiserror-1))
+       #:cargo-development-inputs
+       (("rust-csv" ,rust-csv-1)
+        ("rust-serde-urlencoded" ,rust-serde-urlencoded-0.7))))
+    (home-page "https://github.com/samscott89/serde_qs")
+    (synopsis "Querystrings for Serde")
+    (description
+     "This crate is a Rust library for serialising to and deserialising from
+querystrings.  This crate is designed to extend @code{serde_urlencoded} when
+using nested parameters, similar to those used by @code{qs} for Node, and
+commonly used by Ruby on Rails via Rack.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-serde-stacker-0.1
+  (package
+    (name "rust-serde-stacker")
+    (version "0.1.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "serde-stacker" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1qlfpy0nmxrvahz4hs9p1y84rb0vy6mbxn1lfgvq6fryls8j7jgl"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-serde" ,rust-serde-1)
+        ("rust-stacker" ,rust-stacker-0.1))
+       #:cargo-development-inputs
+       (("rust-serde-json" ,rust-serde-json-1))))
+    (home-page "https://github.com/dtolnay/serde-stacker")
+    (synopsis "@code{serde} adapter that avoids stack overflow")
+    (description
+     "This package provides a @code{serde} adapter that avoids stack overflow
+by dynamically growing the stack.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-serde-test-1
   (package
     (name "rust-serde-test")
-    (version "1.0.105")
+    (version "1.0.113")
     (source
      (origin
        (method url-fetch)
@@ -23207,11 +31478,10 @@ for the serde framework.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1vnp0wld20z1wjr8qp2hxcy6yh2zhicg1mfb0qrzxgwq2a4n6raa"))))
+         "02s7zjs12m5abk13j5farc00rzissk1anpl015vawpzz914jsan3"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-serde" ,rust-serde-1))
        #:cargo-development-inputs
        (("rust-serde" ,rust-serde-1)
@@ -23270,38 +31540,128 @@ for the serde framework.")
                ((", path = \"../serde\"") ""))
              #t)))))))
 
+(define-public rust-serde-urlencoded-0.7
+  (package
+    (name "rust-serde-urlencoded")
+    (version "0.7.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "serde_urlencoded" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1s9wnjrak5a0igfhcghhz51kvi7n010j5rs9lmhd5hfrz2kmgypd"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-form-urlencoded" ,rust-form-urlencoded-1)
+        ("rust-itoa" ,rust-itoa-0.4)
+        ("rust-ryu" ,rust-ryu-1)
+        ("rust-serde" ,rust-serde-1))))
+    (home-page "https://github.com/nox/serde_urlencoded")
+    (synopsis "`x-www-form-urlencoded` meets Serde")
+    (description
+     "This crate is a Rust library for serialising to and deserialising from
+the application/x-www-form-urlencoded format.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-serde-urlencoded-0.6
+  (package
+    (inherit rust-serde-urlencoded-0.7)
+    (name "rust-serde-urlencoded")
+    (version "0.6.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "serde_urlencoded" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "15rcwfkff0md5i231m2ym5756ksw1mkh5b5g2rw72wsc5mzdgicy"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-dtoa" ,rust-dtoa-0.4)
+        ("rust-itoa" ,rust-itoa-0.4)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-url" ,rust-url-2))
+       #:cargo-development-inputs
+       (("rust-serde-derive" ,rust-serde-derive-1))))))
+
+(define-public rust-serde-urlencoded-0.5
+  (package
+    (inherit rust-serde-urlencoded-0.6)
+    (name "rust-serde-urlencoded")
+    (version "0.5.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "serde_urlencoded" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0nhnzllx5xrij4x17g351n14md691r95mxr7sbpz4sl80n8xcbb4"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-dtoa" ,rust-dtoa-0.4)
+        ("rust-itoa" ,rust-itoa-0.4)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-url" ,rust-url-1))
+       #:cargo-development-inputs
+       (("rust-serde-derive" ,rust-serde-derive-1))))))
+
 (define-public rust-serde-yaml-0.8
   (package
     (name "rust-serde-yaml")
-    (version "0.8.11")
+    (version "0.8.15")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "serde_yaml" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32
-         "0d9wdjrlx9gxg80kzc6pvdwz5pwhja2n8n0bxja9vv61kzqif6v9"))))
+        (base32 "17q8rshlq56z6zna7wxhk9pihna3s5qdz8q5niip396lwkvfh6wp"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-dtoa" ,rust-dtoa-0.4)
         ("rust-linked-hash-map" ,rust-linked-hash-map-0.5)
         ("rust-serde" ,rust-serde-1)
         ("rust-yaml-rust" ,rust-yaml-rust-0.4))
        #:cargo-development-inputs
-       (("rust-serde-derive" ,rust-serde-derive-1)
-        ("rust-unindent" ,rust-unindent-0.1))))
-    (home-page
-     "https://github.com/dtolnay/serde-yaml")
+       (("rust-indoc" ,rust-indoc-1)
+        ("rust-serde-derive" ,rust-serde-derive-1))))
+    (home-page "https://github.com/dtolnay/serde-yaml")
     (synopsis "YAML support for Serde")
-    (description "YAML support for Serde.")
-    (license (list license:asl2.0 license:expat))))
+    (description "This package provides YAML support for Serde.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-serial-test-0.5
+  (package
+    (name "rust-serial-test")
+    (version "0.5.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "serial-test" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0pchc7imdi9wv8xxnwkb9lzs6cg06ghs0gaajjb834y8837wpg70"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-parking-lot" ,rust-parking-lot-0.11)
+        ("rust-serial-test-derive" ,rust-serial-test-derive-0.5))))
+    (home-page "https://github.com/palfrey/serial_test")
+    (synopsis "Allows for the creation of serialised Rust tests")
+    (description
+     "This package allows for the creation of serialised Rust tests.")
+    (license license:expat)))
 
 (define-public rust-serial-test-0.1
   (package
+    (inherit rust-serial-test-0.5)
     (name "rust-serial-test")
     (version "0.1.0")
     (source
@@ -23313,18 +31673,38 @@ for the serde framework.")
         (sha256
          (base32
           "0qywhzjc4jh6dqqng90maai0mjlmafk9aa5rrl9g3d2g01wdn8ms"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-lazy-static" ,rust-lazy-static-1))))))
+
+(define-public rust-serial-test-derive-0.5
+  (package
+    (name "rust-serial-test-derive")
+    (version "0.5.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "serial_test_derive" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1m8sd97xr8dn6p9by0xwfqm0rz8cbn1ghs5l1fv1xd6xzvgddb5j"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-lazy-static" ,rust-lazy-static-1))))
-    (home-page "https://github.com/palfrey/serial_test/")
-    (synopsis "Serialised Rust tests")
+       (("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-1))
+       #:cargo-development-inputs
+       (("rust-env-logger" ,rust-env-logger-0.7))))
+    (home-page "https://github.com/palfrey/serial_test")
+    (synopsis "Helper crate for serial_test")
     (description
-     "Allows for the creation of serialised Rust tests.")
+     "This package is an helper crate for @code{rust-serial-test}.")
     (license license:expat)))
 
 (define-public rust-serial-test-derive-0.1
   (package
+    (inherit rust-serial-test-derive-0.5)
     (name "rust-serial-test-derive")
     (version "0.1.0")
     (source
@@ -23336,15 +31716,10 @@ for the serde framework.")
         (sha256
          (base32
           "17fkqrba233sjhdak986y4w3z4yjxa4idjkh46l7zxgcgjlvrnic"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-quote" ,rust-quote-0.6)
-        ("rust-syn" ,rust-syn-0.15))))
-    (home-page "https://github.com/palfrey/serial_test/")
-    (synopsis "Helper crate for serial_test")
-    (description "This package provides a helper crate for @code{serial_test}.")
-    (license license:expat)))
+        ("rust-syn" ,rust-syn-0.15))))))
 
 (define-public rust-servo-arc-0.1
   (package
@@ -23364,7 +31739,7 @@ for the serde framework.")
      `(#:cargo-inputs
        (("rust-nodrop" ,rust-nodrop-0.1)
         ("rust-serde" ,rust-serde-1)
-        ("rust-stable-deref-trait" ,rust-stable-deref-trait-1.1))))
+        ("rust-stable-deref-trait" ,rust-stable-deref-trait-1))))
     (home-page "https://github.com/servo/servo")
     (synopsis "Fork of std::sync::Arc with some extra functionality")
     (description
@@ -23372,6 +31747,57 @@ for the serde framework.")
 functionality and without weak references.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-serial-test-derive-0.4
+  (package
+    (name "rust-serial-test-derive")
+    (version "0.4.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "serial_test_derive" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "05b5xr36zi8damfg3bmbh1kwdxc3k1y2r8b8pmi7q8jb0bc3i0yh"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-env-logger" ,rust-env-logger-0.7)
+        ("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-1))))
+    (home-page
+     "https://github.com/palfrey/serial_test_derive/")
+    (synopsis "Serialising Rust tests")
+    (description "Serialising Rust tests")
+    (license license:expat)))
+
+(define-public rust-serial-test-0.4
+  (package
+    (name "rust-serial-test")
+    (version "0.4.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "serial_test" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1mkz246ax07nar0bmh3m98kl27lacja98vywi9cjqbsb8g3zgxgy"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-lazy-static" ,rust-lazy-static-1)
+("rust-parking-lot" ,rust-parking-lot-0.10)
+("rust-serial-test-derive" ,rust-serial-test-derive-0.4))))
+    (home-page
+     "https://github.com/palfrey/serial_test/")
+    (synopsis "Serialising Rust tests")
+    (description "Serialising Rust tests")
+    (license license:expat)))
+
 (define-public rust-servo-fontconfig-0.4
   (package
     (name "rust-servo-fontconfig")
@@ -23575,7 +32001,7 @@ functionality and without weak references.")
              (substitute* "Cargo.toml"
                ((", path =.*}") "}"))
              #t)))))
-    (native-inputs
+    (inputs
      `(("openssl" ,openssl-1.0))))) ; for openssl-sys-extras
 
 (define-public rust-sha1-asm-0.4
@@ -23601,10 +32027,40 @@ functionality and without weak references.")
      "Assembly implementation of SHA-1 compression function.")
     (license license:expat)))
 
+(define-public rust-sha1collisiondetection-0.2
+  (package
+    (name "rust-sha1collisiondetection")
+    (version "0.2.3")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "sha1collisiondetection" version))
+        (file-name
+          (string-append name "-" version ".tar.gz"))
+        (sha256
+          (base32 "10nh7s3d02136kkz93pxyfv628ls5xz8ndg27pkb6na0ghccz9np"))))
+    (build-system cargo-build-system)
+    (arguments
+      `(#:skip-build? #t
+        #:cargo-inputs
+        (("rust-digest" ,rust-digest-0.9)
+         ("rust-generic-array" ,rust-generic-array-0.14)
+         ("rust-libc" ,rust-libc-0.2)
+         ("rust-sha-1" ,rust-sha-1-0.9)
+         ("rust-structopt" ,rust-structopt-0.3))))
+    (home-page "https://docs.rs/sha1collisiondetection")
+    (synopsis "SHA-1 hash function with collision detection and mitigation")
+    (description
+      "This package implementation of the SHA-1 cryptographic hash algorithm.
+
+This is a port of Marc Stevens' sha1collisiondetection algorithm to Rust.  The
+code is translated from C to Rust using c2rust.")
+    (license license:expat)))
+
 (define-public rust-sha2-0.9
   (package
     (name "rust-sha2")
-    (version "0.9.1")
+    (version "0.9.2")
     (source
       (origin
         (method url-fetch)
@@ -23613,12 +32069,12 @@ functionality and without weak references.")
          (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "1hdqrx2d9073hgf34y6ilgw6ni5vv3d5nmccyhkfm9zdvy6kfcr9"))))
+          "1a225akwq8k1ym827f8f72rfgxaf7zdnnq07qpcblj91zs3anykf"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-block-buffer" ,rust-block-buffer-0.9)
-        ("rust-cfg-if" ,rust-cfg-if-0.1)
+        ("rust-cfg-if" ,rust-cfg-if-1)
         ("rust-cpuid-bool" ,rust-cpuid-bool-0.1)
         ("rust-digest" ,rust-digest-0.9)
         ("rust-libc" ,rust-libc-0.2)
@@ -23705,6 +32161,32 @@ functions core functionality.")
 picking compatible shaders.")
     (license license:expat)))
 
+(define-public rust-sharded-slab-0.1
+  (package
+    (name "rust-sharded-slab")
+    (version "0.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "sharded-slab" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "09r1i2adjkm4flsj4l0j7x79gdyxz0hvivxdh2d8j5jfj6z22jbv"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-loom" ,rust-loom-0.3))
+       #:cargo-development-inputs
+       (("rust-cfg-if" ,rust-cfg-if-1)
+        ("rust-criterion" ,rust-criterion-0.3)
+        ("rust-proptest" ,rust-proptest-0.9))))
+    (home-page "https://github.com/hawkw/sharded-slab")
+    (synopsis "Lock-free concurrent slab.")
+    (description "This package provides a lock-free concurrent slab.")
+    (license license:expat)))
+
 (define-public rust-shared-child-0.3
   (package
     (name "rust-shared-child")
@@ -23754,27 +32236,59 @@ picking compatible shaders.")
      "This package allows easy binding to, and loading of, shared libraries.")
     (license (list license:asl2.0 license:expat))))
 
-(define-public rust-shell-words-0.1
+(define-public rust-shell-escape-0.1
+  (package
+    (name "rust-shell-escape")
+    (version "0.1.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "shell-escape" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1fgs1iyx3b124b7njjmhfn9q5ipmhxrafavh8mxbfl9a9zk162hp"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/sfackler/shell-escape")
+    (synopsis
+     "Escape characters that may have a special meaning in a shell")
+    (description
+     "Escape characters that may have a special meaning in a shell.")
+    (license (list license:asl2.0 license:expat))))
+
+(define-public rust-shell-words-1
   (package
     (name "rust-shell-words")
-    (version "0.1.0")
+    (version "1.0.0")
     (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "shell-words" version))
-        (file-name
-         (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32
-          "0jnrw3f174974fsi2hg48l0klpy24767ib28w0xcvi2ll5axxb1r"))))
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "shell-words" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0x5hw7ch98sp6b99ihxjs5vw5dmwg4yvy4yxzr59394xr4w3kymn"))))
     (build-system cargo-build-system)
     (home-page "https://github.com/tmiasko/shell-words")
-    (synopsis
-     "Process command line according to parsing rules of UNIX shell")
+    (synopsis "Process command line according to parsing rules of UNIX shell")
     (description
-     "Process command line according to parsing rules of UNIX shell.")
+     "This package processes command line according to parsing rules of UNIX
+shell.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-shell-words-0.1
+  (package
+    (inherit rust-shell-words-1)
+    (name "rust-shell-words")
+    (version "0.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "shell-words" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0jnrw3f174974fsi2hg48l0klpy24767ib28w0xcvi2ll5axxb1r"))))))
+
 (define-public rust-shlex-0.1
   (package
     (name "rust-shlex")
@@ -23798,7 +32312,7 @@ words, like Python's shlex.")
 (define-public rust-signal-hook-0.1
   (package
     (name "rust-signal-hook")
-    (version "0.1.13")
+    (version "0.1.16")
     (source
      (origin
        (method url-fetch)
@@ -23807,13 +32321,13 @@ words, like Python's shlex.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0b0yh6hlb5hs5kq6adyk0bn168y1ncymxvlizlygaabad2hz7f8h"))))
+         "1v85mgs4dbgw0765b9nx0jd8lamv55425aawjbhxz6cb870hhib0"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-futures" ,rust-futures-0.1)
         ("rust-libc" ,rust-libc-0.2)
-        ("rust-mio" ,rust-mio-0.6)
+        ("rust-mio" ,rust-mio-0.7)
         ("rust-mio-uds" ,rust-mio-uds-0.6)
         ("rust-signal-hook-registry" ,rust-signal-hook-registry-1)
         ("rust-tokio-reactor" ,rust-tokio-reactor-0.1))
@@ -23851,6 +32365,94 @@ words, like Python's shlex.")
     (description "Backend crate for signal-hook.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-signature-1
+  (package
+    (name "rust-signature")
+    (version "1.2.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "signature" version))
+        (file-name (string-append name "-" version ".tar.gz"))
+        (sha256
+          (base32 "04325sgl06mksq21a95sbdadg3r3jn3l3nhhxj839qs7s6kn1w19"))))
+    (build-system cargo-build-system)
+    (arguments
+      `(#:skip-build? #t
+        #:cargo-inputs
+        (("rust-digest" ,rust-digest-0.9)
+         ("rust-rand-core" ,rust-rand-core-0.5)
+         ("rust-signature-derive"
+          ,rust-signature-derive-1))))
+    (home-page "")
+    (synopsis "Traits for cryptographic signature algorithms (e.g. ECDSA,
+Ed25519)")
+    (description
+      "This package contains traits which provide generic, object-safe APIs
+for generating and verifying digital signatures.")
+    (license (list license:asl2.0 license:expat))))
+
+(define-public rust-signature-derive-1
+  (package
+    (name "rust-signature-derive")
+    (version "1.0.0-pre.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "signature_derive" version))
+        (file-name (string-append name "-" version ".tar.gz"))
+        (sha256
+          (base32 "0wp8b8ald7qixrcvvclhdcpmn8hkx049jlc29g57ql0304c6qrdh"))))
+    (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)
+         ("rust-synstructure" ,rust-synstructure-0.12))))
+    (home-page "signature_derive")
+    (synopsis "Custom derive support for the 'signature' crate")
+    (description "This package provides proc macros used by the signature
+crate.
+
+It's not intended to be used directly.  See the signature crate's documentation
+for additional details.")
+    (license (list license:asl2.0 license:expat))))
+
+(define-public rust-simba-0.1
+  (package
+    (name "rust-simba")
+    (version "0.1.5")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "simba" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1chz3abrvrj4qz86gwrrzajsl5zcc2l0dhxi39mymbgscw9ip4zv"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-approx" ,rust-approx-0.3)
+        ("rust-cordic" ,rust-cordic-0.1)
+        ("rust-decimal" ,rust-decimal-2.0)
+        ("rust-fixed" ,rust-fixed-1)
+        ("rust-num-complex" ,rust-num-complex-0.2)
+        ("rust-num-traits" ,rust-num-traits-0.2)
+        ("rust-packed-simd" ,rust-packed-simd-0.3)
+        ("rust-paste" ,rust-paste-0.1)
+        ("rust-rand" ,rust-rand-0.7)
+        ("rust-wide" ,rust-wide-0.4))))
+    (home-page "https://github.com/dimforge/simba")
+    (synopsis "SIMD algebra for Rust")
+    (description "This package provides a set of mathematical traits to
+facilitate the use of SIMD-based @dfn{Array of Struct of Array} (AoSoA) storage
+pattern in Rust.")
+    (license license:bsd-3)))
+
 (define-public rust-simd-0.2
   (package
     (name "rust-simd")
@@ -23927,6 +32529,32 @@ CPUs, as well as raw interfaces to platform-specific instructions.
      "This package provides helpers to write more compact simd code.")
     (license license:expat)))
 
+(define-public rust-simple-mutex-1
+  (package
+    (name "rust-simple-mutex")
+    (version "1.1.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "simple-mutex" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1mnwlgjajqmxjfgsdcr9imf23yg1zblny95zrvcflvbgzbmbpaiq"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-event-listener" ,rust-event-listener-2))
+       #:cargo-development-inputs
+       (("rust-parking-lot" ,rust-parking-lot-0.10))))
+    (home-page "https://github.com/stjepang/simple-mutex")
+    (synopsis
+     "Mutex more efficient than @code{std} and simpler than
+@code{parking_lot}")
+    (description
+     "This package provides a mutex more efficient than @code{std} and
+simpler than @code{parking_lot}.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-siphasher-0.3
   (package
     (name "rust-siphasher")
@@ -23971,6 +32599,29 @@ variants in pure Rust.")
      "SipHash functions from rust-core < 1.13.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-size-format-1
+  (package
+    (name "rust-size-format")
+    (version "1.0.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "size-format" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0fxjl0rc0x7yc14x885dh7jjf2jrlhpwf66akp3dxii246mzdmbf"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-generic-array" ,rust-generic-array-0.12)
+        ("rust-num" ,rust-num-0.2))))
+    (home-page "https://github.com/aticu/size_format")
+    (synopsis "Allow easier formatting of sizes")
+    (description "This package allows for easier formatting of sizes.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-skeptic-0.9
   (package
     (name "rust-skeptic")
@@ -24023,6 +32674,44 @@ variants in pure Rust.")
      "Test your Rust markdown documentation via Cargo.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-skim-0.7
+  (package
+    (name "rust-skim")
+    (version "0.7.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "skim" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1yiyd6fml5hd2l811sckkzmiiq9bd7018ajk4qk3ai4wyvqnw8mv"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-chrono" ,rust-chrono-0.4)
+        ("rust-clap" ,rust-clap-2)
+        ("rust-derive-builder" ,rust-derive-builder-0.9)
+        ("rust-env-logger" ,rust-env-logger-0.6)
+        ("rust-fuzzy-matcher" ,rust-fuzzy-matcher-0.3)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-nix" ,rust-nix-0.14)
+        ("rust-rayon" ,rust-rayon-1)
+        ("rust-regex" ,rust-regex-1)
+        ("rust-shlex" ,rust-shlex-0.1)
+        ("rust-time" ,rust-time-0.1)
+        ("rust-timer" ,rust-timer-0.2)
+        ("rust-tuikit" ,rust-tuikit-0.2)
+        ("rust-unicode-width" ,rust-unicode-width-0.1)
+        ("rust-vte" ,rust-vte-0.3))))
+    (home-page "https://github.com/lotabout/skim")
+    (synopsis "Fuzzy Finder in Rust")
+    (description "This package provides a fuzzy finder in Rust.")
+    (license license:expat)))
+
 (define-public rust-slab-0.4
   (package
     (name "rust-slab")
@@ -24042,6 +32731,7 @@ variants in pure Rust.")
 data type.")
     (license license:expat)))
 
+;; TODO: Unbundle sleef.
 (define-public rust-sleef-sys-0.1
   (package
     (name "rust-sleef-sys")
@@ -24060,9 +32750,8 @@ data type.")
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-cfg-if" ,rust-cfg-if-0.1)
-        ("rust-libc" ,rust-libc-0.2))
-       #:cargo-development-inputs
-       (("rust-bindgen" ,rust-bindgen-0.50)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-bindgen" ,rust-bindgen-0.46)
         ("rust-cmake" ,rust-cmake-0.1)
         ("rust-env-logger" ,rust-env-logger-0.6))))
     (home-page "https://github.com/gnzlbg/sleef-sys")
@@ -24072,7 +32761,7 @@ data type.")
      "Rust FFI bindings to the SLEEF Vectorized Math Library.")
     (license (list license:asl2.0 license:expat))))
 
-(define-public rust-slog-2.5
+(define-public rust-slog-2
   (package
     (name "rust-slog")
     (version "2.5.2")
@@ -24099,31 +32788,59 @@ data type.")
             license:expat
             license:asl2.0))))
 
-(define-public rust-slog-2.4
+(define-public rust-slug-0.1
   (package
-    (name "rust-slog")
-    (version "2.4.1")
+    (name "rust-slug")
+    (version "0.1.4")
     (source
      (origin
        (method url-fetch)
-       (uri (crate-uri "slog" version))
+       (uri (crate-uri "slug" version))
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32
-         "13jh74jlckzh5cygkhs0k4r82wnmw8ha2km829xwslhr83n2w6hy"))))
+        (base32 "0wrk0w7mcmnvpmc27fw8dxkip6f6xgwpfgp7mp56yv2bd8p7dg5k"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
-       (("rust-erased-serde" ,rust-erased-serde-0.3))))
-    (home-page "https://github.com/slog-rs/slog")
-    (synopsis "Structured, extensible, composable logging for Rust")
+       (("rust-deunicode" ,rust-deunicode-0.4))))
+    (home-page "https://github.com/Stebalien/slug-rs")
+    (synopsis "Convert a Unicode string to a slug")
     (description
-     "Structured, extensible, composable logging for Rust.")
-    (license (list license:mpl2.0
-                   license:expat
-                   license:asl2.0))))
+     "This package is a small library for generating slugs from
+Unicode strings.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-sluice-0.5
+  (package
+    (name "rust-sluice")
+    (version "0.5.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "sluice" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1w9brs9dqyvr2w7cs5nxkp2wggw2xh76bc4qq0p4yxwfvhgfs94f"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-futures-channel" ,rust-futures-channel-0.3)
+        ("rust-futures-core" ,rust-futures-core-0.3)
+        ("rust-futures-io" ,rust-futures-io-0.3))
+       #:cargo-development-inputs
+       (("rust-cfg-if" ,rust-cfg-if-1)
+        ("rust-criterion" ,rust-criterion-0.3)
+        ("rust-futures" ,rust-futures-0.3)
+        ("rust-quickcheck" ,rust-quickcheck-0.9)
+        ("rust-quickcheck-macros" ,rust-quickcheck-macros-0.9))))
+    (home-page "https://github.com/sagebind/sluice")
+    (synopsis "Ring buffer for byte buffers, FIFO queues, and SPSC channels")
+    (description
+     "This package provides asynchronous byte buffers and pipes for concurrent
+I/O programming.")
+    (license license:expat)))
 
 (define-public rust-smallvec-1
   (package
@@ -24172,128 +32889,100 @@ stack.")
        #:cargo-development-inputs
        (("rust-bincode" ,rust-bincode-1))))))
 
-(define-public rust-smithay-client-toolkit-0.6
+(define-public rust-smol-0.1
   (package
-    (name "rust-smithay-client-toolkit")
-    (version "0.6.4")
+    (name "rust-smol")
+    (version "0.1.18")
     (source
      (origin
        (method url-fetch)
-       (uri (crate-uri "smithay-client-toolkit" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
+       (uri (crate-uri "smol" version))
+       (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32
-         "0m20687zs36l6xak2s5k9s7qp78ly8xfjpbmrhacp7whfn4hx5lk"))))
+        (base32 "1mdflwzgw1jxwrjffqn09lb4hn6d076s1ka8lb9mgnildqybn332"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:cargo-inputs
-       (("rust-andrew" ,rust-andrew-0.2)
-        ("rust-bitflags" ,rust-bitflags-1)
-        ("rust-dlib" ,rust-dlib-0.4)
-        ("rust-lazy-static" ,rust-lazy-static-1)
-        ("rust-memmap" ,rust-memmap-0.7)
-        ("rust-nix" ,rust-nix-0.14)
-        ("rust-wayland-client" ,rust-wayland-client-0.23)
-        ("rust-wayland-protocols" ,rust-wayland-protocols-0.23))
+     `(#:cargo-test-flags
+       '("--release" "--" "--skip=task::Task<Result<T, E>>")
+       #:cargo-inputs
+       (("rust-async-task" ,rust-async-task-3)
+        ("rust-blocking" ,rust-blocking-0.4)
+        ("rust-concurrent-queue" ,rust-concurrent-queue-1)
+        ("rust-fastrand" ,rust-fastrand-1)
+        ("rust-futures-io" ,rust-futures-io-0.3)
+        ("rust-futures-util" ,rust-futures-util-0.3)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-once-cell" ,rust-once-cell-1)
+        ("rust-scoped-tls" ,rust-scoped-tls-1)
+        ("rust-slab" ,rust-slab-0.4)
+        ("rust-socket2" ,rust-socket2-0.3)
+        ("rust-tokio" ,rust-tokio-0.2)
+        ("rust-wepoll-sys-stjepang" ,rust-wepoll-sys-stjepang-1)
+        ("rust-winapi" ,rust-winapi-0.3))
        #:cargo-development-inputs
-       (("rust-byteorder" ,rust-byteorder-1.3)
-        ("rust-image" ,rust-image-0.21)
-        ("rust-wayland-client" ,rust-wayland-client-0.23))))
-    (home-page "https://github.com/smithay/client-toolkit")
-    (synopsis "Toolkit for making client wayland applications")
-    (description
-     "Toolkit for making client wayland applications.")
-    (license license:expat)))
+       (("rust-criterion" ,rust-criterion-0.3)
+        ("rust-futures" ,rust-futures-0.3)
+        ("rust-piper" ,rust-piper-0.1)
+        ("rust-tempfile" ,rust-tempfile-3))))
+    (home-page "https://github.com/stjepang/smol")
+    (synopsis "Small and fast async runtime")
+    (description "This package provides a small and fast async runtime.")
+    (license (list license:asl2.0 license:expat))))
 
-(define-public rust-smithay-client-toolkit-0.4
+(define-public rust-socket2-0.3
   (package
-    (inherit rust-smithay-client-toolkit-0.6)
-    (name "rust-smithay-client-toolkit")
-    (version "0.4.6")
+    (name "rust-socket2")
+    (version "0.3.19")
     (source
      (origin
        (method url-fetch)
-       (uri (crate-uri "smithay-client-toolkit" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
+       (uri (crate-uri "socket2" version))
+       (file-name (string-append name "-" version ".crate"))
        (sha256
-        (base32
-         "1yj8yzd0lhqpsgq0x4iikl9a02q2hnkky81brk938alv0ibqrjrc"))))
+        (base32 "0vldz14mxqxnjqb6an2pj7mgclv7nrk45cpscwq7g3fj2c0mfbhj"))))
+    (build-system cargo-build-system)
     (arguments
-     `(#:cargo-inputs
-       (("rust-andrew" ,rust-andrew-0.2)
-        ("rust-bitflags" ,rust-bitflags-1)
-        ("rust-dlib" ,rust-dlib-0.4)
-        ("rust-lazy-static" ,rust-lazy-static-1)
-        ("rust-memmap" ,rust-memmap-0.7)
-        ("rust-nix" ,rust-nix-0.14)
-        ("rust-wayland-client" ,rust-wayland-client-0.21)
-        ("rust-wayland-commons" ,rust-wayland-commons-0.21)
-        ("rust-wayland-protocols" ,rust-wayland-protocols-0.21))
+     `(#:tests? #f                      ; tests require network access
+       #:cargo-inputs
+       (("rust-cfg-if" ,rust-cfg-if-1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-winapi" ,rust-winapi-0.3))
        #:cargo-development-inputs
-       (("rust-byteorder" ,rust-byteorder-1.3)
-        ("rust-image" ,rust-image-0.20)
-        ("rust-wayland-client" ,rust-wayland-client-0.21))))))
+       (("rust-tempdir" ,rust-tempdir-0.3))))
+    (home-page "https://github.com/alexcrichton/socket2-rs")
+    (synopsis "Networking sockets in Rust")
+    (description
+     "This package provides utilities for handling networking sockets with a
+maximal amount of configuration possible intended.")
+    (license (list license:asl2.0
+                   license:expat))))
 
-(define-public rust-smithay-clipboard-0.3
+(define-public rust-socks-0.3
   (package
-    (name "rust-smithay-clipboard")
-    (version "0.3.6")
+    (name "rust-socks")
+    (version "0.3.2")
     (source
      (origin
        (method url-fetch)
-       (uri (crate-uri "smithay-clipboard" version))
+       (uri (crate-uri "socks" version))
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1h7qhcx44cgwncgpn5llky0c56vgsg9mqrkybb2z37vsxxia4rwn"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:cargo-inputs
-       (("rust-nix" ,rust-nix-0.14)
-        ("rust-smithay-client-toolkit" ,rust-smithay-client-toolkit-0.6))
-       #:cargo-development-inputs
-       (("rust-andrew" ,rust-andrew-0.2))))
-    (inputs
-     `(("wayland" ,wayland)))
-    (home-page "https://github.com/smithay/smithay-clipboard")
-    (synopsis
-     "Provides access to the wayland clipboard for client applications")
-    (description
-     "This package provides access to the wayland clipboard for client applications.")
-    (license license:expat)))
-
-(define-public rust-socket2-0.3
-  (package
-    (name "rust-socket2")
-    (version "0.3.11")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "socket2" version))
-        (file-name (string-append name "-" version ".crate"))
-        (sha256
-         (base32
-          "11bdcz04i106g4q7swkll0qxrb4287srqd2k3aq2q6i22zjlvdz8"))))
+         "1hnbw4c4j7dn9n3bd1v7ddkdzlxlzkfw3z29da1nxlj6jgx4r9p6"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:tests? #f      ; tests require network access
+     `(#:tests? #f  ; Tests require network connection.
        #:cargo-inputs
-       (("rust-cfg-if" ,rust-cfg-if-0.1)
+       (("rust-byteorder" ,rust-byteorder-1)
         ("rust-libc" ,rust-libc-0.2)
-        ("rust-redox-syscall" ,rust-redox-syscall-0.1)
-        ("rust-winapi" ,rust-winapi-0.3))
-       #:cargo-development-inputs
-       (("rust-tempdir" ,rust-tempdir-0.3))))
-    (home-page "https://github.com/alexcrichton/socket2-rs")
-    (synopsis "Networking sockets in Rust")
+        ("rust-winapi" ,rust-winapi-0.2)
+        ("rust-ws2-32-sys" ,rust-ws2-32-sys-0.2))))
+    (home-page "https://github.com/sfackler/rust-socks")
+    (synopsis "Rust SOCKS proxy clients")
     (description
-     "This package provides utilities for handling networking sockets with a
-maximal amount of configuration possible intended.")
-    (license (list license:asl2.0
-                   license:expat))))
+     "You can write SOCKS proxy clients with this crate.")
+    (license (list license:asl2.0 license:expat))))
 
 (define-public rust-sourcefile-0.1
   (package
@@ -24319,6 +33008,50 @@ track of where each new file and line starts.")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-sourcemap-6
+  (package
+    (name "rust-sourcemap")
+    (version "6.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "sourcemap" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1sv1rxc6d2rfvd5xrqzqq0i2y0z1q7sqj3wm9krxbggcccj1y0vf"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin
+           ;; Enable unstable features
+           (substitute* "src/lib.rs"
+             (("//! This library" all)
+              (string-append "#![feature(inner_deref)]" "\n" all)))
+           #t))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-base64" ,rust-base64-0.11)
+        ("rust-if-chain" ,rust-if-chain-1)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-regex" ,rust-regex-1)
+        ("rust-scroll" ,rust-scroll-0.10)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-url" ,rust-url-2))
+       #:cargo-development-inputs
+       (("rust-rustc-version" ,rust-rustc-version-0.2))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'enable-unstable-features
+           (lambda _
+             (setenv "RUSTC_BOOTSTRAP" "1")
+             #t)))))
+    (home-page "https://github.com/getsentry/rust-sourcemap")
+    (synopsis "Basic sourcemap handling for Rust")
+    (description "This package provides basic sourcemap handling for Rust.")
+    (license license:bsd-3)))
+
 (define-public rust-speculate-0.1
   (package
     (name "rust-speculate")
@@ -24382,6 +33115,52 @@ initializers are available.")
          "07ywqn1vrpi3c43fmvsx7pawk9h3rb77yyqbnhap2micl454kb6f"))))
     (arguments '(#:skip-build? #t))))
 
+(define-public rust-spin-on-0.1
+  (package
+    (name "rust-spin-on")
+    (version "0.1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "spin-on" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "18idc7jfa4m2cap721nh5lva19z3ykjyz1w2hfm6960vshz10vh7"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-pin-utils" ,rust-pin-utils-0.1))))
+    (home-page "https://crates.io/crates/spin_on")
+    (synopsis "Simple, inefficient Future executor")
+    (description
+     "This crate contains what aims to be the simplest possible implementation
+of a valid executor.  Instead of nicely parking the thread and waiting for the
+future to wake it up, it continuously polls the future until the future is
+ready.  This will probably use a lot of CPU, so be careful when you use it.")
+    (license (list license:asl2.0 license:expat))))
+
+(define-public rust-spinning-top-0.2
+  (package
+    (name "rust-spinning-top")
+    (version "0.2.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "spinning_top" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0dmbb627i05qla1lnxy7r6hpiia76c8kb40zcgrbar0dx1rrslky"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-lock-api" ,rust-lock-api-0.4))))
+    (home-page "https://github.com/rust-osdev/spinning_top")
+    (synopsis "Simple spinlock based on @code{lock_api}")
+    (description
+     "This package provides a simple spinlock crate based on the abstractions
+provided by @code{lock_api}.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-spmc-0.3
   (package
     (name "rust-spmc")
@@ -24426,23 +33205,45 @@ initializers are available.")
      "This package provides a single-producer single-consumer lock-free buffer.")
     (license license:expat)))
 
-(define-public rust-stable-deref-trait-1.1
+(define-public rust-st-map-0.1
+  (package
+    (name "rust-st-map")
+    (version "0.1.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "st-map" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1l820pisfi134v3wy0na480wl7rf69kgxzvmgc560ngqb0xb3biw"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-arrayvec" ,rust-arrayvec-0.5)
+        ("rust-static-map-macro" ,rust-static-map-macro-0.2))))
+    (home-page "https://github.com/kdy1/rust-static-map")
+    (synopsis "Runtime for a stack-alocated map")
+    (description "This package provides a runtime for a stack-alocated map.")
+    (license license:expat)))
+
+(define-public rust-stable-deref-trait-1
   (package
     (name "rust-stable-deref-trait")
-    (version "1.1.1")
+    (version "1.2.0")
     (source
       (origin
         (method url-fetch)
         (uri (crate-uri "stable_deref_trait" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "1j2lkgakksmz4vc5hfawcch2ipiskrhjs1sih0f3br7s7rys58fv"))))
+          "1lxjr8q2n534b2lhkxd6l6wcddzjvnksi58zv11f9y0jjmr15wd8"))))
     (build-system cargo-build-system)
     (home-page "https://github.com/storyyeller/stable_deref_trait0")
     (synopsis "Defines an unsafe marker trait, StableDeref")
     (description
-      "This crate defines an unsafe marker trait, StableDeref, for container
+     "This crate defines an unsafe marker trait, StableDeref, for container
 types which deref to a fixed address which is valid even when the containing
 type is moved.  For example, Box, Vec, Rc, Arc and String implement this trait.
 Additionally, it defines CloneStableDeref for types like Rc where clones deref
@@ -24505,6 +33306,27 @@ deeply recursive algorithms that may accidentally blow the stack.")
      "StackVec: vector-like facade for stack-allocated arrays.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-standback-0.2
+  (package
+    (name "rust-standback")
+    (version "0.2.10")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "standback" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1rnqv9dbq9c4nz7097v0f1d04fjwwsvvyy8rmz8lg1szxahix9rk"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-development-inputs
+       (("rust-version-check" ,rust-version-check-0.9))))
+    (home-page "https://github.com/jhpratt/standback")
+    (synopsis "New standard library, old compiler")
+    (description "New standard library, old compiler.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-static-assertions-1
   (package
     (name "rust-static-assertions")
@@ -24539,6 +33361,31 @@ are met.")
          (base32
           "1lw33i89888yb3x29c6dv4mrkg3534n0rlg3r7qzh4p58xmv6gkz"))))))
 
+(define-public rust-static-map-macro-0.2
+  (package
+    (name "rust-static-map-macro")
+    (version "0.2.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "static-map-macro" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1zcm28d46dggdpbn06xlpa274z25l228cmzxpc8qh8s8y43kwl6m"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-pmutil" ,rust-pmutil-0.5)
+        ("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-1))))
+    (home-page "https://github.com/kdy1/rust-static-map")
+    (synopsis "Macro to create a stack-alocated map")
+    (description "This package provides a macro to create a stack-alocated
+map.")
+    (license license:expat)))
+
 (define-public rust-stb-truetype-0.3
   (package
     (name "rust-stb-truetype")
@@ -24556,7 +33403,7 @@ are met.")
     (arguments
      `(#:tests? #f      ; tests not included in release
        #:cargo-inputs
-       (("rust-byteorder" ,rust-byteorder-1.3)
+       (("rust-byteorder" ,rust-byteorder-1)
         ("rust-libm" ,rust-libm-0.2))
        #:cargo-development-inputs
        (("rust-approx" ,rust-approx-0.3))))
@@ -24567,6 +33414,28 @@ are met.")
 in @code{stb_truetype.h} from C to Rust.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-std-prelude-0.2
+  (package
+    (name "rust-std-prelude")
+    (version "0.2.12")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "std_prelude" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1ghcwnhnqn3rphyhlknmxpj5clzqva46z1vh25k5bpzzan2ff1w2"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/vitiral/std_prelude")
+    (synopsis
+     "Prelude that the rust stdlib should have always had")
+    (description
+     "A package that simply uses all of the items often included in a Rust
+codebase.")
+    (license license:expat)))
+
 (define-public rust-stdweb-0.4
   (package
     (name "rust-stdweb")
@@ -24711,8 +33580,63 @@ crate.")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-stfu8-0.2
+  (package
+    (name "rust-stfu8")
+    (version "0.2.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "stfu8" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0xyv4axwc9rihg3f5fjdy7s0ahnz1iq6lq06blwkq2ihwcrh9xsb"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-regex" ,rust-regex-0.2))
+       #:cargo-development-inputs
+       (("rust-pretty-assertions" ,rust-pretty-assertions-0.4)
+        ("rust-proptest" ,rust-proptest-0.3))))
+    (home-page "https://github.com/vitiral/stfu8")
+    (synopsis "Sorta Text Format in UTF-8")
+    (description
+     "STFU-8 is a hacky text encoding/decoding protocol for files that
+partially uses UTF-8.  Its primary purpose is to allow a human to visualize and
+edit data that is mostly UTF-8.  It will encode all non-UTF8-compliant bytes as
+longform text (e.g., ESC becomes @code{r\x1B}) and tries to encode ill-formed
+UTF-8.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-stream-cipher-0.4
+  (package
+    (name "rust-stream-cipher")
+    (version "0.4.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "stream-cipher" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "120y04k3d2jyfnvyrlf38x6bf0yckyk30c7zf8v8qaq4fjcyvy09"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-blobby" ,rust-blobby-0.1)
+        ("rust-block-cipher" ,rust-block-cipher-0.7)
+        ("rust-generic-array" ,rust-generic-array-0.14))))
+    (home-page "https://github.com/RustCrypto/traits")
+    (synopsis "Stream cipher traits")
+    (description "This package provides stream cipher traits.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-stream-cipher-0.3
   (package
+    (inherit rust-stream-cipher-0.4)
     (name "rust-stream-cipher")
     (version "0.3.0")
     (source
@@ -24724,16 +33648,11 @@ crate.")
        (sha256
         (base32
          "1g1nd8r6pph70rzk5yyvg7a9ji7pkap9ddiqpp4v9xa9ys0bqqc8"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-blobby" ,rust-blobby-0.1)
-        ("rust-generic-array" ,rust-generic-array-0.13))))
-    (home-page "https://github.com/RustCrypto/traits")
-    (synopsis "Stream cipher traits")
-    (description "Stream cipher traits.")
-    (license (list license:asl2.0 license:expat))))
+        ("rust-generic-array" ,rust-generic-array-0.13))))))
 
 (define-public rust-streaming-stats-0.2
   (package
@@ -25070,6 +33989,53 @@ and Jaro-Winkler.")
      "Parse command line argument by defining a struct, derive crate.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-strum-0.18
+  (package
+    (name "rust-strum")
+    (version "0.18.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "strum" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0asjskn1qhqqfiq673np0gvmnd1rsp506m38vk53gi7l93mq3gap"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-strum-macros" ,rust-strum-macros-0.18))))
+    (home-page "https://github.com/Peternator7/strum")
+    (synopsis "Set of traits for working with enums and strings")
+    (description
+     "Strum is a set of macros and traits for working with enums and strings
+easier in Rust.")
+    (license license:expat)))
+
+(define-public rust-strum-macros-0.18
+  (package
+    (name "rust-strum-macros")
+    (version "0.18.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "strum_macros" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0k3pwbv0c8q00jnsjshzfc2d5r3y6ppgf9fz7pyknrgaz2immj47"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#: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))))
+    (home-page "https://github.com/Peternator7/strum")
+    (synopsis "Set of macros for working with enums and strings")
+    (description
+     "This crate provides helpful macros for working with enums and strings.")
+    (license license:expat)))
+
 (define-public rust-subtle-2
   (package
     (name "rust-subtle")
@@ -25107,8 +34073,34 @@ cryptographic implementations.")
         (base32
          "1vm80mxbwfj334izwm8x8l65v1xl9hr0kwrg36r1rq565fkaarrd"))))))
 
+(define-public rust-sval-0.5
+  (package
+    (name "rust-sval")
+    (version "0.5.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "sval" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "052j9ipwpb1zh02gw2ys8c4wpjqdf35991k0zkwljnalx37i79qj"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-serde" ,rust-serde-1)
+        ("rust-smallvec" ,rust-smallvec-1)
+        ("rust-sval-derive" ,rust-sval-derive-0.5))
+       #:cargo-development-inputs
+       (("rust-quickcheck" ,rust-quickcheck-0.9))))
+    (home-page "https://github.com/sval-rs/sval")
+    (synopsis "No-std, object-safe serialization framework")
+    (description
+     "This package provides a no-std, object-safe serialization framework.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-sval-0.4
   (package
+    (inherit rust-sval-0.5)
     (name "rust-sval")
     (version "0.4.7")
     (source
@@ -25120,21 +34112,38 @@ cryptographic implementations.")
         (sha256
          (base32
           "1aljggx64481q4wp3wx9hxsfh2bs7d64nqsrwbb2zxcpmdnbn6yk"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-sval-derive" ,rust-sval-derive-0.4)
         ("rust-smallvec" ,rust-smallvec-0.6)
-        ("rust-serde" ,rust-serde-1))))
+        ("rust-serde" ,rust-serde-1))))))
+
+(define-public rust-sval-derive-0.5
+  (package
+    (name "rust-sval-derive")
+    (version "0.5.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "sval_derive" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1spip2cjhmjazq2dns69909p9hyx4cmbx6ma4g2skwvcwv4h3gnq"))))
+    (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/sval-rs/sval")
-    (synopsis "No-std, object-safe serialization framework")
-    (description
-     "This package provides a no-std, object-safe serialization framework.")
+    (synopsis "Custom derive for @code{sval}")
+    (description "This package provides custom derive for @code{sval}.")
     (license (list license:asl2.0 license:expat))))
 
 (define-public rust-sval-derive-0.4
   (package
+    (inherit rust-sval-derive-0.5)
     (name "rust-sval-derive")
     (version "0.4.7")
     (source
@@ -25146,30 +34155,137 @@ cryptographic implementations.")
         (sha256
          (base32
           "07s7jqsdczsg0wnydfnxyrsj8zyrjmiwl4is1dfgn8dfvyi8n2bj"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-proc-macro2" ,rust-proc-macro2-1)
         ("rust-syn" ,rust-syn-1)
-        ("rust-quote" ,rust-quote-1))))
-    (home-page "https://github.com/sval-rs/sval")
-    (synopsis "Custom derive for sval")
-    (description "Custom derive for sval.")
-    (license (list license:asl2.0 license:expat))))
+        ("rust-quote" ,rust-quote-1))))))
+
+(define-public rust-swc-1
+  (package
+    (name "rust-swc")
+    (version "1.2.24")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/swc-project/swc")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1w9al035x0gmard80vqvah8sy8szs6bnd1ynnyssiiylzg7vhyyv"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-ansi-term" ,rust-ansi-term-0.12)
+        ("rust-base64" ,rust-base64-0.12)
+        ("rust-console-error-panic-hook" ,rust-console-error-panic-hook-0.1)
+        ("rust-crc" ,rust-crc-1)
+        ("rust-darling" ,rust-darling-0.10)
+        ("rust-dashmap" ,rust-dashmap-3)
+        ("rust-either" ,rust-either-1)
+        ("rust-fxhash" ,rust-fxhash-0.2)
+        ("rust-is-macro" ,rust-is-macro-0.1)
+        ("rust-jemallocator" ,rust-jemallocator-0.3)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-mimalloc" ,rust-mimalloc-0.1)
+        ("rust-napi" ,rust-napi-0.5)
+        ("rust-napi-build" ,rust-napi-build-0.2)
+        ("rust-napi-derive" ,rust-napi-derive-0.5)
+        ("rust-nom" ,rust-nom-5)
+        ("rust-once-cell" ,rust-once-cell-1)
+        ("rust-parking-lot" ,rust-parking-lot-0.7)
+        ("rust-path-clean" ,rust-path-clean-0.1)
+        ("rust-petgraph" ,rust-petgraph-0.5)
+        ("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-radix-fmt" ,rust-radix-fmt-1)
+        ("rust-regex" ,rust-regex-1)
+        ("rust-relative-path" ,rust-relative-path-1)
+        ("rust-retain-mut" ,rust-retain-mut-0.1)
+        ("rust-scoped-tls" ,rust-scoped-tls-1)
+        ("rust-st-map" ,rust-st-map-0.1)
+        ("rust-string-cache" ,rust-string-cache-0.8)
+        ("rust-walkdir" ,rust-walkdir-2)
+        ("rust-wasm-bindgen-futures" ,rust-wasm-bindgen-futures-0.4))
+       #:cargo-development-inputs
+       (("rust-anyhow" ,rust-anyhow-1)
+        ("rust-env-logger" ,rust-env-logger-0.7)
+        ("rust-num-bigint" ,rust-num-bigint-0.2)
+        ("rust-pretty-assertions" ,rust-pretty-assertions-0.6)
+        ("rust-pretty-env-logger" ,rust-pretty-env-logger-0.3)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-sourcemap" ,rust-sourcemap-6)
+        ("rust-string-cache-codegen" ,rust-string-cache-codegen-0.5)
+        ("rust-tempfile" ,rust-tempfile-3))
+       #:tests? #f ;; tests env_query_chrome_71 and project_env fail
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'enable-unstable-features
+           (lambda _
+             (setenv "RUSTC_BOOTSTRAP" "1")
+             (substitute* "ecmascript/jsdoc/src/lib.rs"
+               (("pub use self" all)
+                (string-append "#![feature(non_exhaustive)]\n" all)))
+             (substitute* "ecmascript/parser/src/lib.rs"
+               (("//! es2019" all)
+                (string-append "#![feature(non_exhaustive)]
+#![feature(mem_take)]
+#![feature(proc_macro_hygiene)]
+" all)))
+             (substitute* "ecmascript/transforms/src/lib.rs"
+               (("#!\\[cfg_attr" all)
+                (string-append "#![feature(mem_take)]\n" all)))
+             #t))
+         (add-after 'enable-unstable-features 'patch-build-failures
+           (lambda _
+             (chmod ".cargo/config" 420)
+             (substitute* "ecmascript/transforms/macros/src/lib.rs"
+               (("use proc_macro::")
+                "extern crate proc_macro;\nuse proc_macro::"))
+             (substitute* "common/src/errors/emitter.rs"
+               (("        #\\[cfg\\(feature = \"tty-emitter\"\\)\\]\n") ""))
+             #t)))))
+    (home-page "https://swc.rs/")
+    (synopsis "Typescript/javascript compiler")
+    (description "@code{rust-swc} is a typescript/javascript compiler.  It
+consumes a javascript or typescript file which uses recently added features
+like async-await and emits javascript code which can be executed on old
+browsers.")
+    (license (list license:expat
+                   license:asl2.0))))
+
+(define-public rust-syn-test-suite-0
+  (package
+    (name "rust-syn-test-suite")
+    (version "0.0.0+test")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "syn-test-suite" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1d9ffrbgci1qjdcpvgrsg3sh24qdsdh66zcsvn5prrk05ycn3mm0"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/dtolnay/syn")
+    (synopsis "Test suite of the syn crate")
+    (description "This package provides the test suite of the syn crate.")
+    (license (list license:expat license:asl2.0))))
 
 (define-public rust-syn-1
   (package
     (name "rust-syn")
-    (version "1.0.17")
+    (version "1.0.53")
     (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "syn" version))
-        (file-name (string-append name "-" version ".crate"))
-        (sha256
-         (base32
-          "00xvf772ys4fj9fr8kplmsqb9if215dsipi3nv54aw9q7xkfpw0d"))))
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "syn" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0s3y325n7s6gsg4wg0dq0pxymhv1x8qd4nmsp8my2kf24h3y4cw8"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -25178,19 +34294,22 @@ cryptographic implementations.")
         ("rust-proc-macro2" ,rust-proc-macro2-1)
         ("rust-quote" ,rust-quote-1))
        #:cargo-development-inputs
-       (("rust-anyhow" ,rust-anyhow-1.0)
-        ("rust-flate2" ,rust-flate2-1.0)
-        ;("rust-insta" ,rust-insta-0.12)
+       (("rust-anyhow" ,rust-anyhow-1)
+        ("rust-flate2" ,rust-flate2-1)
+        ("rust-insta" ,rust-insta-0.16)
         ("rust-rayon" ,rust-rayon-1)
         ("rust-ref-cast" ,rust-ref-cast-1.0)
         ("rust-regex" ,rust-regex-1)
-        ;("rust-reqwest" ,rust-reqwest-0.10)
+        ("rust-reqwest" ,rust-reqwest-0.10)
+        ("rust-syn-test-suite" ,rust-syn-test-suite-0)
         ("rust-tar" ,rust-tar-0.4)
         ("rust-termcolor" ,rust-termcolor-1)
         ("rust-walkdir" ,rust-walkdir-2))))
     (home-page "https://github.com/dtolnay/syn")
     (synopsis "Parser for Rust source code")
-    (description "Parser for Rust source code")
+    (description
+     "Syn is a parsing library for parsing a stream of Rust tokens into
+a syntax tree of Rust source code.")
     (license (list license:expat license:asl2.0))))
 
 (define-public rust-syn-0.15
@@ -25222,6 +34341,53 @@ cryptographic implementations.")
         ("rust-walkdir" ,rust-walkdir-2))))
     (properties '())))
 
+(define-public rust-syn-0.14
+  (package
+    (inherit rust-syn-0.15)
+    (name "rust-syn")
+    (version "0.14.9")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "syn" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0hgpgi8lcvkfd5jnma5fxq41ycb9kna635b4c2wl4z1rmbnfj6i6"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-proc-macro2" ,rust-proc-macro2-0.4)
+        ("rust-quote" ,rust-quote-0.6)
+        ("rust-unicode-xid" ,rust-unicode-xid-0.1))
+       #:cargo-development-inputs
+       (("rust-rayon" ,rust-rayon-1)
+        ("rust-walkdir" ,rust-walkdir-2))))))
+
+(define-public rust-syn-0.13
+  (package
+    (inherit rust-syn-0.14)
+    (name "rust-syn")
+    (version "0.13.11")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "syn" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "16qvx8qyb5v4vjbg9rk8848bw6x4i6vzs8v7f4n1v9pkj9ibzy8l"))))
+    (arguments
+     `(#:tests? #f
+       #:cargo-inputs
+       (("rust-proc-macro2" ,rust-proc-macro2-0.3)
+        ("rust-quote" ,rust-quote-0.5)
+        ("rust-unicode-xid" ,rust-unicode-xid-0.1))
+       #:cargo-development-inputs
+       (("rust-rayon" ,rust-rayon-1)
+        ("rust-walkdir" ,rust-walkdir-2))))))
+
 (define-public rust-syn-0.11
   (package
     (inherit rust-syn-0.15)
@@ -25388,20 +34554,60 @@ cryptographic implementations.")
      "This package provides helper test traits for synstructure doctests.")
     (license license:expat)))
 
+(define-public rust-syntect-4
+  (package
+    (name "rust-syntect")
+    (version "4.4.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "syntect" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "121y6rswylvbhaz8krjb9aa7h16f6ly2sdbbka1hr1dm0pgphfaf"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f                      ;missing files
+       #:cargo-inputs
+       (("rust-bincode" ,rust-bincode-1)
+        ("rust-bitflags" ,rust-bitflags-1)
+        ("rust-fancy-regex" ,rust-fancy-regex-0.3)
+        ("rust-flate2" ,rust-flate2-1)
+        ("rust-fnv" ,rust-fnv-1)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-lazycell" ,rust-lazycell-1)
+        ("rust-onig" ,rust-onig-6)
+        ("rust-plist" ,rust-plist-1)
+        ("rust-regex-syntax" ,rust-regex-syntax-0.6)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-derive" ,rust-serde-derive-1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-walkdir" ,rust-walkdir-2)
+        ("rust-yaml-rust" ,rust-yaml-rust-0.4))
+       #:cargo-development-inputs
+       (("rust-criterion" ,rust-criterion-0.3)
+        ("rust-getopts" ,rust-getopts-0.2)
+        ("rust-pretty-assertions" ,rust-pretty-assertions-0.6))))
+    (home-page "https://github.com/trishume/syntect")
+    (synopsis "Library for syntax highlighting and code intelligence")
+    (description
+     "This package provides a library for syntax highlighting and code
+intelligence using Sublime Text's grammars.")
+    (license license:expat)))
+
 (define-public rust-syntect-3.3
   (package
+    (inherit rust-syntect-4)
     (name "rust-syntect")
     (version "3.3.0")
     (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "syntect" version))
-        (file-name
-         (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32
-          "1f6qn1yy15b0hq9h6q1rikqnm3lh56ic6bq3ywsmdsjy8ni9splm"))))
-    (build-system cargo-build-system)
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "syntect" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1f6qn1yy15b0hq9h6q1rikqnm3lh56ic6bq3ywsmdsjy8ni9splm"))))
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
@@ -25410,21 +34616,15 @@ cryptographic implementations.")
         ("rust-regex-syntax" ,rust-regex-syntax-0.6)
         ("rust-serde" ,rust-serde-1)
         ("rust-serde-derive" ,rust-serde-derive-1)
-        ("rust-flate2" ,rust-flate2-1.0)
+        ("rust-flate2" ,rust-flate2-1)
         ("rust-serde-json" ,rust-serde-json-1)
         ("rust-fnv" ,rust-fnv-1)
         ("rust-bitflags" ,rust-bitflags-1)
-        ("rust-lazycell" ,rust-lazycell-1.2)
+        ("rust-lazycell" ,rust-lazycell-1)
         ("rust-bincode" ,rust-bincode-1)
         ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-walkdir" ,rust-walkdir-2)
-        ("rust-onig" ,rust-onig-5.0))))
-    (home-page "https://github.com/trishume/syntect")
-    (synopsis "Library for syntax highlighting and code intelligence")
-    (description
-     "This package provides a library for syntax highlighting and code
-intelligence using Sublime Text's grammars.")
-    (license license:expat)))
+        ("rust-onig" ,rust-onig-5.0))))))
 
 (define-public rust-syntex-0.58
  (package
@@ -25547,7 +34747,7 @@ syntax extension expansion.")
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-bitflags" ,rust-bitflags-1)
-        ("rust-byteorder" ,rust-byteorder-1.3)
+        ("rust-byteorder" ,rust-byteorder-1)
         ("rust-failure" ,rust-failure-0.1)
         ("rust-libc" ,rust-libc-0.2)
         ("rust-walkdir" ,rust-walkdir-2))))
@@ -25574,7 +34774,7 @@ syntax extension expansion.")
     (arguments
      `(#:skip-build? #t ; Unsupported on Linux.
        #:cargo-inputs
-       (("rust-byteorder" ,rust-byteorder-1.3)
+       (("rust-byteorder" ,rust-byteorder-1)
         ("rust-errno" ,rust-errno-0.2)
         ("rust-libc" ,rust-libc-0.2))))))
 
@@ -25630,6 +34830,89 @@ syntax extension expansion.")
     (description "Send log messages to syslog.")
     (license license:expat)))
 
+(define-public rust-system-deps-1
+  (package
+    (name "rust-system-deps")
+    (version "1.3.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "system-deps" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "16v4ljmj8sj030mdcc1yk615vciqlyxi7csq6lxka6cs4qbwqghg"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f                      ;source is missing some test files
+       #:cargo-inputs
+       (("rust-heck" ,rust-heck-0.3)
+        ("rust-pkg-config" ,rust-pkg-config-0.3)
+        ("rust-strum" ,rust-strum-0.18)
+        ("rust-strum-macros" ,rust-strum-macros-0.18)
+        ("rust-thiserror" ,rust-thiserror-1)
+        ("rust-toml" ,rust-toml-0.5)
+        ("rust-version-compare" ,rust-version-compare-0.0))
+       #:cargo-development-inputs
+       (("rust-itertools" ,rust-itertools-0.9))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-version-requirements
+           (lambda _
+             (substitute* "Cargo.toml"
+               (("0.0.10") ,(package-version rust-version-compare-0.0))))))))
+    (home-page "https://github.com/gdesmott/system-deps")
+    (synopsis "Define system dependencies in @file{Cargo.toml}")
+    (description
+     "This crate lets you write system dependencies in @file{Cargo.toml}
+metadata, rather than programmatically in @file{build.rs}.  This makes those
+dependencies declarative, so other tools can read them as well.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-tabwriter-1
+  (package
+    (name "rust-tabwriter")
+    (version "1.2.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tabwriter" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "048i0mj3b07zlry9m5fl706y5bzdzgrswymqn32drakzk7y5q81n"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-regex" ,rust-regex-1)
+        ("rust-unicode-width" ,rust-unicode-width-0.1))))
+    (home-page "https://github.com/BurntSushi/tabwriter")
+    (synopsis "Elastic tabstops")
+    (description "@code{tabwriter} is a crate that implements
+@url{http://nickgravgaard.com/elastictabstops/index.html,elastic tabstops}.  It
+provides both a library for wrapping Rust @code{Writer}s and a small program
+that exposes the same functionality at the command line.")
+    (license (list license:unlicense license:expat))))
+
+(define-public rust-take-mut-0.2
+  (package
+    (name "rust-take-mut")
+    (version "0.2.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "take_mut" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0q2d7w6nd5bl7bay5csq065sjg8fw0jcx6hl1983cpzf25fh0r7p"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/Sgeo/take_mut")
+    (synopsis "Take a T from a &mut T temporarily")
+    (description "This package lets you temporarily take a T from a &mut T.")
+    (license license:expat)))
+
 (define-public rust-takeable-option-0.4
   (package
     (name "rust-takeable-option")
@@ -25650,6 +34933,26 @@ syntax extension expansion.")
      "This package provides a small wrapper around option.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-tap-1
+  (package
+    (name "rust-tap")
+    (version "1.0.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "tap" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "13h7rw3zg3qyb4wrri8l6xbd1wrxd2rq29sqxnkd7zqs5mrlwirn"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/myrrlyn/tap")
+    (synopsis "Generic extensions for tapping values in Rust")
+    (description
+     "This package provides generic extensions for tapping values in Rust.")
+    (license license:expat)))
+
 (define-public rust-tar-0.4
   (package
     (name "rust-tar")
@@ -25732,6 +35035,52 @@ memory all at once.")
       "Targeting utilities for compilers and related tools")
     (license license:asl2.0)))
 
+(define-public rust-tectonic-cfg-support-0.1
+  (package
+    (name "rust-tectonic-cfg-support")
+    (version "0.1.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tectonic_cfg_support" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1jsbk89g4s75cdav6350anls81k3lwaq6imhjb4q2c4cmr24i1cz"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-lazy-static" ,rust-lazy-static-1))))
+    (home-page "https://tectonic-typesetting.github.io/")
+    (synopsis "Support crate for @code{CARGO_CFG_TARGET_*} variables")
+    (description
+     "This package provides a build.rs support crate that helps deal
+with @code{CARGO_CFG_TARGET_*} variables.")
+    (license license:expat)))
+
+(define-public rust-tectonic-xdv-0.1
+  (package
+    (name "rust-tectonic-xdv")
+    (version "0.1.11")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tectonic_xdv" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1ibxv32i7dla3iw6s01cagzgdgzhm1mmxwqjv841m6m4r7g57gxj"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-byteorder" ,rust-byteorder-1))))
+    (home-page "https://tectonic-typesetting.github.io/")
+    (synopsis "Decoder for the XDV and SPX file formats")
+    (description
+     "This package provides a decoder for the XDV and SPX file formats
+used by XeTeX and Tectonic.")
+    (license license:expat)))
+
 (define-public rust-tempdir-0.3
   (package
     (name "rust-tempdir")
@@ -25787,6 +35136,28 @@ directories.")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-tempfile-2
+  (package
+    (inherit rust-tempfile-3)
+    (name "rust-tempfile")
+    (version "2.2.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "tempfile" version))
+        (file-name (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1q61byf232rra0vqxp4qp10wwwqsqqd45qjj80ql5f34vgljzkhi"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-kernel32-sys" ,rust-kernel32-sys-0.2)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-rand" ,rust-rand-0.3)
+        ("rust-redox-syscall" ,rust-redox-syscall-0.1)
+        ("rust-winapi" ,rust-winapi-0.2))))))
+
 (define-public rust-tendril-0.4
   (package
     (name "rust-tendril")
@@ -25817,6 +35188,42 @@ directories.")
      "Compact buffer/string type for zero-copy parsing.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-tera-1
+  (package
+    (name "rust-tera")
+    (version "1.6.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tera" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1p7qzd8akd4xk4b23dmdrqw9q8061xkl1mar34j3f2glmizapipa"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-chrono" ,rust-chrono-0.4)
+        ("rust-chrono-tz" ,rust-chrono-tz-0.5)
+        ("rust-globwalk" ,rust-globwalk-0.8)
+        ("rust-humansize" ,rust-humansize-1)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-percent-encoding" ,rust-percent-encoding-2)
+        ("rust-pest" ,rust-pest-2)
+        ("rust-pest-derive" ,rust-pest-derive-2)
+        ("rust-rand" ,rust-rand-0.8)
+        ("rust-regex" ,rust-regex-1)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-slug" ,rust-slug-0.1)
+        ("rust-unic-segment" ,rust-unic-segment-0.9))))
+    (home-page "https://tera.netlify.com/")
+    (synopsis "Template engine based on Jinja2/Django templates")
+    (description
+     "Tera is a template engine inspired by Jinja2 and the Django
+template language.")
+    (license license:expat)))
+
 (define-public rust-term-0.6
  (package
    (name "rust-term")
@@ -25857,7 +35264,7 @@ directories.")
          "0hkgjrfisj6zjwz525639pmsvzhlc48a0h65nw87qrdp6jihdlgd"))))
     (arguments
      `(#:cargo-inputs
-       (("rust-byteorder" ,rust-byteorder-1.3)
+       (("rust-byteorder" ,rust-byteorder-1)
         ("rust-dirs" ,rust-dirs-1.0)
         ("rust-winapi" ,rust-winapi-0.3))))))
 
@@ -25949,7 +35356,7 @@ grid layout.")
   (package
     (inherit rust-term-size-1.0)
     (name "rust-term-size")
-    (version "0.3.1")
+    (version "0.3.2")
     (source
      (origin
        (method url-fetch)
@@ -25958,14 +35365,11 @@ grid layout.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "09wk3173ngmb710qs9rwgibq4w250q8lgnwjvb9cypc1vdk9lnwy"))))
+         "1n885cykajsppx86xl7d0dqkgmgsp8v914lvs12qzvd0dij2jh8y"))))
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-clippy" ,rust-clippy-0.0)
-        ("rust-kernel32-sys" ,rust-kernel32-sys-0.2)
-        ("rust-libc" ,rust-libc-0.2)
-        ("rust-winapi" ,rust-winapi-0.2))))))
+     `(#:cargo-inputs
+       (("rust-libc" ,rust-libc-0.2)
+        ("rust-winapi" ,rust-winapi-0.3))))))
 
 (define-public rust-termcolor-1
   (package
@@ -26093,6 +35497,20 @@ bindings are a small wrapper around the raw C functions, which converts integer
 return values to @code{std::io::Result} to indicate success or failure.")
     (license license:expat)))
 
+(define-public rust-termios-0.2
+  (package
+    (inherit rust-termios-0.3)
+    (name "rust-termios")
+    (version "0.2.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "termios" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0fk8nl0rmk43jrh6hjz6c6d83ri7l6fikag6lh0ffz3di9cwznfm"))))))
+
 (define-public rust-test-assembler-0.1
   (package
     (name "rust-test-assembler")
@@ -26110,7 +35528,7 @@ return values to @code{std::io::Result} to indicate success or failure.")
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
-       (("rust-byteorder" ,rust-byteorder-1.3))))
+       (("rust-byteorder" ,rust-byteorder-1))))
     (home-page "https://github.com/luser/rust-test-assembler")
     (synopsis "Build complex binary streams")
     (description
@@ -26118,6 +35536,38 @@ return values to @code{std::io::Result} to indicate success or failure.")
 streams.")
     (license license:expat)))
 
+(define-public rust-test-case-1
+  (package
+    (name "rust-test-case")
+    (version "1.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "test-case" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1j33njgyr4cjhil14va909sg8s6ahzpgcmiaigdg7g22ica6950r"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #false               ;XXX: a single test fails, cannot skip it
+       #:cargo-inputs
+       (("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-1)
+        ("rust-version-check" ,rust-version-check-0.9))
+       #:cargo-development-inputs
+       (("rust-insta" ,rust-insta-0.12)
+        ("rust-lazy-static" ,rust-lazy-static-1))))
+    (home-page "https://github.com/frondeus/test-case")
+    (synopsis "Procedural macro attribute for parametrized test cases")
+    (description
+     "This crate provides @code{#[test_case]} procedural macro attribute that
+generates multiple parametrized tests using one body with different input
+parameters.  A test is generated for each data set passed in test_case
+attribute.  Under the hood, all test cases that share same body are grouped
+into mod, giving clear and readable test results.")
+    (license license:expat)))
+
 (define-public rust-tester-0.5
   (package
     (name "rust-tester")
@@ -26155,11 +35605,22 @@ unstable language features.")
       (origin
         (method url-fetch)
         (uri (crate-uri "textwrap" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "0q5hky03ik3y50s9sz25r438bc4nwhqc6dqwynv4wylc807n29nk"))))
     (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (;("rust-hyphenation" ,rust-hyphenation-0.7)
+        ("rust-term-size" ,rust-term-size-0.3)
+        ("rust-unicode-width" ,rust-unicode-width-0.1))
+       #:cargo-development-inputs
+       (;("rust-lipsum" ,rust-lipsum-0.6)
+        ("rust-rand" ,rust-rand-0.6)
+        ("rust-rand-xorshift" ,rust-rand-xorshift-0.1)
+        ("rust-version-sync" ,rust-version-sync-0.6))))
     (home-page "https://github.com/mgeisler/textwrap")
     (synopsis "Library for word wrapping, indenting, and dedenting strings")
     (description
@@ -26167,7 +35628,6 @@ unstable language features.")
 strings.  You can use it to format strings (such as help and error messages)
 for display in commandline applications.  It is designed to be efficient and
 handle Unicode characters correctly.")
-    (properties '((hidden? . #t)))
     (license license:expat)))
 
 (define-public rust-thin-slice-0.1
@@ -26191,10 +35651,10 @@ handle Unicode characters correctly.")
      "An owned slice that packs the slice storage into a single word when possible.")
     (license license:mpl2.0)))
 
-(define-public rust-thiserror-1.0
+(define-public rust-thiserror-1
   (package
     (name "rust-thiserror")
-    (version "1.0.9")
+    (version "1.0.22")
     (source
      (origin
        (method url-fetch)
@@ -26203,17 +35663,17 @@ handle Unicode characters correctly.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0zlp3kzjssl1ndqmn7cipqnyggq4851ghhqj4bfc4fxk2hc7sdbg"))))
+         "0gp5wp7izpv9rdvq035ajbxcl3g0vck61pg9y6mfsvk1hi5y76hf"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-thiserror-impl" ,rust-thiserror-impl-1.0))
        #:cargo-development-inputs
-       (("rust-anyhow" ,rust-anyhow-1.0)
+       (("rust-anyhow" ,rust-anyhow-1)
         ("rust-ref-cast" ,rust-ref-cast-1.0)
-        ("rust-rustversion" ,rust-rustversion-1.0)
-        ("rust-trybuild" ,rust-trybuild-1.0))))
+        ("rust-rustversion" ,rust-rustversion-1)
+        ("rust-trybuild" ,rust-trybuild-1))))
     (home-page "https://github.com/dtolnay/thiserror")
     (synopsis "derive(Error)")
     (description "This package provides @code{derive(Error)} in Rust.")
@@ -26222,7 +35682,7 @@ handle Unicode characters correctly.")
 (define-public rust-thiserror-impl-1.0
   (package
     (name "rust-thiserror-impl")
-    (version "1.0.9")
+    (version "1.0.22")
     (source
      (origin
        (method url-fetch)
@@ -26231,7 +35691,7 @@ handle Unicode characters correctly.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1vxzhb98pm5yrq9mmcz50bgpml35iyx7lwjgi4v89sq7ag92abpb"))))
+         "0mnx51374c69l1w7gh98prn2wzm2yvmlll4ms567a42vx0ihz8lv"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -26245,7 +35705,7 @@ handle Unicode characters correctly.")
 @code{thiserror} crate.")
     (license (list license:expat license:asl2.0))))
 
-(define-public rust-thread-id-3.3
+(define-public rust-thread-id-3
   (package
     (name "rust-thread-id")
     (version "3.3.0")
@@ -26273,7 +35733,7 @@ different for every thread.")
 
 (define-public rust-thread-id-2.0
   (package
-    (inherit rust-thread-id-3.3)
+    (inherit rust-thread-id-3)
     (name "rust-thread-id")
     (version "2.0.0")
     (source
@@ -26290,7 +35750,7 @@ different for every thread.")
        (("rust-kernel32-sys" ,rust-kernel32-sys-0.2)
         ("rust-libc" ,rust-libc-0.2))))))
 
-(define-public rust-thread-local-1.0
+(define-public rust-thread-local-1
   (package
     (name "rust-thread-local")
     (version "1.0.1")
@@ -26314,7 +35774,7 @@ different for every thread.")
 
 (define-public rust-thread-local-0.3
   (package
-    (inherit rust-thread-local-1.0)
+    (inherit rust-thread-local-1)
     (name "rust-thread-local")
     (version "0.3.6")
     (source
@@ -26347,7 +35807,7 @@ different for every thread.")
      `(#:cargo-inputs
        (("rust-thread-id" ,rust-thread-id-2.0))))))
 
-(define-public rust-threadpool-1.7
+(define-public rust-threadpool-1
   (package
     (name "rust-threadpool")
     (version "1.7.1")
@@ -26371,82 +35831,70 @@ fixed set of worker threads.")
     (license (list license:asl2.0
                    license:expat))))
 
-(define-public rust-tiff-0.5
-  (package
-    (name "rust-tiff")
-    (version "0.5.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "tiff" version))
-        (file-name
-         (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32
-          "0bzzvxcx21pzryxgd7x7a1himiqs2y4k55754wzlr56sqj3qlfrz"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:tests? #f      ; not all test files included
-       #:cargo-inputs
-       (("rust-byteorder" ,rust-byteorder-1.3)
-        ("rust-lzw" ,rust-lzw-0.10)
-        ("rust-miniz-oxide" ,rust-miniz-oxide-0.3))))
-    (home-page "https://github.com/image-rs/image-tiff")
-    (synopsis
-     "TIFF decoding and encoding library in pure Rust")
-    (description
-     "TIFF decoding and encoding library in pure Rust.")
-    (license license:expat)))
-
-(define-public rust-tiff-0.3
+(define-public rust-thrussh-libsodium-0.1
   (package
-    (inherit rust-tiff-0.5)
-    (name "rust-tiff")
-    (version "0.3.1")
+    (name "rust-thrussh-libsodium")
+    (version "0.1.4")
     (source
      (origin
        (method url-fetch)
-       (uri (crate-uri "tiff" version))
+       (uri (crate-uri "thrussh-libsodium" version))
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0zgmbny2f8rssqmjdfvnysy0vqwcvlwl6q9f5yixhavlqk7w5dyp"))))
+         "0fjssjiwnmbxjvajk37l7k0fcw1ys97j7n8bpn3q3bbnz2qfrphv"))))
+    (build-system cargo-build-system)
     (arguments
-     `(#:tests? #f      ; Tests images not included with release.
-       #:cargo-inputs
-       (("rust-byteorder" ,rust-byteorder-1.3)
-        ("rust-lzw" ,rust-lzw-0.10)
-        ("rust-num-derive" ,rust-num-derive-0.2)
-        ("rust-num-traits" ,rust-num-traits-0.2))
-       #:cargo-development-inputs
-       (("rust-tempfile" ,rust-tempfile-3))))))
+     `(#:cargo-inputs
+       (("rust-libc" ,rust-libc-0.2)
+        ("rust-pkg-config" ,rust-pkg-config-0.3))))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("libsodium" ,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-tiff-0.2
+(define-public rust-time-0.2
   (package
-    (inherit rust-tiff-0.3)
-    (name "rust-tiff")
-    (version "0.2.2")
+    (name "rust-time")
+    (version "0.2.19")
     (source
      (origin
        (method url-fetch)
-       (uri (crate-uri "tiff" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
+       (uri (crate-uri "time" version))
+       (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1kn7psgpacns337vvqh272rkqwnakmjd51rc7ygwnc03ibr38j0y"))))
+         "18bhl0nmfyd8drksskw830ybw9pr47pisfn4245wabqijgys3hc0"))))
+    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-byteorder" ,rust-byteorder-1.3)
-        ("rust-lzw" ,rust-lzw-0.10)
-        ("rust-num-derive" ,rust-num-derive-0.2)
-        ("rust-num-traits" ,rust-num-traits-0.2))))))
+       (("rust-const-fn" ,rust-const-fn-0.4)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-rand" ,rust-rand-0.7)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-standback" ,rust-standback-0.2)
+        ("rust-stdweb" ,rust-stdweb-0.4)
+        ("rust-time-macros" ,rust-time-macros-0.1)
+        ("rust-winapi" ,rust-winapi-0.3))
+       #:cargo-development-inputs
+       (("rust-version-check" ,rust-version-check-0.9))))
+    (home-page "https://github.com/time-rs/time")
+    (synopsis "Date and time library")
+    (description "This package provides a date and time library.  It is fully
+interoperable with the standard library, and is mostly compatible with
+@code{#![no_std]}.")
+    (license (list license:expat license:asl2.0))))
 
 (define-public rust-time-0.1
   (package
     (name "rust-time")
-    (version "0.1.42")
+    (version "0.1.43")
     (source
       (origin
         (method url-fetch)
@@ -26454,7 +35902,7 @@ fixed set of worker threads.")
         (file-name (string-append name "-" version ".crate"))
         (sha256
          (base32
-          "0vsbvsz0ryxb35dy9j4anxvy8zlaplmjmi0a4z4l64bc135cz3fv"))))
+          "0f14wrgxj7ya2v4msg5mni7046bsm2angm7cn3pd3yv04gpm12na"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -26474,10 +35922,126 @@ in Rust.")
     (license (list license:asl2.0
                    license:expat))))
 
-(define-public rust-tinytemplate-1.0
+(define-public rust-time-macros-0.1
+  (package
+    (name "rust-time-macros")
+    (version "0.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "time-macros" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0bdbxjgbxb81xgy08h5dh4qvwy95sy9x8g1y31g11g4my3lvdscs"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-proc-macro-hack" ,rust-proc-macro-hack-0.5)
+        ("rust-time-macros-impl" ,rust-time-macros-impl-0.1))))
+    (home-page "https://github.com/time-rs/time")
+    (synopsis "Procedural macros for the time crate")
+    (description "This package provides procedural macros for the time
+crate.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-time-macros-impl-0.1
+  (package
+    (name "rust-time-macros-impl")
+    (version "0.1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "time-macros-impl" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1ymqhvnvry3giiw45xvarlgagl8hnd6cz4alkz32fq5dvwgbxhz5"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-proc-macro-hack" ,rust-proc-macro-hack-0.5)
+        ("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-standback" ,rust-standback-0.2)
+        ("rust-syn" ,rust-syn-1))))
+    (home-page "https://github.com/time-rs/time")
+    (synopsis "Procedural macros for the time crate")
+    (description "This package provides procedural macros for the time
+crate.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-timebomb-0.1
+  (package
+    (name "rust-timebomb")
+    (version "0.1.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "timebomb" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0fl8bxi9bf5bv44i1afii63695cx4jlki869v0kp01ipnvs8c23z"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-pulse" ,rust-pulse-0.5)
+        ("rust-time" ,rust-time-0.2))))
+    (home-page "https://github.com/csherratt/timebomb")
+    (synopsis "Timeout mechanism for unit tests")
+    (description "This package provides a timeout mechanism for unit tests.")
+    (license license:asl2.0)))
+
+(define-public rust-timer-0.2
+  (package
+    (name "rust-timer")
+    (version "0.2.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "timer" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0srhqyp7fr91d1i43aqs7wc6yn1i3kdkh1pm05bicdw961v23m1i"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-chrono" ,rust-chrono-0.4))))
+    (home-page "https://github.com/Yoric/timer.rs")
+    (synopsis "Simple timer in Rust")
+    (description
+     "This package provides a simple timer.  Use it to schedule execution of
+closures after a delay or at a given timestamp.")
+    (license license:mpl2.0)))
+
+(define-public rust-timerfd-1
+  (package
+    (name "rust-timerfd")
+    (version "1.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "timerfd" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "14gwkm2c38bm76ccpp4g20qqs77h86d1l81594i76pb751k3xd8b"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-libc" ,rust-libc-0.2))))
+    (home-page "https://github.com/main--/rust-timerfd")
+    (synopsis "Rust interface to the Linux kernel's @code{timerfd} API")
+    (description
+     "This package provides a Rust interface to the Linux kernel's
+@code{timerfd} API.")
+    (license license:expat)))
+
+(define-public rust-tinytemplate-1
   (package
     (name "rust-tinytemplate")
-    (version "1.0.3")
+    (version "1.1.0")
     (source
      (origin
        (method url-fetch)
@@ -26486,7 +36050,7 @@ in Rust.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "06ipxjwl1w6synvql8b50qxbqv0w04agvmmfqcdynr9ygmkcd8sp"))))
+         "0by1k1hdz6jgv4ykd0izirwsm6p3qb6s9g1jb4ffqg500ihcfgbd"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -26502,8 +36066,112 @@ in Rust.")
      "Simple, lightweight template engine.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-tinyvec-0.3
+  (package
+    (name "rust-tinyvec")
+    (version "0.3.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tinyvec" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "05vijqpckjsnbv07rwadwcny4pkcq7z1wi9ikl7p3ib7s9qy1313"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-development-inputs
+       (("rust-criterion" ,rust-criterion-0.3))))
+    (home-page "https://crates.io/crates/tinyvec")
+    (synopsis "Tiny vec-like types for Rust")
+    (description
+     "A 100% safe crate of vec-like types.")
+    (license (list license:zlib license:asl2.0 license:expat))))
+
+(define-public rust-tokio-1
+  (package
+    (name "rust-tokio")
+    (version "1.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tokio" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1gd6qc9xvm568kicbkch40kjn5w0q2nsn527gcy80v3baqgj4n6j"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #false                  ;FIXME: unresolved import
+       #: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))
+       #:cargo-development-inputs
+       (("rust-async-stream" ,rust-async-stream-0.3)
+        ("rust-futures" ,rust-futures-0.3)
+        ("rust-loom" ,rust-loom-0.4)
+        ("rust-nix" ,rust-nix-0.19)
+        ("rust-proptest" ,rust-proptest-0.10)
+        ("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
+     "This package provides an event-driven, non-blocking I/O platform for
+writing asynchronous I/O backed applications.")
+    (license license:expat)))
+
+(define-public rust-tokio-0.3
+  (package
+    (inherit rust-tokio-1)
+    (name "rust-tokio")
+    (version "0.3.6")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tokio" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0z78l7kn4y2qvghsp9dyqgvr1kjvv63pjq3d8nzi31q74lfa42vj"))))
+    (arguments
+     `(#:tests? #f                      ;FIXME: fail due to unresolved imports
+       #:cargo-inputs
+       (("rust-autocfg" ,rust-autocfg-1)
+        ("rust-bytes" ,rust-bytes-0.6)
+        ("rust-futures-core" ,rust-futures-core-0.3)
+        ("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-slab" ,rust-slab-0.4)
+        ("rust-tokio-macros" ,rust-tokio-macros-0.3)
+        ("rust-tracing" ,rust-tracing-0.1)
+        ("rust-winapi" ,rust-winapi-0.3))
+       #:cargo-development-inputs
+       (("rust-futures" ,rust-futures-0.3)
+        ("rust-loom" ,rust-loom-0.3)
+        ("rust-nix" ,rust-nix-0.19)
+        ("rust-proptest" ,rust-proptest-0.10)
+        ("rust-tokio-test" ,rust-tokio-test-0.3))))))
+
 (define-public rust-tokio-0.2
   (package
+    (inherit rust-tokio-0.3)
     (name "rust-tokio")
     (version "0.2.21")
     (source
@@ -26513,7 +36181,6 @@ in Rust.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "0n1dxsjv9fxv3kmr3nh4n8v8pqckwgdlls942msysavhp4kzm6fh"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
@@ -26534,33 +36201,25 @@ in Rust.")
         ("rust-slab" ,rust-slab-0.4)
         ("rust-tokio-macros" ,rust-tokio-macros-0.2)
         ("rust-winapi" ,rust-winapi-0.3))
-      #:cargo-development-inputs
-      (("rust-futures" ,rust-futures-0.3)
-       ("rust-loom" ,rust-loom-0.3)
-       ("rust-proptest" ,rust-proptest-0.9)
-       ("rust-tempfile" ,rust-tempfile-3)
-       ("rust-tokio-test" ,rust-tokio-test-0.2))))
-    (home-page "https://tokio.rs")
-    (synopsis "Event-driven, non-blocking I/O platform")
-    (description
-     "An event-driven, non-blocking I/O platform for writing asynchronous I/O
-backed applications.")
-    (license license:expat)))
+       #:cargo-development-inputs
+       (("rust-futures" ,rust-futures-0.3)
+        ("rust-loom" ,rust-loom-0.3)
+        ("rust-proptest" ,rust-proptest-0.9)
+        ("rust-tempfile" ,rust-tempfile-3)
+        ("rust-tokio-test" ,rust-tokio-test-0.2))))))
 
 (define-public rust-tokio-0.1
   (package
+    (inherit rust-tokio-0.2)
     (name "rust-tokio")
-    (version "0.1.21")
+    (version "0.1.22")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "tokio" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32
-         "11ra8jp3fj70a2zrqmd6as7wgpwiiyzjf50gz89i8r7wpksgqbzc"))))
-    (build-system cargo-build-system)
+        (base32 "1xhaadfmm6m37f79xv5020gc3np9wqza3bq95ymp522qpfsw02as"))))
     (arguments
      `(#:cargo-inputs
        (("rust-bytes" ,rust-bytes-0.4)
@@ -26583,22 +36242,17 @@ backed applications.")
         ("rust-tokio-uds" ,rust-tokio-uds-0.2))
        #:cargo-development-inputs
        (("rust-env-logger" ,rust-env-logger-0.5)
-        ("rust-flate2" ,rust-flate2-1.0)
+        ("rust-flate2" ,rust-flate2-1)
         ("rust-futures-cpupool" ,rust-futures-cpupool-0.1)
         ("rust-http" ,rust-http-0.1)
-        ("rust-httparse" ,rust-httparse-1.3)
+        ("rust-httparse" ,rust-httparse-1)
         ("rust-libc" ,rust-libc-0.2)
         ("rust-num-cpus" ,rust-num-cpus-1)
         ("rust-serde" ,rust-serde-1)
         ("rust-serde-derive" ,rust-serde-derive-1)
         ("rust-serde-json" ,rust-serde-json-1)
-        ("rust-time" ,rust-time-0.1))))
-    (home-page "https://tokio.rs")
-    (synopsis "Event-driven, non-blocking I/O platform")
-    (description
-     "An event-driven, non-blocking I/O platform for writing asynchronous I/O
-backed applications.")
-    (license license:expat)))
+        ("rust-time" ,rust-time-0.1)
+        ("rust-tracing-core" ,rust-tracing-core-0.1))))))
 
 (define-public rust-tokio-buf-0.1
   (package
@@ -26615,7 +36269,7 @@ backed applications.")
     (arguments
      `(#:cargo-inputs
        (("rust-bytes" ,rust-bytes-0.4)
-        ("rust-either" ,rust-either-1.5)
+        ("rust-either" ,rust-either-1)
         ("rust-futures" ,rust-futures-0.1))
        #:cargo-development-inputs
        (("rust-tokio-mock-task" ,rust-tokio-mock-task-0.1))))
@@ -26681,10 +36335,10 @@ backed applications.")
         ("rust-tokio-timer" ,rust-tokio-timer-0.2))
        #:cargo-development-inputs
        (("rust-env-logger" ,rust-env-logger-0.4)
-        ("rust-flate2" ,rust-flate2-1.0)
+        ("rust-flate2" ,rust-flate2-1)
         ("rust-futures-cpupool" ,rust-futures-cpupool-0.1)
         ("rust-http" ,rust-http-0.1)
-        ("rust-httparse" ,rust-httparse-1.3)
+        ("rust-httparse" ,rust-httparse-1)
         ("rust-libc" ,rust-libc-0.2)
         ("rust-num-cpus" ,rust-num-cpus-1)
         ("rust-serde" ,rust-serde-1)
@@ -26726,6 +36380,37 @@ Foundation for the rest of the tokio crates.")
 the current thread.")
     (license license:expat)))
 
+(define-public rust-tokio-executor-0.2
+  (package
+    (name "rust-tokio-executor")
+    (version "0.2.0-alpha.6")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tokio-executor" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1j67p4g9y20bvlbphjmpfzc0yy8clhmz6wza6hw94iciyvncxscy"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-crossbeam-channel" ,rust-crossbeam-channel-0.3)
+        ("rust-crossbeam-deque" ,rust-crossbeam-deque-0.7)
+        ("rust-crossbeam-queue" ,rust-crossbeam-queue-0.1)
+        ("rust-crossbeam-utils" ,rust-crossbeam-utils-0.6)
+        ("rust-futures-core-preview" ,rust-futures-core-preview-0.3)
+        ("rust-futures-util-preview" ,rust-futures-util-preview-0.3)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-num-cpus" ,rust-num-cpus-1)
+        ("rust-slab" ,rust-slab-0.4)
+        ("rust-tokio-sync" ,rust-tokio-sync-0.2)
+        ("rust-tracing" ,rust-tracing-0.1))))
+    (home-page "https://github.com/tokio-rs/tokio")
+    (synopsis "Future execution primitives")
+    (description "This package provides future execution primitives.")
+    (license license:expat)))
+
 ;; Cyclic dependency with rust-tokio.
 (define-public rust-tokio-executor-0.1
   (package
@@ -26781,8 +36466,8 @@ the current thread.")
         ("rust-tokio-codec" ,rust-tokio-codec-0.1)
         ("rust-tokio-io" ,rust-tokio-io-0.1))))
     (home-page "https://tokio.rs")
-    (synopsis "Filesystem API for Tokio")
-    (description "Filesystem API for Tokio.")
+    (synopsis "File system API for Tokio")
+    (description "File system API for Tokio.")
     (license license:expat)))
 
 ;; Cyclic dependencies with tokio and tokio-current-thread
@@ -26844,8 +36529,52 @@ the current thread.")
 futures efficiently")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-tokio-macros-1
+  (package
+    (name "rust-tokio-macros")
+    (version "1.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tokio-macros" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "150l6wfcqw2rcjaf22qk3z6ca794x0s2c68n5ar18cfafllpsla2"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #false                  ;FIXME: undeclared type `tokio`
+       #:cargo-inputs
+       (("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-1))))
+    (home-page "https://tokio.rs")
+    (synopsis "Tokio's proc macros")
+    (description "This package provides Tokio's proc macros.")
+    (license license:expat)))
+
+(define-public rust-tokio-macros-0.3
+  (package
+    (inherit rust-tokio-macros-1)
+    (name "rust-tokio-macros")
+    (version "0.3.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tokio-macros" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1dvd3gji7a0i1kgck2lwgbcbklk3qb1bsqgd2v9amj63kyjzzps6"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-1))
+       #:cargo-development-inputs
+       (("rust-tokio" ,rust-tokio-0.3))))))
+
 (define-public rust-tokio-macros-0.2
   (package
+    (inherit rust-tokio-macros-0.3)
     (name "rust-tokio-macros")
     (version "0.2.5")
     (source
@@ -26855,18 +36584,13 @@ futures efficiently")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "1283aq0l7rnh79zzqk4r34dgimvwcymrzmg1yah9ai2nmb3arhzh"))))
-    (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))
        #:cargo-development-inputs
-       (("rust-tokio" ,rust-tokio-0.2))))
-    (home-page "https://tokio.rs")
-    (synopsis "Tokio's proc macros")
-    (description "This package provides Tokio's proc macros.")
-    (license license:expat)))
+       (("rust-tokio" ,rust-tokio-0.2))))))
 
 (define-public rust-tokio-mock-task-0.1
   (package
@@ -26939,6 +36663,102 @@ applications backed by buffers.")
 Tokio.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-tokio-net-0.2
+  (package
+    (name "rust-tokio-net")
+    (version "0.2.0-alpha.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tokio-net" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "15vm0bndn6zcpkp1yb6v736rbhqgim5skc76rz299xd3y0pr249a"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bytes" ,rust-bytes-0.4)
+        ("rust-crossbeam-queue" ,rust-crossbeam-queue-0.1)
+        ("rust-crossbeam-utils" ,rust-crossbeam-utils-0.6)
+        ("rust-futures-core-preview" ,rust-futures-core-preview-0.3)
+        ("rust-futures-sink-preview" ,rust-futures-sink-preview-0.3)
+        ("rust-futures-util-preview" ,rust-futures-util-preview-0.3)
+        ("rust-iovec" ,rust-iovec-0.1)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-mio" ,rust-mio-0.6)
+        ("rust-mio-named-pipes" ,rust-mio-named-pipes-0.1)
+        ("rust-mio-uds" ,rust-mio-uds-0.6)
+        ("rust-num-cpus" ,rust-num-cpus-1)
+        ("rust-parking-lot" ,rust-parking-lot-0.8)
+        ("rust-signal-hook-registry" ,rust-signal-hook-registry-1)
+        ("rust-slab" ,rust-slab-0.4)
+        ("rust-tokio-codec" ,rust-tokio-codec-0.1)
+        ("rust-tokio-executor" ,rust-tokio-executor-0.1)
+        ("rust-tokio-io" ,rust-tokio-io-0.1)
+        ("rust-tokio-sync" ,rust-tokio-sync-0.1)
+        ("rust-tracing" ,rust-tracing-0.1)
+        ("rust-winapi" ,rust-winapi-0.3))))
+    (home-page "https://tokio.rs")
+    (synopsis "Event loop that drives Tokio I/O resources")
+    (description
+     "This package provides the event loop that drives Tokio I/O resources.")
+    (license license:expat)))
+
+(define-public rust-tokio-openssl-0.4
+  (package
+    (name "rust-tokio-openssl")
+    (version "0.4.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tokio-openssl" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "15751d47984ncvllagz35ldl10ifr8555wixvsg6k3i0yk2hhjrw"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f                      ;require internet access
+       #:cargo-inputs
+       (("rust-openssl" ,rust-openssl-0.10)
+        ("rust-tokio" ,rust-tokio-0.2))
+       #:cargo-development-inputs
+       (("rust-futures" ,rust-futures-0.3)
+        ("rust-tokio" ,rust-tokio-0.2))))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("openssl" ,openssl)))
+    (home-page "https://github.com/alexcrichton/tokio-openssl")
+    (synopsis "SSL streams for Tokio backed by OpenSSL")
+    (description "This package is an implementation of SSL streams for Tokio
+backed by OpenSSL.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-tokio-openssl-0.3
+  (package
+    (inherit rust-tokio-openssl-0.4)
+    (name "rust-tokio-openssl")
+    (version "0.3.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tokio-openssl" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "19zx58jz0vkxppa3pmqnq0b90mqsycikr5nrcy6i1bkhn53647bp"))))
+    (arguments
+     `(#:tests? #f                      ;require internet access
+       #:cargo-inputs
+       (("rust-futures" ,rust-futures-0.1)
+        ("rust-openssl" ,rust-openssl-0.10)
+        ("rust-tokio-io" ,rust-tokio-io-0.1))
+       #:cargo-development-inputs
+       (("rust-tokio" ,rust-tokio-0.1))))))
+
 (define-public rust-tokio-process-0.2
   (package
     (name "rust-tokio-process")
@@ -27017,8 +36837,71 @@ futures.")
      "Event loop that drives Tokio I/O resources.")
     (license license:expat)))
 
+(define-public rust-tokio-rustls-0.14
+  (package
+    (name "rust-tokio-rustls")
+    (version "0.14.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tokio-rustls" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "16l8kx3j7i3jxq36qs3hnmys6cd2zqcixc1n0kf3kymwanr32a71"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(;; These tests require network access.
+       #:cargo-test-flags '("--release" "--" "--skip=tls12" "--skip=modern")
+       #:cargo-inputs
+       (("rust-bytes" ,rust-bytes-0.5)
+        ("rust-futures-core" ,rust-futures-core-0.3)
+        ("rust-rustls" ,rust-rustls-0.18)
+        ("rust-tokio" ,rust-tokio-0.2)
+        ("rust-webpki" ,rust-webpki-0.21))
+       #:cargo-development-inputs
+       (("rust-futures-util" ,rust-futures-util-0.3)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-tokio" ,rust-tokio-0.2)
+        ("rust-webpki-roots" ,rust-webpki-roots-0.20))))
+    (home-page "https://github.com/tokio-rs/tls")
+    (synopsis "Asynchronous TLS/SSL streams for Tokio")
+    (description "This package provides asynchronous TLS/SSL streams for Tokio
+using Rustls.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-tokio-rustls-0.13
+  (package
+    (inherit rust-tokio-rustls-0.14)
+    (name "rust-tokio-rustls")
+    (version "0.13.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tokio-rustls" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1d2iy01v5psvm0ygcflzjna7zwgwk36w36bfr6mqf1vpsah65jqm"))))
+    (arguments
+     `(;; These tests require network access.
+       #:cargo-test-flags '("--release" "--" "--skip=tls12" "--skip=modern")
+       #:cargo-inputs
+       (("rust-bytes" ,rust-bytes-0.5)
+        ("rust-futures-core" ,rust-futures-core-0.3)
+        ("rust-rustls" ,rust-rustls-0.17)
+        ("rust-tokio" ,rust-tokio-0.2)
+        ("rust-webpki" ,rust-webpki-0.21))
+       #:cargo-development-inputs
+       (("rust-futures-util" ,rust-futures-util-0.3)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-tokio" ,rust-tokio-0.2)
+        ("rust-webpki-roots" ,rust-webpki-roots-0.19))))
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-tokio-rustls-0.12
   (package
+    (inherit rust-tokio-rustls-0.13)
     (name "rust-tokio-rustls")
     (version "0.12.2")
     (source
@@ -27028,7 +36911,6 @@ futures.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "1k6rpw4nmgsamh8vbf8xqrf4rr5sqs18i93561bydflajz0gw6hl"))))
-    (build-system cargo-build-system)
     (arguments
      `(;; These tests require network access.
        #:cargo-test-flags '("--release" "--" "--skip=tls12" "--skip=modern")
@@ -27043,12 +36925,60 @@ futures.")
         ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-tokio" ,rust-tokio-0.2)
         ("rust-webpki-roots" ,rust-webpki-roots-0.18))))
-    (home-page "https://github.com/quininer/tokio-rustls")
-    (synopsis "Asynchronous TLS/SSL streams for Tokio using Rustls")
-    (description "This package provides asynchronous TLS/SSL streams for Tokio
-using Rustls.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-tokio-rustls-0.10
+  (package
+    (inherit rust-tokio-rustls-0.12)
+    (name "rust-tokio-rustls")
+    (version "0.10.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tokio-rustls" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0xh6gxilm7waj55rxfgqmvl8abynzr3ang57qvbap400k67z0z1d"))))
+    (arguments
+     `(#:cargo-test-flags '("--release" "--" "--skip=test_badssl")
+       #:cargo-inputs
+       (("rust-bytes" ,rust-bytes-0.4)
+        ("rust-futures" ,rust-futures-0.1)
+        ("rust-iovec" ,rust-iovec-0.1)
+        ("rust-rustls" ,rust-rustls-0.16)
+        ("rust-tokio-io" ,rust-tokio-io-0.1)
+        ("rust-webpki" ,rust-webpki-0.21))
+       #:cargo-development-inputs
+       (("rust-tokio" ,rust-tokio-0.1)
+        ("rust-webpki-roots" ,rust-webpki-roots-0.17))))))
+
+(define-public rust-tokio-rustls-0.9
+  (package
+    (inherit rust-tokio-rustls-0.12)
+    (name "rust-tokio-rustls")
+    (version "0.9.4")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "tokio-rustls" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1jd63sl177sxacnksaxhazzmamwds98xk3niprh2qib75a1rk8cm"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bytes" ,rust-bytes-0.4)
+        ("rust-futures" ,rust-futures-0.1)
+        ("rust-iovec" ,rust-iovec-0.1)
+        ("rust-rustls" ,rust-rustls-0.15)
+        ("rust-tokio-io" ,rust-tokio-io-0.1)
+        ("rust-webpki" ,rust-webpki-0.19))
+       #:cargo-development-inputs
+       (("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-tokio" ,rust-tokio-0.1))))))
+
 (define-public rust-tokio-signal-0.2
   (package
     (name "rust-tokio-signal")
@@ -27085,8 +37015,119 @@ using Rustls.")
 futures.")
     (license license:expat)))
 
+(define-public rust-tokio-socks-0.3
+  (package
+    (name "rust-tokio-socks")
+    (version "0.3.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tokio-socks" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0f95zcvllb5byz4acwbnlsk9a2rdql4x78x0a8nkfwhq4ifzs4fn"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #false                  ;"tor_resolve_with_socket" not found
+       #:cargo-inputs
+       (("rust-bytes" ,rust-bytes-0.4)
+        ("rust-either" ,rust-either-1)
+        ("rust-futures" ,rust-futures-0.3)
+        ("rust-thiserror" ,rust-thiserror-1)
+        ("rust-tokio" ,rust-tokio-0.2))
+       #:cargo-development-inputs
+       (("rust-hyper" ,rust-hyper-0.13)
+        ("rust-once-cell" ,rust-once-cell-1)
+        ("rust-tokio" ,rust-tokio-0.2))))
+    (home-page "https://github.com/sticnarf/tokio-socks")
+    (synopsis "Asynchronous SOCKS proxy support for Rust")
+    (description
+     "This package provides asynchronous SOCKS proxy support for
+Rust.")
+    (license license:expat)))
+
+(define-public rust-tokio-socks-0.2
+  (package
+    (inherit rust-tokio-socks-0.3)
+    (name "rust-tokio-socks")
+    (version "0.2.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tokio-socks" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1bwdjafbbs0907w42dl899inykflz4gbm026wh097q151s57i5qr"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bytes" ,rust-bytes-0.4)
+        ("rust-either" ,rust-either-1)
+        ("rust-futures" ,rust-futures-0.3)
+        ("rust-thiserror" ,rust-thiserror-1)
+        ("rust-tokio" ,rust-tokio-0.2))
+       #:cargo-development-inputs
+       (("rust-hyper" ,rust-hyper-0.13)
+        ("rust-once-cell" ,rust-once-cell-1)
+        ("rust-tokio" ,rust-tokio-0.2))))))
+
+(define-public rust-tokio-stream-0.1
+  (package
+    (name "rust-tokio-stream")
+    (version "0.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tokio-stream" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0airchgn5zwzynchygdr8m7i4nizhfmifjz0iw6224sbnw9yjfrz"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #false                  ;FIXME: unresolved import
+       #:cargo-inputs
+       (("rust-async-stream" ,rust-async-stream-0.3)
+        ("rust-futures-core" ,rust-futures-core-0.3)
+        ("rust-pin-project-lite" ,rust-pin-project-lite-0.2)
+        ("rust-tokio" ,rust-tokio-1))
+       #:cargo-development-inputs
+       (("rust-futures" ,rust-futures-0.3)
+        ("rust-proptest" ,rust-proptest-0.10)
+        ("rust-tokio" ,rust-tokio-1))))
+    (home-page "https://tokio.rs")
+    (synopsis "Utilities to work with @code{Stream} and @code{tokio}")
+    (description
+     "This package provides utilities to work with @code{Stream} and
+@code{tokio}.")
+    (license license:expat)))
+
+(define-public rust-tokio-sync-0.2
+  (package
+    (name "rust-tokio-sync")
+    (version "0.2.0-alpha.6")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tokio-sync" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1lirf9s9pibgv8cypqzlddy8q9bxfp4z29qfx83p83slhnvaw6jg"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-fnv" ,rust-fnv-1)
+        ("rust-futures-core-preview" ,rust-futures-core-preview-0.3)
+        ("rust-futures-sink-preview" ,rust-futures-sink-preview-0.3)
+        ("rust-futures-util-preview" ,rust-futures-util-preview-0.3))))
+    (home-page "https://tokio.rs")
+    (synopsis "Synchronization utilities")
+    (description "This package provides synchronization utilities.")
+    (license license:expat)))
+
 (define-public rust-tokio-sync-0.1
   (package
+    (inherit rust-tokio-sync-0.2)
     (name "rust-tokio-sync")
     (version "0.1.6")
     (source
@@ -27098,7 +37139,6 @@ futures.")
        (sha256
         (base32
          "1ryalh7dcmnz46xj1va8aaw3if6vd4mj87r67dqvrqhpyf7j8qi1"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
@@ -27108,14 +37148,61 @@ futures.")
        (("rust-env-logger" ,rust-env-logger-0.6)
         ("rust-loom" ,rust-loom-0.1)
         ("rust-tokio" ,rust-tokio-0.1)
-        ("rust-tokio-mock-task" ,rust-tokio-mock-task-0.1))))
+        ("rust-tokio-mock-task" ,rust-tokio-mock-task-0.1))))))
+
+(define-public rust-tokio-test-0.4
+  (package
+    (name "rust-tokio-test")
+    (version "0.4.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tokio-test" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1gwrqdwlfih6ib66wxc7yaaq7a9mlsmnxj2ahag3zc2rdxgj0zbw"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-async-stream" ,rust-async-stream-0.3)
+        ("rust-bytes" ,rust-bytes-1)
+        ("rust-futures-core" ,rust-futures-core-0.3)
+        ("rust-tokio" ,rust-tokio-1)
+        ("rust-tokio-stream" ,rust-tokio-stream-0.1))
+       #:cargo-development-inputs
+       (("rust-futures-util" ,rust-futures-util-0.3)
+        ("rust-tokio" ,rust-tokio-1))))
     (home-page "https://tokio.rs")
-    (synopsis "Synchronization utilities")
-    (description "Synchronization utilities.")
+    (synopsis "Testing utilities for Tokio- and futures-based code")
+    (description
+     "This package provides testing utilities for Tokio- and
+futures-based code.")
     (license license:expat)))
 
+(define-public rust-tokio-test-0.3
+  (package
+    (inherit rust-tokio-test-0.4)
+    (name "rust-tokio-test")
+    (version "0.3.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tokio-test" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "06nzdkjsxr16pbr5m80zm3vcr8dhcl9amjgb9l9vj4x72cmmmp3y"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bytes" ,rust-bytes-0.5)
+        ("rust-futures-core" ,rust-futures-core-0.3)
+        ("rust-tokio" ,rust-tokio-0.3))
+       #:cargo-development-inputs
+       (("rust-futures-util" ,rust-futures-util-0.3)
+        ("rust-tokio" ,rust-tokio-0.3))))))
+
 (define-public rust-tokio-test-0.2
   (package
+    (inherit rust-tokio-test-0.3)
     (name "rust-tokio-test")
     (version "0.2.1")
     (source
@@ -27125,7 +37212,6 @@ futures.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "0v81p2n853b1kzyla3dbfmnazirn6s3n8p3z8k20bmdn370lj07d"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-bytes" ,rust-bytes-0.5)
@@ -27133,11 +37219,7 @@ futures.")
         ("rust-tokio" ,rust-tokio-0.2))
        #:cargo-development-inputs
        (("rust-futures-util" ,rust-futures-util-0.3)
-        ("rust-tokio" ,rust-tokio-0.2))))
-    (home-page "https://tokio.rs")
-    (synopsis "Testing utilities for Tokio- and futures-based code")
-    (description "Testing utilities for Tokio- and futures-based code")
-    (license license:expat)))
+        ("rust-tokio" ,rust-tokio-0.2))))))
 
 (define-public rust-tokio-tcp-0.1
   (package
@@ -27199,7 +37281,7 @@ futures.")
        #:cargo-development-inputs
        (("rust-env-logger" ,rust-env-logger-0.5)
         ("rust-futures-cpupool" ,rust-futures-cpupool-0.1)
-        ("rust-threadpool" ,rust-threadpool-1.7))))
+        ("rust-threadpool" ,rust-threadpool-1))))
     (home-page "https://github.com/tokio-rs/tokio")
     (synopsis
      "Task scheduler backed by a work-stealing thread pool")
@@ -27238,6 +37320,67 @@ pool.")
     (description "Timer facilities for Tokio.")
     (license license:expat)))
 
+(define-public rust-tokio-tls-0.3
+  (package
+    (name "rust-tokio-tls")
+    (version "0.3.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tokio-tls" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0hv375949532p32d0w6bm2f6d3r0d00mcdzqjjqlzcmkszyg8w4s"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f                      ;require internet access
+       #:cargo-inputs
+       (("rust-native-tls" ,rust-native-tls-0.2)
+        ("rust-tokio" ,rust-tokio-0.2))
+       #:cargo-development-inputs
+       (("rust-cfg-if" ,rust-cfg-if-0.1)
+        ("rust-env-logger" ,rust-env-logger-0.6)
+        ("rust-futures" ,rust-futures-0.3)
+        ("rust-openssl" ,rust-openssl-0.10)
+        ("rust-schannel" ,rust-schannel-0.1)
+        ("rust-security-framework" ,rust-security-framework-0.2)
+        ("rust-tokio" ,rust-tokio-0.2)
+        ("rust-tokio-util" ,rust-tokio-util-0.3)
+        ("rust-winapi" ,rust-winapi-0.3))))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("openssl" ,openssl)))
+    (home-page "https://tokio.rs")
+    (synopsis "TLS/SSL streams for Tokio")
+    (description "An implementation of TLS/SSL streams for Tokio giving an
+implementation of TLS for nonblocking I/O streams.")
+    (license license:expat)))
+
+(define-public rust-tokio-tls-0.2
+  (package
+    (inherit rust-tokio-tls-0.3)
+    (name "rust-tokio-tls")
+    (version "0.2.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tokio-tls" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0z0gmvv7jrpan6y42p5f5wd48rqcd96igp592w1c5cr573c8qjrm"))))
+    (arguments
+     `(#:tests? #f                      ;require internet access
+       #:cargo-inputs
+       (("rust-futures" ,rust-futures-0.1)
+        ("rust-native-tls" ,rust-native-tls-0.2)
+        ("rust-tokio-io" ,rust-tokio-io-0.1))
+       #:cargo-development-inputs
+       (("rust-env-logger" ,rust-env-logger-0.5)
+        ("rust-security-framework" ,rust-security-framework-0.2)
+        ("rust-tokio" ,rust-tokio-0.1))))))
+
 (define-public rust-tokio-trace-core-0.2
   (package
     (name "rust-tokio-trace-core")
@@ -27327,10 +37470,69 @@ pool.")
     (description "Unix Domain sockets for Tokio.")
     (license license:expat)))
 
+(define-public rust-tokio-util-0.3
+  (package
+    (name "rust-tokio-util")
+    (version "0.3.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tokio-util" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "16b48dl6sbc9x944jgjvsd65ab1w2c2qcziddbrbwv1b3y4l50my"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f
+       #:cargo-inputs
+       (("rust-bytes" ,rust-bytes-0.5)
+        ("rust-futures-core" ,rust-futures-core-0.3)
+        ("rust-futures-io" ,rust-futures-io-0.3)
+        ("rust-futures-sink" ,rust-futures-sink-0.3)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-pin-project-lite" ,rust-pin-project-lite-0.1)
+        ("rust-tokio" ,rust-tokio-0.2))
+       #:cargo-development-inputs
+       (("rust-futures" ,rust-futures-0.3)
+        ("rust-tokio" ,rust-tokio-0.2)
+        ("rust-tokio-test" ,rust-tokio-test-0.2))))
+    (home-page "https://tokio.rs")
+    (synopsis "Additional utilities for working with Tokio")
+    (description "This package provides additional utilities for working with
+Tokio.")
+    (license license:expat)))
+
+(define-public rust-tokio-util-0.2
+  (package
+    (inherit rust-tokio-util-0.3)
+    (name "rust-tokio-util")
+    (version "0.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tokio-util" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0c39s4y0kvzkyarn1f9s8khqyajiqn7m4cjsa208f87ch88sa7ap"))))
+    (arguments
+     `(#:tests? #f
+       #:cargo-inputs
+       (("rust-bytes" ,rust-bytes-0.5)
+        ("rust-futures-core" ,rust-futures-core-0.3)
+        ("rust-futures-sink" ,rust-futures-sink-0.3)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-pin-project-lite" ,rust-pin-project-lite-0.1)
+        ("rust-tokio" ,rust-tokio-0.2))
+       #:cargo-development-inputs
+       (("rust-futures" ,rust-futures-0.3)
+        ("rust-tokio" ,rust-tokio-0.2)
+        ("rust-tokio-test" ,rust-tokio-test-0.2))))))
+
 (define-public rust-toml-0.5
   (package
     (name "rust-toml")
-    (version "0.5.6")
+    (version "0.5.8")
     (source
       (origin
         (method url-fetch)
@@ -27338,11 +37540,10 @@ pool.")
         (file-name (string-append name "-" version ".crate"))
         (sha256
          (base32
-          "06n7j8z63hj6g0kj2x6sqwxnm4q3s0q5d873bdk41vqy1cb2vjgz"))))
+          "1apcmjrrjw429pjw7mqlmdwwd67g8305vwqy4kw3swr612bl44d3"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
+     `(#:cargo-inputs
         (("rust-indexmap" ,rust-indexmap-1)
          ("rust-serde" ,rust-serde-1))
         #:cargo-development-inputs
@@ -27358,6 +37559,27 @@ serializing Rust structures.")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-toml-0.4
+  (package
+    (inherit rust-toml-0.5)
+    (name "rust-toml")
+    (version "0.4.10")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "toml" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "07qilkzinn8z13vq2sss65n2lza7wrmqpvkbclw919m3f7y691km"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-serde" ,rust-serde-1))
+       #:cargo-development-inputs
+       (("rust-serde-derive" ,rust-serde-derive-1)
+        ("rust-serde-json" ,rust-serde-json-1))))))
+
 (define-public rust-toml-0.2
   (package
     (name "rust-toml")
@@ -27383,21 +37605,183 @@ serializing Rust structures.")
      "This package provides a native Rust encoder and decoder of TOML-formatted
 files and streams.  Provides implementations of the standard
 Serialize/Deserialize traits for TOML data to facilitate deserializing and
-serializing Rust str")
-    (license (list license:expat license:asl2.0))))
+serializing Rust structures.")
+    (license (list license:asl2.0
+                   license:expat))))
+
+(define-public rust-tower-layer-0.3
+  (package
+    (name "rust-tower-layer")
+    (version "0.3.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tower-layer" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1p6i9rn5d98wsx6hi4hbxh2xqh2clwz0blcm6jrqiciq4rpnapd3"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-development-inputs
+       (("rust-tower-service" ,rust-tower-service-0.3))))
+    (home-page "https://github.com/tower-rs/tower")
+    (synopsis "Easy composition between @code{Service}s")
+    (description "This package decorates a @code{Service} to allow easy
+composition between @code{Service}s.")
+    (license license:expat)))
+
+(define-public rust-tower-service-0.3
+  (package
+    (name "rust-tower-service")
+    (version "0.3.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tower-service" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0q4q53w82w1wd71x7vbspg2l3jicb6al2w1qdwxmnjrz8jzvd1z9"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-development-inputs
+       (("rust-http" ,rust-http-0.1))))
+    (home-page "https://github.com/tower-rs/tower")
+    (synopsis "Asynchronous, request / response based, client or server.")
+    (description "This package provides a trait representing an asynchronous,
+request/response based, client or server.")
+    (license license:expat)))
+
+(define-public rust-tower-test-0.3
+  (package
+    (name "rust-tower-test")
+    (version "0.3.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tower-test" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1j2k07g3z8ascq7r30bmw3b75v8lhd63mhfl60y59a74q71bp94v"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-futures-util" ,rust-futures-util-0.3)
+        ("rust-pin-project" ,rust-pin-project-0.4)
+        ("rust-tokio" ,rust-tokio-0.2)
+        ("rust-tokio-test" ,rust-tokio-test-0.2)
+        ("rust-tower-layer" ,rust-tower-layer-0.3)
+        ("rust-tower-service" ,rust-tower-service-0.3))
+       #:cargo-development-inputs
+       (("rust-tokio" ,rust-tokio-0.2))))
+    (home-page "https://github.com/tower-rs/tower")
+    (synopsis "Utilities for writing client and server @code{Service} tests")
+    (description "This package provides utilities for writing client and
+server @code{Service} tests.")
+    (license license:expat)))
+
+(define-public rust-tower-util-0.3
+  (package
+    (name "rust-tower-util")
+    (version "0.3.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tower-util" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0x4np2s7h891spvxaarcyainj12a7gvnh7jif9y80cvdh8ckq2fi"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-futures-core" ,rust-futures-core-0.3)
+        ("rust-futures-util" ,rust-futures-util-0.3)
+        ("rust-pin-project" ,rust-pin-project-0.4)
+        ("rust-tower-service" ,rust-tower-service-0.3))
+       #:cargo-development-inputs
+       (("rust-tokio" ,rust-tokio-0.2)
+        ("rust-tokio-test" ,rust-tokio-test-0.2)
+        ("rust-tower-test" ,rust-tower-test-0.3))))
+    (home-page "https://github.com/tower-rs/tower")
+    (synopsis "Utilities for working with @code{Service}")
+    (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")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tracing" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1qzg7rcfby8f2nn1ln3gk6fjc80q0bg8fw5k95zc1020vin04iwz"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-cfg-if" ,rust-cfg-if-1)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-pin-project-lite" ,rust-pin-project-lite-0.2)
+        ("rust-tracing-attributes" ,rust-tracing-attributes-0.1)
+        ("rust-tracing-core" ,rust-tracing-core-0.1))
+       #:cargo-development-inputs
+       (("rust-criterion" ,rust-criterion-0.3)
+        ("rust-futures" ,rust-futures-0.1)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-tokio" ,rust-tokio-0.2)
+        ("rust-wasm-bindgen-test" ,rust-wasm-bindgen-test-0.3))))
+    (home-page "https://tokio.rs")
+    (synopsis "Application-level tracing for Rust")
+    (description "@code{rust-tracing} is a framework for instrumenting Rust
+programs to collect structured, event-based diagnostic information.")
+    (license license:expat)))
+
+(define-public rust-tracing-attributes-0.1
+  (package
+    (name "rust-tracing-attributes")
+    (version "0.1.11")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tracing-attributes" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1njady03jycfarjbmbhnrpsl6s9pd9knp50c4z70rnkq6gycrq40"))))
+    (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))
+       #:cargo-development-inputs
+       (("rust-async-trait" ,rust-async-trait-0.1)
+        ("rust-tokio-test" ,rust-tokio-test-0.2)
+        ("rust-tracing" ,rust-tracing-0.1)
+        ("rust-tracing-core" ,rust-tracing-core-0.1)
+        ("rust-tracing-futures" ,rust-tracing-futures-0.2))))
+    (home-page "https://tokio.rs")
+    (synopsis "Automatically instrument functions")
+    (description "This package provides procedural macro attributes for
+automatically instrumenting functions.")
+    (license license:expat)))
 
 (define-public rust-tracing-core-0.1
   (package
     (name "rust-tracing-core")
-    (version "0.1.9")
+    (version "0.1.17")
     (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "tracing-core" version))
-        (file-name (string-append name "-" version ".crate"))
-        (sha256
-         (base32
-          "0y0rcvvqq89yaiz0qdx88byxgz8j6hsm9slq8d5vvf3jwc8nz90k"))))
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tracing-core" version))
+       (file-name (string-append name "-" version ".crate"))
+       (sha256
+        (base32 "0pvbgv301vw6dq4krc14yqbyyixb42lcs4s57xw05llkgy9f63gm"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -27405,10 +37789,223 @@ serializing Rust str")
     (home-page "https://tokio.rs")
     (synopsis "Core primitives for application-level tracing")
     (description
-     "Core primitives for application-level tracing.")
+     "This package provides core primitives for application-level tracing.")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-tracing-futures-0.2
+  (package
+    (name "rust-tracing-futures")
+    (version "0.2.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tracing-futures" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0k4vd3jyqz9cx8rbwbp0p93qfp1w6rfk7sc6c1jh1ai18zqvcyxb"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-futures" ,rust-futures-0.3)
+        ("rust-futures-task" ,rust-futures-task-0.3)
+        ("rust-pin-project" ,rust-pin-project-0.4)
+        ("rust-tokio" ,rust-tokio-0.1)
+        ("rust-tokio-executor" ,rust-tokio-executor-0.1)
+        ("rust-tracing" ,rust-tracing-0.1))
+       #:cargo-development-inputs
+       (("rust-tokio" ,rust-tokio-0.1)
+        ("rust-tokio-test" ,rust-tokio-test-0.2)
+        ("rust-tracing-core" ,rust-tracing-core-0.1))))
+    (home-page "https://tokio.rs")
+    (synopsis "Utilities for instrumenting @code{futures} with @code{tracing}")
+    (description "This package provides utilities for instrumenting
+@code{futures} with @code{tracing}.")
+    (license license:expat)))
+
+(define-public rust-tracing-fmt-0.1
+  (package
+    (name "rust-tracing-fmt")
+    (version "0.1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tracing-fmt" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0wagcrd6w8d3k7zdvg6sy2bwfh8w87i6ndia69p54fc7p3z4f1c8"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-tracing-subscriber" ,rust-tracing-subscriber-0.1))
+       #:cargo-development-inputs
+       (("rust-tracing" ,rust-tracing-0.1))))
+    (home-page "https://tokio.rs")
+    (synopsis "Tracing subscriber that formats and logs trace data")
+    (description
+     "This package provides a tracing subscriber that formats and logs trace
+data.  Moved to the tracing-subscriber crate.")
+    (license license:expat)))
+
+(define-public rust-tracing-log-0.1
+  (package
+    (name "rust-tracing-log")
+    (version "0.1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tracing-log" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1fdr0az98q9m5kiybvdvsb2m9mg86fdidgb5czzq2d71g1qqq3sy"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-env-logger" ,rust-env-logger-0.6)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-tracing-core" ,rust-tracing-core-0.1))
+       #:cargo-development-inputs
+       (("rust-tracing" ,rust-tracing-0.1))))
+    (home-page "https://tokio.rs")
+    (synopsis
+     "Provides compatibility between tracing the log crates")
+    (description
+     "Tracing is a framework for instrumenting Rust programs with
+context-aware, structured, event-based diagnostic information.  This crate
+provides compatibility layers for using tracing alongside the logging facade
+provided by the log crate.
+
+This crate provides:
+
+@itemize
+@item @code{AsTrace} and @code{AsLog} traits for converting between tracing
+and log types.
+@item @code{LogTracer}, a @code{log::Log} implementation that consumes
+@code{log::Records} and outputs them as @code{tracing::Events}.
+@item An @code{env_logger} module, with helpers for using the env_logger crate
+with tracing (optional, enabled by the env-logger feature).
+@end itemize")
+    (license license:expat)))
+
+(define-public rust-tracing-serde-0.1
+  (package
+    (name "rust-tracing-serde")
+    (version "0.1.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tracing-serde" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "12xjirg0b3cparjdhkd9pksrmv33gz7rdm4gfkvgk15v3x2flrgv"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-serde" ,rust-serde-1)
+        ("rust-tracing-core" ,rust-tracing-core-0.1))
+       #:cargo-development-inputs
+       (("rust-serde-json" ,rust-serde-json-1))))
+    (home-page "https://tokio.rs")
+    (synopsis "Compatibility layer for serializing trace data with
+@code{serde}")
+    (description
+     "This package provides a compatibility layer for serializing trace data
+with @code{serde}.")
+    (license license:expat)))
+
+(define-public rust-tracing-subscriber-0.2
+  (package
+    (name "rust-tracing-subscriber")
+    (version "0.2.15")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tracing-subscriber" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "009lxq14kmakv16sh6r7fy0264xbvs81kg6yr57lwnaciw68zym1"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #false                  ;missing test files
+       #:cargo-inputs
+       (("rust-ansi-term" ,rust-ansi-term-0.12)
+        ("rust-chrono" ,rust-chrono-0.4)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-matchers" ,rust-matchers-0.0)
+        ("rust-parking-lot" ,rust-parking-lot-0.11)
+        ("rust-regex" ,rust-regex-1)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-sharded-slab" ,rust-sharded-slab-0.1)
+        ("rust-smallvec" ,rust-smallvec-1)
+        ("rust-thread-local" ,rust-thread-local-1)
+        ("rust-tracing" ,rust-tracing-0.1)
+        ("rust-tracing-core" ,rust-tracing-core-0.1)
+        ("rust-tracing-log" ,rust-tracing-log-0.1)
+        ("rust-tracing-serde" ,rust-tracing-serde-0.1))
+       #:cargo-development-inputs
+       (("rust-criterion" ,rust-criterion-0.3)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-regex" ,rust-regex-1)
+        ("rust-tokio" ,rust-tokio-0.2)
+        ("rust-tracing" ,rust-tracing-0.1)
+        ("rust-tracing-futures" ,rust-tracing-futures-0.2)
+        ("rust-tracing-log" ,rust-tracing-log-0.1))))
+    (home-page "https://tokio.rs")
+    (synopsis "Implement and compose tracing subscribers")
+    (description
+     "This package provides utilities for implementing and composing tracing
+subscribers.
+
+Tracing is a framework for instrumenting Rust programs to collect scoped,
+structured, and async-aware diagnostics.  The Subscriber trait represents the
+functionality necessary to collect this trace data.  This crate contains tools
+for composing subscribers out of smaller units of behaviour, and
+batteries-included implementations of common subscriber functionality.
+
+Tracing-subscriber is intended for use by both Subscriber authors and
+application authors using tracing to instrument their applications.")
+    (license license:expat)))
+
+(define-public rust-tracing-subscriber-0.1
+  (package
+    (inherit rust-tracing-subscriber-0.2)
+    (name "rust-tracing-subscriber")
+    (version "0.1.6")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tracing-subscriber" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0i9fhlyz8mn2znpgmi5bv9y24pwpkkgfxs0rwcf6dl6djmjs2b0r"))))
+    (arguments
+     `(#:tests? #f      ; Some test files missing.
+       #:cargo-inputs
+       (("rust-ansi-term" ,rust-ansi-term-0.11)
+        ("rust-chrono" ,rust-chrono-0.4)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-matchers" ,rust-matchers-0.0)
+        ("rust-owning-ref" ,rust-owning-ref-0.4)
+        ("rust-parking-lot" ,rust-parking-lot-0.9)
+        ("rust-regex" ,rust-regex-1)
+        ("rust-smallvec" ,rust-smallvec-0.6)
+        ("rust-tracing-core" ,rust-tracing-core-0.1)
+        ("rust-tracing-log" ,rust-tracing-log-0.1))
+       #:cargo-development-inputs
+       (("rust-criterion" ,rust-criterion-0.3)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-tracing" ,rust-tracing-0.1)
+        ("rust-tracing-log" ,rust-tracing-log-0.1))))))
+
 (define-public rust-traitobject-0.1
   (package
     (name "rust-traitobject")
@@ -27448,18 +38045,622 @@ serializing Rust str")
      "This package provides a library for visualizing tree structured data.")
     (license license:expat)))
 
-(define-public rust-try-from-0.3
+(define-public rust-trust-dns-https-0.19
   (package
-    (name "rust-try-from")
-    (version "0.3.2")
+    (name "rust-trust-dns-https")
+    (version "0.19.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "trust-dns-https" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0s6yiqy98wddc2vid0dypj4cdnvycd4vrrj6l9s7yymq0iqpky5g"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #false
+       #:cargo-inputs
+       (("rust-backtrace" ,rust-backtrace-0.3)
+        ("rust-bytes" ,rust-bytes-0.5)
+        ("rust-data-encoding" ,rust-data-encoding-2)
+        ("rust-futures" ,rust-futures-0.3)
+        ("rust-h2" ,rust-h2-0.2)
+        ("rust-http" ,rust-http-0.2)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-rustls" ,rust-rustls-0.17)
+        ("rust-thiserror" ,rust-thiserror-1)
+        ("rust-tokio" ,rust-tokio-0.2)
+        ("rust-tokio-rustls" ,rust-tokio-rustls-0.13)
+        ("rust-trust-dns-proto" ,rust-trust-dns-proto-0.19)
+        ("rust-trust-dns-rustls" ,rust-trust-dns-rustls-0.19)
+        ("rust-typed-headers" ,rust-typed-headers-0.2)
+        ("rust-webpki" ,rust-webpki-0.21)
+        ("rust-webpki-roots" ,rust-webpki-roots-0.19))
+       #:cargo-development-inputs
+       (("rust-env-logger" ,rust-env-logger-0.7)
+        ("rust-futures" ,rust-futures-0.3))))
+    (home-page "http://www.trust-dns.org/index.html")
+    (synopsis "DNS over HTTPS extension for the Trust-DNS client")
+    (description "Trust-DNS is a safe and secure DNS library.  This is an
+extension for the Trust-DNS client to use DNS over HTTPS.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-trust-dns-https-0.18
+  (package
+    (inherit rust-trust-dns-https-0.19)
+    (name "rust-trust-dns-https")
+    (version "0.18.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "trust-dns-https" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "03dapd5larsjlpk6mr4xnm2sb0h7l6dg988wjnaxd8zfi5swq5nl"))))
+    (arguments
+     `(#:tests? #false                  ;network unreachable
+       #:cargo-inputs
+       (("rust-bytes" ,rust-bytes-0.5)
+        ("rust-data-encoding" ,rust-data-encoding-2)
+        ("rust-failure" ,rust-failure-0.1)
+        ("rust-futures" ,rust-futures-0.3)
+        ("rust-h2" ,rust-h2-0.2)
+        ("rust-http" ,rust-http-0.2)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-rustls" ,rust-rustls-0.16)
+        ("rust-tokio" ,rust-tokio-0.2)
+        ("rust-tokio-rustls" ,rust-tokio-rustls-0.12)
+        ("rust-trust-dns-proto" ,rust-trust-dns-proto-0.18)
+        ("rust-trust-dns-rustls" ,rust-trust-dns-rustls-0.18)
+        ("rust-typed-headers" ,rust-typed-headers-0.2)
+        ("rust-webpki" ,rust-webpki-0.21)
+        ("rust-webpki-roots" ,rust-webpki-roots-0.18))
+       #:cargo-development-inputs
+       (("rust-env-logger" ,rust-env-logger-0.7)
+        ("rust-futures" ,rust-futures-0.3))))))
+
+(define-public rust-trust-dns-https-0.3
+  (package
+    (inherit rust-trust-dns-https-0.19)
+    (name "rust-trust-dns-https")
+    (version "0.3.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "trust-dns-https" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "14ps1fxngm8d3ynp9jf86zrqbyzjzh62v5grwrqb1q0xhbz98vv1"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #false                  ;network unreachable
+       #:cargo-inputs
+       (("rust-bytes" ,rust-bytes-0.4)
+        ("rust-data-encoding" ,rust-data-encoding-2)
+        ("rust-failure" ,rust-failure-0.1)
+        ("rust-futures" ,rust-futures-0.1)
+        ("rust-h2" ,rust-h2-0.1)
+        ("rust-http" ,rust-http-0.1)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-rustls" ,rust-rustls-0.15)
+        ("rust-tokio-executor" ,rust-tokio-executor-0.1)
+        ("rust-tokio-reactor" ,rust-tokio-reactor-0.1)
+        ("rust-tokio-rustls" ,rust-tokio-rustls-0.9)
+        ("rust-tokio-tcp" ,rust-tokio-tcp-0.1)
+        ("rust-trust-dns-proto" ,rust-trust-dns-proto-0.7)
+        ("rust-trust-dns-rustls" ,rust-trust-dns-rustls-0.6)
+        ("rust-typed-headers" ,rust-typed-headers-0.1)
+        ("rust-webpki" ,rust-webpki-0.19)
+        ("rust-webpki-roots" ,rust-webpki-roots-0.16))
+       #:cargo-development-inputs
+       (("rust-tokio" ,rust-tokio-0.1))))))
+
+(define-public rust-trust-dns-native-tls-0.19
+  (package
+    (name "rust-trust-dns-native-tls")
+    (version "0.19.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "trust-dns-native-tls" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "173443yivsiyzvnai4h53v71br8jsz4zjwhp83q3x4hnh6306ymv"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #false
+       #:cargo-inputs
+       (("rust-futures" ,rust-futures-0.3)
+        ("rust-native-tls" ,rust-native-tls-0.2)
+        ("rust-tokio" ,rust-tokio-0.2)
+        ("rust-tokio-tls" ,rust-tokio-tls-0.3)
+        ("rust-trust-dns-proto" ,rust-trust-dns-proto-0.19))))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("openssl" ,openssl)))
+    (home-page "http://www.trust-dns.org/index.html")
+    (synopsis "native-tls extension for the Trust-DNS client")
+    (description "Trust-DNS is a safe and secure DNS library.  This is an
+extension for the Trust-DNS client to use native-tls for TLS.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-trust-dns-native-tls-0.18
+  (package
+    (inherit rust-trust-dns-native-tls-0.19)
+    (name "rust-trust-dns-native-tls")
+    (version "0.18.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "trust-dns-native-tls" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0rcg018vdd5chd4hcmjp753qjlf4k311nmrxa5ay2hxjllzmqd1y"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #false                  ;missing files
+       #:cargo-inputs
+       (("rust-futures" ,rust-futures-0.3)
+        ("rust-native-tls" ,rust-native-tls-0.2)
+        ("rust-tokio" ,rust-tokio-0.2)
+        ("rust-tokio-tls" ,rust-tokio-tls-0.3)
+        ("rust-trust-dns-proto" ,rust-trust-dns-proto-0.18))))))
+
+(define-public rust-trust-dns-native-tls-0.6
+  (package
+    (inherit rust-trust-dns-native-tls-0.19)
+    (name "rust-trust-dns-native-tls")
+    (version "0.6.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "trust-dns-native-tls" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0v18xwcy2vz57gnp1a6wx52c4zpwlakpr75ydmai8gc0h2kfzd7l"))))
+    (arguments
+     `(#:tests? #false
+       #:cargo-inputs
+       (("rust-futures" ,rust-futures-0.1)
+        ("rust-native-tls" ,rust-native-tls-0.2)
+        ("rust-tokio-tcp" ,rust-tokio-tcp-0.1)
+        ("rust-tokio-tls" ,rust-tokio-tls-0.2)
+        ("rust-trust-dns-proto" ,rust-trust-dns-proto-0.7))
+       #:cargo-development-inputs
+       (("rust-tokio" ,rust-tokio-0.1))))))
+
+(define-public rust-trust-dns-openssl-0.19
+  (package
+    (name "rust-trust-dns-openssl")
+    (version "0.19.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "trust-dns-openssl" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0as4jzrscjlmgj04l2aa2lf09vpd0fg5v0vfz019ybxgiqn89g45"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-futures" ,rust-futures-0.3)
+        ("rust-openssl" ,rust-openssl-0.10)
+        ("rust-tokio" ,rust-tokio-0.2)
+        ("rust-tokio-openssl" ,rust-tokio-openssl-0.4)
+        ("rust-trust-dns-proto" ,rust-trust-dns-proto-0.19))
+       #:cargo-development-inputs
+       (("rust-openssl" ,rust-openssl-0.10)
+        ("rust-tokio" ,rust-tokio-0.2))))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("openssl" ,openssl)))
+    (home-page "http://www.trust-dns.org/index.html")
+    (synopsis "tokio-openssl extension for the Trust-DNS client")
+    (description "Trust-DNS is a safe and secure DNS library.  This is an
+extension for the Trust-DNS client to use tokio-openssl for TLS.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-trust-dns-openssl-0.18
+  (package
+    (inherit rust-trust-dns-openssl-0.19)
+    (name "rust-trust-dns-openssl")
+    (version "0.18.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "trust-dns-openssl" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1870s27ifsdh9plgcwwbxzvlw17r3dn9v6s0zfryf6kfp9hzpfz2"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-futures" ,rust-futures-0.3)
+        ("rust-openssl" ,rust-openssl-0.10)
+        ("rust-tokio" ,rust-tokio-0.2)
+        ("rust-tokio-openssl" ,rust-tokio-openssl-0.4)
+        ("rust-trust-dns-proto" ,rust-trust-dns-proto-0.18))
+       #:cargo-development-inputs
+       (("rust-openssl" ,rust-openssl-0.10)
+        ("rust-tokio" ,rust-tokio-0.2))))))
+
+(define-public rust-trust-dns-openssl-0.6
+  (package
+    (inherit rust-trust-dns-openssl-0.19)
+    (name "rust-trust-dns-openssl")
+    (version "0.6.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "trust-dns-openssl" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0zwx2bsf1rbyjr6l2c3vi24z7414n4b5qiymva9dmbvwxnqqyk1j"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-futures" ,rust-futures-0.1)
+        ("rust-openssl" ,rust-openssl-0.10)
+        ("rust-tokio-openssl" ,rust-tokio-openssl-0.3)
+        ("rust-tokio-tcp" ,rust-tokio-tcp-0.1)
+        ("rust-trust-dns-proto" ,rust-trust-dns-proto-0.7))
+       #:cargo-development-inputs
+       (("rust-openssl" ,rust-openssl-0.10)
+        ("rust-tokio" ,rust-tokio-0.1))))))
+
+(define-public rust-trust-dns-proto-0.19
+  (package
+    (name "rust-trust-dns-proto")
+    (version "0.19.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "trust-dns-proto" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0a4zlv60kkbg1nvy3zh18fdg681z83yzppzy39rdkm7llqdhdmyd"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-async-trait" ,rust-async-trait-0.1)
+        ("rust-backtrace" ,rust-backtrace-0.3)
+        ("rust-data-encoding" ,rust-data-encoding-2)
+        ("rust-enum-as-inner" ,rust-enum-as-inner-0.3)
+        ("rust-futures" ,rust-futures-0.3)
+        ("rust-idna" ,rust-idna-0.2)
+        ("rust-js-sys" ,rust-js-sys-0.3)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-openssl" ,rust-openssl-0.10)
+        ("rust-rand" ,rust-rand-0.7)
+        ("rust-ring" ,rust-ring-0.16)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-smallvec" ,rust-smallvec-1)
+        ("rust-socket2" ,rust-socket2-0.3)
+        ("rust-thiserror" ,rust-thiserror-1)
+        ("rust-tokio" ,rust-tokio-0.2)
+        ("rust-url" ,rust-url-2)
+        ("rust-wasm-bindgen" ,rust-wasm-bindgen-0.2))
+       #:cargo-development-inputs
+       (("rust-env-logger" ,rust-env-logger-0.7)
+        ("rust-futures" ,rust-futures-0.3)
+        ("rust-tokio" ,rust-tokio-0.2))))
+    (home-page "http://www.trust-dns.org/index.html")
+    (synopsis "Safe and secure DNS library")
+    (description "Trust-DNS is a safe and secure DNS library.  This is the
+foundational DNS protocol library for all Trust-DNS projects.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-trust-dns-proto-0.18
+  (package
+    (inherit rust-trust-dns-proto-0.19)
+    (name "rust-trust-dns-proto")
+    (version "0.18.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "trust-dns-proto" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1vmhw7vdaa6b7wfv438f272ijjl2qlpcp6b1myvif4iay8pp4fi5"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-async-trait" ,rust-async-trait-0.1)
+        ("rust-data-encoding" ,rust-data-encoding-2)
+        ("rust-enum-as-inner" ,rust-enum-as-inner-0.3)
+        ("rust-failure" ,rust-failure-0.1)
+        ("rust-futures" ,rust-futures-0.3)
+        ("rust-idna" ,rust-idna-0.2)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-openssl" ,rust-openssl-0.10)
+        ("rust-rand" ,rust-rand-0.7)
+        ("rust-ring" ,rust-ring-0.16)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-smallvec" ,rust-smallvec-1)
+        ("rust-socket2" ,rust-socket2-0.3)
+        ("rust-tokio" ,rust-tokio-0.2)
+        ("rust-url" ,rust-url-2))
+       #:cargo-development-inputs
+       (("rust-env-logger" ,rust-env-logger-0.7)
+        ("rust-futures" ,rust-futures-0.3)
+        ("rust-tokio" ,rust-tokio-0.2))))))
+
+(define-public rust-trust-dns-proto-0.7
+  (package
+    (inherit rust-trust-dns-proto-0.19)
+    (name "rust-trust-dns-proto")
+    (version "0.7.4")
     (source
       (origin
         (method url-fetch)
-        (uri (crate-uri "try_from" version))
-        (file-name (string-append name "-" version ".crate"))
+        (uri (crate-uri "trust-dns-proto" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "12wdd4ja7047sd3rx70hv2056hyc8gcdllcx3a41g1rnw64kng98"))))
+          "0099dm57nnizx4apik9sh3mnvr7rp9mivc903v8xss13dkgynnam"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-byteorder" ,rust-byteorder-1)
+        ("rust-data-encoding" ,rust-data-encoding-2)
+        ("rust-enum-as-inner" ,rust-enum-as-inner-0.2)
+        ("rust-failure" ,rust-failure-0.1)
+        ("rust-futures" ,rust-futures-0.1)
+        ("rust-idna" ,rust-idna-0.1)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-openssl" ,rust-openssl-0.10)
+        ("rust-rand" ,rust-rand-0.6)
+        ("rust-ring" ,rust-ring-0.14)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-smallvec" ,rust-smallvec-0.6)
+        ("rust-socket2" ,rust-socket2-0.3)
+        ("rust-tokio-executor" ,rust-tokio-executor-0.1)
+        ("rust-tokio-io" ,rust-tokio-io-0.1)
+        ("rust-tokio-reactor" ,rust-tokio-reactor-0.1)
+        ("rust-tokio-tcp" ,rust-tokio-tcp-0.1)
+        ("rust-tokio-timer" ,rust-tokio-timer-0.2)
+        ("rust-tokio-udp" ,rust-tokio-udp-0.1)
+        ("rust-untrusted" ,rust-untrusted-0.6)
+        ("rust-url" ,rust-url-1))
+       #:cargo-development-inputs
+       (("rust-env-logger" ,rust-env-logger-0.6)
+        ("rust-tokio" ,rust-tokio-0.1))))))
+
+(define-public rust-trust-dns-resolver-0.19
+  (package
+    (name "rust-trust-dns-resolver")
+    (version "0.19.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "trust-dns-resolver" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0xqv31gndybcrr5gi6jjp47qcvdxsc147s69a0y0nc6qqgyws8qg"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #false                  ;network unreachable
+       #:cargo-inputs
+       (("rust-backtrace" ,rust-backtrace-0.3)
+        ("rust-cfg-if" ,rust-cfg-if-0.1)
+        ("rust-futures" ,rust-futures-0.3)
+        ("rust-ipconfig" ,rust-ipconfig-0.2)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-lru-cache" ,rust-lru-cache-0.1)
+        ("rust-resolv-conf" ,rust-resolv-conf-0.6)
+        ("rust-rustls" ,rust-rustls-0.17)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-smallvec" ,rust-smallvec-1)
+        ("rust-thiserror" ,rust-thiserror-1)
+        ("rust-tokio" ,rust-tokio-0.2)
+        ("rust-tokio-openssl" ,rust-tokio-openssl-0.4)
+        ("rust-tokio-rustls" ,rust-tokio-rustls-0.13)
+        ("rust-tokio-tls" ,rust-tokio-tls-0.3)
+        ("rust-trust-dns-https" ,rust-trust-dns-https-0.19)
+        ("rust-trust-dns-native-tls" ,rust-trust-dns-native-tls-0.19)
+        ("rust-trust-dns-openssl" ,rust-trust-dns-openssl-0.19)
+        ("rust-trust-dns-proto" ,rust-trust-dns-proto-0.19)
+        ("rust-trust-dns-rustls" ,rust-trust-dns-rustls-0.19)
+        ("rust-webpki-roots" ,rust-webpki-roots-0.19))
+       #:cargo-development-inputs
+       (("rust-env-logger" ,rust-env-logger-0.7)
+        ("rust-futures" ,rust-futures-0.3))))
+    (home-page "http://www.trust-dns.org/index.html")
+    (synopsis "Safe and secure DNS library")
+    (description "Trust-DNS is a safe and secure DNS library.  This Resolver
+library uses the Client library to perform all DNS queries.  The Resolver is
+intended to be a high-level library for any DNS record resolution see Resolver
+and AsyncResolver for supported resolution types.  The Client can be used for
+other queries.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-trust-dns-resolver-0.18
+  (package
+    (inherit rust-trust-dns-resolver-0.19)
+    (name "rust-trust-dns-resolver")
+    (version "0.18.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "trust-dns-resolver" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0cldg6y937il4kjk7rirgfhmk0chz41w7qys9h96skaznh4dzmvj"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #false                  ;network unreachable
+       #:cargo-inputs
+       (("rust-cfg-if" ,rust-cfg-if-0.1)
+        ("rust-failure" ,rust-failure-0.1)
+        ("rust-futures" ,rust-futures-0.3)
+        ("rust-ipconfig" ,rust-ipconfig-0.2)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-lru-cache" ,rust-lru-cache-0.1)
+        ("rust-resolv-conf" ,rust-resolv-conf-0.6)
+        ("rust-rustls" ,rust-rustls-0.16)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-smallvec" ,rust-smallvec-1)
+        ("rust-tokio" ,rust-tokio-0.2)
+        ("rust-trust-dns-https" ,rust-trust-dns-https-0.18)
+        ("rust-trust-dns-native-tls" ,rust-trust-dns-native-tls-0.18)
+        ("rust-trust-dns-openssl" ,rust-trust-dns-openssl-0.18)
+        ("rust-trust-dns-proto" ,rust-trust-dns-proto-0.18)
+        ("rust-trust-dns-rustls" ,rust-trust-dns-rustls-0.18)
+        ("rust-webpki-roots" ,rust-webpki-roots-0.18))
+       #:cargo-development-inputs
+       (("rust-env-logger" ,rust-env-logger-0.7)
+        ("rust-futures" ,rust-futures-0.3))))))
+
+(define-public rust-trust-dns-resolver-0.11
+  (package
+    (inherit rust-trust-dns-resolver-0.19)
+    (name "rust-trust-dns-resolver")
+    (version "0.11.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "trust-dns-resolver" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0fd0w2zsdwlsag27fsg0fzyd7j7niw0r22rwh2c5fdmsipjr56bc"))))
+    (arguments
+     `(#:tests? #false                  ;networking failures
+       #:cargo-inputs
+       (("rust-cfg-if" ,rust-cfg-if-0.1)
+        ("rust-failure" ,rust-failure-0.1)
+        ("rust-futures" ,rust-futures-0.1)
+        ("rust-ipconfig" ,rust-ipconfig-0.2)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-lru-cache" ,rust-lru-cache-0.1)
+        ("rust-resolv-conf" ,rust-resolv-conf-0.6)
+        ("rust-rustls" ,rust-rustls-0.15)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-smallvec" ,rust-smallvec-0.6)
+        ("rust-tokio" ,rust-tokio-0.1)
+        ("rust-tokio-executor" ,rust-tokio-executor-0.1)
+        ("rust-trust-dns-https" ,rust-trust-dns-https-0.3)
+        ("rust-trust-dns-native-tls" ,rust-trust-dns-native-tls-0.6)
+        ("rust-trust-dns-openssl" ,rust-trust-dns-openssl-0.6)
+        ("rust-trust-dns-proto" ,rust-trust-dns-proto-0.7)
+        ("rust-trust-dns-rustls" ,rust-trust-dns-rustls-0.6)
+        ("rust-webpki-roots" ,rust-webpki-roots-0.16))))))
+
+(define-public rust-trust-dns-rustls-0.19
+  (package
+    (name "rust-trust-dns-rustls")
+    (version "0.19.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "trust-dns-rustls" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1hj4fx2x4ncj7v8pf6bbn7634zq76hjigm1s2h6b6yjzzmz4yprn"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #false                  ;missing file
+       #:cargo-inputs
+       (("rust-futures" ,rust-futures-0.3)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-rustls" ,rust-rustls-0.17)
+        ("rust-tokio" ,rust-tokio-0.2)
+        ("rust-tokio-rustls" ,rust-tokio-rustls-0.13)
+        ("rust-trust-dns-proto" ,rust-trust-dns-proto-0.19)
+        ("rust-webpki" ,rust-webpki-0.21))
+       #:cargo-development-inputs
+       (("rust-openssl" ,rust-openssl-0.10))))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("openssl" ,openssl)))
+    (home-page "http://www.trust-dns.org/index.html")
+    (synopsis "rustls extension for the Trust-DNS client")
+    (description "Trust-DNS is a safe and secure DNS library.  This is an
+extension for the Trust-DNS client to use rustls for TLS.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-trust-dns-rustls-0.18
+  (package
+    (inherit rust-trust-dns-rustls-0.19)
+    (name "rust-trust-dns-rustls")
+    (version "0.18.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "trust-dns-rustls" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "19vhb0xsyr0wy4p0liwhv4rqmwv6szfmmid6439gq7wah1x1hzp4"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #false                  ;missing file
+       #:cargo-inputs
+       (("rust-futures" ,rust-futures-0.3)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-rustls" ,rust-rustls-0.16)
+        ("rust-tokio" ,rust-tokio-0.2)
+        ("rust-tokio-rustls" ,rust-tokio-rustls-0.12)
+        ("rust-trust-dns-proto" ,rust-trust-dns-proto-0.18)
+        ("rust-webpki" ,rust-webpki-0.21))
+       #:cargo-development-inputs
+       (("rust-openssl" ,rust-openssl-0.10))))))
+
+(define-public rust-trust-dns-rustls-0.6
+  (package
+    (inherit rust-trust-dns-rustls-0.19)
+    (name "rust-trust-dns-rustls")
+    (version "0.6.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "trust-dns-rustls" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0vbh2y7w2s5gcw33fn4hb5f927kgjm6603vw63slg9riikmsiq43"))))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("openssl" ,openssl)))
+    (arguments
+     `(#:cargo-test-flags
+       '("--release" "--" "--skip=tests::test_tls_client_stream_ipv4")
+       #:cargo-inputs
+       (("rust-futures" ,rust-futures-0.1)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-rustls" ,rust-rustls-0.15)
+        ("rust-tokio-rustls" ,rust-tokio-rustls-0.9)
+        ("rust-tokio-tcp" ,rust-tokio-tcp-0.1)
+        ("rust-trust-dns-proto" ,rust-trust-dns-proto-0.7)
+        ("rust-webpki" ,rust-webpki-0.19))
+       #:cargo-development-inputs
+       (("rust-openssl" ,rust-openssl-0.10)
+        ("rust-tokio" ,rust-tokio-0.1))))))
+
+(define-public rust-try-from-0.3
+  (package
+    (name "rust-try-from")
+    (version "0.3.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "try_from" version))
+       (file-name (string-append name "-" version ".crate"))
+       (sha256
+        (base32
+         "12wdd4ja7047sd3rx70hv2056hyc8gcdllcx3a41g1rnw64kng98"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -27489,10 +38690,10 @@ serializing Rust str")
      "This package provides a lightweight atomic lock.")
     (license license:expat)))
 
-(define-public rust-trybuild-1.0
+(define-public rust-trybuild-1
   (package
     (name "rust-trybuild")
-    (version "1.0.23")
+    (version "1.0.38")
     (source
      (origin
        (method url-fetch)
@@ -27501,7 +38702,7 @@ serializing Rust str")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "080j808nv6nyr1mmw23vwdp4rkk7r38nmms850rih8lsclc1pzr6"))))
+         "0l5kicbqkk8b9grdg5l2f2w9l47h0s1kjnv6lywvwk292236zc0p"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -27518,6 +38719,37 @@ serializing Rust str")
      "Test harness for ui tests of compiler diagnostics.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-tuikit-0.2
+  (package
+    (name "rust-tuikit")
+    (version "0.2.9")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "tuikit" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "19f3jp12kqcx7aaykxbaj1j17zahd4drv049agpxaminr63w2sw4"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f  ; tests fail in the build environment.
+       #:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-nix" ,rust-nix-0.14)
+        ("rust-term" ,rust-term-0.5)
+        ("rust-unicode-width" ,rust-unicode-width-0.1))
+       #:cargo-development-inputs
+       (("rust-env-logger" ,rust-env-logger-0.6))))
+    (home-page "https://github.com/lotabout/tuikit")
+    (synopsis "Toolkit for writing TUI applications")
+    (description
+     "This package provides a toolkit for writing TUI applications in Rust.")
+    (license license:expat)))
+
 (define-public rust-typeable-0.1
   (package
     (name "rust-typeable")
@@ -27557,6 +38789,52 @@ serializing Rust str")
      "The arena, a fast but limited type of allocator.")
     (license license:expat)))
 
+(define-public rust-typed-headers-0.2
+  (package
+    (name "rust-typed-headers")
+    (version "0.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "typed-headers" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0jm2xzvvml3a9hhvzf9q4v22l5ifrxrx2kspy7aymknckqgacy9i"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-base64" ,rust-base64-0.11)
+        ("rust-bytes" ,rust-bytes-0.5)
+        ("rust-chrono" ,rust-chrono-0.4)
+        ("rust-http" ,rust-http-0.2)
+        ("rust-mime" ,rust-mime-0.3))))
+    (home-page "https://github.com/sfackler/typed-headers")
+    (synopsis "Typed HTTP header serialization and deserialization")
+    (description "This package provides typed HTTP header serialization and
+deserialization.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-typed-headers-0.1
+  (package
+    (inherit rust-typed-headers-0.2)
+    (name "rust-typed-headers")
+    (version "0.1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "typed-headers" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0g40nlq5iw0zxhwb7nfmfbr9m86abgwwhxwhzrm10nfq6bsmlvxx"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-base64" ,rust-base64-0.10)
+        ("rust-bytes" ,rust-bytes-0.4)
+        ("rust-chrono" ,rust-chrono-0.4)
+        ("rust-http" ,rust-http-0.1)
+        ("rust-mime" ,rust-mime-0.3))))))
+
 (define-public rust-typemap-0.3
   (package
     (name "rust-typemap")
@@ -27670,6 +38948,95 @@ with the Unicode character database.")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-uds-windows-0.1
+  (package
+    (name "rust-uds-windows")
+    (version "0.1.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "uds-windows" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0mdv9xyrf8z8zr2py5drbilkncgrkg61axq6h7hcvgggklv9f14z"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-kernel32-sys" ,rust-kernel32-sys-0.2)
+        ("rust-tempdir" ,rust-tempdir-0.3)
+        ("rust-winapi" ,rust-winapi-0.2)
+        ("rust-ws2-32-sys" ,rust-ws2-32-sys-0.2))))
+    (home-page "https://github.com/haraldh/rust_uds_windows")
+    (synopsis "Unix Domain Sockets for Windows")
+    (description "This library integrates Unix Domain Sockets on Windows.")
+    (license license:expat)))
+
+(define-public rust-ufmt-0.1
+  (package
+    (name "rust-ufmt")
+    (version "0.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "ufmt" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1844qwbmc4m69nfi6xmdcdf4fmjjvypi9rpfg3wgilvrxykwwzif"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-proc-macro-hack" ,rust-proc-macro-hack-0.5)
+        ("rust-ufmt-macros" ,rust-ufmt-macros-0.1)
+        ("rust-ufmt-write" ,rust-ufmt-write-0.1))))
+    (home-page "https://crates.io/crates/ufmt")
+    (synopsis "Faster and panic-free alternative to @code{core::fmt}")
+    (description "This package provides a (6-40x) smaller, (2-9x) faster and
+panic-free alternative to @code{core::fmt}.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-ufmt-macros-0.1
+  (package
+    (name "rust-ufmt-macros")
+    (version "0.1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "ufmt-macros" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0sf0z9f6kjw5h15xd1hlj46dgri59lqwin1fxrcdradzl8s3x0gd"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-proc-macro-hack" ,rust-proc-macro-hack-0.5)
+        ("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-1))))
+    (home-page "https://github.com/japaric/ufmt")
+    (synopsis "μfmt macros")
+    (description "This package provides μfmt macros.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-ufmt-write-0.1
+  (package
+    (name "rust-ufmt-write")
+    (version "0.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "ufmt-write" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0sdx0r6ah9xr3nydrqxj01v25sb956c0jk5rqf6f5i9fnkb2wyp8"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/japaric/ufmt")
+    (synopsis "μfmt's uWrite trait")
+    (description "This package provides @code{μfmt}'s @code{uWrite} trait.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-unchecked-index-0.2
   (package
     (name "rust-unchecked-index")
@@ -27691,6 +39058,148 @@ with the Unicode character database.")
      "Unchecked indexing wrapper using regular index syntax.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-unic-char-property-0.9
+  (package
+    (name "rust-unic-char-property")
+    (version "0.9.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "unic-char-property" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "08g21dn3wwix3ycfl0vrbahn0835nv2q3swm8wms0vwvgm07mid8"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-unic-char-range" ,rust-unic-char-range-0.9))))
+    (home-page "https://github.com/open-i18n/rust-unic/")
+    (synopsis "Character property taxonomy, contracts and macros for UNIC")
+    (description
+     "This package provides character property taxonomy, contracts and
+build macros for the Unicode and Internationalization Crates (UNIC)
+project.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-unic-char-range-0.9
+  (package
+    (name "rust-unic-char-range")
+    (version "0.9.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "unic-char-range" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1g0z7iwvjhqspi6194zsff8vy6i3921hpqcrp3v1813hbwnh5603"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-rayon" ,rust-rayon-1))))
+    (home-page "https://github.com/open-i18n/rust-unic/")
+    (synopsis "Character range and iteration for UNIC")
+    (description
+     "This package provides Unicode character range and iteration for
+the Unicode and Internationalization Crates (UNIC) project.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-unic-common-0.9
+  (package
+    (name "rust-unic-common")
+    (version "0.9.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "unic-common" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1g1mm954m0zr497dl4kx3vr09yaly290zs33bbl4wrbaba1gzmw0"))))
+    (build-system cargo-build-system)
+    (arguments `(#:skip-build? #t))
+    (home-page "https://github.com/open-i18n/rust-unic/")
+    (synopsis "Common utilities for UNIC")
+    (description
+     "This package provides common utilities for the Unicode and
+Internationalization Crates (UNIC) project.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-unic-segment-0.9
+  (package
+    (name "rust-unic-segment")
+    (version "0.9.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "unic-segment" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "08wgz2q6vrdvmbd23kf9pbg8cyzm5q8hq9spc4blzy2ppqk5vvg4"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-unic-ucd-segment" ,rust-unic-ucd-segment-0.9))))
+    (home-page "https://github.com/open-i18n/rust-unic/")
+    (synopsis "Text segmentation algorithmes for UNIC")
+    (description
+     "This UNIC component implements algorithms from Unicode Standard
+Annex #29 - Unicode Text Segmentation, used for detecting boundaries
+of text element boundaries, such as user-perceived characters (a.k.a.
+grapheme clusters), words, and sentences.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-unic-ucd-segment-0.9
+  (package
+    (name "rust-unic-ucd-segment")
+    (version "0.9.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "unic-ucd-segment" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0027lczcg0r401g6fnzm2bq9fxhgxvri1nlryhhv8192lqic2y90"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-unic-char-property" ,rust-unic-char-property-0.9)
+        ("rust-unic-char-range" ,rust-unic-char-range-0.9)
+        ("rust-unic-ucd-version" ,rust-unic-ucd-version-0.9))))
+    (home-page "https://github.com/open-i18n/rust-unic/")
+    (synopsis "Segmentation properties for the UNIC Unicode character database")
+    (description
+     "This package provides segmentation properties in the Unicode
+character database for the Unicode and Internationalization
+Crates (UNIC) project.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-unic-ucd-version-0.9
+  (package
+    (name "rust-unic-ucd-version")
+    (version "0.9.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "unic-ucd-version" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1i5hnzpfnxkp4ijfk8kvhpvj84bij575ybqx1b6hyigy6wi2zgcn"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-unic-common" ,rust-unic-common-0.9))))
+    (home-page "https://github.com/open-i18n/rust-unic/")
+    (synopsis "Unicode character database for UNIC")
+    (description
+     "This package provides a Unicode character database for the
+Unicode and Internationalization Crates (UNIC) project.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-unicase-2
   (package
     (name "rust-unicase")
@@ -27789,10 +39298,10 @@ including Canonical and Compatible Decomposition and Recomposition, as
 described in Unicode Standard Annex #15.")
     (license (list license:expat license:asl2.0))))
 
-(define-public rust-unicode-segmentation-1.6
+(define-public rust-unicode-segmentation-1
   (package
     (name "rust-unicode-segmentation")
-    (version "1.6.0")
+    (version "1.7.1")
     (source
      (origin
        (method url-fetch)
@@ -27801,11 +39310,12 @@ described in Unicode Standard Annex #15.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1h7d48mzpi8hwf5cvnq07warkv86pvapzzzf32hvbjsk20yiagp8"))))
+         "15n736z0pbj30pj44jb9s9rjavzrmx8v8pzdgsl5yfmfwrxjw3dv"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-development-inputs
-       (("rust-quickcheck" ,rust-quickcheck-0.7))))
+       (("rust-bencher" ,rust-bencher-0.1)
+        ("rust-quickcheck" ,rust-quickcheck-0.7))))
     (home-page "https://github.com/unicode-rs/unicode-segmentation")
     (synopsis "Grapheme Cluster, Word and Sentence boundaries")
     (description
@@ -27813,38 +39323,23 @@ described in Unicode Standard Annex #15.")
 boundaries according to Unicode Standard Annex #29 rules.")
     (license (list license:expat license:asl2.0))))
 
-(define-public rust-unicode-segmentation-1.3
-  (package
-    (inherit rust-unicode-segmentation-1.6)
-    (name "rust-unicode-segmentation")
-    (version "1.3.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "unicode-segmentation" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32
-         "1a9jqg7rb1yq6w2xc9jgxcs111yk5vxm9afjfvykfnrmzk6z8rqr"))))))
-
 (define-public rust-unicode-width-0.1
   (package
     (name "rust-unicode-width")
-    (version "0.1.7")
+    (version "0.1.8")
     (source
       (origin
         (method url-fetch)
         (uri (crate-uri "unicode-width" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "0yflmxkxmm89ckrb3sz58whn491aycrj8cxra0hzzlb72x9rvana"))))
+          "1qxizyi6xbcqyi4z79p523ywvmgsfcgfqb3zv3c8i6x1jcc5jdwk"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-compiler-builtins" ,rust-compiler-builtins-0.1)
-        ("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1.0)
+        ("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1)
         ("rust-rustc-std-workspace-std" ,rust-rustc-std-workspace-std-1.0))))
     (home-page "https://github.com/unicode-rs/unicode-width")
     (synopsis "Determine displayed width according to Unicode rules")
@@ -27905,14 +39400,14 @@ or XID_Continue properties according to Unicode Standard Annex #31.")
 (define-public rust-unindent-0.1
   (package
     (name "rust-unindent")
-    (version "0.1.6")
+    (version "0.1.7")
     (source
       (origin
         (method url-fetch)
         (uri (crate-uri "unindent" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
-         (base32 "0hl9l4w9mhv5qacx7cirm6rarrphw35b5syw2plx13vz884dfhdg"))))
+         (base32 "1is1gmx1l89z426rn3xsi0mii4vhy2imhqmhx8x2pd8mji6y0kpi"))))
     (build-system cargo-build-system)
     (home-page "https://github.com/dtolnay/indoc")
     (synopsis "Remove a column of leading whitespace from a string")
@@ -27921,6 +39416,28 @@ whitespace from a string.")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-universal-hash-0.4
+  (package
+    (name "rust-universal-hash")
+    (version "0.4.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "universal-hash" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "00hljq64l0p68yrncvyww4cdgkzpzl49vrlnj57kwblkak3b49l3"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-generic-array" ,rust-generic-array-0.14)
+        ("rust-subtle" ,rust-subtle-2))))
+    (home-page "https://github.com/RustCrypto/traits")
+    (synopsis "Trait for universal hash functions")
+    (description "This package provides traits for universal hash functions.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-unix-socket-0.5
   (package
     (name "rust-unix-socket")
@@ -28022,10 +39539,10 @@ untrusted inputs in Rust.")
        (sha256
         (base32 "0byf88b7ca1kb5aap8f6npp6xncvg95dnma8ipmnmd4n9r5izkam"))))))
 
-(define-public rust-url-2.1
+(define-public rust-url-2
   (package
     (name "rust-url")
-    (version "2.1.1")
+    (version "2.2.0")
     (source
      (origin
        (method url-fetch)
@@ -28034,14 +39551,15 @@ untrusted inputs in Rust.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1jw7cw8br4xvjb92ddrrh1r7jvqhyhiknnnfpgq9np63fs24m7c2"))))
+         "0vlpd0c7y9yv4x5vmb6qlnkxkj63r20wv2rysyg48l3kh6qg42ar"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
-       (("rust-idna" ,rust-idna-0.2)
+       (("rust-form-urlencoded" ,rust-form-urlencoded-1)
+        ("rust-idna" ,rust-idna-0.2)
         ("rust-matches" ,rust-matches-0.1)
-        ("rust-percent-encoding" ,rust-percent-encoding-2.1)
+        ("rust-percent-encoding" ,rust-percent-encoding-2)
         ("rust-serde" ,rust-serde-1))
        #:cargo-development-inputs
        (("rust-bencher" ,rust-bencher-0.1)
@@ -28053,9 +39571,9 @@ untrusted inputs in Rust.")
      "URL library for Rust, based on the WHATWG URL Standard.")
     (license (list license:asl2.0 license:expat))))
 
-(define-public rust-url-1.7
+(define-public rust-url-1
   (package
-    (inherit rust-url-2.1)
+    (inherit rust-url-2)
     (name "rust-url")
     (version "1.7.2")
     (source
@@ -28244,10 +39762,29 @@ Unix users and groups.")
      `(#:cargo-development-inputs
        (("rust-quickcheck" ,rust-quickcheck-0.2))))))
 
-(define-public rust-utf8parse-0.1
+(define-public rust-utf8-width-0.1
+  (package
+    (name "rust-utf8-width")
+    (version "0.1.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "utf8-width" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1ylf5mvzck81iszchxyqmhwimkcdqv7jhazvd454g911cchsqwch"))))
+    (build-system cargo-build-system)
+    (home-page "https://magiclen.org/utf8-width")
+    (synopsis "Determine the width of a UTF-8 character")
+    (description
+     "This package determines the width of a UTF-8 character by providing its
+first byte.")
+    (license license:expat)))
+
+(define-public rust-utf8parse-0.2
   (package
     (name "rust-utf8parse")
-    (version "0.1.1")
+    (version "0.2.0")
     (source
      (origin
        (method url-fetch)
@@ -28256,13 +39793,28 @@ Unix users and groups.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0zamsj2986shm4x9zncjf2m5qy9scaw7qnxw4f89b2afpg6a8wl7"))))
+         "0wjkvy22cxg023vkmvq2wwkgqyqam0d4pjld3m13blfg594lnvlk"))))
     (build-system cargo-build-system)
     (home-page "https://github.com/jwilm/vte")
     (synopsis "Table-driven UTF-8 parser")
     (description "This package provides a table-driven UTF-8 parser.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-utf8parse-0.1
+  (package
+    (inherit rust-utf8parse-0.2)
+    (name "rust-utf8parse")
+    (version "0.1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "utf8parse" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0zamsj2986shm4x9zncjf2m5qy9scaw7qnxw4f89b2afpg6a8wl7"))))))
+
 (define-public rust-uuid-0.8
   (package
     (name "rust-uuid")
@@ -28285,7 +39837,7 @@ Unix users and groups.")
         ("rust-md5" ,rust-md5-0.6)
         ("rust-rand" ,rust-rand-0.7)
         ("rust-serde" ,rust-serde-1)
-        ("rust-slog" ,rust-slog-2.5))))
+        ("rust-slog" ,rust-slog-2))))
     (home-page "https://github.com/uuid-rs/uuid")
     (synopsis "Library to generate and parse UUIDs")
     (description
@@ -28309,12 +39861,12 @@ Unix users and groups.")
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
-       (("rust-byteorder" ,rust-byteorder-1.3)
+       (("rust-byteorder" ,rust-byteorder-1)
         ("rust-md5" ,rust-md5-0.6)
         ("rust-rand" ,rust-rand-0.6)
         ("rust-serde" ,rust-serde-1)
         ("rust-sha1" ,rust-sha1-0.6)
-        ("rust-slog" ,rust-slog-2.4)
+        ("rust-slog" ,rust-slog-2)
         ("rust-winapi" ,rust-winapi-0.3))
        #:cargo-development-inputs
        (("rust-bincode" ,rust-bincode-1)
@@ -28352,7 +39904,7 @@ Unix users and groups.")
 (define-public rust-vcpkg-0.2
   (package
     (name "rust-vcpkg")
-    (version "0.2.10")
+    (version "0.2.11")
     (source
       (origin
         (method url-fetch)
@@ -28360,7 +39912,7 @@ Unix users and groups.")
         (file-name (string-append name "-" version ".crate"))
         (sha256
          (base32
-          "132hlmsc4maava91vl4lh677sl1c7vr8ccl53fnr5w41y6dh4m34"))))
+          "1yvrd2b97j4hv5bfhcj3al0dpkbzkdsr6dclxqz3zqm50rhwl2xh"))))
     (build-system cargo-build-system)
     (arguments
      `(#:tests? #f      ; Tests want mysql, harfbuzz, graphite2.
@@ -28375,6 +39927,24 @@ Unix users and groups.")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-vec-arena-1
+  (package
+    (name "rust-vec-arena")
+    (version "1.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "vec-arena" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "07866gmvn4cf2656bjf75nrmbnw4cj0cyqkv2wlmavzw5ndipz7a"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/smol-rs/vec-arena")
+    (synopsis "Simple object arena")
+    (description
+     "This package provides a simple object arena.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-vec-map-0.8
   (package
     (name "rust-vec-map")
@@ -28486,6 +40056,26 @@ If that fails, no determination is made, and calls return None.")
          (base32
           "1pf91pvj8n6akh7w6j5ypka6aqz08b3qpzgs0ak2kjf4frkiljwi"))))))
 
+(define-public rust-version-compare-0.0
+  (package
+    (name "rust-version-compare")
+    (version "0.0.11")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "version-compare" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "06v688jg6gd00zvm3cp7qh2h3mz8cs2ngr09bnwxhyddxrcwh60w"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/timvisee/version-compare")
+    (synopsis "Rust library to easily compare version numbers")
+    (description
+     "This package provides a Rust library to easily compare version
+numbers, and test them against various comparison operators.")
+    (license license:expat)))
+
 (define-public rust-version-sync-0.8
   (package
     (name "rust-version-sync")
@@ -28510,7 +40100,7 @@ If that fails, no determination is made, and calls return None.")
         ("rust-semver-parser" ,rust-semver-parser-0.9)
         ("rust-syn" ,rust-syn-0.15)
         ("rust-toml" ,rust-toml-0.5)
-        ("rust-url" ,rust-url-1.7))))
+        ("rust-url" ,rust-url-1))))
     (home-page "https://github.com/mgeisler/version-sync")
     (synopsis
      "Ensure that version numbers are updated when the crate version changes")
@@ -28519,6 +40109,36 @@ If that fails, no determination is made, and calls return None.")
 updated when the crate version changes.")
     (license license:expat)))
 
+(define-public rust-version-sync-0.6
+  (package
+    (inherit rust-version-sync-0.8)
+    (name "rust-version-sync")
+    (version "0.6.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "version-sync" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0n33s4s4k9sy7rhlrf9lwwyqkjrgwnpfjsz0xzhfh3d3w33jaiq8"))
+        (modules '((guix build utils)))
+        (snippet
+         '(begin (substitute* "Cargo.toml"
+                   (("~1.1") "1.1"))
+                 #t))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-itertools" ,rust-itertools-0.7)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-pulldown-cmark" ,rust-pulldown-cmark-0.1)
+        ("rust-regex" ,rust-regex-1)
+        ("rust-semver-parser" ,rust-semver-parser-0.9)
+        ("rust-syn" ,rust-syn-0.15)
+        ("rust-toml" ,rust-toml-0.4)
+        ("rust-url" ,rust-url-1))))))
+
 (define-public rust-void-1
   (package
     (name "rust-void")
@@ -28634,6 +40254,25 @@ updated when the crate version changes.")
 specified across Unix and Windows platforms.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-waker-fn-1
+  (package
+    (name "rust-waker-fn")
+    (version "1.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "waker-fn" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1jpfiis0frk2b36krqvk8264kgxk2dyhfzjsr8g3wah1nii2qnwx"))))
+    (build-system cargo-build-system)
+    ;; (arguments `(#:skip-build? #t))
+    (home-page "https://github.com/stjepang/waker-fn")
+    (synopsis "Convert closures into wakers")
+    (description
+     "This package converts closures into wakers.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-walkdir-2
   (package
     (name "rust-walkdir")
@@ -28653,7 +40292,7 @@ specified across Unix and Windows platforms.")
        #:cargo-inputs
        (("rust-winapi-util" ,rust-winapi-util-0.1)
         ("rust-winapi" ,rust-winapi-0.3)
-        ("rust-same-file" ,rust-same-file-1.0))))
+        ("rust-same-file" ,rust-same-file-1))))
     (home-page "https://github.com/BurntSushi/walkdir")
     (synopsis "Recursively walk a directory")
     (description "Recursively walk a directory.")
@@ -28684,6 +40323,32 @@ specified across Unix and Windows platforms.")
         ("rust-rand" ,rust-rand-0.3)
         ("rust-rustc-serialize" ,rust-rustc-serialize-0.3))))))
 
+(define-public rust-want-0.3
+  (package
+    (name "rust-want")
+    (version "0.3.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "want" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "181b2zmwfq389x9n2g1n37cvcvvdand832zz6v8i1l8wrdlaks0w"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-log" ,rust-log-0.4)
+        ("rust-try-lock" ,rust-try-lock-0.2))
+       #:cargo-development-inputs
+       (("rust-tokio-executor" ,rust-tokio-executor-0.2)
+        ("rust-tokio-sync" ,rust-tokio-sync-0.2))))
+    (home-page "https://github.com/seanmonstar/want")
+    (synopsis "Detect when another future wants a result")
+    (description "This package lets you detect when another future wants a
+result.")
+    (license license:expat)))
+
 (define-public rust-want-0.2
   (package
     (name "rust-want")
@@ -28725,8 +40390,8 @@ specified across Unix and Windows platforms.")
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-compiler-builtins" ,rust-compiler-builtins-0.1)
-        ("rust-rustc-std-workspace-alloc" ,rust-rustc-std-workspace-alloc-1.0)
-        ("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1.0))))
+        ("rust-rustc-std-workspace-alloc" ,rust-rustc-std-workspace-alloc-1)
+        ("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1))))
     (home-page "https://github.com/bytecodealliance/wasi")
     (synopsis "Experimental WASI API bindings for Rust")
     (description
@@ -28757,7 +40422,7 @@ in Rust.")
 (define-public rust-wasm-bindgen-0.2
   (package
     (name "rust-wasm-bindgen")
-    (version "0.2.60")
+    (version "0.2.69")
     (source
      (origin
        (method url-fetch)
@@ -28766,11 +40431,11 @@ in Rust.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0zx42zryw03w3maz8p65gr5bhhybr2sdzgcck5p3gy47abh7ri9c"))))
+         "0vkkpz290k6pphmrgkayzdvk1dinxrp6c5zvr9l0zjlm2dsn9lrw"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-      (("rust-cfg-if" ,rust-cfg-if-0.1)
+      (("rust-cfg-if" ,rust-cfg-if-1)
        ("rust-serde" ,rust-serde-1)
        ("rust-serde-json" ,rust-serde-json-1)
        ("rust-wasm-bindgen-macro" ,rust-wasm-bindgen-macro-0.2))
@@ -28792,7 +40457,7 @@ in Rust.")
 (define-public rust-wasm-bindgen-backend-0.2
   (package
     (name "rust-wasm-bindgen-backend")
-    (version "0.2.60")
+    (version "0.2.69")
     (source
      (origin
        (method url-fetch)
@@ -28801,7 +40466,7 @@ in Rust.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1k9p8a7ng6nqan0m9555wj936lm2s1qz0fnafclwlv61yrxx6ryr"))))
+         "0qidxjmcn50v2i5hjz7al69sa3mbq0lbi276amdnw47ln6dgh50i"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -28818,10 +40483,36 @@ in Rust.")
      "Backend code generation of the wasm-bindgen tool.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-wasm-bindgen-console-logger-0.1
+  (package
+    (name "rust-wasm-bindgen-console-logger")
+    (version "0.1.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "wasm-bindgen-console-logger" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1vc506dhrk2yl0snkcn45s5adndq9wj7ipxb7awbbxzswxss4c3m"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-log" ,rust-log-0.4)
+        ("rust-wasm-bindgen" ,rust-wasm-bindgen-0.2))))
+    (home-page "https://github.com/blm768/wasm-bindgen-console-logger")
+    (synopsis "Rust log and JavaScript console logging integration")
+    (description
+     "This package provides a logging facility that integrates the
+log crate with JavaScript console logging functions with the help of
+wasm-bindgen.")
+    (license license:cc0)))
+
 (define-public rust-wasm-bindgen-futures-0.4
   (package
     (name "rust-wasm-bindgen-futures")
-    (version "0.4.8")
+    (version "0.4.19")
     (source
      (origin
        (method url-fetch)
@@ -28830,12 +40521,11 @@ in Rust.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1n9ma4kinr4w6r2sh4wm04my6p14k1vx3a4vdbn0vd187sgd9gcb"))))
+         "0d8fg2k4a4xyv28japgld7qzy2zyrnvh582pjkp88id8hmh7bs8z"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-cfg-if" ,rust-cfg-if-0.1)
+     `(#:cargo-inputs
+       (("rust-cfg-if" ,rust-cfg-if-1)
         ("rust-js-sys" ,rust-js-sys-0.3)
         ("rust-wasm-bindgen" ,rust-wasm-bindgen-0.2)
         ("rust-web-sys" ,rust-web-sys-0.3))
@@ -28878,7 +40568,7 @@ in Rust.")
 (define-public rust-wasm-bindgen-macro-0.2
   (package
     (name "rust-wasm-bindgen-macro")
-    (version "0.2.60")
+    (version "0.2.69")
     (source
      (origin
        (method url-fetch)
@@ -28887,7 +40577,7 @@ in Rust.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1973xr0vr2aj85fkp3smk61z5ki7c4fhxlicfjxq3a0y7sv53lcb"))))
+         "113hyzn0dpqasznzcwgmqw03i5yhjkqna7paim50h7xdbscwhsks"))))
     (build-system cargo-build-system)
     (arguments
      `(#:tests? #f      ; 'Async blocks are unstable'
@@ -28896,7 +40586,7 @@ in Rust.")
         ("rust-wasm-bindgen-macro-support"
          ,rust-wasm-bindgen-macro-support-0.2))
        #:cargo-development-inputs
-       (("rust-trybuild" ,rust-trybuild-1.0)
+       (("rust-trybuild" ,rust-trybuild-1)
         ("rust-wasm-bindgen" ,rust-wasm-bindgen-0.2)
         ("rust-wasm-bindgen-futures" ,rust-wasm-bindgen-futures-0.4))))
     (home-page "https://rustwasm.github.io/wasm-bindgen/")
@@ -28909,7 +40599,7 @@ dependency.")
 (define-public rust-wasm-bindgen-macro-support-0.2
   (package
     (name "rust-wasm-bindgen-macro-support")
-    (version "0.2.60")
+    (version "0.2.69")
     (source
      (origin
        (method url-fetch)
@@ -28918,7 +40608,7 @@ dependency.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0ca9bb9hnyzcmjww83x8asb76drf55ijhqv8yrl7igpixqv5p2nn"))))
+         "0jbmgj8zxflza1cl15k3r70fqsak4bkkfbn6qxbhbn4ry9r8r95m"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -28937,7 +40627,7 @@ attribute that is not in the shared backend crate.")
 (define-public rust-wasm-bindgen-shared-0.2
   (package
     (name "rust-wasm-bindgen-shared")
-    (version "0.2.60")
+    (version "0.2.69")
     (source
       (origin
         (method url-fetch)
@@ -28945,7 +40635,7 @@ attribute that is not in the shared backend crate.")
         (file-name (string-append name "-" version ".crate"))
         (sha256
          (base32
-          "0ffn4152w8n629f29lwjgj3adiyixvdbff3mld49gisssbknzxys"))))
+          "0n3ir6gq27np22l6m96y342a6fphk1pkbzbfqx6g364kgzfi2y3y"))))
     (build-system cargo-build-system)
     (home-page "https://rustwasm.github.io/wasm-bindgen/")
     (synopsis "Shared support between wasm-bindgen and wasm-bindgen cli")
@@ -28957,7 +40647,7 @@ attribute that is not in the shared backend crate.")
 (define-public rust-wasm-bindgen-test-0.3
   (package
     (name "rust-wasm-bindgen-test")
-    (version "0.3.8")
+    (version "0.3.19")
     (source
      (origin
        (method url-fetch)
@@ -28966,14 +40656,13 @@ attribute that is not in the shared backend crate.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0bn833hghwbcg9cqz1bx9biq271bc4jcbgn2nqk1fkf4ab1hxzcq"))))
+         "09aas82c1i249bmzjwj9szk727nm4jzaidnwnq4jlycv3w6glm83"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-console-error-panic-hook" ,rust-console-error-panic-hook-0.1)
         ("rust-js-sys" ,rust-js-sys-0.3)
-        ("rust-scoped-tls" ,rust-scoped-tls-1.0)
+        ("rust-scoped-tls" ,rust-scoped-tls-1)
         ("rust-wasm-bindgen" ,rust-wasm-bindgen-0.2)
         ("rust-wasm-bindgen-futures" ,rust-wasm-bindgen-futures-0.4)
         ("rust-wasm-bindgen-test-macro" ,rust-wasm-bindgen-test-macro-0.3))))
@@ -29003,7 +40692,7 @@ attribute that is not in the shared backend crate.")
        (("rust-console-error-panic-hook" ,rust-console-error-panic-hook-0.1)
         ("rust-futures" ,rust-futures-0.1)
         ("rust-js-sys" ,rust-js-sys-0.3)
-        ("rust-scoped-tls" ,rust-scoped-tls-1.0)
+        ("rust-scoped-tls" ,rust-scoped-tls-1)
         ("rust-wasm-bindgen" ,rust-wasm-bindgen-0.2)
         ("rust-wasm-bindgen-futures" ,rust-wasm-bindgen-futures-0.3)
         ("rust-wasm-bindgen-test-macro" ,rust-wasm-bindgen-test-macro-0.2))))))
@@ -29059,7 +40748,7 @@ attribute that is not in the shared backend crate.")
 (define-public rust-wasm-bindgen-test-macro-0.3
   (package
     (name "rust-wasm-bindgen-test-macro")
-    (version "0.3.8")
+    (version "0.3.19")
     (source
      (origin
        (method url-fetch)
@@ -29068,7 +40757,7 @@ attribute that is not in the shared backend crate.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0kybf3shpp8ysz4v4j259d7vad9kw5bs4i4dlfrs895bhdp7m0wp"))))
+         "12s3h3g1f81afv0rk8idgw2mylgh5q6a30wy5yxc4940p537pq17"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -29115,7 +40804,7 @@ attribute that is not in the shared backend crate.")
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
-       (("rust-anyhow" ,rust-anyhow-1.0)
+       (("rust-anyhow" ,rust-anyhow-1)
         ("rust-heck" ,rust-heck-0.3)
         ("rust-log" ,rust-log-0.4)
         ("rust-proc-macro2" ,rust-proc-macro2-1)
@@ -29129,310 +40818,6 @@ attribute that is not in the shared backend crate.")
      "Support for parsing WebIDL specific to wasm-bindgen.")
     (license (list license:expat license:asl2.0))))
 
-(define-public rust-wayland-client-0.23
-  (package
-    (name "rust-wayland-client")
-    (version "0.23.6")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "wayland-client" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32
-         "1nmw2kz70llc5mxwzg6bglnqy0qnyr9224zjmq9czazgw3mq045g"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:cargo-inputs
-       (("rust-bitflags" ,rust-bitflags-1)
-        ("rust-calloop" ,rust-calloop-0.4)
-        ("rust-downcast-rs" ,rust-downcast-rs-1.1)
-        ("rust-libc" ,rust-libc-0.2)
-        ("rust-mio" ,rust-mio-0.6)
-        ("rust-nix" ,rust-nix-0.14)
-        ("rust-wayland-commons" ,rust-wayland-commons-0.23)
-        ("rust-wayland-sys" ,rust-wayland-sys-0.23)
-        ("rust-wayland-scanner" ,rust-wayland-scanner-0.23))
-       #:cargo-development-inputs
-       (("rust-byteorder" ,rust-byteorder-1.3)
-        ("rust-tempfile" ,rust-tempfile-3))))
-    (home-page "https://github.com/smithay/wayland-rs")
-    (synopsis
-     "Rust bindings to the standard C implementation of the wayland protocol")
-    (description
-     "This package provides Rust bindings to the standard C implementation of
-the wayland protocol, client side.")
-    (license license:expat)))
-
-(define-public rust-wayland-client-0.21
-  (package
-    (inherit rust-wayland-client-0.23)
-    (name "rust-wayland-client")
-    (version "0.21.13")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "wayland-client" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32
-         "04r7dy074hhdalsi1day482wvmczr40hg7qvrnzkgxpakrgkx5j9"))))
-    (arguments
-     `(#:cargo-inputs
-       (("rust-bitflags" ,rust-bitflags-1)
-        ("rust-calloop" ,rust-calloop-0.4)
-        ("rust-downcast-rs" ,rust-downcast-rs-1.1)
-        ("rust-libc" ,rust-libc-0.2)
-        ("rust-mio" ,rust-mio-0.6)
-        ("rust-nix" ,rust-nix-0.14)
-        ("rust-wayland-commons" ,rust-wayland-commons-0.21)
-        ("rust-wayland-sys" ,rust-wayland-sys-0.21)
-        ("rust-wayland-scanner" ,rust-wayland-scanner-0.21))
-       #:cargo-development-inputs
-       (("rust-byteorder" ,rust-byteorder-1.3)
-        ("rust-tempfile" ,rust-tempfile-3))))))
-
-(define-public rust-wayland-commons-0.23
-  (package
-    (name "rust-wayland-commons")
-    (version "0.23.6")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "wayland-commons" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32
-         "1nyvcs6xxxzqgh0wvc7z0fgi89bf3h9p4qrbf77bnfbwlb8v0rmv"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:cargo-inputs
-       (("rust-nix" ,rust-nix-0.14)
-        ("rust-wayland-sys" ,rust-wayland-sys-0.23))))
-    (home-page "https://github.com/smithay/wayland-rs")
-    (synopsis
-     "Common types and structures used by wayland-client and wayland-server")
-    (description
-     "Common types and structures used by wayland-client and wayland-server.")
-    (license license:expat)))
-
-(define-public rust-wayland-commons-0.21
-  (package
-    (inherit rust-wayland-commons-0.23)
-    (name "rust-wayland-commons")
-    (version "0.21.13")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "wayland-commons" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32
-         "1v1jpcsnn6cwwy5ii5pdl58i6b9slmi8mn4my4fpwrlbfsb8ih20"))))
-    (arguments
-     `(#:cargo-inputs
-       (("rust-nix" ,rust-nix-0.14)
-        ("rust-wayland-sys" ,rust-wayland-sys-0.21))))))
-
-(define-public rust-wayland-protocols-0.23
-  (package
-    (name "rust-wayland-protocols")
-    (version "0.23.6")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "wayland-protocols" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32
-         "1ygwbzqlnks5xzafka3c8ag6k92g2h6ygj2xsmvjfx2n6rj8dhkc"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:cargo-inputs
-       (("rust-bitflags" ,rust-bitflags-1)
-        ("rust-wayland-client" ,rust-wayland-client-0.23)
-        ("rust-wayland-commons" ,rust-wayland-commons-0.23)
-        ("rust-wayland-server" ,rust-wayland-server-0.23)
-        ("rust-wayland-scanner" ,rust-wayland-scanner-0.23))))
-    (home-page "https://github.com/smithay/wayland-rs")
-    (synopsis
-     "Generated API for the officials wayland protocol extensions")
-    (description
-     "Generated API for the officials wayland protocol extensions.")
-    (license license:expat)))
-
-(define-public rust-wayland-protocols-0.21
-  (package
-    (inherit rust-wayland-protocols-0.23)
-    (name "rust-wayland-protocols")
-    (version "0.21.13")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "wayland-protocols" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32
-         "0i91yh3nxk9llhly2ly3nvlfx0lbpvyq919cgmnyx3j25bmf5zaa"))))
-    (arguments
-     `(#:cargo-inputs
-       (("rust-bitflags" ,rust-bitflags-1)
-        ("rust-wayland-client" ,rust-wayland-client-0.21)
-        ("rust-wayland-commons" ,rust-wayland-commons-0.21)
-        ("rust-wayland-server" ,rust-wayland-server-0.21)
-        ("rust-wayland-sys" ,rust-wayland-sys-0.21)
-        ("rust-wayland-scanner" ,rust-wayland-scanner-0.21))))))
-
-(define-public rust-wayland-scanner-0.23
-  (package
-    (name "rust-wayland-scanner")
-    (version "0.23.6")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "wayland-scanner" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32
-         "0g8wcphykjrcpslznyi3qccx1pckw97rckq5b295nfbg6r3j5c4k"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:cargo-inputs
-       (("rust-proc-macro2" ,rust-proc-macro2-0.4)
-        ("rust-quote" ,rust-quote-0.6)
-        ("rust-xml-rs" ,rust-xml-rs-0.8))))
-    (home-page "https://github.com/smithay/wayland-rs")
-    (synopsis "Generate Rust APIs from XML Wayland protocol files")
-    (description
-     "Wayland Scanner generates Rust APIs from XML Wayland protocol files.
-It is intended for use with wayland-sys.  You should only need this crate if
-you are working on custom Wayland protocol extensions.
-Look at the wayland-client crate for usable bindings.")
-    (license license:expat)))
-
-(define-public rust-wayland-scanner-0.21
-  (package
-    (inherit rust-wayland-scanner-0.23)
-    (name "rust-wayland-scanner")
-    (version "0.21.13")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "wayland-scanner" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32
-         "17mp49v7w0p0x5ry628lj2llljnwkr9aj9g4bqqhfibid32jhf5z"))))))
-
-(define-public rust-wayland-server-0.23
-  (package
-    (name "rust-wayland-server")
-    (version "0.23.6")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "wayland-server" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32
-         "1ccsalq6gnf07klnbjx2dxcbibhw03rqsgi578p913s3zsjlcg8a"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:cargo-inputs
-       (("rust-bitflags" ,rust-bitflags-1)
-        ("rust-calloop" ,rust-calloop-0.4)
-        ("rust-downcast-rs" ,rust-downcast-rs-1.1)
-        ("rust-libc" ,rust-libc-0.2)
-        ("rust-mio" ,rust-mio-0.6)
-        ("rust-nix" ,rust-nix-0.14)
-        ("rust-wayland-commons" ,rust-wayland-commons-0.23)
-        ("rust-wayland-sys" ,rust-wayland-sys-0.23)
-        ("rust-wayland-scanner" ,rust-wayland-scanner-0.23))))
-    (home-page "https://github.com/smithay/wayland-rs")
-    (synopsis
-     "Bindings to the standard C implementation of the wayland protocol")
-    (description
-     "This package provides Rust bindings to the standard C implementation of
-the wayland protocol, server side.")
-    (license license:expat)))
-
-(define-public rust-wayland-server-0.21
-  (package
-    (inherit rust-wayland-server-0.23)
-    (name "rust-wayland-server")
-    (version "0.21.13")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "wayland-server" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32
-         "0ayn4wlrpg0fw04prri9awpkjvbzjil0d3l3a8zs9pdbnspvw6ah"))))
-    (arguments
-     `(#:cargo-inputs
-       (("rust-bitflags" ,rust-bitflags-1)
-        ("rust-calloop" ,rust-calloop-0.4)
-        ("rust-downcast-rs" ,rust-downcast-rs-1.1)
-        ("rust-libc" ,rust-libc-0.2)
-        ("rust-mio" ,rust-mio-0.6)
-        ("rust-nix" ,rust-nix-0.14)
-        ("rust-wayland-commons" ,rust-wayland-commons-0.21)
-        ("rust-wayland-sys" ,rust-wayland-sys-0.21)
-        ("rust-wayland-scanner" ,rust-wayland-scanner-0.21))))))
-
-(define-public rust-wayland-sys-0.23
-  (package
-    (name "rust-wayland-sys")
-    (version "0.23.6")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "wayland-sys" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32
-         "1x2qafvj8hd2x5qfaan2dfpw9amg0f5g9sqrkdy7qvbddsl8jknr"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:cargo-inputs
-       (("rust-dlib" ,rust-dlib-0.4)
-        ("rust-lazy-static" ,rust-lazy-static-1)
-        ("rust-libc" ,rust-libc-0.2))))
-    (home-page "https://github.com/smithay/wayland-rs")
-    (synopsis "FFI bindings to the various libwayland-*.so libraries")
-    (description
-     "FFI bindings to the various libwayland-*.so libraries.
-You should only need this crate if you are working on custom wayland
-protocol extensions.  Look at the crate wayland-client for usable bindings.")
-    (license license:expat)))
-
-(define-public rust-wayland-sys-0.21
-  (package
-    (inherit rust-wayland-sys-0.23)
-    (name "rust-wayland-sys")
-    (version "0.21.13")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "wayland-sys" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32
-         "0a0ndgkg98pvmkv44yya4f7mxzjaxylknqh64bpa05w0azyv02jj"))))))
-
 (define-public rust-web-sys-0.3
   (package
     (name "rust-web-sys")
@@ -29482,10 +40867,32 @@ protocol extensions.  Look at the crate wayland-client for usable bindings.")
        (("rust-base64" ,rust-base64-0.9))))
     (home-page "https://github.com/briansmith/webpki")
     (synopsis "Web PKI X.509 Certificate Verification")
-    (description "This packge provides Web PKI X.509 Certificate
+    (description "This package provides Web PKI X.509 Certificate
 Verification.")
     (license license:isc)))
 
+(define-public rust-webpki-0.19
+  (package
+    (inherit rust-webpki-0.21)
+    (name "rust-webpki")
+    (version "0.19.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "webpki" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "10nhyxlqsa4caxlxrijm5h79rdg6ld8hqy78ldjnnfhaj3biqzjg"))))
+    (arguments
+     `(#:tests? #f  ; tests fail to build "missing file tests/ed25519/ee.der"
+       #:cargo-inputs
+       (("rust-ring" ,rust-ring-0.14)
+        ("rust-untrusted" ,rust-untrusted-0.6))
+       #:cargo-development-inputs
+       (("rust-base64" ,rust-base64-0.9))))))
+
 (define-public rust-webpki-0.18
   (package/inherit rust-webpki-0.21
     (name "rust-webpki")
@@ -29505,25 +40912,56 @@ Verification.")
        #:cargo-development-inputs
        (("rust-base64" ,rust-base64-0.9))))))
 
-(define-public rust-webpki-roots-0.18
+(define-public rust-webpki-roots-0.20
   (package
     (name "rust-webpki-roots")
-    (version "0.18.0")
+    (version "0.20.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "webpki-roots" version))
-      (file-name (string-append name "-" version ".tar.gz"))
-      (sha256
-       (base32 "1d4ss607rgi9pj01zzqa13c1p3m35z314yh6lmjaj4kzvwv5gkci"))))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "17qpmyym1lsi967b4nc3112nb13ism8731bhjqd9hlajafkxw80g"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:cargo-inputs (("rust-webpki" ,rust-webpki-0.21))))
+     `(#:cargo-inputs
+       (("rust-webpki" ,rust-webpki-0.21))))
     (home-page "https://github.com/ctz/webpki-roots")
     (synopsis "Mozilla's CA root certificates for use with webpki")
-    (description "Mozilla's CA root certificates for use with webpki")
+    (description "This package provides Mozilla's CA root certificates for use
+with webpki.")
     (license license:mpl2.0)))
 
+(define-public rust-webpki-roots-0.19
+  (package
+    (inherit rust-webpki-roots-0.20)
+    (name "rust-webpki-roots")
+    (version "0.19.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "webpki-roots" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0fapdqwbfv0kncplpvbgnr0bjd5a9krlpij9jdzk0mvaa6vz9vzq"))))))
+
+(define-public rust-webpki-roots-0.18
+  (package
+    (inherit rust-webpki-roots-0.19)
+    (name "rust-webpki-roots")
+    (version "0.18.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "webpki-roots" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1d4ss607rgi9pj01zzqa13c1p3m35z314yh6lmjaj4kzvwv5gkci"))))))
+
 (define-public rust-webpki-roots-0.17
   (package/inherit rust-webpki-roots-0.18
     (name "rust-webpki-roots")
@@ -29536,6 +40974,25 @@ Verification.")
       (sha256
        (base32 "12vi8dh0yik0h4f0b9dnlw5i3gxyky7iblbksh6zcq4xvlvswqm2"))))))
 
+(define-public rust-webpki-roots-0.16
+  (package
+    (inherit rust-webpki-roots-0.17)
+    (name "rust-webpki-roots")
+    (version "0.16.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "webpki-roots" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "03ny02mwqdgd2ff23k03kbwr2rrcaymxhp7jcjjikfh340hs83y1"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-untrusted" ,rust-untrusted-0.6)
+        ("rust-webpki" ,rust-webpki-0.19))))))
+
 (define-public rust-webpki-roots-0.14
   (package/inherit rust-webpki-roots-0.18
     (name "rust-webpki-roots")
@@ -29574,7 +41031,53 @@ Verification.")
      "This package provides a WebIDL Parser.")
     (license license:expat)))
 
-(define-public rust-which-3.1
+(define-public rust-wepoll-sys-3
+  (package
+    (name "rust-wepoll-sys")
+    (version "3.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "wepoll-sys" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1zvpkr4dz3ny0k20mg1wdlp8vawz5p4gnya7h8j24119m7g19jqg"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #true              ;missing "winsock.h"
+       #:cargo-inputs
+       (("rust-cc" ,rust-cc-1))))
+    (home-page "https://gitlab.com/yorickpeterse/wepoll-sys")
+    (synopsis "Raw bindings to the @code{wepoll} library")
+    (description
+     "This crate provides unsafe Rust bindings to the @code{wepoll} library.")
+    (license license:mpl2.0)))
+
+(define-public rust-wepoll-sys-stjepang-1
+  (package
+    (name "rust-wepoll-sys-stjepang")
+    (version "1.0.8")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "wepoll-sys-stjepang" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "138pxc8k6wayyywnjcpk5nhywk3vk6h4i39fj8khpjlhy81vppqz"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #true              ;missing "winsock.h"
+       #:cargo-inputs
+       (("rust-bindgen" ,rust-bindgen-0.53)
+        ("rust-cc" ,rust-cc-1))))
+    (home-page "https://github.com/stjepang/wepoll-sys-stjepang")
+    (synopsis "Fork of @code{wepoll-sys} with stjepang's patches")
+    (description
+     "This crate provides Rust bindings to @code{wepoll}, generated
+using @code{bindgen}.")
+    (license license:mpl2.0)))
+
+(define-public rust-which-3
   (package
     (name "rust-which")
     (version "3.1.1")
@@ -29600,7 +41103,7 @@ Verification.")
 installed executable in cross platforms.")
     (license license:expat)))
 
-(define-public rust-which-2.0
+(define-public rust-which-2
   (package
     (name "rust-which")
     (version "2.0.1")
@@ -29630,7 +41133,7 @@ Locate installed executable in cross platforms.")
 
 (define-public rust-which-1.0
   (package
-    (inherit rust-which-2.0)
+    (inherit rust-which-2)
     (name "rust-which")
     (version "1.0.5")
     (source
@@ -29649,6 +41152,31 @@ Locate installed executable in cross platforms.")
        #:cargo-development-inputs
        (("rust-tempdir" ,rust-tempdir-0.3))))))
 
+(define-public rust-wide-0.4
+  (package
+    (name "rust-wide")
+    (version "0.4.6")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "wide" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0ad75vnzygj8qfcl1l9n4wi93xmqzvhqlpqn4hfayrwbn6wa69aq"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bytemuck" ,rust-bytemuck-1))))
+    (home-page "https://github.com/Lokathor/wide")
+    (synopsis "Rust for wide blocks")
+    (description "This crate has data types for blocks of primitives packed
+together and used as a single unit.  This works very well with SIMD/vector
+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-widestring-0.4
   (package
     (name "rust-widestring")
@@ -29674,6 +41202,28 @@ UTF-32 types are provided, including support for malformed encoding.")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-wild-2
+  (package
+    (name "rust-wild")
+    (version "2.0.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "wild" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0800hfmb099abwh7gqqbxhlvl7l3g5x681qsy0rm0x2lp2mr6mq3"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-glob" ,rust-glob-0.3))))
+    (home-page "https://lib.rs/crates/wild")
+    (synopsis "Glob (wildcard) expanded command-line arguments")
+    (description
+     "This package allows Rust applications support wildcard arguments on
+command-line, uniformly on all platforms")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-winapi-0.3
   (package
     (name "rust-winapi")
@@ -29823,101 +41373,41 @@ color in a Windows console.")
     (license (list license:unlicense
                    license:expat))))
 
-(define-public rust-winit-0.20
+(define-public rust-win-crypto-ng-0.4
   (package
-    (name "rust-winit")
-    (version "0.20.0-alpha6")
+    (name "rust-win-crypto-ng")
+    (version "0.4.0")
     (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "winit" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32
-         "1g5cchl97zcg525j6jdr77yby8cmhwv1qqwcd3sf4l4zl263195z"))
-       (patches
-         (list
-           (origin
-             (method url-fetch)
-             (uri "https://github.com/rust-windowing/winit/commit/d1c6506865c7bddbb5fb4d80a613e43ddc1370b5.patch")
-             (file-name (string-append name "-fix-bindings.patch"))
-             (sha256
-              (base32
-               "03q4bvdq86kii53d0vsywv08g8vqirf9h1lz2cl6rcc7gjfynpds")))))))
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "win-crypto-ng" version))
+        (file-name (string-append name "-" version ".tar.gz"))
+        (sha256
+          (base32 "0v26ssjip8fdilj1j6csnvcny98gb90ra1qlnm2xwjlgivlr5kr4"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:cargo-inputs
-       (("rust-android-glue" ,rust-android-glue-0.2)
-        ("rust-bitflags" ,rust-bitflags-1)
-        ("rust-calloop" ,rust-calloop-0.4)
-        ("rust-cocoa" ,rust-cocoa-0.19)
-        ("rust-core-foundation" ,rust-core-foundation-0.6)
-        ("rust-core-graphics" ,rust-core-graphics-0.17)
-        ("rust-core-video-sys" ,rust-core-video-sys-0.1)
-        ("rust-dispatch" ,rust-dispatch-0.1)
-        ("rust-instant" ,rust-instant-0.1)
-        ("rust-lazy-static" ,rust-lazy-static-1)
-        ("rust-libc" ,rust-libc-0.2)
-        ("rust-log" ,rust-log-0.4)
-        ("rust-objc" ,rust-objc-0.2)
-        ("rust-parking-lot" ,rust-parking-lot-0.10)
-        ("rust-percent-encoding" ,rust-percent-encoding-2.1)
-        ("rust-raw-window-handle" ,rust-raw-window-handle-0.3)
-        ("rust-serde" ,rust-serde-1)
-        ("rust-smithay-client-toolkit" ,rust-smithay-client-toolkit-0.6)
-        ("rust-stdweb" ,rust-stdweb-0.4)
-        ("rust-wasm-bindgen" ,rust-wasm-bindgen-0.2)
-        ("rust-wayland-client" ,rust-wayland-client-0.23)
-        ("rust-web-sys" ,rust-web-sys-0.3)
-        ("rust-winapi" ,rust-winapi-0.3)
-        ("rust-x11-dl" ,rust-x11-dl-2))
-       #:cargo-development-inputs
-       (("rust-console-log" ,rust-console-log-0.1)
-        ("rust-env-logger" ,rust-env-logger-0.5)
-        ("rust-image" ,rust-image-0.21))))
-    (home-page "https://github.com/rust-windowing/winit")
-    (synopsis
-     "Cross-platform window creation library")
-    (description
-     "Cross-platform window creation library.")
-    (license license:asl2.0)))
-
-(define-public rust-winit-0.19
-  (package
-    (inherit rust-winit-0.20)
-    (name "rust-winit")
-    (version "0.19.5")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "winit" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32
-         "1a4lnfyvlc4jabhs30wlmkgdjv7qhbplmyp833kl7ykjni5yp5hy"))))
-    (arguments
-     `(#:cargo-inputs
-       (("rust-android-glue" ,rust-android-glue-0.2)
-        ("rust-backtrace" ,rust-backtrace-0.3)
-        ("rust-bitflags" ,rust-bitflags-1)
-        ("rust-cocoa" ,rust-cocoa-0.18)
-        ("rust-core-foundation" ,rust-core-foundation-0.6)
-        ("rust-core-graphics" ,rust-core-graphics-0.17)
-        ("rust-image" ,rust-image-0.21)
-        ("rust-lazy-static" ,rust-lazy-static-1)
-        ("rust-libc" ,rust-libc-0.2)
-        ("rust-log" ,rust-log-0.4)
-        ("rust-objc" ,rust-objc-0.2)
-        ("rust-parking-lot" ,rust-parking-lot-0.9)
-        ("rust-percent-encoding" ,rust-percent-encoding-2.1)
-        ("rust-raw-window-handle" ,rust-raw-window-handle-0.3)
-        ("rust-serde" ,rust-serde-1)
-        ("rust-smithay-client-toolkit" ,rust-smithay-client-toolkit-0.4)
-        ("rust-wayland-client" ,rust-wayland-client-0.21)
-        ("rust-winapi" ,rust-winapi-0.3)
-        ("rust-x11-dl" ,rust-x11-dl-2))))))
+      `(#:skip-build? #t
+        #:cargo-inputs
+        (("rust-cipher" ,rust-cipher-0.2)
+         ("rust-doc-comment" ,rust-doc-comment-0.3)
+         ("rust-rand-core" ,rust-rand-core-0.5)
+         ("rust-winapi" ,rust-winapi-0.3)
+         ("rust-zeroize" ,rust-zeroize-1))))
+    (home-page "https://crates.io/crates/win-crypto-ng")
+    (synopsis "Safe bindings to MS Windows Cryptography API Next
+Generation")
+    (description
+      "Cryptography API Next Generation (CNG) are cryptographic
+primitives and utilities provided by the operating system and/or
+hardware.  It is available since Windows Vista and replaces the now
+deprecated CryptoAPI.
+
+The primitives do not depend on OpenSSL or other libraries of the
+sort, they are provided by Microsoft and/or by the hardware
+manufacturer.  They are the primitives used in kernel space programs.
+Therefore, if you are using Microsoft Windows, you already accepted to
+trust these primitives.")
+    (license license:bsd-3)))
 
 (define-public rust-winpty-sys-0.4
   (package
@@ -29943,6 +41433,33 @@ color in a Windows console.")
     (description "Rust winpty bindings.")
     (license license:expat)))
 
+(define-public rust-winreg-0.7
+  (package
+    (name "rust-winreg")
+    (version "0.7.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "winreg" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0sdxcyvda4v1v6a0k1j2v1400z3ng323k9a56gxvkq51x21dn801"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-chrono" ,rust-chrono-0.4)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-winapi" ,rust-winapi-0.3))
+       #:cargo-development-inputs
+       (("rust-rand" ,rust-rand-0.3)
+        ("rust-serde-derive" ,rust-serde-derive-1))))
+    (home-page "https://github.com/gentoo90/winreg-rs")
+    (synopsis "Rust bindings to the MS Windows Registry API")
+    (description "This package provides Rust bindings to MS Windows Registry
+API.")
+    (license license:expat)))
+
 (define-public rust-winreg-0.6
   (package
     (name "rust-winreg")
@@ -30011,85 +41528,64 @@ color in a Windows console.")
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
-       (("rust-winapi" ,rust-winapi-0.2))
-       #:cargo-development-inputs
-       (("rust-winapi-build" ,rust-winapi-build-0.1))))
+       (("rust-winapi" ,rust-winapi-0.2)
+        ("rust-winapi-build" ,rust-winapi-build-0.1))))
     (home-page "https://github.com/retep998/winapi-rs")
     (synopsis "Function definitions for the Windows API library ws2_32")
     (description
      "Contains function definitions for the Windows API library ws2_32.")
     (license license:expat)))
 
-(define-public rust-x11-2
-  (package
-    (name "rust-x11")
-    (version "2.18.1")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "x11" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32
-         "0dg2d0yrqmwg6prpxkw3vpmwzwxnaki2cn0v64ylh5gp4cqpws9r"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:cargo-inputs
-       (("rust-libc" ,rust-libc-0.2)
-        ("rust-pkg-config" ,rust-pkg-config-0.3))))
-    (home-page "https://github.com/erlepereira/x11-rs.git")
-    (synopsis "X11 library bindings for Rust")
-    (description "X11 library bindings for Rust.")
-    (license license:cc0)))
-
-(define-public rust-x11-clipboard-0.4
+(define-public rust-wyz-0.2
   (package
-    (name "rust-x11-clipboard")
-    (version "0.4.0")
+    (name "rust-wyz")
+    (version "0.2.0")
     (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "x11-clipboard" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32
-         "0nqdnswiyj28b1izjp5rzbc67cxpb5c8p4vh1xyndkirzs84vqqk"))))
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "wyz" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "05028bk49b2ix1lz22sj65fnlxr0f29j2klkaqjxp6az3c6hprl5"))))
     (build-system cargo-build-system)
-    (arguments
-     `(#:tests? #f  ; Tests require display server.
-       #:cargo-inputs (("rust-xcb" ,rust-xcb-0.9))))
-    (native-inputs
-     `(("python" ,python)))
-    (home-page "https://github.com/quininer/x11-clipboard")
-    (synopsis "x11 clipboard support for Rust")
-    (description "This package provides x11 clipboard support for Rust.")
+    (home-page "https://myrrlyn.net/crates/wyz")
+    (synopsis "Collection of utility functions")
+    (description
+     "This package provides a collection of utility functions.")
     (license license:expat)))
 
-(define-public rust-x11-dl-2
+(define-public rust-x86-0.33
   (package
-    (name "rust-x11-dl")
-    (version "2.18.5")
+    (name "rust-x86")
+    (version "0.33.0")
     (source
      (origin
        (method url-fetch)
-       (uri (crate-uri "x11-dl" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
+       (uri (crate-uri "x86" version))
+       (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1y7yq4sfvv56shk4v3s7gvlrwk9d0migj622fl4i4c5klpiq3y9b"))))
+        (base32 "0sas98yzn549f5lxswqra2rjdfjxh24f3ndw5dfsnwnm9rlsr1i7"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:cargo-inputs
-       (("rust-lazy-static" ,rust-lazy-static-1)
-        ("rust-libc" ,rust-libc-0.2)
-        ("rust-maybe-uninit" ,rust-maybe-uninit-2.0)
-        ("rust-pkg-config" ,rust-pkg-config-0.3))))
-    (home-page "https://github.com/erlepereira/x11-rs.git")
-    (synopsis "X11 library bindings for Rust")
-    (description "This package provides X11 library bindings for Rust.")
-    (license license:cc0)))
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-bit-field" ,rust-bit-field-0.10)
+        ("rust-bitflags" ,rust-bitflags-1)
+        ("rust-csv" ,rust-csv-1)
+        ("rust-phf" ,rust-phf-0.7)
+        ("rust-phf-codegen" ,rust-phf-codegen-0.7)
+        ("rust-raw-cpuid" ,rust-raw-cpuid-8)
+        ("rust-serde-json" ,rust-serde-json-1))))
+    (home-page "https://github.com/gz/rust-x86")
+    (synopsis "Library to program x86 (amd64) hardware")
+    (description
+     "This is a Library to program x86 (amd64) hardware.  It contains x86
+specific data structure descriptions, data-tables, as well as convenience
+function to call assembly instructions typically not exposed in higher level
+languages.")
+    (license license:expat)))
 
 (define-public rust-xattr-0.2
   (package
@@ -30111,7 +41607,7 @@ color in a Windows console.")
        #:cargo-development-inputs
        (("rust-tempfile" ,rust-tempfile-3))))
     (home-page "https://github.com/Stebalien/xattr")
-    (synopsis "Unix extended filesystem attributes")
+    (synopsis "Unix extended file system attributes")
     (description
      "This package provide a small library for setting, getting, and listing
 extended attributes.")
@@ -30152,7 +41648,7 @@ extended attributes.")
      "This package provides Rust bindings and wrappers for XCB.")
     (license license:expat)))
 
-(define-public rust-xdg-2.2
+(define-public rust-xdg-2
   (package
     (name "rust-xdg")
     (version "2.2.0")
@@ -30202,6 +41698,29 @@ to XDG Base Directory specification.")
     (description "An XML library in pure Rust.")
     (license license:expat)))
 
+(define-public rust-xml-rs-0.7
+  (package
+    (name "rust-xml-rs")
+    (version "0.7.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "xml-rs" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1hp9kf80y9qm3aiqg5psyshqfkcrjgifbcm2c2nc5qlzs80vc71w"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-test-flags '("--release" "--lib")
+       #:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1))))
+    (home-page "https://github.com/netvl/xml-rs")
+    (synopsis "XML library in pure Rust")
+    (description "An XML library in pure Rust.")
+    (license license:expat)))
+
 (define-public rust-xml5ever-0.16
   (package
     (name "rust-xml5ever")
@@ -30232,50 +41751,59 @@ to XDG Base Directory specification.")
      "Push based streaming parser for xml.")
     (license (list license:expat license:asl2.0))))
 
-(define-public rust-y4m-0.5
+(define-public rust-xz2-0.1
   (package
-    (name "rust-y4m")
-    (version "0.5.3")
+    (name "rust-xz2")
+    (version "0.1.6")
     (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "y4m" version))
-        (file-name
-          (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32
-          "1933677by64y06zfgip2yq8b2dza8xnljhaksx93czq90b54kscz"))))
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "xz2" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0v4jb0193gx8s1kvd2ajsgh0ffmwhqhfmrrw1n1h2z7w6jgqcyf1"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:cargo-development-inputs
-       (("rust-resize" ,rust-resize-0.3))))
-    (home-page "https://github.com/image-rs/y4m")
-    (synopsis "YUV4MPEG2 (.y4m) Encoder/Decoder.")
-    (description "YUV4MPEG2 (.y4m) Encoder/Decoder.")
-    (license license:expat)))
+     `(#:tests? #f  ; Not all files included in the tarball.
+       #:cargo-inputs
+       (("rust-futures" ,rust-futures-0.1)
+        ("rust-lzma-sys" ,rust-lzma-sys-0.1)
+        ("rust-tokio-io" ,rust-tokio-io-0.1))
+       #:cargo-development-inputs
+       (("rust-quickcheck" ,rust-quickcheck-0.7)
+        ("rust-rand" ,rust-rand-0.5)
+        ("rust-tokio-core" ,rust-tokio-core-0.1))))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("xz" ,xz)))
+    (home-page "https://github.com/alexcrichton/xz2-rs")
+    (synopsis "Rust bindings to liblzma")
+    (description "This package provides Rust bindings to liblzma providing
+Read/Write streams as well as low-level in-memory encoding and decoding.")
+    (license (list license:expat license:asl2.0))))
 
 (define-public rust-yaml-rust-0.4
   (package
     (name "rust-yaml-rust")
-    (version "0.4.4")
+    (version "0.4.5")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "yaml-rust" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "038byay0dxsz6isckviz4qshfpyjqmyvda7pq96i6d53y4ickw1r"))))
+        (base32 "118wbqrr4n6wgk5rjjnlrdlahawlxc1bdsx146mwk8f79in97han"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-linked-hash-map" ,rust-linked-hash-map-0.5))
        #:cargo-development-inputs
        (("rust-quickcheck" ,rust-quickcheck-0.9))))
-    (home-page "https://chyh1990.github.io/yaml-rust/")
-    (synopsis "The missing YAML 1.2 parser for rust")
-    (description
-     "The missing YAML 1.2 parser for rust.")
-    (license (list license:asl2.0 license:expat))))
+    (home-page "http://chyh1990.github.io/yaml-rust/")
+    (synopsis "YAML 1.2 parser for Rust")
+    (description "This package is a YAML 1.2 parser for Rust.")
+    (license (list license:expat license:asl2.0))))
 
 (define-public rust-yaml-rust-0.3
   (package
@@ -30385,8 +41913,8 @@ implementation that works everywhere, even WASM!")
     (arguments
      `(#:cargo-inputs
        (("rust-bzip2" ,rust-bzip2-0.3)
-        ("rust-crc32fast" ,rust-crc32fast-1.2)
-        ("rust-flate2" ,rust-flate2-1.0)
+        ("rust-crc32fast" ,rust-crc32fast-1)
+        ("rust-flate2" ,rust-flate2-1)
         ("rust-podio" ,rust-podio-0.1)
         ("rust-time" ,rust-time-0.1))
        #:cargo-development-inputs
@@ -30416,10 +41944,271 @@ implementation that works everywhere, even WASM!")
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-byteorder" ,rust-byteorder-1.3)
+       (("rust-byteorder" ,rust-byteorder-1)
         ("rust-datetime" ,rust-datetime-0.4))))
     (home-page "https://github.com/rust-datetime/zoneinfo-compiled/")
     (synopsis "Library for parsing compiled zoneinfo files")
     (description
      "This package provides a library for parsing compiled zoneinfo files.")
     (license license:expat)))
+
+(define-public rust-zstd-0.5
+  (package
+    (name "rust-zstd")
+    (version "0.5.3+zstd.1.4.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "zstd" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1n0cgj9i3dk90kn7jcahq5fligqrjfzmnq08hfg71yhyfypjxcq1"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-futures" ,rust-futures-0.1)
+        ("rust-tokio-io" ,rust-tokio-io-0.1)
+        ("rust-zstd-safe" ,rust-zstd-safe-2.0.5))
+       #:cargo-development-inputs
+       (("rust-clap" ,rust-clap-2)
+        ("rust-humansize" ,rust-humansize-1)
+        ("rust-partial-io" ,rust-partial-io-0.3)
+        ("rust-quickcheck" ,rust-quickcheck-0.6)
+        ("rust-walkdir" ,rust-walkdir-2))))
+    (home-page "https://github.com/gyscos/zstd-rs")
+    (synopsis "Binding to the zstd compression library")
+    (description "This package provides a binding to the zstd compression
+library.")
+    (license license:expat)))
+
+(define-public rust-zstd-safe-2
+  (package
+    (name "rust-zstd-safe")
+    (version "2.0.5+zstd.1.4.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "zstd-safe" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0m8h1x030cj5bj7zxxf6gdp91bp0ays2vi9rlqllgxi71lp69yqw"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-libc" ,rust-libc-0.2)
+        ("rust-zstd-sys" ,rust-zstd-sys-1.4.17))))
+    (home-page "https://github.com/gyscos/zstd-rs")
+    (synopsis "Safe low-level bindings to the zstd compression library")
+    (description "This package provides safe low-level bindings to the zstd
+compression library.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-zstd-safe-2.0.5 rust-zstd-safe-2)
+
+;; TODO: Unbundle zstd.
+(define-public rust-zstd-sys-1
+  (package
+    (name "rust-zstd-sys")
+    (version "1.4.17+zstd.1.4.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "zstd-sys" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "06zhk1j5v1sm04xxrw72lgzyi1wcq7kvj6vbd4ibamph9mj4k4mq"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-libc" ,rust-libc-0.2)
+        ("rust-bindgen" ,rust-bindgen-0.54)
+        ("rust-cc" ,rust-cc-1)
+        ("rust-glob" ,rust-glob-0.3)
+        ("rust-itertools" ,rust-itertools-0.9)
+        ("rust-pkg-config" ,rust-pkg-config-0.3))))
+    (home-page "https://github.com/gyscos/zstd-rs")
+    (synopsis "Low-level bindings to the zstd compression library")
+    (description "This package provides low-level Rust bindings to the zstd
+compression library.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-zstd-sys-1.4.17 rust-zstd-sys-1)
+
+(define-public rust-packed-struct
+  (package
+    (name "rust-packed-struct")
+    (version "0.3.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "packed_struct" version))
+        (file-name
+	  (string-append name "-" version ".tar.gz"))
+        (sha256
+	  (base32
+	    "10b2fmxchmcigwagnhi42frj74dl02wyv0xwmbr9839qfh7gijlh"))))
+    (build-system cargo-build-system)
+    (arguments
+      `(#:cargo-inputs
+        (("rust-serde" ,rust-serde-1)
+         ("rust-serde-derive" ,rust-serde-derive-1))))
+    (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
+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.
+
+@itemize
+@item Plain Rust structures, decorated with attributes
+@item MSB or LSB integers of user-defined bit widths
+@item Primitive enum code generation helper
+@item MSB0 or LSB0 bit positioning
+@item Documents the field's packing table
+@item Runtime packing visualization
+@item Nested packed types
+@item Arrays of packed structures as fields
+@item Reserved fields, their bits are always 0 or 1
+@end itemize")
+    ;; User can choose either license.
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-piper-0.1
+  (package
+    (name "rust-piper")
+    (version "0.1.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "piper" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "062zdv9w7l5037g113bh7r72wmygz92ajzr0z41v3bqdd3x8nq01"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #false
+       #:cargo-inputs
+       (("rust-crossbeam-utils" ,rust-crossbeam-utils-0.7)
+        ("rust-futures-io" ,rust-futures-io-0.3)
+        ("rust-futures-sink" ,rust-futures-sink-0.3)
+        ("rust-futures-util" ,rust-futures-util-0.3))
+       #:cargo-development-inputs
+       (("rust-futures" ,rust-futures-0.3))))
+    (home-page "https://crates.io/crates/piper")
+    (synopsis "Async pipes, channels, mutexes, and more")
+    (description
+     "This crate provides async pipes, channels, mutexes, and more.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-xmltree-0.8
+  (package
+    (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"))))
+    (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")
+    (license license:expat)))
+
+(define-public rust-svd-parser-0.9
+  (package
+    (name "rust-svd-parser")
+    (version "0.9.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "svd-parser" version))
+        (file-name
+          (string-append name "-" version ".tar.gz"))
+        (sha256
+          (base32
+            "1qhvdz3k76i3sfypcy8c84hhb8sqixrckba21kalzcpgy6an45ml"))))
+    (build-system cargo-build-system)
+    (arguments
+      `(#:cargo-inputs
+        (("rust-anyhow" ,rust-anyhow-1)
+         ("rust-either" ,rust-either-1)
+         ("rust-serde" ,rust-serde-1)
+         ("rust-thiserror" ,rust-thiserror-1)
+         ("rust-xmltree" ,rust-xmltree-0.8))
+        #:cargo-development-inputs
+        (("rust-serde-json" ,rust-serde-json-1))))
+    (home-page #f)
+    (synopsis "A CMSIS-SVD file parser")
+    (description
+      "This package provides a CMSIS-SVD file parser")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-inflections-1.1
+  (package
+    (name "rust-inflections")
+    (version "1.1.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "inflections" version))
+        (file-name
+          (string-append name "-" version ".tar.gz"))
+        (sha256
+          (base32
+            "0yl3gas612q25c72lwf04405i87yxr02vgv3ckcnz2fyvhpmhmx2"))))
+    (build-system cargo-build-system)
+    (home-page #f)
+    (synopsis
+      "High performance inflection transformation library for changing properties of words like the case.")
+    (description
+      "High performance inflection transformation library for changing properties of words like the case.")
+    (license license:expat)))
+
+(define-public svd2rust
+  (package
+    (name "svd2rust")
+    (version "0.17.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "svd2rust" version))
+        (file-name
+          (string-append name "-" version ".tar.gz"))
+        (sha256
+          (base32
+            "0850pn92a5pmrlavdsm4s9wgrgx9gz0vylf9i594nj8sixmddjd9"))))
+    (build-system cargo-build-system)
+    (arguments
+      `(#:cargo-inputs
+        (("rust-cast" ,rust-cast-0.2)
+         ("rust-clap" ,rust-clap-2)
+         ("rust-env-logger" ,rust-env-logger-0.7)
+         ("rust-error-chain" ,rust-error-chain-0.12)
+         ("rust-inflections" ,rust-inflections-1.1)
+         ("rust-log" ,rust-log-0.4)
+         ("rust-proc-macro2" ,rust-proc-macro2-0.4)
+         ("rust-quote" ,rust-quote-1)
+         ("rust-svd-parser" ,rust-svd-parser-0.9)
+         ("rust-syn" ,rust-syn-1))))
+    (home-page #f)
+    (synopsis
+      "Generate Rust register maps (`struct`s) from SVD files")
+    (description
+      "Generate Rust register maps (`struct`s) from SVD files")
+    (license (list license:expat license:asl2.0))))
diff --git a/gnu/packages/cross-base.scm b/gnu/packages/cross-base.scm
index b35a3cb40b..bea2d69876 100644
--- a/gnu/packages/cross-base.scm
+++ b/gnu/packages/cross-base.scm
@@ -153,6 +153,12 @@ base compiler and using LIBC (which may be either a libc package or #f.)"
                                "--disable-decimal-float" ;would need libc
                                "--disable-libcilkrts"
 
+                              ,@(if (equal? "powerpc64le-linux-gnu" target)
+                                   ;; On POWER9 (little endian) glibc needs
+                                   ;; the 128-bit long double type.
+                                   '("--with-long-double-128")
+                                   '())
+
                                ;; When target is any OS other than 'none' these
                                ;; libraries will fail if there is no libc
                                ;; present. See
@@ -539,19 +545,20 @@ and the cross tool chain."
 
         ;; FIXME: 'static-bash' should really be an input, not a native input, but
         ;; to do that will require building an intermediate cross libc.
-        (inputs '())
+        (inputs (if (hurd-triplet? target)
+                    `(;; TODO: move to glibc in the next rebuild cycle
+                      ("hurd-mach-print.patch"
+                       ,(search-patch "glibc-hurd-mach-print.patch"))
+                      ("hurd-gettyent.patch"
+                       ,(search-patch "glibc-hurd-gettyent.patch")))
+                    '()))
 
         (native-inputs `(("cross-gcc" ,xgcc)
                          ("cross-binutils" ,xbinutils)
                          ,@(if (hurd-triplet? target)
                                `(("cross-mig"
                                   ,@(assoc-ref (package-native-inputs xheaders)
-                                               "cross-mig"))
-                                 ;; TODO: move to glibc in the next rebuild cycle
-                                 ("hurd-mach-print.patch"
-                                  ,@(search-patches "glibc-hurd-mach-print.patch"))
-                                 ("hurd-gettyent.patch"
-                                  ,@(search-patches "glibc-hurd-gettyent.patch")))
+                                               "cross-mig")))
                                '())
                          ,@(package-inputs libc)  ;FIXME: static-bash
                          ,@(package-native-inputs libc))))))
diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm
index 5532f7e9f8..19041c7cbe 100644
--- a/gnu/packages/crypto.scm
+++ b/gnu/packages/crypto.scm
@@ -3,9 +3,9 @@
 ;;; Copyright © 2015, 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2016, 2017, 2018, 2019 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox>
-;;; Copyright © 2016, 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2016–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2016, 2017 Nikita <nikita@n0.is>
-;;; Copyright © 2016, 2017, 2019 Eric Bavier <bavier@member.fsf.org>
+;;; Copyright © 2016, 2017, 2019, 2020 Eric Bavier <bavier@posteo.net>
 ;;; Copyright © 2017 Pierre Langlois <pierre.langlois@gmx.com>
 ;;; Copyright © 2018, 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
@@ -17,6 +17,8 @@
 ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
 ;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
+;;; Copyright © 2020 Hendur Saga <hendursaga@yahoo.com>
+;;; Copyright © 2020 pukkamustard <pukkamustard@posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -53,6 +55,8 @@
   #:use-module (gnu packages libffi)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages lsof)
+  #:use-module (gnu packages man)
+  #:use-module (gnu packages multiprecision)
   #:use-module (gnu packages nettle)
   #:use-module (gnu packages password-utils)
   #:use-module (gnu packages perl)
@@ -140,7 +144,7 @@ communication, encryption, decryption, signatures, etc.")
 (define-public signify
   (package
     (name "signify")
-    (version "29")
+    (version "30")
     (home-page "https://github.com/aperezdc/signify")
     (source (origin
               (method url-fetch)
@@ -148,7 +152,7 @@ communication, encryption, decryption, signatures, etc.")
                                   "/download/v" version "/signify-" version ".tar.xz"))
               (sha256
                (base32
-                "1bzcax5kb4lr0rmpmrdpq5q0iq6b2dxzpl56li8aanbkck1c7hd9"))))
+                "11l67j04gyxnlw6zrzsygqs5cgsc1sww1rh0apl05yay131hd17n"))))
     (build-system gnu-build-system)
     ;; TODO Build with libwaive (described in README.md), to implement something
     ;; like OpenBSD's pledge().
@@ -356,10 +360,10 @@ secure operations. ")
           (base32
            "0lj38ldh8vzi11wp4ghw4k0fkwp0s04zv8k8d473p1snmbh7mx98"))))
       (inputs
-       `(("openssl" ,openssl))) ; It needs: openssl/{bn,pem,rsa,sha}.h
+       `(("openssl" ,openssl-1.0)))     ; for openssl/{bn,pem,rsa,sha}.h
       (build-system gnu-build-system)
       (arguments
-       `(#:make-flags (list "CC=gcc"
+       `(#:make-flags (list (string-append "CC=" ,(cc-for-target))
                             (string-append "PREFIX=" (assoc-ref %outputs "out"))
                             (string-append "INSTALL=" "install"))
          ;; XXX: make test would run a !VERY! long hashing of names with the use
@@ -394,18 +398,60 @@ generation of wordlists the included tool @code{worgen} can be used.  There is
 no man page, refer to the home page for usage details.")
       (license (list license:isc license:expat)))))
 
+(define-public ssss
+  (package
+    (name "ssss")
+    (version "0.5")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://point-at-infinity.org/ssss/ssss-"
+                                  version ".tar.gz"))
+              (sha256
+               (base32
+                "15grn2fp1x8p92kxkwbmsx8rz16g93y9grl3hfqbh1jn21ama5jx"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f ; No test suite
+       #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
+                          "CC=gcc")
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure) ; no configuration to be done
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((outdir (assoc-ref outputs "out"))
+                    (bindir (string-append outdir "/bin"))
+                    (docdir (string-append outdir
+                                           "/share/doc/ssss-"
+                                           ,version)))
+               (install-file "ssss-combine" bindir)
+               (install-file "ssss-split" bindir)
+               (install-file "ssss.1" docdir)
+               (install-file "ssss.1.html" docdir)
+               #t))))))
+    (inputs
+     `(("gmp" ,gmp)))
+    (native-inputs
+     `(("xmltoman" ,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
+and combine secrets securely using Shamir's secret sharing scheme.  This implementation
+allows for a threshold scheme where the minimum number of shares can be less than the
+total number of shares generated.")
+    (license license:gpl2+)))
+
 (define-public tomb
   (package
     (name "tomb")
-    (version "2.7")
+    (version "2.9")
     (source (origin
               (method url-fetch)
-              (uri (string-append "https://files.dyne.org/tomb/"
+              (uri (string-append "https://files.dyne.org/tomb/releases/"
                                   "Tomb-" version ".tar.gz"))
               (sha256
                (base32
-                "0x3al02796vx1cvy6y6h685c367qx70dwv471g0hmks2gr10f0cn"))
-              (patches (search-patches "tomb-fix-errors-on-open.patch"))))
+                "136nfnpaz29hngwwnzrmc858gpnvnb977gf4ldbpapw1h1k3r8mk"))))
     (build-system gnu-build-system)
     (native-inputs `(("sudo" ,sudo)))   ;presence needed for 'check' phase
     (inputs
@@ -472,7 +518,7 @@ user's graphical desktop.")
 (define-public scrypt
   (package
     (name "scrypt")
-    (version "1.2.1")
+    (version "1.3.1")
     (source
       (origin
         (method url-fetch)
@@ -480,20 +526,24 @@ user's graphical desktop.")
                             version ".tgz"))
         (sha256
          (base32
-          "0xy5yhrwwv13skv9im9vm76rybh9f29j2dh4hlh2x01gvbkza8a6"))))
+          "1hnl0r6pmyxiy4dmafmqk1db7wpc0x9rqpzqcwr9d2cmghcj6byz"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:phases (modify-phases %standard-phases
-        (add-after 'unpack 'patch-command-invocations
+     `(#:license-file-regexp "COPYRIGHT"
+       #:phases (modify-phases %standard-phases
+        (add-after 'unpack 'patch-$PATH-assumptions
           (lambda _
+            (substitute* "configure"
+              (("\\{POSIX_PATH\\}")
+               "{PATH}"))
             (substitute* "Makefile.in"
               (("command -p") ""))
             #t))
         (add-after 'install 'install-docs
           (lambda* (#:key outputs #:allow-other-keys)
             (let* ((out (assoc-ref %outputs "out"))
-                   (misc (string-append out "/share/doc/scrypt")))
-              (install-file "FORMAT" misc)
+                   (doc (string-append out "/share/doc/" ,name "-" ,version)))
+              (install-file "FORMAT" doc)
               #t))))))
     (inputs
      `(("openssl" ,openssl)))
@@ -520,12 +570,19 @@ attacks than alternative functions such as @code{PBKDF2} or @code{bcrypt}.")
         (base32
          "1d76ys6cp7fi4ng1w3mz2l0p9dbr7ljbk33dcywyimzjz8bahdng"))))
     (build-system gnu-build-system)
+    (outputs (list "out" "static"))
     (arguments
      `(#:make-flags (list (string-append "PREFIX=" %output)
                           "CC=gcc")
        #:phases
        (modify-phases %standard-phases
-         (delete 'configure))))
+         (delete 'configure)            ; no configure script
+         (add-after 'install 'install:static
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (lib (string-append out "/lib")))
+               (install-file "libscrypt.a" lib)
+               #t))))))
     (home-page "https://lolware.net/libscrypt.html")
     (synopsis "Password hashing library")
     (description "@code{libscrypt} implements @code{scrypt} key derivation
@@ -660,7 +717,7 @@ data on your platform, so the seed itself will be as random as possible.
 (define-public crypto++
   (package
     (name "crypto++")
-    (version "8.2.0")
+    (version "8.4.0")
     (source (origin
               (method url-fetch/zipbomb)
               (uri (string-append "https://cryptopp.com/cryptopp"
@@ -668,7 +725,7 @@ data on your platform, so the seed itself will be as random as possible.
                                   ".zip"))
               (sha256
                (base32
-                "0n40hlz5jkvlcp9vxrj0fsrcfp7dm0zmmv6h52dx3f8i5qjf5w03"))))
+                "16kvfm11xv7j9a3yykzysjgw38a9b7lnc5n5x5h82g395k6ybxf0"))))
     (build-system gnu-build-system)
     (arguments
      `(#:make-flags
@@ -719,7 +776,7 @@ data on your platform, so the seed itself will be as random as possible.
                      "libdir=" out "/lib\n"
                      "includedir=" out "/include\n\n"
                      "Name: libcrypto++-" ,version "\n"
-                     "Description: Class library of cryptographic schemes"
+                     "Description: Class library of cryptographic schemes\n"
                      "Version: " ,version "\n"
                      "Libs: -L${libdir} -lcryptopp\n"
                      "Cflags: -I${includedir}\n"))
@@ -971,10 +1028,10 @@ trivial to build for local use.  Portability is emphasized over performance.")
     (license license:unlicense)))
 
 (define-public libsecp256k1
-  (let ((commit "d644dda5c9dbdecee52d1aa259235510fdc2d4ee"))
+  (let ((commit "dbd41db16a0e91b2566820898a3ab2d7dad4fe00"))
     (package
       (name "libsecp256k1")
-      (version (git-version "20191213" "1" commit))
+      (version (git-version "20200615" "1" commit))
       (source (origin
                 (method git-fetch)
                 (uri (git-reference
@@ -982,9 +1039,14 @@ trivial to build for local use.  Portability is emphasized over performance.")
                       (commit commit)))
                 (sha256
                  (base32
-                  "0zmx32746khsm2cx0p3pdy3j2vkwmafvf7axiixijhgcg0xjv93i"))
+                  "1fcpnksq5cqwqzshn5f0lq94b73p3frwbp04hgmmbnrndpqg6mpy"))
                 (file-name (git-file-name name version))))
       (build-system gnu-build-system)
+      (arguments
+       '(#:configure-flags '("--enable-module-recovery"
+                             "--enable-experimental"
+                             "--enable-module-ecdh"
+                             "--enable-shared")))
       (native-inputs
        `(("autoconf" ,autoconf)
          ("automake" ,automake)
@@ -1011,6 +1073,58 @@ Features:
       (home-page "https://github.com/bitcoin-core/secp256k1")
       (license license:unlicense))))
 
+(define-public libsecp256k1-bitcoin-cash
+  (package
+    (name "libsecp256k1-bitcoin-cash")
+    (version "0.22.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/Bitcoin-ABC/secp256k1")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1rnif3iny6pz1r3g69bagzr342mm3x0v66b60csnmm1rg44bd5v1"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("libtool" ,libtool)))
+    (arguments
+     '(#:configure-flags '("--enable-module-recovery"
+                           "--enable-experimental"
+                           "--enable-module-ecdh"
+                           "--disable-jni"
+                           "--with-bignum=no"
+                           "--enable-module-schnorr"
+                           "--disable-static"
+                           "--enable-shared")))
+    (synopsis "Optimized C library for EC operations on curve secp256k1")
+    (description
+     "Optimized C library for cryptographic operations on curve secp256k1.
+
+This library is used for consensus critical cryptographic operations on the
+Bitcoin Cash network.
+
+Features:
+
+@itemize
+@item secp256k1 ECDSA signing/verification and key generation.
+@item secp256k1 Schnorr signing/verification (Bitcoin Cash Schnorr variant).
+@item Additive and multiplicative tweaking of secret/public keys.
+@item Serialization/parsing of secret keys, public keys, signatures.
+@item Constant time, constant memory access signing and pubkey generation.
+@item Derandomized ECDSA (via RFC6979 or with a caller provided function).
+@item Very efficient implementation.
+@item Suitable for embedded systems.
+@item Optional module for public key recovery.
+@item Optional module for ECDH key exchange (experimental).
+@item Optional module for multiset hash (experimental).
+@end itemize\n")
+    (home-page "https://github.com/Bitcoin-ABC/secp256k1")
+    (license license:expat)))
+
 (define-public stoken
   (package
     (name "stoken")
@@ -1120,7 +1234,7 @@ Trusted comments are signed, thus verified, before being displayed.")
 (define-public libolm
   (package
     (name "libolm")
-    (version "3.1.5")
+    (version "3.2.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -1128,15 +1242,16 @@ Trusted comments are signed, thus verified, before being displayed.")
                     (commit version)))
               (sha256
                (base32
-                "030g0jmmvhx2dh32k708sz6cdd5q1wz48i4gigh6dclqk10w28lm"))
+                "14b5cplcnbf2baq0lvz4f97m6swxpb13rvxdajxyw3s4mbvasia4"))
               (file-name (git-file-name name version))))
+    (build-system cmake-build-system)
     (arguments
      `(#:phases
        (modify-phases %standard-phases
          (replace 'check
            (lambda _
-             (invoke "ctest" "build/tests"))))))
-    (build-system cmake-build-system)
+             (with-directory-excursion "tests"
+               (invoke "ctest" ".")))))))
     (synopsis "Implementation of the olm and megolm cryptographic ratchets")
     (description "The libolm library implements the Double Ratchet
 cryptographic ratchet.  It is written in C and C++11, and exposed as a C
@@ -1185,3 +1300,38 @@ length extension attacks supporting MD4, MD5, RIPEMD-160, SHA-0, SHA-1,
 SHA-256, SHA-512, and WHIRLPOOL hashes.")
       (home-page "https://github.com/iagox86/hash_extender")
       (license license:bsd-3))))
+
+(define-public mkp224o
+  (package
+    (name "mkp224o")
+    (version "1.5.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/cathugger/mkp224o")
+                    (commit (string-append "v" version))))
+              (sha256
+               (base32
+                "0b2cn96wg4l8jkkqqp8l2295xlmm2jc8nrw6rdqb5g0zkpfmrxbb"))
+              (file-name (git-file-name name version))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f ; no test suite
+       #:phases
+       (modify-phases %standard-phases
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((outdir (assoc-ref outputs "out"))
+                    (bindir (string-append outdir "/bin")))
+               (install-file "mkp224o" bindir)
+               #t))))))
+    (native-inputs
+     `(("autoconf" ,autoconf)))
+    (inputs
+     `(("libsodium" ,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
+addresses using a brute-force method.")
+    (home-page "https://github.com/cathugger/mkp224o")
+    (license license:cc0)))
diff --git a/gnu/packages/cryptsetup.scm b/gnu/packages/cryptsetup.scm
index 57333ea13d..a12ac93b25 100644
--- a/gnu/packages/cryptsetup.scm
+++ b/gnu/packages/cryptsetup.scm
@@ -1,7 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org>
-;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -35,7 +35,7 @@
 (define-public cryptsetup
   (package
    (name "cryptsetup")
-   (version "2.3.3")
+   (version "2.3.4")
    (source (origin
             (method url-fetch)
             (uri (string-append "mirror://kernel.org/linux/utils/cryptsetup/v"
@@ -43,7 +43,7 @@
                                 "/cryptsetup-" version ".tar.xz"))
             (sha256
              (base32
-              "1pw2bq4nv2z3xyycckxkbp7dp9kkp2n6bspna3plryg277z4zjiv"))))
+              "0wrpz2fzbsszmsgxxbssxjgylpyiindh24z8g13m2fxmjsxyw5lx"))))
    (build-system gnu-build-system)
    (arguments
     `(#:configure-flags
diff --git a/gnu/packages/cups.scm b/gnu/packages/cups.scm
index 281c2718e8..51efee5157 100644
--- a/gnu/packages/cups.scm
+++ b/gnu/packages/cups.scm
@@ -1,11 +1,11 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2015, 2019, 2021 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2015, 2016, 2017, 2019 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2015, 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016 Danny Milosavljevic <dannym@scratchpost.org>
 ;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2017 Mark H Weaver <mhw@netris.org>
-;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017–2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -28,6 +28,7 @@
   #:use-module (gnu packages algebra)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages avahi)
+  #:use-module (gnu packages base)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages fonts)     ; font-dejavu
   #:use-module (gnu packages fontutils)
@@ -46,16 +47,84 @@
   #:use-module (gnu packages qt)
   #:use-module (gnu packages scanner)
   #:use-module (gnu packages tls)
+  #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system python)
   #:use-module (guix download)
-  #:use-module (guix svn-download)
+  #:use-module (guix git-download)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix utils)
   #:use-module (srfi srfi-1)
   #:use-module (ice-9 match))
 
+(define-public brlaser
+  (let ((commit "9d7ddda8383bfc4d205b5e1b49de2b8bcd9137f1")
+        (revision "1"))
+    (package
+      (name "brlaser")
+      (version (git-version "6" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/pdewacht/brlaser")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "1drh0nk7amn9a8wykki4l9maqa4vy7vwminypfy1712alwj31nd4"))))
+      (build-system cmake-build-system)
+      (arguments
+       `(#:configure-flags
+         (list (string-append "-DCUPS_DATA_DIR="
+                              (assoc-ref %outputs "out")
+                              "/share/cups")
+               (string-append "-DCUPS_SERVER_BIN="
+                              (assoc-ref %outputs "out")
+                              "/lib/cups"))))
+      (inputs
+       `(("ghostscript" ,ghostscript)
+         ("cups" ,cups)
+         ("zlib" ,zlib)))
+      (home-page "https://github.com/pdewacht/brlaser")
+      (synopsis "Brother laser printer driver")
+      (description "Brlaser is a CUPS driver for Brother laser printers.  This
+driver is known to work with these printers:
+
+@enumerate
+@item Brother DCP-1510 series
+@item Brother DCP-1600 series
+@item Brother DCP-7030
+@item Brother DCP-7040
+@item Brother DCP-7055
+@item Brother DCP-7055W
+@item Brother DCP-7060D
+@item Brother DCP-7065DN
+@item Brother DCP-7080
+@item Brother DCP-L2500D series
+@item Brother DCP-L2520D series
+@item Brother DCP-L2540DW series
+@item Brother HL-1110 series
+@item Brother HL-1200 series
+@item Brother HL-2030 series
+@item Brother HL-2140 series
+@item Brother HL-2220 series
+@item Brother HL-2270DW series
+@item Brother HL-5030 series
+@item Brother HL-L2300D series
+@item Brother HL-L2320D series
+@item Brother HL-L2340D series
+@item Brother HL-L2360D series
+@item Brother MFC-1910W
+@item Brother MFC-7240
+@item Brother MFC-7360N
+@item Brother MFC-7365DN
+@item Brother MFC-7840W
+@item Brother MFC-L2710DW series
+@item Lenovo M7605D
+@end enumerate")
+      (license license:gpl2+))))
+
 (define-public cups-filters
   (package
     (name "cups-filters")
@@ -415,14 +484,14 @@ should only be used as part of the Guix cups-pk-helper service.")
 (define-public hplip
   (package
     (name "hplip")
-    (version "3.20.6")
+    (version "3.20.11")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://sourceforge/hplip/hplip/" version
                                   "/hplip-" version ".tar.gz"))
               (sha256
                (base32
-                "083w58wpvvm6sir6rf5dwx3r0rman9sv1zpl26chl0a88crjsjy6"))
+                "04fvdyjyjbkviy3awgm7g43p3lrvrsmgaqz8bwra22g7v2rpa5hb"))
               (modules '((guix build utils)))
               (patches (search-patches "hplip-remove-imageprocessor.patch"))
               (snippet
@@ -445,6 +514,7 @@ should only be used as part of the Guix cups-pk-helper service.")
                      "locatedriverdir = $(pkglibexecdir)\n"))
                   #t))))
     (build-system gnu-build-system)
+    (outputs (list "out" "ppd"))
     (home-page "https://developers.hp.com/hp-linux-imaging-and-printing")
     (synopsis "HP printer drivers")
     (description
@@ -465,16 +535,15 @@ should only be used as part of the Guix cups-pk-helper service.")
                          (assoc-ref %outputs "out") "/lib")
          ;; Disable until mime.types merging works (FIXME).
          "--disable-fax-build"
-         "--enable-hpcups-install"
          "--enable-new-hpcups"
-         "--enable-cups_ppd_install"
-         "--enable-cups_drv_install"
          ;; TODO add foomatic drv install eventually.
          ;; TODO --enable-policykit eventually.
          ,(string-append "--with-cupsfilterdir="
                          (assoc-ref %outputs "out") "/lib/cups/filter")
          ,(string-append "--with-cupsbackenddir="
                          (assoc-ref %outputs "out") "/lib/cups/backend")
+         ,(string-append "--with-hpppddir="
+                         (assoc-ref %outputs "ppd") "/share/ppd/HP")
          ,(string-append "--with-icondir="
                          (assoc-ref %outputs "out") "/share/applications")
          ,(string-append "--with-systraydir="
@@ -536,7 +605,7 @@ should only be used as part of the Guix cups-pk-helper service.")
          (add-before 'configure 'fix-build-with-python-3.8
            (lambda* (#:key inputs #:allow-other-keys)
              (let ((python (assoc-ref inputs "python")))
-               ;; XXX: The configure script of looks for Python headers in the
+               ;; XXX: The configure script looks for Python headers in the
                ;; wrong places as of version 3.20.3.  Help it by adding the
                ;; include directory on C_INCLUDE_PATH.
                (when python
@@ -716,6 +785,41 @@ printer/driver specific, but spooler-independent PPD file.")
                         (("^MODTIME[[:blank:]]*=.*$")
                          "MODTIME = echo Thu Jan 01 01:00:00 1970\n"))
                       #t))
+                  (add-before 'install 'make-install-dirs
+                    (lambda* (#:key outputs #:allow-other-keys)
+                      ;; Make missing install dirs
+                      (let ((out (assoc-ref outputs "out"))
+                            (dirs '("/share/cups/model"
+                                    "/share/foomatic/db/source/opt"
+                                    "/share/foomatic/db/source/printer"
+                                    "/share/foomatic/db/source/driver"
+                                    "/lib/cups/filter")))
+                        (for-each (lambda (dir)
+                                    (mkdir-p (string-append out dir)))
+                                  dirs))))
+                  (add-after 'install 'wrap-wrappers
+                    (lambda* (#:key inputs outputs #:allow-other-keys)
+                      (let ((out (assoc-ref outputs "out"))
+                            (ghostscript (assoc-ref inputs "ghostscript"))
+                            (coreutils (assoc-ref inputs "coreutils"))
+                            (sed (assoc-ref inputs "sed")))
+                        (for-each (lambda (file)
+                                    (wrap-program file
+                                      `("PATH" ":" prefix
+                                        (,(string-append ghostscript "/bin:"
+                                                         coreutils "/bin:"
+                                                         sed "/bin")))))
+                                  (find-files (string-append
+                                               out "/bin") "wrapper$")))))
+                  (add-after 'install 'install-cups-filters-symlinks
+                    (lambda* (#:key inputs outputs #:allow-other-keys)
+                      (let ((out (assoc-ref outputs "out")))
+                        (for-each
+                         (lambda (file)
+                           (symlink file
+                                    (string-append out "/lib/cups/filter/"
+                                                   (basename file))))
+                         (find-files (string-append out "/bin"))))))
                   (add-after 'install 'remove-pdf
                     (lambda* (#:key outputs #:allow-other-keys)
                       ;; Remove 'manual.pdf' which is (1) useless (it's a
@@ -729,7 +833,9 @@ printer/driver specific, but spooler-independent PPD file.")
        #:tests? #f                                ;no tests
        #:make-flags '("CC=gcc")))
     (inputs
-     `(("ghostscript" ,ghostscript)
+     `(("coreutils" ,coreutils)
+       ("sed" ,sed)
+       ("ghostscript" ,ghostscript)
        ("foomatic-filters" ,foomatic-filters)))   ;for 'foomatic-rip'
     (native-inputs
      `(("bc" ,bc)
@@ -746,64 +852,98 @@ HP@tie{}LaserJet, and possibly other printers.  See @file{README} for details.")
     (license (list license:expat        ; icc2ps/*.[ch]
                    license:gpl2+))))    ; everything else
 
-(define-public escpr
+(define-public epson-inkjet-printer-escpr
   (package
-    (name "escpr")
-    (version "1.6.30")
+    (name "epson-inkjet-printer-escpr")
+    (version "1.7.8")
     ;; XXX: This currently works.  But it will break as soon as a newer
     ;; version is available since the URLs for older versions are not
     ;; preserved.  An alternative source will be added as soon as
     ;; available.
-    (source (origin
-              (method url-fetch)
-              ;; The uri has to be chopped up in order to satisfy guix lint.
-              (uri (string-append "https://download3.ebz.epson.net/dsc/f/03/00/08/18/20/"
-                                  "e94de600e28e510c1cfa158929d8b2c0aadc8aa0/"
-                                  "epson-inkjet-printer-escpr-1.6.30-1lsb3.2.tar.gz"))
-              (sha256
-               (base32
-                "0m8pyfkixisp0vclwxj340isn15zzisal0v2xvv66kxfd68dzf12"))))
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://download3.ebz.epson.net/dsc/f/03/00/12/04/32/"
+                           "1a455ef8618def65700ca4e446311c2fb43cd839/"
+                           "epson-inkjet-printer-escpr-1.7.8-1lsb3.2.tar.gz"))
+       (sha256
+        (base32 "1pygg2bd2gh27dc65h3dzwrpvi6bq5c87wl0ldchqlc2b3blsx6p"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:configure-flags
-       `(,(string-append "--prefix="
+     `(#:modules
+       ((srfi srfi-26)
+        ,@%gnu-build-system-modules)
+       #:configure-flags
+       `("--disable-static"
+         ,(string-append "--prefix="
                          (assoc-ref %outputs "out"))
          ,(string-append "--with-cupsfilterdir="
                          (assoc-ref %outputs "out") "/lib/cups/filter")
          ,(string-append "--with-cupsppddir="
-                         (assoc-ref %outputs "out") "/share/ppd"))))
-    (inputs `(("cups" ,cups-minimal)))
+                         (assoc-ref %outputs "out") "/share/cups/model"))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-autotools-version-requirement
+           (lambda _
+             (substitute* "aclocal.m4"
+               (("1\\.15")
+                ,(package-version automake)))
+             (substitute* "configure"
+               (("^(ACLOCAL=).*" _ match)
+                (string-append match "aclocal"))
+               (("^(AUTOMAKE=).*" _ match)
+                (string-append match "automake")))
+             #t))
+         (add-after 'install 'compress-PPDs
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (with-directory-excursion out
+                 (for-each (cut invoke "gzip" "-9" <>)
+                           (find-files "share/cups" "\\.ppd$")))))))))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)))
+    (inputs
+     `(("cups" ,cups-minimal)))
     (synopsis "ESC/P-R printer driver")
     (description
-     "This package provides a filter for the Common UNIX Printing
-System (CUPS).  It offers high-quality printing with Seiko Epson color ink jet
-printers.  It can only be used with printers that support the Epson ESC/P-R
+     "This package provides a filter for @acronym{CUPS, the Common UNIX Printing
+System} that offers high-quality printing with Seiko@tie{}Epson color ink jet
+printers.  It can be used only with printers that support the Epson@tie{}ESC/P-R
 language.")
-    (home-page "http://download.ebz.epson.net/dsc/search/01/search")
+    (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
-  ;; The last release was in 2009.  The SVN repository contains 5 years of
-  ;; unreleased bug fixes and support for newer printer models.
-  (let ((revision 315))
+  ;; Last released in 2009 <https://sourceforge.net/projects/splix/files/>.
+  ;; Last SVN commit was 2013 <https://svn.code.sf.net/p/splix/code/splix/>.
+  ;; Use a more maintained fork with several bug fixes and support for newer
+  ;; printer models.
+  (let ((commit "76268c4dd7dbc8218ea7426401104c3b40cc707a")
+        (revision "315"))
     (package
       (name "splix")
-      (version (string-append "2.0.0-" (number->string revision)))
+      (version (git-version "2.0.0" revision commit))
       (source
        (origin
-         (method svn-fetch)
-         (uri (svn-reference
-               (url "https://svn.code.sf.net/p/splix/code/splix/")
-               (revision revision)))
-         (file-name (string-append name "-" version "-checkout"))
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://gitlab.com/ScumCoder/splix")
+               (commit commit)))
+         (file-name (git-file-name name version))
          (sha256
-          (base32 "16wbm4xnz35ca3mw2iggf5f4jaxpyna718ia190ka6y4ah932jxl"))))
+          (base32 "1mxsvllwwr1v8sgrax0b7gkajjhnm0l06s67spmaxz47lyll1qab"))))
       (build-system gnu-build-system)
-      ;; 90% (3.8 MiB) of output are .ppd files.  Don't install them by default:
-      ;; CUPS has been able to read the .drv sources directly since version 1.2.
+      ;; PPDs have been obsolete since CUPS 1.2 and make up 90% of total size.
       (outputs (list "out" "ppd"))
       (arguments
-       '(#:make-flags
+       `(#:modules
+         ((srfi srfi-26)
+          ,@%gnu-build-system-modules)
+         #:make-flags
          (list (string-append "CUPSDRV="
                               (assoc-ref %outputs "out") "/share/cups/drv")
                (string-append "CUPSFILTER="
@@ -814,21 +954,28 @@ language.")
                "THREADS=4")             ; compress and print faster
          #:phases
          (modify-phases %standard-phases
+           (add-after 'unpack 'enter-subdirectory
+             ;; The git repository replicates the top-level SVN layout.
+             (lambda _
+               (chdir "splix")
+               #t))
            (delete 'configure)          ; no configure script
            (add-before 'build 'build-.drv-files
              (lambda* (#:key make-flags #:allow-other-keys)
                (apply invoke "make" "drv" make-flags)))
            (add-after 'install 'install-.drv-files
              (lambda* (#:key make-flags #:allow-other-keys)
-               (apply invoke "make" "install" "DRV_ONLY=1" make-flags))))
+               (apply invoke "make" "install" "DRV_ONLY=1" make-flags)))
+           (add-after 'install 'compress-PPDs
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let ((ppd (assoc-ref outputs "ppd")))
+                 (for-each (cut invoke "gzip" "-9" <>)
+                           (find-files ppd "\\.ppd$"))))))
          #:tests? #f))                  ; no test suite
       (inputs
        `(("cups" ,cups-minimal)
-         ("zlib" ,zlib)
-
-         ;; This dependency can be dropped by setting DISABLE_JBIG=1, but the
-         ;; result will not support some printers like the Samsung CLP-600.
-         ("jbigkit" ,jbigkit)))
+         ("jbigkit" ,jbigkit)
+         ("zlib" ,zlib)))
       (synopsis "QPDL (SPL2) printer driver")
       (description
        "SpliX is a set of CUPS drivers for printers that speak @acronym{QPDL,
diff --git a/gnu/packages/curl.scm b/gnu/packages/curl.scm
index 55b7e4393b..3ceae4718a 100644
--- a/gnu/packages/curl.scm
+++ b/gnu/packages/curl.scm
@@ -8,7 +8,7 @@
 ;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Roel Janssen <roel@gnu.org>
-;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2019, 2021 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
 ;;; Copyright © 2020 Dale Mellor <guix-devel-0brg6b@rdmp.org>
 ;;;
@@ -54,7 +54,7 @@
   (package
    (name "curl")
    (version "7.69.1")
-   (replacement curl-7.71.0)
+   (replacement curl-7.74.0)
    (source (origin
             (method url-fetch)
             (uri (string-append "https://curl.haxx.se/download/curl-"
@@ -171,18 +171,18 @@ tunneling, and so on.")
     (name "curl-minimal")
     (inputs (alist-delete "openldap" (package-inputs curl))))))
 
-;; Replacement package to fix CVE-2020-8169 and CVE-2020-8177.
-(define curl-7.71.0
+;; Replacement package to fix multiple security vulnerabilities.
+(define curl-7.74.0
   (package
     (inherit curl)
-    (version "7.71.0")
+    (version "7.74.0")
     (source (origin
               (inherit (package-source curl))
               (uri (string-append "https://curl.haxx.se/download/curl-"
                                   version ".tar.xz"))
               (sha256
                (base32
-                "0wlppmx9iry8slh4pqcxj7lwc6fqwnlhh9ri2pcym2rx76a8gwfd"))))
+                "12w7gskrglg6qrmp822j37fmbr0icrcxv7rib1fy5xiw80n5z7cr"))))
     (arguments
      (substitute-keyword-arguments (package-arguments curl)
        ((#:phases phases)
@@ -243,43 +243,68 @@ not offer a replacement for libcurl.")
 (define-public guile-curl
   (package
    (name "guile-curl")
-   (version "0.6")
+   (version "0.7")
    (source (origin
             (method url-fetch)
             (uri (string-append "http://www.lonelycactus.com/tarball/"
                                 "guile_curl-" version ".tar.gz"))
             (sha256
              (base32
-              "1pxdhnk288ky6gkpad8i60m0p6404rdvls43lr1b5d3csrklyc70"))))
+              "1zk0ijx6bj212k0j0ma84cpvpvn0x6raaxnby3wdx3w4wnhnscn7"))))
    (build-system gnu-build-system)
    (arguments
-    `(#:configure-flags (list (string-append
+    `(#: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
                                "--with-guilesitedir="
                                (assoc-ref %outputs "out")
-                               "/share/guile/site/2.2")
+                               "/share/guile/site/"
+                               (target-guile-effective-version
+                                (assoc-ref %build-inputs "guile")))
                               (string-append
                                "-with-guileextensiondir="
                                (assoc-ref %outputs "out")
-                               "/lib/guile/2.2/extensions"))
+                               "/lib/guile/"
+                               (target-guile-effective-version
+                                (assoc-ref %build-inputs "guile"))
+                               "/extensions"))
       #:phases
       (modify-phases %standard-phases
+        (add-after 'unpack 'patch-undefined-references
+          (lambda* _
+            (substitute* "src/curl.scm"
+              ;; The following #defines are missing from our curl package
+              ;; and therefore result in the evaluation of undefined symbols.
+              ((",CURLOPT_HAPROXYPROTOCOL") "#f")
+              ((",CURLOPT_DISALLOW_USERNAME_IN_URL") "#f")
+              ((",CURLOPT_TIMEVALUE_LARGE") "#f")
+              ((",CURLOPT_DNS_SHUFFLE_ADDRESSES") "#f")
+              ((",CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS") "#f"))))
         (add-after 'install 'patch-extension-path
           (lambda* (#:key outputs #:allow-other-keys)
-             (let* ((out      (assoc-ref outputs "out"))
-                    (curl.scm (string-append
-                               out "/share/guile/site/2.2/curl.scm"))
-                    (curl.go  (string-append
-                               out "/lib/guile/2.2/site-ccache/curl.go"))
-                    (ext      (string-append out "/lib/guile/2.2/"
-                                             "extensions/libguile-curl")))
-               (substitute* curl.scm (("libguile-curl") ext))
-               ;; 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)))))))
+            (let* ((out      (assoc-ref outputs "out"))
+                   (curl.scm (string-append
+                              out "/share/guile/site/"
+                              (target-guile-effective-version)
+                              "/curl.scm"))
+                   (curl.go  (string-append
+                              out "/lib/guile/"
+                              (target-guile-effective-version)
+                              "/site-ccache/curl.go"))
+                   (ext      (string-append out "/lib/guile/"
+                                            (target-guile-effective-version)
+                                            "/extensions/libguile-curl")))
+              (substitute* curl.scm (("libguile-curl") ext))
+              ;; 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)))
    (inputs
     `(("curl" ,curl)
-      ("guile" ,guile-2.2)))
+      ("guile" ,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
@@ -287,6 +312,14 @@ Guile to do client-side URL transfers, like requesting documents from HTTP or
 FTP servers.  It is based on the curl library.")
    (license license:gpl3+)))
 
+(define-public guile2.2-curl
+  (package
+    (inherit guile-curl)
+    (name "guile2.2-curl")
+    (inputs
+     `(("curl" ,curl)
+       ("guile" ,guile-2.2)))))
+
 (define-public curlpp
   (package
     (name "curlpp")
diff --git a/gnu/packages/cybersecurity.scm b/gnu/packages/cybersecurity.scm
index 8ded081c50..b77d714ec8 100644
--- a/gnu/packages/cybersecurity.scm
+++ b/gnu/packages/cybersecurity.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
+;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -26,13 +27,13 @@
 (define-public ropgadget
   (package
     (name "ropgadget")
-    (version "6.3")
+    (version "6.4")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "ROPGadget" version))
        (sha256
-        (base32 "0v34w88if3p4vn46aby24msfnxj6znmkf4848n4d24jnykxcsqk9"))))
+        (base32 "1hz6y5a8d4gc2sryz5alpz9mivrk8kj4l3dw00zkz2xca7gwpmsi"))))
     (build-system python-build-system)
     (propagated-inputs
      `(("python-capstone" ,python-capstone)))
diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index 6c1d95c126..ee883c10f5 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -23,7 +23,7 @@
 ;;; Copyright © 2017 Jelle Licht <jlicht@fsfe.org>
 ;;; Copyright © 2017 Adriano Peluso <catonano@gmail.com>
 ;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net>
-;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; 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>
@@ -44,6 +44,9 @@
 ;;; Copyright © 2020 Lars-Dominik Braun <ldb@leibniz-psychology.org>
 ;;; Copyright © 2020 Guy Fleury Iteriteka <gfleury@disroot.org>
 ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
+;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
+;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
+;;; Copyright © 2021 Sharlatan Hellseher <sharlatanus@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -83,16 +86,20 @@
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnupg)
-  #:use-module (gnu packages guile)
-  #:use-module (gnu packages time)
   #:use-module (gnu packages golang)
+  #:use-module (gnu packages guile)
+  #:use-module (gnu packages icu4c)
   #:use-module (gnu packages jemalloc)
   #:use-module (gnu packages language)
+  #:use-module (gnu packages libedit)
   #:use-module (gnu packages libevent)
   #:use-module (gnu packages linux)
+  #:use-module (gnu packages lisp)
+  #:use-module (gnu packages lisp-xyz)
   #:use-module (gnu packages logging)
   #:use-module (gnu packages man)
   #:use-module (gnu packages maths)
+  #:use-module (gnu packages multiprecision)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages onc-rpc)
   #:use-module (gnu packages parallel)
@@ -105,8 +112,8 @@
   #:use-module (gnu packages protobuf)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-crypto)
-  #:use-module (gnu packages python-web)
   #:use-module (gnu packages python-science)
+  #:use-module (gnu packages python-web)
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages rdf)
   #:use-module (gnu packages readline)
@@ -119,6 +126,7 @@
   #:use-module (gnu packages tcl)
   #:use-module (gnu packages terminals)
   #: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)
@@ -128,6 +136,7 @@
   #:use-module (guix download)
   #:use-module (guix bzr-download)
   #:use-module (guix git-download)
+  #:use-module (guix hg-download)
   #:use-module (guix build-system emacs)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system go)
@@ -232,7 +241,7 @@ standard Go idioms.")
 (define-public ephemeralpg
   (package
     (name "ephemeralpg")
-    (version "3.0")
+    (version "3.1")
     (source
      (origin
        (method url-fetch)
@@ -240,10 +249,10 @@ standard Go idioms.")
              "https://eradman.com/ephemeralpg/code/ephemeralpg-"
              version ".tar.gz"))
        (sha256
-        (base32 "1j0g7g114ma7y7sadbng5p1ss1zsm9zpicm77qspym6565733vvh"))))
+        (base32 "1ap22ki8yz6agd0qybcjgs4b9izw1rwwcgpxn3jah2ccfyax34s6"))))
     (build-system gnu-build-system)
     (arguments
-     '(#:make-flags (list "CC=gcc"
+     `(#:make-flags (list (string-append "CC=" ,(cc-for-target))
                           (string-append "PREFIX=" %output))
        #:phases
        (modify-phases %standard-phases
@@ -306,6 +315,183 @@ ElasticSearch server")
     (home-page "https://github.com/patientslikeme/es_dump_restore")
     (license license:expat)))
 
+(define-public firebird
+  (package
+    (name "firebird")
+    (version "3.0.7")
+    (source
+     (let ((revision "33374-0"))
+       (origin
+         (method url-fetch)
+         (uri (string-append "https://github.com/FirebirdSQL/"
+                             "firebird/releases/download/R"
+                             (string-replace-substring version "." "_") "/"
+                             "Firebird-" version "." revision ".tar.bz2"))
+         (sha256
+          (base32 "0xpy1bncz36c6n28y7kllm1dkrdkn4vb4gw2n43f2351mznmrf5c"))
+         (modules '((guix build utils)))
+         (snippet
+          `(begin
+             (for-each
+              delete-file-recursively
+              (list "extern/btyacc/test" ; TODO: package and remove entirely
+                    "extern/editline"
+                    "extern/icu"
+                    "extern/libtommath"
+                    "extern/zlib"
+                    "src/include/firebird/impl/boost"
+
+                    ;; Missing licence.
+                    "builds/install/arch-specific/solaris"
+                    "extern/SfIO"
+                    "src/msgs/templates.sql"
+
+                    ;; Generated files missing sources.
+                    "doc/Firebird-3-QuickStart.pdf"
+                    (string-append "doc/Firebird-" ,version
+                                   "-ReleaseNotes.pdf")
+                    "doc/README.SecureRemotePassword.html"))
+             #t)))))
+    (build-system gnu-build-system)
+    (outputs (list "debug" "out"))
+    (arguments
+     `(#:configure-flags
+       (let ((out (assoc-ref %outputs "out")))
+         (list (string-append "--with-fbsbin=" out "/sbin")
+               (string-append "--with-fbdoc=" out "/share/doc/"
+                              ,name "-" ,version)
+               (string-append "--with-fbconf=" out "/lib/firebird")
+               (string-append "--with-fbintl=" out "/lib/firebird/intl")
+               (string-append "--with-fbmisc=" out "/lib/firebird/misc")
+               (string-append "--with-fbmsg=" out "/lib/firebird")
+               (string-append "--with-fbplugins=" out "/lib/firebird/plugins")
+               (string-append "--with-fbudf=" out "/lib/firebird/UDF")
+               "--with-fbglock=/run/firebird"
+               "--with-fblog=/var/log/firebird"
+               "--with-fbhelp=/var/lib/firebird/system"
+               "--with-fbsecure-db=/var/lib/firebird/secure"
+               "--without-fbsample"
+               "--without-fbsample-db"
+               "--with-system-editline"))
+       #:make-flags
+       (list (string-append "CC=" ,(cc-for-target))
+             ;; The plugins/ can't find libfbclient otherwise.
+             (string-append "LDFLAGS=-Wl,-rpath="
+                            (assoc-ref %outputs "out") "/lib"))
+       #:tests? #f                      ; no test suite
+       #:modules ((guix build gnu-build-system)
+                  (guix build utils)
+                  (srfi srfi-26))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'use-system-boost
+           (lambda _
+             (substitute* "src/include/firebird/Message.h"
+               (("\"\\./impl/boost/preprocessor/seq/for_each_i\\.hpp\"")
+                "<boost/preprocessor/seq/for_each_i.hpp>")
+               (("FB_BOOST_") "BOOST_"))
+             #t))
+         (add-after 'unpack 'patch-installation
+           (lambda _
+             (substitute*
+                 "builds/install/arch-specific/linux/makeInstallImage.sh.in"
+               (("/bin/sh") (which "bash"))
+               ;; Remove shell script helpers from $PATH.
+               (("(addLibs|cp) .*\\.sh .*@FB_SBINDIR@") ":")
+               ;; Put files where Guix users expect them.
+               (("(License\\.txt.*)@FB_CONFDIR" match)
+                (string-append match "@FB_DOCDIR@"))
+               (("@FB_CONFDIR@(.*License\\.txt.*)" match)
+                (string-append "@FB_DOCDIR@" match))
+               (("(cp .*/doc/.*)@FB_CONFDIR@(.*)" _ head tail)
+                (string-append head "@FB_DOCDIR@" tail "\n")))
+             (substitute*
+                 (list "builds/install/posix-common/changeServerMode.sh.in"
+                       "builds/install/posix-common/install.sh.in")
+               ;; Skip phases that (could) cause problems in Guix.
+               (("check(InstallUser|IfServerRunning|Libraries)|addFirebirdUser")
+                ":")
+               ;; Skip phases that are merely pointless on Guix.
+               (("buildUninstallFile|installInitdScript|startFirebird") ":")
+               ;; Omit randomly generated password with bonus timestamp.
+               (("setDBAPassword") ":"))
+
+             ;; These promote proprietary workflows not relevant on Guix.
+             (for-each delete-file-recursively
+                       (find-files "doc" "README\\.(build\\.msvc|NT|Win)"))
+             #t))
+         (add-after 'configure 'delete-init-scripts
+           (lambda _
+             (delete-file-recursively "gen/install/misc")
+             #t))
+         (add-before 'build 'set-build-environment-variables
+           (lambda _
+             ;; ‘isql’ needs to run & find libfbclient.so during the build.
+             ;; This doubles as a rudimentary test in lieu of a test suite.
+             (setenv "LD_LIBRARY_PATH"
+                     (string-append (assoc-ref %build-inputs "icu4c") "/lib"))
+             #t))
+         (add-before 'install 'keep-embedded-debug-symbols
+           (lambda _
+             ;; Let the gnu-build-system separate & deal with them later.
+             ;; XXX Upstream would use ‘--strip-unneeded’, shaving a whole
+             ;; megabyte off Guix's 7.7M libEngine12.so, for example.
+             (substitute* "gen/Makefile.install"
+               (("readelf") "false"))
+             #t))
+         (add-after 'install 'prune-undesirable-files
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (with-directory-excursion out
+                 ;; Remove example binaries.
+                 (for-each delete-file-recursively
+                           (find-files "." "example"))
+                 ;; Delete (now-)empty directories.
+                 (for-each rmdir
+                           (list "include/firebird/impl"
+                                 "lib/firebird/plugins/udr"))
+                 #t)))))))
+    (inputs
+     `(("boost" ,boost)
+       ("editline" ,editline)
+       ("icu4c" ,icu4c-67)
+       ("libtommath" ,libtommath)
+       ("ncurses" ,ncurses)
+       ("zlib" ,zlib)))
+    (home-page "https://www.firebirdsql.org")
+    (synopsis "Relational database with many ANSI SQL standard features")
+    (description
+     "Firebird is an SQL @acronym{RDBMS, relational database management system}
+with rich support for ANSI SQL (e.g., @code{INSERT...RETURNING}) including
+@acronym{UDFs, user-defined functions} and PSQL stored procedures, cursors, and
+triggers.  Transactions provide full ACID-compliant referential integrity.
+
+The database requires very little manual maintenance once set up, making it
+ideal for small business or embedded use.
+
+When installed as a traditional local or remote (network) database server,
+Firebird can grow to terabyte scale with proper tuning---although PostgreSQL
+may be a better choice for such very large environments.
+
+Firebird can also be embedded into stand-alone applications that don't want or
+need a full client & server.  Used in this manner, it offers richer SQL support
+than SQLite as well as the option to seamlessly migrate to a client/server
+database later.")
+    (properties
+     `((lint-hidden-cve . ("CVE-2017-6369"))))
+    (license
+     ;; See doc/license/README.license.usage.txt for rationale & details.
+     (list license:bsd-3                ; src/common/sha2/
+           license:bsd-4                ; src/common/enc.cpp
+           license:gpl2+                ; builds/posix/make.defaults
+           (license:non-copyleft "file:///builds/install/misc/IPLicense.txt"
+                                 "InterBase Public License v1.0")
+           (license:non-copyleft "file:///builds/install/misc/IDPLicense.txt"
+                                 "Initial Developer's Public License v1.0")
+           license:lgpl2.1           ; exception for OSI-compatible licences
+           license:mpl1.1            ; examples/interfaces/0{6,8}*.cpp
+           license:public-domain)))) ; including files without explicit licence
+
 (define-public leveldb
   (package
     (name "leveldb")
@@ -334,14 +520,14 @@ mapping from string keys to string values.")
 (define-public memcached
   (package
     (name "memcached")
-    (version "1.5.20")
+    (version "1.6.9")
     (source
      (origin
        (method url-fetch)
        (uri (string-append
              "https://memcached.org/files/memcached-" version ".tar.gz"))
        (sha256
-        (base32 "1r511qr95q0ywdaql3pdjiwzkfqxhhfzb13ilvl7mznfm4iv1myg"))))
+        (base32 "1lcjy1b9krnb2gk72qd1fvivlfiyfvknfi3wngyvyk9ifzijr9nm"))))
     (build-system gnu-build-system)
     (inputs
      `(("libevent" ,libevent)
@@ -716,7 +902,7 @@ Language.")
 (define-public mariadb
   (package
     (name "mariadb")
-    (version "10.1.45")
+    (version "10.5.6")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://downloads.mariadb.com/MariaDB"
@@ -724,8 +910,7 @@ Language.")
                                   version ".tar.gz"))
               (sha256
                (base32
-                "1mfs0x4c0z7d306n128dxdawk3llk25vxif5zwl20fv1z5qhz3wx"))
-              (patches (search-patches "mariadb-client-test-32bit.patch"))
+                "1i257h0zdypdfj5wkg6ck9pxlkph0jvjs92k22pjr6gnx5lxs1gz"))
               (modules '((guix build utils)))
               (snippet
                '(begin
@@ -743,8 +928,8 @@ Language.")
                   (for-each (lambda (file)
                               (unless (string-suffix? "CMakeLists.txt" file)
                                 (delete-file file)))
-                            (append (find-files "extra/yassl")
-                                    (find-files "pcre") (find-files "zlib")))
+                            (append (find-files "extra/wolfssl")
+                                    (find-files "zlib")))
                   #t))))
     (build-system cmake-build-system)
     (outputs '("out" "lib" "dev"))
@@ -798,29 +983,20 @@ Language.")
          "-DINSTALL_SHAREDIR=share")
        #:phases
        (modify-phases %standard-phases
-         ,@(if (string-prefix? "arm" (%current-system))
-               ;; XXX: Because of the GCC 5 input, we need to hide GCC 7 from
-               ;; CPLUS_INCLUDE_PATH so that its headers do not shadow GCC 5.
-               '((add-after 'set-paths 'hide-default-gcc
-                   (lambda* (#:key inputs #:allow-other-keys)
-                     (let ((gcc (assoc-ref inputs "gcc")))
-                       (setenv "CPLUS_INCLUDE_PATH"
-                               (string-join
-                                (delete (string-append gcc "/include/c++")
-                                        (string-split (getenv "CPLUS_INCLUDE_PATH")
-                                                      #\:))
-                                ":"))
-                       #t))))
-               '())
-         (add-after 'unpack 'fix-pcre-detection
+         (add-after 'unpack 'adjust-output-references
            (lambda _
-             ;; The bundled PCRE in MariaDB has a patch that was upstreamed
-             ;; in version 8.34.  Unfortunately the upstream patch behaves
-             ;; slightly differently and the build system fails to detect it.
-             ;; See <https://bugs.exim.org/show_bug.cgi?id=2173>.
-             ;; XXX: Consider patching PCRE instead.
-             (substitute* "cmake/pcre.cmake"
-               ((" OR NOT PCRE_STACK_SIZE_OK") ""))
+             ;; The build system invariably prepends $CMAKE_INSTALL_PREFIX
+             ;; to other variables such as $INSTALL_INCLUDEDIR, which does
+             ;; not work when the latter uses an absolute file name.
+             (substitute* "libmariadb/mariadb_config/mariadb_config.c.in"
+               (("@CMAKE_INSTALL_PREFIX@/@INSTALL_INCLUDEDIR@")
+                "@INSTALL_INCLUDEDIR@"))
+             (substitute* "libmariadb/mariadb_config/libmariadb.pc.in"
+               (("\\$\\{prefix\\}/@INSTALL_INCLUDEDIR@")
+                "@INSTALL_INCLUDEDIR@"))
+             (substitute* "include/CMakeLists.txt"
+               (("\\\\\\$\\{CMAKE_INSTALL_PREFIX\\}/\\$\\{INSTALL_INCLUDEDIR\\}")
+                "${INSTALL_INCLUDEDIR}"))
              #t))
          (add-after 'unpack 'adjust-tests
            (lambda _
@@ -828,6 +1004,7 @@ Language.")
                     '(;; 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"
@@ -836,20 +1013,7 @@ Language.")
 
                       ;; This file contains a time bomb which makes it fail after
                       ;; 2030-12-31.  See <https://bugs.gnu.org/34351> for details.
-                      "main.mysqldump"
-
-                      ;; FIXME: This test fails on i686:
-                      ;; -myisampack: Can't create/write to file (Errcode: 17 "File exists")
-                      ;; +myisampack: Can't create/write to file (Errcode: 17 "File exists)
-                      ;; When running "myisampack --join=foo/t3 foo/t1 foo/t2"
-                      ;; (all three tables must exist and be identical)
-                      ;; in a loop it produces the same error around 1/240 times.
-                      ;; montywi on #maria suggested removing the real_end check in
-                      ;; "strings/my_vsnprintf.c" on line 503, yet it still does not
-                      ;; reach the ending quote occasionally.  Disable it for now.
-                      "main.myisampack"
-                      ;; FIXME: This test fails on armhf-linux:
-                      "mroonga/storage.index_read_multiple_double"))
+                      "main.mysqldump"))
 
                    ;; This file contains a list of known-flaky tests for this
                    ;; release.  Append our own items.
@@ -860,9 +1024,10 @@ Language.")
                          disabled-tests)
                (close-port unstable-tests)
 
-               ;; XXX: This test fails because it expects a latin1 charset and
+               ;; XXX: These fail because they expect a latin1 charset and
                ;; collation.  See <https://jira.mariadb.org/browse/MDEV-21264>.
-               (substitute* "mysql-test/r/gis_notembedded.result"
+               (substitute* '("mysql-test/main/gis_notembedded.result"
+                              "mysql-test/main/system_mysql_db.result")
                  (("latin1_swedish_ci") "utf8_general_ci")
                  (("\tlatin1") "\tutf8"))
 
@@ -895,6 +1060,10 @@ Language.")
                            "--testcase-timeout=40"
                            "--suite-timeout=600"
                            "--parallel" (number->string (parallel-job-count))
+                           ;; 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))
@@ -905,56 +1074,57 @@ Language.")
                    (dev     (assoc-ref outputs "dev"))
                    (lib     (assoc-ref outputs "lib"))
                    (openssl (assoc-ref inputs "openssl")))
-              (substitute* (string-append out "/bin/mysql_install_db")
+              (substitute* (list (string-append out "/bin/mariadb-install-db")
+                                 (string-append out "/bin/mysql_install_db"))
                 (("basedir=\"\"")
-                 (string-append "basedir=\"" out "\"")))
+                 (string-append "basedir=\"" out "\""))
+                (("\\$basedir/share/mysql")
+                 (string-append lib "/share/mysql")))
+
               ;; Remove unneeded files for testing.
               (with-directory-excursion lib
                 (for-each delete-file-recursively
-                          '("data" "mysql-test" "sql-bench"))
+                          '("mysql-test" "sql-bench"))
                 ;; And static libraries.
                 (for-each delete-file (find-files "lib" "\\.a$")))
               (with-directory-excursion out
                 (delete-file "share/man/man1/mysql-test-run.pl.1")
                 ;; Delete huge and unnecessary executables.
-                (for-each delete-file (find-files "bin" "(test|embedded)")))
+                (for-each delete-file (find-files "bin" "test$")))
               (mkdir-p (string-append dev "/share"))
               (mkdir-p (string-append dev "/bin"))
+              (rename-file (string-append lib "/bin/mariadbd")
+                           (string-append out "/bin/mariadbd"))
               (rename-file (string-append lib "/bin/mysqld")
                            (string-append out "/bin/mysqld"))
-              (rename-file (string-append lib "/share/pkgconfig")
-                           (string-append dev "/share/pkgconfig"))
+              (mkdir-p (string-append dev "/lib"))
+              (rename-file (string-append lib "/lib/pkgconfig")
+                           (string-append dev "/lib/pkgconfig"))
+              (rename-file (string-append lib "/bin/mariadb_config")
+                           (string-append dev "/bin/mariadb_config"))
               (rename-file (string-append out "/bin/mysql_config")
                            (string-append dev "/bin/mysql_config"))
 
-
-              (substitute*  (string-append out "/bin/mysql_install_db")
-                (("\\$basedir/share/mysql")
-                 (string-append lib "/share/mysql")))
-
               ;; Embed an absolute reference to OpenSSL in mysql_config
               ;; and the pkg-config file to avoid propagation.
+              ;; XXX: how to do this for mariadb_config.c.in?
               (substitute* (list (string-append dev "/bin/mysql_config")
-                                 (string-append dev "/share/pkgconfig/mariadb.pc"))
+                                 (string-append dev "/lib/pkgconfig/mariadb.pc"))
                 (("-lssl -lcrypto" all)
                  (string-append "-L" openssl "/lib " all)))
 
               #t))))))
     (native-inputs
      `(("bison" ,bison)
-       ;; XXX: On armhf, use GCC 5 to work around <https://bugs.gnu.org/37605>.
-       ,@(if (string-prefix? "armhf" (%current-system))
-             `(("gcc@5", gcc-5))
-             '())
        ("perl" ,perl)))
     (inputs
      `(("jemalloc" ,jemalloc)
        ("libaio" ,libaio)
        ("libxml2" ,libxml2)
        ("ncurses" ,ncurses)
-       ("openssl" ,openssl-1.0)
+       ("openssl" ,openssl)
        ("pam" ,linux-pam)
-       ("pcre" ,pcre)
+       ("pcre2" ,pcre2)
        ("xz" ,xz)
        ("zlib" ,zlib)))
     ;; The test suite is very resource intensive and can take more than three
@@ -970,16 +1140,16 @@ as a drop-in replacement of MySQL.")
 (define-public mariadb-connector-c
   (package
     (name "mariadb-connector-c")
-    (version "3.1.9")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "https://downloads.mariadb.org/f/connector-c-"
-                    version "/mariadb-connector-c-"
-                    version "-src.tar.gz"))
-              (sha256
-               (base32
-                "1izjzf7yzjqzlk8dkp327fa9lawsv2hnnlnr7g5lshyx5azrk38h"))))
+    (version "3.1.11")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://downloads.mariadb.org/f/connector-c-" version
+             "/mariadb-connector-c-" version "-src.tar.gz"
+             "/from/https%3A//mirrors.ukfast.co.uk/sites/mariadb/?serve"))
+       (sha256
+        (base32 "03svzahdf7czjlm695c11r4bfd04qdqgx8r1vkpr1zlkjhwnqvry"))))
     (inputs
      `(("openssl" ,openssl)))
     (build-system cmake-build-system)
@@ -1038,6 +1208,20 @@ TIMESTAMP.  It also supports storage of binary large objects, including
 pictures, sounds, or video.")
     (license (license:x11-style "file://COPYRIGHT"))))
 
+(define-public postgresql-10 postgresql)
+
+(define-public postgresql-13
+  (package
+    (inherit postgresql)
+    (version "13.1")
+    (source (origin
+              (inherit (package-source postgresql))
+              (uri (string-append "https://ftp.postgresql.org/pub/source/v"
+                                  version "/postgresql-" version ".tar.bz2"))
+              (sha256
+               (base32
+                "07z6zwr58dckaa97yl9ml240z83d1lhgaxw9aq49i8lsp21mqd0j"))))))
+
 (define-public postgresql-11
   (package
     (inherit postgresql)
@@ -1064,6 +1248,89 @@ pictures, sounds, or video.")
                (base32
                 "1rr2dgv4ams8r2lp13w85c77rkmzpb88fjlc28mvlw6zq2fblv2w"))))))
 
+(define-public pgloader
+  (package
+    (name "pgloader")
+    (version "3.6.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/dimitri/pgloader")
+             (commit (string-append "v" version))))
+       (sha256
+        (base32 "06i1jd2za3ih5caj2b4vzlzags5j65vv8dfdbz0ggdrp40wfd5lh"))
+       (file-name (git-file-name name version))))
+    (build-system gnu-build-system)
+    (arguments
+     ;; NOTE: (Sharlatan-20210119T211511+0000) Tests are disabled due to being
+     ;; dependent on Quicklisp, main build target is `pgloader-standalone' which
+     ;; does not require Quicklisp workarounds. There is no `install' target
+     ;; configured in Makefile.
+     `(#:tests? #f
+       #:strip-binaries? #f
+       #:make-flags
+       (list "pgloader-standalone" "BUILDAPP_SBCL=buildapp")
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (add-after 'unpack 'set-home
+           (lambda _
+             (setenv "HOME" "/tmp")
+             #t))
+         (add-after 'unpack 'patch-Makefile
+           (lambda _
+             (substitute* "Makefile"
+               (("--sbcl.*") "--sbcl $(CL) --asdf-path . \\\n"))
+             #t))
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
+               (mkdir-p bin)
+               (install-file "build/bin/pgloader"  bin))
+             #t)))))
+    (native-inputs
+     `(("buildapp" ,buildapp)
+       ("sbcl" ,sbcl)))
+    (inputs
+     `(("alexandria" ,sbcl-alexandria)
+       ("cl-abnf" ,sbcl-cl-abnf)
+       ("cl-base64" ,sbcl-cl-base64)
+       ("cl-csv" ,sbcl-cl-csv)
+       ("cl-fad" ,sbcl-cl-fad)
+       ("cl-log" ,sbcl-cl-log)
+       ("cl-markdown" ,sbcl-cl-markdown)
+       ("cl-mustache" ,sbcl-cl-mustache)
+       ("cl-ppcre" ,sbcl-cl-ppcre)
+       ("cl-sqlite" ,sbcl-cl-sqlite)
+       ("closer-mop" ,sbcl-closer-mop)
+       ("command-line-arguments" ,sbcl-command-line-arguments)
+       ("db3" ,sbcl-db3)
+       ("drakma" ,sbcl-drakma)
+       ("esrap" ,sbcl-esrap)
+       ("flexi-streams" ,sbcl-flexi-streams)
+       ("ixf" ,sbcl-ixf)
+       ("local-time" ,sbcl-local-time)
+       ("lparallel" ,sbcl-lparallel)
+       ("metabang-bind" ,sbcl-metabang-bind)
+       ("mssql" ,sbcl-mssql)
+       ("postmodern" ,sbcl-postmodern)
+       ("py-configparser" ,sbcl-py-configparser)
+       ("qmynd" ,sbcl-qmynd)
+       ("quri" ,sbcl-quri)
+       ("split-sequence" ,sbcl-split-sequence)
+       ("trivial-backtrace" ,sbcl-trivial-backtrace)
+       ("usocket" ,sbcl-usocket)
+       ("uuid" ,sbcl-uuid)
+       ("yason" ,sbcl-yason)
+       ("zs3" ,sbcl-zs3)))
+    (home-page "https://pgloader.io/")
+    (synopsis "Tool to migrate data to PostgreSQL")
+    (description
+     "@code{pgloader} is a program that can load data or migrate databases from
+CSV, DB3, iXF, SQLite, MS-SQL or MySQL to PostgreSQL.")
+    (license (license:x11-style "file://LICENSE"))))
+
 (define-public python-pymysql
   (package
     (name "python-pymysql")
@@ -1139,13 +1406,13 @@ organized in a hash table or B+ tree.")
 
     (native-inputs `(("bc" ,bc)
                      ("bash:include" ,bash "include")
-                     ("check" ,check)
-                     ("libuuid" ,util-linux)
+                     ("check" ,check-0.14)
                      ("pkg-config" ,pkg-config)))
 
     ;; TODO: Add more optional inputs.
     (inputs `(("curl" ,curl)
-              ("libgcrypt" ,libgcrypt)))
+              ("libgcrypt" ,libgcrypt)
+              ("libuuid" ,util-linux "lib")))
     (synopsis "Manipulate plain text files as databases")
     (description
      "GNU Recutils is a set of tools and libraries for creating and
@@ -1202,6 +1469,7 @@ including field and record folding.")))
      `(#:make-flags (list "CC=gcc" "V=1"
                           ;; Ceph requires that RTTI is enabled.
                           "USE_RTTI=1"
+                          "date=1970-01-01" ; build reproducibly
                           (string-append "INSTALL_PATH="
                                          (assoc-ref %outputs "out"))
 
@@ -1343,7 +1611,7 @@ for example from a shell script.")
 (define-public sqitch
   (package
     (name "sqitch")
-    (version "1.0.0")
+    (version "1.1.0")
     (source
      (origin
        (method url-fetch)
@@ -1351,7 +1619,7 @@ for example from a shell script.")
              "mirror://cpan/authors/id/D/DW/DWHEELER/App-Sqitch-v"
              version ".tar.gz"))
        (sha256
-        (base32 "0p4wraqiscvwmmsvfqfy65blgsilwpvd9zj4d2zvm2xdx70ncr7l"))))
+        (base32 "1ayiwg9kh3w0nbacbcln7h944z94vq5vnnd5diz86033bpbnq57f"))))
     (build-system perl-build-system)
     (arguments
      '(#:phases
@@ -1383,6 +1651,7 @@ for example from a shell script.")
        ("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)))
     (inputs
@@ -1391,7 +1660,9 @@ for example from a shell script.")
        ("perl-config-gitlike" ,perl-config-gitlike)
        ("perl-datetime" ,perl-datetime)
        ("perl-datetime-timezone" ,perl-datetime-timezone)
+       ("perl-dbd-mysql" ,perl-dbd-mysql)
        ("perl-dbd-pg" ,perl-dbd-pg)
+       ("perl-dbd-sqlite" ,perl-dbd-sqlite)
        ("perl-dbi" ,perl-dbi)
        ("perl-devel-stacktrace" ,perl-devel-stacktrace)
        ("perl-encode-locale" ,perl-encode-locale)
@@ -1738,7 +2009,7 @@ columns, primary keys, unique constraints and relationships.")
 (define-public perl-dbd-sqlite
   (package
     (name "perl-dbd-sqlite")
-    (version "1.64")
+    (version "1.66")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1746,7 +2017,7 @@ columns, primary keys, unique constraints and relationships.")
                     version ".tar.gz"))
               (sha256
                (base32
-                "00gz5aw3xrr92lf9nfk0dhmy7a8jzmxhznddd9b0a8w4a1xqzbpl"))))
+                "1zljln5nh61gj3k22a1fv2vhx5l83waizmarwkh77hk6kzzmvrw9"))))
     (build-system perl-build-system)
     (inputs `(("sqlite" ,sqlite)))
     (propagated-inputs `(("perl-dbi" ,perl-dbi)))
@@ -1777,7 +2048,7 @@ module, and nothing else.")
     (synopsis "Parse and utilize MySQL's /etc/my.cnf and ~/.my.cnf files")
     (description
      "@code{MySQL::Config} emulates the @code{load_defaults} function from
-libmysqlclient.  It will fill an aray with long options, ready to be parsed by
+libmysqlclient.  It will fill an array with long options, ready to be parsed by
 @code{Getopt::Long}.")
     (license license:perl-license)))
 
@@ -1898,7 +2169,7 @@ valid SQL query.")
 (define-public unixodbc
   (package
    (name "unixodbc")
-   (version "2.3.7")
+   (version "2.3.9")
    (source (origin
             (method url-fetch)
             (uri
@@ -1906,7 +2177,7 @@ valid SQL query.")
               "ftp://ftp.unixodbc.org/pub/unixODBC/unixODBC-"
               version ".tar.gz"))
             (sha256
-             (base32 "0xry3sg497wly8f7715a7gwkn2k36bcap0mvzjw74jj53yx6kwa5"))))
+             (base32 "01xj65d02i3yjy7p9z08y9jakcs5szmz4rask868n7387nn3x0sj"))))
    (build-system gnu-build-system)
    (synopsis "Data source abstraction library")
    (description "Unixodbc is a library providing an API with which to access
@@ -1945,19 +2216,43 @@ similar to BerkeleyDB, LevelDB, etc.")
 (define-public redis
   (package
     (name "redis")
-    (version "5.0.7")
+    (version "6.0.10")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://download.redis.io/releases/redis-"
                                   version".tar.gz"))
               (sha256
                (base32
-                "0ax8sf3vw0yadr41kzc04917scrg5wir1d94zmbz00b8pzm79nv1"))))
+                "1gc529nfh8frk4pynyjlnmzvwa0j9r5cmqwyd7537sywz6abifvr"))
+              (modules '((guix build utils)))
+              (snippet
+               ;; Delete bundled jemalloc, as the package will use the libc one
+               '(begin (delete-file-recursively "deps/jemalloc")
+                       #t))))
     (build-system gnu-build-system)
+    (native-inputs
+     `(("procps" ,procps) ; for tests
+       ("tcl" ,tcl)))     ; for tests
     (arguments
-     '(#:tests? #f ; tests related to master/slave and replication fail
-       #:phases (modify-phases %standard-phases
-                  (delete 'configure))
+     '(#:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (add-after 'unpack 'use-correct-tclsh
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "runtest"
+               (("^TCLSH=.*")
+                (string-append "TCLSH="
+                               (assoc-ref inputs "tcl")
+                               "/bin/tclsh")))
+             #t))
+         (add-after 'unpack 'adjust-tests
+           (lambda _
+             ;; Disable failing tests
+             (substitute* "tests/test_helper.tcl"
+               (("    integration/replication[^-]") "")
+               (("    integration/replication-4") "")
+               (("    integration/replication-psync") ""))
+             #t)))
        #:make-flags `("CC=gcc"
                       "MALLOC=libc"
                       "LDFLAGS=-ldl"
@@ -1973,14 +2268,14 @@ sets, bitmaps and hyperloglogs.")
 (define-public kyotocabinet
   (package
     (name "kyotocabinet")
-    (version "1.2.78")
+    (version "1.2.79")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://fallabs.com/kyotocabinet/pkg/"
                                   "kyotocabinet-" version ".tar.gz"))
               (sha256
                (base32
-                "1bxkf9kmcavq9rqridb8mvmrk3hj4447ffi24m2admsbm61n6k29"))))
+                "079ymsahlrijswgwfr2la9yw5h57l752cprhp5dz31iamsj1vyv7"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags
@@ -2120,14 +2415,14 @@ database.")
 (define-public perl-db-file
  (package
   (name "perl-db-file")
-  (version "1.853")
+  (version "1.855")
   (source
     (origin
       (method url-fetch)
       (uri (string-append "mirror://cpan/authors/id/P/PM/PMQS/DB_File-"
                           version ".tar.gz"))
       (sha256
-        (base32 "1y967si45vj0skip1hnhicbv9da29fv6qcfwnsbnvj06n36mkj6h"))))
+        (base32 "0q599h7g4jkzks5dxf1zifx9k7l9vif26r2dlgkzxkg6bfif5zyr"))))
   (build-system perl-build-system)
   (inputs `(("bdb" ,bdb)))
   (native-inputs `(("perl-test-pod" ,perl-test-pod)))
@@ -2140,8 +2435,7 @@ database.")
                        (("/usr/local/BerkeleyDB") (assoc-ref inputs "bdb")))
                      #t)))))
   (home-page "https://metacpan.org/release/DB_File")
-  (synopsis
-    "Perl5 access to Berkeley DB version 1.x")
+  (synopsis "Perl5 access to Berkeley DB version 1.x")
   (description
     "The DB::File module provides Perl bindings to the Berkeley DB version 1.x.")
   (license license:perl-license)))
@@ -2149,7 +2443,7 @@ database.")
 (define-public lmdb
   (package
     (name "lmdb")
-    (version "0.9.25")
+    (version "0.9.27")
     (source
      (origin
        (method git-fetch)
@@ -2158,7 +2452,7 @@ database.")
              (commit (string-append "LMDB_" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0i60zlca8r6fib23gdgl4c80gxpx24772ggpvz94yr7zaai4k11w"))))
+        (base32 "09xqqm8yjsf1gv4gd4llal48sms76hfhxadx6rik1j2g5v3d3f1k"))))
     (build-system gnu-build-system)
     (arguments
      `(#:test-target "test"
@@ -2169,7 +2463,25 @@ database.")
              (chdir "libraries/liblmdb")
              (substitute* "Makefile"
                (("/usr/local") (assoc-ref outputs "out")))
-            #t)))))
+            #t))
+         (add-after 'install 'create-pkg-config-file
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (mkdir-p (string-append out "/lib/pkgconfig"))
+               (with-output-to-file (string-append out "/lib/pkgconfig/liblmdb.pc")
+                 (lambda _
+                   (format #t "prefix=~a~@
+                           exec_prefix=~a~@
+                           libdir=~a/lib~@
+                           includedir=~a/include~@
+                           ~@
+                           Name: liblmdb~@
+                           Version: ~a~@
+                           Description: Lightning Memory-Mapped Database library~@
+                           Libs: -L${libdir} -llmdb~@
+                           Cflags: -I${includedir}~%"
+                           out out out out ,version)))
+                 #t))))))
     (home-page "https://symas.com/lmdb/")
     (synopsis "Lightning Memory-Mapped Database library")
     (description
@@ -2250,17 +2562,18 @@ on another machine, accessed via TCP/IP.")
 (define-public python-peewee
   (package
     (name "python-peewee")
-    (version "3.9.6")
-      (source
-        (origin
-        (method url-fetch)
-        (uri (pypi-uri "peewee" version))
-        (sha256
-         (base32
-          "1j4sh946k0736m7pd54z0y6i2hjhgg3kdllx1pwq8xkzzcgrx1xw"))))
+    (version "3.14.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "peewee" version))
+       (sha256
+        (base32 "1yl49gxrg0c2x3n3r60z3lixw9am8b61s0477l9vjabhhx1yziar"))))
     (build-system python-build-system)
     (arguments
-     `(#:tests? #f)) ; Fails to import test data
+     `(#:tests? #f))                    ; fails to import test data
+    (inputs
+     `(("sqlite" ,sqlite)))
     (native-inputs
      `(("python-cython" ,python-cython)))
     (home-page "https://github.com/coleifer/peewee/")
@@ -2450,13 +2763,13 @@ etc., and an SQL engine for performing simple SQL queries.")
 (define-public python-lmdb
   (package
     (name "python-lmdb")
-    (version "0.98")
+    (version "1.0.0")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "lmdb" version))
               (sha256
                (base32
-                "027pgbdhhdcbwj53vrzr6a60gjhmz4s75gl3180fd4q8pwlbq986"))
+                "1di1gj2agbxwqqwrpk4w58dpfah0kl10ha20s63dlqdd1bgzydj1"))
               (modules '((guix build utils)))
               (snippet
                ;; Delete bundled lmdb source files.
@@ -2475,6 +2788,7 @@ etc., and an SQL engine for performing simple SQL queries.")
          (add-before 'build 'use-system-lmdb
            (lambda* (#:key inputs #:allow-other-keys)
              (let ((lmdb (assoc-ref inputs "lmdb")))
+               (setenv "LMDB_PURE" "set") ; don't apply env-copy-txn.patch
                (setenv "LMDB_FORCE_SYSTEM" "set")
                (setenv "LMDB_INCLUDEDIR" (string-append lmdb "/include"))
                (setenv "LMDB_LIBDIR" (string-append lmdb "/lib"))
@@ -2549,7 +2863,19 @@ implementation for Python.")
        ;; TODO: Removing the libsrc/zlib source directory breaks the build.
        ;; This indicates that the internal zlib code may still be used.
        #:configure-flags '("--without-internal-zlib"
-                           "--with-readline")))
+                           "--with-readline"
+                           "--enable-static=no")
+       #:phases
+       (modify-phases %standard-phases
+         ;; Even with "--enable-static=no", "libvirtuoso-t.a" is left in
+         ;; the build output.  The following phase removes it.
+         (add-after 'install 'remove-static-libs
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((lib (string-append (assoc-ref outputs "out") "/lib")))
+               (for-each (lambda (file)
+                           (delete-file (string-append lib "/" file)))
+                         '("libvirtuoso-t.a"
+                           "libvirtuoso-t.la"))))))))
     (inputs
      `(("openssl" ,openssl-1.0)
        ("net-tools" ,net-tools)
@@ -2620,13 +2946,13 @@ Database API 2.0T.")
 (define-public python-sqlalchemy
   (package
     (name "python-sqlalchemy")
-    (version "1.3.18")
+    (version "1.3.20")
     (source
      (origin
       (method url-fetch)
       (uri (pypi-uri "SQLAlchemy" version))
       (sha256
-       (base32 "1rwc6ss1cnz3kxx0p9p6xw0w79r8qw03lcc29k31yb3rcigvfbys"))))
+       (base32 "18b9am7bsqc4nj3d2h5r93i002apczxfvpfpcqbd6f0385zmrwnj"))))
     (build-system python-build-system)
     (native-inputs
      `(("python-cython" ,python-cython) ; for C extensions
@@ -2700,16 +3026,57 @@ You might also want to install the following optional dependencies:
 (define-public python2-sqlalchemy-utils
   (package-with-python2 python-sqlalchemy-utils))
 
+(define-public python-alchemy-mock
+  (package
+    (name "python-alchemy-mock")
+    (version "0.4.3")
+    (home-page "https://github.com/miki725/alchemy-mock")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "alchemy-mock" version))
+              (sha256
+               (base32
+                "0ylxygl3bcdapzz529n8wgk7vx9gjwb3ism564ypkpd7dbsw653r"))))
+    (build-system python-build-system)
+    (arguments
+     '(#:phases (modify-phases %standard-phases
+                  (replace 'check
+                    (lambda _
+                      ;; Create pytest.ini that adds doctest options to
+                      ;; prevent test failure.  Taken from tox.ini.
+                      (call-with-output-file "pytest.ini"
+                        (lambda (port)
+                          (format port "[pytest]
+doctest_optionflags=IGNORE_EXCEPTION_DETAIL
+")))
+                      (invoke "pytest" "-vv" "--doctest-modules"
+                              "alchemy_mock/"))))))
+    (native-inputs
+     `(("python-mock" ,python-mock)
+       ("python-pytest" ,python-pytest)))
+    (propagated-inputs
+     `(("python-six" ,python-six)
+       ("python-sqlalchemy" ,python-sqlalchemy)))
+    (synopsis "Mock helpers for SQLAlchemy")
+    (description
+     "This package provides mock helpers for SQLAlchemy that makes it easy
+to mock an SQLAlchemy session while preserving the ability to do asserts.
+
+Normally Normally SQLAlchemy's expressions cannot be easily compared as
+comparison on binary expression produces yet another binary expression, but
+this library provides functions to facilitate such comparisons.")
+    (license license:expat)))
+
 (define-public python-alembic
   (package
     (name "python-alembic")
-    (version "1.4.2")
+    (version "1.4.3")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "alembic" version))
        (sha256
-        (base32 "1gsdrzx9h7wfva200qvvsc9sn4w79mk2vs0bbnzjhxi1jw2b0nh3"))))
+        (base32 "0if2dgb088clk738p26bwk50735h6jpd2kacdgc5capv2hiz6d2k"))))
     (build-system python-build-system)
     (arguments
      '(#:phases (modify-phases %standard-phases
@@ -2885,13 +3252,13 @@ designed to be easy and intuitive to use.")
 (define-public python-psycopg2
   (package
     (name "python-psycopg2")
-    (version "2.8.5")
+    (version "2.8.6")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "psycopg2" version))
        (sha256
-        (base32 "06081jk9srkd4ra9j8b93x9ld3a2yxsbsf5bbbcivbm1yx065m7p"))))
+        (base32 "0hzmk6b1hb5riqkljr5xics6p4zbvmis6knbczb7zhq7273zc8zv"))))
     (build-system python-build-system)
     (arguments
      ;; Tests would require a postgresql database "psycopg2_test"
@@ -2936,27 +3303,51 @@ database).")
 (define-public python2-sadisplay
   (package-with-python2 python-sadisplay))
 
+(define-public yoyo-migrations
+  (package
+    (name "yoyo-migrations")
+    (version "7.2.0")
+    (source
+     (origin
+       ;; We use the upstream repository, as the tests are not included in the
+       ;; PyPI releases.
+       (method hg-fetch)
+       (uri (hg-reference
+             (url "https://hg.sr.ht/~olly/yoyo")
+             (changeset (string-append "v" version "-release"))))
+       (file-name (string-append name "-" version "-checkout"))
+       (sha256
+        (base32 "0q2z9bgdj3wyix7yvqsayfs21grp5av8ilh411lgmjhigszkvhcq"))))
+    (build-system python-build-system)
+    (arguments
+     ;; XXX: Tests require a connection to some pgsql database and psycopg
+     ;; fails to connect to it.
+     '(#:tests? #f))
+    (propagated-inputs
+     `(("python-sqlparse" ,python-sqlparse)
+       ("python-tabulate" ,python-tabulate)))
+    (home-page "https://ollycope.com/software/yoyo/latest/")
+    (synopsis "Database migrations with SQL")
+    (description
+     "Yoyo is a database schema migration tool.  Migrations are written as SQL
+files or Python scripts that define a list of migration steps.")
+    (license license:asl2.0)))
+
 (define-public python-mysqlclient
   (package
     (name "python-mysqlclient")
-    (version "1.3.13")
+    (version "2.0.1")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "mysqlclient" version))
        (sha256
         (base32
-         "0kv4a1icwdav8jpl7qvnr931lw5h3v22ids6lwq6qpi1hjzf33pz"))))
+         "1rf5l8hazs3v18hmcrm90z3hi9wxv553ipwd5l6kj8j7l6p7abzv"))))
     (build-system python-build-system)
-    (native-inputs
-     `(("nose" ,python-nose)
-       ("mock" ,python-mock)
-       ("py.test" ,python-pytest)))
+    (arguments '(#:tests? #f))          ;XXX: requires a live database
     (inputs
-     `(("mysql" ,mariadb "lib")
-       ("mysql-dev" ,mariadb "dev")
-       ("libz" ,zlib)
-       ("openssl" ,openssl)))
+     `(("mysql-dev" ,mariadb "dev")))
     (home-page "https://github.com/PyMySQL/mysqlclient-python")
     (synopsis "MySQLdb is an interface to the popular MySQL database server for Python")
     (description "MySQLdb is an interface to the popular MySQL database server
@@ -2968,9 +3359,6 @@ for Python.  The design goals are:
 @end enumerate")
     (license license:gpl2)))
 
-(define-public python2-mysqlclient
-  (package-with-python2 python-mysqlclient))
-
 (define-public python-hiredis
   (package
     (name "python-hiredis")
@@ -3030,13 +3418,13 @@ reasonable substitute.")
 (define-public python-redis
   (package
     (name "python-redis")
-    (version "3.3.8")
+    (version "3.5.3")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "redis" version))
        (sha256
-        (base32 "0fyxzqax7lcwzwhvnz0i0q6v62hxyv1mv52ywx3bpff9a2vjz8lq"))))
+        (base32 "18h5b87g15x3j6pb1h2q27ri37p2qpvc9n2wgn5yl3b6m3y0qzhf"))))
     (build-system python-build-system)
     ;; Tests require a running Redis server.
     (arguments '(#:tests? #f))
@@ -3055,14 +3443,35 @@ reasonable substitute.")
 (define-public python-rq
   (package
     (name "python-rq")
-    (version "0.13.0")
+    (version "1.5.2")
     (source
      (origin
-       (method url-fetch)
-       (uri (pypi-uri "rq" version))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/rq/rq")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
-        (base32 "0xvapd2bxnyq480i48bdkddzlqmv2axbsq85rlfy8k3al8zxxxrf"))))
+        (base32 "0ikqmpq0g1qiqwd7ar1286l4hqjb6aj2wr844gihhb8ijzwhp8va"))))
     (build-system python-build-system)
+    (arguments
+     '(#:phases (modify-phases %standard-phases
+                  (add-before 'check 'start-redis
+                    (lambda _
+                      (invoke "redis-server" "--daemonize" "yes")))
+                  (replace 'check
+                    (lambda* (#:key outputs #:allow-other-keys)
+                      (let ((out (assoc-ref outputs "out")))
+                        ;; Drop test that needs the SDK for Sentry.io.
+                        (delete-file "tests/test_sentry.py")
+                        ;; Ensure 'rq' and 'rqworker' ends up on PATH.
+                        (setenv "PATH" (string-append out "/bin:"
+                                                      (getenv "PATH")))
+                        (invoke "pytest" "-vv")))))))
+    (native-inputs
+     `(("python-mock" ,python-mock)
+       ("python-pytest" ,python-pytest)
+       ("redis" ,redis)))
     (propagated-inputs
      `(("python-click" ,python-click)
        ("python-redis" ,python-redis)))
@@ -3077,6 +3486,44 @@ is designed to have a low barrier to entry.")
 (define-public python2-rq
   (package-with-python2 python-rq))
 
+(define-public python-rq-scheduler
+  (package
+    (name "python-rq-scheduler")
+    (version "0.10.0")
+    (home-page "https://github.com/rq/rq-scheduler")
+    (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
+                "0xg6yazqs5kbr2ayvhvljs1h5vgx5k5dds613fmhswln7gglf9hk"))))
+    (build-system python-build-system)
+    (arguments
+     '(#:phases (modify-phases %standard-phases
+                  (add-before 'check 'start-redis
+                    (lambda _
+                      (invoke "redis-server" "--daemonize" "yes")))
+                  (replace 'check
+                    (lambda _
+                      (substitute* "run_tests.py"
+                        (("/usr/bin/env")
+                         (which "env")))
+                      (invoke "./run_tests.py"))))))
+    (native-inputs
+     `(("redis" ,redis)
+       ("which" ,which)))
+    (propagated-inputs
+     `(("python-croniter" ,python-croniter)
+       ("python-rq" ,python-rq)))
+    (synopsis "Job scheduling capabilities for RQ (Redis Queue)")
+    (description
+     "This package provides job scheduling capabilities to @code{python-rq}
+(Redis Queue).")
+    (license license:expat)))
+
 (define-public python-trollius-redis
   (package
     (name "python-trollius-redis")
@@ -3151,7 +3598,7 @@ transforms idiomatic python function calls to well-formed SQL queries.")
 (define-public python-pypika
   (package
     (name "python-pypika")
-    (version "0.37.2")
+    (version "0.44.0")
     (source
      (origin (method git-fetch)
              (uri (git-reference
@@ -3160,7 +3607,7 @@ transforms idiomatic python function calls to well-formed SQL queries.")
              (file-name (git-file-name name version))
              (sha256
               (base32
-               "089z1c778q1fwhzsc88ws8j5gm2hgxknibabn4wpax8rz2bfs3ck"))))
+               "0mpddrw9z1pzcc40j3pzhd583hlgjx96aa8ak6m9zzhpm4bv3ard"))))
     (build-system python-build-system)
     (native-inputs
      `(("python-parameterized" ,python-parameterized)))
@@ -3445,9 +3892,6 @@ implementation, along with tools for interoperability with pandas, NumPy, and
 other traditional Python scientific computing packages.")
     (license license:asl2.0)))
 
-(define-public python2-pyarrow
-  (package-with-python2 python-pyarrow))
-
 (define-public python-crate
   (package
     (name "python-crate")
@@ -3565,7 +4009,7 @@ The drivers officially supported by @code{libdbi} are:
 (define-public soci
   (package
     (name "soci")
-    (version "4.0.0")
+    (version "4.0.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -3574,27 +4018,47 @@ The drivers officially supported by @code{libdbi} are:
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "06faswdxd2frqr9xnx6bxc7zwarlzsbdi3bqpz7kwdxsjvq41rnb"))))
+                "14x2gjblkgpflv75wl144cyjp1sis5rbxnr9r2gj3yw16v2av0bp"))))
     (build-system cmake-build-system)
     (inputs
-     `(("postgresql" ,postgresql)
+     `(("firebird" ,firebird)
+       ("postgresql" ,postgresql)
        ("sqlite" ,sqlite)
        ("odbc" ,unixodbc)
        ("boost" ,boost)
-       ("mariadb:dev" ,mariadb "dev")
-       ("mariadb:lib" ,mariadb "lib")))
+       ("mariadb:dev" ,mariadb "dev")))
     (arguments
-     `(#:tests? #f ; Tests may require running database management systems.
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'fix-lib-path
-           (lambda _
-             (substitute* "CMakeLists.txt"
-               (("set\\(SOCI_LIBDIR \"lib64\"\\)") ""))
-             #t)))))
+     `(#:configure-flags
+       ;; C++11 (-DSOCI_CXX11) is OFF by default.  hyperledger-iroha needs it.
+       (list "-DCMAKE_CXX_STANDARD=17"
+             "-DSOCI_LIBDIR=lib")
+       #:tests? #f))         ; may require running database management systems
     (synopsis "C++ Database Access Library")
     (description
      "SOCI is an abstraction layer for several database backends, including
 PostreSQL, SQLite, ODBC and MySQL.")
     (home-page "http://soci.sourceforge.net/")
     (license license:boost1.0)))
+
+(define-public freetds
+  (package
+    (name "freetds")
+    (version "1.2.18")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://www.freetds.org/files/stable/"
+                           "freetds-" version ".tar.gz"))
+       (sha256
+        (base32 "1hspvwxwdd1apadsy2b40dpjik8kfwcvdamvhpg3lnm15n02fb50"))))
+    (build-system gnu-build-system)
+    (arguments
+     ;; NOTE: (Sharlatan-20210110213908+0000) some tests require DB connection,
+     ;; disabled for now.
+     `(#:tests? #f))
+    (home-page "https://www.freetds.org/")
+    (synopsis "Client libraries for MS SQL and Sybase servers")
+    (description
+     "FreeTDS is an implementation of the Tabular DataStream protocol, used for
+connecting to MS SQL and Sybase servers over TCP/IP.")
+    (license license:lgpl2.0+)))
diff --git a/gnu/packages/datastructures.scm b/gnu/packages/datastructures.scm
index 6eb91e281a..2911a0c550 100644
--- a/gnu/packages/datastructures.scm
+++ b/gnu/packages/datastructures.scm
@@ -2,8 +2,9 @@
 ;;; Copyright © 2015, 2016, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2016, 2017, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Meiyo Peng <meiyo.peng@gmail.com>
-;;; Copyright © 2019 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2020 Mark H Weaver <mhw@netris.org>
+;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -24,27 +25,31 @@
   #: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)
   #: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 gnu)
+  #:use-module (guix build-system meson))
 
 (define-public gdsl
   (package
     (name "gdsl")
     (version "1.8")
     (source (origin
-              (method url-fetch)
-              (uri (string-append "http://download.gna.org/gdsl/"
-                                  "gdsl-" version ".tar.gz"))
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://example.org") ;only hosted on Software Heritage
+                    (commit "6adb53be8b8f9f2e4bbfc92d357eedeefb4c7430")))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "1v64jvlnj8jfpphphgjgb36p0kv50kwfyqncf0y12f16v8ydyiaw"))))
+                "0a52g12d9sf9hhcyvwfd7xdazj2a9i9jh97cnlqf2ymvwnvjk1g0"))))
     (build-system gnu-build-system)
-    (home-page "http://home.gna.org/gdsl/")
+    (home-page "https://web.archive.org/web/20170502005430/http://home.gna.org/gdsl/")
     (synopsis "Generic data structures library")
     (description "The Generic Data Structures Library (GDSL) is a collection
 of routines for generic data structures manipulation.  It is a re-entrant
@@ -84,7 +89,7 @@ library.")
 (define-public sparsehash
   (package
     (name "sparsehash")
-    (version "2.0.3")
+    (version "2.0.4")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -93,7 +98,7 @@ library.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0m3f0cnpnpf6aak52wn8xbrrdw8p0yhq8csgc8nlvf9zp8c402na"))))
+                "1pf1cjvcjdmb9cd6gcazz64x0cd2ndpwh6ql2hqpypjv725xwxy7"))))
     (build-system gnu-build-system)
     (synopsis "Memory-efficient hashtable implementations")
     (description
@@ -236,14 +241,34 @@ to the structure and choosing one or more fields to act as the key.")
                           "0m542xpys54bni29zibgrfpgpd0zgyny4h131virxsanixsbz52z")))))))
     (build-system cmake-build-system)
     (arguments
-     '(#:phases
+     `(#:phases
        (modify-phases %standard-phases
          (add-after 'install 'install-static-library
            (lambda* (#:key outputs #:allow-other-keys)
              (let ((out (assoc-ref outputs "out")))
                (copy-file "lib/libsdsl_static.a"
                           (string-append out "/lib/libsdsl.a")))
-             #t)))))
+             #t))
+        (add-after 'install 'install-pkgconfig-file
+          (lambda* (#:key outputs #:allow-other-keys)
+            (let* ((out (assoc-ref outputs "out"))
+                   (lib (string-append out "/lib")))
+              (mkdir-p (string-append lib "/pkgconfig"))
+              (with-output-to-file (string-append lib "/pkgconfig/sdsl-lite.pc")
+                (lambda _
+                  (format #t "prefix=~a~@
+                          exec_prefix=${prefix}~@
+                          libdir=${exec_prefix}/lib~@
+                          includedir=${prefix}/include~@
+                          ~@
+                          ~@
+                          Name: sdsl~@
+                          Version: ~a~@
+                          Description: SDSL: Succinct Data Structure Library~@
+                          Libs: -L${libdir} -lsdsl -ldivsufsort -ldivsufsort64~@
+                          Cflags: -I${includedir}~%"
+                          out ,version)))
+              #t))))))
     (native-inputs
      `(("libdivsufsort" ,libdivsufsort)))
     (home-page "https://github.com/simongog/sdsl-lite")
@@ -258,6 +283,28 @@ complexity of an operation performed on the classical data structure and the
 equivalent succinct data structure are (most of the time) identical.")
     (license license:gpl3+)))
 
+(define-public tllist
+  (package
+    (name "tllist")
+    (version "1.0.4")
+    (home-page "https://codeberg.org/dnkl/tllist")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference (url home-page) (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1a26vwb7ll6mv3h8rbafsdx4vic1f286hiqn8s359sw8b7yjkvzs"))))
+    (build-system meson-build-system)
+    (arguments
+     `(#:meson ,meson-0.55))
+    (synopsis "Typed link list for C")
+    (description
+     "@code{tllist} is a @dfn{typed linked list} C header file only library
+implemented using pre-processor macros.  It supports primitive data types as
+well as aggregated ones such as structs, enums and unions.")
+    (license license:expat)))
+
 (define-public libdivsufsort
   (package
     (name "libdivsufsort")
diff --git a/gnu/packages/dav.scm b/gnu/packages/dav.scm
index b9e210c84b..9d18d94996 100644
--- a/gnu/packages/dav.scm
+++ b/gnu/packages/dav.scm
@@ -2,6 +2,7 @@
 ;;; Copyright © 2015, 2016, 2017 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -23,29 +24,45 @@
   #:use-module (guix download)
   #:use-module (guix licenses)
   #:use-module (guix packages)
+  #:use-module (guix git-download)
   #:use-module (gnu packages)
   #:use-module (gnu packages check)
   #:use-module (gnu packages python)
+  #: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 sphinx))
+  #:use-module (gnu packages sphinx)
+  #:use-module (gnu packages time)
+  #:use-module (gnu packages xml))
 
 (define-public radicale
   (package
     (name "radicale")
-    (version "1.1.6")
-    (source (origin
-             (method url-fetch)
-             (uri (pypi-uri "Radicale" version))
-             (sha256
-              (base32
-               "0ay90nj6fmr2aq8imi0mbjl4m2rzq7a83ikj8qs9gxsylj71j1y0"))))
+    (version "3.0.6")
+    (source
+     (origin
+       ;; There are no tests in the PyPI tarball.
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/Kozea/Radicale")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1xlsvrmx6jhi71j6j8z9sli5vwxasivzjyqf8zq8r0l5p7350clf"))))
     (build-system python-build-system)
-    (arguments
-     '(#:tests? #f)) ; The tests are not distributed in the PyPi release.
+    (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)))
     (propagated-inputs
-      ;; TODO: Add python-pam
-     `(("python-requests" ,python-requests)))
+     `(("python-dateutil" ,python-dateutil)
+       ("python-defusedxml" ,python-defusedxml)
+       ("python-passlib" ,python-passlib)
+       ("python-vobject" ,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
@@ -58,6 +75,44 @@ clients.")
     (home-page "https://radicale.org/")
     (license gpl3+)))
 
+(define-public xandikos
+  (package
+    (name "xandikos")
+    (version "0.2.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "xandikos" version))
+       (sha256
+        (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)))
+    (home-page "https://www.xandikos.org/")
+    (synopsis "Lightweight CalDAV/CardDAV server")
+    (description
+     "Xandikos is a lightweight yet complete CardDAV/CalDAV server that backs
+onto a Git repository.
+
+Features:
+
+@itemize
+@item Easy to set up
+@item Share calendars (events, todo items, journal entries) via CalDAV and
+contacts (vCard) via CardDAV
+@item Automatically keep history and back up changes in Git
+@item Supports synchronization extensions for CalDAV/CardDAV for quick and
+efficient syncing
+@item Automatically keep history and back up
+@item Works with all tested CalDAV and CardDAV clients
+@end itemize")
+    (license gpl3+)))
+
 (define-public vdirsyncer
   (package
     (name "vdirsyncer")
diff --git a/gnu/packages/dbm.scm b/gnu/packages/dbm.scm
index ea812c9715..82647c0c28 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 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr>
-;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2017, 2018, 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2017, 2018 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2018 Mark H Weaver <mhw@netris.org>
 ;;;
@@ -41,7 +41,7 @@
                                    "See LICENSE in the distribution."))
     (source (origin
              (method url-fetch)
-             (uri (string-append "http://download.oracle.com/berkeley-db/db-"
+             (uri (string-append "https://download.oracle.com/berkeley-db/db-"
                                  version ".tar.gz"))
              (sha256
               (base32
@@ -104,7 +104,7 @@ SQL, Key/Value, XML/XQuery or Java Object storage for their data model.")
     (version "5.3.28")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://download.oracle.com/berkeley-db/db-"
+              (uri (string-append "https://download.oracle.com/berkeley-db/db-"
                                   version ".tar.gz"))
               (sha256
                (base32
@@ -116,7 +116,7 @@ SQL, Key/Value, XML/XQuery or Java Object storage for their data model.")
     (version "6.2.32")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://download.oracle.com/berkeley-db/db-"
+              (uri (string-append "https://download.oracle.com/berkeley-db/db-"
                                   version ".tar.gz"))
               (sha256
                (base32
diff --git a/gnu/packages/debian.scm b/gnu/packages/debian.scm
index 1112a90a2e..a82e6a07a8 100644
--- a/gnu/packages/debian.scm
+++ b/gnu/packages/debian.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2018 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2018, 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
 ;;;
@@ -26,12 +26,17 @@
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system trivial)
   #:use-module (gnu packages autotools)
+  #:use-module (gnu packages backup)
   #:use-module (gnu packages base)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages crypto)
+  #:use-module (gnu packages dbm)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages gnupg)
-  #:use-module (gnu packages wget)
-  #:use-module (gnu packages perl))
+  #:use-module (gnu packages ncurses)
+  #:use-module (gnu packages perl)
+  #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages wget))
 
 (define-public debian-archive-keyring
   (package
@@ -202,7 +207,7 @@ unpacking them into a directory which can eventually be chrooted into.")
 (define-public debianutils
   (package
     (name "debianutils")
-    (version "4.11")
+    (version "4.11.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -211,7 +216,7 @@ unpacking them into a directory which can eventually be chrooted into.")
               (file-name (git-file-name "debianutils" version))
               (sha256
                (base32
-                "1fmhzvymajack7kh8g4qjbwd9mq85z6rxl1psd1sm67s5695i9rc"))))
+                "18ypb7fivch53wwrdf73yhf1fhkwn9kvw1kfdc1m450241d6191w"))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases (modify-phases %standard-phases
@@ -275,3 +280,114 @@ debian/copyright for more information.")))))
 selectively mirror Debian and Ubuntu GNU/Linux distributions or any
 other apt sources typically provided by open source developers.")
       (license license:gpl2))))
+
+(define-public dpkg
+  (package
+    (name "dpkg")
+    (version "1.20.5")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://git.dpkg.org/git/dpkg/dpkg")
+               (commit version)))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32
+          "190q968g1vdz07byvfvc2gladhpq3yl765mfiacglyix3nkisy0j"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-before 'bootstrap 'patch-version
+           (lambda _
+             (patch-shebang "get-version")
+             (with-output-to-file ".dist-version"
+               (lambda () (display ,version)))
+             #t))
+         (add-after 'unpack 'set-perl-libdir
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let ((out  (assoc-ref outputs "out"))
+                   (perl (assoc-ref inputs "perl")))
+               (setenv "PERL_LIBDIR"
+                       (string-append out
+                                      "/lib/perl5/site_perl/"
+                                      ,(package-version perl)))
+               #t))))))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("gettext" ,gettext-minimal)
+       ("libtool" ,libtool)
+       ("pkg-config" ,pkg-config)
+       ("perl-io-string" ,perl-io-string)))
+    (inputs
+     `(("bzip2" ,bzip2)
+       ("libmd" ,libmd)
+       ("ncurses" ,ncurses)
+       ("perl" ,perl)
+       ("xz" ,xz)
+       ("zlib" ,zlib)))
+    (home-page "https://wiki.debian.org/Teams/Dpkg")
+    (synopsis "Debian package management system")
+    (description "This package provides the low-level infrastructure for
+handling the installation and removal of Debian software packages.")
+    (license license:gpl2+)))
+
+(define-public reprepro
+  (package
+    (name "reprepro")
+    (version "5.3.0")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://salsa.debian.org/brlink/reprepro.git/")
+               (commit (string-append name "-" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32
+          "1kn7m5rxay6q2c4vgjgm4407xx2r46skkkb6rn33m6dqk1xfkqnh"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f ; testtool not found
+       #:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (if tests?
+               (with-directory-excursion "tests"
+                 (invoke (which "sh") "test.sh"))
+               #t)))
+         (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/"))
+                    (zsh  (string-append out "/share/zsh/site-fucnctions/")))
+               (mkdir-p bash)
+               (mkdir-p zsh)
+               (copy-file "docs/reprepro.bash_completion"
+                          (string-append bash "reprepro"))
+               (copy-file "docs/reprepro.zsh_completion"
+                          (string-append zsh "_reprepro"))
+               #t))))))
+    (inputs
+     `(("bdb" ,bdb)
+       ("bzip2" ,bzip2)
+       ("gpgme" ,gpgme)
+       ("libarchive" ,libarchive)
+       ("xz" ,xz)
+       ("zlib" ,zlib)))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,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
+(@code{.deb}, @code{.udeb}, @code{.dsc}, ...).  It stores files either being
+injected manually or downloaded from some other repository (partially) mirrored
+into one pool/ hierarchy.  Managed packages and files are stored in a Berkeley
+DB, so no database server is needed.  Checking signatures of mirrored
+repositories and creating signatures of the generated Package indices is
+supported.")
+    (license license:gpl2)))
diff --git a/gnu/packages/debug.scm b/gnu/packages/debug.scm
index 2f58f8e972..b3a000e6e3 100644
--- a/gnu/packages/debug.scm
+++ b/gnu/packages/debug.scm
@@ -1,11 +1,12 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2014, 2015, 2016, 2017, 2019, 2020 Eric Bavier <bavier@posteo.net>
 ;;; Copyright © 2016, 2017, 2018, 2020 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; 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 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -36,6 +37,7 @@
   #:use-module (gnu packages base)
   #:use-module (gnu packages bash)
   #:use-module (gnu packages bison)
+  #:use-module (gnu packages c)
   #:use-module (gnu packages code)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages flex)
@@ -564,7 +566,7 @@ error reporting, better tracing, profiling, and a debugger.")
 (define-public rr
   (package
     (name "rr")
-    (version "5.3.0")
+    (version "5.4.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -572,18 +574,19 @@ error reporting, better tracing, profiling, and a debugger.")
                     (commit version)))
               (sha256
                (base32
-                "1x6l1xsdksnhz9v50p4r7hhmr077cq20kaywqy1jzdklvkjqzf64"))
+                "1sfldgkkmsdyaqa28i5agcykc63gwm3zjihd64g86i852w8al2w6"))
               (file-name (git-file-name name version))))
     (build-system cmake-build-system)
     (arguments
      `(#:configure-flags
        ;; The 'rr_exec_stub' is a static binary, which leads CMake to fail
-       ;; with:
-       ;;
-       ;;   file RPATH_CHANGE could not write new RPATH:
-       ;;
+       ;; with ‘file RPATH_CHANGE could not write new RPATH: ...’.
        ;; Clear CMAKE_INSTALL_RPATH to avoid that problem.
        (list "-DCMAKE_INSTALL_RPATH="
+             ;; Satisfy the ‘validate-runpath’ phase.  This isn't a direct
+             ;; consequence of clearing CMAKE_INSTALL_RPATH.
+             (string-append "-DCMAKE_EXE_LINKER_FLAGS=-Wl,-rpath="
+                            (assoc-ref %build-inputs "capnproto") "/lib")
              ,@(if (and (not (%current-target-system))
                         (member (%current-system)
                                 '("x86_64-linux" "aarch64-linux")))
@@ -611,7 +614,7 @@ error reporting, better tracing, profiling, and a debugger.")
        ("which" ,which)))
     (inputs
      `(("gdb" ,gdb)
-       ("cpanproto" ,capnproto)
+       ("capnproto" ,capnproto)
        ("python" ,python)
        ("python-pexpect" ,python-pexpect)))
     (home-page "https://rr-project.org/")
@@ -624,6 +627,78 @@ GDB/x86 features like hardware data watchpoints, makes debugging much more
 fun.")
     (license license:expat)))
 
+(define-public libbacktrace
+  ;; There are no releases nor tags.
+  (let ((revision "1")
+        (commit "5009c113981431ae1843ebd29d6ad24eb32fc1b2"))
+    (package
+      (name "libbacktrace")
+      (version (git-version "1.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/ianlancetaylor/libbacktrace")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "0663zjpfpnsyv9h3pbp7cgmg9gz79n68bqpdl97y6i0jsx93v1zg"))))
+      (build-system gnu-build-system)
+      (arguments
+       `(#:make-flags '("CFLAGS=-fPIC")))
+      (home-page "https://github.com/ianlancetaylor/libbacktrace")
+      (synopsis "C library for producing symbolic backtraces")
+      (description "The @code{libbacktrace} library can be linked into a C/C++
+program to produce symbolic backtraces.")
+      (license license:bsd-3))))
+
+(define-public libleak
+  (package
+    (name "libleak")
+    (version "0.3.5")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/WuBingzheng/libleak")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1p8mb0hcfp8hdv1klv6rrpkn2zlhjxgkxbbjsk8kszxv7ijln87d"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f                      ;no test suite
+       #:parallel-build? #f             ;jobserver unavailable
+       #:phases (modify-phases %standard-phases
+                  (add-after 'unpack 'unbundle-libwuya
+                    (lambda _
+                      (substitute* "Makefile"
+                        ((".*make -C libwuya.*") ""))
+                      #t))
+                  (add-before 'build 'set-CC
+                    (lambda _
+                      (setenv "CC" "gcc")
+                      #t))
+                  (delete 'configure)   ;no configure script
+                  (replace 'install
+                    (lambda* (#:key outputs #:allow-other-keys)
+                      (let* ((out (assoc-ref outputs "out")))
+                        (install-file "libleak.so" (string-append out "/lib"))
+                        #t))))))
+    (inputs `(("libbacktrace" ,libbacktrace)
+              ("libwuya" ,libwuya)))
+    (home-page "https://github.com/WuBingzheng/libleak")
+    (synopsis "Memory leaks detection tool")
+    (description "The libleak tool detects memory leaks by hooking memory
+functions such as @code{malloc}.  It comes as a shared object to be pre-loaded
+via @code{LD_PRELOAD} when launching the application.  It prints the full call
+stack at suspicious memory leak points.  Modifying or recompiling the target
+program is not required, and the detection can be enabled or disabled while
+the target application is running.  The overhead incurred by libleak is
+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
   (package
     (name "mspdebug")
diff --git a/gnu/packages/dico.scm b/gnu/packages/dico.scm
index 44a7a21b6b..ec897d1a8a 100644
--- a/gnu/packages/dico.scm
+++ b/gnu/packages/dico.scm
@@ -1,7 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2015, 2016, 2018 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2016, 2018 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -39,14 +39,14 @@
 (define-public dico
   (package
     (name "dico")
-    (version "2.9")
+    (version "2.10")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://gnu/dico/dico-"
                                  version ".tar.xz"))
              (sha256
               (base32
-               "0i9xqhy3h5nlizcmav4mv5ay8ivdgn4l4k0k7fxix3fsc87nijyr"))))
+               "0qag47mzs00d53hnrmh381r0jay42766vp5xrffmzmsn2307x8vl"))))
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags (list (string-append "--with-guile-site-dir=" %output
diff --git a/gnu/packages/dictionaries.scm b/gnu/packages/dictionaries.scm
index 92fdb92181..b49e287313 100644
--- a/gnu/packages/dictionaries.scm
+++ b/gnu/packages/dictionaries.scm
@@ -7,6 +7,7 @@
 ;;; Copyright © 2018 Pierre-Antoine Rouby <contact@parouby.fr>
 ;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
 ;;; Copyright © 2019 Pierre Langlois <pierre.langlois@gmx.com>
+;;; Copyright © 2020 Lu hux <luhux@outlook.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -32,6 +33,7 @@
   #:use-module (guix build-system python)
   #:use-module (guix build-system trivial)
   #:use-module (guix build-system copy)
+  #:use-module (guix build-system cmake)
   #:use-module (gnu packages)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages base)
@@ -39,7 +41,10 @@
   #:use-module (gnu packages emacs)
   #:use-module (gnu packages flex)
   #:use-module (gnu packages fribidi)
+  #:use-module (gnu packages gettext)
+  #:use-module (gnu packages glib)
   #:use-module (gnu packages linux)
+  #:use-module (gnu packages ncurses)
   #:use-module (gnu packages pcre)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
@@ -53,14 +58,14 @@
 (define-public vera
   (package
     (name "vera")
-    (version "1.23")
+    (version "1.24")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnu/vera/vera-" version
                                   ".tar.gz"))
               (sha256
                (base32
-                "1az0v563jja8xb4896jyr8yv7jd9zacqyfkjd7psb73v7clg1mzz"))))
+                "1j5p679vw72bv766acbg6g89k31ynmrzlpg7s3wzy4krlwdf92xc"))))
     (build-system trivial-build-system)
     (arguments
      `(#:builder (begin
@@ -80,6 +85,12 @@
                      (mkdir-p info)
                      (mkdir-p html)
 
+                     ;; Change a ‘Malformed UTF-8 character: \xd7\x34 (unexpected
+                     ;; non-continuation byte 0x34, immediately after start byte
+                     ;; 0xd7; need 2 bytes, got 1) in pattern match (m//)’.
+                     (substitute* "vera.h"
+                       (("320.480") "320x480"))
+
                      ;; XXX: Use '--force' because the document is unhappy
                      ;; with Texinfo 5 (yes, documents can be unhappy.)
                      (invoke (string-append texi "/bin/makeinfo")
@@ -205,14 +216,14 @@ It comes with a German-English dictionary with approximately 270,000 entries.")
 (define-public grammalecte
   (package
     (name "grammalecte")
-    (version "1.11.0")
+    (version "2.0.0")
     (source
      (origin
        (method url-fetch/zipbomb)
        (uri (string-append "https://grammalecte.net/grammalecte/zip/"
                            "Grammalecte-fr-v" version ".zip"))
        (sha256
-        (base32 "1zsn10y0894l3c3cnji4x3j8064k1kprfz87ibdv89divimhykjj"))))
+        (base32 "1mcpqglndcafiz9bnz69vjxncl5k98yzcy8pr8rmn738hgpzb53v"))))
     (build-system python-build-system)
     (home-page "https://grammalecte.net")
     (synopsis "French spelling and grammar checker")
@@ -236,7 +247,7 @@ and a Python library.")
       (origin
         (method git-fetch)
         (uri (git-reference
-               (url"https://github.com/soimort/translate-shell.git")
+               (url"https://github.com/soimort/translate-shell")
                (commit (string-append "v" version))))
         (file-name (git-file-name name version))
         (sha256
@@ -298,15 +309,15 @@ translation engines from your terminal.")
 (define-public lttoolbox
   (package
     (name "lttoolbox")
-    (version "3.5.1")
+    (version "3.5.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append
              "https://github.com/apertium/lttoolbox/releases/download/v"
-             version "/lttoolbox-" version ".tar.gz"))
+             version "/lttoolbox-" version ".tar.bz2"))
        (sha256
-        (base32 "14yyrkzyqlsrii3v3ggg4dyvwlrcqcqc0aprphz5781a44jsrcwz"))))
+        (base32 "109l91ailish1a3vya5zmfg3kb67cwyzl36ndnh8f59chsbm6n2f"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
@@ -386,3 +397,55 @@ second on ordinary desktop computers) and, in spite of the errors, reasonably
 intelligible and easily correctable.")
     (license (list license:gpl2 ; main license
                    license:expat)))) ; utf8/*
+
+(define-public sdcv
+  (package
+    (name "sdcv")
+    (version "0.5.3")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/Dushistov/sdcv/")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "144qpl9b8r2php0zhi9b7vg6flpvdgjy6yfaipydwwhxi4wy9600"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:configure-flags '("-DBUILD_TESTS=YES")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'build 'build-lang
+           (lambda _
+             (invoke "make" "lang")))
+         (add-before 'check 'pre-check
+           (lambda _
+             (setenv "HOME" (getcwd))
+             #t))
+         (add-after 'unpack 'remove-jq-requirement
+           (lambda _
+             ;; We don't want to bring in jq for one test.
+             (substitute* "tests/t_json"
+               (("jq") "echo"))
+             #t)))))
+    (native-inputs
+     `(("gettext" ,gettext-minimal)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("glib" ,glib)
+       ("ncurses" ,ncurses)
+       ("readline" ,readline)
+       ("zlib" ,zlib)))
+    ;; If you use Guix to package and install dictionary data,
+    ;; you need this variable to load them.
+    (native-search-paths
+     (list (search-path-specification
+            (variable "STARDICT_DATA_DIR")
+            (files '("share/stardict/dic")))))
+    (home-page "https://dushistov.github.io/sdcv/")
+    (synopsis "Console version of StarDict")
+    (description "sdcv is simple text-based utility for work with dictionaries
+in StarDict's format.")
+    (license license:gpl2+)))
diff --git a/gnu/packages/diffoscope.scm b/gnu/packages/diffoscope.scm
index 9480f1f226..53cdbd8d84 100644
--- a/gnu/packages/diffoscope.scm
+++ b/gnu/packages/diffoscope.scm
@@ -72,7 +72,7 @@
 (define-public diffoscope
   (package
     (name "diffoscope")
-    (version "151")
+    (version "164")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -81,40 +81,16 @@
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1lv44ngqij9dp3xk9jj95w7an7h03iac6b2ifpq33j5fffswa1sm"))))
+                "0vjxhz8p0k4y19sl1msrl8x4z3v205rlwj52k5hijv2gn9sqh795"))))
     (build-system python-build-system)
     (arguments
      `(#:phases (modify-phases %standard-phases
-                  ;; setup.py mistakenly requires python-magic from PyPi, even
-                  ;; though the Python bindings of `file` are sufficient.
-                  ;; https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=815844
-                  (add-after 'unpack 'dependency-on-python-magic
-                    (lambda _
-                      (substitute* "setup.py"
-                        (("'python-magic',") ""))))
                   ;; This test is broken because our `file` package has a
                   ;; bug in berkeley-db file type detection.
                   (add-after 'unpack 'remove-berkeley-test
                     (lambda _
                       (delete-file "tests/comparators/test_berkeley_db.py")
                       #t))
-                  ;; Test is dynamically generated and may have false
-                  ;; negatives with different ocaml versions.  Further
-                  ;; background in: https://bugs.debian.org/939386
-                  (add-after 'unpack 'remove-ocaml-test
-                    (lambda _
-                      (substitute* "tests/comparators/test_ocaml.py"
-                        (("def test_diff.differences.:")
-                         "def skip_test_diff(differences):"))
-                      #t))
-                  (add-after 'unpack 'skip-elf-tests
-                    ;; FIXME: libmix_differences test added in 125, and is
-                    ;; failing, need to explore why...
-                    (lambda _
-                      (substitute* "tests/comparators/test_elf.py"
-                        (("def test_libmix_differences.libmix_differences.:")
-                         "def skip_test_libmix_differences(libmix_differences):"))
-                      #t))
                   (add-after 'unpack 'embed-tool-references
                     (lambda* (#:key inputs #:allow-other-keys)
                       (substitute* "diffoscope/comparators/utils/compare.py"
@@ -145,6 +121,13 @@
                       ;; This requires /sbin to be in $PATH.
                       (delete-file "tests/test_tools.py")
                       #t))
+                  (add-before 'check 'skip-dex-test-with-missing-procyon
+                    (lambda _
+                      ;; This test actually requires procyon decompiler
+                      (substitute* "tests/comparators/test_dex.py"
+                        (("skip_unless_tools_exist.\"enjarify\", \"zipinfo\", \"javap\"")
+                         "skip_unless_tools_exist(\"enjarify\", \"zipinfo\", \"javap\", \"procyon\""))
+                     #t))
                   (add-after 'install 'install-man-page
                     (lambda* (#:key outputs #:allow-other-keys)
                       (let* ((out (assoc-ref outputs "out"))
@@ -155,6 +138,7 @@
               ("python-file" ,python-file)
               ("python-debian" ,python-debian)
               ("python-libarchive-c" ,python-libarchive-c)
+              ("python-magic" ,python-magic)
               ("python-tlsh" ,python-tlsh)
               ("acl" ,acl)              ;for getfacl
               ("colordiff" ,colordiff)
@@ -164,6 +148,7 @@
                      ("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)
@@ -240,7 +225,7 @@ install.")
 (define-public reprotest
   (package
     (name "reprotest")
-    (version "0.7.14")
+    (version "0.7.15")
     (source
      (origin
        (method git-fetch)
@@ -250,11 +235,11 @@ install.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "12d07xq5zx5dfbsgakm6zcn7hgf0h9f5kvfjqkiyak4ix5aa6xkf"))))
+         "12lc1pb9d5h3blrzzx9nbqqj5bi9x23yj31fxafmk37803rl8a0m"))))
     (inputs
      `(("python-debian" ,python-debian)
        ("python-distro" ,python-distro)
-       ("python-libarchive-c", python-libarchive-c)
+       ("python-libarchive-c" ,python-libarchive-c)
        ("python-rstr" ,python-rstr)))
     (native-inputs
      `(("diffoscope" ,diffoscope)
@@ -262,6 +247,7 @@ install.")
        ("libfaketime" ,libfaketime)
        ("python-coverage" ,python-coverage)
        ("python-docutils" ,python-docutils)
+       ("python-magic " ,python-magic)
        ("python-pytest " ,python-pytest)
        ("python-tlsh" ,python-tlsh)
        ("python-tox" ,python-tox)
diff --git a/gnu/packages/digest.scm b/gnu/packages/digest.scm
index a33e238362..986e335861 100644
--- a/gnu/packages/digest.scm
+++ b/gnu/packages/digest.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2017, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2021 Ryan Prior <rprior@protonmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -21,9 +22,44 @@
   #:use-module (guix packages)
   #:use-module (guix git-download)
   #:use-module (guix build-system gnu)
+  #:use-module (guix build-system trivial)
   #:use-module (guix utils)
   #:use-module (ice-9 match))
 
+(define-public wyhash
+  (package
+    (name "wyhash")
+    (version "5")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/wangyi-fudan/wyhash")
+                    (commit (string-append "wyhash_v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32 "03ljs5iw9zrm3bydwggjvpwrcwmsd75h3dv1j4am4hw3h22cjdjc"))))
+    (build-system trivial-build-system) ;; source-only package
+    (arguments
+     `(#:modules ((guix build utils))
+       #:builder
+       (begin
+         (use-modules (guix build utils))
+         (let* ((out (string-append (assoc-ref %outputs "out")))
+                (include (string-append out "/include"))
+                (doc (string-append out "/share/doc/" ,name "-" ,version))
+                (source (assoc-ref %build-inputs "source")))
+           (with-directory-excursion source
+             (install-file "wyhash.h" include)
+             (install-file "LICENSE" doc)
+             (install-file "README.md" doc))
+           #t))))
+    (home-page "https://github.com/wangyi-fudan/wyhash")
+    (synopsis "Embeddable hash function and random number generator")
+    (description "This package provides a portable hash function and random
+number generator suitable for use in data structures.  Provided by default in
+Zig, V, and Nim programming language standard libraries.")
+    (license license:unlicense)))
+
 (define-public xxhash
   (package
     (name "xxhash")
diff --git a/gnu/packages/disk.scm b/gnu/packages/disk.scm
index bf03ece6fc..3139063298 100644
--- a/gnu/packages/disk.scm
+++ b/gnu/packages/disk.scm
@@ -2,7 +2,7 @@
 ;;; Copyright © 2012, 2013 Nikita Karetnikov <nikita@karetnikov.org>
 ;;; Copyright © 2015 Mathieu Lirzin <mthl@gnu.org>
 ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
-;;; Copyright © 2016, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2016, 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2016, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
 ;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
@@ -86,7 +86,75 @@
   #: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 bcache-tools
+  ;; The 1.1 release is a year old and missing new features & documentation.
+  (let ((commit "096d205a9f1be8540cbc5a468c0da8203023de70")
+        (revision "0"))
+    (package
+      (name "bcache-tools")
+      (version (git-version "1.1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url (string-append "https://git.kernel.org/pub/scm/"
+                                   "linux/kernel/git/colyli/bcache-tools.git"))
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0r0vwg4vacz5zgsafk360xn7gi2scy01c79mkmjrdyxjfij5z3iy"))))
+      (build-system gnu-build-system)
+      (arguments
+       `(#:tests? #f                    ; no test suite
+         #:make-flags
+         (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
+               (string-append "UDEVLIBDIR=" (assoc-ref %outputs "out")
+                              "/lib/udev")
+               (string-append "DRACUTLIBDIR=" (assoc-ref %outputs "out")
+                              "/lib/dracut")
+               (string-append "CC=" ,(cc-for-target)))
+         #:phases
+         (modify-phases %standard-phases
+           (delete 'configure)          ; no configure script
+           (add-before 'install 'fix-hard-coded-file-names
+             (lambda _
+               ;; Some rules still hard-code /usr.
+               (substitute* "Makefile"
+                 (("/usr") "${PREFIX}"))
+               #t))
+           (add-before 'install 'create-target-directories
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let* ((out (assoc-ref outputs "out")))
+                 (for-each (lambda (dir)
+                             (mkdir-p (string-append out dir)))
+                           (list "/lib/udev/rules.d"
+                                 "/sbin"
+                                 "/share/man/man8"))
+                 #t))))))
+      (native-inputs
+       `(("pkg-config" ,pkg-config)))
+      (inputs
+       `(("util-linux:lib" ,util-linux "lib"))) ; libblkid
+      (home-page "https://bcache.evilpiepirate.org")
+      (synopsis "Tools for the Linux kernel block layer cache")
+      (description
+       "This package contains user-space utilities to create and inspect bcache
+partitions.  It's rather minimal as bcache is designed to work well without
+configuration on any system.
+
+Linux's @acronym{bcache, block layer cache} lets one or more fast block devices,
+such as flash-based @acronym{SSDs, solid state drives}, to act as a cache for
+one or more slower (and inexpensive) devices, such as hard disk drives or
+redundant storage arrays.  In fact, bcache intends to be a superior alternative
+to battery-backed RAID controllers.
+
+Bcache is designed around the performance characteristics of SSDs and tries to
+minimize write inflation.  It's file-system agnostic and does both write-through
+and write-back caching.")
+      (license license:gpl2))))
 
 (define-public udevil
   (package
@@ -236,14 +304,14 @@ tables, and it understands a variety of different formats.")
 (define-public gptfdisk
   (package
     (name "gptfdisk")
-    (version "1.0.5")
+    (version "1.0.6")
     (source
      (origin
       (method url-fetch)
       (uri (string-append "mirror://sourceforge/gptfdisk/gptfdisk/"
                           version "/gptfdisk-" version ".tar.gz"))
       (sha256
-       (base32 "0bybgp30pqxb6x5krxazkq4drca0gz4inxj89fpyr204rn3kjz8f"))))
+       (base32 "1a4c2ss6n2s6x8v11h79jykh96y46apd6i838ka0ngx58gb53ifx"))))
     (build-system gnu-build-system)
     (inputs
      `(("gettext" ,gettext-minimal)
@@ -482,7 +550,7 @@ systems.  Output format is completely customizable.")
 (define-public f3
   (package
     (name "f3")
-    (version "7.2")
+    (version "8.0")
     (source
      (origin
       (method git-fetch)
@@ -491,11 +559,11 @@ systems.  Output format is completely customizable.")
             (commit (string-append "v" version))))
       (file-name (git-file-name name version))
       (sha256
-       (base32 "1iwdg0r4wkgc8rynmw1qcqz62l0ldgc8lrazq33msxnk5a818jgy"))))
+       (base32 "17l5vspfcgfbkqg7bakp3gql29yb05gzawm8n3im30ilzdr53678"))))
     (build-system gnu-build-system)
     (arguments
-     '(#:tests? #f                      ; no check target
-       #:make-flags (list "CC=gcc"
+     `(#:tests? #f                      ; no check target
+       #:make-flags (list (string-append "CC=" ,(cc-for-target))
                           (string-append "PREFIX=" %output))
        #:phases
        (modify-phases %standard-phases
@@ -520,7 +588,7 @@ a card with a smaller capacity than stated.")
 (define-public python-parted
   (package
     (name "python-parted")
-    (version "3.11.2")
+    (version "3.11.7")
     (source
      (origin
        (method git-fetch)
@@ -529,7 +597,7 @@ a card with a smaller capacity than stated.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0r6916n3w4vldxrq30a3z2iagvxgly4vfmlidjm65vwqnyv17bvn"))))
+        (base32 "01193fmkss9icjvqpw85szpk8ld1pnha7p9kqm7mpwk6rc6gi2m3"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -555,13 +623,10 @@ a card with a smaller capacity than stated.")
     (description "This package provides @code{parted} bindings for Python.")
     (license license:gpl2+)))
 
-(define-public python2-parted
-  (package-with-python2 python-parted))
-
 (define-public duperemove
   (package
     (name "duperemove")
-    (version "0.11.1")
+    (version "0.11.2")
     (source
      (origin
        (method git-fetch)
@@ -569,7 +634,7 @@ a card with a smaller capacity than stated.")
              (url "https://github.com/markfasheh/duperemove")
              (commit (string-append "v" version))))
        (sha256
-        (base32 "1scz76pvpljvrpfn176125xwaqwyy4pirlm11sc9spb2hyzknw2z"))
+        (base32 "1a87mka2sfzhbch2jip6wlvvs0glxq9lqwmyrp359d1rmwwmqiw9"))
        (file-name (git-file-name name version))))
     (build-system gnu-build-system)
     (native-inputs
@@ -583,7 +648,9 @@ a card with a smaller capacity than stated.")
        (modify-phases %standard-phases
          (delete 'configure))           ; no configure script
        #:make-flags (list (string-append "PREFIX=" %output)
-                          "CC=gcc")))
+                          (string-append "CC=" ,(cc-for-target))
+                          ;; Set to <next release>dev by default.
+                          (string-append "VER=" ,version))))
     (home-page "https://github.com/markfasheh/duperemove")
     (synopsis "Tools for de-duplicating file system data")
     (description "Duperemove is a simple tool for finding duplicated extents
@@ -692,7 +759,7 @@ passphrases.")
 (define-public ndctl
   (package
     (name "ndctl")
-    (version "68")
+    (version "71.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -701,7 +768,7 @@ passphrases.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0xmim7z4qp6x2ggndnbwd940c73pa1qlf3hxyn3qh5pyr69nh9y8"))))
+                "1vi61bm9wyawklswh9mj9zdp28ar7r97qckwnhgiyila73fb3jx2"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("asciidoc" ,asciidoc)
@@ -793,7 +860,7 @@ to create devices with respective mappings for the ATARAID sets discovered.")
 (define-public libblockdev
   (package
     (name "libblockdev")
-    (version "2.24")
+    (version "2.25")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/storaged-project/"
@@ -801,7 +868,7 @@ to create devices with respective mappings for the ATARAID sets discovered.")
                                   version "-1/libblockdev-" version ".tar.gz"))
               (sha256
                (base32
-                "0wq7624pnprvfzrf39bq1cybd9lqwawbdg5bm0cchlpgvdq7q86w"))))
+                "0s0nazkpzpn4an00qghjkk9n7gdm5a8dqfr5hfnlk5mk5lma8njm"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
@@ -1041,6 +1108,50 @@ of choice for all light thinking Unix addicts!")
     (home-page "https://savannah.nongnu.org/projects/hddtemp/")
     (synopsis "Report the temperature of hard drives from S.M.A.R.T. information")
     (description "@command{hddtemp} is a small utility that gives you the
-temperature of your hard drive by reading S.M.A.R.T. informations (for drives
+temperature of your hard drive by reading S.M.A.R.T. information (for drives
 that support this feature).")
     (license license:gpl2+)))
+
+(define-public memkind
+  (package
+    (name "memkind")
+    (version "1.10.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/memkind/memkind")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "11iz887f3cp5pzf1bzm644wzab8gkbhz3b7x1w6pcps71yd94ylj"))))
+    (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)))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("libtool" ,libtool)))
+    (arguments
+     `(#:tests? #f ; Tests require a NUMA-enabled system.
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'build 'autogen-jemalloc
+           (lambda _
+             (with-directory-excursion "jemalloc"
+               (substitute* "Makefile.in"
+                (("/bin/sh") (which "sh")))
+               (invoke "autoconf")
+               (substitute* "configure"
+                (("/bin/sh") (which "sh"))))
+             #t)))))
+    (home-page "https://github.com/memkind/memkind")
+    (synopsis "Heap manager with memory kinds (for NUMA)")
+    (description "This package provides a user-extensible heap manager
+built on top of jemalloc which enables control of memory characteristics
+and a partitioning of the heap between kinds of memory (for NUMA).")
+    (license license:bsd-3)))
diff --git a/gnu/packages/display-managers.scm b/gnu/packages/display-managers.scm
index ef6e549d09..b6e5ab7d19 100644
--- a/gnu/packages/display-managers.scm
+++ b/gnu/packages/display-managers.scm
@@ -8,6 +8,7 @@
 ;;; Copyright © 2017, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2020 L  p R n  d n <guix@lprndn.info>
 ;;; Copyright © 2020 Fredrik Salomonsson <plattfot@gmail.com>
+;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -57,7 +58,7 @@
 (define-public sddm
   (package
     (name "sddm")
-    (version "0.18.1")
+    (version "0.19.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -66,7 +67,7 @@
                     "sddm-" version ".tar.xz"))
               (sha256
                (base32
-                "0nilrhwlyvkngjgxfc08n73c16azgmw80pvx0a78xqww9y3hv4xh"))))
+                "0hcdysw8ibr66vk8i7v56l0v5ijvhlq67v4460mc2xf2910g2m72"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
diff --git a/gnu/packages/django.scm b/gnu/packages/django.scm
index 2370de62f5..aa4411c5a2 100644
--- a/gnu/packages/django.scm
+++ b/gnu/packages/django.scm
@@ -6,6 +6,7 @@
 ;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2018 Vijayalakshmi Vedantham <vijimay12@gmail.com>
 ;;; Copyright © 2019 Sam <smbaines8@gmail.com>
+;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -33,6 +34,7 @@
   #:use-module (gnu packages databases)
   #:use-module (gnu packages check)
   #: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)
@@ -45,43 +47,55 @@
 (define-public python-django
   (package
     (name "python-django")
-    (version "1.11.29")
+    (version "3.1.3")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "Django" version))
               (sha256
                (base32
-                "171jsi54fbnxzi2n3l4hkdmmwfnfrwacs180rw59l0bqcvxsw022"))))
+                "13rz3v0bwk8i3xcccn5awbafahab3cyk8wwv57v2xazdzxspgf0l"))))
     (build-system python-build-system)
     (arguments
-     '(#:modules ((srfi srfi-1)
-                  (guix build python-build-system)
-                  (guix build utils))
-       #:phases
+     '(#:phases
        (modify-phases %standard-phases
-         (add-before 'check 'set-tzdir
+         (add-before 'check 'pre-check
            (lambda* (#:key inputs #:allow-other-keys)
              ;; The test-suite tests timezone-dependent functions, thus tzdata
              ;; needs to be available.
              (setenv "TZDIR"
                      (string-append (assoc-ref inputs "tzdata")
                                     "/share/zoneinfo"))
-             #t))
-         (replace 'check
-           (lambda* (#:key inputs #:allow-other-keys)
-             (setenv "PYTHONPATH"
-                     (string-append ".:" (getenv "PYTHONPATH")))
+
+             ;; Disable test for incorrect timezone: it only raises the
+             ;; expected error when /usr/share/zoneinfo exists, even though
+             ;; the machinery gracefully falls back to TZDIR.  According to
+             ;; django/conf/__init__.py, lack of /usr/share/zoneinfo is
+             ;; harmless, so just ignore this test.
+             (substitute* "tests/settings_tests/tests.py"
+               ((".*def test_incorrect_timezone.*" all)
+                (string-append "    @unittest.skipIf(True, 'Disabled by Guix')\n"
+                               all)))
+
+             ;; Preserve the PYTHONPATH created by Guix when running the tests.
              (substitute* "tests/admin_scripts/tests.py"
                (("python_path = \\[")
                 (string-append "python_path = ['"
-                               (find (lambda (entry)
-                                       (string-prefix?
-                                        (assoc-ref inputs "python-pytz")
-                                        entry))
-                                     (string-split (getenv "PYTHONPATH")
-                                                   #\:))
+                               (string-join
+                                (string-split (getenv "PYTHONPATH") #\:)
+                                "','")
                                "', ")))
-             (invoke "python" "tests/runtests.py"))))))
+
+             #t))
+         (replace 'check
+           (lambda _
+             (with-directory-excursion "tests"
+               (setenv "PYTHONPATH"
+                       (string-append "..:" (getenv "PYTHONPATH")))
+               (invoke "python" "runtests.py"
+                       ;; By default tests run in parallel, which may cause
+                       ;; various race conditions.  Run sequentially for
+                       ;; consistent results.
+                       "--parallel=1")))))))
     ;; TODO: Install extras/django_bash_completion.
     (native-inputs
      `(("tzdata" ,tzdata-for-tests)
@@ -95,12 +109,16 @@
        ("python-pillow" ,python-pillow)
        ("python-pyyaml" ,python-pyyaml)
        ;; optional for tests: ("python-selenium" ,python-selenium)
-       ("python-sqlparse" ,python-sqlparse)
        ("python-tblib" ,python-tblib)))
     (propagated-inputs
      `(("python-argon2-cffi" ,python-argon2-cffi)
+       ("python-asgiref" ,python-asgiref)
        ("python-bcrypt" ,python-bcrypt)
-       ("python-pytz" ,python-pytz)))
+       ("python-pytz" ,python-pytz)
+
+       ;; This input is not strictly required, but in practice many Django
+       ;; libraries need it for test suites and similar.
+       ("python-sqlparse" ,python-sqlparse)))
     (home-page "https://www.djangoproject.com/")
     (synopsis "High-level Python Web framework")
     (description
@@ -109,26 +127,27 @@ development and clean, pragmatic design.  It provides many tools for building
 any Web site.  Django focuses on automating as much as possible and adhering
 to the @dfn{don't repeat yourself} (DRY) principle.")
     (license license:bsd-3)
-    (properties `((python2-variant . ,(delay python2-django))
-                  (cpe-name . "django")))))
+    (properties `((cpe-name . "django")))))
 
-(define-public python2-django
-  (let ((base (package-with-python2 (strip-python2-variant python-django))))
-    (package
-      (inherit base)
-      (native-inputs
-       `(;; Test requirements for Python 2 taken from
-         ;; tests/requirements/py3.txt: enum34 and mock.
-         ("python2-enum34" ,python2-enum34)
-         ("python2-mock" ,python2-mock)
-         ;; When adding memcached mind: for Python 2 memcached <= 1.53 is
-         ;; required.
-         ,@(package-native-inputs base))))))
+(define-public python-django-2.2
+  (package
+    (inherit python-django)
+    (version "2.2.17")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "Django" version))
+              (sha256
+               (base32
+                "0qdq0h2gw45j0h9j22c2sdn49ybl7jsrcyraskb9snknsyj70lyg"))))
+    (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)))))
 
 (define-public python-django-extensions
   (package
     (name "python-django-extensions")
-    (version "2.1.6")
+    (version "3.0.6")
     (source
      (origin
        (method git-fetch)
@@ -139,18 +158,18 @@ to the @dfn{don't repeat yourself} (DRY) principle.")
        (file-name (string-append name "-" version))
        (sha256
         (base32
-         "0p4qrdinrv6indczlc8dcnm528i5fzmcn9xk1ja7ycfkyk5x6j5w"))))
+         "0sra6hazqvspxd1pnx5cj7gia1rkaz3hn06ib4wd0frc167f5afy"))))
     (build-system python-build-system)
     (arguments
-     '(#:tests? #f)) ;TODO collected 378 items / 3 errors / 1 skipped
+     '(#: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)
-       ("python-django" ,python-django)))
+       ("python-dateutil" ,python-dateutil)))
     (native-inputs
-     `(("python-mock" ,python-mock)
+     `(("python-django" ,python-django)
+       ("python-mock" ,python-mock)
        ("python-factory-boy" ,python-factory-boy)
        ("python-tox" ,python-tox)
        ("python-pytest" ,python-pytest)
@@ -168,21 +187,37 @@ commands, additional database fields and admin extensions.")
 (define-public python-django-simple-math-captcha
   (package
     (name "python-django-simple-math-captcha")
-    (version "1.0.7")
+    (version "1.0.9")
+    (home-page "https://github.com/alsoicode/django-simple-math-captcha")
     (source (origin
-              (method url-fetch)
-              (uri (pypi-uri "django-simple-math-captcha" version))
+              (method git-fetch)
+              (uri (git-reference
+                    (url home-page)
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "0906hms6y6znjhpd0g4wmzv9vcla4brkdpsm4zha9zdj8g5vq2hd"))))
+                "0fhy9k8haqa1296v0qpg1b5w7y3pyw9qi9z9laj5ijry1gk35qaw"))))
     (build-system python-build-system)
     (arguments
-     ;; FIXME: Upstream uses a 'runtests.py' script that is not
-     ;; present in the pypi tarball.
-     '(#:tests? #f))
+     '(#:phases (modify-phases %standard-phases
+                  (add-after 'unpack 'patch-six-imports
+                    (lambda _
+                      ;; Django no longer bundles six, adjust the imports
+                      ;; accordingly.  The six dependency can likely be
+                      ;; removed in the next version.
+                      (substitute* (find-files "." "\\.py$")
+                        (("from django\\.utils import six")
+                         "import six"))
+                      #t))
+                  (replace 'check
+                    (lambda _
+                      (invoke "python" "runtests.py"))))))
+    (native-inputs
+     `(("python-django" ,python-django)
+       ("python-mock" ,python-mock)))
     (propagated-inputs
-     `(("python-django" ,python-django)))
-    (home-page "https://github.com/alsoicode/django-simple-math-captcha")
+     `(("python-six" ,python-six)))
     (synopsis "Easy-to-use math field/widget captcha for Django forms")
     (description
      "A multi-value-field that presents a human answerable question,
@@ -190,25 +225,20 @@ with no settings.py configuration necessary, but instead can be configured
 with arguments to the field constructor.")
     (license license:asl2.0)))
 
-(define-public python2-django-simple-math-captcha
-  (package-with-python2 python-django-simple-math-captcha))
-
 (define-public python-django-classy-tags
   (package
     (name "python-django-classy-tags")
-    (version "1.0.0")
+    (version "2.0.0")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "django-classy-tags" version))
         (sha256
          (base32
-          "1cayqddvxd5prhybqi77lif2z4j7mmfmxgc61pq9i82q5gy2asmd"))))
+          "1javam3zqi3y3j0r490mm61v48yh75jaha99gb7lsxkaz6yri7fm"))))
     (build-system python-build-system)
-    (arguments '(#:tests? #f)) ; Test script not distributed with release.
-    (propagated-inputs
-     `(("python-django" ,python-django)
-       ("python-six" ,python-six)))
+    ;; FIXME: How to make the test templates available to Django?
+    (arguments '(#:tests? #f))
     (home-page "https://github.com/divio/django-classy-tags")
     (synopsis "Class based template tags for Django")
     (description
@@ -221,14 +251,14 @@ when coding custom template tags.")
 (define-public python-django-taggit
   (package
     (name "python-django-taggit")
-    (version "1.1.0")
+    (version "1.3.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "django-taggit" version))
        (sha256
         (base32
-         "044fzcpmns90kaxdi49qczlam4xsi8rl73rpfwvxx1gkcqzidgq1"))))
+         "0bbkabbs77z229ps0800gxfhf75yagp4x4j5jzfysbac3zvkp0sa"))))
     (build-system python-build-system)
     (arguments
      '(#:phases
@@ -237,10 +267,10 @@ when coding custom template tags.")
            (lambda _
              (invoke "python3" "-m" "django" "test" "--settings=tests.settings"))))))
     (propagated-inputs
-     `(("python-django" ,python-django)
-       ("python-isort" ,python-isort)))
+     `(("python-isort" ,python-isort)))
     (native-inputs
-     `(("python-pytest" ,python-pytest)
+     `(("python-django" ,python-django)
+       ("python-pytest" ,python-pytest)
        ("python-mock" ,python-mock)))
     (home-page
      "https://github.com/jazzband/django-taggit")
@@ -262,9 +292,10 @@ when coding custom template tags.")
         (base32
          "14gzp5cv24z0qhxb7f7k7v9jgzpaj4n8yhjq83ynpx8183fs1rz4"))))
     (build-system python-build-system)
+    (native-inputs
+     `(("python-django" ,python-django)))
     (propagated-inputs
-     `(("python-django" ,python-django)
-       ("python-pillow" ,python-pillow)))
+     `(("python-pillow" ,python-pillow)))
     (home-page "https://github.com/SmileyChris/easy-thumbnails")
     (synopsis "Easy thumbnails for Django")
     (description
@@ -277,26 +308,43 @@ size and quality.")
 (define-public python-pytest-django
   (package
     (name "python-pytest-django")
-    (version "3.1.2")
+    (version "3.10.0")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "pytest-django" version))
               (sha256
                (base32
-                "02932m2sr8x22m4az8syr8g835g4ak77varrnw71n6xakmdcr303"))))
+                "19nvqsb7b9kz3ikpb50m8ppf7mfhzrapdxsqd5hhd1pdfz8dprjd"))))
     (build-system python-build-system)
     (arguments
-     `(#:tests? #f ; FIXME: How to run tests?
-       #:phases
+     `(#:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'patch-setuppy
-           (lambda _
-             (substitute* "setup.py"
-                          (("setuptools_scm==1.11.1") "setuptools_scm"))
+         (replace 'check
+           (lambda* (#:key tests? inputs outputs #:allow-other-keys)
+             (if tests?
+                 (begin
+                   (add-installed-pythonpath inputs outputs)
+                   (setenv "PYTHONPATH"
+                           (string-append ".:" ;for pytest_django_test
+                                          (getenv "PYTHONPATH")))
+                   (setenv "PYTEST_DJANGO_TEST_RUNNER" "pytest")
+                   (setenv "DJANGO_SETTINGS_MODULE"
+                           "pytest_django_test.settings_sqlite_file")
+                   (invoke "pytest" "-vv" "-k"
+                           ;; FIXME: these tests fail to locate Django templates ...
+                           (string-append "not test_django_not_loaded_without_settings"
+                                          " and not test_settings"
+                                          ;; ... and this does not discover
+                                          ;; 'pytest_django_test'.
+                                          " and not test_urls_cache_is_cleared")))
+                 (format #t "test suite not run~%"))
              #t)))))
     (native-inputs
      `(("python-django" ,python-django)
-       ("python-setuptools-scm" ,python-setuptools-scm)))
+       ("python-setuptools-scm" ,python-setuptools-scm)
+
+       ;; For tests.
+       ("python-pytest-xdist" ,python-pytest-xdist)))
     (propagated-inputs
      `(("python-pytest" ,python-pytest)))
     (home-page "https://pytest-django.readthedocs.org/")
@@ -305,9 +353,6 @@ size and quality.")
 useful tools for testing Django applications and projects.")
     (license license:bsd-3)))
 
-(define-public python2-pytest-django
-  (package-with-python2 python-pytest-django))
-
 (define-public python-django-haystack
   (package
     (name "python-django-haystack")
@@ -335,11 +380,10 @@ useful tools for testing Django applications and projects.")
                                     "/lib"))
              #t)))
        #:tests? #f)) ; OSError: libgdal.so.27: cannot open shared object file
-    (propagated-inputs
-     `(("python-django" ,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)
@@ -359,13 +403,13 @@ your code.")
 (define-public python-django-filter
   (package
     (name "python-django-filter")
-    (version "1.1.0")
+    (version "2.3.0")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "django-filter" version))
               (sha256
                (base32
-                "0slpfqfhnjrzlrb6vmswyhrzn01p84s16j2x1xib35gg4fxg23pc"))))
+                "1bz5qzdk9pk4a2lp2yacrdnqmkv24vxnz4k3lykrnpc3b7bkvrhi"))))
     (build-system python-build-system)
     (arguments
      '(#:phases
@@ -387,20 +431,17 @@ filter down a queryset based on a model’s fields, displaying the form to let
 them do this.")
     (license license:bsd-3)))
 
-(define-public python2-django-filter
-  (package-with-python2 python-django-filter))
-
 (define-public python-django-allauth
   (package
     (name "python-django-allauth")
-    (version "0.40.0")
+    (version "0.42.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "django-allauth" version))
        (sha256
         (base32
-         "12f5gjidcpb7a0d1f601k0c5dcdmb6fg9sfn7xn5j8zfsg29y63a"))))
+         "0c0x8izvrnjhrr48w6pwsfk9ddbi6yfxg7v3hh5dm1vz1d0hjwpi"))))
     (build-system python-build-system)
     (arguments
      '(#:phases
@@ -415,9 +456,8 @@ them do this.")
        ("python-requests" ,python-requests)
        ("python-requests-oauthlib" ,python-requests-oauthlib)))
     (native-inputs
-     `(("python-mock" ,python-mock)))
-    (inputs
-     `(("python-django" ,python-django)))
+     `(("python-django" ,python-django)
+       ("python-mock" ,python-mock)))
     (home-page "https://github.com/pennersr/django-allauth")
     (synopsis "Set of Django applications addressing authentication")
     (description
@@ -426,13 +466,10 @@ registration, account management as well as 3rd party (social)
 account authentication.")
     (license license:expat)))
 
-(define-public python2-django-allauth
-  (package-with-python2 python-django-allauth))
-
 (define-public python-django-debug-toolbar
   (package
     (name "python-django-debug-toolbar")
-    (version "1.10.1")
+    (version "2.2")
     (source
      (origin
        (method git-fetch)
@@ -442,13 +479,13 @@ account authentication.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "0zr6yjsms97wlvvd17rdbrx01irkg887dn9x70c1hzfjmfvp9afk"))))
+         "14069rlgjd5g724iaglai0nc636g9km4ba56r4j3k84chibqzn03"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-sqlparse" ,python-sqlparse)
-       ("python-django" ,python-django)))
+     `(("python-sqlparse" ,python-sqlparse)))
     (native-inputs
-     `(("python-django-jinja" ,python-django-jinja)
+     `(("python-django" ,python-django)
+       ("python-django-jinja" ,python-django-jinja)
        ("python-html5lib" ,python-html5lib)))
     (arguments
      '(#:phases
@@ -464,17 +501,42 @@ account authentication.")
 request and response as a toolbar on the rendered page.")
     (license license:bsd-3)))
 
+(define-public python-django-debug-toolbar-alchemy
+  (package
+    (name "python-django-debug-toolbar-alchemy")
+    (version "0.1.5")
+    (home-page "https://github.com/miki725/django-debug-toolbar-alchemy")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "django-debug-toolbar-alchemy" version))
+              (sha256
+               (base32
+                "1kmpzghnsc247bc1dl22s4y62k9ijgy1pjms227018h5a4frsa5b"))))
+    (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)))
+    (synopsis "Django Debug Toolbar panel for SQLAlchemy")
+    (description
+     "This package completely mimics the default Django Debug Toolbar SQL
+panel (internally it is actually subclassed), but instead of displaying
+queries done via the Django ORM, SQLAlchemy generated queries are displayed.")
+    (license license:expat)))
+
 (define-public python-django-gravatar2
   (package
     (name "python-django-gravatar2")
-    (version "1.4.2")
+    (version "1.4.4")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "django-gravatar2" version))
        (sha256
         (base32
-         "1qsv40xywbqsf4mkrmsswrpzqd7nfljxpfiim9an2z3dykn5rka6"))))
+         "1vn921fb6jjx7rf5dzhy66rkb71nwmh9ydd0xs9ys72icw4jh4y8"))))
     (build-system python-build-system)
     (arguments
      '(;; TODO: The django project for the tests is missing from the release.
@@ -488,44 +550,22 @@ request and response as a toolbar on the rendered page.")
 templatetags and a full test suite.")
     (license license:expat)))
 
-(define-public python2-django-gravatar2
-  (package-with-python2 python-django-gravatar2))
-
 (define-public python-django-assets
   (package
     (name "python-django-assets")
-    (version "0.12")
+    (version "2.0")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "django-assets" version))
               (sha256
                (base32
-                "0y0007fvkn1rdlj2g0y6k1cnkx53kxab3g8i85i0rd58k335p365"))))
+                "0fc6i77faxxv1gjlp06lv3kw64b5bhdiypaygfxh5djddgk83fwa"))))
     (build-system python-build-system)
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-before 'check 'fix-tests
-           (lambda _
-             (begin
-               ;; https://github.com/miracle2k/django-assets/issues/87
-               (substitute* "tests/__init__.py"
-                 (("settings.configure.*")
-                  (string-append
-                    "settings.configure(\n"
-                    "INSTALLED_APPS=['django_assets', "
-                    "'django.contrib.staticfiles'],\n"
-                    "TEMPLATES=[{'BACKEND': "
-                    "'django.template.backends.django.DjangoTemplates'}],\n"
-                    ")\n")))
-              ;; These tests fail
-              (substitute* "tests/test_django.py"
-                (("TestLoader") "NoTestLoader"))))))))
     (native-inputs
-     `(("python-nose" ,python-nose)))
-    (propagated-inputs
      `(("python-django" ,python-django)
-       ("python-webassets" ,python-webassets)))
+       ("python-nose" ,python-nose)))
+    (propagated-inputs
+     `(("python-webassets" ,python-webassets)))
     (home-page "https://github.com/miracle2k/django-assets")
     (synopsis "Asset management for Django")
     (description
@@ -534,13 +574,10 @@ files.  Integrates the webassets library with Django, adding support for
 merging, minifying and compiling CSS and Javascript files.")
     (license license:bsd-2)))
 
-(define-public python2-django-assets
-  (package-with-python2 python-django-assets))
-
 (define-public python-django-jinja
   (package
     (name "python-django-jinja")
-    (version "2.4.1")
+    (version "2.6.0")
     (source
      (origin
        (method git-fetch)
@@ -550,11 +587,10 @@ merging, minifying and compiling CSS and Javascript files.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "1fcrxlznlq1xvl26y3j1r22vvy6m08r5l97xi2wj50rdmxhfvhis"))))
+         "06ldbkfkm6sc0p9sqpjph06gxrqpj78ih3dc2yik2fcba2y5mak1"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-django" ,python-django)
-       ("python-jinja2" ,python-jinja2)
+     `(("python-jinja2" ,python-jinja2)
        ("python-pytz" ,python-pytz)
        ("python-django-pipeline" ,python-django-pipeline)))
     (arguments
@@ -578,47 +614,20 @@ 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
-  (package
-    (name "python-django-jsonfield")
-    (version "1.0.3")
-    (source (origin
-              (method url-fetch)
-              (uri (pypi-uri "jsonfield" version))
-              (sha256
-               (base32
-                "19x4lak0hg9c20r7mvf27w7i8r6i4sg2g0ypmlmp2665fnk76zvy"))))
-    (build-system python-build-system)
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-before 'check 'fix-tests
-           (lambda _
-             (substitute* "jsonfield/tests.py"
-               (("django.forms.util") "django.forms.utils")))))))
-    (propagated-inputs
-     `(("python-django" ,python-django)))
-    (home-page "https://github.com/bradjasper/django-jsonfield")
-    (synopsis "Store validated JSON in your model")
-    (description
-      "Django-jsonfield is a reusable Django field that allows you to store
-validated JSON in your model.  It silently takes care of serialization.  To
-use, simply add the field to one of your models.")
-    (license license:expat)))
-
-(define-public python2-django-jsonfield
-  (package-with-python2 python-django-jsonfield))
+  (deprecated-package "python-django-jsonfield" python-django))
 
 (define-public python-dj-database-url
   (package
     (name "python-dj-database-url")
-    (version "0.4.2")
+    (version "0.5.0")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "dj-database-url" version))
               (sha256
                (base32
-                "024zbkc5rli4hia9lz9g8kf1zxhb2gwawj5abf67i7gf8n22v0x6"))))
+                "0qs16g5y3lflxibsl8gwkwap21crhmmv98l60rdq6x1wawgypsja"))))
     (build-system python-build-system)
     (home-page "https://github.com/kennethreitz/dj-database-url")
     (synopsis "Use Database URLs in your Django Application")
@@ -631,24 +640,30 @@ dictionary, populated with all the data specified in your URL.  There is also a
 conn_max_age argument to easily enable Django’s connection pool.")
     (license license:bsd-2)))
 
-(define-public python2-dj-database-url
-  (package-with-python2 python-dj-database-url))
-
 (define-public python-django-picklefield
   (package
     (name "python-django-picklefield")
-    (version "2.1.1")
+    (version "3.0.1")
+    (home-page "https://github.com/gintas/django-picklefield")
+    ;; Use a git checkout because the PyPI release lacks tests.
     (source
       (origin
-        (method url-fetch)
-        (uri (pypi-uri "django-picklefield" version))
+        (method git-fetch)
+        (uri (git-reference
+              (url home-page)
+              (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
         (sha256
          (base32
-          "0imncys5s3vsy2q79nn7k5d670da1xgmcr9gmhn06fry6ibf39b7"))))
+          "0ni7bc86k0ra4pc8zv451pzlpkhs1nyil1sq9jdb4m2mib87b5fk"))))
     (build-system python-build-system)
-    (propagated-inputs `(("python-django" ,python-django)))
-    (native-inputs `(("python-tox" ,python-tox)))
-    (home-page "https://github.com/gintas/django-picklefield")
+    (arguments
+     '(#:phases (modify-phases %standard-phases
+                  (replace 'check
+                    (lambda _
+                      (invoke "python" "-m" "django" "test" "-v2"
+                              "--settings=tests.settings"))))))
+    (native-inputs `(("python-django" ,python-django)))
     (synopsis "Pickled object field for Django")
     (description "Pickled object field for Django")
     (license license:expat)))
@@ -656,23 +671,17 @@ conn_max_age argument to easily enable Django’s connection pool.")
 (define-public python-django-bulk-update
   (package
     (name "python-django-bulk-update")
-    (version "1.1.10")
+    (version "2.2.0")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "django-bulk-update" version))
               (sha256
                (base32
-                "0mbng9m7swfc0dnidipbzlxfhlfjrv755dlnha5s4m9mgdxb1fhc"))))
+                "0dxkmrm3skyw82i0qa8vklxw1ma1y308kh9w2hcnvhpacn5cxdss"))))
     (build-system python-build-system)
     (arguments
-     ;; tests don't support django 1.10, but the module seems to work.
+     ;; XXX: Tests require a Postgres database.
      `(#:tests? #f))
-    (native-inputs
-     `(("six" ,python-six)
-       ("jsonfield" ,python-django-jsonfield)
-       ("python-dj-database-url" ,python-dj-database-url)))
-    (propagated-inputs
-     `(("python-django" ,python-django)))
     (home-page "https://github.com/aykut/django-bulk-update")
     (synopsis "Simple bulk update over Django ORM or with helper function")
     (description
@@ -680,34 +689,30 @@ conn_max_age argument to easily enable Django’s connection pool.")
 project aims to bulk update given objects using one query over Django ORM.")
     (license license:expat)))
 
-(define-public python2-django-bulk-update
-  (package-with-python2 python-django-bulk-update))
-
 (define-public python-django-contact-form
   (package
     (name "python-django-contact-form")
-    (version "1.3")
+    (version "1.8.1")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "django-contact-form" version))
               (sha256
                (base32
-                "0az590y56k5ahv4sixrkn54d3a8ig2q2z9pl6s3m4f533mx2gj17"))))
+                "1zv7bcjfrg32gcsq3bclkld79l6mcy2wcvlj81h7q2ppv1wm8vqs"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
        (modify-phases %standard-phases
          (replace 'check
            (lambda _
-             ;; the next version will need "make test"
-             (invoke "flake8" "contact_form")
-             (invoke "coverage" "run" "contact_form/runtests.py")
-             (invoke "coverage" "report" "-m" "--fail-under" "0"))))))
+             (setenv "PYTHONPATH"
+                     (string-append "./build/lib:"
+                                    (getenv "PYTHONPATH")))
+             (invoke "coverage" "run" "--source" "contact_form"
+                     "runtests.py"))))))
     (native-inputs
      `(("python-coverage" ,python-coverage)
-       ("python-flake8" ,python-flake8)))
-    (propagated-inputs
-     `(("python-django" ,python-django)))
+       ("python-django" ,python-django)))
     (home-page "https://github.com/ubernostrum/django-contact-form")
     (synopsis "Contact form for Django")
     (description
@@ -715,22 +720,21 @@ project aims to bulk update given objects using one query over Django ORM.")
 for Django sites.")
     (license license:bsd-3)))
 
-(define-public python2-django-contact-form
-  (package-with-python2 python-django-contact-form))
-
 (define-public python-django-contrib-comments
   (package
     (name "python-django-contrib-comments")
-    (version "1.8.0")
+    (version "1.9.2")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "django-contrib-comments" version))
               (sha256
                (base32
-                "0bxsgw8jrkhg6r5s0z6ksfi4w8yknaqb1s9acmxd9pm3pnsnp5kx"))))
+                "0ccdiv784a5vnpfal36km4dyg12340rwhpr0riyy0k89wfnjn8yi"))))
     (build-system python-build-system)
-    (propagated-inputs
+    (native-inputs
      `(("python-django" ,python-django)))
+    (propagated-inputs
+     `(("python-six" ,python-six)))
     (home-page "https://github.com/django/django-contrib-comments")
     (synopsis "Comments framework")
     (description
@@ -740,53 +744,17 @@ used to attach comments to any model, so you can use it for comments on blog
 entries, photos, book chapters, or anything else.")
     (license license:bsd-3)))
 
-(define-public python2-django-contrib-comments
-  (package-with-python2 python-django-contrib-comments))
-
-(define-public python-django-overextends
-  (package
-    (name "python-django-overextends")
-    (version "0.4.3")
-    (source (origin
-              (method url-fetch)
-              (uri (pypi-uri "django-overextends" version))
-              (sha256
-               (base32
-                "0qc2pcf3i56pmfxh2jw7k3pgljd8xzficmkl2541n7bkcbngqfzm"))))
-    (build-system python-build-system)
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (replace 'check
-           (lambda _ (invoke "./test_project/manage.py" "test"))))))
-    (propagated-inputs
-     `(("python-django" ,python-django)))
-    (native-inputs
-     `(("sphinx-me" ,python-sphinx-me)))
-    (home-page "https://github.com/stephenmcd/django-overextends")
-    (synopsis "Circular template inheritance")
-    (description
-      "A Django reusable app providing the overextends template tag, a drop-in
-replacement for Django's extends tag, which allows you to use circular template
-inheritance.  The primary use-case for overextends is to simultaneously
-override and extend templates from other reusable apps, in your own Django
-project.")
-    (license license:bsd-2)))
-
-(define-public python2-django-overextends
-  (package-with-python2 python-django-overextends))
-
 (define-public python-django-pipeline
   (package
     (name "python-django-pipeline")
-    (version "1.6.14")
+    (version "2.0.5")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "django-pipeline" version))
        (sha256
         (base32
-         "1a207y71r7za033ira0qmh2yrgp5rq0l04gw2fg9b8jri7sslrzg"))))
+         "19vrbd5s12qw4qlg5n8ldv7zz2rs5y2sdid1i7lvgp92m71dayvc"))))
     (build-system python-build-system)
     (arguments
      '(#:phases
@@ -806,8 +774,10 @@ project.")
                                        (getenv "PYTHONPATH")))
                 (setenv "DJANGO_SETTINGS_MODULE" "tests.settings")
                 (invoke "django-admin" "test" "tests"))))))))
+    (native-inputs
+     `(("python-django" ,python-django)))
     (propagated-inputs
-     `(("python-django" ,python-django)
+     `(("python-css-html-js-minify" ,python-css-html-js-minify)
        ("python-slimit" ,python-slimit)
        ("python-jsmin" ,python-jsmin)))
     (home-page
@@ -822,13 +792,13 @@ support, and optional data-URI image and font embedding.")
 (define-public python-django-redis
   (package
     (name "python-django-redis")
-    (version "4.10.0")
+    (version "4.12.1")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "django-redis" version))
               (sha256
                (base32
-                "1rxcwnv9ik0swkwvfqdi9i9baw6n8if5pj6q63fjh4p9chw3j2xg"))))
+                "0qvsm8yjchl0d3i7g20wba6px9lb5gv8kp3fcnr6hr0y0b3qjr9h"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -839,33 +809,30 @@ support, and optional data-URI image and font embedding.")
              (with-directory-excursion "tests"
                (invoke "python" "runtests.py")))))))
     (native-inputs
-     `(("python-fakeredis" ,python-fakeredis)
+     `(("python-django" ,python-django)
+       ("python-fakeredis" ,python-fakeredis)
        ("python-hiredis" ,python-hiredis)
        ("python-mock" ,python-mock)
        ("python-msgpack" ,python-msgpack)
        ("redis" ,redis)))
     (propagated-inputs
-     `(("python-django" ,python-django)
-       ("python-redis" ,python-redis)))
+     `(("python-redis" ,python-redis)))
     (home-page "https://github.com/niwibe/django-redis")
     (synopsis "Full featured redis cache backend for Django")
     (description
       "Full featured redis cache backend for Django.")
     (license license:bsd-3)))
 
-(define-public python2-django-redis
-  (package-with-python2 python-django-redis))
-
 (define-public python-django-rq
   (package
     (name "python-django-rq")
-    (version "1.3.1")
+    (version "2.3.2")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "django-rq" version))
               (sha256
                (base32
-                "1ips1ikv5qhgwb58ssn496vgqg9qv6jinwmwbrg9l3s75fskd1l5"))))
+                "0lksnjn3q3f7y72bj2yr8870w28a5b6x0vjnd9nhpq2ah6xfz6pf"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -877,11 +844,13 @@ support, and optional data-URI image and font embedding.")
                      "--settings=django_rq.tests.settings"
                      "--pythonpath=."))))))
     (native-inputs
-     `(("python-mock" ,python-mock)
+     `(("python-django" ,python-django)
+       ("python-django-redis" ,python-django-redis)
+       ("python-mock" ,python-mock)
+       ("python-rq-scheduler" ,python-rq-scheduler)
        ("redis" ,redis)))
     (propagated-inputs
-     `(("python-django" ,python-django)
-       ("python-rq" ,python-rq)))
+     `(("python-rq" ,python-rq)))
     (home-page "https://github.com/ui/django-rq")
     (synopsis "Django integration with RQ")
     (description
@@ -890,37 +859,25 @@ Django-RQ is a simple app that allows you to configure your queues in django's
 settings.py and easily use them in your project.")
     (license license:expat)))
 
-(define-public python2-django-rq
-  (package-with-python2 python-django-rq))
-
 (define-public python-django-q
   (package
     (name "python-django-q")
-    (version "1.3.2")
+    (version "1.3.4")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "django-q" version))
         (sha256
-         (base32
-          "0ac3rjxv37bn97a62ly8b7qvbv765z6paiinzpwxx83nal2icc42"))))
+         (base32 "03z1pf6wlf47i7afr79a8fiiidfk1vq19yaqnv0m4qdny7f58gaj"))))
     (build-system python-build-system)
-    (arguments
-     '(#:phases
-       (modify-phases %standard-phases
-         (replace 'check
-           (lambda _
-             (setenv "DJANGO_SETTINGS_MODULE" "django_q.tests.settings")
-             (invoke "django-admin" "test" "django_q.tests"
-                     "--pythonpath=."))))))
+    ;; 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" ,python-django)
        ("python-django-picklefield" ,python-django-picklefield)))
-    (native-inputs
-     `(("python-django-redis" ,python-django-redis)
-       ("python-pytest-django" ,python-pytest-django)))
     (home-page "https://django-q.readthedocs.io/")
     (synopsis "Multiprocessing distributed task queue for Django")
     (description
@@ -931,20 +888,25 @@ using Python multiprocessing.")
 (define-public python-django-sortedm2m
   (package
     (name "python-django-sortedm2m")
-    (version "1.3.3")
+    (version "3.0.2")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "django-sortedm2m" version))
               (sha256
                (base32
-                "0axf765i7b3c2s83nlph47asi8s071dhq8l7y382v1pw785s22vi"))))
+                "0z0yymmrr2l5cznqbzwziw624df0qsiflvbpqwrpan52nww3dk4a"))))
     (build-system python-build-system)
     (arguments
-     ;; no tests.
-     `(#:tests? #f))
-    (propagated-inputs
+     `(#:phases (modify-phases %standard-phases
+                  (replace 'check
+                    (lambda _
+                      (setenv "PYTHONPATH" (string-append "./test_project:"
+                                                          "./build/lib:.:"
+                                                          (getenv "PYTHONPATH")))
+                      (invoke "django-admin.py" "test" "--settings=settings"))))))
+    (native-inputs
      `(("python-django" ,python-django)))
-    (home-page "https://github.com/gregmuellegger/django-sortedm2m")
+    (home-page "https://github.com/jazzband/django-sortedm2m")
     (synopsis "Drop-in replacement for django's own ManyToManyField")
     (description
       "Sortedm2m is a drop-in replacement for django's own ManyToManyField.
@@ -952,23 +914,27 @@ The provided SortedManyToManyField behaves like the original one but remembers
 the order of added relations.")
     (license license:bsd-3)))
 
-(define-public python2-django-sortedm2m
-  (package-with-python2 python-django-sortedm2m))
-
 (define-public python-django-appconf
   (package
     (name "python-django-appconf")
-    (version "1.0.3")
+    (version "1.0.4")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "django-appconf" version))
               (sha256
                (base32
-                "1qw0p9qh78bvkgi38ba58djwn0rd5j1lrkg2c2wk5wb7snj3rw9m"))))
+                "101k8nkc7xlffpjdi2qbrp9pc4v8hzvmkzi12qp7vms39asxwn5y"))))
     (build-system python-build-system)
-    (propagated-inputs
-     `(("python-django" ,python-django)
-       ("python-six" ,python-six)))
+    (arguments
+     '(#:phases (modify-phases %standard-phases
+                  (replace 'check
+                    (lambda _
+                      (setenv "PYTHONPATH" (string-append ".:"
+                                                          (getenv "PYTHONPATH")))
+                      (setenv "DJANGO_SETTINGS_MODULE" "tests.test_settings")
+                      (invoke "django-admin.py" "test" "-v2"))))))
+    (native-inputs
+     `(("python-django" ,python-django)))
     (home-page "https://github.com/django-compressor/django-appconf")
     (synopsis "Handle configuration defaults of packaged Django apps")
     (description
@@ -979,105 +945,42 @@ django-appconf and can't easily be used as a replacement.  The similarity in
 name is purely coincidental.")
     (license license:bsd-3)))
 
-(define-public python2-django-appconf
-  (package-with-python2 python-django-appconf))
-
 (define-public python-django-statici18n
   (package
     (name "python-django-statici18n")
-    (version "1.3.0")
+    (version "1.9.0")
+    (home-page "https://github.com/zyegfryed/django-statici18n")
     (source (origin
-              (method url-fetch)
-              (uri (pypi-uri "django-statici18n" version))
+              (method git-fetch)
+              (uri (git-reference
+                    (url home-page)
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "0alcf4g1nv69njhq5k3qw4mfl2k6dc18bik5nk0g1mnp3m8zyz7k"))))
+                "1p3myp2im6c87yc05alh91jyahqws5lcw3zzdsj4dh8lx9s9cgpf"))))
     (build-system python-build-system)
-    (propagated-inputs
+    (arguments
+     '(#:phases (modify-phases %standard-phases
+                  (replace 'check
+                    (lambda _
+                      (setenv "PYTHONPATH"
+                              (string-append "./tests/test_project:./build/lib:"
+                                             (getenv "PYTHONPATH")))
+                      (setenv "DJANGO_SETTINGS_MODULE" "project.settings")
+                      (invoke "pytest" "-vv"))))))
+    (native-inputs
      `(("python-django" ,python-django)
-       ("django-appconf" ,python-django-appconf)))
-    (home-page "https://github.com/zyegfryed/django-statici18n")
+       ("python-pytest" ,python-pytest)
+       ("python-pytest-django" ,python-pytest-django)))
+    (propagated-inputs
+     `(("django-appconf" ,python-django-appconf)))
     (synopsis "Generate JavaScript catalog to static files")
     (description
       "A Django app that provides helper for generating JavaScript catalog to
 static files.")
     (license license:bsd-3)))
 
-(define-public python2-django-statici18n
-  (package-with-python2 python-django-statici18n))
-
-(define-public pootle
-  (package
-    (name "pootle")
-    (version "2.8.2")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (pypi-uri "Pootle" version ".tar.bz2"))
-        (sha256
-         (base32
-          "1ng8igq0alsqzasgxdh3fb23581anyzp121h9041pwdzzv98kn4m"))))
-    (build-system python-build-system)
-    (arguments
-     `(; pootle supports only python2.
-       #:python ,python-2
-       ;; tests are not run and fail with "pytest_pootle/data/po/.tmp: No such
-       ;; file or directory". If we create this directory,
-       ;; pytest_pootle/data/po/terminology.po is missing.
-       #:tests? #f
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'build 'fix-requirements
-           (lambda _
-             (substitute* "Pootle.egg-info/requires.txt"
-               (("1.7.3") "1.8.0")
-               (("2.0.0") "2.1.0"))
-             (substitute* "requirements/tests.txt"
-               (("==3.0.6") ">=3.0.6"))
-             (substitute* "requirements/base.txt"
-               (("1.7.3") "1.8.0")
-               (("2.0.0") "2.1.0")))))))
-    (propagated-inputs
-     `(("django-allauth" ,python2-django-allauth)
-       ("django-assets" ,python2-django-assets)
-       ("django-bulk-update" ,python2-django-bulk-update)
-       ("django-contact-form" ,python2-django-contact-form)
-       ("django-contrib-comments" ,python2-django-contrib-comments)
-       ("django-overextends" ,python2-django-overextends)
-       ("django-redis" ,python2-django-redis)
-       ("django-rq" ,python2-django-rq)
-       ("django-sortedm2m" ,python2-django-sortedm2m)
-       ("django-statici18n" ,python2-django-statici18n)
-       ("babel" ,python2-babel)
-       ("cssmin" ,python2-cssmin)
-       ("diff-match-patch" ,python2-diff-match-patch)
-       ("dirsync" ,python2-dirsync)
-       ("elasticsearch" ,python2-elasticsearch)
-       ("jsonfield" ,python2-django-jsonfield)
-       ("lxml" ,python2-lxml)
-       ("dateutil" ,python2-dateutil)
-       ("levenshtein" ,python2-levenshtein)
-       ("mysqlclient" ,python2-mysqlclient)
-       ("psycopg2" ,python2-psycopg2)
-       ("pytz" ,python2-pytz)
-       ("rq" ,python2-rq)
-       ("scandir" ,python2-scandir)
-       ("stemming" ,python2-stemming)
-       ("translate-toolkit" ,python2-translate-toolkit)))
-    (native-inputs
-     `(("python2-pytest" ,python2-pytest)
-       ("python2-pytest-django" ,python2-pytest-django)
-       ("python2-pytest-catchlog" ,python2-pytest-catchlog)
-       ("python2-pytest-cov" ,python2-pytest-cov)
-       ("python2-factory-boy" ,python2-factory-boy)))
-    (home-page "https://pootle.translatehouse.org/")
-    (synopsis "Community localization server")
-    (description
-      "Pootle is an online translation and localization tool.  It works to
-lower the barrier of entry, providing tools to enable teams to work towards
-higher quality while welcoming newcomers.")
-    (license license:gpl3+)))
-
 (define-public python-django-tagging
   (package
     (name "python-django-tagging")
@@ -1104,67 +1007,51 @@ higher quality while welcoming newcomers.")
     (description "This package provides a generic tagging application for
 Django projects, which allows association of a number of tags with any
 @code{Model} instance and makes retrieval of tags simple.")
-    (properties `((python2-variant . ,(delay python2-django-tagging))))
     (license license:bsd-3)))
 
-(define-public python2-django-tagging
-  (let ((base (package-with-python2
-                (strip-python2-variant python-django-tagging))))
-    (package
-      (inherit base)
-      (version "0.4.6")
-      (source
-        (origin
-          (method url-fetch)
-          (uri (pypi-uri "django-tagging" version))
-          (sha256
-           (base32
-            "0s7b4v45j783yaxs7rni10k24san0ya77nqz4s7zdf3jhfpk42r1")))))))
-
 (define-public python-djangorestframework
   (package
     (name "python-djangorestframework")
-    (version "3.7.7")
+    (version "3.12.1")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "djangorestframework" version))
        (sha256
         (base32
-         "11qv117gqwswxjljs7wafxg1hyzzlx3qrviwlk9hw41bsbl997lz"))))
+         "0jb22psb823vh5fj9az63p5lgyax9ygjy2faah16ajxvvsp54i6m"))))
     (build-system python-build-system)
     (arguments
      '(;; No included tests
        #:tests? #f))
-    (propagated-inputs
-     `(("python-django" ,python-django)))
     (home-page "https://www.django-rest-framework.org")
     (synopsis "Toolkit for building Web APIs with Django")
     (description
      "The Django REST framework is for building Web APIs with Django.  It
-provides features like a web browseable API and authentication policies.")
+provides features like a Web-browsable API and authentication policies.")
     (license license:bsd-2)))
 
 (define-public python-django-sekizai
   (package
     (name "python-django-sekizai")
-    (version "1.1.0")
+    (version "2.0.0")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "django-sekizai" version))
         (sha256
          (base32
-          "1nc4sv109valdn6azmgm2j01k7khxy2wnji84z63x7fxsikfdxp2"))))
+          "0vrkli625b5s1wldri3dyrfvqbxg7zxy2pg0rpjixw3b1ndz0ag8"))))
     (build-system python-build-system)
     (arguments '(#:tests? #f)) ; Tests not included with release.
+    (native-inputs
+     `(("python-django" ,python-django)))
     (propagated-inputs
-     `(("python-django" ,python-django)
-       ("python-django-classy-tags" ,python-django-classy-tags)
+     `(("python-django-classy-tags" ,python-django-classy-tags)
        ("python-six" ,python-six)))
     (home-page "https://github.com/divio/django-sekizai")
     (synopsis "Template blocks for Django projects")
-    (description "Sekizai means blocks in Japanese, and thats what this app
+    (description "Sekizai means blocks in Japanese, and that is what this app
 provides.  A fresh look at blocks.  With @code{django-sekizai} you can define
 placeholders where your blocks get rendered and at different places in your
 templates append to those blocks.  This is especially useful for css and
@@ -1177,19 +1064,19 @@ a single block.")
 (define-public python-django-crispy-forms
   (package
     (name "python-django-crispy-forms")
-    (version "1.7.2")
+    (version "1.9.2")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "django-crispy-forms" version))
        (sha256
         (base32
-         "0pv7y648i8iz7mf64gkjizpbx5d01ap2s4vqqa30n38if6wvlljr"))))
+         "0fxlf233f49hjax786p4r650rd0ilvhnpyvw8hv1d1aqnkxy1wgj"))))
     (build-system python-build-system)
     (arguments
      '(;; No included tests
        #:tests? #f))
-    (propagated-inputs
+    (native-inputs
      `(("python-django" ,python-django)))
     (home-page
      "http://github.com/maraujop/django-crispy-forms")
@@ -1247,20 +1134,162 @@ template tag.")
 (define-public python-django-override-storage
   (package
     (name "python-django-override-storage")
-    (version "0.1.6")
+    (version "0.3.0")
+    (home-page "https://github.com/danifus/django-override-storage")
     (source
      (origin
-       (method url-fetch)
-       (uri (pypi-uri "django-override-storage" version))
+       (method git-fetch)
+       (uri (git-reference
+             (url home-page)
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
-        (base32 "022arq94lxnlyykn8wvfnkykhi2dldnsn93pa2i41na551i0wpiv"))))
+        (base32 "081kzfk7mmybhihvc92d3hsdg0r2k20ydq88fs1fgd348sq1ax51"))))
     (build-system python-build-system)
-    (propagated-inputs
-     `(("python-django" ,python-django)))
-    (home-page
-     "https://github.com/danifus/django-override-storage")
+    (arguments
+     '(#:phases (modify-phases %standard-phases
+                  (replace 'check
+                    (lambda _
+                      (invoke "python" "runtests.py"))))))
+    (native-inputs
+     `(("python-django" ,python-django)
+       ("python-mock" ,python-mock)))
     (synopsis "Django test helpers to manage file storage side effects")
     (description
      "This project provides tools to help reduce the side effects of using
 FileFields during tests.")
     (license license:expat)))
+
+(define-public python-django-auth-ldap
+  (package
+    (name "python-django-auth-ldap")
+    (version "2.2.0")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "django-auth-ldap" version))
+              (sha256
+               (base32
+                "1gq49l5lv6ar6yf73c8pix8n7md4109yq31s5jfk64w6n1rigbqi"))))
+    (build-system python-build-system)
+    (arguments
+     '(#:phases (modify-phases %standard-phases
+                  (replace 'check
+                    (lambda* (#:key inputs #:allow-other-keys)
+                      (let ((openldap (assoc-ref inputs "openldap")))
+                        ;; The tests need 'slapd' which is installed to the
+                        ;; libexec directory of OpenLDAP.
+                        (setenv "SLAPD" (string-append openldap "/libexec/slapd"))
+                        (setenv "SCHEMA"
+                                (string-append openldap "/etc/openldap/schema"))
+                        (invoke "python" "-m" "django" "test"
+                                "--settings" "tests.settings")))))))
+    (native-inputs
+     `(("openldap" ,openldap)
+       ("python-django" ,python-django)
+       ("python-mock" ,python-mock)))
+    (propagated-inputs
+     `(("python-ldap" ,python-ldap)))
+    (home-page "https://github.com/django-auth-ldap/django-auth-ldap")
+    (synopsis "Django LDAP authentication backend")
+    (description
+     "This package provides an LDAP authentication backend for Django.")
+    (license license:bsd-2)))
+
+(define-public python-django-logging-json
+  (package
+    (name "python-django-logging-json")
+    (version "1.15")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "django-logging-json" version))
+              (sha256
+               (base32
+                "06041a8icazzp73kg93c7k1ska12wvkq7fpcad0l0sm1qnxx5yx7"))))
+    (build-system python-build-system)
+    (arguments '(#:tests? #f))          ;no tests
+    (native-inputs
+     `(("python-django" ,python-django)))
+    (propagated-inputs
+     `(("python-certifi" ,python-certifi)
+       ("python-elasticsearch" ,python-elasticsearch)
+       ("python-six" ,python-six)))
+    (home-page "https://github.com/cipriantarta/django-logging")
+    (synopsis "Log requests/responses in various formats")
+    (description
+     "This package provides a Django library that logs request, response,
+and exception details in a JSON document.  It can also send logs directly
+to ElasticSearch.")
+    (license license:bsd-2)))
+
+(define-public python-django-netfields
+  (package
+    (name "python-django-netfields")
+    (version "1.2.2")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "django-netfields" version))
+              (sha256
+               (base32
+                "1c47azr5am0q8g45x0fbn0cay7vyrack6n7k6siliw1j2p0gzi7s"))))
+    (build-system python-build-system)
+    (arguments '(#:tests? #f))      ;XXX: Requires a running PostgreSQL server
+    (native-inputs
+     `(("python-django" ,python-django)))
+    (propagated-inputs
+     `(("python-ipaddress" ,python-ipaddress)
+       ("python-netaddr" ,python-netaddr)
+       ("python-six" ,python-six)))
+    (home-page "https://github.com/jimfunk/django-postgresql-netfields")
+    (synopsis "PostgreSQL netfields implementation for Django")
+    (description
+     "This package provides mappings for the PostgreSQL @code{INET} and
+@code{CIDR} fields for use in Django projects.")
+    (license license:bsd-3)))
+
+(define-public python-django-url-filter
+  (package
+    (name "python-django-url-filter")
+    (version "0.3.15")
+    (home-page "https://github.com/miki725/django-url-filter")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference (url home-page) (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0r4zhqhs8y6cnplwyvcb0zpijizw1ifnszs38n4w8138657f9026"))))
+    (build-system python-build-system)
+    (arguments
+     '(#:tests? #f            ;FIXME: Django raises "Apps aren't loaded yet"!?
+       #:phases (modify-phases %standard-phases
+                  (add-before 'check 'loosen-requirements
+                    (lambda _
+                      ;; Do not depend on compatibility package for old
+                      ;; Python versions.
+                      (substitute* "requirements.txt"
+                        (("enum-compat") ""))
+                      #t))
+                  (replace 'check
+                    (lambda* (#:key tests? #:allow-other-keys)
+                      (if tests?
+                          (begin
+                            (setenv "PYTHONPATH"
+                                    (string-append "./build/lib:.:"
+                                                   (getenv "PYTHONPATH")))
+                            (setenv "DJANGO_SETTINGS_MODULE"
+                                    "test_project.settings")
+                            (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)))
+    (synopsis "Filter data via human-friendly URLs")
+    (description
+     "The main goal of Django URL Filter is to provide an easy URL interface
+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)))
diff --git a/gnu/packages/djvu.scm b/gnu/packages/djvu.scm
index f5ea9bd332..6423eb124f 100644
--- a/gnu/packages/djvu.scm
+++ b/gnu/packages/djvu.scm
@@ -2,6 +2,7 @@
 ;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
 ;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2020 Guillaume Le Vaillant <glv@posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -25,33 +26,67 @@
   #:use-module (guix download)
   #:use-module (guix git-download)
   #:use-module (guix build-system gnu)
+  #:use-module (guix build-system python)
   #:use-module (gnu packages autotools)
+  #:use-module (gnu packages base)
+  #:use-module (gnu packages check)
+  #:use-module (gnu packages compression)
+  #:use-module (gnu packages gawk)
+  #:use-module (gnu packages gettext)
+  #:use-module (gnu packages ghostscript)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages image)
+  #:use-module (gnu packages imagemagick)
+  #:use-module (gnu packages linux)
+  #:use-module (gnu packages ncurses)
+  #:use-module (gnu packages ocr)
+  #:use-module (gnu packages pdf)
   #:use-module (gnu packages pkg-config)
+  #: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 wxwidgets)
+  #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg))
 
 (define-public djvulibre
   (package
     (name "djvulibre")
-    (version "3.5.27")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://sourceforge/djvu/DjVuLibre/"
-                                  version "/djvulibre-" version ".tar.gz"))
-              (sha256
-               (base32
-                "0psh3zl9dj4n4r3lx25390nx34xz0bg0ql48zdskhq354ljni5p6"))))
+    (version "3.5.28")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://sourceforge/djvu/DjVuLibre/"
+                           (string-replace-substring version "." ",")
+                           "/djvulibre-" version ".tar.gz"))
+       (sha256
+        (base32 "0manxn1ly5n8nqamv47hz7akxi6v0rzwc9j1c3x99vngrjlr5qw2"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin
+           ;; This bundles software (e.g., zlib) and is entirely superfluous.
+           (delete-file-recursively "win32")
+           #t))))
     (build-system gnu-build-system)
+    (native-inputs
+     ;; The 3.5.28 release tarball isn't bootstrapped.
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("libtool" ,libtool)))
+    (inputs
+     `(("libjpeg-turbo" ,libjpeg-turbo)
+       ("libtiff" ,libtiff)
+       ("zlib" ,zlib)))
     (arguments
-     `(#:phases (modify-phases %standard-phases
-                  (add-after 'unpack 'reproducible
-                    (lambda _
-                      ;; Ensure there are no timestamps in .svgz files.
-                      (substitute* "desktopfiles/Makefile.in"
-                        (("gzip") "gzip -n"))
-                      #t)))))
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'bootstrap 'make-reproducible
+           (lambda _
+             ;; Ensure there are no timestamps in .svgz files.
+             (substitute* "desktopfiles/Makefile.am"
+               (("gzip") "gzip -n"))
+             #t)))))
     (home-page "http://djvu.sourceforge.net/")
     (synopsis "Implementation of DjVu, the document format")
     (description "DjVuLibre is an implementation of DjVu,
@@ -62,7 +97,7 @@ utilities.")
 (define-public djview
   (package
     (name "djview")
-    (version "4.11")
+    (version "4.12")
     (source
      (origin
        (method git-fetch)
@@ -70,7 +105,7 @@ utilities.")
              (url "https://git.code.sf.net/p/djvu/djview-git")
              (commit (string-append "release." version))))
        (sha256
-        (base32 "0qlhd0xlxn8i869m0hwdjvwivi2vigqm88wliyr1h7s84zl3qhsy"))
+        (base32 "0mn9ywjbc7iga50lbjclrk892g0x0rap0dmb6ybzjyarybdhhcxp"))
        (file-name (git-file-name name version))))
     (build-system gnu-build-system)
     (native-inputs
@@ -112,3 +147,343 @@ files, and printing page and documents.
 The viewer can simultaneously display several pages using a side-by-side or
 a continuous layout.")
     (license license:gpl2+)))
+
+(define-public pdf2djvu
+  (package
+    (name "pdf2djvu")
+    (version "0.9.17.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://github.com/jwilk/pdf2djvu/releases/download/" version
+             "/pdf2djvu-" version ".tar.xz"))
+       (sha256
+        (base32 "18r648kna6ccw0m0nfxxnsmz541k69d0w9zzqvm1x2l5qyyvgfsv"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("gettext" ,gettext-minimal)
+       ("pkg-config" ,pkg-config)
+       ("python2" ,python-2)
+       ("python2-nose" ,python2-nose)))
+    (inputs
+     `(("djvulibre" ,djvulibre)
+       ("exiv2" ,exiv2)
+       ("graphicsmagick" ,graphicsmagick)
+       ("poppler" ,poppler)
+       ("poppler-data" ,poppler-data)
+       ("util-linux-lib" ,util-linux "lib"))) ; for libuuid
+    (arguments
+     `(#:test-target "test"))
+    (synopsis "PDF to DjVu converter")
+    (description
+     "@code{pdf2djvu} creates DjVu files from PDF files.
+It is able to extract:
+@itemize
+@item graphics,
+@item text layer,
+@item hyperlinks,
+@item document outline (bookmarks),
+@item metadata (including XMP metadata).
+@end itemize\n")
+    (home-page "https://jwilk.net/software/pdf2djvu")
+    (license license:gpl2)))
+
+(define-public djvu2pdf
+  (package
+    (name "djvu2pdf")
+    (version "0.9.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://0x2a.at/site/projects/djvu2pdf/djvu2pdf-"
+                           version ".tar.gz"))
+       (sha256
+        (base32 "0v2ax30m7j1yi4m02nzn9rc4sn4vzqh5vywdh96r64j4pwvn5s5g"))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("djvulibre" ,djvulibre)
+       ("gawk" ,gawk)
+       ("ghostscript" ,ghostscript)
+       ("grep" ,grep)
+       ("ncurses" ,ncurses)
+       ("which" ,which)))
+    (arguments
+     `(#:tests? #f ; No test suite
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-paths
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((djvulibre (assoc-ref inputs "djvulibre"))
+                   (gawk (assoc-ref inputs "gawk"))
+                   (ghostscript (assoc-ref inputs "ghostscript"))
+                   (grep (assoc-ref inputs "grep"))
+                   (ncurses (assoc-ref inputs "ncurses"))
+                   (which (assoc-ref inputs "which")))
+               (substitute* "djvu2pdf"
+                 (("awk")
+                  (string-append gawk "/bin/awk"))
+                 (("ddjvu")
+                  (string-append djvulibre "/bin/ddjvu"))
+                 (("djvudump")
+                  (string-append djvulibre "/bin/djvudump"))
+                 (("grep")
+                  (string-append grep "/bin/grep"))
+                 (("gs")
+                  (string-append ghostscript "/bin/gs"))
+                 (("tput ")
+                  (string-append ncurses "/bin/tput "))
+                 (("which")
+                  (string-append which "/bin/which"))))
+             #t))
+         (delete 'configure)
+         (delete 'build)
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref %outputs "out")))
+               (install-file "djvu2pdf"
+                             (string-append out "/bin"))
+               (install-file "djvu2pdf.1.gz"
+                             (string-append out "/share/man/man1"))
+               #t))))))
+    (synopsis "DjVu to PDF converter")
+    (description "This is a small tool to convert DjVu files to PDF files.")
+    (home-page "https://0x2a.at/site/projects/djvu2pdf/")
+    (license license:gpl2+)))
+
+(define-public minidjvu
+  (package
+    (name "minidjvu")
+    (version "0.8")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://sourceforge/minidjvu/minidjvu/"
+                           version "/minidjvu-" version ".tar.gz"))
+       (sha256
+        (base32 "0jmpvy4g68k6xgplj9zsl6brg6vi81mx3nx2x9hfbr1f4zh95j79"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("gettext" ,gettext-minimal)))
+    (inputs
+     `(("libjpeg-turbo" ,libjpeg-turbo)
+       ("libtiff" ,libtiff)
+       ("zlib" ,zlib)))
+    (arguments
+     '(#:configure-flags '("--disable-static")
+       #:parallel-build? #f
+       #:tests? #f ; No test suite
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-paths
+           (lambda _
+             (substitute* "Makefile.in"
+               (("/usr/bin/gzip")
+                "gzip"))
+             #t))
+         (add-before 'install 'make-lib-directory
+           (lambda* (#:key outputs #:allow-other-keys)
+             (mkdir-p (string-append (assoc-ref outputs "out") "/lib"))
+             #t)))))
+    (synopsis "Black and white DjVu encoder")
+    (description
+     "@code{minidjvu} is a multipage DjVu encoder and single page
+encoder/decoder.  It doesn't support colors or grayscales, just black
+and white.")
+    (home-page "https://sourceforge.net/projects/minidjvu/")
+    (license license:gpl2)))
+
+(define-public djvusmooth
+  (package
+    (name "djvusmooth")
+    (version "0.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://github.com/jwilk/djvusmooth/releases/download/" version
+             "/djvusmooth-" version ".tar.gz"))
+       (sha256
+        (base32 "0z403cklvxzz0qaczgv83ax0nknrd9h8micp04j9kjfdxk2sgval"))))
+    (build-system python-build-system)
+    (inputs
+     `(("djvulibre" ,djvulibre)
+       ("python2-djvulibre" ,python2-djvulibre)
+       ("python2-subprocess32" ,python2-subprocess32)
+       ("python2-wxpython" ,python2-wxpython)))
+    (arguments
+     `(#:python ,python-2
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-paths
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "lib/djvused.py"
+               (("djvused_path = 'djvused'")
+                (string-append "djvused_path = '"
+                               (assoc-ref inputs "djvulibre")
+                               "/bin/djvused'"))))))))
+    (synopsis "Graphical editor for DjVu documents")
+    (description
+     "@code{djvusmooth} is a graphical editor for DjVu_ documents.
+It is able to:
+@itemize
+@item edit document metadata,
+@item edit document outline (bookmarks),
+@item add, remove or edit hyperlinks,
+@item correct occasional errors in the hidden text layer.
+@end itemize\n")
+    (home-page "https://jwilk.net/software/djvusmooth")
+    (license license:gpl2)))
+
+(define-public didjvu
+  (package
+    (name "didjvu")
+    (version "0.9")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://github.com/jwilk/didjvu/releases/download/" version
+             "/didjvu-" version ".tar.gz"))
+       (sha256
+        (base32 "0xyrnk8d2khi7q1zr28gjkjq6frz4mkb5jdl8821yzf12k7c8pbv"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("python2-nose" ,python2-nose)))
+    (inputs
+     `(("djvulibre" ,djvulibre)
+       ("minidjvu" ,minidjvu)
+       ("python" ,python-2)
+       ("python2-gamera" ,python2-gamera)
+       ("python2-pillow" ,python2-pillow)))
+    (arguments
+     `(#:modules ((guix build gnu-build-system)
+                  ((guix build python-build-system) #:prefix python:)
+                  (guix build utils))
+       #:imported-modules (,@%gnu-build-system-modules
+                           (guix build python-build-system))
+       #:test-target "test"
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (add-before 'check 'disable-failing-test
+           (lambda _
+             (substitute* "tests/test_ipc.py"
+               ;; test_wait_signal gets stuck forever
+               (("yield self\\._test_signal, name")
+                "return True")
+               ;; test_path fails to find a file it should have created
+               (("path = os\\.getenv\\('PATH'\\)\\.split\\(':'\\)")
+                "return True"))
+             (substitute* "tests/test_timestamp.py"
+               ;; test_timezones fails with:
+               ;;   '2009-12-18T21:25:14Z' != '2009-12-18T22:25:14+01:00'
+               (("@fork_isolation")
+                "return True"))))
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (invoke "make"
+                       "DESTDIR="
+                       (string-append "PREFIX=" out)
+                       "install"))))
+         (add-after 'install 'wrap-python
+           (assoc-ref python:%standard-phases 'wrap))
+         (add-after 'wrap-python 'wrap-path
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out"))
+                   (djvulibre (assoc-ref inputs "djvulibre")))
+               (wrap-program (string-append out "/bin/didjvu")
+                 `("PATH" ":" prefix (,(string-append djvulibre "/bin"))))))))))
+    (synopsis "DjVu encoder with foreground/background separation")
+    (description
+     "@code{didjvu} uses the @code{Gamera} framework to separate the foreground
+and background layers of images, which can then be encoded into a DjVu file.")
+    (home-page "https://jwilk.net/software/didjvu")
+    (license license:gpl2)))
+
+(define-public ocrodjvu
+  (package
+    (name "ocrodjvu")
+    (version "0.12")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://github.com/jwilk/ocrodjvu/releases/download/" version
+             "/ocrodjvu-" version ".tar.xz"))
+       (sha256
+        (base32 "09w9rqr7z2jd5kwp178zz2yrsc82mxs7gksipg92znxzgzhmw2ng"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("libxml2" ,libxml2)
+       ("python2-nose" ,python2-nose)
+       ("python2-pillow" ,python2-pillow)))
+    (inputs
+     `(("djvulibre" ,djvulibre)
+       ("ocrad" ,ocrad)
+       ("python" ,python-2)
+       ("python2-djvulibre" ,python2-djvulibre)
+       ("python2-html5lib" ,python2-html5lib)
+       ("python2-lxml" ,python2-lxml)
+       ("python2-pyicu" ,python2-pyicu)
+       ("python2-subprocess32" ,python2-subprocess32)
+       ("tesseract-ocr" ,tesseract-ocr)))
+    (arguments
+     `(#:modules ((guix build gnu-build-system)
+                  ((guix build python-build-system) #:prefix python:)
+                  (guix build utils))
+       #:imported-modules (,@%gnu-build-system-modules
+                           (guix build python-build-system))
+       #:test-target "test"
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (add-before 'check 'disable-failing-test
+           (lambda _
+             (substitute* "tests/test_ipc.py"
+               ;; test_wait_signal gets stuck forever
+               (("yield self\\._test_signal, name")
+                "return True")
+               ;; test_path fails to find a file it should have created
+               (("path = os\\.getenv\\('PATH'\\)\\.split\\(':'\\)")
+                "return True"))
+             ;; Disable tests with tesseract. They can't work without
+             ;; the language files that must downloaded by the final user
+             ;; as they are not packaged in Guix.
+             (substitute* "tests/ocrodjvu/test.py"
+               (("engines = stdout\\.getvalue\\(\\)\\.splitlines\\(\\)")
+                "engines = ['ocrad']"))
+             (substitute* "tests/ocrodjvu/test_integration.py"
+               (("engines = 'tesseract', 'cuneiform', 'gocr', 'ocrad'")
+                "engines = 'ocrad'"))))
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (invoke "make"
+                       "DESTDIR="
+                       (string-append "PREFIX=" out)
+                       "install"))))
+         (add-after 'install 'wrap-python
+           (assoc-ref python:%standard-phases 'wrap))
+         (add-after 'wrap-python 'wrap-path
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out"))
+                   (djvulibre (assoc-ref inputs "djvulibre"))
+                   (ocrad (assoc-ref inputs "ocrad"))
+                   (tesseract (assoc-ref inputs "tesseract-ocr")))
+               (for-each (lambda (file)
+                           (wrap-program (string-append out "/bin/" file)
+                             `("PATH" ":" prefix
+                               (,(string-append djvulibre "/bin:"
+                                                ocrad "/bin:"
+                                                tesseract "/bin")))))
+                         '("djvu2hocr"
+                           "hocr2djvused"
+                           "ocrodjvu"))))))))
+    (synopsis "Program to perform OCR on DjVu files")
+    (description
+     "@code{ocrodjvu} is a wrapper for OCR systems, that allows you to perform
+OCR on DjVu files.")
+    (home-page "https://jwilk.net/software/ocrodjvu")
+    (license license:gpl2)))
diff --git a/gnu/packages/dlang.scm b/gnu/packages/dlang.scm
index 6cdb2efd14..da3b818c26 100644
--- a/gnu/packages/dlang.scm
+++ b/gnu/packages/dlang.scm
@@ -5,6 +5,7 @@
 ;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
 ;;; 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>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -83,7 +84,7 @@ and freshness without requiring additional information from the user.")
 (define-public ldc-bootstrap
     (package
       (name "ldc")
-      (version "0.17.4")
+      (version "0.17.6")
       (source
        (origin
          (method git-fetch)
@@ -92,7 +93,7 @@ and freshness without requiring additional information from the user.")
                (commit (string-append "v" version))))
          (file-name (git-file-name name version))
          (sha256
-          (base32 "0nnrjavfmpfp7bib04isqlxvyzh6mlvsdan0gxysdz96hlg4hcq8"))))
+          (base32 "1q6hm4fkrcwys83x0p4kfg9xrc1b9g2qicqif2zy5z4nsfsb5vgs"))))
       (build-system cmake-build-system)
       (supported-systems '("x86_64-linux" "i686-linux" "armhf-linux"))
       (properties
@@ -117,14 +118,6 @@ and freshness without requiring additional information from the user.")
                  (unpack "druntime-src" "runtime/druntime")
                  (unpack "dmd-testsuite-src" "tests/d2/dmd-testsuite")
                  #t)))
-           (add-after 'unpack-submodule-sources 'patch-dmd2
-             (lambda* (#:key inputs #:allow-other-keys)
-               (substitute* "dmd2/root/port.c"
-                 ((" ::isnan") " isnan")
-                 ((" ::isinf") " isinf")
-                 (("#undef isnan") "")
-                 (("#undef isinf") ""))
-               #t))
            (add-after 'unpack-submodule-sources 'patch-phobos
              (lambda* (#:key inputs #:allow-other-keys)
                (substitute* "runtime/phobos/std/process.d"
@@ -137,8 +130,6 @@ and freshness without requiring additional information from the user.")
                   "(tzName == \"+VERSION\" || std.algorithm.endsWith(tzName, \"/leapseconds\"))"))
                (substitute* "tests/d2/dmd-testsuite/Makefile"
                  (("/bin/bash") (which "bash")))
-               ;; FIXME: this test cannot be linked.
-               (delete-file "tests/d2/dmd-testsuite/runnable/cppa.d")
                ;; the following two tests fail on i686
                (for-each delete-file '("tests/ir/attributes.d" "tests/ir/align.d")))))))
       (inputs
@@ -147,8 +138,8 @@ and freshness without requiring additional information from the user.")
          ("tzdata" ,tzdata)
          ("zlib" ,zlib)))
       (native-inputs
-       `(("llvm" ,llvm-3.8)
-         ("clang" ,clang-3.8)
+       `(("llvm" ,llvm-6)
+         ("clang" ,clang-6)
          ("python-lit" ,python-lit)
          ("python-wrapper" ,python-wrapper)
          ("unzip" ,unzip)
@@ -160,7 +151,7 @@ and freshness without requiring additional information from the user.")
                    (commit (string-append "ldc-v" version))))
              (file-name (git-file-name "phobos" version))
              (sha256
-              (base32 "0i7gh99w4mi0hdv16261jcdiqyv1nkjdcwy9prw32s0lvplx8fdy"))
+              (base32 "15jzs38wanks2jfp2izzl7zqrp4c8ai54ppsgm8ws86p3sbbkmj8"))
              (patches (search-patches "ldc-bootstrap-disable-tests.patch"))))
          ("druntime-src"
           ,(origin
@@ -170,7 +161,7 @@ and freshness without requiring additional information from the user.")
                    (commit (string-append "ldc-v" version))))
              (file-name (git-file-name "druntime" version))
              (sha256
-              (base32 "0alabm3bbvs94msvxz5psiwk4f51cw9h82z1p5hhsnf8ja6d0am7"))))
+              (base32 "00wr2kiggwnd8h7by51fhj1xc65hv1ysip5gbgdbkfar58p2d0bb"))))
          ("dmd-testsuite-src"
           ,(origin
              (method git-fetch)
@@ -179,7 +170,7 @@ and freshness without requiring additional information from the user.")
                    (commit (string-append "ldc-v" version))))
              (file-name (git-file-name "dmd-testsuite" version))
              (sha256
-              (base32 "05qr4cgb4scfqzbw1l5pk72kil074mvj9d55b165ljyr51sgwgbl"))))))
+              (base32 "1d1c0979wbippldrkjf7szyj4n87hxz8dwqg1r5b3aai37g9kcky"))))))
       (home-page "http://wiki.dlang.org/LDC")
       (synopsis "LLVM-based compiler for the D programming language")
       (description
diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm
index 3c69fd9858..5e65eed7ed 100644
--- a/gnu/packages/dns.scm
+++ b/gnu/packages/dns.scm
@@ -5,7 +5,7 @@
 ;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016 John Darrington <jmd@gnu.org>
 ;;; Copyright © 2016 Nikita <nikita@n0.is>
-;;; Copyright © 2016, 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2016–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2016, 2020 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2017 Vasile Dumitrascu <va511e@yahoo.com>
 ;;; Copyright © 2017 Gregor Giesen <giesen@zaehlwerk.net>
@@ -13,10 +13,11 @@
 ;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
 ;;; Copyright © 2019 Chris Marusich <cmmarusich@gmail.com>
 ;;; Copyright © 2019 Rutger Helling <rhelling@mykolab.com>
-;;; Copyright © 2020 Pierre Langlois <pierre.langlois@gmx.com>
+;;; Copyright © 2020, 2021 Pierre Langlois <pierre.langlois@gmx.com>
 ;;; Copyright © 2020 Arun Isaac <arunisaac@systemreboot.net>
 ;;; Copyright © 2020 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
+;;; Copyright © 2020 Simon South <simon@simonsouth.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -38,17 +39,21 @@
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages base)
   #:use-module (gnu packages bash)
+  #:use-module (gnu packages certs)
   #:use-module (gnu packages check)
   #:use-module (gnu packages databases)
   #:use-module (gnu packages documentation)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages crypto)
   #:use-module (gnu packages datastructures)
+  #:use-module (gnu packages elf)
   #:use-module (gnu packages flex)
+  #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages gcc)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages groff)
   #:use-module (gnu packages groff)
+  #:use-module (gnu packages gtk)
   #:use-module (gnu packages libedit)
   #:use-module (gnu packages libevent)
   #:use-module (gnu packages libidn)
@@ -62,8 +67,11 @@
   #:use-module (gnu packages protobuf)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-xyz)
+  #:use-module (gnu packages ragel)
+  #:use-module (gnu packages shells)
   #:use-module (gnu packages sphinx)
   #:use-module (gnu packages swig)
+  #:use-module (gnu packages texinfo)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages web)
   #:use-module (gnu packages xml)
@@ -73,14 +81,203 @@
   #:use-module (guix download)
   #:use-module (guix git-download)
   #:use-module (guix utils)
+  #: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 ldns
+  (package
+    (name "ldns")
+    (version "1.7.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://www.nlnetlabs.nl/downloads/"
+                       name "/" name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0ac242n7996fswq1a3nlh1bbbhrsdwsq4mx7xq8ffq6aplb4rj4a"))
+       (patches
+        (search-patches
+         ;; To create make-flag vairables,
+         ;; for splitting installation of drill and examples.
+         "ldns-drill-examples.patch"))))
+    (build-system gnu-build-system)
+    (outputs '("out" "drill" "examples" "pyldns"))
+    (arguments
+     `( ;; Tests require Tpkg.
+       ;; https://tpkg.github.io/
+       #:tests? #f
+       #:configure-flags
+       (list
+        "--disable-static"
+        "--enable-gost-anyway"
+        "--enable-rrtype-ninfo"
+        "--enable-rrtype-rkey"
+        "--enable-rrtype-ta"
+        "--enable-rrtype-avc"
+        "--enable-rrtype-doa"
+        "--enable-rrtype-amtrelay"
+        "--with-drill"
+        "--with-examples"
+        "--with-pyldns"
+        ;; Perl module DNS::LDNS not available.
+        ;; https://github.com/erikoest/DNS-LDNS.git
+        ;; "--with-p5-dns-ldns"
+        (string-append "--with-ssl="
+                       (assoc-ref %build-inputs "openssl"))
+        (string-append "--with-ca-path="
+                       (assoc-ref %build-inputs "nss-certs")
+                       "/etc/ssl/certs"))
+       #:make-flags
+       (list
+        (string-append "drillbindir="
+                       (assoc-ref %outputs "drill")
+                       "/bin")
+        (string-append "drillmandir="
+                       (assoc-ref %outputs "drill")
+                       "/share/man")
+        (string-append "examplesbindir="
+                       (assoc-ref %outputs "examples")
+                       "/bin")
+        (string-append "examplesmandir="
+                       (assoc-ref %outputs "examples")
+                       "/share/man")
+        (string-append "python_site="
+                       (assoc-ref %outputs "pyldns")
+                       "/lib/python"
+                       ,(version-major+minor
+                         (package-version python))
+                       "/site-packages"))))
+    (native-inputs
+     `(("doxygen" ,doxygen)
+       ("ksh" ,oksh)
+       ("perl" ,perl)
+       ("perl-devel-checklib" ,perl-devel-checklib)
+       ("pkg-config" ,pkg-config)
+       ("python" ,python-wrapper)
+       ("swig" ,swig)))
+    (inputs
+     `(("libpcap" ,libpcap)
+       ("nss-certs" ,nss-certs)
+       ("openssl" ,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
+software conforming to current RFCs, and experimental software for current
+Internet Drafts.  A secondary benefit of using ldns is speed; ldns is written in
+C it should be a lot faster than Perl.")
+    (home-page "https://nlnetlabs.nl/projects/ldns/about/")
+    (license license:bsd-3)))
+
+(define-public dnssec-trigger
+  (package
+    (name "dnssec-trigger")
+    (version "0.17")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://www.nlnetlabs.nl/downloads/"
+                       name "/" name "-" version ".tar.gz"))
+       (sha256
+        (base32 "10928q406x9r66a090xl5kznzgyxpja88w4srwcv454hd351j9f0"))))
+    (build-system glib-or-gtk-build-system)
+    (outputs '("out" "gui" "nm"))
+    (arguments
+     `(#:test-target "test"
+       #:configure-flags
+       (list
+        (string-append "--with-ssl="
+                       (assoc-ref %build-inputs "openssl"))
+        "--with-hooks=networkmanager"
+        (string-append "--with-networkmanager-dispatch="
+                       (assoc-ref %outputs "nm")
+                       "/etc/NetworkManager/dispatcher.d")
+        (string-append "--with-xdg-autostart="
+                       (assoc-ref %outputs "gui")
+                       "/etc/xdg/autostart")
+        (string-append "--with-uidir="
+                       (assoc-ref %outputs "gui")
+                       "/share/dnssec-trigger")
+        (string-append "--with-python="
+                       (assoc-ref %build-inputs "python")
+                       "/bin/python")
+        (string-append "--with-unbound-control="
+                       (assoc-ref %build-inputs "unbound")
+                       "/sbin/unbound-control")
+        "--with-forward-zones-support")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-configure
+           (lambda _
+             (substitute* "configure"
+               (("appindicator-0.1")
+                "appindicator3-0.1"))
+             #t))
+         (add-before 'configure 'patch-makefile
+           (lambda _
+             (substitute* "Makefile.in"
+               (("/usr")
+                "$(prefix)")
+               (("/etc")
+                "$(prefix)/etc")
+               ((".*gtk-update-icon-cache.*")
+                ""))
+             #t))
+         (add-after 'install 'remove-systemd
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out")))
+               (delete-file-recursively
+                (string-append out "/lib/systemd"))
+               #t)))
+         (add-after 'remove-systemd 'move-gui
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (gui (assoc-ref outputs "gui")))
+               (mkdir-p (string-append gui "/bin"))
+               (mkdir-p (string-append gui "/share"))
+               (rename-file
+                (string-append out "/bin")
+                (string-append gui "/bin"))
+               (rename-file
+                (string-append out "/share/icons")
+                (string-append gui "/share/icons"))
+               #t)))
+         (add-after 'move-gui 'move-nm
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (nm (assoc-ref outputs "nm")))
+               (mkdir-p (string-append nm "/libexec"))
+               (rename-file
+                (string-append out "/libexec")
+                (string-append nm "/libexec"))
+               #t))))))
+    (native-inputs
+     `(("cmocka" ,cmocka)
+       ("pkg-config" ,pkg-config)
+       ("python" ,python-wrapper)))
+    (inputs
+     `(("gtk+-2" ,gtk+-2)
+       ("ldns" ,ldns)
+       ("libappindicator" ,libappindicator)
+       ("openssl" ,openssl)
+       ("unbound" ,unbound)))
+    (synopsis "DNSSEC protection for the DNS traffic")
+    (description "DNSSEC-Trigger enables your computer to use DNSSEC protection
+for the DNS traffic.  It relies on the Unbound DNS resolver running locally on
+your system, which performs DNSSEC validation.  It reconfigures Unbound in such
+a way that it will signal it to to use the DHCP obtained forwarders if possible,
+fallback to doing its own AUTH queries if that fails, and if that fails it will
+prompt the user with the option to go with insecure DNS only.")
+    (home-page "https://www.nlnetlabs.nl/projects/dnssec-trigger/about/")
+    (license license:bsd-3)))
+
 (define-public dnsmasq
   (package
     (name "dnsmasq")
-    (version "2.82")
+    (version "2.83")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -88,7 +285,7 @@
                     version ".tar.xz"))
               (sha256
                (base32
-                "0cn1xd1s6xs78jmrmwjnh9m6w3q38pk6dyqy2phvasqiyd33cll4"))))
+                "1sjamz1v588qf35m8z6wcqkjk5w12bqhj7d7p48dj8jyn3lgghgz"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
@@ -119,7 +316,8 @@ and BOOTP/TFTP for network booting of diskless machines.")
 (define-public isc-bind
   (package
     (name "bind")
-    (version "9.16.5")
+    ;; When updating, check whether isc-dhcp's bundled copy should be as well.
+    (version "9.16.11")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -127,7 +325,7 @@ and BOOTP/TFTP for network booting of diskless machines.")
                     "/bind-" version ".tar.xz"))
               (sha256
                (base32
-                "0xf07mmd0vi91jd15z8d3hhjva8v27l4ip4l8yzah4gg3zjv6y33"))))
+                "1hcr0q6i2mk83yi12zxjs5q21y3gx7683q99l77ibxfqsx6zc481"))))
     (build-system gnu-build-system)
     (outputs `("out" "utils"))
     (inputs
@@ -335,14 +533,14 @@ asynchronous fashion.")
 (define-public nsd
   (package
     (name "nsd")
-    (version "4.3.2")
+    (version "4.3.4")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://www.nlnetlabs.nl/downloads/nsd/nsd-"
                            version ".tar.gz"))
        (sha256
-        (base32 "0ac3mbn5z4nc18782m9aswdpi2m9f4665vidw0ciyigdh0pywp2v"))))
+        (base32 "0l4ba80ihwg3s2ifhnkmk7rjabrcy5zw6sz4hn0vm9sif6lk9s1v"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags
@@ -405,14 +603,14 @@ to result in system-wide compromise.")
 (define-public unbound
   (package
     (name "unbound")
-    (version "1.10.1")
+    (version "1.13.0")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://www.unbound.net/downloads/unbound-"
                            version ".tar.gz"))
        (sha256
-        (base32 "0dnmh9jjh2v274f0hl31bgv40pl77mmfgky8bkqr5kvi3b17fdmp"))))
+        (base32 "18dj7migq6379hps59793457l81s3z7dll3y0fj6qcmhjlx08m59"))))
     (build-system gnu-build-system)
     (outputs '("out" "python"))
     (native-inputs
@@ -562,16 +760,16 @@ served by AS112.  Stub and forward zones are supported.")
 (define-public yadifa
   (package
     (name "yadifa")
-    (version "2.3.9")
+    (version "2.4.1")
     (source
-     (let ((build "8497"))
+     (let ((build "9916"))
        (origin
          (method url-fetch)
          (uri
-          (string-append "http://cdn.yadifa.eu/sites/default/files/releases/"
+          (string-append "https://www.yadifa.eu/sites/default/files/releases/"
                          "yadifa-" version "-" build ".tar.gz"))
          (sha256
-          (base32 "0xvyr91sfgzkpw6g3h893ldbwnki3w2472n56rr18w67qghs1sa5")))))
+          (base32 "1m1j7q1f0682xig8qign5ms52igix8pd45fds7p5j285dvrfa4xd")))))
     (build-system gnu-build-system)
     (native-inputs
      `(("which" ,which)))
@@ -584,19 +782,19 @@ served by AS112.  Stub and forward zones are supported.")
            (lambda _
              (substitute* "Makefile.in"
                ((" (etc|var)") ""))
+             #t))
+         (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)))
        #:configure-flags
        (list "--sysconfdir=/etc"
              "--localstatedir=/var"
-             "--disable-build-timestamp" ; build reproducibly
-             "--enable-shared"
-             "--disable-static"
-             "--enable-acl"
-             "--enable-caching"
-             "--enable-ctrl"            ; enable remote control
-             "--enable-nsec"
-             "--enable-nsec3"
-             "--enable-tsig")))
+             "--enable-shared" "--disable-static"
+             "--disable-build-timestamp"))) ; build reproducibly
     (home-page "https://www.yadifa.eu/")
     (synopsis "Authoritative DNS name server")
     (description "YADIFA is an authoritative name server for the @dfn{Domain
@@ -609,44 +807,63 @@ Extensions} (DNSSEC).")
 (define-public knot
   (package
     (name "knot")
-    (version "2.9.5")
+    (version "3.0.3")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://secure.nic.cz/files/knot-dns/"
-                           "knot-" version ".tar.xz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://gitlab.nic.cz/knot/knot-dns")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
-        (base32 "0xmzmhd2m9rb24clrrd9k058harsq67nyjplpbyxvy1g46xah28i"))
+        (base32 "0xzig9l91wj6x23mh75vw2r51ihrgx916c7wxvpcfnwrqsv4f3hy"))
        (modules '((guix build utils)))
        (snippet
         '(begin
-           ;; Delete bundled libraries.
-           (with-directory-excursion "src/contrib"
-             (delete-file-recursively "lmdb"))
+           ;; Remove Ragel-generated C files.  We'll recreate them below.
+           (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))))
     (build-system gnu-build-system)
-    (native-inputs
-     `(("pkg-config" ,pkg-config)))
-    (inputs
-     `(("fstrm" ,fstrm)
-       ("gnutls" ,gnutls)
-       ("jansson" ,jansson)
-       ("libcap-ng" ,libcap-ng)
-       ("libedit" ,libedit)
-       ("libidn" ,libidn)
-       ("liburcu" ,liburcu)
-       ("lmdb" ,lmdb)
-       ("ncurses" ,ncurses)
-       ("protobuf-c" ,protobuf-c)))
+    (outputs (list "out" "doc" "lib" "tools"))
     (arguments
-     `(#:phases
+     `(#:configure-flags
+       (list (string-append "--docdir=" (assoc-ref %outputs "doc")
+                            "/share/" ,name "-" ,version)
+             (string-append "--infodir=" (assoc-ref %outputs "doc")
+                            "/share/info")
+             (string-append "--libdir=" (assoc-ref %outputs "lib") "/lib")
+             "--sysconfdir=/etc"
+             "--localstatedir=/var"
+             "--enable-dnstap"          ; let tools read/write capture files
+             "--enable-fastparser"      ; disabled by default when .git/ exists
+             "--enable-xdp=auto"        ; XXX [=yes] currently means =embedded
+             "--with-module-dnstap=yes") ; detailed query capturing & logging
+       #:phases
        (modify-phases %standard-phases
+         (add-after 'unpack 'link-missing-libbpf-dependency
+           ;; Linking against -lbpf later would fail to find -lz: libbpf.pc has
+           ;; zlib in its Requires.private (not Requires) field.  Add it here.
+           (lambda _
+             (substitute* "configure.ac"
+               (("enable_xdp=yes" match)
+                (string-append match "\nlibbpf_LIBS=\"$libbpf_LIBS -lz\"")))
+             #true))
+         (add-before 'bootstrap 'update-parser
+           (lambda _
+             (with-directory-excursion "src"
+               (invoke "sh" "../scripts/update-parser.sh"))))
          (add-before 'configure 'disable-directory-pre-creation
            (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))
+         (add-after 'build 'build-info
+           (lambda _
+             (invoke "make" "info")))
          (replace 'install
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
@@ -654,15 +871,51 @@ Extensions} (DNSSEC).")
                     (etc (string-append doc "/examples/etc")))
                (invoke "make"
                        (string-append "config_dir=" etc)
-                       "install")))))
-       #:configure-flags
-       (list "--sysconfdir=/etc"
-             "--localstatedir=/var"
-             "--enable-dnstap"          ; let tools read/write capture files
-             "--with-module-dnstap=yes" ; detailed query capturing & logging
-             (string-append "--with-bash-completions="
-                            (assoc-ref %outputs "out")
-                            "/etc/bash_completion.d"))))
+                       "install"))))
+         (add-after 'install 'install-info
+           (lambda _
+             (invoke "make" "install-info")))
+         (add-after 'install 'break-circular-:lib->:out-reference
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((lib (assoc-ref outputs "lib")))
+               (for-each (lambda (file)
+                           (substitute* file
+                             (("(prefix=).*" _ assign)
+                              (string-append assign lib "\n"))))
+                         (find-files lib "\\.pc$"))
+               #true)))
+         (add-after 'install 'split-:tools
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out   (assoc-ref outputs "out"))
+                    (tools (assoc-ref outputs "tools")))
+               (mkdir-p (string-append tools "/share/man"))
+               (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))))))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("libtool" ,libtool)
+       ("pkg-config" ,pkg-config)
+       ("python-sphinx" ,python-sphinx)
+       ("ragel" ,ragel)
+       ("texinfo" ,texinfo)))
+    (inputs
+     `(("fstrm" ,fstrm)
+       ("gnutls" ,gnutls)
+       ("jansson" ,jansson)
+       ("libbpf" ,libbpf)
+       ("libcap-ng" ,libcap-ng)
+       ("libedit" ,libedit)
+       ("libelf" ,libelf)
+       ("libidn" ,libidn)
+       ("libnghttp2" ,nghttp2 "lib")
+       ("liburcu" ,liburcu)
+       ("lmdb" ,lmdb)
+       ("ncurses" ,ncurses)
+       ("protobuf-c" ,protobuf-c)))
     (home-page "https://www.knot-dns.cz/")
     (synopsis "Authoritative DNS name server")
     (description "Knot DNS is an authoritative name server for the @dfn{Domain
@@ -684,15 +937,16 @@ synthesis, and on-the-fly re-configuration.")
 (define-public knot-resolver
   (package
     (name "knot-resolver")
-    (version "4.3.0")
+    (version "5.2.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://secure.nic.cz/files/knot-resolver/"
                                   "knot-resolver-" version ".tar.xz"))
               (sha256
                (base32
-                "09ffmqx79lv5psr433x4n946njgsn071b9b7161pcb9bmrqz380c"))))
+                "09jqy23q1pgj76y2qd1xfk72wwmypnyawm3span3gx00qi2bfdxa"))))
     (build-system meson-build-system)
+    (outputs '("out" "doc"))
     (arguments
      '(#:configure-flags '("-Ddoc=enabled")
        #:phases
@@ -707,6 +961,20 @@ synthesis, and on-the-fly re-configuration.")
          (add-after 'build 'build-doc
            (lambda _
              (invoke "ninja" "doc")))
+         (add-after 'install 'move-doc
+           (lambda* (#:key outputs #:allow-other-keys)
+             ;; Move the manual and the example configuration files to the
+             ;; "doc" output.
+             (let ((out (assoc-ref outputs "out"))
+                   (doc (assoc-ref outputs "doc")))
+               (mkdir-p (string-append doc "/share/doc/knot-resolver"))
+               (for-each
+                (lambda (dir)
+                  (rename-file (string-append out "/share/" dir)
+                               (string-append doc "/share/" dir)))
+                '("doc/knot-resolver/examples"
+                  "doc/knot-resolver/html"
+                  "info")))))
          (add-after 'install 'wrap-binary
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
@@ -729,20 +997,18 @@ synthesis, and on-the-fly re-configuration.")
        ("pkg-config" ,pkg-config)
        ("python-breathe" ,python-breathe)
        ("python-sphinx" ,python-sphinx)
-       ("python-sphinx-rtd-theme" ,python-sphinx-rtd-theme)))
+       ("python-sphinx-rtd-theme" ,python-sphinx-rtd-theme)
+       ("texinfo" ,texinfo)))
     (inputs
      `(("fstrm" ,fstrm)
        ("gnutls" ,gnutls)
-       ("knot" ,knot)
+       ("knot:lib" ,knot "lib")
        ("libuv" ,libuv)
        ("lmdb" ,lmdb)
        ("luajit" ,luajit)
        ;; TODO: Add optional lua modules: basexx and psl.
        ("lua-bitop" ,lua5.1-bitop)
-       ("lua-cqueues" ,lua5.1-cqueues)
-       ("lua-filesystem" ,lua5.1-filesystem)
-       ("lua-sec" ,lua5.1-sec)
-       ("lua-socket" ,lua5.1-socket)))
+       ("nghttp2" ,nghttp2 "lib")))
     (home-page "https://www.knot-resolver.cz/")
     (synopsis "Caching validating DNS resolver")
     (description
diff --git a/gnu/packages/docbook.scm b/gnu/packages/docbook.scm
index ee09b9d0b4..889bb96010 100644
--- a/gnu/packages/docbook.scm
+++ b/gnu/packages/docbook.scm
@@ -4,6 +4,7 @@
 ;;; Copyright © 2016 Mathieu Lirzin <mthl@gnu.org>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
+;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -41,7 +42,7 @@
     (version "5.0.1")
     (source (origin
               (method url-fetch)
-              (uri (string-append "https://www.docbook.org/xml/" version
+              (uri (string-append "https://docbook.org/xml/" version
                                   "/docbook-" version ".zip"))
               (sha256
                (base32
@@ -83,7 +84,7 @@ by no means limited to these applications.)  This package provides XML DTDs.")
     (version "4.5")
     (source (origin
               (method url-fetch)
-              (uri (string-append "https://www.docbook.org/xml/" version
+              (uri (string-append "https://docbook.org/xml/" version
                                   "/docbook-xml-" version ".zip"))
               (sha256
                (base32
@@ -113,7 +114,7 @@ by no means limited to these applications.)  This package provides XML DTDs.")
     (version "4.4")
     (source (origin
               (method url-fetch)
-              (uri (string-append "https://www.docbook.org/xml/" version
+              (uri (string-append "https://docbook.org/xml/" version
                                   "/docbook-xml-" version ".zip"))
               (sha256
                (base32
@@ -124,7 +125,7 @@ by no means limited to these applications.)  This package provides XML DTDs.")
     (version "4.3")
     (source (origin
               (method url-fetch)
-              (uri (string-append "https://www.docbook.org/xml/" version
+              (uri (string-append "https://docbook.org/xml/" version
                                   "/docbook-xml-" version ".zip"))
               (sha256
                (base32
@@ -135,7 +136,7 @@ by no means limited to these applications.)  This package provides XML DTDs.")
     (version "4.2")
     (source (origin
               (method url-fetch)
-              (uri (string-append "https://www.docbook.org/xml/" version
+              (uri (string-append "https://docbook.org/xml/" version
                                   "/docbook-xml-" version ".zip"))
               (sha256
                (base32
@@ -146,7 +147,7 @@ by no means limited to these applications.)  This package provides XML DTDs.")
     (version "4.1.2")
     (source (origin
               (method url-fetch)
-              (uri (string-append "https://www.docbook.org/xml/" version
+              (uri (string-append "https://docbook.org/xml/" version
                                   "/docbkx412.zip"))
               (sha256
                (base32
@@ -214,6 +215,168 @@ by no means limited to these applications.)  This package provides XML DTDs.")
      "This package provides XSL style sheets for DocBook.")
     (license (x11-style "" "See 'COPYING' file."))))
 
+(define-public docbook-dsssl
+  (package
+    (name "docbook-dsssl")
+    (version "1.79")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://sourceforge/docbook/"
+                                  name "/" version "/"
+                                  name "-" version ".tar.bz2"))
+              (sha256
+               (base32
+                "1g72y2yyc2k89kzs0lvrb9n7hjayw1hdskfpplpz97pf1c99wcig"))))
+    (build-system trivial-build-system)
+    (outputs '("out" "doc"))
+    (arguments
+     `(#:modules ((guix build utils))
+       #:builder
+       (begin
+         (use-modules (guix build utils))
+         (let ((source (assoc-ref %build-inputs "source"))
+               (dtd (string-append (assoc-ref %outputs "out")
+                                   "/sgml/dtd/docbook"))
+               (docbook-dsssl-doc (assoc-ref %build-inputs "docbook-dsssl-doc"))
+               (doc (assoc-ref %outputs "doc"))
+               (tar (assoc-ref %build-inputs "tar"))
+               (bzip2 (assoc-ref %build-inputs "bzip2")))
+           (setenv "PATH" (string-append tar "/bin" ":" bzip2 "/bin"))
+           (mkdir-p dtd)
+           (invoke "tar" "-xf" source "-C" dtd)
+           ;; The doc output contains 1.4 MiB of HTML documentation.
+           (symlink docbook-dsssl-doc doc)))))
+    (inputs
+     `(("docbook-dsssl-doc" ,docbook-dsssl-doc)))
+    (native-inputs
+     `(("bzip2", bzip2)
+       ("tar" ,tar)))
+    (home-page "https://docbook.org/")
+    (synopsis "DSSSL style sheets for DocBook")
+    (description "This package provides DSSSL style sheets for DocBook.")
+    (license (non-copyleft "file://README"))))
+
+;;; Private variable, used as the 'doc' output of the docbook-dsssl package.
+(define docbook-dsssl-doc
+  (package
+    (name "docbook-dsssl-doc")
+    (version "1.79")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://sourceforge/docbook/"
+                                  name "/" version "/"
+                                  name "-" version ".tar.bz2"))
+              (sha256
+               (base32
+                "1plp5ngc96pbna4rwglp9glcadnirbm3hlcjb4gjvq1f8biic9lz"))))
+    (build-system trivial-build-system)
+    (arguments
+     `(#:modules ((guix build utils))
+       #:builder
+       (begin
+         (use-modules (guix build utils))
+         (let ((source (assoc-ref %build-inputs "source"))
+               (docdir (string-append (assoc-ref %outputs "out")
+                                      "/share/doc/" "docbook-dsssl-" ,version))
+               (tar (assoc-ref %build-inputs "tar"))
+               (bzip2 (assoc-ref %build-inputs "bzip2")))
+           (setenv "PATH" (string-append tar "/bin" ":" bzip2 "/bin"))
+           (mkdir-p docdir)
+           ;; Extract the "doc" subdirectory.
+           (invoke "tar" "-xf" source "--strip-components=2"
+                   "--no-same-owner" "-C" docdir
+                   (string-append "docbook-dsssl-" ,version "/doc"))))))
+    (native-inputs
+     `(("bzip2", bzip2)
+       ("tar" ,tar)))
+    (home-page "https://docbook.org/")
+    (synopsis "DocBook DSSSL style sheets documentation")
+    (description "Documentation for the DocBook DSSSL style sheets.")
+    (license (non-copyleft "file://doc/LEGALNOTICE.htm"))))
+
+(define-public docbook-sgml
+  (package
+    (name "docbook-sgml")
+    (version "4.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://www.oasis-open.org/docbook/sgml/"
+                                  version "/docbk41.zip"))
+              (sha256
+               (base32
+                "04b3gp4zkh9c5g9kvnywdkdfkcqx3kjc04j4mpkr4xk7lgqgrany"))))
+    (build-system trivial-build-system)
+    (arguments
+     '(#:modules ((guix build utils))
+       #:builder
+       (begin
+         (use-modules (guix build utils))
+         (let ((source (assoc-ref %build-inputs "source"))
+               (iso-entities-dir (string-append
+                                  (assoc-ref %build-inputs "iso-8879-entities")))
+               (unzip  (string-append (assoc-ref %build-inputs "unzip")
+                                      "/bin/unzip"))
+               (dtd    (string-append (assoc-ref %outputs "out")
+                                      "/sgml/dtd/docbook")))
+           ;; Extract the sources.
+           (mkdir-p dtd)
+           (chdir dtd)
+           (invoke unzip source)
+           ;; Reference the ISO 8879 character entities.
+           ;; e.g. "iso-lat1.gml" --> "<iso-entities-dir>/ISOlat1"
+           (substitute* "docbook.cat"
+             (("(.*ISO 8879.*)\"iso-(.*)\\.gml\"" _ head name)
+              (string-append head "\"" iso-entities-dir "/ISO" name "\"")))))))
+    (native-inputs
+     `(("unzip" ,unzip)))
+    (inputs
+     `(("iso-8879-entities" ,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.")
+    (license (x11-style "" "See file headers."))))
+
+(define-public docbook-sgml-3.1
+  (package
+    (inherit docbook-sgml)
+    (version "3.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://www.oasis-open.org/docbook/sgml/"
+                                  version "/docbk31.zip"))
+              (sha256
+               (base32
+                "0f25ch7bywwhdxb1qa0hl28mgq1blqdap3rxzamm585rf4kis9i0"))))))
+
+;;; Private package referenced by docbook-sgml.
+(define iso-8879-entities
+  (package
+    (name "iso-8879-entities")
+    (version "0.0")                     ;no proper version
+    (source (origin
+              (method url-fetch)
+              (uri "http://www.oasis-open.org/cover/ISOEnts.zip")
+              (sha256
+               (base32
+                "1clrkaqnvc1ja4lj8blr0rdlphngkcda3snm7b9jzvcn76d3br6w"))))
+    (build-system trivial-build-system)
+    (arguments
+     '(#:modules ((guix build utils))
+       #:builder
+       (begin
+         (use-modules (guix build utils))
+         (let ((source (assoc-ref %build-inputs "source"))
+               (unzip  (string-append (assoc-ref %build-inputs "unzip")
+                                      "/bin/unzip"))
+               (out (string-append (assoc-ref %outputs "out"))))
+           (invoke unzip source "-d" out)))))
+    (native-inputs `(("unzip" ,unzip)))
+    (home-page "https://www.oasis-open.org/")
+    (synopsis "ISO 8879 character entities")
+    (description "ISO 8879 character entities that are typically used in
+the in DocBook SGML DTDs.")
+    (license (x11-style "" "See file headers."))))
+
 (define-public dblatex
   (package
     (name "dblatex")
diff --git a/gnu/packages/docker.scm b/gnu/packages/docker.scm
index 4beba12c11..950986045e 100644
--- a/gnu/packages/docker.scm
+++ b/gnu/packages/docker.scm
@@ -2,9 +2,10 @@
 ;;; Copyright © 2016 David Thompson <davet@gnu.org>
 ;;; Copyright © 2018 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
-;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2019, 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
 ;;; Copyright © 2020 Katherine Cox-Buday <cox.katherine.e@gmail.com>
+;;; Copyright © 2020 Jesse Dowell <jessedowell@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -48,11 +49,13 @@
   #:use-module (gnu packages version-control)
   #:use-module (gnu packages virtualization))
 
+;; Note - when changing Docker versions it is important to update the versions
+;; of several associated packages (docker-libnetwork and go-sctp).
 (define %docker-version "19.03.12")
 
-(define-public python-docker-py
+(define-public python-docker
   (package
-    (name "python-docker-py")
+    (name "python-docker")
     (version "3.7.3")
     (source
      (origin
@@ -67,11 +70,11 @@
     (inputs
      `(("python-requests" ,python-requests-2.20)
        ("python-six" ,python-six)
-       ("python-urllib3" ,python-urllib3-1.24)
-       ("python-websocket-client" ,python-websocket-client)))
+       ("python-urllib3" ,python-urllib3-1.24)))
     (propagated-inputs
      `(("python-docker-pycreds" ,python-docker-pycreds)
-       ("python-paramiko" ,python-paramiko))) ; adds SSH support
+       ("python-paramiko" ,python-paramiko)    ;adds SSH support
+       ("python-websocket-client" ,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
@@ -116,7 +119,7 @@ client.")
     (inputs
      `(("python-cached-property"
         ,python-cached-property)
-       ("python-docker-py" ,python-docker-py)
+       ("python-docker" ,python-docker)
        ("python-dockerpty" ,python-dockerpty)
        ("python-docopt" ,python-docopt)
        ("python-jsonschema" ,python-jsonschema)
@@ -190,41 +193,40 @@ Python without keeping their credentials in a Docker configuration file.")
      `(#:import-path "github.com/containerd/containerd"
        #:phases
        (modify-phases %standard-phases
-         (add-before 'build 'chdir
-           (lambda _
-             (chdir "src/github.com/containerd/containerd")
-             #t))
          (add-after 'chdir 'patch-paths
-           (lambda* (#:key inputs outputs #:allow-other-keys)
+           (lambda* (#:key inputs import-path outputs #:allow-other-keys)
              ;; TODO: Patch "socat", "unpigz".
-             (substitute* "./runtime/v1/linux/runtime.go"
-              (("defaultRuntime[ \t]*=.*")
-               (string-append "defaultRuntime = \""
-                              (assoc-ref inputs "runc")
-                              "/sbin/runc\"\n"))
-              (("defaultShim[ \t]*=.*")
-               (string-append "defaultShim = \""
-                              (assoc-ref outputs "out")
-                              "/bin/containerd-shim\"\n")))
-            (substitute* "./vendor/github.com/containerd/go-runc/runc.go"
-              (("DefaultCommand[ \t]*=.*")
-               (string-append "DefaultCommand = \""
-                              (assoc-ref inputs "runc")
-                              "/sbin/runc\"\n")))
-            (substitute* "vendor/github.com/containerd/continuity/testutil/loopback/loopback_linux.go"
-             (("exec\\.Command\\(\"losetup\"") ; )
-              (string-append "exec.Command(\""
-                             (assoc-ref inputs "util-linux")
-                             "/sbin/losetup\""))) ;)
-             #t))
+             (with-directory-excursion (string-append "src/" import-path)
+               (substitute* "./runtime/v1/linux/runtime.go"
+                 (("defaultRuntime[ \t]*=.*")
+                  (string-append "defaultRuntime = \""
+                                 (assoc-ref inputs "runc")
+                                 "/sbin/runc\"\n"))
+                 (("defaultShim[ \t]*=.*")
+                  (string-append "defaultShim = \""
+                                 (assoc-ref outputs "out")
+                                 "/bin/containerd-shim\"\n")))
+               (substitute* "./vendor/github.com/containerd/go-runc/runc.go"
+                 (("DefaultCommand[ \t]*=.*")
+                  (string-append "DefaultCommand = \""
+                                 (assoc-ref inputs "runc")
+                                 "/sbin/runc\"\n")))
+               (substitute* "vendor/github.com/containerd/continuity/testutil/loopback/loopback_linux.go"
+                 (("exec\\.Command\\(\"losetup\"") ; )
+                  (string-append "exec.Command(\""
+                                 (assoc-ref inputs "util-linux")
+                                 "/sbin/losetup\""))) ;)
+               #t)))
          (replace 'build
-           (lambda* (#:key (make-flags '()) #:allow-other-keys)
-             (apply invoke "make" make-flags)))
+           (lambda* (#:key import-path (make-flags '()) #:allow-other-keys)
+             (with-directory-excursion (string-append "src/" import-path)
+               (apply invoke "make" make-flags))))
          (replace 'install
-           (lambda* (#:key outputs (make-flags '()) #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out")))
-               (apply invoke "make" (string-append "DESTDIR=" out) "install"
-                      make-flags)))))))
+           (lambda* (#:key import-path outputs (make-flags '()) #:allow-other-keys)
+             (with-directory-excursion (string-append "src/" import-path)
+               (let* ((out (assoc-ref outputs "out")))
+                 (apply invoke "make" (string-append "DESTDIR=" out) "install"
+                        make-flags))))))))
     (inputs
      `(("btrfs-progs" ,btrfs-progs)
        ("libseccomp" ,libseccomp)
@@ -246,22 +248,25 @@ network attachments.")
 (define docker-libnetwork
   ;; There are no recent release for libnetwork, so choose the last commit of
   ;; the branch that Docker uses, as can be seen in the Docker source file
-  ;; 'hack/dockerfile/install/proxy.installer'.
-  (let ((commit "4725f2163fb214a6312f3beae5991f838ec36326")
-        (version "18.09")
+  ;; 'hack/dockerfile/install/proxy.installer'. NOTE - It is important that
+  ;; this version is kept in sync with the version of Docker being used.
+  ;; This commit is the "bump_19.03" branch, as mentioned in Docker's vendor.conf.
+  (let ((commit "026aabaa659832804b01754aaadd2c0f420c68b6")
+        (version (version-major+minor %docker-version))
         (revision "1"))
     (package
       (name "docker-libnetwork")
-      (version (git-version version "1" commit))
+      (version (git-version version revision commit))
       (source (origin
                 (method git-fetch)
                 (uri (git-reference
-                      (url "https://github.com/docker/libnetwork")
+                      ;; Redirected from github.com/docker/libnetwork.
+                      (url "https://github.com/moby/libnetwork")
                       (commit commit)))
                 (file-name (git-file-name name version))
                 (sha256
                  (base32
-                  "1zpnxki8qfzha6ljahpwd3vkzmjhsvkmf73w6crm4ilxxw5vnpfb"))
+                  "0bli21vn5v7bssw3ydym4jfdjsldhb47fld88kng7d138wl70lkw"))
                 ;; Delete bundled ("vendored") free software source code.
                 (modules '((guix build utils)))
                 (snippet '(begin
@@ -269,8 +274,8 @@ network attachments.")
                             #t))))
       (build-system go-build-system)
       (arguments
-       `(#:import-path "github.com/docker/libnetwork/"))
-      (home-page "https://github.com/docker/libnetwork/")
+       `(#:import-path "github.com/moby/libnetwork/"))
+      (home-page "https://github.com/moby/libnetwork/")
       (synopsis "Networking for containers")
       (description "Libnetwork provides a native Go implementation for
 connecting containers.  The goal of @code{libnetwork} is to deliver a robust
@@ -514,6 +519,7 @@ built-in registry server of Docker.")
              #t))
          (replace 'configure
            (lambda _
+             (setenv "DOCKER_BUILDTAGS" "seccomp")
              (setenv "DOCKER_GITCOMMIT" (string-append "v" ,%docker-version))
              (setenv "VERSION" (string-append ,%docker-version "-ce"))
              ;; Automatically use bundled dependencies.
@@ -651,8 +657,7 @@ provisioning etc.")
                                (string-append etc "/fish/completions"))
                  (install-file "zsh/_docker"
                                (string-append etc "/zsh/site-functions")))
-               (chdir "build")
-               (install-file "docker" out-bin)
+               (install-file "build/docker" out-bin)
                #t))))))
     (native-inputs
      `(("go" ,go)
@@ -666,7 +671,7 @@ provisioning etc.")
 (define-public cqfd
   (package
     (name "cqfd")
-    (version "5.1.0")
+    (version "5.2.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -675,7 +680,7 @@ provisioning etc.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1xhydz01f2rrnw7rmnaxh3f3q1ariq7j2ig0i0w1p3wn10l3q0nv"))))
+                "1zqgznfl7slfrddfpy2pfmablbvyf7296d3b3vcprilqb93cc7li"))))
     (build-system gnu-build-system)
     (arguments
      ;; The test suite requires a docker daemon and connectivity.
diff --git a/gnu/packages/documentation.scm b/gnu/packages/documentation.scm
index 405ebcc1ed..0fca0b11eb 100644
--- a/gnu/packages/documentation.scm
+++ b/gnu/packages/documentation.scm
@@ -54,6 +54,50 @@
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg))
 
+(define-public latex2html
+  (package
+    (name "latex2html")
+    (version "2020.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/latex2html/latex2html")
+         (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1icyl6kl60wh7cavprgbd8q6lpjwr7wn24m34kpiif7ahknhcbcm"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-configure
+           (lambda* (#:key outputs #:allow-other-keys)
+             (substitute* "configure"
+               (("/usr/local")
+                (assoc-ref outputs "out"))
+               (("\\$\\{CONFIG_SHELL-/bin/sh\\}")
+                (which "bash")))
+             #t))
+         (replace 'configure
+           (lambda _
+             (invoke "./configure")
+             #t))
+         (add-after 'configure 'patch-cfgcache
+           (lambda* (#:key outputs #:allow-other-keys)
+             (substitute* "cfgcache.pm"
+               (("/usr/local")
+                (assoc-ref outputs "out")))
+             #t)))))
+    (inputs
+     `(("perl" ,perl)))
+    (synopsis "LaTeX documents to HTML")
+    (description "LaTeX2HTML is a utility that converts LaTeX documents to web
+pages in HTML.")
+    (home-page "https://www.latex2html.org/")
+    (license gpl2+)))
+
 (define-public asciidoc
   (package
     (name "asciidoc")
@@ -229,7 +273,7 @@ and to some extent D.")
     (description
      "DOC++ is a documentation system for C, C++, IDL, and Java.  It can
 generate both TeX output for high-quality hardcopies or HTML output for online
-brwosing.  The documentation is extracted directly from the C/C++/IDL source
+browsing.  The documentation is extracted directly from the C/C++/IDL source
 or Java class files.")
     (license gpl2+)))
 
diff --git a/gnu/packages/dunst.scm b/gnu/packages/dunst.scm
index 5b20d6d013..2741336746 100644
--- a/gnu/packages/dunst.scm
+++ b/gnu/packages/dunst.scm
@@ -36,7 +36,7 @@
 (define-public dunst
   (package
     (name "dunst")
-    (version "1.4.1")
+    (version "1.5.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -45,7 +45,7 @@
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0xjj1f2jr1ja5grj6wrx5jjz1sx5fpqnvkw7nqi4452j3nc4p4l2"))))
+                "0irwkqcgwkqaylcpvqgh25gn2ysbdm2kydipxfzcq1ddj9ns6f9c"))))
     (build-system gnu-build-system)
     (arguments
      '(#:tests? #f                      ; no check target
diff --git a/gnu/packages/easyrpg.scm b/gnu/packages/easyrpg.scm
index 7bd5935b19..591be38448 100644
--- a/gnu/packages/easyrpg.scm
+++ b/gnu/packages/easyrpg.scm
@@ -76,7 +76,7 @@ It can read and write LCF and XML files.")
 (define-public easyrpg-player
   (package
     (name "easyrpg-player")
-    (version "0.6.2.1")
+    (version "0.6.2.3")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -84,7 +84,7 @@ It can read and write LCF and XML files.")
                     "/easyrpg-player-" version ".tar.gz"))
               (sha256
                (base32
-                "1bai0mxjw1qvl2vcwgssycbyn0crk0b5l69ld9rawcs2nczb44s5"))))
+                "1lahbhgyhky0hgd3xwhgg2nm8mfa9p2i1fzxi00561hnk2ya86pm"))))
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags
diff --git a/gnu/packages/ebook.scm b/gnu/packages/ebook.scm
index d290b19f5f..47bbd1a789 100644
--- a/gnu/packages/ebook.scm
+++ b/gnu/packages/ebook.scm
@@ -2,10 +2,12 @@
 ;;; Copyright © 2015, 2016 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2016, 2018 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016, 2017 Alex Griffin <a@ajgrf.com>
-;;; Copyright © 2017, 2019 Brendan Tildesley <mail@brendan.scot>
+;;; Copyright © 2017, 2019, 2020 Brendan Tildesley <mail@brendan.scot>
 ;;; Copyright © 2017 Roel Janssen <roel@gnu.org>
-;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2020, 2021 Vinicius Monego <monego@posteo.net>
+;;; Copyright © 2020 Zheng Junjie <873216071@qq.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -26,27 +28,33 @@
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix download)
+  #:use-module (guix utils)
   #:use-module (guix git-download)
+  #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
-  #:use-module (gnu packages)
+  #:use-module (guix build-system meson)
   #:use-module (guix build-system python)
   #:use-module (gnu packages)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages databases)
+  #:use-module (gnu packages file)
   #:use-module (gnu packages fonts)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages fribidi)
   #:use-module (gnu packages gcc)
+  #:use-module (gnu packages gettext)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages glib)
+  #:use-module (gnu packages gstreamer)
   #:use-module (gnu packages icu4c)
   #:use-module (gnu packages image)
   #:use-module (gnu packages javascript)
   #:use-module (gnu packages libusb)
   #:use-module (gnu packages libreoffice)
+  #:use-module (gnu packages music)
   #:use-module (gnu packages pdf)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
@@ -143,7 +151,7 @@
        ("python2-css-parser" ,python2-css-parser)
        ("python2-dateutil" ,python2-dateutil)
        ("python2-dbus" ,python2-dbus)
-       ("python2-dnspython" ,python2-dnspython)
+       ("python2-dnspython" ,python2-dnspython-1.16)
        ("python2-dukpy" ,python2-dukpy)
        ("python2-feedparser" ,python2-feedparser)
        ("python2-html2text" ,python2-html2text)
@@ -246,7 +254,8 @@
                      "--path-to-mathjax" (string-append
                                           (assoc-ref inputs "js-mathjax")
                                           "/share/javascript/mathjax"))
-             (invoke "python2" "setup.py" "rapydscript")))
+             (invoke "python2" "setup.py" "rapydscript")
+             #t))
          (add-after 'install 'install-man-pages
            (lambda* (#:key outputs #:allow-other-keys)
              (copy-recursively
@@ -263,6 +272,28 @@
                                             "/share/fonts/truetype")))
                (delete-file-recursively font-dest)
                (symlink font-src font-dest))
+             #t))
+         ;; Make run-time dependencies available to the binaries.
+         (add-after 'wrap 'wrap-program
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out"))
+                   (qtwebengine (assoc-ref inputs "qtwebengine")))
+               (with-directory-excursion (string-append out "/bin")
+                 (for-each
+                  (lambda (binary)
+                    (wrap-program binary
+                      ;; Make QtWebEngineProcess available.
+                      `("QTWEBENGINEPROCESS_PATH" =
+                        ,(list (string-append
+                                qtwebengine
+                                "/lib/qt5/libexec/QtWebEngineProcess")))))
+                  ;; Wrap all the binaries shipping with the package, except
+                  ;; for the wrappings created during the 'wrap standard
+                  ;; phase.  This extends existing .calibre-real wrappers
+                  ;; rather than create ..calibre-real-real-s.  For more
+                  ;; information see: https://issues.guix.gnu.org/43249.
+                  (find-files "." (lambda (file stat)
+                                    (not (wrapper? file)))))))
              #t)))))
     (home-page "https://calibre-ebook.com/")
     (synopsis "E-book library management software")
@@ -285,6 +316,32 @@ e-books for convenient reading.")
                    license:silofl1.1
                    license:cc-by-sa3.0))))
 
+(define-public ebook-tools
+  (package
+    (name "ebook-tools")
+    (version "0.2.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://sourceforge/ebook-tools/ebook-tools/"
+                           version "/ebook-tools-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1bi7wsz3p5slb43kj7lgb3r6lb91lvb6ldi556k4y50ix6b5khyb"))))
+    (arguments
+     `(#:tests? #f)) ; No 'test' target
+    (build-system cmake-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("libzip" ,libzip)
+       ("libxml2" ,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 liblinebreak
   (package
     (name "liblinebreak")
@@ -383,6 +440,105 @@ following formats:
 @end enumerate")
     (license license:gpl2+)))
 
+(define-public cozy
+  (package
+    (name "cozy")
+    (version "0.7.8")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/geigi/cozy")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0z2wj9g32aa5g9pw81q49iv1smb6yvlv9zs0vrzbx6mw8cj3c5d2"))))
+    (build-system meson-build-system)
+    (arguments
+     `(#:glib-or-gtk? #t
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-desktop-file
+           (lambda _
+             (substitute* "data/com.github.geigi.cozy.desktop"
+               (("Exec=com.github.geigi.cozy") "Exec=cozy"))
+             #t))
+         (add-after 'install 'patch-executable-name
+           (lambda* (#:key outputs #:allow-other-keys)
+             (with-directory-excursion
+                 (string-append (assoc-ref outputs "out") "/bin")
+               (rename-file "com.github.geigi.cozy" "cozy"))
+             #t))
+         (add-after 'wrap 'wrap-libs
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out               (assoc-ref outputs "out"))
+                    (pylib             (string-append
+                                        out "/lib/python"
+                                        ,(version-major+minor
+                                          (package-version python))
+                                        "/site-packages"))
+                    (gi-typelib-path   (getenv "GI_TYPELIB_PATH"))
+                    (gst-plugin-path   (getenv "GST_PLUGIN_SYSTEM_PATH"))
+                    (libmagic-path     (string-append
+                                        (assoc-ref %build-inputs "file")
+                                        "/lib"))
+                    (python-path     (getenv "PYTHONPATH")))
+               (wrap-program (string-append out "/bin/cozy")
+                 `("LD_LIBRARY_PATH" ":" prefix (,libmagic-path))
+                 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
+                 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
+                 `("PYTHONPATH" ":" prefix (,python-path ,pylib))))
+             #t)))))
+    (native-inputs
+     `(("desktop-file-utils" ,desktop-file-utils)
+       ("gettext" ,gettext-minimal)
+       ("glib:bin" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("gtk+:bin" ,gtk+ "bin")
+       ("pkg-config" ,pkg-config)
+       ("python" ,python-wrapper)))
+    (inputs
+     `(("file" ,file)
+       ("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+)
+       ("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)))
+    (home-page "https://cozy.geigi.de/")
+    (synopsis "Modern audiobook player using GTK+")
+    (description
+     "Cozy is a modern audiobook player written in GTK+.
+
+Some of the current features:
+
+@itemize
+@item Import your audiobooks into Cozy to browse them comfortably
+@item Sort your audio books by author, reader & name
+@item Remembers your playback position
+@item Sleep timer
+@item Playback speed control
+@item Search your library
+@item Offline mode
+@item Add multiple storage locations
+@item Drag & Drop to import new audio books
+@item Support for DRM free mp3, m4a (aac, ALAC, …), flac, ogg, opus, wav files
+@item Mpris integration (Media keys & playback info for desktop environment)
+@end itemize")
+    ;; TODO: Unbundle python-inject.
+    (license (list license:gpl3+ ;cozy
+                   license:asl2.0)))) ;python-inject (bundled dependency)
+
 (define-public xchm
   (package
     (name "xchm")
diff --git a/gnu/packages/education.scm b/gnu/packages/education.scm
index ae8449b82a..13372489f5 100644
--- a/gnu/packages/education.scm
+++ b/gnu/packages/education.scm
@@ -2,12 +2,13 @@
 ;;; Copyright © 2016 Danny Milosavljevic <dannym@scratchpost.org>
 ;;; Copyright © 2016, 2017 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com>
-;;; Copyright © 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018, 2019, 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;; Copyright © 2020 Robert Smith <robertsmith@posteo.net>
 ;;; Copyright © 2020 Guy Fleury Iteriteka <gfleury@disroot.org>
 ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
+;;; Copyright © 2020 Prafulla Giri <pratheblackdiamond@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -139,7 +140,7 @@ of categories with some of the activities available in that category.
 (define-public gcompris-qt
   (package
     (name "gcompris-qt")
-    (version "0.98")
+    (version "1.0")
     (source
      (origin
        (method url-fetch)
@@ -147,22 +148,19 @@ of categories with some of the activities available in that category.
              "https://gcompris.net/download/qt/src/gcompris-qt-"
              version ".tar.xz"))
        (sha256
-        (base32 "1jmjykn0lpk0v6hs2flmch8v4da5bgxl891nav7szxw9l7aqnf4y"))))
+        (base32 "08dw1q0h4qz2q0ksa5pbmb9v60hr1zv9skx6z8dlq9b1i7harnds"))))
     (build-system cmake-build-system)
     (arguments
      `(#:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'disable-failing-test
-           (lambda _
-             (substitute* "tests/core/CMakeLists.txt"
-               (("DownloadManagerTest\\.cpp") "#"))
-             #t))
          (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")
+             ;; The test suite wants to write to /homeless-shelter
+             (setenv "HOME" (getcwd))
              #t))
          (add-after 'install 'wrap-executable
            (lambda* (#:key inputs outputs #:allow-other-keys)
@@ -191,7 +189,7 @@ of categories with some of the activities available in that category.
        ("xorg-server" ,xorg-server-for-tests)))
     (inputs
      `(("openssl" ,openssl)
-       ("python-2" ,python-2)
+       ("python" ,python-wrapper)
        ("qtbase" ,qtbase)
        ("qtdeclarative" ,qtdeclarative)
        ("qtgraphicaleffects" ,qtgraphicaleffects)
@@ -216,7 +214,8 @@ Currently available boards include:
 @item reading practice
 @item small games (memory games, jigsaw puzzles, ...)
 @end enumerate\n")
-    (license license:gpl3+)))
+    (license (list license:silofl1.1    ; bundled fonts
+                   license:gpl3+))))
 
 (define-public tipp10
   (package
@@ -231,8 +230,11 @@ Currently available boards include:
               (sha256
                (base32
                 "0d387b404j88gsv6kv0rb7wxr23v5g5vl6s5l7602x8pxf7slbbx"))
+              ;; Apply patches in the order determined by Debian
               (patches (search-patches "tipp10-fix-compiling.patch"
-                                       "tipp10-remove-license-code.patch"))))
+                                       "tipp10-remove-license-code.patch"
+                                       "tipp10-disable-downloader.patch"
+                                       "tipp10-qt5.patch"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f ; packages has no tests
@@ -257,8 +259,8 @@ Currently available boards include:
                ;; Recreate Makefile
                (invoke "qmake")))))))
     (inputs
-     `(("qt4" ,qt-4)
-       ("sqlite" ,sqlite)))
+     `(("qtbase" ,qtbase)
+       ("qtmultimedia" ,qtmultimedia)))
     (home-page "https://www.tipp10.com/")
     (synopsis "Touch typing tutor")
     (description "Tipp10 is a touch typing tutor.  The ingenious thing about
@@ -274,7 +276,7 @@ easy.")
 (define-public snap
   (package
     (name "snap")
-    (version "6.1.4")
+    (version "6.5.0")
     (source
      (origin
        (method git-fetch)
@@ -283,7 +285,7 @@ easy.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0qvnm5jg2hlf32say531m8nmp3aib93mqnllw1g289s58fzk5li6"))))
+        (base32 "0sqd4ddkfc7f7gx02wffvwbqgfbhpkcgyv7v5rh3gx60jca02p4w"))))
     (build-system trivial-build-system)
     (arguments
      `(#:modules ((guix build utils))
@@ -486,7 +488,7 @@ specialized device.")
                             Comment[ca]=Conjunt de jocs educatius per a xiquets~@
                             Comment[es]=Conjunto de juegos educativos para niños~@
                             Comment[de]=Sammlung mit lehrreichen Spielen für kleine Kinder~@
-                            Exec=~a/bin/childsplay.py~@
+                            Exec=~a/bin/childsplay~@
                             Terminal=false~@
                             Icon=logo_cp.svg~@
                             Type=Application~@
@@ -612,14 +614,14 @@ Portuguese, Spanish and Italian.")
 (define-public fet
   (package
     (name "fet")
-    (version "5.45.1")
+    (version "5.48.1")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://www.lalescu.ro/liviu/fet/download/"
                            "fet-" version ".tar.bz2"))
        (sha256
-        (base32 "1pg47jk6fw46fr7m32l1ypm1zyjfz1ik5f333ynqqr705f1c0ij5"))))
+        (base32 "0k728l6zi0lkhzyipsb0f2jw53s4xicm7arp33ikhrvc4jlwcp4v"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
@@ -651,14 +653,14 @@ hours.")
 (define-public klavaro
   (package
     (name "klavaro")
-    (version "3.10")
+    (version "3.11")
     (source
       (origin
         (method url-fetch)
         (uri (string-append "mirror://sourceforge/klavaro/klavaro-"
                             version ".tar.bz2"))
         (sha256
-         (base32 "0jnzdrndiq6m0bwgid977z5ghp4q61clwdlzfpx4fd2ml5x3iq95"))))
+         (base32 "1rkxaqb62w4mv86fcnmr32lq6y0h4hh92wmsy5ddb9a8jnzx6r7w"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("intltool" ,intltool)
@@ -678,15 +680,14 @@ language and very flexible regarding to new or unknown keyboard layouts.")
 (define-public ktouch
   (package
     (name "ktouch")
-    (version "19.08.3")
+    (version "20.12.1")
     (source
       (origin
         (method url-fetch)
-        (uri (string-append "mirror://kde/stable/applications/"
+        (uri (string-append "mirror://kde/stable/release-service/"
                             version "/src/ktouch-" version ".tar.xz"))
         (sha256
-         (base32
-          "0dqxb3xsjc2rwc9779l5fnr4crhq51bc8ln4azbgnnkzldvq6a4a"))))
+         (base32 "10lm2p8w26c9n6lhvw3301myfss0dq7hl7rawzb3hsy1lqvmvdib"))))
     (build-system qt-build-system)
     (arguments
      `(#:phases
@@ -955,30 +956,30 @@ floating through space.")
 (define-public mdk
   (package
     (name "mdk")
-    (version "1.2.10")
+    (version "1.3.0")
     (source
-    (origin
-      (method url-fetch)
-      (uri (string-append "mirror://gnu/mdk/v1.2.10/mdk-"
-                          version ".tar.gz"))
-      (sha256
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://gnu/mdk/v" version "/mdk-"
+                           version ".tar.gz"))
+       (sha256
         (base32
-          "1rwcq2b5vvv7318j92nxc5dayj27dpfhzc4rjiv4ccvsc0x35x5h"))))
-   (build-system gnu-build-system)
+         "0bhk3c82kyp8167h71vdpbcr852h5blpnwggcswqqwvvykbms7lb"))))
+    (build-system gnu-build-system)
     (arguments
      `(#:configure-flags (list "--enable-gui=yes" "-with-readline=yes")))
     (native-inputs
      `(("flex" ,flex)
-       ("pkg-config" ,pkg-config)
        ("intltool" ,intltool)
-       ("ncurses" ,ncurses)))
-   (inputs
-    `(("readline" ,readline)
-      ("glib" ,glib)
-      ("gtk+" ,gtk+)
-      ("pango" ,pango)
-      ("libglade" ,libglade)))
-   (home-page "https://www.gnu.org/software/mdk/")
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("glib" ,glib)
+       ("gtk+" ,gtk+)
+       ("libglade" ,libglade)
+       ("ncurses" ,ncurses)
+       ("pango" ,pango)
+       ("readline" ,readline)))
+    (home-page "https://www.gnu.org/software/mdk/manual/")
     (synopsis "Virtual development environment for Knuth's MIX")
     (description
      "GNU MDK is the Mix Development Kit, an emulation of the pedagogical
diff --git a/gnu/packages/efi.scm b/gnu/packages/efi.scm
index 12cadd6036..11cfe586ac 100644
--- a/gnu/packages/efi.scm
+++ b/gnu/packages/efi.scm
@@ -1,7 +1,8 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2019 Danny Milosavljevic <dannym@scratchpost.org>
 ;;; Copyright © 2019 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2019–2021 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2021 Vincent Legoll <vincent.legoll@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -61,6 +62,44 @@ environment presented by Intel's EFI.")
     ;; Distribution is allowed only when accepting all those licenses.
     (license (list license:bsd-2 license:bsd-3 license:bsd-4 license:expat))))
 
+(define-public efi-analyzer
+  (let ((commit "77c9e3a67cd7c2fca48a4292dad25a5429872f95")
+        (revision "0"))
+    (package
+      (name "efi-analyzer")
+      (version (git-version "0.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/xypron/efi_analyzer")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1izdkzybqyvzpzqz6kx4j7y47j6aa2dsdrychzgs65466x1a4br1"))))
+      (build-system gnu-build-system)
+      (arguments
+       `(#:make-flags
+         (list (string-append "prefix=" (assoc-ref %outputs "out")))
+         #:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'support-cross-compilation
+             (lambda _
+               (substitute* "Makefile"
+                 (("gcc") ,(cc-for-target)))
+               #t))
+           (delete 'configure))))       ; no configure script
+      (home-page "https://github.com/xypron/efi_analyzer")
+      (synopsis "Analyze EFI binaries")
+      (description
+       "The EFI Analyzer checks EFI binaries and prints out header and section
+information.")
+      (license license:bsd-2))))
+
+(define-public efi_analyzer
+  ;; For a short while the package name contained an underscore.
+  (deprecated-package "efi_analyzer" efi-analyzer))
+
 (define-public sbsigntools
   (package
     (name "sbsigntools")
diff --git a/gnu/packages/electronics.scm b/gnu/packages/electronics.scm
index d21ec61039..7cf6509b7d 100644
--- a/gnu/packages/electronics.scm
+++ b/gnu/packages/electronics.scm
@@ -2,6 +2,7 @@
 ;;; Copyright © 2017 Theodoros Foradis <theodoros@foradis.org>
 ;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2019 Clément Lassieur <clement@lassieur.org>
+;;; Copyright © 2021 Efraim Flashner <efraim@flashner.co.il>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -32,6 +33,7 @@
   #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages documentation)
+  #:use-module (gnu packages embedded)
   #:use-module (gnu packages gawk)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages graphviz)
@@ -39,8 +41,7 @@
   #:use-module (gnu packages libusb)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
-  #:use-module (gnu packages qt)
-  #:use-module (gnu packages sdcc))
+  #:use-module (gnu packages qt))
 
 (define-public libserialport
   (package
@@ -88,7 +89,7 @@ to take care of the OS-specific details when writing software that uses serial p
                                               "/share/doc/libsigrokdecode"))
              #t)))))
     (native-inputs
-     `(("check" ,check)
+     `(("check" ,check-0.14)
        ("doxygen" ,doxygen)
        ("graphviz" ,graphviz)
        ("pkg-config" ,pkg-config)))
@@ -239,15 +240,16 @@ format support.")
 (define-public pulseview
   (package
     (name "pulseview")
-    (version "0.4.1")
+    (version "0.4.2")
     (source (origin
               (method url-fetch)
               (uri (string-append
-                    "http://sigrok.org/download/source/pulseview/pulseview-"
+                    "https://sigrok.org/download/source/pulseview/pulseview-"
                     version ".tar.gz"))
               (sha256
                (base32
-                "0bvgmkgz37n2bi9niskpl05hf7rsj1lj972fbrgnlz25s4ywxrwy"))))
+                "1jxbpz1h3m1mgrxw74rnihj8vawgqdpf6c33cqqbyd8v7rxgfhph"))
+              (patches (search-patches "pulseview-qt515-compat.patch"))))
     (build-system cmake-build-system)
     (arguments
      `(#:configure-flags '("-DENABLE_TESTS=y")
@@ -262,7 +264,8 @@ format support.")
                  (rmdir "doc"))
                #t))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     `(("pkg-config" ,pkg-config)
+       ("qttools" ,qttools)))
     (inputs
      `(("boost" ,boost)
        ("glib" ,glib)
diff --git a/gnu/packages/elf.scm b/gnu/packages/elf.scm
index 3aabc6e927..544598684e 100644
--- a/gnu/packages/elf.scm
+++ b/gnu/packages/elf.scm
@@ -7,6 +7,7 @@
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2020 Mark Wielaard <mark@klomp.org>
+;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -112,14 +113,14 @@ object or archive file), @command{eu-strip} (for discarding symbols),
   (package
     (name "libabigail")
     (home-page "https://sourceware.org/libabigail/")
-    (version "1.7")
+    (version "1.8")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://sourceware.org/pub/libabigail/"
                                   "libabigail-" version ".tar.gz"))
               (sha256
                (base32
-                "0bf8w01l6wm7mm4clfg5rqi30m1ws11qqa4bp2vxghfwgi9ai8i7"))))
+                "0p363mkgypcklgf8iylxpbdnfgqc086a6fv7n9hzrjjci45jdgqw"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags '("--disable-static"
@@ -214,7 +215,7 @@ static analysis of the ELF binaries at hand.")
 (define-public patchelf
   (package
     (name "patchelf")
-    (version "0.10")
+    (version "0.11")
     (source (origin
              (method url-fetch)
              (uri (string-append
@@ -223,7 +224,7 @@ static analysis of the ELF binaries at hand.")
                    "/patchelf-" version ".tar.bz2"))
              (sha256
               (base32
-               "1wzwvnlyf853hw9zgqq5522bvf8gqadk8icgqa41a5n7593csw7n"))))
+               "16ms3ijcihb88j3x6cl8cbvhia72afmfcphczb9cfwr0gbc22chx"))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases
diff --git a/gnu/packages/elixir.scm b/gnu/packages/elixir.scm
index 1b881862a9..389b2bb29c 100644
--- a/gnu/packages/elixir.scm
+++ b/gnu/packages/elixir.scm
@@ -5,6 +5,7 @@
 ;;; Copyright © 2017 nee <nee.git@cock.li>
 ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Nikita <nikita@n0.is>
+;;; Copyright © 2021 Oskar Köök <oskar@maatriks.ee>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -27,12 +28,13 @@
   #:use-module (guix git-download)
   #:use-module (guix packages)
   #:use-module (gnu packages)
-  #:use-module (gnu packages erlang))
+  #:use-module (gnu packages erlang)
+  #:use-module (gnu packages version-control))
 
 (define-public elixir
   (package
     (name "elixir")
-    (version "1.10.4")
+    (version "1.11.3")
     (source
      (origin
        (method git-fetch)
@@ -41,7 +43,7 @@
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "16j4rmm3ix088fvxhvyjqf1hnfg7wiwa87gml3b2mrwirdycbinv"))
+        (base32 "0ivah4117z75pinvb3gr22d05ihfwcdgw5zvvpv7kbgiqaj8ma8f"))
        (patches (search-patches "elixir-path-length.patch"))))
     (build-system gnu-build-system)
     (arguments
@@ -99,7 +101,8 @@
              #t))
          (delete 'configure))))
     (inputs
-     `(("erlang" ,erlang)))
+     `(("erlang" ,erlang)
+       ("git" ,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/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index a223d22a34..9e276d9d26 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -14,7 +14,7 @@
 ;;; Copyright © 2016, 2017 Roel Janssen <roel@gnu.org>
 ;;; Copyright © 2016, 2017 Nikita <nikita@n0.is>
 ;;; Copyright © 2016, 2019 Alex Griffin <a@ajgrf.com>
-;;; Copyright © 2016, 2017, 2018, 2019, 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;; Copyright © 2016, 2017, 2018 Alex Vong <alexvong1995@gmail.com>
 ;;; Copyright © 2016, 2017, 2018, 2019, 2020 Arun Isaac <arunisaac@systemreboot.net>
 ;;; Copyright © 2017 Christopher Baines <mail@cbaines.net>
@@ -25,23 +25,23 @@
 ;;; Copyright © 2017 Kei Kebreau <kkebreau@posteo.net>
 ;;; Copyright © 2017 George Clemmer <myglc2@gmail.com>
 ;;; Copyright © 2017, 2018 Feng Shu <tumashu@163.com>
-;;; Copyright © 2017 Jan Nieuwenhuizen <janneke@gnu.org>
+;;; Copyright © 2017, 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
 ;;; Copyright © 2017, 2018, 2019, 2020 Oleg Pykhalov <go.wigust@gmail.com>
 ;;; Copyright © 2017 Mekeor Melire <mekeor.melire@gmail.com>
 ;;; Copyright © 2017 Peter Mikkelsen <petermikkelsen10@gmail.com>
 ;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2017 Mike Gerwitz <mtg@gnu.org>
-;;; Copyright © 2017, 2018, 2019, 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2017, 2018, 2019, 2020, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2018 Sohom Bhattacharjee <soham.bhattacharjee15@gmail.com>
 ;;; Copyright © 2018, 2019 Mathieu Lirzin <mthl@gnu.org>
-;;; Copyright © 2018, 2019, 2020 Pierre Neidhardt <mail@ambrevar.xyz>
-;;; Copyright © 2018, 2019 Tim Gesthuizen <tim.gesthuizen@yahoo.de>
+;;; Copyright © 2018, 2019, 2020, 2021 Pierre Neidhardt <mail@ambrevar.xyz>
+;;; Copyright © 2018, 2019, 2020 Tim Gesthuizen <tim.gesthuizen@yahoo.de>
 ;;; Copyright © 2018, 2019 Jack Hill <jackhill@jackhill.us>
 ;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
 ;;; Copyright © 2018 Alex Branham <alex.branham@gmail.com>
 ;;; Copyright © 2018 Thorsten Wilms <t_w_@freenet.de>
 ;;; Copyright © 2018, 2019, 2020 Pierre Langlois <pierre.langlois@gmx.com>
-;;; Copyright © 2018, 2019, 2020 Brett Gilio <brettg@gnu.org>
+;;; Copyright © 2018, 2019, 2020, 2021 Brett Gilio <brettg@gnu.org>
 ;;; Copyright © 2019, 2020 Dimakakos Dimos <bendersteed@teknik.io>
 ;;; Copyright © 2019, 2020 Brian Leung <bkleung89@gmail.com>
 ;;; Copyright © 2019 mikadoZero <mikadozero@yandex.com>
@@ -62,7 +62,7 @@
 ;;; Copyright © 2020 Evan Straw <evan.straw99@gmail.com>
 ;;; Copyright © 2020 Masaya Tojo <masaya@tojo.tokyo>
 ;;; Copyright © 2020 Martin Becze <mjbecze@riseup.net>
-;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
+;;; Copyright © 2020, 2021 Michael Rohleder <mike@rohleder.de>
 ;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
 ;;; Copyright © 2020 6033fe7de85d <6033fe7de85d@airmail.cc>
 ;;; Copyright © 2020 John Soo <jsoo1@asu.edu>
@@ -70,7 +70,7 @@
 ;;; Copyright © 2020 Alberto Eleuterio Flores Guerrero <barbanegra+guix@posteo.mx>
 ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2020 pinoaffe <pinoaffe@airmail.cc>
-;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
+;;; Copyright © 2020, 2021 Vinicius Monego <monego@posteo.net>
 ;;; Copyright © 2020 Ryan Desfosses <rdes@protonmail.com>
 ;;; Copyright © 2020 Marcin Karpezo <sirmacik@wioo.waw.pl>
 ;;; Copyright © 2020 Fredrik Salomonsson <plattfot@gmail.com>
@@ -78,6 +78,18 @@
 ;;; Copyright © 2020 Eric Bavier <bavier@posteo.net>
 ;;; Copyright © 2020 Morgan Smith <Morgan.J.Smith@outlook.com>
 ;;; Copyright © 2020 Peng Mei Yu <i@pengmeiyu.com>
+;;; Copyright © 2020 Niklas Eklund <niklas.eklund@posteo.net>
+;;; Copyright © 2020 Marco Grassi <marco.au.grassi98@protonmail.com>
+;;; Copyright © 2020 Tomás Ortín Fernández <tomasortin@mailbox.org>
+;;; Copyright © 2020 Zhu Zihao <all_but_last@163.com>
+;;; Copyright © 2020 Adam Kandur <rndd@tuta.io>
+;;; Copyright © 2020 Tim Howes <timhowes@lavabit.com>
+;;; Copyright © 2020 Noah Landis <noahlandis@posteo.net>
+;;; Copyright © 2020 Nicolò Balzarotti <nicolo@nixo.xyz>
+;;; Copyright © 2020 André A. Gomes <andremegafone@gmail.com>
+;;; Copyright © 2020 Jonathan Rostran <rostranjj@gmail.com>
+;;; Copyright © 2020, 2021 Noah Evans <noah@nevans.me>
+;;; Copyright © 2020 Brit Butler <brit@kingcons.io>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -118,6 +130,8 @@
   #:use-module (gnu packages curl)
   #:use-module (gnu packages databases)
   #:use-module (gnu packages dictionaries)
+  #:use-module (gnu packages djvu)
+  #:use-module (gnu packages ebook)
   #:use-module (gnu packages emacs)
   #:use-module (gnu packages guile)
   #:use-module (gnu packages gtk)
@@ -140,6 +154,7 @@
   #:use-module (gnu packages image)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages libevent)
+  #:use-module (gnu packages lisp-xyz)
   #:use-module (gnu packages lua)
   #:use-module (gnu packages music)
   #:use-module (gnu packages version-control)
@@ -175,6 +190,7 @@
   #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages shells)
   #:use-module (gnu packages sqlite)
+  #:use-module (gnu packages ghostscript)
   #:use-module (gnu packages gnupg)
   #:use-module (gnu packages video)
   #:use-module (gnu packages haskell-xyz)
@@ -193,16 +209,16 @@
 (define-public emacs-geiser
   (package
     (name "emacs-geiser")
-    (version "0.11.2")
-    (source (origin
-             (method git-fetch)
-             (uri (git-reference
-                   (url "https://gitlab.com/jaor/geiser/")
-                   (commit version)))
-             (file-name (git-file-name name version))
-             (sha256
-              (base32
-               "1khi1bghsjx6cs5acizmlbw9z19s4qycnji9krdbn42cbpv0rysv"))))
+    (version "0.12")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://gitlab.com/jaor/geiser/")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0n718xpys7v94zaf9lpmsx97qgn6qxif1acr718wyvpmfr4hiv08"))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases
@@ -214,7 +230,8 @@
                                      "/share/emacs/site-lisp/"
                                      "geiser-autoloads.el"))
              #t)))))
-    (inputs `(("guile" ,guile-2.2)))
+    (inputs
+     `(("guile" ,guile-2.2)))
     (native-inputs
      `(("emacs" ,emacs-minimal)
        ("autoconf" ,autoconf)
@@ -260,14 +277,14 @@ using geiser.")
 (define-public emacs-hyperbole
   (package
     (name "emacs-hyperbole")
-    (version "7.1.2")
+    (version "7.1.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://elpa.gnu.org/packages/"
                            "hyperbole-" version ".tar"))
        (sha256
-        (base32 "1bspmqnbniwr9385wh823dsr5fgch5qnlkf45s4vi0nvg8jdccp1"))
+        (base32 "0bizibn4qgxqp89fyik6p47s9hss1g932mg8k7pznn3kkhj5c8rh"))
        (patches
         (search-patches "emacs-hyperbole-toggle-messaging.patch"))))
     (build-system emacs-build-system)
@@ -296,38 +313,12 @@ using geiser.")
     (home-page "https://www.gnu.org/software/hyperbole/")
     (synopsis "The Everyday Hypertextual Information Manager")
     (description
-     "GNU Hyperbole, or just Hyperbole, is an easy-to-use, yet powerful and
-programmable hypertextual information management system implemented as a GNU
-Emacs package.  It offers rapid views and interlinking of all kinds of textual
-information, utilizing Emacs for editing.  It can dramatically increase your
-productivity and greatly reduce the number of keyboard/mouse keys you'll need
-to work efficiently.  Hyperbole lets you:
-
-@itemize
-@item Quickly create hyperlink buttons either from the keyboard or by dragging
-between a source and destination window with a mouse button depressed.  Later,
-activate buttons by pressing/clicking on them or by giving the name of the
-button.
-@item Activate many kinds of \"implicit buttons\" recognized by context within
-text buffers, e.g. URLs, grep output lines, and git commits.  A single key or
-mouse button automatically does the right thing in dozens of contexts; just
-press and go.
-@item Build outlines with multi-level numbered outline nodes, e.g. 1.4.8.6,
-that all renumber automatically as any node or tree is moved in the outline.
-Each node also has a permanent hyperlink anchor that you can reference from
-any other node.
-@item Manage all your contacts quickly with hierarchical categories and embed
-hyperlinks within each entry.  Or create an archive of documents with
-hierarchical entries and use the same search mechanism to quickly find any
-matching entry.
-@item Use single keys to easily manage your Emacs windows or frames and
-quickly retrieve saved window and frame configurations.
-@item Search for things in your current buffers, in a directory tree or across
-major web search engines with the touch of a few keys.
-@end itemize
-
-The common thread in all these features is making retrieval, management and
-display of information fast and easy.  That is Hyperbole's purpose.")
+     "GNU Hyperbole, or just Hyperbole, is a programmable hypertextual
+information management system.  It offers rapid views and interlinking of all
+kinds of textual information, utilizing Emacs for editing.  In particular,
+Hyperbole lets you quickly create and activate hyperlink buttons, build
+outlines, manage all your contacts, your windows and frames, and search across
+buffers, directory trees, or the web.")
     (license license:gpl3+)))
 
 (define-public emacs-paredit
@@ -355,6 +346,26 @@ for those who may want transient periods of unbalanced parentheses, such as
 when typing parentheses directly or commenting out code line by line.")
     (license license:gpl3+)))
 
+(define-public emacs-project
+  (package
+    (name "emacs-project")
+    (version "0.5.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://elpa.gnu.org/packages/"
+                           "project-" version ".el"))
+       (sha256
+        (base32 "0cpf69m41h8gfcqnq72h11925zdk35b7hw7bfy83xm83xwp12rxx"))))
+    (build-system emacs-build-system)
+    (propagated-inputs `(("emacs-xref" ,emacs-xref)))
+    (home-page "http://elpa.gnu.org/packages/project.html")
+    (synopsis "Operations on the current project")
+    (description
+     "This library contains generic infrastructure for dealing with projects,
+some utility functions, and commands using that infrastructure.")
+    (license license:gpl3+)))
+
 (define-public git-modes
   (package
     (name "emacs-git-modes")
@@ -379,7 +390,7 @@ configuration files, such as .gitattributes, .gitignore, and .git/config.")
 (define-public emacs-with-editor
   (package
     (name "emacs-with-editor")
-    (version "2.9.2")
+    (version "3.0.2")
     (source
      (origin
        (method git-fetch)
@@ -388,10 +399,19 @@ configuration files, such as .gitattributes, .gitignore, and .git/config.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1m8bm8q5zakfjdkd0662gbkvzmcrlkxy1856xns2nfiflrkpw88b"))))
+        (base32 "0hw6i5r3adkm4988badi94825lywkrh3sddiff4z04kj1nj15d0k"))))
     (build-system emacs-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-before 'install 'make-info
+           (lambda _
+             (invoke "makeinfo" "--no-split"
+                     "-o" "with-editor.info" "with-editor.texi"))))))
+    (native-inputs
+     `(("texinfo" ,texinfo)))
     (propagated-inputs
-     `(("emacs-dash" ,emacs-dash)))
+     `(("emacs-async" ,emacs-async)))
     (home-page "https://github.com/magit/with-editor")
     (synopsis "Emacs library for using Emacsclient as EDITOR")
     (description
@@ -652,16 +672,16 @@ process, passing on the arguments as command line arguments.")
 (define-public emacs-minions
   (package
     (name "emacs-minions")
-    (version "0.3.2")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://github.com/tarsius/minions")
-                    (commit (string-append "v" version))))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "16rplpbfy3dnvqqgavk9jb1f1ihr5875zlixd4zxb1pqxs3jkgw3"))))
+    (version "0.3.4")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/tarsius/minions")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1rvsfg9aabvyzzxd38kvjwkm9675zcmrfhzj5x6wj0ba3n0k34q5"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-dash" ,emacs-dash)))
@@ -681,6 +701,30 @@ Alternatively the menu can be bound globally, for example:
 @code{(global-set-key [S-down-mouse-3] 'minions-minor-modes-menu)}.")
     (license license:gpl3+)))
 
+(define-public emacs-moody
+  (package
+    (name "emacs-moody")
+    (version "0.5.4")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/tarsius/moody")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0n8p864yj5m3n7f9qiq9hy24dwfvv0a0wchx2818rppff6vfq3hf"))))
+    (build-system emacs-build-system)
+    (home-page "https://github.com/tarsius/moody")
+    (synopsis "Tabs and ribbons for Emacs mode-line")
+    (description
+     "@code{emacs-moody} provides utilities for displaying elements of
+the mode line as tabs and ribbons.  It also provides replacements for a few
+built-in elements.  The biggest difference to similar packages is that
+this one is much simpler and much more consistent.  When using this package,
+then only the color of the mode line changes when a window becomes in-/active.")
+    (license license:gpl3+)))
+
 (define-public emacs-treepy
   (package
     (name "emacs-treepy")
@@ -703,6 +747,30 @@ Alternatively the menu can be bound globally, for example:
 clojure.walk and clojure.zip respectively.")
     (license license:gpl3+)))
 
+(define-public emacs-typing
+  (let ((commit "a2ef25dde2d8eb91bd9c0c6164cb5208208647fa")
+        (revision "0"))
+    (package
+      (name "emacs-typing")
+      (version (git-version "1.1.4" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/kensanata/typing")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "1dbh0srbf54lgd60ia79y9cfnq3kxlgw01qzdjs9mk3nfazzpgnv"))))
+      (build-system emacs-build-system)
+      (home-page "https://github.com/kensanata/typing/")
+      (synopsis "Emacs game where you have to type fast")
+      (description "The Typing of Emacs is a game for Emacs that
+forces you to type words correctly as fast as possible, otherwise
+you will die.  The game builds the list of words from the active buffer.")
+      (license license:gpl2+))))
+
 (define-public emacs-graphql
   (package
     (name "emacs-graphql")
@@ -733,10 +801,38 @@ GraphQL is a data query language and runtime designed and used to request and
 deliver data to mobile and web apps.")
     (license license:gpl3+)))
 
+(define-public emacs-graphql-mode
+  ;; No tagged commit.  No "Version" keyword either.
+  (let ((commit "9bed568ec86242dbe30bdbab324aa0eb2cd9bf08")
+        (revision "1"))
+    (package
+      (name "emacs-graphql-mode")
+      (version (git-version "0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/davazp/graphql-mode")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0x9y7qq6y0zg8ncamzvk68ccmdyzh7xsj0xs0ykyl20d5wdpplj4"))))
+      (build-system emacs-build-system)
+      (home-page "https://github.com/davazp/graphql-mode")
+      (synopsis "Emacs mode to edit GraphQL schema and queries")
+      (description
+       "This package implements a major mode to edit GraphQL schemas and
+query.  The basic functionality includes syntax highlight and indentation.
+Additionally, it is able to send GraphQL queries to an end-point URL.
+
+Files with the @file{.graphql} and @file{.gql} extensions are
+automatically opened with this mode.")
+      (license license:gpl3+))))
+
 (define-public emacs-ghub
   (package
     (name "emacs-ghub")
-    (version "3.3.0")
+    (version "3.4.1")
     (source
      (origin
        (method git-fetch)
@@ -745,7 +841,7 @@ deliver data to mobile and web apps.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1229g0d9f4ywwjndx32x4z5jdr0kzyi44hjxmy0sifwfmg9nn251"))))
+        (base32 "07iy4203ppvzkh67sb0v968hnypnvy4dpfy0qpqrp8zmc455dxq5"))))
     (build-system emacs-build-system)
     (arguments
      `(#:phases
@@ -865,6 +961,33 @@ using the Buffers User Interface library.  You can view, copy, and edit secrets
 from within Emacs.")
     (license license:gpl3+)))
 
+(define-public emacs-solidity
+  ;; This commit fixes a spacing issue and adds new keywords.
+  (let ((commit "d166a86b83907e0cfd64c191e9dfce4b44a9843e")
+        (revision "0"))
+    (package
+      (name "emacs-solidity")
+      (version (git-version "0.1.10" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/ethereum/emacs-solidity")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "19hgvsrqch2vp49ag6m76bi5qxd20v95z0ib838rib9as15b17wq"))))
+      (build-system emacs-build-system)
+      (propagated-inputs
+       `(("emacs-company" ,emacs-company)
+         ("emacs-flycheck" ,emacs-flycheck)))
+      (home-page "https://github.com/ethereum/emacs-solidity")
+      (synopsis "Major mode for writing Solidity code")
+      (description
+       "This is a simple language mode for the Solidity language.  It is
+a constant work in progress as the language itself also progresses.")
+      (license license:gpl3+))))
+
 (define-public emacs-unpackaged-el
   (let ((commit "746801a677ada6cd6fa076e423aa0953779f3fad")
         (revision "3"))
@@ -906,16 +1029,16 @@ replacement.")
 (define-public emacs-haskell-mode
   (package
     (name "emacs-haskell-mode")
-    (version "17.1")
+    (version "17.2")
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
              (url "https://github.com/haskell/haskell-mode")
-             (commit (string-append "v" version))))
+             (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0izcasi2v02zh08c863h43m8mmsldzy8pck43cllrfn0zf24v2qn"))))
+        (base32 "0zxbacqzr84krmhqpvzndnvlcjh1gs1x20ys0dykgd7chyhci5j5"))))
     (propagated-inputs
      `(("emacs-dash" ,emacs-dash)))
     (native-inputs
@@ -959,8 +1082,13 @@ replacement.")
            ;; 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-customize-tests.el"
+                         '("haskell-indent-tests.el"
+                           "haskell-customize-tests.el"
                            "inferior-haskell-tests.el")))
              #t))
          (replace 'install
@@ -1167,13 +1295,13 @@ in certain cases.  It also enables recursion for anonymous functions.")
 (define-public emacs-xr
   (package
     (name "emacs-xr")
-    (version "1.19")
+    (version "1.20")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://elpa.gnu.org/packages/xr-" version ".tar"))
        (sha256
-        (base32 "1aa3iqh0r635jw8k89zh8y4am9d4hfrqpk9mrdh2b51invjn8llq"))))
+        (base32 "0i3vfsp110z60gabn9x9rv21fvm7nnr234mvmpp7gx4l4hpadvzy"))))
     (build-system emacs-build-system)
     (home-page "https://elpa.gnu.org/packages/xr.html")
     (synopsis "Convert string regexp to rx notation")
@@ -1221,6 +1349,28 @@ skip set strings, which are arguments to @code{skip-chars-forward} and
 and reused.")
       (license license:gpl3+))))
 
+(define-public emacs-airline-themes
+  (package
+    (name "emacs-airline-themes")
+    (version "1.8")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/AnthonyDiGirolamo/airline-themes")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1jx17g8a6pxkw4zlx3fwhqgxfzcf3019k8fklykamfrkharzsc2l"))))
+    (build-system emacs-build-system)
+    (propagated-inputs
+     `(("emacs-powerline" ,emacs-powerline)))
+    (home-page "https://github.com/AnthonyDiGirolamo/airline-themes")
+    (synopsis "Vim-airline themes for Emacs Powerline")
+    (description
+     "This is a port of the themes in Vim-airline to Emacs Powerline.")
+    (license license:expat)))
+
 (define-public emacs-ample-theme
   (let ((commit "536966adf882446165a1f756830028faa792c7a9")
         (revision "1"))
@@ -1248,7 +1398,7 @@ terminals.")
 (define-public emacs-reformatter
   (package
     (name "emacs-reformatter")
-    (version "0.4")
+    (version "0.6")
     (source
      (origin
        (method git-fetch)
@@ -1257,8 +1407,7 @@ terminals.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32
-         "0hhy6x1bkwlhdlarsgm06g3am4yh02yqv8qs34szpzgy53x84qah"))))
+        (base32 "1dfn7c3gpavpiwd73v2pasd8wd8b62dczhg9iv1cgh8vaqlsf92x"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/purcell/reformatter.el")
     (synopsis "Define commands which run reformatters on the current buffer")
@@ -1271,14 +1420,14 @@ optional minor mode which can apply this command automatically on save.")
 (define-public emacs-relint
   (package
     (name "emacs-relint")
-    (version "1.18")
+    (version "1.19")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://elpa.gnu.org/packages/"
                            "relint-" version ".tar"))
        (sha256
-        (base32 "0zfislsksrkn6qs0w26yaff5xr7xqy2x235dcdpz8s2v35b6dhci"))))
+        (base32 "14z3i01pq5ljhjf5yfcjw7hxljcrwjnizkrdc1qyh9b6h3ic1bbi"))))
     (build-system emacs-build-system)
     (propagated-inputs `(("emacs-xr" ,emacs-xr)))
     (home-page "https://github.com/mattiase/relint")
@@ -1307,8 +1456,6 @@ regexp-like arguments to @code{skip-chars-forward} and
           (base32
            "134fj493sdn93pyyac8rpz1fzahzmayvphsrmqp3wvgysmfqm38l"))))
       (build-system emacs-build-system)
-      (propagated-inputs
-       `(("emacs-seq" ,emacs-seq)))
       (home-page "https://github.com/Malabarba/elisp-bug-hunter")
       (synopsis "Hunt down errors by bisecting elisp files")
       (description
@@ -1487,14 +1634,14 @@ incrementally confined in Isearch manner.")
 (define emacs-emms-print-metadata
   (package
     (name "emacs-emms-print-metadata")
-    (version "5.42")
+    (version "6.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://elpa.gnu.org/packages/"
                            "emms-" version ".tar"))
        (sha256
-        (base32 "1khx1fvllrs6w9kxk12mp1hj309c90mc7lkq1vvlqlr7vd6zmnpj"))))
+        (base32 "12cfq503li0gcqmm5bmqz8yjvfdif5xvz0l9vx3g5jl6ljygwgmf"))))
     (build-system gnu-build-system)
     (arguments
      `(#:make-flags '("emms-print-metadata")
@@ -1532,7 +1679,7 @@ light user interface.")
        (modify-phases %standard-phases
          (add-after 'unpack 'set-external-programs
            ;; Specify the absolute file names of the various programs
-           ;; so that everything works out-of-the-box.
+           ;; 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"))
@@ -1542,6 +1689,7 @@ light user interface.")
                    (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")))
                (emacs-substitute-variables "emms-player-mpg321-remote.el"
                  ("emms-player-mpg321-remote-command"
@@ -1574,7 +1722,12 @@ light user interface.")
                   (string-append "\"" alsa "/bin/amixer\"")))
                (substitute* "emms-tag-editor.el"
                  (("\"mid3v2\"")
-                  (string-append "\"" mutagen "/bin/mid3v2\"")))
+                  (string-append "\"" mutagen "/bin/mid3v2\""))
+                 (("\"vorbiscomment\"")
+                  (string-append "\"" vorbis "/bin/vorbiscomment\"")))
+               (substitute* "emms-info-exiftool.el"
+                 (("\"exiftool\"")
+                  (string-append "\"" exiftool "/bin/exiftool\"")))
                #t))))))
     (inputs
      `(("emms-print-metadata" ,emacs-emms-print-metadata)
@@ -1584,6 +1737,7 @@ light user interface.")
        ("mpg321" ,mpg321)
        ("mp3info" ,mp3info)
        ("mutagen" ,python-mutagen)
+       ("perl-image-exiftool" ,perl-image-exiftool)
        ("opus-tools" ,opus-tools)))))
 
 (define-public emacs-emms-mode-line-cycle
@@ -1692,20 +1846,49 @@ like.  It can be linked with various Emacs mail clients (Message and Mail
 mode, Rmail, Gnus, MH-E, and VM).  BBDB is fully customizable.")
     (license license:gpl3+)))
 
+(define-public emacs-counsel-bbdb
+  (package
+  (name "emacs-counsel-bbdb")
+  (version "20181128.1320")
+  (source
+    (origin
+      (method url-fetch)
+      (uri (string-append "https://melpa.org/packages/counsel-bbdb-"
+                          version ".el"))
+      (sha256
+        (base32
+          "03g3lk8hz9a17vf5r16x054bhyk8xsbnfq0div8ig13fmhqi159q"))))
+  (build-system emacs-build-system)
+  (propagated-inputs `(("emacs-ivy" ,emacs-ivy)))
+  (home-page "https://github.com/redguard/counsel-bbdb")
+  (synopsis "Ivy interface for BBDB")
+  (description "This Ivy extension enables the use of @code{ivy-mode} to input
+email addresses from BBDB efficiently.  The main functions are:
+@table @code
+@item counsel-bbdb-complete-mail to input email addresses;
+@item counsel-bbdb-reload' to reload contacts from BBDB database;
+@item counsel-bbdb-expand-mail-alias to expand mail alias.
+@end table
+Since @code{counsel-bbdb} is based on @code{ivy-mode}, all Ivy key bindings
+are supported.  For example, after @samp{C-u M-x counsel-bbdb-complete-mail},
+you can press @samp{C-M-n} to input multiple email addresses.")
+  (license license:gpl3+)))
+
 (define-public emacs-bluetooth
   (package
     (name "emacs-bluetooth")
-    (version "0.1.2")
+    (version "0.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://elpa.gnu.org/packages/"
                            "bluetooth-" version ".el"))
        (sha256
-        (base32 "1vp2vpyq0ybjni35ics1mg1kiwgvc7x12dlmvygy78sqp52sfkcv"))))
+        (base32 "1dq04p6ms0zx4awlypp4crkz7dzal4xg8ac7p8fqacz196rczssp"))))
     (build-system emacs-build-system)
     (inputs
-     `(("bluez" ,bluez)))
+     `(("bluez" ,bluez)
+       ("dbus" ,dbus)))
     (propagated-inputs
      `(("emacs-dash" ,emacs-dash)))
     (home-page "https://gitlab.com/rstocker/emacs-bluetooth")
@@ -1737,10 +1920,36 @@ always indented.  It reindents after every change, making it more reliable
 than @code{electric-indent-mode}.")
     (license license:gpl2+)))
 
+(define-public emacs-gcmh
+  ;; No tagged release upstream, but the commit below correspond to the 0.2.1
+  ;; release.
+  (let ((commit "0089f9c3a6d4e9a310d0791cf6fa8f35642ecfd9"))
+    (package
+      (name "emacs-gcmh")
+      (version "0.2.1")
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://gitlab.com/koral/gcmh")
+               (commit commit)))
+         (sha256
+          (base32 "0yh1ap8phv3x44rp0yr6z884xqw2apanbx4c0acqglvj0gaaqx25"))
+         (file-name (git-file-name name version))))
+      (build-system emacs-build-system)
+      (home-page "https://gitlab.com/koral/gcmh")
+      (synopsis "Emacs Garbage Collector Magic Hack")
+      (description
+       "This package enforces a sneaky @dfn{garbage collector} (GC) strategy
+to minimize GC interference with the activity.  During normal use a high GC
+threshold is set.  When idling GC is immediately triggered and a low threshold
+is set.")
+      (license license:gpl3+))))
+
 (define-public emacs-ctrlf
   (package
     (name "emacs-ctrlf")
-    (version "1.1")
+    (version "1.2")
     (source
      (origin
        (method git-fetch)
@@ -1749,7 +1958,7 @@ than @code{electric-indent-mode}.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1ffcjf0ff0748gqipkklz6jmcj4f3blgzdcax93ql9ws8bmvlsdc"))))
+        (base32 "1f0k3432brc96am6az6xr1nks1vacqzixhdgwfn2xklb8if9a5xi"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/raxod502/ctrlf/")
     (synopsis "Single-buffer text search in Emacs")
@@ -1892,14 +2101,14 @@ as a library for other Emacs packages.")
 (define-public emacs-auctex
   (package
     (name "emacs-auctex")
-    (version "12.2.4")
+    (version "13.0.4")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://elpa.gnu.org/packages/"
                            "auctex-" version ".tar"))
        (sha256
-        (base32 "1yz2h692mr35zgqwlxdq8rzv8n0jixhpaqmbiki00hlysm4zh9py"))))
+        (base32 "1362dqb8mcaddda9849gqsj6rzlfq18xprddb74j02884xl7hq65"))))
     (build-system emacs-build-system)
     ;; We use 'emacs' because AUCTeX requires dbus at compile time
     ;; ('emacs-minimal' does not provide dbus).
@@ -1909,6 +2118,21 @@ as a library for other Emacs packages.")
        #:exclude '("^tests/" "^latex/README")
        #:phases
        (modify-phases %standard-phases
+         (add-after 'unpack 'configure
+           (lambda* (#:key inputs #:allow-other-keys)
+             (emacs-substitute-variables "preview.el"
+               ("preview-gs-command"
+                (string-append (assoc-ref inputs "ghostscript") "/bin/gs")))
+             (substitute* "preview.el"
+               (("\"dvipng ")
+                (string-append "\"" (assoc-ref inputs "texlive")
+                               "/bin/dvipng "))
+               (("\"dvips ")
+                (string-append "\"" (assoc-ref inputs "texlive")
+                               "/bin/dvips "))
+               (("\"pdf2dsc ")
+                (string-append "\"" (assoc-ref inputs "ghostscript")
+                               "/bin/pdf2dsc ")))))
          (add-after 'install 'install-doc
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
@@ -1923,7 +2147,8 @@ as a library for other Emacs packages.")
     (native-inputs
      `(("perl" ,perl)))
     (inputs
-     `(("texlive" ,(texlive-union (list texlive-amsfonts)))))
+     `(("ghostscript" ,ghostscript)
+       ("texlive" ,(texlive-union (list texlive-amsfonts)))))
     (home-page "https://www.gnu.org/software/auctex/")
     (synopsis "Integrated environment for TeX")
     (description
@@ -1960,14 +2185,14 @@ a set of simplified face specifications and a user-supplied color palette")
 (define-public emacs-howm
   (package
     (name "emacs-howm")
-    (version "1.4.6")
+    (version "1.4.7")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://howm.sourceforge.jp/a/"
                            "howm-" version ".tar.gz"))
        (sha256
-        (base32 "17ihch1zbk08ih7gc232jlmbw7hax8ldb9glxp8d75k4asa98qh5"))))
+        (base32 "11k0dzwyn7ly34g0zcd6i0i8qwyv9di8m6fx805axrxykxb0qan2"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("emacs" ,emacs-minimal)))
@@ -2058,16 +2283,16 @@ Lock key.")
 (define-public emacs-chronometrist
   (package
     (name "emacs-chronometrist")
-    (version "0.5.3")
+    (version "0.6.3")
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://github.com/contrapunctus-1/chronometrist.git")
+             (url "https://github.com/contrapunctus-1/chronometrist")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0jz35972m372kx9x8mgf42zhzdw2w9wv2ri52chfb2fin4bh1biy"))))
+        (base32 "0ql72qh0bshv62nksv6awz5nqfhmgs8hkyvm7wvzfq64yrwghw50"))))
     (build-system emacs-build-system)
     (arguments
      `(#:phases
@@ -2091,7 +2316,8 @@ Lock key.")
                                   (find-files "." "\\.md$")))))
              #t)))))
     (propagated-inputs
-     `(("emacs-dash" ,emacs-dash)
+     `(("emacs-anaphora" ,emacs-anaphora)
+       ("emacs-dash" ,emacs-dash)
        ("emacs-s" ,emacs-s)
        ("emacs-ts" ,emacs-ts)))
     (home-page "https://github.com/contrapunctus-1/chronometrist")
@@ -2113,7 +2339,7 @@ Its features are:
 (define-public emacs-direnv
   (package
     (name "emacs-direnv")
-    (version "2.0.0")
+    (version "2.1.0")
     (source
      (origin
        (method git-fetch)
@@ -2122,8 +2348,7 @@ Its features are:
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32
-         "005ibyzsx1fdyrl5iyhqpb1bg83mphzahq7zvw58x00syyqi2z49"))))
+        (base32 "0xkqn4604k2imas6azy1www56br8ls4iv9a44pxcd8h94j1fp44d"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("dash" ,emacs-dash)
@@ -2271,24 +2496,27 @@ written in the Go programming language.")
     (license license:bsd-3)))
 
 (define-public emacs-google-maps
-  (package
-    (name "emacs-google-maps")
-    (version "1.0.0")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://github.com/jd/google-maps.el")
-                    (commit version)))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "183igr5lp20zcqi7rc01fk76sfxdhksd74i11v16gdsifdkjimd0"))))
-    (build-system emacs-build-system)
-    (home-page "https://github.com/jd/google-maps.el")
-    (synopsis "Access Google Maps from Emacs")
-    (description "The @code{google-maps} package displays Google
-Maps directly inside Emacs.")
-    (license license:gpl3+)))
+  ;; There has been no new release tag since 2013.
+  (let ((commit "2eb16ff609f5a9f8d02c15238a111fbb7db6c146")
+        (revision "1"))
+    (package
+      (name "emacs-google-maps")
+      (version (git-version "1.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/jd/google-maps.el")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1bl0dnksbf14d0xcnvdy9qpvzc5c8jwkxpmfvgayj6djikxnw2md"))))
+      (build-system emacs-build-system)
+      (home-page "https://github.com/jd/google-maps.el")
+      (synopsis "Access Google Maps from Emacs")
+      (description "The @code{google-maps} package displays Google Maps
+directly inside Emacs.  It requires a Google Map Static API key to function.")
+      (license license:gpl3+))))
 
 (define-public emacs-graphviz-dot-mode
   (package
@@ -2426,22 +2654,39 @@ filters, new key bindings and faces.  It can be enabled by
 (define-public emacs-djvu
   (package
     (name "emacs-djvu")
-    (version "1.1")
+    (version "1.1.1")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://elpa.gnu.org/packages/"
                            "djvu-" version ".el"))
        (sha256
-        (base32 "0njgyx09q225hliacsnjk8wallg5i6xkz6bj501pb05nwqfbvfk7"))))
+        (base32 "0z2qk1v4qkvcwl27ycqfb8vyszq5v6b8ci29b4la00yaki16p04i"))))
     (build-system emacs-build-system)
+    (inputs `(("djview" ,djview)
+              ("djvulibre" ,djvulibre)))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'configure
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let ((file "djvu.el")
+                   (djview (assoc-ref inputs "djview"))
+                   (djvulibre (assoc-ref inputs "djvulibre")))
+               ;; Specify the absolute executable locations.
+               (chmod file #o644)
+               (substitute* file
+                 (("\"djvused\"") (string-append "\"" djvulibre "/bin/djvused\""))
+                 (("\"djvm\"") (string-append "\"" djvulibre "/bin/djvm\""))
+                 (("\"ddjvu\"") (string-append "\"" djvulibre "/bin/ddjvu\"")))
+               (emacs-substitute-variables file
+                 ("djvu-djview-command" (string-append djview "/bin/djview"))))
+             #t)))))
     (home-page "http://elpa.gnu.org/packages/djvu.html")
     (synopsis "Edit and view Djvu files via djvused")
     (description
      "This package is a front end for the command-line program djvused from
-DjVuLibre, see @url{http://djvu.sourceforge.net/}.  It assumes you have the
-programs @command{djvused}, @command{djview}, @command{ddjvu}, and
-@command{djvm} installed.")
+DjVuLibre, see @url{http://djvu.sourceforge.net/}.")
     (license license:gpl3+)))
 
 (define-public emacs-pabbrev
@@ -2469,78 +2714,86 @@ during idle time, while Emacs is doing nothing else.")
     (license license:gpl3+)))
 
 (define-public emacs-pdf-tools
-  (package
-    (name "emacs-pdf-tools")
-    (version "0.90")
-    (home-page "https://github.com/politza/pdf-tools")
-    (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
-                "0iv2g5kd14zk3r5dzdw7b7hk4b5w7qpbilcqkja46jgxbb6xnpl9"))))
-    (build-system gnu-build-system)
-    (arguments
-     `(#:tests? #f                      ; there are no tests
-       #: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
-                           (guix build emacs-build-system)
-                           (guix build emacs-utils))
-       #:phases
-       (modify-phases %standard-phases
-         ;; Build server side using 'gnu-build-system'.
-         (add-after 'unpack 'enter-server-dir
-           (lambda _ (chdir "server") #t))
-         (add-after 'enter-server-dir 'autogen
-           (lambda _
-             (invoke "bash" "autogen.sh")))
+  ;; XXX: Development branch fixes an incompatibility with Emacs 27+.  See
+  ;; <https://github.com/politza/pdf-tools/issues/616>.
+  (let ((commit "c510442ab89c8a9e9881230eeb364f4663f59e76")
+        (revision "1"))
+    (package
+      (name "emacs-pdf-tools")
+      (version (git-version "0.90" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/politza/pdf-tools")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "17z3cpn76g9dp62drjrgrqpp1bgf4gl5k5gspylskpvd4kj4bq4d"))))
+      (build-system gnu-build-system)
+      (arguments
+       `(#:tests? #f                    ; there are no tests
+         #: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
+                             (guix build emacs-build-system)
+                             (guix build emacs-utils))
+         #:phases
+         (modify-phases %standard-phases
+           ;; Build server side using 'gnu-build-system'.
+           (add-after 'unpack 'enter-server-dir
+             (lambda _ (chdir "server") #t))
+           (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))
-         (add-after 'enter-lisp-dir 'emacs-patch-variables
-           (lambda* (#:key outputs #:allow-other-keys)
-             (for-each make-file-writable (find-files "."))
+           ;; Build emacs side using 'emacs-build-system'.
+           (add-after 'compress-documentation 'enter-lisp-dir
+             (lambda _ (chdir "../lisp") #t))
+           (add-after 'enter-lisp-dir 'emacs-patch-variables
+             (lambda* (#:key outputs #:allow-other-keys)
+               (for-each make-file-writable (find-files "."))
 
-             ;; Set path to epdfinfo program.
-             (emacs-substitute-variables "pdf-info.el"
-               ("pdf-info-epdfinfo-program"
-                (string-append (assoc-ref outputs "out")
-                               "/bin/epdfinfo")))
-             ;; Set 'pdf-tools-handle-upgrades' to nil to avoid "auto
-             ;; upgrading" that pdf-tools tries to perform.
-             (emacs-substitute-variables "pdf-tools.el"
-               ("pdf-tools-handle-upgrades" '()))))
-         (add-after 'emacs-patch-variables 'emacs-add-source-to-load-path
-           (assoc-ref emacs:%standard-phases 'add-source-to-load-path))
-         (add-after 'emacs-add-source-to-load-path 'emacs-install
-           (assoc-ref emacs:%standard-phases 'install))
-         (add-after 'emacs-install 'emacs-build
-           (assoc-ref emacs:%standard-phases 'build))
-         (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)))
-    (inputs `(("poppler" ,poppler)
-              ("cairo" ,cairo)
-              ("glib" ,glib)
-              ("libpng" ,libpng)
-              ("zlib" ,zlib)))
-    (propagated-inputs `(("tablist" ,emacs-tablist)))
-    (synopsis "Emacs support library for PDF files")
-    (description
-     "PDF Tools is, among other things, a replacement of DocView for PDF
+               ;; Set path to epdfinfo program.
+               (emacs-substitute-variables "pdf-info.el"
+                 ("pdf-info-epdfinfo-program"
+                  (string-append (assoc-ref outputs "out")
+                                 "/bin/epdfinfo")))
+               ;; Set 'pdf-tools-handle-upgrades' to nil to avoid "auto
+               ;; upgrading" that pdf-tools tries to perform.
+               (emacs-substitute-variables "pdf-tools.el"
+                 ("pdf-tools-handle-upgrades" '()))))
+           (add-after 'emacs-patch-variables 'emacs-add-source-to-load-path
+             (assoc-ref emacs:%standard-phases 'add-source-to-load-path))
+           (add-after 'emacs-add-source-to-load-path 'emacs-install
+             (assoc-ref emacs:%standard-phases 'install))
+           (add-after 'emacs-install 'emacs-build
+             (assoc-ref emacs:%standard-phases 'build))
+           (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)))
+      (inputs
+       `(("poppler" ,poppler)
+         ("cairo" ,cairo)
+         ("glib" ,glib)
+         ("libpng" ,libpng)
+         ("zlib" ,zlib)))
+      (propagated-inputs
+       `(("tablist" ,emacs-tablist)))
+      (home-page "https://github.com/politza/pdf-tools")
+      (synopsis "Emacs support library for PDF files")
+      (description
+       "PDF Tools is, among other things, a replacement of DocView for PDF
 files.  The key difference is that pages are not pre-rendered by
 e.g. ghostscript and stored in the file-system, but rather created on-demand
 and stored in memory.")
-    (license license:gpl3+)))
+      (license license:gpl3+))))
 
 (define-public emacs-dash
   (package
@@ -2589,20 +2842,21 @@ type, for example: packages, buffers, files, etc.")
     (license license:gpl3+)))
 
 (define-public emacs-guix
-  (let ((commit "df1fc5d8885959fd2bb83a443137d21c6850dd74")
-        (revision "1"))
+  (let* ((commit "a694fdbcedb6edd2239a31d326e475c763ee32f8")
+         (revision "3"))
     (package
       (name "emacs-guix")
       (version (git-version "0.5.2" revision commit))
       (source (origin
                 (method git-fetch)
                 (uri (git-reference
-                      (url "https://gitlab.com/emacs-guix/emacs-guix")
+                      ;; TODO: Use the official version when it has a new home
+                      (url "https://github.com/jsoo1/guix.el")
                       (commit commit)))
                 (file-name (git-file-name name version))
                 (sha256
                  (base32
-                  "14rn02ay1b8zl0pg54pkqpyzh948c4qiqlvl35627shx7zw5acqh"))))
+                  "1pqw7zbgxzwpig4xr0izc3z8h80c72i6bl5yi12br0d7aq6dbkvj"))))
       (build-system gnu-build-system)
       (native-inputs
        `(("autoconf" ,autoconf)
@@ -2611,7 +2865,8 @@ type, for example: packages, buffers, files, etc.")
          ("texinfo" ,texinfo)
          ("emacs" ,emacs-minimal)))
       (inputs
-       `(("guile" ,@(assoc-ref (package-native-inputs guix) "guile"))
+       `(("guile"
+          ,@(assoc-ref (package-native-inputs guix) "guile"))
          ("guix" ,guix)))
       (propagated-inputs
        `(("geiser" ,emacs-geiser)
@@ -2730,7 +2985,7 @@ running Extempore process, and more.")
       (description "This package provides many, but not all of the editing
 primitives in the Kakoune editor.  Unlike Evil mode for Vim, this is a very
 shallow emulation, which seeks to do as little work as possible, leveraging
-Emacs native editing commmands and the work of other packages wherever
+Emacs native editing commands and the work of other packages wherever
 possible.")
       (license license:expat))))
 
@@ -2786,6 +3041,28 @@ depicting stroke orders for all Kanji.  The collection is a slightly modified
 and limited version of the images provided by the KanjiVG project.")
       (license license:gpl3+))))
 
+(define-public emacs-keycast
+  (package
+    (name "emacs-keycast")
+    (version "1.0.4")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/tarsius/keycast.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1g9arjdhdpvsw47ny9gi5k758ya37yza4mr0rhbf02yvrqyfsrgr"))))
+    (build-system emacs-build-system)
+    (home-page "https://github.com/tarsius/keycast")
+    (synopsis "Show current command and its key in the mode line")
+    (description
+     "This package provides Keycast mode.  Once enabled, that mode shows the
+current command and its key or mouse binding in the mode line, and updates
+them whenever another command is invoked.")
+    (license license:gpl3+)))
+
 (define-public emacs-keyfreq
   (package
     (name "emacs-keyfreq")
@@ -2808,16 +3085,16 @@ a command.")
 (define-public emacs-olivetti
   (package
     (name "emacs-olivetti")
-    (version "1.8.1")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://github.com/rnkn/olivetti")
-                    (commit (string-append "v" version))))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "1fbj9s49y5yx5i429awv9rybacfgvhwp7v5h0zw67bpgx4qs44pa"))))
+    (version "1.11.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/rnkn/olivetti")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0rghxjdzyfykd4qc2zkavvbyf9xc899k1b8hbk890f1y3vakqvqz"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/rnkn/olivetti")
     (synopsis "Emacs minor mode for a nice writing environment")
@@ -2828,14 +3105,14 @@ in the center.")
 (define-public emacs-undo-tree
   (package
     (name "emacs-undo-tree")
-    (version "0.7.4")
+    (version "0.7.5")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://elpa.gnu.org/packages/"
                            "undo-tree-" version ".el"))
        (sha256
-        (base32 "018ixl802f076sfyf4gkacpgrdpybin88jd8vq9zgyvc6x2dalfa"))))
+        (base32 "00admi87gqm0akhfqm4dcp9fw8ihpygy030955jswkha4zs7lw2p"))))
     (build-system emacs-build-system)
     (home-page "http://www.dr-qubit.org/emacs.php")
     (synopsis "Treat undo history as a tree")
@@ -2845,6 +3122,66 @@ graphical tree presentation of all previous states of buffer that
 allows easily move between them.")
     (license license:gpl3+)))
 
+(define-public emacs-undo-fu
+  ;; There are no tagged releases upstream on gitlab, instead we are using
+  ;; the most recent commit.
+  (let ((commit "c0806c1903c5a0e4c69b6615cdc3366470a9b8ca")
+        (revision "0"))
+    (package
+      (name "emacs-undo-fu")
+      (version (git-version "0.4" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://gitlab.com/ideasman42/emacs-undo-fu")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1n594aakmcgyl7qbda86v4wsx8clm62ypiv3h559xz3x72h7mr3j"))))
+      (build-system emacs-build-system)
+      (home-page "https://gitlab.com/ideasman42/emacs-undo-fu")
+      (synopsis "Simple, stable linear undo with redo for Emacs")
+      (description
+       "This is a light weight wrapper for Emacs built-in undo system,
+adding convenient undo/redo without losing access to the full undo history,
+allowing you to visit all previous states of the document if you need.")
+      (license license:gpl3+))))
+
+(define-public emacs-undo-fu-session
+  ;; There are no tagged releases upstream on gitlab, instead we are using the
+  ;; most recent commit.
+  (let ((commit "56cdd3538a058c6916bdf2d9010c2179f2505829")
+        (revision "0"))
+    (package
+      (name "emacs-undo-fu-session")
+      (version (git-version "0.2" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://gitlab.com/ideasman42/emacs-undo-fu-session")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "04wq1alrzzlidcb4mjb5j7pg68pks1vgv7kvvmi6dzb3l602mb2a"))))
+      (build-system emacs-build-system)
+      (arguments
+       `(#:tests? #t
+         #:test-command '("emacs" "--batch" "-l" "undo-fu-session.el"
+                          "-l" "undo-fu-session-test.el")
+         #:phases
+         (modify-phases %standard-phases
+           (add-before 'check 'set-home
+             (lambda _
+               (setenv "HOME" "/tmp")
+               #t)))))
+      (home-page "https://gitlab.com/ideasman42/emacs-undo-fu-session")
+      (synopsis "Save & recover undo steps between Emacs sessions")
+      (description "This package writes undo/redo information upon file save
+which is restored where possible when the file is loaded again.")
+      (license license:gpl3+))))
+
 (define-public emacs-s
   (package
     (name "emacs-s")
@@ -2915,6 +3252,27 @@ strings.")
 Stack Overflow, Super User, and other StackExchange sites.")
       (license license:gpl3+))))
 
+(define-public emacs-toc-org
+  (package
+    (name "emacs-toc-org")
+    (version "1.1.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/snosov1/toc-org")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0lk0rji85a1c0c5r9an0fdvsm4n4jyixsknmr8ywha3lfmc2p0l8"))))
+    (build-system emacs-build-system)
+    (home-page "https://github.com/snosov1/toc-org")
+    (synopsis "Table of Contents generator for Emacs Org mode")
+    (description
+     "This package generates a table of contents when saving in Org and
+Markdown files.")
+    (license license:gpl2+)))
+
 (define-public emacs-toml-mode
   (let ((version "0.1.3")
         (revision "0")
@@ -2989,7 +3347,7 @@ files and directories.")
 (define-public emacs-fountain-mode
   (package
     (name "emacs-fountain-mode")
-    (version "3.1.0")
+    (version "3.4.0")
     (source
      (origin
        (method git-fetch)
@@ -2998,7 +3356,7 @@ files and directories.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "08giwg0jwk8zzj2i4cm08322qr6znrnv9a49za7c6j47bykpwj6s"))))
+        (base32 "161wn66gc2z7fd4f89827dpww6hjmnassbi15yis5rqbklj1h2z6"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/rnkn/fountain-mode")
     (synopsis "Major mode for screenwriting in Fountain markup")
@@ -3188,6 +3546,29 @@ project.
 This package also includes relevant snippets for yasnippet.")
       (license license:expat))))
 
+(define-public emacs-gdscript-mode
+  (package
+    (name "emacs-gdscript-mode")
+    (version "1.4.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/godotengine/emacs-gdscript-mode")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "09q0himrz7a6xgz0jmcl85qc5xhk5fwi6d2vw1n8qaiavm96ksdy"))))
+    (build-system emacs-build-system)
+    (home-page "https://github.com/godotengine/emacs-gdscript-mode")
+    (synopsis "GDScript support and syntax highlighting in Emacs")
+    (description
+     "This package adds support for the GDScript programming language from the
+Godot game engine in Emacs. It features all the essentials, e.g., syntax
+highlighting, code folding, indentation, automatic pairing, auto-completion,
+and code formatting.")
+    (license license:gpl3+)))
+
 (define-public emacs-el-mock
   (package
     (name "emacs-el-mock")
@@ -3311,6 +3692,40 @@ keep pressing the key until it selects what you want.  There's also
 @code{er/contract-region} if you expand too far.")
     (license license:gpl3+)))
 
+(define-public emacs-explain-pause-mode
+  (let ((commit "2356c8c3639cbeeb9751744dbe737267849b4b51")
+        (revision "0"))
+    (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"))))
+      (build-system emacs-build-system)
+      (native-inputs
+       `(("emacs" ,emacs-buttercup)))
+      (arguments
+       '(#:tests? #t
+         ;; Don't run case-tests as they will fail to create sockets because
+         ;; the path is too long
+         #:test-command '("make" "byte-compile" "unit-tests")
+         ;; Parallel testing will cause the tests to run before
+         ;; byte-compilation is finished
+         #:parallel-tests? #f))
+      (home-page "https://github.com/lastquestion/explain-pause-mode")
+      (synopsis "Top-like interface to determine why Emacs paused")
+      (description
+       "This package monitors Emacs function calls and records their execution
+time.  This information can be reviewed to determine what is causing the user
+interface to pause.")
+      (license license:gpl3+))))
+
 (define-public emacs-fill-column-indicator
   (package
     (name "emacs-fill-column-indicator")
@@ -3375,7 +3790,7 @@ result.")
 (define-public emacs-rg
   (package
     (name "emacs-rg")
-    (version "1.8.1")
+    (version "2.0.2")
     (source
      (origin
        (method git-fetch)
@@ -3384,7 +3799,7 @@ result.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0k7x5z7mh9flwih35cqy8chs54rack3nswdcpw5wcpgv6xim227y"))))
+        (base32 "15qcnsnbni0aincm9pxpfhff3c5ivd5zs2s2qchjzhcn4kdm6kxr"))))
     (build-system emacs-build-system)
     (arguments
      '(#:phases
@@ -3398,6 +3813,7 @@ result.")
                  ("(defcustom rg-executable" (which "rg")))))))))
     (propagated-inputs
      `(("emacs-s" ,emacs-s)
+       ("emacs-transient" ,emacs-transient)
        ("emacs-wgrep" ,emacs-wgrep)))
     (inputs
      `(("ripgrep" ,ripgrep)))
@@ -3468,7 +3884,6 @@ IRC bouncer with ERC.")
          (sha256
           (base32 "1hwlhzgx03z8891sblz56zdp8zj0izh72kxykgcnz5rrkyc3vfi3"))))
       (build-system emacs-build-system)
-      (propagated-inputs `(("emacs-seq" ,emacs-seq)))
       (home-page "https://github.com/drewbarbs/erc-status-sidebar")
       (synopsis "Hexchat-like activity overview for ERC channels")
       (description
@@ -3476,7 +3891,7 @@ IRC bouncer with ERC.")
 ERC, an Emacs client for IRC (Internet Relay Chat).  It relies on the
 @code{erc-track} module, and displays all the same information
 @code{erc-track} does in the mode line, but in an alternative format.")
-      (license license:expat))))
+      (license license:gpl3+))))
 
 (define-public emacs-shut-up
   (package
@@ -3639,8 +4054,8 @@ in Lisp modes.")
       (license license:gpl3+))))
 
 (define-public emacs-literate-calc-mode
-  (let ((commit "e855bd718fa7d0d70b8f43264e10664369dd3a37")
-        (revision "0"))
+  (let ((commit "a50e897a816cb5580ad6ec867eeaae212e0e4798")
+        (revision "1"))
     (package
       (name "emacs-literate-calc-mode")
       (version (git-version "0.1" revision commit))
@@ -3652,7 +4067,7 @@ in Lisp modes.")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
-          (base32 "0mk4cig8g8ibz97mvyan79fkypyanh7r0h7h20ibafq09nb0mw01"))))
+          (base32 "0z6y5f1rj28lbr30m6g4a9l6ahs66whi8861g4cx9xzhs84nwv5g"))))
       (build-system emacs-build-system)
       (propagated-inputs
        `(("emacs-s" ,emacs-s)))
@@ -3666,6 +4081,30 @@ particular, the minor mode works quite well with Org or Markdown modes, or
 other markup language major modes.")
       (license license:gpl3+))))
 
+(define-public emacs-standard-dirs
+  (package
+    (name "emacs-standard-dirs")
+    (version "2.0.0")
+    (home-page "https://github.com/lafrenierejm/standard-dirs.el")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url home-page)
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0r814qcrhvx4qlx4sdzwdmrhiryslqclx0bnpp0qcrbx6g8qfl25"))))
+    (build-system emacs-build-system)
+    (propagated-inputs
+     `(("emacs-f" ,emacs-f)
+       ("emacs-s" ,emacs-s)))
+    (synopsis "Platform-specific paths for config, cache, and other data")
+    (description
+     "This package provides platform-specific paths for reading and writing
+configuration, cache, and other data.")
+    (license license:gpl3+)))
+
 (define-public emacs-string-inflection
   (package
     (name "emacs-string-inflection")
@@ -3769,6 +4208,55 @@ boxes, and more.")
 been copied from an Emacs major mode.")
     (license license:gpl2+)))
 
+(define-public emacs-org-fancy-priorities
+  (let ((commit "819bb993b71e7253cefef7047306ab4e0f9d0a86")
+        (revision "1"))
+    (package
+      (name "emacs-org-fancy-priorities")
+      (version (git-version "1.1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/harrybournis/org-fancy-priorities.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "13cyzlx0415i953prq6ch7r5iy23c1pz116bdxi5yqags4igh4wv"))))
+      (build-system emacs-build-system)
+      (home-page "https://github.com/harrybournis/org-fancy-priorities")
+      (synopsis "Display org priorities as custom strings")
+      (description
+       "This package provides a minor mode that displays Org priorities as
+custom strings.  This mode does not change your files in any way, it only
+displays the priority part of a heading as your preferred string value.")
+      (license license:expat))))
+
+(define-public emacs-org-fragtog
+  (package
+    (name "emacs-org-fragtog")
+    (version "0.3.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/io12/org-fragtog.git")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1rzi67lb3mxqg3x6d8zx6rxncg7lw14agqwbh7zvgc2iins59j0f"))))
+    (build-system emacs-build-system)
+    (propagated-inputs
+     `(("emacs-org" ,emacs-org)))
+    (home-page "https://github.com/io12/org-fragtog")
+    (synopsis "Toggle Org mode LaTeX fragments preview at cursor")
+    (description
+     "Org mode supports inline image previews of LaTeX fragments.  This
+package automates this, so fragment previews are disabled for editing when
+your cursor steps onto them, and re-enabled when the cursor leaves.")
+    (license license:gpl3+)))
+
 (define-public emacs-ob-erlang
   (let ((revision "1")
         (commit "f1a8c665b8f7d0ab32267a9961de8eed872e6333"))
@@ -3792,10 +4280,10 @@ blocks with @code{org-babel} in @code{org-mode}.")
       (license license:gpl3+))))
 
 (define-public emacs-ob-restclient
-  (let ((commit "53376667eeddb1388fd6c6976f3222e7c8adcd46"))
+  (let ((commit "f7449b2068498fe9d8ab9589e0a638148861533f"))
     (package
       (name "emacs-ob-restclient")
-      (version (git-version "0.02" "1" commit))
+      (version (git-version "0.02" "2" commit))
       (source
        (origin
          (method git-fetch)
@@ -3804,7 +4292,7 @@ blocks with @code{org-babel} in @code{org-mode}.")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
-          (base32 "1djg53cp7y83gic2v71y6r5z76kwrbkp0r69hl25rs99dx6p89dy"))))
+          (base32 "0s3931w9ab3yfml2pmq71rw21yf6hpg7m3vihxyy3vs6zli1cvmq"))))
       (propagated-inputs
        `(("emacs-restclient" ,emacs-restclient)))
       (build-system emacs-build-system)
@@ -3914,6 +4402,42 @@ files with features such as syntax highlighting, comments, finding keywords,
 completing keywords and smart indentation.")
       (license license:gpl3+))))
 
+(define-public emacs-roguel-ike
+  ;; Tagged branch is outdated.
+  (let ((revision "0")
+        (commit "706dcb0687e8016d7d776f9d9e5ace9fdbbca43c"))
+    (package
+      (name "emacs-roguel-ike")
+      (version (git-version "0.1.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/stevenremot/roguel-ike")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0rgv4y9aa5cc2ddz3y5z8d22xmr8kf5c60h0r3g8h91jmcw3rb4z"))))
+      (build-system emacs-build-system)
+      (propagated-inputs
+       `(("emacs-popup" ,emacs-popup)))
+      (arguments
+       `(#:include (cons* "^roguel-ike/" "^roguel-ike-lib/" %default-include)
+         #:phases
+         (modify-phases %standard-phases
+           (add-before 'check 'set-test-environment
+             (lambda _
+               (setenv "HOME" "/tmp")
+               #t)))))
+      (home-page "https://github.com/stevenremot/roguel-ike.git")
+      (synopsis "Coffee-break roguelike for Emacs")
+      (description
+       "Roguel-ike is an attempt to develop a coffee-break roguelike for
+Emacs.  The complete game would allow the player to create various characters
+and to make them fulfill challenges like arena fight and short dungeon
+explorations.")
+      (license license:gpl3+))))
+
 (define-public emacs-rspec
   (let ((commit "66ea7cc9699d6edc6115daa024818adbd85efc20")
         (revision "1"))
@@ -3969,6 +4493,30 @@ read from small to large monitors by using colors, a prefix feature, and smart
 truncation.")
     (license license:gpl2+)))
 
+(define-public emacs-sqlite
+  ;; XXX: There is no tagged commit.
+  (let ((commit "dad42b8bbca4994be1871343dd18fd6528ee5797")
+	(revision "0"))
+    (package
+      (name "emacs-sqlite")
+      (build-system emacs-build-system)
+      (version (git-version "1.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+	       (url "https://gitlab.com/cnngimenez/sqlite.el")
+	       (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "06ln4vijl8kii3nzc5cscgsadx1fqgxksflijd3ain83bn8g4wrd"))))
+      (home-page "https://gitlab.com/cnngimenez/sqlite.el")
+      (synopsis "SQLite interface for Emacs Lisp")
+      (description "Emacs SQLite is a simple SQLite interface for connecting
+and retrieving information using the SQLite program through Elisp programming.
+It is not intended as a user interface.")
+      (license license:gpl3+))))
+
 (define-public emacs-sr-speedbar
   (let ((commit "77a83fb50f763a465c021eca7343243f465b4a47")
         (revision "0"))
@@ -4017,7 +4565,7 @@ the speedbar window.")
 (define-public emacs-shx
   (package
     (name "emacs-shx")
-    (version "1.4.0")
+    (version "1.5.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -4025,15 +4573,10 @@ the speedbar window.")
                     (commit (string-append "v" version))))
               (file-name (git-file-name name version))
               (sha256
-               (base32 "0p9b621rgy34r1hl9xfzxh4xpx9gpsr3n330ypfxhlr0s5754j73"))))
+               (base32 "1cb5w6p9gnfxgh8qp7yj2f5ibpk1b4b5af3ynldaaj6yfpa8hqzn"))))
     (build-system emacs-build-system)
     (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         ;; A docstring provides examples of mapping hosts to programs in /bin.
-         ;; These examples are valid as-is.
-         (delete 'patch-el-files))
-       #:tests? #t
+     `(#:tests? #t
        #:test-command
        '("emacs" "--batch" "--quiet"
          "--script" "test/script.el")))
@@ -4151,18 +4694,19 @@ for Flow files.")
 (define-public emacs-flycheck-grammalecte
   (package
     (name "emacs-flycheck-grammalecte")
-    (version "1.2")
+    (version "1.3")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://git.deparis.io/"
-                           "flycheck-grammalecte/snapshot/"
-                           "flycheck-grammalecte-" version ".tar.xz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://git.umaneti.net/flycheck-grammalecte/")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
-        (base32 "1mzmzyik843r4j0ibpwqrxmb0g4xmirrf3lxr010bddkmmxf749a"))))
+        (base32 "1f1gapvs9j89qr474103dqgsiyb96phlnsmq5hiv4ba242blg9lb"))))
     (build-system emacs-build-system)
     (arguments
-     `(#:include '("\\.(el|py)$")
+     `(#:include (cons "\\.py$" %default-include)
        #:exclude '("^test-profile.el$")
        #:emacs ,emacs                   ;need libxml support
        #:phases
@@ -4177,28 +4721,22 @@ for Flow files.")
                (substitute* '("conjugueur.py" "flycheck-grammalecte.py")
                  (("/usr/bin/env python3?") python3))
                #t)))
-         (add-before 'build 'link-to-grammalecte
-           ;; XXX: The Python part of the package requires grammalecte, but
-           ;; the library is not specified in PYTHONPATH, since we're not
-           ;; using Python build system.  As a workaround, we symlink
-           ;; grammalecte libraries here.
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (grammalecte (assoc-ref inputs "grammalecte"))
-                    (version ,(version-major+minor (package-version python))))
-               (with-directory-excursion
-                   (string-append out "/share/emacs/site-lisp")
-                 (symlink (string-append grammalecte "/lib/"
-                                         "python" version "/site-packages/"
-                                         "grammalecte")
-                          "grammalecte"))
-               #t))))))
+         (add-after 'unpack 'specify-grammalecte-location
+           (lambda* (#:key inputs #:allow-other-keys)
+             (make-file-writable "flycheck-grammalecte.el")
+             (emacs-substitute-variables "flycheck-grammalecte.el"
+               ("flycheck-grammalecte--grammalecte-directory"
+                (string-append (assoc-ref inputs "grammalecte")
+                               "/lib/python"
+                               ,(version-major+minor (package-version python))
+                               "/site-packages/grammalecte")))
+             #t)))))
     (inputs
      `(("grammalecte" ,grammalecte)
        ("python" ,python)))
     (propagated-inputs
      `(("emacs-flycheck" ,emacs-flycheck)))
-    (home-page "https://git.deparis.io/flycheck-grammalecte/")
+    (home-page "https://git.umaneti.net/flycheck-grammalecte/")
     (synopsis "Integrate Grammalecte with Flycheck")
     (description
      "Integrate the French grammar and typography checker Grammalecte with
@@ -4240,7 +4778,7 @@ compile}.")
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://github.com/purcell/flycheck-ledger.git")
+             (url "https://github.com/purcell/flycheck-ledger")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
@@ -4336,7 +4874,8 @@ respective @code{*Help*} buffers.")
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-dash" ,emacs-dash)
-       ("emacs-f" ,emacs-f)))
+       ("emacs-f" ,emacs-f)
+       ("emacs-yaml-mode" ,emacs-yaml-mode)))
     (home-page "https://github.com/meqif/docker-compose-mode/")
     (synopsis "Major mode for editing @file{docker-compose} files")
     (description
@@ -4401,8 +4940,9 @@ Gnus, e.g., for applying patches received by email.")
       (license license:gpl2+))))
 
 (define-public emacs-sudo-edit
-  (let ((commit "cc3d478937b1accd38742bfceba92af02ee9357d")
-        (revision "6"))
+  ;; No proper release nor tag.
+  (let ((commit "0e2c32b5e5242d30f8780cbe8e1b1649476cac4d")
+        (revision "0"))
     (package
       (name "emacs-sudo-edit")
       (version (git-version "0.1.0" revision commit))
@@ -4415,12 +4955,13 @@ Gnus, e.g., for applying patches received by email.")
          (file-name (git-file-name name version))
          (sha256
           (base32
-           "1qv58x5j5a3v1s2ylhck1ykbfclq0mbi0gsvaql3nyv8cxazqlwl"))))
+           "1z26i4hzi2mksl4nr8szzlnrnyv96fg7jjddbm5dp5dlmh2pndk1"))))
       (build-system emacs-build-system)
       (native-inputs
        `(("emacs-undercover" ,emacs-undercover)))
       (arguments
-       `(#:phases
+       `(#:emacs ,emacs
+         #:phases
          (modify-phases %standard-phases
            (add-before 'check 'fix-makefile
              (lambda _
@@ -4484,14 +5025,14 @@ source code using IPython.")
 (define-public emacs-debbugs
   (package
     (name "emacs-debbugs")
-    (version "0.25")
+    (version "0.27")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://elpa.gnu.org/packages/debbugs-"
                            version ".tar"))
        (sha256
-        (base32 "0h0pxav170yzfpjf4vb8simiw67x9dkcjx9m4ghdk6wia25y8jni"))))
+        (base32 "1zn9p9vmfv5ihrp8d06b6abs48q225v42cgwa01s39hld6zg6wbv"))))
     (build-system emacs-build-system)
     (arguments '(#:include '("\\.el$" "\\.wsdl$" "\\.info$")))
     (propagated-inputs
@@ -4619,10 +5160,45 @@ front-ends.  Company comes with many back-ends, e.g., @code{company-elisp}.
 These are distributed in separate files and can be used individually.")
     (license license:gpl3+)))
 
+(define-public emacs-company-box
+  ;; There is no release yet.  Version is extracted from the main
+  ;; file.
+  (let ((version "0.0.1")
+        (revision "0")
+        (commit "be37a9a30dc112ab172af21af694e2cb04a74f85"))
+    (package
+      (name "emacs-company-box")
+      (version (git-version version revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/sebastiencs/company-box")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "13fgmdy51gqdwijqfvb784pirx4lgva0y7ysi0c3fcx8f82cdj59"))))
+      (build-system emacs-build-system)
+      (propagated-inputs
+       `(("emacs-company" ,emacs-company)
+         ("emacs-dash" ,emacs-dash)
+         ("emacs-frame-local" ,emacs-frame-local)))
+      (home-page "https://github.com/sebastiencs/company-box")
+      (synopsis "Company front-end with icons")
+      (description
+       "Company box is a Company front-end.  It supports different
+colors for different backends, associates icons to functions,
+variables... and their backends, and displays candidate's
+documentation.  It is not limited by the current window size or
+buffer's text properties.
+
+This package is not compatible with a TTY.")
+      (license license:gpl3+))))
+
 (define-public emacs-company-posframe
   (let ((version "0.1.0")
-        (revision "1")
-        (commit "67d899502384fb9ab2870aba0af41523dea7b64f"))
+        (revision "2")
+        (commit "4bfb8bccef4b64479f4147de6bf6fbd05df2a67e"))
     (package
       (name "emacs-company-posframe")
       (version (git-version version revision commit))
@@ -4634,7 +5210,7 @@ These are distributed in separate files and can be used individually.")
                 (file-name (git-file-name name version))
                 (sha256
                  (base32
-                  "051smlvz1siwglsd9k9l0m20mygrx4niflmyshha0064287aysxr"))))
+                  "0k19gkh8xbap4j1jjqw6lnkp1v2q76fz3ryrns7kvbzmca3y5599"))))
       (build-system emacs-build-system)
       (propagated-inputs
        `(("emacs-company" ,emacs-company)
@@ -4853,30 +5429,28 @@ features:
     (license license:gpl3+)))
 
 (define-public emacs-company-math
-  (let ((commit "600e49449644f6835f9dc3501bc58461999e8ab9")
-        (revision "1"))
-    (package
-      (name "emacs-company-math")
-      (version (git-version "1.3" revision commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/vspinu/company-math")
-               (commit commit)))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32
-           "1ps2lpkzn8mjbpcbvvy1qz3xbgrh6951x8y9bsd1fm32drdph9lh"))))
-      (build-system emacs-build-system)
-      (propagated-inputs
-       `(("emacs-math-symbol-lists" ,emacs-math-symbol-lists)
-         ("emacs-company" ,emacs-company)))
-      (home-page "https://github.com/vspinu/company-math")
-      (synopsis "Completion backends for Unicode math symbols and @code{LaTeX} tags")
-      (description "This package provides a backend for use with
-@code{company-mode} allowing for completion of common math symbols.")
-      (license license:gpl3+))))
+  (package
+    (name "emacs-company-math")
+    (version "1.4")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/vspinu/company-math")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1y1fw926insgdl7ib9ynxjrxf3p6wfjkfxvf5vgdca7267cvcll1"))))
+    (build-system emacs-build-system)
+    (propagated-inputs
+     `(("emacs-math-symbol-lists" ,emacs-math-symbol-lists)
+       ("emacs-company" ,emacs-company)))
+    (home-page "https://github.com/vspinu/company-math")
+    (synopsis "Completion backends for math symbols and @code{LaTeX} tags")
+    (description
+     "This package provides a backend for use with Company mode allowing for
+completion of common math symbols.")
+    (license license:gpl3+)))
 
 (define-public emacs-compdef
   (let ((commit "67104a38763cc819644f711248b170a43bce151b")
@@ -5149,11 +5723,36 @@ commands and highlighting.")
     ;; indicates GPL3.
     (license license:gpl3)))
 
+(define-public emacs-sbt-mode
+  (package
+    (name "emacs-sbt-mode")
+    (version "2.0.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/hvesalai/emacs-sbt-mode")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0lv9ridzk9x6rkf7lj21srnszypyq04vqg05vl10zhpz1yqlnbjd"))))
+    (build-system emacs-build-system)
+    (home-page "https://github.com/hvesalai/emacs-sbt-mode")
+    (synopsis "Basic functionality for interacting with sbt inside Emacs")
+    (description
+     "This mode provides basic functionality required for successfully
+interacting with sbt inside Emacs.  The core functionality includes
+interacting with the sbt shell and Scala console, compiling code and
+navigation to errors.")
+    (license license:gpl3+)))
+
 (define-public emacs-scheme-complete
-  (let ((commit "9b5cf224bf2a5994bc6d5b152ff487517f1a9bb5"))
+  ;; Upstream does not provide tags.  The commit below corresponds to the
+  ;; exact version update.  Version is extracted from main file.
+  (let ((commit "5c0a16684a3be7021d67067b2955f1c3e17a320a"))
     (package
       (name "emacs-scheme-complete")
-      (version (string-append "20151223." (string-take commit 8)))
+      (version "0.9.9")
       (source
        (origin
          (method git-fetch)
@@ -5162,10 +5761,7 @@ commands and highlighting.")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
-          (base32
-           "141wn9l0m33w0g3dqmx8nxbfdny1r5xbr6ak61rsz21bk0qafs7x"))
-         (patches
-          (search-patches "emacs-scheme-complete-scheme-r5rs-info.patch"))))
+          (base32 "1smxr5bkzbfrjx21vhrj1wagmqx5yd92i997dbgs16iaqbzzr7cz"))))
       (build-system emacs-build-system)
       (home-page "https://github.com/ashinn/scheme-complete")
       (synopsis "Smart tab completion for Scheme in Emacs")
@@ -5344,7 +5940,7 @@ in @code{html-mode}.")
 (define-public emacs-slime
   (package
     (name "emacs-slime")
-    (version "2.25")
+    (version "2.26.1")
     (source
      (origin
        (method git-fetch)
@@ -5353,7 +5949,7 @@ in @code{html-mode}.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0rz54943cbs9lvpc8hnyw5ka60f3bi8x4xykk8pq0lpmv1zbij1x"))))
+        (base32 "1a25ixb7q4svqabxnhwkk43v47mbsh13qwm7qlazkd3zkr8j3cli"))))
     (build-system emacs-build-system)
     (native-inputs
      `(("texinfo" ,texinfo)))
@@ -5428,6 +6024,59 @@ This provides a basic API and common UI widgets such as popup tooltips
 and popup menus.")
     (license license:gpl3+)))
 
+(define-public emacs-python-black
+  (package
+    (name "emacs-python-black")
+    (version "1.0.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/wbolster/emacs-python-black")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0fjnd85nlkck156dj6cahk8chhgkbgl2kwywqzi8bl4yj700m4dk"))))
+    (build-system emacs-build-system)
+    (propagated-inputs
+     `(("emacs-dash" ,emacs-dash)
+       ("emacs-reformatter" ,emacs-reformatter)
+       ("python-black-macchiato" ,python-black-macchiato)))
+    (arguments `(#:tests? #f))
+    (home-page "https://github.com/wbolster/emacs-python-black")
+    (synopsis "Reformat Python code via @code{python-black}")
+    (description
+     "This package makes it easy to reformat Python code using
+@code{python-black} and @code{python-black-macchiato} for entire and partial
+buffers, respectively.")
+    (license license:bsd-3)))
+
+(define-public emacs-py-isort
+  (package
+    (name "emacs-py-isort")
+    (version "2016.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/paetzke/py-isort.el")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "08i55gv392wc12x8v3dca0dmz8a8p9ljsqhyajsb6qv1k120wqhx"))))
+    (build-system emacs-build-system)
+    (arguments
+     `(#:tests? #f))     ;tests fail with "emacs: standard input is not a tty"
+    (propagated-inputs
+     `(("python-isort" ,python-isort)))
+    (home-page "https://github.com/paetzke/py-isort.el")
+    (synopsis "Sort the imports in Python buffers")
+    (description
+     "This package provides commands and a minor mode to sort Python imports
+using @code{python-isort}.")
+    (license license:gpl3+)))
+
 (define-public emacs-python-environment
   (package
     (name "emacs-python-environment")
@@ -5720,10 +6369,61 @@ drill sessions to aid in memorization.  In these sessions you are shown flash
 cards created in Org mode.")
     (license license:gpl3+)))
 
+(define-public emacs-anki-editor
+  ;; Last release was in 2018.
+  (let ((commit "546774a453ef4617b1bcb0d1626e415c67cc88df")
+        (revision "0")
+        (version "0.3.3"))
+    (package
+      (name "emacs-anki-editor")
+      (version (git-version version revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/louietan/anki-editor")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1if610hq5j8rbjh1caw5bwbgnsn231awwxqbpwvrh966kdxzl4qf"))))
+      (build-system emacs-build-system)
+      (propagated-inputs
+       `(("emacs-dash" ,emacs-dash)
+         ("emacs-request" ,emacs-request)))
+      (home-page "https://github.com/louietan/anki-editor")
+      (synopsis "Minor mode for making Anki cards with Org mode")
+      (description
+       "This package is for people who use Anki as a spaced repetition system
+(SRS) but would like to make cards in Org mode.")
+      (license license:gpl3+))))
+
+(define-public emacs-org-mime
+  (package
+    (name "emacs-org-mime")
+    (version "0.2.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/org-mime/org-mime")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0vchyd80ybvr6317dwm50nxcgxfrpc0bz6259vnrh24p5sb8shbj"))))
+    (build-system emacs-build-system)
+    (home-page "http://github.com/org-mime/org-mime")
+    (synopsis "Send HTML email using Org mode HTML export")
+    (description
+     "This program sends HTML email using Org-mode HTML export.
+This approximates a WYSiWYG HTML mail editor from within Emacs, and can be
+useful for sending tables, fontified source code, and inline images in
+email.")
+    (license license:gpl3+)))
+
 (define-public emacs-org-superstar
   (package
     (name "emacs-org-superstar")
-    (version "1.3.0")
+    (version "1.4.0")
     (source
      (origin
        (method git-fetch)
@@ -5732,7 +6432,7 @@ cards created in Org mode.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "17x32k3f21z9ldakgryd2wczhdj78kb8gsdxplyjqc3knajpnzgp"))))
+        (base32 "1aklp6nk05ghpq7ybsbvn28wrygfwqvq58k1hjll97nbhd7h0gyb"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-org" ,emacs-org)))
@@ -5818,7 +6518,7 @@ started with 20 minutes.  All values are customizable.")
 (define-public emacs-org-sidebar
   (package
     (name "emacs-org-sidebar")
-    (version "0.2")
+    (version "0.3.2")
     (source
      (origin
        (method git-fetch)
@@ -5827,7 +6527,7 @@ started with 20 minutes.  All values are customizable.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "106h06vjfbqfj761vbxwymd6612ds8c6fk053yzgbrqzm3hn2c03"))))
+        (base32 "1r8kp954ciin4j7j7j8ihdkryf5x09s3ryl7bi9h2j6xqc1ij4wq"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-dash" ,emacs-dash)
@@ -5970,7 +6670,7 @@ a RPG style habit tracker and todo list.")
 (define-public emacs-zenburn-theme
   (package
     (name "emacs-zenburn-theme")
-    (version "2.6")
+    (version "2.7.0")
     (source
      (origin
        (method git-fetch)
@@ -5979,7 +6679,7 @@ a RPG style habit tracker and todo list.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1n87r5hs7h5r8dgfid66skpzcypl9hssr9m3npp916g6jfsi782f"))))
+        (base32 "1991s1gz2i3jchf0yvcsjjb5flwn13ifbnnfkqqrxxvy2imfh18q"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/bbatsov/zenburn-emacs")
     (synopsis "Low contrast color theme for Emacs")
@@ -6157,14 +6857,14 @@ board and goal value can be customized.")
 (define-public emacs-chess
   (package
     (name "emacs-chess")
-    (version "2.0.4")
+    (version "2.0.5")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://elpa.gnu.org/packages/"
                            "chess-" version ".tar"))
        (sha256
-        (base32 "1sq1bjmp513vldfh7hc2bbfc54665abqiz0kqgqq3gijckaxn5js"))))
+        (base32 "1a4iwjdh6k348df6qywjws9z9f862d62m0b2sz57z4xhywiyxpr7"))))
     (build-system emacs-build-system)
     (arguments
      `(#:phases
@@ -6258,6 +6958,33 @@ background of file-visiting buffers (and certain aspects of the UI) to make
 them easier to distinguish from other, less important buffers.")
     (license license:expat)))
 
+(define-public emacs-embark
+  ;; There are no tagged releases upstream on GitHub, instead we are using the
+  ;; most recent commit.
+  (let ((commit "dc20b4e53c4ce1ad91100dfeb093115f2cc0b210")
+        (revision "0"))
+    (package
+      (name "emacs-embark")
+      (version (git-version "0.6" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/oantolin/embark")
+               (commit commit)))
+         (sha256
+          (base32 "1jrvdlwip7zll5ixlnk9l0apr8hj60ysqfc47q3k4hhfyl9rawbq"))
+         (file-name (git-file-name name version))))
+      (build-system emacs-build-system)
+      (propagated-inputs
+       `(("emacs-avy" ,emacs-avy)))
+      (home-page "https://github.com/oantolin/embark")
+      (synopsis "Emacs mini-buffer actions rooted in keymaps")
+      (description "This package provides a command embark-act (and a variant
+embark-act-noexit), to execute actions on the top minibuffer completion
+canidate: the one that would be chosen by minibuffer-force-complete.")
+      (license license:gpl3+))))
+
 (define-public emacs-prescient
   (package
     (name "emacs-prescient")
@@ -6286,7 +7013,7 @@ for Ivy and Company that make use of the library.")
 (define-public emacs-selectrum
   (package
     (name "emacs-selectrum")
-    (version "2.0")
+    (version "3.0")
     (source
      (origin
        (method git-fetch)
@@ -6295,7 +7022,7 @@ for Ivy and Company that make use of the library.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "08wm4ybidn8g7sy5a009lnsm0f1p7a3jfzpzxnzylvnyrmyhi3y4"))))
+        (base32 "0j10yxlikyg7qxcmp4fnddyd5nc3hlz080d1zcbijq020a08k86g"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/raxod502/selectrum/")
     (synopsis "Incremental narrowing in Emacs")
@@ -6309,6 +7036,83 @@ marginal benefit compared to the additional complexity of a new
 interface.")
     (license license:expat)))
 
+(define-public emacs-orderless
+  (package
+    (name "emacs-orderless")
+    (version "0.5")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/oantolin/orderless")
+             (commit version)))
+       (sha256
+        (base32 "032lfwflkpaxbcxl4jf438vapswsdagipjczcn30sc4dfdh3p42c"))
+       (file-name (git-file-name name version))))
+    (build-system emacs-build-system)
+    (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
+divides the pattern into space-separated components, and matches candidates
+that match all of the components in any order.  Each component can match in
+any one of several ways: literally, as a regexp, as an initialism, in the flex
+style, or as multiple word prefixes.")
+    (license license:gpl3+)))
+
+(define-public emacs-consult
+  ;; There are no tagged releases upstream on GitHub, instead we are using the
+  ;; most recent commit.
+  (let ((commit "ef6bb73a4a46e686826968fa25169e2d59b9a087")
+        (revision "0"))
+    (package
+      (name "emacs-consult")
+      (version (git-version "0.1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/minad/consult")
+               (commit commit)))
+         (sha256
+          (base32 "00cnwg2knd820wwx6zg71rr0whpdhqm64gm3qx1mgklk79g7daih"))
+         (file-name (git-file-name name version))))
+      (build-system emacs-build-system)
+      (propagated-inputs `(("emacs-flycheck" ,emacs-flycheck)
+                           ("emacs-selectrum" ,emacs-selectrum)))
+      (home-page "https://github.com/minad/consult")
+      (synopsis "Consulting completing-read")
+      (description "This package provides various handy commands based on the
+Emacs completion function completing-read, which allows to quickly select from a
+list of candidates.")
+      (license license:gpl3+))))
+
+(define-public emacs-marginalia
+  ;; There are no tagged releases upstream on GitHub, instead we are using the
+  ;; most recent commit.
+  (let ((commit "401993562dbf636054dd64988e44d19b5030867f")
+        (revision "0"))
+    (package
+      (name "emacs-marginalia")
+      (version (git-version "0.1" revision commit))
+      (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 "1j0k9ija5paidj7yvbagkkayz9bjwhia9yhmd2q4490ginbbxshs"))))
+      (build-system emacs-build-system)
+      (home-page "https://github.com/minad/marginalia")
+      (synopsis "Marginalia in the minibuffer")
+      (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+))))
+
 (define-public emacs-smartparens
   (package
     (name "emacs-smartparens")
@@ -6379,27 +7183,25 @@ regardless of @code{highlight-symbol-idle-delay}.
       (license license:gpl2+))))
 
 (define-public emacs-symbol-overlay
-  (let ((commit "e40a7c407f24158c45eaa5f54ed41f5e416a51dc")
-        (revision "1"))
-    (package
-      (name "emacs-symbol-overlay")
-      (version (git-version "4.1" revision commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/wolray/symbol-overlay")
-               (commit commit)))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32 "0ibz3392d3jw1l8006h9kf8s7bg6vl7jc92bmqc031a433009ic7"))))
-      (build-system emacs-build-system)
-      (home-page "https://github.com/wolray/symbol-overlay")
-      (synopsis "Highlight symbols and perform various search operations on them")
-      (description
-       "This package provides functions for highlighting and navigating
+  (package
+    (name "emacs-symbol-overlay")
+    (version "4.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/wolray/symbol-overlay")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "10n0871xzycifyqp73xnbqmrgy60imlb26yhm3p6vfj3d84mg1b2"))))
+    (build-system emacs-build-system)
+    (home-page "https://github.com/wolray/symbol-overlay")
+    (synopsis "Highlight symbols and perform various search operations on them")
+    (description
+     "This package provides functions for highlighting and navigating
 between symbols.")
-      (license license:gpl3+))))
+    (license license:gpl3+)))
 
 (define-public emacs-hl-todo
   (package
@@ -6427,7 +7229,7 @@ regexp that matches all known keywords.")
 (define-public emacs-perspective
   (package
     (name "emacs-perspective")
-    (version "2.9")
+    (version "2.11")
     (source
      (origin
        (method git-fetch)
@@ -6437,8 +7239,13 @@ regexp that matches all known keywords.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "1hmbczw3b7k2xdqcy5p3xnf2781gjw6bqqcwc5r9myg6b8p3pr7m"))))
+         "0nka5z6226r174ligja023qx2bb1pfyjbanafxprbyxkr17b2794"))))
     (build-system emacs-build-system)
+    (arguments
+     `(#:tests? #t
+       #:test-command '("emacs" "-Q" "-batch" "-L" "."
+                        "-l" "test/test-perspective.el"
+                        "-f" "ert-run-tests-batch-and-exit")))
     (home-page "https://github.com/nex3/perspective-el")
     (synopsis "Switch between named \"perspectives\"")
     (description
@@ -6606,42 +7413,45 @@ parallel.")
     (license license:gpl3+)))
 
 (define-public emacs-request
-  (package
-    (name "emacs-request")
-    (version "0.3.2")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://github.com/tkf/emacs-request")
-                    (commit (string-append "v" version))))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "1djywhvvb6kwdj0nd3axjvb7k2g06dzkc6hsf29w9rsk96vr8ryl"))))
-    (build-system emacs-build-system)
-    (arguments
-     `(#:tests? #f)) ; requires network access.
-    (propagated-inputs
-     `(("emacs-deferred" ,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
+  ;; 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"))
+    (package
+      (name "emacs-request")
+      (version (git-version "0.3.2" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/tkf/emacs-request")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "1rkpakzish2d470ca15yq3k0m1j7a2lrkvvddcyvc2rx0sncsdjs"))))
+      (build-system emacs-build-system)
+      (arguments
+       `(#:tests? #f))                  ; requires network access.
+      (propagated-inputs
+       `(("emacs-deferred" ,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
 backends.  It supports url.el which is shipped with Emacs and the curl command
 line program.")
-    (license license:gpl3+)))
+      (license license:gpl3+))))
 
 (define-public emacs-rudel
   (package
     (name "emacs-rudel")
-    (version "0.3.1")
+    (version "0.3.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://elpa.gnu.org/packages/rudel-"
                            version ".tar"))
        (sha256
-        (base32
-         "0glqa68g509p0s2vcc0i8kzlddnc9brd9jqhnm5rzxz4i050cvnz"))))
+        (base32 "03hcvpp6ykavidwn5x48gs986w1i5icvh7ks6p74pdaagpgw4jmk"))))
     (build-system emacs-build-system)
     (home-page "http://rudel.sourceforge.net/")
     (synopsis "Collaborative editing framework")
@@ -6685,6 +7495,35 @@ the Hydra very seamless; it's like a minor mode that disables itself
 automatically.")
     (license license:gpl3+)))
 
+(define-public emacs-pretty-hydra
+  (package
+    (name "emacs-pretty-hydra")
+    (version "0.2.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/jerrypnz/major-mode-hydra.el")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "08a15knkdq35pzjq82imff016fbfdib5q4glg2xmdy2b5fnk7jqa"))))
+    (build-system emacs-build-system)
+    (propagated-inputs
+     `(("emacs-dash" ,emacs-dash)
+       ("emacs-hydra" ,emacs-hydra)
+       ("emacs-s" ,emacs-s)))
+    (arguments
+     `(#:exclude (cons "^major-mode-hydra\\.el" %default-exclude)))
+    (home-page "https://github.com/jerrypnz/major-mode-hydra.el")
+    (synopsis "Major mode keybindings managed by Hydra")
+    (description
+     "This package offers an hydra-based method of managing major
+mode-specific key bindings.  It is intended for use as a library only; see
+package @code{emacs-major-mode-hydra} for a user-friendly interface.")
+    (license license:gpl3+)))
+
 (define-public emacs-interleave
   (package
     (name "emacs-interleave")
@@ -6707,6 +7546,20 @@ automatically.")
 by side to an Org buffer with your notes relevant to the current page.")
     (license license:gpl3+)))
 
+(define-public emacs-major-mode-hydra
+  (package
+    (inherit emacs-pretty-hydra)
+    (name "emacs-major-mode-hydra")
+    (propagated-inputs
+     `(("emacs-dash" ,emacs-dash)
+       ("emacs-pretty-hydra" ,emacs-pretty-hydra)))
+    (arguments
+     `(#:exclude (cons "^pretty-hydra\\.el" %default-exclude)))
+    (synopsis "Create nice-looking hydras")
+    (description
+     "This package provides the macro @code{pretty-hydra-define} to define
+hydras with one column per group of heads.")))
+
 (define-public emacs-ivy
   (package
     (name "emacs-ivy")
@@ -6872,33 +7725,29 @@ use it, call @code{M-x ivy-yasnippet} (but make sure you have enabled
       (license license:gpl3+))))
 
 (define-public emacs-ivy-rich
-  ;; The latest release version has a small mistake that has since been fixed,
-  ;; so we use a more recent commit.
-  (let ((commit "7a667b135983a1f3ad33d6db8514638e2a3bdfb3")
-        (revision "2"))
-    (package
-      (name "emacs-ivy-rich")
-      (version (git-version "0.1.4" revision commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/Yevgnen/ivy-rich")
-               (commit commit)))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32 "1v5j6pak2j1wjw19y7rx9rhxif0bj2h47xyl2knfcl6fi4qiqm9y"))))
-      (build-system emacs-build-system)
-      (propagated-inputs
-       `(("emacs-ivy" ,emacs-ivy)))
-      (home-page "https://github.com/Yevgnen/ivy-rich")
-      (synopsis "More friendly interface for @code{ivy}")
-      (description
-       "This package extends @code{ivy} by showing more information in the
-minibuffer for each candidate.  It adds columns showing buffer modes, file
-sizes, docstrings, etc.  If @code{emacs-all-the-icons} is installed, it can
-show icons as well.")
-      (license license:gpl3+))))
+  (package
+    (name "emacs-ivy-rich")
+    (version "0.1.6")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/Yevgnen/ivy-rich")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1ra18v6lgz3m6asm6d5b92zn1x22yiz4cwxd9b54dnvwi11121m7"))))
+    (build-system emacs-build-system)
+    (propagated-inputs
+     `(("emacs-ivy" ,emacs-ivy)))
+    (home-page "https://github.com/Yevgnen/ivy-rich")
+    (synopsis "More friendly interface for @code{ivy}")
+    (description
+     "This package extends Ivy by showing more information in the minibuffer
+for each candidate.  It adds columns showing buffer modes, file sizes,
+docstrings, etc.  If @code{emacs-all-the-icons} is installed, it can show
+icons as well.")
+    (license license:gpl3+)))
 
 (define-public emacs-avy
   (package
@@ -6958,6 +7807,78 @@ called.  If there are more, each window will have its first character
 highlighted.  Pressing that character will switch to that window.")
     (license license:gpl3+)))
 
+(define-public emacs-windsize
+  ;; There is no proper release.  The base version is extracted from the
+  ;; "Version" keyword in the main file.
+  (let ((revision "1")
+        (commit "62c2846bbe95b0a73e996c75e4a644d05f57aaaa"))
+    (package
+      (name "emacs-windsize")
+      (version (git-version "0.1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/grammati/windsize")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "13kfrmv3vmkfanxv9nym5v43hx5p7xkgqmx65zcxh4gcbaham1mi"))))
+      (build-system emacs-build-system)
+      (home-page "https://github.com/grammati/windsize")
+      (synopsis "Easy resizing of Emacs windows")
+      (description
+       "This package allows moving the borders of the active window
+with the arrow keys.  It prefers to move the right or bottom border when
+possible, and falls back to moving the left or top border otherwise.")
+      (license license:gpl3+))))
+
+(define-public emacs-window-purpose
+  (let ((commit "f6421966761ad911fe8861aba2b110c5dd60d1ea")
+        (revision "1"))
+    (package
+      (name "emacs-window-purpose")
+      (version (git-version "1.7" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/bmag/emacs-purpose.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "1p0y5gnrw7q65py2wjdf1hrdpiw5c2zbgvfbfmb13257jq5mga38"))))
+      (build-system emacs-build-system)
+      (propagated-inputs
+       `(("emacs-let-alist" ,emacs-let-alist)
+         ("emacs-imenu-list" ,emacs-imenu-list)))
+      (arguments
+       '(#:include
+         '("^[^/]+.el$"
+           "^[^/]+.el.in$"
+           "^dir$"
+           "^[^/]+.info$"
+           "^[^/]+.texi$"
+           "^[^/]+.texinfo$"
+           "^doc/dir$"
+           "^doc/[^/]+.info$"
+           "^doc/[^/]+.texi$"
+           "^doc/[^/]+.texinfo$"
+           "^layouts$")
+         #:exclude
+         '("^.dir-locals.el$"
+           "^test.el$"
+           "^tests.el$"
+           "^[^/]+-test.el$"
+           "^[^/]+-tests.el$")))
+      (home-page "https://github.com/bmag/emacs-purpose")
+      (synopsis "Purpose-based window management for Emacs")
+      (description "Purpose is a package that introduces the concept of a
+\"purpose\" for windows and buffers, and then helps you maintain a robust
+window layout easily.")
+      (license license:gpl3+))))
+
 (define-public emacs-iedit
   ;; Last release version was in 2016.
   (let ((commit "e2c100cdd67b7d82835d281ac2cd1bf4f374bc8f")
@@ -7010,63 +7931,68 @@ navigate code in a tree-like fashion.")
     (license license:gpl3+)))
 
 (define-public emacs-lispy
-  (package
-    (name "emacs-lispy")
-    (version "0.27.0")
-    (home-page "https://github.com/abo-abo/lispy")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://github.com/abo-abo/lispy")
-                    (commit version)))
-              (sha256
-               (base32
-                "1cm7f4pyl73f3vhkb7ah6bbbrj2sa7n0p31g09k7dy4zgx04bgw6"))
-              (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)))
-    (native-inputs
-     `(("emacs-clojure-mode" ,emacs-clojure-mode)
-       ("emacs-undercover" ,emacs-undercover)))
-    (arguments
-     `(#:include (cons* "^lispy-clojure\\.clj$"
-                        "^lispy-python\\.py$"
-                        %default-include)
-       #:phases
-       ;; XXX: one failing test involving python evaluation
-       (modify-phases %standard-phases
-         (add-before 'check 'make-test-writable
-           (lambda _
-             (make-file-writable "lispy-test.el")
-             #t))
-         (add-before 'check 'remove-python-eval-test
-           (lambda _
-             (emacs-batch-edit-file "lispy-test.el"
-               `(progn
-                 (progn
-                  (goto-char (point-min))
-                  (re-search-forward
-                   "ert-deftest lispy-eval-python-str")
-                  (beginning-of-line)
-                  (kill-sexp))
-                 (basic-save-buffer)))
-             #t)))
-       #:tests? #t
-       #:test-command '("make" "test")))
-    (synopsis "Modal S-expression editing")
-    (description
-     "Due to the structure of Lisp syntax it's very rare for the programmer
+  ;; No release since May 2019 and tons of fixes have landed on master.
+  ;; https://github.com/abo-abo/lispy/issues/513
+  (let ((commit "5c8a59ae7dd3dd342e7c86a8c0acdbd13e2989f3"))
+    (package
+      (name "emacs-lispy")
+      (version (git-version "0.27.0" "1" commit))
+      (home-page "https://github.com/abo-abo/lispy")
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/abo-abo/lispy")
+                      (commit commit)))
+                (sha256
+                 (base32
+                  "0738v9bp4dlxbwsnykvc35yh4dl4pvw25jl8srb7r3744ydvgyii"))
+                (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)))
+      (native-inputs
+       `(("which" ,which)
+         ("emacs-clojure-mode" ,emacs-clojure-mode)
+         ("emacs-undercover" ,emacs-undercover)))
+      (arguments
+       `(#:include (cons* "^lispy-clojure\\.clj$"
+                          "^lispy-python\\.py$"
+                          %default-include)
+         #:phases
+         ;; XXX: Some failing tests
+         (modify-phases %standard-phases
+           (add-before 'check 'make-test-writable
+             (lambda _
+               (make-file-writable "lispy-test.el")
+               #t))
+           (add-before 'check 'remove-failing-test
+             (lambda _
+               (emacs-batch-edit-file "lispy-test.el"
+                 `(progn
+                   (dolist (test '("lispy-eval-python-str" "lispy--clojure-dot-object"))
+                    (goto-char (point-min))
+                    (re-search-forward
+                     (concat "ert-deftest " test))
+                    (beginning-of-line)
+                    (kill-sexp))
+                   (basic-save-buffer)))
+               #t)))
+         #:tests? #t
+         ;; Set BEMACS to prevent the test suite from loading straight.el.
+         #:test-command '("make" "test" "BEMACS=emacs -batch")))
+      (synopsis "Modal S-expression editing")
+      (description
+       "Due to the structure of Lisp syntax it's very rare for the programmer
 to want to insert characters right before \"(\" or right after \")\".  Thus
 unprefixed printable characters can be used to call commands when the point is
 at one of these special locations.  Lispy provides unprefixed keybindings for
 S-expression editing when point is at the beginning or end of an
 S-expression.")
-    (license license:gpl3+)))
+      (license license:gpl3+))))
 
 (define-public emacs-lispyville
   (let ((commit "1bf38088c981f5ab4ef2e2684952ab6af96378db")
@@ -7127,7 +8053,7 @@ allowing unprefixed keys to insert their respective characters as expected.")
 (define-public emacs-clojure-mode
   (package
     (name "emacs-clojure-mode")
-    (version "5.11.0")
+    (version "5.12.0")
     (source
      (origin
        (method git-fetch)
@@ -7136,15 +8062,26 @@ allowing unprefixed keys to insert their respective characters as expected.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1x1yszp6waa778ki6sw66w1pzcz389wd01gkcldfxxnd7z89ad5d"))))
+        (base32 "14ipfy9ji39pnb9x7bzjp8lyqyxk168fx017m823j7a2g9i0sgp3"))))
     (build-system emacs-build-system)
     (native-inputs
      `(("emacs-buttercup" ,emacs-buttercup)
        ("emacs-dash" ,emacs-dash)
+       ("emacs-paredit" ,emacs-paredit)
        ("emacs-s" ,emacs-s)))
     (arguments
      `(#:tests? #t
-       #:test-command '("buttercup")))
+       #:test-command '("buttercup")
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'check 'fix-tests
+           ;; See: https://github.com/clojure-emacs/clojure-mode/issues/568
+           (lambda _
+             (substitute* "clojure-mode.el"
+               (("\\(list \\(cdr project\\)\\)" line)
+                (string-append "\"Return the list of directory roots of the PROJECT.\"\n"
+                               line)))
+             #t)))))
     (home-page "https://github.com/clojure-emacs/clojure-mode")
     (synopsis "Major mode for Clojure code")
     (description
@@ -7156,7 +8093,7 @@ It is recommended to use @code{clojure-mode} with Paredit or Smartparens.")
 (define-public emacs-epl
   (package
     (name "emacs-epl")
-    (version "0.8")
+    (version "0.9")
     (source
      (origin
        (method git-fetch)
@@ -7165,7 +8102,7 @@ It is recommended to use @code{clojure-mode} with Paredit or Smartparens.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0sjxd5y5hxhrbgfkpwx6m724r3841b53hgc61a0g5zwispw5pmrr"))))
+        (base32 "0d3z5z90ln8ipk1yds1n1p8fj9yyh2kpspqjs7agl38indra3nb4"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/cask/epl")
     (synopsis "Emacs Package Library")
@@ -7176,6 +8113,33 @@ The purpose of this library is to wrap all the quirks and hassle of
 @code{package.el} into a sane API.")
     (license license:gpl3+)))
 
+(define-public emacs-counsel-jq
+  (let ((release "1.0.0")
+        (revision "0")
+        (commit "aaf33fc2447096cd0d03b77395fe2a95c9fe1481"))
+    (package
+      (name "emacs-counsel-jq")
+      (version (git-version release revision commit))
+      (home-page "https://github.com/200ok-ch/counsel-jq")
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url home-page)
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "10rz0qm8a4bl0m86kx19zq8lri047p4sxqyny08bgm9pbam0wvwn"))))
+      (build-system emacs-build-system)
+      (propagated-inputs
+       `(("emacs-swiper" ,emacs-swiper)
+         ("jq" ,jq)))
+      (synopsis "Live preview @code{jq} queries using counsel")
+      (description
+       "This Emacs package provides the ability to live preview @code{jq}
+queries using counsel.")
+      (license license:gpl3+))))
+
 (define-public emacs-counsel-notmuch
   ;; Upstream provides no release.  Extract version for main file.
   (let ((commit "a4a1562935e4180c42524c51609d1283e9be0688")
@@ -7187,7 +8151,7 @@ The purpose of this library is to wrap all the quirks and hassle of
        (origin
          (method git-fetch)
          (uri (git-reference
-               (url "https://github.com/fuxialexander/counsel-notmuch.git")
+               (url "https://github.com/fuxialexander/counsel-notmuch")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
@@ -7219,7 +8183,7 @@ asynchronously, with Counsel and Ivy.  Simply call
 (define-public emacs-counsel-projectile
   (package
     (name "emacs-counsel-projectile")
-    (version "0.3.0")
+    (version "0.3.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -7228,7 +8192,7 @@ asynchronously, with Counsel and Ivy.  Simply call
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1inc4ndl0ysfwvxk4avbgpj4qi9rc93da6476a5c81xmwpsv8wmq"))))
+                "1k4n5lw6wwbgpwv0dg9dw0bjzi0hvbgkzrs1zmq36yhfz6y8gwnh"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-counsel" ,emacs-counsel)
@@ -7285,6 +8249,29 @@ be removed from the front.  This type of data structure is sometimes called an
 \"output-restricted deque\".")
     (license license:gpl3+)))
 
+(define-public emacs-quickrun
+  (package
+    (name "emacs-quickrun")
+    (version "2.3.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/emacsorphanage/quickrun")
+             (commit version)))
+       (sha256
+        (base32 "0a1n2v09h0n7d9p2izflqqang4ny0b46dlqvmxvkkik4bb6f4wcz"))
+       (file-name (git-file-name name version))))
+    (build-system emacs-build-system)
+    (home-page "https://github.com/emacsorphanage/quickrun")
+    (synopsis "Execute editing buffer and show its output quickly")
+    (description
+     "This package evaluates the content of a buffer, or region, and displays
+the result.  Quickrun executes not only script languages (Perl, Ruby, Python
+etc), but also compiling languages (C, C++, Go, Java etc) and markup
+languages.")
+    (license license:gpl3+)))
+
 (define-public emacs-pkg-info
   (package
     (name "emacs-pkg-info")
@@ -7328,7 +8315,7 @@ ongoing operations.")
 (define-public emacs-sparql-mode
   (package
     (name "emacs-sparql-mode")
-    (version "2.0.1")
+    (version "4.0.2")
     (source
      (origin
        (method git-fetch)
@@ -7337,14 +8324,16 @@ ongoing operations.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0ywhqk6n5k0l85zjwbnrivnvxjzqipqrggv06lify6yv18qmyl6s"))))
+        (base32 "0hqp8r24wvzrkl630wbm0lynrcrnawv2yn2a3xgwqwwhwgva35rn"))))
     (build-system emacs-build-system)
+    (propagated-inputs
+     `(("emacs-company" ,emacs-company)))
     (home-page "https://github.com/ljos/sparql-mode")
     (synopsis "SPARQL mode for Emacs")
-    (description "This package provides a major mode for Emacs that provides
-syntax highlighting for SPARQL.  It also provides a way to execute queries
-against a SPARQL HTTP endpoint, such as is provided by Fuseki.  It is also
-possible to query other endpoints like DBPedia.")
+    (description
+     "This package is a major mode for Emacs that provides syntax highlighting
+for SPARQL.  It can also execute queries against a SPARQL HTTP endpoint, such
+as Fuseki or DBPedia.")
     (license license:gpl3+)))
 
 (define-public emacs-better-defaults
@@ -7418,23 +8407,19 @@ E-Prime forbids the use of the \"to be\" form to strengthen your writing.")
       (license license:gpl3+))))
 
 (define-public emacs-julia-mode
-  ;; XXX: Upstream version remained stuck at 0.3.  See
-  ;; <https://github.com/JuliaEditorSupport/julia-emacs/issues/46>.
-  (let ((commit "115d4dc8a07445301772da8376b232fa8c7168f4")
-        (revision "1"))
     (package
       (name "emacs-julia-mode")
-      (version (string-append "0.3-" revision "." (string-take commit 8)))
+      (version "0.4")
       (source
        (origin
          (method git-fetch)
          (uri (git-reference
                (url "https://github.com/JuliaEditorSupport/julia-emacs")
-               (commit commit)))
+               (commit version)))
          (file-name (git-file-name name version))
          (sha256
           (base32
-           "1is4dcv6blslpzbjcg8l2jpxi8xj96q4cm0nxjxsyswpm8bw8ki0"))))
+           "1w131jb9mhvyjxa0p93iwfhzidgbcs6b8i6jg79yisqb9wchik99"))))
       (build-system emacs-build-system)
       (arguments
        `(#:tests? #t
@@ -7445,7 +8430,7 @@ E-Prime forbids the use of the \"to be\" form to strengthen your writing.")
       (synopsis "Major mode for Julia")
       (description "This Emacs package provides a mode for the Julia
 programming language.")
-      (license license:expat))))
+      (license license:expat)))
 
 (define-public emacs-smex
   (package
@@ -7471,7 +8456,7 @@ to all the other commands, too.")
 (define-public emacs-js2-mode
   (package
     (name "emacs-js2-mode")
-    (version "20190219")
+    (version "20201220")
     (source
      (origin
        (method git-fetch)
@@ -7480,7 +8465,7 @@ to all the other commands, too.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0766bbr4piia9vfr4ivd2gwi8dxah654adv6h28ylz4q8xmfzm1b"))))
+        (base32 "00jy917cgp5xzfgs4m0spzlbqk8mg63layin8nxmn2647rfjnik4"))))
     (build-system emacs-build-system)
     (arguments
      `(#:tests? #t
@@ -7668,7 +8653,7 @@ in Emacs.")
 (define-public emacs-edit-indirect
   (package
     (name "emacs-edit-indirect")
-    (version "0.1.5")
+    (version "0.1.6")
     (source
      (origin
        (method git-fetch)
@@ -7677,14 +8662,13 @@ in Emacs.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32
-         "0by1x53pji39fjrj5bd446kz831nv0vdgw2jqasbym4pc1p2947r"))))
+        (base32 "189nvmlkki1jfszm9i0crbb1p4nzgmbly0wpvpg0i8vmw7vrpl40"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/Fanael/edit-indirect")
     (synopsis "Edit regions in separate buffers")
     (description "This package allows you to edit regions in separate buffers,
 like @code{org-edit-src-code} but for arbitrary regions.")
-    (license license:gpl3+)))
+    (license license:bsd-2)))
 
 (define-public emacs-projectile
   (package
@@ -7895,7 +8879,7 @@ maximizes flexibility (at the expense of conciseness).")
 (define-public emacs-find-file-in-project
   (package
     (name "emacs-find-file-in-project")
-    (version "5.7.7")
+    (version "5.7.10")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -7904,7 +8888,7 @@ maximizes flexibility (at the expense of conciseness).")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1skjbh7m0cck2rwmgzrrds51gipqf1jqghyfx15drc1n6kwivx3h"))))
+                "156sfd5xs831sdlkf7p5m20hzznv1zlf9nm3pfm8n8ixp13fnzj0"))))
     (build-system emacs-build-system)
     (arguments
      `(#:tests? #t
@@ -8013,7 +8997,7 @@ indentation guides in Emacs:
 (define-public emacs-elpy
   (package
     (name "emacs-elpy")
-    (version "1.34.0")
+    (version "1.35.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -8022,7 +9006,7 @@ indentation guides in Emacs:
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1x1z298axbh4xalssnq9nkf2z1sdgmx839vb01xz18kr9lfavx1x"))))
+                "07rdb9w3bxzfr07224awa541xdy116hyc2b3bpl3fc3ikddmbydk"))))
     (build-system emacs-build-system)
     (arguments
      `(#:include (cons* "^elpy/[^/]+\\.py$" "^snippets\\/" %default-include)
@@ -8290,25 +9274,24 @@ that uses the standard completion function completing-read.")
 (define-public emacs-yaml-mode
   (package
     (name "emacs-yaml-mode")
-    (version "0.0.14")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://github.com/yoshiki/yaml-mode")
-                    (commit version)))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "18g064ardqi1f3xz7j6rs1x9fvv9sn0iq9vgid8c6qvxq7gwj00r"))))
+    (version "0.0.15")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/yoshiki/yaml-mode")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0gsa153yp8lmwrvcc3nzpw5lj037y7q2nm23k5k404r5as4k355l"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/yoshiki/yaml-mode")
     (synopsis "Major mode for editing YAML files")
     (description
-     "Yaml-mode is an Emacs major mode for editing files in the YAML data
-serialization format.  It was initially developed by Yoshiki Kurihara and many
-features were added by Marshall Vandegrift.  As YAML and Python share the fact
-that indentation determines structure, this mode provides indentation and
-indentation command behavior very similar to that of python-mode.")
+     "Yaml mode is an Emacs major mode for editing files in the YAML data
+serialization format.  As YAML and Python share the fact that indentation
+determines structure, this mode provides indentation and indentation command
+behavior very similar to that of Python mode.")
     (license license:gpl3+)))
 
 (define-public emacs-gitlab-ci-mode
@@ -8408,7 +9391,7 @@ ack, ag, helm and pt.")
 (define-public emacs-helm
   (package
     (name "emacs-helm")
-    (version "3.6.4")
+    (version "3.7.0")
     (source
      (origin
        (method git-fetch)
@@ -8417,7 +9400,7 @@ ack, ag, helm and pt.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0cl5awhq5py872qx9s30sfgfpfwjivwbsi18mgar8lj6lvs4s8zz"))))
+        (base32 "0lxq13bsbh7xawgsq08kjm7s28x9yl8mid3538flv5kcc1rv2b9y"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-async" ,emacs-async)
@@ -8638,7 +9621,7 @@ target will call @code{compile} on it.")
 (define-public emacs-cider
   (package
     (name "emacs-cider")
-    (version "0.26.0")
+    (version "0.26.1")
     (source
      (origin
        (method git-fetch)
@@ -8647,7 +9630,7 @@ target will call @code{compile} on it.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1qwizvmm9ln75ph1jg2rfqv3hd9p4zaz8kp2i6yr3vq99c3a00i7"))))
+        (base32 "0m77jbxl380dp1wyj12m82bb06r80js8yxl530ryp1mwvy74f00d"))))
     (build-system emacs-build-system)
     (arguments
      '(#:exclude                        ;don't exclude 'cider-test.el'
@@ -8675,15 +9658,14 @@ are pretty much the same (and SLIME served as the principle inspiration for
 CIDER).")
     (license license:gpl3+)))
 
-;; There hasn't been a tag or release since 2016, so we take the latest
-;; commit.
 (define-public emacs-sly
-  (let ((commit "6a2f543cb21f14104c2253af5a1427b884a987ae")
-        ;; Update together with sbcl-slynk-boot0.
-        (revision "5"))
+  ;; Update together with sbcl-slynk.
+  (let ((commit "dffdf3caa12e964127d6eb45ba92ac0442cc5a48"))
+    ;; Latest stable 1.0.42 is broken:
+    ;; https://github.com/joaotavora/sly/issues/394.
     (package
       (name "emacs-sly")
-      (version (git-version "1.0.0" revision commit))
+      (version (git-version "1.0.43" "1" commit))
       (source
        (origin
          (method git-fetch)
@@ -8693,7 +9675,7 @@ CIDER).")
          (file-name (git-file-name name version))
          (sha256
           (base32
-           "0wbpg9p9yg2hd62l15pvy50fk3hndq5zzyqlyyf04g368s895144"))))
+           "0vv185gz3rkfng5y79dijfnc11p92qdz2kdza05avjbpqfs6l0zn"))))
       (build-system emacs-build-system)
       (native-inputs
        `(("texinfo" ,texinfo)))
@@ -8709,7 +9691,7 @@ CIDER).")
                       (info-dir (string-append out "/share/info"))
                       (doc-dir (string-append out "/share/doc/"
                                               ,name "-" ,version))
-                      (doc-files '(;; "doc/sly-refcard.pdf" ; See sly-refcard.pdf below.
+                      (doc-files '( ;; "doc/sly-refcard.pdf" ; See sly-refcard.pdf below.
                                    "README.md" "NEWS.md" "PROBLEMS.md"
                                    "CONTRIBUTING.md")))
                  (with-directory-excursion "doc"
@@ -8739,19 +9721,21 @@ CIDER).")
 contains the following improvements over it:
 
 @enumerate
-@item Completely redesigned REPL based on Emacs's own full-featured
-  @code{comint.el}.
-@item Live code annotations via a new @code{sly-stickers} contrib.
-@item Consistent interactive button interface.  Everything can be copied to
-  the REPL.
-@item Multiple inspectors with independent history.
+@item A full-featured REPL based on Emacs's @code{comint.el}.  Everything
+can be copied to the REPL;
+@item Stickers, or live code annotations that record values as code traverses them.
+@item Flex-style completion out-of-the-box, using Emacs's completion API.
+Company, Helm, and other supported natively, no plugin required;
+@item An interactive Trace Dialog;
+@item Multiple inspectors and multiple REPLs, with independent history.
 @item Regexp-capable @code{M-x sly-apropos}.
-@item Contribs are first class SLY citizens and enabled by default.
-@item Use ASDF to loads contribs on demand.
+@item Cleanly ASDF-loaded by default, including contribs, enabled out-of-the-box;
+@item \"Presentations\" replaced by interactive backreferences, which
+highlight the object and remain stable throughout the REPL session;
 @end enumerate
 
 SLY tracks SLIME's bugfixes and all its familiar features (debugger, inspector,
-xref, etc...) are still available, but with better integration.")
+xref, etc.) are still available, but with better integration.")
       (license license:gpl3+))))
 
 (define-public emacs-sly-quicklisp
@@ -8849,8 +9833,8 @@ file.")
       (license license:gpl3+))))
 
 (define-public emacs-sly-macrostep
-  (let ((commit "be2d24545092d164be1a91031d8881afd29c9ec0")
-        (revision "1"))
+  (let ((commit "5113e4e926cd752b1d0bcc1508b3ebad5def5fad")
+        (revision "2"))
     (package
       (name "emacs-sly-macrostep")
       (version (git-version "0.1" revision commit))
@@ -8864,7 +9848,7 @@ file.")
          (file-name (git-file-name name version))
          (sha256
           (base32
-           "0v8m3zkccpqd2l8m9340y672l2mm3mrry8422nva5kfvpcwdayqb"))))
+           "1nxf28gn4f3n0wnv7nb5sgl36fz175y470zs9hig4kq8cp0yal0r"))))
       (build-system emacs-build-system)
       (propagated-inputs
        `(("emacs-sly" ,emacs-sly)
@@ -8882,6 +9866,62 @@ file.")
 inside the source file.")
       (license license:gpl3+))))
 
+(define-public emacs-sly-stepper
+  (let ((commit "ec3c0a7f3c8b82926882e5fcfdacf67b86d989f8"))
+    (package
+      (name "emacs-sly-stepper")
+      (version (git-version "0.0.0" "1" commit))
+      (home-page "https://github.com/joaotavora/sly-stepper")
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url home-page)
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "1hxniaxifdw3m4y4yssgy22xcmmf558wx7rpz66wy5hwybjslf7b"))))
+      (build-system emacs-build-system)
+      (inputs
+       `(("cl-agnostic-lizard" ,cl-agnostic-lizard)))
+      (propagated-inputs
+       `(("emacs-sly" ,emacs-sly)))
+      (arguments
+       '(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)
+         #:phases
+         (modify-phases %standard-phases
+           ;; The package provides autoloads.
+           (delete 'make-autoloads)
+           (delete 'enable-autoloads-compilation)
+           (add-after 'add-source-to-load-path 'add-contrib-to-emacs-load-path
+             (lambda* (#:key inputs #:allow-other-keys)
+               (let ((sly (assoc-ref inputs "emacs-sly")))
+                 (setenv "EMACSLOADPATH"
+                         (string-append sly "/share/emacs/site-lisp/contrib:"
+                                        (getenv "EMACSLOADPATH"))))
+               #t))
+           (add-after 'install 'find-agnostic-lizard
+             (lambda* (#:key inputs outputs #:allow-other-keys)
+               (let* ((out (assoc-ref outputs "out"))
+                      (file (string-append out "/share/emacs/site-lisp/"
+                                           "slynk-stepper.lisp"))
+                      (asd (string-append
+                            (assoc-ref inputs "cl-agnostic-lizard")
+                            "/share/common-lisp/systems/agnostic-lizard.asd")))
+                 ;; agnostic-lizard is found at runtime.
+                 (substitute* file
+                   (("\\(require :asdf\\)")
+                    (string-append
+                     "(require :asdf)\n"
+                     "     (funcall (read-from-string \"asdf:load-asd\")\n"
+                     "              \"" asd "\")\n")))))))))
+      (synopsis "Portable Common Lisp stepper interface for Emacs")
+      (description
+       "This package features a new, portable, visual stepping facility for
+Common Lisp, realized as an extension to SLY.")
+      (license license:gpl3+))))
+
 (define-public emacs-sly-package-inferred
   (let ((commit "800e71e2be631422277e2ec77e6d6f6ea20e95ef")
         (revision "1"))
@@ -8916,33 +9956,31 @@ using package inferred style.")
       (license license:gpl3+))))
 
 (define-public emacs-lua-mode
-  (let ((commit "35b6e4c20b8b4eaf783ccc8e613d0dd06dbd165c")
-        (revision "0"))
-    (package
-      (name "emacs-lua-mode")
-      (version (git-version "20200508" revision commit))
-      (home-page "https://github.com/immerrr/lua-mode/")
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url home-page)
-                      (commit commit)))
-                (file-name (git-file-name name version))
-                (sha256
-                 (base32
-                  "1hai6rqjm5py0bp57nhggmj9qigwdj3a46ngacpnjc1qmy9kkgfk"))))
-      (build-system emacs-build-system)
-      (arguments
-       `(#:tests? #t
-         #:test-command '("buttercup" "-l" "lua-mode.el")))
-      (native-inputs
-       `(("emacs-buttercup" ,emacs-buttercup)
-         ("lua" ,lua)))
-      (synopsis "Major mode for lua")
-      (description
-       "This Emacs package provides a mode for @uref{https://www.lua.org/,
+  (package
+    (name "emacs-lua-mode")
+    (version "20201010")
+    (home-page "https://github.com/immerrr/lua-mode/")
+    (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 "0zf43f7fkrgki6pbc09zak975p4jx1yf3ipfs38hypfl9s5d6xrf"))))
+    (build-system emacs-build-system)
+    (arguments
+     `(#:tests? #t
+       #:test-command '("buttercup" "-l" "lua-mode.el")))
+    (native-inputs
+     `(("emacs-buttercup" ,emacs-buttercup)
+       ("lua" ,lua)))
+    (synopsis "Major mode for lua")
+    (description
+     "This Emacs package provides a mode for @uref{https://www.lua.org/,
 Lua programming language}.")
-      (license license:gpl2+))))
+    (license license:gpl2+)))
 
 (define-public emacs-ebuild-mode
   (package
@@ -8998,8 +10036,14 @@ news items, openrc and runscripts.")
            (lambda _
              (substitute* "evil-test-helpers.el"
                (("\\(undo-tree-mode 1\\)") ""))
-             #t)))))
+             #t))
+         (add-before 'install 'make-info
+           (lambda _
+             (with-directory-excursion "doc/build/texinfo"
+                 (invoke "makeinfo" "--no-split"
+                         "-o" "evil.info" "evil.texi")))))))
     (build-system emacs-build-system)
+    (native-inputs `(("texinfo" ,texinfo)))
     (home-page "https://github.com/emacs-evil/evil")
     (synopsis "Extensible Vi layer for Emacs")
     (description
@@ -9009,8 +10053,8 @@ extensions.")
     (license license:gpl3+)))
 
 (define-public emacs-evil-collection
-  (let ((commit "c68aed6a9694836602ada224160bc5b4c0a37919")
-        (revision "15"))
+  (let ((commit "323bb7d85848a6a142ae14f39c3a073ce6423e20")
+        (revision "19"))
     (package
       (name "emacs-evil-collection")
       (version (git-version "0.0.3" revision commit))
@@ -9022,7 +10066,7 @@ extensions.")
                 (file-name (git-file-name name version))
                 (sha256
                  (base32
-                  "1xhrzl0vy540a572f9fnh5a039bpqsrkv0kh6bqw0rki70w7x0xx"))))
+                  "1pf51kj93i1k2ivkjgwcvgxj8shrl8h7rkg578jl4k4awargf0nz"))))
       (build-system emacs-build-system)
       (propagated-inputs
        `(("emacs-evil" ,emacs-evil)
@@ -9036,10 +10080,35 @@ Emacs that Evil does not cover properly by default, such as @code{help-mode},
 @code{M-x calendar}, Eshell and more.")
       (license license:gpl3+))))
 
+(define-public emacs-evil-goggles
+  (let ((commit "08a22058fd6a167f9f1b684c649008caef571459")
+        (version "0.0.1")
+        (revision "0"))
+    (package
+      (name "emacs-evil-goggles")
+      (version (git-version version revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/edkolev/evil-goggles")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1p3vjrij63v9nrcyj3b5jsqzv9y7dgv9i1inx1q7x3s90vndavac"))))
+      (build-system emacs-build-system)
+      (propagated-inputs
+       `(("emacs-evil" ,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
+being deleted, changed, yanked, or pasted when using evil commands")
+      (license license:gpl3+))))
+
 (define-public emacs-goto-chg
-  (let ((commit "1829a13026c597e358f716d2c7793202458120b5")
+  (let ((commit "2af612153bc9f5bed135d25abe62f46ddaa9027f")
         (version "1.7.3")
-        (revision "1"))
+        (revision "2"))
     (package
       (name "emacs-goto-chg")
       (version (git-version version revision commit))
@@ -9052,10 +10121,8 @@ Emacs that Evil does not cover properly by default, such as @code{help-mode},
          (file-name (git-file-name name version))
          (sha256
           (base32
-           "1y603maw9xwdj3qiarmf1bp13461f9f5ackzicsbynl0i9la3qki"))))
+           "1awmvihqgw6kspx192bcp9xp56xqbma90wlhxfxmidx3bvxghwpv"))))
       (build-system emacs-build-system)
-      (propagated-inputs
-       `(("emacs-undo-tree" ,emacs-undo-tree)))
       (home-page "https://github.com/emacs-evil/goto-chg")
       (synopsis "Go to the last change in the Emacs buffer")
       (description
@@ -9466,14 +10533,14 @@ distribution, primarily targeting Clojure users")
 (define-public emacs-orgalist
   (package
     (name "emacs-orgalist")
-    (version "1.12")
+    (version "1.13")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://elpa.gnu.org/packages/"
                            "orgalist-" version ".el"))
        (sha256
-        (base32 "1hwm7j0hbv2pg9w885ky1c9qga3grcfq8v216jv2ivkw8xzavysd"))))
+        (base32 "1wkxc5kcy1g4lx6pd78pa8znncjyl9zyhsvz7wpp56qmhq4hlav3"))))
     (build-system emacs-build-system)
     (home-page "https://elpa.gnu.org/packages/orgalist.html")
     (synopsis "Manage Org-like lists in non-Org buffers")
@@ -9531,24 +10598,36 @@ passive voice.")
     (name "emacs-org")
     ;; emacs-org-contrib inherits from this package.  Please update it as
     ;; well.
-    (version "9.3.6")
+    (version "9.4.4")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://elpa.gnu.org/packages/org-" version ".tar"))
        (sha256
-        (base32 "0jwpgfzjvf1hd3mx582pw86hysdryaqzp69hk6azi9kmq4bzk87d"))))
+        (base32 "05ma8n6hr10323d85ay8ai0xrpc9q2m93n8avqh7j9fmmb3bhr0b"))))
     (build-system emacs-build-system)
     (arguments
      `(#:phases
        (modify-phases %standard-phases
+         ;; FIXME: The elpa tarball upstream does not include the version
+         ;; number, remove this phase when this is fixed.
+         ;; https://lists.gnu.org/archive/html/emacs-orgmode/2020-12/msg00729.html
+         (add-after 'unpack 'fix-org-version
+           (lambda _
+             (substitute* "org-version.el"
+               (("org-release \"\"")
+                (string-append "org-release \"" ,version "\"")))
+             #t))
          (add-after 'install 'install-documentation
            (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-dir)
-               (install-file "orgcard.pdf" doc-dir))
+               (install-file "org.info" info-dir)
+               (install-file "orgguide.info" info-dir)
+               ;; XXX: "orgcard.pdf" is not built in Org 9.4.4.
+               ;; (install-file "orgcard.pdf" doc-dir)
+               )
              #t)))))
     (home-page "https://orgmode.org/")
     (synopsis "Outline-based notes management and organizer")
@@ -9562,14 +10641,18 @@ programming and reproducible research.")
   (package
     (inherit emacs-org)
     (name "emacs-org-contrib")
-    (version "20200213")
+    (version "20201222")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://orgmode.org/elpa/"
                            "org-plus-contrib-" version ".tar"))
        (sha256
-        (base32 "0g6rrrwplrifz4ip0jg638m4kvpvdg03hwnyghd813w0lm935mh5"))))
+        (base32 "1pa8h5dpi5yj3j7v0aaby8sjwxvmgnbip2ilyl5pac1rlbz0jn40"))
+       ;; ob-sclang.el is packaged separately to avoid the dependency on
+       ;; SuperCollider and qtwebengine.
+       (modules '((guix build utils)))
+       (snippet '(begin (delete-file "ob-sclang.el") #t))))
     (arguments
      `(#:modules ((guix build emacs-build-system)
                   (guix build utils)
@@ -9596,8 +10679,7 @@ programming and reproducible research.")
     (propagated-inputs
      `(("arduino-mode" ,emacs-arduino-mode)
        ("cider" ,emacs-cider)
-       ("org" ,emacs-org)
-       ("scel" ,emacs-scel)))
+       ("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.
@@ -9605,6 +10687,75 @@ lists, and project planning with a fast and effective plain-text system.
 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-pretty-table
+  ;; There is no release yet.
+  (let ((commit "1331c600b83d95b28730b1bfcb48369ac1cf12ef")
+        (revision "0"))
+    (package
+      (name "emacs-org-pretty-table")
+      (version (git-version "0.0.1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/Fuco1/org-pretty-table")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0yvqxh66y400n2n5ykmb1zrzd80bakffpwn6nmf37728x4cj8krh"))))
+      (build-system emacs-build-system)
+      (home-page "https://github.com/Fuco1/org-pretty-table")
+      (synopsis "Make tables in Org mode and OrgTbl mode prettier")
+      (description
+       "This package displays tables in Org mode and OrgTbl mode using Unicode
+characters.")
+      (license license:gpl3+))))
+
+(define-public emacs-ob-sclang
+  (package
+    (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)))
+    (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}
+package.")))
+
+(define-public emacs-org-edna
+  (package
+    (name "emacs-org-edna")
+    (version "1.1.2")
+    (source (origin
+              (method bzr-fetch)
+              (uri (bzr-reference
+                    (url "bzr://bzr.savannah.nongnu.org/org-edna-el")
+                    (revision version)))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32
+                "01dblddgx0yid5hrgl4swbr4grhv057kfbdy122wihzqpsrgq86n"))))
+    (build-system emacs-build-system)
+    (home-page "https://savannah.nongnu.org/projects/org-edna-el/")
+    (synopsis "Manage Org task dependencies")
+    (description "This package provides an extensible means of specifying
+conditions which must be fulfilled before a task can be completed and actions
+to take once it is.  Org Edna runs when either the BLOCKER or TRIGGER
+properties are set on a heading, and when it is changing from a TODO state to
+a DONE state.")
+    (license license:gpl3+)))
+
 (define-public emacs-flx
   (package
     (name "emacs-flx")
@@ -9652,6 +10803,31 @@ Flx has support for ido (interactively do things) through flx-ido.")
 known loosely as deftheme.  Many mode-specific customizations are included.")
     (license license:gpl3+)))
 
+(define-public emacs-dart-mode
+  (package
+    (name "emacs-dart-mode")
+    (version "1.0.5")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/bradyt/dart-mode")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1qmdlwjmmqyyb65sqvfpygifai5m0llc815vp0jqwp8ldd8ls172"))))
+    (build-system emacs-build-system)
+    (propagated-inputs
+     `(("emacs-dash" ,emacs-dash)
+       ("emacs-flycheck" ,emacs-flycheck)
+       ("emacs-s" ,emacs-s)))
+    (home-page "https://github.com/bradyt/dart-mode")
+    (synopsis "Emacs mode for the Dart programming language")
+    (description
+     "Dart mode is an Emacs major mode for editing Dart files.  It provides
+basic syntax highlighting and indentation.")
+    (license license:gpl3+)))
+
 (define-public emacs-danneskjold-theme
   (let* ((commit "8733d2fe8743e8a01826ea6d4430ef376c727e57")
          (revision "1"))
@@ -9897,6 +11073,28 @@ provides functions to convert hash tables from and to alists and plists.")
 you to deal with multiple log levels.")
     (license license:gpl3+)))
 
+(define-public emacs-gn-mode
+  (package
+    (name "emacs-gn-mode")
+    (version "0.4.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/lashtear/gn-mode")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0dz5kgzbgsssr38z2kg6m915cvfys42ag1k42bsra3la2pixywfx"))))
+    (build-system emacs-build-system)
+    (home-page "https://github.com/lashtear/gn-mode")
+    (synopsis "Emacs major mode for editing GN (ninja generator) config files")
+    (description
+     "GN mode is a major mode for editing @acronym{GN,Ninja Generator} config
+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-gntp
   (package
     (name "emacs-gntp")
@@ -10114,27 +11312,17 @@ type an abbreviation and automatically expand it into function templates.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "18pcnjnqvcky6i49p38vy3ms5xiisn27vy47pc3vsgr3r2n87mqb"))))
-    (build-system trivial-build-system)
+    (build-system emacs-build-system)
     (arguments
-     `(#:modules ((guix build utils))
-       #:builder
-       (begin
-         (use-modules (guix build utils))
-         (let* ((source (assoc-ref %build-inputs "source"))
-                (out (assoc-ref %outputs "out"))
-                (snippet-dir
-                 (string-append out "/share/emacs/yasnippet-snippets/")))
-           (with-directory-excursion source
-             (mkdir-p snippet-dir)
-             (copy-recursively "snippets" snippet-dir)))
-         #t)))
+     `(#:include (cons* "^snippets\\/" %default-include)))
+    (propagated-inputs
+     `(("emacs-s" ,emacs-s)             ;for snippets/rjsx-mode/.yas-setup.el
+       ("emacs-yasnippet" ,emacs-yasnippet)))
     (home-page "https://github.com/AndreaCrotti/yasnippet-snippets")
     (synopsis "Collection of YASnippet snippets for many languages")
-    (description
-     "Provides Andrea Crotti's collection of YASnippet snippets.  After installation,
-the snippets will be in \"~/.guix-profile/share/emacs/yasnippet-snippets/\".
-To make YASnippet aware of these snippets, add the above directory to
-@code{yas-snippet-dirs}.")
+    (description "This package provides an extensive collection of YASnippet
+snippets.  When this package is installed, the extra snippets it provides are
+automatically made available to YASnippet.")
     (license license:gpl3+)))
 
 (define-public emacs-helm-c-yasnippet
@@ -10164,46 +11352,42 @@ Yasnippet.")
       (license license:gpl2+))))
 
 (define-public emacs-helm-system-packages
-  ;; There won't be a new release after 1.10.1 until
-  ;; https://github.com/emacs-helm/helm-system-packages/issues/25 is fixed,
-  ;; and latest commits fix import issues with Guix.
-  (let ((commit "6572340f41611ef1991e9612d34d59130957ee4a"))
-    (package
-      (name "emacs-helm-system-packages")
-      (version (git-version "1.10.1" "1" commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://github.com/emacs-helm/helm-system-packages")
-                      (commit commit)))
-                (file-name (git-file-name name version))
-                (sha256
-                 (base32
-                  "0mcz6vkpk12vsyd37xv1rbg4v442sxc3lj8yxskqg294xbdaclz4"))))
-      (build-system emacs-build-system)
-      (inputs
-       `(("recutils" ,recutils)))
-      (propagated-inputs
-       `(("emacs-helm" ,emacs-helm)))
-      (arguments
-       `(#:phases
-         (modify-phases %standard-phases
-           (add-after 'unpack 'configure
-             (lambda* (#:key inputs outputs #:allow-other-keys)
-               (let ((recutils (assoc-ref inputs "recutils")))
-                 ;; Specify the absolute file names of the various
-                 ;; programs so that everything works out-of-the-box.
-                 (substitute* "helm-system-packages-guix.el"
-                   (("recsel") (string-append recutils "/bin/recsel")))))))))
-      (home-page "https://github.com/emacs-helm/helm-system-packages")
-      (synopsis "Helm System Packages is an interface to your package manager")
-      (description "List all available packages in Helm (with installed
+  (package
+    (name "emacs-helm-system-packages")
+    (version "1.10.2")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/emacs-helm/helm-system-packages")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "13a8jpj4wwm0yjv8hnsizgjf8wi3r2ap87lyvw7g4c7snp2dydwa"))))
+    (build-system emacs-build-system)
+    (inputs
+     `(("recutils" ,recutils)))
+    (propagated-inputs
+     `(("emacs-helm" ,emacs-helm)))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'configure
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let ((recutils (assoc-ref inputs "recutils")))
+               ;; Specify the absolute file names of the various
+               ;; programs so that everything works out-of-the-box.
+               (substitute* "helm-system-packages-guix.el"
+                 (("recsel") (string-append recutils "/bin/recsel")))))))))
+    (home-page "https://github.com/emacs-helm/helm-system-packages")
+    (synopsis "Helm System Packages is an interface to your package manager")
+    (description "List all available packages in Helm (with installed
 packages displayed in their own respective face).  Fuzzy-search, mark and
 execute the desired action over any selections of packages: Install,
 uninstall, display packages details (in Org Mode) or insert details at point,
 find files owned by packages...  And much more, including performing all the
 above over the network.")
-      (license license:gpl3+))))
+    (license license:gpl3+)))
 
 (define-public emacs-helm-org-rifle
   (package
@@ -10440,7 +11624,7 @@ highlights quasi-quoted expressions.")
 (define-public emacspeak
   (package
     (name "emacspeak")
-    (version "52.0")
+    (version "53.0")
     (source
      (origin
        (method url-fetch)
@@ -10448,17 +11632,13 @@ highlights quasi-quoted expressions.")
              "https://github.com/tvraman/emacspeak/releases/download/"
              version "/emacspeak-" version ".tar.bz2"))
        (sha256
-        (base32 "0x5b0s38r5ih2lk7f5hasi9arrgxlmmq5jaddadbxi8in2gw2jzl"))))
+        (base32 "0lasj4ggsh93ingf46n16wxfx5zzxvr1igikbmdqlz3i99j331gs"))))
     (build-system gnu-build-system)
     (arguments
      '(#:make-flags (list (string-append "prefix="
                                          (assoc-ref %outputs "out")))
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'delete-broken-symlink
-           (lambda _
-             (delete-file "lisp/sudoku.el")
-             #t))
          (replace 'configure
            (lambda _
              (setenv "SHELL" (which "sh"))
@@ -10523,14 +11703,14 @@ information via a consistent and well-integrated user interface.")
 (define-public emacs-adaptive-wrap
   (package
     (name "emacs-adaptive-wrap")
-    (version "0.7")
+    (version "0.8")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://elpa.gnu.org/packages/"
                            "adaptive-wrap-" version ".el"))
        (sha256
-        (base32 "10fb8gzvkbnrgzv28n1rczs03dvapr7rvi0kd73j6yf1zg2iz6qp"))))
+        (base32 "1gs1pqzywvvw4prj63vpj8abh8h14pjky11xfl23pgpk9l3ldrb0"))))
     (build-system emacs-build-system)
     (home-page "https://elpa.gnu.org/packages/adaptive-wrap.html")
     (synopsis "Smart line-wrapping with wrap-prefix")
@@ -10545,7 +11725,7 @@ actually changing the buffer's text.")
 (define-public emacs-diff-hl
   (package
     (name "emacs-diff-hl")
-    (version "1.8.7")
+    (version "1.8.8")
     (source
      (origin
        (method git-fetch)
@@ -10554,7 +11734,7 @@ actually changing the buffer's text.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0i7x6qgr3nydcwhw72sbc8z9x9dfhgkf0dqj9nakvx36vn1bblbq"))))
+        (base32 "075klzf66z1rvhpxv4j694pdkmi7f4fpw6c8q4ncz0h4y5wdbl8w"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/dgutov/diff-hl")
     (synopsis
@@ -10588,7 +11768,7 @@ abbreviation of the mode line displays (lighters) of minor modes.")
 (define-public emacs-use-package
   (package
     (name "emacs-use-package")
-    (version "2.4")
+    (version "2.4.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -10597,7 +11777,7 @@ abbreviation of the mode line displays (lighters) of minor modes.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1b7mjjh0d6fmkkd9vyj64vca27xqhga0nvyrrcqxpqjn62zq046y"))))
+                "088kl3bml0rs5bkfymgzr15ram9qvy66h1kaisrbkynh0yxvf8g9"))))
     (build-system emacs-build-system)
     (native-inputs
      `(("texinfo" ,texinfo)))
@@ -10631,14 +11811,14 @@ performance-oriented and tidy.")
 (define-public emacs-leaf
   (package
     (name "emacs-leaf")
-    (version "4.2.5")
+    (version "4.3.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://elpa.gnu.org/packages/"
                            "leaf-" version ".tar"))
        (sha256
-        (base32 "0y78mp4c2gcwp7dc87wlx3r4hfmap14vvx8gkjc9nkf99qavpnkw"))))
+        (base32 "190sfnnii9jnj8amjkdabd8w9k2xyalhg4h488a5gzjxdzz2s6zi"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/conao3/leaf.el")
     (synopsis "Simplify your init.el configuration, extended use-package")
@@ -10827,6 +12007,59 @@ constructs.")
 configuration of Chinese fonts.")
     (license license:gpl2+)))
 
+(define-public emacs-boon
+  (package
+    (name "emacs-boon")
+    (version "1.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/jyp/boon")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1ss9bjs34q41pa0g0nbdzd8fwpjcbd2239rdlx5aykfv9v0b8j77"))))
+    (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)))
+    (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
+ergonomics and modularity.  Spacial allocation of keys comes first, mnemonics
+second.  Most common operations are mapped to the home row, common editing
+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-csharp-mode
+  (package
+    (name "emacs-csharp-mode")
+    (version "0.10.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/josteink/csharp-mode")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0vwkbla2gkfa9dzxfvrvr7hd2z16769iwbycl7k6l701dnwli1fw"))))
+    (build-system emacs-build-system)
+    (home-page "https://github.com/josteink/csharp-mode")
+    (synopsis "Major mode for C# code")
+    (description
+     "This is a C# editing mode for Emacs, based on CC mode.  It handles
+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+)))
+
 (define-public emacs-php-mode
   (package
     (name "emacs-php-mode")
@@ -10894,7 +12127,7 @@ function to be used by other frontend programs.")
     (home-page "https://github.com/tumashu/pyim-basedict")
     (synopsis "Input method dictionary of pyim")
     (description "Pyim-basedict is the default pinyin input method dictionary,
-containing words from the rime project.")
+containing words from the Rime project.")
     (license license:gpl2+)))
 
 (define-public emacs-pyim
@@ -10926,23 +12159,24 @@ and cangjie.")
 (define-public emacs-posframe
   (package
     (name "emacs-posframe")
-    (version "0.7.0")
+    (version "0.8.4")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://elpa.gnu.org/packages/"
-                           "posframe-" version ".el"))
+                           "posframe-" version ".tar"))
        (sha256
-        (base32 "1kwl83jb5k1hnx0s2qw972v0gjqbbvk4sdcdb1qbdxsyw36sylc9"))))
+        (base32 "1sn35ibp5y4y80l1xm4b8i94ld953a9gbkk99zqd9mrq9bwjyhdp"))))
     (build-system emacs-build-system)
     ;; emacs-minimal does not include the function font-info.
     (arguments
      `(#:emacs ,emacs))
     (home-page "https://github.com/tumashu/posframe")
     (synopsis "Pop a posframe (a child frame) at point")
-    (description "@code{emacs-posframe} can pop a posframe at point.  A
-posframe is a child frame displayed within its root window's buffer.
-@code{emacs-posframe} is fast and works well with CJK languages.")
+    (description
+     "Posframe can pop a posframe at point.  A posframe is a child frame
+displayed within its root window's buffer.  Posframe is fast and works well
+with CJK languages.")
     (license license:gpl3+)))
 
 (define-public emacs-el2org
@@ -11130,6 +12364,25 @@ It should enable you to implement low-level X11 applications.")
 of XELB.")
     (license license:gpl3+)))
 
+(define-public emacs-xelb-no-x-toolkit
+  (package
+    (inherit emacs-xelb)
+    (name "emacs-xelb-no-x-toolkit")
+    (arguments
+     (substitute-keyword-arguments (package-arguments emacs-xelb)
+       ((#:emacs emacs) `,emacs-no-x-toolkit)))))
+
+(define-public emacs-exwm-no-x-toolkit
+  (package
+    (inherit emacs-exwm)
+    (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)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments emacs-exwm)
+       ((#:emacs emacs) `,emacs-no-x-toolkit)))))
+
 (define-public emacs-switch-window
   (package
     (name "emacs-switch-window")
@@ -11257,36 +12510,16 @@ and supports the use of a mouse.")
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://github.com/bruceravel/gnuplot-mode")
+             (url "https://github.com/emacsorphanage/gnuplot-mode")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
         (base32 "0bwri3cvm2vr27kyqkrddm28fs08axnd4nm9amfgp54xp20bn4yn"))))
-    (build-system gnu-build-system)
-    (native-inputs `(("emacs" ,emacs-minimal)))
-    (arguments
-     (let ((elisp-dir "/share/emacs/site-lisp"))
-       `(#:modules ((guix build gnu-build-system)
-                    (guix build utils)
-                    (guix build emacs-utils))
-         #:imported-modules (,@%gnu-build-system-modules
-                             (guix build emacs-utils))
-         #:configure-flags
-         (list (string-append "EMACS=" (assoc-ref %build-inputs "emacs")
-                              "/bin/emacs")
-               (string-append "--with-lispdir=" %output ,elisp-dir))
-         #:phases
-         (modify-phases %standard-phases
-           (add-after 'install 'generate-autoloads
-             (lambda* (#:key outputs #:allow-other-keys)
-               (emacs-generate-autoloads
-                "gnuplot"
-                (string-append (assoc-ref outputs "out") ,elisp-dir))
-               #t))))))
-    (home-page "https://github.com/bruceravel/gnuplot-mode")
-    (synopsis "Emacs major mode for interacting with gnuplot")
-    (description "@code{emacs-gnuplot} is an emacs major mode for interacting
-with gnuplot.")
+    (build-system emacs-build-system)
+    (home-page "https://github.com/emacsorphanage/gnuplot-mode")
+    (synopsis "Emacs major mode for interacting with Gnuplot")
+    (description
+     "Emacs Gnuplot is an Emacs major mode for interacting with Gnuplot.")
     (license license:gpl2+)))
 
 (define-public emacs-transpose-frame
@@ -11332,7 +12565,7 @@ pressed simultaneously or a single key quickly pressed twice.")
 (define-public emacs-evil-surround
   (package
     (name "emacs-evil-surround")
-    (version "1.1.0")
+    (version "1.1.1")
     (source
      (origin
        (method git-fetch)
@@ -11341,7 +12574,7 @@ pressed simultaneously or a single key quickly pressed twice.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "15v2spg5rhddr97pxjfvxj36sh7knp753a9qpw8v5zjnp65kf2kn"))))
+        (base32 "1gfgmr4909m36gknprcam6q4rkcqfbi6w43ky7x6jnlmgb6mxggg"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-evil" ,emacs-evil)))
@@ -11435,17 +12668,18 @@ Emacs.")
 (define-public emacs-eglot
   (package
     (name "emacs-eglot")
-    (version "1.6")
+    (version "1.7")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://elpa.gnu.org/packages/"
                            "eglot-" version ".tar"))
        (sha256
-        (base32 "15hd6sx7qrpvlvhwwkcgdiki8pswwf4mm7hkm0xvznskfcp44spx"))))
+        (base32 "1zvs144hxq2mmq1h0ynx9hy7yyccb46f3pjg9mgq8v9cw5y678vk"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-jsonrpc" ,emacs-jsonrpc)))
+     `(("emacs-jsonrpc" ,emacs-jsonrpc)
+       ("emacs-project" ,emacs-project)))
     (home-page "https://github.com/joaotavora/eglot")
     (synopsis "Client for Language Server Protocol (LSP) servers")
     (description
@@ -11531,7 +12765,7 @@ running tests easier.")
 (define-public emacs-disable-mouse
   (package
     (name "emacs-disable-mouse")
-    (version "0.2")
+    (version "0.3")
     (source
      (origin
        (method git-fetch)
@@ -11540,7 +12774,7 @@ running tests easier.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1v1y5hf6k6ng7xsvgb27nh740d14m6l4krr0paccda8zgm4mw357"))))
+        (base32 "0l6mai68ns3qw3rlvjvzsnqwdy7bxqiy0vdwflq0l1plxb1vazyc"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/purcell/disable-mouse")
     (synopsis "Disable mouse commands globally")
@@ -11642,14 +12876,14 @@ highlighting.")
 (define-public emacs-jsonrpc
   (package
     (name "emacs-jsonrpc")
-    (version "1.0.12")
+    (version "1.0.14")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://elpa.gnu.org/packages/"
                            "jsonrpc-" version ".el"))
        (sha256
-        (base32 "0cqp05awikbrn88ifld3vwnv6cxgmr83wlnsvxw8bqb96djz70ad"))))
+        (base32 "069l0sqkambam4ikj9id36kdw1jdjna8v586d51m64hiz96rmvm6"))))
     (build-system emacs-build-system)
     (home-page "http://elpa.gnu.org/packages/jsonrpc.html")
     (synopsis "JSON-RPC library")
@@ -11660,10 +12894,33 @@ JSONRPC is a generic Remote Procedure Call protocol designed around
 JSON objects.")
     (license license:gpl3+)))
 
+(define-public emacs-jsonnet-mode
+  (package
+    (name "emacs-jsonnet-mode")
+    (version "0.1.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/tminor/jsonnet-mode")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0vi7415n90d1z2ww1hld0gdp6v7z4rd6f70h476dp2x4hydk293i"))))
+    (build-system emacs-build-system)
+    (propagated-inputs
+     `(("emacs-dash" ,emacs-dash)))
+    (home-page "https://github.com/mgyucht/jsonnet-mode")
+    (synopsis "Major mode for editing jsonnet files")
+    (description "This package provides syntax highlighting, indenting,
+formatting, and utility methods for jsonnet files.")
+    (license license:gpl3+)))
+
 (define-public emacs-restclient
-  (let ((commit "422ee8d8b077dffe65706a0f027ed700b84746bc")
+  (let ((commit "ac8aad6c6b9e9d918062fa3c89c22c2f4ec48bc3")
         (version "0")
-        (revision "2"))               ;Guix package revision,
+        (revision "3"))               ;Guix package revision,
                                         ;upstream doesn't have official releases
     (package
       (name "emacs-restclient")
@@ -11675,11 +12932,12 @@ JSON objects.")
                       (commit commit)))
                 (sha256
                  (base32
-                  "067nin7vxkdpffxa0q61ybv7szihhvpdinivmci9qkbb86rs9kkz"))
+                  "1a2c7xzy7rsan1zcdskia6m7n6j29xacfkqjlfdhzk6rr1bpzkwk"))
                 (file-name (git-file-name name version))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-helm" ,emacs-helm)))
+       `(("emacs-helm" ,emacs-helm)
+         ("emacs-jq-mode" ,emacs-jq-mode)))
       (home-page "https://github.com/pashky/restclient.el")
       (synopsis "Explore and test HTTP REST webservices")
       (description
@@ -11688,6 +12946,26 @@ from within Emacs.  Restclient runs queries from a plan-text query sheet,
 displays results pretty-printed in XML or JSON with @code{restclient-mode}")
       (license license:public-domain))))
 
+(define-public emacs-jq-mode
+  (package
+    (name "emacs-jq-mode")
+    (version "0.5.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/ljos/jq-mode")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0xk0if5i9cz4w06lx8v1vdm112pn1ybqgfw048sx15yyvfzgril1"))))
+    (build-system emacs-build-system)
+    (home-page "https://github.com/ljos/jq-mode")
+    (synopsis "Major mode for editing jq queries")
+    (description
+     "Jq mode is an Emacs major mode for editing jq-scripts.")
+    (license license:gpl3+)))
+
 (define-public emacs-whitespace-cleanup-mode
   (let ((commit "72427144b054b0238a86e1348c45d986b8830d9d")
         (revision "1"))
@@ -11752,8 +13030,8 @@ the actual transformations.")
       (license license:gpl2+))))
 
 (define-public emacs-dired-hacks
-  (let ((commit "886befe113fae397407c804f72c45613d1d43535")
-        (revision "2"))
+  (let ((commit "d1a2bda6aa8f890cb367297ed93aee6d3b5ba388")
+        (revision "3"))
     (package
       (name "emacs-dired-hacks")
       (version (git-version "0.0.1" revision commit))
@@ -11765,7 +13043,7 @@ the actual transformations.")
                 (file-name (git-file-name name version))
                 (sha256
                  (base32
-                  "1cvibg90ggyrivpjmcfprpi2fx7dpa68f8kzg08s88gw5ib75djl"))))
+                  "12m81a9kjhs4cyq3lym0vp5nx6z3sfnypyzrnia76x6rjvixjf6y"))))
       (build-system emacs-build-system)
       (propagated-inputs
        `(("emacs-dash" ,emacs-dash)
@@ -11796,8 +13074,8 @@ additions:
       (license license:gpl3+))))
 
 (define-public emacs-dired-sidebar
-  (let ((commit "21ccb6723bea69f2e2ca25998268d8a039f904cc")
-        (revision "1"))
+  (let ((commit "da77919081d9a4e73c2df63542353319381e4f89")
+        (revision "2"))
     (package
       (name "emacs-dired-sidebar")
       (home-page "https://github.com/jojojames/dired-sidebar")
@@ -11808,7 +13086,7 @@ additions:
                 (file-name (git-file-name name version))
                 (sha256
                  (base32
-                  "0mck4qk6srbbf8xnn2sg11j822z4ybxvgavvy402d5sli515i8ca"))))
+                  "05h56wdl2xvc8davnx83ypg20fl7wlks97cafa4r2yf141xjc05h"))))
       (build-system emacs-build-system)
       (propagated-inputs
        `(("emacs-dired-subtree" ,emacs-dired-hacks)))
@@ -11821,7 +13099,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.4.0")
+    (version "3.5.0")
     (source
      (origin
        (method git-fetch)
@@ -11830,7 +13108,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 "1ahgb7dqdc75farkl0fg0a6hvx2067gdvjq99cd3z2dz56km0p05"))))
+        (base32 "13lgjsm9pwgjsxg7lzc1c9sw2bzssxikfj6grnshqfll8kz8yr4r"))))
     (build-system emacs-build-system)
     (arguments
      `(#:tests? #t
@@ -11926,7 +13204,7 @@ when browsing files with Dired.")
 (define-public emacs-org-edit-latex
   (package
     (name "emacs-org-edit-latex")
-    (version "0.8.0")
+    (version "0.8.3")
     (source
      (origin
        (method git-fetch)
@@ -11935,18 +13213,16 @@ when browsing files with Dired.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0zcllyhx9n9vcr5w87h0hfz25v52lvh5fi717cb7mf3jh89zh842"))))
+        (base32 "1w0lyz71dq8x28ira4hig1b70bqn1dr53w3k5dgch9szcf6xa86y"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-auctex" ,emacs-auctex)
-       ;; The version of org in Emacs 25.2 is not sufficient, because the
-       ;; `org-latex-make-preamble' function is required.
        ("emacs-org" ,emacs-org)))
     (home-page "https://github.com/et2010/org-edit-latex")
-    (synopsis "Edit a latex fragment just like editing a src block")
-    (description "@code{emacs-org-edit-latex} is an extension for org-mode.
-It lets you edit a latex fragment in a dedicated buffer just like editing a
-src block.")
+    (synopsis "Edit a LaTeX fragment just like editing a source block")
+    (description
+     "Org Edit LaTeX is an extension for Org mode.  It lets you edit a LaTeX
+fragment in a dedicated buffer just like editing a source block.")
     (license license:gpl3+)))
 
 (define-public emacs-emamux
@@ -12017,31 +13293,29 @@ functions written in continuation-passing style.")
     (license license:gpl3+)))
 
 (define-public emacs-attrap
-  (let ((commit "18cd1f7832870a36c404e872fa83a271fe8e688d")
-        (revision "2"))
-    (package
-      (name "emacs-attrap")
-      (version (git-version "1.0" revision commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://github.com/jyp/attrap")
-                      (commit commit)))
-                (sha256
-                 (base32
-                  "078391949h0fgmshin8f79a1a595m06ig577rkgjqgngcp0d61l9"))
-                (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)))
-      (home-page "https://github.com/jyp/attrap")
-      (synopsis "Fix coding error at point")
-      (description "This package provides a command to fix the Flycheck error
+  (package
+    (name "emacs-attrap")
+    (version "1.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/jyp/attrap")
+             (commit version)))
+       (sha256
+        (base32 "0wqc7bqx9rvk8r7fd3x84h8p01v97s6w2jf29nnjb59xakwp22i7"))
+       (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)))
+    (home-page "https://github.com/jyp/attrap")
+    (synopsis "Fix coding error at point")
+    (description "This package provides a command to fix the Flycheck error
 at point.")
-      (license license:gpl3+))))
+    (license license:gpl3+)))
 
 (define-public emacs-git-messenger
   (package
@@ -12203,7 +13477,7 @@ the latest versions of Idris 1.")
 (define-public emacs-browse-at-remote
   (package
     (name "emacs-browse-at-remote")
-    (version "0.10.0")
+    (version "0.14.0")
     (source
      (origin
        (method git-fetch)
@@ -12212,7 +13486,7 @@ the latest versions of Idris 1.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0vhia7xmszcb3lxrb8wh93a3knjfzj48h8nhj4fh8zj1pjz6args"))))
+        (base32 "0bx4ns0jb0sqrjk1nsspvl3mhz3n12925azf7brlwb1vcgnji09v"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-f" ,emacs-f)
@@ -12389,14 +13663,14 @@ database of references on life sciences.")
 (define-public emacs-websocket
   (package
     (name "emacs-websocket")
-    (version "1.12")
+    (version "1.13.1")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://elpa.gnu.org/packages/"
                            "websocket-" version ".tar"))
        (sha256
-        (base32 "0ap4z80c6pzpb69wrx0hsvwzignxmd2b9xy974by9gf5xm2wpa8w"))))
+        (base32 "1x664zswas0fpml7zaj59zy97avrm49zb80zd69rlkqzz1m45psc"))))
     (build-system emacs-build-system)
     (home-page "https://elpa.gnu.org/packages/websocket.html")
     (synopsis "Emacs WebSocket client and server")
@@ -12410,14 +13684,14 @@ write applications that use WebSockets, and is not useful by itself.")
 (define-public emacs-oauth2
   (package
     (name "emacs-oauth2")
-    (version "0.13")
+    (version "0.15")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://elpa.gnu.org/packages/"
                            "oauth2-" version ".el"))
        (sha256
-        (base32 "0y5nbdwxz2hfr09xgsqgyv60vgx0rsaisibcpkz00klvgg26w33r"))))
+        (base32 "0ij17g6i8d4cyzc8v6sy2qglwhzd767331gavll6d507krdh3ca3"))))
     (build-system emacs-build-system)
     (home-page "https://elpa.gnu.org/packages/oauth2.html")
     (synopsis "OAuth 2.0 authorization protocol implementation")
@@ -12431,6 +13705,28 @@ needs to be refreshed, the code handles it automatically and stores the new
 value of the access token.")
     (license license:gpl3+)))
 
+(define-public emacs-auth-source-xoauth2
+  (package
+    (name "emacs-auth-source-xoauth2")
+    (version "1.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/ccrusius/auth-source-xoauth2")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0nl859csl8xcd6ybpjj15ph8l8fxwkwf45kbylss68alkyf1rl3v"))))
+    (build-system emacs-build-system)
+    (home-page "https://github.com/ccrusius/auth-source-xoauth2")
+    (synopsis "XOAuth2 authentication capabilities for Emacs auth-source")
+    (description
+     "This package adds XOAuth2 authentication capabilities to Emacs
+auth-source.  This integration requires some preliminary work on the users’
+part, which includes creating tokens.")
+    (license license:asl2.0)))
+
 (define-public emacs-circe
   (package
     (name "emacs-circe")
@@ -12522,19 +13818,49 @@ through them using @key{C-c C-SPC}.")
 messaging service.")
       (license license:gpl3+))))
 
+(define-public emacs-helm-slack
+  (let ((commit "465f6220f3f5bee4d95492991fca1290c89534eb")
+        (revision "1"))
+    (package
+      (name "emacs-helm-slack")
+      (version (git-version "0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/yuya373/helm-slack")
+                      (commit commit)))
+                (file-name (git-file-name name commit))
+                (sha256
+                 (base32
+                  "0p1s1kl8v68qjprqkf034cz911qzbqxbscqgpn0c3mbm3yfx81f7"))))
+      (build-system emacs-build-system)
+      (arguments
+       `(#:phases
+         (modify-phases %standard-phases
+           ;; HOME needs to exist for source compilation.
+           (add-before 'build 'set-HOME
+             (lambda _ (setenv "HOME" "/tmp") #t)))))
+      (propagated-inputs `(("emacs-slack", 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
+Slack client.")
+      (license license:gpl3+))))
+
+
 (define-public emacs-bash-completion
   (package
    (name "emacs-bash-completion")
-   (version "2.1.0")
+   (version "3.1.0")
    (source
     (origin
       (method git-fetch)
       (uri (git-reference
             (url "https://github.com/szermatt/emacs-bash-completion")
-            (commit version)))
+            (commit (string-append "v" version))))
       (file-name (git-file-name name version))
       (sha256
-       (base32 "1a1wxcqzh0javjmxwi3lng5i99xiylm8lm04kv4q1lh9bli6vmv0"))))
+       (base32 "11j2k3irixp47r2iglxdmjphahqhgnxg98n2xwagwzyq99lsamj4"))))
    (inputs `(("bash" ,bash)))
    (build-system emacs-build-system)
    (arguments
@@ -12579,14 +13905,14 @@ let users kill or mark things easily.")
 (define-public emacs-csv-mode
   (package
     (name "emacs-csv-mode")
-    (version "1.12")
+    (version "1.14")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://elpa.gnu.org/packages/"
                            "csv-mode-" version ".tar"))
        (sha256
-        (base32 "0bya12smlrzwv4cbcmch4kg1fazp4k0ndrh1z17ix9p8c14d0v1j"))))
+        (base32 "1jz4134pk8dwzsqih9wybx4l9yl244cgcilw8rdnnqmm8i6vxgrp"))))
     (build-system emacs-build-system)
     (home-page "https://elpa.gnu.org/packages/csv-mode.html")
     (synopsis "Major mode for editing comma/char separated values")
@@ -12598,7 +13924,7 @@ in a generalized CSV (character-separated values) format.")
 (define-public emacs-transmission
   (package
     (name "emacs-transmission")
-    (version "0.12.1")
+    (version "0.12.2")
     (source
      (origin
        (method git-fetch)
@@ -12607,7 +13933,7 @@ in a generalized CSV (character-separated values) format.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0kvg2gawsgy440x1fsl2c4pkxwp3zirq9rzixanklk0ryijhd3ry"))))
+        (base32 "16bn8y2sd7kzihp8bxh4vyay16y91q3yc0gcd0bzywcx3hijqlfc"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/holomorph/transmission")
     (synopsis "Emacs interface to a Transmission session")
@@ -12628,16 +13954,16 @@ contexts.
 (define-public emacs-polymode
   (package
     (name "emacs-polymode")
-    (version "0.2")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://github.com/polymode/polymode")
-                    (commit (string-append "v" version))))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "04v0gnzfsjb50bgly6kvpryx8cyzwjaq2llw4qv9ijw1l6ixmq3b"))))
+    (version "0.2.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/polymode/polymode")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "18ssl2h861dm2jkd3df6wkfr48p8zk337dbvpq5522kia7fq1lbn"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/polymode/polymode")
     (synopsis "Framework for multiple Emacs modes based on indirect buffers")
@@ -12650,38 +13976,84 @@ literate programming tools for exporting, weaving and tangling.")
     (license license:gpl3+)))
 
 (define-public emacs-polymode-ansible
-  (let ((commit "b26094d029e25dc797b94254f797e7807a57e4c8"))
+  (package
+    (name "emacs-polymode-ansible")
+    (version "0.3.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://gitlab.com/mavit/poly-ansible")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (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)))
+    (properties '((upstream-name . "poly-ansible")))
+    (home-page "https://gitlab.com/mavit/poly-ansible/")
+    (synopsis "Polymode for Ansible - Jinja2 in YAML")
+    (description
+     "Edit YAML files for Ansible containing embedded Jinja2 templating.")
+    (license license:gpl3+)))
+
+(define-public emacs-polymode-markdown
+  (package
+    (name "emacs-polymode-markdown")
+    (version "0.2.2")
+    (home-page "https://github.com/polymode/poly-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 "1q4qq0ql08hxkdrd2aal03560k612my7bvnfpfij3g432hn0p7v6"))))
+    (build-system emacs-build-system)
+    (propagated-inputs
+     `(("emacs-markdown-mode" ,emacs-markdown-mode)
+       ("emacs-polymode" ,emacs-polymode)))
+    (properties '((upstream-name . "poly-markdown")))
+    (synopsis "Polymode for Markdown mode")
+    (description
+     "This package allows editing source code blocks embedded in Markdown
+files using the major mode corresponding to each block.")
+    (license license:gpl3+)))
+
+(define-public emacs-powershell
+  ;; Tagged branch 0.1 is outdated (2015).
+  (let ((revision "0")
+        (commit "d1b3f95669343399f199f291ef76c09a0ede5e60"))
     (package
-      (name "emacs-polymode-ansible")
-      ;; No upstream version release yet.
-      (version (git-version "0.1" "1" commit))
+      (name "emacs-powershell")
+      (build-system emacs-build-system)
+      (version (git-version "0.3" revision commit))
       (source
        (origin
          (method git-fetch)
          (uri (git-reference
-               (url "https://gitlab.com/mavit/poly-ansible")
-               (commit commit)))
+	       (url "https://github.com/jschaf/powershell.el")
+	       (commit commit)))
          (file-name (git-file-name name version))
          (sha256
-          (base32
-           "055shddqibib3hx2ykwdz910nrqws40cd407mq946l2bf6v87gj6"))))
-      (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)))
-      (properties '((upstream-name . "poly-ansible")))
-      (home-page "https://gitlab.com/mavit/poly-ansible/")
-      (synopsis "Polymode for Ansible - Jinja2 in YAML")
+          (base32 "1cxhzaaig88zhylyycvb3849r85j1ijqklnh9zbqsfl2zhpb0g5c"))))
+      (home-page "https://github.com/jschaf/powershell.el")
+      (synopsis "Emacs mode for editing PowerShell scripts")
       (description
-       "Edit YAML files for Ansible containing embedded Jinja2 templating.")
+       "Powershell is an Emacs major mode for editing and running
+Microsoft PowerShell files.")
       (license license:gpl3+))))
 
 (define-public emacs-polymode-org
   (package
     (name "emacs-polymode-org")
-    (version "0.2")
+    (version "0.2.2")
     (source
      (origin
        (method git-fetch)
@@ -12690,8 +14062,7 @@ literate programming tools for exporting, weaving and tangling.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32
-         "04x6apjad4kg30456z1j4ipp64yjgkcaim6hqr6bb0rmrianqhck"))))
+        (base32 "1srnwcsn2bh8gqzxixkhffk7gbnk66kd4dgvxbnps5nxqc6v0qhc"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-polymode" ,emacs-polymode)))
@@ -12699,10 +14070,9 @@ literate programming tools for exporting, weaving and tangling.")
     (home-page "https://github.com/polymode/poly-org")
     (synopsis "Polymode definitions for Org mode buffers")
     (description
-     "Provides definitions for @code{emacs-polymode} to support
-@code{emacs-org} buffers.  Edit source blocks in an Org mode buffer using the
-native modes of the blocks' languages while remaining inside the primary Org
-buffer.")
+     "This package provides definitions for Polymode to support Org buffers.
+It edits source blocks in an Org buffer using the native modes of the blocks'
+languages while remaining inside the primary Org buffer.")
     (license license:gpl3+)))
 
 (define-public eless
@@ -12739,7 +14109,7 @@ buffer.")
     (description "@code{eless} provides a combination of Bash script
 and a minimal Emacs view-mode.
 
-Feautures:
+Features:
 
 @itemize
 @item Independent of a user’s Emacs config.
@@ -12760,7 +14130,7 @@ Feautures:
 (define-public emacs-evil-matchit
   (package
     (name "emacs-evil-matchit")
-    (version "2.3.4")
+    (version "2.3.10")
     (source
      (origin
        (method git-fetch)
@@ -12769,7 +14139,7 @@ Feautures:
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1nflkmx08n3ya5vaipy1xg19hnqcp6f7ddsx9xjh5gl6ix2iz0az"))))
+        (base32 "14nrc46290q54y7wv25251f2kqc0z8i9byl09xkgjijqldl9vdxa"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-evil" ,emacs-evil)))
@@ -12995,7 +14365,7 @@ Lisp.")
 (define-public emacs-esxml
   (package
     (name "emacs-esxml")
-    (version "0.3.4")
+    (version "0.3.5")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -13004,7 +14374,7 @@ Lisp.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "00vv8a75wdklygdyr4km9mc2ismxak69c45jmcny41xl44rp9x8m"))))
+                "16jn404vfmsvm12wrf8iczqlgdf2iycbxrvalvzxnm2gr5dfzp7z"))))
     (build-system emacs-build-system)
     (arguments
      `(#:phases
@@ -13040,7 +14410,7 @@ the format.")
 (define-public emacs-nov-el
   (package
     (name "emacs-nov-el")
-    (version "0.3.1")
+    (version "0.3.3")
     (source
      (origin
        (method git-fetch)
@@ -13049,7 +14419,8 @@ the format.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "13r7lvyyyv62m57m4s4xjs4qz2ckhqk6ib514px7qzc7mdzcz9i9"))))
+        (base32
+         "116klnjyggwfwvs9nqhpv97m00k63q6lg41ph41kywsqkfy42dlk"))))
     (build-system emacs-build-system)
     (arguments
      `(#:phases
@@ -13277,7 +14648,7 @@ directories of plain text notes, inspired by Notational Velocity.")
 (define-public emacs-anzu
   (package
     (name "emacs-anzu")
-    (version "0.62")
+    (version "0.64")
     (source
      (origin
        (method git-fetch)
@@ -13286,7 +14657,7 @@ directories of plain text notes, inspired by Notational Velocity.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1lzvc0ihcbplir4hqfyxfqpsd78arz15gk92kmq4f8ggbkl37fan"))))
+        (base32 "1jfn5nm6r68wa0gn2k2zy6sdq6c8shw8x04ylzzm5cw7zm60jw0n"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/syohex/emacs-anzu")
     (synopsis "Show number of matches in mode-line while searching")
@@ -13299,15 +14670,14 @@ Anzu.zim.")
 (define-public emacs-ascii-art-to-unicode
   (package
     (name "emacs-ascii-art-to-unicode")
-    (version "1.12")
+    (version "1.13")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://elpa.gnu.org/packages/ascii-art-to-unicode-"
                            version ".el"))
        (sha256
-        (base32
-         "1w9h2lyriafxj71r79774gh822cz8mry3gdfzyj6ym6v9mvqypna"))))
+        (base32 "1c0jva3amhl9c5xc5yzdpi58c8m1djym4ccj31z6wmakq7npy07p"))))
     (build-system emacs-build-system)
     (home-page "https://elpa.gnu.org/packages/ascii-art-to-unicode.html")
     (synopsis "ASCII to Unicode art converter for Emacs")
@@ -13478,8 +14848,7 @@ and can be consulted and modified.")
          ("emacs-dash" ,emacs-dash)
          ("emacs-flycheck" ,emacs-flycheck)
          ("emacs-let-alist" ,emacs-let-alist)
-         ("emacs-s" ,emacs-s)
-         ("emacs-seq" ,emacs-seq)))
+         ("emacs-s" ,emacs-s)))
       (home-page "https://github.com/purescript-emacs/psc-ide-emacs")
       (synopsis "Emacs integration for PureScript's psc-ide tool")
       (description
@@ -13540,31 +14909,6 @@ match and total match information in the mode-line in various search modes.")
        "This package provides an Emacs Lisp interface for PostgreSQL.")
       (license license:gpl3+))))
 
-(define-public emacs-cl-generic
-  (package
-    (name "emacs-cl-generic")
-    (version "0.3")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (string-append "https://elpa.gnu.org/packages/cl-generic-"
-                           version ".el"))
-       (sha256
-        (base32
-         "0vb338bhjpsnrf60qgxny4z5rjrnifahnrv9axd4shay89d894zq"))))
-    (build-system emacs-build-system)
-    ;; Byte compilation of the autoload file fails.
-    (arguments
-     `(#:phases (modify-phases %standard-phases
-                  (delete 'enable-autoloads-compilation))))
-    (home-page "https://elpa.gnu.org/packages/seq.html")
-    (synopsis
-     "Forward @code{cl-generic} compatibility for Emacs before version 25")
-    (description "This package provides a subset of the features of the
-@code{cl-generic} package introduced in Emacs-25, for use on previous
-@code{emacsen}.")
-    (license license:gpl3+)))
-
 (define-public emacs-finalize
   (package
   (name "emacs-finalize")
@@ -13579,8 +14923,6 @@ match and total match information in the mode-line in various search modes.")
       (sha256
         (base32 "1gvlm4i62af5jscwz0jccc8ra0grprxpg2rlq91d5nn8dn5lpy79"))))
   (build-system emacs-build-system)
-  (propagated-inputs
-    `(("emacs-cl-generic" ,emacs-cl-generic)))
   (home-page "https://github.com/skeeto/elisp-finalize")
   (synopsis "Finalizers for Emacs Lisp")
   (description
@@ -13672,7 +15014,7 @@ object @code{nil} corresponds 1:1 with @code{NULL} in the database.")
 (define-public emacs-emacsql-sqlite3
   (package
     (name "emacs-emacsql-sqlite3")
-    (version "1.0.1")
+    (version "1.0.2")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -13681,7 +15023,7 @@ object @code{nil} corresponds 1:1 with @code{NULL} in the database.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1yy9y27rckm776jnl2rh1fz3bh09690xwzq7102vlw7xkb9s7jhj"))))
+                "1jzvvsvi8jm2ws3y49nmpmwd3zlvf8j83rl2vwizd1aplwwdnmd6"))))
     (build-system emacs-build-system)
     (native-inputs
      `(("ert-runner" ,emacs-ert-runner)))
@@ -13709,57 +15051,53 @@ official @command{sqlite3} executable to access SQL database.")
     (license license:gpl3+)))
 
 (define-public emacs-closql
-  ;; Take a commit newer than 1.0.0 release because of Emacs upgrade to 26.3.
-  (let ((commit "70b98dbae53611d10a461d9b4a6f71086910dcef"))
-    (package
-      (name "emacs-closql")
-      (version (git-version "1.0.0" "1" commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/emacscollective/closql")
-               (commit commit)))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32
-           "1wvhrihg663f61yzc7f0vha2abjdnlwbk0gjcwakdfk1bhwf5ikh"))))
-      (build-system emacs-build-system)
-      (propagated-inputs
-       `(("emacs-emacsql" ,emacs-emacsql)))
-      (home-page "https://github.com/emacscollective/closql")
-      (synopsis "Store EIEIO objects using EmacSQL")
-      (description
-       "This package stores uniform EIEIO objects in an EmacSQL
+  (package
+    (name "emacs-closql")
+    (version "1.0.4")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/emacscollective/closql")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "06j0sc6dx8f34wc8i7dzkp8jwvwnrpnl8i93vpc1qw0ih0jwa2zh"))))
+    (build-system emacs-build-system)
+    (propagated-inputs
+     `(("emacs-emacsql" ,emacs-emacsql)))
+    (home-page "https://github.com/emacscollective/closql")
+    (synopsis "Store EIEIO objects using EmacSQL")
+    (description
+     "This package stores uniform EIEIO objects in an EmacSQL
 database.  SQLite is used as backend.  This library imposes some restrictions
 on what kind of objects can be stored; it isn't intended to store arbitrary
 objects.  All objects have to share a common superclass and subclasses cannot
 add any additional instance slots.")
-      (license license:gpl3))))
+    (license license:gpl3)))
 
 (define-public emacs-epkg
-  ;; The release version is to old for the current database scheme.
-  (let ((commit "432312b9583ed7b88ad9644fd1bf2183765a892e"))
-    (package
-      (name "emacs-epkg")
-      (version (git-version "3.0.0" "1" commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/emacscollective/epkg")
-               (commit commit)))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32
-           "0d882kahn7a0vri7a9r15lvmfx1zn2hsga6jfcc6jv0hqbswlb2k"))))
-      (build-system emacs-build-system)
-      (propagated-inputs
-       `(("emacs-closql" ,emacs-closql)
-         ("emacs-dash" ,emacs-dash)))
-      (home-page "https://emacsmirror.net")
-      (synopsis "Browse the Emacsmirror package database")
-      (description "This package provides access to a local copy of the
+  (package
+    (name "emacs-epkg")
+    (version "3.2.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/emacscollective/epkg")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1pxz611qb3m33r6343h0xhwqvvhjl131zyc2klplzgb23rkm8lk0"))))
+    (build-system emacs-build-system)
+    (propagated-inputs
+     `(("emacs-closql" ,emacs-closql)
+       ("emacs-dash" ,emacs-dash)))
+    (home-page "https://emacsmirror.net")
+    (synopsis "Browse the Emacsmirror package database")
+    (description "This package provides access to a local copy of the
 Emacsmirror package database.  It provides low-level functions for querying
 the database and a @file{package.el} user interface for browsing the database.
 Epkg itself is not a package manager.
@@ -13779,7 +15117,7 @@ name and password.  To skip it press a @key{Return} key.
 
 You could get a Epkg package list by invoking @code{epkg-list-packages} in
 Emacs.")
-      (license license:gpl3+))))
+    (license license:gpl3+)))
 
 (define-public emacs-elisp-slime-nav
   (package
@@ -13972,32 +15310,74 @@ as well as functions for navigating between these headings.")
     (license license:gpl3+)))
 
 (define-public emacs-org-super-agenda
-  ;; emacs-org-sidebar depends on a newer commit than the latest release version.
-  (let ((commit "a87ca11fbbe72ab6c1c4c3b55ae9e1e93ebfb8ba")
-        (revision "3"))
+  (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"))))
+    (build-system emacs-build-system)
+    (arguments
+     `(#:tests? #t
+       #:test-command '("test/run" "--debug")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'prepare-for-tests.el
+           (lambda _
+             (make-file-writable "test/test.el")
+             (emacs-substitute-variables "test/test.el"
+               ("org-super-agenda-test-results-file"
+                (string-append (getcwd) "/test/results.el")))
+             ;; The following test fail (see:
+             ;; https://github.com/alphapapa/org-super-agenda/issues/183).
+             (substitute* "test/test.el"
+               ((".*org-super-agenda-test--:auto-map.*" all)
+                (string-append all "  (skip-unless nil)\n")))
+             #t)))))
+    (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)))
+    (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
+into sections while preserving the structure imposed by any timestamps.")
+    (license license:gpl3+)))
+
+(define-public emacs-elegant-agenda-mode
+  (let ((commit "c72f42e0f551c3dd81e68262f07a96c0ec90a589")
+        (revision "1"))
     (package
-      (name "emacs-org-super-agenda")
-      (version (git-version "1.1.1" revision commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://github.com/alphapapa/org-super-agenda")
-                      (commit commit)))
-                (file-name (git-file-name name version))
-                (sha256
-                 (base32
-                  "08b7babdaqblb6jff57an4kbcxk6fkhf668620fipfjgbsnqv3ff"))))
+      (name "emacs-elegant-agenda-mode")
+      (version (git-version "0.1.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/justinbarclay/elegant-agenda-mode")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "0f8qk3vd41ffbkfqw5nks3bld0qpjrlnk9sb46wcbsyfnrs2v082"))))
       (build-system emacs-build-system)
-      (propagated-inputs
-       `(("emacs-org" ,emacs-org)
-         ("emacs-dash" ,emacs-dash)
-         ("emacs-ts" ,emacs-ts)
-         ("emacs-ht" ,emacs-ht)
-         ("emacs-s" ,emacs-s)))
-      (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
-into sections while preserving the structure imposed by any timestamps.")
+      (home-page "https://github.com/justinbarclay/elegant-agenda-mode")
+      (synopsis "Elegant theme for your org-agenda")
+      (description
+       "The elegant-agenda-mode package uses fonts and typography to give your
+org-agenda some breathing room and elegance.  This package was inspired by the
+work Nicolas Rougier.")
       (license license:gpl3+))))
 
 (define-public emacs-org-make-toc
@@ -14090,27 +15470,113 @@ timestamps by providing a @code{ts} struct.")
 (define-public emacs-peg
   (package
     (name "emacs-peg")
-    (version "0.6")
+    (version "1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://elpa.gnu.org/packages/peg-" version ".tar"))
+       (sha256
+        (base32 "0skr5dz9k34r409hisnj37n1b7n62l3md0glnfx578xkbmxlpcxl"))))
+    (build-system emacs-build-system)
+    (home-page "https://elpa.gnu.org/packages/peg.html")
+    (synopsis "Parsing Expression Grammars in Elisp")
+    (description "This package provides a macro that parses the current buffer
+according to a parsing expression grammar.")
+    (license license:gpl3+)))
+
+(define-public emacs-eldev
+  (package
+    (name "emacs-eldev")
+    (version "0.7.2")
     (source (origin
               (method git-fetch)
               (uri (git-reference
-                    (url "https://github.com/emacsmirror/peg")
+                    (url "https://github.com/doublep/eldev")
                     (commit version)))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "0kjz7ch4bn0m4v9zgqyqcrsasnqc5c5drv2hp22j7rnbb7ny0q3n"))
-              (file-name (git-file-name name version))))
+                "1xxcxgycn0a03irjcdq2pcb4p1bddhfjspni7lliwpv6zjqgkyhb"))))
     (build-system emacs-build-system)
-    (home-page "https://github.com/emacsmirror/peg/")
-    (synopsis "Parsing Expression Grammars in Elisp")
-    (description "This package provides a macro that parses the current buffer
-according to a parsing expression grammar.")
+    (arguments
+     `(#:tests? #t
+       #:test-command '("./bin/eldev" "-p" "-dtTC" "test")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'prepare-for-tests
+           (lambda _
+             (setenv "ELDEV_LOCAL" (getcwd))
+             (make-file-writable
+              "test/project-i/project-i-autoloads.el")
+             #t))
+         (add-after 'install 'install-eldev-executable
+           ;; This constructs the eldev executable from templates and
+           ;; installs it in the specified directory.
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (bin (string-append out "/bin"))
+                    (site-lisp (string-append out "/share/emacs/site-lisp")))
+               (mkdir-p bin)
+               (setenv "HOME" (getcwd))
+               (invoke "./install.sh" bin)
+               (substitute* (string-append bin "/eldev")
+                 ;; Point ELDEV_LOCAL to the installation directory so that
+                 ;; 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))))))
+    (native-inputs
+     `(("texinfo" ,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,
+targeted solely at Elisp projects.  It is an alternative to Cask.  Unlike
+Cask, Eldev itself is fully written in Elisp and its configuration files are
+also Elisp programs.  For those familiar with the Java world, Cask can be seen
+as a parallel to Maven — it uses project description, while Eldev is sort of a
+parallel to Gradle — its configuration is a program on its own.")
+    (license license:gpl3+)))
+
+(define-public emacs-with-simulated-input
+  (package
+    (name "emacs-with-simulated-input")
+    (version "2.4")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/DarwinAwardWinner/with-simulated-input")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "12d3mhvzj74qwc4rdcb236jbqnf5lam8pk78j92kwbwjk1jaz2cf"))))
+    (build-system emacs-build-system)
+    (arguments
+     ;; The test suite fails with error: "Spies can only be created in
+     ;; ‘before-each’".
+     `(#:tests? #f
+       #:test-command '("buttercup" "-L" ".")))
+    (native-inputs
+     `(("emacs-buttercup" ,emacs-buttercup)
+       ("emacs-undercover" ,emacs-undercover)))
+    (propagated-inputs
+     `(("emacs-s" ,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,
+@code{with-simulated-input}, which evaluates one or more forms while
+simulating a sequence of input events for those forms to read.  The result is
+the same as if a user had evaluated the forms and then manually typed in the
+same input.  This macro is useful for non-interactive testing of normally
+interactive commands and functions, such as @code{completing-read}.")
     (license license:gpl3+)))
 
 (define-public emacs-org-ql
   (package
     (name "emacs-org-ql")
-    (version "0.3.2")
+    (version "0.5")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -14118,7 +15584,7 @@ according to a parsing expression grammar.")
                     (commit version)))
               (sha256
                (base32
-                "11bhpi2l28vp8mm9nx18jljbqdnh9vxpv9kp1dn9lpsgivcdbc34"))
+                "14nsy2dbln3m5bpqzyfqycn18sb3qh407hjbkk1l0x2nqs3lrkqn"))
               (file-name (git-file-name name version))))
     (build-system emacs-build-system)
     (propagated-inputs
@@ -14131,20 +15597,24 @@ according to a parsing expression grammar.")
        ("emacs-org" ,emacs-org)
        ("emacs-helm" ,emacs-helm)
        ("emacs-helm-org" ,emacs-helm-org)
-       ("emacs-dash" ,emacs-dash)))
+       ("emacs-dash" ,emacs-dash)
+       ("emacs-transient" ,emacs-transient)))
     (native-inputs
-     `(("emacs-buttercup" ,emacs-buttercup)))
+     `(("emacs-buttercup" ,emacs-buttercup)
+       ("emacs-with-simulated-input" ,emacs-with-simulated-input)))
     (arguments
-     `(#:phases
+     `(#:tests? #t
+       #:test-command '("buttercup" "-L" ".")
+       #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'require-helm
+         (add-after 'unpack 'disable-failing-tests
            (lambda _
-             (substitute* "helm-org-ql.el"
-               (("^;;;; Requirements")
-                ";;;; Requirements\n(require 'helm)\n(require 'helm-org)"))
-             #t)))
-       #:tests? #t
-       #:test-command '("buttercup" "-L" ".")))
+             (substitute* "tests/test-org-ql.el"
+               ;; This test fails on Emacs 27.1 (see:
+               ;; https://github.com/alphapapa/org-super-agenda/issues/183).
+               (("it \"Can search buffer containing the link\"" all)
+                (string-append "x" all)))
+             #t)))))
     (home-page "https://github.com/alphapapa/org-ql/")
     (synopsis "Query language for Org buffers")
     (description "This package provides a Lispy query language for Org
@@ -14199,7 +15669,7 @@ files to be expanded upon opening them.")
 (define-public emacs-ebib
   (package
     (name "emacs-ebib")
-    (version "2.22.1")
+    (version "2.29")
     (source
      (origin
        (method git-fetch)
@@ -14208,7 +15678,7 @@ files to be expanded upon opening them.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0spiz5r2y4pdpyc4d3f9w228giq0j9rm8f5h5akzn5rwiq9pfkwz"))))
+        (base32 "1d0xnhdcsz2ysq145k2l0f2r4vb0pkai1v6wl6sfba7xi5fc323i"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-parsebib" ,emacs-parsebib)))
@@ -14241,8 +15711,7 @@ with (La)TeX mode, Org mode and other Emacs editing modes.")
         (base32 "1gxjind6r235az59dr8liv03d8994mqb8a7m28j3c12q7p70aziz"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-seq" ,emacs-seq)
-       ("emacs-dash" ,emacs-dash)
+     `(("emacs-dash" ,emacs-dash)
        ("emacs-let-alist" ,emacs-let-alist)))
     (home-page "https://github.com/cpitclaudel/biblio.el")
     (synopsis "Browse and import bibliographic references")
@@ -14392,7 +15861,7 @@ and @code{erc-send-modify-hook} to download and show images.")
 (define-public emacs-list-utils
   (package
     (name "emacs-list-utils")
-    (version "0.4.4")
+    (version "0.4.6")
     (source
      (origin
        (method git-fetch)
@@ -14401,13 +15870,49 @@ and @code{erc-send-modify-hook} to download and show images.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0ql159v7sxs33yh2l080kchrj52vk34knz50cvqi3ykpb7djg3sz"))))
+        (base32 "07hbz2md52ccy95gv4d5n6szrfmpfqf3w4kwqdg2cf54c7kgf7hw"))))
     (build-system emacs-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-require-cl
+           (lambda _
+             (substitute* "list-utils.el"
+               (("\\(require 'cl\\)") "(require 'cl-lib)"))
+             #t)))))
     (home-page "https://github.com/rolandwalker/list-utils")
     (synopsis "List-manipulation utility functions")
     (description "This package provides a list manipulation library for Emacs.")
     (license license:gpl3+)))
 
+(define-public emacs-parsec
+  ;; Last release is too old (2016).
+  (let ((revision "0")
+        (commit "2cbbbc2254aa7bcaa4fb5e07c8c1bf2f381dba26"))
+    (package
+      (name "emacs-parsec")
+      (version (git-version "0.1.3" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/cute-jumper/parsec.el")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1g1s8s45g3kkbi3h7w0pmadmzdswb64mkdvdpg2lihg341kx37gm"))))
+      (build-system emacs-build-system)
+      (home-page "https://github.com/cute-jumper/parsec.el")
+      (synopsis "Parser combinator library for Emacs Lisp")
+      (description
+       "Parsec is a parser combinator library for Emacs Lisp, similar to
+Haskell's Parsec library.  It contains most of the parser combinators in
+Text.Parsec.Combinator, and more combinators can be added if necessary!  Most
+of the parser combinators have the same behavior as their Haskell
+counterparts.  Parsec also comes with a simple error handling mechanism so
+that it can display an error message showing how the parser fails.")
+      (license license:gpl3+))))
+
 (define-public emacs-move-text
   (package
     (name "emacs-move-text")
@@ -14596,6 +16101,8 @@ navigate and display hierarchy structures.")
         (base32
          "0a3q667pybpmsjkbgf6287jwgpnx8brp5314wb8zbczw6ncygnbi"))))
     (build-system emacs-build-system)
+    (arguments
+     `(#:include (cons "^[^/]*\\.extmap$" %default-include)))
     (inputs
      `(("emacs-extmap" ,emacs-extmap)))
     (home-page "https://github.com/doublep/datetime/")
@@ -14650,24 +16157,6 @@ timestamps and date-time format strings library for Emacs.")
      "@code{npm-mode} provides a minor mode to work with @code{npm} projects.")
     (license license:gpl3+)))
 
-(define-public emacs-seq
-  (package
-    (name "emacs-seq")
-    (version "2.20")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (string-append "https://elpa.gnu.org/packages/seq-" version ".tar"))
-       (sha256
-        (base32
-         "0vrpx6nnyjb0gsypknzagimlhvcvi5y1rcdkpxyqr42415zr8d0n"))))
-    (build-system emacs-build-system)
-    (home-page "https://elpa.gnu.org/packages/seq.html")
-    (synopsis "Sequence manipulation functions")
-    (description "Sequence-manipulation functions that complement basic
-functions provided by @file{subr.el}.")
-    (license license:gpl3+)))
-
 (define-public emacs-itail
   (let ((commit "6e43c20da03be3b9c6ece93b7dc3495975ec1888")
         (revision "1"))
@@ -14747,7 +16236,17 @@ continue.")
        ("emacs-undercover" ,emacs-undercover)))
     (arguments
      `(#:tests? #t
-       #:test-command '("ert-runner")))
+       #:test-command '("ert-runner")
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'check 'disable-refs-next-match-test
+           ;; Hack to disable the failing test for emacs27
+           ;; https://github.com/Wilfred/elisp-refs/issues/29
+           (lambda _
+             (substitute* "test/unit-test.el"
+               (("ert-deftest elisp-refs-next-match")
+                "defun elisp-refs-next-match"))
+             #t)))))
     (home-page "https://github.com/Wilfred/elisp-refs")
     (synopsis "Find callers of elisp functions or macros")
     (description "Find references to functions, macros or variables.  Unlike a
@@ -14755,6 +16254,32 @@ dumb text search, @code{elisp-refs} actually parses the code, so it's never
 confused by comments or @code{foo-bar} matching @code{foo}.")
     (license license:gpl3+)))
 
+(define-public emacs-crdt
+  (let ((commit "44068ae505adf2c3a7bdbf6723a25fc45d6d1666")
+        (revision "0"))
+    (package
+      (name "emacs-crdt")
+      (version (git-version "0.0.0" revision commit))
+      (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 "130fkhvi757pfnbz70g6nw2n71k89cwwx7yzvsd5v177228c8w7w"))))
+      (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+))))
+
 (define-public emacs-crux
   (let ((commit "308f17d914e2cd79cbc809de66d02b03ceb82859")
         (revision "2"))
@@ -14854,12 +16379,11 @@ macro takes a first argument (whose value must be an alist) and a body.")
     (license license:gpl3+)))
 
 (define-public emacs-esup
-  (let ((commit "a589005a9a888537deef94d6fe38a9b8790c97c7")
+  (let ((commit "0de8af8233d9ce1b67f05a50f25c481c4f1118d8")
         (revision "1"))
     (package
       (name "emacs-esup")
-      (version (string-append "0.6" "-" revision "."
-                              (string-take commit 7)))
+      (version (git-version "0.7.1" revision commit))
       (source
        (origin
          (method git-fetch)
@@ -14869,9 +16393,17 @@ macro takes a first argument (whose value must be an alist) and a body.")
          (file-name (git-file-name name version))
          (sha256
           (base32
-           "04lxmd0h7mfjjl0qghrycgff0vcv950j1wqv0dbkr61jxp64n5fv"))))
-      ;; TODO: Add tests
+           "01khb3xyj0ylwib6ryzzvqmkh5wvzxiq2n3l0s3h9zv7wx849bzv"))))
       (build-system emacs-build-system)
+      (native-inputs
+       `(("emacs-noflet" ,emacs-noflet)
+         ("emacs-undercover" ,emacs-undercover)
+         ("emacs-buttercup" ,emacs-buttercup)))
+      (propagated-inputs
+       `(("emacs-dash" ,emacs-dash)))
+      (arguments
+     `(#:tests? #t
+       #:test-command '("buttercup" "-L" ".")))
       (home-page "https://github.com/jschaf/esup")
       (synopsis "Emacs start up profiler")
       (description "Benchmark Emacs Startup time without ever leaving
@@ -14900,6 +16432,52 @@ your Emacs.")
 within Emacs.")
       (license license:gpl3+))))
 
+(define-public emacs-svg-tag-mode
+  (let ((commit "87489d28450559078aa15b4a435143a297508e48")
+        (revision "1"))
+    (package
+      (name "emacs-svg-tag-mode")
+      (version (git-version "0.1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/rougier/svg-tag-mode")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0gyhmv60dx0zxx4bmhzsd7q5vfnkpfwlj6539bn272fwcr7zncp8"))))
+      (build-system emacs-build-system)
+      (home-page "https://github.com/rougier/svg-tag-mode")
+      (synopsis "Replace keywords with SVG tags")
+      (description "This package provides a minor mode that replaces keywords
+or expressions with SVG rounded box labels that are fully customizable.")
+      (license license:gpl3+))))
+
+(define-public emacs-svg-icon
+  (let ((commit "ebc2b8d0f6c680fd575a90e683cc7b832acd1eb7")
+        (revision "1"))
+    (package
+      (name "emacs-svg-icon")
+      (version (git-version "0.1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/rougier/emacs-svg-icon")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1qzqfa8xyw1nkb89kbvw9qcgdwr8g017n8gf3yzwn816qhkfkjrj"))))
+      (build-system emacs-build-system)
+      (home-page "https://github.com/rougier/emacs-svg-icon")
+      (synopsis "Emacs library to create SVG icons on the fly")
+      (description "This library allows to create SVG icons by parsing remote
+collections whose license are compatibles with Emacs.  The default size of an
+icon is exactly 2x1 characters such that it can be inserted inside a text
+without disturbing alignment.")
+      (license (list license:gpl3+)))))
+
 (define-public emacs-sourcemap
   (package
     (name "emacs-sourcemap")
@@ -15063,7 +16641,7 @@ until the top-level form is no longer a macro call.")
 (define-public emacs-beginend
   (package
     (name "emacs-beginend")
-    (version "2.1.0")
+    (version "2.2.0")
     (source
      (origin
        (method git-fetch)
@@ -15072,7 +16650,7 @@ until the top-level form is no longer a macro call.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1ic5z3qb5sc3mjrjdlg0rqm2l59a43gwnakagns4cilln2a3xdg8"))))
+        (base32 "1r9033zlx2q2dk3bjz004flxdiw79qiswq0zqdjnlzwassvk0f35"))))
     ;; TODO: Run tests.
     (build-system emacs-build-system)
     (inputs
@@ -15380,7 +16958,7 @@ powerful Org contents.")
 (define-public emacs-org-re-reveal
   (package
     (name "emacs-org-re-reveal")
-    (version "3.0.2")
+    (version "3.1.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -15389,7 +16967,7 @@ powerful Org contents.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1jjawkqrhbm787jkzfnwz1ixjphm5mgrhdi3qhzl0jzbjib5a4bf"))))
+                "0an799lxy1j48zlg00982d1rhg46ls4fz4v7r7qdh6228icq5hij"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-htmlize" ,emacs-htmlize)
@@ -15421,6 +16999,28 @@ files.")
 duplicate hook and function names further into a single declarative call.")
     (license license:gpl3+)))
 
+(define-public emacs-fancy-battery
+  (package
+    (name "emacs-fancy-battery")
+    (version "0.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/emacsorphanage/fancy-battery")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "05lwcwf412m717yhwpjrswqkm8c3i7391rmiwv2k8xc1vk6dpp4g"))))
+    (build-system emacs-build-system)
+    (home-page "https://github.com/emacsorphanage/fancy-battery")
+    (synopsis "Display battery status in Emacs mode line")
+    (description "This package provides @code{fancy-battery-mode} which is
+like the built-in @code{display-battery-mode}, but more fancy.  It just the
+remaining time, uses colours to indicate the status of the battery, and is
+more customizable.")
+    (license license:gpl3)))
+
 (define-public emacs-fancy-narrow
   (package
     (name "emacs-fancy-narrow")
@@ -15532,7 +17132,7 @@ downloading manager for Emacs.")
 (define-public emacs-helpful
   (package
     (name "emacs-helpful")
-    (version "0.17")
+    (version "0.18")
     (source
      (origin
        (method git-fetch)
@@ -15541,7 +17141,7 @@ downloading manager for Emacs.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0v2y0x9pwi08y2mgjjiw5brfb5haa7pbmy4540glw904ffxxcblj"))))
+        (base32 "0gdjxykqkal2x765mi51m99i5ql23i1fy909wy4mzj5ajhjfgqcc"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-elisp-refs" ,emacs-elisp-refs)
@@ -15581,7 +17181,7 @@ and doesn't require memorisation of commands.
 (define-public emacs-logview
   (package
     (name "emacs-logview")
-    (version "0.9")
+    (version "0.14")
     (source
      (origin
        (method git-fetch)
@@ -15590,9 +17190,10 @@ and doesn't require memorisation of commands.
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1qhzs75pxnaksbhczmpdcy2zmrqavlzkzss7ik5nv2wf9vs0sn02"))))
+        (base32 "1cchmr25z5zj7rgb2fyxkaq8kpw7i5yg1pvn42dvm09c2wrfbj46"))))
     (propagated-inputs
-     `(("emacs-datetime" ,emacs-datetime)))
+     `(("emacs-datetime" ,emacs-datetime)
+       ("emacs-extmap" ,emacs-extmap)))
     (build-system emacs-build-system)
     (home-page "https://github.com/doublep/logview/")
     (synopsis "Emacs mode for viewing log files")
@@ -15754,10 +17355,10 @@ Magit.")
     (license license:gpl3+)))
 
 (define-public emacs-lice-el
-  (let ((commit "4339929927c62bd636f89bb39ea999d18d269250"))
+  (let ((commit "482e58ab83fff86ed754b00be27b62a219597e7c"))
     (package
       (name "emacs-lice-el")
-      (version (git-version "0.2" "1" commit))
+      (version (git-version "0.2" "2" commit))
       (source (origin
                 (method git-fetch)
                 (uri (git-reference
@@ -15766,8 +17367,26 @@ Magit.")
                 (file-name (git-file-name name version))
                 (sha256
                  (base32
-                  "0879z761b7gajkhq176ps745xpdrivch349crransv8fnsc759yb"))))
+                  "0yxkjyhfk8kpr8yqz54gdx6xwkj4s8bnbz60162jh12crj0bs5n7"))))
       (build-system emacs-build-system)
+      (arguments
+       `(#:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'patch-template-directory
+             (lambda* (#:key outputs #:allow-other-keys)
+               (chmod "lice.el" #o666)
+               (emacs-substitute-variables "lice.el"
+                 ("lice:system-template-directory"
+                  (string-append (assoc-ref outputs "out")
+                                 "/share/emacs-lice-el/template")))
+               #t))
+           (add-after 'install 'install-templates
+             (lambda* (#:key outputs #:allow-other-keys)
+               (copy-recursively
+                "template"
+                (string-append (assoc-ref outputs "out")
+                               "/share/emacs-lice-el/template"))
+               #t)))))
       (home-page "https://github.com/buzztaiki/lice-el")
       (synopsis "License and header template for Emacs")
       (description "@code{lice.el} provides following features:
@@ -15863,7 +17482,7 @@ yasnippet fields and mirrors to be.")
     (description "@code{highlight-numbers-mode} provides a minor mode for
 syntax highlighting of numeric literals in source code.
 
-It s customizable: it's easy to add or redefine what exactly consitutes a
+It s customizable: it's easy to add or redefine what exactly constitutes a
 \"number\" in given major mode.  See @code{highlight-numbers-modelist}.")
     (license license:gpl3+)))
 
@@ -15940,32 +17559,37 @@ decreasing the default font size in all GUI Emacs frames.")
       (license license:gpl3+))))
 
 (define-public emacs-mixed-pitch
-  (package
-    (name "emacs-mixed-pitch")
-    (version "1.0.1")
-    (source
-     (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://gitlab.com/jabranham/mixed-pitch.git")
-             (commit version)))
-       (file-name (git-file-name name version))
-       (sha256
-        (base32 "1458sy5b6bis1i0k23jdqk6hfqg0ghk637r3ajql2g19ym48rf58"))))
-    (build-system emacs-build-system)
-    (home-page "https://gitlab.com/jabranham/mixed-pitch")
-    (synopsis "Mix variable- and fixed-pitch fonts in the same Emacs buffer")
-    (description
-     "@code{mixed-pitch-mode} is a minor mode that enables mixing
+  ;; This commit contains fixes for visual alignment of line numbers and
+  ;; org-indent-mode.
+  (let ((commit "d305108f9520e196b533f05d1dcc284cf535faaf")
+        (tag "1.1.0")
+        (revision "0"))
+    (package
+      (name "emacs-mixed-pitch")
+      (version (git-version tag revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://gitlab.com/jabranham/mixed-pitch.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0yx89is3g2m8af8vfsz5rgjmfmx7mfrxlffb1x6y4b8lh9l0k6dj"))))
+      (build-system emacs-build-system)
+      (home-page "https://gitlab.com/jabranham/mixed-pitch")
+      (synopsis "Mix variable- and fixed-pitch fonts in the same Emacs buffer")
+      (description
+       "@code{mixed-pitch-mode} is a minor mode that enables mixing
 variable-pitch and fixed-pitch fonts in the same buffer.  The list
 @code{mixed-pitch-fixed-pitch-faces} defines the faces that are kept
 fixed-pitch,everything else becomes variable-pitch.")
-    (license license:gpl3+)))
+      (license license:gpl3+))))
 
 (define-public emacs-visual-regexp
   (package
     (name "emacs-visual-regexp")
-    (version "1.1.1")
+    (version "1.1.2")
     (source
      (origin
        (method git-fetch)
@@ -15974,7 +17598,7 @@ fixed-pitch,everything else becomes variable-pitch.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "12zpmzwyp85dzsjpxd3279kpfi9yz3jwc1k9fnb3xv3pjiil5svg"))))
+        (base32 "12p3rlhdphwmx1kxsjzcl2wj3i6qgpvw8iwhg1whs6yqgaxivixd"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/benma/visual-regexp.el/")
     (synopsis "Regexp command with interactive visual feedback")
@@ -16336,7 +17960,7 @@ Emacs minor mode to escape sequences in code.")
 (define-public emacs-dashboard
   (package
     (name "emacs-dashboard")
-    (version "1.6.0")
+    (version "1.7.0")
     (source
      (origin
        (method git-fetch)
@@ -16345,7 +17969,7 @@ Emacs minor mode to escape sequences in code.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1g6g8vad1kdmv1zxp95a8sn70idl26isqjb3xk1r95pqnx1cn591"))))
+        (base32 "1qv4cqjy2s2d2bysbq10vq1axpbd8qc3jn1s1r81lxqkcja8zasa"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-page-break-lines" ,emacs-page-break-lines)))
@@ -16463,7 +18087,7 @@ scroll up to read the function name and then scroll down to original position.")
 (define-public emacs-git-auto-commit-mode
   (package
     (name "emacs-git-auto-commit-mode")
-    (version "4.5.0")
+    (version "4.7.0")
     (source
      (origin
        (method git-fetch)
@@ -16472,15 +18096,21 @@ scroll up to read the function name and then scroll down to original position.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1w3v9pmlmdxl4pglsb6j0igp13lbzg5bhbr1rv2vll93m6zxmyma"))))
+        (base32 "0gpib57f7xza04g3iyihw5v15hb7pncqsmvyggib902yvcxlkvqf"))))
     (build-system emacs-build-system)
+    (native-inputs
+     `(("emacs-buttercup" ,emacs-buttercup)
+       ("git" ,git)))
+    (arguments
+     `(#:tests? #t
+       #:test-command '("buttercup" "-L" ".")))
     (home-page "https://github.com/ryuslash/git-auto-commit-mode")
     (synopsis "Emacs Minor mode to automatically commit and push")
     (description "@code{git-auto-commit-mode} is an Emacs minor mode that
 tries to commit changes to a file after every save.
 
-When @code{gac-automatically-push-p} is non-nil, it also tries to push to
-the current upstream.")
+When @code{gac-automatically-push-p} is non-nil, it also tries to push to the
+current upstream.")
     (license license:gpl3+)))
 
 (define-public emacs-scroll-on-drag
@@ -16631,7 +18261,7 @@ Dumb Jump performs best with The Silver Searcher @command{ag} or ripgrep
           (base32
            "1k8lljdbc90nd29xrhdrsscxavzdq532wq2mg7ljc94krj7538b1"))))
       (build-system emacs-build-system)
-      (home-page "https://github.com/bgamari/dts-mode.git")
+      (home-page "https://github.com/bgamari/dts-mode")
       (synopsis "Emacs minor mode for editing device tree files")
       (description
        "This package provides an Emacs minor mode for highlighting
@@ -16708,6 +18338,27 @@ visiting the bookmark, a new @code{eshell} session will be opened in the
 appropriate directory if no @code{eshell} session is active.")
     (license license:gpl3+)))
 
+(define-public emacs-eshell-syntax-highlighting
+  (package
+    (name "emacs-eshell-syntax-highlighting")
+    (version "0.3")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/akreisher/eshell-syntax-highlighting")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1fb9aa85a3hx1rcmv71j6sc3y278452p1y4dabpwy07avb6apd0p"))))
+    (build-system emacs-build-system)
+    (home-page "https://github.com/akreisher/eshell-syntax-highlighting")
+    (synopsis "Add syntax highlighting to Eshell")
+    (description
+     "This package highlights user commands at the Eshell interactive prompt
+to provide feedback on the validity of commands and syntax.")
+    (license license:gpl3+)))
+
 (define-public emacs-eshell-z
   (package
     (name "emacs-eshell-z")
@@ -16786,10 +18437,11 @@ be changed by customizing the appropriate variables.")
     (license license:gpl3+)))
 
 (define-public emacs-org-caldav
-  (let ((commit "a563500c9884f38ce08793e2964f8274adde163d"))
+  (let ((commit "8569941a0a5a9393ba51afc8923fd7b77b73fa7a")
+        (revision "2"))
     (package
       (name "emacs-org-caldav")
-      (version (git-version "0.0.0" "1" commit))
+      (version (git-version "0.0.0" revision commit))
       (source
        (origin
          (method git-fetch)
@@ -16798,8 +18450,7 @@ be changed by customizing the appropriate variables.")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
-          (base32
-           "18qi1iv5dc0gsvkv9ifal3cjpm568nlb907v8a53cnm4439x1l0l"))))
+          (base32 "05lgxqaffnqaqnzl24frafdkskran88hl2ml05qvyjhs4jjbgw9g"))))
       (build-system emacs-build-system)
       (arguments
        ;; Tests require to have two specific calendars on a test server.
@@ -16808,7 +18459,8 @@ be changed by customizing the appropriate variables.")
        `(("emacs-org" ,emacs-org)))
       (home-page "https://github.com/dengste/org-caldav")
       (synopsis "Sync Org files with external calendars via the CalDAV protocol")
-      (description "Synchronize between events in Org files and a CalDAV
+      (description
+       "Org CalDAV synchronizes events between Org files and a CalDAV
 calendar.")
       (license license:gpl3+))))
 
@@ -16996,31 +18648,28 @@ server using XML-RPC.")
     (license license:gpl3+)))
 
 (define-public emacs-xml-rpc
-  (let ((commit "8f624f8b964e9145acb504e4457c9510e87dd93c")
-        (revision "1"))
-    (package
-      (name "emacs-xml-rpc")
-      (version (git-version "1.6.12" revision commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/hexmode/xml-rpc-el")
-               (commit commit)))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32
-           "0xa54z52rsfl3n0xgmbycj4zazp8ksgdwcq56swzs6wp72zlalmj"))))
-      (build-system emacs-build-system)
-      (home-page "https://github.com/hexmode/xml-rpc-el")
-      (synopsis "XML-RPC client for Emacs")
-      (description "This package provides an XML-RPC client for Emacs capable
+  (package
+    (name "emacs-xml-rpc")
+    (version "1.6.15")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/hexmode/xml-rpc-el")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "07vgwnk96i1vpsv2glg6kbkamjcs72xiznsa6xk7nl0nranzr3hd"))))
+    (build-system emacs-build-system)
+    (home-page "https://github.com/hexmode/xml-rpc-el")
+    (synopsis "XML-RPC client for Emacs")
+    (description "This package provides an XML-RPC client for Emacs capable
 of both synchronous and asynchronous method calls using the @code{url}
 package's async retrieval functionality.  @file{xml-rpc.el} represents XML-RPC
 datatypes as Lisp values, automatically converting to and from the XML
 datastructures as needed, both for method parameters and return values, making
 using XML-RPC methods fairly transparent to the Lisp code.")
-      (license license:gpl3+))))
+    (license license:gpl3+)))
 
 (define-public emacs-xpm
   (package
@@ -17582,7 +19231,8 @@ server with @code{M-x pinentry-start}.")
       (home-page "https://www.emacswiki.org/emacs/SoLong")
       (synopsis "Improve performance in files with long lines")
       (description "This package improves the performance of Emacs when
-viewing files with long lines.")
+viewing files with long lines.  It is included as standard with Emacs 27 or
+later.")
       (license license:gpl3+))))
 
 (define-public emacs-github-review
@@ -17646,8 +19296,8 @@ searches with @code{ripgrep}.")
       (license license:gpl3+))))
 
 (define-public emacs-focus
-  (let ((commit "ab42b8779929beeb7878c7fb3d3ccd80d9327c7f")
-        (version "0.1.1")
+  (let ((commit "5f3f20e7f22fb9fd7c48abce8bd38061d97e4bc0")
+        (version "1.0.0")
         (revision "1"))
     (package
       (name "emacs-focus")
@@ -17661,7 +19311,7 @@ searches with @code{ripgrep}.")
          (file-name (git-file-name name version))
          (sha256
           (base32
-           "079v1syid7h2vr2ya6hs6hl0pgj60qdsw60mqw4cj2zllmkrkwj4"))))
+           "0a55i4bychfnnzjg67a9h4j130hchcg44446dwwx1l1h48i692dw"))))
       (build-system emacs-build-system)
       (home-page "https://github.com/larstvei/Focus")
       (synopsis "Minor mode for focusing in on relevant text")
@@ -17916,6 +19566,16 @@ files.  It focuses on highlighting the document to improve readability.")
            (lambda _
              (substitute* "Makefile"
                (("\\$\\{CASK\\} exec ") ""))
+             #t))
+         ;; Two tests are failing with Emacs 27, as reported here:
+         ;; <https://github.com/racer-rust/emacs-racer/issues/136>.  Disable
+         ;; them.
+         (add-before 'check 'fix-failing-tests
+           (lambda _
+             (substitute* "test/racer-test.el"
+               (("`Write`") "Write")
+               (("^\\\\\\[`str\\]:.*") "")
+               ((" \\[`str`\\]") " str"))
              #t)))))
     (native-inputs
      `(("emacs-ert-runner" ,emacs-ert-runner)
@@ -17939,7 +19599,7 @@ docstring of the thing at point.")
 (define-public emacs-rust-mode
   (package
     (name "emacs-rust-mode")
-    (version "0.4.0")
+    (version "0.5.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -17948,7 +19608,7 @@ docstring of the thing at point.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0bcrklyicxh032rrp585rl5mxd26nb61dp6r5bl935rlcmxzsczh"))))
+                "1f3nnl0d7p9b5cv1bpm0hj898qmr2psxfvmqr61bh684z7fgc045"))))
     (build-system emacs-build-system)
     (arguments
      `(#:phases
@@ -18043,7 +19703,7 @@ buffer displays recursive dir sizes.")
 (define-public emacs-dired-rsync
   (package
     (name "emacs-dired-rsync")
-    (version "0.4")
+    (version "0.5")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -18052,7 +19712,7 @@ buffer displays recursive dir sizes.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0jzbn0izxqgz719gb6fpr60zbcb6w1ama13ngpvrig82nlhs37fv"))))
+                "1nq3d8py2zsji835wilg514z5j180k371pwqsqrmnnhq1cj4fkia"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-s" ,emacs-s)
@@ -18226,6 +19886,47 @@ News homepage.")
 can be queued at any time.")
       (license license:unlicense))))
 
+(define-public emacs-ytdl
+  (package
+    (name "emacs-ytdl")
+    (version "1.3.5")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://gitlab.com/tuedachu/ytdl")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1xv93ny942gha1ipic5r6z4icjsb7src7ssdck9983kks3zacjk7"))))
+    (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))))))
+    (home-page "https://gitlab.com/tuedachu/ytdl")
+    (synopsis "Emacs interface for youtube-dl")
+    (description
+     "This package manages a video download queue for @command{youtube-dl},
+which serves as the back end.  New videos can be queued at any time.  All
+youtube-dl backends are supported.  It is possible to create download profiles
+depending on the downloaded URL.")
+    (license license:gpl3+)))
+
 (define-public emacs-org-web-tools
   (package
     (name "emacs-org-web-tools")
@@ -18246,7 +19947,7 @@ can be queued at any time.")
        ("emacs-esxml" ,emacs-esxml)
        ("emacs-s" ,emacs-s)))
     (inputs
-     `(("pandoc" ,ghc-pandoc)))
+     `(("pandoc" ,pandoc)))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -18510,7 +20211,7 @@ scratch, and you think the Spacemacs theme looks good.
        (origin
          (method git-fetch)
          (uri (git-reference
-               (url "https://github.com/TheBB/spaceline.git")
+               (url "https://github.com/TheBB/spaceline")
                (commit commit)))
          (sha256
           (base32 "11lwckqcgzsahrkkm5wk1ph4kc7d4yz05r7251g8c9f0q6vdj9dp"))
@@ -18589,7 +20290,7 @@ correctly.")
 (define-public emacs-helm-sly
   (package
     (name "emacs-helm-sly")
-    (version "0.4.1")
+    (version "0.7.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -18598,7 +20299,7 @@ correctly.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0b2dx9nzh5233lkix3lz81c9cv626lk2hjpcjiikwvyp6y0q92ys"))))
+                "090vq8c4scf9byn8xic71b02n4c8frhz1y1x1brxn6iar44dmzm5"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-helm" ,emacs-helm)
@@ -18608,11 +20309,12 @@ correctly.")
     (description "Helm-SLY defines a few new commands:
 
 @itemize
-@item helm-sly-list-connections: Yet another Lisp connection list with Helm.
-@item: helm-sly-apropos: Yet another @command{apropos} with Helm.
-@item helm-sly-mini: Like @command{helm-sly-list-connections}, but include an
-extra source of Lisp-related buffers, like the events buffer or the scratch
-buffer.
+@item @code{helm-sly-list-connections}: Yet another Lisp connection list with
+Helm.
+@item @code{helm-sly-apropos}: Yet another @command{apropos} with Helm.
+@item @code{helm-sly-mini}: Like @command{helm-sly-list-connections}, but
+include an extra source of Lisp-related buffers, like the events buffer or the
+scratch buffer.
 @end itemize\n")
     (license license:gpl3+)))
 
@@ -18675,10 +20377,10 @@ Emacs.")
     (license license:gpl3+)))
 
 (define-public emacs-matrix-client
-  (let ((commit "a0623667b07a4bf60980c97b078e9faed97ace79"))
+  (let ((commit "d2ac55293c96d4c95971ed8e2a3f6f354565c5ed"))
     (package
       (name "emacs-matrix-client")
-      (version (git-version "0.0.0" "4" commit))
+      (version (git-version "0.0.0" "6" commit))
       (source (origin
                 (method git-fetch)
                 (uri (git-reference
@@ -18687,20 +20389,8 @@ Emacs.")
                 (file-name (git-file-name name version))
                 (sha256
                  (base32
-                  "1zya8id3y9wzjaj7nplq7br6nhm3lsskv0fkn1xr1y77fzcfgcdb"))))
+                  "1scfv1502yg7x4bsl253cpr6plml1j4d437vci2ggs764sh3rcqq"))))
       (build-system emacs-build-system)
-      (arguments
-       `(#:phases
-         (modify-phases %standard-phases
-           (add-after 'unpack 'add-missing-require
-             ;; Fix a filter error at runtime due to a missing require.
-             ;; Reported upstream:
-             ;; <https://github.com/alphapapa/matrix-client.el/issues/76>
-             (lambda _
-               (substitute* "matrix-client-room.el"
-                 (("\\(require 'dash-functional\\)" all)
-                  (string-append all "\n" "(require 'anaphora)")))
-               #t)))))
       (propagated-inputs
        `(("a" ,emacs-a)
          ("anaphora" ,emacs-anaphora)
@@ -18844,6 +20534,34 @@ functions to ensure they are called with the right arguments during testing.")
 too ambiguous and navigation in the result buffer.")
       (license license:gpl3+))))
 
+(define-public emacs-frame-local
+  ;; There is no release yet.  Version is extracted from the main
+  ;; file.
+  (let ((version "0.0.1")
+        (revision "0")
+        (commit "7ee1106c3bcd4022f48421f8cb1ef4f995da816e"))
+    (package
+      (name "emacs-frame-local")
+      (version (git-version version revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/sebastiencs/frame-local")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0zfxsxdh3bd3fd566zl0byp13p5b8f4cgkwl637imvarvahczigp"))))
+      (build-system emacs-build-system)
+      (home-page "https://github.com/sebastiencs/frame-local")
+      (synopsis "Access variables local to an Emacs frame")
+      (description
+       "This package allows setting and accessing variables local to
+an Emacs frame.  Note that the variables created with this package do
+not have any relation with variables defined by @code{defvar},
+@code{defconst}, etc.")
+      (license license:gpl3+))))
+
 (define-public emacs-frame-purpose
   (package
     (name "emacs-frame-purpose")
@@ -19075,7 +20793,7 @@ programs can use this table component for the application UI.")
     (package
       (name "emacs-leetcode")
       (version (git-version "0" "1" commit))
-      (home-page "https://github.com/ginqi7/leetcode-emacs.git")
+      (home-page "https://github.com/ginqi7/leetcode-emacs")
       (source (origin
                 (method git-fetch)
                 (uri (git-reference
@@ -19192,7 +20910,7 @@ to open SQLite databases.")
 (define-public emacs-nix-mode
   (package
     (name "emacs-nix-mode")
-    (version "1.4.4")
+    (version "1.4.5")
     (source
      (origin
        (method git-fetch)
@@ -19201,7 +20919,7 @@ to open SQLite databases.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "19f36kl00pxm2a18hn4cdsdvxlfsdx1pnnm6s6zxd8nw6y8ynvn0"))))
+        (base32 "1bqlhkxg0faddhvxx909dq46dxdxk4mdyhdpww92dmzgxdpq38sx"))))
     (build-system emacs-build-system)
     (inputs
      `(("emacs-company" ,emacs-company)
@@ -19261,9 +20979,9 @@ stored playlists.")
     (license license:gpl3+)))
 
 (define-public emacs-vterm
-  (let ((version "0")
-        (revision "2")
-        (commit "f41849c2c9c1899f22d1c3d4f871ec47c82627ce"))
+  (let ((version "0.0.1")
+        (revision "0")
+        (commit "a670b786539d3c8865d8f68fe0c67a2d4afbf1aa"))
     (package
       (name "emacs-vterm")
       (version (git-version version revision commit))
@@ -19275,7 +20993,7 @@ stored playlists.")
                 (file-name (git-file-name name version))
                 (sha256
                  (base32
-                  "1b5s1101n7a2lnpkbadm1h4k6z295fpijx0rdpmd05dkhyarax6n"))))
+                  "0s244crjkbzl2jhp9m4sm1xdhbpxwph0m3jg18livirgajvdz6hn"))))
       (build-system emacs-build-system)
       (arguments
        `(#:modules ((guix build emacs-build-system)
@@ -19400,7 +21118,7 @@ according to their use.")
 (define-public emacs-dtrt-indent
   (package
     (name "emacs-dtrt-indent")
-    (version "0.8")
+    (version "1.2")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -19409,7 +21127,7 @@ according to their use.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0pgf0pvqd8k4yzhdn2df9lp0y8hmlm2ccrh07jivwlccs95pcz7z"))))
+                "0p5v5xwr0s59hv3s0f85byafphc85qv76g41crad9fhnxzab9rly"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/jscheid/dtrt-indent")
     (synopsis "Minor mode that guesses the indentation offset")
@@ -19446,6 +21164,25 @@ with emacs.  It displays the output of the @code{repo status} command in a
 buffer and launches Magit from the status buffer for the project at point.")
     (license license:gpl3+)))
 
+(define-public emacs-repology
+  (package
+    (name "emacs-repology")
+    (version "1.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://elpa.gnu.org/packages/"
+                           "repology-" version ".tar"))
+       (sha256
+        (base32 "0y12496wafx95izah8vvv1x86k1m8kysm5mlhvshkp0zbpvmb5iq"))))
+    (build-system emacs-build-system)
+    (home-page "https://elpa.gnu.org/packages/repology.html")
+    (synopsis "Repology API access via Elisp")
+    (description
+     "This package provides tools to query Repology API (see
+@url{https://repology.org/api}), process results, and display them.")
+    (license license:gpl3+)))
+
 (define-public emacs-alect-themes
   (package
     (name "emacs-alect-themes")
@@ -19686,30 +21423,28 @@ constant expressions.")
     (license license:gpl3+)))
 
 (define-public emacs-dockerfile-mode
-  ;; Latest upstream release is too old.
-  (let ((commit "ed73e82dcc636dad00d1a8c3b32a49136d25ee60"))
-    (package
-      (name "emacs-dockerfile-mode")
-      (version (git-version "1.2" "2" commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/spotify/dockerfile-mode")
-               (commit commit)))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32
-           "0lri2rnx4lr23vqfphkpq39cd4xfgzkvz1xsz7ccdvl4qj0k7fdl"))))
-      (build-system emacs-build-system)
-      (propagated-inputs
-       `(("emacs-s" ,emacs-s)))
-      (home-page "https://github.com/spotify/dockerfile-mode")
-      (synopsis "Major mode for editing Dockerfile")
-      (description
-       "This package provides a major mode @code{dockerfile-mode} for use with
+  (package
+    (name "emacs-dockerfile-mode")
+    (version "1.3")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/spotify/dockerfile-mode")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1br73dsls42fn4rwagljkpa3l4wwj6f7jxfn3gmgl6c54z81av3v"))))
+    (build-system emacs-build-system)
+    (propagated-inputs
+     `(("emacs-s" ,emacs-s)))
+    (home-page "https://github.com/spotify/dockerfile-mode")
+    (synopsis "Major mode for editing Dockerfile")
+    (description
+     "This package provides a major mode @code{dockerfile-mode} for use with
 the standard @code{Dockerfile} file format.")
-      (license license:asl2.0))))
+    (license license:asl2.0)))
 
 (define-public emacs-lsp-mode
   (package
@@ -19742,26 +21477,25 @@ Projectile.")
     (license license:gpl3+)))
 
 (define-public emacs-pfuture
-  (let ((commit "368254ee30692c709400db413c347e18e76a8a55"))
-    (package
-      (name "emacs-pfuture")
-      (version (git-version "1.6" "1" commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://github.com/Alexander-Miller/pfuture")
-                      (commit commit)))
-                (file-name (git-file-name name version))
-                (sha256
-                 (base32
-                  "096raqpjx84njws85r7pqq1wi9w9bjwkr0ga1mbbhlna1mfn3mg4"))))
-      (build-system emacs-build-system)
-      (home-page
-       "https://github.com/Alexander-Miller/pfuture")
-      (synopsis "Simple wrapper around asynchronous processes for Emacs")
-      (description "This package provides a simple wrapper around asynchronous
+  (package
+    (name "emacs-pfuture")
+    (version "1.9")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/Alexander-Miller/pfuture")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1chpin5277vbl2xvsl04pzzk7a9dbcvclibm2496gz6yvd19pwsf"))))
+    (build-system emacs-build-system)
+    (home-page
+     "https://github.com/Alexander-Miller/pfuture")
+    (synopsis "Simple wrapper around asynchronous processes for Emacs")
+    (description "This package provides a simple wrapper around asynchronous
 processes for Emacs")
-      (license license:gpl3+))))
+    (license license:gpl3+)))
 
 (define-public emacs-treemacs
   (package
@@ -19778,20 +21512,20 @@ processes for Emacs")
                 "0m083g3pg0n4ymi1w0jx34awr7cqbm4r561adij9kklblxsz7sc2"))))
     (build-system emacs-build-system)
     (propagated-inputs
-      `(("emacs-dash" ,emacs-dash)
-        ("emacs-s" ,emacs-s)
-        ("emacs-f" ,emacs-f)
-        ("emacs-ace-window" ,emacs-ace-window)
-        ("emacs-pfuture" ,emacs-pfuture)
-        ("emacs-hydra" ,emacs-hydra)
-        ("emacs-ht" ,emacs-ht)))
+     `(("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)))
     (native-inputs
      `(("emacs-buttercup" ,emacs-buttercup)
        ("emacs-el-mock" ,emacs-el-mock)))
     (inputs
      `(("python" ,python)))
     (arguments
-     `(#:tests? #t ;TODO: Investigate ‘treemacs--parse-collapsed-dirs’ test failure.
+     `(#:tests? #t
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'fix-makefile
@@ -19806,12 +21540,14 @@ processes for Emacs")
            (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\""
-                  ""))
+                 ("(describe \"treemacs--parse-collapsed-dirs\"" "")
+                 ("\"Finds only direct childre\"" ""))
                (invoke "make" "test"))))
          (add-before 'install 'patch-paths
            (lambda* (#:key inputs outputs #:allow-other-keys)
@@ -19843,7 +21579,12 @@ processes for Emacs")
                  #t)))))))
     (home-page "https://github.com/Alexander-Miller/treemacs")
     (synopsis "Emacs tree style file explorer")
-    (description "Powerful and flexible file tree project explorer.")
+    (description
+     "Treemacs is a file and project explorer similar to NeoTree or Vim's
+NerdTree, but largely inspired by the Project Explorer in Eclipse.  It shows
+the file system outlines of your projects in a simple tree layout allowing
+quick navigation and exploration, while also possessing basic file management
+utilities.")
     (license license:gpl3+)))
 
 (define-public emacs-treemacs-extra
@@ -19947,7 +21688,7 @@ files in Elisp.")
 (define-public emacs-lsp-ui
   (package
     (name "emacs-lsp-ui")
-    (version "7.0")
+    (version "7.0.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -19956,7 +21697,7 @@ files in Elisp.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1v5xl2sfnpzrfi22bcb7zp25pv8s5kxgiqamxlbkd72pwch0skma"))))
+                "09dmhhxmfjnzdc5kygwsjf8nwqlnq9rbgrca679s2wy93miqj7vc"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-dash" ,emacs-dash)
@@ -19995,31 +21736,29 @@ and code peeking.")
       (license license:gpl3+))))
 
 (define-public emacs-lsp-ivy
-  (let ((commit "caf1e1d7e22ed0b5fe18dd508d1a6f83dd163288")
-        (revision "2"))
-    (package
-      (name "emacs-lsp-ivy")
-      (version (git-version "0.1" revision commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://github.com/emacs-lsp/lsp-ivy")
-                      (commit commit)))
-                (file-name (git-file-name name version))
-                (sha256
-                 (base32
-                  "084ds4qhzhivfnicy3h7z4mblxgcqx8pfnkbjr9qjrfng7cisy4z"))))
-      (build-system emacs-build-system)
-      (propagated-inputs
-       `(("emacs-ivy" ,emacs-ivy)
-         ("emacs-lsp-mode" ,emacs-lsp-mode)
-         ("emacs-dash" ,emacs-dash)))
-      (home-page "https://github.com/emacs-lsp/lsp-ivy")
-      (synopsis "Provide LSP-enhanced completion for symbols")
-      (description
-       "This package enhances @code{ivy} with completion for symbols from
+  (package
+    (name "emacs-lsp-ivy")
+    (version "0.4")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/emacs-lsp/lsp-ivy")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "08dpn0vcfdwwysijwdpnnj91m69yw0q464i0wmp51zpj3dyd4kb1"))))
+    (build-system emacs-build-system)
+    (propagated-inputs
+     `(("emacs-dash" ,emacs-dash)
+       ("emacs-ivy" ,emacs-ivy)
+       ("emacs-lsp-mode" ,emacs-lsp-mode)))
+    (home-page "https://github.com/emacs-lsp/lsp-ivy")
+    (synopsis "Provide LSP-enhanced completion for symbols")
+    (description
+     "This package enhances @code{ivy} with completion for symbols from
 workspaces with a LSP-compliant server running.")
-      (license license:gpl3+))))
+    (license license:gpl3+)))
 
 (define-public emacs-helm-lsp
   (let ((commit "3a58ca4cfd94b9ab1e15e819d3b16ef568e8889b")
@@ -20143,10 +21882,10 @@ commands (a prefix and a suffix) we prefer to call it just a \"transient\".")
       (license license:gpl3+))))
 
 (define-public emacs-forge
-  (let ((commit "09bf8adc9c9afb492632e612f51f39e1cc15fca0"))
+  (let ((commit "05ef02913004826165c383bd6d2ff6574542b76c"))
     (package
       (name "emacs-forge")
-      (version (git-version "0.1.0" "4" commit))
+      (version (git-version "0.1.0" "5" commit))
       (source
        (origin
          (method git-fetch)
@@ -20156,7 +21895,7 @@ commands (a prefix and a suffix) we prefer to call it just a \"transient\".")
          (file-name (git-file-name name version))
          (sha256
           (base32
-           "148h1rvmfmxyrfy2q5l0vzblr7lpsyw1si30hfwhzsj8fvj21qcr"))))
+           "1vv7xlawj2zmwqk69qlsqflhh0lbyqm5xf4x8l4v2069g0k8mmx1"))))
       (build-system emacs-build-system)
       (native-inputs
        `(("texinfo" ,texinfo)))
@@ -20333,7 +22072,6 @@ unescaping of quotes.")
       (build-system emacs-build-system)
       (propagated-inputs
        `(("emacs-dash" ,emacs-dash)
-         ("emacs-seq" ,emacs-seq)
          ("emacs-flycheck" ,emacs-flycheck)
          ("emacs-haskell-mode" ,emacs-haskell-mode)
          ("emacs-let-alist" ,emacs-let-alist)))
@@ -20504,11 +22242,11 @@ compatible with Emacs' shell modes.")
       (license license:gpl3+))))
 
 (define-public emacs-vdiff
-  (let ((commit "09e15fc932bfd2febe1d4a65780a532394562b07")
-        (revision "1"))
+  ;; There is no proper tag, but the commit below matches the version bump.
+  (let ((commit "007e44be19d068fd6b49874b6e9b8df8b1f552bd"))
     (package
       (name "emacs-vdiff")
-      (version (git-version "0.2.3" revision commit))
+      (version "0.2.4")
       (source
        (origin
          (method git-fetch)
@@ -20517,8 +22255,7 @@ compatible with Emacs' shell modes.")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
-          (base32
-           "1gvqi5l4zs872nn4pmj603aza09d81qad2rgijzv268lif8z34db"))))
+          (base32 "197xrwph1llrzjgkhlvagiwdgfp68pb45w5afg89ndahpqc2725s"))))
       (build-system emacs-build-system)
       (propagated-inputs
        `(("emacs-hydra" ,emacs-hydra)))
@@ -20529,8 +22266,9 @@ compatible with Emacs' shell modes.")
                           "-f" "ert-run-tests-batch-and-exit")))
       (home-page "https://github.com/justbur/emacs-vdiff/")
       (synopsis "Frontend for diffing based on vimdiff")
-      (description "This package permits comparisons of two or three buffers
-based on diff output.")
+      (description
+       "This package permits comparisons of two or three buffers based on diff
+output.")
       (license license:gpl3+))))
 
 (define-public emacs-vdiff-magit
@@ -20907,8 +22645,8 @@ and searching through @code{Ctags} files.")
       (license license:expat))))
 
 (define-public emacs-org-download
-  (let ((commit "10c9d7c8eed928c88a896310c882e3af4d8d0f61")
-        (revision "2"))
+  (let ((commit "42ac361ef5502017e6fc1bceb00333eba90402f4")
+        (revision "3"))
     (package
       (name "emacs-org-download")
       (version (git-version "0.1.0" revision commit))
@@ -20917,10 +22655,9 @@ and searching through @code{Ctags} files.")
                 (uri (git-reference
                       (url "https://github.com/abo-abo/org-download")
                       (commit commit)))
+                (file-name (git-file-name name version))
                 (sha256
-                 (base32
-                  "0i8wlx1i7y1vn5lqwjifvymvszg28a07vwqcm4jslf1v2ajs1lsl"))
-                (file-name (git-file-name name version))))
+                 (base32 "0cg4y7hy7xbq4vrbdicfzgvyaf3cjbx2zkqd4yl0y2garz71j99l"))))
       (build-system emacs-build-system)
       (propagated-inputs
        `(("emacs-org" ,emacs-org)
@@ -20931,9 +22668,38 @@ and searching through @code{Ctags} files.")
 copied into @code{org-mode} buffers.")
       (license license:gpl3+))))
 
+(define-public emacs-org-drill-table
+  ;; No releases or tags.
+  (let ((commit "096387d929bcf3eb479e0a9d5da9cf32c756a759")
+        (revision "0"))
+    (package
+      (name "emacs-org-drill-table")
+      (version (git-version "0.1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/chrisbarrett/org-drill-table.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1a8ygrcag8i9hdpy2vsn0sh8lwhl9b56rv91j3rddy1jv5qx1ipb"))))
+      (build-system emacs-build-system)
+      (propagated-inputs
+       `(("emacs-dash" ,emacs-dash)
+         ("emacs-org" ,emacs-org)
+         ("emacs-s" ,emacs-s)))
+      (home-page "https://github.com/chrisbarrett/org-drill-table")
+      (synopsis "Generate Org drill cards using Org mode tables")
+      (description
+       "This package generates drill cards based on an Org mode table in the
+current subtree.  The cards are inserted under a new ``Cards'' heading in the
+current tree.")
+      (license license:gpl3+))))
+
 (define-public emacs-dash-docs
-  (let ((commit "111fd9b97001f1ad887b45e5308a14ddd68ce70a")
-        (revision "1"))
+  (let ((commit "dafc8fc9f1ddb2e4e39e0b8d066c42d5d7ce8d06")
+        (revision "2"))
     (package
       (name "emacs-dash-docs")
       (version (git-version "1.4.0" revision commit))
@@ -20946,7 +22712,7 @@ copied into @code{org-mode} buffers.")
          (file-name (git-file-name name version))
          (sha256
           (base32
-           "0sckb7z0ylflva212bns7iq9mfnffgjghi0qspsbfwra35zb9xng"))))
+           "0n6d3mm43gj16v8kjjradcfik93wb89dsqnfcbskb28bvcamafid"))))
       (build-system emacs-build-system)
       (propagated-inputs
        `(("emacs-async" ,emacs-async)))
@@ -21032,7 +22798,7 @@ through Dash docsets.")
 (define-public emacs-calibredb
   (package
     (name "emacs-calibredb")
-    (version "2.5.0")
+    (version "2.8.0")
     (source
      (origin
        (method git-fetch)
@@ -21041,11 +22807,25 @@ through Dash docsets.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "11m9d015fnjf89qg6wpy0vs1vhvak5q753m4dzqrdw3jgm9zsnmv"))))
+        (base32 "19gc05k2p1l8wlkrqij9cw6d61hzknd6a9n64kzlpi87cpbav3lv"))))
     (build-system emacs-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-paths
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((calibre (assoc-ref inputs "calibre")))
+               (make-file-writable "calibredb-core.el")
+               (emacs-substitute-variables "calibredb-core.el"
+                 ("calibredb-program"
+                  (string-append calibre "/bin/calibredb"))
+                 ("calibredb-fetch-metadata-program"
+                  (string-append calibre "/bin/fetch-ebook-metadata"))))
+             #t)))))
+    (inputs
+     `(("calibre" ,calibre)))
     (propagated-inputs
      `(("emacs-dash" ,emacs-dash)
-       ("emacs-org" ,emacs-org)
        ("emacs-s" ,emacs-s)
        ("emacs-transient" ,emacs-transient)))
     (home-page "https://github.com/chenyanming/calibredb.el")
@@ -21084,8 +22864,8 @@ to be examined using Ediff.")
     (license license:expat)))
 
 (define-public emacs-info-plus
-  (let ((commit "4a6b93c170169594e1e8ea60cd799a1a88a969da")
-        (revision "2"))
+  (let ((commit "29811edf7a71764ac343631facc00268d9483146")
+        (revision "3"))
     (package
       (name "emacs-info-plus")
       (version (git-version "0" revision commit))
@@ -21098,7 +22878,7 @@ to be examined using Ediff.")
          (file-name (git-file-name name version))
          (sha256
           (base32
-           "1xzmx7m1qbl3b1x6yq1db1a108xqaa64ljfv1hdw763zmy4kc6m0"))))
+           "0ayq7z6dbf43vczbkjm1l976hxcfrmw45nfywbf1kjpzl3viy4gy"))))
       (build-system emacs-build-system)
       (home-page "https://github.com/emacsmirror/info-plus")
       (synopsis "Extensions to @file{info.el}")
@@ -21154,14 +22934,14 @@ well as an option for visually flashing evaluated s-expressions.")
 (define-public emacs-tramp
   (package
     (name "emacs-tramp")
-    (version "2.4.4.1")
+    (version "2.5.0")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://elpa.gnu.org/packages/"
                            "tramp-" version ".tar"))
        (sha256
-        (base32 "0jayd75yscaqvg6y0m6g2mgbjswyj5gqdij2az9g0j18vm5vbqy3"))))
+        (base32 "1jpnqyk108nksaym2b9v243y5zkpr4px9d070wsb9cwm3xrcd8rh"))))
     (build-system emacs-build-system)
     (arguments
      `(#:emacs ,emacs                   ;need D-Bus
@@ -21340,7 +23120,7 @@ and article extracts for Wikipedia.")
 (define-public emacs-webfeeder
   (package
   (name "emacs-webfeeder")
-  (version "1.0.0")
+  (version "1.1.1")
   (source
     (origin
       (method url-fetch)
@@ -21350,7 +23130,7 @@ and article extracts for Wikipedia.")
              ".tar"))
       (sha256
         (base32
-          "06y5vxw9m6pmbrzb8v2i3w9dnhgqxz06vyx1knmgi9cczlrj4a64"))))
+          "09caj12hfdfhlbcsmjyhw728w1f7yq13hdslh793yvfqv83ipvc4"))))
   (build-system emacs-build-system)
   (home-page "https://gitlab.com/Ambrevar/emacs-webfeeder")
   (synopsis "Build RSS and Atom webfeeds from HTML files")
@@ -21412,7 +23192,7 @@ between \"frame-width\" and \"frame-height\", between \"public\",
 (define-public emacs-ediprolog
   (package
     (name "emacs-ediprolog")
-    (version "1.2")
+    (version "2.1")
     (source
      (origin
        (method url-fetch)
@@ -21421,8 +23201,7 @@ between \"frame-width\" and \"frame-height\", between \"public\",
              version
              ".el"))
        (sha256
-        (base32
-         "039ffvp7c810mjyargmgw1i87g0z8qs8qicq826sd9aiz9hprfaz"))))
+        (base32 "1piimsmzpirw8plrpy79xbpnvynzzhcxi31g6lg6is8gridiv3md"))))
     (build-system emacs-build-system)
     (home-page "https://elpa.gnu.org/packages/ediprolog.html")
     (synopsis "Emacs Does Interactive Prolog")
@@ -21547,16 +23326,16 @@ work.")
 (define-public emacs-xterm-color
   (package
     (name "emacs-xterm-color")
-    (version "1.9")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://github.com/atomontage/xterm-color")
-                    (commit version)))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "0i9ivc5xhl5y5v0l18kbhfg8s2abb9zaimyx951b8bc0f5as68xm"))))
+    (version "2.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/atomontage/xterm-color")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "127lq50q62x06kd1xrf8lyc4rkqbfhfy86gsx1x4x169am2xk397"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/atomontage/xterm-color")
     (synopsis "ANSI & xterm-256 color text property translator for Emacs")
@@ -21648,7 +23427,7 @@ it forcibly
 (define-public emacs-elpher
   (package
     (name "emacs-elpher")
-    (version "2.9.1")
+    (version "2.10.2")
     (source
      (origin
        (method git-fetch)
@@ -21657,7 +23436,7 @@ it forcibly
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0vyqmv7dycmad1726yb6yizd21x3kkz5cj33mca11r8nh38f1qzp"))))
+        (base32 "0xqiisirpvw4ka9417pq4r73x937wl3qbf8cpn2i03akm8d58smd"))))
     (build-system emacs-build-system)
     (native-inputs
      `(("texinfo" ,texinfo)))
@@ -21668,10 +23447,10 @@ it forcibly
            (lambda _
              (invoke "makeinfo" "elpher.texi"))))))
     (home-page "gopher://thelambdalab.xyz/1/projects/elpher/")
-    (synopsis "Gopher client for Emacs")
-    (description "Elpher is a full-featured gopher client for Emacs.  Its
-features include intuitive keyboard and mouse-driven browsing, out-of-the-box
-compatibility with evil-mode, clickable web and gopher links in plain text,
+    (synopsis "Gopher and gemini client for Emacs")
+    (description "Elpher is a full-featured gopher and gemini client for
+Emacs.  Its features include intuitive keyboard and mouse-driven browsing,
+out-of-the-box compatibility with evil-mode, clickable links in plain text,
 caching of visited sites, pleasant and configurable visualization of Gopher
 directories, direct visualisation of image files, jumping directly to links by
 name (with autocompletion), a simple bookmark management system and
@@ -21796,7 +23575,7 @@ format.")
                 "0iibxplgdp34bpq1yll2gmqjd8d8lnqn4mqjvx6cdf0y438yr4jz"))))
     (build-system emacs-build-system)
     (inputs
-     `(("pandoc" ,ghc-pandoc)))
+     `(("pandoc" ,pandoc)))
     (propagated-inputs
      `(("emacs-dash" ,emacs-dash)
        ("emacs-ht" ,emacs-ht)))
@@ -21865,14 +23644,14 @@ federated microblogging social network.")
 (define-public emacs-ebdb
   (package
     (name "emacs-ebdb")
-    (version "0.6.18")
+    (version "0.6.21")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://elpa.gnu.org/packages/"
                            "ebdb-" version ".tar"))
        (sha256
-        (base32 "0znbv3c7wdgak1f1zb051vg4r29fksqh53k1j77jfmqcvwkpz2mw"))))
+        (base32 "0pp190wr6z98kggmw9ls486f9vxfimdjdbqsp263qiyi21ws98if"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/girzel/ebdb")
     (synopsis "EIEIO port of BBDB, Emacs's contact-management package")
@@ -21994,6 +23773,29 @@ contains a track position, playback will start at the specified position.")
 JIRA issue servers.")
    (license license:gpl3+)))
 
+(define-public emacs-slime-volleyball
+  (package
+    (name "emacs-slime-volleyball")
+    (version "1.1.7")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://elpa.gnu.org/packages/"
+                           "slime-volleyball-" version ".tar"))
+       (sha256
+        (base32 "0dl1x0ghfwg4vv2asz3g4plghjxpzd56fyw09vsa3s3k9xsmy3yy"))))
+    (build-system emacs-build-system)
+    (arguments '(#:include '("\\.el$" "\\.svg$" "\\.b64$" "slime\\.el\\.gz$")))
+    (home-page "http://elpa.gnu.org/packages/slime-volleyball.html")
+    (synopsis "SVG slime volleyball game")
+    (description
+     "Emacs Slime Volleyball is a volleyball game.  Win points by
+making the ball land on your opponent's side of the court.  The first
+player to five points wins!  You can play against a friend, or
+challenge the three computer opponents in one player mode.  You can
+even train opponent slimes.")
+    (license license:gpl3+)))
+
 (define-public emacs-systemd-mode
   (package
     (name "emacs-systemd-mode")
@@ -22047,7 +23849,7 @@ keybindings for skipping from host section to host section.")
 (define-public emacs-ssh-agency
   (package
     (name "emacs-ssh-agency")
-    (version "0.4")
+    (version "0.4.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -22056,7 +23858,7 @@ keybindings for skipping from host section to host section.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0895n7bss4wdydic1gflr03f2cwdyqywl16gvb599lpn288jhwvz"))))
+                "1i3zmsn0w2k7p2hlzssibckm32kf05l56mkhg96x4sf06g3pwq1d"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("dash" ,emacs-dash)))
@@ -22190,50 +23992,39 @@ Emacs that integrate with major modes like Org-mode.")
       (home-page "https://github.com/hlissner/emacs-doom-themes")
       (license license:expat))))
 
-(define-public emacs-modus-operandi-theme
+(define-public emacs-modus-themes
   (package
-    (name "emacs-modus-operandi-theme")
-    (version "0.11.0")
+    (name "emacs-modus-themes")
+    (version "1.0.2")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://elpa.gnu.org/packages/"
-                           "modus-operandi-theme-" version ".el"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://gitlab.com/protesilaos/modus-themes")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32 "11sq105vpp8rmyayfb7h8gz099kfdr7nb8n4pg81iby4fllj1kgd"))))
+        (base32 "1v82payjgx8z0qdklsrkim7xkb6hqrbs34d5qpq0sii43jwhiy5j"))))
     (build-system emacs-build-system)
-    (home-page "https://gitlab.com/protesilaos/modus-themes")
-    (synopsis "Accessible light theme (WCAG AAA)")
+    (home-page "https://protesilaos.com/modus-themes/")
+    (synopsis "Accessible themes (WCAG AAA)")
     (description
-     "Modus operandi is the light version of the Modus accessible themes for
-GNU Emacs.  The contrast ratio between foreground and background values should
-always be greater than 7:1, which conforms with the WCAG AAA accessibility
-standard.  This is the highest standard of its kind.")
-    (license license:gpl3+)))
+     "The Modus themes are designed for accessible readability.  They conform
+with the highest standard for color contrast between any given combination of
+background and foreground values.  This corresponds to the WCAG AAA standard,
+which specifies a minimum rate of distance in relative luminance of 7:1.
 
-(define-public emacs-modus-vivendi-theme
-  (package
-    (name "emacs-modus-vivendi-theme")
-    (version "0.11.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (string-append "https://elpa.gnu.org/packages/"
-                           "modus-vivendi-theme-" version ".el"))
-       (sha256
-        (base32 "14ky9cxg9cpvhgg24ra0xla2dapqjlf948470q7v0m402x1r2iif"))))
-    (build-system emacs-build-system)
-    (home-page "https://gitlab.com/protesilaos/modus-themes")
-    (synopsis "Accessible dark theme (WCAG AAA)")
-    (description
-     "Modus vivendi is the dark version of the Modus accessible themes for GNU
-Emacs.  The contrast ratio between foreground and background values should
-always be greater than 7:1, which conforms with the WCAG AAA accessibility
-standard.  This is the highest standard of its kind.")
+Modus Operandi (modus-operandi) is a light theme, while Modus
+Vivendi (modus-vivendi) is dark.  Each theme’s color palette is designed to
+meet the needs of the numerous interfaces that are possible in the Emacs
+computing environment.")
     (license license:gpl3+)))
 
-(define-public emacs-modus-themes
-  (deprecated-package "emacs-modus-themes" emacs-modus-operandi-theme))
+(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")
@@ -22492,7 +24283,7 @@ Google guidelines.")
 (define-public emacs-helm-fish-completion
   (package
     (name "emacs-helm-fish-completion")
-    (version "0.5")
+    (version "0.6")
     (home-page "https://github.com/emacs-helm/helm-fish-completion")
     (source
      (origin
@@ -22502,7 +24293,7 @@ Google guidelines.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0hpsm39kx8vpz2zmarjrkvy1capkk5lwpsmdg2xnklsck6xsn922"))))
+        (base32 "1j2vfngq3512naaayv9kx0d1q2zg1xgs69l8afc7swg72h0l0imw"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("helm" ,emacs-helm)
@@ -22512,13 +24303,37 @@ Google guidelines.")
 fish-completion.  It can be used in both Eshell and M-x shell.")
     (license license:gpl3+)))
 
+(define-public emacs-helm-switch-to-repl
+  (package
+    (name "emacs-helm-switch-to-repl")
+    (version "0.1.1")
+    (home-page "https://github.com/emacs-helm/helm-switch-to-repl")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url home-page)
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1zwzpar34b98p0fiwy9q1bxrb67nv79pv9cz4kmyypclrmrhgqa2"))))
+    (build-system emacs-build-system)
+    (propagated-inputs
+     `(("helm" ,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
+@code{helm-ff-switch-to-shell}.  It can be added to @code{helm-find-files} and
+other @code{helm-type-file} sources such as @code{helm-locate}.")
+    (license license:gpl3+)))
+
 (define-public emacs-telega
   ;; This package has versions newer than indicated on MELPA.
   ;; Get the current version from `telega-version` in telega.el.
   ;; or by running M-x telega-version.
-  (let ((commit "e53996777570a5bed84d21f6c8defd4f51c8e255")
-	(revision "0")
-	(version "0.6.28"))
+  (let ((commit "1d28dc209e2acf1a3bf2852cc620b6e412ea73f9")
+	(revision "1")
+	(version "0.7.1"))
     (package
       (name "emacs-telega")
       (version (git-version version revision commit))
@@ -22530,7 +24345,7 @@ fish-completion.  It can be used in both Eshell and M-x shell.")
                (commit commit)))
          (sha256
           (base32
-           "058x6svgy33lyqjqq0l3byv8bysqig9jmh3kx8shaqr0ypfrjhi3"))
+           "0h6kj3r36x26v6p4gkzg5s6fv0brlvrf6ycsdwnz27fw5sdb99k7"))
          (patches (search-patches
                    "emacs-telega-patch-server-functions.patch"
                    "emacs-telega-test-env.patch"))
@@ -22662,13 +24477,13 @@ fish-completion.  It can be used in both Eshell and M-x shell.")
       (description
        "Telega is a full-featured, unofficial GNU Emacs-based client for the
 Telegram messaging platform.")
-      (home-page "https://github.com/zevlg/telega.el")
+      (home-page "https://zevlg.github.io/telega.el/")
       (license license:gpl3+))))
 
 (define-public emacs-doom-modeline
   (package
     (name "emacs-doom-modeline")
-    (version "2.8.2")
+    (version "3.0.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -22676,7 +24491,7 @@ Telegram messaging platform.")
                     (commit (string-append "v" version))))
               (sha256
                (base32
-                "11srz1mr821axggs2jcmdhihxx09a2dniqv3n039wbdfaimfaidz"))
+                "08m75rl5i812pa87zcsjvb4mm3jjhpwzgx9mf2m7sxj807airz5d"))
               (file-name (git-file-name name version))))
     (build-system emacs-build-system)
     (arguments
@@ -22684,6 +24499,7 @@ Telegram messaging platform.")
     (native-inputs `(("emacs-ert-runner" ,emacs-ert-runner)))
     (propagated-inputs
      `(("emacs-all-the-icons" ,emacs-all-the-icons)
+       ("emacs-dash" ,emacs-dash)
        ("emacs-shrink-path" ,emacs-shrink-path)))
     (synopsis "Fancy and fast mode-line inspired by minimalism design")
     (description "Doom modeline is a complete modeline for GNU Emacs inspired
@@ -22692,6 +24508,98 @@ icon support, git integration, and several other utilities.")
     (home-page "https://github.com/seagle0128/doom-modeline/")
     (license license:gpl3+)))
 
+(define-public emacs-mood-line
+  (package
+    (name "emacs-mood-line")
+    (version "1.2.4")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://gitlab.com/jessieh/mood-line")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0fh9j9fkgl433nykfzjnzap5labi4sdndfk1nv4f904ij69pmvxb"))))
+    (build-system emacs-build-system)
+    (home-page "https://gitlab.com/jessieh/mood-line")
+    (synopsis "Minimal mode-line for Emacs")
+    (description
+     "Mood-line is a minimal Emacs mode-line configuration that aims to
+replicate some of the features of the Doom modeline package.")
+    (license license:gpl2+)))
+
+(define-public emacs-simple-modeline
+  (let ((commit "38973dec2912e2136d8fde5f2667063863fee15a")
+        (revision "1"))
+    (package
+      (name "emacs-simple-modeline")
+      (version (git-version"1.2" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/gexplorer/simple-modeline")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "0y70hc3x8rxr8b5x8d0a23gpcadzrn43wmrsvqqxmmkqqp45n7gj"))))
+      (build-system emacs-build-system)
+      (home-page "https://github.com/gexplorer/simple-modeline")
+      (synopsis "Simple mode-line configuration for Emacs")
+      (description
+       "This package provides a simple mode-line configuration for Emacs.")
+      (license license:gpl3+))))
+
+(define-public emacs-frames-only-mode
+  (package
+    (name "emacs-frames-only-mode")
+    (version "1.0.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/davidshepherd7/frames-only-mode")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0y0sdjixaxvywrlp2sw51wnczhk51q1svl5aghbk9rkxpwv9ys9v"))))
+    (build-system emacs-build-system)
+    (propagated-inputs
+     `(("emacs-dash" ,emacs-dash)
+       ("emacs-s" ,emacs-s)))
+    (home-page "https://github.com/davidshepherd7/frames-only-mode")
+    (synopsis "Use frames instead of Emacs windows")
+    (description
+     "This is an Emacs global minor mode to use Emacs frames instead of Emacs'
+internal windowing system.  This combines particularly well with tiling window
+managers such as XMonad.")
+    (license license:gpl3+)))
+
+(define-public emacs-modalka
+  (package
+    (name "emacs-modalka")
+    (version "0.1.5")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/mrkkrp/modalka")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0ggj8q92sb6wp3hs1vhpmy56id0p3i9zwnw24g2v7xa7w8ac9s7l"))))
+    (build-system emacs-build-system)
+    (home-page "https://github.com/mrkkrp/modalka")
+    (synopsis "Minor mode to easily define native custom modal editing")
+    (description
+     "This is a building kit to help switch to modal editing in Emacs.  The
+main goal of the package is to make modal editing in Emacs as natural and
+native as possible.  Modalka lets you define your own keys and does not come
+with a preconfigured set of keys.")
+    (license license:gpl3+)))
+
 (define-public emacs-shrink-path
   (package
     (name "emacs-shrink-path")
@@ -22907,30 +24815,26 @@ interface.")
       (license license:gpl3+))))
 
 (define-public emacs-ivy-posframe
-  (let ((commit "ae9bafe94fe6b77b6fe45766ae6172646f6a5d50"))
-    (package
-      (name "emacs-ivy-posframe")
-      (version (git-version "0.1.0" "1" commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/tumashu/ivy-posframe")
-               (commit commit)))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32
-           "1j6yns5d7lh2v1nfcznrirl7qicdli9csciqvfgj4gkh72a97pw1"))))
-      (build-system emacs-build-system)
-      (propagated-inputs
-       `(("emacs-posframe" ,emacs-posframe)
-         ("emacs-ivy" ,emacs-ivy)))
-      (home-page "https://github.com/tumashu/ivy-posframe")
-      (synopsis "Pop a posframe (a child frame) to show Ivy candidates")
-      (description
-       "This package provides an Emacs Ivy extension, which let Ivy use
+  (package
+    (name "emacs-ivy-posframe")
+    (version "0.5.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://elpa.gnu.org/packages/"
+                           "ivy-posframe-" version ".tar"))
+       (sha256
+        (base32 "184730grclxmlw6nfs41d4g6fvz9c6xnclvwgqx1ii0xm7p9xy95"))))
+    (build-system emacs-build-system)
+    (propagated-inputs
+     `(("emacs-ivy" ,emacs-ivy)
+       ("emacs-posframe" ,emacs-posframe)))
+    (home-page "https://github.com/tumashu/ivy-posframe")
+    (synopsis "Pop a posframe (a child frame) to show Ivy candidates")
+    (description
+     "This package provides an Emacs Ivy extension, which let Ivy use
 posframe to show its candidate menu.")
-      (license license:gpl3+))))
+    (license license:gpl3+)))
 
 (define-public emacs-shackle
   (let ((commit "7ccbe513852a1d1700b698547efca14b8940319d")
@@ -23239,7 +25143,7 @@ pattern guessed from thing under current cursor position.
 (define-public emacs-helm-selector
   (package
     (name "emacs-helm-selector")
-    (version "0.3")
+    (version "0.6.1")
     (home-page "https://github.com/emacs-helm/helm-selector")
     (source
      (origin
@@ -23250,7 +25154,7 @@ pattern guessed from thing under current cursor position.
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "134rxm4zicn565k3q5q15iiqcvcyiq6lsvmsqr53ifjjbq8pd9y6"))))
+         "01lh1df0bnas1p7xlqc4i1jd67f8lxgq0q2zsvx10z8828i76j3v"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-helm" ,emacs-helm)))
@@ -23545,7 +25449,7 @@ launching other commands/applications from within Emacs, similar to the
 (define-public emacs-no-littering
   (package
     (name "emacs-no-littering")
-    (version "1.0.3")
+    (version "1.2.0")
     (source
      (origin
        (method git-fetch)
@@ -23554,7 +25458,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 "17is06l0w6glppabv2kaclrnqi3dqb6p6alpslpg7lrjd8vd45ir"))))
+        (base32 "1hma9var0nmrmjlh16s49hbfc1s4jvfd2prqxf14lxfd51404niw"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/emacscollective/no-littering")
     (synopsis "Help keep ~/.emacs.d/ clean")
@@ -23569,7 +25473,7 @@ files and subdirectories when appropriate.")
 (define-public emacs-meson-mode
   (package
     (name "emacs-meson-mode")
-    (version "0.2")
+    (version "0.3")
     (source
      (origin
        (method git-fetch)
@@ -23578,7 +25482,7 @@ files and subdirectories when appropriate.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1720b3hpfqd989zrgcns51jbjrv4vzl9di9mccl55vkmkbqzfin0"))))
+        (base32 "0hlqvq3j4f6g16nj3bm2wbkncn8hv8c8iqd0sch3w80wwqnr622y"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/wentasah/meson-mode")
     (synopsis "Major mode for Meson build system files")
@@ -23726,7 +25630,7 @@ variables.")
 (define-public emacs-company-emoji
   (package
     (name "emacs-company-emoji")
-    (version "2.5.2")
+    (version "2.6.0")
     (source
      (origin
        (method git-fetch)
@@ -23735,7 +25639,7 @@ variables.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0r9zcbm3nb3zw5cwrkl098v5b49jbga5404bj7j55g6k4rwkjar2"))))
+        (base32 "0pa67yfcr8lrxdbvln8hs663gsxz38ggwpva7121ngascqgx42wp"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-company" ,emacs-company)))
@@ -23832,7 +25736,7 @@ Files} (@url{http://tools.ietf.org/html/rfc4180}).")
 (define-public emacs-org-journal
   (package
     (name "emacs-org-journal")
-    (version "2.0.0")
+    (version "2.1.1")
     (source
      (origin
        (method git-fetch)
@@ -23841,7 +25745,7 @@ Files} (@url{http://tools.ietf.org/html/rfc4180}).")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "18dqd0jy2x530lk0h4fcn9cld9qh4w7b3vxa60fpiia628vsv1dg"))))
+        (base32 "1p9i6v3bwi1ab576vc9qg1ki91197d6nkkg857s52zsan1zlkzzw"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/bastibe/org-journal")
     (synopsis "Simple Org mode journaling mode")
@@ -23987,7 +25891,7 @@ snippets for Emacs.")
 (define-public emacs-org-roam
   (package
     (name "emacs-org-roam")
-    (version "1.2.1")
+    (version "1.2.2")
     (source
      (origin
        (method git-fetch)
@@ -23996,7 +25900,7 @@ snippets for Emacs.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "10s7mcyshgj6yva4k1j086xm61k9zck3r586f1maar5b2z6hwvsa"))))
+        (base32 "0fanv0nl03qn65amxsq4q544zrhv94a37gdg9bwydik9439avbsc"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-company" ,emacs-company)
@@ -24014,6 +25918,33 @@ as a plug-and-play solution for anyone already using Org mode for their
 personal wiki.")
     (license license:gpl3+)))
 
+(define-public emacs-org-roam-bibtex
+  (package
+    (name "emacs-org-roam-bibtex")
+    (version "0.4.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/org-roam/org-roam-bibtex")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "13pll793khyfncpwm2dg24w747sqp7kgf7m3fqw2xzhv9cx2g7nq"))))
+    (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)))
+    (home-page "https://github.com/org-roam/org-roam-bibtex")
+    (synopsis "Connector between Org Roam, BibTeX-completion, and Org Ref")
+    (description
+     "Org Roam BibTeX is a library which offers a tighter integration between
+Org Roam, Helm-BibTeX, and Org Ref.  It allows users to access their
+bibliographical notes in Org Roam directory via Helm BibTeX, Ivy BibTeX, or by
+opening Org Ref's @code{cite:} links.")
+    (license license:gpl3+)))
+
 (define-public emacs-org-generate
   (package
     (name "emacs-org-generate")
@@ -24021,7 +25952,7 @@ personal wiki.")
     (source (origin
               (method git-fetch)
               (uri (git-reference
-                    (url "https://github.com/conao3/org-generate.el.git")
+                    (url "https://github.com/conao3/org-generate.el")
                     (commit (string-append "v" version))))
               (file-name (git-file-name name version))
               (sha256
@@ -24039,7 +25970,7 @@ personal wiki.")
     (build-system emacs-build-system)
     (home-page "https://github.com/conao3/org-generate.el")
     (synopsis "Generate template files and folders from Org document")
-    (description "This package allows to generate files and folders from Emacs
+    (description "This package generates files and folders from Emacs
 org-mode templates.")
     (license license:gpl3+)))
 
@@ -24071,7 +26002,7 @@ comments or emails.")
 (define-public emacs-trashed
   (package
     (name "emacs-trashed")
-    (version "1.9.0")
+    (version "2.1.2")
     (source
      (origin
        (method git-fetch)
@@ -24080,7 +26011,7 @@ comments or emails.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "13grdi12iwlw4fiphdfmvclfpbr6ajlgfbfyi7v41z8k3rxz4ypz"))))
+        (base32 "0lfza55nbb62nmr27cwpcz2ad1vm95piq4nfd8zvkwqbn6klwmm6"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/shingo256/trashed/")
     (synopsis "View and edit system trash can in Emacs")
@@ -24140,6 +26071,45 @@ sources.  It features syntax highlighting, autocompletion, preview of buffer
 or region and use of locally installed binaries.")
     (license license:gpl3+)))
 
+(define-public emacs-execline
+  (let ((commit "c75dd9b2c54d8e59fc35fd4bd98d8e213948a3f5")
+        (revision "1"))
+    (package
+      (name "emacs-execline")
+      (version (git-version "0.1" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://gitlab.com/KAction/emacs-execline/")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "02q531c9wvdwflhggflnci4a36h2bb90bq25bbhw6i2lvrd9sk55"))))
+      (build-system emacs-build-system)
+      (propagated-inputs
+       `(("emacs-s" ,emacs-s)))
+      (arguments
+       `(#:tests? #t
+         #:test-command '("emacs" "-Q" "-batch" "-L" "."
+                          "-l" "t/indent.el"
+                          "-f" "ert-run-tests-batch-and-exit")))
+      (home-page "https://gitlab.com/KAction/emacs-execline/")
+      (synopsis "Major Emacs mode for editing execline scripts")
+      (description
+       "This package provides a major mode for editing execline scripts.
+
+Features:
+@itemize
+@item Syntax highlighting of commends, builtin commands and variable substitution.
+@item Completion of builtin commands.
+@item Working @code{comment-region} command.
+@item Indentation of blocks.
+@item Automatic enable of mode in @file{*.exec} files.
+@item Automatic enable of mode in files with @code{execlineb} interpreter.
+@end itemize\n")
+      (license license:gpl3+))))
+
 (define-public emacs-shell-pop
   (let ((commit "4b4394037940a890a313d715d203d9ead2d156a6")
         (revision "0"))
@@ -24271,3 +26241,454 @@ applying highlighting to any face in GNU Emacs.  The functionality
 of this library depends on overlays, which by default are not
 picked up when copy-pasting text from buffer to buffer.")
       (license license:gpl2+))))
+
+(define-public emacs-org-webring
+  (package
+    (name "emacs-org-webring")
+    (version "2.0.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://git.sr.ht/~brettgilio/org-webring")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1si0jah7n2gvlvghjy5dpannqpkxni5rczfp1x2a4z6ydalr3bn5"))))
+    (build-system emacs-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'install-assets
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (assets
+                     (string-append out "/share/emacs/org-webring-assets")))
+               (mkdir-p assets)
+               (copy-recursively "assets" assets)
+               #t))))))
+    (propagated-inputs
+     `(("emacs-xmlgen" ,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
+feed-based webring, taking inspiration from openring by Drew DeVault.
+Intended to integrate with Org-based websites and blogs (either
+directly, or indirectly, as in ox-hugo), it will fetch a given list of
+web feed files and correctly parse and format the elements to be
+displayed for sharing.")
+    (license license:gpl3+)))
+
+(define-public emacs-scpaste
+  (let ((commit "cd4fa0aafecd839736e0b6cba68b4fc4d7045472")
+        (revision "0"))
+    (package
+      (name "emacs-scpaste")
+      (version "0.6.5")
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://git.sr.ht/~technomancy/scpaste")
+               (commit commit)))
+         (file-name (git-file-name name commit))
+         (sha256
+          (base32
+           "1nvwbwl26z03963g9c82b3ggm39r95z1vp7c9qsa9mjm46dyq27w"))))
+      (build-system emacs-build-system)
+      (propagated-inputs
+       `(("emacs-htmlize" ,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
+buffer on an active webserver to which the user has SSH access.
+It is similar in purpose to services such as Gist or Pastebin,
+but is much simpler since it assumes the user has access to a
+publicly-accessible HTTP server.")
+      (license license:gpl3+))))
+
+(define-public emacs-company-reftex
+  (package
+    (name "emacs-company-reftex")
+    (version "0.1.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/TheBB/company-reftex")
+             (commit "275ef708f08d3bf0eb30632148e5c6184eeaacdb")))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "118cgw5lsffqdqz95mnkw36mmnsbg9m52r2np4m7v14mjjwr9fby"))))
+    (build-system emacs-build-system)
+    (propagated-inputs
+     `(("emacs-company" ,emacs-company)
+       ("emacs-s" ,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
+label references and citations in LaTeX.  It is based on RefTeX, which is
+included with Emacs.")
+    (license license:gpl3+)))
+
+(define-public emacs-html-to-hiccup
+  ;; Package has no release.  Version is extracted from "Version:" keyword in
+  ;; main file.
+  (let ((commit "50a52e2b0d13d865187acdf775b8203d5003f2f1")
+        (revision "0"))
+    (package
+      (name "emacs-html-to-hiccup")
+      (version (git-version "1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/plexus/html-to-hiccup")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1qi092mw2n08v6yr0j6hlpx0pnlcnhxjqbsrlw9pn4yin6zk91yp"))))
+      (build-system emacs-build-system)
+      (propagated-inputs
+       `(("dash" ,emacs-dash)
+         ("s" ,emacs-s)))
+      (home-page "https://github.com/plexus/html-to-hiccup")
+      (synopsis "Turn HTML into Hiccup syntax")
+      (description
+       "This is an Emacs package that turns HTML into Hiccup syntax
+which is a popular notation to use when doing Clojure/ClojureScript
+web development.")
+      ;; There is a conflict between the repository official LICENSE
+      ;; file and the header of the main elisp file which indicates
+      ;; that it is licensed under the GPL version 3 or later.
+      (license (list license:mpl2.0 license:gpl3+)))))
+
+(define-public emacs-iter2
+  (package
+    (name "emacs-iter2")
+    (version "1.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/doublep/iter2")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0gaq3z2v1q4r9mkyq71dzmqakhi0p8g7ph4z0n3a11rvyc3z9ykx"))))
+    (build-system emacs-build-system)
+    (home-page "https://github.com/doublep/iter2")
+    (synopsis "Reimplementation of Elisp generators")
+    (description "@code{iter2} is a fully compatible reimplementation of
+built-in generator package.  It provides @code{iter2-defun} and
+@code{iter2-lambda} forms that can be used in place of @code{iter-defun} and
+@code{iter-lambda}.  All other functions and macros (e.g. @code{iter-yield},
+@code{iter-next}) are intentionally not duplicated: just use the ones from the
+original package.")
+    (license license:gpl3+)))
+
+(define-public emacs-promise
+  (package
+    (name "emacs-promise")
+    (version "1.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/chuntaro/emacs-promise")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1xb34zdbwjvahfhycjphdkm925kgd22dr298c57hwxza4ljc2hxj"))))
+    (build-system emacs-build-system)
+    (home-page "https://github.com/chuntaro/emacs-promise")
+    (synopsis "Promises/A+ for Emacs")
+    (description "This is a simple implementation of Promises/A+.
+
+This implementation ports the following Promises/A+ features
+faithfully.  See @url{https://github.com/then/promise}.
+
+@itemize
+@item The same API as the JavaScript version of Promise can be used.
+@item It has all the @code{then}, @code{catch}, @code{resolve}, @code{reject},
+@code{all}, @code{race}, etc.
+@item It supports \"thenable\".
+@item It supports \"Inheritance of Promise\".
+@item It supports \"rejection-tracking\".
+@end itemize\n")
+    (license license:gpl3+)))
+
+(define-public emacs-async-await
+  (package
+    (name "emacs-async-await")
+    (version "1.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/chuntaro/emacs-async-await")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0aav9qdswnw7ynqlzn0sm34as5fj2d85syxgg8zjabzp6646ay29"))))
+    (build-system emacs-build-system)
+    (propagated-inputs
+     `(("promise" ,emacs-promise)
+       ("iter2" ,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
+the TypeScript implementation.")
+    (license license:gpl3+)))
+
+(define-public emacs-rocket-chat
+  ;; No release.
+  (let ((commit "96fe27a8678de5ae4061f635108a7192eee13f98"))
+    (package
+      (name "emacs-rocket-chat")
+      (version (git-version "0.0.0" "1" commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/4hiziri/rocket-chat")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "02a4j0yy7330kfr3rd3k2agdj01ii6989nki598anbamq6xvj5ql"))))
+      (build-system emacs-build-system)
+      (propagated-inputs
+       `(("async-await" ,emacs-async-await)
+         ("request" ,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
+service.")
+      (license license:expat))))
+
+(define-public emacs-monokai-theme
+  (package
+    (name "emacs-monokai-theme")
+    (version "3.5.3")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/oneKelvinSmith/monokai-emacs")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0dy8c3349j7fmp8052hbgvk0b7ldlv5jqpg0paq1i0hlypivd30i"))))
+    (build-system emacs-build-system)
+    (home-page "https://github.com/oneKelvinSmith/monokai-emacs")
+    (synopsis "High contrast color theme for Emacs")
+    (description
+     "Monokai theme is a port of the popular TextMate Monokai theme for
+Emacs.")
+    (license license:gpl3+)))
+
+(define-public emacs-nord-theme
+  (package
+    (name "emacs-nord-theme")
+    (version "0.5.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/arcticicestudio/nord-emacs")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "096f8cik4jz89bvkifwp3gm9iraqrd75ljy2q9js724v7yj88711"))))
+    (build-system emacs-build-system)
+    (home-page "https://www.nordtheme.com/")
+    (synopsis "Low contrast arctic color theme for Emacs")
+    (description
+     "Nord is an arctic, north-bluish color scheme created for a clean and
+uncluttered design pattern to achieve optimal focus and readability for code
+syntax highlighting and UI components.")
+    (license license:expat)))
+
+(define-public emacs-janet-mode
+  (let ((commit "2f5bcabcb6953e1ed1926ba6a2328c453e8b4ac7"))
+    (package
+      (name "emacs-janet-mode")
+      (version (git-version "0.1.0" "1" commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/ALSchwalm/janet-mode")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0qj0gpycv2f3z1dgz1a27bjn983hrr3ppvrp7csl34lagnmp89rz"))))
+      (build-system emacs-build-system)
+      (home-page "https://github.com/ALSchwalm/janet-mode")
+      (synopsis "Emacs major mode for the Janet programming language")
+      (description
+       "This package provides an Emacs major mode for editing Janet files.")
+      (license license:gpl3))))
+
+(define-public emacs-inf-janet
+  (let ((commit "df46651d3aad32593b2195c80ca91fb64d571fb7"))
+    (package
+      (name "emacs-inf-janet")
+      (version (git-version "0.1.0" "1" commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/velkyel/inf-janet")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0g0y7q62667j0p32md1h6zb2cap9fga9qgdg7138xwjqnk0328v7"))))
+      (build-system emacs-build-system)
+      (propagated-inputs
+       `(("janet-mode" ,emacs-janet-mode)))
+      (arguments
+       `(#:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'fix-program-name
+             (lambda _
+               (make-file-writable "inf-janet.el")
+               (emacs-substitute-variables "inf-janet.el"
+                 ("inf-janet-program" "janet"))
+               #t)))))
+      (home-page "https://github.com/velkyel/inf-janet")
+      (synopsis "Run an external Janet process in an Emacs buffer")
+      (description
+       "This Emacs package provides a Janet REPL to evaluate @code{janet-mode}
+s-expression.")
+      (license license:expat))))
+
+(define-public emacs-map
+  (package
+    (name "emacs-map")
+    (version "2.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://elpa.gnu.org/packages/map-"
+                           version ".el"))
+       (sha256
+        (base32
+         "0ydz5w1n4vwhhzxxj003s7jv8n1wjijwfryk5z93bwhnr0cak0i0"))))
+    (build-system emacs-build-system)
+    (home-page "http://elpa.gnu.org/packages/map.html")
+    (synopsis "Map manipulation functions")
+    (description "This package provides Emacs map-manipulation functions that
+work on alists, hash-table and arrays.  All functions are prefixed with
+@code{map-}.")
+    (license license:gpl3+)))
+
+(define-public emacs-xref
+  (package
+    (name "emacs-xref")
+    (version "1.0.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://elpa.gnu.org/packages/"
+                           "xref-" version ".el"))
+       (sha256
+        (base32 "0hkm59qqlsfw3w9ws9xhpmmz30ylifmh05a00ba58zvv1kz04x1g"))))
+    (build-system emacs-build-system)
+    (home-page "http://elpa.gnu.org/packages/xref.html")
+    (synopsis "Cross-referencing commands")
+    (description
+     "This library provides a generic infrastructure for cross referencing
+commands, in particular @code{find-definition}.")
+    (license license:gpl3+)))
+
+(define-public emacs-burly
+  (package
+    (name "emacs-burly")
+    (version "0.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/alphapapa/burly.el")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1vaikknjzmhpszyi4yxjjkp1ihgmhpbnbx1s5pjy4mnhl1ibi33b"))))
+    (build-system emacs-build-system)
+    (propagated-inputs
+     `(("emacs-map" ,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
+window configurations in Emacs, including buffers that may not be live
+anymore.  In this way, it's like a lightweight \"workspace\" manager, allowing
+you to easily restore one or more frames, including their windows, the
+windows' layout, and their buffers.")
+    (license license:gpl3+)))
+
+(define-public emacs-smart-hungry-delete
+  (let ((commit "7c1d56a92481594e14d40b5fdf6c48657a0108a0"))
+    (package
+      (name "emacs-smart-hungry-delete")
+      (version "0.1")
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/hrehfeld/emacs-smart-hungry-delete")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "0mxaslx5823s68a8ggbbnmfk1jiswjvip5s4sg7ihfagnci72wni"))))
+      (build-system emacs-build-system)
+      (home-page "https://github.com/hrehfeld/emacs-smart-hungry-delete")
+      (synopsis "Smart hungry deletion of whitespace")
+      (description "@code{emacs-smart-hungry-delete} hungrily deletes whitespace
+between cursor and next word, parenthesis or delimiter while honoring some
+rules about where space should be left to separate words and parentheses.")
+      (license license:gpl2+))))
+
+(define-public emacs-webpaste
+  (package
+    (name "emacs-webpaste")
+    (version "3.2.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/etu/webpaste.el")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "08545ihkzflw80rwklnxiswrpdrl8kr74xzxm5wsgrf36fkj9rn2"))))
+    (build-system emacs-build-system)
+    (arguments
+     `(#:tests? #t
+       #:test-command '("make" "unit" "integration")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-tests
+           (lambda _
+             ;; Do not use cask to run tests.
+             (substitute* "Makefile"
+               (("\\$\\{CASK\\} exec ") ""))
+             ;; Disable tests that need network access.
+             (substitute* (list "tests/unit/test-webpaste-provider-creation.el"
+                                "tests/integration/test-webpaste-providers.el")
+               (("describe") "xdescribe")))))))
+    (native-inputs
+     `(("emacs-buttercup" ,emacs-buttercup)))
+    (propagated-inputs
+     `(("emacs-request" ,emacs-request)))
+    (home-page "https://github.com/etu/webpaste.el")
+    (synopsis "Paste to pastebin-like services")
+    (description "This mode allows to paste whole buffers or parts of buffers
+to pastebin-like services.  It supports more than one service and will
+failover if one service fails.  More services can easily be added over time
+and prefered services can easily be configured.")
+    (license license:gpl3+)))
diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index ad8d4b0606..ca14584ada 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -2,7 +2,7 @@
 ;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2019 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2014 Taylan Ulrich Bayirli/Kammer <taylanbayirli@gmail.com>
-;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019 Mark H Weaver <mhw@netris.org>
+;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2014, 2015, 2016, 2017 Alex Kost <alezost@gmail.com>
 ;;; Copyright © 2016, 2018 Arun Isaac <arunisaac@systemreboot.net>
 ;;; Copyright © 2016 Federico Beffa <beffa@fbengineering.ch>
@@ -21,6 +21,7 @@
 ;;; Copyright © 2019 Leo Prikler <leo.prikler@student.tugraz.at>
 ;;; Copyright © 2019 Amin Bandali <bandali@gnu.org>
 ;;; Copyright © 2020 Jack Hill <jackhill@jackhill.us>
+;;; Copyright © 2020 Morgan Smith <Morgan.J.Smith@outlook.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -58,9 +59,9 @@
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages guile)
   #:use-module (gnu packages image)
-  #:use-module (gnu packages imagemagick)
   #:use-module (gnu packages linux)     ; alsa-lib
   #:use-module (gnu packages mail)      ; for mailutils
+  #:use-module (gnu packages multiprecision)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages texinfo)
@@ -75,14 +76,14 @@
 (define-public emacs
   (package
     (name "emacs")
-    (version "26.3")
+    (version "27.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnu/emacs/emacs-"
                                   version ".tar.xz"))
               (sha256
                (base32
-                "119ldpk7sgn9jlpyngv5y4z3i7bb8q3xp4p0qqi7i5nq39syd42d"))
+                "0h9f2wpmp6rb5rfwvqwv1ia1nw86h74p7hnz3vb3gjazj67i4k2a"))
               (patches (search-patches "emacs-exec-path.patch"
                                        "emacs-fix-scheme-indent-function.patch"
                                        "emacs-ignore-empty-xim-styles.patch"
@@ -95,15 +96,7 @@
                   (for-each delete-file
                             (append (find-files "." "\\.elc$")
                                     (find-files "." "loaddefs\\.el$")
-                                    ;; This is the only "autoloads" file that
-                                    ;; does not have "*loaddefs.el" name.
-                                    ;; TODO: Next time changing this package,
-                                    ;; replace the following with a call to
-                                    ;; `find-files', so that `delete-file'
-                                    ;; wouldn't error out when the file is
-                                    ;; missing, making the entire snippet field
-                                    ;; reusable as-is for `emacs-next' below.
-                                    '("eshell/esh-groups.el")))
+                                    (find-files "eshell" "^esh-groups\\.el$")))
 
                   ;; Make sure Tramp looks for binaries in the right places on
                   ;; remote Guix System machines, where 'getconf PATH' returns
@@ -130,6 +123,7 @@
     (arguments
      `(#:tests? #f                      ; no check target
        #:configure-flags (list "--with-modules"
+                               "--with-cairo"
                                "--disable-build-details")
        #:phases
        (modify-phases %standard-phases
@@ -156,7 +150,7 @@
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (let* ((out      (assoc-ref outputs "out"))
                     (lisp-dir (string-append out "/share/emacs/site-lisp"))
-                    (emacs (string-append out "/bin/emacs")))
+                    (emacs    (string-append out "/bin/emacs")))
 
                ;; This is duplicated from emacs-utils to prevent coupling.
                (define* (emacs-byte-compile-directory dir)
@@ -180,7 +174,47 @@
                ;; which leads to conflicts.
                (delete-file (string-append lisp-dir "/subdirs.el"))
                ;; Byte compile the site-start files.
-               (emacs-byte-compile-directory lisp-dir)))))))
+               (emacs-byte-compile-directory lisp-dir))
+             #t))
+         (add-after 'glib-or-gtk-wrap 'restore-emacs-pdmp
+           ;; restore the dump file that Emacs installs somewhere in
+           ;; libexec/ to its original state
+           (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))
+         (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
+             ;; twice.  This also fixes a minor issue, where WMs would not be
+             ;; able to track emacs back to emacs.desktop.  The version is
+             ;; accessed using using THIS-PACKAGE so it "just works" for
+             ;; inherited Emacs packages of different versions.
+             (with-directory-excursion (assoc-ref outputs "out")
+               (copy-file (string-append
+                           "bin/emacs-"
+                           ,(let ((this-version (package-version this-package)))
+                              (or (false-if-exception
+                                   (version-major+minor+point this-version))
+                                  (version-major+minor this-version))))
+                          "bin/emacs")
+               #t)))
+         (add-before 'reset-gzip-timestamps 'make-compressed-files-writable
+           ;; The 'reset-gzip-timestamps phase will throw a permission error
+           ;; if gzip files aren't writable then.  This phase is needed when
+           ;; building from a git checkout.
+           (lambda _
+             (for-each make-file-writable
+                       (find-files %output ".*\\.t?gz$"))
+             #t)))))
     (inputs
      `(("gnutls" ,gnutls)
        ("ncurses" ,ncurses)
@@ -192,12 +226,16 @@
        ;; TODO: Add the optional dependencies.
        ("libx11" ,libx11)
        ("gtk+" ,gtk+)
+       ("cairo" ,cairo)
+       ("pango" ,pango)
+       ("harfbuzz" ,harfbuzz)
        ("libxft" ,libxft)
        ("libtiff" ,libtiff)
        ("giflib" ,giflib)
        ("libjpeg" ,libjpeg-turbo)
-       ("imagemagick" ,imagemagick)
        ("acl" ,acl)
+       ("jansson" ,jansson)
+       ("gmp" ,gmp)
 
        ;; When looking for libpng `configure' links with `-lpng -lz', so we
        ;; must also provide zlib as an input.
@@ -244,118 +282,84 @@ languages.")
     (license license:gpl3+)))
 
 (define-public emacs-next
-  (let ((commit "c36c5a3dedbb2e0349be1b6c3b7567ea7b594f1c")
-        (revision "0")
-        (emacs-version "27.0.91"))
-    (package
-      (inherit emacs)
+  (let ((commit "2ea34662c20f71d35dd52a5ed996542c7386b9cb")
+        (revision "0"))
+    (package/inherit emacs
       (name "emacs-next")
-      (version (git-version emacs-version revision commit))
+      (version (git-version "28.0.50" revision commit))
       (source
        (origin
+         (inherit (package-source emacs))
          (method git-fetch)
          (uri (git-reference
-               (url "https://git.savannah.gnu.org/git/emacs.git")
+               (url "https://git.savannah.gnu.org/git/emacs.git/")
                (commit commit)))
-         (sha256
-          (base32 "0mlrg2npy1r79laahkgzhxd1qassfcdz8qk1cpw7mqgf6y5x505h"))
          (file-name (git-file-name name version))
-         (patches (search-patches "emacs27-exec-path.patch"
-                                  "emacs-fix-scheme-indent-function.patch"
-                                  "emacs-ignore-empty-xim-styles.patch"
-                                  "emacs-source-date-epoch.patch"))
-         (modules (origin-modules (package-source emacs)))
-         ;; TODO: once the snippet for `emacs' is changed to not fail when
-         ;; eshell/esh-groups.el does not exist, replace this snippet with
-         ;; (snippet (origin-snippet (package-source emacs))))).
-         (snippet
-          '(with-directory-excursion "lisp"
-             ;; Make sure Tramp looks for binaries in the right places on
-             ;; remote Guix System machines, where 'getconf PATH' returns
-             ;; something bogus.
-             (substitute* "net/tramp-sh.el"
-               ;; Patch the line after "(defcustom tramp-remote-path".
-               (("\\(tramp-default-remote-path")
-                (format #f "(tramp-default-remote-path ~s ~s ~s ~s "
-                        "~/.guix-profile/bin" "~/.guix-profile/sbin"
-                        "/run/current-system/profile/bin"
-                        "/run/current-system/profile/sbin")))
-
-             ;; Make sure Man looks for C header files in the right
-             ;; places.
-             (substitute* "man.el"
-               (("\"/usr/local/include\"" line)
-                (string-join
-                 (list line
-                       "\"~/.guix-profile/include\""
-                       "\"/var/guix/profiles/system/profile/include\"")
-                 " ")))
-             #t))))
-      (arguments
-       (substitute-keyword-arguments (package-arguments emacs)
-         ((#:configure-flags flags)
-          `(cons* "--with-harfbuzz" ,flags))
-         ((#:phases phases)
-          `(modify-phases ,phases
-             ;; The 'reset-gzip-timestamps phase will throw a
-             ;; permission error if gzip files aren't writable then
-             (add-before
-                 'reset-gzip-timestamps
-                 'make-compressed-files-writable
-               (lambda _
-                 (for-each make-file-writable
-                           (find-files %output ".*\\.t?gz$"))
-                 #t))
-             ;; restore the dump file that Emacs installs somewhere in
-             ;; libexec/ to its original state
-             (add-after 'glib-or-gtk-wrap 'restore-emacs-pdmp
-               (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)))))))
-      (inputs
-       `(("jansson" ,jansson)
-         ("harfbuzz" ,harfbuzz)
-         ;; Emacs no longer uses ImageMagick by default
-         ;; https://git.savannah.gnu.org/cgit/emacs.git/tree/etc/NEWS?h=emacs-27.0.91&id=c36c5a3dedbb2e0349be1b6c3b7567ea7b594f1c#n102
-         ,@(alist-delete "imagemagick" (package-inputs emacs))))
+         (sha256
+          (base32
+           "0igjm9kwiswn2dpiy2k9xikbdfc7njs07ry48fqz70anljj8y7y3"))))
       (native-inputs
-       `(("autoconf" ,autoconf)      ; needed when building from trunk
+       `(("autoconf" ,autoconf)
          ,@(package-native-inputs emacs)))
-
-      ;; TODO: consider changing `emacs' to use a more robust way of
-      ;; specifying version for "EMACSLOADPATH", so as to avoid having to
-      ;; duplicate native-search-paths here.
       (native-search-paths
        (list (search-path-specification
               (variable "EMACSLOADPATH")
               ;; The versioned entry is for the Emacs' builtin libraries.
-              (files
-               (list "share/emacs/site-lisp"
-                     (string-append "share/emacs/" emacs-version "/lisp"))))
+              (files (list "share/emacs/site-lisp"
+                           (string-append "share/emacs/"
+                                          (version-major+minor+point version)
+                                          "/lisp"))))
              (search-path-specification
               (variable "INFOPATH")
               (files '("share/info"))))))))
 
+(define-public emacs-next-pgtk
+  (let ((commit "d46a223d8595e8edb67c6361033625797503cacf")
+        (revision "0"))
+    (package/inherit emacs-next
+      (name "emacs-next-pgtk")
+      (version (git-version "28.0.50" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://git.savannah.gnu.org/git/emacs.git/")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "1fhkgqsdpy3qkf8wyjvavnfyh8byxh0h80n0448rkg9k0lrkl4wf"))))
+      (arguments
+       (substitute-keyword-arguments (package-arguments emacs-next)
+         ((#:configure-flags flags ''())
+          `(cons* "--with-pgtk" "--with-xwidgets" ,flags))))
+      (propagated-inputs
+       `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
+         ("glib-networking" ,glib-networking)))
+      (inputs
+       `(("webkitgtk" ,webkitgtk)
+         ,@(package-inputs emacs-next)))
+      (home-page "https://github.com/masm11/emacs")
+      (synopsis "Emacs text editor with @code{pgtk} and @code{xwidgets} support")
+      (description "This is an unofficial Emacs fork build with a pure-GTK
+graphical toolkit to work natively on Wayland.  In addition to that, xwidgets
+also enabled and works without glitches even on X server."))))
+
 (define-public emacs-minimal
   ;; This is the version that you should use as an input to packages that just
   ;; need to byte-compile .el files.
-  (package (inherit emacs)
+  (package/inherit emacs
     (name "emacs-minimal")
     (synopsis "The extensible text editor (used only for byte-compilation)")
     (build-system gnu-build-system)
     (arguments
      (substitute-keyword-arguments (package-arguments emacs)
        ((#:configure-flags flags ''())
-        `(list "--with-gnutls=no" "--disable-build-details"))))
+        `(list "--with-gnutls=no" "--disable-build-details"))
+       ((#:phases phases)
+        `(modify-phases ,phases
+           (delete 'restore-emacs-pdmp)
+           (delete 'strip-double-wrap)))))
     (inputs
      `(("guix-emacs.el" ,(search-auxiliary-file "emacs/guix-emacs.el"))
        ("ncurses" ,ncurses)))
@@ -363,8 +367,7 @@ languages.")
      `(("pkg-config" ,pkg-config)))))
 
 (define-public emacs-xwidgets
-  (package
-    (inherit emacs)
+  (package/inherit emacs
     (name "emacs-xwidgets")
     (synopsis "The extensible, customizable, self-documenting text
 editor (with xwidgets support)")
@@ -372,14 +375,18 @@ editor (with xwidgets support)")
     (arguments
      (substitute-keyword-arguments (package-arguments emacs)
        ((#:configure-flags flags ''())
-        `(cons "--with-xwidgets" ,flags))))
+        `(cons "--with-xwidgets" ,flags))
+       ((#:phases phases)
+        `(modify-phases ,phases
+           (delete 'restore-emacs-pdmp)
+           (delete 'strip-double-wrap)))))
     (inputs
      `(("webkitgtk" ,webkitgtk)
        ("libxcomposite" ,libxcomposite)
        ,@(package-inputs emacs)))))
 
 (define-public emacs-no-x
-  (package (inherit emacs)
+  (package/inherit emacs
     (name "emacs-no-x")
     (synopsis "The extensible, customizable, self-documenting text
 editor (console only)")
@@ -388,13 +395,21 @@ editor (console only)")
                   (package-inputs emacs)
                   '("libx11" "gtk+" "libxft" "libtiff" "giflib" "libjpeg"
                     "imagemagick" "libpng" "librsvg" "libxpm" "libice"
-                    "libsm"
+                    "libsm" "cairo" "pango" "harfbuzz"
 
                     ;; These depend on libx11, so remove them as well.
-                    "libotf" "m17n-lib" "dbus")))))
+                    "libotf" "m17n-lib" "dbus")))
+    (arguments
+     (substitute-keyword-arguments (package-arguments emacs)
+       ((#:configure-flags flags ''())
+        `(delete "--with-cairo" ,flags))
+       ((#:phases phases)
+        `(modify-phases ,phases
+           (delete 'restore-emacs-pdmp)
+           (delete 'strip-double-wrap)))))))
 
 (define-public emacs-no-x-toolkit
-  (package (inherit emacs)
+  (package/inherit emacs
     (name "emacs-no-x-toolkit")
     (synopsis "The extensible, customizable, self-documenting text
 editor (without an X toolkit)" )
@@ -402,13 +417,16 @@ editor (without an X toolkit)" )
     (inputs (append `(("inotify-tools" ,inotify-tools))
                     (alist-delete "gtk+" (package-inputs emacs))))
     (arguments
-     `(,@(substitute-keyword-arguments (package-arguments emacs)
-           ((#:configure-flags cf)
-            `(cons "--with-x-toolkit=no" ,cf)))))))
+     (substitute-keyword-arguments (package-arguments emacs)
+       ((#:configure-flags flags ''())
+        `(cons "--with-x-toolkit=no" ,flags))
+       ((#:phases phases)
+        `(modify-phases ,phases
+           (delete 'restore-emacs-pdmp)
+           (delete 'strip-double-wrap)))))))
 
 (define-public emacs-wide-int
-  (package
-    (inherit emacs)
+  (package/inherit emacs
     (name "emacs-wide-int")
     (synopsis "The extensible, customizable, self-documenting text
 editor (with wide ints)" )
@@ -420,7 +438,7 @@ editor (with wide ints)" )
 (define-public guile-emacs
   (let ((commit "41120e0f595b16387eebfbf731fff70481de1b4b")
         (revision "0"))
-    (package (inherit emacs)
+    (package/inherit emacs
       (name "guile-emacs")
       (version (git-version "0.0.0" revision commit))
       (source (origin
@@ -444,6 +462,8 @@ editor (with wide ints)" )
                                        ;; Tests aren't passing for now.
                                        #:tests? #f
                                        ,@(package-arguments emacs))
+         ((#:configure-flags flags ''())
+          `(delete "--with-cairo" ,flags))
          ((#:phases phases)
           `(modify-phases ,phases
              (add-after 'unpack 'autogen
@@ -452,7 +472,9 @@ editor (with wide ints)" )
              ;; Build sometimes fails: deps/dispnew.d: No such file or directory
              (add-before 'build 'make-deps-dir
                (lambda _
-                 (invoke "mkdir" "-p" "src/deps"))))))))))
+                 (invoke "mkdir" "-p" "src/deps")))
+             (delete 'restore-emacs-pdmp)
+             (delete 'strip-double-wrap))))))))
 
 (define-public m17n-db
   (package
diff --git a/gnu/packages/embedded.scm b/gnu/packages/embedded.scm
index 558369f15d..622905f0ce 100644
--- a/gnu/packages/embedded.scm
+++ b/gnu/packages/embedded.scm
@@ -3,7 +3,7 @@
 ;;; Copyright © 2016, 2017 Theodoros Foradis <theodoros@foradis.org>
 ;;; Copyright © 2016 David Craven <david@craven.ch>
 ;;; Copyright © 2017, 2020 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018, 2019 Clément Lassieur <clement@lassieur.org>
 ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2020 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
@@ -34,11 +34,14 @@
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system python)
   #:use-module (guix build-system trivial)
-  #:use-module ((guix build utils) #:select (alist-replace))
+  #:use-module ((guix build utils) #:select (alist-replace delete-file-recursively))
   #:use-module (gnu packages)
+  #:use-module (gnu packages admin)
   #:use-module (gnu packages autotools)
   #:use-module ((gnu packages base) #:prefix base:)
   #:use-module (gnu packages bison)
+  #:use-module (gnu packages boost)
+  #:use-module (gnu packages compression)
   #:use-module (gnu packages cross-base)
   #:use-module (gnu packages dejagnu)
   #:use-module (gnu packages flex)
@@ -47,6 +50,7 @@
   #:use-module (gnu packages guile)
   #:use-module (gnu packages libftdi)
   #:use-module (gnu packages libusb)
+  #:use-module (gnu packages messaging)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
@@ -457,40 +461,36 @@ languages are C and C++.")
      ,@(package-arguments gdb)))))
 
 (define-public libjaylink
-  ;; No release tarballs available.
-  (let ((commit "699b7001d34a79c8e7064503dde1bede786fd7f0")
-        (revision "2"))
-    (package
-      (name "libjaylink")
-      (version (string-append "0.1.0-" revision "."
-                              (string-take commit 7)))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://git.zapb.de/libjaylink.git")
-                      (commit commit)))
-                (file-name (string-append name "-" version "-checkout"))
-                (sha256
-                 (base32
-                  "034872d44myycnzn67v5b8ixrgmg8sk32aqalvm5x7108w2byww1"))))
-      (build-system gnu-build-system)
-      (native-inputs
-       `(("autoconf" ,autoconf)
-         ("automake" ,automake)
-         ("libtool" ,libtool)
-         ("pkg-config" ,pkg-config)))
-      (inputs
-       `(("libusb" ,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
+  (package
+    (name "libjaylink")
+    (version "0.2.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://repo.or.cz/libjaylink.git")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0ndyfh51hiqyv2yscpj6qd091w7myxxjid3a6rx8f6k233vy826q"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("libtool" ,libtool)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("libusb" ,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
 SEGGER J-Link and compatible devices.")
-      (license license:gpl2+))))
+    (license license:gpl2+)))
 
 (define-public jimtcl
   (package
     (name "jimtcl")
-    (version "0.79")
+    (version "0.80")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -499,17 +499,26 @@ SEGGER J-Link and compatible devices.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1k88hz0v3bi19xdvlp0i9nsx38imzwpjh632w7326zwbv2wldf0h"))))
+                "06rn60cx9sapc175vxvan87b8j5rkhh5gvvz7343xznzwlr0wcgk"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
        (modify-phases %standard-phases
-         ;; Doesn't use autoconf.
          (replace 'configure
+         ;; This package doesn't use autoconf.
            (lambda* (#:key outputs #:allow-other-keys)
              (let ((out (assoc-ref outputs "out")))
                (invoke "./configure"
-                       (string-append "--prefix=" out))))))))
+                       (string-append "--prefix=" out)))))
+         (add-before 'check 'delete-failing-tests
+           (lambda _
+             ;; XXX All but 1 TTY tests fail (Inappropriate ioctl for device).
+             (delete-file "tests/tty.test")
+             #t))
+         )))
+    (native-inputs
+     ;; For tests.
+     `(("inetutils" ,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
@@ -517,67 +526,72 @@ language.")
     (license license:bsd-2)))
 
 (define-public openocd
-  (package
-    (name "openocd")
-    (version "0.10.0")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://sourceforge/openocd/openocd/"
-                                  version "/openocd-" version ".tar.gz"))
-              (sha256
-               (base32
-                "09p57y3c2spqx4vjjlz1ljm1lcd0j9q8g76ywxqgn3yc34wv18zd"))
-              ;; FIXME: Remove after nrf52 patch is merged.
-              (patches
-               (search-patches "openocd-nrf52.patch"))))
-    (build-system gnu-build-system)
-    (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)))
-    (inputs
-     `(("hidapi" ,hidapi)
-       ("jimtcl" ,jimtcl)
-       ("libftdi" ,libftdi)
-       ("libjaylink" ,libjaylink)
-       ("libusb-compat" ,libusb-compat)))
-    (arguments
-     '(#:configure-flags
-       (append (list "--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
-         ;; Required because of patched sources.
-         (add-before 'configure 'autoreconf
-           (lambda _ (invoke "autoreconf" "-vfi") #t))
-         (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
+  (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)))
+      (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
 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
@@ -1013,8 +1027,8 @@ the Raspberry Pi chip.")
       (home-page "https://github.com/puppeh/vc4-toolchain/"))))
 
 (define-public gcc-vc4
-  (let ((commit "165f6d0e11d2e76ee799533bb45bd5c92bf60dc2")
-        (xgcc (cross-gcc "vc4-elf" #:xbinutils binutils-vc4)))
+  (let ((commit "0fe4b83897341742f9df65797474cb0feab4b377")
+        (xgcc (cross-gcc "vc4-elf" #:xgcc gcc-6 #:xbinutils binutils-vc4)))
     (package (inherit xgcc)
       (name "gcc-vc4")
       (source (origin
@@ -1028,7 +1042,10 @@ the Raspberry Pi chip.")
                                           "-checkout"))
                 (sha256
                  (base32
-                  "13h30qjcwnlz6lfma1d82nnvfmjnhh7abkagip4vly6vm5fpnvf2"))))
+                  "0kvaq4s0assvinmmicwqp07d0wwldcw0fv6f4k13whp3q5909jnr"))
+                (patches
+                 (search-patches "gcc-6-fix-buffer-size.patch"
+                                 "gcc-6-fix-isl-includes.patch"))))
       (native-inputs
         `(("flex" ,flex)
           ,@(package-native-inputs xgcc)))
@@ -1161,14 +1178,14 @@ SPI, I2C, JTAG.")
 (define-public fc-host-tools
   (package
     (name "fc-host-tools")
-    (version "11")
+    (version "14")
     (source (origin
               (method url-fetch)
               (uri (string-append "ftp://ftp.freecalypso.org/pub/GSM/"
                                   "FreeCalypso/fc-host-tools-r" version ".tar.bz2"))
               (sha256
                (base32
-                "0s87lp6gd8i8ivrdd7mnnalysr65035nambcm992rgla7sk76sj1"))))
+                "09ccd76khfvlx4dwi9dhrzl5mm68402mlych0g7f9ncfr5jzyf26"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                      ; No tests exist.
@@ -1282,6 +1299,12 @@ and displaying decoded target responses.
 @item fcup-smsendmult: Send multiple short messages via SMS in one go
 @item fcup-smsendpdu: Send multiple short messages given in PDU format via SMS
 @item sms-pdu-decode: Decode PDU format messages
+@item fc-dspromdump: Dump DSP ROM.
+@item pcm-sms-decode: Decode /pcm/SMS binary files read out of FFS maintained
+by Pirelli DP-L10.  Display the SMS in human-readable form.
+@item srec-regions: Parse S-record (TI's *.m0), identify the set of
+discontiguous regions into which this SREC image deposits bits, and list
+these identified regions.
 @end enumerate")
     (home-page "https://www.freecalypso.org/")
     (license license:public-domain)))
@@ -1351,3 +1374,149 @@ simplifies configuration and is also pluggable: you can write your own west
 this feature to provide conveniences for building applications, flashing and
 debugging them, and more.")
     (license license:expat)))
+
+(define-public ebusd
+  (package
+    (name "ebusd")
+    (version "3.4")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/john30/ebusd")
+                     (commit (string-append "v" version))))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32
+                "0iva70bam7wdx60bpd3an9kxr28zxlvp3vprivgqshwwdhqa0hzp"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'install-config
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let ((config-destination
+                    (string-append (assoc-ref outputs "out")
+                                   "/share/ebusd")))
+               (copy-recursively (string-append (assoc-ref inputs "config")
+                                                "/ebusd-2.1.x")
+                                 config-destination)
+               #t))))))
+    (inputs
+     `(("mosquitto" ,mosquitto)))
+    (native-inputs
+     `(("automake" ,automake)
+       ("autoconf" ,autoconf)
+       ("config"
+        ,(origin
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/john30/ebusd-configuration")
+                     (commit "666c0f6b9c4d7545eff7f43ab28a1c7baeab7913")))
+              (file-name "config-checkout")
+              (sha256
+               (base32
+                "0yxnx8p4lbk614l16854r9s9d8s9c7ixgczfs8mph94xz0wkda7x"))))))
+    (synopsis "Daemon for communicating with eBUS devices")
+    (description "This package provides @command{ebusd}, a daemon for
+handling communication with eBUS devices connected to a 2-wire bus system
+(\"energy bus\" used by numerous heating systems).")
+    (home-page "https://ebusd.eu/")
+    (license license:gpl3+)))
+
+(define-public ucsim
+  (package
+    (name "ucsim")
+    (version "0.6-pre67")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "http://mazsola.iit.uni-miskolc.hu/ucsim/download/unix/"
+                    "devel/ucsim-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0aahj9pbfjphjrm4hgs9pfmp6d5aikaq4yvxlrvhywjinnnf0qp1"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:configure-flags '("--enable-avr-port"
+                           "--enable-m6809-port"
+                           "--enable-p1516-port"
+                           "--enable-st7-port")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-makefiles
+           (lambda _
+             (substitute* (find-files "." "(\\.mk$|\\.in$)")
+               (("/bin/sh") (which "sh")))
+             #t))
+         (add-after 'install 'remove-empty-directory
+           (lambda* (#:key outputs #:allow-other-keys)
+             (delete-file-recursively
+              (string-append (assoc-ref outputs "out") "/share/man"))
+             #t)))))
+    (native-inputs
+     `(("bison" ,bison)
+       ("flex" ,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
+microcontrollers in the Atmel AVR; Intel MCS-51 (8051); Motorola 68HC08 and
+6809; P1516; Padauk PDK13, PDK14 and PDK15; STMicroelectronics ST7 and STM8;
+and Zilog Z80 families, plus many of their variants.")
+    (license license:gpl2+)))
+
+(define-public sdcc
+  (package
+    (name "sdcc")
+    (version "4.0.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "mirror://sourceforge/sdcc/sdcc"
+                    "/" version "/sdcc-src-" version ".tar.bz2"))
+              (sha256
+               (base32
+                "042fxw5mnsfhpc0z9lxfsw88kdkm32pwrxacp88kj2n2dy0814a8"))
+              (modules '((guix build utils)))
+              (snippet
+               '(begin
+                  ;; Remove non-free source files
+                  (delete-file-recursively "device/non-free")
+                  ;; Remove bundled μCsim source
+                  (delete-file-recursively "sim")
+                  #t))
+              (patches (search-patches "sdcc-disable-non-free-code.patch"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("bison" ,bison)
+       ("boost" ,boost)
+       ("flex" ,flex)
+       ("python-2" ,python-2)
+       ("texinfo" ,texinfo)
+       ("zlib" ,zlib)))
+    (arguments
+     `(;; GPUTILS is required for the PIC ports, but the licensing status of
+       ;; some of the files contained in its distribution is unclear (see
+       ;; https://issues.guix.gnu.org/44557).  For this reason it is not yet
+       ;; available as a package in Guix.
+       #:configure-flags
+       '("--disable-pic14-port" "--disable-pic16-port" "--disable-ucsim")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-makefiles
+           (lambda _
+             (substitute* (find-files "." "(\\.mk$|\\.in$)")
+               (("/bin/sh") (which "sh")))
+             #t)))))
+    (home-page "http://sdcc.sourceforge.net")
+    (synopsis "C compiler suite for 8-bit microcontrollers")
+    (description "SDCC is a retargetable, optimizing Standard C compiler suite
+that targets 8-bit microcontrollers in the Intel MCS-51 (8051); Motorola
+68HC08; Padauk PDK13, PDK14 and PDK15; STMicroelectronics STM8; and Zilog Z80
+families, plus many of their variants.")
+    (license (list license:gpl2+
+                   license:gpl3+
+                   license:lgpl2.0+
+                   license:lgpl2.1+
+                   license:lgpl3+
+                   license:public-domain
+                   license:zlib))))
diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm
index 1cf1c433dc..1d94090f48 100644
--- a/gnu/packages/emulators.scm
+++ b/gnu/packages/emulators.scm
@@ -5,13 +5,14 @@
 ;;; Copyright © 2015, 2016 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
 ;;; Copyright © 2015, 2018 David Thompson <dthompson2@worcester.edu>
 ;;; Copyright © 2016 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
-;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2017, 2018, 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2017, 2018, 2019, 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
-;;; Copyright © 2017, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017, 2020, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2017, 2018, 2019 Rutger Helling <rhelling@mykolab.com>
 ;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
 ;;; Copyright © 2019 David Wilson <david@daviwil.com>
 ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
+;;; Copyright © 2020 Christopher Howard <christopher@librehacker.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -39,6 +40,7 @@
   #:use-module (gnu packages algebra)
   #:use-module (gnu packages assembly)
   #:use-module (gnu packages audio)
+  #:use-module (gnu packages autogen)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages base)
   #:use-module (gnu packages boost)
@@ -53,6 +55,7 @@
   #:use-module (gnu packages fonts)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages freedesktop)
+  #:use-module (gnu packages fribidi)
   #:use-module (gnu packages game-development)
   #:use-module (gnu packages gcc)
   #:use-module (gnu packages gettext)
@@ -60,7 +63,6 @@
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages image)
-  #:use-module (gnu packages imagemagick)
   #:use-module (gnu packages libedit)
   #:use-module (gnu packages libusb)
   #:use-module (gnu packages linux)
@@ -279,6 +281,64 @@ SoundBlaster/Gravis Ultra Sound card for excellent sound compatibility with
 older games.")
     (license license:gpl2+)))
 
+(define-public qtmips
+  (package
+    (name "qtmips")
+    (version "0.7.3")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/cvut/QtMips")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1khvwgqz4h6q6mhbbq0yx43ajz8gx9wmwzs8784vmfrglndbxgax"))))
+    (build-system cmake-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (replace 'configure
+           (lambda* (#:key outputs #:allow-other-keys)
+             (invoke "qmake"
+                     (string-append "PREFIX=" (assoc-ref outputs "out"))
+                     "qtmips.pro")))
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (substitute* "tests/test.sh"
+               (("qtchooser.*") ""))
+             (substitute* '("tests/cpu_trap/test.sh"
+                            "tests/registers/test.sh")
+               (("sub-qtmips_cli") "qtmips_cli"))
+             (if tests?
+               (invoke "tests/run-all.sh")
+               #t)))
+         (replace 'install
+           ;; There is no install target.
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (bin (string-append out "/bin"))
+                    (apps (string-append out "/share/applications"))
+                    (icons (string-append out "/share/icons/hicolor")))
+               (install-file "qtmips_gui/qtmips_gui" bin)
+               (install-file "qtmips_cli/qtmips_cli" bin)
+               (install-file "data/qtmips.desktop" apps)
+               (install-file "data/icons/qtmips_gui.svg"
+                             (string-append icons "/scalable/apps"))
+               (install-file "data/icons/qtmips_gui.png"
+                             (string-append icons "/48x48/apps"))
+               #t))))
+       #:tests? #f))    ; test suite wants mips toolchain
+    (inputs
+     `(("elfutils" ,elfutils)
+       ("qtbase" ,qtbase)))
+    (home-page "https://github.com/cvut/QtMips")
+    (synopsis "MIPS CPU emulator")
+    (description "This package contains a MIPS CPU emulator.  The simulator
+accepts ELF statically linked executables compiled for 32-bit big-endian
+MIPS target, targeting mips-linux-gnu or mips-elf.")
+    (license license:gpl2+)))   ; License file says GPL3
+
 (define-public emulation-station
   ;; No release for a long time, new commits fix build issues
   (let ((commit "9cc42adff67946175d2b7e25c6ae69cc374e98a0")
@@ -418,14 +478,14 @@ V2.")
 (define-public mednafen
   (package
     (name "mednafen")
-    (version "1.24.3")
+    (version "1.26.1")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://mednafen.github.io/releases/files/"
                            "mednafen-" version ".tar.xz"))
        (sha256
-        (base32 "03zplcfvmnnv7grhacmr1zy789pb2wda36wylmzmar23g0zqbsix"))))
+        (base32 "1x7xhxjhwsdbak8l0iyb497f043xkhibk73w96xck4j2bk10fac4"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags
@@ -479,7 +539,7 @@ The following systems are supported:
 (define-public mgba
   (package
     (name "mgba")
-    (version "0.8.3")
+    (version "0.8.4")
     (source
      (origin
        (method git-fetch)
@@ -488,7 +548,7 @@ The following systems are supported:
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0rwlfjdr0rzbq4kaplvwsgyb8xq6nrzxss2c8xrgw9hqw3ymx4s3"))
+        (base32 "0nqj4bnn5c2z1bq4bnbw1wznc0wpmq4sy3w8pipd6n6620b9m4qq"))
        (modules '((guix build utils)))
        (snippet
         ;; Make sure we don't use the bundled software.
@@ -508,7 +568,6 @@ The following systems are supported:
     (native-inputs `(("pkg-config" ,pkg-config)
                      ("qttools" ,qttools)))
     (inputs `(("ffmpeg" ,ffmpeg)
-              ("imagemagick" ,imagemagick)
               ("libedit" ,libedit)
               ("libelf" ,libelf)
               ("libepoxy" ,libepoxy)
@@ -535,7 +594,7 @@ and Game Boy Color games.")
 (define-public sameboy
   (package
     (name "sameboy")
-    (version "0.13.5")
+    (version "0.13.6")
     (source
      (origin
        (method git-fetch)
@@ -544,7 +603,7 @@ and Game Boy Color games.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1v070w519l58wfyj2gpaghkaar4c0mpr8rhbkdmpnhb9rp2iajaz"))))
+        (base32 "04w8lybi7ssnax37ka4qw7pmcm7cgnmk90p9m73zbyp5chgpqqzc"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("rgbds" ,rgbds)
@@ -1269,34 +1328,20 @@ multi-system game/emulator system.")
 (define-public scummvm
   (package
     (name "scummvm")
-    (version "2.1.2")
+    (version "2.2.0")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "http://www.scummvm.org/frs/scummvm/" version
+       (uri (string-append "https://downloads.scummvm.org/frs/scummvm/" version
                            "/scummvm-" version ".tar.xz"))
        (sha256
-        (base32 "1c4fz1nfg0nqnqx9iipayhzcsiqdmfxm2i95nw9dbhshhsdnrhf4"))))
+        (base32 "11vknasm5dna2vqr6gk343qynh7nhsq3kf60zayarn1vb5z6as8l"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                                 ;require "git"
        #:configure-flags (list "--enable-release") ;for optimizations
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'fix-build
-           ;; XXX: The following works around a build failure introduced when
-           ;; Fluidsynth was updated to version 2.1.  It has been applied
-           ;; upstream as 68758a879e0c8ecc0d40962516d4e808aa4e15e5 and can be
-           ;; removed once this commit makes it into a release.
-           (lambda _
-             (substitute* "audio/softsynth/fluidsynth.cpp"
-               (("#include <fluidsynth.h>") "")
-               (("#include \"common/scummsys.h\"") "#include \"config.h\"")
-               (("#include \"common/config-manager.h\"" line)
-                (string-append "#include <fluidsynth.h>\n"
-                               "#include \"common/scummsys.h\"\n"
-                               line)))
-             #t))
          (replace 'configure
            ;; configure does not work followed by both "SHELL=..." and
            ;; "CONFIG_SHELL=..."; set environment variables instead
@@ -1316,6 +1361,7 @@ multi-system game/emulator system.")
        ("faad2" ,faad2)
        ("fluidsynth" ,fluidsynth)
        ("freetype" ,freetype)
+       ("fribidi" ,fribidi)
        ("liba52" ,liba52)
        ("libflac" ,flac)
        ("libjpeg-turbo" ,libjpeg-turbo)
@@ -1336,10 +1382,177 @@ just replaces the executables shipped with the games, allowing you to
 play them on systems for which they were never designed!")
     (license license:gpl2+)))
 
+(define-public libticables2
+  (package
+    (name "libticables2")
+    (version "1.3.5")
+    (source (origin
+              (method url-fetch)
+              (uri "https://www.ticalc.org/pub/unix/tilibs.tar.gz")
+              (sha256
+               (base32
+                "07cfwwlidgx4fx88whnlch6y1342x16h15lkvkkdlp2y26sn2yxg"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:configure-flags (list "--enable-libusb10")
+       #:phases
+       (modify-phases %standard-phases
+         (replace 'unpack
+           (lambda* (#:key source #:allow-other-keys)
+             (invoke "tar" "xvkf" source)
+             (invoke "tar" "xvkf"
+                     (string-append "tilibs2/libticables2-"
+                                    ,version ".tar.bz2"))
+             (chdir (string-append "libticables2-" ,version))
+             #t)))))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("autogen" ,autogen)
+       ("automake" ,automake)
+       ("gettext" ,gnu-gettext)
+       ("libtool" ,libtool)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("glib" ,glib)
+       ("libusb" ,libusb)))
+    (synopsis "Link cable library for TI calculators")
+    (description
+     "This package contains libticables, a library for operations on
+@acronym{TI, Texas Instruments} calculator link cables.
+
+This is a part of the TiLP project.")
+    (home-page "http://lpg.ticalc.org/prj_tilp/")
+    (license license:gpl2+)))
+
+(define-public libticonv
+  (package
+    (name "libticonv")
+    (version "1.1.5")
+    (source (origin
+              (method url-fetch)
+              (uri "https://www.ticalc.org/pub/unix/tilibs.tar.gz")
+              (sha256
+               (base32
+                "07cfwwlidgx4fx88whnlch6y1342x16h15lkvkkdlp2y26sn2yxg"))))
+    (build-system gnu-build-system)
+    (arguments
+     ;; build fails with out --enable-iconv (...?)
+     `(#:configure-flags (list "--enable-iconv")
+       #:phases
+       (modify-phases %standard-phases
+         (replace 'unpack
+           (lambda* (#:key source #:allow-other-keys)
+             (invoke "tar" "xvkf" source)
+             (invoke "tar" "xvkf"
+                     (string-append "tilibs2/libticonv-"
+                                    ,version ".tar.bz2"))
+             (chdir (string-append "libticonv-" ,version))
+             #t)))))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("libtool" ,libtool)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("glib" ,glib)))
+    (synopsis "Character conversion library for TI calculators")
+    (description
+     "This package contains libticonv, a library to support working with
+@acronym{TI, Texas Instruments} calculator charsets.
+
+This is a part of the TiLP project.")
+    (home-page "http://lpg.ticalc.org/prj_tilp/")
+    (license license:gpl2+)))
+
+(define-public libtifiles2
+  (package
+    (name "libtifiles2")
+    (version "1.1.7")
+    (source (origin
+              (method url-fetch)
+              (uri "https://www.ticalc.org/pub/unix/tilibs.tar.gz")
+              (sha256
+               (base32
+                "07cfwwlidgx4fx88whnlch6y1342x16h15lkvkkdlp2y26sn2yxg"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'unpack
+           (lambda* (#:key source #:allow-other-keys)
+             (invoke "tar" "xvkf" source)
+             (invoke "tar" "xvkf"
+                     (string-append "tilibs2/libtifiles2-"
+                                    ,version ".tar.bz2"))
+             (chdir (string-append "libtifiles2-" ,version))
+             #t)))))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("gettext" ,gnu-gettext)
+       ("libtool" ,libtool)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("glib" ,glib)
+       ("libarchive" ,libarchive)
+       ("libticonv" ,libticonv)))
+    (synopsis "File functions library for TI calculators")
+    (description
+     "This package contains libticonv, a library to support working with
+@acronym{TI, Texas Instruments} calculator files.
+
+This is a part of the TiLP project.")
+    (home-page "http://lpg.ticalc.org/prj_tilp/")
+    (license license:gpl2+)))
+
+(define-public libticalcs2
+  (package
+    (name "libticalcs2")
+    (version "1.1.9")
+    (source (origin
+              (method url-fetch)
+              (uri "https://www.ticalc.org/pub/unix/tilibs.tar.gz")
+              (sha256
+               (base32
+                "07cfwwlidgx4fx88whnlch6y1342x16h15lkvkkdlp2y26sn2yxg"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'unpack
+           (lambda* (#:key source #:allow-other-keys)
+             (invoke "tar" "xvkf" source)
+             (invoke "tar" "xvkf"
+                     (string-append "tilibs2/libticalcs2-"
+                                    ,version ".tar.bz2"))
+             (chdir (string-append "libticalcs2-" ,version))
+             #t)))))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("gettext" ,gnu-gettext)
+       ("libtool" ,libtool)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("glib" ,glib)
+       ("libarchive" ,libarchive)
+       ("libticables2" ,libticables2)
+       ("libticonv" ,libticonv)
+       ("libtifiles2" ,libtifiles2)))
+    (synopsis "Support library for TI calculators")
+    (description
+     "This project aims to develop a multi-platform linking program for use
+with all @acronym{TI, Texas Instruments} graphing calculators (TI73 to
+V200PLT).
+
+This is a part of the TiLP project.")
+    (home-page "http://lpg.ticalc.org/prj_tilp/")
+    (license license:gpl2+)))
+
 (define-public mame
   (package
     (name "mame")
-    (version "0.222")
+    (version "0.227")
     (source
      (origin
        (method git-fetch)
@@ -1348,7 +1561,7 @@ play them on systems for which they were never designed!")
              (commit (apply string-append "mame" (string-split version #\.)))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1bfnwfxsnmza4s77ca0cyx4b290dwadkbbc2lyd7xa0yqrh7vvlx"))
+        (base32 "0p7xhsahmkr5hh3j6hc1mpgi5z4navy77v4k35i0sgpdv1ax4y2l"))
        (modules '((guix build utils)))
        (snippet
         ;; Remove bundled libraries.
@@ -1844,7 +2057,7 @@ framework based on QEMU.")
 (define-public ppsspp
   (package
     (name "ppsspp")
-    (version "1.10")
+    (version "1.10.3")
     (source
      (origin
        (method git-fetch)
@@ -1852,7 +2065,7 @@ framework based on QEMU.")
              (url "https://github.com/hrydgard/ppsspp")
              (commit (string-append "v" version))))
        (sha256
-        (base32 "02yx1w0ygclnmdl0imsvgj24lkzi55wvxkf47q617j0jgrqhy8yl"))
+        (base32 "0znxlbj6cfw7gn0naay0mzhc0k5saw8nrwpspcn7gap1023p06w2"))
        (file-name (git-file-name name version))
        (patches
         (search-patches "ppsspp-disable-upgrade-and-gold.patch"))
@@ -1903,7 +2116,7 @@ framework based on QEMU.")
                              " spirv-cross-reflect spirv-cross-util")))
            (substitute* "ext/CMakeLists.txt"
              (("add_subdirectory\\(glew\\)") "")
-             (("add_subdirectory\\(glslang\\)") "")
+             (("add_subdirectory\\(glslang( [A-Z_]*)*\\)") "")
              (("add_subdirectory\\(snappy\\)") "")
              (("add_subdirectory\\(SPIRV-Cross-build\\)") ""))
            ;; Finally, we can delete the bundled sources.
@@ -1946,14 +2159,14 @@ framework based on QEMU.")
        ;; TODO: unbundle armips.
        ("armips-source" ,(package-source armips))
        ("lang"
-        ,(let ((commit "d184ba2b607a03435be579406b816c90add334e6"))
+        ,(let ((commit "1c64b8fbd3cb6bd87935eb53f302f7de6f86e209"))
            (origin
              (method git-fetch)
              (uri (git-reference
                    (url "https://github.com/hrydgard/ppsspp-lang")
                    (commit commit)))
              (sha256
-              (base32 "0s003x6247nx09qd6a1jz1l2hsk5d6k1zmh8mg3m6hjjhvbvd9j9"))
+              (base32 "0rprn3yd8xfrvi0fm62sgpqa8n73jk7zmlscp8cp0h2fawqpiamd"))
              (file-name (git-file-name "ppsspp-lang" commit)))))
        ("tests"
         ,(let ((commit "328b839c7243e7f733f9eae88d059485e3d808e7"))
diff --git a/gnu/packages/enchant.scm b/gnu/packages/enchant.scm
index ff4fc03363..f32e59ef54 100644
--- a/gnu/packages/enchant.scm
+++ b/gnu/packages/enchant.scm
@@ -1,7 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2014 Marek Benc <merkur32@gmail.com>
 ;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com>
-;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2020 Julien Lepiller <julien@lepiller.eu>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -22,21 +22,64 @@
 (define-module (gnu packages enchant)
   #:use-module (gnu packages)
   #:use-module (gnu packages aspell)
+  #:use-module (gnu packages boost)
   #:use-module (gnu packages check)
   #:use-module (gnu packages glib)
+  #:use-module (gnu packages icu4c)
   #:use-module (gnu packages libreoffice)
+  #:use-module (gnu packages man)
+  #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages version-control)
   #:use-module (guix packages)
+  #:use-module (guix git-download)
   #:use-module (guix download)
+  #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system python)
   #:use-module (guix licenses)
   #:use-module (srfi srfi-1))
 
+(define-public nuspell
+  (package
+    (name "nuspell")
+    (version "3.1.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/nuspell/nuspell")
+         (commit
+          (string-append "v" version))))
+       (file-name
+        (git-file-name name version))
+       (sha256
+        (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)))
+    (inputs
+     `(("boost" ,boost)))
+    (propagated-inputs
+     `(("icu4c" ,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
+compounding.  Nuspell is written in modern C++ and it supports Hunspell
+dictionaries.")
+    (home-page "https://nuspell.github.io/")
+    (license lgpl3+)))
+
 (define-public enchant
   (package
     (name "enchant")
-    (version "2.2.8")
+    (version "2.2.15")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/AbiWord/enchant/releases"
@@ -44,15 +87,16 @@
                                   version ".tar.gz"))
               (sha256
                (base32
-                "0m9m564qqwbssvvf7y3dlz1yxzqsjiqy1yd2zsmb3l0d7y2y5df7"))))
+                "00vcykbb7lxh51prvmsb62a06q18a6rlk9ba5a7g45c1awaj43rv"))))
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags '("--disable-static"
                            ;; Tests require a relocatable build.
                            "--enable-relocatable")))
     (inputs
-     `(("aspell" ,aspell)))   ;; Currently, the only supported backend in Guix
-    (propagated-inputs        ;; is aspell. (This information might be old)
+     `(("aspell" ,aspell)
+       ("hunspell" ,hunspell)))
+    (propagated-inputs
      ;; Required by enchant.pc.
      `(("glib" ,glib)))
     (native-inputs
diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index 0f4162f12b..baddaf1737 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -9,17 +9,18 @@
 ;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
 ;;; Copyright © 2018, 2019 Jonathan Brielmaier <jonathan.brielmaier@web.de>
-;;; Copyright © 2018, 2019 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2018, 2019, 2020 Arun Isaac <arunisaac@systemreboot.net>
 ;;; Copyright © 2019 Tim Stahel <swedneck@swedneck.xyz>
 ;;; Copyright © 2019 Jovany Leandro G.C <bit4bit@riseup.net>
 ;;; Copyright © 2019 Steve Sprang <scs@stevesprang.com>
 ;;; Copyright © 2019 John Soo <jsoo1@asu.edu>
 ;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
-;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
+;;; Copyright © 2020,2021 Vincent Legoll <vincent.legoll@gmail.com>
 ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2020 Ekaitz Zarraga <ekaitz@elenq.tech>
 ;;; Copyright © 2020 B. Wilson <elaexuotee@wilsonb.com>
-;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
+;;; Copyright © 2020, 2021 Vinicius Monego <monego@posteo.net>
+;;; Copyright © 2020 Morgan Smith <Morgan.J.Smith@outlook.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -66,6 +67,7 @@
   #:use-module (gnu packages curl)
   #:use-module (gnu packages dejagnu)
   #:use-module (gnu packages digest)
+  #:use-module (gnu packages docbook)
   #:use-module (gnu packages documentation)
   #:use-module (gnu packages flex)
   #:use-module (gnu packages fontutils)
@@ -73,6 +75,7 @@
   #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages gcc)
   #:use-module (gnu packages gd)
+  #:use-module (gnu packages geo)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages ghostscript)
   #:use-module (gnu packages gl)
@@ -100,6 +103,7 @@
   #:use-module (gnu packages pcre)
   #:use-module (gnu packages perl)
   #: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 qt)
@@ -270,14 +274,14 @@ utilities.")
   (package
     (inherit geda-gaf)
     (name "lepton-eda")
-    (version "1.9.11-20200604")
+    (version "1.9.13-20201211")
     (home-page "https://github.com/lepton-eda/lepton-eda")
     (source (origin
               (method git-fetch)
               (uri (git-reference (url home-page) (commit version)))
               (sha256
                (base32
-                "091y8h7wcr9smwhb1wf12sj27n5jrannbj3y6qq3q2gwiifiz8sd"))
+                "0xfx6d0pyfrxr1c0nm4pbmb716hng78rgizaa6vsas9347n4kk1n"))
               (file-name (git-file-name name version))))
     (native-inputs
      `(("autoconf" ,autoconf)
@@ -291,56 +295,93 @@ utilities.")
        ,@(package-native-inputs geda-gaf)))
     (inputs
      `(("glib" ,glib)
-       ("gtk" ,gtk+-2)
+       ("gtk" ,gtk+)
+       ("gtksheet" ,gtksheet)
        ("guile" ,guile-2.2)
        ("shared-mime-info" ,shared-mime-info)
        ("m4" ,m4)
        ("pcb" ,pcb)))
     (arguments
-     (substitute-keyword-arguments (package-arguments geda-gaf)
-       ((#:configure-flags flags ''())
-        ;; When running "make", the POT files are built with the build time as
-        ;; their "POT-Creation-Date".  Later on, "make" notices that .pot
-        ;; files were updated and goes on to run "msgmerge"; as a result, the
-        ;; non-deterministic POT-Creation-Date finds its way into .po files,
-        ;; and then in .gmo files.  To avoid that, simply make sure 'msgmerge'
-        ;; never runs.  See <https://bugs.debian.org/792687>.
-        `(cons "ac_cv_path_MSGMERGE=true" ,flags))
-       ((#:phases phases '%standard-phases)
-        `(modify-phases %standard-phases
-           (add-before 'bootstrap 'prepare
-             (lambda _
-               ;; Some of the scripts there are invoked by autogen.sh.
-               (for-each patch-shebang (find-files "build-tools"))
-
-               ;; Make sure 'msgmerge' can modify the PO files.
-               (for-each (lambda (po)
-                           (chmod po #o666))
-                         (find-files "." "\\.po$"))
-
-               ;; This would normally be created by invoking 'git', but it
-               ;; doesn't work here.
-               (call-with-output-file "version.h"
-                 (lambda (port)
-                   (format port "#define PACKAGE_DATE_VERSION \"~a\"~%"
-                           ,(string-drop version
-                                         (+ 1 (string-index version #\-))))
-                   (format port "#define PACKAGE_DOTTED_VERSION \"~a\"~%"
-                           ,(string-take version
-                                         (string-index version #\-)))
-                   (format port "#define PACKAGE_GIT_COMMIT \"cabbag3\"~%")))
-               #t))
-           (add-after 'install 'compile-scheme-files
-             (lambda* (#:key outputs #:allow-other-keys)
-               (invoke "make" "precompile")
-               (for-each (lambda (program)
-                           (wrap-program program
-                             `("GUILE_LOAD_COMPILED_PATH" ":" prefix
-                               (,(string-append (assoc-ref outputs "out")
-                                                "/share/lepton-eda/ccache/")))))
-                         (find-files (string-append (assoc-ref outputs "out") "/bin")
-                                     ".*"))
-               #t))))))
+     `(#:configure-flags
+       (let ((pcb (assoc-ref %build-inputs "pcb")))
+         ;; When running "make", the POT files are built with the build time as
+         ;; their "POT-Creation-Date".  Later on, "make" notices that .pot
+         ;; files were updated and goes on to run "msgmerge"; as a result, the
+         ;; non-deterministic POT-Creation-Date finds its way into .po files,
+         ;; and then in .gmo files.  To avoid that, simply make sure 'msgmerge'
+         ;; never runs.  See <https://bugs.debian.org/792687>.
+         (list "ac_cv_path_MSGMERGE=true"
+               "--with-gtk3"
+               (string-append "--with-pcb-datadir=" pcb "/share")
+               (string-append "--with-pcb-lib-path="
+                              pcb "/share/pcb/pcblib-newlib:"
+                              pcb "/share/pcb/newlib")))
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'build 'fix-dynamic-link
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (substitute* "libleptongui/scheme/schematic/ffi.scm.in"
+               (("@LIBLEPTONGUI@")
+                (string-append (assoc-ref outputs "out")
+                               "/lib/libleptongui.so")))
+             (substitute* '("libleptongui/scheme/schematic/ffi/gtk.scm.in"
+                            "libleptonattrib/lepton-attrib.scm")
+               (("@LIBGTK@")
+                (string-append (assoc-ref inputs "gtk")
+                               "/lib/libgtk-3.so")))
+             (substitute* "liblepton/scheme/lepton/ffi.scm.in"
+               (("@LIBLEPTON@")
+                (string-append (assoc-ref outputs "out")
+                               "/lib/liblepton.so")))
+             (substitute* "libleptonattrib/lepton-attrib.scm"
+               (("@LIBLEPTONATTRIB@")
+                (string-append (assoc-ref outputs "out")
+                               "/lib/libleptonattrib.so")))
+             (substitute* "liblepton/scheme/lepton/log.scm.in"
+               (("@LIBGLIB@")
+                (string-append (assoc-ref inputs "glib")
+                               "/lib/libglib-2.0.so")))
+
+             ;; For finding libraries when running tests before installation.
+             (setenv "LIBLEPTONGUI"
+                     (string-append (getcwd)
+                                    "/libleptongui/src/.libs/libleptongui.so"))
+             (setenv "LIBLEPTON"
+                     (string-append (getcwd)
+                                    "/libleptongui/src/.libs/liblepton.so"))
+             (setenv "LD_LIBRARY_PATH"
+                     (string-append (getcwd) "/libleptonattrib/src/.libs/:"
+                                    (getenv "LIBRARY_PATH")))
+             #t))
+         (add-before 'bootstrap 'prepare
+           (lambda _
+             ;; Some of the scripts there are invoked by autogen.sh.
+             (for-each patch-shebang (find-files "build-tools"))
+
+             ;; Make sure 'msgmerge' can modify the PO files.
+             (for-each (lambda (po)
+                         (chmod po #o666))
+                       (find-files "." "\\.po$"))
+
+             ;; This would normally be created by invoking 'git', but it
+             ;; doesn't work here.
+             (call-with-output-file "version.h"
+               (lambda (port)
+                 (format port "#define PACKAGE_DATE_VERSION \"~a\"~%"
+                         ,(string-drop version
+                                       (+ 1 (string-index version #\-))))
+                 (format port "#define PACKAGE_DOTTED_VERSION \"~a\"~%"
+                         ,(string-take version
+                                       (string-index version #\-)))
+                 (format port "#define PACKAGE_GIT_COMMIT \"cabbag3\"~%")))
+             #t))
+         (add-after 'install 'compile-scheme-files
+           (lambda* (#:key outputs #:allow-other-keys)
+             (unsetenv "LIBLEPTONGUI")
+             (unsetenv "LIBLEPTON")
+             (unsetenv "LD_LIBRARY_PATH")
+             (invoke "make" "precompile")
+             #t)))))
     (description
      "Lepton EDA ia an @dfn{electronic design automation} (EDA) tool set
 forked from gEDA/gaf in late 2016.  EDA tools are used for electrical circuit
@@ -426,16 +467,16 @@ optimizer; and it can produce photorealistic and design review images.")
 (define-public pcb-rnd
   (package (inherit pcb)
     (name "pcb-rnd")
-    (version "2.2.3")
+    (version "2.2.4")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://repo.hu/projects/pcb-rnd/releases/"
                                   "pcb-rnd-" version ".tar.gz"))
               (sha256
                (base32
-                "0j650498d87b4xsggzc0xlk73k0hhj43wfy45qz2lcn0xc3bks1m"))))
+                "06ylc2rd4yvzp3krk62q9dbi13h0yq1x257fbjkh10vfjn0ga5c2"))))
     (arguments
-     `(#:tests? #f ; no check target
+     `(#:tests? #f                      ; no check target
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'cc-is-gcc
@@ -753,8 +794,8 @@ fonts to gEDA.")
       (license license:gpl2+))))
 
 (define-public libfive
-  (let ((commit "6e39254e57c179459bb929df49ae96a6017a0ed6")
-        (revision "3"))
+  (let ((commit "8ca1b8685ef3fac7b64e66b10459b8421a3020c6")
+        (revision "4"))
     (package
       (name "libfive")
       (version (git-version "0" revision commit))
@@ -765,13 +806,8 @@ fonts to gEDA.")
                       (commit commit)))
                 (sha256
                  (base32
-                  "0ryv2hcbrwqc087w7rrs4a2irkcpmqync00g4dh8n7jn10w2jkim"))
-                (file-name (git-file-name name version))
-                (snippet
-                 ;; Remove bundled catch since we provide our own.
-                 '(begin
-                    (delete-file "libfive/test/catch.hpp")
-                    #t))))
+                  "1c762cd70iv2b9av0l9lq0py9138y98wk3dirhdmil7jncdhvq98"))
+                (file-name (git-file-name name version))))
       (build-system cmake-build-system)
       (arguments
        `(#:test-target "libfive-test"
@@ -780,23 +816,15 @@ fonts to gEDA.")
            (add-after 'unpack 'remove-native-compilation
              (lambda _
                (substitute* "CMakeLists.txt" (("-march=native") ""))
-               #t))
-           (add-after 'unpack 'find-catch
-             (lambda* (#:key inputs #:allow-other-keys)
-               (setenv "CPLUS_INCLUDE_PATH"
-                       (string-append (assoc-ref inputs "catch")
-                                      "/include/catch2:"
-                                      (or (getenv "CPLUS_INCLUDE_PATH") "")))
                #t)))))
       (native-inputs
        `(("pkg-config" ,pkg-config)))
       (inputs
        `(("boost" ,boost)
-         ("catch" ,catch-framework2)
          ("libpng" ,libpng)
          ("qtbase" ,qtbase)
          ("eigen" ,eigen)
-         ("guile" ,guile-2.2)))
+         ("guile" ,guile-3.0)))
       (home-page "https://libfive.com")
       (synopsis "Tool for programmatic computer-aided design")
       (description
@@ -808,7 +836,58 @@ language.")
       (license (list license:mpl2.0               ;library
                      license:gpl2+)))))           ;Guile bindings and GUI
 
-;; TODO Add doc https://gitlab.com/kicad/services/kicad-doc/-/tree/master
+(define-public inspekt3d
+  (let ((commit "703f52ccbfedad2bf5240bf8183d1b573c9d54ef")
+        (revision "0"))
+    (package
+      (name "inspekt3d")
+      (version (git-version "0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://gitlab.com/kavalogic-inc/inspekt3d.git")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "0lan6930g5a9z4ack9jj0zdd0mb2s6q2xzpiwcjdc3pvl9b1nbw4"))
+                (modules '((guix build utils)))
+                (snippet
+                 '(begin
+                    ;; Allow builds with Guile 3.0.
+                    (substitute* "configure.ac"
+                      (("2\\.2") "3.0 2.2"))
+                    #t))))
+      (build-system gnu-build-system)
+      (arguments
+       `(#:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'patch-libfive-guile-location
+             (lambda* (#:key inputs #:allow-other-keys)
+               (substitute* "inspekt3d/library.scm"
+                 (("\"libfive-guile")
+                  (string-append "\""
+                                 (assoc-ref inputs "libfive")
+                                 "/lib/libfive-guile")))
+               #t)))))
+      (native-inputs
+       `(("autoconf" ,autoconf)
+         ("automake" ,automake)
+         ("pkg-config" ,pkg-config)))
+      (inputs
+       `(("mesa" ,mesa)
+         ("guile" ,guile-3.0)))
+      (propagated-inputs
+       `(("libfive" ,libfive)
+         ("guile-opengl" ,guile3.0-opengl)))
+      (home-page "https://gitlab.com/kavalogic-inc/inspekt3d/")
+      (synopsis "Lightweight 3D viewer for Libfive written in Guile Scheme")
+      (description
+       "Inspekt3d is a lightweight 3D viewer for Libfive written in Guile Scheme.
+The viewer can be used interactively with a REPL (for example Geiser in
+Emacs).")
+      (license license:gpl3+))))
+
 (define-public kicad
   (package
     (name "kicad")
@@ -858,6 +937,9 @@ language.")
              #t)))))
     (native-search-paths
      (list (search-path-specification
+            (variable "KICAD")          ; to find kicad-doc
+            (files '("")))
+           (search-path-specification
             (variable "KICAD_TEMPLATE_DIR")
             (files '("share/kicad/template")))
            (search-path-specification
@@ -929,6 +1011,46 @@ translations for KiCad.")
 (define-public kicad-i18l
   (deprecated-package "kicad-i18l" kicad-i18n))
 
+(define-public kicad-doc
+  (package
+    (name "kicad-doc")
+    (version "5.1.6")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://gitlab.com/kicad/services/kicad-doc.git")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "03kvss8a0xrjnfvkwymm0vfd7rn9ix7i926xdzz9jg9iycrjfj3g"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:configure-flags (list "-DBUILD_FORMATS=html")
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'build)
+         (add-before 'install 'set-perl-env
+           (lambda* (#:key inputs #:allow-other-keys)
+             (setenv "PERL5LIB"
+                     (string-append (assoc-ref inputs "perl-unicode-linebreak")
+                                    "/lib/perl5/site_perl" ":"
+                                    (getenv "PERL5LIB")))
+             #t))
+         (delete 'check))))
+    (native-inputs
+     `(("asciidoc" ,asciidoc)
+       ("gettext" ,gettext-minimal)
+       ("git" ,git-minimal)
+       ("perl" ,perl)
+       ("perl-unicode-linebreak" ,perl-unicode-linebreak)
+       ("po4a" ,po4a)
+       ("source-highlight" ,source-highlight)))
+    (home-page "https://kicad.org")
+    (synopsis "KiCad official documentation")
+    (description "This repository contains the official KiCad documentation.")
+    (license license:gpl3+)))
+
 (define-public kicad-symbols
   (package
     (name "kicad-symbols")
@@ -1036,18 +1158,29 @@ the 'showing the effect of'-style of operation.")
 (define-public volk
   (package
     (name "volk")
-    (version "2.3.0")
+    (version "2.4.1")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://www.libvolk.org/releases/volk-"
-                           version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/gnuradio/volk")
+             (commit (string-append "v" version))
+             (recursive? #t)))          ; for cpu_features git submodule
+       (file-name (git-file-name name version))
        (sha256
-        (base32 "1pjxz3piwy49njj5y2zk437prwkv9lfs5g48577jj3kcsg766vi3"))))
+        (base32 "1mkqiw0i2fbbsk46zvk8yv5swl7ifhq6y1dlfphq8dsmkvxckqby"))))
     (build-system cmake-build-system)
     (arguments
      `(#:phases
        (modify-phases %standard-phases
+         (add-after 'install 'remove-static-libraries
+           ;; Remove libcpu_features.a (and any others that might appear).
+           (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$"
+                                                 #:fail-on-error? #t))
+               #t)))
          (add-after 'install 'wrap-pythonpath
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
@@ -1081,22 +1214,23 @@ use on a given system.")
 (define-public libredwg
   (package
     (name "libredwg")
-    (version "0.11")
+    (version "0.12")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://gnu/libredwg/libredwg-"
              version ".tar.xz"))
        (sha256
-        (base32 "1vd7ii32k5447z7k4w9s005hv1ffpj6dyf1w40x6c53qksrblny2"))))
+        (base32 "0z5algzi3alq166885y0qyj2gnc7gc6vhnz7nw0kwc0d236p6md8"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags '("--disable-bindings")))
     (native-inputs
      `(("libxml2" ,libxml2)
        ("parallel" ,parallel)
+       ("perl" ,perl)
        ("pkg-config" ,pkg-config)
-       ("python" ,python)
+       ("python" ,python-wrapper)
        ("python-libxml2" ,python-libxml2)))
     (inputs
      `(("pcre2" ,pcre2)))
@@ -1296,21 +1430,26 @@ developed at MIT to model electromagnetic systems.")
 (define-public adms
   (package
     (name "adms")
-    (version "2.3.6")
+    (version "2.3.7")
     (source (origin
-              (method url-fetch)
-              (uri
-               (string-append
-                "mirror://sourceforge/mot-adms/adms-source/"
-                (version-major+minor version) "/adms-" version ".tar.gz"))
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/Qucs/ADMS")
+                    (commit (string-append "release-" version))))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "1rn98l6jxcjhi6ai5f7p588khra9z80m0m0lql4n4sb7773fh1vk"))))
+                "0i37c9k6q1iglmzp9736rrgsnx7sw8xn3djqbbjw29zsyl3pf62c"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("flex" ,flex)
-       ("bison" ,bison)))
-    (home-page "https://sourceforge.net/projects/mot-adms")
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("bison" ,bison)
+       ("flex" ,flex)
+       ("libtool" ,libtool)
+       ("perl" ,perl)
+       ("perl-xml-libxml" ,perl-xml-libxml)))
+    (home-page "https://github.com/Qucs/ADMS")
     (synopsis "Automatic device model synthesizer")
     (description
      "ADMS is a code generator that converts electrical compact device models
@@ -1385,7 +1524,7 @@ bindings for Python, Java, OCaml and more.")
 (define-public radare2
   (package
     (name "radare2")
-    (version "4.4.0")
+    (version "5.0.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -1393,7 +1532,7 @@ bindings for Python, Java, OCaml and more.")
                     (commit version)))
               (sha256
                (base32
-                "0gwdnrnk7wdgkajp2qwg4fyplh7nsbmf01bzx07px6xmiscd9z2s"))
+                "0aa7c27kd0l55fy5qfvxqmakp4pz6240v3hn84095qmqkzcbs420"))
               (file-name (git-file-name name version))))
     (build-system gnu-build-system)
     (arguments
@@ -1499,8 +1638,12 @@ high-performance parallel differential evolution (DE) optimization algorithm.")
     (version "28")
     (source (origin
               (method url-fetch)
-              (uri (string-append "mirror://sourceforge/ngspice/ng-spice-rework/"
-                                  version "/ngspice-" version ".tar.gz"))
+              (uri (list
+                     (string-append "mirror://sourceforge/ngspice/ng-spice-rework/"
+                                    version "/ngspice-" version ".tar.gz")
+                     (string-append "mirror://sourceforge/ngspice/ng-spice-rework/"
+                                    "old-releases/" version
+                                    "/ngspice-" version ".tar.gz")))
               (sha256
                (base32
                 "0rnz2rdgyav16w7wfn3sfrk2lwvvgz1fh0l9107zkcldijklz04l"))
@@ -2224,7 +2367,7 @@ simulation.")
 (define-public cutter
   (package
     (name "cutter")
-    (version "1.10.3")
+    (version "1.12.0")
     (source
      (origin
        (method git-fetch)
@@ -2233,7 +2376,7 @@ simulation.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0qj8jyij02nif4jpirl09ygwnv8a9zi3vkb5sf5s8mg7qwlpnvyk"))))
+        (base32 "0ljj3j3apbbw628n2nyrxpbnclixx20bqjxm0xwggqzz9vywsar0"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
@@ -2371,101 +2514,110 @@ full programmatic control over your models.")
     (license license:gpl2+)))
 
 (define-public freecad
-  (package
-    (name "freecad")
-    (version "0.18.4")
-    (source
-     (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/FreeCAD/FreeCAD")
-             (commit version)))
-       (modules '((guix build utils)))
-       (snippet
-        '(begin
-           ;; Fix build with Python 3.8, see
-           ;; <https://tracker.freecadweb.org/view.php?id=4143>.
-           (substitute* "src/Base/swigpyrun.inl"
-             (("PyObject \\*modules = interp->modules;")
-              "PyObject *modules = PyEval_GetBuiltins();"))
-           #t))
-       (file-name (git-file-name name version))
-       (sha256
-        (base32
-         "170hk1kgrvsddrwykp24wyj0cha78zzmzbf50gn98x7ngqqs395s"))))
-    (build-system qt-build-system)
-    (native-inputs
-     `(("doxygen" ,doxygen)
-       ("graphviz" ,graphviz)
-       ("qttools" ,qttools)
-       ("pkg-config" ,pkg-config)
-       ("swig" ,swig)))
-    (inputs
-     `(("boost" ,boost)
-       ("coin3D" ,coin3D)
-       ("eigen" ,eigen)
-       ("freetype" ,freetype)
-       ("glew" ,glew)
-       ("hdf5" ,hdf5-1.10)
-       ("libarea" ,libarea)
-       ("libmedfile" ,libmedfile)
-       ("libspnav" ,libspnav)
-       ("libxi" ,libxi)
-       ("libxmu" ,libxmu)
-       ("openmpi" ,openmpi)
-       ("opencascade-occt" ,opencascade-occt)
-       ("python-matplotlib" ,python-matplotlib)
-       ("python-pyside-2" ,python-pyside-2)
-       ("python-pyside-2-tools" ,python-pyside-2-tools)
-       ("python-shiboken-2" ,python-shiboken-2)
-       ("python-wrapper" ,python-wrapper)
-       ("qtbase" ,qtbase)
-       ("qtsvg" ,qtsvg)
-       ("qtx11extras" ,qtx11extras)
-       ("qtxmlpatterns" ,qtxmlpatterns)
-       ;; qtwebkit is optional. We remove it currently, because it takes
-       ;; much time to compile and substitutes are often unavailable
-       ;;("qtwebkit" ,qtwebkit)
-       ("tbb" ,tbb)
-       ("vtk" ,vtk)
-       ("xerces-c" ,xerces-c)
-       ("zlib" ,zlib)))
-    (arguments
-     `(#:tests? #f
-       #:configure-flags
-       (list
-        "-DBUILD_QT5=ON"
-        (string-append "-DCMAKE_INSTALL_LIBDIR="
-                       (assoc-ref %outputs "out") "/lib"))
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'configure 'restore-pythonpath
-           (lambda _
-             (substitute* "src/Main/MainGui.cpp"
-               (("_?putenv\\(\"PYTHONPATH=\"\\);") ""))
-             #t))
-         (add-after 'install 'wrap-pythonpath
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let ((out (assoc-ref outputs "out")))
-               (wrap-program (string-append out "/bin/FreeCAD")
-                 (list "PYTHONPATH"
-                       'prefix (list (getenv "PYTHONPATH")))))
-             #t)))))
-    (home-page "https://www.freecadweb.org/")
-    (synopsis "Your Own 3D Parametric Modeler")
-    (description
-     "FreeCAD is a general purpose feature-based, parametric 3D modeler for
+  (let ((commit-ref "7616153b3c31ace006169cdc2fdafab484498858")
+        (revision "1"))
+    (package
+      (name "freecad")
+      (version (git-version "0.18.5" revision commit-ref))
+      (source
+        (origin
+          (method git-fetch)
+          (uri (git-reference
+                 (url "https://github.com/FreeCAD/FreeCAD")
+                 (commit commit-ref)))
+          (file-name (git-file-name name version))
+          (sha256
+            (base32
+              "16965yxnp2pq7nm8z3p0pjkzjdyq62vfrj8j3nk26bwc898czyn2"))))
+      (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)))
+      (inputs
+       `(("boost" ,boost)
+         ("coin3D" ,coin3D)
+         ("eigen" ,eigen)
+         ("freetype" ,freetype)
+         ("glew" ,glew)
+         ("hdf5" ,hdf5-1.10)
+         ("libarea" ,libarea)
+         ("libmedfile" ,libmedfile)
+         ("libspnav" ,libspnav)
+         ("libxi" ,libxi)
+         ("libxmu" ,libxmu)
+         ("openmpi" ,openmpi)
+         ("opencascade-occt" ,opencascade-occt)
+         ("python-matplotlib" ,python-matplotlib)
+         ("python-pyside-2" ,python-pyside-2)
+         ("python-shiboken-2" ,python-shiboken-2)
+         ("python-pivy" ,python-pivy)
+         ("python-wrapper" ,python-wrapper)
+         ("qtbase" ,qtbase)
+         ("qtsvg" ,qtsvg)
+         ("qtx11extras" ,qtx11extras)
+         ("qtxmlpatterns" ,qtxmlpatterns)
+         ("qtwebkit" ,qtwebkit)
+         ("tbb" ,tbb)
+         ("vtk" ,vtk)
+         ("xerces-c" ,xerces-c)
+         ("zlib" ,zlib)))
+      (arguments
+       `(#:tests? #f
+         #:configure-flags
+         (list
+          "-DBUILD_QT5=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"))
+         #:phases
+         (modify-phases %standard-phases
+           (add-before 'configure 'restore-pythonpath
+             (lambda _
+               (substitute* "src/Main/MainGui.cpp"
+                 (("_?putenv\\(\"PYTHONPATH=\"\\);") ""))
+               #t))
+           (add-after 'install 'wrap-pythonpath
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let ((out (assoc-ref outputs "out")))
+                 (wrap-program (string-append out "/bin/FreeCAD")
+                   (list "PYTHONPATH"
+                         'prefix (list (getenv "PYTHONPATH")))))
+               #t)))))
+      (home-page "https://www.freecadweb.org/")
+      (synopsis "Your Own 3D Parametric Modeler")
+      (description
+       "FreeCAD is a general purpose feature-based, parametric 3D modeler for
 CAD, MCAD, CAx, CAE and PLM, aimed directly at mechanical engineering and
 product design but also fits a wider range of uses in engineering, such as
 architecture or other engineering specialties.  It is 100% Open Source (LGPL2+
 license) and extremely modular, allowing for very advanced extension and
 customization.")
-    (license
-     (list
-      license:lgpl2.1+
-      license:lgpl2.0+
-      license:gpl3+
-      license:bsd-3))))
+      (license
+       (list
+        license:lgpl2.1+
+        license:lgpl2.0+
+        license:gpl3+
+        license:bsd-3)))))
 
 (define-public libmedfile
   (package
@@ -2787,3 +2939,39 @@ GUI.")
   provides a full-fledged procedural, interactive programming language designed
   to describe data structures and to operate on them.")
       (license license:gpl3+))))
+
+(define-public pcb2gcode
+    (package
+     (name "pcb2gcode")
+     (version "2.1.0")
+     (source
+      (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/pcb2gcode/pcb2gcode")
+             (commit (string-append "v" version))
+             (recursive? #t)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0nzglcyh6ban27cc73j4l7w7r9k38qivq0jz8iwnci02pfalw4ry"))))
+     (build-system gnu-build-system)
+     (inputs
+      `(("boost" ,boost)
+        ("geos" ,geos)
+        ("gerbv" ,gerbv)
+        ("glibmm" ,glibmm)
+        ("gtkmm" ,gtkmm-2)
+        ("librsvg" ,librsvg)))
+     (native-inputs
+      `(("autoconf" ,autoconf)
+        ("automake" ,automake)
+        ("libtool" ,libtool)
+        ("pkg-config" ,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
+and drilling of PCBs.  It takes Gerber files as input and outputs G-code files
+for the milling of PCBs.  It also includes an autoleveller for the automatic
+dynamic calibration of the milling depth.")
+     (license license:gpl3+)))
diff --git a/gnu/packages/enlightenment.scm b/gnu/packages/enlightenment.scm
index 06b5dd8719..d2769a4d76 100644
--- a/gnu/packages/enlightenment.scm
+++ b/gnu/packages/enlightenment.scm
@@ -1,9 +1,9 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2015 Tomáš Čech <sleep_walker@suse.cz>
 ;;; Copyright © 2015 Daniel Pimentel <d4n1@member.fsf.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 © 2017 Nikita <nikita@n0.is>
-;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Timo Eisenmann <eisenmann@fn.de>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -31,8 +31,6 @@
   #:use-module (guix build-system python)
   #:use-module (gnu packages)
   #:use-module (gnu packages algebra)
-  #:use-module (gnu packages avahi)
-  #:use-module (gnu packages bash)
   #:use-module (gnu packages bittorrent)
   #:use-module (gnu packages check)
   #:use-module (gnu packages code)
@@ -70,7 +68,7 @@
 (define-public efl
   (package
     (name "efl")
-    (version "1.24.3")
+    (version "1.25.1")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -78,10 +76,10 @@
                     version ".tar.xz"))
               (sha256
                (base32
-                "0ajwc8lmay5ai7nsrp778g393h0p4h98p4c22gic2w61fgkcd5fy"))))
+                "0svybbrvpf6q955y6fclxh3md64z0dgmh0x54x2j60503hhs071m"))))
     (build-system meson-build-system)
     (native-inputs
-     `(("check" ,check)
+     `(("check" ,check-0.14)
        ("gettext" ,gettext-minimal)
        ("pkg-config" ,pkg-config)))
     (inputs
@@ -116,8 +114,7 @@
     (propagated-inputs
      ;; All these inputs are in package config files in section
      ;; Requires.private.
-     `(("avahi" ,avahi)
-       ("dbus" ,dbus)
+     `(("dbus" ,dbus)
        ("elogind" ,elogind)
        ("eudev" ,eudev)
        ("fontconfig" ,fontconfig)
@@ -138,13 +135,9 @@
        ("wayland" ,wayland)
        ("zlib" ,zlib)))
     (arguments
-     `(#:configure-flags '("-Dsystemd=false"
-                           "-Delogind=true"
-                           "-Dembedded-lz4=false"
-                           "-Devas-loaders-disabler=json"
+     `(#:configure-flags '("-Dembedded-lz4=false"
                            "-Dbuild-examples=false"
                            "-Decore-imf-loaders-disabler=scim"
-                           "-Davahi=true"
                            "-Dglib=true"
                            "-Dmount-path=/run/setuid-programs/mount"
                            "-Dunmount-path=/run/setuid-programs/umount"
@@ -165,6 +158,7 @@
              (let ((curl    (assoc-ref inputs "curl"))
                    (pulse   (assoc-ref inputs "pulseaudio"))
                    (sndfile (assoc-ref inputs "libsndfile"))
+                   (elogind (assoc-ref inputs "elogind"))
                    (lib     "/lib/"))
                (substitute* "src/lib/ecore_con/ecore_con_url_curl.c"
                  (("libcurl.so.?" libcurl) ; libcurl.so.[45]
@@ -174,6 +168,9 @@
                   (string-append pulse lib libpulse))
                  (("libsndfile.so.1" libsnd)
                   (string-append sndfile lib libsnd)))
+               (substitute* "src/lib/elput/elput_logind.c"
+                 (("libelogind.so.0" libelogind)
+                  (string-append elogind "/lib/" libelogind)))
                #t)))
          (add-after 'unpack 'fix-install-paths
            (lambda _
@@ -182,6 +179,8 @@
                 "install_dir: join_paths(dir_data, 'dbus-1', 'services'))\n"))
              (substitute* "src/tests/elementary/meson.build"
                (("dir_data") "meson.source_root(), 'test-output'"))
+             (substitute* "data/eo/meson.build"
+               (("'usr', 'lib'") "'./' + dir_lib"))
              #t))
          (add-after 'unpack 'set-home-directory
            ;; FATAL: Cannot create run dir '/homeless-shelter/.run' - errno=2
@@ -199,7 +198,7 @@ removable devices or support for multimedia.")
 (define-public terminology
   (package
     (name "terminology")
-    (version "1.8.1")
+    (version "1.9.0")
     (source (origin
               (method url-fetch)
               (uri
@@ -207,7 +206,7 @@ removable devices or support for multimedia.")
                               "terminology/terminology-" version ".tar.xz"))
               (sha256
                (base32
-                "1fxqjf7g30ix4qxi6366rrax27s3maxq43z2vakwnhz4mp49m9h4"))
+                "0v74858yvrrfy0l2pq7yn6izvqhpkb9gw2jpd3a3khjwv8kw6frz"))
               (modules '((guix build utils)))
               ;; Remove the bundled fonts.
               (snippet
@@ -218,10 +217,11 @@ removable devices or support for multimedia.")
                   #t))))
     (build-system meson-build-system)
     (arguments
-     `(#:configure-flags (list "-Dtests=true"
-                               (string-append "-Dedje-cc="
-                                              (assoc-ref %build-inputs "efl")
-                                              "/bin/edje_cc"))
+     `(#:configure-flags
+       (let ((efl (assoc-ref %build-inputs "efl")))
+         (list "-Dtests=true"
+               (string-append "-Dedje-cc=" efl "/bin/edje_cc")
+               (string-append "-Deet=" efl "/bin/eet")))
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'set-home-directory
@@ -304,6 +304,7 @@ Libraries with some extra bells and whistles.")
        (let ((efl (assoc-ref %build-inputs "efl")))
          (list "-Dsystemd=false"
                "-Dpackagekit=false"
+               "-Dwl=true"
                (string-append "-Dedje-cc=" efl "/bin/edje_cc")
                (string-append "-Deldbus-codegen=" efl "/bin/eldbus-codegen")
                (string-append "-Deet=" efl "/bin/eet")))
@@ -315,7 +316,6 @@ Libraries with some extra bells and whistles.")
              (setenv "HOME" "/tmp")
              (let ((xkeyboard (assoc-ref inputs "xkeyboard-config"))
                    (setxkbmap (assoc-ref inputs "setxkbmap"))
-                   (utils     (assoc-ref inputs "util-linux"))
                    (libc      (assoc-ref inputs "libc"))
                    (bc        (assoc-ref inputs "bc"))
                    (efl       (assoc-ref inputs "efl")))
@@ -346,20 +346,18 @@ Libraries with some extra bells and whistles.")
                (substitute* "data/etc/meson.build"
                  (("/bin/mount") "/run/setuid-programs/mount")
                  (("/bin/umount") "/run/setuid-programs/umount")
-                 (("/usr/bin/eject") (string-append utils "/bin/eject")))
+                 (("/usr/bin/eject") "/run/current-system/profile/bin/eject"))
                (substitute* "src/bin/system/e_system_power.c"
                  (("systemctl") "loginctl"))
                #t))))))
     (native-inputs
      `(("gettext" ,gettext-minimal)
-       ("pkg-config" ,pkg-config)
-       ("util-linux" ,util-linux)))
+       ("pkg-config" ,pkg-config)))
     (inputs
      `(("alsa-lib" ,alsa-lib)
        ("bc" ,bc)
        ("bluez" ,bluez)
        ("dbus" ,dbus)
-       ("efl" ,efl)
        ("freetype" ,freetype)
        ("libxcb" ,libxcb)
        ("libxext" ,libxext)
@@ -367,7 +365,12 @@ Libraries with some extra bells and whistles.")
        ("puleseaudio" ,pulseaudio)
        ("setxkbmap" ,setxkbmap)
        ("xcb-util-keysyms" ,xcb-util-keysyms)
-       ("xkeyboard-config" ,xkeyboard-config)))
+       ("xkeyboard-config" ,xkeyboard-config)
+       ("xorg-server-xwayland" ,xorg-server-xwayland)))
+    (propagated-inputs
+     `(("efl" ,efl)
+       ("libxkbcommon" ,libxkbcommon)
+       ("wayland-protocols" ,wayland-protocols)))
     (home-page "https://www.enlightenment.org/about-enlightenment")
     (synopsis "Lightweight desktop environment")
     (description
@@ -378,22 +381,12 @@ embedded systems.")
     (license license:bsd-2)))
 
 (define-public enlightenment-wayland
-  (package
-    (inherit enlightenment)
-    (name "enlightenment-wayland")
-    (arguments
-     (substitute-keyword-arguments (package-arguments enlightenment)
-       ((#:configure-flags flags)
-        `(cons* "-Dwl=true" ,flags))))
-    (inputs
-     `(("wayland-protocols" ,wayland-protocols)
-       ("xorg-server-xwayland" ,xorg-server-xwayland)
-       ,@(package-inputs enlightenment)))))
+  (deprecated-package "enlightenment-wayland" enlightenment))
 
 (define-public python-efl
   (package
     (name "python-efl")
-    (version "1.24.0")
+    (version "1.25.0")
     (source
       (origin
         (method url-fetch)
@@ -401,17 +394,19 @@ embedded systems.")
                             "python/python-efl-" version ".tar.xz"))
         (sha256
          (base32
-          "1vk1cdd959gia4a9qzyq56a9zw3lqf9ck66k8c9g3c631mp5cfpy"))
+          "0bk161xwlz4dlv56r68xwkm8snzfifaxd1j7w2wcyyk4fgvnvq4r"))
         (modules '((guix build utils)))
         ;; Remove files generated by Cython
         (snippet
-          '(begin
-             (copy-file "efl/dbus_mainloop/e_dbus.c" "efl/dbus_mainloop/e_dbus.q")
-             (for-each delete-file (find-files "efl" ".*\\.c$"))
-             (delete-file "efl/eo/efl.eo_api.h")
-             (copy-file "efl/dbus_mainloop/e_dbus.q" "efl/dbus_mainloop/e_dbus.c")
-             (delete-file "efl/dbus_mainloop/e_dbus.q")
-             #t))))
+         '(begin
+            (for-each (lambda (file)
+                        (let ((generated-file
+                                (string-append (string-drop-right file 3) "c")))
+                          (when (file-exists? generated-file)
+                            (delete-file generated-file))))
+                      (find-files "efl" "\\.pyx$"))
+            (delete-file "efl/eo/efl.eo_api.h")
+            #t))))
     (build-system python-build-system)
     (arguments
      '(#:phases
@@ -476,7 +471,7 @@ Libraries stack (eo, evas, ecore, edje, emotion, ethumb and elementary).")
            (lambda _ (setenv "HOME" "/tmp") #t)))
        #:tests? #f)) ; tests require running dbus service
     (native-inputs
-     `(("check" ,check)
+     `(("check" ,check-0.14)
        ("gettext" ,gettext-minimal)
        ("pkg-config" ,pkg-config)))
     (inputs
@@ -572,20 +567,20 @@ directories.
 (define-public evisum
   (package
     (name "evisum")
-    (version "0.5.2")
+    (version "0.5.8")
     (source
       (origin
         (method url-fetch)
         (uri (string-append "https://download.enlightenment.org/rel/apps/"
                             "evisum/evisum-" version ".tar.xz"))
         (sha256
-         (base32
-          "1s2d61hjlyh212d9d7rpdlcv90lxsb8br89806wakgnadqygh9gc"))))
+         (base32 "0cg4vqd069h89k3wrvl550p29y3yzbdnvii58gwc8rghwym621jx"))))
     (build-system meson-build-system)
     (arguments
-     '(#:tests? #f))    ; no tests
+     '(#:tests? #f))                    ; no tests
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     `(("gettext" ,gettext-minimal)
+       ("pkg-config" ,pkg-config)))
     (inputs
      `(("efl" ,efl)))
     (home-page "https://www.enlightenment.org")
diff --git a/gnu/packages/entr.scm b/gnu/packages/entr.scm
index cacb5ab7f5..49e1060b5f 100644
--- a/gnu/packages/entr.scm
+++ b/gnu/packages/entr.scm
@@ -2,7 +2,7 @@
 ;;; Copyright © 2016 Matthew Jordan <matthewjordandevops@yandex.com>
 ;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net>
-;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -21,23 +21,26 @@
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (gnu packages entr)
+  #:use-module (gnu packages base)
+  #:use-module (gnu packages bash)
   #:use-module (gnu packages ncurses)
   #:use-module (guix licenses)
   #:use-module (guix packages)
   #:use-module (guix download)
-  #:use-module (guix build-system gnu))
+  #:use-module (guix build-system gnu)
+  #:use-module (guix utils))
 
 (define-public entr
   (package
     (name "entr")
-    (version "4.2")
+    (version "4.6")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://entrproject.org/code/entr-"
                                   version ".tar.gz"))
               (sha256
                (base32
-                "0w2xkf77jikcjh15fp9g7661ss30pz3jbnh261vqpaqavwah4c17"))))
+                "0vcflgagna2gdlpjsd6748c73j2829xlhm276mi838zl1n121phn"))))
     (build-system gnu-build-system)
     (arguments
      `(#:test-target "test"
@@ -47,20 +50,24 @@
            (lambda* (#:key outputs #:allow-other-keys)
              (let ((out (assoc-ref outputs "out")))
                (setenv "CONFIG_SHELL" (which "bash"))
-               (setenv "CC" (which "gcc"))
-               (setenv "DESTDIR" (string-append out "/"))
-               (setenv "PREFIX" "")
-               (setenv "MANPREFIX" "man")
+               (setenv "CC" ,(cc-for-target))
+               (setenv "PREFIX" out)
+               (setenv "MANPREFIX" (string-append out "/man"))
                (invoke "./configure"))))
          (add-before 'build 'remove-fhs-file-names
-           (lambda _
+           (lambda* (#:key inputs #:allow-other-keys)
              (substitute* "entr.c"
-               (("/bin/sh") (which "sh"))
-               (("/bin/cat") (which "cat"))
-               (("/usr/bin/clear") (which "clear")))
+               (("/bin/sh" command)
+                (string-append (assoc-ref inputs "bash") command))
+               (("/bin/cat" command)
+                (string-append (assoc-ref inputs "coreutils") command))
+               (("/usr(/bin/clear)" _ command)
+                (string-append (assoc-ref inputs "ncurses") command)))
              #t)))))
-    ;; ncurses provides the `clear' binary
-    (inputs `(("ncurses" ,ncurses)))
+    (inputs
+     `(("bash" ,bash)
+       ("coreutils" ,coreutils)
+       ("ncurses" ,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 93569f3560..7b5dc70b5d 100644
--- a/gnu/packages/erlang.scm
+++ b/gnu/packages/erlang.scm
@@ -4,6 +4,7 @@
 ;;; Copyright © 2016, 2017 Pjotr Prins <pjotr.guix@thebird.nl>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Nikita <nikita@n0.is>
+;;; Copyright © 2021 Oskar Köök <oskar@maatriks.ee>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -40,7 +41,7 @@
 (define-public erlang
   (package
     (name "erlang")
-    (version "21.3.8.13")
+    (version "23.2.1")
     (source (origin
               (method git-fetch)
               ;; The tarball from http://erlang.org/download contains many
@@ -52,7 +53,7 @@
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1dj37vk712dx76y25g13na24wbpn7a5ddmlpf4n51gm10sib54wj"))
+                "1p3lw4bcm2dph3pf1h4i0d9pzrcfr83r0iadqanxkwbmm1bl11pm"))
               (patches (search-patches "erlang-man-path.patch"))))
     (build-system gnu-build-system)
     (native-inputs
@@ -68,7 +69,7 @@
                                (version-major+minor version) ".tar.gz"))
            (sha256
             (base32
-             "0wm1dg1psv1n3gpiwyms06yhsryrnr28p455fp0l1ak8hdf4nipm"))))))
+             "0rq0rw68f02vckgdiwmvx8bvyv00l81s27cq59i3h79j9prfal2n"))))))
     (inputs
      `(("ncurses" ,ncurses)
        ("openssl" ,openssl)
@@ -180,6 +181,14 @@
            (lambda _
              (invoke "./otp_build" "autoconf")
              #t))
+         (add-after 'autoconf 'patch-configure-script-shell
+           (lambda _
+             (substitute* "configure"
+               (("cmd_str=\"./configure")
+                (string-append "cmd_str=\""
+                               (which "sh")
+                               " ./configure")))
+             #t))
          (add-after 'install 'patch-erl
            ;; This only works after install.
            (lambda* (#:key outputs #:allow-other-keys)
diff --git a/gnu/packages/esolangs.scm b/gnu/packages/esolangs.scm
new file mode 100644
index 0000000000..676b355e65
--- /dev/null
+++ b/gnu/packages/esolangs.scm
@@ -0,0 +1,96 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2020 Hendursaga <hendursaga@yahoo.com>
+;;; Copyright © 2020 Leo Prikler <leo.prikler@student.tugraz.at>
+;;;
+;;; 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 esolangs)
+  #:use-module (gnu packages)
+  #:use-module (gnu packages bison)
+  #:use-module (gnu packages flex)
+  #:use-module (gnu packages ncurses)
+  #:use-module (guix build-system cmake)
+  #:use-module (guix build-system copy)
+  #: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 cfunge
+  (package
+    (name "cfunge")
+    (version "0.9.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/VorpalBlade/cfunge")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "18ir0h10vxdb5jb57w5hjbgi8spjxg9x2148agadhhmbhsja02m7"))))
+    (build-system cmake-build-system)
+    (arguments
+      ;; The tests are not designed to be run and evaluated automatically.
+     '(#:tests? #f))
+    (inputs
+     `(("ncurses" ,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
+written in C.  It supports several @dfn{fingerprints} (opt-in language extensions
+identified by unique ID codes).")
+    (license license:gpl3)))
+
+(define-public shakespeare-spl
+  (package
+    (name "shakespeare-spl")
+    (version "1.2.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://sourceforge/shakespearelang/spl-"
+                                  version ".tar.gz"))
+              (sha256
+               (base32
+                "1lxpfhv01kcwy4l4xgx7j765g8g0v74jns0cr908nfw55h5fy1hj"))
+              (patches
+               (search-patches
+                "shakespeare-spl-fix-grammar.patch"))))
+    (build-system copy-build-system)
+    (arguments
+     `(#:imported-modules (,@%gnu-build-system-modules
+                           (guix build copy-build-system))
+       #:modules ((guix build copy-build-system)
+                  ((guix build gnu-build-system) #:prefix gnu:)
+                  (guix build utils))
+       #:install-plan '(("spl/bin" "bin")
+                        ("spl/lib" "lib")
+                        ("spl/include" "include"))
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'install 'build
+           (assoc-ref gnu:%standard-phases 'build)))))
+    (native-inputs
+     `(("bison" ,bison)
+       ("flex" ,flex)))
+    (home-page "http://shakespearelang.sourceforge.net/")
+    (synopsis "Write programs like Shakespearean plays")
+    (description "Shakespeare is a programming language with the design goal
+of making programs read like plays.  The characters in the play are variables.
+If you want to assign a character, let's say Juliet, a positive value, you put
+her and another character on the stage and let that character praise Juliet.")
+    (license license:gpl2+)))
diff --git a/gnu/packages/fcitx.scm b/gnu/packages/fcitx.scm
index e699d7d59d..d52edf1750 100644
--- a/gnu/packages/fcitx.scm
+++ b/gnu/packages/fcitx.scm
@@ -1,6 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
 ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2020 Zhu Zihao <all_but_last@163.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -22,29 +23,89 @@
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix build-system cmake)
+  #:use-module (guix build-system glib-or-gtk)
+  #:use-module (gnu packages check)
   #:use-module (gnu packages documentation)
   #:use-module (gnu packages enchant)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages glib)
+  #:use-module (gnu packages graphviz)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages icu4c)
   #:use-module (gnu packages iso-codes)
+  #:use-module (gnu packages man)
+  #:use-module (gnu packages ncurses)
   #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages python)
+  #:use-module (gnu packages sqlite)
   #:use-module (gnu packages web)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg))
 
+(define-public presage
+  (package
+    (name "presage")
+    (version "0.9.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://sourceforge/presage/presage/"
+                       version "/presage-" version ".tar.gz"))
+       (sha256
+        (base32 "0rm3b3zaf6bd7hia0lr1wyvi1rrvxkn7hg05r5r1saj0a3ingmay"))))
+    (build-system glib-or-gtk-build-system)
+    (outputs '("out" "doc"))
+    (arguments
+     `(#:configure-flags
+       (list
+        "CFLAGS=-Wno-narrowing"
+        "CXXFLAGS=-Wno-narrowing")
+       #: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/presage"))
+               (rename-file
+                (string-append out "/share/presage/html")
+                (string-append doc "/share/presage/html"))
+               #t))))))
+    (native-inputs
+     `(("dot" ,graphviz)
+       ("doxygen" ,doxygen)
+       ("gettext" ,gettext-minimal)
+       ("glib:bin" ,glib "bin")
+       ("gtk+:bin" ,gtk+ "bin")
+       ("help2man" ,help2man)
+       ("pkg-config" ,pkg-config)
+       ("python-wrapper" ,python-wrapper)))
+    (inputs
+     `(("glib" ,glib)
+       ("gtk+" ,gtk+)
+       ("libx11" ,libx11)
+       ("sqlite" ,sqlite)
+       ("tinyxml" ,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
+words which are most likely to be entered next by merging predictions generated
+by the different predictive algorithms.")
+    (home-page "https://presage.sourceforge.io/")
+    (license gpl2+)))
+
 (define-public fcitx
   (package
     (name "fcitx")
-    (version "4.2.9.7")
+    (version "4.2.9.8")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://download.fcitx-im.org/fcitx/"
                                   "fcitx-" version "_dict.tar.xz"))
               (sha256
                (base32
-                "13vg7yzfq0vj2r8zdf9ly3n243nwwggkhd5qv3z6yqdyj0m3ncyg"))))
+                "1iik80l7g8yk9iwsls6nl9whwgm0sj8i7s6s0bz4c5anl35iaddw"))))
     (build-system cmake-build-system)
     (outputs '("out" "gtk2" "gtk3"))
     (arguments
diff --git a/gnu/packages/fcitx5.scm b/gnu/packages/fcitx5.scm
new file mode 100644
index 0000000000..ed0d928fc7
--- /dev/null
+++ b/gnu/packages/fcitx5.scm
@@ -0,0 +1,450 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2020 Zhu Zihao <all_but_last@163.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 fcitx5)
+  #:use-module (guix packages)
+  #:use-module (guix download)
+  #:use-module (guix git-download)
+  #:use-module (guix build-system cmake)
+  #:use-module (guix build-system copy)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (gnu packages boost)
+  #:use-module (gnu packages curl)
+  #: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)
+  #:use-module (gnu packages iso-codes)
+  #:use-module (gnu packages kde-frameworks)
+  #:use-module (gnu packages libevent)
+  #:use-module (gnu packages linux)
+  #:use-module (gnu packages lua)
+  #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages pretty-print)
+  #:use-module (gnu packages python)
+  #:use-module (gnu packages qt)
+  #:use-module (gnu packages textutils)
+  #:use-module (gnu packages unicode)
+  #:use-module (gnu packages web)
+  #:use-module (gnu packages xdisorg)
+  #:use-module (gnu packages xml)
+  #:use-module (gnu packages xorg))
+
+(define-public xcb-imdkit
+  (package
+    (name "xcb-imdkit")
+    (version "1.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://download.fcitx-im.org/fcitx5/xcb-imdkit/xcb-imdkit-"
+             version ".tar.xz"))
+       (sha256
+        (base32 "1qgbbp8y8ci7haz99vgbrgpjsbrwwyjianyhdvxcirnbm5bybvmz"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin
+           ;; Remove bundled uthash.
+           (delete-file-recursively "uthash")
+           #t))))
+    (build-system cmake-build-system)
+    (inputs
+     `(("uthash" ,uthash)
+       ("libxcb" ,libxcb)
+       ("xcb-util" ,xcb-util)
+       ("xcb-util-keysyms" ,xcb-util-keysyms)))
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)
+       ("pkg-config" ,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,
+comparing with the implementation of IMDkit with Xlib, and xim inside Xlib, it
+has less memory foot print, better performance, and safer on malformed
+client.")
+    (license license:lgpl2.1)))
+
+(define-public fcitx5
+  (package
+    (name "fcitx5")
+    (version "5.0.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://download.fcitx-im.org/fcitx5/fcitx5/fcitx5-"
+             version "_dict.tar.xz"))
+       (sha256
+        (base32 "06zkb33m2rnhg385iy79n3r4svz5jbav74di61xqa3lhbv7534s3"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:configure-flags
+       (list (string-append "-DCLDR_DIR="
+                            (assoc-ref %build-inputs "unicode-cldr-common")
+                            "/share/unicode/cldr"))))
+    (inputs
+     `(("cairo" ,cairo)
+       ("cairo-xcb" ,cairo-xcb)
+       ("dbus" ,dbus)
+       ("enchant" ,enchant)
+       ("expat" ,expat)
+       ("fmt" ,fmt)
+       ("gdk-pixbuf" ,gdk-pixbuf)
+       ("gettext" ,gettext-minimal)
+       ("glib" ,glib)
+       ("iso-codes" ,iso-codes)
+       ("json-c" ,json-c)
+       ("libevent" ,libevent)
+       ("libpthread-stubs" ,libpthread-stubs)
+       ("libuuid" ,util-linux "lib")
+       ("libx11" ,libx11)
+       ("libxcb" ,libxcb)
+       ("libxfixes" ,libxfixes)
+       ("libxinerama" ,libxinerama)
+       ("libxkbcommon" ,libxkbcommon)
+       ("libxkbfile" ,libxkbfile)
+       ("pango" ,pango)
+       ("unicode-cldr-common" ,unicode-cldr-common)
+       ("wayland" ,wayland)
+       ("wayland-protocols" ,wayland-protocols)
+       ("xcb-imdkit" ,xcb-imdkit)
+       ("xcb-util" ,xcb-util)
+       ("xcb-util-keysyms" ,xcb-util-keysyms)
+       ("xcb-util-wm" ,xcb-util-wm)
+       ("xkeyboard-config" ,xkeyboard-config)))
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)
+       ("pkg-config" ,pkg-config)))
+    (native-search-paths
+     (list (search-path-specification
+            (variable "FCITX_ADDON_DIRS")
+            (files '("lib/fcitx5")))))
+    (home-page "https://github.com/fcitx/fcitx5")
+    (synopsis "Input method framework")
+    (description "Fcitx 5 is a generic input method framework.")
+    (license license:lgpl2.1+)))
+
+(define-public fcitx5-lua
+  (package
+    (name "fcitx5-lua")
+    (version "5.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://download.fcitx-im.org/fcitx5/fcitx5-lua/fcitx5-lua-"
+             version ".tar.xz"))
+       (sha256
+        (base32 "177mj56j8yrl79hvk7bbrifvm137np23pwalv83ibgk4l51z92hf"))))
+    (build-system cmake-build-system)
+    (inputs
+     `(("fcitx5" ,fcitx5)
+       ("lua" ,lua)
+       ("gettext" ,gettext-minimal)
+       ("libpthread-stubs" ,libpthread-stubs)))
+    (native-inputs
+     `(("extra-cmake-modules" ,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.")
+    (license license:lgpl2.1+)))
+
+(define-public libime
+  (package
+    (name "libime")
+    (version "1.0.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://download.fcitx-im.org/fcitx5/libime/libime-"
+                           version "_dict.tar.xz"))
+       (sha256
+        (base32 "006pncby7p6h3rnicckzjwi6jzsrqiqbj6p9bpic80lanlllgw31"))))
+    (build-system cmake-build-system)
+    (inputs
+     `(("fcitx5" ,fcitx5)
+       ("boost" ,boost)))
+    (native-inputs
+     `(("gcc" ,gcc-9)                  ;for #include <filesystem> and ld support
+       ("extra-cmake-modules" ,extra-cmake-modules)
+       ("python" ,python)))             ;needed to run test
+    (home-page "https://github.com/fcitx/libime")
+    (synopsis "Library for implementing generic input method")
+    (description "Libime is a library for implmenting various input methods
+editors.")
+    (license license:lgpl2.1+)))
+
+(define-public fcitx5-gtk
+  (package
+    (name "fcitx5-gtk")
+    (version "5.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://download.fcitx-im.org/fcitx5"
+                           "/fcitx5-gtk/fcitx5-gtk-"
+                           version ".tar.xz"))
+       (sha256
+        (base32 "0h53liraqc5nz4nyi3ixdfdw3zzkdcsiff7j25acc3gmaa5gyij7"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:tests? #f                      ;No test
+       #:configure-flags
+       (list (string-append "-DGOBJECT_INTROSPECTION_GIRDIR="
+                            %output "/share/gir-1.0")
+             (string-append "-DGOBJECT_INTROSPECTION_TYPELIBDIR="
+                            %output "/lib/girepository-1.0"))
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'configure 'patch-install-prefix
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out"))
+                   (gtk2 (assoc-ref outputs "gtk2")))
+               ;; Install GTK+ 2 input method module to its own output.
+               (substitute* "gtk2/CMakeLists.txt"
+                 (("\\$\\{CMAKE_INSTALL_LIBDIR\\}")
+                  (string-append gtk2 "/lib")))))))))
+    (inputs
+     `(("fcitx5" ,fcitx5)
+       ("libxkbcommon" ,libxkbcommon)
+       ("gobject-introspection" ,gobject-introspection)
+       ("gtk2" ,gtk+-2)
+       ("gtk3" ,gtk+)
+       ("glib" ,glib)
+       ("libx11" ,libx11)
+       ("gettext" ,gettext-minimal)))
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)
+       ("pkg-config" ,pkg-config)
+       ("glib" ,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")
+    (synopsis "Glib based D-Bus client and GTK IM module for Fcitx 5")
+    (description "Fcitx5-gtk provides a Glib based D-Bus client and IM module
+for GTK+2/GTK+3 application.")
+    (license license:lgpl2.1+)))
+
+(define-public fcitx5-qt
+  (package
+    (name "fcitx5-qt")
+    (version "5.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://download.fcitx-im.org/fcitx5"
+                           "/fcitx5-qt/fcitx5-qt-"
+                           version ".tar.xz"))
+       (sha256
+        (base32 "0ilhb4yw9k3m1c4fidnv3nd5dgm9xxds11dgdys6gswjjnmcgqqm"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:configure-flags
+       (list (string-append "-DCMAKE_INSTALL_QT5PLUGINDIR="
+                            %output "/lib/qt5/plugins")
+             "-DENABLE_QT4=Off")))
+    (inputs
+     `(("fcitx5" ,fcitx5)
+       ("libxcb" ,libxcb)
+       ("libxkbcommon" ,libxkbcommon)
+       ("qtbase" ,qtbase)
+       ("gettext" ,gettext-minimal)))
+    (native-inputs
+     `(("extra-cmake-modules" ,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
+for Qt based application.")
+    (license (list license:lgpl2.1+
+                   ;; Files under qt4(Fcitx5Qt4DBusAddons), qt5/dbusaddons
+                   ;; and qt5/platforminputcontext.
+                   license:bsd-3))))
+
+(define-public fcitx5-chinese-addons
+  (package
+    (name "fcitx5-chinese-addons")
+    (version "5.0.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://download.fcitx-im.org/fcitx5"
+                           "/fcitx5-chinese-addons/fcitx5-chinese-addons-"
+                           version "_dict.tar.xz"))
+       (sha256
+        (base32 "0mf91gzwzhfci0jn6g3l516xjw8r4v40ginnbl70h1zx6vr24rfp"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-before 'configure 'split-outputs
+           ;; Build with GUI supports requires Qt and increase package closure
+           ;; by 800M on x86_64, so place it under another output.
+           (lambda* (#:key outputs #:allow-other-keys)
+             (substitute* "gui/pinyindictmanager/CMakeLists.txt"
+               (("\\$\\{CMAKE_INSTALL_LIBDIR\\}" _)
+                (string-append (assoc-ref outputs "gui") "/lib"))))))))
+    (inputs
+     `(("fcitx5" ,fcitx5)
+       ("fcitx5-lua" ,fcitx5-lua)
+       ("boost" ,boost)
+       ("libime",libime)
+       ("curl" ,curl)
+       ("gettext" ,gettext-minimal)
+       ("fmt" ,fmt)
+       ("libpthread-stubs" ,libpthread-stubs)
+       ("opencc" ,opencc)
+       ("qtbase" ,qtbase)
+       ("fcitx5-qt" ,fcitx5-qt)
+       ("qtwebkit" ,qtwebkit)))
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)
+       ("pkg-config" ,pkg-config)))
+    (outputs '("out" "gui"))
+    (home-page "https://github.com/fcitx/fcitx5-chinese-addons")
+    (synopsis "Chinese related addons for Fcitx 5")
+    (description "Fcitx5-chinese-addons provides Chinese related addons,
+including input methods previous bundled inside Fcitx 4:
+
+@itemize
+@item Bingchan
+@item Cangjie
+@item Erbi
+@item Pinyin
+@item Shuangpin
+@item Wanfeng
+@item Wubi
+@item Wubi Pinyin
+@item Ziranma
+@end itemize\n")
+    (license (list license:lgpl2.1+
+                   license:gpl2+
+                   ;; im/pinyin/emoji.txt
+                   license:unicode))))
+
+(define-public fcitx5-configtool
+  (package
+   (name "fcitx5-configtool")
+   (version "5.0.1")
+   (source
+    (origin
+     (method url-fetch)
+     (uri (string-append
+           "https://download.fcitx-im.org/fcitx5"
+           "/fcitx5-configtool/fcitx5-configtool-" version ".tar.xz"))
+     (sha256
+      (base32 "0mrqhzvab41hkvhkz7vkb8d2mv5bgx4aqp9jpz4kf3kskwm1q14b"))))
+   (build-system cmake-build-system)
+   (arguments
+    `(#:configure-flags
+      ;; KDE is currently not working on Guix, KCM supports doesn't make sense.
+      '("-DENABLE_KCM=Off")))
+   (inputs
+    `(("fcitx5" ,fcitx5)
+      ("fcitx5-qt" ,fcitx5-qt)
+      ("qtbase" ,qtbase)
+      ("qtx11extras" ,qtx11extras)
+      ("kitemviews" ,kitemviews)
+      ("kwidgetsaddons" ,kwidgetsaddons)
+      ("libx11" ,libx11)
+      ("xkeyboard-config" ,xkeyboard-config)
+      ("libxkbfile" ,libxkbfile)
+      ("gettext" ,gettext-minimal)
+      ("iso-codes" ,iso-codes)))
+   (native-inputs
+    `(("gcc" ,gcc-9)
+      ("extra-cmake-modules" ,extra-cmake-modules)
+      ("pkg-config" ,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
+to manage different input methods in Fcitx 5.")
+   (license license:gpl2+)))
+
+(define-public fcitx5-material-color-theme
+  (package
+    (name "fcitx5-material-color-theme")
+    (version "0.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/hosxy/Fcitx5-Material-Color")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1mgc722521jmfx0xc3ibmiycd3q2w7xg2956xcpc07kz90gcdjaa"))))
+    (build-system copy-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (use-modules (srfi srfi-26))
+
+             (let* ((out (assoc-ref outputs "out"))
+                    (assets-dir (string-append
+                                 out "/share/fcitx5-material-color-theme"))
+                    (themes-prefix (string-append out "/share/fcitx5/themes")))
+
+               (define (install-theme-variant variant target)
+                 (let ((dir (string-append themes-prefix "/" target))
+                       (png (string-append "panel-" variant ".png"))
+                       (conf (string-append "theme-" variant ".conf")))
+                   (format #t "install: Installing color variant \"~a\" to ~a~%"
+                           variant dir)
+                   (substitute* conf
+                     (("^Name=.*")
+                      (string-append "Name=" target "\n")))
+                   (mkdir-p dir)
+                   (install-file png dir)
+                   (copy-file conf (string-append dir "/theme.conf"))
+                   (symlink (string-append assets-dir "/arrow.png")
+                            (string-append dir "/arrow.png"))))
+
+               (mkdir-p assets-dir)
+               (install-file "arrow.png" assets-dir)
+               (for-each
+                (lambda (x)
+                  (install-theme-variant
+                   x (string-append "Material-Color-" (string-capitalize x))))
+                '("black" "blue" "brown" "indigo"
+                  "orange" "pink" "red" "teal"))
+
+               (install-theme-variant
+                "deepPurple" "Material-Color-DeepPurple")))))))
+    (home-page "https://github.com/hosxy/Fcitx5-Material-Color")
+    (synopsis "Material Design for Fcitx 5")
+    (description "Fcitx5-material-color-theme is a Material Design theme
+for Fcitx 5 with following color variants:
+
+@itemize
+@item Black
+@item Blue
+@item Brown
+@item Indigo
+@item Orange
+@item Pink
+@item Red
+@item teal
+@item DeepPurple
+@end itemize\n")
+    (license license:asl2.0)))
diff --git a/gnu/packages/file-systems.scm b/gnu/packages/file-systems.scm
index d2e022c05a..e6ee645be0 100644
--- a/gnu/packages/file-systems.scm
+++ b/gnu/packages/file-systems.scm
@@ -3,8 +3,10 @@
 ;;; Copyright © 2017 Gábor Boskovits <boskovits@gmail.com>
 ;;; Copyright © 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2018 Leo Famulari <leo@famulari.name>
-;;; Copyright © 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2020 Raghav Gururajan <raghavgururajan@disroot.org>
+;;; Copyright © 2020 Morgan Smith <Morgan.J.Smith@outlook.com>
+;;; Copyright © 2021 raid5atemyhoemwork <raid5atemyhomework@protonmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -30,12 +32,14 @@
   #:use-module (guix build-system copy)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system linux-module)
+  #:use-module (guix build-system python)
   #:use-module (guix build-system trivial)
   #:use-module (guix utils)
   #:use-module (gnu packages)
   #:use-module (gnu packages acl)
   #:use-module (gnu packages attr)
   #:use-module (gnu packages autotools)
+  #:use-module (gnu packages base)
   #:use-module (gnu packages bison)
   #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
@@ -46,6 +50,7 @@
   #:use-module (gnu packages documentation)
   #:use-module (gnu packages docbook)
   #:use-module (gnu packages flex)
+  #:use-module (gnu packages gawk)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnupg)
   #:use-module (gnu packages kerberos)
@@ -57,6 +62,8 @@
   #:use-module (gnu packages photo)
   #: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 readline)
   #:use-module (gnu packages rsync)
@@ -64,6 +71,7 @@
   #:use-module (gnu packages sqlite)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages valgrind)
+  #:use-module (gnu packages version-control)
   #:use-module (gnu packages xml))
 
 (define-public autofs
@@ -138,6 +146,119 @@ large and/or frequently changing (network) environment.")
     (license (list license:bsd-3        ; modules/cyrus-sasl.c
                    license:gpl2+))))    ; the rest
 
+(define-public bindfs
+  (package
+    (name "bindfs")
+    (version "1.14.8")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://bindfs.org/downloads/bindfs-"
+                                  version ".tar.gz"))
+              (sha256
+               (base32
+                "15y4brlcrqhxl6z73785m0dr1vp2q3wc6xss08x9jjr0apzmmjp5"))))
+    (build-system gnu-build-system)
+    (arguments
+     ;; XXX: The tests have no hope of passing until there is a "nogroup"
+     ;; entry (or at least some group to which the guix builder does
+     ;; not belong) in the /etc/group file of the build environment.
+     ;; Currently we do not have such a group.  Disable tests for now.
+     '(#:tests? #f))
+    (native-inputs
+       ;; Native inputs to run the tests
+       ;; ("ruby" ,ruby)
+       ;; ("valgrind" ,valgrind)
+       ;; ("which" ,which)
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("fuse" ,fuse)))
+    (home-page "https://bindfs.org")
+    (synopsis "Bind mount a directory and alter permission bits")
+    (description
+     "@command{bindfs} is a FUSE filesystem for mounting a directory to
+another location, similar to @command{mount --bind}.  It can be used for:
+@itemize
+@item Making a directory read-only.
+@item Making all executables non-executable.
+@item Sharing a directory with a list of users (or groups).
+@item Modifying permission bits using rules with chmod-like syntax.
+@item Changing the permissions with which files are created.
+@end itemize ")
+    (license license:gpl2+)))
+
+(define-public davfs2
+  (package
+    (name "davfs2")
+    (version "1.6.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://download.savannah.nongnu.org/releases/"
+                           "davfs2/davfs2-" version ".tar.gz"))
+       (sha256
+        (base32 "0l1vnv5lfigciwg17p10zxwhzj4qw2d9kw30prr7g4dxhmb6fsrf"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:configure-flags
+       (list "--sysconfdir=/etc"        ; so man pages & binaries contain /etc
+             (string-append "--docdir=" (assoc-ref %outputs "out")
+                            "/share/doc/" ,name "-" ,version)
+             (string-append "ssbindir=" (assoc-ref %outputs "out") "/sbin")
+             ;; The default ‘davfs2’ user and group don't exist on most systems.
+             "dav_user=nobody"
+             "dav_group=nogroup")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'omit-redundancy
+           ;; Don't install redundant copies of /etc examples into /share.
+           (lambda _
+             (substitute* "etc/Makefile.in"
+               (("(dist_pkgdata_DATA =.*) davfs2.conf secrets(.*)"
+                 _ prefix suffix)
+                (string-append prefix suffix)))
+             #t))
+         (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))
+         (replace 'install
+           (lambda* (#:key make-flags outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (apply invoke "make" "install"
+                      (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)))
+    (home-page "https://savannah.nongnu.org/projects/davfs2")
+    (synopsis "Mount remote WebDAV resources in the local file system")
+    (description
+     "The @acronym{WebDAV, Web Distributed Authoring and Versioning} extension
+to the HTTP protocol defines a standard way to author resources on a remote Web
+server.  Davfs2 exposes such resources as a typical filesystem which can be used
+by standard applications with no built-in support for WebDAV, such as the GNU
+coreutils (@command{cp}, @command{mv}, etc.) or a graphical word processor.
+
+Davfs2 works with most WebDAV servers with no or little configuration.  It
+supports TLS (HTTPS), HTTP proxies, HTTP basic and digest authentication, and
+client certificates.  It performs extensive caching to avoid unnecessary network
+traffic, stay responsive even over slow or unreliable connections, and prevent
+data loss.  It aims to make use by unprivileged users as easy and secure as
+possible.
+
+However, davfs2 is not a full-featured WebDAV client.  The file system interface
+and the WebDAV protocol are quite different.  Translating between the two is not
+always possible.")
+    (license (list license:bsd-2        ; src/fuse_kernel.h
+                   license:gpl3+))))    ; everything else
+
 (define-public fsarchiver
   (package
     (name "fsarchiver")
@@ -210,8 +331,8 @@ from a mounted file system.")
     (license license:gpl2+)))
 
 (define-public bcachefs-tools
-  (let ((commit "ab2f1ec24f5307b0cf1e3c4ad19bf350d9f54d9f")
-        (revision "0"))
+  (let ((commit "db931a4571817d7d61be6bce306f1d42f7cd3398")
+        (revision "2"))
     (package
       (name "bcachefs-tools")
       (version (git-version "0.1" revision commit))
@@ -223,7 +344,7 @@ from a mounted file system.")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
-          (base32 "10pafvaxg1lvwnqjv3a4rsi96bghbpcsgh3vhqilndi334k3b0hd"))))
+          (base32 "1zl8lda6ni6rhsmsng6smrcjihy2irjf03h1m7nvkqmkhq44j80s"))))
       (build-system gnu-build-system)
       (arguments
        `(#:make-flags
@@ -234,7 +355,24 @@ from a mounted file system.")
                "PYTEST=pytest")
          #:phases
          (modify-phases %standard-phases
-           (delete 'configure))         ; no configure script
+           (delete 'configure)          ; no configure script
+           (add-after 'install 'promote-mount.bcachefs.sh
+             ;; XXX The (optional) mount.bcachefs helper requires rust:cargo.
+             ;; This alternative shell script does the job well enough for now.
+             (lambda* (#:key inputs outputs #:allow-other-keys)
+               (let ((out (assoc-ref outputs "out")))
+               (with-directory-excursion (string-append out "/sbin")
+                 (rename-file "mount.bcachefs.sh" "mount.bcachefs")
+                 ;; WRAP-SCRIPT causes bogus ‘Insufficient arguments’ errors.
+                 (wrap-program "mount.bcachefs"
+                   `("PATH" ":" prefix
+                     ,(cons (string-append out "/sbin")
+                            (map (lambda (input)
+                                     (string-append (assoc-ref inputs input)
+                                                    "/bin"))
+                                   (list "coreutils"
+                                         "gawk"
+                                         "util-linux"))))))))))
          #:tests? #f))                  ; XXX 6 valgrind tests fail
       (native-inputs
        `(("pkg-config" ,pkg-config)
@@ -243,15 +381,21 @@ from a mounted file system.")
          ("python-pytest" ,python-pytest)
          ("valgrind" ,valgrind)))
       (inputs
-       `(("keyutils" ,keyutils)
+       `(("eudev" ,eudev)
+         ("keyutils" ,keyutils)
          ("libaio" ,libaio)
          ("libscrypt" ,libscrypt)
          ("libsodium" ,libsodium)
          ("liburcu" ,liburcu)
-         ("util-linux" ,util-linux "lib") ; lib{blkid,uuid}
+         ("util-linux:lib" ,util-linux "lib") ; lib{blkid,uuid}
          ("lz4" ,lz4)
          ("zlib" ,zlib)
-         ("zstd:lib" ,zstd "lib")))
+         ("zstd:lib" ,zstd "lib")
+
+         ;; Only for mount.bcachefs.sh.
+         ("coreutils" ,coreutils-minimal)
+         ("gawk" ,gawk)
+         ("util-linux" ,util-linux)))
       (home-page "https://bcachefs.org/")
       (synopsis "Tools to create and manage bcachefs file systems")
       (description
@@ -267,6 +411,55 @@ caching system, and lets you assign different roles to each device based on its
 performance and other characteristics.")
       (license license:gpl2+))))
 
+(define-public bcachefs-tools/static
+   (package
+     (inherit bcachefs-tools)
+     (name "bcachefs-tools-static")
+     (arguments
+      (substitute-keyword-arguments (package-arguments bcachefs-tools)
+        ((#:make-flags make-flags)
+         `(append ,make-flags
+                  (list "LDFLAGS=-static")))))
+     (inputs
+      `(("eudev:static" ,eudev "static")
+        ("libscrypt:static" ,libscrypt "static")
+        ("lz4:static" ,lz4 "static")
+        ("util-linux:static" ,util-linux "static") ; lib{blkid,uuid}
+        ("zlib" ,zlib "static")
+        ("zstd:static" ,zstd "static")
+        ,@(package-inputs bcachefs-tools)))))
+
+(define-public bcachefs/static
+  (package
+    (name "bcachefs-static")
+    (version (package-version bcachefs-tools))
+    (build-system trivial-build-system)
+    (source #f)
+    (inputs
+     `(("bcachefs-tools" ,bcachefs-tools/static)))
+    (arguments
+     `(#:modules ((guix build utils))
+       #:builder
+       (begin
+         (use-modules (guix build utils)
+                      (ice-9 ftw)
+                      (srfi srfi-26))
+         (let* ((bcachefs-tools (assoc-ref %build-inputs "bcachefs-tools"))
+                (out (assoc-ref %outputs "out")))
+           (mkdir-p out)
+           (with-directory-excursion out
+             (install-file (string-append bcachefs-tools
+                                          "/sbin/bcachefs")
+                           "sbin")
+             (remove-store-references "sbin/bcachefs")
+             (invoke "sbin/bcachefs" "version") ; test suite
+             #t)))))
+    (home-page (package-home-page bcachefs-tools))
+    (synopsis "Statically-linked bcachefs command from bcachefs-tools")
+    (description "This package provides the statically-linked @command{bcachefs}
+from the bcachefs-tools package.  It is meant to be used in initrds.")
+    (license (package-license bcachefs-tools))))
+
 (define-public exfatprogs
   (package
     (name "exfatprogs")
@@ -501,8 +694,8 @@ non-determinism in the build process.")
            (lambda _ (invoke "./autogen.sh"))))))
     (native-inputs
      `(("pkg-config" ,pkg-config)
-       ("libtirpc", libtirpc)
-       ("rpcsvc-proto", rpcsvc-proto)
+       ("libtirpc" ,libtirpc)
+       ("rpcsvc-proto" ,rpcsvc-proto)
        ("python-2" ,python-2) ; must be version 2
        ("flex" ,flex)
        ("bison" ,bison)
@@ -512,15 +705,15 @@ non-determinism in the build process.")
        ("cmocka" ,cmocka)))
     (inputs
      `(("acl" ,acl)
-       ("fuse", fuse)
+       ("fuse" ,fuse)
        ("openssl" ,openssl)
        ("liburcu" ,liburcu)
        ("libuuid" ,util-linux "lib")
        ("libxml2" ,libxml2)
        ("readline" ,readline)
        ("zlib" ,zlib)
-       ("libaio", libaio)
-       ("rdma-core", rdma-core)))
+       ("libaio" ,libaio)
+       ("rdma-core" ,rdma-core)))
     (home-page "https://www.gluster.org")
     (synopsis "Distributed file system")
     (description "GlusterFS is a distributed scalable network file system
@@ -654,7 +847,7 @@ APFS.")
 (define-public zfs
   (package
     (name "zfs")
-    (version "0.8.2")
+    (version "2.0.1")
     (outputs '("out" "module" "src"))
     (source
       (origin
@@ -663,8 +856,7 @@ APFS.")
                               "/download/zfs-" version
                               "/zfs-" version ".tar.gz"))
           (sha256
-           (base32
-            "1f7aig15q3z832pr2n48j3clafic2yk1vvqlh28vpklfghjqwq27"))))
+           (base32 "0y3992l4nzr67q18lz1kizw0za1shvqbpmsjz9shv4frh5ihllbi"))))
     (build-system linux-module-build-system)
     (arguments
      `(;; The ZFS kernel module should not be downloaded since the license
@@ -678,8 +870,7 @@ APFS.")
            (lambda* (#:key outputs inputs #:allow-other-keys)
              (let ((out (assoc-ref outputs "out")))
                (substitute* "configure"
-                 (("-/bin/sh") (string-append "-" (which "sh")))
-                 ((" /bin/sh") (string-append " " (which "sh"))))
+                 (("-/bin/sh") (string-append "-" (which "sh"))))
                (invoke "./configure"
                        "--with-config=all"
                        (string-append "--prefix=" out)
@@ -694,16 +885,33 @@ APFS.")
              (let ((out        (assoc-ref outputs "out"))
                    (src        (assoc-ref outputs "src"))
                    (util-linux (assoc-ref inputs "util-linux"))
-                   (nfs-utils  (assoc-ref inputs "nfs-utils")))
-               (substitute* "module/zfs/zfs_ctldir.c"
+                   (nfs-utils  (assoc-ref inputs "nfs-utils"))
+                   (kmod       (assoc-ref inputs "kmod-runtime")))
+               (substitute* "etc/Makefile.in"
+                 ;; This just contains an example configuration file for
+                 ;; configuring ZFS on traditional init systems, skip it
+                 ;; since we cannot use it anyway; the install target becomes
+                 ;; misdirected.
+                 (("= default ") "= "))
+               (substitute* "lib/libzfs/os/linux/libzfs_util_os.c"
+                 ;; Use path to /gnu/store/*-kmod in actual path that is exec'ed.
+                 (("\"/sbin/modprobe\"")
+                  (string-append "\"" kmod "/bin/modprobe" "\""))
+                 ;; Just use 'modprobe' in message to user, since Guix
+                 ;; does not have a traditional /sbin/
+                 (("'/sbin/modprobe ") "'modprobe "))
+               (substitute* "contrib/Makefile.in"
+                 ;; This is not configurable nor is its hard-coded /usr prefix.
+                 ((" initramfs") ""))
+               (substitute* "module/os/linux/zfs/zfs_ctldir.c"
                  (("/usr/bin/env\", \"umount")
                   (string-append util-linux "/bin/umount\", \"-n"))
                  (("/usr/bin/env\", \"mount")
                   (string-append util-linux "/bin/mount\", \"-n")))
-               (substitute* "lib/libzfs/libzfs_mount.c"
+               (substitute* "lib/libzfs/os/linux/libzfs_mount_os.c"
                  (("/bin/mount") (string-append util-linux "/bin/mount"))
                  (("/bin/umount") (string-append util-linux "/bin/umount")))
-               (substitute* "lib/libshare/nfs.c"
+               (substitute* "lib/libshare/os/linux/nfs.c"
                  (("/usr/sbin/exportfs")
                   (string-append nfs-utils "/sbin/exportfs")))
                (substitute* "config/zfs-build.m4"
@@ -721,7 +929,9 @@ APFS.")
                (substitute* "contrib/pyzfs/Makefile.in"
                  ((".*install-lib.*") ""))
                (substitute* '("Makefile.am" "Makefile.in")
-                 (("\\$\\(prefix)/src") (string-append src "/src"))))
+                 (("\\$\\(prefix)/src") (string-append src "/src")))
+               (substitute* (find-files "udev/rules.d/" ".rules.in$")
+                 (("/sbin/modprobe") (string-append kmod "/bin/modprobe"))))
              #t))
          (replace 'build
            (lambda _ (invoke "make")))
@@ -738,7 +948,6 @@ APFS.")
                        "INSTALL_MOD_STRIP=1")
                (install-file "contrib/bash_completion.d/zfs"
                              (string-append out "/share/bash-completion/completions"))
-               (symlink "../share/pkgconfig/" (string-append out "/lib/pkgconfig"))
                #t))))))
     (native-inputs
      `(("attr" ,attr)
@@ -746,13 +955,15 @@ APFS.")
        ("pkg-config" ,pkg-config)))
     (inputs
      `(("eudev" ,eudev)
+       ("kmod-runtime" ,kmod)
        ("libaio" ,libaio)
        ("libtirpc" ,libtirpc)
        ("nfs-utils" ,nfs-utils)
        ("openssl" ,openssl)
        ("python" ,python)
        ("python-cffi" ,python-cffi)
-       ("util-linux" ,util-linux "lib")
+       ("util-linux" ,util-linux)
+       ("util-linux:lib" ,util-linux "lib")
        ("zlib" ,zlib)))
     (home-page "https://zfsonlinux.org/")
     (synopsis "Native ZFS on Linux")
@@ -765,7 +976,7 @@ community.")
 (define-public mergerfs
   (package
     (name "mergerfs")
-    (version "2.29.0")
+    (version "2.31.0")
     (source
      (origin
        (method url-fetch)
@@ -773,7 +984,7 @@ community.")
                            version "/mergerfs-" version ".tar.gz"))
        (sha256
         (base32
-         "17gizw4vgbqqjd2ykkfpp276942jb5qclp0lkiwkmq1yjgyjqfmk"))))
+         "0k4asbg5n9dhy5jpjkw6simqqnr1zira2y4i71cq05091dfwm90p"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                      ; No tests exist.
@@ -794,8 +1005,9 @@ community.")
              ;; The Makefile does not allow overriding PREFIX via make variables.
              (substitute* '("Makefile" "libfuse/Makefile")
                (("= /usr/local") (string-append "= " (assoc-ref outputs "out")))
+               (("= /sbin") "= $(EXEC_PREFIX)/sbin")
                ;; cannot chown as build user
-               (("chown root:root") "true"))
+               (("chown root(:root)?") "true"))
              #t)))))
     ;; mergerfs bundles a heavily modified copy of libfuse.
     (inputs `(("util-linux" ,util-linux)))
@@ -810,8 +1022,8 @@ is similar to mhddfs, unionfs, and aufs.")
               ))))
 
 (define-public mergerfs-tools
-  (let ((commit "c926779d87458d103f3b674603bf97801ae2486d")
-        (revision "1"))
+  (let ((commit "480296ed03d1c3c7909697d7ef96d35840ee26b8")
+        (revision "2"))
     (package
       (name "mergerfs-tools")
       ;; No released version exists.
@@ -825,7 +1037,7 @@ is similar to mhddfs, unionfs, and aufs.")
          (file-name (git-file-name name version))
          (sha256
           (base32
-           "04hhwcib0xv4cf1mkj8zrp2aqpxkncml9iqg4m1mz6a5zhzsk0vm"))))
+           "0xr06gi4xcr832rzy0hkp5c1n231s7w5iq1nkjvx9kvm0dl7chpq"))))
       (build-system copy-build-system)
       (inputs
        `(("python" ,python)
@@ -858,3 +1070,62 @@ directory onto a single drive and create FreeDesktop.org Trash specification
 compatible directories.")
       (home-page "https://github.com/trapexit/mergerfs-tools")
       (license license:isc))))
+
+(define-public python-dropbox
+  (package
+    (name "python-dropbox")
+    (version "11.0.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "dropbox" version))
+        (sha256
+         (base32
+          "0r64jxm5m4a1sln2la3av0103filb0plqja1nnyibqvk9qrqs5jf"))))
+    (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)))
+    (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)))
+    (home-page "https://www.dropbox.com/developers")
+    (synopsis "Official Dropbox API Client")
+    (description "This package provides a Python SDK for integrating with the
+Dropbox API v2.")
+    (license license:expat)))
+
+(define-public dbxfs
+  (package
+    (name "dbxfs")
+    (version "1.0.50")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "dbxfs" version))
+        (sha256
+         (base32
+          "01zvk862ybz12270q0r2l1i7kdj30ib2gxrlxmwvi19b2fkf39na"))
+        (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")
+  (synopsis "User-space file system for Dropbox")
+  (description
+   "@code{dbxfs} allows you to mount your Dropbox folder as if it were a
+local file system using FUSE.")
+  (license license:gpl3+)))
diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm
index 1241e19d27..8ead37beb3 100644
--- a/gnu/packages/finance.scm
+++ b/gnu/packages/finance.scm
@@ -11,7 +11,7 @@
 ;;; Copyright © 2018 Adriano Peluso <catonano@gmail.com>
 ;;; Copyright © 2018, 2019, 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
-;;; Copyright © 2019, 2020 Guillaume Le Vaillant <glv@posteo.net>
+;;; Copyright © 2019, 2020, 2021 Guillaume Le Vaillant <glv@posteo.net>
 ;;; Copyright © 2019 Tanguy Le Carrour <tanguy@bioneland.org>
 ;;; Copyright © 2019, 2020 Martin Becze <mjbecze@riseup.net>
 ;;; Copyright © 2019 Sebastian Schott <sschott@mailbox.org>
@@ -20,6 +20,8 @@
 ;;; Copyright © 2020 Tom Zander <tomz@freedommail.ch>
 ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
+;;; Copyright © 2020 Carlo Holl <carloholl@gmail.com>
+;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -45,6 +47,7 @@
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system copy)
   #:use-module (guix build-system emacs)
+  #:use-module (guix build-system haskell)
   #:use-module (guix build-system python)
   #:use-module (guix build-system glib-or-gtk)
   #:use-module (guix build-system go)
@@ -67,11 +70,15 @@
   #:use-module (gnu packages dbm)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages gnome)
+  #:use-module (gnu packages golang)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnupg)
   #:use-module (gnu packages graphviz)
   #:use-module (gnu packages groff)
   #:use-module (gnu packages gtk)
+  #:use-module (gnu packages haskell-check)
+  #:use-module (gnu packages haskell-web)
+  #:use-module (gnu packages haskell-xyz)
   #:use-module (gnu packages jemalloc)
   #:use-module (gnu packages libedit)
   #:use-module (gnu packages libevent)
@@ -103,7 +110,7 @@
 (define-public bitcoin-core
   (package
     (name "bitcoin-core")
-    (version "0.19.1")
+    (version "0.20.1")
     (source (origin
               (method url-fetch)
               (uri
@@ -111,11 +118,13 @@
                               version "/bitcoin-" version ".tar.gz"))
               (sha256
                (base32
-                "1h3w7brc18145np920vy7j5ms5hym59hvr40swdjx34fbdaisngj"))
-              (patches (search-patches "bitcoin-core-python-compat.patch"))))
+                "0y5rad68b398arh0abr2wgiwybdw0i5a4dxz9s3fk9fgdbyn5gab"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
+     `(("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)))
@@ -125,7 +134,6 @@
        ("libevent" ,libevent)
        ("miniupnpc" ,miniupnpc)
        ("openssl" ,openssl)
-       ("protobuf" ,protobuf)
        ("qtbase" ,qtbase)))
     (arguments
      `(#:configure-flags
@@ -149,6 +157,13 @@
              ;; Make Qt deterministic.
              (setenv "QT_RCC_SOURCE_DATE_OVERRIDE" "1")
              #t))
+         (add-before 'build 'set-no-git-flag
+           (lambda _
+             ;; Make it clear we are not building from within a git repository
+             ;; (and thus no information regarding this build is available
+             ;; from git).
+             (setenv "BITCOIN_GENBUILD_NO_GIT" "1")
+             #t))
          (add-before 'check 'set-home
            (lambda _
              (setenv "HOME" (getenv "TMPDIR")) ; tests write to $HOME
@@ -170,17 +185,75 @@ of the bitcoin protocol.  This package provides the Bitcoin Core command
 line client and a client based on Qt.")
     (license license:expat)))
 
+(define-public hledger
+  (package
+    (name "hledger")
+    (version "1.14.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/hledger/hledger-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32
+         "1si9zqparkdq77yji87lhcsrf11fr3gisqwsv82cabhrhc36x6l4"))))
+    (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)))
+    (home-page "https://hledger.org")
+    (synopsis "Command-line interface for the hledger accounting system")
+    (description
+     "The command-line interface for the hledger accounting system.  Its basic
+function is to read a plain text file describing financial transactions and
+produce useful reports.
+
+hledger is a robust, cross-platform set of tools for tracking money, time, or
+any other commodity, using double-entry accounting and a simple, editable file
+format, with command-line, terminal and web interfaces.  It is a Haskell
+rewrite of Ledger, and one of the leading implementations of Plain Text
+Accounting.")
+    (license license:gpl3)))
+
 (define-public homebank
   (package
     (name "homebank")
-    (version "5.4.2")
+    (version "5.4.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://homebank.free.fr/public/homebank-"
                                   version ".tar.gz"))
               (sha256
                (base32
-                "0bkjvd819kw9cwmr3macggbg8yil3yc8v2za8pjrl6g746s89kn6"))))
+                "02wd569viwy6ncy0144z9nxr3zmpl4shkqhz7zzwyky4gknxf8lj"))))
     (build-system glib-or-gtk-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
@@ -293,67 +366,67 @@ in ability, and easy to use.")
                     "See src/wcwidth.cc in the distribution.")))))
 
 (define-public emacs-ledger-mode
-  ;; There have been no new releases since 2016.
-  (let ((commit "253a20dc62e137ed0ed8e1dd8614ecba116610ea")
-        (revision "1"))
-    (package
-      (name "emacs-ledger-mode")
-      (version (git-version "3.1.1" revision commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/ledger/ledger-mode")
-               (commit commit)))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32 "06wrgkqpgvk17vibrk2qikdlqn8y63jg86marp1wgmram92mb3jk"))))
-      (build-system cmake-build-system)
-      (arguments
-       `(#:modules ((guix build cmake-build-system)
-                    (guix build utils)
-                    (guix build emacs-utils))
-         #:imported-modules (,@%cmake-build-system-modules
-                             (guix build emacs-utils))
-         #:tests? #f ; there are none
-         #:phases
-         (modify-phases %standard-phases
-           (add-after 'unpack 'patch-site-dir
-             (lambda _
-               (substitute* "CMakeLists.txt"
-                 (("DESTINATION share/emacs/site-lisp/ledger-mode")
-                  "DESTINATION share/emacs/site-lisp"))
-               #t))
-           (add-before 'build 'patch-path
-             (lambda* (#:key inputs #:allow-other-keys)
-               (let ((ledger (assoc-ref inputs "ledger")))
-                 (make-file-writable "ledger-exec.el")
-                 (emacs-substitute-variables "ledger-exec.el"
-                   ("ledger-binary-path" (string-append ledger "/bin/ledger"))))
-               #t))
-           (add-after 'build 'build-doc
-             (lambda* (#:key outputs #:allow-other-keys)
-               (let ((target (string-append (assoc-ref outputs "out")
-                                            "/share/info")))
-                 (mkdir-p target)
-                 (invoke "makeinfo" "-o" target
-                         "../source/doc/ledger-mode.texi"))
-               #t))
-           (add-after 'install 'generate-autoload
-             (lambda* (#:key outputs #:allow-other-keys)
-               (let* ((site-dir (string-append (assoc-ref outputs "out")
-                                               "/share/emacs/site-lisp")))
-                 (emacs-generate-autoloads ,name site-dir))
-               #t)))))
-      (inputs
-       `(("ledger" ,ledger)))
-      (native-inputs
-       `(("emacs-minimal" ,emacs-minimal)
-         ("texinfo" ,texinfo)))
-      (home-page "https://ledger-cli.org/")
-      (synopsis "Command-line double-entry accounting program")
-      (description
-       "Ledger is a powerful, double-entry accounting system that is
+  (package
+    (name "emacs-ledger-mode")
+    (version "4.0.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/ledger/ledger-mode")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1r5rcyxd6d1rqwamzpvqdbkbdf1zbj75aaciqijrklnm59ps244y"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:modules ((guix build cmake-build-system)
+                  (guix build utils)
+                  (guix build emacs-utils))
+       #:imported-modules (,@%cmake-build-system-modules
+                           (guix build emacs-utils))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-site-dir
+           (lambda _
+             (substitute* "CMakeLists.txt"
+               (("DESTINATION share/emacs/site-lisp/ledger-mode")
+                "DESTINATION share/emacs/site-lisp"))
+             #t))
+         (add-before 'build 'patch-path
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((ledger (assoc-ref inputs "ledger")))
+               (make-file-writable "ledger-exec.el")
+               (emacs-substitute-variables "ledger-exec.el"
+                 ("ledger-binary-path" (string-append ledger "/bin/ledger"))))
+             #t))
+         (add-after 'build 'build-doc
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((target (string-append (assoc-ref outputs "out")
+                                          "/share/info")))
+               (mkdir-p target)
+               (invoke "makeinfo" "-o" target
+                       "../source/doc/ledger-mode.texi"))
+             #t))
+         (add-after 'install 'generate-autoload
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((site-dir (string-append (assoc-ref outputs "out")
+                                             "/share/emacs/site-lisp")))
+               (emacs-generate-autoloads ,name site-dir))
+             #t))
+         (replace 'check
+           (lambda _
+             (with-directory-excursion "../source/test"
+               (invoke "make" "test-batch")))))))
+    (inputs
+     `(("ledger" ,ledger)))
+    (native-inputs
+     `(("emacs-minimal" ,emacs-minimal)
+       ("texinfo" ,texinfo)))
+    (home-page "https://ledger-cli.org/")
+    (synopsis "Command-line double-entry accounting program")
+    (description
+     "Ledger is a powerful, double-entry accounting system that is
 accessed from the UNIX command-line.  This may put off some users, since
 there is no flashy UI, but for those who want unparalleled reporting
 access to their data there are few alternatives.
@@ -367,7 +440,7 @@ a graph or html instead.  Ledger is simple in concept, surprisingly rich
 in ability, and easy to use.
 
 This package provides the Emacs mode.")
-      (license license:gpl2+))))
+    (license license:gpl2+)))
 
 (define-public geierlein
   (package
@@ -422,7 +495,7 @@ do so.")
 (define-public electrum
   (package
     (name "electrum")
-    (version "3.3.8")
+    (version "4.0.9")
     (source
      (origin
        (method url-fetch)
@@ -430,7 +503,7 @@ do so.")
                            version "/Electrum-"
                            version ".tar.gz"))
        (sha256
-        (base32 "1g00cj1pmckd4xis8r032wmraiv3vd3zc803hnyxa2bnhj8z3bg2"))
+        (base32 "1fvjiagi78f32nxgr2rx8jas8hxfvpp1c8fpfcalvykmlhdc2gva"))
        (modules '((guix build utils)))
        (snippet
         '(begin
@@ -439,30 +512,40 @@ do so.")
            #t))))
     (build-system python-build-system)
     (inputs
-     `(("python-pyaes" ,python-pyaes)
-       ("python-pysocks" ,python-pysocks)
-       ("python-sip" ,python-sip)
-       ("python-pyqt" ,python-pyqt)
-       ("python-ecdsa" ,python-ecdsa)
-       ("python-pbkdf2" ,python-pbkdf2)
-       ("python-requests" ,python-requests)
+     `(("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)
        ("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-jsonrpclib-pelix" ,python-jsonrpclib-pelix)))
+       ("libsecp256k1" ,libsecp256k1)))
     (arguments
-     `(#:tests? #f ;; package doesn't have any tests
+     `(#:tests? #f                      ; no tests
        #:phases
        (modify-phases %standard-phases
-         (add-before 'build 'patch-home
+         (add-after 'unpack 'fix-prefix
            (lambda* (#:key outputs #:allow-other-keys)
-             (substitute* "setup.py"
-               (("~/.local/share")
-                (string-append (assoc-ref outputs "out") "/local/share"))))))))
+             (let ((out (assoc-ref outputs "out")))
+               ;; setup.py installs to ~/.local/share if sys.prefix/share isn't
+               ;; writable.  sys.prefix points to Python's, not our, --prefix.
+               (mkdir-p (string-append out "/share"))
+               (substitute* "setup.py"
+                 (("sys\\.prefix")
+                  (format #f "\"~a\"" out)))
+               #t)))
+         (add-after 'unpack 'use-libsecp256k1-input
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "electrum/ecc_fast.py"
+               (("library_paths = .* 'libsecp256k1.so.0'.")
+                (string-append "library_paths = ('"
+                               (assoc-ref inputs "libsecp256k1")
+                               "/lib/libsecp256k1.so.0'"))))))))
     (home-page "https://electrum.org/")
     (synopsis "Bitcoin wallet")
     (description
@@ -475,7 +558,7 @@ other machines/servers.  Electrum does not download the Bitcoin blockchain.")
 (define-public electron-cash
   (package
     (name "electron-cash")
-    (version "4.0.15")
+    (version "4.2.3")
     (source
      (origin
        (method git-fetch)
@@ -484,14 +567,14 @@ other machines/servers.  Electrum does not download the Bitcoin blockchain.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0bvj64fdxpi0dbivhgv509kqq503zjp7r7xckl8q5c48j5h1zik2"))))
+        (base32 "1q18p86a3a3wpf9nbpymhyilmaw9vffvwxh4hhx29bywfzvav11f"))))
     (build-system python-build-system)
     (inputs
      `(("libevent" ,libevent)
-       ("libsecp256k1", libsecp256k1)
+       ("libsecp256k1" ,libsecp256k1-bitcoin-cash)
        ("openssl" ,openssl)
        ("python-cython" ,python-cython)
-       ("python-dateutil", python-dateutil)
+       ("python-dateutil" ,python-dateutil)
        ("python-dnspython" ,python-dnspython)
        ("python-ecdsa" ,python-ecdsa)
        ("python-hidapi" ,python-hidapi)
@@ -508,7 +591,7 @@ other machines/servers.  Electrum does not download the Bitcoin blockchain.")
        ("qtsvg" ,qtsvg)
        ("zlib" ,zlib)))
     (arguments
-     `(#:tests? #f ; No tests
+     `(#:tests? #f                      ; no tests
        #:modules ((guix build python-build-system)
                   (guix build qt-utils)
                   (guix build utils))
@@ -516,20 +599,20 @@ other machines/servers.  Electrum does not download the Bitcoin blockchain.")
                            (guix build qt-utils))
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'patch-home
+         (add-after 'unpack 'create-output-directories
            (lambda* (#:key outputs #:allow-other-keys)
-             (substitute* "setup.py"
-               (("~/.local/share")
-                (string-append (assoc-ref outputs "out") "/local/share")))))
+             ;; setup.py installs to ~/.local/share if this doesn't exist.
+             (mkdir-p (string-append (assoc-ref outputs "out") "/share"))))
          (add-after 'unpack 'use-libsecp256k1-input
            (lambda* (#:key inputs #:allow-other-keys)
-             (substitute* "lib/secp256k1.py"
+             (substitute* "electroncash/secp256k1.py"
                (("library_paths = .* 'libsecp256k1.so.0'.")
-                (string-append "library_paths = ('" (assoc-ref inputs "libsecp256k1") "/lib/libsecp256k1.so.0'")))))
+                (string-append "library_paths = ('"
+                               (assoc-ref inputs "libsecp256k1")
+                               "/lib/libsecp256k1.so.0'")))))
          (add-after 'install 'wrap-qt
            (lambda* (#:key outputs #:allow-other-keys)
-             (wrap-qt-program (assoc-ref outputs "out") "electron-cash")
-             #t)))))
+             (wrap-qt-program (assoc-ref outputs "out") "electron-cash"))))))
     (home-page "https://electroncash.org/")
     (synopsis "Bitcoin Cash wallet")
     (description
@@ -547,7 +630,7 @@ other machines/servers.  Electroncash does not download the Bitcoin Cash blockch
   ;; the system's dynamically linked library.
   (package
     (name "monero")
-    (version "0.16.0.3")
+    (version "0.17.1.9")
     (source
      (origin
        (method git-fetch)
@@ -567,7 +650,7 @@ other machines/servers.  Electroncash does not download the Bitcoin Cash blockch
               "external/unbound"))
            #t))
        (sha256
-        (base32 "1r9x3712vhb24dxxirfiwj5f9x0h4m7x0ngiiavf5983dfdlgz33"))))
+        (base32 "0jqss4csvkcrhrmaa3vrnyv6yiwqpbfw7037clx9xcfm4qrrfiwy"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("doxygen" ,doxygen)
@@ -597,7 +680,6 @@ other machines/servers.  Electroncash does not download the Bitcoin Cash blockch
        #:configure-flags
        (list "-DARCH=default"
              "-DBUILD_TESTS=ON"
-             "-DBUILD_GUI_DEPS=ON"
              (string-append "-DReadline_ROOT_DIR="
                             (assoc-ref %build-inputs "readline")))
        #:phases
@@ -643,17 +725,11 @@ other machines/servers.  Electroncash does not download the Bitcoin Cash blockch
                (invoke "tests/unit_tests/unit_tests"
                        (string-append "--gtest_filter=-"
                                       excluded-unit-tests)))))
-         (add-after 'install 'install-librandomx
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let ((lib (string-append (assoc-ref outputs "out") "/lib")))
-               (install-file "external/randomx/librandomx.a" lib)
-               #t)))
-         (add-after 'install 'delete-dead-links
+         (add-after 'install 'delete-unused-files
            (lambda* (#:key outputs #:allow-other-keys)
              (let ((out (assoc-ref outputs "out")))
-               (delete-file (string-append out "/lib/libprotobuf.so"))
-               (delete-file (string-append out "/lib/libusb-1.0.so"))
-               #t))))))
+               (delete-file-recursively (string-append out "/include")))
+             #t)))))
     (home-page "https://web.getmonero.org/")
     (synopsis "Command-line interface to the Monero currency")
     (description
@@ -664,111 +740,79 @@ the Monero command line client and daemon.")
 (define-public monero-gui
   (package
     (name "monero-gui")
-    (version "0.16.0.2")
+    (version "0.17.1.9")
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
              (url "https://github.com/monero-project/monero-gui")
-             (commit (string-append "v" version))))
+             (commit (string-append "v" version))
+             (recursive? #t)))
        (file-name (git-file-name name version))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin
+           ;; Delete bundled monero sources, we already have them.
+           ;; See the 'extract-monero-sources' phase.
+           (delete-file-recursively "monero")
+           #t))
        (sha256
-        (base32
-         "1b1m8vhs0hdh81ysm8s8vfwqskqsihylb51wz16kc98ba40r9gqg"))))
+        (base32 "0vpvpvsbbj547yir15g84qy9l9lwbip795zlliz79i7d66l23b1w"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("monero-source" ,(package-source monero))
-       ("pkg-config" ,pkg-config)
-       ("qttools" ,qttools)))
+     `(,@(package-native-inputs monero)
+       ("monero-source" ,(package-source monero))))
     (inputs
-     `(("boost" ,boost)
-       ("hidapi" ,hidapi)
+     `(,@(package-inputs monero)
        ("libgcrypt" ,libgcrypt)
-       ("libsodium" ,libsodium)
-       ("libunwind" ,libunwind)
-       ("libusb" ,libusb)
-       ("openssl" ,openssl)
-       ("protobuf" ,protobuf)
+       ("monero" ,monero)
        ("qtbase" ,qtbase)
        ("qtdeclarative" ,qtdeclarative)
        ("qtgraphicaleffects" ,qtgraphicaleffects)
-       ("qtlocation" ,qtlocation)
-       ("qtmultimedia" ,qtmultimedia)
        ("qtquickcontrols" ,qtquickcontrols)
        ("qtquickcontrols2",qtquickcontrols2)
        ("qtsvg" ,qtsvg)
-       ("qtxmlpatterns" ,qtxmlpatterns)
-       ("unbound" ,unbound)))
-    (propagated-inputs
-     `(("monero" ,monero)))
+       ("qtxmlpatterns" ,qtxmlpatterns)))
     (arguments
      `(#:tests? #f ; No tests
+       #:configure-flags
+       (list "-DARCH=default"
+             "-DENABLE_PASS_STRENGTH_METER=ON"
+             (string-append "-DReadline_ROOT_DIR="
+                            (assoc-ref %build-inputs "readline")))
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'get-monero-extra-files
-           ;; Some headers and GnuPG public keys of the monero package source
-           ;; code are required to build the GUI.
+         (add-after 'unpack 'extract-monero-sources
+           ;; Some of the monero package source code is required
+           ;; to build the GUI.
            (lambda* (#:key inputs #:allow-other-keys)
-             (invoke "tar" "-xv" "--wildcards" "--strip-components=1"
+             (mkdir-p "monero")
+             (invoke "tar" "-xv" "--strip-components=1"
                      "-C" "monero"
-                     "-f" (assoc-ref inputs "monero-source")
-                     "*.asc" "*.h")
-             #t))
-         (add-after 'get-monero-extra-files 'fix-makefile-vars
+                     "-f" (assoc-ref inputs "monero-source"))))
+         (add-after 'extract-monero-sources 'fix-build
            (lambda _
+             (substitute* "src/version.js.in"
+               (("@VERSION_TAG_GUI@")
+                ,version))
              (substitute* "src/zxcvbn-c/makefile"
-               (("\\?=") "="))
-             #t))
-         (add-after 'fix-makefile-vars 'fix-paths
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let ((boost (assoc-ref inputs "boost"))
-                   (monero (assoc-ref inputs "monero"))
-                   (openssl (assoc-ref inputs "openssl"))
-                   (qttools (assoc-ref inputs "qttools"))
-                   (out (assoc-ref outputs "out")))
-               (substitute* "monero-wallet-gui.pro"
-                 (("-L/usr/local/lib")
-                  "")
-                 (("-L/usr/local/opt/openssl/lib")
-                  (string-append "-L" openssl "/lib"))
-                 (("-L/usr/local/opt/boost/lib")
-                  (string-append "-L" boost "/lib"))
-                 (("\\$\\$\\[QT_INSTALL_BINS\\]/lrelease")
-                  (string-append qttools "/bin/lrelease"))
-                 (("\\$\\$\\[QT_INSTALL_BINS\\]/lupdate")
-                  (string-append qttools "/bin/lupdate")))
-               (substitute* "deployment.pri"
-                 (("/opt/\\$\\$\\{TARGET\\}/bin")
-                  (string-append out "/bin")))
-               (substitute* "src/daemon/DaemonManager.cpp"
-                 (("QApplication::applicationDirPath\\(\\) \\+ \"/monerod")
-                  (string-append "\"" monero "/bin/monerod")))
-               #t)))
-         (add-after 'fix-paths 'make-qt-deterministic
-           (lambda _
-             (setenv "QT_RCC_SOURCE_DATE_OVERRIDE" "1")
-             #t))
-         (add-after 'make-qt-deterministic 'fix-version
-           (lambda _
-             (substitute* "build.sh"
-               (("echo .*> version.js")
-                ""))
-             (with-output-to-file "version.js"
-               (lambda _
-                 (format #t
-                         "var GUI_VERSION = \"~a\"~@
-                          var GUI_MONERO_VERSION = \"~a\"~%"
-                         ,version
-                         ,(package-version monero))))
-             #t))
-         (replace 'configure
+               (("\\?=") "="))))
+         (add-before 'configure 'generate-zxcvbn-c-header
            (lambda _
-             (mkdir-p "build")
-             (chdir "build")
-             (invoke "qmake" "../monero-wallet-gui.pro" "CONFIG+=release")))
-         (add-before 'build 'build-zxcvbn-c
-           (lambda _
-             (invoke "make" "-C" "../src/zxcvbn-c"))))))
+             (invoke "make" "-C" "src/zxcvbn-c" "dict-src.h")))
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
+               (mkdir-p bin)
+               (install-file "../build/bin/monero-wallet-gui" bin))))
+         (add-after 'qt-wrap 'install-monerod-link
+           ;; The monerod program must be available so that monero-wallet-gui
+           ;; can start a Monero daemon if necessary.
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (symlink (string-append (assoc-ref inputs "monero")
+                                     "/bin/monerod")
+                      (string-append (assoc-ref outputs "out")
+                                     "/bin/monerod")))))))
     (home-page "https://web.getmonero.org/")
     (synopsis "Graphical user interface for the Monero currency")
     (description
@@ -881,14 +925,13 @@ Ledger Blue/Nano S.")
 (define-public python-trezor
   (package
     (name "python-trezor")
-    (version "0.12.0")
+    (version "0.12.1")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "trezor" version))
         (sha256
-          (base32
-            "0ycmpwjv5xp25993divjhaq5j766zgcy22xx39xfc1pcvldq5g7n"))))
+          (base32 "1w19m9lws55k9sjhras47hpfpqwq1jm5vy135nj65yhkblygqg19"))))
     (build-system python-build-system)
     (propagated-inputs
      `(("python-click" ,python-click)
@@ -1030,14 +1073,13 @@ agent.")
 (define-public python-stdnum
   (package
     (name "python-stdnum")
-    (version "1.13")
+    (version "1.14")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "python-stdnum" version))
        (sha256
-        (base32
-         "0q4128rjdgavywhzlm2gz2n5ybc9b9sxs81g50dvxf5q7z9q63qj"))))
+        (base32 "070vd9zgvq0jchs4xc4j1h4r1l1lg4wwb8xs3p25k8c2xjw94fpx"))))
     (build-system python-build-system)
     (arguments
      '(#:phases (modify-phases %standard-phases
@@ -1046,10 +1088,8 @@ agent.")
                       (invoke "nosetests"))))))
     (native-inputs
      `(("python-nose" ,python-nose)))
-    (home-page
-     "https://arthurdejong.org/python-stdnum/")
-    (synopsis
-     "Python module to handle standardized number and code formats")
+    (home-page "https://arthurdejong.org/python-stdnum/")
+    (synopsis "Python module to handle standardized number and code formats")
     (description
      "This is a Python library that aims to provide functions to handle,
 parse and validate standard numbers.
@@ -1058,7 +1098,7 @@ amongst which a great number of VAT and other tax numbers,
 personal identity and company identification codes,
 international standard numbers (ISBN, IBAN, EAN, etc.)
 and various other formats.
-The module also inclused implementations of the Verhoeff,
+The module also includes implementations of the Verhoeff,
 Luhn and family of ISO/IEC 7064 check digit algorithms. ")
     (license license:lgpl2.1+)))
 
@@ -1068,26 +1108,18 @@ Luhn and family of ISO/IEC 7064 check digit algorithms. ")
 (define-public python-duniterpy
   (package
     (name "python-duniterpy")
-    (version "0.57.0")
+    (version "0.60.1")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "duniterpy" version))
        (sha256
-        (base32 "0rw2c7r9gcqhymp82gbk1ky45zqbypsi2q5x4vdwjc6g00kh7h6l"))))
+        (base32 "1cwda5mk05zmpar7fpk9m4bziyz2s5pd0922h22fns5hw7vfsybh"))))
     (build-system python-build-system)
     (arguments
-     ;; FIXME: Tests fail with: "ModuleNotFoundError: No module named
-     ;; 'tests'".  Not sure how to handle this.
-     `(#:tests? #f
-       #:phases
-       (modify-phases %standard-phases
-         ;; "setup.py" tries to open missing "requirements.txt".
-         (add-after 'unpack 'ignore-missing-file
-           (lambda _
-             (substitute* "setup.py"
-               (("open\\('requirements\\.txt'\\)") "[]"))
-             #t)))))
+     ;; FIXME: Tests fail with: "TypeError: block_uid() missing 1 required
+     ;; positional argument: 'value'".
+     `(#:tests? #f))
     (propagated-inputs
      `(("aiohttp" ,python-aiohttp)
        ("attrs" ,python-attrs)
@@ -1213,20 +1245,25 @@ trezord as a regular user instead of needing to it run as root.")
 (define-public trezord
   (package
     (name "trezord")
-    (version "2.0.29")
+    (version "2.0.30")
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
-              (url "https://github.com/trezor/trezord-go")
-              (commit (string-append "v" version))))
+             (url "https://github.com/trezor/trezord-go")
+             (commit (string-append "v" version))))
        (sha256
         (base32
-         "1ks1fa0027s3xp0z6qp0dxmayvrb4dwwscfhbx7da0khp153f2cp"))
+         "1hzvk0wfgg7b4wpqjk3738yqxlv3pj5i7zxwm0jady2h97hmrqrr"))
        (file-name (git-file-name name version))))
     (build-system go-build-system)
     (arguments
      '(#:import-path "github.com/trezor/trezord-go"))
+    (native-inputs
+     `(("github.com/gorilla-csrf" ,go-github-com-gorilla-csrf)
+       ("github.com/gorilla/handlers" ,go-github-com-gorilla-handlers)
+       ("github.com/gorilla/mux" ,go-github-com-gorilla-mux)
+       ("gopkg.in/natefinch/lumberjack.v2" ,go-gopkg-in-natefinch-lumberjack.v2)))
     (home-page "https://trezor.io")
     (synopsis "Trezor Communication Daemon aka Trezor Bridge (written in Go)")
     (description "This allows a Trezor hardware wallet to communicate to the
@@ -1343,60 +1380,10 @@ following three utilities are included with the library:
 @end enumerate")
     (license license:gpl2+)))
 
-(define-public opensp
-  (package
-    (name "opensp")
-    (version "1.5.2")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://sourceforge/openjade/opensp/"
-                                  version "/OpenSP-" version ".tar.gz"))
-              (sha256
-               (base32
-                "1khpasr6l0a8nfz6kcf3s81vgdab8fm2dj291n5r2s53k228kx2p"))))
-    (build-system gnu-build-system)
-    (native-inputs
-     `(("gettext" ,gettext-minimal)))
-    (inputs
-     `(("docbook-xml" ,docbook-xml-4.1.2)
-       ("docbook-xsl" ,docbook-xsl)
-       ("xmlto" ,xmlto)))
-    (arguments
-     `(;; TODO: Fix and enable tests.
-       #:tests? #f
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'patch-docbook-paths
-           (lambda* (#:key inputs #:allow-other-keys)
-             (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
-                                          "/xml/dtd/docbook"))
-                   (xsldoc (string-append (assoc-ref inputs "docbook-xsl")
-                                          "/xml/xsl/docbook-xsl-"
-                                          ,(package-version docbook-xsl))))
-               (substitute* (find-files "docsrc" "\\.xml$")
-                 (("/usr/share/sgml/docbook/xml-dtd-4.1.2") xmldoc)
-                 (("http://.*/docbookx\\.dtd")
-                  (string-append xmldoc "/docbookx.dtd")))
-               ;; Directly pass the path to the stylesheet to xmlto.
-               (substitute* "docsrc/Makefile.in"
-                 (("\\$\\(XMLTO\\)")
-                  (string-append "$(XMLTO) -x " xsldoc
-                                 "/manpages/docbook.xsl")))
-               #t))))))
-    (home-page "http://openjade.sourceforge.net/")
-    (synopsis "Suite of SGML/XML processing tools")
-    (description "OpenSP is an object-oriented toolkit for SGML parsing and
-entity management.")
-    (license
-     ;; expat license with added clause regarding advertising
-     (license:non-copyleft
-      "file://COPYING"
-      "See COPYING in the distribution."))))
-
 (define-public bitcoin-unlimited
   (package
     (name "bitcoin-unlimited")
-    (version "1.8.0.0")
+    (version "1.9.0.1")
     (source
      (origin
        (method git-fetch)
@@ -1405,7 +1392,7 @@ entity management.")
              (commit (string-append "BCHunlimited" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1ivkig6q7i4n389dg1zv06cmfki20bjq0slmshx0p5a1aavkqj7k"))))
+        (base32 "1pan24g3d5csa004d7zvlizj4mv58ly5i579341isp944phl3g5v"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("autoconf" ,autoconf)
@@ -1440,32 +1427,25 @@ entity management.")
                        "/bin/lrelease")
         (string-append "ac_cv_path_LUPDATE="
                        (assoc-ref %build-inputs "qttools")
-                       "/bin/lupdate"))
+                       "/bin/lupdate")
+        "--disable-static")
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'fix-build
-           (lambda _
-             ;; The 'stack' header was not included in unlimited.cpp, which
-             ;; caused the build to fail.
-             (substitute* "src/unlimited.cpp"
-               (("#include <queue>" all)
-                (string-append all "\n#include <stack>")))
-             #t))
          (add-after 'unpack 'fix-tests
            (lambda _
-             ;; TODO: Find why txvalidationcache_tests fails and
-             ;; utilprocess_tests never ends. Disable for now.
+             ;; Fix data specific test failure
+             ;; https://reviews.bitcoinabc.org/rABC67bbd3d0aaee2952ff1cb5da51d1fd0b50c2b63a
+             (substitute* "src/test/rpc_tests.cpp"
+               (("1607731200") "9907731200"))
+
+             ;; Disable utilprocess_tests because it never ends.
+             ;; It looks like it tries to start /bin/sleep and waits until it
+             ;; is in the list of running processes, but /bin/sleep doesn't
+             ;; exist.
              (substitute* "src/Makefile.test.include"
-               (("test/txvalidationcache_tests.cpp")
-                "")
                (("test/utilprocess_tests.cpp")
                 ""))
              #t))
-         (add-before 'configure 'make-qt-deterministic
-           (lambda _
-             ;; Make Qt deterministic.
-             (setenv "QT_RCC_SOURCE_DATE_OVERRIDE" "1")
-             #t))
          (add-before 'check 'set-home
            (lambda _
              (setenv "HOME" (getenv "TMPDIR")) ; tests write to $HOME
@@ -1644,3 +1624,54 @@ generate a variety of reports from them, and provides a web interface.")
     (synopsis "Emacs mode for beancount")
     (description
       "Emacs-beancount is an Emacs mode for the Beancount accounting tool.")))
+
+(define-public hledger-web
+  (package
+    (name "hledger-web")
+    (version "1.14.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://hackage.haskell.org/package/"
+                           "hledger-web/hledger-web-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0w59nr7mj0nx8z44cvhy1rhlj5rmx0wq4p5nfl4dycfmp7jwvsm1"))))
+    (build-system haskell-build-system)
+    (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)))
+    (home-page "https://hledger.org")
+    (synopsis "Web-based user interface for the hledger accounting system")
+    (description "This package provides a simple Web-based User
+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)))
diff --git a/gnu/packages/firmware.scm b/gnu/packages/firmware.scm
index 15a6725c67..fcdb5a801e 100644
--- a/gnu/packages/firmware.scm
+++ b/gnu/packages/firmware.scm
@@ -3,7 +3,7 @@
 ;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2017 David Craven <david@craven.ch>
 ;;; Copyright © 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Vagrant Cascadian <vagrant@debian.org>
 ;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
 ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
@@ -258,7 +258,7 @@ for platform-specific firmwares executing in M-mode.")
 (define-public seabios
   (package
     (name "seabios")
-    (version "1.13.0")
+    (version "1.14.0")
     (source
      (origin
        (method git-fetch)
@@ -267,7 +267,7 @@ for platform-specific firmwares executing in M-mode.")
              (commit (string-append "rel-" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1n1bd6msfs7xn8844sz2qnm7hb5x2qfl3zb06kp4bx9vdc3i6619"))))
+        (base32 "0jp4rxsv9jdzvx4gjvkybj6g1yjg8pkd2wys4sdh6c029npp6y8p"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("python" ,python-wrapper)))
diff --git a/gnu/packages/flashing-tools.scm b/gnu/packages/flashing-tools.scm
index ed844430cd..669c45fd68 100644
--- a/gnu/packages/flashing-tools.scm
+++ b/gnu/packages/flashing-tools.scm
@@ -180,7 +180,7 @@ ISP.")
 (define-public dfu-util
   (package
     (name "dfu-util")
-    (version "0.9")
+    (version "0.10")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -188,7 +188,7 @@ ISP.")
                     version ".tar.gz"))
               (sha256
                (base32
-                "0czq73m92ngf30asdzrfkzraag95hlrr74imbanqq25kdim8qhin"))))
+                "0hlvc47ccf5hry13saqhc1j5cdq5jyjv4i05kj0mdh3rzj6wagd0"))))
     (build-system gnu-build-system)
     (inputs
      `(("libusb" ,libusb)))
diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm
index f4c62ee69c..11a8e6261b 100644
--- a/gnu/packages/fonts.scm
+++ b/gnu/packages/fonts.scm
@@ -14,7 +14,7 @@
 ;;; Copyright © 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016, 2020 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2016 Toni Reina <areina@riseup.net>
-;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2017 José Miguel Sánchez García <jmi2k@openmailbox.com>
 ;;; Copyright © 2017 Alex Griffin <a@ajgrf.com>
 ;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
@@ -23,8 +23,8 @@
 ;;; Copyright © 2017 Mohammed Sadiq <sadiq@sadiqpk.org>
 ;;; Copyright © 2018 Charlie Ritter <chewzerita@posteo.net>
 ;;; Copyright © 2018 Gabriel Hondet <gabrielhondet@gmail.com>
-;;; Copyright © 2019 Jens Mølgaard <jens@zete.tk>
-;;; Copyright © 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;; Copyright © 2019, 2020 Jens Mølgaard <jens@zete.tk>
+;;; Copyright © 2019, 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;; Copyright © 2019 Baptiste Strazzulla <bstrazzull@hotmail.fr>
 ;;; Copyright © 2019 Alva <alva@skogen.is>
 ;;; Copyright © 2019 Alexandros Theodotou <alex@zrythm.org>
@@ -37,6 +37,7 @@
 ;;; Copyright © 2020 Zhu Zihao <all_but_last@163.com>
 ;;; Copyright © 2020 Simen Endsjø <simendsjo@gmail.com>
 ;;; Copyright © 2020 Tim Van den Langenbergh <tmt_vdl@gmx.com>
+;;; Copyright © 2020 Nicolò Balzarotti <nicolo@nixo.xyz>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -313,14 +314,14 @@ The Lato 2.010 family supports more than 100 Latin-based languages, over
 (define-public font-liberation
   (package
     (name "font-liberation")
-    (version "2.1.1")
+    (version "2.1.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://github.com/liberationfonts/liberation-fonts/"
-                           "files/4743886/liberation-fonts-ttf-" version ".tar.gz"))
+                           "files/5722233/liberation-fonts-ttf-" version ".tar.gz"))
        (sha256
-        (base32 "1jkg8j8jx7ffj13z5ilw7dids99dyypljm1pv06ycmghw1pw3qlf"))))
+        (base32 "1q7qx9bpn1gqjh1zbb8n9fkzwz8skn41hyy61186g4c3y8q4js8l"))))
     (build-system font-build-system)
     (home-page "https://github.com/liberationfonts")
     (synopsis "Fonts compatible with Arial, Times New Roman, and Courier New")
@@ -710,17 +711,17 @@ for use at smaller text sizes")))
 (define-public font-gnu-unifont
   (package
     (name "font-gnu-unifont")
-    (version "13.0.03")
+    (version "13.0.05")
     (source
      (origin
        (method url-fetch)
        (uri (list
-             (string-append "http://unifoundry.com/pub/unifont/unifont-"
+             (string-append "https://unifoundry.com/pub/unifont/unifont-"
                             version "/unifont-" version ".tar.gz")
              (string-append "mirror://gnu/unifont/unifont-"
                             version "/unifont-" version ".tar.gz")))
        (sha256
-        (base32 "04l2sbg6il78qsj3jxqfbz5k1xzihvw8vdlckgkp4zfr0nh2q7h7"))))
+        (base32 "0kkgagnyhl92pwgnvf1vjrc1ql8lk5khb125sz18ck8vnxk4i3pr"))))
     (build-system gnu-build-system)
     (outputs '("out"   ; TrueType version
                "pcf"   ; PCF (bitmap) version
@@ -858,6 +859,7 @@ It contains the following fonts and styles:
        ("woff-tools" ,woff-tools)
        ("fontforge" ,fontforge)
        ("woff2" ,woff2)
+       ("woff2:bin" ,woff2 "bin")
        ("zip" ,zip)))
     (arguments
      `(#:tests? #f                 ;test target intended for visual inspection
@@ -950,19 +952,16 @@ designed to work well in user interface environments.")
 (define-public font-adobe-source-sans-pro
   (package
     (name "font-adobe-source-sans-pro")
-    (version "2.040R-ro-1.090R-it")
+    (version "3.028R")
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
              (url "https://github.com/adobe-fonts/source-sans-pro")
-             (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))))
+             (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1lzin2hfwidbvhps7shs201p1bpxy6220xmhhprv9fc8bknd4c45"))))
+        (base32 "0lgjqi4d5p1q1z00ad807v5qy4z54gmp7jpdaypc0rxk8czv6zq7"))))
     (build-system font-build-system)
     (home-page "https://github.com/adobe-fonts/source-sans-pro")
     (synopsis
@@ -975,19 +974,16 @@ work well in user interface (UI) environments.")
 (define-public font-adobe-source-serif-pro
   (package
     (name "font-adobe-source-serif-pro")
-    (version "2.007R-ro-1.007R-it")
+    (version "3.001R")
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
              (url "https://github.com/adobe-fonts/source-serif-pro")
-             (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))))
+             (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1vvzfhjpi47m84bzkapylkd5fri8bdm8qng2hiylmmlw0wk4gpas"))))
+        (base32 "1z0pjvx0jpjwb8vzvc6l5gzlg0mqax4v9pizqcxx82l0ydlfh5bj"))))
     (build-system font-build-system)
     (home-page "https://github.com/adobe-fonts/source-serif-pro")
     (synopsis
@@ -1038,15 +1034,15 @@ Sans Pro family.")
 (define-public font-fira-code
   (package
     (name "font-fira-code")
-    (version "1.206")
-    (source (origin
-              (method url-fetch/zipbomb)
-              (uri (string-append "https://github.com/tonsky/FiraCode/releases/"
-                                  "download/" version
-                                  "/FiraCode_" version ".zip"))
-              (sha256
-               (base32
-                "02r1lcp0c9135ps71v66wdvbsrcxwirrp0blqsa1xbjkkq2rwgj3"))))
+    (version "5.2")
+    (source
+     (origin
+       (method url-fetch/zipbomb)
+       (uri (string-append "https://github.com/tonsky/FiraCode/releases/"
+                           "download/" version
+                           "/Fira_Code_v" version ".zip"))
+       (sha256
+        (base32 "1zayrb6k0gd7xdvx7yx44dpip767q0bzhqwf4j6nf8nx02z746jj"))))
     (build-system font-build-system)
     (home-page "https://mozilla.github.io/Fira/")
     (synopsis "Monospaced font with programming ligatures")
@@ -1153,14 +1149,14 @@ later hand-tweaked with the gbdfed(1) editor:
 (define-public font-comic-neue
   (package
     (name "font-comic-neue")
-    (version "2.5")
+    (version "2.51")
     (source (origin
               (method url-fetch/zipbomb)
               (uri (string-append
                     "http://www.comicneue.com/comic-neue-" version ".zip"))
               (sha256
                (base32
-                "1ng0m0zs7qr91qy5ff0l01l27npr76961c6zfkxnhxf68zpwz5k4"))))
+                "0883542v915crz98v1ij6smgy40dg6gxwsid3j5nbmmqjf69kpal"))))
     (build-system font-build-system)
     (arguments
      `(#:phases
@@ -1202,7 +1198,7 @@ typeface, by mimicking Comic Sans while fixing its most obvious shortcomings.")
   (package
     (name "font-iosevka")
     ;; When updating, also update the hash of the Iosevka variant(s) below.
-    (version "3.2.2")
+    (version "4.0.3")
     (source
      (origin
        (method url-fetch/zipbomb)
@@ -1210,7 +1206,7 @@ typeface, by mimicking Comic Sans while fixing its most obvious shortcomings.")
                            "/releases/download/v" version
                            "/ttc-iosevka-" version ".zip"))
        (sha256
-        (base32 "16iqr4zjlshrgzcs3sjp3gz777gpi069r7p7scqi6vap9acqjvph"))))
+        (base32 "1xc45rs09aj899wz9ghyizq6ddbgxpkqq5bl1jc89hls5laf7qjb"))))
     (build-system font-build-system)
     (home-page "https://be5invis.github.io/Iosevka/")
     (synopsis "Coders' typeface, built from code")
@@ -1233,7 +1229,7 @@ programming.  Iosevka is completely generated from its source code.")
                            "/releases/download/v" version
                            "/ttc-iosevka-slab-" version ".zip"))
        (sha256
-        (base32 "0knsb1b0wqv50r7f9128xvq344x7hnvgm7kh1dxaahlck910z62x"))))))
+        (base32 "0qpfzyi050zca0bwhb460nvcaarij4srhify0rb8sf9ygpzyvnjh"))))))
 
 (define-public font-iosevka-term
   (package
@@ -1247,8 +1243,7 @@ programming.  Iosevka is completely generated from its source code.")
                            "/releases/download/v" version
                            "/ttf-iosevka-term-" version ".zip"))
        (sha256
-        (base32
-         "0nyq6iq9xjn9nqwh1fh4v0pvblycmm8ssw7y3vcjv1ymbkdqfqhr"))))
+        (base32 "092ygzv24wbi8cjjsmq0jkxdf4cm7wqlfj7jkn0cip7nlbyskl3h"))))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -1265,12 +1260,11 @@ programming.  Iosevka is completely generated from its source code.")
     (source
      (origin
        (method url-fetch/zipbomb)
-       (uri (string-append "https://github.com/be5invis/Iosevka"
-                           "/releases/download/v" version
-                           "/ttf-iosevka-term-slab-" version ".zip"))
+       (uri (string-append "https://github.com/be5invis/Iosevka/"
+                           "releases/download/v" version "/"
+                           "ttf-iosevka-term-slab-" version ".zip"))
        (sha256
-        (base32
-         "1blhhbnk2hyaxjrz88icd2gwyniq5idxd0h6rqx6vjcack6094z0"))))
+        (base32 "157kdxrxz981ympd2iww66v50vm2cxd7z98vvb36rii94hf30k7x"))))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -1291,7 +1285,35 @@ programming.  Iosevka is completely generated from its source code.")
                            "/releases/download/v" version
                            "/ttc-iosevka-aile-" version ".zip"))
        (sha256
-        (base32 "1zg0gn4gcf3w8n8jzf93y9ninyn3bci31c5zss3mxzz1lzfm8zd5"))))))
+        (base32 "0n52lfn7awc28a4f5yh4my8q4ikzza705kp69chfw9jm2xx79npc"))))))
+
+(define-public font-iosevka-curly
+  (package
+    (inherit font-iosevka)
+    (name "font-iosevka-curly")
+    (version (package-version font-iosevka))
+    (source
+     (origin
+       (method url-fetch/zipbomb)
+       (uri (string-append "https://github.com/be5invis/Iosevka/"
+                           "releases/download/v" version  "/"
+                           "ttc-iosevka-curly-" version ".zip"))
+       (sha256
+        (base32 "0m51r0bc25khllq8nsfgsldhwfs7kzl8kqasivjlm14mpv5080fn"))))))
+
+(define-public font-iosevka-curly-slab
+  (package
+    (inherit font-iosevka)
+    (name "font-iosevka-curly-slab")
+    (version (package-version font-iosevka))
+    (source
+     (origin
+       (method url-fetch/zipbomb)
+       (uri (string-append "https://github.com/be5invis/Iosevka/"
+                           "releases/download/v" version  "/"
+                           "ttc-iosevka-curly-slab-" version ".zip"))
+       (sha256
+        (base32 "0ffiz2kg43kc2dxv48sjji33ra3kc6sy8vlard93c601fqjmrjws"))))))
 
 (define-public font-iosevka-etoile
   (package
@@ -1305,7 +1327,7 @@ programming.  Iosevka is completely generated from its source code.")
                            "/releases/download/v" version
                            "/ttc-iosevka-etoile-" version ".zip"))
        (sha256
-        (base32 "1061yaf35f19dcym4k552q1yzbsbc98r3glm9frslirra9f33sl2"))))))
+        (base32 "1fj8g7sjp9idjh14iqk4wsz3rdarlmq7amcdsr0dznwyivx8a9wx"))))))
 
 (define-public font-iosevka-sparkle
   (package
@@ -1319,7 +1341,7 @@ programming.  Iosevka is completely generated from its source code.")
                            "/releases/download/v" version
                            "/ttc-iosevka-sparkle-" version ".zip"))
        (sha256
-        (base32 "1c1s9j6qgyhn4md0kql0x2201nbs5jx3612jf8q020gm484xqq03"))))))
+        (base32 "00dw894930xdikai8bcaimp0a3720diwi0r7ii52jwl4d70w53dx"))))))
 
 (define-public font-sarasa-gothic
   (package
@@ -1435,6 +1457,30 @@ emphasis while still being readable.")
 (define-public font-open-dyslexic
   (deprecated-package "font-open-dyslexic" font-opendyslexic))
 
+(define-public font-openmoji
+  (package
+    (name "font-openmoji")
+    (version "12.4.0")
+    (source
+     (origin
+       (method url-fetch/zipbomb)
+       (uri
+        (string-append "https://github.com/hfg-gmuend/openmoji/"
+                       "releases/download/" version
+                       "/openmoji-font.zip"))
+       (sha256
+        (base32
+         "0wvvg5vnc950h8v23wfgjyi7rv89mgm5hqq6viqv0bxcc3azglxb"))))
+    (build-system font-build-system)
+    (native-inputs
+     `(("unzip" ,unzip)))
+    (home-page "https://openmoji.org")
+    (synopsis "Font for rendering emoji characters")
+    (description
+     "This package provides the OpenMoji font in both color and black
+variants.")
+    (license license:cc-by-sa4.0)))
+
 (define-public font-dosis
   (package
     (name "font-dosis")
@@ -1741,24 +1787,29 @@ This package provides the TrueType fonts.")
 (define-public font-jetbrains-mono
   (package
     (name "font-jetbrains-mono")
-    (version "2.001")
+    (version "2.221")
     (source
      (origin
        (method url-fetch)
        (uri
-        (string-append "https://download.jetbrains.com/fonts/"
-                       "JetBrainsMono-" version ".zip"))
+        (string-append "https://github.com/JetBrains/JetBrainsMono/releases/"
+                       "download/v" version "/JetBrainsMono-" version ".zip"))
        (sha256
-        (base32 "0r3dk3kn536rik4mvpcjin9mwmifl3v8mawvb4a5l59pww0vcxzq"))))
+        (base32 "1acrgv2q9vxviirpi01xy67pkkswyssw4dn5pgyvrnjxr85cgjrg"))))
     (build-system font-build-system)
     (arguments
      `(#:phases
        (modify-phases %standard-phases
+         (add-before 'install-license-files 'change-directory-to-archive-root
+           ;; Find the license file outside of the default subdirectory.
+           (lambda _
+             (chdir "..")
+             #t))
          (replace 'install-license-files
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
                     (doc (string-append out "/share/doc/" ,name "-" ,version)))
-               (install-file "../LICENSE" doc)
+               (install-file "OFL.txt" doc)
                #t))))))
     (home-page "https://www.jetbrains.com/lp/mono/")
     (synopsis "Mono typeface for developers")
@@ -1768,6 +1819,36 @@ Mono’s typeface forms are simple and free from unnecessary details.  Rendered
 in small sizes, the text looks crisper.")
     (license license:asl2.0)))
 
+(define-public font-juliamono
+  (package
+    (name "font-juliamono")
+    (version "0.025")
+    (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))
+       (sha256
+        (base32 "1w8mpl9zc1y4j1f26ikbz5g9dqsszhikp4r9p1d3ch3b5ayb5c3m"))))
+    (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)))))
+    (home-page "https://github.com/cormullion/juliamono")
+    (synopsis "Monospaced font for programming")
+    (description
+     "JuliaMono is a monospaced font for scientific and technical computing,
+designed to work for programming in the Julia Programming Language and other
+text environments.")
+    (license license:silofl1.1)))
+
 (define-public font-vazir
   (package
     (name "font-vazir")
diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm
index 46279301d6..ea4b0f094e 100644
--- a/gnu/packages/fontutils.scm
+++ b/gnu/packages/fontutils.scm
@@ -2,11 +2,11 @@
 ;;; Copyright © 2013, 2014, 2015 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2014, 2016 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2016 Mark H Weaver <mhw@netris.org>
-;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2017, 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2017 Rene Saavedra <rennes@openmailbox.org>
 ;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2017 Nikita <nikita@n0.is>
-;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017, 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2018, 2019 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2019, 2020 Marius Bakke <mbakke@fastmail.com>
@@ -30,29 +30,34 @@
 
 (define-module (gnu packages fontutils)
   #:use-module (gnu packages)
-  #:use-module (gnu packages compression)
+  #: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)
+  #:use-module (gnu packages flex)
+  #: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 ghostscript)
+  #:use-module (gnu packages glib)
+  #:use-module (gnu packages gnome)
+  #:use-module (gnu packages gperf)
+  #:use-module (gnu packages gtk)
+  #:use-module (gnu packages image)
   #:use-module (gnu packages linux)
+  #:use-module (gnu packages man)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
-  #:use-module (gnu packages autotools)
-  #:use-module (gnu packages fonts)
-  #:use-module (gnu packages gettext)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-xyz)
-  #:use-module (gnu packages image)
-  #:use-module (gnu packages bison)
-  #:use-module (gnu packages flex)
-  #:use-module (gnu packages glib)
-  #:use-module (gnu packages gperf)
-  #:use-module (gnu packages xorg)
-  #:use-module (gnu packages fribidi)
-  #:use-module (gnu packages gtk)
-  #:use-module (gnu packages xml)
   #:use-module (gnu packages sqlite)
-  #:use-module (gnu packages gnome)
-  #:use-module (gnu packages freedesktop)
+  #:use-module (gnu packages xdisorg)
+  #:use-module (gnu packages xml)
+  #:use-module (gnu packages xorg)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix download)
@@ -69,6 +74,7 @@
   (package
    (name "freetype")
    (version "2.10.1")
+   (replacement freetype/fixed)
    (source (origin
             (method url-fetch)
             (uri (string-append "mirror://savannah/freetype/freetype-"
@@ -97,10 +103,23 @@ anti-aliased glyph bitmap generation with 256 gray levels.")
    (license license:freetype)           ; some files have other licenses
    (home-page "https://www.freetype.org/")))
 
+(define freetype/fixed
+  ;; Security fix for CVE-2020-15999.
+  (package
+    (inherit freetype)
+    (version "2.10.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://savannah/freetype/freetype-"
+                           version ".tar.xz"))
+       (sha256
+        (base32 "112pyy215chg7f7fmp2l9374chhhpihbh8wgpj5nj6avj3c59a46"))))))
+
 (define-public ttfautohint
   (package
     (name "ttfautohint")
-    (version "1.5")
+    (version "1.8.3")
     (source
      (origin
        (method url-fetch)
@@ -108,8 +127,7 @@ anti-aliased glyph bitmap generation with 256 gray levels.")
                            version ".tar.gz"))
        (sha256
         (base32
-         "1lgghck46p33z3hg8dnl76jryig4fh6d8rhzms837zp7x4hyfkv4"))
-       (patches (list (search-patch "ttfautohint-source-date-epoch.patch")))))
+         "0zpqgihn3yh3v51ynxwr8asqrijvs4gv686clwv7bm8sawr4kfw7"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("flex" ,flex)
@@ -119,7 +137,8 @@ anti-aliased glyph bitmap generation with 256 gray levels.")
      `(("freetype" ,freetype)
        ("harfbuzz" ,harfbuzz)))
     (arguments
-     `(#:configure-flags '("--with-qt=no"))) ;no gui
+     `(#:configure-flags '("--disable-static"
+                           "--with-qt=no"))) ;no gui
     (synopsis "Automated font hinting")
     (description
      "ttfautohint provides a 99% automated hinting process and a platform for
@@ -146,7 +165,7 @@ scripts.")
     (inputs
      `(("zlib" ,zlib)))
     (arguments
-     `(#:make-flags '("CC=gcc")
+     `(#:make-flags '(,(string-append "CC=" (cc-for-target)))
        #:tests? #f                      ;no tests
        #:phases
        (modify-phases %standard-phases
@@ -156,7 +175,8 @@ scripts.")
              (let* ((out (assoc-ref outputs "out"))
                     (bin (string-append out "/bin")))
                (install-file "sfnt2woff" bin)
-               (install-file "woff2sfnt" bin)))))))
+               (install-file "woff2sfnt" bin))
+             #t)))))
     (synopsis "Convert between OpenType and WOFF fonts")
     (description
      "This package provides two tools:
@@ -263,32 +283,50 @@ work with most software requiring Type 1 fonts.")
   (package
     (name "woff2")
     (version "1.0.2")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://github.com/google/woff2")
-                    (commit (string-append "v" version))))
-              (file-name (string-append name "-" version ".git"))
-              (sha256
-               (base32
-                "13l4g536h0pr84ww4wxs2za439s0xp1va55g6l478rfbb1spp44y"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/google/woff2")
+         (commit (string-append "v" version))))
+       (file-name
+        (git-file-name name version))
+       (sha256
+        (base32 "13l4g536h0pr84ww4wxs2za439s0xp1va55g6l478rfbb1spp44y"))))
     (build-system cmake-build-system)
+    (outputs '("out" "bin"))
+    (arguments
+     `(#:tests? #f                      ; No target
+       #:configure-flags
+       (list
+        (string-append "-DCMAKE_INSTALL_BINDIR="
+                       (assoc-ref %outputs "bin")
+                       "/bin")
+        (string-append "-DCMAKE_INSTALL_INCLUDEDIR="
+                       (assoc-ref %outputs "out")
+                       "/include")
+        (string-append "-DCMAKE_INSTALL_LIBDIR="
+                       (assoc-ref %outputs "out")
+                       "/lib"))
+       #:phases
+       (modify-phases %standard-phases
+         ;; To install both binaries and libraries.
+         (add-after 'unpack 'patch-installation
+           (lambda _
+             (substitute* "CMakeLists.txt"
+               (("NOT BUILD_SHARED_LIBS")
+                "BUILD_SHARED_LIBS"))
+             #t)))))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
     (inputs
-     `(("google-brotli" ,google-brotli)))
-    (arguments
-     ;; package has no tests
-     `(#:tests? #f
-       ;; we can’t have both, shared libraries and binaries, so turn off the
-       ;; former
-       #:configure-flags (list "-DBUILD_SHARED_LIBS=OFF")))
-    (synopsis "Compress TrueType fonts to WOFF2")
-    (description
-     "This package provides utilities for compressing/decompressing TrueType
-fonts to/from the WOFF2 format.")
-    (license license:asl2.0)
-    (home-page "https://github.com/google/woff2")))
+     `(("brotli" ,google-brotli)))
+    (synopsis "Libraries and tools for WOFF2 font format")
+    (description "WOFF2 provides libraries and tools to handle the Web Open
+Font Format (WOFF).")
+    (home-page "https://w3c.github.io/woff/woff2/")
+    (license license:expat)))
 
 (define-public fontconfig
   (package
@@ -538,6 +576,7 @@ using the above tables.")
   (package
     (name "libspiro")
     (version "20190731")
+    (replacement libspiro-20200505)
     (source
      (origin
       (method url-fetch)
@@ -556,6 +595,19 @@ smooth contours with constant curvature at the spline joins.")
     (license license:gpl2+)
     (home-page "http://libspiro.sourceforge.net/")))
 
+(define libspiro-20200505
+  (package
+    (inherit libspiro)
+    (version "20200505")
+    (source
+     (origin
+      (method url-fetch)
+      (uri (string-append "https://github.com/fontforge/libspiro/releases"
+                          "/download/" version "/libspiro-dist-" version ".tar.gz"))
+      (sha256
+       (base32
+        "0j8fmyj4wz6mqk17dqs6f8jx0i52n68gv5px17qbrjnbilg9mih6"))))))
+
 (define-public libuninameslist
   (package
     (name "libuninameslist")
@@ -781,6 +833,50 @@ maintain the Noto Fonts project.")
                     "file://sample_texts/attributions.txt"
                     "See sample_texts/attributions.txt in the distribution.")))))
 
+(define-public fcft
+  (package
+    (name "fcft")
+    (version "2.3.2")
+    (home-page "https://codeberg.org/dnkl/fcft")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference (url home-page) (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0k2i57rakm4g86f7hbhkby8af0vv7v63a70lk3m58mkycpy5q2rm"))))
+    (build-system meson-build-system)
+    (arguments
+     `(#:meson ,meson-0.55))
+    (native-inputs
+     `(("check" ,check)
+       ("gcc" ,gcc-10)    ;TODO: Remove when the default compiler is > GCC 7.
+       ("pkg-config" ,pkg-config)
+       ("scdoc" ,scdoc)))
+    (propagated-inputs
+     `(;; Required by fcft.pc.
+       ("fontconfig" ,fontconfig)
+       ("freetype" ,freetype)
+       ("harfbuzz" ,harfbuzz)
+       ("pixman" ,pixman)
+       ("tllist" ,tllist)))
+    (synopsis "Font loading and glyph rasterization library")
+    (description
+     "@code{fcft} is a small font loading and glyph rasterization library
+built on-top of FontConfig, FreeType2 and pixman.
+
+It can load and cache fonts from a fontconfig-formatted name string, e.g.
+@code{Monospace:size=12}, optionally with user configured fallback fonts.
+
+After a font has been loaded, you can rasterize glyphs.  When doing so, the
+primary font is first considered.  If it does not have the requested glyph,
+the user configured fallback fonts (if any) are considered.  If none of the
+user configured fallback fonts has the requested glyph, the FontConfig
+generated list of fallback fonts are checked.")
+    ;; The code is distributed under the Expat license, but embeds Unicode
+    ;; data files carrying the Unicode license.
+    (license (list license:expat license:unicode))))
+
 (define-public fontmanager
   (package
    (name "fontmanager")
@@ -890,7 +986,7 @@ Unicode Charts.  It was developed for use with DejaVu Fonts project.")
 (define-public libraqm
   (package
     (name "libraqm")
-    (version "0.7.0")
+    (version "0.7.1")
     (source
      (origin
        (method url-fetch)
@@ -898,7 +994,7 @@ Unicode Charts.  It was developed for use with DejaVu Fonts project.")
                            "releases/download/v" version "/"
                            "raqm-" version ".tar.gz"))
        (sha256
-        (base32 "0hgry3fj2y3qaq2fnmdgd93ixkk3ns5jds4vglkiv2jfvpn7b1g2"))))
+        (base32 "0a4q9dziirb85sa9rmkamg2krdhd009di2vlz91njwxcp3q8qj46"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags (list "--disable-static")))
@@ -920,3 +1016,33 @@ It currently provides bidirectional text support (using FriBiDi),
 shaping (using HarfBuzz), and proper script itemization.  As a result, Raqm
 can support most writing systems covered by Unicode.")
     (license license:expat)))
+
+(define-public lcdf-typetools
+  (package
+    (name "lcdf-typetools")
+    (version "2.108")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/kohler/lcdf-typetools")
+                     (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0a6jqaqwq43ldjjjlnsh6mczs2la9363qav7v9fyrfzkfj8kw9ad"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:configure-flags
+       ;; This is only provided by the monolithic texlive distribution.
+       ;; FIXME: texlive-kpathsea doesn't come with the library and headers
+       (list "--without-kpathsea")))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)))
+    (home-page "https://lcdf.org/type/")
+    (synopsis "Multiple font manipulation tools")
+    (description "LCDF Typetools comprises several programs for manipulating
+PostScript Type 1, Type 1 Multiple Master, OpenType, and TrueType fonts.
+These tools are cfftot1, mmafm, mmpfb, otfinfo, otftotfm, t1dotlessj, t1lint,
+t1rawfm, t1reencode, t1testpage and ttftotype42.")
+    (license license:gpl2+)))
diff --git a/gnu/packages/fpga.scm b/gnu/packages/fpga.scm
index 0fa2f5256b..96ba0026f9 100644
--- a/gnu/packages/fpga.scm
+++ b/gnu/packages/fpga.scm
@@ -1,8 +1,9 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2016 Danny Milosavljevic <dannym@scratchpost.org>
 ;;; Copyright © 2016, 2017 Theodoros Foradis <theodoros@foradis.org>
-;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2019 Amin Bandali <bandali@gnu.org>
+;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -26,18 +27,25 @@
   #:use-module (guix git-download)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system cmake)
+  #:use-module (guix build-system python)
   #:use-module (gnu packages)
+  #:use-module (gnu packages autotools)
+  #:use-module (gnu packages base)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages tcl)
   #:use-module (gnu packages readline)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages bison)
+  #:use-module (gnu packages check)
   #:use-module (gnu packages flex)
+  #:use-module (gnu packages gettext)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages graphviz)
   #:use-module (gnu packages libffi)
   #:use-module (gnu packages linux)
+  #:use-module (gnu packages llvm)
   #:use-module (gnu packages maths)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages ghostscript)
@@ -340,7 +348,7 @@ FOSS FPGA place and route tool.")
 (define-public gtkwave
   (package
     (name "gtkwave")
-    (version "3.3.104")
+    (version "3.3.108")
     (source
      (origin
        (method url-fetch)
@@ -350,7 +358,7 @@ FOSS FPGA place and route tool.")
                   (string-append "http://gtkwave.sourceforge.net/"
                                  "gtkwave-" version ".tar.gz")))
        (sha256
-        (base32 "0kw9a33gx60kn069yhx5pyk39x1z3pwaj8l1qqwq943v62lx23fj"))))
+        (base32 "0fzbap72zm4ka6n85j0873fpaarrx199ay0kjw1avrs20hs4gr7c"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("gperf" ,gperf)
@@ -374,3 +382,88 @@ simulator trace files (@dfn{FST}).")
     (home-page "http://gtkwave.sourceforge.net/")
     ;; Exception against free government use in tcl_np.c and tcl_np.h.
     (license (list license:gpl2+ license:expat license:tcl/tk))))
+
+(define-public python-migen
+  (package
+    (name "python-migen")
+    (version "0.9.2")
+    (source
+     (origin
+       ;; Tests fail in the PyPI tarball due to missing files.
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/m-labs/migen")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1kq11if64zj84gv4w1q7l16fp17xjxl2wv5hc9dibr1z3m1gy67l"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-colorama" ,python-colorama)))
+    (home-page "https://m-labs.hk/gateware/migen/")
+    (synopsis "Python toolbox for building complex digital hardware")
+    (description
+     "Migen FHDL is a Python library that replaces the event-driven
+paradigm of Verilog and VHDL with the notions of combinatorial and
+synchronous statements, has arithmetic rules that make integers always
+behave like mathematical integers, and allows the design's logic to be
+constructed by a Python program.")
+    (license license:bsd-2)))
+
+(define-public python-myhdl
+  (package
+    (name "python-myhdl")
+    (version "0.11")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "myhdl" version))
+        (sha256
+          (base32
+            "04fi59cyn5dsci0ai7djg74ybkqfcjzhj1jfmac2xanbcrw9j3yk"))))
+    (build-system python-build-system)
+    (home-page "http://www.myhdl.org/")
+    (synopsis "Python as a Hardware Description Language")
+    (description "This package provides a library to turn Python into
+a hardware description and verification language. ")
+    (license license:lgpl2.1+)))
+
+(define-public nvc
+  (package
+    (name "nvc")
+    (version "1.5.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/nickg/nvc.git")
+                     (commit (string-append "r" version))))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32
+                "0dd1xany6qhh2qsfw8ba0ky7y86h19yr4hlk0r5i2bvwsg4355v9"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:parallel-build? #f ; https://github.com/nickg/nvc/issues/409
+       #:configure-flags
+       '("--enable-vhpi")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'clean-up
+           (lambda _
+             (delete-file "autogen.sh")
+             #t)))))
+    (native-inputs
+     `(("automake" ,automake)
+       ("autoconf" ,autoconf)
+       ("flex" ,flex)
+       ("gettext" ,gnu-gettext)
+       ("libtool" ,libtool)
+       ("pkg-config" ,pkg-config)
+       ("which" ,which)
+       ("check" ,check))) ; for the tests
+    (inputs
+     `(("llvm" ,llvm-9)))
+    (synopsis "VHDL compiler and simulator")
+    (description "This package provides a VHDL compiler and simulator.")
+    (home-page "https://github.com/nickg/nvc")
+    (license license:gpl3+)))
diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm
index ddbe716dd1..ef35349ec2 100644
--- a/gnu/packages/freedesktop.scm
+++ b/gnu/packages/freedesktop.scm
@@ -21,6 +21,7 @@
 ;;; Copyright © 2020 Rene Saavedra <pacoon@protonmail.com>
 ;;; Copyright © 2020 Nicolò Balzarotti <nicolo@nixo.xyz>
 ;;; Copyright © 2020 Anders Thuné <asse.97@gmail.com>
+;;; Copyright © 2020 Raghav Gururajan <raghavgururajan@disroot.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -71,6 +72,7 @@
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages gperf)
   #:use-module (gnu packages graphviz)
+  #:use-module (gnu packages gstreamer)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages image)
   #:use-module (gnu packages libffi)
@@ -79,6 +81,7 @@
   #:use-module (gnu packages linux)
   #:use-module (gnu packages man)
   #:use-module (gnu packages m4)
+  #:use-module (gnu packages networking)
   #:use-module (gnu packages nss)
   #:use-module (gnu packages package-management)
   #:use-module (gnu packages perl)
@@ -98,6 +101,187 @@
   #:use-module (gnu packages xorg)
   #:use-module (srfi srfi-1))
 
+(define-public farstream
+  (package
+    (name "farstream")
+    (version "0.2.9")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://gitlab.freedesktop.org/farstream/farstream.git")
+         (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1sd8syldyq6bphfdm129s3gq554vfv7vh1vcwzk48gjryf101awk"))
+       (patches
+        (search-patches "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
+       (list
+        "--enable-gtk-doc"
+        "--enable-glib-asserts"
+        (string-append "--with-html-dir="
+                       (assoc-ref %outputs "doc")
+                       "/share/gtk-doc/html"))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'copy-common
+           (lambda _
+             (delete-file "autogen.sh")
+             (copy-recursively
+              (assoc-ref %build-inputs "common")
+              "common")
+             #t))
+         (add-after 'unpack 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "docs"
+               (substitute* '("libs/farstream-libs-docs.sgml"
+                              "plugins/farstream-plugins-docs.sgml")
+                 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
+                  (string-append (assoc-ref inputs "docbook-xml")
+                                 "/xml/dtd/docbook/"))))
+             #t)))))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("common"
+        ,(origin
+           (method git-fetch)
+           (uri
+            (git-reference
+             (url "https://gitlab.freedesktop.org/gstreamer/common.git")
+             (commit "88e512ca7197a45c4114f7fa993108f23245bf50")))
+           (file-name
+            (git-file-name "common" "latest.88e512c"))
+           (sha256
+            (base32 "1nk94pnskjyngqcfb9p32g4yvf4nzpjszisw24r9azl0pawqpsn6"))))
+       ("docbook-xml" ,docbook-xml-4.1.2)
+       ("docbook-xsl" ,docbook-xsl)
+       ("gobject-introspection" ,gobject-introspection)
+       ("gtk-doc" ,gtk-doc)
+       ("libtool" ,libtool)
+       ("perl" ,perl)
+       ("pkg-config" ,pkg-config)
+       ("python" ,python-wrapper)
+       ("xsltproc" ,libxslt)))
+    (inputs
+     `(("glib" ,glib)
+       ("gtk+" ,gtk+)
+       ("gupnp-igd" ,gupnp-igd)
+       ("libnice" ,libnice)))
+    (propagated-inputs
+     `(("gstreamer" ,gstreamer)
+       ("gst-plugins-bad" ,gst-plugins-bad)
+       ("gst-plugins-base" ,gst-plugins-base)
+       ("gst-plugins-good" ,gst-plugins-good)))
+    (synopsis "The Farstream VVoIP framework")
+    (description "Farstream is a collection of GStreamer modules and libraries
+for videoconferencing.")
+    (home-page "https://www.freedesktop.org/wiki/Software/Farstream/")
+    (license license:lgpl2.1+)))
+
+(define-public libglib-testing
+  (package
+    (name "libglib-testing")
+    (version "0.1.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://gitlab.gnome.org/pwithnall/libglib-testing.git")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0xmycsrlqyji6sc2i4wvp2gxf3897z65a57ygihfnpjpyl7zlwkr"))))
+    (build-system meson-build-system)
+    (arguments
+     `(#:glib-or-gtk? #t
+       #:phases
+       (modify-phases %standard-phases
+         (add-before
+             'check 'pre-check
+           (lambda _
+             ;; The test suite requires a running dbus-daemon.
+             (system "dbus-daemon &")
+             ;; Don't fail on missing '/etc/machine-id'.
+             (setenv "DBUS_FATAL_WARNINGS" "0")
+             #t)))))
+    (native-inputs
+     `(("glib:bin" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("pkg-config" ,pkg-config)
+       ("gtk-doc" ,gtk-doc)))
+    (inputs
+     `(("dbus" ,dbus)
+       ("glib" ,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
+be used by any project which uses GLib and which wants to write internal unit
+tests.")
+    (home-page "https://gitlab.gnome.org/pwithnall/libglib-testing")
+    (license license:lgpl2.1+)))
+
+(define-public malcontent
+  (package
+    (name "malcontent")
+    (version "0.8.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://gitlab.freedesktop.org/pwithnall/malcontent.git")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0vnf0pk516fwwh41v96c29l2i7h1pnwhivlkbf53kkx1q35g7lb3"))))
+    (build-system meson-build-system)
+    (arguments
+     `(#:glib-or-gtk? #t
+       #:phases
+       (modify-phases %standard-phases
+         ;; AppInfo not available inside build environment.
+         (add-after 'unpack 'fix-tests
+           (lambda _
+             (substitute* "libmalcontent/tests/app-filter.c"
+               (("g_test_add_func \\(\"/app-filter/appinfo\", test_app_filter_appinfo\\);")
+                 ""))
+             #t)))))
+    (native-inputs
+     `(("desktop-file-utils" ,desktop-file-utils)
+       ("gettext" ,gettext-minimal)
+       ("glib:bin" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("gtk+:bin" ,gtk+ "bin")
+       ("itstool" ,itstool)
+       ("libglib-testing" ,libglib-testing)
+       ("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)))
+    (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
+inappropriate content.")
+    (home-page "https://gitlab.freedesktop.org/pwithnall/malcontent")
+    (license
+     (list
+      license:gpl2+
+      license:lgpl2.1+))))
+
 (define-public xdg-utils
   (package
     (name "xdg-utils")
@@ -189,14 +373,14 @@ freedesktop.org project.")
   ;; Updating this will rebuild over 700 packages through libinput-minimal.
   (package
     (name "libinput")
-    (version "1.15.5")
+    (version "1.16.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://freedesktop.org/software/libinput/"
                                   "libinput-" version ".tar.xz"))
               (sha256
                (base32
-                "15ww4jl3lcxyi8m8idg8canklbqv729gnwpkz7r98c1w8a7zq3m9"))))
+                "1ab0q4iya07kvjd2g1vzamj9h57qldi15h3b8324vg3szr88qggw"))))
     (build-system meson-build-system)
     (arguments
      `(#:configure-flags '("-Ddocumentation=false")
@@ -275,7 +459,7 @@ the freedesktop.org XDG Base Directory specification.")
 (define-public elogind
   (package
     (name "elogind")
-    (version "243.4")
+    (version "243.7")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -284,7 +468,7 @@ the freedesktop.org XDG Base Directory specification.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "141frvgyk4fafcxsix94qc0d9ffrwksld8lqq4hq6xsgjlvv0mrs"))))
+                "1ccj3cbs9nsfg497wg195in1a7b9csm1jdm7z6q7vvx1ynpjxlxz"))))
     (build-system meson-build-system)
     (arguments
      `(#:configure-flags
@@ -323,14 +507,6 @@ the freedesktop.org XDG Base Directory specification.")
                (("join_paths\\(bindir, 'pkttyagent'\\)")
                 "'\"/run/current-system/profile/bin/pkttyagent\"'"))
              #t))
-         (add-after 'unpack 'adjust-dbus-socket-address
-           (lambda _
-             ;; Look for the D-Bus socket in /var/run instead of /run.  Remove
-             ;; this for versions > 243.4.
-             (substitute* "src/libelogind/sd-bus/bus-internal.h"
-               (("=/run/dbus/system_bus_socket")
-                "=/var/run/dbus/system_bus_socket"))
-             #t))
          (add-after 'unpack 'adjust-tests
            (lambda _
              ;; This test tries to copy some bytes from /usr/lib/os-release,
@@ -641,14 +817,14 @@ Python.")
 (define-public wayland
   (package
     (name "wayland")
-    (version "1.17.0")
+    (version "1.18.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://wayland.freedesktop.org/releases/"
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "194ibzwpdcn6fvk4xngr4bf5axpciwg2bj82fdvz88kfmjw13akj"))))
+                "0k995rn96xkplrapz5k648j651wc43kq817xk1x8280h16gsfxa6"))))
     (build-system gnu-build-system)
     (arguments
      `(#:parallel-tests? #f))
@@ -677,7 +853,7 @@ applications, X servers (rootless or fullscreen) or other display servers.")
 (define-public wayland-protocols
   (package
     (name "wayland-protocols")
-    (version "1.18")
+    (version "1.20")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -685,7 +861,7 @@ applications, X servers (rootless or fullscreen) or other display servers.")
                     "wayland-protocols-" version ".tar.xz"))
               (sha256
                (base32
-                "1cvl93h83ymbfhb567jv5gzyq08181w7c46rsw4xqqqpcvkvfwrx"))))
+                "1rsdgvkkvxs3cjhpl6agvbkm53vm7k8rg127j9y2vn33m2hvg0lp"))))
     (build-system gnu-build-system)
     (inputs
      `(("wayland" ,wayland)))
@@ -699,7 +875,7 @@ applications, X servers (rootless or fullscreen) or other display servers.")
 (define-public waylandpp
   (package
     (name "waylandpp")
-    (version "0.2.7")
+    (version "0.2.8")
     (home-page "https://github.com/NilsBrause/waylandpp")
     (source (origin
               (method git-fetch)
@@ -707,10 +883,10 @@ applications, X servers (rootless or fullscreen) or other display servers.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1r4m0xhvwpcqxrqvp3hz1bzlkxqj2jiymd5r6hj8xjzz536hyprz"))))
+                "1kxiqab48p0n97pwg8c2zx56wqq32m3rcq7qd2pjj33ipcanb3qq"))))
     (build-system cmake-build-system)
     (arguments
-     `(#:tests? #f))                    ;no tests
+     `(#:tests? #f))                    ; no tests
     (native-inputs
      `(("pkg-config" ,pkg-config)))
     (inputs
@@ -812,41 +988,39 @@ multiplexer to the KMS/DRM Linux kernel devices.")
     (license license:expat)))
 
 (define-public wev
-  ;; There simple tool has no version or release yet.
-  (let ((commit "cee3dfb2a8b40ee303611018c68ae182d84a7f46"))
-    (package
-      (name "wev")
-      (version (string-append "2020-02-06-" (string-take commit 8)))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://git.sr.ht/~sircmpwn/wev")
-                      (commit commit)))
-                (file-name (git-file-name name version))
-                (sha256
-                 (base32
-                  "0l71v3fzgiiv6xkk365q1l08qvaymxd4kpaya6r2g8yzkr7i2hms"))))
-      (build-system gnu-build-system)
-      (arguments
-       `(#:tests? #f ; no tests
-         #:make-flags
-         (list "CC=gcc" (string-append "PREFIX=" (assoc-ref %outputs "out")))
-         #:phases
-         (modify-phases %standard-phases
-           (delete 'configure))))
-      (native-inputs
-       `(("pkg-config" ,pkg-config)
-         ("scdoc" ,scdoc)))
-      (inputs
-       `(("libxkbcommon" ,libxkbcommon)
-         ("wayland" ,wayland)
-         ("wayland-protocols" ,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
+  (package
+    (name "wev")
+    (version "1.0.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://git.sr.ht/~sircmpwn/wev")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0l71v3fzgiiv6xkk365q1l08qvaymxd4kpaya6r2g8yzkr7i2hms"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f ; no tests
+       #:make-flags
+       (list "CC=gcc" (string-append "PREFIX=" (assoc-ref %outputs "out")))
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure))))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("scdoc" ,scdoc)))
+    (inputs
+     `(("libxkbcommon" ,libxkbcommon)
+       ("wayland" ,wayland)
+       ("wayland-protocols" ,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
 sent to a Wayland window, such as key presses.  It is analogous to the X11 tool
 XEv.")
-      (license license:expat))))
+    (license license:expat)))
 
 (define-public exempi
   (package
@@ -1211,17 +1385,22 @@ different sorts of messages in different formats.")
 (define-public telepathy-idle
   (package
     (name "telepathy-idle")
-    (version "0.2.0")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://telepathy.freedesktop.org/releases/"
-                                  name "/" name "-" version ".tar.bz2"))
-              (sha256
-               (base32
-                "1argdzbif1vdmwp5vqbgkadq9ancjmgdm2ncp0qfckni715ss4rh"))))
+    (version "0.2.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/TelepathyIM/telepathy-idle")
+             (commit (string-append "telepathy-idle-" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1pfw4g2cicw3ykxhsy743r0fc1yqbdrqxh2c5ha6am19dajcr95l"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("libtool" ,libtool)
+       ("pkg-config" ,pkg-config)))
     (inputs
      `(("xsltproc" ,libxslt)
        ("python" ,python-2)
@@ -1301,7 +1480,7 @@ wish to perform colour calibration.")
 (define-public libfprint
   (package
     (name "libfprint")
-    (version "1.90.1")
+    (version "1.90.6")
     (source
      (origin
        (method git-fetch)
@@ -1310,7 +1489,7 @@ wish to perform colour calibration.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0fdaak7qjr9b4482g7fhhqpyfdqpxq5kpmyzkp7f5i7qq2ynb78a"))))
+        (base32 "0hagm1i78mrd772y3cinr7bda4myx0v4bixwqnqbxknds8m9h8sg"))))
     (build-system meson-build-system)
     (arguments
      '(#:configure-flags
@@ -1436,7 +1615,7 @@ to applications simultaneously competing for fingerprint readers.")
 (define-public desktop-file-utils
   (package
     (name "desktop-file-utils")
-    (version "0.24")
+    (version "0.26")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://www.freedesktop.org/software/"
@@ -1444,10 +1623,12 @@ to applications simultaneously competing for fingerprint readers.")
                                   "desktop-file-utils-" version ".tar.xz"))
               (sha256
                (base32
-                "1nc3bwjdrpcrkbdmzvhckq0yngbcxspwj2n1r7jr3gmx1jk5vpm1"))))
+                "02bkfi6fyk4c0gh2avd897882ww5zl7qg7bzzf28qb57kvkvsvdj"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("pkg-config" ,pkg-config)))
     (inputs
      `(("glib" ,glib)))
     (home-page "https://www.freedesktop.org/wiki/Software/desktop-file-utils/")
@@ -1620,14 +1801,14 @@ their MIME type.
 (define-public uchardet
   (package
     (name "uchardet")
-    (version "0.0.6")
+    (version "0.0.7")
     (source
       (origin
         (method url-fetch)
         (uri (string-append "https://www.freedesktop.org/software/"
                             name "/releases/" name "-" version ".tar.xz"))
         (sha256
-          (base32 "0q9c02b6nmw41yfsiqsnphgc3f0yg3fj31wkccp47cmwvy634lc3"))))
+          (base32 "1ca51sryhryqz82v4d0graaiqqq5w2f33a9gj83b910xmq499irz"))))
     (build-system cmake-build-system)
     (home-page "https://www.freedesktop.org/wiki/Software/uchardet/")
     (synopsis "Encoding detector library")
diff --git a/gnu/packages/freeipmi.scm b/gnu/packages/freeipmi.scm
index 78ab287c5b..0bb2692461 100644
--- a/gnu/packages/freeipmi.scm
+++ b/gnu/packages/freeipmi.scm
@@ -1,7 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2013 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2015, 2016, 2017, 2020 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -28,14 +28,14 @@
 (define-public freeipmi
   (package
     (name "freeipmi")
-    (version "1.6.5")
+    (version "1.6.6")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://gnu/freeipmi/freeipmi-"
                                  version ".tar.gz"))
              (sha256
               (base32
-               "1ncf1s84752xaq07h36wrxa5ww1167s2bizkww0igxv8djyddwk1"))))
+               "1ava5s0babfwx6dqi87phzyzjjgyah7avhljrxrjwn2cniwh38yg"))))
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags '("--disable-static")))
diff --git a/gnu/packages/ftp.scm b/gnu/packages/ftp.scm
index 273128f631..b178063556 100644
--- a/gnu/packages/ftp.scm
+++ b/gnu/packages/ftp.scm
@@ -2,7 +2,7 @@
 ;;; Copyright © 2014, 2015, 2018 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
-;;; Copyright © 2016, 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2016, 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2017 Rene Saavedra <rennes@openmailbox.org>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -46,7 +46,7 @@
 (define-public lftp
   (package
     (name "lftp")
-    (version "4.9.1")
+    (version "4.9.2")
     (source (origin
               (method url-fetch)
               ;; See https://lftp.tech/get.html for mirrors.
@@ -58,7 +58,7 @@
                                         "ftp/lftp/lftp-" version ".tar.xz")))
               (sha256
                (base32
-                "0jq2g8h1bx06ya9fsja748vwb2qrca4wsfrgi3fmaa8hznpgqsar"))))
+                "03b7y0h3mf4jfq5y8zw6hv9v44z3n6i8hc1iswax96y3z7sc85y5"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
@@ -170,20 +170,25 @@ as required.")
 (define-public libfilezilla
   (package
     (name "libfilezilla")
-    (version "0.16.0")
+    (version "0.24.1")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://download.filezilla-project.org/"
                            "libfilezilla/libfilezilla-" version ".tar.bz2"))
        (sha256
-        (base32 "1fd71vmllzvljff5l5ka5wnzbdsxx4i54dpxpklydmbsqpilnv1v"))))
+        (base32 "1zfnqbn14dx0fl45mfaznr5n5xsxy1kx8z9f80fppbqn37pb9mgx"))))
     (build-system gnu-build-system)
+    (arguments
+     `(#:configure-flags
+       (list "--disable-static")))
     (native-inputs
      `(("cppunit" ,cppunit)
+       ("gettext" ,gettext-minimal)
        ("pkg-config" ,pkg-config)))
     (inputs
-     `(("nettle" ,nettle)))
+     `(("gnutls" ,gnutls)
+       ("nettle" ,nettle)))
     (home-page "https://lib.filezilla-project.org")
     (synopsis "Cross-platform C++ library used by Filezilla client")
     (description
@@ -208,20 +213,21 @@ output.
 (define-public filezilla
   (package
     (name "filezilla")
-    (version "3.42.1")
+    (version "3.50.0")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://download.filezilla-project.org/client/"
                            "FileZilla_" version "_src.tar.bz2"))
        (sha256
-        (base32 "083ycsycwy1szhp3mzf998wsqa74hmdxdsy07x6k81vp2cxjxijg"))))
+        (base32 "042w2f5cf8g9cr7d3m6294ygx7jggcria9502jnql855khk8gnz0"))))
     (build-system gnu-build-system)
     (arguments
       ;; Don't let filezilla phone home to check for updates.
      '(#:configure-flags '("--disable-autoupdatecheck")))
     (native-inputs
-     `(("gettext" ,gettext-minimal)
+     `(("cppunit" ,cppunit)
+       ("gettext" ,gettext-minimal)
        ("pkg-config" ,pkg-config)
        ("xdg-utils" ,xdg-utils)))
     (inputs
diff --git a/gnu/packages/fvwm.scm b/gnu/packages/fvwm.scm
index 470f2e11e3..6509fb38a5 100644
--- a/gnu/packages/fvwm.scm
+++ b/gnu/packages/fvwm.scm
@@ -54,18 +54,11 @@
              (let* ((out (assoc-ref outputs "out"))
                     (xsessions (string-append out "/share/xsessions")))
                (mkdir-p xsessions)
-               (with-output-to-file
-                   (string-append xsessions "/fvwm2.desktop")
-                 (lambda _
-                   (format #t
-                           "[Desktop Entry]~@
-                    Name=FVWM~@
-                    Comment=FVWM~@
-                    Exec=~a/bin/fvwm~@
-                    TryExec=~@*~a/bin/fvwm~@
-                    Icon=~@
-                    Type=Application~%"
-                           out))))
+               (make-desktop-entry-file
+                 (string-append xsessions "/fvwm2.desktop")
+                 #:name "FVWM"
+                 #:exec (string-append out "/bin/" ,name)
+                 #:comment '("FVWM")))
              #t)))))
     (native-inputs
      `(("perl" ,perl)
@@ -86,5 +79,5 @@
     (description
      "FVWM is an extremely powerful ICCCM-compliant multiple virtual desktop
 window manager for the X Window system.")
-    (home-page "http://www.fvwm.org/")
+    (home-page "https://www.fvwm.org/")
     (license gpl2+)))
diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm
index 4740546dbe..fa7875d077 100644
--- a/gnu/packages/game-development.scm
+++ b/gnu/packages/game-development.scm
@@ -5,10 +5,10 @@
 ;;; Copyright © 2015, 2018 Alex Kost <alezost@gmail.com>
 ;;; Copyright © 2015, 2016, 2017 David Thompson <davet@gnu.org>
 ;;; Copyright © 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2016, 2017 Kei Kebreau <kkebreau@posteo.net>
+;;; Copyright © 2016, 2017, 2020 Kei Kebreau <kkebreau@posteo.net>
 ;;; Copyright © 2016, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2016, 2017, 2018 Julian Graham <joolean@gmail.com>
-;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2017 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
 ;;; Copyright © 2017 Peter Mikkelsen <petermikkelsen10@gmail.com>
 ;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net>
@@ -163,21 +163,22 @@ is used in some video games and movies.")
 (define-public deutex
   (package
    (name "deutex")
-   (version "5.2.1")
-   (source (origin
-            (method url-fetch)
-            (uri (string-append "https://github.com/Doom-Utils/deutex"
-                                "/releases/download/v" version "/"
-                                "deutex-" version ".tar.xz"))
-            (sha256
-             (base32
-              "07w3asqxx89wl2wfv1z3cak8v83h3ys3b39mq9qq4gyf3xdhs76n"))))
+   (version "5.2.2")
+   (source
+    (origin
+      (method url-fetch)
+      (uri (string-append "https://github.com/Doom-Utils/deutex"
+                          "/releases/download/v" version "/"
+                          "deutex-" version ".tar.zst"))
+      (sha256
+       (base32 "0psb2za6ldrlak7s8pjvli98ij5yiwjx8j1ms2v7rj9yadx0xv8h"))))
    (build-system gnu-build-system)
    (inputs
     `(("libpng" ,libpng)))
    (native-inputs
     `(("asciidoc" ,asciidoc)
-      ("pkg-config" ,pkg-config)))
+      ("pkg-config" ,pkg-config)
+      ("zstd" ,zstd)))
    (home-page "https://github.com/Doom-Utils/deutex")
    (synopsis "WAD file composer for Doom and related games")
    (description
@@ -277,14 +278,14 @@ PCM data.")
 (define-public gzochi
   (package
     (name "gzochi")
-    (version "0.12")
+    (version "0.13")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://savannah/gzochi/gzochi-"
                                   version ".tar.gz"))
               (sha256
                (base32
-                "0h8yvk7154kd8zdfa9nqy73blrjq2x19kv305jcnwlmm09vvss59"))))
+                "1vcvf04qqzs3q8kaild2x7qvkwc6bwzfsisb78147b8z747j7hj0"))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases (modify-phases %standard-phases
@@ -298,7 +299,7 @@ PCM data.")
     (native-inputs `(("pkgconfig" ,pkg-config)))
     (inputs `(("bdb" ,bdb)
               ("glib" ,glib)
-              ("guile" ,guile-2.2)
+              ("guile" ,guile-3.0)
               ("libmicrohttpd" ,libmicrohttpd)
               ("ncurses" ,ncurses)
               ("sdl" ,sdl)
@@ -317,14 +318,13 @@ provide connectivity for client applications written in any language.")
 (define-public nml
   (package
     (name "nml")
-    (version "0.5.2")
+    (version "0.5.3")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "nml" version))
        (sha256
-        (base32
-         "1lwf5sc5qqzrkxfx5wkkj3yh2j2nzh5r599ly5psy8yw92km24hy"))))
+        (base32 "0l5pfs8q7jrl3xscqq7pnwh5h5d17fsyjy7xspkc73sa0ayjm9jx"))))
     (build-system python-build-system)
     ;; TODO: Fix test that fails with
     ;; "AttributeError: partially initialized module 'nml.nmlop' has no
@@ -342,26 +342,22 @@ compiling NML files (along with their associated language, sound and graphic
 files) into @file{.grf} and/or @file{.nfo} files.")
     (license license:gpl2+)))
 
-(define-public python-sge-pygame
+(define-public python-sge
   (package
-    (name "python-sge-pygame")
-    (version "1.5.1")
+    (name "python-sge")
+    (version "1.7")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "mirror://savannah/stellarengine/"
-                           (version-major+minor version) "/sge-pygame-"
-                           version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (uri (pypi-uri "sge" version))
        (sha256
         (base32
-         "1rl3xjzh78sl0sq3xl8rl7cgp9v9v3h7s2pfwn7nj1vrmffzkcpd"))))
+         "02fn6v6bxk3sngwd4kd3mglrp0jlnhx7x6h8nnkik6wdv150a0wv"))))
     (build-system python-build-system)
     (propagated-inputs
      `(("python-pygame" ,python-pygame)
-       ("python-six" ,python-six)
        ("python-uniseg" ,python-uniseg)))
-    (home-page "http://stellarengine.nongnu.org")
+    (home-page "https://python-sge.github.io/")
     (synopsis "2D game engine for Python")
     (description
      "The SGE Game Engine (\"SGE\", pronounced like \"Sage\") is a
@@ -370,8 +366,8 @@ 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 python2-sge-pygame
-  (package-with-python2 python-sge-pygame))
+(define-public python-sge-pygame
+  (deprecated-package "python-sge-pygame" python-sge))
 
 (define-public python-tmx
   (package
@@ -412,14 +408,15 @@ levels.")
 (define-public python-xsge
   (package
     (name "python-xsge")
-    (version "2018.02.26")
+    (version "2020.09.07")
     (source (origin
               (method url-fetch)
-              (uri (string-append "mirror://savannah/xsge/xsge/xsge-"
-                                  version ".tar.gz"))
+              (uri (string-append "https://github.com/python-sge/xsge"
+                                  "/releases/download/v" version
+                                  "/xsge-" version ".zip"))
               (sha256
                (base32
-                "0bx93hgf7cgdw2gsygbh59y8vpw37pgsa279rajw3fkdpl8vrc40"))))
+                "136xgy3f9vw636wxpqbha022avk0wyxw63mm3a2dvwhh90s716f9"))))
     (build-system python-build-system)
     (arguments
      '(#:phases
@@ -432,12 +429,11 @@ levels.")
                      (string-append "--prefix=" (assoc-ref outputs "out"))
                      "--root=/"))))
        #:tests? #f)) ; no check target
+    (native-inputs
+     `(("unzip" ,unzip)))
     (propagated-inputs
-     `(("python-sge-pygame" ,python-sge-pygame)
-       ("python-pygame" ,python-pygame)
-       ("python-six" ,python-six)
-       ("python-tmx" ,python-tmx)))
-    (home-page "http://xsge.nongnu.org")
+     `(("python-sge" ,python-sge)))
+    (home-page "https://python-sge.github.io/")
     (synopsis "Extensions for the SGE Game Engine")
     (description
      "xSGE is a collection of modules that make doing certain tasks with the SGE
@@ -446,13 +442,10 @@ GUI toolkit, lighting and physics frameworks and @code{Tiled} TMX format
 support.")
     (license license:gpl3+)))
 
-(define-public python2-xsge
-  (package-with-python2 python-xsge))
-
 (define-public tiled
   (package
     (name "tiled")
-    (version "1.2.5")
+    (version "1.4.3")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -461,10 +454,11 @@ support.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "14v2zfka2y3h0r0biw1rl59585lji5074x958s4xnb352jm5h9b9"))))
+                "14bx4gywfzr2f07ldqk3la82g5ag1agj21f7ccrxip12ydmpx0xb"))))
     (build-system gnu-build-system)
     (inputs
      `(("qtbase" ,qtbase)
+       ("qtdeclarative" ,qtdeclarative)
        ("qtsvg" ,qtsvg)
        ("zlib" ,zlib)))
     (native-inputs
@@ -493,6 +487,35 @@ clone.")
     ;; under BSD-2.
     (license license:gpl2+)))
 
+(define-public tsukundere
+  (package
+    (name "tsukundere")
+    (version "0.2.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://gitlab.com/leoprikler/tsukundere")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0qmqch8hh7vsa8qaz853vwbkz0krb106955dnz8dsl7skbm5jpn6"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("autoconf" ,autoconf-wrapper)
+       ("automake" ,automake)
+       ("guile" ,guile-3.0)
+       ("pkg-config" ,pkg-config)))
+    (propagated-inputs
+     `(("guile-sdl2" ,guile3.0-sdl2)))
+    (home-page "https://gitlab.com/leoprikler/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
+experimental and at the time of writing contains little more than the Guile
+modules, that make up its runtime.")
+    (license license:lgpl3+)))
+
 (define-public sfml
   (package
     (name "sfml")
@@ -588,7 +611,7 @@ sounds from presets such as \"explosion\" or \"powerup\".")
 (define-public surgescript
   (package
     (name "surgescript")
-    (version "0.5.4.3")
+    (version "0.5.4.4")
     (source
      (origin
        (method git-fetch)
@@ -597,7 +620,7 @@ sounds from presets such as \"explosion\" or \"powerup\".")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "13q81439zg1bn7gskligskjgcfq0rdapp6f3llmrlk48vnyq49s0"))))
+        (base32 "1vck1wk6r6jrrw5xzpqldplz601dfgpk5s5p45fam00nfsid0p7p"))))
      (build-system cmake-build-system)
      (arguments
       '(#:configure-flags
@@ -1049,7 +1072,14 @@ 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 "1bmr7j9mlsc4czpgw70ld15ymyp4wxrk9hdsqad40wjwdxvvg2dr"))))
+         (sha256 (base32 "1bmr7j9mlsc4czpgw70ld15ymyp4wxrk9hdsqad40wjwdxvvg2dr"))
+         (modules '((guix build utils)))
+         (snippet
+          '(begin
+             ;; drop generated sources
+             (delete-file-recursively "gen")
+             (delete-file-recursively "gen3")
+             #t))))
       (build-system python-build-system)
       (arguments
        `(#:tests? #f                ; tests require pygame to be installed first
@@ -1068,11 +1098,6 @@ to create fully featured games and multimedia programs in the python language.")
                                       "/lib -Wl,-rpath,"
                                       (assoc-ref inputs "sdl-union")
                                       "/lib -Wl,--enable-new-dtags -lSDL2"))
-               #t))
-           (add-before 'build 'drop-generated-files
-             (lambda args
-               (delete-file-recursively "gen")
-               (delete-file-recursively "gen3")
                #t)))))
       (inputs
        `(("sdl-union"
@@ -1096,7 +1121,18 @@ developed mainly for Ren'py.")
        (method url-fetch)
        (uri (string-append "https://www.renpy.org/dl/" version
                            "/renpy-" version "-source.tar.bz2"))
-       (sha256 (base32 "1anr5cfbvbsbik4v4rvrkdkciwhg700k4lydfbs4n85raimz9mw4"))))
+       (sha256 (base32 "1anr5cfbvbsbik4v4rvrkdkciwhg700k4lydfbs4n85raimz9mw4"))
+       (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))))
     (build-system python-build-system)
     (arguments
      `(#:tests? #f ; Ren'py doesn't seem to package tests
@@ -1109,6 +1145,13 @@ developed mainly for Ren'py.")
                (("xdg-open")
                 (which "xdg-open")))
              #t))
+         (add-after 'unpack 'fix-include-paths
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "module/setup.py"
+               (("/usr/include/fribidi")
+                (string-append (assoc-ref inputs "fribidi")
+                               "/include/fribidi")))
+             #t))
          (add-after 'set-paths 'set-build-vars
            (lambda* (#:key inputs #:allow-other-keys)
              (setenv "RENPY_CYTHON"
@@ -1146,6 +1189,7 @@ developed mainly for Ren'py.")
     (inputs
      `(("ffmpeg" ,ffmpeg)
        ("freetype" ,freetype)
+       ("fribidi" ,fribidi)
        ("glew" ,glew)
        ("libpng" ,libpng)
        ("python2-pygame" ,python2-pygame-sdl2)
@@ -1535,7 +1579,7 @@ games.")
 (define-public godot
   (package
     (name "godot")
-    (version "3.2.2")
+    (version "3.2.3")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -1544,7 +1588,7 @@ games.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1libz83mbyrkbbsmmi8z2rydv3ls0w9r4vb5v6diqqwn7ka8z804"))
+                "19vrp5lhyvxbm6wjxzn28sn3i0s8j08ca7nani8l1nrhvlc8wi0v"))
               (modules '((guix build utils)
                          (ice-9 ftw)
                          (srfi srfi-1)))
@@ -1742,61 +1786,23 @@ a 2D editor view.")
 (define-public guile-chickadee
   (package
     (name "guile-chickadee")
-    (version "0.5.0")
+    (version "0.6.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://files.dthompson.us/chickadee/"
                                   "chickadee-" version ".tar.gz"))
               (sha256
                (base32
-                "0y3s0p4zyghys48sayfhcbmxmflh8hwawnx5an2jlb3x84yr0dsx"))))
+                "1jv4jkc35b7rizz8iflh74hhk9qy665isn1xa6gqz0qp9grwb019"))))
     (build-system gnu-build-system)
     (arguments
      '(#:make-flags '("GUILE_AUTO_COMPILE=0")))
     (propagated-inputs
-     `(("guile-opengl" ,guile-opengl)
-       ("guile-sdl2" ,guile-sdl2)))
-    (inputs
-     `(("guile" ,guile-2.2)
-       ("libvorbis" ,libvorbis)
-       ("mpg123" ,mpg123)
-       ("openal" ,openal)))
-    (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("texinfo" ,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
-built on top of SDL2 and OpenGL.  Chickadee aims to provide all the features
-that parenthetically inclined game developers need to make 2D (and eventually
-3D) games in Scheme, such as:
-
-@enumerate
-@item extensible, fixed-timestep game loop
-@item OpenGL-based rendering engine
-@item keyboard, mouse, controller input
-@item REPL-driven development model
-@end enumerate\n")
-    (license license:gpl3+)))
-
-(define-public guile3.0-chickadee
-  (package
-    (inherit guile-chickadee)
-    (name "guile3.0-chickadee")
-    (version "0.5.0")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://files.dthompson.us/chickadee/"
-                                  "chickadee-" version ".tar.gz"))
-              (sha256
-               (base32
-                "0y3s0p4zyghys48sayfhcbmxmflh8hwawnx5an2jlb3x84yr0dsx"))))
-    (build-system gnu-build-system)
-    (propagated-inputs
      `(("guile-opengl" ,guile3.0-opengl)
        ("guile-sdl2" ,guile3.0-sdl2)))
     (inputs
-     `(("guile" ,guile-3.0)
+     `(("freetype" ,freetype)
+       ("guile" ,guile-3.0)
        ("libvorbis" ,libvorbis)
        ("mpg123" ,mpg123)
        ("openal" ,openal)))
@@ -1818,10 +1824,13 @@ 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")
-    (version "348")
+    (version "353")
     (source (origin
               (method svn-fetch)
               (uri (svn-reference
@@ -1830,7 +1839,7 @@ that parenthetically inclined game developers need to make 2D (and eventually
               (file-name (string-append name "-" version))
               (sha256
                (base32
-                "0wpzsbh4zi3931493dnyl5ffmh1b7fj2sx3mzrq304z9zs4d6lqq"))
+                "1iri58ryk9lbqn585cbccnvrfkj8qxlbcsk8rpih40jhvs1j101l"))
               (modules '((guix build utils)))
               (snippet
                '(begin
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 8e4aa0742b..be7a3cc181 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -2,7 +2,7 @@
 ;;; Copyright © 2013 John Darrington <jmd@gnu.org>
 ;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
 ;;; Copyright © 2014, 2016 David Thompson <dthompson2@worcester.edu>
-;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020 Eric Bavier <bavier@posteo.net>
+;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Eric Bavier <bavier@posteo.net>
 ;;; Copyright © 2014 Cyrill Schenkel <cyrill.schenkel@gmail.com>
 ;;; Copyright © 2014 Sylvain Beucler <beuc@beuc.net>
 ;;; Copyright © 2014, 2015, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
@@ -17,20 +17,20 @@
 ;;; Copyright © 2016, 2017 Rodger Fox <thylakoid@openmailbox.org>
 ;;; Copyright © 2016, 2017, 2018 Nikita <nikita@n0.is>
 ;;; Copyright © 2016 Albin Söderqvist <albin@fripost.org>
-;;; Copyright © 2016, 2017, 2018, 2019 Kei Kebreau <kkebreau@posteo.net>
+;;; Copyright © 2016, 2017, 2018, 2019, 2020 Kei Kebreau <kkebreau@posteo.net>
 ;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
 ;;; Copyright © 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
 ;;; Copyright © 2016 Steve Webber <webber.sl@gmail.com>
 ;;; Copyright © 2017 Adonay "adfeno" Felipe Nogueira <https://libreplanet.org/wiki/User:Adfeno> <adfeno@hyperbola.info>
 ;;; Copyright © 2017, 2018, 2020 Arun Isaac <arunisaac@systemreboot.net>
-;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2017, 2019 nee <nee-git@hidamari.blue>
 ;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
 ;;; Copyright © 2017, 2019, 2020 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2017, 2018 Rutger Helling <rhelling@mykolab.com>
 ;;; Copyright © 2017 Roel Janssen <roel@gnu.org>
-;;; Copyright © 2017, 2018, 2019, 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;; Copyright © 2017, 2018, 2019, 2020, 2021 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;; Copyright © 2018 okapi <okapi@firemail.cc>
 ;;; Copyright © 2018 Tim Gesthuizen <tim.gesthuizen@yahoo.de>
 ;;; Copyright © 2018 Madalin Ionel-Patrascu <madalinionel.patrascu@mdc-berlin.de>
@@ -54,6 +54,8 @@
 ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
 ;;; Copyright © 2020 Trevor Hass <thass@okstate.edu>
 ;;; Copyright © 2020 Leo Prikler <leo.prikler@student.tugraz.at>
+;;; Copyright © 2020 Lu hux <luhux@outlook.com>
+;;; Copyright © 2020 Tomás Ortín Fernández <tomasortin@mailbox.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -96,6 +98,7 @@
   #:use-module (gnu packages check)
   #:use-module (gnu packages cmake)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages cpp)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages crypto)
   #:use-module (gnu packages cyrus-sasl)
@@ -116,6 +119,7 @@
   #:use-module (gnu packages gl)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
+  #:use-module (gnu packages gnu-doc)
   #:use-module (gnu packages gnupg)
   #:use-module (gnu packages gnuzilla)
   #:use-module (gnu packages gperf)
@@ -130,6 +134,7 @@
   #:use-module (gnu packages icu4c)
   #:use-module (gnu packages image)
   #:use-module (gnu packages imagemagick)
+  #:use-module (gnu packages javascript)
   #:use-module (gnu packages kde)
   #:use-module (gnu packages kde-frameworks)
   #:use-module (gnu packages less)
@@ -385,15 +390,17 @@ The game includes a built-in editor so you can design and share your own maps.")
 (define-public armagetronad
   (package
     (name "armagetronad")
-    (version "0.2.8.3.5")
+    (version "0.2.9.0.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://sourceforge/armagetronad/stable/"
-                                  version "/armagetronad-" version ".src.tar.gz"))
+                                  version "/armagetronad-" version ".tbz"))
               (sha256
                (base32
-                "1z266haq22n5b0733h7qsg1rpzhz8lvm82f7wd06r008iiar7jdl"))))
+                "19rfhlg4gp0r7k1j8v4iw20325ciy156nmzax4xikmw22c6nmxcz"))))
     (build-system gnu-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
     (inputs
      `(("libxml2" ,libxml2)
        ("sdl" ,sdl)
@@ -427,7 +434,9 @@ physics settings to tweak as well.")
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f                      ;no test
-       #:configure-flags '("-DDATADIR=share/astromenace")
+       #:configure-flags (list (string-append "-DDATADIR="
+                                              (assoc-ref %outputs "out")
+                                              "/share/astromenace"))
        #:phases
        (modify-phases %standard-phases
          (replace 'install
@@ -585,6 +594,139 @@ possible, while battling many vicious aliens.")
                    license:lgpl2.1+
                    license:bsd-2))))
 
+(define-public bsd-games
+  (package
+    (name "bsd-games")
+    (version "2.17.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri "https://ibiblio.org/pub/linux/games/bsd-games-2.17.tar.gz")
+       (sha256
+        (base32 "0q7zdyyfvn15y0w4g54kq3gza89h61py727m8slmw73cxx594vq6"))
+       (patches
+        (search-patches
+         ;; thanks Arch, and Debian
+         "bsd-games-2.17-64bit.patch"
+         "bsd-games-bad-ntohl-cast.patch"
+         "bsd-games-gamescreen.h.patch"
+         "bsd-games-getline.patch"
+         "bsd-games-null-check.patch"
+         "bsd-games-number.c-and-test.patch"
+         "bsd-games-stdio.h.patch"
+         "bsd-games-prevent-name-collisions.patch"
+         ;; Guix customizations
+         "bsd-games-add-configure-config.patch"
+         "bsd-games-dont-install-empty-files.patch"
+         "bsd-games-add-wrapper.patch"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("flex" ,flex)
+       ("bison" ,bison)))
+    (inputs
+     `(("curses" ,ncurses)
+       ("pager" ,less)
+       ("miscfiles" ,miscfiles)
+       ("openssl" ,openssl)))           ;used only by 'factor'
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'configure
+           (lambda* (#:key outputs inputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (bin (string-append out "/bin"))
+                    (doc (string-append out "/share/doc/bsd-games-" ,version))
+                    (man (string-append out "/share/man"))
+                    (word-list (string-append (assoc-ref inputs "miscfiles")
+                                              "/share/web2"))
+                    (static-data (string-append out "/share/games/bsd-games"))
+                    ;; Not a "./" because of substitute* in 'patch-install
+                    ;; below.  The .// allow us not to mess with the games'
+                    ;; code any further: we just use a wrapper script that
+                    ;; cd's to a BSD_GAMES_DIR.  :]
+                    (save-files ".//"))
+               (substitute* "configure"
+                 (("/usr/share/man") man)
+                 (("/usr/share/doc/bsd-games") doc)
+                 (("/usr/share/[^\n/]*") static-data)
+                 (("/var/games") save-files)
+                 (("/usr/bin/less") (which "less"))
+                 (("(/usr/bin|/usr/games)") bin))
+               (substitute* "config.params" (("WORD_LIST") word-list))
+               (substitute* "wrapper" (("STATIC_DATA") static-data))
+               (invoke "./configure"))
+             #t))
+         (add-before 'install 'patch-install
+           ;; Some games need a writable directory containing pre-maded files.
+           ;; The files get installed to the Store.  Then the wrapper kicks in.
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (static-data (string-append out "/share/games/bsd-games"))
+                    (save-files ".//"))
+               (substitute* "Makeconfig" ((save-files) static-data)))
+             #t))
+         (add-after 'install 'install-documents
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (doc (string-append out "/share/doc/bsd-games-" ,version)))
+               (rename-file "phantasia/COPYRIGHT" "phantasia-COPYRIGHT")
+               (for-each
+                (lambda(file) (install-file file doc))
+                '("AUTHORS" "BUGS" "README" "SECURITY" "THANKS"
+                  "phantasia-COPYRIGHT")))
+             #t)))))
+    (home-page "https://github.com/vattam/BSDGames")
+    (synopsis "Collection of the old text-based games and amusements")
+    (description
+     "These are the BSD games.  See the fortune-mod package for fortunes.
+
+Action: atc (keep the airplanes safe), hack (explore the dangerous Dungeon),
+hunt (kill the others for the Pair of Boots, multi-player only), robots (avoid
+the evil robots), sail (game of naval warfare with wooden ships), snake (steal
+the $$ from the cave, anger the snake, and get out alive), tetris (game of
+lining up the falling bricks of different shapes), and worm (eat, grow big,
+and neither bite your tail, nor ram the wall).
+
+Amusements: banner (prints a large banner), bcd & morse & ppt (print a punch
+card, or paper tape, or Morse codes), caesar & rot13 (ciphers and deciphers
+the input), factor (factorizes a number), number (translates numbers into
+text), pig (translates from English to Pig Latin), pom (should print the
+Moon's phase), primes (generates primes), rain & worms (plays an screen-saver
+in terminal), random (prints randomly chosen lines from files, or returns a
+random exit-code), and wtf (explains what do some acronyms mean).
+
+Board: backgammon (lead the men out of board faster than the friend do),
+boggle (find the words in the square of letters), dab (game of dots and
+boxes), gomoku (game of five in a row), hangman (guess a word before man is
+hanged), and monop (game of monopoly, hot-seat only).  Also the card-games:
+canfield, cribbage, fish (juniors game), and mille.
+
+Quests: adventure (search for treasures with the help of wizard),
+battlestar (explore the world around, starting from dying spaceship),
+phantasia (role-play as an rogue), trek (hunt the Klingons, and save the
+Federation), and wump (hunt the big smelly Wumpus in a dark cave).
+
+Quizes: arithmetic, and quiz.")
+    ;; "Auxiliary and data files, distributed with the games in NetBSD, but
+    ;; not bearing copyright notices, probably fall under the terms of the UCB
+    ;; or NetBSD copyrights and licences.  The file "fortune/Notes" contains a
+    ;; warning in regard to the fortune databases."
+    (license (list
+              ;; Most games.  Files: countmail/countmail.6, dab/dab.6,
+              ;; lib/strlcpy.c, wargames/wargames.6
+              license:bsd-3
+              ;; dab and hunt.  Files: adventure/extern.h,
+              ;; backgammon/backgammon/backlocal.h, caesar/rot13.in,
+              ;; countmail/countmail, dm/utmpentry.c, dm/utmpentry.h,
+              ;; hack/extern.h, robots/auto.c, sail/display.h,
+              ;; sail/restart.h, wargames/wargames
+              license:bsd-4
+              ;; wtf (the game)
+              license:public-domain
+              ;; phantasia (all but phantasia/pathnames.h.in, which is bsd-3)
+              (license:fsf-free "file:///phantasia/COPYRIGHT")))))
+
+
 (define-public bzflag
   (package
     (name "bzflag")
@@ -653,7 +795,7 @@ high a score as possible.")
 (define-public cataclysm-dda
   (package
     (name "cataclysm-dda")
-    (version "0.E-2")
+    (version "0.E-3")
     (source
      (origin
        (method git-fetch)
@@ -661,7 +803,7 @@ high a score as possible.")
              (url "https://github.com/CleverRaven/Cataclysm-DDA")
              (commit version)))
        (sha256
-        (base32 "15l6w6lxays7qmsv0ci2ry53asb9an9dh7l7fc13256k085qcg68"))
+        (base32 "108cs6vp99qmqqfnmczad0xjgcl82bypm5xszwnlfcswdsrfs4da"))
        (file-name (git-file-name name version))))
     (build-system gnu-build-system)
     (arguments
@@ -1078,7 +1220,7 @@ effects and music to make a completely free game.")
        ("sdl-image" ,sdl-image)
        ("sdl-mixer" ,sdl-mixer)
        ("zlib" ,zlib)))
-    (home-page "http://www.freedroid.org/")
+    (home-page "https://www.freedroid.org/")
     (synopsis "Isometric role-playing game against killer robots")
     (description
      "Freedroid RPG is an @dfn{RPG} (Role-Playing Game) with isometric graphics.
@@ -1182,7 +1324,7 @@ automata.  The following features are available:
 (define-public julius
   (package
     (name "julius")
-    (version "1.4.1")
+    (version "1.6.0")
     (source
      (origin
        (method git-fetch)
@@ -1191,7 +1333,7 @@ automata.  The following features are available:
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "12hhnhdwgz7hd3hlndbnk15pxggm1375qs0764ija4nl1gbpb110"))
+        (base32 "0nfdn8n6ywhm69ckz9a1chl5xxiqyaj3l337wadsbppnpscjihrc"))
        ;; Remove unused bundled libraries.
        (modules '((guix build utils)))
        (snippet
@@ -1218,7 +1360,7 @@ does not include game data.")
   (package
     (inherit julius)
     (name "augustus")
-    (version (package-version julius))
+    (version "2.0.1")
     (source
      (origin
        (method git-fetch)
@@ -1227,7 +1369,7 @@ does not include game data.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0ii0w0iwa9zv5bbqfcps5mxifd796m6fw4gvjf09pkm3yjgqc0ag"))
+        (base32 "0czazw8mc3fbvdazs2nzvgxd1dpzjc8z5fwiv89vv4nd7laz3jkj"))
        ;; Remove unused bundled libraries.
        (modules '((guix build utils)))
        (snippet
@@ -1401,7 +1543,7 @@ destroying an ancient book using a special wand.")
 (define-public gnome-chess
   (package
     (name "gnome-chess")
-    (version "3.36.1")
+    (version "3.37.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/gnome-chess/"
@@ -1409,7 +1551,7 @@ destroying an ancient book using a special wand.")
                                   "gnome-chess-" version ".tar.xz"))
               (sha256
                (base32
-                "165bk8s3nngyqbikggspj4rff5nxxfkfcmgzjb4grmsrgbqwk5di"))))
+                "09axf0q1mp13sv8cs0syfg8ahcd9r2qb26278r09j6s4njxmkfv4"))))
     (build-system meson-build-system)
     (arguments
      '(#:glib-or-gtk? #t
@@ -1466,7 +1608,14 @@ such as chess or stockfish.")
     (native-inputs `(("python-2" ,python-2)
                      ("pkg-config" ,pkg-config)))
     (arguments
-     `(#:phases
+     `(#:configure-flags
+       ;; SSE instructions are available on Intel systems only.
+       (list ,@(if (any (cute string-prefix? <> (or (%current-target-system)
+                                                    (%current-system)))
+                        '("x86_64" "i686"))
+                   '("--enable-simd=sse2") ; prevent avx instructions
+                   '()))
+       #:phases
        (modify-phases %standard-phases
          (add-after 'install 'install-desktop-file
            (lambda* (#:key outputs #:allow-other-keys)
@@ -1558,14 +1707,14 @@ Chess).  It is similar to standard chess but this variant is far more complicate
 (define-public ltris
   (package
     (name "ltris")
-    (version "1.2")
+    (version "1.2.1")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://sourceforge/lgames/ltris/"
                            "ltris-" version ".tar.gz"))
        (sha256
-        (base32 "15b18p7id55xiz2jkf56w2f1g6yw1rcb98bpa188i6skqrgnrg57"))))
+        (base32 "0959vvxh5xnxzpdv7i67lpd2b6ghx69z65ldnclj1z6llyfzfs7q"))))
     (build-system gnu-build-system)
     (arguments
      '(;; The code in LTris uses traditional GNU semantics for inline functions
@@ -1730,8 +1879,8 @@ role, and your gender.")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "http://downloads.sourceforge.net/pipewalker/"
-                           "pipewalker-" version ".tar.gz"))
+       (uri (string-append "mirror://sourceforge/pipewalker/pipewalker/"
+                           version "/pipewalker-" version ".tar.gz"))
        (sha256
         (base32 "1x46wgk0s55562pd96cxagxkn6wpgglq779f9b64ff1k3xzp3myn"))))
     (build-system gnu-build-system)
@@ -1809,63 +1958,63 @@ Every puzzle has a complete solution, although there may be more than one.")
    (license license:gpl2+)))
 
 (define-public retux
-  (package
-    (name "retux")
-    (version "1.3.6")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://savannah/retux/"
-                                  (version-major+minor version) "/retux-"
-                                  version "-src.tar.gz"))
-              (sha256
-               (base32
-                "01bidh4zisjp3nc436x0g85v60dvwb3ig37i7y01sa71j8fm4fmb"))))
-    (build-system python-build-system)
-    (arguments
-     `(#:tests? #f ; no check target
-       #:phases
-       (modify-phases %standard-phases
-         ;; no setup.py script
-         (delete 'build)
-         (replace 'install
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let* ((out    (assoc-ref outputs "out"))
-                    (bin    (string-append out "/bin"))
-                    (data   (string-append out "/share/retux"))
-                    (doc    (string-append out "/share/doc/retux")))
-               (mkdir-p bin)
-
-               (substitute* "retux.py"
-                 ;; Use the correct data directory.
-                 (("os\\.path\\.join\\(os\\.path\\.dirname\\(__file__\\), \"data\"\\),")
-                  (string-append "\"" data "\","))
-                 ;; Use Python 3 so the patch-shebangs phase works properly.
-                 ((".*python2.*") "#!/usr/bin/python3"))
-
-               (copy-file "retux.py" (string-append bin "/retux"))
+  (let ((release "1.4.1")
+        (revision 1))
+    (package
+      (name "retux")
+      (version (if (zero? revision)
+                   release
+                   (string-append release "-"
+                                  (number->string revision))))
+      (source (origin
+                (method url-fetch)
+                (uri (string-append "https://github.com/retux-game/retux/"
+                                    "releases/download/v"
+                                    version "/retux-"
+                                    release "-src.tar.gz"))
+                (sha256
+                 (base32
+                  "1vrldg2qh2gqfswj7vkpc589ldrrjd903j6cnfdik9zh0jhlq4h2"))))
+      (build-system python-build-system)
+      (arguments
+       `(#:tests? #f                    ; no check target
+         #:phases
+         (modify-phases %standard-phases
+           ;; no setup.py script
+           (delete 'build)
+           (replace 'install
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let* ((out    (assoc-ref outputs "out"))
+                      (bin    (string-append out "/bin"))
+                      (data   (string-append out "/share/retux")))
+                 (mkdir-p bin)
 
-               (copy-recursively "data" data)
+                 (substitute* "retux.py"
+                   ;; Use the correct data directory.
+                   (("os\\.path\\.join\\(os\\.path\\.dirname\\(__file__\\), \"data\"\\),")
+                    (string-append "\"" data "\",")))
 
-               (install-file "COPYING" doc)
-               #t))))))
-    (inputs
-     `(("python-sge-pygame" ,python-sge-pygame)
-       ("python-six" ,python-six)
-       ("python-xsge" ,python-xsge)))
-    (home-page "http://retux.nongnu.org")
-    (synopsis "Action platformer game")
-    (description
-     "ReTux is an action platformer loosely inspired by the Mario games,
+                 (copy-file "retux.py" (string-append bin "/retux"))
+                 (copy-recursively "data" data)
+                 #t))))))
+      (inputs
+       `(("python-sge-pygame" ,python-sge-pygame)
+         ("python-six" ,python-six)
+         ("python-xsge" ,python-xsge)))
+      (home-page "https://retux-game.github.io/")
+      (synopsis "Action platformer game")
+      (description
+       "ReTux is an action platformer loosely inspired by the Mario games,
 utilizing the art assets from the @code{SuperTux} project.")
-    ;; GPL version 3 or later is the license for the code and some art.
-    ;; The rest of the licenses are for the art exclusively, as listed in
-    ;; data/LICENSES.
-    (license (list license:cc0
-                   license:cc-by3.0
-                   license:cc-by-sa3.0
-                   license:cc-by-sa4.0
-                   license:gpl2+
-                   license:gpl3+))))
+      ;; GPL version 3 or later is the license for the code and some art.
+      ;; The rest of the licenses are for the art exclusively, as listed in
+      ;; data/LICENSES.
+      (license (list license:cc0
+                     license:cc-by3.0
+                     license:cc-by-sa3.0
+                     license:cc-by-sa4.0
+                     license:gpl2+
+                     license:gpl3+)))))
 
 (define-public roguebox-adventures
   (package
@@ -1979,7 +2128,7 @@ can be explored and changed freely.")
 (define-public seahorse-adventures
   (package
     (name "seahorse-adventures")
-    (version "1.2")
+    (version "1.3")
     (source
      (origin
        (method git-fetch)
@@ -1988,7 +2137,7 @@ can be explored and changed freely.")
              (commit (string-append "release-" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1rnvk06npaqcpjz5z6xcmssz61i32s422lydp49vrnf3j2g4yimd"))
+        (base32 "0m53jh2gchzr7rs35hml6lbvc5kb5hp229wlfqa09098b7hhl15a"))
        (modules '((guix build utils)
                   (ice-9 ftw)
                   (srfi srfi-1)))
@@ -2088,6 +2237,100 @@ and defeat them with your bubbles!")
     ;; GPL2+ is for code, CC0 is for art.
     (license (list license:gpl2+ license:cc0))))
 
+(define-public solarus
+  (package
+    (name "solarus")
+    ;; XXX: When updating this package, please also update hash in
+    ;; `solarus-quest-editor' below.
+    (version "1.6.4")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://gitlab.com/solarus-games/solarus")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1n6l91yyqjx0pz4w1lp3yybpq0fs2yjswfcm8c1wjfkxwiznbdxi"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'disable-failing-tests
+           ;; The following tests fail reporting a missing "/dev/dri"
+           ;; file.
+           (lambda _
+             (substitute* "tests/cmake/AddTestMaps.cmake"
+               ((".*1200_create_shader_from_source.*" all)
+                (string-append "#" all))
+               ((".*1210_shader_scaling_factor.*" all)
+                (string-append "#" all)))
+             #t))
+         (add-before 'check 'set-home
+           ;; Tests fail without setting the following environment
+           ;; variables.
+           (lambda _
+             (setenv "HOME" (getcwd))
+             (setenv "XDG_RUNTIME_DIR" (getcwd))
+             #t)))))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("qttools" ,qttools)))
+    (inputs
+     `(("glm" ,glm)
+       ("libmodplug" ,libmodplug)
+       ("libogg" ,libogg)
+       ("libvorbis" ,libvorbis)
+       ("luajit" ,luajit)
+       ("openal" ,openal)
+       ("physfs" ,physfs)
+       ("qtbase" ,qtbase)
+       ("sdl2" ,(sdl-union (list sdl2 sdl2-image sdl2-ttf)))))
+    (home-page "https://www.solarus-games.org/")
+    (synopsis "Lightweight game engine for Action-RPGs")
+    (description
+     "Solarus is a 2D game engine written in C++, that can run games
+scripted in Lua.  It has been designed with 16-bit classic Action-RPGs
+in mind.")
+    ;; The source code is licensed under the terms of GPL-3.0.
+    ;; Resources are licensed under the terms of CC-BY-SA-3.0 and
+    ;; CC-BY-SA 4.0.
+    (license (list license:gpl3 license:cc-by-sa3.0 license:cc-by-sa4.0))))
+
+(define-public solarus-quest-editor
+  (package
+    (inherit solarus)
+    (name "solarus-quest-editor")
+    (version (package-version solarus))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://gitlab.com/solarus-games/solarus-quest-editor")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1qbc2j9kalk7xqk9j27s7wnm5zawiyjs47xqkqphw683idmzmjzn"))))
+    (arguments
+     `(#:tests? #false                  ;no test
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-qt-build
+           ;; XXX: Fix build with Qt 5.15.  It has been applied upstream as
+           ;; 81d5c7f1 and can be removed at next upgrade.
+           (lambda _
+             (substitute* "src/entities/jumper.cpp"
+               (("#include <QPainter>" all)
+                (string-append all "\n" "#include <QPainterPath>\n")))
+             #t)))))
+    (inputs
+     `(("solarus" ,solarus)
+       ,@(package-inputs solarus)))
+    (synopsis "Create and modify quests for the Solarus engine")
+    (description
+     "Solarus Quest Editor is a graphical user interface to create and
+modify quests for the Solarus engine.")))
+
 (define-public superstarfighter
   (package
     (name "superstarfighter")
@@ -2216,6 +2459,93 @@ available, as well as a single-player mode with AI-controlled ships.")
            "$(call ZIP) -X"))
         #t))))
 
+(define-public trigger-rally
+  (package
+    (name "trigger-rally")
+    (version "0.6.6.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://sourceforge/trigger-rally/"
+                           "trigger-" version "/"
+                           "trigger-rally-" version ".tar.gz"))
+       (sha256
+        (base32
+         "016bc2hczqscfmngacim870hjcsmwl8r3aq8x03vpf22s49nw23z"))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("freealut" ,freealut)
+       ("glew" ,glew)
+       ("glu" ,glu)
+       ("mesa" ,mesa)
+       ("openal" ,openal)
+       ("physfs" ,physfs)
+       ("sdl" ,(sdl-union (list sdl2 sdl2-image)))
+       ("tinyxml2" ,tinyxml2)))
+    (arguments
+     `(#:make-flags (list (string-append "prefix=" %output)
+                          "bindir=$(prefix)/bin"
+                          "datadir=$(datarootdir)"
+                          "OPTIMS=-Ofast")
+       #:tests? #f                      ; No tests present
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (add-before 'build 'cd-src
+           (lambda _ (chdir "src")))
+         (add-before 'build 'remove-timestamps
+           (lambda _
+             (substitute* (list "Trigger/menu.cpp"
+                                "PEngine/app.cpp")
+               ((".*__DATE__.*") ""))))
+         (add-before 'build 'make-verbose
+           (lambda _
+             (substitute* "GNUmakefile"
+               (("@\\$\\(CXX\\)") "$(CXX)"))))
+         (add-after 'build 'set-data-path
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (substitute* "../bin/trigger-rally.config.defs"
+                 (("<data path=\"C:[^\"]*\"")
+                  (string-append "<data path=\"" out "/share/trigger-rally\""))))))
+         (add-after 'install 'create-desktop-entry
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (apps (string-append out "/share/applications")))
+               (mkdir-p apps)
+               (with-output-to-file
+                   (string-append apps "/trigger-rally.desktop")
+                 (lambda ()
+                   (format #t           ; Borrowed from Debian package
+                           "[Desktop Entry]~@
+                            Name=Trigger Rally~@
+                            Icon=trigger-rally~@
+                            Comment=3D rally racing car game~@
+                            Comment[de]=3D Rally-Autorennen~@
+                            Comment[fr_FR]=un jeu de rally en 3D~@
+                            Comment[ro_RO]=Un joc în 3D cu curse de raliu~@
+                            Exec=~a/bin/trigger-rally~@
+                            Terminal=false~@
+                            StartupNotify=false~@
+                            Type=Application~@
+                            TryExec=~:*~a/bin/trigger-rally~@
+                            Categories=Game;ArcadeGame;~@
+                            Keywords=racing;tracks;~@
+                            Keywords[de]=Rennstrecke;~%"
+                           out)))))))))
+    (home-page "http://trigger-rally.sourceforge.net")
+    (synopsis "Fast-paced single-player racing game")
+    (description "Trigger-rally is a 3D rally simulation with great physics
+for drifting on over 200 maps.  Different terrain materials like dirt,
+asphalt, sand, ice, etc. and various weather, light, and fog conditions give
+this rally simulation the edge over many other games.  You need to make it
+through the maps in often tight time limits and can further improve by beating
+the recorded high scores.  All attached single races must be finished in time
+in order to win an event, unlocking additional events and cars.  Most maps are
+equipped with spoken co-driver notes and co-driver icons.")
+    (license (list license:cc0               ;textures and audio in data.zip
+                   license:gpl2+))))
+
 (define-public ufo2map
   (package
     (name "ufo2map")
@@ -2724,7 +3054,7 @@ interface or via an external visual interface such as GNU XBoard.")
                   (ftp-directory . "/chess")))
     (license license:gpl3+)))
 
-(define freedink-engine
+(define-public freedink-engine
   (package
     (name "freedink-engine")
     (version "109.6")
@@ -2754,7 +3084,16 @@ interface or via an external visual interface such as GNU XBoard.")
 	     (invoke "autoreconf")
 	     ;; Build fails when autom4te.cache exists.
 	     (delete-file-recursively "autom4te.cache")
-             #t)))))
+             #t))
+         (add-after 'install 'delete-freedinkedit-desktop
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+             ;; freedinkedit does not know where to find freedink data
+             ;; freedink data is read-only, so it cannot be edited anyway.
+             ;; TODO: fix freedink.desktop
+             (delete-file-recursively (string-append
+                            out "/share/applications"))
+             #t))))))
     (native-inputs `(("autoconf" ,autoconf)
                      ("automake" ,automake)
                      ("cxxtest" ,cxxtest)
@@ -2776,7 +3115,7 @@ game data files but it also supports user-produced game mods or \"D-Mods\".
 To that extent, it also includes a front-end for managing all of your D-Mods.")
     (license license:gpl3+)))
 
-(define freedink-data
+(define-public freedink-data
   (package
     (name "freedink-data")
     (version "1.08.20190120")
@@ -3462,15 +3801,15 @@ This game is based on the GPL version of the famous game TuxRacer.")
 (define-public supertuxkart
   (package
     (name "supertuxkart")
-    (version "1.1")
+    (version "1.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://sourceforge/supertuxkart/SuperTuxKart/"
-                           version "/supertuxkart-" version "-src.tar.xz"))
+                           version "/SuperTuxKart-" version "-src.tar.xz"))
        (sha256
         (base32
-         "1s0ai07g3sswck9mr0142989mrgzzq1njc1qxk5als5b245jpc79"))
+         "0dvx56hmy6wdhl7m9dw8zc1n3jqfp05gnxl6zs1rbfdyzl5dybh5"))
        (modules '((guix build utils)))
        (snippet
         ;; Delete bundled library sources
@@ -3478,12 +3817,9 @@ This game is based on the GPL version of the famous game TuxRacer.")
            ;; Supertuxkart uses modified versions of the Irrlicht engine
            ;; and the bullet library.  The developers gave an explanation
            ;; here: http://forum.freegamedev.net/viewtopic.php?f=17&t=3906
-           ;; FIXME: try to unbundle angelscript and libraqm
+           ;; FIXME: try to unbundle angelscript, libmcpp and libraqm
            (for-each delete-file-recursively
-                     '("lib/zlib"
-                       "lib/libpng"
-                       "lib/jpeglib"
-                       "lib/glew"
+                     '("lib/glew"
                        "lib/wiiuse"
                        "lib/enet"))
            #t))))
@@ -3492,34 +3828,31 @@ This game is based on the GPL version of the famous game TuxRacer.")
      `(#:tests? #f ; no check target
        #:configure-flags
        (list "-DUSE_WIIUSE=0"
-             ;; Do not use the bundled zlib, glew and enet.
-             "-DNO_IRR_COMPILE_WITH_ZLIB_=TRUE"
              "-DUSE_SYSTEM_GLEW=TRUE"
              "-DUSE_SYSTEM_ENET=TRUE"
              ;; In order to use the system ENet library, IPv6 support (added in
              ;; SuperTuxKart version 1.1) must be disabled.
              "-DUSE_IPV6=FALSE"
              ;; FIXME: needs libopenglrecorder
-             "-DBUILD_RECORDER=0"
-             ;; Irrlicht returns an integer instead of a boolean
-             "-DCMAKE_C_FLAGS=-fpermissive")))
+             "-DBUILD_RECORDER=0")))
     (inputs
-     `(("glew" ,glew)
-       ("zlib" ,zlib)
-       ("openal" ,openal)
-       ("libvorbis" ,libvorbis)
+     `(("curl" ,curl)
        ("freetype" ,freetype)
        ("fribidi" ,fribidi)
+       ("glew" ,glew)
        ("harfbuzz" ,harfbuzz)
-       ("mesa" ,mesa)
+       ("libvorbis" ,libvorbis)
        ("libx11" ,libx11)
        ("libxrandr" ,libxrandr)
-       ("curl" ,curl)
+       ("mesa" ,mesa)
+       ("openal" ,openal)
+       ("sdl2" ,sdl2)
+       ("zlib" ,zlib)
        ;; The following input is needed to build the bundled and modified
        ;; version of irrlicht.
+       ("enet" ,enet)
        ("libjpeg" ,libjpeg-turbo)
-       ("openssl" ,openssl)
-       ("enet" ,enet)))
+       ("openssl" ,openssl)))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
     (home-page "https://supertuxkart.net/Main_Page")
@@ -3541,14 +3874,16 @@ also available.")
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "1n747p7h0qp48szgp262swg0xh8kxy1bw8ag1qczs4i26hyzs5x4"))))
+                "1n747p7h0qp48szgp262swg0xh8kxy1bw8ag1qczs4i26hyzs5x4"))
+              (patches (search-patches "unknown-horizons-python-3.8-distro.patch"))))
     (build-system python-build-system)
     (arguments
      '(#:phases
        (modify-phases %standard-phases
          (add-before 'build 'set-HOME
            (lambda _
-             (setenv "HOME" "/tmp")))
+             (setenv "HOME" "/tmp")
+             #t))
          (add-after 'build 'build-extra
            (lambda _
              (invoke "python3" "./setup.py" "build_i18n")
@@ -3563,6 +3898,14 @@ also available.")
                                  (assoc-ref outputs "out")
                                  "/share/unknown-horizons\")"))))
              #t))
+         (add-before 'check 'fix-tests-with-pytest>=4
+           (lambda _
+             (substitute* "tests/conftest.py"
+               (("pytest_namespace")
+                "pytest_configure")
+               (("get_marker")
+                "get_closest_marker"))
+             #t))
          ;; TODO: Run GUI tests as well
          (replace 'check
            (lambda _
@@ -3581,6 +3924,7 @@ also available.")
        ("python-pyyaml" ,python-pyyaml)))
     (native-inputs
      `(("intltool" ,intltool)
+       ("python-distro" ,python-distro)
 
        ;; Required for tests
        ("python-greenlet" ,python-greenlet)
@@ -3656,7 +4000,7 @@ falling, themeable graphics and sounds, and replays.")
 (define-public wesnoth
   (package
     (name "wesnoth")
-    (version "1.14.13")
+    (version "1.14.15")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://sourceforge/wesnoth/wesnoth-"
@@ -3665,7 +4009,7 @@ falling, themeable graphics and sounds, and replays.")
                                   "wesnoth-" version ".tar.bz2"))
               (sha256
                (base32
-                "1pmqj4rah0256qi9w394ksb9apid723i5f5agkg6x1lahb1ac91q"))))
+                "05iapxj3nzaqh10y42yq1jf7spxgm4iwjw4qj1c4lnb25xp4mc2h"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f))                    ;no check target
@@ -3796,14 +4140,14 @@ world}, @uref{http://evolonline.org, Evol Online} and
 (define openttd-engine
   (package
     (name "openttd-engine")
-    (version "1.10.0")
+    (version "1.10.3")
     (source
      (origin (method url-fetch)
              (uri (string-append "https://cdn.openttd.org/openttd-releases/"
                                  version "/openttd-" version "-source.tar.xz"))
              (sha256
               (base32
-               "0lz2y2rjc23k0d97y65cqhy2splw9cmrbvhgz0iqps8xkan1m8hv"))))
+               "0fxmfz1mm95a2x0rnzfff9wb8q57w0cvsdd0z7agdcbyakph25n1"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f              ; no "check" target
@@ -3896,7 +4240,7 @@ engine.  When you start it you will be prompted to download a graphics set.")
     (home-page "http://dev.openttdcoop.org/projects/opengfx")
     (synopsis "Base graphics set for OpenTTD")
     (description
-     "The OpenGFX projects is an implementation of the OpenTTD base grahics
+     "The OpenGFX project is an implementation of the OpenTTD base graphics
 set that aims to ensure the best possible out-of-the-box experience.
 
 OpenGFX provides you with...
@@ -4057,7 +4401,7 @@ Transport Tycoon Deluxe.")
 (define openrct2-objects
   (package
    (name "openrct2-objects")
-   (version "1.0.9")
+   (version "1.0.20")
    (source
     (origin
      (method url-fetch)
@@ -4065,7 +4409,7 @@ Transport Tycoon Deluxe.")
                          version "/objects.zip"))
      (file-name (string-append name "-" version ".zip"))
      (sha256
-      (base32 "02apb8h553m7d6jvysgb1zahvxc1yzyygfca2iclb21b3fhpsas4"))))
+      (base32 "1q7a38kcwrfijav6app1gf253yfv8b0rljbkah8040y6i7snw9mw"))))
    (build-system trivial-build-system)
    (native-inputs
     `(("bash" ,bash)
@@ -4097,7 +4441,7 @@ Transport Tycoon Deluxe.")
 (define-public openrct2
   (package
     (name "openrct2")
-    (version "0.2.6")
+    (version "0.3.2")
     (source
      (origin
        (method git-fetch)
@@ -4106,7 +4450,7 @@ Transport Tycoon Deluxe.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1vikbkg3wh5ngzdfilb6irbh6nqinf138qpdz8wz9izlvl8s36k4"))))
+        (base32 "1fd32wniiy6qz2046ppqfj2sb3rf2qf086rf9v1bdhyj254d0b1z"))))
     (build-system cmake-build-system)
     (arguments
      `(#:configure-flags (list "-DDOWNLOAD_OBJECTS=OFF"
@@ -4135,6 +4479,7 @@ Transport Tycoon Deluxe.")
                (("-Werror") ""))
              #t)))))
     (inputs `(("curl" ,curl)
+              ("duktape" ,duktape)
               ("fontconfig" ,fontconfig)
               ("freetype" ,freetype)
               ("icu4c" ,icu4c)
@@ -4142,6 +4487,7 @@ Transport Tycoon Deluxe.")
               ("libpng" ,libpng)
               ("libzip" ,libzip)
               ("mesa" ,mesa)
+              ("nlohmann-json-cpp" ,nlohmann-json-cpp)
               ("openrct2-objects" ,openrct2-objects)
               ("openrct2-title-sequences" ,openrct2-title-sequences)
               ("openssl" ,openssl)
@@ -4276,7 +4622,7 @@ is attributed to Albert Einstein.")
 (define-public powwow
   (package
     (name "powwow")
-    (version "1.2.19")
+    (version "1.2.22")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -4284,7 +4630,7 @@ is attributed to Albert Einstein.")
                     version ".tar.gz"))
               (sha256
                (base32
-                "10rjl63hmf62qslyhzqrbw3i2zf09dgxv65avhj0iiz0m4pbc9wy"))))
+                "12i11b8zxg8vdb9d6ims8qy2lmwwr42rcqbwq3vsa1x94s51bcbp"))))
     (inputs
      `(("ncurses" ,ncurses)))
     (build-system gnu-build-system)
@@ -4777,7 +5123,7 @@ of war.  Widelands also offers an Artificial Intelligence to challenge you.")
 (define-public starfighter
   (package
     (name "starfighter")
-    (version "2.3.1")
+    (version "2.4")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -4786,7 +5132,7 @@ of war.  Widelands also offers an Artificial Intelligence to challenge you.")
                     version "-src.tar.gz"))
               (sha256
                (base32
-                "13396hvsj4cswlrw52kwqn37dadxps00vhr0hrqgm87fl4ih5yyx"))))
+                "0ips79j3sdy8wa64jqka0skbbqkzqiln9bbiiilh4z717q7vz9r5"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
@@ -5065,7 +5411,7 @@ a style similar to the original Super Mario games.")
 (define-public tintin++
   (package
     (name "tintin++")
-    (version "2.02.02")
+    (version "2.02.05")
     (source
      (origin
        (method url-fetch)
@@ -5073,7 +5419,7 @@ a style similar to the original Super Mario games.")
                            (string-drop-right version 1)
                            "/tintin-" version ".tar.gz"))
        (sha256
-        (base32 "11ylbp8ip7dwmh4gzb53z147pcfxkl3lwhyy8ngyn2zc634vdn65"))))
+        (base32 "18fm9ga08mxqmblahmnlzwnl387i8mbkj4n0gffxc91d299019v3"))))
     (inputs
      `(("gnutls" ,gnutls)
        ("pcre" ,pcre)
@@ -5101,7 +5447,7 @@ Linux / Mac OS X servers, and an auto mapper with a VT100 map display.")
 (define-public laby
   (package
     (name "laby")
-    (version "0.6.4")
+    (version "0.7.0")
     (source
      (origin (method git-fetch)
              (uri (git-reference
@@ -5110,7 +5456,7 @@ Linux / Mac OS X servers, and an auto mapper with a VT100 map display.")
              (file-name (git-file-name name version))
              (sha256
               (base32
-               "12fq9hhrxpzgfinmj9ra9ckss9yficwdlrmgjvvsq7agvh3sgyl1"))
+               "1y6nfxcjhqg9bb81hs0wijg7kcwk5kff81rgd8bsv5ps7ia9nj6b"))
              (patches (search-patches "laby-make-install.patch"))))
     (build-system gnu-build-system)
     (inputs
@@ -5410,7 +5756,7 @@ for Un*x systems with X11.")
 (define-public freeciv
   (package
    (name "freeciv")
-   (version "2.6.2")
+   (version "2.6.3")
    (source
     (origin
      (method url-fetch)
@@ -5422,7 +5768,7 @@ for Un*x systems with X11.")
                   (version-major+minor version) "/" version
                   "/freeciv-" version ".tar.bz2")))
      (sha256
-      (base32 "13vc2xg1cf19rhbnr7k38b56b2hdapqymq5vma1l69kn7hyyz0b1"))))
+      (base32 "1lgq7wcbhwpy2yqdw4biwfmp5q8fh7lhlwxcgm0fpaapfl12whvp"))))
    (build-system gnu-build-system)
    (inputs
     `(("curl" ,curl)
@@ -6031,31 +6377,15 @@ fish.  The whole game is accompanied by quiet, comforting music.")
 (define-public crawl
   (package
     (name "crawl")
-    (version "0.25.0")
+    (version "0.26.0")
     (source
      (origin
        (method url-fetch)
-       (uri (list
-             ;; Older releases get moved into a versioned directory
-             (string-append "http://crawl.develz.org/release/"
-                            (version-major+minor version) "/stone_soup-"
-                            version "-nodeps.tar.xz")
-             ;; Only the latest release is in this directory
-             (string-append "http://crawl.develz.org/release/stone_soup-"
-                            version "-nodeps.tar.xz")))
+       (uri (string-append "https://github.com/crawl/crawl/releases/download/"
+                           version "/stone_soup-" version "-nodeps.tar.xz"))
        (sha256
-        (base32 "0rn1wjxdqw33caiwisfypm1j8cid3c9pz01ahicl17144zs29z3d"))
-       (patches (search-patches "crawl-upgrade-saves.patch"))
-       ;; The 0.25.0 -nodeps.tar.xz was built from an OSX machine; normally
-       ;; apparently it's built from a Debian machine before the Debian
-       ;; packages are made.  These ._* files are binary and have the string
-       ;; "Mac OS X" in them... removing these seems to result in compilation
-       ;; again.
-       (modules '((guix build utils)))
-       (snippet
-        '(begin
-           (for-each delete-file (find-files "." "^\\._"))
-           #t))))
+        (base32 "1m81x1sp6p2ka5w2nib3pcw5w5iv58z41c8aqn0dayi1lb3yslfb"))
+       (patches (search-patches "crawl-upgrade-saves.patch"))))
     (build-system gnu-build-system)
     (inputs
      `(("lua51" ,lua-5.1)
@@ -6369,76 +6699,72 @@ at their peak of economic growth and military prowess.
                    license:mpl2.0
                    license:zlib))))
 
-;; There have been no official releases.
 (define-public open-adventure
-  (let* ((commit "d43854f0f6bb8e9eea7fbce80348150e7e7fc34d")
-         (revision "2"))
-    (package
-      (name "open-adventure")
-      (version (string-append "2.5-" revision "." (string-take commit 7)))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://gitlab.com/esr/open-adventure")
-                      (commit commit)))
-                (file-name (string-append name "-" version "-checkout"))
-                (sha256
-                 (base32
-                  "08bwrvf4axb1rsfd6ia1fddsky9pc1p350vjskhaakg2czc6dsk0"))))
-      (build-system gnu-build-system)
-      (arguments
-       `(#:make-flags (list "CC=gcc")
-         #:parallel-build? #f ; not supported
-         #:phases
-         (modify-phases %standard-phases
-           (replace 'configure
-             (lambda* (#:key inputs outputs #:allow-other-keys)
-               ;; Linenoise is meant to be included, so we have to
-               ;; copy it into the working directory.
-               (let* ((linenoise (assoc-ref inputs "linenoise"))
-                      (noisepath (string-append linenoise "/include/linenoise"))
-                      (out (assoc-ref outputs "out")))
-                 (copy-recursively noisepath "linenoise"))
-               #t))
-           (add-before 'build 'use-echo
-             (lambda _
-               (substitute* "tests/Makefile"
-                 (("/bin/echo") (which "echo")))
-               #t))
-           (add-after 'build 'build-manpage
-             (lambda _
-               ;; This target is missing a dependency
-               (substitute* "Makefile"
-                 ((".adoc.6:" line)
-                  (string-append line " advent.adoc")))
-               (invoke "make" ".adoc.6")))
-           ;; There is no install target
-           (replace 'install
-             (lambda* (#:key outputs #:allow-other-keys)
-               (let* ((out (assoc-ref outputs "out"))
-                      (bin (string-append out "/bin"))
-                      (man (string-append out "/share/man/man6")))
-                 (install-file "advent" bin)
-                 (install-file "advent.6" man))
-               #t)))))
-      (native-inputs
-       `(("asciidoc" ,asciidoc)
-         ("linenoise" ,linenoise)
-         ("python" ,python)
-         ("python-pyyaml" ,python-pyyaml)))
-      (home-page "https://gitlab.com/esr/open-adventure")
-      (synopsis "Colossal Cave Adventure")
-      (description "The original Colossal Cave Adventure from 1976 was the
-origin of all text adventures, dungeon-crawl (computer) games, and
-computer-hosted roleplaying games.  This is the last version released by
+  (package
+    (name "open-adventure")
+    (version "1.9")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://gitlab.com/esr/open-adventure")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "123svzy7xczdklx6plbafp22yv9bcvwfibjk0jv2c9i22dfsr07f"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:make-flags (list "CC=gcc")
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)            ;no configure script
+         (add-before 'build 'use-echo
+           (lambda _
+             (substitute* "tests/Makefile"
+               (("/bin/echo") (which "echo")))
+             #t))
+         (add-after 'build 'build-manpage
+           (lambda _
+             ;; This target is missing a dependency
+             (substitute* "Makefile"
+               ((".adoc.6:" line)
+                (string-append line " advent.adoc")))
+             (invoke "make" ".adoc.6")))
+         ;; There is no install target.
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (bin (string-append out "/bin"))
+                    (man (string-append out "/share/man/man6")))
+               (install-file "advent" bin)
+               (install-file "advent.6" man))
+             #t)))))
+    (native-inputs
+     `(("asciidoc" ,asciidoc)
+       ("libedit" ,libedit)
+       ("pkg-config" ,pkg-config)
+       ("python" ,python-wrapper)
+       ("python-pyyaml" ,python-pyyaml)))
+    (home-page "https://gitlab.com/esr/open-adventure")
+    (synopsis "Colossal Cave Adventure")
+    (description
+     "The original Colossal Cave Adventure from 1976 was the origin of all
+text adventures, dungeon-crawl (computer) games, and computer-hosted
+roleplaying games.  This is a forward port of the last version released by
 Crowther & Woods, its original authors, in 1995.  It has been known as
-\"adventure 2.5\" and \"430-point adventure\".")
-      (license license:bsd-2))))
+``adventure 2.5'' and ``430-point adventure''.")
+    (license license:bsd-2)))
+
+(define-public open-adventure-2.5
+  (package
+    (inherit open-adventure)
+    (version "2.5")
+    (properties `((superseded . ,open-adventure)))))
 
 (define-public tome4
   (package
     (name "tome4")
-    (version "1.6.7")
+    (version "1.7.2")
     (synopsis "Single-player, RPG roguelike game set in the world of Eyal")
     (source
      (origin
@@ -6446,7 +6772,7 @@ Crowther & Woods, its original authors, in 1995.  It has been known as
        (uri (string-append "https://te4.org/dl/t-engine/t-engine4-src-"
                            version ".tar.bz2"))
        (sha256
-        (base32 "0283hvms5hr29zr0grd6gq059k0hg8hcz3fsmwjmysiih8790i68"))
+        (base32 "1xa0pdn9pggwf7hnqb87ya2qxqhjahkdjwf8cr2y01gixgrkj9lv"))
        (modules '((guix build utils)))
        (snippet
         '(begin
@@ -6468,7 +6794,9 @@ Crowther & Woods, its original authors, in 1995.  It has been known as
        ("vorbis" ,libvorbis)
        ("luajit" ,luajit)))
     (arguments
-     `(#:make-flags '("CC=gcc" "config=release")
+     `(#:make-flags
+       (list (string-append "CC=" ,(cc-for-target))
+             "config=release")
        ;; XXX: Building in parallel occasionally causes this build failure:
        ;;   ../src/luajit2/src/host/buildvm.c:73:10: fatal error: buildvm_arch.h:
        ;;   No such file or directory
@@ -6659,15 +6987,14 @@ some graphical niceities, and numerous bug-fixes and other improvements.")
 (define-public yamagi-quake2
   (package
     (name "yamagi-quake2")
-    (version "7.10")
+    (version "7.45")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://deponie.yamagi.org/quake2/quake2-"
                            version ".tar.xz"))
        (sha256
-        (base32
-         "0psinbg25mysd58k99s1n34w31w5hj1vppb39gdjb0zqi6sl6cps"))))
+        (base32 "0rgz8x7lzd0zb0xqd0gvnf2641nr9xpfm6v14mgh99hspxklaln7"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f
@@ -6696,12 +7023,15 @@ some graphical niceities, and numerous bug-fixes and other improvements.")
                         (string-append out "/bin/yamagi-quake2"))
                (symlink (string-append out "/lib/yamagi-quake2/q2ded")
                         (string-append out "/bin/yamagi-q2ded"))))))))
-    (inputs `(("sdl2" ,sdl2)
-              ("mesa" ,mesa)
-              ("libvorbis" ,libvorbis)
-              ("zlib" ,zlib)
-              ("openal" ,openal)))
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("curl" ,curl-minimal)
+       ("libvorbis" ,libvorbis)
+       ("mesa" ,mesa)
+       ("openal" ,openal)
+       ("sdl2" ,sdl2)
+       ("zlib" ,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,
@@ -6719,17 +7049,24 @@ making Yamagi Quake II one of the most solid Quake II implementations available.
 (define-public nudoku
   (package
     (name "nudoku")
-    (version "1.0.0")
-    (source (origin
-	      (method url-fetch)
-	      (uri (string-append "https://github.com/jubalh/nudoku/"
-                                  "releases/download/" version
-                                  "/nudoku-" version ".tar.xz"))
-	      (sha256
-               (base32
-                "0nr2j2z07nxk70s8xnmmpzccxicf7kn5mbwby2kg6aq8paarjm8k"))))
+    (version "2.1.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/jubalh/nudoku")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "12v00z3p0ymi8f3w4b4bgl4c76irawn3kmd147r0ap6s9ssx2q6m"))))
     (build-system gnu-build-system)
-    (inputs `(("ncurses" ,ncurses)))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("gettext" ,gettext-minimal)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("ncurses" ,ncurses)))
     (home-page "https://jubalh.github.io/nudoku/")
     (synopsis "Sudoku for your terminal")
     (description "Nudoku is a ncurses-based Sudoku game for your terminal.")
@@ -7037,7 +7374,7 @@ Strife, Chex Quest, and fan-created games like Harmony, Hacx and Freedoom.")
 (define-public odamex
   (package
     (name "odamex")
-    (version "0.8.1")
+    (version "0.8.3")
     (source
      (origin
        (method url-fetch)
@@ -7045,7 +7382,7 @@ Strife, Chex Quest, and fan-created games like Harmony, Hacx and Freedoom.")
              "mirror://sourceforge/odamex/Odamex/" version "/"
              "odamex-src-" version ".tar.gz"))
        (sha256
-        (base32 "1ywbqkfacc9fc5di3dn95y5ah2ys9i241j64q3f37a73x92llw1i"))))
+        (base32 "0f887g87bmcq4dpcga7xc2mpxs947dkbc934ir9xs55gz6z13q96"))))
     (build-system cmake-build-system)
     (arguments `(#:tests? #f))          ; no tests
     (inputs
@@ -7164,7 +7501,7 @@ original.")
        ("pkg-config" ,pkg-config)))
     (inputs
      `(("cmocka" ,cmocka)
-       ("perl-env-path", perl-env-path)
+       ("perl-env-path" ,perl-env-path)
        ("perl-inline" ,perl-inline)
        ("perl-inline-c" ,perl-inline-c)
        ("perl-string-shellquote" ,perl-string-shellquote)
@@ -7759,7 +8096,7 @@ their own levels.")
 (define-public libmanette
   (package
     (name "libmanette")
-    (version "0.2.4")
+    (version "0.2.6")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/libmanette/"
@@ -7767,7 +8104,7 @@ their own levels.")
                                   "libmanette-" version ".tar.xz"))
               (sha256
                (base32
-                "1xrc6rh73v5w3kbkflzv1yg8sbxk4wf06hfk95raxhxlssza9q2g"))))
+                "1b3bcdkk5xd5asq797cch9id8692grsjxrc1ss87vv11m1ck4rb3"))))
     (build-system meson-build-system)
     (native-inputs
      `(("glib" ,glib "bin")             ; for glib-compile-resources
@@ -7788,7 +8125,7 @@ GameController.")
 (define-public quadrapassel
   (package
     (name "quadrapassel")
-    (version "3.36.02")
+    (version "3.36.05")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/quadrapassel/"
@@ -7796,7 +8133,7 @@ GameController.")
                                   "quadrapassel-" version ".tar.xz"))
               (sha256
                (base32
-                "0c80pzipxricyh4wydffsc94wj6ymnanqr9bg6wdx51hz1mmmilb"))))
+                "04abxmimh5npw8rhz1sfi6wxilgc6i1wka9mlnfwp8v1p1cb00cv"))))
     (build-system meson-build-system)
     (arguments
      '(#:glib-or-gtk? #t
@@ -7931,7 +8268,7 @@ civilized than your own.")
              ;; SSE instructions are available on Intel systems only.
              ,@(if (any (cute string-prefix? <> (or (%current-target-system)
                                                     (%current-system)))
-                        '("x64_64" "i686"))
+                        '("x86_64" "i686"))
                    '()
                    '("-DWITH_SSE2=NO"))
              ;; Configuration cannot find GTK2 without the two following
@@ -8126,6 +8463,39 @@ and cooperative.")
     ;; developers.
     (license (list license:gpl2+ license:lgpl2.1+))))
 
+(define-public slimevolley
+  (package
+    (name "slimevolley")
+    (version "2.4.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://download.tuxfamily.org/slime/"
+                           "slimevolley_" version ".tar.gz"))
+       (sha256
+        (base32 "1pi60zjpx95mfdkrbwf4cbzy5lv4v5qrljvgck46qca78i9g9g46"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:tests? #f                      ;no test
+       ;; Work around build failure: "error adding symbols: DSO
+       ;; missing from command line".
+       #:configure-flags (list "-DCMAKE_EXE_LINKER_FLAGS=-lm")))
+    (native-inputs
+     `(("gettext" ,gettext-minimal)))
+    (inputs
+     `(("sdl" ,(sdl-union (list sdl sdl-image sdl-net sdl-ttf)))))
+    (home-page "https://slime.tuxfamily.org/")
+    (synopsis "Unrealistic 2D volleyball simulation")
+    (description
+     "Slime Volley is a 2D arcade-oriented volleyball simulation, in
+the spirit of some Java games of the same name.
+
+Two teams, 1-3 players each, try to be the first to get 10 points.
+This happens when the one ball touches the floor on the other side of
+the net.  There can be 1 to 8 balls in game.  Once one ball touches
+the ground, the set ends and all balls are served again.")
+    (license license:gpl3+)))
+
 (define-public slingshot
   (package
     (name "slingshot")
@@ -8837,7 +9207,8 @@ play with up to four players simultaneously.  It has network support.")
      ;; XXX: Engine is built as Pascal source code, requiring Free Pascal
      ;; Compiler, which we haven't packaged yet.  With the flag below, we use
      ;; a Pascal to C translator and Clang instead.
-     `(#:configure-flags (list "-DBUILD_ENGINE_C=ON")
+     `(#:configure-flags (list "-DBUILD_ENGINE_C=ON"
+                               "-Dhaskell_flags=-dynamic;-fPIC")
        #:phases
        (modify-phases %standard-phases
          (replace 'check
@@ -9326,7 +9697,7 @@ angesiedelt in einer düsteren, postapokalyptischen Vision der Zukunft~@
      `(("bash" ,bash)
        ("scummvm" ,scummvm)))
     (home-page "https://www.scummvm.org/")
-    (synopsis "Classic 2D point an click science-fiction adventure game")
+    (synopsis "Classic 2D point and click science-fiction adventure game")
     (description
      "Beneath a Steel Sky is a science-fiction thriller set in a bleak
 post-apocalyptic vision of the future.  It revolves around Union City,
@@ -9662,17 +10033,18 @@ can be downloaded from @url{https://zero.sjeng.org/best-network}.")
 (define-public ktuberling
   (package
     (name "ktuberling")
-    (version "19.08.3")
+    (version "20.12.0")
     (source
      (origin
       (method url-fetch)
-      (uri (string-append "mirror://kde/stable/applications/" version
+      (uri (string-append "mirror://kde/stable/release-service/" version
                           "/src/ktuberling-" version ".tar.xz"))
       (sha256
-       (base32 "1qdf4q6wjh1lnlqw5c8z4rpj9w5vbyjfri1dah6yjm3mwppbc12j"))))
+       (base32 "0mlv9qllg70p26dbrcsr820c70d3ib88hapc1z6wgjhdpmc12ni1"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
+       ("kdoctools" ,kdoctools)
        ("perl" ,perl)))
     (inputs
      `(("kcompletion" ,kcompletion)
@@ -9680,11 +10052,12 @@ can be downloaded from @url{https://zero.sjeng.org/best-network}.")
        ("kcoreaddons" ,kcoreaddons)
        ("kcrash" ,kcrash)
        ("kdbusaddons" ,kdbusaddons)
-       ("kdelibs4support" ,kdelibs4support)
        ("ki18n" ,ki18n)
+       ("kio" ,kio)
        ("kwidgetsaddons" ,kwidgetsaddons)
        ("kxmlgui" ,kxmlgui)
        ("libkdegames" ,libkdegames)
+       ("python" ,python-wrapper)
        ("qtbase" ,qtbase)
        ("qtmultimedia" ,qtmultimedia)
        ("qtdeclarative" ,qtdeclarative)
@@ -9711,14 +10084,14 @@ This package is part of the KDE games module.")
 (define-public picmi
   (package
     (name "picmi")
-    (version "19.08.3")
+    (version "20.12.0")
     (source
      (origin
       (method url-fetch)
-      (uri (string-append "mirror://kde/stable/applications/" version
+      (uri (string-append "mirror://kde/stable/release-service/" version
                           "/src/picmi-" version ".tar.xz"))
       (sha256
-       (base32 "0z9mpmv49w914gqdx274brdzl6d1bz9j9nkvbwgmr3iq1ba49m3f"))))
+       (base32 "1dfq9m4njh0czz8zws46rkz6xq2n6xra5w223m3s2f5civiw5msz"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -9748,14 +10121,14 @@ This package is part of the KDE games module.")
 (define-public kolf
   (package
     (name "kolf")
-    (version "19.08.3")
+    (version "20.12.0")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "mirror://kde/stable/applications/" version
+       (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/kolf-" version ".tar.xz"))
        (sha256
-        (base32 "06sfd0llr5cc3zf1vrpcxgw9bm009ky7y8822kynic9ipcd4z1hw"))))
+        (base32 "1lpp6pzr5dgd4si4a8c7hcvgxgqy0bgyhkx9m6jqb0zhll6dxj10"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -9796,14 +10169,14 @@ This package is part of the KDE games module.")
 (define-public libkmahjongg
   (package
     (name "libkmahjongg")
-    (version "19.08.3")
+    (version "20.12.0")
     (source
      (origin
       (method url-fetch)
-      (uri (string-append "mirror://kde/stable/applications/"
+      (uri (string-append "mirror://kde/stable/release-service/"
                           version "/src/libkmahjongg-" version ".tar.xz"))
       (sha256
-       (base32 "0rdimk11hrc8qrmiv26z0ddjzi1k6806c0rfskx4cwmildmh6zgx"))))
+       (base32 "10ljzbf7qki5flydankrbksaihhkqpfyljb8c71fbwqwmkr7rgfq"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)))
@@ -9827,14 +10200,14 @@ other Mah Jongg like games.")
 (define-public kmahjongg
   (package
     (name "kmahjongg")
-    (version "19.08.3")
+    (version "20.12.0")
     (source
      (origin
       (method url-fetch)
-      (uri (string-append "mirror://kde/stable/applications/"
+      (uri (string-append "mirror://kde/stable/release-service/"
                           version "/src/kmahjongg-" version ".tar.xz"))
       (sha256
-       (base32 "08na845h0nhmfrszdmvfq5y1dy7kgbrlzjp0f5snvbbf7w44ci6p"))))
+       (base32 "1fcj4jb2zzbaxp7cp04w36y0c7lh77yzin66fmvrcxkl11xi2wwd"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -9867,14 +10240,14 @@ This package is part of the KDE games module.")
 (define-public kshisen
   (package
     (name "kshisen")
-    (version "19.08.3")
+    (version "20.12.0")
     (source
      (origin
       (method url-fetch)
-      (uri (string-append "mirror://kde/stable/applications/"
+      (uri (string-append "mirror://kde/stable/release-service/"
                           version "/src/kshisen-" version ".tar.xz"))
       (sha256
-       (base32 "1bq5m48af4h5apfp3bfsp76nlpv6h5sc0gd544zv7cgpfznz1sds"))))
+       (base32 "1hrwr0f1kidivsp8lnwdbqz3xxagjvjwh72r3gma8smfilybygfb"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -9906,15 +10279,24 @@ This package is part of the KDE games module.")
 (define-public kajongg
   (package
     (name "kajongg")
-    (version "19.08.3")
+    (version "20.12.0")
     (source
      (origin
       (method url-fetch)
-      (uri (string-append "mirror://kde/stable/applications/"
+      (uri (string-append "mirror://kde/stable/release-service/"
                           version "/src/kajongg-" version ".tar.xz"))
       (sha256
-       (base32 "0ql6p5zifdpdf65r7ki9ml123azpwwk9x3x8r9ij6xhjnf7p7x6w"))))
+       (base32 "03fdbnx7zx7vgcxvwd1h1098ks9gq162bwz35fhpyzpynr667m5r"))))
     (build-system qt-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'wrap
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (wrap-program (string-append out "/bin/kajongg")
+                 `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH"))))
+               #t))))))
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
        ;("perl" ,perl)
@@ -9926,12 +10308,10 @@ This package is part of the KDE games module.")
        ("ki18n" ,ki18n)
        ("libkmahjongg" ,libkmahjongg)
        ("python" ,python)
+       ("python-twisted" ,python-twisted)
+       ("python-pyqt" ,python-pyqt)
        ("qtbase" ,qtbase)
        ("qtsvg" ,qtsvg)))
-    (propagated-inputs
-     `(("python-twisted" ,python-twisted)
-       ("python-pyqt" ,python-pyqt)))
-    ;; FIXME: Need to wrap PYTHONPATH
     (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.
@@ -9950,14 +10330,14 @@ This package is part of the KDE games module.")
 (define-public kbreakout
   (package
     (name "kbreakout")
-    (version "19.08.3")
+    (version "20.12.0")
     (source
      (origin
       (method url-fetch)
-      (uri (string-append "mirror://kde/stable/applications/" version
+      (uri (string-append "mirror://kde/stable/release-service/" version
                           "/src/kbreakout-" version ".tar.xz"))
       (sha256
-       (base32 "0gwzx1z9mxrjlcjzglg8cxkyd6900whcar3b5j9laxxarc6xhj8w"))))
+       (base32 "0kqj2cx0ny3qq65c6w5fpnzmrwl9irg8slzvpd3anck5cnvma3j4"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -9988,14 +10368,14 @@ This package is part of the KDE games module.")
 (define-public kmines
   (package
     (name "kmines")
-    (version "19.08.3")
+    (version "20.12.0")
     (source
      (origin
       (method url-fetch)
-      (uri (string-append "mirror://kde/stable/applications/" version
+      (uri (string-append "mirror://kde/stable/release-service/" version
                           "/src/kmines-" version ".tar.xz"))
       (sha256
-       (base32 "0ac3za36lh8hpx6mqfic9amwmzhzhzplm9hg3pw12gxl5a9mvfsf"))))
+       (base32 "0hqjwh3jq2npqwkvh67fyn2xnq8swiasdw5jz8f0ikl0k28id775"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -10026,14 +10406,14 @@ This package is part of the KDE games module.")
 (define-public konquest
   (package
     (name "konquest")
-    (version "19.08.3")
+    (version "20.12.0")
     (source
      (origin
       (method url-fetch)
-      (uri (string-append "mirror://kde/stable/applications/"
+      (uri (string-append "mirror://kde/stable/release-service/"
                           version "/src/konquest-" version ".tar.xz"))
       (sha256
-       (base32 "02gjxskhi10a1sqh3skcild8zria7wncz1a4sbz7ax1p851q76k1"))))
+       (base32 "0lnwj06vv4qx05hr8pzysnvrxh8y04asajrph0rsj37v8hs9g5lh"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -10066,14 +10446,14 @@ This package is part of the KDE games module.")
 (define-public kbounce
   (package
     (name "kbounce")
-    (version "19.08.3")
+    (version "20.12.0")
     (source
      (origin
       (method url-fetch)
-      (uri (string-append "mirror://kde/stable/applications/"
+      (uri (string-append "mirror://kde/stable/release-service/"
                           version "/src/kbounce-" version ".tar.xz"))
       (sha256
-       (base32 "02rfv0qzz5cmyfx8f56a45hbm9gsp6m3dcy8ajwx88rw5wpbrr11"))))
+       (base32 "0ymy0z1qlw3n653xs3dsa1xm78q4xaj09dnnci4km77rzis26vb6"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -10105,14 +10485,14 @@ This package is part of the KDE games module.")
 (define-public kblocks
   (package
     (name "kblocks")
-    (version "19.08.3")
+    (version "20.12.0")
     (source
      (origin
       (method url-fetch)
-      (uri (string-append "mirror://kde/stable/applications/"
+      (uri (string-append "mirror://kde/stable/release-service/"
                           version "/src/kblocks-" version ".tar.xz"))
       (sha256
-       (base32 "0qrm0dihzhkxsq9l49ndzms802x6jn92vvabb2zf2q9z593m69cx"))))
+       (base32 "09yfm9mzbamp294cvc5finq6ilxvxr68i0dnb0m72pa4sfzmij32"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -10146,20 +10526,20 @@ This package is part of the KDE games module.")
 (define-public ksudoku
   (package
     (name "ksudoku")
-    (version "19.08.3")
+    (version "20.12.0")
     (source
      (origin
       (method url-fetch)
-      (uri (string-append "mirror://kde/stable/applications/"
+      (uri (string-append "mirror://kde/stable/release-service/"
                           version "/src/ksudoku-" version ".tar.xz"))
       (sha256
-       (base32 "0rcscz91hilm7l3am5w02n0n8l7xhi4l0n4sskznh68kblw0ggw2"))))
+       (base32 "0pj6ry7ak1rnpb93mqypaxrcbmrhwg9ir6zhb3ybzfkfcrh67g12"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
        ("kdoctools" ,kdoctools)))
     (inputs
-     `(("karchive", karchive)
+     `(("karchive" ,karchive)
        ("kconfig" ,kconfig)
        ("kconfigwidgets" ,kconfigwidgets)
        ("kcoreaddons" ,kcoreaddons)
@@ -10207,14 +10587,14 @@ This package is part of the KDE games module.")
 (define-public klines
   (package
     (name "klines")
-    (version "19.08.3")
+    (version "20.12.0")
     (source
      (origin
       (method url-fetch)
-      (uri (string-append "mirror://kde/stable/applications/" version
+      (uri (string-append "mirror://kde/stable/release-service/" version
                           "/src/klines-" version ".tar.xz"))
       (sha256
-       (base32 "1g1f46jp0rb8gpqkgcf915ydpsscn1sxk3gjvm8bcqgx9ddq59xa"))))
+       (base32 "0y8lnwawrkl4ixn7v4dg48k2zpr083krv7dv4d94b2dpkh7xfvih"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -10251,14 +10631,14 @@ This package is part of the KDE games module.")
 (define-public kgoldrunner
   (package
     (name "kgoldrunner")
-    (version "19.08.3")
+    (version "20.12.0")
     (source
      (origin
       (method url-fetch)
-      (uri (string-append "mirror://kde/stable/applications/" version "/src/kgoldrunner-"
-                           version ".tar.xz"))
+      (uri (string-append "mirror://kde/stable/release-service/" version
+                          "/src/kgoldrunner-" version ".tar.xz"))
       (sha256
-       (base32 "16rcvq796r3asz4v4ap75xvwnxd3dd2nsq5r9vxvzl6rrf1w9bj4"))))
+       (base32 "17ra5d3r9ajy2inj17gwd5xphzhvbzx5kpvdwyj6msx4dd9wxgfi"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -10292,20 +10672,20 @@ This package is part of the KDE games module.")
 (define-public kdiamond
   (package
     (name "kdiamond")
-    (version "19.08.3")
+    (version "20.12.0")
     (source
      (origin
       (method url-fetch)
-      (uri (string-append "mirror://kde/stable/applications/" version
+      (uri (string-append "mirror://kde/stable/release-service/" version
                           "/src/kdiamond-" version ".tar.xz"))
       (sha256
-       (base32 "1v5yb9hb26lk277zhw8d37ks829yfqr5anzx1qhms44gca5kqhva"))))
+       (base32 "1iyxrx3422asa58kh0siwvi1svds5kccrym6gdfpdhlmhmciqlzi"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
        ("kdoctools" ,kdoctools)))
     (inputs
-     `(("kcompletion", kcompletion)
+     `(("kcompletion" ,kcompletion)
        ("kconfig" ,kconfig)
        ("kconfigwidgets" ,kconfigwidgets)
        ("kcoreaddons" ,kcoreaddons)
@@ -10331,14 +10711,14 @@ This package is part of the KDE games module.")
 (define-public kfourinline
   (package
     (name "kfourinline")
-    (version "19.08.3")
+    (version "20.12.0")
     (source
      (origin
       (method url-fetch)
-      (uri (string-append "mirror://kde/stable/applications/" version
+      (uri (string-append "mirror://kde/stable/release-service/" version
                           "/src/kfourinline-" version ".tar.xz"))
       (sha256
-       (base32 "1vprs6dc1ccn3g6k594i9s94xy4b91vzlqjysyc6fqcq2fs54ny3"))))
+       (base32 "0plx3lv35fc8q9svbyl71mms3ji6zn58j306bvm1f8kkgg0x395b"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -10349,7 +10729,6 @@ This package is part of the KDE games module.")
        ("kconfigwidgets" ,kconfigwidgets)
        ("kcoreaddons" ,kcoreaddons)
        ("kcrash" ,kcrash)
-       ("kdelibs4support" ,kdelibs4support)
        ("kdnssd" ,kdnssd)
        ("ki18n" ,ki18n)
        ("kxmlgui" ,kxmlgui)
@@ -10371,14 +10750,14 @@ This package is part of the KDE games module.")
 (define-public kblackbox
   (package
     (name "kblackbox")
-    (version "19.08.3")
+    (version "20.12.0")
     (source
      (origin
       (method url-fetch)
-      (uri (string-append "mirror://kde/stable/applications/" version
+      (uri (string-append "mirror://kde/stable/release-service/" version
                           "/src/kblackbox-" version ".tar.xz"))
       (sha256
-       (base32 "1x42sfpf75c6mavwkc7g7dm11y9s5dpj8igphly5kvm0pajqby0n"))))
+       (base32 "0la5w44b0gl72g3wfp0pw8gwnm287lh7nd9k5ikpszw5nn49db0h"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -10412,14 +10791,14 @@ This package is part of the KDE games module.")
 (define-public knetwalk
   (package
     (name "knetwalk")
-    (version "19.08.3")
+    (version "20.12.0")
     (source
      (origin
       (method url-fetch)
-      (uri (string-append "mirror://kde/stable/applications/" version
+      (uri (string-append "mirror://kde/stable/release-service/" version
                           "/src/knetwalk-" version ".tar.xz"))
       (sha256
-       (base32 "1i340salzgqdw8y33wrrydmpgx3pvwf5wrbljlh67cjf6s4csx7d"))))
+       (base32 "060kj06vpigdy570izsjfgnmqqrpmb8bkr9arqc109hg3avl5wjz"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -10454,14 +10833,14 @@ This package is part of the KDE games module.")
 (define-public bomber
   (package
     (name "bomber")
-    (version "19.08.3")
+    (version "20.12.0")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "mirror://kde/stable/applications/" version
+       (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/bomber-" version ".tar.xz"))
        (sha256
-        (base32 "1lvzd0mzgq25akvwvkm57l3plm65k731v2i1ahakn985bb5gc3is"))))
+        (base32 "1fjcwm591jgx3bgqpi0j5fnb2l2r2h3r6lav3vhaxz4rkf56pg2a"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -10496,14 +10875,14 @@ This package is part of the KDE games module.")
 (define-public granatier
   (package
     (name "granatier")
-    (version "19.08.3")
+    (version "20.12.0")
     (source
      (origin
       (method url-fetch)
-      (uri (string-append "mirror://kde/stable/applications/" version
+      (uri (string-append "mirror://kde/stable/release-service/" version
                           "/src/granatier-" version ".tar.xz"))
       (sha256
-       (base32 "141qmdinz7ikbbrs8dq6cap3nl22sl7pw62r80pf3xxwn2q4phpa"))))
+       (base32 "1fyh7zyacb3pnlfd29jw2jmyl8a7sjw354pi234nd5x5999xw5z6"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -10534,14 +10913,14 @@ This package is part of the KDE games module.")
 (define-public ksirk
   (package
     (name "ksirk")
-    (version "19.08.3")
+    (version "20.12.0")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "mirror://kde/stable/applications/" version
+       (uri (string-append "mirror://kde/stable/release-service/" version
                           "/src/ksirk-" version ".tar.xz"))
        (sha256
-        (base32 "1b1wixs2hp5qnvdygfwa3kvy0kn94ysa4ifmx90q6r3yfr2lpfca"))))
+        (base32 "10y7nm0x6zcc0gh3am69bbxyyb8azbbfyrdqsa023ggr7n04cn21"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -10590,14 +10969,14 @@ This package is part of the KDE games module.")
 (define-public palapeli
   (package
     (name "palapeli")
-    (version "19.08.3")
+    (version "20.12.0")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "mirror://kde/stable/applications/" version
+       (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/palapeli-" version ".tar.xz"))
        (sha256
-        (base32 "1g91ydbc0x2y2gn3lcb5w03mn7k78l5bq4cb1s59kx6yjbflv3pw"))))
+        (base32 "0xxz9g4zxljlg20g88a5lkbwzzm9yg4vxnrfigk8m018cz0nqd5b"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -10638,14 +11017,14 @@ This package is part of the KDE games module.")
 (define-public kiriki
   (package
     (name "kiriki")
-    (version "19.08.3")
+    (version "20.12.0")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "mirror://kde/stable/applications/" version
+       (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/kiriki-" version ".tar.xz"))
        (sha256
-        (base32 "1xg25dj95g81dc5l7k47am4j52abrwwfx4h73lvsbn4lc8lfmshw"))))
+        (base32 "0milc8fl1rj4yrwdvm60ampd47dyiys1xvqi5f0g7y6mgymgyk4x"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -10677,14 +11056,14 @@ This package is part of the KDE games module.")
 (define-public kigo
   (package
     (name "kigo")
-    (version "19.08.3")
+    (version "20.12.0")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "mirror://kde/stable/applications/" version
+       (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/kigo-" version ".tar.xz"))
        (sha256
-        (base32 "00l5gcbi8xyj9c1lngkrddka3a4m4cd78prfplrpq32ma9xq681f"))))
+        (base32 "088752yzmfsnppd27p8hld4x5s7sw5fagm08024l5ra1mlicdfz9"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -10697,7 +11076,7 @@ This package is part of the KDE games module.")
        ("kdbusaddons" ,kdbusaddons)
        ("ki18n" ,ki18n)
        ("kio" ,kio)
-       ("knewstuff", knewstuff)
+       ("knewstuff" ,knewstuff)
        ("ktextwidgets" ,ktextwidgets)
        ("kxmlgui" ,kxmlgui)
        ("libkdegames" ,libkdegames)
@@ -10724,14 +11103,14 @@ This package is part of the KDE games module.")
 (define-public kubrick
   (package
     (name "kubrick")
-    (version "19.08.3")
+    (version "20.12.0")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "mirror://kde/stable/applications/" version
+       (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/kubrick-" version ".tar.xz"))
        (sha256
-        (base32 "0ma8wja4rqlsmsr8cyicfpkwlgqva4450ls4c0ql53p0kabf04gx"))))
+        (base32 "0h3mypwd67sss08j5vvrih5f5ss85m9kax6412y40xmsm51lz2pq"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -10766,14 +11145,14 @@ This package is part of the KDE games module.")
 (define-public lskat
   (package
     (name "lskat")
-    (version "19.08.3")
+    (version "20.12.0")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "mirror://kde/stable/applications/" version
+       (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/lskat-" version ".tar.xz"))
        (sha256
-        (base32 "1qk5hd27zb42pbcxq5wyzz62nj5f0qdmgy54r9rnk92pzzzk94s9"))))
+        (base32 "1wg9zxp64kwjxqs4qw0h7j8yhgffbmvh8j9d4dgmz45dscngnjli"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -10805,14 +11184,14 @@ This package is part of the KDE games module.")
 (define-public kapman
   (package
     (name "kapman")
-    (version "19.08.3")
+    (version "20.12.0")
     (source
      (origin
       (method url-fetch)
-      (uri (string-append "mirror://kde/stable/applications/" version
+      (uri (string-append "mirror://kde/stable/release-service/" version
                           "/src/kapman-" version ".tar.xz"))
       (sha256
-       (base32 "03pq38caam30q4bw14c045kayw2d87xq1yaa3s2jkrylylfq3p0f"))))
+       (base32 "14x3v6li4r3gzzwfd6ar9saq2rhc7yxs0sp9ygalzq8vq4d7i1kh"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -10845,14 +11224,14 @@ This package is part of the KDE games module.")
 (define-public kspaceduel
   (package
     (name "kspaceduel")
-    (version "19.08.3")
+    (version "20.12.0")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "mirror://kde/stable/applications/" version
+       (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/kspaceduel-" version ".tar.xz"))
        (sha256
-        (base32 "1hppni0ihs7psc0dly5rxyy2a38nzhlig9yfyhi3lkh36z05pql8"))))
+        (base32 "1aixh6ygif2cm1a5g32sl5y6b5x68139pzihaxq4334c6avamdai"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -10881,14 +11260,14 @@ This package is part of the KDE games module.")
 (define-public bovo
   (package
     (name "bovo")
-    (version "19.08.3")
+    (version "20.12.0")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "mirror://kde/stable/applications/" version
+       (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/bovo-" version ".tar.xz"))
        (sha256
-        (base32 "0dbpng0w52nahmx7brsll66zw23ql1g6pcvn2k4g2lnvxch0i59g"))))
+        (base32 "18qbac366m0xma3ary11q9zxz0wgnysppcl7kpypl6ic3nf61wqz"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -10918,14 +11297,14 @@ This package is part of the KDE games module.")
 (define-public killbots
   (package
     (name "killbots")
-    (version "19.08.3")
+    (version "20.12.0")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "mirror://kde/stable/applications/" version
+       (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/killbots-" version ".tar.xz"))
        (sha256
-        (base32 "1qi86q7diw7glkp9v33yim9nhz2da4balbxa1hjrdgjdv8zdbxbm"))))
+        (base32 "1296gww42nwnai7y6m2qpjqpyc30p7z9chfv5rv0n48jvdhva88y"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -10960,14 +11339,14 @@ This package is part of the KDE games module.")
 (define-public ksnakeduel
   (package
     (name "ksnakeduel")
-    (version "19.08.3")
+    (version "20.12.0")
     (source
      (origin
       (method url-fetch)
-      (uri (string-append "mirror://kde/stable/applications/" version
+      (uri (string-append "mirror://kde/stable/release-service/" version
                           "/src/ksnakeduel-" version ".tar.xz"))
       (sha256
-       (base32 "0mprrnpax8pv7ab36zwhvdfj8id52w8g6x76nnj8qvkdlkjiqdnn"))))
+       (base32 "0mp6g258n3xzvgf23jnhkw10xgwqwqdzqfdc6r9jq6a6m8v77swz"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -10999,14 +11378,14 @@ This package is part of the KDE games module.")
 (define-public kollision
   (package
     (name "kollision")
-    (version "19.08.3")
+    (version "20.12.0")
     (source
      (origin
       (method url-fetch)
-      (uri (string-append "mirror://kde/stable/applications/" version
+      (uri (string-append "mirror://kde/stable/release-service/" version
                           "/src/kollision-" version ".tar.xz"))
       (sha256
-       (base32 "1p7qrn3d0ybpvc9k6k5wzj54dsrp1rqh39844maz0ay2fhvmch12"))))
+       (base32 "180ybafizpwjsg80npy0l9142cjsnlyxwv9dz3bq6r8v4smn2g6b"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -11037,14 +11416,14 @@ This package is part of the KDE games module.")
 (define-public knavalbattle
   (package
     (name "knavalbattle")
-    (version "19.08.3")
+    (version "20.12.0")
     (source
      (origin
       (method url-fetch)
-      (uri (string-append "mirror://kde/stable/applications/" version
-"/src/knavalbattle-" version ".tar.xz"))
+      (uri (string-append "mirror://kde/stable/release-service/" version
+                          "/src/knavalbattle-" version ".tar.xz"))
       (sha256
-       (base32 "0sdfjplqkb30x2mvh66pkzay6vn5px87779sh2s8lpl6fcw0v9g4"))))
+       (base32 "03rqf4avn61b0v340ymmzgp7s0axygjgxq1nlp5aaqbx70zcb4lq"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -11078,14 +11457,14 @@ This package is part of the KDE games module.")
 (define-public kreversi
   (package
     (name "kreversi")
-    (version "19.08.3")
+    (version "20.08.3")
     (source
      (origin
       (method url-fetch)
-      (uri (string-append "mirror://kde/stable/applications/" version
-"/src/kreversi-" version ".tar.xz"))
+      (uri (string-append "mirror://kde/stable/release-service/" version
+                          "/src/kreversi-" version ".tar.xz"))
       (sha256
-       (base32 "0b6q8df2bawgnrswhq59z37axad0q3zpvvzxdds7sz1lw505xw9h"))))
+       (base32 "0d3y072q61xcik9lf0pz0c9njvarwlvf6hqv5fp5jyqaf2902pmi"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -11121,14 +11500,14 @@ This package is part of the KDE games module.")
 (define-public ksquares
   (package
     (name "ksquares")
-    (version "19.08.3")
+    (version "20.12.0")
     (source
      (origin
       (method url-fetch)
-      (uri (string-append "mirror://kde/stable/applications/" version
+      (uri (string-append "mirror://kde/stable/release-service/" version
                           "/src/ksquares-" version ".tar.xz"))
       (sha256
-       (base32 "0hv8hls5s627lys08nnw72rfzsafj3dmp49mh2afzmh6lgk9h5vy"))))
+       (base32 "0chd30byl2kww1k699vkygrxq2wdyvi84m2bimk23q96fl8h831y"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -11158,14 +11537,14 @@ This package is part of the KDE games module.")
 (define-public kjumpingcube
   (package
     (name "kjumpingcube")
-    (version "19.08.3")
+    (version "20.12.0")
     (source
      (origin
       (method url-fetch)
-      (uri (string-append "mirror://kde/stable/applications/" version
+      (uri (string-append "mirror://kde/stable/release-service/" version
                           "/src/kjumpingcube-" version ".tar.xz"))
       (sha256
-       (base32 "0d67zqkf2xffjkj671gl2n6nj6jajyn6rgqqj5i6gm500mqi9rm1"))))
+       (base32 "1mk73il4jh15z5pm3fp65hsyvmrga11c3h7w96yamy2n2bbniapq"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -11390,7 +11769,7 @@ etc.  You can also play games on FICS or against an engine.")
 (define-public stockfish
   (package
     (name "stockfish")
-    (version "11")
+    (version "12")
     (source
      (origin
        (method git-fetch)
@@ -11399,8 +11778,15 @@ 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 "12mppipinymj8s1ipq9a7is453vncly49c32ym9wvyklsgyxfzlk"))))
+        (base32 "0vcymbwp5nf114pp3ax40s21ki5dckda15vmhr77d1mnq3fn0l32"))))
     (build-system gnu-build-system)
+    (inputs
+     `(("neural-network"
+        ,(origin
+           (method url-fetch)
+           (uri "https://tests.stockfishchess.org/api/nn/nn-82215d0fd0df.nnue")
+           (sha256
+            (base32 "1r4yqrh4di05syyhl84hqcz84djpbd605b27zhbxwg6zs07ms8c2"))))))
     (arguments
      `(#:tests? #f
        #:make-flags (list "-C" "src"
@@ -11416,10 +11802,17 @@ etc.  You can also play games on FICS or against an engine.")
                                             ("mips64el-linux" "general-64")
                                             (_ "general-32"))))
        #:phases (modify-phases %standard-phases
-                  (delete 'configure))))
+                  (delete 'configure)
+                  ;; The official neural network file is needed for building
+                  ;; and is embedded in the resulting binary.
+                  (add-after 'unpack 'copy-net
+                    (lambda* (#:key inputs #:allow-other-keys)
+                      (copy-file (assoc-ref inputs "neural-network")
+                                 "src/nn-82215d0fd0df.nnue")
+                      #t)))))
     (synopsis "Strong chess engine")
     (description
-     "Stockfish is a very strong chess engines.  It is much stronger than the
+     "Stockfish is a very strong chess engine.  It is much stronger than the
 best human chess grandmasters.  It can be used with UCI-compatible GUIs like
 ChessX.")
     (home-page "https://stockfishchess.org/")
@@ -11659,7 +12052,7 @@ game.")  ;thanks to Debian for description
        ("gsasl" ,gsasl)
        ("libgcrypt" ,libgcrypt)
        ("libircclient" ,libircclient)
-       ("protobuf" ,protobuf-2)
+       ("protobuf" ,protobuf-2)         ; remove package when no longer needed
        ("qtbase" ,qtbase)
        ("sdl" ,(sdl-union (list sdl sdl-mixer)))
        ("sqlite" ,sqlite)
@@ -11742,6 +12135,33 @@ computer opponents or against real players online.")
 inside the Zenith Colony.")
     (license license:gpl3+)))
 
+(define-public cgoban
+  (package
+    (name "cgoban")
+    (version "1.9.14")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://sourceforge/cgoban1/cgoban1/"
+                           version "/cgoban-" version ".tar.gz"))
+       (sha256
+        (base32 "0qlvkiaglqq0izfph3l04mp4rqqqm9ks6rcsrmzrggw9x706z2iv"))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("libx11" ,libx11)
+       ("libxt" ,libxt)
+       ("xorgproto" ,xorgproto)))
+    (home-page "http://cgoban1.sourceforge.net/")
+    (synopsis "Go client for X11")
+    (description "Provides a large set of Go-related services for X11:
+@itemize
+@item Local games with precise implementation of the Chinese and Japanese rulesets
+@item Edition and visualization of SGF files-Connection to the NNGS or IGS Go servers
+@item Bridge to Go modem protocol, allowing to play against Go modem-capable AIs
+such as GnuGo.
+@end itemize")
+    (license license:gpl2+)))
+
 (define-public paperview
   (let ((commit "9f8538eb6734c76877b878b8f1e52587f2ae19e6")
         (revision "1"))
@@ -11773,3 +12193,33 @@ inside the Zenith Colony.")
 X11 that won't set your CPU on fire, drain your laptop battery, or lower video
 game FPS.")
       (license license:unlicense))))
+
+(define-public curseofwar
+  (package
+    (name "curseofwar")
+    (version "1.3.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/a-nikolaev/curseofwar")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1wd71wdnj9izg5d95m81yx3684g4zdi7fsy0j5wwnbd9j34ilz1i"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f ; no tests
+       #:make-flags
+       (list (string-append "CC=" ,(cc-for-target))
+             (string-append "PREFIX=" (assoc-ref %outputs "out")))
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure))))
+    (inputs `(("ncurses" ,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
+implemented using ncurses user interface.  An SDL graphical version is also
+available.")
+    (license license:gpl3+)))
diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm
index a39ac3b84c..4d5aaa7070 100644
--- a/gnu/packages/gcc.scm
+++ b/gnu/packages/gcc.scm
@@ -9,6 +9,7 @@
 ;;; Copyright © 2018, 2020 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2020 Joseph LaFreniere <joseph@lafreniere.xyz>
 ;;; Copyright © 2020 Guy Fleury Iteriteka <gfleury@disroot.org>
+;;; Copyright © 2020 Simon Tournier <zimon.toutoune@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -759,11 +760,26 @@ as the 'native-search-paths' field."
                (for-each delete-file
                          (find-files (string-append (assoc-ref outputs "out") "/bin")
                                      ".*(c\\+\\+|cpp|g\\+\\+|gcov|gcc|gcc-.*)"))
-               #t))))))))
+               #t))))))
+    (synopsis "GCC library generating machine code on-the-fly at runtime")
+    (description
+     "This package is part of the GNU Compiler Collection and provides an
+embeddable library for generating machine code on-the-fly at runtime.  This
+shared library can then be dynamically-linked into bytecode interpreters and
+other such programs that want to generate machine code on-the-fly at run-time.
+It can also be used for ahead-of-time code generation for building standalone
+compilers.  The just-in-time (jit) part of the name is now something of a
+misnomer.")))
 
 
 (define-public gccgo-4.9
-  (custom-gcc gcc-4.9 "gccgo" '("go")
+  (custom-gcc (package
+                (inherit gcc-4.9)
+                (synopsis "Go frontend to GCC")
+                (description
+                 "This package is part of the GNU Compiler Collection and
+provides the GNU compiler for the Go programming language."))
+              "gccgo" '("go")
               %generic-search-paths
               ;; Suppress the separate "lib" output, because otherwise the
               ;; "lib" and "out" outputs would refer to each other, creating
diff --git a/gnu/packages/gd.scm b/gnu/packages/gd.scm
index 0d632de52c..2923358d8f 100644
--- a/gnu/packages/gd.scm
+++ b/gnu/packages/gd.scm
@@ -94,14 +94,14 @@ most common applications of GD involve website development.")
 (define-public perl-gd
   (package
     (name "perl-gd")
-    (version "2.72")
+    (version "2.73")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://cpan/authors/id/R/RU/RURBAN/"
                            "GD-" version ".tar.gz"))
        (sha256
-        (base32 "014ik1rng6cnjfgdarkyy5m6wl4pdzc2b445m27krfn3zh9hgl31"))))
+        (base32 "0arjpa8id6k5yjxfq0j2hsinhhjzjch5lwk6gscf48l54drrw729"))))
     (build-system perl-build-system)
     (inputs
      `(("fontconfig" ,fontconfig)
diff --git a/gnu/packages/gdb.scm b/gnu/packages/gdb.scm
index 830121751f..79fc49f5ff 100644
--- a/gnu/packages/gdb.scm
+++ b/gnu/packages/gdb.scm
@@ -40,17 +40,18 @@
   #:use-module (guix build-system gnu)
   #:use-module (srfi srfi-1))
 
-(define-public gdb-9.1
+(define-public gdb-9.2
   (package
     (name "gdb")
-    (version "9.1")
+    (version "9.2")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://gnu/gdb/gdb-"
                                  version ".tar.xz"))
+             (patches (search-patches "gdb-hurd.patch"))
              (sha256
               (base32
-               "0dqp1p7w836iwijg1zb4a784n0j4pyjiw5v6h8fg5lpx6b40x7k9"))))
+               "0mf5fn8v937qwnal4ykn3ji1y2sxk0fa1yfqi679hxmpg6pdf31n"))))
 
     (build-system gnu-build-system)
     (arguments
@@ -70,20 +71,14 @@
                      #t))
                   (add-after
                    'install 'remove-libs-already-in-binutils
-                   (lambda* (#:key inputs outputs
-                             ;; TODO: Inline the native-inputs addition and
-                             ;; below usage in the next rebuild cycle.
-                             ,@(if (%current-target-system)
-                                   '(native-inputs)
-                                   '())
+                   (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 ,@(if (%current-target-system)
-                                            '((assoc-ref native-inputs "binutils"))
-                                            '((assoc-ref inputs "binutils"))))
+                     (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")
@@ -116,7 +111,13 @@
       `(("texinfo" ,texinfo)
         ("dejagnu" ,dejagnu)
         ("pkg-config" ,pkg-config)
-        ,@(if (hurd-target?) `(("mig" ,mig)) '())))
+        ,@(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)))
+              '())))
     (home-page "https://www.gnu.org/software/gdb/")
     (synopsis "The GNU debugger")
     (description
@@ -131,7 +132,7 @@ written in C, C++, Ada, Objective-C, Pascal and more.")
 ;; <https://bugs.gnu.org/37810>.
 (define-public gdb-8.2
   (package
-    (inherit gdb-9.1)
+    (inherit gdb-9.2)
     (version "8.2.1")
     (source (origin
               (method url-fetch)
@@ -144,24 +145,26 @@ written in C, C++, Ada, Objective-C, Pascal and more.")
 (define-public gdb
   ;; This is the fixed version that packages depend on.  Update it rarely
   ;; enough to avoid massive rebuilds.
-  gdb-9.1)
+  gdb-9.2)
 
-(define-public gdb-9.2
+(define-public gdb-10
   (package
     (inherit gdb)
-    (version "9.2")
+    (version "10.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnu/gdb/gdb-"
                                   version ".tar.xz"))
-              (patches (search-patches "gdb-hurd.patch"))
               (sha256
                (base32
-                "0mf5fn8v937qwnal4ykn3ji1y2sxk0fa1yfqi679hxmpg6pdf31n"))))))
+                "1h32dckz1y8fnyxh22iyw8h3hnhxr79v1ng85px3ljn1xv71wbzq"))))
+    (inputs
+     `(("guile" ,guile-3.0)
+       ,@(alist-delete "guile" (package-inputs gdb))))))
 
 (define-public gdb-minimal
   (package/inherit
-   gdb-9.2
+   gdb-10
    (name "gdb-minimal")
    (inputs (fold alist-delete (package-inputs gdb)
                  '("libxml2" "ncurses" "python-wrapper" "source-highlight")))))
diff --git a/gnu/packages/genimage.scm b/gnu/packages/genimage.scm
index 7ad710082c..bd77e4dc33 100644
--- a/gnu/packages/genimage.scm
+++ b/gnu/packages/genimage.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2018 Danny Milosavljevic <dannym@scratchpost.org>
+;;; Copyright © 2021 Vincent Legoll <vincent.legoll@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -47,10 +48,12 @@
               (uri (git-reference
                     (url "https://github.com/pengutronix/genimage")
                     (commit (string-append "v" version))))
-              (file-name (string-append name "-" version "-checkout"))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "15jmh17lvm3jw9c92bjarly7iwhmnfl322d91mprfv10ppb9ip54"))))
+                "15jmh17lvm3jw9c92bjarly7iwhmnfl322d91mprfv10ppb9ip54"))
+              ;; will be shipped with release 14
+              (patches (search-patches "genimage-signedness.patch"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
@@ -169,7 +172,6 @@
        ("automake" ,automake)
        ;;; Note: cramfs is obsolete.
        ("dtc" ,dtc) ; for the tests
-       ("fdisk" ,fdisk) ; for the tests
        ("pkg-config" ,pkg-config)
        ("util-linux" ,util-linux))) ; for the tests
     (inputs
diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm
index df5b7825f0..c682613ff1 100644
--- a/gnu/packages/geo.scm
+++ b/gnu/packages/geo.scm
@@ -2,7 +2,7 @@
 ;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
 ;;; Copyright © 2017, 2018 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
-;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2018, 2019 Arun Isaac <arunisaac@systemreboot.net>
 ;;; Copyright © 2018 Joshua Sierles, Nextjournal <joshua@nextjournal.com>
@@ -12,6 +12,8 @@
 ;;; Copyright © 2019 Wiktor Żelazny <wzelazny@vurv.cz>
 ;;; Copyright © 2019 Hartmut Goebel <h.goebel@crazy-compilers.com>
 ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2020 Christopher Baines <mail@cbaines.net>
+;;; Copyright © 2020 Felix Gruber <felgru@posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -59,6 +61,7 @@
   #:use-module (gnu packages curl)
   #:use-module (gnu packages databases)
   #:use-module (gnu packages datastructures)
+  #:use-module (gnu packages docbook)
   #:use-module (gnu packages documentation)
   #:use-module (gnu packages elf)
   #:use-module (gnu packages flex)
@@ -101,6 +104,69 @@
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg))
 
+(define-public memphis
+  (package
+    (name "memphis")
+    (version "0.2.3")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/jiuka/memphis")
+         (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "068c3943pgbpfjq44pmvn5fmkh005ak5aa67vvrq3fn487c6w54q"))))
+    (build-system glib-or-gtk-build-system)
+    (outputs '("out" "doc"))
+    (arguments
+     `(#:configure-flags
+       (list
+        "--disable-static"
+        "--enable-gtk-doc"
+        "--enable-vala"
+        (string-append "--with-html-dir="
+                       (assoc-ref %outputs "doc")
+                       "/share/gtk-doc/html"))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-autogen
+           (lambda _
+             (substitute* "autogen.sh"
+               (("\\./configure \"\\$@\"")
+                ""))
+             #t))
+         (add-after 'patch-autogen 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "docs/reference"
+               (substitute* "libmemphis-docs.sgml"
+                 (("http://www.oasis-open.org/docbook/xml/4.3/")
+                  (string-append (assoc-ref inputs "docbook-xml")
+                                 "/xml/dtd/docbook/"))))
+             #t)))))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("docbook-xml" ,docbook-xml-4.3)
+       ("gobject-introspection" ,gobject-introspection)
+       ("gtk-doc" ,gtk-doc)
+       ("libtool" ,libtool)
+       ("pkg-config" ,pkg-config)
+       ("python" ,python-wrapper)
+       ("seed" ,seed)
+       ("vala" ,vala)))
+    (inputs
+     `(("expat" ,expat)
+       ("glib" ,glib)))
+    (propagated-inputs
+     `(("cairo" ,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.")
+    (home-page "http://trac.openstreetmap.ch/trac/memphis/")
+    (license license:lgpl2.1+)))
+
 (define-public geos
   (package
     (name "geos")
@@ -161,6 +227,12 @@ topology functions.")
              (substitute* "meson_post_install.py"
                (("gtk-update-icon-cache") "true"))
              #t))
+         (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))
          (add-after 'install 'wrap
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (let ((out (assoc-ref outputs "out"))
@@ -300,10 +372,58 @@ writing GeoTIFF information tags.")
                    (license:non-copyleft "file://LICENSE"
                                          "See LICENSE in the distribution.")))))
 
+(define-public librttopo
+  (package
+    (name "librttopo")
+    (version "1.1.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://git.osgeo.org/gitea/rttopo/librttopo")
+             (commit (string-append "librttopo-" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0h7lzlkn9g4xky6h81ndy0aa6dxz8wb6rnl8v3987jy1i6pr072p"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-autogen
+           (lambda _
+             (let ((autoconf (which "autoconf"))
+                   (autoheader (which "autoheader"))
+                   (aclocal (which "aclocal"))
+                   (automake (which "automake"))
+                   (libtoolize (which "libtoolize")))
+               (substitute* "autogen.sh"
+                            (("`which autoconf 2>/dev/null`") autoconf)
+                            (("`which autoheader 2>/dev/null`") autoheader)
+                            (("ACLOCAL=.*$")
+                             (string-append "ACLOCAL=" aclocal "\n"))
+                            (("AUTOMAKE=.*$")
+                             (string-append "AUTOMAKE=" automake "\n"))
+                            (("LIBTOOLIZE=.*$")
+                             (string-append "LIBTOOLIZE=" libtoolize "\n"))))
+             #t)))))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("libtool" ,libtool)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("geos" ,geos)))
+    (synopsis "Library to handle SQL/MM topologies")
+    (description
+     "The RT Topology Library exposes an API to create and manage standard
+(ISO 13249 aka SQL/MM) topologies using user-provided data stores.")
+    (home-page "https://git.osgeo.org/gitea/rttopo/librttopo")
+    (license license:gpl2+)))
+
 (define-public libspatialite
   (package
     (name "libspatialite")
-    (version "4.3.0a")
+    (version "5.0.0")
     (source
      (origin
        (method url-fetch)
@@ -311,19 +431,23 @@ writing GeoTIFF information tags.")
                            version ".tar.gz"))
        (sha256
         (base32
-         "16d4lpl7xrm9zy4gphy6nwanpjp8wn9g4wq2i2kh8abnlhq01448"))))
+         "1b3dmkgwbfi43hj3jzy2mh707khavrnw91vdd5sv387m8c1dfzvv"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
     (inputs
      `(("freexl" ,freexl)
        ("geos" ,geos)
+       ("librttopo" ,librttopo)
        ("libxml2" ,libxml2)
+       ("minizip" ,minizip)
        ("proj.4" ,proj.4)
        ("sqlite" ,sqlite)
        ("zlib" ,zlib)))
     (arguments
-     `(#:phases
+     `(#:configure-flags
+       '("--enable-rttopo=yes")
+       #:phases
        (modify-phases %standard-phases
          ;; 3 tests are failing, ignore them:
          (add-after 'unpack 'ignore-broken-tests
@@ -723,14 +847,14 @@ utilities for data translation and processing.")
 (define-public postgis
   (package
     (name "postgis")
-    (version "3.0.0")
+    (version "3.0.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://download.osgeo.org/postgis/source/postgis-"
                                   version ".tar.gz"))
               (sha256
                (base32
-                "15557fbk0xkngihwhqsbdyz2ng49blisf5zydw81j0gabk6x4vy0"))))
+                "05s8cx1rlysiq7dd44kf7cid0la61a4p895j9g95bvfb8v8dpzh7"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f
@@ -1212,7 +1336,7 @@ to the OSM opening hours specification.")
 (define-public josm
   (package
     (name "josm")
-    (version "16812")
+    (version "17329")
     (source (origin
               (method svn-fetch)
               (uri (svn-reference
@@ -1221,12 +1345,12 @@ to the OSM opening hours specification.")
                      (recursive? #f)))
               (sha256
                (base32
-                "131ly6ah9ygrah1wq1h2199v4hyzgflnh62ychs4jqvy9wz0dal6"))
+                "0bq6mirdsi0kmhjfzfp3innxi5a4395d7mas7ikxaz0cziljrz1i"))
               (file-name (string-append name "-" version "-checkout"))
               (modules '((guix build utils)))
             (snippet
              '(begin
-		(for-each delete-file (find-files "." ".*.jar$"))
+                (for-each delete-file (find-files "." ".*.jar$"))
                 #t))))
     (build-system ant-build-system)
     (native-inputs
@@ -1275,7 +1399,8 @@ to the OSM opening hours specification.")
                        (filter
                          (lambda (s)
                            (let ((source (assoc-ref inputs "source")))
-                             (not (equal? (substring s 0 (string-length source)) source))))
+                             (not (equal? (substring s 0 (string-length source))
+                                          source))))
                          (string-split (getenv "CLASSPATH") #\:))
                        ":"))
              #t))
@@ -1322,6 +1447,19 @@ to the OSM opening hours specification.")
                                   "Is-Local-Build: true\n"
                                   "Build-Date: 1970-01-01 00:00:00 +0000\n"))))
              #t))
+         (add-after 'install 'install-share-directories
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out               (assoc-ref outputs "out"))
+                   (share-directories '("applications" "icons" "man" "menu"
+                                        "metainfo" "mime" "pixmaps")))
+               (for-each (lambda (directory)
+                           (copy-recursively (string-append
+                                              "native/linux/tested/usr/share/"
+                                              directory)
+                                             (string-append
+                                              out "/share/" directory)))
+                         share-directories))
+             #t))
          (add-after 'install 'install-bin
            (lambda* (#:key outputs inputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
@@ -1421,15 +1559,14 @@ The API also works with MaxMind’s free GeoLite2 databases.")
 (define-public routino
   (package
    (name "routino")
-   (version "3.3.2")
+   (version "3.3.3")
    (source
     (origin
      (method url-fetch)
      (uri (string-append "http://www.routino.org/download/routino-"
                          version ".tgz"))
      (sha256
-      (base32
-       "1ccx3s99j8syxc1gqkzsaqkmyf44l7h3adildnc5iq2md7bp8wab"))))
+      (base32 "1xa7l2bjn832nk6bc7b481nv8hd2gj41jwhg0d2qy10lqdvjpn5b"))))
    (build-system gnu-build-system)
    (native-inputs
     `(("perl" ,perl)))
@@ -1542,7 +1679,7 @@ QLandkarte GT application.")
        (uri (string-append "https://www.gaia-gis.it/gaia-sins/"
                            "readosm-" version ".tar.gz"))
        (sha256
-        (base32 "0zv6p352pqjcv70nvcaf2x3011z35jqa24dcdm27a4ns1wha3cjc"))))
+        (base32 "0igif2bxf4dr82glxz9gyx5mmni0r2dsnx9p9k6pxv3c4lfhaz6v"))))
     (build-system gnu-build-system)
     (inputs
      `(("expat" ,expat)
@@ -1559,14 +1696,14 @@ input file (in @code{.osm} or @code{.osm.pbf} format).")
 (define-public spatialite-tools
   (package
     (name "spatialite-tools")
-    (version "4.3.0")
+    (version "5.0.0")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://www.gaia-gis.it/gaia-sins/"
                            "spatialite-tools-" version ".tar.gz"))
        (sha256
-        (base32 "12fggjhi8cgwvw8f6nk76f83b8lqkc07abxyj5ap6f2gq2dqafgp"))))
+        (base32 "0ckddgdpxhy6vkpr9q2hnx5qmanrd8g4pqnifbrq1i5jrj82s2dd"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
@@ -1574,8 +1711,10 @@ input file (in @code{.osm} or @code{.osm.pbf} format).")
      `(("expat" ,expat)
        ("freexl" ,freexl)
        ("geos" ,geos)
+       ("librttopo" ,librttopo)
        ("libspatialite" ,libspatialite)
        ("libxml2" ,libxml2)
+       ("minizip" ,minizip)
        ("proj.4" ,proj.4)
        ("readosm" ,readosm)
        ("sqlite" ,sqlite)
@@ -1682,7 +1821,7 @@ track your position right from your laptop.")
                    license:zlib))))
 
 (define-public grass
-  (let* ((version "7.8.2")
+  (let* ((version "7.8.5")
          (majorminor (string-join (list-head (string-split version #\.) 2) ""))
          (grassxx (string-append "grass" majorminor)))
     (package
@@ -1694,10 +1833,10 @@ track your position right from your laptop.")
          (uri (string-append "https://grass.osgeo.org/" grassxx
                              "/source/grass-" version ".tar.gz"))
          (sha256
-          (base32 "1fwsm99kz0bxvjk7442qq1h45ikrmhba8bqclafb61gqg1q6ymrk"))))
+          (base32 "0dzzhgcsrszzinvjir50nvzq873b8gsp0p9k8fvcrv14amkbnnd3"))))
       (build-system gnu-build-system)
       (inputs
-       `(("bzip2", bzip2)
+       `(("bzip2" ,bzip2)
          ("cairo" ,cairo)
          ("fftw" ,fftw)
          ("freetype" ,freetype)
@@ -1786,8 +1925,14 @@ track your position right from your laptop.")
                  (symlink (string-append dir "/lib")
                           (string-append out "/lib")))
                #t))
-           (add-after 'install-links 'wrap-python
-             (assoc-ref python:%standard-phases 'wrap)))))
+           (add-after 'install-links 'python:wrap
+             (assoc-ref python:%standard-phases 'wrap))
+           (add-after 'python:wrap 'wrap-with-python-interpreter
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let ((out (assoc-ref outputs "out")))
+                 (wrap-program (string-append out "/bin/" ,grassxx)
+                   `("GRASS_PYTHON" = (,(which "python3"))))
+                 #t))))))
       (synopsis "GRASS Geographic Information System")
       (description
        "GRASS (Geographic Resources Analysis Support System), is a Geographic
@@ -2014,6 +2159,7 @@ growing set of geoscientific methods.")
        ("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)
diff --git a/gnu/packages/gettext.scm b/gnu/packages/gettext.scm
index b9070ae818..de28c2341b 100644
--- a/gnu/packages/gettext.scm
+++ b/gnu/packages/gettext.scm
@@ -9,6 +9,7 @@
 ;;; Copyright © 2017 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2019 Miguel <rosen644835@gmail.com>
+;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -34,9 +35,11 @@
   #:use-module (guix build-system perl)
   #:use-module (gnu packages docbook)
   #:use-module (gnu packages emacs)
+  #:use-module (gnu packages hurd)
   #:use-module (gnu packages libunistring)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages perl)
+  #:use-module (gnu packages perl-check)
   #:use-module (gnu packages tex)
   #:use-module (gnu packages xml)
   #:use-module (guix utils))
@@ -106,7 +109,11 @@
                #t)))))
 
        ;; When tests fail, we want to know the details.
-       #:make-flags '("VERBOSE=yes")))
+       #:make-flags '("VERBOSE=yes"
+                      ,@(if (hurd-target?)
+                            ;; Linking to libgettextlib.so makes test-raise fail
+                            '("XFAIL_TESTS=test-raise")
+                            '()))))
     (home-page "https://www.gnu.org/software/gettext/")
     (synopsis
      "Tools and documentation for translation (used to build other packages)")
@@ -179,14 +186,14 @@ color, font attributes (weight, posture), or underlining.")
 (define-public po4a
   (package
     (name "po4a")
-    (version "0.57")
+    (version "0.61")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/mquinson/po4a/releases/download/v"
                                   version "/po4a-" version ".tar.gz"))
               (sha256
                (base32
-                "15yd27krlpdvjhcnwys6i5k1ww62ifq2yx8k1zxyxiwy84myqmdv"))))
+                "1nw61dj7ymrsjps79vvfdzp549drwd51kyj598937zvyafq4r5b2"))))
     (build-system perl-build-system)
     (arguments
      `(#:phases
@@ -219,12 +226,13 @@ color, font attributes (weight, posture), or underlining.")
              #t))
          (add-before 'check 'disable-failing-tests
            (lambda _
-             ;; FIXME: ‘Files ../t-03-asciidoc/Titles.po and Titles.po differ’.
-             (delete-file "t/03-asciidoc.t")
-
              ;; FIXME: these tests require SGMLS.pm.
              (delete-file "t/01-classes.t")
-             (delete-file "t/16-sgml.t")
+
+             (delete-file "t/add.t")
+             (delete-file "t/core-porefs.t")
+             (delete-file "t/fmt-asciidoc.t")
+             (delete-file "t/fmt-sgml.t")
 
              #t)))))
     (native-inputs
@@ -236,6 +244,7 @@ color, font attributes (weight, posture), or underlining.")
 
        ;; For tests.
        ("docbook-xml" ,docbook-xml-4.1.2)
+       ("perl-test-pod" ,perl-test-pod)
        ("perl-yaml-tiny" ,perl-yaml-tiny)
        ("texlive" ,texlive-tiny)))
     (home-page "https://po4a.org/")
diff --git a/gnu/packages/gimp.scm b/gnu/packages/gimp.scm
index c2fca073e3..4d229a1fd9 100644
--- a/gnu/packages/gimp.scm
+++ b/gnu/packages/gimp.scm
@@ -3,9 +3,10 @@
 ;;; Copyright © 2016, 2018 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2016, 2017, 2018, 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
-;;; Copyright © 2018 Leo Famulari <leo@famulari.name>
+;;; Copyright © 2018, 2020 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2018 Thorsten Wilms <t_w_@freenet.de>
 ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -34,20 +35,134 @@
   #:use-module (gnu packages)
   #:use-module (gnu packages algebra)
   #:use-module (gnu packages autotools)
+  #:use-module (gnu packages base)
+  #:use-module (gnu packages documentation)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages gnome)
+  #:use-module (gnu packages graphics)
   #:use-module (gnu packages image)
   #:use-module (gnu packages ghostscript)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages xml)
+  #:use-module (gnu packages linux)
+  #: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 web)
   #:use-module (gnu packages xorg))
 
+(define-public poly2tri-c
+  (package
+    (name "poly2tri-c")
+    (version "0.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://storage.googleapis.com/"
+                       "google-code-archive-source/v2/code.google.com/"
+                       "poly2tri-c/source-archive.zip"))
+       (file-name
+        (string-append name "-" version ".zip"))
+       (sha256
+        (base32 "17cw0zhbnf2gb59jm26z0wcarqgdwir9jr1fpi3v9lcvyb2s3mqj"))))
+    (build-system glib-or-gtk-build-system)
+    (outputs '("out" "doc"))
+    (arguments
+     `(#:configure-flags
+       (list
+        "--disable-static")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'disable-strict-rules
+           (lambda _
+             (substitute* "configure.ac"
+               (("\\$CFLAGS -Wall -ansi -pedantic")
+                "$CFLAGS")
+               (("\\$CFLAGS -Werror")
+                "$CFLAGS"))
+             #t))
+         (add-after 'disable-strict-rules 'fix-build-errors
+           (lambda _
+             (substitute* "poly2tri-c/refine/Makefile.am"
+               (("cdt.c")
+                "rcdt.c")
+               (("cdt.h")
+                "rcdt.h")
+               (("utils.c")
+                "rutils.c")
+               (("utils.h")
+                "rutils.h"))
+             #t))
+         (add-before 'bootstrap 'configure-later
+           (lambda _
+             (setenv "NOCONFIGURE" "set")
+             #t))
+         (add-after 'build 'generate-doc
+           (lambda _
+             (invoke "doxygen")
+             #t))
+         (add-after 'install 'install-doc
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (doc (assoc-ref outputs "doc")))
+               (copy-recursively
+                "doc"
+                (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)))
+    (propagated-inputs
+     `(("glib" ,glib)))
+    (synopsis "2D constrained Delaunay triangulation library")
+    (description "Poly2Tri-C is a library for generating, refining and rendering
+2-Dimensional Constrained Delaunay Triangulations.")
+    (home-page "https://code.google.com/archive/p/poly2tri-c/")
+    (license license:bsd-3)))
+
+(define-public mrg
+  (package
+    (name "mrg")
+    (version "0.1.4")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/hodefoting/mrg")
+         (commit version)))
+       (file-name
+        (git-file-name name version))
+       (sha256
+        (base32 "106qhh0c11576cc5kh90ds0ram72d3r6n9sadw0y4krnhap6dvwk"))))
+    (build-system meson-build-system)
+    (arguments
+     `(#:glib-or-gtk? #t))   ; To wrap binaries and/or compile schemas
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (propagated-inputs
+     `(("alsa" ,alsa-lib)
+       ("cairo" ,cairo)
+       ("gtk+" ,gtk+)
+       ("mmm" ,mmm)
+       ("x11" ,libx11)))
+    (synopsis "Microraptor GUI")
+    (description "MrG is is a C API for creating user interfaces.  It can be
+used as an application writing environment or as an interactive canvas for part
+of a larger interface.")
+    (home-page "https://github.com/hodefoting/mrg")
+    (license license:lgpl2.0+)))
+
 (define-public babl
   (package
     (name "babl")
@@ -75,7 +190,7 @@
     (propagated-inputs
      ;; Propagated to satisfy ‘babl.pc’.
      `(("lcms" ,lcms)))
-    (home-page "http://gegl.org/babl/")
+    (home-page "https://gegl.org/babl/")
     (synopsis "Image pixel format conversion library")
     (description
      "Babl is a dynamic, any-to-any pixel format translation library.
@@ -90,7 +205,7 @@ provided, as well as a framework to add new color models and data types.")
 (define-public gegl
   (package
     (name "gegl")
-    (version "0.4.24")
+    (version "0.4.26")
     (source (origin
               (method url-fetch)
               (uri (list (string-append "https://download.gimp.org/pub/gegl/"
@@ -104,11 +219,26 @@ provided, as well as a framework to add new color models and data types.")
                                         "/gegl-" version ".tar.xz")))
               (sha256
                (base32
-                "0ji57s7cba94vzy49agn7x47ca61rccm6rif0cb0s6rl4ygljrbp"))))
+                "097427icgpgvcx40019b3dm8m84cchz79pixzpz648drs8p1wdqg"))))
     (build-system meson-build-system)
     (arguments
      `(#:configure-flags
-       (list "-Dintrospection=false")))
+       (list "-Dintrospection=false")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'extend-test-time-outs
+           (lambda _
+             ;; Multiply some poorly-chosen time-outs for busy build machines.
+             (substitute* "tests/simple/test-node-exponential.c"
+               (("G_TIME_SPAN_SECOND" match)
+                (string-append "10 * " match)))
+             (substitute* "tests/simple/test-buffer-sharing.c"
+               (("g_timeout_add_seconds\\([0-9]+" match)
+                (string-append match "0")))
+             (substitute* (find-files "tests" "^meson\\.build$")
+               (("timeout ?: [0-9]+" match)
+                (string-append match "0")))
+             #t)))))
     ;; These are propagated to satisfy 'gegl-0.4.pc'.
     (propagated-inputs
      `(("babl" ,babl)
@@ -135,7 +265,7 @@ buffers.")
 (define-public gimp
   (package
     (name "gimp")
-    (version "2.10.20")
+    (version "2.10.22")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://download.gimp.org/pub/gimp/v"
@@ -143,7 +273,7 @@ buffers.")
                                   "/gimp-" version ".tar.bz2"))
               (sha256
                (base32
-                "0g3vzh1bjffqx94mfghmwvkhncv71cgah2mnfx17q00s9f3rybz1"))))
+                "1fqqyshakvdarf1jipk2n33ibqr23ni22z3d8srq13bpydblpf1d"))))
     (build-system gnu-build-system)
     (outputs '("out"
                "doc"))                            ; 9 MiB of gtk-doc HTML
@@ -195,6 +325,7 @@ buffers.")
        ("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
@@ -278,7 +409,7 @@ inverse fourier transform.")
 (define-public libmypaint
   (package
     (name "libmypaint")
-    (version "1.5.1")
+    (version "1.6.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/mypaint/libmypaint/"
@@ -286,7 +417,7 @@ inverse fourier transform.")
                                   version ".tar.xz"))
               (sha256
                (base32
-                "0aqcv4fyscpfhknxgfpq0v84aj2nzigqvpi4zgv2zkl41h51by5f"))))
+                "0priwpmc7dizccqvn21ig6d649bprl3xl1hmjj7nddznjgr585vl"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("intltool" ,intltool)
@@ -407,3 +538,92 @@ tools for healing selections (content-aware fill), enlarging the canvas and
 healing the border, increasing the resolution while adding detail, and
 transferring the style of an image.")
     (license license:gpl3+)))
+
+(define-public glimpse
+  (package
+    (name "glimpse")
+    (version "0.2.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/glimpse-editor/Glimpse")
+                     (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0drngj2xqzxfaag6pc4xjffiw003n4y43x5rb5bf4ziv1ac51dm9"))))
+    (build-system gnu-build-system)
+    (outputs '("out"
+               "doc"))                            ; 9 MiB of gtk-doc HTML
+    (arguments
+     '(#:configure-flags
+       (list (string-append "--with-html-dir="
+                            (assoc-ref %outputs "doc")
+                            "/share/gtk-doc/html")
+             "--enable-gtk-doc"
+
+             ;; Prevent the build system from running 'gtk-update-icon-cache'
+             ;; which is not needed during the build because Guix runs it at
+             ;; profile creation time.
+             "ac_cv_path_GTK_UPDATE_ICON_CACHE=true"
+
+             ;; Disable automatic network request on startup to check for
+             ;; version updates.
+             "--disable-check-update"
+
+             ;; ./configure requests not to annoy upstream with packaging bugs.
+             "--with-bug-report-url=https://bugs.gnu.org/guix")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'install-sitecustomize.py
+           ;; Install 'sitecustomize.py' into glimpse's python directory to
+           ;; add pygobject and pygtk to pygimp's search path.
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((pythonpath (getenv "PYTHONPATH"))
+                    (out        (assoc-ref outputs "out"))
+                    (sitecustomize.py
+                     (string-append
+                      out "/lib/glimpse/2.0/python/sitecustomize.py")))
+               (call-with-output-file sitecustomize.py
+                 (lambda (port)
+                   (format port "import site~%")
+                   (format port "for dir in '~a'.split(':'):~%" pythonpath)
+                   (format port "    site.addsitedir(dir)~%")))))))))
+    (native-inputs
+     `(("autoconf" ,autoconf-wrapper)
+       ("automake" ,automake)
+       ("gtk-doc" ,gtk-doc)
+       ("intltool" ,intltool)
+       ("libtool" ,libtool)
+       ("libxslt" ,libxslt) ; for xsltproc
+       ("pkg-config" ,pkg-config)
+       ("glib:bin" ,glib "bin"))) ; for gdbus-codegen
+    (inputs
+     `(("babl" ,babl)
+       ("glib" ,glib)
+       ("glib-networking" ,glib-networking)
+       ("libtiff" ,libtiff)
+       ("libwebp" ,libwebp)
+       ("libjpeg" ,libjpeg-turbo)
+       ("atk" ,atk)
+       ("gexiv2" ,gexiv2)
+       ("gtk+" ,gtk+-2)
+       ("libmypaint" ,libmypaint)
+       ("mypaint-brushes" ,mypaint-brushes-1.3)
+       ("exif" ,libexif)                ; optional, EXIF + XMP support
+       ("lcms" ,lcms)                   ; optional, color management
+       ("librsvg" ,librsvg)             ; optional, SVG support
+       ("libxcursor" ,libxcursor)       ; optional, Mouse Cursor support
+       ("poppler" ,poppler)             ; optional, PDF support
+       ("poppler-data" ,poppler-data)
+       ("python" ,python-2)             ; optional, Python support
+       ("python2-pygtk" ,python2-pygtk) ; optional, Python support
+       ("gegl" ,gegl)))
+    (home-page "https://glimpse-editor.github.io/")
+    (synopsis "Glimpse Image Editor")
+    (description "The Glimpse Image Editor is an application for image
+manipulation tasks such as photo retouching, composition and authoring.
+It supports all common image formats as well as specialized ones.  It
+features a highly customizable interface that is extensible via a plugin
+system.  It was forked from the GNU Image Manipulation Program.")
+    (license license:gpl3+)))
diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm
index fb33bd7f6d..1d44ef8ee1 100644
--- a/gnu/packages/gl.scm
+++ b/gnu/packages/gl.scm
@@ -13,6 +13,7 @@
 ;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
 ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org>
+;;; Copyright © 2020 Kei Kebreau <kkebreau@posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -60,6 +61,7 @@
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system meson)
+  #:use-module (guix build-system waf)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix utils)
@@ -233,14 +235,7 @@ also known as DXTn or DXTC) for Mesa.")
 (define-public mesa
   (package
     (name "mesa")
-    (version "20.0.7")
-
-    ;; Mesa 20.0.5 through 20.0.7 has problems with some graphic drivers, so
-    ;; we need this newer version.
-    ;; https://gitlab.freedesktop.org/mesa/mesa/-/issues/2882
-    ;; https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4861
-    (replacement mesa-20.0.8)
-
+    (version "20.1.9")
     (source
       (origin
         (method url-fetch)
@@ -252,7 +247,7 @@ also known as DXTn or DXTC) for Mesa.")
                                   version "/mesa-" version ".tar.xz")))
         (sha256
          (base32
-          "0y517qpdg6v6dsdgzb365p03m30511sbyh8pq0mcvhvjwy7javpy"))
+          "10kk8a8k7f4ip8yaiqdyrx162nbw8pw4h3b4hs4ha8mpd43wlldj"))
         (patches
          (search-patches "mesa-skip-disk-cache-test.patch"))))
     (build-system meson-build-system)
@@ -446,21 +441,6 @@ device drivers allows Mesa to be used in many different environments ranging
 from software emulation to complete hardware acceleration for modern GPUs.")
     (license license:x11)))
 
-;; Replacement package to fix <https://gitlab.freedesktop.org/mesa/mesa/-/issues/2863>.
-(define mesa-20.0.8
-  (package
-    (inherit mesa)
-    (version "20.0.8")
-    (source (origin
-              (inherit (package-source mesa))
-              (uri (list (string-append "https://mesa.freedesktop.org/archive/"
-                                        "mesa-" version ".tar.xz")
-                         (string-append "ftp://ftp.freedesktop.org/pub/mesa/"
-                                        "mesa-" version ".tar.xz")))
-              (sha256
-               (base32
-                "0v0bfh3ay07s6msxmklvwfaif0q02kq2yhy65fdhys49vw8c1w3c"))))))
-
 (define-public mesa-opencl
   (package/inherit mesa
     (name "mesa-opencl")
@@ -790,7 +770,7 @@ OpenGL.")
 (define-public glfw
   (package
     (name "glfw")
-    (version "3.2.1")
+    (version "3.3.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/glfw/glfw"
@@ -798,7 +778,7 @@ OpenGL.")
                                   "/glfw-" version ".zip"))
               (sha256
                (base32
-                "09kk5yc1zhss9add8ryqrngrr16hdmc94rszgng135bhw09mxmdp"))))
+                "1izgc4r0ypxwwklfzj98ab4xqsjpb1wbsfdbivvxpmr95x8km8q8"))))
     (build-system cmake-build-system)
     (arguments
      '(#:tests? #f ; no test target
@@ -812,6 +792,7 @@ OpenGL.")
        ;; These are in 'Requires.private' of 'glfw3.pc'.
        ("libx11" ,libx11)
        ("libxrandr" ,libxrandr)
+       ("libxi" ,libxi)
        ("libxinerama" ,libxinerama)
        ("libxcursor" ,libxcursor)
        ("libxxf86vm" ,libxxf86vm)))
@@ -1035,3 +1016,62 @@ the glProgramViewportFlip before it was replaced with glProgramViewportInfo.")
 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 license:zlib))))
+
+(define-public glmark2
+  (package
+    (name "glmark2")
+    (version "2020.04")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/glmark2/glmark2")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0ywpzp0imi3f8iyp7d1739576zx2nsr3db5hp2as4yhflfyq1as2"))
+              (modules '((guix build utils)))
+              ;; Fix Python 3 incompatibility.
+              (snippet
+               '(begin
+                  (substitute* "wscript"
+                    (("(sorted\\()FLAVORS\\.keys\\(\\)(.*)" _ beginning end)
+                     (string-append beginning "list(FLAVORS)" end)))
+                  #t))))
+    (build-system waf-build-system)
+    (arguments
+     '(#:tests? #f                      ; no check target
+       #:configure-flags
+       (list (string-append "--with-flavors="
+                            (string-join '("x11-gl" "x11-glesv2"
+                                           "drm-gl" "drm-glesv2"
+                                           "wayland-gl" "wayland-glesv2")
+                                         ",")))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-paths
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((mesa (assoc-ref inputs "mesa")))
+               (substitute* (find-files "src" "gl-state-.*\\.cpp$")
+                 (("libGL.so") (string-append mesa "/lib/libGL.so"))
+                 (("libEGL.so") (string-append mesa "/lib/libEGL.so"))
+                 (("libGLESv2.so") (string-append mesa "/lib/libGLESv2.so")))
+               #t))))))
+    (native-inputs
+     `(("pkg-config" ,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)))
+    (home-page "https://github.com/glmark2/glmark2")
+    (synopsis "OpenGL 2.0 and OpenGL ES 2.0 benchmark")
+    (description
+     "glmark2 is an OpenGL 2.0 and OpenGL ES 2.0 benchmark based on the
+original glmark benchmark by Ben Smith.")
+    (license license:gpl3+)))
diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
index 9f0721b8c2..431111f811 100644
--- a/gnu/packages/glib.scm
+++ b/gnu/packages/glib.scm
@@ -13,6 +13,7 @@
 ;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org>
 ;;; Copyright © 2019, 2020 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2020 Nicolò Balzarotti <nicolo@nixo.xyz>
+;;; Copyright © 2020 Arthur Margerit <ruhtra.mar@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -53,6 +54,7 @@
   #:use-module (gnu packages package-management)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages perl-check)
+  #:use-module (gnu packages popt)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-xyz)
@@ -61,6 +63,7 @@
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg)
   #:use-module (guix build-system gnu)
+  #:use-module (guix build-system cmake)
   #:use-module (guix build-system meson)
   #:use-module (guix build-system perl)
   #:use-module (guix build-system python)
@@ -178,6 +181,7 @@ shared NFS home directories.")
   (package
    (name "glib")
    (version "2.62.6")
+   (replacement glib-with-gio-patch)
    (source (origin
             (method url-fetch)
             (uri (string-append "mirror://gnome/sources/"
@@ -384,11 +388,20 @@ dynamic loading, and an object system.")
    (home-page "https://developer.gnome.org/glib/")
    (license license:lgpl2.1+)))
 
+(define glib-with-gio-patch
+  ;; GLib with a fix for <https://bugs.gnu.org/35594>.
+  ;; TODO: Fold into 'glib' above in the next rebuild cycle.
+  (package
+    (inherit glib)
+    (source (origin
+              (inherit (package-source glib))
+              (patches (cons (search-patch "glib-appinfo-watch.patch")
+                             (origin-patches (package-source glib))))))))
+
 (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)
+  (package/inherit glib
     (properties (alist-delete 'hidden? (package-properties glib)))
     (outputs (cons "doc" (package-outputs glib))) ; 20 MiB of GTK-Doc reference
     (native-inputs
@@ -416,17 +429,20 @@ dynamic loading, and an object system.")
   (package
     (name "gobject-introspection")
     (version "1.62.0")
-    (source (origin
-             (method url-fetch)
-             (uri (string-append "mirror://gnome/sources/"
-                   "gobject-introspection/" (version-major+minor version)
-                   "/gobject-introspection-" version ".tar.xz"))
-             (sha256
-              (base32 "18lhglg9v6y83lhqzyifc1z0wrlawzrhzzxx0a3h1g7xaz97xvmi"))
-             (patches (search-patches
-                       "gobject-introspection-cc.patch"
-                       "gobject-introspection-girepository.patch"
-                       "gobject-introspection-absolute-shlib-path.patch"))))
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/"
+                       "gobject-introspection/" (version-major+minor version)
+                       "/gobject-introspection-" version ".tar.xz"))
+       (sha256
+        (base32 "18lhglg9v6y83lhqzyifc1z0wrlawzrhzzxx0a3h1g7xaz97xvmi"))
+       (patches
+        (search-patches
+         "gobject-introspection-cc.patch"
+         "gobject-introspection-girepository.patch"
+         "gobject-introspection-absolute-shlib-path.patch"))))
     (build-system meson-build-system)
     (arguments
      `(#:phases
@@ -437,34 +453,38 @@ dynamic loading, and an object system.")
                (("#!@PYTHON_CMD@")
                 (string-append "#!" (which "python3"))))
              #t)))))
+    (native-inputs
+     `(("glib" ,glib "bin")
+       ("pkg-config" ,pkg-config)))
     (inputs
      `(("bison" ,bison)
        ("flex" ,flex)
        ("glib" ,glib)
        ("python" ,python-wrapper)
        ("zlib" ,zlib)))
-    (native-inputs
-     `(("glib" ,glib "bin")
-       ("pkg-config" ,pkg-config)))
     (propagated-inputs
      `(;; In practice, GIR users will need libffi when using
        ;; gobject-introspection.
        ("libffi" ,libffi)))
     (native-search-paths
-     (list (search-path-specification
-            (variable "GI_TYPELIB_PATH")
-            (files '("lib/girepository-1.0")))))
+     (list
+      (search-path-specification
+       (variable "GI_TYPELIB_PATH")
+       (files '("lib/girepository-1.0")))))
     (search-paths native-search-paths)
-    (home-page "https://wiki.gnome.org/GObjectIntrospection")
-    (synopsis "Generate interface introspection data for GObject libraries")
-    (description
-     "GObject introspection is a middleware layer between C libraries (using
-GObject) and language bindings.  The C library can be scanned at compile time
-and generate a metadata file, in addition to the actual native C library.  Then
-at runtime, language bindings can read this metadata and automatically provide
-bindings to call into the C library.")
-    ; Some bits are distributed under the LGPL2+, others under the GPL2+
-    (license license:gpl2+)))
+    (synopsis "GObject introspection tools and libraries")
+    (description "GObject introspection is a middleware layer between
+C libraries (using GObject) and language bindings.  The C library can be scanned
+at compile time and generate metadata files, in addition to the actual native
+C library.  Then language bindings can read this metadata and automatically
+provide bindings to call into the C library.")
+    (home-page "https://wiki.gnome.org/Projects/GObjectIntrospection")
+    (license
+     (list
+      ;; For library.
+      license:lgpl2.0+
+      ;; For tools.
+      license:gpl2+))))
 
 (define intltool
   (package
@@ -662,6 +682,24 @@ has an ease of use unmatched by other C++ callback libraries.")
 useful for C++.")
     (license license:lgpl2.1+)))
 
+ (define-public glibmm-2.64
+   (package
+    (inherit glibmm)
+    (name "glibmm")
+    (version "2.64.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/glibmm/"
+                       (version-major+minor version)
+                       "/glibmm-" version ".tar.xz"))
+       (sha256
+        (base32 "1v6lp23fr2qh4zshcnm28sn29j3nzgsvcqj2nhmrnvamipjq4lm7"))))
+     (propagated-inputs
+      `(("libsigc++" ,libsigc++)
+        ("glib" ,glib)))))
+
 (define-public python2-pygobject-2
   (package
     (name "python2-pygobject")
@@ -677,8 +715,7 @@ useful for C++.")
        (sha256
         (base32
          "0nkam61rsn7y3wik3vw46wk5q2cjfh2iph57hl9m39rc8jijb7dv"))
-       (patches (search-patches
-                 "python2-pygobject-2-gi-info-type-error-domain.patch"))))
+       (patches (search-patches "python2-pygobject-2-deprecation.patch"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("which" ,which)
@@ -914,10 +951,49 @@ programming language.  It also contains the utility
     (home-page "https://sourceforge.net/projects/dbus-cplusplus/")
     (license license:lgpl2.1+)))
 
+(define-public dbus-cxx
+  (package
+    (name "dbus-cxx")
+    (version "0.12.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://sourceforge/dbus-cxx/dbus-cxx/"
+                                  version "/dbus-cxx-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1acsgpkd9v7b9jdc79ijmh9dbdfrzgkwkaff518i3zpk7y6g5mzw"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#: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)))
+    (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
+relies on sigc++ to provide an Oriented Object interface.\n
+This package provide 2 utils:
+@enumerate
+@item @command{dbus-cxx-xml2cpp} to generate proxy and adapter
+@item @command{dbus-cxx-introspect} to introspect a dbus interface
+@end enumerate
+
+Some codes examples can be find at:
+@url{https://dbus-cxx.github.io/examples.html}")
+    (home-page "https://dbus-cxx.github.io/")
+    (license license:gpl3)))
+
 (define-public appstream-glib
   (package
     (name "appstream-glib")
-    (version "0.7.17")
+    (version "0.7.18")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://people.freedesktop.org/~hughsient/"
@@ -925,7 +1001,7 @@ programming language.  It also contains the utility
                                   "appstream-glib-" version ".tar.xz"))
               (sha256
                (base32
-                "0jg58m1p5xfrh8zkpqhhg00nqs727z5i1qy6sb0a3vyc98fyk9vw"))))
+                "00j0kkgf224nzmrha72g8pd72mymhph7vaisj35i4ffy7cpd47na"))))
     (build-system meson-build-system)
     (native-inputs
      `(("gettext" ,gettext-minimal)
diff --git a/gnu/packages/gnome-xyz.scm b/gnu/packages/gnome-xyz.scm
index 83e0fc785e..eb99fda78e 100644
--- a/gnu/packages/gnome-xyz.scm
+++ b/gnu/packages/gnome-xyz.scm
@@ -1,12 +1,14 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2019, 2020 Leo Prikler <leo.prikler@student.tugraz.at>
-;;; Copyright © 2019 Alexandros Theodotou <alex@zrythm.org>
+;;; Copyright © 2019, 2020, 2021 Leo Prikler <leo.prikler@student.tugraz.at>
+;;; Copyright © 2019, 2021 Alexandros Theodotou <alex@zrythm.org>
 ;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org>
 ;;; Copyright © 2020 Alex Griffin <a@ajgrf.com>
 ;;; Copyright © 2020 Jack Hill <jackhill@jackhill.us>
+;;; Copyright © 2020 Kei Kebreau <kkebreau@posteo.net>
 ;;; Copyright © 2020 Ekaitz Zarraga <ekaitz@elenq.tech>
 ;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2020 Ryan Prior <rprior@protonmail.com>
+;;; Copyright © 2020 Ellis Kenyo <me@elken.dev>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -31,69 +33,62 @@
   #:use-module (guix git-download)
   #:use-module (guix packages)
   #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (gnu packages autotools)
   #:use-module (gnu packages base)
   #:use-module (gnu packages bash)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages gtk)
+  #:use-module (gnu packages inkscape)
+  #:use-module (gnu packages image)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages ssh)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages ruby)
+  #:use-module (gnu packages web)
   #:use-module (gnu packages xml))
 
-(define-public matcha-theme
+(define-public arc-icon-theme
   (package
-    (name "matcha-theme")
-    (version "2020-05-09")
+    (name "arc-icon-theme")
+    (version "20161122")
     (source
-      (origin
-        (method git-fetch)
-        (uri
-          (git-reference
-            (url "https://github.com/vinceliuice/Matcha-gtk-theme")
-            (commit version)))
-        (file-name (git-file-name name version))
-        (sha256
-          (base32
-            "0fp3ijynyvncy2byjjyba573p81x2pl2hdzv17mg40r8d5mjlkww"))))
-    (build-system trivial-build-system)
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/horst3180/arc-icon-theme")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1ch3hp08qri93510hypzz6m2x4xgg2h15wvnhjwh1x1s1b7jvxjd"))))
+    (build-system gnu-build-system)
     (arguments
-     '(#:modules ((guix build utils))
-       #:builder
-       (begin
-         (use-modules (guix build utils))
-         (let* ((out (assoc-ref %outputs "out"))
-                (source (assoc-ref %build-inputs "source"))
-                (bash (assoc-ref %build-inputs "bash"))
-                (coreutils (assoc-ref %build-inputs  "coreutils"))
-                (themesdir (string-append out "/share/themes")))
-           (setenv "PATH"
-                   (string-append coreutils "/bin:"
-                                  (string-append bash "/bin:")))
-           (copy-recursively source (getcwd))
-           (patch-shebang "install.sh")
-           (mkdir-p themesdir)
-           (invoke "./install.sh" "-d" themesdir)
-           #t))))
-    (inputs
-     `(("gtk-engines" ,gtk-engines)))
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'disable-configure-during-bootstrap
+           (lambda _
+             (substitute* "autogen.sh"
+               (("^\"\\$srcdir/configure\".*") ""))
+             #t)))))
     (native-inputs
-     `(("bash" ,bash)
-       ("coreutils" ,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
-like Gnome, Unity, Budgie, Pantheon, XFCE, Mate and others.")
-    (home-page "https://github.com/vinceliuice/matcha")
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)))
+    ;; When Arc is missing an icon, it looks in the Moka icon theme for it.
+    (propagated-inputs
+     `(("moka-icon-theme" ,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
+the Moka icon theme.")
+    (home-page "https://github.com/horst3180/arc-icon-theme")
     (license license:gpl3+)))
 
 (define-public delft-icon-theme
   (package
     (name "delft-icon-theme")
-    (version "1.12")
+    (version "1.14")
     (source
      (origin
        (method git-fetch)
@@ -102,7 +97,7 @@ like Gnome, Unity, Budgie, Pantheon, XFCE, Mate and others.")
              (commit (string-append "v" version))))
        (sha256
         (base32
-         "1r6b6jf793jxz15ljniwbqy3vcvsl2712qiigfrfrm46fdxlshjd"))
+         "1iw85cxx9lv7irs28qi3815dk9f9vldv2j7jf1x5l1dqzwaxgwpb"))
        (file-name (git-file-name name version))))
     (build-system copy-build-system)
     (arguments
@@ -123,6 +118,93 @@ which haven't been updated for some years.  The new app icons are ported from
 the Obsidian icon theme.")
     (license license:gpl3)))
 
+(define-public faba-icon-theme
+  (package
+    (name "faba-icon-theme")
+    (version "4.3")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/snwh/faba-icon-theme")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0xh6ppr73p76z60ym49b4d0liwdc96w41cc5p07d48hxjsa6qd6n"))))
+    (build-system meson-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-before 'configure 'disable-post-install
+           (lambda _
+             (substitute* "meson.build"
+               (("meson.add_install_script.*") "")))))))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)))
+    (synopsis "Faba icon theme")
+    (description
+     "Faba is a minimal icon set used as a basis for other themes such as
+Moka")
+    (home-page "https://snwh.org/moka")
+    (license (list license:lgpl3+
+                   license:cc-by-sa4.0))))
+
+(define-public moka-icon-theme
+  (package
+    (inherit faba-icon-theme)
+    (name "moka-icon-theme")
+    (version "5.4.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/snwh/moka-icon-theme")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "015l02im4mha5z91dbchxf6xkp66d346bg3xskwg0rh3lglhjsrd"))))
+    (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)))
+    (synopsis "Moka icon theme")
+    (description "Moka is a stylized desktop icon set, designed to be clear,
+simple and consistent.")
+    (license (list license:gpl3+
+                   license:cc-by-sa4.0))))
+
+(define-public papirus-icon-theme
+  (package
+    (name "papirus-icon-theme")
+    (version "20210101")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/PapirusDevelopmentTeam/papirus-icon-theme")
+             (commit version)))
+       (sha256
+        (base32
+         "0w6qg3zjhfvjg1gg5inranf8ianb4mrp0jm9qgi6hg87ig1rashs"))
+       (file-name (git-file-name name version))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:tests? #f
+       #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'bootstrap)
+         (delete 'configure)
+         (delete 'build))))
+    (native-inputs
+     `(("gtk+:bin" ,gtk+ "bin")))
+    (home-page "https://git.io/papirus-icon-theme")
+    (synopsis "Fork of Paper icon theme with a lot of new icons and a few extras")
+    (description "Papirus is a fork of the icon theme Paper with a lot of new icons
+and a few extra features.")
+    (license license:gpl3)))
+
 (define-public gnome-shell-extension-appindicator
   (package
     (name "gnome-shell-extension-appindicator")
@@ -131,7 +213,7 @@ the Obsidian icon theme.")
               (method git-fetch)
               (uri (git-reference
                     (url
-                     "https://github.com/ubuntu/gnome-shell-extension-appindicator.git")
+                     "https://github.com/ubuntu/gnome-shell-extension-appindicator")
                     (commit (string-append "v" version))))
               (sha256
                (base32
@@ -234,7 +316,7 @@ some media players, are meant to run long-term in the background even after you
 close their window.  These applications remain accessible by adding an icon to
 the GNOME Shell Legacy Tray.  However, the Legacy Tray was removed in GNOME
 3.26.  TopIcons Redux brings those icons back into the top panel so that it's
-easier to keep track of apps running in the backround.")
+easier to keep track of applications running in the background.")
     (license license:gpl2+)))
 
 (define-public gnome-shell-extension-dash-to-dock
@@ -419,7 +501,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 "37")
+    (version "38")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -427,7 +509,7 @@ currently focused application in the top panel of the GNOME shell.")
                     (commit (string-append "v" version))))
               (sha256
                (base32
-                "0c8p8cmwjh6rpj7jwj1lccpdv5l0bazwywg8hpwgnqy9f4rxmrz3"))
+                "1kvybb49l1vf0fvh8d0c6xkwnry8m330scamf5x40y63d4i213j1"))
               (file-name (git-file-name name version))))
     (build-system gnu-build-system)
     (arguments
@@ -515,6 +597,150 @@ scrollable tiling of windows and per monitor workspaces.  It's inspired by paper
 notebooks and tiling window managers.")
     (license license:gpl3)))
 
+(define-public arc-theme
+  (package
+    (name "arc-theme")
+    (version "20201013")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/jnsh/arc-theme")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1x2l1mwjx68dwf3jb1i90c1q8nqsl1wf2zggcn8im6590k5yv39s"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:configure-flags
+       (list "--disable-cinnamon")
+       #: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)))
+    (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
+like GNOME, Unity, Budgie, Pantheon, XFCE, Mate, etc.")
+    (home-page "https://github.com/horst3180/arc-theme")
+    ;; No "or later" language found.
+    (license license:gpl3+)))
+
+(define-public greybird-gtk-theme
+  (package
+    (name "greybird-gtk-theme")
+    (version "3.22.13")
+    (source (origin
+              (method git-fetch)
+              (uri
+               (git-reference
+                (url "https://github.com/shimmerproject/Greybird")
+                (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "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)))
+    (home-page "https://shimmerproject.org/")
+    (synopsis "Grey GTK+ theme based on Bluebird")
+    (description "Greybird is a grey derivative of the Bluebird theme by the
+Shimmer Project.  It supports GNOME, Unity, and Xfce.")
+    (license (list license:gpl2+ license:cc-by-sa3.0))))
+
+(define-public matcha-theme
+  (package
+    (name "matcha-theme")
+    (version "2021-01-01")
+    (source
+      (origin
+        (method git-fetch)
+        (uri
+          (git-reference
+            (url "https://github.com/vinceliuice/Matcha-gtk-theme")
+            (commit version)))
+        (file-name (git-file-name name version))
+        (sha256
+          (base32
+            "1pa6ra87wlq0gwz4n03l6xv0pxiamr5dygycvppms8v6xyc2aa0r"))))
+    (build-system trivial-build-system)
+    (arguments
+     '(#:modules ((guix build utils))
+       #:builder
+       (begin
+         (use-modules (guix build utils))
+         (let* ((out (assoc-ref %outputs "out"))
+                (source (assoc-ref %build-inputs "source"))
+                (bash (assoc-ref %build-inputs "bash"))
+                (coreutils (assoc-ref %build-inputs  "coreutils"))
+                (themesdir (string-append out "/share/themes")))
+           (setenv "PATH"
+                   (string-append coreutils "/bin:"
+                                  (string-append bash "/bin:")))
+           (copy-recursively source (getcwd))
+           (patch-shebang "install.sh")
+           (mkdir-p themesdir)
+           (invoke "./install.sh" "-d" themesdir)
+           #t))))
+    (inputs
+     `(("gtk-engines" ,gtk-engines)))
+    (native-inputs
+     `(("bash" ,bash)
+       ("coreutils" ,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
+like Gnome, Unity, Budgie, Pantheon, XFCE, Mate and others.")
+    (home-page "https://github.com/vinceliuice/matcha")
+    (license license:gpl3+)))
+
+(define-public materia-theme
+  (package
+    (name "materia-theme")
+    (version "20200916")
+    (source
+      (origin
+        (method git-fetch)
+        (uri
+          (git-reference
+            (url "https://github.com/nana-4/materia-theme")
+            (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+          (base32
+            "0qaxxafsn5zd2ysgr0jyv5j73360mfdmxyd55askswlsfphssn74"))))
+    (build-system meson-build-system)
+    (native-inputs
+     `(("gtk+" ,gtk+)
+       ("sassc" ,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
+desktop environments.  It supports GTK 2, GTK 3, GNOME Shell, Budgie,
+Cinnamon, MATE, Unity, Xfce, LightDM, GDM, Chrome theme, etc.")
+    (license license:gpl2+)))
+
 (define-public numix-gtk-theme
   (package
     (name "numix-gtk-theme")
@@ -553,39 +779,54 @@ dark elements.  It supports GNOME, Unity, Xfce, and Openbox.")
 (define-public numix-theme
   (deprecated-package "numix-theme" numix-gtk-theme))
 
-(define-public papirus-icon-theme
-  (let ((version "0.0.0") ;; The package does not use semver
-        (revision "2")
-        (tag "20200602"))
-    (package
-      (name "papirus-icon-theme")
-      (version (git-version version revision tag))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/PapirusDevelopmentTeam/papirus-icon-theme")
-               (commit tag)))
-         (sha256
-          (base32
-           "0yv19kl8jr2jmh9018b1qmnq68alw84vrmb35jm462qd3qzzdgah"))
-         (file-name (git-file-name name version))))
-      (build-system gnu-build-system)
+(define-public markets
+  (package
+    (name "markets")
+    (version "0.4.0")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/bitstower/markets")
+               (commit version)))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32
+          "1jzv74l2jkdiqy1hp0ww5yla50dmrvjw7fgkmb26ynblr1nb3rrb"))))
+    (build-system meson-build-system)
     (arguments
-     '(#:tests? #f
-       #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
+     `(#:glib-or-gtk? #t
        #:phases
        (modify-phases %standard-phases
-         (delete 'bootstrap)
-         (delete 'configure)
-         (delete 'build))))
-      (native-inputs
-       `(("gtk+:bin" ,gtk+ "bin")))
-      (home-page "https://git.io/papirus-icon-theme")
-      (synopsis "Fork of Paper icon theme with a lot of new icons and a few extras")
-      (description "Papirus is a fork of the icon theme Paper with a lot of new icons
-and a few extra features.")
-      (license license:gpl3))))
+         (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))
+         (add-after 'unpack 'skip-update-desktop-database
+           ;; Don't update desktop file database.
+           (lambda _
+             (substitute* "build-aux/meson/postinstall.py"
+               (("update-desktop-database") "true"))
+             #t)))))
+    (inputs
+     `(("gtk3" ,gtk+)
+       ("gettext" ,gettext-minimal)
+       ("libgee" ,libgee)
+       ("libhandy0" ,libhandy-0.0)
+       ("libsoup" ,libsoup)
+       ("json-glib" ,json-glib)
+       ("vala" ,vala)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("glib" ,glib "bin"))) ; for 'glib-compile-resources'
+    (home-page "https://github.com/bitstower/markets")
+    (synopsis "Stock, currency and cryptocurrency tracker")
+    (description
+     "Markets is a GTK application that displays financial data, helping users
+track stocks, currencies and cryptocurrencies.")
+    (license license:gpl3)))
 
 (define-public vala-language-server
   (package
@@ -593,7 +834,7 @@ and a few extra features.")
     ;; 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")
+    (version "0.48.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -601,7 +842,7 @@ and a few extra features.")
                     (commit version)))
               (file-name (git-file-name name version))
               (sha256
-               (base32 "0chgfpci247skrvsiq1l8cas8sj2z6z42dlarka3df3qwxmh0if0"))))
+               (base32 "12k095052jkvbiyz8gzkj6w7r7p16d5m18fyikl48yvh5nln8fw0"))))
     (build-system meson-build-system)
     (arguments '(#:glib-or-gtk? #t))
     (inputs
@@ -609,7 +850,7 @@ and a few extra features.")
        ("json-glib" ,json-glib)
        ("jsonrpc-glib" ,jsonrpc-glib)
        ("libgee" ,libgee)
-       ("vala" ,vala-0.48)))
+       ("vala" ,vala-0.50)))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
     (home-page "https://github.com/benwaffle/vala-language-server")
@@ -619,3 +860,31 @@ 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 Vala effectively.")
     (license license:lgpl2.1+)))
+
+(define-public nordic-theme
+  (let ((commit "07d764c5ebd5706e73d2e573f1a983e37b318915")
+	(revision "0"))
+  (package
+   (name "nordic-theme")
+   (version (git-version "1.9.0" revision commit))
+   (source
+     (origin
+      (method git-fetch)
+      (uri (git-reference
+             (url "https://github.com/EliverLara/Nordic")
+             (commit commit)))
+     (sha256
+       (base32
+         "0y2s9d6h1b195s6afp1gb5rb1plfslkpbw2brd30a9d66wfvsqk0"))
+     (file-name (git-file-name name version))))
+   (build-system copy-build-system)
+   (arguments
+    `(#:install-plan
+      `(("." "share/themes/nord"
+         #:exclude ("README.md" "LICENSE" "Art/" "package.json"
+                    "package-lock.json" "Gulpfile.js")))))
+   (home-page "https://github.com/EliverLara/Nordic")
+   (synopsis "Dark Gtk3.20+ theme using the Nord color pallete")
+   (description "Nordic is a Gtk3.20+ theme created using the Nord color
+pallete.")
+   (license license:gpl3))))
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index dce9639cb8..505d4bf725 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -11,7 +11,7 @@
 ;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2015, 2016, 2017, 2018 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2015 David Thompson <davet@gnu.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 © 2016, 2017, 2018 Rene Saavedra <pacoon@protonmail.com>
 ;;; Copyright © 2016 Jochem Raat <jchmrt@riseup.net>
 ;;; Copyright © 2016, 2017, 2019 Kei Kebreau <kkebreau@posteo.net>
@@ -21,7 +21,7 @@
 ;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
 ;;; Copyright © 2016, 2017 Nikita <nikita@n0.is>
 ;;; Copyright © 2016 David Craven <david@craven.ch>
-;;; Copyright © 2016, 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2016–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
 ;;; Copyright © 2017 Hartmut Goebel <h.goebel@crazy-compilers.com>
 ;;; Copyright © 2017, 2018 nee <nee-git@hidamari.blue>
@@ -51,10 +51,12 @@
 ;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;; Copyright © 2020 Naga Malleswari <nagamalli@riseup.net>
 ;;; Copyright © 2020 Ryan Prior <rprior@protonmail.com>
-;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
+;;; Copyright © 2020, 2021 Vinicius Monego <monego@posteo.net>
 ;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
 ;;; Copyright © 2020 Arun Isaac <arunisaac@systemreboot.net>
 ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
+;;; Copyright © 2020 Tim Gesthuizen <tim.gesthuizen@yahoo.de>
+;;; Copyright © 2020 Andy Tai <atai@atai.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -74,6 +76,7 @@
 (define-module (gnu packages gnome)
   #:use-module (gnu packages)
   #:use-module (gnu packages admin)
+  #:use-module (gnu packages aidc)
   #:use-module (gnu packages aspell)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages avahi)
@@ -89,6 +92,8 @@
   #:use-module (gnu packages cmake)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages crates-io)
+  #:use-module (gnu packages crates-graphics)
+  #:use-module (gnu packages crates-gtk)
   #:use-module (gnu packages cups)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages cyrus-sasl)
@@ -105,8 +110,10 @@
   #: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 gettext)
   #:use-module (gnu packages ghostscript)
+  #:use-module (gnu packages gimp)
   #:use-module (gnu packages gl)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnupg)
@@ -125,6 +132,7 @@
   #:use-module (gnu packages iso-codes)
   #:use-module (gnu packages kerberos)
   #:use-module (gnu packages libcanberra)
+  #:use-module (gnu packages libffi)
   #:use-module (gnu packages libunistring)
   #:use-module (gnu packages libunwind)
   #:use-module (gnu packages libusb)
@@ -139,8 +147,10 @@
   #:use-module (gnu packages nettle)
   #:use-module (gnu packages networking)
   #:use-module (gnu packages ninja)
+  #:use-module (gnu packages node)
   #:use-module (gnu packages nss)
   #:use-module (gnu packages openldap)
+  #:use-module (gnu packages package-management)
   #:use-module (gnu packages password-utils)
   #:use-module (gnu packages pcre)
   #:use-module (gnu packages pdf)
@@ -151,17 +161,21 @@
   #:use-module (gnu packages polkit)
   #:use-module (gnu packages popt)
   #:use-module (gnu packages pretty-print)
+  #:use-module (gnu packages protobuf)
   #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-crypto)
   #:use-module (gnu packages python-web)
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages rdesktop)
+  #:use-module (gnu packages rdf)
   #:use-module (gnu packages readline)
   #:use-module (gnu packages ruby)
   #:use-module (gnu packages rust)
   #:use-module (gnu packages samba)
   #:use-module (gnu packages scanner)
+  #:use-module (gnu packages sdl)
+  #:use-module (gnu packages search)
   #:use-module (gnu packages selinux)
   #:use-module (gnu packages slang)
   #:use-module (gnu packages speech)
@@ -203,6 +217,62 @@
   #:use-module (ice-9 match)
   #:use-module (srfi srfi-1))
 
+(define-public gupnp-igd
+  (package
+    (name "gupnp-igd")
+    (version "1.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version) "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "1q9bw12ibih3yxpha3gm1dabyqg9gx6yxacbh4kxsgm1i84j0lab"))))
+    (build-system meson-build-system)
+    (outputs '("out" "doc"))
+    (arguments
+     `(#:glib-or-gtk? #t     ; To wrap binaries and compile schemas
+       #:configure-flags (list "-Dgtk_doc=true")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "doc"
+               (substitute* "gupnp-igd-docs.xml"
+                 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
+                  (string-append (assoc-ref inputs "docbook-xml-4.1.2")
+                                 "/xml/dtd/docbook/"))))
+             #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"))
+               (rename-file
+                (string-append out "/share/gtk-doc")
+                (string-append doc "/share/gtk-doc"))
+               #t))))))
+    (native-inputs
+     `(("docbook-xml-4.1.2" ,docbook-xml-4.1.2)
+       ("docbook-xsl" ,docbook-xsl)
+       ("glib:bin" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
+       ("gtk-doc" ,gtk-doc)
+       ("pkg-config" ,pkg-config)))
+    (propagated-inputs
+     `(("glib" ,glib)
+       ("glib-networking" ,glib-networking)
+       ("gssdp" ,gssdp)
+       ("gupnp" ,gupnp)
+       ("libsoup" ,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")
+    (license license:lgpl2.1+)))
+
 (define-public brasero
   (package
     (name "brasero")
@@ -259,6 +329,694 @@ 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
+  (package
+    (name "libcloudproviders")
+    (version "0.3.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version) "/"
+                       name "-" 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))))))
+    (native-inputs
+     `(("glib:bin" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("gtk-doc" ,gtk-doc)
+       ("pkg-config" ,pkg-config)
+       ("vala" ,vala)))
+    (inputs
+     `(("glib" ,glib)
+       ("glib-networking" ,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
+environments can then provide integrated access to the cloud providers
+services.")
+    (home-page "https://csorianognome.wordpress.com/2015/07/07/cloud-providers/")
+    (license license:lgpl3+)))
+
+(define-public libgrss
+  (package
+    (name "libgrss")
+    (version "0.7.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version) "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "1nalslgyglvhpva3px06fj6lv5zgfg0qmj0sbxyyl5d963vc02b7"))))
+    (build-system glib-or-gtk-build-system)
+    (outputs '("out" "doc"))
+    (arguments
+     `(#:configure-flags
+       (list
+        "--enable-gtk-doc"
+        (string-append "--with-html-dir="
+                       (assoc-ref %outputs "doc")
+                       "/share/gtk-doc/html"))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "doc/reference"
+               (substitute* "libgrss-docs.sgml"
+                 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
+                  (string-append (assoc-ref inputs "docbook-xml")
+                                 "/xml/dtd/docbook/"))))
+             #t)))))
+    (native-inputs
+     `(("docbook-xml" ,docbook-xml-4.1.2)
+       ("gobject-introspection" ,gobject-introspection)
+       ("gtk-doc" ,gtk-doc)
+       ("pkg-config" ,pkg-config)))
+    (propagated-inputs
+     `(("glib" ,glib)
+       ("libsoup" ,libsoup)
+       ("libxml2" ,libxml2)))
+    (synopsis "Glib library for feeds")
+    (description "LibGRSS is a Glib abstraction to handle feeds in RSS, Atom,
+and other formats.")
+    (home-page "https://wiki.gnome.org/Projects/Libgrss")
+    (license license:lgpl3+)))
+
+(define-public gnome-js-common
+  (package
+    (name "gnome-js-common")
+    (version "0.1.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version) "/"
+                       name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1zv5b9bcbclzj64xd9kgql4ndmbwvvi6cl937ykw8fp21xgh8z7y"))))
+    (build-system glib-or-gtk-build-system)
+    (arguments
+     `(#:configure-flags
+       (list
+        "--disable-static")))
+    (native-inputs
+     `(("gettext" ,gettext-minimal)
+       ("intltool" ,intltool)
+       ("pkg-config" ,pkg-config)))
+    (synopsis "Common JS Modules")
+    (description "GNOME-JS-Common provides common modules for GNOME JavaScript
+bindings.")
+    (home-page "https://wiki.gnome.org/Projects/Seed")
+    (license license:gpl3+)))
+
+(define-public seed
+  (package
+    (name "seed")
+    (version "3.8.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version) "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "0cmcxaggcdcy13j27gy8id2qsf2p2sl4bz2mwb9zhv3gzavlvjw0"))
+       (patches
+        (search-patches "seed-webkit.patch"))))
+    (build-system glib-or-gtk-build-system)
+    (outputs '("out" "doc"))
+    (arguments
+     `(#:configure-flags
+       (list
+        "--disable-static"
+        "--enable-xorg-module"
+        (string-append "--with-html-dir="
+                       (assoc-ref %outputs "doc")
+                       "/share/gtk-doc/html")
+        "--with-webkit=4.0")
+       #:phases
+       (modify-phases %standard-phases
+         ;; The seed-webkit.patch patches configure.ac.
+         ;; So the source files need to be re-bootstrapped.
+         (add-after 'unpack 'trigger-bootstrap
+           (lambda _
+             (for-each delete-file
+                       (list
+                        "configure"
+                        "Makefile.in"))
+             #t))
+         (add-after 'unpack 'patch-tests
+           (lambda* (#:key outputs #:allow-other-keys)
+             (substitute* (find-files "." "\\.js$")
+              (("#!/usr/bin/env seed")
+               (string-append "#!" (getcwd) "/src/seed")))
+             #t))
+         (add-before 'build 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "doc"
+               (substitute* '("reference/seed-docs.sgml" "modules/book.xml")
+                 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
+                  (string-append (assoc-ref inputs "docbook-xml")
+                                 "/xml/dtd/docbook/"))))
+             #t)))))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("docbook-xml" ,docbook-xml-4.1.2)
+       ("gettext" ,gettext-minimal)
+       ("gobject-introspection" ,gobject-introspection)
+       ("gtk-doc" ,gtk-doc)
+       ("intltool" ,intltool)
+       ("libtool" ,libtool)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("cairo" ,cairo)
+       ("dbus" ,dbus)
+       ("dbus-glib" ,dbus-glib)
+       ("gnome-js-common" ,gnome-js-common)
+       ("gtk+" ,gtk+)
+       ("gtk+-2" ,gtk+-2)
+       ("libffi" ,libffi)
+       ("libxml2" ,libxml2)
+       ("mpfr" ,mpfr)
+       ("readline" ,readline)
+       ("sqlite" ,sqlite)
+       ("xscrnsaver" ,libxscrnsaver)))
+    (propagated-inputs
+     `(("glib" ,glib)
+       ("webkit" ,webkitgtk)))
+    (synopsis "GObject JavaScriptCore bridge")
+    (description "Seed is a library and interpreter, dynamically bridging
+(through GObjectIntrospection) the WebKit JavaScriptCore engine, with the
+GNOME platform.  It serves as something which enables you to write standalone
+applications in JavaScript, or easily enable your application to be extensible
+in JavaScript.")
+    (home-page "https://wiki.gnome.org/Projects/Seed")
+    (license license:lgpl2.0+)))
+
+(define-public libdmapsharing
+  (package
+    (name "libdmapsharing")
+    (version "3.9.10")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://www.flyn.org/projects/"
+                       name "/" name "-" version ".tar.gz"))
+       (sha256
+        (base32 "152hnddwxv590cn802awv3mn27ixc3s6ac691a7z02d1c5fl45p2"))))
+    (build-system glib-or-gtk-build-system)
+    (outputs '("out" "doc"))
+    (arguments
+     `(#:tests? #f                      ; Tests require networking.
+       #:configure-flags
+       (list
+        "--disable-static"
+        (string-append "--with-html-dir="
+                       (assoc-ref %outputs "doc")
+                       "/share/gtk-doc/html"))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "doc"
+               (substitute* "libdmapsharing-4.0-docs.xml"
+                 (("http://www.oasis-open.org/docbook/xml/4.3/")
+                  (string-append (assoc-ref inputs "docbook-xml")
+                                 "/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)))
+    (inputs
+     `(("avahi" ,avahi)
+       ("gdk-pixbuf" ,gdk-pixbuf+svg)
+       ("gee" ,libgee)
+       ("gst-plugins-base" ,gst-plugins-base)
+       ("gtk+" ,gtk+)))
+    (propagated-inputs
+     `(("glib" ,glib)
+       ("glib-networking" ,glib-networking)
+       ("gstreamer" ,gstreamer)
+       ("libsoup" ,libsoup)))
+    (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).
+It is written in C using GObject and libsoup.")
+    (home-page "https://launchpad.net/gtx")
+    (license license:lgpl2.1+)))
+
+(define-public gtx
+  (package
+    (name "gtx")
+    (version "0.2.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://launchpad.net/gtx/trunk/"
+                       version "/+download/gtx-" version ".tar.gz"))
+       (sha256
+        (base32 "0i4zvn5v4rf0cw3fxylk6j2pyy5lkrswdiw8jdxkys0ph0nan33n"))))
+    (build-system glib-or-gtk-build-system)
+    (outputs '("out" "doc"))
+    (arguments
+     `(#:configure-flags
+       (list
+        "--disable-static"
+        "--enable-gtk-doc"
+        (string-append "--with-html-dir="
+                       (assoc-ref %outputs "doc")
+                       "/share/gtk-doc/html"))))
+    (native-inputs
+     `(("gobject-introspection" ,gobject-introspection)
+       ("gtk-doc" ,gtk-doc)
+       ("pkg-config" ,pkg-config)))
+    (propagated-inputs
+     `(("glib" ,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
+of writing test cases for asynchronous interactions.")
+    (home-page "https://launchpad.net/gtx")
+    (license license:lgpl2.1+)))
+
+(define-public dee
+  (package
+    (name "dee")
+    (version "1.2.7")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://launchpad.net/dee/1.0/"
+                       version "/+download/dee-" version ".tar.gz"))
+       (sha256
+        (base32 "12mzffk0lyd566y46x57jlvb9af152b4dqpasr40zal4wrn37w0v"))
+       (patches
+        (search-patches "dee-vapi.patch"))))
+    (build-system glib-or-gtk-build-system)
+    (outputs '("out" "doc"))
+    (arguments
+     `(#:configure-flags
+       (list
+        "--disable-maintainer-flags"
+        (string-append "--with-pygi-overrides-dir="
+                       (assoc-ref %outputs "out")
+                       "/lib/python"
+                       ,(version-major+minor
+                         (package-version python))
+                       "/site-packages/gi/overrides")
+        (string-append "--with-html-dir="
+                       (assoc-ref %outputs "doc")
+                       "/share/gtk-doc/html"))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "doc/reference/dee-1.0"
+               (substitute* "dee-1.0-docs.sgml"
+                 (("http://www.oasis-open.org/docbook/xml/4.3/")
+                  (string-append (assoc-ref inputs "docbook-xml")
+                                 "/xml/dtd/docbook/"))))
+             #t))
+         (add-after 'patch-docbook-xml 'disable-failing-tests
+           (lambda _
+             (substitute* "tests/test-icu.c"
+               (("g_test_add \\(DOMAIN\"/Default/AsciiFolder\", Fixture, 0,")
+                "")
+               (("setup, test_ascii_folder, teardown\\);")
+                ""))
+             #t))
+         (add-before 'check 'pre-check
+           (lambda _
+             ;; Tests require a running dbus-daemon.
+             (system "dbus-daemon &")
+             ;; For missing '/etc/machine-id'.
+             (setenv "DBUS_FATAL_WARNINGS" "0")
+             #t)))))
+    (native-inputs
+     `(("dbus" ,dbus)
+       ("dbus-test-runner" ,dbus-test-runner)
+       ("docbook-xml" ,docbook-xml-4.3)
+       ("gobject-introspection" ,gobject-introspection)
+       ("gtk-doc" ,gtk-doc)
+       ;; Would only be required by configure flag "--enable-extended-tests".
+       ;("gtx" ,gtx)
+       ("pkg-config" ,pkg-config)
+       ("pygobject" ,python-pygobject)
+       ("python" ,python-wrapper)
+       ("vala" ,vala)))
+    (inputs
+     `(("icu" ,icu4c)))
+    (propagated-inputs
+     `(("glib" ,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
+of utility objects which extend DBus allowing for peer-to-peer discoverability
+of known objects without needing a central registrar.")
+    (home-page "https://launchpad.net/dee")
+    (license
+     ;; Dual-licensed
+     (list
+      license:lgpl3+
+      license:gpl3+))))
+
+(define-public zeitgeist
+  (package
+    (name "zeitgeist")
+    (version "1.0.3")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://gitlab.freedesktop.org/zeitgeist/zeitgeist.git")
+         (commit
+          (string-append "v" version))))
+       (file-name
+        (git-file-name name version))
+       (sha256
+        (base32 "0y6fyzxl5np4yskcxibd0p03h619w9ir907nhf40h02y0pk1kgkp"))))
+    (build-system glib-or-gtk-build-system)
+    (arguments
+     `(#:configure-flags
+       (list
+        "--enable-explain-queries"
+        "--enable-fts"
+        "--enable-docs")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "doc/libzeitgeist"
+               (substitute* "zeitgeist-gtkdoc-index.sgml"
+                 (("http://www.oasis-open.org/docbook/xml/4.3/")
+                  (string-append (assoc-ref inputs "docbook-xml")
+                                 "/xml/dtd/docbook/"))))
+             #t))
+         (add-after 'patch-docbook-xml 'disable-failing-tests
+           (lambda _
+             (substitute* "test/direct/Makefile.am"
+               (("	log-test ")
+                ""))
+             (substitute* "test/c/Makefile.am"
+               (("	test-log ")
+                ""))
+             #t))
+         (add-before 'bootstrap 'remove-autogen-script
+           (lambda _
+             ;; To honor `autoreconf -vif` by build-system.
+             (delete-file "autogen.sh")
+             #t)))))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("docbook-xml" ,docbook-xml-4.3)
+       ("gettext" ,gettext-minimal)
+       ("gobject-introspection" ,gobject-introspection)
+       ("gtk-doc" ,gtk-doc)
+       ("libtool" ,libtool)
+       ("pkg-config" ,pkg-config)
+       ("vala" ,vala)
+       ("xorg-server-for-tests" ,xorg-server-for-tests)))
+    (inputs
+     `(("dee-icu" ,dee)
+       ("gtk+" ,gtk+)
+       ("json-glib" ,json-glib)
+       ("sqlite" ,sqlite)
+       ("telepathy-glib" ,telepathy-glib)
+       ("python" ,python-wrapper)
+       ("python-rdflib" ,python-rdflib)
+       ("xapian-config" ,xapian)))
+    (propagated-inputs
+     `(("glib" ,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
+makes this information readily available for other applications to use.  It is
+able to establish relationships between items based on similarity and usage
+patterns.")
+    (home-page "https://zeitgeist.freedesktop.org/")
+    (license
+     ;; Dual-licensed
+     (list
+      license:lgpl2.1+
+      license:gpl2+))))
+
+(define-public gnome-photos
+  (package
+    (name "gnome-photos")
+    (version "3.34.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version) "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32
+         "06ml5sf8xhpan410msqz085hmfc7082d368pb82yq646y9pcfn9w"))))
+    (build-system meson-build-system)
+    (arguments
+     `(#:glib-or-gtk? #t
+       #:configure-flags
+       (list "-Ddogtail=false"     ; Not available
+             ;; Required for RUNPATH validation.
+             (string-append "-Dc_link_args=-Wl,-rpath="
+                            (assoc-ref %outputs "out") "/lib/gnome-photos"))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'wrap-gnome-photos
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let*
+                 ((out (assoc-ref outputs "out")))
+               (wrap-program (string-append out "/bin/gnome-photos")
+                 `("GRL_PLUGIN_PATH" = (,(getenv "GRL_PLUGIN_PATH")))))
+             #t)))))
+    (native-inputs
+     `(("dbus" ,dbus)
+       ("desktop-file-utils" ,desktop-file-utils)
+       ("gettext" ,gettext-minimal)
+       ("git" ,git-minimal)
+       ("glib:bin" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
+       ("gtk+:bin" ,gtk+ "bin")
+       ("itstool" ,itstool)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("babl" ,babl)
+       ("cairo" ,cairo)
+       ("gdk-pixbuf" ,gdk-pixbuf+svg)
+       ("gegl" ,gegl)
+       ("geocode-glib" ,geocode-glib)
+       ("gexiv2" ,gexiv2)
+       ("gnome-online-accounts" ,gnome-online-accounts)
+       ("gnome-online-miners" ,gnome-online-miners)
+       ("grilo" ,grilo)
+       ("grilo-plugins" ,grilo-plugins)
+       ("gtk+" ,gtk+)
+       ("libdazzle" ,libdazzle)
+       ("libgdata" ,libgdata)
+       ("libgfbgraph" ,gfbgraph)
+       ("libjpeg" ,libjpeg-turbo)
+       ("libpng" ,libpng)
+       ("librest" ,rest)
+       ("pygobject" ,python-pygobject)
+       ("tracker" ,tracker)
+       ("tracker-miners" ,tracker-miners)))
+    (synopsis "Access, organize and share your photos on GNOME desktop")
+    (description "GNOME Photos is a simple and elegant replacement for using a
+file manager to deal with photos.  Enhance, crop and edit in a snap.  Seamless
+cloud integration is offered through GNOME Online Accounts.")
+    (home-page "https://wiki.gnome.org/Apps/Photos")
+    (license license:gpl3+)))
+
+(define-public gnome-music
+  (package
+    (name "gnome-music")
+    (version "3.34.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version) "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32
+         "1r5sfw5cbd6qqh27lzhblazir0bfi3k7nqppw66qw990isqm5psy"))))
+    (build-system meson-build-system)
+    (arguments
+     `(#:glib-or-gtk? #t
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'wrap-gnome-music
+           (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")))
+               (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")))
+                 `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib))))
+             #t)))))
+    (native-inputs
+     `(("desktop-file-utils" ,desktop-file-utils)
+       ("gettext" ,gettext-minimal)
+       ("glib:bin" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("gtk+:bin" ,gtk+ "bin")
+       ("itstools" ,itstool)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
+       ("grilo" ,grilo)
+       ("grilo-plugins" ,grilo-plugins)
+       ("gst-plugins-base" ,gst-plugins-base)
+       ("gstreamer" ,gstreamer)
+       ("gvfs" ,gvfs)
+       ("libdazzle" ,libdazzle)
+       ("libmediaart" ,libmediaart)
+       ("libsoup" ,libsoup)
+       ("pycairo" ,python-pycairo)
+       ("pygobject" ,python-pygobject)
+       ("tracker" ,tracker)
+       ("tracker-miners" ,tracker-miners)))
+    (synopsis "Simple music player for GNOME desktop")
+    (description "GNOME Music is the new GNOME music playing application that
+aims to combine an elegant and immersive browsing experience with simple
+and straightforward controls.")
+    (home-page "https://wiki.gnome.org/Apps/Music")
+    (license license:gpl2+)))
+
+(define-public portablexdr
+  (package
+    (name "portablexdr")
+    (version "4.9.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://people.redhat.com/~rjones/" name "/files/"
+                       name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0b77ipvvi520nv7rr6jb1c3xryhc3m2mywhby7m48kfgag8vvx2w"))))
+    (build-system gnu-build-system)
+    (synopsis "External Data Representation Library")
+    (description "PortableXDR is an implementation of External Data
+Representation (XDR) Library.  It is a standard data serialization format, for
+uses such as computer network protocols.  It allows data to be transferred
+between different kinds of computer systems.")
+    (home-page "https://people.redhat.com/~rjones/portablexdr/")
+    (license
+     (list
+      license:gpl2+
+      license:lgpl2.1+))))
+
+(define-public tepl
+  (package
+    (name "tepl")
+    (version "4.4.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version) "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32
+         "0mm2z849hnni7597an05mrv0dckrxjngpf2xfa0g5s17i8x6gxp6"))))
+    (build-system glib-or-gtk-build-system)
+    (arguments
+     `(#:tests? #f))                    ; FIX-ME: Requires gvfs
+    (native-inputs
+     `(("gobject-introspection" ,gobject-introspection)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("amtk" ,amtk)
+       ("glib" ,glib)
+       ("gtk+" ,gtk+)
+       ("gtksourceview" ,gtksourceview)
+       ("libxml2" ,libxml2)
+       ("uchardet" ,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 krb5-auth-dialog
+  (package
+    (name "krb5-auth-dialog")
+    (version "3.26.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version) "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32
+         "1w91gsvmifqhiam3xqf88i5rk2w6qadjalmbvvamjdc37j0vdc6x"))))
+    (build-system glib-or-gtk-build-system)
+    (native-inputs
+     `(("intltool" ,intltool)
+       ("itstool" ,itstool)
+       ("libxml2" ,libxml2)
+       ("pkg-config" ,pkg-config)
+       ("python-wrapper" ,python-wrapper)))
+    (inputs
+     `(("glib" ,glib)
+       ("gtk+" ,gtk+)
+       ("libnotify" ,libnotify)
+       ("mit-krb5" ,mit-krb5)
+       ("network-manager" ,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.")
+    (home-page "https://gitlab.gnome.org/GNOME/krb5-auth-dialog")
+    (license license:gpl2+)))
+
 (define-public notification-daemon
   (package
     (name "notification-daemon")
@@ -290,7 +1048,7 @@ freedesktop.org desktop notification specification.")
 (define-public mm-common
   (package
     (name "mm-common")
-    (version "1.0.1")
+    (version "1.0.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/mm-common/"
@@ -298,7 +1056,7 @@ freedesktop.org desktop notification specification.")
                                   "mm-common-" version ".tar.xz"))
               (sha256
                (base32
-                "1jasx9a9g7nqf7jcv3mrg4qh5cp9sq724jxjaz4wa1dzmxsxg8i8"))))
+                "07b4s5ckcz9q5gwx8vchim19mhfgl8wysqwi30pndks3m4zrzad2"))))
     (build-system meson-build-system)
     (arguments
      `(#:phases
@@ -333,7 +1091,7 @@ Library reference documentation.")
 (define-public phodav
   (package
    (name "phodav")
-   (version "2.4")
+   (version "2.5")
    (source (origin
             (method url-fetch)
             (uri (string-append "mirror://gnome/sources/" name "/"
@@ -341,10 +1099,21 @@ Library reference documentation.")
                                 name "-" version ".tar.xz"))
             (sha256
              (base32
-              "1hxq8c5qfah3w7mxcyy3yhzdgswplll31a69p5mqdl04bsvw5pbx"))))
+              "045rdzf8isqmzix12lkz6z073b5qvcqq6ad028advm5gf36skw3i"))))
    (build-system meson-build-system)
+   (arguments
+    `(#:phases
+      (modify-phases %standard-phases
+        (add-before 'check 'start-virtual-dir-server
+          ;; The same server when started by tests/virtual-dir returns an
+          ;; unexpected status (4 instead of 200) and fails a test.  It is
+          ;; unclear why starting it manually here makes it pass.
+          (lambda _
+            (system "tests/virtual-dir-server &")
+            #t)))))
    (native-inputs
-    `(("gettext" ,gettext-minimal)
+    `(("docbook-xml" ,docbook-xml-4.3)
+      ("gettext" ,gettext-minimal)
       ("glib:bin" ,glib "bin")
       ("gtk-doc" ,gtk-doc)
       ("pkg-config" ,pkg-config)))
@@ -450,7 +1219,7 @@ It has miners for Facebook, Flickr, Google, ownCloud and SkyDrive.")
 (define-public gssdp
   (package
    (name "gssdp")
-   (version "1.2.2")
+   (version "1.2.3")
    (source (origin
             (method url-fetch)
             (uri (string-append "mirror://gnome/sources/" name "/"
@@ -458,7 +1227,7 @@ It has miners for Facebook, Flickr, Google, ownCloud and SkyDrive.")
                                 name "-" version ".tar.xz"))
             (sha256
              (base32
-              "195hi10vrsvh6i927mm6rm1ld5sxah3h5sr3bsjm90vb8lxrxfya"))))
+              "1s57i8a8wnnxnsfl27cq4503dkdlzbrhry5zpg23sfqfffvdqqx2"))))
    (build-system meson-build-system)
    (native-inputs
     `(("gettext" ,gettext-minimal)
@@ -481,7 +1250,7 @@ a debugging tool, @command{gssdp-device-sniffer}.")
 (define-public gupnp
   (package
    (name "gupnp")
-   (version "1.2.2")
+   (version "1.2.4")
    (source (origin
             (method url-fetch)
             (uri (string-append "mirror://gnome/sources/" name "/"
@@ -489,7 +1258,7 @@ a debugging tool, @command{gssdp-device-sniffer}.")
                                 name "-" version ".tar.xz"))
             (sha256
              (base32
-              "12cr3isww4zl0d4himpd2fhl2wmy3jh8sbxp4snp51sw7savv04s"))))
+              "1ld7mrpdv9cszmfzh7i19qx4li25j3fr7x1jp38l8phzlmz3187p"))))
    (build-system meson-build-system)
    (native-inputs
     `(("gettext" ,gettext-minimal)
@@ -592,7 +1361,7 @@ and implementation of UPnP A/V profiles.")
      `(("gdk-pixbuf" ,gdk-pixbuf)
        ("gettext" ,gettext-minimal)
        ("gobject-introspection" ,gobject-introspection)
-       ("gtk+:doc", gtk+ "doc")
+       ("gtk+:doc" ,gtk+ "doc")
        ("vala" ,vala)))
     (synopsis "Media art library for the GNOME desktop")
     (description
@@ -956,6 +1725,44 @@ uses duplicity as the backend, which supports incremental backups and storage
 either on a local, or remote machine via a number of methods.")
     (license license:gpl3+)))
 
+(define-public gnome-commander
+  (package
+    (name "gnome-commander")
+    (version "1.10.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://gnome/sources/" name "/"
+                           (version-major+minor version)  "/"
+                           "gnome-commander-" version ".tar.xz"))
+       (sha256
+        (base32 "0bis36awb73vhkncq8yr0qlnyaxynqkvmyqbg57ijqwd0m8hh4zg"))))
+    (build-system glib-or-gtk-build-system)
+    (native-inputs
+     `(("desktop-file-utils" ,desktop-file-utils)
+       ("gcc" ,gcc-8) ;required for -Wcast-function-type
+       ("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)))
+    (home-page "https://gcmd.github.io/")
+    (synopsis "Two-pane graphical file manager for the GNOME desktop")
+    (description
+     "GNOME Commander is a two-pane graphical file manager using GNOME
+libraries.  It aims to fulfill the demands of more advanced users who
+like to focus on file management, their work through special applications
+and running smart commands.")
+    (license license:gpl2+)))
+
 (define-public gnome-user-docs
   (package
    (name "gnome-user-docs")
@@ -1254,7 +2061,7 @@ commonly used macros.")
        ("telepathy-glib" ,telepathy-glib)
        ("vala" ,vala)))
     (propagated-inputs
-     `(("folks", folks)
+     `(("folks" ,folks)
        ("telepathy-mission-control" ,telepathy-mission-control)))
     (synopsis "GNOME's integrated address book")
     (description
@@ -1445,6 +2252,16 @@ and keep up to date translations of documentation.")
            (lambda _
              (substitute* "meson-postinstall.sh"
                (("update-desktop-database") (which "true")))
+             #t))
+         (add-after 'install 'patch-thumbnailer
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (substitute*
+                   (string-append
+                    out
+                    "/share/thumbnailers/gnome-font-viewer.thumbnailer")
+                 (("gnome-thumbnail-font")
+                  (string-append out "/bin/gnome-thumbnail-font"))))
              #t)))))
     (native-inputs
      `(("gettext" ,gettext-minimal)
@@ -1794,6 +2611,104 @@ on the GNOME Desktop with a single simple application.")
 for settings shared by various components of the GNOME desktop.")
     (license license:lgpl2.1+)))
 
+(define-public python-liblarch
+  (package
+    (name "python-liblarch")
+    (version "3.0.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/getting-things-gnome/liblarch")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0xv2mfvyzipbny3iz8vll77wsqxfwh28xj6bj1ff0l452waph45m"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-before 'check 'start-xserver
+           (lambda* (#:key inputs #:allow-other-keys)
+             (system (format #f "~a/bin/Xvfb :1 &"
+                             (assoc-ref inputs "xorg-server")))
+             (setenv "DISPLAY" ":1")
+             #t)))))
+    (native-inputs
+     `(("xorg-server" ,xorg-server-for-tests)))
+    (inputs
+     `(("gtk+" ,gtk+)))
+    (propagated-inputs
+     `(("python-pygobject" ,python-pygobject)))
+    (home-page "https://wiki.gnome.org/Projects/liblarch")
+    (synopsis "Library to easily handle complex data structures")
+    (description
+     "Liblarch is a Python library built to easily handle data structures such
+as lists, trees and acyclic graphs.  There's also a GTK binding that will
+allow you to use your data structure in a @code{Gtk.Treeview}.
+
+Liblarch support multiple views of one data structure and complex filtering.
+That way, you have a clear separation between your data themselves (Model)
+and how they are displayed (View).")
+    (license license:lgpl3+)))
+
+(define-public gtg
+  (package
+    (name "gtg")
+    (version "0.4")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/getting-things-gnome/gtg")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0r28vyr88rj3kd3cg4gj7sd29wadjchi92wzmbx67d4hlg25h8kk"))))
+    (build-system meson-build-system)
+    (arguments
+     `(#:glib-or-gtk? #t
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((prog (string-append (assoc-ref outputs "out")
+                                        "/bin/gtg"))
+                   (pylib (string-append (assoc-ref outputs "out")
+                                         "/lib/python"
+                                         ,(version-major+minor
+                                           (package-version python))
+                                         "/site-packages")))
+               (wrap-program prog
+                 `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib))
+                 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
+               #t))))))
+    (native-inputs
+     `(("desktop-file-utils" ,desktop-file-utils)
+       ("gettext" ,gettext-minimal)
+       ("glib:bin" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("gtk+:bin" ,gtk+ "bin")
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
+       ("gtk+" ,gtk+)
+       ("python-dbus" ,python-dbus)
+       ("python-liblarch" ,python-liblarch)
+       ("python-pycairo" ,python-pycairo)
+       ("python-pygobject" ,python-pygobject)
+       ("python-pyxdg" ,python-pyxdg)))
+    (home-page "https://wiki.gnome.org/Apps/GTG")
+    (synopsis "Personal organizer for the GNOME desktop")
+    (description
+     "Getting Things GNOME! (GTG) is a personal tasks and TODO list items
+organizer for the GNOME desktop environment inspired by the Getting Things
+Done (GTD) methodology.  GTG is designed with flexibility, adaptability,
+and ease of use in mind so it can be used as more than just GTD software.
+GTG is intended to help you track everything you need to do and need to
+know, from small tasks to large projects.")
+    (license license:gpl3+)))
+
 (define-public icon-naming-utils
   (package
     (name "icon-naming-utils")
@@ -1936,16 +2851,16 @@ database is translated at Transifex.")
 (define-public system-config-printer
   (package
     (name "system-config-printer")
-    (version "1.5.12")
+    (version "1.5.15")
     (source
      (origin
        (method url-fetch)
        (uri (string-append
              "https://github.com/OpenPrinting/system-config-printer/releases/"
-             "download/" version
+             "download/v" version
              "/system-config-printer-" version ".tar.xz"))
        (sha256
-        (base32 "050yrx1vfh9f001qsn06y1jcidxq0ymxr64kxykasr0zzryp25kb"))))
+        (base32 "12d6xx51vizc476zfnsga9q09nflp51ipn6y7lhi9w2v4772dlpv"))))
     (build-system glib-or-gtk-build-system)
     (arguments
      `(#:imported-modules ((guix build python-build-system)
@@ -2078,7 +2993,7 @@ some form of information without getting in the user's way.")
 (define-public libpeas
   (package
     (name "libpeas")
-    (version "1.24.1")
+    (version "1.28.0")
     (source
      (origin
       (method url-fetch)
@@ -2087,7 +3002,7 @@ some form of information without getting in the user's way.")
                           name "-" version ".tar.xz"))
       (sha256
        (base32
-        "1162dr7smmfb02czmhshr0f93hqj7w0nw29bys5lzfvwarxcyflw"))))
+        "05cb7drn6arc4gi02wgsvzibigi2riz5gnfnmlb0zmbfnj9ikna2"))))
     (build-system meson-build-system)
     (arguments
      '(#:phases
@@ -2212,7 +3127,13 @@ API add-ons to make GTK+ widgets OpenGL-capable.")
     (description "Glade is a rapid application development (RAD) tool to
 enable quick & easy development of user interfaces for the GTK+ toolkit and
 the GNOME desktop environment.")
-    (license license:lgpl2.0+)))
+    (license license:lgpl2.0+)
+    (native-search-paths (list (search-path-specification
+                                (variable "GLADE_CATALOG_SEARCH_PATH")
+                                (files '("share/glade/catalogs")))
+                               (search-path-specification
+                                (variable "GLADE_MODULE_SEARCH_PATH")
+                                (files '("lib/glade/modules")))))))
 
 (define-public libcroco
   (package
@@ -2352,9 +3273,8 @@ library.")
 
 (define-public librsvg-next
   (package
-    (inherit librsvg)
     (name "librsvg")
-    (version "2.48.8")
+    (version "2.50.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/librsvg/"
@@ -2362,17 +3282,18 @@ library.")
                                   "librsvg-" version ".tar.xz"))
               (sha256
                (base32
-                "14i6xzghcidv64cyd3g0wdjbl82rph737yxn9s3x29nzpcjs707l"))
+                "1lsnl08b5pjf01q3agixjd53islw5rqkc38r31rlmm2crrqz44b2"))
               (modules '((guix build utils)))
               (snippet
                '(begin (delete-file-recursively "vendor")
                        #t))))
     (build-system cargo-build-system)
+    (outputs '("out" "doc"))
     (arguments
-     `(#:modules ((guix build cargo-build-system)
-                  (guix build utils)
-                  ((guix build gnu-build-system) #:prefix gnu:))
-       #:vendor-dir "vendor"
+     `(#:modules
+       ((guix build cargo-build-system)
+        (guix build utils)
+        ((guix build gnu-build-system) #:prefix gnu:))
        #:cargo-inputs
        (("rust-bitflags" ,rust-bitflags-1)
         ("rust-cairo-rs" ,rust-cairo-rs-0.8)
@@ -2380,9 +3301,8 @@ library.")
         ("rust-cast" ,rust-cast-0.2)
         ("rust-cssparser" ,rust-cssparser-0.27)
         ("rust-data-url" ,rust-data-url-0.1)
-        ("rust-downcast-rs" ,rust-downcast-rs-1.1)
         ("rust-encoding" ,rust-encoding-0.2)
-        ("rust-float-cmp" ,rust-float-cmp-0.6)
+        ("rust-float-cmp" ,rust-float-cmp-0.8)
         ("rust-gdk-pixbuf" ,rust-gdk-pixbuf-0.8)
         ("rust-gdk-pixbuf-sys" ,rust-gdk-pixbuf-sys-0.9)
         ("rust-gio" ,rust-gio-0.8)
@@ -2390,14 +3310,14 @@ library.")
         ("rust-glib" ,rust-glib-0.9)
         ("rust-glib-sys" ,rust-glib-sys-0.9)
         ("rust-gobject-sys" ,rust-gobject-sys-0.9)
-        ("rust-itertools" ,rust-itertools-0.8)
+        ("rust-itertools" ,rust-itertools-0.9)
         ("rust-language-tags" ,rust-language-tags-0.2)
         ("rust-libc" ,rust-libc-0.2)
         ("rust-locale-config" ,rust-locale-config-0.3)
         ("rust-markup5ever" ,rust-markup5ever-0.10)
-        ("rust-nalgebra" ,rust-nalgebra-0.19)
+        ("rust-nalgebra" ,rust-nalgebra-0.21)
         ("rust-num-traits" ,rust-num-traits-0.2)
-        ("rust-once-cell" ,rust-once-cell-1.2)
+        ("rust-once-cell" ,rust-once-cell-1)
         ("rust-pkg-config" ,rust-pkg-config-0.3)
         ("rust-pango" ,rust-pango-0.8)
         ("rust-pango-sys" ,rust-pango-sys-0.9)
@@ -2407,21 +3327,37 @@ library.")
         ("rust-rgb" ,rust-rgb-0.8)
         ("rust-regex" ,rust-regex-1)
         ("rust-selectors" ,rust-selectors-0.22)
-        ("rust-url" ,rust-url-2.1)
+        ("rust-string-cache" ,rust-string-cache-0.8)
+        ("rust-tinyvec" ,rust-tinyvec-0.3)
+        ("rust-url" ,rust-url-2)
         ("rust-xml5ever" ,rust-xml5ever-0.16))
        #:cargo-development-inputs
-       (("rust-cairo-rs" ,rust-cairo-rs-0.8)
-        ("rust-criterion" ,rust-criterion-0.3))
+       (("rust-assert-cmd" ,rust-assert-cmd-1)
+        ("rust-cairo-rs" ,rust-cairo-rs-0.8)
+        ("rust-chrono" ,rust-chrono-0.4)
+        ("rust-criterion" ,rust-criterion-0.3)
+        ("rust-float-cmp" ,rust-float-cmp-0.8)
+        ("rust-lopdf" ,rust-lopdf-0.25)
+        ("rust-png" ,rust-png-0.16)
+        ("rust-predicates" ,rust-predicates-1)
+        ("rust-tempfile" ,rust-tempfile-3))
        #:phases
        (modify-phases %standard-phases
+         (add-after 'unpack 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "doc"
+               (substitute* "rsvg-docs.xml"
+                 (("http://www.oasis-open.org/docbook/xml/4.3/")
+                  (string-append (assoc-ref inputs "docbook-xml")
+                                 "/xml/dtd/docbook/"))))
+             #t))
          (add-after 'unpack 'prepare-for-build
            (lambda _
              ;; In lieu of #:make-flags
              (setenv "CC" ,(cc-for-target))
              ;; Something about the build environment resists building
              ;; successfully with the '--locked' flag.
-             (substitute* '("Makefile.am"
-                            "Makefile.in")
+             (substitute* '("Makefile.am" "Makefile.in")
                (("--locked") ""))
              #t))
          (add-before 'configure 'pre-configure
@@ -2432,7 +3368,7 @@ library.")
                (("gdk_pixbuf_moduledir = .*$")
                 (string-append "gdk_pixbuf_moduledir = "
                                "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
-                                "loaders\n"))
+                               "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"))
@@ -2443,25 +3379,78 @@ library.")
               #:native-inputs native-inputs
               #:inputs inputs
               #:outputs outputs
-              #:configure-flags (list "--disable-static"
-                                      "--enable-vala"))))
+              #:configure-flags
+              (list "--disable-static"
+                    "--enable-vala"
+               (string-append "--with-html-dir="
+                              (assoc-ref %outputs "doc")
+                              "/share/gtk-doc/html")))))
          (add-after 'configure 'dont-vendor-self
            (lambda* (#:key vendor-dir #:allow-other-keys)
              ;; Don't keep the whole tarball in the vendor directory
              (delete-file-recursively
-               (string-append vendor-dir "/" ,name "-" ,version ".tar.xz"))
+              (string-append vendor-dir "/" ,name "-" ,version ".tar.xz"))
              #t))
          (replace 'build
            (assoc-ref gnu:%standard-phases 'build))
+         (add-before 'check 'ignore-failing-tests
+           ;; stderr=```/tmp/guix-build-.../librsvg-2.50.1/rsvg-convert: line 150: ls: command not found
+           (lambda _
+             (substitute* "tests/src/cmdline/rsvg_convert.rs"
+               (("fn background_color_option_invalid_color_yields_error" all)
+                (string-append "#[ignore] " all))
+               (("fn empty_input_yields_error" all)
+                (string-append "#[ignore] " all))
+               (("fn empty_svg_yields_error" all)
+                (string-append "#[ignore] " all))
+               (("fn env_source_data_epoch_empty" all)
+                (string-append "#[ignore] " all))
+               (("fn env_source_data_epoch_no_digits" all)
+                (string-append "#[ignore] " all))
+               (("fn env_source_data_epoch_trailing_garbage" all)
+                (string-append "#[ignore] " all))
+               (("fn export_id_option_error" all)
+                (string-append "#[ignore] " all))
+               (("fn huge_zoom_factor_yields_error" all)
+                (string-append "#[ignore] " all))
+               (("fn multiple_input_files_not_allowed_for_png_output" all)
+                (string-append "#[ignore] " all))
+               (("fn stylesheet_option_error" all)
+                (string-append "#[ignore] " all)))
+             #t))
          (replace 'check
            (lambda* args
              ((assoc-ref gnu:%standard-phases 'check)
               #:test-target "check")))
          (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
-     `(("pango" ,pango)
-       ,@(alist-delete "pango" (package-inputs librsvg))))
+     `(("bzip2" ,bzip2)
+       ("fontconfig" ,fontconfig)
+       ("freetype" ,freetype)
+       ("harfbuzz" ,harfbuzz)
+       ("libcroco" ,libcroco)
+       ("libgsf" ,libgsf)
+       ("libxml2" ,libxml2)
+       ("pango" ,pango)))
+    (propagated-inputs
+     `(("cairo" ,cairo)
+       ("gdk-pixbuf" ,gdk-pixbuf)
+       ("glib" ,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
+environments use it for similar purposes.  Wikimedia uses it for Wikipedia's SVG
+diagrams.")
+    (home-page "https://wiki.gnome.org/LibRsvg")
     (license license:lgpl2.1+)))
 
 (define-public libidl
@@ -3048,14 +4037,14 @@ Hints specification (EWMH).")
 (define-public goffice
   (package
     (name "goffice")
-    (version "0.10.47")
+    (version "0.10.48")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/goffice/"
                                   (version-major+minor version)  "/"
                                   "goffice-" version ".tar.xz"))
               (sha256
-               (base32 "0xmigfdzvmlpa0fw79mf3xwchmxc8rlidryn5syv8bz7msmrb215"))))
+               (base32 "1z6f3q8fxkd1ysqrwdxdi0844zqa00vjpf07gq8mh3kal8picfd4"))))
     (build-system gnu-build-system)
     (outputs '("out"
                "doc"))                  ; 4.0 MiB of gtk-doc
@@ -3112,7 +4101,7 @@ Hints specification (EWMH).")
 (define-public gnumeric
   (package
     (name "gnumeric")
-    (version "1.12.46")
+    (version "1.12.48")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/gnumeric/"
@@ -3120,7 +4109,7 @@ Hints specification (EWMH).")
                                   "gnumeric-" version ".tar.xz"))
               (sha256
                (base32
-                "1qdmw2dp7rmq8fmjapgwaks7ajh270wm6kyvlxlzwbgmg8vngp4z"))))
+                "14556b0vyxdvdwjlin0rv7jk0vq4nplbmvp9j89bhkfk84xf7k2p"))))
     (build-system glib-or-gtk-build-system)
     (arguments
      `(;; The gnumeric developers don't worry much about failing tests.
@@ -3148,8 +4137,8 @@ Hints specification (EWMH).")
        ("librsvg" ,librsvg)
        ("libxml2" ,libxml2)
        ("libxslt" ,libxslt)
-       ("python" ,python-2)
-       ("python2-pygobject" ,python2-pygobject)
+       ("python" ,python)
+       ("python-pygobject" ,python-pygobject)
        ("zlib" ,zlib)))
     (native-inputs
      `(("bison" ,bison)
@@ -3209,7 +4198,7 @@ engineering.")
 (define-public seahorse
   (package
     (name "seahorse")
-    (version "3.34")
+    (version "3.36.2")
     (source
      (origin
        (method url-fetch)
@@ -3217,8 +4206,7 @@ engineering.")
                            (version-major+minor version) "/" name "-"
                            version ".tar.xz"))
        (sha256
-        (base32
-         "16sfnqrdlr5xx6kixx2ln1mva7nngjlw1k3f5n454vyaigffjh2v"))))
+        (base32 "16wmxxppgcgfj8zkagcny5af1c81x32ysm9d6j9f2k7bmik21ss5"))))
     (build-system meson-build-system)
     (arguments
      '(#:glib-or-gtk? #t
@@ -3238,6 +4226,7 @@ engineering.")
        ("openldap" ,openldap)
        ("openssh" ,openssh)
        ("avahi" ,avahi)
+       ("libhandy" ,libhandy-0.0)
        ("libpwquality" ,libpwquality)
        ("libsecret" ,libsecret)
        ("libsoup" ,libsoup)))
@@ -3291,7 +4280,7 @@ passwords in the GNOME keyring.")
      `(("graphviz" ,graphviz)))
     (propagated-inputs
      `(("glib" ,glib))) ; required by libvala-0.40.pc
-    (home-page "https://live.gnome.org/Vala/")
+    (home-page "https://wiki.gnome.org/Projects/Vala/")
     (synopsis "Compiler for the GObject type system")
     (description
      "Vala is a programming language that aims to bring modern programming
@@ -3300,10 +4289,10 @@ requirements and without using a different ABI compared to applications and
 libraries written in C.")
     (license license:lgpl2.1+)))
 
-(define-public vala-0.48
+(define-public vala-0.50
   (package
     (inherit vala)
-    (version "0.48.6")
+    (version "0.50.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/vala/"
@@ -3311,7 +4300,7 @@ libraries written in C.")
                                   "vala-" version ".tar.xz"))
               (sha256
                (base32
-                "01wppzgacdmp8dgf8047myz1any2yffmrhgl8kqf1q0c0gnhi3fi"))))))
+                "1nnf0x6vk0a9p2y6z7jwjfvmlxh3qhj581v381r0y1sxsv35s39c"))))))
 
 (define-public vte
   (package
@@ -3459,17 +4448,16 @@ and RDP protocols.")
 (define-public dconf
   (package
     (name "dconf")
-    (version "0.34.0")
+    (version "0.36.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
                     "mirror://gnome/sources/" name "/"
                     (version-major+minor version) "/"
                     name "-" version ".tar.xz"))
-              (patches (search-patches "dconf-meson-0.52.patch"))
               (sha256
                (base32
-                "0lnsl85cp2vpzgp8pkf6l6yd2i3lp02jdvga1icfa78j2smr8fll"))))
+                "0bfs069pjv6lhp7xrzmrhz3876ay2ryqxzc6mlva1hhz34ibprlz"))))
     (build-system meson-build-system)
     (propagated-inputs
      ;; In Requires of dconf.pc.
@@ -3488,10 +4476,17 @@ and RDP protocols.")
        ("pkg-config" ,pkg-config)
        ("vala" ,vala)))
     (arguments
-     `(#:tests? #f ; To contact dbus it needs to load /var/lib/dbus/machine-id
-                   ; or /etc/machine-id.
-       #:glib-or-gtk? #t
-       #:configure-flags '("-Denable-gtk-doc=true")))
+     `(#:glib-or-gtk? #t
+       #:configure-flags '("-Denable-gtk-doc=true")
+       #:phases (modify-phases %standard-phases
+                  (add-after 'unpack 'increase-test-timeout
+                    (lambda _
+                      ;; On big-memory systems, the engine test may take
+                      ;; much longer than the default of 30 seconds.
+                      (substitute* "tests/meson.build"
+                        (("test\\(unit_test\\[0\\], exe" all)
+                         (string-append all ", timeout : 90")))
+                      #t)))))
     (home-page "https://developer.gnome.org/dconf/")
     (synopsis "Low-level GNOME configuration system")
     (description "Dconf is a low-level configuration system.  Its main purpose
@@ -3676,7 +4671,7 @@ libxml to ease remote use of the RESTful API.")
 (define-public libsoup
   (package
     (name "libsoup")
-    (version "2.70.0")
+    (version "2.72.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/libsoup/"
@@ -3684,7 +4679,7 @@ libxml to ease remote use of the RESTful API.")
                                   "libsoup-" version ".tar.xz"))
               (sha256
                (base32
-                "0hjk9lgppc5435my0lyywbpmj7ib5vvcylwfin8ki97g9bvj1c2l"))))
+                "11skbyw2pw32178q3h8pi7xqa41b2x4k6q4k9f75zxmh8s23y30p"))))
     (build-system meson-build-system)
     (outputs '("out" "doc"))
     (arguments
@@ -3695,6 +4690,14 @@ libxml to ease remote use of the RESTful API.")
        #:configure-flags '("-Dgtk_doc=true")
        #: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
@@ -3766,7 +4769,8 @@ libxml to ease remote use of the RESTful API.")
                (delete-file-recursively (string-append out "/share/gtk-doc"))
                #t))))))
     (native-inputs
-     `(("glib:bin" ,glib "bin")                   ; for glib-mkenums
+     `(("docbook-xml" ,docbook-xml-4.1.2)
+       ("glib:bin" ,glib "bin")                   ; for glib-mkenums
        ("gobject-introspection" ,gobject-introspection)
        ("gtk-doc" ,gtk-doc)
        ("intltool" ,intltool)
@@ -3814,7 +4818,7 @@ and the GLib main loop, to integrate well with GNOME applications.")
 (define-public libsecret
   (package
     (name "libsecret")
-    (version "0.20.3")
+    (version "0.20.4")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -3823,7 +4827,7 @@ and the GLib main loop, to integrate well with GNOME applications.")
                     "libsecret-" version ".tar.xz"))
               (sha256
                (base32
-                "1r4habxdzmn02id324m0m4mg5isf22q1z436bg3vjjmcz1b3rjsg"))))
+                "0a4xnfmraxchd9cq5ai66j12jv2vrgjmaaxz25kl031jvda4qnij"))))
     (build-system gnu-build-system)
     (outputs '("out" "doc"))
     (arguments
@@ -3849,6 +4853,8 @@ and the GLib main loop, to integrate well with GNOME applications.")
     (propagated-inputs
      `(("glib" ,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
@@ -3905,7 +4911,7 @@ and other secrets.  It communicates with the \"Secret Service\" using DBus.")
 (define-public gnome-mines
   (package
     (name "gnome-mines")
-    (version "3.34.0")
+    (version "3.36.1")
     (source
      (origin
        (method url-fetch)
@@ -3913,8 +4919,7 @@ and other secrets.  It communicates with the \"Secret Service\" using DBus.")
                            (version-major+minor version) "/"
                            name "-" version ".tar.xz"))
        (sha256
-        (base32
-         "1spxa6qr1y8s5rrsvpciywpvhk812ngn95s1apaxaigwy2g1iw54"))))
+        (base32 "0m2680r94nk61imym4x73j03jwfjd8cxm592m5ybiqdfdw6i723i"))))
     (build-system meson-build-system)
     (arguments
      '(#:glib-or-gtk? #t
@@ -4085,14 +5090,14 @@ keyboard shortcuts.")
 (define-public colord
   (package
     (name "colord")
-    (version "1.4.4")
+    (version "1.4.5")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://www.freedesktop.org/software/colord/releases/"
                            "colord-" version ".tar.xz"))
        (sha256
-        (base32 "19f0938fr7nvvm3jr263dlknaq7md40zrac2npfyz25zc00yh3ws"))))
+        (base32 "05sydi6qqqx1rrqwnga1vbg9srkf89wdcfw5w4p4m7r37m2flx5p"))))
     (build-system meson-build-system)
     (arguments
      '(;; FIXME: One test fails:
@@ -4162,7 +5167,7 @@ output devices.")
 (define-public geoclue
   (package
     (name "geoclue")
-    (version "2.5.6")
+    (version "2.5.7")
     (source
      (origin
        (method url-fetch)
@@ -4170,7 +5175,7 @@ output devices.")
         (string-append "https://gitlab.freedesktop.org/geoclue/geoclue/-/archive/"
                        version "/geoclue-" version ".tar.bz2"))
        (sha256
-        (base32 "0a833x5apzabxj80ywvsh8crd635vni2i9v9c1p095f6hvmfc45k"))
+        (base32 "09ww26a76kanldhgwnn5sqy9ly2940k45zpp68spykkv2zjdpivc"))
        (patches (search-patches "geoclue-config.patch"))))
     (build-system meson-build-system)
     (arguments
@@ -4180,7 +5185,7 @@ output devices.")
        ("gobject-introspection" ,gobject-introspection)
        ("modem-manager" ,modem-manager)
        ("libnotify" ,libnotify)
-       ("gtk-doc", gtk-doc)
+       ("gtk-doc" ,gtk-doc)
        ("intltool" ,intltool)))
     (inputs
      `(("avahi" ,avahi)
@@ -4200,7 +5205,7 @@ permission from user.")
 (define-public geocode-glib
   (package
     (name "geocode-glib")
-    (version "3.26.1")
+    (version "3.26.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/geocode-glib/"
@@ -4208,7 +5213,7 @@ permission from user.")
                                   "geocode-glib-" version ".tar.xz"))
               (sha256
                (base32
-                "076ydfpyc4n5c9dbqmf26i4pilfi5jpw6cjcgrbgrjbndavnmajv"))))
+                "1l8g0f13xgkrk335afr9w8k46mziwb2jnyhl07jccl5yl37q9zh1"))))
     (build-system meson-build-system)
     (arguments
      `(#:phases
@@ -4367,7 +5372,8 @@ services for numerous locations.")
                            name "-" version ".tar.xz"))
        (sha256
         (base32
-         "07y1gbicz0pbxmdgwrdzyc4byy30wfwpbqgvnx27gnpqmc5s50cr"))))
+         "07y1gbicz0pbxmdgwrdzyc4byy30wfwpbqgvnx27gnpqmc5s50cr"))
+       (patches (search-patches "gnome-settings-daemon-gc.patch"))))
     (build-system meson-build-system)
     (arguments
      `(#:glib-or-gtk? #t
@@ -4380,6 +5386,21 @@ services for numerous locations.")
              (string-append "-Dc_link_args=-Wl,-rpath="
                             (assoc-ref %outputs "out")
                             "/lib/gnome-settings-daemon-3.0"))
+
+       #:phases (modify-phases %standard-phases
+                  (add-before 'configure 'set-baobab-file-name
+                    (lambda* (#:key inputs #:allow-other-keys)
+                      ;; Hard-code the file name of Baobab instead of looking
+                      ;; it up in $PATH.  This ensures users get the "Examine"
+                      ;; button in the low disk space notification of GDM even
+                      ;; if they don't have GNOME in their main profile.
+                      (let ((baobab (assoc-ref inputs "baobab")))
+                        (substitute* "plugins/housekeeping/gsd-disk-space.c"
+                          (("g_find_program_in_path \\(DISK_SPACE_ANALYZER\\)")
+                           (string-append "g_strdup (\"" baobab
+                                          "/bin/baobab\")")))
+                        #t))))
+
        ;; Color management test can't reach the colord system service.
        #:tests? #f))
     (native-inputs
@@ -4392,6 +5413,7 @@ services for numerous locations.")
        ("docbook-xsl" ,docbook-xsl)))
     (inputs
      `(("alsa-lib" ,alsa-lib)
+       ("baobab" ,baobab)
        ("colord" ,colord)
        ("libgudev" ,libgudev)
        ("upower" ,upower)
@@ -4428,7 +5450,7 @@ settings, themes, mouse settings, and startup of other daemons.")
 (define-public totem-pl-parser
  (package
    (name "totem-pl-parser")
-   (version "3.26.3")
+   (version "3.26.5")
    (source (origin
             (method url-fetch)
             (uri (string-append "mirror://gnome/sources/totem-pl-parser/"
@@ -4436,7 +5458,7 @@ settings, themes, mouse settings, and startup of other daemons.")
                                 "totem-pl-parser-" version ".tar.xz"))
             (sha256
              (base32
-              "13a45py2j1r9967zgww8kd24bn2fhycd4m3kzr90sxx9l2w03z8f"))))
+              "132jihnf51zs98yjkc6jxyqib4f3dawpjm17g4bj4j78y93dww2k"))))
    (build-system meson-build-system)
    (arguments
     ;; FIXME: Tests require gvfs.
@@ -4916,16 +5938,15 @@ as possible!")
 (define-public grilo
   (package
     (name "grilo")
-    (version "0.3.10")
+    (version "0.3.12")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "mirror://gnome/sources/" name "/"
+       (uri (string-append "mirror://gnome/sources/grilo/"
                            (version-major+minor version) "/"
-                           name "-" version ".tar.xz"))
+                           "grilo-" version ".tar.xz"))
        (sha256
-        (base32
-         "1s7ilyywf18q26aj5c4709kfizqywjlnacp4jzmj9v9i9kkv4i3y"))))
+        (base32 "0w8sq5g6g1rg85h53vbll8va70fcp6082mlpmy98aa03444ddyyv"))))
     (build-system meson-build-system)
     (native-inputs
      `(("glib:bin" ,glib "bin")         ; for glib-mkenums and glib-genmarshal
@@ -4957,7 +5978,7 @@ for application developers.")
 (define-public grilo-plugins
   (package
     (name "grilo-plugins")
-    (version "0.3.10")
+    (version "0.3.11")
     (source
      (origin
        (method url-fetch)
@@ -4965,8 +5986,7 @@ for application developers.")
                            (version-major+minor version) "/"
                            name "-" version ".tar.xz"))
        (sha256
-        (base32
-         "0jldaixc4kzycn5v8ixkjld1n0z3dp0l1p3vchgdwpvdvc7kcfw0"))))
+        (base32 "0wyd3n5mn7b77hxylkc3f62v01mlavh96901pz342hwrn42ydqnx"))))
     (build-system meson-build-system)
     (native-inputs
      `(("gettext" ,gettext-minimal)
@@ -5006,7 +6026,7 @@ discovery protocols.")
 (define-public totem
   (package
     (name "totem")
-    (version "3.34.1")
+    (version "3.38.0")
     (source
      (origin
        (method url-fetch)
@@ -5015,14 +6035,14 @@ discovery protocols.")
                            "totem-" version ".tar.xz"))
        (sha256
         (base32
-         "028sc6xbyi7rs884862d8f3di6zhcm0lhvlpc3r69ifzjsq9my3b"))))
+         "0bs33ijvxbr2prb9yj4dxglsszslsn9k258n311sld84masz4ad8"))))
     (build-system meson-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("desktop-file-utils" ,desktop-file-utils)
+       ("gettext" ,gettext-minimal)
        ("gobject-introspection" ,gobject-introspection)
        ("glib:bin" ,glib "bin")                   ;for 'glib-mkenums'
-       ("intltool" ,intltool)
        ("itstool" ,itstool)
        ("xmllint" ,libxml2)
        ("xorg-server" ,xorg-server-for-tests)))
@@ -5076,6 +6096,14 @@ discovery protocols.")
              (substitute* "meson_post_install.py"
                (("gtk-update-icon-cache") "true"))
              #t))
+         (add-after 'unpack 'patch-failing-test
+           (lambda _
+             ;; Work around test failure with GStreamer 1.18, because the test
+             ;; relies on "und" not being mapped to a particular language:
+             ;; https://gitlab.gnome.org/GNOME/totem/-/issues/450
+            (substitute* "src/test-totem.c"
+              (("und") "nosuchlang"))
+            #t))
          (add-before
           'install 'disable-cache-generation
           (lambda _
@@ -5343,7 +6371,10 @@ part of udev-extras, then udev, then systemd.  It's now a project on its own.")
                                   "gvfs-" version ".tar.xz"))
               (sha256
                (base32
-                "1cfnzamr4mvgpf6yhm28lh9cafy9z6842s8jpbqnfizfxybg8ylj"))))
+                "1cfnzamr4mvgpf6yhm28lh9cafy9z6842s8jpbqnfizfxybg8ylj"))
+              ;; This patch may be removed when upgrading to version 1.46.x.
+              (patches
+               (search-patches "gvfs-add-support-for-libplist-2.2.patch"))))
     (build-system meson-build-system)
     (arguments
      '(#:glib-or-gtk? #t
@@ -5436,7 +6467,7 @@ USB transfers with your high-level application or system daemon.")
 (define-public simple-scan
   (package
     (name "simple-scan")
-    (version "3.36.3")
+    (version "3.38.2")
     (source
      (origin
        (method url-fetch)
@@ -5444,7 +6475,7 @@ USB transfers with your high-level application or system daemon.")
                            (version-major+minor version) "/"
                            "simple-scan-" version ".tar.xz"))
        (sha256
-        (base32 "0gsz7jqk0fdj0mama3cnss9i1adw18cpdnlcjcjh4r5qijmvx0vh"))))
+        (base32 "02sdkhxgr6i7iy481h4xavgaqd0a5dlsipzwrm4qd242jrr813d8"))))
     (build-system meson-build-system)
     ;; TODO: Fix icons in home screen, About dialogue, and scan menu.
     (arguments
@@ -5476,14 +6507,14 @@ almost all of them.")
 (define-public eolie
   (package
     (name "eolie")
-    (version "0.9.98.1")
+    (version "0.9.101")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://adishatz.org/eolie/eolie-"
                                   version ".tar.xz"))
               (sha256
                (base32
-                "1d844zva5w4p9pnp9c2g7zyb4vayr2g2drf78spxsdlc5lbd7lqr"))))
+                "1v8n21y75abdzsnx5idyd0q6yfb6cd0sqbknlbkwh5fdgvjzyvwn"))))
     (build-system meson-build-system)
     (arguments
      `(#:glib-or-gtk? #t
@@ -5680,25 +6711,36 @@ of running programs and invoke methods on those interfaces.")
   (package
     (name "yelp-xsl")
     (version "3.34.2")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/" name "/"
-                                  (version-major+minor version) "/"
-                                  name "-" version ".tar.xz"))
-              (sha256
-               (base32
-                "1bdpgkzawhqmw52l6zx8czzg1ndfgcf1p44m2bxjdpqkc4afcgqc"))))
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version) "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "1bdpgkzawhqmw52l6zx8czzg1ndfgcf1p44m2bxjdpqkc4afcgqc"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("gettext-minimal" ,gettext-minimal)
        ("itstool" ,itstool)
        ("xmllint" ,libxml2)))
-    (home-page "https://wiki.gnome.org/Apps/Yelp")
     (synopsis "XSL stylesheets for Yelp")
-    (description
-     "Yelp-xsl contains XSL stylesheets that are used by the yelp help browser
-to format Docbook and Mallard documents.")
-    (license license:gpl2+)))
+    (description "Yelp-XSL is a collection of programs and data files to help
+you build, maintain, and distribute documentation.  It provides XSLT stylesheets
+that can be built upon for help viewers and publishing systems.  These
+stylesheets output JavaScript and CSS content, and reference images
+provided by yelp-xsl. It also redistributes copies of the jQuery and
+jQuery.Syntax JavaScript libraries.")
+    (home-page "https://wiki.gnome.org/Apps/Yelp")
+    (license
+     (list
+      ;; XSLT
+      license:gpl2+
+      ;; Images
+      license:lgpl2.1+
+      ;; JavaScript
+      license:expat))))
 
 (define-public yelp
   (package
@@ -5738,31 +6780,32 @@ freedesktop.org help system specification.")
   (package
     (name "yelp-tools")
     (version "3.32.2")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/" name "/"
-                                  (version-major+minor version) "/"
-                                  name "-" version ".tar.xz"))
-              (sha256
-               (base32
-                "1yg8f5g5wadhmy4yfd9yjhvd8vll4gq4l86ibp0b42qbxnsmcf0q"))))
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version) "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "1yg8f5g5wadhmy4yfd9yjhvd8vll4gq4l86ibp0b42qbxnsmcf0q"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("yelp-xsl" ,yelp-xsl)))
     (propagated-inputs
      ;; Needed by `yelp-build', `yelp-check' or 'yelp.m4'.
      `(("itstool" ,itstool)
        ("xmllint" ,libxml2)
        ("xsltproc" ,libxslt)))
-    (inputs
-     `(("yelp-xsl" ,yelp-xsl)))
-    (home-page "https://wiki.gnome.org/Apps/Yelp/Tools")
     (synopsis "Yelp documentation tools")
     (description
      "Yelp-tools is a collection of scripts and build utilities to help create,
 manage, and publish documentation for Yelp and the web.  Most of the heavy
 lifting is done by packages like yelp-xsl and itstool.  This package just
 wraps things up in a developer-friendly way.")
+    (home-page "https://wiki.gnome.org/Apps/Yelp/Tools")
     (license license:gpl2+)))
 
 (define-public libgee
@@ -5837,7 +6880,7 @@ metadata in photo and video files of various formats.")
 (define-public shotwell
   (package
     (name "shotwell")
-    (version "0.30.9")
+    (version "0.30.11")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/shotwell/"
@@ -5845,7 +6888,7 @@ metadata in photo and video files of various formats.")
                                   "shotwell-" version ".tar.xz"))
               (sha256
                (base32
-                "1y556yyzfya0310v5wqjkf17hy5lhf028iminvvgi2pdfva344id"))))
+                "12d26y40kjlv5x8f5g04wff33vh7mdjb8c41ydqbrwdip0jwy2n2"))))
     (build-system meson-build-system)
     (arguments
      '(#:glib-or-gtk? #t
@@ -5892,7 +6935,7 @@ share them with others via social networking and more.")
 (define-public file-roller
   (package
     (name "file-roller")
-    (version "3.32.3")
+    (version "3.38.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/file-roller/"
@@ -5900,7 +6943,7 @@ share them with others via social networking and more.")
                                   "file-roller-" version ".tar.xz"))
               (sha256
                (base32
-                "0ap2hxvjljh4p6wsd9ikh2my3vsxp9r2nvjxxj3v87nwfyw1y4dy"))))
+                "06ikvjjcgb8nxabkn2rywy76a1c7s6w8dszaxvaxldbxarp1qgbj"))))
     (build-system meson-build-system)
     (native-inputs
      `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
@@ -7102,7 +8145,7 @@ libxml2.")
        ("xmllint" ,libxml2)))
     (inputs
      `(("accountsservice" ,accountsservice)
-       ("check" ,check) ; for testing
+       ("check" ,check-0.14)            ;for testing
        ("elogind" ,elogind)
        ("gnome-session" ,gnome-session)
        ("gnome-settings-daemon" ,gnome-settings-daemon)
@@ -7147,7 +8190,7 @@ usage and information about running processes.")
 (define-public gnome-bluetooth
   (package
     (name "gnome-bluetooth")
-    (version "3.34.0")
+    (version "3.34.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
@@ -7155,7 +8198,7 @@ usage and information about running processes.")
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1bvbxcsjkyl0givy8nfm7112bq3c0vn1v89fdk2pip714dsfcrz8"))))
+                "0lmjvb49vgr4jjplrisv6pi29jsn1q42715i6c5a0p9ad3gawyyv"))))
     (build-system meson-build-system)
     (native-inputs
      `(("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
@@ -7457,40 +8500,47 @@ like switching to windows and launching applications.")
 (define-public gtk-vnc
   (package
     (name "gtk-vnc")
-    (version "0.9.0")
+    (version "1.0.0")
     (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/" name "/"
+                       (version-major+minor version) "/"
+                       name "-" version ".tar.xz"))
        (sha256
-        (base32
-         "1dya1wc9vis8h0fv625pii1n70cckf1xjg1m2hndz989d118i6is"))))
-    (build-system gnu-build-system)
+        (base32 "1060ws037v556rx1qhfrcg02859rscksrzr8fq11himdg4d1y6m8"))))
+    (build-system meson-build-system)
     (arguments
-     '(#:configure-flags '("--with-gtk=3.0")))
-    (propagated-inputs
-     `(("gtk+" ,gtk+))) ; required by gtk-vnc-2.0.pc.
-    (inputs
-     `(("cyrus-sasl" ,cyrus-sasl)
-       ("gnutls" ,gnutls)
-       ("libgcrypt" ,libgcrypt)
-       ("pulseaudio" ,pulseaudio)))
+     `(#:glib-or-gtk? #t))   ; To wrap binaries and/or compile schemas
     (native-inputs
-     `(("glib:bin" ,glib "bin")
+     `(("gjs" ,gjs)
+       ("glib:bin" ,glib "bin")
        ("gobject-introspection" ,gobject-introspection)
        ("intltool" ,intltool)
+       ("node" ,node)
+       ("perl" ,perl)
        ("pkg-config" ,pkg-config)
-       ("python-wrapper" ,python-wrapper)
+       ("python" ,python-wrapper)
        ("vala" ,vala)))
+    (inputs
+     `(("cairo" ,cairo)
+       ("gdk-pixbuf" ,gdk-pixbuf+svg)
+       ("glib" ,glib)
+       ("gnutls" ,gnutls)
+       ("libgcrypt" ,libgcrypt)
+       ("libsasl" ,cyrus-sasl)
+       ("pulseaudio" ,pulseaudio)
+       ("x11" ,libx11)
+       ("zlib" ,zlib)))
+    (propagated-inputs
+     `(("gtk+" ,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
+it to be completely asynchronous while remaining single threaded.  It provides a
+core C library, and bindings for Python (PyGTK).")
     (home-page "https://wiki.gnome.org/Projects/gtk-vnc")
-    (synopsis "VNC viewer widget for GTK+")
-    (description
-     "GTK-VNC is a VNC viewer widget for GTK+, used by remote desktop viewing
-applications, for instance the Vinagre client, GNOME Boxes and virt-viewer.
-GTK-VNC implements client side RFB protocol and authentication extensions such
-as SASL, TLS and VeNCrypt.  Additionally it supports encoding extensions.")
     (license license:lgpl2.1+)))
 
 (define-public gnome-autoar
@@ -7523,7 +8573,7 @@ easy, safe, and automatic.")
 (define-public tracker
   (package
     (name "tracker")
-    (version "2.3.4")
+    (version "2.3.5")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/tracker/"
@@ -7531,7 +8581,7 @@ easy, safe, and automatic.")
                                   "tracker-" version ".tar.xz"))
               (sha256
                (base32
-                "0vai0qz9jn3z5dlzysynwhbbmslp84ygdql81f5wfxxr98j54yap"))))
+                "1ixxyqjlv7pnl4j8g6b72fkbjvzfspza8y71ppkncry8i6xkr223"))))
     (build-system meson-build-system)
     (arguments
      `(#:glib-or-gtk? #t
@@ -7593,7 +8643,7 @@ endpoint and it understands SPARQL. ")
 (define-public tracker-miners
   (package
     (name "tracker-miners")
-    (version "2.3.3")
+    (version "2.3.4")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/tracker-miners/"
@@ -7601,7 +8651,7 @@ endpoint and it understands SPARQL. ")
                                   "/tracker-miners-" version ".tar.xz"))
               (sha256
                (base32
-                "06abxrnrz7xayykrabn135rpsm6z0fqw7gibrb9j09l6swlalwkl"))))
+                "10wy8d8ski52k809p7s6lbw72qmg05bbmhnl00vx4qrbzqyxvc0b"))))
     (build-system meson-build-system)
     (arguments
      `(#:glib-or-gtk? #t
@@ -7724,7 +8774,7 @@ files.")
 (define-public baobab
   (package
     (name "baobab")
-    (version "3.32.0")
+    (version "3.38.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -7733,7 +8783,7 @@ files.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0b33s9bhpiffv5wl76cq2bbnqhvx3qs2vxyxmil5gcs583llqh9r"))))
+                "0ac3fbl15l836yvgw724q4whbkws9v4b6l2xy6bnp0b0g0a6i104"))))
     (build-system meson-build-system)
     (arguments
      '(#:glib-or-gtk? #t))
@@ -8132,6 +9182,75 @@ specified duration and save it as a GIF encoded animated image file.")
       (home-page "https://git.gnome.org/browse/byzanz")
       (license license:gpl2+))))
 
+(define-public authenticator
+  (package
+    (name "authenticator")
+    (version "3.32.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://gitlab.gnome.org/World/Authenticator")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1c4r9rnrz5gazrfg0z2rcwax4nscs7z391bcjcl74k6ln3blwzpr"))))
+    (build-system meson-build-system)
+    (arguments
+     `(#:glib-or-gtk? #t
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let ((prog (string-append (assoc-ref outputs "out")
+                                        "/bin/authenticator"))
+                   (pylib (string-append (assoc-ref outputs "out")
+                                         "/lib/python"
+                                         ,(version-major+minor
+                                           (package-version python))
+                                         "/site-packages")))
+               (wrap-program prog
+                 `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib))
+                 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
+               #t))))))
+    (native-inputs
+     `(("desktop-file-utils" ,desktop-file-utils)
+       ("gettext" ,gettext-minimal)
+       ("glib:bin" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("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)))
+    (home-page "https://gitlab.gnome.org/World/Authenticator/")
+    (synopsis "Two-factor authentication application built for GNOME")
+    (description
+     "Authenticator is a two-factor authentication (2FA) application built for
+the GNOME desktop environment.
+
+Features:
+
+@itemize
+@item QR code scanner
+@item Beautiful UI
+@item Huge database of more than 560 supported services
+@item Keep your PIN tokens secure by locking the application with a password
+@item Automatically fetch an image for services using their favicon
+@item The possibility to add new services
+@end itemize")
+    (license license:gpl3+)))
+
 (define-public gsound
   (package
     (name "gsound")
@@ -8376,7 +9495,7 @@ existing databases over the internet.")
 (define-public gnome-tweaks
   (package
     (name "gnome-tweaks")
-    (version "3.34.0")
+    (version "3.34.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/gnome-tweaks/"
@@ -8386,7 +9505,7 @@ existing databases over the internet.")
                (list (search-patch "gnome-tweaks-search-paths.patch")))
               (sha256
                (base32
-                "0l2j42ba7v866iknygamnkiq7igh0fjvq92r93cslvvfnkx2ccq0"))))
+                "19y62dj4n5i6v4zpjllxl51dch6ndy8xs45v5aqmmq9xyfrqk5yq"))))
     (build-system meson-build-system)
     (arguments
      `(#:glib-or-gtk? #t
@@ -8419,7 +9538,7 @@ existing databases over the internet.")
        ("gtk+" ,gtk+)
        ("gobject-introspection" ,gobject-introspection)
        ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
-       ("libhandy" ,libhandy)
+       ("libhandy" ,libhandy-0.0)
        ("libnotify" ,libnotify)
        ("libsoup" ,libsoup)
        ("nautilus" ,nautilus)
@@ -8461,139 +9580,6 @@ functionality and behavior.")
     (home-page "https://extensions.gnome.org/")
     (license license:gpl3+)))
 
-(define-public arc-theme
-  (package
-    (name "arc-theme")
-    (version "20190917")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://github.com/NicoHood/arc-theme")
-                    (commit version)))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "1qgpk4p2hi5hd4yy0hj93kq1vs0b32wb8qkaj1wi90c8gwddq5wa"))))
-    (build-system gnu-build-system)
-    (arguments
-     '(#: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)))
-    (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
-like GNOME, Unity, Budgie, Pantheon, XFCE, Mate, etc.")
-    (home-page "https://github.com/horst3180/arc-theme")
-    ;; No "or later" language found.
-    (license license:gpl3+)))
-
-(define-public faba-icon-theme
-  (package
-    (name "faba-icon-theme")
-    (version "4.3")
-    (source
-     (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/snwh/faba-icon-theme")
-             (commit (string-append "v" version))))
-       (file-name (git-file-name name version))
-       (sha256
-        (base32 "0xh6ppr73p76z60ym49b4d0liwdc96w41cc5p07d48hxjsa6qd6n"))))
-    (build-system meson-build-system)
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-before 'configure 'disable-post-install
-           (lambda _
-             (substitute* "meson.build"
-               (("meson.add_install_script.*") "")))))))
-    (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)))
-    (synopsis "Faba icon theme")
-    (description
-     "Faba is a minimal icon set used as a basis for other themes such as
-Moka")
-    (home-page "https://snwh.org/moka")
-    (license (list license:lgpl3+
-                   license:cc-by-sa4.0))))
-
-(define-public moka-icon-theme
-  (package
-    (inherit faba-icon-theme)
-    (name "moka-icon-theme")
-    (version "5.4.0")
-    (source
-     (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/snwh/moka-icon-theme")
-             (commit (string-append "v" version))))
-       (file-name (git-file-name name version))
-       (sha256
-        (base32 "015l02im4mha5z91dbchxf6xkp66d346bg3xskwg0rh3lglhjsrd"))))
-    (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)))
-    (synopsis "Moka icon theme")
-    (description "Moka is a stylized desktop icon set, designed to be clear,
-simple and consistent.")
-    (license (list license:gpl3+
-                   license:cc-by-sa4.0))))
-
-(define-public arc-icon-theme
-  (package
-    (name "arc-icon-theme")
-    (version "20161122")
-    (source
-     (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/horst3180/arc-icon-theme")
-             (commit version)))
-       (file-name (git-file-name name version))
-       (sha256
-        (base32 "1ch3hp08qri93510hypzz6m2x4xgg2h15wvnhjwh1x1s1b7jvxjd"))))
-    (build-system gnu-build-system)
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'disable-configure-during-bootstrap
-           (lambda _
-             (substitute* "autogen.sh"
-               (("^\"\\$srcdir/configure\".*") ""))
-             #t)))))
-    (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)))
-    ;; When Arc is missing an icon, it looks in the Moka icon theme for it.
-    (propagated-inputs
-     `(("moka-icon-theme" ,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
-the Moka icon theme.")
-    (home-page "https://github.com/horst3180/arc-icon-theme")
-    (license license:gpl3+)))
-
 (define-public folks
   (package
     (name "folks")
@@ -8643,7 +9629,7 @@ compiled.")
 (define-public gfbgraph
   (package
     (name "gfbgraph")
-    (version "0.2.3")
+    (version "0.2.4")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -8652,17 +9638,23 @@ compiled.")
                     "gfbgraph-" version ".tar.xz"))
               (sha256
                (base32
-                "1dp0v8ia35fxs9yhnqpxj3ir5lh018jlbiwifjfn8ayy7h47j4fs"))))
+                "0yck7dwvjk16a52nafjpi0a39rxwmg0w833brj45acz76lgkjrb0"))))
     (build-system glib-or-gtk-build-system)
     (arguments
-     `(#:tests? #f ; Tests appear to require the network.
-       ;; FIXME --enable-gtk-doc fails even with gtk-doc as a native-input.
-       #:configure-flags '("--disable-gtk-doc"
-                           "--disable-static"
+     `(#:tests? #f                      ; tests appear to require the network
+       #:configure-flags '("--disable-static"
+                           "--enable-gtk-doc"
                            "--enable-introspection")))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("gobject-introspection" ,gobject-introspection)))
+     `(("gobject-introspection" ,gobject-introspection)
+       ("gtk-doc" ,gtk-doc)
+       ("pkg-config" ,pkg-config)
+
+       ;; The 0.2.4 ‘release’ tarball isn't bootstrapped.
+       ("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("libtool" ,libtool)
+       ("which" ,which)))
     (inputs
      `(("json-glib" ,json-glib)
        ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
@@ -8887,14 +9879,14 @@ only know by its Unicode name or code point.")
 (define-public bluefish
   (package
     (name "bluefish")
-    (version "2.2.11")
+    (version "2.2.12")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "http://www.bennewitz.com/bluefish/stable/source/"
+       (uri (string-append "https://www.bennewitz.com/bluefish/stable/source/"
                            "bluefish-" version ".tar.gz"))
        (sha256
-        (base32 "0a7kf78q4cj2ap4igjks9kbmmr74brsrl4y2f9wbxpl0b0v2ck2x"))))
+        (base32 "09hgxq139kbkjda5y073lqhq1z1x7cx0j80jh77afrqa3y9c53wl"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("desktop-file-utils" ,desktop-file-utils)
@@ -8909,7 +9901,7 @@ only know by its Unicode name or code point.")
     (home-page "http://bluefish.openoffice.nl")
     (synopsis "Web development studio")
     (description
-     "Bluefish is an editor targeted towards programmers and web developers,
+     "Bluefish is an editor aimed at programmers and web developers,
 with many options to write web sites, scripts and other code.
 Bluefish supports many programming and markup languages.")
     (license license:gpl3+)))
@@ -9176,14 +10168,14 @@ views can be printed as PDF or PostScript files, or exported to HTML.")
 (define-public lollypop
   (package
     (name "lollypop")
-    (version "1.2.32")
+    (version "1.4.6")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://adishatz.org/lollypop/"
                            "lollypop-" version ".tar.xz"))
        (sha256
-        (base32 "1ng9492k8754vlqggbfsyzbmfdx4w17fzc4ad21fr92710na0w5a"))))
+        (base32 "1hlahr50gsagx1ifcdk4yn43xps6w0vqn0gnd6xckfc7qmg1pgq7"))))
     (build-system meson-build-system)
     (arguments
      `(#:imported-modules
@@ -9213,11 +10205,13 @@ views can be printed as PDF or PostScript files, or exported to HTML.")
        ("gtk+:bin" ,gtk+ "bin")         ; For gtk-update-icon-cache
        ("pkg-config" ,pkg-config)))
     (inputs
-     `(("gobject-introspection" ,gobject-introspection)
+     `(("glib-networking" ,glib-networking)
+       ("gobject-introspection" ,gobject-introspection)
        ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
        ("gst-plugins-base" ,gst-plugins-base)
        ("libnotify" ,libnotify)
        ("libsecret" ,libsecret)
+       ("libhandy" ,libhandy)
        ("libsoup" ,libsoup)
        ("python" ,python)
        ("python-beautifulsoup4" ,python-beautifulsoup4)
@@ -9245,7 +10239,7 @@ automatically and it can stream songs from online music services and charts.")
 (define-public gnome-video-effects
   (package
     (name "gnome-video-effects")
-    (version "0.4.3")
+    (version "0.5.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
@@ -9253,14 +10247,10 @@ automatically and it can stream songs from online music services and charts.")
                                   version ".tar.xz"))
               (sha256
                (base32
-                "06c2f1kihyhawap1s3zg5w7q7fypsybkp7xry4hxkdz4mpsy0zjs"))))
-    (build-system glib-or-gtk-build-system)
-    (arguments
-     `(#:out-of-source? #f))
+                "1j6h98whgkcxrh30bwvnxvyqxrxchgpdgqhl0j71xz7x72dqxijd"))))
+    (build-system meson-build-system)
     (native-inputs
-     `(("glib:bin" ,glib "bin")
-       ("intltool" ,intltool)
-       ("gettext" ,gettext-minimal)
+     `(("gettext" ,gettext-minimal)
        ("pkg-config" ,pkg-config)))
     (home-page "https://wiki.gnome.org/Projects/GnomeVideoEffects")
     (synopsis "Video effects for Cheese and other GNOME applications")
@@ -9272,7 +10262,7 @@ photo-booth-like software, such as Cheese.")
 (define-public cheese
   (package
     (name "cheese")
-    (version "3.34.0")
+    (version "3.38.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
@@ -9280,7 +10270,7 @@ photo-booth-like software, such as Cheese.")
                                   version ".tar.xz"))
               (sha256
                (base32
-                "0wvyc9wb0avrprvm529m42y5fkv3lirdphqydc9jw0c8mh05d1ni"))))
+                "0vyim2avlgq3a48rgdfz5g21kqk11mfb53b2l883340v88mp7ll8"))))
     (arguments
      `(#:glib-or-gtk? #t
        ;; Tests require GDK.
@@ -9293,6 +10283,15 @@ photo-booth-like software, such as Cheese.")
              (substitute* "meson_post_install.py"
                (("gtk-update-icon-cache") (which "true")))
              #t))
+         (add-after 'unpack 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             ;; Avoid a network connection attempt during the build.
+             (substitute* '("docs/reference/cheese.xml"
+                            "docs/reference/cheese-docs.xml")
+               (("http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd")
+                (string-append (assoc-ref inputs "docbook-xml")
+                               "/xml/dtd/docbook/docbookx.dtd")))
+             #t))
          (add-after 'install 'wrap-cheese
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (let ((out             (assoc-ref outputs "out"))
@@ -9303,9 +10302,10 @@ photo-booth-like software, such as Cheese.")
     (build-system meson-build-system)
     (native-inputs
      `(("docbook-xsl" ,docbook-xsl)
+       ("docbook-xml" ,docbook-xml-4.3)
+       ("gettext" ,gettext-minimal)
        ("glib:bin" ,glib "bin")
        ("gtk-doc" ,gtk-doc)
-       ("intltool" ,intltool)
        ("itstool" ,itstool)
        ("libxml2" ,libxml2)
        ("libxslt" ,libxslt)
@@ -9335,6 +10335,60 @@ photo-booth-like software, such as Cheese.")
 apply fancy special effects and lets you share the fun with others.")
     (license license:gpl2+)))
 
+(define-public passwordsafe
+  (package
+    (name "passwordsafe")
+    (version "3.99.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://gitlab.gnome.org/World/PasswordSafe")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0pi2l4gwf8paxm858mxrcsk5nr0c0zw5ycax40mghndb6b1qmmhf"))))
+    (build-system meson-build-system)
+    (arguments
+     `(#:glib-or-gtk? #t
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((prog (string-append (assoc-ref outputs "out")
+                                        "/bin/gnome-passwordsafe"))
+                   (pylib (string-append (assoc-ref outputs "out")
+                                         "/lib/python"
+                                         ,(version-major+minor
+                                           (package-version python))
+                                         "/site-packages")))
+               (wrap-program prog
+                 `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib))
+                 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
+               #t))))))
+    (native-inputs
+     `(("desktop-file-utils" ,desktop-file-utils)
+       ("gettext" ,gettext-minimal)
+       ("glib:bin" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("gtk+:bin" ,gtk+ "bin")
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("glib" ,glib)
+       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
+       ("gtk+" ,gtk+)
+       ("libhandy" ,libhandy-0.0)
+       ("libpwquality" ,libpwquality)
+       ("python-pygobject" ,python-pygobject)
+       ("python-pykeepass" ,python-pykeepass)))
+    (home-page "https://gitlab.gnome.org/World/PasswordSafe")
+    (synopsis "Password manager for the GNOME desktop")
+    (description
+     "Password Safe is a password manager which makes use of the KeePass v4
+format.  It integrates perfectly with the GNOME desktop and provides an easy
+and uncluttered interface for the management of password databases.")
+    (license license:gpl3+)))
+
 (define-public sound-juicer
   (package
     (name "sound-juicer")
@@ -9522,7 +10576,7 @@ hexadecimal or ASCII.  It is useful for editing binary files in general.")
 (define-public libdazzle
   (package
     (name "libdazzle")
-    (version "3.34.1")
+    (version "3.37.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/libdazzle/"
@@ -9530,7 +10584,7 @@ hexadecimal or ASCII.  It is useful for editing binary files in general.")
                                   "libdazzle-" version ".tar.xz"))
               (sha256
                (base32
-                "01cmcrd75b7ns7j2b4p6h7pv68vjhkcl9zbvzzx7pf4vknxir61x"))))
+                "03r5cr11dc031qa3694bpgm3lajrhiiln67kvl7vjj4q0scf7w7x"))))
     (build-system meson-build-system)
     (arguments
      `(#:phases
@@ -9681,32 +10735,37 @@ advanced image management tool")
 (define-public terminator
   (package
     (name "terminator")
-    (version "1.91")
+    (version "1.92")
     (source (origin
               (method url-fetch)
-              (uri (string-append "https://launchpad.net/" name "/"
-                                  "gtk3/" version "/" "+download/"
+              (uri (string-append "https://github.com/gnome-" name "/" name "/"
+                                  "releases/download/v" version "/"
                                   name "-" version ".tar.gz"))
               (sha256
                (base32
-                "0sdyqwydmdnh7j6mn74vrywz35m416kqsbxbrqcnv5ak08y6xxwm"))))
+                "1wbkfp0nk6x9bcwi681zy30qmrp4h754sdz6b7hi9j22mmvdd50z"))))
     (build-system python-build-system)
     (native-inputs
-     `(("intltool" ,intltool)
+     `(("gettext" ,gettext-minimal)
        ("glib:bin" ,glib "bin")                   ; for glib-compile-resources
-       ("gettext" ,gettext-minimal)
-       ("pkg-config" ,pkg-config)))
+       ("gobject-introspection" ,gobject-introspection)
+       ("intltool" ,intltool)
+       ("pkg-config" ,pkg-config)
+       ("python-psutil" ,python-psutil)
+       ("python-pytest-runner" ,python-pytest-runner)
+       ("python-pytest" ,python-pytest)))
     (inputs
      `(("cairo" ,cairo)
-       ("gobject-introspection" ,gobject-introspection)
+       ("dbus-glib" ,dbus-glib)
        ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
-       ("python2-pycairo" ,python2-pycairo)
-       ("python2-pygobject" ,python2-pygobject)
-       ("python2-psutil" ,python2-psutil)
+       ("gtk+" ,gtk+)
+       ("python-pycairo" ,python-pycairo)
+       ("python-pygobject" ,python-pygobject)
        ("vte" ,vte)))
+    (propagated-inputs
+     `(("python-configobj" ,python-configobj)))
     (arguments
-     `(#:python ,python-2                          ; Python 3 isn't supported
-       #:imported-modules ((guix build glib-or-gtk-build-system)
+     `(#:imported-modules ((guix build glib-or-gtk-build-system)
                            ,@%python-build-system-modules)
        #:modules ((guix build python-build-system)
                   ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
@@ -9717,37 +10776,42 @@ advanced image management tool")
           'install 'wrap-program
           (lambda* (#:key outputs #:allow-other-keys)
             (let ((prog (string-append (assoc-ref outputs "out")
-                                       "/bin/terminator")))
+                                       "/bin/terminator"))
+                  (pylib (string-append (assoc-ref outputs "out")
+                                        "/lib/python"
+                                        ,(version-major+minor
+                                          (package-version python))
+                                        "/site-packages")))
               (wrap-program prog
-                `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
+                `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib))
                 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
               #t)))
          (add-after 'wrap-program 'glib-or-gtk-wrap
            (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
-    (home-page "https://gnometerminator.blogspot.com/")
+    (home-page "https://gnome-terminator.org/")
     (synopsis "Store and run multiple GNOME terminals in one window")
     (description
      "Terminator allows you to run multiple GNOME terminals in a grid and
-+tabs, and it supports drag and drop re-ordering of terminals.")
+tabs, and it supports drag and drop re-ordering of terminals.")
     (license license:gpl2)))
 
 (define-public libhandy
   (package
     (name "libhandy")
-    (version "0.0.12")
+    (version "1.0.3")
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://source.puri.sm/Librem5/libhandy")
-             (commit (string-append "v" version))))
+             (url "https://gitlab.gnome.org/GNOME/libhandy")
+             (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "09wlknarzsbk9hr5ws6s7x5kibkhx9ayrbhshfqib4zkhq2f76hw"))))
+        (base32 "0flgwlm921801i3ns0dwqpnxl89f3rzn4y9h723i13bmflch3in7"))))
     (build-system meson-build-system)
     (arguments
      `(#:configure-flags
-       '("-Dglade_catalog=disabled"
+       '("-Dglade_catalog=enabled"
          "-Dgtk_doc=true")
        #:phases
        (modify-phases %standard-phases
@@ -9758,7 +10822,9 @@ advanced image management tool")
              (setenv "DISPLAY" ":1")
              #t)))))
     (inputs
-     `(("gtk+" ,gtk+)))
+     `(("gtk+" ,gtk+)
+       ("glade" ,glade3)
+       ("libxml2" ,libxml2)))
     (native-inputs
      `(("glib:bin" ,glib "bin")
        ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
@@ -9770,13 +10836,31 @@ advanced image management tool")
        ;; Test suite dependencies.
        ("xorg-server" ,xorg-server-for-tests)
        ("hicolor-icon-theme" ,hicolor-icon-theme)))
-    (home-page "https://source.puri.sm/Librem5/libhandy")
+    (home-page "https://gitlab.gnome.org/GNOME/libhandy/")
     (synopsis "Library full of GTK+ widgets for mobile phones")
     (description "The aim of the handy library is to help with developing user
 interfaces for mobile devices using GTK+.  It provides responsive GTK+ widgets
 for usage on small and big screens.")
     (license license:lgpl2.1+)))
 
+(define-public libhandy-0.0
+  (package
+    (inherit libhandy)
+    (version "0.0.13")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://gitlab.gnome.org/GNOME/libhandy")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name "libhandy" version))
+       (sha256
+        (base32 "1y23k623sjkldfrdiwfarpchg5mg58smcy1pkgnwfwca15wm1ra5"))))
+    (arguments
+     (substitute-keyword-arguments (package-arguments libhandy)
+       ((#:configure-flags flags)
+        '(list "-Dglade_catalog=disabled" "-Dgtk_doc=true"))))))
+
 (define-public libgit2-glib
   (package
     (name "libgit2-glib")
@@ -9988,10 +11072,48 @@ versions of Adwaita, Adwaita-dark and HighContrast themes.  It also provides
 index files needed for Adwaita to be used outside of GNOME.")
     (license license:lgpl2.1+)))
 
+(define-public gnote
+  (package
+    (name "gnote")
+    (version "3.38.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://gnome/sources/" name "/"
+                           (version-major+minor version)  "/"
+                           "gnote-" version ".tar.xz"))
+       (sha256
+        (base32 "1ingbaw4d8vpjn083xvzqw7kz8z0k2bx7msk78pbzd68bwgkadpx"))))
+    (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)))
+    (synopsis "Note-taking application for the GNOME desktop")
+    (description
+     "Gnote is a note-taking application written for the GNOME desktop
+environment.")
+    (home-page "https://wiki.gnome.org/Apps/Gnote")
+    (license license:gpl3+)))
+
 (define-public polari
   (package
     (name "polari")
-    (version "3.32.2")
+    (version "3.36.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/polari/"
@@ -9999,7 +11121,7 @@ index files needed for Adwaita to be used outside of GNOME.")
                                   "/polari-" version ".tar.xz"))
               (sha256
                (base32
-                "0h0w9j3y067l911gpj446b3a2w1i2vzr1w2a7cz7i5rhn6qkf2sp"))))
+                "0fpmrvhd40yay051bzn4x3gsrzdv42nav0pm5ps0np8wk1z689jg"))))
     (build-system meson-build-system)
     (arguments
      `(#:glib-or-gtk? #t
@@ -10151,7 +11273,7 @@ join_paths\\('build-aux', 'post_install.py'\\)\\)")
        ("json-glib" ,json-glib)
        ("libcanberra" ,libcanberra)
        ("libgee" ,libgee)
-       ("libhandy" ,libhandy)
+       ("libhandy" ,libhandy-0.0)
        ("libpeas" ,libpeas)
        ("libsecret" ,libsecret)
        ("libunwind" ,libunwind)
@@ -10223,10 +11345,109 @@ 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")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://gnome/sources/" name "/"
+                           (version-major+minor version)  "/"
+                           "gnome-latex-" version ".tar.xz"))
+       (sha256
+        (base32 "1869kr1zhcp04mzbi67lwgk497w840dbbc7427i9yh9b9s7j6mqn"))))
+    (build-system glib-or-gtk-build-system)
+    (native-inputs
+     `(("gettext" ,gettext-minimal)
+       ("glib:bin" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("gtk-doc" ,gtk-doc)
+       ("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)))
+    (home-page "https://wiki.gnome.org/Apps/GNOME-LaTeX")
+    (synopsis "LaTeX editor for the GNOME desktop")
+    (description
+     "GNOME LaTeX is a LaTeX editor for the GNOME desktop.  It has features
+such as build tools, completion of LaTeX commands, structure navigation,
+symbol tables, document templates, project management, spell-checking, menus
+and toolbars.")
+    (license license:gpl3+)))
+
+(define-public setzer
+  (package
+    (name "setzer")
+    (version "0.3.9")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/cvfosammmm/Setzer")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1qmy2bxl8x6pijjaaj91v6rqdipha6iyy0b6b9y1lk3r2p3azd42"))))
+    (build-system meson-build-system)
+    (arguments
+     `(#:glib-or-gtk? #t
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((prog (string-append (assoc-ref outputs "out")
+                                        "/bin/setzer"))
+                   (pylib (string-append (assoc-ref outputs "out")
+                                         "/lib/python"
+                                         ,(version-major+minor
+                                           (package-version python))
+                                         "/site-packages")))
+               (wrap-program prog
+                 `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib))
+                 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
+               #t))))))
+    (native-inputs
+     `(("desktop-file-utils" ,desktop-file-utils)
+       ("gettext" ,gettext-minimal)
+       ("glib:bin" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("gtk+:bin" ,gtk+ "bin")))
+    (inputs
+     `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
+       ("gspell" ,gspell)
+       ("gtk+" ,gtk+)
+       ("gtksourceview" ,gtksourceview)
+       ("pango" ,pango)
+       ("poppler" ,poppler)
+       ("python-pycairo" ,python-pycairo)
+       ("python-pygobject" ,python-pygobject)
+       ("python-pyxdg" ,python-pyxdg)
+       ("webkitgtk" ,webkitgtk)
+       ("xdg-utils" ,xdg-utils)))
+    (home-page "https://www.cvfosammmm.org/setzer/")
+    (synopsis "LaTeX editor written in Python with GTK+")
+    (description
+     "Setzer is a simple yet full-featured LaTeX editor written in Python with
+GTK+.  It integrates well with the GNOME desktop environment.")
+    (license license:gpl3+)))
+
 (define-public libratbag
   (package
     (name "libratbag")
-    (version "0.13")
+    (version "0.14")
     (source
      (origin
        (method git-fetch)
@@ -10235,7 +11456,7 @@ card sheets that you’ll find at most office supply stores.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "18y8mfr63d91278m1kcid0wvrxa1sgjs8na9af1ks2n28ssvciwq"))))
+        (base32 "1fpwp2sj8mf98bqasq2h8qwgprxi7k3iw33gcfid3d1lbyiacw0x"))))
     (build-system meson-build-system)
     (arguments
      `(#:configure-flags
@@ -10293,7 +11514,7 @@ your operating-system definition:
 (define-public piper
   (package
     (name "piper")
-    (version "0.5")
+    (version "0.5.1")
     (source
      (origin
        (method git-fetch)
@@ -10301,7 +11522,7 @@ your operating-system definition:
              (url "https://github.com/libratbag/piper")
              (commit version)))
        (sha256
-        (base32 "00vrcsbsv2477l1ncpyzc61lhxgac84dsgr3sjs8qxw3nh1gaasv"))
+        (base32 "1nfjnsiwg2rs6gkjsxzhr2708i6di149dgwq3cf6l12rxqpb8arj"))
        (file-name (git-file-name name version))))
     (build-system meson-build-system)
     (native-inputs
@@ -10325,6 +11546,7 @@ your operating-system definition:
        #:modules (((guix build python-build-system) #:prefix python:)
                   (guix build meson-build-system)
                   (guix build utils))
+       #:tests? #f ;; The flake8 test fails trying to validate piper.in as code.
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'dont-update-gtk-icon-cache
@@ -10361,7 +11583,7 @@ provided there is a DBus service present:
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://github.com/gkarsay/parlatype.git")
+             (url "https://github.com/gkarsay/parlatype")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
@@ -10473,15 +11695,15 @@ GObject introspection bindings.")
 (define-public sysprof
   (package
     (name "sysprof")
-    (version "3.34.1")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/" name "/"
-                                  (version-major+minor version) "/"
-                                  name "-" version ".tar.xz"))
-              (sha256
-               (base32
-                "1l4kr1av7933vb4zql9c5lgzivlw64hyky4nr8xin1v5if6vnjw4"))))
+    (version "3.36.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://gnome/sources/sysprof/"
+                           (version-major+minor version) "/"
+                           "sysprof-" version ".tar.xz"))
+       (sha256
+        (base32 "024i0gzqnm79rpr4gqxdvcj6gvf82xdlcp2p1k9ikcppmi6xnw46"))))
     (build-system meson-build-system)
     (arguments
      `(#:configure-flags
@@ -10508,11 +11730,17 @@ GObject introspection bindings.")
        ("itstool" ,itstool)
        ("pkg-config" ,pkg-config)
        ("xmllint" ,libxml2)))
-    (home-page "http://www.sysprof.com/")
-    (synopsis "System-wide performance profiler")
-    (description "Sysprof is a sampling profiler that uses a kernel module
-to generate stacktraces which are then interpreted by the userspace program
-@command{sysprof}.")
+    ;; This home page is so woefully out of date as to be essentially useless.
+    ;; (home-page "http://www.sysprof.com")
+    (home-page "https://wiki.gnome.org/Apps/Sysprof")
+    (synopsis "System-wide performance profiler for GNU/Linux")
+    (description
+     "Sysprof performs detailed, accurate, and fast CPU profiling of an entire
+GNU/Linux system including the kernel and all user-space applications.  This
+helps find the function(s) in which a program spends most of its time.
+
+It uses the kernel's built-in @code{ptrace} feature and handles shared
+libraries.  Applications do not need to be recompiled--or even restarted.")
     (license license:gpl3+)))
 
 (define-public gnome-builder
@@ -10534,6 +11762,9 @@ to generate stacktraces which are then interpreted by the userspace program
                                "-Dplugin_clang=false"
                                "-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
@@ -10548,6 +11779,13 @@ to generate stacktraces which are then interpreted by the userspace program
                 (string-append (assoc-ref inputs "python-pygobject")
                                "/lib")))
              #t))
+         (add-after 'configure 'fix-ninja
+           (lambda _
+             ;; #43296: meson(?) incorrectly assumes we want to link
+             ;;         this PIE against a static libselinux.
+             (substitute* "build.ninja"
+               (("libselinux\\.a") "libselinux.so"))
+             #t))
          (add-before 'check 'pre-check
            (lambda _
              (system "Xvfb :1 &")
@@ -10583,3 +11821,199 @@ environment (IDE) for writing GNOME-based software.  It features fuzzy search,
 auto-completion, a mini code map, documentation browsing, Git integration, an
 integrated profiler via Sysprof, debugging support, and more.")
     (license license:gpl3+)))
+
+(define-public komikku
+  (package
+    (name "komikku")
+    (version "0.25.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://gitlab.com/valos/Komikku/")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "03skci66y9qqiv4bqbbc0w6d6agilwmx95cw7sribj06zcykm7m3"))))
+    (build-system meson-build-system)
+    (arguments
+     `(#:glib-or-gtk? #t
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-sources
+           (lambda _
+             (substitute* "komikku/utils.py"
+               (("from komikku\\.servers import get_servers_list")
+                ;; code following that line should migrate old databases
+                ;; but the line itself results in an import error
+                "return data_dir_path"))))
+         (add-after 'unpack 'skip-gtk-update-icon-cache
+           (lambda _
+             (substitute* "meson_post_install.py"
+               (("gtk-update-icon-cache") (which "true")))
+             #t))
+         (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
+          (lambda* (#:key outputs #:allow-other-keys)
+            (let ((prog (string-append (assoc-ref outputs "out")
+                                       "/bin/komikku")))
+              (wrap-program prog
+                `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
+                `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
+              #t))))))
+    (inputs
+     `(("gtk+" ,gtk+)
+       ("libhandy" ,libhandy)
+       ("libnotify" ,libnotify)
+       ("libsecret" ,libsecret)
+       ("python-beautifulsoup4" ,python-beautifulsoup4)
+       ("python-dateparser" ,python-dateparser)
+       ("python-keyring" ,python-keyring)
+       ("python-lxml" ,python-lxml)
+       ("python-magic" ,python-magic)
+       ("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)))
+    (native-inputs
+     `(("desktop-file-utils" ,desktop-file-utils)
+       ("gettext" ,gettext-minimal)
+       ("glib:bin" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("pkg-config" ,pkg-config)))
+    (home-page "https://gitlab.com/valos/Komikku")
+    (synopsis "Manga reader for GNOME")
+    (description "Komikku is an online/offline manga reader for GNOME,
+developed with the aim of being used with the Librem 5 phone.")
+    (license license:gpl3+)))
+
+(define-public libgda
+  (package
+    (name "libgda")
+    (version "5.2.10")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://gitlab.gnome.org/GNOME/libgda.git/")
+             (commit (string-append "LIBGDA_" (string-replace-substring
+                                               version "." "_")))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "18rg773gq9v3cdywpmrp12c5xyp97ir9yqjinccpi22sksb1kl8a"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:configure-flags '("--enable-vala")
+       ;; There's a race between check_cnc_lock and check_threaded_cnc
+       ;; in tests/multi-threading.
+       #:parallel-tests? #f
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-glade-install
+           (lambda _
+             (substitute* "configure.ac"
+               (("`\\$PKG_CONFIG --variable=catalogdir gladeui-2\\.0`")
+                "${datadir}/glade/catalogs")
+               (("`\\$PKG_CONFIG --variable=pixmapdir gladeui-2\\.0`")
+                "${datadir}/glade/pixmaps"))
+             #t))
+         (add-before 'check 'pre-check
+           (lambda* (#:key inputs #:allow-other-keys)
+             ;; Tests require a running X server.
+             (system "Xvfb :1 &")
+             (setenv "DISPLAY" ":1")
+             #t))
+         (add-after 'install 'symlink-glade-module
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((shlib "libgda-ui-5.0.so")
+                    (out (assoc-ref outputs "out"))
+                    (out/lib (string-append out "/lib"))
+                    (moduledir (string-append out/lib "/glade/modules")))
+               (mkdir-p moduledir)
+               (symlink (string-append out/lib "/" shlib)
+                        (string-append moduledir "/" shlib))
+               #t))))))
+    (propagated-inputs
+     `(("libxml2" ,libxml2)))           ; required by libgda-5.0.pc
+    (inputs
+     `(("glib" ,glib)
+       ("glade" ,glade3)
+       ("gtk+" ,gtk+)
+       ("libsecret" ,libsecret)
+       ("libxslt" ,libxslt)
+       ("openssl" ,openssl)
+       ("vala" ,vala)))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("autoconf-archive" ,autoconf-archive)
+       ("automake" ,automake)
+       ("glib:bin" ,glib "bin")
+       ("gnome-common" ,gnome-common)
+       ("gobject-introspection" ,gobject-introspection)
+       ("gtk-doc" ,gtk-doc)
+       ("intltool" ,intltool)
+       ("libtool" ,libtool)
+       ("pkg-config" ,pkg-config)
+       ("vala" ,vala)
+       ("which" ,which)
+       ("xorg-server" ,xorg-server-for-tests)
+       ("yelp-tools" ,yelp-tools)))
+    (home-page "https://gitlab.gnome.org/GNOME/libgda")
+    (synopsis "Uniform data access")
+    (description
+     "GNU Data Access (GDA) is an attempt to provide uniform access to
+different kinds of data sources (databases, information servers, mail spools,
+etc).  It is a complete architecture that provides all you need to access
+your data.")
+    (license license:lgpl2.1+)))
+
+(define-public gtranslator
+  (package
+    (name "gtranslator")
+    (version "3.36.0")
+        (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://gnome/sources/" name "/"
+                                  (version-major+minor version) "/"
+                                  name "-" version ".tar.xz"))
+              (sha256
+               (base32
+                "1lxd2nkji4jk8g2xmyc1a1r3ww710ddk91zh9psmx8xlb4xivaid"))))
+    (build-system meson-build-system)
+    (inputs
+     `(("json-glib" ,json-glib)
+       ("jsonrpc-glib" ,jsonrpc-glib)
+       ("gettext" ,gettext-minimal)
+       ("glib" ,glib)
+       ("gtk+" ,gtk+)
+       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
+       ("gspell" ,gspell)
+       ("libdazzle" ,libdazzle)
+       ("libgda" ,libgda)
+       ("libsoup" ,libsoup)))
+    (native-inputs
+     `(("glib:bin" ,glib "bin")
+       ("itstool" ,itstool)
+       ("pkg-config" ,pkg-config)))
+    (propagated-inputs
+     `(("gtksourceview" ,gtksourceview))) ; required for source view
+    (arguments
+     `(#:build-type "release"
+       #:glib-or-gtk? #t
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'skip-gtk-update-icon-cache
+           (lambda _
+             (substitute* "build-aux/meson/meson_post_install.py"
+               (("gtk-update-icon-cache") (which "true")))
+             #t)))))
+    (home-page "https://wiki.gnome.org/Apps/Gtranslator")
+    (synopsis "Translation making program")
+    (description
+     "gtranslator is a quite comfortable gettext po/po.gz/(g)mo files editor
+for the GNOME 3.x platform with many features.  It aims to be a very complete
+editing environment for translation issues within the GNU gettext/GNOME desktop
+world.")
+    (license license:gpl3+)))
diff --git a/gnu/packages/gnu-pw-mgr.scm b/gnu/packages/gnu-pw-mgr.scm
index 6eb8224cef..d6f0cd6f86 100644
--- a/gnu/packages/gnu-pw-mgr.scm
+++ b/gnu/packages/gnu-pw-mgr.scm
@@ -1,7 +1,8 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2013 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
-;;; Copyright © 2016, 2018 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2018, 2020 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -30,15 +31,14 @@
 (define-public gnu-pw-mgr
   (package
     (name "gnu-pw-mgr")
-    (version "2.4.2")
+    (version "2.7.4")
     (source
      (origin
       (method url-fetch)
       (uri (string-append "mirror://gnu/gnu-pw-mgr/gnu-pw-mgr-"
                           version ".tar.xz"))
       (sha256
-       (base32
-        "1yvdzc5w37qrjrkby5699ygj9bhkvgi3zk9k9jcjry1j6b7wdl17"))))
+       (base32 "0fhwvsmsqpw0vnivarfg63l8pgwqfv7d5wi6l80jpb41dj6qpjz8"))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases
@@ -47,6 +47,12 @@
            (lambda _
              (substitute* "tests/dom.test"
                (("/usr/bin/printf") (which "printf")))
+             #t))
+         (add-before 'check 'pre-check
+           (lambda _
+             ;; In the build environment, there is no /dev/tty.
+             (substitute* "tests/base.test"
+               (("/dev/tty") "/dev/null"))
              #t)))))
     (native-inputs
      `(("which" ,which)))
diff --git a/gnu/packages/gnucash.scm b/gnu/packages/gnucash.scm
index 43aad3ed02..f71e8209fa 100644
--- a/gnu/packages/gnucash.scm
+++ b/gnu/packages/gnucash.scm
@@ -6,6 +6,8 @@
 ;;; Copyright © 2017, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2019 Guillaume Le Vaillant <glv@posteo.net>
+;;; Copyright © 2020 Prafulla Giri <pratheblackdiamond@gmail.com>
+;;; Copyright © 2020 Christopher Lam <christopher.lck@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -24,6 +26,7 @@
 
 (define-module (gnu packages gnucash)
   #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix utils)
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix build-system gnu)
@@ -48,6 +51,8 @@
   #:use-module (gnu packages multiprecision)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages python)
+  #:use-module (gnu packages swig)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages web)
   #:use-module (gnu packages webkit)
@@ -58,30 +63,30 @@
   ;; directory.
   (package
     (name "gnucash")
-    (version "3.8")
+    (version "4.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://sourceforge/gnucash/gnucash%20%28stable%29/"
-                           version "/gnucash-" version "b" ".tar.bz2"))
+                           version "/gnucash-" version ".tar.bz2"))
        (sha256
         (base32
-         "0dvzm3bib7jcj685sklpzyy9mrak9mxyvih2k9fk4sl3v21wlphg"))))
+         "020k1mm909dcgs52ls4v7xx3yn8gqazi9awyr81l6y7pkq1spn2n"))))
     (build-system cmake-build-system)
     (inputs
-     `(("guile" ,guile-2.2)
+     `(("guile" ,guile-3.0)
        ("boost" ,boost)
        ("icu4c" ,icu4c)
        ("glib" ,glib)
        ("gtk" ,gtk+)
        ("libdbi" ,libdbi)
        ("libdbi-drivers" ,libdbi-drivers)
-       ("libgnomecanvas" ,libgnomecanvas)
        ("libofx" ,libofx)
        ("libxml2" ,libxml2)
        ("libxslt" ,libxslt)
        ("webkitgtk" ,webkitgtk)
        ("aqbanking" ,aqbanking)
+       ("python" ,python)
        ("perl-date-manip" ,perl-date-manip)
        ("perl-finance-quote" ,perl-finance-quote)
        ("tzdata" ,tzdata-for-tests)))
@@ -91,13 +96,15 @@
        ("googlemock" ,(package-source googletest))
        ("googletest" ,googletest)
        ("gnucash-docs" ,gnucash-docs)
+       ("swig" ,swig)
        ("pkg-config" ,pkg-config)))
     (propagated-inputs
      ;; dconf is required at runtime according to README.dependencies.
      `(("dconf" ,dconf)))
-    (outputs '("out" "doc" "debug"))
+    (outputs '("out" "doc" "debug" "python"))
     (arguments
      `(#:test-target "check"
+       #:configure-flags '("-DWITH_PYTHON=ON")
        #:make-flags '("GUILE_AUTO_COMPILE=0")
        #:modules ((guix build cmake-build-system)
                   ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
@@ -129,8 +136,8 @@
          ;; execute them with perl, so execute them directly instead.
          (add-after 'unpack 'fix-finance-quote-check
            (lambda _
-             (substitute* "libgnucash/scm/price-quotes.scm"
-               (("\"perl\" \"-w\" ") ""))
+             (substitute* "gnucash/price-quotes.scm"
+                (("\"perl\" \"-w\" ") ""))
              #t))
          ;; The qof test requires the en_US, en_GB, and fr_FR locales.
          (add-before 'check 'install-locales
@@ -149,6 +156,20 @@
                (symlink (string-append docs "/share/gnome")
                         (string-append doc-output "/share/gnome"))
                #t)))
+         (add-after 'install 'split-python-bindings
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (python-output (assoc-ref outputs "python"))
+                    (python-bindings (string-append
+                                      "lib/python"
+                                      ,(version-major+minor
+                                        (package-version python)))))
+               (mkdir-p (string-append python-output "/" python-bindings))
+               (copy-recursively
+                (string-append out "/" python-bindings)
+                (string-append python-output "/" python-bindings))
+               (delete-file-recursively
+                (string-append out "/" python-bindings)))))
          (add-after 'install-docs 'wrap-programs
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (for-each (lambda (prog)
@@ -211,7 +232,7 @@ installed as well as Yelp, the Gnome help browser.")
                              version "/gnucash-docs-" version revision ".tar.gz"))
          (sha256
           (base32
-           "19v6kchda724xkkgwlw5rg21jcpirhch12j9sr6ibnv61sd4ql52"))))
+           "1p1rbv0gyi07nh5pzhk3xm46w66kjyaipb6rpaq9yb9gil1nl7q5"))))
       (build-system gnu-build-system)
       ;; These are native-inputs because they are only required for building the
       ;; documentation.
@@ -293,7 +314,7 @@ applications and libraries.  It is used by AqBanking.")
        ("gnutls" ,gnutls)))
     (native-inputs
      `(("pkg-config" ,pkg-config)
-       ("gettext-minimal", gettext-minimal)
+       ("gettext-minimal" ,gettext-minimal)
        ("libltdl" ,libltdl)))
     (home-page "https://www.aquamaniac.de/sites/aqbanking/index.php")
     (synopsis "Interface for online banking tasks")
diff --git a/gnu/packages/gnunet.scm b/gnu/packages/gnunet.scm
index d572d868ef..80e4aba29b 100644
--- a/gnu/packages/gnunet.scm
+++ b/gnu/packages/gnunet.scm
@@ -157,14 +157,14 @@ tool to extract metadata from a file and print the results.")
 (define-public libmicrohttpd
   (package
    (name "libmicrohttpd")
-   (version "0.9.70")
+   (version "0.9.72")
    (source (origin
             (method url-fetch)
             (uri (string-append "mirror://gnu/libmicrohttpd/libmicrohttpd-"
                                 version ".tar.gz"))
             (sha256
              (base32
-              "01vkjy89b1ylmh22dy5yza2r414nfwcfixxh3v29nvzrjv9s7l4h"))))
+              "1y1g9hk608jm4sfdbs8gql5wphalyhfdz824zl0i5x6pw3w2bs0a"))))
    (build-system gnu-build-system)
    (inputs
     `(("curl" ,curl)
diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm
index daf4bc3b6e..a2da166bb4 100644
--- a/gnu/packages/gnupg.scm
+++ b/gnu/packages/gnupg.scm
@@ -2,7 +2,7 @@
 ;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2013, 2015, 2018 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2014, 2018 Eric Bavier <bavier@member.fsf.org>
-;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.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, 2019 Ricardo Wurmus <rekado@elephly.net>
@@ -13,10 +13,11 @@
 ;;; Copyright © 2016 Troy Sankey <sankeytms@gmail.com>
 ;;; Copyright © 2017, 2020 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2017 Petter <petter@mykolab.ch>
-;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018, 2019 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2018 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
 ;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
+;;; Copyright © 2020 Fredrik Salomonsson <plattfot@posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -67,6 +68,7 @@
   #:use-module (gnu packages tor)
   #:use-module (gnu packages web)
   #:use-module (gnu packages xorg)
+  #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xml)
   #:use-module (guix packages)
   #:use-module (guix download)
@@ -106,6 +108,7 @@
                         (match (string-take target
                                             (string-index target #\-))
                           ("armhf" "arm-unknown-linux-gnueabi")
+                          ("mips64el" "mips-unknown-linux-gnu")
                           (x
                            (string-append x "-unknown-linux-gnu")))))
                    (symlink
@@ -167,7 +170,7 @@ generation.")
 (define-public libassuan
   (package
     (name "libassuan")
-    (version "2.5.3")
+    (version "2.5.4")
     (source
      (origin
       (method url-fetch)
@@ -175,7 +178,7 @@ generation.")
                           version ".tar.bz2"))
       (sha256
        (base32
-        "00p7cpvzf0q3qwcgg51r9d0vbab4qga2xi8wpk2fgd36710b1g4i"))))
+        "1w7vnnycq4z7gf4bk38pi4hrb8qrrzgfpz3cd7frwldxnfbfx060"))))
     (build-system gnu-build-system)
     (propagated-inputs
      `(("libgpg-error" ,libgpg-error)
@@ -195,7 +198,7 @@ provided.")
 (define-public libksba
   (package
     (name "libksba")
-    (version "1.3.5")
+    (version "1.5.0")
     (source
      (origin
       (method url-fetch)
@@ -204,7 +207,7 @@ provided.")
             version ".tar.bz2"))
       (sha256
        (base32
-        "0h53q4sns1jz1pkmhcz5wp9qrfn9f5g9i3vjv6dafwzzlvblyi21"))))
+        "1fm0mf3wq9fmyi1rmc1vk2fafn6liiw2mgxml3g7ybbb44lz2jmf"))))
     (build-system gnu-build-system)
     (propagated-inputs
      `(("libgpg-error" ,libgpg-error)))
@@ -254,7 +257,7 @@ compatible to GNU Pth.")
 (define-public gnupg
   (package
     (name "gnupg")
-    (version "2.2.20")
+    (version "2.2.25")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnupg/gnupg/gnupg-" version
@@ -262,7 +265,7 @@ compatible to GNU Pth.")
               (patches (search-patches "gnupg-default-pinentry.patch"))
               (sha256
                (base32
-                "0c6a4v9p6qzhsw1pfcwc459bxpc8hma0w9z8iqb9khvligack9q4"))))
+                "02n3klqbyzxyil13sg4wa0pcwr7vs7zjaslis926yjxg8yr0fly5"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
@@ -325,52 +328,6 @@ libskba (working with X.509 certificates and CMS data).")
     (properties '((ftp-server . "ftp.gnupg.org")
                   (ftp-directory . "/gcrypt/gnupg")))))
 
-(define-public gnupg-2.0
-  (package (inherit gnupg)
-    (version "2.0.30")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnupg/gnupg/gnupg-" version
-                                  ".tar.bz2"))
-              (sha256
-               (base32
-                "0wax4cy14hh0h7kg9hj0hjn9424b71z8lrrc5kbsasrn9xd7hag3"))))
-    (native-inputs '())
-    (inputs
-     `(("adns" ,adns)
-       ("bzip2" ,bzip2)
-       ("curl" ,curl)
-       ("libassuan" ,libassuan)
-       ("libgcrypt" ,libgcrypt)
-       ("libgpg-error" ,libgpg-error)
-       ("libksba" ,libksba)
-       ("pth" ,pth)
-       ("openldap" ,openldap)
-       ("zlib" ,zlib)
-       ("readline" ,readline)))
-   (arguments
-    `(#:phases
-      (modify-phases %standard-phases
-        (add-before 'configure 'patch-config-files
-          (lambda _
-            (substitute* "tests/openpgp/Makefile.in"
-              (("/bin/sh") (which "sh")))
-            #t))
-        (add-after 'install 'rename-v2-commands
-          (lambda* (#:key outputs #:allow-other-keys)
-            ;; Upstream suggests removing the trailing '2' from command names:
-            ;; <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=22883#58>.
-            (let ((out (assoc-ref outputs "out")))
-              (with-directory-excursion (string-append out "/bin")
-                (rename-file "gpgv2" "gpgv")
-                (rename-file "gpg2" "gpg")
-
-                ;; Keep the old name around to ease transition.
-                (symlink "gpgv" "gpgv2")
-                (symlink "gpg" "gpg2")
-                #t)))))))
-   (properties `((superseded . ,gnupg)))))
-
 (define-public gnupg-1
   (package (inherit gnupg)
     (version "1.4.23")
@@ -400,23 +357,14 @@ libskba (working with X.509 certificates and CMS data).")
 (define-public gpgme
   (package
     (name "gpgme")
-    (version "1.13.1")
+    (version "1.15.1")
     (source
      (origin
       (method url-fetch)
       (uri (string-append "mirror://gnupg/gpgme/gpgme-" version ".tar.bz2"))
       (sha256
-       (base32 "0imyjfryvvjdbai454p70zcr95m94j9xnzywrlilqdw2fqi0pqy4"))))
+       (base32 "1bg13l5s8x9p1v0jyv29n84bay27pflindpzjsc9gj7i4wdkrg7f"))))
     (build-system gnu-build-system)
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-before 'check 'disable-failing-test
-           ;; XXX gnupg@2.2.20 breaks the expected JSON response for this test.
-           (lambda _
-             (substitute* "tests/json/t-json.c"
-               (("\"t-keylist-secret\", ") ""))
-             #t)))))
     (native-inputs
      `(("gnupg" ,gnupg)))
     (propagated-inputs
@@ -733,7 +681,7 @@ PGP keysigning parties.")
 (define-public signing-party
   (package
     (name "signing-party")
-    (version "2.10")
+    (version "2.11")
     (home-page "https://salsa.debian.org/signing-party-team/signing-party")
     (source (origin
               (method git-fetch)
@@ -743,7 +691,7 @@ PGP keysigning parties.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0lq8nmwjmysry0n4jg6vb7bh0lagbyb9pa11ii3s41p1mhzchf2r"))))
+                "1aig5ssabzbk4mih7xd04vgr931bw0flbi8dz902wlr610gyv5s5"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("autoconf" ,autoconf-wrapper)
@@ -877,6 +825,8 @@ enter a passphrase when required by @code{gpg} or other software.")))
   (package
     (inherit pinentry-tty)
     (name "pinentry-gtk2")
+    (arguments
+     `(#:configure-flags '("--enable-fallback-curses")))
     (inputs
      `(("gtk+" ,gtk+-2)
        ("glib" ,glib)
@@ -895,7 +845,8 @@ passphrase when @code{gpg} is run and needs it.")))
        ("glib" ,glib)
        ,@(package-inputs pinentry-tty)))
     (arguments
-     `(#:configure-flags '("--enable-pinentry-gnome3")))
+     `(#:configure-flags '("--enable-pinentry-gnome3"
+                           "--enable-fallback-curses")))
     (description
      "Pinentry provides a console and a GUI designed for use with GNOME@tie{}3
 that allows users to enter a passphrase when required by @code{gpg} or other
@@ -905,6 +856,8 @@ software.")))
   (package
     (inherit pinentry-tty)
     (name "pinentry-qt")
+    (arguments
+     `(#:configure-flags '("--enable-fallback-curses")))
     (inputs
      `(("qtbase" ,qtbase)
        ,@(package-inputs pinentry-tty)))
@@ -921,7 +874,8 @@ passphrase when @code{gpg} is run and needs it.")))
         (inherit (package-source pinentry-tty))
         (patches (search-patches "pinentry-efl.patch"))))
     (arguments
-     '(#:configure-flags '("--enable-pinentry-efl")
+     '(#:configure-flags '("--enable-pinentry-efl"
+                           "--enable-fallback-curses")
        #:phases
        (modify-phases %standard-phases
          (replace 'bootstrap
@@ -940,6 +894,77 @@ passphrase when @code{gpg} is run and needs it.")))
 @dfn{Enlightenment Foundation Libraries} (EFL) that allows users to enter a
 passphrase when @code{gpg} is run and needs it.")))
 
+(define-public pinentry-rofi
+  (package
+    (name "pinentry-rofi")
+    (version "2.0.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/plattfot/pinentry-rofi/")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32 "044bnldz7k74s873jwsjgff176l1jsvpbaka7d1wcj8b5pwqv2av"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:modules
+       ((ice-9 match)
+        (ice-9 ftw)
+        ,@%gnu-build-system-modules)
+       #:phases
+       (modify-phases
+           %standard-phases
+         (add-after 'install 'hall-wrap-binaries
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let* ((compiled-dir
+                     (lambda (out version)
+                       (string-append out "/lib/guile/" version "/site-ccache")))
+                    (uncompiled-dir
+                     (lambda (out version)
+                       (string-append
+                        out
+                        "/share/guile/site"
+                        (if (string-null? version) "" "/")
+                        version)))
+                    (dep-path
+                     (lambda (env path)
+                       (list env ":" 'prefix (list path))))
+                    (out (assoc-ref outputs "out"))
+                    (bin (string-append out "/bin/"))
+                    (site (uncompiled-dir out "")))
+               (match (scandir site)
+                 (("." ".." version)
+                  (for-each
+                   (lambda (file)
+                     (wrap-program
+                         (string-append bin file)
+                       (dep-path
+                        "PATH"
+                        (string-append (assoc-ref inputs "rofi") "/bin"))
+                       (dep-path
+                        "GUILE_LOAD_PATH"
+                        (uncompiled-dir out version))
+                       (dep-path
+                        "GUILE_LOAD_COMPILED_PATH"
+                        (compiled-dir out version))))
+                   ,''("pinentry-rofi"))
+                  #t))))))))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("pkg-config" ,pkg-config)
+       ("texinfo" ,texinfo)))
+    (inputs `(("guile" ,guile-3.0)
+              ("rofi" ,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
+the Rofi application launcher as the user interface.  Which makes it combined
+with @code{rofi-pass} a good front end for @code{password-store}.")
+    (home-page "https://github.com/plattfot/pinentry-rofi/")
+    (license license:gpl3+)))
+
 (define-public pinentry
   (package (inherit pinentry-gtk2)
     (name "pinentry")))
diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm
index 8923836437..0ef0c7f673 100644
--- a/gnu/packages/gnuzilla.scm
+++ b/gnu/packages/gnuzilla.scm
@@ -1,7 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr>
-;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
-;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020 Mark H Weaver <mhw@netris.org>
+;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
 ;;; Copyright © 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
@@ -14,6 +14,7 @@
 ;;; 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 Marius Bakke <marius@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -413,14 +414,157 @@ in C/C++.")
        ("pkg-config" ,pkg-config)
        ("python" ,python-2)))))
 
+(define-public mozjs-78
+  (package
+    (inherit mozjs-60)
+    (version "78.5.0")
+    (source (origin
+              (method url-fetch)
+              ;; TODO: Switch to IceCat source once available on ftp.gnu.org.
+              (uri (string-append "https://archive.mozilla.org/pub/firefox"
+                                  "/releases/" version "esr/source/firefox-"
+                                  version "esr.source.tar.xz"))
+              (sha256
+               (base32
+                "1442yjmwz69hkfcvh8kkb60jf4c9ms0pac04nc3xw2da13v4zxai"))))
+    (arguments
+     `(#:imported-modules ,%cargo-utils-modules ;for `generate-all-checksums'
+       #:modules ((guix build cargo-utils)
+                  ,@%gnu-build-system-modules)
+       #:test-target "check-jstests"
+       #:configure-flags
+       '(;; Disable debugging symbols to save space.
+         "--disable-debug"
+         "--disable-debug-symbols"
+         ;; This is important because without it gjs will segfault during the
+         ;; configure phase.  With jemalloc only the standalone mozjs console
+         ;; will work.
+         "--disable-jemalloc"
+         "--enable-tests"
+         "--enable-hardening"
+         "--enable-optimize"
+         "--enable-release"
+         "--enable-rust-simd"
+         "--enable-readline"
+         "--enable-shared-js"
+         "--with-system-icu"
+         "--with-system-nspr"
+         "--with-system-zlib"
+         "--with-intl-api")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'patch-source-shebangs 'patch-cargo-checksums
+           (lambda _
+             (let ((null-hash
+                    "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"))
+               (for-each (lambda (file)
+                           (format #t "patching checksums in ~a~%" file)
+                           (substitute* file
+                             (("^checksum = \".*\"")
+                              (string-append "checksum = \"" null-hash "\""))))
+                         (find-files "." "Cargo\\.lock$"))
+               (for-each generate-all-checksums
+                         '("js" "third_party/rust"))
+               #t)))
+         (replace 'configure
+           (lambda* (#:key inputs outputs configure-flags #:allow-other-keys)
+             ;; The configure script does not accept environment variables as
+             ;; arguments.  It also must be run from a different directory,
+             ;; but not the root directory either.
+             (let ((out (assoc-ref outputs "out")))
+               (mkdir "run-configure-from-here")
+               (chdir "run-configure-from-here")
+               (setenv "SHELL" (which "sh"))
+               (setenv "CONFIG_SHELL" (which "sh"))
+               (setenv "AUTOCONF" (string-append (assoc-ref inputs "autoconf")
+                                                 "/bin/autoconf"))
+               (apply invoke "../js/src/configure"
+                      (cons (string-append "--prefix=" out)
+                            configure-flags))
+               #t)))
+         (add-after 'unpack 'adjust-for-icu-68
+           (lambda _
+             (with-directory-excursion "js/src/tests"
+               ;; The test suite expects a lightly patched ICU 67.  Since
+               ;; Guix is about to switch to ICU 68, massage the tests to
+               ;; work with that instead of patching ICU.  Try removing this
+               ;; phase for newer versions of mozjs.
+
+               ;; These tests look up locale names and expects to get
+               ;; "GB" instead of "UK".
+               (substitute* "non262/Intl/DisplayNames/language.js"
+                 (("Traditionell, GB")
+                  "Traditionell, UK"))
+               (substitute* "non262/Intl/DisplayNames/region.js"
+                 (("\"GB\": \"GB\"")
+                  "\"GB\": \"UK\""))
+
+               ;; XXX: Some localized time formats have changed, and
+               ;; substitution fails for accented characters, even though
+               ;; it works in the REPL(?).  Just delete these for now.
+               (delete-file "non262/Intl/Date/toLocaleString_timeZone.js")
+               (delete-file "non262/Intl/Date/toLocaleDateString_timeZone.js")
+
+               ;; Similarly, these get an unexpected "A" suffix when looking
+               ;; up a time in the "ar-MA-u-ca-islamicc" locale, which is
+               ;; tricky to substitute.
+               (delete-file "non262/Intl/DateTimeFormat/format_timeZone.js")
+               (delete-file "non262/Intl/DateTimeFormat/format.js")
+
+               ;; This file compares a generated list of ICU locale names
+               ;; with actual lookups.  Some have changed slightly, i.e.
+               ;; daf-Latn-ZZ -> daf-Latn-CI, so drop it for simplicity.
+               (delete-file "non262/Intl/Locale/likely-subtags-generated.js"))
+
+             #t))
+         (add-before 'check 'pre-check
+           (lambda _
+             (with-directory-excursion "../js/src/tests"
+               (substitute* "shell/os.js"
+                 ;; FIXME: Why does the killed process have an exit status?
+                 ((".*killed process should not have exitStatus.*")
+                  ""))
+
+               ;; XXX: Delete all tests that test time zone functionality,
+               ;; because the test suite uses /etc/localtime to figure out
+               ;; the offset from the hardware clock, which does not work
+               ;; in the build container.  See <tests/non262/Date/shell.js>.
+               (delete-file-recursively "non262/Date")
+               (delete-file "non262/Intl/DateTimeFormat/tz-environment-variable.js")
+
+               (setenv "JSTESTS_EXTRA_ARGS"
+                       (string-join
+                        (list
+                         ;; Do not run tests marked as "random".
+                         "--exclude-random"
+                         ;; Exclude web platform tests.
+                         "--wpt=disabled"
+                         ;; Respect the daemons configured number of jobs.
+                         (string-append "--worker-count="
+                                        (number->string (parallel-job-count)))))))
+             #t)))))
+    (native-inputs
+     `(("autoconf" ,autoconf-2.13)
+       ("automake" ,automake)
+       ("llvm" ,llvm)                   ;for llvm-objdump
+       ("perl" ,perl)
+       ("pkg-config" ,pkg-config)
+       ("python" ,python-3)
+       ("rust" ,rust)
+       ("cargo" ,rust "cargo")))
+    (inputs
+     `(("icu4c" ,icu4c-68)
+       ("readline" ,readline)
+       ("zlib" ,zlib)))))
+
 (define mozilla-compare-locales
   (origin
     (method hg-fetch)
     (uri (hg-reference
           (url "https://hg.mozilla.org/l10n/compare-locales/")
-          (changeset "RELEASE_3_3_0")))
+          (changeset "RELEASE_8_0_0")))
     (file-name "mozilla-compare-locales")
-    (sha256 (base32 "0biazbq7vbi99b99rfn4szwyx032dkpi09c9z4zs6f1br0f86iy1"))))
+    (sha256 (base32 "0052wq92sg4i776x407b5838jx9h3phl9xy69m2q34f31n3gdyk2"))))
 
 (define (mozilla-locale locale changeset hash-string)
   (origin
@@ -440,108 +584,102 @@ in C/C++.")
   (mozilla-locales
    ;;                      sha256                            changeset    locale
    ;;---------------------------------------------------------------------------
-   ("0pybx6j2ycbrr1xmv0spv19sd8a1dyzcs8kf6pzn71w8y6kiagcf" "35959cf2343c" "ach")
-   ("0dixmkha738w7fkx20nx95xkfyrqb9vczpy6m03qnqfvb76xaxj5" "e8dc1010f909" "af")
-   ("124j09va25gwfxdzyfixrli0skxv53c7niagjyp7g3a3kcv2lbhc" "4c67f6b96a7b" "an")
-   ("0flgqll3xx0ym0zj0w9j2jw3fmhs6h9m4l5da6m0bpnk5ff80r06" "34cbea5f44a5" "ar")
-   ("0kdb1yqfbfz508f4p77z3p1v6fwy190vs5ipj58hgdixjgbxkqay" "b4790b27633c" "ast")
-   ("1vm5xw6wg12pygswd3p0qpkaxyryah6nif5n15chb4sb42c1gqcm" "96d341bf49d4" "az")
-   ("1j2qrrws51qij6haz5b77n5vzqhsxgs1ppqqw4mdrkacwvz4ciwh" "4adaede00646" "be")
-   ("0ydr8f9lbd51prgcbjb5yacb461j8va0s5bqfs0rnglkvhmk6ard" "d1140972aefe" "bg")
-   ("0wyw90zjp8kpd1gljng00in9wr2cf59ww6z002lgx5k4gibnqcfd" "2b3ce92c2310" "bn")
-   ("0kkq621h1qdmimyrmms9g5p70m54z2ddw4cd962nqbkrnmabq9vn" "426896350893" "br")
-   ("0vibhnb3cbpbgf10db04g6vm372kb9i27p0jkwif019f7qprswd8" "7463f339ce07" "bs")
-   ("1l8cn2fqfvx7bswzfy9vavv8cd32ha9ygdxxdbxi64wcgw0f80bf" "dab3f05125e4" "ca")
-   ("0fik17y8zyg9w82lq501ic73a53c0q9r8v4zgn9bnzgsygig8qpq" "ebb9d989275a" "cak")
-   ("0sj29v6144h39wzb4rvxph3cwgvs4gzkgpr0463d3fcs6jdi0kjs" "522352780348" "cs")
-   ("1nz8jlx62l69jcdi59hlk8jysm15sh3d1cxqginjmx7w351wsidm" "0791b954c333" "cy")
-   ("1vc01q1vlq26xm1vm1x0119jawxxp975p9k8ashmiwncl1bvqb48" "121f5f876f4c" "da")
-   ("1iqny61rg57banfbbskc2y3pr6d35fabnxmynv7vxm9jd86pndz3" "95fb3e99a2bc" "de")
-   ("06v9j8acx5h8za7m65v6qm0wjbkx6vm46m8sigcp69phyg3fjc96" "90e681b74587" "dsb")
-   ("0lbk90x2dxdbh63fycqxspx6jqq2zlzys6grg45balw8yyvzqrkz" "58ba4c13fd42" "el")
-   ("0c2ypvy0z8g78s5158v6h9khckq1xps34r5wbiiciix289m43dgl" "8953d8c98a30" "en-CA")
-   ("0z3riz3w2z6p710p90ridmwwam4snnz5mn90gd4jc1h2n7vc9mr0" "5a2b9bca3f52" "en-GB")
-   ("102gn3h4ap8c3x1p7vfc88vapkfiz6264y6byhxy1axxjk3x3a77" "e87cb1c61d6e" "eo")
-   ("148wj6wsx0aq7cpaxk8njj7cb1wfjr2m96dgxq6b3qcv781ldvjn" "5db15fdf95d5" "es-AR")
-   ("0r11d8vzvbyz17n371byvkrnszcv1zhr7rg64i58xra3y6d7is7n" "ce2ee0e51a92" "es-CL")
-   ("1xmqa8p7lpqvkgg879hfnmf6kxcpawjk8z31cdzfp1hrdlmxg8n7" "7346617620f3" "es-ES")
-   ("0jxv3jh2018lnybr9mzqrffvwmr87yab9bh8lxqjj294fxw1hrxm" "687f05eb0c58" "es-MX")
-   ("1rpgv7pajv4xldsn1xxsia5j72vn3x8zl5wmbzkyw56lvn9fckvf" "839a5029c496" "et")
-   ("0hxp4fr3y05rkpamdb1hlmybn6d3bv3rcawjm3axbpqxbyfdpfzc" "54e8d87230c9" "eu")
-   ("1y50knymnmcihw8bhvahicc386mjm6dx4hx0j6fv8sl23wzx2h9m" "c5ffca960f9c" "fa")
-   ("0pj9zgi0c3yl3myhvb5afiijayp2lqzhlk630ahxn5hgjgkz0lx7" "75c000a8538d" "ff")
-   ("199jg0zv7wp1cq0ik2hf84j99jx5vq2jwac0gaayvjzkh2z83jqr" "f11b2e689e7b" "fi")
-   ("1vxkiwwni7470ywy99arxxa56ljkhjrhxslsp1l1l61g6gdbbspr" "49ec4f791806" "fr")
-   ("0d8gwdcj0jpjv03nhjds8jrg86pg371xpylaibwri76wlyl7m54i" "faa761a5cfdc" "fy-NL")
-   ("0nipbxx11a2sjadzhbi88vgknw5hzr4nqy2722q3kc1212jbi754" "5bd9466f9f9d" "ga-IE")
-   ("0bay8mrm65cvmnvqpwqgzr0h3cb18ifzg5kbsbxcvdfm9xv0zi9g" "a4f6a47e82dd" "gd")
-   ("00kn5w3nnpw1pxg6hhrn9asf9hgpjd6ia4038iwzcqs68w887qcy" "6c2aa01ada4e" "gl")
-   ("0jj13i0ach85c975vaz2rr83mibs29ipssa7qsjkb0y2ch6xya1k" "c2d607e36cb5" "gn")
-   ("1nhqbgzilcb0pr7941dxkhg079bf8v7ldikp1s5xli34wf9sabm2" "f34465d6ac1c" "gu-IN")
-   ("11bh0541d996cfin1zy72l66753q94i4idgv2waf0h40h9g3z1bm" "c2ecb2762274" "he")
-   ("1lslji7hh5lx5ig1xgfjh4cdindsgh3n2a7qlvzwz96gda43lvv4" "94d2bb10ee03" "hi-IN")
-   ("1nx5yw00l25i3m3grdm29mi9mi7h0cy5qx02pypir754pk3hiwcc" "08df0d94edd5" "hr")
-   ("19yc9dk2pwqycynmx58d1ik6x4mnyfxscgr6sg676dpl613xd7nq" "21b614e77025" "hsb")
-   ("0l3z64jlx6b6ivk1b5hwqyx9hm1m5721ywnb2m4zmg3g9fw4vn7f" "f82cad7170af" "hu")
-   ("1sn0dxbbf2zwcpybwcw77qb4p0hf6fxapnsnn4avaab5g55dlgz4" "d94c30920396" "hy-AM")
-   ("0c92cqxrhv4317kirmhpjk7mrq44yn6fp3v6syxnhz7xwxnhshjm" "6a5f176b0626" "ia")
-   ("03gyg9gqsd6pwb9nydglhm46fi2wk2p2qygmhmrf8hnav3ba7n0r" "94e4302e0f85" "id")
-   ("0ky8aaps92mn56rvkwn0i13wg8av8hzi1fvr0ahqhjcpj5sfgdwq" "eca348a59888" "is")
-   ("01py0sfg7nljcsgpivryrvai4p4wzbcvhgc2ymr19r579nv1vw7g" "d541a6197359" "it")
-   ("0iv7vmj43njmi7g1gjzsv68ax4j502d2wnkvbfz1rx11lrqs7yw1" "a5ab3a1d95b7" "ja")
-   ("1sr9ccshcw6agbj4hbnpblxixb1jz0m36glas6f9ahxmi7m605si" "63763ffa5a94" "ja-JP-mac")
-   ("1as33pzcsdkynrj16dv7w642vl6plbhk650am4l5djwm64f2rgms" "aa83e8555ddc" "ka")
-   ("1jwaqb5qps3i5y9iw8l2hrwa0n8lfnx1k9x0p54y3jkh6p3q3fzc" "0e0e25c26247" "kab")
-   ("0cjfiwv0q5i8d7fpwb4m2w5ahq687dqjlwlicgpa443yi2zsxr4s" "33117723ceb1" "kk")
-   ("0k5b56cv39aaxf9r0p9c27f3fp6yq2ffd4w6qmd0ibpl69sm629d" "aff7b2a7825e" "km")
-   ("1a0zg96jgq4zn9cz0h2qwc0vv1fbkfzs5qrgabg62wqgz286jvvv" "ea91638cb1dd" "kn")
-   ("0jhmv2n3yx55r6fg3myg7j1c1nhsv25g016m6lh2j023xbr723gp" "88821009b5b3" "ko")
-   ("06bybgv4m4i7r9p0qld65j31vbrnljhsdj649dl93msv2r69ilif" "88685d5f07b3" "lij")
-   ("1bzjf8smw6ngi88j5g3fawrg54m8fifbhshwjbgkpj7rnrpjgh4w" "e046c7ffa7d0" "lt")
-   ("18dmzmpavijb7fwzffas0j5nb6byqp8h6ki7hhf6qb35diqgfq6n" "c520ef4f576c" "lv")
-   ("055zf7xj5h1h8mzxj1cjzhngpcvg2p5vs2dmffsa5zfprj02d0dm" "9e43723f18ad" "mk")
-   ("1496fbyyzcl075gzcd3xy50h9jyhnzgb544k1scji56yhyfajacb" "ce615fef92c1" "mr")
-   ("1wc1q8ksry181pvnysqsq4dhhsg5adw5vgqafmmq5sf6i2bwn2z0" "4fefe88cfaee" "ms")
-   ("0awf6mrdwdhy2yvxynssvp1zg1nc2fqbmg2d2bhjcib69zx944xw" "3987a06866fd" "my")
-   ("1hycvz7i4jd40hfs5abx6sgfdkafg0jhdgqih9b7lb08aqcl35pj" "2b3b8997d9a1" "nb-NO")
-   ("048z1ib46izwryyy8l1x71kq4775n7l2ilbskhsyrbxqryma13k8" "f25324281615" "ne-NP")
-   ("1qkxqpyr4la9bn1bqsgc2h9869arglh9n2kwpkq6722jzdbynkz2" "04c7d32c57f6" "nl")
-   ("08gnmdll55dbqj7qs63gq1kljbvg24nzns6q4m0av3sszsic0jv5" "5587520e5019" "nn-NO")
-   ("1yh2p4ipj5p2b7gh0xxj0n7ndvwn5bw2773ibrh7vz932mkzhhjn" "499386b02695" "oc")
-   ("0kjbnixjzv9hvyba4ll20gs76vx84pviy134fvpjp9lfjpnpib55" "31c01c325675" "pa-IN")
-   ("0g61imvr4639bbydyi0kwc1il7l1gzlfij4ywx7hdcmq2x6vgb9v" "fb5f3b8dea09" "pl")
-   ("13n68d7z94d7943m6fwl4kizbqm3wp82xz69vng4w9vyqlvv7d41" "9a541cbdc748" "pt-BR")
-   ("1j8afvrl1afmj2zixrp91rrhag5w4xw90raca1ic6mxyih9kvdi4" "edc959a685c2" "pt-PT")
-   ("0wf4a6q9nvcmam2g8ksbymjdnrz59pdr5nirfpjprfhifjmxx4nn" "d2699db715cd" "rm")
-   ("1k9qalir5pbh490w1mxyq31yhy9hbxsyrrk11hwlwlgn6syp9nvp" "b5460a9017bc" "ro")
-   ("1avy6wyfa5lbvy36wai6mwhhh6x1y8a0jyjk8hvjn52yfxj1gypk" "59ffa8ad047a" "ru")
-   ("1cakhm4jxcw1ij0l1vhxw74hsp5wg68i3319dkdncyyc5a2s1qv9" "8b3c8a7ebdfa" "si")
-   ("0s534r09bqdfvw3q17y9b1035kzzlafjv656v73mqhyz3fkffsx5" "cb39dc77980e" "sk")
-   ("1s58vgmnb9aiaiaqwwcivq3iyzpzj527w2aqh2nrh6xmaw7f43sr" "17d7969b1d9a" "sl")
-   ("147qm7x5z8rkf24jpqvkdlqg0fjz1l3zwnaxvkh9y2jpzv7m0x7z" "c55b0e9ff99d" "son")
-   ("0nn4r1rxi8cy7x9nmn5ljd8gcsn2rjl2ma2j7waxkafkm4rs6n20" "2bb3808072da" "sq")
-   ("0jsb01b94z7qbm59yaj56nb7yx7a6hpgw8v6nzwhbvmnmcsird4p" "c323c0d02d61" "sr")
-   ("1n7vv9y4sk3gig56rgfd2jk8jr2160grxk31bd1wkm7fvbndd259" "4220ce487cbc" "sv-SE")
-   ("06270mq7gajxfrsb8gqd25v2dac68ask5vvlh6kkkp3hrgy02vid" "6a1dbc2fe1d3" "ta")
-   ("10az7pd3npa7n8wq0qywvsj2qrx9592i2wffs3rnc1fviv1i1q0y" "028505b5ecd1" "te")
-   ("0yj0c3iyibb3jyypvyiyhbr9asxa48v0nq21kcf9gphi8fnyp5if" "e44d38b6a67b" "th")
-   ("1qc4nvhw834lx7p304fxma0fjdr4xfj4lf69dhh6biqz795lx45p" "1e0771d95708" "tr")
-   ("1g4y2yq5xp61ncy7c08j7fqqr1jc0m1hjxmbg5659wzif3b3dkg4" "e3c96943e98f" "uk")
-   ("1zbi28z1c3p5il7ndixyjsv4nrimzq36zjvlmq10am38ycqr9df8" "f35da1b02691" "ur")
-   ("1jrxjjj8k771y0wljqbadxdj4pasg0771jmg4l3hvpgs929i3j9g" "6fd2084b3efe" "uz")
-   ("1f8sqgxzgqmw6vzjv3f49lg43q09i3j62f471864vr71815agl8n" "33b5dfd0cd63" "vi")
-   ("0ssnsbxw3q5k88fa081gkn1mbqn4j7bm6vb7yvz6h44j214xkz9x" "2d87c0740715" "xh")
-   ("0kd3mrvvgczhsmw4rvpxxxc71bb469ayr8r4azf7gc0y5nmlm950" "a2b6625688d3" "zh-CN")
-   ("0qy1asyfplkyc89z3g3gfm7b32aka92350b3ayv9d9dcgwxmfdwz" "4d6e959a13d1" "zh-TW")))
-
-(define (mozilla-patch file-name changeset hash)
-  "Return an origin for CHANGESET from the mozilla-esr60 repository."
-  (origin
-    (method url-fetch)
-    (uri (string-append "https://hg.mozilla.org/releases/mozilla-esr60/raw-rev/"
-                        changeset))
-    (sha256 (base32 hash))
-    (file-name file-name)))
+   ("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")
@@ -556,8 +694,8 @@ from forcing GEXP-PROMISE."
                       #:system system
                       #:guile-for-build guile)))
 
-(define %icecat-version "68.11.0-guix0-preview1")
-(define %icecat-build-id "20200728000000") ;must be of the form YYYYMMDDhhmmss
+(define %icecat-version "78.6.1-guix0-preview1")
+(define %icecat-build-id "20210107000000") ;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'
@@ -579,11 +717,11 @@ from forcing GEXP-PROMISE."
                   "firefox-" upstream-firefox-version ".source.tar.xz"))
             (sha256
              (base32
-              "0q11dmfz59a11xgwy5sdc6x89xvb8lkm51lr8yvqb9qvmz5gghci"))))
+              "1kp75838a38x4h0w98qn01g9asn7jlgm64bz7n70353bnr6bf1qd"))))
 
-         (upstream-icecat-base-version "68.11.0") ; maybe older than base-version
+         (upstream-icecat-base-version "78.6.1") ; maybe older than base-version
          ;;(gnuzilla-commit (string-append "v" upstream-icecat-base-version))
-         (gnuzilla-commit "ac907e0c0f5b8896da34d31594b168e60983bec8")
+         (gnuzilla-commit "10ca84bd9d255caeed506ef36bd3dbe2ad6375ab")
          (gnuzilla-source
           (origin
             (method git-fetch)
@@ -595,12 +733,16 @@ from forcing GEXP-PROMISE."
                                       (string-take gnuzilla-commit 8)))
             (sha256
              (base32
-              "1n2sdf48s5xwcaf69v7yqvas069ficqnfk6nf0kqvd87vryb7182"))))
+              "07i3pfbzprnmzrilsh13jjrrk0jixpb9nrrqxzzdvzr2gz06vw29"))))
 
-         (makeicecat-patch
-          (local-file (search-patch "icecat-makeicecat.patch")))
+         ;; 'search-patch' returns either a valid file name or #f, so wrap it
+         ;; in 'assume-valid-file-name' to avoid 'local-file' warnings.
          (gnuzilla-fixes-patch
-          (local-file (search-patch "icecat-use-older-reveal-hidden-html.patch"))))
+          (local-file (assume-valid-file-name
+                       (search-patch "icecat-use-older-reveal-hidden-html.patch"))))
+         (makeicecat-patch
+          (local-file (assume-valid-file-name
+                       (search-patch "icecat-makeicecat.patch")))))
 
     (origin
       (method computed-origin-method)
@@ -645,9 +787,9 @@ from forcing GEXP-PROMISE."
                 (with-directory-excursion "/tmp/gnuzilla"
                   (make-file-writable "makeicecat")
                   (invoke "patch" "--force" "--no-backup-if-mismatch"
-                          "-p1" "--input" #+makeicecat-patch)
-                  (invoke "patch" "--force" "--no-backup-if-mismatch"
                           "-p1" "--input" #+gnuzilla-fixes-patch)
+                  (invoke "patch" "--force" "--no-backup-if-mismatch"
+                          "-p1" "--input" #+makeicecat-patch)
                   (patch-shebang "makeicecat")
                   (substitute* "makeicecat"
                     (("^FFMAJOR=(.*)" all ffmajor)
@@ -738,16 +880,16 @@ from forcing GEXP-PROMISE."
        ("glib" ,glib)
        ("gtk+" ,gtk+)
        ("gtk+-2" ,gtk+-2)
-       ("graphite2" ,graphite2)
+       ;; UNBUNDLE-ME! ("graphite2" ,graphite2)
        ("pango" ,pango)
        ("freetype" ,freetype)
-       ("harfbuzz" ,harfbuzz)
+       ;; UNBUNDLE-ME! ("harfbuzz" ,harfbuzz)
        ("libcanberra" ,libcanberra)
        ("libgnome" ,libgnome)
        ("libjpeg-turbo" ,libjpeg-turbo)
-       ("libogg" ,libogg)
-       ;; ("libtheora" ,libtheora) ; wants theora-1.2, not yet released
-       ("libvorbis" ,libvorbis)
+       ;; UNBUNDLE-ME! ("libogg" ,libogg)
+       ;; UNBUNDLE-ME! ("libtheora" ,libtheora) ; wants theora-1.2, not yet released
+       ;; UNBUNDLE-ME! ("libvorbis" ,libvorbis)
        ("libxft" ,libxft)
        ("libevent" ,libevent)
        ("libxinerama" ,libxinerama)
@@ -756,8 +898,8 @@ from forcing GEXP-PROMISE."
        ("libxt" ,libxt)
        ("libffi" ,libffi)
        ("ffmpeg" ,ffmpeg)
-       ("libvpx" ,libvpx)
-       ("icu4c" ,icu4c)
+       ;; UNBUNDLE-ME! ("libvpx" ,libvpx)
+       ("icu4c" ,icu4c-67)
        ("pixman" ,pixman)
        ("pulseaudio" ,pulseaudio)
        ("mesa" ,mesa)
@@ -767,11 +909,11 @@ from forcing GEXP-PROMISE."
        ;; UNBUNDLE-ME! ("nspr" ,nspr)
        ;; UNBUNDLE-ME! ("nss" ,nss)
        ("shared-mime-info" ,shared-mime-info)
-       ("sqlite" ,sqlite)
-       ("startup-notification" ,startup-notification)
+       ;; UNBUNDLE-ME! ("sqlite" ,sqlite)
        ("unzip" ,unzip)
        ("zip" ,zip)
-       ("zlib" ,zlib)))
+       ;; UNBUNDLE-ME! ("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
@@ -787,13 +929,13 @@ from forcing GEXP-PROMISE."
 
        ("patch" ,(canonical-package patch))
 
-       ("rust" ,rust)
-       ("cargo" ,rust "cargo")
-       ("rust-cbindgen" ,rust-cbindgen)
+       ("rust" ,rust-1.41)
+       ("cargo" ,rust-1.41 "cargo")
+       ("rust-cbindgen" ,rust-cbindgen-0.14)
        ("llvm" ,llvm)
        ("clang" ,clang)
        ("perl" ,perl)
-       ("node" ,node)
+       ("node" ,node-10.22)
        ("python" ,python)
        ("python-2" ,python-2)
        ("python2-pysqlite" ,python2-pysqlite)
@@ -812,22 +954,21 @@ from forcing GEXP-PROMISE."
        ;; practice somehow.  See <http://hydra.gnu.org/build/378133>.
        #:validate-runpath? #f
 
-       #:configure-flags `("--enable-default-toolkit=cairo-gtk3"
+       #:configure-flags `("--enable-default-toolkit=cairo-gtk3-wayland"
 
                            "--with-distribution-id=org.gnu"
 
-                           ;; Do not require addons in the global app
-                           ;; directory to be signed by Mozilla.
-                           "--with-unsigned-addon-scopes=app"
+                           ;; Do not require addons in the global app or
+                           ;; system directories to be signed by Mozilla.
+                           "--with-unsigned-addon-scopes=app,system"
+                           "--allow-addon-sideload"
 
-                           "--enable-startup-notification"
                            "--enable-pulseaudio"
 
                            "--disable-tests"
                            "--disable-updater"
                            "--disable-crashreporter"
                            "--disable-eme"
-                           "--disable-gconf"
 
                            ;; Building with debugging symbols takes ~5GiB, so
                            ;; disable it.
@@ -853,22 +994,22 @@ from forcing GEXP-PROMISE."
                            "--enable-official-branding"
 
                            ;; Avoid bundled libraries.
-                           "--with-system-zlib"
-                           "--with-system-bz2"
                            "--with-system-jpeg"        ; must be libjpeg-turbo
+                           ;; UNBUNDLE-ME! "--with-system-zlib"
+                           ;; UNBUNDLE-ME! "--with-system-bz2"
                            ;; UNBUNDLE-ME! "--with-system-libevent"
                            ;; UNBUNDLE-ME! "--with-system-ogg"
                            ;; UNBUNDLE-ME! "--with-system-vorbis"
                            ;; UNBUNDLE-ME! "--with-system-theora" ; wants theora-1.2, not yet released
                            ;; UNBUNDLE-ME! "--with-system-libvpx"
                            "--with-system-icu"
-                           
+
                            ;; See <https://bugs.gnu.org/32833>
                            ;;   and related comments in the
                            ;;   'remove-bundled-libraries' phase below.
                            ;; UNBUNDLE-ME! "--with-system-nspr"
                            ;; UNBUNDLE-ME! "--with-system-nss"
-                           
+
                            ;; UNBUNDLE-ME! "--with-system-harfbuzz"
                            ;; UNBUNDLE-ME! "--with-system-graphite2"
                            "--enable-system-pixman"
@@ -951,8 +1092,8 @@ from forcing GEXP-PROMISE."
                          ;;   * speex
                          ;;
                          "modules/freetype2"
-                         "modules/zlib"
                          ;; "media/libjpeg"  ; needed for now, because media/libjpeg/moz.build is referenced from config/external/moz.build
+                         ;; UNBUNDLE-ME! "modules/zlib"
                          ;; UNBUNDLE-ME! "ipc/chromium/src/third_party/libevent"
                          ;; UNBUNDLE-ME! "media/libvpx"
                          ;; UNBUNDLE-ME! "media/libogg"
@@ -1017,10 +1158,31 @@ from forcing GEXP-PROMISE."
            (lambda _
              (use-modules (guix build cargo-utils))
              (let ((null-hash "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"))
-               (substitute* '("Cargo.lock" "gfx/wr/Cargo.lock")
-                 (("(\"checksum .* = )\".*\"" all name)
-                  (string-append name "\"" null-hash "\"")))
-               (generate-all-checksums "third_party/rust"))
+               (for-each (lambda (file)
+                           (format #t "patching checksums in ~a~%" file)
+                           (substitute* file
+                             (("^checksum = \".*\"")
+                              (string-append "checksum = \"" null-hash "\""))))
+                         (find-files "." "Cargo.lock$"))
+               (for-each generate-all-checksums
+                         '("services"
+                           "js"
+                           "third_party/rust"
+                           "dom/media"
+                           "dom/webauthn"
+                           "toolkit"
+                           "gfx"
+                           "storage"
+                           "modules"
+                           "xpcom/rust"
+                           "media"
+                           "mozglue/static/rust"
+                           "netwerk"
+                           "remote"
+                           "intl"
+                           "servo"
+                           "security/manager/ssl"
+                           "build")))
              #t))
          (replace 'configure
            ;; configure does not work followed by both "SHELL=..." and
@@ -1120,6 +1282,10 @@ from forcing GEXP-PROMISE."
                     (libxscrnsaver-lib (string-append libxscrnsaver "/lib")))
                (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 (,pulseaudio-lib ,mesa-lib ,libxscrnsaver-lib)))
                #t))))))
     (home-page "https://www.gnu.org/software/gnuzilla/")
@@ -1129,7 +1295,7 @@ from forcing GEXP-PROMISE."
 software, which does not recommend non-free plugins and addons.  It also
 features built-in privacy-protecting features.
 
-WARNING: IceCat 68 has not yet been released by the upstream IceCat project.
+WARNING: IceCat 78 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
@@ -1139,11 +1305,11 @@ standards of the IceCat project.")
        (cpe-version . ,(first (string-split version #\-)))))))
 
 ;; Update this together with icecat!
-(define %icedove-build-id "20200630000000") ;must be of the form YYYYMMDDhhmmss
+(define %icedove-build-id "20210111000000") ;must be of the form YYYYMMDDhhmmss
 (define-public icedove
   (package
     (name "icedove")
-    (version "68.10.0")
+    (version "78.6.1")
     (source icecat-source)
     (properties
      `((cpe-name . "thunderbird_esr")))
@@ -1169,10 +1335,15 @@ standards of the IceCat project.")
            (lambda _
              (use-modules (guix build cargo-utils))
              (let ((null-hash "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"))
-               (substitute* '("Cargo.lock" "gfx/wr/Cargo.lock")
-                 (("(\"checksum .* = )\".*\"" all name)
-                  (string-append name "\"" null-hash "\"")))
-               (generate-all-checksums "third_party/rust"))
+               (for-each (lambda (file)
+                           (format #t "patching checksums in ~a~%" file)
+                           (substitute* file
+                             (("^checksum = \".*\"")
+                              (string-append "checksum = \"" null-hash "\""))))
+                         (find-files "." "Cargo.lock$"))
+               (for-each generate-all-checksums
+                         '("third_party/rust"
+                           "toolkit/library/rust")))
              #t))
          ;; Fixes issue where each installation directory generates its own profile.
          ;; See e.g. https://trac.torproject.org/projects/tor/ticket/31457
@@ -1214,12 +1385,10 @@ standards of the IceCat project.")
                  (("mozilla.org") "guix.gnu.org")))
              ;; Remove other mentions of Thunderbird in user-visible text.
              (with-directory-excursion "comm/mail/base/content"
-               (substitute* '("newInstallPage.xhtml"
-                              "overrides/app-license-name.html"
-                              "newInstall.xul")
+               (substitute* '("overrides/app-license-name.html")
                  (("Thunderbird") "Icedove")))
              (with-directory-excursion "comm/mail/components/"
-               (substitute* '("mailGlue.js"
+               (substitute* '("MailGlue.jsm"
                               "extensions/schemas/addressBook.json"
                               "extensions/schemas/tabs.json"
                               "extensions/schemas/cloudFile.json"
@@ -1229,14 +1398,9 @@ standards of the IceCat project.")
                               "im/messages/mail/Info.plist"
                               "enterprisepolicies/moz.build"
                               "enterprisepolicies/helpers/moz.build"
-                              "enterprisepolicies/schemas/moz.build"
-                              "preferences/chat.inc.xul")
+                              "enterprisepolicies/schemas/moz.build")
                  (("Thunderbird") "Icedove")))
-             (substitute* "comm/calendar/lightning/lightning-packager.mk"
-               (("ifeq \\(thunderbird")
-                "ifeq (icedove"))
              (substitute* '("comm/mailnews/base/prefs/content/accountUtils.js"
-                            "comm/mailnews/extensions/newsblog/content/feed-subscriptions.js"
                             "comm/common/src/customizeToolbar.js")
                (("AppConstants.MOZ_APP_NAME (.)= \"thunderbird" _ e)
                 (format #f "AppConstants.MOZ_APP_NAME ~a= \"icedove" e)))
@@ -1309,8 +1473,7 @@ standards of the IceCat project.")
                      "ac_add_options --disable-debug\n"
                      "ac_add_options --disable-debug-symbols\n"
                      "ac_add_options --disable-elf-hack\n"
-                     "ac_add_options --disable-gconf\n"
-                     "ac_add_options --disable-ion\n"
+                     "ac_add_options --disable-jit\n"
                      "ac_add_options --disable-necko-wifi\n"
                      "ac_add_options --disable-official-branding\n"
                      "ac_add_options --disable-tests\n"
@@ -1318,16 +1481,13 @@ standards of the IceCat project.")
                      "ac_add_options --disable-webrtc\n"
                      "ac_add_options --enable-application=comm/mail\n"
                      "ac_add_options --enable-calendar\n"
-                     "ac_add_options --enable-content-sandbox\n"
                      "ac_add_options --enable-default-toolkit=\"cairo-gtk3\"\n"
                      "ac_add_options --enable-optimize\n"
                      "ac_add_options --enable-pulseaudio\n"
                      "ac_add_options --enable-release\n"
-                     "ac_add_options --enable-startup-notification\n"
                      "ac_add_options --enable-strip\n"
                      "ac_add_options --enable-system-ffi\n"
                      "ac_add_options --enable-system-pixman\n"
-                     "ac_add_options --enable-system-sqlite\n"
                      "ac_add_options --prefix=" out "\n"
                      "ac_add_options --with-clang-path=" (assoc-ref %build-inputs "clang") "/bin/clang\n"
                      "ac_add_options --with-distribution-id=org.gnu\n"
@@ -1398,7 +1558,7 @@ standards of the IceCat project.")
        ("gtk+" ,gtk+)
        ("gtk+-2" ,gtk+-2)
        ("hunspell" ,hunspell)
-       ("icu4c" ,icu4c)
+       ("icu4c" ,icu4c-67)
        ("libcanberra" ,libcanberra)
        ("libevent" ,libevent)
        ("libffi" ,libffi)
@@ -1429,28 +1589,28 @@ 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 "6a7c26eb22bfe18295497c720a73e24b29b0604e"))
+        ,(let ((changeset "f99e82f3f3cae6af48006c39fceb3beeabccd6f6"))
            (origin
              (method hg-fetch)
              (uri (hg-reference
-                   (url "https://hg.mozilla.org/releases/comm-esr68")
+                   (url "https://hg.mozilla.org/releases/comm-esr78")
                    (changeset changeset)))
              (file-name (string-append "thunderbird-" version "-checkout"))
              (sha256
               (base32
-               "1yd73ig2jmzzq9c3ynqav4kh8jiv31xx7vs518b3w1yvmcpj5xsy")))))
+               "0mrar1qsvvlcggzz54nxi70jzk19mq42585905kb5n90ikr9q2q7")))))
        ("autoconf" ,autoconf-2.13)
-       ("cargo" ,rust "cargo")
+       ("cargo" ,rust-1.41 "cargo")
        ("clang" ,clang)
        ("llvm" ,llvm)
        ("nasm" ,nasm)
-       ("node" ,node)
+       ("node" ,node-10.22)
        ("perl" ,perl)
        ("pkg-config" ,pkg-config)
        ("python" ,python)
        ("python2" ,python-2.7)
-       ("rust" ,rust)
-       ("rust-cbindgen" ,rust-cbindgen)
+       ("rust" ,rust-1.41)
+       ("rust-cbindgen" ,rust-cbindgen-0.14)
        ("which" ,which)
        ("yasm" ,yasm)))
     (home-page "https://www.thunderbird.net")
@@ -1460,6 +1620,27 @@ standards of the IceCat project.")
 Thunderbird.  It supports email, news feeds, chat, calendar and contacts.")
     (license license:mpl2.0)))
 
+(define-public icedove/wayland
+  (package/inherit icedove
+    (name "icedove-wayland")
+    (arguments
+     (substitute-keyword-arguments (package-arguments icedove)
+       ((#:phases phases)
+        `(modify-phases ,phases
+          (replace '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"))
+                    (pulseaudio (assoc-ref inputs "pulseaudio"))
+                    (pulseaudio-lib (string-append pulseaudio "/lib")))
+               (wrap-program (car (find-files lib "^icedove$"))
+                 `("MOZ_ENABLE_WAYLAND" = ("1"))
+                 `("XDG_DATA_DIRS" prefix (,gtk-share))
+                 `("LD_LIBRARY_PATH" prefix (,pulseaudio-lib)))
+               #t)))))))))
+
 (define-public firefox-decrypt
   (package
     (name "firefox-decrypt")
diff --git a/gnu/packages/gobby.scm b/gnu/packages/gobby.scm
index 91484c7576..0e1910d7ce 100644
--- a/gnu/packages/gobby.scm
+++ b/gnu/packages/gobby.scm
@@ -1,6 +1,8 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2016, 2017 Andy Wingo <wingo@igalia.com>
 ;;; Copyright © 2017, 2019 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2021 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -47,7 +49,9 @@
     (native-inputs
      `(("pkg-config" ,pkg-config)))
     (arguments
-     `(#:phases
+     `(#:configure-flags
+       (list "--disable-static")
+       #:phases
        (modify-phases %standard-phases
          (add-before 'configure 'update-gnutls-api
            (lambda _
@@ -80,6 +84,9 @@
                (base32
                 "0rwvp0kzsb8y6mq73rzb8yk4kvsrz64i2zf4lfqs3kh0x2k7n7bx"))))
     (build-system gnu-build-system)
+    (arguments
+     `(#:configure-flags
+       (list "--disable-static")))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
     (inputs
@@ -177,7 +184,7 @@ together over the internet in real-time.")
 (define-public libinfinity
   (package
     (name "libinfinity")
-    (version "0.7.1")
+    (version "0.7.2")
     (source
      (origin
        (method url-fetch)
@@ -185,7 +192,7 @@ together over the internet in real-time.")
                            version ".tar.gz"))
        (sha256
         (base32
-         "1jw2fhrcbpyz99bij07iyhy9ffyqdn87vl8cb1qz897y3f2f0vk2"))))
+         "17i3g61hxz9pzl3ryd1yr15142r25m06jfzjrpdy7ic1b8vjjw3f"))))
     (build-system gnu-build-system)
     (inputs
      `(("glib" ,glib)
@@ -195,7 +202,8 @@ together over the internet in real-time.")
     (native-inputs
      `(("pkg-config" ,pkg-config)))
     (arguments
-     `(#:configure-flags (list "--with-inftextgtk"
+     `(#:configure-flags (list "--disable-static"
+                               "--with-inftextgtk"
                                "--with-infgtk")))
     (home-page "https://gobby.github.io/")
     (synopsis "Infininote protocol implementation")
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index ea7a6f19db..d34bb1acb7 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -12,12 +12,17 @@
 ;;; Copyright © 2018 Tomáš Čech <sleep_walker@gnu.org>
 ;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
 ;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
-;;; Copyright @ 2018, 2019, 2020 Katherine Cox-Buday <cox.katherine.e@gmail.com>
-;;; Copyright @ 2019 Giovanni Biscuolo <g@xelera.eu>
-;;; Copyright @ 2019, 2020 Alex Griffin <a@ajgrf.com>
+;;; Copyright © 2018, 2019, 2020 Katherine Cox-Buday <cox.katherine.e@gmail.com>
+;;; Copyright © 2019 Giovanni Biscuolo <g@xelera.eu>
+;;; Copyright © 2019, 2020 Alex Griffin <a@ajgrf.com>
 ;;; Copyright © 2019, 2020 Arun Isaac <arunisaac@systemreboot.net>
 ;;; Copyright © 2020 Jack Hill <jackhill@jackhill.us>
 ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
+;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.com>
+;;; Copyright © 2020 Ryan Prior <rprior@protonmail.com>
+;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
+;;; Copyright © 2020 raingloom <raingloom@riseup.net>
+;;; Copyright © 2020 Martin Becze <mjbecze@riseup.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -55,6 +60,7 @@
   #:use-module (gnu packages mp3)
   #:use-module (gnu packages textutils)
   #:use-module (gnu packages tls)
+  #:use-module (gnu packages web)
   #:use-module (ice-9 match)
   #:use-module (srfi srfi-1))
 
@@ -145,6 +151,11 @@
                   ("os/os_test.go" "(.+)(TestHostname.+)")
                   ("time/format_test.go" "(.+)(TestParseInSydney.+)")
 
+                  ;; XXX: This test fails with tzdata 2020b and newer.  Later
+                  ;; Go releases work fine, so just disable this for the
+                  ;; bootstrap Go.
+                  ("time/example_test.go" "(.+)(ExampleParseInLocation.+)")
+
                   ("os/exec/exec_test.go" "(.+)(TestEcho.+)")
                   ("os/exec/exec_test.go" "(.+)(TestCommandRelativeName.+)")
                   ("os/exec/exec_test.go" "(.+)(TestCatStdin.+)")
@@ -223,7 +234,7 @@ in the style of communicating sequential processes (@dfn{CSP}).")
   (package
     (inherit go-1.4)
     (name "go")
-    (version "1.14.4")
+    (version "1.14.10")
     (source
      (origin
        (method git-fetch)
@@ -233,7 +244,7 @@ in the style of communicating sequential processes (@dfn{CSP}).")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "08bazglmqp123c9dgrxflvxd011xsqfxsgah2kzbvca0mhm6qcm3"))))
+         "0h1nmqzjc0xxpn6n2hjq7692gdqkznagzdmiq9490yzkrrii2lgk"))))
     (arguments
      (substitute-keyword-arguments (package-arguments go-1.4)
        ((#:system system)
@@ -476,6 +487,125 @@ jar struct to manage the cookies added to the cookie jar.")
       (home-page "https://github.com/aki237/nscjar")
       (license license:expat))))
 
+(define-public go-github-com-golangplus-fmt
+  (package
+    (name "go-github-com-golangplus-fmt")
+    (version "1.0.0")
+    (home-page "https://github.com/golangplus/fmt")
+    (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 "07d5kxz0f8ss3v46y0c8jg02sagi0wlaaijhjzzp0r462jyzqii7"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/golangplus/fmt"))
+    (synopsis "Additions to Go's standard @code{fmt} package")
+    (description "This package provides additions to Go's stdlib @code{fmt}.")
+    (license license:bsd-3)))
+
+(define-public go-github-com-motemen-go-colorine
+  (let ((commit "45d19169413a019e4e2be69629dde5c7d92f8706")
+        (revision "0"))
+    (package
+      (name "go-github-com-motemen-go-colorine")
+      (version (git-version "0.0.0" revision commit))
+      (home-page "https://github.com/motemen/go-colorine")
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url home-page)
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32 "1mdy6q0926s1frj027nlzlvm2qssmkpjis7ic3l2smajkzh07118"))))
+      (build-system go-build-system)
+      (arguments
+       '(#:import-path "github.com/motemen/go-colorine"))
+      (propagated-inputs
+       `(("github.com/daviddengcn/go-colortext" ,go-github-com-daviddengcn-go-colortext)))
+      (synopsis "Simple colorized console logger for golang")
+      (description
+       "This package provides simple colorized console logger for golang.")
+      (license license:expat))))
+
+(define-public go-github-com-daviddengcn-go-colortext
+  (package
+    (name "go-github-com-daviddengcn-go-colortext")
+    (version "1.0.0")
+    (home-page "https://github.com/daviddengcn/go-colortext")
+    (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 "0j5ldwg3a768d3nniiglghr9axj4p87k7f7asqxa1a688xvcms48"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/daviddengcn/go-colortext"))
+    (native-inputs
+     `(("go-github-com-golangplus-testing" ,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
+console, working both under Windows and other systems.
+
+Under Windows, the console APIs are used.  Otherwise, ANSI texts are output.")
+    ;; dual-licensed
+    (license (list license:bsd-3 license:expat))))
+
+(define-public go-github-com-golangplus-testing
+  (package
+    (name "go-github-com-golangplus-testing")
+    (version "1.0.0")
+    (home-page "https://github.com/golangplus/testing")
+    (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 "1a29m4zplf9m14k74lrb55dids2l17vx28sv0g3y3qcv1xygksiv"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/golangplus/testing"))
+    (propagated-inputs
+     `(("go-github-com-golangplus-fmt" ,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)))
+
+(define-public go-github-com-leodido-go-urn
+  (package
+    (name "go-github-com-leodido-go-urn")
+    (version "1.2.0")
+    (home-page "https://github.com/leodido/go-urn")
+    (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 "1d4g1vkhc1180l1n7q48vl84b27c7cziywml78cyijbcdz2f8vim"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/leodido/go-urn"))
+    (native-inputs
+     `(("go-github-com-stretchr-testify" ,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
+specified by @uref{https://tools.ietf.org/html/rfc2141, IETF RFC 2141}.")
+    (license license:expat)))
+
 (define-public go-github.com-jessevdk-go-flags
   (package
     (name "go-github.com-jessevdk-go-flags")
@@ -501,6 +631,179 @@ way of specifying command line options.")
     (home-page "https://github.com/jessevdk/go-flags")
     (license license:bsd-3)))
 
+(define-public go-gopkg-in-go-playground-assert-v1
+  (package
+    (name "go-gopkg-in-go-playground-assert-v1")
+    (version "1.2.1")
+    (home-page "https://github.com/go-playground/assert")
+    (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 "1h4amgykpa0djwi619llr3g55p75ia0mi184h9s5zdl8l4rhn9pm"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "gopkg.in/go-playground/assert.v1"))
+    (synopsis "Basic assertion library used alongside native Go testing")
+    (description
+     "This package provides bassic assertions along with building blocks for
+custom assertions to be used alongside native Go testing.")
+    (license license:expat)))
+
+(define-public go-github-com-go-playground-locales
+  (package
+    (name "go-github-com-go-playground-locales")
+    (version "0.13.0")
+    (home-page "https://github.com/go-playground/locales")
+    (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 "0qydcpkvss3mf8mk3xzg6a34n8i69aydrigcl2apifrkx72jw7pf"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/go-playground/locales"))
+    (synopsis "Set of locales generated from the CLDR Unicode Project")
+    (description
+     "This package provides a set of locales generated from the
+@uref{http://cldr.unicode.org/, Unicode CLDR Project} which can be used
+independently or within an internalization (i18n) package.  Its currently
+implemented features include
+
+@itemize
+@item Rules generated from the CLDR data, v31.0.3
+@item Contains Cardinal, Ordinal and Range Plural Rules
+@item Contains Month, Weekday and Timezone translations built in
+@item Contains Date & Time formatting functions
+@item Contains Number, Currency, Accounting and Percent formatting functions
+@item Supports the \"Gregorian\" calendar only
+@end itemize")
+    (license license:expat)))
+
+(define-public go-github-com-go-playground-universal-translator
+  (package
+    (name "go-github-com-go-playground-universal-translator")
+    (version "0.17.0")
+    (home-page "https://github.com/go-playground/universal-translator")
+    (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 "1zdiaisb32iv4x93cpbqrgx8ll7sxh4hcd2iibpswy4bwvjbjlz6"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/go-playground/universal-translator"))
+    (propagated-inputs
+     `(("go-github-com-go-playground-locales" ,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
+@uref{http://cldr.unicode.org/, Unicode CLDR Project} data and pluralization
+rules.  Its currently implemented features include
+
+@itemize
+@item Rules generated from the CLDR data, v30.0.3
+@item Contains Cardinal, Ordinal and Range Plural Rules
+@item Contains Month, Weekday and Timezone translations built in
+@item Contains Date & Time formatting functions
+@item Contains Number, Currency, Accounting and Percent formatting functions
+@item Supports the \"Gregorian\" calendar only
+@item Support loading translations from files
+@item Exporting translations to file(s), mainly for getting them
+professionally translated
+@end itemize")
+    (license license:expat)))
+
+(define-public go-gopkg-in-go-playground-validator-v9
+  (package
+    (name "go-gopkg-in-go-playground-validator-v9")
+    (version "9.31.0")
+    (home-page "https://gopkg.in/go-playground/validator.v9")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/go-playground/validator")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1f8c77s8kx9rip2jarv27x5s4xkcmanh4ndyhbcwvrhncs5rq061"))))
+    (build-system go-build-system)
+    (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)))
+    (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)))
+    (synopsis "Validator for structs and individual fields based on tags")
+    (description
+     "This package implements value validations for structs and individual
+fields based on tags.  It has the following unique features:
+
+@itemize
+@item Cross Field and Cross Struct validations by using validation tags or
+custom validators
+@item Slice, Array and Map diving, which allows any or all levels of a
+multidimensional field to be validated
+@item Ability to dive into both map keys and values for validation
+@item Handles type interface by determining it's underlying type prior to validation
+@item Handles custom field types such as sql driver
+@uref{https://golang.org/src/database/sql/driver/types.go?s=1210:1293#L29,
+Valuer}
+@item Alias validation tags, which allows for mapping of several validations
+to a single tag for easier defining of validations on structs
+@item Extraction of custom defined Field Name e.g. can specify to extract the
+JSON name while validating and have it available in the resulting FieldError
+@item Customizable i18n aware error messages.
+@item Default validator for the @uref{https://github.com/gin-gonic/gin, gin}
+web framework
+@end itemize")
+    (license license:expat)))
+
+(define-public go-github-com-aws-sdk
+  (package
+    (name "go-github-com-aws-sdk")
+    (version "1.35.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/aws/aws-sdk-go")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1ky5lw2s2zpslnnqcs6hgsrwvwbxwgflb5jwf16dd4aga3vrg10c"))))
+    (build-system go-build-system)
+    (arguments
+     '(#: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)))
+    (home-page "https://github.com/aws/aws-sdk-go")
+    (synopsis "Library to access Amazon Web Services (AWS)")
+    (description
+     "This is the official AWS SDK for the Go programming language.")
+    (license license:asl2.0)))
+
 (define-public go-gopkg.in-tomb.v2
   (let ((commit "d5d1b5820637886def9eef33e03a27a9f166942c")
         (revision "0"))
@@ -535,6 +838,32 @@ termination.")
       (home-page "https://gopkg.in/tomb.v2")
       (license license:bsd-3))))
 
+(define-public go-gopkg-in-natefinch-lumberjack.v2
+  (package
+    (name "go-gopkg-in-natefinch-lumberjack.v2")
+    (version "2.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/natefinch/lumberjack")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1l3vlv72b7rfkpy1164kwd3qzrqmmjnb67akzxqp2mlvc66k6p3d"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "gopkg.in/natefinch/lumberjack.v2"))
+    (propagated-inputs
+     `(("github.com/burntsush/toml" ,go-github-com-burntsushi-toml)
+       ("gopkg.in/yaml.v2" ,go-gopkg-in-yaml-v2)))
+    (home-page "https://github.com/natefinch/lumberjack")
+    (synopsis "Rolling logger for Go")
+    (description
+     "Lumberjack is a Go package for writing logs to rolling files.")
+    (license license:expat)))
+
 (define-public go-github.com-jtolds-gls
   (package
     (name "go-github.com-jtolds-gls")
@@ -558,6 +887,30 @@ per-goroutine.")
     (home-page "https://github.com/jtolds/gls")
     (license license:expat)))
 
+(define-public go-github-com-saracen-walker
+  (package
+    (name "go-github-com-saracen-walker")
+    (version "0.1.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/saracen/walker")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1rq1lrp99lx7k1ysbfznn4c1iagnxdhb4lnnklsadnnzi3gvygqz"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "github.com/saracen/walker"))
+    (inputs
+     `(("go-golang-org-x-sync" ,go-golang-org-x-sync)))
+    (home-page "https://github.com/saracen/walker")
+    (synopsis "Faster, parallel version of Go's filepath.Walk")
+    (license license:expat)
+    (description "The @code{walker} function is a faster, parallel version, of
+@code{filepath.Walk}")))
+
 (define-public go-github-com-tj-docopt
   (package
     (name "go-github-com-tj-docopt")
@@ -710,6 +1063,18 @@ for the Go language.")
       (home-page "https://go.googlesource.com/net")
       (license license:bsd-3))))
 
+(define-public go-golang-org-x-net-html
+  (package
+    (inherit go-golang-org-x-net)
+    (name "go-golang.org-x-net-html")
+    (arguments
+     '(#:import-path "golang.org/x/net/html"
+       #:unpack-path "golang.org/x/net"))
+    (synopsis "HTML5-compliant tokenizer and parser")
+    (description
+     "This package provides an HTML5-compliant tokenizer and parser.")
+    (home-page "https://godoc.org/golang.org/x/net/html")))
+
 (define-public go-golang-org-x-image
   (let ((commit "58c23975cae11f062d4b3b0c143fe248faac195d")
         (revision "1"))
@@ -740,9 +1105,39 @@ for the Go language.")
 processing.")
       (license license:bsd-3))))
 
+(define-public go-golang-org-x-sync
+  (let ((commit "6e8e738ad208923de99951fe0b48239bfd864f28")
+        (revision "1"))
+    (package
+      (name "go-golang-org-x-sync")
+      (version (git-version "0.0.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://go.googlesource.com/sync")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "1avk27pszd5l5df6ff7j78wgla46ir1hhy2jwfl9a3c0ys602yx9"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "golang.org/x/sync"
+         #:tests? #f
+         ;; Source-only package
+         #:phases
+         (modify-phases %standard-phases
+           (delete 'build))))
+      (synopsis "Additional Go concurrency primitives")
+      (description "This package provides Go concurrency primitives in addition
+to the ones provided by the language and “sync” and “sync/atomic”
+packages.")
+      (home-page "https://go.googlesource.com/sync/")
+      (license license:bsd-3))))
+
 (define-public go-golang-org-x-sys
-  (let ((commit "c709ea063b76879dc9915358f55d4d77c16ab6d5")
-        (revision "6"))
+  (let ((commit "05986578812163b26672dabd9b425240ae2bb0ad")
+        (revision "7"))
     (package
       (name "go-golang-org-x-sys")
       (version (git-version "0.0.0" revision commit))
@@ -754,7 +1149,7 @@ processing.")
                 (file-name (git-file-name name version))
                 (sha256
                  (base32
-                  "15nq53a6kcqchng4j0d1pjw0m6hny6126nhjdwqw5n9dzh6a226d"))))
+                  "1q2rxb6z5l6pmlckjsz2l0b8lw7bqgk6frhzbmi1dv0y5irb2ka7"))))
       (build-system go-build-system)
       (arguments
        `(#:import-path "golang.org/x/sys"
@@ -855,6 +1250,30 @@ time.")
  spec in Go.")
       (license license:bsd-3))))
 
+(define-public go-golang-org-x-xerrors
+  (let ((commit "5ec99f83aff198f5fbd629d6c8d8eb38a04218ca")
+        (revision "0"))
+    (package
+      (name "go-golang-org-x-xerrors")
+      (version (git-version "0.0.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://go.googlesource.com/xerrors")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "1dbzc3gmf2haazpv7cgmv97rq40g2xzwbglc17vas8dwhgwgwrzb"))))
+      (build-system go-build-system)
+      (arguments
+       '(#:import-path "golang.org/x/xerrors"))
+      (synopsis "Go 1.13 error values")
+      (description
+       "This package holds the transition packages for the new Go 1.13 error values.")
+      (home-page "https://godoc.org/golang.org/x/xerrors")
+      (license license:bsd-3))))
+
 (define-public go-github-com-burntsushi-toml
   (package
     (name "go-github-com-burntsushi-toml")
@@ -1047,55 +1466,117 @@ Features include:
 optimized for performance yet simple to use.")
       (license license:expat))))
 
-(define-public go-github-com-blang-semver
-  (let ((commit "60ec3488bfea7cca02b021d106d9911120d25fe9")
+(define-public go-github-com-tomnomnom-gron
+  (package
+    (name "gron")
+    (version "0.6.0")
+    (home-page "https://github.com/tomnomnom/gron")
+    (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 "05f3w4zr15wd7xk75l12y5kip4gnv719a2x9w2hy23q3pnss9wk0"))))
+    (build-system go-build-system)
+    (arguments
+     (let ((import-path "github.com/tomnomnom/gron"))
+       `(#:import-path ,import-path
+         #:phases
+         (modify-phases %standard-phases
+           (add-after 'check 'remove-non-source
+             (lambda _
+               (for-each (lambda (dir)
+                           (delete-file-recursively
+                            (string-append "src/" ,import-path dir)))
+                         '("/docs" "/script" "/testdata"))
+               #t))))))
+    (inputs
+     `(("github.com/fatih/color" ,go-github-com-fatih-color)
+       ("github.com/mattn/go-colorable" ,go-github-com-mattn-go-colorable)
+       ("github.com/mattn/go-isatty" ,go-github-com-mattn-go-isatty)
+       ("github.com/nwidger/jsoncolor" ,go-github-com-nwidger-jsoncolor)
+       ("github.com/pkg/errors" ,go-github-com-pkg-errors)))
+    (synopsis "Transform JSON to make it easier to grep")
+    (description
+     "This package transforms JSON into discrete assignments to make it easier
+to use line-based tools such as grep to search for what you want and see the
+absolute \"path\" to it.")
+    (license license:expat)))
+
+(define-public go-github-com-tv42-httpunix
+  (let ((commit "2ba4b9c3382c77e7b9ea89d00746e6111d142a22")
         (revision "0"))
     (package
-      (name "go-github-com-blang-semver")
+      (name "go-github-com-tv42-httpunix")
       (version (git-version "0.0.0" revision commit))
       (source
        (origin
          (method git-fetch)
          (uri (git-reference
-               (url "https://github.com/blang/semver")
+               (url "https://github.com/tv42/httpunix")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
-          (base32
-           "19pli07y5592g4dyjyj0jq5rn548vc3fz0qg3624vm1j5828p1c2"))))
+          (base32 "0xbwpip2hsfhd2kd878jn5ndl8y1i9658lggha4x3xb5m1rsds9w"))))
       (build-system go-build-system)
       (arguments
-       '(#:import-path "github.com/blang/semver"))
-      (home-page "https://github.com/blang/semver")
-      (synopsis "Semantic versioning library written in Go")
-      (description "Semver is a library for Semantic versioning written in Go.")
+       '(#:import-path "github.com/tv42/httpunix"))
+      (home-page "https://github.com/tv42/httpunix")
+      (synopsis "Go library to talk HTTP over Unix domain sockets")
+      (description "This package is a Go library to talk HTTP over Unix domain
+sockets.")
       (license license:expat))))
 
-(define-public go-github-com-emicklei-go-restful
-  (let ((commit "89ef8af493ab468a45a42bb0d89a06fccdd2fb22")
+(define-public go-github-com-blang-semver
+  (let ((commit "60ec3488bfea7cca02b021d106d9911120d25fe9")
         (revision "0"))
     (package
-      (name "go-github-com-emicklei-go-restful")
+      (name "go-github-com-blang-semver")
       (version (git-version "0.0.0" revision commit))
       (source
        (origin
          (method git-fetch)
          (uri (git-reference
-               (url "https://github.com/emicklei/go-restful")
+               (url "https://github.com/blang/semver")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
           (base32
-           "0rrlfcfq80fkxifpih6bq31vavb5mf4530xz51pp9pq1mn2fzjfh"))))
+           "19pli07y5592g4dyjyj0jq5rn548vc3fz0qg3624vm1j5828p1c2"))))
       (build-system go-build-system)
       (arguments
-       '(#:import-path "github.com/emicklei/go-restful"))
-      (home-page "https://github.com/emicklei/go-restful")
-      (synopsis "Build REST-style web services using Go")
-      (description "This package provides @code{go-restful}, which helps
+       '(#:import-path "github.com/blang/semver"))
+      (home-page "https://github.com/blang/semver")
+      (synopsis "Semantic versioning library written in Go")
+      (description "Semver is a library for Semantic versioning written in Go.")
+      (license license:expat))))
+
+(define-public go-github-com-emicklei-go-restful
+  (package
+    (name "go-github-com-emicklei-go-restful")
+    (version "3.4.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/emicklei/go-restful")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0m1y5a6xr6hmdj77afrvyh2llkbhn1166lcrgis654shl8zs9qhz"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/emicklei/go-restful"))
+    (home-page "https://github.com/emicklei/go-restful")
+    (synopsis "Build REST-style web services using Go")
+    (description "This package provides @code{go-restful}, which helps
 developers to use @code{http} methods explicitly and in a way that's consistent
 with the HTTP protocol definition.")
-      (license license:expat))))
+    (license license:expat)))
 
 (define-public go-github-com-google-cadvisor
   (let ((commit "2ed7198f77395ee9a172878a0a7ab92ab59a2cfd")
@@ -1195,30 +1676,106 @@ values for the purpose of fuzz testing.")
       (license license:bsd-3))))
 
 (define-public go-github-com-gorilla-mux
-  (let ((commit "599cba5e7b6137d46ddf58fb1765f5d928e69604")
-        (revision "0"))
-    (package
-      (name "go-github-com-gorilla-mux")
-      (version (git-version "0.0.0" revision commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/gorilla/mux")
-               (commit commit)))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32
-           "0wd6jjii1kg5s0nk3ri6gqriz6hbd6bbcn6x4jf8n7ncrb8qsxyz"))))
-      (build-system go-build-system)
-      (arguments
-       '(#:import-path "github.com/gorilla/mux"))
-      (home-page "https://github.com/gorilla/mux")
-      (synopsis "URL router and dispatcher for Go")
-      (description
-       "Gorilla/Mux implements a request router and dispatcher for matching
+  (package
+    (name "go-github-com-gorilla-mux")
+    (version "1.8.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/gorilla/mux")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "18f0q9qxgq1yh4ji07mqhiydfcwvi56z9d775v7dc7yckj33kpdk"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/gorilla/mux"))
+    (home-page "https://github.com/gorilla/mux")
+    (synopsis "URL router and dispatcher for Go")
+    (description
+     "Gorilla/Mux implements a request router and dispatcher for matching
 incoming requests with their respective handler.")
-      (license license:bsd-3))))
+    (license license:bsd-3)))
+
+(define-public go-github-com-gorilla-handlers
+  (package
+    (name "go-github-com-gorilla-handlers")
+    (version "1.5.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/gorilla/handlers")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "15gycdz9lkjnsvvichsbdf25vf6pi1sfn41khhz53iqf300l0w0s"))))
+    (build-system go-build-system)
+    (propagated-inputs
+     `(("github.com/felixge/httpsnoop" ,go-github-com-felixge-httpsnoop)))
+    (arguments
+     '(#:tests? #f                      ; Tries to download from the internet
+       #:import-path "github.com/gorilla/handlers"))
+    (home-page "https://github.com/gorilla/handlers")
+    (synopsis "Middleware for Go HTTP services and web applications")
+    (description "A collection of useful middleware for Go HTTP services
+and web applications.")
+    (license license:bsd-3)))
+
+(define-public go-github-com-gorilla-securecookie
+  (package
+    (name "go-github-com-gorilla-securecookie")
+    (version "1.1.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/gorilla/securecookie")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "16bqimpxs9vj5n59vm04y04v665l7jh0sddxn787pfafyxcmh410"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/gorilla/securecookie"))
+    (home-page "https://github.com/gorilla/securecookie")
+    (synopsis "Encodes and decodes authenticated and optionally encrypted
+cookie values")
+    (description
+     "Gorilla/securecookie encodes and decodes authenticated and optionally
+encrypted cookie values for Go web applications.")
+    (license license:bsd-3)))
+
+(define-public go-github-com-gorilla-csrf
+  (package
+    (name "go-github-com-gorilla-csrf")
+    (version "1.7.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/gorilla/csrf")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0iryq0z48yi7crfbd8jxyn7lh1gsglpiglvjgnf23bz6xfisssav"))))
+    (build-system go-build-system)
+    (propagated-inputs
+     `(("github.com/gorilla/securecookie" ,go-github-com-gorilla-securecookie)
+       ("github.com/pkg/errors" ,go-github-com-pkg-errors)))
+    (arguments
+     '(#:import-path "github.com/gorilla/csrf"))
+    (home-page "https://github.com/gorilla/csrf")
+    (synopsis "Cross Site Request Forgery (CSRF) prevention middleware")
+    (description
+     "Gorilla/csrf provides Cross Site Request Forgery (CSRF) prevention
+middleware for Go web applications and services.")
+    (license license:bsd-3)))
 
 (define-public go-github-com-jonboulle-clockwork
   (let ((commit "e3653ace2d63753697e0e5b07b9393971c0bba9d")
@@ -1412,6 +1969,31 @@ GNU extensions} to the POSIX recommendations for command-line options.")
 all types of configuration needs and formats.")
     (license license:expat)))
 
+(define-public go-github-com-felixge-httpsnoop
+  (package
+    (name "go-github-com-felixge-httpsnoop")
+    (version "1.0.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/felixge/httpsnoop")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0ncd8lar5zxiwjhsp315s4hsl4bhnm271h49jhyxc66r5yffgmac"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/felixge/httpsnoop"))
+    (home-page "https://github.com/felixge/httpsnoop/")
+    (synopsis "Capture http related metrics")
+    (description
+     "Httpsnoop provides an easy way to capture http related
+metrics (i.e. response time, bytes written, and http status code) from your
+application's http.Handlers.")
+    (license license:expat)))
+
 (define-public go-github-com-fsnotify-fsnotify
   (package
     (name "go-github-com-fsnotify-fsnotify")
@@ -1439,7 +2021,7 @@ all types of configuration needs and formats.")
 (define-public go-github-com-magiconair-properties
   (package
     (name "go-github-com-magiconair-properties")
-    (version "1.8.1")
+    (version "1.8.4")
     (source
      (origin
        (method git-fetch)
@@ -1449,7 +2031,7 @@ all types of configuration needs and formats.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "19zqw1x0w0crh8zc84yy82nkcc5yjz72gviaf2xjgfm5a8np7nyb"))))
+         "0q7d55z0v8y55dyy8nhgdnswf5zkgj3i87irbk294nvzhx01bnxd"))))
     (build-system go-build-system)
     (arguments
      `(#:import-path "github.com/magiconair/properties"))
@@ -1602,7 +2184,7 @@ finding resources located relative to the executable file.")
          (method git-fetch)
          (uri (git-reference
                (url
-                "https://github.com/ayufan/golang-kardianos-service.git")
+                "https://github.com/ayufan/golang-kardianos-service")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
@@ -1853,32 +2435,30 @@ terminal.")
     (license license:expat)))
 
 (define-public go-github-com-mattn-go-colorable
-  (let ((commit "efa589957cd060542a26d2dd7832fd6a6c6c3ade")
-        (revision "0"))
-    (package
-      (name "go-github-com-mattn-go-colorable")
-      (version (git-version "0.0.0" revision commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/mattn/go-colorable")
-               (commit commit)))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32
-           "0kshi4hvm0ayrsxqxy0599iv81kryhd2fn9lwjyczpj593cq069r"))))
-      (build-system go-build-system)
-      (native-inputs
-       `(("go-github-com-mattn-go-isatty"
-          ,go-github-com-mattn-go-isatty)))
-      (arguments
-       '(#:import-path "github.com/mattn/go-colorable"))
-      (home-page "https://github.com/mattn/go-colorable")
-      (synopsis "Handle ANSI color escapes on Windows")
-      (description "This package provides @code{colorable}, a module that
+  (package
+    (name "go-github-com-mattn-go-colorable")
+    (version "0.1.8")
+    (home-page "https://github.com/mattn/go-colorable")
+    (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
+         "0q34zqwbnls72md8q8mhj368s7p3i4xspvs3rk8fs76s0pn7dr2l"))))
+    (build-system go-build-system)
+    (native-inputs
+     `(("go-github-com-mattn-go-isatty"
+        ,go-github-com-mattn-go-isatty)))
+    (arguments
+     '(#:import-path "github.com/mattn/go-colorable"))
+    (synopsis "Handle ANSI color escapes on Windows")
+    (description "This package provides @code{colorable}, a module that
 makes it possible to handle ANSI color escapes on Windows.")
-      (license license:expat))))
+    (license license:expat)))
 
 (define-public go-github-com-mattn-go-pointer
   (let ((commit "a0a44394634f41e4992b173b24f14fecd3318a67")
@@ -2797,7 +3377,7 @@ cross-compilation.")
     (synopsis "Walk a value in Go using reflection")
     (description "reflectwalk is a Go library for \"walking\" a value in Go
 using reflection, in the same way a directory tree can be \"walked\" on the
-filesystem.  Walking a complex structure can allow you to do manipulations on
+file system.  Walking a complex structure can allow you to do manipulations on
 unknown structures such as those decoded from JSON.")
     (license license:expat)))
 
@@ -3020,6 +3600,23 @@ building command line apps in Go.  The goal is to enable developers to write
 fast and distributable command line applications in an expressive way.")
     (license license:expat)))
 
+(define-public go-github-com-urfave-cli-v2
+  (package
+    (inherit go-github-com-urfave-cli)
+    (name "go-github-com-urfave-cli-v2")
+    (version "2.3.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/urfave/cli")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "08pvn7gyfznni72xrxfh2x6xxa8ykr7l1ka278js8g8qkh71bj8l"))))
+    (arguments
+     '(#:import-path "github.com/urfave/cli/v2"))))
+
 (define-public go-github-com-go-md2man
   (package
     (name "go-github-com-go-md2man")
@@ -3250,7 +3847,7 @@ format in Go.")
 (define-public go-github-com-kr-pretty
   (package
     (name "go-github-com-kr-pretty")
-    (version "0.2.0")
+    (version "0.2.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -3259,17 +3856,43 @@ format in Go.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1ywbfzz1h3a3qd8rpkiqwi1dm4w8ls9ijb4x1b7567grns9f0vnp"))))
+                "0vzfz06y9q8gs2nxx0kys0591vzp78k0fvpb8digi5n15h3b25hy"))))
     (build-system go-build-system)
     (propagated-inputs
      `(("go-github-com-kr-text" ,go-github-com-kr-text)))
     (arguments
      '(#:import-path "github.com/kr/pretty"))
-    (synopsis "A pretty printer for Go values")
+    (synopsis "Pretty printer for Go values")
     (description "This package provides a pretty printer for Go values.")
     (home-page "https://github.com/kr/pretty")
     (license license:expat)))
 
+(define-public go-github-com-kylelemons-godebug
+  (package
+    (name "go-github-com-kylelemons-godebug")
+    (version "1.1.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/kylelemons/godebug")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0dkk3friykg8p6wgqryx6745ahhb9z1j740k7px9dac6v5xjp78c"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/kylelemons/godebug/diff"
+       #:unpack-path "github.com/kylelemons/godebug"))
+    (home-page "https://github.com/kylelemons/godebug")
+    (synopsis "Pretty printer for Go values.")
+    (description
+     "This package will pretty print a compact representation of a Go data
+structure.  It can also produce a much more verbose, one-item-per-line
+representation suitable for computing diffs.")
+    (license license:asl2.0)))
+
 (define-public go-github-com-kr-text
   (package
     (name "go-github-com-kr-text")
@@ -3316,6 +3939,31 @@ without requiring a real database connection.")
       (home-page "https://github.com/DATA-DOG/go-sqlmock")
       (license license:expat))))
 
+(define-public go-github-com-go-sql-driver-mysql
+  (package
+    (name "go-github-com-go-sql-driver-mysql")
+    (version "1.5.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/go-sql-driver/mysql")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "11x0m9yf3kdnf6981182r824psgxwfaqhn3x3in4yiidp0w0hk3v"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:tests? #f ;; tests require a network connection
+       #:import-path "github.com/go-sql-driver/mysql"))
+    (home-page "https://github.com/go-sql-driver/mysql")
+    (synopsis "MySQL driver for golang")
+    (description
+     "This is a pure Go implementaton of the MySQL API, compatible with
+golang's database/sql package.")
+    (license license:mpl2.0)))
+
 (define-public go-golang-org-colorful
   (package
     (name "go-golang-org-colorful")
@@ -3862,7 +4510,7 @@ colorized or SGR defined output to the standard output.")
 (define-public go-github-com-google-go-cmp-cmp
   (package
     (name "go-github-com-google-go-cmp-cmp")
-    (version "0.3.1")
+    (version "0.5.2")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -3871,11 +4519,13 @@ colorized or SGR defined output to the standard output.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1caw49i0plkjxir7kdf5qhwls3krqwfmi7g4h392rdfwi3kfahx1"))))
+                "0qchy411jm9q2l9mf7x3ry2ycaqp9xdhf2nx14qrpzcxfigv2705"))))
     (build-system go-build-system)
     (arguments
      '(#: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)))
     (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
@@ -4180,7 +4830,7 @@ data serialization format.")
 (define-public go-github-com-mattn-go-zglob
   (package
     (name "go-github-com-mattn-go-zglob")
-    (version "0.0.1")
+    (version "0.0.3")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -4189,7 +4839,7 @@ data serialization format.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1sncdyq5fbd42al4amyy91h7vlzm3wm6c9vl8za2pjgfgsd581fz"))))
+                "1923lvakm66mzy62jmngdvcmbmiqclinsvnghs3907rgygnx1qc1"))))
     (build-system go-build-system)
     (arguments
      `(#:import-path "github.com/mattn/go-zglob"))
@@ -4836,6 +5486,34 @@ the parse trees produced by the html package.")
 to jQuery to the Go language.")
     (license license:bsd-3)))
 
+(define-public go-github-com-jmespath-go-jmespath
+  (package
+    (name "go-github-com-jmespath-go-jmespath")
+    (version "0.4.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/jmespath/go-jmespath")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "18zyr9nlywmwp3wpzcjxrgq9s9d2mmc6zg6xhsna00m663nkyc3n"))))
+    (build-system go-build-system)
+    (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)))
+    (home-page "https://github.com/jmespath/go-jmespath")
+    (synopsis "Golang implementation of JMESPath")
+    (description
+     "This package implements JMESPath, a query language for JSON.  It
+transforms one JSON document into another through a JMESPath expression.")
+    (license license:asl2.0)))
+
 (define-public go-github-com-aymerick-douceur
   (package
     (name "go-github-com-aymerick-douceur")
@@ -4924,6 +5602,7 @@ to jQuery to the Go language.")
               (uri (git-reference
                     (url "https://github.com/muesli/reflow")
                     (commit (string-append "v" version))))
+              (file-name (git-file-name "go-github-com-muesli-reflow" version))
               (sha256
                (base32
                 "1vhynm2n1az13fn03lp0gi28p9mznq1mblglh8f2rb9y1vkd2dqr"))))
@@ -4993,6 +5672,33 @@ style your output, without you having to deal with all kinds of weird ANSI
 escape sequences and color conversions.")
     (license license:expat)))
 
+(define-public go-github-com-nwidger-jsoncolor
+  (package
+    (name "go-github-com-nwidger-jsoncolor")
+    (version "0.3.0")
+    (home-page "https://github.com/nwidger/jsoncolor")
+    (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
+         "13rd146pnj7qm70r1333gyd1f61x40nafxlpvdxlci9h7mx8c5p8"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "github.com/nwidger/jsoncolor"))
+    (native-inputs
+     `(("go-github-com-fatih-color" ,go-github-com-fatih-color)))
+    (synopsis "Colorized JSON marshalling and encoding")
+    (description
+     "@code{jsoncolor} is a drop-in replacement for @code{encoding/json}'s
+@code{Marshal} and @code{MarshalIndent} functions and @code{Encoder} type
+which produce colorized output using github.com/fatih/color.")
+    (license license:expat)))
+
 (define-public go-github-com-olekukonko-tablewriter
   (package
     (name "go-github-com-olekukonko-tablewriter")
@@ -5013,7 +5719,7 @@ escape sequences and color conversions.")
      `(("go-github.com-mattn-go-runewidth" ,go-github.com-mattn-go-runewidth)))
     (home-page "https://github.com/olekukonko/tablewriter/")
     (synopsis "Generate ASCII table")
-    (description "This package allows to generate ASCII table.  Features:
+    (description "This package generates ASCII tables.  Features:
 @itemize
 @item automatic Padding
 @item support Multiple Lines
@@ -5211,11 +5917,11 @@ errors (warnings).")
     (native-inputs
      `(("go-gopkg-in-check-v1" ,go-gopkg-in-check-v1)))
     (home-page "https://github.com/go-git/go-billy/")
-    (synopsis "Filesystem abstraction for Go")
-    (description "Billy implements an interface based on the os standard
-library, allowing to develop applications without dependency on the underlying
-storage.  Makes it virtually free to implement mocks and testing over
-filesystem operations.")
+    (synopsis "File system abstraction for Go")
+    (description "Billy implements an interface based on the OS's standard
+library to develop applications without depending on the underlying storage.
+This makes it virtually free to implement mocks and testing over
+file system operations.")
     (license license:asl2.0)))
 
 (define-public go-github-com-jbenet-go-context
@@ -5630,3 +6336,358 @@ Included are the following:
 except that it adds convenience functions that use the fmt package to format
 error messages.")
     (license license:bsd-3)))
+
+(define-public go-github-com-arceliar-phony
+  (let ((commit "d0c68492aca0bd4b5c5c8e0452c9b4c8af923eaf")
+        (revision "0"))
+    (package
+      (name "go-github-com-arceliar-phony")
+      (version (git-version "0.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/Arceliar/phony")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "0876y0hlb1zh8hn0pxrb5zfdadvaqmqwlr66p19yl2a76galz992"))))
+      (arguments
+       '(#:import-path "github.com/Arceliar/phony"))
+      (build-system go-build-system)
+      (home-page "https://github.com/Arceliar/phony")
+      (synopsis "Very minimal actor model library")
+      (description "Phony is a very minimal actor model library for Go,
+inspired by the causal messaging system in the Pony programming language.")
+      (license license:expat))))
+
+(define-public go-github-com-cheggaaa-pb
+  (package
+    (name "go-github-com-cheggaaa-pb")
+    (version "3.0.4")
+    (source
+      (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"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/cheggaaa/pb/"))
+    (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)))
+    (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-gologme-log
+  ;; this is the same as v1.2.0, only the LICENSE file changed
+  (let ((commit "720ba0b3ccf0a91bc6018c9967a2479f93f56a55"))
+    (package
+      (name "go-github-com-gologme-log")
+      (version "1.2.0")
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/gologme/log")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "0z3gs5ngv2jszp42ypp3ai0pn410v3b2m674g73ma7vsbn2yjk1n"))))
+      (build-system go-build-system)
+      (arguments
+       '(#:import-path "github.com/gologme/log"))
+      (home-page "https://github.com/gologme/log/")
+      (synopsis
+       "Fork of the golang built in log package to add support for levels")
+      (description "This package is a drop in replacement for the built-in Go
+log package.  All the functionality of the built-in package still exists and
+is unchanged.  This package contains a series of small enhancements and
+additions.")
+      (license license:bsd-3))))
+
+(define-public go-github-com-frankban-quicktest
+  (package
+    (name "go-github-com-frankban-quicktest")
+    (version "1.11.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/frankban/quicktest")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0b1b44b2hli2p969gqz30z8v9z6ahlklpqzi17nwk1lsjz9yv938"))))
+    (build-system go-build-system)
+    (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)))
+    (home-page "https://github.com/frankban/quicktest")
+    (synopsis "Quick helpers for testing Go applications")
+    (description
+     "Package quicktest provides a collection of Go helpers for writing
+tests.")
+    (license license:expat)))
+
+(define-public go-github-com-bep-golibsass
+  (package
+    (name "go-github-com-bep-golibsass")
+    (version "0.7.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/bep/golibsass")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0xk3m2ynbydzx87dz573ihwc4ryq0r545vz937szz175ivgfrhh3"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin
+           (delete-file-recursively "libsass_src")
+           #t))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/bep/golibsass/libsass"
+       #:unpack-path "github.com/bep/golibsass"
+       ;; The dev build tag modifies the build to link to system libsass
+       ;; instead of including the bundled one (which we remove.)
+       ;; https://github.com/bep/golibsass/blob/v0.7.0/internal/libsass/a__cgo_dev.go
+       #:build-flags '("-tags" "dev")
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'build 'generate-bindings
+           ;; Generate bindings for system libsass, replacing the
+           ;; pre-generated bindings.
+           (lambda* (#:key inputs unpack-path #:allow-other-keys)
+             (mkdir-p (string-append "src/" unpack-path "/internal/libsass"))
+             (let ((libsass-src (string-append (assoc-ref inputs "libsass-src") "/src")))
+               (substitute* (string-append "src/" unpack-path "/gen/main.go")
+                 (("filepath.Join\\(rootDir, \"libsass_src\", \"src\"\\)")
+                  (string-append "\"" libsass-src "\""))
+                 (("../../libsass_src/src/")
+                  libsass-src)))
+             (invoke "go" "generate" (string-append unpack-path "/gen"))
+             #t))
+         (replace 'check
+           (lambda* (#:key tests? import-path #:allow-other-keys)
+             (if tests?
+                 (invoke "go" "test" import-path "-tags" "dev"))
+             #t)))))
+    (propagated-inputs
+     `(("libsass" ,libsass)))
+    (native-inputs
+     `(("go-github-com-frankban-quicktest" ,go-github-com-frankban-quicktest)
+       ("libsass-src" ,(package-source libsass))))
+    (home-page "https://github.com/bep/golibsass")
+    (synopsis "Easy to use Go bindings for LibSass")
+    (description
+     "This package provides SCSS compiler support for Go applications.")
+    (license license:expat)))
+
+(define-public go-github-com-hashicorp-go-syslog
+  (package
+    (name "go-github-com-hashicorp-go-syslog")
+    (version "1.0.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/hashicorp/go-syslog")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "09vccqggz212cg0jir6vv708d6mx0f9w5bxrcdah3h6chgmal6v1"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/hashicorp/go-syslog"))
+    (home-page "https://github.com/hashicorp/go-syslog")
+    (synopsis "Golang syslog wrapper, cross-compile friendly")
+    (description "This package is a very simple wrapper around log/syslog")
+    (license license:expat)))
+
+(define-public go-github-com-hjson-hjson-go
+  (package
+    (name "go-github-com-hjson-hjson-go")
+    (version "3.1.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/hjson/hjson-go")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1dfdiahimg6z9idg8jiqxwnlwjnmasbjccx8gnag49cz4yfqskaz"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/hjson/hjson-go"))
+    (home-page "https://hjson.org/")
+    (synopsis "Human JSON implementation for Go")
+    (description "Hjson is a syntax extension to JSON.  It is intended to be
+used like a user interface for humans, to read and edit before passing the
+JSON data to the machine.")
+    (license license:expat)))
+
+(define-public go-golang-zx2c4-com-wireguard
+  (package
+    (name "go-golang-zx2c4-com-wireguard")
+    (version "0.0.20200320")
+    (source
+     (origin
+       (method git-fetch)
+       ;; NOTE: module URL is a redirect
+       ;; target: git.zx2c4.com/wireguard-go
+       ;; source: golang.zx2c4.com/wireguard
+       (uri (git-reference
+             (url "https://git.zx2c4.com/wireguard-go/")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0fy4qsss3i3pkq1rpgjds4aipbwlh1dr9hbbf7jn2a1c63kfks0r"))))
+    (build-system go-build-system)
+    (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)))
+    (home-page "https://git.zx2c4.com/wireguard")
+    (synopsis "Implementation of WireGuard in Go")
+    (description "This package is a Go Implementation of WireGuard.")
+    (license license:expat)))
+
+(define-public go-github-com-kardianos-minwinsvc
+  (package
+    (name "go-github-com-kardianos-minwinsvc")
+    (version "1.0.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/kardianos/minwinsvc")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0z941cxymkjcsj3p5l3g4wm2da3smz7iyqk2wbs5y8lmxd4kfzd8"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/kardianos/minwinsvc"))
+    (home-page "https://github.com/kardianos/minwinsvc/")
+    ;; some packages (Yggdrasil) need it to compile
+    ;; it's a tiny package and it's easier to bundle it than to patch it out
+    (synopsis "Minimal windows only service stub for Go")
+    (description "Go programs designed to run from most *nix style operating
+systems can import this package to enable running programs as services without
+modifying them.")
+    (license license:zlib)))
+
+(define-public go-github-com-goccy-yaml
+  (package
+    (name "go-github-com-goccy-yaml")
+    (version "1.8.0")
+    (home-page "https://github.com/goccy/go-yaml")
+    (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 "1nps58dwkd915mx35h5f0dc05b880b4fdl6dcjxpfmmbzyinvg38"))))
+    (build-system go-build-system)
+    (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)))
+    (native-inputs
+     `(("go-gopkg-in-go-playground-validator-v9"
+        ,go-gopkg-in-go-playground-validator-v9)))
+    (synopsis "YAML support for the Go language")
+    (description
+     "This package provides features beyond the
+@uref{https://github.com/go-yaml/yaml, defacto YAML library} including:
+
+@itemize
+@item Pretty format for error notifications
+@item Support Scanner or Lexer or Parser as public API
+@item Support Anchor and Alias to Marshaler
+@item Allow referencing elements declared in another file via anchors
+@item Extract value or AST by YAMLPath (YAMLPath is like a JSONPath)
+@end itemize")
+    (license license:expat)))
+
+(define-public go-github.com-ulikunitz-xz
+  (package
+    (name "go-github.com-ulikunitz-xz")
+    (version "0.5.8")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/ulikunitz/xz.git")
+                    (commit (string-append "v" version))))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32
+                "1xnsymi5fmmm734bi4c6z57p5cvnyxlpi29yxs4v21w5k763aypd"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "github.com/ulikunitz/xz"))
+    (synopsis "Read and write xz compressed streams in Go")
+    (description "This package provides a library to read and write xz
+compressed streams in Go.")
+    (home-page "https://github.com/ulikunitz/xz")
+    (license license:bsd-3)))
+
+(define-public go-github-com-songmu-gitconfig
+  (package
+    (name "go-github-com-songmu-gitconfig")
+    (version "0.1.0")
+    (home-page "https://github.com/songmu/gitconfig")
+    (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 "1y01h496a7pfj1g2bclls5b0nl3vnj7nz610jj1dzq9kxrwxk7fk"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "github.com/Songmu/gitconfig"
+       ;; Package's tests appear to be hardcoded to the author's gitconfig
+       ;; and require network access.
+       #:tests? #f))
+    (propagated-inputs
+     `(("go-github-com-goccy-yaml" ,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)))
diff --git a/gnu/packages/gpodder.scm b/gnu/packages/gpodder.scm
index 734599483b..44c356e2ff 100644
--- a/gnu/packages/gpodder.scm
+++ b/gnu/packages/gpodder.scm
@@ -38,7 +38,7 @@
 (define-public gpodder
   (package
     (name "gpodder")
-    (version "3.10.15")
+    (version "3.10.17")
     (source
      (origin
        (method git-fetch)
@@ -46,9 +46,9 @@
              (url "https://github.com/gpodder/gpodder")
              (commit version)))
        (sha256
-        (base32
-         "0ghbanj142n0hgydzfjmnkdgri2kswsjal3mn10c723kih4ir4yr"))
-       (file-name (git-file-name name version))))
+        (base32 "0wrk8d4q6ricbcjzlhk10vrk1qg9hi323kgyyd0c8nmh7a82h8pd"))
+       (file-name (git-file-name name version))
+       (patches (search-patches "gpodder-disable-updater.patch"))))
     (build-system python-build-system)
     (native-inputs
      `(("intltool" ,intltool)
@@ -176,21 +176,20 @@ downloading episode status changes.")
 (define-public python-podcastparser
   (package
     (name "python-podcastparser")
-    (version "0.6.5")
+    (version "0.6.6")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "podcastparser" version))
        (sha256
-        (base32 "0k62ppg20i41gcc5x8ddjn7zbpy47hqpxzrq9257g2c71m4qw07b"))))
+        (base32 "0m24r2qhck0win44xfhxajbppkss4ha6am0042s0xyq3408883m3"))))
     (native-inputs
-     `(("python-coverage" ,python-coverage)
-       ("python-nose" ,python-nose)))
+     `(("python-pytest" ,python-pytest)))
     (arguments
      '(#:phases
        (modify-phases %standard-phases
          (replace 'check
-           (lambda _ (invoke "nosetests"))))))
+           (lambda _ (invoke "pytest"))))))
     (build-system python-build-system)
     (home-page "http://gpodder.org/podcastparser")
     (synopsis "Simplified and fast RSS parser Python library")
diff --git a/gnu/packages/gps.scm b/gnu/packages/gps.scm
index 975f2ced59..ca53ac3b73 100644
--- a/gnu/packages/gps.scm
+++ b/gnu/packages/gps.scm
@@ -1,11 +1,13 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2014, 2015 Ludovic Courtès <ludo@gnu.org>
-;;; 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 © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
 ;;; Copyright © 2020 Guillaume Le Vaillant <glv@posteo.net>
 ;;; 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.
 ;;;
@@ -51,24 +53,25 @@
 (define-public gpsbabel
   (package
     (name "gpsbabel")
-    (version "1.5.4")
+    (version "1.7.0")
     (source (origin
-              (method url-fetch)
-              ;; XXX: Downloads from gpsbabel.org are hidden behind a POST, so
-              ;; get it from elsewhere.
-              (uri (string-append
-                    "mirror://debian/pool/main/g/gpsbabel/gpsbabel_"
-                    version ".orig.tar.gz"))
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/gpsbabel/gpsbabel")
+                    (commit (string-append
+                             "gpsbabel_"
+                             (string-replace-substring version "." "_")))))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "19hykxhyl567gf8qcrl33qhv95w0g4vxw9r3h9b8d8plx9bnaf8l"))
-              (patches (search-patches
-                        "gpsbabel-minizip.patch"
-                        ;; XXX: Remove this patch on the next release.
-                        "gpsbabel-qstring.patch"))
+                "010g0vd2f5knpq5p7qfnl31kv3r8m5sjdsafcinbj5gh02j2nzpy"))
+              (patches (search-patches "gpsbabel-fix-i686-test.patch"))
               (modules '((guix build utils)))
               (snippet
                '(begin
+                  (delete-file-recursively "zlib")
+                  (substitute* "Makefile.in"
+                    ((" zlib/z.*\\.h") ""))
                   ;; Delete files under GPL-compatible licences but never used
                   ;; on GNU systems, rather than bloating the LICENSE field.
                   (delete-file "gui/serial_mac.cc")           ; Apple MIT
@@ -78,17 +81,12 @@
     ;; TODO: "make doc" requires Docbook & co.
     (arguments
      `(#:configure-flags
-       '("--with-zlib=system")
-       ;; On i686, 'raymarine.test' fails because of a rounding error:
-       ;; <http://hydra.gnu.org/build/133040>.  As a workaround, disable tests
-       ;; on these platforms.
-       ;; FIXME: On x86_64 with -std=gnu++11 tests also fail due to rounding
-       ;; error.
-       #:tests? #f))
+       '("--with-zlib=system")))
     (inputs
      `(("expat" ,expat)
-       ("zlib" ,zlib)
-       ("qtbase" ,qtbase)))
+       ("libusb" ,libusb)
+       ("qtbase" ,qtbase)
+       ("zlib" ,zlib)))
     (native-inputs
      `(("which" ,which)
        ("qttools" ,qttools)
@@ -151,7 +149,7 @@ between two other data points.")
 (define-public gama
   (package
     (name "gama")
-    (version "2.09")
+    (version "2.13")
     (source
       (origin
         (method url-fetch)
@@ -159,7 +157,12 @@ between two other data points.")
                             version ".tar.gz"))
         (sha256
          (base32
-          "0c1b28frl6109arj09v4zr1xs859krn8871mkvis517g5pb55dc9"))))
+          "041cprbj4lfs42i7sd1c2zlx3r16g6c5shz3qls79gxb7kqflkgb"))
+        (modules '((guix build utils)))
+        (snippet
+         '(begin
+            (delete-file-recursively "lib/expat")
+            #t))))
     (build-system gnu-build-system)
     (arguments '(#:parallel-tests? #f)) ; race condition
     (native-inputs
@@ -179,7 +182,7 @@ coordinates as well as partial support for adjustments in global coordinate syst
 (define-public gpxsee
   (package
     (name "gpxsee")
-    (version "7.30")
+    (version "7.37")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -188,7 +191,7 @@ coordinates as well as partial support for adjustments in global coordinate syst
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "09gajwqc30r9a2sn972qdx3gx0gki9n0zafq986hn6zsr3z43mfs"))))
+                "0fpb43smh0kwic5pdxs46c0hkqj8g084h72pa024x1my6w12y9b8"))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases
@@ -218,14 +221,14 @@ such as elevation, speed, heart rate, power, temperature, and gear shifts.")
 (define-public gpsd
   (package
     (name "gpsd")
-    (version "3.20")
+    (version "3.21")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://download-mirror.savannah.gnu.org"
                            "/releases/gpsd/gpsd-" version ".tar.gz"))
        (sha256
-        (base32 "0l2yz0yw9sil82lh2l4swkkldgmhzhv588n5lcavib4f0q2phahp"))))
+        (base32 "14gyqrbrq6jz4y6x59rdpv9d4c3pbn0vh1blq3iwrc6kz0x4ql35"))))
     (build-system scons-build-system)
     (native-inputs
      `(("bc" ,bc)
diff --git a/gnu/packages/graph.scm b/gnu/packages/graph.scm
index 65dc23588f..86c4b98bf1 100644
--- a/gnu/packages/graph.scm
+++ b/gnu/packages/graph.scm
@@ -57,18 +57,19 @@
 (define-public igraph
   (package
     (name "igraph")
-    (version "0.8.1")
+    (version "0.8.4")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://github.com/igraph/igraph/releases/"
                            "download/" version "/igraph-" version ".tar.gz"))
        (sha256
-        (base32 "0wbvrac3ip3lqmbkckhnxa2swlbc86l1h8mazdlb618kx3winvi6"))))
+        (base32 "127q6q40kbmvd62yhbz6dlfk370qiq98s1iscyagpgbpjwb4xvyf"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags
-       (list "--with-external-glpk"
+       (list "--disable-static"
+             "--with-external-glpk"
              "--with-external-blas"
              "--with-external-lapack")))
     (inputs
@@ -90,14 +91,13 @@ more.")
 (define-public python-igraph
   (package (inherit igraph)
     (name "python-igraph")
-    (version "0.8.0")
+    (version "0.8.2")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "python-igraph" version))
        (sha256
-        (base32
-         "13mbrlmnbgbzw6y8ws7wj0a3ly3in8j4l1ngi6yxvgvxxi4bprj7"))))
+        (base32 "0wkxrs28qdvnrz7d4jzcf2bh6v2yqzx3wyfziihfgsi2gn6n60a6"))))
     (build-system python-build-system)
     (arguments
      '(#:configure-flags
@@ -122,91 +122,6 @@ more.")
     (home-page "https://pypi.org/project/python-igraph/")
     (synopsis "Python bindings for the igraph network analysis library")))
 
-(define-public r-igraph
-  (package
-    (name "r-igraph")
-    (version "1.2.5")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (cran-uri "igraph" version))
-       (sha256
-        (base32
-         "126z1ygbmi3g7hk97snf22rnx680dyi30idssm5zacba5rdngp8c"))))
-    (build-system r-build-system)
-    (native-inputs
-     `(("gfortran" ,gfortran)))
-    (inputs
-     `(("gmp" ,gmp)
-       ("glpk" ,glpk)
-       ("libxml2" ,libxml2)
-       ("zlib" ,zlib)))
-    (propagated-inputs
-     `(("r-magrittr" ,r-magrittr)
-       ("r-matrix" ,r-matrix)
-       ("r-pkgconfig" ,r-pkgconfig)))
-    (home-page "https://igraph.org")
-    (synopsis "Network analysis and visualization")
-    (description
-     "This package provides routines for simple graphs and network analysis.
-It can handle large graphs very well and provides functions for generating
-random and regular graphs, graph visualization, centrality methods and much
-more.")
-    (license license:gpl2+)))
-
-(define-public r-diffusionmap
-  (package
-    (name "r-diffusionmap")
-    (version "1.2.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (cran-uri "diffusionMap" version))
-       (sha256
-        (base32
-         "1rvk7069brlm1s9kqj4c31mwwr3mw4hmhay95cjjjfmw5xclff2j"))))
-    (properties `((upstream-name . "diffusionMap")))
-    (build-system r-build-system)
-    (propagated-inputs
-     `(("r-igraph" ,r-igraph)
-       ("r-matrix" ,r-matrix)
-       ("r-scatterplot3d" ,r-scatterplot3d)))
-    (home-page "https://www.r-project.org")
-    (synopsis "Diffusion map")
-    (description "This package implements the diffusion map method of data
-parametrization, including creation and visualization of diffusion maps,
-clustering with diffusion K-means and regression using the adaptive regression
-model.")
-    (license license:gpl2)))
-
-(define-public r-rgraphviz
-  (package
-    (name "r-rgraphviz")
-    (version "2.32.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (bioconductor-uri "Rgraphviz" version))
-       (sha256
-        (base32
-         "1calpvzgcz6v7s4x6bf35kj83sga95zjp7x87p5d3qnbv7q2wz5y"))))
-    (properties `((upstream-name . "Rgraphviz")))
-    (build-system r-build-system)
-    ;; 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)))
-    (propagated-inputs
-     `(("r-graph" ,r-graph)))
-    (native-inputs
-     `(("pkg-config" ,pkg-config)))
-    (home-page "https://bioconductor.org/packages/Rgraphviz")
-    (synopsis "Plotting capabilities for R graph objects")
-    (description
-     "This package interfaces R with the graphviz library for plotting R graph
-objects from the @code{graph} package.")
-    (license license:epl1.0)))
-
 (define-public r-rbiofabric
   (let ((commit "666c2ae8b0a537c006592d067fac6285f71890ac")
         (revision "1"))
diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm
index 91ac62e903..411d89fcc2 100644
--- a/gnu/packages/graphics.scm
+++ b/gnu/packages/graphics.scm
@@ -7,7 +7,7 @@
 ;;; Copyright © 2016 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2017 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
 ;;; Copyright © 2017, 2018 Ben Woodcroft <donttrustben@gmail.com>
-;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
 ;;; Copyright © 2018 Alex Kost <alezost@gmail.com>
 ;;; Copyright © 2018 Kei Kebreau <kkebreau@posteo.net>
@@ -22,6 +22,8 @@
 ;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;; Copyright © 2020 Raghav Gururajan <raghavgururajan@disroot.org>
 ;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2020 Gabriel Arazas <foo.dogsquared@gmail.com>
+;;; Copyright © 2021 Antoine Côté <antoine.cote@posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -47,25 +49,35 @@
   #:use-module (gnu packages bash)
   #:use-module (gnu packages bison)
   #:use-module (gnu packages boost)
+  #:use-module (gnu packages cdrom)
   #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages crypto)
   #:use-module (gnu packages datastructures)
   #:use-module (gnu packages documentation)
   #: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)
   #:use-module (gnu packages ghostscript)
   #:use-module (gnu packages gl)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
+  #:use-module (gnu packages gnunet)
   #:use-module (gnu packages graphviz)
+  #:use-module (gnu packages gstreamer)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages haskell-xyz)
   #:use-module (gnu packages image)
+  #:use-module (gnu packages image-processing)
   #:use-module (gnu packages imagemagick)
   #:use-module (gnu packages jemalloc)
+  #:use-module (gnu packages kde-frameworks)
+  #:use-module (gnu packages linux)
+  #:use-module (gnu packages lua)
   #:use-module (gnu packages maths)
+  #:use-module (gnu packages mp3)
   #:use-module (gnu packages multiprecision)
   #:use-module (gnu packages pdf)
   #:use-module (gnu packages perl)
@@ -79,14 +91,21 @@
   #:use-module (gnu packages qt)
   #:use-module (gnu packages readline)
   #:use-module (gnu packages sdl)
+  #:use-module (gnu packages stb)
   #:use-module (gnu packages swig)
   #:use-module (gnu packages tbb)
+  #:use-module (gnu packages upnp)
   #:use-module (gnu packages video)
+  #:use-module (gnu packages xiph)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg)
+  #:use-module (gnu packages xdisorg)
+  #:use-module (guix build-system copy)
   #: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 build-system qt)
   #:use-module (guix download)
   #:use-module (guix git-download)
   #:use-module (guix hg-download)
@@ -94,6 +113,212 @@
   #: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.6")
+    (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 "1n9lg8hpjgxlf7dpddkjhbslsfd0symla2wk6jjmnl9n9jv2gmzk"))))
+    (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")
+    (version "0.1.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/hodefoting/mmm")
+         (commit version)))
+       (file-name
+        (git-file-name name version))
+       (sha256
+        (base32 "1xmcv6rwinqsbr863rgl9005h2jlmd7k2qrwsc1h4fb8r61ykpjl"))))
+    (build-system meson-build-system)
+    (native-inputs
+     `(("luajit" ,luajit)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("alsa" ,alsa-lib)
+       ("sdl" ,sdl)
+       ("sdl2" ,sdl2)))
+    (synopsis "Memory Mapped Machine")
+    (description "MMM is a shared memory protocol for virtualising access to
+framebuffer graphics, audio output and input event.")
+    (home-page "https://github.com/hodefoting/mrg")
+    (license license:isc)))
+
+(define-public directfb
+  (package
+    (name "directfb")
+    (version "1.7.7")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/deniskropp/DirectFB")
+         (commit "DIRECTFB_1_7_7")))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0bs3yzb7hy3mgydrj8ycg7pllrd2b6j0gxj596inyr7ihssr3i0y"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'disable-configure-during-bootstrap
+           (lambda _
+             (substitute* "autogen.sh"
+               (("^.*\\$srcdir/configure.*") ""))
+             #t)))))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("libtool" ,libtool)
+       ("perl" ,perl)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("alsa" ,alsa-lib)
+       ("ffmpeg" ,ffmpeg)
+       ("freetype" ,freetype)
+       ("glu" ,glu)
+       ("gstreamer" ,gstreamer)
+       ("imlib2" ,imlib2)
+       ("jasper" ,jasper)
+       ("jpeg" ,libjpeg-turbo)
+       ("libcddb" ,libcddb)
+       ("libdrm" ,libdrm)
+       ("libtimidity" ,libtimidity)
+       ("linux-headers" ,linux-libre-headers)
+       ("mad" ,libmad)
+       ("mng" ,libmng)
+       ("mpeg2" ,libmpeg2)
+       ("mpeg3" ,libmpeg3)
+       ("opengl" ,mesa)
+       ("png" ,libpng)
+       ("sdl" ,sdl)
+       ("svg" ,librsvg)
+       ("tiff" ,libtiff)
+       ("tslib" ,tslib)
+       ("vdpau" ,libvdpau)
+       ("vorbisfile" ,libvorbis)
+       ("wayland" ,wayland)
+       ("webp" ,libwebp)
+       ("x11" ,libx11)
+       ("xcomposite" ,libxcomposite)
+       ("xext" ,libxext)
+       ("xproto" ,xorgproto)
+       ("zlib" ,zlib)))
+    (propagated-inputs
+     `(("flux" ,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
+minimum of resource usage and overhead.")
+    (home-page "https://github.com/deniskropp/DirectFB")
+    (license license:lgpl2.1+)))
+
+(define-public flux
+  (package
+    (name "flux")
+    (version "1.4.4")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/deniskropp/flux")
+         (commit "e45758a")))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "11f3ypg0sdq5kj69zgz6kih1yrzgm48r16spyvzwvlswng147410"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("libtool" ,libtool)
+       ("pkg-config" ,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.")
+    (home-page "http://www.directfb.org/")
+    (license license:lgpl2.1+))) ; Same as DirectFB
+
 (define-public fox
   (package
     (name "fox")
@@ -204,17 +429,47 @@ with the @command{autotrace} utility or as a C library, @code{libautotrace}.")
       (license (list license:gpl2+         ;for the utility itself
                      license:lgpl2.1+))))) ;for use as a library
 
+(define-public embree
+  (package
+    (name "embree")
+    (version "3.12.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/embree/embree")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0aznd16n7h8g3f6jcahzfp1dq4r7wayqvn03wsaskiq2dvsi4srd"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:tests? #f ; no tests (apparently)
+       #:configure-flags
+         (list
+          "-DEMBREE_ISPC_SUPPORT=OFF")))
+    (inputs
+     `(("tbb" ,tbb)
+       ("glfw" ,glfw)))
+    (home-page "https://www.embree.org/")
+    (synopsis "High performance ray tracing kernels")
+    (description
+     "Embree is a collection of high-performance ray tracing kernels.
+Embree is meant to increase performance of photo-realistic rendering
+applications.")
+    (license license:asl2.0)))
+
 (define-public blender
   (package
     (name "blender")
-    (version "2.83.3")
+    (version "2.91.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://download.blender.org/source/"
                                   "blender-" version ".tar.xz"))
               (sha256
                (base32
-                "18m27abp4j3xv48dr6ddr2mqcvx2vkjffr487z90059yv9k0yh2p"))))
+                "0x396lgmk0dq9115yrc36s8zwxzmjr490sr5n2y6w27y17yllyjm"))))
     (build-system cmake-build-system)
     (arguments
       (let ((python-version (version-major+minor (package-version python))))
@@ -267,6 +522,7 @@ with the @command{autotrace} utility or as a C library, @code{libautotrace}.")
        ("libx11" ,libx11)
        ("libxi" ,libxi)
        ("libxrender" ,libxrender)
+       ("opencolorio" ,opencolorio)
        ("openimageio" ,openimageio)
        ("openexr" ,openexr)
        ("opensubdiv" ,opensubdiv)
@@ -285,7 +541,8 @@ with the @command{autotrace} utility or as a C library, @code{libautotrace}.")
        ("python" ,python)
        ("python-numpy" ,python-numpy)
        ("tbb" ,tbb)
-       ("zlib" ,zlib)))
+       ("zlib" ,zlib)
+       ("embree" ,embree)))
     (home-page "https://blender.org/")
     (synopsis "3D graphics creation suite")
     (description
@@ -363,6 +620,7 @@ application can be customized via its API for Python scripting.")
      `(("boost" ,boost)
        ("jemalloc" ,jemalloc)
        ("libx11" ,libx11)
+       ("opencolorio" ,opencolorio)
        ("openimageio" ,openimageio)
        ("openexr" ,openexr)
        ("ilmbase" ,ilmbase)
@@ -391,6 +649,39 @@ NOTE: This older version of Blender is the last release that does not require
 OpenGL 3.  It is retained for use with older computers.")
     (license license:gpl2+)))
 
+(define-public goxel
+  (package
+    (name "goxel")
+    (version "0.10.7")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/guillaumechereau/goxel")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1v6m6nhl1if8ik5bmblhq46bip6y2qz18a04s8a9awb4yh9ls039"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:tests? #f
+       #:phases (modify-phases %standard-phases (delete 'configure))
+       #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
+                          "release")))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("gtk3" ,gtk+)
+       ("glfw" ,glfw)
+       ("scons" ,scons)))
+    (home-page "https://goxel.xyz/")
+    (synopsis "Voxel editor")
+    (description
+     "Goxel is a voxel editor that features unlimited scene size, unlimited
+history buffer, 24-bit RGB colors, layers, procedural rendering, ray tracing,
+and export to various formats including the format used by Magicavoxel.")
+    (license license:gpl3+)))
+
 (define-public assimp
   (package
     (name "assimp")
@@ -598,26 +889,102 @@ other vector formats such as:
 @end itemize")
     (license license:gpl2+)))
 
+(define-public dear-imgui
+  (package
+    (name "dear-imgui")
+    (version "1.79")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/ocornut/imgui")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0x26igynxp6rlpp2wfc5dr7x6yh583ajb7p23pgycn9vqikn318q"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:make-flags
+       (list (string-append "CC=" ,(cc-for-target))
+             (string-append "PREFIX=" (assoc-ref %outputs "out"))
+             (string-append "VERSION=" ,version))
+       #:tests? #f                      ; no test suite
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'unpack-debian-files
+           (lambda* (#:key inputs #:allow-other-keys)
+             (invoke "tar" "xvf" (assoc-ref inputs "debian-files"))
+             (apply invoke "patch" "-Np1" "-i"
+                    (find-files "debian/patches" "\\.patch$"))
+             (substitute* "Makefile"
+               (("<stb/") "<")          ; Guix doesn't use this subdirectory
+               ;; Don't build or install the static library.
+               (("^all: .*") "all: $(SHLIB) $(PCFILE)"))
+             (substitute* (list "imgui.pc.in"
+                                "Makefile")
+               ;; Don't link against a non-existent library.
+               (("-lstb") ""))
+             #t))
+         (delete 'configure)            ; no configure script
+         (replace 'install
+           ;; The default ‘install’ target installs the static library.  Don't.
+           (lambda* (#:key make-flags #:allow-other-keys)
+             (apply invoke "make" "install-shared" "install-header"
+                    make-flags))))))
+    (native-inputs
+     `(("debian-files"
+        ;; Upstream doesn't provide a build system.  Use Debian's.
+        ,(origin
+           (method url-fetch)
+           (uri (string-append "mirror://debian/pool/main/i/imgui/imgui_"
+                               version "+ds-1.debian.tar.xz"))
+           (sha256
+            (base32 "1xhk34pzpha6k5l2j150capq66y8czhmsi04ib09wvb34ahqxpby"))))
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("freetype" ,freetype)
+       ("stb-rect-pack" ,stb-rect-pack)
+       ("stb-truetype" ,stb-truetype)))
+    (home-page "https://github.com/ocornut/imgui")
+    (synopsis "Immediate-mode C++ GUI library with minimal dependencies")
+    (description
+     "Dear ImGui is a @acronym{GUI, graphical user interface} library for C++.
+It creates optimized vertex buffers that you can render anytime in your
+3D-pipeline-enabled application.  It's portable, renderer-agnostic, and
+self-contained, without external dependencies.
+
+Dear ImGui is aimed at content creation, visualization, and debugging tools as
+opposed to average end-user interfaces.  Hence it favors simplicity and
+productivity but lacks certain features often found in higher-level libraries.
+It is particularly suited to integration in game engine tooling, real-time 3D
+applications, full-screen applications, and embedded platforms without standard
+operating system features.")
+    (license license:expat)))           ; some examples/ use the zlib licence
+
 (define-public ogre
   (package
     (name "ogre")
-    (version "1.12.5")
+    (version "1.12.9")
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
              (url "https://github.com/OGRECave/ogre")
-             (commit (string-append "v" version))
-             (recursive? #t)))          ;for Dear ImGui submodule
+             (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1sx0jsw4kmb4ycf62bgx3ygwv8k1cgjx52y47d7dk07z6gk6wpyj"))))
+        (base32 "0b0pwh31nykrfhka6jqwclfx1pxzhj11vkl91951d63kwr5bbzms"))))
     (build-system cmake-build-system)
     (arguments
      '(#:phases
        (modify-phases %standard-phases
+         (add-before 'configure 'unpack-dear-imgui
+           (lambda* (#:key inputs #:allow-other-keys)
+             (copy-recursively (assoc-ref inputs "dear-imgui-source")
+                               "../dear-imgui-source")
+             #t))
          (add-before 'configure 'pre-configure
-           ;; CMakeLists.txt forces CMAKE_INSTALL_RPATH value.  As
+           ;; CMakeLists.txt forces a CMAKE_INSTALL_RPATH value.  As
            ;; a consequence, we cannot suggest ours in configure flags.  Fix
            ;; it.
            (lambda* (#:key inputs outputs #:allow-other-keys)
@@ -631,6 +998,7 @@ other vector formats such as:
                                   (string-append out "/lib/OGRE"))
                             ";")))
          (list (string-append "-DCMAKE_INSTALL_RPATH=" runpath)
+               "-DIMGUI_DIR=../dear-imgui-source"
                "-DOGRE_BUILD_DEPENDENCIES=OFF"
                "-DOGRE_BUILD_TESTS=TRUE"
                "-DOGRE_INSTALL_DOCS=TRUE"
@@ -638,6 +1006,7 @@ other vector formats such as:
                "-DOGRE_INSTALL_SAMPLES_SOURCE=TRUE"))))
     (native-inputs
      `(("boost" ,boost)
+       ("dear-imgui-source" ,(package-source dear-imgui))
        ("doxygen" ,doxygen)
        ("googletest" ,googletest-1.8)
        ("pkg-config" ,pkg-config)))
@@ -985,7 +1354,7 @@ realistic reflections, shading, perspective and other effects.")
        ("python" ,python-2)
        ("cython" ,python2-cython)))
     (native-inputs
-     `(("pandoc" ,ghc-pandoc)
+     `(("pandoc" ,pandoc)
        ("bison" ,bison)
        ("flex" ,flex)
        ("doxygen" ,doxygen)
@@ -1396,6 +1765,59 @@ standard graphics library for 3D visualization and visual simulation
 software in the scientific and engineering community.")
       (license license:bsd-3))))
 
+(define-public coin3D-4
+    (package
+    (name "coin3D")
+    (version "4.0.0")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/coin3d/coin")
+               (commit (string-append "Coin-" version))
+               (recursive? #t)))
+        (file-name (git-file-name name version))
+        (sha256
+          (base32 "1ayg0hl8wanhadahm5xbghghxw1qjwqbrs3dl3ngnff027hsyf8p"))
+        (modules '((guix build utils)))
+        (snippet
+          '(begin
+             ;; Delete binaries
+             (for-each delete-file
+                       '("cfg/csubst.exe"
+                         "cfg/wrapmsvc.exe"))
+             ;; Delete references to packaging tool cpack. Otherwise the build
+             ;; fails with "add_subdirectory given source "cpack.d" which is not
+             ;; an existing directory."
+             (substitute* "CMakeLists.txt"
+               ((".*cpack.d.*") ""))
+             #t))))
+    (build-system cmake-build-system)
+    (native-inputs
+      `(("doxygen" ,doxygen)
+        ("graphviz" ,graphviz)))
+    (inputs
+      `(("boost" ,boost)
+        ("freeglut" ,freeglut)
+        ("glew" ,glew)))
+    (arguments
+      `(#:configure-flags
+        (list
+          "-DCOIN_BUILD_DOCUMENTATION_MAN=ON"
+          (string-append "-DBOOST_ROOT="
+                         (assoc-ref %build-inputs "boost")))))
+    (home-page "https://github.com/coin3d/coin")
+    (synopsis
+      "High-level 3D visualization library with Open Inventor 2.1 API")
+    (description
+      "Coin is a 3D graphics library with an Application Programming Interface
+based on the Open Inventor 2.1 API.  For those who are not familiar with Open
+Inventor, it is a scene-graph based retain-mode rendering and model interaction
+library, written in C++, which has become the de facto standard graphics
+library for 3D visualization and visual simulation software in the scientific
+and engineering community.")
+      (license license:bsd-3)))
+
 (define-public superfamiconv
   (package
     (name "superfamiconv")
@@ -1429,3 +1851,60 @@ and PC Engine formats")
 the graphics formats of the SNES, Game Boy Color and PC Engine game consoles.
 Automated palette selection is supported.")
     (license license:expat)))
+
+(define-public drawpile
+  ;; This commit fix building with libmicrohttpd>=0.71.
+  (let ((commit "ed1a75deb113da2d1df91a28f557509c4897130e")
+        (revision "1"))
+    (package
+      (name "drawpile")
+      (version (string-append "2.1.17-" revision "." (string-take commit 9)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/drawpile/Drawpile")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "1y21h1hk9ipkjvhjgas0c5hkjyan92vsxbxrn60c906hzqln2fr1"))))
+      (build-system qt-build-system)
+      (arguments
+       '(#:configure-flags
+         (list "-DTESTS=ON" "-DTOOLS=ON" "-DKIS_TABLET=ON")))
+      (native-inputs
+       `(("extra-cmake-modules" ,extra-cmake-modules)
+         ("pkg-config" ,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)
+         ("qtkeychain" ,qtkeychain)
+         ("qtmultimedia" ,qtmultimedia)
+         ("qtsvg" ,qtsvg)
+         ("qtx11extras" ,qtx11extras)))
+      (home-page "https://drawpile.net")
+      (synopsis "Collaborative drawing program")
+      (description "Drawpile is a drawing program that allows share the canvas
+with other users in real time.
+
+Some feature highlights:
+@itemize
+@item Shared canvas using the built-in server or a dedicated server
+@item Record, play back and export drawing sessions
+@item Simple animation support
+@item Layers and blending modes
+@item Text layers
+@item Supports pressure sensitive Wacom tablets
+@item Built-in chat
+@item Supports OpenRaster file format
+@item Encrypted connections using SSL
+@item Automatic port forwarding with UPnP
+@end itemize\n")
+      (license license:gpl3+))))
diff --git a/gnu/packages/graphviz.scm b/gnu/packages/graphviz.scm
index 0f2afb99de..b5c4774d5c 100644
--- a/gnu/packages/graphviz.scm
+++ b/gnu/packages/graphviz.scm
@@ -8,6 +8,7 @@
 ;;; Copyright © 2018 Mathieu Lirzin <mthl@gnu.org>
 ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
+;;; Copyright © 2020 Pjotr Prins <pjotr.guix@thebird.nl>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -31,6 +32,7 @@
   #:use-module (guix download)
   #:use-module (guix git-download)
   #:use-module (guix utils)
+  #:use-module (gnu packages)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages bison)
   #:use-module (gnu packages check)
@@ -323,21 +325,34 @@ can be used either as a standalone application, or as a Python library.")
 (define-public python-pydot
   (package
     (name "python-pydot")
-    (version "1.2.4")
+    (version "1.4.1")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "pydot" version))
        (sha256
         (base32
-         "1dhy4jpp646jslh2yks6klwwbaxcs905byyny880gl1iap8y5llj"))))
+         "00az4cbf8bv447lkk9xi6pjm7gcc7ia33y4pm71fwfwis56rv76l"))
+       (patches (search-patches "python-pydot-regression-test.patch"))))
     (build-system python-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           ;; Taken from .travis.yaml
+           (lambda* (#:key tests? inputs outputs #:allow-other-keys)
+             (when tests?
+               (add-installed-pythonpath inputs outputs)
+               (with-directory-excursion "test"
+                 (invoke "python" "pydot_unittest.py")))
+             #t)))))
     (native-inputs
      ;; For tests.
-     `(("python-chardet" ,python-chardet)))
+     `(("graphviz" ,graphviz)
+       ("python-chardet" ,python-chardet)))
     (propagated-inputs
      `(("python-pyparsing" ,python-pyparsing)))
-    (home-page "https://github.com/erocarrera/pydot")
+    (home-page "https://github.com/pydot/pydot")
     (synopsis "Python interface to Graphviz's DOT language")
     (description
      "Pydot provides an interface to create, handle, modify and process
diff --git a/gnu/packages/groff.scm b/gnu/packages/groff.scm
index 222b4cb6dc..0803a2a7f5 100644
--- a/gnu/packages/groff.scm
+++ b/gnu/packages/groff.scm
@@ -3,10 +3,11 @@
 ;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2017 Ludovic Courtès <ludo@gnu.org>
-;;; Copyright © 2019 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2019 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
 ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
+;;; Copyright © 2020 Prafulla Giri <pratheblackdiamond@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -30,7 +31,9 @@
   #:use-module (guix download)
   #:use-module (guix git-download)
   #:use-module (guix build-system gnu)
+  #:use-module (guix build-system ruby)
   #:use-module (gnu packages)
+  #:use-module (gnu packages ruby)
   #:use-module (gnu packages bison)
   #:use-module (gnu packages ghostscript)
   #:use-module (gnu packages netpbm)
@@ -188,17 +191,21 @@ is usually the formatter of \"man\" documentation pages.")
       (build-system gnu-build-system)
       (arguments
        `(#:test-target "test"
-         #:make-flags
-         (list (string-append "INSTALLDIR="
-                              (assoc-ref %outputs "out") "/bin"))
          #:phases
          (modify-phases %standard-phases
            (delete 'configure)
-           (add-before 'install 'pre-install
+           (replace 'install
              (lambda* (#:key outputs #:allow-other-keys)
-               (mkdir-p (string-append (assoc-ref outputs "out")
-                                       "/bin"))
-               #t)))))
+               (let ((out (assoc-ref outputs "out")))
+                 (install-file "roffit" (string-append out "/bin"))
+                 (install-file "roffit.1" (string-append out "/share/man/man1"))
+                 #t)))
+           (add-after 'install 'wrap-program
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let ((out (assoc-ref outputs "out")))
+                 (wrap-program (string-append out "/bin/roffit")
+                   `("PERL5LIB" ":" prefix (,(getenv "PERL5LIB"))))
+                 #t))))))
       (native-inputs `(("html-tree" ,perl-html-tree))) ; for test
       (inputs
        `(("perl" ,perl)))
@@ -208,3 +215,49 @@ is usually the formatter of \"man\" documentation pages.")
        "Roffit is a program that reads an nroff file and outputs an HTML file.
 It is typically used to display man pages on a web site.")
       (license expat))))
+
+(define-public ronn-ng
+  (package
+    (name "ronn-ng")
+    (version "0.9.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (rubygems-uri "ronn-ng" version))
+       (sha256
+        (base32
+         "1slxfg57cabmh98fw507z4ka6lwq1pvbrqwppflxw6700pi8ykfh"))))
+    (build-system ruby-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'extract-gemspec 'fix-gemspec-mustache
+           (lambda _
+             (substitute* "ronn-ng.gemspec"
+               (("(<mustache>.freeze.*~>).*(\".*$)" all start end)
+                (string-append start " 1.0" end)))
+             #t))
+         (add-after 'wrap 'wrap-program
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((prog (string-append (assoc-ref %outputs "out") "/bin/ronn")))
+               (wrap-program prog
+                 `("PATH" ":" suffix ,(map
+                                       (lambda (exp_inpt)
+                                         (string-append
+                                          (assoc-ref %build-inputs exp_inpt)
+                                          "/bin"))
+                                       '("ruby-kramdown"
+                                         "ruby-mustache"
+                                         "ruby-nokogiri")))))
+             #t)))))
+    (inputs
+     `(("ruby-kramdown" ,ruby-kramdown)
+       ("ruby-mustache" ,ruby-mustache)
+       ("ruby-nokogiri" ,ruby-nokogiri)))
+    (synopsis
+     "Build manuals in HTML and Unix man page format from Markdown")
+    (description
+     "Ronn-NG is an updated fork of ronn.  It builds manuals in HTML and Unix
+man page format from Markdown.")
+    (home-page "https://github.com/apjanke/ronn-ng")
+    (license expat)))
diff --git a/gnu/packages/groovy.scm b/gnu/packages/groovy.scm
index e21c4e3775..c44a17b59e 100644
--- a/gnu/packages/groovy.scm
+++ b/gnu/packages/groovy.scm
@@ -31,7 +31,7 @@
 (define java-groovy-bootstrap
   (package
     (name "java-groovy-bootstrap")
-    (version "2.4.15")
+    (version "3.0.5")
     (source
      (origin
        (method git-fetch)
@@ -43,57 +43,69 @@
                                   version)))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1q4cplimr18j93zz92kgq8b6wdv0p9svr7cdr47q8b2mbjpd0x3j"))
+        (base32 "00556qxjmcn3a3xhfy6n0zw3d69mnw72vzm2rb6n4ihzkk7579nm"))
        (patches
         (search-patches "groovy-add-exceptionutilsgenerator.patch"))))
     (build-system ant-build-system)
     (arguments
      `(#:jar-name "groovy.jar"
-       #:source-dir "src/main:subprojects/groovy-test/src/main/java"
+       #:source-dir "src/main/java:src/main/antlr2:subprojects/parser-antlr4/src/main/java:src/antlr"
        #:test-dir "src/test"
        #:tests? #f
-       #:jdk ,icedtea-8
+       #:jdk ,openjdk9
        #:main-class "groovy.ui.GroovyMain"
        #:phases
        (modify-phases %standard-phases
-         (add-before 'build 'fix-java8
-           ;; Fix "Reference to plus is ambiguous"
-           (lambda _
-             (substitute* "src/main/org/codehaus/groovy/runtime/DefaultGroovyMethods.java"
-               (("toList\\(left\\)")
-                "(List<T>)toList(left)"))
-             #t))
          (add-before 'build 'generate-parsers
            (lambda _
-             (with-directory-excursion "src/main/org/codehaus/groovy/antlr/java"
+             (with-directory-excursion "src/main/antlr2/org/codehaus/groovy/antlr/java"
                (invoke "antlr" "java.g"))
-             (with-directory-excursion "src/main/org/codehaus/groovy/antlr"
+             (with-directory-excursion "src/main/antlr2/org/codehaus/groovy/antlr"
                (mkdir "parser")
                (with-directory-excursion "parser"
                  (invoke "antlr" "../groovy.g")))
+             (invoke "antlr4" "-lib" "src/antlr"
+                     "-package" "org.apache.groovy.parser.antlr4"
+                     "-visitor" "-no-listener" "src/antlr/GroovyLexer.g4")
+             (invoke "antlr4" "-lib" "src/antlr"
+                     "-package" "org.apache.groovy.parser.antlr4"
+                     "-visitor" "-no-listener" "src/antlr/GroovyParser.g4")
              #t))
          (add-before 'build 'generate-exception-utils
            (lambda _
              (invoke "javac" "-cp" (getenv "CLASSPATH")
+                     "-source" "1.8" "-target" "1.8"
                      "config/ant/src/org/codehaus/groovy/ExceptionUtilsGenerator.java")
              (invoke "java" "-cp" (string-append (getenv "CLASSPATH")
                                                  ":config/ant/src")
                      "org.codehaus.groovy.ExceptionUtilsGenerator"
                      "build/classes/org/codehaus/groovy/runtime/ExceptionUtils.class")
+             #t))
+         (add-before 'build 'set-source-level
+           (lambda _
+             (substitute* "build.xml"
+               (("<javac") "<javac source=\"1.8\" target=\"1.8\""))
              #t)))))
     (native-inputs
-     `(("java-junit" ,java-junit)
+     `(("antlr2" ,antlr2)
+       ("antlr4" ,java-tunnelvisionlabs-antlr4)
+       ("java-jsr305" ,java-jsr305)
+       ("java-junit" ,java-junit)
        ("java-hamcrest-core" ,java-hamcrest-core)
-       ("antlr2" ,antlr2)
        ("java-jmock-1" ,java-jmock-1)
        ("java-xmlunit-legacy" ,java-xmlunit-legacy)))
     (inputs
-     `(("java-commons-cli" ,java-commons-cli)
-       ("java-asm" ,java-asm)
+     `(("java-antlr4-runtime" ,java-tunnelvisionlabs-antlr4-runtime)
+       ("java-antlr4-runtime-annotations"
+        ,java-tunnelvisionlabs-antlr4-runtime-annotations)
+       ("java-asm" ,java-asm-8)
+       ("java-asm-util" ,java-asm-util-8)
        ("java-classpathx-servletapi" ,java-classpathx-servletapi)
-       ("java-xstream" ,java-xstream)
+       ("java-commons-cli" ,java-commons-cli)
        ("java-jansi" ,java-jansi)
-       ("java-jline-2" ,java-jline-2)))
+       ("java-jline-2" ,java-jline-2)
+       ("java-picocli" ,java-picocli)
+       ("java-xstream" ,java-xstream)))
     (home-page "http://groovy-lang.org/")
     (synopsis "Groovy's java bootstrap")
     (description "This package contains the java bootstrap that is used to build
@@ -106,26 +118,25 @@ groovy submodules.")
     (name "groovy-bootstrap")
     (arguments
      `(#:jar-name "groovy.jar"
-       #:jdk ,icedtea-8
+       #:jdk ,openjdk9
        ;Requires groovy-xml and logback-classic which are circular dependencies
        #:tests? #f
        #:phases
        (modify-phases %standard-phases
-         (add-before 'build 'fix-java8
-           ;; Fix "Reference to plus is ambiguous"
-           (lambda _
-             (substitute* "src/main/org/codehaus/groovy/runtime/DefaultGroovyMethods.java"
-               (("toList\\(left\\)")
-                "(List<T>)toList(left)"))
-             #t))
          (add-before 'build 'generate-parser
            (lambda _
-             (with-directory-excursion "src/main/org/codehaus/groovy/antlr/java"
+             (with-directory-excursion "src/main/antlr2/org/codehaus/groovy/antlr/java"
                (invoke "antlr" "java.g"))
-             (with-directory-excursion "src/main/org/codehaus/groovy/antlr"
+             (with-directory-excursion "src/main/antlr2/org/codehaus/groovy/antlr"
                (mkdir "parser")
                (with-directory-excursion "parser"
                  (invoke "antlr" "../groovy.g")))
+             (invoke "antlr4" "-lib" "src/antlr"
+                     "-package" "org.apache.groovy.parser.antlr4"
+                     "-visitor" "-no-listener" "src/antlr/GroovyLexer.g4")
+             (invoke "antlr4" "-lib" "src/antlr"
+                     "-package" "org.apache.groovy.parser.antlr4"
+                     "-visitor" "-no-listener" "src/antlr/GroovyParser.g4")
              #t))
          (add-before 'build 'generate-exception-utils
            (lambda _
@@ -141,19 +152,19 @@ groovy submodules.")
              (mkdir-p "target/classes/org/codehaus/groovy/runtime")
              (mkdir-p "target/classes/META-INF")
              (invoke "javac" "-cp" (getenv "CLASSPATH")
-                     "src/main/org/codehaus/groovy/tools/DgmConverter.java")
+                     "src/main/java/org/codehaus/groovy/tools/DgmConverter.java")
              (invoke "java" "-cp" (string-append (getenv "CLASSPATH")
-                                                 ":src/main")
+                                                 ":src/main/java")
                      "org.codehaus.groovy.tools.DgmConverter")
              #t))
          (add-before 'build 'copy-resources
            (lambda _
-             (with-directory-excursion "src/main"
+             (with-directory-excursion "src/main/java"
                (for-each (lambda (file)
-                           (mkdir-p (string-append "../../target/classes/"
+                           (mkdir-p (string-append "../../../target/classes/"
                                                    (dirname file)))
                            (copy-file file
-                                      (string-append "../../target/classes/"
+                                      (string-append "../../../target/classes/"
                                                      file)))
                   (find-files "." ".*.(txt|properties|xml|html)")))
              #t))
@@ -162,6 +173,7 @@ groovy submodules.")
              (mkdir-p "build/jar")
              (apply invoke "java" "-cp" (getenv "CLASSPATH")
                            "org.codehaus.groovy.tools.FileSystemCompiler"
+                           "-cp" (getenv "CLASSPATH")
                            "-d" "target/classes"
                            "-j"; joint compilation
                            (find-files "src/main"
@@ -186,7 +198,7 @@ is used to build the groovy submodules written in groovy.")))
     (name "groovy-tests-bootstrap")
     (arguments
      `(#:jar-name "groovy-tests-bootstrap.jar"
-       #:jdk ,icedtea-8
+       #:jdk ,openjdk9
        #:tests? #f; no tests
        #:phases
        (modify-phases %standard-phases
@@ -196,17 +208,20 @@ is used to build the groovy submodules written in groovy.")))
              (mkdir-p "build/jar")
              (apply invoke "java" "-cp" (getenv "CLASSPATH")
                     "org.codehaus.groovy.tools.FileSystemCompiler"
+                    "-cp" (getenv "CLASSPATH")
                     "-d" "build/classes"
                     "-j"; joint compilation
                     (append
                       (find-files "src/test" "TestSupport.java")
                       (find-files "src/test" "HeadlessTestSupport.java")
+                      (find-files "src/test" "AstAssert.groovy")
                       (find-files "src/test" "XmlAssert.java")))
              (invoke "jar" "-cf" "build/jar/groovy-tests-bootstrap.jar"
                      "-C" "build/classes" ".")
              #t)))))
     (inputs
      `(("groovy-test" ,groovy-test)
+       ("groovy-parser-antlr4" ,groovy-parser-antlr4)
        ,@(package-inputs groovy-bootstrap)))
     (native-inputs
      `(("groovy-bootstrap" ,groovy-bootstrap)
@@ -215,14 +230,15 @@ is used to build the groovy submodules written in groovy.")))
     (description "This package contains three classes required for testing
 other groovy submodules.")))
 
-(define groovy-test
+(define (groovy-subproject name)
   (package
     (inherit groovy-bootstrap)
-    (name "groovy-test")
+    (name name)
     (arguments
-     `(#:jar-name "groovy-test.jar"
-       #:jdk ,icedtea-8
-       #:test-dir "subprojects/groovy-test/src/test"
+     `(#:jar-name ,(string-append name ".jar")
+       #:test-dir ,(string-append name "/src/test")
+       #:test-include (list "**/*Test.java" "**/*.groovy")
+       #:jdk ,openjdk9
        #:phases
        (modify-phases %standard-phases
          (replace 'build
@@ -231,839 +247,531 @@ other groovy submodules.")))
              (mkdir-p "build/jar")
              (apply invoke "java" "-cp" (getenv "CLASSPATH")
                     "org.codehaus.groovy.tools.FileSystemCompiler"
-                    "-d" "build/classes" "-j"; joint compilation
-                    (find-files "subprojects/groovy-test/src/main"
-                                ".*\\.(groovy|java)$"))
-             (invoke "jar" "-cf" "build/jar/groovy-test.jar"
+                    "-cp" (getenv "CLASSPATH")
+                    "-d" "build/classes" "-j"
+                    (append
+                      (find-files ,(string-append "subprojects/" name "/src/main/java")
+                        ".*\\.(groovy|java)$")
+                      (find-files ,(string-append "subprojects/" name "/src/main/groovy")
+                        ".*\\.(groovy|java)$")))
+             (invoke "jar" "-cf" ,(string-append "build/jar/" name ".jar")
                      "-C" "build/classes" ".")
              #t))
-         (replace 'check
-           (lambda _
-             (mkdir-p "build/test-classes")
-             (substitute* "build.xml"
-               (("depends=\"compile-tests\"") "depends=\"\"")
-               (("}/java") "}/groovy"))
-             (apply invoke "java" "-cp"
-                    (string-append (getenv "CLASSPATH") ":build/classes")
-                    "org.codehaus.groovy.tools.FileSystemCompiler"
-                    "-d" "build/test-classes" "-j"
-                    (append (find-files "subprojects/groovy-test/src/test"
-                                        ".*\\.(groovy|java)$")))
-             (invoke "ant" "check")
-             #t)))))
-    (native-inputs
-     `(("groovy-bootstrap" ,groovy-bootstrap)
-       ,@(package-native-inputs java-groovy-bootstrap)))
-    (synopsis "Groovy test submodule")
-    (description "This package contains the test submodules used to test
-other groovy submodules.")))
-
-(define groovy-xml
-  (package
-    (inherit groovy-bootstrap)
-    (name "groovy-xml")
-    (arguments
-     `(#:jar-name "groovy-xml.jar"
-       #:jdk ,icedtea-8
-       #:test-dir "src/test"
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'configure 'chdir
-           (lambda _
-             (chdir "subprojects/groovy-xml")
-             #t))
-         (replace 'build
+         (add-before 'build 'copy-resources
            (lambda _
-             (mkdir-p "build/classes")
-             (mkdir-p "build/jar")
-             (apply invoke "java" "-cp" (getenv "CLASSPATH")
-                    "org.codehaus.groovy.tools.FileSystemCompiler"
-                    "-d" "build/classes" "-j"; joint compilation
-                    (find-files "src/main" ".*\\.(groovy|java)$"))
-             (invoke "jar" "-cf" "build/jar/groovy-xml.jar"
-                     "-C" "build/classes" ".")
+             (let ((resource-dir ,(string-append "subprojects/" name
+                                                 "/src/main/resources")))
+               (when (file-exists? resource-dir)
+                 (copy-recursively resource-dir "build/classes")))
              #t))
          (replace 'check
-           (lambda _
-             (mkdir-p "build/test-classes")
-             (substitute* "build.xml"
-               (("depends=\"compile-tests\"") "depends=\"\"")
-               (("}/java") "}/groovy"))
-             (apply invoke "java" "-cp"
-                    (string-append (getenv "CLASSPATH") ":build/classes")
-                    "org.codehaus.groovy.tools.FileSystemCompiler"
-                    "-d" "build/test-classes" "-j"
-                    (append (find-files "src/test" ".*\\.(groovy|java)$")))
-             (invoke "ant" "check")
-             #t)))))
-    (native-inputs
-     `(("groovy-bootstrap" ,groovy-bootstrap)
-       ("groovy-test" ,groovy-test)
-       ("groovy-tests-bootstrap" ,groovy-tests-bootstrap)
-       ,@(package-native-inputs java-groovy-bootstrap)))
-    (synopsis "Groovy XML")
-    (description "This package contains XML-related utilities for groovy.")))
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (mkdir-p "build/test-classes")
+               (substitute* "build.xml"
+                 (("depends=\"compile-tests\"") "depends=\"\"")
+                 (("}/java") "}/"))
+               (apply invoke "java" "-cp"
+                      (string-append (getenv "CLASSPATH") ":build/classes")
+                      "org.codehaus.groovy.tools.FileSystemCompiler" "-cp"
+                      (string-append (getenv "CLASSPATH") ":build/classes")
+                      "-d" "build/test-classes" "-j"
+                      (append
+                        (find-files ,(string-append "subprojects/" name "/src/test/java")
+                                    ".*\\.(groovy|java)$")
+                        (find-files ,(string-append "subprojects/" name "/src/test/groovy")
+                                    ".*\\.(groovy|java)$")))
+               (invoke "ant" "check"))
+             #t)))))))
+
+(define groovy-parser-antlr4
+  (let ((base (groovy-subproject "parser-antlr4")))
+    (package
+      (inherit base)
+      (name "groovy-parser-antlr4")
+      (arguments
+       `(#:tests? #f
+         ,@(substitute-keyword-arguments (package-arguments base)
+            ((#:phases phases)
+             `(modify-phases ,phases
+                (add-before 'build 'generate-parser
+                  (lambda _
+                    (invoke "antlr4" "-lib" "src/antlr"
+                            "-package" "org.apache.groovy.parser.antlr4"
+                            "-visitor" "-no-listener" "src/antlr/GroovyLexer.g4")
+                    (invoke "antlr4" "-lib" "src/antlr"
+                            "-package" "org.apache.groovy.parser.antlr4"
+                            "-visitor" "-no-listener" "src/antlr/GroovyParser.g4")
+                    (for-each
+                      (lambda (file)
+                        (install-file file
+                                      "subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4"))
+                      (find-files "src/antlr" ".*.java$"))
+                    #t)))))))
+      (native-inputs
+       `(("groovy-bootstrap" ,groovy-bootstrap)
+         ,@(package-native-inputs java-groovy-bootstrap)))
+      (synopsis "Groovy antlr4 parser submodule")
+      (description "This package contains the new parser Parrot for Groovy, which
+is based on Antlr4.  The new parser can parse Groovy source code and construct
+the related AST, which is almost identical to the one generated by the old
+parser.  Currently all features of Groovy are available."))))
+
+(define groovy-test
+  (let ((base (groovy-subproject "groovy-test")))
+    (package
+      (inherit base)
+      (arguments
+        `(;#:tests? #f
+          ,@(package-arguments base)))
+      (synopsis "Groovy test submodule")
+      (description "This package contains the test submodules used to test
+other groovy submodules."))))
+
+(define groovy-xml
+  (let ((base (groovy-subproject "groovy-xml")))
+    (package
+      (inherit base)
+      (native-inputs
+       `(("groovy-test" ,groovy-test)
+         ("groovy-tests-bootstrap" ,groovy-tests-bootstrap)
+         ,@(package-native-inputs base)))
+      (inputs
+       `(("groovy-parser-antlr4" ,groovy-parser-antlr4)
+         ,@(package-inputs base)))
+      (synopsis "Groovy XML")
+      (description "This package contains XML-related utilities for groovy."))))
 
 (define groovy-templates
-  (package
-    (inherit groovy-bootstrap)
-    (name "groovy-templates")
-    (arguments
-     `(#:jar-name "groovy-templates.jar"
-       #:jdk ,icedtea-8
-       #:test-dir "subprojects/groovy-templates/src/test"
-       #:tests? #f;Requires spock-framework which is a circular dependency
-       #:phases
-       (modify-phases %standard-phases
-         (replace 'build
-           (lambda _
-             (mkdir-p "build/classes")
-             (mkdir-p "build/jar")
-             (apply invoke "java" "-cp" (getenv "CLASSPATH")
-                    "org.codehaus.groovy.tools.FileSystemCompiler"
-                    "-d" "build/classes" "-j"; joint compilation
-                    (find-files "subprojects/groovy-templates/src/main"
-                                ".*\\.(groovy|java)$"))
-             (invoke "jar" "-cf" "build/jar/groovy-templates.jar"
-                     "-C" "build/classes" ".")
-             #t)))))
-    (inputs
-     `(("groovy-xml" ,groovy-xml)
-       ,@(package-inputs groovy-bootstrap)))
-    (native-inputs
-     `(("groovy-bootstrap" ,groovy-bootstrap)
-       ("groovy-test" ,groovy-test)
-       ("groovy-tests-bootstrap" ,groovy-tests-bootstrap)
-       ,@(package-native-inputs java-groovy-bootstrap)))
-    (synopsis "Groovy template engine")
-    (description "This package contains a template framework which is
+  (let ((base (groovy-subproject "groovy-templates")))
+    (package
+      (inherit base)
+      (arguments
+       `(#:tests? #f;Requires spock-framework which is a circular dependency
+         ,@(substitute-keyword-arguments (package-arguments base)
+             ((#:phases phases)
+              `(modify-phases ,phases
+                 ;; These annotations are used for QA, but do not affect build output.
+                 ;; They require findbugs, which we don't have yet.
+                 (add-before 'build 'remove-annotation
+                   (lambda _
+                     (substitute* '("subprojects/groovy-templates/src/main/groovy/groovy/text/StreamingTemplateEngine.java"
+                                    "subprojects/groovy-templates/src/main/groovy/groovy/text/TemplateEngine.java")
+                       (("import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;") "")
+                       (("@SuppressFBWarnings.*") ""))
+                     #t)))))))
+      (inputs
+       `(("groovy-xml" ,groovy-xml)
+         ,@(package-inputs base)))
+      (native-inputs
+       `(("groovy-bootstrap" ,groovy-bootstrap)
+         ("groovy-test" ,groovy-test)
+         ("groovy-tests-bootstrap" ,groovy-tests-bootstrap)
+         ,@(package-native-inputs base)))
+      (synopsis "Groovy template engine")
+      (description "This package contains a template framework which is
 well-suited to applications where the text to be generated follows the form of
-a static template.")))
+a static template."))))
 
 (define groovy-groovydoc
-  (package
-    (inherit groovy-bootstrap)
-    (name "groovy-groovydoc")
-    (arguments
-     `(#:jar-name "groovy-groovydoc.jar"
-       #:jdk ,icedtea-8
-       #:test-dir "subprojects/groovy-groovydoc/src/test"
-       #:tests? #f; Requires groovy-ant which is a circular dependency
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'build 'copy-resources
-           (lambda _
-             (copy-recursively "subprojects/groovy-groovydoc/src/main/resources"
-                               "build/classes")
-             #t))
-         (replace 'build
-           (lambda _
-             (mkdir-p "build/classes")
-             (mkdir-p "build/jar")
-             (apply invoke "java" "-cp" (getenv "CLASSPATH")
-                    "org.codehaus.groovy.tools.FileSystemCompiler"
-                    "-d" "build/classes"
-                    "-j"; joint compilation
-                    (find-files "subprojects/groovy-groovydoc/src/main"
-                                ".*\\.(groovy|java)$"))
-             (invoke "jar" "-cf" "build/jar/groovy-groovydoc.jar"
-                     "-C" "build/classes" ".")
-             #t)))))
-    (inputs
-     `(("groovy-templates" ,groovy-templates)
-       ,@(package-inputs groovy-bootstrap)))
-    (native-inputs
-     `(("groovy-bootstrap" ,groovy-bootstrap)
-       ("groovy-test" ,groovy-test)
-       ("groovy-tests-bootstrap" ,groovy-tests-bootstrap)
-       ,@(package-native-inputs java-groovy-bootstrap)))
-    (synopsis "Groovy documentation generation")
-    (description "This package contains the groovy documentation generator,
-similar to javadoc.")))
+  (let ((base (groovy-subproject "groovy-groovydoc")))
+    (package
+      (inherit base)
+      (arguments
+       `(#:tests? #f; Requires groovy-ant which is a circular dependency
+         ,@(package-arguments base)))
+      (inputs
+       `(("groovy-templates" ,groovy-templates)
+         ("groovy-parser-antlr4" ,groovy-parser-antlr4)
+         ("java-javaparser" ,java-javaparser)
+         ,@(package-inputs groovy-bootstrap)))
+      (native-inputs
+       `(("groovy-bootstrap" ,groovy-bootstrap)
+         ("groovy-test" ,groovy-test)
+         ("groovy-tests-bootstrap" ,groovy-tests-bootstrap)
+         ,@(package-native-inputs java-groovy-bootstrap)))
+      (synopsis "Groovy documentation generation")
+      (description "This package contains the groovy documentation generator,
+similar to javadoc."))))
 
 (define groovy-ant
-  (package
-    (inherit groovy-bootstrap)
-    (name "groovy-ant")
-    (arguments
-     `(#:jar-name "groovy-ant.jar"
-       #:jdk ,icedtea-8
-       #:test-dir "src/test"
-       ;; FIXME: Excluding all tests because they fail
-       #:test-exclude (list
-                        "**/GroovyTest.java"
-                        "**/GroovycTest.java")
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'configure 'chdir
-           (lambda _
-             (chdir "subprojects/groovy-ant")
-             #t))
-         (add-before 'build 'copy-resources
-           (lambda _
-             (copy-recursively "src/main/resources" "build/classes")
-             #t))
-         (replace 'build
-           (lambda _
-             (mkdir-p "build/classes")
-             (mkdir-p "build/jar")
-             (apply invoke "java" "-cp" (getenv "CLASSPATH")
-                    "org.codehaus.groovy.tools.FileSystemCompiler"
-                    "-d" "build/classes" "-j"; joint compilation
-                    (find-files "src/main" ".*\\.(groovy|java)$"))
-             (invoke "jar" "-cf" "build/jar/groovy-ant.jar"
-                     "-C" "build/classes" ".")
-             #t))
-         (replace 'check
-           (lambda _
-             (mkdir-p "build/test-classes")
-             (substitute* "build.xml"
-               (("depends=\"compile-tests\"") "depends=\"\"")
-               (("}/java") "}/groovy"))
-             (apply invoke "java" "-cp"
-                    (string-append (getenv "CLASSPATH") ":build/classes")
-                    "org.codehaus.groovy.tools.FileSystemCompiler"
-                    "-d" "build/test-classes" "-j"
-                    (find-files "src/test" ".*\\.(groovy|java)$"))
-             (invoke "ant" "check")
-             #t)))))
-    (inputs
-     `(("groovy-groovydoc" ,groovy-groovydoc)
-       ,@(package-inputs groovy-bootstrap)))
-    (native-inputs
-     `(("groovy-bootstrap" ,groovy-bootstrap)
-       ("groovy-xml" ,groovy-xml)
-       ("groovy-test" ,groovy-test)
-       ("groovy-tests-bootstrap" ,groovy-tests-bootstrap)
-       ,@(package-native-inputs java-groovy-bootstrap)))
-    (synopsis "Groovy ant tasks")
-    (description "This package contains groovy-related ant tasks definitions.")))
+  (let ((base (groovy-subproject "groovy-ant")))
+    (package
+      (inherit base)
+      (arguments
+       `(;#:tests? #f;Requires spock-framework which is a circular dependency
+         #:ant ,ant/java8; ant is actually a dependency of this package, and we need 1.10
+         ,@(substitute-keyword-arguments (package-arguments base)
+             ((#:phases phases)
+              `(modify-phases ,phases
+                 ;; These annotations are used for QA, but do not affect build output.
+                 ;; They require findbugs, which we don't have yet.
+                 (add-before 'build 'remove-annotation
+                   (lambda _
+                     (substitute* (find-files "subprojects/groovy-ant"
+                                              ".*.java$")
+                       (("import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;") "")
+                       (("@SuppressFBWarnings.*") ""))
+                     #t)))))))
+      (inputs
+       `(("groovy-groovydoc" ,groovy-groovydoc)
+         ("java-asm-tree" ,java-asm-tree-8)
+         ("java-asm-analysis" ,java-asm-analysis-8)
+         ,@(package-inputs base)))
+      (native-inputs
+       `(("ant-junit" ,ant-junit)
+         ("groovy-bootstrap" ,groovy-bootstrap)
+         ("groovy-xml" ,groovy-xml)
+         ("groovy-test" ,groovy-test)
+         ("groovy-tests-bootstrap" ,groovy-tests-bootstrap)
+         ,@(package-native-inputs base)))
+      (synopsis "Groovy ant tasks")
+      (description "This package contains groovy-related ant tasks definitions."))))
+
+(define groovy-astbuilder
+  (let ((base (groovy-subproject "groovy-astbuilder")))
+    (package
+      (inherit base)
+      (arguments
+       (substitute-keyword-arguments (package-arguments base)
+         ((#:phases phases)
+          `(modify-phases ,phases
+             (delete 'copy-resources)
+             (add-after 'build 'copy-resources
+               (lambda _
+                 (copy-recursively
+                   "subprojects/groovy-astbuilder/src/main/resources"
+                   "build/classes")
+                 (substitute* "build.xml"
+                   (("depends=\"compile,") "depends=\""))
+                 (invoke "ant" "jar")
+                 #t))))))
+      (inputs
+       `(("groovy-bootstrap" ,groovy-bootstrap)
+         ,@(package-inputs base)))
+      (native-inputs
+       `(("groovy-test" ,groovy-test)
+         ("groovy-tests-bootstrap" ,groovy-tests-bootstrap)
+         ,@(package-native-inputs base)))
+      (synopsis "Transformation to capture ASTBuilder from code statements")
+      (description "This package contains an AST transformation for use with
+ASTBuilder when building \"from string\" Groovy statements."))))
 
 (define groovy-bsf
-  (package
-    (inherit groovy-bootstrap)
-    (name "groovy-bsf")
-    (arguments
-     `(#:jar-name "groovy-bsf.jar"
-       #:jdk ,icedtea-8
-       #:test-dir "src/test"
-       #:test-exclude (list
+  (let ((base (groovy-subproject "groovy-bsf")))
+    (package
+      (inherit base)
+      (arguments
+       `(#:test-exclude (list
 ;; exception from Groovy: org.codehaus.groovy.runtime.InvokerInvocationException:
 ;; groovy.lang.MissingMethodException: No signature of method:
 ;; java.util.ArrayList.each() is applicable for argument types:
 ;; (groovy.script.MapFromList$_doit_closure1) values:
 ;; [groovy.script.MapFromList$_doit_closure1@17e554d5]
                         "**/BSFTest.java")
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'configure 'chdir
-           (lambda _
-             (chdir "subprojects/groovy-bsf")
-             #t))
-         (replace 'build
-           (lambda _
-             (mkdir-p "build/classes")
-             (mkdir-p "build/jar")
-             (apply invoke "java" "-cp" (getenv "CLASSPATH")
-                    "org.codehaus.groovy.tools.FileSystemCompiler"
-                    "-d" "build/classes" "-j"; joint compilation
-                    (find-files "src/main" ".*\\.(groovy|java)$"))
-             (invoke "jar" "-cf" "build/jar/groovy-bsf.jar"
-                     "-C" "build/classes" ".")
-             #t))
-         (replace 'check
-           (lambda _
-             (mkdir-p "build/test-classes")
-             (substitute* "build.xml"
-               (("depends=\"compile-tests\"") "depends=\"\""))
-             (apply invoke "java" "-cp"
-                    (string-append (getenv "CLASSPATH") ":build/classes")
-                    "org.codehaus.groovy.tools.FileSystemCompiler"
-                    "-d" "build/test-classes" "-j"
-                    (find-files "src/test" ".*\\.(groovy|java)$"))
-             (invoke "ant" "check")
-             #t)))))
-    (inputs
-     `(("java-commons-bsf" ,java-commons-bsf)
-       ,@(package-inputs groovy-bootstrap)))
-    (native-inputs
-     `(("groovy-bootstrap" ,groovy-bootstrap)
-       ("groovy-test" ,groovy-test)
-       ("groovy-tests-bootstrap" ,groovy-tests-bootstrap)
-       ("java-commons-logging-minimal" ,java-commons-logging-minimal)
-       ,@(package-native-inputs java-groovy-bootstrap)))
-    (synopsis "Groovy BSF engine")
-    (description "This package defines the BSF engine for using Groovy inside
-any @dfn{Bean Scripting Framework} (BSF) application.")))
+         ,@(package-arguments base)))
+      (inputs
+       `(("java-commons-bsf" ,java-commons-bsf)
+         ,@(package-inputs base)))
+      (native-inputs
+       `(("groovy-bootstrap" ,groovy-bootstrap)
+         ("groovy-test" ,groovy-test)
+         ("groovy-tests-bootstrap" ,groovy-tests-bootstrap)
+         ("java-commons-logging-minimal" ,java-commons-logging-minimal)
+         ,@(package-native-inputs base)))
+      (synopsis "Groovy BSF engine")
+      (description "This package defines the BSF engine for using Groovy inside
+any @dfn{Bean Scripting Framework} (BSF) application."))))
+
+(define groovy-cli-commons
+  (let ((base (groovy-subproject "groovy-cli-commons")))
+    (package
+      (inherit base)
+      (inputs
+       `(("groovy-bootstrap" ,groovy-bootstrap)
+         ,@(package-inputs base)))
+      (native-inputs
+       `(("groovy-test" ,groovy-test)
+         ,@(package-native-inputs base)))
+      (synopsis "Groovy CLI common classes")
+      (description "This package defines common classes for dealing with
+command-line arguments in Groovy."))))
+
+(define groovy-cli-picocli
+  (let ((base (groovy-subproject "groovy-cli-picocli")))
+    (package
+      (inherit base)
+      (inputs
+       `(("groovy-bootstrap" ,groovy-bootstrap)
+         ("java-picocli" ,java-picocli)
+         ,@(package-inputs base)))
+      (native-inputs
+       `(("groovy-test" ,groovy-test)
+         ,@(package-native-inputs base)))
+      (synopsis "Groovy CLI classes that use picocli")
+      (description "This package defines classes for dealing with command-line
+arguments in Groovy using the picocli library."))))
 
 (define groovy-swing
-  (package
-    (inherit groovy-bootstrap)
-    (name "groovy-swing")
-    (arguments
-     `(#:jar-name "groovy-swing.jar"
-       #:jdk ,icedtea-8
-       ;; FIXME: tests are not run
-       #:test-dir "src/test"
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'configure 'chdir
-           (lambda _
-             (chdir "subprojects/groovy-swing")
-             #t))
-         (replace 'build
-           (lambda _
-             (mkdir-p "build/classes")
-             (mkdir-p "build/jar")
-             (apply invoke "java" "-cp" (getenv "CLASSPATH")
-                    "org.codehaus.groovy.tools.FileSystemCompiler"
-                    "-d" "build/classes" "-j"; joint compilation
-                    (find-files "src/main" ".*\\.(groovy|java)$"))
-             (invoke "jar" "-cf" "build/jar/groovy-swing.jar"
-                     "-C" "build/classes" ".")
-             #t))
-         (replace 'check
-           (lambda _
-             (mkdir-p "build/test-classes")
-             (substitute* "src/test/groovy/groovy/util/GroovySwingTestCase.groovy"
-               (("HeadlessTestSupport.headless") "isHeadless()"))
-             (substitute* "build.xml"
-               (("depends=\"compile-tests\"") "depends=\"\"")
-               (("}/java") "}/groovy"))
-             (apply invoke "java" "-cp"
-                    (string-append (getenv "CLASSPATH") ":build/classes")
-                    "org.codehaus.groovy.tools.FileSystemCompiler"
-                    "-d" "build/test-classes" "-j"
-                    (find-files "src/test" ".*\\.(groovy|java)$"))
-             (invoke "ant" "check")
-             #t)))))
-    (native-inputs
-     `(("groovy-bootstrap" ,groovy-bootstrap)
-       ("groovy-test" ,groovy-test)
-       ("groovy-tests-bootstrap" ,groovy-tests-bootstrap)
-       ("java-commons-logging-minimal" ,java-commons-logging-minimal)
-       ,@(package-native-inputs java-groovy-bootstrap)))
-    (synopsis "Groovy graphical library")
-    (description "This package contains the groovy bindings to Java Swing, a
-library used to build graphical interfaces.")))
+  (let ((base (groovy-subproject "groovy-swing")))
+    (package
+      (inherit base)
+      (arguments
+       (substitute-keyword-arguments (package-arguments base)
+         ((#:phases phases)
+          `(modify-phases ,phases
+             (add-before 'check 'fix-test
+               (lambda _
+                 (substitute*
+                   "subprojects/groovy-swing/src/test/groovy/groovy/swing/GroovySwingTestCase.groovy"
+                   (("HeadlessTestSupport.headless") "isHeadless()"))
+                 #t))))))
+      (native-inputs
+       `(("groovy-bootstrap" ,groovy-bootstrap)
+         ("groovy-test" ,groovy-test)
+         ("groovy-tests-bootstrap" ,groovy-tests-bootstrap)
+         ("java-commons-logging-minimal" ,java-commons-logging-minimal)
+         ,@(package-native-inputs base)))
+      (synopsis "Groovy graphical library")
+      (description "This package contains the groovy bindings to Java Swing, a
+library used to build graphical interfaces."))))
 
 (define groovy-console
-  (package
-    (inherit groovy-bootstrap)
-    (name "groovy-console")
-    (arguments
-     `(#:jar-name "groovy-console.jar"
-       #:jdk ,icedtea-8
-       ;; FIXME: tests are not run
-       #:test-dir "src/test"
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'configure 'chdir
-           (lambda _
-             (chdir "subprojects/groovy-console")
-             #t))
-         (add-before 'build 'copy-resources
-           (lambda _
-             (copy-recursively "src/main/resources" "build/classes")
-             #t))
-         (replace 'build
-           (lambda _
-             (mkdir-p "build/classes")
-             (mkdir-p "build/jar")
-             (apply invoke "java" "-cp" (getenv "CLASSPATH")
-                    "org.codehaus.groovy.tools.FileSystemCompiler"
-                    "-d" "build/classes" "-j"; joint compilation
-                    (find-files "src/main" ".*\\.(groovy|java)$"))
-             (invoke "jar" "-cf" "build/jar/groovy-console.jar"
-                     "-C" "build/classes" ".")
-             #t))
-         (replace 'check
-           (lambda _
-             (mkdir-p "build/test-classes")
-             (substitute* "build.xml"
-               (("depends=\"compile-tests\"") "depends=\"\"")
-               (("}/java") "}/groovy"))
-             (substitute*
-               "../groovy-swing/src/test/groovy/groovy/util/GroovySwingTestCase.groovy"
-               (("HeadlessTestSupport.headless") "isHeadless()"))
-             (apply invoke "java" "-cp"
-                    (string-append (getenv "CLASSPATH") ":build/classes")
-                    "org.codehaus.groovy.tools.FileSystemCompiler"
-                    "-d" "build/test-classes" "-j"
-                    (append
-                      (find-files "../groovy-swing/src/test" ".*\\.(groovy|java)$")
-                      (find-files "src/test" ".*\\.(groovy|java)$")))
-             (invoke "ant" "check")
-             #t)))))
-    (inputs
-     `(("groovy-swing" ,groovy-swing)
-       ("groovy-templates" ,groovy-templates)
-       ,@(package-inputs groovy-bootstrap)))
-    (native-inputs
-     `(("groovy-bootstrap" ,groovy-bootstrap)
-       ("groovy-test" ,groovy-test)
-       ("groovy-tests-bootstrap" ,groovy-tests-bootstrap)
-       ("java-commons-logging-minimal" ,java-commons-logging-minimal)
-       ,@(package-native-inputs java-groovy-bootstrap)))
-    (synopsis "Groovy graphical interface")
-    (description "This package contains a graphical interface to run groovy.")))
+  (let ((base (groovy-subproject "groovy-console")))
+    (package
+      (inherit base)
+      (arguments
+         (substitute-keyword-arguments (package-arguments base)
+           ((#:phases phases)
+            `(modify-phases ,phases
+               (add-before 'check 'build-swing
+                 (lambda _
+                   (substitute*
+                     "subprojects/groovy-swing/src/test/groovy/groovy/swing/GroovySwingTestCase.groovy"
+                     (("HeadlessTestSupport.headless") "isHeadless()"))
+                   (mkdir-p "build/test-classes")
+                   (apply invoke "java" "-cp"
+                          (string-append (getenv "CLASSPATH") ":build/classes")
+                          "org.codehaus.groovy.tools.FileSystemCompiler" "-cp"
+                          (string-append (getenv "CLASSPATH") ":build/classes")
+                          "-d" "build/test-classes" "-j"
+                          (append
+                            (find-files "subprojects/groovy-swing/src/test/java"
+                                        ".*\\.(groovy|java)$")
+                            (find-files "subprojects/groovy-swing/src/test/groovy"
+                                        ".*\\.(groovy|java)$")))
+                   #t))))))
+      (inputs
+       `(("groovy-swing" ,groovy-swing)
+         ("groovy-templates" ,groovy-templates)
+         ,@(package-inputs base)))
+      (native-inputs
+       `(("groovy-bootstrap" ,groovy-bootstrap)
+         ("groovy-test" ,groovy-test)
+         ("groovy-tests-bootstrap" ,groovy-tests-bootstrap)
+         ("java-commons-logging-minimal" ,java-commons-logging-minimal)
+         ,@(package-native-inputs base)))
+      (synopsis "Groovy graphical interface")
+      (description "This package contains a graphical interface to run groovy."))))
+
+(define groovy-datetime
+  (let ((base (groovy-subproject "groovy-datetime")))
+    (package
+      (inherit base)
+      (native-inputs
+       `(("groovy-test" ,groovy-test)
+         ,@(package-native-inputs base)))
+      (synopsis "Date/Time API for Groovy")
+      (description "This package defines new Groovy methods which appear on
+normal JDK Date/Time API (@code{java.time}) classes inside the Groovy
+environment."))))
+
+(define groovy-dateutil
+  (let ((base (groovy-subproject "groovy-dateutil")))
+    (package
+      (inherit base)
+      (native-inputs
+       `(("groovy-test" ,groovy-test)
+         ,@(package-native-inputs base)))
+      (synopsis "Date and Calendar API for Groovy")
+      (description "This package defines new groovy methods which appear on
+normal JDK Date and Calendar classes inside the Groovy environment."))))
 
 (define groovy-docgenerator
-  (package
-    (inherit groovy-bootstrap)
-    (name "groovy-docgenerator")
-    (arguments
-     `(#:jar-name "groovy-docgenerator.jar"
-       #:jdk ,icedtea-8
-       #:tests? #f; No tests
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'configure 'chdir
-           (lambda _
-             (chdir "subprojects/groovy-docgenerator")
-             #t))
-         (add-before 'build 'copy-resources
-           (lambda _
-             (copy-recursively "src/main/resources" "build/classes")
-             #t))
-         (replace 'build
-           (lambda _
-             (mkdir-p "build/classes")
-             (mkdir-p "build/jar")
-             (apply invoke "java" "-cp" (getenv "CLASSPATH")
-                    "org.codehaus.groovy.tools.FileSystemCompiler"
-                    "-d" "build/classes" "-j"; joint compilation
-                    (find-files "src/main" ".*\\.(groovy|java)$"))
-             (invoke "jar" "-cf" "build/jar/groovy-docgenerator.jar"
-                     "-C" "build/classes" ".")
-             #t)))))
-    (inputs
-     `(("groovy-templates" ,groovy-templates)
-       ("groovy-swing" ,groovy-swing)
-       ("java-qdox-1.12" ,java-qdox-1.12)
-       ,@(package-inputs groovy-bootstrap)))
-    (native-inputs
-     `(("groovy-bootstrap" ,groovy-bootstrap)
-       ("groovy-test" ,groovy-test)
-       ("groovy-tests-bootstrap" ,groovy-tests-bootstrap)
-       ,@(package-native-inputs java-groovy-bootstrap)))
-    (synopsis "Groovy documentation generation")
-    (description "This package contains a command line tool to generate
-documentation for groovy applications.")))
+  (let ((base (groovy-subproject "groovy-docgenerator")))
+    (package
+      (inherit base)
+      (arguments
+       `(#:tests? #f; No tests
+         ,@(package-arguments base)))
+      (inputs
+       `(("groovy-templates" ,groovy-templates)
+         ("groovy-swing" ,groovy-swing)
+         ("java-qdox-1.12" ,java-qdox-1.12)
+         ,@(package-inputs base)))
+      (native-inputs
+       `(("groovy-bootstrap" ,groovy-bootstrap)
+         ("groovy-test" ,groovy-test)
+         ("groovy-tests-bootstrap" ,groovy-tests-bootstrap)
+         ,@(package-native-inputs base)))
+      (synopsis "Groovy documentation generation")
+      (description "This package contains a command line tool to generate
+documentation for groovy applications."))))
 
 (define groovy-groovysh
-  (package
-    (inherit groovy-bootstrap)
-    (name "groovy-groovysh")
-    (arguments
-     `(#:jar-name "groovy-groovysh.jar"
-       #:test-dir "src/test"
-       #:jdk ,icedtea-8
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'configure 'chdir
-           (lambda _
-             (chdir "subprojects/groovy-groovysh")
-             #t))
-         (add-before 'build 'copy-resources
-           (lambda _
-             (copy-recursively "src/main/resources" "build/classes")
-             #t))
-         (replace 'build
-           (lambda _
-             (mkdir-p "build/classes")
-             (mkdir-p "build/jar")
-             (apply invoke "java" "-cp" (getenv "CLASSPATH")
-                    "org.codehaus.groovy.tools.FileSystemCompiler"
-                    "-d" "build/classes" "-j"; joint compilation
-                    (find-files "src/main" ".*\\.(groovy|java)$"))
-             (invoke "jar" "-cf" "build/jar/groovy-groovysh.jar"
-                     "-C" "build/classes" ".")
-             #t))
-         (replace 'check
-           (lambda _
-             (mkdir-p "build/test-classes")
-             (substitute* "build.xml"
-               (("depends=\"compile-tests\"") "depends=\"\"")
-               (("}/java") "}/groovy"))
-             (apply invoke "java" "-cp"
-                    (string-append (getenv "CLASSPATH") ":build/classes")
-                    "org.codehaus.groovy.tools.FileSystemCompiler"
-                    "-d" "build/test-classes" "-j"
-                    (append (find-files "src/test" ".*\\.(groovy|java)$")))
-             (invoke "ant" "check")
-             #t)))))
-    (inputs
-     `(("groovy-xml" ,groovy-xml)
-       ("groovy-console" ,groovy-console)
-       ,@(package-inputs groovy-bootstrap)))
-    (native-inputs
-     `(("groovy-bootstrap" ,groovy-bootstrap)
-       ("groovy-test" ,groovy-test)
-       ("groovy-tests-bootstrap" ,groovy-tests-bootstrap)
-       ,@(package-native-inputs java-groovy-bootstrap)))
-    (synopsis "Groovy REPL")
-    (description "This package contains the Groovy REPL.")))
+  (let ((base (groovy-subproject "groovy-groovysh")))
+    (package
+      (inherit base)
+      (inputs
+       `(("groovy-xml" ,groovy-xml)
+         ("groovy-console" ,groovy-console)
+         ,@(package-inputs base)))
+      (native-inputs
+       `(("groovy-bootstrap" ,groovy-bootstrap)
+         ("groovy-test" ,groovy-test)
+         ("groovy-tests-bootstrap" ,groovy-tests-bootstrap)
+         ,@(package-native-inputs base)))
+      (synopsis "Groovy REPL")
+      (description "This package contains the Groovy REPL."))))
 
 (define groovy-jmx
-  (package
-    (inherit groovy-bootstrap)
-    (name "groovy-jmx")
-    (arguments
-     `(#:jar-name "groovy-jmx.jar"
-       #:test-dir "src/test"
-       #:jdk ,icedtea-8
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'configure 'chdir
-           (lambda _
-             (chdir "subprojects/groovy-jmx")
-             #t))
-         (replace 'build
-           (lambda _
-             (mkdir-p "build/classes")
-             (mkdir-p "build/jar")
-             (apply invoke "java" "-cp" (getenv "CLASSPATH")
-                      "org.codehaus.groovy.tools.FileSystemCompiler"
-                      "-d" "build/classes" "-j"; joint compilation
-                      (find-files "src/main" ".*\\.(groovy|java)$"))
-             (invoke "jar" "-cf" "build/jar/groovy-jmx.jar"
-                     "-C" "build/classes" ".")
-             #t))
-         (replace 'check
-           (lambda _
-             (mkdir-p "build/test-classes")
-             (substitute* "build.xml"
-               (("depends=\"compile-tests\"") "depends=\"\"")
-               (("}/java") "}/groovy"))
-             (apply invoke "java" "-cp"
-                    (string-append (getenv "CLASSPATH") ":build/classes")
-                    "org.codehaus.groovy.tools.FileSystemCompiler"
-                    "-d" "build/test-classes" "-j"
-                    (append (find-files "src/test" ".*\\.(groovy|java)$")))
-             (invoke "ant" "check")
-             #t)))))
-    (native-inputs
-     `(("groovy-bootstrap" ,groovy-bootstrap)
-       ("groovy-test" ,groovy-test)
-       ("groovy-tests-bootstrap" ,groovy-tests-bootstrap)
-       ,@(package-native-inputs java-groovy-bootstrap)))
-    (synopsis "Groovy JMX extension")
-    (description "This package contains the JMX extension of Groovy, for
-management and monitoring of JVM-based solutions.")))
+  (let ((base (groovy-subproject "groovy-jmx")))
+    (package
+      (inherit base)
+      (native-inputs
+       `(("groovy-bootstrap" ,groovy-bootstrap)
+         ("groovy-test" ,groovy-test)
+         ("groovy-tests-bootstrap" ,groovy-tests-bootstrap)
+         ,@(package-native-inputs base)))
+      (synopsis "Groovy JMX extension")
+      (description "This package contains the JMX extension of Groovy, for
+management and monitoring of JVM-based solutions."))))
 
 (define groovy-json
-  (package
-    (inherit groovy-bootstrap)
-    (name "groovy-json")
-    (arguments
-     `(#:jar-name "groovy-json.jar"
-       #:test-dir "src/test"
-       #:jdk ,icedtea-8
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'configure 'chdir
-           (lambda _
-             (chdir "subprojects/groovy-json")
-             #t))
-         (replace 'build
-           (lambda _
-             (mkdir-p "build/classes")
-             (mkdir-p "build/jar")
-             (apply invoke "java" "-cp" (getenv "CLASSPATH")
-                      "org.codehaus.groovy.tools.FileSystemCompiler"
-                      "-d" "build/classes" "-j"; joint compilation
-                      (find-files "src/main" ".*\\.(groovy|java)$"))
-             (invoke "jar" "-cf" "build/jar/groovy-json.jar"
-                     "-C" "build/classes" ".")
-             #t))
-         (replace 'check
-           (lambda _
-             (mkdir-p "build/test-classes")
-             (substitute* "build.xml"
-               (("depends=\"compile-tests\"") "depends=\"\"")
-               (("}/java") "}/groovy"))
-             (apply invoke "java" "-cp"
-                    (string-append (getenv "CLASSPATH") ":build/classes")
-                    "org.codehaus.groovy.tools.FileSystemCompiler"
-                    "-d" "build/test-classes" "-j"
-                    (append (find-files "src/test" ".*\\.(groovy|java)$")))
-             (invoke "ant" "check")
-             #t)))))
-    (native-inputs
-     `(("groovy-bootstrap" ,groovy-bootstrap)
-       ("groovy-test" ,groovy-test)
-       ("groovy-tests-bootstrap" ,groovy-tests-bootstrap)
-       ,@(package-native-inputs java-groovy-bootstrap)))
-    (synopsis "Groovy JSON")
-    (description "This package contains JSON-related utilities for groovy.")))
+  (let ((base (groovy-subproject "groovy-json")))
+    (package
+      (inherit base)
+      (native-inputs
+       `(("groovy-bootstrap" ,groovy-bootstrap)
+         ("groovy-test" ,groovy-test)
+         ("groovy-tests-bootstrap" ,groovy-tests-bootstrap)
+         ,@(package-native-inputs base)))
+      (synopsis "Groovy JSON")
+      (description "This package contains JSON-related utilities for groovy."))))
 
 (define groovy-jsr223
-  (package
-    (inherit groovy-bootstrap)
-    (name "groovy-jsr223")
-    (arguments
-     `(#:jar-name "groovy-jsr223.jar"
-       #:test-dir "src/test"
-       #:jdk ,icedtea-8
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'configure 'chdir
-           (lambda _
-             (chdir "subprojects/groovy-jsr223")
-             #t))
-         (add-before 'build 'copy-resources
-           (lambda _
-             (copy-recursively "src/main/resources" "build/classes")
-             #t))
-         (replace 'build
-           (lambda _
-             (mkdir-p "build/classes")
-             (mkdir-p "build/jar")
-             (apply invoke "java" "-cp" (getenv "CLASSPATH")
-                      "org.codehaus.groovy.tools.FileSystemCompiler"
-                      "-d" "build/classes" "-j"; joint compilation
-                      (find-files "src/main" ".*\\.(groovy|java)$"))
-             (invoke "jar" "-cf" "build/jar/groovy-jsr223.jar"
-                     "-C" "build/classes" ".")
-             #t))
-         (replace 'check
-           (lambda _
-             (mkdir-p "build/test-classes")
-             (substitute* "build.xml"
-               (("depends=\"compile-tests\"") "depends=\"\"")
-               (("}/java") "}/groovy"))
-             (apply invoke "java" "-cp"
-                    (string-append (getenv "CLASSPATH") ":build/classes")
-                    "org.codehaus.groovy.tools.FileSystemCompiler"
-                    "-d" "build/test-classes" "-j"
-                    (append (find-files "src/test" ".*\\.(groovy|java)$")))
-             (invoke "ant" "check")
-             #t)))))
-    (native-inputs
-     `(("groovy-bootstrap" ,groovy-bootstrap)
-       ("groovy-test" ,groovy-test)
-       ("groovy-tests-bootstrap" ,groovy-tests-bootstrap)
-       ,@(package-native-inputs java-groovy-bootstrap)))
-    (synopsis "Groovy's own JSR223 implementation")
-    (description "This package contains Groovy's own JSR223 implementation.  This
-module is used for interaction between Groovy and Java code.")))
+  (let ((base (groovy-subproject "groovy-jsr223")))
+    (package
+      (inherit base)
+      (native-inputs
+       `(("groovy-bootstrap" ,groovy-bootstrap)
+         ("groovy-test" ,groovy-test)
+         ("groovy-tests-bootstrap" ,groovy-tests-bootstrap)
+         ,@(package-native-inputs base)))
+      (synopsis "Groovy's own JSR223 implementation")
+      (description "This package contains Groovy's own JSR223 implementation.  This
+module is used for interaction between Groovy and Java code."))))
 
 (define groovy-nio
-  (package
-    (inherit groovy-bootstrap)
-    (name "groovy-nio")
-    (arguments
-     `(#:jar-name "groovy-nio.jar"
-       #:test-dir "src/test"
-       #:jdk ,icedtea-8
-       #:tests? #f; Requires spock-framework
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'configure 'chdir
-           (lambda _
-             (chdir "subprojects/groovy-nio")
-             #t))
-         (replace 'build
-           (lambda _
-             (mkdir-p "build/classes")
-             (mkdir-p "build/jar")
-             (apply invoke "java" "-cp" (getenv "CLASSPATH")
-                    "org.codehaus.groovy.tools.FileSystemCompiler"
-                    "-d" "build/classes" "-j"; joint compilation
-                    (find-files "src/main" ".*\\.(groovy|java)$"))
-             (invoke "jar" "-cf" "build/jar/groovy-nio.jar"
-                     "-C" "build/classes" ".")
-             #t)))))
-    (native-inputs
-     `(("groovy-bootstrap" ,groovy-bootstrap)
-       ("groovy-test" ,groovy-test)
-       ("groovy-tests-bootstrap" ,groovy-tests-bootstrap)
-       ,@(package-native-inputs java-groovy-bootstrap)))
-    (synopsis "Groovy input-output library")
-    (description "This package implements an input/output library that extends
-the functionality of the common library of Java.")))
+  (let ((base (groovy-subproject "groovy-nio")))
+    (package
+      (inherit base)
+      (arguments
+       `(#:tests? #f; Require spock-framework
+         ,@(package-arguments base)))
+      (synopsis "Groovy input-output library")
+      (description "This package implements an input/output library that extends
+the functionality of the common library of Java."))))
 
 (define groovy-servlet
-  (package
-    (inherit groovy-bootstrap)
-    (name "groovy-servlet")
-    (arguments
-     `(#:jar-name "groovy-servlet.jar"
-       #:test-dir "src/test"
-       #:jdk ,icedtea-8
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'configure 'chdir
-           (lambda _
-             (chdir "subprojects/groovy-servlet")
-             #t))
-         (replace 'build
-           (lambda _
-             (mkdir-p "build/classes")
-             (mkdir-p "build/jar")
-             (apply invoke "java" "-cp" (getenv "CLASSPATH")
-                    "org.codehaus.groovy.tools.FileSystemCompiler"
-                    "-d" "build/classes"
-                    "-j"; joint compilation
-                    (find-files "src/main" ".*\\.(groovy|java)$"))
-             (invoke "jar" "-cf" "build/jar/groovy-servlet.jar"
-                     "-C" "build/classes" ".")
-             #t))
-         (replace 'check
-           (lambda _
-             (mkdir-p "build/test-classes")
-             (substitute* "build.xml"
-               (("depends=\"compile-tests\"") "depends=\"\"")
-               (("}/java") "}/groovy"))
-             (apply invoke "java" "-cp"
-                    (string-append (getenv "CLASSPATH") ":build/classes")
-                    "org.codehaus.groovy.tools.FileSystemCompiler"
-                    "-d" "build/test-classes"
-                    "-j"
-                    (append (find-files "src/test" ".*\\.(groovy|java)$")))
-             (invoke "ant" "check")
-             #t)))))
-    (inputs
-     `(("groovy-templates" ,groovy-templates)
-       ("groovy-xml" ,groovy-xml)
-       ,@(package-inputs groovy-bootstrap)))
-    (native-inputs
-     `(("groovy-bootstrap" ,groovy-bootstrap)
-       ("groovy-json" ,groovy-json)
-       ("groovy-test" ,groovy-test)
-       ("groovy-tests-bootstrap" ,groovy-tests-bootstrap)
-       ,@(package-native-inputs java-groovy-bootstrap)))
-    (synopsis "Groovy's servlet implementation")
-    (description "This package contains a library to create groovlets, Groovy's
-version of Java servlets.")))
+  (let ((base (groovy-subproject "groovy-servlet")))
+    (package
+      (inherit base)
+      (inputs
+       `(("groovy-templates" ,groovy-templates)
+         ("groovy-xml" ,groovy-xml)
+         ,@(package-inputs base)))
+      (native-inputs
+       `(("groovy-bootstrap" ,groovy-bootstrap)
+         ("groovy-json" ,groovy-json)
+         ("groovy-test" ,groovy-test)
+         ("groovy-tests-bootstrap" ,groovy-tests-bootstrap)
+         ,@(package-native-inputs base)))
+      (synopsis "Groovy's servlet implementation")
+      (description "This package contains a library to create groovlets, Groovy's
+version of Java servlets."))))
 
 (define groovy-sql
-  (package
-    (inherit groovy-bootstrap)
-    (name "groovy-sql")
-    (arguments
-     `(#:jar-name "groovy-sql.jar"
-       #:test-dir "src/test"
-       #:tests? #f;TODO: Requires hsqldb
-       #:jdk ,icedtea-8
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'configure 'chdir
-           (lambda _
-             (chdir "subprojects/groovy-sql")
-             #t))
-         (replace 'build
-           (lambda _
-             (mkdir-p "build/classes")
-             (mkdir-p "build/jar")
-             (apply invoke "java" "-cp" (getenv "CLASSPATH")
-                      "org.codehaus.groovy.tools.FileSystemCompiler"
-                      "-d" "build/classes" "-j"; joint compilation
-                      (find-files "src/main"
-                                  ".*\\.(groovy|java)$"))
-             (invoke "jar" "-cf" "build/jar/groovy-sql.jar"
-                     "-C" "build/classes" ".")
-             #t)))))
-    (native-inputs
-     `(("groovy-bootstrap" ,groovy-bootstrap)
-       ("groovy-test" ,groovy-test)
-       ("groovy-tests-bootstrap" ,groovy-tests-bootstrap)
-       ,@(package-native-inputs java-groovy-bootstrap)))
-    (synopsis "Groovy SQL library")
-    (description "This package contains a facade over Java's normal JDBC APIs
-providing greatly simplified resource management and result set handling.")))
+  (let ((base (groovy-subproject "groovy-sql")))
+    (package
+      (inherit base)
+      (arguments
+       `(#:tests? #f;TODO: Requires hsqldb
+         ,@(package-arguments base)))
+      (synopsis "Groovy SQL library")
+      (description "This package contains a facade over Java's normal JDBC APIs
+providing greatly simplified resource management and result set handling."))))
 
 (define groovy-testng
-  (package
-    (inherit groovy-bootstrap)
-    (name "groovy-testng")
-    (arguments
-     `(#:jar-name "groovy-testng.jar"
-       #:tests? #f; No tests
-       #:jdk ,icedtea-8
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'configure 'chdir
-           (lambda _
-             (chdir "subprojects/groovy-testng")
-             #t))
-         (add-before 'build 'copy-resources
-           (lambda _
-             (copy-recursively "src/main/resources" "build/classes")
-             #t))
-         (replace 'build
-           (lambda _
-             (mkdir-p "build/classes")
-             (mkdir-p "build/jar")
-             (apply invoke "java" "-cp" (getenv "CLASSPATH")
-                    "org.codehaus.groovy.tools.FileSystemCompiler"
-                    "-d" "build/classes"
-                    "-j"; joint compilation
-                    (find-files "src/main" ".*\\.(groovy|java)$"))
-             (invoke "jar" "-cf" "build/jar/groovy-testng.jar"
-                     "-C" "build/classes" ".")
-             #t)))))
-    (native-inputs
-     `(("groovy-bootstrap" ,groovy-bootstrap)
-       ("groovy-test" ,groovy-test)
-       ("groovy-tests-bootstrap" ,groovy-tests-bootstrap)
-       ,@(package-native-inputs java-groovy-bootstrap)))
-    (synopsis "Groovy testing framework")
-    (description "This package contains integration code for running TestNG
-tests in Groovy.")))
+  (let ((base (groovy-subproject "groovy-testng")))
+    (package
+      (inherit base)
+      (native-inputs
+       `(("groovy-bootstrap" ,groovy-bootstrap)
+         ("groovy-test" ,groovy-test)
+         ("groovy-tests-bootstrap" ,groovy-tests-bootstrap)
+         ,@(package-native-inputs base)))
+      (synopsis "Groovy testing framework")
+      (description "This package contains integration code for running TestNG
+tests in Groovy."))))
 
 (define groovy-macro
-  (package
-    (inherit groovy-bootstrap)
-    (name "groovy-macro")
-    (arguments
-     `(#:jar-name "groovy-macro.jar"
-       #:test-dir "src/test"
-       #:jdk ,icedtea-8
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'configure 'chdir
-           (lambda _
-             (chdir "subprojects/groovy-macro")
-             #t))
-         (replace 'build
-           (lambda _
-             (mkdir-p "build/classes")
-             (mkdir-p "build/jar")
-             (apply invoke "java" "-cp" (getenv "CLASSPATH")
-                    "org.codehaus.groovy.tools.FileSystemCompiler"
-                    "-d" "build/classes" "-j"; joint compilation
-                    (find-files "src/main" ".*\\.(groovy|java)$"))
-             (invoke "jar" "-cf" "build/jar/groovy-macro.jar"
-                     "-C" "build/classes" ".")
-             #t))
-         (replace 'check
-           (lambda _
-             (mkdir-p "build/test-classes")
-             (substitute* "build.xml"
-               (("depends=\"compile-tests\"") "depends=\"\"")
-               (("}/java") "}/groovy"))
-             (apply invoke "java" "-cp"
-                   (string-append (getenv "CLASSPATH") ":build/classes")
-                   "org.codehaus.groovy.tools.FileSystemCompiler"
-                   "-d" "build/test-classes" "-j"
-                   (append (find-files "src/test" ".*\\.(groovy|java)$")))
-             (invoke "ant" "check")
-             #t)))))
-    (inputs
-     `(("groovy-templates" ,groovy-templates)
-       ("groovy-xml" ,groovy-xml)
-       ,@(package-inputs groovy-bootstrap)))
-    (native-inputs
-     `(("groovy-bootstrap" ,groovy-bootstrap)
-       ("groovy-json" ,groovy-json)
-       ("groovy-test" ,groovy-test)
-       ("groovy-tests-bootstrap" ,groovy-tests-bootstrap)
-       ,@(package-native-inputs java-groovy-bootstrap)))
-    (synopsis "Groovy macro processor")
-    (description "This package contains a high-level library to create macro
-and modify groovy's @dfn{Abstract Syntax Tree} (AST).")))
+  (let ((base (groovy-subproject "groovy-macro")))
+    (package
+      (inherit base)
+      (arguments
+       (substitute-keyword-arguments (package-arguments base)
+         ((#:phases phases)
+          `(modify-phases ,phases
+             (delete 'copy-resources)
+             (add-after 'build 'copy-resources
+               (lambda _
+                 (copy-recursively "subprojects/groovy-macro/src/main/resources"
+                                   "build/classes")
+                 (substitute* "build.xml"
+                   (("depends=\"compile,") "depends=\""))
+                 (invoke "ant" "jar")
+                 #t))))))
+      (inputs
+       `(("groovy-templates" ,groovy-templates)
+         ("groovy-xml" ,groovy-xml)
+         ,@(package-inputs base)))
+      (native-inputs
+       `(("groovy-bootstrap" ,groovy-bootstrap)
+         ("groovy-json" ,groovy-json)
+         ("groovy-test" ,groovy-test)
+         ("groovy-tests-bootstrap" ,groovy-tests-bootstrap)
+         ,@(package-native-inputs base)))
+      (synopsis "Groovy macro processor")
+      (description "This package contains a high-level library to create macro
+and modify groovy's @dfn{Abstract Syntax Tree} (AST)."))))
+
+(define groovy-yaml
+  (let ((base (groovy-subproject "groovy-yaml")))
+    (package
+      (inherit base)
+      (inputs
+       `(("groovy-json" ,groovy-json)
+         ("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-fasterxml-jackson-dataformat-yaml" ,java-fasterxml-jackson-dataformat-yaml)
+         ,@(package-inputs base)))
+      (native-inputs
+       `(("groovy-test" ,groovy-test)
+         ,@(package-native-inputs base)))
+      (synopsis "Groovy YAML")
+      (description "This package contains YAML-related utilities for groovy."))))
 
 (define-public groovy
   (package
@@ -1071,7 +779,7 @@ and modify groovy's @dfn{Abstract Syntax Tree} (AST).")))
     (name "groovy")
     (arguments
      `(#:tests? #f; No tests
-       #:jdk ,icedtea-8
+       #:jdk ,openjdk9
        #:phases
        (modify-phases %standard-phases
          (delete 'configure)
@@ -1089,7 +797,7 @@ and modify groovy's @dfn{Abstract Syntax Tree} (AST).")))
                    (("@GROOVYJAR@") "groovy.jar")
                    (("MAX_FD=\"maximum\"")
                     (string-append
-                      "MAX_FD=\"maximum\"\nJAVAHOME="
+                      "MAX_FD=\"maximum\"\nJAVA_HOME="
                       (assoc-ref inputs "jdk"))))
                  ;; Groovy uses class loading. It's not enough to put the class
                  ;; in the loader's classpath, as it causes breakages:
@@ -1105,14 +813,17 @@ and modify groovy's @dfn{Abstract Syntax Tree} (AST).")))
                        (lambda (jar)
                          (symlink jar (string-append out-lib "/" (basename jar))))
                        (find-files (assoc-ref inputs input) ".*.jar")))
-                   '("groovy-bootstrap" "groovy-ant" "groovy-bsf"
-                     "groovy-console" "groovy-docgenerator"
-                     "groovy-groovydoc" "groovy-groovysh"
-                     "groovy-jmx" "groovy-json" "groovy-jsr223"
-                     "groovy-nio" "groovy-servlet" "groovy-sql"
+                   '("groovy-bootstrap" "groovy-ant" "groovy-astbuilder"
+                     "groovy-bsf" "groovy-cli-commons" "groovy-cli-picocli"
+                     "groovy-console" "groovy-datetime" "groovy-dateutil"
+                     "groovy-docgenerator" "groovy-groovydoc" "groovy-groovysh"
+                     "groovy-jmx" "groovy-json" "groovy-jsr223" "groovy-nio"
+                     "groovy-parser-antlr4" "groovy-servlet" "groovy-sql"
                      "groovy-swing" "groovy-templates" "groovy-testng"
-                     "groovy-xml" "java-commons-cli" "java-asm"
-                     "java-classpathx-servletapi" "java-xstream"
+                     "groovy-xml" "groovy-yaml" "java-commons-cli"
+                     "java-tunnelvisionlabs-antlr4-runtime" "java-asm"
+                     "java-asm-analysis" "java-asm-tree" "java-asm-util"
+                     "java-classpathx-servletapi" "java-xstream" "java-picocli"
                      "java-jansi" "java-jline-2"))
                  ;; antlr.jar is present twice in antlr2.  Symlink doesn't like
                  ;; it, so we symlink it here.
@@ -1130,8 +841,13 @@ and modify groovy's @dfn{Abstract Syntax Tree} (AST).")))
     (inputs
      `(("groovy-bootstrap" ,groovy-bootstrap)
        ("groovy-ant" ,groovy-ant)
+       ("groovy-astbuilder" ,groovy-astbuilder)
        ("groovy-bsf" ,groovy-bsf)
+       ("groovy-cli-commons" ,groovy-cli-commons)
+       ("groovy-cli-picocli" ,groovy-cli-picocli)
        ("groovy-console" ,groovy-console)
+       ("groovy-datetime" ,groovy-datetime)
+       ("groovy-dateutil" ,groovy-dateutil)
        ("groovy-docgenerator" ,groovy-docgenerator)
        ("groovy-groovydoc" ,groovy-groovydoc)
        ("groovy-groovysh" ,groovy-groovysh)
@@ -1139,18 +855,26 @@ and modify groovy's @dfn{Abstract Syntax Tree} (AST).")))
        ("groovy-json" ,groovy-json)
        ("groovy-jsr223" ,groovy-jsr223)
        ("groovy-nio" ,groovy-nio)
+       ("groovy-parser-antlr4" ,groovy-parser-antlr4)
        ("groovy-servlet" ,groovy-servlet)
        ("groovy-sql" ,groovy-sql)
        ("groovy-swing" ,groovy-swing)
        ("groovy-templates" ,groovy-templates)
        ("groovy-testng" ,groovy-testng)
        ("groovy-xml" ,groovy-xml)
+       ("groovy-yaml" ,groovy-yaml)
+       ("java-tunnelvisionlabs-antlr4-runtime"
+        ,java-tunnelvisionlabs-antlr4-runtime)
        ("java-commons-cli" ,java-commons-cli)
-       ("java-asm" ,java-asm)
+       ("java-asm" ,java-asm-8)
+       ("java-asm-analysis" ,java-asm-analysis-8)
+       ("java-asm-tree" ,java-asm-tree-8)
+       ("java-asm-util" ,java-asm-util-8)
        ("java-classpathx-servletapi" ,java-classpathx-servletapi)
-       ("java-xstream" ,java-xstream)
+       ("java-picocli" ,java-picocli)
        ("java-jansi" ,java-jansi)
        ("java-jline-2" ,java-jline-2)
+       ("java-xstream" ,java-xstream)
        ("antlr2" ,antlr2)))
     (synopsis "Programming language for the JVM")
     (description "Apache Groovy is a powerful, optionally typed and dynamic
diff --git a/gnu/packages/gsasl.scm b/gnu/packages/gsasl.scm
index 98acc3c756..d2aba5450d 100644
--- a/gnu/packages/gsasl.scm
+++ b/gnu/packages/gsasl.scm
@@ -3,6 +3,7 @@
 ;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2017 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -78,14 +79,14 @@ the underlying security implementation.")
 (define-public gsasl
   (package
    (name "gsasl")
-   (version "1.8.1")
+   (version "1.10.0")
    (source (origin
             (method url-fetch)
             (uri (string-append "mirror://gnu/gsasl/gsasl-" version
                                 ".tar.gz"))
             (sha256
              (base32
-              "1lnqfbaajkj1r2fx1db1qgcxy69pfgbyq7xd2kpvyxhra4m1dnjd"))))
+              "1lv8fp01aq4jjia9g4vkx90zacl8rgmjhfi6f1wdwnh9ws7bvg45"))))
    (build-system gnu-build-system)
    (arguments
     `(#:configure-flags '("--with-gssapi-impl=mit"
@@ -96,6 +97,9 @@ the underlying security implementation.")
       ("libntlm" ,libntlm)
       ("mit-krb5" ,mit-krb5)
       ("zlib" ,zlib)))
+   (native-inputs
+    `(;; Needed for cross compiling.
+      ("libgcrypt" ,libgcrypt)))
    (propagated-inputs
     ;; Propagate GnuTLS because libgnutls.la reads `-lnettle', and Nettle is a
     ;; propagated input of GnuTLS.
diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm
index 69fb1d8ae4..944eba03d9 100644
--- a/gnu/packages/gstreamer.scm
+++ b/gnu/packages/gstreamer.scm
@@ -6,9 +6,10 @@
 ;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016, 2018 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
-;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; 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 Michael Rohleder <mike@rohleder.de>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -29,36 +30,55 @@
   #:use-module ((guix licenses) #:prefix license:)
   #: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 meson)
+  #:use-module (guix build-system trivial)
   #:use-module (guix utils)
   #:use-module (gnu packages)
   #:use-module (gnu packages audio)
+  #:use-module (gnu packages autotools)
+  #:use-module (gnu packages base)
   #:use-module (gnu packages bison)
   #:use-module (gnu packages cdrom)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages documentation)
+  #:use-module (gnu packages elf)
   #:use-module (gnu packages flex)
   #:use-module (gnu packages freedesktop)
+  #:use-module (gnu packages gettext)
   #:use-module (gnu packages gl)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages gnupg)
   #:use-module (gnu packages graphics)
+  #:use-module (gnu packages graphviz)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages image)
+  #: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 mp3)
   #:use-module (gnu packages ncurses)
+  #:use-module (gnu packages networking)
+  #:use-module (gnu packages ocr)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages qt)
   #:use-module (gnu packages rdf)
+  #:use-module (gnu packages sdl)
+  #:use-module (gnu packages shells)
   #:use-module (gnu packages video)
   #:use-module (gnu packages xorg)
+  #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xiph)
   #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages ruby)
+  #:use-module (gnu packages speech)
   #:use-module (gnu packages python)
   #:use-module (gnu packages ssh)
   #:use-module (gnu packages telephony)
@@ -67,17 +87,288 @@
   #:use-module (gnu packages assembly)
   #:use-module (gnu packages xml))
 
+(define-public openni2
+  (package
+    (name "openni2")
+    (version "2.2.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/occipital/OpenNI2")
+         (commit (string-append "v" version "-debian"))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0mfnyzpq53wnzgjfx91xcbx0nrl0lp1vrk1rk20a3gb3kshsr675"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f                      ; No target
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure))))
+    (native-inputs
+     `(("graphviz" ,graphviz)
+       ("doxygen" ,doxygen)
+       ("openjdk" ,openjdk14)
+       ("openjdk:jdk" ,openjdk14 "jdk")
+       ("python" ,python-wrapper)))
+    (inputs
+     `(("freeglut3" ,freeglut)
+       ("libudev" ,eudev)
+       ("libusb" ,libusb)))
+    (synopsis "Framework for sensor-based 'Natural Interaction")
+    (description "OpenNI is a framework for getting data to support
+'Natural Interaction', i.e. skeleton tracking, gesture tracking, and similar
+ways of getting data from humans.  It provides the interface for physical devices
+and for middleware components.")
+    (home-page "https://structure.io/openni")
+    (license license:asl2.0)))
+
+(define-public libdc1394
+  (package
+    (name "libdc1394")
+    (version "2.2.6")
+    (source (origin
+              (method url-fetch)
+              (uri
+               (string-append "https://sourceforge.net/projects/" name "/files/"
+                              name "-2" "/" version "/" name "-" version ".tar.gz"))
+              (sha256
+               (base32 "1v8gq54n1pg8izn7s15yylwjf8r1l1dmzbm2yvf6pv2fmb4mz41b"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("doxygen" ,doxygen)
+       ("perl" ,perl)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("glu" ,glu)
+       ("libraw1394" ,libraw1394)
+       ("libusb" ,libusb)
+       ("libxv" ,libxv)
+       ("linux-headers" ,linux-libre-headers)
+       ("mesa" ,mesa)
+       ("sdl" ,sdl)
+       ("v4l" ,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
+by the 1394 Trade Association.  It utilizes the lowlevel functionality provided
+by libraw1394 to communicate with the camera.  It also uses the video1394 kernel
+module for the DMA capture of the video flow.")
+    (home-page "https://damien.douxchamps.net/ieee1394/libdc1394/")
+    (license license:lgpl2.0+)))
+
+(define-public ccextractor
+  (package
+    (name "ccextractor")
+    (version "0.88")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/CCExtractor/ccextractor")
+         (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1sya45hvv4d46bk7541yimmafgvgyhkpsvwfz9kv6pm4yi1lz6nb"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:tests? #f                      ; No target
+       #:configure-flags
+       (list
+        "-DWITH_FFMPEG=ON"
+        "-DWITH_OCR=ON"
+        "-DWITH_SHARING=ON"
+        "-DWITH_HARDSUBX=ON")
+       #:phases
+       (modify-phases %standard-phases
+         ;; The package is in a sub-dir of this repo.
+         (add-after 'unpack 'chdir
+           (lambda _
+             (chdir "src")
+             #t))
+         (add-after 'chdir 'fix-build-errors
+           (lambda _
+             (substitute* "CMakeLists.txt"
+               (("libnanomsg")
+                "nanomsg"))
+             #t)))))
+    (native-inputs
+     `(("perl" ,perl)
+       ("pkg-config" ,pkg-config)
+       ("python" ,python-wrapper)))
+    (inputs
+     `(("ffmeg" ,ffmpeg-3.4)
+       ("nanomsg" ,nanomsg)
+       ("leptonica" ,leptonica)
+       ("ocr" ,tesseract-ocr)
+       ("zlib" ,zlib)))
+    (synopsis "Closed Caption Extractor")
+    (description "CCExtractor is a tool that analyzes video files and produces
+independent subtitle files from the closed captions data.  It is portable, small,
+and very fast.")
+    (home-page "https://www.ccextractor.org/")
+    (license license:gpl2+)))
+
+(define-public libvisual
+  (package
+    (name "libvisual")
+    (version "0.4.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/Libvisual/libvisual")
+         (commit (string-append name "-" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "02xwakwkqjsznc03pjlb6hcv1li1gw3r8xvyswqsm4msix5xq18a"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         ;; The package is in a sub-dir of this repo.
+         (add-after 'unpack 'chdir
+           (lambda _
+             (chdir "libvisual")
+             #t)))))
+    (native-inputs
+     `(("gettext" ,gettext-minimal)
+       ("libintl" ,intltool)
+       ("libtool" ,libtool)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("sdl" ,sdl)))
+    (native-search-paths
+     (list
+      (search-path-specification
+       (variable "LIBVISUAL_PLUGINS_BASE_DIR")
+       (files '("lib/libvisual-0.4")))))
+    ;; To load libvisual-plugins.
+    (search-paths native-search-paths)
+    (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.")
+    (home-page "http://libvisual.org/")
+    (license
+     (list
+      ;; Libraries.
+      license:lgpl2.1+
+      ;; Examples and Tests.
+      license:gpl2+))))
+
+(define-public libvisual-plugins
+  (package
+    (name "libvisual-plugins")
+    (version "0.4.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/Libvisual/libvisual")
+         (commit (string-append name "-" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "02xwakwkqjsznc03pjlb6hcv1li1gw3r8xvyswqsm4msix5xq18a"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:configure-flags
+       (list
+        "--disable-gstreamer-plugin"
+        "--disable-corona"
+        "--disable-gforce"
+        (string-append "--with-plugins-base-dir=" (assoc-ref %outputs "out")
+                       "/lib/libvisual-0.4"))
+       #:phases
+       (modify-phases %standard-phases
+         ;; The package is in a sub-dir of this repo.
+         (add-after 'unpack 'chdir
+           (lambda _
+             (chdir "libvisual-plugins")
+             #t)))))
+    (native-inputs
+     `(("bison" ,bison)
+       ("flex" ,flex)
+       ("gettext" ,gettext-minimal)
+       ("libintl" ,intltool)
+       ("libtool" ,libtool)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("alsa-lib" ,alsa-lib)
+       ("esound" ,esound)
+       ("gdk-pixbuf" ,gdk-pixbuf+svg)
+       ("gtk+" ,gtk+-2)
+       ("jack" ,jack-2)
+       ("libx11" ,libx11)
+       ("libxext" ,libxext)))
+    (propagated-inputs
+     `(("libvisual" ,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.")
+    (home-page "http://libvisual.org/")
+    (license license:gpl2+)))
+
+(define-public esound
+  (package
+    (name "esound")
+    (version "0.2.41")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://gitlab.gnome.org/Archive/esound.git")
+         (commit "ESOUND_0_2_41")))
+       (file-name (git-file-name name version))
+       (sha256
+        (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)))
+    (inputs
+     `(("alsa-lib" ,alsa-lib)
+       ("pcaudiolib" ,pcaudiolib)
+       ("tcp-wrappers" ,tcp-wrappers)))
+    (propagated-inputs
+     `(("audiofile" ,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
+back without having to send all the data for the sound.  Network transparency is
+also built in, so you can play sounds on one machine, and listen to them on
+another.")
+    (home-page "https://web.archive.org/web/20160528230227/
+http://www.tux.org/~ricdude/overview.html")
+    (license
+     (list
+      ;; Libraries.
+      license:lgpl2.0+
+      ;; Others.
+      license:gpl2+))))
+
 (define-public orc
   (package
     (name "orc")
-    (version "0.4.31")
+    (version "0.4.32")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://gstreamer.freedesktop.org/data/src/"
                                   "orc/orc-" version ".tar.xz"))
               (sha256
                (base32
-                "0xb0c7q3xv1ldmz5ipybazb01gy3cijj8622dcx7rbm9lq85zax0"))))
+                "1w0qmyj3v9sb2g7ff39pp38b9850y9hyy0bag26ifrby5f7ksvm6"))))
     (build-system meson-build-system)
     (arguments
      `(#:phases
@@ -104,21 +395,73 @@ arrays of data.")
     ;; under the 3-clause BSD license, the rest is under 2-clause BSD license.
     (license (list license:bsd-2 license:bsd-3))))
 
+(define-public gstreamer-docs
+  (package
+    (name "gstreamer-docs")
+    (version "1.18.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://gstreamer.freedesktop.org/src/gstreamer-docs"
+                    "/gstreamer-docs-" version ".tar.xz"))
+              (sha256
+               (base32
+                "0npnsr1z4x951nw8bfcna1xlgi1p0b4qb291jj3pywlib2lscnnv"))))
+    (build-system trivial-build-system)
+    (arguments
+     `(#:modules ((guix build utils))
+       #:builder
+       (begin
+         (use-modules ((guix build utils)))
+         (let* ((source (assoc-ref %build-inputs "source"))
+                (tar (assoc-ref %build-inputs "tar"))
+                (xz (assoc-ref %build-inputs "xz"))
+                (out (assoc-ref %outputs "out"))
+                (books (string-append out "/share/devhelp/books")))
+           (setenv "PATH" (string-append xz "/bin"))
+           (mkdir-p books)
+           (with-directory-excursion books
+             (invoke (string-append tar "/bin/tar") "-xvf" source
+                     "--strip-components=3"
+                     (string-append ,name "-" ,version
+                                    "/devhelp/books/GStreamer")))
+           #t))))
+    (native-inputs
+     `(("tar" ,tar)
+       ("xz" ,xz)))
+    (home-page "https://gstreamer.freedesktop.org/")
+    (synopsis "Developer documentation for GStreamer")
+    (description
+     "This package contains manuals, tutorials, and API reference for
+the GStreamer multimedia framework.")
+    ;; The documentation is covered by multiple licenses.  Anything not
+    ;; explicitly mentioned below is LGPL2.1+.  See README.md for details.
+    (license (list
+              ;; The tutorial code can be used with either of these licenses,
+              ;; at the users option.
+              license:lgpl2.1+ license:bsd-2 license:expat
+              ;; The developer manual and plugin writer guide carries
+              ;; the Open Publication License v1.0.
+              (license:fsf-free "https://opencontent.org/openpub/"
+                                "The Open Publication License v1.0")
+              ;; Tutorials are covered by CC-BY-SA 4.0.
+              license:cc-by-sa4.0))))
+
 ;; Increase the test timeouts to accommodate slow or busy machines.
 (define %common-gstreamer-phases
   '((add-after 'unpack 'increase-test-timeout
       (lambda _
         (substitute* "tests/check/meson.build"
-          (("'CK_DEFAULT_TIMEOUT', '20'")
-           "'CK_DEFAULT_TIMEOUT', '60'")
-          (("timeout ?: 3 \\* 60")
-           "timeout: 9 * 60"))
+          (("'CK_DEFAULT_TIMEOUT', '[0-9]*'")
+           "'CK_DEFAULT_TIMEOUT', '600'")
+          (("timeout ?: .*\\)")
+           "timeout: 90 * 60)"))
         #t))))
 
 (define-public gstreamer
   (package
     (name "gstreamer")
-    (version "1.16.2")
+    (version "1.18.1")
     (source
      (origin
       (method url-fetch)
@@ -127,9 +470,8 @@ arrays of data.")
             version ".tar.xz"))
       (sha256
        (base32
-        "0kp93622y29pck8asvil1fmzf55s2gx76wv475a6izc3cwj49w73"))))
+        "1fpcpsw740svvdxvvwn0hly5i72miizm4s0mbid10ji83zi8vpvr"))))
     (build-system meson-build-system)
-    (outputs '("out" "doc"))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -147,23 +489,13 @@ arrays of data.")
                        (("tcase_add_test \\(tc_chain, test_stress_reschedule.*")
                       ""))
                      #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"))
-               (copy-recursively (string-append out "/share/gtk-doc")
-                                 (string-append doc "/share/gtk-doc"))
-               (delete-file-recursively (string-append out "/share/gtk-doc"))
-               #t))))))
+               '()))))
     (propagated-inputs `(("glib" ,glib))) ; required by gstreamer-1.0.pc.
     (native-inputs
      `(("bison" ,bison)
        ("flex" ,flex)
        ("glib" ,glib "bin")
        ("gobject-introspection" ,gobject-introspection)
-       ("gtk-doc" ,gtk-doc)
        ("perl" ,perl)
        ("pkg-config" ,pkg-config)
        ("python-wrapper" ,python-wrapper)))
@@ -189,7 +521,7 @@ This package provides the core library and elements.")
 (define-public gst-plugins-base
   (package
     (name "gst-plugins-base")
-    (version "1.16.2")
+    (version "1.18.1")
     (source
      (origin
       (method url-fetch)
@@ -197,7 +529,7 @@ This package provides the core library and elements.")
                           name "-" version ".tar.xz"))
       (sha256
        (base32
-        "0sl1hxlyq46r02k7z70v09vx1gi4rcypqmzra9jid93lzvi76gmi"))))
+        "0hf66sh8d4x2ksfnvaq2rqrrfq0vi0pv6wbh9i5jixrhvvbm99hv"))))
     (build-system meson-build-system)
     (propagated-inputs
      `(("glib" ,glib)              ;required by gstreamer-sdp-1.0.pc
@@ -232,10 +564,7 @@ This package provides the core library and elements.")
         ("gobject-introspection" ,gobject-introspection)
         ("python-wrapper" ,python-wrapper)))
     (arguments
-     `(#:configure-flags '("-Dgl=disabled"
-                           ;; FIXME: Documentation fails to build without
-                           ;; enabling GL above, which causes other problems.
-                           "-Ddoc=false")
+     `(#:configure-flags '("-Dgl=disabled")
        #:phases
        (modify-phases %standard-phases
          ,@%common-gstreamer-phases
@@ -254,94 +583,112 @@ for the GStreamer multimedia library.")
 (define-public gst-plugins-good
   (package
     (name "gst-plugins-good")
-    (version "1.16.2")
+    (version "1.18.1")
     (source
      (origin
-      (method url-fetch)
-      (uri (string-append
-            "https://gstreamer.freedesktop.org/src/" name "/"
-            name "-" version ".tar.xz"))
-      (sha256
-       (base32
-        "068k3cbv1yf3gbllfdzqsg263kzwh21y8dpwr0wvgh15vapkpfs0"))))
+       (method url-fetch)
+       (uri
+        (string-append
+         "https://gstreamer.freedesktop.org/src/" name "/"
+         name "-" version ".tar.xz"))
+       (sha256
+        (base32 "0v329xi4qhlfh9aksfyviryqk9lclm4wj1lxrjnbdv4haldfj472"))))
     (build-system meson-build-system)
+    (arguments
+     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
+       #:phases
+       (modify-phases %standard-phases
+         ,@%common-gstreamer-phases
+         (add-after 'unpack 'fix-broken-test
+           (lambda _
+             ;; Fix test failure on 32-bit.  Remove for > 1.18.1.
+             ;; https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/803
+             (substitute* "tests/check/elements/qtdemux.c"
+               (("10000000")
+                "G_GUINT64_CONSTANT (10000000)"))
+             #t))
+         (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")
+             #t)))))
+    (native-inputs
+     `(("gettext" ,gettext-minimal)
+       ("glib:bin" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
+       ("perl" ,perl)
+       ("pkg-config" ,pkg-config)
+       ("python-wrapper" ,python-wrapper)
+       ("xmllint" ,libxml2)
+       ("xorg-server" ,xorg-server-for-tests)))
     (inputs
      `(("aalib" ,aalib)
+       ("bzip2" ,bzip2)
        ("cairo" ,cairo)
        ("flac" ,flac)
-       ("gdk-pixbuf" ,gdk-pixbuf)
-       ("gst-plugins-base" ,gst-plugins-base)
+       ("gdk-pixbuf" ,gdk-pixbuf+svg)
+       ("glib" ,glib)
+       ("glib-networking" ,glib-networking)
+       ("glu" ,glu)
        ("gtk+" ,gtk+)
-       ("jack" ,jack-1)
+       ("jack" ,jack-2)
        ("lame" ,lame)
        ("libavc1394" ,libavc1394)
        ("libcaca" ,libcaca)
        ("libdv" ,libdv)
+       ("libgudev" ,libgudev)
        ("libiec61883" ,libiec61883)
        ("libjpeg" ,libjpeg-turbo)
        ("libpng" ,libpng)
        ("libshout" ,libshout)
        ("libsoup" ,libsoup)
        ("libvpx" ,libvpx)
+       ("libx11" ,libx11)
+       ("libxdamage" ,libxdamage)
+       ("libxfixes" ,libxfixes)
+       ("libxext" ,libxext)
+       ("libxshm" ,libxshmfence)
+       ("mesa" ,mesa)
        ("mpg123" ,mpg123)
        ("orc" ,orc)
        ("pulseaudio" ,pulseaudio)
        ("speex" ,speex)
        ("taglib" ,taglib)
        ("twolame" ,twolame)
-       ("wavpack" ,wavpack)))
-    (native-inputs
-     `(("glib:bin" ,glib "bin")
-       ("pkg-config" ,pkg-config)
-       ("python-wrapper" ,python-wrapper)))
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         ,@%common-gstreamer-phases
-         ,@(if (string-prefix? "arm" (or (%current-target-system)
-                                         (%current-system)))
-               ;; FIXME: These tests started failing on armhf after switching to Meson.
-               ;; https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/issues/689
-               `((add-after 'unpack 'disable-tests-for-armhf
-                   (lambda _
-                     (substitute* "tests/check/elements/rtpbin_buffer_list.c"
-                       (("tcase_add_test \\(tc_chain, test_bufferlist\\);")
-                        ""))
-                     (substitute* "tests/check/elements/rtpulpfec.c"
-                       (("tcase_add_loop_test.*rtpulpfecdec_recovered_from_many.*")
-                        "")
-                       (("tcase_add.*rtpulpfecdec_recovered_using_recovered_packet.*")
-                        ""))
-                     #t)))
-               '())
-         (add-after
-          'unpack 'disable-failing-tests
-          (lambda _
-            ;; Disable tests that fail non-deterministically.
-            ;; This test fails on aarch64 on 1.12.x.
-            (substitute* "tests/check/elements/alpha.c"
-              (("tcase_add_test \\(tc_chain, test_chromakeying\\);" all)
-               (string-append "/* " all " */")))
-            #t)))))
+       ("v4l-utils" ,v4l-utils)
+       ("wavpack" ,wavpack)
+       ("zlib" ,zlib)))
+    (propagated-inputs
+     `(("gstreamer" ,gstreamer)
+       ("gst-plugins-base" ,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
+mistakes, these plug-ins have it all: good looks, good code, and good
+licensing.  Documented and dressed up in tests.  If you're looking for a role
+model to base your own plug-in on, here it is.")
     (home-page "https://gstreamer.freedesktop.org/")
-    (synopsis
-     "Plugins for the GStreamer multimedia library")
-    (description "GStreamer Good Plug-ins is a set of plug-ins for the
-GStreamer multimedia library.  This set contains those plug-ins which the
-developers consider to have good quality code and correct functionality.")
     (license license:lgpl2.0+)))
 
 (define-public gst-plugins-bad
   (package
     (name "gst-plugins-bad")
-    (version "1.16.2")
+    (version "1.18.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://gstreamer.freedesktop.org/src/"
                                   name "/" name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0x0y0hm0ga3zqi5q4090hw5sjh59y1ry9ak16qsaascm72i7mjzi"))))
+                "1cn18cbqyysrxnrk5bpxdzd5xcws9g2kmm5rbv00cx6rhn69g5f1"))))
     (build-system meson-build-system)
     (arguments
      `(#:phases
@@ -358,20 +705,32 @@ developers consider to have good quality code and correct functionality.")
                         ""))
                      #t)))
                '())
-         (add-after 'unpack 'disable-failing-test
-           (lambda _
-             ;; FIXME: Why is this failing.
-             (substitute* "tests/check/meson.build"
-               ((".*elements/dash_mpd\\.c.*")
-                ""))
-             #t)))))
+         (add-after 'unpack 'adjust-tests
+           (lambda* (#:key native-inputs inputs #:allow-other-keys)
+             (let ((gst-plugins-good (assoc-ref (or native-inputs inputs)
+                                                "gst-plugins-good")))
+               (substitute* "tests/check/meson.build"
+                 ;; Make gst-plugin-good available for tests, see
+                 ;; https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1426
+                 (("'GST_PLUGIN_SYSTEM_PATH_1_0', ''")
+                  (string-append "'GST_PLUGIN_SYSTEM_PATH_1_0', '"
+                                 gst-plugins-good "/lib/gstreamer-1.0'"))
+
+                 ;; FIXME: Why is this failing.
+                 ((".*elements/dash_mpd\\.c.*") "")
+
+                 ;; These tests are flaky and occasionally time out:
+                 ;; https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/932
+                 ((".*elements/curlhttpsrc\\.c.*") "")
+                 ;; https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1412
+                 ((".*elements/dtls\\.c.*") ""))
+               #t))))))
     (propagated-inputs
      `(("gst-plugins-base" ,gst-plugins-base)))
     (native-inputs
      `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
        ("gobject-introspection" ,gobject-introspection)
-       ;; TODO: Enable documentation for 1.18.
-       ;;("gtk-doc" ,gtk-doc)
+       ("gst-plugins-good" ,gst-plugins-good) ;for tests
        ("pkg-config" ,pkg-config)
        ("python" ,python)))
     (inputs
@@ -393,6 +752,7 @@ developers consider to have good quality code and correct functionality.")
        ("libgudev" ,libgudev)
        ("libkate" ,libkate)
        ("libmodplug" ,libmodplug)
+       ("libnice" ,libnice)
        ("librsvg" ,librsvg)
        ("libsndfile" ,libsndfile)
        ("libsrtp" ,libsrtp)
@@ -414,7 +774,10 @@ developers consider to have good quality code and correct functionality.")
        ;("qtdeclarative" ,qtdeclarative)
        ;("qtx11extras" ,qtx11extras)
        ("soundtouch" ,soundtouch)
+       ;; GStreamer is not yet compatible with srt > 1.4.1.
+       ("srt" ,srt-1.4.1)
        ("x265" ,x265)
+       ("webrtc-audio-processing" ,webrtc-audio-processing)
        ("wayland" ,wayland)))
     (home-page "https://gstreamer.freedesktop.org/")
     (synopsis "Plugins for the GStreamer multimedia library")
@@ -426,87 +789,104 @@ par compared to the rest.")
 (define-public gst-plugins-ugly
   (package
     (name "gst-plugins-ugly")
-    (version "1.16.2")
+    (version "1.18.1")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "https://gstreamer.freedesktop.org/src/"
-                           name "/" name "-" version ".tar.xz"))
+       (uri
+        (string-append "https://gstreamer.freedesktop.org/src/"
+                       name "/" name "-" version ".tar.xz"))
        (sha256
-        (base32
-         "1jpvc32x6q01zjkfgh6gmq6aaikiyfwwnhj7bmvn52syhrdl202m"))))
+        (base32 "09gpbykjchw3lb51ipxj53fy238gr9mg9jybcg5135pb56w6rk8q"))))
     (build-system meson-build-system)
     (arguments
-     `(#:phases (modify-phases %standard-phases
-                  ,@%common-gstreamer-phases)))
+     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
+       #:phases
+       (modify-phases %standard-phases
+         ,@%common-gstreamer-phases
+         (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")
+             #t)))))
+    (native-inputs
+     `(("gettext" ,gettext-minimal)
+       ("glib:bin" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
+       ("perl" ,perl)
+       ("pkg-config" ,pkg-config)
+       ("python-wrapper" ,python-wrapper)
+       ("xorg-server" ,xorg-server-for-tests)))
     (inputs
-     `(("gst-plugins-base" ,gst-plugins-base)
+     `(("glib" ,glib)
+       ("glib-networking" ,glib-networking)
        ("liba52" ,liba52)
        ("libcdio" ,libcdio)
-       ("libmpeg2" ,libmpeg2)
        ("libdvdread" ,libdvdread)
+       ("libmpeg2" ,libmpeg2)
        ("libx264" ,libx264)
-       ;; TODO:
-       ;; * opencore-amr (for the AMR-NB decoder and encoder and the
-       ;;   AMR-WB decoder) <http://sourceforge.net/projects/opencore-amr/>
+       ("opencore-amr" ,opencore-amr)
        ("orc" ,orc)))
-    (native-inputs
-     `(("glib:bin" ,glib "bin")
-       ("pkg-config" ,pkg-config)
-       ("python-wrapper" ,python-wrapper)))
+    (propagated-inputs
+     `(("gstreamer" ,gstreamer)
+       ("gst-plugins-base" ,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
+think twice about shipping them.")
     (home-page "https://gstreamer.freedesktop.org/")
-    (synopsis "GStreamer plugins from the \"ugly\" set")
-    (description "GStreamer Ugly Plug-ins.  This set contains those plug-ins
-which the developers consider to have good quality code but that might pose
-distribution problems in some jurisdictions, e.g. due to patent threats.")
     (license license:lgpl2.0+)))
 
 (define-public gst-libav
   (package
     (name "gst-libav")
-    (version "1.16.2")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "https://gstreamer.freedesktop.org/src/" name "/"
-                    name "-" version ".tar.xz"))
-              (sha256
-               (base32
-                "1wpfilc98bad9nsv3y1qapxp35dvn2mvwvrmqwrsj58cf09gc967"))
-              (modules '((guix build utils)))
-              (snippet
-               '(begin
-                  ;; Drop bundled ffmpeg.
-                  (delete-file-recursively "gst-libs/ext/libav")
-                  #t))))
+    (version "1.18.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append
+         "https://gstreamer.freedesktop.org/src/" name "/"
+         name "-" version ".tar.xz"))
+       (sha256
+        (base32 "1n1fkkbxxsndblnbm0c2ziqp967hrz5gag6z36xbpvqk4sy1g9rr"))))
     (build-system meson-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("python" ,python)))
+     `(("perl" ,perl)
+       ("pkg-config" ,pkg-config)
+       ("python" ,python-wrapper)
+       ("ruby" ,ruby)))
     (inputs
-     `(("gst-plugins-base" ,gst-plugins-base)
-       ("ffmpeg" ,ffmpeg)
-       ("orc" ,orc)
-       ("zlib" ,zlib)))
+     `(("ffmpeg" ,ffmpeg)))
+    (propagated-inputs
+     `(("gstreamer" ,gstreamer)
+       ("gst-plugins-base" ,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.")
     (home-page "https://gstreamer.freedesktop.org/")
-    (synopsis "Plugins for the GStreamer multimedia library")
-    (description
-     "This GStreamer plugin supports a large number of audio and video
-compression formats through the use of the libav library.")
-    (license license:gpl2+)))
+    (license license:lgpl2.0+)))
 
 (define-public gst-editing-services
   (package
     (name "gst-editing-services")
-    (version "1.16.2")
+    (version "1.18.1")
     (source (origin
               (method url-fetch)
               (uri (string-append
                     "https://gstreamer.freedesktop.org/src/" name "/"
-                    "gstreamer-editing-services-" version ".tar.xz"))
+                    "gst-editing-services-" version ".tar.xz"))
               (sha256
                (base32
-                "05hcf3prna8ajjnqd53221gj9syarrrjbgvjcbhicv0c38csc1hf"))))
+                "09rr5a198p1r9wcbsjl01xg6idkfkgj5h9x7xxywarb5i7qv6g79"))))
     (build-system meson-build-system)
     (arguments
      ;; FIXME: 16/22 failing tests.
@@ -518,6 +898,8 @@ compression formats through the use of the libav library.")
        ("libxml2" ,libxml2)))
     (native-inputs
      `(("flex" ,flex)
+       ("gobject-introspection" ,gobject-introspection)
+       ("glib:bin" ,glib "bin")
        ("gst-plugins-bad" ,gst-plugins-bad)
        ("gst-plugins-good" ,gst-plugins-good)
        ("perl" ,perl)
@@ -530,10 +912,39 @@ compression formats through the use of the libav library.")
 non-linear editors.")
     (license license:gpl2+)))
 
+(define-public gst-plugins/selection
+  (lambda* (pkg #:key plugins configure-flags)
+    "Build PKG with only PLUGINS enabled.  Optionally, if CONFIGURE-FLAGS are
+given, also pass them to the build system instead of the ones used by PKG."
+    (package/inherit pkg
+      (arguments
+       (substitute-keyword-arguments (package-arguments pkg)
+         ((#:configure-flags flags `(,@(or configure-flags '())))
+          `(append
+            (list
+             ,@(map (lambda (plugin)
+                      (string-append "-D" plugin "=enabled"))
+                    plugins))
+            (list ,@(or configure-flags flags))))
+          ((#:phases phases)
+           `(modify-phases ,phases
+              (add-after 'unpack 'disable-auto-plugins
+                (lambda _
+                  (substitute* "meson_options.txt"
+                    (("'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.16.2")
+    (version "1.18.1")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -541,9 +952,7 @@ non-linear editors.")
                     "gst-python-" version ".tar.xz"))
               (sha256
                (base32
-                "1a48ca66izmm8hnp608jv5isg3jxb0vlfmhns0bg9nbkilag7390"))
-              (patches
-               (search-patches "python-gst-fix-build-with-python-3.8.patch"))))
+                "1xpncj9xdn6ycnmrqnk6iaqaia658licyj08cxbjgcvs5x18kcj2"))))
     (build-system meson-build-system)
     (arguments
      `(#:modules ((guix build meson-build-system)
@@ -566,18 +975,7 @@ non-linear editors.")
     (description
      "This package contains GObject Introspection overrides for Python that can
 be used by Python applications using GStreamer.")
-    (license license:lgpl2.1+)
-    (properties `((python2-variant . ,(delay python2-gst))))))
-
-(define-public python2-gst
-  (package (inherit python-gst)
-    (name "python2-gst")
-    (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("python" ,python-2)))
-    (propagated-inputs
-     `(("gst-plugins-base" ,gst-plugins-base)
-       ("python-pygobject" ,python2-pygobject)))))
+    (license license:lgpl2.1+)))
 
 (define-public gst123
   (package
diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 51c11ea36a..89efcd61c4 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -8,7 +8,7 @@
 ;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
 ;;; Copyright © 2015 Andy Wingo <wingo@igalia.com>
 ;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com>
-;;; Coypright © 2015, 2016, 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
+;;; Coypright © 2015, 2016, 2017, 2018, 2020, 2021 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2016, 2017, 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016 Fabian Harfert <fhmgufs@web.de>
 ;;; Copyright © 2016 Kei Kebreau <kkebreau@posteo.net>
@@ -61,6 +61,7 @@
   #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages docbook)
+  #:use-module (gnu packages documentation)
   #:use-module (gnu packages enchant)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages freedesktop)
@@ -83,6 +84,7 @@
   #: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 xml)
   #:use-module (gnu packages xorg)
   #:use-module (gnu packages xdisorg)
@@ -171,6 +173,12 @@ affine transformation (scale, rotation, shear, etc.).")
    (license license:lgpl2.1) ; or Mozilla Public License 1.1
    (home-page "https://cairographics.org/")))
 
+(define-public cairo-sans-poppler
+  ;; Variant used to break the dependency cycle between Poppler and Cairo.
+  (package/inherit cairo
+    (inputs (alist-delete "poppler" (package-inputs cairo)))
+    (properties `((hidden? . #t)))))
+
 (define-public cairo-xcb
   (package
     (inherit cairo)
@@ -224,6 +232,67 @@ affine transformation (scale, rotation, shear, etc.).")
                        "See 'COPYING' in the distribution."))
    (home-page "https://www.freedesktop.org/wiki/Software/HarfBuzz/")))
 
+(define-public libdatrie
+  (package
+    (name "libdatrie")
+    (version "0.2.12")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://linux.thai.net/pub/ThaiLinux/software/"
+                       "libthai/libdatrie-" version ".tar.xz"))
+       (sha256
+        (base32 "0jdi01pcxv0b24zbjy7zahawsqqqw4mv94f2yy01zh4n796wqba5"))))
+    (build-system gnu-build-system)
+    (outputs '("out" "doc"))
+    (arguments
+     `(#:configure-flags
+       (list
+        (string-append "--with-html-docdir="
+                       (assoc-ref %outputs "doc")
+                       "/share/doc/datrie/html"))))
+    (native-inputs
+     `(("doxygen" ,doxygen)
+       ("pkg-config" ,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.")
+    (home-page "https://linux.thai.net/~thep/datrie/datrie.html")
+    (license license:lgpl2.1+)))
+
+(define-public libthai
+  (package
+    (name "libthai")
+    (version "0.1.28")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://linux.thai.net/pub/thailinux/software/"
+                       "libthai/libthai-" version ".tar.xz"))
+       (sha256
+        (base32 "04g93bgxrcnay9fglpq2lj9nr7x1xh06i60m7haip8as9dxs3q7z"))))
+    (build-system gnu-build-system)
+    (outputs '("out" "doc"))
+    (arguments
+     `(#:configure-flags
+       (list
+        (string-append "--with-html-docdir="
+                       (assoc-ref %outputs "doc")
+                       "/share/doc/libthai/html"))))
+    (native-inputs
+     `(("doxygen" ,doxygen)
+       ("pkg-config" ,pkg-config)))
+    (propagated-inputs
+     `(("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
+applications.")
+    (home-page "https://linux.thai.net/projects/libthai")
+    (license license:lgpl2.1+)))
+
 (define-public pango
   (package
    (name "pango")
@@ -761,7 +830,7 @@ application suites.")
 (define-public gtk+
   (package (inherit gtk+-2)
    (name "gtk+")
-   (version "3.24.20")
+   (version "3.24.23")
    (source (origin
             (method url-fetch)
             (uri (string-append "mirror://gnome/sources/" name "/"
@@ -769,7 +838,7 @@ application suites.")
                                 name "-" version ".tar.xz"))
             (sha256
              (base32
-              "1wqxkd3xnqwihcawncp9mkf9bv5a5fg5i4ahm6klpl782vvnkb1d"))
+              "1cg2vbwbcp7bc84ky0b69ipgdr9djhspnf5k8lajb8jphcj4v1jx"))
             (patches (search-patches "gtk3-respect-GUIX_GTK3_PATH.patch"
                                      "gtk3-respect-GUIX_GTK3_IM_MODULE_FILE.patch"))))
    (propagated-inputs
@@ -853,14 +922,14 @@ application suites.")
 (define-public guile-cairo
   (package
     (name "guile-cairo")
-    (version "1.10.0")
+    (version "1.11.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://savannah/guile-cairo/guile-cairo-"
                                   version ".tar.gz"))
               (sha256
                (base32
-                "0p6xrhf2k6n5dybn88050za7h90gnd7534n62l53vsca187pwgdf"))
+                "1gc642r9ndsjhhmh9bl5cbd3dwvy4dpxwhr0zpsw43y9nmz37xpl"))
               (modules '((guix build utils)))
               (snippet
                (begin
@@ -882,7 +951,35 @@ application suites.")
     (arguments
      ;; Uses of 'scm_t_uint8' & co. are deprecated; don't stop the build
      ;; because of them.
-     '(#:configure-flags '("--disable-Werror")))
+     `(#:configure-flags '("--disable-Werror")
+       #:make-flags '("GUILE_AUTO_COMPILE=0") ; to prevent guild warnings
+       #:modules ((guix build gnu-build-system)
+                  (guix build utils)
+                  (ice-9 rdelim)
+                  (ice-9 popen))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'install-go-files
+           (lambda* (#:key outputs inputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (effective (read-line
+                                (open-pipe* OPEN_READ
+                                            "guile" "-c"
+                                            "(display (effective-version))")))
+                    (module-dir (string-append out "/share/guile/site/"
+                                               effective))
+                    (object-dir (string-append out "/lib/guile/" effective
+                                               "/site-ccache"))
+                    (prefix     (string-length module-dir)))
+               ;; compile to the destination
+               (for-each (lambda (file)
+                           (let* ((base (string-drop (string-drop-right file 4)
+                                                     prefix))
+                                  (go   (string-append object-dir base ".go")))
+                             (invoke "guild" "compile" "-L" module-dir
+                                     file "-o" go)))
+                         (find-files module-dir "\\.scm$"))
+               #t))))))
     (inputs
      `(("guile-lib" ,guile-lib)
        ("expat" ,expat)
@@ -943,10 +1040,36 @@ exceptions, macros, and a dynamic programming environment.")
                 (file-name (string-append name "-" version ".tar.gz"))))
       (build-system gnu-build-system)
       (arguments
-       `(#:phases (modify-phases %standard-phases
-                    (replace 'bootstrap
-                      (lambda _
-                        (invoke "autoreconf" "-vfi"))))))
+       `(#:modules ((guix build gnu-build-system)
+                    (guix build utils)
+                    (ice-9 rdelim)
+                    (ice-9 popen))
+         #:phases
+         (modify-phases %standard-phases
+           (replace 'bootstrap
+             (lambda _
+               (invoke "autoreconf" "-vfi")))
+           (add-after 'install 'install-go-files
+             (lambda* (#:key outputs inputs #:allow-other-keys)
+               (let* ((out (assoc-ref outputs "out"))
+                      (effective (read-line
+                                  (open-pipe* OPEN_READ
+                                              "guile" "-c"
+                                              "(display (effective-version))")))
+                      (module-dir (string-append out "/share/guile/site/"
+                                                 effective))
+                      (object-dir (string-append out "/lib/guile/" effective
+                                                 "/site-ccache"))
+                      (prefix     (string-length module-dir)))
+                 ;; compile to the destination
+                 (for-each (lambda (file)
+                             (let* ((base (string-drop (string-drop-right file 4)
+                                                       prefix))
+                                    (go   (string-append object-dir base ".go")))
+                               (invoke "guild" "compile" "-L" module-dir
+                                       file "-o" go)))
+                           (find-files module-dir "\\.scm$"))
+                 #t))))))
       (native-inputs `(("pkg-config" ,pkg-config)
                        ("autoconf" ,autoconf)
                        ("automake" ,automake)
@@ -1138,6 +1261,23 @@ guile-gnome-platform (GNOME developer libraries), and guile-gtksourceview.")
 library.")
     (license license:lgpl2.0+)))
 
+(define-public cairomm-1.13
+  (package
+    (inherit cairomm)
+    (name "cairomm")
+    (version "1.13.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://www.cairographics.org/releases/"
+                       name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1xlfl0fm5mgv53lr8xjv2kqsk3bz67qkk6qzvbrqmbvbvvbqp9wp"))))
+    (propagated-inputs
+     `(("cairo" ,cairo)
+       ("sigc++" ,libsigc++)))))
+
 (define-public pangomm
   (package
     (name "pangomm")
@@ -1164,6 +1304,25 @@ library.")
 library.")
     (license license:lgpl2.1+)))
 
+(define-public pangomm-2.42
+  (package
+    (inherit pangomm)
+    (name "pangomm")
+    (version "2.42.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version)  "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "03zli5amizhv9bfklwfq7xyf0b5dagchx1lnz9f0v1rhk69h9gql"))))
+    (propagated-inputs
+     `(("cairomm" ,cairomm-1.13)
+       ("glibmm" ,glibmm-2.64)
+       ("pango" ,pango)))))
+
 (define-public atkmm
   (package
     (name "atkmm")
@@ -1403,7 +1562,7 @@ write GNOME applications.")
 (define-public perl-cairo
   (package
     (name "perl-cairo")
-    (version "1.107")
+    (version "1.108")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1411,7 +1570,7 @@ write GNOME applications.")
                     version ".tar.gz"))
               (sha256
                (base32
-                "0sg1gf1f2pjq7pji0zsv4rbi3bzpsx82z98k7yqxafzrvlkf27ay"))))
+                "1nh5iya63q6j2w0cdi24x2ygpi8k8wwccnbh8cisnx8nqmywnhk0"))))
     (build-system perl-build-system)
     (native-inputs
      `(("perl-extutils-depends" ,perl-extutils-depends)
@@ -1513,7 +1672,7 @@ and routines to assist in editing internationalized text.")
        (sha256
         (base32 "08rpw9hkaprm4r853xy1d35i2af1pji8c3mzzl01mmwmyr9p0x8k"))))
     (native-inputs `(("pkg-config" ,pkg-config)
-                     ("check" ,check)
+                     ("check" ,check-0.14)
                      ("gettext" ,gettext-minimal)
                      ("glib:bin" ,glib "bin")
                      ("xorg-server" ,xorg-server-for-tests)))
@@ -1766,40 +1925,47 @@ Parcellite and adds bugfixes and features.")
   (package
     (name "graphene")
     (version "1.10.0")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/ebassi/graphene/releases/"
-                                  "download/" version
-                                  "/graphene-" version ".tar.xz"))
-              (sha256
-               (base32 "16b4hz73bnrgv5v8n96dczkd6xp9qc06lrl43zln3jnl3psrfva0"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/ebassi/graphene.git")
+         (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "14a0j1rvjlc7yhfdmhmckdmkzy4ch61qbzywdlw1xv58h23wx29p"))))
     (build-system meson-build-system)
     (arguments
-     `(#:configure-flags '("-Dinstalled_tests=false")))
+     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
+       #:configure-flags
+       (list
+        "-Dinstalled_tests=false")))
     (native-inputs
-     `(("gobject-introspection" ,gobject-introspection)
+     `(("git" ,git-minimal)
+       ("gobject-introspection" ,gobject-introspection)
+       ("mutest" ,mutest)
        ("pkg-config" ,pkg-config)))
     (inputs
-     `(("python" ,python)
-       ("glib" ,glib)))
-    (home-page "https://ebassi.github.io/graphene/")
+     `(("glib" ,glib)
+       ("python" ,python)))
     (synopsis "Thin layer of graphic data types")
-    (description "This library provides graphic types and their relative API;
-it does not deal with windowing system surfaces, drawing, scene graphs, or
-input.")
+    (description "Graphene provides graphic types and their relative API; it
+does not deal with windowing system surfaces, drawing, scene graphs, or input.")
+    (home-page "https://ebassi.github.io/graphene/")
     (license license:expat)))
 
 (define-public spread-sheet-widget
   (package
     (name "spread-sheet-widget")
-    (version "0.5")
+    (version "0.7")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://alpha.gnu.org/gnu/ssw/"
                            "spread-sheet-widget-" version ".tar.gz"))
        (sha256
-        (base32 "0vxqv229vp6l278hz11ayrfirn4gj736clh4wlmn0h21bh5b8pfc"))))
+        (base32 "09rzgp7gabnzab460x874a1ibgyjiibpwzsz5srn9zs6jv2jdxjb"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("glib" ,glib "bin")             ; for glib-genmarshal, etc.
@@ -2027,7 +2193,7 @@ library for drawing.")
 (define-public gtksheet
   (package
     (name "gtksheet")
-    (version "4.3.4")
+    (version "4.3.5")
     (source
      (origin
        (method git-fetch)
@@ -2037,7 +2203,7 @@ library for drawing.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "10qzmdkjkkvkcadxn019cbyhwaahxcfv1apv54lc711bqvh63v8r"))))
+         "13jwr1vly4ga3f09dajwky1cdrz5bmggwga3vnnd6j6zzia7dpyr"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags (list "--enable-glade"
@@ -2051,6 +2217,11 @@ library for drawing.")
            (lambda _
              (delete-file "configure")
              #t))
+         (add-after 'unpack 'rename-type
+           (lambda _
+             (substitute* "glade/glade-gtksheet-editor.c"
+               (("GladeEditableIface") "GladeEditableInterface"))
+             #t))
          ;; Fix glade install directories.
          (add-before 'bootstrap 'configure-glade-directories
            (lambda* (#:key outputs #:allow-other-keys)
@@ -2061,15 +2232,6 @@ library for drawing.")
                 (string-append (assoc-ref outputs "out") "/lib/glade/modules"))
                (("`\\$PKG_CONFIG --variable=pixmapdir gladeui-2.0`")
                 (string-append (assoc-ref outputs "out") "/share/pixmaps")))
-             #t))
-         ;; Fix incorrect typelib version. This is a known upstream bug. See
-         ;; https://github.com/fpaquet/gtksheet/issues/23
-         (add-after 'install 'fix-typelib-version
-           (lambda* (#:key outputs #:allow-other-keys)
-             (with-directory-excursion (string-append (assoc-ref outputs "out")
-                                                      "/lib/girepository-1.0")
-               (rename-file "GtkSheet-4.0.typelib"
-                            (string-append "GtkSheet-" ,version ".typelib")))
              #t)))))
     (inputs
      `(("glade" ,glade3)
diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm
index 2f5e745df6..c2d853f006 100644
--- a/gnu/packages/guile-xyz.scm
+++ b/gnu/packages/guile-xyz.scm
@@ -1,9 +1,9 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
+;;; 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 © 2015, 2017 Christopher Allan Webber <cwebber@dustycloud.org>
 ;;; Copyright © 2016 Alex Sassmannshausen <alex@pompo.co>
-;;; Copyright © 2016, 2017, 2018, 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2016 Erik Edrosa <erik.edrosa@gmail.com>
 ;;; Copyright © 2016, 2019, 2020 Eraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016, 2017 Alex Kost <alezost@gmail.com>
@@ -31,6 +31,8 @@
 ;;; Copyright © 2020 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 pukkamustard <pukkamustard@posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -53,9 +55,11 @@
   #:use-module (gnu packages algebra)
   #:use-module (gnu packages aspell)
   #:use-module (gnu packages autotools)
+  #:use-module (gnu packages avahi)
   #:use-module (gnu packages base)
   #:use-module (gnu packages bash)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages crypto)
   #:use-module (gnu packages databases)
   #:use-module (gnu packages disk)
   #:use-module (gnu packages emacs)
@@ -78,6 +82,7 @@
   #:use-module (gnu packages linux)
   #:use-module (gnu packages man)
   #:use-module (gnu packages maths)
+  #:use-module (gnu packages mes)
   #:use-module (gnu packages multiprecision)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages networking)
@@ -97,6 +102,7 @@
   #:use-module (gnu packages texinfo)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages version-control)
+  #:use-module (gnu packages web)
   #:use-module (gnu packages webkit)
   #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xorg)
@@ -104,6 +110,8 @@
   #:use-module (guix download)
   #:use-module (guix git-download)
   #:use-module (guix hg-download)
+  #: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 guile)
   #:use-module (guix utils)
@@ -159,7 +167,7 @@
     ;; projects.
     ;; TODO: Add guile-dbi and guile-dbd optional dependencies.
     (propagated-inputs
-     `(("guile-json" ,guile-json-1) ; This ia already using guile-2.2.
+     `(("guile-json" ,guile-json-1) ; This is already using guile-2.2.
        ("guile-readline" ,guile2.2-readline)
        ("guile-redis" ,guile2.2-redis)))
     (native-inputs
@@ -618,6 +626,45 @@ is not available for Guile 2.0.")
 (define-public guile3.0-fibers
   (deprecated-package "guile3.0-fibers" guile-fibers))
 
+(define-public guile-filesystem
+  (package
+    (name "guile-filesystem")
+    (version "0.1.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://gitlab.com/leoprikler/guile-filesystem.git")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1shmkc0y9r2sj3kw7hrsnamnp7y8xifkhf3m3rnfxczqg63k67vy"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("autoconf" ,autoconf-wrapper)
+       ("automake" ,automake)
+       ("pkg-config" ,pkg-config)
+       ("texinfo" ,texinfo)))
+    (inputs
+     `(("guile" ,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,
+that augment Guile's support for handling files and their names.")
+    (license license:lgpl3+)))
+
+(define-public guile2.0-filesystem
+  (package
+    (inherit guile-filesystem)
+    (name "guile2.0-filesystem")
+    (inputs `(("guile" ,guile-2.0)))))
+
+(define-public guile2.2-filesystem
+  (package
+    (inherit guile-filesystem)
+    (name "guile2.2-filesystem")
+    (inputs `(("guile" ,guile-2.2)))))
+
 (define-public guile-syntax-highlight
   (package
     (name "guile-syntax-highlight")
@@ -700,8 +747,8 @@ It has a nice, simple s-expression based syntax.")
     (inputs `(("guile" ,guile-2.2)))))
 
 (define-public guile-squee
-  (let ((commit "a85902a92bf6f58a1d35fd974a01ade163deda8d")
-        (revision "0"))
+  (let ((commit "c1497a216e881cfde39d6aa7c73d0bf6b497c89b")
+        (revision "2"))
     (package
       (name "guile-squee")
       (version (string-append "0-" revision "." (string-take commit 7)))
@@ -713,7 +760,7 @@ It has a nice, simple s-expression based syntax.")
                 (file-name (git-file-name name version))
                 (sha256
                  (base32
-                  "0p1lpsp4kx57j3ai1dkxilm4ziavzzx8wbbc42m3hpziq0a7qz5z"))))
+                  "1alskrplnyl1n5wb39drn72cwplp47a8cpdd1n9cdnw3jhk5p12p"))))
       (build-system guile-build-system)
       (arguments
        '(#:phases
@@ -797,6 +844,7 @@ using Guile's foreign function interface.")
     (build-system guile-build-system)
     (arguments
      '(#:source-directory "src"
+       #:compile-flags '("--r6rs" "-Wunbound-variable" "-Warity-mismatch")
        #:phases (modify-phases %standard-phases
                   (add-after 'unpack 'move-files-around
                     (lambda _
@@ -805,8 +853,7 @@ using Guile's foreign function interface.")
                       (mkdir-p "src/pfds")
                       (for-each (lambda (file)
                                   (rename-file file
-                                               (string-append "src/pfds/"
-                                                              file)))
+                                    (string-append "src/pfds/" file)))
                                 '("bbtrees.sls"
                                   "deques"
                                   "deques.sls"
@@ -820,15 +867,6 @@ using Guile's foreign function interface.")
                                   "queues.sls"
                                   "sequences.sls"
                                   "sets.sls"))
-
-                      ;; In Guile <= 2.2.4, there's no way to tell 'guild
-                      ;; compile' to accept the ".sls" extension.  So...
-                      (for-each (lambda (file)
-                                  (rename-file file
-                                               (string-append
-                                                (string-drop-right file 4)
-                                                ".scm")))
-                                (find-files "." "\\.sls$"))
                       #t)))))
     (native-inputs
      `(("guile" ,guile-3.0)))
@@ -852,6 +890,74 @@ Vicare Scheme and IronScheme.  Right now it contains:
 @end itemize\n")
     (license license:bsd-3)))
 
+(define-public guile2.0-pg
+  (package
+    (name "guile2.0-pg")
+    (version "0.49")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://savannah/guile-pg/guile-pg-"
+                                  version ".tar.xz"))
+              (sha256
+               (base32
+                "1fizcqga96p9n2jjhi9nprhry20hg9wvcl5b8gya4vhzwz6qhysp"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (add-before 'install 'patch-src/Makefile
+           (lambda* (#:key outputs #:allow-other-keys)
+             (substitute* "src/Makefile"
+               (("\\/share\\/guile\\/site") "/share/guile/site/2.0"))
+             #t)))))
+    (native-inputs
+     `(("procps" ,procps)               ; fake-cluster-control uses ps
+       ("guile" ,guile-2.0)
+       ("postgresql" ,postgresql)))
+    (inputs
+     `(("guile" ,guile-2.0)
+       ("postgresql" ,postgresql)))
+    (home-page "https://www.nongnu.org/guile-pg/")
+    (synopsis "Guile modules for accessing PostgreSQL")
+    (description
+     "Guile-PG is a collection of modules for Guile allowing access to the
+PostgreSQL RDBMS from Scheme programs.
+
+This has been tested against PostgreSQL 10 through 13, but currently only
+works with Guile 1.4.x to 2.0.x.")
+    (license license:gpl3+)))
+
+(define-public guile-prometheus
+  (let ((commit "35dc26c0ea44c3d70f1819f240d84e2cbb4b7b4c")
+        (revision "5"))
+    (package
+    (name "guile-prometheus")
+    (version (git-version "0" revision commit))
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://git.cbaines.net/git/guile/prometheus")
+                    (commit commit)))
+              (sha256
+               (base32
+                "07822jj4appw37lf444kc4xlgl7nm64mgldag56072l55kwashgb"))
+              (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)))
+    (inputs
+     `(("guile" ,guile-3.0)))
+    (home-page "https://git.cbaines.net/guile/prometheus")
+    (synopsis "Prometheus client library for Guile")
+    (description
+     "This Guile library provides instrumentation code intended to be used
+with the Prometheus time series service.  Counter, gauge and histogram metric
+types are supported.")
+    (license license:gpl3+))))
+
 (define-public guile2.2-pfds
   (package
     (inherit guile-pfds)
@@ -861,7 +967,18 @@ Vicare Scheme and IronScheme.  Right now it contains:
      (substitute-keyword-arguments (package-arguments guile-pfds)
        ((#:phases phases)
         `(modify-phases ,phases
-           (delete 'work-around-guile-bug)))))))
+           (delete 'work-around-guile-bug)
+           (add-after 'move-files-around 'sls->scm
+             (lambda _
+               ;; In Guile <= 2.2.4, there's no way to tell 'guild
+               ;; compile' to accept the ".sls" extension.  So...
+               (for-each (lambda (file)
+                           (rename-file file
+                                        (string-append
+                                         (string-drop-right file 4)
+                                         ".scm")))
+                         (find-files "." "\\.sls$"))
+               #t))))))))
 
 (define-public guile3.0-pfds
   (deprecated-package "guile3.0-pfds" guile-pfds))
@@ -891,8 +1008,8 @@ convenient nested tree operations.")
     (license license:gpl3+)))
 
 (define-public guile-simple-zmq
-  (let ((commit "68bedb6679716214fb9d3472da57544526f7a618")
-        (revision "3"))
+  (let ((commit "f8b7d81afb38525750f8818ed2956ca18c828ee8")
+        (revision "5"))
     (package
       (name "guile-simple-zmq")
       (version (git-version "0.0.0" revision commit))
@@ -904,7 +1021,7 @@ convenient nested tree operations.")
                (commit commit)))
          (sha256
           (base32
-           "1ad3xg69qqviy1f6dnlw0ysmfdbmp1jq65rfqb8nfd8dsrq2syli"))
+           "1gpzlpcq7bxw7sxyrg8zslwb3631vizw56lgg1aavw4gafh0hxb3"))
          (file-name (git-file-name name version))))
       (build-system guile-build-system)
       (arguments
@@ -1030,20 +1147,19 @@ allows users to interact with the Guile REPL through Jupyter.")
 (define-public guile-sparql
   (package
    (name "guile-sparql")
-   (version "0.0.7")
+   (version "0.0.8")
    (source (origin
             (method url-fetch)
             (uri (string-append
                   "https://github.com/roelj/guile-sparql/releases/download/"
                   version "/guile-sparql-" version ".tar.gz"))
             (sha256
-             (base32 "1drnvhsgl0gc5crmb16yyw1j98nkhwwcgssv9vgm36ng43nnzffd"))))
+             (base32 "1jf4972f9fpm0rd865xpnc9mzl3xv6vhfnp0iygadydy905z9nln"))))
    (build-system gnu-build-system)
-   (arguments `(#:tests? #f)) ; There are no tests.
    (native-inputs
     `(("pkg-config" ,pkg-config)))
    (inputs
-    `(("guile" ,guile-2.2)))
+    `(("guile" ,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
@@ -1104,6 +1220,29 @@ Extensions) compliant email messages and reading emails from the mbox
 format.")
     (license license:agpl3+)))
 
+(define-public guile-email-latest
+  (let ((commit "03e9cacb826bd4a56d3d834fe5526e497d7c57eb")
+        (revision "1"))
+    (package
+      (inherit guile-email)
+      (name "guile-email-latest")
+      (version (git-version "0.2.2" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://git.systemreboot.net/guile-email")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "1a15gdlbmzx220xg82fgyd0zk2wqn13ddmzs13nhgfzx8d5cns68"))))
+      (native-inputs
+       `(("pkg-config" ,pkg-config)
+         ("autoconf" ,autoconf)
+         ("automake" ,automake)
+         ("texinfo" ,texinfo))))))
+
 (define-public guile2.2-email
   (package
     (inherit guile-email)
@@ -1588,15 +1727,16 @@ The library is shipped with documentation in Info format and usage examples.")
 (define-public guile-wisp
   (package
     (name "guile-wisp")
-    (version "1.0.2")
+    (version "1.0.3")
     (source (origin
-              (method url-fetch)
-              (uri (string-append "https://bitbucket.org/ArneBab/"
-                                  "wisp/downloads/wisp-"
-                                  version ".tar.gz"))
+              (method hg-fetch)
+              (uri (hg-reference
+                    (url "https://hg.sr.ht/~arnebab/wisp")
+                    (changeset (string-append "v" version))))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "03pz7pj9jyallynhflp5s7qax8dj1fs8la434wrfgz7g1kgjnvf6"))))
+                "10g97jz3ahpb5mg933ajsc3pa9jxlg14f42yf01qwx0dwq1b06d5"))))
     (build-system gnu-build-system)
     (arguments
      `(#:modules ((guix build gnu-build-system)
@@ -1610,11 +1750,9 @@ The library is shipped with documentation in Info format and usage examples.")
                            (guix build emacs-utils))
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'support-guile-3.0
+         (replace 'bootstrap
            (lambda _
-             (substitute* "configure"
-               (("_guile_versions_to_search=\"2.2")
-                "_guile_versions_to_search=\"3.0 2.2"))
+             (invoke "autoreconf" "-vif")
              #t))
          (add-before 'configure 'patch-/usr/bin/env
            (lambda _
@@ -1656,7 +1794,9 @@ The library is shipped with documentation in Info format and usage examples.")
     (inputs
      `(("guile" ,guile-3.0)))
     (native-inputs
-     `(("emacs" ,emacs-minimal)
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("emacs" ,emacs-minimal)
        ("python" ,python)
        ("pkg-config" ,pkg-config)))
     (synopsis "Whitespace to lisp syntax for Guile")
@@ -1674,6 +1814,37 @@ users and in some situations.")
 (define-public guile3.0-wisp
   (deprecated-package "guile3.0-wisp" guile-wisp))
 
+(define-public guile-udev
+  (package
+    (name "guile-udev")
+    (version "0.1.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/artyom-poptsov/guile-udev")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1l6csncjqnx58c6c3wdl7rshnhk4pzhjq2q8lnkg483564s9w5py"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("autoconf" ,autoconf-wrapper)
+       ("automake" ,automake)
+       ("gettext" ,gettext-minimal)
+       ("libtool" ,libtool)
+       ("texinfo" ,texinfo)
+       ("pkg-config" ,pkg-config)
+       ("which" ,which)))
+    (inputs
+     `(("guile" ,guile-3.0)
+       ("eudev" ,eudev)))
+    (home-page "https://github.com/artyom-poptsov/guile-udev")
+    (synopsis "Guile bindings to libudev")
+    (description
+     "Guile-Udev provides GNU Guile bindings to libudev.")
+    (license license:gpl3+)))
+
 (define-public guile-sly
   (package
     (name "guile-sly")
@@ -1728,19 +1899,20 @@ capabilities.")
     (license license:gpl3+)))
 
 (define-public g-golf
-  (let ((commit "5d2903afb4b6b65c22f587835d8fdff91916e5ee"))
+  (let ((commit   "ef830107b9765bd6a2da848d0cbe45e11374c0b5")
+        (revision "839"))
     (package
       (name "g-golf")
-      (version (git-version "1" "804" commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://git.savannah.gnu.org/git/g-golf.git")
-                      (commit commit)))
-                (file-name (git-file-name name version))
-                (sha256
-                 (base32
-                  "1xkb6a5d3i9s8lpb5cf06bd64p5srqnnhn5l0b2f5csbvyz8hmmh"))))
+      (version (git-version "0.1.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://git.savannah.gnu.org/git/g-golf.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0r472hvmf447kqvkahp1wy4irb5gy8y793hm8r9rc511smdx66cw"))))
       (build-system gnu-build-system)
       (native-inputs
        `(("autoconf" ,autoconf)
@@ -2027,8 +2199,11 @@ library.")
                 "godir = \
 $(libdir)/guile/@GUILE_EFFECTIVE_VERSION@/site-ccache\n"))
              #t)))))
-    (native-inputs `(("pkg-config" ,pkg-config)))
-    (inputs `(("guile" ,guile-3.0)))
+    (native-inputs
+     `(("guile" ,guile-3.0)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("guile" ,guile-3.0)))
     (home-page "https://www.nongnu.org/guile-lib/")
     (synopsis "Collection of useful Guile Scheme modules")
     (description
@@ -2046,12 +2221,14 @@ for Guile\".")
   (package
     (inherit guile-lib)
     (name "guile2.0-lib")
+    (native-inputs `(("pkg-config" ,pkg-config)))
     (inputs `(("guile" ,guile-2.0)))))
 
 (define-public guile2.2-lib
   (package
     (inherit guile-lib)
     (name "guile2.2-lib")
+    (native-inputs `(("pkg-config" ,pkg-config)))
     (inputs `(("guile" ,guile-2.2)))))
 
 (define-public guile3.0-lib
@@ -2229,7 +2406,7 @@ inspired by the SCSH regular expression system.")
     (description "Haunt is a static site generator written in Guile
 Scheme.  Haunt features a functional build system and an extensible
 interface for reading articles in any format.")
-    (home-page "http://haunt.dthompson.us")
+    (home-page "https://dthompson.us/projects/haunt.html")
     (license license:gpl3+)))
 
 (define-public guile2.2-haunt
@@ -2344,14 +2521,14 @@ is no support for parsing block and inline level HTML.")
 (define-public mcron
   (package
     (name "mcron")
-    (version "1.1.4")
+    (version "1.2.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnu/mcron/mcron-"
                                   version ".tar.gz"))
               (sha256
                (base32
-                "1521w3h33bhdlg6qc66sq4dwv3qsx8r8x6srq4ca6kaahy6dszw8"))))
+                "1midrn15d5kqy4zd2029bj1db6gnfhxg8mcgfy4bkp5p9nl4v4rd"))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases (modify-phases %standard-phases
@@ -2395,8 +2572,8 @@ format is also supported.")
   (deprecated-package "guile3.0-mcron" mcron))
 
 (define-public guile-picture-language
-  (let ((commit "91d10c96708d732145006dd2802acc4de08b632e")
-        (revision "1"))
+  (let ((commit "291a746a1d3b4784d38b05239bdd7b8e796ce761")
+        (revision "4"))
     (package
       (name "guile-picture-language")
       (version (git-version "0.0.1" revision commit))
@@ -2408,14 +2585,17 @@ format is also supported.")
                 (file-name (git-file-name name version))
                 (sha256
                  (base32
-                  "1ydvw9dvssdvlvhh1dr8inyzy2x6m41qgp8hsivca1xysr4gc23a"))))
+                  "0rnhf13ds92sbdicshy4sy4kl2kc431fy9vzm1divw974p7v57sd"))))
       (build-system gnu-build-system)
       (inputs
        `(("guile" ,guile-3.0)))
+      (propagated-inputs
+       `(("guile-cairo" ,guile-cairo)
+         ("guile-rsvg" ,guile-rsvg)))
       (native-inputs
        `(("autoconf" ,autoconf)
          ("automake" ,automake)
-         ("imagemagick" ,imagemagick)
+         ("librsvg" ,librsvg)
          ("pkg-config" ,pkg-config)
          ("texinfo" ,texinfo)))
       (home-page "https://git.elephly.net/software/guile-picture-language.git")
@@ -2423,7 +2603,9 @@ format is also supported.")
       (description
        "This package provides a simple SVG-based picture language for Guile.
 The picture values can directly be displayed in Geiser.")
-      (license license:lgpl3+))))
+      ;; (pict base64) is under GPLv3+, the rest is under LGPLv3+
+      (license (list license:lgpl3+
+                     license:gpl3+)))))
 
 (define-public guile2.2-picture-language
   (package
@@ -2436,11 +2618,11 @@ The picture values can directly be displayed in Geiser.")
                       guile-picture-language))
 
 (define-public guile-studio
-  (let ((commit "d24d59a68e3f1fa9477e3430fc48a2efe97b805d")
+  (let ((commit "93622e788e727d3275291f999f7e570de6a5bb35")
         (revision "1"))
     (package
       (name "guile-studio")
-      (version (git-version "0.0.2" revision commit))
+      (version (git-version "0.1.0" revision commit))
       (source (origin
                 (method git-fetch)
                 (uri (git-reference
@@ -2449,7 +2631,7 @@ The picture values can directly be displayed in Geiser.")
                 (file-name (git-file-name name version))
                 (sha256
                  (base32
-                  "0kqi0q8a7si65n21b7gn8vbninwcg0fqy5hmvy3l1bi6iync20zr"))))
+                  "0n6y0bcmkx50m8rccz7a6h4yxmwq54pf2bfzpd5ndz2bsiwiq13l"))))
       (build-system gnu-build-system)
       (arguments
        `(#:modules
@@ -2458,10 +2640,7 @@ The picture values can directly be displayed in Geiser.")
           ,@%gnu-build-system-modules)
          #:tests? #f                    ; there are none
          #:make-flags
-         (list (string-append "ICONS_DIR="
-                              (assoc-ref %build-inputs "adwaita-icon-theme")
-                              "/share/icons/Adwaita/")
-               (string-append "PICT_DIR="
+         (list (string-append "PICT_DIR="
                               (assoc-ref %build-inputs "guile-picture-language"))
                (string-append "EMACS_DIR="
                               (assoc-ref %build-inputs "emacs"))
@@ -2483,12 +2662,19 @@ The picture values can directly be displayed in Geiser.")
        `(("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-company" ,emacs-company)
+         ("emacs-ivy" ,emacs-ivy)
          ("emacs-flycheck" ,emacs-flycheck)
-         ("emacs-smart-mode-line" ,emacs-smart-mode-line)
-         ("emacs-paren-face" ,emacs-paren-face)
-         ("adwaita-icon-theme" ,adwaita-icon-theme)))
+         ("emacs-flycheck-guile" ,emacs-flycheck-guile)
+         ("emacs-paren-face" ,emacs-paren-face)))
       (native-inputs
        `(("texinfo" ,texinfo)))
       (home-page "https://gnu.org/software/guile")
@@ -2698,18 +2884,18 @@ list of components.  This module takes care of that for you.")
 (define-public guile-gi
   (package
     (name "guile-gi")
-    (version "0.3.0")
+    (version "0.3.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://lonelycactus.com/tarball/guile_gi-"
                                   version ".tar.gz"))
               (sha256
                (base32
-                "05xbwrk50h4f9fh8la8fk2wsxbnm0jcyb9phnpkkjq4sqkhkxlbj"))))
-    (build-system gnu-build-system)
+                "1ljcfyar1nb6h4jskxnnzrcxcsblawc50qqfdn8cax3zqfskmvzj"))))
+    (build-system glib-or-gtk-build-system)
     (arguments
      `(#:configure-flags '("--with-gnu-filesystem-hierarchy")
-       #:modules ((guix build gnu-build-system)
+       #:modules ((guix build glib-or-gtk-build-system)
                   (guix build utils)
                   (ice-9 popen)
                   (ice-9 rdelim))
@@ -2721,18 +2907,14 @@ list of components.  This module takes care of that for you.")
                                (open-pipe* OPEN_READ
                                            "guile" "-c"
                                            "(display (effective-version))"))))
-               (substitute* '("module/gi.scm"
-                              "module/gi/oop.scm"
-                              "module/gi/documentation.scm"
-                              "module/gi/types.scm"
-                              "module/gi/repository.scm")
+               (substitute* (find-files "module" ".*\\.scm")
                  (("\\(load-extension \"libguile-gi\" \"(.*)\"\\)" m arg)
                   (format #f "~s"
                           `(load-extension
                             (format #f "~alibguile-gi"
                                     (if (getenv "GUILE_GI_UNINSTALLED")
                                         ""
-                                        ,(format #f "~a/lib/guile/~a/"
+                                        ,(format #f "~a/lib/guile/~a/extensions/"
                                                  (assoc-ref outputs "out")
                                                  effective)))
                             ,arg)))))
@@ -2771,13 +2953,91 @@ pre-alpha code.")
   (package
     (inherit guile-gi)
     (name "guile2.2-gi")
-    (native-inputs
+    (inputs
      `(("guile" ,guile-2.2)
-       ,@(package-native-inputs guile-gi)))))
+       ,@(alist-delete "guile" (package-inputs guile-gi))))))
 
 (define-public guile3.0-gi
   (deprecated-package "guile3.0-gi" guile-gi))
 
+(define-public guile-srfi-89
+  (package
+    (name "guile-srfi-89")
+    (version "0.0.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://gitlab.com/mjbecze/guile-srfi-89.git")
+             (commit version)))
+       (sha256
+         (base32
+           "1981c0rrzxqx3md9jx8ir7j3m2mzg9m72b33p5jvw36zirbzpl20"))
+       (file-name (git-file-name name version))))
+    (build-system guile-build-system)
+    (native-inputs
+     `(("guile" ,guile-3.0)))
+    (home-page "https://gitlab.com/mjbecze/guile-srfi-89")
+    (synopsis "Hygienic implementation of SRFI-89 for Guile")
+    (description
+     "This package provides SRFI-89 optional positional and named
+parameters, which  define* and lambda* special forms")
+    (license license:gpl3+)))
+
+(define-public guile-srfi-145
+  (package
+    (name "guile-srfi-145")
+    (version "0.0.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://gitlab.com/mjbecze/guile-srfi-145.git")
+             (commit version)))
+       (sha256
+         (base32
+           "1gssa8cmcp8640fil9z8dpil8v5l279wlalqjcx3fls5jwv13q1b"))
+       (file-name (git-file-name name version))))
+    (build-system guile-build-system)
+    (native-inputs
+     `(("guile" ,guile-3.0)))
+    (home-page "https://gitlab.com/mjbecze/guile-srfi-145")
+    (synopsis "SRFI-145 port for Guile")
+    (description
+     "This package provides SRFI-145.  This provides the means to
+denote the invalidity of certain code paths in a Scheme program.")
+    (license license:gpl3+)))
+
+(define-public guile-srfi-158
+  (package
+    (name "guile-srfi-158")
+    (version "0.0.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://gitlab.com/mjbecze/guile-srfi-158.git")
+             (commit version)))
+       (sha256
+        (base32
+         "0b8hlv1bldbcwkcxi9y8mm6xp5gbgpg7b15bwqxv70iynl9d9a7c"))
+       (file-name (git-file-name name version))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("guile" ,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
+for Guile.  SRFI 158 defines utility procedures that create,
+transform, and consume generators.  It also defines procedures that
+return accumulators.  It is implemented by wrapping the sample
+implementation in a thin Guile compatibility layer.")
+    (license license:gpl3+)))
+
 (define-public guile-srfi-159
   (let ((commit "1bd98abda2ae4ef8f36761a167903e55c6bda7bb")
         (revision "0"))
@@ -2808,24 +3068,80 @@ formatting combinators specified by
 more expressive and flexible than the traditional @code{format} procedure.")
       (license license:bsd-3))))
 
+(define-public guile-srfi-180
+  (let ((commit "9188bf9724c6d320ef804579d222e855b007b193")
+        (revision "0"))
+    (package
+      (name "guile-srfi-180")
+      (version (git-version "0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/scheme-requests-for-implementation/srfi-180")
+               (commit commit)))
+         (sha256
+          (base32
+           "08lf70rsak8mwfij55xc37pg9zg7c87fizmhz7ln46skzj68sl3y"))
+         (modules '((guix build utils)))
+         (snippet
+          '(begin
+             (delete-file-recursively "srfi/files")
+             (delete-file "srfi/run-r7rs-checks.guile.scm")
+             (delete-file "srfi/run-r7rs-checks.scm")
+             (delete-file "srfi/check.scm")
+             #t))
+         (file-name (git-file-name name version))))
+      (build-system guile-build-system)
+      (arguments
+       '(#:not-compiled-file-regexp "body\\.scm$"))
+      (native-inputs
+       `(("guile" ,guile-3.0)))
+      (propagated-inputs
+       `(("guile-srfi-145" ,guile-srfi-145)))
+      (home-page "https://srfi.schemers.org/srfi-180/")
+      (synopsis "JSON parser and printer for Guile")
+      (description
+       "This library implements a JavaScript Object Notation (JSON) parser and printer.
+It also supports parsing JSON objects that may be bigger than memory with a streaming
+API.")
+      (license license:expat))))
+
 (define-public emacsy
   (package
     (name "emacsy")
     (version "0.4.1")
     (source (origin
               (method url-fetch)
-              (uri (string-append
-                    "https://download.savannah.nongnu.org/releases/"
-                    name "/" name "-" version ".tar.gz"))
+              (uri (string-append "mirror://savannah/emacsy/emacsy-"
+                                  version ".tar.gz"))
               (sha256
                (base32
-                "1cpb85dl1nibd34c2x2h7vfmjpkgh353p5b1w20v6cs6gmvgg4np"))))
+                "1cpb85dl1nibd34c2x2h7vfmjpkgh353p5b1w20v6cs6gmvgg4np"))
+              (modules '((guix build utils)))
+              (snippet
+               '(begin
+                  (substitute* "configure"
+                    ;; Allow builds with Guile 3.0.
+                    (("2\\.2 2\\.0")
+                     "3.0 2.2 2.0")
+
+                    ;; Freeglut 3.2 provides 'glut.pc', not 'freeglut.pc'.
+                    (("freeglut >= ")
+                     "glut >= "))
+
+                  (substitute* '("emacsy/emacsy.c"
+                                 "example/hello-emacsy.c")
+                    (("#include <libguile\\.h>")
+                     (string-append "#include <stdlib.h>\n"
+                                    "#include <stdio.h>\n"
+                                    "#include <string.h>\n"
+                                    "#include <unistd.h>\n"
+                                    "#include <libguile.h>\n")))))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("bzip2" ,bzip2)
-       ("guile" ,guile-2.2)
+     `(("bzip2" ,bzip2)
+       ("guile" ,guile-3.0)
        ("gettext" ,gettext-minimal)
        ("libtool" ,libtool)
        ("perl" ,perl)
@@ -2834,7 +3150,7 @@ more expressive and flexible than the traditional @code{format} procedure.")
        ("texlive" ,(texlive-union (list texlive-generic-epsf)))))
     (inputs
      `(("dbus-glib" ,dbus-glib)
-       ("guile" ,guile-2.2)
+       ("guile" ,guile-3.0)
        ("guile-lib" ,guile-lib)
        ("guile-readline" ,guile-readline)
        ("freeglut" ,freeglut)
@@ -2890,20 +3206,20 @@ in C using Gtk+-3 and WebKitGtk.")
     (license license:gpl3+)))
 
 (define-public emacsy-minimal
-  (let ((commit "v0.4.1-28-gd459ca1"))
+  (let ((commit "v0.4.1-37-g5f91ee6"))
     (package
       (inherit emacsy)
       (name "emacsy-minimal")
       (version (string-drop commit 1))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://git.savannah.gnu.org/git/emacsy.git")
-                      (commit commit)))
-                (file-name (git-file-name name version))
-                (sha256
-                 (base32
-                  "1ps15w8cxj9kc18gmvys9jv9xa1qqa7m43ismv34l3cmhddrn0sr"))))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://git.savannah.gnu.org/git/emacsy.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "03ym14g9qhjqmryr5z065kynqm8yhmvnbs2djl6vp3i9cmqln8cl"))))
       (build-system gnu-build-system)
       (inputs
        `(("guile" ,guile-2.2)
@@ -2914,10 +3230,10 @@ in C using Gtk+-3 and WebKitGtk.")
        `(#:configure-flags '("--without-examples")
          #:phases
          (modify-phases %standard-phases
-         (add-before 'configure 'setenv
-           (lambda _
-             (setenv "GUILE_AUTO_COMPILE" "0")
-             #t))))))))
+           (add-before 'configure 'setenv
+             (lambda _
+               (setenv "GUILE_AUTO_COMPILE" "0")
+               #t))))))))
 
 (define-public guile-jpeg
   (let ((commit "6a1673578b297c2c1b28e44a76bd5c49e76a5046")
@@ -2956,16 +3272,16 @@ perform geometrical transforms on JPEG images.")
 (define-public nomad
   (package
     (name "nomad")
-    (version "0.2.0-alpha")
+    (version "0.2.0-alpha-199-g3e7a475")
     (source (origin
               (method git-fetch)
               (uri (git-reference
-                    (url "https://git.savannah.gnu.org/git/nomad.git")
+                    (url "https://git.savannah.gnu.org/git/nomad.git/")
                     (commit version)))
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1z2z5x37v1qrk2vb8qlz2yj030iirzzd0maa9fjxzlqkrg6krbaj"))))
+                "0p0ha6prp7pyadp61clbhc6b55023vxzfwy14j2qygb2mkq7fhic"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("autoconf" ,autoconf)
@@ -2976,36 +3292,36 @@ perform geometrical transforms on JPEG images.")
        ("guile" ,guile-2.2)
        ("glib:bin" ,glib "bin")
        ("texinfo" ,texinfo)
+       ("gettext" ,gettext-minimal)
        ("perl" ,perl)))
     (inputs
-     `(("guile" ,guile-2.2)
+     `(;; Guile
+       ("guile" ,guile-2.2)
        ("guile-lib" ,guile2.2-lib)
        ("guile-readline" ,guile2.2-readline)
        ("guile-gcrypt" ,guile2.2-gcrypt)
        ("gnutls" ,gnutls)
+       ("g-golf" ,g-golf)
        ("shroud" ,shroud)
        ("emacsy" ,emacsy-minimal)
+       ;; Gtk
        ("glib" ,glib)
        ("dbus-glib" ,dbus-glib)
+       ("glib-networking" ,glib-networking)
        ("gtk+" ,gtk+)
        ("gtk+:bin" ,gtk+ "bin")
-       ("gtksourceview" ,gtksourceview)
        ("webkitgtk" ,webkitgtk)
-       ("g-golf" ,g-golf)
-       ("xorg-server" ,xorg-server)))
-    (propagated-inputs
-     `(("glib" ,glib)
-       ("glib-networking" ,glib-networking)
+       ("gtksourceview" ,gtksourceview)
+       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
+       ("vte" ,vte)
+       ;; Gstreamer
        ("gstreamer" ,gstreamer)
        ("gst-plugins-base" ,gst-plugins-base)
        ("gst-plugins-good" ,gst-plugins-good)
        ("gst-plugins-bad" ,gst-plugins-bad)
        ("gst-plugins-ugly" ,gst-plugins-ugly)
-       ("gtk+" ,gtk+)
-       ("gtksourceview" ,gtksourceview)
-       ("vte" ,vte)
-       ("webkitgtk" ,webkitgtk)
-       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
+       ;; Util
+       ("xorg-server" ,xorg-server)))
     (arguments
      `(#:modules ((guix build gnu-build-system)
                   (guix build utils)
@@ -3023,49 +3339,40 @@ perform geometrical transforms on JPEG images.")
              #t))
          (add-after 'install 'wrap-binaries
            (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (gio-deps (map (cut assoc-ref inputs <>)
-                                   '("glib-networking"
-                                     "glib"
-                                     "gstreamer"
-                                     "gst-plugins-base"
-                                     "gst-plugins-good"
-                                     "gst-plugins-bad"
-                                     "gst-plugins-ugly")))
-                    (gio-mod-path (map (cut string-append <>
-                                            "/lib/gio/modules")
-                                       gio-deps))
-                    (effective (read-line (open-pipe*
-                                           OPEN_READ
-                                           "guile" "-c"
-                                           "(display (effective-version))")))
-                    (deps (map (cut assoc-ref inputs <>)
-                               '("emacsy" "guile-lib" "guile-readline"
-                                 "g-golf" "shroud")))
-                    (scm-path (map (cut string-append <>
-                                        "/share/guile/site/" effective)
-                                   `(,out ,@deps)))
-                    (go-path (map (cut string-append <>
-                                       "/lib/guile/" effective "/site-ccache")
-                                  `(,out ,@deps)))
-                    (progs (map (cut string-append out "/bin/" <>)
-                                '("nomad"))))
-               (map (cut wrap-program <>
-                         `("GIO_EXTRA_MODULES" ":" prefix ,gio-mod-path)
-                         `("GUILE_LOAD_PATH" ":" prefix ,scm-path)
-                         `("GUILE_LOAD_COMPILED_PATH" ":"
-                           prefix ,go-path))
-                    progs)
+             (let* ((out        (assoc-ref outputs "out"))
+                    (effective  (read-line (open-pipe*
+                                            OPEN_READ
+                                            "guile" "-c"
+                                            "(display (effective-version))")))
+                    (gst-plugins (map (lambda (i)
+                                        (string-append (assoc-ref inputs i)
+                                                       "/lib/gstreamer-1.0"))
+                                      `("gstreamer"
+                                        "gst-plugins-base"
+                                        "gst-plugins-good"
+                                        "gst-plugins-bad"
+                                        "gst-plugins-ugly")))
+                    (out-append (lambda (. args)
+                                  (apply string-append out args)))
+                    (gi-path    (out-append "/lib/girepository-1.0"))
+                    (load-path  (out-append "/share/guile/site/" effective))
+                    (comp-path  (out-append "/lib/guile/"
+                                            effective "/site-ccache"))
+                    (ext-path   (out-append "/libexec/nomad")))
+               (wrap-program (string-append out "/bin/nomad")
+                 `("GUILE_LOAD_PATH" ":" prefix
+                   (,load-path
+                    ,(getenv "GUILE_LOAD_PATH")))
+                 `("GUILE_LOAD_COMPILED_PATH" ":" prefix
+                   (,comp-path
+                    ,(getenv "GUILE_LOAD_COMPILED_PATH")))
+                 `("GI_TYPELIB_PATH" ":" prefix
+                   (,gi-path ,(getenv "GI_TYPELIB_PATH")))
+                 `("GIO_EXTRA_MODULES" ":" prefix
+                   (,(getenv "GIO_EXTRA_MODULES")))
+                 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix ,gst-plugins)
+                 `("NOMAD_WEB_EXTENSION_DIR" ":" prefix (,ext-path)))
                #t))))))
-    (native-search-paths
-     (list (search-path-specification
-            (variable "GI_TYPELIB_PATH")
-            (separator ":")
-            (files '("lib/girepository-1.0")))
-           (search-path-specification
-            (variable "NOMAD_WEB_EXTENSION_DIR")
-            (separator ":")
-            (files '("libexec/nomad")))))
     (home-page "https://savannah.nongnu.org/projects/nomad/")
     (synopsis "Extensible Web Browser in Guile Scheme")
     (description "Nomad is a Emacs-like web browser that consists of a modular
@@ -3221,7 +3528,7 @@ tests being run, resulting clearer and more specific output.")
     (native-inputs
      `(("pkg-config" ,pkg-config)))
     (inputs
-     `(("guile" ,guile-2.2)))
+     `(("guile" ,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,
@@ -3230,11 +3537,14 @@ 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 "guile3.0-semver")
+    (name "guile2.2-semver")
     (inputs
-     `(("guile" ,guile-3.0)))))
+     `(("guile" ,guile-2.2)))))
 
 (define-public guile-hashing
   (package
@@ -3549,7 +3859,7 @@ models and also supports a rich set of boolean query operators.")
     (source (origin (method git-fetch)
                     (uri (git-reference
                           (url
-                           "https://github.com/o-nly/torrent.git")
+                           "https://github.com/o-nly/torrent")
                           (commit version)))
                     (file-name (git-file-name name version))
                     (sha256
@@ -3692,7 +4002,7 @@ manipulating graphs and datasets.")
 (define-public guile-jsonld
   (package
     (name "guile-jsonld")
-    (version "1.0.1")
+    (version "1.0.2")
     (source
       (origin
         (method git-fetch)
@@ -3702,13 +4012,13 @@ manipulating graphs and datasets.")
         (file-name (git-file-name name version))
         (sha256
          (base32
-          "0zfn3nwlz6xzip1j8xbj768dc299r037cfc81bk6kwl9xhzkjbrg"))))
+          "1ryyvh71899z2inivqglb8d78zzp1sd0wv9a56kvcmrxf1966z6r"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f)); require network
     (propagated-inputs
      `(("guile-gnutls" ,gnutls)
-       ("guile-json" ,guile-json-3)
+       ("guile-json" ,guile-json-4)
        ("guile-rdf" ,guile-rdf)))
     (inputs
      `(("guile" ,guile-3.0)))
@@ -3725,3 +4035,495 @@ between data, in a way that is very similar to WikiData or RDF for instance.
 An object can have relations (in the form of an IRI) that relates it to one or
 more objects or strings, represented by a Json object or an IRI.")
     (license license:gpl3+)))
+
+(define-public guile-struct-pack
+  (package
+    (name "guile-struct-pack")
+    (version "1.1.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/weinholt/struct-pack")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0hd72m821pahjphzyjn26i55542v8makr55xzjll2cycja4wsbc1"))))
+    (build-system guile-build-system)
+    (arguments
+     `(#:compile-flags '("--r6rs" "-Wunbound-variable" "-Warity-mismatch")
+       #:modules ((guix build guile-build-system)
+                  (guix build utils)
+                  (srfi srfi-26)
+                  (ice-9 ftw))
+       #:phases (modify-phases %standard-phases
+                  (add-before 'build 'move-sls-files
+                    (lambda _
+                      ;; Move files under a struct/ directory to reflect the
+                      ;; module hierarchy.
+                      (define dst-folder "struct")
+                      (define (target file)
+                        (string-append dst-folder "/" file))
+                      (define files
+                        (scandir "." (negate (cut member <> '("." "..")))))
+                      (mkdir dst-folder)
+                      (for-each (lambda (file)
+                                  (rename-file file (target file)))
+                                files)
+                      #t)))))
+    (native-inputs
+     `(("guile" ,guile-3.0)))
+    (home-page "https://github.com/weinholt/struct-pack")
+    (synopsis "R6RS library for working with packed byte structures")
+    (description
+     "This is an R6RS library for working with packed byte structures.  It is
+similar to struct in Python or pack and unpack in Perl.")
+    (license license:expat)))
+
+(define-public guile-machine-code
+  (package
+    (name "guile-machine-code")
+    (version "2.1.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/weinholt/machine-code")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0wzj3caj2jypzyjqfkfqkvr3kkbjabsnhldv9kvnx9w9qnria5yd"))))
+    (build-system guile-build-system)
+    (arguments
+     `(#:compile-flags '("--r6rs" "-Wunbound-variable" "-Warity-mismatch")
+       #:modules ((guix build guile-build-system)
+                  (guix build utils)
+                  (srfi srfi-26)
+                  (ice-9 ftw))
+       #:phases (modify-phases %standard-phases
+                  (add-before 'build 'move-sls-files
+                    (lambda _
+                      ;; Move files under a struct/ directory to reflect the
+                      ;; module hierarchy.
+                      (define dst-folder "machine-code")
+                      (define (target file)
+                        (string-append dst-folder "/" file))
+                      (define files
+                        (scandir "." (negate (cut member <> '("." "..")))))
+                      (mkdir dst-folder)
+                      (for-each (lambda (file)
+                                  (rename-file file (target file)))
+                                files)
+                      #t)))))
+    (native-inputs
+     `(("guile" ,guile-3.0)))
+    (propagated-inputs
+     `(("guile-struct-pack" ,guile-struct-pack)))
+    (home-page "https://github.com/weinholt/machine-code")
+    (synopsis "Tools that relate to machine code and object formats")
+    (description
+     "This project is about the development of tools that relate to machine
+code and object formats; for all architectures.  Here you'll find libraries
+for working with binary code: assembly, disassembly, instruction tables,
+object formats and related areas.")
+    (license license:expat)))
+
+(define-public guile-laesare
+  (package
+    (name "guile-laesare")
+    (version "1.0.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/weinholt/laesare")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "15q619gzw717r8r1ql23zfdaibpnp9qqs96032vdc3rj74msxc92"))))
+    (build-system guile-build-system)
+    (arguments
+     `(#:compile-flags '("--r6rs" "-Wunbound-variable" "-Warity-mismatch")
+       #:modules ((guix build guile-build-system)
+                  (guix build utils)
+                  (srfi srfi-26)
+                  (ice-9 ftw))
+       #:phases (modify-phases %standard-phases
+                  (add-before 'build 'move-sls-files
+                    (lambda _
+                      ;; Move files under a laesare directory to reflect
+                      ;; the module hierarchy.
+                      (define dst-folder "laesare")
+                      (define (target file)
+                        (string-append dst-folder "/" file))
+                      (define files
+                        (scandir "." (negate (cut member <> '("." "..")))))
+                      (mkdir dst-folder)
+                      (for-each (lambda (file)
+                                  (rename-file file (target file)))
+                                files)
+                      #t)))))
+    (native-inputs
+     `(("guile" ,guile-3.0)))
+    (home-page "https://github.com/weinholt/laesare")
+    (synopsis "R6RS Scheme library that provides a reader")
+    (description
+     "This is an R6RS Scheme library that provides a reader with some extra
+features not found in the standard read procedure such as a compatible mode
+with support for other RnRS standards and a tolerant mode that continues on
+errors.")
+    (license license:expat)))
+
+(define-public guile-avahi
+  (let ((commit "6d43caf64f672a9694bf6c98bbf7a734f17a51e8")
+        (revision "1"))
+    (package
+      (name "guile-avahi")
+      (version (git-version "0.4.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "git://git.sv.gnu.org/guile-avahi.git")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "0fvrf8x22yvc71180hd3xkhspg9yvadi0pbv8shzlsaxqncwy1m9"))
+                (modules '((guix build utils)))))
+      (build-system gnu-build-system)
+      (arguments
+       `(#: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)
+         #:make-flags
+         '("GUILE_AUTO_COMPILE=0")    ;to prevent guild warnings
+         #:phases
+         (modify-phases %standard-phases
+           (add-before 'check 'fix-guile-avahi-file-name
+           (lambda* (#:key outputs #:allow-other-keys)
+             (with-directory-excursion "src"
+               (invoke "make" "install"
+                       "-j" (number->string
+                             (parallel-job-count))))
+             (let* ((out   (assoc-ref outputs "out"))
+                    (files (find-files "modules" ".scm")))
+               (substitute* files
+                 (("\"guile-avahi-v-0\"")
+                  (format #f "\"~a/lib/guile/~a/extensions/guile-avahi-v-0\""
+                          out (target-guile-effective-version))))
+               #t))))))
+      (inputs
+       `(("guile" ,guile-3.0)
+         ("avahi" ,avahi)))
+      (native-inputs
+       `(("autoconf" ,autoconf)
+         ("automake" ,automake)
+         ("libtool" ,libtool)
+         ("pkg-config" ,pkg-config)
+         ("texinfo" ,texinfo)))
+      (synopsis "Guile bindings to Avahi")
+      (description
+       "This package provides bindings for Avahi.  It allows programmers to
+use functionalities of the Avahi client library from Guile Scheme programs.
+Avahi itself is an implementation of multicast DNS (mDNS) and DNS Service
+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")
+    (version "0.2.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/aconchillo/guile-jwt")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1p8sapiv5im18rjnzc8xnw6y7dr661rycf9g10z5ww0dl4rfz3z1"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("pkg-config" ,pkg-config)))
+    (propagated-inputs
+     `(("guile-json" ,guile-json-4)))
+    (inputs
+     `(("guile" ,guile-3.0)))
+    (home-page "https://github.com/aconchillo/guile-jwt")
+    (synopsis "JSON Web Token library for Guile")
+    (description
+     "guile-jwt is a JSON Web Token module for Guile.  JSON Web Tokens are an
+open, industry standard (RFC 7519) method for representing claims securely
+between two parties.  guile-jwt allows you to decode, verify and generate
+JWT.  Supported algorithms: HS256, HS384, HS512.")
+    (license license:gpl3+)))
+
+(define-public guile-sodium
+  (package
+    (name "guile-sodium")
+    (version "0.1.0")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://inqlab.net/git/guile-sodium.git")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256 (base32 "189jsj87hycs57a54x0b9lifwvhr63nypb9vfxdrq7rwrpcvi5f8"))))
+    (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)))
+    (synopsis "Guile bindings to the libsodium cryptographic library")
+    (description
+     "This package provides Guile bindings to the libsodium cryptographic library
+which provides core cryptographic primitives needed to build higher-level
+tools.")
+    (home-page "https://inqlab.net/git/guile-sodium.git")
+    (license license:gpl3+)))
+
+(define-public guile-eris
+  (package
+    (name "guile-eris")
+    (version "0.2.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://inqlab.net/git/eris.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256 (base32 "1ijglmwkdy1l87gj429qfjis0v8b1zlxhbyfhx5za8664h68nqka"))))
+    (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)))
+    (propagated-inputs
+     `(("guile-sodium" ,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
+Immutable Storage (ERIS).  ERIS allows arbirtary content to be encoded into
+uniformly sized, encrypted blocks that can be reassembled using a short
+read-capability.")
+    (home-page "https://inqlab.net/git/eris.git")
+    (license license:gpl3+)))
+
+(define-public guile-r6rs-protobuf
+  (package
+    (name "guile-r6rs-protobuf")
+    (version "0.9")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://gitlab.com/joolean/r6rs-protobuf")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1xmn7jlr1xiqgd35klq910p1bnil1iwdvqxkjr3zzml3spy8p2aa"))))
+    (build-system guile-build-system)
+    (arguments
+     `(#:compile-flags '("--r6rs")))
+    (inputs
+     `(("guile" ,guile-3.0)))
+    (home-page "https://gitlab.com/joolean/r6rs-protobuf/")
+    (synopsis "Scheme implementation of Protocol Buffers")
+    (description
+     "This project provides a pure Scheme implementation of Protocol Buffers,
+including parsing and code generation.")
+    (license license:gpl3+)))
+
+(define-public guile-shapefile
+  (package
+    (name "guile-shapefile")
+    (version "0.1.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/HugoNikanor/guile-shapefile")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1zvrpc8bshw9w0vhdpmhv00j07mzsdyg2f9hfabr83v08zhfi8ml"))))
+    (build-system guile-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'delete-pre-generated-docs
+           (lambda _
+             (delete-file-recursively "docs")
+             #t))
+         (add-after 'install 'install-info-documentation
+           (lambda* (#:key 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")))
+               (invoke makeinfo "guile-shapefile.texi" "-o" info)
+               #t))))))
+    (inputs
+     `(("guile" ,guile-3.0)))
+    (native-inputs
+     `(("texinfo" ,texinfo)))
+    (home-page "https://github.com/HugoNikanor/guile-shapefile")
+    (synopsis "Parse shapefiles in Guile")
+    (description
+     "Guile Shapefile is a Guile library for reading shapefiles.")
+    (license license:expat)))
+
+(define-public guile-libyaml
+  (let ((commit "f5d33a6880e96571d3cb079ed7755ffc156cac46")
+        (revision "1"))
+    (package
+      (name "guile-libyaml")
+      (version (git-version "0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/mwette/guile-libyaml")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "12x91983fh1j39zy7kbk19acc1rqdh8515ddx1mh7l26j04k9wgq"))))
+      (build-system gnu-build-system)
+      (arguments
+       `(#:modules (((guix build guile-build-system)
+                     #:prefix guile:)
+                    ,@%gnu-build-system-modules)
+         #:imported-modules ((guix build guile-build-system)
+                             ,@%gnu-build-system-modules)
+         #:tests? #false ; there are none
+         #:phases
+         (modify-phases %standard-phases
+           (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 (string-append (assoc-ref inputs "nyacc")
+                                         "/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))
+           (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))
+           (replace 'build
+             (assoc-ref guile:%standard-phases 'build))
+           (delete 'install))))
+      (inputs
+       `(("guile" ,guile-3.0)
+         ("libyaml" ,libyaml)))
+      (propagated-inputs
+       `(("guile-bytestructures" ,guile-bytestructures)))
+      (native-inputs
+       `(("nyacc" ,nyacc)))
+      (home-page "https://github.com/mwette/guile-libyaml")
+      (synopsis "Guile wrapper for libyaml")
+      (description
+       "This package provides a simple yaml module for Guile using the
+ffi-helper from nyacc.")
+      (license license:lgpl3+))))
+
+(define-public schmutz
+  (let ((commit "add24588c59552537b8f1316df99a0cdd62c221e")
+        (revision "1"))
+    (package
+      (name "schmutz")
+      (version (git-version "0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/arximboldi/schmutz")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "1z3n61sj62lnn15mandvyrpjzli07rp9r62ypvgg3a8bvh37yc89"))))
+      (build-system cmake-build-system)
+      (arguments `(#:tests? #f))
+      (native-inputs
+       `(("pkg-config" ,pkg-config)))
+      (inputs
+       `(("guile" ,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
+for C++ code using a simple embedded DSL.  Think of it as @code{Boost.Python}
+or @code{LuaBind} but for Scheme.")
+      (license license:boost1.0))))
diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
index 71d8a7bfde..0d6f13c97f 100644
--- a/gnu/packages/guile.scm
+++ b/gnu/packages/guile.scm
@@ -310,16 +310,19 @@ without requiring the source code to be rewritten.")
 
 (define-public guile-3.0-latest
   ;; TODO: Make this 'guile-3.0' on the next rebuild cycle.
-  (package
-    (inherit guile-3.0)
-    (version "3.0.4")
-    (source (origin
-              (inherit (package-source guile-3.0))
-              (uri (string-append "mirror://gnu/guile/guile-"
-                                  version ".tar.xz"))
-              (sha256
-               (base32
-                "0c8dkyvs6xbxp7rgnhkyakajzhakay7qn9kahj1mj49x5vf4fybb"))))))
+  (package-with-extra-patches
+   (package
+     (inherit guile-3.0)
+     (version "3.0.5")
+     (source (origin
+               (inherit (package-source guile-3.0))
+               (uri (string-append "mirror://gnu/guile/guile-"
+                                   version ".tar.xz"))
+               (sha256
+                (base32
+                 "1wah6fq1h8vmbpdadjych1mq8hyqkd7p015cbxm14ri37l1gnxid")))))
+   ;; Remove on the next rebuild cycle.
+   (search-patches "guile-2.2-skip-so-test.patch")))
 
 (define-public guile-next
   (deprecated-package "guile-next" guile-3.0))
@@ -420,11 +423,13 @@ GNU@tie{}Guile.  Use the @code{(ice-9 readline)} module and call its
   ;; A procedure that rewrites the dependency tree of the given package to use
   ;; GUILE-2.0 instead of GUILE-3.0.
   (package-input-rewriting `((,guile-3.0 . ,guile-2.0))
-                           (guile-variant-package-name "guile2.0")))
+                           (guile-variant-package-name "guile2.0")
+                           #:deep? #f))
 
 (define package-for-guile-2.2
   (package-input-rewriting `((,guile-3.0 . ,guile-2.2))
-                           (guile-variant-package-name "guile2.2")))
+                           (guile-variant-package-name "guile2.2")
+                           #:deep? #f))
 
 (define-syntax define-deprecated-guile3.0-package
   (lambda (s)
@@ -576,14 +581,14 @@ specification.  These are the main features:
   (package
     (inherit guile-json-3)
     (name "guile-json")
-    (version "4.3.2")
+    (version "4.5.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://savannah/guile-json/guile-json-"
                                   version ".tar.gz"))
               (sha256
                (base32
-                "0255c7f053z4p9mqzhpxwbfx3y47j9nfvlgnm8xasdclyzmjl9y2"))))))
+                "0iigada80cg7dl10z6ligiykci0cv9b88zmncz47nsz5g9gacdpc"))))))
 
 (define-public guile2.2-json
   (package-for-guile-2.2 guile-json-4))
@@ -684,17 +689,17 @@ Guile's foreign function interface.")
 (define-public guile-bytestructures
   (package
     (name "guile-bytestructures")
-    (version "1.0.7")
+    (version "1.0.9")
     (home-page "https://github.com/TaylanUB/scheme-bytestructures")
     (source (origin
               (method git-fetch)
               (uri (git-reference
                     (url home-page)
-                    (commit (string-append "v" version))))
+                    (commit version)))
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0q0habjiy3h9cigb7q1br9kz6z212dn2ab31f6dgd3rrmsfn5rvb"))))
+                "0r59sqrvwbsknw21bf44bppi6wdhd2rl2v5dw9i2vij3v8w7pgkm"))))
     (build-system gnu-build-system)
     (arguments
      `(#:make-flags '("GUILE_AUTO_COMPILE=0")     ;to prevent guild warnings
@@ -735,16 +740,16 @@ type system, elevating types to first-class status.")
 (define-public guile-git
   (package
     (name "guile-git")
-    (version "0.3.0")
+    (version "0.4.0")
     (home-page "https://gitlab.com/guile-git/guile-git.git")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://gitlab.com/guile-git/guile-git/uploads/"
-                                  "4c563d8e7e1ff84396abe8ca7011bcaf/guile-git-"
+                                  "2600bb0dfdfb00bfbe46811dccad51d8/guile-git-"
                                   version ".tar.gz"))
               (sha256
                (base32
-                "0c5i3d16hp7gp9rd78vk9zc45js8bphf92m4lbb5gyi4l1yl7kkm"))))
+                "1kxyg9x2aa1pg69cl48wysq0pbxvwfahy1xpl5ab6p8babhf7kic"))))
     (build-system gnu-build-system)
     (arguments
      `(#:make-flags '("GUILE_AUTO_COMPILE=0")))     ; to prevent guild warnings
@@ -767,15 +772,7 @@ manipulate repositories of the Git version control system.")
   (package-for-guile-2.2 guile-git))
 
 (define-public guile2.0-git
-  (let ((base (package-for-guile-2.0 guile-git)))
-    (package
-      (inherit base)
-      ;; Libgit2's Guile test driver requires (ice-9 textual-ports), which is
-      ;; not in Guile 2.0.  Thus, keep LIBGIT2 as-is here (i.e., built against
-      ;; Guile 2.2).
-      (inputs `(("libgit2" ,libgit2)
-                ,@(srfi-1:alist-delete "libgit2"
-                                       (package-inputs base)))))))
+  (package-for-guile-2.0 guile-git))
 
 (define-deprecated-guile3.0-package guile3.0-git)
 
@@ -803,7 +800,10 @@ manipulate repositories of the Git version control system.")
     (native-inputs
      `(("autoconf" ,autoconf)
        ("automake" ,automake)
-       ("pkg-config" ,pkg-config)))
+       ("pkg-config" ,pkg-config)
+       ,@(if (%current-target-system)
+             `(("guile" ,guile-3.0))   ;for 'guild compile' and 'guile-3.0.pc'
+             '())))
     (inputs
      `(("guile" ,guile-3.0)
        ("zlib" ,zlib)))
@@ -818,7 +818,7 @@ Guile's foreign function interface.")
 (define-public guile-lzlib
   (package
     (name "guile-lzlib")
-    (version "0.0.1")
+    (version "0.0.2")
     (source
      (origin
        (method url-fetch)
@@ -828,7 +828,7 @@ Guile's foreign function interface.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0rdmszn1qix085ci2mddwq5cypipc004fk7arrrkgn9bv39hazza"))))
+         "11sggvncyx08ssp1s5xii4d6nskh1qwqihnbpzzvkrs7sivxn8w6"))))
     (build-system gnu-build-system)
     (arguments
      '(#:make-flags
@@ -836,7 +836,10 @@ Guile's foreign function interface.")
     (native-inputs
      `(("autoconf" ,autoconf)
        ("automake" ,automake)
-       ("pkg-config" ,pkg-config)))
+       ("pkg-config" ,pkg-config)
+       ,@(if (%current-target-system)
+             `(("guile" ,guile-3.0))   ;for 'guild compile' and 'guile-3.0.pc'
+             '())))
     (inputs
      `(("guile" ,guile-3.0)
        ("lzlib" ,lzlib)))
@@ -848,4 +851,32 @@ pure Scheme by using Guile's foreign function interface.")
     (home-page "https://notabug.org/guile-lzlib/guile-lzlib")
     (license license:gpl3+)))
 
+(define-public guile-zstd
+  (package
+    (name "guile-zstd")
+    (version "0.1.1")
+    (home-page "https://notabug.org/guile-zstd/guile-zstd")
+    (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
+                "1c8l7829b5yx8wdc0mrhzjfwb6h9hb7cd8dfxcr71a7vlsi86310"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("pkg-config" ,pkg-config)
+       ("guile" ,guile-3.0)))
+    (inputs
+     `(("zstd" ,zstd "lib")
+       ("guile" ,guile-3.0)))
+    (synopsis "GNU Guile bindings to the zstd compression library")
+    (description
+     "This package provides a GNU Guile interface to the zstd (``zstandard'')
+compression library.")
+    (license license:gpl3+)))
+
 ;;; guile.scm ends here
diff --git a/gnu/packages/hardware.scm b/gnu/packages/hardware.scm
index 211a5a34ac..3da6759472 100644
--- a/gnu/packages/hardware.scm
+++ b/gnu/packages/hardware.scm
@@ -2,6 +2,7 @@
 ;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
 ;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
+;;; Copyright © 2021 Evgeny Pisemsky <evgeny@pisemsky.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -29,6 +30,7 @@
   #:use-module (gnu packages documentation)
   #:use-module (gnu packages gcc)
   #:use-module (gnu packages glib)
+  #:use-module (gnu packages gtk)
   #:use-module (gnu packages libusb)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages ncurses)
@@ -52,14 +54,14 @@
 (define-public ddcutil
   (package
     (name "ddcutil")
-    (version "0.9.8")
+    (version "0.9.9")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://www.ddcutil.com/tarballs/"
                            "ddcutil-" version ".tar.gz"))
        (sha256
-        (base32 "13ccxbqgyz4ah9jwbcylnfkgl8j3ida8xd00xkcq4xnfyyv5mg6v"))))
+        (base32 "0anyxy53k2613hq9glaad16llqlv6iim5p8gz0rs5pnpp8p00dg1"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
@@ -192,7 +194,7 @@ Memtest86+ cannot currently be used on computers booted with UEFI.")
 (define-public memtester
   (package
     (name "memtester")
-    (version "4.3.0")
+    (version "4.5.0")
     (source
      (origin
        (method url-fetch)
@@ -200,7 +202,7 @@ Memtest86+ cannot currently be used on computers booted with UEFI.")
        (uri (string-append "http://pyropus.ca/software/memtester/old-versions/"
                            "memtester-" version ".tar.gz"))
        (sha256
-        (base32 "127xymmyzb9r6dxqrwd69v7gf8csv8kv7fjvagbglf3wfgyy5pzr"))))
+        (base32 "0dxfwayns3hjjplkxkpkm1409lmjlpi4chcrahcvdbnl0q6jpmcf"))))
     (build-system gnu-build-system)
     (arguments
      `(#:make-flags
@@ -289,7 +291,7 @@ be dangerous and may void your CPU or system board's warranty.")
 (define-public wavemon
   (package
     (name "wavemon")
-    (version "0.9.1")
+    (version "0.9.3")
     (source
      (origin
        (method git-fetch)
@@ -298,7 +300,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 "109ycwnjjqc2vpnd8b86njfifczlxglnyv4rh2qmbn2i5nw2wryg"))))
+        (base32 "0m9n5asjxs1ir5rqprigqcrm976mgjvh4yql1jhfnbszwbf95193"))))
     (build-system gnu-build-system)
     (arguments
      `(#:make-flags
@@ -465,3 +467,34 @@ authorization policies (what kind of USB devices are authorized) as well as
 method of use policies (how a USB device may interact with the system).
 Simply put, it is a USB device whitelisting tool.")
     (license license:gpl2)))
+
+(define-public screentest
+  (package
+    (name "screentest")
+    (version "2.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/TobiX/screentest")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0gv3xj9sbk1wsyijfw9xjnvy8pg7j4arjnma2r2kfi18qy32wd30"))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("glib" ,glib)
+       ("gtk+" ,gtk+-2)))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("intltool" ,intltool)
+       ("libtool" ,libtool)
+       ("glib" ,glib "bin")
+       ("automake" ,automake)
+       ("pkg-config" ,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
+of your CRT/LCD monitor.")
+    (home-page "https://github.com/TobiX/screentest")
+    (license license:gpl2)))
diff --git a/gnu/packages/haskell-apps.scm b/gnu/packages/haskell-apps.scm
index 4c8bf407ba..19a0fc8a44 100644
--- a/gnu/packages/haskell-apps.scm
+++ b/gnu/packages/haskell-apps.scm
@@ -12,7 +12,7 @@
 ;;; Copyright © 2019, 2020 Kyle Meyer <kyle@kyleam.com>
 ;;; Copyright © 2015 John Soo <jsoo1@asu.edu>
 ;;; Copyright © 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2019 Alex Griffin <a@ajgrf.com>
+;;; Copyright © 2019, 2020 Alex Griffin <a@ajgrf.com>
 ;;; Copyright © 2020 Alexandru-Sergiu Marton <brown121407@member.fsf.org>
 ;;; Copyright © 2020 Brian Leung <bkleung89@gmail.com>
 ;;;
@@ -307,15 +307,14 @@ unique algebra of patches called @url{http://darcs.net/Theory,Patchtheory}.
 (define-public ghcid
   (package
     (name "ghcid")
-    (version "0.8.4")
+    (version "0.8.7")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://hackage.haskell.org/package/ghcid/"
                            "ghcid-" version ".tar.gz"))
        (sha256
-        (base32
-         "0wpm4ikrm1krz1ckzwk0srng091yh2skjal4fh95iz1hq3dw6qlw"))))
+        (base32 "0yqc1pkfajnr56gnh43sbj50r7c3r41b2jfz07ivgl6phi4frjbq"))))
     (build-system haskell-build-system)
     (inputs
      `(("ghc-extra" ,ghc-extra)
@@ -326,8 +325,7 @@ unique algebra of patches called @url{http://darcs.net/Theory,Patchtheory}.
     (native-inputs
      `(("ghc-tasty" ,ghc-tasty)
        ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
-    (home-page
-     "https://github.com/ndmitchell/ghcid#readme")
+    (home-page "https://github.com/ndmitchell/ghcid#readme")
     (synopsis "GHCi based bare bones IDE")
     (description
      "Either \"GHCi as a daemon\" or \"GHC + a bit of an IDE\".  A very simple Haskell
@@ -341,18 +339,18 @@ to @code{cabal repl}).")
 (define-public git-annex
   (package
     (name "git-annex")
-    (version "8.20200720.1")
+    (version "8.20201127")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://hackage.haskell.org/package/"
                            "git-annex/git-annex-" version ".tar.gz"))
        (sha256
-        (base32 "0g4wlfkwr9w21hvdywc7sk077rxlnigdr4m4yz41rc0s2nbjc9fn"))))
+        (base32 "0n9m5ffgbzms0nh9dskrc7vjgwwwi9f9gxyh498wnspf96729zz7"))))
     (build-system haskell-build-system)
     (arguments
      `(#:configure-flags
-       '("--flags=-Android -Assistant -Pairing -Webapp -WebDAV")
+       '("--flags=-Android -Webapp")
        #:phases
        (modify-phases %standard-phases
          (add-before 'configure 'patch-shell-for-tests
@@ -427,7 +425,17 @@ to @code{cabal repl}).")
                         (string-append bin "/git-annex-shell"))
                (symlink (string-append bin "/git-annex")
                         (string-append bin "/git-remote-tor-annex"))
-               #t))))))
+               #t)))
+         (add-after 'install 'touch-static-output
+           (lambda* (#:key outputs #:allow-other-keys)
+             ;; The Haskell build system adds a "static" output by
+             ;; default, and there is no way to override this until
+             ;; <https://issues.guix.gnu.org/41569> is fixed.  Without
+             ;; this phase, the daemon complains because we do not
+             ;; create the "static" output.
+             (with-output-to-file (assoc-ref outputs "static")
+               (lambda ()
+                 (display "static output not used\n"))))))))
     (inputs
      `(("curl" ,curl)
        ("ghc-aeson" ,ghc-aeson)
@@ -440,6 +448,7 @@ to @code{cabal repl}).")
        ("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)
@@ -448,6 +457,7 @@ to @code{cabal repl}).")
        ("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)
@@ -457,7 +467,10 @@ to @code{cabal repl}).")
        ("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)
@@ -474,6 +487,7 @@ to @code{cabal repl}).")
        ("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)
@@ -619,7 +633,7 @@ and mIRC chat codes.")
 (define-public kmonad
   (package
     (name "kmonad")
-    (version "0.3.0")
+    (version "0.4.1")
     (source
      (origin
        (method git-fetch)
@@ -628,7 +642,7 @@ and mIRC chat codes.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1g40nkpldih6h1rlxjx5yf9iavr3qs1f2b6j0gd8135p5hkg8d8n"))))
+        (base32 "1rp880zxvrznx0y1k464wjrds441dpsz94syhrkaw5dnmxf74yjd"))))
     (build-system haskell-build-system)
     (arguments
      `(#:phases
@@ -653,7 +667,7 @@ and mIRC chat codes.")
                     (doc (string-append out "/share/doc/kmonad-" ,version)))
                (install-file "README.md" doc)
                (copy-recursively "doc" doc)
-               (copy-recursively "example" (string-append doc "/example"))
+               (copy-recursively "keymap" (string-append doc "/keymap"))
                #t))))))
     (inputs
      `(("ghc-cereal" ,ghc-cereal)
@@ -662,6 +676,8 @@ and mIRC chat codes.")
        ("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)))
@@ -730,6 +746,20 @@ is programmed in Haskell.")
          (base32
           "0apzrvf99rskj4dbmn57jjxrsf19j436s8a09m950df5aws3a0wj"))))
     (build-system haskell-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'touch-static-output
+           (lambda* (#:key outputs #:allow-other-keys)
+             ;; The Haskell build system adds a "static" output by
+             ;; default, and there is no way to override this until
+             ;; <https://issues.guix.gnu.org/41569> is fixed.  Without
+             ;; this phase, the daemon complains because we do not
+             ;; create the "static" output.
+             (with-output-to-file (assoc-ref outputs "static")
+               (lambda ()
+                 (display "static output not used\n")))
+             #t)))))
     (inputs
      `(("ghc-case-insensitive" ,ghc-case-insensitive)
        ("ghc-data-default" ,ghc-data-default)
@@ -750,7 +780,7 @@ too slow and you'll get wound up in the scroll and crushed.")
 (define-public shellcheck
   (package
     (name "shellcheck")
-    (version "0.7.0")
+    (version "0.7.1")
     (source
      (origin
        (method url-fetch)
@@ -758,7 +788,7 @@ 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 "1vx895cp5k5h0680xfwj74lk97m9y627n965x6srds0gfnbkzy9s"))
+        (base32 "06m4wh891nah3y0br4wh3adpsb16zawkb2ijgf1vcz61fznj6ps1"))
        (file-name (string-append name "-" version ".tar.gz"))))
     (build-system haskell-build-system)
     (inputs
diff --git a/gnu/packages/haskell-check.scm b/gnu/packages/haskell-check.scm
index c2cffbad9e..df7a667623 100644
--- a/gnu/packages/haskell-check.scm
+++ b/gnu/packages/haskell-check.scm
@@ -12,6 +12,7 @@
 ;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
 ;;; Copyright © 2019 Timothy Sample <samplet@ngyro.com>
 ;;; Copyright © 2020 John Soo <jsoo1@asu.edu>
+;;; Copyright © 2020 Carlo Holl <carloholl@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -489,7 +490,7 @@ use HUnit assertions as QuickCheck properties.")
   (package
     (name "ghc-quickcheck")
     (version "2.13.2")
-    (outputs '("out" "doc"))
+    (outputs '("out" "static" "doc"))
     (source
      (origin
        (method url-fetch)
@@ -501,12 +502,9 @@ use HUnit assertions as QuickCheck properties.")
         (base32
          "0426j43af8v3qmdjjqxivazsvr3a2brac8yw09vpgpjkb2m0nmkv"))))
     (build-system haskell-build-system)
-    (arguments
-     `(#:tests? #f))  ; FIXME: currently missing libraries used for tests.
     (inputs
      `(("ghc-random" ,ghc-random)
-       ("ghc-splitmix" ,ghc-splitmix-bootstrap)
-       ("ghc-tf-random" ,ghc-tf-random)))
+       ("ghc-splitmix" ,ghc-splitmix-bootstrap)))
     (home-page "https://github.com/nick8325/quickcheck")
     (synopsis "Automatic testing of Haskell programs")
     (description
@@ -651,7 +649,7 @@ using Template Haskell")
   (package
     (name "ghc-hunit")
     (version "1.6.0.0")
-    (outputs '("out" "doc"))
+    (outputs '("out" "static" "doc"))
     (source
      (origin
        (method url-fetch)
@@ -766,6 +764,7 @@ used to test the in-development version of Hspec.")
         (base32
          "1x8rcr7j1azcaw0fg1xzp8j0gr4ias36z09aj24i4xp8pnyfp341"))))
     (build-system haskell-build-system)
+    (outputs '("out" "static" "doc"))
     (inputs
      `(("ghc-hspec-core" ,ghc-hspec-core)
        ("hspec-discover" ,hspec-discover)
@@ -1032,8 +1031,34 @@ library's promised without anyone noticing.
 
 This package provides a disciplined way of specifying such properties, and
 have them checked by the compiler.  This way, this checking can be part of the
-ususal development cycle and regressions caught early.
+regular development cycle and regressions caught early.
 
 See the documentation in \"Test.Inspection\" or the project webpage for more
 examples and more information.")
     (license license:expat)))
+
+(define-public ghc-easytest
+  (package
+    (name "ghc-easytest")
+    (version "0.2.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/easytest/easytest-"
+             version ".tar.gz"))
+       (sha256
+        (base32
+         "0gdyawzlw6d15yz7ji599xjgfr0g7l1iq11ffr4aw3j6g3dc6m8i"))))
+    (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.")
+    (license license:expat)))
diff --git a/gnu/packages/haskell-crypto.scm b/gnu/packages/haskell-crypto.scm
index b9b350b61a..032c6fb899 100644
--- a/gnu/packages/haskell-crypto.scm
+++ b/gnu/packages/haskell-crypto.scm
@@ -4,6 +4,7 @@
 ;;; Copyright © 2016 Nikita <nikita@n0.is>
 ;;; Copyright © 2017 rsiddharth <s@ricketyspace.net>
 ;;; Copyright © 2017, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -150,6 +151,7 @@ algorithm (ex: padding) is within scope of this package.")
         (base32
          "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)
@@ -310,6 +312,7 @@ the C implementation.")
     ;; 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)
@@ -343,6 +346,8 @@ generators, and more.")
         (base32
          "04gy2zp8yzvv7j9bdfvmfzcz3sqyqa6rwslqcn4vyair2vmif5v4"))))
     (build-system haskell-build-system)
+    (arguments
+     `(#:extra-directories ("zlib")))
     (inputs
      `(("zlib" ,zlib)))
     (home-page
@@ -790,6 +795,8 @@ extensions.")
         (base32
          "0qivl9clmybfglwxqp2sq308rv4ia4rhwshcsc8b029bvpp0mpsi"))))
     (build-system haskell-build-system)
+    (arguments
+     `(#:extra-directories ("openssl")))
     (inputs
      `(("ghc-network" ,ghc-network)
        ("openssl" ,openssl)))
@@ -832,3 +839,38 @@ implementation of SSL.")
     (description "This library contains io-streams routines for secure
 networking using OpenSSL (by way of HsOpenSSL).")
     (license license:bsd-3)))
+
+(define-public ghc-cryptonite-conduit
+  (package
+    (name "ghc-cryptonite-conduit")
+    (version "0.2.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://hackage.haskell.org/package/"
+                           "cryptonite-conduit/cryptonite-conduit-"
+                           version ".tar.gz"))
+       (sha256
+        (base32
+         "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)))
+    (native-inputs
+     `(("ghc-conduit-combinators" ,ghc-conduit-combinators)
+       ("ghc-tasty" ,ghc-tasty)
+       ("ghc-tasty-hunit" ,ghc-tasty-hunit)
+       ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
+    (arguments
+     `(#:cabal-revision
+       ("1" "1hh2nzfz4qpxgivfilgk4ll416lph8b2fdkzpzrmqfjglivydfmz")))
+    (home-page "https://github.com/haskell-crypto/cryptonite-conduit")
+    (synopsis "Cryptonite bridge for conduit")
+    (description "This package provides conduit interfaces for some of
+cryptonite's implementations of cryptographic primitives.")
+    (license license:bsd-3)))
diff --git a/gnu/packages/haskell-web.scm b/gnu/packages/haskell-web.scm
index c53dc064b1..0be9890d23 100644
--- a/gnu/packages/haskell-web.scm
+++ b/gnu/packages/haskell-web.scm
@@ -9,6 +9,9 @@
 ;;; Copyright © 2019 John Soo <jsoo1@asu.edu>
 ;;; Copyright © 2020 Alexandru-Sergiu Marton <brown121407@gmail.com>
 ;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
+;;; Copyright © 2020 Kyle Meyer <kyle@kyleam.com>
+;;; Copyright © 2020 Alexandru-Sergiu Marton <brown121407@member.fsf.org>
+;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -171,7 +174,7 @@ both client and server code).")
   (package
     (name "ghc-http")
     (version "4000.3.14")
-    (outputs '("out" "doc"))
+    (outputs '("out" "static" "doc"))
     (source
      (origin
        (method url-fetch)
@@ -197,7 +200,23 @@ both client and server code).")
        ("ghc-network-uri" ,ghc-network-uri)
        ("ghc-split" ,ghc-split)))
     (arguments
-     `(#:tests? #f)) ; FIXME: currently missing libraries used for tests.
+     `(#:tests? #f  ; FIXME: currently missing libraries used for tests.
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'create-simple-paths-module
+           (lambda _
+             (call-with-output-file "Paths_HTTP.hs"
+               (lambda (port)
+                 (format port "\
+{-# LANGUAGE CPP #-}
+{-# LANGUAGE NoRebindableSyntax #-}
+{-# OPTIONS_GHC -fno-warn-missing-import-lists #-}
+module Paths_HTTP (version) where
+import Data.Version (Version(..))
+version :: Version
+version = Version [~a] []
+" (string-map (lambda (chr) (if (eq? chr #\.) #\, chr)) ,version))))
+             #t)))))
     (home-page "https://github.com/haskell/HTTP")
     (synopsis "Library for client-side HTTP")
     (description
@@ -400,6 +419,48 @@ contents of the HTTP connection.  It also provides higher-level functions
 which allow you to avoid direct usage of conduits.")
     (license license:bsd-3)))
 
+(define-public ghc-http-reverse-proxy
+  (package
+    (name "ghc-http-reverse-proxy")
+    (version "0.6.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/http-reverse-proxy/"
+             "http-reverse-proxy-" version ".tar.gz"))
+       (sha256
+        (base32
+         "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)))
+    (native-inputs
+     `(("ghc-hspec" ,ghc-hspec)
+       ("ghc-warp" ,ghc-warp)
+       ("ghc-http-conduit" ,ghc-http-conduit)))
+    (home-page
+     "https://github.com/fpco/http-reverse-proxy")
+    (synopsis
+     "Reverse proxy HTTP requests, either over raw sockets or with WAI")
+    (description
+     "Provides a simple means of reverse-proxying HTTP requests.  The raw
+approach uses the same technique as leveraged by keter, whereas the WAI
+approach performs full request/response parsing via WAI and http-conduit.")
+    (license license:bsd-3)))
+
 (define-public ghc-wai
   (package
     (name "ghc-wai")
@@ -904,6 +965,7 @@ entity decoding bugfixes applied.")
         (base32
          "0k1r1hddjgqighazcazxrx6xfhvy2gm8il8l82ainv3cai13yl30"))))
     (build-system haskell-build-system)
+    (outputs '("out" "static" "doc"))
     (inputs
      `(("ghc-blaze-builder" ,ghc-blaze-builder)
        ("ghc-blaze-markup" ,ghc-blaze-markup)))
@@ -934,6 +996,7 @@ entity decoding bugfixes applied.")
          "1jhabz1lbbv6yqxqiybifi86cb5xlsadrn368n5dd0wzzc7ja4iz"))))
     (build-system haskell-build-system)
     (arguments `(#:tests? #f)) ; FIXME: testing libraries are missing.
+    (outputs '("out" "static" "doc"))
     (inputs
      `(("ghc-attoparsec" ,ghc-attoparsec)
        ("ghc-base-compat" ,ghc-base-compat)
@@ -1196,7 +1259,7 @@ avoid any issues with characters.")
 (define-public ghc-yesod-core
   (package
     (name "ghc-yesod-core")
-    (version "1.6.16.1")
+    (version "1.6.17.2")
     (source
      (origin
        (method url-fetch)
@@ -1205,7 +1268,7 @@ avoid any issues with characters.")
                            "yesod-core-" version ".tar.gz"))
        (sha256
         (base32
-         "0a0yv7wkwvb0n6iia532y9nzrirgnm09pjc8hpm0lx4ff609pgd2"))))
+         "0rcfksbxnwcpg5qh9vjkddv39q95mx4nxzgix51bbwa128hhzcwf"))))
     (build-system haskell-build-system)
     (inputs `(("ghc-wai" ,ghc-wai)
               ("ghc-extra" ,ghc-extra)
@@ -1330,7 +1393,7 @@ from Yesod.")
         ("ghc-hspec" ,ghc-hspec)))
     (home-page "https://www.yesodweb.com")
     (synopsis "Form handling support for Yesod Web Framework")
-    (description "This Haskell package provies a set of basic form inputs such
+    (description "This Haskell package provides a set of basic form inputs such
 as text, number, time, checkbox, select, textarea, etc through the
 @code{Yesod.Form.Fields} module.  Also, there is @code{Yesod.Form.Nic} module
 providing richtext field using Nic editor. ")
@@ -1470,6 +1533,7 @@ derivations of regular expressions.")
         (base32
          "0836k65px3w9c5h1h2bmzq5a7mp6ajxwvfg3pfr2kbxwkgc0j63j"))))
     (build-system haskell-build-system)
+    (outputs '("out" "static" "doc"))
     (inputs
      `(("ghc-hxt-charproperties" ,ghc-hxt-charproperties)
        ("ghc-hxt-unicode" ,ghc-hxt-unicode)
@@ -1926,3 +1990,283 @@ as frontend to hjsmin.")
      "This package provides a data type and ToJSON/FromJSON instances for
 Bower's package manifest file, bower.json.")
     (license license:expat)))
+
+(define-public ghc-dav
+  (package
+    (name "ghc-dav")
+    (version "1.3.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://hackage.haskell.org/package/DAV/DAV-"
+                           version ".tar.gz"))
+       (sha256
+        (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)))
+    (home-page "http://floss.scru.org/hDAV")
+    (synopsis "RFC 4918 WebDAV support")
+    (description "This package provides a library for the Web Distributed
+Authoring and Versioning (WebDAV) extensions to HTTP as well an executable,
+@command{hdav}, for command-line operation.")
+    (license license:gpl3)))
+
+(define-public ghc-yesod-test
+  (package
+    (name "ghc-yesod-test")
+    (version "1.6.9")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://hackage.haskell.org/package/"
+                           "yesod-test/yesod-test-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0v25lqq7hgd5lggnyfd9kamkzd4126rd7vlhc131n253n4by4yak"))))
+    (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)))
+    (native-inputs
+     `(("ghc-hspec" ,ghc-hspec)
+       ("ghc-yesod-form" ,ghc-yesod-form)
+       ("ghc-unliftio" ,ghc-unliftio)
+       ("ghc-unliftio-core" ,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
+and system testing of web applications by making everything easy to
+test.  Tests are like browser sessions that keep track of cookies and
+the last visited page.  You can perform assertions on the content of
+HTML responses using CSS selectors.")
+    (license license:expat)))
+
+(define-public ghc-wai-app-static
+  (package
+    (name "ghc-wai-app-static")
+    (version "3.1.7.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://hackage.haskell.org/package/"
+                           "wai-app-static/wai-app-static-"
+                           version ".tar.gz"))
+       (sha256
+        (base32
+         "10k6jb450p89r6dgpnwh428gg0wfw2qbx9n126jkvbchcjr1f4v8"))))
+    (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)))
+    (native-inputs
+     `(("ghc-hspec" ,ghc-hspec)
+       ("ghc-network" ,ghc-network)
+       ("ghc-temporary" ,ghc-temporary)
+       ("ghc-mockery" ,ghc-mockery)))
+    (arguments
+     `(#:cabal-revision
+       ("1" "0bkmml30rzifvb7nxddj3pxczk0kniahra19mjn0qrkzy1n5752p")))
+    (home-page "https://www.yesodweb.com/book/web-application-interface")
+    (synopsis "WAI application for static serving")
+    (description "This package provides a Web Application
+Interface (WAI) application for static serving.  It also provides some
+helper functions and datatypes for use outside of WAI.")
+    (license license:expat)))
+
+(define-public ghc-hjsmin
+  (package
+    (name "ghc-hjsmin")
+    (version "0.2.0.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://hackage.haskell.org/package/"
+                           "hjsmin/hjsmin-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1r2p5rjdjr25j3w4s57q5hxw2c3ymw12x7ms18yvglnq2ivr9fc1"))))
+    (build-system haskell-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-before 'build 'fix-dist-directory-for-tests
+           (lambda _
+             (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)))
+    (native-inputs
+     `(("ghc-extra" ,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
+JavaScript files by stripping out extraneous whitespace and other
+syntactic elements, without changing the semantics.")
+    (license license:bsd-3)))
+
+(define-public ghc-yesod-static
+  (package
+    (name "ghc-yesod-static")
+    (version "1.6.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://hackage.haskell.org/package/"
+                           "yesod-static/yesod-static-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1jd0ryfr2vyrwasyvbqmc6j4ngv1lgz78w427f169l7gyl1firxb"))))
+    (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)))
+    (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)))
+    (home-page "https://www.yesodweb.com/")
+    (synopsis "Static file serving subsite for Yesod")
+    (description "This package provides a static file serving subsite
+for the Yesod Web Framework.")
+    (license license:expat)))
+
+(define-public ghc-wai-handler-launch
+  (package
+    (name "ghc-wai-handler-launch")
+    (version "3.0.3.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://hackage.haskell.org/package/"
+                           "wai-handler-launch/wai-handler-launch-"
+                           version ".tar.gz"))
+       (sha256
+        (base32
+         "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)))
+    (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
+launching and inserts JavaScript code to ping the server.  When the
+server no longer receives pings, it shuts down.")
+    (license license:expat)))
+
+(define-public ghc-wai-cors
+  (package
+    (name "ghc-wai-cors")
+    (version "0.2.7")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://hackage.haskell.org/package/"
+                           "wai-cors/wai-cors-" version ".tar.gz"))
+       (sha256
+        (base32
+         "10gv3jjlkcb13031frr818p56v2s0qf6dqjsfpwlhwdxdssvx5r5"))))
+    (build-system haskell-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         ;; As of version 0.2.7, there are two test suites: "unit-tests"
+         ;; and "phantomjs".  Since we do not have a PhantomJS package,
+         ;; we only run the unit tests.
+         (replace 'check
+           (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)))
+    (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)))
+    (home-page "https://github.com/larskuhtz/wai-cors")
+    (synopsis "Cross-Origin Resource Sharing (CORS) for WAI")
+    (description "This package provides an implemenation 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)))
diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index a9a5f8afe6..d6c50ade71 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -20,12 +20,14 @@
 ;;; Copyright © 2019 Robert Vollmert <rob@vllmrt.net>
 ;;; Copyright © 2019 Jacob MacDonald <jaccarmac@gmail.com>
 ;;; Copyright © 2019,2020 John Soo <jsoo1@asu.edu>
-;;; Copyright © 2019 Kyle Meyer <kyle@kyleam.com>
+;;; Copyright © 2019, 2020 Kyle Meyer <kyle@kyleam.com>
 ;;; Copyright © 2019 Alex Griffin <a@ajgrf.com>
 ;;; Copyright © 2020 Brett Gilio <brettg@gnu.org>
 ;;; Copyright © 2020 JoJo <jo@jo.zone>
 ;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;; Copyright © 2020 Alexandru-Sergiu Marton <brown121407@member.fsf.org>
+;;; Copyright © 2020 Carlo Holl <carloholl@gmail.com>
+;;; Copyright © 2020 Christopher Lemmer Webber <cwebber@dustycloud.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -50,6 +52,7 @@
   #:use-module (gnu packages gl)
   #:use-module (gnu packages graphviz)
   #:use-module (gnu packages gtk)
+  #:use-module (gnu packages haskell)
   #:use-module (gnu packages haskell-apps)
   #:use-module (gnu packages haskell-check)
   #:use-module (gnu packages haskell-crypto)
@@ -71,7 +74,8 @@
   #:use-module (guix git-download)
   #:use-module (guix utils)
   #:use-module ((guix licenses) #:prefix license:)
-  #:use-module (guix packages))
+  #:use-module (guix packages)
+  #:use-module (srfi srfi-1))
 
 (define-public ghc-abstract-deque
   (package
@@ -327,6 +331,8 @@ tool lex or flex for C/C++.")
         (base32
          "1avh4a419h9d2zsslg6j8hm87ppgsgqafz8ll037rk2yy1g4jl7b"))))
     (build-system haskell-build-system)
+    (arguments
+     `(#:extra-directories ("alsa-lib")))
     (inputs
      `(("ghc-extensible-exceptions" ,ghc-extensible-exceptions)
        ("alsa-lib" ,alsa-lib)))
@@ -799,6 +805,7 @@ Haskell @code{ByteString}s.")
         (base32
          "0hgvlqcr852hfp52jp99snhbj550mvxxpi8qn15d8ml9aqhyl2lr"))))
     (build-system haskell-build-system)
+    (outputs '("out" "static" "doc"))
     (native-inputs
      `(("ghc-quickcheck" ,ghc-quickcheck)
        ("ghc-hspec" ,ghc-hspec)
@@ -856,6 +863,7 @@ than @code{base-compat}, which has no dependencies.")
         (base32
          "0srlws74yiraqaapgcjd9p5d1fwb3zr9swcz74jpjm55fls2nn37"))))
     (build-system haskell-build-system)
+    (outputs '("out" "static" "doc"))
     (home-page "https://github.com/haskell-foundation/foundation")
     (synopsis "Basic primitives for Foundation starter pack")
     (description
@@ -902,6 +910,7 @@ available in later versions of base to a wider (older) range of compilers.")
         (base32
          "1zk728sd09hh2r4xwz4lazsrrgg5cshydn64932sm0vckplndk73"))))
     (build-system haskell-build-system)
+    (outputs '("out" "static" "doc"))
     (home-page "https://github.com/nikita-volkov/base-prelude")
     (synopsis "The most complete prelude formed solely from the Haskell's base
 package")
@@ -988,6 +997,32 @@ Users wishing to have an improved Prelude can use BasicPrelude.  Developers
 wishing to create a new prelude should use CorePrelude.")
     (license license:expat)))
 
+(define-public ghc-bencode
+  (package
+    (name "ghc-bencode")
+    (version "0.6.1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/bencode/bencode-"
+             version ".tar.gz"))
+       (sha256
+        (base32 "0znv0y3b3zm5jvhlvj5f5s7y93db67j9yd59w1bnrw2pqv30gqaq"))))
+    (build-system haskell-build-system)
+    (inputs
+     `(("ghc-transformers-compat" ,ghc-transformers-compat)))
+    (native-inputs
+     `(("ghc-hspec" ,ghc-hspec)
+       ("ghc-quickcheck" ,ghc-quickcheck)))
+    (home-page "https://hackage.haskell.org/package/bencode")
+    (synopsis "Parsers and printers for bencoded data")
+    (description
+     "This library provides parsers and printers for bencoded data.  Bencode
+is the encoding used by the peer-to-peer file sharing system BitTorrent for
+storing and transmitting loosely structured data.")
+    (license license:bsd-3)))
+
 (define-public ghc-bifunctors
   (package
     (name "ghc-bifunctors")
@@ -1517,7 +1552,7 @@ call stacks with different versions of the compiler.")
   (package
     (name "ghc-case-insensitive")
     (version "1.2.0.11")
-    (outputs '("out" "doc"))
+    (outputs '("out" "static" "doc"))
     (source
      (origin
        (method url-fetch)
@@ -1544,6 +1579,118 @@ constructor which can be parameterised by a string-like type like:
 the resulting type will be insensitive to cases.")
     (license license:bsd-3)))
 
+(define-public ghc-cassava
+  (package
+    (name "ghc-cassava")
+    (version "0.5.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/cassava/cassava-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32
+         "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)))
+    (arguments
+     `(#:cabal-revision
+       ("1"
+        "1ph8rf91z4nf1ryrh9s4gd1kq98jlgk2manwddkpch8k0n9xvfk4")
+       #:configure-flags '("--flags=-bytestring--lt-0_10_4")))
+    (home-page "https://github.com/haskell-hvr/cassava")
+    (synopsis "CSV parsing and encoding library")
+    (description
+     "@code{cassava} is a library for parsing and encoding
+@url{https://tools.ietf.org/html/rfc4180, RFC 4180} compliant @url{https://
+en.wikipedia.org/wiki/Comma-separated_values, comma-separated values (CSV)}
+data, which is a textual line-oriented format commonly used for exchanging
+tabular data.
+
+@code{cassava}'s API includes support for:
+
+@itemize @bullet
+
+@item
+Index-based record-conversion
+@item
+Name-based record-conversion
+@item
+Typeclass directed conversion of fields and records
+@item
+Built-in field-conversion instances for standard types
+@item
+Customizable record-conversion instance derivation via GHC generics
+@item
+Low-level @url{https://hackage.haskell.org/package/bytestring), bytestring}
+builders (see @url{https://hackage.haskell.org/package/cassava-0.5.2.0/docs/
+Data-Csv-Builder.html, Data.Csv.Builder})
+@item
+Incremental decoding and encoding API (see @url{https://hackage.haskell.org/
+package/cassava-0.5.2.0/docs/Data-Csv-Incremental.html, Data.Csv.Incremental})
+@item
+Streaming API for constant-space decoding (see @url{https://hackage.haskell.org/
+package/cassava-0.5.2.0/docs/Data-Csv-Streaming.html, Data.Csv.Streaming})
+@end itemize
+
+Moreover, this library is designed to be easy to use; for instance, here's a
+very simple example of encoding CSV data:
+
+@verbatim
+>>> Data.Csv.encode [(\"John\",27),(\"Jane\",28)]
+\"John,27\r\nJane,28\r\n\"
+@end verbatim
+")
+    (license license:bsd-3)))
+
+(define-public ghc-cassava-megaparsec
+  (package
+    (name "ghc-cassava-megaparsec")
+    (version "2.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/cassava-megaparsec/"
+             "cassava-megaparsec-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32
+         "0q4skw98nzy6icmgpwqvgw0c5pqcgi25rf7nmwh2pksvv94pi3p3"))))
+    (build-system haskell-build-system)
+    (inputs
+     `(("ghc-cassava" ,ghc-cassava)
+       ("ghc-megaparsec" ,ghc-megaparsec)
+       ("ghc-unordered-containers" ,ghc-unordered-containers)
+       ("ghc-vector" ,ghc-vector)))
+    (native-inputs
+     `(("ghc-hspec" ,ghc-hspec)
+       ("ghc-hspec-megaparsec" ,ghc-hspec-megaparsec)))
+    (home-page "https://github.com/stackbuilders/cassava-megaparsec")
+    (synopsis "Megaparsec parser for CSV files that plays nicely with Cassava")
+    (description
+     "Alternative parser for the Cassava package written with Megaparsec that
+provides for better error messages at the expense of some speed.")
+    (license license:expat)))
+
 (define-public ghc-cborg
   (package
     (name "ghc-cborg")
@@ -2061,6 +2208,7 @@ of the C library.")
         (base32
          "0cbkmgrcnwgigg6z88y3c09gm7g6dwm7gzbgr53h8k1xik29s9hf"))))
     (build-system haskell-build-system)
+    (outputs '("out" "static" "doc"))
     (home-page
      "http://community.haskell.org/~ndm/cmdargs/")
     (synopsis "Command line argument processing")
@@ -2262,6 +2410,7 @@ concurrent threads.  Can be used for progress displays etc.")
                (base32
                 "18izjgff4pmrknc8py06yvg3g6x27nx0rzmlwjxcflwm5v4szpw4"))))
     (build-system haskell-build-system)
+    (outputs '("out" "static" "doc"))
     (inputs
      `(("ghc-exceptions" ,ghc-exceptions)
        ("ghc-lifted-base" ,ghc-lifted-base)
@@ -2599,6 +2748,36 @@ a vocabulary for working with them.")
 @code{ghc-contravariant} package.")
     (license license:expat)))
 
+(define-public ghc-control-monad-free
+  (package
+    (name "ghc-control-monad-free")
+    (version "0.6.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/"
+             "package/control-monad-free/control-monad-free-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32
+         "1habgf7byffqf1rqjkzpihvdhclaafgqsqpfpwp3fgpj5ayk1j33"))))
+    (build-system haskell-build-system)
+    (home-page "https://github.com/pepeiborra/control-monad-free")
+    (synopsis "Free monads and monad transformers")
+    (description
+     "This package provides datatypes to construct Free monads, Free monad
+transformers, and useful instances.  In addition it provides the constructs to
+avoid quadratic complexity of left associative bind, as explained in:
+
+@itemize @bullet
+@item
+Janis Voigtlander, @cite{Asymptotic Improvement of Computations over
+Free Monads, MPC'08}
+@end itemize")
+    (license license:public-domain)))
+
 (define-public ghc-convertible
   (package
     (name "ghc-convertible")
@@ -2625,6 +2804,30 @@ pure @code{Either} value.  This means that you need not remember which specific
 function performs the conversion you desire.")
     (license license:bsd-3)))
 
+(define-public ghc-csv
+  (package
+    (name "ghc-csv")
+    (version "0.1.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/csv/csv-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32
+         "00767ai09wm7f0yzmpqck3cpgxncpr9djnmmz5l17ajz69139x4c"))))
+    (build-system haskell-build-system)
+    (home-page "http://hackage.haskell.org/package/csv")
+    (synopsis "CSV loader and dumper")
+    (description
+     "This library parses and dumps documents that are formatted according to
+RFC 4180, @cite{The common Format and MIME Type for Comma-Separated
+Values (CSV) Files}.  This format is used, among many other things, as a
+lingua franca for spreadsheets, and for certain web services.")
+    (license license:expat)))
+
 (define-public ghc-data-accessor
   (package
     (name "ghc-data-accessor")
@@ -2923,6 +3126,35 @@ to add D-Bus support to Haskell applications, without the awkward
 interfaces common to foreign bindings.")
     (license license:asl2.0)))
 
+(define-public ghc-decimal
+  (package
+    (name "ghc-decimal")
+    (version "0.5.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/Decimal/Decimal-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32
+         "0k7kh05mr2f54w1lpgq1nln0h8k6s6h99dyp5jzsb9cfbb3aap2p"))))
+    (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)))
+    (home-page "https://github.com/PaulJohnson/Haskell-Decimal")
+    (synopsis "Decimal numbers with variable precision")
+    (description
+     "A decimal number has an integer mantissa and a negative exponent.
+The exponent can be interpreted as the number of decimal places in the
+value.")
+    (license license:bsd-3)))
+
 (define-public ghc-deepseq-generics
   (package
     (name "ghc-deepseq-generics")
@@ -3234,7 +3466,7 @@ disk space usage.")
 (define-public ghc-distributive
   (package
     (name "ghc-distributive")
-    (version "0.6.1")
+    (version "0.6.2")
     (source
      (origin
        (method url-fetch)
@@ -3244,7 +3476,7 @@ disk space usage.")
              ".tar.gz"))
        (sha256
         (base32
-         "1wnayzzb4vk8rhh9gzhdpd9f64366k4vmbhximavmqqmp3cv2jbp"))))
+         "1j93zkfffm6s16kgr0j0z87y5ds28rw0r2gyc5ncwcylvrqy4kl2"))))
     (build-system haskell-build-system)
     (inputs
      `(("ghc-tagged" ,ghc-tagged)
@@ -3333,16 +3565,18 @@ Writer monad), where list append quickly becomes too expensive.")
     (build-system haskell-build-system)
     (arguments `(#:tests? #f))          ; FIXME: missing test framework
     (inputs
-     `(("ghc-syb" ,ghc-syb)
-       ("ghc-paths" ,ghc-paths)
-       ("ghc-base-compat" ,ghc-base-compat)
+     `(("ghc-base-compat" ,ghc-base-compat)
        ("ghc-code-page" ,ghc-code-page)
-       ("ghc-hunit" ,ghc-hunit)
-       ("ghc-hspec" ,ghc-hspec)
+       ("ghc-paths" ,ghc-paths)
+       ("ghc-syb" ,ghc-syb)))
+    (native-inputs
+     `(("ghc-hunit" ,ghc-hunit)
        ("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-stringbuilder" ,ghc-stringbuilder)
+       ("ghc-hspec" ,ghc-hspec)
+       ("ghc-mockery" ,ghc-mockery)
+       ("ghc-setenv" ,ghc-setenv)
        ("ghc-silently" ,ghc-silently)
-       ("ghc-setenv" ,ghc-setenv)))
+       ("ghc-stringbuilder" ,ghc-stringbuilder)))
     (home-page
      "https://github.com/sol/doctest#readme")
     (synopsis "Test interactive Haskell examples")
@@ -4088,7 +4322,7 @@ consuming feeds in both RSS (Really Simple Syndication) and Atom format.")
   (package
     (name "ghc-fgl")
     (version "5.7.0.1")
-    (outputs '("out" "doc"))
+    (outputs '("out" "static" "doc"))
     (source
      (origin
        (method url-fetch)
@@ -4205,7 +4439,7 @@ file contents, and more.")
 (define-public ghc-filepath-bytestring
   (package
     (name "ghc-filepath-bytestring")
-    (version "1.4.2.1.1")
+    (version "1.4.2.1.6")
     (source
      (origin
        (method url-fetch)
@@ -4214,7 +4448,7 @@ file contents, and more.")
               "filepath-bytestring-" version ".tar.gz"))
        (sha256
         (base32
-         "06shdskjj391hb9295slm9gg2rbn5fdq5v6fg0mgn3yl5dv8q5dx"))))
+         "11xrrzdkm5i96dazbz0gi1qp8nnj2lwbnxzwy7f4cnahskz4f4g7"))))
     (build-system haskell-build-system)
     (native-inputs
      `(("ghc-quickcheck" ,ghc-quickcheck)))
@@ -4335,6 +4569,7 @@ completely unverified though.")
         (base32
          "19qjmzc7gaxfwgqbgy0kq4vhbxvh3qjnwsxnc7pzwws2if5bv80b"))))
     (build-system haskell-build-system)
+    (outputs '("out" "static" "doc"))
     (inputs `(("ghc-mwc-randam" ,ghc-mwc-random)
               ("ghc-primitive" ,ghc-primitive)
               ("ghc-vector" ,ghc-vector)
@@ -4377,6 +4612,7 @@ and are often as efficient as hand-written folds.")
              (substitute* "tests/Test/Foundation/Number.hs"
                ((", testDividible proxy") ""))
              #t)))))
+    (outputs '("out" "static" "doc"))
     (inputs `(("ghc-basement" ,ghc-basement)))
     (home-page "https://github.com/haskell-foundation/foundation")
     (synopsis "Alternative prelude with batteries and no dependencies")
@@ -4413,6 +4649,7 @@ Foundation has the following goals:
         (base32
          "0vlf3f2ckl3cr7z2zl8c9c8qkdlfgvmh04gxkp2fg0z9dz80nlyb"))))
     (build-system haskell-build-system)
+    (outputs '("out" "static" "doc"))
     (inputs
      `(("ghc-prelude-extras" ,ghc-prelude-extras)
        ("ghc-profunctors" ,ghc-profunctors)
@@ -4479,6 +4716,7 @@ specific Windows, Mac, and Linux file system event notification.")
         (base32
          "0vdg9qdq35jl3m11a87wk8cq1y71qm4i1g1b2pxki0wk70yw20a4"))))
     (build-system haskell-build-system)
+    (outputs '("out" "static" "doc"))
     (inputs
      `(("ghc-th-abstraction" ,ghc-th-abstraction)))
     (native-inputs
@@ -4558,6 +4796,7 @@ and @code{withBaseCase}) or implicitly (@code{genericArbitrary'}).")
         (base32
          "160knr2phnzh2gldfv954lz029jzc7y8kz5xpmbf4z3vb5ngm6fw"))))
     (build-system haskell-build-system)
+    (outputs '("out" "static" "doc"))
     (inputs
      `(("ghc-sop-core" ,ghc-sop-core)
        ("ghc-transformers-compat" ,ghc-transformers-compat)))
@@ -5204,7 +5443,7 @@ Happy works in a similar way to the yacc tool for C.")
   (package
     (name "ghc-hashable")
     (version "1.2.7.0")
-    (outputs '("out" "doc"))
+    (outputs '("out" "static" "doc"))
     (source
      (origin
        (method url-fetch)
@@ -5391,6 +5630,7 @@ package are to parse or generate Haskell 98 code.")
         (base32
          "0q1y8n3d82gid9bcx8wxsqqmj9mq11fg3gp5yzpfbw958dhi3j9f"))))
     (build-system haskell-build-system)
+    (outputs '("out" "static" "doc"))
     (inputs
      `(("cpphs" ,cpphs)
        ("ghc-happy" ,ghc-happy)
@@ -5509,8 +5749,8 @@ Vim.")
     (build-system haskell-build-system)
     (home-page "https://hackage.haskell.org/package/hex")
     (synopsis "Convert strings into hexadecimal and back")
-    (description "This package provides conversion functions between
-bytestrings and their hexademical representation.")
+    (description "This package converts between bytestrings and their
+hexadecimal string representation.")
     (license license:bsd-3)))
 
 (define-public ghc-highlighting-kate
@@ -5623,6 +5863,62 @@ feature, allowing applications to subscribe to notifications when a file is
 accessed or modified.")
     (license license:bsd-3)))
 
+(define-public ghc-hledger-lib
+  (package
+    (name "ghc-hledger-lib")
+    (version "1.14.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/hledger-lib/hledger-lib-"
+             version
+             ".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)))
+    (home-page "https://hledger.org")
+    (synopsis "Reusable library providing the core functionality of hledger")
+    (description
+     "A reusable library containing hledger's core functionality.
+This is used by most hledger* packages so that they support the same common
+file formats, command line options, reports etc.
+
+hledger is a robust, cross-platform set of tools for tracking money, time, or
+any other commodity, using double-entry accounting and a simple, editable file
+format, with command-line, terminal and web interfaces.  It is a Haskell
+rewrite of Ledger, and one of the leading implementations of Plain Text
+Accounting.")
+    (license license:gpl3)))
+
 (define-public ghc-hmatrix
   (package
     (name "ghc-hmatrix")
@@ -5636,6 +5932,8 @@ accessed or modified.")
        (sha256
         (base32 "1sqy1aci5zfagkb34mz3xdil7cl96z4b4cx28cha54vc5sx1lhpg"))))
     (build-system haskell-build-system)
+    (arguments
+     `(#:extra-directories ("lapack")))
     (inputs
      `(("ghc-random" ,ghc-random)
        ("ghc-split" ,ghc-split)
@@ -5667,6 +5965,8 @@ numerical computations based on BLAS and LAPACK.")
        (sha256
         (base32 "0v6dla426x4ywaq59jm89ql1i42n39iw6z0j378xwb676v9kfxhm"))))
     (build-system haskell-build-system)
+    (arguments
+     `(#:extra-directories ("gsl")))
     (inputs
      `(("ghc-hmatrix" ,ghc-hmatrix)
        ("ghc-vector" ,ghc-vector)
@@ -5822,6 +6122,34 @@ are described in a file named @code{package.yaml}.  Both @code{cabal2nix} and
 @code{package.yaml}.")
     (license license:expat)))
 
+(define-public ghc-hspec-megaparsec
+  (package
+    (name "ghc-hspec-megaparsec")
+    (version "2.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/"
+             "package/hspec-megaparsec/hspec-megaparsec-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32
+         "0w8nn2rh01lkiwsiyqh3gviklhfmy0245rakj94dmliyljw8skfg"))))
+    (build-system haskell-build-system)
+    (inputs
+     `(("ghc-hspec-expectations" ,ghc-hspec-expectations)
+       ("ghc-megaparsec" ,ghc-megaparsec)))
+    (native-inputs
+     `(("ghc-hspec" ,ghc-hspec)))
+    (home-page "https://github.com/mrkkrp/hspec-megaparsec")
+    (synopsis "Utility functions for testing Megaparsec parsers with Hspec")
+    (description
+     "Provides a small set of helper functions for testing Megaparsec parsers
+with Hspec.")
+    (license license:bsd-3)))
+
 (define-public ghc-hs-bibutils
   (package
     (name "ghc-hs-bibutils")
@@ -5884,7 +6212,8 @@ handler built in.")
                 "183bgl5jcx5y2r94lviqfw0a5w9089nxjd1z40k8vx9y2h60pm6j"))))
     (build-system haskell-build-system)
     (arguments
-     `(#:configure-flags '("-fsystem-lua")))
+     `(#:configure-flags '("-fsystem-lua")
+       #:extra-directories ("lua")))
     (inputs
      `(("lua" ,lua)
        ("ghc-exceptions" ,ghc-exceptions)
@@ -6494,6 +6823,8 @@ instances for conversion to and from JSON .ipynb files.")
        (sha256
         (base32 "0khmfwql4vwj55idsxmhjhrbqzfir3g9wm5lmpvnf77mm95cfpdz"))))
     (build-system haskell-build-system)
+    (arguments
+     `(#:extra-directories ("wireless-tools")))
     (inputs
      `(("wireless-tools" ,wireless-tools)))
     (home-page "https://github.com/jaor/iwlib")
@@ -6539,6 +6870,7 @@ JSON (JavaScript Object Notation) is a lightweight data-interchange format.")
                (base32
                 "0qacrnz2qcykj3f6c4k2p8qd31pa2slpv3ykfblgizrfh3401q6x"))))
     (build-system haskell-build-system)
+    (outputs '("out" "static" "doc"))
     (inputs
      `(("ghc-zlib" ,ghc-zlib)
        ("ghc-vector" ,ghc-vector)
@@ -6672,6 +7004,7 @@ with @code{wc} (for a web service).")
         (base32
          "1gpkc53l2cggnfrgg5k4ih82rycjbdvpj9pnbi5cq8ms0dbvs4a7"))))
     (build-system haskell-build-system)
+    (outputs '("out" "static" "doc"))
     (inputs
      `(("ghc-base-orphans" ,ghc-base-orphans)
        ("ghc-bifunctors" ,ghc-bifunctors)
@@ -6820,6 +7153,7 @@ Music Player Daemon.")
         (base32
          "12gsh994pr13bsybwlravmi21la66dyw74pk74yfw2pnz682wv10"))))
     (build-system haskell-build-system)
+    (outputs '("out" "static" "doc")) ; documentation is 39M
     (native-inputs
      `(("ghc-alex" ,ghc-alex)
        ("ghc-happy" ,ghc-happy)))
@@ -6876,11 +7210,12 @@ compiler versions.")
            #t))))
     (build-system haskell-build-system)
     (arguments
-     `(#:configure-flags `("--flags=system-libyaml")))
+     `(#:configure-flags `("--flags=system-libyaml")
+       #:extra-directories ("libyaml+static")))
     (inputs
      `(("ghc-conduit" ,ghc-conduit)
        ("ghc-resourcet" ,ghc-resourcet)
-       ("libyaml" ,libyaml)))
+       ("libyaml+static" ,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
@@ -7143,6 +7478,48 @@ Transformers\" available @uref{http://okmij.org/ftp/papers/LogicT.pdf,
 online}.")
     (license license:bsd-3)))
 
+(define-public ghc-lucid
+  (package
+    (name "ghc-lucid")
+    (version "2.9.12")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/lucid/lucid-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32
+         "156wniydd1hlb7rygbm95zln8ky8lai8rn2apkkv0rax9cdw6jrh"))))
+    (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)))
+    (native-inputs
+     `(("ghc-hunit" ,ghc-hunit)
+       ("ghc-hspec" ,ghc-hspec)
+       ("ghc-bifunctors" ,ghc-bifunctors)))
+    (arguments
+     `(#:cabal-revision
+       ("1"
+        "1f0whk5ncanxfjjanrf6rqyncig2xgc5mh2j0sqy3nrlyjr9aqq9")))
+    (home-page "https://github.com/chrisdone/lucid")
+    (synopsis "Haskell DSL for rendering HTML")
+    (description "Clear to write, read and edit Haskell DSL for HTML.
+
+@itemize @bullet
+@item
+Names are consistent, and do not conflict with base or are keywords
+(all have suffix @code{-}).
+@item
+Same combinator can be used for attributes and elements
+(e.g. @code{style_}).
+@end itemize")
+    (license license:bsd-3)))
+
 (define-public ghc-lzma
   (package
     (name "ghc-lzma")
@@ -7900,6 +8277,7 @@ the @code{mtl-tf} package.")
         (base32
          "1bqy982lpdb83lacfy76n8kqw5bvd31avxj25kg8gkgycdh0g0ma"))))
     (build-system haskell-build-system)
+    (outputs '("out" "static" "doc"))
     (inputs `(("ghc-unordered-containers" ,ghc-unordered-containers)
               ("ghc-hashable" ,ghc-hashable)
               ("ghc-vector" ,ghc-vector)
@@ -7948,6 +8326,28 @@ semi-direct products, \"deletable\" monoids, \"split\" monoids, and
 \"cut\" monoids.")
     (license license:bsd-3)))
 
+(define-public ghc-mountpoints
+  (package
+    (name "ghc-mountpoints")
+    (version "1.0.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/mountpoints/mountpoints-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32
+         "1hnm31pqcffphyc463wf0vbik9fzm5lb2r4wjdc1y4dqzmjdzz37"))))
+    (build-system haskell-build-system)
+    (home-page
+     "http://hackage.haskell.org/package/mountpoints")
+    (synopsis "Haskell library for listing mount points")
+    (description "This library provides Haskell bindings for checking
+currently mounted filesystems.")
+    (license license:lgpl2.1+)))
+
 (define-public ghc-mtl-compat
   (package
     (name "ghc-mtl-compat")
@@ -8090,7 +8490,8 @@ between 2 and 3 times faster than the Mersenne Twister.")
           "0gsyyaqyh5r9zc0rhwpj5spyd6i4w2vj61h4nihgmmh0yyqvf3z5"))))
     (build-system haskell-build-system)
     (arguments
-     '(#:phases
+     '(#:extra-directories ("ncurses")
+       #:phases
        (modify-phases %standard-phases
          (add-before 'build 'fix-includes
            (lambda _
@@ -8116,7 +8517,7 @@ ncurses.")
   (package
     (name "ghc-network")
     (version "2.8.0.1")
-    (outputs '("out" "doc"))
+    (outputs '("out" "static" "doc"))
     (source
      (origin
        (method url-fetch)
@@ -8206,11 +8607,41 @@ getting a list of all the network interfaces and their respective
 IPv4, IPv6 and MAC addresses.")
     (license license:bsd-3)))
 
+(define-public ghc-network-multicast
+  (package
+    (name "ghc-network-multicast")
+    (version "0.3.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/network-multicast/network-multicast-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32
+         "0whvi0pbwjy6dbwfdf9rv1j3yr3lcmfp3q7a8pwq63g537l4l2l3"))))
+    (build-system haskell-build-system)
+    (inputs
+     `(("ghc-network" ,ghc-network)
+       ("ghc-network-bsd" ,ghc-network-bsd)))
+    (home-page
+     "http://hackage.haskell.org/package/network-multicast")
+    (synopsis "Simple multicast library for Haskell")
+    (description
+     "This package provides the Network.Multicast Haskell module for
+sending UDP datagrams over multicast (class D) addresses.")
+    ;; Note that this is technically under CC0 1.0 and Expat, though it's not
+    ;; totally clear what the breakdown is.  Since CC0 1.0 is effectively
+    ;; "public domain with a minimal fallback license", figuring marking it
+    ;; as effectively Expat is probably correct.
+    (license license:expat)))
+
 (define-public ghc-network-uri
   (package
     (name "ghc-network-uri")
     (version "2.6.1.0")
-    (outputs '("out" "doc"))
+    (outputs '("out" "static" "doc"))
     (source
      (origin
        (method url-fetch)
@@ -8413,6 +8844,38 @@ old @code{time} library.  For new projects, the newer
 @uref{https://hackage.haskell.org/package/time, time library} is recommended.")
     (license license:bsd-3)))
 
+(define-public ghc-only
+  (package
+    (name "ghc-only")
+    (version "0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/Only/Only-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32
+         "0rdj3a629fk2vp121jq8mf2smkblrz5w3cxhlsyx6my2x29s2ymb"))))
+    (build-system haskell-build-system)
+    (arguments
+     `(#:cabal-revision
+       ("1"
+        "1ahk7p34kmh041mz7lyc10nhcxgv2i4z8nvzxvqm2x34gslmsbzr")))
+    (home-page "https://hackage.haskell.org/package/Only")
+    (synopsis "The 1-tuple type or single-value collection")
+    (description
+     "This package provides a canonical anonymous 1-tuple type missing from
+Haskell for attaching typeclass instances.
+
+There is also the @url{https://hackage.haskell.org/package/OneTuple, OneTuple
+package} which by using a boxed @code{data}-type provides a 1-tuple type which
+has laziness properties which are more faithful to the ones of Haskell's
+native tuples; whereas the primary purpose of @code{Only} is to provide the
+traditionally so named type-wrapper for attaching typeclass instances.")
+    (license license:bsd-3)))
+
 (define-public ghc-opengl
   (package
     (name "ghc-opengl")
@@ -8458,6 +8921,8 @@ version 1.3).")
         (base32
          "0zgllb4bcash2i2cispa3j565aw3dpxs41ghmhpvyvi4a6xmyldx"))))
     (build-system haskell-build-system)
+    (arguments
+     `(#:extra-directories ("glu")))
     (inputs
      `(("ghc-half" ,ghc-half)
        ("ghc-fixed" ,ghc-fixed)
@@ -8692,6 +9157,45 @@ require aeson
     (description "Safe conversions between textual types")
     (license license:isc)))
 
+(define-public ghc-text-short
+  (package
+    (name "ghc-text-short")
+    (version "0.1.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/text-short/text-short-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32
+         "0xyrxlb602z8bc9sr2y1fag0x56a20yj5qrkvy7iwc6hnznrynxz"))))
+    (build-system haskell-build-system)
+    (inputs `(("ghc-hashable" ,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)))
+    (arguments
+     `(#:cabal-revision
+       ("2"
+        "17cb7p0qywf2dsrq3g8qb3ssknd9wl5k0nc2pxz9gc3l8rxpkw51")))
+    (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
+is suitable for keeping many short strings in memory.  This is similar
+to how @code{ShortByteString} relates to @code{ByteString}.
+
+The main difference between @code{Text} and @code{ShortText} is that
+@code{ShortText} uses UTF-8 instead of UTF-16 internally and also doesn't
+support zero-copy slicing (thereby saving 2 words).  Consequently, the memory
+footprint of a (boxed) @{ShortText} value is 4 words (2 words when unboxed)
+plus the length of the UTF-8 encoded payload.")
+    (license license:bsd-3)))
+
 (define-public ghc-doclayout
   (package
     (name "ghc-doclayout")
@@ -8734,6 +9238,17 @@ code.  It was designed for use in @code{Pandoc}.")
         (base32
          "0dpjrr40h54cljzhvixyym07z792a9izg6b9dmqpjlgcg4rj0xx8"))))
     (build-system haskell-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'find-library
+           (lambda _
+             (substitute* "test/Tests/Command.hs"
+               (("= dynlibEnv")
+                (format #f "= [(\"LD_LIBRARY_PATH\" , \"~a/dist/build\")]"
+                        (getcwd))))
+             #t)))))
+    (outputs '("out" "static" "doc"))
     (inputs
      `(("ghc-aeson" ,ghc-aeson)
        ("ghc-aeson-pretty" ,ghc-aeson-pretty)
@@ -8796,6 +9311,117 @@ definition lists, tables, and other features.  A compatibility mode is
 provided for those who need a drop-in replacement for Markdown.pl.")
     (license license:gpl2+)))
 
+(define-public pandoc
+  (package
+    (inherit ghc-pandoc)
+    (name "pandoc")
+    (arguments
+     `(#:configure-flags
+       (list "-fstatic"
+             ;; Do not build trypandoc; this is the default but it's better to
+             ;; be explicit.
+             "-f-trypandoc"
+             ;; TODO: Without these we cannot link the Haskell libraries
+             ;; statically.  It would be nice if we could also build the
+             ;; shared libraries.
+             "--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
+         (add-after 'unpack 'create-simple-paths-module
+           (lambda* (#:key outputs #:allow-other-keys)
+             (call-with-output-file "Paths_pandoc.hs"
+               (lambda (port)
+                 (format port "\
+{-# LANGUAGE CPP #-}
+{-# LANGUAGE NoRebindableSyntax #-}
+{-# OPTIONS_GHC -fno-warn-missing-import-lists #-}
+module Paths_pandoc (version,getDataDir,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-~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))
+                         (assoc-ref outputs "out")
+                         ,(package-version ghc)
+                         ,(package-version ghc-pandoc))))
+             #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))
+         (delete 'check)
+         (add-after 'install 'post-install-check
+           (assoc-ref %standard-phases 'check)))))
+    (outputs '("out" "lib" "static" "doc"))
+    (inputs
+     (let* ((direct-inputs (package-inputs ghc-pandoc))
+            (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")
+         ,@all-static-inputs
+         ,@direct-inputs)))
+    (native-inputs
+     (let* ((direct-inputs (package-native-inputs ghc-pandoc))
+            (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))))))))
+       `(,@all-static-inputs
+         ,@direct-inputs)))))
+
 (define-public ghc-pandoc-citeproc
   (package
     (name "ghc-pandoc-citeproc")
@@ -8855,6 +9481,109 @@ 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")
@@ -8868,6 +9597,26 @@ suitable for inclusion in pandoc YAML metadata.")
                (base32
                 "1d6ygq991ddria71l7hg9yd7lq94sjy4m71rdws1v8hq943c4d0q"))))
     (build-system haskell-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         ;; None of the directory names are actually used.  By generating a
+         ;; simpler module without references to store names we avoid
+         ;; introducing references in the pandoc executable.
+         (add-after 'unpack 'create-simple-paths-module
+           (lambda _
+             (call-with-output-file "Paths_pandoc_types.hs"
+               (lambda (port)
+                 (format port "\
+{-# LANGUAGE CPP #-}
+{-# LANGUAGE NoRebindableSyntax #-}
+{-# OPTIONS_GHC -fno-warn-missing-import-lists #-}
+module Paths_pandoc_types (version) where
+import Data.Version (Version(..))
+version :: Version
+version = Version [~a] []
+" (string-map (lambda (chr) (if (eq? chr #\.) #\, chr)) ,version))))
+             #t)))))
     (inputs
      `(("ghc-syb" ,ghc-syb)
        ("ghc-aeson" ,ghc-aeson)
@@ -8890,7 +9639,7 @@ building up, manipulating and serialising @code{Pandoc} structures.")
   (package
     (name "ghc-parallel")
     (version "3.2.2.0")
-    (outputs '("out" "doc"))
+    (outputs '("out" "static" "doc"))
     (source
      (origin
        (method url-fetch)
@@ -9056,7 +9805,7 @@ files/directories, and more.")
   (package
     (name "ghc-paths")
     (version "0.1.0.12")
-    (outputs '("out" "doc"))
+    (outputs '("out" "static" "doc"))
     (source
      (origin
        (method url-fetch)
@@ -9137,6 +9886,8 @@ rules.")
         (base32
          "0xcyi1fivwg7a92mch5bcqzmrfxzqj42rmb3m8kgs61x4qwpxj82"))))
     (build-system haskell-build-system)
+    (arguments
+     `(#:extra-directories ("pcre")))
     (inputs
      `(("pcre" ,pcre)))
     (native-inputs
@@ -9660,7 +10411,7 @@ Show instance.")
   (package
     (name "ghc-primitive")
     (version "0.6.4.0")
-    (outputs '("out" "doc"))
+    (outputs '("out" "static" "doc"))
     (source
      (origin
        (method url-fetch)
@@ -9727,6 +10478,7 @@ API.")
         (base32
          "1dx3nkc27yxsrbrhh3iwhq7dl1xn6bj7n62yx6nh8vmpbg62lqvl"))))
     (build-system haskell-build-system)
+    (outputs '("out" "static" "doc"))
     (inputs
      `(("ghc-base-orphans" ,ghc-base-orphans)
        ("ghc-bifunctors" ,ghc-bifunctors)
@@ -9929,7 +10681,7 @@ usable.")
   (package
     (name "ghc-random")
     (version "1.1")
-    (outputs '("out" "doc"))
+    (outputs '("out" "static" "doc"))
     (source
      (origin
        (method url-fetch)
@@ -10005,6 +10757,7 @@ includes efficient implementations for common data types.")
         (base32
          "0q4m2fa7wkgxs0grir8rlqwibasmi3s1x7c107ynndwfm62nzv0a"))))
     (build-system haskell-build-system)
+    (outputs '("out" "static" "doc"))
     (inputs `(("ghc-hashable" ,ghc-hashable)
               ("ghc-vector" ,ghc-vector)
               ("ghc-unordered-containers" ,ghc-unordered-containers)
@@ -10279,6 +11032,8 @@ this problem.")
                (base32
                 "1h16w994g9s62iwkdqa7bar2n9cfixmkzz2rm8svm960qr57valf"))))
     (build-system haskell-build-system)
+    (arguments
+     `(#:extra-directories ("pcre")))
     (inputs
      `(("ghc-regex-base" ,ghc-regex-base)
        ("pcre" ,pcre)))
@@ -10350,6 +11105,7 @@ Haskell library @code{regex-base}.")
         (base32
          "03yhpqrqz977nwlnhnyz9dacnbzw8xb6j18h365rkgmbc05sb3hf"))))
     (build-system haskell-build-system)
+    (outputs '("out" "static" "doc"))
     (inputs
      `(("ghc-regex-base" ,ghc-regex-base)))
     (home-page "https://github.com/haskell-hvr/regex-tdfa")
@@ -10438,6 +11194,7 @@ normal mtl transformers.")
         (base32
          "1jbqif6k249rkknm2zwk8v8jil3kgi9ar53358v8l4ffx346rm82"))))
     (build-system haskell-build-system)
+    (outputs '("out" "static" "doc"))
     (inputs
      `(("ghc-rebase" ,ghc-rebase)))
     (home-page "https://github.com/nikita-volkov/rerebase")
@@ -11108,6 +11865,7 @@ class, forming lattice-like structure.")
         (base32
          "016hc4imr9l4szs3p7f1aahvxr5wv4clvr3qzrm3nibssg5vrs61"))))
     (build-system haskell-build-system)
+    (outputs '("out" "static" "doc"))
     (inputs
      `(("ghc-base-orphans" ,ghc-base-orphans)
        ("ghc-transformers-compat" ,ghc-transformers-compat)
@@ -11597,7 +12355,7 @@ used for example by QuickCheck, see quickcheck-special."  )
   (package
     (name "ghc-split")
     (version "0.2.3.3")
-    (outputs '("out" "doc"))
+    (outputs '("out" "static" "doc"))
     (source
      (origin
        (method url-fetch)
@@ -12132,7 +12890,7 @@ building Scalable Vector Graphics (SVG).")
   (package
     (name "ghc-syb")
     (version "0.7.1")
-    (outputs '("out" "doc"))
+    (outputs '("out" "static" "doc"))
     (source
      (origin
        (method url-fetch)
@@ -12287,6 +13045,49 @@ Unlike the filepath package, this package does not simply reuse String,
 increasing type safety.")
     (license license:expat)))
 
+(define-public ghc-tabular
+  (package
+    (name "ghc-tabular")
+    (version "0.2.2.7")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/tabular/tabular-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32
+         "1ysgq7rrks7f98nnvxil8xz1q27hxdgz4szbjhqwzbwd209dmy0k"))))
+    (build-system haskell-build-system)
+    (inputs
+     `(("ghc-csv" ,ghc-csv)
+       ("ghc-html" ,ghc-html)))
+    (home-page "https://github.com/bgamari/tabular")
+    (synopsis "Two-dimensional data tables with rendering functions")
+    (description
+     "Tabular provides a Haskell representation of two-dimensional data
+tables, the kind that you might find in a spreadsheet or or a research report.
+It also comes with some default rendering functions for turning those tables
+into ASCII art, simple text with an arbitrary delimiter, CSV, HTML or LaTeX.
+
+Below is an example of the kind of output this library produces.  The tabular
+package can group rows and columns, each group having one of three
+separators (no line, single line, double line) between its members.
+
+@example
+
+    || memtest 1 | memtest 2 ||  time test  | time test 2
+====++===========+===========++=============+============
+A 1 ||       hog |  terrible ||        slow |      slower
+A 2 ||       pig |   not bad ||        fast |     slowest
+----++-----------+-----------++-------------+------------
+B 1 ||      good |     awful || intolerable |    bearable
+B 2 ||    better | no chance ||    crawling |     amazing
+B 3 ||       meh |   well... ||  worst ever |          ok
+
+@end example")
+    (license license:bsd-3)))
 
 (define-public ghc-tagged
   (package
@@ -12577,7 +13378,7 @@ string metrics efficiently.")
   (package
     (name "ghc-tf-random")
     (version "0.5")
-    (outputs '("out" "doc"))
+    (outputs '("out" "static" "doc"))
     (source
      (origin
        (method url-fetch)
@@ -13016,6 +13817,28 @@ from a shell.  The @code{tldr} pages are a community effort to simplify the
 man pages with practical examples.")
     (license license:bsd-3)))
 
+(define-public ghc-torrent
+  (package
+    (name "ghc-torrent")
+    (version "10000.1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/torrent/torrent-"
+             version ".tar.gz"))
+       (sha256
+        (base32 "0m7s0q7f8c7glxzqhf2j86ch5xhk6jnzwwsa4mkywag22119c290"))))
+    (build-system haskell-build-system)
+    (inputs
+     `(("ghc-bencode" ,ghc-bencode)
+       ("ghc-syb" ,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
+BitTorrent files.")
+    (license license:bsd-3)))
+
 (define-public ghc-transformers
   (package
     (name "ghc-transformers")
@@ -13309,6 +14132,28 @@ processes.  It wraps around the @code{process} library, and intends to improve
 upon it.")
     (license license:expat)))
 
+(define-public ghc-uglymemo
+  (package
+    (name "ghc-uglymemo")
+    (version "0.1.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/uglymemo/uglymemo-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32
+         "0ixqg5d0ly1r18jbgaa89i6kjzgi6c5hanw1b1y8c5fbq14yz2gy"))))
+    (build-system haskell-build-system)
+    (home-page "https://hackage.haskell.org/package/uglymemo")
+    (synopsis "Simple memoization function for Haskell")
+    (description
+     "This package provides a simple (but internally ugly) memoization
+function.")
+    (license license:public-domain)))
+
 (define-public ghc-unagi-chan
   (package
     (name "ghc-unagi-chan")
@@ -13525,6 +14370,7 @@ for Unix time in Haskell.")
          "02gy1zrxgzg4xmzm8lafsf1nyr3as1q20r8ld73xg3q7rkag9acg"))))
     (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)))
@@ -13566,7 +14412,7 @@ functions.")
   (package
     (name "ghc-unordered-containers")
     (version "0.2.10.0")
-    (outputs '("out" "doc"))
+    (outputs '("out" "static" "doc"))
     (source
      (origin
        (method url-fetch)
@@ -13921,7 +14767,7 @@ representing a store for a single element.")
   (package
     (name "ghc-vector")
     (version "0.12.0.3")
-    (outputs '("out" "doc"))
+    (outputs '("out" "static" "doc"))
     (source
      (origin
        (method url-fetch)
@@ -14184,6 +15030,48 @@ widths to the Char type.")
 Haskell value or function.")
     (license license:bsd-3)))
 
+(define-public ghc-wizards
+  (package
+    (name "ghc-wizards")
+    (version "1.0.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/wizards/wizards-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32
+         "1clvbd1ckhvy29qrbmpkn7bya7300fq6znnps23nn3nxyrxhsr85"))))
+    (build-system haskell-build-system)
+    (inputs
+     `(("ghc-control-monad-free" ,ghc-control-monad-free)))
+    (arguments
+     `(#:cabal-revision
+       ("1"
+        "095qd17zrdhqmcvmslbyzfa5sh9glvvsnsvnlz31gzsmi8nnsgim")))
+    (home-page "http://hackage.haskell.org/package/wizards")
+    (synopsis "High level, generic library for interrogative user interfaces")
+    (description
+     "@code{wizards} is a package designed for the quick and painless
+development of @emph{interrogative} programs, which revolve around a dialogue
+with the user, who is asked a series of questions in a sequence much like an
+installation wizard.
+
+Everything from interactive system scripts, to installation wizards, to
+full-blown shells can be implemented with the support of @code{wizards}.
+
+It is developed transparently on top of a free monad, which separates out the
+semantics of the program from any particular interface.  A variety of backends
+exist, including console-based @code{System.Console.Wizard.Haskeline} and
+@code{System.Console.Wizard.BasicIO}, and the pure
+@code{System.Console.Wizard.Pure}.  It is also possible to write your own
+backends, or extend existing back-ends with new features.  While both built-in
+IO backends operate on a console, there is no reason why @code{wizards} cannot
+also be used for making GUI wizard interfaces.")
+    (license license:bsd-3)))
+
 (define-public ghc-wl-pprint
   (package
     (name "ghc-wl-pprint")
@@ -14292,6 +15180,9 @@ modernized interface.")
        (sha256
         (base32 "0gg6852mrlgl8zng1j84fismz7k81jr5fk92glgkscf8q6ryg0bm"))))
     (build-system haskell-build-system)
+    (arguments
+     `(#:extra-directories
+       ("libx11" "libxrandr" "libxinerama" "libxscrnsaver")))
     (inputs
      `(("libx11" ,libx11)
        ("libxrandr" ,libxrandr)
@@ -14316,6 +15207,8 @@ bindings are a direct translation of the C bindings.")
                            "X11-xft-" version ".tar.gz"))
        (sha256
         (base32 "1lgqb0s2qfwwgbvwxhjbi23rbwamzdi0l0slfr20c3jpcbp3zfjf"))))
+    (arguments
+     `(#:extra-directories ("libx11" "libxft" "xorgproto")))
     (inputs
      `(("ghc-x11" ,ghc-x11)
        ("ghc-utf8-string" ,ghc-utf8-string)
@@ -14423,6 +15316,30 @@ the @code{conduit} package.")
 documents.")
     (license license:expat)))
 
+(define-public ghc-xml-hamlet
+  (package
+    (name "ghc-xml-hamlet")
+    (version "0.5.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://hackage.haskell.org/package/xml-hamlet/"
+                           "xml-hamlet-" version ".tar.gz"))
+       (sha256
+        (base32 "0jrhcjy7ww59dafg857f2g2df1fw2jmbwcs1q379ph0pc5rxj3lj"))))
+    (build-system haskell-build-system)
+    (inputs
+     `(("ghc-shakespeare" ,ghc-shakespeare)
+       ("ghc-xml-conduit" ,ghc-xml-conduit)))
+    (native-inputs
+     `(("ghc-hspec" ,ghc-hspec)
+       ("ghc-hunit" ,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
+code via quasi-quoting built on top of @code{ghc-shakespeare}.")
+    (license license:bsd-3)))
+
 (define-public ghc-yaml
   (package
     (name "ghc-yaml")
@@ -14503,7 +15420,7 @@ modifying, and extracting files from zip archives in Haskell.")
   (package
     (name "ghc-zlib")
     (version "0.6.2.1")
-    (outputs '("out" "doc"))
+    (outputs '("out" "static" "doc"))
     (source
      (origin
        (method url-fetch)
@@ -14516,7 +15433,8 @@ modifying, and extracting files from zip archives in Haskell.")
          "1l11jraslcrp9d4wnhwfyhwk4fsiq1aq8i6vj81vcq1m2zzi1y7h"))))
     (build-system haskell-build-system)
     (arguments
-     `(#:phases
+     `(#:extra-directories ("zlib")
+       #:phases
        (modify-phases %standard-phases
          (add-before 'configure 'strip-test-framework-constraints
            (lambda _
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index 94671ee54d..09732fc594 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -6,7 +6,7 @@
 ;;; Copyright © 2016, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2016, 2017 Nikita <nikita@n0.is>
 ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2015, 2016, 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2016, 2017 David Craven <david@craven.ch>
 ;;; Copyright © 2017 Danny Milosavljevic <dannym@scratchpost.org>
 ;;; Copyright © 2017 Peter Mikkelsen <petermikkelsen10@gmail.com>
@@ -14,7 +14,7 @@
 ;;; Copyright © 2017 rsiddharth <s@ricketyspace.net>
 ;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Tonton <tonton@riseup.net>
-;;; Copyright © 2018, 2019 Timothy Sample <samplet@ngyro.com>
+;;; Copyright © 2018, 2019, 2020 Timothy Sample <samplet@ngyro.com>
 ;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
 ;;; Copyright © 2018, 2019 Gabriel Hondet <gabrielhondet@gmail.com>
 ;;; Copyright © 2019 Robert Vollmert <rob@vllmrt.net>
@@ -47,6 +47,7 @@
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages version-control)
   #:use-module (guix build-system gnu)
   #:use-module (guix download)
   #:use-module (guix git-download)
@@ -567,6 +568,32 @@ interactive environment for the functional language Haskell.")
                ,make-flags))
        ((#:phases phases '%standard-phases)
         `(modify-phases ,phases
+           (add-after 'install 'remove-unnecessary-references
+             (lambda* (#:key outputs #:allow-other-keys)
+               (substitute* (find-files (string-append (assoc-ref outputs "out") "/lib/")
+                                        "settings")
+                 (("/gnu/store/.*/bin/(.*)" m program) program))
+
+               ;; Remove references to "doc" output from "out" by rewriting
+               ;; the "haddock-interfaces" fields and removing the optional
+               ;; "haddock-html" field in the generated .conf files.
+               (let ((doc (assoc-ref outputs "doc"))
+                     (out (assoc-ref outputs "out")))
+                 (with-fluids ((%default-port-encoding #f))
+                   (for-each (lambda (config-file)
+                               (substitute* config-file
+                                 (("^haddock-html: .*") "\n")
+                                 (((format #f "^haddock-interfaces: ~a" doc))
+                                  (string-append "haddock-interfaces: " out))))
+                             (find-files (string-append out "/lib") ".conf")))
+                 ;; Move the referenced files to the "out" output.
+                 (for-each (lambda (haddock-file)
+                             (let* ((subdir (string-drop haddock-file (string-length doc)))
+                                    (new    (string-append out subdir)))
+                               (mkdir-p (dirname new))
+                               (rename-file haddock-file new)))
+                           (find-files doc "\\.haddock$")))
+               #t))
            (add-after 'unpack-testsuite 'skip-tests
              (lambda _
                ;; These two tests refer to the root user, which doesn't exist
@@ -583,6 +610,53 @@ interactive environment for the functional language Haskell.")
                                 (file-pattern ".*\\.conf\\.d$")
                                 (file-type 'directory))))))
 
+(define-public ghc-8.8
+  (package (inherit ghc-8.6)
+    (name "ghc")
+    (version "8.8.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://www.haskell.org/ghc/dist/"
+                           version "/ghc-" version "-src.tar.xz"))
+       (sha256
+        (base32 "128g932i3wix6ic03v04nh5755vyjiidzri9iybwad72yfmc1p70"))))
+    (native-inputs
+     `(("ghc-bootstrap" ,ghc-8.6)
+       ("ghc-testsuite"
+        ,(origin
+           (method url-fetch)
+           (uri (string-append
+                 "https://www.haskell.org/ghc/dist/"
+                 version "/ghc-" version "-testsuite.tar.xz"))
+           (patches (search-patches "ghc-testsuite-dlopen-pie.patch"))
+           (sha256
+            (base32
+             "1l32mp94ll72skfsq1g2fqax4bkiw8b85gr3wd0bbqsqyi9a9jpr"))))
+       ("git" ,git)                     ; invoked during tests
+       ,@(filter (match-lambda
+                   (("ghc-bootstrap" . _) #f)
+                   (("ghc-testsuite" . _) #f)
+                   (_ #t))
+                 (package-native-inputs ghc-8.6))))
+    (arguments
+     (substitute-keyword-arguments (package-arguments ghc-8.6)
+       ((#:phases phases '%standard-phases)
+        `(modify-phases ,phases
+           (add-after 'unpack-testsuite 'skip-more-tests
+             (lambda _
+               ;; XXX: This test fails because our ld-wrapper script
+               ;; mangles the response file passed to the linker.
+               (substitute* "testsuite/tests/hp2ps/all.T"
+                 (("^test\\('T15904'") "# guix skipped: test('T15904'"))
+               #t))))))
+    (native-search-paths (list (search-path-specification
+                                (variable "GHC_PACKAGE_PATH")
+                                (files (list
+                                        (string-append "lib/ghc-" version)))
+                                (file-pattern ".*\\.conf\\.d$")
+                                (file-type 'directory))))))
+
 (define-public ghc-8 ghc-8.6)
 
 (define-public ghc ghc-8)
diff --git a/gnu/packages/heads.scm b/gnu/packages/heads.scm
index b28433431c..5f49265ebb 100644
--- a/gnu/packages/heads.scm
+++ b/gnu/packages/heads.scm
@@ -19,6 +19,7 @@
 (define-module (gnu packages heads)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix build-system gnu)
+  #:use-module (guix build-system trivial)
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix git-download)
@@ -161,3 +162,36 @@ done
     (synopsis "Musl-cross gcc 5 toolchain")
     (description "Musl-cross toolchain: binutils, gcc 5 and musl.")
     (license license:isc))))
+
+;; This package provides a "dev.cpio" file usable as a base for booting Heads.
+(define-public heads-dev-cpio
+  (package
+    (name "heads-dev-cpio")
+    (version "0.1")
+    (source #f)
+    (build-system trivial-build-system)
+    (arguments
+     `(#:modules ((guix build utils)
+                  (guix cpio))
+       #:builder (begin
+                   (use-modules (guix build utils)
+                                (guix cpio)
+                                (srfi srfi-26))
+                   (mkdir-p "dev") ; input directory.
+                   (let* ((out (assoc-ref %outputs "out"))
+                          (libexec (string-append out "/libexec")))
+                     (mkdir-p libexec)
+                     (call-with-output-file (string-append libexec "/dev.cpio")
+                      (lambda (port)
+                        (write-cpio-archive '("dev" "dev/console") port
+                         #:file->header
+                         (lambda (name)
+                           (if (string=? "dev/console" name)
+                               (special-file->cpio-header* name 'char-special 5 1 #o600)
+                               (file->cpio-header* name))))))
+                     #t))))
+    (synopsis "@file{dev.cpio} for Heads")
+    (description "This package provides a @file{dev.cpio} file usable as a
+base for heads' initrd.")
+    (home-page "http://osresearch.net/")
+    (license license:bsd-2)))
diff --git a/gnu/packages/hexedit.scm b/gnu/packages/hexedit.scm
index c2c6228548..e5ea18cde6 100644
--- a/gnu/packages/hexedit.scm
+++ b/gnu/packages/hexedit.scm
@@ -1,7 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2016 Kei Kebreau <kkebreau@posteo.net>
 ;;; Copyright © 2017 Gábor Boskovits <boskovits@gmail.com>
-;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -34,7 +34,7 @@
 (define-public hexedit
   (package
     (name "hexedit")
-    (version "1.4.2")
+    (version "1.5")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -43,7 +43,7 @@
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1xsxa5mip892jkvz9jshj73y6c7j3mgp8y393ciihqlyf2nmfs67"))))
+                "1sfa4i374n1xrz2ivvzcd8jzc296ly11x1713s4bplvszcqpw6dv"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                      ; no check target
diff --git a/gnu/packages/hunspell.scm b/gnu/packages/hunspell.scm
new file mode 100644
index 0000000000..ab808901f6
--- /dev/null
+++ b/gnu/packages/hunspell.scm
@@ -0,0 +1,81 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages hunspell)
+  #:use-module (guix build-system trivial)
+  #:use-module (guix download)
+  #:use-module (guix git-download)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix packages)
+  #:use-module (ice-9 match)
+  #:use-module (gnu packages libreoffice))
+
+(define* (hunspell-dictionary dict-name full-name #:key synopsis home-page license)
+  (package
+    (name (string-append
+           "hunspell-dict-"
+           ;; Downcase and replace underscore in package names
+           ;; to follow Guix naming conventions.
+           (string-map (match-lambda
+                         (#\_ #\-)
+                         (chr chr))
+                       (string-downcase dict-name))))
+    (version (package-version libreoffice))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url (string-append "https://anongit.freedesktop.org/git/"
+                                 "libreoffice/dictionaries.git/"))
+             (commit
+              (string-append "libreoffice-" version))))
+       (file-name (git-file-name "libreoffice-dictionaries" version))
+       (sha256
+        (base32 "0vvxnjpm1322ahf9q8bqs1yhkn7krglw8c6yazcf7a3jljykd9k9"))))
+    (build-system trivial-build-system)
+    (native-inputs
+     `(("source" ,source)))
+    (arguments
+     `(#:modules ((guix build utils))
+       #:builder (begin
+                   (use-modules (guix build utils))
+                   (let* ((dictionary
+                           (string-append (assoc-ref %build-inputs "source")
+                                          "/" ,dict-name
+                                          "/" ,dict-name))
+                          (hunspell (string-append %output "/share/hunspell/"))
+                          (myspell (string-append %output "/share/myspell")))
+                     (for-each
+                      (lambda (ext)
+                        (install-file (string-append dictionary ext)
+                                      hunspell))
+                      '(".aff" ".dic"))
+                     (symlink hunspell myspell)
+                     #t))))
+    (synopsis synopsis)
+    (description "This package provides a dictionary for the Hunspell
+spell-checking library.")
+    (license license)
+    (home-page home-page)))
+
+(define-public hunspell-dict-it-it
+  (let ((synopsis identity))
+    (hunspell-dictionary "it_IT" "Italian"
+                         #:synopsis (synopsis "Hunspell dictionary for Italian")
+                         #:home-page "https://www.libreitalia.org/"
+                         #:license license:gpl3)))
diff --git a/gnu/packages/hurd.scm b/gnu/packages/hurd.scm
index 98fe594b7f..47c7e17573 100644
--- a/gnu/packages/hurd.scm
+++ b/gnu/packages/hurd.scm
@@ -157,6 +157,17 @@ for other software in the GNU system that uses Mach-based inter-process
 communication.")
     (license gpl2+)))
 
+(define-public mig/32-bit
+  ;; When cross-compiling from x86_64-linux to i586-gnu, we need this 32-bit
+  ;; native MIG.
+  (package
+    (inherit mig)
+    (arguments
+     (substitute-keyword-arguments (package-arguments mig)
+       ((#:system _ #f)
+        "i686-linux")))
+    (properties `((hidden? . #t)))))
+
 (define-public hurd-headers
   ;; Resort to a post-0.9 snapshot that provides the 'file_utimens' and
   ;; 'file_exec_paths' RPCs that glibc 2.28 expects.
@@ -536,9 +547,7 @@ exec ${system}/rc \"$@\"
        ("mig" ,(if (%current-target-system)
                    ;; XXX: When targeting i586-pc-gnu, we need a 32-bit MiG,
                    ;; hence this hack.
-                   (package
-                     (inherit mig)
-                     (arguments `(#:system "i686-linux")))
+                   mig/32-bit
                    mig))
        ("perl" ,perl)
        ("texinfo" ,texinfo-4)
diff --git a/gnu/packages/hyperledger.scm b/gnu/packages/hyperledger.scm
index c1b8215584..82680cd5e4 100644
--- a/gnu/packages/hyperledger.scm
+++ b/gnu/packages/hyperledger.scm
@@ -141,7 +141,7 @@ Originally Ed25519 consists of three modules:
 @itemize
 @item digital signature algorithm itself
 @item SHA512 hash function
-@item random number generator, to generate keypairs
+@item random number generator, to generate key pairs
 @end itemize
 
 This project offers at least two different C implementations for every
diff --git a/gnu/packages/ibus.scm b/gnu/packages/ibus.scm
index b48f21b551..ecf33cb570 100644
--- a/gnu/packages/ibus.scm
+++ b/gnu/packages/ibus.scm
@@ -300,7 +300,7 @@ Japanese language input in most graphical applications.")
 (define-public librime
   (package
     (name "librime")
-    (version "1.5.3")
+    (version "1.6.1")
     (source
      (origin
        (method git-fetch)
@@ -310,7 +310,7 @@ Japanese language input in most graphical applications.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "0xskhdhk7dgpc71r39pfzxi5vrlzy90aqj1gzv8nnapq91p2awhv"))
+         "1avmy2yyag22cl2j8085n5czsk93sxv440pdb3a2diwcxwwmzm9v"))
        (modules '((guix build utils)))
        (snippet
         '(begin
@@ -330,6 +330,7 @@ Japanese language input in most graphical applications.")
              #t)))))
     (inputs
      `(("boost" ,boost)
+       ("capnproto" ,capnproto)
        ("glog" ,glog)
        ("leveldb" ,leveldb)
        ("marisa" ,marisa)
@@ -337,6 +338,7 @@ Japanese language input in most graphical applications.")
        ("yaml-cpp" ,yaml-cpp)))
     (native-inputs
      `(("googletest" ,googletest)
+       ("pkg-config" ,pkg-config)
        ("xorgproto" ,xorgproto))) ; keysym.h
     (home-page "https://rime.im/")
     (synopsis "The core library of Rime Input Method Engine")
diff --git a/gnu/packages/icu4c.scm b/gnu/packages/icu4c.scm
index 2fadc2ad8d..bf98fc3a40 100644
--- a/gnu/packages/icu4c.scm
+++ b/gnu/packages/icu4c.scm
@@ -114,6 +114,22 @@ C/C++ part.")
                (base32
                 "1p6mhvxl0xr2n0g6xdps3mwzwlv6mjsz3xlpm793p9aiybb0ra4l"))))))
 
+(define-public icu4c-68
+  (package
+    (inherit icu4c)
+    (version "68.2")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://github.com/unicode-org/icu/releases/download/release-"
+                    (string-map (lambda (x) (if (char=? x #\.) #\- x)) version)
+                    "/icu4c-"
+                    (string-map (lambda (x) (if (char=? x #\.) #\_ x)) version)
+                    "-src.tgz"))
+              (sha256
+               (base32
+                "09fng7a80xj8d5r1cgbgq8r47dsw5jsr6si9p2cj2ylhwgg974f7"))))))
+
 (define-public icu4c-build-root
   (package
     (inherit icu4c)
diff --git a/gnu/packages/idris.scm b/gnu/packages/idris.scm
index 14b16882f0..ca2772b904 100644
--- a/gnu/packages/idris.scm
+++ b/gnu/packages/idris.scm
@@ -2,7 +2,7 @@
 ;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
 ;;; Copyright © 2016, 2017 David Craven <david@craven.ch>
 ;;; Copyright © 2018 Alex ter Weele <alex.ter.weele@gmail.com>
-;;; Copyright © 2019 Eric Bavier <bavier@member.fsf.org>
+;;; Copyright © 2019, 2021 Eric Bavier <bavier@posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -38,7 +38,7 @@
 (define-public idris
   (package
     (name "idris")
-    (version "1.3.2")
+    (version "1.3.3")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -46,10 +46,12 @@
                     "idris-" version "/idris-" version ".tar.gz"))
               (sha256
                (base32
-                "0wychzkg0yghd2pp8fqz78vp1ayzks191knfpl7mhh8igsmb6bc7"))))
+                "1pachwc6msw3n1mz2z1r1w6h518w9gbhdvbaa5vi1qp3cn3wm6q4"))
+              (patches (search-patches "idris-disable-test.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)))
@@ -90,10 +92,16 @@
              "-fFFI" "-fGMP")
        #:phases
        (modify-phases %standard-phases
+         ;; This allows us to call the 'idris' binary before installing.
+         (add-after 'unpack 'set-ld-library-path
+           (lambda _
+             (setenv "LD_LIBRARY_PATH" (string-append (getcwd) "/dist/build"))
+             #t))
          (add-after 'unpack 'update-constraints
            (lambda _
              (substitute* "idris.cabal"
-               (("ansi-terminal < 0\\.9") "ansi-terminal < 0.10"))
+               (("ansi-terminal < 0\\.9") "ansi-terminal < 0.10")
+               (("cheapskate >= 0\\.1\\.1\\.2 && < 0\\.2") "cheapskate >= 0.1.1.1 && < 0.2"))
              #t))
          (add-before 'configure 'set-cc-command
            (lambda _
@@ -113,10 +121,22 @@
          (add-after 'install 'check
            (lambda* (#:key outputs #:allow-other-keys #:rest args)
              (let ((out (assoc-ref outputs "out")))
+               (chmod "test/scripts/timeout" #o755) ;must be executable
                (setenv "TASTY_NUM_THREADS" (number->string (parallel-job-count)))
                (setenv "IDRIS_CC" "gcc") ;Needed for creating executables
                (setenv "PATH" (string-append out "/bin:" (getenv "PATH")))
-               (apply (assoc-ref %standard-phases 'check) args)))))))
+               (apply (assoc-ref %standard-phases 'check) args))))
+         (add-before 'check 'restore-libidris_rts
+           (lambda* (#:key outputs #:allow-other-keys)
+             ;; The Haskell build system moves this library to the
+             ;; "static" output.  Idris only knows how to find it in the
+             ;; "out" output, so we restore it here.
+             (let ((out (assoc-ref outputs "out"))
+                   (static (assoc-ref outputs "static"))
+                   (filename "/lib/idris/rts/libidris_rts.a"))
+               (rename-file (string-append static filename)
+                            (string-append out filename))
+               #t))))))
     (native-search-paths
      (list (search-path-specification
             (variable "IDRIS_LIBRARY_PATH")
diff --git a/gnu/packages/idutils.scm b/gnu/packages/idutils.scm
index 81715591b4..26472c6900 100644
--- a/gnu/packages/idutils.scm
+++ b/gnu/packages/idutils.scm
@@ -1,6 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2012, 2013, 2015 Ludovic Courtès <ludo@gnu.org>
-;;; Copyright © 208 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2018 Efraim Flashner <efraim@flashner.co.il>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
diff --git a/gnu/packages/image-processing.scm b/gnu/packages/image-processing.scm
index e62c5c7cdb..c3ea8491d9 100644
--- a/gnu/packages/image-processing.scm
+++ b/gnu/packages/image-processing.scm
@@ -4,13 +4,15 @@
 ;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org>
-;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
 ;;; Copyright © 2018 Lprndn <guix@lprndn.info>
-;;; Copyright © 2019 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2019, 2021 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
 ;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
 ;;; Copyright © 2020 Pierre Neidhardt <mail@ambrevar.xyz>
+;;; Copyright © 2020 Brendan Tildesley <mail@brendan.scot>
+;;; Copyright © 2021 Oleh Malyi <astroclubzp@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -33,6 +35,7 @@
   #:use-module (guix utils)
   #:use-module (guix download)
   #:use-module (guix git-download)
+  #:use-module (guix build-system qt)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
   #:use-module (gnu packages)
@@ -67,8 +70,10 @@
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages qt)
   #:use-module (gnu packages serialization)
+  #:use-module (gnu packages sqlite)
   #:use-module (gnu packages tbb)
   #:use-module (gnu packages tls)
+  #:use-module (gnu packages version-control)
   #:use-module (gnu packages video)
   #:use-module (gnu packages xiph)
   #:use-module (gnu packages xml)
@@ -165,6 +170,78 @@ without compromising the original code base and it makes use of a wide variety
 of external libraries that provide additional functionality.")
     (license license:gpl3+)))
 
+(define-public opencolorio
+  (package
+    (name "opencolorio")
+    (version "1.1.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/AcademySoftwareFoundation/OpenColorIO")
+             (commit (string-append "v" version))))
+       (sha256
+        (base32 "12srvxca51czpfjl0gabpidj9n84mw78ivxy5w75qhq2mmc798sb"))
+       (file-name (git-file-name name version))
+       (modules '((guix build utils)))
+       (snippet
+        `(begin
+           ;; Remove bundled tarballs, patches, and .jars(!).  XXX: Upstream
+           ;; claims to have fixed USE_EXTERNAL_YAML, but it still fails with:
+           ;; https://github.com/AcademySoftwareFoundation/OpenColorIO/issues/517
+           ;; When removing it, also remove it from the licence field comment.
+           (for-each delete-file-recursively
+                     (filter
+                      (lambda (full-name)
+                        (let ((file (basename full-name)))
+                          (not (or (string-prefix? "yaml-cpp-0.3" file)
+                                   (string=? "unittest.h" file)))))
+                      (find-files "ext" ".*")))
+
+           #t))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:configure-flags
+       (list (string-append "-DCMAKE_CXX_FLAGS="
+                            "-Wno-error=deprecated-declarations "
+                            "-Wno-error=unused-function")
+             "-DOCIO_BUILD_STATIC=OFF"
+             ;; "-DUSE_EXTERNAL_YAML=ON"
+             "-DUSE_EXTERNAL_TINYXML=ON"
+             "-DUSE_EXTERNAL_LCMS=ON")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-test-suite
+           (lambda _
+             (substitute* "src/core_tests/CMakeLists.txt"
+               (("/bin/sh") (which "bash")))
+             #t)))))
+    (native-inputs
+     `(("git" ,git)
+       ("pkg-config" ,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)))
+    (home-page "https://opencolorio.org")
+    (synopsis "Color management for visual effects and animation")
+    (description
+     "OpenColorIO, or OCIO, is a complete color management solution geared
+towards motion picture production, with an emphasis on visual effects and
+computer animation.  It provides a straightforward and consistent user
+experience across all supporting applications while allowing for sophisticated
+back-end configuration options suitable for high-end production usage.
+
+OCIO is compatible with the @acronym{ACES, Academy Color Encoding
+Specification} and is @acronym{LUT, look-up table}-format agnostic, supporting
+many popular formats.")
+    (license (list license:expat        ; docs/ociotheme/static, ext/yaml-cpp-*
+                   license:zlib         ; src/core/md5
+                   license:bsd-3))))    ; the rest
+
 (define-public vtk
   (package
     (name "vtk")
@@ -176,38 +253,69 @@ of external libraries that provide additional functionality.")
                                   "/VTK-" version ".tar.gz"))
               (sha256
                (base32
-                "1fspgp8k0myr6p2a6wkc21ldcswb4bvmb484m12mxgk1a9vxrhrl"))))
+                "1fspgp8k0myr6p2a6wkc21ldcswb4bvmb484m12mxgk1a9vxrhrl"))
+              (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.
-       ;; -DVTK_USE_SYSTEM_NETCDF:BOOL=TRUE requires netcdf_cxx
-       #:configure-flags '("-DVTK_USE_SYSTEM_EXPAT:BOOL=TRUE"
+       #: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_OGGTHEORA: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: no "test" target
+       #:tests? #f))        ;XXX: test data not included
     (inputs
-     `(("libXt" ,libxt)
-       ("xorgproto" ,xorgproto)
-       ("libX11" ,libx11)
-       ("libxml2" ,libxml2)
-       ("mesa" ,mesa)
-       ("glu" ,glu)
+     `(("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)
+       ;("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)))
     (home-page "https://vtk.org/")
     (synopsis "Libraries for 3D computer graphics")
@@ -251,6 +359,8 @@ integrates with various databases on GUI toolkits such as Qt and Tk.")
               (sha256
                (base32
                 "06bc61r8myym4s8im10brdjfg4wxkrvsbhhl7vr1msdan2xddzi3"))
+              (patches
+               (search-patches "opencv-fix-build-of-grfmt_jpeg2000.cpp.patch"))
               (modules '((guix build utils)))
               (snippet
                '(begin
@@ -443,7 +553,7 @@ vision algorithms.  It can be used to do things like:
 (define-public vips
   (package
     (name "vips")
-    (version "8.7.4")
+    (version "8.10.5")
     (source
      (origin
        (method url-fetch)
@@ -451,33 +561,33 @@ vision algorithms.  It can be used to do things like:
              "https://github.com/libvips/libvips/releases/download/v"
              version "/vips-" version ".tar.gz"))
        (sha256
-        (base32 "01gjhcrl6zj7mcj1al717v5jsniahplqhz1xkfh2j78vyfl1hxff"))))
+        (base32 "1n6gw7cw66rfn1wdb92ydpkv7gfmjiinsg6d6gqxpdja6gsz5vm4"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("gobject-introspection" ,gobject-introspection)))
+     `(("gobject-introspection" ,gobject-introspection)
+       ("pkg-config" ,pkg-config)))
     (inputs
-     `(("glib" ,glib)
+     `(("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)
-       ("libexif" ,libexif)
-       ("giflib" ,giflib)
-       ("libgsf" ,libgsf)
-       ("fftw" ,fftw)
-       ("poppler" ,poppler)
-       ("pango" ,pango)
-       ("lcms" ,lcms)
-       ("matio" ,matio)
+       ("libxml2" ,libxml2)
        ("libwebp" ,libwebp)
+       ("matio" ,matio)
        ("niftilib" ,niftilib)
        ("openexr" ,openexr)
        ("orc" ,orc)
-       ("imagemagick" ,imagemagick)
-       ("libxml2" ,libxml2)
-       ("expat" ,expat)
-       ("hdf5" ,hdf5)))
+       ("pango" ,pango)
+       ("poppler" ,poppler)))
     (home-page "https://libvips.github.io/libvips/")
     (synopsis "Multithreaded image processing system with low memory needs")
     (description
@@ -493,14 +603,14 @@ due to its architecture which automatically parallelises the image workflows.")
 (define-public gmic
   (package
     (name "gmic")
-    (version "2.9.1")
+    (version "2.9.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://gmic.eu/files/source/gmic_"
                            version ".tar.gz"))
        (sha256
-        (base32 "13axx7nwchn6ysgpvlw3fib474q4nrwv3qn20g3q03ldid0xvjah"))))
+        (base32 "14acph914a8lp6qqfmp319ggqjg3i3hmalmnpk3mp07m7vpv2p9q"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f))                    ;there are no tests
@@ -936,7 +1046,78 @@ full-featured UI aimed at clinical researchers.")
       (description "Metapixel is a program for generating photomosaics.  It can
 generate classical photomosaics, in which the source image is viewed as a
 matrix of equally sized rectangles for each of which a matching image is
-substitued, as well as collage-style photomosaics, in which rectangular parts
+substituted, as well as collage-style photomosaics, in which rectangular parts
 of the source image at arbitrary positions (i.e. not aligned to a matrix) are
 substituted by matching images.")
       (license license:gpl2))))
+
+(define-public scantailor-advanced
+  (let ((commit "3d1e74e6ace413733511086934a66f4e3f7a6027"))
+    (package
+      (name "scantailor-advanced")
+      (version (string-append "1.0.16-" (string-take commit 7)))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/4lex4/scantailor-advanced")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "0kixwjb2x457dq7927hkh34c803p7yh1pmn6n61rk9shqrcg492h"))))
+      (build-system qt-build-system)
+      (native-inputs
+       `(("qttools" ,qttools)))
+      (inputs
+       `(("boost" ,boost)
+         ("libjpeg" ,libjpeg-turbo)
+         ("libpng" ,libpng)
+         ("libtiff" ,libtiff)
+         ("qtbase" ,qtbase)
+         ("qtsvg" ,qtsvg)
+         ("zlib" ,zlib)))
+      (arguments
+       `(#:phases
+         (modify-phases %standard-phases
+           ;; Some tests require a display and fail with offscreen mode.
+           (add-after 'unpack 'disable-failing-tests
+             (lambda _
+               (setenv "ARGS" "--exclude-regex \"imageproc_.*\"")
+               #t)))))
+      (home-page "https://github.com/4lex4/scantailor-advanced")
+      (synopsis "Clean up scanned pages")
+      (description "Scan Tailor is an interactive post-processing tool for
+scanned pages.  It performs operations such as page splitting, deskewing,
+adding/removing borders, and others.  You give it raw scans, and you get pages
+ready to be printed or assembled into a PDF or DJVU file.  Scanning, optical
+character recognition, and assembling multi-page documents are out of scope of
+this project.
+
+Scan Tailer Advanced is a fork of Scan Tailer that merges Scan Tailor Featured
+and Scan Tailor Enhanced versions as well as including many more bug fixes.")
+      (license license:gpl3+))))
+
+(define-public stiff
+  (package
+    (name "stiff")
+    (version "2.4.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://www.astromatic.net/download/stiff/stiff-"
+                           version ".tar.gz"))
+       (sha256
+        (base32 "14m92dskzw7bwsr64ha4p0mj3ndv13gwcbfic3qxrs3zq5353s7l"))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("libtiff" ,libtiff)
+       ("zlib" ,zlib)
+       ("libjpeg-turbo" ,libjpeg-turbo)))
+    (home-page "https://www.astromatic.net/software/stiff")
+    (synopsis "Convert scientific FITS images to TIFF format")
+    (description
+     "STIFF is a program that converts scientific @acronym{FITS, Flexible Image
+Transport System} images to the more popular TIFF format for illustration
+purposes.")
+    (license license:gpl3+)))
diff --git a/gnu/packages/image-viewers.scm b/gnu/packages/image-viewers.scm
index f93b353dd6..fda9e4cb7b 100644
--- a/gnu/packages/image-viewers.scm
+++ b/gnu/packages/image-viewers.scm
@@ -2,12 +2,12 @@
 ;;; Copyright © 2013, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net>
 ;;; Copyright © 2015, 2016 Alex Kost <alezost@gmail.com>
-;;; Copyright © 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2017 Alex Griffin <a@ajgrf.com>
 ;;; Copyright © 2017 Nikita <nikita@n0.is>
 ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
 ;;; Copyright © 2017 nee <nee-git@hidamari.blue>
-;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;; Copyright © 2019, 2020 Guy Fleury Iteriteka <gfleury@disroot.org>
@@ -15,6 +15,7 @@
 ;;; Copyright © 2020 Peng Mei Yu <pengmeiyu@riseup.net>
 ;;; Copyright © 2020 R Veera Kumar <vkor@vkten.in>
 ;;; Copyright © 2020 Pierre Neidhardt <mail@ambrevar.xyz>
+;;; Copyright © 2021 Rovanion Luckey <rovanion.luckey@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -58,6 +59,7 @@
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages graphics)
   #:use-module (gnu packages image)
+  #:use-module (gnu packages image-processing)
   #:use-module (gnu packages imagemagick)
   #:use-module (gnu packages maths)
   #:use-module (gnu packages perl)
@@ -74,7 +76,7 @@
 (define-public feh
   (package
     (name "feh")
-    (version "3.4.1")
+    (version "3.6.2")
     (home-page "https://feh.finalrewind.org/")
     (source (origin
               (method url-fetch)
@@ -82,14 +84,15 @@
                                   name "-" version ".tar.bz2"))
               (sha256
                (base32
-                "0yvvj1s7ayn0lwils582smwkmckdk0gij5c58g45n4xh981n693q"))))
+                "0d66qz9h37pk8h10bc918hbv3j364vyni934rlw2j951s5wznj8n"))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases (modify-phases %standard-phases (delete 'configure))
        #:test-target "test"
        #:make-flags
        (list "CC=gcc" (string-append "PREFIX=" (assoc-ref %outputs "out"))
-             "exif=1")))
+             "exif=1"
+             "inotify=1")))
     (native-inputs
      `(("perl" ,perl)
        ("perl-test-command" ,perl-test-command)))
@@ -202,7 +205,7 @@ It is the default image viewer on LXDE desktop environment.")
      `(#:tests? #f                      ; no check target
        #:make-flags
        (list (string-append "PREFIX=" %output)
-             "CC=gcc"
+             (string-append "CC=" ,(cc-for-target))
              ;; Xft.h #includes <ft2build.h> without ‘freetype2/’.  The Makefile
              ;; works around this by hard-coding /usr/include & $PREFIX.
              (string-append "CPPFLAGS=-I"
@@ -211,7 +214,16 @@ It is the default image viewer on LXDE desktop environment.")
              "V=1")
        #:phases
        (modify-phases %standard-phases
-         (delete 'configure))))         ; no configure script
+         (delete 'configure)            ; no configure script
+         (add-after 'install 'install-desktop-file
+           (lambda* (#:key outputs #:allow-other-keys)
+             (install-file "sxiv.desktop"
+                           (string-append (assoc-ref outputs "out")
+                                          "/share/applications"))
+             #t))
+         (add-after 'install 'install-icons
+           (lambda* (#:key make-flags #:allow-other-keys)
+             (apply invoke "make" "-C" "icon" "install" make-flags))))))
     (inputs
      `(("freetype" ,freetype)
        ("giflib" ,giflib)
@@ -284,7 +296,7 @@ your images.  Among its features are:
 (define-public catimg
   (package
     (name "catimg")
-    (version "2.6.0")
+    (version "2.7.0")
     (source
      (origin
        (method git-fetch)
@@ -293,7 +305,7 @@ your images.  Among its features are:
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0g9ywbgy162wiam9hc3yqpq5q4gyxa8fj4jskr3fdz8z8jjaabzz"))))
+        (base32 "0a2dswbv4xddb2l2d55hc43lzvjwrjs5z9am7v6i0p0mi2fmc89s"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f                      ; no tests
@@ -485,7 +497,7 @@ For PDF support, install the @emph{mupdf} package.")
 (define-public qview
   (package
     (name "qview")
-    (version "3.0")
+    (version "4.0")
     (source
      (origin
        (method git-fetch)
@@ -494,29 +506,22 @@ For PDF support, install the @emph{mupdf} package.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "15a91bs3wcqhgf76wzigbn10hayg628j84pq4j2vaxar94ak0vk7"))))
+        (base32 "15n9cq7w3ckinnx38hvncxrbkv4qm4k51sal41q4y0pkvhmafhnr"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
        (modify-phases %standard-phases
          (replace 'configure
-           (lambda _
-             (invoke "qmake")))
-         ;; Installation process hard-codes "/usr/bin", possibly
-         ;; prefixed.
-         (add-after 'configure 'fix-install-directory
            (lambda* (#:key outputs #:allow-other-keys)
              (let ((out (assoc-ref outputs "out")))
-               (substitute* "Makefile"
-                 (("\\$\\(INSTALL_ROOT\\)/usr") out))
-               #t)))
-         ;; Don't phone home or show "Checking for updates..." in the
-         ;; About menu.
+               (invoke "qmake" (string-append "PREFIX=" out)))))
+         ;; Don't phone home or show "Checking for updates..." in the About
+         ;; menu.
          (add-before 'build 'disable-auto-update
            (lambda _
              (substitute* "src/qvaboutdialog.cpp"
-               (("ui->updateLabel->setText\\(updateText\\);") "")
-               (("requestUpdates\\(\\);") ""))
+               (("qvApp->checkUpdates\\(\\);") "")
+               (("updateText\\(\\);") ""))
              #t)))))
     (inputs
      `(("qtbase" ,qtbase)
@@ -679,3 +684,66 @@ brightness/contrast/gamma correction, pan with keyboard and mouse, flip,
 rotate left/right, jump/forward/backward images, filename filter and use it
 to set X desktop background.")
     (license license:gpl2)))
+
+(define-public nomacs
+  (package
+    (name "nomacs")
+    (version "3.16.224")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/nomacs/nomacs")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "05d4hqg0gl3g9s2xf1hr7mc7g4cqarcap4nzxxa51fsphw2b8x16"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:build-type "Release" ; fails to build with debug info
+       #:configure-flags (list "-DENABLE_TRANSLATIONS=true"
+                               "-DUSE_SYSTEM_QUAZIP=true"
+                               "-DENABLE_OPENCV=true")
+       #:tests? #f ; no rule for target 'test'
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'copy-plugins
+           (lambda* (#:key inputs #:allow-other-keys)
+             (copy-recursively (assoc-ref inputs "plugins")
+                               "ImageLounge/plugins")))
+         (add-after 'copy-plugins 'cd-to-source-dir
+           (lambda _ (chdir "ImageLounge") #t)))))
+    (inputs
+     `(("plugins"
+        ,(origin
+           (method git-fetch)
+           (uri (git-reference
+                 (url "https://github.com/nomacs/nomacs-plugins")
+                 (commit "3.16")))
+           (sha256
+            (base32
+             "1cpdwhfvaxm970nwdc1hc13848a85pqqi176m9xpa3krla9qskml"))))
+       ("exiv2" ,exiv2)
+       ("libraw" ,libraw)
+       ("libtiff" ,libtiff)
+       ("opencv" ,opencv)
+       ("python" ,python-wrapper)
+       ("quazip" ,quazip)
+       ("qtbase" ,qtbase)
+       ("qtsvg" ,qtsvg)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("qtlinguist" ,qttools)))
+    (synopsis "Image viewer supporting all common formats")
+    (description "Nomacs is a simple to use image lounge featuring
+semi-transparent widgets that display additional information such as metadata,
+thumbnails and histograms.  It is able to browse images compressed archives
+and add notes to images.
+
+Nomacs includes image manipulation methods for adjusting brightness, contrast,
+saturation, hue, gamma, and exposure.  It has a pseudo color function which
+allows creating false color images.  A unique feature of Nomacs is the
+synchronization of multiple instances.")
+    (home-page "https://nomacs.org/")
+    (license license:gpl3+)))
diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm
index 4d443f820f..935333dee2 100644
--- a/gnu/packages/image.scm
+++ b/gnu/packages/image.scm
@@ -1,7 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2013, 2017, 2019 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2013, 2015, 2016 Andreas Enge <andreas@enge.fr>
-;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org>
+;;; Copyright © 2014, 2015, 2016, 2020 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2014, 2015 Alex Kost <alezost@gmail.com>
 ;;; Copyright © 2014, 2016, 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
@@ -9,7 +9,7 @@
 ;;; Copyright © 2014, 2017 John Darrington <jmd@gnu.org>
 ;;; Copyright © 2016, 2017, 2018, 2020 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2016, 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; 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 Kei Kebreau <kkebreau@posteo.net>
@@ -26,6 +26,8 @@
 ;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org>
 ;;; Copyright © 2020 R Veera Kumar <vkor@vkten.in>
 ;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2020 Zhu Zihao <all_but_last@163.com>
+;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -58,8 +60,10 @@
   #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages gettext)
   #: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)
   #:use-module (gnu packages graphics)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages lua)
@@ -74,10 +78,13 @@
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages qt)
+  #:use-module (gnu packages ragel)
   #:use-module (gnu packages sphinx)
+  #:use-module (gnu packages swig)
   #:use-module (gnu packages textutils)
   #:use-module (gnu packages video)
   #:use-module (gnu packages web)
+  #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg)
   #:use-module ((guix licenses) #:prefix license:)
@@ -90,14 +97,47 @@
   #:use-module (guix build-system copy)
   #:use-module (guix build-system meson)
   #:use-module (guix build-system python)
+  #:use-module (guix build-system qt)
   #:use-module (guix build-system scons)
   #:use-module (guix deprecation)
   #:use-module (srfi srfi-1))
 
+(define-public iqa
+  (package
+    (name "iqa")
+    (version "1.1.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://sourceforge.net/projects/iqa/files/"
+                       "1.1.2%20Release/iqa_1.1.2_src.tar.gz/download"))
+       (sha256
+        (base32 "00mgwy031ammab6bwmd1whhvqv3fxy1cs1igabq0n3ag12zhjs77"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:test-target "test"
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (lib (string-append out "/lib")))
+               (install-file "build/debug/libiqa.a" lib)
+               #t))))))
+    (synopsis "Image Quality Assessment")
+    (description "IQA is a C library for objectively measuring image/video
+quality.  It implements many popular algorithms, such as MS-SSIM, MS-SSIM*,
+SIMM, MSE, and PSNR.  It is designed to be fast, accurate, and reliable.  All
+code is Valgrind-clean and unit tested.")
+    (home-page "https://sourceforge.net/projects/iqa/")
+    (license license:bsd-4)))
+
 (define-public libpng
   (package
    (name "libpng")
-   (version "1.6.37")
+   (version "1.6.37")  ; Remember to also update libpng-apng if possible!
    (source (origin
             (method url-fetch)
             (uri (list (string-append "mirror://sourceforge/libpng/libpng16/"
@@ -130,7 +170,7 @@ library.  It supports almost all PNG features and is extensible.")
 (define-public libpng-apng
   (package
     (name "libpng-apng")
-    (version "1.6.28")
+    (version "1.6.37")
     (source
      (origin
        (method url-fetch)
@@ -144,7 +184,7 @@ library.  It supports almost all PNG features and is extensible.")
                    "/libpng16/libpng-" version ".tar.xz")))
        (sha256
         (base32
-         "0ylgyx93hnk38haqrh8prd3ax5ngzwvjqw5cxw7p9nxmwsfyrlyq"))))
+         "1jl8in381z0128vgxnvn33nln6hzckl7l7j9nqvkaf1m9n1p0pjh"))))
     (build-system gnu-build-system)
     (arguments
      `(#:modules ((guix build gnu-build-system)
@@ -178,7 +218,7 @@ library.  It supports almost all PNG features and is extensible.")
                                   version "/libpng-" version "-apng.patch.gz"))
                   (sha256
                    (base32
-                    "0m5nv70n9903x3xzxw9qqc6sgf2rp106ha0x6gix0xf8wcrljaab"))))))
+                    "1dh0250mw9b2hx7cdmnb2blk7ddl49n6vx8zz7jdmiwxy38v4fw2"))))))
     (native-inputs
      `(("libtool" ,libtool)))
     ;; libpng.la says "-lz", so propagate it.
@@ -304,7 +344,7 @@ Currently all documentation resides in @file{pnglite.h}.")
 (define-public libimagequant
   (package
     (name "libimagequant")
-    (version "2.12.5")
+    (version "2.12.6")
     (source
      (origin
        (method git-fetch)
@@ -313,7 +353,7 @@ Currently all documentation resides in @file{pnglite.h}.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0cp68w04ja5pv77ssfafsn958w9hh9zb8crrlb5j3gsrcmdc032k"))))
+        (base32 "00w7fny3xf14cfyhbdnmqyh9ddqdh1irvgzxd35a2z65kp7vnvj0"))))
     (build-system gnu-build-system)
     (arguments
      '(#:tests? #f))                    ; no check target
@@ -574,7 +614,7 @@ collection of tools for doing simple manipulations of TIFF images.")
 (define-public leptonica
   (package
     (name "leptonica")
-    (version "1.74.4")
+    (version "1.80.0")
     (source
      (origin
        (method git-fetch)
@@ -583,7 +623,7 @@ collection of tools for doing simple manipulations of TIFF images.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0sfg1ky0lghlq7xx0qii5167bim0wwfnnr83dl4skbj9awyvjiwi"))))
+        (base32 "12ddln72z5l3icz0i9rpsfkg5xik8fcwcn8lb0cp3jigjxi8gvkg"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("gnuplot" ,gnuplot)             ;needed for test suite
@@ -749,39 +789,59 @@ images of initially unknown height.")
     (license (list license:isc          ; pbmtools/p?m.5
                    license:gpl2+))))    ; the rest
 
+(define-public openjpeg-data
+  (package
+    (name "openjpeg-data")
+    (version "2020.05.19")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/uclouvain/openjpeg-data")
+         (commit "c5c4a8c")))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1jp84gbhw8q5b8mhc322ql9410hjf32w9hg10x4isfa9j59mnncb"))))
+    (build-system copy-build-system)
+    (synopsis "Test files for OpenJPEG")
+    (description "OpenJPEG-Data contains all files required to run the openjpeg
+test suite, including conformance tests (following Rec. ITU-T T.803 | ISO/IEC
+15444-4 procedures), non-regression tests and unit tests.")
+    (home-page "https://github.com/uclouvain/openjpeg-data")
+    (license license:bsd-2)))
+
 (define-public openjpeg
   (package
     (name "openjpeg")
     (version "2.3.1")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://github.com/uclouvain/openjpeg")
-                    (commit (string-append "v" version))))
-              (file-name (git-file-name "openjpeg" version))
-              (sha256
-               (base32
-                "1dn98d2dfa1lqyxxmab6rrcv52dyhjr4g7i4xf2w54fqsx14ynrb"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/uclouvain/openjpeg")
+         (commit
+          (string-append "v" version))))
+       (file-name
+        (git-file-name "openjpeg" version))
+       (sha256
+        (base32 "1dn98d2dfa1lqyxxmab6rrcv52dyhjr4g7i4xf2w54fqsx14ynrb"))))
     (build-system cmake-build-system)
     (arguments
-     '(#:tests? #f                   ;TODO: requires a 1.1 GiB data repository
+     '(#:tests? #f           ;TODO: requires a 1.1 GiB data repository
        #:configure-flags '("-DBUILD_STATIC_LIBS=OFF")))
     (inputs
-      `(("lcms" ,lcms)
-        ("libpng" ,libpng)
-        ("libtiff" ,libtiff)
-        ("zlib" ,zlib)))
-    (synopsis "JPEG 2000 codec")
-    (description
-      "The OpenJPEG library is a JPEG 2000 codec written in C.  It has
-been developed in order to promote the use of JPEG 2000, the new
-still-image compression standard from the Joint Photographic Experts
-Group (JPEG).
-
-In addition to the basic codec, various other features are under
-development, among them the JP2 and MJ2 (Motion JPEG 2000) file formats,
-an indexing tool useful for the JPIP protocol, JPWL-tools for
-error-resilience, a Java-viewer for j2k-images, ...")
+     `(("lcms" ,lcms)
+       ("libpng" ,libpng)
+       ("libtiff" ,libtiff)
+       ("zlib" ,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
+still-image compression standard from the Joint Photographic Experts Group
+(JPEG).  Since April 2015, it is officially recognized by ISO/IEC and ITU-T as a
+JPEG 2000 Reference Software.")
     (home-page "https://github.com/uclouvain/openjpeg")
     (license license:bsd-2)))
 
@@ -921,7 +981,7 @@ Metafile}, and @acronym{EMF+, Enhanced Metafile Plus} files.")
 (define-public imlib2
   (package
     (name "imlib2")
-    (version "1.6.1")
+    (version "1.7.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -929,8 +989,10 @@ Metafile}, and @acronym{EMF+, Enhanced Metafile Plus} files.")
                     "/imlib2-" version ".tar.bz2"))
               (sha256
                (base32
-                "0v8n3dswx7rxqfd0q03xwc7j2w1mv8lv18rdxv487a1xw5vklfad"))))
+                "0zdk4afdrrr1539f2q15zja19j4wwfmpswzws2ffgflcnhywlxhr"))))
     (build-system gnu-build-system)
+    (arguments
+     '(#:configure-flags (list "--disable-static")))
     (native-inputs
      `(("pkgconfig" ,pkg-config)))
     (inputs
@@ -1156,7 +1218,9 @@ processing and analysis library that puts its main emphasis on customizable
 algorithms and data structures.  It is particularly strong for
 multi-dimensional image processing.")
    (license license:expat)
-   (home-page "https://ukoethe.github.io/vigra/")))
+   (home-page "https://ukoethe.github.io/vigra/")
+   (properties '((max-silent-time . 7200))))) ;2 hours, to avoid timing out
+
 
 (define-public vigra-c
   (let* ((commit "66ff4fa5a7d4a77415caa676a45c2c6ea16562e7")
@@ -1355,7 +1419,7 @@ convert, manipulate, filter and display a wide variety of image formats.")
 (define-public jasper
   (package
     (name "jasper")
-    (version "2.0.19")
+    (version "2.0.23")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -1364,9 +1428,10 @@ convert, manipulate, filter and display a wide variety of image formats.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "036rcr0wkz9gzmvk1jb96piznk0c0bwxgf31z1zrlg8js4zl1n84"))))
+                "1fccpss5ii9rnsd2pkg6k7mkckwpfi8dgp64qzqv3zp1vs2nffw6"))))
     (build-system cmake-build-system)
-    (inputs `(("libjpeg" ,libjpeg-turbo)))
+    (inputs
+     `(("libjpeg" ,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.,
@@ -1475,33 +1540,6 @@ files (known as @dfn{steganography}).  Neither color nor sample frequencies are
 changed, making the embedding resistant against first-order statistical tests.")
     (license license:gpl2+)))
 
-(define-public stb-image-for-extempore
-  (let ((revision "1")
-        (commit "152a250a702bf28951bb0220d63bc0c99830c498"))
-    (package
-      (name "stb-image-for-extempore")
-      (version (string-append "0-" revision "." (string-take commit 9)))
-      (source
-       (origin (method git-fetch)
-               (uri (git-reference
-                     (url "https://github.com/extemporelang/stb")
-                     (commit commit)))
-               (sha256
-                (base32
-                 "0y0aa20pj9311x2ii06zg8xs34idg14hfgldqc5ymizc6cf1qiqv"))
-               (file-name (string-append name "-" version "-checkout"))))
-      (build-system cmake-build-system)
-      (arguments `(#:tests? #f))        ; no tests included
-      ;; Extempore refuses to build on architectures other than x86_64
-      (supported-systems '("x86_64-linux"))
-      (home-page "https://github.com/extemporelang/stb")
-      (synopsis "Image library for Extempore")
-      (description
-       "This package is a collection of assorted single-file libraries.  Of
-all included libraries only the image loading and decoding library is
-installed as @code{stb_image}.")
-      (license license:public-domain))))
-
 (define-public optipng
   (package
     (name "optipng")
@@ -1699,7 +1737,7 @@ medical image data, e.g. magnetic resonance image (MRI) and functional MRI
 (define-public gpick
   (package
     (name "gpick")
-    (version "0.2.5")
+    (version "0.2.6")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -1708,12 +1746,13 @@ medical image data, e.g. magnetic resonance image (MRI) and functional MRI
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0mcj806zagh122qgrdkrg0macpzby97y89xi2sjyn3bh8vmmyxjy"))))
+                "0nl89gca5nmbyycv5rl5bm6k7facapdk4pab9pl949aa3cjw9bk7"))))
     (build-system scons-build-system)
     (native-inputs
      `(("boost" ,boost)
        ("gettext" ,gettext-minimal)
-       ("pkg-config" ,pkg-config)))
+       ("pkg-config" ,pkg-config)
+       ("ragel" ,ragel)))
     (inputs
      `(("expat" ,expat)
        ("gtk2" ,gtk+-2)
@@ -1761,33 +1800,26 @@ parsing, viewing, modifying, and saving this metadata.")
 (define-public flameshot
   (package
     (name "flameshot")
-    (version "0.5.1")
+    (version "0.8.5")
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://github.com/lupoDharkael/flameshot")
+             (url "https://github.com/flameshot-org/flameshot")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "13h77np93r796jf289v4r687cmnpqkyqs34dm9gif4akaig74ky0"))))
-    (build-system gnu-build-system)
+         "1z77igs60lz106vsf6wsayxjafxm3llf2lm4dpvsqyyrxybfq191"))))
+    (build-system qt-build-system)
     (native-inputs
      `(("qttools" ,qttools)))
     (inputs
-     `(("qtbase" ,qtbase)))
+     `(("qtbase" ,qtbase)
+       ("qtsvg" ,qtsvg)))
     (arguments
-     `(#:tests? #f ; no tests
-       #:phases
-       (modify-phases %standard-phases
-         (replace 'configure
-           (lambda* (#:key outputs #:allow-other-keys)
-             (invoke "qmake"
-                     "CONFIG+=packaging"
-                     (string-append "BASEDIR=" (assoc-ref outputs "out"))
-                     "PREFIX=/"))))))
-    (home-page "https://github.com/lupoDharkael/flameshot")
+     `(#:tests? #f))                    ;no tests
+    (home-page "https://github.com/flameshot-org/flameshot")
     (synopsis "Powerful yet simple to use screenshot software")
     (description "Flameshot is a screenshot program.
 Features:
@@ -1874,7 +1906,7 @@ identical visual appearance.")
 (define-public grim
   (package
    (name "grim")
-   (version "1.2.0")
+   (version "1.3.1")
    (source
     (origin
      (method git-fetch)
@@ -1883,7 +1915,7 @@ identical visual appearance.")
            (commit (string-append "v" version))))
      (file-name (git-file-name name version))
      (sha256
-      (base32 "0brljl4zfbn5mh9hkfrfkvd27c5y9vdkgap9r1hrfy9r1x20sskn"))))
+      (base32 "0fjmjq0ws9rlblkcqxxw2lv7zvvyi618jqzlnz5z9zb477jwdfib"))))
    (build-system meson-build-system)
    (native-inputs `(("pkg-config" ,pkg-config)
                     ("scdoc" ,scdoc)))
@@ -1900,7 +1932,7 @@ identical visual appearance.")
 (define-public slurp
   (package
    (name "slurp")
-   (version "1.2.0")
+   (version "1.3.1")
    (source
     (origin
      (method git-fetch)
@@ -1909,18 +1941,20 @@ identical visual appearance.")
            (commit (string-append "v" version))))
      (file-name (git-file-name name version))
      (sha256
-      (base32 "0580m6kaiilgsrcj608r837r37sl6a25y7w21p7d6ij20fs3gvg1"))))
+      (base32 "1fby2v2ylcadgclds05wpkl9xi2r9dfz49dqyqpn20rjv1wnz3jv"))))
    (build-system meson-build-system)
-   (native-inputs `(("pkg-config" ,pkg-config)))
-   (inputs `(("cairo" ,cairo)
-             ("scdoc" ,scdoc)
-             ("wayland" ,wayland)
-             ("wayland-protocols" ,wayland-protocols)))
+   (native-inputs
+    `(("pkg-config" ,pkg-config)
+      ("scdoc" ,scdoc)))
+   (inputs
+    `(("cairo" ,cairo)
+      ("libxkbcommon" ,libxkbcommon)
+      ("wayland" ,wayland)
+      ("wayland-protocols" ,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
 to the standard output.  It works well together with grim.")
-   ;; MIT license.
    (license license:expat)))
 
 (define-public sng
@@ -2053,7 +2087,7 @@ This package can be used to create @code{favicon.ico} files for web sites.")
 (define-public libavif
   (package
     (name "libavif")
-    (version "0.7.3")
+    (version "0.8.4")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -2062,11 +2096,11 @@ This package can be used to create @code{favicon.ico} files for web sites.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "17hagdngpc4xzrr0aa48nx399y5lawyyx9cpcdhpds1mqk6p77lp"))))
+                "1qvjd3xi9r89pcblxdgz4c6hqp67ss53b1x9zkg7lrik7g3lwq8d"))))
     (build-system cmake-build-system)
     (arguments
      `(#:configure-flags '("-DAVIF_CODEC_AOM=ON" "-DAVIF_CODEC_DAV1D=ON"
-                           "-DAVIF_CODEC_RAV1E=OFF" ; not packaged yet
+                           "-DAVIF_CODEC_RAV1E=ON"
                            "-DAVIF_BUILD_TESTS=ON")
        #:phases
        (modify-phases %standard-phases
@@ -2080,8 +2114,9 @@ This package can be used to create @code{favicon.ico} files for web sites.")
                (install-file "../source/README.md" doc)
                #t))))))
     (inputs
-     `(("libaom" ,libaom)
-       ("dav1d" ,dav1d)))
+     `(("dav1d" ,dav1d)
+       ("libaom" ,libaom)
+       ("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
@@ -2095,16 +2130,16 @@ by AOM, including with alpha.")
     (name "mtpaint")
     ;; The author neither releases tarballs nor uses git version tags.
     ;; Instead, author puts version in git commit title.
-    (version "3.49.27")
+    (version "3.49.33")
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
              (url "https://github.com/wjaguar/mtPaint")
-             (commit "26751cd0336414e2f16cbe25c9fe2702f34e7b5c")))
+             (commit "5272e2b1e773c8e02ac3506b2d3bde82ad946b21")))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "12mzai9pqvyb342m21rjz0jxiy75q24sjw6ax147pzy8frzkgd54"))))
+        (base32 "1bmq4m0dxczl18n1yiqb75g05a4c3pal1vdcyypkilx7ijsr0cmc"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("gettext" ,gettext-minimal)
@@ -2114,12 +2149,12 @@ by AOM, including with alpha.")
      `(("imlib2" ,imlib2)
        ("libtiff" ,libtiff)
        ("libpng" ,libpng)
-       ("libungif", libungif)
-       ("libjpeg", libjpeg-turbo)
+       ("libungif" ,libungif)
+       ("libjpeg" ,libjpeg-turbo)
        ("libwebp" ,libwebp)
        ("openjpeg" ,openjpeg)
        ("lcms" ,lcms)
-       ("zlib", zlib)
+       ("zlib" ,zlib)
        ("glib" ,glib)
        ;; Support for gtk3 is in the testing stage.
        ("gtk+" ,gtk+-2)))
@@ -2137,6 +2172,66 @@ painting and palette manipulation tools.  It also handles JPEG, JPEG2000,
 GIF, TIFF, WEBP, BMP, PNG, XPM formats.")
     (license license:gpl3+)))
 
+(define-public mypaint
+  (package
+    (name "mypaint")
+    (version "2.0.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://github.com/mypaint/mypaint/"
+                                  "releases/download/v" version "/mypaint-"
+                                  version ".tar.xz"))
+              (sha256
+               (base32
+                "05mvay73vb9d2sh1ckv4vny45n059dmsps1jcppjizfmrpbkgr7k"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:imported-modules ((guix build glib-or-gtk-build-system)
+                           ,@%python-build-system-modules)
+       #:modules ((guix build python-build-system)
+                  ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
+                  (guix build utils))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'glib-or-gtk-wrap
+           (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap))
+         (add-after 'install 'wrap-program
+           (lambda* (#:key outputs inputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (gdk-pixbuf (assoc-ref inputs "gdk-pixbuf"))
+                    (gtk+ (assoc-ref inputs "gtk+")))
+               (wrap-program (string-append out "/bin/mypaint")
+                 `("GI_TYPELIB_PATH" ":" prefix
+                   (,(getenv "GI_TYPELIB_PATH"))))
+               #t)))
+         (add-before 'check 'pre-check
+           (lambda _
+             ;; Tests need writing access
+             (setenv "HOME" "/tmp")
+             #t)))))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("gobject-introspection" ,gobject-introspection)
+       ("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)))
+    (home-page "http://mypaint.org/")
+    (synopsis "Fast and simple painting app for artists")
+    (description
+     "MyPaint is a simple drawing and painting program that works well with
+Wacom-style graphics tablets.")
+    (license license:gpl2+)))
+
 (define-public phockup
   (package
     (name "phockup")
diff --git a/gnu/packages/imagemagick.scm b/gnu/packages/imagemagick.scm
index ccc0cfb493..1f80abd012 100644
--- a/gnu/packages/imagemagick.scm
+++ b/gnu/packages/imagemagick.scm
@@ -7,6 +7,8 @@
 ;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com>
+;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
+;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -48,14 +50,14 @@
     ;; The 7 release series has an incompatible API, while the 6 series is still
     ;; maintained. Don't update to 7 until we've made sure that the ImageMagick
     ;; users are ready for the 7-series API.
-    (version "6.9.11-11")
+    (version "6.9.11-34")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://imagemagick/ImageMagick-"
                                  version ".tar.xz"))
              (sha256
               (base32
-               "1b67rrppvm04aqr76qky5h2a0j2d161h8kwa04fv611w5xwandr2"))))
+               "0acdjkkgjgpfcwj9h9zncywjjrrgb9sh0cvfn3jamjxh5byf638s"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags '("--with-frozenpaths" "--without-gcc-arch"
@@ -124,6 +126,20 @@ transform images, adjust image colors, apply various special effects, or draw
 text, lines, polygons, ellipses and Bézier curves.")
     (license (license:fsf-free "http://www.imagemagick.org/script/license.php"))))
 
+;; XXX: 'transcode' fails to detect the above ImageMagick, so we provide
+;; this newer version.
+(define-public imagemagick-next
+  (package
+    (inherit imagemagick)
+    (version "6.9.11-37")
+    (source (origin
+             (method url-fetch)
+             (uri (string-append "mirror://imagemagick/ImageMagick-"
+                                 version ".tar.xz"))
+             (sha256
+              (base32
+               "19r6fyhr1bycx0p6jz034mil1zh2k7hfr02is40h4g3wf9b9sdni"))))))
+
 (define-public perl-image-magick
   (package
     (name "perl-image-magick")
@@ -174,7 +190,7 @@ script.")
 (define-public graphicsmagick
   (package
     (name "graphicsmagick")
-    (version "1.3.35")
+    (version "1.3.36")
     (source
      (origin
        (method url-fetch)
@@ -187,7 +203,7 @@ script.")
                         "/GraphicsMagick-" version ".tar.xz")))
        (sha256
         (base32
-         "0l024l4hawm9s3jqrgi2j0lxgm61dqh8sgkj1017ma7y11hqv2hq"))))
+         "0ilg6fkppb4avzais1dvi3qf6ln7v3mzj7gjm83w7pwwfpg3ynsx"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags
@@ -209,6 +225,7 @@ script.")
        ("libtiff" ,libtiff)
        ("libpng" ,libpng)
        ("libjpeg" ,libjpeg-turbo)
+       ("libwebp" ,libwebp)
        ("freetype" ,freetype)
        ("bzip2" ,bzip2)
        ("xz" ,xz)
diff --git a/gnu/packages/inkscape.scm b/gnu/packages/inkscape.scm
index 85b0ba9fcf..075f901b2d 100644
--- a/gnu/packages/inkscape.scm
+++ b/gnu/packages/inkscape.scm
@@ -5,6 +5,8 @@
 ;;; 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 Boris A. Dekshteyn <boris.dekshteyn@gmail.com>
+;;; Copyright © 2020 Ekaitz Zarraga <ekaitz@elenq.tech>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -43,6 +45,7 @@
   #:use-module (gnu packages pdf)
   #:use-module (gnu packages popt)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages ghostscript)
   #:use-module (gnu packages fontutils)
@@ -117,7 +120,7 @@ as the native format.")
 (define-public inkscape-1.0
   (package
     (name "inkscape")
-    (version "1.0")
+    (version "1.0.2")
     (source
      (origin
        (method url-fetch)
@@ -126,7 +129,7 @@ as the native format.")
                            "inkscape-" version ".tar.xz"))
        (sha256
         (base32
-         "1fwl7yjkykqb86555k4fm24inhc40mrvxqwgl2v2vi9alv8j7hc9"))
+         "12krl97a00gdcxxibsb7g2lgx5458mhx2437x0hvz350242j6gns"))
        (modules '((guix build utils)
                   (ice-9 format)))
        (snippet
@@ -249,7 +252,14 @@ endif()~%~%"
          (add-after 'install 'glib-or-gtk-compile-schemas
            (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
          (add-after 'glib-or-gtk-compile-schemas 'glib-or-gtk-wrap
-           (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
+           (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap))
+         (add-after 'install 'wrap-program
+           ;; Ensure Python is available at runtime.
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (wrap-program (string-append out "/bin/inkscape")
+                 `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH")))))
+             #t)))))
     (inputs
      `(("aspell" ,aspell)
        ("autotrace" ,autotrace)
@@ -274,15 +284,19 @@ endif()~%~%"
        ("popt" ,popt)
        ("potrace" ,potrace)
        ("lcms" ,lcms)
-       ("boost" ,boost)))
+       ("boost" ,boost)
+       ("python" ,python-wrapper)
+       ("python-scour" ,python-scour)
+       ("python-pyserial" ,python-pyserial)
+       ("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)
-       ("python" ,python-wrapper)))
+       ("pkg-config" ,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/ipfs.scm b/gnu/packages/ipfs.scm
index 222607b91a..417956a394 100644
--- a/gnu/packages/ipfs.scm
+++ b/gnu/packages/ipfs.scm
@@ -214,7 +214,7 @@ written in Go.")
 (define-public go-ipfs
   (package
     (name "go-ipfs")
-    (version "0.6.0")
+    (version "0.7.0")
     (source
      (origin
        (method url-fetch/tarbomb)
@@ -222,7 +222,7 @@ written in Go.")
              "https://dist.ipfs.io/go-ipfs/v" version
              "/go-ipfs-source.tar.gz"))
        (sha256
-        (base32 "14bgq2j2bjjy0pspy2lsj5dm3w9rmfha0l8kyq5ig86yhc4nzn80"))
+        (base32 "1fkzwm4qxxpmbjammk6s5qcyjxivfa0ydqz4mpz1w756c4jq0jf3"))
        (file-name (string-append name "-" version "-source"))))
     (build-system go-build-system)
     (arguments
diff --git a/gnu/packages/irc.scm b/gnu/packages/irc.scm
index 7c47bfc695..6927424565 100644
--- a/gnu/packages/irc.scm
+++ b/gnu/packages/irc.scm
@@ -62,6 +62,7 @@
   #:use-module (gnu packages openldap)
   #:use-module (gnu packages kde)
   #:use-module (gnu packages kde-frameworks)
+  #:use-module (gnu packages password-utils)
   #:use-module (gnu packages pcre)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
@@ -185,14 +186,14 @@ SILC and ICB protocols via plugins.")
 (define-public weechat
   (package
     (name "weechat")
-    (version "2.8")
+    (version "3.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://weechat.org/files/src/weechat-"
                                   version ".tar.xz"))
               (sha256
                (base32
-                "1301lrb3xnm9dcw3av82rkqjzqxxwwhrq0p6i37h6fxdxnas4gjm"))))
+                "1yziv4cbcy61c9mb81c5sg3rmw6nh0srzwmry4svhriv6rdd5dvc"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("gettext" ,gettext-minimal)
@@ -215,30 +216,14 @@ SILC and ICB protocols via plugins.")
        ("tcl" ,tcl)))
     (arguments
      `(#:configure-flags
-       (list "-DENABLE_JAVASCRIPT=OFF"
-             "-DENABLE_PHP=OFF"
+       (list "-DENABLE_PHP=OFF"
              "-DENABLE_RUBY=OFF"
              "-DENABLE_TESTS=ON")       ; ‘make test’ fails otherwise
-       ;; Tests hang indefinately on non-Intel platforms.
+       ;; Tests hang indefinitely on non-Intel platforms.
        #:tests? ,(if (any (cute string-prefix? <> (or (%current-target-system)
                                                       (%current-system)))
                           '("i686" "x86_64"))
-                   '#t '#f)
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'disable-failing-tests
-           ;; For reasons best left to the imagination, CppUTest cannot skip
-           ;; more than one single test...  Resort to manual patching instead.
-           ;; See <https://cpputest.github.io/manual.html#command_line>.
-           (λ _
-             ;; Don't test plugin support for languages we don't enable.
-             (substitute* "tests/unit/test-plugins.cpp"
-               ((".*\\$\\{plugin.name\\} == (javascript|php|ruby)" all)
-                (string-append "// SKIP" all)))
-             (substitute* "tests/scripts/test-scripts.cpp"
-               ((".*\\{ \"(javascript|php|ruby)\", " all)
-                (string-append "// SKIP" all)))
-             #t)))))
+                   '#t '#f)))
     (synopsis "Extensible chat client")
     (description "WeeChat (Wee Enhanced Environment for Chat) is an
 @dfn{Internet Relay Chat} (IRC) client, which is designed to be light and fast.
@@ -253,7 +238,7 @@ using a mouse.  It is customizable and extensible with plugins and scripts.")
 (define-public srain
   (package
     (name "srain")
-    (version "1.1.1")
+    (version "1.1.2")
     (source
      (origin
        (method git-fetch)
@@ -262,7 +247,7 @@ using a mouse.  It is customizable and extensible with plugins and scripts.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1ypaxdnag61smd8vy4rzl8sarwxa85543nzp0c9zfq02jqmz1gah"))))
+        (base32 "1jjs3lrlz67z9ghpc4c406a5r3naisn1famdh9rwwcg4y4y1vcws"))))
     (arguments
      `(#:tests? #f ;there are no tests
        #:phases
@@ -515,7 +500,7 @@ interface for those who are accustomed to the ircII way of doing things.")
 (define-public inspircd
   (package
     (name "inspircd")
-    (version "3.7.0")
+    (version "3.8.1")
     (source
      (origin
        (method git-fetch)
@@ -524,13 +509,13 @@ interface for those who are accustomed to the ircII way of doing things.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32
-         "1npzp23c3ac7m1grkm39i1asj04rs4i0jwf5w0c0j0hmnwslnz7a"))))
+        (base32 "1i30649dw84iscxa5as81g96f393mn1i883aq4za5ypdinr5x65g"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags (map (lambda (module)
                                 (string-append "--enable-extras=" module))
-                              '("m_geo_maxmind.cpp"
+                              '("m_argon2.cpp"
+                                "m_geo_maxmind.cpp"
                                 "m_ldap.cpp"
                                 "m_mysql.cpp"
                                 "m_pgsql.cpp"
@@ -566,16 +551,17 @@ interface for those who are accustomed to the ircII way of doing things.")
                        (string-append "--config-dir=" out-etc name)))
              #t)))))
     (native-inputs
-     `(("gnutls" ,gnutls)
-       ("libgcrypt" ,libgcrypt)
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("argon2" ,argon2)
+       ("gnutls" ,gnutls)
        ("libmaxminddb" ,libmaxminddb)
-       ("mysql" ,mysql)
        ("mbedtls-apache" ,mbedtls-apache)
+       ("mysql" ,mysql)
        ("openldap" ,openldap)
        ("openssl" ,openssl)
        ("pcre" ,pcre "bin")
        ("perl" ,perl)
-       ("pkg-config" ,pkg-config)
        ("postgresql" ,postgresql)
        ("re2" ,re2)
        ("sqlite" ,sqlite)
diff --git a/gnu/packages/iso-codes.scm b/gnu/packages/iso-codes.scm
index 4a009c3159..637390d734 100644
--- a/gnu/packages/iso-codes.scm
+++ b/gnu/packages/iso-codes.scm
@@ -22,6 +22,7 @@
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix download)
+  #:use-module (guix git-download)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system python)
   #:use-module (gnu packages gettext)
@@ -31,21 +32,22 @@
 (define-public iso-codes
   (package
     (name "iso-codes")
-    (version "3.77")
+    (version "4.5.0")
+    (home-page "https://salsa.debian.org/iso-codes-team/iso-codes")
     (source (origin
-             (method url-fetch)
-             (uri (string-append
-                   "https://pkg-isocodes.alioth.debian.org/downloads/iso-codes-"
-                   version ".tar.xz"))
+             (method git-fetch)
+             (uri (git-reference
+                   (url home-page)
+                   (commit (string-append "iso-codes-" version))))
+             (file-name (git-file-name name version))
              (sha256
               (base32
-               "140dgygv22a49xb8x1941xr5ff12cphd9zzwxds98pgrqsj77k91"))))
+               "1q6x9c5x4x0x4q11iygldsmxdyzhz1mb4n8im76glwsgqsqyjs80"))))
     (build-system gnu-build-system)
     (inputs
      `(("gettext" ,gettext-minimal)
        ("perl" ,perl)
        ("python" ,python-wrapper)))
-    (home-page "https://salsa.debian.org/iso-codes-team/iso-codes")
     (synopsis "Various ISO standards")
     (description
      "This package provides lists of various ISO standards (e.g. country,
diff --git a/gnu/packages/java-compression.scm b/gnu/packages/java-compression.scm
index 112f04af53..654d138c33 100644
--- a/gnu/packages/java-compression.scm
+++ b/gnu/packages/java-compression.scm
@@ -36,7 +36,7 @@
 (define-public java-snappy
   (package
     (name "java-snappy")
-    (version "1.1.7.3")
+    (version "1.1.7.5")
     (source
      (origin
        (method git-fetch)
@@ -44,7 +44,7 @@
              (url "https://github.com/xerial/snappy-java")
              (commit version)))
        (sha256
-        (base32 "07c145w1kv8g7dbwpy5xss142il7zr0qq78p2ih76azgl97n5cba"))
+        (base32 "0894zyasrmbi268d1ky9db16wrnc6x8b9ilq0b5paaxi2pwgjlrp"))
        (file-name (git-file-name name version))))
     (build-system ant-build-system)
     (arguments
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 3590ea9c1e..d6afb2e9d3 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -14,6 +14,7 @@
 ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
 ;;; Copyright © 2020 Raghav Gururajan <raghavgururajan@disroot.org>
 ;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2021 Vincent Legoll <vincent.legoll@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -37,6 +38,7 @@
   #:use-module (guix hg-download)
   #:use-module (guix git-download)
   #:use-module (guix svn-download)
+  #:use-module ((guix build utils) #:select (alist-replace))
   #:use-module (guix utils)
   #:use-module (guix build-system ant)
   #:use-module (guix build-system gnu)
@@ -290,7 +292,8 @@ language.")
               (uri (string-append "mirror://sourceforge/jamvm/jamvm/"
                                   "JamVM%20" version "/jamvm-"
                                   version ".tar.gz"))
-              (patches (search-patches "jamvm-arm.patch"))
+              (patches (search-patches "jamvm-1.5.1-aarch64-support.patch"
+                                       "jamvm-1.5.1-armv7-support.patch"))
               (sha256
                (base32
                 "06lhi03l3b0h48pc7x58bk9my2nrcf1flpmglvys3wyad6yraf36"))
@@ -306,13 +309,30 @@ language.")
                             (assoc-ref %build-inputs "classpath"))
              "--disable-int-caching"
              "--enable-runtime-reloc-checks"
-             "--enable-ffi")))
+             "--enable-ffi")
+       #:phases
+       ,(if (string-prefix? "aarch64" (or (%current-system)
+                                          (%current-target-system)))
+            ;; Makefiles and the configure script need to be regenerated to
+            ;; incorporate support for AArch64.
+            '(modify-phases %standard-phases
+               (replace 'bootstrap
+                 (lambda _ (invoke "autoreconf" "-vif"))))
+            '%standard-phases)))
     (inputs
      `(("classpath" ,classpath-bootstrap)
        ("jikes" ,jikes)
        ("libffi" ,libffi)
        ("zip" ,zip)
        ("zlib" ,zlib)))
+    (native-inputs
+     (if (string-prefix? "aarch64" (or (%current-system)
+                                       (%current-target-system)))
+         ;; Additional packages needed for autoreconf.
+         `(("autoconf" ,autoconf)
+           ("automake" ,automake)
+           ("libtool" ,libtool))
+         '()))
     (home-page "http://jamvm.sourceforge.net/")
     (synopsis "Small Java Virtual Machine")
     (description "JamVM is a Java Virtual Machine conforming to the JVM
@@ -697,7 +717,8 @@ machine.")))
                 (file-name (string-append "classpath-" version "-checkout"))
                 (sha256
                  (base32
-                  "1v2rww76ww322mpg3s12a1kkc6gkp31bm9gcxs532h0wq285fiw4"))))
+                  "1v2rww76ww322mpg3s12a1kkc6gkp31bm9gcxs532h0wq285fiw4"))
+                (patches (search-patches "classpath-aarch64-support.patch"))))
       (arguments
        `(#:make-flags
          ;; Ensure that the initial heap size is smaller than the maximum
@@ -763,7 +784,9 @@ machine.")))
                (base32
                 "1nl0zxz8y5x8gwsrm7n32bry4dx8x70p8z3s9jbdvs8avyb8whkn"))
               (patches
-               (search-patches "jamvm-2.0.0-disable-branch-patching.patch"))
+               (search-patches "jamvm-2.0.0-disable-branch-patching.patch"
+                               "jamvm-2.0.0-opcode-guard.patch"
+                               "jamvm-2.0.0-aarch64-support.patch"))
               (snippet
                '(begin
                   ;; Remove precompiled software.
@@ -771,9 +794,10 @@ machine.")))
                   #t))))
     (build-system gnu-build-system)
     (arguments
-     `(#:configure-flags
-       (list (string-append "--with-classpath-install-dir="
-                            (assoc-ref %build-inputs "classpath")))))
+     (substitute-keyword-arguments (package-arguments jamvm-1-bootstrap)
+       ((#:configure-flags _)
+        '(list (string-append "--with-classpath-install-dir="
+                              (assoc-ref %build-inputs "classpath"))))))
     (inputs
      `(("classpath" ,classpath-devel)
        ("ecj-javac-wrapper" ,ecj-javac-wrapper)
@@ -804,6 +828,8 @@ machine.")))
               (sha256
                (base32
                 "0bg9sb4f7qbq77c0zf9m17p47ga0kf0r9622g9p12ysg26jd1ksg"))
+              (patches (search-patches
+                        "icedtea-6-extend-hotspot-aarch64-support.patch"))
               (modules '((guix build utils)))
               (snippet
                '(begin
@@ -832,7 +858,8 @@ machine.")))
        `("--enable-bootstrap"
          "--enable-nss"
          "--without-rhino"
-         "--with-parallel-jobs"
+         ,(string-append "--with-parallel-jobs="
+                         (number->string (parallel-job-count)))
          "--disable-downloading"
          "--disable-tests"
          ,(string-append "--with-ecj="
@@ -865,11 +892,8 @@ machine.")))
                             (assoc-ref inputs
                                        (string-append part "-src"))
                             part))
-                         '("jdk" "corba"
+                         '("jdk" "hotspot" "corba"
                            "langtools" "jaxp" "jaxws")))
-             (with-directory-excursion "openjdk"
-               (invoke "tar" "xvf" (assoc-ref inputs "hotspot-src"))
-               (rename-file "hg-checkout" "hotspot"))
              (substitute* "patches/freetypeversion.patch"
                (("REQUIRED_FREETYPE_VERSION = 2.2.1")
                 "REQUIRED_FREETYPE_VERSION = 2.10.1"))
@@ -1095,9 +1119,7 @@ machine.")))
                  (changeset "jdk6-b41")))
            (sha256
             (base32
-             "07lc1z4k5dj9nrc1wvwmpvxr3xgxrdkdh53xb95skk5ij49yagfd"))
-           (patches
-            (search-patches "icedtea-6-hotspot-gcc-segfault-workaround.patch"))))
+             "07lc1z4k5dj9nrc1wvwmpvxr3xgxrdkdh53xb95skk5ij49yagfd"))))
        ("corba-src"
         ,(origin
            (method hg-fetch)
@@ -1208,6 +1230,8 @@ bootstrapping purposes.")
            "--enable-bootstrap"
            "--enable-nss"
            "--without-rhino"
+           ,(string-append "--with-parallel-jobs="
+                           (number->string (parallel-job-count)))
            "--disable-downloading"
            "--disable-tests"        ;they are run in the check phase instead
            "--with-openjdk-src-dir=./openjdk.src"
@@ -1636,7 +1660,7 @@ bootstrapping purposes.")
               (base32
                "17bdv39n4lh8l5737c96f3xgamx4y305m067p01cywgp7zaddqws"))
              (patches (search-patches
-                       "icedtea-7-hotspot-gcc-segfault-workaround.patch"))))
+                       "icedtea-7-hotspot-aarch64-use-c++98.patch"))))
          ("ant" ,ant-bootstrap)
          ("attr" ,attr)
          ("coreutils" ,coreutils)
@@ -1739,6 +1763,8 @@ IcedTea build harness.")
                  `( ;;"--disable-bootstrap"
                    "--enable-bootstrap"
                    "--enable-nss"
+                   ,(string-append "--with-parallel-jobs="
+                                   (number->string (parallel-job-count)))
                    "--disable-downloading"
                    "--disable-system-pcsc"
                    "--disable-system-sctp"
@@ -1830,16 +1856,8 @@ new Date();"))
           ,(drop "langtools"
                  "15wizy123vhk40chl1b4p552jf2pw2hdww0myf11qab425axz4nw"))
          ("hotspot-drop"
-          ,(origin
-             (method url-fetch)
-             (uri (string-append
-                   "http://icedtea.classpath.org/download/drops"
-                   "/icedtea8/" version "/hotspot.tar.xz"))
-             (sha256
-              (base32
-               "1ciz1w9j0kz7s1dxdhyqq71nla9icyz6qvn0b9z2zgkklqa98qmm"))
-             (patches (search-patches
-                       "icedtea-7-hotspot-gcc-segfault-workaround.patch"))))
+          ,(drop "hotspot"
+                 "1ciz1w9j0kz7s1dxdhyqq71nla9icyz6qvn0b9z2zgkklqa98qmm"))
          ("nashorn-drop"
           ,(drop "nashorn"
                  "19pzl3ppaw8j6r5cnyp8qiw3hxijh3hdc46l39g5yfhdl4pr4hpa"))
@@ -2409,14 +2427,14 @@ new Date();"))
 (define-public ant/java8
   (package (inherit ant-bootstrap)
     (name "ant")
-    (version "1.10.1")
+    (version "1.10.9")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://apache/ant/source/apache-ant-"
                                   version "-src.tar.gz"))
               (sha256
                (base32
-                "10p3dh77lkzzzcy32dk9azljixzadp46fggjfbvgkl8mmb8cxxv8"))
+                "0x78434q5ab193ma7ys27m9kwpdgrfzqj00hrf1szwcgk0lzw01z"))
               (modules '((guix build utils)))
               (snippet
                '(begin
@@ -2444,7 +2462,7 @@ new Date();"))
                ;; "check" phase, because the dependency on "test-jar" would always
                ;; result in the tests to be run.
                (substitute* "build.xml"
-                 (("depends=\"jars,test-jar\"") "depends=\"jars\""))
+                 (("depends=\"jars,test-jar") "depends=\"jars"))
                (invoke "bash" "bootstrap.sh"
                        (string-append "-Ddist.dir="
                                       (assoc-ref outputs "out")))))))))
@@ -2457,14 +2475,14 @@ new Date();"))
 ;; requires Java 8.
 (define-public ant
   (package (inherit ant/java8)
-    (version "1.9.9")
+    (version "1.9.15")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://apache/ant/source/apache-ant-"
                                   version "-src.tar.gz"))
               (sha256
                (base32
-                "1k28mka0m3isy9yr8gz84kz1f3f879rwaxrd44vdn9xbfwvwk86n"))))
+                "1xy30f1w5gaqk6g3f0vw7ygix4rb6032qkcw42y4z8wd9jihgygd"))))
     (native-inputs
      `(("jdk" ,icedtea-7 "jdk")
        ("zip" ,zip)
@@ -2706,7 +2724,7 @@ debugging, etc.")
     (source (origin
               (method git-fetch)
               (uri (git-reference
-                    (url "https://github.com/javacc/javacc.git")
+                    (url "https://github.com/javacc/javacc")
                     (commit "release_32")))
               (file-name (string-append "javacc-" version "-checkout"))
               (sha256
@@ -3296,7 +3314,7 @@ libraries from the SIS division at ETH Zurich like jHDF5.")
          ("java-cisd-args4j" ,java-cisd-args4j)
          ("java-commons-lang" ,java-commons-lang)
          ("java-commons-io" ,java-commons-io)
-         ("hdf5" ,hdf5)
+         ("hdf5" ,hdf5-1.8)
          ("zlib" ,zlib)))
       (native-inputs
        `(("jdk" ,icedtea-8)
@@ -5118,6 +5136,72 @@ including java-asm.")
        ((#:tests? _) #f)))
     (native-inputs `())))
 
+(define-public java-asm-8
+  (package
+    (inherit java-asm)
+    (version "8.0.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://gitlab.ow2.org/asm/asm")
+                     (commit (string-append
+                               "ASM_" (string-join (string-split version #\.)
+                                                   "_")))))
+              (file-name (git-file-name "java-asm" version))
+              (sha256
+               (base32
+                "1s6j27zc1i76gh891w2g48b1c3abp9w8zp5j54yb1vm5h8djkd69"))))
+    (arguments
+     `(#:jar-name "asm8.jar"
+       #:source-dir "asm/src/main/java"
+       #:test-dir "asm/src/test"
+       ;; tests depend on junit5
+       #:tests? #f))
+    (propagated-inputs '())
+    (native-inputs '())))
+
+(define-public java-asm-tree-8
+  (package
+    (inherit java-asm-8)
+    (name "java-asm-tree")
+    (arguments
+     `(#:jar-name "asm-tree.jar"
+       #:source-dir "asm-tree/src/main/java"
+       #:test-dir "asm-tree/src/test"
+       ;; tests depend on junit5
+       #:tests? #f))
+    (inputs
+     `(("java-asm" ,java-asm-8)))))
+
+(define-public java-asm-analysis-8
+  (package
+    (inherit java-asm-8)
+    (name "java-asm-analysis")
+    (arguments
+     `(#:jar-name "asm-analysis.jar"
+       #:source-dir "asm-analysis/src/main/java"
+       #:test-dir "asm-analysis/src/test"
+       ;; tests depend on junit5
+       #:tests? #f))
+    (inputs
+     `(("java-asm" ,java-asm-8)
+       ("java-asm-tree" ,java-asm-tree-8)))))
+
+(define-public java-asm-util-8
+  (package
+    (inherit java-asm-8)
+    (name "java-asm-util")
+    (arguments
+     `(#:jar-name "asm-util8.jar"
+       #:source-dir "asm-util/src/main/java"
+       #:test-dir "asm-util/src/test"
+       ;; 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)))))
+
 (define-public java-cglib
   (package
     (name "java-cglib")
@@ -8146,6 +8230,410 @@ import org.antlr.grammar.v2.ANTLRTreePrinter;"))
     (propagated-inputs
      `(("stringtemplate" ,java-stringtemplate-3)))))
 
+(define-public java-treelayout
+  (package
+    (name "java-treelayout")
+    (version "1.0.3")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/abego/treelayout")
+                     (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "18my8ql9b1y0n0zrvkih7xfhf3dpgfhyfifvkcfhmwcvw3divxak"))))
+    (build-system ant-build-system)
+    (arguments
+     `(#:jar-name (string-append ,name "-" ,version ".jar")
+       #:source-dir "org.abego.treelayout/src/main/java"
+       #:test-dir "org.abego.treelayout/src/test"))
+    (inputs
+     `(("java-junit" ,java-junit)))
+    (native-inputs
+     `(("java-hamcrest-core" ,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
+not restricted to a specific output or format, but can be used for any kind of
+two dimensional diagram.  Examples are Swing based components, SVG files, etc.
+This is possible because TreeLayout separates the layout of a tree from the
+actual rendering.")
+    (license license:bsd-3)))
+
+(define-public java-antlr4-runtime
+  (package
+    (name "java-antlr4-runtime")
+    (version "4.8")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/antlr/antlr4")
+                     (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1qal3add26qxskm85nk7r758arladn5rcyjinmhlhznmpbbv9j8m"))
+              (patches
+                (search-patches "java-antlr4-Add-standalone-generator.patch"
+                                "java-antlr4-fix-code-too-large.java"))))
+    (build-system ant-build-system)
+    (arguments
+     `(#:jar-name "java-antlr4-runtime.jar"
+       #:source-dir "runtime/Java/src/org"
+       #:tests? #f; tests depend on java-antlr4 itself
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'build 'copy-resources
+           (lambda _
+             (copy-recursively "runtime/Java/src/main/dot"
+                               "build/classes")
+             #t)))))
+    (home-page "https://www.antlr.org")
+    (synopsis "ANTLR runtime library")
+    (description "This package contains the runtime library used with generated
+sources by ANTLR.")
+    (license license:bsd-3)))
+
+(define-public antlr4
+  (package
+    (inherit java-antlr4-runtime)
+    (name "antlr4")
+    (arguments
+     `(#:jar-name "antlr4.jar"
+       #:source-dir "tool/src"
+       #:test-dir "tool-testsuite/test:runtime-testsuite/test:runtime-testsuite/annotations/src"
+       #:test-include (list "**/Test*.java")
+       #:test-exclude (list
+                        ;; no runnable method
+                        "**/TestOutputReading.java"
+                        ;; no @Test methods
+                        "**/TestParserErrors.java"
+                        "**/TestSemPredEvalParser.java"
+                        "**/TestSets.java"
+                        "**/TestListeners.java"
+                        "**/TestParseTrees.java"
+                        "**/TestParserExec.java"
+                        "**/TestLexerErrors.java"
+                        "**/TestPerformance.java"
+                        "**/TestCompositeParsers.java"
+                        "**/TestLexerExec.java"
+                        "**/TestSemPredEvalLexer.java"
+                        "**/TestLeftRecursion.java"
+                        "**/TestFullContextParsing.java"
+                        "**/TestCompositeLexers.java"
+                        ;; Null pointer exception
+                        "**/TestCompositeGrammars.java"
+                        ;; Wrong assumption on emoji
+                        "**/TestUnicodeData.java")
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'build 'fix-build.xml
+           (lambda _
+             ;; tests are not in a java subdirectory
+             (substitute* "build.xml"
+               (("\\$\\{test.home\\}/java") "${test.home}"))
+             #t))
+         ;; tests require to have a working antlr4 binary
+         (delete 'check)
+         (add-after 'bin-install 'check
+           (lambda _
+             (invoke "ant" "compile-tests")
+             (invoke "ant" "check" "-Dtest.home=runtime-testsuite/annotations/src")
+             (invoke "ant" "check" "-Dtest.home=runtime-testsuite/test")
+             (invoke "ant" "check" "-Dtest.home=tool-testsuite/test")
+             #t))
+         (add-before 'check 'remove-unrelated-languages
+           (lambda _
+             ;; There are tests for other languages that ANTLR can generate, but
+             ;; we don't have the infrastructure for that yet.  Let's test Java
+             ;; generation only.
+             (for-each
+               (lambda (language)
+                 (delete-file-recursively
+                   (string-append "runtime-testsuite/test/org/antlr/v4/test/runtime/"
+                                  language)))
+               '("cpp" "csharp" "go" "javascript" "php" "python" "python2"
+                 "python3" "swift"))
+             #t))
+         (add-before 'check 'generate-test-parsers
+           (lambda* (#:key outputs #:allow-other-keys)
+             (define (run-antlr dir filename package)
+               (invoke "antlr4" "-lib" dir "-visitor" "-no-listener"
+                       "-package" package (string-append dir "/" filename)
+                       "-Xlog"))
+             (setenv "PATH" (string-append (getenv "PATH") ":"
+                                           (assoc-ref outputs "out") "/bin"))
+             (run-antlr "runtime-testsuite/test/org/antlr/v4/test/runtime/java/api"
+                        "Java.g4" "org.antlr.v4.test.runtime.java.api")
+             (run-antlr "runtime-testsuite/test/org/antlr/v4/test/runtime/java/api"
+                        "VisitorBasic.g4" "org.antlr.v4.test.runtime.java.api")
+             (run-antlr "runtime-testsuite/test/org/antlr/v4/test/runtime/java/api"
+                        "VisitorCalc.g4" "org.antlr.v4.test.runtime.java.api")
+             #t))
+         (add-before 'check 'remove-graphemes
+           (lambda _
+             ;; When running antlr on grahemes.g4, we get a runtime exception:
+             ;; set is empty.  So delete the file that depends on it.
+             (delete-file
+               "runtime-testsuite/test/org/antlr/v4/test/runtime/java/api/perf/TimeLexerSpeed.java")
+             #t))
+         (add-after 'install 'bin-install
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let ((jar (string-append (assoc-ref outputs "out") "/share/java"))
+                   (bin (string-append (assoc-ref outputs "out") "/bin")))
+               (mkdir-p bin)
+               (with-output-to-file (string-append bin "/antlr4")
+                 (lambda _
+                   (display
+                     (string-append "#!" (which "sh") "\n"
+                                    "java -cp " jar "/antlr4.jar:"
+                                    (string-join
+                                      (apply
+                                        append
+                                        (map
+                                          (lambda (input)
+                                            (find-files (assoc-ref inputs input)
+                                                  ".*\\.jar"))
+                                          '("antlr3" "java-stringtemplate"
+                                            "java-antlr4-runtime" "java-treelayout"
+                                            "java-jsonp-api" "java-icu4j")))
+                                      ":")
+                                    " org.antlr.v4.Tool $*"))))
+               (chmod (string-append bin "/antlr4") #o755)
+               #t)))
+         (add-before 'build 'copy-resources
+           (lambda _
+             (copy-recursively "tool/resources/" "build/classes")
+             #t))
+         (add-before 'build 'generate-unicode
+           (lambda _
+             ;; First: build the generator
+             (invoke "javac" "-cp" (getenv "CLASSPATH")
+                     "tool/src/org/antlr/v4/unicode/UnicodeRenderer.java"
+                     "tool/src/org/antlr/v4/unicode/UnicodeDataTemplateController.java")
+             ;; Then use it
+             (invoke "java" "-cp" (string-append (getenv "CLASSPATH")
+                                                 ":tool/src:runtime/Java")
+                     "org.antlr.v4.unicode.UnicodeRenderer"
+                     "tool/resources/org/antlr/v4/tool/templates"
+                     "unicodedata"
+                     "tool/src/org/antlr/v4/unicode/UnicodeData.java")
+             ;; It seems there is a bug with our ST4
+             (substitute* "tool/src/org/antlr/v4/unicode/UnicodeData.java"
+               (("\\\\>") ">"))
+             ;; Remove the additional file
+             (delete-file "tool/src/org/antlr/v4/unicode/UnicodeRenderer.java")
+             #t))
+         (add-before 'build 'generate-grammar
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "tool/src/org/antlr/v4/parse"
+               (for-each (lambda (file)
+                           (display file)
+                           (newline)
+                           (invoke "antlr3" file))
+                         '("ANTLRLexer.g" "ANTLRParser.g" "BlockSetTransformer.g"
+                           "GrammarTreeVisitor.g" "ATNBuilder.g"
+                           "ActionSplitter.g" "LeftRecursiveRuleWalker.g")))
+             (with-directory-excursion "tool/src/org/antlr/v4/codegen"
+               (install-file "../parse/ANTLRParser.tokens" ".")
+               (display "SourceGenTriggers.g\n")
+               (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)))
+    (native-inputs
+     `(("java-junit" ,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
+text or binary files.  It's widely used to build languages, tools, and
+frameworks.  From a grammar, ANTLR generates a parser that can build and walk
+parse trees.")))
+
+(define-public java-antlr4-runtime-4.1
+  (package
+    (inherit java-antlr4-runtime)
+    (version "4.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/antlr/antlr4")
+                     (commit version)))
+              (file-name (git-file-name "antlr4" version))
+              (sha256
+               (base32
+                "1i8hmx5an58cjyvhji0xgpvd6lq00z1k1mjys025q2wqc25wv4c1"))))
+    (arguments
+     (substitute-keyword-arguments (package-arguments java-antlr4-runtime)
+       ((#:phases phases)
+        `(modify-phases ,phases
+           (add-before 'configure 'chmod
+             (lambda _
+               (chmod "build.xml" #o644)
+               #t))))))
+    (inputs
+     `(("java-treelayout" ,java-treelayout)))))
+
+(define-public antlr4-4.1
+  (package
+    (inherit antlr4)
+    (version (package-version java-antlr4-runtime-4.1))
+    (source (package-source java-antlr4-runtime-4.1))
+    (arguments
+      (substitute-keyword-arguments (package-arguments antlr4)
+        ((#:test-dir _)
+         "tool/test")
+        ((#:test-exclude excludes)
+         `(list "**/TestParseErrors.java"
+                "**/TestTopologicalSort.java"
+                ,@excludes))
+        ((#:phases phases)
+         `(modify-phases ,phases
+            (delete 'generate-unicode)
+            (replace 'check
+              (lambda _
+                (invoke "ant" "check")
+                #t))
+            (add-before 'configure 'chmod
+              (lambda _
+                (chmod "build.xml" #o644)
+                #t))
+            (delete 'remove-graphemes)
+            (delete 'remove-unrelated-languages)
+            (delete 'generate-test-parsers)))))
+    (inputs
+      (alist-replace
+        "java-antlr4-runtime" (list java-antlr4-runtime-4.1)
+        (package-inputs antlr4)))))
+
+(define-public java-tunnelvisionlabs-antlr4-runtime-annotations
+  (package
+    (inherit java-antlr4-runtime)
+    (name "java-tunnelvisionlabs-antlr4-runtime-annotations")
+    (version "4.7.4")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/tunnelvisionlabs/antlr4")
+                     (commit (string-append version "-opt"))))
+              (file-name (git-file-name "java-tunnelvisionlabs-antlr4" version))
+              (sha256
+               (base32
+                "1mf2lvvsszpialsk23ma83pwp50nd32lrbjpa847zlm5gmranbr8"))
+              (patches
+                (search-patches "java-antlr4-Add-standalone-generator.patch"
+                                "java-tunnelvisionlabs-antlr-code-too-large.patch"))))
+    (arguments
+     `(#:jar-name "java-antlr4-runtime-annotations.jar"
+       #:source-dir "runtime/JavaAnnotations/src"
+       #:tests? #f; no tests
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'build 'copy-resources
+           (lambda _
+             (copy-recursively "runtime/JavaAnnotations/resources"
+                               "build/classes")
+             #t))
+         (add-after 'copy-resources 'rebuild-jar
+           (lambda _
+             (invoke "ant" "jar")
+             #t)))))
+    (inputs '())
+    (native-inputs '())
+    (synopsis "Annotations for ANTLR's runtime library")
+    (description "This package contains annotations used during the build of
+the runtime library of ANTLR.")))
+
+;; the runtime of this library requires a lexer that is generated by antlr4.
+;; However, antlr4 itself requires this library at build and run-time.  We
+;; use antlr4@4.1, the closest version of antlr that doesn't need this
+;; bootstrap process, to generate the lexer.  The generated lexer is built
+;; for the 4.1 runtime, which is slightly different from this runtime.
+;; So, we build the runtime with antlr 4.1, with a broken xml lexer, that we
+;; use to build antlr4.  We then re-use this antlr4 to build the runtime, and
+;; the proper, working, runtime to build antlr4 again.
+(define java-tunnelvisionlabs-antlr4-runtime-bootstrap
+  (package
+    (inherit java-antlr4-runtime)
+    (name "java-tunnelvisionlabs-antlr4-runtime")
+    (version (package-version java-tunnelvisionlabs-antlr4-runtime-annotations))
+    (source (package-source java-tunnelvisionlabs-antlr4-runtime-annotations))
+    (arguments
+     `(#:jar-name "java-antlr4-runtime.jar"
+       #:source-dir "runtime/Java/src"
+       #:tests? #f; tests require antlr4, but antlr4 depends on this package
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'build 'generate-xpath-lexer
+           (lambda _
+             (invoke "antlr4" "-lib" "runtime/Java/src/org/antlr/v4/runtime/tree/xpath"
+                     "-visitor" "-no-listener"
+                     "-package" "org.antlr.v4.runtime.tree.xpath"
+                     "runtime/Java/src/org/antlr/v4/runtime/tree/xpath/XPathLexer.g4")
+             ;; Generated code is for an incompatible version of the runtime
+             (substitute* "runtime/Java/src/org/antlr/v4/runtime/tree/xpath/XPathLexer.java"
+               (("LexerATNSimulator\\(this,_ATN,_decisionToDFA,_sharedContextCache\\)")
+                "LexerATNSimulator(this,_ATN)"))
+             #t))
+         (add-before 'build 'copy-resources
+           (lambda _
+             (copy-recursively "runtime/Java/src/main/dot"
+                               "build/classes")
+             #t)))))
+    (native-inputs
+     `(("antlr4" ,antlr4-4.1)
+       ("java-tunnelvisionlabs-antlr4-runtime-annotations"
+        ,java-tunnelvisionlabs-antlr4-runtime-annotations)))))
+
+(define java-tunnelvisionlabs-antlr4-bootstrap
+  (package
+    (inherit antlr4)
+    (name "java-tunnelvisionlabs-antlr4")
+    (version (package-version java-tunnelvisionlabs-antlr4-runtime-annotations))
+    (source (package-source java-tunnelvisionlabs-antlr4-runtime-annotations))
+    (arguments
+     (substitute-keyword-arguments (package-arguments antlr4)
+       ((#:test-dir _)
+        "tool/test:runtime-testsuite/src")
+       ((#:phases phases)
+        `(modify-phases ,phases
+           (delete 'remove-unrelated-languages)
+           (delete 'remove-graphemes)
+           (delete 'generate-test-parsers)
+           (delete 'check)))))
+    (native-inputs '())
+    (inputs
+     `(("antlr3" ,antlr3)
+       ("java-antlr4-runtime" ,java-tunnelvisionlabs-antlr4-runtime-bootstrap)
+       ("java-tunnelvisionlabs-antlr4-runtime-annotations"
+        ,java-tunnelvisionlabs-antlr4-runtime-annotations)
+       ("java-icu4j" ,java-icu4j)
+       ("java-jsonp-api" ,java-jsonp-api)
+       ("java-stringtemplate" ,java-stringtemplate)
+       ("java-treelayout" ,java-treelayout)))))
+
+(define-public java-tunnelvisionlabs-antlr4-runtime
+  (package
+    (inherit java-tunnelvisionlabs-antlr4-runtime-bootstrap)
+    (native-inputs
+      (alist-replace
+        "antlr4" (list java-tunnelvisionlabs-antlr4-bootstrap)
+        (package-native-inputs java-tunnelvisionlabs-antlr4-runtime-bootstrap)))))
+
+(define-public java-tunnelvisionlabs-antlr4
+  (package
+    (inherit java-tunnelvisionlabs-antlr4-bootstrap)
+    (inputs
+      (alist-replace
+        "java-antlr4-runtime" (list java-tunnelvisionlabs-antlr4-runtime)
+        (package-inputs java-tunnelvisionlabs-antlr4-bootstrap)))))
+
 (define-public java-commons-cli-1.2
   ;; This is a bootstrap dependency for Maven2.
   (package
@@ -9191,8 +9679,11 @@ not included are ones that require dependency to the Databind package.")
      `(("junit" ,java-junit)
        ("hamcrest" ,java-hamcrest-core)))
     (home-page "https://github.com/FasterXML/jackson-core")
-    (synopsis "")
-    (description "")
+    (synopsis "Low-level streaming parser and generator abstractions")
+    (description "This package contains core low-level incremental
+(streaming) parser and generator abstractions used by the Jackson Data
+Processor.  It also includes the default implementation of handler types
+(parser, generator) that handle JSON format.")
     (license license:asl2.0))); found on wiki.fasterxml.com/JacksonLicensing
 
 (define-public java-fasterxml-jackson-databind
@@ -9439,12 +9930,14 @@ interface and high-performance Typed Access API.")
     (name "java-woodstox-core")
     (version "5.0.3")
     (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/FasterXML/woodstox/archive/"
-                                  "woodstox-core-" version ".tar.gz"))
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/FasterXML/woodstox")
+                     (commit (string-append "woodstox-core-" version))))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "1i7pdgb8jbw6gdy5kmm0l6rz109n2ns92pqalpyp24vb8vlvdfd4"))))
+                "0bfylk24a967hwxprxqbg6cdvm6n4ldcarp54yg980viwvjiglyp"))))
     (build-system ant-build-system)
     (arguments
      `(#:jar-name "woodstox.jar"
@@ -9479,13 +9972,14 @@ interface and high-performance Typed Access API.")
     (name "java-fasterxml-jackson-dataformat-xml")
     (version "2.9.4")
     (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/FasterXML/"
-                                  "jackson-dataformat-xml/archive/"
-                                  "jackson-dataformat-xml-" version ".tar.gz"))
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/FasterXML/jackson-dataformat-xml")
+                     (commit (string-append "jackson-dataformat-xml-" version))))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "111fkkl90w31jbf30kgj82qdcxlw4sxppki7i198liw0ck1jcavq"))))
+                "0s1wl65mbs57c2hz2v8rnh8i04y5lpyyvnjz562j5j6b83vwwpfx"))))
     (build-system ant-build-system)
     (arguments
      `(#:jar-name "jackson-dataformat-xml.jar"
@@ -9538,18 +10032,24 @@ make data-binding work.")
     (name "java-hdrhistogram")
     (version "2.1.9")
     (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/HdrHistogram/HdrHistogram/"
-                                  "archive/HdrHistogram-" version ".tar.gz"))
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/HdrHistogram/HdrHistogram")
+                     (commit (string-append "HdrHistogram-" version))))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "1sicbmc3sr42nw93qbkb26q9rn33ag33k6k77phjc3j5h5gjffqv"))))
+                "1cw8aa1vk258k42xs6wpy72m4gbai540jq032qsa7c5586iawx2d"))))
     (build-system ant-build-system)
     (arguments
      `(#:jar-name "java-hdrhistogram.jar"
        #:source-dir "src/main/java"
        #:phases
        (modify-phases %standard-phases
+         (add-after 'unpack 'make-files-writable
+           (lambda _
+             (for-each make-file-writable (find-files "."))
+             #t))
          (add-before 'configure 'set-version
            (lambda _
              (let* ((version-java "src/main/java/org/HdrHistogram/Version.java")
@@ -10344,7 +10844,7 @@ algorithms and xxHash hashing algorithm.")
 (define-public java-bouncycastle
   (package
     (name "java-bouncycastle")
-    (version "1.60")
+    (version "1.67")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -10354,7 +10854,7 @@ algorithms and xxHash hashing algorithm.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1m921a1ac2dl797ffzg3d4j97ch308f25spb4jgsj3npfmmys5gb"))
+                "1449q7fyh03s1q0bqljcrhgacwcyqmg2bbvb3z084avgapwsainz"))
               (modules '((guix build utils)))
               (snippet
                '(begin
@@ -10717,7 +11217,7 @@ application components to create, send, receive, and read messages.")
      `(("junit" ,java-junit)
        ("hamcrest" ,java-hamcrest-core)))
     (home-page "https://javaee.github.io/javamail/")
-    (synopsis "Mail-related functionnalities in Java")
+    (synopsis "Mail-related functionality in Java")
     (description "The JavaMail API provides a platform-independent and
 protocol-independent framework to build mail and messaging applications.")
     ;; General Public License Version 2 only ("GPL") or the Common Development
@@ -11994,7 +12494,7 @@ Java method invocation.")
     (inputs
      `(("java-native-access" ,java-native-access)))
     (synopsis "Cross-platform mappings for jna")
-    (description "java-native-access-platfrom has cross-platform mappings
+    (description "java-native-access-platform has cross-platform mappings
 and mappings for a number of commonly used platform functions, including a
 large number of Win32 mappings as well as a set of utility classes that
 simplify native access.")))
@@ -12621,7 +13121,7 @@ network protocols, and core version control algorithms.")
 (define-public abcl
   (package
     (name "abcl")
-    (version "1.6.0")
+    (version "1.8.0")
     (source
      (origin
        (method url-fetch)
@@ -12629,7 +13129,7 @@ network protocols, and core version control algorithms.")
                            version "/abcl-src-" version ".tar.gz"))
        (sha256
         (base32
-         "0hvbcsffr8n2xwdixc8wyw1bfl9fxn2gyy0c4nma7j9zbn0wwgw9"))
+         "0zr5mmqyj484vza089l8vc88d07g0m8ymxzglvar3ydwyvi1x1qx"))
        (patches
         (search-patches
          "abcl-fix-build-xml.patch"))))
@@ -12945,3 +13445,98 @@ in Java, usable from Groovy, Kotlin, Scala, etc.")
 used in JVM-based languages.  They serve as an additional documentation and
 can be interpreted by IDEs and static analysis tools to improve code analysis.")
     (license license:expat)))
+
+(define-public java-javaparser
+  (package
+    (name "java-javaparser")
+    (version "3.16.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/javaparser/javaparser")
+                     (commit (string-append "javaparser-parent-" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1a4jk12ffa31fa0y8vda0739vpfj1206p0nha842b7bixbvwamv9"))
+              (modules '((guix build utils)))
+              (snippet
+               '(begin
+                  (for-each delete-file
+                            (find-files "." "\\.jar$"))
+                  #t))))
+    (build-system ant-build-system)
+    (arguments
+     `(#:tests? #f; tests require jbehave and junit5
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'build 'fill-template
+           (lambda _
+             (with-directory-excursion "javaparser-core/src/main"
+               (copy-file "java-templates/com/github/javaparser/JavaParserBuild.java"
+                          "java/com/github/javaparser/JavaParserBuild.java")
+               (substitute* "java/com/github/javaparser/JavaParserBuild.java"
+                 (("\\$\\{project.version\\}") ,version)
+                 (("\\$\\{project.name\\}") "javaparser")
+                 (("\\$\\{project.build.finalName\\}") "javaparser")
+                 (("\\$\\{maven.version\\}") "fake")
+                 (("\\$\\{maven.build.version\\}") "fake")
+                 (("\\$\\{build.timestamp\\}") "0")
+                 (("\\$\\{java.vendor\\}") "Guix")
+                 (("\\$\\{java.vendor.url\\}") "https://gnu.org/software/guix")
+                 (("\\$\\{java.version\\}") "1.8")
+                 (("\\$\\{os.arch\\}") "any")
+                 (("\\$\\{os.name\\}") "GuixSD")
+                 (("\\$\\{os.version\\}") "not available")))
+             #t))
+         (add-before 'build 'generate-javacc
+           (lambda _
+             (with-directory-excursion "javaparser-core/src/main/java"
+               (invoke "java" "javacc" "../javacc/java.jj"))
+             #t))
+         (add-before 'build 'copy-javacc-support
+           (lambda _
+             (with-directory-excursion "javaparser-core/src/main"
+               (copy-recursively "javacc-support" "java"))
+             #t))
+         (replace 'build
+           (lambda _
+             (define (build name)
+               (format #t "Building ~a~%" name)
+               (delete-file-recursively "build/classes")
+               (mkdir-p "build/classes")
+               (apply invoke "javac"
+                      "-cp" (string-append (getenv "CLASSPATH") ":"
+                                           (string-join (find-files "build/jar" ".")
+                                                        ":"))
+                      "-d" "build/classes"
+                      (find-files (string-append name "/src/main/java")
+                                  ".*.java"))
+               (invoke "jar" "-cf" (string-append "build/jar/" name ".jar")
+                       "-C" "build/classes" "."))
+             (mkdir-p "build/classes")
+             (mkdir-p "build/test-classes")
+             (mkdir-p "build/jar")
+             (build "javaparser-core")
+             (build "javaparser-core-serialization")
+             (build "javaparser-core-generators")
+             (build "javaparser-core-metamodel-generator")
+             (build "javaparser-symbol-solver-core")
+             #t))
+         (replace 'install
+           (install-jars "build/jar")))))
+    (inputs
+     `(("java-guava" ,java-guava)
+       ("java-jboss-javassist" ,java-jboss-javassist)
+       ("java-jsonp-api" ,java-jsonp-api)))
+    (native-inputs
+     `(("javacc" ,javacc)))
+    (home-page "http://javaparser.org/")
+    (synopsis "Parser for Java")
+    (description
+     "This project contains a set of libraries implementing a Java 1.0 - Java
+11 Parser with advanced analysis functionalities.")
+    (license (list
+               ;; either lgpl or asl
+               license:lgpl3+
+               license:asl2.0))))
diff --git a/gnu/packages/javascript.scm b/gnu/packages/javascript.scm
index d5ff5bffee..8434836c6f 100644
--- a/gnu/packages/javascript.scm
+++ b/gnu/packages/javascript.scm
@@ -1,9 +1,10 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net>
-;;; Copyright © 2017, 2019 Ricardo Wurmus <rekado@elephly.net>
-;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017, 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2017, 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; 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>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -27,12 +28,71 @@
   #:use-module (gnu packages compression)
   #:use-module (gnu packages lisp-xyz)
   #:use-module (gnu packages readline)
+  #:use-module (gnu packages web)
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix git-download)
   #:use-module (guix build-system gnu)
+  #:use-module (guix build-system cmake)
   #:use-module (guix build-system trivial)
-  #:use-module (guix build-system minify))
+  #:use-module (guix build-system minify)
+  #:use-module (guix utils))
+
+(define-public cjson
+  (package
+    (name "cjson")
+    (version "1.7.14")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/DaveGamble/cJSON")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32 "1rlnailhjm180zb6pc17jwphjwivw8kfpqgixjfgq4iyryq46sah"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:configure-flags '("-DENABLE_CJSON_UTILS=On")))
+    (home-page "https://github.com/DaveGamble/cJSON")
+    (synopsis "JSON parser written in ANSI C")
+    (description "This library provides a portable embeddable JSON parser.")
+    (license license:expat)))
+
+(define-public js-context-menu
+  (package
+    (name "js-context-menu")
+    (version "0.6.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+              (url "https://github.com/zorkow/context-menu")
+              (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1q063l6477z285j6h5wvccp6iswvlp0jmb96sgk32sh0lf7nhknh"))))
+    (build-system trivial-build-system)
+    (arguments
+     `(#:modules ((guix build utils))
+       #:builder
+       (begin
+         (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")
+                  "--bundle"
+                  "--tsconfig=tsconfig.json"
+                  (string-append "--outdir=" target)
+                  (find-files "ts" "\\.ts$"))))))
+    (native-inputs
+     `(("esbuild" ,esbuild)))
+    (home-page "https://github.com/zorkow/context-menu")
+    (synopsis "Generic context menu")
+    (description "This package provides a reimplementation of the MathJax
+context menu in TypeScript.")
+    (license license:asl2.0)))
 
 (define-public font-mathjax
   (package
@@ -128,6 +188,88 @@ 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-commander
+  (package
+    (name "js-commander")
+    (version "6.2.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+              (url "https://github.com/tj/commander.js")
+              (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "126m25s6mxpxmdj4aw5awz06b47r8r798lcf1c5bnmmh39cik5i1"))))
+    (build-system trivial-build-system)
+    (arguments
+     `(#:modules ((guix build utils))
+       #:builder
+       (begin
+         (use-modules (guix build utils))
+         (chdir (assoc-ref %build-inputs "source"))
+         (let ((esbuild (string-append (assoc-ref %build-inputs "esbuild")
+                                       "/bin/esbuild"))
+               (target (string-append %output "/share/javascript/commander")))
+           (invoke esbuild
+                   "--bundle"
+                   "--minify"
+                   "--tsconfig=tsconfig.json"
+                   "--platform=node"
+                   (string-append "--outfile=" target "/index.min.js")
+                   "index.js")))))
+    (native-inputs
+     `(("esbuild" ,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
+command-line interfaces.  ")
+    (license license:expat)))
+
+(define-public js-xmldom-sre
+  ;; This commit corresponds to the untagged release 0.1.32
+  (let ((commit "3c79325bc2c9e5d27e3ba44b680fa8c5dd6a381d")
+        (revision "1"))
+    (package
+      (name "js-xmldom-sre")
+      (version "0.1.32")
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/zorkow/xmldom/")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "0a88v0id3mjflpvjqhv8a28br0xvaaszxbf7alg6pxfbnkb69yyq"))))
+      (build-system trivial-build-system)
+      (arguments
+       `(#:modules ((guix build utils))
+         #:builder
+         (begin
+           (use-modules (guix build utils))
+           (chdir (assoc-ref %build-inputs "source"))
+           (let ((esbuild (string-append (assoc-ref %build-inputs "esbuild")
+                                         "/bin/esbuild"))
+                 (target (string-append %output "/share/javascript/xmldom-sre")))
+             (invoke esbuild
+                     "--bundle"
+                     "--minify"
+                     "--platform=node"
+                     (string-append "--outfile=" target "/dom-parser.min.js")
+                     "dom-parser.js")))))
+      (native-inputs
+       `(("esbuild" ,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
+of wicked-good-xpath together with xmldom.")
+      ;; One of these licenses may be selected.
+      (license (list license:expat
+                     license:lgpl2.0)))))
+
 (define-public js-respond
   (package
     (name "js-respond")
@@ -393,6 +535,12 @@ means that these shams cause many ES5 methods to silently fail.")
            (lambda _
              (substitute* "src/FileSaver.js"
                (("export ") ""))
+             #t))
+         (add-after 'install 'install-unminified-version
+           (lambda* (#:key outputs #:allow-other-keys)
+             (install-file "src/FileSaver.js"
+                           (string-append (assoc-ref outputs "out")
+                                          "/share/javascript"))
              #t)))))
     (home-page
      "https://eligrey.com/blog/saving-generated-files-on-the-client-side/")
@@ -409,24 +557,28 @@ external server.")
 (define-public mujs
   (package
     (name "mujs")
-    (version "1.0.7")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://mujs.com/downloads/mujs-"
-                                  version ".tar.xz"))
-              (sha256
-               (base32
-                "1ilhay15z4k7mlzs6g2d00snivin7vp72dfw5wwpmc0x70jr31l2"))))
+    (version "1.0.9")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/ccxvii/mujs")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "146lmmigqlvx36d3fzb9kk7sy6y4ddv0ih4pkjz4zyj30zl84gy2"))))
     (build-system gnu-build-system)
     (arguments
-     '(#:phases
+     `(#:phases
        (modify-phases %standard-phases
-         (delete 'configure)  ; no configure
-         (add-after 'install 'install-shared-library
+         (delete 'configure)  ; no configure script
+         (replace 'install
            (lambda* (#:key (make-flags '()) #:allow-other-keys)
              (apply invoke "make" "install-shared" make-flags))))
-       #:make-flags (list (string-append "prefix=" (assoc-ref %outputs "out"))
-                          (string-append "CC=gcc"))
+       #:make-flags
+       (list ,(string-append "VERSION=" version)
+             ,(string-append "CC=" (cc-for-target))
+             (string-append "prefix=" (assoc-ref %outputs "out")))
        #:tests? #f))                    ; no tests
     (inputs
      `(("readline" ,readline)))
@@ -441,3 +593,62 @@ to use, and is very similar to Lua.  There is no need to interact with byzantine
 C++ template mechanisms, or worry about marking and unmarking garbage collection
 roots, or wrestle with obscure build systems.")
     (license license:isc)))
+
+(define-public quickjs
+  (package
+    (name "quickjs")
+    (version "2020-11-08")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://bellard.org/quickjs/quickjs-"
+                                  version ".tar.xz"))
+              (sha256
+               (base32
+                "0yqqcjxi3cqagw184mqrxpvqg486x7c233r3cp9mxachngd6779f"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:make-flags
+       (list "prefix="
+             (string-append "DESTDIR=" %output))
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (replace 'check
+           (lambda _
+             (invoke "make" "microbench"))))))
+    (home-page "https://bellard.org/quickjs/")
+    (synopsis "Small embeddable Javascript engine")
+    (description "QuickJS supports the ES2020 specification including modules,
+asynchronous generators, proxies, BigInt and BigDecimal.  It can compile
+Javascript sources to executables with no external dependency.  It includes a
+command line interpreter with contextual colorization implemented in
+Javascript and a small built-in standard library with C library wrappers.")
+    (license license:expat)))
+
+(define-public duktape
+  (package
+    (name "duktape")
+    (version "2.6.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://duktape.org/duktape-"
+                                  version ".tar.xz"))
+              (sha256
+               (base32
+                "19szwxzvl2g65fw95ggvb8h0ma5bd9vvnnccn59hwnc4dida1x4n"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:tests? #f                      ; No tests.
+       #:make-flags (list "-f" "Makefile.sharedlibrary"
+                          (string-append "INSTALL_PREFIX=" %output))
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure))))
+    (home-page "https://duktape.org/")
+    (synopsis "Small embeddable Javascript engine")
+    (description "Duktape is an embeddable Javascript engine, with a focus on
+portability and compact footprint.  Duktape is easy to integrate into a C/C++
+project: add @file{duktape.c}, @file{duktape.h}, and @file{duk_config.h} to
+your build, and use the Duktape API to call ECMAScript functions from C code
+and vice versa.")
+    (license license:expat)))
diff --git a/gnu/packages/julia.scm b/gnu/packages/julia.scm
index 78488a4e99..13c9f7baf1 100644
--- a/gnu/packages/julia.scm
+++ b/gnu/packages/julia.scm
@@ -2,6 +2,8 @@
 ;;; Copyright © 2015, 2016, 2017 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2016, 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2020 Nicolò Balzarotti <nicolo@nixo.xyz>
+;;; Copyright © 2020 Tim Howes <timhowes@lavabit.com>
+;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -50,10 +52,10 @@
   #:use-module (ice-9 match))
 
 (define libuv-julia
-  (let ((commit "35b1504507a7a4168caae3d78db54d1121b121e1")
-        (revision "1"))
+  (let ((commit "1fcc6d66f9df74189c74d3d390f02202bb7db953")
+        (revision "2"))
     ;; When upgrading Julia, also upgrade this.  Get the commit from
-    ;; https://github.com/JuliaLang/julia/blob/v1.4.1/deps/libuv.version
+    ;; https://github.com/JuliaLang/julia/blob/v1.5.2/deps/libuv.version
     (package
       (inherit libuv)
       (name "libuv-julia")
@@ -66,7 +68,7 @@
                 (file-name (string-append name "-" version "-checkout"))
                 (sha256
                  (base32
-                  "0dn3v6fdp1z382pqg3nhjzk60l61ky9b65mfgaj29fv2da95rwjs"))))
+                  "040l7f1hk7xyza11sry5cj4fhw05na949865axqqhxnifdvnmfji"))))
       (build-system gnu-build-system)
       (arguments
        (substitute-keyword-arguments (package-arguments libuv)
@@ -103,7 +105,7 @@
                  "/deps/patches/" name ".patch"))
 
 (define (julia-patch name sha)
-  (let ((version "1.4.1"))
+  (let ((version "1.5.3"))
     (origin (method url-fetch)
             (uri (julia-patch-url version name))
             (sha256 (base32 sha))
@@ -111,63 +113,52 @@
 
 (define llvm-julia
   (package
-    (inherit llvm-8)
+    (inherit llvm-9)
     (name "llvm-julia")
     (source (origin
-              (inherit (package-source llvm-8))
+              (inherit (package-source llvm-9))
               ;; 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-7.0-D44650"
-                         "1h55kkmkiisfj6sk956if2bcj9s0v6n5czn8dxb870vp5nccj3ir")
-                       '("llvm-6.0-DISABLE_ABI_CHECKS"
-                         "014fawd1ba7yckalypfld22zgic87x9nx3cim42zrwygywd36pyg")
-                       '("llvm-6.0-NVPTX-addrspaces"
-                         "1qdi2zmrjsrj0h84zv2vyly2hjcn4f67mfy0s1q353g4v4jkscqc")
-                       '("llvm-D27629-AArch64-large_model_6.0.1"
-                         "1qrshmlqvnasdyc158vfn3hnbigqph3lsq7acb9w8lwkpnnm2j4z")
-                       '("llvm8-D34078-vectorize-fdiv"
-                         "19spqc3xsazn1xs9gpcgv9ldadfkv49rmc5khl7sf1dlmhgi4602")
-                       '("llvm7-D50010-VNCoercion-ni"
-                         "18scg6aa036xa1508s7q93w9dvc5gp69fz6yl6fkh4yffw4gymw6")
-                       '("llvm-8.0-D50167-scev-umin"
-                         "0g9w2x8yryjdkihnrf18x0yi5bi14c5p8wffda1w732dr5ckzk94")
-                       '("llvm-D57118-powerpc"
-                         "0vxz5s0s9b625v1rv8lg1566yhxh1i91ydzmvy5s7njvzc7p19aw")
-                       '("llvm8-WASM-addrspaces"
-                         "1176agj9hh7csdm2lnklb42zcdsb3q6lx9jiyp2shn4p2678y76q")
-                       '("llvm-exegesis-mingw"
-                         "0ph1cj1j7arvf1xq2xcr7qf9g0cpdl14fincgr67vpi520zvd3vp")
-                       '("llvm-test-plugin-mingw"
-                         "12z738cnahbf6n381im7i0hxp1m6k9hrnfjlmq9sac46nxly9gnj")
-                       '("llvm-8.0-D66401-mingw-reloc"
-                         "15v3p5sznn979cfnd7gdn3nd701fd7xd5aks6lnj1mslvljlq3ls")
-                       '("llvm7-revert-D44485"
-                         "0f59kq3p3mpwsbmskypbi4zn01l6ig0x7v2rjp08k2r8z8m6fa8n")
-                       '("llvm-8.0-D63688-wasm-isLocal"
-                         "0i9wi5n63ip3802z6m7aj3p07hkqjlmp4vg4wq3xkf9f6w9rksab")
-                       '("llvm-8.0-D55758-tablegen-cond"
-                         "1l08mg7qigravi7plsq3yzya80fljnp95n8faddr29wbr2qr0655")
-                       '("llvm-8.0-D59389-refactor-wmma"
-                         "0rgrwk4xlwpk7yai2j7xadcfws93rmk2hhh44fysa88imvrbp478")
-                       '("llvm-8.0-D59393-mma-ptx63-fix"
-                         "094jcsxbcx9fljj623mgmc0rjpk12s2rs0di0ck0hakzhr8mbv5n")
-                       '("llvm-8.0-D66657-codegen-degenerate"
-                         "1n1ddx19h90bbpimdyd9dh8fsm6gb93xxyqm4ljkxa1k3cx2vm72")
-                       '("llvm-8.0-D71495-vectorize-freduce"
-                         "1zff08wvji9lnpskk4b3p5zyjsy5hhy23ynxjqlj9dw7jvvfrf0p")
-                       '("llvm-8.0-D75072-SCEV-add-type"
-                         "0amlyyndsc90ml2k6prdahf24q0j23nfmlbqf8gcqcxpl5sqq3i6")
-                       '("llvm-8.0-D65174-limit-merge-stores"
-                        "1ls5114fhgip9rbqabqc16mi367ra0k75ngc1vyqqhq1ghm9x7y9"))))))
+               (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")
+                     '("llvm9-D50010-VNCoercion-ni"
+                       "1s1d3sjsiq4vxg7ncy5cz56zgy5vcq6ls3iqaiqkvr23wyryqmdx")
+                     '("llvm-exegesis-mingw"
+                       "0ph1cj1j7arvf1xq2xcr7qf9g0cpdl14fincgr67vpi520zvd3vp")
+                     '("llvm-test-plugin-mingw"
+                       "12z738cnahbf6n381im7i0hxp1m6k9hrnfjlmq9sac46nxly9gnj")
+                     '("llvm7-revert-D44485"
+                       "0f59kq3p3mpwsbmskypbi4zn01l6ig0x7v2rjp08k2r8z8m6fa8n")
+                     '("llvm-8.0-D66657-codegen-degenerate"
+                       "1n1ddx19h90bbpimdyd9dh8fsm6gb93xxyqm4ljkxa1k3cx2vm72")
+                     '("llvm-8.0-D71495-vectorize-freduce"
+                       "1zff08wvji9lnpskk4b3p5zyjsy5hhy23ynxjqlj9dw7jvvfrf0p")
+                     '("llvm-D75072-SCEV-add-type"
+                       "029a3fywsm233vf48mscina24idd50dc75wr70lmimrhwnw27p0z")
+                     '("llvm-9.0-D65174-limit-merge-stores"
+                       "04bff1mnblfj9mxfdwr1qdnw3i3szmp60gnhxwas5y68qg33z6j0")
+                     '("llvm9-D71443-PPC-MC-redef-symbol"
+                       "1c93nv7rgc9jg5mqrnvv08xib1789qvlql94fwggh18mp3b9hbgy")
+                     '("llvm-9.0-D78196"
+                       "08a43hyg7yyqjq2vmfsmppf34xcz60wq6y9zw5fdyhw2h1mcnmns")
+                     '("llvm-julia-tsan-custom-as"
+                       "0awh40kf6lm4wn1nsjd1bmhfwq7rqj811szanp2xkpspykw9hg9s")
+                     '("llvm-9.0-D85499"
+                       "0vxlr35srvbvihlgrxq15v6dylp90vgi0qahj22j01jgqmdasjkm"))))
+              (patch-flags '("-p1"))))
     (arguments
-     (substitute-keyword-arguments (package-arguments llvm-8)
+     (substitute-keyword-arguments (package-arguments llvm-9)
        ((#:configure-flags flags)
         `(list ;; Taken from NixOS. Only way I could get libLLVM-6.0.so
            "-DCMAKE_BUILD_TYPE=Release"
@@ -205,14 +196,15 @@
          "1bpa0fcqpa3ai3hm8mz0p13bf76fsq53wsfcx5qw302zh22108xr"))))
     (arguments
      `(#:make-flags
-       (list "CC=gcc")
+       (list (string-append "CC=" ,(cc-for-target)))
        #:phases
        (modify-phases %standard-phases
          (delete 'configure)
          (add-before 'check 'set-ld-library-path
-           (lambda* (#:key inputs #:allow-other-keys)
+           (lambda* (#:key native-inputs inputs #:allow-other-keys)
              (setenv "LD_LIBRARY_PATH"
-                     (string-append (assoc-ref inputs "zlib") "/lib"))))
+                     (string-append (assoc-ref (or native-inputs inputs) "zlib")
+                                    "/lib"))))
          (replace 'install
            (lambda* (#:key outputs #:allow-other-keys)
              (let ((out (assoc-ref outputs "out")))
@@ -231,7 +223,7 @@ libraries.  It is also a bit like @code{ldd} and @code{otool -L}.")
 (define-public julia
   (package
     (name "julia")
-    (version "1.4.1")
+    (version "1.5.3")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -239,7 +231,7 @@ libraries.  It is also a bit like @code{ldd} and @code{otool -L}.")
                     version "/julia-" version ".tar.gz"))
               (sha256
                (base32
-                "030aza3qj5zcinxbrbqgi7p64q6klwq2bhwccraarx7l0hg9lw3i"))
+                "1zmim82x9kkdcgn0cdi01hmzi59zbszy1sqlygb86xq4hc1n66dy"))
               (patches
                (search-patches "julia-SOURCE_DATE_EPOCH-mtime.patch"))))
     (build-system gnu-build-system)
@@ -344,16 +336,6 @@ libraries.  It is also a bit like @code{ldd} and @code{otool -L}.")
                 "tests = filter(e->!in(e,[\"backtrace\",\"exceptions\",\"precompile\",
                                            \"client\",\"stacktraces\"]),
                                        testnames)"))
-             ;; precompile test is broken, fixed in
-             ;; fed29f893544d1dc8f86444c65d632c68168d0f3
-             (substitute* "test/precompile.jl"
-               (("@test !isdefined\\(Base.Nothing.name.mt")
-                "# @test !isdefined(Base.Nothing.name.mt"))
-             ;; When HOME is not set, julia calls uv_os_homedir, which in
-             ;; turns call getpwuid_r. Add the HOME env variable to the
-             ;; external julia call to fix this
-             (substitute* "test/cmdlineargs.jl"
-               (("\"JULIA_PROJECT\"") "\"HOME\"=>\"/tmp\", \"JULIA_PROJECT\""))
              ;; Marking the test as broken as it's a known bug:
              ;; https://github.com/JuliaLang/julia/issues/32377
              (substitute* "stdlib/REPL/test/replcompletions.jl"
@@ -361,11 +343,16 @@ libraries.  It is also a bit like @code{ldd} and @code{otool -L}.")
              ;; Dates has a similar bug:
              ;; https://github.com/JuliaLang/julia/issues/34655
              (substitute* "stdlib/Dates/test/io.jl"
+               (("\"Dates.Date") "\"Date")
                (("\"Dates.Time") "\"Time"))
              ;; Upstream bug I found when packaging
              ;; https://github.com/JuliaLang/julia/issues/35785
              (substitute* "test/file.jl"
                (("@test dirname\\(t\\) == d") "@test_broken dirname(t) == d"))
+             ;; Deprecation test fails with --depwarn=no
+             ;; https://github.com/JuliaLang/julia/issues/37673
+             (substitute* "test/Makefile"
+               (("./runtests.jl") "--depwarn=error ./runtests.jl"))
              #t))
          (add-after 'install 'make-wrapper
            (lambda* (#:key inputs outputs #:allow-other-keys)
@@ -416,7 +403,7 @@ libraries.  It is also a bit like @code{ldd} and @code{otool -L}.")
                         (assoc-ref %build-inputs "utf8proc")
                         "/include")
          "USE_SYSTEM_LLVM=1"
-         "LLVM_VER=8.0.0"
+         "LLVM_VER=9.0.1"
 
          "USE_LLVM_SHLIB=1"
          "USE_SYSTEM_LIBUNWIND=1"
diff --git a/gnu/packages/kde-frameworks.scm b/gnu/packages/kde-frameworks.scm
index a1abd7d46c..8c2028b978 100644
--- a/gnu/packages/kde-frameworks.scm
+++ b/gnu/packages/kde-frameworks.scm
@@ -1,6 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
-;;; Copyright © 2016, 2019 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2019, 2021 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016-2019 Hartmut Goebel <h.goebel@crazy-compilers.com>
 ;;; Copyright © 2016 David Craven <david@craven.ch>
 ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
@@ -27,6 +27,7 @@
 (define-module (gnu packages kde-frameworks)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system qt)
+  #:use-module (guix build-system trivial)
   #:use-module (guix download)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
@@ -57,6 +58,7 @@
   #:use-module (gnu packages gstreamer)
   #:use-module (gnu packages image)
   #:use-module (gnu packages kerberos)
+  #:use-module (gnu packages kde-plasma)
   #:use-module (gnu packages libreoffice)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages mp3)
@@ -752,7 +754,7 @@ interfaces in the areas of colors, fonts, text, images, keyboard input.")
     (inputs
      `(("qtbase" ,qtbase)
        ("qtdeclarative" ,qtdeclarative)))
-    (home-page "https://cgit.kde.org/kholidays.git")
+    (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
 other special events for a geographical region.")
@@ -1045,13 +1047,12 @@ integration with a custom editor as well as a ready-to-use
        ("wayland" ,wayland)
        ("wayland-protocols" ,wayland-protocols)))
     (arguments
-     `(#:tests? #f ; FIXME tests require weston to run
-                   ; weston requires wayland flags in mesa
-       #:phases
+     `(#:phases
        (modify-phases %standard-phases
          (add-before 'check 'check-setup
            (lambda _
              (setenv "XDG_RUNTIME_DIR" "/tmp")
+             (setenv "QT_QPA_PLATFORM" "offscreen")
              #t)))))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Qt-style API to interact with the wayland client and server")
@@ -1470,7 +1471,7 @@ uses a job-based interface to queue tasks and execute them in an efficient way."
               (sha256
                (base32
                 "1whsp0f87lrcn61s9rfhy0aj68hm6zgfa38mq6frlkcjksi0z1vn"))))
-    (build-system cmake-build-system)
+    (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)))
     (inputs
@@ -1904,7 +1905,8 @@ covers feedback and persistent events.")
                 "03rp7p7i8ihz5wg58gjs638jk7xbszknfiy2j3r979snc57g95mv"))
               ;; Default to: external paths/symlinks can be followed by a
               ;; package
-              (patches (search-patches "kpackage-allow-external-paths.patch"))))
+              (patches (search-patches "kpackage-allow-external-paths.patch"
+                                       "kpackage-fix-KF5PackageMacros.cmake.patch"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)))
@@ -2156,7 +2158,7 @@ maintaining an index of the contents of your files.")
     (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
-the data that the activitiy manager collects - which documents have been opened
+the data that the activity manager collects---which documents have been opened
 by which applications, and what documents have been linked to which activity.")
     ;; triple licensed
     (license (list license:lgpl2.0+ license:lgpl2.1+ license:lgpl3+))))
@@ -3390,7 +3392,8 @@ setUrl, setUserAgent and call.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "06cxajsxj62g3c37ssrrcaxb9a12zbyp2kvrjqym329k5vd89272"))))
+                "06cxajsxj62g3c37ssrrcaxb9a12zbyp2kvrjqym329k5vd89272"))
+              (patches (search-patches "plasma-framework-fix-KF5PlasmaMacros.cmake.patch"))))
     (build-system cmake-build-system)
     (propagated-inputs
      `(("kpackage" ,kpackage)
diff --git a/gnu/packages/kde-internet.scm b/gnu/packages/kde-internet.scm
index f9cd29e9b8..617937002e 100644
--- a/gnu/packages/kde-internet.scm
+++ b/gnu/packages/kde-internet.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2017, 2019, 2020 Hartmut Goebel <h.goebel@crazy-compilers.com>
+;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -177,15 +178,14 @@ This package is part of the KDE networking module.")
 (define-public konversation
   (package
     (name "konversation")
-    (version "1.7.5")
+    (version "1.7.7")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/konversation/" version
                            "/src/konversation-" version ".tar.xz"))
        (sha256
-        (base32 "0h098yhlp36ls6pdvs2r93ig8dv4fys62m0h6wxccprb0qrpbgv0"))
-       (patches (search-patches "konversation-Fix-build-with-Qt-5.11.patch"))))
+        (base32 "19qqq9s8k0cl71ib33xn07f26j5ji2g4336jk65im6452cf1dv27"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -297,7 +297,7 @@ Features are:
        ("libxml2" ,libxml2)
        ("libxstl" ,libxslt)
        ;; TODO: Mediastreamer
-       ("openssl", openssl)
+       ("openssl" ,openssl)
        ("ortp" ,ortp)
        ("phonon" ,phonon)
        ("qca" ,qca)
@@ -403,7 +403,7 @@ This package is part of the KDE networking module.")
        ("knotifyconfig" ,knotifyconfig)
        ("kparts" ,kparts)
        ("kplotting" ,kplotting)
-       ("kross", kross)
+       ("kross" ,kross)
        ("kwidgetsaddons" ,kwidgetsaddons)
        ("kwindowsystem" ,kwindowsystem)
        ("kxmlgui" ,kxmlgui)
@@ -450,7 +450,7 @@ a full-featured client for BitTorrent.")
        ("qtbase" ,qtbase)))
     (arguments
      `(#:tests? #f)) ;; 2/7 tests fail (due to network issues?)
-    (home-page "https://cgit.kde.org/libgravatar.git")
+    (home-page "https://invent.kde.org/pim/libgravatar")
     (synopsis "Online avatar lookup library")
     (description "This library retrieves avatar images based on a
 hash from a person's email address, as well as local caching to avoid
@@ -484,7 +484,7 @@ unnecessary network operations.")
        ("qca" ,qca)
        ("qtbase" ,qtbase)
        ("solid" ,solid)))
-    (home-page "https://cgit.kde.org/libktorrent.git")
+    (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
 trackers, mainline DHT and the new generation Micro Transport
diff --git a/gnu/packages/kde-multimedia.scm b/gnu/packages/kde-multimedia.scm
index dd1355010e..cb8cc74d33 100644
--- a/gnu/packages/kde-multimedia.scm
+++ b/gnu/packages/kde-multimedia.scm
@@ -1,6 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2017, 2019 Hartmut Goebel <h.goebel@crazy-compilers.com>
 ;;; Copyright © 2020 Timotej Lazar <timotej.lazar@araneo.si>
+;;; Copyright © 2021 Efraim Flashner <efraim@flashner.co.il>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -133,14 +134,14 @@ This package is part of the KDE multimedia module.")
 (define-public elisa
   (package
     (name "elisa")
-    (version "0.4.2")
+    (version "20.12.0")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "mirror://kde//stable/elisa/0.4.2"
-                           "/elisa-" version ".tar.xz"))
+       (uri (string-append "mirror://kde/stable/release-service/" version
+                           "/src/elisa-" version ".tar.xz"))
        (sha256
-        (base32 "0v9af6l89pgz1g7naf7gwcnq8znlicyh7z985kxalbdmv359c97w"))))
+        (base32 "02450lsnbd37fms1i2bb9qc9wir4vym6qqd9p5hr6a6s6qwfs6qf"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -188,6 +189,12 @@ This package is part of the KDE multimedia module.")
              (system (string-append (assoc-ref inputs "xorg-server")
                                     "/bin/Xvfb :1 -screen 0 640x480x24 &"))
              (setenv "DISPLAY" ":1")
+             #t))
+         (replace 'check
+           (lambda* (#:key tests? test-target #:allow-other-keys)
+             (when tests?
+               (setenv "CTEST_OUTPUT_ON_FAILURE" "1")
+               (invoke "dbus-launch" "make" test-target))
              #t)))))
     (home-page "https://kde.org/applications/multimedia/org.kde.elisa")
     (synopsis "Powerful music player for Plasma 5")
@@ -355,7 +362,7 @@ This package is part of the KDE multimedia module.")
        ("libiconv" ,libiconv)
        ("libkcddb" ,libkcddb)
        ("libmad" ,libmad)
-       ("libmpcdec" ,libmpcdec) ;; FIXME: why does cmake not find this?
+       ("libmpcdec" ,libmpcdec)
        ;;("libmusicbrainz" ,libmusicbrainz) ; wants old version 2
        ("libsamplerate" ,libsamplerate)
        ("libsndfile" ,libsndfile)
@@ -366,7 +373,8 @@ This package is part of the KDE multimedia module.")
        ("shared-mime-info" ,shared-mime-info)
        ("solid" ,solid)
        ("sox" ,sox)
-       ("taglib" ,taglib)))
+       ("taglib" ,taglib)
+       ("zlib" ,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
@@ -694,7 +702,7 @@ Its features include:
        ("qtbase" ,qtbase)))
     (arguments
      `(#:tests? #f)) ; Most tests require network
-    (home-page "https://cgit.kde.org/libkcddb.git")
+    (home-page "https://invent.kde.org/multimedia/libkcddb")
     (synopsis "CDDB library for KDE Platform (runtime)")
     (description "A library for retrieving and sending cddb information.")
     (license ;; GPL for programs, LGPL for libraries, FDL for documentation
@@ -721,7 +729,7 @@ Its features include:
        ("phonon" ,phonon)
        ("qtbase" ,qtbase)
        ("solid" ,solid)))
-    (home-page "https://cgit.kde.org/libkcompactdisc.git/")
+    (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
 applications using the KDE Platform to interface with the CD drives for audio
diff --git a/gnu/packages/kde-pim.scm b/gnu/packages/kde-pim.scm
index b7b779c7d5..e055f9a9fd 100644
--- a/gnu/packages/kde-pim.scm
+++ b/gnu/packages/kde-pim.scm
@@ -154,7 +154,7 @@ programs.")
        ("qtbase" ,qtbase)))
     (arguments
      `(#:tests? #f))  ;; TODO: 1/1 test fails
-    (home-page "https://api.kde.org/stable/kdepimlibs-apidocs/akonadi/html/")
+    (home-page "https://api.kde.org/kdepim/akonadi/html/index.html")
     (synopsis "Library providing calendar helpers for Akonadi items")
     (description "This library manages calendar specific actions for
 collection and item views.")
@@ -199,7 +199,7 @@ collection and item views.")
        ("qtbase" ,qtbase)
        ("solid" ,solid)
        ("sonnet" ,sonnet)))
-    (home-page "https://api.kde.org/stable/kdepimlibs-apidocs/akonadi/html/")
+    (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
 type-agnostic API of the Akonadi client libraries and the domain-specific
@@ -241,7 +241,7 @@ to list and filter contacts.")
        ("kwidgetsaddons" ,kwidgetsaddons)
        ("kxmlgui" ,kxmlgui)
        ("qtbase" ,qtbase)))
-    (home-page "https://api.kde.org/stable/kdepimlibs-apidocs/akonadi/html/")
+    (home-page "https://api.kde.org/kdepim/akonadi/html/index.html")
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -284,7 +284,7 @@ with emails through Akonadi easier.")
        ("ki18n" ,ki18n)
        ("kmime" ,kmime)
        ("qtbase" ,qtbase)))
-    (home-page "https://api.kde.org/stable/kdepimlibs-apidocs/akonadi/html/")
+    (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
 type-agnostic API of the Akonadi client libraries and the domain-specific
@@ -341,7 +341,7 @@ wrapping notes into KMime::Message objects.")
                   (replace 'check
                     (lambda _
                       (invoke "dbus-launch" "ctest"))))))
-    (home-page "https://api.kde.org/stable/kdepimlibs-apidocs/akonadi/html/")
+    (home-page "https://api.kde.org/kdepim/akonadi/html/index.html")
     (synopsis "Akonadi search library")
     (description "This package provides a library used to search in the
 Akonadi PIM data server.  It uses Xapian for indexing and querying.")
@@ -391,7 +391,7 @@ Akonadi PIM data server.  It uses Xapian for indexing and querying.")
        ("kwallat" ,kwallet)
        ("libkdepim" ,libkdepim)
        ("qtbase" ,qtbase)))
-    (home-page "https://cgit.kde.org/incidenceeditor.git")
+    (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.")
     (license ;; GPL for programs, LGPL for libraries
@@ -518,7 +518,7 @@ calendar data.")
        ("qtbase" ,qtbase)
        ("syndication" ,syndication)))
     ;; Note: Some tests take up to 90 sec.
-    (home-page "https://cgit.kde.org/kblog.git")
+    (home-page "https://invent.kde.org/pim/kblog")
     (synopsis "Client-side support library for web application remote blogging
 APIs")
     (description "KBlog is a library for calling functions on Blogger 1.0,
@@ -617,14 +617,14 @@ functions for accessing calendar data using the kcalcore API.")
 (define-public kdav
   (package
     (name "kdav")
-    (version "20.04.1")
+    (version "20.04.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/kdav-" version ".tar.xz"))
        (sha256
-        (base32 "10syhwdlx36yip07yylzir8ig8arm1i868f2j6xpkwhxblrprlxk"))))
+        (base32 "0445gl4xm0h39igkxgb6vmq5iaa04wkgrgbs7nfd0zwngk8xaidn"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)))
@@ -634,7 +634,7 @@ functions for accessing calendar data using the kcalcore API.")
        ("kio" ,kio)
        ("qtbase" ,qtbase)
        ("qtxmlpatterns" ,qtxmlpatterns)))
-    (home-page "https://cgit.kde.org/kdav.git")
+    (home-page "https://invent.kde.org/frameworks/kdav")
     (synopsis "DAV protocol implementation with KJobs")
     (description "This is a DAV protocol implementation with KJobs.  Calendars
 and todos are supported, using either GroupDAV or CalDAV, and contacts are
@@ -679,7 +679,7 @@ supported using GroupDAV or CardDAV.")
        ("prison" ,prison)
        ("qgpgme" ,qgpgme)
        ("qtbase" ,qtbase)))
-    (home-page "https://cgit.kde.org/kdepim-apps-libs.git")
+    (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
 for KDE PIM.")
@@ -761,7 +761,7 @@ for KDE PIM.")
                                              "/include/KF5:"
                                              (or (getenv "CPLUS_INCLUDE_PATH") "")))
                       #t)))))
-    (home-page "https://cgit.kde.org/kdepim-runtime.git")
+    (home-page "https://invent.kde.org/pim/kdepim-runtime")
     (synopsis "Runtime components for Akonadi KDE")
     (description "This package contains Akonadi agents written using KDE
 Development Platform libraries.  Any package that uses Akonadi should probably
@@ -816,7 +816,7 @@ package.")
        ("kxmlgui" ,kxmlgui)
        ("libkdepim" ,libkdepim)
        ("qtbase" ,qtbase)))
-    (home-page "https://cgit.kde.org/eventviews.git")
+    (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.")
     (license ;; GPL for programs, LGPL for libraries
@@ -1180,7 +1180,7 @@ manager from KDE.")
        ("qtbase" ,qtbase)))
     (arguments
      `(#:tests? #f))  ;; TODO: 4/56 tests fail, even with "offscreen" and dbus
-    (home-page "https://cgit.kde.org/mailcommon.git")
+    (home-page "https://invent.kde.org/pim/mailcommon")
     (synopsis "KDE email utility library")
     (description "The mail common library provides utility functions for
 dealing with email.")
@@ -1219,7 +1219,7 @@ dealing with email.")
        ("kxmlgui" ,kxmlgui)
        ("libkdepim" ,libkdepim)
        ("qtbase" ,qtbase)))
-    (home-page "https://cgit.kde.org/mailimporter.git")
+    (home-page "https://invent.kde.org/pim/mailimporter")
     (synopsis "KDE mail importer library")
     (description "This package provides libraries for importing mails other
 e-mail client programs into KMail and KDE PIM.")
@@ -1373,7 +1373,7 @@ using a Qt/KMime C++ API.")
                                              "/include/KF5:"
                                              (or (getenv "CPLUS_INCLUDE_PATH") "")))
                       #t)))))
-    (home-page "https://cgit.kde.org/messagelib.git")
+    (home-page "https://invent.kde.org/pim/messagelib")
     (synopsis "KDE PIM messaging libraries")
     (description "This package provides several libraries for messages,
 e.g. a message list, a mime tree parse, a template parser and the
@@ -1701,7 +1701,7 @@ Virtual Contact File}) files to the KPeople contact management library.")
        ("qtwebengine" ,qtwebengine)))
     (arguments
      `(#:tests? #f)) ;; TODO tests hang
-    (home-page "https://cgit.kde.org/pimcommon.git")
+    (home-page "https://invent.kde.org/pim/pimcommon")
     (synopsis "Common libraries for KDE PIM")
     (description "This package provides common libraries for KDE PIM.")
     (license ;; GPL for programs, LGPL for libraries
@@ -1782,7 +1782,7 @@ text in the text edit to all kinds of markup, like HTML or BBCODE.")
                  _ prefix)
                 (string-append prefix "${KDE_INSTALL_TARGETS_DEFAULT_ARGS})")))
              #t)))))
-    (home-page "https://cgit.kde.org/ksmtp.git")
+    (home-page "https://invent.kde.org/pim/ksmtp")
     (synopsis "Library for sending email through an SMTP server")
     (description "This library provides an API for handling SMTP
 services.  SMTP (Simple Mail Transfer Protocol) is the most prevalent Internet
@@ -1863,7 +1863,7 @@ and allows one to view/extract message formatted text in Rich Text Format.")
        ("kwallet" ,kwallet)
        ("kwidgetsaddons" ,kwidgetsaddons)
        ("qtbase" ,qtbase)))
-    (home-page "https://cgit.kde.org/libkdepim.git")
+    (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.")
     (license ;; GPL for programs, LGPL for libraries
@@ -1898,7 +1898,7 @@ and allows one to view/extract message formatted text in Rich Text Format.")
        ("qtwebengine" ,qtwebengine)))
     (arguments
      `(#:tests? #f)) ;; TODO 6/48 tests fail
-    (home-page "https://cgit.kde.org/libkgapi.git")
+    (home-page "https://invent.kde.org/pim/libkgapi")
     (synopsis "Library for accessing various Google services via their public
 API")
     (description "@code{LibKGAPI} is a C++ library that implements APIs for
@@ -1936,7 +1936,7 @@ various Google services.")
        ("kpimtextedit" ,kpimtextedit)
        ("qgpgme" ,qgpgme)
        ("qtbase" ,qtbase)))
-    (home-page "https://cgit.kde.org/libkleo.git/")
+    (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
 KDE using certificate-based crypto.")
@@ -1999,7 +1999,7 @@ KDE using certificate-based crypto.")
                ((".*sieveeditorgraphicalmodewidgettest\\.cpp.*")
                 ""))
              #t)))))
-    (home-page "https://cgit.kde.org/libksieve.git")
+    (home-page "https://invent.kde.org/pim/libksieve")
     (synopsis "KDE Sieve library")
     (description "Sieve is a language that can be used filter emails.  KSieve
 is a Sieve parser and interpreter library for KDE.")
diff --git a/gnu/packages/kde-plasma.scm b/gnu/packages/kde-plasma.scm
index ce6abb3a65..c64d8ae39f 100644
--- a/gnu/packages/kde-plasma.scm
+++ b/gnu/packages/kde-plasma.scm
@@ -2,8 +2,9 @@
 ;;; Copyright © 2016 Thomas Danckaert <post@thomasdanckaert.be>
 ;;; Copyright © 2018 Meiyo Peng <meiyo.peng@gmail.com>
 ;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com>
-;;; Copyright © 2017 Hartmut Goebel <h.goebel@crazy-compilers.com>
+;;; Copyright © 2017, 2019, 2020 Hartmut Goebel <h.goebel@crazy-compilers.com>
 ;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2020 Zheng Junjie <873216071@qq.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -35,44 +36,121 @@
   #:use-module (gnu packages qt)
   #:use-module (gnu packages xorg))
 
+(define-public breeze
+  (package
+    (name "breeze")
+    (version "5.19.5")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://kde/stable/plasma/" version "/"
+                                  name "-" version ".tar.xz"))
+              (sha256
+               (base32
+                "0dpk1w7zcafrzf46j060i1qb0fwqpsflkfzr6gcar81llmjnc4b1"))))
+    (build-system qt-build-system)
+    ;; TODO: Warning at /gnu/store/…-kpackage-5.34.0/…/KF5PackageMacros.cmake:
+    ;;   warnings during generation of metainfo for org.kde.breezedark.desktop:
+    ;;   Package type "Plasma/LookAndFeel" not found
+    ;; TODO: Check whether is makes sence splitting into several outputs, like
+    ;; Debian does:
+    ;; - breeze-cursor-theme
+    ;; - "out", "devel"
+    ;; - kde-style-breeze - Widget style
+    ;; - kde-style-breeze-qt4 - propably not useful
+    ;; - kwin-style-breeze
+    ;; - qml-module-qtquick-controls-styles-breeze - QtQuick style
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)
+       ("pkg-config" ,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)
+       ("qtdeclarative" ,qtdeclarative) ; optional
+       ("qtx11extras" ,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
+the Plasma Desktop.  Breeze is the default theme for the KDE Plasma desktop.")
+    (license license:gpl2+)))
+
 (define-public kdecoration
   (package
     (name "kdecoration")
-    (version "5.18.5")
+    (version "5.19.5")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kde/stable/plasma/" version
                                   "/kdecoration-" version ".tar.xz"))
               (sha256
                (base32
-                "1j59axgpdbj7nlg06h5gb0pix3s3nll32k6s2f88vc1cbwj5d67h"))))
+                "0pn8n7zyb0adzjnn92vmbcf7pmpss60k9k1rk5llamj016xzfgnf"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)))
     (inputs
      `(("ki18n" ,ki18n)
        ("qtbase" ,qtbase)))
-    (home-page "https://cgit.kde.org/kdecoration.git")
+    (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.
 These window decorations can be used by for example an X11 based window
 manager which re-parents a Client window to a window decoration frame.")
     (license license:lgpl3+)))
 
+(define-public ksshaskpass
+  (package
+    (name "ksshaskpass")
+    (version "5.19.5")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://kde/stable/plasma/" version
+                                  "/ksshaskpass-" version ".tar.xz"))
+              (sha256
+               (base32
+                "1k2va2v9051f71w78dn3gihk642iyy5yzrkcfnp97fag8g6dpisi"))))
+    (build-system qt-build-system)
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)
+       ("kdoctools" ,kdoctools)))
+    (inputs
+     `(("kcoreaddons" ,kcoreaddons)
+       ("ki18n" ,ki18n)
+       ("kwallet" ,kwallet)
+       ("kwidgetsaddons" ,kwidgetsaddons)
+       ("qtbase" ,qtbase)))
+    (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
+password of the ssh key in KWallet.  Ksshaskpass is not meant to be executed
+directly, you need to tell @code{ssh-add} about it.  @code{ssh-add} will then
+call it if it is not associated to a terminal.")
+    (license license:gpl2+)))
+
 (define-public kscreenlocker
   (package
     (name "kscreenlocker")
-    (version "5.18.5")
+    (version "5.19.5")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kde/stable/plasma/" version
                                   "/kscreenlocker-" version ".tar.xz"))
               (sha256
                (base32
-                "1lhq9rxafbbxwpwzq8m25xi9hgcdfdfwl8hafqhygzp14z89q9ml"))))
-    (build-system cmake-build-system)
+                "1fd5sqaqx9kj3kr0bgxpllhcm5arf8bc9pkpd9yk9c8xjy0j0fxi"))))
+    (build-system qt-build-system)
     (arguments
-     `(#:phases
+     `(#:tests? #f ;; TODO: make tests pass
+       #:phases
        (modify-phases %standard-phases
          (add-before 'check 'check-setup
            (lambda* (#:key inputs outputs #:allow-other-keys)
@@ -83,13 +161,15 @@ manager which re-parents a Client window to a window decoration frame.")
          (delete 'check)
          ;; Tests use the installed library and require a DBus session.
          (add-after 'install 'check
-           (lambda _
-             (setenv "CTEST_OUTPUT_ON_FAILURE" "1")
-             (invoke "dbus-launch" "ctest" "."))))))
+           (lambda* (#:key tests? #:allow-other-keys)
+             (if tests?
+                 (begin
+                   (setenv "CTEST_OUTPUT_ON_FAILURE" "1")
+                   (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)))
@@ -116,7 +196,7 @@ manager which re-parents a Client window to a window decoration frame.")
        ("solid" ,solid)
        ("wayland" ,wayland)
        ("xcb-util-keysyms" ,xcb-util-keysyms)))
-    (home-page "https://cgit.kde.org/kscreenlocker.git")
+    (home-page "https://invent.kde.org/plasma/kscreenlocker")
     (synopsis "Screen locking library")
     (description
      "@code{kscreenlocker} is a library for creating secure lock screens.")
@@ -125,14 +205,14 @@ manager which re-parents a Client window to a window decoration frame.")
 (define-public libkscreen
   (package
     (name "libkscreen")
-    (version "5.18.5")
+    (version "5.19.5")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/plasma/" version "/"
                            name "-" version ".tar.xz"))
        (sha256
-        (base32 "0z18djlfrj510dz3r2n8qx6fswdbp2qmhg5y3bn00hij02832qm9"))))
+        (base32 "0rf1pm0yyc069f4n5s9ipdx4glzfr9zvv5cbrmn4q9i4v6z1qd8i"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -155,15 +235,14 @@ basic needs and easy to configure for those who want special setups.")
 (define-public libksysguard
   (package
     (name "libksysguard")
-    (version "5.18.5")
+    (version "5.19.5")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde//stable/plasma/" version
                            "/libksysguard-" version ".tar.xz"))
        (sha256
-        (base32
-         "02s40ahqp4r9amjshdf0dhw9hdggvica2jl426i4d9b950507myl"))))
+        (base32 "1kd0h3p8bf9k5pqp0frhr81pa0yyrpkckg9zznirk9p1v88v7bfq"))))
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
        ("pkg-config" ,pkg-config)))
@@ -176,11 +255,14 @@ basic needs and easy to configure for those who want special setups.")
        ("kcompletion" ,kcompletion)
        ("kconfig" ,kconfig)
        ("kcoreaddons" ,kcoreaddons)
+       ("kdeclarative" ,kdeclarative)
        ("kglobalaccel" ,kglobalaccel)
        ("kio" ,kio)
+       ("knewstuff" ,knewstuff)
        ("kwidgetsaddons" ,kwidgetsaddons)
        ("kservice" ,kservice)
        ("qtbase" ,qtbase)
+       ("qtdeclarative" ,qtdeclarative)
        ("qtscript" ,qtscript)
        ("qtwebkit" ,qtwebkit)
        ("qtx11extras" ,qtx11extras)
diff --git a/gnu/packages/kde-systemtools.scm b/gnu/packages/kde-systemtools.scm
index 0fbf6e3373..b9c3865a93 100644
--- a/gnu/packages/kde-systemtools.scm
+++ b/gnu/packages/kde-systemtools.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2017, 2020 Hartmut Goebel <h.goebel@crazy-compilers.com>
+;;; Copyright © 2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -318,3 +319,52 @@ who want to quickly see problems occurring on their server.
 
 This package is part of the KDE administration module.")
     (license license:gpl2+)))
+
+(define-public yakuake
+  (package
+    (name "yakuake")
+    (version "20.12.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://kde/stable/release-service/" version
+                                  "/src/yakuake-" version ".tar.xz"))
+              (sha256
+               (base32
+                "02pal9xx1wbpw7dimvs2aw1xnyjqlvbjlybkkfhf8x7c6m1r63aa"))))
+    (build-system qt-build-system)
+    (native-inputs
+     `(("extra-cmake-modules" ,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)
+       ("qtsvg" ,qtsvg)
+       ("qtx11extras" ,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
+technology.  Features include:
+@itemize
+@item Smoothly rolls down from the top of your screen
+@item Tabbed interface
+@item Configurable dimensions and animation speed
+@item Skinnable
+@item Sophisticated D-Bus interface
+@end itemize")
+    (license license:gpl2+)))
diff --git a/gnu/packages/kde-utils.scm b/gnu/packages/kde-utils.scm
index 3c0eb09745..e67c603e74 100644
--- a/gnu/packages/kde-utils.scm
+++ b/gnu/packages/kde-utils.scm
@@ -24,6 +24,8 @@
   #:use-module (guix packages)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages gnome)
+  #:use-module (gnu packages imagemagick)
+  #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages kde)
   #:use-module (gnu packages kde-frameworks)
   #:use-module (gnu packages kde-plasma)
@@ -147,7 +149,7 @@ artists to web-designers to people with low vision.")
     (inputs
      `(("kauth" ,kauth)
        ("kcoreaddons" ,kcoreaddons)
-       ("kconfigwidgets", kconfigwidgets)
+       ("kconfigwidgets" ,kconfigwidgets)
        ("kdbusaddons" ,kdbusaddons)
        ("ki18n" ,ki18n)
        ("kiconthemes" ,kiconthemes)
@@ -185,8 +187,8 @@ whom pressing buttons hurts.")
        ("kdoctools" ,kdoctools)))
     (inputs
      `(("kcompletion" ,kcompletion)
-       ("kconfig", kconfig)
-       ("kconfigwidgets", kconfigwidgets)
+       ("kconfig" ,kconfig)
+       ("kconfigwidgets" ,kconfigwidgets)
        ("kcoreaddons" ,kcoreaddons)
        ("kcrash" ,kcrash)
        ("ki18n" ,ki18n)
@@ -226,7 +228,7 @@ sentences to be re-spoken.")
     (inputs
      `(("kauth" ,kauth)
        ("kconfig" ,kconfig)
-       ("kconfigwidgets", kconfigwidgets)
+       ("kconfigwidgets" ,kconfigwidgets)
        ("kcoreaddons" ,kcoreaddons)
        ("kcrash" ,kcrash)
        ("ki18n" ,ki18n)
@@ -287,7 +289,7 @@ twin-panel (commander-style) file manager, similar to Midnight Commander or
 Total Commander
 
 It provides all the file management features you could possibly want.  Plus:
-extensive archive handling, mounted filesystem support, FTP, advanced search
+extensive archive handling, mounted file system support, FTP, advanced search
 module, an internal viewer/editor, directory synchronisation, file content
 comparisons, powerful batch renaming and much much more.  It supports a wide
 variety of archive formats and can handle other KIO slaves such as smb or
@@ -297,6 +299,34 @@ Almost completely customizable, Krusader is very user friendly, fast and looks
 great on your desktop.")
     (license license:gpl2+)))
 
+(define-public kxstitch
+  (package
+    (name "kxstitch")
+    (version "2.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://kde/stable/kxstitch/" version
+                           "/kxstitch-" version ".tar.xz"))
+       (sha256
+        (base32 "1q6blvcqz6hxdfrkdi0fplmz7rmk3im56kpp68r0yrivhx3hn8sc"))))
+    (build-system qt-build-system)
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)
+       ("kdoctools" ,kdoctools)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("ktexteditor" ,ktexteditor)
+       ("imagemagick" ,imagemagick)
+       ("qtbase" ,qtbase)
+       ("qtx11extras" ,qtx11extras)))
+    (home-page "https://kde.org/applications/en/graphics/org.kde.kxstitch")
+    (synopsis "Create and print cross stitch patterns")
+    (description
+     "KXStitch allows creating and printing cross stitch patterns, which can
+either be created or generated from a image.")
+    (license license:gpl2+)))
+
 (define-public okteta
   (package
     (name "okteta")
@@ -363,14 +393,14 @@ redone.")
 (define-public rsibreak
   (package
     (name "rsibreak")
-    (version "0.12.11")
+    (version "0.12.13")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde//stable/rsibreak/0.12/"
                            "rsibreak-" version ".tar.xz"))
        (sha256
-        (base32 "09axg6gbmpnxsk88mdjbxxvfaj5af7xaf1gmnr17b0506zcfgwhv"))))
+        (base32 "06kzyj5jzmzvhw6jy6p7ldrq719bys0yg0nll9rawziwpxzvwh1p"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
diff --git a/gnu/packages/kde.scm b/gnu/packages/kde.scm
index 9bc753001e..2f321fc911 100644
--- a/gnu/packages/kde.scm
+++ b/gnu/packages/kde.scm
@@ -1,15 +1,17 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2016, 2017, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2017, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016 David Craven <david@craven.ch>
 ;;; Copyright © 2016, 2017 Thomas Danckaert <post@thomasdanckaert.be>
 ;;; Copyright © 2017, 2018 Mark Meyer <mark@ofosos.org>
-;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Gábor Boskovits <boskovits@gmail.com>
 ;;; Copyright © 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr>
-;;; Copyright © 2018, 2019 Hartmut Goebel <h.goebel@crazy-compilers.com>
+;;; Copyright © 2018, 2019, 2020 Hartmut Goebel <h.goebel@crazy-compilers.com>
 ;;; Copyright © 2019, 2020 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
 ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
+;;; Copyright © 2020 Prafulla Giri <pratheblackdiamond@gmail.com>
+;;; Copyright © 2020 Zheng Junjie <873216071@qq.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -39,12 +41,18 @@
   #:use-module (gnu packages algebra)
   #:use-module (gnu packages apr)
   #:use-module (gnu packages audio)
+  #:use-module (gnu packages bison)
   #:use-module (gnu packages boost)
   #:use-module (gnu packages code)
   #:use-module (gnu packages cpp)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages curl)
+  #:use-module (gnu packages djvu)
   #:use-module (gnu packages documentation)
+  #:use-module (gnu packages gnupg)
+  #:use-module (gnu packages ebook)
+  #:use-module (gnu packages flex)
+  #:use-module (gnu packages fontutils)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages ghostscript)
   #:use-module (gnu packages gl)
@@ -56,6 +64,7 @@
   #:use-module (gnu packages kde-plasma)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages llvm)
+  #:use-module (gnu packages markup)
   #:use-module (gnu packages maths)
   #:use-module (gnu packages pdf)
   #:use-module (gnu packages perl)
@@ -127,14 +136,85 @@ This package contains GUI widgets for baloo.")
        ("kiconthemes" ,kiconthemes)
        ("knewstuff" ,knewstuff)
        ("qtbase" ,qtbase)))
-    (home-page "https://cgit.kde.org/grantleetheme.git")
+    (home-page "https://invent.kde.org/pim/grantleetheme")
     (synopsis "Library providing Grantlee theme support")
     (description "This library provides Grantlee theme support.")
     (license ;; LGPL for libraries, FDL for documentation
      (list license:lgpl2.1+ license:fdl1.2+))))
 
+(define-public akregator
+  (package
+    (name "akregator")
+    (version "20.04.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://kde/stable/release-service/" version
+                           "/src/akregator-" version ".tar.xz"))
+       (sha256
+        (base32 "1711yhwsdq9iyc3wm3a4xmz81p73hvvc0h58sasc89ifpry50k2p"))))
+    (build-system qt-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'wrap-qt-process-path
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (bin (string-append out "/bin/akregator"))
+                    (qt-process-path (string-append
+                                       (assoc-ref inputs "qtwebengine")
+                                       "/lib/qt5/libexec/QtWebEngineProcess")))
+               (wrap-program bin
+                 `("QTWEBENGINEPROCESS_PATH" = (,qt-process-path)))
+               #t))))))
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)
+       ("kdoctools" ,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)
+       ("qtdeclarative" ,qtdeclarative)
+       ("qtwebchannel" ,qtwebchannel)
+       ("qtwebengine" ,qtwebengine)
+       ("syndication" ,syndication)))
+    (home-page "https://apps.kde.org/en/akregator")
+    (synopsis "KDE Feed Reader")
+    (description
+     "Akregator is a news feed reader.  It enables you to follow news
+sites, blogs and other RSS/Atom-enabled websites without the need to manually
+check for updates using a web browser.  Akregator is designed to be both easy to
+use and to be powerful enough to read hundreds of news sources conveniently.
+It comes with a fast search, advanced archiving functionality and an internal
+browser for easy news reading.")
+    (license license:gpl2+)))
+
 (define-public kdenlive
-  (let ((version "20.04.1"))
+  (let ((version "20.08.3"))
     (package
       (name "kdenlive")
       (version version)
@@ -142,19 +222,20 @@ This package contains GUI widgets for baloo.")
        (origin
          (method git-fetch)
          (uri (git-reference
-               (url "https://anongit.kde.org/kdenlive.git")
+               (url "https://invent.kde.org/multimedia/kdenlive")
                (commit (string-append "v" version))))
          (file-name (string-append name "-" version "-checkout"))
          (sha256
-          (base32
-           "0n0x34xmcn0k87rqnz0mk462b3al4gq56kn4m00rr428hafscdz7"))))
+          (base32 "0x0qfwf6wfnybjyjvmllpf87sm27d1n2akslhp2k8ins838qy55i"))))
       (build-system cmake-build-system)
       (native-inputs
        `(("extra-cmake-modules" ,extra-cmake-modules)
+         ("pkg-config" ,pkg-config)
          ("qttools" ,qttools)))
       (inputs
        `(("shared-mime-info" ,shared-mime-info)
          ("frei0r-plugins" ,frei0r-plugins)
+         ("ffmpeg" ,ffmpeg)
          ("rttr" ,rttr)
          ("mlt" ,mlt)
          ("qtbase" ,qtbase)
@@ -176,6 +257,10 @@ This package contains GUI widgets for baloo.")
          ("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)))
       (arguments
@@ -185,26 +270,25 @@ This package contains GUI widgets for baloo.")
            (add-after 'install 'wrap-executable
              (lambda* (#:key inputs outputs #:allow-other-keys)
                (let* ((out (assoc-ref outputs "out"))
-                      (qtquickcontrols (assoc-ref inputs "qtquickcontrols"))
-                      (qtquickcontrols2 (assoc-ref inputs "qtquickcontrols2"))
                       (qtbase (assoc-ref inputs "qtbase"))
-                      (qtdeclarative (assoc-ref inputs "qtdeclarative"))
                       (frei0r (assoc-ref inputs "frei0r-plugins"))
-                      (qml "/lib/qt5/qml"))
+                      (ffmpeg (assoc-ref inputs "ffmpeg"))
+                      (breeze (assoc-ref inputs "breeze"))
+                      (breeze-icons (assoc-ref inputs "breeze-icons")))
                  (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
-                     ,(map (lambda (label)
-                             (string-append (assoc-ref inputs label)
-                                            "/lib/qt5/plugins/"))
-                           '("qtbase" "qtsvg")))
+                     ,(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
-                     (,(string-append qtquickcontrols qml)
-                      ,(string-append qtquickcontrols2 qml)
-                      ,(string-append qtdeclarative qml)))
+                     ,(list (getenv "QML2_IMPORT_PATH")))
                    `("MLT_PREFIX" ":" =
                      (,(assoc-ref inputs "mlt")))))
                #t)))))
@@ -221,7 +305,7 @@ projects.")
 (define-public kdevelop
   (package
     (name "kdevelop")
-    (version "5.5.2")
+    (version "5.6.1")
     (source
       (origin
         (method url-fetch)
@@ -229,7 +313,7 @@ projects.")
                             "/" version "/src/kdevelop-"
                             version ".tar.xz"))
         (sha256
-         (base32 "1nkl3z1n1l7ly2zvmbx2sdhx5q72wcvpwhzsz3qgw1474qd9i3i2"))))
+         (base32 "02ip5r67hjfpywkm3mz86n6wbqcr7996ifzfd2fyzsvm4998hi4y"))))
     (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -358,7 +442,7 @@ for some KDevelop language plugins (Ruby, PHP, CSS...).")
     (inputs
      `(("qtbase" ,qtbase)
        ("qtsvg" ,qtsvg)))
-    (home-page "https://cgit.kde.org/kdiagram.git/")
+    (home-page "https://invent.kde.org/graphics/kdiagram")
     (synopsis "Libraries for creating business diagrams")
     (description "This package provides libraries for integrating business
 diagrams in Qt-based applications.
@@ -372,7 +456,7 @@ illustrate project schedules.")
 (define-public krita
   (package
     (name "krita")
-    (version "4.3.0")
+    (version "4.4.1")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -380,7 +464,7 @@ illustrate project schedules.")
                     "/krita-" version ".tar.gz"))
               (sha256
                (base32
-                "1njbxv7b56if838gv7ydzm1sprgmaabnp0jlj0bxryxzfdy8hwfh"))))
+                "05rq5hkh2lmk8hall2h9ccaav0nw8fj7vd4aff5fyp2fiq3aybbg"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f
@@ -443,7 +527,7 @@ illustrate project schedules.")
        ("openexr" ,openexr)
        ("perl" ,perl)
        ("poppler-qt5" ,poppler-qt5)
-       ("qtbase" ,qtbase-for-krita)
+       ("qtbase" ,qtbase)
        ("qtdeclarative" ,qtdeclarative)
        ("qtmultimedia" ,qtmultimedia)
        ("qtsvg" ,qtsvg)
@@ -493,7 +577,7 @@ used in KDE development tools Kompare and KDevelop.")
 (define-public qca
   (package
     (name "qca")
-    (version "2.3.0")
+    (version "2.3.1")
     (source
       (origin
         (method url-fetch)
@@ -501,7 +585,7 @@ used in KDE development tools Kompare and KDevelop.")
                             "/qca-" version ".tar.xz"))
         (sha256
          (base32
-          "1mrj748yz1grgzmfbmffgjkpcqiaj1l3m4pbddwcj7dnl50yys0x"))))
+          "0jsfjwz84fc5jnl16aiwrcd6pgs5lzizm2896wildz5yk8852f61"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
@@ -514,7 +598,7 @@ used in KDE development tools Kompare and KDevelop.")
 straightforward and cross-platform API for a range of cryptographic features,
 including SSL/TLS, X.509 certificates, SASL, OpenPGP, S/MIME CMS, and smart
 cards.")
-    (license license:lgpl2.1)))
+    (license license:lgpl2.1+)))
 
 (define-public kpmcore
   (package
@@ -625,7 +709,11 @@ different notification systems.")
        ("qca" ,qca)
        ("qtbase" ,qtbase)
        ("qtdeclarative" ,qtdeclarative)
+       ("qtgraphicaleffects" ,qtgraphicaleffects)
        ("qtmultimedia" ,qtmultimedia)
+       ("qtquickcontrols" ,qtquickcontrols)
+       ("qtquickcontrols2" ,qtquickcontrols2)
+       ("qtwayland" ,qtwayland)
        ("qtx11extras" ,qtx11extras)))
     (home-page "https://community.kde.org/KDEConnect")
     (synopsis "Enable your devices to communicate with each other")
@@ -670,6 +758,40 @@ communicate with each other.  Here's a few things KDE Connect can do:
 charts.")
     (license license:lgpl2.1+)))
 
+(define-public kdf
+  (package
+    (name "kdf")
+    (version "20.12.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://kde/stable/release-service/"
+                                  version "/src/kdf-" version ".tar.xz"))
+              (sha256
+               (base32
+                "0ba67hs4vlb3qyvdzhnpmf8p62df12s8aqw4hzf9vnxff3qix5k1"))))
+    (build-system qt-build-system)
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)
+       ("kdoctools" ,kdoctools)))
+    (inputs
+     `(("kcmutils" ,kcmutils)
+       ("kconfigwidgets" ,kconfigwidgets)
+       ("kcoreaddons" ,kcoreaddons)
+       ("ki18n" ,ki18n)
+       ("kiconthemes" ,kiconthemes)
+       ("kio" ,kio)
+       ("knotifications" ,knotifications)
+       ("kwidgetsaddons" ,kwidgetsaddons)
+       ("kxmlgui" ,kxmlgui)
+       ("qtbase" ,qtbase)))
+    (home-page "https://kde.org/applications/system/kdk")
+    (synopsis "View Disk Usage")
+    (description "KDiskFree displays the available file devices (hard drive
+partitions, floppy and CD drives, etc.) along with information on their
+capacity, free space, type and mount point.  It also allows you to mount and
+unmount drives and view them in a file manager.")
+    (license license:gpl2+)))
+
 (define-public kcachegrind
   (package
     (name "kcachegrind")
@@ -758,6 +880,146 @@ Python, PHP, and Perl.")
     (description "Runtime library for kdegames")
     (license (list license:gpl2+  license:fdl1.2+))))
 
+(define-public okular
+  (package
+    (name "okular")
+    (version "20.12.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://kde/stable/release-service/" version
+                           "/src/" name "-" version ".tar.xz"))
+       (sha256
+        (base32 "0gpm7n47yijsjg4yba561j5pbvd98hgvr93w1kvzk851nb87m89c"))))
+    (build-system qt-build-system)
+    ;; The tests fail because they can't find the proper mimetype plugins:
+    ;; "org.kde.okular.core: No plugin for mimetype '"image/jpeg"'."
+    ;; The built program seems to work okay, so we skip the tests for now.
+    (arguments
+     `(#:tests? #f
+       #:configure-flags
+       (list "-DBUILD_TESTING=OFF")))
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)
+       ("kdoctools" ,kdoctools)
+       ("pkg-config" ,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)
+       ("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)))
+    (home-page "https://kde.org/applications/graphics/okular/")
+    (synopsis "Document viewer")
+    (description
+     "Okular is a document viewer developed for KDE.  It can display files in
+a variety of formats, including PDF, PostScript, DejaVu, and EPub.")
+    (license license:gpl2+)))
+
+(define-public poxml
+  (package
+    (name "poxml")
+    (version "20.12.1")
+    (source (origin
+              (method url-fetch)
+              (uri
+               (string-append "mirror://kde/stable/release-service/" version
+                              "/src/poxml-" version ".tar.xz"))
+              (sha256
+               (base32
+                "1smjvblx0jcv3afs2sr4qcmvhqd44iw24hvr9fppa3nxhrmjwmlk"))))
+    (build-system cmake-build-system)
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)
+       ("kdoctools" ,kdoctools)))
+    (inputs
+     `(("gettext" ,gettext-minimal)
+       ("qtbase" ,qtbase)))
+    (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
+DocBook XML files using Gettext message files (PO files).  Also included are
+several command-line utilities for manipulating DocBook XML files, PO files and
+PO template files.")
+    (license license:gpl2+)))
+
+(define-public kdegraphics-mobipocket
+  (package
+    (name "kdegraphics-mobipocket")
+    (version "20.12.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://kde/stable/release-service/" version
+                           "/src/" name "-" version ".tar.xz"))
+       (sha256
+        (base32 "0fm880lp9g60zgrkjyh4jxws6x0s77l9ia4f8pza3w8sxcbbswk5"))))
+    (build-system cmake-build-system)
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)))
+    (inputs
+     `(("kio" ,kio)
+       ("qtbase" ,qtbase)))
+    (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
+Mobipocket e-books in Dolphin and other KDE apps.")
+    (license license:gpl2+)))
+
+(define-public libkexiv2
+  (package
+    (name "libkexiv2")
+    (version "20.12.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://kde/stable/release-service/" version
+                           "/src/" name "-" version ".tar.xz"))
+       (sha256
+        (base32 "0k0iinf7s8qlk3fwvq7iic1b4zn2gm65rfd58q7d3wb1i1j2hjjk"))))
+    (build-system cmake-build-system)
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)))
+    (inputs
+     `(("exiv2" ,exiv2)
+       ("qtbase" ,qtbase)))
+    (home-page "https://invent.kde.org/graphics/libkexiv2")
+    (synopsis "Manipulate the metadata of images")
+    (description "Libkexiv2 wraps the Exiv2 library, allowing to manipulate
+picture metadata as EXIF/IPTC and XMP.")
+    (license license:gpl2+)))
+
 (define-public zeroconf-ioslave
   (package
     (name "zeroconf-ioslave")
@@ -785,3 +1047,47 @@ services such as printers which advertise themselves with DNSSD (called Avahi
 or Bonjour by other projects).")
     (license ;; GPL for programs, LGPL for libraries, FDL for documentation
      (list license:gpl2+ license:lgpl2.0+ license:fdl1.2+))))
+
+
+(define-public kuserfeedback
+  ;; FIXME: Try to reduce data collection and ensure transmission i disabled by default.
+  ;; FIXME: Check https://www.reddit.com/r/kde/comments/f7ojg9 for insights
+  (package
+    (name "kuserfeedback")
+    (version "1.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://kde/stable/kuserfeedback/"
+                           "/kuserfeedback-" version ".tar.xz"))
+       (sha256
+        (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)
+       ))
+    (inputs
+     `(("qtbase" ,qtbase)
+       ("qtcharts" ,qtcharts)
+       ("qtdeclarative" ,qtdeclarative)
+       ("qtsvg" ,qtsvg)))
+    (arguments
+     `(#:tests? #f))  ;; 4/17 fail
+    (home-page "https://api.kde.org/frameworks/kuserfeedback/html/")
+    (synopsis "Framework for collecting feedback from application users via
+telemetry and targeted surveys")
+    (description "This framework consists of the following components:
+@itemize
+@item Libraries for use in applications.
+@item QML bindings for the above.
+@item A server application.
+@item A management and analytics application.
+@end itemize")
+    (license license:expat)))
diff --git a/gnu/packages/kodi.scm b/gnu/packages/kodi.scm
index 556dd6b4e5..b3dc96f925 100644
--- a/gnu/packages/kodi.scm
+++ b/gnu/packages/kodi.scm
@@ -4,6 +4,7 @@
 ;;; Copyright © 2017 Oleg Pykhalov <go.wigust@gmail.com>
 ;;; 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>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -42,6 +43,7 @@
   #:use-module (gnu packages curl)
   #:use-module (gnu packages databases)
   #:use-module (gnu packages documentation)
+  #:use-module (gnu packages file-systems)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages fribidi)
@@ -269,7 +271,7 @@ alternatives. In compilers, this can reduce the cascade of secondary errors.")
 (define-public kodi
   (package
     (name "kodi")
-    (version "18.7.1")
+    (version "18.8")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -278,7 +280,7 @@ alternatives. In compilers, this can reduce the cascade of secondary errors.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1ypn29yhy49mz9x4xqh2zfdrsbfwm1b4canvh9zvy9c1irjwf419"))
+                "0qpkpz43s207msvv3qkiy6vzqwcgmydxv3py7vc29mv6h30chrva"))
               (patches (search-patches "kodi-skip-test-449.patch"
                                        "kodi-increase-test-timeout.patch"
                                        "kodi-set-libcurl-ssl-parameters.patch"))
@@ -375,7 +377,6 @@ alternatives. In compilers, this can reduce the cascade of secondary errors.")
            (lambda _
              (invoke "make" "kodi-test"))))))
     ;; TODO: Add dependencies for:
-    ;; - nfs
     ;; - cec
     ;; - plist
     ;; - shairplay
@@ -424,6 +425,7 @@ alternatives. In compilers, this can reduce the cascade of secondary errors.")
        ("libmad" ,libmad)
        ("libmicrohttpd" ,libmicrohttpd)
        ("libmpeg2" ,libmpeg2)
+       ("libnfs" ,libnfs)
        ("libogg" ,libogg)
        ("libpng" ,libpng)
        ("libssh" ,libssh)
@@ -435,7 +437,7 @@ alternatives. In compilers, this can reduce the cascade of secondary errors.")
        ("libxrender" ,libxrender)
        ("libxslt" ,libxslt)
        ("lzo" ,lzo)
-       ("mariadb" ,mariadb "lib")
+       ("mariadb-dev" ,mariadb "lib")
        ("mariadb-dev" ,mariadb "dev")
        ("openssl" ,openssl)
        ("pcre" ,pcre)
diff --git a/gnu/packages/language.scm b/gnu/packages/language.scm
index 366ea2c8e6..3f17465039 100644
--- a/gnu/packages/language.scm
+++ b/gnu/packages/language.scm
@@ -1,9 +1,10 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2015, 2016 Eric Bavier <bavier@member.fsf.org>
-;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017, 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Nikita <nikita@n0.is>
 ;;; Copyright © 2019 Alex Vong <alexvong1995@gmail.com>
 ;;; Copyright © 2020 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2020 Julien Lepiller <julien@lepiller.eu>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -22,15 +23,24 @@
 
 (define-module (gnu packages language)
   #:use-module (gnu packages)
+  #:use-module (gnu packages autotools)
+  #:use-module (gnu packages audio)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gtk)
+  #:use-module (gnu packages java)
+  #:use-module (gnu packages linux)
+  #:use-module (gnu packages llvm)
+  #:use-module (gnu packages man)
   #:use-module (gnu packages ocr)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages python)
   #:use-module (gnu packages perl-check)
   #:use-module (gnu packages swig)
+  #:use-module (gnu packages texinfo)
   #:use-module (gnu packages web)
+  #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg)
   #:use-module (guix packages)
   #:use-module (guix build-system gnu)
@@ -38,11 +48,142 @@
   #:use-module (guix build-system python)
   #:use-module ((guix licenses)
                 #:select
-                (bsd-3 gpl2 gpl2+ gpl3 gpl3+ lgpl2.1 perl-license zpl2.1))
+                (bsd-3 gpl2 gpl2+ gpl3 gpl3+ lgpl2.1 lgpl2.1+ lgpl3+ perl-license zpl2.1))
   #:use-module (guix download)
   #:use-module (guix git-download)
   #:use-module (guix utils))
 
+(define-public liblouis
+  (package
+    (name "liblouis")
+    (version "3.15.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/liblouis/liblouis")
+         (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1ljy5xsy7vf2r0ix0d7bqcr6qvr6897f8madsx9zlm1mrj31n5px"))))
+    (build-system gnu-build-system)
+    (outputs '("out" "bin" "doc" "python"))
+    (arguments
+     `(#:configure-flags
+       (list
+        "--disable-static"
+        "--enable-ucs4")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'install-python-extension
+           (lambda* (#:key outputs #:allow-other-keys)
+             (with-directory-excursion "python"
+               (invoke "python" "setup.py" "install"
+                       (string-append "--prefix="
+                                      (assoc-ref outputs "python"))
+                       "--root=/")))))))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("clang-format" ,clang)
+       ("help2man" ,help2man)
+       ("libtool" ,libtool)
+       ("libyaml" ,libyaml)
+       ("makeinfo" ,texinfo)
+       ("perl" ,perl)
+       ("pkg-config" ,pkg-config)
+       ("python" ,python-wrapper)))
+    (synopsis "Braille translator and back-translator")
+    (description "Liblouis is a braille translator and back-translator named in
+honor of Louis Braille.  It features support for computer and literary braille,
+supports contracted and uncontracted translation for many languages and has
+support for hyphenation.  New languages can easily be added through tables that
+support a rule- or dictionary based approach.  Tools for testing and debugging
+tables are also included.  Liblouis also supports math braille, Nemeth and
+Marburg.")
+    (home-page "http://liblouis.org/")
+    (license (list lgpl2.1+             ; library
+                   gpl3+))))            ; tools
+
+(define-public liblouisutdml
+  (package
+    (name "liblouisutdml")
+    (version "2.9.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/liblouis/liblouisutdml")
+         (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0c32cfcfp0lyfd655c9ihhh3p7lhrb9q3xbll7q5dw4km86gaq6w"))))
+    (build-system gnu-build-system)
+    (outputs '("out" "bin" "doc"))
+    (arguments
+     `(#:configure-flags
+       (list "--disable-static")))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("help2man" ,help2man)
+       ("jdk" ,icedtea "jdk")
+       ("libtool" ,libtool)
+       ("makeinfo" ,texinfo)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("libxml2" ,libxml2)))
+    (propagated-inputs
+     `(("liblouis" ,liblouis)
+       ("liblouis:bin" ,liblouis "bin")))
+    (synopsis "Braille transcription services")
+    (description "Liblouisutdml is a library providing complete braille
+transcription services for xml, html and text documents.  It translates into
+appropriate braille codes and formats according to its style sheet and the
+specifications in the document.")
+    (home-page "http://liblouis.org/")
+    (license (list lgpl3+               ; library
+                   gpl3+))))            ; tools
+
+(define-public libstemmer
+  (package
+    (name "libstemmer")
+    (version "2.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri "https://snowballstem.org/dist/libstemmer_c.tgz")
+       (sha256
+        (base32 "1z2xvrjsaaypc04lwz7dg8mjm5cq1gzmn0l544pn6y2ll3r7ckh5"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f                      ; No tests exist
+       #:make-flags
+       (list
+        (string-append "CC=" ,(cc-for-target))
+        "CFLAGS=-fPIC")
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (out-bin (string-append out "/bin"))
+                    (out-include (string-append out "/include"))
+                    (out-lib (string-append out "/lib")))
+               (install-file "stemwords" out-bin)
+               (install-file "include/libstemmer.h" out-include)
+               (rename-file "libstemmer.o" "libstemmer.a")
+               (install-file "libstemmer.a" out-lib)
+               #t))))))
+    (synopsis "Stemming Library")
+    (description "LibStemmer provides stemming library, supporting several
+languages.")
+    (home-page "https://snowballstem.org/")
+    (license bsd-3)))
+
 (define-public perl-lingua-en-findnumber
   (package
     (name "perl-lingua-en-findnumber")
@@ -908,3 +1049,46 @@ labelled links connecting pairs of words.  The parser also produces a
 \"constituent\" (HPSG style phrase tree) representation of a sentence (showing
 noun phrases, verb phrases, etc.).")
     (license bsd-3)))
+
+(define-public praat
+  (package
+    (name "praat")
+    (version "6.1.30")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/praat/praat")
+                     (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1pjfifyv3wjn68l3i2dr83xm75nf2kxvfxrk9qqbmwz58p183jw4"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f                      ; no test target
+       #:phases
+       (modify-phases %standard-phases
+         (replace 'configure
+           (lambda _
+             (copy-file "makefiles/makefile.defs.linux.pulse" "makefile.defs")
+             #t))
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (bin (string-append out "/bin")))
+               (mkdir-p bin)
+               (copy-file "praat" (string-append bin "/praat")))
+             #t)))))
+    (inputs
+     `(("alsa-lib" ,alsa-lib)
+       ("gtk" ,gtk+-2)
+       ("jack" ,jack-1)
+       ("publesaudio" ,pulseaudio)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (home-page "http://www.fon.hum.uva.nl/praat/")
+    (synopsis "Doing phonetics by computer")
+    (description "Praat is a tool to perform phonetics tasks.  It can do speech
+analysis (pitch, formant, intensity, ...), speech synthesis, labelling, segmenting
+and manipulation.")
+    (license gpl2+)))
diff --git a/gnu/packages/lean.scm b/gnu/packages/lean.scm
index 0cc67da874..cc593291fd 100644
--- a/gnu/packages/lean.scm
+++ b/gnu/packages/lean.scm
@@ -1,6 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2019 Amin Bandali <bandali@gnu.org>
 ;;; Copyright © 2020 Brett Gilio <brettg@gnu.org>
+;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -27,7 +28,7 @@
 (define-public lean
   (package
     (name "lean")
-    (version "3.17.1")
+    (version "3.23.0")
     (home-page "https://github.com/leanprover-community/lean")
     (source (origin
               (method git-fetch)
@@ -36,7 +37,7 @@
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "15yfryg98x9lvy00v1w5kg4hp921mpvlxx1ic3m08k1ls6p1gkj4"))))
+                "09mklc1p6ms1jayg2f89hqfmhca3h5744lli936l38ypn1d00sxx"))))
     (build-system cmake-build-system)
     (inputs
      `(("gmp" ,gmp)))
@@ -65,7 +66,7 @@
                #t)))
          (add-before 'configure 'chdir-to-src
            (lambda _ (chdir "src") #t)))))
-    (synopsis "The Lean theorem prover and programming language")
+    (synopsis "Theorem prover and programming language")
     (description
      "Lean is a theorem prover and programming language with a small trusted
 core based on dependent typed theory, aiming to bridge the gap between
diff --git a/gnu/packages/lego.scm b/gnu/packages/lego.scm
index 2067e45dd1..2294d693c5 100644
--- a/gnu/packages/lego.scm
+++ b/gnu/packages/lego.scm
@@ -1,6 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2016, 2017, 2019 Eric Bavier <bavier@posteo.net>
-;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -35,6 +35,8 @@
     (name "nqc")
     (version "3.1.r6")
     (source (origin
+              ;; XXX Using url-fetch/tarbomb results in failure:
+              ;; Error: could not create compiler/rcx1_nqh.h
               (method url-fetch)
               (uri (string-append "http://bricxcc.sourceforge.net/nqc/release/"
                                   "nqc-" version ".tgz"))
@@ -44,24 +46,48 @@
     (build-system gnu-build-system)
     (native-inputs
      `(("bison" ,bison)
-       ("flex" ,flex)))
+       ("flex" ,flex)
+       ("add-usb-tcp-support.patch"
+        ,(origin
+           (method url-fetch)
+           (uri (string-append "https://sourceforge.net/p/bricxcc/patches/"
+                               "_discuss/thread/00b427dc/b84b/attachment/"
+                               "nqc-01-Linux_usb_and_tcp.diff"))
+           (sha256
+            (base32 "0z5gx55ra1kamhhqxz08lvvwslfl36pbmwdd566rhmbgmyhlykbr"))))
+       ("debian-writable-swap-inst-len.patch"
+        ,(origin
+           (method url-fetch)
+           (uri (string-append "https://sources.debian.org/data/main/n/nqc/"
+                               "3.1.r6-7/debian/patches/"
+                               "writable-swap-inst-len.patch"))
+           (sha256
+            (base32 "1kr7j057aa5i0kxmlfpbfcsif5yq2lrmjw4sljn400ijaq4mys3v"))))))
     (arguments
      '(#:tests? #f                      ;no tests
        #:make-flags (list (string-append "PREFIX=" %output))
-       #:phases (modify-phases %standard-phases
-                  (delete 'configure)
-                  (add-before 'build 'rm-generated
-                    ;; Regenerating compiler/lexer.cpp avoids an 'undefined
-                    ;; reference to `isatty(int)'' error.
-                    (lambda _
-                      (for-each delete-file
-                                '("compiler/lexer.cpp"
-                                  "compiler/parse.cpp"))
-                      #t))
-                  (add-after 'unpack 'deal-with-tarbomb
-                    (lambda _
-                      (chdir "..")      ;tarbomb
-                      #t)))))
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (add-before 'build 'rm-generated
+           ;; Regenerating compiler/lexer.cpp avoids an 'undefined
+           ;; reference to `isatty(int)'' error.
+           (lambda _
+             (for-each delete-file
+                       '("compiler/lexer.cpp"
+                         "compiler/parse.cpp"))
+             #t))
+         (add-after 'unpack 'deal-with-tarbomb
+           (lambda _
+             (chdir "..")               ;tarbomb
+             #t))
+         (add-after 'deal-with-tarbomb 'patch
+           (lambda* (#:key inputs #:allow-other-keys)
+             (for-each (lambda (patch)
+                         (invoke "patch" "-Np1" "-i"
+                                 (assoc-ref inputs patch)))
+                       (list "add-usb-tcp-support.patch"
+                             "debian-writable-swap-inst-len.patch")))))))
     (home-page "http://bricxcc.sourceforge.net/nqc/")
     (synopsis "C-like language for Lego's MINDSTORMS")
     (description
diff --git a/gnu/packages/less.scm b/gnu/packages/less.scm
index f6ee355b68..1057dc2909 100644
--- a/gnu/packages/less.scm
+++ b/gnu/packages/less.scm
@@ -1,6 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org>
-;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
 ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
 ;;;
@@ -33,7 +33,7 @@
 (define-public less
   (package
     (name "less")
-    (version "551")
+    (version "563")
     (source
      (origin
        (method url-fetch)
@@ -43,7 +43,7 @@
                                  version ".tar.gz")))
        (patches (search-patches "less-hurd-path-max.patch"))
        (sha256
-        (base32 "0ggyjl3yzn7c450zk1rixi9ls6asdhgqynhk34zsd0ckhmsm45pz"))))
+        (base32 "16lsvk88vwjwp5ax1wnll44wxwnzs8lb2fn90xx2si64kwmnsnyf"))))
     (build-system gnu-build-system)
     (inputs `(("ncurses" ,ncurses)))
     (home-page "https://www.gnu.org/software/less/")
@@ -59,7 +59,7 @@ text editors.")
 (define-public lesspipe
   (package
     (name "lesspipe")
-    (version "1.84")
+    (version "1.85")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -68,7 +68,7 @@ text editors.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "124ffhzrikr88ab14rk6753n8adxijpmg7q3zx7nmqc52wpkfd8q"))))
+                "1v1jdkdq1phc93gdr6mjlk98gipxrkkq4bj8kks0kfdvjgdwkdaa"))))
     (build-system gnu-build-system)
     (arguments
      '(#:tests? #f                      ; no tests
@@ -80,7 +80,17 @@ text editors.")
                         (invoke "./configure"
                                 (string-append "--prefix=" out)
                                 "--yes")
-                        #t))))))
+                        #t)))
+                  (add-before 'install 'patch-tput-and-file
+                    (lambda* (#:key inputs #:allow-other-keys)
+                      (substitute* "lesspipe.sh"
+                        (("tput colors")
+                         (string-append (assoc-ref inputs "ncurses")
+                                        "/bin/tput colors"))
+                        (("file -")
+                         (string-append (assoc-ref inputs "file")
+                                        "/bin/file -")))
+                      #t)))))
     (inputs
      `(("file" ,file)
        ("ncurses" ,ncurses)))  ; for tput
diff --git a/gnu/packages/libcanberra.scm b/gnu/packages/libcanberra.scm
index 32d1cd3605..2d08fb46e3 100644
--- a/gnu/packages/libcanberra.scm
+++ b/gnu/packages/libcanberra.scm
@@ -69,7 +69,8 @@
       ;; his pleasure.
       (patch-flags '("-p0"))
       (patches
-       (search-patches "libcanberra-sound-theme-freedesktop.patch"))))
+       (search-patches "libcanberra-sound-theme-freedesktop.patch"
+                       "libcanberra-wayland-crash.patch"))))
     (build-system gnu-build-system)
     (inputs
      `(("alsa-lib" ,alsa-lib)
diff --git a/gnu/packages/libedit.scm b/gnu/packages/libedit.scm
index 38da02572a..e02c72fdac 100644
--- a/gnu/packages/libedit.scm
+++ b/gnu/packages/libedit.scm
@@ -1,7 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
 ;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
-;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2019 Gábor Boskovits <boskovits@gmail.com>
 ;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org>
 ;;;
@@ -30,14 +30,14 @@
 (define-public libedit
   (package
     (name "libedit")
-    (version "20191025-3.1")
+    (version "20191231-3.1")
     (source
      (origin
       (method url-fetch)
       (uri (string-append "https://thrysoee.dk/editline"
                           "/libedit-" version ".tar.gz"))
       (sha256
-       (base32 "0fdznw6fklis39xqk30ihw8dl8kdw9fzq1z42jmbyy6lc1k07zvd"))))
+       (base32 "0wch48nml28jj6ild889745dsg2agm7mpvrmbl1gi98nw6vjrf6v"))))
     (build-system gnu-build-system)
     (inputs
      `(("ncurses" ,ncurses)))
diff --git a/gnu/packages/libffi.scm b/gnu/packages/libffi.scm
index ec8703ffdb..5b8f277009 100644
--- a/gnu/packages/libffi.scm
+++ b/gnu/packages/libffi.scm
@@ -1,12 +1,13 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012, 2013, 2014 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012, 2013, 2014, 2020 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2014 Federico Beffa <beffa@fbengineering.ch>
 ;;; Copyright © 2015, 2019 Ricardo Wurmus <ricardo.wurmus@mdc-berlin.de>
-;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2017, 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016, 2017 Ben Woodcroft <donttrustben@gmail.com>
 ;;; Copyright © 2017, 2019, 2020 Marius Bakke <marius@gnu.org>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2020 John Doe <dftxbs3e@free.fr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -55,7 +56,40 @@
     (arguments
      `(;; Prevent the build system from passing -march and -mtune to the
        ;; compiler.  See "ax_cc_maxopt.m4" and "ax_gcc_archflag.m4".
-       #:configure-flags '("--enable-portable-binary" "--without-gcc-arch")))
+       #:configure-flags '("--enable-portable-binary" "--without-gcc-arch")
+
+       ;; TODO: Inline patches on next rebuild cycle.
+       ,@(if (string-prefix? "powerpc-" (or (%current-target-system)
+                                            (%current-system)))
+             '(#:phases (modify-phases %standard-phases
+                          (add-after 'unpack 'apply-patch
+                            (lambda* (#:key inputs #:allow-other-keys)
+                              (let ((patch (assoc-ref inputs
+                                                      "powerpc-patch")))
+                                (invoke "patch" "--force" "-p1"
+                                        "-i" patch))))))
+             '())
+       ,@(if (string-prefix? "powerpc64le-" (or (%current-target-system)
+                                                (%current-system)))
+             '(#:phases (modify-phases %standard-phases
+                          (add-after 'unpack 'apply-patch2
+                            (lambda* (#:key inputs #:allow-other-keys)
+                              (let ((patch (assoc-ref inputs
+                                                      "powerpc64le-patch")))
+                                (invoke "patch" "--force" "-p1"
+                                        "-i" patch))))))
+             '())))
+    (inputs
+     (cond
+      ((string-prefix? "powerpc-" (or (%current-target-system)
+                                        (%current-system)))
+       `(("powerpc-patch" ,@(search-patches
+                             "libffi-3.3-powerpc-fixes.patch"))))
+      ((string-prefix? "powerpc64le-" (or (%current-target-system)
+                                          (%current-system)))
+       `(("powerpc64le-patch" ,@(search-patches
+                                 "libffi-float128-powerpc64le.patch"))))
+      (else '())))
     (outputs '("out" "debug"))
     (synopsis "Foreign function call interface library")
     (description
diff --git a/gnu/packages/libphidget.scm b/gnu/packages/libphidget.scm
index 7b6b7dd07d..765b0df9e9 100644
--- a/gnu/packages/libphidget.scm
+++ b/gnu/packages/libphidget.scm
@@ -1,6 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2013 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2018 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -27,7 +28,7 @@
 (define-public libphidget
   (package
    (name "libphidget")
-   (version "2.1.8.20180607")
+   (version "2.1.9.20190409")
    (source (origin
             (method url-fetch)
             (uri (string-append
@@ -35,7 +36,7 @@
                   "linux/libphidget/libphidget_"
                   version ".tar.gz"))
             (sha256
-             (base32 "1mdw8k13yy5dq3r41v9w5yijdk87alzix0qagslc2mxh1pf17npn"))))
+             (base32 "07w54dmr75vq2imngfy66nk1sxlvkzhl2p6g362q0a02f099jy0f"))))
    (build-system gnu-build-system)
    (inputs `(("libusb" ,libusb)))
    (outputs '("out" "debug"))
diff --git a/gnu/packages/libreoffice.scm b/gnu/packages/libreoffice.scm
index ebe4fd7246..99382c991b 100644
--- a/gnu/packages/libreoffice.scm
+++ b/gnu/packages/libreoffice.scm
@@ -1,7 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2014 John Darrington <jmd@gnu.org>
 ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
-;;; Copyright © 2016, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2017 Alex Griffin <a@ajgrf.com>
 ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
 ;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
@@ -10,7 +10,7 @@
 ;;; Copyright © 2017, 2018, 2019 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com>
 ;;; Copyright © 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
-;;; Copyright © 2018 Jonathan Brielmaier <jonathan.brielmaier@web.de>
+;;; Copyright © 2018, 2020 Jonathan Brielmaier <jonathan.brielmaier@web.de>
 ;;; Copyright © 2019 Chris Marusich <cmmarusich@gmail.com>
 ;;; Copyright © 2020 Marcin Karpezo <sirmacik@wioo.waw.pl>
 ;;;
@@ -42,6 +42,7 @@
   #:use-module (ice-9 match)
   #:use-module (gnu packages)
   #:use-module (gnu packages aidc)
+  #:use-module (gnu packages aspell)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages base)
   #:use-module (gnu packages bison)
@@ -712,19 +713,19 @@ text documents, vector drawings, presentations and spreadsheets.")
 (define-public libmwaw
   (package
     (name "libmwaw")
-    (version "0.3.15")
+    (version "0.3.17")
     (source
      (origin
       (method url-fetch)
       (uri (string-append "mirror://sourceforge/libmwaw/libmwaw/libmwaw-"
                           version "/libmwaw-" version ".tar.xz"))
-      (sha256 (base32
-               "1cdhm9yhanyv3w4vr73zhgyynmkhhkp3dyld7m11jd2yy04vnh04"))))
+      (sha256
+       (base32 "074ipcq9w7jbd5x316dzclddgia2ydw098ph9d7p3d713pmkf5cf"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("doxygen" ,doxygen)
        ("pkg-config" ,pkg-config)))
-    (propagated-inputs                  ; in Requires field of .pkg
+    (propagated-inputs                  ; in Requires field of .pc file
      `(("librevenge" ,librevenge)))
     (inputs
      `(("boost" ,boost)
@@ -739,14 +740,14 @@ spreadsheet documents.")
 (define-public libstaroffice
   (package
     (name "libstaroffice")
-    (version "0.0.6")
+    (version "0.0.7")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://github.com/fosnola/libstaroffice/releases/download/"
                            version "/libstaroffice-" version ".tar.xz"))
        (sha256 (base32
-                "1i0ykl0c94lc1qzb5mbyf9jr7qw8p38ja424whmhgrllh7ny203b"))))
+                "1ny8411273k2bq7mnpmcvri3rd46b2j67wfypqkp3y8nhanv0kzr"))))
     (build-system gnu-build-system)
     (inputs
      `(("librevenge" ,librevenge)
@@ -762,14 +763,14 @@ from the old StarOffice (.sdc, .sdw, ...).")
 (define-public libwps
   (package
     (name "libwps")
-    (version "0.4.10")
+    (version "0.4.12")
     (source
      (origin
       (method url-fetch)
       (uri (string-append "mirror://sourceforge/" name "/" name "/"
                           name "-" version "/" name "-" version ".tar.xz"))
       (sha256 (base32
-               "1ji9zd4wxmas03g8jyx0ih0amrqfazm5874a2v9rd7va50sf088l"))))
+               "1nsfacqp5sfkyayw7q0wp68lidksd1wjdix8qmsbf0vdl19gn6p2"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("doxygen" ,doxygen)
@@ -971,6 +972,41 @@ library.")
     (license
      (list license:gpl2 license:mpl1.1 license:cc-by4.0 license:lgpl2.1 license:asl2.0))))
 
+(define-public hunspell-dict-de
+  (package
+    (name "hunspell-dict-de")
+    (version "20161207")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://www.j3e.de/ispell/igerman98/dict/"
+                           "igerman98-" version ".tar.bz2"))
+       (sha256
+        (base32 "1a3055hp2bc4q4nlg3gmg0147p3a1zlfnc65xiv2v9pyql1nya8p"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:make-flags '("hunspell/de_DE.dic")
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (replace 'install              ;no install target
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (share (string-append out "/share/hunspell/")))
+               (install-file "hunspell/de_DE.aff" share)
+               (install-file "hunspell/de_DE.dic" share)
+               #t))))
+       #:tests? #f))        ; no tests
+    (native-inputs
+     `(("hunspell" ,hunspell)
+       ("ispell" ,ispell)
+       ("perl" ,perl)))
+    (synopsis "Hunspell dictionary for German (de_DE)")
+    (description "This package provides a dictionary for the Hunspell
+spell-checking library.")
+    (home-page "https://www.j3e.de/ispell/igerman98/")
+    (license (list license:gpl2 license:gpl3))))
+
 (define-public hyphen
   (package
     (name "hyphen")
@@ -1049,7 +1085,7 @@ converting QuarkXPress file format.  It supports versions 3.1 to 4.1.")
 (define-public libreoffice
   (package
     (name "libreoffice")
-    (version "6.4.5.2")
+    (version "6.4.7.2")
     (source
      (origin
        (method url-fetch)
@@ -1058,8 +1094,7 @@ converting QuarkXPress file format.  It supports versions 3.1 to 4.1.")
          "https://download.documentfoundation.org/libreoffice/src/"
          (version-prefix version 3) "/libreoffice-" version ".tar.xz"))
        (sha256
-        (base32
-         "1v4ili9j8d0xfj3q69niski1v65icg8xi09ip2bsk343rawwck3a"))))
+        (base32 "0i3654rmzs8aazj8j3dmxamilslfrki0y4sksg3n1zygc2ddfk83"))))
     (build-system glib-or-gtk-build-system)
     (native-inputs
      `(("bison" ,bison)
@@ -1067,13 +1102,15 @@ converting QuarkXPress file format.  It supports versions 3.1 to 4.1.")
        ("flex" ,flex)
        ("pkg-config" ,pkg-config)
        ("python" ,python-wrapper)
-       ("which" ,which)))
+       ("which" ,which)
+       ("ziptime" ,ziptime)))
     (inputs
      `(("bluez" ,bluez)
        ("boost" ,boost)
        ("clucene" ,clucene)
        ("cups" ,cups)
        ("dbus-glib" ,dbus-glib)
+       ("firebird" ,firebird)
        ("fontconfig" ,fontconfig)
        ("fontforge" ,fontforge)
        ("gconf" ,gconf)
@@ -1142,121 +1179,130 @@ converting QuarkXPress file format.  It supports versions 3.1 to 4.1.")
        ("xmlsec" ,xmlsec-nss)
        ("zip" ,zip)))
     (arguments
-     `(#:tests? #f ; Building the tests already fails.
+     `(#:tests? #f                     ; Building the tests already fails.
        #:make-flags '("build-nocheck") ; Do not build unit tests, which fails.
        #:phases
-         (modify-phases %standard-phases
-           (add-before 'configure 'prepare-src
-             (lambda* (#:key inputs #:allow-other-keys)
-               (substitute*
-                   (list "sysui/CustomTarget_share.mk"
-                         "solenv/gbuild/gbuild.mk"
-                         "solenv/gbuild/platform/unxgcc.mk")
-                 (("/bin/sh") (which "sh")))
+       (modify-phases %standard-phases
+         (add-before 'configure 'prepare-src
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute*
+                 (list "sysui/CustomTarget_share.mk"
+                       "solenv/gbuild/gbuild.mk"
+                       "solenv/gbuild/platform/unxgcc.mk")
+               (("/bin/sh") (which "sh")))
 
-               ;; Use store references for strictly necessary commands,
-               ;; but not for optional tools like ‘gdb’ and ‘valgrind’.
-               (for-each (lambda (command)
-                           (substitute* "desktop/scripts/soffice.sh"
-                             (((format #f"~a " command))
-                              (format #f "~a " (which command)))))
-                         (list "dirname" "grep" "uname"))
+             ;; Use store references for strictly necessary commands,
+             ;; but not for optional tools like ‘gdb’ and ‘valgrind’.
+             (for-each (lambda (command)
+                         (substitute* "desktop/scripts/soffice.sh"
+                           (((format #f"~a " command))
+                            (format #f "~a " (which command)))))
+                       (list "dirname" "grep" "uname"))
 
-               ;; GPGME++ headers are installed in a gpgme++ subdirectory, but
-               ;; files in "xmlsecurity/source/gpg/" and elsewhere expect to
-               ;; find them on the include path without a prefix.
-               (substitute* '("xmlsecurity/Library_xsec_xmlsec.mk"
-                              "comphelper/Library_comphelper.mk")
-                 (("\\$\\$\\(INCLUDE\\)")
-                  (string-append "$$(INCLUDE) -I"
-                                 (assoc-ref inputs "gpgme")
-                                 "/include/gpgme++")))
+             ;; GPGME++ headers are installed in a gpgme++ subdirectory, but
+             ;; files in "xmlsecurity/source/gpg/" and elsewhere expect to
+             ;; find them on the include path without a prefix.
+             (substitute* '("xmlsecurity/Library_xsec_xmlsec.mk"
+                            "comphelper/Library_comphelper.mk")
+               (("\\$\\$\\(INCLUDE\\)")
+                (string-append "$$(INCLUDE) -I"
+                               (assoc-ref inputs "gpgme")
+                               "/include/gpgme++")))
 
-               ;; /usr/bin/xdg-open doesn't exist on Guix System.
-               (substitute* '("shell/source/unix/exec/shellexec.cxx"
-                              "shell/source/unix/misc/senddoc.sh")
-                 (("/usr/bin/xdg-open")
-                  (string-append (assoc-ref inputs "xdg-utils")
-                                 "/bin/xdg-open")))
+             ;; /usr/bin/xdg-open doesn't exist on Guix System.
+             (substitute* '("shell/source/unix/exec/shellexec.cxx"
+                            "shell/source/unix/misc/senddoc.sh")
+               (("/usr/bin/xdg-open")
+                (string-append (assoc-ref inputs "xdg-utils")
+                               "/bin/xdg-open")))
 
-               #t))
-           (add-after 'install 'bin-and-desktop-install
-             ;; Create 'soffice' and 'libreoffice' symlinks to the executable
-             ;; script.
-             (lambda* (#:key outputs #:allow-other-keys)
-               (let ((out (assoc-ref outputs "out")))
-                 (define (symlink-output src dst)
-                   (mkdir-p (dirname (string-append out dst)))
-                   (symlink (string-append out src) (string-append out dst)))
-                 (define (install src dst)
-                   (let ((dst (string-append out dst)))
-                     (mkdir-p (dirname dst))
-                     (copy-file src dst)))
-                 (define (install-desktop-file app)
-                   (let ((src (string-append "/lib/libreoffice/share/xdg/"
-                                             app ".desktop"))
-                         (dst (string-append "/share/applications/libreoffice-"
-                                             app ".desktop")))
-                     (substitute* (string-append out src)
-                       (("Exec=libreoffice[0-9]+\\.[0-9]+ ")
-                        (string-append "Exec=" out "/bin/libreoffice "))
-                       (("Icon=libreoffice.*")
-                        (string-append "Icon=" app "\n"))
-                       (("LibreOffice [0-9]+\\.[0-9]+")
-                        "LibreOffice"))
-                     (symlink-output src dst)))
-                 (define (install-appdata app)
-                   (install-file (string-append
-                                    "sysui/desktop/appstream-appdata/"
-                                    "libreoffice-" app ".appdata.xml")
-                                   (string-append out "/share/appdata")))
-                 (symlink-output "/lib/libreoffice/program/soffice"
-                                 "/bin/soffice")
-                 (symlink-output "/lib/libreoffice/program/soffice"
-                                 "/bin/libreoffice")
-                 (install "workdir/CustomTarget/sysui/share/libreoffice/openoffice.keys"
-                          "/share/mime-info/libreoffice.keys")
-                 (install "workdir/CustomTarget/sysui/share/libreoffice/openoffice.mime"
-                          "/share/mime-info/libreoffice.mime")
-                 (install
-                  "workdir/CustomTarget/sysui/share/libreoffice/openoffice.org.xml"
-                  "/share/mime/packages/libreoffice.xml")
-                 (for-each install-desktop-file
-                           '("base" "calc" "draw" "impress" "writer"
-                             "math" "startcenter"))
-                 (for-each install-appdata
-                           '("base" "calc" "draw" "impress" "writer"))
-                 (mkdir-p (string-append out "/share/icons/hicolor"))
-                 (copy-recursively "sysui/desktop/icons/hicolor"
-                                   (string-append out "/share/icons/hicolor")))
-               #t)))
+             #t))
+         (add-after 'install 'reset-zip-timestamps
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (for-each (lambda (file)
+                           (invoke "ziptime" file))
+                         ;; So many different extensions for .zip files.
+                         (find-files out "\\.(bau|dat|otp|ott|zip)$")))))
+         (add-after 'install 'bin-and-desktop-install
+           ;; Create 'soffice' and 'libreoffice' symlinks to the executable
+           ;; script.
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (define (symlink-output src dst)
+                 (mkdir-p (dirname (string-append out dst)))
+                 (symlink (string-append out src) (string-append out dst)))
+               (define (install src dst)
+                 (let ((dst (string-append out dst)))
+                   (mkdir-p (dirname dst))
+                   (copy-file src dst)))
+               (define (install-desktop-file app)
+                 (let ((src (string-append "/lib/libreoffice/share/xdg/"
+                                           app ".desktop"))
+                       (dst (string-append "/share/applications/libreoffice-"
+                                           app ".desktop")))
+                   (substitute* (string-append out src)
+                     (("Exec=libreoffice[0-9]+\\.[0-9]+ ")
+                      (string-append "Exec=" out "/bin/libreoffice "))
+                     (("Icon=libreoffice.*")
+                      (string-append "Icon=" app "\n"))
+                     (("LibreOffice [0-9]+\\.[0-9]+")
+                      "LibreOffice"))
+                   (symlink-output src dst)))
+               (define (install-appdata app)
+                 (install-file (string-append
+                                "sysui/desktop/appstream-appdata/"
+                                "libreoffice-" app ".appdata.xml")
+                               (string-append out "/share/appdata")))
+               (symlink-output "/lib/libreoffice/program/soffice"
+                               "/bin/soffice")
+               (symlink-output "/lib/libreoffice/program/soffice"
+                               "/bin/libreoffice")
+               (install "workdir/CustomTarget/sysui/share/libreoffice/openoffice.keys"
+                        "/share/mime-info/libreoffice.keys")
+               (install "workdir/CustomTarget/sysui/share/libreoffice/openoffice.mime"
+                        "/share/mime-info/libreoffice.mime")
+               (install
+                "workdir/CustomTarget/sysui/share/libreoffice/openoffice.org.xml"
+                "/share/mime/packages/libreoffice.xml")
+               (for-each install-desktop-file
+                         '("base" "calc" "draw" "impress" "writer"
+                           "math" "startcenter"))
+               (for-each install-appdata
+                         '("base" "calc" "draw" "impress" "writer"))
+               (mkdir-p (string-append out "/share/icons/hicolor"))
+               (copy-recursively "sysui/desktop/icons/hicolor"
+                                 (string-append out "/share/icons/hicolor")))
+             #t)))
        #:configure-flags
-        (list
-          "--enable-release-build"
-          ;; Avoid using all cpu cores by default
-          (format #f "--with-parallelism=~d" (parallel-job-count))
-          "--disable-fetch-external" ; disable downloads
-          "--with-system-libs" ; enable all --with-system-* flags
-          (string-append "--with-boost-libdir="
-                         (assoc-ref %build-inputs "boost") "/lib")
-          ;; Avoid undefined symbols required by boost::spirit
-          "LDFLAGS=-lboost_system"
-          ;; Avoid a dependency on ucpp.
-          "--with-idlc-cpp=cpp"
-          ;; The fonts require an external tarball (crosextrafonts).
-          ;; They should not be needed when system fonts are available.
-          "--without-fonts"
-          ;; With java, the build fails since sac.jar is missing.
-          "--without-java"
-          ;; FIXME: Enable once the corresponding inputs are packaged.
-          "--disable-coinmp"
-          "--disable-firebird-sdbc" ; embedded firebird
-          ;; XXX: PDFium support requires fetching an external tarball and
-          ;; patching the build scripts to work with GCC5.  Try enabling this
-          ;; when our default compiler is >=GCC 6.
-          "--disable-pdfium"
-          "--without-doxygen"
-          "--enable-build-opensymbol")))
+       (list
+        "--enable-release-build"
+        ;; Avoid using all cpu cores by default
+        (format #f "--with-parallelism=~d" (parallel-job-count))
+        "--disable-fetch-external"      ; disable downloads
+        "--with-system-libs"            ; enable all --with-system-* flags
+        (string-append "--with-boost-libdir="
+                       (assoc-ref %build-inputs "boost") "/lib")
+        ;; Avoid undefined symbols required by boost::spirit
+        "LDFLAGS=-lboost_system"
+        ;; Avoid a dependency on ucpp.
+        "--with-idlc-cpp=cpp"
+        ;; The fonts require an external tarball (crosextrafonts).
+        ;; They should not be needed when system fonts are available.
+        "--without-fonts"
+        ;; With java, the build fails since sac.jar is missing.
+        "--without-java"
+        ;; FIXME: Enable once the corresponding inputs are packaged.
+        "--disable-coinmp"
+        ;; This could (Debian does this) be a separate output containing only
+        ;; program/libfirebird_sdbclo.so, if there's a way to point to it.
+        "--enable-firebird-sdbc"
+        ;; XXX: PDFium support requires fetching an external tarball and
+        ;; patching the build scripts to work with GCC5.  Try enabling this
+        ;; when our default compiler is >=GCC 6.
+        "--disable-pdfium"
+        "--without-doxygen"
+        "--enable-build-opensymbol")))
     (home-page "https://www.libreoffice.org/")
     (synopsis "Office suite")
     (description "LibreOffice is a comprehensive office suite.  It contains
diff --git a/gnu/packages/libunwind.scm b/gnu/packages/libunwind.scm
index 588b5dd314..9eaf26fca8 100644
--- a/gnu/packages/libunwind.scm
+++ b/gnu/packages/libunwind.scm
@@ -28,14 +28,14 @@
 (define-public libunwind
   (package
     (name "libunwind")
-    (version "1.3.1")
+    (version "1.5.0")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://savannah/libunwind/libunwind-"
                                  version ".tar.gz"))
              (sha256
               (base32
-               "1y0l08k6ak1mqbfj6accf9s5686kljwgsl4vcqpxzk5n74wpm6a3"))))
+               "05qhzcg1xag3l5m3c805np6k342gc0f3g087b7g16jidv59pccwh"))))
     (build-system gnu-build-system)
     (arguments
      ;; FIXME: As of glibc 2.25, we get 1 out of 34 test failures (2 are
diff --git a/gnu/packages/libusb.scm b/gnu/packages/libusb.scm
index 7b13d98d95..cb0d45ce86 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 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018, 2020 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>
@@ -53,7 +53,7 @@
 (define-public libusb
   (package
     (name "libusb")
-    (version "1.0.23")
+    (version "1.0.24")
     (source
      (origin
       (method url-fetch)
@@ -61,7 +61,7 @@
                           "releases/download/v" version
                           "/libusb-" version ".tar.bz2"))
       (sha256
-       (base32 "13dd2a9x290d1q8nb1lqiaf36grcvns5ripk5k2xm0lajmpc04fv"))))
+       (base32 "0amilbi5qncdnrds3ji21vbiz1wvdm1fwp5qrxnk49xkyy2jdzby"))))
     (build-system gnu-build-system)
 
     ;; XXX: Enabling udev is now recommended, but eudev indirectly depends on
@@ -351,16 +351,15 @@ I2C and SPI devices attached to the USB Hub.")
 (define-public libplist
   (package
     (name "libplist")
-    (version "2.1.0")
+    (version "2.2.0")
     (source
      (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/libimobiledevice/libplist")
-             (commit version)))
-       (file-name (git-file-name name version))
+       (method url-fetch)
+       (uri (string-append "https://github.com/libimobiledevice"
+                           "/libplist/releases/download/" version
+                           "/libplist-" version ".tar.bz2"))
        (sha256
-        (base32 "02vraf4j46bp746s0gz7vga2gv2dy3zd1v1bsy9x8algg9fpcb7n"))))
+        (base32 "16mxdwaw01x9a3adf0yj3bqjc7afpf2vm1n5hkgj3i3y6zjifmaa"))))
     (build-system gnu-build-system)
     (arguments
      `(;; Tests fail randomly when run in parallel because several of them write
@@ -375,7 +374,7 @@ I2C and SPI devices attached to the USB Hub.")
        ("libtool" ,libtool)
        ("pkg-config" ,pkg-config)
        ("python-cython" ,python-cython))) ; to build Python bindings
-    (home-page "https://www.libimobiledevice.org/")
+    (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
 Apple Property List files in binary or XML.")
@@ -384,80 +383,52 @@ Apple Property List files in binary or XML.")
 (define-public libusbmuxd
   (package
     (name "libusbmuxd")
-    (version "1.0.10")
+    (version "2.0.2")
     (source (origin
               (method url-fetch)
-              (uri (string-append "https://www.libimobiledevice.org/downloads/"
-                                  "libusbmuxd-" version ".tar.bz2"))
+              (uri (string-append "https://github.com/libimobiledevice"
+                                  "/libusbmuxd/releases/download/" version
+                                  "/libusbmuxd-" version ".tar.bz2"))
               (sha256
                (base32
-                "1wn9zq2224786mdr12c5hxad643d29wg4z6b7jn888jx4s8i78hs"))))
+                "084vg570g1qb506jd7axg6c080mfsmbf52v3lngzlknsaf2q0snc"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("libplist" ,libplist)))
-    (home-page "https://www.libimobiledevice.org/")
+    (home-page "https://libimobiledevice.org/")
     (synopsis "Library to multiplex connections from and to iOS devices")
     (description "This package provides a client library to multiplex
 connections from and to iOS devices by connecting to a socket provided by a
 @code{usbmuxd} daemon.")
     (license license:lgpl2.1+)))
 
-;; These patches are needed to build with Python 3.8.
-(define %libimobiledevice-patches
-  (list (origin
-          (method url-fetch)
-          (uri (string-append "https://github.com/libimobiledevice/libimobiledevice"
-                              "/commit/1ff3448d2e27f1bac8d2f0af8b8e952854860278.patch"))
-          (file-name "libimobiledevice-python-config.patch")
-          (sha256
-           (base32
-            "1mkwhp8vvhajij29jk3w4rkgcfh8d8waf908drh3076k70hb6i8y")))
-        (origin
-          (method url-fetch)
-          (uri (string-append "https://github.com/libimobiledevice/libimobiledevice"
-                              "/commit/eea4f1be9107c8ab621fd71460e47d0d38e55d71.patch"))
-          (file-name "libimobiledevice-python-3.8-compat.patch")
-          (sha256
-           (base32
-            "1zz8v7kgwyq5ck1qp03l29pcmljygnjwls9d6q28nv5pkwa6848w")))))
-
 (define-public libimobiledevice
   (package
     (name "libimobiledevice")
-    (version "1.2.0")
+    (version "1.3.0")
     (source (origin
               (method url-fetch)
-              (uri (string-append "https://www.libimobiledevice.org/downloads/"
-                                  "libimobiledevice-" version ".tar.bz2"))
-              ;; Note: Remove the 'force-bootstrap' phase and the autoconf
-              ;; inputs below when removing these patches.
-              (patches %libimobiledevice-patches)
+              (uri (string-append "https://github.com/libimobiledevice"
+                                  "/libimobiledevice/releases/download/"
+                                  version "/libimobiledevice-" version
+                                  ".tar.bz2"))
               (sha256
                (base32
-                "0dqhy4qwj30mw8pwckvjmgnj1qqrh6p8c6jknmhvylshhzh0ssvq"))))
+                "1xmhfnypg6j7shl73wfkrrn4mj9dh8qzaj3258q9zkb5cc669wjk"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:phases (modify-phases %standard-phases
-                  (add-before 'bootstrap 'force-bootstrap
-                    (lambda _
-                      (delete-file "configure")
-                      #t)))))
+     '(#:configure-flags '("PYTHON_VERSION=3")))
     (propagated-inputs
-     `(("openssl" ,openssl-1.0)
+     `(("openssl" ,openssl)
        ("libplist" ,libplist)
        ("libusbmuxd" ,libusbmuxd)))
     (inputs
      `(("python" ,python)))
     (native-inputs
      `(("pkg-config" ,pkg-config)
-       ("python-cython" ,python-cython)
-
-       ;; These are required because we patch and bootstrap the build system.
-       ("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)))
-    (home-page "https://www.libimobiledevice.org/")
+       ("python-cython" ,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
 protocols to support Apple devices.  It allows other software to easily access
@@ -470,21 +441,22 @@ music and video to the device.")
 (define-public ifuse
   (package
     (name "ifuse")
-    (version "1.1.3")
+    (version "1.1.4")
     (source (origin
               (method url-fetch)
-              (uri (string-append "https://www.libimobiledevice.org/downloads/"
-                                  "ifuse-" version ".tar.bz2"))
+              (uri (string-append "https://github.com/libimobiledevice"
+                                  "/ifuse/releases/download/" version
+                                  "/ifuse-" version ".tar.bz2"))
               (sha256
                (base32
-                "1p9a4n36jb194cnp6v57cz2bggwbywaz8pbpb95ch83pzdkdx257"))))
+                "11wdv44qwia77sh38n36809ysaib52rwd4fvqwb5ybsbz4p70l1m"))))
     (inputs
      `(("fuse" ,fuse)
        ("libimobiledevice" ,libimobiledevice)))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
     (build-system gnu-build-system)
-    (home-page "https://www.libimobiledevice.org/")
+    (home-page "https://libimobiledevice.org/")
     (synopsis "Mount iOS devices")
     (description "This package provides @command{ifuse}, a command to mount
 iOS devices and access their contents.")
@@ -493,14 +465,15 @@ iOS devices and access their contents.")
 (define-public usbmuxd
   (package
     (name "usbmuxd")
-    (version "1.1.0")
+    (version "1.1.1")
     (source (origin
               (method url-fetch)
-              (uri (string-append "https://www.libimobiledevice.org/downloads/"
-                                  "usbmuxd-" version ".tar.bz2"))
+              (uri (string-append "https://github.com/libimobiledevice"
+                                  "/usbmuxd/releases/download/" version
+                                  "/usbmuxd-" version ".tar.bz2"))
               (sha256
                (base32
-                "0bdlc7a8plvglqqx39qqampqm6y0hcdws76l9dffwl22zss4i29y"))))
+                "17idzpxrvkbff0jpynf35df95lh7wsm8vndynp63bxib2w09gv60"))))
     (inputs
      `(("libplist" ,libplist)
        ("libusb" ,libusb)
@@ -508,7 +481,7 @@ iOS devices and access their contents.")
     (native-inputs
      `(("pkg-config" ,pkg-config)))
     (build-system gnu-build-system)
-    (home-page "https://www.libimobiledevice.org/")
+    (home-page "https://libimobiledevice.org/")
     (synopsis "Multiplex connections over USB to an iOS device")
     (description "This package provides the @code{usbmuxd} daemon
 which multiplexes connections over USB to an iOS device.  To
@@ -519,14 +492,14 @@ over USB.")
 (define-public libmtp
   (package
     (name "libmtp")
-    (version "1.1.17")
+    (version "1.1.18")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://sourceforge/libmtp/libmtp/" version
                                  "/libmtp-" version ".tar.gz"))
              (sha256
               (base32
-               "1p3r38nvdip40ab1h4scj3mzfjkx6kd14szjqyw9r6wz5pslr8zq"))))
+               "1w41l93yi0dmw218daiw36rylkc8rammxx37csh1ij24q18gx03j"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
@@ -591,7 +564,7 @@ devices.")
 (define-public hidapi
   (package
     (name "hidapi")
-    (version "0.9.0")
+    (version "0.10.1")
     (source
      (origin
        (method git-fetch)
@@ -600,7 +573,7 @@ devices.")
              (commit (string-append "hidapi-" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1p4g8lgwj4rki6lbn5l6rvwj0xlbn1xfh4d255bg5pvgczmwmc4i"))))
+        (base32 "1nr4z4b10vpbh3ss525r7spz4i43zim2ba5qzfl15dgdxshxxivb"))))
     (build-system gnu-build-system)
     (inputs
      `(("libusb" ,libusb)
diff --git a/gnu/packages/license.scm b/gnu/packages/license.scm
index 36bcb75f8d..369426768b 100644
--- a/gnu/packages/license.scm
+++ b/gnu/packages/license.scm
@@ -1,6 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
 ;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2020, 2021 Michael Rohleder <mike@rohleder.de>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -168,16 +169,17 @@ belonging to various licenses.")
 (define-public reuse
   (package
     (name "reuse")
-    (version "0.7.0")
+    (version "0.12.1")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "reuse" version))
        (sha256
-        (base32 "16wn28xxjcm5qlb7bs6jmdkfrkr5v97s59nmi9cn85qcg4gmj7lk"))))
+        (base32 "11i1xjbwbqjipzpbrbnp110zx1m49khn6dl5z3mjkjaz9kr6bl2f"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     `(("python-pytest" ,python-pytest)
+       ("python-setuptools-scm" ,python-setuptools-scm)))
     (inputs
      `(("python-binaryornot" ,python-binaryornot)
        ("python-boolean.py" ,python-boolean.py)
diff --git a/gnu/packages/lighting.scm b/gnu/packages/lighting.scm
index 18110420de..4718795a8a 100644
--- a/gnu/packages/lighting.scm
+++ b/gnu/packages/lighting.scm
@@ -1,6 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2016 John J. Foerch <jjfoerch@earthlink.net>
-;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017, 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -19,10 +19,11 @@
 
 (define-module (gnu packages lighting)
   #: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)
   #:use-module (gnu packages)
+  #:use-module (gnu packages autotools)
   #:use-module (gnu packages bison)
   #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
@@ -35,46 +36,53 @@
   #:use-module (gnu packages protobuf))
 
 (define-public ola
-  (package
-    (name "ola")
-    (version "0.10.7")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "https://github.com/OpenLightingProject/ola/releases/download/"
-                    version "/ola-" version ".tar.gz"))
-              (patches (search-patches "ola-readdir-r.patch"))
-              (sha256
-               (base32
-                "181imc9qkjm2m1iwrb5ixsckx893nc6qwjfzacsjlqp0jlnj8rca"))))
-    (build-system gnu-build-system)
-    (native-inputs
-     `(("bison" ,bison)
-       ("cppunit" ,cppunit)
-       ("flex" ,flex)
-       ("pkg-config" ,pkg-config)))
-    (inputs
-     `(("libftdi" ,libftdi)
-       ("libmicrohttpd" ,libmicrohttpd)
-       ("libusb" ,libusb)
-       ("libuuid" ,util-linux "lib")
-       ("zlib" ,zlib)))
-    (propagated-inputs
-     ;; Ola 0.10.5 only supports protobuf 2.x, and building it with 3.x breaks.
-     ;; XXX Remove protobuf-2 when it is no longer needed.
-     `(("protobuf" ,protobuf-2))) ;; 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
-       ;; following configure flags.
-       #:configure-flags (list "CXXFLAGS=-ftrack-macro-expansion=0")))
-    (synopsis "Framework for controlling entertainment lighting equipment")
-    (description "The Open Lighting Architecture is a framework for lighting
+  ;; Use a commit that allows building with libmicrohttpd 0.9.71.
+  ;; https://github.com/OpenLightingProject/ola/pull/1651
+  (let ((commit "5d882936436240b312b3836afd199587beaca840")
+        (revision "0"))
+    (package
+      (name "ola")
+      (version (git-version "0.10.7" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/OpenLightingProject/ola")
+               (commit commit)))
+         (sha256
+          (base32 "1bhl3gvmvmnyrygfj13cibf2xirm285m8abjkaxq22hrqbsvab2m"))
+         (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)))
+      (inputs
+       `(("libftdi" ,libftdi)
+         ("libmicrohttpd" ,libmicrohttpd)
+         ("libusb" ,libusb)
+         ("libuuid" ,util-linux "lib")
+         ("zlib" ,zlib)))
+      (propagated-inputs
+       `(("protobuf" ,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
+         ;; following configure flags.
+         #:configure-flags (list "CXXFLAGS=-ftrack-macro-expansion=0")))
+      (synopsis "Framework for controlling entertainment lighting equipment")
+      (description "The Open Lighting Architecture is a framework for lighting
 control information.  It supports a range of protocols and over a dozen USB
 devices.  It can run as a standalone service, which is useful for converting
 signals between protocols, or alternatively using the OLA API, it can be used
 as the backend for lighting control software.  OLA runs on many different
 platforms including ARM, which makes it a perfect fit for low cost Ethernet to
 DMX gateways.")
-    (home-page "https://www.openlighting.org/ola")
-    (license license:lgpl2.1+)))
+      (home-page "https://www.openlighting.org/ola")
+      (license license:lgpl2.1+))))
diff --git a/gnu/packages/linphone.scm b/gnu/packages/linphone.scm
index 14da150ced..afa542412f 100644
--- a/gnu/packages/linphone.scm
+++ b/gnu/packages/linphone.scm
@@ -2,6 +2,7 @@
 ;;;
 ;;; Copyright © 2020 Raghav Gururajan <raghavgururajan@disroot.org>
 ;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -49,6 +50,7 @@
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix download)
+  #:use-module (guix git-download)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system qt)
   #:use-module (guix build-system glib-or-gtk)
@@ -192,15 +194,16 @@ tracks in one file. ")
 (define-public bcg729
   (package
     (name "bcg729")
-    (version "1.0.4")
+    (version "1.1.1")
     (source
      (origin
-       (method url-fetch)
-       (uri
-        (string-append "https://www.linphone.org/releases/sources/" name
-                       "/" name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "git://git.linphone.org/bcg729.git")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32 "01y34ky7ykjgfnf8a9f59hg61fqfjiprfrzshdz06w0lz4gvy3qs"))))
+        (base32 "1hal6b3w6f8y5r1wa0xzj8sj2jjndypaxyw62q50p63garp2h739"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f                      ; No test target
@@ -458,6 +461,14 @@ including media capture, encoding and decoding, and rendering.")
                (delete-file-recursively
                 (string-append out "/share/doc/linphone-" ,version))
                #t)))
+         (add-after 'install 'install-man-pages
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (man (string-append out "/share/man/man1")))
+               (for-each (lambda (file)
+                           (install-file file man))
+                         (find-files ".." ".*.1$"))
+               #t)))
          (add-after 'separate-outputs 'glib-or-gtk-compile-schemas
            (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
          (add-after 'glib-or-gtk-compile-schemas 'glib-or-gtk-wrap
@@ -475,7 +486,7 @@ including media capture, encoding and decoding, and rendering.")
      `(("bctoolbox" ,bctoolbox)
        ("belcard" ,belcard)
        ("bellesip" ,belle-sip)
-       ("bzrtp", bzrtp)
+       ("bzrtp" ,bzrtp)
        ("iconv" ,libiconv)
        ("glib" ,glib)
        ("gtk2" ,gtk+-2)
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 734dd6f17c..3b31975670 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -7,12 +7,12 @@
 ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
 ;;; Copyright © 2015, 2016, 2017, 2018, 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016 Christopher Allan Webber <cwebber@dustycloud.org>
-;;; Copyright © 2016, 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2016–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2016, 2017 Alex Kost <alezost@gmail.com>
 ;;; Copyright © 2016 Raymond Nicholson <rain1@openmailbox.org>
 ;;; Copyright © 2016 Mathieu Lirzin <mthl@gnu.org>
 ;;; Copyright © 2016, 2018, 2019, 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
-;;; Copyright © 2016, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2016, 2018, 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2016 David Craven <david@craven.ch>
 ;;; Copyright © 2016 John Darrington <jmd@gnu.org>
 ;;; Copyright © 2016, 2017, 2018, 2019, 2020 Marius Bakke <mbakke@fastmail.com>
@@ -49,6 +49,11 @@
 ;;; Copyright © 2020 John Soo <jsoo1@asu.edu>
 ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
 ;;; Copyright © 2020 Anders Thuné <asse.97@gmail.com>
+;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2020 Greg Hogan <code@greghogan.com>
+;;; Copyright © 2020 Zhu Zihao <all_but_last@163.com>
+;;; Copyright © 2020 David Dashyan <mail@davie.li>
+;;; Copyright © 2020 pukkamustard <pukkamustard@posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -91,6 +96,7 @@
   #:use-module (gnu packages flex)
   #:use-module (gnu packages file)
   #: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)
@@ -154,6 +160,7 @@
   #:use-module (guix store)
   #:use-module (guix monads)
   #:use-module (guix utils)
+  #:use-module (guix deprecation)    ;for libcap/next
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-2)
   #:use-module (srfi srfi-26)
@@ -195,56 +202,17 @@ defconfig.  Return the appropriate make target if applicable, otherwise return
           (uri (string-append "https://linux-libre.fsfla.org"
                               "/pub/linux-libre/releases/" version "-gnu/"
                               "deblob-" (version-major+minor version)))
+          (file-name (string-append "linux-libre-deblob-"
+                                    version))
           (sha256 deblob-hash))
         (origin
           (method url-fetch)
           (uri (string-append "https://linux-libre.fsfla.org"
                               "/pub/linux-libre/releases/" version "-gnu/"
                               "deblob-check"))
+          (file-name (string-append "linux-libre-deblob-check-" version))
           (sha256 deblob-check-hash))))
 
-(define deblob-scripts-5.8
-  (linux-libre-deblob-scripts
-   "5.8"
-   (base32 "07z7sglyrfh0706icqqf3shadf638pvyid9386r661ds5lbsa2mw")
-   (base32 "1nzf1wzva52bm41j2ba0m1vr0cpfwnybdwv5ff6km49l0gziaqx7")))
-
-(define deblob-scripts-5.7
-  (linux-libre-deblob-scripts
-   "5.7.14"
-   (base32 "1gharhw104wxp9dxjkzzvsqc2xn44mc9yvacc3v7jh7b6bb0a64a")
-   (base32 "1n198gx18rxc7xflgiwya43inkwayc91pgb129kngfza8sm6v8ks")))
-
-(define deblob-scripts-5.4
-  (linux-libre-deblob-scripts
-   "5.4.57"
-   (base32 "0ckxn7k5zgcqk30dq943bnamr6a6zjbw2aqjl3x30f4kvh5f6k25")
-   (base32 "10qb890is4z58vr8czh3xx69q62l3b3j38y410kgiw8nii3zx5lr")))
-
-(define deblob-scripts-4.19
-  (linux-libre-deblob-scripts
-   "4.19.138"
-   (base32 "02zs405awaxydbapka4nz8h6lmnc0dahgczqsrs5s2bmzjyyqkcy")
-   (base32 "1w2wgxblpq09i33qmqgw5v3r5rm9vkkygr6m0sgv4zgczk9s29wr")))
-
-(define deblob-scripts-4.14
-  (linux-libre-deblob-scripts
-   "4.14.193"
-   (base32 "091jk9jkn9jf39bxpc7395bhcb7p96nkg3a8047380ki06lnfxh6")
-   (base32 "1qij18inijj6c3ma8hv98yjagnzxdxyn134da9fd23ky8q6hbvky")))
-
-(define deblob-scripts-4.9
-  (linux-libre-deblob-scripts
-   "4.9.231"
-   (base32 "1wvldzlv7q2xdbadas87dh593nxr4a8p5n0f8zpm72lja6w18hmg")
-   (base32 "0fxajshb75siq39lj5h8xvhdj8lcmddkslwlyj65rhlwk6g2r4b2")))
-
-(define deblob-scripts-4.4
-  (linux-libre-deblob-scripts
-   "4.4.231"
-   (base32 "0x2j1i88am54ih2mk7gyl79g25l9zz4r08xhl482l3fvjj2irwbw")
-   (base32 "0hhin1jpfkd6nwrb6xqxjzl3hdxy4pn8a15hy2d3d83yw6pflbsf")))
-
 (define* (computed-origin-method gexp-promise hash-algo hash
                                  #:optional (name "source")
                                  #:key (system (%current-system))
@@ -282,6 +250,9 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
                              (srfi srfi-1)
                              (ice-9 match)
                              (ice-9 ftw))
+
+                (setvbuf (current-output-port) 'line)
+
                 (let ((dir (string-append "linux-" #$version)))
 
                   (mkdir "/tmp/bin")
@@ -299,11 +270,8 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
                          #+(canonical-package bzip2)
                          #+(canonical-package gzip)
                          #+(canonical-package tar)
-                         ;; The comments in the 'deblob-check' script
-                         ;; claim that it supports Python 2 and 3, but
-                         ;; in fact it fails when run in Python 3 as
-                         ;; of version 5.1.3.
-                         #+python-2))
+                         #+(canonical-package gawk)
+                         #+python-wrapper))
 
                   (with-directory-excursion "/tmp/bin"
 
@@ -322,12 +290,10 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
                   (if (file-is-directory? #+upstream-source)
                       (begin
                         (format #t "Copying upstream linux source...~%")
-                        (force-output)
                         (invoke "cp" "--archive" #+upstream-source dir)
                         (invoke "chmod" "--recursive" "u+w" dir))
                       (begin
                         (format #t "Unpacking upstream linux tarball...~%")
-                        (force-output)
                         (invoke "tar" "xf" #$upstream-source)
                         (match (scandir "."
                                         (lambda (name)
@@ -340,13 +306,10 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
                            (error "multiple directories found" dirs)))))
 
                   (with-directory-excursion dir
-                    (setenv "PYTHON" (which "python"))
                     (format #t "Running deblob script...~%")
-                    (force-output)
                     (invoke "/tmp/bin/deblob"))
 
                   (format #t "~%Packing new Linux-libre tarball...~%")
-                  (force-output)
                   (invoke "tar" "cvfa" #$output
                           ;; Avoid non-determinism in the archive.
                           "--mtime=@0"
@@ -354,7 +317,11 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
                           "--group=root:0"
                           "--sort=name"
                           "--hard-dereference"
-                          dir))))))))))
+                          dir)
+
+                  (format #t "~%Scanning the generated tarball for blobs...~%")
+                  (invoke "/tmp/bin/deblob-check" "--use-awk" "--list-blobs"
+                          #$output))))))))))
 
 
 ;;;
@@ -385,59 +352,85 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
                         "linux-" version ".tar.xz"))
     (sha256 hash)))
 
-
-(define-public linux-libre-5.8-version "5.8.1")
-(define-public linux-libre-5.8-pristine-source
-  (let ((version linux-libre-5.8-version)
-        (hash (base32 "09574qbcrncb34dx9pd65iqs06758zim4nkncnjzmxwgjgza9lpq")))
-   (make-linux-libre-source version
-                            (%upstream-linux-source version hash)
-                            deblob-scripts-5.8)))
-
-(define-public linux-libre-5.7-version "5.7.15")
-(define-public linux-libre-5.7-pristine-source
-  (let ((version linux-libre-5.7-version)
-        (hash (base32 "04jj7vmwd1fjpfnwrhnc92qnskj7i150dyxvilfmkg3ki521gsqf")))
+;; The current "stable" kernels. That is, the most recently released major
+;; versions that are still supported upstream.
+(define-public linux-libre-5.10-version "5.10.10")
+(define deblob-scripts-5.10
+  (linux-libre-deblob-scripts
+   linux-libre-5.10-version
+   (base32 "0i99adbfjnir8p8ihhac58dv8p7mnqg4z2jpgvhj35lksdskngf7")
+   (base32 "0hh27ccqimagr3aij7ygwikxw66y63sqwd0xlf49bhpjd090r9a7")))
+(define-public linux-libre-5.10-pristine-source
+  (let ((version linux-libre-5.10-version)
+        (hash (base32 "06fvgkrn9127xw9kly6l4ws3yv80q8xfqdzaam92lljim5pqdvb0")))
    (make-linux-libre-source version
                             (%upstream-linux-source version hash)
-                            deblob-scripts-5.7)))
+                            deblob-scripts-5.10)))
 
-(define-public linux-libre-5.4-version "5.4.58")
+;; 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.4-version "5.4.92")
+(define deblob-scripts-5.4
+  (linux-libre-deblob-scripts
+   linux-libre-5.4-version
+   (base32 "0q3gwf3b404brjld7aj9krzv0wdpzvs8fgy088ag7q106cwgqg8i")
+   (base32 "1xghbbnaisjd0k1klbyn1p7r6r4x5a1bpmkm56a3gh2zvw4s7mj8")))
 (define-public linux-libre-5.4-pristine-source
   (let ((version linux-libre-5.4-version)
-        (hash (base32 "0iqnn98hj3lq1avlrbjv9qdyfwffv01vd0a465xkhxck26py4bvh")))
+        (hash (base32 "1zcl4dadyfrgmx6rh0ncy403rsqb1qs092m6zr6b3i14i3wpz4y0")))
    (make-linux-libre-source version
                             (%upstream-linux-source version hash)
                             deblob-scripts-5.4)))
 
-(define-public linux-libre-4.19-version "4.19.139")
+(define-public linux-libre-4.19-version "4.19.170")
+(define deblob-scripts-4.19
+  (linux-libre-deblob-scripts
+   linux-libre-4.19-version
+   (base32 "02zs405awaxydbapka4nz8h6lmnc0dahgczqsrs5s2bmzjyyqkcy")
+   (base32 "1jiaw0as1ippkrjdpd52657w5mz9qczg3y2hlra7m9k0xawwiqlf")))
 (define-public linux-libre-4.19-pristine-source
   (let ((version linux-libre-4.19-version)
-        (hash (base32 "01anspwh3vskmcqf4xclx0jx6h0h33zfgmmvrzxq17wlzqhvyklw")))
+        (hash (base32 "0jjvwbxpfvmzj4z6gkd2mh3kz9vh8hsgsm0013866hzgz1j043fx")))
     (make-linux-libre-source version
                              (%upstream-linux-source version hash)
                              deblob-scripts-4.19)))
 
-(define-public linux-libre-4.14-version "4.14.193")
+(define-public linux-libre-4.14-version "4.14.217")
+(define deblob-scripts-4.14
+  (linux-libre-deblob-scripts
+   linux-libre-4.14-version
+   (base32 "091jk9jkn9jf39bxpc7395bhcb7p96nkg3a8047380ki06lnfxh6")
+   (base32 "1qij18inijj6c3ma8hv98yjagnzxdxyn134da9fd23ky8q6hbvky")))
 (define-public linux-libre-4.14-pristine-source
   (let ((version linux-libre-4.14-version)
-        (hash (base32 "00wziff12xphafyspb02rnjim5a15zywnhdk70ks9q9h8hfv83qb")))
+        (hash (base32 "04adj8x7p1has4mh8ygxhqgwb1i08fz9izqw1y6xj5hh8cjnm8v2")))
     (make-linux-libre-source version
                              (%upstream-linux-source version hash)
                              deblob-scripts-4.14)))
 
-(define-public linux-libre-4.9-version "4.9.232")
+(define-public linux-libre-4.9-version "4.9.253")
+(define deblob-scripts-4.9
+  (linux-libre-deblob-scripts
+   linux-libre-4.9-version
+   (base32 "1wvldzlv7q2xdbadas87dh593nxr4a8p5n0f8zpm72lja6w18hmg")
+   (base32 "0fxajshb75siq39lj5h8xvhdj8lcmddkslwlyj65rhlwk6g2r4b2")))
 (define-public linux-libre-4.9-pristine-source
   (let ((version linux-libre-4.9-version)
-        (hash (base32 "0q2gpkazfw93r79aq21kv1y3hwxawl0swyvd3nd73p254gl75x2q")))
+        (hash (base32 "065w35vb0qp4fvnwmcx7f92inmx64f9r04zzwcwbs0826nl52nws")))
     (make-linux-libre-source version
                              (%upstream-linux-source version hash)
                              deblob-scripts-4.9)))
 
-(define-public linux-libre-4.4-version "4.4.232")
+(define-public linux-libre-4.4-version "4.4.253")
+(define deblob-scripts-4.4
+  (linux-libre-deblob-scripts
+   linux-libre-4.4-version
+   (base32 "0x2j1i88am54ih2mk7gyl79g25l9zz4r08xhl482l3fvjj2irwbw")
+   (base32 "0hhin1jpfkd6nwrb6xqxjzl3hdxy4pn8a15hy2d3d83yw6pflbsf")))
 (define-public linux-libre-4.4-pristine-source
   (let ((version linux-libre-4.4-version)
-        (hash (base32 "0d7x30sy9c27n9bqf5f5mf64c6j5iljnw1gm7g8z00xgvrjqibjf")))
+        (hash (base32 "0nlqnfhrkaj2s582kc0wxqi0881hgp6l9z85qx4ckflc8jwrh7k6")))
     (make-linux-libre-source version
                              (%upstream-linux-source version hash)
                              deblob-scripts-4.4)))
@@ -502,15 +495,8 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
     (patches (append (origin-patches source)
                      patches))))
 
-(define-public linux-libre-5.8-source
-  (source-with-patches linux-libre-5.8-pristine-source
-                       (append
-			%pinebook-pro-patches
-			(list %boot-logo-patch
-			      %linux-libre-arm-export-__sync_icache_dcache-patch))))
-
-(define-public linux-libre-5.7-source
-  (source-with-patches linux-libre-5.7-pristine-source
+(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)))
 
@@ -613,13 +599,9 @@ 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.8
-  (make-linux-libre-headers* linux-libre-5.8-version
-                             linux-libre-5.8-source))
-
-(define-public linux-libre-headers-5.7
-  (make-linux-libre-headers* linux-libre-5.7-version
-                             linux-libre-5.7-source))
+(define-public linux-libre-headers-5.10
+  (make-linux-libre-headers* linux-libre-5.10-version
+                             linux-libre-5.10-source))
 
 (define-public linux-libre-headers-5.4
   (make-linux-libre-headers* linux-libre-5.4-version
@@ -672,6 +654,28 @@ for ARCH and optionally VARIANT, or #f if there is no such configuration."
     ("CONFIG_USER_NS" . #t)
     ("CONFIG_PID_NS" . #t)
     ("CONFIG_NET_NS" . #t)
+    ;; Various options needed for elogind service:
+    ;; https://issues.guix.gnu.org/43078
+    ("CONFIG_CGROUP_FREEZER" . #t)
+    ("CONFIG_BLK_CGROUP" . #t)
+    ("CONFIG_CGROUP_WRITEBACK" . #t)
+    ("CONFIG_CGROUP_SCHED" . #t)
+    ("CONFIG_CGROUP_PIDS" . #t)
+    ("CONFIG_CGROUP_FREEZER" . #t)
+    ("CONFIG_CGROUP_DEVICE" . #t)
+    ("CONFIG_CGROUP_CPUACCT" . #t)
+    ("CONFIG_CGROUP_PERF" . #t)
+    ("CONFIG_SOCK_CGROUP_DATA" . #t)
+    ("CONFIG_BLK_CGROUP_IOCOST" . #t)
+    ("CONFIG_CGROUP_NET_PRIO" . #t)
+    ("CONFIG_CGROUP_NET_CLASSID" . #t)
+    ("CONFIG_MEMCG" . #t)
+    ("CONFIG_MEMCG_SWAP" . #t)
+    ("CONFIG_MEMCG_KMEM" . #t)
+    ("CONFIG_CPUSETS" . #t)
+    ("CONFIG_PROC_PID_CPUSET" . #t)
+    ;; Allow disk encryption by default
+    ("CONFIG_DM_CRYPT" . m)
     ;; Modules required for initrd:
     ("CONFIG_NET_9P" . m)
     ("CONFIG_NET_9P_VIRTIO" . m)
@@ -881,23 +885,24 @@ for ARCH and optionally VARIANT, or #f if there is no such configuration."
     (description
      "GNU Linux-Libre is a free (as in freedom) variant of the Linux kernel.
 It has been modified to remove all non-free binary blobs.")
-    (license license:gpl2)))
+    (license license:gpl2)
+    (properties '((max-silent-time . 3600))))) ;don't timeout on blob scan.
 
 
 ;;;
 ;;; Generic kernel packages.
 ;;;
 
-(define-public linux-libre-5.7
-  (make-linux-libre* linux-libre-5.7-version
-                     linux-libre-5.7-source
+(define-public linux-libre-5.10
+  (make-linux-libre* linux-libre-5.10-version
+                     linux-libre-5.10-source
                      '("x86_64-linux" "i686-linux" "armhf-linux" "aarch64-linux" "riscv64-linux")
                      #:configuration-file kernel-config))
 
-(define-public linux-libre-version         linux-libre-5.7-version)
-(define-public linux-libre-pristine-source linux-libre-5.7-pristine-source)
-(define-public linux-libre-source          linux-libre-5.7-source)
-(define-public linux-libre                 linux-libre-5.7)
+(define-public linux-libre-version         linux-libre-5.10-version)
+(define-public linux-libre-pristine-source linux-libre-5.10-pristine-source)
+(define-public linux-libre-source          linux-libre-5.10-source)
+(define-public linux-libre                 linux-libre-5.10)
 
 (define-public linux-libre-5.4
   (make-linux-libre* linux-libre-5.4-version
@@ -935,6 +940,15 @@ It has been modified to remove all non-free binary blobs.")
                         ("CONFIG_DEVPTS_MULTIPLE_INSTANCES" . #t))
                       %default-extra-linux-options)))
 
+;; Linux-Libre-LTS points to the *newest* released long-term support version of
+;; Linux-Libre.
+;; Reference: https://jxself.org/linux-libre/
+
+(define-public linux-libre-lts-version         linux-libre-5.10-version)
+(define-public linux-libre-lts-pristine-source linux-libre-5.10-pristine-source)
+(define-public linux-libre-lts-source          linux-libre-5.10-source)
+(define-public linux-libre-lts                 linux-libre-5.10)
+
 
 ;;;
 ;;; Specialized kernel variants.
@@ -1008,22 +1022,19 @@ It has been modified to remove all non-free binary blobs.")
                      '("aarch64-linux")
                      #:defconfig "defconfig"
                      #:extra-version "arm64-generic"
-		     #:extra-options
-                     (append
-                      `(;; needed to fix the RTC on rockchip platforms
-                        ("CONFIG_RTC_DRV_RK808" . #t))
-                      %default-extra-linux-options)))
-
-(define-public linux-libre-arm64-generic-5.8
-  (make-linux-libre* linux-libre-5.8-version
-                     linux-libre-5.8-source
-                     '("aarch64-linux")
-                     #:defconfig "defconfig"
-                     #:extra-version "arm64-generic"
                      #:extra-options
                      (append
                       `(;; needed to fix the RTC on rockchip platforms
-                        ("CONFIG_RTC_DRV_RK808" . #t))
+                        ("CONFIG_RTC_DRV_RK808" . #t)
+                        ;; Pinebook display, battery, charger and usb
+                        ("CONFIG_DRM_ANALOGIX_ANX6345" . m)
+                        ("CONFIG_CHARGER_AXP20X" . m)
+                        ("CONFIG_INPUT_AXP20X_PEK" . m)
+                        ("CONFIG_CHARGER_AXP20X" . m)
+                        ("CONFIG_BATTERY_AXP20X" . m)
+                        ("CONFIG_PINCTRL_AXP209" . m)
+                        ("CONFIG_AXP20X_POWER" . m)
+                        ("CONFIG_AXP20X_ADC" . m))
                       %default-extra-linux-options)))
 
 (define-public linux-libre-arm64-generic-5.4
@@ -1044,18 +1055,22 @@ It has been modified to remove all non-free binary blobs.")
                      '("riscv64-linux")
                      #:extra-version "riscv64-generic"))
 
-(define-public linux-libre-pinebook-pro-5.7
-  (make-linux-libre* linux-libre-5.7-version
-                     linux-libre-5.7-source
-                     '("aarch64-linux")
-                     #:defconfig "pinebook_pro_defconfig"
-                     #:extra-version "pinebook-pro"))
+(define-public linux-libre-mips64el-fuloong2e
+  (make-linux-libre* linux-libre-version
+                     linux-libre-source
+                     '("mips64el-linux")
+                     #:defconfig "fuloong2e_defconfig"
+                     #:extra-version "mips64el-fuloong2e"
+                     #:extra-options
+                     (append
+                      `(("CONFIG_OVERLAY_FS" . m))
+                      %default-extra-linux-options)))
 
 (define-public linux-libre-with-bpf
   (let ((base-linux-libre
          (make-linux-libre*
-          linux-libre-5.4-version
-          linux-libre-5.4-source
+          linux-libre-5.10-version
+          linux-libre-5.10-source
           '("x86_64-linux" "i686-linux" "armhf-linux"
             "aarch64-linux" "riscv64-linux")
           #:extra-version "bpf"
@@ -1079,39 +1094,45 @@ It has been modified to remove all non-free binary blobs.")
 ;;;
 
 (define-public acpi-call-linux-module
-  (let ((commit "70b9c80bd700e6a4d10797eaac9fd34b7e8cbd4a")
-        (revision "0"))
-    (package
-      (name "acpi-call-linux-module")
-      (version (git-version "3.17" revision commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/teleshoes/acpi_call")
-               (commit commit)))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32 "09c1vw6vcrkqxbwhpgfgpj4d1grzn4qq6ka8pwwzm7cvm405xj7x"))))
-      (build-system linux-module-build-system)
-      (arguments
-       `(#:tests? #f                    ; no tests
-         #:phases
-         (modify-phases %standard-phases
-           (add-after 'install 'install-documentation
-             (lambda* (#:key outputs #:allow-other-keys)
-               (let* ((out (assoc-ref outputs "out"))
-                      (doc (string-append out "/share/doc/" ,name "-" ,version)))
-                 (for-each (lambda (file)
-                             (let ((target (string-append doc "/" file)))
-                               (mkdir-p (dirname target))
-                               (copy-recursively file target)))
-                           (list "README.md" "examples"))
-                 #t))))))
-      (home-page "https://github.com/teleshoes/acpi_call")
-      (synopsis "Linux kernel module to perform ACPI method calls")
-      (description
-       "This simple Linux kernel module allows calls from user space to any
+  (package
+    (name "acpi-call-linux-module")
+    (version "1.2.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/nix-community/acpi_call")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0mr4rjbv6fj4phf038addrgv32940bphghw2v9n1z4awvw7wzkbg"))))
+    (build-system linux-module-build-system)
+    (arguments
+     `(#:tests? #f                      ; no tests
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'install 'patch-shebangs-harder
+           ;; The (only) shebangs in examples/ don't justify a reference.
+           ;; However, do substitute a more portable one than the original.
+           (lambda _
+             (substitute* (find-files "examples" ".")
+               (("^(#! *)/[^ ]*/" _ shebang)
+                (string-append shebang "/usr/bin/env ")))
+             #t))
+         (add-after 'install 'install-documentation
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (doc (string-append out "/share/doc/" ,name "-" ,version)))
+               (for-each (lambda (file)
+                           (let ((target (string-append doc "/" file)))
+                             (mkdir-p (dirname target))
+                             (copy-recursively file target)))
+                         (list "README.md" "examples"))
+               #t))))))
+    (home-page "https://github.com/teleshoes/acpi_call")
+    (synopsis "Linux kernel module to perform ACPI method calls")
+    (description
+     "This simple Linux kernel module allows calls from user space to any
 @acronym{ACPI, Advanced Configuration and Power Interface} method provided by
 your computer's firmware, by writing to @file{/proc/acpi/call}.  You can pass
 any number of parameters of types @code{ACPI_INTEGER}, @code{ACPI_STRING},
@@ -1119,11 +1140,11 @@ and @code{ACPI_BUFFER}.
 
 It grants direct and undocumented access to your hardware that may cause damage
 and should be used with caution, especially on untested models.")
-      (license license:gpl3+))))        ; see README.md (no licence headers)
+    (license license:gpl3+)))           ; see README.md (no licence headers)
 
 (define-public rtl8812au-aircrack-ng-linux-module
-  (let ((commit "df2b8dfd8cb7d9f6cfeb55abaeab8a5372011fc9")
-        (revision "1"))
+  (let ((commit "62cb003043e4daeeba0b8805137fa604af450ed2")
+        (revision "3"))
     (package
       (name "rtl8812au-aircrack-ng-linux-module")
       (version (git-version "5.6.4.2" revision commit))
@@ -1135,7 +1156,7 @@ and should be used with caution, especially on untested models.")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
-          (base32 "1qcr0j8yhg8l9l0f5y55zcsk1mgf3qd46yh9xfqgg91szxa3yvca"))
+          (base32 "1kragxkjprjy7nl9h2rd0mwcry1ygw07zb1p2qkj7cmz0r2035yz"))
          (modules '((guix build utils)))
          (snippet
           '(begin
@@ -1168,8 +1189,8 @@ RTL8812AU, RTL8821AU, and RTL8814AU chips.")
       (license license:gpl2+))))
 
 (define-public rtl8821ce-linux-module
-  (let ((commit "69765eb288a8dfad3b055b906760b53e02ab1dea")
-        (revision "0"))
+  (let ((commit "14b536f0c9ad2d0abbdab8afc7ade684900ca9cf")
+        (revision "2"))
     (package
       (name "rtl8821ce-linux-module")
       (version (git-version "0.0.0" revision commit))
@@ -1182,7 +1203,7 @@ RTL8812AU, RTL8821AU, and RTL8814AU chips.")
          (file-name (git-file-name name version))
          (sha256
           (base32
-           "17jiw25k74kv5lnvgycvj2g1n06hbrpjz6p4znk4a62g136rhn4s"))))
+           "0z7r7spsgn22gwv9pcmkdjn9ingi8jj7xkxasph8118h46fw8ip2"))))
       (build-system linux-module-build-system)
       (arguments
        `(#:make-flags
@@ -1225,27 +1246,30 @@ between the CDemu userspace daemon and linux kernel.")
     (license license:gpl2+)))
 
 (define-public bbswitch-module
-  (package
-    (name "bbswitch-module")
-    (version "0.8")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://github.com/Bumblebee-Project/bbswitch")
-                    (commit (string-append "v" version))))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "1glch4j0x1dzlp2yrb67v2r5jg9609jb6p8m251y78m74advqw0l"))))
-    (build-system linux-module-build-system)
-    (arguments
-     ;; No tests.
-     `(#:tests? #f))
-    (home-page "https://github.com/Bumblebee-Project/bbswitch")
-    (synopsis "Kernel module that disables discrete Nvidia graphics cards")
-    (description "The bbswitch module provides a way to toggle the Nvidia
+  ;; Use "develop" branch since stable release does not build on Linux >= 5.6.
+  ;; See https://github.com/Bumblebee-Project/bbswitch/issues/205.
+  (let ((commit "ddbd243638c7bc2baecf43a78aff46cdc12e9b2e"))
+    (package
+      (name "bbswitch-module")
+      (version (git-version "0.8" "1" commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/Bumblebee-Project/bbswitch")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "1pgldnza7mzd0flrxg4q69dwbq1fhl58m5c62ary5drb0xyf3lqb"))))
+      (build-system linux-module-build-system)
+      (arguments
+       ;; No tests.
+       `(#:tests? #f))
+      (home-page "https://github.com/Bumblebee-Project/bbswitch")
+      (synopsis "Kernel module that disables discrete Nvidia graphics cards")
+      (description "The bbswitch module provides a way to toggle the Nvidia
 graphics card on Optimus laptops.")
-    (license license:gpl2)))
+      (license license:gpl2))))
 
 (define-public ddcci-driver-linux
   (package
@@ -1330,7 +1354,7 @@ application by hooking GStreamer into the loopback device.")
 (define-public linux-pam
   (package
     (name "linux-pam")
-    (version "1.3.1")
+    (version "1.4.0")
     (source
      (origin
        (method url-fetch)
@@ -1339,7 +1363,7 @@ application by hooking GStreamer into the loopback device.")
              version "/Linux-PAM-" version ".tar.xz"))
        (sha256
         (base32
-         "1nyh9kdi3knhxcbv5v4snya0g3gff0m671lnvqcbygw3rm77mx7g"))
+         "0d6hvz6lpkac08hw5wnlhfdm0fhqd0n6jf6v7fz3jhg6a6694vfd"))
        (patches (search-patches "linux-pam-no-setfsuid.patch"))))
 
     (build-system gnu-build-system)
@@ -1400,7 +1424,7 @@ at login.  Local and dynamic reconfiguration are its key features.")
         ;; Tests not distributed in pypi release.
         (method git-fetch)
         (uri (git-reference
-               (url "https://github.com/minrk/pamela.git")
+               (url "https://github.com/minrk/pamela")
                (commit version)))
         (file-name (git-file-name name version))
         (sha256
@@ -1787,14 +1811,14 @@ slabtop, and skill.")
 (define-public usbutils
   (package
     (name "usbutils")
-    (version "012")
+    (version "013")
     (source
      (origin
       (method url-fetch)
       (uri (string-append "mirror://kernel.org/linux/utils/usb/usbutils/"
                           "usbutils-" version ".tar.xz"))
       (sha256
-       (base32 "0iiy0q7fzikavmdsjsb0sl9kp3gfh701qwyjjccvqh0qz4jlcqw8"))))
+       (base32 "0f0klk6d3hmbpf6p4dcwa1qjzblmkhbxs1wsw87aidvqri7lj8wy"))))
     (build-system gnu-build-system)
     (outputs (list "out" "python"))
     (arguments
@@ -1803,7 +1827,7 @@ slabtop, and skill.")
          (add-before 'bootstrap 'patch-bootstrap-scripts
            (lambda _
              (substitute* "usbhid-dump/bootstrap"
-               (("/bin/bash") (which "bash")))
+               (("/bin/sh") (which "sh")))
 
              ;; Don't let autogen.sh run configure with bogus options & CFLAGS.
              (substitute* "autogen.sh"
@@ -2067,7 +2091,7 @@ trace of all the system calls made by a another process/program.")
               (base32
                "00wmbdghqbz6x95m1mcdd3wd46l6hgcr4wggdp049dbifh3qqvqf"))))
     (build-system gnu-build-system)
-    (inputs `(("libelf" ,libelf)))
+    (inputs `(("libelf" ,elfutils)))
     (arguments
      ;; Compilation uses -Werror by default, but it fails.
      '(#:configure-flags '("--disable-werror")))
@@ -2082,7 +2106,7 @@ intercept and print the system calls executed by the program.")
 (define-public alsa-lib
   (package
     (name "alsa-lib")
-    (version "1.2.2")
+    (version "1.2.3.2")
     (source (origin
              (method url-fetch)
              (uri (string-append
@@ -2090,7 +2114,7 @@ intercept and print the system calls executed by the program.")
                    version ".tar.bz2"))
              (sha256
               (base32
-               "1v5kb8jyvrpkvvq7dq8hfbmcj68lml97i4s0prxpfx2mh3c57s6q"))))
+               "05dyk856ppvqymazyk1cmpln53g88cq1wjpnsygqrvnamyvwa7z8"))))
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags (list (string-append "LDFLAGS=-Wl,-rpath="
@@ -2106,14 +2130,14 @@ MIDI functionality to the Linux-based operating system.")
 (define-public alsa-utils
   (package
     (name "alsa-utils")
-    (version "1.2.2")
+    (version "1.2.3")
     (source (origin
              (method url-fetch)
              (uri (string-append "ftp://ftp.alsa-project.org/pub/utils/"
                                  name "-" version ".tar.bz2"))
              (sha256
               (base32
-               "1wz460by17rmxrcydn583rd4lhj6wlvqs6x1j5pdzxn5g3app024"))))
+               "1ai1z4kf91b1m3qrpwqkc1af5vm2fkdkknqv95xdwf19q94aw6gz"))))
     (build-system gnu-build-system)
     (arguments
      ;; XXX: Disable man page creation until we have DocBook.
@@ -2227,8 +2251,7 @@ external rate conversion.")
 (define-public iptables
   (package
     (name "iptables")
-    ;; XXX When updating, remove the ‘install-missing-script’ phase.
-    (version "1.8.5")
+    (version "1.8.7")
     (source
      (origin
        (method url-fetch)
@@ -2237,7 +2260,7 @@ external rate conversion.")
                   (string-append "https://www.netfilter.org/projects/iptables/"
                                  "files/iptables-" version ".tar.bz2")))
        (sha256
-        (base32 "02a3575ypdpg6a2x752mhk3f7h1381ymkq1n0gss6fp6292xfmyl"))))
+        (base32 "1w6qx3sxzkv80shk21f63rq41c84irpx68k62m2cv629n1mwj2f1"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
@@ -2249,19 +2272,7 @@ external rate conversion.")
     (arguments
      '(#:tests? #f       ; no test suite
        #:configure-flags ; add $libdir to the RUNPATH of executables
-       (list (string-append "LDFLAGS=-Wl,-rpath=" %output "/lib"))
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'install 'install-missing-script
-           ;; A typo prevents installation of /sbin/iptables-apply.  It's been
-           ;; fixed upstream (d4ed0c741fc789bb09d977d74d30875fdd50d08b), but
-           ;; a patch would require bootstrapping and more inputs.  Simply copy
-           ;; the file ourselves.
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (sbin (string-append out "/sbin")))
-               (install-file "iptables/iptables-apply" sbin)
-               #t))))))
+       (list (string-append "LDFLAGS=-Wl,-rpath=" %output "/lib"))))
     (home-page "https://www.netfilter.org/projects/iptables/index.html")
     (synopsis "Programs to configure Linux IP packet filtering rules")
     (description
@@ -2275,6 +2286,53 @@ IPv6 packet filter.
 Both commands are targeted at system administrators.")
     (license license:gpl2+)))
 
+(define-public jitterentropy-rngd
+  (package
+    (name "jitterentropy-rngd")
+    (version "1.2.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/smuellerDD/jitterentropy-rngd")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1fb8zfwhwkl1d8n4cdn7rdv5rwd75qgc00d36pmkl7wgnj3c9xda"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f                      ; no test suite
+       #:make-flags
+       (list (string-append "CC=" ,(cc-for-target))
+             (string-append "PREFIX=" (assoc-ref %outputs "out"))
+             "UNITDIR=$(PREFIX)/lib/systemd/system")
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure))))         ; no ./configure script
+    (home-page "https://www.chronox.de/jent.html")
+    (synopsis "CPU jitter random number generator daemon")
+    (description
+     "This simple daemon feeds entropy from the CPU Jitter @acronym{RNG, random
+number generator} core to the kernel Linux's entropy estimator.  This prevents
+the @file{/dev/random} device from blocking and should benefit users of the
+preferred @file{/dev/urandom} and @code{getrandom()} interfaces too.
+
+The CPU Jitter RNG itself is part of the kernel and claims to provide good
+entropy by collecting and magnifying differences in CPU execution time as
+measured by the high-resolution timer built into modern CPUs.  It requires no
+additional hardware or external entropy source.
+
+The random bit stream generated by @command{jitterentropy-rngd} is not processed
+by a cryptographically secure whitening function.  Nonetheless, its authors
+believe it to be a suitable source of cryptographically secure key material or
+other cryptographically sensitive data.
+
+If you agree with them, start this daemon as early as possible to provide
+properly seeded random numbers to services like SSH or those using TLS during
+early boot when entropy may be low, especially in virtualised environments.")
+    (license (list license:bsd-3        ; or
+                   license:gpl2+))))
+
 (define-public lsscsi
   (package
     (name "lsscsi")
@@ -2324,7 +2382,7 @@ that the Ethernet protocol is much simpler than the IP protocol.")
 (define-public iproute
   (package
     (name "iproute2")
-    (version "5.8.0")
+    (version "5.9.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -2332,13 +2390,15 @@ that the Ethernet protocol is much simpler than the IP protocol.")
                     version ".tar.xz"))
               (sha256
                (base32
-                "0vk4vickrpahdhl3zazr2qn2bf99v5549ncirjpwiy4h0a4izkfg"))))
+                "1kys6dmhrl43iaq95n5sh02p39d7bq8i5y672qrzgwnwpjaaqpd2"))))
     (build-system gnu-build-system)
     (arguments
      `( ;; There is a test suite, but it wants network namespaces and sudo.
        #:tests? #f
        #:make-flags (let ((out (assoc-ref %outputs "out")))
                       (list "DESTDIR="
+                            (string-append "CC=" ,(cc-for-target))
+                            "HOSTCC=gcc"
                             (string-append "BASH_COMPDIR=" out
                                            "/etc/bash_completion.d")
                             (string-append "LIBDIR=" out "/lib")
@@ -2354,7 +2414,16 @@ that the Ethernet protocol is much simpler than the IP protocol.")
                       ;; Don't attempt to create /var/lib/arpd.
                       (substitute* "Makefile"
                         (("^.*ARPDDIR.*$") ""))
-                      #t)))))
+                      #t))
+                  (add-after 'unpack 'patch-configure
+                    (lambda _
+                      (let ((target ,(%current-target-system)))
+                        (substitute* "configure"
+                          (("pkg-config")
+                            (if target
+                              (string-append target "-pkg-config")
+                              "pkg-config")))
+                        #t))))))
     (inputs
      `(("db4" ,bdb)
        ("iptables" ,iptables)
@@ -2458,7 +2527,7 @@ network hardware types (plipconfig, slattach) and advanced aspects of IP
 configuration (iptunnel, ipmaddr).")
       (license license:gpl2+))))
 
-(define-public libcap
+(define-public libcap-2.31
   (package
     (name "libcap")
     (version "2.31")
@@ -2497,12 +2566,13 @@ Linux-based operating systems.")
     ;; License is BSD-3 or GPLv2, at the user's choice.
     (license license:gpl2)))
 
-;; libcap 2.31 causes problems for 'fakeroot', so provide this newer variant.
+;; libcap 2.31 has problems with newer kernels, so provide this newer variant.
+;; Keep the old libcap around to avoid rebuilding 'coreutils' and 'avahi'.
 ;; To be merged with libcap on the next rebuild cycle.
-(define-public libcap/next
+(define-public libcap
   (package
-    (inherit libcap)
-    (version "2.34")
+    (inherit libcap-2.31)
+    (version "2.44")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -2510,19 +2580,34 @@ Linux-based operating systems.")
                     "libcap2/libcap-" version ".tar.xz"))
               (sha256
                (base32
-                "048n1gy2p48vl9hkrr9wymfxxcpwj2aslz2bv79nhl4m2lhd9kdf"))))))
+                "1qf80lifygbnxwvqjf8jz5j24n6fqqx4ixnkbf76xs2vrmcq664j"))))
+    (arguments
+     (substitute-keyword-arguments (package-arguments libcap-2.31)
+       ((#:phases phases)
+        `(modify-phases ,phases
+           (replace 'configure
+             (lambda _
+               ;; Add $libdir to the RUNPATH of executables.
+               (substitute* "Make.Rules"
+                 (("LDFLAGS \\?= #-g")
+                  (string-append "LDFLAGS ?= -Wl,-rpath="
+                                 %output "/lib")))
+               #t))))))))
+
+(define-deprecated libcap/next libcap)
+(export libcap/next)
 
 (define-public bridge-utils
   (package
     (name "bridge-utils")
-    (version "1.6")
+    (version "1.7")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "mirror://kernel.org/linux/utils/net/bridge-utils/"
-                           "bridge-utils-" version ".tar.xz"))
+       (uri (string-append "mirror://kernel.org/linux/kernel/people/shemminger/"
+                           "bridge-utils/bridge-utils-" version ".tar.xz"))
        (sha256
-        (base32 "1j16kr44csyr4yqxly26l1yw2bh4nkiasgwvask2i2gvsnsyyryc"))))
+        (base32 "0zlrigizac2nfwgvksm92v4wafrpgxlbci3gwimc795ib7k8g6ck"))))
     (build-system gnu-build-system)
 
     ;; The tarball lacks all the generated files.
@@ -2849,7 +2934,7 @@ user-space processes.")
 (define-public unionfs-fuse
   (package
     (name "unionfs-fuse")
-    (version "2.0")
+    (version "2.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -2858,7 +2943,7 @@ user-space processes.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0lb8zgdxnjy2fjr2284hvdfn7inc1in44ynzgcr66x54bxzvynj6"))))
+                "0bwx70x834qgqh53vqp18bhbxbsny80hz922rbgj8k9wj7cbfilm"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("python" ,python)))
@@ -2964,14 +3049,14 @@ file system is as easy as logging into the server with an SSH client.")
 (define-public archivemount
   (package
     (name "archivemount")
-    (version "0.8.12")
+    (version "0.9.1")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://www.cybernoia.de/software/archivemount/"
                            "archivemount-" version ".tar.gz"))
        (sha256
-        (base32 "12fb8fcmd1zwvfgzx4pay47md5cr2kgxcgq82cm6skmq75alfzi4"))))
+        (base32 "1cy5b6qril9c3ry6fv7ir87s8iyy5vxxmbyx90dm86fbra0vjaf5"))))
     (build-system gnu-build-system)
     (inputs `(("fuse" ,fuse)
               ("libarchive" ,libarchive)))
@@ -2988,7 +3073,7 @@ compressed, transparent to other programs, without decompressing them.")
 (define-public numactl
   (package
     (name "numactl")
-    (version "2.0.13")
+    (version "2.0.14")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -2996,7 +3081,7 @@ compressed, transparent to other programs, without decompressing them.")
                     version "/numactl-" version ".tar.gz"))
               (sha256
                (base32
-                "16lcypvcmx1ydkpi2s82kqhg13kak7qhpbnj8hd9bdbyhr5ja7lr"))))
+                "1xngddsph43bxljywahi9d44fxr022slsap4hh91w8xnq54d2sw2"))))
     (build-system gnu-build-system)
     (arguments
      '(;; There's a 'test' target, but it requires NUMA support in the kernel
@@ -3160,7 +3245,7 @@ for systems using the Linux kernel.  This includes commands such as
 (define-public inotify-tools
   (package
     (name "inotify-tools")
-    (version "3.20.2.2")
+    (version "3.20.11.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -3169,12 +3254,15 @@ for systems using the Linux kernel.  This includes commands such as
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1r12bglkb0bkqff6kgxjm81hk6z20nrxq3m7iv15d4nrqf9pm7s0"))))
+                "1m8avqccrhm38krlhp88a7v949f3hrzx060bbrr5dp5qw2nmw9j2"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("autoconf" ,autoconf)
        ("automake" ,automake)
        ("libtool" ,libtool)))
+    (arguments
+     `(#:configure-flags
+       (list "--disable-static")))
     (home-page "https://github.com/rvoicilas/inotify-tools/wiki")
     (synopsis "Monitor file accesses")
     (description
@@ -3239,7 +3327,7 @@ from the module-init-tools project.")
 (define-public earlyoom
   (package
     (name "earlyoom")
-    (version "1.3.1")
+    (version "1.6.2")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -3248,31 +3336,31 @@ from the module-init-tools project.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "06sd3jpkdrwqbphsf8jrgs5rxfi7j3xjmygjjvj4xjk4gncz7r2i"))))
+                "16iyn51xlrsbshc7p5xl2338yyfzknaqc538sa7mamgccqwgyvvq"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:phases (modify-phases %standard-phases
-                  (delete 'configure)
-                  (add-before 'check 'set-home
-                    (lambda _
-                      (setenv "HOME" (getcwd))
-                      #t))
-                  (add-after 'build 'install-contribs
-                    ;; Install what seems useful from the contrib directory.
-                    (lambda* (#:key outputs #:allow-other-keys)
-                      (let* ((out (assoc-ref outputs "out"))
-                             (contrib (string-append
-                                       out "/share/earlyoom/contrib")))
-                        (install-file "contrib/notify_all_users.py" contrib)
-                        #t))))
+     `(#:phases
+       (modify-phases %standard-phases
+         (delete 'configure)            ; no configure script
+         (add-before 'check 'set-go-HOME
+           (lambda _
+             (setenv "HOME" (getcwd))
+             #t))
+         (add-before 'check 'disable-failing-test
+           (lambda _
+             ;; This test relies on writing to /proc/%d/oom_score_adj.
+             (substitute* "testsuite_cli_test.go"
+               (("TestI" match)
+                (string-append "skipped" match)))
+             #t)))
        #:make-flags (let* ((prefix (assoc-ref %outputs "out")))
                       (list ,(string-append "CC=" (cc-for-target))
                             (string-append "VERSION=v" ,version)
                             (string-append "PREFIX=" prefix)
                             (string-append "SYSCONFDIR=" prefix "/etc")))
        #:test-target "test"))
-    (native-inputs `(("go" ,go)               ;for the test suite
-                     ("pandoc" ,ghc-pandoc))) ;to generate the manpage
+    (native-inputs `(("go" ,go)           ;for the test suite
+                     ("pandoc" ,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
@@ -3418,16 +3506,16 @@ devices that can inject events directly into the input subsystem.")
 (define-public lvm2
   (package
     (name "lvm2")
-    (version "2.03.09")
+    (version "2.03.11")
     (source (origin
               (method url-fetch)
-              (uri (list (string-append "ftp://sourceware.org/pub/lvm2/LVM2."
+              (uri (list (string-append "https://sourceware.org/ftp/lvm2/LVM2."
                                         version ".tgz")
                          (string-append "ftp://sources.redhat.com/pub/lvm2/releases/LVM2."
                                         version ".tgz")))
               (sha256
                (base32
-                "0xdr9qbqw6kja267wmx6ajnfv1nhw056gpxx9v2qmfh3bj6qnfn0"))
+                "1m4xpda8vbyd89ca0w8nacvnl4j34yzsa625gn990fb5sh84ab44"))
               (modules '((guix build utils)))
               (snippet
                '(begin
@@ -3703,7 +3791,7 @@ compliance.")
 (define-public wireless-regdb
   (package
     (name "wireless-regdb")
-    (version "2019.06.03")
+    (version "2020.04.29")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -3711,7 +3799,7 @@ compliance.")
                     "wireless-regdb-" version ".tar.xz"))
               (sha256
                (base32
-                "1gslvh0aqdkv48jyr2ddq153mw28i7qz2ybrjj9qvkk3dgc7x4fd"))
+                "0yicda474ygahv8da18h1p4yf42s6x2f208mlwcw4xsrxld07zc9"))
 
               ;; We're building 'regulatory.bin' by ourselves.
               (snippet '(begin
@@ -4066,16 +4154,18 @@ thanks to the use of namespaces.")
        (modify-phases %standard-phases
          (add-after 'unpack 'patch-references
            (lambda _
-             (substitute* "libexec/cli/build.exec"
-               (("if ! singularity_which mksquashfs") "if 0")
-               (("if ! mksquashfs")
-                (string-append "if ! " (which "mksquashfs"))))
-             (substitute* (list "libexec/cli/help.exec"
-                                "libexec/bootstrap-scripts/functions"
-                                "libexec/bootstrap-scripts/post.sh"
-                                "libexec/functions")
+             (substitute* "libexec/cli/build.exec.in"
+               (("-mksquashfs") (string-append "-" (which "mksquashfs"))))
+             (substitute* (append
+                            (find-files "libexec" "functions")
+                            (find-files "libexec/bootstrap-scripts" ".*sh$")
+                            (find-files "libexec/cli" ".*exec$"))
+               (("\\| grep ")
+                (string-append "| " (which "grep") " "))
                (("egrep ")
-                (string-append (which "egrep") " ")))
+                (string-append (which "egrep") " "))
+               ((" sed ")
+                (string-append " " (which "sed") " ")))
              #t))
          (add-after 'install 'set-PATH
            (lambda* (#:key inputs outputs #:allow-other-keys)
@@ -4105,14 +4195,14 @@ isolation or root privileges.")
 (define-public hdparm
   (package
     (name "hdparm")
-    (version "9.58")
+    (version "9.60")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://sourceforge/hdparm/hdparm/"
                                   "hdparm-" version ".tar.gz"))
               (sha256
                (base32
-                "03z1qm8zbgpxagk3994lvp24yqsshjibkwg05v9p3q1w7y48xrws"))))
+                "1k1mcv7naiacw1y6bdd1adnjfiq1kkx2ivsadjwmlkg4fff775w3"))))
     (build-system gnu-build-system)
     (arguments
      `(#:make-flags
@@ -4144,7 +4234,7 @@ Translation (@dfn{SAT}) are also supported.")
 (define-public nvme-cli
   (package
     (name "nvme-cli")
-    (version "1.12")
+    (version "1.13")
     (home-page "https://github.com/linux-nvme/nvme-cli")
     (source (origin
               (method git-fetch)
@@ -4152,7 +4242,7 @@ Translation (@dfn{SAT}) are also supported.")
                     (url home-page)
                     (commit (string-append "v" version))))
               (sha256
-               (base32 "0ldky34sn0m5c4hgiip0fkzm465nca69bhxicpd5dg8wxhzxqrp3"))
+               (base32 "1d538kp841bjh8h8d9q7inqz56rdcwb3m78zfx8607ddykv7wcqb"))
               (file-name (git-file-name name version))))
     (build-system gnu-build-system)
     (arguments
@@ -4475,7 +4565,7 @@ arrays when needed.")
 (define-public multipath-tools
   (package
     (name "multipath-tools")
-    (version "0.8.4")
+    (version "0.8.5")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -4484,8 +4574,7 @@ arrays when needed.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "14n8pcgnliicqxzc40xvjxk4cafm4qx7a3rsx5qva74r3ydzx8rn"))
-              (patches (search-patches "multipath-tools-sans-systemd.patch"))
+                "0gipg0z79h76j0f449cx4wcrfsv69ravjlpphsac11h302g3nrvg"))
               (modules '((guix build utils)))
               (snippet
                '(begin
@@ -4543,6 +4632,18 @@ arrays when needed.")
                (("-lmultipath -lcmocka")
                 "-lmultipath -L$(mpathcmddir) -lmpathcmd -lcmocka"))
              #t))
+         (add-after 'unpack 'skip-failing-tests
+           (lambda _
+             ;; This test and the module's setup() test an arbitrary block
+             ;; device node name, but the build environment has none.
+             (substitute* "tests/devt.c"
+               (("return get_one_devt.*") "return 0;\n")
+               (("cmocka_unit_test\\(test_devt2devname_devt_good\\),") ""))
+             ;; The above triggers -Werror=unused-function.  Ignore it.
+             (substitute* "tests/Makefile"
+               (("CFLAGS \\+= " match)
+                (string-append match "-Wno-error=unused-function ")))
+             #t))
          (delete 'configure))))         ; no configure script
     (native-inputs
      `(("perl" ,perl)
@@ -4552,7 +4653,7 @@ arrays when needed.")
        ;; For tests.
        ("cmocka" ,cmocka)))
     (inputs
-     `(("json-c" ,json-c-0.13)
+     `(("json-c" ,json-c)
        ("libaio" ,libaio)
        ("liburcu" ,liburcu)
        ("lvm2" ,lvm2)
@@ -4675,7 +4776,7 @@ Bluetooth audio output devices like headphones or loudspeakers.")
 (define-public bluez
   (package
     (name "bluez")
-    (version "5.54")
+    (version "5.55")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -4683,7 +4784,7 @@ Bluetooth audio output devices like headphones or loudspeakers.")
                     version ".tar.xz"))
               (sha256
                (base32
-                "1p2ncvjz6alr9n3l5wvq2arqgc7xjs6dqyar1l9jp0z8cfgapkb8"))))
+                "124v9s4y1s7s6klx5vlmzpk1jlr4x84ch7r7scm7x2f42dqp2qw8"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags
@@ -4692,6 +4793,8 @@ Bluetooth audio output devices like headphones or loudspeakers.")
                "--localstatedir=/var"
                "--enable-library"
                "--disable-systemd"
+               ;; TODO: is this needed?  Not installed by default since 5.55.
+               "--enable-hid2hci"
                ;; Install dbus/udev files to the correct location.
                (string-append "--with-dbusconfdir=" out "/etc")
                (string-append "--with-udevdir=" out "/lib/udev")))
@@ -4838,7 +4941,7 @@ and copy/paste text in the console and in xterm.")
 (define-public btrfs-progs
   (package
     (name "btrfs-progs")
-    (version "5.7")
+    (version "5.9")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kernel.org/linux/kernel/"
@@ -4846,7 +4949,7 @@ and copy/paste text in the console and in xterm.")
                                   "btrfs-progs-v" version ".tar.xz"))
               (sha256
                (base32
-                "0p6ycbr8sw5bq3mj84gh9rvh5sk8sjr2l9hb9dhm4j41ij5h8bsw"))))
+                "14d7hz07kfczfgmy1ixkgccjn393gpkjn7givz5kwxddcnk5i4xq"))))
     (build-system gnu-build-system)
     (outputs '("out"
                "static"))      ; static versions of the binaries in "out"
@@ -5064,7 +5167,7 @@ disks and SD cards.  This package provides the userland utilities.")
   (package
     (inherit f2fs-tools-1.7)
     (name "f2fs-tools")
-    (version "1.13.0")
+    (version "1.14.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -5072,7 +5175,7 @@ disks and SD cards.  This package provides the userland utilities.")
                     "/f2fs-tools.git/snapshot/f2fs-tools-" version ".tar.gz"))
               (sha256
                (base32
-                "0z9c0y3qq75iyqknl5k0v7v46l8c3pcifpqb0yqalrs24blkm7dk"))))
+                "1lab1446c78xsjwhpki7s85z4171m8p9279c8yhm4882wba674k1"))))
     (inputs
      `(("libuuid" ,util-linux "lib")))))
 
@@ -5086,9 +5189,10 @@ disks and SD cards.  This package provides the userland utilities.")
        (let ((libuuid-static (assoc-ref %build-inputs "libuuid:static"))
              (libuuid (assoc-ref %build-inputs "libuuid")))
          (list
-          (string-append "libuuid_CFLAGS=-I" libuuid "/include")
+          (string-append "libuuid_CFLAGS=-I" libuuid "/include/uuid")
           (string-append "libuuid_LIBS=-L" libuuid-static "/lib -luuid")
-          (string-append "libblkid_CFLAGS=-I" libuuid "/include")
+          (string-append "libblkid_CFLAGS=-I" libuuid "/include/uuid "
+                         "-I" libuuid "/include/blkid")
           (string-append "libblkid_LIBS=-L" libuuid-static "/lib -lblkid")))
        #:disallowed-references (,util-linux)
        #:phases
@@ -5301,6 +5405,92 @@ be installed and loaded separately.  Only the original vendor firmware is
 supported.")
     (license license:gpl3+)))
 
+(define-public tmon
+  (package
+    (name "tmon")
+    ;; Tmon's ‘VERSION = 1.0’ hasn't been touched since 2013; the code has.
+    (version (package-version linux-libre))
+    (source (package-source linux-libre))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f                      ; no test suite
+       #:make-flags
+       (list (string-append "CC=" ,(cc-for-target))
+             (string-append "INSTALL_ROOT=" (assoc-ref %outputs "out"))
+             "BINDIR=bin")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'enter-subdirectory
+           (lambda _
+             (chdir "tools/thermal/tmon")
+             #t))
+         (add-after 'install 'install-man-page
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (man8 (string-append out "/share/man/man8")))
+               (install-file "tmon.8" man8)
+               #t)))
+         (delete 'configure))))         ; no configure script
+    (inputs
+     `(("ncurses" ,ncurses)))
+    (home-page (package-home-page linux-libre))
+    (synopsis "Monitor and test the Linux thermal subsystem in real time")
+    (description
+     "Tmon is a tool to interact with the complex thermal subsystem of the
+kernel Linux.  It helps visualize thermal relationships and real-time thermal
+data, tune and test cooling devices and sensors, and collect thermal data for
+further analysis.
+
+As computers become smaller and more thermally constrained, more sensors are
+added and new cooling capabilities introduced.  Thermal relationships can change
+dynamically.  Their complexity grows exponentially among cooling devices, zones,
+sensors, and trip points.
+
+Linux exposes this relationship through @file{/sys/class/thermal} with a matrix
+of symbolic links, trip point bindings, and device instances.  To traverse it
+by hand is no trivial task: @command{tmon} aims to make it understandable.")
+    (license (list license:gpl2         ; the man page
+                   license:gpl2+))))    ; the actual rest
+
+(define-public turbostat
+  (package
+    (name "turbostat")
+    ;; XXX turbostat reports a version like ‘20.09.30’ but using it here would
+    ;; make it harder to benefit from ‘free’ linux-libre package updates.
+    (version (package-version linux-libre))
+    (source (package-source linux-libre))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f                      ; no test suite
+       #:make-flags
+       (list (string-append "CC=" ,(cc-for-target))
+             (string-append "PREFIX=" (assoc-ref %outputs "out")))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'enter-subdirectory
+           (lambda _
+             (chdir "tools/power/x86/turbostat")
+             #t))
+         (delete 'configure))))         ; no configure script
+    (inputs
+     `(("libcap" ,libcap)))
+    (supported-systems '("i686-linux" "x86_64-linux"))
+    (home-page (package-home-page linux-libre))
+    (synopsis "Report x86 processor frequency and idle statistics")
+    (description
+     "Turbostat reports x86 processor topology, frequency, idle power state
+statistics, temperature, and power consumption.  Some information is unavailable
+on older processors.
+
+It can be used to identify machines that are inefficient in terms of power usage
+or idle time, report the rate of @acronym{SMI, system management interrupt}s
+occurring on the system, or verify the effects of power management tuning.
+
+@command{turbostat} reads hardware counters but doesn't write to them, so it
+won't interfere with the OS or other running processes---including multiple
+invocations of itself.")
+    (license license:gpl2)))
+
 (define-public ntfs-3g
   (package
     (name "ntfs-3g")
@@ -5325,7 +5515,8 @@ supported.")
               ("fuse" ,fuse)))                    ;libuuid
     (native-inputs `(("pkg-config" ,pkg-config)))
     (arguments
-     '(#:configure-flags (list "--exec-prefix=${prefix}"
+     '(#:configure-flags (list "--disable-static"
+                               "--exec-prefix=${prefix}"
                                "--with-fuse=external" ;use our own FUSE
                                "--enable-mount-helper"
                                "--enable-posix-acls"
@@ -5475,7 +5666,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.10")
+    (version "6.11")
     (source (origin
               (method git-fetch)
               (uri (git-reference (url home-page)
@@ -5483,7 +5674,7 @@ The collection contains a set of bandwidth and latency benchmark such as:
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0hbml37yxs0fs69g7f2x4ixq61z0029swy99rn7ykma9mi6b7ni9"))))
+                "0wwvi8a8k2ahhmwln4w970b8gd3in3g13jkbsapkpnspwmlqj5xa"))))
     (build-system gnu-build-system)
     (arguments
      `(;; Disable support for various hardware entropy sources as they need
@@ -5760,29 +5951,29 @@ the default @code{nsswitch} and the experimental @code{umich_ldap}.")
 (define-public mcelog
   (package
     (name "mcelog")
-    (version "170")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://git.kernel.org/cgit/utils/cpu/mce/"
-                                  "mcelog.git/snapshot/v" version ".tar.gz"))
-              (sha256
-               (base32
-                "1m11v1y7cvpm7hwsghj23z77ps1w5jzn8000iwiyxpb939h2km5l"))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (modules '((guix build utils)))
-              (snippet
-               `(begin
-                  ;; The snapshots lack a .git directory,
-                  ;; breaking ‘git describe’.
-                  (substitute* "Makefile"
-                    (("\"unknown\"") (string-append "\"v" ,version "\"")))
-                  #t))))
+    (version "175")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://git.kernel.org/pub/scm/utils/cpu/mce/mcelog.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0vvrnjkh1jp7f6295syydg7lplqmcm8msdls3xyk8xfiz69xqdjz"))
+       (modules '((guix build utils)))
+       (snippet
+        `(begin
+           ;; The checkout lack a .git directory, breaking ‘git describe’.
+           (substitute* "Makefile"
+             (("\"unknown\"") (string-append "\"v" ,version "\"")))
+           #t))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases (modify-phases %standard-phases
                   (delete 'configure))  ; no configure script
        #:make-flags (let ((out (assoc-ref %outputs "out")))
-                      (list "CC=gcc"
+                      (list (string-append "CC=" ,(cc-for-target))
                             (string-append "prefix=" out)
                             (string-append "DOCDIR=" out "/share/doc/"
                                            ,name "-" ,version)
@@ -5836,7 +6027,7 @@ of flash storage.")
 (define-public libseccomp
   (package
     (name "libseccomp")
-    (version "2.5.0")
+    (version "2.5.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/seccomp/libseccomp/"
@@ -5844,7 +6035,7 @@ of flash storage.")
                                   "/libseccomp-" version ".tar.gz"))
               (sha256
                (base32
-                "1wql62cg8f95cwpy057cl764nni9g4sdn5lqj68x22kjs8w71yhz"))))
+                "0m8dlg1v7kflcxvajs4p76p275qwsm2abbf5mfapkakp7hw7wc7f"))))
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags '("--disable-static")
@@ -5871,7 +6062,7 @@ developers.")
 (define-public radeontop
   (package
     (name "radeontop")
-    (version "1.2")
+    (version "1.3")
     (source
      (origin
        (method git-fetch)
@@ -5880,7 +6071,7 @@ developers.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1b1m30r2nfwqkajqw6m01xmfhlq83z1qylyijxg7962mp9x2k0gw"))))
+        (base32 "0ay6vl9zsz9b2scy0fnsy482pzizj52i27syxwny4z4i9wrk2wmn"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases (modify-phases %standard-phases
@@ -5988,17 +6179,17 @@ running boot option, and more.")
 (define-public sysstat
   (package
     (name "sysstat")
-    (version "12.3.1")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "http://pagesperso-orange.fr/sebastien.godard/"
-                                  "sysstat-" version ".tar.xz"))
-              (sha256
-               (base32
-                "1hf1sy7akribmgavadqccxpy49yv0zfb3m81d2bj6jf8pyzwcrbq"))))
+    (version "12.4.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "http://pagesperso-orange.fr/sebastien.godard/"
+                           "sysstat-" version ".tar.xz"))
+       (sha256
+        (base32 "13q1zb7ip389b35rcgy2ngf1z9zhdmdwx5bv9lwfnl1xi30v409p"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:tests? #f ; No test suite.
+     `(#:tests? #f                      ; no test suite.
        ;; Without this flag, it tries to install the man pages with group 'root'
        ;; and fails because /etc/passwd lacks an entry for the root user.
        #:configure-flags
@@ -6065,50 +6256,45 @@ under GNU/Linux.  Features include:
 @item Light can automatically figure out the best controller to use, making
 full use of underlying hardware.
 @item It is possible to set a minimum brightness value, as some controllers
-set the screen to be pitch black at a vaĺue of 0 (or higher).
-@end itemize
-
-Light is the successor of lightscript.")
+set the screen to be pitch black at a value of 0 (or higher).
+@end itemize\n")
     (license license:gpl3+)))
 
 (define-public brightnessctl
-  (let ((commit "6a791e7694aeeb5d027f71c6098e5182cf03371c"))
-    (package
-      (name "brightnessctl")
-      (version (git-version "0.4" "0" commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://github.com/Hummer12007/brightnessctl/")
-                      (commit commit)))
-                (file-name (git-file-name name version))
-                (sha256
-                 (base32
-                  "1n1gb8ldgqv3vs565yhk1w4jfvrviczp94r8wqlkv5q6ab43c8w9"))))
-      (build-system gnu-build-system)
-      (arguments
-       '(#:tests? #f                    ; no tests
-         #:make-flags (list "CC=gcc"
-                            (string-append "PREFIX=" %output)
-                            (string-append "UDEVDIR=" %output "/lib/udev/rules.d/"))
-         #:phases
-         (modify-phases %standard-phases
-           (delete 'configure)
-           (add-after 'unpack 'adjust-udev-rules
-             (lambda _
-               (substitute* "90-brightnessctl.rules"
-                 (("/bin/") "/run/current-system/profile/bin/"))
-               #t)))))
-      (home-page "https://github.com/Hummer12007/brightnessctl")
-      (synopsis "Backlight and LED brightness control")
-      (description
-       "This program allows you read and control device brightness.  Devices
+  (package
+    (name "brightnessctl")
+    (version "0.5.1")
+    (home-page "https://github.com/Hummer12007/brightnessctl")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference (url home-page) (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0immxc7almmpg80n3bdn834p3nrrz7bspl2syhb04s3lawa5y2lq"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f                      ; no tests
+       #:make-flags (list (string-append "CC=" ,(cc-for-target))
+                          (string-append "PREFIX=" %output)
+                          (string-append "UDEVDIR=" %output "/lib/udev/rules.d/"))
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (add-after 'unpack 'adjust-udev-rules
+           (lambda _
+             (substitute* "90-brightnessctl.rules"
+               (("/bin/") "/run/current-system/profile/bin/"))
+             #t)))))
+    (synopsis "Backlight and LED brightness control")
+    (description
+     "This program allows you read and control device brightness.  Devices
 include backlight and LEDs.  It can also preserve current brightness before
 applying the operation, such as on lid close.
 
 The appropriate permissions must be set on the backlight or LED control
 interface in sysfs, which can be accomplished with the included udev rules.")
-      (license license:expat))))
+    (license license:expat)))
 
 (define-public tlp
   (package
@@ -6288,14 +6474,14 @@ re-use code and to avoid re-inventing the wheel.")
 (define-public libnftnl
   (package
     (name "libnftnl")
-    (version "1.1.7")
+    (version "1.1.9")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://netfilter.org/libnftnl/"
                            "libnftnl-" version ".tar.bz2"))
        (sha256
-        (base32 "13zd90bfrr0q3j0l0cbc8kiizccw6n8gp727kqnfljh024zw3nr0"))))
+        (base32 "16jbp4fs5dz2yf4c3bl1sb48x9x9wi1chv39zwmfgya1k9pimcp9"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
@@ -6312,7 +6498,7 @@ used by nftables.")
 (define-public nftables
   (package
     (name "nftables")
-    (version "0.9.6")
+    (version "0.9.8")
     (source
      (origin
        (method url-fetch)
@@ -6321,7 +6507,7 @@ used by nftables.")
                   (string-append "https://www.nftables.org/projects/nftables"
                                  "/files/nftables-" version ".tar.bz2")))
        (sha256
-        (base32 "0vmn6xwqa1nq6crfxshh049b199d0aj6hfgin7k068xhibzgvmk8"))))
+        (base32 "1r4g22grhd4s1918wws9vggb8821sv4kkj8197ygxr6sar301z30"))))
     (build-system gnu-build-system)
     (arguments `(#:configure-flags
                  '("--disable-man-doc"))) ; FIXME: Needs docbook2x.
@@ -6480,17 +6666,18 @@ available in the kernel Linux.")
 (define-public cpuid
   (package
     (name "cpuid")
-    (version "20200211")
+    (version "20201006")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://www.etallen.com/cpuid/cpuid-"
                                   version ".src.tar.gz"))
               (sha256
                (base32
-                "06sjbqqp80l7nhsp6khglkzdp9qy4vhbvjxbfilznhsmrqiwlw55"))))
+                "19jnkh57f979b78ak5mpxmdvnkgc33r55cw9shgd2hc380b3zi8k"))))
     (build-system gnu-build-system)
     (arguments
-     '(#:make-flags '("CC=gcc")
+     `(#:make-flags
+       (list (string-append "CC=" ,(cc-for-target)))
        #:tests? #f                      ; no tests
        #:phases (modify-phases %standard-phases
                   (delete 'configure)   ; no configure script
@@ -6970,10 +7157,35 @@ communicate with the kernel.  It can be used to add and remove interfaces, set
 IP addresses and routes, and configure IPsec.")
     (license license:asl2.0)))
 
+(define-public libinih
+  (package
+    (name "libinih")
+    (version "52")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/benhoyt/inih")
+                    (commit (string-append "r" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0lsvm34zabvi1xlximybzvgc58zb90mm3b9babwxlqs05jy871m4"))))
+    (build-system meson-build-system)
+    (arguments
+     '(#:configure-flags '("-Ddistro_install=true" "-Ddefault_library=shared")))
+    (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
+parser written in C.  It's only a couple of pages of code, and it was designed to
+be small and simple, so it's good for embedded systems.  It's also more or less
+compatible with Python's ConfigParser style of .INI files, including RFC
+822-style multi-line syntax and name: value entries.")
+    (license license:bsd-3)))
+
 (define-public xfsprogs
   (package
     (name "xfsprogs")
-    (version "5.2.1")
+    (version "5.10.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -6981,7 +7193,7 @@ IP addresses and routes, and configure IPsec.")
                     "xfsprogs-" version ".tar.gz"))
               (sha256
                (base32
-                "0q5xd4gb9g83h82mg68cx616ifzl8qkzzlgg5xna698117ph3wky"))))
+                "1wcvcv9fl955g3zl68057hq7pp9bm7i733vc7j6xr6wnfd8qf6sr"))))
     (build-system gnu-build-system)
     (outputs (list "out" "python"))
     (arguments
@@ -7005,7 +7217,8 @@ IP addresses and routes, and configure IPsec.")
     (native-inputs
      `(("gettext" ,gettext-minimal)))
     (inputs
-     `(("libuuid" ,util-linux "lib")
+     `(("libinih" ,libinih)
+       ("libuuid" ,util-linux "lib")
        ("python" ,python-wrapper)))
     (home-page "https://xfs.wiki.kernel.org/")
     (synopsis "XFS file system tools")
@@ -7057,19 +7270,25 @@ the superuser to make device nodes.")
 (define-public fakeroot
   (package
     (name "fakeroot")
-    (version "1.24")
+    (version "1.25.3")
     (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
-                "1vb6f93hjyqnwx8dc8mm3dgma7axgqk8s7sdsjs8l2rpc0qmn11f"))))
+                "0v4m3v1bdqvblwj3vqsb3mllgbci6dsgsydq6765nzvz6n1kd44f"))))
     (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".
@@ -7109,21 +7328,21 @@ the superuser to make device nodes.")
             ;; We don't have an /etc/passwd entry for "root" - use numeric IDs.
             (substitute* "test/compare-tar"
              (("tar -tvf") "tar --numeric-owner -tvf"))
-
-            ;; coreutils 8.32 changed 'ls' to use the statx() syscall instead
-            ;; of lstat().  fakeroot 1.24 does not support the former, so
-            ;; adjust these tests to use 'test -b' instead of 'ls' to test for
-            ;; block device.  See <https://bugs.gnu.org/41090>.
-            (substitute* '("test/t.mknod" "test/t.chmod_dev")
-              (("ls -ld? \\$tmp/hda3")
-               "test -b $tmp/hda3 && echo block || echo fail"))
             #t)))))
     (native-inputs
-     `(("acl" ,acl)
-       ("sharutils" ,sharutils) ; for the tests
-       ("xz" ,xz))) ; for the tests
+     `(;; For bootstrapping the package.
+       ("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("libtool" ,libtool)
+       ("gettext" ,gettext-minimal)
+       ("po4a" ,po4a)
+
+       ;; For tests.
+       ("sharutils" ,sharutils)
+       ("xz" ,xz)))
     (inputs
-     `(("libcap" ,libcap/next)
+     `(("acl" ,acl)
+       ("libcap" ,libcap)
        ("util-linux" ,util-linux)
        ("sed" ,sed)
        ("coreutils" ,coreutils)))
@@ -7255,7 +7474,7 @@ of Linux application development.")
   (package
     (inherit pipewire)
     (name "pipewire")
-    (version "0.3.7")
+    (version "0.3.18")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -7264,12 +7483,15 @@ of Linux application development.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "04l66p0wj553gp2zf3vwwh6jbr1vkf6wrq4za9zlm9dn144am4j2"))))
+                "1yghhgs18yqrnd0b2r75l5n8yng962r1wszbsi01v6i9zib3jc9g"))))
     (arguments
-     '(#:configure-flags '("-Dsystemd=false")
+     '(#:configure-flags
+       (list (string-append "-Dudevrulesdir=" (assoc-ref %outputs "out")
+                            "/lib/udev/rules.d")
+             "-Dsystemd=false")
        #:phases
        (modify-phases %standard-phases
-         ;; Skip shrink-runpath, otherwise validate-runpath fails
+         ;; Skip shrink-runpath, otherwise validate-runpath fails.
          (delete 'shrink-runpath))))
     (inputs
      (append (package-inputs pipewire)
@@ -7347,14 +7569,14 @@ to ring buffers shared with a consumer daemon.")
 (define-public kexec-tools
   (package
     (name "kexec-tools")
-    (version "2.0.20")
+    (version "2.0.21")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kernel.org/linux/utils/kernel"
                                   "/kexec/kexec-tools-" version ".tar.xz"))
               (sha256
                (base32
-                "1j7qlhxk1rbv9jbj8wd6hb7zl8p2mp29ymrmccgmsi0m0dzhgn6s"))))
+                "00l7iqp337cr846b6w4lc5vl893v4zwjrxz0jsnkh5l9xqni84z1"))))
     (build-system gnu-build-system)
     (arguments
      ;; There are no automated tests.
@@ -7417,16 +7639,16 @@ persistent over reboots.")
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
-    (inputs
+    (propagated-inputs
+     ;; In Requires.private of libbpf.pc.
      `(("libelf" ,libelf)
        ("zlib" ,zlib)))
     (arguments
-     `(#:tests? #f ; No tests
+     `(#:tests? #f                      ; no tests
        #:make-flags
        (list
-        (string-append "PREFIX=''")
-        (string-append "DESTDIR=" (assoc-ref %outputs "out"))
-        (string-append "LIBDIR=/lib")
+        (string-append "PREFIX=" (assoc-ref %outputs "out"))
+        (string-append "LIBDIR=$(PREFIX)/lib")
         (string-append
          "CC=" (assoc-ref %build-inputs "gcc") "/bin/gcc"))
        #:phases
@@ -7532,7 +7754,7 @@ and above.")
 (define-public bpftrace
   (package
     (name "bpftrace")
-    (version "0.10.0")
+    (version "0.11.4")
     (source
      (origin
        (method git-fetch)
@@ -7541,8 +7763,7 @@ and above.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32
-         "023ardywbw5w8815j2ny9rrp2xlpxndqaa7v2njjm8109p7ilsdn"))
+        (base32 "0y4qgm2cpccrsm20rnh92hqplddqsc5q5zhw9nqn2igm3h9i0z7h"))
        (patches (search-patches "bpftrace-disable-bfd-disasm.patch"))))
     (build-system cmake-build-system)
     (native-inputs
@@ -7573,3 +7794,131 @@ tracing (uprobes), and tracepoints.  The bpftrace language is inspired by awk
 and C, and predecessor tracers such as DTrace and SystemTap.  bpftrace was
 created by Alastair Robertson.")
     (license license:asl2.0)))
+
+(define-public ttyebus-linux-module
+  (let ((revision "0")
+        (commit "fe4332a2281cf79804ef4d8516aa848ca1c58d1f"))
+    (package
+      (name "ttyebus-linux-module")
+      (version (git-version "1.5" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/eBUS/ttyebus")
+               (commit "fe4332a2281cf79804ef4d8516aa848ca1c58d1f")))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "1i66xjs9vln5cca6wx7aiiw7jihrlsk9hjdqyczp36fvm1b1bani"))))
+      (supported-systems '("armhf-linux" "aarch64-linux"))
+      (build-system linux-module-build-system)
+      (arguments
+       `(#:tests? #f))
+      (home-page "https://github.com/eBUS/ttyebus")
+      (synopsis "Low-latency Raspberry Pi UART driver")
+      (description "This package provides a Linux kernel module that will
+provide a serial device @code{/dev/ttyebus} with almost no latency upon
+receiving.  It is dedicated to the PL011 UART of the Raspberry Pi.")
+      (license license:gpl3+))))
+
+(define-public ipset
+  (package
+    (name "ipset")
+    (version "7.10")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://ipset.netfilter.org/ipset-" version ".tar.bz2"))
+              (sha256
+               (base32
+                "1xlwgsy06jx0bckc5r2wvyys8jfpc5klfqqqshmk5zp28fx0cjdj"))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("libmnl" ,libmnl)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (arguments
+     `(#:configure-flags '("--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
+can be administered by the ipset utility.  Depending on the type,
+currently an IP set may store IP addresses, (TCP/UDP) port numbers or
+IP addresses with MAC addresses in a way which ensures lightning speed
+when matching an entry against a set.
+
+If you want to
+@itemize @bullet
+@item store multiple IP addresses or port numbers and match against the entire
+collection using a single iptables rule.
+@item dynamically update iptables rules against IP addresses or ports without
+performance penalty.
+@item express complex IP address and ports based rulesets with a single
+iptables rule and benefit from the speed of IP sets.
+@end itemize\n
+then IP sets may be the proper tool for you.")
+    (license license:gpl2+)))
+
+(define-public liburing
+  (package
+    (name "liburing")
+    (version "0.7")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://git.kernel.dk/liburing")
+                    (commit (string-append "liburing-" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "15z44l7y4c6s6dlf7v8lq4znlsjbja2r4ifbni0l8cdcnq0w3zh3"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(;; Tests are dependent on kernel version and features
+       #:tests? #f
+       #:phases
+       (modify-phases %standard-phases
+         (replace 'configure
+           ;; configure fails if it is followed by SHELL, CONFIG_SHELL,
+           ;; --enable-fast-install, and --build
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (setenv "SHELL" (which "sh"))
+               (setenv "CONFIG_SHELL" (which "sh"))
+               (invoke "./configure" (string-append "--prefix=" out))))))))
+    (home-page "https://github.com/axboe/liburing")
+    (synopsis "Interface to the Linux kernel @code{io_uring} interface")
+    (description "This is the io_uring library, liburing. liburing provides
+helpers to setup and teardown io_uring instances, and also a simplified
+interface for applications that don't need (or want) to deal with the full
+kernel side implementation.")
+    (license license:expat)))
+
+(define-public erofs-utils
+  (package
+    (name "erofs-utils")
+    (version "1.2.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs-utils.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1vb4mxsb59g29x7l22cffsqa8x743sra4j5zbmx89hjwpwm9vvcg"))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("lz4" ,lz4)
+       ("libuuid" ,util-linux "lib")))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("libtool" ,libtool)
+       ("pkg-config" ,pkg-config)))
+    (home-page "https://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs-utils.git/")
+    (synopsis "User-space tools for EROFS filesystem")
+    (description "EROFS (Enhanced Read-Only File System) is a compressed,
+read-only filesystem optimized for resource-scarce devices.  This package
+provides user-space tools for creating EROFS filesystems.")
+    (license license:gpl2+)))
diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm
index b8216b04e1..3fefccf1e8 100644
--- a/gnu/packages/lisp-xyz.scm
+++ b/gnu/packages/lisp-xyz.scm
@@ -6,20 +6,23 @@
 ;;; Copyright © 2016, 2017 Nikita <nikita@n0.is>
 ;;; Copyright © 2016, 2017 Andy Patterson <ajpatter@uwaterloo.ca>
 ;;; Copyright © 2017, 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
-;;; Copyright © 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2017, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Benjamin Slade <slade@jnanam.net>
 ;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com>
-;;; Copyright © 2018, 2020 Pierre Neidhardt <mail@ambrevar.xyz>
+;;; Copyright © 2018, 2020, 2021 Pierre Neidhardt <mail@ambrevar.xyz>
 ;;; Copyright © 2018, 2019 Pierre Langlois <pierre.langlois@gmx.com>
 ;;; Copyright © 2019, 2020 Katherine Cox-Buday <cox.katherine.e@gmail.com>
 ;;; Copyright © 2019 Jesse Gildersleve <jessejohngildersleve@protonmail.com>
-;;; Copyright © 2019, 2020 Guillaume Le Vaillant <glv@posteo.net>
+;;; Copyright © 2019, 2020, 2021 Guillaume Le Vaillant <glv@posteo.net>
 ;;; Copyright © 2019 Brett Gilio <brettg@gnu.org>
 ;;; Copyright © 2020 Konrad Hinsen <konrad.hinsen@fastmail.net>
 ;;; Copyright © 2020 Dimakis Dimakakos <me@bendersteed.tech>
 ;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
-;;; Copyright © 2020 Adam Kandur <rndd@tuta.io>
+;;; Copyright © 2020, 2021 Adam Kandur <rndd@tuta.io>
+;;; Copyright © 2020, 2021 Sharlatan Hellseher <sharlatanus@gmail.com>
+;;; Copyright © 2021 Aurora <rind38@disroot.org>
+;;; Copyright © 2021 Matthew Kraai <kraai@ftbfs.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -51,10 +54,12 @@
   #:use-module (guix utils)
   #:use-module (guix build-system asdf)
   #:use-module (guix build-system trivial)
+  #:use-module (gnu packages base)
   #:use-module (gnu packages c)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages databases)
   #:use-module (gnu packages enchant)
+  #:use-module (gnu packages file)
   #:use-module (gnu packages fonts)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages glib)
@@ -71,15 +76,17 @@
   #:use-module (gnu packages sqlite)
   #: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 (ice-9 match)
+  #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-19))
 
 (define-public sbcl-alexandria
   (package
    (name "sbcl-alexandria")
-   (version "1.1")
+   (version "1.2")
    (source
     (origin
      (method git-fetch)
@@ -88,7 +95,7 @@
            (commit (string-append "v" version))))
      (sha256
       (base32
-       "1zanb3xa98js0i66iqcmx3gp123p1m2d1fxn8d7bfzyfad5f6xn2"))
+       "0bcqs0z9xlqgjz43qzgq9i07vdlnjllpm1wwa37wpkg0w975r712"))
      (file-name (git-file-name name version))))
    (build-system asdf-build-system/sbcl)
    (native-inputs
@@ -107,6 +114,45 @@ portable between implementations.")
 (define-public ecl-alexandria
   (sbcl-package->ecl-package sbcl-alexandria))
 
+(define-public sbcl-asdf-finalizers
+  (let ((commit "7f537f6c598b662ae987c6acc268dd27c25977e0")
+        (revision "1"))
+    (package
+      (name "sbcl-asdf-finalizers")
+      (version (git-version "0.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://gitlab.common-lisp.net/asdf/asdf-finalizers")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1w56c9yjjydjshsgqxz57qlp2v3r4ilbisnsgiqphvxnhvd41y0v"))))
+      (build-system asdf-build-system/sbcl)
+      (native-inputs
+       `(("fare-utils" ,sbcl-fare-utils)
+         ("hu.dwim.stefil" ,sbcl-hu.dwim.stefil)))
+      (arguments
+       `(#:asd-files '("asdf-finalizers.asd"
+                       "list-of.asd"
+                       "asdf-finalizers-test.asd")
+         #:asd-systems '("asdf-finalizers"
+                         "list-of")))
+      (home-page "https://gitlab.common-lisp.net/asdf/asdf-finalizers")
+      (synopsis "Enforced calling of finalizers for Lisp code")
+      (description "This library allows you to implement and enforce proper
+finalization of compile-time constructs while building Lisp source files.
+
+It produces two systems: asdf-finalizers and list-of.")
+      (license license:expat))))
+
+(define-public ecl-asdf-finalizers
+  (sbcl-package->ecl-package sbcl-asdf-finalizers))
+
+(define-public cl-asdf-finalizers
+  (sbcl-package->cl-source-package sbcl-asdf-finalizers))
+
 (define-public sbcl-net.didierverna.asdf-flv
   (package
     (name "sbcl-net.didierverna.asdf-flv")
@@ -141,6 +187,35 @@ In order to make one or several variables file-local, use the macros
 (define-public ecl-net.didierverna.asdf-flv
   (sbcl-package->ecl-package sbcl-net.didierverna.asdf-flv))
 
+(define-public sbcl-command-line-arguments
+  (let ((commit "fbac862fb01c0e368141204f3f639920462c23fe")
+        (revision "1"))
+    (package
+      (name "sbcl-command-line-arguments")
+      (version (git-version "2.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/fare/command-line-arguments")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "054m1ikndzqf72mb9ajaa64136cwr3bgag4yfbi1574a9vq75mjq"))))
+      (build-system asdf-build-system/sbcl)
+      (home-page "https://github.com/fare/command-line-arguments")
+      (synopsis "Trivial command-line argument parsing library for Common Lisp")
+      (description "This is a library to abstract away the parsing of
+Unix-style command-line arguments.  Use it in conjunction with asdf:program-op
+or cl-launch for portable processing of command-line arguments.")
+      (license license:expat))))
+
+(define-public ecl-command-line-arguments
+  (sbcl-package->ecl-package sbcl-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")
@@ -306,6 +381,45 @@ streams which are similar to string streams.")
 (define-public ecl-flexi-streams
   (sbcl-package->ecl-package sbcl-flexi-streams))
 
+(define-public sbcl-cl-abnf
+  ;; There are no releases
+  (let ((commit "ba1fbb104dedbdaddb1ef93d2e4da711bd96cd70")
+        (revision "1"))
+    (package
+     (name "sbcl-cl-abnf")
+     (version (git-version "0.0.0" revision commit))
+     (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+              (url "https://github.com/dimitri/cl-abnf")
+              (commit commit)))
+        (file-name (git-file-name "cl-abnf" version))
+        (sha256
+         (base32 "0f09nsndxa90acm71zd4qdnp40v705a4sqm04mnv9x76h6dlggmz"))))
+     (build-system asdf-build-system/sbcl)
+     (inputs
+      `(("cl-ppcre" ,sbcl-cl-ppcre)
+        ("esrap" ,sbcl-esrap)))
+     (arguments
+      `(#:asd-systems '("abnf")))
+     (home-page "https://github.com/dimitri/cl-abnf")
+     (synopsis "ABNF parser generator for Common Lisp")
+     (description "This Common Lisp library implements a parser generator for
+the ABNF grammar format as described in RFC2234.  The generated parser is a
+regular expression scanner provided by the cl-ppcre lib, which means that we
+can't parse recursive grammar definition.  One such definition is the ABNF
+definition as given by the RFC.  Fortunately, as you have this lib, you most
+probably don't need to generate another parser to handle that particular ABNF
+grammar.")
+     (license license:expat))))
+
+(define-public cl-abnf
+  (sbcl-package->cl-source-package sbcl-cl-abnf))
+
+(define-public ecl-cl-abnf
+  (sbcl-package->ecl-package sbcl-cl-abnf))
+
 (define-public sbcl-cl-ppcre
   (package
     (name "sbcl-cl-ppcre")
@@ -320,7 +434,18 @@ streams which are similar to string streams.")
        (sha256
         (base32 "0dwvr29diqzcg5n6jvbk2rnd90i05l7n828hhw99khmqd0kz7xsi"))))
     (build-system asdf-build-system/sbcl)
-    (native-inputs `(("flexi-streams" ,sbcl-flexi-streams)))
+    (native-inputs
+     `(("flexi-streams" ,sbcl-flexi-streams)))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'disable-ppcre-unicode
+           ;; cl-ppcre and cl-ppcre-unicode are put in different packages
+           ;; to work around the circular dependency between edicl/cl-ppcre
+           ;; and edicl/cl-unicode.
+           (lambda _
+             (delete-file "cl-ppcre-unicode.asd")
+             #t)))))
     (synopsis "Portable regular expression library for Common Lisp")
     (description "CL-PPCRE is a portable regular expression library for Common
 Lisp, which is compatible with perl.  It is pretty fast, thread-safe, and
@@ -334,9 +459,44 @@ compatible with ANSI-compliant Common Lisp implementations.")
 (define-public ecl-cl-ppcre
   (sbcl-package->ecl-package sbcl-cl-ppcre))
 
-(define sbcl-cl-unicode-base
+(define-public sbcl-uax-15
   (package
-    (name "sbcl-cl-unicode-base")
+    (name "sbcl-uax-15")
+    (version "0.1.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/sabracrolleton/uax-15")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name "uax-15" version))
+       (sha256
+        (base32 "0p2ckw7mzxhwa9vbwj2q2dzayz9dl94d9yqd2ynp0pc5v8i0n2fr"))))
+    (build-system asdf-build-system/sbcl)
+    (arguments
+     `(#:asd-systems
+       '("uax-15")))
+    (native-inputs
+     `(("fiveam" ,sbcl-fiveam)))
+    (inputs
+     `(("cl-ppcre" ,sbcl-cl-ppcre)
+       ("split-sequence" ,sbcl-split-sequence)))
+    (home-page "https://github.com/sabracrolleton/uax-15")
+    (synopsis "Common Lisp implementation of unicode normalization functions")
+    (description
+     "This package provides supports for unicode normalization, RFC8264 and
+RFC7564.")
+    (license license:expat)))
+
+(define-public cl-uax-15
+  (sbcl-package->cl-source-package sbcl-uax-15))
+
+(define-public ecl-uax-15
+  (sbcl-package->ecl-package sbcl-uax-15))
+
+(define-public sbcl-cl-unicode
+  (package
+    (name "sbcl-cl-unicode")
     (version "0.1.6")
     (source (origin
               (method git-fetch)
@@ -348,9 +508,8 @@ compatible with ANSI-compliant Common Lisp implementations.")
                (base32
                 "0ykx2s9lqfl74p1px0ik3l2izd1fc9jd1b4ra68s5x34rvjy0hza"))))
     (build-system asdf-build-system/sbcl)
-    (arguments
-     '(#:asd-file "cl-unicode.asd"
-       #:asd-system-name "cl-unicode/base"))
+    (native-inputs
+     `(("flexi-streams" ,sbcl-flexi-streams)))
     (inputs
      `(("cl-ppcre" ,sbcl-cl-ppcre)))
     (home-page "http://weitz.de/cl-unicode/")
@@ -360,23 +519,36 @@ is compatible with perl.  It is pretty fast, thread-safe, and compatible with
 ANSI-compliant Common Lisp implementations.")
     (license license:bsd-2)))
 
-(define-public sbcl-cl-unicode
-  (package
-    (inherit sbcl-cl-unicode-base)
-    (name "sbcl-cl-unicode")
-    (inputs
-     `(("cl-unicode/base" ,sbcl-cl-unicode-base)
-       ,@(package-inputs sbcl-cl-unicode-base)))
-    (native-inputs
-     `(("flexi-streams" ,sbcl-flexi-streams)))
-    (arguments '())))
-
 (define-public ecl-cl-unicode
   (sbcl-package->ecl-package sbcl-cl-unicode))
 
 (define-public cl-unicode
   (sbcl-package->cl-source-package sbcl-cl-unicode))
 
+(define-public sbcl-cl-ppcre-unicode
+  (package (inherit sbcl-cl-ppcre)
+    (name "sbcl-cl-ppcre-unicode")
+    (inputs
+     `(("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
+       ("sbcl-cl-unicode" ,sbcl-cl-unicode)))
+    (arguments
+     `(#:tests? #f ; tests fail with "Component :CL-PPCRE-TEST not found"
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'disable-ppcre
+           ;; cl-ppcre and cl-ppcre-unicode are put in different packages
+           ;; to work around the circular dependency between edicl/cl-ppcre
+           ;; and edicl/cl-unicode.
+           (lambda _
+             (delete-file "cl-ppcre.asd")
+             #t)))))))
+
+(define-public cl-ppcre-unicode
+  (sbcl-package->cl-source-package sbcl-cl-ppcre-unicode))
+
+(define-public ecl-cl-ppcre-unicode
+  (sbcl-package->ecl-package sbcl-cl-ppcre-unicode))
+
 (define-public sbcl-zpb-ttf
   (package
     (name "sbcl-zpb-ttf")
@@ -406,9 +578,9 @@ file.")
 (define-public cl-zpb-ttf
   (sbcl-package->cl-source-package sbcl-zpb-ttf))
 
-(define-public sbcl-cl-aa
+(define-public sbcl-cl-vectors
   (package
-    (name "sbcl-cl-aa")
+    (name "sbcl-cl-vectors")
     (version "0.1.5")
     (source
      (origin
@@ -419,67 +591,17 @@ file.")
         (base32
          "04lhwi0kq8pkwhgd885pk80m1cp9sfvjjn5zj70s1dnckibhdmqh"))))
     (build-system asdf-build-system/sbcl)
-    (arguments '(#:asd-file "cl-aa.asd"))
-    (home-page "http://projects.tuxee.net/cl-vectors/")
-    (synopsis "Polygon rasterizer")
-    (description
-     "This is a Common Lisp library implementing the AA polygon rasterization
-algorithm from the @url{http://antigrain.com, Antigrain} project.")
-    (license license:expat)))
-
-(define-public ecl-cl-aa
-  (sbcl-package->ecl-package sbcl-cl-aa))
-
-(define-public cl-aa
-  (sbcl-package->cl-source-package sbcl-cl-aa))
-
-(define-public sbcl-cl-paths
-  (package
-    (inherit sbcl-cl-aa)
-    (name "sbcl-cl-paths")
-    (arguments '(#:asd-file "cl-paths.asd"))
-    (synopsis "Facilities to create and manipulate vectorial paths")
-    (description
-     "This package provides facilities to create and manipulate vectorial
-paths.")))
-
-(define-public ecl-cl-paths
-  (sbcl-package->ecl-package sbcl-cl-paths))
-
-(define-public cl-paths
-  (sbcl-package->cl-source-package sbcl-cl-paths))
-
-(define-public sbcl-cl-paths-ttf
-  (package
-    (inherit sbcl-cl-aa)
-    (name "sbcl-cl-paths-ttf")
-    (arguments '(#:asd-file "cl-paths-ttf.asd"))
-    (inputs
-     `(("cl-paths" ,sbcl-cl-paths)
-       ("zpb-ttf" ,sbcl-zpb-ttf)))
-    (synopsis "Facilities to create and manipulate vectorial paths")
-    (description
-     "This package provides facilities to create and manipulate vectorial
-paths.")))
-
-(define-public ecl-cl-paths-ttf
-  (sbcl-package->ecl-package sbcl-cl-paths-ttf))
-
-(define-public cl-paths-ttf
-  (sbcl-package->cl-source-package sbcl-cl-paths-ttf))
-
-(define-public sbcl-cl-vectors
-  (package
-    (inherit sbcl-cl-aa)
-    (name "sbcl-cl-vectors")
-    (arguments '(#:asd-file "cl-vectors.asd"))
     (inputs
-     `(("cl-aa" ,sbcl-cl-aa)
-       ("cl-paths" ,sbcl-cl-paths)))
+     `(("zpb-ttf" ,sbcl-zpb-ttf)))
+    (arguments
+     '(#:asd-systems '("cl-vectors"
+                       "cl-paths-ttf")))
+    (home-page "http://projects.tuxee.net/cl-vectors/")
     (synopsis "Create, transform and render anti-aliased vectorial paths")
     (description
      "This is a pure Common Lisp library to create, transform and render
-anti-aliased vectorial paths.")))
+anti-aliased vectorial paths.")
+    (license license:expat)))
 
 (define-public ecl-cl-vectors
   (sbcl-package->ecl-package sbcl-cl-vectors))
@@ -507,7 +629,6 @@ anti-aliased vectorial paths.")))
       (build-system asdf-build-system/sbcl)
       (arguments
        '(#:tests? #f           ; spatial-trees.test requires spatial-trees.nns
-         #:asd-file "spatial-trees.asd"
          #:test-asd-file "spatial-trees.test.asd"))
       (native-inputs
        `(("fiveam" ,sbcl-fiveam)))
@@ -649,7 +770,6 @@ from other CLXes around the net.")
        `(("clx" ,sbcl-clx)
          ("zpb-ttf" ,sbcl-zpb-ttf)
          ("cl-vectors" ,sbcl-cl-vectors)
-         ("cl-paths-ttf" ,sbcl-cl-paths-ttf)
          ("cl-fad" ,sbcl-cl-fad)
          ("cl-store" ,sbcl-cl-store)
          ("trivial-features" ,sbcl-trivial-features)))
@@ -659,30 +779,17 @@ from other CLXes around the net.")
 antialiased TrueType font rendering using CLX and XRender extension.")
       (license license:expat))))
 
-(define-public sbcl-cl-ppcre-unicode
-  (package (inherit sbcl-cl-ppcre)
-    (name "sbcl-cl-ppcre-unicode")
-    (arguments
-     `(#:tests? #f ; tests fail with "Component :CL-PPCRE-TEST not found"
-       #:asd-file "cl-ppcre-unicode.asd"))
-    (inputs
-     `(("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
-       ("sbcl-cl-unicode" ,sbcl-cl-unicode)))))
+(define-public cl-clx-truetype
+  (sbcl-package->cl-source-package sbcl-clx-truetype))
 
-(define-public ecl-cl-ppcre-unicode
-  (sbcl-package->ecl-package sbcl-cl-ppcre-unicode))
+(define-public ecl-clx-truetype
+  (sbcl-package->ecl-package sbcl-clx-truetype))
 
-;; The slynk that users expect to install includes all of slynk's contrib
-;; modules.  Therefore, we build the base module and all contribs first; then
-;; we expose the union of these as `sbcl-slynk'.  The following variable
-;; describes the base module.
-(define sbcl-slynk-boot0
-  (let ((revision "3")
-        ;; Update together with emacs-sly.
-        (commit "6a2f543cb21f14104c2253af5a1427b884a987ae"))
+(define-public sbcl-slynk
+  (let ((commit "dffdf3caa12e964127d6eb45ba92ac0442cc5a48"))
     (package
-      (name "sbcl-slynk-boot0")
-      (version (string-append "1.0.0-beta-" revision "." (string-take commit 7)))
+      (name "sbcl-slynk")
+      (version (git-version "1.0.43" "1" commit))
       (source
        (origin
          (method git-fetch)
@@ -691,8 +798,8 @@ antialiased TrueType font rendering using CLX and XRender extension.")
            (url "https://github.com/joaotavora/sly")
            (commit commit)))
          (sha256
-          (base32 "0wbpg9p9yg2hd62l15pvy50fk3hndq5zzyqlyyf04g368s895144"))
-         (file-name (string-append "slynk-" version "-checkout"))
+          (base32 "0vv185gz3rkfng5y79dijfnc11p92qdz2kdza05avjbpqfs6l0zn"))
+         (file-name (git-file-name "slynk" version))
          (modules '((guix build utils)
                     (ice-9 ftw)))
          (snippet
@@ -701,18 +808,7 @@ antialiased TrueType font rendering using CLX and XRender extension.")
              ;; access
              (substitute* "slynk/slynk.asd"
                (("\\.\\./contrib")
-                "contrib")
-               (("\\(defsystem :slynk/util")
-                "(defsystem :slynk/util :depends-on (:slynk)"))
-             (substitute* "contrib/slynk-trace-dialog.lisp"
-               (("\\(slynk::reset-inspector\\)") ; Causes problems on load
-                "nil"))
-             (substitute* "contrib/slynk-profiler.lisp"
-               (("slynk:to-line")
-                "slynk-pprint-to-line"))
-             (substitute* "contrib/slynk-fancy-inspector.lisp"
-               (("slynk/util") "slynk-util")
-               ((":compile-toplevel :load-toplevel") ""))
+                "contrib"))
              (rename-file "contrib" "slynk/contrib")
              ;; Move slynk's contents into the base directory for easier
              ;; access
@@ -723,9 +819,38 @@ antialiased TrueType font rendering using CLX and XRender extension.")
                        (scandir "slynk"))
              #t))))
       (build-system asdf-build-system/sbcl)
+      (outputs '("out" "image"))
       (arguments
-       `(#:tests? #f ; No test suite
-         #:asd-system-name "slynk"))
+       `(#:tests? #f                    ; No test suite
+         #:asd-systems '("slynk"
+                         "slynk/arglists"
+                         "slynk/fancy-inspector"
+                         "slynk/package-fu"
+                         "slynk/mrepl"
+                         "slynk/trace-dialog"
+                         "slynk/profiler"
+                         "slynk/stickers"
+                         "slynk/indentation"
+                         "slynk/retro")
+         #:phases
+         (modify-phases %standard-phases
+           (add-after 'create-asdf-configuration 'build-image
+             (lambda* (#:key outputs #:allow-other-keys)
+               (build-image (string-append
+                             (assoc-ref %outputs "image")
+                             "/bin/slynk")
+                            %outputs
+                            #:dependencies '("slynk"
+                                             "slynk/arglists"
+                                             "slynk/fancy-inspector"
+                                             "slynk/package-fu"
+                                             "slynk/mrepl"
+                                             "slynk/trace-dialog"
+                                             "slynk/profiler"
+                                             "slynk/stickers"
+                                             "slynk/indentation"
+                                             "slynk/retro"))
+               #t)))))
       (synopsis "Common Lisp IDE for Emacs")
       (description "SLY is a fork of SLIME, an IDE backend for Common Lisp.
 It also features a completely redesigned REPL based on Emacs's own
@@ -737,216 +862,18 @@ multiple inspectors with independent history.")
       (properties `((cl-source-variant . ,(delay cl-slynk)))))))
 
 (define-public cl-slynk
-  (package
-    (inherit (sbcl-package->cl-source-package sbcl-slynk-boot0))
-    (name "cl-slynk")))
-
-(define ecl-slynk-boot0
-  (sbcl-package->ecl-package sbcl-slynk-boot0))
-
-(define sbcl-slynk-arglists
-  (package
-    (inherit sbcl-slynk-boot0)
-    (name "sbcl-slynk-arglists")
-    (inputs `(("slynk" ,sbcl-slynk-boot0)))
-    (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-slynk-boot0)
-       ((#:asd-file _ "") "slynk.asd")
-       ((#:asd-system-name _ #f) "slynk/arglists")))))
-
-(define ecl-slynk-arglists
-  (sbcl-package->ecl-package sbcl-slynk-arglists))
-
-(define sbcl-slynk-util
-  (package
-    (inherit sbcl-slynk-boot0)
-    (name "sbcl-slynk-util")
-    (inputs `(("slynk" ,sbcl-slynk-boot0)))
-    (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-slynk-boot0)
-       ((#:asd-file _ "") "slynk.asd")
-       ((#:asd-system-name _ #f) "slynk/util")))))
-
-(define ecl-slynk-util
-  (sbcl-package->ecl-package sbcl-slynk-util))
-
-(define sbcl-slynk-fancy-inspector
-  (package
-    (inherit sbcl-slynk-arglists)
-    (name "sbcl-slynk-fancy-inspector")
-    (inputs `(("slynk-util" ,sbcl-slynk-util)
-              ,@(package-inputs sbcl-slynk-arglists)))
-    (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
-       ((#:asd-system-name _ #f) "slynk/fancy-inspector")))))
-
-(define ecl-slynk-fancy-inspector
-  (sbcl-package->ecl-package sbcl-slynk-fancy-inspector))
-
-(define sbcl-slynk-package-fu
-  (package
-    (inherit sbcl-slynk-arglists)
-    (name "sbcl-slynk-package-fu")
-    (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
-       ((#:asd-system-name _ #f) "slynk/package-fu")))))
-
-(define ecl-slynk-package-fu
-  (sbcl-package->ecl-package sbcl-slynk-package-fu))
-
-(define sbcl-slynk-mrepl
-  (package
-    (inherit sbcl-slynk-fancy-inspector)
-    (name "sbcl-slynk-mrepl")
-    (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
-       ((#:asd-system-name _ #f) "slynk/mrepl")))))
-
-(define ecl-slynk-mrepl
-  (sbcl-package->ecl-package sbcl-slynk-mrepl))
-
-(define sbcl-slynk-trace-dialog
-  (package
-    (inherit sbcl-slynk-arglists)
-    (name "sbcl-slynk-trace-dialog")
-    (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
-       ((#:asd-system-name _ #f) "slynk/trace-dialog")))))
-
-(define ecl-slynk-trace-dialog
-  (sbcl-package->ecl-package sbcl-slynk-trace-dialog))
-
-(define sbcl-slynk-profiler
-  (package
-    (inherit sbcl-slynk-arglists)
-    (name "sbcl-slynk-profiler")
-    (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
-       ((#:asd-system-name _ #f) "slynk/profiler")))))
-
-(define ecl-slynk-profiler
-  (sbcl-package->ecl-package sbcl-slynk-profiler))
-
-(define sbcl-slynk-stickers
-  (package
-    (inherit sbcl-slynk-arglists)
-    (name "sbcl-slynk-stickers")
-    (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
-       ((#:asd-system-name _ #f) "slynk/stickers")))))
-
-(define ecl-slynk-stickers
-  (sbcl-package->ecl-package sbcl-slynk-stickers))
-
-(define sbcl-slynk-indentation
-  (package
-    (inherit sbcl-slynk-arglists)
-    (name "sbcl-slynk-indentation")
-    (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
-       ((#:asd-system-name _ #f) "slynk/indentation")))))
-
-(define ecl-slynk-indentation
-  (sbcl-package->ecl-package sbcl-slynk-indentation))
-
-(define sbcl-slynk-retro
-  (package
-    (inherit sbcl-slynk-arglists)
-    (name "sbcl-slynk-retro")
-    (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
-       ((#:asd-system-name _ #f) "slynk/retro")))))
-
-(define ecl-slynk-retro
-  (sbcl-package->ecl-package sbcl-slynk-retro))
-
-(define slynk-systems
-  '("slynk"
-    "slynk-util"
-    "slynk-arglists"
-    "slynk-fancy-inspector"
-    "slynk-package-fu"
-    "slynk-mrepl"
-    "slynk-profiler"
-    "slynk-trace-dialog"
-    "slynk-stickers"
-    "slynk-indentation"
-    "slynk-retro"))
-
-(define-public sbcl-slynk
-  (package
-    (inherit sbcl-slynk-boot0)
-    (name "sbcl-slynk")
-    (inputs
-     `(("slynk" ,sbcl-slynk-boot0)
-       ("slynk-util" ,sbcl-slynk-util)
-       ("slynk-arglists" ,sbcl-slynk-arglists)
-       ("slynk-fancy-inspector" ,sbcl-slynk-fancy-inspector)
-       ("slynk-package-fu" ,sbcl-slynk-package-fu)
-       ("slynk-mrepl" ,sbcl-slynk-mrepl)
-       ("slynk-profiler" ,sbcl-slynk-profiler)
-       ("slynk-trace-dialog" ,sbcl-slynk-trace-dialog)
-       ("slynk-stickers" ,sbcl-slynk-stickers)
-       ("slynk-indentation" ,sbcl-slynk-indentation)
-       ("slynk-retro" ,sbcl-slynk-retro)))
-    (native-inputs `(("sbcl" ,sbcl)))
-    (build-system trivial-build-system)
-    (source #f)
-    (outputs '("out" "image"))
-    (arguments
-     `(#:modules ((guix build union)
-                  (guix build utils)
-                  (guix build lisp-utils))
-       #:builder
-       (begin
-         (use-modules (ice-9 match)
-                      (srfi srfi-1)
-                      (guix build union)
-                      (guix build lisp-utils))
-
-         (union-build
-          (assoc-ref %outputs "out")
-          (filter-map
-           (match-lambda
-             ((name . path)
-              (if (string-prefix? "slynk" name) path #f)))
-           %build-inputs))
-
-         (prepend-to-source-registry
-          (string-append (assoc-ref %outputs "out") "//"))
-
-         (parameterize ((%lisp-type "sbcl")
-                        (%lisp (string-append (assoc-ref %build-inputs "sbcl")
-                                              "/bin/sbcl")))
-           (build-image (string-append
-                         (assoc-ref %outputs "image")
-                         "/bin/slynk")
-                        %outputs
-                        #:dependencies ',slynk-systems))
-         #t)))))
+  (sbcl-package->cl-source-package sbcl-slynk))
 
 (define-public ecl-slynk
-  (package
-    (inherit sbcl-slynk)
-    (name "ecl-slynk")
-    (inputs
-     (map (match-lambda
-            ((name pkg . _)
-             (list name (sbcl-package->ecl-package pkg))))
-          (package-inputs sbcl-slynk)))
-    (native-inputs '())
-    (outputs '("out"))
-    (arguments
-     '(#:modules ((guix build union))
-       #:builder
-       (begin
-         (use-modules (ice-9 match)
-                      (guix build union))
-         (match %build-inputs
-           (((names . paths) ...)
-            (union-build (assoc-ref %outputs "out")
-                         paths)
-            #t)))))))
+  (let ((pkg (sbcl-package->ecl-package sbcl-slynk)))
+    (package
+      (inherit pkg)
+      (outputs '("out"))
+      (arguments
+       (substitute-keyword-arguments (package-arguments pkg)
+         ((#:phases phases)
+          `(modify-phases ,phases
+             (delete 'build-image))))))))
 
 (define-public sbcl-parse-js
   (let ((commit "fbadc6029bec7039602abfc06c73bb52970998f6")
@@ -974,6 +901,9 @@ JavaScript (ECMAScript 3).  It has basic support for ECMAScript 5.")
 (define-public cl-parse-js
   (sbcl-package->cl-source-package sbcl-parse-js))
 
+(define-public ecl-parse-js
+  (sbcl-package->ecl-package sbcl-parse-js))
+
 (define-public sbcl-parse-number
   (package
     (name "sbcl-parse-number")
@@ -1001,6 +931,9 @@ else @code{parse-number} signals an error of type @code{invalid-number}.")
 (define-public cl-parse-number
   (sbcl-package->cl-source-package sbcl-parse-number))
 
+(define-public ecl-parse-number
+  (sbcl-package->ecl-package sbcl-parse-number))
+
 (define-public sbcl-iterate
   (package
     (name "sbcl-iterate")
@@ -1079,6 +1012,9 @@ compressor.  It works on data produced by @code{parse-js} to generate a
 (define-public cl-uglify-js
   (sbcl-package->cl-source-package sbcl-cl-uglify-js))
 
+(define-public ecl-cl-uglify-js
+  (sbcl-package->ecl-package sbcl-cl-uglify-js))
+
 (define-public uglify-js
   (package
     (inherit sbcl-cl-uglify-js)
@@ -1094,9 +1030,14 @@ compressor.  It works on data produced by @code{parse-js} to generate a
          (with-output-to-file script
            (lambda _
              (format #t "#!~a/bin/sbcl --script
+
  (require :asdf)
- (push (truename \"~a/lib/sbcl\") asdf:*central-registry*)"
+ (asdf:initialize-source-registry
+  #p\"~a/etc/common-lisp/source-registry.conf.d/\")
+ (asdf:initialize-output-translations
+  #p\"~a/etc/common-lisp/asdf-output-translations.conf.d/\")"
                      (assoc-ref %build-inputs "sbcl")
+                     (assoc-ref %build-inputs "sbcl-cl-uglify-js")
                      (assoc-ref %build-inputs "sbcl-cl-uglify-js"))
              ;; FIXME: cannot use progn here because otherwise it fails to
              ;; find cl-uglify-js.
@@ -1173,7 +1114,9 @@ utilities that make it even easier to manipulate text in Common Lisp.  It has
          (sha256
           (base32 "14pcahr8r2j3idhyy216zyw8jnj1dnrx0qbkkbdqkvwzign1ah4j"))))
       (build-system asdf-build-system/sbcl)
-      (arguments '(#:tests? #f))
+      (arguments
+       '(#:asd-files '("trivial-features.asd")
+         #:tests? #f))
       (home-page "https://cliki.net/trivial-features")
       (synopsis "Ensures consistency of @code{*FEATURES*} in Common Lisp")
       (description "Trivial-features ensures that @code{*FEATURES*} is
@@ -1292,8 +1235,7 @@ GNU libiconv, but completely written in Common Lisp.")
        (file-name (string-append "cl-yacc-" version "-checkout"))))
     (build-system asdf-build-system/sbcl)
     (arguments
-     `(#:asd-file "yacc.asd"
-       #:asd-system-name "yacc"))
+     `(#:asd-systems '("yacc")))
     (synopsis "LALR(1) parser generator for Common Lisp, similar in spirit to Yacc")
     (description
      "CL-Yacc is a LALR(1) parser generator for Common Lisp, similar in spirit
@@ -1311,6 +1253,40 @@ to DeRemer and Pennello, which is used by Bison and lalr.scm (not lalr.cl).")
 (define-public ecl-cl-yacc
   (sbcl-package->ecl-package sbcl-cl-yacc))
 
+(define-public sbcl-eager-future2
+  (let ((commit "54df8effd9d9eccac917509590286b5ac5f9cb30"))
+    (package
+      (name "sbcl-eager-future2")
+      (version (git-version "0.0.0" "1" commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://gitlab.common-lisp.net/vsedach/eager-future2.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "1qs1bv3m0ki8l5czhsflxcryh22r9d9g9a3a3b0cr0pl954q5rld"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       `(("bordeaux-threads" ,sbcl-bordeaux-threads)
+         ("trivial-garbage" ,sbcl-trivial-garbage)))
+      (synopsis "Futures promises synchronization mechanism for Common Lisp")
+      (description
+       "Eager Future2 is a Common Lisp library that provides composable
+concurrency primitives that unify parallel and lazy evaluation, are integrated
+with the Common Lisp condition system, and have automatic resource
+management.")
+      (home-page "https://gitlab.common-lisp.net/vsedach/eager-future2")
+      (license license:lgpl3+))))
+
+(define-public cl-eager-future2
+  (sbcl-package->cl-source-package sbcl-eager-future2))
+
+(define-public ecl-eager-future2
+  (sbcl-package->ecl-package sbcl-eager-future2))
+
 (define-public sbcl-jpl-util
   (let ((commit "0311ed374e19a49d43318064d729fe3abd9a3b62"))
     (package
@@ -1387,6 +1363,62 @@ several blockable channels.)")
 (define-public ecl-jpl-queues
   (sbcl-package->ecl-package sbcl-jpl-queues))
 
+(define-public sbcl-calispel
+  (let ((commit "e9f2f9c1af97f4d7bb4c8ac25fb2a8f3e8fada7a"))
+    (package
+      (name "sbcl-calispel")
+      (version (git-version "0.1" "1" commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               ;; This fork replaces the dependency on the obsolete
+               ;; eager-future with eager-future2.
+               (url "https://github.com/hawkir/calispel")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "08bmf3pi7n5hadpmqqkg65cxcj6kbvm997wcs1f53ml1nb79d9z8"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       `(("jpl-queues" ,sbcl-jpl-queues)
+         ("bordeaux-threads" ,sbcl-bordeaux-threads)))
+      (native-inputs
+       `(("eager-future2" ,sbcl-eager-future2)))
+      (synopsis "Thread-safe message-passing channels in Common Lisp")
+      (description
+       "Calispel is a Common Lisp library for thread-safe message-passing
+channels, in the style of the occam programming language, also known as
+communicating sequential processes (CSP).  See
+@url{https://en.wikipedia.org/wiki/Communicating_sequential_processes}.
+
+Calispel channels let one thread communicate with another, facilitating
+unidirectional communication of any Lisp object.  Channels may be unbuffered,
+where a sender waits for a receiver (or vice versa) before either operation can
+continue, or channels may be buffered with flexible policy options.
+
+Because sending and receiving on a channel may block, either operation can time
+out after a specified amount of time.
+
+A syntax for alternation is provided (like @code{ALT} in occam, or Unix
+@code{select()}): given a sequence of operations, any or all of which may
+block, alternation selects the first operation that doesn't block and executes
+associated code.  Alternation can also time out, executing an \"otherwise\"
+clause if no operation becomes available within a set amount of time.
+
+Calispel is a message-passing library, and as such leaves the role of
+threading abstractions and utilities left to be filled by complementary
+libraries such as Bordeaux-Threads and Eager Future.")
+      (home-page "https://www.thoughtcrime.us/software/jpl-queues/")
+      (license license:isc))))
+
+(define-public cl-calispel
+  (sbcl-package->cl-source-package sbcl-calispel))
+
+(define-public ecl-calispel
+  (sbcl-package->ecl-package sbcl-calispel))
+
 (define-public sbcl-eos
   (let ((commit "b4413bccc4d142cbe1bf49516c3a0a22c9d99243")
         (revision "2"))
@@ -1568,9 +1600,11 @@ C, C++, Java, Python, Erlang, Haskell, Objective-C, Diff, Webkit.")
       (arguments
        ;; FIXME: We need to specify the name because the build-system thinks
        ;; "3" is a version marker.
-       `(#:asd-system-name "3bmd"))
+       `(#:asd-systems '("3bmd"
+                         "3bmd-ext-code-blocks")))
       (inputs
-       `(("esrap" ,sbcl-esrap)
+       `(("colorize" ,sbcl-colorize)
+         ("esrap" ,sbcl-esrap)
          ("split-sequence" ,sbcl-split-sequence)))
       (synopsis "Markdown processor in Command Lisp using esrap parser")
       (description
@@ -1585,29 +1619,6 @@ parsing, and grammar based on @command{peg-markdown}.")
 (define-public ecl-3bmd
   (sbcl-package->ecl-package sbcl-3bmd))
 
-(define-public sbcl-3bmd-ext-code-blocks
-  (let ((commit "192ea13435b605a96ef607df51317056914cabbd"))
-    (package
-      (inherit sbcl-3bmd)
-      (name "sbcl-3bmd-ext-code-blocks")
-      (arguments
-       `(#:asd-system-name "3bmd-ext-code-blocks"
-         #:asd-file "3bmd-ext-code-blocks.asd"))
-      (inputs
-       `(("3bmd" ,sbcl-3bmd)
-         ("colorize" ,sbcl-colorize)))
-      (synopsis "3bmd extension which adds support for GitHub-style fenced
-code blocks")
-      (description
-       "3bmd extension which adds support for GitHub-style fenced code blocks,
-with @command{colorize} support."))))
-
-(define-public cl-3bmd-ext-code-blocks
-  (sbcl-package->cl-source-package sbcl-3bmd-ext-code-blocks))
-
-(define-public ecl-3bmd-ext-code-blocks
-  (sbcl-package->ecl-package sbcl-3bmd-ext-code-blocks))
-
 (define-public sbcl-cl-fad
   (package
     (name "sbcl-cl-fad")
@@ -1670,26 +1681,29 @@ Common Lisp.")
   (sbcl-package->ecl-package sbcl-rt))
 
 (define-public sbcl-nibbles
-  (package
-    (name "sbcl-nibbles")
-    (version "0.14")
-    (source
-     (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/sharplispers/nibbles/")
-             (commit (string-append "v" version))))
-       (sha256
-        (base32
-         "1v7qfgpvdr6nz7v63dj69d26dis0kff3rd8xamr1llfdvza2pm8f"))
-       (file-name (git-file-name "nibbles" version))))
-    (build-system asdf-build-system/sbcl)
-    (native-inputs
-     ;; Tests only.
-     `(("rt" ,sbcl-rt)))
-    (synopsis "Common Lisp library for accessing octet-addressed blocks of data")
-    (description
-     "When dealing with network protocols and file formats, it's common to
+  ;; No tagged release since 2018.
+  (let ((commit "8e6b9b42d9f69000f55e5c45ad974d9e376ffdbd")
+        (revision "1"))
+    (package
+      (name "sbcl-nibbles")
+      (version (git-version "0.14" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/sharplispers/nibbles/")
+               (commit commit)))
+         (sha256
+          (base32 "15qlsm82h36pjgvfnbzdg60l21qxbaii4d049jc5y0dn56y93amb"))
+         (file-name (git-file-name "nibbles" version))))
+      (build-system asdf-build-system/sbcl)
+      (native-inputs
+       ;; Tests only.
+       `(("rt" ,sbcl-rt)))
+      (synopsis
+       "Common Lisp library for accessing octet-addressed blocks of data")
+      (description
+       "When dealing with network protocols and file formats, it's common to
 have to read or write 16-, 32-, or 64-bit datatypes in signed or unsigned
 flavors.  Common Lisp sort of supports this by specifying :element-type for
 streams, but that facility is underspecified and there's nothing similar for
@@ -1703,8 +1717,8 @@ SETFable.  Since it's sometimes desirable to read/write directly from streams,
 functions for doing so are also provided.  On some implementations,
 reading/writing IEEE singles/doubles (i.e. single-float and double-float) will
 also be supported.")
-    (home-page "https://github.com/sharplispers/nibbles")
-    (license license:bsd-3)))
+      (home-page "https://github.com/sharplispers/nibbles")
+      (license license:bsd-3))))
 
 (define-public cl-nibbles
   (sbcl-package->cl-source-package sbcl-nibbles))
@@ -1715,7 +1729,7 @@ also be supported.")
 (define-public sbcl-ironclad
   (package
     (name "sbcl-ironclad")
-    (version "0.50")
+    (version "0.54")
     (source
      (origin
        (method git-fetch)
@@ -1723,7 +1737,7 @@ also be supported.")
              (url "https://github.com/sharplispers/ironclad/")
              (commit (string-append "v" version))))
        (sha256
-        (base32 "0k4bib9mbrzalbl9ivkw4a7g4c7bbad1l5jw4pzkifqszy2swkr5"))
+        (base32 "07g0wpvfqq2yk23prs890d4qvbnr3xd6w8ssd88g89xdg483wpvk"))
        (file-name (git-file-name name version))))
     (build-system asdf-build-system/sbcl)
     (native-inputs
@@ -1778,6 +1792,40 @@ named readtables, which is akin to package namespacing in Common Lisp.")
 (define-public ecl-named-readtables
   (sbcl-package->ecl-package sbcl-named-readtables))
 
+(define-public sbcl-py-configparser
+  ;; NOTE: (Sharlatan <2021-01-05 Tue> <19:52:19 UTC+0000>) Project updated last
+  ;; time 8y ago, it looks like abandoned. VCS of the project:
+  ;; https://svn.common-lisp.net/py-configparser/trunk
+  (package
+    (name "sbcl-py-configparser")
+    (version "1.0.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://common-lisp.net/project/py-configparser/releases/"
+             "py-configparser-" version ".tar.gz"))
+       (sha256
+        (base32 "0i4rqz5cv7d7c2w81x5lwy05s6fbi3zikf4k5kpi3bkx3cabwdxj"))))
+    (build-system asdf-build-system/sbcl)
+    (inputs
+     `(("parse-number" ,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
+Python module functionality in Common Lisp.  In short, it implements reading
+and writing of .INI-file style configuration files with sections containing
+key/value pairs of configuration options.  In line with the functionalities in
+the python module, does this package implement basic interpolation of option
+values in other options.")
+    (license license:expat)))
+
+(define-public cl-py-configparser
+  (sbcl-package->cl-source-package sbcl-py-configparser))
+
+(define-public ecl-py-configparser
+  (sbcl-package->ecl-package sbcl-py-configparser))
+
 (define-public sbcl-pythonic-string-reader
   (let ((commit "47a70ba1e32362e03dad6ef8e6f36180b560f86a"))
     (package
@@ -1809,27 +1857,23 @@ writing code that contains string literals that contain code themselves.")
 (define-public ecl-pythonic-string-reader
   (sbcl-package->ecl-package sbcl-pythonic-string-reader))
 
-;; SLIME does not have a ASDF system definition to build all of Swank.  As a
-;; result, the asdf-build-system/sbcl will produce an almost empty package.
-;; Some work was done to fix this at
-;; https://github.com/sionescu/slime/tree/swank-asdf but it was never merged
-;; and is now lagging behind.  Building SBCL fasls might not be worth the
-;; hassle, so let's just ship the source then.
-(define-public cl-slime-swank
+(define-public sbcl-slime-swank
   (package
-    (name "cl-slime-swank")
-    (version "2.24")
+    (name "sbcl-slime-swank")
+    (version "2.26")
     (source
      (origin
-       (file-name (string-append name "-" version ".tar.gz"))
+       (file-name (git-file-name "slime-swank" version))
        (method git-fetch)
        (uri (git-reference
              (url "https://github.com/slime/slime/")
              (commit (string-append "v" version))))
        (sha256
         (base32
-         "0js24x42m7b5iymb4rxz501dff19vav5pywnzv50b673rbkaaqvh"))))
-    (build-system asdf-build-system/source)
+         "0mxb1wnw19v0s72w2wkz5afdlzvpy5nn7pr4vav403qybac0sw5c"))))
+    (build-system asdf-build-system/sbcl)
+    (arguments
+     '(#:asd-systems '("swank")))
     (home-page "https://github.com/slime/slime")
     (synopsis "Common Lisp Swank server")
     (description
@@ -1838,8 +1882,11 @@ processes that doesn't run under Emacs.  Lisp processes created by
 @command{M-x slime} automatically start the server.")
     (license (list license:gpl2+ license:public-domain))))
 
-(define-public sbcl-slime-swank
-  (deprecated-package "sbcl-slime-swank" cl-slime-swank))
+(define-public cl-slime-swank
+  (sbcl-package->cl-source-package sbcl-slime-swank))
+
+(define-public ecl-slime-swank
+  (sbcl-package->ecl-package sbcl-slime-swank))
 
 (define-public sbcl-mgl-pax
   (let ((commit "818448418d6b9de74620f606f5b23033c6082769"))
@@ -1859,16 +1906,12 @@ processes that doesn't run under Emacs.  Lisp processes created by
       (build-system asdf-build-system/sbcl)
       (inputs
        `(("3bmd" ,sbcl-3bmd)
-         ("3bmd-ext-code-blocks" ,sbcl-3bmd-ext-code-blocks)
          ("babel" ,sbcl-babel)
          ("cl-fad" ,sbcl-cl-fad)
          ("ironclad" ,sbcl-ironclad)
          ("named-readtables" ,sbcl-named-readtables)
-         ("pythonic-string-reader" ,sbcl-pythonic-string-reader)))
-      (propagated-inputs
-       ;; Packages having mgl-pax as input complain that it can't find
-       ;; swank if we put it in inputs, so let's put it in propageted-inputs.
-       `(("swank" ,cl-slime-swank)))
+         ("pythonic-string-reader" ,sbcl-pythonic-string-reader)
+         ("swank" ,sbcl-slime-swank)))
       (synopsis "Exploratory programming environment and documentation generator")
       (description
        "PAX provides an extremely poor man's Explorable Programming
@@ -1892,7 +1935,58 @@ pretty, documentation is code.")
   (sbcl-package->cl-source-package sbcl-mgl-pax))
 
 (define-public ecl-mgl-pax
-  (sbcl-package->ecl-package sbcl-mgl-pax))
+  (let ((pkg (sbcl-package->ecl-package sbcl-mgl-pax)))
+    (package
+      (inherit pkg)
+      (arguments
+       (substitute-keyword-arguments (package-arguments pkg)
+         ;; TODO: Find why the tests fail on ECL.
+         ((#:tests? _ #f) #f))))))
+
+(define-public sbcl-mssql
+  (let ((commit "045602a19a32254108f2b75871049293f49731eb")
+        (revision "1"))
+    (package
+      (name "sbcl-mssql")
+      (version (git-version "0.0.3" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/archimag/cl-mssql")
+               (commit commit)))
+         (file-name (git-file-name "cl-mssql" version))
+         (sha256
+          (base32 "09i50adppgc1ybm3ka9vbindhwa2x29f9n3n0jkrryymdhb8zknm"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       `(("cffi" ,sbcl-cffi)
+         ("freetds" ,freetds)
+         ("garbage-pools" ,sbcl-garbage-pools)
+         ("iterate" ,sbcl-iterate)
+         ("parse-number" ,sbcl-parse-number)))
+      (arguments
+       `(#:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'fix-paths
+             (lambda* (#:key inputs #:allow-other-keys)
+               (substitute* "src/mssql.lisp"
+                 (("libsybdb" all)
+                  (string-append (assoc-ref inputs "freetds") "/lib/" all)))
+               #t)))))
+      (home-page "https://github.com/archimag/cl-mssql")
+      (synopsis "Common Lisp library to interact with MS SQL Server databases")
+      (description
+       "@code{cl-mssql} provides an interface to connect to Microsoft SQL
+server.  It uses the @code{libsybdb} foreign library provided by the FreeTDS
+project.")
+      (license license:llgpl))))
+
+(define-public ecl-mssql
+  (sbcl-package->ecl-package sbcl-mssql))
+
+(define-public cl-mssql
+  (sbcl-package->cl-source-package sbcl-mssql))
 
 (define-public sbcl-lisp-unit
   (let ((commit "89653a232626b67400bf9a941f9b367da38d3815"))
@@ -2115,10 +2209,10 @@ named color.")
 (define-public ecl-cl-ansi-text
   (sbcl-package->ecl-package sbcl-cl-ansi-text))
 
-(define-public sbcl-prove-asdf
+(define-public sbcl-prove
   (let ((commit "4f9122bd393e63c5c70c1fba23070622317cfaa0"))
     (package
-      (name "sbcl-prove-asdf")
+      (name "sbcl-prove")
       (version (git-version "1.0.0" "1" commit))
       (source
        (origin
@@ -2131,35 +2225,13 @@ named color.")
            "07sbfw459z8bbjvx1qlmfa8qk2mvbjnnzi2mi0x72blaj8bkl4vc"))
          (file-name (git-file-name "prove" version))))
       (build-system asdf-build-system/sbcl)
-      (arguments
-       `(#:asd-file "prove-asdf.asd"))
-      (synopsis "Test requirement for the Common Lisp 'prove' library")
+      (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
-       "Test requirement for the Common Lisp @command{prove} library.")
-      (home-page "https://github.com/fukamachi/prove")
-      (license license:expat))))
-
-(define-public cl-prove-asdf
-  (sbcl-package->cl-source-package sbcl-prove-asdf))
-
-(define-public ecl-prove-asdf
-  (sbcl-package->ecl-package sbcl-prove-asdf))
-
-(define-public sbcl-prove
-  (package
-    (inherit sbcl-prove-asdf)
-    (name "sbcl-prove")
-    (inputs
-     `(("alexandria" ,sbcl-alexandria)
-       ("cl-ppcre" ,sbcl-cl-ppcre)
-       ("cl-ansi-text" ,sbcl-cl-ansi-text)))
-    (native-inputs
-     `(("prove-asdf" ,sbcl-prove-asdf)))
-    (arguments
-     `(#:asd-file "prove.asd"))
-    (synopsis "Yet another unit testing framework for Common Lisp")
-    (description
-     "This project was originally called @command{cl-test-more}.
+       "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:
 
@@ -2169,7 +2241,9 @@ advantages of @command{prove} are:
 @item Extensible test reporters
 @item Colorizes the report if it's available (note for SLIME)
 @item Reports test durations
-@end itemize\n")))
+@end itemize\n")
+      (home-page "https://github.com/fukamachi/prove")
+      (license license:expat))))
 
 (define-public cl-prove
   (sbcl-package->cl-source-package sbcl-prove))
@@ -2197,8 +2271,7 @@ advantages of @command{prove} are:
        `(("alexandria" ,sbcl-alexandria)
          ("babel" ,sbcl-babel)))
       (native-inputs
-       `(("prove" ,sbcl-prove)
-         ("prove-asdf" ,sbcl-prove-asdf)))
+       `(("prove" ,sbcl-prove)))
       (arguments
        ;; TODO: Tests don't find "proc-parse-test", why?
        `(#:tests? #f))
@@ -2236,8 +2309,7 @@ pattern-matching-like, but a char-by-char procedural parser.")
        `(("alexandria" ,sbcl-alexandria)
          ("babel" ,sbcl-babel)))
       (native-inputs
-       `(("prove" ,sbcl-prove)
-         ("prove-asdf" ,sbcl-prove-asdf)))
+       `(("prove" ,sbcl-prove)))
       (arguments
        ;; TODO: Tests don't find "proc-parse-test", why?
        `(#:tests? #f))
@@ -2254,12 +2326,12 @@ values from a string in Common Lisp.")
 (define-public ecl-parse-float
   (sbcl-package->ecl-package sbcl-parse-float))
 
-(define-public sbcl-ascii-strings
+(define-public sbcl-cl-string-match
   (let ((revision "1")
         (changeset "5048480a61243e6f1b02884012c8f25cdbee6d97"))
     (package
-      (name "sbcl-ascii-strings")
-      (version (string-append "0-" revision "." (string-take changeset 7)))
+      (name "sbcl-cl-string-match")
+      (version (git-version "0" revision changeset))
       (source
        (origin
          (method hg-fetch)
@@ -2273,69 +2345,28 @@ values from a string in Common Lisp.")
       (build-system asdf-build-system/sbcl)
       (inputs
        `(("alexandria" ,sbcl-alexandria)
-         ("babel" ,sbcl-babel)))
+         ("babel" ,sbcl-babel)
+         ("iterate" ,sbcl-iterate)
+         ("jpl-queues" ,sbcl-jpl-queues)
+         ("jpl-util" ,sbcl-jpl-util)
+         ("mgl-pax" ,sbcl-mgl-pax)
+         ("parse-float" ,sbcl-parse-float)
+         ("proc-parse" ,sbcl-proc-parse)
+         ("yacc" ,sbcl-cl-yacc)))
+      ;; TODO: Tests are not evaluated properly.
+      (native-inputs
+       ;; For testing:
+       `(("lisp-unit" ,sbcl-lisp-unit)))
       (arguments
-       `(#:asd-file "ascii-strings.asd"))
-      (synopsis "Operations on ASCII strings")
+       `(#:tests? #f))
+      (synopsis "Set of utilities to manipulate strings in Common Lisp")
       (description
-       "Operations on ASCII strings.  Essentially this can be any kind of
-single-byte encoded strings.")
+       "@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/")
       (license license:bsd-3))))
 
-(define-public cl-ascii-strings
-  (sbcl-package->cl-source-package sbcl-ascii-strings))
-
-(define-public ecl-ascii-strings
-  (sbcl-package->ecl-package sbcl-ascii-strings))
-
-(define-public sbcl-simple-scanf
-  (package
-    (inherit sbcl-ascii-strings)
-    (name "sbcl-simple-scanf")
-    (inputs
-     `(("alexandria" ,sbcl-alexandria)
-       ("iterate" ,sbcl-iterate)
-       ("proc-parse" ,sbcl-proc-parse)
-       ("parse-float" ,sbcl-parse-float)))
-    (arguments
-     `(#:asd-file "simple-scanf.asd"))
-    (synopsis "Simple scanf-like functionality implementation")
-    (description
-     "A simple scanf-like functionality implementation.")))
-
-(define-public cl-simple-scanf
-  (sbcl-package->cl-source-package sbcl-simple-scanf))
-
-(define-public ecl-simple-scanf
-  (sbcl-package->ecl-package sbcl-simple-scanf))
-
-(define-public sbcl-cl-string-match
-  (package
-    (inherit sbcl-ascii-strings)
-    (name "sbcl-cl-string-match")
-    (inputs
-     `(("alexandria" ,sbcl-alexandria)
-       ("ascii-strings" ,sbcl-ascii-strings)
-       ("yacc" ,sbcl-cl-yacc)
-       ("jpl-util" ,sbcl-jpl-util)
-       ("jpl-queues" ,sbcl-jpl-queues)
-       ("mgl-pax" ,sbcl-mgl-pax)
-       ("iterate" ,sbcl-iterate)))
-    ;; TODO: Tests are not evaluated properly.
-    (native-inputs
-     ;; For testing:
-     `(("lisp-unit" ,sbcl-lisp-unit)
-       ("simple-scanf" ,sbcl-simple-scanf)))
-    (arguments
-     `(#:tests? #f
-       #:asd-file "cl-string-match.asd"))
-    (synopsis "Portable, dependency-free 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.")))
-
 (define-public cl-string-match
   (sbcl-package->cl-source-package sbcl-cl-string-match))
 
@@ -2402,6 +2433,47 @@ Lisp programs.  It parses URI according to the RFC 2396 specification.")
 (define-public ecl-puri
   (sbcl-package->ecl-package sbcl-puri))
 
+(define-public sbcl-qmynd
+  (let ((commit "7e56daf73f0ed5f49a931c01af75fb874bcf3445")
+        (revision "1"))
+    (package
+      (name "sbcl-qmynd")
+      (version (git-version "1.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/qitab/qmynd")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "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)))
+      (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
+library that directly talks to a MySQL server in its native network protocol.
+
+It's a part of QITAB umbrella project.")
+      (license license:expat))))
+
+(define-public ecl-qmynd
+  (sbcl-package->ecl-package sbcl-qmynd))
+
+(define-public cl-qmynd
+  (sbcl-package->cl-source-package sbcl-qmynd))
+
 (define-public sbcl-queues
   (let ((commit "47d4da65e9ea20953b74aeeab7e89a831b66bc94"))
     (package
@@ -2418,6 +2490,14 @@ Lisp programs.  It parses URI according to the RFC 2396 specification.")
           (base32
            "0wdhfnzi4v6d97pggzj2aw55si94w4327br94jrmyvwf351wqjvv"))))
       (build-system asdf-build-system/sbcl)
+      (inputs
+       `(("bordeaux-threads" ,sbcl-bordeaux-threads)))
+      (arguments
+       '(#:asd-systems '("queues"
+                         "queues.simple-queue"
+                         "queues.simple-cqueue"
+                         "queues.priority-queue"
+                         "queues.priority-cqueue")))
       (home-page "https://github.com/oconnore/queues")
       (synopsis "Common Lisp queue library")
       (description
@@ -2431,94 +2511,10 @@ non-consing thread safe queues and fibonacci priority queues.")
 (define-public ecl-queues
   (sbcl-package->ecl-package sbcl-queues))
 
-(define-public sbcl-queues.simple-queue
-  (package
-    (inherit sbcl-queues)
-    (name "sbcl-queues.simple-queue")
-    (inputs
-     `(("sbcl-queues" ,sbcl-queues)))
-    (arguments
-     `(#:asd-file "queues.simple-queue.asd"))
-    (synopsis "Simple queue implementation")
-    (description
-     "This is a simple queue library for Common Lisp with features such as
-non-consing thread safe queues and fibonacci priority queues.")
-    (license license:expat)))
-
-(define-public cl-queues.simple-queue
-  (sbcl-package->cl-source-package sbcl-queues.simple-queue))
-
-(define-public ecl-queues.simple-queue
-  (sbcl-package->ecl-package sbcl-queues.simple-queue))
-
-(define-public sbcl-queues.simple-cqueue
-  (package
-    (inherit sbcl-queues)
-    (name "sbcl-queues.simple-cqueue")
-    (inputs
-     `(("sbcl-queues" ,sbcl-queues)
-       ("sbcl-queues.simple-queue" ,sbcl-queues.simple-queue)
-       ("bordeaux-threads" ,sbcl-bordeaux-threads)))
-    (arguments
-     `(#:asd-file "queues.simple-cqueue.asd"))
-    (synopsis "Thread safe queue implementation")
-    (description
-     "This is a simple queue library for Common Lisp with features such as
-non-consing thread safe queues and fibonacci priority queues.")
-    (license license:expat)))
-
-(define-public cl-queues.simple-cqueue
-  (sbcl-package->cl-source-package sbcl-queues.simple-cqueue))
-
-(define-public ecl-queues.simple-cqueue
-  (sbcl-package->ecl-package sbcl-queues.simple-cqueue))
-
-(define-public sbcl-queues.priority-queue
-  (package
-    (inherit sbcl-queues)
-    (name "sbcl-queues.priority-queue")
-    (inputs
-     `(("sbcl-queues" ,sbcl-queues)))
-    (arguments
-     `(#:asd-file "queues.priority-queue.asd"))
-    (synopsis "Priority queue (Fibonacci) implementation")
-    (description
-     "This is a simple queue library for Common Lisp with features such as
-non-consing thread safe queues and fibonacci priority queues.")
-    (license license:expat)))
-
-(define-public cl-queues.priority-queue
-  (sbcl-package->cl-source-package sbcl-queues.priority-queue))
-
-(define-public ecl-queues.priority-queue
-  (sbcl-package->ecl-package sbcl-queues.priority-queue))
-
-(define-public sbcl-queues.priority-cqueue
-  (package
-    (inherit sbcl-queues)
-    (name "sbcl-queues.priority-cqueue")
-    (inputs
-     `(("sbcl-queues" ,sbcl-queues)
-       ("sbcl-queues.priority-queue" ,sbcl-queues.priority-queue)
-       ("bordeaux-threads" ,sbcl-bordeaux-threads)))
-    (arguments
-     `(#:asd-file "queues.priority-cqueue.asd"))
-    (synopsis "Thread safe fibonacci priority queue implementation")
-    (description
-     "This is a simple queue library for Common Lisp with features such as
-non-consing thread safe queues and fibonacci priority queues.")
-    (license license:expat)))
-
-(define-public cl-queues.priority-cqueue
-  (sbcl-package->cl-source-package sbcl-queues.priority-cqueue))
-
-(define-public ecl-queues.priority-cqueue
-  (sbcl-package->ecl-package sbcl-queues.priority-cqueue))
-
-(define sbcl-cffi-bootstrap
+(define-public sbcl-cffi
   (package
-    (name "sbcl-cffi-bootstrap")
-    (version "0.21.0")
+    (name "sbcl-cffi")
+    (version "0.23.0")
     (source
      (origin
        (method git-fetch)
@@ -2527,18 +2523,26 @@ non-consing thread safe queues and fibonacci priority queues.")
              (commit (string-append "v" version))))
        (file-name (git-file-name "cffi-bootstrap" version))
        (sha256
-        (base32 "1qalargz9bhp850qv60ffwpdqi4xirzar4l3g6qcg8yc6xqf2cjk"))))
+        (base32 "03s98imc5niwnpj3hhrafl7dmxq45g74h96sm68976k7ahi3vl5b"))))
     (build-system asdf-build-system/sbcl)
     (inputs
-     `(("libffi" ,libffi)
-       ("alexandria" ,sbcl-alexandria)
+     `(("alexandria" ,sbcl-alexandria)
        ("babel" ,sbcl-babel)
+       ("libffi" ,libffi)
        ("trivial-features" ,sbcl-trivial-features)))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     `(("bordeaux-threads" ,sbcl-bordeaux-threads)
+       ("pkg-config" ,pkg-config)
+       ("rt" ,sbcl-rt)))
     (arguments
      '(#:phases
        (modify-phases %standard-phases
+         (add-after 'unpack 'fix-arm-support
+           (lambda _
+             ;; This is apparently deprecated since libffi-3.3.
+             (substitute* "libffi/libffi-types.lisp"
+               (("\\\(\\\(:unix64.*") ")\n"))
+             #t))
          (add-after 'unpack 'fix-paths
            (lambda* (#:key inputs #:allow-other-keys)
              (substitute* "libffi/libffi.lisp"
@@ -2546,9 +2550,21 @@ non-consing thread safe queues and fibonacci priority queues.")
                                      (assoc-ref inputs "libffi")
                                      "/lib/" all)))
              (substitute* "toolchain/c-toolchain.lisp"
-               (("\"cc\"") (format #f "~S" (which "gcc")))))))
-       #:asd-system-name "cffi"
-       #:tests? #f))
+               (("\"cc\"") (format #f "~S" (which "gcc"))))))
+         (add-after 'build 'install-headers
+           (lambda* (#:key outputs #:allow-other-keys)
+             (install-file "grovel/common.h"
+                           (string-append
+                            (assoc-ref outputs "out")
+                            "/include/grovel")))))
+       #:asd-files '("cffi.asd"
+                     "cffi-toolchain.asd"
+                     "cffi-grovel.asd"
+                     "cffi-libffi.asd"
+                     "cffi-uffi-compat.asd")
+       #:asd-systems '("cffi"
+                       "cffi-libffi"
+                       "cffi-uffi-compat")))
     (home-page "https://common-lisp.net/project/cffi/")
     (synopsis "Common Foreign Function Interface for Common Lisp")
     (description "The Common Foreign Function Interface (CFFI)
@@ -2558,120 +2574,56 @@ in the CFFI-SYS package, and a portable frontend in the CFFI
 package.")
     (license license:expat)))
 
-(define-public sbcl-cffi-toolchain
-  (package
-    (inherit sbcl-cffi-bootstrap)
-    (name "sbcl-cffi-toolchain")
-    (inputs
-     `(("libffi" ,libffi)
-       ("sbcl-cffi" ,sbcl-cffi-bootstrap)))
-    (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-cffi-bootstrap)
-       ((#:asd-system-name _) #f)
-       ((#:tests? _) #t)))))
-
-(define-public sbcl-cffi-libffi
-  (package
-    (inherit sbcl-cffi-toolchain)
-    (name "sbcl-cffi-libffi")
-    (inputs
-     `(("cffi" ,sbcl-cffi-bootstrap)
-       ("cffi-grovel" ,sbcl-cffi-grovel)
-       ("trivial-features" ,sbcl-trivial-features)
-       ("libffi" ,libffi)))))
-
-(define-public sbcl-cffi-grovel
-  (package
-    (inherit sbcl-cffi-toolchain)
-    (name "sbcl-cffi-grovel")
-    (inputs
-     `(("libffi" ,libffi)
-       ("cffi" ,sbcl-cffi-bootstrap)
-       ("cffi-toolchain" ,sbcl-cffi-toolchain)
-       ("alexandria" ,sbcl-alexandria)))
-    (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-cffi-toolchain)
-       ((#:phases phases)
-        `(modify-phases ,phases
-           (add-after 'build 'install-headers
-             (lambda* (#:key outputs #:allow-other-keys)
-               (install-file "grovel/common.h"
-                             (string-append
-                              (assoc-ref outputs "out")
-                              "/include/grovel"))))))))))
-
-(define-public sbcl-cffi
-  (package
-    (inherit sbcl-cffi-toolchain)
-    (name "sbcl-cffi")
-    (inputs (package-inputs sbcl-cffi-bootstrap))
-    (native-inputs
-     `(("cffi-grovel" ,sbcl-cffi-grovel)
-       ("cffi-libffi" ,sbcl-cffi-libffi)
-       ("rt" ,sbcl-rt)
-       ("bordeaux-threads" ,sbcl-bordeaux-threads)
-       ,@(package-native-inputs sbcl-cffi-bootstrap)))))
-
 (define-public cl-cffi
   (sbcl-package->cl-source-package sbcl-cffi))
 
-(define-public sbcl-cffi-uffi-compat
-  (package
-    (inherit sbcl-cffi-toolchain)
-    (name "sbcl-cffi-uffi-compat")
-    (native-inputs
-     `(,@(package-inputs sbcl-cffi-bootstrap))) ; For fix-paths phase
-    (inputs
-     `(("cffi" ,sbcl-cffi)))
-    (synopsis "UFFI Compatibility Layer for CFFI")))
-
-(define-public cl-cffi-uffi-compat
-  (sbcl-package->cl-source-package sbcl-cffi-uffi-compat))
+(define-public ecl-cffi
+  (sbcl-package->ecl-package sbcl-cffi))
 
 (define-public sbcl-cl-sqlite
-  (let ((commit "c738e66d4266ef63a1debc4ef4a1b871a068c112"))
-    (package
-      (name "sbcl-cl-sqlite")
-      (version (git-version "0.2" "1" commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/dmitryvk/cl-sqlite")
-               (commit commit)))
-         (file-name (git-file-name "cl-sqlite" version))
-         (sha256
-          (base32
-           "1ng45k1hdb84sqjryrfx93g66bsbybmpy301wd0fdybnc5jzr36q"))))
-      (build-system asdf-build-system/sbcl)
-      (inputs
-       `(("iterate" ,sbcl-iterate)
-         ("cffi" ,sbcl-cffi)
-         ("sqlite" ,sqlite)))
-      (native-inputs
-       `(("fiveam" ,sbcl-fiveam)
-         ("bordeaux-threads" ,sbcl-bordeaux-threads)))
-      (arguments
-       `(#:tests? #f                    ; Upstream seems to have issues with tests: https://github.com/dmitryvk/cl-sqlite/issues/7
-         #:asd-file "sqlite.asd"
-         #:asd-system-name "sqlite"
-         #:phases
-         (modify-phases %standard-phases
-           (add-after 'unpack 'fix-paths
-             (lambda* (#:key inputs #:allow-other-keys)
-               (substitute* "sqlite-ffi.lisp"
-                 (("libsqlite3" all) (string-append
-                                      (assoc-ref inputs "sqlite")"/lib/" all))))))))
-      (home-page "https://common-lisp.net/project/cl-sqlite/")
-      (synopsis "Common Lisp binding for SQLite")
-      (description
-       "The @command{cl-sqlite} package is an interface to the SQLite embedded
+  (package
+    (name "sbcl-cl-sqlite")
+    (version "0.2.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/dmitryvk/cl-sqlite")
+             (commit version)))
+       (file-name (git-file-name "cl-sqlite" version))
+       (sha256
+        (base32
+         "08iv7b4m0hh7qx2cvq4f510nrgdld0vicnvmqsh9w0fgrcgmyg4k"))))
+    (build-system asdf-build-system/sbcl)
+    (inputs
+     `(("iterate" ,sbcl-iterate)
+       ("cffi" ,sbcl-cffi)
+       ("sqlite" ,sqlite)))
+    (native-inputs
+     `(("fiveam" ,sbcl-fiveam)
+       ("bordeaux-threads" ,sbcl-bordeaux-threads)))
+    (arguments
+     `(#:asd-systems '("sqlite")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-paths
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "sqlite-ffi.lisp"
+               (("libsqlite3" all) (string-append
+                                    (assoc-ref inputs "sqlite")"/lib/" all))))))))
+    (home-page "https://common-lisp.net/project/cl-sqlite/")
+    (synopsis "Common Lisp binding for SQLite")
+    (description
+     "The @command{cl-sqlite} package is an interface to the SQLite embedded
 relational database engine.")
-      (license license:public-domain))))
+    (license license:public-domain)))
 
 (define-public cl-sqlite
   (sbcl-package->cl-source-package sbcl-cl-sqlite))
 
+(define-public ecl-cl-sqlite
+  (sbcl-package->ecl-package sbcl-cl-sqlite))
+
 (define-public sbcl-parenscript
   ;; Source archives are overwritten on every release, we use the Git repo instead.
   (let ((commit "7a1ac46353cecd144fc91915ba9f122aafcf4766"))
@@ -2857,11 +2809,11 @@ Lisp implementations.")
 (define-public ecl-closer-mop
   (sbcl-package->ecl-package sbcl-closer-mop))
 
-(define sbcl-cl-cffi-gtk-boot0
-  (let ((commit "412d17214e092220c65a5660f5cbbd9cb69b8fe4"))
+(define-public sbcl-cl-cffi-gtk
+  (let ((commit "e9a46df65995d9a16e6c8dbdc1e09b775eb4a966"))
     (package
-      (name "sbcl-cl-cffi-gtk-boot0")
-      (version (git-version "0.11.2" "1" commit))
+      (name "sbcl-cl-cffi-gtk")
+      (version (git-version "0.11.2" "2" commit))
       (source
        (origin
          (method git-fetch)
@@ -2871,19 +2823,36 @@ Lisp implementations.")
          (file-name (git-file-name "cl-cffi-gtk" version))
          (sha256
           (base32
-           "0n997yhcnzk048nalx8ys62ja2ac8iv4mbn3mb55iapl0321hghn"))))
+           "04vix0gmqsj91lm975sx7jhlnz5gq1xf9jp873mp7c8frc5dk1jj"))))
       (build-system asdf-build-system/sbcl)
+      (native-inputs
+       `(("fiveam" ,sbcl-fiveam)))
       (inputs
-       `(("iterate" ,sbcl-iterate)
+       `(("bordeaux-threads" ,sbcl-bordeaux-threads)
+         ("cairo" ,cairo)
          ("cffi" ,sbcl-cffi)
-         ("trivial-features" ,sbcl-trivial-features)
+         ("closer-mop" ,sbcl-closer-mop)
+         ("gdk-pixbuf" ,gdk-pixbuf)
          ("glib" ,glib)
-         ("cairo" ,cairo)
+         ("gtk" ,gtk+)
+         ("iterate" ,sbcl-iterate)
          ("pango" ,pango)
-         ("gdk-pixbuf" ,gdk-pixbuf)
-         ("gtk" ,gtk+)))
+         ("trivial-features" ,sbcl-trivial-features)
+         ("trivial-garbage" ,sbcl-trivial-garbage)))
       (arguments
-       `(#:phases
+       `(#:asd-files '("gtk/cl-cffi-gtk.asd"
+                       "glib/cl-cffi-gtk-glib.asd"
+                       "gobject/cl-cffi-gtk-gobject.asd"
+                       "gio/cl-cffi-gtk-gio.asd"
+                       "cairo/cl-cffi-gtk-cairo.asd"
+                       "pango/cl-cffi-gtk-pango.asd"
+                       "gdk-pixbuf/cl-cffi-gtk-gdk-pixbuf.asd"
+                       "gdk/cl-cffi-gtk-gdk.asd")
+         #:test-asd-file "test/cl-cffi-gtk-test.asd"
+         ;; TODO: Tests fail with memory fault.
+         ;; See https://github.com/Ferada/cl-cffi-gtk/issues/24.
+         #:tests? #f
+         #:phases
          (modify-phases %standard-phases
            (add-after 'unpack 'fix-paths
              (lambda* (#:key inputs #:allow-other-keys)
@@ -2918,228 +2887,17 @@ Lisp implementations.")
 is a library for creating graphical user interfaces.")
       (license license:lgpl3))))
 
-(define-public sbcl-cl-cffi-gtk-glib
-  (package
-    (inherit sbcl-cl-cffi-gtk-boot0)
-    (name "sbcl-cl-cffi-gtk-glib")
-    (inputs
-     `(("bordeaux-threads" ,sbcl-bordeaux-threads)
-       ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
-    (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-cl-cffi-gtk-boot0)
-       ((#:asd-file _ "") "glib/cl-cffi-gtk-glib.asd")))))
-
-(define-public sbcl-cl-cffi-gtk-gobject
-  (package
-    (inherit sbcl-cl-cffi-gtk-boot0)
-    (name "sbcl-cl-cffi-gtk-gobject")
-    (inputs
-     `(("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
-       ("trivial-garbage" ,sbcl-trivial-garbage)
-       ("bordeaux-threads" ,sbcl-bordeaux-threads)
-       ("closer-mop" ,sbcl-closer-mop)
-       ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
-    (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-cl-cffi-gtk-boot0)
-       ((#:asd-file _ "") "gobject/cl-cffi-gtk-gobject.asd")
-       ((#:phases phases)
-        `(modify-phases ,phases
-           (add-after 'install 'link-source
-             ;; Since source is particularly heavy (16MiB+), let's reuse it
-             ;; across the different components of cl-ffi-gtk.
-             (lambda* (#:key inputs outputs #:allow-other-keys)
-               (let ((glib-source (string-append (assoc-ref inputs "cl-cffi-gtk-glib")
-                                                 "/share/common-lisp/sbcl-source/"
-                                                 "cl-cffi-gtk-glib"))
-                     (out-source (string-append (assoc-ref outputs "out")
-                                                "/share/common-lisp/sbcl-source/"
-                                                "cl-cffi-gtk-gobject")))
-                 (delete-file-recursively out-source)
-                 (symlink glib-source out-source)
-                 #t)))))))))
-
-(define-public sbcl-cl-cffi-gtk-gio
-  (package
-    (inherit sbcl-cl-cffi-gtk-boot0)
-    (name "sbcl-cl-cffi-gtk-gio")
-    (inputs
-     `(("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
-       ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
-       ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
-    (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-cl-cffi-gtk-boot0)
-       ((#:asd-file _ "") "gio/cl-cffi-gtk-gio.asd")
-       ((#:phases phases)
-        `(modify-phases ,phases
-           (add-after 'install 'link-source
-             ;; Since source is particularly heavy (16MiB+), let's reuse it
-             ;; across the different components of cl-ffi-gtk.
-             (lambda* (#:key inputs outputs #:allow-other-keys)
-               (let ((glib-source (string-append (assoc-ref inputs "cl-cffi-gtk-glib")
-                                                 "/share/common-lisp/sbcl-source/"
-                                                 "cl-cffi-gtk-glib"))
-                     (out-source (string-append (assoc-ref outputs "out")
-                                                "/share/common-lisp/sbcl-source/"
-                                                "cl-cffi-gtk-gio")))
-                 (delete-file-recursively out-source)
-                 (symlink glib-source out-source)
-                 #t)))))))))
-
-(define-public sbcl-cl-cffi-gtk-cairo
-  (package
-    (inherit sbcl-cl-cffi-gtk-boot0)
-    (name "sbcl-cl-cffi-gtk-cairo")
-    (inputs
-     `(("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
-       ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
-    (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-cl-cffi-gtk-boot0)
-       ((#:asd-file _ "") "cairo/cl-cffi-gtk-cairo.asd")
-       ((#:phases phases)
-        `(modify-phases ,phases
-           (add-after 'install 'link-source
-             ;; Since source is particularly heavy (16MiB+), let's reuse it
-             ;; across the different components of cl-ffi-gtk.
-             (lambda* (#:key inputs outputs #:allow-other-keys)
-               (let ((glib-source (string-append (assoc-ref inputs "cl-cffi-gtk-glib")
-                                                 "/share/common-lisp/sbcl-source/"
-                                                 "cl-cffi-gtk-glib"))
-                     (out-source (string-append (assoc-ref outputs "out")
-                                                "/share/common-lisp/sbcl-source/"
-                                                "cl-cffi-gtk-cairo")))
-                 (delete-file-recursively out-source)
-                 (symlink glib-source out-source)
-                 #t)))))))))
-
-(define-public sbcl-cl-cffi-gtk-pango
-  (package
-    (inherit sbcl-cl-cffi-gtk-boot0)
-    (name "sbcl-cl-cffi-gtk-pango")
-    (inputs
-     `(("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
-       ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
-       ("cl-cffi-gtk-cairo" ,sbcl-cl-cffi-gtk-cairo)
-       ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
-    (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-cl-cffi-gtk-boot0)
-       ((#:asd-file _ "") "pango/cl-cffi-gtk-pango.asd")
-       ((#:phases phases)
-        `(modify-phases ,phases
-           (add-after 'install 'link-source
-             ;; Since source is particularly heavy (16MiB+), let's reuse it
-             ;; across the different components of cl-ffi-gtk.
-             (lambda* (#:key inputs outputs #:allow-other-keys)
-               (let ((glib-source (string-append (assoc-ref inputs "cl-cffi-gtk-glib")
-                                                 "/share/common-lisp/sbcl-source/"
-                                                 "cl-cffi-gtk-glib"))
-                     (out-source (string-append (assoc-ref outputs "out")
-                                                "/share/common-lisp/sbcl-source/"
-                                                "cl-cffi-gtk-pango")))
-                 (delete-file-recursively out-source)
-                 (symlink glib-source out-source)
-                 #t)))))))))
-
-(define-public sbcl-cl-cffi-gtk-gdk-pixbuf
-  (package
-    (inherit sbcl-cl-cffi-gtk-boot0)
-    (name "sbcl-cl-cffi-gtk-gdk-pixbuf")
-    (inputs
-     `(("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
-       ("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
-       ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
-    (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-cl-cffi-gtk-boot0)
-       ((#:asd-file _ "") "gdk-pixbuf/cl-cffi-gtk-gdk-pixbuf.asd")
-       ((#:phases phases)
-        `(modify-phases ,phases
-           (add-after 'install 'link-source
-             ;; Since source is particularly heavy (16MiB+), let's reuse it
-             ;; across the different components of cl-ffi-gtk.
-             (lambda* (#:key inputs outputs #:allow-other-keys)
-               (let ((glib-source (string-append (assoc-ref inputs "cl-cffi-gtk-glib")
-                                                 "/share/common-lisp/sbcl-source/"
-                                                 "cl-cffi-gtk-glib"))
-                     (out-source (string-append (assoc-ref outputs "out")
-                                                "/share/common-lisp/sbcl-source/"
-                                                "cl-cffi-gtk-gdk-pixbuf")))
-                 (delete-file-recursively out-source)
-                 (symlink glib-source out-source)
-                 #t)))))))))
-
-(define-public sbcl-cl-cffi-gtk-gdk
-  (package
-    (inherit sbcl-cl-cffi-gtk-boot0)
-    (name "sbcl-cl-cffi-gtk-gdk")
-    (inputs
-     `(("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
-       ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
-       ("cl-cffi-gtk-gio" ,sbcl-cl-cffi-gtk-gio)
-       ("cl-cffi-gtk-gdk-pixbuf" ,sbcl-cl-cffi-gtk-gdk-pixbuf)
-       ("cl-cffi-gtk-cairo" ,sbcl-cl-cffi-gtk-cairo)
-       ("cl-cffi-gtk-pango" ,sbcl-cl-cffi-gtk-pango)
-       ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
-    (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-cl-cffi-gtk-boot0)
-       ((#:asd-file _ "") "gdk/cl-cffi-gtk-gdk.asd")
-       ((#:phases phases)
-        `(modify-phases ,phases
-           (add-after 'install 'link-source
-             ;; Since source is particularly heavy (16MiB+), let's reuse it
-             ;; across the different components of cl-ffi-gtk.
-             (lambda* (#:key inputs outputs #:allow-other-keys)
-               (let ((glib-source (string-append (assoc-ref inputs "cl-cffi-gtk-glib")
-                                                 "/share/common-lisp/sbcl-source/"
-                                                 "cl-cffi-gtk-glib"))
-                     (out-source (string-append (assoc-ref outputs "out")
-                                                "/share/common-lisp/sbcl-source/"
-                                                "cl-cffi-gtk-gdk")))
-                 (delete-file-recursively out-source)
-                 (symlink glib-source out-source)
-                 #t)))))))))
-
-(define-public sbcl-cl-cffi-gtk
-  (package
-    (inherit sbcl-cl-cffi-gtk-boot0)
-    (name "sbcl-cl-cffi-gtk")
-    (inputs
-     `(("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
-       ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
-       ("cl-cffi-gtk-gio" ,sbcl-cl-cffi-gtk-gio)
-       ("cl-cffi-gtk-gdk" ,sbcl-cl-cffi-gtk-gdk)
-       ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
-    (native-inputs
-     `(("fiveam" ,sbcl-fiveam)))
-    (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-cl-cffi-gtk-boot0)
-       ((#:asd-file _ "") "gtk/cl-cffi-gtk.asd")
-       ((#:test-asd-file _ "") "test/cl-cffi-gtk-test.asd")
-       ;; TODO: Tests fail with memory fault.
-       ;; See https://github.com/Ferada/cl-cffi-gtk/issues/24.
-       ((#:tests? _ #f) #f)
-       ((#:phases phases)
-        `(modify-phases ,phases
-           (add-after 'install 'link-source
-             ;; Since source is particularly heavy (16MiB+), let's reuse it
-             ;; across the different components of cl-ffi-gtk.
-             (lambda* (#:key inputs outputs #:allow-other-keys)
-               (let ((glib-source (string-append (assoc-ref inputs "cl-cffi-gtk-glib")
-                                                 "/share/common-lisp/sbcl-source/"
-                                                 "cl-cffi-gtk-glib"))
-                     (out-source (string-append (assoc-ref outputs "out")
-                                                "/share/common-lisp/sbcl-source/"
-                                                "cl-cffi-gtk")))
-                 (delete-file-recursively out-source)
-                 (symlink glib-source out-source)
-                 #t)))))))))
-
 (define-public cl-cffi-gtk
   (sbcl-package->cl-source-package sbcl-cl-cffi-gtk))
 
+(define-public ecl-cl-cffi-gtk
+  (sbcl-package->ecl-package sbcl-cl-cffi-gtk))
+
 (define-public sbcl-cl-webkit
-  (let ((commit "6c905a5550b58a5b7602da5a087d7dafc5337122"))
+  (let ((commit "5ce3ea1fbf2b21e7ccb98402a818508ca9b79395"))
     (package
       (name "sbcl-cl-webkit")
-      (version (git-version "2.4" "4" commit))
+      (version (git-version "2.4" "10" commit))
       (source
        (origin
          (method git-fetch)
@@ -3149,15 +2907,14 @@ is a library for creating graphical user interfaces.")
          (file-name (git-file-name "cl-webkit" version))
          (sha256
           (base32
-           "0017ijjflqqbgbj5bf7ffkyw5idhxc0ggly2qh5igf3kz886p9rh"))))
+           "0zgd8hp2nalh0v4xgjvqxd6rf95f7mci181xbg3gmqxxwxd4mkpk"))))
       (build-system asdf-build-system/sbcl)
       (inputs
        `(("cffi" ,sbcl-cffi)
          ("cl-cffi-gtk" ,sbcl-cl-cffi-gtk)
          ("webkitgtk" ,webkitgtk)))
       (arguments
-       `(#:asd-file "webkit2/cl-webkit2.asd"
-         #:asd-system-name "cl-webkit2"
+       `(#:asd-systems '("cl-webkit2")
          #:phases
          (modify-phases %standard-phases
            (add-after 'unpack 'fix-paths
@@ -3178,6 +2935,9 @@ WebKit browsing engine.")
 (define-public cl-webkit
   (sbcl-package->cl-source-package sbcl-cl-webkit))
 
+(define-public ecl-cl-webkit
+  (sbcl-package->ecl-package sbcl-cl-webkit))
+
 (define-public sbcl-lparallel
   (package
     (name "sbcl-lparallel")
@@ -3232,7 +2992,11 @@ Lisp, featuring:
   (sbcl-package->cl-source-package sbcl-lparallel))
 
 (define-public ecl-lparallel
-  (sbcl-package->ecl-package sbcl-lparallel))
+  (package
+    (inherit (sbcl-package->ecl-package sbcl-lparallel))
+    (arguments
+     ;; TODO: Find why the tests get stuck forever; disable them for now.
+     `(#:tests? #f))))
 
 (define-public sbcl-cl-markup
   (let ((commit "e0eb7debf4bdff98d1f49d0f811321a6a637b390"))
@@ -3270,6 +3034,33 @@ Lisp, featuring:
 (define-public ecl-cl-markup
   (sbcl-package->ecl-package sbcl-cl-markup))
 
+(define-public sbcl-cl-mustache
+  (package
+    (name "sbcl-cl-mustache")
+    (version "0.12.1")
+    (source
+     (origin
+      (method git-fetch)
+      (uri (git-reference
+            (url "https://github.com/kanru/cl-mustache")
+            (commit (string-append "v" version))))
+      (file-name (git-file-name "cl-mustache" version))
+      (sha256
+       (base32 "149xbb6wxq1napliwm9cv729hwcgfnjli6y8hingfixz7f10lhks"))))
+    (build-system asdf-build-system/sbcl)
+    (home-page "https://github.com/kanru/cl-mustache")
+    (synopsis "Common Lisp Mustache template renderer")
+    (description "This is a Common Lisp implementation for the Mustache
+template system.  More details on the standard are available at
+@url{https://mustache.github.io}.")
+    (license license:expat)))
+
+(define-public cl-mustache
+  (sbcl-package->cl-source-package sbcl-cl-mustache))
+
+(define-public ecl-cl-mustache
+  (sbcl-package->ecl-package sbcl-cl-mustache))
+
 (define-public sbcl-cl-css
   (let ((commit "8fe654c8f0cf95b300718101cce4feb517f78e2f"))
     (package
@@ -3301,10 +3092,10 @@ portability, and boilerplate reduction in CSS.")
   (sbcl-package->ecl-package sbcl-cl-css))
 
 (define-public sbcl-portable-threads
-  (let ((commit "c0e61a1faeb0583c80fd3f20b16cc4c555226920"))
+  (let ((commit "aa26bf38338a6b068bf8bfb3375d8d8c3b0a28df"))
     (package
       (name "sbcl-portable-threads")
-      (version (git-version "2.3" "1" commit))
+      (version (git-version "2.3" "2" commit))
       (source
        (origin
          (method git-fetch)
@@ -3313,14 +3104,13 @@ portability, and boilerplate reduction in CSS.")
                (commit commit)))
          (file-name (git-file-name "portable-threads" version))
          (sha256
-          (base32
-           "03fmxyarc0xf4kavwkfa0a2spkyfrz6hbgbi9y4q7ny5aykdyfaq"))))
+          (base32 "058ksi07vfdmhrf5mdlc833s82m1rcqfja2266520m3r8bzs8bvs"))))
       (build-system asdf-build-system/sbcl)
       (arguments
        `(;; Tests seem broken.
          #:tests? #f))
       (home-page "https://github.com/binghe/portable-threads")
-      (synopsis "Portable threads (and scheduled and periodic functions) API for Common Lisp")
+      (synopsis "Portable threads API for Common Lisp")
       (description
        "Portable Threads (and Scheduled and Periodic Functions) API for Common
 Lisp (from GBBopen project).")
@@ -3329,14 +3119,12 @@ Lisp (from GBBopen project).")
 (define-public cl-portable-threads
   (sbcl-package->cl-source-package sbcl-portable-threads))
 
-(define-public ecl-portable-threada
+(define-public ecl-portable-threads
   (sbcl-package->ecl-package sbcl-portable-threads))
 
-(define sbcl-usocket-boot0
-  ;; usocket's test rely on usocket-server which depends on usocket itself.
-  ;; We break this cyclic dependency with -boot0 that packages usocket.
+(define-public sbcl-usocket
   (package
-    (name "sbcl-usocket-boot0")
+    (name "sbcl-usocket")
     (version "0.8.3")
     (source
      (origin
@@ -3349,48 +3137,23 @@ Lisp (from GBBopen project).")
         (base32
          "0x746wr2324l6bn7skqzgkzcbj5kd0zp2ck0c8rldrw0rzabg826"))))
     (build-system asdf-build-system/sbcl)
+    (native-inputs
+     `(("rt" ,sbcl-rt)))
     (inputs
-     `(("split-sequence" ,sbcl-split-sequence)))
+     `(("bordeaux-threads" ,sbcl-bordeaux-threads)
+       ("split-sequence" ,sbcl-split-sequence)))
     (arguments
-     `(#:tests? #f
-       #:asd-system-name "usocket"))
+     `(#:tests? #f ; FIXME: Tests need network access?
+       #:asd-systems '("usocket"
+                       "usocket-server")))
     (home-page "https://common-lisp.net/project/usocket/")
-    (synopsis "Universal socket library for Common Lisp (server side)")
+    (synopsis "Universal socket library for Common Lisp")
     (description
      "This library strives to provide a portable TCP/IP and UDP/IP socket
 interface for as many Common Lisp implementations as possible, while keeping
 the abstraction and portability layer as thin as possible.")
     (license license:expat)))
 
-(define-public sbcl-usocket-server
-  (package
-    (inherit sbcl-usocket-boot0)
-    (name "sbcl-usocket-server")
-    (inputs
-     `(("bordeaux-threads" ,sbcl-bordeaux-threads)
-       ("usocket" ,sbcl-usocket-boot0)))
-    (arguments
-     '(#:asd-system-name "usocket-server"))
-    (synopsis "Universal socket library for Common Lisp (server side)")))
-
-(define-public cl-usocket-server
-  (sbcl-package->cl-source-package sbcl-usocket-server))
-
-(define-public ecl-socket-server
-  (sbcl-package->ecl-package sbcl-usocket-server))
-
-(define-public sbcl-usocket
-  (package
-    (inherit sbcl-usocket-boot0)
-    (name "sbcl-usocket")
-    (arguments
-     ;; FIXME: Tests need network access?
-     `(#:tests? #f))
-    (native-inputs
-     ;; Testing only.
-     `(("usocket-server" ,sbcl-usocket-server)
-       ("rt" ,sbcl-rt)))))
-
 (define-public cl-usocket
   (sbcl-package->cl-source-package sbcl-usocket))
 
@@ -3473,10 +3236,10 @@ client and server.")
   (sbcl-package->ecl-package sbcl-s-xml-rpc))
 
 (define-public sbcl-trivial-clipboard
-  (let ((commit "5af3415d1484e6d69a1b5c178f24680d9fd01796"))
+  (let ((commit "afcd3743b842f5a81fc86dba60f9db59970f49c5"))
     (package
       (name "sbcl-trivial-clipboard")
-      (version (git-version "0.0.0.0" "2" commit))
+      (version (git-version "0.0.0.0" "3" commit))
       (source
        (origin
          (method git-fetch)
@@ -3486,7 +3249,7 @@ client and server.")
          (file-name (git-file-name "trivial-clipboard" version))
          (sha256
           (base32
-           "1gb515z5yq6h5548pb1fwhmb0hhq1ssyb78pvxh4alq799xipxs9"))))
+           "1qfbvkzmvkbqpc5s3sx31c5653sy6qlcixafgzd10qpykb843prr"))))
       (build-system asdf-build-system/sbcl)
       (inputs
        `(("xclip" ,xclip)))
@@ -3539,7 +3302,7 @@ client and server.")
             (lambda* (#:key outputs #:allow-other-keys)
               (let ((test-results (string-append (assoc-ref outputs "out")
                                                  "/share/common-lisp/"
-                                                 (%lisp-type) "-source"
+                                                 (%lisp-type)
                                                  "/trivial-backtrace"
                                                  "/test-results")))
                 (when (file-exists? test-results)
@@ -3559,6 +3322,9 @@ backtrace portably.")
 (define-public cl-trivial-backtrace
   (sbcl-package->cl-source-package sbcl-trivial-backtrace))
 
+(define-public ecl-trivial-backtrace
+  (sbcl-package->ecl-package sbcl-trivial-backtrace))
+
 (define-public sbcl-rfc2388
   (let ((commit "591bcf7e77f2c222c43953a80f8c297751dc0c4e")
         (revision "1"))
@@ -3586,6 +3352,9 @@ process form data posted with HTTP POST method using enctype
 (define-public cl-rfc2388
   (sbcl-package->cl-source-package sbcl-rfc2388))
 
+(define-public ecl-rfc2388
+  (sbcl-package->ecl-package sbcl-rfc2388))
+
 (define-public sbcl-md5
   (package
     (name "sbcl-md5")
@@ -3611,6 +3380,12 @@ RFC 1321 by R. Rivest, published April 1992.")
 (define-public cl-md5
   (sbcl-package->cl-source-package sbcl-md5))
 
+(define-public ecl-md5
+  (package
+    (inherit (sbcl-package->ecl-package sbcl-md5))
+    (inputs
+     `(("flexi-streams" ,ecl-flexi-streams)))))
+
 (define-public sbcl-cl+ssl
   (let ((commit "701e645081e6533a3f0f0b3ac86389d6f506c4b5")
         (revision "1"))
@@ -3656,9 +3431,12 @@ Development into CL+SSL was done by David Lichteblau.")
 (define-public cl-cl+ssl
   (sbcl-package->cl-source-package sbcl-cl+ssl))
 
+(define-public ecl-cl+ssl
+  (sbcl-package->ecl-package sbcl-cl+ssl))
+
 (define-public sbcl-kmrcl
-  (let ((version "1.109.0")
-        (commit "5260068b2eb735af6796740c2db4955afac21636")
+  (let ((version "1.111")
+        (commit "4a27407aad9deb607ffb8847630cde3d041ea25a")
         (revision "1"))
     (package
       (name "sbcl-kmrcl")
@@ -3671,57 +3449,58 @@ Development into CL+SSL was done by David Lichteblau.")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
-          (base32 "1va7xjgzfv674bpsli674i7zj3f7wg5kxic41kz18r6hh4n52dfv"))))
+          (base32 "06gx04mah5nc8w78s0j8628divbf1s5w7af8w7pvzb2d5mgvrbd2"))))
       (build-system asdf-build-system/sbcl)
-      (arguments
-       ;; Tests fail with: :FORCE and :FORCE-NOT arguments not allowed in a
-       ;; nested call to ASDF/OPERATE:OPERATE unless identically to toplevel
-       '(#:tests? #f))
       (inputs
        `(("sbcl-rt" ,sbcl-rt)))
       (home-page "http://files.kpe.io/kmrcl/")
       (synopsis "General utilities for Common Lisp programs")
       (description
        "KMRCL is a collection of utilities used by a number of Kevin
-Rosenberg's CL packages.")
+Rosenberg's Common Lisp packages.")
       (license license:llgpl))))
 
 (define-public cl-kmrcl
   (sbcl-package->cl-source-package sbcl-kmrcl))
 
+(define-public ecl-kmrcl
+  (sbcl-package->ecl-package sbcl-kmrcl))
+
 (define-public sbcl-cl-base64
-  (package
-    (name "sbcl-cl-base64")
-    (version "3.3.4")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (string-append "http://files.kpe.io/cl-base64/cl-base64-"
-                           version ".tar.gz"))
-       (sha256
-        (base32 "0pl4zwn5bf18dm8fh1kn1yshaa6kpmfrjyb33z9mq4raqmj3xpv2"))))
-    (build-system asdf-build-system/sbcl)
-    (arguments
-     ;; Tests fail with: :FORCE and :FORCE-NOT arguments not allowed
-     ;; in a nested call to ASDF/OPERATE:OPERATE unless identically
-     ;; to toplevel
-     '(#:tests? #f))
-    (inputs
-     `(("sbcl-ptester" ,sbcl-ptester)
-       ("sbcl-kmrcl" ,sbcl-kmrcl)))
-    (home-page "http://files.kpe.io/cl-base64/")
-    (synopsis
-     "Common Lisp package to encode and decode base64 with URI support")
-    (description
-     "This package provides highly optimized base64 encoding and decoding.
+  ;; 3.3.4 tests are broken, upstream fixes them.
+  (let ((commit "577683b18fd880b82274d99fc96a18a710e3987a"))
+    (package
+      (name "sbcl-cl-base64")
+      (version (git-version "3.3.4" "1" commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "http://git.kpe.io/cl-base64.git/")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "12jj54h0fs6n237cvnp8v6hn0imfksammq22ys6pi0gwz2w47rbj"))))
+      (build-system asdf-build-system/sbcl)
+      (native-inputs                    ; For tests.
+       `(("sbcl-ptester" ,sbcl-ptester)
+         ("sbcl-kmrcl" ,sbcl-kmrcl)))
+      (home-page "http://files.kpe.io/cl-base64/")
+      (synopsis
+       "Common Lisp package to encode and decode base64 with URI support")
+      (description
+       "This package provides highly optimized base64 encoding and decoding.
 Besides conversion to and from strings, integer conversions are supported.
 Encoding with Uniform Resource Identifiers is supported by using a modified
 encoding table that uses only URI-compatible characters.")
-    (license license:bsd-3)))
+      (license license:bsd-3))))
 
 (define-public cl-base64
   (sbcl-package->cl-source-package sbcl-cl-base64))
 
+(define-public ecl-cl-base64
+  (sbcl-package->ecl-package sbcl-cl-base64))
+
 (define-public sbcl-chunga
   (package
     (name "sbcl-chunga")
@@ -3748,6 +3527,9 @@ defined in RFC 2616.")
 (define-public cl-chunga
   (sbcl-package->cl-source-package sbcl-chunga))
 
+(define-public ecl-chunga
+  (sbcl-package->ecl-package sbcl-chunga))
+
 (define-public sbcl-cl-who
   (let ((version "1.1.4")
         (commit "2c08caa4bafba720409af9171feeba3f32e86d32")
@@ -3777,9 +3559,12 @@ WHO means \"with-html-output\" for want of a better acronym) is probably just
 as good or bad as the next one.")
       (license license:bsd-2))))
 
-(define-public cl-cl-who
+(define-public cl-who
   (sbcl-package->cl-source-package sbcl-cl-who))
 
+(define-public ecl-cl-who
+  (sbcl-package->ecl-package sbcl-cl-who))
+
 (define-public sbcl-chipz
   (let ((version "0.8")
         (commit "75dfbc660a5a28161c57f115adf74c8a926bfc4d")
@@ -3815,6 +3600,9 @@ the format used by the popular compression tool bzip2.")
 (define-public cl-chipz
   (sbcl-package->cl-source-package sbcl-chipz))
 
+(define-public ecl-chipz
+  (sbcl-package->ecl-package sbcl-chipz))
+
 (define-public sbcl-drakma
   (package
     (name "sbcl-drakma")
@@ -3895,6 +3683,13 @@ connections (keep-alive), and SSL.")
 (define-public cl-hunchentoot
   (sbcl-package->cl-source-package sbcl-hunchentoot))
 
+(define-public ecl-hunchentoot
+  (package
+    (inherit (sbcl-package->ecl-package sbcl-hunchentoot))
+    (arguments
+     ;; Tests fail on ECL with 'Socket error in "socket": EINVAL'.
+     '(#:tests? #f))))
+
 (define-public sbcl-trivial-types
   (package
     (name "sbcl-trivial-types")
@@ -3919,33 +3714,8 @@ PROPER-LIST, ASSOCIATION-LIST, PROPERTY-LIST and TUPLE.")
 (define-public cl-trivial-types
   (sbcl-package->cl-source-package sbcl-trivial-types))
 
-(define-public sbcl-cl-syntax
-  (package
-    (name "sbcl-cl-syntax")
-    (version "0.0.3")
-    (source
-     (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/m2ym/cl-syntax")
-             (commit "03f0c329bbd55b8622c37161e6278366525e2ccc")))
-       (file-name (git-file-name "cl-syntax" version))
-       (sha256
-        (base32 "17ran8xp77asagl31xv8w819wafh6whwfc9p6dgx22ca537gyl4y"))))
-    (build-system asdf-build-system/sbcl)
-    (arguments
-     '(#:asd-file "cl-syntax.asd"
-       #:asd-system-name "cl-syntax"))
-    (inputs `(("sbcl-trivial-types" ,sbcl-trivial-types)
-              ("sbcl-named-readtables" ,sbcl-named-readtables)))
-    (home-page "https://github.com/m2ym/cl-syntax")
-    (synopsis "Reader Syntax Coventions for Common Lisp and SLIME")
-    (description
-     "CL-SYNTAX provides Reader Syntax Coventions for Common Lisp and SLIME.")
-    (license license:llgpl)))
-
-(define-public cl-syntax
-  (sbcl-package->cl-source-package sbcl-cl-syntax))
+(define-public ecl-trivial-types
+  (sbcl-package->ecl-package sbcl-trivial-types))
 
 (define-public sbcl-cl-annot
   (let ((commit "c99e69c15d935eabc671b483349a406e0da9518d")
@@ -3963,9 +3733,6 @@ PROPER-LIST, ASSOCIATION-LIST, PROPERTY-LIST and TUPLE.")
          (sha256
           (base32 "1wq1gs9jjd5m6iwrv06c2d7i5dvqsfjcljgbspfbc93cg5xahk4n"))))
       (build-system asdf-build-system/sbcl)
-    (arguments
-     '(#:asd-file "cl-annot.asd"
-       #:asd-system-name "cl-annot"))
       (inputs
        `(("sbcl-alexandria" ,sbcl-alexandria)))
       (home-page "https://github.com/m2ym/cl-annot")
@@ -3977,41 +3744,43 @@ PROPER-LIST, ASSOCIATION-LIST, PROPERTY-LIST and TUPLE.")
 (define-public cl-annot
   (sbcl-package->cl-source-package sbcl-cl-annot))
 
-(define-public sbcl-cl-syntax-annot
-  (package
-    (inherit sbcl-cl-syntax)
-    (name "sbcl-cl-syntax-annot")
-    (arguments
-     '(#:asd-file "cl-syntax-annot.asd"
-       #:asd-system-name "cl-syntax-annot"))
-    (inputs
-     `(("sbcl-cl-syntax" ,sbcl-cl-syntax)
-       ("sbcl-cl-annot" ,sbcl-cl-annot)))
-    (synopsis "Common Lisp reader Syntax for cl-annot")
-    (description
-     "CL-SYNTAX provides reader syntax coventions for Common Lisp and
-@code{cl-annot}.")))
-
-(define-public cl-syntax-annot
-  (sbcl-package->cl-source-package sbcl-cl-syntax-annot))
+(define-public ecl-cl-annot
+  (sbcl-package->ecl-package sbcl-cl-annot))
 
-(define-public sbcl-cl-syntax-interpol
+(define-public sbcl-cl-syntax
   (package
-    (inherit sbcl-cl-syntax)
-    (name "sbcl-cl-syntax-interpol")
-    (arguments
-     '(#:asd-file "cl-syntax-interpol.asd"
-       #:asd-system-name "cl-syntax-interpol"))
+    (name "sbcl-cl-syntax")
+    (version "0.0.3")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/m2ym/cl-syntax")
+             (commit "03f0c329bbd55b8622c37161e6278366525e2ccc")))
+       (file-name (git-file-name "cl-syntax" version))
+       (sha256
+        (base32 "17ran8xp77asagl31xv8w819wafh6whwfc9p6dgx22ca537gyl4y"))))
+    (build-system asdf-build-system/sbcl)
     (inputs
-     `(("sbcl-cl-syntax" ,sbcl-cl-syntax)
-       ("sbcl-cl-interpol" ,sbcl-cl-interpol)))
-    (synopsis "Common Lisp reader Syntax for cl-interpol")
+     `(("cl-annot" ,sbcl-cl-annot)
+       ("cl-interpol" ,sbcl-cl-interpol)
+       ("named-readtables" ,sbcl-named-readtables)
+       ("trivial-types" ,sbcl-trivial-types)))
+    (arguments
+     '(#:asd-systems '("cl-syntax"
+                       "cl-syntax-annot"
+                       "cl-syntax-interpol")))
+    (home-page "https://github.com/m2ym/cl-syntax")
+    (synopsis "Reader Syntax Coventions for Common Lisp and SLIME")
     (description
-     "CL-SYNTAX provides reader syntax coventions for Common Lisp and
-@code{cl-interpol}.")))
+     "CL-SYNTAX provides Reader Syntax Coventions for Common Lisp and SLIME.")
+    (license license:llgpl)))
 
-(define-public cl-syntax-interpol
-  (sbcl-package->cl-source-package sbcl-cl-syntax-interpol))
+(define-public cl-syntax
+  (sbcl-package->cl-source-package sbcl-cl-syntax))
+
+(define-public ecl-cl-syntax
+  (sbcl-package->ecl-package sbcl-cl-syntax))
 
 (define-public sbcl-cl-utilities
   (let ((commit "dce2d2f6387091ea90357a130fa6d13a6776884b")
@@ -4030,9 +3799,7 @@ PROPER-LIST, ASSOCIATION-LIST, PROPERTY-LIST and TUPLE.")
           (base32 "1r46v730yf96nk2vb24qmagv9x96xvd08abqwhf02ghgydv1a7z2"))))
       (build-system asdf-build-system/sbcl)
       (arguments
-       '(#:asd-file "cl-utilities.asd"
-         #:asd-system-name "cl-utilities"
-         #:phases
+       '(#:phases
          (modify-phases %standard-phases
            (add-after 'unpack 'fix-paths
              (lambda* (#:key inputs #:allow-other-keys)
@@ -4055,6 +3822,9 @@ everywhere some dumb user might make a mistake.")
 (define-public cl-utilities
   (sbcl-package->cl-source-package sbcl-cl-utilities))
 
+(define-public ecl-cl-utilities
+  (sbcl-package->ecl-package sbcl-cl-utilities))
+
 (define-public sbcl-map-set
   (let ((commit "7b4b545b68b8")
         (revision "1"))
@@ -4080,6 +3850,9 @@ addition, removal, and random selection.")
 (define-public cl-map-set
   (sbcl-package->cl-source-package sbcl-map-set))
 
+(define-public ecl-map-set
+  (sbcl-package->ecl-package sbcl-map-set))
+
 (define-public sbcl-quri
   (let ((commit "b53231c5f19446dd7c24b15a249fefa45ae94f9a")
         (revision "2"))
@@ -4100,8 +3873,7 @@ addition, removal, and random selection.")
        ;; Tests fail with: Component QURI-ASD::QURI-TEST not found,
        ;; required by #<SYSTEM "quri">. Why?
        '(#:tests? #f))
-      (native-inputs `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
-                       ("sbcl-prove" ,sbcl-prove)))
+      (native-inputs `(("sbcl-prove" ,sbcl-prove)))
       (inputs `(("sbcl-babel" ,sbcl-babel)
                 ("sbcl-split-sequence" ,sbcl-split-sequence)
                 ("sbcl-cl-utilities" ,sbcl-cl-utilities)
@@ -4116,6 +3888,9 @@ Lisp. It is intended to be a replacement of PURI.")
 (define-public cl-quri
   (sbcl-package->cl-source-package sbcl-quri))
 
+(define-public ecl-quri
+  (sbcl-package->ecl-package sbcl-quri))
+
 (define-public sbcl-myway
   (let ((commit "286230082a11f879c18b93f17ca571c5f676bfb7")
         (revision "1"))
@@ -4137,8 +3912,7 @@ Lisp. It is intended to be a replacement of PURI.")
       ;; by #<SYSTEM "myway">. Why?
       '(#:tests? #f))
      (native-inputs
-      `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
-        ("sbcl-prove" ,sbcl-prove)))
+      `(("sbcl-prove" ,sbcl-prove)))
      (inputs
       `(("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
         ("sbcl-quri" ,sbcl-quri)
@@ -4151,6 +3925,9 @@ Lisp. It is intended to be a replacement of PURI.")
 (define-public cl-myway
   (sbcl-package->cl-source-package sbcl-myway))
 
+(define-public ecl-myway
+  (sbcl-package->ecl-package sbcl-myway))
+
 (define-public sbcl-xsubseq
   (let ((commit "5ce430b3da5cda3a73b9cf5cee4df2843034422b")
         (revision "1"))
@@ -4172,8 +3949,7 @@ Lisp. It is intended to be a replacement of PURI.")
       ;; required by #<SYSTEM "xsubseq">. Why?
       '(#:tests? #f))
      (native-inputs
-      `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
-        ("sbcl-prove" ,sbcl-prove)))
+      `(("sbcl-prove" ,sbcl-prove)))
      (home-page "https://github.com/fukamachi/xsubseq")
      (synopsis "Efficient way to use \"subseq\"s in Common Lisp")
      (description
@@ -4184,6 +3960,9 @@ effieiently.")
 (define-public cl-xsubseq
   (sbcl-package->cl-source-package sbcl-xsubseq))
 
+(define-public ecl-xsubseq
+  (sbcl-package->ecl-package sbcl-xsubseq))
+
 (define-public sbcl-smart-buffer
   (let ((commit "09b9a9a0b3abaa37abe9a730f5aac2643dca4e62")
         (revision "1"))
@@ -4205,8 +3984,7 @@ effieiently.")
        ;; found, required by #<SYSTEM "smart-buffer">. Why?
        `(#:tests? #f))
       (native-inputs
-       `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
-         ("sbcl-prove" ,sbcl-prove)))
+       `(("sbcl-prove" ,sbcl-prove)))
       (inputs
        `(("sbcl-xsubseq" ,sbcl-xsubseq)
          ("sbcl-flexi-streams" ,sbcl-flexi-streams)))
@@ -4220,6 +3998,9 @@ depending on content size.")
 (define-public cl-smart-buffer
   (sbcl-package->cl-source-package sbcl-smart-buffer))
 
+(define-public ecl-smart-buffer
+  (sbcl-package->ecl-package sbcl-smart-buffer))
+
 (define-public sbcl-fast-http
   (let ((commit "502a37715dcb8544cc8528b78143a942de662c5a")
         (revision "2"))
@@ -4241,9 +4022,8 @@ depending on content size.")
        ;; required by #<SYSTEM "fast-http">. Why?
        `(#:tests? #f))
       (native-inputs
-       `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
-         ("sbcl-prove" ,sbcl-prove)
-         ("cl-syntax-interpol" ,sbcl-cl-syntax-interpol)))
+       `(("sbcl-prove" ,sbcl-prove)
+         ("cl-syntax" ,sbcl-cl-syntax)))
       (inputs
        `(("sbcl-alexandria" ,sbcl-alexandria)
          ("sbcl-proc-parse" ,sbcl-proc-parse)
@@ -4261,6 +4041,9 @@ Lisp.")
 (define-public cl-fast-http
   (sbcl-package->cl-source-package sbcl-fast-http))
 
+(define-public ecl-fast-http
+  (sbcl-package->ecl-package sbcl-fast-http))
+
 (define-public sbcl-static-vectors
   (package
     (name "sbcl-static-vectors")
@@ -4277,8 +4060,7 @@ Lisp.")
     (native-inputs
      `(("sbcl-fiveam" ,sbcl-fiveam)))
     (inputs
-     `(("sbcl-cffi-grovel" ,sbcl-cffi-grovel)
-       ("sbcl-cffi" ,sbcl-cffi)))
+     `(("sbcl-cffi" ,sbcl-cffi)))
     (build-system asdf-build-system/sbcl)
     (home-page "https://github.com/sionescu/static-vectors")
     (synopsis "Allocate SIMPLE-ARRAYs in static memory")
@@ -4320,6 +4102,9 @@ Only minimal changes required to make your CLOS objects serializable.")
 (define-public cl-marshal
   (sbcl-package->cl-source-package sbcl-marshal))
 
+(define-public ecl-marshal
+  (sbcl-package->ecl-package sbcl-marshal))
+
 (define-public sbcl-checkl
   (let ((commit "80328800d047fef9b6e32dfe6bdc98396aee3cc9")
         (revision "1"))
@@ -4340,7 +4125,8 @@ Only minimal changes required to make your CLOS objects serializable.")
        ;; Error while trying to load definition for system checkl-test from
        ;; pathname [...]/checkl-test.asd: The function CHECKL:DEFINE-TEST-OP
        ;; is undefined.
-       '(#:tests? #f))
+       '(#:asd-files '("checkl.asd")
+         #:tests? #f))
       (native-inputs
        `(("sbcl-fiveam" ,sbcl-fiveam)))
       (inputs
@@ -4358,6 +4144,9 @@ against the last run.")
 (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"))
@@ -4378,7 +4167,8 @@ against the last run.")
       ;; Error while trying to load definition for system fast-io-test from
       ;; pathname [...]/fast-io-test.asd: The function CHECKL:DEFINE-TEST-OP
       ;; is undefined.
-      '(#:tests? #f))
+      '(#:tests? #f
+        #:asd-files '("fast-io.asd")))
      (native-inputs
       `(("sbcl-fiveam" ,sbcl-fiveam)
         ("sbcl-checkl" ,sbcl-checkl)))
@@ -4397,6 +4187,9 @@ streams (though primarily the former, while wrapping the latter).")
 (define-public cl-fast-io
   (sbcl-package->cl-source-package sbcl-fast-io))
 
+(define-public ecl-fast-io
+  (sbcl-package->ecl-package sbcl-fast-io))
+
 (define-public sbcl-jonathan
   (let ((commit "1f448b4f7ac8265e56e1c02b32ce383e65316300")
         (revision "1"))
@@ -4418,11 +4211,9 @@ streams (though primarily the former, while wrapping the latter).")
       ;; required by #<SYSTEM "jonathan">. Why?
       `(#:tests? #f))
      (native-inputs
-      `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
-        ("sbcl-prove" ,sbcl-prove)))
+      `(("sbcl-prove" ,sbcl-prove)))
      (inputs
       `(("sbcl-cl-syntax" ,sbcl-cl-syntax)
-        ("sbcl-cl-syntax-annot" ,sbcl-cl-syntax-annot)
         ("sbcl-fast-io" ,sbcl-fast-io)
         ("sbcl-proc-parse" ,sbcl-proc-parse)
         ("sbcl-cl-ppcre" ,sbcl-cl-ppcre)))
@@ -4437,6 +4228,9 @@ CCL.")
 (define-public cl-jonathan
   (sbcl-package->cl-source-package sbcl-jonathan))
 
+(define-public ecl-jonathan
+  (sbcl-package->ecl-package sbcl-jonathan))
+
 (define-public sbcl-http-body
   (let ((commit "dd01dc4f5842e3d29728552e5163acce8386eb73")
         (revision "1"))
@@ -4458,8 +4252,7 @@ CCL.")
       ;; found, required by #<SYSTEM "http-body">. Why?
       `(#:tests? #f))
      (native-inputs
-      `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
-        ("sbcl-prove" ,sbcl-prove)))
+      `(("sbcl-prove" ,sbcl-prove)))
      (inputs
       `(("sbcl-fast-http" ,sbcl-fast-http)
         ("sbcl-jonathan" ,sbcl-jonathan)
@@ -4475,6 +4268,9 @@ multipart/form-data.")
 (define-public cl-http-body
   (sbcl-package->cl-source-package sbcl-http-body))
 
+(define-public ecl-http-body
+  (sbcl-package->ecl-package sbcl-http-body))
+
 (define-public sbcl-circular-streams
   (let ((commit "e770bade1919c5e8533dd2078c93c3d3bbeb38df")
         (revision "1"))
@@ -4509,50 +4305,63 @@ reset to 0 and you're able to read it again.")
 (define-public cl-circular-streams
   (sbcl-package->cl-source-package sbcl-circular-streams))
 
-(define-public sbcl-lack-request
+(define-public ecl-circular-streams
+  (sbcl-package->ecl-package sbcl-circular-streams))
+
+(define-public sbcl-lack
   (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
         (revision "1"))
     (package
-     (name "sbcl-lack-request")
-     (version (git-version "0.1.0" revision commit))
-     (source
-      (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/fukamachi/lack")
-             (commit commit)))
-       (file-name (git-file-name "lack-request" version))
-       (sha256
-        (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
-     (build-system asdf-build-system/sbcl)
-     (arguments
-      '(#:asd-file "lack-request.asd"
-        #:asd-system-name "lack-request"
-        #:test-asd-file "t-lack-request.asd"
-        ;; XXX: Component :CLACK-TEST not found
-        #:tests? #f))
-     (native-inputs
-      `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
-        ("sbcl-prove" ,sbcl-prove)))
-     (inputs
-      `(("sbcl-quri" ,sbcl-quri)
-        ("sbcl-http-body" ,sbcl-http-body)
-        ("sbcl-circular-streams" ,sbcl-circular-streams)))
-     (home-page "https://github.com/fukamachi/lack")
-     (synopsis "Lack, the core of Clack")
-     (description
-      "Lack is a Common Lisp library which allows web applications to be
+      (name "sbcl-lack")
+      (version (git-version "0.1.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/fukamachi/lack")
+               (commit commit)))
+         (file-name (git-file-name "lack" version))
+         (sha256
+          (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
+      (build-system asdf-build-system/sbcl)
+      (native-inputs
+       `(("prove" ,sbcl-prove)))
+      (inputs
+       `(("circular-streams" ,sbcl-circular-streams)
+         ("http-body" ,sbcl-http-body)
+         ("ironclad" ,sbcl-ironclad)
+         ("local-time" ,sbcl-local-time)
+         ("quri" ,sbcl-quri)
+         ("trivial-mimes" ,sbcl-trivial-mimes)))
+      (arguments
+       '(#:asd-systems '("lack"
+                         "lack-request"
+                         "lack-response"
+                         "lack-component"
+                         "lack-util"
+                         "lack-middleware-backtrace"
+                         "lack-middleware-static")
+         #:test-asd-file "t-lack.asd"
+         ;; XXX: Component :CLACK not found
+         #:tests? #f))
+      (home-page "https://github.com/fukamachi/lack")
+      (synopsis "Lack, the core of Clack")
+      (description
+       "Lack is a Common Lisp library which allows web applications to be
 constructed of modular components.  It was originally a part of Clack, however
 it's going to be rewritten as an individual project since Clack v2 with
 performance and simplicity in mind.")
-     (license license:llgpl))))
+      (license license:llgpl))))
 
-(define-public cl-lack-request
-  (sbcl-package->cl-source-package sbcl-lack-request))
+(define-public cl-lack
+  (sbcl-package->cl-source-package sbcl-lack))
+
+(define-public ecl-lack
+  (sbcl-package->ecl-package sbcl-lack))
 
 (define-public sbcl-local-time
-  (let ((commit "62792705245168d3fc2e04164b9a143477284142")
-        (revision "1"))
+  (let ((commit "a177eb911c0e8116e2bfceb79049265a884b701b")
+        (revision "2"))
     (package
      (name "sbcl-local-time")
      (version (git-version "1.0.6" revision commit))
@@ -4564,16 +4373,10 @@ performance and simplicity in mind.")
              (commit commit)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1r5zq4l1lrgprdr2pw7wwry194yknnllyjf6lx7snypb3k4r3yir"))))
+        (base32 "0wld28xx20k0ysgg6akic5lg4vkjd0iyhv86m388xfrv8xh87wii"))))
      (build-system asdf-build-system/sbcl)
-     (arguments
-      ;; TODO: Component :STEFIL not found, required by #<SYSTEM
-      ;; "local-time/test">
-      '(#:tests? #f))
      (native-inputs
-      `(("stefil" ,sbcl-hu.dwim.stefil)))
-     (inputs
-      `(("sbcl-cl-fad" ,sbcl-cl-fad)))
+      `(("hu.dwim.stefil" ,sbcl-hu.dwim.stefil)))
      (home-page "https://common-lisp.net/project/local-time/")
      (synopsis "Time manipulation library for Common Lisp")
      (description
@@ -4585,160 +4388,12 @@ Long Painful History of Time\".")
 (define-public cl-local-time
   (sbcl-package->cl-source-package sbcl-local-time))
 
-(define-public sbcl-lack-response
-  (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
-        (revision "1"))
-    (package
-     (name "sbcl-lack-response")
-     (version (git-version "0.1.0" revision commit))
-     (source
-      (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/fukamachi/lack")
-             (commit commit)))
-       (file-name (git-file-name name version))
-       (sha256
-        (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
-     (build-system asdf-build-system/sbcl)
-     (arguments
-      '(#:asd-file "lack-response.asd"
-        #:asd-system-name "lack-response"
-        ;; XXX: no tests for lack-response.
-        #:tests? #f))
-     (native-inputs
-      `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
-        ("sbcl-prove" ,sbcl-prove)))
-     (inputs
-      `(("sbcl-quri" ,sbcl-quri)
-        ("sbcl-http-body" ,sbcl-http-body)
-        ("sbcl-circular-streams" ,sbcl-circular-streams)
-        ("sbcl-local-time" ,sbcl-local-time)))
-     (home-page "https://github.com/fukamachi/lack")
-     (synopsis "Lack, the core of Clack")
-     (description
-      "Lack is a Common Lisp library which allows web applications to be
-constructed of modular components.  It was originally a part of Clack, however
-it's going to be rewritten as an individual project since Clack v2 with
-performance and simplicity in mind.")
-     (license license:llgpl))))
-
-(define-public cl-lack-response
-  (sbcl-package->cl-source-package sbcl-lack-response))
-
-(define-public sbcl-lack-component
-  (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
-        (revision "1"))
-    (package
-     (name "sbcl-lack-component")
-     (version (git-version "0.0.0" revision commit))
-     (source
-      (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/fukamachi/lack")
-             (commit commit)))
-       (file-name (git-file-name "lack-component" version))
-       (sha256
-        (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
-     (build-system asdf-build-system/sbcl)
-     (arguments
-      '(#:asd-file "lack-component.asd"
-        #:asd-system-name "lack-component"
-        #:test-asd-file "t-lack-component.asd"
-        ;; XXX: Component :LACK-TEST not found
-        #:tests? #f))
-     (native-inputs
-      `(("prove-asdf" ,sbcl-prove-asdf)))
-     (home-page "https://github.com/fukamachi/lack")
-     (synopsis "Lack, the core of Clack")
-     (description
-      "Lack is a Common Lisp library which allows web applications to be
-constructed of modular components.  It was originally a part of Clack, however
-it's going to be rewritten as an individual project since Clack v2 with
-performance and simplicity in mind.")
-     (license license:llgpl))))
-
-(define-public cl-lack-component
-  (sbcl-package->cl-source-package sbcl-lack-component))
-
-(define-public sbcl-lack-util
-  (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
-        (revision "1"))
-    (package
-     (name "sbcl-lack-util")
-     (version (git-version "0.1.0" revision commit))
-     (source
-      (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/fukamachi/lack")
-             (commit commit)))
-       (file-name (git-file-name "lack-util" version))
-       (sha256
-        (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
-     (build-system asdf-build-system/sbcl)
-     (arguments
-      '(#:asd-file "lack-util.asd"
-        #:asd-system-name "lack-util"
-        #:test-asd-file "t-lack-util.asd"
-        ;; XXX: Component :LACK-TEST not found
-        #:tests? #f))
-     (native-inputs
-      `(("prove-asdf" ,sbcl-prove-asdf)))
-     (inputs
-      `(("sbcl-ironclad" ,sbcl-ironclad)))
-     (home-page "https://github.com/fukamachi/lack")
-     (synopsis "Lack, the core of Clack")
-     (description
-      "Lack is a Common Lisp library which allows web applications to be
-constructed of modular components.  It was originally a part of Clack, however
-it's going to be rewritten as an individual project since Clack v2 with
-performance and simplicity in mind.")
-     (license license:llgpl))))
-
-(define-public cl-lack-util
-  (sbcl-package->cl-source-package sbcl-lack-util))
-
-(define-public sbcl-lack-middleware-backtrace
-  (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
-        (revision "1"))
-    (package
-     (name "sbcl-lack-middleware-backtrace")
-     (version (git-version "0.1.0" revision commit))
-     (source
-      (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/fukamachi/lack")
-             (commit commit)))
-       (file-name (git-file-name "lack-middleware-backtrace" version))
-       (sha256
-        (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
-     (build-system asdf-build-system/sbcl)
-     (arguments
-      '(#:asd-file "lack-middleware-backtrace.asd"
-        #:asd-system-name "lack-middleware-backtrace"
-        #:test-asd-file "t-lack-middleware-backtrace.asd"
-        ;; XXX: Component :LACK not found
-        #:tests? #f))
-     (native-inputs
-      `(("prove-asdf" ,sbcl-prove-asdf)))
-     (home-page "https://github.com/fukamachi/lack")
-     (synopsis "Lack, the core of Clack")
-     (description
-      "Lack is a Common Lisp library which allows web applications to be
-constructed of modular components.  It was originally a part of Clack, however
-it's going to be rewritten as an individual project since Clack v2 with
-performance and simplicity in mind.")
-     (license license:llgpl))))
-
-(define-public cl-lack-middleware-backtrace
-  (sbcl-package->cl-source-package sbcl-lack-middleware-backtrace))
+(define-public ecl-local-time
+  (sbcl-package->ecl-package sbcl-local-time))
 
 (define-public sbcl-trivial-mimes
-  (let ((commit "303f8ac0aa6ca0bc139aa3c34822e623c3723fab")
-        (revision "1"))
+  (let ((commit "a741fc2f567a4f86b853fd4677d75e62c03e51d9")
+        (revision "2"))
     (package
       (name "sbcl-trivial-mimes")
       (version (git-version "1.1.0" revision commit))
@@ -4750,22 +4405,8 @@ performance and simplicity in mind.")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
-          (base32 "17jxgl47r695bvsb7wi3n2ws5rp1zzgvw0zii8cy5ggw4b4ayv6m"))))
+          (base32 "00kcm17q5plpzdj1qwg83ldhxksilgpcdkf3m9azxcdr968xs9di"))))
       (build-system asdf-build-system/sbcl)
-      (arguments
-       '(#:phases
-         (modify-phases %standard-phases
-           (add-after
-               'unpack 'fix-paths
-             (lambda* (#:key inputs #:allow-other-keys)
-               (let ((anchor "#p\"/etc/mime.types\""))
-                 (substitute* "mime-types.lisp"
-                   ((anchor all)
-                    (string-append
-                     anchor "\n"
-                     "(asdf:system-relative-pathname :trivial-mimes "
-                     "\"../../share/common-lisp/" (%lisp-type)
-                     "-source/trivial-mimes/mime.types\")")))))))))
       (native-inputs
        `(("stefil" ,sbcl-hu.dwim.stefil)))
       (inputs
@@ -4775,7 +4416,7 @@ performance and simplicity in mind.")
       (description
        "This is a teensy library that provides some functions to determine the
 mime-type of a file.")
-      (license license:artistic2.0))))
+      (license license:zlib))))
 
 (define-public cl-trivial-mimes
   (sbcl-package->cl-source-package sbcl-trivial-mimes))
@@ -4783,83 +4424,6 @@ mime-type of a file.")
 (define-public ecl-trivial-mimes
   (sbcl-package->ecl-package sbcl-trivial-mimes))
 
-(define-public sbcl-lack-middleware-static
-  (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
-        (revision "1"))
-    (package
-     (name "sbcl-lack-middleware-static")
-     (version (git-version "0.1.0" revision commit))
-     (source
-      (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/fukamachi/lack")
-             (commit commit)))
-       (file-name (git-file-name "lack-middleware-static" version))
-       (sha256
-        (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
-     (build-system asdf-build-system/sbcl)
-     (arguments
-      '(#:asd-file "lack-middleware-static.asd"
-        #:asd-system-name "lack-middleware-static"
-        #:test-asd-file "t-lack-middleware-static.asd"
-        ;; XXX: Component :LACK not found
-        #:tests? #f))
-     (native-inputs
-      `(("prove-asdf" ,sbcl-prove-asdf)))
-     (inputs
-      `(("sbcl-ironclad" ,sbcl-ironclad)
-        ("sbcl-trivial-mimes" ,sbcl-trivial-mimes)
-        ("sbcl-local-time" ,sbcl-local-time)))
-     (home-page "https://github.com/fukamachi/lack")
-     (synopsis "Lack, the core of Clack")
-     (description
-      "Lack is a Common Lisp library which allows web applications to be
-constructed of modular components.  It was originally a part of Clack, however
-it's going to be rewritten as an individual project since Clack v2 with
-performance and simplicity in mind.")
-     (license license:llgpl))))
-
-(define-public cl-lack-middleware-static
-  (sbcl-package->cl-source-package sbcl-lack-middleware-static))
-
-(define-public sbcl-lack
-  (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
-        (revision "1"))
-    (package
-     (name "sbcl-lack")
-     (version (git-version "0.1.0" revision commit))
-     (source
-      (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/fukamachi/lack")
-             (commit commit)))
-       (file-name (git-file-name "lack" version))
-       (sha256
-        (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
-     (build-system asdf-build-system/sbcl)
-     (arguments
-      '(#:test-asd-file "t-lack.asd"
-        ;; XXX: Component :CLACK not found
-        #:tests? #f))
-     (native-inputs
-      `(("prove-asdf" ,sbcl-prove-asdf)))
-     (inputs
-      `(("sbcl-lack-component" ,sbcl-lack-component)
-        ("sbcl-lack-util" ,sbcl-lack-util)))
-     (home-page "https://github.com/fukamachi/lack")
-     (synopsis "Lack, the core of Clack")
-     (description
-      "Lack is a Common Lisp library which allows web applications to be
-constructed of modular components.  It was originally a part of Clack, however
-it's going to be rewritten as an individual project since Clack v2 with
-performance and simplicity in mind.")
-     (license license:llgpl))))
-
-(define-public cl-lack
-  (sbcl-package->cl-source-package sbcl-lack))
-
 (define-public sbcl-ningle
   (let ((commit "50bd4f09b5a03a7249bd4d78265d6451563b25ad")
         (revision "1"))
@@ -4903,15 +4467,11 @@ performance and simplicity in mind.")
                  fasl-files)
                #t)))))
       (native-inputs
-       `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
-         ("sbcl-prove" ,sbcl-prove)))
+       `(("sbcl-prove" ,sbcl-prove)))
       (inputs
        `(("sbcl-cl-syntax" ,sbcl-cl-syntax)
-         ("sbcl-cl-syntax-annot" ,sbcl-cl-syntax-annot)
          ("sbcl-myway" ,sbcl-myway)
-         ("sbcl-lack-request" ,sbcl-lack-request)
-         ("sbcl-lack-response" ,sbcl-lack-response)
-         ("sbcl-lack-component" ,sbcl-lack-component)
+         ("sbcl-lack" ,sbcl-lack)
          ("sbcl-alexandria" ,sbcl-alexandria)
          ("sbcl-babel" ,sbcl-babel)))
       (home-page "https://8arrow.org/ningle/")
@@ -4923,35 +4483,130 @@ performance and simplicity in mind.")
 (define-public cl-ningle
   (sbcl-package->cl-source-package sbcl-ningle))
 
+(define-public ecl-ningle
+  (sbcl-package->ecl-package sbcl-ningle))
+
+(define-public sbcl-cl-fastcgi
+  (let ((commit "de8b49b26de9863996ec18db28af8ab7e8ac4e20")
+        (revision "2"))
+    (package
+      (name "sbcl-cl-fastcgi")
+      (version (git-version "0.2" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/KDr2/cl-fastcgi/")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0xgmhx766q4nmrvn5z7ag3ikpr9phlh8ypi8b14azshq9lqbq0m7"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       `(("usocket" ,sbcl-usocket)
+         ("cffi" ,sbcl-cffi)
+         ("fcgi" ,fcgi)))
+      (arguments
+       `(#:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'fix-paths
+             (lambda* (#:key inputs #:allow-other-keys)
+               (substitute* "cl-fastcgi.lisp"
+                 (("\"libfcgi.so\"")
+                  (string-append
+                   "\""
+                   (assoc-ref inputs "fcgi") "/lib/libfcgi.so\""))))))))
+      (home-page "https://kdr2.com/project/cl-fastcgi.html")
+      (synopsis "FastCGI wrapper for Common Lisp")
+      (description
+       "CL-FastCGI is a generic version of SB-FastCGI, targeting to run on
+mostly Common Lisp implementation.")
+      (license license:bsd-2))))
+
+(define-public cl-fastcgi
+  (sbcl-package->cl-source-package sbcl-cl-fastcgi))
+
+(define-public ecl-cl-fastcgi
+  (sbcl-package->ecl-package sbcl-cl-fastcgi))
+
 (define-public sbcl-clack
   (let ((commit "e3e032843bb1220ab96263c411aa7f2feb4746e0")
         (revision "1"))
     (package
-     (name "sbcl-clack")
-     (version (git-version "2.0.0" revision commit))
+      (name "sbcl-clack")
+      (version (git-version "2.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/fukamachi/clack")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1ymzs6qyrwhlj6cgqsnpyn6g5cbp7a3s1vgxwna20y2q7y4iacy0"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       `(("alexandria" ,sbcl-alexandria)
+         ("bordeaux-threads" ,sbcl-bordeaux-threads)
+         ("cl-fastcgi" ,sbcl-cl-fastcgi)
+         ("flexi-streams" ,sbcl-flexi-streams)
+         ("hunchentoot" ,sbcl-hunchentoot)
+         ("lack" ,sbcl-lack)
+         ("split-sequence" ,sbcl-split-sequence)
+         ("usocket" ,sbcl-usocket)
+         ("quri" ,sbcl-quri)))
+      (arguments
+       '(#:asd-systems '("clack"
+                         "clack-handler-fcgi"
+                         "clack-socket"
+                         "clack-handler-hunchentoot")))
+      (home-page "https://github.com/fukamachi/clack")
+      (synopsis "Web Application Environment for Common Lisp")
+      (description
+       "Clack is a web application environment for Common Lisp inspired by
+Python's WSGI and Ruby's Rack.")
+      (license license:llgpl))))
+
+(define-public cl-clack
+  (sbcl-package->cl-source-package sbcl-clack))
+
+(define-public ecl-clack
+  (sbcl-package->ecl-package sbcl-clack))
+
+(define-public sbcl-cl-log
+  (let ((commit "8f4b766d51e02245c310526cf1e4534ce634f837")
+        (revision "1"))
+    (package
+     (name "sbcl-cl-log")
+     (version "1.0.1")
      (source
       (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://github.com/fukamachi/clack")
+             (url "https://github.com/nicklevine/cl-log")
              (commit commit)))
-       (file-name (git-file-name name version))
        (sha256
-        (base32 "1ymzs6qyrwhlj6cgqsnpyn6g5cbp7a3s1vgxwna20y2q7y4iacy0"))))
+        (base32 "1r3z9swy1b59swvaa5b97is9ysrfmjvjjhhw56p7p5hqg93b92ak"))
+       (file-name (git-file-name "cl-log" version))))
      (build-system asdf-build-system/sbcl)
-     (inputs
-      `(("sbcl-lack" ,sbcl-lack)
-        ("sbcl-lack-middleware-backtrace" ,sbcl-lack-middleware-backtrace)
-        ("sbcl-bordeaux-threads" ,sbcl-bordeaux-threads)))
-     (home-page "https://github.com/fukamachi/clack")
-     (synopsis "Web Application Environment for Common Lisp")
-     (description
-      "Clack is a web application environment for Common Lisp inspired by
-Python's WSGI and Ruby's Rack.")
-     (license license:llgpl))))
+     (synopsis "Common Lisp general purpose logging utility")
+     (description "CL-LOG is a general purpose logging utility, loosely modelled
+in some respects after Gary King's Log5.  Its features include: logging to
+several destinations at once, via \"messengers\", each messenger is tailored to
+accept some log messages and reject others, and this tailoring can be changed
+on-the-fly, very rapid processing of messages which are rejected by all
+messengers, fully independent use of the utility by several different
+sub-systems in an application, support for messengers which cl:format text to a
+stream, support for messengers which do not invoke cl:format, timestamps in
+theory accurate to internal-time-units-per-second.")
+     (home-page "https://github.com/nicklevine/cl-log")
+     (license license:expat))))
 
-(define-public cl-clack
-  (sbcl-package->cl-source-package sbcl-clack))
+(define-public cl-log
+  (sbcl-package->cl-source-package sbcl-cl-log))
+
+(define-public ecl-cl-log
+  (sbcl-package->ecl-package sbcl-cl-log))
 
 (define-public sbcl-log4cl
   (let ((commit "611e094458504b938d49de904eab141285328c7c")
@@ -5131,8 +4786,7 @@ the CFFI approach used by burgled-batteries, but has the same goal.")
           (base32 "03g5qks4c59nmxa48pbslxkfh77h8hn8566jddp6m9pl15dzzpxd"))))
       (build-system asdf-build-system/sbcl)
       (arguments
-       `(#:asd-file "parse-declarations-1.0.asd"
-         #:asd-system-name "parse-declarations-1.0"))
+       `(#:asd-systems '("parse-declarations-1.0")))
       (home-page "https://common-lisp.net/project/parse-declarations/")
       (synopsis "Parse, filter, and build declarations")
       (description
@@ -5176,7 +4830,7 @@ high-level way.  This library provides such operators.")
       ;; MIT
       (license license:expat))))
 
-(define-public cl-cl-quickcheck
+(define-public cl-quickcheck
   (sbcl-package->cl-source-package sbcl-cl-quickcheck))
 
 (define-public ecl-cl-quickcheck
@@ -5230,7 +4884,6 @@ high-level way.  This library provides such operators.")
       (inputs
        `(("python" ,python)
          ("sbcl-cffi" ,sbcl-cffi)
-         ("sbcl-cffi-grovel" ,sbcl-cffi-grovel)
          ("sbcl-alexandria" , sbcl-alexandria)
          ("sbcl-parse-declarations-1.0" ,sbcl-parse-declarations)
          ("sbcl-trivial-garbage" ,sbcl-trivial-garbage)))
@@ -5341,8 +4994,7 @@ basic everyday functions and macros.")
       (arguments
        ;; Guix incorrectly assumes the "8" is part of the version
        ;; number and lobs it off.
-       `(#:asd-file "trivial-utf-8.asd"
-         #:asd-system-name "trivial-utf-8"))
+       `(#:asd-systems '("trivial-utf-8")))
       (build-system asdf-build-system/sbcl)
       (synopsis "UTF-8 input/output library")
       (description
@@ -5421,13 +5073,12 @@ formats.")
 (define-public ecl-swap-bytes
   (sbcl-package->ecl-package sbcl-swap-bytes))
 
-(define-public sbcl-iolib.asdf
+(define-public sbcl-iolib
   ;; Latest release is from June 2017.
   (let ((commit "7f5ea3a8457a29d224b24653c2b3657fb1898021")
         (revision "2"))
     (package
-      (name "sbcl-iolib.asdf")
-      (build-system asdf-build-system/sbcl)
+      (name "sbcl-iolib")
       (version (git-version "0.8.3" revision commit))
       (home-page "https://github.com/sionescu/iolib")
       (source
@@ -5440,135 +5091,41 @@ formats.")
          (sha256
           (base32
            "1bg5w7lm61hqk4b0svmri8a590q36z76jfa0sdgzb39r98c04w12"))))
+      (build-system asdf-build-system/sbcl)
       (inputs
-       `(("alexandria" ,sbcl-alexandria)))
+       `(("alexandria" ,sbcl-alexandria)
+         ("bordeaux-threads" ,sbcl-bordeaux-threads)
+         ("cffi" ,sbcl-cffi)
+         ("idna" ,sbcl-idna)
+         ("libfixposix" ,libfixposix)
+         ("split-sequence" ,sbcl-split-sequence)
+         ("swap-bytes" ,sbcl-swap-bytes)))
       (arguments
-       '(#:asd-file "iolib.asdf.asd"))
-      (synopsis "ASDF component classes for IOLib, a Common Lisp I/O library")
+       '(#:asd-files '("iolib.asdf.asd"
+                       "iolib.conf.asd"
+                       "iolib.common-lisp.asd"
+                       "iolib.base.asd"
+                       "iolib.asd")
+         #:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'fix-paths
+             (lambda* (#:key inputs #:allow-other-keys)
+               (substitute* "src/syscalls/ffi-functions-unix.lisp"
+                 (("\\(:default \"libfixposix\"\\)")
+                  (string-append
+                   "(:default \""
+                   (assoc-ref inputs "libfixposix") "/lib/libfixposix\")")))
+               ;; Socket tests need Internet access, disable them.
+               (substitute* "iolib.asd"
+                 (("\\(:file \"sockets\" :depends-on \\(\"pkgdcl\" \"defsuites\"\\)\\)")
+                  "")))))))
+      (synopsis "Common Lisp I/O library")
       (description "IOlib is to be a better and more modern I/O library than
 the standard Common Lisp library.  It contains a socket library, a DNS
 resolver, an I/O multiplexer(which supports @code{select(2)}, @code{epoll(4)}
 and @code{kqueue(2)}), a pathname library and file-system utilities.")
       (license license:expat))))
 
-(define-public sbcl-iolib.conf
-  (package
-    (inherit sbcl-iolib.asdf)
-    (name "sbcl-iolib.conf")
-    (inputs
-     `(("iolib.asdf" ,sbcl-iolib.asdf)))
-    (arguments
-     '(#:asd-file "iolib.conf.asd"))
-    (synopsis "Compile-time configuration for IOLib, a Common Lisp I/O library")))
-
-(define-public sbcl-iolib.common-lisp
-  (package
-    (inherit sbcl-iolib.asdf)
-    (name "sbcl-iolib.common-lisp")
-    (inputs
-     `(("iolib.asdf" ,sbcl-iolib.asdf)
-       ("iolib.conf" ,sbcl-iolib.conf)))
-    (arguments
-     '(#:asd-file "iolib.common-lisp.asd"))
-    (synopsis "Slightly modified Common Lisp for IOLib, a Common Lisp I/O library")))
-
-(define-public sbcl-iolib.base
-  (package
-    (inherit sbcl-iolib.asdf)
-    (name "sbcl-iolib.base")
-    (inputs
-     `(("iolib.asdf" ,sbcl-iolib.asdf)
-       ("iolib.conf" ,sbcl-iolib.conf)
-       ("iolib.common-lisp" ,sbcl-iolib.common-lisp)
-       ("split-sequence" ,sbcl-split-sequence)))
-    (arguments
-     '(#:asd-file "iolib.base.asd"))
-    (synopsis "Base package for IOLib, a Common Lisp I/O library")))
-
-(define-public sbcl-iolib.grovel
-  (deprecated-package "sbcl-iolib.grovel" sbcl-cffi-grovel))
-
-(define sbcl-iolib+syscalls
-  (package
-    (inherit sbcl-iolib.asdf)
-    (name "sbcl-iolib+syscalls")
-    (inputs
-     `(("iolib.asdf" ,sbcl-iolib.asdf)
-       ("iolib.conf" ,sbcl-iolib.conf)
-       ("cffi-grovel" ,sbcl-cffi-grovel)
-       ("iolib.base" ,sbcl-iolib.base)
-       ("bordeaux-threads" ,sbcl-bordeaux-threads)
-       ("idna" ,sbcl-idna)
-       ("swap-bytes" ,sbcl-swap-bytes)
-       ("libfixposix" ,libfixposix)
-       ("cffi" ,sbcl-cffi)))
-    (native-inputs
-     `(("fiveam" ,sbcl-fiveam)))
-    (arguments
-     '(#:asd-file "iolib.asd"
-       #:asd-system-name "iolib/syscalls"
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'fix-paths
-           (lambda* (#:key inputs #:allow-other-keys)
-             (substitute* "src/syscalls/ffi-functions-unix.lisp"
-               (("\\(:default \"libfixposix\"\\)")
-                (string-append
-                 "(:default \""
-                 (assoc-ref inputs "libfixposix") "/lib/libfixposix\")")))
-             ;; Socket tests need Internet access, disable them.
-             (substitute* "iolib.asd"
-               (("\\(:file \"sockets\" :depends-on \\(\"pkgdcl\" \"defsuites\"\\)\\)")
-                "")))))))
-    (synopsis "Common Lisp I/O library")))
-
-(define sbcl-iolib+multiplex
-  (package
-    (inherit sbcl-iolib+syscalls)
-    (name "sbcl-iolib+multiplex")
-    (inputs
-     `(("iolib+syscalls" ,sbcl-iolib+syscalls)
-       ,@(package-inputs sbcl-iolib+syscalls)))
-    (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-iolib+syscalls)
-       ((#:asd-system-name _) "iolib/multiplex")))))
-
-(define sbcl-iolib+streams
-  (package
-    (inherit sbcl-iolib+syscalls)
-    (name "sbcl-iolib+streams")
-    (inputs
-     `(("iolib+multiplex" ,sbcl-iolib+multiplex)
-       ,@(package-inputs sbcl-iolib+syscalls)))
-    (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-iolib+syscalls)
-       ((#:asd-system-name _) "iolib/streams")))))
-
-(define sbcl-iolib+sockets
-  (package
-    (inherit sbcl-iolib+syscalls)
-    (name "sbcl-iolib+sockets")
-    (inputs
-     `(("iolib+syscalls" ,sbcl-iolib+syscalls)
-       ("iolib+streams" ,sbcl-iolib+streams)
-       ,@(package-inputs sbcl-iolib+syscalls)))
-    (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-iolib+syscalls)
-       ((#:asd-system-name _) "iolib/sockets")))))
-
-(define-public sbcl-iolib
-  (package
-    (inherit sbcl-iolib+syscalls)
-    (name "sbcl-iolib")
-    (inputs
-     `(("iolib+multiplex" ,sbcl-iolib+multiplex)
-       ("iolib+streams" ,sbcl-iolib+streams)
-       ("iolib+sockets" ,sbcl-iolib+sockets)
-       ,@(package-inputs sbcl-iolib+syscalls)))
-    (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-iolib+syscalls)
-       ((#:asd-system-name _) "iolib")))))
-
 (define-public cl-iolib
   (let ((parent (sbcl-package->cl-source-package sbcl-iolib)))
     (package
@@ -5578,6 +5135,9 @@ and @code{kqueue(2)}), a pathname library and file-system utilities.")
        `(("libfixposix" ,libfixposix)
          ,@(package-propagated-inputs parent))))))
 
+(define-public ecl-iolib
+  (sbcl-package->ecl-package sbcl-iolib))
+
 (define-public sbcl-ieee-floats
   (let ((commit "566b51a005e81ff618554b9b2f0b795d3b29398d")
         (revision "1"))
@@ -5606,6 +5166,9 @@ floating point values to IEEE 754 binary representation.")
 (define-public cl-ieee-floats
   (sbcl-package->cl-source-package sbcl-ieee-floats))
 
+(define-public ecl-ieee-floats
+  (sbcl-package->ecl-package sbcl-ieee-floats))
+
 (define sbcl-closure-common
   (let ((commit "e3c5f5f454b72b01b89115e581c3c52a7e201e5c")
         (revision "1"))
@@ -5633,14 +5196,12 @@ Closure is a reference to the web browser it was originally written for.")
       ;; TODO: License?
       (license #f))))
 
-(define-public sbcl-cxml+xml
+(define-public sbcl-cxml
   (let ((commit "00b22bf4c4cf11c993d5866fae284f95ab18e6bf")
         (revision "1"))
     (package
-      (name "sbcl-cxml+xml")
-      (build-system asdf-build-system/sbcl)
+      (name "sbcl-cxml")
       (version (git-version "0.0.0" revision commit))
-      (home-page "https://common-lisp.net/project/cxml/")
       (source
        (origin
          (method git-fetch)
@@ -5651,81 +5212,24 @@ Closure is a reference to the web browser it was originally written for.")
          (sha256
           (base32
            "13kif7rf3gqdycsk9zq0d7y0g9y81krkl0z87k0p2fkbjfgrph37"))))
-      (inputs
-       `(("closure-common" ,sbcl-closure-common)
-         ("puri" ,sbcl-puri)
-         ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
-      (arguments
-       `(#:asd-file "cxml.asd"
-         #:asd-system-name "cxml/xml"))
-      (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
-offered, one SAX-like, the other similar to StAX.")
-      (license license:llgpl))))
-
-(define sbcl-cxml+dom
-  (package
-    (inherit sbcl-cxml+xml)
-    (name "sbcl-cxml+dom")
-    (inputs
-     `(("closure-common" ,sbcl-closure-common)
-       ("puri" ,sbcl-puri)
-       ("cxml+xml" ,sbcl-cxml+xml)))
-    (arguments
-     `(#:asd-file "cxml.asd"
-       #:asd-system-name "cxml/dom"))))
-
-(define sbcl-cxml+klacks
-  (package
-    (inherit sbcl-cxml+xml)
-    (name "sbcl-cxml+klacks")
-    (inputs
-     `(("closure-common" ,sbcl-closure-common)
-       ("puri" ,sbcl-puri)
-       ("cxml+xml" ,sbcl-cxml+xml)))
-    (arguments
-     `(#:asd-file "cxml.asd"
-       #:asd-system-name "cxml/klacks"))))
-
-(define sbcl-cxml+test
-  (package
-    (inherit sbcl-cxml+xml)
-    (name "sbcl-cxml+test")
-    (inputs
-     `(("closure-common" ,sbcl-closure-common)
-       ("puri" ,sbcl-puri)
-       ("cxml+xml" ,sbcl-cxml+xml)))
-    (arguments
-     `(#:asd-file "cxml.asd"
-       #:asd-system-name "cxml/test"))))
-
-(define-public sbcl-cxml
-  (package
-    (inherit sbcl-cxml+xml)
-    (name "sbcl-cxml")
+      (build-system asdf-build-system/sbcl)
     (inputs
      `(("closure-common" ,sbcl-closure-common)
        ("puri" ,sbcl-puri)
-       ("trivial-gray-streams" ,sbcl-trivial-gray-streams)
-       ("cxml+dom" ,sbcl-cxml+dom)
-       ("cxml+klacks" ,sbcl-cxml+klacks)
-       ("cxml+test" ,sbcl-cxml+test)))
-    (arguments
-     `(#:asd-file "cxml.asd"
-       #:asd-system-name "cxml"
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'build 'install-dtd
-           (lambda* (#:key outputs #:allow-other-keys)
-             (install-file "catalog.dtd"
-                           (string-append
-                            (assoc-ref outputs "out")
-                            "/lib/" (%lisp-type))))))))))
+       ("trivial-gray-streams" ,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
+offered, one SAX-like, the other similar to StAX.")
+    (home-page "https://common-lisp.net/project/cxml/")
+    (license license:llgpl))))
 
 (define-public cl-cxml
   (sbcl-package->cl-source-package sbcl-cxml))
 
+(define-public ecl-cxml
+  (sbcl-package->ecl-package sbcl-cxml))
+
 (define-public sbcl-cl-reexport
   (let ((commit "312f3661bbe187b5f28536cd7ec2956e91366c3b")
         (revision "1"))
@@ -5757,6 +5261,9 @@ cookie headers, cookie creation, cookie jar creation and more.")
 (define-public cl-reexport
   (sbcl-package->cl-source-package sbcl-cl-reexport))
 
+(define-public ecl-cl-reexport
+  (sbcl-package->ecl-package sbcl-cl-reexport))
+
 (define-public sbcl-cl-cookie
   (let ((commit "cea55aed8b9ad25fafd13defbcb9fe8f41b29546")
         (revision "1"))
@@ -5782,8 +5289,7 @@ cookie headers, cookie creation, cookie jar creation and more.")
          ("cl-ppcre" ,sbcl-cl-ppcre)
          ("local-time" ,sbcl-local-time)))
       (native-inputs
-       `(("prove-asdf" ,sbcl-prove-asdf)
-         ("prove" ,sbcl-prove)))
+       `(("prove" ,sbcl-prove)))
       (arguments
        ;; TODO: Tests fail because cl-cookie depends on cl-cookie-test.
        `(#:tests? #f))
@@ -5795,6 +5301,9 @@ cookie headers, cookie creation, cookie jar creation and more.")
 (define-public cl-cookie
   (sbcl-package->cl-source-package sbcl-cl-cookie))
 
+(define-public ecl-cl-cookie
+  (sbcl-package->ecl-package sbcl-cl-cookie))
+
 (define-public sbcl-dexador
   (let ((commit "953090f04c4d1a9ee6632b90133cdc297b68badc")
         (revision "1"))
@@ -5832,8 +5341,7 @@ cookie headers, cookie creation, cookie jar creation and more.")
          ("alexandria" ,sbcl-alexandria)))
       (native-inputs
        `(("prove" ,sbcl-prove)
-         ("prove-asdf" ,sbcl-prove-asdf)
-         ("lack-request" ,sbcl-lack-request)
+         ("lack" ,sbcl-lack)
          ("clack" ,sbcl-clack)
          ("babel" ,sbcl-babel)
          ("alexandria" ,sbcl-alexandria)
@@ -5902,6 +5410,9 @@ This library offers macros to deal with symbols from any namespace.")
 (define-public cl-lisp-namespace
   (sbcl-package->cl-source-package sbcl-lisp-namespace))
 
+(define-public ecl-lisp-namespace
+  (sbcl-package->ecl-package sbcl-lisp-namespace))
+
 (define-public sbcl-trivial-cltl2
   (let ((commit "8a3bda30dc25d2f65fcf514d0eb6e6db75252c61")
         (revision "2"))
@@ -5930,6 +5441,9 @@ and it exports symbols from implementation-specific packages.")
 (define-public cl-trivial-cltl2
   (sbcl-package->cl-source-package sbcl-trivial-cltl2))
 
+(define-public ecl-trivial-cltl2
+  (sbcl-package->ecl-package sbcl-trivial-cltl2))
+
 (define-public sbcl-introspect-environment
   (let ((commit "fff42f8f8fd0d99db5ad6c5812e53de7d660020b")
         (revision "1"))
@@ -5974,6 +5488,9 @@ can and/or provide reasonable defaults.")
 (define-public cl-introspect-environment
   (sbcl-package->cl-source-package sbcl-introspect-environment))
 
+(define-public ecl-introspect-environment
+  (sbcl-package->ecl-package sbcl-introspect-environment))
+
 (define-public sbcl-type-i
   (let ((commit "d34440ab4ebf5a46a58deccb35950b15670e3667")
         (revision "2"))
@@ -6009,6 +5526,13 @@ the return type of a function.")
 (define-public cl-type-i
   (sbcl-package->cl-source-package sbcl-type-i))
 
+(define-public ecl-type-i
+  (package
+    (inherit (sbcl-package->ecl-package sbcl-type-i))
+    (arguments
+     ;; The tests get stuck indefinitly
+     '(#:tests? #f))))
+
 (define-public sbcl-optima
   (let ((commit "373b245b928c1a5cce91a6cb5bfe5dd77eb36195")
         (revision "1"))
@@ -6044,6 +5568,9 @@ optimizing techniques widely used in the functional programming world.")
 (define-public cl-optima
   (sbcl-package->cl-source-package sbcl-optima))
 
+(define-public ecl-optima
+  (sbcl-package->ecl-package sbcl-optima))
+
 (define-public sbcl-fare-quasiquote
   (let ((commit "640d39a0451094071b3e093c97667b3947f43639")
         (revision "1"))
@@ -6063,11 +5590,15 @@ optimizing techniques widely used in the functional programming world.")
          (sha256
           (base32 "1g6q11l50kgija9f55lzqpcwvaq0ljiw8v1j265hnyg6nahjwjvg"))))
       (inputs
-       `(("fare-utils" ,sbcl-fare-utils)))
+       `(("fare-utils" ,sbcl-fare-utils)
+         ("named-readtables" ,sbcl-named-readtables)
+         ("optima" ,sbcl-optima)))
       (arguments
        ;; XXX: Circular dependencies: Tests depend on subsystems,
        ;; which depend on the main systems.
        `(#:tests? #f
+         #:asd-systems '("fare-quasiquote"
+                         "fare-quasiquote-extras")
          #:phases
          (modify-phases %standard-phases
            ;; XXX: Require 1.0.0 version of fare-utils, and we package some
@@ -6077,7 +5608,11 @@ optimizing techniques widely used in the functional programming world.")
              (lambda _
                (substitute* "fare-quasiquote.asd"
                  (("\\(:version \"fare-utils\" \"1.0.0\"\\)")
-                  "\"fare-utils\"")))))))
+                  "\"fare-utils\""))
+               (substitute* "fare-quasiquote-optima.asd"
+                 (("\\(:version \"optima\" \"1\\.0\"\\)")
+                  "\"optima\""))
+               #t)))))
       (synopsis "Pattern-matching friendly implementation of quasiquote")
       (description "The main purpose of this n+2nd reimplementation of
 quasiquote is enable matching of quasiquoted patterns, using Optima or
@@ -6087,222 +5622,97 @@ Trivia.")
 (define-public cl-fare-quasiquote
   (sbcl-package->cl-source-package sbcl-fare-quasiquote))
 
-(define-public sbcl-fare-quasiquote-optima
-  (package
-    (inherit sbcl-fare-quasiquote)
-    (name "sbcl-fare-quasiquote-optima")
-    (inputs
-     `(("optima" ,sbcl-optima)
-       ("fare-quasiquote" ,sbcl-fare-quasiquote)))
-    (arguments
-     '(#:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'patch-requirement
-           (lambda _
-             (substitute* "fare-quasiquote-optima.asd"
-               (("\\(:version \"optima\" \"1\\.0\"\\)")
-                "\"optima\""))
-             #t)))))))
-
-(define-public cl-fare-quasiquote-optima
-  (sbcl-package->cl-source-package sbcl-fare-quasiquote-optima))
-
-(define-public sbcl-fare-quasiquote-readtable
-  (package
-    (inherit sbcl-fare-quasiquote)
-    (name "sbcl-fare-quasiquote-readtable")
-    (inputs
-     `(("fare-quasiquote" ,sbcl-fare-quasiquote)
-       ("named-readtables" ,sbcl-named-readtables)))
-    (description "The main purpose of this n+2nd reimplementation of
-quasiquote is enable matching of quasiquoted patterns, using Optima or
-Trivia.
-
-This package uses fare-quasiquote with named-readtable.")))
-
-(define-public cl-fare-quasiquote-readtable
-  (sbcl-package->cl-source-package sbcl-fare-quasiquote-readtable))
-
-(define-public sbcl-fare-quasiquote-extras
-  (package
-    (inherit sbcl-fare-quasiquote)
-    (name "sbcl-fare-quasiquote-extras")
-    (build-system asdf-build-system/sbcl)
-    (inputs
-     `(("fare-quasiquote-optima" ,sbcl-fare-quasiquote-optima)
-       ("fare-quasiquote-readtable" ,sbcl-fare-quasiquote-readtable)))
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (replace 'build
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (lib (string-append out "/lib/" (%lisp-type))))
-               (mkdir-p lib)
-               (install-file "fare-quasiquote-extras.asd" lib)
-               (make-file-writable
-                (string-append lib "/fare-quasiquote-extras.asd"))
-               #t))))))
-    (description "This library combines @code{fare-quasiquote-readtable} and
-@code{fare-quasiquote-optima}.")))
-
-(define-public cl-fare-quasiquote-extras
-  (package
-    (inherit cl-fare-quasiquote)
-    (name "cl-fare-quasiquote-extras")
-    (build-system asdf-build-system/source)
-    (propagated-inputs
-     `(("fare-quasiquote" ,cl-fare-quasiquote)
-       ("fare-quasiquote-optima" ,cl-fare-quasiquote-optima)
-       ("fare-quasiquote-readtable" ,cl-fare-quasiquote-readtable)))
-    (description "This library combines @code{fare-quasiquote-readtable} and
-@code{fare-quasiquote-optima}.")))
+(define-public ecl-fare-quasiquote
+  (sbcl-package->ecl-package sbcl-fare-quasiquote))
 
-(define-public sbcl-trivia.level0
+;;; Split the trivia package in two to work around the circular dependency
+;;; between guicho271828/trivia and guicho271828/type-i.
+(define-public sbcl-trivia.trivial
   (let ((commit "37698b47a14c2007630468de7a993694ef7bd475")
         (revision "2"))
     (package
-      (name "sbcl-trivia.level0")
-      (build-system asdf-build-system/sbcl)
+      (name "sbcl-trivia.trivial")
       (version (git-version "0.0.0" revision commit))
-      (home-page "https://github.com/guicho271828/trivia")
       (source
        (origin
          (method git-fetch)
          (uri (git-reference
-               (url home-page)
+               (url "https://github.com/guicho271828/trivia")
                (commit commit)))
-         (file-name (git-file-name name version))
+         (file-name (git-file-name "trivia" version))
          (sha256
           (base32
            "0rsbwbw3ipxxgr6zzhci12nilq8zky475kmhz1rcxy4q8a85vn72"))))
+      (build-system asdf-build-system/sbcl)
       (inputs
-       `(("alexandria" ,sbcl-alexandria)))
+       `(("alexandria" ,sbcl-alexandria)
+         ("closer-mop" ,sbcl-closer-mop)
+         ("lisp-namespace" ,sbcl-lisp-namespace)
+         ("trivial-cltl2" ,sbcl-trivial-cltl2)))
+      (arguments
+       '(#:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'fix-build
+             (lambda _
+               (for-each delete-file
+                         '("trivia.balland2006.asd"
+                           "trivia.ppcre.asd"
+                           "trivia.quasiquote.asd"
+                           "trivia.cffi.asd"
+                           "trivia.asd"
+                           "trivia.test.asd"))
+               #t)))))
       (synopsis "Pattern matching in Common Lisp")
       (description "Trivia is a pattern matching compiler that is compatible
 with Optima, another pattern matching library for Common Lisp.  It is meant to
 be faster and more extensible than Optima.")
+      (home-page "https://github.com/guicho271828/trivia")
       (license license:llgpl))))
 
-(define-public sbcl-trivia.level1
-  (package
-    (inherit sbcl-trivia.level0)
-    (name "sbcl-trivia.level1")
-    (inputs
-     `(("trivia.level0" ,sbcl-trivia.level0)))
-    (description "Trivia is a pattern matching compiler that is compatible
-with Optima, another pattern matching library for Common Lisp.  It is meant to
-be faster and more extensible than Optima.
-
-This system contains the core patterns of Trivia.")))
-
-(define-public sbcl-trivia.level2
-  (package
-    (inherit sbcl-trivia.level0)
-    (name "sbcl-trivia.level2")
-    (inputs
-     `(("trivia.level1" ,sbcl-trivia.level1)
-       ("lisp-namespace" ,sbcl-lisp-namespace)
-       ("trivial-cltl2" ,sbcl-trivial-cltl2)
-       ("closer-mop" ,sbcl-closer-mop)))
-    (description "Trivia is a pattern matching compiler that is compatible
-with Optima, another pattern matching library for Common Lisp.  It is meant to
-be faster and more extensible than Optima.
-
-This system contains a non-optimized pattern matcher compatible with Optima,
-with extensible optimizer interface.")))
-
-(define-public sbcl-trivia.trivial
-  (package
-    (inherit sbcl-trivia.level0)
-    (name "sbcl-trivia.trivial")
-    (inputs
-     `(("trivia.level2" ,sbcl-trivia.level2)))
-    (description "Trivia is a pattern matching compiler that is compatible
-with Optima, another pattern matching library for Common Lisp.  It is meant to
-be faster and more extensible than Optima.
-
-This system contains the base level system of Trivia with a trivial optimizer.")))
-
-(define-public sbcl-trivia.balland2006
-  (package
-    (inherit sbcl-trivia.level0)
-    (name "sbcl-trivia.balland2006")
-    (inputs
-     `(("trivia.trivial" ,sbcl-trivia.trivial)
-       ("iterate" ,sbcl-iterate)
-       ("type-i" ,sbcl-type-i)
-       ("alexandria" ,sbcl-alexandria)))
-    (arguments
-     ;; Tests are done in trivia itself.
-     `(#:tests? #f))
-    (description "Trivia is a pattern matching compiler that is compatible
-with Optima, another pattern matching library for Common Lisp.  It is meant to
-be faster and more extensible than Optima.
-
-This system contains the base level system of Trivia with a trivial optimizer.")))
-
-(define-public sbcl-trivia.ppcre
-  (package
-    (inherit sbcl-trivia.level0)
-    (name "sbcl-trivia.ppcre")
-    (inputs
-     `(("trivia.trivial" ,sbcl-trivia.trivial)
-       ("cl-ppcre" ,sbcl-cl-ppcre)))
-    (description "Trivia is a pattern matching compiler that is compatible
-with Optima, another pattern matching library for Common Lisp.  It is meant to
-be faster and more extensible than Optima.
-
-This system contains the PPCRE extension.")))
-
-(define-public sbcl-trivia.quasiquote
-  (package
-    (inherit sbcl-trivia.level0)
-    (name "sbcl-trivia.quasiquote")
-    (inputs
-     `(("trivia.trivial" ,sbcl-trivia.trivial)
-       ("fare-quasiquote" ,sbcl-fare-quasiquote)
-       ("fare-quasiquote-readtable" ,sbcl-fare-quasiquote-readtable)))
-    (description "Trivia is a pattern matching compiler that is compatible
-with Optima, another pattern matching library for Common Lisp.  It is meant to
-be faster and more extensible than Optima.
-
-This system contains the fare-quasiquote extension.")))
-
-(define-public sbcl-trivia.cffi
-  (package
-    (inherit sbcl-trivia.level0)
-    (name "sbcl-trivia.cffi")
-    (inputs
-     `(("cffi" ,sbcl-cffi)
-       ("trivia.trivial" ,sbcl-trivia.trivial)))
-    (description "Trivia is a pattern matching compiler that is compatible
-with Optima, another pattern matching library for Common Lisp.  It is meant to
-be faster and more extensible than Optima.
+(define-public cl-trivia.trivial
+  (sbcl-package->cl-source-package sbcl-trivia.trivial))
 
-This system contains the CFFI foreign slot access extension.")))
+(define-public ecl-trivia.trivial
+  (sbcl-package->ecl-package sbcl-trivia.trivial))
 
 (define-public sbcl-trivia
   (package
-    (inherit sbcl-trivia.level0)
+    (inherit sbcl-trivia.trivial)
     (name "sbcl-trivia")
-    (inputs
-     `(("trivia.balland2006" ,sbcl-trivia.balland2006)))
     (native-inputs
      `(("fiveam" ,sbcl-fiveam)
-       ("trivia.ppcre" ,sbcl-trivia.ppcre)
-       ("trivia.quasiquote" ,sbcl-trivia.quasiquote)
-       ("trivia.cffi" ,sbcl-trivia.cffi)
        ("optima" ,sbcl-optima)))
-    (arguments
-     `(#:test-asd-file "trivia.test.asd"))
-    (description "Trivia is a pattern matching compiler that is compatible
-with Optima, another pattern matching library for Common Lisp.  It is meant to
-be faster and more extensible than Optima.")))
+    (inputs
+     `(("alexandria" ,sbcl-alexandria)
+       ("cffi" ,sbcl-cffi)
+       ("cl-ppcre" ,sbcl-cl-ppcre)
+       ("fare-quasiquote" ,sbcl-fare-quasiquote)
+       ("iterate" ,sbcl-iterate)
+       ("trivia.trivial" ,sbcl-trivia.trivial)
+       ("type-i" ,sbcl-type-i)))
+    (arguments
+     '(#:asd-systems '("trivia"
+                       "trivia.ppcre"
+                       "trivia.quasiquote"
+                       "trivia.cffi")
+       #:test-asd-file "trivia.test.asd"
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-build
+           (lambda _
+             (for-each delete-file
+                       '("trivia.level0.asd"
+                         "trivia.level1.asd"
+                         "trivia.level2.asd"
+                         "trivia.trivial.asd"))
+             #t)))))))
 
 (define-public cl-trivia
   (sbcl-package->cl-source-package sbcl-trivia))
 
+(define-public ecl-trivia
+  (sbcl-package->ecl-package sbcl-trivia))
+
 (define-public sbcl-mk-string-metrics
   (package
     (name "sbcl-mk-string-metrics")
@@ -6337,45 +5747,48 @@ various string metrics in Common Lisp:
 (define-public cl-mk-string-metrics
   (sbcl-package->cl-source-package sbcl-mk-string-metrics))
 
+(define-public ecl-mk-string-metrics
+  (sbcl-package->ecl-package sbcl-mk-string-metrics))
+
 (define-public sbcl-cl-str
-  (let ((commit "eb480f283e28802d67b35bf916506701152f9a2a"))
-    (package
-      (name "sbcl-cl-str")
-      (version (git-version "0.17" "1" commit))
-      (home-page "https://github.com/vindarel/cl-str")
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url home-page)
-                      (commit commit)))
-                (sha256
-                 (base32 "1hpq5m8zjjnzns370zy27z2vcm1p8n2ka5ij2x67gyc9amz9vla0"))
-                (file-name (git-file-name name version))))
-      (build-system asdf-build-system/sbcl)
-      (inputs
-       `(("cl-ppcre" ,sbcl-cl-ppcre)
-         ("cl-ppcre-unicode" ,sbcl-cl-ppcre-unicode)
-         ("cl-change-case" ,sbcl-cl-change-case)))
-      (native-inputs
-       `(("prove" ,sbcl-prove)
-         ("prove-asdf" ,sbcl-prove-asdf)))
-      (arguments
-       `(#:asd-file "str.asd"
-         #:asd-system-name "str"
-         #:test-asd-file "str.test.asd"))
-      (synopsis "Modern, consistent and terse Common Lisp string manipulation library")
-      (description "A modern and consistent Common Lisp string manipulation
+  (package
+    (name "sbcl-cl-str")
+    (version "0.19")
+    (home-page "https://github.com/vindarel/cl-str")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url home-page)
+                    (commit version)))
+              (sha256
+               (base32 "1jyza2jhn7w6fl4w87pv0m87z5ia48m6dqw12k0mdh7l3mgjq839"))
+              (file-name (git-file-name name version))))
+    (build-system asdf-build-system/sbcl)
+    (inputs
+     `(("cl-ppcre" ,sbcl-cl-ppcre)
+       ("cl-ppcre-unicode" ,sbcl-cl-ppcre-unicode)
+       ("cl-change-case" ,sbcl-cl-change-case)))
+    (native-inputs
+     `(("prove" ,sbcl-prove)))
+    (arguments
+     `(#:asd-systems '("str")
+       #:test-asd-file "str.test.asd"))
+    (synopsis "Modern, consistent and terse Common Lisp string manipulation library")
+    (description "A modern and consistent Common Lisp string manipulation
 library that focuses on modernity, simplicity and discoverability:
 @code{(str:trim s)} instead of @code{(string-trim '(#\\Space ...) s)}), or
 @code{str:concat strings} instead of an unusual format construct; one
 discoverable library instead of many; consistency and composability, where
 @code{s} is always the last argument, which makes it easier to feed pipes and
 arrows.")
-      (license license:expat))))
+    (license license:expat)))
 
 (define-public cl-str
   (sbcl-package->cl-source-package sbcl-cl-str))
 
+(define-public ecl-cl-str
+  (sbcl-package->ecl-package sbcl-cl-str))
+
 (define-public sbcl-cl-xmlspam
   (let ((commit "ea06abcca2a73a9779bcfb09081e56665f94e22a"))
     (package
@@ -6408,15 +5821,17 @@ constructs can be used interchangeably with pattern matching, and the full
 power of CXML is available when necessary.")
       (license license:bsd-3))))
 
-;; TODO: dbus uses ASDF's package-inferred-system which is not supported by
-;; asdf-build-system/sbcl as of 2019-08-02.  We should fix
-;; asdf-build-system/sbcl.
-(define-public cl-dbus
+(define-public cl-xmlspam
+  (sbcl-package->cl-source-package sbcl-cl-xmlspam))
+
+(define-public ecl-cl-xmlspam
+  (sbcl-package->ecl-package sbcl-cl-xmlspam))
+
+(define-public sbcl-dbus
   (let ((commit "24b452df3a45ca5dc95015500f34baad175c981a")
         (revision "1"))
     (package
-      (name "cl-dbus")
-      (build-system asdf-build-system/source)
+      (name "sbcl-dbus")
       (version (git-version "20190408" revision commit))
       (home-page "https://github.com/death/dbus")
       (source
@@ -6429,9 +5844,8 @@ power of CXML is available when necessary.")
          (sha256
           (base32
            "0fw2q866yddbf23nk9pxphm9gsasx35vjyss82xzvndnjmzlqfl5"))))
-      ;; Inputs must be propagated or else packages depending on this won't
-      ;; have the necessary packages.
-      (propagated-inputs
+      (build-system asdf-build-system/sbcl)
+      (inputs
        `(("alexandria" ,sbcl-alexandria)
          ("trivial-garbage" ,sbcl-trivial-garbage)
          ("babel" ,sbcl-babel)
@@ -6445,6 +5859,12 @@ power of CXML is available when necessary.")
 objects as well as send and notify other objects connected to a bus.")
       (license license:bsd-2))))
 
+(define-public cl-dbus
+  (sbcl-package->cl-source-package sbcl-dbus))
+
+(define-public ecl-dbus
+  (sbcl-package->ecl-package sbcl-dbus))
+
 (define-public sbcl-cl-hooks
   (let ((commit "5b638083f3b4f1221a52631d9c8a0a265565cac7")
         (revision "1"))
@@ -6508,6 +5928,41 @@ extension-points via the concept of hooks.")
 (define-public ecl-cl-hooks
   (sbcl-package->ecl-package sbcl-cl-hooks))
 
+(define-public sbcl-cl-autowrap
+  (let ((revision "1")
+        (commit "ae846d6968fc0d000de0c541638929a157f3009e"))
+    ;; no taged branches
+    (package
+      (name "sbcl-cl-autowrap")
+      (version (git-version "1.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/rpav/cl-autowrap")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1gisldp2zns92kdcaikghm7c38ldy2d884n8bfg0wcjvbz78p3ar"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       `(("alexandria" ,sbcl-alexandria)
+         ("cffi" ,sbcl-cffi)
+         ("cl-json" ,sbcl-cl-json)
+         ("cl-ppcre" ,sbcl-cl-ppcre)
+         ("defpackage-plus" ,sbcl-defpackage-plus)
+         ("trivial-features" ,sbcl-trivial-features)))
+      (home-page "https://github.com/rpav/cl-autowrap")
+      (synopsis "FFI wrapper generator for Common Lisp")
+      (description "This is a c2ffi-based wrapper generator for Common Lisp.")
+      (license license:bsd-2))))
+
+(define-public cl-autowrap
+  (sbcl-package->cl-source-package sbcl-cl-autowrap))
+
+(define-public ecl-cl-autowrap
+  (sbcl-package->ecl-package sbcl-cl-autowrap))
+
 (define-public sbcl-s-sysdeps
   ;; No release since 2013.
   (let ((commit "9aa23bbdceb24bcdbe0e7c39fa1901858f823106")
@@ -6529,8 +5984,7 @@ extension-points via the concept of hooks.")
            "1fh8r7kf8s3hvqdg6b71b8p7w3v2kkga9bw8j3qqdxhzr6anpm0b"))))
       (inputs
        `(("bordeaux-threads" ,sbcl-bordeaux-threads)
-         ("usocket" ,sbcl-usocket)
-         ("usocket-server" ,sbcl-usocket-server)))
+         ("usocket" ,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
@@ -6553,8 +6007,8 @@ number of other open source projects.
   (sbcl-package->ecl-package sbcl-s-sysdeps))
 
 (define-public sbcl-cl-prevalence
-  (let ((commit "1e5f030d94237b33d20947a2f6c194abedb10727")
-        (revision "3"))
+  (let ((commit "5a76be036092ed6c18cb695a9e03bce87e21b840")
+        (revision "4"))
     (package
       (name "sbcl-cl-prevalence")
       (build-system asdf-build-system/sbcl)
@@ -6569,7 +6023,7 @@ number of other open source projects.
          (file-name (git-file-name name version))
          (sha256
           (base32
-           "13yb8lv2aap5wvqa6hw7ms31xnax58f4m2nxifkssrzkb2w2qf29"))))
+           "050h6hwv8f16b5v6fzba8zmih92hgaaq27i2x9wv1iib41gbia3r"))))
       (inputs
        `(("s-sysdeps" ,sbcl-s-sysdeps)
          ("s-xml" ,sbcl-s-xml)))
@@ -6627,8 +6081,8 @@ programming style and the efficiency of an iterative programming style.")
   (sbcl-package->ecl-package sbcl-series))
 
 (define-public sbcl-periods
-  (let ((commit "983d4a57325db3c8def942f163133cec5391ec28")
-        (revision "1"))
+  (let ((commit "60383dcef88a1ac11f82804ae7a33c361dcd2949")
+        (revision "2"))
     (package
       (name "sbcl-periods")
       (version (git-version "0.0.2" revision commit))
@@ -6641,10 +6095,14 @@ programming style and the efficiency of an iterative programming style.")
          (file-name (git-file-name name version))
          (sha256
           (base32
-           "0z30jr3lxz3cmi019fsl4lgcgwf0yqpn95v9zkkkwgymdrkd4lga"))))
+           "1ym2j4an9ig2hl210jg91gpf7xfnp6mlhkw3n9kkdnwiji3ipqlk"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("local-time" ,sbcl-local-time)))
+       `(("local-time" ,sbcl-local-time)
+         ("series" ,sbcl-series)))
+      (arguments
+       '(#:asd-systems '("periods"
+                         "periods-series")))
       (synopsis "Common Lisp library for manipulating date/time objects")
       (description
        "Periods is a Common Lisp library providing a set of utilities for
@@ -6659,26 +6117,6 @@ discontiguous ranges of time.")
 (define-public ecl-periods
   (sbcl-package->ecl-package sbcl-periods))
 
-(define-public sbcl-periods-series
-  (package
-    (inherit sbcl-periods)
-    (name "sbcl-periods-series")
-    (inputs
-     `(("periods" ,sbcl-periods)
-       ("series" ,sbcl-series)))
-    (arguments
-     '(#:asd-file "periods-series.asd"
-       #:asd-system-name "periods-series"))
-    (description
-     "Periods-series is an extension of the periods Common Lisp library
-providing functions compatible with the series Common Lisp library.")))
-
-(define-public cl-periods-series
-  (sbcl-package->cl-source-package sbcl-periods-series))
-
-(define-public ecl-periods-series
-  (sbcl-package->ecl-package sbcl-periods-series))
-
 (define-public sbcl-metatilities-base
   (let ((commit "6eaa9e3ff0939a93a92109dd0fcd218de85417d5")
         (revision "1"))
@@ -6733,7 +6171,8 @@ which implements a set of utilities.")
       (inputs
        `(("metatilities-base" ,sbcl-metatilities-base)))
       (arguments
-       '(#:phases
+       '(#:asd-files '("cl-containers.asd")
+         #:phases
          (modify-phases %standard-phases
            (add-after 'unpack 'relax-version-checks
              (lambda _
@@ -6800,57 +6239,40 @@ on the XPTest package by Craig Brozensky and the JUnit package by Kent Beck.")
 (define-public ecl-xlunit
   (sbcl-package->ecl-package sbcl-xlunit))
 
-(define-public sbcl-fprog
+(define-public sbcl-cambl
   (let ((commit "7016d1a98215f82605d1c158e7a16504ca1f4636")
         (revision "1"))
     (package
-      (name "sbcl-fprog")
-      (version (git-version "1.0.0" revision commit))
+      (name "sbcl-cambl")
+      (version (git-version "4.0.0" revision commit))
       (source
        (origin
          (method git-fetch)
          (uri (git-reference
                (url "https://github.com/jwiegley/cambl")
                (commit commit)))
-         (file-name (git-file-name name version))
+         (file-name (git-file-name "cambl" version))
          (sha256
-          (base32
-           "103mry04j2k9vznsxm7wcvccgxkil92cdrv52miwcmxl8daa4jiz"))))
+          (base32 "103mry04j2k9vznsxm7wcvccgxkil92cdrv52miwcmxl8daa4jiz"))))
       (build-system asdf-build-system/sbcl)
-      (synopsis "Functional programming utilities for Common Lisp")
-      (description
-       "@code{fprog} is a Common Lisp library allowing iteration over
-immutable lists sharing identical sublists.")
-      (home-page "https://github.com/jwiegley/cambl")
-      (license license:bsd-3))))
-
-(define-public cl-fprog
-  (sbcl-package->cl-source-package sbcl-fprog))
-
-(define-public ecl-fprog
-  (sbcl-package->ecl-package sbcl-fprog))
-
-(define-public sbcl-cambl
-  (let ((commit "7016d1a98215f82605d1c158e7a16504ca1f4636")
-        (revision "1"))
-    (package
-      (inherit sbcl-fprog)
-      (name "sbcl-cambl")
-      (version (git-version "4.0.0" revision commit))
       (native-inputs
        `(("xlunit" ,sbcl-xlunit)))
       (inputs
        `(("alexandria" ,sbcl-alexandria)
          ("cl-containers" ,sbcl-cl-containers)
          ("local-time" ,sbcl-local-time)
-         ("periods" ,sbcl-periods)
-         ("fprog" ,sbcl-fprog)))
+         ("periods" ,sbcl-periods)))
+      (arguments
+       '(#:asd-files '("fprog.asd"
+                       "cambl.asd")))
       (synopsis "Commoditized amounts and balances for Common Lisp")
       (description
        "CAMBL is a Common Lisp library providing a convenient facility for
 working with commoditized values.  It does not allow compound units (and so is
 not suited for scientific operations) but does work rather nicely for the
-purpose of financial calculations."))))
+purpose of financial calculations.")
+      (home-page "https://github.com/jwiegley/cambl")
+      (license license:bsd-3))))
 
 (define-public cl-cambl
   (sbcl-package->cl-source-package sbcl-cambl))
@@ -6879,7 +6301,7 @@ purpose of financial calculations."))))
        `(("cambl" ,sbcl-cambl)
          ("cl-ppcre" ,sbcl-cl-ppcre)
          ("local-time" ,sbcl-local-time)
-         ("periods-series" ,sbcl-periods-series)))
+         ("periods" ,sbcl-periods)))
       (arguments
        '(#:phases
          (modify-phases %standard-phases
@@ -6904,11 +6326,11 @@ system.")
   (sbcl-package->ecl-package sbcl-cl-ledger))
 
 (define-public sbcl-bst
-  (let ((commit "34f9c7e8e0a9f2c952fe310ab36cb630d5d9c15a")
-        (revision "1"))
+  (let ((commit "8545aed0d504df2829ad139566feeabe22305388")
+        (revision "0"))
     (package
       (name "sbcl-bst")
-      (version (git-version "1.1" revision commit))
+      (version (git-version "2.0" revision commit))
       (source
        (origin
          (method git-fetch)
@@ -6917,8 +6339,7 @@ system.")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
-          (base32
-           "1amxns7hvvh4arwbh8ciwfzplg127vh37dnbamv1m1kmmnmihfc8"))))
+          (base32 "18ig7rvxcra69437g0i8sxyv7c5dg26jqnx1rc2f9pxmihdprgk8"))))
       (build-system asdf-build-system/sbcl)
       (native-inputs
        `(("alexandria" ,sbcl-alexandria)
@@ -6939,7 +6360,7 @@ can contain any kind of values.")
 (define-public sbcl-cl-octet-streams
   (package
     (name "sbcl-cl-octet-streams")
-    (version "1.0")
+    (version "1.2")
     (source
      (origin
        (method git-fetch)
@@ -6948,8 +6369,7 @@ can contain any kind of values.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32
-         "1d7mn6ydv0j2x4r7clpc9ijjwrnfpxmvhifv8n5j7jh7s744sf8d"))))
+        (base32 "1hffh98bv4w5yrchagzwqrc43d2p473pvw7ka4kyyvhrr52dk2f8"))))
     (build-system asdf-build-system/sbcl)
     (native-inputs
      `(("fiveam" ,sbcl-fiveam)))
@@ -6970,11 +6390,11 @@ cl-plumbing libraries.")
   (sbcl-package->ecl-package sbcl-cl-octet-streams))
 
 (define-public sbcl-lzlib
-  (let ((commit "0de1db7129fef9a58a059d35a2fa2ecfc5b47b47")
-        (revision "1"))
+  (let ((commit "cad10f5becbcfebb44b9d311a257563778803452")
+        (revision "2"))
     (package
       (name "sbcl-lzlib")
-      (version (git-version "1.0" revision commit))
+      (version (git-version "1.1" revision commit))
       (source
        (origin
          (method git-fetch)
@@ -6983,14 +6403,14 @@ cl-plumbing libraries.")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
-          (base32
-           "12ny7vj52fgnd8hb8fc8mry92vq4c1x72x2350191m4476j95clz"))))
+          (base32 "09lp7li35h4jkls0448fj1sh6pjslr1w7ranbc4szjr8g0c2bdry"))))
       (build-system asdf-build-system/sbcl)
       (native-inputs
        `(("fiveam" ,sbcl-fiveam)))
       (inputs
        `(("cffi" ,sbcl-cffi)
          ("cl-octet-streams" ,sbcl-cl-octet-streams)
+         ("lparallel" ,sbcl-lparallel)
          ("lzlib" ,lzlib)))
       (arguments
        '(#:phases
@@ -7082,8 +6502,8 @@ ability to store all Common Lisp data types into streams.")
   (sbcl-package->ecl-package sbcl-cl-store))
 
 (define-public sbcl-cl-gobject-introspection
-  (let ((commit "7b703e2384945ea0ac39d9b766de434a08d81560")
-        (revision "0"))
+  (let ((commit "d0136c8d9ade2560123af1fc55bbf70d2e3db539")
+        (revision "1"))
     (package
       (name "sbcl-cl-gobject-introspection")
       (version (git-version "0.3" revision commit))
@@ -7097,7 +6517,7 @@ ability to store all Common Lisp data types into streams.")
          (file-name (git-file-name name version))
          (sha256
           (base32
-           "1zcqd2qj14f6b38vys8gr89s6cijsp9r8j43xa8lynilwva7bwyh"))))
+           "0dz0r73pq7yhz2iq2jnkq977awx2zws2qfxdcy33329sys1ii32p"))))
       (build-system asdf-build-system/sbcl)
       (inputs
        `(("alexandria" ,sbcl-alexandria)
@@ -7109,12 +6529,9 @@ ability to store all Common Lisp data types into streams.")
       (native-inputs
        `(("fiveam" ,sbcl-fiveam)))
       (arguments
-       ;; TODO: Tests fail, see
-       ;; https://github.com/andy128k/cl-gobject-introspection/issues/70.
-       '(#:tests? #f
-         #:phases
+       '(#:phases
          (modify-phases %standard-phases
-           (add-after (quote unpack) (quote fix-paths)
+           (add-after 'unpack 'fix-paths
              (lambda* (#:key inputs #:allow-other-keys)
                (substitute* "src/init.lisp"
                  (("libgobject-2\\.0\\.so")
@@ -7135,6 +6552,9 @@ of C+GObject libraries without the need of writing dedicated bindings.")
 (define-public cl-gobject-introspection
   (sbcl-package->cl-source-package sbcl-cl-gobject-introspection))
 
+(define-public ecl-cl-gobject-introspection
+  (sbcl-package->ecl-package sbcl-cl-gobject-introspection))
+
 (define-public sbcl-string-case
   (let ((commit "718c761e33749e297cd2809c7ba3ade1985c49f7")
         (revision "0"))
@@ -7165,6 +6585,34 @@ trees to dispatch on string equality.")
 (define-public ecl-string-case
   (sbcl-package->ecl-package sbcl-string-case))
 
+(define-public sbcl-garbage-pools
+  (let ((commit "9a7cb7f48b04197c0495df3b6d2e8395ad13f790")
+        (revision "1"))
+    (package
+      (name "sbcl-garbage-pools")
+      (version (git-version "0.1.2" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/archimag/garbage-pools")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "04jqwr6j138him6wc4nrwjzm4lvyj5j31xqab02nkf8h9hmsf5v1"))))
+      (build-system asdf-build-system/sbcl)
+      (home-page "https://github.com/archimag/garbage-pools")
+      (synopsis "Resource management pools for Common Lisp")
+      (description "GARBAGE-POOLS is Common Lisp re-implementation of the APR
+Pools for resource management.")
+      (license license:expat))))
+
+(define-public ecl-garbage-pools
+  (sbcl-package->ecl-package sbcl-garbage-pools))
+
+(define-public cl-garbage-pools
+  (sbcl-package->cl-source-package sbcl-garbage-pools))
+
 (define-public sbcl-global-vars
   (let ((commit "c749f32c9b606a1457daa47d59630708ac0c266e")
         (revision "0"))
@@ -7273,8 +6721,8 @@ implementation specific equivalent.")
   (sbcl-package->ecl-package sbcl-trivial-macroexpand-all))
 
 (define-public sbcl-serapeum
-  (let ((commit "a2ca90cbdcb9f76c2822286110c7abe9ba5b76c2")
-        (revision "2"))
+  (let ((commit "c5e352a9f04a84a93742193c01734f4fb31d9f82")
+        (revision "3"))
     (package
       (name "sbcl-serapeum")
       (version (git-version "0.0.0" revision commit))
@@ -7288,19 +6736,18 @@ implementation specific equivalent.")
          (file-name (git-file-name name version))
          (sha256
           (base32
-           "1lrk2kf7qh5g6f8xvyg8wf89frzb5mw6m1jzgy46jy744f459i8q"))))
+           "16767pxl766c15jznr4srcbp7cnxf8w9lkyaqpp5w5crqymw84nw"))))
       (build-system asdf-build-system/sbcl)
       (inputs
        `(("alexandria" ,sbcl-alexandria)
          ("trivia" ,sbcl-trivia)
-         ("trivia.quasiquote" ,sbcl-trivia.quasiquote)
          ("split-sequence" ,sbcl-split-sequence)
          ("string-case" ,sbcl-string-case)
          ("parse-number" ,sbcl-parse-number)
          ("trivial-garbage" ,sbcl-trivial-garbage)
          ("bordeaux-threads" ,sbcl-bordeaux-threads)
          ("named-readtables" ,sbcl-named-readtables)
-         ("fare-quasiquote-extras" ,sbcl-fare-quasiquote-extras)
+         ("fare-quasiquote" ,sbcl-fare-quasiquote)
          ("parse-declarations-1.0" ,sbcl-parse-declarations)
          ("global-vars" ,sbcl-global-vars)
          ("trivial-file-size" ,sbcl-trivial-file-size)
@@ -7326,6 +6773,9 @@ supplement, not a competitor, to Alexandria.")
 (define-public cl-serapeum
   (sbcl-package->cl-source-package sbcl-serapeum))
 
+(define-public ecl-serapeum
+  (sbcl-package->ecl-package sbcl-serapeum))
+
 (define-public sbcl-arrows
   (let ((commit "df7cf0067e0132d9697ac8b1a4f1b9c88d4f5382")
         (revision "0"))
@@ -7359,8 +6809,8 @@ Clojure, as well as several expansions on the idea.")
   (sbcl-package->ecl-package sbcl-arrows))
 
 (define-public sbcl-simple-parallel-tasks
-  (let ((commit "db460f7a3f7bbfe2d3a2223ed21e162068d04dda")
-        (revision "0"))
+  (let ((commit "ce7b60f788d8f68dfb69b24aac54c0e3b63379a6")
+        (revision "1"))
     (package
       (name "sbcl-simple-parallel-tasks")
       (version (git-version "1.0" revision commit))
@@ -7372,8 +6822,7 @@ Clojure, as well as several expansions on the idea.")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
-          (base32
-           "0amw3qk23wnlyrsgzszs6rs7y4zvxv8dr03rnqhc60mnm8ds4dd5"))))
+          (base32 "0gvbpyff4siifp3cp86cpr9ksmakn66fx21f3h0hpn647zl07nj7"))))
       (build-system asdf-build-system/sbcl)
       (native-inputs
        `(("fiveam" ,sbcl-fiveam)))
@@ -7506,11 +6955,8 @@ JSON interchange format.")
       (inputs
        `(("alexandria" ,sbcl-alexandria)
          ("iterate" ,sbcl-iterate)
-         ("metabang-bind" ,sbcl-metabang-bind)))
-      (propagated-inputs
-       ;; Swank doesn't have a pre-compiled package, therefore we must
-       ;; propagate its sources.
-       `(("swank" ,cl-slime-swank)))
+         ("metabang-bind" ,sbcl-metabang-bind)
+         ("swank" ,sbcl-slime-swank)))
       (arguments
        '(#:phases
          (modify-phases %standard-phases
@@ -7529,6 +6975,9 @@ interactive development.")
 (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"))
@@ -7545,19 +6994,22 @@ interactive development.")
          (file-name (git-file-name name version))
          (sha256
           (base32
-           "1qpij4xh8bqwc2myahpilcbh916v7vg0acz2fij14d3y0jm02h0g"))
-         (patches (search-patches "sbcl-graph-asdf-definitions.patch"))))
+           "1qpij4xh8bqwc2myahpilcbh916v7vg0acz2fij14d3y0jm02h0g"))))
       (build-system asdf-build-system/sbcl)
       (native-inputs
        `(("stefil" ,sbcl-stefil)))
       (inputs
        `(("alexandria" ,sbcl-alexandria)
          ("cl-heap" ,sbcl-cl-heap)
+         ("cl-ppcre" ,sbcl-cl-ppcre)
          ("curry-compose-reader-macros" ,sbcl-curry-compose-reader-macros)
          ("metabang-bind" ,sbcl-metabang-bind)
-         ("named-readtables" ,sbcl-named-readtables)))
+         ("named-readtables" ,sbcl-named-readtables)
+         ("yason" ,sbcl-yason)))
       (arguments
-       '(#:test-asd-file "graph-test.asd"))
+       '(#:asd-systems '("graph"
+                         "graph/dot"
+                         "graph/json")))
       (synopsis "Graph data structure and algorithms for Common Lisp")
       (description
        "The GRAPH Common Lisp library provides a data structures to represent
@@ -7569,39 +7021,8 @@ path, maximum flow, minimum spanning tree, etc.).")
 (define-public cl-graph
   (sbcl-package->cl-source-package sbcl-graph))
 
-(define-public sbcl-graph-dot
-  (package
-    (inherit sbcl-graph)
-    (name "sbcl-graph-dot")
-    (inputs
-     `(("alexandria" ,sbcl-alexandria)
-       ("cl-ppcre" ,sbcl-cl-ppcre)
-       ("curry-compose-reader-macros" ,sbcl-curry-compose-reader-macros)
-       ("graph" ,sbcl-graph)
-       ("metabang-bind" ,sbcl-metabang-bind)
-       ("named-readtables" ,sbcl-named-readtables)))
-    (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-graph)
-       ((#:asd-file _ "") "graph-dot.asd")
-       ((#:asd-system-name _ #f) "graph-dot")))
-    (synopsis "Serialize graphs to and from DOT format")))
-
-(define-public sbcl-graph-json
-  (package
-    (inherit sbcl-graph)
-    (name "sbcl-graph-json")
-    (inputs
-     `(("alexandria" ,sbcl-alexandria)
-       ("curry-compose-reader-macros" ,sbcl-curry-compose-reader-macros)
-       ("graph" ,sbcl-graph)
-       ("metabang-bind" ,sbcl-metabang-bind)
-       ("named-readtables" ,sbcl-named-readtables)
-       ("yason" ,sbcl-yason)))
-    (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-graph)
-       ((#:asd-file _ "") "graph-json.asd")
-       ((#:asd-system-name _ #f) "graph-json")))
-    (synopsis "Serialize graphs to and from JSON format")))
+(define-public ecl-graph
+  (sbcl-package->ecl-package sbcl-graph))
 
 (define-public sbcl-trivial-indent
   (let ((commit "2d016941751647c6cc5bd471751c2cf68861c94a")
@@ -7632,6 +7053,9 @@ results.")
 (define-public cl-trivial-indent
   (sbcl-package->cl-source-package sbcl-trivial-indent))
 
+(define-public ecl-trivial-indent
+  (sbcl-package->ecl-package sbcl-trivial-indent))
+
 (define-public sbcl-documentation-utils
   (let ((commit "98630dd5f7e36ae057fa09da3523f42ccb5d1f55")
         (revision "0"))
@@ -7665,6 +7089,45 @@ docstrings for your library.")
 (define-public ecl-documentation-utils
   (sbcl-package->ecl-package sbcl-documentation-utils))
 
+(define-public sbcl-documentation-utils-extensions
+  (let ((commit "f67f8a05d583174662a594b79356b201c1d9d750"))
+    (package
+      (name "sbcl-documentation-utils-extensions")
+      (version (git-version "0.0.0" "1" commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri
+          (git-reference
+           (url "https://github.com/sirherrbatka/documentation-utils-extensions/")
+           (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "0pn45c9rbxlnhn5nvhqz6kyv0nlirwxpg4j27niwdq80yxzsn51f"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       `(("documentation-utils" ,sbcl-documentation-utils)))
+      (home-page "https://github.com/sirherrbatka/documentation-utils-extensions")
+      (synopsis "Set of extensions for documentation-utils")
+      (description
+       "Use @code{rich-formatter} to format documentation with sections @code{:syntax},
+@code{:arguments}, @code{:examples}, @code{:description}, @code{:returns},
+@code{:side-effects}, @code{:thread-safety}, @code{:affected-by},
+@code{:see-also} and @code{:notes}.  Gather unformatted input by using
+@code{rich-aggregating-formatter} and @code{*DOCUMENTATION*} variable.  Find
+gathered documentation with find-documentation function.  Execute code stored
+in documentation with @code{execute-documentation}.  See the examples in the
+@code{src/documentation.lisp} file.  See the @code{documentation-utils} system
+for more information.")
+      (license license:expat))))
+
+(define-public cl-documentation-utils-extensions
+  (sbcl-package->cl-source-package sbcl-documentation-utils-extensions))
+
+(define-public ecl-documentation-utils-extensions
+  (sbcl-package->ecl-package sbcl-documentation-utils-extensions))
+
 (define-public sbcl-form-fiddle
   (let ((commit "e0c23599dbb8cff3e83e012f3d86d0764188ad18")
         (revision "0"))
@@ -7695,6 +7158,9 @@ macro.  This library provides a set of simple utilities to help with that.")
 (define-public cl-form-fiddle
   (sbcl-package->cl-source-package sbcl-form-fiddle))
 
+(define-public ecl-form-fiddle
+  (sbcl-package->ecl-package sbcl-form-fiddle))
+
 (define-public sbcl-parachute
   (let ((commit "ca04dd8e43010a6dfffa26dbe1d62af86008d666")
         (revision "0"))
@@ -7727,6 +7193,9 @@ Each test can contain a bunch of test forms that make up its body.")
 (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"))
@@ -7759,6 +7228,9 @@ functions for arrays and vectors.  Originally from Plump.")
 (define-public cl-array-utils
   (sbcl-package->cl-source-package sbcl-array-utils))
 
+(define-public ecl-array-utils
+  (sbcl-package->ecl-package sbcl-array-utils))
+
 (define-public sbcl-plump
   (let ((commit "34f890fe46efdebe7bb70d218f1937e98f632bf9")
         (revision "1"))
@@ -7794,6 +7266,11 @@ your own classes.")
 (define-public cl-plump
   (sbcl-package->cl-source-package sbcl-plump))
 
+(define-public ecl-plump
+  (sbcl-package->ecl-package sbcl-plump))
+
+;;; Split the antik package in two to work around the circular dependency
+;;; between antik/antik and antik/gsll.
 (define-public sbcl-antik-base
   (let ((commit "e4711a69b3d6bf37b5727af05c3cfd03e8428ba3")
         (revision "1"))
@@ -7813,13 +7290,31 @@ your own classes.")
       (build-system asdf-build-system/sbcl)
       (inputs
        `(("alexandria" ,sbcl-alexandria)
+         ("cffi" ,sbcl-cffi)
          ("cl-ppcre" ,sbcl-cl-ppcre)
+         ("drakma" ,sbcl-drakma)
+         ("fare-utils" ,sbcl-fare-utils)
          ("iterate" ,sbcl-iterate)
          ("metabang-bind" ,sbcl-metabang-bind)
          ("named-readtables" ,sbcl-named-readtables)
-         ("split-sequence" ,sbcl-split-sequence)))
+         ("split-sequence" ,sbcl-split-sequence)
+         ("static-vectors" ,sbcl-static-vectors)
+         ("trivial-garbage" ,sbcl-trivial-garbage)
+         ("trivial-utf-8" ,sbcl-trivial-utf-8)))
       (native-inputs
        `(("lisp-unit" ,sbcl-lisp-unit)))
+      (arguments
+       '(#:asd-systems '("antik-base"
+                         "foreign-array")
+         #:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'fix-build
+             (lambda _
+               (for-each delete-file
+                         '("antik.asd"
+                           "physical-dimension.asd"
+                           "science-data.asd"))
+               #t)))))
       (synopsis "Scientific and engineering computation in Common Lisp")
       (description
        "Antik provides a foundation for scientific and engineering
@@ -7836,63 +7331,19 @@ computer known.")
   (sbcl-package->cl-source-package sbcl-antik-base))
 
 (define-public ecl-antik-base
-  (sbcl-package->ecl-package sbcl-antik-base))
-
-(define-public sbcl-foreign-array
-  (package
-    (inherit sbcl-antik-base)
-    (name "sbcl-foreign-array")
-    (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-antik-base)
-       ((#:asd-file _ "") "foreign-array.asd")
-       ((#:asd-system-name _ #f) "foreign-array")))
-    (inputs
-     `(("antik-base" ,sbcl-antik-base)
-       ("cffi" ,sbcl-cffi)
-       ("trivial-garbage" ,sbcl-trivial-garbage)
-       ("static-vectors" ,sbcl-static-vectors)))
-    (synopsis "Common Lisp library providing access to foreign arrays")))
-
-(define-public cl-foreign-array
-  (sbcl-package->cl-source-package sbcl-foreign-array))
-
-(define-public ecl-foreign-array
-  (sbcl-package->ecl-package sbcl-foreign-array))
-
-(define-public sbcl-physical-dimension
-  (package
-    (inherit sbcl-antik-base)
-    (name "sbcl-physical-dimension")
-    (inputs
-     `(("fare-utils" ,sbcl-fare-utils)
-       ("foreign-array" ,sbcl-foreign-array)
-       ("trivial-utf-8" ,sbcl-trivial-utf-8)))
-    (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-antik-base)
-       ((#:asd-file _ "") "physical-dimension.asd")
-       ((#:asd-system-name _ #f) "physical-dimension")))
-    (synopsis
-     "Common Lisp library providing computations with physical units")))
-
-(define-public cl-physical-dimension
-  (sbcl-package->cl-source-package sbcl-physical-dimension))
-
-(define-public sbcl-science-data
-  (package
-    (inherit sbcl-antik-base)
-    (name "sbcl-science-data")
-    (inputs
-     `(("physical-dimension" ,sbcl-physical-dimension)
-       ("drakma" ,sbcl-drakma)))
-    (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-antik-base)
-       ((#:asd-file _ "") "science-data.asd")
-       ((#:asd-system-name _ #f) "science-data")))
-    (synopsis
-     "Common Lisp library for scientific and engineering numerical data")))
-
-(define-public cl-science-data
-  (sbcl-package->cl-source-package sbcl-science-data))
+  (let ((pkg (sbcl-package->ecl-package sbcl-antik-base)))
+    (package
+      (inherit pkg)
+      (arguments
+       (substitute-keyword-arguments (package-arguments pkg)
+         ((#:phases phases)
+          `(modify-phases ,phases
+             (add-after 'unpack 'fix-readtable
+               (lambda _
+                 (substitute* "input-output/readtable.lisp"
+                   (("#-ccl")
+                    "#-(or ccl ecl)"))
+                 #t)))))))))
 
 (define-public sbcl-gsll
   (let ((commit "1a8ada22f9cf5ed7372d352b2317f4ccdb6ab308")
@@ -7915,9 +7366,8 @@ computer known.")
        `(("lisp-unit" ,sbcl-lisp-unit)))
       (inputs
        `(("alexandria" ,sbcl-alexandria)
-         ("cffi-grovel" ,sbcl-cffi-grovel)
-         ("cffi-libffi" ,sbcl-cffi-libffi)
-         ("foreign-array" ,sbcl-foreign-array)
+         ("antik-base" ,sbcl-antik-base)
+         ("cffi" ,sbcl-cffi)
          ("gsl" ,gsl)
          ("metabang-bind" ,sbcl-metabang-bind)
          ("trivial-features" ,sbcl-trivial-features)
@@ -7956,17 +7406,27 @@ intending to program in Lisp.")
 (define-public cl-gsll
   (sbcl-package->cl-source-package sbcl-gsll))
 
+(define-public ecl-gsll
+  (sbcl-package->ecl-package sbcl-gsll))
+
 (define-public sbcl-antik
   (package
     (inherit sbcl-antik-base)
     (name "sbcl-antik")
     (inputs
-     `(("gsll" ,sbcl-gsll)
-       ("physical-dimension" ,sbcl-physical-dimension)))
+     `(("antik-base" ,sbcl-antik-base)
+       ("gsll" ,sbcl-gsll)))
     (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-antik-base)
-       ((#:asd-file _ "") "antik.asd")
-       ((#:asd-system-name _ #f) "antik")))))
+     '(#:asd-systems '("antik"
+                       "science-data")
+       #:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'fix-build
+             (lambda _
+               (for-each delete-file
+                         '("antik-base.asd"
+                           "foreign-array.asd"))
+               #t)))))))
 
 (define-public cl-antik
   (sbcl-package->cl-source-package sbcl-antik))
@@ -8009,13 +7469,11 @@ doesn't support them.")
 (define-public ecl-cl-interpol
   (sbcl-package->ecl-package sbcl-cl-interpol))
 
-(define sbcl-symbol-munger-boot0
-  ;; There is a cyclical dependency between symbol-munger and lisp-unit2.
-  ;; See https://github.com/AccelerationNet/symbol-munger/issues/4
-  (let ((commit "cc2bb4b7acd454d756484aec81ba487648385fc3")
+(define-public sbcl-symbol-munger
+  (let ((commit "97598d4c3c53fd5da72ab78908fbd5d8c7a13416")
         (revision "1"))
     (package
-      (name "sbcl-symbol-munger-boot0")
+      (name "sbcl-symbol-munger")
       (version (git-version "0.0.1" revision commit))
       (source
        (origin
@@ -8026,16 +7484,15 @@ doesn't support them.")
          (file-name (git-file-name name version))
          (sha256
           (base32
-           "0diav5ricqsybqvbp4bkxyj3bn3v9n7xb2pqqc4vg1algsw2pyjl"))))
+           "0y8jywjy0ldyhp7bxf16fdvdd2qgqnd7nlhlqfpfnzxcqk4xy1km"))))
       (build-system asdf-build-system/sbcl)
-      (arguments
-       `(#:asd-file "symbol-munger.asd"
-         #:asd-system-name "symbol-munger"))
       (inputs
-       `(("iterate" ,sbcl-iterate)
-         ("alexandria" ,sbcl-alexandria)))
-      (native-inputs
-       `(("lisp-unit" ,sbcl-lisp-unit)))
+       `(("alexandria" ,sbcl-alexandria)
+         ("iterate" ,sbcl-iterate)))
+      (arguments
+       ;; There is a cyclical dependency between symbol-munger and lisp-unit2.
+       ;; See https://github.com/AccelerationNet/symbol-munger/issues/4
+       '(#:tests? #f))
       (synopsis
        "Capitalization and spacing conversion functions for Common Lisp")
       (description
@@ -8048,13 +7505,19 @@ and camel-case rules.")
       ;; See https://github.com/AccelerationNet/symbol-munger/issues/5
       (license license:expat))))
 
-(define sbcl-lisp-unit2-boot0
+(define-public cl-symbol-munger
+  (sbcl-package->cl-source-package sbcl-symbol-munger))
+
+(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-boot0")
+      (name "sbcl-lisp-unit2")
       (version (git-version "0.2.0" revision commit))
       (source
        (origin
@@ -8067,14 +7530,11 @@ and camel-case rules.")
           (base32
            "1rsqy8y0jqll6xn9a593848f5wvd5ribv4csry1ly0hmdhfnqzlp"))))
       (build-system asdf-build-system/sbcl)
-      (arguments
-       `(#:asd-file "lisp-unit2.asd"
-         #:asd-system-name "lisp-unit2"))
       (inputs
        `(("alexandria" ,sbcl-alexandria)
          ("cl-interpol" ,sbcl-cl-interpol)
          ("iterate" ,sbcl-iterate)
-         ("symbol-munger-boot0" ,sbcl-symbol-munger-boot0)))
+         ("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
@@ -8083,56 +7543,6 @@ by Chris Riesbeck.")
       (home-page "https://github.com/AccelerationNet/lisp-unit2")
       (license license:expat))))
 
-(define-public sbcl-symbol-munger
-  (let ((commit "97598d4c3c53fd5da72ab78908fbd5d8c7a13416")
-        (revision "1"))
-    (package
-      (name "sbcl-symbol-munger")
-      (version (git-version "0.0.1" revision commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/AccelerationNet/symbol-munger")
-               (commit commit)))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32
-           "0y8jywjy0ldyhp7bxf16fdvdd2qgqnd7nlhlqfpfnzxcqk4xy1km"))))
-      (build-system asdf-build-system/sbcl)
-      (inputs
-       `(("alexandria" ,sbcl-alexandria)
-         ("iterate" ,sbcl-iterate)))
-      (native-inputs
-       `(("lisp-unit2-boot0" ,sbcl-lisp-unit2-boot0)))
-      (synopsis
-       "Capitalization and spacing conversion functions for Common Lisp")
-      (description
-       "This is a Common Lisp library to change the capitalization and spacing
-of a string or a symbol.  It can convert to and from Lisp, english, underscore
-and camel-case rules.")
-      (home-page "https://github.com/AccelerationNet/symbol-munger")
-      ;; The package declares a BSD license, but all of the license
-      ;; text is MIT.
-      ;; See https://github.com/AccelerationNet/symbol-munger/issues/5
-      (license license:expat))))
-
-(define-public cl-symbol-munger
-  (sbcl-package->cl-source-package sbcl-symbol-munger))
-
-(define-public ecl-symbol-munger
-  (sbcl-package->ecl-package sbcl-symbol-munger))
-
-(define-public sbcl-lisp-unit2
-  (package
-    (inherit sbcl-lisp-unit2-boot0)
-    (name "sbcl-lisp-unit2")
-    (inputs
-     `(("alexandria" ,sbcl-alexandria)
-       ("cl-interpol" ,sbcl-cl-interpol)
-       ("iterate" ,sbcl-iterate)
-       ("symbol-munger" ,sbcl-symbol-munger)))))
-
 (define-public cl-lisp-unit2
   (sbcl-package->cl-source-package sbcl-lisp-unit2))
 
@@ -8140,8 +7550,8 @@ and camel-case rules.")
   (sbcl-package->ecl-package sbcl-lisp-unit2))
 
 (define-public sbcl-cl-csv
-  (let ((commit "3eba29c8364b033fbe0d189c2500559278b6a362")
-        (revision "1"))
+  (let ((commit "68ecb5d816545677513d7f6308d9e5e8d2265651")
+        (revision "2"))
     (package
       (name "sbcl-cl-csv")
       (version (git-version "1.0.6" revision commit))
@@ -8154,7 +7564,7 @@ and camel-case rules.")
          (file-name (git-file-name name version))
          (sha256
           (base32
-           "07h4ni89jzx93clx453hlnnb5g53hhlcmz5hghqv6ysam48lc8g6"))))
+           "0gcmlbwx5m3kwgk12qi80w08ak8fgdnvyia429fz6gnxmhg0k54x"))))
       (build-system asdf-build-system/sbcl)
       (arguments
        ;; See: https://github.com/AccelerationNet/cl-csv/pull/34
@@ -8214,11 +7624,11 @@ sacrificing much in the way of power.")
 (define-public ecl-external-program
   (sbcl-package->ecl-package sbcl-external-program))
 
-(define sbcl-cl-ana-boot0
+(define-public sbcl-cl-ana
   (let ((commit "fa7cee4c50aa1c859652813049ba0da7c18a0df9")
         (revision "1"))
     (package
-     (name "sbcl-cl-ana-boot0")
+     (name "sbcl-cl-ana")
      (version (git-version "0.0.0" revision commit))
      (source
       (origin
@@ -8228,9 +7638,38 @@ sacrificing much in the way of power.")
              (commit commit)))
        (file-name (git-file-name name version))
        (sha256
-        (base32
-         "0mr47l57m276dbpap7irr4fcnk5fgknhf6mgv4043s8h73amk5qh"))))
+        (base32 "0mr47l57m276dbpap7irr4fcnk5fgknhf6mgv4043s8h73amk5qh"))))
      (build-system asdf-build-system/sbcl)
+     (native-inputs
+      `(("cl-fad" ,sbcl-cl-fad)))
+     (inputs
+      `(("alexandria" ,sbcl-alexandria)
+        ("antik" ,sbcl-antik)
+        ("cffi" ,sbcl-cffi)
+        ("cl-csv" ,sbcl-cl-csv)
+        ("closer-mop" ,sbcl-closer-mop)
+        ("external-program" ,sbcl-external-program)
+        ("gsl" ,gsl)
+        ("gsll" ,sbcl-gsll)
+        ("hdf5" ,hdf5-parallel-openmpi)
+        ("iterate" ,sbcl-iterate)
+        ("libffi" ,libffi)
+        ("split-sequence" ,sbcl-split-sequence)))
+     (arguments
+      `(#:phases
+        (modify-phases %standard-phases
+          (add-after 'unpack 'fix-paths
+            (lambda* (#:key inputs #:allow-other-keys)
+              (substitute* "hdf-cffi/hdf-cffi.lisp"
+                (("/usr/lib/i386-linux-gnu/hdf5/serial/libhdf5.so")
+                 (string-append (assoc-ref inputs "hdf5")
+                                "/lib/libhdf5.so")))
+              (substitute* "gsl-cffi/gsl-cffi.lisp"
+                (("define-foreign-library gsl-cffi" all)
+                 (string-append all " (:unix "
+                                (assoc-ref inputs "gsl")
+                                "/lib/libgsl.so)")))
+              #t)))))
      (synopsis "Common Lisp data analysis library")
      (description
       "CL-ANA is a data analysis library in Common Lisp providing tabular and
@@ -8239,1060 +7678,6 @@ visualization.")
      (home-page "https://github.com/ghollisjr/cl-ana")
      (license license:gpl3))))
 
-(define-public sbcl-cl-ana.pathname-utils
-  (package
-    (inherit sbcl-cl-ana-boot0)
-    (name "sbcl-cl-ana.pathname-utils")
-    (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
-       ((#:asd-file _ "") "pathname-utils/cl-ana.pathname-utils.asd")
-       ((#:asd-system-name _ #f) "cl-ana.pathname-utils")))))
-
-(define-public cl-ana.pathname-utils
-  (sbcl-package->cl-source-package sbcl-cl-ana.pathname-utils))
-
-(define-public ecl-cl-ana.pathname-utils
-  (sbcl-package->ecl-package sbcl-cl-ana.pathname-utils))
-
-(define-public sbcl-cl-ana.package-utils
-  (package
-    (inherit sbcl-cl-ana-boot0)
-    (name "sbcl-cl-ana.package-utils")
-    (inputs
-     `(("alexandria" ,sbcl-alexandria)))
-    (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
-       ((#:asd-file _ "") "package-utils/cl-ana.package-utils.asd")
-       ((#:asd-system-name _ #f) "cl-ana.package-utils")))))
-
-(define-public cl-ana.package-utils
-  (sbcl-package->cl-source-package sbcl-cl-ana.package-utils))
-
-(define-public ecl-cl-ana.package-utils
-  (sbcl-package->ecl-package sbcl-cl-ana.package-utils))
-
-(define-public sbcl-cl-ana.string-utils
-  (package
-    (inherit sbcl-cl-ana-boot0)
-    (name "sbcl-cl-ana.string-utils")
-    (inputs
-     `(("split-sequence" ,sbcl-split-sequence)))
-    (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
-       ((#:asd-file _ "") "string-utils/cl-ana.string-utils.asd")
-       ((#:asd-system-name _ #f) "cl-ana.string-utils")))))
-
-(define-public cl-ana.string-utils
-  (sbcl-package->cl-source-package sbcl-cl-ana.string-utils))
-
-(define-public ecl-cl-ana.string-utils
-  (sbcl-package->ecl-package sbcl-cl-ana.string-utils))
-
-(define-public sbcl-cl-ana.functional-utils
-  (package
-    (inherit sbcl-cl-ana-boot0)
-    (name "sbcl-cl-ana.functional-utils")
-    (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
-       ((#:asd-file _ "") "functional-utils/cl-ana.functional-utils.asd")
-       ((#:asd-system-name _ #f) "cl-ana.functional-utils")))))
-
-(define-public cl-ana.functional-utils
-  (sbcl-package->cl-source-package sbcl-cl-ana.functional-utils))
-
-(define-public ecl-cl-ana.functional-utils
-  (sbcl-package->ecl-package sbcl-cl-ana.functional-utils))
-
-(define-public sbcl-cl-ana.list-utils
-  (package
-    (inherit sbcl-cl-ana-boot0)
-    (name "sbcl-cl-ana.list-utils")
-    (inputs
-     `(("alexandria" ,sbcl-alexandria)
-       ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
-       ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)))
-    (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
-       ((#:asd-file _ "") "list-utils/cl-ana.list-utils.asd")
-       ((#:asd-system-name _ #f) "cl-ana.list-utils")))))
-
-(define-public cl-ana.list-utils
-  (sbcl-package->cl-source-package sbcl-cl-ana.list-utils))
-
-(define-public ecl-cl-ana.list-utils
-  (sbcl-package->ecl-package sbcl-cl-ana.list-utils))
-
-(define-public sbcl-cl-ana.generic-math
-  (package
-    (inherit sbcl-cl-ana-boot0)
-    (name "sbcl-cl-ana.generic-math")
-    (inputs
-     `(("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
-       ("cl-ana.package-utils" ,sbcl-cl-ana.package-utils)))
-    (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
-       ((#:asd-file _ "") "generic-math/cl-ana.generic-math.asd")
-       ((#:asd-system-name _ #f) "cl-ana.generic-math")))))
-
-(define-public cl-ana.generic-math
-  (sbcl-package->cl-source-package sbcl-cl-ana.generic-math))
-
-(define-public ecl-cl-ana.generic-math
-  (sbcl-package->ecl-package sbcl-cl-ana.generic-math))
-
-(define-public sbcl-cl-ana.math-functions
-  (package
-    (inherit sbcl-cl-ana-boot0)
-    (name "sbcl-cl-ana.math-functions")
-    (inputs
-     `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
-       ("gsll" ,sbcl-gsll)))
-    (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
-       ((#:asd-file _ "") "math-functions/cl-ana.math-functions.asd")
-       ((#:asd-system-name _ #f) "cl-ana.math-functions")))))
-
-(define-public cl-ana.math-functions
-  (sbcl-package->cl-source-package sbcl-cl-ana.math-functions))
-
-(define-public sbcl-cl-ana.calculus
-  (package
-    (inherit sbcl-cl-ana-boot0)
-    (name "sbcl-cl-ana.calculus")
-    (inputs
-     `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)))
-    (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
-       ((#:asd-file _ "") "calculus/cl-ana.calculus.asd")
-       ((#:asd-system-name _ #f) "cl-ana.calculus")))))
-
-(define-public cl-ana.calculus
-  (sbcl-package->cl-source-package sbcl-cl-ana.calculus))
-
-(define-public ecl-cl-ana.calculus
-  (sbcl-package->ecl-package sbcl-cl-ana.calculus))
-
-(define-public sbcl-cl-ana.symbol-utils
-  (package
-    (inherit sbcl-cl-ana-boot0)
-    (name "sbcl-cl-ana.symbol-utils")
-    (inputs
-     `(("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)))
-    (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
-       ((#:asd-file _ "") "symbol-utils/cl-ana.symbol-utils.asd")
-       ((#:asd-system-name _ #f) "cl-ana.symbol-utils")))))
-
-(define-public cl-ana.symbol-utils
-  (sbcl-package->cl-source-package sbcl-cl-ana.symbol-utils))
-
-(define-public ecl-cl-ana.symbol-utils
-  (sbcl-package->ecl-package sbcl-cl-ana.symbol-utils))
-
-(define-public sbcl-cl-ana.macro-utils
-  (package
-    (inherit sbcl-cl-ana-boot0)
-    (name "sbcl-cl-ana.macro-utils")
-    (inputs
-     `(("alexandria" ,sbcl-alexandria)
-       ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
-       ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
-       ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
-       ("split-sequence" ,sbcl-split-sequence)))
-    (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
-       ((#:asd-file _ "") "macro-utils/cl-ana.macro-utils.asd")
-       ((#:asd-system-name _ #f) "cl-ana.macro-utils")))))
-
-(define-public cl-ana.macro-utils
-  (sbcl-package->cl-source-package sbcl-cl-ana.macro-utils))
-
-(define-public ecl-cl-ana.macro-utils
-  (sbcl-package->ecl-package sbcl-cl-ana.macro-utils))
-
-(define-public sbcl-cl-ana.binary-tree
-  (package
-    (inherit sbcl-cl-ana-boot0)
-    (name "sbcl-cl-ana.binary-tree")
-    (inputs
-     `(("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
-       ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
-       ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)))
-    (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
-       ((#:asd-file _ "") "binary-tree/cl-ana.binary-tree.asd")
-       ((#:asd-system-name _ #f) "cl-ana.binary-tree")))))
-
-(define-public cl-ana.binary-tree
-  (sbcl-package->cl-source-package sbcl-cl-ana.binary-tree))
-
-(define-public ecl-cl-ana.binary-tree
-  (sbcl-package->ecl-package sbcl-cl-ana.binary-tree))
-
-(define-public sbcl-cl-ana.tensor
-  (package
-    (inherit sbcl-cl-ana-boot0)
-    (name "sbcl-cl-ana.tensor")
-    (inputs
-     `(("alexandria" ,sbcl-alexandria)
-       ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
-       ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
-       ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
-       ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)))
-    (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
-       ((#:asd-file _ "") "tensor/cl-ana.tensor.asd")
-       ((#:asd-system-name _ #f) "cl-ana.tensor")))))
-
-(define-public cl-ana.tensor
-  (sbcl-package->cl-source-package sbcl-cl-ana.tensor))
-
-(define-public ecl-cl-ana.tensor
-  (sbcl-package->ecl-package sbcl-cl-ana.tensor))
-
-(define-public sbcl-cl-ana.error-propogation
-  (package
-    (inherit sbcl-cl-ana-boot0)
-    (name "sbcl-cl-ana.error-propogation")
-    (inputs
-     `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
-       ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions)))
-    (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
-       ((#:asd-file _ "") "error-propogation/cl-ana.error-propogation.asd")
-       ((#:asd-system-name _ #f) "cl-ana.error-propogation")))))
-
-(define-public cl-ana.error-propogation
-  (sbcl-package->cl-source-package sbcl-cl-ana.error-propogation))
-
-(define-public sbcl-cl-ana.quantity
-  (package
-    (inherit sbcl-cl-ana-boot0)
-    (name "sbcl-cl-ana.quantity")
-    (inputs
-     `(("alexandria" ,sbcl-alexandria)
-       ("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
-       ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
-       ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
-       ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
-       ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)))
-    (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
-       ((#:asd-file _ "") "quantity/cl-ana.quantity.asd")
-       ((#:asd-system-name _ #f) "cl-ana.quantity")))))
-
-(define-public cl-ana.quantity
-  (sbcl-package->cl-source-package sbcl-cl-ana.quantity))
-
-(define-public sbcl-cl-ana.table
-  (package
-    (inherit sbcl-cl-ana-boot0)
-    (name "sbcl-cl-ana.table")
-    (inputs
-     `(("alexandria" ,sbcl-alexandria)
-       ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
-       ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
-       ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
-       ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
-       ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)))
-    (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
-       ((#:asd-file _ "") "table/cl-ana.table.asd")
-       ((#:asd-system-name _ #f) "cl-ana.table")))))
-
-(define-public cl-ana.table
-  (sbcl-package->cl-source-package sbcl-cl-ana.table))
-
-(define-public ecl-cl-ana.table
-  (sbcl-package->ecl-package sbcl-cl-ana.table))
-
-(define-public sbcl-cl-ana.table-utils
-  (package
-    (inherit sbcl-cl-ana-boot0)
-    (name "sbcl-cl-ana.table-utils")
-    (inputs
-     `(("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
-       ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
-       ("cl-ana.table" ,sbcl-cl-ana.table)))
-    (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
-       ((#:asd-file _ "") "table-utils/cl-ana.table-utils.asd")
-       ((#:asd-system-name _ #f) "cl-ana.table-utils")))))
-
-(define-public cl-ana.table-utils
-  (sbcl-package->cl-source-package sbcl-cl-ana.table-utils))
-
-(define-public ecl-cl-ana.table-utils
-  (sbcl-package->ecl-package sbcl-cl-ana.table-utils))
-
-(define-public sbcl-cl-ana.hdf-cffi
-  (package
-    (inherit sbcl-cl-ana-boot0)
-    (name "sbcl-cl-ana.hdf-cffi")
-    (inputs
-     `(("cffi" ,sbcl-cffi)
-       ("hdf5" ,hdf5-parallel-openmpi)))
-    (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
-       ((#:asd-file _ "") "hdf-cffi/cl-ana.hdf-cffi.asd")
-       ((#:asd-system-name _ #f) "cl-ana.hdf-cffi")
-       ((#:phases phases '%standard-phases)
-        `(modify-phases ,phases
-           (add-after 'unpack 'fix-paths
-             (lambda* (#:key inputs #:allow-other-keys)
-               (substitute* "hdf-cffi/hdf-cffi.lisp"
-                 (("/usr/lib/i386-linux-gnu/hdf5/serial/libhdf5.so")
-                  (string-append
-                   (assoc-ref inputs "hdf5")
-                   "/lib/libhdf5.so")))))))))))
-
-(define-public cl-ana.hdf-cffi
-  (sbcl-package->cl-source-package sbcl-cl-ana.hdf-cffi))
-
-(define-public ecl-cl-ana.hdf-cffi
-  (sbcl-package->ecl-package sbcl-cl-ana.hdf-cffi))
-
-(define-public sbcl-cl-ana.int-char
-  (package
-    (inherit sbcl-cl-ana-boot0)
-    (name "sbcl-cl-ana.int-char")
-    (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
-       ((#:asd-file _ "") "int-char/cl-ana.int-char.asd")
-       ((#:asd-system-name _ #f) "cl-ana.int-char")))))
-
-(define-public cl-ana.int-char
-  (sbcl-package->cl-source-package sbcl-cl-ana.int-char))
-
-(define-public ecl-cl-ana.int-char
-  (sbcl-package->ecl-package sbcl-cl-ana.int-char))
-
-(define-public sbcl-cl-ana.memoization
-  (package
-    (inherit sbcl-cl-ana-boot0)
-    (name "sbcl-cl-ana.memoization")
-    (inputs
-     `(("alexandria" ,sbcl-alexandria)))
-    (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
-       ((#:asd-file _ "") "memoization/cl-ana.memoization.asd")
-       ((#:asd-system-name _ #f) "cl-ana.memoization")))))
-
-(define-public cl-ana.memoization
-  (sbcl-package->cl-source-package sbcl-cl-ana.memoization))
-
-(define-public ecl-cl-ana.memoization
-  (sbcl-package->ecl-package sbcl-cl-ana.memoization))
-
-(define-public sbcl-cl-ana.typespec
-  (package
-    (inherit sbcl-cl-ana-boot0)
-    (name "sbcl-cl-ana.typespec")
-    (inputs
-     `(("alexandria" ,sbcl-alexandria)
-       ("cffi" ,sbcl-cffi)
-       ("cl-ana.int-char" ,sbcl-cl-ana.int-char)
-       ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
-       ("cl-ana.memoization" ,sbcl-cl-ana.memoization)
-       ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
-       ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
-       ("cl-ana.tensor" ,sbcl-cl-ana.tensor)))
-    (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
-       ((#:asd-file _ "") "typespec/cl-ana.typespec.asd")
-       ((#:asd-system-name _ #f) "cl-ana.typespec")))))
-
-(define-public cl-ana.typespec
-  (sbcl-package->cl-source-package sbcl-cl-ana.typespec))
-
-(define-public ecl-cl-ana.typespec
-  (sbcl-package->ecl-package sbcl-cl-ana.typespec))
-
-(define-public sbcl-cl-ana.hdf-typespec
-  (package
-    (inherit sbcl-cl-ana-boot0)
-    (name "sbcl-cl-ana.hdf-typespec")
-    (inputs
-     `(("alexandria" ,sbcl-alexandria)
-       ("cffi" ,sbcl-cffi)
-       ("cl-ana.hdf-cffi" ,sbcl-cl-ana.hdf-cffi)
-       ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
-       ("cl-ana.memoization" ,sbcl-cl-ana.memoization)
-       ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
-       ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
-       ("cl-ana.typespec" ,sbcl-cl-ana.typespec)))
-    (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
-       ((#:asd-file _ "") "hdf-typespec/cl-ana.hdf-typespec.asd")
-       ((#:asd-system-name _ #f) "cl-ana.hdf-typespec")))))
-
-(define-public cl-ana.hdf-typespec
-  (sbcl-package->cl-source-package sbcl-cl-ana.hdf-typespec))
-
-(define-public ecl-cl-ana.hdf-typespec
-  (sbcl-package->ecl-package sbcl-cl-ana.hdf-typespec))
-
-(define-public sbcl-cl-ana.hdf-utils
-  (package
-    (inherit sbcl-cl-ana-boot0)
-    (name "sbcl-cl-ana.hdf-utils")
-    (inputs
-     `(("alexandria" ,sbcl-alexandria)
-       ("cffi" ,sbcl-cffi)
-       ("cl-ana.hdf-cffi" ,sbcl-cl-ana.hdf-cffi)
-       ("cl-ana.hdf-typespec" ,sbcl-cl-ana.hdf-typespec)
-       ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
-       ("cl-ana.memoization" ,sbcl-cl-ana.memoization)
-       ("cl-ana.pathname-utils" ,sbcl-cl-ana.pathname-utils)
-       ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
-       ("cl-ana.typespec" ,sbcl-cl-ana.typespec)))
-    (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
-       ((#:asd-file _ "") "hdf-utils/cl-ana.hdf-utils.asd")
-       ((#:asd-system-name _ #f) "cl-ana.hdf-utils")))))
-
-(define-public cl-ana.hdf-utils
-  (sbcl-package->cl-source-package sbcl-cl-ana.hdf-utils))
-
-(define-public ecl-cl-ana.hdf-utils
-  (sbcl-package->ecl-package sbcl-cl-ana.hdf-utils))
-
-(define-public sbcl-cl-ana.typed-table
-  (package
-    (inherit sbcl-cl-ana-boot0)
-    (name "sbcl-cl-ana.typed-table")
-    (inputs
-     `(("alexandria" ,sbcl-alexandria)
-       ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
-       ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
-       ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
-       ("cl-ana.table" ,sbcl-cl-ana.table)
-       ("cl-ana.typespec" ,sbcl-cl-ana.typespec)))
-    (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
-       ((#:asd-file _ "") "typed-table/cl-ana.typed-table.asd")
-       ((#:asd-system-name _ #f) "cl-ana.typed-table")))))
-
-(define-public cl-ana.typed-table
-  (sbcl-package->cl-source-package sbcl-cl-ana.typed-table))
-
-(define-public ecl-cl-ana.typed-table
-  (sbcl-package->ecl-package sbcl-cl-ana.typed-table))
-
-(define-public sbcl-cl-ana.hdf-table
-  (package
-    (inherit sbcl-cl-ana-boot0)
-    (name "sbcl-cl-ana.hdf-table")
-    (inputs
-     `(("alexandria" ,sbcl-alexandria)
-       ("cl-ana.binary-tree" ,sbcl-cl-ana.binary-tree)
-       ("cl-ana.hdf-cffi" ,sbcl-cl-ana.hdf-cffi)
-       ("cl-ana.hdf-typespec" ,sbcl-cl-ana.hdf-typespec)
-       ("cl-ana.hdf-utils" ,sbcl-cl-ana.hdf-utils)
-       ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
-       ("cl-ana.memoization" ,sbcl-cl-ana.memoization)
-       ("cl-ana.table" ,sbcl-cl-ana.table)
-       ("cl-ana.typed-table" ,sbcl-cl-ana.typed-table)
-       ("cl-ana.typespec" ,sbcl-cl-ana.typespec)))
-    (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
-       ((#:asd-file _ "") "hdf-table/cl-ana.hdf-table.asd")
-       ((#:asd-system-name _ #f) "cl-ana.hdf-table")))))
-
-(define-public cl-ana.hdf-table
-  (sbcl-package->cl-source-package sbcl-cl-ana.hdf-table))
-
-(define-public ecl-cl-ana.hdf-table
-  (sbcl-package->ecl-package sbcl-cl-ana.hdf-table))
-
-(define-public sbcl-cl-ana.gsl-cffi
-  (package
-    (inherit sbcl-cl-ana-boot0)
-    (name "sbcl-cl-ana.gsl-cffi")
-    (inputs
-     `(("cffi" ,sbcl-cffi)
-       ("gsl" ,gsl)))
-    (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
-       ((#:asd-file _ "") "gsl-cffi/cl-ana.gsl-cffi.asd")
-       ((#:asd-system-name _ #f) "cl-ana.gsl-cffi")
-       ((#:phases phases '%standard-phases)
-        `(modify-phases ,phases
-           (add-after 'unpack 'fix-paths
-             (lambda* (#:key inputs #:allow-other-keys)
-               (substitute* "gsl-cffi/gsl-cffi.lisp"
-                 (("define-foreign-library gsl-cffi" all)
-                  (string-append all " (:unix "
-                                 (assoc-ref inputs "gsl")
-                                 "/lib/libgsl.so)")))))))))))
-
-(define-public cl-ana.gsl-cffi
-  (sbcl-package->cl-source-package sbcl-cl-ana.gsl-cffi))
-
-(define-public ecl-cl-ana.gsl-cffi
-  (sbcl-package->ecl-package sbcl-cl-ana.gsl-cffi))
-
-(define-public sbcl-cl-ana.ntuple-table
-  (package
-    (inherit sbcl-cl-ana-boot0)
-    (name "sbcl-cl-ana.ntuple-table")
-    (inputs
-     `(("alexandria" ,sbcl-alexandria)
-       ("cffi" ,sbcl-cffi)
-       ("cl-ana.gsl-cffi" ,sbcl-cl-ana.gsl-cffi)
-       ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
-       ("cl-ana.table" ,sbcl-cl-ana.table)
-       ("cl-ana.typed-table" ,sbcl-cl-ana.typed-table)
-       ("cl-ana.typespec" ,sbcl-cl-ana.typespec)
-       ("gsll" ,sbcl-gsll)))
-    (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
-       ((#:asd-file _ "") "ntuple-table/cl-ana.ntuple-table.asd")
-       ((#:asd-system-name _ #f) "cl-ana.ntuple-table")))))
-
-(define-public cl-ana.ntuple-table
-  (sbcl-package->cl-source-package sbcl-cl-ana.ntuple-table))
-
-(define-public sbcl-cl-ana.csv-table
-  (package
-    (inherit sbcl-cl-ana-boot0)
-    (name "sbcl-cl-ana.csv-table")
-    (inputs
-     `(("alexandria" ,sbcl-alexandria)
-       ("antik" ,sbcl-antik)
-       ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
-       ("cl-ana.table" ,sbcl-cl-ana.table)
-       ("cl-csv" ,sbcl-cl-csv)
-       ("iterate" ,sbcl-iterate)))
-    (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
-       ((#:asd-file _ "") "csv-table/cl-ana.csv-table.asd")
-       ((#:asd-system-name _ #f) "cl-ana.csv-table")))))
-
-(define-public cl-ana.csv-table
-  (sbcl-package->cl-source-package sbcl-cl-ana.csv-table))
-
-(define-public sbcl-cl-ana.reusable-table
-  (package
-    (inherit sbcl-cl-ana-boot0)
-    (name "sbcl-cl-ana.reusable-table")
-    (inputs
-     `(("alexandria" ,sbcl-alexandria)
-       ("cl-ana.table" ,sbcl-cl-ana.table)))
-    (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
-       ((#:asd-file _ "") "reusable-table/cl-ana.reusable-table.asd")
-       ((#:asd-system-name _ #f) "cl-ana.reusable-table")))))
-
-(define-public cl-ana.reusable-table
-  (sbcl-package->cl-source-package sbcl-cl-ana.reusable-table))
-
-(define-public ecl-cl-ana.reusable-table
-  (sbcl-package->ecl-package sbcl-cl-ana.reusable-table))
-
-(define-public sbcl-cl-ana.linear-algebra
-  (package
-    (inherit sbcl-cl-ana-boot0)
-    (name "sbcl-cl-ana.linear-algebra")
-    (inputs
-     `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
-       ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
-       ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions)
-       ("cl-ana.tensor" ,sbcl-cl-ana.tensor)
-       ("gsll" ,sbcl-gsll)))
-    (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
-       ((#:asd-file _ "") "linear-algebra/cl-ana.linear-algebra.asd")
-       ((#:asd-system-name _ #f) "cl-ana.linear-algebra")))))
-
-(define-public cl-ana.linear-algebra
-  (sbcl-package->cl-source-package sbcl-cl-ana.linear-algebra))
-
-(define-public sbcl-cl-ana.lorentz
-  (package
-    (inherit sbcl-cl-ana-boot0)
-    (name "sbcl-cl-ana.lorentz")
-    (inputs
-     `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
-       ("cl-ana.linear-algebra" ,sbcl-cl-ana.linear-algebra)
-       ("cl-ana.tensor" ,sbcl-cl-ana.tensor)
-       ("iterate" ,sbcl-iterate)))
-    (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
-       ((#:asd-file _ "") "lorentz/cl-ana.lorentz.asd")
-       ((#:asd-system-name _ #f) "cl-ana.lorentz")))))
-
-(define-public cl-ana.lorentz
-  (sbcl-package->cl-source-package sbcl-cl-ana.lorentz))
-
-(define-public sbcl-cl-ana.clos-utils
-  (package
-    (inherit sbcl-cl-ana-boot0)
-    (name "sbcl-cl-ana.clos-utils")
-    (inputs
-     `(("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
-       ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
-       ("cl-ana.tensor" ,sbcl-cl-ana.tensor)
-       ("closer-mop" ,sbcl-closer-mop)))
-    (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
-       ((#:asd-file _ "") "clos-utils/cl-ana.clos-utils.asd")
-       ((#:asd-system-name _ #f) "cl-ana.clos-utils")))))
-
-(define-public cl-ana.clos-utils
-  (sbcl-package->cl-source-package sbcl-cl-ana.clos-utils))
-
-(define-public ecl-cl-ana.clos-utils
-  (sbcl-package->ecl-package sbcl-cl-ana.clos-utils))
-
-(define-public sbcl-cl-ana.hash-table-utils
-  (package
-    (inherit sbcl-cl-ana-boot0)
-    (name "sbcl-cl-ana.hash-table-utils")
-    (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
-       ((#:asd-file _ "") "hash-table-utils/cl-ana.hash-table-utils.asd")
-       ((#:asd-system-name _ #f) "cl-ana.hash-table-utils")))))
-
-(define-public cl-ana.hash-table-utils
-  (sbcl-package->cl-source-package sbcl-cl-ana.hash-table-utils))
-
-(define-public ecl-cl-ana.hash-table-utils
-  (sbcl-package->ecl-package sbcl-cl-ana.hash-table-utils))
-
-(define-public sbcl-cl-ana.map
-  (package
-    (inherit sbcl-cl-ana-boot0)
-    (name "sbcl-cl-ana.map")
-    (inputs
-     `(("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)))
-    (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
-       ((#:asd-file _ "") "map/cl-ana.map.asd")
-       ((#:asd-system-name _ #f) "cl-ana.map")))))
-
-(define-public cl-ana.map
-  (sbcl-package->cl-source-package sbcl-cl-ana.map))
-
-(define-public ecl-cl-ana.map
-  (sbcl-package->ecl-package sbcl-cl-ana.map))
-
-(define-public sbcl-cl-ana.fitting
-  (package
-    (inherit sbcl-cl-ana-boot0)
-    (name "sbcl-cl-ana.fitting")
-    (inputs
-     `(("alexandria" ,sbcl-alexandria)
-       ("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
-       ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
-       ("cl-ana.map" ,sbcl-cl-ana.map)
-       ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions)
-       ("gsll" ,sbcl-gsll)))
-    (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
-       ((#:asd-file _ "") "fitting/cl-ana.fitting.asd")
-       ((#:asd-system-name _ #f) "cl-ana.fitting")))))
-
-(define-public cl-ana.fitting
-  (sbcl-package->cl-source-package sbcl-cl-ana.fitting))
-
-(define-public sbcl-cl-ana.histogram
-  (package
-    (inherit sbcl-cl-ana-boot0)
-    (name "sbcl-cl-ana.histogram")
-    (inputs
-     `(("alexandria" ,sbcl-alexandria)
-       ("iterate" ,sbcl-iterate)
-       ("cl-ana.binary-tree" ,sbcl-cl-ana.binary-tree)
-       ("cl-ana.clos-utils" ,sbcl-cl-ana.clos-utils)
-       ("cl-ana.fitting" ,sbcl-cl-ana.fitting)
-       ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
-       ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
-       ("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)
-       ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
-       ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
-       ("cl-ana.map" ,sbcl-cl-ana.map)
-       ("cl-ana.tensor" ,sbcl-cl-ana.tensor)))
-    (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
-       ((#:asd-file _ "") "histogram/cl-ana.histogram.asd")
-       ((#:asd-system-name _ #f) "cl-ana.histogram")))))
-
-(define-public cl-ana.histogram
-  (sbcl-package->cl-source-package sbcl-cl-ana.histogram))
-
-(define-public sbcl-cl-ana.file-utils
-  (package
-    (inherit sbcl-cl-ana-boot0)
-    (name "sbcl-cl-ana.file-utils")
-    (inputs
-     `(("external-program" ,sbcl-external-program)
-       ("split-sequence" ,sbcl-split-sequence)))
-    (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
-       ((#:asd-file _ "") "file-utils/cl-ana.file-utils.asd")
-       ((#:asd-system-name _ #f) "cl-ana.file-utils")))))
-
-(define-public cl-ana.file-utils
-  (sbcl-package->cl-source-package sbcl-cl-ana.file-utils))
-
-(define-public ecl-cl-ana.file-utils
-  (sbcl-package->ecl-package sbcl-cl-ana.file-utils))
-
-(define-public sbcl-cl-ana.statistics
-  (package
-    (inherit sbcl-cl-ana-boot0)
-    (name "sbcl-cl-ana.statistics")
-    (inputs
-     `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
-       ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
-       ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
-       ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
-       ("cl-ana.map" ,sbcl-cl-ana.map)))
-    (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
-       ((#:asd-file _ "") "statistics/cl-ana.statistics.asd")
-       ((#:asd-system-name _ #f) "cl-ana.statistics")))))
-
-(define-public cl-ana.statistics
-  (sbcl-package->cl-source-package sbcl-cl-ana.statistics))
-
-(define-public sbcl-cl-ana.gnuplot-interface
-  (package
-    (inherit sbcl-cl-ana-boot0)
-    (name "sbcl-cl-ana.gnuplot-interface")
-    (inputs
-     `(("external-program" ,sbcl-external-program)))
-    (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
-       ((#:asd-file _ "") "gnuplot-interface/cl-ana.gnuplot-interface.asd")
-       ((#:asd-system-name _ #f) "cl-ana.gnuplot-interface")))))
-
-(define-public cl-ana.gnuplot-interface
-  (sbcl-package->cl-source-package sbcl-cl-ana.gnuplot-interface))
-
-(define-public ecl-cl-ana.gnuplot-interface
-  (sbcl-package->ecl-package sbcl-cl-ana.gnuplot-interface))
-
-(define-public sbcl-cl-ana.plotting
-  (package
-    (inherit sbcl-cl-ana-boot0)
-    (name "sbcl-cl-ana.plotting")
-    (inputs
-     `(("alexandria" ,sbcl-alexandria)
-       ("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
-       ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
-       ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
-       ("cl-ana.gnuplot-interface" ,sbcl-cl-ana.gnuplot-interface)
-       ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
-       ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
-       ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
-       ("cl-ana.map" ,sbcl-cl-ana.map)
-       ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions)
-       ("cl-ana.pathname-utils" ,sbcl-cl-ana.pathname-utils)
-       ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
-       ("cl-ana.tensor" ,sbcl-cl-ana.tensor)
-       ("external-program" ,sbcl-external-program)
-       ("split-sequence" ,sbcl-split-sequence)))
-    (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
-       ((#:asd-file _ "") "plotting/cl-ana.plotting.asd")
-       ((#:asd-system-name _ #f) "cl-ana.plotting")))))
-
-(define-public cl-ana.plotting
-  (sbcl-package->cl-source-package sbcl-cl-ana.plotting))
-
-(define-public sbcl-cl-ana.table-viewing
-  (package
-    (inherit sbcl-cl-ana-boot0)
-    (name "sbcl-cl-ana.table-viewing")
-    (inputs
-     `(("alexandria" ,sbcl-alexandria)
-       ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
-       ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
-       ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
-       ("cl-ana.plotting" ,sbcl-cl-ana.plotting)
-       ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
-       ("cl-ana.table" ,sbcl-cl-ana.table)))
-    (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
-       ((#:asd-file _ "") "table-viewing/cl-ana.table-viewing.asd")
-       ((#:asd-system-name _ #f) "cl-ana.table-viewing")))))
-
-(define-public cl-ana.table-viewing
-  (sbcl-package->cl-source-package sbcl-cl-ana.table-viewing))
-
-(define-public sbcl-cl-ana.serialization
-  (package
-    (inherit sbcl-cl-ana-boot0)
-    (name "sbcl-cl-ana.serialization")
-    (inputs
-     `(("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
-       ("cl-ana.hdf-utils" ,sbcl-cl-ana.hdf-utils)
-       ("cl-ana.hdf-table" ,sbcl-cl-ana.hdf-table)
-       ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
-       ("cl-ana.int-char" ,sbcl-cl-ana.int-char)
-       ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
-       ("cl-ana.typespec" ,sbcl-cl-ana.typespec)))
-    (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
-       ((#:asd-file _ "") "serialization/cl-ana.serialization.asd")
-       ((#:asd-system-name _ #f) "cl-ana.serialization")))))
-
-(define-public cl-ana.serialization
-  (sbcl-package->cl-source-package sbcl-cl-ana.serialization))
-
-(define-public sbcl-cl-ana.makeres
-  (package
-    (inherit sbcl-cl-ana-boot0)
-    (name "sbcl-cl-ana.makeres")
-    (inputs
-     `(("alexandria" ,sbcl-alexandria)
-       ("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
-       ("cl-ana.file-utils" ,sbcl-cl-ana.file-utils)
-       ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
-       ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
-       ("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)
-       ("cl-ana.hdf-utils" ,sbcl-cl-ana.hdf-utils)
-       ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
-       ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
-       ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
-       ("cl-ana.map" ,sbcl-cl-ana.map)
-       ("cl-ana.memoization" ,sbcl-cl-ana.memoization)
-       ("cl-ana.pathname-utils" ,sbcl-cl-ana.pathname-utils)
-       ("cl-ana.plotting" ,sbcl-cl-ana.plotting)
-       ("cl-ana.reusable-table" ,sbcl-cl-ana.reusable-table)
-       ("cl-ana.serialization" ,sbcl-cl-ana.serialization)
-       ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
-       ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
-       ("cl-ana.table" ,sbcl-cl-ana.table)
-       ("external-program" ,sbcl-external-program)))
-    (native-inputs
-     `(("cl-fad" ,sbcl-cl-fad)))
-    (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
-       ((#:asd-file _ "") "makeres/cl-ana.makeres.asd")
-       ((#:asd-system-name _ #f) "cl-ana.makeres")))))
-
-(define-public cl-ana.makeres
-  (sbcl-package->cl-source-package sbcl-cl-ana.makeres))
-
-(define-public sbcl-cl-ana.makeres-macro
-  (package
-    (inherit sbcl-cl-ana-boot0)
-    (name "sbcl-cl-ana.makeres-macro")
-    (inputs
-     `(("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
-       ("cl-ana.makeres" ,sbcl-cl-ana.makeres)))
-    (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
-       ((#:asd-file _ "") "makeres-macro/cl-ana.makeres-macro.asd")
-       ((#:asd-system-name _ #f) "cl-ana.makeres-macro")))))
-
-(define-public cl-ana.makeres-macro
-  (sbcl-package->cl-source-package sbcl-cl-ana.makeres-macro))
-
-(define-public sbcl-cl-ana.makeres-block
-  (package
-    (inherit sbcl-cl-ana-boot0)
-    (name "sbcl-cl-ana.makeres-block")
-    (inputs
-     `(("alexandria" ,sbcl-alexandria)
-       ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
-       ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
-       ("cl-ana.makeres" ,sbcl-cl-ana.makeres)))
-    (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
-       ((#:asd-file _ "") "makeres-block/cl-ana.makeres-block.asd")
-       ((#:asd-system-name _ #f) "cl-ana.makeres-block")))))
-
-(define-public cl-ana.makeres-block
-  (sbcl-package->cl-source-package sbcl-cl-ana.makeres-block))
-
-(define-public sbcl-cl-ana.makeres-progress
-  (package
-    (inherit sbcl-cl-ana-boot0)
-    (name "sbcl-cl-ana.makeres-progress")
-    (inputs
-     `(("alexandria" ,sbcl-alexandria)
-       ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
-       ("cl-ana.makeres" ,sbcl-cl-ana.makeres)))
-    (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
-       ((#:asd-file _ "") "makeres-progress/cl-ana.makeres-progress.asd")
-       ((#:asd-system-name _ #f) "cl-ana.makeres-progress")))))
-
-(define-public cl-ana.makeres-progress
-  (sbcl-package->cl-source-package sbcl-cl-ana.makeres-progress))
-
-(define-public sbcl-cl-ana.makeres-table
-  (package
-    (inherit sbcl-cl-ana-boot0)
-    (name "sbcl-cl-ana.makeres-table")
-    (inputs
-     `(("cl-ana.csv-table" ,sbcl-cl-ana.csv-table)
-       ("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)
-       ("cl-ana.hdf-table" ,sbcl-cl-ana.hdf-table)
-       ("cl-ana.hdf-utils" ,sbcl-cl-ana.hdf-utils)
-       ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
-       ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
-       ("cl-ana.makeres" ,sbcl-cl-ana.makeres)
-       ("cl-ana.makeres-macro" ,sbcl-cl-ana.makeres-macro)
-       ("cl-ana.memoization" ,sbcl-cl-ana.memoization)
-       ("cl-ana.ntuple-table" ,sbcl-cl-ana.ntuple-table)
-       ("cl-ana.reusable-table" ,sbcl-cl-ana.reusable-table)
-       ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
-       ("cl-ana.table" ,sbcl-cl-ana.table)))
-    (native-inputs
-     `(("cl-fad" ,sbcl-cl-fad)))
-    (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
-       ((#:asd-file _ "") "makeres-table/cl-ana.makeres-table.asd")
-       ((#:asd-system-name _ #f) "cl-ana.makeres-table")))))
-
-(define-public cl-ana.makeres-table
-  (sbcl-package->cl-source-package sbcl-cl-ana.makeres-table))
-
-(define-public sbcl-cl-ana.makeres-graphviz
-  (package
-    (inherit sbcl-cl-ana-boot0)
-    (name "sbcl-cl-ana.makeres-graphviz")
-    (inputs
-     `(("cl-ana.makeres" ,sbcl-cl-ana.makeres)
-       ("external-program" ,sbcl-external-program)))
-    (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
-       ((#:asd-file _ "") "makeres-graphviz/cl-ana.makeres-graphviz.asd")
-       ((#:asd-system-name _ #f) "cl-ana.makeres-graphviz")))))
-
-(define-public cl-ana.makeres-graphviz
-  (sbcl-package->cl-source-package sbcl-cl-ana.makeres-graphviz))
-
-(define-public sbcl-cl-ana.makeres-branch
-  (package
-    (inherit sbcl-cl-ana-boot0)
-    (name "sbcl-cl-ana.makeres-branch")
-    (inputs
-     `(("alexandria" ,sbcl-alexandria)
-       ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
-       ("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)
-       ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
-       ("cl-ana.map" ,sbcl-cl-ana.map)
-       ("cl-ana.makeres" ,sbcl-cl-ana.makeres)))
-    (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
-       ((#:asd-file _ "") "makeres-branch/cl-ana.makeres-branch.asd")
-       ((#:asd-system-name _ #f) "cl-ana.makeres-branch")))))
-
-(define-public cl-ana.makeres-branch
-  (sbcl-package->cl-source-package sbcl-cl-ana.makeres-branch))
-
-(define-public sbcl-cl-ana.makeres-utils
-  (package
-    (inherit sbcl-cl-ana-boot0)
-    (name "sbcl-cl-ana.makeres-utils")
-    (inputs
-     `(("alexandria" ,sbcl-alexandria)
-       ("cl-ana.file-utils" ,sbcl-cl-ana.file-utils)
-       ("cl-ana.fitting" ,sbcl-cl-ana.fitting)
-       ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
-       ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
-       ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
-       ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
-       ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
-       ("cl-ana.makeres" ,sbcl-cl-ana.makeres)
-       ("cl-ana.map" ,sbcl-cl-ana.map)
-       ("cl-ana.pathname-utils" ,sbcl-cl-ana.pathname-utils)
-       ("cl-ana.plotting" ,sbcl-cl-ana.plotting)
-       ("cl-ana.reusable-table" ,sbcl-cl-ana.reusable-table)
-       ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
-       ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
-       ("cl-ana.table" ,sbcl-cl-ana.table)))
-    (native-inputs
-     `(("cl-fad" ,sbcl-cl-fad)))
-    (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
-       ((#:asd-file _ "") "makeres-utils/cl-ana.makeres-utils.asd")
-       ((#:asd-system-name _ #f) "cl-ana.makeres-utils")))))
-
-(define-public cl-ana.makeres-utils
-  (sbcl-package->cl-source-package sbcl-cl-ana.makeres-utils))
-
-(define-public sbcl-cl-ana.statistical-learning
-  (package
-    (inherit sbcl-cl-ana-boot0)
-    (name "sbcl-cl-ana.statistical-learning")
-    (inputs
-     `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
-       ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
-       ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
-       ("cl-ana.linear-algebra" ,sbcl-cl-ana.linear-algebra)
-       ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
-       ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
-       ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions)
-       ("cl-ana.map" ,sbcl-cl-ana.map)
-       ("cl-ana.statistics" ,sbcl-cl-ana.statistics)))
-    (native-inputs
-     `(("cl-fad" ,sbcl-cl-fad)))
-    (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
-       ((#:asd-file _ "")
-        "statistical-learning/cl-ana.statistical-learning.asd")
-       ((#:asd-system-name _ #f) "cl-ana.statistical-learning")))))
-
-(define-public cl-ana.statistical-learning
-  (sbcl-package->cl-source-package sbcl-cl-ana.statistical-learning))
-
-(define-public sbcl-cl-ana
-  (package
-    (inherit sbcl-cl-ana-boot0)
-    (name "sbcl-cl-ana")
-    (inputs
-     `(("cl-ana.binary-tree" ,sbcl-cl-ana.binary-tree)
-       ("cl-ana.calculus" ,sbcl-cl-ana.calculus)
-       ("cl-ana.clos-utils" ,sbcl-cl-ana.clos-utils)
-       ("cl-ana.csv-table" ,sbcl-cl-ana.csv-table)
-       ("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
-       ("cl-ana.file-utils" ,sbcl-cl-ana.file-utils)
-       ("cl-ana.fitting" ,sbcl-cl-ana.fitting)
-       ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
-       ("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)
-       ("cl-ana.hdf-table" ,sbcl-cl-ana.hdf-table)
-       ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
-       ("cl-ana.int-char" ,sbcl-cl-ana.int-char)
-       ("cl-ana.linear-algebra" ,sbcl-cl-ana.linear-algebra)
-       ("cl-ana.lorentz" ,sbcl-cl-ana.lorentz)
-       ("cl-ana.map" ,sbcl-cl-ana.map)
-       ("cl-ana.makeres" ,sbcl-cl-ana.makeres)
-       ("cl-ana.makeres-block" ,sbcl-cl-ana.makeres-block)
-       ("cl-ana.makeres-branch" ,sbcl-cl-ana.makeres-branch)
-       ("cl-ana.makeres-graphviz" ,sbcl-cl-ana.makeres-graphviz)
-       ("cl-ana.makeres-macro" ,sbcl-cl-ana.makeres-macro)
-       ("cl-ana.makeres-progress" ,sbcl-cl-ana.makeres-progress)
-       ("cl-ana.makeres-table" ,sbcl-cl-ana.makeres-table)
-       ("cl-ana.makeres-utils" ,sbcl-cl-ana.makeres-utils)
-       ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions)
-       ("cl-ana.ntuple-table" ,sbcl-cl-ana.ntuple-table)
-       ("cl-ana.package-utils" ,sbcl-cl-ana.package-utils)
-       ("cl-ana.pathname-utils" ,sbcl-cl-ana.pathname-utils)
-       ("cl-ana.plotting" ,sbcl-cl-ana.plotting)
-       ("cl-ana.quantity" ,sbcl-cl-ana.quantity)
-       ("cl-ana.reusable-table" ,sbcl-cl-ana.reusable-table)
-       ("cl-ana.serialization" ,sbcl-cl-ana.serialization)
-       ("cl-ana.statistics" ,sbcl-cl-ana.statistics)
-       ("cl-ana.statistical-learning" ,sbcl-cl-ana.statistical-learning)
-       ("cl-ana.table" ,sbcl-cl-ana.table)
-       ("cl-ana.table-utils" ,sbcl-cl-ana.table-utils)
-       ("cl-ana.table-viewing" ,sbcl-cl-ana.table-viewing)
-       ("cl-ana.tensor" ,sbcl-cl-ana.tensor)
-       ("libffi" ,libffi)))
-    (native-inputs
-     `(("cl-fad" ,sbcl-cl-fad)))
-    (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
-       ((#:asd-file _ "") "cl-ana.asd")
-       ((#:asd-system-name _ #f) "cl-ana")))))
-
 (define-public cl-ana
   (sbcl-package->cl-source-package sbcl-cl-ana))
 
@@ -9428,6 +7813,13 @@ may contain sets, maps may be keyed by sets, etc.")
 (define-public cl-fset
   (sbcl-package->cl-source-package sbcl-fset))
 
+(define-public ecl-fset
+  (package
+    (inherit (sbcl-package->ecl-package sbcl-fset))
+    (arguments
+     ;; Tests fails on ECL with "The function FSET::MAKE-CHAR is undefined".
+     '(#:tests? #f))))
+
 (define-public sbcl-cl-cont
   (let ((commit "fc1fa7e6eb64894fdca13e688e6015fad5290d2a")
         (revision "1"))
@@ -9561,7 +7953,6 @@ has a small codebase that's easy to understand and use.")
       (inputs
        `(("alexandria" ,sbcl-alexandria)
          ("cffi" ,sbcl-cffi)
-         ("cffi-grovel" ,sbcl-cffi-grovel)
          ("libuv" ,libuv)))
       (arguments
        `(#:phases
@@ -9591,11 +7982,11 @@ has a small codebase that's easy to understand and use.")
 (define-public ecl-cl-libuv
   (sbcl-package->ecl-package sbcl-cl-libuv))
 
-(define-public sbcl-cl-async-base
+(define-public sbcl-cl-async
   (let ((commit "f6423e44404a44434d803605e0d2e17199158e28")
         (revision "1"))
     (package
-      (name "sbcl-cl-async-base")
+      (name "sbcl-cl-async")
       (version (git-version "0.6.1" revision commit))
       (source
        (origin
@@ -9609,98 +8000,23 @@ has a small codebase that's easy to understand and use.")
            "11xi9dxb8mjgwzrkj88i0xkgk26z9w9ddxzbv6xsvfc1d4x5cf4x"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("bordeaux-threads" ,sbcl-bordeaux-threads)
+       `(("babel" ,sbcl-babel)
+         ("bordeaux-threads" ,sbcl-bordeaux-threads)
          ("cffi" ,sbcl-cffi)
-         ("cl-libuv" ,sbcl-cl-libuv)))
+         ("cl-libuv" ,sbcl-cl-libuv)
+         ("cl-ppcre" ,sbcl-cl-ppcre)
+         ("fast-io" ,sbcl-fast-io)
+         ("openssl" ,openssl)
+         ("static-vectors" ,sbcl-static-vectors)
+         ("trivial-features" ,sbcl-trivial-features)
+         ("trivial-gray-streams" ,sbcl-trivial-gray-streams)
+         ("vom" ,sbcl-vom)))
       (arguments
-       `(#:asd-file "cl-async.asd"))
-      (synopsis "Base system for cl-async")
-      (description
-       "Cl-async is a library for general purpose, non-blocking programming in
-Common Lisp.  It uses the libuv library as backend.")
-      (home-page "https://orthecreedence.github.io/cl-async/")
-      (license license:expat))))
-
-(define-public cl-async-base
-  (sbcl-package->cl-source-package sbcl-cl-async-base))
-
-(define-public ecl-cl-async-base
-  (sbcl-package->ecl-package sbcl-cl-async-base))
-
-(define-public sbcl-cl-async-util
-  (package
-    (inherit sbcl-cl-async-base)
-    (name "sbcl-cl-async-util")
-    (inputs
-     `(("bordeaux-threads" ,sbcl-bordeaux-threads)
-       ("cffi" ,sbcl-cffi)
-       ("cl-async-base" ,sbcl-cl-async-base)
-       ("cl-libuv" ,sbcl-cl-libuv)
-       ("cl-ppcre" ,sbcl-cl-ppcre)
-       ("fast-io" ,sbcl-fast-io)
-       ("vom" ,sbcl-vom)))
-    (synopsis "Internal utilities for cl-async")))
-
-(define-public cl-async-util
-  (sbcl-package->cl-source-package sbcl-cl-async-util))
-
-(define-public ecl-cl-async-util
-  (sbcl-package->ecl-package sbcl-cl-async-util))
-
-(define-public sbcl-cl-async
-  (package
-    (inherit sbcl-cl-async-base)
-    (name "sbcl-cl-async")
-    (inputs
-     `(("babel" ,sbcl-babel)
-       ("cffi" ,sbcl-cffi)
-       ("cl-async-base" ,sbcl-cl-async-base)
-       ("cl-async-util" ,sbcl-cl-async-util)
-       ("cl-libuv" ,sbcl-cl-libuv)
-       ("cl-ppcre" ,sbcl-cl-ppcre)
-       ("static-vectors" ,sbcl-static-vectors)
-       ("trivial-features" ,sbcl-trivial-features)
-       ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
-    (synopsis "Asynchronous operations for Common Lisp")))
-
-(define-public cl-async
-  (sbcl-package->cl-source-package sbcl-cl-async))
-
-(define-public ecl-cl-async
-  (sbcl-package->ecl-package sbcl-cl-async))
-
-(define-public sbcl-cl-async-repl
-  (package
-    (inherit sbcl-cl-async-base)
-    (name "sbcl-cl-async-repl")
-    (inputs
-     `(("bordeaux-threads" ,sbcl-bordeaux-threads)
-       ("cl-async" ,sbcl-cl-async)))
-    (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-cl-async-base)
-       ((#:asd-file _ "") "cl-async-repl.asd")))
-    (synopsis "REPL integration for cl-async")))
-
-(define-public cl-async-repl
-  (sbcl-package->cl-source-package sbcl-cl-async-repl))
-
-(define-public ecl-cl-async-repl
-  (sbcl-package->ecl-package sbcl-cl-async-repl))
-
-(define-public sbcl-cl-async-ssl
-  (package
-    (inherit sbcl-cl-async-base)
-    (name "sbcl-cl-async-ssl")
-    (inputs
-     `(("cffi" ,sbcl-cffi)
-       ("cl-async" ,sbcl-cl-async)
-       ("openssl" ,openssl)
-       ("vom" ,sbcl-vom)))
-    (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-cl-async-base)
-       ((#:asd-file _ "") "cl-async-ssl.asd")
-       ((#:phases phases '%standard-phases)
-        `(modify-phases ,phases
+       `(#:asd-systems '("cl-async"
+                         "cl-async-repl"
+                         "cl-async-ssl")
+         #:phases
+         (modify-phases %standard-phases
            (add-after 'unpack 'fix-paths
              (lambda* (#:key inputs #:allow-other-keys)
                (substitute* "src/ssl/package.lisp"
@@ -9710,14 +8026,19 @@ Common Lisp.  It uses the libuv library as backend.")
                  (("libssl\\.so")
                   (string-append (assoc-ref inputs "openssl")
                                  "/lib/libssl.so")))
-               #t))))))
-    (synopsis "SSL wrapper around cl-async socket implementation")))
+               #t)))))
+      (synopsis "Asynchronous operations for Common Lisp")
+      (description
+       "Cl-async is a library for general purpose, non-blocking programming in
+Common Lisp.  It uses the libuv library as backend.")
+      (home-page "https://orthecreedence.github.io/cl-async/")
+      (license license:expat))))
 
-(define-public cl-async-ssl
-  (sbcl-package->cl-source-package sbcl-cl-async-ssl))
+(define-public cl-async
+  (sbcl-package->cl-source-package sbcl-cl-async))
 
-(define-public ecl-cl-async-ssl
-  (sbcl-package->ecl-package sbcl-cl-async-ssl))
+(define-public ecl-cl-async
+  (sbcl-package->ecl-package sbcl-cl-async))
 
 (define-public sbcl-blackbird
   (let ((commit "d361f81c1411dec07f6c2dcb11c78f7aea9aaca8")
@@ -9919,21 +8240,30 @@ ZeroMQ.")
      `(("imagemagick" ,imagemagick)
        ("tk" ,tk)))
     (arguments
-     `(#:asd-file "ltk/ltk.asd"
+     `(#:asd-systems '("ltk"
+                       "ltk-mw"
+                       "ltk-remote")
        #:tests? #f
-       #:phases (modify-phases %standard-phases
-                  (add-after 'unpack 'fix-paths
-                    (lambda* (#:key inputs #:allow-other-keys)
-                      (substitute* "ltk/ltk.lisp"
-                        (("#-freebsd \"wish\"")
-                         (string-append "#-freebsd \""
-                                        (assoc-ref inputs "tk")
-                                        "/bin/wish\""))
-                        (("do-execute \"convert\"")
-                         (string-append "do-execute \""
-                                        (assoc-ref inputs "imagemagick")
-                                        "/bin/convert\"")))
-                      #t)))))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-paths
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "ltk/ltk.lisp"
+               (("#-freebsd \"wish\"")
+                (string-append "#-freebsd \""
+                               (assoc-ref inputs "tk")
+                               "/bin/wish\""))
+               (("do-execute \"convert\"")
+                (string-append "do-execute \""
+                               (assoc-ref inputs "imagemagick")
+                               "/bin/convert\"")))
+             #t))
+         (add-after 'unpack 'fix-build
+           (lambda _
+             (substitute* "ltk/ltk-remote.lisp"
+               (("\\(:export")
+                "(:shadow #:raise) (:export"))
+             #t)))))
     (synopsis "Common Lisp bindings for the Tk GUI toolkit")
     (description
      "LTK is a Common Lisp binding for the Tk graphics toolkit.  It is written
@@ -9947,44 +8277,6 @@ in pure Common Lisp and does not require any Tk knowledge for its usage.")
 (define-public ecl-ltk
   (sbcl-package->ecl-package sbcl-ltk))
 
-(define-public sbcl-ltk-mw
-  (package
-    (inherit sbcl-ltk)
-    (name "sbcl-ltk-mw")
-    (inputs
-     `(("ltk" ,sbcl-ltk)))
-    (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-ltk)
-       ((#:asd-file _) "ltk/ltk-mw.asd")
-       ((#:phases _) '%standard-phases)))
-    (synopsis "Extra widgets for LTK")
-    (description
-     "This is a collection of higher-level widgets built on top of LTK.")))
-
-(define-public cl-ltk-mw
-  (sbcl-package->cl-source-package sbcl-ltk-mw))
-
-(define-public ecl-ltk-mw
-  (sbcl-package->ecl-package sbcl-ltk-mw))
-
-(define-public sbcl-ltk-remote
-  (package
-    (inherit sbcl-ltk)
-    (name "sbcl-ltk-remote")
-    (inputs
-     `(("ltk" ,sbcl-ltk)))
-    (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-ltk)
-       ((#:asd-file _) "ltk/ltk-remote.asd")
-       ((#:phases _) '%standard-phases)))
-    (synopsis "Remote GUI support for LTK")
-    (description
-     "This LTK extension allows the GUI to be displayed on a computer different
-from the one running the Lisp program by using a TCP connection.")))
-
-(define-public cl-ltk-remote
-  (sbcl-package->cl-source-package sbcl-ltk-remote))
-
 (define-public sbcl-cl-lex
   (let ((commit "f2dbbe25ef553005fb402d9a6203180c3fa1093b")
         (revision "1"))
@@ -10313,14 +8605,11 @@ them as PNG files.")
                                "/LICENSE")))
       (inputs
        `(("cffi" ,sbcl-cffi)
-         ("cffi-grovel" ,sbcl-cffi-grovel)
          ("hdf5" ,hdf5-1.10)))
       (native-inputs
        `(("fiveam" ,sbcl-fiveam)))
       (arguments
-       `(#:asd-system-name "hdf5-cffi"
-         #:asd-file "hdf5-cffi.asd"
-         #:test-asd-file "hdf5-cffi.test.asd"
+       `(#:test-asd-file "hdf5-cffi.test.asd"
          ;; Tests depend on hdf5-cffi.examples.asd in addition to hdf5-cffi.asd,
          ;; I don't know if there is a way to tell asdf-build-system to load
          ;; an additional system first, so tests are disabled.
@@ -10371,9 +8660,7 @@ generation functions from the GSL library.")
     (home-page "https://github.com/lvaruzza/cl-randist")
     (license license:bsd-2)
     (arguments
-     `(#:asd-system-name "cl-randist"
-       #:asd-file "cl-randist.asd"
-       #:tests? #f))))
+     `(#:tests? #f))))
 
 (define-public cl-randist
   (sbcl-package->cl-source-package sbcl-cl-randist))
@@ -10405,9 +8692,7 @@ covered by the Common Lisp standard.")
     (inputs
      `(("documentation-utils" ,sbcl-documentation-utils)))
     (arguments
-     `(#:asd-system-name "float-features"
-       #:asd-file "float-features.asd"
-       #:tests? #f))))
+     `(#:tests? #f))))
 
 (define-public cl-float-features
   (sbcl-package->cl-source-package sbcl-float-features))
@@ -10445,9 +8730,7 @@ caching based on arguments (an expanded form of memoization).")
        ("symbol-munger" ,sbcl-symbol-munger)
        ("closer-mop" ,sbcl-closer-mop)))
     (arguments
-     `(#:asd-system-name "function-cache"
-       #:asd-file "function-cache.asd"
-       #:tests? #f))))
+     `(#:tests? #f))))
 
 (define-public cl-function-cache
   (sbcl-package->cl-source-package sbcl-function-cache))
@@ -10485,13 +8768,14 @@ the elements in compound type specifier, e.g. @code{dimensions} in
       (native-inputs
        `(("fiveam" ,sbcl-fiveam)))
       (arguments
-       `(#:asd-system-name "type-r"
-         #:asd-file "type-r.asd"
-         #:test-asd-file "type-r.test.asd")))))
+       `(#:test-asd-file "type-r.test.asd")))))
 
 (define-public cl-type-r
   (sbcl-package->cl-source-package sbcl-type-r))
 
+(define-public ecl-type-r
+  (sbcl-package->ecl-package sbcl-type-r))
+
 (define-public sbcl-trivialib-type-unify
   (let ((commit "62492ebf04db567dcf435ae84c50b7b8202ecf99")
         (revision "1"))
@@ -10524,16 +8808,18 @@ correctly.")
       (native-inputs
        `(("fiveam" ,sbcl-fiveam)))
       (arguments
-       `(#:asd-system-name "trivialib.type-unify"
-         #:asd-file "trivialib.type-unify.asd"
+       `(#:asd-systems '("trivialib.type-unify")
          #:test-asd-file "trivialib.type-unify.test.asd")))))
 
 (define-public cl-trivialib-type-unify
   (sbcl-package->cl-source-package sbcl-trivialib-type-unify))
 
+(define-public ecl-trivialib-type-unify
+  (sbcl-package->ecl-package sbcl-trivialib-type-unify))
+
 (define-public sbcl-specialized-function
-  (let ((commit "b96b6afaf8358bf91cc0703e62a5a4ee20d2b7bc")
-        (revision "1"))
+  (let ((commit "dee56d2d2b6ecd10500ad291c56217698604ec35")
+        (revision "2"))
     (package
       (name "sbcl-specialized-function")
       (version (git-version "0.0.0" revision commit))
@@ -10545,8 +8831,7 @@ correctly.")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
-          (base32
-           "12j45ff0n26578vmfbhb9mfbdchw4wy023k0m2ppgl9s0z4bhjaj"))))
+          (base32 "1mcc7mmpbnmgnr1cl2jl5r1ai54gn7fbisv2c14sh9za5w4sib82"))))
       (build-system asdf-build-system/sbcl)
       (synopsis "Julia-like dispatch for Common Lisp")
       (description
@@ -10566,13 +8851,19 @@ code.  The main target of this macro is speed.")
       (native-inputs
        `(("fiveam" ,sbcl-fiveam)))
       (arguments
-       `(#:asd-system-name "specialized-function"
-         #:asd-file "specialized-function.asd"
-         #:test-asd-file "specialized-function.test.asd")))))
+       `(#:asd-files '("specialized-function.asd")
+         #:test-asd-file "specialized-function.test.asd"
+         ;; Tests fail because they try to use an internal symbol of SBCL
+         ;; that does not exists in recent versions:
+         ;;   "The variable SB-VM:COMPLEX-VECTOR-NIL-WIDETAG is unbound."
+         #:tests? #f)))))
 
 (define-public cl-specialized-function
   (sbcl-package->cl-source-package sbcl-specialized-function))
 
+(define-public ecl-specialized-function
+  (sbcl-package->ecl-package sbcl-specialized-function))
+
 (define-public sbcl-constantfold
   (let ((commit "0ff1d97a3fbcb89264f6a2af6ce62b73e7b421f4")
         (revision "1"))
@@ -10604,16 +8895,18 @@ additional form that is considered as a candidate for a constant.")
       (native-inputs
        `(("fiveam" ,sbcl-fiveam)))
       (arguments
-       `(#:asd-system-name "constantfold"
-         #:asd-file "constantfold.asd"
+       `(#:asd-files '("constantfold.asd")
          #:test-asd-file "constantfold.test.asd")))))
 
 (define-public cl-constantfold
   (sbcl-package->cl-source-package sbcl-constantfold))
 
+(define-public ecl-constantfold
+  (sbcl-package->ecl-package sbcl-constantfold))
+
 (define-public sbcl-gtype
-  (let ((commit "42275e3606242ae91e9c8dfa30c18ced50a35b66")
-        (revision "1"))
+  (let ((commit "2442e32485635525af278ebd8fa69a27d5b8cf18")
+        (revision "2"))
     (package
       (name "sbcl-gtype")
       (version (git-version "0.1" revision commit))
@@ -10625,8 +8918,7 @@ additional form that is considered as a candidate for a constant.")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
-          (base32
-           "1f56dba998v945jcxhha391557n6md1ql25b7icfwwfivhmlaa9b"))))
+          (base32 "0hbkfdw00v7bsa6zbric34p5w6hfwxycccg8wc2faq0cxhsvpv9h"))))
       (build-system asdf-build-system/sbcl)
       (synopsis "C++/Julia-like parametric types in Common Lisp")
       (description
@@ -10644,16 +8936,24 @@ type correctness in Common Lisp.  It is based on CLtL2 extensions.")
       (native-inputs
        `(("fiveam" ,sbcl-fiveam)))
       (arguments
-       `(#:asd-system-name "gtype"
-         #:asd-file "gtype.asd"
+       `(#:asd-files '("gtype.asd")
          #:test-asd-file "gtype.test.asd")))))
 
 (define-public cl-gtype
   (sbcl-package->cl-source-package sbcl-gtype))
 
+(define-public ecl-gtype
+  (let ((pkg (sbcl-package->ecl-package sbcl-gtype)))
+    (package
+      (inherit pkg)
+      (arguments
+       (substitute-keyword-arguments (package-arguments pkg)
+         ;; The tests fail on ECL with a COMPILE-FILE-ERROR for t/package.lisp.
+         ((#:tests? _ #f) #f))))))
+
 (define-public sbcl-numcl
-  (let ((commit "1cf7dfa59f763a24a501092870e9c5ee745d0c17")
-        (revision "1"))
+  (let ((commit "3e8d40bf774e070e7af1d3dbf01bc8c37dbebd3a")
+        (revision "2"))
     (package
       (name "sbcl-numcl")
       (version (git-version "0.1.0" revision commit))
@@ -10665,8 +8965,7 @@ type correctness in Common Lisp.  It is based on CLtL2 extensions.")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
-          (base32
-           "0i3jby9hf4ii7blivgyza80g0vmjfhk8537i5i7kqqk0i5sdnym2"))))
+          (base32 "1hqpr68f6xkxaj1hjjayyh97wcdmj51k20qrd3nsv1rcpmdc5ll4"))))
       (build-system asdf-build-system/sbcl)
       (synopsis "Numpy clone in Common Lisp")
       (description
@@ -10691,13 +8990,23 @@ and usefulness, not speed.  Track the progress at
       (native-inputs
        `(("fiveam" ,sbcl-fiveam)))
       (arguments
-       `(#:asd-system-name "numcl"
-         #:asd-file "numcl.asd"
-         #:test-asd-file "numcl.test.asd")))))
+       `(#:asd-files '("numcl.asd")
+         #:test-asd-file "numcl.test.asd"
+         ;; Tests fail on SBCL with "Heap exhausted, game over",
+         ;; but they pass on ECL.
+         #:tests? #f)))))
 
 (define-public cl-numcl
   (sbcl-package->cl-source-package sbcl-numcl))
 
+(define-public ecl-numcl
+  (let ((pkg (sbcl-package->ecl-package sbcl-numcl)))
+    (package
+      (inherit pkg)
+      (arguments
+       (substitute-keyword-arguments (package-arguments pkg)
+         ((#:tests? _ #f) #t))))))
+
 (define-public sbcl-pzmq
   (let ((commit "7c7390eedc469d033c72dc497984d1536ee75826")
         (revision "1"))
@@ -10720,7 +9029,6 @@ and usefulness, not speed.  Track the progress at
          ("let-plus" ,sbcl-let-plus)))
       (inputs
        `(("cffi" ,sbcl-cffi)
-         ("cffi-grovel" ,sbcl-cffi-grovel)
          ("zeromq" ,zeromq)))
       (arguments
        `(#:phases (modify-phases %standard-phases
@@ -10858,110 +9166,57 @@ approach to templating.")
 (define-public cl-mysql
   (sbcl-package->cl-source-package sbcl-cl-mysql))
 
-(define-public sbcl-simple-date
-  (let ((commit "74469b25bbda990ec9b77e0d0eccdba0cd7e721a")
-        (revision "1"))
-    (package
-      (name "sbcl-simple-date")
-      (version (git-version "1.19" revision commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/marijnh/Postmodern")
-               (commit commit)))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32 "0im7ymnyxjhn2w74jfg76k5gpr0gl33n31akx33hl28722ljd0hd"))))
-      (build-system asdf-build-system/sbcl)
-      (native-inputs
-       `(("fiveam" ,sbcl-fiveam)))
-      (synopsis "Basic date and time objects for Common Lisp")
-      (description
-       "@code{simple-date} is a very basic implementation of date and time
-objects, used to support storing and retrieving time-related SQL types.")
-      (home-page "https://marijnhaverbeke.nl/postmodern/")
-      (license license:zlib))))
-
-(define-public cl-simple-date
-  (sbcl-package->cl-source-package sbcl-simple-date))
-
-(define-public ecl-simple-date
-  (sbcl-package->ecl-package sbcl-simple-date))
-
-(define-public sbcl-cl-postgres
-  (package
-    (inherit sbcl-simple-date)
-    (name "sbcl-cl-postgres")
-    (native-inputs
-     `(("fiveam" ,sbcl-fiveam)
-       ("simple-date" ,sbcl-simple-date)))
-    (inputs
-     `(("md5" ,sbcl-md5)
-       ("split-sequence" ,sbcl-split-sequence)
-       ("usocket" ,sbcl-usocket)))
-    (arguments
-     `(#:tests? #f)) ; TODO: Break simple-date/postgres-glue circular dependency
-    (synopsis "Common Lisp interface for PostgreSQL")
-    (description
-     "@code{cl-postgres} is a low-level library used for interfacing with
-a PostgreSQL server over a socket.")))
-
-(define-public cl-postgres
-  (sbcl-package->cl-source-package sbcl-cl-postgres))
-
-(define-public sbcl-simple-date-postgres-glue
-  (package
-    (inherit sbcl-simple-date)
-    (name "sbcl-simple-date-postgres-glue")
-    (inputs
-     `(("cl-postgres" ,sbcl-cl-postgres)
-       ("simple-date" ,sbcl-simple-date)))
-    (arguments
-     `(#:asd-file "simple-date.asd"
-       #:asd-system-name "simple-date/postgres-glue"))))
-
-(define-public cl-simple-date-postgres-glue
-  (sbcl-package->cl-source-package sbcl-simple-date-postgres-glue))
-
-(define-public sbcl-s-sql
-  (package
-    (inherit sbcl-simple-date)
-    (name "sbcl-s-sql")
-    (inputs
-     `(("alexandria" ,sbcl-alexandria)
-       ("cl-postgres" ,sbcl-cl-postgres)))
-    (arguments
-     `(#:tests? #f)) ; TODO: Break postmodern circular dependency
-    (synopsis "Lispy DSL for SQL")
-    (description
-     "@code{s-sql} is a Common Lisp library that can be used to compile
-s-expressions to strings of SQL code, escaping any Lisp values inside, and
-doing as much as possible of the work at compile time.")))
-
-(define-public cl-s-sql
-  (sbcl-package->cl-source-package sbcl-s-sql))
+(define-public ecl-cl-mysql
+  (sbcl-package->ecl-package sbcl-cl-mysql))
 
 (define-public sbcl-postmodern
   (package
-    (inherit sbcl-simple-date)
     (name "sbcl-postmodern")
+    (version "1.32.8")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/marijnh/Postmodern")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0vr5inbr8dldf6dsl0qj3h2yrnnsayzfwxfzwkn1pk7xbns2l78q"))))
+    (build-system asdf-build-system/sbcl)
     (native-inputs
-     `(("fiveam" ,sbcl-fiveam)
-       ("simple-date" ,sbcl-simple-date)
-       ("simple-date-postgres-glue" ,sbcl-simple-date-postgres-glue)))
+     `(("fiveam" ,sbcl-fiveam)))
     (inputs
      `(("alexandria" ,sbcl-alexandria)
        ("bordeaux-threads" ,sbcl-bordeaux-threads)
-       ("cl-postgres" ,sbcl-cl-postgres)
+       ("cl-base64" ,sbcl-cl-base64)
+       ("cl-unicode" ,sbcl-cl-unicode)
        ("closer-mop" ,sbcl-closer-mop)
        ("global-vars" ,sbcl-global-vars)
-       ("s-sql" ,sbcl-s-sql)
-       ("split-sequence" ,sbcl-split-sequence)))
+       ("ironclad" ,sbcl-ironclad)
+       ("local-time" ,sbcl-local-time)
+       ("md5" ,sbcl-md5)
+       ("split-sequence" ,sbcl-split-sequence)
+       ("uax-15" ,sbcl-uax-15)
+       ("usocket" ,sbcl-usocket)))
     (arguments
-     ;; TODO: Fix missing dependency errors for simple-date/postgres-glue,
-     ;; cl-postgres/tests and s-sql/tests.
-     `(#:tests? #f))
+     ;; TODO: (Sharlatan-20210114T171037+0000) tests still failing but on other
+     ;; step, some functionality in `local-time' prevents passing tests.
+     ;; Error:
+     ;;
+     ;; Can't create directory
+     ;; /gnu/store
+     ;;  /4f47agf1kyiz057ppy6x5p98i7mcbfsv-sbcl-local-time-1.0.6-2.a177eb9
+     ;;   /lib/common-lisp/sbcl/local-time/src/integration/
+     ;;
+     ;; NOTE: (Sharlatan-20210124T191940+0000): When set env HOME to /tmp above
+     ;; issue is resolved but it required live test database to connect to now.
+     ;; Keep tests switched off.
+     `(#:tests? #f
+       #:asd-systems '("cl-postgres"
+                       "s-sql"
+                       "postmodern"
+                       "simple-date"
+                       "simple-date/postgres-glue")))
     (synopsis "Common Lisp library for interacting with PostgreSQL")
     (description
      "@code{postmodern} is a Common Lisp library for interacting with
@@ -10974,78 +9229,125 @@ foreign libraries.
 @item A syntax for mixing SQL and Lisp code.
 @item Convenient support for prepared statements and stored procedures.
 @item A metaclass for simple database-access objects.
-@end itemize\n")))
+@end itemize\n
+
+This package produces 4 systems: postmodern, cl-postgres, s-sql, simple-date
+
+@code{SIMPLE-DATE} is a very basic implementation of date and time objects, used
+to support storing and retrieving time-related SQL types.  It is not loaded by
+default and you can use local-time (which has support for timezones) instead.
+
+@code{S-SQL} is used to compile s-expressions to strings of SQL code, escaping
+any Lisp values inside, and doing as much as possible of the work at compile
+time.
+
+@code{CL-POSTGRES} is the low-level library used for interfacing with a PostgreSQL
+server over a socket.
+
+@code{POSTMODERN} itself is a wrapper around these packages and provides higher
+level functions, a very simple data access object that can be mapped directly to
+database tables and some convient utilities.  It then tries to put all these
+things together into a convenient programming interface")
+    (home-page "https://marijnhaverbeke.nl/postmodern/")
+    (license license:zlib)))
 
 (define-public cl-postmodern
   (sbcl-package->cl-source-package sbcl-postmodern))
 
-(define-public sbcl-dbi
+(define-public ecl-postmodern
   (package
-    (name "sbcl-dbi")
-    (version "0.9.4")
-    (source
-     (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/fukamachi/cl-dbi")
-             (commit version)))
-       (file-name (git-file-name name version))
-       (sha256
-        (base32 "0m1fsravfaizamdak84adh3jxc4j91maqnrb4m08bfbmb04cdqhs"))))
-    (build-system asdf-build-system/sbcl)
-    (inputs
-     `(("bordeaux-threads" ,sbcl-bordeaux-threads)
-       ("closer-mop" ,sbcl-closer-mop)
-       ("split-sequence" ,sbcl-split-sequence)))
+    (inherit (sbcl-package->ecl-package sbcl-postmodern))
     (arguments
-     `(#:tests? #f)) ; TODO: Break circular dependency with dbd-*
-    (synopsis "Database independent interface for Common Lisp")
-    (description
-     "@code{dbi} is a Common Lisp library providing a database independent
-interface for MySQL, PostgreSQL and SQLite.")
-    (home-page "https://github.com/fukamachi/cl-dbi")
-    (license license:llgpl)))
-
-(define-public cl-dbi
-  (sbcl-package->cl-source-package sbcl-dbi))
+     `(#:tests? #f
+       #:asd-systems '("cl-postgres"
+                       "s-sql"
+                       "postmodern"
+                       "simple-date"
+                       "simple-date/postgres-glue")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-build
+           (lambda _
+             (substitute* "cl-postgres.asd"
+               ((":or :sbcl :allegro :ccl :clisp" all)
+                (string-append all " :ecl")))
+             #t)))))))
 
-(define-public sbcl-dbd-mysql
-  (package
-   (inherit sbcl-dbi)
-   (name "sbcl-dbd-mysql")
-   (inputs
-    `(("cl-mysql" ,sbcl-cl-mysql)
-      ("dbi" ,sbcl-dbi)))
-   (synopsis "Database driver for MySQL")))
+(define-public sbcl-db3
+  (let ((commit "38e5ad35f025769fb7f8dcdc6e56df3e8efd8e6d")
+        (revision "1"))
+    (package
+      (name "sbcl-db3")
+      (version (git-version "0.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/dimitri/cl-db3")
+               (commit commit)))
+         (file-name (git-file-name "cl-db3" version))
+         (sha256
+          (base32 "1i7j0mlri6kbklcx1lsm464s8kmyhhij5c4xh4aybrw8m4ixn1s5"))))
+      (build-system asdf-build-system/sbcl)
+      (home-page "https://github.com/dimitri/cl-db3")
+      (synopsis "Common Lisp library to read dBase III database files")
+      (description
+       "This is a Common Lisp library for processing data found in dBase III
+database files (dbf and db3 files).")
+      (license license:public-domain))))
 
-(define-public cl-dbd-mysql
-  (sbcl-package->cl-source-package sbcl-dbd-mysql))
+(define-public ecl-db3
+  (sbcl-package->ecl-package sbcl-db3))
 
-(define-public sbcl-dbd-postgres
-  (package
-   (inherit sbcl-dbi)
-   (name "sbcl-dbd-postgres")
-   (inputs
-    `(("cl-postgres" ,sbcl-cl-postgres)
-      ("dbi" ,sbcl-dbi)
-      ("trivial-garbage" ,sbcl-trivial-garbage)))
-   (synopsis "Database driver for PostgreSQL")))
+(define-public cl-db3
+  (sbcl-package->cl-source-package sbcl-db3))
 
-(define-public cl-dbd-postgres
-  (sbcl-package->cl-source-package sbcl-dbd-postgres))
+(define-public sbcl-dbi
+  ;; Master includes a breaking change which other packages depend on since
+  ;; Quicklisp decided to follow it:
+  ;; https://github.com/fukamachi/cl-dbi/commit/31c46869722f77fd5292a81b5b101f1347d7fce1
+  (let ((commit "31c46869722f77fd5292a81b5b101f1347d7fce1"))
+    (package
+      (name "sbcl-dbi")
+      (version (git-version "0.9.4" "1" commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/fukamachi/cl-dbi")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0r3n4rw12qqxad0cryym2ibm4ddl49gbq4ra227afibsr43nw5k3"))))
+      (build-system asdf-build-system/sbcl)
+      (native-inputs
+       `(("rove" ,sbcl-rove)
+         ("trivial-types" ,sbcl-trivial-types)))
+      (inputs
+       `(("bordeaux-threads" ,sbcl-bordeaux-threads)
+         ("cl-mysql" ,sbcl-cl-mysql)
+         ("cl-sqlite" ,sbcl-cl-sqlite)
+         ("closer-mop" ,sbcl-closer-mop)
+         ("postmodern" ,sbcl-postmodern)
+         ("split-sequence" ,sbcl-split-sequence)
+         ("trivial-garbage" ,sbcl-trivial-garbage)))
+      (arguments
+       `(#:asd-systems '("dbi"
+                         "dbd-mysql"
+                         "dbd-postgres"
+                         "dbd-sqlite3")))
+      (synopsis "Database independent interface for Common Lisp")
+      (description
+       "@code{dbi} is a Common Lisp library providing a database independent
+interface for MySQL, PostgreSQL and SQLite.")
+      (home-page "https://github.com/fukamachi/cl-dbi")
+      (license license:llgpl))))
 
-(define-public sbcl-dbd-sqlite3
-  (package
-   (inherit sbcl-dbi)
-   (name "sbcl-dbd-sqlite3")
-   (inputs
-    `(("cl-sqlite" ,sbcl-cl-sqlite)
-      ("dbi" ,sbcl-dbi)
-      ("trivial-garbage" ,sbcl-trivial-garbage)))
-   (synopsis "Database driver for SQLite3")))
+(define-public cl-dbi
+  (sbcl-package->cl-source-package sbcl-dbi))
 
-(define-public cl-dbd-sqlite3
-  (sbcl-package->cl-source-package sbcl-dbd-sqlite3))
+(define-public ecl-dbi
+  (sbcl-package->ecl-package sbcl-dbi))
 
 (define-public sbcl-uffi
   (package
@@ -11063,6 +9365,7 @@ interface for MySQL, PostgreSQL and SQLite.")
     (build-system asdf-build-system/sbcl)
     (arguments
      `(#:tests? #f ; TODO: Fix use of deprecated ASDF functions
+       #:asd-files '("uffi.asd")
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'fix-permissions
@@ -11084,10 +9387,8 @@ interface for MySQL, PostgreSQL and SQLite.")
        ;; asdf-build-system/source has its own phases and does not inherit
        ;; from asdf-build-system/sbcl phases.
        (modify-phases %standard-phases/source
-         (add-after 'unpack 'fix-permissions
-           (lambda _
-             (make-file-writable "doc/html.tar.gz")
-             #t)))))))
+         ;; Already done in SBCL package.
+         (delete 'reset-gzip-timestamps))))))
 
 (define-public sbcl-clsql
   (package
@@ -11111,16 +9412,82 @@ interface for MySQL, PostgreSQL and SQLite.")
            #t))))
     (build-system asdf-build-system/sbcl)
     (native-inputs
-     `(("cffi-uffi-compat" ,sbcl-cffi-uffi-compat)
-       ("rt" ,sbcl-rt)
-       ("uffi" ,sbcl-uffi)))
+     `(("rt" ,sbcl-rt)))
+    (inputs
+     `(("cffi" ,sbcl-cffi)
+       ("md5" ,sbcl-md5)
+       ("mysql" ,mysql)
+       ("postgresql" ,postgresql)
+       ("postmodern" ,sbcl-postmodern)
+       ("sqlite" ,sqlite)
+       ("uffi" ,sbcl-uffi)
+       ("zlib" ,zlib)))
     (arguments
-     `(#:phases
+     `(#:asd-files '("clsql.asd"
+                     "clsql-uffi.asd"
+                     "clsql-sqlite3.asd"
+                     "clsql-postgresql.asd"
+                     "clsql-postgresql-socket3.asd"
+                     "clsql-mysql.asd")
+       #:asd-systems '("clsql"
+                       "clsql-sqlite3"
+                       "clsql-postgresql"
+                       "clsql-postgresql-socket3"
+                       "clsql-mysql")
+       #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'fix-permissions
            (lambda _
              (make-file-writable "doc/html.tar.gz")
              #t))
+         (add-after 'unpack 'fix-build
+           (lambda _
+             (substitute* "clsql-uffi.asd"
+               (("\\(:version uffi \"2.0\"\\)")
+                "uffi"))
+             (substitute* "db-postgresql/postgresql-api.lisp"
+               (("\\(data :cstring\\)")
+                "(data :string)"))
+             #t))
+         (add-after 'unpack 'fix-paths
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (substitute* "db-sqlite3/sqlite3-loader.lisp"
+               (("libsqlite3")
+                (string-append (assoc-ref inputs "sqlite")
+                               "/lib/libsqlite3")))
+             (substitute* "db-postgresql/postgresql-loader.lisp"
+               (("libpq")
+                (string-append (assoc-ref inputs "postgresql")
+                               "/lib/libpq")))
+             (let ((lib (string-append "#p\""
+                                       (assoc-ref outputs "out")
+                                       "/lib/\"")))
+               (substitute* "clsql-mysql.asd"
+                 (("#p\"/usr/lib/clsql/clsql_mysql\\.so\"")
+                  lib))
+               (substitute* "db-mysql/mysql-loader.lisp"
+                 (("libmysqlclient" all)
+                  (string-append (assoc-ref inputs "mysql") "/lib/" all))
+                 (("clsql-mysql-system::\\*library-file-dir\\*")
+                  lib)))
+             #t))
+         (add-before 'build 'build-helper-library
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let* ((mysql (assoc-ref inputs "mysql"))
+                    (inc-dir (string-append mysql "/include/mysql"))
+                    (lib-dir (string-append mysql "/lib"))
+                    (shared-lib-dir (string-append (assoc-ref outputs "out")
+                                                   "/lib"))
+                    (shared-lib (string-append shared-lib-dir
+                                               "/clsql_mysql.so")))
+               (mkdir-p shared-lib-dir)
+               (invoke "gcc" "-fPIC" "-shared"
+                       "-I" inc-dir
+                       "db-mysql/clsql_mysql.c"
+                       "-Wl,-soname=clsql_mysql"
+                       "-L" lib-dir "-lmysqlclient" "-lz"
+                       "-o" shared-lib)
+               #t)))
          (add-after 'unpack 'fix-tests
            (lambda _
              (substitute* "clsql.asd"
@@ -11146,9 +9513,9 @@ interfaces as well as a functional and an object oriented interface.")
        ("sqlite" ,sqlite)
        ("zlib" ,zlib)))
     (propagated-inputs
-     `(("cl-postgres" ,cl-postgres)
-       ("cffi-uffi-compat" ,cl-cffi-uffi-compat)
+     `(("cffi" ,cl-cffi)
        ("md5" ,cl-md5)
+       ("postmodern" ,cl-postmodern)
        ("uffi" ,cl-uffi)))
     (arguments
      `(#:phases
@@ -11160,126 +9527,16 @@ interfaces as well as a functional and an object oriented interface.")
              (make-file-writable "doc/html.tar.gz")
              #t)))))))
 
-(define-public sbcl-clsql-uffi
-  (package
-    (inherit sbcl-clsql)
-    (name "sbcl-clsql-uffi")
-    (inputs
-     `(("cffi-uffi-compat" ,sbcl-cffi-uffi-compat)
-       ("clsql" ,sbcl-clsql)
-       ("uffi" ,sbcl-uffi)))
-    (synopsis "UFFI helper functions for Common Lisp SQL interface library")))
-
-(define-public sbcl-clsql-sqlite3
-  (package
-    (inherit sbcl-clsql)
-    (name "sbcl-clsql-sqlite3")
-    (inputs
-     `(("clsql" ,sbcl-clsql)
-       ("clsql-uffi" ,sbcl-clsql-uffi)
-       ("sqlite" ,sqlite)))
-    (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-clsql)
-       ((#:phases phases '%standard-phases)
-        `(modify-phases ,phases
-           (add-after 'unpack 'fix-paths
-             (lambda* (#:key inputs #:allow-other-keys)
-               (substitute* "db-sqlite3/sqlite3-loader.lisp"
-                 (("libsqlite3")
-                  (string-append (assoc-ref inputs "sqlite")
-                                 "/lib/libsqlite3")))
-               #t))))))
-    (synopsis "SQLite3 driver for Common Lisp SQL interface library")))
-
-(define-public sbcl-clsql-postgresql
-  (package
-    (inherit sbcl-clsql)
-    (name "sbcl-clsql-postgresql")
-    (inputs
-     `(("clsql" ,sbcl-clsql)
-       ("clsql-uffi" ,sbcl-clsql-uffi)
-       ("postgresql" ,postgresql)))
-    (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-clsql)
-       ((#:phases phases '%standard-phases)
-        `(modify-phases ,phases
-           (add-after 'unpack 'fix-paths
-             (lambda* (#:key inputs #:allow-other-keys)
-               (substitute* "db-postgresql/postgresql-loader.lisp"
-                 (("libpq")
-                  (string-append (assoc-ref inputs "postgresql")
-                                 "/lib/libpq")))
-               #t))))))
-    (synopsis "PostgreSQL driver for Common Lisp SQL interface library")))
-
-(define-public sbcl-clsql-postgresql-socket3
-  (package
-    (inherit sbcl-clsql)
-    (name "sbcl-clsql-postgresql-socket3")
-    (inputs
-     `(("cl-postgres" ,sbcl-cl-postgres)
-       ("clsql" ,sbcl-clsql)
-       ("md5" ,sbcl-md5)))
-    (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-clsql)
-       ((#:phases phases '%standard-phases)
-        `(modify-phases ,phases
-           (add-after 'create-asd-file 'fix-asd-file
-             (lambda* (#:key outputs #:allow-other-keys)
-               (let* ((out (assoc-ref outputs "out"))
-                      (lib (string-append out "/lib/" (%lisp-type)))
-                      (asd (string-append lib "/clsql-postgresql-socket3.asd")))
-                 (substitute* asd
-                   (("CLSQL-POSTGRESQL-SOCKET-SYSTEM::")
-                    "")))
-               #t))))))
-    (synopsis "PostgreSQL driver for Common Lisp SQL interface library")))
-
-(define-public sbcl-clsql-mysql
-  (package
-    (inherit sbcl-clsql)
-    (name "sbcl-clsql-mysql")
-    (inputs
-     `(("mysql" ,mysql)
-       ("sbcl-clsql" ,sbcl-clsql)
-       ("sbcl-clsql-uffi" ,sbcl-clsql-uffi)
-       ("zlib" ,zlib)))
-    (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-clsql)
-       ((#:phases phases '%standard-phases)
-        `(modify-phases ,phases
-           (add-after 'unpack 'fix-paths
-             (lambda* (#:key inputs outputs #:allow-other-keys)
-               (let ((lib (string-append "#p\""
-                                         (assoc-ref outputs "out")
-                                         "/lib/\"")))
-                 (substitute* "clsql-mysql.asd"
-                   (("#p\"/usr/lib/clsql/clsql_mysql\\.so\"")
-                    lib))
-                 (substitute* "db-mysql/mysql-loader.lisp"
-                   (("libmysqlclient" all)
-                    (string-append (assoc-ref inputs "mysql") "/lib/" all))
-                   (("clsql-mysql-system::\\*library-file-dir\\*")
-                    lib)))
-               #t))
-           (add-before 'build 'build-helper-library
-             (lambda* (#:key inputs outputs #:allow-other-keys)
-               (let* ((mysql (assoc-ref inputs "mysql"))
-                      (inc-dir (string-append mysql "/include/mysql"))
-                      (lib-dir (string-append mysql "/lib"))
-                      (shared-lib-dir (string-append (assoc-ref outputs "out")
-                                                     "/lib"))
-                      (shared-lib (string-append shared-lib-dir
-                                                 "/clsql_mysql.so")))
-                 (mkdir-p shared-lib-dir)
-                 (invoke "gcc" "-fPIC" "-shared"
-                         "-I" inc-dir
-                         "db-mysql/clsql_mysql.c"
-                         "-Wl,-soname=clsql_mysql"
-                         "-L" lib-dir "-lmysqlclient" "-lz"
-                         "-o" shared-lib)
-                 #t)))))))
-    (synopsis "MySQL driver for Common Lisp SQL interface library")))
+(define-public ecl-clsql
+  (let ((pkg (sbcl-package->ecl-package sbcl-clsql)))
+    (package
+      (inherit pkg)
+      (inputs
+       (alist-delete "uffi" (package-inputs pkg)))
+      (arguments
+       (substitute-keyword-arguments (package-arguments pkg)
+         ((#:asd-files asd-files '())
+          `(cons "clsql-cffi.asd" ,asd-files)))))))
 
 (define-public sbcl-sycamore
   (let ((commit "fd2820fec165ad514493426dea209728f64e6d18"))
@@ -11296,8 +9553,6 @@ interfaces as well as a functional and an object oriented interface.")
          (sha256
           (base32 "00bv1aj89q5vldmq92zp2364jq312zjq2mbd3iyz1s2b4widzhl7"))))
       (build-system asdf-build-system/sbcl)
-      (arguments
-       `(#:asd-file "src/sycamore.asd"))
       (inputs
        `(("alexandria" ,sbcl-alexandria)
          ("cl-ppcre" ,sbcl-cl-ppcre)))
@@ -11320,6 +9575,9 @@ If features:
 (define-public cl-sycamore
   (sbcl-package->cl-source-package sbcl-sycamore))
 
+(define-public ecl-sycamore
+  (sbcl-package->ecl-package sbcl-sycamore))
+
 (define-public sbcl-trivial-package-local-nicknames
   (package
     (name "sbcl-trivial-package-local-nicknames")
@@ -11345,6 +9603,9 @@ in DEFPACKAGE.")
 (define-public cl-trivial-package-local-nicknames
   (sbcl-package->cl-source-package sbcl-trivial-package-local-nicknames))
 
+(define-public ecl-trivial-package-local-nicknames
+  (sbcl-package->ecl-package sbcl-trivial-package-local-nicknames))
+
 (define-public sbcl-enchant
   (let ((commit "6af162a7bf10541cbcfcfa6513894900329713fa"))
     (package
@@ -11384,6 +9645,9 @@ multiple checkers, including Aspell and Hunspell.")
 (define-public cl-enchant
   (sbcl-package->cl-source-package sbcl-enchant))
 
+(define-public ecl-enchant
+  (sbcl-package->ecl-package sbcl-enchant))
+
 (define-public sbcl-cl-change-case
   (let ((commit "5ceff2a5f8bd845b6cb510c6364176b27a238fd3"))
     (package
@@ -11419,6 +9683,9 @@ PascalCase, snake_case, param-case, CONSTANT_CASE and more.")
 (define-public cl-change-case
   (sbcl-package->cl-source-package sbcl-cl-change-case))
 
+(define-public ecl-cl-change-case
+  (sbcl-package->ecl-package sbcl-cl-change-case))
+
 (define-public sbcl-moptilities
   (let ((commit "a436f16b357c96b82397ec018ea469574c10dd41"))
     (package
@@ -11439,6 +9706,15 @@ PascalCase, snake_case, param-case, CONSTANT_CASE and more.")
        `(("closer-mop" ,sbcl-closer-mop)))
       (native-inputs
        `(("lift" ,sbcl-lift)))
+      (arguments
+       `(#:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'fix-tests
+             (lambda _
+               (substitute* "lift-standard.config"
+                 ((":relative-to lift-test")
+                  ":relative-to moptilities-test"))
+               #t)))))
       (synopsis "Compatibility layer for Common Lisp MOP implementation differences")
       (description
        "MOP utilities provide a common interface between Lisps and make the
@@ -11464,29 +9740,12 @@ MOP easier to use.")
          (sha256
           (base32 "15viw5pi5sa7qq9b4n2rr3dj2jkqr180rh9z1lh8w3rgl42i2adc"))))
       (build-system asdf-build-system/sbcl)
-      (arguments
-       `(#:phases
-         (modify-phases %standard-phases
-           ;; The cleanup phase moves files around but we need to keep the
-           ;; directory structure for the grovel-generated library.
-           (replace 'cleanup
-             (lambda* (#:key outputs #:allow-other-keys)
-               (let* ((out (assoc-ref outputs "out"))
-                      (lib (string-append out "/lib/sbcl/")))
-                 (delete-file-recursively (string-append lib "src"))
-                 (delete-file-recursively (string-append lib "tests"))
-                 (for-each delete-file
-                           (filter (lambda (file)
-                                     (not (member (basename file) '("libosicat.so"))))
-                                   (find-files (string-append lib "posix") ".*"))))
-               #t)))))
       (inputs
        `(("alexandria" ,sbcl-alexandria)
          ("cffi" ,sbcl-cffi)
          ("trivial-features" ,sbcl-trivial-features)))
       (native-inputs
-       `(("cffi-grovel" ,sbcl-cffi-grovel)
-         ("rt" ,sbcl-rt)))
+       `(("rt" ,sbcl-rt)))
       (synopsis "Operating system interface for Common Lisp")
       (description
        "Osicat is a lightweight operating system interface for Common Lisp on
@@ -11497,6 +9756,9 @@ accompaniment to the standard ANSI facilities.")
 (define-public cl-osicat
   (sbcl-package->cl-source-package sbcl-osicat))
 
+(define-public ecl-osicat
+  (sbcl-package->ecl-package sbcl-osicat))
+
 (define-public sbcl-clx-xembed
   (let ((commit "a5c4b844d31ee68ffa58c933cc1cdddde6990743")
         (revision "1"))
@@ -11515,7 +9777,7 @@ accompaniment to the standard ANSI facilities.")
           (base32 "1abx4v36ycmfjdwpjk4hh8058ya8whwia7ds9vd96q2qsrs57f12"))))
       (build-system asdf-build-system/sbcl)
       (arguments
-       `(#:asd-system-name "xembed"))
+       `(#:asd-systems '("xembed")))
       (inputs
        `(("sbcl-clx" ,sbcl-clx)))
       (synopsis "CL(x) xembed protocol implementation ")
@@ -11545,7 +9807,7 @@ accompaniment to the standard ANSI facilities.")
          "0rlswkf0siaabsvvch3dgxmg45fw5w8pd9b7ri2w7a298aya52z9"))))
     (build-system asdf-build-system/sbcl)
     (arguments
-     '(#:asd-system-name "quantile-estimator"))
+     '(#:asd-files '("quantile-estimator.asd")))
     (inputs
      `(("alexandria" ,sbcl-alexandria)))
     (home-page "https://github.com/deadtrickster/quantile-estimator.cl")
@@ -11581,9 +9843,29 @@ Streams in ICDE’05.")
     (inputs
      `(("alexandria" ,sbcl-alexandria)
        ("bordeaux-threads" ,sbcl-bordeaux-threads)
+       ("cffi" ,sbcl-cffi)
+       ("cl-fad" ,sbcl-cl-fad)
        ("cl-ppcre" ,sbcl-cl-ppcre)
+       ("drakma" ,sbcl-drakma)
+       ("hunchentoot" ,sbcl-hunchentoot)
        ("local-time" ,sbcl-local-time)
-       ("quantile-estimator" ,sbcl-quantile-estimator)))
+       ("quantile-estimator" ,sbcl-quantile-estimator)
+       ("salza2" ,sbcl-salza2)
+       ("split-sequence" ,sbcl-split-sequence)
+       ("trivial-utf-8" ,sbcl-trivial-utf-8)))
+    (arguments
+     '(#:asd-files '("prometheus.asd"
+                     "prometheus.collectors.sbcl.asd"
+                     "prometheus.collectors.process.asd"
+                     "prometheus.formats.text.asd"
+                     "prometheus.exposers.hunchentoot.asd"
+                     "prometheus.pushgateway.asd")
+       #:asd-systems '("prometheus"
+                       "prometheus.collectors.sbcl"
+                       "prometheus.collectors.process"
+                       "prometheus.formats.text"
+                       "prometheus.exposers.hunchentoot"
+                       "prometheus.pushgateway")))
     (home-page "https://github.com/deadtrickster/prometheus.cl")
     (synopsis "Prometheus.io Common Lisp client")
     (description "Prometheus.io Common Lisp client.")
@@ -11595,85 +9877,6 @@ Streams in ICDE’05.")
 (define-public ecl-prometheus
   (sbcl-package->ecl-package sbcl-prometheus))
 
-(define-public sbcl-prometheus.collectors.sbcl
-  (package
-    (inherit sbcl-prometheus)
-    (name "sbcl-prometheus.collectors.sbcl")
-    (inputs `(("prometheus" ,sbcl-prometheus)))
-    (synopsis "Prometheus collector for SBCL metrics")
-    (description "Prometheus collector for SBCL metrics.")))
-
-(define-public cl-prometheus.collectors.sbcl
-  (sbcl-package->cl-source-package sbcl-prometheus.collectors.sbcl))
-
-(define-public sbcl-prometheus.collectors.process
-  (package
-    (inherit sbcl-prometheus)
-    (name "sbcl-prometheus.collectors.process")
-    (inputs
-     `(("cffi" ,sbcl-cffi)
-       ("cffi-grovel" ,sbcl-cffi-grovel)
-       ("cl-fad" ,sbcl-cl-fad)
-       ("prometheus" ,sbcl-prometheus)
-       ("split-sequence" ,sbcl-split-sequence)))
-    (synopsis "Prometheus collector for process metrics")
-    (description "Prometheus collector for process metrics.")))
-
-(define-public cl-prometheus.collectors.process
-  (sbcl-package->cl-source-package sbcl-prometheus.collectors.process))
-
-(define-public ecl-prometheus.collectors.process
-  (sbcl-package->ecl-package sbcl-prometheus.collectors.process))
-
-(define-public sbcl-prometheus.formats.text
-  (package
-    (inherit sbcl-prometheus)
-    (name "sbcl-prometheus.formats.text")
-    (inputs
-     `(("alexandria" ,sbcl-alexandria)
-       ("prometheus" ,sbcl-prometheus)))
-    (synopsis "Prometheus client text format")
-    (description "Prometheus client text format.")))
-
-(define-public cl-prometheus.formats.text
-  (sbcl-package->cl-source-package sbcl-prometheus.formats.text))
-
-(define-public ecl-prometheus.formats.text
-  (sbcl-package->ecl-package sbcl-prometheus.formats.text))
-
-(define-public sbcl-prometheus.exposers.hunchentoot
-  (package
-    (inherit sbcl-prometheus)
-    (name "sbcl-prometheus.exposers.hunchentoot")
-    (inputs
-     `(("hunchentoot" ,sbcl-hunchentoot)
-       ("prometheus" ,sbcl-prometheus)
-       ("prometheus.formats.text" ,sbcl-prometheus.formats.text)
-       ("salza2" ,sbcl-salza2)
-       ("trivial-utf-8" ,sbcl-trivial-utf-8)))
-    (synopsis "Prometheus collector for Hunchentoot metrics")
-    (description "Prometheus collector for Hunchentoot metrics")))
-
-(define-public cl-prometheus.exposers.hunchentoot
-  (sbcl-package->cl-source-package sbcl-prometheus.exposers.hunchentoot))
-
-(define-public sbcl-prometheus.pushgateway
-  (package
-    (inherit sbcl-prometheus)
-    (name "sbcl-prometheus.pushgateway")
-    (inputs
-     `(("drakma" ,sbcl-drakma)
-       ("prometheus" ,sbcl-prometheus)
-       ("prometheus.formats.text" ,sbcl-prometheus.formats.text)))
-    (synopsis "Prometheus Pushgateway client")
-    (description "Prometheus Pushgateway client.")))
-
-(define-public cl-prometheus.pushgateway
-  (sbcl-package->cl-source-package sbcl-prometheus.pushgateway))
-
-(define-public ecl-prometheus.pushgateway
-  (sbcl-package->ecl-package sbcl-prometheus.pushgateway))
-
 (define-public sbcl-uuid
   (let ((commit "e7d6680c3138385c0708f7aaf0c96622eeb140e8"))
     (package
@@ -11738,9 +9941,6 @@ and active restarts.")
 (define-public ecl-dissect
   (sbcl-package->ecl-package sbcl-dissect))
 
-;; TODO: Uses ASDF's package-inferred-system which is not supported by
-;; asdf-build-system/sbcl as of 2020-05-21. We should fix
-;; asdf-build-system/sbcl.
 (define-public sbcl-rove
   (package
     (name "sbcl-rove")
@@ -11824,14 +10024,13 @@ learn about each of the parameters.")
        `(#:test-asd-file "sxql-test.asd"))
       (inputs
        `(("alexandria" ,sbcl-alexandria)
-         ("cl-syntax-annot" ,sbcl-cl-syntax-annot)
+         ("cl-syntax" ,sbcl-cl-syntax)
          ("iterate" ,sbcl-iterate)
          ("optima" ,sbcl-optima)
          ("split-sequence" ,sbcl-split-sequence)
          ("trivial-types" ,sbcl-trivial-types)))
       (native-inputs
-       `(("prove" ,sbcl-prove)
-         ("prove-asdf" ,sbcl-prove-asdf)))
+       `(("prove" ,sbcl-prove)))
       (home-page "https://github.com/fukamachi/sxql")
       (synopsis "SQL generator for Common Lisp")
       (description "SQL generator for Common Lisp.")
@@ -11860,7 +10059,7 @@ learn about each of the parameters.")
            "05ss4nz1jb9kb796295482b62w5cj29msfj8zis33sp2rw2vmv2g"))))
       (build-system asdf-build-system/sbcl)
       (arguments
-       `(#:asd-system-name "1am"))
+       `(#:asd-systems '("1am")))
       (home-page "https://github.com/lmj/1am")
       (synopsis "Minimal testing framework for Common Lisp")
       (description "A minimal testing framework for Common Lisp.")
@@ -11925,19 +10124,10 @@ tables.")
              (substitute* "src/low-level/librdkafka-bindings.lisp"
                (("librdkafka" all)
                 (string-append (assoc-ref inputs "librdkafka") "/lib/"
-                               all)))))
-         (add-before 'cleanup 'move-bundle
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (actual (string-append out "/lib/sbcl/src/cl-rdkafka.fasl"))
-                    (expected (string-append
-                               out "/lib/sbcl/cl-rdkafka--system.fasl")))
-               (copy-file actual expected)
-               #t))))))
+                               all))))))))
     (inputs
      `(("bordeaux-threads" ,sbcl-bordeaux-threads)
        ("cffi" ,sbcl-cffi)
-       ("cffi-grovel" ,sbcl-cffi-grovel)
        ("librdkafka" ,librdkafka)
        ("lparallel" ,sbcl-lparallel)
        ("trivial-garbage" ,sbcl-trivial-garbage)))
@@ -11949,6 +10139,9 @@ tables.")
 (define-public cl-rdkafka
   (sbcl-package->cl-source-package sbcl-cl-rdkafka))
 
+(define-public ecl-cl-rdkafka
+  (sbcl-package->ecl-package sbcl-cl-rdkafka))
+
 (define-public sbcl-acclimation
   (let ((commit "4d51150902568fcd59335f4cc4cfa022df6116a5"))
     (package
@@ -11979,10 +10172,13 @@ weight, temperature, names of physical quantitites, etc.")
 (define-public cl-acclimation
   (sbcl-package->cl-source-package sbcl-acclimation))
 
-(define-public sbcl-clump-2-3-tree
+(define-public ecl-acclimation
+  (sbcl-package->ecl-package sbcl-acclimation))
+
+(define-public sbcl-clump
   (let ((commit "1ea4dbac1cb86713acff9ae58727dd187d21048a"))
     (package
-      (name "sbcl-clump-2-3-tree")
+      (name "sbcl-clump")
       (version (git-version "0.0.0" "1" commit))
       (source
        (origin
@@ -11994,14 +10190,11 @@ weight, temperature, names of physical quantitites, etc.")
          (sha256
           (base32
            "1639msyagsswj85gc0wd90jgh8588j3qg5q70by9s2brf2q6w4lh"))))
-      (arguments
-       '(#:asd-file "2-3-tree/clump-2-3-tree.asd"
-         #:asd-system-name "clump-2-3-tree"))
       (inputs
        `(("acclimation" ,sbcl-acclimation)))
       (build-system asdf-build-system/sbcl)
       (home-page "https://github.com/robert-strandh/Clump")
-      (synopsis "Implementation of 2-3 trees for Common Lisp")
+      (synopsis "Collection of tree implementations for Common Lisp")
       (description "The purpose of this library is to provide a collection of
 implementations of trees.
 
@@ -12015,34 +10208,16 @@ where the trees can be used as search trees or as trees that represent
 sequences of objects.")
       (license license:bsd-2))))
 
-(define-public sbcl-clump-binary-tree
-  (package
-    (inherit sbcl-clump-2-3-tree)
-    (name "sbcl-clump-binary-tree")
-    (arguments
-     '(#:asd-file "Binary-tree/clump-binary-tree.asd"
-       #:asd-system-name "clump-binary-tree"))
-    (synopsis "Implementation of binary trees for Common Lisp")))
-
-(define-public sbcl-clump
-  (package
-    (inherit sbcl-clump-2-3-tree)
-    (name "sbcl-clump")
-    (arguments
-     '(#:asd-file "clump.asd"
-       #:asd-system-name "clump"))
-    (inputs
-     `(("clump-2-3-tree" ,sbcl-clump-2-3-tree)
-       ("clump-binary-tree" ,sbcl-clump-binary-tree)))
-    (synopsis "Collection of tree implementations for Common Lisp")))
-
 (define-public cl-clump
   (sbcl-package->cl-source-package sbcl-clump))
 
-(define-public sbcl-cluffer-base
+(define-public ecl-clump
+  (sbcl-package->ecl-package sbcl-clump))
+
+(define-public sbcl-cluffer
   (let ((commit "4aad29c276a58a593064e79972ee4d77cae0af4a"))
     (package
-      (name "sbcl-cluffer-base")
+      (name "sbcl-cluffer")
       (version (git-version "0.0.0" "1" commit))
       (source
        (origin
@@ -12054,12 +10229,10 @@ sequences of objects.")
          (sha256
           (base32
            "1bcg13g7qb3dr8z50aihdjqa6miz5ivlc9wsj2csgv1km1mak2kj"))))
-      (arguments
-       '(#:asd-file "Base/cluffer-base.asd"
-         #:asd-system-name "cluffer-base"))
-      (inputs
-       `(("acclimation" ,sbcl-acclimation)))
       (build-system asdf-build-system/sbcl)
+      (inputs
+       `(("acclimation" ,sbcl-acclimation)
+         ("clump" ,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
@@ -12068,64 +10241,12 @@ interact with the buffer contents in various ways, and it supplies different
 implementations of those protocols for different purposes.")
       (license license:bsd-2))))
 
-(define-public sbcl-cluffer-standard-line
-  (package
-    (inherit sbcl-cluffer-base)
-    (name "sbcl-cluffer-standard-line")
-    (arguments
-     '(#:asd-file "Standard-line/cluffer-standard-line.asd"
-       #:asd-system-name "cluffer-standard-line"))
-    (inputs
-     `(("cluffer-base" ,sbcl-cluffer-base)))))
-
-(define-public sbcl-cluffer-standard-buffer
-  (package
-    (inherit sbcl-cluffer-base)
-    (name "sbcl-cluffer-standard-buffer")
-    (arguments
-     '(#:asd-file "Standard-buffer/cluffer-standard-buffer.asd"
-       #:asd-system-name "cluffer-standard-buffer"))
-    (inputs
-     `(("cluffer-base" ,sbcl-cluffer-base)
-       ("clump" ,sbcl-clump)))))
-
-(define-public sbcl-cluffer-simple-line
-  (package
-    (inherit sbcl-cluffer-base)
-    (name "sbcl-cluffer-simple-line")
-    (arguments
-     '(#:asd-file "Simple-line/cluffer-simple-line.asd"
-       #:asd-system-name "cluffer-simple-line"))
-    (inputs
-     `(("cluffer-base" ,sbcl-cluffer-base)))))
-
-(define-public sbcl-cluffer-simple-buffer
-  (package
-    (inherit sbcl-cluffer-base)
-    (name "sbcl-cluffer-simple-buffer")
-    (arguments
-     '(#:asd-file "Simple-buffer/cluffer-simple-buffer.asd"
-       #:asd-system-name "cluffer-simple-buffer"))
-    (inputs
-     `(("cluffer-base" ,sbcl-cluffer-base)))))
-
-(define-public sbcl-cluffer
-  (package
-    (inherit sbcl-cluffer-base)
-    (name "sbcl-cluffer")
-    (arguments
-     '(#:asd-file "cluffer.asd"
-       #:asd-system-name "cluffer"))
-    (inputs
-     `(("cluffer-base" ,sbcl-cluffer-base)
-       ("cluffer-standard-line" ,sbcl-cluffer-standard-line)
-       ("cluffer-standard-buffer" ,sbcl-cluffer-standard-buffer)
-       ("cluffer-simple-line" ,sbcl-cluffer-simple-line)
-       ("cluffer-simple-buffer" ,sbcl-cluffer-simple-buffer)))))
-
 (define-public cl-cluffer
   (sbcl-package->cl-source-package sbcl-cluffer))
 
+(define-public ecl-cluffer
+  (sbcl-package->ecl-package sbcl-cluffer))
+
 (define-public sbcl-cl-libsvm-format
   (let ((commit "3300f84fd8d9f5beafc114f543f9d83417c742fb")
         (revision "0"))
@@ -12144,8 +10265,7 @@ implementations of those protocols for different purposes.")
            "0284aj84xszhkhlivaigf9qj855fxad3mzmv3zfr0qzb5k0nzwrg"))))
       (build-system asdf-build-system/sbcl)
       (native-inputs
-       `(("prove" ,sbcl-prove)
-         ("prove-asdf" ,sbcl-prove-asdf)))
+       `(("prove" ,sbcl-prove)))
       (inputs
        `(("alexandria" ,sbcl-alexandria)))
       (synopsis "LibSVM data format reader for Common Lisp")
@@ -12179,8 +10299,7 @@ format.")
            "14x95rlg80ay5hv645ki57pqvy12v28hz4k1w0f6bsfi2rmpxchq"))))
       (build-system asdf-build-system/sbcl)
       (native-inputs
-       `(("prove" ,sbcl-prove)
-         ("prove-asdf" ,sbcl-prove-asdf)))
+       `(("prove" ,sbcl-prove)))
       (inputs
        `(("cl-libsvm-format" ,sbcl-cl-libsvm-format)
          ("cl-store" ,sbcl-cl-store)))
@@ -12219,7 +10338,6 @@ online linear classification written in Common Lisp.")
       (build-system asdf-build-system/sbcl)
       (native-inputs
        `(("prove" ,sbcl-prove)
-         ("prove-asdf" ,sbcl-prove-asdf)
          ("trivial-garbage" ,sbcl-trivial-garbage)))
       (inputs
        `(("alexandria" ,sbcl-alexandria)
@@ -12437,7 +10555,6 @@ wrappers of deflate streams.  It currently does not handle compression.")
       (inputs
        `(("alexandria" ,sbcl-alexandria)
          ("cffi" ,sbcl-cffi)
-         ("cffi-grovel" ,sbcl-cffi-grovel)
          ("freetype" ,freetype)
          ("trivial-garbage" ,sbcl-trivial-garbage)))
       (arguments
@@ -12603,7 +10720,7 @@ than a few Kb.")
          ("trivial-features" ,sbcl-trivial-features)))
       (arguments
        ;; FIXME: Without the following line, the build fails (see issue 41437).
-       `(#:asd-system-name "3bz"))
+       `(#:asd-systems '("3bz")))
       (home-page "https://github.com/3b/3bz")
       (synopsis "Deflate decompression for Common Lisp")
       (description
@@ -12713,6 +10830,8 @@ both from files on disk, or streams in memory.")
          ("retrospectiff" ,sbcl-retrospectiff)
          ("skippy" ,sbcl-skippy)
          ("zpng" ,sbcl-zpng)))
+      (arguments
+       '(#:asd-files '("opticl.asd")))
       (home-page "https://github.com/slyrus/opticl")
       (synopsis "Image processing library for Common Lisp")
       (description
@@ -12723,11 +10842,14 @@ and saving 2-dimensional pixel-based images.")
 (define-public cl-opticl
   (sbcl-package->cl-source-package sbcl-opticl))
 
-(define-public sbcl-clim-lisp
-  (let ((commit "27b4d7a667c9b3faa74cabcb57706b888314fff7")
-        (revision "0"))
+(define-public ecl-opticl
+  (sbcl-package->ecl-package sbcl-opticl))
+
+(define-public sbcl-mcclim
+  (let ((commit "04cc542dd4b461b9d56406e40681d1a8f080730f")
+        (revision "1"))
     (package
-      (name "sbcl-clim-lisp")
+      (name "sbcl-mcclim")
       (version (git-version "0.9.7" revision commit))
       (source
        (origin
@@ -12737,13 +10859,69 @@ and saving 2-dimensional pixel-based images.")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
-          (base32 "0jijfgkwas6xnpp5wiii6slcx9pgsalngacb8zm29x6pamx2193h"))))
+          (base32 "1xjly8i62z72hfhlnz5kjd9i8xhrwckc7avyizxvhih67pkjmsx0"))))
       (build-system asdf-build-system/sbcl)
+      (native-inputs
+       `(("fiveam" ,sbcl-fiveam)
+         ("pkg-config" ,pkg-config)))
       (inputs
        `(("alexandria" ,sbcl-alexandria)
+         ("babel" ,sbcl-babel)
+         ("bordeaux-threads" ,sbcl-bordeaux-threads)
+         ("cl-freetype2" ,sbcl-cl-freetype2)
+         ("cl-pdf" ,sbcl-cl-pdf)
+         ("cffi" ,sbcl-cffi)
+         ("cl-unicode" ,sbcl-cl-unicode)
+         ("cl-vectors" ,sbcl-cl-vectors)
          ("closer-mop" ,sbcl-closer-mop)
+         ("clx" ,sbcl-clx)
+         ("flexi-streams" ,sbcl-flexi-streams)
+         ("flexichain" ,sbcl-flexichain)
+         ("font-dejavu" ,font-dejavu)
+         ("fontconfig" ,fontconfig)
+         ("freetype" ,freetype)
+         ("harfbuzz" ,harfbuzz)
          ("log4cl" ,sbcl-log4cl)
-         ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
+         ("opticl" ,sbcl-opticl)
+         ("spatial-trees" ,sbcl-spatial-trees)
+         ("swank" ,sbcl-slime-swank)
+         ("trivial-features" ,sbcl-trivial-features)
+         ("trivial-garbage" ,sbcl-trivial-garbage)
+         ("trivial-gray-streams" ,sbcl-trivial-gray-streams)
+         ("zpb-ttf" ,sbcl-zpb-ttf)))
+      (arguments
+       '(#:asd-systems '("mcclim"
+                         "clim-examples")
+         #:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'fix-paths
+             (lambda* (#:key inputs #:allow-other-keys)
+               ;; mcclim-truetype uses DejaVu as default font and
+               ;; sets the path at build time.
+               (substitute* "Extensions/fonts/fontconfig.lisp"
+                 (("/usr/share/fonts/truetype/dejavu/")
+                  (string-append (assoc-ref inputs "font-dejavu")
+                                 "/share/fonts/truetype/")))
+               (substitute* "Extensions/fontconfig/src/functions.lisp"
+                 (("libfontconfig\\.so")
+                  (string-append (assoc-ref inputs "fontconfig")
+                                 "/lib/libfontconfig.so")))
+               (substitute* "Extensions/harfbuzz/src/functions.lisp"
+                 (("libharfbuzz\\.so")
+                  (string-append (assoc-ref inputs "harfbuzz")
+                                 "/lib/libharfbuzz.so")))
+               #t))
+           (add-after 'unpack 'fix-build
+             (lambda _
+               ;; The cffi-grovel system does not get loaded automatically,
+               ;; so we load it explicitly.
+               (substitute* "Extensions/fontconfig/mcclim-fontconfig.asd"
+                 (("\\(asdf:defsystem #:mcclim-fontconfig" all)
+                  (string-append "(asdf:load-system :cffi-grovel)\n" all)))
+               (substitute* "Extensions/harfbuzz/mcclim-harfbuzz.asd"
+                 (("\\(asdf:defsystem #:mcclim-harfbuzz" all)
+                  (string-append "(asdf:load-system :cffi-grovel)\n" all)))
+               #t)))))
       (home-page "https://common-lisp.net/project/mcclim/")
       (synopsis "Common Lisp GUI toolkit")
       (description
@@ -12751,584 +10929,11 @@ and saving 2-dimensional pixel-based images.")
 specification}, a toolkit for writing GUIs in Common Lisp.")
       (license license:lgpl2.1+))))
 
-(define-public sbcl-clim-basic
-  (package
-    (inherit sbcl-clim-lisp)
-    (name "sbcl-clim-basic")
-    (inputs
-     `(("alexandria" ,sbcl-alexandria)
-       ("babel" ,sbcl-babel)
-       ("bordeaux-threads" ,sbcl-bordeaux-threads)
-       ("clim-lisp" ,sbcl-clim-lisp)
-       ("flexichain" ,sbcl-flexichain)
-       ("spatial-trees" ,sbcl-spatial-trees)
-       ("trivial-features" ,sbcl-trivial-features)
-       ("trivial-garbage" ,sbcl-trivial-garbage)))
-    (arguments
-     '(#:asd-file "Core/clim-basic/clim-basic.asd"))))
-
-(define-public sbcl-clim-core
-  (package
-    (inherit sbcl-clim-lisp)
-    (name "sbcl-clim-core")
-    (inputs
-     `(("clim-basic" ,sbcl-clim-basic)))
-    (arguments
-     '(#:asd-file "Core/clim-core/clim-core.asd"))))
-
-(define-public sbcl-esa-mcclim
-  (package
-    (inherit sbcl-clim-lisp)
-    (name "sbcl-esa-mcclim")
-    (inputs
-     `(("alexandria" ,sbcl-alexandria)
-       ("clim-core" ,sbcl-clim-core)))
-    (arguments
-     '(#:asd-file "Libraries/ESA/esa-mcclim.asd"))))
-
-(define-public sbcl-mcclim-fonts
-  (package
-    (inherit sbcl-clim-lisp)
-    (name "sbcl-mcclim-fonts")
-    (inputs
-     `(("clim-basic" ,sbcl-clim-basic)))
-    (arguments
-     '(#:asd-file "Extensions/fonts/mcclim-fonts.asd"))))
-
-(define-public sbcl-automaton
-  (package
-    (inherit sbcl-clim-lisp)
-    (name "sbcl-automaton")
-    (inputs
-     `())
-    (arguments
-     '(#:asd-file "Libraries/Drei/cl-automaton/automaton.asd"))))
-
-(define-public sbcl-persistent
-  (package
-    (inherit sbcl-clim-lisp)
-    (name "sbcl-persistent")
-    (inputs
-     `())
-    (arguments
-     '(#:asd-file "Libraries/Drei/Persistent/persistent.asd"))))
-
-(define-public sbcl-drei-mcclim
-  (package
-    (inherit sbcl-clim-lisp)
-    (name "sbcl-drei-mcclim")
-    (native-inputs
-     `(("fiveam" ,sbcl-fiveam)))
-    (inputs
-     `(("automaton" ,sbcl-automaton)
-       ("clim-core" ,sbcl-clim-core)
-       ("esa-mcclim" ,sbcl-esa-mcclim)
-       ("flexichain" ,sbcl-flexichain)
-       ("mcclim-fonts" ,sbcl-mcclim-fonts)
-       ("persistent" ,sbcl-persistent)
-       ("swank" ,cl-slime-swank)))
-    (arguments
-     '(#:asd-file "Libraries/Drei/drei-mcclim.asd"))))
-
-(define-public sbcl-clim
-  (package
-    (inherit sbcl-clim-lisp)
-    (name "sbcl-clim")
-    (inputs
-     `(("clim-core" ,sbcl-clim-core)
-       ("drei-mcclim" ,sbcl-drei-mcclim)
-       ("swank" ,cl-slime-swank))) ; For drei-mcclim
-    (arguments
-     '(#:asd-file "Core/clim/clim.asd"))))
-
-(define-public sbcl-mcclim-backend-common
-  (package
-    (inherit sbcl-clim-lisp)
-    (name "sbcl-mcclim-backend-common")
-    (native-inputs
-     `(("fiveam" ,sbcl-fiveam)))
-    (inputs
-     `(("clim" ,sbcl-clim)
-       ("swank" ,cl-slime-swank))) ; For drei-mcclim
-    (arguments
-     '(#:asd-file "Backends/common/mcclim-backend-common.asd"))))
-
-(define-public sbcl-mcclim-clx
-  (package
-    (inherit sbcl-clim-lisp)
-    (name "sbcl-mcclim-clx")
-    (inputs
-     `(("alexandria" ,sbcl-alexandria)
-       ("cl-unicode" ,sbcl-cl-unicode)
-       ("clx" ,sbcl-clx)
-       ("mcclim-backend-common" ,sbcl-mcclim-backend-common)
-       ("mcclim-fonts" ,sbcl-mcclim-fonts)
-       ("swank" ,cl-slime-swank))) ; For drei-mcclim
-    (arguments
-     '(#:asd-file "Backends/CLX/mcclim-clx.asd"))))
-
-(define-public sbcl-mcclim-fonts-truetype
-  (package
-    (inherit sbcl-clim-lisp)
-    (name "sbcl-mcclim-fonts-truetype")
-    (inputs
-     `(("alexandria" ,sbcl-alexandria)
-       ("cl-aa" ,sbcl-cl-aa)
-       ("cl-paths-ttf" ,sbcl-cl-paths-ttf)
-       ("cl-vectors" ,sbcl-cl-vectors)
-       ("clim-basic" ,sbcl-clim-basic)
-       ("font-dejavu" ,font-dejavu)
-       ("zpb-ttf" ,sbcl-zpb-ttf)))
-    (arguments
-     '(#:asd-file "Extensions/fonts/mcclim-fonts.asd"
-       #:asd-system-name "mcclim-fonts/truetype"
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'fix-paths
-           (lambda* (#:key inputs #:allow-other-keys)
-             ;; mcclim-truetype uses DejaVu as default font and
-             ;; sets the path at build time.
-             (substitute* "Extensions/fonts/fontconfig.lisp"
-               (("/usr/share/fonts/truetype/dejavu/")
-                (string-append (assoc-ref inputs "font-dejavu")
-                               "/share/fonts/truetype/")))
-             #t)))))))
-
-(define-public sbcl-mcclim-fonts-clx-truetype
-  (package
-    (inherit sbcl-clim-lisp)
-    (name "sbcl-mcclim-fonts-clx-truetype")
-    (inputs
-     `(("mcclim-clx" ,sbcl-mcclim-clx)
-       ("mcclim-fonts-truetype" ,sbcl-mcclim-fonts-truetype)
-       ("swank" ,cl-slime-swank))) ; For drei-mcclim
-    (arguments
-     '(#:asd-file "./Extensions/fonts/mcclim-fonts.asd"
-       #:asd-system-name "mcclim-fonts/clx-truetype"
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'fix-asd-system-names
-           (lambda _
-             (substitute* "Extensions/fonts/mcclim-fonts.asd"
-               ((":depends-on \\(#:mcclim-fonts/truetype")
-                ":depends-on (#:mcclim-fonts-truetype"))
-             #t)))))))
-
-(define-public sbcl-mcclim-clx-truetype
-  (package
-    (inherit sbcl-clim-lisp)
-    (name "sbcl-mcclim-clx-truetype")
-    (inputs
-     `(("mcclim-clx" ,sbcl-mcclim-clx)
-       ("mcclim-fonts-clx-truetype" ,sbcl-mcclim-fonts-clx-truetype)
-       ("swank" ,cl-slime-swank))) ; For drei-mcclim
-    (arguments
-     '(#:asd-file "Backends/CLX/mcclim-clx.asd"
-       #:asd-system-name "mcclim-clx/truetype"
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'fix-asd-system-names
-           (lambda _
-             (substitute* "Backends/CLX/mcclim-clx.asd"
-               (("mcclim-fonts/clx-truetype")
-                "mcclim-fonts-clx-truetype"))
-             #t)))))))
-
-(define-public sbcl-mcclim-fontconfig
-  (package
-    (inherit sbcl-clim-lisp)
-    (name "sbcl-mcclim-fontconfig")
-    (native-inputs
-     `(("pkg-config" ,pkg-config)))
-    (inputs
-     `(("alexandria" ,sbcl-alexandria)
-       ("cffi" ,sbcl-cffi)
-       ("cffi-grovel" ,sbcl-cffi-grovel)
-       ("fontconfig" ,fontconfig)))
-    (arguments
-     '(#:asd-file "Extensions/fontconfig/mcclim-fontconfig.asd"
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'fix-paths
-           (lambda* (#:key inputs #:allow-other-keys)
-             (substitute* "Extensions/fontconfig/src/functions.lisp"
-               (("libfontconfig\\.so")
-                (string-append (assoc-ref inputs "fontconfig")
-                               "/lib/libfontconfig.so")))
-             #t))
-         (add-after 'unpack 'fix-build
-           (lambda _
-             ;; The cffi-grovel system does not get loaded automatically,
-             ;; so we load it explicitly.
-             (substitute* "Extensions/fontconfig/mcclim-fontconfig.asd"
-               (("\\(asdf:defsystem #:mcclim-fontconfig" all)
-                (string-append "(asdf:load-system :cffi-grovel)\n" all)))
-             #t)))))))
-
-(define-public sbcl-mcclim-harfbuzz
-  (package
-    (inherit sbcl-clim-lisp)
-    (name "sbcl-mcclim-harfbuzz")
-    (native-inputs
-     `(("pkg-config" ,pkg-config)))
-    (inputs
-     `(("alexandria" ,sbcl-alexandria)
-       ("cffi" ,sbcl-cffi)
-       ("cffi-grovel" ,sbcl-cffi-grovel)
-       ("freetype" ,freetype)
-       ("harfbuzz" ,harfbuzz)
-       ("trivial-garbage" ,sbcl-trivial-garbage)))
-    (arguments
-     '(#:asd-file "Extensions/harfbuzz/mcclim-harfbuzz.asd"
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'fix-paths
-           (lambda* (#:key inputs #:allow-other-keys)
-             (substitute* "Extensions/harfbuzz/src/functions.lisp"
-               (("libharfbuzz\\.so")
-                (string-append (assoc-ref inputs "harfbuzz")
-                               "/lib/libharfbuzz.so")))
-             #t))
-         (add-after 'unpack 'fix-build
-           (lambda _
-             ;; The cffi-grovel system does not get loaded automatically,
-             ;; so we load it explicitly.
-             (substitute* "Extensions/harfbuzz/mcclim-harfbuzz.asd"
-               (("\\(asdf:defsystem #:mcclim-harfbuzz" all)
-                (string-append "(asdf:load-system :cffi-grovel)\n" all)))
-             #t)))))))
-
-(define-public sbcl-mcclim-fonts-clx-freetype
-  (package
-    (inherit sbcl-clim-lisp)
-    (name "sbcl-mcclim-fonts-clx-freetype")
-    (inputs
-     `(("cl-freetype2" ,sbcl-cl-freetype2)
-       ("mcclim-clx" ,sbcl-mcclim-clx)
-       ("mcclim-fontconfig" ,sbcl-mcclim-fontconfig)
-       ("mcclim-fonts" ,sbcl-mcclim-fonts)
-       ("mcclim-harfbuzz" ,sbcl-mcclim-harfbuzz)
-       ("swank" ,cl-slime-swank))) ; For drei-mcclim
-    (arguments
-     '(#:asd-file "Extensions/fonts/mcclim-fonts.asd"
-       #:asd-system-name "mcclim-fonts/clx-freetype"))))
-
-(define-public sbcl-mcclim-clx-freetype
-  (package
-    (inherit sbcl-clim-lisp)
-    (name "sbcl-mcclim-clx-freetype")
-    (inputs
-     `(("mcclim-clx" ,sbcl-mcclim-clx)
-       ("mcclim-fonts-clx-freetype" ,sbcl-mcclim-fonts-clx-freetype)
-       ("swank" ,cl-slime-swank))) ; For drei-mcclim
-    (arguments
-     '(#:asd-file "Backends/CLX/mcclim-clx.asd"
-       #:asd-system-name "mcclim-clx/freetype"
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'fix-asd-system-names
-           (lambda _
-             (substitute* "Backends/CLX/mcclim-clx.asd"
-               (("mcclim-fonts/clx-freetype")
-                "mcclim-fonts-clx-freetype"))
-             #t)))))))
-
-(define-public sbcl-mcclim-render
-  (package
-    (inherit sbcl-clim-lisp)
-    (name "sbcl-mcclim-render")
-    (inputs
-     `(("alexandria" ,sbcl-alexandria)
-       ("cl-vectors" ,sbcl-cl-vectors)
-       ("clim-basic" ,sbcl-clim-basic)
-       ("mcclim-backend-common" ,sbcl-mcclim-backend-common)
-       ("mcclim-fonts-truetype" ,sbcl-mcclim-fonts-truetype)
-       ("swank" ,cl-slime-swank))) ; For drei-mcclim
-    (arguments
-     '(#:asd-file "Extensions/render/mcclim-render.asd"
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'fix-asd-system-names
-           (lambda _
-             (substitute* "Extensions/render/mcclim-render.asd"
-               (("mcclim-fonts/truetype")
-                "mcclim-fonts-truetype"))
-             #t)))))))
-
-(define-public sbcl-mcclim-clx-fb
-  (package
-    (inherit sbcl-clim-lisp)
-    (name "sbcl-mcclim-clx-fb")
-    (inputs
-     `(("mcclim-backend-common" ,sbcl-mcclim-backend-common)
-       ("mcclim-clx" ,sbcl-mcclim-clx)
-       ("mcclim-render" ,sbcl-mcclim-render)
-       ("swank" ,cl-slime-swank))) ; For drei-mcclim
-    (arguments
-     '(#:asd-file "Backends/CLX-fb/mcclim-clx-fb.asd"))))
-
-(define-public sbcl-mcclim-null
-  (package
-    (inherit sbcl-clim-lisp)
-    (name "sbcl-mcclim-null")
-    (inputs
-     `(("clim" ,sbcl-clim)
-       ("swank" ,cl-slime-swank))) ; For drei-mcclim
-    (arguments
-     '(#:asd-file "Backends/Null/mcclim-null.asd"))))
-
-(define-public sbcl-clim-postscript-font
-  (package
-    (inherit sbcl-clim-lisp)
-    (name "sbcl-clim-postscript-font")
-    (inputs
-     `(("clim-basic" ,sbcl-clim-basic)
-       ("mcclim-backend-common" ,sbcl-mcclim-backend-common)
-       ("swank" ,cl-slime-swank))) ; For drei-mcclim
-    (arguments
-     '(#:asd-file "Backends/PostScript/clim-postscript-font.asd"))))
-
-(define-public sbcl-clim-postscript
-  (package
-    (inherit sbcl-clim-lisp)
-    (name "sbcl-clim-postscript")
-    (native-inputs
-     `(("fiveam" ,sbcl-fiveam)))
-    (inputs
-     `(("clim-basic" ,sbcl-clim-basic)
-       ("clim-postscript-font" ,sbcl-clim-postscript-font)
-       ("swank" ,cl-slime-swank))) ; For drei-mcclim
-    (arguments
-     '(#:asd-file "Backends/PostScript/clim-postscript.asd"
-       ;; Test suite disabled because of a dependency cycle.
-       ;; The tests depend on mcclim/test-util, which depends on mcclim,
-       ;; wich depends on mcclim/extensions, which depends on clim-postscript.
-       #:tests? #f))))
-
-(define-public sbcl-clim-pdf
-  (package
-    (inherit sbcl-clim-lisp)
-    (name "sbcl-clim-pdf")
-    (native-inputs
-     `(("fiveam" ,sbcl-fiveam)))
-    (inputs
-     `(("cl-pdf" ,sbcl-cl-pdf)
-       ("clim-basic" ,sbcl-clim-basic)
-       ("clim-postscript-font" ,sbcl-clim-postscript-font)
-       ("flexi-streams" ,sbcl-flexi-streams)
-       ("swank" ,cl-slime-swank))) ; For drei-mcclim
-    (arguments
-     '(#:asd-file "Backends/PDF/clim-pdf.asd"
-       ;; Test suite disabled because of a dependency cycle.
-       ;; The tests depend on mcclim/test-util, which depends on mcclim,
-       ;; wich depends on mcclim/extensions, which depends on clim-pdf.
-       #:tests? #f))))
-
-(define-public sbcl-mcclim-looks
-  (package
-    (inherit sbcl-clim-lisp)
-    (name "sbcl-mcclim-looks")
-    (inputs
-     `(("clim" ,sbcl-clim)
-       ("mcclim-clx" ,sbcl-mcclim-clx)
-       ("mcclim-clx-fb" ,sbcl-mcclim-clx-fb)
-       ("mcclim-clx-freetype" ,sbcl-mcclim-clx-freetype)
-       ("mcclim-clx-truetype" ,sbcl-mcclim-clx-truetype)
-       ("mcclim-null" ,sbcl-mcclim-null)
-       ("swank" ,cl-slime-swank))) ; For drei-mcclim
-    (arguments
-     '(#:asd-file "mcclim.asd"
-       #:asd-system-name "mcclim/looks"
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'fix-asd-system-names
-           (lambda _
-             (substitute* "mcclim.asd"
-               (("mcclim-clx/truetype")
-                "mcclim-clx-truetype")
-               (("mcclim-clx/freetype")
-                "mcclim-clx-freetype"))
-             #t)))))))
-
-(define-public sbcl-mcclim-franz
-  (package
-    (inherit sbcl-clim-lisp)
-    (name "sbcl-mcclim-franz")
-    (inputs
-     `(("clim" ,sbcl-clim)
-       ("swank" ,cl-slime-swank))) ; For drei-mcclim
-    (arguments
-     '(#:asd-file "Extensions/Franz/mcclim-franz.asd"))))
-
-(define-public sbcl-mcclim-bezier-core
-  (package
-    (inherit sbcl-clim-lisp)
-    (name "sbcl-mcclim-bezier-core")
-    (inputs
-     `(("clim" ,sbcl-clim)
-       ("clim-pdf" ,sbcl-clim-pdf)
-       ("clim-postscript" ,sbcl-clim-postscript)
-       ("mcclim-null" ,sbcl-mcclim-null)
-       ("mcclim-render" ,sbcl-mcclim-render)
-       ("swank" ,cl-slime-swank))) ; For drei-mcclim
-    (arguments
-     '(#:asd-file "Extensions/bezier/mcclim-bezier.asd"
-       #:asd-system-name "mcclim-bezier/core"))))
-
-(define-public sbcl-mcclim-bezier-clx
-  (package
-    (inherit sbcl-clim-lisp)
-    (name "sbcl-mcclim-bezier-clx")
-    (inputs
-     `(("clim" ,sbcl-clim)
-       ("mcclim-bezier/core" ,sbcl-mcclim-bezier-core)
-       ("mcclim-clx" ,sbcl-mcclim-clx)
-       ("swank" ,cl-slime-swank))) ; For drei-mcclim
-    (arguments
-     '(#:asd-file "Extensions/bezier/mcclim-bezier.asd"
-       #:asd-system-name "mcclim-bezier/clx"
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'fix-asd-system-names
-           (lambda _
-             (substitute* "Extensions/bezier/mcclim-bezier.asd"
-               (("mcclim-bezier/core\\)")
-                "mcclim-bezier-core)"))
-             #t)))))))
-
-(define-public sbcl-mcclim-bezier
-  (package
-    (inherit sbcl-clim-lisp)
-    (name "sbcl-mcclim-bezier")
-    (inputs
-     `(("mcclim-bezier/clx" ,sbcl-mcclim-bezier-clx)
-       ("mcclim-bezier/core" ,sbcl-mcclim-bezier-core)
-       ("swank" ,cl-slime-swank))) ; For drei-mcclim
-    (arguments
-     '(#:asd-file "Extensions/bezier/mcclim-bezier.asd"
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'fix-asd-system-names
-           (lambda _
-             (substitute* "Extensions/bezier/mcclim-bezier.asd"
-               (("\\(#:mcclim-bezier/core")
-                "(#:mcclim-bezier-core")
-               (("#:mcclim-bezier/clx\\)\\)")
-                "#:mcclim-bezier-clx))"))
-             #t)))))))
-
-(define-public sbcl-mcclim-bitmaps
-  (package
-    (inherit sbcl-clim-lisp)
-    (name "sbcl-mcclim-bitmaps")
-    (inputs
-     `(("clim-basic" ,sbcl-clim-basic)
-       ("opticl" ,sbcl-opticl)))
-    (arguments
-     '(#:asd-file "Extensions/bitmap-formats/mcclim-bitmaps.asd"))))
-
-(define-public sbcl-conditional-commands
-  (package
-    (inherit sbcl-clim-lisp)
-    (name "sbcl-conditional-commands")
-    (inputs
-     `(("clim-basic" ,sbcl-clim-basic)))
-    (arguments
-     '(#:asd-file "Extensions/conditional-commands/conditional-commands.asd"))))
-
-(define-public sbcl-mcclim-layouts-tab
-  (package
-    (inherit sbcl-clim-lisp)
-    (name "sbcl-mcclim-layouts-tab")
-    (inputs
-     `(("clim" ,sbcl-clim)
-       ("swank" ,cl-slime-swank))) ; For drei-mcclim
-    (arguments
-     '(#:asd-file "Extensions/layouts/mcclim-layouts.asd"
-       #:asd-system-name "mcclim-layouts/tab"))))
-
-(define-public sbcl-mcclim-extensions
-  (package
-    (inherit sbcl-clim-lisp)
-    (name "sbcl-mcclim-extensions")
-    (inputs
-     `(("clim-pdf" ,sbcl-clim-pdf)
-       ("clim-postscript" ,sbcl-clim-postscript)
-       ("conditional-commands" ,sbcl-conditional-commands)
-       ("mcclim-bezier" ,sbcl-mcclim-bezier)
-       ("mcclim-bitmaps" ,sbcl-mcclim-bitmaps)
-       ("mcclim-franz" ,sbcl-mcclim-franz)
-       ("mcclim-layouts-tab" ,sbcl-mcclim-layouts-tab)
-       ("swank" ,cl-slime-swank))) ; For drei-mcclim
-    (arguments
-     '(#:asd-file "mcclim.asd"
-       #:asd-system-name "mcclim/extensions"
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'fix-asd-system-names
-           (lambda _
-             (substitute* "mcclim.asd"
-               (("mcclim-layouts/tab")
-                "mcclim-layouts-tab"))
-             #t)))))))
-
-(define-public sbcl-mcclim
-  (package
-    (inherit sbcl-clim-lisp)
-    (name "sbcl-mcclim")
-    (native-inputs
-     `(("fiveam" ,sbcl-fiveam)))
-    (inputs
-     `(("mcclim-looks" ,sbcl-mcclim-looks)
-       ("mcclim-extensions" ,sbcl-mcclim-extensions)
-       ("swank" ,cl-slime-swank))) ; For drei-mcclim
-    (arguments
-     '(#:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'fix-asd-system-names
-           (lambda _
-             (substitute* "mcclim.asd"
-               ((":depends-on \\(\"mcclim/looks\" \"mcclim/extensions\"\\)")
-                ":depends-on (\"mcclim-looks\" \"mcclim-extensions\")"))
-             #t)))
-       ;; Test suite disabled because of a dependency cycle.
-       ;; The tests depend on mcclim/test-util, which depends on mcclim.
-       #:tests? #f))))
-
 (define-public cl-mcclim
-  (let ((base (sbcl-package->cl-source-package sbcl-clim-lisp)))
-    (package
-      (inherit base)
-      (name "cl-mcclim")
-      (native-inputs
-       `(("fiveam" ,cl-fiveam)
-         ("pkg-config" ,pkg-config)))
-      (inputs
-       `(("alexandria" ,cl-alexandria)
-         ("babel" ,cl-babel)
-         ("bordeaux-threads" ,cl-bordeaux-threads)
-         ("cffi" ,cl-cffi)
-         ("cl-aa" ,cl-aa)
-         ("cl-freetype2" ,cl-freetype2)
-         ("cl-paths-ttf" ,cl-paths-ttf)
-         ("cl-pdf" ,cl-pdf)
-         ("cl-unicode" ,cl-unicode)
-         ("cl-vectors" ,cl-vectors)
-         ("closer-mop" ,cl-closer-mop)
-         ("clx" ,cl-clx)
-         ("flexi-streams" ,cl-flexi-streams)
-         ("flexichain" ,cl-flexichain)
-         ("fontconfig" ,fontconfig)
-         ("freetype" ,freetype)
-         ("harfbuzz" ,harfbuzz)
-         ("log4cl" ,cl-log4cl)
-         ("opticl" ,cl-opticl)
-         ("spatial-trees" ,cl-spatial-trees)
-         ("trivial-features" ,cl-trivial-features)
-         ("trivial-garbage" ,cl-trivial-garbage)
-         ("trivial-gray-streams" ,cl-trivial-gray-streams)
-         ("swank" ,cl-slime-swank)
-         ("zpb-ttf" ,cl-zpb-ttf))))))
+  (sbcl-package->cl-source-package sbcl-mcclim))
+
+(define-public ecl-mcclim
+  (sbcl-package->ecl-package sbcl-mcclim))
 
 (define-public sbcl-cl-inflector
   (let ((commit "f1ab16919ccce3bd82a0042677d9616dde2034fe")
@@ -13365,6 +10970,43 @@ Inflector module.")
 (define-public ecl-cl-inflector
   (sbcl-package->ecl-package sbcl-cl-inflector))
 
+(define-public sbcl-ixf
+  (let ((commit "ed26f87e4127e4a9e3aac4ff1e60d1f39cca5183")
+        (revision "1"))
+    (package
+      (name "sbcl-ixf")
+      (version (git-version "0.1.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/dimitri/cl-ixf")
+               (commit commit)))
+         (file-name (git-file-name "cl-ixf" version))
+         (sha256
+          (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)))
+      (home-page "https://github.com/dimitri/cl-ixf")
+      (synopsis "Parse IBM IXF file format")
+      (description
+       "This is a Common Lisp library to handle the IBM PC version of the IXF
+(Integration Exchange Format) file format.")
+      (license license:public-domain))))
+
+(define-public ecl-ixf
+  (sbcl-package->ecl-package sbcl-ixf))
+
+(define-public cl-ixf
+  (sbcl-package->cl-source-package sbcl-ixf))
+
 (define-public sbcl-qbase64
   (package
     (name "sbcl-qbase64")
@@ -13396,6 +11038,70 @@ and decoder for Common Lisp.")
 (define-public ecl-qbase64
   (sbcl-package->ecl-package sbcl-qbase64))
 
+(define-public sbcl-lw-compat
+  ;; No release since 2013.
+  (let ((commit "aabfe28c6c1a4949f9d7b3cb30319367c9fd1c0d"))
+    (package
+      (name "sbcl-lw-compat")
+      (version (git-version "1.0.0" "1" commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/pcostanza/lw-compat/")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "131rq5k2mlv9bfhmafiv6nfsivl4cxx13d9wr06v5jrqnckh4aav"))))
+      (build-system asdf-build-system/sbcl)
+      (home-page "https://github.com/pcostanza/lw-compat/")
+      (synopsis "LispWorks utilities ported to other Common Lisp implementations")
+      (description "This package contains a few utility functions from the
+LispWorks library that are used in software such as ContextL.")
+      (license license:expat))))
+
+(define-public cl-lw-compat
+  (sbcl-package->cl-source-package sbcl-lw-compat))
+
+(define-public ecl-lw-compat
+  (sbcl-package->ecl-package sbcl-lw-compat))
+
+(define-public sbcl-contextl
+  ;; No release since 2013.
+  (let ((commit "5d18a71a85824f6c25a9f35a21052f967b8b6bb9"))
+    (package
+      (name "sbcl-contextl")
+      (version (git-version "1.0.0" "1" commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/pcostanza/contextl/")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0gk1izx6l6g48nypmnm9r6mzjx0jixqjj2kc6klf8a88rr5xd226"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       `(("closer-mop" ,sbcl-closer-mop)
+         ("lw-compat" ,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
+Programming (COP).
+
+Find overview of ContextL's features in an overview paper:
+@url{http://www.p-cos.net/documents/contextl-soa.pdf}.  See also this general
+overview article about COP which also contains some ContextL examples:
+@url{http://www.jot.fm/issues/issue_2008_03/article4/}.")
+      (license license:expat))))
+
+(define-public cl-contextl
+  (sbcl-package->cl-source-package sbcl-contextl))
+
+(define-public ecl-contextl
+  (sbcl-package->ecl-package sbcl-contextl))
+
 (define-public sbcl-hu.dwim.common-lisp
   (package
     (name "sbcl-hu.dwim.common-lisp")
@@ -13451,7 +11157,8 @@ package that includes a number of renames and shadows. ")
        ("metabang-bind" ,sbcl-metabang-bind)))
     (home-page "http://dwim.hu/")
     (synopsis "Common Lisp library shared by other hu.dwim systems")
-    (description "")
+    (description "This package contains a support library for other
+hu.dwim systems.")
     (license license:public-domain)))
 
 (define-public cl-hu.dwim.common
@@ -13493,7 +11200,7 @@ simplify class and condition declarations.  Features include:
 
 @itemize
 @item Automatically export all or select slots at compile time.
-@item Define the @code{:initarg} and @code{:accesor} automatically.
+@item Define the @code{:initarg} and @code{:accessor} automatically.
 @item Specify a name transformer for both the @code{:initarg} and
 @code{:accessor}, etc.
 @item Specify the @code{:initform} as second slot value.
@@ -13509,3 +11216,2436 @@ for an example.")
 
 (define-public ecl-hu.dwim.defclass-star
   (sbcl-package->ecl-package sbcl-hu.dwim.defclass-star))
+
+(define-public sbcl-livesupport
+  (let ((commit "71e6e412df9f3759ad8378fabb203913d82e228a")
+	(revision "1"))
+    (package
+      (name "sbcl-livesupport")
+      (version (git-version "0.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/cbaggers/livesupport")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1rvnl0mncylbx63608pz5llss7y92j7z3ydambk9mcnjg2mjaapg"))))
+      (build-system asdf-build-system/sbcl)
+      (home-page "https://github.com/cbaggers/livesupport")
+      (synopsis "Some helpers that make livecoding a little easier")
+      (description "This package provides a macro commonly used in livecoding to
+enable continuing when errors are raised.  Simply wrap around a chunk of code
+and it provides a restart called @code{continue} which ignores the error and
+carrys on from the end of the body.")
+      (license license:bsd-2))))
+
+(define-public cl-livesupport
+  (sbcl-package->cl-source-package sbcl-livesupport))
+
+(define-public ecl-livesupport
+  (sbcl-package->ecl-package sbcl-livesupport))
+
+(define-public sbcl-envy
+  (let ((commit "956321b2852d58ba71c6fe621f5c2924178e9f88")
+	(revision "1"))
+    (package
+      (name "sbcl-envy")
+      (version (git-version "0.1" revision commit))
+      (home-page "https://github.com/fukamachi/envy")
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url home-page)
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "17iwrfxcdinjbb2h6l09qf40s7xkbhrpmnljlwpjy8l8rll8h3vg"))))
+      (build-system asdf-build-system/sbcl)
+      ;; (native-inputs ; Only for tests.
+      ;;  `(("prove" ,sbcl-prove)
+      ;;    ("osicat" ,sbcl-osicat)))
+      (arguments
+       '(#:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'fix-tests
+             (lambda _
+               (substitute* "envy-test.asd"
+                 (("cl-test-more") "prove"))
+               #t)))
+         ;; Tests fail with
+         ;;   Component ENVY-ASD::ENVY-TEST not found, required by #<SYSTEM "envy">
+         ;; like xsubseq.  Why?
+         #:tests? #f))
+      (synopsis "Common Lisp configuration switcher inspired by Perl's Config::ENV.")
+      (description "Envy is a configuration manager for various applications.
+Envy uses an environment variable to determine a configuration to use.  This
+can separate configuration system from an implementation.")
+      (license license:bsd-2))))
+
+(define-public cl-envy
+  (sbcl-package->cl-source-package sbcl-envy))
+
+(define-public ecl-envy
+  (sbcl-package->ecl-package sbcl-envy))
+
+(define-public sbcl-mito
+  (let ((commit "d3b9e375ef364a65692da2185085a08c969ac88a")
+	(revision "1"))
+    (package
+      (name "sbcl-mito")
+      (version (git-version "0.1" revision commit))
+      (home-page "https://github.com/fukamachi/mito")
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url home-page)
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "08mncgzjnbbsf1a6am3l73iw4lyfvz5ldjg5g84awfaxml4p73mb"))))
+      (build-system asdf-build-system/sbcl)
+      (native-inputs
+       `(("prove" ,sbcl-prove)))
+      (inputs
+       `(("alexandria" ,sbcl-alexandria)
+         ("cl-ppcre" ,sbcl-cl-ppcre)
+         ("cl-reexport" ,sbcl-cl-reexport)
+         ("closer-mop" ,sbcl-closer-mop)
+         ("dbi" ,sbcl-dbi)
+         ("dissect" ,sbcl-dissect)
+         ("esrap" ,sbcl-esrap)
+         ("local-time" ,sbcl-local-time)
+         ("optima" ,sbcl-optima)
+         ("sxql" ,sbcl-sxql)
+         ("uuid" ,sbcl-uuid)))
+      (arguments
+       '(#:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'remove-non-functional-tests
+             (lambda _
+               (substitute* "mito-test.asd"
+                 (("\\(:test-file \"db/mysql\"\\)") "")
+                 (("\\(:test-file \"db/postgres\"\\)") "")
+                 (("\\(:test-file \"dao\"\\)") "")
+                 ;; TODO: migration/sqlite3 should work, re-enable once
+                 ;; upstream has fixed it:
+                 ;; https://github.com/fukamachi/mito/issues/70
+                 (("\\(:test-file \"migration/sqlite3\"\\)") "")
+                 (("\\(:test-file \"migration/mysql\"\\)") "")
+                 (("\\(:test-file \"migration/postgres\"\\)") "")
+                 (("\\(:test-file \"postgres-types\"\\)") "")
+                 (("\\(:test-file \"mixin\"\\)") ""))
+               #t)))
+         ;; TODO: While all enabled tests pass, the phase fails with:
+         ;; Component MITO-ASD::MITO-TEST not found, required by #<SYSTEM "mito">
+         #:tests? #f))
+      (synopsis "ORM for Common Lisp with migrations and relationships support")
+      (description "Mito is yet another object relational mapper, and it aims
+to be a successor of Integral.
+
+@itemize
+@item Support MySQL, PostgreSQL and SQLite3.
+@item Add id (serial/uuid primary key), created_at and updated_at by default
+like Ruby's ActiveRecord.
+@item Migrations.
+@item Database schema versioning.
+@end itemize\n")
+      (license license:llgpl))))
+
+(define-public cl-mito
+  (sbcl-package->cl-source-package sbcl-mito))
+
+(define-public ecl-mito
+  (sbcl-package->ecl-package sbcl-mito))
+
+(define-public sbcl-kebab
+  (let ((commit "e7f77644c4e46131e7b8039d191d35fe6211f31b")
+        (revision "1"))
+    (package
+      (name "sbcl-kebab")
+      (version (git-version "0.1" revision commit))
+      (home-page "https://github.com/pocket7878/kebab")
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url home-page)
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0j5haabnvj0vz0rx9mwyfsb3qzpga9nickbjw8xs6vypkdzlqv1b"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       `(("cl-ppcre" ,sbcl-cl-ppcre)
+         ("alexandria" ,sbcl-alexandria)
+         ("cl-interpol" ,sbcl-cl-interpol)
+         ("split-sequence" ,sbcl-split-sequence)))
+      (native-inputs
+       `(("prove" ,sbcl-prove)))
+      (arguments
+       ;; Tests passes but the phase fails with
+       ;; Component KEBAB-ASD::KEBAB-TEST not found, required by #<SYSTEM "kebab">.
+       `(#:tests? #f))
+      (synopsis "Common Lisp case converter")
+      (description "This Common Lisp library converts strings, symbols and
+keywords between any of the following typographical cases: PascalCase,
+camelCase, snake_case, kebab-case (lisp-case).")
+      (license license:llgpl))))
+
+(define-public cl-kebab
+  (sbcl-package->cl-source-package sbcl-kebab))
+
+(define-public ecl-kebab
+  (sbcl-package->ecl-package sbcl-kebab))
+
+(define-public sbcl-datafly
+  (let ((commit "adece27fcbc4b5ea39ad1a105048b6b7166e3b0d")
+        (revision "1"))
+    (package
+      (name "sbcl-datafly")
+      (version (git-version "0.1" revision commit))
+      (home-page "https://github.com/fukamachi/datafly")
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url home-page)
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "16b78kzmglp2a4nxlxxl7rpf5zaibsgagn0p3c56fsxvx0c4hszv"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       `(("alexandria" ,sbcl-alexandria)
+         ("iterate" ,sbcl-iterate)
+         ("optima" ,sbcl-optima)
+         ("trivial-types" ,sbcl-trivial-types)
+         ("closer-mop" ,sbcl-closer-mop)
+         ("cl-syntax" ,sbcl-cl-syntax)
+         ("sxql" ,sbcl-sxql)
+         ("dbi" ,sbcl-dbi)
+         ("babel" ,sbcl-babel)
+         ("local-time" ,sbcl-local-time)
+         ("function-cache" ,sbcl-function-cache)
+         ("jonathan" ,sbcl-jonathan)
+         ("kebab" ,sbcl-kebab)
+         ("log4cl" ,sbcl-log4cl)))
+      (native-inputs
+       `(("prove" ,sbcl-prove)))
+      (arguments
+       ;; TODO: Tests fail with
+       ;; While evaluating the form starting at line 22, column 0
+       ;;   of #P"/tmp/guix-build-sbcl-datafly-0.1-1.adece27.drv-0/source/t/datafly.lisp":
+       ;; Unhandled SQLITE:SQLITE-ERROR in thread #<SB-THREAD:THREAD "main thread" RUNNING
+       ;; {10009F8083}>:
+       ;;   Error when binding parameter 1 to value NIL.
+       ;; Code RANGE: column index out of range.
+       `(#:tests? #f))
+      (synopsis "Lightweight database library for Common Lisp")
+      (description "Datafly is a lightweight database library for Common Lisp.")
+      (license license:bsd-3))))
+
+(define-public cl-datafly
+  (sbcl-package->cl-source-package sbcl-datafly))
+
+(define-public ecl-datafly
+  (sbcl-package->ecl-package sbcl-datafly))
+
+(define-public sbcl-do-urlencode
+  (let ((commit "199846441dad5dfac5478b8dee4b4e20d107af6a")
+        (revision "1"))
+    (package
+      (name "sbcl-do-urlencode")
+      (version (git-version "0.0.0" revision commit))
+      (home-page "https://github.com/drdo/do-urlencode")
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url home-page)
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0k2i3d4k9cpci235mwfm0c5a4yqfkijr716bjv7cdlpzx88lazm9"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       `(("alexandria" ,sbcl-alexandria)
+         ("babel" ,sbcl-babel)))
+      (synopsis "Percent Encoding (aka URL Encoding) Common Lisp library")
+      (description "This library provides trivial percent encoding and
+decoding functions for URLs.")
+      (license license:isc))))
+
+(define-public cl-do-urlencode
+  (sbcl-package->cl-source-package sbcl-do-urlencode))
+
+(define-public ecl-do-urlencode
+  (sbcl-package->ecl-package sbcl-do-urlencode))
+
+(define-public sbcl-cl-emb
+  (let ((commit "fd8652174d048d4525a81f38cdf42f4fa519f840")
+        (revision "1"))
+    (package
+      (name "sbcl-cl-emb")
+      (version (git-version "0.4.3" revision commit))
+      (home-page "https://common-lisp.net/project/cl-emb/")
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/38a938c2/cl-emb")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1xcm31n7afh5316lwz8iqbjx7kn5lw0l11arg8mhdmkx42aj4gkk"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       `(("cl-ppcre" ,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
+that and not limited to a certain server or text format.")
+      (license license:llgpl))))
+
+(define-public cl-emb
+  (sbcl-package->cl-source-package sbcl-cl-emb))
+
+(define-public ecl-cl-emb
+  (sbcl-package->ecl-package sbcl-cl-emb))
+
+(define-public sbcl-cl-project
+  (let ((commit "151107014e534fc4666222d57fec2cc8549c8814")
+        (revision "1"))
+    (package
+      (name "sbcl-cl-project")
+      (version (git-version "0.3.1" revision commit))
+      (home-page "https://github.com/fukamachi/cl-project")
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url home-page)
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1rmh6s1ncv8s2yrr14ja9wisgg745sq6xibqwb341ikdicxdp26y"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       `(("cl-emb" ,sbcl-cl-emb)
+         ("cl-ppcre" ,sbcl-cl-ppcre)
+         ("local-time" ,sbcl-local-time)
+         ("prove" ,sbcl-prove)))
+      (arguments
+       ;; Tests depend on caveman, which in turns depends on cl-project.
+       '(#:tests? #f
+         #:asd-files '("cl-project.asd")))
+      (synopsis "Generate a skeleton for modern Common Lisp projects")
+      (description "This library provides a modern project skeleton generator.
+In contract with other generators, CL-Project generates one package per file
+and encourages unit testing by generating a system for unit testing, so you
+can begin writing unit tests as soon as the project is generated.")
+      (license license:llgpl))))
+
+(define-public cl-project
+  (sbcl-package->cl-source-package sbcl-cl-project))
+
+(define-public ecl-cl-project
+  (sbcl-package->ecl-package sbcl-cl-project))
+
+(define-public sbcl-caveman
+  (let ((commit "faa5f7e3b364fd7e7096af9a7bb06728b8d80441") ; No release since 2012
+        (revision "1"))
+    (package
+      (name "sbcl-caveman")
+      (version (git-version "2.4.0" revision commit))
+      (home-page "http://8arrow.org/caveman/")
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/fukamachi/caveman/")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0kh0gx05pczk8f7r9qdi4zn1p3d0a2prps27k7jpgvc1dxkl8qhq"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       `(("ningle" ,cl-ningle)
+         ("lack" ,sbcl-lack)
+         ("cl-project" ,sbcl-cl-project)
+         ("dbi" ,sbcl-dbi)
+         ("cl-syntax" ,sbcl-cl-syntax)
+         ("myway" ,sbcl-myway)
+         ("quri" ,sbcl-quri)))
+      (native-inputs
+       `(("usocket" ,sbcl-usocket)
+         ("dexador" ,sbcl-dexador)))
+      (arguments
+       `(#:asd-files '("caveman2.asd")
+         #:asd-systems '("caveman2")
+         #:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'remove-v1
+             (lambda _
+               (delete-file-recursively "v1")
+               (for-each delete-file
+                         '("README.v1.markdown" "caveman.asd" "caveman-test.asd")))))
+         ;; TODO: Tests fail with:
+         ;; writing /gnu/store/...-sbcl-caveman-2.4.0-1.faa5f7e/share/common-lisp/sbcl-source/caveman2/v2/t/tmp/myapp573/tests/myapp573.lisp
+         ;; While evaluating the form starting at line 38, column 0
+         ;;   of #P"/tmp/guix-build-sbcl-caveman-2.4.0-1.faa5f7e.drv-0/source/v2/t/caveman.lisp":
+         ;; Unhandled ASDF/FIND-COMPONENT:MISSING-COMPONENT in thread #<SB-THREAD:THREAD "main thread" RUNNING
+         ;;                                                              {10009F8083}>:
+         ;;   Component "myapp573" not found
+         #:tests? #f))
+      (synopsis "Lightweight web application framework in Common Lisp")
+      (description "Caveman is intended to be a collection of common parts for
+web applications.  Caveman2 has three design goals:
+
+@itemize
+@item Be extensible.
+@item Be practical.
+@item Don't force anything.
+@end itemize\n")
+      (license license:llgpl))))
+
+(define-public cl-caveman
+  (package
+    (inherit
+     (sbcl-package->cl-source-package sbcl-caveman))
+    (propagated-inputs
+     `(("ningle" ,cl-ningle)))))
+
+(define-public ecl-caveman
+  (sbcl-package->ecl-package sbcl-caveman))
+
+(define-public sbcl-lambda-fiddle
+  (let ((commit "d16bba55acf6065b412f64ab8fdff679a4a32b1e") ;; no tagged branch
+	(revision "1"))
+    (package
+      (name "sbcl-lambda-fiddle")
+      (version (git-version "1.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/Shinmera/lambda-fiddle")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1zarj1pqjqmk95kdx1axkgpwy2wq3canczk7f9z5hvaw5an6gand"))))
+      (build-system asdf-build-system/sbcl)
+      (home-page "https://github.com/Shinmera/lambda-fiddle")
+      (synopsis "Collection of utilities to process lambda-lists")
+      (description "This collection of utilities is useful in contexts where
+you want a macro that uses lambda-lists in some fashion but need more precise
+processing.")
+      (license license:zlib))))
+
+(define-public cl-lambda-fiddle
+  (sbcl-package->cl-source-package sbcl-lambda-fiddle))
+
+(define-public ecl-lambda-fiddle
+  (sbcl-package->ecl-package sbcl-lambda-fiddle))
+
+(define-public sbcl-xmls
+  (let ((commit "18546f0850b1338e03997ffd1696add1cb1800d1") ;; no tagged branch
+	(revision "1"))
+    (package
+      (name "sbcl-xmls")
+      (version (git-version "3.0.2" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/rpgoldman/xmls")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1lmvfml2ldbb1wkhm25jqqk2bhwsz52hhcgljbnzj1xr8xhc3anp"))))
+      (native-inputs
+       `(("fiveam" ,sbcl-fiveam)))
+      (build-system asdf-build-system/sbcl)
+      (home-page "https://github.com/rpgoldman/xmls")
+      (synopsis "Non-validating XML parser for Common Lisp")
+      (description "Xmls is a self-contained, easily embedded parser that
+recognizes a useful subset of the XML spec.  It provides a simple mapping from
+XML to Lisp structures or s-expressions and back.")
+      (license license:bsd-2))))
+
+(define-public cl-xmls
+  (sbcl-package->cl-source-package sbcl-xmls))
+
+(define-public ecl-xmls
+  (sbcl-package->ecl-package sbcl-xmls))
+
+(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+)))
+
+(define-public cl-geco
+  (sbcl-package->cl-source-package sbcl-geco))
+
+(define-public ecl-geco
+  (sbcl-package->ecl-package sbcl-geco))
+
+(define-public sbcl-html-entities
+  (let ((commit "4af018048e891f41d77e7d680ed3aeb639e1eedb"))
+    (package
+      (name "sbcl-html-entities")
+      (version (git-version "0.02" "1" commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/BnMcGn/html-entities/")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1b2yl6lf6vis17y4n5s505p7ica96bdafcl6vydy1hg50fy33nfr"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       `(("ppcre" ,sbcl-cl-ppcre)))
+      (native-inputs
+       `(("fiveam" ,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
+encode and decode entities in HTML.")
+      (license license:expat))))
+
+(define-public cl-html-entities
+  (sbcl-package->cl-source-package sbcl-html-entities))
+
+(define-public ecl-html-entities
+  (sbcl-package->ecl-package sbcl-html-entities))
+
+(define-public sbcl-quicksearch
+  (let ((commit "fb02ecf7c876ec580ab18c7d2c8c7814c06af599"))
+    (package
+      (name "sbcl-quicksearch")
+      (version (git-version "0.01.04" "1" commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/tkych/quicksearch/")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (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)))
+      (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.
+The goal of Quicksearch is to find the Common Lisp library quickly.  For
+example, if you will find the library about json, just type @code{(qs:?
+'json)} at REPL.
+
+The function @code{quicksearch} searches for Common Lisp projects in
+Quicklisp, Cliki, GitHub and BitBucket, then outputs results in REPL.  The
+function @code{?} is abbreviation wrapper for @code{quicksearch}.")
+      (license license:expat))))
+
+(define-public cl-quicksearch
+  (sbcl-package->cl-source-package sbcl-quicksearch))
+
+(define-public ecl-quicksearch
+  (sbcl-package->ecl-package sbcl-quicksearch))
+
+(define-public sbcl-agutil
+  (let ((commit "df188d754d472da9faa1601a48f1f37bb7b34d68"))
+    (package
+      (name "sbcl-agutil")
+      (version (git-version "0.0.1" "1" commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/alex-gutev/agutil/")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1xpnyzksk2xld64b6lw6rw0gn5zxlb77jwna59sd4yl7kxhxlfpf"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       `(("alexandria" ,sbcl-alexandria)
+         ("trivia" ,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
+mostly not found in other utility packages.")
+      (license license:expat))))
+
+(define-public cl-agutil
+  (sbcl-package->cl-source-package sbcl-agutil))
+
+(define-public ecl-agutil
+  (sbcl-package->ecl-package sbcl-agutil))
+
+(define-public sbcl-custom-hash-table
+  (let ((commit "f26983133940f5edf826ebbc8077acc04816ddfa"))
+    (package
+      (name "sbcl-custom-hash-table")
+      (version (git-version "0.3" "1" commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/metawilm/cl-custom-hash-table")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1k4mvrpbqqds2fwjxp1bxmrfmr8ch4dkwhnkbw559knbqshvrlj5"))))
+      (build-system asdf-build-system/sbcl)
+      (arguments
+       '(#:asd-files '("cl-custom-hash-table.asd")
+         #:asd-systems '("cl-custom-hash-table")))
+      (home-page "https://github.com/metawilm/cl-custom-hash-table")
+      (synopsis "Custom hash tables for Common Lisp")
+      (description "This library allows creation of hash tables with arbitrary
+@code{test}/@code{hash} functions, in addition to the @code{test} functions
+allowed by the standard (@code{EQ}, @code{EQL}, @code{EQUAL} and
+@code{EQUALP}), even in implementations that don't support this functionality
+directly.")
+      (license license:expat))))
+
+(define-public cl-custom-hash-table
+  (sbcl-package->cl-source-package sbcl-custom-hash-table))
+
+(define-public ecl-custom-hash-table
+  (sbcl-package->ecl-package sbcl-custom-hash-table))
+
+(define-public sbcl-collectors
+  (let ((commit "13acef25d8422d1d82e067b1861e513587c166ee"))
+    (package
+      (name "sbcl-collectors")
+      (version (git-version "0.1" "1" commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/AccelerationNet/collectors")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1si68n1j6rpns8jw6ksqjpb937pdl30v7xza8rld7j5vh0jhy2yi"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       `(("alexandria" ,sbcl-alexandria)
+         ("closer-mop" ,sbcl-closer-mop)
+         ("symbol-munger" ,sbcl-symbol-munger)))
+      (native-inputs
+       `(("lisp-unit2" ,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
+collecting values easier.")
+      (license license:bsd-3))))
+
+(define-public cl-collectors
+  (sbcl-package->cl-source-package sbcl-collectors))
+
+(define-public ecl-collectors
+  (sbcl-package->ecl-package sbcl-collectors))
+
+(define-public sbcl-cl-environments
+  (let ((commit "0b22154c5afefef23d1eba9a4fae11d73580ef41")) ; No version in 2 years.
+    (package
+      (name "sbcl-cl-environments")
+      (version (git-version "0.2.3" "1" commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/alex-gutev/cl-environments")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "18r3wfarr7lgn78m6c66r0r9aazirv07gy7xgvqkl9pmrz1bc47m"))))
+      (build-system asdf-build-system/sbcl)
+      (propagated-inputs
+       `(("alexandria" ,cl-alexandria)
+         ("anaphora" ,cl-anaphora)
+         ("collectors" ,cl-collectors)
+         ("optima" ,cl-optima)))
+      (native-inputs
+       `(("prove" ,sbcl-prove)))
+      (home-page "https://github.com/alex-gutev/cl-environments")
+      (synopsis "Implements the Common Lisp standard environment access API")
+      (description "This library provides a uniform API, as specified in Common
+Lisp the Language 2, for accessing information about variable and function
+bindings from implementation-defined lexical environment objects.  All major
+Common Lisp implementations are supported, even those which don't support the
+CLTL2 environment access API.")
+      (license license:expat))))
+
+(define-public cl-environments
+  (sbcl-package->cl-source-package sbcl-cl-environments))
+
+(define-public ecl-environments
+  (sbcl-package->ecl-package sbcl-cl-environments))
+
+(define-public sbcl-static-dispatch
+  (package
+    (name "sbcl-static-dispatch")
+    (version "0.3")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/alex-gutev/static-dispatch")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1wp5yz8liqqic3yifqf33qhccd755pd7ycvsq1j4i7k3f1wm18i0"))))
+    (build-system asdf-build-system/sbcl)
+    (inputs
+     `(("agutil" ,sbcl-agutil)
+       ("alexandria" ,sbcl-alexandria)
+       ("anaphora" ,sbcl-anaphora)
+       ("arrows" ,sbcl-arrows)
+       ("closer-mop" ,sbcl-closer-mop)
+       ("iterate" ,sbcl-iterate)
+       ("trivia" ,sbcl-trivia)))
+    (propagated-inputs
+     ;; FIXME: `sbcl-cl-environments' input fails with
+     ;;
+     ;; compiling #<CL-SOURCE-FILE "collectors" "collectors">
+     ;; Unhandled SB-INT:SIMPLE-FILE-ERROR in thread #<SB-THREAD:THREAD "main thread" RUNNING
+     ;; {1008238213}>:
+     ;; Error opening #P"/.../cl-environments/src/common/package-tmp5GEXGEG5.fasl":
+     ;; Permission denied
+     `(("cl-environments" ,cl-environments)))
+    (native-inputs
+     `(("prove" ,sbcl-prove)))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         ;; Use `arrows' instead of cl-arrows which is abandoned and unlicensed.
+         ;; https://github.com/nightfly19/cl-arrows/issues/5
+         (add-after 'unpack 'use-arrows-instead-of-cl-arrows
+           (lambda _
+             (for-each
+              (lambda (file)
+                (substitute* file
+                  ((":cl-arrows") ":arrows")))
+              '("static-dispatch.asd"
+                "src/package.lisp"
+                "test/methods.lisp"
+                "test/test.lisp")))))))
+    (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
+@code{inlined-generic-function}, which allows standard Common Lisp generic
+function dispatch to be performed statically (at compile time) rather than
+dynamically (runtime).  This is similar to what is known as \"overloading\" in
+languages such as C++ and Java.
+
+The purpose of static dispatch is to provide an optimization in cases where
+the usual dynamic dispatch is too slow, and the dynamic features of generic
+functions, such as adding/removing methods at runtime are not required.  An
+example of such a case is a generic equality comparison function.  Currently
+generic functions are considered far too slow to implement generic arithmetic
+and comparison operations when used heavily in numeric code.")
+    (license license:expat)))
+
+(define-public cl-static-dispatch
+  (sbcl-package->cl-source-package sbcl-static-dispatch))
+
+(define-public ecl-static-dispatch
+  (sbcl-package->ecl-package sbcl-static-dispatch))
+
+(define-public sbcl-generic-cl
+  ;; Latest commit includes a necessary fix for our Guix build.
+  (let ((commit "8e5a81487ee3c13fe5ffdc8bdda161d476639535"))
+    (package
+      (name "sbcl-generic-cl")
+      (version (git-version "0.7.1" "1" commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/alex-gutev/generic-cl")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "11w0g79s4wmc78vmfng437rmsgnp5qn246zcyr540fp5nw0ad6ix"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       `(("agutil" ,sbcl-agutil)
+         ("alexandria" ,sbcl-alexandria)
+         ("anaphora" ,sbcl-anaphora)
+         ("arrows" ,sbcl-arrows)
+         ("cl-custom-hash-table" ,sbcl-custom-hash-table)
+         ("trivia" ,sbcl-trivia)))
+      (propagated-inputs
+       ;; FIXME: Same error as for `sbcl-static-dispatch'.
+       `(("static-dispatch" ,cl-static-dispatch)))
+      (native-inputs
+       `(("prove" ,sbcl-prove)))
+      (arguments
+       ;; Tests fail because SBCL head size is not high enough.
+       ;; https://github.com/alex-gutev/generic-cl/issues/6
+       `(#:tests? #f))
+      (home-page "https://alex-gutev.github.io/generic-cl/")
+      (synopsis "Generic function interface to standard Common Lisp functions")
+      (description "@code{generic-cl} provides a generic function wrapper over
+various functions in the Common Lisp standard, such as equality predicates and
+sequence operations.  The goal of this wrapper is to provide a standard
+interface to common operations, such as testing for the equality of two
+objects, which is extensible to user-defined types.")
+      (license license:expat))))
+
+(define-public cl-generic-cl
+  (sbcl-package->cl-source-package sbcl-generic-cl))
+
+(define-public ecl-generic-cl
+  (sbcl-package->ecl-package sbcl-generic-cl))
+
+(define-public sbcl-defpackage-plus
+  (let ((revision "0")
+        (commit "5492e27e0bdb7b75fa5177ea4388519dc7a75f11"))
+    (package
+      (name "sbcl-defpackage-plus")
+      (version (git-version "1.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/rpav/defpackage-plus")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0lzljvf343xb6mlh6lni2i27hpm5qd376522mk6hr2pa20vd6rdq"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       `(("alexandria" ,sbcl-alexandria)))
+      (home-page "https://github.com/rpav/defpackage-plus")
+      (synopsis "Extensible @code{DEFPACKAGE} variant with version support")
+      (description
+       "@code{DEFPACKAGE-PLUS} is an extensible @code{DEFPACKAGE} variant with
+predictable cross-platform behavior and some utilities useful for versioning.")
+      (license license:bsd-2))))
+
+(define-public cl-defpackage-plus
+  (sbcl-package->cl-source-package sbcl-defpackage-plus))
+
+(define-public ecl-defpackage-plus
+  (sbcl-package->ecl-package sbcl-defpackage-plus))
+
+(define-public sbcl-deploy
+  ;; tagged branch is outdated
+  (let ((revision "1")
+        (commit "59fd49719ef651a8fc11750bcfb337f132cff75f"))
+    (package
+      (name "sbcl-deploy")
+      (version (git-version "1.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/Shinmera/deploy")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1vl2116z4kw2pd3qd3n6mmg8g0mnwxr9dgddk86g7j1bis1z8k9a"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       `(("cffi" ,sbcl-cffi)
+         ("documentation-utils" ,sbcl-documentation-utils)))
+      (arguments
+       '(#:asd-files '("deploy.asd")))
+      (home-page "https://shinmera.github.io/deploy/")
+      (synopsis "Deployment tools for standalone Common Lisp application")
+      (description
+       "This is a system to help you easily and quickly deploy standalone
+common lisp applications as binaries.  Specifically it is geared towards
+applications with foreign library dependencies that run some kind of GUI.")
+      (license license:artistic2.0))))
+
+(define-public cl-deploy
+  (sbcl-package->cl-source-package sbcl-deploy))
+
+(define-public ecl-deploy
+  (sbcl-package->ecl-package sbcl-deploy))
+
+(define-public sbcl-deeds
+  ;; taged branch is outdated
+  (let ((revision "1")
+        (commit "f5df54eac79b58a34030e0eb8acf3952c788410d"))
+    (package
+      (name "sbcl-deeds")
+      (version (git-version "1.1.1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/Shinmera/deeds")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (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)))
+      (home-page "https://github.com/Shinmera/deeds")
+      (synopsis "Extensible Event Delivery System")
+      (description
+       "@code{deeds} allows for efficient event delivery to multiple handlers
+with a complex event filtering system.")
+      (license license:zlib))))
+
+(define-public cl-deeds
+  (sbcl-package->cl-source-package sbcl-deeds))
+
+(define-public ecl-deeds
+  (sbcl-package->ecl-package sbcl-deeds))
+
+(define-public sbcl-make-hash
+  ;; no tagged branch
+  (let ((revision "1")
+        (commit "ae0909cd8e697520a1085fac6f54ac2b448ebd21"))
+    (package
+      (name "sbcl-make-hash")
+      (version (git-version "1.0.2" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/genovese/make-hash")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1qa4mcmb3pv44py0j129dd8hjx09c2akpnds53b69151mgwv5qz8"))))
+      (build-system asdf-build-system/sbcl)
+      (home-page "https://github.com/genovese/make-hash")
+      (synopsis "Common Lisp package for flexible hash table creation")
+      (description
+       "This is a Common Lisp package for hash table creation with flexible,
+extensible initializers.")
+      (license license:bsd-3))))
+
+(define-public cl-make-hash
+  (sbcl-package->cl-source-package sbcl-make-hash))
+
+(define-public ecl-make-hash
+  (sbcl-package->ecl-package sbcl-make-hash))
+
+(define-public sbcl-claw-support
+  (package
+    (name "sbcl-claw-support")
+    (version "1.0.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/borodust/claw-support")
+             (commit "9a15c8bed04585f45e6a461bcda1b475144dbd0b")))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1my2ka7h72ipx5n3b465g6kjkasrhsvhqlijwcg6dhlzs5yygl23"))))
+    (build-system asdf-build-system/sbcl)
+    (home-page "https://github.com/borodust/claw-support")
+    (synopsis "Support routines for claw")
+    (description
+     "This package provides support routines for the @code{claw} Common Lisp
+package.")
+    (license license:expat)))
+
+(define-public cl-claw-support
+  (sbcl-package->cl-source-package sbcl-claw-support))
+
+(define-public ecl-claw-support
+  (sbcl-package->ecl-package sbcl-claw-support))
+
+(define-public sbcl-claw
+  (let ((revision "0")
+        (commit "3cd4a96fca95eb9e8d5d069426694669f81b2250"))
+    (package
+      (name "sbcl-claw")
+      (version (git-version "1.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/borodust/claw")
+               (commit commit)))
+         (file-name (git-file-name "claw" version))
+         (sha256
+          (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)))
+      (home-page "https://github.com/borodust/claw")
+      (synopsis "Autowrapper for Common Lisp")
+      (description
+       "This is a Common Lisp autowrapping facility for quickly creating clean
+and lean bindings to C libraries.")
+      (license license:bsd-2))))
+
+(define-public cl-claw
+  (sbcl-package->cl-source-package sbcl-claw))
+
+(define-public ecl-claw
+  (sbcl-package->ecl-package sbcl-claw))
+
+(define-public sbcl-claw-utils
+  (let ((revision "0")
+        (commit "efe25016501973dc369f067a64c7d225802bc56f"))
+    (package
+      (name "sbcl-claw-utils")
+      ;; version is not specified
+      (version (git-version "0.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/borodust/claw-utils")
+               (commit commit)))
+         (file-name (git-file-name "claw-utils" version))
+         (sha256
+          (base32 "01df3kyf2qs3czi332dnz2s35x2j0fq46vgmsw7wjrrvnqc22mk5"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       `(("alexandria" ,sbcl-alexandria)
+         ("cffi" ,sbcl-cffi)
+         ("claw" ,sbcl-claw)))
+      (home-page "https://github.com/borodust/claw-utils")
+      (synopsis "Utilities for easier autowrapping")
+      (description
+       "This Common Lisp library contains various handy utilties to help
+autowrapping with @code{claw}.")
+      (license license:expat))))
+
+(define-public cl-claw-utils
+  (sbcl-package->cl-source-package sbcl-claw-utils))
+
+(define-public ecl-claw-utils
+  (sbcl-package->ecl-package sbcl-claw-utils))
+
+(define-public sbcl-array-operations
+  (let ((commit "75cbc3b1adb2e3ce2109489753d0f290b071e81b")
+        (revision "0"))
+    (package
+      (name "sbcl-array-operations")
+      (version (git-version "0.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/bendudson/array-operations")
+               (commit commit)))
+         (file-name (git-file-name "array-operations" version))
+         (sha256
+          (base32 "0ip49hhq32w80qsc7jmspyda5r2rsszvw0mk2r3341cld78sz9ya"))))
+      (build-system asdf-build-system/sbcl)
+      (native-inputs
+       `(("alexandria" ,sbcl-alexandria)
+         ("clunit2" ,sbcl-clunit2)))
+      (inputs
+       `(("let-plus" ,sbcl-let-plus)))
+      (synopsis "Simple array operations library for Common Lisp")
+      (description
+       "This library is a collection of functions and macros for manipulating
+Common Lisp arrays and performing numerical calculations with them.")
+      (home-page "https://github.com/bendudson/array-operations")
+      (license license:expat))))
+
+(define-public cl-array-operations
+  (sbcl-package->cl-source-package sbcl-array-operations))
+
+(define-public ecl-array-operations
+  (sbcl-package->ecl-package sbcl-array-operations))
+
+(define-public sbcl-clml
+  (let ((commit "95505b54c8c7b4b27f500c3be97fa5732f4b51a8")
+        (revision "0"))
+    (package
+      (name "sbcl-clml")
+      (version (git-version "0.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/mmaul/clml")
+               (commit commit)))
+         (file-name (git-file-name "clml" version))
+         (sha256
+          (base32 "006pii59nmpc61n7p7h8ha5vjg6x0dya327i58z0rnvxs249h345"))
+         ;; TODO: Remove this when the patch has been merged upstream.
+         (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)))
+      (synopsis "Common Lisp machine learning library")
+      (description
+       "CLML (Common Lisp Machine Learning) is a high performance and large
+scale statistical machine learning package")
+      (home-page "https://mmaul.github.io/clml/")
+      (license license:llgpl))))
+
+(define-public cl-clml
+  (sbcl-package->cl-source-package sbcl-clml))
+
+(define-public sbcl-utm-ups
+  (let ((commit "780f1d8ab6290ad2be0f40e2cddc2535fa6fe979")
+        (revision "0"))
+    (package
+      (name "sbcl-utm-ups")
+      (version (git-version "1.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/glv2/utm-ups")
+               (commit commit)))
+         (file-name (git-file-name "utm-ups" version))
+         (sha256
+          (base32 "0l3kr2m56skf5cx3kkkdcis7msmidcsixx9fqjapkcjsj8x67aqq"))))
+      (build-system asdf-build-system/sbcl)
+      (native-inputs
+       `(("fiveam" ,sbcl-fiveam)))
+      (synopsis
+       "Convert coordinates between latitude/longitude and UTM or UPS")
+      (description
+       "This a Common Lisp library to convert geographic coordinates between
+latitude/longitude and UTM (Universal Transverse Mercator) or UPS (Universal
+Polar Stereographic).")
+      (home-page "https://github.com/glv2/utm-ups")
+      (license license:gpl3+))))
+
+(define-public cl-utm-ups
+  (sbcl-package->cl-source-package sbcl-utm-ups))
+
+(define-public ecl-utm-ups
+  (sbcl-package->ecl-package sbcl-utm-ups))
+
+(define-public sbcl-mgrs
+  (let ((commit "00455460407b7e5509d1be3da09bf6152956761f")
+        (revision "0"))
+    (package
+      (name "sbcl-mgrs")
+      (version (git-version "1.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/glv2/mgrs")
+               (commit commit)))
+         (file-name (git-file-name "mgrs" version))
+         (sha256
+          (base32 "0ckvn4hg3wwivzavhfashb6fap4a1q10l8krhbng8bdb54ac10sz"))))
+      (build-system asdf-build-system/sbcl)
+      (native-inputs
+       `(("fiveam" ,sbcl-fiveam)))
+      (inputs
+       `(("utm-ups" ,sbcl-utm-ups)))
+      (synopsis
+       "Convert coordinates between latitude/longitude and MGRS")
+      (description
+       "This a Common Lisp library to convert geographic coordinates between
+latitude/longitude and MGRS.")
+      (home-page "https://github.com/glv2/mgrs")
+      (license license:gpl3+))))
+
+(define-public cl-mgrs
+  (sbcl-package->cl-source-package sbcl-mgrs))
+
+(define-public ecl-mgrs
+  (sbcl-package->ecl-package sbcl-mgrs))
+
+(define-public sbcl-maidenhead
+  (let ((commit "b756d235c27b5d6798867aa240318af1a8f35d6d")
+        (revision "0"))
+    (package
+      (name "sbcl-maidenhead")
+      (version (git-version "1.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/glv2/maidenhead")
+               (commit commit)))
+         (file-name (git-file-name "maidenhead" version))
+         (sha256
+          (base32 "02p990zprhjvifmsfk8yh3frvz6xyw26ikzxvzglqdixbal36nr3"))))
+      (build-system asdf-build-system/sbcl)
+      (native-inputs
+       `(("fiveam" ,sbcl-fiveam)))
+      (synopsis
+       "Convert coordinates between latitude/longitude and Maidenhead")
+      (description
+       "This a Common Lisp library to convert geographic coordinates between
+latitude/longitude and Maidenhead locator system.")
+      (home-page "https://github.com/glv2/maidenhead")
+      (license license:gpl3+))))
+
+(define-public cl-maidenhead
+  (sbcl-package->cl-source-package sbcl-maidenhead))
+
+(define-public ecl-maidenhead
+  (sbcl-package->ecl-package sbcl-maidenhead))
+
+(define-public sbcl-olc
+  (let ((commit "517e27fa57d9a119b00a29c4b6b31e553deff309")
+        (revision "0"))
+    (package
+      (name "sbcl-olc")
+      (version (git-version "1.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/glv2/olc")
+               (commit commit)))
+         (file-name (git-file-name "olc" version))
+         (sha256
+          (base32 "1lnfhp6z6kc8l605zp4siyjiw74y1h4bdq3jfizi084v505wxhgr"))))
+      (build-system asdf-build-system/sbcl)
+      (native-inputs
+       `(("fiveam" ,sbcl-fiveam)))
+      (synopsis
+       "Convert coordinates between latitude/longitude and Open Location Code")
+      (description
+       "This a Common Lisp library to convert geographic coordinates between
+latitude/longitude and Open Location Code.")
+      (home-page "https://github.com/glv2/olc")
+      (license license:gpl3+))))
+
+(define-public cl-olc
+  (sbcl-package->cl-source-package sbcl-olc))
+
+(define-public ecl-olc
+  (sbcl-package->ecl-package sbcl-olc))
+
+(define-public sbcl-regex
+  (let ((commit "fbc9a9f313b9edc1788f33d4b23a29151635ae22"))
+    (package
+      (name "sbcl-regex")
+      (version (git-version "1" "1" commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/michaelw/regex/")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0wq5wlafrxv13wg28hg5b10sc48b88swsvznpy2zg7x37m4nmm6a"))))
+      (build-system asdf-build-system/sbcl)
+      (home-page "https://github.com/michaelw/regex/")
+      (synopsis "Regular expression engine for Common Lisp")
+      (description
+       "This Common Lisp package provides a regular expression engine.")
+      (license license:bsd-2))))
+
+(define-public cl-regex
+  (sbcl-package->cl-source-package sbcl-regex))
+
+(define-public ecl-regex
+  (sbcl-package->ecl-package sbcl-regex))
+
+(define-public sbcl-clawk
+  (let ((commit "3a91634df686417114044a98c063cbe76bfac7b6"))
+    (package
+      (name "sbcl-clawk")
+      (version (git-version "4" "1" commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/sharplispers/clawk")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1ph3xjqilvinvgr9q3w47zxqyz1sqnq030nlx7kgkkv8j3bnqk7a"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       `(("sbcl-regex" ,sbcl-regex)))
+      (home-page "https://github.com/sharplispers/clawk")
+      (synopsis "Common Lisp AWK")
+      (description
+       "CLAWK is an AWK implementation embedded into Common Lisp.")
+      (license license:bsd-2))))
+
+(define-public cl-clawk
+  (sbcl-package->cl-source-package sbcl-clawk))
+
+(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
+      (name "sbcl-clamp")
+      (version (git-version "0.3" "1" commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/arclanguage/Clamp")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0fdr9nqfmmpxm6hvjdxi1jkclya9xlnrw1yc3cn1m4ww3f50p31m"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       `(("iterate" ,sbcl-iterate)
+         ("cl-syntax" ,sbcl-cl-syntax)))
+      (native-inputs
+       `(("cl-unit" ,sbcl-clunit)
+         ("check-it" ,sbcl-check-it)))
+      (arguments
+       `(#:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'fix-build
+             (lambda _
+               (substitute* "clamp.asd"
+                 (("\\(:file \"read\"     :depends-on \\(\"aliases\"\\)\\)")
+                  "(:file \"read\"     :depends-on (\"aliases\" \"base\"))"))
+               #t)))))
+      (home-page "https://github.com/arclanguage/Clamp")
+      (synopsis "Common Lisp with Arc macros and procedures")
+      (description
+       "Clamp is an attempt to bring the powerful, but verbose, language of
+Common Lisp up to the terseness of Arc.
+
+There are two parts to Clamp.  There is the core of Clamp, which implements
+the utilities of Arc that are easily converted from Arc to Common Lisp.  The
+other part is the \"experimental\" part.  It contains features of Arc that are
+not so easy to copy (ssyntax, argument destructuring, etc.).")
+      (license license:artistic2.0))))
+
+(define-public cl-clamp
+  (sbcl-package->cl-source-package sbcl-clamp))
+
+(define-public ecl-clamp
+  (sbcl-package->ecl-package sbcl-clamp))
+
+(define-public sbcl-trivial-shell
+  (let ((commit "e02ec191b34b52deca5d1c4ee99d4fa13b8772e0"))
+    (package
+      (name "sbcl-trivial-shell")
+      (version (git-version "0.2.0" "1" commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/gwkkwg/trivial-shell")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "08mpkl5ij5sjfsyn8pq2kvsvpvyvr7ha1r8g1224fa667b8k2q85"))))
+      (build-system asdf-build-system/sbcl)
+      (native-inputs
+       `(("lift" ,sbcl-lift)))
+      (home-page "http://common-lisp.net/project/trivial-shell/")
+      (synopsis "Common Lisp access to the shell")
+      (description
+       "A simple Common-Lisp interface to the underlying operating system.
+It's independent of the implementation and operating system.")
+      (license license:expat))))
+
+(define-public cl-trivial-shell
+  (sbcl-package->cl-source-package sbcl-trivial-shell))
+
+(define-public ecl-trivial-shell
+  (sbcl-package->ecl-package sbcl-trivial-shell))
+
+(define-public sbcl-clesh
+  (let ((commit "44e96e04a72e5bc006dc4eb02ce8962348dd4a11"))
+    (package
+      (name "sbcl-clesh")
+      (version (git-version "0.0.0" "1" commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/Neronus/Clesh")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "012ry02djnqyvvs61wbbqj3saz621w2l9gczrywdxhi5p4ycx318"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       `(("trivial-shell" ,sbcl-trivial-shell)
+         ("named-readtables" ,sbcl-named-readtables)))
+      (home-page "https://github.com/Neronus/Clesh")
+      (synopsis "Embed shell code in Common Lisp")
+      (description
+       "This is a very short and simple program, written in Common Lisp, that
+extends Common Lisp to embed shell code in a manner similar to Perl's
+backtick.  It has been forked from SHELISP.")
+      (license license:bsd-2))))
+
+(define-public cl-clesh
+  (sbcl-package->cl-source-package sbcl-clesh))
+
+(define-public ecl-clesh
+  (sbcl-package->ecl-package sbcl-clesh))
+
+(define-public sbcl-trivial-download
+  (let ((commit "d2472061d86b1cf3d32f388daacd4e32a13af699"))
+    (package
+      (name "sbcl-trivial-download")
+      (version (git-version "0.3" "1" commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/eudoxia0/trivial-download/")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "06f46zr3gp3wlm2kgxna24qd2gpr1v89x9fynh1x5vrw6c6hqjcv"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       `(("drakma" ,sbcl-drakma)))
+      (home-page "https://github.com/eudoxia0/trivial-download/")
+      (synopsis "Download files from Common Lisp")
+      (description
+       "@code{trivial-download} allows you to download files from the Internet
+from Common Lisp.  It provides a progress bar.")
+      (license license:bsd-2))))
+
+(define-public cl-trivial-download
+  (sbcl-package->cl-source-package sbcl-trivial-download))
+
+(define-public ecl-trivial-download
+  (sbcl-package->ecl-package sbcl-trivial-download))
+
+(define-public sbcl-gtwiwtg
+  (package
+    (name "sbcl-gtwiwtg")
+    (version "0.1.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/cbeo/gtwiwtg/")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0lkraw0dwh4is4x5sp5rjrw6f93m0gr9849abrbi12s25ws7jbw4"))))
+    (build-system asdf-build-system/sbcl)
+    (native-inputs
+     `(("osicat" ,sbcl-osicat)
+       ("prove" ,sbcl-prove)))
+    (home-page "https://github.com/cbeo/gtwiwtg/")
+    (synopsis "Naive generators for Common Lisp")
+    (description
+     "The GTWIWTG library (Generators The Way I Want Them Generated --
+technically not generators, but iterators) is meant to be small, explorable,
+and understandable.")
+    (license license:gpl3)))
+
+(define-public cl-gtwiwtg
+  (sbcl-package->cl-source-package sbcl-gtwiwtg))
+
+(define-public ecl-gtwiwtg
+  (sbcl-package->ecl-package sbcl-gtwiwtg))
+
+(define-public sbcl-cl-progress-bar
+  (let ((commit "9374170858663c8fe829e9fb5a29bd2cb48d95ae"))
+    (package
+      (name "sbcl-cl-progress-bar")
+      (version (git-version "0.0.0" "1" commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/sirherrbatka/cl-progress-bar/")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1ldb4qhmx431n3lsq71ynwb9ybazbfqd55icjbhi06mj52ngndir"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       `(("bordeaux-threads" ,sbcl-bordeaux-threads)
+         ("documentation-utils-extensions" ,sbcl-documentation-utils-extensions)))
+      (home-page "https://github.com/sirherrbatka/cl-progress-bar/")
+      (synopsis "Progress bars in Common Lisp")
+      (description
+       "This library provides almost the same code as used inside Quicklisp
+for drawning progress bars")
+      (license license:expat))))
+
+(define-public cl-progress-bar
+  (sbcl-package->cl-source-package sbcl-cl-progress-bar))
+
+(define-public ecl-cl-progress-bar
+  (sbcl-package->ecl-package sbcl-cl-progress-bar))
+
+(define-public sbcl-repl-utilities
+  (let ((commit "e0de9c92e774f77cab1a4cd92e2ac922ac3a807e"))
+    (package
+      (name "sbcl-repl-utilities")
+      (version (git-version "0.0.0" "1" commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/m-n/repl-utilities/")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1r5icmw3ha5y77kvzqni3a9bcd66d9pz5mjsbw04xg3jk0d15cgz"))))
+      (build-system asdf-build-system/sbcl)
+      (home-page "https://github.com/m-n/repl-utilities")
+      (synopsis "Ease common tasks at the Common Lisp REPL")
+      (description
+       "@code{repl-utilities} is a set of utilities which ease life at the
+REPL.  It includes three sorts of features: introspective procedures,
+miscellaneous utility functions, and, pulling them together, methods to
+conveniently keep these symbols and optionally additional symbols available in
+whichever package you switch to.")
+      (license license:bsd-2))))
+
+(define-public cl-repl-utilities
+  (sbcl-package->cl-source-package sbcl-repl-utilities))
+
+(define-public ecl-repl-utilities
+  (sbcl-package->ecl-package sbcl-repl-utilities))
+
+(define-public sbcl-supertrace
+  (let ((commit "66d22c3ff131ecd1c8048dfced1d62ed6024ecb0"))
+    (package
+      (name "sbcl-supertrace")
+      (version (git-version "0.1.0" "1" commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/fukamachi/supertrace")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (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)))
+      (inputs
+       `(("cffi" ,sbcl-cffi)))
+      (home-page "https://github.com/fukamachi/supertrace")
+      (synopsis "Improved Common Lisp tracing for debugging and profiling")
+      (description
+       "Supertrace provides a superior Common Lisp @code{trace} functionality
+for debugging and profiling real world applications.")
+      (license license:bsd-2))))
+
+(define-public cl-supertrace
+  (sbcl-package->cl-source-package sbcl-supertrace))
+
+(define-public ecl-supertrace
+  (sbcl-package->ecl-package sbcl-supertrace))
+
+(define-public sbcl-trivial-benchmark
+  (let ((commit "42d76733dd2e873471c6f1e27d39113293f7dd5c"))
+    (package
+      (name "sbcl-trivial-benchmark")
+      (version (git-version "2.0.0" "1" commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/Shinmera/trivial-benchmark/")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0fbzqbpm2ixz85555krl36kbbbjyn699vdj6k383khi3g9y629fa"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       `(("alexandria" ,sbcl-alexandria)))
+      (home-page "http://shinmera.github.io/trivial-benchmark/")
+      (synopsis "Easy to use benchmarking system for Common Lisp")
+      (description
+       "Trivial-Benchmark runs a block of code many times and outputs some
+statistical data for it.  On SBCL this includes the data from @code{time}, for
+all other implementations just the @code{real-time} and @code{run-time} data.
+However, you can extend the system by adding your own @code{metrics} to it, or
+even by adding additional statistical @code{compute}ations. ")
+      (license license:zlib))))
+
+(define-public cl-trivial-benchmark
+  (sbcl-package->cl-source-package sbcl-trivial-benchmark))
+
+(define-public ecl-trivial-benchmark
+  (sbcl-package->ecl-package sbcl-trivial-benchmark))
+
+(define-public sbcl-glyphs
+  (let ((commit "1ff5714e8c1dca327bc604dfe3e3d1f4b7755373"))
+    (package
+      (name "sbcl-glyphs")
+      (version (git-version "0.0.0" "1" commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/ahungry/glyphs/")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "17kai1anbkk5dj5sbrsin2fc019cmcbglb900db60v38myj0y0wf"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       `(("cl-ppcre" ,sbcl-cl-ppcre)
+         ("parenscript" ,sbcl-parenscript)
+         ("named-readtables" ,sbcl-named-readtables)))
+      (home-page "https://github.com/ahungry/glyphs/")
+      (synopsis "Reduce Common Lisp verbosity")
+      (description
+       "This library is a little experiment in reducing verbosity in Common
+Lisp, inspired by BODOL (@url{https://github.com/bodil/BODOL}).")
+      (license license:gpl3))))
+
+(define-public cl-glyphs
+  (sbcl-package->cl-source-package sbcl-glyphs))
+
+(define-public ecl-glyphs
+  (sbcl-package->ecl-package sbcl-glyphs))
+
+(define-public sbcl-zs3
+  (package
+   (name "sbcl-zs3")
+   (version "1.3.3")
+   (source
+    (origin
+     (method git-fetch)
+     (uri
+      (git-reference
+       (url "https://github.com/xach/zs3")
+       (commit (string-append "release-" version))))
+     (file-name (git-file-name "zs3" version))
+     (sha256
+      (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)))
+   (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.")
+   (home-page "https://github.com/xach/zs3")
+   (license license:bsd-2)))
+
+(define-public cl-zs3
+  (sbcl-package->cl-source-package sbcl-zs3))
+
+(define-public ecl-zs3
+  (sbcl-package->ecl-package sbcl-zs3))
+
+(define-public sbcl-simple-neural-network
+  (package
+    (name "sbcl-simple-neural-network")
+    (version "3.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/glv2/simple-neural-network")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name "simple-neural-network" version))
+       (sha256
+        (base32 "1jj1c90fr5clwka0jv32hv6xp1bkdlpa6x5jh19an13rhx8ll4zr"))))
+    (build-system asdf-build-system/sbcl)
+    (native-inputs
+     `(("chipz" ,sbcl-chipz)
+       ("fiveam" ,sbcl-fiveam)))
+    (inputs
+     `(("cl-store" ,sbcl-cl-store)
+       ("lparallel" ,sbcl-lparallel)))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'check 'remove-test-data
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (for-each delete-file (find-files out "\\.gz$"))))))))
+    (synopsis "Simple neural network in Common Lisp")
+    (description
+     "@code{simple-neural-network} is a Common Lisp library for creating,
+training and using basic neural networks.  The networks created by this
+library are feedforward neural networks trained using backpropagation.")
+    (home-page "https://github.com/glv2/simple-neural-network")
+    (license license:gpl3+)))
+
+(define-public cl-simple-neural-network
+  (sbcl-package->cl-source-package sbcl-simple-neural-network))
+
+(define-public ecl-simple-neural-network
+  (sbcl-package->ecl-package sbcl-simple-neural-network))
+
+(define-public sbcl-zstd
+  (let ((commit "d144582c581aaa52bac24d6686af27fa3e781e06")
+        (revision "1"))
+    (package
+      (name "sbcl-zstd")
+      (version (git-version "1.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/glv2/cl-zstd")
+               (commit commit)))
+         (file-name (git-file-name "cl-zstd" version))
+         (sha256
+          (base32 "1774jy8hzbi6nih3sq6vchk66f7g8w86dwgpbvljyfzcnkcaz6ql"))))
+      (build-system asdf-build-system/sbcl)
+      (native-inputs
+       `(("fiveam" ,sbcl-fiveam)))
+      (inputs
+       `(("cffi" ,sbcl-cffi)
+         ("cl-octet-streams" ,sbcl-cl-octet-streams)
+         ("zstd-lib" ,zstd "lib")))
+      (arguments
+       '(#:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'fix-paths
+             (lambda* (#:key inputs #:allow-other-keys)
+               (substitute* "src/libzstd.lisp"
+                 (("libzstd\\.so")
+                  (string-append (assoc-ref inputs "zstd-lib")
+                                 "/lib/libzstd.so")))
+               #t)))))
+      (synopsis "Common Lisp library for Zstandard (de)compression")
+      (description
+       "This Common Lisp library provides functions for Zstandard
+compression/decompression using bindings to the libzstd C library.")
+      (home-page "https://github.com/glv2/cl-zstd")
+      (license license:gpl3+))))
+
+(define-public cl-zstd
+  (sbcl-package->cl-source-package sbcl-zstd))
+
+(define-public ecl-zstd
+  (sbcl-package->ecl-package sbcl-zstd))
+
+(define-public sbcl-agnostic-lizard
+  (let ((commit "fe3a73719f05901c8819f8995a3ebae738257952")
+        (revision "1"))
+    (package
+      (name "sbcl-agnostic-lizard")
+      (version (git-version "0.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://gitlab.common-lisp.net/mraskin/agnostic-lizard")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0ax78y8w4zlp5dcwyhz2nq7j3shi49qn31dkfg8lv2jlg7mkwh2d"))))
+      (build-system asdf-build-system/sbcl)
+      (synopsis "Almost correct portable code walker for Common Lisp")
+      (description
+       "Agnostic Lizard is a portable implementation of a code walker and in
+particular of the macroexpand-all function (and macro) that makes a best
+effort to be correct while not expecting much beyond what the Common Lisp
+standard requires.
+
+It aims to be implementation-agnostic and to climb the syntax trees.")
+      (home-page "https://gitlab.common-lisp.net/mraskin/agnostic-lizard")
+      (license license:gpl3+))))
+
+(define-public cl-agnostic-lizard
+  (sbcl-package->cl-source-package sbcl-agnostic-lizard))
+
+(define-public ecl-agnostic-lizard
+  (sbcl-package->ecl-package sbcl-agnostic-lizard))
+
+(define-public sbcl-dynamic-classes
+  (package
+    (name "sbcl-dynamic-classes")
+    (version "1.0.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/gwkkwg/dynamic-classes")
+             (commit (string-append "version-" version))))
+       (file-name (git-file-name "dynamic-classes" version))
+       (sha256
+        (base32 "1z3ag6w4ff0v6715xa9zhvwjqnp4i6zrjfmxdz8m115sklbwgm6c"))))
+    (build-system asdf-build-system/sbcl)
+    (inputs
+     `(("metatilities-base" ,sbcl-metatilities-base)))
+    (arguments
+     ;; NOTE: (Sharlatan-20210106222900+0000) Circular dependencies and failing
+     ;; test suites. lift-standard.config contains referances to deprecated
+     ;; functionality.
+     `(#:tests? #f))
+    (home-page "https://common-lisp.net/project/dynamic-classes/")
+    (synopsis "Dynamic class definition for Common Lisp")
+    (description "Dynamic-Classes helps to ease the prototyping process by
+bringing dynamism to class definition.")
+    (license license:expat)))
+
+(define-public ecl-dynamic-classes
+  (sbcl-package->ecl-package sbcl-dynamic-classes))
+
+(define-public cl-dynamic-classes
+  (sbcl-package->cl-source-package sbcl-dynamic-classes))
+
+(define-public sbcl-cl-markdown
+  ;; NOTE: (Sharlatan-20210106214629+0000) latest version tag
+  ;; "version-0.10.6_version-0.10.6" is failing to build due to missing system
+  ;; #:container-dynamic-classes
+  (package
+    (name "sbcl-cl-markdown")
+    (version "0.10.4")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/gwkkwg/cl-markdown")
+             (commit (string-append "version-" version))))
+       (file-name (git-file-name "cl-markdown" version))
+       (sha256
+        (base32 "1wdjbdd1zyskxf7zlilcp6fmwkivybj0wjp64vvzb265d5xi7p8p"))))
+    (build-system asdf-build-system/sbcl)
+    (inputs
+     `(("anaphora" ,sbcl-anaphora)
+       ("cl-containers" ,sbcl-cl-containers)
+       ("cl-ppcre" ,sbcl-cl-ppcre)
+       ("dynamic-classes" ,sbcl-dynamic-classes)
+       ("metabang-bind" ,sbcl-metabang-bind)
+       ("metatilities-base" ,sbcl-metatilities-base)))
+    (arguments
+     ;; NOTE: (Sharlatan-20210107213629+0000) Tests depend on too many not
+     ;; available systems, which  themself are abandoned.
+     `(#:tests? #f))
+    (home-page "https://common-lisp.net/project/cl-markdown/")
+    (synopsis "Common Lisp rewrite of Markdown")
+    (description
+     "This is an implementation of a Markdown parser in Common Lisp.")
+    (license license:expat)))
+
+(define-public ecl-cl-markdown
+  (sbcl-package->ecl-package sbcl-cl-markdown))
+
+(define-public cl-markdown
+  (sbcl-package->cl-source-package sbcl-cl-markdown))
+
+(define-public sbcl-magicffi
+  (let ((commit "d88f2f280c31f639e4e05be75215d8a8dce6aef2"))
+    (package
+      (name "sbcl-magicffi")
+      (version (git-version "0.0.0" "1" commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/dochang/magicffi/")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0p6ysa92fk34bhxpw7bycbfgw150fv11z9x8jr9xb4lh8cm2hvp6"))))
+      (build-system asdf-build-system/sbcl)
+      (native-inputs
+       `(("alexandria" ,sbcl-alexandria)))
+      (inputs
+       `(("cffi" ,sbcl-cffi)
+         ("ppcre" ,sbcl-cl-ppcre)
+         ("libmagic" ,file)))
+      (arguments
+       `(#:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'fix-paths
+             (lambda* (#:key inputs #:allow-other-keys)
+               (let ((magic (assoc-ref inputs "libmagic")))
+                 (substitute* "grovel.lisp"
+                   (("/usr/include/magic.h")
+                    (string-append magic "/include/magic.h")))
+                 (substitute* "api.lisp"
+                   ((":default \"libmagic\"" all)
+                    (string-append ":default \"" magic "/lib/libmagic\"")))))))))
+      (home-page "https://common-lisp.net/project/magicffi/")
+      (synopsis "Common Lisp interface to libmagic based on CFFI")
+      (description
+       "MAGICFFI is a Common Lisp CFFI interface to libmagic(3), the file type
+determination library using @emph{magic} numbers.")
+      (license license:bsd-2))))
+
+(define-public ecl-magicffi
+  (sbcl-package->ecl-package sbcl-magicffi))
+
+(define-public cl-magicffi
+  (sbcl-package->cl-source-package sbcl-magicffi))
+
+(define-public sbcl-shlex
+  (let ((commit "c5616dffca0d4d8ddbc1cd6f37a96d88477b2740"))
+    (package
+      (name "sbcl-shlex")
+      (version (git-version "0.0.0" "1" commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/ruricolist/cl-shlex")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1nas024n4wv319bf40aal96g72bgi9nkapj2chywj2cc6r8hzkfg"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       `(("alexandria" ,sbcl-alexandria)
+         ("serapeum" ,sbcl-serapeum)
+         ("ppcre" ,sbcl-cl-ppcre)
+         ("unicode" ,sbcl-cl-unicode)))
+      (home-page "https://github.com/ruricolist/cl-shlex")
+      (synopsis "Common Lisp lexical analyzer for shell-like syntaxes")
+      (description
+       "This library contains a lexer for syntaxes that use shell-like rules
+for quoting and commenting.  It is a port of the @code{shlex} module from Python’s
+standard library.")
+      (license license:expat))))
+
+(define-public ecl-shlex
+  (sbcl-package->ecl-package sbcl-shlex))
+
+(define-public cl-shlex
+  (sbcl-package->cl-source-package sbcl-shlex))
+
+(define-public sbcl-cmd
+  (let ((commit "e6a54dbf660bf229c80abc124fa47e7bb6d20c93"))
+    (package
+      (name "sbcl-cmd")
+      (version (git-version "0.0.1" "2" commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/ruricolist/cmd/")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1i0l8ci4cnkx84q4afmpkq51nxah24fqpi6k9kgjbxz6li3zp8hy"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       `(("alexandria" ,sbcl-alexandria)
+         ("coreutils" ,coreutils)
+         ("serapeum" ,sbcl-serapeum)
+         ("shlex" ,sbcl-shlex)
+         ("trivia" ,sbcl-trivia)))
+      (arguments
+       `(#:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'fix-paths
+             (lambda* (#:key inputs #:allow-other-keys)
+               (let ((bin (string-append (assoc-ref inputs "coreutils") "/bin")))
+                 (substitute* "cmd.lisp"
+                   (("\"env\"") (format #f "\"~a/env\"" bin))
+                   (("\"pwd\"") (format #f "\"~a/pwd\"" bin)))))))))
+      (home-page "https://github.com/ruricolist/cmd")
+      (synopsis "Conveniently run external programs from Common Lisp")
+      (description
+       "A utility for running external programs, built on UIOP.
+Cmd is designed to be natural to use, protect against shell interpolation and
+be usable from multi-threaded programs.")
+      (license license:expat))))
+
+(define-public ecl-cmd
+  (sbcl-package->ecl-package sbcl-cmd))
+
+(define-public cl-cmd
+  (sbcl-package->cl-source-package sbcl-cmd))
+
+(define-public sbcl-ppath
+  (let ((commit "eb1a8173b4d1d691ea9a7699412123462f58c3ce"))
+    (package
+      (name "sbcl-ppath")
+      (version (git-version "0.1" "1" commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/fourier/ppath/")
+               (commit commit)))
+         (file-name (git-file-name name commit))
+         (sha256
+          (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)))
+      (native-inputs
+       `(("cl-fad" ,sbcl-cl-fad)
+         ("prove" ,sbcl-prove)))
+      (home-page "https://github.com/fourier/ppath")
+      (synopsis "Common Lisp's implementation of the Python's os.path module")
+      (description
+       "This library is a path strings manipulation library inspired by
+Python's @code{os.path}.  All functionality from @code{os.path} is supported on
+major operation systems.
+
+The philosophy behind is to use simple strings and \"dumb\" string
+manipulation functions to handle paths and filenames.  Where possible the
+corresponding OS system functions are called.")
+      (license license:bsd-2))))
+
+(define-public ecl-ppath
+  (sbcl-package->ecl-package sbcl-ppath))
+
+(define-public cl-ppath
+  (sbcl-package->cl-source-package sbcl-ppath))
+
+(define-public sbcl-trivial-escapes
+  (let ((commit "1eca78da2078495d09893be58c28b3aa7b8cc4d1"))
+    (package
+      (name "sbcl-trivial-escapes")
+      (version (git-version "1.2.0" "1" commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/williamyaoh/trivial-escapes")
+               (commit commit)))
+         (file-name (git-file-name name commit))
+         (sha256
+          (base32 "0v6h8lk17iqv1qkxgqjyzn8gi6v0hvq2vmfbb01md3zjvjqxn6lr"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       `(("named-readtables" ,sbcl-named-readtables)))
+      (native-inputs
+       `(("fiveam" ,sbcl-fiveam)))
+      (home-page "https://github.com/williamyaoh/trivial-escapes")
+      (synopsis "C-style escape directives for Common Lisp")
+      (description
+       "This Common Lisp library interprets escape characters the same way that
+most other programming language do.
+It provides four readtables.  The default one lets you write strings like this:
+@code{#\"This string has\na newline in it!\"}.")
+      (license license:public-domain))))
+
+(define-public ecl-trivial-escapes
+  (sbcl-package->ecl-package sbcl-trivial-escapes))
+
+(define-public cl-trivial-escapes
+  (sbcl-package->cl-source-package sbcl-trivial-escapes))
+
+(define-public sbcl-cl-indentify
+  (let ((commit "eb770f434defa4cd41d84bca822428dfd0dbac53"))
+    (package
+      (name "sbcl-cl-indentify")
+      (version (git-version "0.1" "1" commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/yitzchak/cl-indentify")
+               (commit commit)))
+         (file-name (git-file-name name commit))
+         (sha256
+          (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)))
+      (native-inputs
+       `(("trivial-escapes" ,sbcl-trivial-escapes)
+         ("rove" ,sbcl-rove)))
+      (home-page "https://github.com/yitzchak/cl-indentify")
+      (synopsis "Code beautifier for Common Lisp")
+      (description
+       "A library and command line utility to automatically indent Common Lisp
+source files.")
+      (license license:expat))))
+
+(define-public ecl-cl-indentify
+  (sbcl-package->ecl-package sbcl-cl-indentify))
+
+(define-public cl-indentify
+  (sbcl-package->cl-source-package sbcl-cl-indentify))
+
+(define-public sbcl-concrete-syntax-tree
+  (let ((commit "abd242a59dadc5452aa9dbc1d313c83ec2c11f46"))
+    (package
+      (name "sbcl-concrete-syntax-tree")
+      (version (git-version "0.0.0" "1" commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/s-expressionists/Concrete-Syntax-Tree")
+               (commit commit)))
+         (file-name (git-file-name name commit))
+         (sha256
+          (base32 "1lyrglc3h1if44gxd9cwv90wa90nrdjvb7fry39b1xn8ywdfa7di"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       `(("acclimation" ,sbcl-acclimation)))
+      (home-page "https://github.com/s-expressionists/Concrete-Syntax-Tree")
+      (synopsis "Parse Common Lisp code into a concrete syntax tree")
+      (description
+       "This library is intended to solve the problem of source tracking for
+Common Lisp code.
+
+By \"source tracking\", it is meant that code elements that have a known
+origin in the form of a position in a file or in an editor buffer are
+associated with some kind of information about this origin.
+
+Since the exact nature of such origin information depends on the Common Lisp
+implementation and the purpose of wanting to track that origin, the library
+does not impose a particular structure of this information.  Instead, it
+provides utilities for manipulating source code in the form of what is called
+concrete syntax trees (CSTs for short) that preserve this information about
+the origin.")
+      (license license:bsd-2))))
+
+(define-public ecl-concrete-syntax-tree
+  (sbcl-package->ecl-package sbcl-concrete-syntax-tree))
+
+(define-public cl-concrete-syntax-tree
+  (sbcl-package->cl-source-package sbcl-concrete-syntax-tree))
+
+(define-public sbcl-eclector
+  (package
+    (name "sbcl-eclector")
+    (version "0.5.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/s-expressionists/Eclector")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0bwkla0jdp5bg0q1zca5wg22b0nbdmglgax345nrhsf8bdrh47wm"))))
+    (build-system asdf-build-system/sbcl)
+    (inputs
+     `(("acclimation" ,sbcl-acclimation)
+       ("alexandria" ,sbcl-alexandria)
+       ("closer-mop" ,sbcl-closer-mop)
+       ("concrete-syntax-tree" ,sbcl-concrete-syntax-tree)))
+    (native-inputs
+     `(("fiveam" ,sbcl-fiveam)))
+    (arguments
+     '(#:asd-systems '("eclector"
+                       "eclector-concrete-syntax-tree")))
+    (home-page "https://s-expressionists.github.io/Eclector/")
+    (synopsis "Highly customizable, portable Common Lisp reader")
+    (description
+     "Eclector is a portable Common Lisp reader that is highly customizable,
+can recover from errors and can return concrete syntax trees.
+
+In contrast to many other reader implementations, eclector can recover from
+most errors in the input supplied to it and continue reading.  This capability
+is realized as a restart.
+
+It can also produce instances of the concrete syntax tree classes provided by
+the concrete syntax tree library.")
+    (license license:bsd-2)))
+
+(define-public ecl-eclector
+  (sbcl-package->ecl-package sbcl-eclector))
+
+(define-public cl-eclector
+  (sbcl-package->cl-source-package sbcl-eclector))
+
+(define-public sbcl-jsown
+  (let ((commit "744c4407bef58dfa876d9da0b5c0205d869e7977"))
+    (package
+      (name "sbcl-jsown")
+      (version (git-version "1.0.1" "1" commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/madnificent/jsown")
+               (commit commit)))
+         (file-name (git-file-name name commit))
+         (sha256
+          (base32 "0gadvmf1d9bq35s61z76psrsnzwwk12svi66jigf491hv48wigw7"))))
+      (build-system asdf-build-system/sbcl)
+      (home-page "https://github.com/madnificent/jsown")
+      (synopsis "Fast JSON reader / writer library for Common Lisp")
+      (description
+       "@code{jsown} is a high performance Common Lisp JSON parser.  Its aim
+is to allow for the fast parsing of JSON objects in Common Lisp.  Recently,
+functions and macros have been added to ease the burden of writing and editing
+@code{jsown} objects.
+
+@code{jsown} allows you to parse JSON objects quickly to a modifiable Lisp
+list and write them back.  If you only need partial retrieval of objects,
+@code{jsown} allows you to select the keys which you would like to see parsed.
+@code{jsown} also has a JSON writer and some helper methods to alter the JSON
+objects themselves.")
+      (license license:expat))))
+
+(define-public ecl-jsown
+  (sbcl-package->ecl-package sbcl-jsown))
+
+(define-public cl-jsown
+  (sbcl-package->cl-source-package sbcl-jsown))
+
+(define-public sbcl-system-locale
+  (let ((commit "4b334bc2fa45651bcaa28ae7d9331095d6bf0a17"))
+    (package
+      (name "sbcl-system-locale")
+      (version (git-version "1.0.0" "1" commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/Shinmera/system-locale/")
+               (commit commit)))
+         (file-name (git-file-name name commit))
+         (sha256
+          (base32 "00p5c053kmgq4ks6l9mxsqz6g3bjcybvkvj0bh3r90qgpkaawm1p"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       `(("documentation-utils" ,sbcl-documentation-utils)))
+      (home-page "https://shinmera.github.io/system-locale/")
+      (synopsis "Get the system's locale and language settings in Common Lisp")
+      (description
+       "This library retrieves locale information configured on the
+system.  This is helpful if you want to write applications and libraries that
+display messages in the user's native language.")
+      (license license:zlib))))
+
+(define-public ecl-system-locale
+  (sbcl-package->ecl-package sbcl-system-locale))
+
+(define-public cl-system-locale
+  (sbcl-package->cl-source-package sbcl-system-locale))
+
+(define-public sbcl-language-codes
+  (let ((commit "e7aa0e37cb97a3d37d6bc7316b479d01bff8f42e"))
+    (package
+      (name "sbcl-language-codes")
+      (version (git-version "1.0.0" "1" commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/Shinmera/language-codes")
+               (commit commit)))
+         (file-name (git-file-name name commit))
+         (sha256
+          (base32 "0py176ibmsc01n5r0q1bs1ykqf5jwdbh8kx0j1a814l9y51241v0"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       `(("documentation-utils" ,sbcl-documentation-utils)))
+      (home-page "https://shinmera.github.io/language-codes/")
+      (synopsis "Map ISO language codes to language names in Common Lisp")
+      (description
+       "This is a small library providing the ISO-639 language code to
+language name mapping.")
+      (license license:zlib))))
+
+(define-public ecl-language-codes
+  (sbcl-package->ecl-package sbcl-language-codes))
+
+(define-public cl-language-codes
+  (sbcl-package->cl-source-package sbcl-language-codes))
+
+(define-public sbcl-multilang-documentation
+  (let ((commit "59e798a07e949e8957a20927f52aca425d84e4a0"))
+    (package
+      (name "sbcl-multilang-documentation")
+      (version (git-version "1.0.0" "1" commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/Shinmera/multilang-documentation")
+               (commit commit)))
+         (file-name (git-file-name name commit))
+         (sha256
+          (base32 "13y5jskx8n2b7kimpfarr8v777w3b7zj5swg1b99nj3hk0843ixw"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       `(("documentation-utils" ,sbcl-documentation-utils)
+         ("language-codes" ,sbcl-language-codes)
+         ("system-locale" ,sbcl-system-locale)))
+      (home-page "https://shinmera.github.io/multilang-documentation/")
+      (synopsis "Add multiple languages support to Common Lisp documentation")
+      (description
+       "This library provides a drop-in replacement function for
+cl:documentation that supports multiple docstrings per-language, allowing you
+to write documentation that can be internationalised.")
+      (license license:zlib))))
+
+(define-public ecl-multilang-documentation
+  (sbcl-package->ecl-package sbcl-multilang-documentation))
+
+(define-public cl-multilang-documentation
+  (sbcl-package->cl-source-package sbcl-multilang-documentation))
+
+(define-public sbcl-trivial-do
+  (let ((commit "03a1729f1e71bad3ebcf6cf098a0cce52dfa1163"))
+    (package
+      (name "sbcl-trivial-do")
+      (version (git-version "0.1" "1" commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/yitzchak/trivial-do")
+               (commit commit)))
+         (file-name (git-file-name name commit))
+         (sha256
+          (base32 "1ffva79nkicc7wc8c2ic5nayis3b2rk5sxzj74yjkymkjgbpcrgd"))))
+      (build-system asdf-build-system/sbcl)
+      (home-page "https://github.com/yitzchak/trivial-do")
+      (synopsis "Additional dolist style macros for Common Lisp")
+      (description
+       "Additional dolist style macros for Common Lisp, such as
+@code{doalist}, @code{dohash}, @code{dolist*}, @code{doplist}, @code{doseq}
+and @code{doseq*}.")
+      (license license:zlib))))
+
+(define-public ecl-trivial-do
+  (sbcl-package->ecl-package sbcl-trivial-do))
+
+(define-public cl-trivial-do
+  (sbcl-package->cl-source-package sbcl-trivial-do))
+
+(define-public sbcl-common-lisp-jupyter
+  (let ((commit "61a9a8e7a18e2abd7af7c697ba5146fd19bd9d62"))
+    (package
+      (name "sbcl-common-lisp-jupyter")
+      (version (git-version "0.1" "1" commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/yitzchak/common-lisp-jupyter")
+               (commit commit)))
+         (file-name (git-file-name name commit))
+         (sha256
+          (base32 "0zyzl55l45w9z65ygi5pcwda5w5p1j1bb0p2zg2n5cpv8344dkh2"))))
+      (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)
+         ("eclector" ,sbcl-eclector)
+         ("ironclad" ,sbcl-ironclad)
+         ("iterate" ,sbcl-iterate)
+         ("jsown" ,sbcl-jsown)
+         ("multilang-documentation" ,sbcl-multilang-documentation)
+         ("pzmq" ,sbcl-pzmq)
+         ("puri" ,sbcl-puri)
+         ("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)))
+      (home-page "https://yitzchak.github.io/common-lisp-jupyter/")
+      (synopsis "Common Lisp kernel for Jupyter")
+      (description
+       "This is a Common Lisp kernel for Jupyter along with a library for
+building Jupyter kernels, based on Maxima-Jupyter which was based on
+@code{cl-jupyter}.")
+      (license license:zlib))))
+
+(define-public ecl-common-lisp-jupyter
+  (sbcl-package->ecl-package sbcl-common-lisp-jupyter))
+
+(define-public cl-common-lisp-jupyter
+  (sbcl-package->cl-source-package sbcl-common-lisp-jupyter))
diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index 4d293ce89c..3c09b0af8a 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -16,6 +16,8 @@
 ;;; Copyright © 2019 Jesse Gildersleve <jessejohngildersleve@protonmail.com>
 ;;; Copyright © 2019, 2020 Guillaume Le Vaillant <glv@posteo.net>
 ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2020 Zhu Zihao <all_but_last@163.com>
+;;; Copyright © 2021 Sharlatan Hellseher <sharlatanus@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -44,6 +46,7 @@
   #:use-module (guix download)
   #:use-module (guix git-download)
   #:use-module (guix utils)
+  #:use-module (guix build-system copy)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system ant)
   #:use-module (guix build-system asdf)
@@ -51,10 +54,8 @@
   #:use-module (gnu packages admin)
   #:use-module (gnu packages base)
   #:use-module (gnu packages bdw-gc)
-  #:use-module (gnu packages bison)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages ed)
-  #:use-module (gnu packages flex)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages gcc)
   #:use-module (gnu packages gettext)
@@ -78,21 +79,10 @@
   #:use-module (gnu packages xorg)
   #:use-module (ice-9 match))
 
-(define (asdf-substitutions lisp)
-  ;; Prepend XDG_DATA_DIRS/LISP-bundle-systems to ASDF's
-  ;; 'default-system-source-registry'.
-  `((("\\(,dir \"systems/\"\\)\\)")
-     (format #f
-             "(,dir \"~a-bundle-systems\")))
-
-      ,@(loop :for dir :in (xdg-data-dirs \"common-lisp/\")
-              :collect `(:directory (,dir \"systems\"))"
-             ,lisp))))
-
 (define-public cl-asdf
   (package
     (name "cl-asdf")
-    (version "3.3.3")
+    (version "3.3.4")
     (source
      (origin
        (method url-fetch)
@@ -100,8 +90,11 @@
         (string-append "https://common-lisp.net/project/asdf/archives/asdf-"
                        version ".lisp"))
        (sha256
-        (base32 "18lr6kxvzhr79c9rx3sdricz30aby866fj0m24w27zxsqlyvn3rd"))))
+        (base32 "1hpx30f6yrak15nw992k7x3pn75ahvjs04n4f134k68mhgs62km2"))))
     (build-system trivial-build-system)
+    (native-inputs
+     `(("config-patch" ,@(search-patches "cl-asdf-config-directories.patch"))
+       ("patch" ,patch)))
     (arguments
      `(#:modules ((guix build utils)
                   (guix build lisp-utils))
@@ -112,9 +105,14 @@
          (let* ((out (string-append (assoc-ref %outputs "out")))
                 (asdf-install (string-append out %source-install-prefix
                                              "/source/asdf/"))
-                (asdf (string-append (assoc-ref %build-inputs "source"))))
+                (src-asdf (string-append (assoc-ref %build-inputs "source")))
+                (dst-asdf (string-append asdf-install "asdf.lisp"))
+                (patch (string-append (assoc-ref %build-inputs "patch")
+                                      "/bin/patch"))
+                (config-patch (assoc-ref %build-inputs "config-patch")))
            (mkdir-p asdf-install)
-           (copy-file asdf (string-append asdf-install "asdf.lisp"))))))
+           (copy-file src-asdf dst-asdf)
+           (invoke patch "-p1" "-i" config-patch dst-asdf)))))
     (home-page "https://common-lisp.net/project/asdf/")
     (synopsis "Another System Definition Facility")
     (description
@@ -254,19 +252,20 @@ interface to the Tk widget system.")
          (delete 'check)
          (add-after 'unpack 'replace-asdf
            ;; Use system ASDF instead of bundled one.
-           (lambda* (#:key inputs outputs #:allow-other-keys)
+           (lambda* (#:key inputs #:allow-other-keys)
              (let* ((cl-asdf (assoc-ref inputs "cl-asdf"))
                     (guix-asdf (string-append
                                 cl-asdf
                                 "/share/common-lisp/source/asdf/asdf.lisp"))
-                    (out (string-append (assoc-ref outputs "out")))
                     (contrib-asdf "contrib/asdf/asdf.lisp"))
-               (copy-file guix-asdf contrib-asdf)
-               ;; Add ecl-bundle-systems to 'default-system-source-registry'.
-               (substitute* contrib-asdf
-                 ,@(asdf-substitutions name)))
+               (copy-file guix-asdf contrib-asdf))
              #t))
-         (add-after 'install 'wrap
+         (add-after 'install 'remove-build-stamp
+           (lambda* (#:key outputs #:allow-other-keys)
+             (delete-file (string-append (assoc-ref outputs "out")
+                                         "/lib/ecl-" ,version "/build-stamp"))
+             #t))
+         (add-after 'remove-build-stamp 'wrap
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (let* ((ecl (assoc-ref outputs "out"))
                     (input-path (lambda (lib path)
@@ -288,7 +287,8 @@ interface to the Tk widget system.")
                            (input-path lib "/include"))
                          `("kernel-headers" ,@libraries)))
                  `("LIBRARY_PATH" suffix ,library-directories)
-                 `("LD_LIBRARY_PATH" suffix ,library-directories)))))
+                 `("LD_LIBRARY_PATH" suffix ,library-directories))
+               #t)))
          (add-after 'wrap 'check (assoc-ref %standard-phases 'check))
          (add-before 'check 'fix-path-to-ecl
            (lambda _
@@ -298,7 +298,10 @@ interface to the Tk widget system.")
     (native-search-paths
      (list (search-path-specification
             (variable "XDG_DATA_DIRS")
-            (files '("share")))))
+            (files '("share")))
+           (search-path-specification
+            (variable "XDG_CONFIG_DIRS")
+            (files '("etc")))))
     (home-page "http://ecls.sourceforge.net/")
     (synopsis "Embeddable Common Lisp")
     (description "ECL is an implementation of the Common Lisp language as
@@ -324,9 +327,10 @@ supporting ASDF, Sockets, Gray streams, MOP, and other useful components.")
              (commit "clisp-2.49.92-2018-02-18")))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0k2dmgl0miz3767iks4p0mvp6xw0ysyxhjpklyh11j010rmh6hqb"))
-       (patches (search-patches "clisp-remove-failing-test.patch"))))
+        (base32 "0k2dmgl0miz3767iks4p0mvp6xw0ysyxhjpklyh11j010rmh6hqb"))))
     (build-system gnu-build-system)
+    (native-inputs
+     `(("cl-asdf" ,cl-asdf)))
     (inputs `(("libffcall" ,libffcall)
               ("ncurses" ,ncurses)
               ("readline" ,readline)
@@ -339,8 +343,11 @@ supporting ASDF, Sockets, Gray streams, MOP, and other useful components.")
                                  '())
                             "--with-dynamic-ffi"
                             "--with-dynamic-modules"
+                            "--with-ffcall"
+                            "--with-readline"
+                            "--with-sigsegv"
+                            "--with-module=asdf"
                             "--with-module=rawsock")
-       #:build #f
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'patch-sh-and-pwd
@@ -358,9 +365,24 @@ supporting ASDF, Sockets, Gray streams, MOP, and other useful components.")
                (("/bin/sh") "sh"))
              (substitute* '("src/clisp-link.in")
                (("/bin/pwd") "pwd"))
-             #t)))
-       ;; Makefiles seem to have race conditions.
-       #:parallel-build? #f))
+             #t))
+         (add-after 'unpack 'replace-asdf
+           ;; Use system ASDF instead of bundled one.
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let* ((cl-asdf (assoc-ref inputs "cl-asdf"))
+                    (guix-asdf (string-append
+                                cl-asdf
+                                "/share/common-lisp/source/asdf/asdf.lisp"))
+                    (contrib-asdf "modules/asdf/asdf.lisp"))
+               (delete-file contrib-asdf)
+               (copy-file guix-asdf contrib-asdf)))))))
+    (native-search-paths
+     (list (search-path-specification
+            (variable "XDG_DATA_DIRS")
+            (files '("share")))
+           (search-path-specification
+            (variable "XDG_CONFIG_DIRS")
+            (files '("etc")))))
     (home-page "https://clisp.sourceforge.io/")
     (synopsis "A Common Lisp implementation")
     (description
@@ -372,14 +394,14 @@ an interpreter, a compiler, a debugger, and much more.")
 (define-public sbcl
   (package
     (name "sbcl")
-    (version "2.0.7")
+    (version "2.1.0")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://sourceforge/sbcl/sbcl/" version "/sbcl-"
                            version "-source.tar.bz2"))
        (sha256
-        (base32 "0z31khhh9f5hy8316blxwa5iabgn76ya1az5vr4dzash5kcfx5pm"))))
+        (base32 "0k12m2z60fnq64m8dgivprs2mvrsnmp7c5ipzx7jzkprcsymdvh5"))))
     (build-system gnu-build-system)
     (outputs '("out" "doc"))
     (native-inputs
@@ -430,16 +452,13 @@ an interpreter, a compiler, a debugger, and much more.")
            ;; of ASDF we use to build software; therefore, replace the contrib
            ;; ASDF with the version packaged into Guix.
            ;; [1] - https://bugs.launchpad.net/sbcl/+bug/1823442
-           (lambda* (#:key inputs outputs #:allow-other-keys)
+           (lambda* (#:key inputs #:allow-other-keys)
              (let* ((cl-asdf (assoc-ref inputs "cl-asdf"))
                     (guix-asdf (string-append
                                 cl-asdf
                                 "/share/common-lisp/source/asdf/asdf.lisp"))
-                    (out (string-append (assoc-ref outputs "out")))
                     (contrib-asdf "contrib/asdf/asdf.lisp"))
-               (copy-file guix-asdf contrib-asdf)
-               (substitute* contrib-asdf
-                 ,@(asdf-substitutions name)))
+               (copy-file guix-asdf contrib-asdf))
              #t))
          (add-before 'build 'patch-unix-tool-paths
            (lambda* (#:key outputs inputs #:allow-other-keys)
@@ -502,7 +521,7 @@ an interpreter, a compiler, a debugger, and much more.")
                                          `("clisp")))
                      (string-append "--prefix="
                                     (assoc-ref outputs "out"))
-                     "--dynamic-space-size=2Gb"
+                     "--dynamic-space-size=3072"
                      "--with-sb-core-compression"
                      "--with-sb-xref-for-internals")))
          (replace 'install
@@ -546,7 +565,10 @@ an interpreter, a compiler, a debugger, and much more.")
     (native-search-paths
      (list (search-path-specification
             (variable "XDG_DATA_DIRS")
-            (files '("share")))))
+            (files '("share")))
+           (search-path-specification
+            (variable "XDG_CONFIG_DIRS")
+            (files '("etc")))))
     (home-page "http://www.sbcl.org/")
     (synopsis "Common Lisp implementation")
     (description "Steel Bank Common Lisp (SBCL) is a high performance Common
@@ -606,7 +628,8 @@ statistical profiler, a code coverage tool, and many other extensions.")
                 "0x4bjx6cxsjvxyagijhlvmc7jkyxifdvz5q5zvz37028va65243c")
                (_ "15l7cfa4a7jkfwdzsfm4q3n22jnb57imxahpql3h77xin57v1gbz"))))))))
     (native-inputs
-     `(("m4" ,m4)))
+     `(("cl-asdf" ,cl-asdf)
+       ("m4" ,m4)))
     (arguments
      `(#:tests? #f                      ;no 'check' target
        #:modules ((ice-9 match)
@@ -618,6 +641,16 @@ statistical profiler, a code coverage tool, and many other extensions.")
          (add-after 'unpack 'unpack-image
            (lambda* (#:key inputs #:allow-other-keys)
              (invoke "tar" "xzvf" (assoc-ref inputs "ccl-bootstrap"))))
+         (add-after 'unpack 'replace-asdf
+           ;; Use system ASDF instead of bundled one.
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let* ((cl-asdf (assoc-ref inputs "cl-asdf"))
+                    (guix-asdf (string-append
+                                cl-asdf
+                                "/share/common-lisp/source/asdf/asdf.lisp"))
+                    (contrib-asdf "tools/asdf.lisp"))
+               (delete-file contrib-asdf)
+               (copy-file guix-asdf contrib-asdf))))
          (delete 'configure)
          (add-before 'build 'pre-build
            ;; Enter the source directory for the current platform's lisp
@@ -681,6 +714,13 @@ statistical profiler, a code coverage tool, and many other extensions.")
                      "exec -a \"$0\" " libdir kernel " \"$@\"\n"))))
                (chmod wrapper #o755))
              #t)))))
+    (native-search-paths
+     (list (search-path-specification
+            (variable "XDG_DATA_DIRS")
+            (files '("share")))
+           (search-path-specification
+            (variable "XDG_CONFIG_DIRS")
+            (files '("etc")))))
     (supported-systems '("i686-linux" "x86_64-linux" "armhf-linux"))
     (home-page "https://ccl.clozure.com/")
     (synopsis "Common Lisp implementation")
@@ -801,7 +841,7 @@ enough to play the original mainframe Zork all the way through.")
 (define-public txr
   (package
     (name "txr")
-    (version "239")
+    (version "246")
     (source
      (origin
        (method git-fetch)
@@ -810,7 +850,7 @@ enough to play the original mainframe Zork all the way through.")
              (commit (string-append "txr-" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1jldpkd5f855m3z4zjpd1ha64f405pcdwwrnr8jnk66v22dsvdwx"))))
+        (base32 "1ynkz0ss7nn1ssiaxagpq80iabknf085nk0pra9hn8y9hx7av0db"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags
@@ -832,9 +872,6 @@ enough to play the original mainframe Zork all the way through.")
                                 "tests/017/realpath.expected")
                (("/usr/bin") "/"))
              #t)))))
-    (native-inputs
-     `(("bison" ,bison)
-       ("flex" ,flex)))
     (inputs
      `(("libffi" ,libffi)))
     (synopsis "General-purpose, multi-paradigm programming language")
@@ -1006,3 +1043,129 @@ including a built-in database engine and a GUI system.")
      (package
        (inherit picolisp32)
        (name "picolisp")))))
+
+(define-public janet
+  (package
+    (name "janet")
+    (version "1.12.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/janet-lang/janet")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0if514zdmbjvvrsa9x5yfvg2b14sz53yaka12g3yhwkq8ls3qk0c"))))
+    (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"))
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (replace 'check
+           (lambda _
+             (invoke "make" "test"))))))
+    (home-page "https://janet-lang.org/")
+    (synopsis "Functional, imperative and embeddable programming language")
+    (description
+     "Janet is a functional and imperative programming language.  It can be
+used for rapid prototyping, dynamic systems, and other domains where dynamic
+languages shine.  You can also add Janet scripting to an application by
+embedding a single C file and two headers.  It can be easily ported to new
+platforms.  The entire language (core library, interpreter, compiler,
+assembler, PEG) is less than 1MB.")
+    (license license:expat)))
+
+(define-public lisp-repl-core-dumper
+  (package
+    (name "lisp-repl-core-dumper")
+    (version "0.5.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://gitlab.com/ambrevar/lisp-repl-core-dumper.git")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1hrilm9lxy7zdidn4wac4yfqryg3hfw0371nanhd7g9bcfjx7n1q"))))
+    (build-system copy-build-system)
+    (arguments
+     '(#:install-plan
+       '(("lisp-repl-core-dumper" "bin/"))
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'install 'fix-utils-path
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let* ((coreutils (string-append (assoc-ref inputs "coreutils") "/bin/"))
+                    (cat (string-append coreutils "cat"))
+                    (paste (string-append coreutils "paste"))
+                    (sort (string-append coreutils "sort"))
+                    (basename (string-append coreutils "basename"))
+                    (sed (string-append (assoc-ref inputs "sed") "/bin/sed")))
+               (substitute* "lisp-repl-core-dumper"
+                 (("\\$\\(basename") (string-append "$(" basename))
+                 (("\\<cat\\>") cat)
+                 (("\\<paste\\>") paste)
+                 (("\\<sed\\>") sed)
+                 (("\\<sort\\>") sort))))))))
+    (inputs
+     `(("coreutils" ,coreutils-minimal)
+       ("sed" ,sed)))
+    (home-page "https://gitlab.com/ambrevar/lisp-repl-core-dumper")
+    (synopsis "Generate REPL-optimized Lisp cores on demand")
+    (description
+     "This tool generates Lisp images that can embed the provided systems
+and make for REPLs that start blazing fast.
+
+@itemize
+@item It’s portable and should work with any compiler.
+@item It works for any REPL.
+@item It allows you to include arbitrary libraries.
+@end itemize\n")
+    (license license:gpl3+)))
+
+(define-public buildapp
+  (package
+    (name "buildapp")
+    (version "1.5.6")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/xach/buildapp")
+             (commit (string-append "release-" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "020ipjfqa3l8skd97cj5kq837wgpj28ygfxnkv64cnjrlbnzh161"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("sbcl" ,sbcl)))
+    (arguments
+     `(#:tests? #f
+       #:make-flags
+       (list (string-append "DESTDIR=" (assoc-ref %outputs "out")))
+       #:strip-binaries? #f
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (add-after 'unpack 'set-home
+           (lambda _
+             (setenv "HOME" "/tmp")
+             #t))
+         (add-before 'install 'create-target-directory
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((bin (string-append (assoc-ref outputs "out") "/bin")))
+               (mkdir-p bin)
+               #t))))))
+    (home-page "https://www.xach.com/lisp/buildapp/")
+    (synopsis "Makes easy to build application executables with SBCL")
+    (description
+     "Buildapp is an application for SBCL or CCL that configures and saves an
+executable Common Lisp image.  It is similar to cl-launch and hu.dwim.build. ")
+    (license license:bsd-2)))
diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm
index 15078a1168..114654c628 100644
--- a/gnu/packages/llvm.scm
+++ b/gnu/packages/llvm.scm
@@ -16,6 +16,7 @@
 ;;; 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>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -48,12 +49,16 @@
   #:use-module (gnu packages gcc)
   #:use-module (gnu packages bootstrap)           ;glibc-dynamic-linker
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages libedit)
   #:use-module (gnu packages libffi)
+  #:use-module (gnu packages lua)
   #:use-module (gnu packages mpi)
+  #:use-module (gnu packages ncurses)
   #:use-module (gnu packages onc-rpc)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages swig)
   #:use-module (gnu packages xml)
   #:export (system->llvm-target))
 
@@ -80,74 +85,9 @@ as \"x86_64-linux\"."
              ("i686"        => "X86")
              ("i586"        => "X86"))))
 
-(define (llvm-download-uri component version)
-  (if (version>=? version "9.0.1")
-      (string-append "https://github.com/llvm/llvm-project/releases/download"
-                     "/llvmorg-" version "/" component "-" version ".src.tar.xz")
-      (string-append "https://releases.llvm.org/" version "/" component "-"
-                     version ".src.tar.xz")))
-
-(define-public llvm-10
-  (package
-    (name "llvm")
-    (version "10.0.0")
-    (source
-     (origin
-      (method url-fetch)
-      (uri (llvm-download-uri "llvm" version))
-      (sha256
-       (base32
-        "1pwgm6cr0xr5a0hrbqs1zvsvvjvy0yq1y47c96804wcs795s90yz"))))
-    (build-system cmake-build-system)
-    (outputs '("out" "opt-viewer"))
-    (native-inputs
-     `(("python" ,python-2) ;bytes->str conversion in clang>=3.7 needs python-2
-       ("perl"   ,perl)))
-    (inputs
-     `(("libffi" ,libffi)))
-    (propagated-inputs
-     `(("zlib" ,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.
-
-       ;; Don't use '-g' during the build, to save space.
-       #:build-type "Release"
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'build 'shared-lib-workaround
-           ;; Even with CMAKE_SKIP_BUILD_RPATH=FALSE, llvm-tblgen
-           ;; doesn't seem to get the correct rpath to be able to run
-           ;; from the build directory.  Set LD_LIBRARY_PATH as a
-           ;; workaround.
-           (lambda _
-             (setenv "LD_LIBRARY_PATH"
-                     (string-append (getcwd) "/lib"))
-             #t))
-         (add-after 'install 'install-opt-viewer
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (opt-viewer-out (assoc-ref outputs "opt-viewer"))
-                    (opt-viewer-share-dir (string-append opt-viewer-out "/share"))
-                    (opt-viewer-dir (string-append opt-viewer-share-dir "/opt-viewer")))
-               (mkdir-p opt-viewer-share-dir)
-               (rename-file (string-append out "/share/opt-viewer")
-                            opt-viewer-dir))
-             #t)))))
-    (home-page "https://www.llvm.org")
-    (synopsis "Optimizing compiler infrastructure")
-    (description
-     "LLVM is a compiler infrastructure designed for compile-time, link-time,
-runtime, and idle-time optimization of programs from arbitrary programming
-languages.  It currently supports compilation of C and C++ programs, using
-front-ends derived from GCC 4.0.1.  A new front-end for the C family of
-languages is in development.  The compiler infrastructure includes mirror sets
-of programming tools as well as libraries with equivalent functionality.")
-    (license license:asl2.0)))  ;with LLVM exceptions, see LICENSE.txt
+(define (llvm-uri component version)
+  (string-append "https://github.com/llvm/llvm-project/releases/download"
+                 "/llvmorg-" version "/" component "-" version ".src.tar.xz"))
 
 (define* (clang-runtime-from-llvm llvm hash
                                   #:optional (patches '()))
@@ -157,7 +97,7 @@ of programming tools as well as libraries with equivalent functionality.")
     (source
      (origin
        (method url-fetch)
-       (uri (llvm-download-uri "compiler-rt" version))
+       (uri (llvm-uri "compiler-rt" version))
        (sha256 (base32 hash))
        (patches (map search-patch patches))))
     (build-system cmake-build-system)
@@ -213,7 +153,7 @@ given PATCHES.  When TOOLS-EXTRA is given, it must point to the
     (source
      (origin
        (method url-fetch)
-       (uri (llvm-download-uri (if (version>=? version "9.0.1")
+       (uri (llvm-uri (if (version>=? version "9.0.1")
                                    "clang"
                                    "cfe")
                                version))
@@ -388,6 +328,27 @@ given PATCHES.  When TOOLS-EXTRA is given, it must point to the
                                 (("@GLIBC_LIBDIR@")
                                  (string-append libc "/lib"))))))
                         #t)))
+                  ,@(if (version>=? version "10")
+                        `((add-after 'install 'adjust-cmake-file
+                            (lambda* (#:key outputs #:allow-other-keys)
+                              (let ((out (assoc-ref outputs "out")))
+                                ;; Clang generates a CMake file with "targets"
+                                ;; for each installed library file.  Downstream
+                                ;; consumers of the CMake interface can use this
+                                ;; to get absolute library locations.  Including
+                                ;; this file will needlessly assert that _all_
+                                ;; libraries are available, which causes problems
+                                ;; in Guix because some are removed (see the
+                                ;; move-extra-tools phase).  Thus, remove the
+                                ;; asserts so that the main functionality works.
+                                (substitute*
+                                    (string-append
+                                     out
+                                     "/lib/cmake/clang/ClangTargets-release.cmake")
+                                  (("list\\(APPEND _IMPORT_CHECK_TARGETS.*" all)
+                                   (string-append "# Disabled by Guix.\n#" all)))
+                                #t))))
+                        '())
                   ,@(if (version>? version "3.8")
                         `((add-after 'install 'symlink-cfi_blacklist
                             (lambda* (#:key inputs outputs #:allow-other-keys)
@@ -476,6 +437,12 @@ code analysis tools.")
                        (((names . directories) ...)
                         (union-build out directories)))
 
+                     ;; Create 'cc' and 'c++' so that one can use it as a
+                     ;; drop-in replacement for the default tool chain and
+                     ;; have configure scripts find the compiler.
+                     (symlink "clang" (string-append out "/bin/cc"))
+                     (symlink "clang++" (string-append out "/bin/c++"))
+
                      (union-build (assoc-ref %outputs "debug")
                                   (list (assoc-ref %build-inputs
                                                    "libc-debug")))
@@ -484,7 +451,11 @@ code analysis tools.")
                                                    "libc-static")))
                      #t))))
 
-    (native-search-paths (package-native-search-paths clang))
+    (native-search-paths
+     (append (package-native-search-paths clang)
+             (list (search-path-specification     ;copied from glibc
+                    (variable "GUIX_LOCPATH")
+                    (files '("lib/locale"))))))
     (search-paths (package-search-paths clang))
 
     (license (package-license clang))
@@ -502,6 +473,101 @@ output), and Binutils.")
               ("libc-debug" ,glibc "debug")
               ("libc-static" ,glibc "static")))))
 
+(define-public llvm-11
+  (package
+    (name "llvm")
+    (version "11.0.0")
+    (source
+     (origin
+      (method url-fetch)
+      (uri (llvm-uri "llvm" version))
+      (sha256
+       (base32
+        "0s94lwil98w7zb7cjrbnxli0z7gklb312pkw74xs1d6zk346hgwi"))))
+    (build-system cmake-build-system)
+    (outputs '("out" "opt-viewer"))
+    (native-inputs
+     `(("python" ,python-2) ;bytes->str conversion in clang>=3.7 needs python-2
+       ("perl"   ,perl)))
+    (inputs
+     `(("libffi" ,libffi)))
+    (propagated-inputs
+     `(("zlib" ,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.
+
+       ;; Don't use '-g' during the build, to save space.
+       #:build-type "Release"
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'build 'shared-lib-workaround
+           ;; Even with CMAKE_SKIP_BUILD_RPATH=FALSE, llvm-tblgen
+           ;; doesn't seem to get the correct rpath to be able to run
+           ;; from the build directory.  Set LD_LIBRARY_PATH as a
+           ;; workaround.
+           (lambda _
+             (setenv "LD_LIBRARY_PATH"
+                     (string-append (getcwd) "/lib"))
+             #t))
+         (add-after 'install 'install-opt-viewer
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (opt-viewer-out (assoc-ref outputs "opt-viewer"))
+                    (opt-viewer-share-dir (string-append opt-viewer-out "/share"))
+                    (opt-viewer-dir (string-append opt-viewer-share-dir "/opt-viewer")))
+               (mkdir-p opt-viewer-share-dir)
+               (rename-file (string-append out "/share/opt-viewer")
+                            opt-viewer-dir))
+             #t)))))
+    (home-page "https://www.llvm.org")
+    (synopsis "Optimizing compiler infrastructure")
+    (description
+     "LLVM is a compiler infrastructure designed for compile-time, link-time,
+runtime, and idle-time optimization of programs from arbitrary programming
+languages.  It currently supports compilation of C and C++ programs, using
+front-ends derived from GCC 4.0.1.  A new front-end for the C family of
+languages is in development.  The compiler infrastructure includes mirror sets
+of programming tools as well as libraries with equivalent functionality.")
+    (license license:asl2.0)))  ;with LLVM exceptions, see LICENSE.txt
+
+(define-public clang-runtime-11
+  (clang-runtime-from-llvm
+   llvm-11
+   "0d5j5l8phwqjjscmk8rmqn0i2i0abl537gdbkagl8fjpzy1gyjip"))
+
+(define-public clang-11
+  (clang-from-llvm llvm-11 clang-runtime-11
+                   "02ajkij85966vd150iy246mv16dsaph1kfi0y8wnncp8w6nar5hg"
+                   #:patches '("clang-11.0-libc-search-path.patch")
+                   #:tools-extra
+                   (origin
+                     (method url-fetch)
+                     (uri (llvm-uri "clang-tools-extra"
+                                    (package-version llvm-11)))
+                     (sha256
+                      (base32
+                       "02bcwwn54661madhq4nxc069s7p7pj5gpqi8ww50w3anbpviilzy")))))
+
+(define-public clang-toolchain-11
+  (make-clang-toolchain clang-11))
+
+(define-public llvm-10
+  (package
+    (inherit llvm-11)
+    (version "10.0.0")
+    (source
+     (origin
+      (method url-fetch)
+      (uri (llvm-uri "llvm" version))
+      (sha256
+       (base32
+        "1pwgm6cr0xr5a0hrbqs1zvsvvjvy0yq1y47c96804wcs795s90yz"))))))
+
 (define-public clang-runtime-10
   (clang-runtime-from-llvm
    llvm-10
@@ -514,7 +580,7 @@ output), and Binutils.")
                    #:tools-extra
                    (origin
                      (method url-fetch)
-                     (uri (llvm-download-uri "clang-tools-extra"
+                     (uri (llvm-uri "clang-tools-extra"
                                              (package-version llvm-10)))
                      (sha256
                       (base32
@@ -530,15 +596,14 @@ output), and Binutils.")
     (source
      (origin
        (method url-fetch)
-       (uri (llvm-download-uri "llvm" version))
+       (uri (llvm-uri "llvm" version))
        (sha256
         (base32
          "16hwp3qa54c3a3v7h8nlw0fh5criqh0hlr1skybyk0cz70gyx880"))
-       (patch-flags '("-p2"))
        (patches (search-patches
-                  "llvm-9-fix-bitcast-miscompilation.patch"
-                  "llvm-9-fix-scev-miscompilation.patch"
-                  "llvm-9-fix-lpad-miscompilation.patch"))))))
+                 "llvm-9-fix-bitcast-miscompilation.patch"
+                 "llvm-9-fix-scev-miscompilation.patch"
+                 "llvm-9-fix-lpad-miscompilation.patch"))))))
 
 (define-public clang-runtime-9
   (clang-runtime-from-llvm
@@ -554,43 +619,13 @@ output), and Binutils.")
 (define-public clang-toolchain-9
   (make-clang-toolchain clang-9))
 
-;; Default LLVM and Clang version.
-(define-public llvm llvm-9)
-(define-public clang-runtime clang-runtime-9)
-(define-public clang clang-9)
-(define-public clang-toolchain clang-toolchain-9)
-
-(define-public lld
-  (package
-    (name "lld")
-    (version (package-version llvm-10))
-    (source (origin
-              (method url-fetch)
-              (uri (llvm-download-uri "lld" version))
-              (sha256
-               (base32
-                "026pwcbczcg0j5c9h7hxxrn3ki81ia9m9sfn0sy0bvzffv2xg85r"))))
-    (build-system cmake-build-system)
-    (inputs
-     `(("llvm" ,llvm-10)))
-    (arguments
-     `(#:build-type "Release"
-       ;; TODO: Tests require the lit tool, which isn't installed by the LLVM
-       ;; package.
-       #:tests? #f))
-    (home-page "https://lld.llvm.org/")
-    (synopsis "Linker from the LLVM project")
-    (description "LLD is a high-performance linker, built as a set of reusable
-components which highly leverage existing libraries in the larger LLVM Project.")
-    (license license:asl2.0))) ; With LLVM exception
-
 (define-public llvm-8
   (package
-    (inherit llvm)
+    (inherit llvm-9)
     (version "8.0.0")
     (source (origin
               (method url-fetch)
-              (uri (llvm-download-uri "llvm" version))
+              (uri (llvm-uri "llvm" version))
               (sha256
                (base32
                 "0k124sxkfhfi1rca6kzkdraf4axhx99x3cw2rk55056628dvwwl8"))))
@@ -616,7 +651,7 @@ components which highly leverage existing libraries in the larger LLVM Project."
     (version "7.0.1")
     (source (origin
               (method url-fetch)
-              (uri (llvm-download-uri "llvm" version))
+              (uri (llvm-uri "llvm" version))
               (sha256
                (base32
                 "16s196wqzdw4pmri15hadzqgdi926zln3an2viwyq0kini6zr3d3"))))))
@@ -641,7 +676,7 @@ components which highly leverage existing libraries in the larger LLVM Project."
     (version "6.0.1")
     (source (origin
               (method url-fetch)
-              (uri (llvm-download-uri "llvm" version))
+              (uri (llvm-uri "llvm" version))
               (sha256
                (base32
                 "1qpls3vk85lydi5b4axl0809fv932qgsqgdgrk098567z4jc7mmn"))))))
@@ -667,7 +702,7 @@ components which highly leverage existing libraries in the larger LLVM Project."
     (source
      (origin
       (method url-fetch)
-      (uri (llvm-download-uri "llvm" version))
+      (uri (llvm-uri "llvm" version))
       (sha256
        (base32
         "1vi9sf7rx1q04wj479rsvxayb6z740iaz3qniwp266fgp5a07n8z"))))
@@ -699,7 +734,7 @@ components which highly leverage existing libraries in the larger LLVM Project."
     (source
      (origin
       (method url-fetch)
-      (uri (llvm-download-uri "llvm" version))
+      (uri (llvm-uri "llvm" version))
       (sha256
        (base32
         "1ybmnid4pw2hxn12ax5qa5kl1ldfns0njg8533y3mzslvd5cx0kf"))))))
@@ -723,7 +758,7 @@ components which highly leverage existing libraries in the larger LLVM Project."
     (source
      (origin
        (method url-fetch)
-       (uri (llvm-download-uri "llvm" version))
+       (uri (llvm-uri "llvm" version))
        (sha256
         (base32
          "1masakdp9g2dan1yrazg7md5am2vacbkb3nahb3dchpc1knr8xxy"))))))
@@ -747,7 +782,7 @@ components which highly leverage existing libraries in the larger LLVM Project."
     (source
      (origin
        (method url-fetch)
-       (uri (llvm-download-uri "llvm" version))
+       (uri (llvm-uri "llvm" version))
        (sha256
         (base32
          "153vcvj8gvgwakzr4j0kndc0b7wn91c2g1vy2vg24s6spxcc23gn"))))))
@@ -769,7 +804,7 @@ components which highly leverage existing libraries in the larger LLVM Project."
     (source
      (origin
        (method url-fetch)
-       (uri (llvm-download-uri "llvm" version))
+       (uri (llvm-uri "llvm" version))
        (patches
         (search-patches "llvm-3.5-fix-clang-build-with-gcc5.patch"))
        (sha256
@@ -811,19 +846,69 @@ components which highly leverage existing libraries in the larger LLVM Project."
                    "0846h8vn3zlc00jkmvrmy88gc6ql6014c02l4jv78fpvfigmgssg"
                    #:patches '("clang-3.5-libc-search-path.patch")))
 
-(define-public llvm-for-extempore
-  (package (inherit llvm-3.8)
-    (name "llvm-for-extempore")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (string-append "http://extempore.moso.com.au/extras/"
-                           "llvm-3.8.0.src-patched-for-extempore.tar.xz"))
-       (sha256
-        (base32
-         "1svdl6fxn8l01ni8mpm0bd5h856ahv3h9sdzgmymr6fayckjvqzs"))))
-    ;; Extempore refuses to build on architectures other than x86_64
-    (supported-systems '("x86_64-linux"))))
+;; Default LLVM and Clang version.
+(define-public llvm llvm-9)
+(define-public clang-runtime clang-runtime-9)
+(define-public clang clang-9)
+(define-public clang-toolchain clang-toolchain-9)
+
+(define-public lld
+  (package
+    (name "lld")
+    (version "11.0.0")
+    (source (origin
+              (method url-fetch)
+              (uri (llvm-uri "lld" version))
+              (sha256
+               (base32
+                "077xyh7sij6mhp4dc4kdcmp9whrpz332fa12rwxnzp3wgd5bxrzg"))))
+    (build-system cmake-build-system)
+    (inputs
+     `(("llvm" ,llvm-11)))
+    (arguments
+     `(#:build-type "Release"
+       ;; TODO: Tests require the lit tool, which isn't installed by the LLVM
+       ;; package.
+       #:tests? #f))
+    (home-page "https://lld.llvm.org/")
+    (synopsis "Linker from the LLVM project")
+    (description "LLD is a high-performance linker, built as a set of reusable
+components which highly leverage existing libraries in the larger LLVM Project.")
+    (license license:asl2.0))) ; With LLVM exception
+
+(define-public lldb
+  (package
+    (name "lldb")
+    (version "11.0.0")
+    (source (origin
+              (method url-fetch)
+              (uri (llvm-uri "lldb" version))
+              (sha256
+               (base32
+                "0wic9lyb2la9bkzdc13szkm4f793w1mddp50xvh237iraygw0w45"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:configure-flags '("-DCMAKE_CXX_COMPILER=clang++")))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("swig" ,swig)))
+    (inputs
+     `(("clang" ,clang-11)
+       ("llvm" ,llvm-11)
+
+       ;; Optional (but recommended) inputs.
+       ("curses" ,ncurses)
+       ("editline" ,libedit)
+       ("liblzma" ,xz)
+       ("libxml2" ,libxml2)
+       ("lua" ,lua)
+       ("python" ,python)))
+    (home-page "https://lldb.llvm.org/")
+    (synopsis "Low level debugger")
+    (description
+     "LLDB is a high performance debugger built as a set of reusable components
+which highly leverage existing libraries in the larger LLVM project.")
+    (license license:asl2.0))) ;with LLVM exceptions
 
 (define-public libcxx
   (package
@@ -832,7 +917,7 @@ components which highly leverage existing libraries in the larger LLVM Project."
     (source
      (origin
        (method url-fetch)
-       (uri (llvm-download-uri "libcxx" version))
+       (uri (llvm-uri "libcxx" version))
        (sha256
         (base32
          "0d2bj5i6mk4caq7skd5nsdmz8c2m5w5anximl5wz3x32p08zz089"))))
@@ -872,7 +957,7 @@ use with Clang, targeting C++11, C++14 and above.")
     (source
      (origin
        (inherit (package-source libcxx))
-       (uri (llvm-download-uri "libcxx" version))
+       (uri (llvm-uri "libcxx" version))
        (sha256
         (base32
          "0rzw4qvxp6qx4l4h9amrq02gp7hbg8lw4m0sy3k60f50234gnm3n"))))
@@ -925,7 +1010,7 @@ requirements according to version 1.1 of the OpenCL specification.")
     (version "9.0.1")
     (source (origin
               (method url-fetch)
-              (uri (llvm-download-uri "openmp" version))
+              (uri (llvm-uri "openmp" version))
               (sha256
                (base32
                 "1knafnpp0f7hylx8q20lkd6g1sf0flly572dayc5d5kghh7hd52w"))
@@ -957,48 +1042,96 @@ with that of libgomp, the GNU Offloading and Multi Processing Library.")
 (define-public python-llvmlite
   (package
     (name "python-llvmlite")
-    (version "0.30.0")
+    (version "0.34.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "llvmlite" version))
        (sha256
         (base32
-         "01wspdc0xhnydl66jyhyr4ii16h3fnw6mjihiwnnxdxg9j6kkajf"))))
+         "0qqzs6h34002ig2jn31vk08q9hh5kn84lhmv4bljz3yakg8y0gph"))))
     (build-system python-build-system)
     (arguments
-     ;; FIXME: One test fails unable to find libm.so
-     ;; https://github.com/numba/llvmlite/issues/537
-     `(#:tests? #f))
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-reference-to-llvmlite.so
+           ;; ctypes.CDLL uses dlopen to load libllvmlite.so, which
+           ;; fails, so locate it by its absolute path.  Change it in
+           ;; ffi.py, not utils.py, because setup.py relies on the
+           ;; output of get_library_name for proper installation.
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (libllvmlite.so (string-append out "/lib/python"
+                                                   ,(version-major+minor
+                                                     (package-version python))
+                                                   "/site-packages/llvmlite/"
+                                                   "binding/libllvmlite.so")))
+               (substitute* "llvmlite/binding/ffi.py"
+                 (("_lib_name = get_library_name\\(\\)")
+                  (format #f "_lib_name = ~s" libllvmlite.so)))
+               #t)))
+         (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))
+         (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))))))
     (inputs
      `(("llvm"
-        ,(let ((patches-commit "486edd5fb2a6667feb5c865f300c0da73785434a"))
-           (package
-             (inherit llvm-7)
-             (source
-              (origin
-                (inherit (package-source llvm-7))
-                (patches
+        ,(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
-                    (method url-fetch)
-                    (uri (string-append
-                          "https://raw.githubusercontent.com/numba/"
-                          "llvmlite/" patches-commit "/conda-recipes/"
-                          "D47188-svml-VF.patch"))
-                    (sha256
-                     (base32
-                      "0wxhgb61k17f0zg2m0726sf3hppm41f8jar2kkg2n8sl5cnjj9mr")))
+                    (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
-                    (method url-fetch)
-                    (uri (string-append
-                          "https://raw.githubusercontent.com/numba/"
-                          "llvmlite/" patches-commit "/conda-recipes/"
-                          "twine_cfg_undefined_behavior.patch"))
-                    (sha256
-                     (base32
-                      "07h71n2m1mn9zcfgw04zglffknplb233zqbcd6pckq0wygkrxflp"))))))))))))
-    (home-page "http://llvmlite.pydata.org")
+                    (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))))))))))))
+    (home-page "https://llvmlite.pydata.org")
     (synopsis "Wrapper around basic LLVM functionality")
     (description
      "This package provides a Python binding to LLVM for use in Numba.")
diff --git a/gnu/packages/logging.scm b/gnu/packages/logging.scm
index bac9e18ea6..87283f3752 100644
--- a/gnu/packages/logging.scm
+++ b/gnu/packages/logging.scm
@@ -3,7 +3,7 @@
 ;;; Copyright © 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2017 Stefan Reichör <stefan@xsteve.at>
 ;;; Copyright © 2017 Eric Bavier <bavier@member.fsf.org>
-;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2019 Gábor Boskovits <boskovits@gmail.com>
 ;;; Copyright © 2019 Meiyo Peng <meiyo@riseup.net>
 ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
@@ -165,9 +165,8 @@ commands, displaying the results via a web interface.")
     (build-system gnu-build-system)
     (arguments
      `(#:make-flags
-       (list "CC=gcc"
-             "PREFIX="
-             (string-append "DESTDIR="
+       (list (string-append "CC=" ,(cc-for-target))
+             (string-append "PREFIX="
                             (assoc-ref %outputs "out")))
        #:phases
        (modify-phases %standard-phases
@@ -178,20 +177,20 @@ commands, displaying the results via a web interface.")
                  (("ncursesw\\/panel.h") "panel.h")
                  (("ncursesw\\/ncurses.h") "ncurses.h")))
              #t))
-         (delete 'configure))
+         (delete 'configure))           ; no configure script
        #:tests? #f)) ; no test suite (make check just runs cppcheck)
     (inputs `(("ncurses" ,ncurses)))
     (home-page "https://vanheusden.com/multitail/")
-    (synopsis "Monitor multiple logfiles")
+    (synopsis "Monitor multiple log files")
     (description
-     "MultiTail allows you to monitor logfiles and command output in multiple
-windows in a terminal, colorize, filter and merge.")
+     "MultiTail can monitor, color, filter, and merge log files and command
+output in multiple windows in a terminal.")
     (license license:gpl2+)))
 
 (define-public spdlog
   (package
     (name "spdlog")
-    (version "1.7.0")
+    (version "1.8.2")
     (source
      (origin
        (method git-fetch)
@@ -201,7 +200,7 @@ windows in a terminal, colorize, filter and merge.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "1ryaa22ppj60461hcdb8nk7jwj84arp4iw4lyw594py92g4vnx3j"))))
+         "03vmwbi9v7r3v8kzd0lj10fchp54kxbxwzfx7dp6qzkxjrvmx2dx"))))
     (build-system cmake-build-system)
     ;; TODO run benchmark. Currently not possible, as adding
     ;; (gnu packages benchmark) forms a dependency cycle
@@ -216,3 +215,19 @@ library.")
     ;; spdlog is under Expat license, but the bundled fmt library in
     ;; "include/spdlog/fmt/bundled" is under BSD 2 clause license.
     (license (list license:expat license:bsd-2))))
+
+(define-public spdlog-1.7
+  (package
+    (inherit spdlog)
+    (name "spdlog")
+    (version "1.7.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/gabime/spdlog")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1ryaa22ppj60461hcdb8nk7jwj84arp4iw4lyw594py92g4vnx3j"))))))
diff --git a/gnu/packages/loko.scm b/gnu/packages/loko.scm
new file mode 100644
index 0000000000..ef9312afe3
--- /dev/null
+++ b/gnu/packages/loko.scm
@@ -0,0 +1,86 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2020 Martin Becze <mjbecze@riseup.net>
+;;;
+;;; 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 loko)
+  #:use-module (guix packages)
+  #:use-module (guix git-download)
+  #:use-module (guix build-system gnu)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (gnu packages package-management)
+  #:use-module (gnu packages guile)
+  #:use-module (gnu packages guile-xyz)
+  #:use-module (gnu packages chez))
+
+(define-public loko-scheme
+  (package
+    (name "loko-scheme")
+    (version "0.7.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://gitlab.com/weinholt/loko")
+             (commit (string-append "v" version))))
+       (sha256
+        (base32 "1441aarw3vy14zdxyab495ag2fch04v4j89krhbqnqfkz6mdi0vy"))
+       (file-name (git-file-name name version))))
+    (build-system gnu-build-system)
+    (arguments
+     `(;; r7rs tests are a work in progress as of 0.7.0.
+       #:tests? #f
+       #:strip-binaries? #f
+       #:make-flags
+       (let ((out (assoc-ref %outputs "out")))
+         (list
+          (string-append "PREFIX=" out)
+          (string-append "GDB_AUTOLOAD_PATH=" out "/share/gdb/auto-load")))
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (add-before 'build 'akku-fixes
+           (lambda* (#:key inputs #:allow-other-keys)
+             (delete-file "Akku.lock")
+             (substitute* "Akku.manifest"
+               (("\\(depends.*") "(depends)"))
+             (invoke "akku" "install")
+             (let ((dest "./.akku/lib/")
+                   (source "/share/guile/site/3.0/"))
+               (for-each
+                (lambda (name)
+                  ;; Symlink the scheme libraries so that Akku can find them
+                  (symlink (string-append (assoc-ref inputs name) source name)
+                           (string-append dest name)))
+                '("struct" "laesare" "pfds" "machine-code")))
+             (substitute* ".akku/env"
+               (("/bin/sh") (which "sh")))
+             #t)))))
+    (native-inputs
+     `(("akku" ,akku)
+       ("chez-scheme" ,chez-scheme)
+       ("struct" ,guile-struct-pack)
+       ("laesare" ,guile-laesare)
+       ("pfds" ,guile-pfds)
+       ("machine-code" ,guile-machine-code)))
+    (home-page "https://scheme.fail")
+    (synopsis "Implementation of the algorithmic language Scheme")
+    (description
+     "Loko Scheme is intended to be a platform for application and operating
+system development.  It is written purely in Scheme and some assembler
+(i.e. no C code at the bottom).  Both the R6RS and the R7RS standards are
+supported.")
+    (license license:agpl3+)))
diff --git a/gnu/packages/lsof.scm b/gnu/packages/lsof.scm
index 34ad0f03d5..b317902ee7 100644
--- a/gnu/packages/lsof.scm
+++ b/gnu/packages/lsof.scm
@@ -1,7 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018, 2019 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -22,52 +22,37 @@
 (define-module (gnu packages lsof)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
-  #:use-module (guix download)
+  #:use-module (guix git-download)
   #:use-module (guix build-system gnu)
+  #:use-module (guix utils)
+  #:use-module (gnu packages)
+  #:use-module (gnu packages groff)
   #:use-module (gnu packages perl))
 
 (define-public lsof
   (package
    (name "lsof")
-   (version "4.91")
+   (version "4.94.0")
    (source
     (origin
-      (method url-fetch)
-      (uri
-       (apply append
-              (map
-               (lambda (mirror-uri)
-                 (let ((tarball (string-append name "_" version ".tar.bz2")))
-                   (list
-                    (string-append mirror-uri "/" tarball)
-                    ;; Upon every new release, the previous one is moved here:
-                    (string-append mirror-uri "/OLD/" tarball))))
-               (list
-                "ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/"
-
-                ;; Add mirrors because the canonical FTP server at purdue.edu
-                ;; bails out when it cannot do a reverse DNS lookup, as noted
-                ;; at <https://people.freebsd.org/~abe/>.
-                "ftp://ftp.fu-berlin.de/pub/unix/tools/lsof/"
-                (string-append "http://www.mirrorservice.org/sites/"
-                               "lsof.itap.purdue.edu/pub/tools/unix/lsof")
-                (string-append "ftp://ftp.mirrorservice.org/sites/"
-                               "lsof.itap.purdue.edu/pub/tools/unix/lsof")))))
+      (method git-fetch)
+      (uri (git-reference
+            (url "https://github.com/lsof-org/lsof")
+            (commit version)))
+      (file-name (git-file-name name version))
       (sha256
-       (base32 "18sh4hbl9jw2szkf0gvgan8g13f3g4c6s2q9h3zq5gsza9m99nn9"))))
+       (base32 "0yxv2jg6rnzys49lyrz9yjb4knamah4xvlqj596y6ix3vm4k3chp"))
+      (patches (search-patches "lsof-fatal-test-failures.patch"))))
    (build-system gnu-build-system)
-   (native-inputs `(("perl" ,perl)))
+   (native-inputs
+    `(("groff" ,groff)                  ; for soelim
+      ("perl" ,perl)))
    (arguments
     `(#:phases
       (modify-phases %standard-phases
-        (replace 'unpack
-          (lambda* (#:key source #:allow-other-keys)
-            (let ((unpack (assoc-ref %standard-phases 'unpack)))
-              (unpack #:source source)
-              (unpack #:source (car (find-files "." "\\.tar$"))))))
         (replace 'configure
           (lambda _
-            (setenv "LSOF_CC" "gcc")
+            (setenv "LSOF_CC" ,(cc-for-target))
             (setenv "LSOF_MAKE" "make")
 
             ;; By default, the makefile captures the output of 'uname -a'.
@@ -83,14 +68,13 @@
             (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 _
-            ;; In libc 2.28, the 'major' and 'minor' macros are provided by
-            ;; <sys/sysmacros.h> only so include it.
-            (substitute* "tests/LTlib.c"
-              (("#ifndef lint")
-               "#include <sys/sysmacros.h>\n\n#ifndef lint"))
-
             (substitute* "tests/Makefile"
               ;; Fails with ‘ERROR!!! client gethostbyaddr() failure’.
               (("(STDTST=.*) LTsock" _ prefix) prefix)
@@ -98,15 +82,16 @@
               (("(OPTTST=.*) LTnfs"  _ prefix) prefix))
             #t))
         (replace 'check
-          (lambda _
-            (with-directory-excursion "tests"
-              ;; Tests refuse to run on ‘unvalidated’ platforms.
-              (make-file-writable "TestDB")
-              (invoke "./Add2TestDB")
+          (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)))
+                ;; 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")))
diff --git a/gnu/packages/lua.scm b/gnu/packages/lua.scm
index 5479b891bd..b029400cb2 100644
--- a/gnu/packages/lua.scm
+++ b/gnu/packages/lua.scm
@@ -3,15 +3,16 @@
 ;;; Copyright © 2014 Raimon Grau <raimonster@gmail.com>
 ;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2014 Andreas Enge <andreas@enge.fr>
-;;; Copyright © 2016, 2017, 2020 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2017, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016, 2019 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2016 doncatnip <gnopap@gmail.com>
 ;;; Copyright © 2016, 2017, 2019 Clément Lassieur <clement@lassieur.org>
 ;;; Copyright © 2016 José Miguel Sánchez García <jmi2k@openmailbox.org>
-;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Fis Trivial <ybbs.daans@hotmail.com>
 ;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;; Copyright © 2020 Simon South <simon@simonsouth.net>
+;;; Copyright © 2020 Paul A. Patience <paul@apatience.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -64,13 +65,16 @@
     (build-system gnu-build-system)
     (inputs `(("readline" ,readline)))
     (arguments
-     '(#:modules ((guix build gnu-build-system)
+     `(#:modules ((guix build gnu-build-system)
                   (guix build utils)
                   (srfi srfi-1))
        #:test-target "test"
        #:make-flags
-       '("MYCFLAGS=-fPIC -DLUA_DL_DLOPEN"
-         "linux")
+       (list "MYCFLAGS=-fPIC -DLUA_DL_DLOPEN"
+             (string-append "CC=" ,(cc-for-target))
+             (string-append "SYSLIBS=-L" (assoc-ref %build-inputs "readline")
+                            "/lib")
+             "linux")
        #:phases
        (modify-phases %standard-phases
          (delete 'configure)
@@ -312,9 +316,8 @@ directory structure and file attributes.")
              (lua-api-version ,(version-major+minor (package-version lua))))
          (list "CC=gcc"
                "CFLAGS='-D HAVE_SYS_SYSCTL_H=0'" ; sys/sysctl.h is deprecated
-               (string-append "DESTDIR=" out)
-               (string-append "LUA_APIS=" lua-api-version)
-               "prefix="))
+               (string-append "prefix=" out)
+               (string-append "LUA_APIS=" lua-api-version)))
        #:phases
        (modify-phases %standard-phases
          (delete 'configure)
@@ -880,3 +883,238 @@ on numbers.")
      "Selene is a simple C++11 header-only library enabling seamless
  interoperability between C++ and Lua programming language.")
     (license license:zlib)))
+
+(define-public lua-resty-core
+  (package
+    (name "lua-resty-core")
+    (version "0.1.18")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/openresty/lua-resty-core")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1c58hykwpg5zqbyhrcb703pzwbkih409v3bh2gady6z2kj9q32dw"))))
+    (build-system trivial-build-system)
+    (arguments
+     `(#:modules ((guix build utils))
+       #:builder
+       (begin
+         (use-modules (guix build utils))
+         (let* ((luajit-major+minor ,(version-major+minor (package-version lua)))
+                (package-lua-resty (lambda (input output)
+                                     (mkdir-p (string-append output "/lib/lua"))
+                                     (copy-recursively (string-append input "/lib/resty")
+                                                       (string-append output "/lib/lua/resty"))
+                                     (copy-recursively (string-append input "/lib/ngx")
+                                                       (string-append output "/lib/ngx"))
+                                     (symlink (string-append output "/lib/lua/resty")
+                                              (string-append output "/lib/resty")))))
+           (package-lua-resty (assoc-ref %build-inputs "source")
+                              (assoc-ref %outputs "out")))
+         #t)))
+    (home-page "https://github.com/openresty/lua-resty-core")
+    (synopsis "Lua API for NGINX")
+    (description "This package provides a FFI-based Lua API for
+@code{ngx_http_lua_module} or @code{ngx_stream_lua_module}.")
+    (license license:bsd-2)))
+
+(define-public lua-resty-lrucache
+  (package
+    (name "lua-resty-lrucache")
+    (version "0.10")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/openresty/lua-resty-lrucache")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1bsc54v1rvxmkwg7a2c01p192lvw5g576f589is8fy1m1c6v4ap8"))))
+    (build-system trivial-build-system)
+    (arguments
+     `(#:modules ((guix build utils))
+       #:builder
+       (begin
+         (use-modules (guix build utils))
+         (let* ((luajit-major+minor ,(version-major+minor (package-version lua)))
+                (package-lua-resty (lambda (input output)
+                                     (mkdir-p (string-append output "/lib/lua/" luajit-major+minor))
+                                     (copy-recursively (string-append input "/lib/resty")
+                                                       (string-append output "/lib/lua/" luajit-major+minor  "/resty"))
+                                     (symlink (string-append output "/lib/lua/" luajit-major+minor "/resty")
+                                              (string-append output "/lib/resty")))))
+           (package-lua-resty (assoc-ref %build-inputs "source")
+                              (assoc-ref %outputs "out")))
+         #t)))
+    (home-page "https://github.com/openresty/lua-resty-lrucache")
+    (synopsis "Lua LRU cache based on the LuaJIT FFI")
+    (description
+     "This package provides Lua LRU cache based on the LuaJIT FFI.")
+    (license license:bsd-2)))
+
+(define-public lua-resty-signal
+  (package
+    (name "lua-resty-signal")
+    (version "0.02")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/openresty/lua-resty-signal")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "13y1pqn45y49mhqwywasfdsid46d0c33yi6mrnracbnmvyxz1cif"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f ;TODO: Run the test suite.
+       #:make-flags (list "CC=gcc"
+                          (string-append "PREFIX=" %output))
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (add-after 'install 'install-lua
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (use-modules (guix build utils))
+             (let* ((luajit-major+minor ,(version-major+minor (package-version lua)))
+                    (package-lua-resty (lambda (input output)
+                                         (mkdir-p (string-append output "/lib/lua/" luajit-major+minor))
+                                         (copy-recursively (string-append input "/lib/resty")
+                                                           (string-append output "/lib/lua/" luajit-major+minor  "/resty"))
+                                         (symlink (string-append output "/lib/lua/" luajit-major+minor "/resty")
+                                                  (string-append output "/lib/resty")))))
+               (package-lua-resty (assoc-ref inputs "source")
+                                  (assoc-ref outputs "out")))
+             #t)))))
+    (home-page "https://github.com/openresty/lua-resty-signal")
+    (synopsis "Lua library for killing or sending signals to Linux processes")
+    (description "This package provides Lua library for killing or sending
+signals to Linux processes.")
+    (license license:bsd-3)))
+
+(define-public lua-tablepool
+  (package
+    (name "lua-tablepool")
+    (version "0.01")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/openresty/lua-tablepool")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "03yjj3w6znvj6843prg84m0lkrn49l901f9hj9bgy3cj9s0awl6y"))))
+    (build-system trivial-build-system)
+    (arguments
+     `(#:modules ((guix build utils))
+       #:builder
+       (begin
+         (use-modules (guix build utils))
+         (let* ((luajit-major+minor ,(version-major+minor (package-version lua)))
+                (package-lua-resty (lambda (input output)
+                                     (mkdir-p (string-append output "/lib/lua/" luajit-major+minor))
+                                     (copy-recursively (string-append input "/lib")
+                                                       (string-append output "/lib")))))
+           (package-lua-resty (assoc-ref %build-inputs "source")
+                              (assoc-ref %outputs "out")))
+         #t)))
+    (home-page "https://github.com/openresty/lua-tablepool")
+    (synopsis "Lua table recycling pools for LuaJIT")
+    (description "This package provides Lua table recycling pools for LuaJIT.")
+    (license license:bsd-2)))
+
+(define-public lua-resty-shell
+  (package
+    (name "lua-resty-shell")
+    (version "0.03")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/openresty/lua-resty-shell")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1s6g04ip4hr97r2pd8ry3alq063604s9a3l0hn9nsidh81ps4dp7"))))
+    (build-system trivial-build-system)
+    (arguments
+     `(#:modules ((guix build utils))
+       #:builder
+       (begin
+         (use-modules (guix build utils))
+         (let* ((luajit-major+minor ,(version-major+minor (package-version lua)))
+                (package-lua-resty (lambda (input output)
+                                     (mkdir-p (string-append output "/lib/lua/" luajit-major+minor))
+                                     (copy-recursively (string-append input "/lib/resty")
+                                                       (string-append output "/lib/lua/" luajit-major+minor  "/resty"))
+                                     (symlink (string-append output "/lib/lua/" luajit-major+minor "/resty")
+                                              (string-append output "/lib/resty")))))
+           (package-lua-resty (assoc-ref %build-inputs "source")
+                              (assoc-ref %outputs "out")))
+         #t)))
+    (home-page "https://github.com/openresty/lua-resty-shell")
+    (synopsis "Lua module for nonblocking system shell command executions")
+    (description "This package provides Lua module for nonblocking system
+shell command executions.")
+    (license license:bsd-3)))
+
+(define-public fennel
+  (package
+    (name "fennel")
+    (version "0.8.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://git.sr.ht/~technomancy/fennel")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1jng33vmnk6mi37l3x2z0plng940jpj7kz1s493ki80z3mkaxjfg"))
+              (modules '((guix build utils)))
+              (snippet
+               '(begin
+                  (delete-file "fennelview.lua") #t))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
+       #:tests? #t      ; even on cross-build
+       #:test-target "test"
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (add-before 'build 'patch-lua-calls
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((lua (string-append (assoc-ref inputs "lua") "/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")
+                (string-append (assoc-ref inputs "lua") "/bin/lua")))
+             #t))
+         (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)))
+    (home-page "https://fennel-lang.org/")
+    (synopsis "Lisp that compiles to Lua")
+    (description
+     "Fennel is a programming language that brings together the speed,
+simplicity, and reach of Lua with the flexibility of a Lisp syntax and macro
+system.")
+    (license license:expat)))
diff --git a/gnu/packages/lxde.scm b/gnu/packages/lxde.scm
index a9e435cbfc..c5097076b1 100644
--- a/gnu/packages/lxde.scm
+++ b/gnu/packages/lxde.scm
@@ -164,7 +164,7 @@ or external monitor.")
 (define-public lxtask
   (package
     (name "lxtask")
-    (version "0.1.9")
+    (version "0.1.10")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://sourceforge/lxde/LXTask"
@@ -173,7 +173,7 @@ or external monitor.")
                                   "lxtask-" version ".tar.xz"))
               (sha256
                (base32
-                "0cv4hx5dg01hbyi5p10pl78n0a40xajpq4wx9c7886pkmpq8isj1"))))
+                "0b2fxg8jjjpk219gh7qa18g45365598nd2bq7rrq0bdvqjdxy5i2"))))
     (build-system gnu-build-system)
     (inputs `(("gtk+" ,gtk+-2)))
     (native-inputs `(("intltool"   ,intltool)
diff --git a/gnu/packages/lxqt.scm b/gnu/packages/lxqt.scm
index f445a7eb30..20efba17b7 100644
--- a/gnu/packages/lxqt.scm
+++ b/gnu/packages/lxqt.scm
@@ -591,7 +591,8 @@ of other programs.")
        ("qtsvg" ,qtsvg)
        ("qtx11extras" ,qtx11extras)
        ("solid" ,solid)
-       ("xcb-util" ,xcb-util)))
+       ("xcb-util" ,xcb-util)
+       ("xkeyboard-config" ,xkeyboard-config)))
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("lxqt-build-tools" ,lxqt-build-tools)
@@ -599,7 +600,8 @@ of other programs.")
     (propagated-inputs
      ;; Propagating KWINDOWSYSTEM so that the list of opened applications
      ;; shows up in lxqt-panel's taskbar plugin.
-     `(("kwindowsystem" ,kwindowsystem)))
+     `(("kwindowsystem" ,kwindowsystem)
+       ("lxmenu-data" ,lxmenu-data)))
     (arguments
      '(#:tests? #f                      ; no tests
        #:phases
@@ -618,7 +620,15 @@ of other programs.")
                (("\\$\\{LXQT_TRANSLATIONS_DIR\\}")
                 (string-append (assoc-ref outputs "out")
                                "/share/lxqt/translations")))
-             #t)))))
+             #t))
+         (add-after 'unpack 'set-xkeyboard-config-file-path
+                (lambda* (#:key inputs #:allow-other-keys)
+                  ;; Set the path to xkeyboard-config.
+                  (let ((xkb (assoc-ref inputs "xkeyboard-config")))
+                    (substitute* "plugin-kbindicator/src/x11/kbdlayout.cpp"
+                      (("/usr/share/X11/xkb/rules/evdev.xml")
+                       (string-append xkb "/share/X11/xkb/rules/evdev.xml")))
+                  #t))))))
     (home-page "https://lxqt.github.io")
     (synopsis "The LXQt desktop panel")
     (description "lxqt-panel represents the taskbar of LXQt.")
@@ -839,12 +849,16 @@ allows for launching applications or shutting down the system.")
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'patch-source
-           (lambda _
+           (lambda* (#:key outputs #:allow-other-keys)
              (substitute* '("autostart/CMakeLists.txt"
                             "config/CMakeLists.txt")
                (("DESTINATION \"\\$\\{LXQT_ETC_XDG_DIR\\}")
                 "DESTINATION \"etc/xdg"))
-             #t))
+             (let ((out (assoc-ref outputs "out")))
+               (substitute* '("xsession/lxqt.desktop.in")
+                 (("Exec=startlxqt") (string-append "Exec=" out "/bin/startlxqt"))
+                 (("TryExec=lxqt-session") (string-append "TryExec=" out "/bin/startlxqt")))
+               #t)))
          ;; add write permission to lxqt-rc.xml file which is stored as read-only in store
          (add-after 'unpack 'patch-openbox-permission
            (lambda _
@@ -862,7 +876,14 @@ allows for launching applications or shutting down the system.")
                (("\\$\\{LXQT_TRANSLATIONS_DIR\\}")
                 (string-append (assoc-ref outputs "out")
                                "/share/lxqt/translations")))
-             #t)))))
+             #t))
+         (add-after 'install 'wrap-program
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (wrap-program (string-append out "/bin/startlxqt")
+                 `("XDG_CONFIG_DIRS" ":" suffix ("/run/current-system/profile/share"
+                                                 "/run/current-system/profile/share/pcmanfm-qt")))
+               #t))))))
     (home-page "https://lxqt.github.io")
     (synopsis "Session manager for LXQt")
     (description "lxqt-session provides the standard session manager
@@ -1011,6 +1032,9 @@ components to build desktop file managers which belongs to LXDE.")
              (substitute* '("autostart/CMakeLists.txt")
                (("DESTINATION \"\\$\\{LXQT_ETC_XDG_DIR\\}")
                 "DESTINATION \"etc/xdg"))
+             (substitute* '("config/pcmanfm-qt/lxqt/settings.conf.in")
+               (("@LXQT_SHARE_DIR@")
+                "/run/current-system/profile/share/lxqt" ))
              #t)))))
     (home-page "https://lxqt.github.io")
     (synopsis "File manager and desktop icon manager")
@@ -1306,7 +1330,7 @@ like @command{tar} and @command{zip}.")
         (origin
           (method git-fetch)
           (uri (git-reference
-            (url (string-append "https://github.com/lxqt/" name ".git"))
+            (url (string-append "https://github.com/lxqt/" name))
             (commit commit)))
           (file-name (git-file-name name version))
           (sha256 (base32 "0br4bxfrl8k7lq84aq4grznlk8xzzjgkmd19bf9mwjr0a87gg72v"))))
@@ -1370,6 +1394,7 @@ desktop.")
        ("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)
diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm
index 163ebded07..920b5d82ed 100644
--- a/gnu/packages/machine-learning.scm
+++ b/gnu/packages/machine-learning.scm
@@ -16,6 +16,7 @@
 ;;; Copyright © 2020 Konrad Hinsen <konrad.hinsen@fastmail.net>
 ;;; Copyright © 2020 Edouard Klein <edk@beaver-labs.com>
 ;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
+;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -64,6 +65,7 @@
   #:use-module (gnu packages gstreamer)
   #:use-module (gnu packages image)
   #:use-module (gnu packages linux)
+  #:use-module (gnu packages llvm)
   #:use-module (gnu packages maths)
   #:use-module (gnu packages mpi)
   #:use-module (gnu packages ocaml)
@@ -330,8 +332,6 @@ networks) based on simulation of (stochastic) flow in graphs.")
        (modify-phases %standard-phases
          (add-before 'configure 'patch-paths
            (lambda _
-             (substitute* "configure"
-               (("/bin/sh") (which "sh")))
              (substitute* "setup.ml"
                (("LDFLAGS=-fPIC")
                 (string-append "LDFLAGS=-fPIC\"; \"SHELL=" (which "sh")))
@@ -582,7 +582,7 @@ in terms of new algorithms.")
 (define-public python-onnx
   (package
     (name "python-onnx")
-    (version "1.7.0")
+    (version "1.8.0")
     (source
      (origin
        (method url-fetch)
@@ -591,7 +591,7 @@ in terms of new algorithms.")
        ;; to use googletest from Guix and enable tests by default.
        (patches (search-patches "python-onnx-use-system-googletest.patch"))
        (sha256
-        (base32 "0j6rgfbhsw3a8id8pyg18y93k68lbjbj1kq6qia36h69f6pvlyjy"))))
+        (base32 "0365zkikq6v3cl5hh2daa5z1alhij8xpn8rmlcny340jrv9pyy2z"))))
     (build-system python-build-system)
     (native-inputs
      `(("cmake" ,cmake)
@@ -660,42 +660,6 @@ synchronization, thread-safety, concurrent data structures, and non-blocking
 I/O.")
     (license license:asl2.0)))
 
-(define-public r-adaptivesparsity
-  (package
-    (name "r-adaptivesparsity")
-    (version "1.6")
-    (source (origin
-              (method url-fetch)
-              (uri (cran-uri "AdaptiveSparsity" version))
-              (sha256
-               (base32
-                "0imr5m8mll9j6n4icsv6z9rl5kbnwsp9wvzrg7n90nnmcxq2cz91"))))
-    (properties
-     `((upstream-name . "AdaptiveSparsity")))
-    (build-system r-build-system)
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'link-against-armadillo
-           (lambda _
-             (substitute* "src/Makevars"
-               (("PKG_LIBS=" prefix)
-                (string-append prefix "-larmadillo"))))))))
-    (propagated-inputs
-     `(("r-mass" ,r-mass)
-       ("r-matrix" ,r-matrix)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rcpparmadillo" ,r-rcpparmadillo)))
-    (inputs
-     `(("armadillo" ,armadillo)))
-    (home-page "https://cran.r-project.org/web/packages/AdaptiveSparsity")
-    (synopsis "Adaptive sparsity models")
-    (description
-     "This package implements the Figueiredo machine learning algorithm for
-adaptive sparsity and the Wong algorithm for adaptively sparse gaussian
-geometric models.")
-    (license license:lgpl3+)))
-
 (define-public gemmlowp-for-tensorflow
   ;; The commit hash is taken from "tensorflow/workspace.bzl".
   (let ((commit "38ebac7b059e84692f53e5938f97a9943c120d98")
@@ -773,7 +737,8 @@ than 8 bits, and at the end only some significant 8 bits are kept.")
                   #t))))
     (build-system cmake-build-system)
     (arguments
-     `(#:phases
+     `(#:configure-flags '("-DBUILD_SHARED_LIBS=ON")
+       #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'disable-asserts
            (lambda _
@@ -810,12 +775,7 @@ than 8 bits, and at the end only some significant 8 bits are kept.")
                (with-directory-excursion test-dir
                  (invoke "make" "-j" (number->string (parallel-job-count)))
                  (invoke "./dtest" "--runall"))
-               #t)))
-         (add-after 'install 'delete-static-library
-           (lambda* (#:key outputs #:allow-other-keys)
-             (delete-file (string-append (assoc-ref outputs "out")
-                                         "/lib/libdlib.a"))
-             #t)))))
+               #t))))))
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ;; For tests.
@@ -910,6 +870,77 @@ data analysis.")
                  (base32
                   "08zbzi8yx5wdlxfx9jap61vg1malc9ajf576w7a0liv6jvvrxlpj")))))))
 
+(define-public python-pynndescent
+  (package
+    (name "python-pynndescent")
+    (version "0.4.8")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "pynndescent" version))
+       (sha256
+        (base32 "0li1fclif50v6xrq7wh3lif9vv5jpj7xhrb0z6g89wwjnp9b9833"))))
+    (build-system python-build-system)
+    (native-inputs
+     `(("python-nose" ,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)))
+    (home-page "https://github.com/lmcinnes/pynndescent")
+    (synopsis "Nearest neighbor descent for approximate nearest neighbors")
+    (description
+     "PyNNDescent provides a Python implementation of Nearest Neighbor Descent
+for k-neighbor-graph construction and approximate nearest neighbor search.")
+    (license license:bsd-2)))
+
+(define-public python-opentsne
+  (package
+    (name "python-opentsne")
+    (version "0.4.4")
+    (source
+     (origin
+       ;; No tests in the PyPI tarball.
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/pavlin-policar/openTSNE")
+             (commit (string-append "v" version))))
+       (file-name (string-append name "-" version "-checkout"))
+       (sha256
+        (base32 "08wamsssmyf6511cbmglm67dp48i6xazs89m1cskdk219v90bc76"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         ;; Benchmarks require the 'macosko2015' data files.
+         (add-after 'unpack 'delete-benchmark
+           (lambda _
+             (delete-file-recursively "benchmarks")
+             #t))
+         ;; Numba needs a writable dir to cache functions.
+         (add-before 'check 'set-numba-cache-dir
+           (lambda _
+             (setenv "NUMBA_CACHE_DIR" "/tmp")
+             #t)))))
+    (native-inputs
+     `(("python-cython" ,python-cython)))
+    (inputs
+     `(("fftw" ,fftw)))
+    (propagated-inputs
+     `(("python-numpy" ,python-numpy)
+       ("python-pynndescent" ,python-pynndescent)
+       ("python-scikit-learn" ,python-scikit-learn)
+       ("python-scipy" ,python-scipy)))
+    (home-page "https://github.com/pavlin-policar/openTSNE")
+    (synopsis "Extensible, parallel implementations of t-SNE")
+    (description
+     "This is a modular Python implementation of t-Distributed Stochastic
+Neighbor Embedding (t-SNE), a popular dimensionality-reduction algorithm for
+visualizing high-dimensional data sets.")
+    (license license:bsd-3)))
+
 (define-public python-scikit-rebate
   (package
     (name "python-scikit-rebate")
@@ -1053,7 +1084,16 @@ the following advantages:
        (modify-phases %standard-phases
          (add-after 'unpack 'make-files-writable
            (lambda _
-             (for-each make-file-writable (find-files "." ".*")) #t)))))
+             (for-each make-file-writable (find-files "." ".*")) #t))
+         (add-after 'install 'install-more-headers
+           (lambda* (#:key outputs #:allow-other-keys)
+             (for-each
+               (lambda (file)
+                 (install-file file (string-append
+                                      (assoc-ref outputs "out")
+                                      "/include/vowpalwabbit")))
+               (find-files "vowpalwabbit" "\\.h$"))
+             #t)))))
     (build-system gnu-build-system)
     (home-page "https://github.com/JohnLangford/vowpal_wabbit")
     (synopsis "Fast machine learning library for online learning")
@@ -1963,13 +2003,14 @@ with image data, text data, and sequence data.")
              ;; 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")
-
-             (setenv "PYTHONPATH"
-                     (string-append (getcwd) "/build/lib:"
-                                    (getenv "PYTHONPATH")))
-             (invoke "py.test" "-v"
-                     "-p" "no:cacheprovider"
-                     "--ignore" "keras/utils"))))))
+             ;; 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"))))))
     (propagated-inputs
      `(("python-h5py" ,python-h5py)
        ("python-keras-applications" ,python-keras-applications)
diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index f56e9b307c..b3927bbafe 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -1,6 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
-;;; Copyright © 2014, 2015, 2017 Mark H Weaver <mhw@netris.org>
+;;; Copyright © 2014, 2015, 2017, 2020 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net>
 ;;; Copyright © 2014 Sou Bunnbu <iyzsong@gmail.com>
 ;;; Copyright © 2014, 2019 Julien Lepiller <julien@lepiller.eu>
@@ -22,18 +22,24 @@
 ;;; Copyright © 2016, 2018 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
 ;;; Copyright © 2017 Kyle Meyer <kyle@kyleam.com>
-;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2017, 2018, 2020 Rene Saavedra <pacoon@protonmail.com>
-;;; Copyright © 2018, 2019, 2020 Pierre Langlois <pierre.langlois@gmx.com>
+;;; Copyright © 2018, 2019, 2020, 2021 Pierre Langlois <pierre.langlois@gmx.com>
 ;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com>
 ;;; Copyright © 2018 Gábor Boskovits <boskovits@gmail.com>
 ;;; Copyright © 2018, 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
-;;; Copyright © 2019 Tanguy Le Carrour <tanguy@bioneland.org>
+;;; Copyright © 2019, 2020 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>
 ;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
+;;; Copyright © 2020 Alexey Abramov <levenson@mmer.org>
+;;; Copyright © 2020 Tim Gesthuizen <tim.gesthuizen@yahoo.de>
+;;; Copyright © 2020 Alexandru-Sergiu Marton <brown121407@posteo.ro>
+;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
+;;; Copyright © 2020 B. Wilson <elaexuotee@wilsonb.com>
+;;; Copyright © 2020 divoplade <d@divoplade.fr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -59,6 +65,7 @@
   #:use-module (gnu packages base)
   #:use-module (gnu packages bash)
   #:use-module (gnu packages bison)
+  #:use-module (gnu packages boost)
   #:use-module (gnu packages calendar)
   #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
@@ -74,6 +81,7 @@
   #:use-module (gnu packages documentation)
   #:use-module (gnu packages emacs)
   #:use-module (gnu packages enchant)
+  #:use-module (gnu packages file)
   #:use-module (gnu packages gdb)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages ghostscript)
@@ -87,7 +95,9 @@
   #:use-module (gnu packages guile-xyz)
   #:use-module (gnu packages flex)
   #:use-module (gnu packages haskell-xyz)
+  #:use-module (gnu packages icu4c)
   #:use-module (gnu packages kerberos)
+  #:use-module (gnu packages language)
   #:use-module (gnu packages libcanberra)
   #:use-module (gnu packages libevent)
   #:use-module (gnu packages libidn)
@@ -100,6 +110,7 @@
   #:use-module (gnu packages man)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages networking)
+  #:use-module (gnu packages ninja)
   #:use-module (gnu packages openldap)
   #:use-module (gnu packages onc-rpc)
   #:use-module (gnu packages pcre)
@@ -107,11 +118,14 @@
   #:use-module (gnu packages perl-check)
   #:use-module (gnu packages perl-web)
   #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages protobuf)
   #:use-module (gnu packages python)
   #: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 ragel)
+  #:use-module (gnu packages rdf)
   #:use-module (gnu packages readline)
   #:use-module (gnu packages ruby)
   #:use-module (gnu packages search)
@@ -135,7 +149,10 @@
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix git-download)
+  #:use-module (guix svn-download)
   #:use-module (guix utils)
+  #: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 guile)
   #:use-module (guix build-system perl)
@@ -185,14 +202,17 @@ example, modify the message headers or body, or encrypt or sign the message.")
 (define-public mailutils
   (package
     (name "mailutils")
-    (version "3.9")
+    (version "3.10")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://gnu/mailutils/mailutils-"
                                  version ".tar.xz"))
              (sha256
               (base32
-               "1g1xf2lal04nsnf1iym9n9n0wxjpqbcr9nysxpm98v4pniinqwsz"))))
+               "17smrxjdgbbzbzakik30vj46q4iib85ksqhb82jr4vjp57akszh9"))
+             (patches
+              ;; Fixes https://issues.guix.gnu.org/43088.
+              (search-patches "mailutils-fix-uninitialized-variable.patch"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
@@ -231,6 +251,13 @@ example, modify the message headers or body, or encrypt or sign the message.")
                (("\\$\\(SHELL\\) \\$\\(TESTSUITE\\)" all)
                 (string-append "-" all)))
 
+             ;; XXX: The ‘moderator: program discard’ test does not specify
+             ;; an explicit From: but does expect an exact match.  But why are
+             ;; all other tests unaffected?
+             (substitute* "sieve/tests/testsuite"
+               (("gray@")
+                "nixbld@"))
+
              ;; 'frm' tests expect write access to $HOME.
              (setenv "HOME" (getcwd))
 
@@ -383,7 +410,7 @@ to run without any changes.")
 (define-public fetchmail
   (package
     (name "fetchmail")
-    (version "6.4.8")
+    (version "6.4.14")
     (source
      (origin
        (method url-fetch)
@@ -391,7 +418,7 @@ to run without any changes.")
                            (version-major+minor version) "/"
                            "fetchmail-" version ".tar.xz"))
        (sha256
-        (base32 "1g893dr3982vrqzxybmflnqfmd1q6yipd9krvxn0avhlrrp97k96"))))
+        (base32 "1jxxb3qyrh7118fwqa3bhirjh97j2w8r71s8vcb6vp3w1wwhfis2"))))
     (build-system gnu-build-system)
     (inputs
      `(("openssl" ,openssl)))
@@ -418,7 +445,7 @@ aliasing facilities to work just as they would on normal mail.")
 (define-public mutt
   (package
     (name "mutt")
-    (version "1.14.6")
+    (version "2.0.5")
     (source (origin
              (method url-fetch)
              (uri (list
@@ -428,7 +455,7 @@ aliasing facilities to work just as they would on normal mail.")
                                    version ".tar.gz")))
              (sha256
               (base32
-               "0i0q6vwhnb1grimsrpmz8maw255rh9k0laijzxkry6xqa80jm5s7"))
+               "0k80s27sf7djb7zxj81ihksr8jkr71mfaa8976fzh41i1pn5l7g2"))
              (patches (search-patches "mutt-store-references.patch"))))
     (build-system gnu-build-system)
     (inputs
@@ -465,7 +492,7 @@ operating systems.")
 (define-public neomutt
   (package
     (name "neomutt")
-    (version "20200313")
+    (version "20201127")
     (source
      (origin
        (method git-fetch)
@@ -474,7 +501,7 @@ operating systems.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1k4k07l6h5krc3fx928qvdq3ssw9fxn95aj7k885xlckd2i1lnb5"))))
+        (base32 "1yhpz591jhcjpwllgppwf7vl7z2rnaqfphsvqd1sihd9k4lwch06"))))
     (build-system gnu-build-system)
     (inputs
      `(("cyrus-sasl" ,cyrus-sasl)
@@ -497,7 +524,19 @@ operating systems.")
        ("docbook-xsl" ,docbook-xsl)
        ("docbook-xml" ,docbook-xml-4.2)
        ("w3m" ,w3m)
-       ("tcl" ,tcl)))
+       ("tcl" ,tcl)
+
+       ;; Test file data for the unit tests included in the neomutt source.
+       ("neomutt-test-files"
+        ,(let ((commit "8629adab700a75c54e8e28bf05ad092503a98f75"))
+           (origin
+             (method git-fetch)
+             (uri (git-reference
+                   (url "https://github.com/neomutt/neomutt-test-files")
+                   (commit commit)))
+             (file-name (git-file-name "neomutt-test-files" commit))
+             (sha256
+              (base32 "1ci04nqkab9mh60zzm66sd6mhsr6lya8wp92njpbvafc86vvwdlr")))))))
     (arguments
      `(#:test-target "test"
        #:configure-flags
@@ -548,7 +587,14 @@ operating systems.")
                (setenv "CONFIG_SHELL" bash)
                (apply invoke bash
                       (string-append (getcwd) "/configure")
-                      flags)))))))
+                      flags))))
+         (add-before 'check 'prepare-test-files
+           (lambda* (#:key inputs #:allow-other-keys)
+             (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))))))
     (home-page "https://neomutt.org/")
     (synopsis "Command-line mail reader based on Mutt")
     (description
@@ -571,12 +617,15 @@ It adds a large amount of new and improved features to mutt.")
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
-       ("gnupg" ,gnupg)))               ; for tests only
+       ("gnupg" ,gnupg)                 ; for tests only
+       ("gobject-introspection" ,gobject-introspection)))
     (inputs `(("glib" ,glib)
               ("gpgme" ,gpgme)
               ("zlib" ,zlib)))
     (arguments
-     `(#:phases
+     `(#:configure-flags
+         (list "--enable-introspection=yes")
+       #:phases
        (modify-phases %standard-phases
          (add-after
           'unpack 'patch-paths-in-tests
@@ -615,6 +664,267 @@ Extension (MIME).")
                (base32
                 "0slzlzcr3h8jikpz5a5amqd0csqh2m40gdk910ws2hnaf5m6hjbi"))))))
 
+(define-public altermime
+  (package
+    (name "altermime")
+    (version "0.3.11")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://pldaniels.com/altermime/altermime-"
+                                  version ".tar.gz"))
+              (sha256
+               (base32
+                "15zxg6spcmd35r6xbidq2fgcg2nzyv1sbbqds08lzll70mqx4pj7"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:make-flags (list "CC=gcc"
+                          (string-append "PREFIX=" (assoc-ref %outputs "out")))
+       #:tests? #f ; there are none
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (add-after 'unpack 'fix-bugs
+           (lambda _
+             (substitute* "MIME_headers.c"
+               (("hinfo->filename, sizeof\\(hinfo->name\\)")
+                "hinfo->filename, sizeof(hinfo->filename)")
+               (("memset\\(hinfo->defects, 0, _MIMEH_DEFECT_ARRAY_SIZE\\);")
+                "memset(hinfo->defects, 0, sizeof(hinfo->defects));"))
+             (substitute* "pldstr.c"
+               (("if \\(\\(st->start\\)&&\\(st->start != '\\\\0'\\)\\)")
+                "if ((st->start)&&(*st->start != '\\0'))"))
+             (substitute* "qpe.c"
+               (("if \\(lineend != '\\\\0'\\)")
+                "if (*lineend != '\\0')"))
+             #t))
+         (add-after 'unpack 'install-to-prefix
+           (lambda _
+             (substitute* "Makefile"
+               (("/usr/local") "${PREFIX}")
+               (("cp altermime.*") "install -D -t ${PREFIX}/bin altermime\n"))
+             #t))
+         (add-after 'unpack 'disable-Werror
+           (lambda _
+             (substitute* "Makefile"
+               (("-Werror") ""))
+             #t)))))
+    (home-page "https://pldaniels.com/altermime/")
+    (synopsis "Modify MIME-encoded messages")
+    (description
+     "alterMIME is a small program which is used to alter your mime-encoded
+mailpack.  What can alterMIME do?
+
+@enumerate
+@item Insert disclaimers,
+@item insert arbitrary X-headers,
+@item modify existing headers,
+@item remove attachments based on filename or content-type,
+@item replace attachments based on filename.
+@end enumerate
+.")
+    ;; MIME_headers.c is distributed under BSD-3; the rest of the code is
+    ;; published under the alterMIME license.
+    (license (list (license:non-copyleft "file://LICENSE")
+                   license:bsd-3))))
+
+(define-public astroid
+  (package
+    (name "astroid")
+    (version "0.15")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/astroidmail/astroid")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "11cxbva9ni98gii59xmbxh4c6idcg3mg0pgdsp1c3j0yg7ix0lj3"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin
+           ;; https://github.com/astroidmail/astroid/pull/685
+           (substitute* "tests/test_composed_message.cc"
+             (("\\\\n\\.\\.\\.") "\\n...\\n"))
+           #t))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:modules ((guix build cmake-build-system)
+                  ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
+                  (guix build utils)
+                  (ice-9 match))
+       #:imported-modules ((guix build glib-or-gtk-build-system)
+                           ,@%cmake-build-system-modules)
+       #:configure-flags (list "-GNinja")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'skip-markdown-test
+           ;; This test relies on the plugins and the test suite
+           ;; cannot find the Astroid module.
+           ;;  gi.require_version ('Astroid', '0.2')
+           ;; ValueError: Namespace Astroid not available
+           (lambda _
+             (substitute* "tests/CMakeLists.txt"
+               ((".*markdown.*") ""))
+             #t))
+         (replace 'build
+           (lambda _
+             (invoke "ninja" "-j" (number->string (parallel-job-count)))))
+         (add-before 'check 'start-xserver
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((xorg-server (assoc-ref inputs "xorg-server")))
+               (setenv "HOME" (getcwd))
+               (system (format #f "~a/bin/Xvfb :1 &" xorg-server))
+               (setenv "DISPLAY" ":1")
+               #t)))
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (setenv "CTEST_OUTPUT_ON_FAILURE" "1")
+               (invoke "ctest" "."))
+             #t))
+         (replace 'install
+           (lambda _
+             (invoke "ninja" "install")))
+         (add-after 'install 'wrap-with-GI_TYPELIB_PATH
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out"))
+                   (paths (map (match-lambda
+                                 ((outputs . directory)
+                                  (let ((girepodir (string-append
+                                                    directory
+                                                    "/lib/girepository-1.0")))
+                                    (if (file-exists? girepodir)
+                                        girepodir
+                                        #f))))
+                               inputs)))
+               (wrap-program (string-append out "/bin/astroid")
+                 `("GI_TYPELIB_PATH" ":" prefix ,(filter identity paths))))
+             #t))
+         (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)))
+    (inputs
+     `(("boost" ,boost)
+       ("gmime" ,gmime)
+       ("gobject-introspection" ,gobject-introspection) ; it is referenced
+       ("gtkmm" ,gtkmm)
+       ("libpeas" ,libpeas)
+       ("libsass" ,libsass)
+       ("notmuch" ,notmuch)
+       ("protobuf" ,protobuf)
+       ("python" ,python-wrapper)
+       ("python-pygobject" ,python-pygobject)
+       ("webkitgtk" ,webkitgtk)))
+    (propagated-inputs
+     `(("adwaita-icon-theme" ,adwaita-icon-theme))) ; Required for the thread view
+    (home-page "https://astroidmail.github.io/")
+    (synopsis "GTK frontend to the notmuch mail system")
+    (description
+     "Astroid is a lightweight and fast Mail User Agent that provides a
+graphical interface to searching, display and composing email, organized in
+thread and tags.  Astroid uses the notmuch backend for searches through tons of
+email.  Astroid searches, displays and compose emails — and relies on other
+programs for fetching, syncing and sending email.")
+    (license (list license:gpl3+        ; 'this program'
+                   license:lgpl2.1+)))) ; code from geary, gmime
+
+(define-public ripmime
+  ;; Upstream does not tag or otherwise provide any releases (only a version
+  ;; number in the source)
+  (let ((commit "a556ffe08d620602475c976732e8e1a82f3169e9")
+        (revision "1"))
+    (package
+      (name "ripmime")
+      (version (git-version "1.4.0.10" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/inflex/ripMIME")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "1z8ar8flvkd9q3ax4x28sj5pyq8ykk5pq249y967lj2406lxparh"))))
+      (build-system gnu-build-system)
+      (arguments
+       `(#:phases
+         (modify-phases %standard-phases
+           ;; Source has no configure script
+           (delete 'configure)
+           ;; Buildcodes make the build non-reproducible; remove them
+           (add-after 'unpack 'strip-buildcodes
+             (lambda _
+               (substitute* "generate-buildcodes.sh"
+                 (("`date \\+%s`") "0")
+                 (("`date`") "0")
+                 (("`uname -a`") "Guix"))
+               #t))
+           ;; https://github.com/inflex/ripMIME/pull/16 makes 'mkdir-p-bin-man unnecessary
+           (add-before 'install 'mkdir-p-bin-man
+             (lambda _
+               (mkdir-p (string-append (assoc-ref %outputs "out") "/bin"))
+               (mkdir-p (string-append (assoc-ref %outputs "out") "/man"))
+               #t)))
+         ;; Makefile has no tests
+         #:tests? #f
+         #:make-flags (list (string-append "LOCATION=" (assoc-ref %outputs "out"))
+                            "CC=gcc")))
+      (synopsis "Extract attachments from MIME-encoded email")
+      (description
+       "ripMIME is a small program to extract the attached files out of a
+MIME-encoded email package.")
+      (home-page "https://github.com/inflex/ripMIME")
+      (license license:bsd-3))))
+
+(define-public mailcap
+  (let* ((version "2.1.49")
+         (tag ;; mailcap tags their releases like this: rMajor-minor-patch
+          (string-append "r" (string-join (string-split version #\.) "-"))))
+    (package
+      (name "mailcap")
+      (version version)
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://pagure.io/mailcap.git")
+               (commit tag)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "0ck1fw6gqn51phcfakhfpfq1yziv3gnmgjvswzhj9x0p162n6alj"))))
+      (build-system gnu-build-system)
+      (arguments
+       '(#:phases
+         (modify-phases %standard-phases
+           (delete 'configure)
+           (add-before 'install 'set-dest-dir
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let ((out (assoc-ref outputs "out")))
+                 (setenv "DESTDIR" out)
+                 (substitute* "Makefile"
+                   (("/usr") ""))       ; This allows the man page to install.
+                 #t))))))
+      (native-inputs
+       `(("python" ,python)))           ; for tests
+      (synopsis "MIME type associations for file types")
+      (description
+       "This package provides MIME type associations for file types.")
+      (home-page "https://pagure.io/mailcap")
+      (license (list license:expat              ; mailcap.5
+                     license:public-domain))))) ; mailcap and mime.types
+
 (define-public bogofilter
   (package
     (name "bogofilter")
@@ -650,7 +960,7 @@ and corrections.  It is based on a Bayesian filter.")
 (define-public offlineimap
   (package
     (name "offlineimap")
-    (version "7.2.4")
+    (version "7.3.3")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -659,12 +969,14 @@ and corrections.  It is based on a Bayesian filter.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0h5q5nk2p2vx86w6rrbs7v70h81dpqqr68x6l3klzl3m0yj9agb1"))))
+                "1gg8ry67i20qapj4z20am9bm67m2q28kixcj7ja75m897vhzarnq"))))
     (build-system python-build-system)
     (native-inputs
      `(("asciidoc" ,asciidoc)))
-    (inputs `(("python2-pysqlite" ,python2-pysqlite)
-              ("python2-six" ,python2-six)))
+    (inputs
+     `(("python2-pysqlite" ,python2-pysqlite)
+       ("python2-rfc6555" ,python2-rfc6555)
+       ("python2-six" ,python2-six)))
     (arguments
      ;; The setup.py script expects python-2.
      `(#:python ,python-2
@@ -747,7 +1059,7 @@ security functionality including PGP, S/MIME, SSH, and SSL.")
 (define-public mu
   (package
     (name "mu")
-    (version "1.4.13")
+    (version "1.4.14")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/djcb/mu/releases/"
@@ -755,7 +1067,7 @@ security functionality including PGP, S/MIME, SSH, and SSL.")
                                   "mu-" version ".tar.xz"))
               (sha256
                (base32
-                "13kfpr77qrnp3i5qnb5zd03frd3fdviggnl50973gdk0hr7m0smj"))))
+                "1fk0zyxajwyzp1f8yn7imbqq77s2w5cab5m9jla4zrybwkdi0r6z"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
@@ -831,38 +1143,59 @@ attachments, create new maildirs, and so on.")
 (define-public alot
   (package
     (name "alot")
-    (version "0.5.1")
+    (version "0.9.1")
     (source (origin
-              (method url-fetch)
+              (method git-fetch)
               ;; package author intends on distributing via github rather
               ;; than pypi:
               ;; https://github.com/pazz/alot/issues/877#issuecomment-230173331
-              (uri (string-append "https://github.com/pazz/alot/archive/"
-                                  version ".tar.gz"))
-              (file-name (string-append "alot-" version ".tar.gz"))
+              (uri (git-reference
+                     (url "https://github.com/pazz/alot")
+                     (commit version)))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "0wax30hjzmkqfml7hig1dqw1v1y63yc0cgbzl96x58b9h2ggqx3a"))))
+                "0s94m17yph1gq9f2svipb3bbwbw1s4j3zf2xkg5h91006v8286r6"))))
     (build-system python-build-system)
     (arguments
-     `(;; python 3 is currently unsupported, more info:
-       ;; https://github.com/pazz/alot/blob/master/docs/source/faq.rst
-       #:python ,python-2))
+     `(#:phases
+       (modify-phases %standard-phases
+        (add-before 'check 'fix-tests
+          (lambda* (#:key inputs #:allow-other-keys)
+            (let ((gnupg (assoc-ref inputs "gnupg")))
+              (substitute* "tests/test_crypto.py"
+                (("gpg2") (string-append gnupg "/bin/gpg")))
+              #t)))
+        (add-before 'check 'disable-failing-tests
+         ;; FIXME: Investigate why these tests are failing.
+         (lambda _
+          (substitute* "tests/test_helper.py"
+            (("def test_env_set") "def _test_env_set"))
+          (substitute* "tests/commands/test_global.py"
+            (("def test_no_spawn_no_stdin_attached")
+             "def _test_no_spawn_no_stdin_attached"))
+          #t)))))
     (native-inputs
-     `(("python2-mock" ,python2-mock)))
+     `(("procps" ,procps)
+       ("python-mock" ,python-mock)))
     (inputs
-     `(("python2-magic" ,python2-magic)
-       ("python2-configobj" ,python2-configobj)
-       ("python2-twisted" ,python2-twisted)
-       ("python2-urwid" ,python2-urwid)
-       ("python2-urwidtrees" ,python2-urwidtrees)
-       ("python2-pygpgme" ,python2-pygpgme)
-       ("python2-notmuch" ,python2-notmuch)))
+     `(("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)))
     (home-page "https://github.com/pazz/alot")
-    (synopsis "Command-line MUA using @code{notmuch}")
+    (synopsis "Command-line MUA using Notmuch")
     (description
-     "Alot is an experimental terminal mail user agent (@dfn{MUA}) based on
-@code{notmuch} mail.  It is written in Python using the @code{urwid} toolkit.")
+     "Alot is a terminal-based mail user agent based on the Notmuch mail
+indexer.  It is written in Python using the @code{urwid} toolkit and features
+a modular and command prompt driven interface to provide a full mail user
+agent (@dfn{MUA}) experience as an alternative to the Emacs mode shipped with
+Notmuch.")
     (license license:gpl3+)))
 
 (define-public notifymuch
@@ -916,14 +1249,14 @@ invoking @command{notifymuch} from the post-new hook.")
 (define-public notmuch
   (package
     (name "notmuch")
-    (version "0.29.3")
+    (version "0.31.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://notmuchmail.org/releases/notmuch-"
                                   version ".tar.xz"))
               (sha256
                (base32
-                "0dfwa38vgnxk9cvvpza66szjgp8lir6iz6yy0cry9593lywh9xym"))))
+                "1jisflxdly1nlyy17212ch3hk96dns4j9f5552jz724gs2p42h28"))))
     (build-system gnu-build-system)
     (arguments
      `(#:modules ((guix build gnu-build-system)
@@ -953,6 +1286,13 @@ invoking @command{notifymuch} from the post-new hook.")
                                 (string-append "--prefix=" out)
                                 (string-append "--emacslispdir=" elisp)
                                 (string-append "--emacsetcdir=" elisp)))))
+                  (add-before 'check 'disable-failing-tests
+                    ;; FIXME: Investigate why these tests are failing,
+                    ;; and try removing this for notmuch versions > 0.31.
+                    (lambda _
+                      (substitute* "test/T356-protected-headers.sh"
+                        (("\\$NOTMUCH_GMIME_X509_CERT_VALIDITY") "0"))
+                      #t))
                   (add-before 'check 'prepare-test-environment
                     (lambda _
                       (setenv "TEST_CC" "gcc")
@@ -1066,17 +1406,17 @@ and search library.")
 (define-public muchsync
   (package
     (name "muchsync")
-    (version "5")
+    (version "6")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "http://www.muchsync.org/src/"
                            "muchsync-" version ".tar.gz"))
        (sha256
-        (base32 "1k2m44pj5i6vfhp9icdqs42chsp208llanc666p3d9nww8ngq2lb"))))
+        (base32 "1s799kx16nm5ry1fcqcc0grgxrwnnp4cnzd0hzwbkvc5v2sf6g8b"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("ghc-pandoc" ,ghc-pandoc)
+     `(("pandoc" ,pandoc)
        ("pkg-config" ,pkg-config)))
     (inputs
      `(("libcrypto" ,openssl)
@@ -1093,7 +1433,7 @@ broadband.  Muchsync supports arbitrary pairwise synchronization among
 replicas.  A version-vector-based algorithm allows it to exchange only the
 minimum information necessary to bring replicas up to date regardless of which
 pairs have previously synchronized.")
-    (license license:gpl2+)))
+    (license license:gpl2+)))           ; with OpenSSL libcrypto exception
 
 (define-public getmail
   (package
@@ -1124,15 +1464,15 @@ useful features.")
 (define-public libetpan
   (package
     (name "libetpan")
-    (version "1.9.3")
+    (version "1.9.4")
     (source (origin
              (method git-fetch)
              (uri (git-reference
-                   (url  "https://github.com/dinhviethoa/libetpan.git")
+                   (url  "https://github.com/dinhviethoa/libetpan")
                    (commit version)))
              (file-name (git-file-name name version))
              (sha256
-               (base32 "19g4qskg71jv7sxfxsdkjmrxk9mk5kf9b6fhw06g6wvm3205n95f"))))
+               (base32 "0g7an003simfdn7ihg9yjv7hl2czsmjsndjrp39i7cad8icixscn"))))
     (build-system gnu-build-system)
     (native-inputs `(("autoconf" ,autoconf-wrapper)
                      ("automake" ,automake)
@@ -1183,76 +1523,82 @@ compresses it.")
 (define-public claws-mail
   (package
     (name "claws-mail")
-    (version "3.17.6")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "https://www.claws-mail.org/releases/claws-mail-" version
-                    ".tar.xz"))
-              (sha256
-               (base32
-                "1s05qw0r0gqwvvkxvrrwbjkbi61dvilixiwrpgcq21qc9csc9r0m"))))
-    (build-system gnu-build-system)
-    (native-inputs `(("pkg-config" ,pkg-config)))
-    (inputs `(("bogofilter" ,bogofilter)
-              ("curl" ,curl)
-              ("dbus-glib" ,dbus-glib)
-              ("enchant" ,enchant)
-              ("expat" ,expat)
-              ("ghostscript" ,ghostscript)
-              ("hicolor-icon-theme" ,hicolor-icon-theme)
-              ("gnupg" ,gnupg)
-              ("gnutls" ,gnutls)
-              ("gpgme" ,gpgme)
-              ("gtk" ,gtk+-2)
-              ("libarchive" ,libarchive)
-              ("libcanberra" ,libcanberra)
-              ("libetpan" ,libetpan)
-              ("libical" ,libical)
-              ("libnotify" ,libnotify)
-              ("libsm" ,libsm)
-              ("libxml2" ,libxml2)
-              ("perl" ,perl)
-              ("python-2" ,python-2)
-              ("mime-info" ,shared-mime-info)
-              ("startup-notification" ,startup-notification)))
+    (version "3.17.8")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://www.claws-mail.org/releases/claws-mail-"
+                       version ".tar.xz"))
+       (sha256
+        (base32 "1byxmz68lnm2m8q1gnp0lpr3qp7dcwabrw5iqflz9mlm960v5dyd"))))
+    (build-system glib-or-gtk-build-system)
     (arguments
-      '(#:configure-flags
-        '("--enable-gnutls" "--enable-pgpmime-plugin" "--enable-enchant"
-          "--enable-ldap")
-        #:make-flags
-        ;; Disable updating icon cache since it's done by the profile hook.
-        ;; Conflict with other packages in the profile would be inevitable
-        ;; otherwise.
-        '("gtk_update_icon_cache=true")
-        #:phases (modify-phases %standard-phases
-                   (add-before 'build 'patch-mime
-                     (lambda* (#:key inputs #:allow-other-keys)
-                       (substitute* "src/procmime.c"
-                         (("/usr/share/mime/globs")
-                          (string-append (assoc-ref inputs "mime-info")
-                                         "/share/mime/globs"))))))))
+     `(#:configure-flags
+       (list
+        "--enable-gnutls"
+        "--enable-pgpmime-plugin"
+        "--enable-enchant"
+        "--enable-ldap")
+       #:make-flags
+       ;; Disable updating icon cache since it's done by the profile hook.
+       ;; Conflict with other packages in the profile would be inevitable
+       ;; otherwise.
+       (list
+        "gtk_update_icon_cache=true")
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'build 'patch-mime
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "src/procmime.c"
+               (("/usr/share/mime/globs")
+                (string-append (assoc-ref inputs "mime-info")
+                               "/share/mime/globs"))))))))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("bogofilter" ,bogofilter)
+       ("curl" ,curl)
+       ("dbus-glib" ,dbus-glib)
+       ("enchant" ,enchant)
+       ("expat" ,expat)
+       ("ghostscript" ,ghostscript)
+       ("hicolor-icon-theme" ,hicolor-icon-theme)
+       ("gnupg" ,gnupg)
+       ("gnutls" ,gnutls)
+       ("gpgme" ,gpgme)
+       ("gtk" ,gtk+-2)
+       ("libarchive" ,libarchive)
+       ("libcanberra" ,libcanberra)
+       ("libetpan" ,libetpan)
+       ("libical" ,libical)
+       ("libnotify" ,libnotify)
+       ("libsm" ,libsm)
+       ("libxml2" ,libxml2)
+       ("perl" ,perl)
+       ("python-2" ,python-2)
+       ("mime-info" ,shared-mime-info)
+       ("startup-notification" ,startup-notification)))
     (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 from
-other popular email clients, as well as experienced users.  Almost all commands
-are accessible with the keyboard.  Plus, Claws-Mail is extensible via addons
-which can add many functionalities to the base 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
+from other popular email clients, as well as experienced users.  Almost all
+commands are accessible with the keyboard.  Plus, Claws-Mail is extensible via
+addons which can add many functionalities to the base client.")
     (home-page "https://www.claws-mail.org/")
     (license license:gpl3+))) ; most files are actually public domain or x11
 
 (define-public msmtp
   (package
     (name "msmtp")
-    (version "1.8.11")
+    (version "1.8.14")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://marlam.de/msmtp/releases/"
                            "/msmtp-" version ".tar.xz"))
        (sha256
-        (base32 "0q0fg235qk448l1xjcwyxr7vcpzk6w57jzhjbkb0m7nffyhhypzj"))))
+        (base32 "1d3knxpwpglg20z4zcsi82mqv9285ah1b1b16k1fk1hlf5fhcvym"))))
     (build-system gnu-build-system)
     (inputs
      `(("libsecret" ,libsecret)
@@ -1355,7 +1701,13 @@ delivery.")
                  (("(ZCAT_COMMAND=).*" all var)
                   (string-append var gzip "/bin/zcat\n"))
                  (("# (USE_GNUTLS(|_PC)=.*)" all line)
-                  (string-append line "\n")))
+                  (string-append line "\n"))
+                 (("# (AUTH_CRAM_MD5=yes)" all line) line)
+                 (("# (AUTH_DOVECOT=yes)" all line) line)
+                 (("# (AUTH_EXTERNAL=yes)" all line) line)
+                 (("# (AUTH_PLAINTEXT=yes)" all line) line)
+                 (("# (AUTH_SPA=yes)" all line) line)
+                 (("# (AUTH_TLS=yes)" all line) line))
                ;; This file has hard-coded relative file names for tools despite
                ;; the zcat configuration above.
                (substitute* '("src/exigrep.src")
@@ -1401,7 +1753,8 @@ facilities for checking incoming mail.")
 (define-public dovecot
   (package
     (name "dovecot")
-    (version "2.3.11.3")
+    ;; Also update dovecot-pigeonhole when updating to a new minor version.
+    (version "2.3.13")
     (source
      (origin
        (method url-fetch)
@@ -1409,13 +1762,16 @@ facilities for checking incoming mail.")
                            (version-major+minor version) "/"
                            "dovecot-" version ".tar.gz"))
        (sha256
-        (base32 "1p5gp8jbavcsaara5mfn5cbrnlxssajnchczbgmmfzr7228fmnfk"))))
+        (base32 "1i7ijss79a23v7b6lycfzaa8r5rh01k0h0b9h0j4a6n11sw7by53"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,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?)
@@ -1425,11 +1781,13 @@ facilities for checking incoming mail.")
        ("lz4" ,lz4)
        ("openssl" ,openssl)
        ("sqlite" ,sqlite)
-       ("zlib" ,zlib)))
+       ("zlib" ,zlib)
+       ("zstd" ,zstd "lib")))
     (arguments
      `(#:configure-flags '("--sysconfdir=/etc"
                            "--localstatedir=/var"
-                           "--with-sqlite") ; not auto-detected
+                           "--with-sqlite"  ; not auto-detected
+                           "--with-lucene") ; not auto-detected
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'patch-file-names
@@ -1461,6 +1819,83 @@ It supports mbox/Maildir and its own dbox/mdbox formats.")
     (license (list license:lgpl2.1 license:expat
                    (license:non-copyleft "file://COPYING")))))
 
+(define-public dovecot-pigeonhole
+  (let ((dovecot-version (version-major+minor (package-version dovecot))))
+    (package
+      (name "dovecot-pigeonhole")
+      (version "0.5.13")
+      (source
+       (origin
+         (method url-fetch)
+         (uri (string-append
+               "https://pigeonhole.dovecot.org/releases/" dovecot-version "/"
+               "dovecot-" dovecot-version "-pigeonhole-" version ".tar.gz"))
+         (sha256
+          (base32 "05xz2d82ck6lmv94nbc3qff09j8b60a5640i3fmqwqsvv9kfa7wi"))
+         (modules '((guix build utils)))
+         (snippet
+          '(begin
+             ;; RFC licencing is ad-hoc and rarely free.  Remove them all.
+             (delete-file-recursively "doc/rfc")
+             (substitute* "configure"
+               (("doc/rfc/Makefile") ""))
+             (substitute* "doc/Makefile.in"
+               (("rfc ") ""))
+             #t))))
+      (build-system gnu-build-system)
+      (arguments
+       `(#:configure-flags
+         (list "--disable-static"
+               "--with-dovecot-install-dirs=no"
+               (string-append "--with-dovecot="
+                              (assoc-ref %build-inputs "dovecot")
+                              "/lib/dovecot")
+               (string-append "--docdir="
+                              (assoc-ref %outputs "out")
+                              "/share/doc/" ,name "-" ,version)
+               (string-append "--with-moduledir="
+                              (assoc-ref %outputs "out")
+                              "/lib/dovecot"))
+         #:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'patch-file-names
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let* ((out (assoc-ref outputs "out"))
+                      (libexec (string-append out "/libexec/dovecot")))
+                 (substitute* "src/managesieve/managesieve-settings.c"
+                   (("\\.executable = \"managesieve\"")
+                    (string-append ".executable = \"" libexec
+                                   "/managesieve\"")))
+                 (substitute* "src/managesieve-login/managesieve-login-settings.c"
+                   (("\\.executable = \"managesieve-login\"")
+                    (string-append ".executable = \"" libexec
+                                   "/managesieve-login\"")))
+                 #t))))))
+      (native-inputs
+       `(("pkg-config" ,pkg-config)))
+      (inputs
+       `(("dovecot" ,dovecot)))
+      (home-page "https://pigeonhole.dovecot.org")
+      (synopsis "Dovecot Sieve mail filtering plug-in and ManageSieve service")
+      (description
+       "Pigeonhole adds support for the Sieve language (RFC 5228) and the
+ManageSieve protocol (RFC 5804) to the Dovecot e-mail server.
+
+@dfn{Sieve} is a language for filtering incoming mail.  Messages can be
+forwarded or sorted into separate folders.  Unwanted messages can be rejected
+or discarded, and, when the user is not available, the Sieve interpreter can
+send an automated reply.
+
+Sieve is meant to be simple, extensible, and system-independent.  The
+intention is to make it impossible to write anything more complex (and
+dangerous) than simple mail filters.  Unlike most other mail filtering script
+languages, Sieve does not allow users to execute arbitrary programmes.
+
+Through the @dfn{ManageSieve} protocol, users can remotely manage their Sieve
+scripts without needing file system access.  The server accepts only valid
+scripts to prevent embarrassing errors later on.")
+      (license license:lgpl2.1))))
+
 (define-public dovecot-trees
   (package
     (name "dovecot-trees")
@@ -1496,7 +1931,7 @@ It supports mbox/Maildir and its own dbox/mdbox formats.")
      "Technology for Resting Email Encrypted Storage (TREES) is a NaCL-based
 Dovecot encryption plugin.  This plugin adds individually encrypted mail
 storage to the Dovecot IMAP server.  It is inspired by Posteo's scrambler
-which uses OpenSSL and RSA keypairs.  TREES works in a similar way, but uses
+which uses OpenSSL and RSA key pairs.  TREES works in a similar way, but uses
 the Sodium crypto library (based on NaCL).
 
 How it works:
@@ -1565,7 +2000,7 @@ hashing scheme (such as scrypt) plug-in for @code{Dovecot}.")
     (inputs
      `(("bdb" ,bdb)
        ("cyrus-sasl" ,cyrus-sasl)
-       ("openssl" ,openssl-1.0)
+       ("openssl" ,openssl)
        ("zlib" ,zlib)))
     (home-page "https://isync.sourceforge.io/")
     (synopsis "Mailbox synchronization program")
@@ -1749,14 +2184,14 @@ header.")
 (define-public perl-email-sender
   (package
     (name "perl-email-sender")
-    (version "1.300034")
+    (version "1.300035")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://cpan/authors/id/R/RJ/RJBS/"
                            "Email-Sender-" version ".tar.gz"))
        (sha256
-        (base32 "14aj9kqa9dr2bdhzn2qvjj2mffj8wjb5397z8qw7qg057fk3ib05"))))
+        (base32 "0yfssp3rqdx1dmgvnygarzgkpkhqm28r5sd0gh87ksk8yxndhjql"))))
     (build-system perl-build-system)
     (native-inputs
      `(("perl-capture-tiny" ,perl-capture-tiny)))
@@ -1946,13 +2381,13 @@ maintained.")
 (define-public khard
   (package
     (name "khard")
-    (version "0.16.1")
+    (version "0.17.0")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri name version))
               (sha256
                (base32
-                "0fg4qh5gzki5wg958wlpc8a2icnk74gzg33lqxjm755cfnjng7qd"))))
+                "062nv4xkfsjc11k9m52dh6xjn9z68a4a6x1s8z05wwv4jbp1lkhn"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -1968,7 +2403,6 @@ maintained.")
     (inputs
      `(("python-atomicwrites" ,python-atomicwrites)
        ("python-configobj" ,python-configobj)
-       ("python-pyyaml" ,python-pyyaml)
        ("python-ruamel.yaml" ,python-ruamel.yaml)
        ("python-unidecode" ,python-unidecode)
        ("python-vobject" ,python-vobject)))
@@ -2194,17 +2628,68 @@ existing mail server.  With Postfix, the proxies can operate as either
 converts them to maildir format directories.")
     (license license:public-domain)))
 
+(define-public mblaze
+  (package
+    (name "mblaze")
+    (version "1.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/leahneukirchen/mblaze")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1bir977vnqs76g8jgv1yivqw0wk2kn56l3l5r4w2ipix3fir138y"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("perl" ,perl)))
+    (arguments
+     `(#:tests? #f                   ; XXX: Upstream tests appear to be broken
+       #:make-flags (list (string-append "CC=" ,(cc-for-target))
+                          "PREFIX="
+                          (string-append "DESTDIR=" %output))
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure))))
+    (home-page "https://github.com/leahneukirchen/mblaze")
+    (synopsis "Unix utilities to deal with Maildir")
+    (description
+     "The mblaze message system is a set of Unix utilities for processing and
+interacting with mail messages which are stored in maildir folders.
+
+Its design is roughly inspired by MH, the RAND Message Handling System, but it
+is a complete implementation from scratch.
+
+mblaze is a classic command line MUA and has no features for receiving or
+transferring messages; you can operate on messages in a local maildir spool,
+or fetch your messages using fdm(1), getmail(1), offlineimap(1), or similar
+utilities, and send it using dma(8), msmtp(1), sendmail(8), as provided by
+OpenSMTPD, Postfix, or similar.
+
+mblaze operates directly on maildir folders and doesn't use its own caches or
+databases.  There is no setup needed for many uses.  All utilities have been
+written with performance in mind.  Enumeration of all messages in a maildir is
+avoided unless necessary, and then optimized to limit syscalls.  Parsing
+message metadata is optimized to limit I/O requests.  Initial operations on a
+large maildir may feel slow, but as soon as they are in the file system cache,
+everything is blazingly fast.  The utilities are written to be memory
+efficient (i.e. not wasteful), but whole messages are assumed to fit into RAM
+easily (one at a time).")
+    (license (list license:public-domain
+                   license:expat))))    ; mystrverscmp.c and mymemmem
+
 (define-public mpop
   (package
     (name "mpop")
-    (version "1.4.10")
+    (version "1.4.12")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://marlam.de/mpop/releases/"
                            "mpop-" version ".tar.xz"))
        (sha256
-        (base32 "1243hazpiwgvz2m3p48cdh0yw1019i6xjxgc7qyhmxcdy0inb6wy"))))
+        (base32 "02j8qfd44dfyq1sq7r9znj9y6wam39ncch1sc8chcdlw5nsmaqsz"))))
     (build-system gnu-build-system)
     (inputs
      `(("gnutls" ,gnutls)))
@@ -2243,7 +2728,6 @@ etc; plus other capabilities including support for MIME and
 powerful user customization features.")
     (license license:gpl2+)))
 
-
 (define-public sendmail
   (package
     (name "sendmail")
@@ -2326,17 +2810,81 @@ transfer protocols.")
     (license (license:non-copyleft "file://LICENSE"
                                    "See LICENSE in the distribution."))))
 
+(define-public sieve-connect
+  (package
+    (name "sieve-connect")
+    (version "0.90")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://people.spodhuis.org/phil.pennock/software/"
+                           "sieve-connect-" version ".tar.bz2"))
+       (sha256
+        (base32 "00vnyzr67yr2ilnprbd388gfnwmrmbdx1jsig9d0n5q902jqn62a"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:make-flags
+       (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
+       #:tests? #f                      ; no test suite
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)            ; no configure script
+         (add-before 'install 'create-output-directories
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (for-each (lambda (subdirectory)
+                           (mkdir-p (string-append out "/" subdirectory)))
+                         (list "bin"
+                               "man/man1"))
+               #t)))
+         (add-after 'install 'wrap-program
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out"))
+                   (path (getenv "PERL5LIB")))
+               (wrap-script (string-append out "/bin/sieve-connect")
+                 `("PERL5LIB" ":" = (,path)))
+               #t))))))
+    (inputs
+     `(("guile" ,guile-3.0)             ; for wrap-script
+       ("perl" ,perl)
+       ("perl-authen-sasl" ,perl-authen-sasl)
+       ("perl-io-socket-inet6" ,perl-io-socket-inet6)
+       ("perl-io-socket-ssl" ,perl-io-socket-ssl)
+       ("perl-net-dns" ,perl-net-dns)
+       ("perl-socket6" ,perl-socket6)
+       ("perl-term-readkey" ,perl-term-readkey)
+       ("perl-term-readline" ,perl-term-readline-gnu)))
+    (home-page
+     "https://people.spodhuis.org/phil.pennock/software/#sieve-connect")
+    (synopsis "ManageSieve client for managing Sieve e-mail filters")
+    (description
+     "Sieve-connect lets you view, upload, edit, delete, and otherwise manage
+Sieve scripts on any mail server that speaks the @dfn{ManageSieve} protocol,
+as specified in RFC 5804.
+
+@dfn{Sieve} (RFC 5228) is a specialised language for e-mail filtering.  Sieve
+scripts are stored on the server and run whenever mail arrives.  They can
+automatically sort new messages into folders, silently reject them, send an
+automated response, and more.
+
+@command{sieve-connect} is designed to be both a tool which can be invoked
+from scripts as well as a decent interactive client.  It supports TLS for
+connection privacy, as well as authentication with SASL or GSSAPI client
+certificates.  It should be a drop-in replacement for @command{sieveshell}
+from the Cyrus IMAP project.")
+      (license license:bsd-3)))
+
 (define-public opensmtpd
   (package
     (name "opensmtpd")
-    (version "6.7.1p1")
+    (version "6.8.0p2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://www.opensmtpd.org/archives/"
                            "opensmtpd-" version ".tar.gz"))
        (sha256
-        (base32 "1jh8vxfajm1mvp1v5yh6llrhjzv0n9fgab88mlwllwqynhcfjy3l"))))
+        (base32 "05sd7bmq29ibnqbl2z53hiyprfxzf0qydfdaixs68rz55wqhbgsi"))))
     (build-system gnu-build-system)
     (inputs
      `(("bdb" ,bdb)
@@ -2363,17 +2911,17 @@ transfer protocols.")
          ;; See: https://github.com/OpenSMTPD/OpenSMTPD/issues/1069.
          (add-after 'unpack 'fix-smtpctl-encrypt-bug
            (lambda _
-             (substitute* "smtpd/smtpctl.c"
+             (substitute* "usr.sbin/smtpd/smtpctl.c"
                (("\"encrypt\", \"--\",")
                 "\"encrypt\","))
              #t))
          ;; Fix some incorrectly hard-coded external tool file names.
          (add-after 'unpack 'patch-FHS-file-names
            (lambda _
-             (substitute* "smtpd/smtpctl.c"
+             (substitute* "usr.sbin/smtpd/smtpctl.c"
                ;; ‘gzcat’ is auto-detected at compile time, but ‘cat’ isn't.
                (("/bin/cat") (which "cat")))
-             (substitute* "smtpd/mda_unpriv.c"
+             (substitute* "usr.sbin/smtpd/mda_unpriv.c"
                (("/bin/sh") (which "sh")))
              #t))
          ;; OpenSMTPD provides a single smtpctl utility to control both the
@@ -2466,17 +3014,135 @@ for OpenSMTPD to extend its functionality.")
     (license (list license:bsd-2 license:bsd-3 ; openbsd-compat
                    license:isc))))             ; everything else
 
+(define libopensmtpd
+  ;; Private source dependency of opensmtpd-filter-dkimsign (by the same
+  ;; author), until any project actually uses it in its compiled form.
+  (let ((revision 48))
+    (package
+      (name "libopensmtpd")
+      (version (format #f "0.0.0-~a" revision))
+      (source
+       (origin
+         (method svn-fetch)
+         (uri (svn-reference
+               (url "http://imperialat.at/dev/libopensmtpd/")
+               (revision revision)))
+         (sha256
+          (base32 "04fgibpi6q0c3468ww3z7gsvraz0gyfps0c2dj8mdyri636c0x0s"))
+         (file-name (git-file-name name version))))
+      (build-system gnu-build-system)
+      (arguments
+       `(#:make-flags
+         (list "-f" "Makefile.gnu"
+               (string-append "CC=" ,(cc-for-target))
+               (string-append "LOCALBASE=" (assoc-ref %outputs "out")))
+         #:tests? #f                    ; no test suite
+         #:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'inherit-ownership
+             (lambda _
+               (substitute* "Makefile.gnu"
+                 (("-o \\$\\{BINOWN\\} -g \\$\\{BINGRP\\}") ""))
+               #t))
+           (delete 'configure)          ; no configure script
+           (add-before 'install 'create-output-directories
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let ((out (assoc-ref outputs "out")))
+                 (mkdir-p (string-append out "/lib"))
+                 #t)))
+           (add-after 'install 'install-header-file
+             (lambda* (#:key make-flags outputs #:allow-other-keys)
+               (let ((out (assoc-ref outputs "out")))
+                 (mkdir-p (string-append out "/include"))
+                 (apply invoke "make" "includes" make-flags))))
+           (add-after 'install 'install-man-page
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let* ((out (assoc-ref outputs "out"))
+                      (man3 (string-append out "/share/man/man3")))
+                 ;; There is no make target for this.
+                 (install-file "osmtpd_run.3" man3)
+                 #t))))))
+      (inputs
+       `(("libevent" ,libevent)))
+      (home-page "http://imperialat.at/dev/libopensmtpd/")
+      (synopsis "OpenSMTPd filter C API")
+      (description
+       "The @code{osmtpd} API is an event-based C programming interface for
+writing OpenSMTPd filters.")
+      (license license:expat))))
+
+(define-public opensmtpd-filter-dkimsign
+  (package
+    (name "opensmtpd-filter-dkimsign")
+    ;; The .arch repackaging provides not only a usable Makefile, but patches
+    ;; the source to actually build on GNU, e.g., by making pledge() optional.
+    ;; It's effectively the portable branch that upstream lacks at this time.
+    (version "0.2.arch2")               ; also update both native-inputs
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/de-vri-es/filter-dkimsign")
+             (commit (string-append "v" version))))
+       (sha256
+        (base32 "1dv6184h0gq2safnc7ln4za3arbafzc1xwkgwmiihqcjvdyxig0c"))
+       (file-name (git-file-name name version))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:make-flags
+       (list (string-append "CC=" ,(cc-for-target)))
+       #:tests? #f                      ; no test suite
+       #:phases
+       (modify-phases %standard-phases
+         (replace 'unpack
+           (lambda* (#:key source inputs #:allow-other-keys)
+             (copy-recursively source "filter-dkimsign")
+             (copy-recursively (assoc-ref inputs "libopensmtpd-source")
+                               "libopensmtpd")
+             (copy-file (assoc-ref inputs "Makefile") "Makefile")
+             #t))
+         (delete 'configure)            ; no configure script
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out     (assoc-ref outputs "out"))
+                    (libexec (string-append out "/libexec/opensmtpd"))
+                    (man8    (string-append out "/share/man/man8")))
+               (chdir "filter-dkimsign")
+               (install-file "filter-dkimsign" libexec)
+               (install-file "filter-dkimsign.8" man8)
+               #t))))))
+    (native-inputs
+     `(("Makefile"
+        ,(origin
+           (method url-fetch)
+           (uri (string-append
+                 "https://aur.archlinux.org/cgit/aur.git/plain/Makefile"
+                 "?h=opensmtpd-filter-dkimsign"
+                 "&id=58393470477a2ff2a58f9d72f5d851698067539f"))
+           (sha256
+            (base32 "0da5qr9hfjkf07ybvfva967njmf2x0b82z020r6v5f93jzsbqx92"))
+           (file-name (string-append name "-" version "-Makefile"))))
+       ("libopensmtpd-source" ,(package-source libopensmtpd))))
+    (inputs
+     `(("libevent" ,libevent)
+       ("libressl" ,libressl)))         ; openssl works too but follow opensmtpd
+    (home-page "http://imperialat.at/dev/filter-dkimsign/")
+    (synopsis "OpenSMTPd filter for signing mail with DKIM")
+    (description
+     "The @command{filter-dkimsign} OpenSMTPd filter signs outgoing e-mail
+messages with @acronym{DKIM, DomainKeys Identified Mail} (RFC 4871).")
+    (license license:expat)))
+
 (define-public mailman
   (package
     (name "mailman")
-    (version "3.3.1")
+    (version "3.3.2")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "mailman" version))
         (sha256
-         (base32
-          "0idfiv48jjgc0jq4731094ddhraqq8bxnwmjk6sg5ask0jss9kxq"))))
+         (base32 "0a5ckbf8hc3y28b7p5psp0d4bxk601jlr5pd3hhh545xd8d9f0dg"))))
     (build-system python-build-system)
     (propagated-inputs
      `(("gunicorn" ,gunicorn)
@@ -2653,47 +3319,6 @@ installation on systems where resources are limited.  Its features include:
     (description
      "This package contains libraries and templates for Django-based interfaces
 interacting with Mailman.")
-    (properties `((python2-variant . ,(delay python2-django-mailman3))))
-    (license license:gpl3+)))
-
-;; This is the last version to support Python-2.
-(define-public python2-django-mailman3
-  (package
-    (name "python2-django-mailman3")
-    (version "1.1.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (pypi-uri "django-mailman3" version))
-       (sha256
-        (base32
-         "1xjdkgfjwhgyrp5nxw65dcpcsr98ygj6856sp0bwkrmyxpd1xxk2"))))
-    (build-system python-build-system)
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (replace 'check
-           (lambda _
-             (invoke "django-admin"
-                     "test"
-                     "--settings=django_mailman3.tests.settings_test"
-                     "django_mailman3"))))
-       #:python ,python-2))
-    (inputs
-     `(("python2-django" ,python2-django)))
-    (propagated-inputs
-     `(("python2-requests" ,python2-requests)
-       ("python2-requests-oauthlib" ,python2-requests-oauthlib)
-       ("python2-openid" ,python2-openid)
-       ("python2-mailmanclient" ,python2-mailmanclient)
-       ("python2-django-allauth" ,python2-django-allauth)
-       ("python2-django-gravatar2" ,python2-django-gravatar2)
-       ("python2-pytz" ,python2-pytz)))
-    (home-page "https://gitlab.com/mailman/django-mailman3")
-    (synopsis "Django library for Mailman UIs")
-    (description
-     "Libraries and templates for Django-based interfaces
-interacting with Mailman.")
     (license license:gpl3+)))
 
 (define-public python-mailman-hyperkitty
@@ -2753,16 +3378,12 @@ which sends emails to HyperKitty, the official Mailman3 web archiver.")
        (modify-phases %standard-phases
          (replace 'check
            (lambda _
-             ;; It is unclear why this test fails.
-             (substitute* "hyperkitty/tests/commands/test_import.py"
-               (("def test_bad_content_type_part_two")
-                "@SkipTest\n    def test_bad_content_type_part_two"))
              (setenv "PYTHONPATH" (string-append ".:" (getenv "PYTHONPATH")))
              (invoke "example_project/manage.py" "test"
                      "--settings=hyperkitty.tests.settings_test"))))))
     (propagated-inputs
      `(("python-dateutil" ,python-dateutil)
-       ("python-django" ,python-django)
+       ("python-django" ,python-django-2.2)
        ("python-django-compressor" ,python-django-compressor)
        ("python-django-extensions" ,python-django-extensions)
        ("python-django-gravatar2" ,python-django-gravatar2)
@@ -2867,28 +3488,35 @@ on the fly.  Both programs are written in C and are very fast.")
 (define-public swaks
   (package
     (name "swaks")
-    (version "20190914.0")
+    (version "20201014.0")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append
-             "https://jetmore.org/john/code/swaks/files/swaks-"
-             version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/jetmore/swaks")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "12awq5z4sdd54cxprj834zajxhkpy4jwhzf1fhigcx1zbhdaacsp"))))
+        (base32 "131i2b1yxhnbqkfk4kky40pfanqw2c5lcgbnjhfqp5cvpawpk2ai"))))
     (build-system perl-build-system)
     (inputs
-     `(("perl-net-dns" ,perl-net-dns)
-       ("perl-net-ssleay" ,perl-net-ssleay)))
+     `(("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
     (arguments
-     `(#:tests? #f ; No tests
+     `(#:tests? #f                      ; no tests
        #:phases
        (modify-phases %standard-phases
+         (add-after 'unpack 'set-build_version
+           (lambda _
+             (substitute* "swaks"
+               (("\"DEVRELEASE\"") (format #f "\"~a\"" ,version)))
+             #true))
          (delete 'configure)
          (replace 'build
            (lambda _
-             (invoke "pod2man" "doc/ref.pod" "swaks.1")))
+             (invoke "pod2man" "doc/base.pod" "swaks.1")))
          (replace 'install
            (lambda* (#:key outputs #:allow-other-keys)
              (let ((out (assoc-ref outputs "out")))
@@ -2916,10 +3544,7 @@ operators and scripters.")
 (define-public alpine
   (package
     (name "alpine")
-    ;; Upstream doesn't use git tags, but does ‘tag’ their releases in the
-    ;; commit message.  Hence the lack of GIT-VERSIONing despite using a commit
-    ;; ID below.  Don't forget to update it…
-    (version "2.22")
+    (version "2.24")
     (source
      (origin
        (method git-fetch)
@@ -2929,10 +3554,10 @@ operators and scripters.")
        ;; http://alpine.freeiz.com/alpine/readme/README.patches
        (uri (git-reference
              (url "http://repo.or.cz/alpine.git")
-             (commit "b50297779a4becb9ceca9c6b5b375d526fe3df78")))
+             (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "06js44fvdl7l33hfd4lsxpcd1cz3c0h796cswyzz0lkrzx89yl48"))
+        (base32 "0d5ybnsv29gs8krl66db56avmssq28jlg0qj5i1wka05ncc3740d"))
        (modules '((guix build utils)))
        (snippet
         '(begin
@@ -3053,20 +3678,23 @@ the use of a local MTA such as Sendmail.")
 (define-public afew
   (package
     (name "afew")
-    (version "1.2.0")
+    (version "3.0.1")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "afew" version))
        (sha256
         (base32
-         "121w7bd53xyibllxxbfykjj76n81kn1vgjqd22izyh67y8qyyk5r"))))
+         "0wpfqbqjlfb9z0hafvdhkm7qw56cr9kfy6n8vb0q42dwlghpz1ff"))))
     (build-system python-build-system)
     (inputs
-     `(("python-chardet" ,python-chardet)
+     `(("notmuch" ,notmuch)
+       ("python-chardet" ,python-chardet)
+       ("python-dkimpy" ,python-dkimpy)
        ("python-notmuch" ,python-notmuch)))
     (native-inputs
-     `(("python-setuptools-scm" ,python-setuptools-scm)))
+     `(("python-freezegun" ,python-freezegun)
+       ("python-setuptools-scm" ,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
@@ -3125,7 +3753,7 @@ PGP handling, multiple servers, and secure connections.")
 (define-public imapfilter
   (package
     (name "imapfilter")
-    (version "2.6.16")
+    (version "2.7.5")
     (source
      (origin
        (method git-fetch)
@@ -3134,19 +3762,19 @@ PGP handling, multiple servers, and secure connections.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0f65sg6hhv6778fxwsz4hvarbm97dsb8jj0mg7a9qs273r35pqck"))))
+        (base32 "0a7f85r3axwclzw1s79zl2l8222nj2gklvvq33w9qv0dz5n71dcx"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f
        #:make-flags
        (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
-             "CC=gcc")
+             (string-append "CC=" ,(cc-for-target)))
        #:phases
        (modify-phases %standard-phases
          (delete 'configure))))         ; no configure script
-    (native-inputs
+    (inputs
      `(("lua" ,lua)
-       ("pcre" ,pcre)
+       ("pcre2" ,pcre2)
        ("openssl" ,openssl)))
     (home-page "https://github.com/lefcha/imapfilter")
     (synopsis "IMAP mail filtering utility")
@@ -3208,8 +3836,8 @@ It is a replacement for the @command{urlview} program.")
     (license license:gpl2+)))
 
 (define-public mumi
-  (let ((commit "5a578328199bab51a147fbadbce12c8d06959ed6")
-        (revision "2"))
+  (let ((commit "8c82c8f104ff0013e2bfb3d6b4277280f32446a6")
+        (revision "3"))
     (package
       (name "mumi")
       (version (git-version "0.0.1" revision commit))
@@ -3221,7 +3849,7 @@ It is a replacement for the @command{urlview} program.")
                 (file-name (git-file-name name version))
                 (sha256
                  (base32
-                  "0hngv82gd19l4q7nnbf97r120z1yagsmkp0x3lc8haza5q4mc12c"))))
+                  "1gkwagy7qplzq2x2zqsbrwhlilxviqb0dqhrvnnhxd7z8wvyzcsi"))))
       (build-system gnu-build-system)
       (arguments
        `(#:modules ((guix build gnu-build-system)
@@ -3250,7 +3878,7 @@ It is a replacement for the @command{urlview} program.")
                      (,go ,(getenv "GUILE_LOAD_COMPILED_PATH"))))
                  #t))))))
       (inputs
-       `(("guile-email" ,guile-email)
+       `(("guile-email" ,guile-email-latest)
          ("guile-fibers" ,guile-fibers)
          ("guile-gcrypt" ,guile-gcrypt)
          ("guile-json" ,guile-json-3)
@@ -3429,36 +4057,34 @@ designed for keyboard-oriented operation.")
            (lambda _
              (invoke "python" "-m" "authres" "-v"))))))
     (home-page "https://launchpad.net/authentication-results-python")
-    (synopsis "Email Authentication Results Header Module")
+    (synopsis "Authentication-Results email header creator and parser")
     (description
-     "This module can be used to generate and parse RFC 5451/7001/7601
-Authentication-Results headers.  It also supports Authentication Results
-extensions:
+     "This Python module can be used to generate and parse RFC 5451/7001/7601
+@code{Authentication-Results} email headers.  It supports extensions such as:
 @itemize
 @item RFC 5617 DKIM/ADSP
-@item RFC 6008 DKIM signature identification (header.b)
-@item RFC 6212 Vouch By Reference (VBR)
-@item RFC 6577 Sender Policy Framework (SPF)
-@item RFC 7281 Authentication-Results Registration for S/MIME
-@item RFC 7293 The Require-Recipient-Valid-Since Header Field
-@item RFC 7489 Domain-based Message Authentication, Reporting, and Conformance (DMARC)
-@item Authenticated Recieved Chain (ARC) (draft-ietf-dmarc-arc-protocol-08)
-@end itemize
-Note: RFC 7601 obsoletes RFC 5451, 6577, 7001, and 7410.  Authres supports the
-current standard.  No backward compatibility issues have been noted.")
+@item RFC 6008 DKIM signature identification (@code{header.b})
+@item RFC 6212 @acronym{VBR, Vouch By Reference}
+@item RFC 6577 @acronym{SPF, Sender Policy Framework}
+@item RFC 7281 @code{Authentication-Results} registration for S/MIME
+@item RFC 7293 The @code{Require-Recipient-Valid-Since} header field
+@item RFC 7489 @acronym{DMARC, Domain-based Message Authentication Reporting
+and Conformance}
+@item @acronym{ARC, Authenticated Received Chain}
+(draft-ietf-dmarc-arc-protocol-08)
+@end itemize\n")
     (license license:asl2.0)))
 
 (define-public python-dkimpy
   (package
     (name "python-dkimpy")
-    (version "1.0.4")
+    (version "1.0.5")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "dkimpy" version))
         (sha256
-         (base32
-          "14idcs0wiyc0iyi5bz3xqimxf3x6dizcjfn92s2ka5zxp95xdyvd"))))
+         (base32 "088iz5cqjqh4c7141d94pvn13bh25aizqlrifwv6fs5g16zj094s"))))
     (build-system python-build-system)
     (arguments
      '(#:phases
@@ -3519,20 +4145,23 @@ DKIM and ARC sign messages and output the corresponding signature headers.")
 (define-public python-aiosmtpd
   (package
     (name "python-aiosmtpd")
-    (version "1.2")
+    (version "1.2.2")
     (source
-      (origin
-        (method url-fetch)
-        (uri (pypi-uri "aiosmtpd" version))
-        (sha256
-         (base32
-          "1xdfk741pjmz1cm8dsi4n5vq4517i175rm94696m3f7kcgk7xsmp"))))
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/aio-libs/aiosmtpd")
+             (commit version)))
+       (sha256
+        (base32 "0083d6nf75xv8nq1il6jabz36v6c452svy4p402csxwwih5pw6sk"))
+       (file-name (git-file-name name version))))
     (build-system python-build-system)
     (arguments
      '(#:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'delete-failing-test
+         (add-after 'unpack 'delete-failing-tests
            (lambda _
+             ;; This test uses an expired certificate.
              (delete-file "aiosmtpd/tests/test_smtps.py")
              #t))
          (replace 'check
@@ -3550,3 +4179,42 @@ DKIM and ARC sign messages and output the corresponding signature headers.")
 based on asyncio.")
     (license (list license:asl2.0
                    license:lgpl3))))    ; only for setup_helpers.py
+
+(define-public rspamd
+  (package
+    (name "rspamd")
+    (version "2.7")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/rspamd/rspamd")
+             (commit version)))
+       (sha256
+        (base32 "0fw6nbfc3xqapzq5nydakwgpw6cz6vb3qby2aqlr06lzf87d3hic"))
+       (file-name (git-file-name name version))))
+    (build-system cmake-build-system)
+    (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)))
+    (native-inputs
+     `(("pkg-config" ,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
+expressions, statistical analysis and custom services such as URL
+black lists.  Each message is analysed by Rspamd and given a spam
+score.")
+    (home-page "https://www.rspamd.com/")
+    (license license:asl2.0)))
diff --git a/gnu/packages/man.scm b/gnu/packages/man.scm
index 21d7ba63f6..894272b2b9 100644
--- a/gnu/packages/man.scm
+++ b/gnu/packages/man.scm
@@ -25,11 +25,12 @@
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (gnu packages man)
-  #:use-module (guix licenses)
+  #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix git-download)
   #:use-module (guix download)
   #:use-module (guix packages)
   #:use-module (guix build-system gnu)
+  #:use-module (guix build-system ruby)
   #:use-module (gnu packages dbm)
   #:use-module (gnu packages flex)
   #:use-module (gnu packages gawk)
@@ -37,12 +38,70 @@
   #:use-module (gnu packages less)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
-  #:use-module (gnu packages linux))
+  #:use-module (gnu packages linux)
+  #:use-module (gnu packages xml))
+
+(define-public xmltoman
+  (package
+    (name "xmltoman")
+    (version "0.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://sourceforge.net/projects/xmltoman/files/"
+                       "xmltoman/xmltoman-" version ".tar.gz/xmltoman-"
+                       version ".tar.gz/download"))
+       (sha256
+        (base32 "1c0lvzr7kdy63wbn1jv6s126ds7add3pxqb0vlxd3v5a2sir91wl"))))
+    (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))))
+    (propagated-inputs
+     `(("perl" ,perl)
+       ("perl-xml-parser" ,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
+as description, options, see also, etc.")
+    (home-page "http://xmltoman.sourceforge.net/")
+    (license license:gpl2+)))
+
+(define-public ronn
+  (package
+    (name "ronn")
+    (version "0.7.3")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/rtomayko/ronn")
+         (commit version)))
+       (file-name
+        (git-file-name name version))
+       (sha256
+        (base32 "0fkniz7j1jp8v3i05m6hks3nsh6rzvjfi0ichpi7h4gwk5byxb94"))))
+    (build-system ruby-build-system)
+    (arguments
+     `(#:tests? #f))                   ; Library hpricot not available
+    (synopsis "Manual authoring tool")
+    (description "Ronn builds manuals.  It converts simple, human readable
+textfiles to roff for terminal display, and also to HTML for the web.")
+    (home-page "https://rtomayko.github.io/ronn/")
+    (license license:expat)))
 
 (define-public libpipeline
   (package
     (name "libpipeline")
-    (version "1.5.2")
+    (version "1.5.3")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -50,14 +109,14 @@
                     version ".tar.gz"))
               (sha256
                (base32
-                "1ysrn22ixd4nmggy6f7qcsm7waadmlbg2i0n9mh6g7dfq54wcngx"))))
+                "1c5dl017xil2ssb6a5vg927bnsbc9vymfgi9ahvqbb8gypx0igsx"))))
     (build-system gnu-build-system)
     (home-page "http://libpipeline.nongnu.org/")
     (synopsis "C library for manipulating pipelines of subprocesses")
     (description
      "libpipeline is a C library for manipulating pipelines of subprocesses in
 a flexible and convenient way.")
-    (license gpl3+)))
+    (license license:gpl3+)))
 
 (define-public man-db
   (package
@@ -159,12 +218,12 @@ a flexible and convenient way.")
      "Man-db is an implementation of the standard Unix documentation system
 accessed using the man command.  It uses a Berkeley DB database in place of
 the traditional flat-text whatis databases.")
-    (license gpl2+)))
+    (license license:gpl2+)))
 
 (define-public man-pages
   (package
     (name "man-pages")
-    (version "5.07")
+    (version "5.10")
     (source
      (origin
        (method url-fetch)
@@ -174,7 +233,7 @@ the traditional flat-text whatis databases.")
               (string-append "mirror://kernel.org/linux/docs/man-pages/Archive/"
                              "man-pages-" version ".tar.xz")))
        (sha256
-        (base32 "13b3q7c67r0wkla4pdihl1qh09k67ms2z5jgzfqgpdqqy6mgziwd"))))
+        (base32 "0ql7fqs0w2nbwv1b6ffnzyjz1sysvkhq8kb77wi2z7qip8sja43m"))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases (modify-phases %standard-phases (delete 'configure))
@@ -195,7 +254,7 @@ the traditional flat-text whatis databases.")
 Linux kernel and C library interfaces employed by user-space programs.")
 
     ;; Each man page has its own license; some are GPLv2+, some are MIT/X11.
-    (license gpl2+)))
+    (license license:gpl2+)))
 
 (define-public help2man
   (package
@@ -226,7 +285,7 @@ Linux kernel and C library interfaces employed by user-space programs.")
      "GNU help2man is a program that converts the output of standard
 \"--help\" and \"--version\" command-line arguments into a manual page
 automatically.")
-    (license gpl3+)))
+    (license license:gpl3+)))
 
 (define-public scdoc
   (package
@@ -253,7 +312,7 @@ automatically.")
    (description "scdoc is a simple man page generator written for POSIX systems
 in C99.")
    ;; MIT license, see /share/doc/scdoc-1.6.0/COPYING.
-   (license expat)))
+   (license license:expat)))
 
 (define-public txt2man
   (package
@@ -279,4 +338,4 @@ in C99.")
     (home-page "https://github.com/mvertes/txt2man")
     (synopsis "Convert text to man page")
     (description "Txt2man converts flat ASCII text to man page format.")
-    (license gpl2+)))
+    (license license:gpl2+)))
diff --git a/gnu/packages/markup.scm b/gnu/packages/markup.scm
index 56a920d873..af08774c70 100644
--- a/gnu/packages/markup.scm
+++ b/gnu/packages/markup.scm
@@ -3,7 +3,7 @@
 ;;; Copyright © 2015 David Thompson <davet@gnu.org>
 ;;; Copyright © 2016, 2019 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2017 Nikita <nikita@n0.is>
-;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -30,9 +30,11 @@
   #:use-module (guix build-system trivial)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system perl)
+  #:use-module (guix utils)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages)
   #:use-module (gnu packages perl)
+  #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
   #:use-module (gnu packages web))
 
@@ -112,7 +114,7 @@ convert it to structurally valid XHTML (or HTML).")
 (define-public discount
   (package
     (name "discount")
-    (version "2.2.4")
+    (version "2.2.7")
     (source (origin
              (method url-fetch)
              (uri (string-append
@@ -120,10 +122,11 @@ convert it to structurally valid XHTML (or HTML).")
                    "discount/discount-" version ".tar.bz2"))
              (sha256
               (base32
-               "199hwajpspqil0a4y3yxsmhdp2dm73gqkzfk4mrwzsmlq8y1xzbl"))))
+               "024mxv0gpvilyfczarcgy5m7h4lv6qvhjfpf5i73qkxhszjjn9mi"))))
     (build-system gnu-build-system)
     (arguments
      `(#:test-target "test"
+       #:parallel-build? #f             ; libmarkdown won't be built in time
        #:make-flags (list
                      (string-append "LFLAGS=-L. -Wl,-rpath="
                                     (assoc-ref %outputs "out") "/lib"))
@@ -138,10 +141,15 @@ convert it to structurally valid XHTML (or HTML).")
              #t))
          (replace 'configure
            (lambda* (#:key inputs outputs #:allow-other-keys)
-             (setenv "CC" "gcc")
-             (invoke "./configure.sh"
-                     (string-append "--prefix=" (assoc-ref outputs "out"))
-                     "--shared"))))))
+             (let ((out (assoc-ref outputs "out")))
+               (setenv "CC" ,(cc-for-target))
+               ;; The ‘validate-runpath’ phase fails otherwise.
+               (setenv "LDFLAGS" (string-append "-Wl,-rpath=" out "/lib"))
+               (invoke "./configure.sh"
+                       (string-append "--prefix=" out)
+                       "--shared")))))))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
     (synopsis "Markdown processing library, written in C")
     (description
      "Discount is a markdown implementation, written in C.  It provides a
diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm
index 89ad2e74dc..a9635d90fe 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -96,15 +96,14 @@ MATE applications.")
 (define-public mate-power-manager
   (package
     (name "mate-power-manager")
-    (version "1.24.1")
+    (version "1.24.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://mate/" (version-major+minor version) "/"
-                           name "-" version ".tar.xz"))
+                           "mate-power-manager-" version ".tar.xz"))
        (sha256
-        (base32
-         "13ar40x5hs4d4h81q8qsy0agbx5wnarry3mbhws54zydcxd7j20a"))))
+        (base32 "0fni41p3kraxwjnx9l5mdspng0zib1gfdxwlaiyq31mh4g79yjyj"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
@@ -223,15 +222,14 @@ themes for both gtk+-2 and gtk+-3.")
 (define-public mate-desktop
   (package
     (name "mate-desktop")
-    (version "1.24.0")
+    (version "1.24.1")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://mate/" (version-major+minor version) "/"
-                           name "-" version ".tar.xz"))
+                           "mate-desktop-" version ".tar.xz"))
        (sha256
-        (base32
-         "0l4bbj6nz315s5ndq5sw1jcgi3s1whk59bj12c4mbpsvmlb33adg"))))
+        (base32 "1nd1dn8mm1z6x4r68a25q4vzys1a6fmbzc94ss1z1n1872pczs6i"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
@@ -257,24 +255,14 @@ desktop and the mate-about program.")
 (define-public libmateweather
   (package
     (name "libmateweather")
-    (version "1.24.0")
+    (version "1.24.1")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://mate/" (version-major+minor version) "/"
-                           name "-" version ".tar.xz"))
+                           "libmateweather-" version ".tar.xz"))
        (sha256
-        (base32
-         "094mnlczxq9crjj8z7dzs1zmwscdkbp54l3qjaf4a4bhd8lihv8d"))
-       (modules '((guix build utils)))
-       ;; This is fixed by commit ea13e065 upstream. Remove this once 1.25.0
-       ;; is out.
-       (snippet
-        '(begin
-           (substitute* "data/Locations.xml.in"
-             (("Godthab")
-              "Nuuk"))
-           #t))))
+        (base32 "02d7c59pami1fzxg73mp6risa9hvsdpgs68f62wkg09nrppzsk4v"))))
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags
@@ -312,14 +300,14 @@ the MATE desktop environment.")
 (define-public mate-terminal
   (package
     (name "mate-terminal")
-    (version "1.24.0")
+    (version "1.24.1")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://mate/" (version-major+minor version) "/"
                            "mate-terminal-" version ".tar.xz"))
        (sha256
-        (base32 "0nc23nmbkya2fgf7j65z85dcibwi5akkr8nscqrvk039ckirhk97"))))
+        (base32 "0qmyhxmarwkxad8k1m9q1iwx70zhfp6zc2mh74nv26nj4gr3h3am"))))
     (build-system glib-or-gtk-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
@@ -351,15 +339,14 @@ configurations (profiles).")
 (define-public mate-session-manager
   (package
     (name "mate-session-manager")
-    (version "1.24.0")
+    (version "1.24.1")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://mate/" (version-major+minor version) "/"
-                           name "-" version ".tar.xz"))
+                           "mate-session-manager-" version ".tar.xz"))
        (sha256
-        (base32
-         "01scj5d1xlri9b2id8gm9kfni9nzhdjdf7rag7fvcxwqp7baz3h3"))))
+        (base32 "1zwq8symyp3ijs28pyrknsdi9byf4dpp9wp93ndwdhi0vaip5i51"))))
     (build-system glib-or-gtk-build-system)
     (arguments
      `(#:configure-flags (list "--with-elogind"
@@ -401,15 +388,14 @@ configuration program to choose applications starting on login.")
 (define-public mate-settings-daemon
   (package
     (name "mate-settings-daemon")
-    (version "1.24.0")
+    (version "1.24.1")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://mate/" (version-major+minor version) "/"
-                           name "-" version ".tar.xz"))
+                           "mate-settings-daemon-" version ".tar.xz"))
        (sha256
-        (base32
-         "1hc5a36wqpjv9i2lgrn1h12s8y910xab3phx5vzbzq47kj6m3gw9"))))
+        (base32 "0n1ywr3ir5p536s7azdbw2mh40ylqlpx3a74mjrivbms1rpjxyab"))))
     (build-system glib-or-gtk-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
@@ -443,15 +429,14 @@ configuration program to choose applications starting on login.")
 (define-public libmatemixer
   (package
     (name "libmatemixer")
-    (version "1.24.0")
+    (version "1.24.1")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://mate/" (version-major+minor version) "/"
-                           name "-" version ".tar.xz"))
+                           "libmatemixer-" version ".tar.xz"))
        (sha256
-        (base32
-         "08vkdp2kzy27xwscwp2jj5nz0yblrka2482l6cx3wl4dnk0rpznm"))))
+        (base32 "1n6rq7k66zvfd6sb7h92xihh021w9hysfa4yd1mzjcbb7c62ybqx"))))
     (build-system glib-or-gtk-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
@@ -472,15 +457,14 @@ sound systems.")
 (define-public libmatekbd
   (package
     (name "libmatekbd")
-    (version "1.24.0")
+    (version "1.24.1")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://mate/" (version-major+minor version) "/"
-                           name "-" version ".tar.xz"))
+                           "libmatekbd-" version ".tar.xz"))
        (sha256
-        (base32
-         "1sq7gwr9q3hq4q0vx32qqa68qcqf5by9mqyxnq6lwgaq8ydq16ab"))))
+        (base32 "17mcxfkvl14p04id3n5kbhpjwjq00c8wmbyciyy2hm7kwdln6zx8"))))
     (build-system glib-or-gtk-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
@@ -503,15 +487,14 @@ MATE desktop environment.")
 (define-public mate-menus
   (package
     (name "mate-menus")
-    (version "1.24.0")
+    (version "1.24.1")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://mate/" (version-major+minor version) "/"
-                           name "-" version ".tar.xz"))
+                           "mate-menus-" version ".tar.xz"))
        (sha256
-        (base32
-         "1vv4j38h7mrbfrsj99k25z6y7b5dg30fzd2qnhk7pl8ca8s1jhrd"))))
+        (base32 "17zc9fn14jykhn30z8iwlw0qwk32ivj6gxgww3xrqvqk0da5yaas"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
@@ -544,15 +527,14 @@ assorted menu related utility programs.")
 (define-public mate-applets
   (package
     (name "mate-applets")
-    (version "1.24.0")
+    (version "1.24.1")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://mate/" (version-major+minor version) "/"
-                           name "-" version ".tar.xz"))
+                           "mate-applets-" version ".tar.xz"))
        (sha256
-        (base32
-         "0nm3amb3v458mxv1mbz9y8f4230gldmydmkkm7vqxsrxbccynkxq"))))
+        (base32 "0h70i4x3bk017pgv4zn280682wm58vwdjm7kni91ni8rmblnnvyp"))))
     (build-system glib-or-gtk-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
@@ -617,15 +599,14 @@ Interactive Weather Information Network (IWIN).
 (define-public mate-media
   (package
     (name "mate-media")
-    (version "1.24.0")
+    (version "1.24.1")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://mate/" (version-major+minor version) "/"
-                           name "-" version ".tar.xz"))
+                           "mate-media-" version ".tar.xz"))
        (sha256
-        (base32
-         "1d5dx79yfqghjaxrdrdh053nfnvkbx8p3ma7j87s7rsvy5irs963"))))
+        (base32 "118i4w2i2g3hfgbfn3hjzjkfq8vjj6049r7my3vna9js23b7ab92"))))
     (build-system glib-or-gtk-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
@@ -885,15 +866,14 @@ icons on the MATE desktop.  It works on local and remote file systems.")
 (define-public caja-extensions
   (package
     (name "caja-extensions")
-    (version "1.24.0")
+    (version "1.24.1")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://mate/" (version-major+minor version) "/"
-                           name "-" version ".tar.xz"))
+                           "caja-extensions-" version ".tar.xz"))
        (sha256
-        (base32
-         "175v5c05nrdliya23rbqma49alldq67dklmvpq18nq71sfry4pp6"))))
+        (base32 "13jkynanqj8snys0if8lv6yx1y0jrm778s2152n4x65hsghc6cw5"))))
     (build-system glib-or-gtk-build-system)
     (arguments
      `(#:configure-flags (list "--enable-sendto"
@@ -923,7 +903,6 @@ icons on the MATE desktop.  It works on local and remote file systems.")
        ("dbus-glib" ,dbus-glib)
        ("gajim" ,gajim) ;runtime only?
        ("gtk+" ,gtk+)
-       ("imagemagick" ,imagemagick)
        ("graphicsmagick" ,graphicsmagick)
        ("mate-desktop" ,mate-desktop)
        ("pidgin" ,pidgin) ;runtime only?
@@ -940,15 +919,14 @@ icons on the MATE desktop.  It works on local and remote file systems.")
 (define-public mate-control-center
   (package
     (name "mate-control-center")
-    (version "1.24.0")
+    (version "1.24.1")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://mate/" (version-major+minor version) "/"
-                           name "-" version ".tar.xz"))
+                           "mate-control-center-" version ".tar.xz"))
        (sha256
-        (base32
-         "192plsh83m2qz7jgakns2yvhqbj53v7i54iwb0z26i2awy0j9rcd"))))
+        (base32 "08bai47fsmbxlw2lhig9n6c8sxr24ixkd1spq3j0635yzcqighb0"))))
     (build-system glib-or-gtk-build-system)
     (arguments
      '(#:phases (modify-phases %standard-phases
@@ -1101,15 +1079,14 @@ sessions, panels, menus, file management, and preferences.")
 (define-public mate-calc
   (package
     (name "mate-calc")
-    (version "1.24.0")
+    (version "1.24.1")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://mate/" (version-major+minor version) "/"
-                           name "-" version ".tar.xz"))
+                           "mate-calc-" version ".tar.xz"))
        (sha256
-        (base32
-         "0f7hc1gg41kcwcyvsqqg79qylrp0qqymris8qizk2x3cfvvg7261"))))
+        (base32 "0imdimq5d5rjq8mkjcrsd683a2bn9acmhc0lmvyw71y0040inbaw"))))
     (build-system glib-or-gtk-build-system)
     (native-inputs
      `(("gettext" ,gettext-minimal)
@@ -1195,15 +1172,14 @@ Re-decorates windows on un-maximise.
 (define-public mate-screensaver
   (package
     (name "mate-screensaver")
-    (version "1.24.0")
+    (version "1.24.1")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://mate/" (version-major+minor version) "/"
-                           name "-" version ".tar.xz"))
+                           "mate-screensaver-" version ".tar.xz"))
        (sha256
-        (base32
-         "0gpw6x9d0b77f14vjl7ghq5dya1mwcnvmgigg00manfwlksr5zby"))))
+        (base32 "0imb1z2yvz1h95dzq396c569kkxys9mb2dyc6qxxxcnc5w02a2dw"))))
     (build-system glib-or-gtk-build-system)
     (arguments
      `(#:configure-flags
@@ -1319,15 +1295,14 @@ can be used as backgrounds in the MATE Desktop environment.")
 (define-public eom
   (package
     (name "eom")
-    (version "1.24.0")
+    (version "1.24.1")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://mate/" (version-major+minor version) "/"
-                           name "-" version ".tar.xz"))
+                           "eom-" version ".tar.xz"))
        (sha256
-        (base32
-         "0zzximp2534bky0vac219alafblw6m0lis0gncq92017s6c1mb77"))))
+        (base32 "0dralsc0dvs0l38cysdhx6kiaiqlb8qi6g9xz2cm6mjqyq3d3f9f"))))
     (build-system glib-or-gtk-build-system)
     (native-inputs
      `(("gettext" ,gettext-minimal)
@@ -1369,15 +1344,14 @@ can be used as backgrounds in the MATE Desktop environment.")
 (define-public engrampa
   (package
     (name "engrampa")
-    (version "1.24.0")
+    (version "1.24.1")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://mate/" (version-major+minor version) "/"
-                           name "-" version ".tar.xz"))
+                           "engrampa-" version ".tar.xz"))
        (sha256
-        (base32
-         "13cak3qgrzqj74x9jq1sf155793v2bqqz4mk4i04g9f9xn3g85fl"))))
+        (base32 "0akjnz85qkpiqgj1ccn41rzbfid4l3r3nsm4s9s779ilzd7f097y"))))
     (build-system glib-or-gtk-build-system)
     (arguments
      `(#:configure-flags (list "--disable-schemas-compile"
@@ -1422,15 +1396,14 @@ can be used as backgrounds in the MATE Desktop environment.")
 (define-public pluma
   (package
     (name "pluma")
-    (version "1.24.0")
+    (version "1.24.1")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://mate/" (version-major+minor version) "/"
                            name "-" version ".tar.xz"))
        (sha256
-        (base32
-         "1vmndhlhy3qkf3xs5kkv0xhbv5ar25pqz0kp17hc4qhgjzycfr0r"))))
+        (base32 "1sgc5f480icr2ans6gd3akvcax58mr4jp3zjk3xn7bx1mw9i299f"))))
     (build-system glib-or-gtk-build-system)
     (arguments
      `(; Tests can not succeed.
@@ -1472,15 +1445,14 @@ can be used as backgrounds in the MATE Desktop environment.")
 (define-public mate-system-monitor
   (package
     (name "mate-system-monitor")
-    (version "1.24.0")
+    (version "1.24.1")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://mate/" (version-major+minor version) "/"
-                           name "-" version ".tar.xz"))
+                           "mate-system-monitor-" version ".tar.xz"))
        (sha256
-        (base32
-         "1cb36lrsn4fhsryl2kl4yq0qhp1p4r7k21w3fc2ywjga8fdxx6y5"))))
+        (base32 "1i2r4lw6xsk972yp15g5hm8p8xx9pp6jmcvvzbdq80xyx3x898qz"))))
     (build-system glib-or-gtk-build-system)
     (native-inputs
      `(("autoconf" ,autoconf)
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 232dec5ecc..eff1480e62 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -8,7 +8,7 @@
 ;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 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 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2015 Fabian Harfert <fhmgufs@web.de>
 ;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
 ;;; Copyright © 2016, 2018, 2020 Kei Kebreau <kkebreau@posteo.net>
@@ -40,6 +40,8 @@
 ;;; Copyright © 2020 Nicolò Balzarotti <nicolo@nixo.xyz>
 ;;; Copyright © 2020 B. Wilson <elaexuotee@wilsonb.com>
 ;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
+;;; Copyright © 2020 Simon Tournier <zimon.toutoune@gmail.com>
+;;; Copyright © 2020 Martin Becze <mjbecze@riseup.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -102,6 +104,7 @@
   #:use-module (gnu packages less)
   #:use-module (gnu packages lisp)
   #:use-module (gnu packages linux)
+  #:use-module (gnu packages llvm)
   #:use-module (gnu packages logging)
   #:use-module (gnu packages lua)
   #:use-module (gnu packages gnome)
@@ -135,7 +138,8 @@
   #:use-module (gnu packages version-control)
   #:use-module (gnu packages wxwidgets)
   #:use-module (gnu packages xml)
-  #:use-module (srfi srfi-1))
+  #:use-module (srfi srfi-1)
+  #:use-module (srfi srfi-26))
 
 (define-public aris
   (package
@@ -304,13 +308,13 @@ programming language.")
 (define-public units
   (package
    (name "units")
-   (version "2.19")
+   (version "2.21")
    (source (origin
             (method url-fetch)
             (uri (string-append "mirror://gnu/units/units-" version
                                 ".tar.gz"))
             (sha256 (base32
-                     "0mk562g7dnidjgfgvkxxpvlba66fh1ykmfd9ylzvcln1vxmi6qj2"))))
+                     "1bybhqs4yrly9myb5maz3kdmf8k4fhk2m1d5cbcryn40z6lq0gkc"))))
    (build-system gnu-build-system)
    (inputs
     `(("readline" ,readline)
@@ -515,7 +519,7 @@ numbers.")
 (define-public sleef
   (package
     (name "sleef")
-    (version "3.4.1")
+    (version "3.5.1")
     (source
      (origin
        (method git-fetch)
@@ -524,7 +528,7 @@ numbers.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1gvf7cfvszmgjrsqivwmyy1jnp3hy80dmszxx827lhjz8yqq5019"))))
+        (base32 "1jybqrl2dvjxzg30xrhh847s375n2jr1pix644wi6hb5wh5mx3f7"))))
     (build-system cmake-build-system)
     (arguments
      '(#:configure-flags (list "-DCMAKE_BUILD_TYPE=Release"
@@ -559,7 +563,7 @@ It can utilize SIMD instructions that are available on modern processors.")
 (define-public glpk
   (package
     (name "glpk")
-    (version "4.65")
+    (version "5.0")
     (source
      (origin
       (method url-fetch)
@@ -567,12 +571,13 @@ It can utilize SIMD instructions that are available on modern processors.")
                           version ".tar.gz"))
       (sha256
        (base32
-        "040sfaa9jclg2nqdh83w71sv9rc1sznpnfiripjdyr48cady50a2"))))
+        "05bgxidxj8d9xdp82niy7cy36w181cxq7p8vc3y2ixshpgp1642a"))))
     (build-system gnu-build-system)
     (inputs
      `(("gmp" ,gmp)))
     (arguments
-     `(#:configure-flags '("--with-gmp")))
+     `(#:configure-flags '("--with-gmp"
+                           "--disable-static")))
     (home-page "https://www.gnu.org/software/glpk/")
     (synopsis "GNU Linear Programming Kit, supporting the MathProg language")
     (description
@@ -583,6 +588,20 @@ translator for the language.  In addition to the C library, a stand-alone
 LP/MIP solver is included in the package.")
     (license license:gpl3+)))
 
+(define-public glpk-4
+  (package
+    (inherit glpk)
+    (name "glpk")
+    (version "4.65")
+    (source
+     (origin
+      (method url-fetch)
+      (uri (string-append "mirror://gnu/glpk/glpk-"
+                          version ".tar.gz"))
+      (sha256
+       (base32
+        "040sfaa9jclg2nqdh83w71sv9rc1sznpnfiripjdyr48cady50a2"))))))
+
 (define-public 4ti2
   (package
     (name "4ti2")
@@ -640,7 +659,7 @@ computing convex hulls.")
 (define-public lrslib
   (package
     (name "lrslib")
-    (version "7.0a")
+    (version "7.1")
     (source
      (origin
        (method url-fetch)
@@ -649,7 +668,7 @@ computing convex hulls.")
                            (string-delete #\. version) ".tar.gz"))
        (sha256
         (base32
-         "034fa45r9hwx6ljmgpxk2872q34nklkalpdkc6s9hqw57rivi36k"))))
+         "05kq3hzam31dlmkccv3v358r478kpvx76mw37ka12c6ypwv5dsnk"))))
     (build-system gnu-build-system)
     (inputs
      `(("gmp" ,gmp)))
@@ -901,14 +920,14 @@ singular value problems.")
 (define-public gnuplot
   (package
     (name "gnuplot")
-    (version "5.2.7")
+    (version "5.4.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://sourceforge/gnuplot/gnuplot/"
                                   version "/gnuplot-"
                                   version ".tar.gz"))
        (sha256
-        (base32 "1vglp4la40f5dpj0zdj63zprrkyjgzy068p35bz5dqxjyczm1zlp"))))
+        (base32 "03jrqs5lvxmbbz2c4g17dn2hrxqwd3hfadk9q8wbkbkyas2h8sbb"))))
     (build-system gnu-build-system)
     (inputs `(("readline" ,readline)
               ("cairo" ,cairo)
@@ -920,7 +939,9 @@ singular value problems.")
        ("texlive" ,texlive-tiny)))
     (arguments `(#:configure-flags (list (string-append
                                           "--with-texdir=" %output
-                                          "/texmf-local/tex/latex/gnuplot"))))
+                                          "/texmf-local/tex/latex/gnuplot"))
+                 ;; Plot on a dumb terminal during tests.
+                 #:make-flags '("GNUTERM=dumb")))
     (home-page "http://www.gnuplot.info")
     (synopsis "Command-line driven graphing utility")
     (description "Gnuplot is a portable command-line driven graphing
@@ -1053,7 +1074,7 @@ incompatible with HDF5.")
     (synopsis
      "HDF4 without netCDF API, can be combined with the regular netCDF library")))
 
-(define-public hdf5
+(define-public hdf5-1.8
   (package
     (name "hdf5")
     (version "1.8.21")
@@ -1181,23 +1202,27 @@ extremely large and complex data collections.")
               "https://www.hdfgroup.org/ftp/HDF5/current/src/unpacked/COPYING"))))
 
 (define-public hdf5-1.10
-  (package (inherit hdf5)
-    (version "1.10.6")
+  (package/inherit hdf5-1.8
+    (version "1.10.7")
     (source
      (origin
-      (method url-fetch)
-      (uri (list (string-append "https://support.hdfgroup.org/ftp/HDF5/releases/"
-                                "hdf5-" (version-major+minor version)
-                                "/hdf5-" version "/src/hdf5-"
-                                version ".tar.bz2")
-                 (string-append "https://support.hdfgroup.org/ftp/HDF5/"
-                                "current"
-                                (apply string-append
-                                       (take (string-split version #\.) 2))
-                                "/src/hdf5-" version ".tar.bz2")))
-      (sha256
-       (base32 "1gf38x51128hn00744358w27xgzjk0ff4wra4yxh2lk804ck1mh9"))
-      (patches (search-patches "hdf5-config-date.patch"))))))
+       (method url-fetch)
+       (uri (list (string-append "https://support.hdfgroup.org/ftp/HDF5/releases/"
+                                 "hdf5-" (version-major+minor version)
+                                 "/hdf5-" version "/src/hdf5-"
+                                 version ".tar.bz2")
+                  (string-append "https://support.hdfgroup.org/ftp/HDF5/"
+                                 "current"
+                                 (apply string-append
+                                        (take (string-split version #\.) 2))
+                                 "/src/hdf5-" version ".tar.bz2")))
+       (sha256
+        (base32 "0pm5xxry55i0h7wmvc7svzdaa90rnk7h78rrjmnlkz2ygsn8y082"))
+       (patches (search-patches "hdf5-config-date.patch"))))))
+
+(define-public hdf5
+  ;; Default version of HDF5.
+  hdf5-1.10)
 
 (define-public hdf-java
   (package
@@ -1229,7 +1254,7 @@ extremely large and complex data collections.")
        ("slf4j-simple" ,java-slf4j-simple)))
     (inputs
      `(("hdf4" ,hdf4)
-       ("hdf5" ,hdf5)
+       ("hdf5" ,hdf5-1.8)
        ("zlib" ,zlib)
        ("libjpeg" ,libjpeg-turbo)
        ("slf4j-api" ,java-slf4j-api)))
@@ -1389,7 +1414,7 @@ System (Grid, Point and Swath).")
      `(("gfortran" ,gfortran)))
     (build-system gnu-build-system)
     (inputs
-     `(("hdf5" ,hdf5)
+     `(("hdf5" ,hdf5-1.8)
        ("zlib" ,zlib)
        ("gctp" ,gctp)))
     (arguments
@@ -1407,7 +1432,7 @@ Swath).")
     (license (license:non-copyleft home-page))))
 
 (define-public hdf5-parallel-openmpi
-  (package (inherit hdf5)
+  (package/inherit hdf5-1.10                      ;use the latest
     (name "hdf5-parallel-openmpi")
     (inputs
      `(("mpi" ,openmpi)
@@ -1433,7 +1458,7 @@ Swath).")
                (substitute* "testpar/Makefile"
                  (("(^TEST_PROG_PARA.*)t_pflush1(.*)" front back)
                   (string-append front back "\n")))
-               (substitute* "tools/h5diff/testph5diff.sh"
+               (substitute* "tools/test/h5diff/testph5diff.sh"
                  (("/bin/sh") (which "sh")))
                #t))))))
     (synopsis "Management suite for data with parallel IO support")))
@@ -1490,7 +1515,7 @@ Blosc-compressed datasets.")
         (base32
          "1gm76jbwhz9adbxgn14zx8cj33dmjdr2g5xcy0m9c2gakp8w59kj"))))
     (build-system gnu-build-system)
-    (inputs `(("hdf5" ,hdf5)))                 ;h5cc for tests
+    (inputs `(("hdf5" ,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
@@ -1532,17 +1557,17 @@ similar to MATLAB, GNU Octave or SciPy.")
 (define-public netcdf
   (package
     (name "netcdf")
-    (version "4.4.1.1")
+    (version "4.7.4")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "ftp://ftp.unidata.ucar.edu/pub/netcdf/"
-                           "netcdf-" version ".tar.gz"))
+       (uri (string-append
+             "https://www.unidata.ucar.edu/downloads/netcdf/ftp/"
+             "netcdf-c-" version ".tar.gz"))
        (sha256
         (base32
-         "1blc7ik5yin7i0ls2kag0a9xjk12m0dzx6v1x88az3ras3scci2d"))
-       (patches (search-patches "netcdf-date-time.patch"
-                                "netcdf-tst_h_par.patch"))))
+         "1a2fpp15a2rl1m50gcvvzd9y6bavl6vjf9zzf63sz5gdmq06yiqf"))
+       (patches (search-patches "netcdf-date-time.patch"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("m4" ,m4)
@@ -1551,6 +1576,7 @@ similar to MATLAB, GNU Octave or SciPy.")
     (inputs
      `(("hdf4" ,hdf4-alt)
        ("hdf5" ,hdf5)
+       ("curl" ,curl)
        ("zlib" ,zlib)
        ("libjpeg" ,libjpeg-turbo)))
     (arguments
@@ -1603,12 +1629,16 @@ sharing of scientific data.")
                 "--enable-parallel-tests"
                 ;; Shared libraries not supported with parallel IO.
                 "--disable-shared" "--with-pic"
-                ,flags))))))
+                ,flags))
+       ((#:phases phases '%standard-phases)
+        `(modify-phases ,phases
+           (add-after 'build 'mpi-setup
+             ,%openmpi-setup)))))))
 
 (define-public netcdf-fortran
   (package
     (name "netcdf-fortran")
-    (version "4.4.4")
+    (version "4.5.3")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1616,7 +1646,7 @@ sharing of scientific data.")
                     version ".tar.gz"))
               (sha256
                (base32
-                "0xaxdcg1p83zmypwml3swsnr3ccn38inwldyr1l3wa4dbwbrblxj"))))
+                "0x4acvfhbsx1q79dkkwrwbgfhm0w5ngnp4zj5kk92s1khihmqfhj"))))
     (build-system gnu-build-system)
     (arguments
      `(#:parallel-tests? #f))
@@ -1748,6 +1778,84 @@ linear and quadratic objectives.  There are limited facilities for nonlinear
 and quadratic objectives using the Simplex algorithm.")
     (license license:epl1.0)))
 
+(define-public libflame
+  (package
+    (name "libflame")
+    (version "5.2.0")
+    (outputs '("out" "static"))
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/flame/libflame")
+               (commit version)))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32
+          "1n6lf0wvpp77lxqlr721h2jbfbzigphdp19wq8ajiccilcksh7ay"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:configure-flags
+       ;; Sensible defaults: https://github.com/flame/libflame/issues/28
+       (list "--enable-dynamic-build"
+             "--enable-max-arg-list-hack"
+             "--enable-lapack2flame"
+             "--enable-verbose-make-output"
+             "--enable-multithreading=pthreads" ; Openblas isn't built with openmp.
+             ,@(if (any (cute string-prefix? <> (or (%current-target-system)
+                                                    (%current-system)))
+                        '("x86_64" "i686"))
+                 '("--enable-vector-intrinsics=sse")
+                 '())
+             "--enable-supermatrix"
+             "--enable-memory-alignment=16"
+             "--enable-ldim-alignment")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-/usr/bin/env-bash
+           (lambda _
+             (substitute* "build/config.mk.in"
+               (("/usr/bin/env bash") (which "bash")))
+             #t))
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (substitute* "test/Makefile"
+               (("LIBBLAS .*") "LIBBLAS = -lblas\n")
+               (("LIBLAPACK .*") "LIBLAPACK = -llapack\n"))
+             (if tests?
+               (with-directory-excursion "test"
+                 (mkdir "obj")
+                 (invoke "make")
+                 (invoke "./test_libflame.x"))
+               #t)))
+         (add-after 'install 'install-static
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out"))
+                   (static (assoc-ref outputs "static")))
+               (mkdir-p (string-append static "/lib"))
+               (rename-file (string-append out "/lib/libflame.a")
+                            (string-append static "/lib/libflame.a"))
+               (install-file (string-append out "/include/FLAME.h")
+                             (string-append static "/include"))
+               #t))))))
+    (inputs
+     `(("gfortran" ,gfortran)))
+    (native-inputs
+     `(("lapack" ,lapack)
+       ("openblas" ,openblas)
+       ("perl" ,perl)
+       ("python" ,python-wrapper)))
+    (home-page "https://github.com/flame/libflame")
+    (synopsis "High-performance object-based library for DLA computations")
+    (description "@code{libflame} is a portable library for dense matrix
+computations, providing much of the functionality present in LAPACK, developed
+by current and former members of the @acronym{SHPC, Science of High-Performance
+Computing} group in the @url{https://www.ices.utexas.edu/, Institute for
+Computational Engineering and Sciences} at The University of Texas at Austin.
+@code{libflame} includes a compatibility layer, @code{lapack2flame}, which
+includes a complete LAPACK implementation.")
+    (license license:bsd-3)))
+
 (define-public ceres
   (package
     (name "ceres-solver")
@@ -1801,7 +1909,7 @@ can solve two kinds of problems:
 (define-public octave-cli
   (package
     (name "octave-cli")
-    (version "5.2.0")
+    (version "6.1.0")
     (source
      (origin
       (method url-fetch)
@@ -1809,7 +1917,7 @@ can solve two kinds of problems:
                           version ".tar.lz"))
       (sha256
        (base32
-        "1848dq6nxzal8gwjrcp6xhi5gq96w89nss9d9rz75q408gb3mbl6"))))
+        "0355s0pi8603ccs2j08zym3nalgalslxn83s37zq8nkrrkwxrjfk"))))
     (build-system gnu-build-system)
     (inputs
      `(("alsa-lib" ,alsa-lib)
@@ -1896,8 +2004,6 @@ script files.")
 (define-public octave
   (package (inherit octave-cli)
     (name "octave")
-    (source (origin
-              (inherit (package-source octave-cli))))
     (inputs
      `(("qscintilla" ,qscintilla)
        ("qt" ,qtbase)
@@ -2071,7 +2177,7 @@ This is the certified version of the Open Cascade Technology (OCCT) library.")
 (define-public gmsh
   (package
     (name "gmsh")
-    (version "2.16.0")
+    (version "4.6.0")
     (source
      (origin
       (method git-fetch)
@@ -2083,12 +2189,11 @@ This is the certified version of the Open Cascade Technology (OCCT) library.")
                                         version)))))
       (file-name (git-file-name name version))
       (sha256
-       (base32 "08rq4jajwmlpivnm9yifz2jhaivnz065lnk0h2zv773nwl9wf162"))
+       (base32 "0m0pjxcy1bnr7a20i11lh0ih159pphq9wsvfjr3sfx4y3lginz5y"))
       (modules '((guix build utils)))
       (snippet
-       ;; Remove non-free METIS code
        '(begin
-          (delete-file-recursively "contrib/Metis")
+          (delete-file-recursively "contrib/metis")
           #t))))
     (build-system cmake-build-system)
     (propagated-inputs
@@ -2099,14 +2204,15 @@ This is the certified version of the Open Cascade Technology (OCCT) library.")
        ("lapack" ,lapack)
        ("mesa" ,mesa)
        ("glu" ,glu)
-       ("opencascade-oce" ,opencascade-oce)
+       ("metis" ,metis)
+       ("opencascade-occt" ,opencascade-occt)
        ("libx11" ,libx11)
        ("libxext" ,libxext)))
     (inputs
      `(("fontconfig" ,fontconfig)
        ("libxft" ,libxft)))
     (arguments
-     `(#:configure-flags `("-DENABLE_METIS:BOOL=OFF"
+     `(#:configure-flags `("-DENABLE_SYSTEM_CONTRIB:BOOL=ON"
                            "-DENABLE_BUILD_SHARED:BOOL=ON"
                            "-DENABLE_BUILD_DYNAMIC:BOOL=ON")))
     (home-page "http://gmsh.info/")
@@ -2120,6 +2226,70 @@ modules is done either interactively using the graphical user interface or in
 ASCII text files using Gmsh's own scripting language.")
     (license license:gpl2+)))
 
+(define-public veusz
+  (package
+    (name "veusz")
+    (version "3.3.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "veusz" version))
+       (sha256
+        (base32 "1q7hi1qwwg4pgiz62isvv1pia85m13bspdpp1q3mrnwl11in0ag0"))))
+    (build-system python-build-system)
+    (arguments
+     `(;; Tests will fail because they depend on optional packages like
+       ;; python-astropy, which is not packaged.
+       #:tests? #f
+       #:phases
+       (modify-phases %standard-phases
+         ;; Veusz will append 'PyQt5' to sip_dir by default. That is not how
+         ;; the path is defined in Guix, therefore we have to change it.
+         (add-after 'unpack 'fix-sip-dir
+           (lambda _
+             (substitute* "pyqtdistutils.py"
+               (("os.path.join\\(sip_dir, 'PyQt5'\\)") "sip_dir"))
+             #t))
+         ;; Now we have to pass the correct sip_dir to setup.py.
+         (replace 'build
+           (lambda* (#:key inputs #:allow-other-keys)
+             ;; We need to tell setup.py where to locate QtCoremod.sip
+             ((@@ (guix build python-build-system) call-setuppy)
+              "build_ext"
+              (list (string-append "--sip-dir="
+                                   (assoc-ref inputs "python-pyqt")
+                                   "/share/sip"))
+              #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/veusz")
+                 `("QT_PLUGIN_PATH" prefix
+                   ,(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)))
+    (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)
+       ("qtsvg" ,qtsvg)))
+    (propagated-inputs
+     `(("python-numpy" ,python-numpy)))
+    (home-page "https://veusz.github.io/")
+    (synopsis "Scientific plotting package")
+    (description
+     "Veusz is a scientific plotting and graphing program with a graphical
+user interface, designed to produce publication-ready 2D and 3D plots.  In
+addition it can be used as a module in Python for plotting.  It supports
+vector and bitmap output, including PDF, Postscript, SVG and EMF.")
+    (license license:gpl2+)))
+
 (define-public maxflow
   (package
     (name "maxflow")
@@ -2319,7 +2489,18 @@ scientific applications modeled by partial differential equations.")
         (uri (pypi-uri "petsc4py" version))
         (sha256
           (base32
-            "1rm1qj5wlkhxl39by9n78lh3gbmii31wsnb8j1rr5hvfr5xgbx2q"))))
+           "1rm1qj5wlkhxl39by9n78lh3gbmii31wsnb8j1rr5hvfr5xgbx2q"))
+        (modules '((guix build utils)))
+        (snippet
+         '(begin
+            ;; Ensure source file is regenerated in the build phase.
+            (delete-file "src/petsc4py.PETSc.c")
+            ;; Remove legacy GC code.  See
+            ;; https://bitbucket.org/petsc/petsc4py/issues/125.
+            (substitute* "src/PETSc/cyclicgc.pxi"
+                         ((".*gc_refs.*") "" )
+                         ((".*PyGC_Head.*") ""))
+            #t))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -2331,6 +2512,8 @@ scientific applications modeled by partial differential equations.")
              #t))
          (add-before 'check 'mpi-setup
            ,%openmpi-setup))))
+    (native-inputs
+     `(("python-cython" ,python-cython)))
     (inputs
      `(("petsc" ,petsc-openmpi)
        ("python-numpy" ,python-numpy)))
@@ -2519,7 +2702,7 @@ bindings to almost all functions of SLEPc.")
 (define-public metamath
   (package
     (name "metamath")
-    (version "0.183")
+    (version "0.193")
     (source
      (origin
        (method git-fetch)
@@ -2528,7 +2711,7 @@ bindings to almost all functions of SLEPc.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1jjf4fy6j53i40dh0yv0f9sngnw4gs24cig99vsg3q0303pwrhg7"))))
+        (base32 "1s9hyknfvhj86g3giayyf3dxzg23iij0rs7bdvj075v9qbyhqn9b"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("autoconf" ,autoconf)
@@ -2744,14 +2927,14 @@ easy-to-write markup language for mathematics.")
 (define-public superlu
   (package
     (name "superlu")
-    (version "5.2.1")
+    (version "5.2.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://portal.nersc.gov/project/sparse/superlu/"
                            "superlu_" version ".tar.gz"))
        (sha256
-        (base32 "0qzlb7cd608q62kyppd0a8c65l03vrwqql6gsm465rky23b6dyr8"))
+        (base32 "13520vk6fqspyl22cq4ak2jh3rlmhja4czq56j75fdx65fkk80s7"))
        (modules '((guix build utils)))
        (snippet
         ;; Replace the non-free implementation of MC64 with a stub adapted
@@ -2810,18 +2993,21 @@ also provides threshold-based ILU factorization preconditioners.")
 (define-public superlu-dist
   (package
     (name "superlu-dist")
-    (version "6.2.0")
+    (version "6.4.0")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://portal.nersc.gov/project/sparse/superlu/"
-                           "superlu_dist_" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/xiaoyeli/superlu_dist")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
-        (base32 "1ynmwqajc9sc3my2hssa5k9s58ggvizqv9rdss0j7w99pbh5mnvw"))
+        (base32 "0fa29yr72p4yq5ln4rgfsawmi5935n4qcr5niz6864bjladz4lql"))
        (modules '((guix build utils)))
        (snippet
         ;; Replace the non-free implementation of MC64 with a stub
         '(begin
+           (make-file-writable "SRC/mc64ad_dist.c")
            (call-with-output-file "SRC/mc64ad_dist.c"
              (lambda (port)
                (display "
@@ -2899,14 +3085,14 @@ implemented in ANSI C, and MPI for communications.")
 (define-public scotch
   (package
     (name "scotch")
-    (version "6.0.6")
+    (version "6.1.0")
     (source
      (origin
       (method url-fetch)
       (uri (string-append "https://gforge.inria.fr/frs/download.php/"
                           "latestfile/298/scotch_" version ".tar.gz"))
       (sha256
-       (base32 "1ky4k9r6jvajhqaqnnx6h8fkmds2yxgp70dpr1qzwcyhi2nhqvv8"))
+       (base32 "1184fcv4wa2df8szb5lan6pjh0raarr45pk8ilpvbz23naikzg53"))
       (patches (search-patches "scotch-build-parallelism.patch"
                                "scotch-integer-declarations.patch"))))
     (build-system gnu-build-system)
@@ -2954,7 +3140,7 @@ YACC = bison -pscotchyy -y -b y
                           "COMMON_PTHREAD"
                           "COMMON_RANDOM_FIXED_SEED"
                           "INTSIZE64"             ;use 'int64_t'
-                          ;; Prevents symbolc clashes with libesmumps
+                          ;; Prevents symbol clashes with libesmumps
                           "SCOTCH_RENAME"
                           ;; XXX: Causes invalid frees in superlu-dist tests
                           ;; "SCOTCH_PTHREAD"
@@ -3319,7 +3505,7 @@ point numbers.")
 (define-public wxmaxima
   (package
     (name "wxmaxima")
-    (version "20.04.0")
+    (version "20.12.2")
     (source
      (origin
        (method git-fetch)
@@ -3328,30 +3514,29 @@ point numbers.")
              (commit (string-append "Version-" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0vrjxzfgmjdzm1rgl0crz4b4badl14jwh032y3xkcdvjl5j67lp3"))))
+        (base32 "1rxnxk7yanb9ac5pxbii6k7gg3b09pbp9rmwvsvgpbrk17mg79r9"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("gettext" ,gettext-minimal)
-       ("xorg-server" ,xorg-server-for-tests)))
-    ;; TODO: Add libomp for multithreading support.
-    ;; As of right now, enabling libomp causes the imageCells.wxm test to fail.
+     `(("gettext" ,gettext-minimal)))
     (inputs
-     `(("wxwidgets" ,wxwidgets)
+     `(("libomp" ,libomp)
+       ("wxwidgets" ,wxwidgets)
        ("maxima" ,maxima)
        ;; Runtime support.
        ("adwaita-icon-theme" ,adwaita-icon-theme)
        ("gtk+" ,gtk+)
        ("shared-mime-info" ,shared-mime-info)))
     (arguments
-     `(#:test-target "test"
+     `(#:tests? #f                      ; tests fail non-deterministically
        #:phases
        (modify-phases %standard-phases
-         (add-before 'check 'pre-check
+         (add-after 'unpack 'patch-doc-path
            (lambda _
-             ;; Tests require a running X server.
-             (system "Xvfb :1 &")
-             (setenv "DISPLAY" ":1")
-             (setenv "HOME" (getcwd))
+             ;; Don't look in share/doc/wxmaxima-xx.xx.x for the
+             ;; documentation.  Only licensing information is placed there by
+             ;; Guix.
+             (substitute* "src/Dirstructure.cpp"
+               (("/doc/wxmaxima-\\%s") "/doc/wxmaxima"))
              #t))
          (add-after 'install 'wrap-program
            (lambda* (#:key inputs outputs #:allow-other-keys)
@@ -3705,7 +3890,7 @@ Fresnel integrals, and similar related functions as well.")
 (define-public suitesparse
   (package
     (name "suitesparse")
-    (version "5.7.1")
+    (version "5.8.1")
     (source
      (origin
        (method git-fetch)
@@ -3715,7 +3900,7 @@ Fresnel integrals, and similar related functions as well.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "174p3l78kv9gaa0i5hflyai2ydwnjzh34k9938sl4aa3li0543s8"))
+         "0qjlyfxs8s48rs63c2fzspisgq1kk4bwkgnhmh125hgkdhrq2w1c"))
        (patches (search-patches "suitesparse-mongoose-cmake.patch"))
        (modules '((guix build utils)))
        (snippet
@@ -3728,7 +3913,6 @@ Fresnel integrals, and similar related functions as well.")
      '(#:tests? #f  ;no "check" target
        #:make-flags
        (list "CC=gcc"
-             "BLAS=-lblas"
              "TBB=-ltbb"
              "MY_METIS_LIB=-lmetis"
              ;; Flags for cmake (required to build GraphBLAS and Mongoose)
@@ -3738,7 +3922,8 @@ Fresnel integrals, and similar related functions as well.")
                             " -DCMAKE_C_FLAGS_RELEASE=\"$(CFLAGS) $(CPPFLAGS)\""
                             " -DCMAKE_CXX_FLAGS_RELEASE=\"$(CXXFLAGS) $(CPPFLAGS)\""
                             " -DCMAKE_SKIP_RPATH=TRUE"
-                            " -DCMAKE_BUILD_TYPE=Release")
+                            " -DCMAKE_BUILD_TYPE=Release"
+                            " -DCMAKE_INSTALL_LIBDIR=lib")
              (string-append "INSTALL_LIB="
                             (assoc-ref %outputs "out") "/lib")
              (string-append "INSTALL_INCLUDE="
@@ -3750,6 +3935,8 @@ Fresnel integrals, and similar related functions as well.")
     (inputs
      `(("tbb" ,tbb)
        ("lapack" ,lapack)
+       ("gmp" ,gmp)
+       ("mpfr" ,mpfr)
        ("metis" ,metis)))
     (native-inputs
      `(("cmake" ,cmake-minimal)
@@ -4017,7 +4204,7 @@ revised simplex and the branch-and-bound methods.")
 (define-public dealii
   (package
     (name "dealii")
-    (version "9.1.1")
+    (version "9.2.0")
     (source
      (origin
        (method url-fetch)
@@ -4025,7 +4212,7 @@ revised simplex and the branch-and-bound methods.")
                            "download/v" version "/dealii-" version ".tar.gz"))
        (sha256
         (base32
-         "0xhjv0gzswpjbc43xbrpwfc5848g508l01855nszx3g5gwzlhnzw"))
+         "0fm4xzrnb7dfn4415j24d8v3jkh0lssi86250x2f5wgi83xq4nnh"))
        (modules '((guix build utils)))
        (snippet
         ;; Remove bundled sources: UMFPACK, TBB, muParser, and boost
@@ -4366,7 +4553,7 @@ structured and unstructured grid problems.")))
 (define-public matio
   (package
     (name "matio")
-    (version "1.5.6")
+    (version "1.5.19")
     (source
      (origin
        (method url-fetch)
@@ -4374,11 +4561,11 @@ structured and unstructured grid problems.")))
                            "matio-" version ".tar.gz"))
        (sha256
         (base32
-         "0y2qymgxank8wdiwc68ap8bxdzrhvyw86i29yh3xgn4z1njfd9ir"))))
+         "0vr8c1mz1k6mz0sgh6n3scl5c3a71iqmy5fnydrgq504icj4vym4"))))
     (build-system gnu-build-system)
     (inputs
      `(("zlib" ,zlib)
-       ("hdf5" ,hdf5)))
+       ("hdf5" ,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
@@ -4543,7 +4730,7 @@ as equations, scalars, vectors, and matrices.")
 (define-public z3
   (package
     (name "z3")
-    (version "4.8.8")
+    (version "4.8.9")
     (home-page "https://github.com/Z3Prover/z3")
     (source (origin
               (method git-fetch)
@@ -4552,7 +4739,7 @@ as equations, scalars, vectors, and matrices.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1rn538ghqwxq0v8i6578j8mflk6fyv0cp4hjfqynzvinjbps56da"))))
+                "1hnbzq10d23drd7ksm3c1n2611c3kd0q0yxgz8y78zaafwczvwxx"))))
     (build-system gnu-build-system)
     (arguments
      `(#:imported-modules ((guix build python-build-system)
@@ -4810,6 +4997,58 @@ be fed to @command{tcalc} through the command line.")
   (home-page "https://sites.google.com/site/mohammedisam2000/tcalc")
   (license license:gpl3+)))
 
+(define-public tiny-bignum
+  (let ((commit "1d7a1f9b8e77316187a6b3eae8e68d60a6f9a4d4"))
+    (package
+     (name "tiny-bignum")
+     (version (git-version "0" "0" commit))
+     (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+              (url "https://github.com/kokke/tiny-bignum-c")
+              (commit commit)))
+        (file-name (git-file-name "tiny-bignum" commit))
+        (sha256
+         (base32 "0vj71qlhlaa7d92bfar1kwqv6582dqrby8x3kdw0yzh82k2023g6"))))
+     (build-system gnu-build-system)
+     (arguments
+      `(#:phases
+        (modify-phases %standard-phases
+          (delete 'configure)
+          (add-after 'unpack 'patch-tests
+            (lambda _
+              (substitute* "scripts/test_rand.py"
+                (("\t") "  ")
+                (("\" % (\\w+)" _ symbol) (string-append "\" % int(" symbol ")")))
+              #t))
+          (replace 'check
+            (lambda* (#:key tests? #:allow-other-keys)
+              (when tests?
+                (invoke "make" "test"))
+              #t))
+          (replace 'install
+            (lambda* (#:key outputs #:allow-other-keys)
+              (let ((share (string-append (assoc-ref outputs "out") "/share"))
+                    (doc (string-append (assoc-ref outputs "out") "/doc")))
+                (mkdir-p share)
+                (install-file "bn.c" share)
+                (install-file "bn.h" share)
+                (mkdir-p doc)
+                (install-file "LICENSE" doc)
+                (install-file "README.md" doc))
+              #t)))))
+     (native-inputs
+      `(("python" ,python-wrapper)))
+     (home-page "https://github.com/kokke/tiny-bignum-c")
+     (synopsis "Small portable multiple-precision unsigned integer arithmetic in C")
+     (description
+      "This library provides portable Arbitrary-precision unsigned integer
+arithmetic in C, for calculating with large numbers.  Basic arithmetic (+, -,
+*, /, %) and bitwise operations (&, |, ^. <<, >>) plus increments, decrements
+and comparisons are supported.")
+     (license license:unlicense))))
+
 (define-public sundials
   (package
     (name "sundials")
@@ -5607,10 +5846,10 @@ compiled against the nauty library.")
          "1j5aji1g2vmdvc0gqz45n2ll2l2f6czca04wiyfl5g3sm3a6vhvb"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("m4", m4)))
+     `(("m4" ,m4)))
     (inputs
      `(("glpk" ,glpk)
-       ("gmp", gmp)))
+       ("gmp" ,gmp)))
     (home-page "https://www.bugseng.com/parma-polyhedra-library")
     (synopsis
      "Parma Polyhedra Library for computations with polyhedra")
diff --git a/gnu/packages/matrix.scm b/gnu/packages/matrix.scm
index 002c1b530d..8a3a1283fa 100644
--- a/gnu/packages/matrix.scm
+++ b/gnu/packages/matrix.scm
@@ -1,6 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2020 Alex ter Weele <alex.ter.weele@gmail.com>
 ;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2020, 2021 Michael Rohleder <mike@rohleder.de>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -60,13 +61,13 @@ an LDAP server.")
 (define-public synapse
   (package
     (name "synapse")
-    (version "1.14.0")
+    (version "1.25.0")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "matrix-synapse" version))
               (sha256
                (base32
-                "09drdqcjvpk9s3hq5rx9yxsxq0wak5fg5gfaiqfnbnxav2c2v7kq"))))
+                "0382qcsmgvg24p0xvb37kn3y1kd3bn363kblgwg58iy92df0pga4"))))
     (build-system python-build-system)
     ;; TODO Run tests with ‘PYTHONPATH=. trial3 tests’.
     (propagated-inputs
@@ -108,6 +109,7 @@ an LDAP server.")
        ("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)))
diff --git a/gnu/packages/maven.scm b/gnu/packages/maven.scm
index e0cc98d408..c637e5c7ae 100644
--- a/gnu/packages/maven.scm
+++ b/gnu/packages/maven.scm
@@ -889,6 +889,8 @@ wagon providers supporting HTTP.")))
                         ;; unable to find valid certification path to requested target
                         "**/HttpsWagonPreemptiveTest.java"
                         "**/HttpsWagonTest.java"
+                        ;; Timeout
+                        "**/HugeFileDownloadTest.java"
                         ;; Injection errors
                         "**/TckTest.java")
        #:jdk ,icedtea-8
@@ -2944,13 +2946,14 @@ projects.")
     (name "maven-resources-plugin")
     (version "3.1.0")
     (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/apache/"
-                                  "maven-resources-plugin/archive/"
-                                  "maven-resources-plugin-" version ".tar.gz"))
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/apache/maven-resources-plugin")
+                     (commit (string-append  "maven-resources-plugin-" version))))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "1f5gnjg2xmqfxml6k0ydyd1sxxwzgnb24qn6avcc4mijwd8a84pl"))))
+                "090k5j2y7ak54czfjjg3v7pdmdlgd96fbs91d1fd3vslm9zzndg8"))))
     (build-system ant-build-system)
     (arguments
      `(#:jar-name "maven-resources-plugin.jar"
@@ -3052,13 +3055,14 @@ components for supporting incremental build functionality in maven plugins.")
     (name "maven-compiler-plugin")
     (version "3.8.1")
     (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/apache/"
-                                  "maven-compiler-plugin/archive/"
-                                  "maven-compiler-plugin-" version ".tar.gz"))
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/apache/maven-compiler-plugin")
+                     (commit (string-append "maven-compiler-plugin-" version))))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "018d9qwc4cd6k7a8kvhvxjmzbzd2ifdf7m36wqjfq42010js1mv1"))))
+                "0jkbq02vykd09ws8k9bzqxv6fjrpmir8gcxydbmj05kkhl242bma"))))
     (build-system ant-build-system)
     (arguments
      `(#:jar-name "maven-compiler-plugin.jar"
@@ -3620,13 +3624,14 @@ reports in two different file formats, plain text and xml.")))
     (name "maven-jar-plugin")
     (version "3.2.0")
     (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/apache/"
-                                  "maven-jar-plugin/archive/"
-                                  "maven-jar-plugin-" version ".tar.gz"))
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/apache/maven-jar-plugin")
+                     (commit (string-append "maven-jar-plugin-" version))))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "032042n3kfb4g5jf6khzxywn22xfy3jpx57lkq88xsv0lwx9np96"))))
+                "04y2rlmcabmc55ljqlkgbb5xx94a59cz1dvrnpfj1vzz024pqkyg"))))
     (build-system ant-build-system)
     (arguments
      `(#:jar-name "maven-jar-plugin.jar"
diff --git a/gnu/packages/mcrypt.scm b/gnu/packages/mcrypt.scm
index fb5529382e..d0cfb8f7a3 100644
--- a/gnu/packages/mcrypt.scm
+++ b/gnu/packages/mcrypt.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
+;;; Copyright © 2014, 2020 Eric Bavier <bavier@posteo.net>
 ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -94,7 +94,8 @@ XTEA, 3WAY, TWOFISH, BLOWFISH, ARCFOUR, WAKE and more.")
       (sha256
        (base32
         "1w7yiljan8gf1ibiypi6hm3r363imm3sxl1j8hapjdq3m591qljn"))
-      (patches (search-patches "mhash-keygen-test-segfault.patch"))))
+      (patches (search-patches "mhash-keygen-test-segfault.patch"
+                               "libmhash-hmac-fix-uaf.patch"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("perl" ,perl)))                 ;for tests
diff --git a/gnu/packages/mercury.scm b/gnu/packages/mercury.scm
index a6ae451e63..5a2c85a79b 100644
--- a/gnu/packages/mercury.scm
+++ b/gnu/packages/mercury.scm
@@ -56,7 +56,7 @@
 (define-public mercury-minimal
   (package
     (name "mercury-minimal")
-    (version "20.06")
+    (version "20.06.1")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -64,7 +64,7 @@
                     version ".tar.gz"))
               (sha256
                (base32
-                "1gkr9w8lsdzqykqwd3f1a1phsqv090648i14ilhv8jdg85frdimr"))))
+                "07qwkk871yxd4q1sw5xv26g8jrpvnpprmzvfd7zg7i142kl3l2gg"))))
     (build-system gnu-build-system)
     (arguments
      `(#:modules ((guix build gnu-build-system)
@@ -138,7 +138,7 @@
     (native-inputs
      `(("texinfo" ,texinfo)
        ("flex" ,flex)
-       ("tcsh", tcsh)
+       ("tcsh" ,tcsh)
        ("bison" ,bison)
        ("readline" ,readline)
        ("libatomic-ops" ,(package-source
@@ -173,7 +173,7 @@ separate compilation, and numerous optimization/time trade-offs.")
 (define-public mercury
   (package (inherit mercury-minimal)
            (name "mercury")
-           (version "20.06")
+           (version "20.06.1")
            (source
             (origin
               (method git-fetch)
@@ -185,7 +185,7 @@ separate compilation, and numerous optimization/time trade-offs.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1pc51r7vlqmi689rkwdkk1ka2dyk36q11dqvl339cizng6mp72h6"))))
+                "1b6rmdinw8mj6n9sc7c75kkf42gd2k254rf51x4snlrqckxj7aaz"))))
            (arguments
             (substitute-keyword-arguments
                 (package-arguments mercury-minimal)
diff --git a/gnu/packages/mes.scm b/gnu/packages/mes.scm
index 9ffbe33ab7..5ceb1c6151 100644
--- a/gnu/packages/mes.scm
+++ b/gnu/packages/mes.scm
@@ -64,7 +64,7 @@ extensive examples, including parsers for the Javascript and C99 languages.")
     (home-page "https://savannah.nongnu.org/projects/nyacc")
     (license (list gpl3+ lgpl3+))))
 
-(define-public nyacc
+(define-public nyacc-0.99
   (package
     (inherit nyacc-0.86)
     (version "0.99.0")
@@ -95,6 +95,28 @@ extensive examples, including parsers for the Javascript and C99 languages.")
     (inputs
      `(("guile" ,guile-2.2)))))
 
+(define-public nyacc
+  (package
+    (inherit nyacc-0.99)
+    (version "1.03.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://savannah/nyacc/nyacc-"
+                                  version ".tar.gz"))
+              (sha256
+               (base32
+                "1vdiqpm3p0ndmpmkzcpkpjvgklfsk4wxrhkixdxbczpafdfl635p"))
+              (modules '((guix build utils)))
+              (snippet
+               '(begin
+                  (substitute* "configure"
+                    (("GUILE_GLOBAL_SITE=\\$prefix.*")
+                     "GUILE_GLOBAL_SITE=\
+$prefix/share/guile/site/$GUILE_EFFECTIVE_VERSION\n"))
+                  #t))))
+    (inputs
+     `(("guile" ,guile-3.0)))))
+
 (define-public mes-0.19
   ;; Mes used for bootstrap.
   (package
@@ -153,7 +175,7 @@ Guile.")
                 "0p1jsrrmcbc0zrvbvnjbb6iyxr0in71km293q8qj6gnar6bw09av"))))
     (propagated-inputs
      `(("mescc-tools" ,mescc-tools)
-       ("nyacc" ,nyacc)))
+       ("nyacc" ,nyacc-0.99)))
     (native-search-paths
      (list (search-path-specification
             (variable "C_INCLUDE_PATH")
@@ -185,7 +207,7 @@ Guile.")
        ("make" ,gnu-make)
        ("mes" ,mes)
        ("mescc-tools" ,mescc-tools)
-       ("nyacc" ,nyacc)
+       ("nyacc" ,nyacc-0.99)
        ("sed" ,sed)
        ("tar" ,tar)))
     (supported-systems '("i686-linux"))
diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm
index bda44f332d..1820a146d1 100644
--- a/gnu/packages/messaging.scm
+++ b/gnu/packages/messaging.scm
@@ -10,7 +10,7 @@
 ;;; 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, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; 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>
 ;;; Copyright © 2018 Leo Famulari <leo@famulari.name>
@@ -23,6 +23,10 @@
 ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2020 Reza Alizadeh Majd <r.majd@pantherx.org>
 ;;; Copyright © 2020 Jonathan Brielmaier <jonathan.brielmaier@web.de>
+;;; Copyright © 2020 Mason Hock <chaosmonk@riseup.net>
+;;; Copyright © 2020, 2021 Michael Rohleder <mike@rohleder.de>
+;;; Copyright © 2020 Raghav Gururajan <raghavgururajan@disroot.org>
+;;; Copyright © 2020 Robert Karszniewicz <avoidr@posteo.de>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -58,6 +62,7 @@
   #:use-module (gnu packages curl)
   #:use-module (gnu packages cyrus-sasl)
   #:use-module (gnu packages databases)
+  #:use-module (gnu packages docbook)
   #:use-module (gnu packages documentation)
   #:use-module (gnu packages enchant)
   #:use-module (gnu packages fontutils)
@@ -67,6 +72,8 @@
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages gnupg)
   #:use-module (gnu packages gperf)
+  #:use-module (gnu packages graphviz)
+  #:use-module (gnu packages gstreamer)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages guile)
   #:use-module (gnu packages icu4c)
@@ -79,8 +86,11 @@
   #:use-module (gnu packages lua)
   #:use-module (gnu packages man)
   #:use-module (gnu packages markup)
+  #:use-module (gnu packages mono)
+  #:use-module (gnu packages mpd)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages networking)
+  #:use-module (gnu packages nss)
   #:use-module (gnu packages pcre)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages photo)
@@ -93,6 +103,7 @@
   #: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 sqlite)
   #:use-module (gnu packages tcl)
   #:use-module (gnu packages texinfo)
@@ -119,36 +130,287 @@
   #:use-module (guix packages)
   #:use-module (guix utils))
 
+(define-public libgnt
+  (package
+    (name "libgnt")
+    (version "2.14.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://sourceforge/pidgin/libgnt/"
+                       version "/libgnt-" version ".tar.xz"))
+       (sha256
+        (base32 "1grs9fxl404rscscxk1ff55fzjnwjqrisjxbasbssmcp1h1s4zkb"))))
+    (build-system meson-build-system)
+    (outputs '("out" "doc"))
+    (arguments
+     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-ncurses-path
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "meson.build"
+               (("'/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))
+         (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))))))
+    (native-inputs
+     `(("docbook-xml" ,docbook-xml-4.1.2)
+       ("glib:bin" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("gtk-doc" ,gtk-doc)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("ncurses" ,ncurses)))
+    (propagated-inputs
+     `(("glib" ,glib)
+       ("libxml" ,libxml2)
+       ("python" ,python-2)))
+    (synopsis "GLib Ncurses Toolkit")
+    (description "GNT is an ncurses toolkit for creating text-mode graphical
+user interfaces in a fast and easy way.  It is based on GLib and ncurses.")
+    (home-page "https://keep.imfreedom.org/libgnt/libgnt")
+    (license license:gpl2+)))
+
+(define-public libgadu
+  (package
+    (name "libgadu")
+    (version "1.12.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/wojtekka/libgadu.git")
+         (commit version)))
+       (file-name
+        (git-file-name name version))
+       (sha256
+        (base32 "1s16cripy5w9k12534qb012iwc5m9qcjyrywgsziyn3kl3i0aa8h"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:configure-flags
+       (list
+        "--disable-static")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-shebangs
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "protobufgen.sh"
+               (("/bin/sh")
+                (string-append (assoc-ref inputs "bash")
+                               "/bin/sh")))
+             #t)))))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("bash" ,bash)
+       ("doxygen" ,doxygen)
+       ("libtool" ,libtool)
+       ("perl" ,perl)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("curl" ,curl)
+       ("expat" ,expat)
+       ("libprotobuf-c" ,protobuf-c)
+       ("libxml" ,libxml2)
+       ("openssl" ,openssl)
+       ("zlib" ,zlib)))
+    (propagated-inputs
+     `(("gnutls" ,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
+environment independent.")
+    (home-page "https://libgadu.net/index.en.html")
+    (license license:lgpl2.1+)))
+
+(define-public silc-toolkit
+  (package
+    (name "silc-toolkit")
+    (version "1.1.12")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://sourceforge/silc/silc/toolkit/sources/silc-toolkit-"
+                       version ".tar.gz"))
+       (sha256
+        (base32 "0mnvf9n7qriadg0p7a8qmvcayhnns2g9fhmcymavlm0v8xrky33y"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:configure-flags
+       (list
+        "--disable-static"
+        "--enable-ipv6"
+        "--enable-stack-trace")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'trigger-bootstrap
+           (lambda _
+             (delete-file "configure")
+             (delete-file "Makefile.in")
+             #t)))))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("libtool" ,libtool)
+       ("perl" ,perl)
+       ("pkg-config" ,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
+private messages, instant messages, channels and groups, and video and audio
+conferencing.")
+    (home-page "https://silc.github.io/info")
+    (license
+     ;; Dual-licensed
+     (list
+      license:gpl2+
+      license:bsd-2))))
+
+(define-public meanwhile
+  (package
+    (name "meanwhile")
+    (version "1.1.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/obriencj/meanwhile.git")
+         (commit
+          (string-append "v" version))))
+       (file-name
+        (git-file-name name version))
+       (sha256
+        (base32 "1k1gvmx1ikm0y1mdmm495rzkb00pl170jfaf2dy0n5aiiknkk7q3"))))
+    (build-system glib-or-gtk-build-system)
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("doxygen" ,doxygen)
+       ("libtool" ,libtool)
+       ("pkg-config" ,pkg-config)))
+    (propagated-inputs
+     `(("glib" ,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
+protocol based in part off of the IMPP draft(*1), and in part off of traces of
+TCP sessions from existing clients.")
+    (home-page "https://github.com/obriencj/meanwhile")
+    (license license:lgpl3)))
+
+(define-public poezio
+  (package
+    (name "poezio")
+    (version "0.13.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://lab.louiz.org/poezio/poezio.git")
+         (commit
+          (string-append "v" version))))
+       (file-name
+        (git-file-name name version))
+       (sha256
+        (base32 "041y61pcbdb86s04qwp8s1g6bp84yskc7vdizwpi2hz18y01x5fy"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch
+           (lambda _
+             (substitute* "setup.py"
+               (("'CC', 'cc'")
+                "'CC', 'gcc'"))
+             #t)))))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("python-setuptools" ,python-setuptools)
+       ("python-sphinx" ,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)))
+    (synopsis "Console Jabber/XMPP Client")
+    (description "Poezio is a free console XMPP client (the protocol on which
+the Jabber IM network is built).
+Its goal is to let you connect very easily (no account creation needed) to the
+network and join various chatrooms, immediately.  It tries to look like the
+most famous IRC clients (weechat, irssi, etc).  Many commands are identical and
+you won't be lost if you already know these clients.  Configuration can be
+made in a configuration file or directly from the client.
+You'll find the light, fast, geeky and anonymous spirit of IRC while using a
+powerful, standard and open protocol.")
+    (home-page "https://poez.io/en/")
+    (license license:zlib)))
+
 (define-public libotr
   (package
     (name "libotr")
     (version "4.1.1")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://otr.cypherpunks.ca/libotr-"
-                                  version ".tar.gz"))
-              (sha256
-               (base32
-                "1x8rliydhbibmzwdbyr7pd7n87m2jmxnqkpvaalnf4154hj1hfwb"))
-              (patches (search-patches "libotr-test-auth-fix.patch"))))
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://otr.cypherpunks.ca/libotr-"
+                           version ".tar.gz"))
+       (sha256
+        (base32 "1x8rliydhbibmzwdbyr7pd7n87m2jmxnqkpvaalnf4154hj1hfwb"))
+       (patches
+        (search-patches "libotr-test-auth-fix.patch"))))
     (build-system gnu-build-system)
+    (native-inputs
+     `(("perl" ,perl)))                 ; for the test suite
+    (inputs
+     `(("libgpg-error" ,libgpg-error)))
     (propagated-inputs
-     `(("libgcrypt" ,libgcrypt)))  ; libotr headers include gcrypt.h
-    (inputs `(("libgpg-error" ,libgpg-error)))
-    (native-inputs `(("perl" ,perl))) ; for the test suite
+     `(("libgcrypt" ,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 messages.  (2)
-Authentication: You are assured the correspondent is who you think it is.  (3)
-Deniability: The messages you send do not have digital signatures that are
-checkable by a third party.  Anyone can forge messages after a conversation to
-make them look like they came from you.  However, during a conversation, your
-correspondent is assured the messages he sees are authentic and
-unmodified.  (4) Perfect forward secrecy: If you lose control of your private
-keys, no previous conversation is compromised.")
+    (description "OTR allows you to have private conversations over instant
+messaging by providing: (1) Encryption: No one else can read your instant
+messages.  (2) Authentication: You are assured the correspondent is who you
+think it is.  (3) Deniability: The messages you send do not have digital
+signatures that are checkable by a third party.  Anyone can forge messages
+after a conversation to make them look like they came from you.  However,
+during a conversation, your correspondent is assured the messages he sees are
+authentic and unmodified.  (4) Perfect forward secrecy: If you lose control of
+your private keys, no previous conversation is compromised.")
     (home-page "https://otr.cypherpunks.ca/")
-    (license (list license:lgpl2.1 license:gpl2))))
+    (license
+     (list
+      ;; Library
+      license:lgpl2.1+
+      ;; Others
+      license:gpl2+))))
 
 (define-public libsignal-protocol-c
   (package
@@ -227,6 +489,29 @@ identi.ca and status.net).")
     (home-page "https://www.bitlbee.org/")
     (license (list license:gpl2+ license:bsd-2))))
 
+(define-public bitlbee-purple
+  ;; This variant uses libpurple, which provides support for more protocols at
+  ;; the expense of a much bigger closure.
+  (package/inherit bitlbee
+    (name "bitlbee-purple")
+    (synopsis "IRC to instant messaging gateway (using Pidgin's libpurple)")
+    (inputs `(("purple" ,pidgin)
+              ,@(package-inputs bitlbee)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments bitlbee)
+       ((#:phases phases '%standard-phases)
+        `(modify-phases ,phases
+           (replace 'configure                    ;add "--purple=1"
+             (lambda* (#:key outputs #:allow-other-keys)
+               (invoke "./configure"
+                       (string-append "--prefix="
+                                      (assoc-ref outputs "out"))
+                       "--otr=1" "--purple=1")))))
+       ((#:tests? _ #t)
+        ;; XXX: Tests fail to link, and ./configure says that it's "supported
+        ;; on a best-effort basis" anyway.
+        #f)))))
+
 (define-public bitlbee-discord
   (package
     (name "bitlbee-discord")
@@ -265,55 +550,59 @@ identi.ca and status.net).")
                      ("bitlbee" ,bitlbee) ; needs bitlbee headers
                      ("bash" ,bash)))
     (synopsis "Discord plugin for Bitlbee")
-    (description "Bitlbee-discord is a plugin for Bitlbee witch provides
+    (description "Bitlbee-discord is a plugin for Bitlbee which provides
 access to servers running the Discord protocol.")
     (home-page "https://github.com/sm00th/bitlbee-discord/")
     (license license:gpl2+)))
 
 (define-public purple-mattermost
-  (package
-    (name "purple-mattermost")
-    (version "1.2")
-    (home-page "https://github.com/EionRobb/purple-mattermost")
-    (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
-                "0fm49iv58l09qpy8vkca3am642fxiwcrrh6ykimyc2mas210b5g2"))))
-    (build-system gnu-build-system)
-    (arguments
-     `(#:phases (modify-phases %standard-phases
-                  (replace 'configure
-                    (lambda* (#:key inputs outputs #:allow-other-keys)
-                      ;; Adjust the makefile to install files in the right
-                      ;; place.
-                      (let ((out (assoc-ref outputs "out")))
-                        (substitute* "Makefile"
-                          (("MATTERMOST_DEST = .*")
-                           (string-append "MATTERMOST_DEST = " out
-                                          "/lib/purple-2\n")) ;XXX: hardcoded
-                          (("MATTERMOST_ICONS_DEST = .*")
-                           (string-append "MATTERMOST_ICONS_DEST = "
-                                          out
-                                          "/share/pixmaps/pidgin/protocols\n")))
-                        #t))))
-       #: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)))
-    (synopsis "Purple plug-in to access Mattermost instant messaging")
-    (description
-     "Purple-Mattermost is a plug-in for Purple, the instant messaging library
+  ;; The latest release (1.2) only supports Mattermost's /api/v3.  Choose a
+  ;; commit that supports /api/v4.
+  (let ((commit "158ce2052af9aaf3d1f6f045f0cfba276e0e91cf")
+        (revision "0"))
+    (package
+      (name "purple-mattermost")
+      (version (git-version "1.2" revision commit))
+      (home-page "https://github.com/EionRobb/purple-mattermost")
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference (url home-page)
+                                    (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "1481zm20pnfq52ncg7hxayjq8cw3a6yh9m4jm1m5s8chsq04015l"))))
+      (build-system gnu-build-system)
+      (arguments
+       `(#:phases (modify-phases %standard-phases
+                    (replace 'configure
+                      (lambda* (#:key inputs outputs #:allow-other-keys)
+                        ;; Adjust the makefile to install files in the right
+                        ;; place.
+                        (let ((out (assoc-ref outputs "out")))
+                          (substitute* "Makefile"
+                            (("MATTERMOST_DEST = .*")
+                             (string-append "MATTERMOST_DEST = " out
+                                            "/lib/purple-2\n")) ;XXX: hardcoded
+                            (("MATTERMOST_ICONS_DEST = .*")
+                             (string-append "MATTERMOST_ICONS_DEST = "
+                                            out
+                                            "/share/pixmaps/pidgin/protocols\n")))
+                          #t))))
+         #: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)))
+      (synopsis "Purple plug-in to access Mattermost instant messaging")
+      (description
+       "Purple-Mattermost is a plug-in for Purple, the instant messaging library
 used by Pidgin and Bitlbee, among others, to access
 @uref{https://mattermost.com/, Mattermost} servers.")
-    (license license:gpl3+)))
+      (license license:gpl3+))))
 
 (define-public hexchat
   (package
@@ -370,14 +659,14 @@ dictionaries.  HexChat can be extended with multiple addons.")
 (define-public ngircd
   (package
     (name "ngircd")
-    (version "26")
+    (version "26.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://arthur.barton.de/pub/ngircd/ngircd-"
                                   version ".tar.xz"))
               (sha256
                (base32
-                "1ijmv18fa648y7apxb9vp4j9iq6fxq850kz5v36rysaq614cdp2n"))
+                "0m32v0c7mq96rshws4h6d0pi4bm0hynfzx3x01mgrxh9c396zham"))
               (patches (search-patches "ngircd-handle-zombies.patch"))))
     (build-system gnu-build-system)
     ;; Needed for the test suite.
@@ -436,89 +725,113 @@ authentication.")
 (define-public pidgin
   (package
     (name "pidgin")
-    (version "2.13.0")
+    (version "2.14.1")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "mirror://sourceforge/pidgin/Pidgin/"
-                           version "/pidgin-" version ".tar.bz2"))
+       (uri
+        (string-append "mirror://sourceforge/pidgin/Pidgin/"
+                       version "/pidgin-" version ".tar.gz"))
        (sha256
-        (base32 "13vdqj70315p9rzgnbxjp9c51mdzf1l4jg1kvnylc4bidw61air7"))
-       (patches (search-patches "pidgin-add-search-path.patch"
-                                ;; Remove the snippet and bootstrapping
-                                ;; native-inputs together with this patch.
-                                "pidgin-libnm.patch"))
+        (base32 "1c4dzxg9c3d9zfqqa7jwijj9rv9fm6w95igmpljwy88lxq7v5w11"))
+       (patches
+        (search-patches
+         "pidgin-add-search-path.patch"
+         "pidgin-vv-gst.patch"))
        (modules '((guix build utils)))
        (snippet
         '(begin
-           ;; Remove stale generated file after applying pidgin-libnm.patch.
+           ;; Remove stale generated file after applying patches.
            (delete-file "configure")
            #t))))
     (build-system glib-or-gtk-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
+     `(("autoconf" ,autoconf) ;; For bootstrap
+       ("automake" ,automake) ;; For bootstrap
        ("check" ,check)
-       ("intltool" ,intltool)
+       ("dot" ,graphviz)
        ("gconf" ,gconf)
-       ("python" ,python-2)
-       ("doxygen" ,doxygen)
-
-       ;; For bootstrapping after applying pidgin-libnm.patch.
-       ("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)))
+       ("intltool" ,intltool)
+       ("libtool" ,libtool) ;; For bootstrap
+       ("pkg-config" ,pkg-config)))
     (inputs
-     `(("gtk+" ,gtk+-2)
-       ("libgcrypt" ,libgcrypt)
-       ("gnutls" ,gnutls)
+     `(("avahi" ,avahi)
        ("cyrus-sasl" ,cyrus-sasl)
        ("dbus" ,dbus)
        ("dbus-glib" ,dbus-glib)
-       ("python2-dbus" ,python2-dbus)
+       ;; ("evolution-data-server" ,evolution-data-server)
+       ("farstream" ,farstream)
+       ("gnutls" ,gnutls)
+       ("gstreamer" ,gstreamer)
+       ;; ("gtkspell2" ,gtkspell2)
+       ("libgadu" ,libgadu)
+       ("libgcrypt" ,libgcrypt)
+       ("libgnt" ,libgnt)
+       ("libice" ,libice)
        ("libidn" ,libidn)
        ("libltdl" ,libltdl)
+       ("libsm" ,libsm)
+       ("libx11" ,libx11)
+       ("libxext" ,libxext)
        ("libxml2" ,libxml2)
-       ;; TODO: gstreamer: patches needed to support gstreamer-1.0 or later
-       ;; TODO: farstream
-       ;; TODO: meanwhile
-       ;; TODO: gtkspell
-       ;; TODO: libxephyr
-       ;; TODO: libgadu
+       ("libxscrnsaver" ,libxscrnsaver)
        ("libxslt" ,libxslt)
-       ("avahi" ,avahi)
+       ;; ("libzephyr" ,libzephyr)
+       ("meanwhile" ,meanwhile)
+       ("mono" ,mono)
        ("ncurses" ,ncurses)
        ("network-manager" ,network-manager)
+       ("nspr" ,nspr)
+       ("nss" ,nss)
+       ("pango" ,pango)
+       ("perl" ,perl)
+       ("python" ,python-2)
+       ("python2-dbus" ,python2-dbus)
+       ("silc" ,silc-toolkit)
        ("sqlite" ,sqlite)
-       ("libice" ,libice)
-       ("libsm" ,libsm)
-       ("libxscrnsaver" ,libxscrnsaver)
-       ("startup-notification" ,startup-notification)))
+       ("startup-notification" ,startup-notification)
+       ("tcl" ,tcl)
+       ("tk" ,tk)))
+    (propagated-inputs
+     `(("glib" ,glib)
+       ("gtk+" ,gtk+-2)))
     (arguments
      `(#:configure-flags
-       (list "--disable-gtkspell"
-             "--disable-tcl"
-             "--disable-meanwhile"
-             "--disable-vv"  ; XXX remove when we have farstream and gstreamer
-             "--disable-gstreamer" ; XXX patches needed to support gstreamer-1.0
-             "--enable-cyrus-sasl"
-             (string-append "--with-ncurses-headers="
-                            (assoc-ref %build-inputs "ncurses")
-                            "/include"))))
+       (list
+        (string-append "CFLAGS=-I"
+                       (assoc-ref %build-inputs "gst-plugins-base")
+                       "/include/gstreamer-1.0")
+        "--disable-gtkspell"
+        ;; "--enable-gevolution"
+        "--enable-cap"
+        "--enable-mono"
+        "--enable-cyrus-sasl"
+        (string-append "--with-ncurses-headers="
+                       (assoc-ref %build-inputs "ncurses")
+                       "/include")
+        (string-append "--with-tclconfig="
+                       (assoc-ref %build-inputs "tcl")
+                       "/lib")
+        (string-append "--with-tkconfig="
+                       (assoc-ref %build-inputs "tk")
+                       "/lib"))))
     (native-search-paths
-     (list (search-path-specification
-            (variable "PURPLE_PLUGIN_PATH")
-            (files (list (string-append "lib/purple-"
-                                        (version-major version))
-                         "lib/pidgin")))))
+     (list
+      (search-path-specification
+       (variable "PURPLE_PLUGIN_PATH")
+       (files
+        (list
+         (string-append "lib/purple-"
+                        (version-major version))
+         "lib/pidgin")))))
     (home-page "https://www.pidgin.im/")
     (synopsis "Graphical multi-protocol instant messaging client")
-    (description
-     "Pidgin is a modular instant messaging client that supports many popular
-chat protocols.")
+    (description "Pidgin is a modular instant messaging client that supports
+many popular chat protocols.")
     (license
      (list
-      license:gpl2+    ; Most of the code
-      license:lgpl2.1  ; GG protocol plugin (libpurple/protocols/gg/lib)
+      license:gpl2+   ; Most of the code
+      license:lgpl2.1 ; GG protocol plugin (libpurple/protocols/gg/lib)
       license:lgpl2.0+ ; OSCAR protocol plugin (libpurple/protocols/oscar)
       ;; The following licenses cover the zephyr protocol plugin:
       (license:non-copyleft
@@ -532,51 +845,52 @@ chat protocols.")
   (package
     (name "pidgin-otr")
     (version "4.0.2")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://otr.cypherpunks.ca/"
-                                  name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "1i5s9rrgbyss9rszq6c6y53hwqyw1k86s40cpsfx5ccl9bprxdgl"))))
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://otr.cypherpunks.ca/"
+                       name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1i5s9rrgbyss9rszq6c6y53hwqyw1k86s40cpsfx5ccl9bprxdgl"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("intltool" ,intltool)))
+     `(("gettext" ,gettext-minimal)
+       ("intltool" ,intltool)
+       ("pkg-config" ,pkg-config)))
     (inputs
-     `(("pidgin" ,pidgin)
-       ("libotr" ,libotr)
-       ("libgpg-error" ,libgpg-error)
+     `(("glib" ,glib)
+       ("gtk+" ,gtk+-2)
        ("libgcrypt" ,libgcrypt)
-       ("glib" ,glib)
-       ("gtk+" ,gtk+-2)))
+       ("libgpg-error" ,libgpg-error)
+       ("libotr" ,libotr)
+       ("perl" ,perl)
+       ("pidgin" ,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 instant
-messaging client.  OTR (Off-the-Record) Messaging allows you to have private
-conversations over instant messaging by providing: (1) Encryption: No one else
-can read your instant messages.  (2) Authentication: You are assured the
-correspondent is who you think it is.  (3) Deniability: The messages you send
-do not have digital signatures that are checkable by a third party.  Anyone
+    (description "Pidgin-OTR is a plugin that adds support for OTR to the Pidgin
+instant messaging client.  OTR (Off-the-Record) Messaging allows you to have
+private conversations over instant messaging by providing: (1) Encryption: No
+one else can read your instant messages.  (2) Authentication: You are assured
+the correspondent is who you think it is.  (3) Deniability: The messages you
+send do not have digital signatures that are checkable by a third party.  Anyone
 can forge messages after a conversation to make them look like they came from
-you.  However, during a conversation, your correspondent is assured the
-messages he sees are authentic and unmodified.  (4) Perfect forward secrecy:
-If you lose control of your private keys, no previous conversation is
-compromised.")
-    (license license:gpl2)))
+you.  However, during a conversation, your correspondent is assured the messages
+he sees are authentic and unmodified.  (4) Perfect forward secrecy: If you lose
+control of your private keys, no previous conversation is compromised.")
+    (license license:gpl2+)))
 
 (define-public znc
   (package
     (name "znc")
-    (version "1.8.1")
+    (version "1.8.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://znc.in/releases/archive/znc-"
                                   version ".tar.gz"))
               (sha256
                (base32
-                "0hb1v167aa6gv5bcwz352l6b8gnd74ymjw92y4x882l099hzg59i"))))
+                "03fyi0j44zcanj1rsdx93hkdskwfvhbywjiwd17f9q1a7yp8l8zz"))))
     (build-system cmake-build-system)
     (arguments
      `(#:configure-flags
@@ -617,23 +931,29 @@ simultaneously and therefore appear under the same nickname on IRC.")
 (define-public python-nbxmpp
   (package
     (name "python-nbxmpp")
-    (version "0.6.10")
+    (version "1.0.2")
     (source
      (origin
        (method url-fetch)
-       (uri (pypi-uri "nbxmpp" version))
+       (uri
+        (pypi-uri "nbxmpp" version))
        (sha256
-        (base32
-         "1vq89nhamciblyi5579bppnm4sb0zk5cg5hdipfpz174fxvl2wyd"))))
+        (base32 "0vw5drr077w9ks4crnw6pwa4735ycyjdcm54knc3w4in4x5027wr"))))
     (build-system python-build-system)
-    (arguments
-     `(#:tests? #f))                    ; no tests
+    (native-inputs
+     `(("glib:bin" ,glib "bin")))
+    (inputs
+     `(("glib" ,glib)
+       ("glib-networking" ,glib-networking)
+       ("libsoup" ,libsoup)
+       ("python-idna" ,python-idna)
+       ("python-precis-i18n" ,python-precis-i18n)
+       ("python-pygobject" ,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
+of xmpppy.")
     (home-page "https://dev.gajim.org/gajim/python-nbxmpp")
-    (synopsis "Non-blocking Jabber/XMPP module")
-    (description
-     "The goal of this python library is to provide a way for Python
-applications to use Jabber/XMPP networks in a non-blocking way.  This library
-was initially a fork of xmpppy, but uses non-blocking sockets.")
     (license license:gpl3+)))
 
 (define-public python2-nbxmpp
@@ -642,132 +962,132 @@ was initially a fork of xmpppy, but uses non-blocking sockets.")
 (define-public gajim
   (package
     (name "gajim")
-    (version "1.1.3")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://gajim.org/downloads/"
-                                  (version-major+minor version)
-                                  "/gajim-" version ".tar.bz2"))
-              (sha256
-               (base32
-                "0bzxwcpdd4ydh6d6mzpr0gxwhcb0x9ympk55fpvm1hcw9d28a716"))))
+    (version "1.2.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://gajim.org/downloads/"
+                       (version-major+minor version)
+                       "/gajim-" version ".tar.gz"))
+       (sha256
+        (base32 "1gfcp3b5nq43xxz5my8vfhfxnnli726j3hzcgwh9fzrzzd9ic3gx"))
+       (patches (search-patches "gajim-honour-GAJIM_PLUGIN_PATH.patch"))))
     (build-system python-build-system)
     (arguments
-     `(#:phases
+     `(#:imported-modules
+       (,@%python-build-system-modules
+        (guix build glib-or-gtk-build-system))
+       #:modules
+       ((guix build python-build-system)
+        ((guix build glib-or-gtk-build-system)
+         #:prefix glib-or-gtk:)
+        (guix build utils))
+       #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'add-plugin-dirs
-           (lambda _
-             (substitute* "gajim/common/configpaths.py"
-               (("_paths\\['PLUGINS_USER'\\]\\]")
-                "_paths['PLUGINS_USER']] + \
-([os.getenv('GAJIM_PLUGIN_PATH')] \
-if os.getenv('GAJIM_PLUGIN_PATH') \
-and Path(os.getenv('GAJIM_PLUGIN_PATH')).is_dir() \
-else [])"))
-             #t))
          (replace 'check
            (lambda _
-             (invoke "python" "./setup.py" "test" "-s" "test.no_gui")))
-         (add-after 'install 'wrap-gi-typelib-path
+             ;; Tests require a running X server.
+             (system "Xvfb :1 +extension GLX &")
+             (setenv "DISPLAY" ":1")
+             ;; For missing '/etc/machine-id'.
+             (setenv "DBUS_FATAL_WARNINGS" "0")
+             (invoke "dbus-launch" "python" "./setup.py" "test")
+             #t))
+         (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))
+         (add-after 'install 'wrap-env
            (lambda* (#:key outputs #:allow-other-keys)
              (let ((out (assoc-ref outputs "out")))
                (for-each
                 (lambda (name)
                   (let ((file (string-append out "/bin/" name))
+                        (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
                         (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
                     (wrap-program file
-                      `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
-                      ;; For translations
-                      `("XDG_DATA_DIRS" ":" prefix
-                        (,(string-append (assoc-ref outputs "out") "/share"))))))
+                      `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
+                      `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))))
                 '("gajim" "gajim-remote" "gajim-history-manager")))
-             #t))
-         (add-after 'install 'install-icons
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (adwaita (string-append
-                              (assoc-ref inputs "adwaita-icon-theme")
-                              "/share/icons/Adwaita"))
-                    (hicolor (string-append
-                              (assoc-ref inputs "hicolor-icon-theme")
-                              "/share/icons/hicolor"))
-                    (icons (string-append
-                            out "/lib/python"
-                            ,(version-major+minor (package-version python))
-                            "/site-packages/gajim/data/icons")))
-               (with-directory-excursion icons
-                 (symlink adwaita "Adwaita")
-                 (copy-recursively hicolor "hicolor")))
-             #t))
-         (add-after 'install-icons 'wrap-gsettings-schema-dir
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (wrap-program (string-append (assoc-ref outputs "out")
-                                          "/bin/gajim")
-               ;; For GtkFileChooserDialog.
-               `("GSETTINGS_SCHEMA_DIR" =
-                 (,(string-append (assoc-ref inputs "gtk+")
-                                  "/share/glib-2.0/schemas"))))
              #t)))))
     (native-search-paths
-     (list (search-path-specification
-            (variable "GAJIM_PLUGIN_PATH")
-            (separator #f)              ;single entry
-            (files '("share/gajim/plugins")))
-           ;; Gajim needs to use the propagated inputs of its plugins.
-           (search-path-specification
-            (variable "PYTHONPATH")
-            (files (list (string-append
-                          "lib/python"
-
-                          ;; FIXME: Cannot use this expression as it would
-                          ;; introduce a circular dependency at the top level.
-                          ;; (version-major+minor (package-version python))
-                          "3.8"
-
-                          "/site-packages"))))))
+     (list
+      (search-path-specification
+       (variable "GAJIM_PLUGIN_PATH")
+       (separator #f)                   ;single entry
+       (files
+        (list
+         "share/gajim/plugins")))
+      ;; Gajim needs to use the propagated inputs of its plugins.
+      (search-path-specification
+       (variable "PYTHONPATH")
+       (files
+        (list
+         (string-append
+          "lib/python"
+          ;; FIXME: Cannot use this expression as it would
+          ;; introduce a circular dependency at the top level.
+          ;; (version-major+minor (package-version python))
+          "3.8"
+          "/site-packages"))))))
     (native-inputs
-     `(("intltool" ,intltool)
-       ("python-docutils" ,python-docutils)
+     `(("gettext" ,gettext-minimal)
+       ("glib:bin" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("gtk+:bin" ,gtk+ "bin")
+       ("python-distutils-extra" ,python-distutils-extra)
+       ("python-setuptools" ,python-setuptools)
        ("xorg-server" ,xorg-server-for-tests)))
     (inputs
-     `(("adwaita-icon-theme" ,adwaita-icon-theme)
+     `(("avahi" ,avahi)
+       ("dbus" ,dbus)
+       ("farstream" ,farstream)
+       ("geoclue" ,geoclue)
+       ("glib" ,glib)
+       ("glib-networking" ,glib-networking)
        ("gnome-keyring" ,gnome-keyring)
+       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
+       ("gsound",gsound)
+       ("gspell" ,gspell)
+       ("gstreamer" ,gstreamer)
+       ("gst-plugins-base" ,gst-plugins-base)
        ("gtk+" ,gtk+)
-       ("gtkspell3" ,gtkspell3)
-       ("hicolor-icon-theme" ,hicolor-icon-theme)
-       ("libsecret" ,libsecret)
-       ("python-cssutils" ,python-cssutils)
-       ("python-dbus" ,python-dbus)
-       ("python-gnupg" ,python-gnupg)
+       ("gupnp-igd" ,gupnp-igd)
+       ("libsoup" ,libsoup)
+       ("libxss" ,libxscrnsaver)
+       ("network-manager" ,network-manager)
+       ("python-css-parser" ,python-css-parser)
        ("python-keyring" ,python-keyring)
        ("python-nbxmpp" ,python-nbxmpp)
+       ("python-packaging" ,python-packaging)
        ("python-pillow" ,python-pillow)
        ("python-precis-i18n" ,python-precis-i18n)
        ("python-pycairo" ,python-pycairo)
        ("python-pygobject" ,python-pygobject)
-       ("python-pyopenssl" ,python-pyopenssl)
-       ("python-qrcode" ,python-qrcode)))
+       ("python-pyopenssl" ,python-pyopenssl)))
+    (propagated-inputs
+     `(("dconf" ,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
+and OpenPGP) and available in 29 languages.")
     (home-page "https://gajim.org/")
-    (synopsis "Jabber (XMPP) client")
-    (description "Gajim is a feature-rich and easy to use Jabber/XMPP client.
-Among its features are: a tabbed chat window and single window modes; support
-for group chat (with Multi-User Chat protocol), invitation, chat to group chat
-transformation; audio and video conferences; file transfer; TLS, GPG and
-end-to-end encryption support; XML console.")
     (license license:gpl3)))
 
 (define-public gajim-omemo
   (package
     (name "gajim-omemo")
-    (version "2.7.4")
-    (source (origin
-              (method url-fetch/zipbomb)
-              (uri (string-append
-                    "https://ftp.gajim.org/plugins_releases/omemo_"
-                    version ".zip"))
-              (sha256
-               (base32
-                "00zrj57n86c2m99n0swmmaws4f8zccbgbi8fknv6f9b1vif9jc8p"))))
+    (version "2.6.80")
+    (source
+     (origin
+       (method url-fetch/zipbomb)
+       (uri
+        (string-append
+         "https://ftp.gajim.org/plugins_releases/omemo_"
+         version ".zip"))
+       (sha256
+        (base32 "179hgx091c12258335znn1540jhp4z3n3wv5ksrgqq7l3jgc93d7"))))
     (build-system trivial-build-system)
     (arguments
      `(#:modules ((guix build utils))
@@ -781,32 +1101,69 @@ end-to-end encryption support; XML console.")
            (copy-recursively source share)
            #t))))
     (propagated-inputs
-     `(("python-axolotl" ,python-axolotl)))
+     `(("python-axolotl" ,python-axolotl)
+       ("python-axolotl-curve25519" ,python-axolotl-curve25519)
+       ("python-cryptography" ,python-cryptography)
+       ("python-qrcode" ,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
+multi-client end-to-end encryption.")
     (home-page
      "https://dev.gajim.org/gajim/gajim-plugins/-/wikis/OmemoGajimPlugin")
-    (synopsis "Gajim OMEMO plugin")
-    (description
-     "This package provides the Gajim OMEMO plugin.  OMEMO is an XMPP
-Extension Protocol (XEP) for secure multi-client end-to-end encryption based
-on Axolotl and PEP.")
+    (license license:gpl3+)))
+
+(define-public gajim-openpgp
+  (package
+    (name "gajim-openpgp")
+    (version "1.2.14")
+    (source
+     (origin
+       (method url-fetch/zipbomb)
+       (uri
+        (string-append
+         "https://ftp.gajim.org/plugins_releases/openpgp_"
+         version ".zip"))
+       (sha256
+        (base32 "0wdjpf1i4pvl4ha4plfpywwi9aw5n2mhrpv8mmbidpawxqfbd94b"))))
+    (build-system trivial-build-system)
+    (arguments
+     `(#:modules ((guix build utils))
+       #:builder
+       (begin
+         (use-modules (guix build utils))
+         (let* ((out (assoc-ref %outputs "out"))
+                (share (in-vicinity out "share/gajim/plugins"))
+                (source (assoc-ref %build-inputs "source")))
+           (mkdir-p share)
+           (copy-recursively source share)
+           #t))))
+    (propagated-inputs
+     `(("python-cryptography" ,python-cryptography)
+       ("python-gnupg" ,python-gnupg)))
+    (synopsis "Gajim OpenPGP plugin")
+    (description "Gajim-OpenPGP is a plugin that adds support for the OpenPGP
+Encryption to Gajim.")
+    (home-page "https://dev.gajim.org/gajim/gajim-plugins/-/wikis/OpenPGPplugin")
     (license license:gpl3+)))
 
 (define-public dino
   (package
     (name "dino")
-    (version "0.1.0")
+    (version "0.2.0")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "https://github.com/dino/dino/releases/download/v"
-                           version "/dino-" version ".tar.gz"))
+       (uri
+        (string-append "https://github.com/dino/dino/releases/download/v"
+                       version "/dino-" version ".tar.gz"))
        (sha256
-        (base32
-         "0dcq2jhpywgxrp9x1qqmrl2z50hazspqj547b9zz70apy3y4418h"))))
+        (base32 "0iigh7bkil6prf02dqcl6lmd89jxz685h8lqr3ni4x39zkcransn"))))
     (build-system cmake-build-system)
+    (outputs '("out" "debug"))
     (arguments
      `(#:tests? #f
-       #:parallel-build? #f ; not supported
+       #:parallel-build? #f             ; not supported
        #:modules ((guix build cmake-build-system)
                   ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
                   (guix build utils))
@@ -817,10 +1174,21 @@ on Axolotl and PEP.")
        (modify-phases %standard-phases
          (add-after 'install 'glib-or-gtk-wrap
            (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
+    (native-inputs
+     `(("gettext" ,gettext-minimal)
+       ("glib:bin" ,glib "bin")
+       ("gtk+:bin" ,gtk+ "bin")
+       ("pkg-config" ,pkg-config)
+       ("vala" ,vala)))
     (inputs
-     `(("libgee" ,libgee)
-       ("libsignal-protocol-c" ,libsignal-protocol-c)
+     `(("glib" ,glib)
+       ("glib-networking" ,glib-networking)
+       ("gpgme" ,gpgme)
+       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
+       ("gtk+" ,gtk+)
        ("libgcrypt" ,libgcrypt)
+       ("libgee" ,libgee)
+       ("libsignal-protocol-c" ,libsignal-protocol-c)
        ("libsoup" ,libsoup)
        ("qrencode" ,qrencode)
        ("sqlite" ,sqlite)
@@ -828,15 +1196,11 @@ on Axolotl and PEP.")
        ("gtk+" ,gtk+)
        ("glib-networking" ,glib-networking)
        ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
-    (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("glib" ,glib "bin")
-       ("vala" ,vala)
-       ("gettext" ,gettext-minimal)))
+    (synopsis "Graphical Jabber/XMPP Client using GTK+/Vala")
+    (description "Dino is a chat client for the desktop.  It focuses on providing
+a minimal yet reliable Jabber/XMPP experience and having encryption enabled by
+default.")
     (home-page "https://dino.im")
-    (synopsis "Graphical Jabber (XMPP) client")
-    (description "Dino is a Jabber (XMPP) client which aims to fit well into
-a graphical desktop environment like GNOME.")
     (license license:gpl3+)))
 
 (define-public prosody
@@ -1066,7 +1430,7 @@ messenger protocol.")
 (define-public utox
   (package
    (name "utox")
-   (version "0.17.1")
+   (version "0.18.0")
    (source
     (origin
      (method git-fetch)
@@ -1077,7 +1441,7 @@ messenger protocol.")
      (file-name (string-append name "-" version "-checkout"))
      (sha256
       (base32
-       "17kwqw24iqljp2icih9k6ikx12gzr8zzqr8y5h35bg8m5s8pasq5"))))
+       "0d0mwgxffg4nhai62irf8lyhd1whp9s4k892rsmqz1sra3pbjcg9"))))
    (build-system cmake-build-system)
    (arguments
     `(#:configure-flags '("-DENABLE_TESTS=on")
@@ -1116,23 +1480,23 @@ messenger protocol.")
       ("pkg-config" ,pkg-config)))
    (synopsis "Lightweight Tox client")
    (description
-    "Utox is a lightweight Tox client.  Tox is a distributed and secure
+    "uTox is a lightweight Tox client.  Tox is a distributed and secure
 instant messenger with audio and video chat capabilities.")
-   (home-page "http://utox.org/")
+   (home-page "https://github.com/uTox/uTox")
    (license license:gpl3)))
 
 (define-public qtox
   (package
     (name "qtox")
-    (version "1.17.2")
+    (version "1.17.3")
     (source (origin
-              (method url-fetch/tarbomb)
+              (method url-fetch)
               (uri (string-append "https://github.com/qTox/qTox/releases"
                                   "/download/v" version
                                   "/v" version ".tar.gz"))
               (sha256
                (base32
-                "0fmr3a0apil3rl32247qv2pqslp3knpbj5vhprdq0ixsvifrlhmh"))
+                "11n7si9wdpf80iwkvbspp14dh5jrwm7hxkj8vqhn5pkc48c5bh9j"))
               (file-name (string-append name "-" version ".tar.gz"))))
     (build-system cmake-build-system)
     (arguments
@@ -1551,15 +1915,14 @@ protocol allows.")
 (define-public mcabber
   (package
     (name "mcabber")
-    (version "1.1.0")
+    (version "1.1.1")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://mcabber.com/files/"
                            name "-" version ".tar.bz2"))
        (sha256
-        (base32
-         "1ggh865p1rf10ffsnf4g6qv9i8bls36dxdb1nzs5r9vdqci2rz04"))))
+        (base32 "0ngrcc8nzpzk4vw36ni3w073149zsi0yjh922xy9cy5a7srwx2fp"))))
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags (list "--enable-otr"
@@ -1635,7 +1998,7 @@ is also scriptable and extensible via Guile.")
 (define-public libmesode
   (package
     (name "libmesode")
-    (version "0.9.3")
+    (version "0.10.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -1644,7 +2007,7 @@ is also scriptable and extensible via Guile.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0xzfg1xx88cn36352nnjlb1p7xyw32yqkhjzq10px88iaaqz1vv0"))))
+                "1bxnkhrypgv41qyy1n545kcggmlw1hvxnhwihijhhcf2pxd2s654"))))
     (build-system gnu-build-system)
     (inputs
      `(("expat" ,expat)
@@ -1695,44 +2058,50 @@ are both supported).")
 (define-public profanity
   (package
     (name "profanity")
-    (version "0.9.5")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://profanity-im.github.io/profanity-"
-                                  version ".tar.gz"))
-              (sha256
-               (base32
-                "00j9l9v62rz9hprgiy1vrz8v3v59ph18h8kskqxr31fgqvjv5xr3"))))
-    (build-system gnu-build-system)
+    (version "0.10.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://profanity-im.github.io/profanity-"
+                       version ".tar.gz"))
+       (sha256
+        (base32
+         "137z77514fgj2dk13d12g4jrn6gs5k85nwrk1r1kiv7rj0jy61aa"))))
+    (build-system glib-or-gtk-build-system)
     (arguments
-     '(#:configure-flags
-       (list "--enable-c-plugins"
-             "--enable-otr"
-             "--enable-omemo"
-             "--enable-pgp"
-             "--enable-icons"
-             "--enable-notifications")))
+     `(#:configure-flags
+       (list
+        "--enable-notifications"
+        "--enable-python-plugins"
+        "--enable-c-plugins"
+        "--enable-plugins"
+        "--enable-otr"
+        "--enable-pgp"
+        "--enable-omemo"
+        "--enable-icons-and-clipboard")))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("autoconf-archive" ,autoconf-archive)
+       ("automake" ,automake)
+       ("cmocka" ,cmocka)
+       ("libtool" ,libtool)
+       ("pkg-config" ,pkg-config)))
     (inputs
      `(("curl" ,curl)
        ("expat" ,expat)
        ("glib" ,glib)
        ("gpgme" ,gpgme)
+       ("gtk+" ,gtk+-2)
        ("libmesode" ,libmesode)
+       ("libnotify" ,libnotify)
        ("libotr" ,libotr)
+       ("libsignal-protocol-c" ,libsignal-protocol-c)
        ("ncurses" ,ncurses)
        ("openssl" ,openssl)
+       ("python" ,python-wrapper)
        ("readline" ,readline)
        ("sqlite" ,sqlite)))
-    (native-inputs
-     `(("autoconf" ,autoconf)
-       ("autoconf-archive" ,autoconf-archive)
-       ("automake" ,automake)
-       ("cmocka" ,cmocka)
-       ("gtk+" ,gtk+-2)
-       ("libnotify" ,libnotify)
-       ("libtool" ,libtool)
-       ("libsignal-protocol-c" ,libsignal-protocol-c)
-       ("pkg-config" ,pkg-config)))
     (synopsis "Console-based XMPP client")
     (description "Profanity is a console based XMPP client written in C
 using ncurses and libmesode, inspired by Irssi.")
@@ -1773,7 +2142,7 @@ building the IRC clients and bots.")
 (define-public toxic
   (package
     (name "toxic")
-    (version "0.8.3")
+    (version "0.8.4")
     (source
      (origin
        (method git-fetch)
@@ -1781,7 +2150,7 @@ building the IRC clients and bots.")
              (url "https://github.com/JFreegman/toxic")
              (commit (string-append "v" version))))
        (sha256
-        (base32 "09l2j3lwvrq7bf3051vjsnml9w63790ly3iylgf26gkrmld6k31w"))
+        (base32 "0p1cmj1kyp506y5xm04mhlznhf5wcylvgsn6b307ms91vjqs3fg2"))
        (file-name (git-file-name name version))))
     (build-system gnu-build-system)
     (arguments
@@ -1985,7 +2354,8 @@ There is support for:
 (define-public quaternion
   (package
     (name "quaternion")
-    (version "0.0.9.4e")
+    (version "0.0.9.4f")
+    (outputs '("out" "debug"))
     (source
      (origin
        (method git-fetch)
@@ -1994,7 +2364,7 @@ There is support for:
               (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0hqhg7l6wpkdbzrdjvrbqymmahziri07ba0hvbii7dd2p0h248fv"))))
+        (base32 "1q9ddz4rs02a0w3lwrsjnh59khv38cq9f0kv09vnwvazvayn87ck"))))
     (build-system qt-build-system)
     (inputs
      `(("libqmatrixclient" ,libqmatrixclient)
@@ -2004,7 +2374,8 @@ There is support for:
        ("qtquickcontrols" ,qtquickcontrols)
        ("qtquickcontrols2" ,qtquickcontrols2)
        ("qtsvg" ,qtsvg)
-       ("qttools" ,qttools)))
+       ("qttools" ,qttools)
+       ("xdg-utils" ,xdg-utils)))
     (arguments
      `(#:tests? #f))                    ; no tests
     (home-page "https://matrix.org/docs/projects/client/quaternion.html")
@@ -2019,13 +2390,13 @@ QMatrixClient project.")
 (define-public hangups
   (package
     (name "hangups")
-    (version "0.4.10")
+    (version "0.4.11")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "hangups" version))
        (sha256
-        (base32 "0ww9z9kcb02pwnr8q1ll31wkzspc1fci1ly8ifrwzxysp4rxy3j5"))))
+        (base32 "165lravvlsgkv6pp3vgg785ihycvs43qzqxw2d2yygrc6pbhqlyv"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -2144,51 +2515,48 @@ Telegram messenger.")
     (license license:gpl2+)))
 
 (define-public tdlib
-  (let ((commit "f45d80fe16f99d112d545b7cd74ce46342fe3437")
-        (revision "0")
-        (version "1.6.6"))
-    (package
-      (name "tdlib")
-      (version (git-version version revision commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://github.com/tdlib/td")
-                      (commit commit)))
-                (sha256
-                 (base32
-                  "1q8zw26mqhpdzvqbgc7fmn8rzwm5amb8m7s6impin4342wj7h6nr"))
-                (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
+  (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
 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
@@ -2229,7 +2597,7 @@ support for high performance Telegram Bot creation.")
 (define-public chatty
  (package
    (name "chatty")
-   (version "0.1.10")
+   (version "0.1.17")
    (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -2238,7 +2606,7 @@ support for high performance Telegram Bot creation.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0czvqwjzsb0rvmgrmbh97m1b35rnwl41j7q32z4fcqb7bschibql"))))
+                "0ba1rw8a3vif9k3570hxjfm25vqys3vk3f6g8z5irklwq4bi6lmn"))))
    (build-system meson-build-system)
    (arguments
     '(#:phases
@@ -2255,9 +2623,10 @@ support for high performance Telegram Bot creation.")
    (inputs
     `(("feedbackd" ,feedbackd)
       ("folks" ,folks)
+      ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
       ("libgcrypt" ,libgcrypt)
       ("libgee" ,libgee)
-      ("libhandy" ,libhandy)
+      ("libhandy" ,libhandy-0.0)
       ("pidgin" ,pidgin)
       ("purple-mm-sms" ,purple-mm-sms)
       ("sqlite" ,sqlite)))
@@ -2270,4 +2639,33 @@ as well as on desktop platforms.  It's based on libpurple and ModemManager.")
    (home-page "https://source.puri.sm/Librem5/chatty")
    (license license:gpl3+)))
 
+(define-public mosquitto
+  (package
+    (name "mosquitto")
+    (version "1.6.12")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://mosquitto.org/files/source/mosquitto-"
+                           version ".tar.gz"))
+       (sha256
+        (base32
+         "1yq7y329baa1ly488rw125c3mvsnsa7kjkik602xv1xpkz8p73al"))))
+    (build-system cmake-build-system)
+    (inputs
+     `(("openssl" ,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
+is lightweight and is suitable for use on all devices from low power single
+board computers to full servers.
+
+The MQTT protocol provides a lightweight method of carrying out messaging
+using a publish/subscribe model. This makes it suitable for Internet of
+Things messaging such as with low power sensors or mobile devices such
+as phones, embedded computers or microcontrollers.")
+    (home-page "https://mosquitto.org/")
+    ;; Dual licensed.
+    (license (list license:epl1.0 license:edl1.0))))
+
 ;;; messaging.scm ends here
diff --git a/gnu/packages/moe.scm b/gnu/packages/moe.scm
index 23df938ae7..6d16d1a7cc 100644
--- a/gnu/packages/moe.scm
+++ b/gnu/packages/moe.scm
@@ -1,6 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2014, 2015, 2017 Eric Bavier <bavier@member.fsf.org>
-;;; Copyright © 2016, 2019 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2019, 2021 Efraim Flashner <efraim@flashner.co.il>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -28,7 +28,7 @@
 (define-public moe
   (package
     (name "moe")
-    (version "1.10")
+    (version "1.11")
     (source
      (origin
       (method url-fetch)
@@ -36,7 +36,7 @@
                           version ".tar.lz"))
       (sha256
        (base32
-        "0fymywdiy9xqppcmvgs7mf7d3gfrky3jp5jkxs2l3v93asml9zcc"))))
+        "1yg2ln2mm6gzv61cxnv60dw1cr5bl2dhkjy685jrd3aabb7wpyqf"))))
     (build-system gnu-build-system)
     (native-inputs `(("lzip" ,lzip)))
     (inputs `(("ncurses" ,ncurses)))
diff --git a/gnu/packages/monitoring.scm b/gnu/packages/monitoring.scm
index 2ec59598bf..adbd0447d0 100644
--- a/gnu/packages/monitoring.scm
+++ b/gnu/packages/monitoring.scm
@@ -2,7 +2,7 @@
 ;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2018 Sou Bunnbu <iyzsong@member.fsf.org>
 ;;; Copyright © 2017, 2018, 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
-;;; Copyright © 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018, 2020, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Gábor Boskovits <boskovits@gmail.com>
 ;;; Copyright © 2018, 2019, 2020 Oleg Pykhalov <go.wigust@gmail.com>
 ;;; Copyright © 2020 Alex ter Weele <alex.ter.weele@gmail.com>
@@ -158,7 +158,7 @@ etc. via a Web interface.  Features include:
 (define-public zabbix-agentd
   (package
     (name "zabbix-agentd")
-    (version "5.0.2")
+    (version "5.2.3")
     (source
      (origin
        (method url-fetch)
@@ -166,11 +166,12 @@ etc. via a Web interface.  Features include:
              "https://cdn.zabbix.com/zabbix/sources/stable/"
              (version-major+minor version) "/zabbix-" version ".tar.gz"))
        (sha256
-        (base32 "1cnns7ixqi7ank3cbvcs7d8rb5zh9qiqbmgivazr83jnz81qg46w"))))
+        (base32 "0wlv3jala7xinl03fr6n0y3hmq9yi0wwn27k6snqhz4yyfdwhdnf"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags
        (list "--enable-agent"
+             "--enable-ipv6"
              (string-append "--with-iconv="
                             (assoc-ref %build-inputs "libiconv"))
              (string-append "--with-libpcre="
@@ -330,49 +331,52 @@ caching them in memory for \"hot queries\" from the Graphite-Web application,
 and persisting them to disk using the Whisper time-series library.")
     (license license:asl2.0)))
 
-(define-public python2-graphite-web
+(define-public graphite-web
   (package
-    (name "python2-graphite-web")
-    (version "1.0.2")
+    (name "graphite-web")
+    (version "1.1.7")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "graphite-web" version))
        (sha256
         (base32
-         "0q8bwlj75jqyzmazfsi5sa26xl58ssa8wdxm2l4j0jqyn8xpfnmc"))))
+         "1l5a5rry9cakqxamvlx4xq63jifmncb6815bg9vy7fg1zyd3pjxk"))))
     (build-system python-build-system)
     (arguments
-     `(#:python ,python-2               ; only supports Python 2
+     `(#:tests? #f               ;XXX: not in PyPI release & requires database
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'relax-requirements
            (lambda _
              (substitute* "setup.py"
-               (("0.4.3") ,(package-version python2-django-tagging))
-               (("<1.9.99") (string-append "<="
-                             ,(package-version python2-django))))
+               ;; Allow newer versions of django-tagging.
+               (("django-tagging==")
+                "django-tagging>="))
              #t))
          ;; Don't install to /opt
          (add-after 'unpack 'do-not-install-to-/opt
            (lambda _ (setenv "GRAPHITE_NO_PREFIX" "1") #t)))))
     (propagated-inputs
-     `(("python2-cairocffi" ,python2-cairocffi)
-       ("python2-pytz" ,python2-pytz)
-       ("python2-whisper" ,python2-whisper)
-       ("python2-django" ,python2-django)
-       ("python2-django-tagging" ,python2-django-tagging)
-       ("python2-scandir" ,python2-scandir)
-       ("python2-urllib3" ,python2-urllib3)
-       ("python2-pyparsing" ,python2-pyparsing)
-       ("python2-txamqp" ,python2-txamqp)))
-    (home-page "http://graphiteapp.org/")
+     `(("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)))
+    (home-page "https://graphiteapp.org/")
     (synopsis "Scalable realtime graphing system")
     (description "Graphite is a scalable real-time graphing system that does
 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")
@@ -453,7 +457,7 @@ written in Go with pluggable metric collectors.")
 (define-public collectd
   (package
     (name "collectd")
-    (version "5.11.0")
+    (version "5.12.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -462,7 +466,7 @@ written in Go with pluggable metric collectors.")
                     ".tar.bz2"))
               (sha256
                (base32
-                "1cjxksxdqcqdccz1nbnc2fp6yy84qq361ynaq5q8bailds00mc9p"))
+                "1mh97afgq6qgmpvpr84zngh58m0sl1b4wimqgvvk376188q09bjv"))
               (patches (search-patches "collectd-5.11.0-noinstallvar.patch"))))
     (build-system gnu-build-system)
     (arguments
diff --git a/gnu/packages/moreutils.scm b/gnu/packages/moreutils.scm
index 12d93079c0..9e3bf0fc29 100644
--- a/gnu/packages/moreutils.scm
+++ b/gnu/packages/moreutils.scm
@@ -1,7 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
 ;;; Copyright © 2016, 2017, 2019 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2016–2018, 2020, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -30,7 +30,7 @@
 (define-public moreutils
   (package
     (name "moreutils")
-    (version "0.63")
+    (version "0.65")
     (source
      (origin
        (method url-fetch)
@@ -42,8 +42,7 @@
               "http://drabczyk.org/"
               name "-" version ".tar.gz")))
        (sha256
-        (base32
-         "07c3wqf1sx3nhj4cs71a9ajcfl6arjjvvnhwqz7a0xm2m1b6vj2g"))))
+        (base32 "10c8b4bwnli4gxwvgmgkc5kin1ksrxsnxmigs7y4rrh4aaszdjb0"))))
     (build-system gnu-build-system)
     ;; For building the manual pages.
     (native-inputs
diff --git a/gnu/packages/mp3.scm b/gnu/packages/mp3.scm
index 92e3d5d5f8..34390d3696 100644
--- a/gnu/packages/mp3.scm
+++ b/gnu/packages/mp3.scm
@@ -1,10 +1,10 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
-;;; Copyright © 2014, 2015, 2017 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014, 2015, 2017, 2020 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
-;;; Copyright © 2017, 2019 Pierre Langlois <pierre.langlois@gmx.com>
+;;; Copyright © 2017, 2019, 2020 Pierre Langlois <pierre.langlois@gmx.com>
 ;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
@@ -50,6 +50,7 @@
   #:use-module (gnu packages video)               ;ffmpeg
   #: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 (guix build-system python)
@@ -80,7 +81,29 @@
           (lambda _
             ;; remove option that is not supported by gcc any more
             (substitute* "configure" ((" -fforce-mem") ""))
-            #t)))))
+            #t))
+        ;; Normally one should not add a pkg-config file if one is not provided
+        ;; by upstream developers, but Audacity expects a pkg-config file for
+        ;; this package, and other major GNU/Linux distributions already provide
+        ;; such a file.
+        (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 "/mad.pc")
+                (lambda _
+                  (format #t
+                          "prefix=~@*~a~@
+                           libdir=${prefix}/lib~@
+                           includedir=${prefix}/include~@
+
+                           Name: libmad~@
+                           Description:~@
+                           Version: ~a~@
+                           Libs: -L${libdir} -lmad~@
+                           Cflags: -I${includedir}~%"
+                          out ,version)))))))))
    (synopsis "MPEG audio decoder")
    (description
     "MAD (MPEG Audio Decoder) supports MPEG-1 and the MPEG-2 extension to
@@ -105,6 +128,31 @@ This package contains the library.")
              (base32
               "0lb1w883dc46dajbdvnia5870brl5lvnlk7g7y58y9wpg5p4znk3"))))
    (build-system gnu-build-system)
+   (arguments
+    `(#:phases
+      (modify-phases %standard-phases
+        ;; Normally one should not add a pkg-config file if one is not provided
+        ;; by upstream developers, but Audacity expects a pkg-config file for
+        ;; this package, and other major GNU/Linux distributions already provide
+        ;; such a file.
+        (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 "/id3tag.pc")
+                (lambda _
+                  (format #t
+                          "prefix=~@*~a~@
+                           libdir=${prefix}/lib~@
+                           includedir=${prefix}/include~@
+
+                           Name: libid3tag~@
+                           Description:~@
+                           Version: ~a~@
+                           Libs: -L${libdir} -lid3tag -lz~@
+                           Cflags: -I${includedir}~%"
+                          out ,version)))))))))
    (inputs `(("zlib" ,zlib)))
    (synopsis "Library for reading ID3 tags")
    (description
@@ -160,18 +208,31 @@ a highly stable and efficient implementation.")
 (define-public taglib
   (package
     (name "taglib")
-    (version "1.11.1")
+    (version "1.12-beta-1")
     (source (origin
-              (method url-fetch)
-              (uri (string-append "http://taglib.github.io/releases/taglib-"
-                                  version ".tar.gz"))
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/taglib/taglib")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "0ssjcdjv4qf9liph5ry1kngam1y7zp8fzr9xv4wzzrma22kabldn"))))
+                "1mp6w2ikniw8w6d5wr0h20j0ijg8jw7s9dli5a8k9znpznvxpym4"))))
     (build-system cmake-build-system)
     (arguments
       '(#:tests? #f ; Tests are not ran with BUILD_SHARED_LIBS on.
-        #:configure-flags (list "-DBUILD_SHARED_LIBS=ON")))
+        #:configure-flags (list "-DBUILD_SHARED_LIBS=ON")
+        #:phases (modify-phases %standard-phases
+                   (add-before 'configure 'adjust-zlib-ldflags
+                     (lambda* (#:key inputs #:allow-other-keys)
+                       ;; Make sure users of 'taglib-config --libs' get the -L
+                       ;; flag for zlib.
+                       (substitute* "CMakeLists.txt"
+                         (("set\\(ZLIB_LIBRARIES_FLAGS -lz\\)")
+                          (string-append "set(ZLIB_LIBRARIES_FLAGS \"-L"
+                                         (assoc-ref inputs "zlib")
+                                         "/lib -lz\")")))
+                       #t)))))
     (inputs `(("zlib" ,zlib)))
     (home-page "https://taglib.org")
     (synopsis "Library to access audio file meta-data")
@@ -260,7 +321,8 @@ pre-defined or user-specifiable output format.")
              (base32
               "1p1mn2hsmj5cp40fnc8g1yfvk72p8pjxi866gjdkgjsqrr7xdvih"))))
    (build-system gnu-build-system)
-   (inputs `(("libid3tag" ,libid3tag)
+   (inputs `(("flac" ,flac)
+             ("libid3tag" ,libid3tag)
              ("libmad" ,libmad)
              ("libogg" ,libogg)
              ("libltdl" ,libltdl)
@@ -310,7 +372,7 @@ This package contains the binary.")
 (define-public mpg123
   (package
     (name "mpg123")
-    (version "1.26.3")
+    (version "1.26.4")
     (source
      (origin
        (method url-fetch)
@@ -320,7 +382,7 @@ This package contains the binary.")
                    "https://www.mpg123.org/download/mpg123-"
                    version ".tar.bz2")))
        (sha256
-        (base32 "0vkcfdx0mqq6lmpczsmpa2jsb0s6dryx3i7gvr32i3w9b9w9ij9h"))))
+        (base32 "0m34hjssgslcsns8lj1n7f32iyiw547qgba9j2r6d9pp1ma92688"))))
     (build-system gnu-build-system)
     (arguments '(#:configure-flags '("--with-default-audio=pulse")))
     (native-inputs
@@ -374,6 +436,27 @@ use with CD-recording software).")
               (base32
                "07nsn5sy3a8xbmw1bidxnsj5fj6kg9ai04icmqw40ybkp353dznx"))))
     (build-system gnu-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (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 "/lame.pc")
+                 (lambda _
+                   (format #t
+                           "prefix=~@*~a~@
+                           libdir=${prefix}/lib~@
+                           includedir=${prefix}/include~@
+
+                           Name: lame~@
+                           Description:~@
+                           Version: ~a~@
+                           Libs: -L${libdir} -lmp3lame~@
+                           Cflags: -I${includedir}~%"
+                           out ,version)))))))))
     (home-page "http://lame.sourceforge.net/")
     (synopsis "MPEG Audio Layer III (MP3) encoder")
     (description "LAME is a high quality MPEG Audio Layer III (MP3) encoder.")
@@ -536,14 +619,13 @@ is to provide an accurate identifier for record tracks.")
 (define-public python-audioread
   (package
     (name "python-audioread")
-    (version "2.1.8")
+    (version "2.1.9")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "audioread" version))
        (sha256
-        (base32
-         "0s6iilb8ca6j6nv5a5hbyxi5alr3crvsbr6kggh82a44pkx08f87"))))
+        (base32 "129hab8x9sb3plff2bkq4xnzc3i8k9rgcm1a36l813kc0m10wj53"))))
     (build-system python-build-system)
     (arguments `(#:tests? #f)) ; there is no "audiofile" fixture
     (native-inputs
@@ -578,3 +660,42 @@ FFmpeg, etc.")
      "This package provides bindings for the Chromaprint acoustic
 fingerprinting library and the Acoustid API.")
     (license license:expat)))
+
+(define-public python-pytaglib
+  (package
+    (name "python-pytaglib")
+    (version "1.4.6")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "pytaglib" version))
+       (sha256
+        (base32
+         "0li970qslfymz4vk1wrij2nfqw3l15cpc3fjjci48mpvg17gbnhn"))
+       ;; Delete file generated by Cython.
+       (modules '((guix build utils)))
+       (snippet
+        '(begin
+           (delete-file "src/taglib.cpp")))))
+    (build-system python-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         ;; Ensure that the Cython file is regenerated.
+         (add-after 'unpack 'setup-environment
+           (lambda _
+             (setenv "PYTAGLIB_CYTHONIZE" "1"))))))
+    (native-inputs
+     `(("python-cython" ,python-cython)
+       ("python-pytest" ,python-pytest)))
+    (inputs
+     `(("taglib" ,taglib)))
+    (home-page
+     "https://github.com/supermihi/pytaglib")
+    (synopsis
+     "Python bindings for taglib")
+    (description
+     "This package is a Python audio tagging library.  It is
+cross-platform, works with all Python versions, and is very
+simple to use yet fully featured.")
+    (license license:gpl3)))
diff --git a/gnu/packages/mpd.scm b/gnu/packages/mpd.scm
index 8c82f30d85..4138f4d2f6 100644
--- a/gnu/packages/mpd.scm
+++ b/gnu/packages/mpd.scm
@@ -7,6 +7,10 @@
 ;;; Copyright © 2016, 2018, 2019, 2020 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2019 Evan Straw <evan.straw99@gmail.com>
+;;; Copyright © 2020 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2020 Lars-Dominik Braun <lars@6xq.net>
+;;; Copyright © 2020 Simon Streit <simon@netpanic.org>
+;;; Copyright © 2021 Noah Evans <noah@nevans.me>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -30,15 +34,22 @@
   #:use-module (guix download)
   #:use-module (guix git-download)
   #:use-module (guix utils)
+  #: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 (gnu packages audio)
+  #:use-module (gnu packages autotools)
   #:use-module (gnu packages avahi)
+  #:use-module (gnu packages base)
   #:use-module (gnu packages boost)
+  #:use-module (gnu packages cdrom)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages gnome)
+  #:use-module (gnu packages gnupg)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages icu4c)
+  #:use-module (gnu packages libusb)
   #:use-module (gnu packages readline)
   #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
@@ -51,7 +62,9 @@
   #:use-module (gnu packages pcre)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages pulseaudio)
+  #:use-module (gnu packages qt)
   #:use-module (gnu packages sphinx)
   #:use-module (gnu packages sqlite)
   #:use-module (gnu packages video)
@@ -92,7 +105,7 @@ interfacing MPD in the C, C++ & Objective C languages.")
 (define-public mpd
   (package
     (name "mpd")
-    (version "0.21.25")
+    (version "0.22.4")
     (source (origin
               (method url-fetch)
               (uri
@@ -101,10 +114,10 @@ interfacing MPD in the C, C++ & Objective C languages.")
                               "/mpd-" version ".tar.xz"))
               (sha256
                (base32
-                "00f2cm3sg0vi9gxb1yk35lyyh3fbabwim3mfnsz2syrjpw0sv810"))))
+                "1l4x2jrv04hp4q9gyfg79g78bk68lrd6wd3hysl6y91rln9sj7l9"))))
     (build-system meson-build-system)
     (arguments
-     `(#:configure-flags '("-Ddocumentation=true"))) ;the default is 'false'...
+     `(#:configure-flags '("-Ddocumentation=enabled")))
     (inputs `(("ao" ,ao)
               ("alsa-lib" ,alsa-lib)
               ("avahi" ,avahi)
@@ -183,7 +196,7 @@ player daemon.")
 (define-public ncmpc
   (package
     (name "ncmpc")
-    (version "0.38")
+    (version "0.42")
     (source (origin
               (method url-fetch)
               (uri
@@ -192,7 +205,7 @@ player daemon.")
                               "/ncmpc-" version ".tar.xz"))
               (sha256
                (base32
-                "18i73q33xq89abrxjd3hhl05gjniv6ms76ndjlc168ydm8wamh9b"))))
+                "0kfdyvqd2dfrxll5bla8mm10xvpngshlmyjf6wic4wbafqflgxx5"))))
     (build-system meson-build-system)
     (arguments
      `(#:configure-flags
@@ -216,7 +229,7 @@ terminal using ncurses.")
 (define-public ncmpcpp
   (package
     (name "ncmpcpp")
-    (version "0.8.2")
+    (version "0.9.2")
     (source (origin
               (method url-fetch)
               (uri
@@ -224,7 +237,7 @@ terminal using ncurses.")
                               version ".tar.bz2"))
               (sha256
                (base32
-                "0m0mjb049sl62vx13h9waavysa30mk0rphacksnvf94n13la62v5"))))
+                "06rs734n120jp51hr0fkkhxrm7zscbhpdwls0m5b5cccghazdazs"))))
     (build-system gnu-build-system)
     (inputs `(("libmpdclient" ,libmpdclient)
               ("boost"  ,boost)
@@ -249,18 +262,19 @@ sort playlists, and a local file system browser.")
 (define-public mpdscribble
   (package
     (name "mpdscribble")
-    (version "0.22")
+    (version "0.23")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://www.musicpd.org/download/mpdscribble/"
-                                  version "/mpdscribble-" version ".tar.gz"))
+                                  version "/mpdscribble-" version ".tar.xz"))
               (sha256
                (base32
-                "0f0ybx380x2z2g1qvdndpvcrhkrgsfqckhz3ryydq2w3pl12v27z"))))
-    (build-system gnu-build-system)
-    (inputs `(("libmpdclient" ,libmpdclient)
+                "0s66zqscb44p88cl3kcv5jkjcqsskcnrv7xgrjhzrchf2kcpwf53"))))
+    (build-system meson-build-system)
+    (inputs `(("boost" ,boost)
               ("curl" ,curl)
-              ("glib" ,glib)))
+              ("libgcrypt" ,libgcrypt)
+              ("libmpdclient" ,libmpdclient)))
     (native-inputs `(("pkg-config" ,pkg-config)))
     (synopsis "MPD client for track scrobbling")
     (description "mpdscribble is a Music Player Daemon client which submits
@@ -271,20 +285,22 @@ information about tracks being played to a scrobbler, such as Libre.FM.")
 (define-public python-mpd2
   (package
     (name "python-mpd2")
-    (version "0.5.5")
+    (version "3.0.1")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "python-mpd2" version))
               (sha256
                (base32
-                "0laypd7h1j14b4vrmiayqlzdsh2j5hc3zv4l0fqvbrbw9y6763ii"))))
+                "0fxssbmnv44m03shjyvbqslc69b0160702j2s0flgvdxjggrnbjj"))))
     (build-system python-build-system)
     (arguments
      '(#:phases
        (modify-phases %standard-phases
          (replace 'check
-           (lambda _ (invoke "python" "mpd_test.py"))))))
-    (native-inputs `(("python-mock" ,python-mock)))
+           (lambda _ (invoke "python" "-m" "pytest" "mpd/tests.py"))))))
+    (native-inputs
+     `(("python-mock" ,python-mock)
+       ("python-pytest" ,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
@@ -297,7 +313,7 @@ interface for the Music Player Daemon.")
 (define-public sonata
   (package
     (name "sonata")
-    (version "1.7b1")
+    (version "1.7.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -306,7 +322,7 @@ interface for the Music Player Daemon.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1npbxlrg6k154qybfd250nq2p96kxdsdkj9wwnp93gljnii3g8wh"))))
+                "0rl8w7s2asff626clzfvyz987l2k4ml5dg417mqp9v8a962q0v2x"))))
     (build-system python-build-system)
     (arguments
      `(#:modules ((guix build gnu-build-system)
@@ -366,3 +382,137 @@ MPD library in a similar way to many other music players' 'shuffle library'
 feature. ashuffle works like any other MPD client, and can be used alongside
 other MPD frontends.")
     (license license:expat)))
+
+(define-public mpdris2
+  (package
+    (name "mpdris2")
+    (version "0.8")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/eonpatapon/mpDris2")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "048b8acsd1b8kcxzd9fsh5p9g2an9c4rznicfcpyrsjz5syv894h"))))
+    (build-system gnu-build-system)
+    ;; Manually wrap the binary, because we’re not using python-build-system.
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'wrap-program
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let ((out         (assoc-ref outputs "out"))
+                   (python-path (getenv "PYTHONPATH")))
+               (wrap-program (string-append out "/bin/mpDris2")
+                 `("PYTHONPATH" ":" prefix (,python-path)))
+               #t))))))
+    (inputs
+     `(("python-mpd2" ,python-mpd2)
+       ("python-dbus" ,python-dbus)
+       ("python-pygobject" ,python-pygobject)
+       ("python" ,python)))             ; Sets PYTHONPATH.
+    ;; For bootstrapping.
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("gettext" ,gettext-minimal)
+       ("which" ,which)
+       ("intltool" ,intltool)))
+    (synopsis "MPRIS V2.1 support for MPD")
+    (description "Client for the Music Player Daemon providing MPRIS 2
+support")
+    (home-page "https://github.com/eonpatapon/mpDris2")
+    (license license:gpl3+)))
+
+(define-public cantata
+  (package
+    (name "cantata")
+    (version "2.4.2")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://github.com/CDrummond/"
+                                  "cantata/releases/download/v" version "/"
+                                  "cantata-" version ".tar.bz2"))
+              (sha256
+               (base32
+                "10pcrpmb4n1mkgr21xd580nrbmh57q7s72cbs1zay847hc65vliy"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:tests? #f)) ; No test suite
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("eudev", eudev)
+       ("ffmpeg" ,ffmpeg)
+       ("libcdio-paranoia" ,libcdio-paranoia)
+       ("libebur128" ,libebur128)
+       ("libmtp" ,libmtp)
+       ("mpg123" ,mpg123)
+       ("qtbase" ,qtbase)
+       ("qtmultimedia" ,qtmultimedia)
+       ("qtsvg" ,qtsvg)
+       ("taglib" ,taglib)
+       ("zlib" ,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,
+supporting multiple collections, ratings, and dynamic playlists.  A local cache
+of the music library will be created to provide a hierarchy of albums and
+artists along with albumart.")
+    (home-page "https://github.com/cdrummond/cantata")
+    (license license:gpl3+)))
+
+(define-public mcg
+  (package
+    (name "mcg")
+    (version "2.1.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://gitlab.com/coderkun/mcg")
+         (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "01iqxydssxyi4s644dwl64vm7xhn0szd99hdpywbipvb7kwp5196"))))
+    (build-system python-build-system)
+    (native-inputs
+     `(("glib:bin" ,glib "bin")
+       ("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)))
+    (arguments
+     `(#:imported-modules ((guix build glib-or-gtk-build-system)
+                           ,@%python-build-system-modules)
+       #:modules ((guix build python-build-system)
+                  ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
+                  (guix build utils))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'wrap-program
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((prog (string-append (assoc-ref outputs "out")
+                                        "/bin/mcg")))
+               (wrap-program prog
+                 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
+                 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
+               #t)))
+         (add-after 'wrap-program 'glib-or-gtk-wrap
+           (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
+    (synopsis "Covergrid for the MPD")
+    (description
+     "mcg (CoverGrid) is a client for the Music Player Daemon (MPD), focusing
+on albums instead of single tracks.  It is not intended to be a replacement
+for your favorite MPD client but an addition to get a better
+album-experience.")
+    (home-page "https://gitlab.com/coderkun/mcg")
+    (license license:gpl3+)))
diff --git a/gnu/packages/mpi.scm b/gnu/packages/mpi.scm
index b39c50779a..2b73794409 100644
--- a/gnu/packages/mpi.scm
+++ b/gnu/packages/mpi.scm
@@ -1,6 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2014, 2015, 2018, 2019 Eric Bavier <bavier@member.fsf.org>
-;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net>
 ;;; Copyright © 2016 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2017 Dave Love <fx@gnu.org>
@@ -69,6 +69,7 @@
     (build-system gnu-build-system)
     (outputs '("out"           ;'lstopo' & co., depends on Cairo, libx11, etc.
                "lib"           ;small closure
+               "doc"           ;400+ section 3 man pages
                "debug"))
     (inputs
      `(("libx11" ,libx11)
@@ -114,6 +115,15 @@
                (substitute* (string-append lib "/lib/pkgconfig/hwloc.pc")
                  (("^.*prefix=.*$")
                   ""))
+               #t)))
+         (add-after 'install 'move-man3-pages
+           (lambda* (#:key outputs #:allow-other-keys)
+             ;; Move section 3 man pages to the "doc" output.
+             (let ((out (assoc-ref outputs "out"))
+                   (doc (assoc-ref outputs "doc")))
+               (copy-recursively (string-append out "/share/man/man3")
+                                 (string-append doc "/share/man/man3"))
+               (delete-file-recursively (string-append out "/share/man/man3"))
                #t))))))
     (home-page "https://www.open-mpi.org/projects/hwloc/")
     (synopsis "Abstraction of hardware architectures")
@@ -177,7 +187,7 @@ bind processes, and much more.")
 (define-public openmpi
   (package
     (name "openmpi")
-    (version "4.0.3")
+    (version "4.0.5")
     (source
      (origin
       (method url-fetch)
@@ -185,7 +195,7 @@ bind processes, and much more.")
                           (version-major+minor version)
                           "/downloads/openmpi-" version ".tar.bz2"))
       (sha256
-       (base32 "00zxcw99gr5n693cmcmn4f6a47vx1ywna895p0x7p163v37gw0hl"))
+       (base32 "02f0r9d3xgs08svkmj8v7lzviyxqnkk4yd3z0wql550xnriki3y5"))
       (patches (search-patches "openmpi-mtl-priorities.patch"))))
     (build-system gnu-build-system)
     (inputs
@@ -221,6 +231,10 @@ bind processes, and much more.")
                            "--with-hwloc=external"
                            "--with-libevent"
 
+                           ;; Help 'orterun' and 'mpirun' find their tools
+                           ;; under $prefix by default.
+                           "--enable-mpirun-prefix-by-default"
+
                            ;; InfiniBand support
                            "--enable-openib-control-hdr-padding"
                            "--enable-openib-dynamic-sl"
@@ -432,7 +446,12 @@ arrays) that expose a buffer interface.")
      `(#:configure-flags
        (list "--disable-silent-rules"             ;let's see what's happening
              "--enable-debuginfo"
-             ;; "--with-device=ch4:ucx" ; --with-device=ch4:ofi segfaults in tests
+
+             ;; Default to "ch4", as will be the case in 3.4.  It also works
+             ;; around issues when running test suites of packages that use
+             ;; MPICH: <https://issues.guix.gnu.org/39588#15>.
+             "--with-device=ch4:ucx" ; --with-device=ch4:ofi segfaults in tests
+
              (string-append "--with-hwloc-prefix="
                             (assoc-ref %build-inputs "hwloc"))
 
diff --git a/gnu/packages/mtools.scm b/gnu/packages/mtools.scm
index 5994cd140c..ba2dbdb0fd 100644
--- a/gnu/packages/mtools.scm
+++ b/gnu/packages/mtools.scm
@@ -29,14 +29,14 @@
 (define-public mtools
   (package
     (name "mtools")
-    (version "4.0.24")
+    (version "4.0.26")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnu/mtools/mtools-"
                                   version ".tar.bz2"))
               (sha256
                (base32
-                "1f9g7g8zspp8nvg1nz869il9pvxpdpchqd0vxfc89y8rjbda5x14"))
+                "06pabnjc4r2vv3dzfm6q97g6jbp2k5bhmcdwv2cf25ka8y5ir7sk"))
               (patches
                (search-patches "mtools-mformat-uninitialized.patch"))))
     (build-system gnu-build-system)
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index 77e8dbd27b..5902cf56ba 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -1,6 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2014, 2019 Eric Bavier <bavier@member.fsf.org>
-;;; 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 Paul van der Walt <paul@denknerd.org>
 ;;; Copyright © 2016 Al McElrath <hello@yrns.org>
 ;;; Copyright © 2016, 2017, 2019 Efraim Flashner <efraim@flashner.co.il>
@@ -13,7 +13,7 @@
 ;;; Copyright © 2017, 2018, 2019, 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;; Copyright © 2017, 2018, 2019 Pierre Langlois <pierre.langlois@gmx.com>
 ;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net>
-;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 nee <nee.git@hidamari.blue>
 ;;; Copyright © 2018 Stefan Reichör <stefan@xsteve.at>
 ;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
@@ -29,6 +29,10 @@
 ;;; Copyright © 2020 Lars-Dominik Braun <lars@6xq.net>
 ;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org>
 ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
+;;; Copyright © 2020 Tanguy Le Carrour <tanguy@bioneland.org>
+;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
+;;; Copyright © 2019 Riku Viitanen <riku.viitanen0@gmail.com>
+;;; Copyright © 2020 Ryan Prior <rprior@protonmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -73,11 +77,13 @@
   #: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 code)
   #:use-module (gnu packages check)
   #:use-module (gnu packages cmake)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages cpp)
   #:use-module (gnu packages crypto)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages cyrus-sasl)
@@ -135,6 +141,7 @@
   #:use-module (gnu packages rsync)
   #:use-module (gnu packages sdl)
   #:use-module (gnu packages sqlite)
+  #:use-module (gnu packages stb)
   #:use-module (gnu packages tcl)
   #:use-module (gnu packages texinfo)
   #:use-module (gnu packages tex)
@@ -145,6 +152,7 @@
   #:use-module (gnu packages vim)       ;for 'xxd'
   #:use-module (gnu packages web)
   #:use-module (gnu packages wxwidgets)
+  #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg)
   #:use-module (gnu packages xiph)
@@ -152,6 +160,123 @@
   #:use-module (gnu packages lua)
   #:use-module ((srfi srfi-1) #:select (last)))
 
+(define-public audacious
+  (package
+    (name "audacious")
+    (version "4.0.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://distfiles.audacious-media-player.org/"
+                           "audacious-" version ".tar.bz2"))
+       (sha256
+        (base32 "028zjgz0p7ys15lk2a30m5zcv9xrx3ga50wjsh4m4zxilgkakbji"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:configure-flags
+       (list (string-append "LDFLAGS=-Wl,-rpath=" %output "/lib"))
+       #:tests? #f                      ; no check target
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'unpack-plugins
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((plugins (assoc-ref inputs "audacious-plugins")))
+               (invoke "tar" "xvf" plugins)
+               #t)))
+         (add-after 'unpack-plugins 'configure-plugins
+           (lambda* (#:key configure-flags outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (with-directory-excursion
+                   (string-append "audacious-plugins-" ,version)
+                 (substitute* "configure"
+                   (("/bin/sh") (which "sh")))
+                 (apply invoke "./configure"
+                        (append configure-flags
+                                ;; audacious-plugins requires audacious to build.
+                                (list (string-append "PKG_CONFIG_PATH="
+                                                     out "/lib/pkgconfig:"
+                                                     (getenv "PKG_CONFIG_PATH"))
+                                      (string-append "--prefix=" out))))))))
+         (add-after 'configure-plugins 'build-plugins
+           (lambda _
+             (with-directory-excursion
+                 (string-append "audacious-plugins-" ,version)
+               (invoke "make" "-j" (number->string (parallel-job-count))))))
+         (add-after 'build-plugins 'install-plugins
+           (lambda _
+             (with-directory-excursion
+                 (string-append "audacious-plugins-" ,version)
+               (invoke "make" "install")))))))
+    (native-inputs
+     `(("audacious-plugins"
+        ,(origin
+           (method url-fetch)
+           (uri (string-append "https://distfiles.audacious-media-player.org/"
+                               "audacious-plugins-" version ".tar.bz2"))
+           (sha256
+            (base32 "0ny5w1agr9jaz5w3wyyxf1ygmzmd1sivaf97lcm4z4w6529520lz"))))
+       ("gettext" ,gettext-minimal)
+       ("glib:bin" ,glib "bin")         ; for gdbus-codegen
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("dbus" ,dbus)
+       ("qtbase" ,qtbase)
+       ("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)
+       ("libmodplug" ,libmodplug)
+       ("libnotify" ,libnotify)
+       ("libogg" ,libogg)
+       ("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)))
+    (home-page "https://audacious-media-player.org")
+    (synopsis "Modular and skinnable audio player")
+    (description
+     "Audacious is an audio player descended from XMMS.  Drag and drop
+folders and individual song files, search for artists and albums in
+your entire music library, or create and edit your own custom
+playlists.  Listen to CD’s or stream music from the Internet.  Tweak
+the sound with the graphical equalizer or experiment with LADSPA
+effects.  Enjoy the modern GTK-themed interface or change things up
+with Winamp Classic skins.  Use the plugins included with Audacious to
+fetch lyrics for your music, to set an alarm in the morning, and
+more.")
+    ;; According to COPYING, Audacious and its plugins are licensed
+    ;; under the BSD 2-clause license and libguess is licensed under
+    ;; the BSD 3-clause license.
+    (license (list license:bsd-2
+                   license:bsd-3
+                   ;; Plugin licenses that aren't BSD 2- or 3-clause.
+                   license:lgpl2.1
+                   license:gpl2
+                   license:gpl3
+                   license:expat
+                   license:isc
+                   license:lgpl2.0))))
+
 (define-public aria-maestosa
   (package
     (name "aria-maestosa")
@@ -504,7 +629,7 @@ settings (aliasing, linear interpolation and cubic interpolation).")
 (define-public hydrogen
   (package
     (name "hydrogen")
-    (version "1.0.0")
+    (version "1.0.1")
     (source
      (origin
        (method git-fetch)
@@ -513,7 +638,7 @@ settings (aliasing, linear interpolation and cubic interpolation).")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1kwlqfah0yk135i0rzmbbgnqdzxrzg9yslii5asl4ip9x4dc1w3r"))))
+        (base32 "0snljpvbcgikhz610c325dgvayi0k512p3bglck9vvi90wsqx7l1"))))
     (build-system cmake-build-system)
     (arguments
      `(#:test-target "tests"
@@ -741,16 +866,64 @@ MusePack, Monkey's Audio, and WavPack files.")
                                " --mcpu=generic --attr=none")))
              #t)))))
     (inputs
-     `(("llvm" ,llvm-for-extempore)
+     `(("llvm"
+        ,(package
+           (inherit llvm-3.8)
+           (name "llvm-for-extempore")
+           (source
+            (origin
+              (method url-fetch)
+              (uri (string-append "http://extempore.moso.com.au/extras/"
+                                  "llvm-3.8.0.src-patched-for-extempore.tar.xz"))
+              (sha256
+               (base32
+                "1svdl6fxn8l01ni8mpm0bd5h856ahv3h9sdzgmymr6fayckjvqzs"))))))
        ("libffi" ,libffi)
        ("jack" ,jack-1)
        ("libsndfile" ,libsndfile)
        ("glfw" ,glfw)
        ("apr" ,apr)
-       ("stb-image" ,stb-image-for-extempore)
+       ("stb-image"
+        ,(let ((revision "1")
+               (commit "152a250a702bf28951bb0220d63bc0c99830c498"))
+           (package
+             (inherit stb-image)
+             (name "stb-image-for-extempore")
+             (version (git-version "0" revision commit))
+             (source
+              (origin (method git-fetch)
+                      (uri (git-reference
+                            (url "https://github.com/extemporelang/stb")
+                            (commit commit)))
+                      (sha256
+                       (base32
+                        "0y0aa20pj9311x2ii06zg8xs34idg14hfgldqc5ymizc6cf1qiqv"))
+                      (file-name (git-file-name name version))))
+             (build-system cmake-build-system)
+             (arguments `(#:tests? #f)) ;no tests included
+             (inputs '()))))
        ("kiss-fft" ,kiss-fft-for-extempore)
        ("nanovg" ,nanovg-for-extempore)
-       ("portmidi" ,portmidi-for-extempore)
+       ("portmidi"
+        ,(let ((version "217")
+               (revision "0")
+               (commit "8602f548f71daf5ef638b2f7d224753400cb2158"))
+           (package
+             (inherit portmidi)
+             (name "portmidi-for-extempore")
+             (version (git-version version revision commit))
+             (source (origin
+                       (method git-fetch)
+                       (uri (git-reference
+                             (url "https://github.com/extemporelang/portmidi")
+                             (commit commit)))
+                       (file-name (git-file-name name version))
+                       (sha256
+                        (base32
+                         "1qidzl1s3kzhczzm96rcd2ppn27a97k2axgfh1zhvyf0s52d7m4w"))))
+             (build-system cmake-build-system)
+             (arguments `(#:tests? #f)) ;no tests
+             (native-inputs '()))))
        ("assimp" ,assimp)
        ("alsa-lib" ,alsa-lib)
        ("portaudio" ,portaudio)
@@ -775,6 +948,75 @@ are helpful when working in problem spaces where timing is important (such as
 audio and video).")
     (license license:bsd-2)))
 
+(define-public surge-synth
+  (package
+   (name "surge-synth")
+   (version "1.7.1")
+   (source
+     (origin
+       (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/surge-synthesizer/surge")
+               (commit (string-append "release_" version))
+               (recursive? #t))) ; build system expects modules to be there
+        (file-name (git-file-name name version))
+        (sha256
+         (base32
+          "1jhk8iaqh89dnci4446b47315v2lc8gclraygk8m9jl20zpjxl0l"))))
+   (build-system cmake-build-system)
+   (arguments
+    `(#:tests? #f ; no tests included
+      #:phases
+      (modify-phases %standard-phases
+        (add-after 'unpack 'replace-python
+          (lambda* (#:key inputs outputs #:allow-other-keys)
+            (substitute* "CMakeLists.txt"
+              ((" python ")
+               (string-append " " (assoc-ref inputs "python")
+                              "/bin/python3 ")))
+            #t))
+        (add-after 'unpack 'fix-data-directory-name
+          (lambda* (#:key inputs outputs #:allow-other-keys)
+            (substitute* "src/common/SurgeStorage.cpp"
+              (("/usr") (assoc-ref outputs "out")))
+            #t))
+        (replace 'install ; no install target
+          (lambda* (#:key inputs outputs #:allow-other-keys)
+            (let* ((src (assoc-ref inputs "source"))
+                   (out (assoc-ref outputs "out"))
+                   (share (string-append out "/share"))
+                   (lib (string-append out "/lib"))
+                   (lv2 (string-append lib "/lv2"))
+                   (vst3 (string-append lib "/vst3")))
+              (mkdir-p lv2)
+              (mkdir-p vst3)
+              ;; Install LV2 plugin.
+              (copy-recursively "surge_products/Surge.lv2"
+                                (string-append lv2 "/Surge.lv2"))
+              ;; Install VST3 plugin.
+              (copy-recursively "surge_products/Surge.vst3"
+                                (string-append vst3 "/Surge.vst3"))
+              ;; Install data.
+              (copy-recursively (string-append src "/resources/data")
+                                (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)))
+   (native-inputs
+    `(("pkg-config" ,pkg-config)))
+   (home-page "https://surge-synthesizer.github.io/")
+   (synopsis "Synthesizer plugin")
+   (description
+    "Surge is a subtractive hybrid digital synthesizer.  Each patch contains
+two @dfn{scenes} which are separate instances of the entire synthesis
+engine (except effects) that can be used for layering or split patches.")
+   (license license:gpl3+)))
+
 (define-public klick
   (package
     (name "klick")
@@ -821,6 +1063,60 @@ audio and video).")
 you to define complex tempo maps for entire songs or performances.")
     (license license:gpl2+)))
 
+(define-public glyr
+  (package
+    (name "glyr")
+    (version "1.0.10")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/sahib/glyr")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1miwbqzkhg0v3zysrwh60pj9sv6ci4lzq2vq2hhc6pc6hdyh8xyr"))))
+    (build-system cmake-build-system)
+    (arguments
+     '(#:configure-flags '("-DTEST=true")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-tests
+           (lambda _
+             (substitute* "spec/capi/check_api.c"
+               (("fail_unless \\(c != NULL,\"Could not load www.google.de\"\\);")
+                ""))
+             #t))
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               ;; capi tests
+               (invoke "bin/check_api")
+               ;; (invoke "bin/check_opt") TODO Very dependent on the network
+               (invoke "bin/check_dbc"))
+
+             ;; TODO Work out how to run the spec/providers Python tests
+             #t)))))
+    (inputs
+     `(("glib" ,glib)
+       ("curl" ,curl)
+       ("sqlite" ,sqlite)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("check" ,check)))
+    (home-page "https://github.com/sahib/glyr")
+    (synopsis "Search engine for music related metadata")
+    (description
+     "Glyr comes both in a command-line interface tool (@command{glyrc}) and
+as a C library (libglyr).
+
+The sort of metadata glyr is searching (and downloading) is usually the data
+you see in your musicplayer.  And indeed, originally it was written to serve
+as internally library for a musicplayer, but has been extended to work as a
+standalone program which is able to download cover art, lyrics, photos,
+biographies, reviews and more.")
+    (license license:lgpl3+)))
+
 (define-public gtklick
   (package
     (name "gtklick")
@@ -1205,7 +1501,7 @@ complete studio.")
       (source (origin
                 (method git-fetch)
                 (uri (git-reference
-                      (url "https://github.com/onkelDead/tascam-gtk.git")
+                      (url "https://github.com/onkelDead/tascam-gtk")
                       (commit commit)))
                 (file-name (git-file-name name version))
                 (sha256
@@ -1231,7 +1527,7 @@ device supports.")
 (define-public bsequencer
   (package
     (name "bsequencer")
-    (version "1.2.0")
+    (version "1.8.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -1240,7 +1536,7 @@ device supports.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "08xwz5v8wrar0rx7qdr9pkpjz2k9sw6bn5glhpn6sp6453fabf8q"))))
+                "0w7iwzz2r4a699fi24qk71vv2k3jpl9ylzlgmvyc3rlgad0m01k1"))))
     (build-system gnu-build-system)
     (arguments
      `(#:make-flags
@@ -1266,17 +1562,17 @@ with a selectable pattern matrix size.")
   (package
     (inherit bsequencer)
     (name "bchoppr")
-    (version "1.4.2")
+    (version "1.8.0")
     (source
-      (origin
-        (method git-fetch)
-        (uri (git-reference
-               (url "https://github.com/sjaehn/BChoppr")
-               (commit version)))
-        (file-name (git-file-name name version))
-        (sha256
-          (base32
-            "1ympx0kyn3mkb23xgd44rlrf4qnngnlkmikz9syhayklgax7ijgm"))))
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/sjaehn/BChoppr")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1nd6byy75f0rbz9dm9drhxmpsfhxhg0y7q3v2m3098llynhy9k2j"))))
     (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).
@@ -1307,27 +1603,68 @@ B.Choppr is the successor of B.Slizr.")
   (package
     (inherit bsequencer)
     (name "bjumblr")
-    (version "0.2")
+    (version "1.4.2")
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
              (url "https://github.com/sjaehn/BJumblr")
-             (commit (string-append "v" version))))
+             (commit version)))
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "14z8113zkwykbhm1a8h2xs972dgifvlfij92b08jckyc7cbz84ys"))))
+         "0kl6hrxmqrdf0195bfnzsa2h1073fgiqrfhg2276fm1954sm994v"))))
     (inputs
-     `(("cairo", cairo)
-       ("libsndfile", libsndfile)
-       ("lv2", lv2)))
+     `(("cairo" ,cairo)
+       ("libsndfile" ,libsndfile)
+       ("lv2" ,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.")
     (home-page "https://github.com/sjaehn/BJumblr")
     (license license:gpl3+)))
 
+(define-public bschaffl
+  (package
+    (inherit bsequencer)
+    (name "bschaffl")
+    (version "1.2.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/sjaehn/BSchaffl")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1c09acqrbd387ba41f8ch1qykdap5h6cg9if5pgd16i4dmjnpghj"))))
+    (inputs
+     `(("cairo" ,cairo)
+       ("fontconfig" ,fontconfig)
+       ("libsndfile" ,libsndfile)
+       ("libx11" ,libx11)
+       ("lv2" ,lv2)))
+    (home-page "https://github.com/sjaehn/BSchaffl")
+    (synopsis "Pattern-controlled MIDI amp & time stretch LV2 plugin")
+    (description "This package provides an LV2 plugin that allows for
+pattern-controlled MIDI amp & time stretching to produce shuffle / swing
+effects.
+
+Key features include:
+
+@enumerate
+@item MIDI velocity amplification and timing manipulation plugin
+@item Swing and shuffle rhythms
+@item Pre-generator dynamics
+@item Tempo rubato
+@item Pattern (sliders) or shape-controlled
+@item MIDI filters
+@item Smart quantization
+@end itemize
+")
+    (license license:gpl3+)))
+
 (define-public solfege
   (package
     (name "solfege")
@@ -1410,46 +1747,47 @@ your own lessons.")
     (license license:gpl3+)))
 
 (define-public powertabeditor
-  ;; This commit is after the switch from catch2 to doctest; I couldn't build
-  ;; powertabeditor with catch2.
-  (let ((commit "c5d39b25b75bf87ec693a3ac5018823b1d87f277")
-        (revision "1"))
-    (package
-      (name "powertabeditor")
-      (version (git-version "2.0.0-alpha12" revision commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://github.com/powertab/powertabeditor")
-                      (commit commit)))
-                (file-name (git-file-name name version))
-                (sha256
-                 (base32
-                  "16qhqfvk14bp7s8cwr8ds8zfd80pq603d7aymr7967pnb49kic5z"))))
-      (build-system cmake-build-system)
-      (arguments
-       `(#:phases
-         (modify-phases %standard-phases
-           (replace 'check (lambda _ (invoke "bin/pte_tests"))))))
-      (inputs
-       `(("alsa-lib" ,alsa-lib)
-         ("boost" ,boost)
-         ("minizip" ,minizip)
-         ("pugixml" ,pugixml)
-         ("qtbase" ,qtbase)
-         ("rapidjson" ,rapidjson)
-         ("rtmidi" ,rtmidi)
-         ("timidity" ,timidity++)
-         ("zlib" ,zlib)))
-      (native-inputs
-       `(("doctest" ,doctest)
-         ("pkg-config" ,pkg-config)))
-      (home-page "https://github.com/powertab/powertabedito")
-      (synopsis "Guitar tablature editor")
-      (description
-       "Power Tab Editor 2.0 is the successor to the famous original Power Tab
+  (package
+    (name "powertabeditor")
+    (version "2.0.0-alpha14")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/powertab/powertabeditor")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1wsvni2aa9h2bpndlic7ckch4n600ahwm56n521y5vxivwjx3jmj"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check (lambda _ (invoke "bin/pte_tests")))
+         (add-after 'unpack 'fix-pugixml-detection
+           (lambda _
+             (substitute* "cmake/third_party/pugixml.cmake"
+               (("add_library") "#add_library"))
+             #t)))))
+    (inputs
+     `(("alsa-lib" ,alsa-lib)
+       ("boost" ,boost)
+       ("minizip" ,minizip)
+       ("pugixml" ,pugixml)
+       ("qtbase" ,qtbase)
+       ("rapidjson" ,rapidjson)
+       ("rtmidi" ,rtmidi)
+       ("timidity" ,timidity++)
+       ("zlib" ,zlib)))
+    (native-inputs
+     `(("doctest" ,doctest)
+       ("pkg-config" ,pkg-config)))
+    (home-page "https://github.com/powertab/powertabedito")
+    (synopsis "Guitar tablature editor")
+    (description
+     "Power Tab Editor 2.0 is the successor to the famous original Power Tab
 Editor.  It is compatible with Power Tab Editor 1.7 and Guitar Pro.")
-      (license license:gpl3+))))
+    (license license:gpl3+)))
 
 (define-public jalv-select
   (package
@@ -1501,7 +1839,7 @@ users to select LV2 plugins and run them with jalv.")
 (define-public synthv1
   (package
     (name "synthv1")
-    (version "0.9.16")
+    (version "0.9.19")
     (source (origin
               (method url-fetch)
               (uri
@@ -1509,7 +1847,7 @@ users to select LV2 plugins and run them with jalv.")
                               "/synthv1-" version ".tar.gz"))
               (sha256
                (base32
-                "1k5sm6s2d5di5yk0bxwy3nizq9m1ym46b4qz2m45nm3zspkbzybp"))))
+                "17sizhav01mn07gi812n8wqdcr85290zqg609s18cww2b95dy6mn"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f))                    ; there are no tests
@@ -1533,7 +1871,7 @@ oscillators and stereo effects.")
 (define-public drumkv1
   (package
     (name "drumkv1")
-    (version "0.9.16")
+    (version "0.9.19")
     (source (origin
               (method url-fetch)
               (uri
@@ -1541,7 +1879,7 @@ oscillators and stereo effects.")
                               "/drumkv1-" version ".tar.gz"))
               (sha256
                (base32
-                "1r55575w9r0ifysw9mgxjvv0fszvx8ykjgim3zczf3mb5s9ngavv"))))
+                "0w9frc634yg2m0yc84szdf6x7l4f19pcviqpg065a1kdixf98qrf"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f))                    ; there are no tests
@@ -1566,7 +1904,7 @@ effects.")
 (define-public samplv1
   (package
     (name "samplv1")
-    (version "0.9.16")
+    (version "0.9.19")
     (source (origin
               (method url-fetch)
               (uri
@@ -1574,7 +1912,7 @@ effects.")
                               "/samplv1-" version ".tar.gz"))
               (sha256
                (base32
-                "0k5vpjd4wv7h0s3f7gg07a2ksw0b010yvkwmadzzvv2qfb928grm"))))
+                "1fwvk83sfvp1k6qyqv1a7a1l8sbm6azcldaiiqa3ls1vhl4m5wv4"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f))                    ; there are no tests
@@ -1599,7 +1937,7 @@ effects.")
 (define-public padthv1
   (package
     (name "padthv1")
-    (version "0.9.16")
+    (version "0.9.19")
     (source (origin
               (method url-fetch)
               (uri
@@ -1607,7 +1945,7 @@ effects.")
                               "/padthv1-" version ".tar.gz"))
               (sha256
                (base32
-                "1f2v60dpja0rnml60g463fjiz0f84v32yjwpvr56z79h1i6fssmv"))))
+                "06fkrc4xxzr3sa3c76lnkcm4q9k0xl5993bn60la0ja4sz2kp6r7"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f))                    ; there are no tests
@@ -1617,7 +1955,7 @@ effects.")
        ("alsa-lib" ,alsa-lib)
        ("non-session-manager" ,non-session-manager)
        ("liblo" ,liblo)
-       ("fftw" ,fftw)
+       ("fftwf" ,fftwf)
        ("qtbase" ,qtbase)))
     (native-inputs
      `(("pkg-config" ,pkg-config)
@@ -1644,17 +1982,30 @@ special variant of additive synthesis.")
         (base32
          "1882pfcmf3rqg3vd4qflzkppcv158d748i603spqjbxqi8z7x7w0"))))
     (build-system gnu-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-file-names
+           (lambda _
+             (substitute* "src/GUI/editor_pane.c"
+               (("/usr/bin/unzip") (which "unzip")))
+             (substitute* "src/GUI/GUI.cc"
+               (("/usr/bin/which") (which "which")))
+             #t)))))
     (inputs
      `(("alsa-lib" ,alsa-lib)
+       ("gtk+" ,gtk+-2)
+       ("gtkmm" ,gtkmm-2)
        ("jack" ,jack-1)
-       ("lv2" ,lv2)
        ("lash" ,lash)
        ("libsndfile" ,libsndfile)
-       ("gtk+" ,gtk+-2)
-       ("gtkmm" ,gtkmm-2)))
+       ("lv2" ,lv2)
+       ;; External commands invoked at run time.
+       ("unzip" ,unzip)
+       ("which" ,which)))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("intltool" ,intltool)))
+     `(("intltool" ,intltool)
+       ("pkg-config" ,pkg-config)))
     (home-page "https://amsynth.github.io")
     (synopsis "Analog modeling synthesizer")
     (description
@@ -1945,7 +2296,7 @@ export.")
 (define-public pd
   (package
     (name "pd")
-    (version "0.51-0")
+    (version "0.51-4")
     (source (origin
               (method url-fetch)
               (uri
@@ -1953,7 +2304,7 @@ export.")
                               version ".src.tar.gz"))
               (sha256
                (base32
-                "0qzv4hjf4h7xx00ihnbl43pxa0fia9qkc8nwgzhqrs12jiljz6ps"))))
+                "1hgw1ciwr59f4f9s0h7c2l36wcsn3jsddhr1r9qj97vf64c1ynaj"))))
     (build-system gnu-build-system)
     (arguments
      (let ((wish (string-append "wish" (version-major+minor
@@ -2061,8 +2412,25 @@ main purpose is to liberate raw audio rendering from audio and MIDI drivers.")
              (let* ((out (assoc-ref outputs "out"))
                     (lib (string-append out "/lib")))
                (with-directory-excursion lib
-                 (symlink "libportmidi.so" "libporttime.so")))
-             #t)))))
+                 (symlink "libportmidi.so" "libporttime.so")))))
+         (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 "/portmidi.pc")
+                 (lambda _
+                   (format #t
+                           "prefix=~@*~a~@
+                           libdir=${prefix}/lib~@
+                           includedir=${prefix}/include~@
+
+                           Name: portmidi~@
+                           Description:~@
+                           Version: ~a~@
+                           Libs: -L${libdir} -lportmidi~@
+                           Cflags: -I${includedir}~%"
+                           out ,version)))))))))
     (inputs
      `(("alsa-lib" ,alsa-lib)))
     (native-inputs
@@ -2074,29 +2442,6 @@ main purpose is to liberate raw audio rendering from audio and MIDI drivers.")
 using a system-independent interface.")
     (license license:expat)))
 
-(define-public portmidi-for-extempore
-  (let ((version "217")
-        (revision "0")
-        (commit "8602f548f71daf5ef638b2f7d224753400cb2158"))
-    (package (inherit portmidi)
-      (name "portmidi-for-extempore")
-      (version (git-version version revision commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://github.com/extemporelang/portmidi")
-                      (commit commit)))
-                (file-name (git-file-name name version))
-                (sha256
-                 (base32
-                  "1qidzl1s3kzhczzm96rcd2ppn27a97k2axgfh1zhvyf0s52d7m4w"))))
-      (build-system cmake-build-system)
-      (arguments `(#:tests? #f))        ; no tests
-      (native-inputs '())
-      ;; Extempore refuses to build on architectures other than x86_64
-      (supported-systems '("x86_64-linux"))
-      (home-page "https://github.com/extemporelang/portmidi/"))))
-
 (define-public python-pyportmidi
   (package
     (name "python-pyportmidi")
@@ -2134,7 +2479,7 @@ using a system-independent interface.")
 (define-public frescobaldi
   (package
     (name "frescobaldi")
-    (version "3.1.2")
+    (version "3.1.3")
     (source
      (origin
        (method url-fetch)
@@ -2142,7 +2487,7 @@ using a system-independent interface.")
              "https://github.com/wbsoft/frescobaldi/releases/download/v"
              version "/frescobaldi-" version ".tar.gz"))
        (sha256
-        (base32 "084vxzvxnxl5rrhllincnh6krsyi03c8p0452ppzmn9c52wgyb2w"))))
+        (base32 "1hg9yc8kj445fjsby92g3qf50crcl1pb079zfma18sb7ycv50zww"))))
     (build-system python-build-system)
     (arguments
      `(#:tests? #f))                    ;no tests included
@@ -2168,14 +2513,14 @@ browser.")
 (define-public drumstick
   (package
     (name "drumstick")
-    (version "1.1.3")
+    (version "2.0.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://sourceforge/drumstick/"
                                   version "/drumstick-" version ".tar.bz2"))
               (sha256
                (base32
-                "1n9wvg79yvkygrkc8xd8pgrd3d7hqmr7gh24dccf0px23lla9b3m"))))
+                "088j0w3kr9i4lh78y0js0q8adlfzkr89xq2dxc8y3bafsgihax1x"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f                      ; no test target
@@ -2194,12 +2539,14 @@ browser.")
     (inputs
      `(("qtbase" ,qtbase)
        ("qtsvg" ,qtsvg)
+       ("qttools" ,qttools)
        ("alsa-lib" ,alsa-lib)))
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("libxslt" ,libxslt)             ; for xsltproc
        ("docbook-xsl" ,docbook-xsl)
-       ("doxygen" ,doxygen)))
+       ("doxygen" ,doxygen)
+       ("graphviz" ,graphviz))) ; for dot
     (home-page "http://drumstick.sourceforge.net/")
     (synopsis "C++ MIDI library")
     (description
@@ -2214,14 +2561,14 @@ backends, including ALSA, OSS, Network and FluidSynth.")
 (define-public vmpk
   (package
     (name "vmpk")
-    (version "0.7.2")
+    (version "0.8.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://sourceforge/vmpk/vmpk/"
                                   version "/vmpk-" version ".tar.bz2"))
               (sha256
                (base32
-                "1i3hnvdgz46n4k5v0q4jhgh7nkh0s390ix4nqr69z0q3026yp0p6"))))
+                "0wn45c4sbvan7schq93zmsgg5fcf144mbbawxn5kq699vrbc3473"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f  ; no test target
@@ -2304,66 +2651,61 @@ capabilities, custom envelopes, effects, etc.")
     (license license:gpl2)))
 
 (define-public yoshimi
-  ;; Release 1.7.1 doesn't build with our version of LV2.  Applying only
-  ;; 86996cbb235f0fe138ae814a6758c2c8ba1c2a38 is not enough.
-  (let ((commit "bfcadc6537dbcb301cd93346f21d36bcbffa36c7")
-        (revision "0"))
-    (package
-      (name "yoshimi")
-      (version (git-version "1.7.1" revision commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://git.code.sf.net/p/yoshimi/code")
-               (commit commit)))
-         (sha256
-          (base32 "0vhdxj7ky4iyq11r5wj9jwavjih4xvcn2djbrlmwpkdhrzpy6myl"))
-         (file-name (git-file-name name version))))
-      (build-system cmake-build-system)
-      (arguments
-       `(#:tests? #f                    ; there are no tests
-         #:configure-flags
-         (list (string-append "-DCMAKE_INSTALL_DATAROOTDIR="
-                              (assoc-ref %outputs "out") "/share"))
-         #:phases
-         (modify-phases %standard-phases
-           (add-before 'configure 'enter-dir
-             (lambda _ (chdir "src") #t))
-           ;; Move SSE compiler optimization flags from generic target to
-           ;; athlon64 and core2 targets, because otherwise the build would fail
-           ;; on non-Intel machines.
-           (add-after 'unpack 'remove-sse-flags-from-generic-target
-             (lambda _
-               (substitute* "src/CMakeLists.txt"
-                 (("-msse -msse2 -mfpmath=sse") "")
-                 (("-march=(athlon64|core2)" flag)
-                  (string-append flag " -msse -msse2 -mfpmath=sse")))
-               #t)))))
-      (inputs
-       `(("boost" ,boost)
-         ("fftwf" ,fftwf)
-         ("alsa-lib" ,alsa-lib)
-         ("jack" ,jack-1)
-         ("fontconfig" ,fontconfig)
-         ("minixml" ,minixml)
-         ("mesa" ,mesa)
-         ("fltk" ,fltk)
-         ("lv2" ,lv2)
-         ("readline" ,readline)
-         ("ncurses" ,ncurses)
-         ("cairo" ,cairo)
-         ("zlib" ,zlib)))
-      (native-inputs
-       `(("pkg-config" ,pkg-config)))
-      (home-page "http://yoshimi.sourceforge.net/")
-      (synopsis "Multi-paradigm software synthesizer")
-      (description
-       "Yoshimi is a fork of ZynAddSubFX, a feature-heavy real-time software
+  (package
+    (name "yoshimi")
+    (version "1.7.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://sourceforge/yoshimi/"
+                           (version-major+minor version)
+                           "/yoshimi-" version ".tar.bz2"))
+       (sha256
+        (base32 "0lxfqj4p4njww3n0wa6yfj38zfls16y3wszd47gvc5asmqyg5vjd"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:tests? #f                      ; there are no tests
+       #:configure-flags
+       (list (string-append "-DCMAKE_INSTALL_DATAROOTDIR="
+                            (assoc-ref %outputs "out") "/share"))
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'configure 'enter-dir
+           (lambda _ (chdir "src") #t))
+         ;; Move SSE compiler optimization flags from generic target to
+         ;; athlon64 and core2 targets, because otherwise the build would fail
+         ;; on non-Intel machines.
+         (add-after 'unpack 'remove-sse-flags-from-generic-target
+           (lambda _
+             (substitute* "src/CMakeLists.txt"
+               (("-msse -msse2 -mfpmath=sse") "")
+               (("-march=(athlon64|core2)" flag)
+                (string-append flag " -msse -msse2 -mfpmath=sse")))
+             #t)))))
+    (inputs
+     `(("boost" ,boost)
+       ("fftwf" ,fftwf)
+       ("alsa-lib" ,alsa-lib)
+       ("jack" ,jack-1)
+       ("fontconfig" ,fontconfig)
+       ("minixml" ,minixml)
+       ("mesa" ,mesa)
+       ("fltk" ,fltk)
+       ("lv2" ,lv2)
+       ("readline" ,readline)
+       ("ncurses" ,ncurses)
+       ("cairo" ,cairo)
+       ("zlib" ,zlib)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (home-page "http://yoshimi.sourceforge.net/")
+    (synopsis "Multi-paradigm software synthesizer")
+    (description
+     "Yoshimi is a fork of ZynAddSubFX, a feature-heavy real-time software
 synthesizer.  It offers three synthesizer engines, multitimbral and polyphonic
 synths, microtonal capabilities, custom envelopes, effects, etc.  Yoshimi
 improves on support for JACK features, such as JACK MIDI.")
-      (license license:gpl2))))
+    (license license:gpl2)))
 
 (define-public libgig
   (package
@@ -2571,14 +2913,14 @@ from the command line.")
 (define-public qtractor
   (package
     (name "qtractor")
-    (version "0.9.16")
+    (version "0.9.19")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://downloads.sourceforge.net/qtractor/"
                                   "qtractor-" version ".tar.gz"))
               (sha256
                (base32
-                "1l19g7cvgb7gfjmaihnd899k5hhxyf4sz22380y830xjfs2fvqxc"))))
+                "0gdr1hvda56vmv4998z9xcqsp7da6lplj00f217x9g2i2snyvkzp"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f))                    ; no "check" target
@@ -2812,7 +3154,7 @@ event-based scripts for scrobbling, notifications, etc.")
 (define-public picard
   (package
     (name "picard")
-    (version "2.1.3")
+    (version "2.4.4")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -2820,7 +3162,8 @@ event-based scripts for scrobbling, notifications, etc.")
                     "picard/picard-" version ".tar.gz"))
               (sha256
                (base32
-                "19w5k3bf4886gdycxjds9nkjvir0gwy2r5cqkz0lbls4ikk4y14f"))))
+                "1c5l7i43jaj3s4wklc0cba6nn2x9cmpcggk4q4h9m1bci2xilsiy"))
+              (patches (search-patches "picard-fix-id3-rename-test.patch"))))
     (build-system python-build-system)
     (arguments
      '(#:use-setuptools? #f
@@ -2839,7 +3182,8 @@ event-based scripts for scrobbling, notifications, etc.")
                  (assoc-ref inputs "chromaprint") "/bin/fpcalc")))
              #t)))))
     (native-inputs
-     `(("gettext" ,gettext-minimal)))
+     `(("gettext" ,gettext-minimal)
+       ("python-dateutil" ,python-dateutil)))
     (inputs
      `(("chromaprint" ,chromaprint)
        ("python-discid" ,python-discid)
@@ -2855,16 +3199,18 @@ formats, looking up tracks through metadata and audio fingerprints.")
 (define-public python-mutagen
   (package
     (name "python-mutagen")
-    (version "1.38")
+    (version "1.45.1")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "mutagen" version))
               (sha256
                (base32
-                "0rl7sxn1rcjl48fwga3dqf9f6pzspsny4ngxyf6pp337mrq0z693"))))
+                "1qdk6i8gyhbi1c4j5jmbfpac3q8sff2ysri1pnp7nb9wzcp615v3"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     `(("python-pytest" ,python-pytest)
+       ("python-hypothesis" ,python-hypothesis)
+       ("python-flake8" ,python-flake8)))
     (home-page "https://bitbucket.org/lazka/mutagen")
     (synopsis "Read and write audio tags")
     (description "Mutagen is a Python module to handle audio metadata.  It
@@ -3051,6 +3397,13 @@ websites such as Libre.fm.")
     (arguments
      `(#:phases
        (modify-phases %standard-phases
+         ;; Reported upstream: <https://github.com/beetbox/beets/issues/3771>.
+         ;; Disable the faulty test as the fix is unclear.
+         (add-after 'unpack 'disable-failing-tests
+           (lambda _
+             (substitute* "test/test_mediafile.py"
+               (("def test_read_audio_properties") "def _test_read_audio_properties"))
+             #t))
          (add-after 'unpack 'set-HOME
            (lambda _
              (setenv "HOME" (string-append (getcwd) "/tmp"))
@@ -3128,14 +3481,14 @@ websites such as Libre.fm.")
     (synopsis "Bandcamp plugin for beets")
     (description
      "This plugin for beets automatically obtains tag data from @uref{Bandcamp,
-                                                                      https://bandcamp.com/}.  It's also capable of getting song lyrics and album art
-    using the beets FetchArt plugin.")
+https://bandcamp.com/}.  It's also capable of getting song lyrics and album art
+using the beets FetchArt plugin.")
     (license license:gpl2)))
 
 (define-public milkytracker
   (package
     (name "milkytracker")
-    (version "1.02.00")
+    (version "1.03.00")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -3144,7 +3497,7 @@ websites such as Libre.fm.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "05a6d7l98k9i82dwrgi855dnccm3f2lkb144gi244vhk1156n0ca"))
+                "025fj34gq2kmkpwcswcyx7wdxb89vm944dh685zi4bxx0hz16vvk"))
               (modules '((guix build utils)))
               ;; Remove non-FSDG compliant sample songs.
               (snippet
@@ -3226,15 +3579,14 @@ with a number of bugfixes and changes to improve IT playback.")
 (define-public sooperlooper
   (package
     (name "sooperlooper")
-    (version "1.7.3")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "http://essej.net/sooperlooper/sooperlooper-"
-                                  version ".tar.gz"))
-              (sha256
-               (base32
-                "0n2gdxw1fx8nxxnpzf4sj0kp6k6zi1yq59cbz6qqzcnsnpnvszbs"))
-              (patches (search-patches "sooperlooper-build-with-wx-30.patch"))))
+    (version "1.7.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "http://essej.net/sooperlooper/sooperlooper-"
+                           version ".tar.gz"))
+       (sha256
+        (base32 "1jjvq4aflbyr3nr8b318k1vkad16xfa1jkqn9ckzw4419qc6c1k5"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
@@ -4049,10 +4401,40 @@ melodies and beats and for mixing and arranging songs.  LMMS includes instrument
 audio samples and various soft sythesizers.  It can receive input from a MIDI keyboard.")
     (license license:gpl2+)))
 
+(define-public liquidsfz
+  (package
+    (name "liquidsfz")
+    (version "0.2.2")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://space.twc.de/~stefan/liquidsfz/"
+                                  "liquidsfz-" version ".tar.bz2"))
+              (sha256
+               (base32
+                "011m839vjb8gmiv1vzc0d7xz2q2jiwk4v0j9paqyx3lm61czvy93"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:configure-flags '("--enable-shared")))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ;; Fails with default gcc (#include <filesystem> not found).
+       ("gcc" ,gcc-9)))
+    (inputs
+     `(("jack" ,jack-2)
+       ("lv2" ,lv2)
+       ("readline" ,readline)
+       ("libsndfile" ,libsndfile)))
+    (home-page "https://github.com/swesterfeld/liquidsfz")
+    (synopsis "Sampler library")
+    (description "The main goal of liquidsfz is to provide an SFZ sampler
+implementation library that is easy to integrate into other projects.  A
+standalone JACK client and an LV2 plugin is also available.")
+    (license license:lgpl2.1+)))
+
 (define-public musescore
   (package
     (name "musescore")
-    (version "3.4.2")
+    (version "3.6")
     (source
      (origin
        (method git-fetch)
@@ -4061,15 +4443,16 @@ audio samples and various soft sythesizers.  It can receive input from a MIDI ke
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "14a9sg87nx7xca1qfbkplnpbx9pyg9k9vy87dq0g401ag6g6bi66"))
+        (base32 "0c9yf8irkism3ffzzpkx636wa6b1r1lgpsb2x63pr0gbi5ss5kyh"))
        (modules '((guix build utils)))
        (snippet
-        ;; Un-bundle OpenSSL and remove unused libraries.
+        ;; Remove unused libraries.
         '(begin
            (for-each delete-file-recursively
                      '("thirdparty/freetype"
                        "thirdparty/openssl"
-                       "thirdparty/portmidi"))
+                       "thirdparty/portmidi"
+                       "thirdparty/qt-google-analytics"))
            #t))))
     (build-system cmake-build-system)
     (arguments
@@ -4077,6 +4460,7 @@ audio samples and various soft sythesizers.  It can receive input from a MIDI ke
        `("-DBUILD_TELEMETRY_MODULE=OFF" ;don't phone home
          "-DBUILD_WEBENGINE=OFF"
          "-DDOWNLOAD_SOUNDFONT=OFF"
+         "-DMUSESCORE_BUILD_CONFIG=release"
          "-DUSE_SYSTEM_FREETYPE=ON")
        ;; There are tests, but no simple target to run.  The command used to
        ;; run them is:
@@ -4109,8 +4493,9 @@ audio samples and various soft sythesizers.  It can receive input from a MIDI ke
      `(("pkg-config" ,pkg-config)
        ("qttools" ,qttools)))
     (synopsis "Music composition and notation software")
-    (description "MuseScore is a music score typesetter.  Its main purpose is
-the creation of high-quality engraved musical scores in a WYSIWYG environment.
+    (description
+     "MuseScore is a music score typesetter.  Its main purpose is the creation
+of high-quality engraved musical scores in a WYSIWYG environment.
 
 It supports unlimited staves, linked parts and part extraction, tablature,
 MIDI input, percussion notation, cross-staff beaming, automatic transposition,
@@ -4126,7 +4511,7 @@ sample library.")
 (define-public muse-sequencer
   (package
     (name "muse-sequencer")
-    (version "3.0.0")
+    (version "3.1.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -4138,19 +4523,30 @@ sample library.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1nninz8qyqlxxjdnrm79y3gr3056pga9l2fsqh674jd3cjvafya3"))))
+                "1rasp2v1ds2aw296lbf27rzw0l9fjl0cvbvw85d5ycvh6wkm301p"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f ; there is no test target
        #:configure-flags
-       (list "-DENABLE_LV2_SUPPLIED=OFF"
-             "-DENABLE_RTAUDIO=OFF"    ; FIXME: not packaged
-             "-DENABLE_INSTPATCH=OFF"  ; FIXME: not packaged
-             "-DENABLE_VST_NATIVE=OFF")
+       (list "-DENABLE_INSTPATCH=OFF"  ; FIXME: not packaged
+             "-DENABLE_VST_NATIVE=OFF"
+             (string-append "-DCMAKE_EXE_LINKER_FLAGS="
+                            "-Wl,-rpath="
+                            (assoc-ref %outputs "out") "/lib/muse-"
+                            ,(version-major+minor version) "/modules")
+             (string-append "-DCMAKE_SHARED_LINKER_FLAGS="
+                            "-Wl,-rpath="
+                            (assoc-ref %outputs "out") "/lib/muse-"
+                            ,(version-major+minor version) "/modules"))
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'chdir
-           (lambda _ (chdir "muse3"))))))
+           (lambda _ (chdir "muse3") #t))
+         (add-after 'chdir 'fix-include
+           (lambda _
+             (substitute* "muse/driver/rtaudio.h"
+               (("rtaudio/RtAudio.h") "RtAudio.h"))
+             #t)))))
     (inputs
      `(("alsa-lib" ,alsa-lib)
        ("lash" ,lash)
@@ -4163,10 +4559,14 @@ sample library.")
        ("sord" ,sord)
        ("libsndfile" ,libsndfile)
        ("libsamplerate" ,libsamplerate)
+       ("lrdf" ,lrdf)
        ("fluidsynth" ,fluidsynth)
        ("pcre" ,pcre)
+       ("pulseaudio" ,pulseaudio) ; required by rtaudio
        ("qtbase" ,qtbase)
-       ("qtsvg" ,qtsvg)))
+       ("qtsvg" ,qtsvg)
+       ("rtaudio" ,rtaudio)
+       ("rubberband" ,rubberband)))
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("qttools" ,qttools)))
@@ -4216,14 +4616,14 @@ specification and header.")
 (define-public rosegarden
   (package
     (name "rosegarden")
-    (version "20.06")
+    (version "20.12")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://sourceforge/rosegarden/rosegarden/"
                            version "/rosegarden-" version ".tar.bz2"))
        (sha256
-        (base32 "1i9x9rkqwwdrk77xl5ra8i48cjirbc7fbisnj0nnclccwaq0wk6r"))))
+        (base32 "0nqw2caxmv6mqh485wzvywa024yvi18q87sd4dw9b2l5qnpq8rl8"))))
     (build-system cmake-build-system)
     (arguments
      `(#:configure-flags '("-DCMAKE_BUILD_TYPE=Release")
@@ -4889,7 +5289,7 @@ complete without obstructing your daily work.")
 (define-public playerctl
   (package
     (name "playerctl")
-    (version "2.0.2")
+    (version "2.2.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -4898,7 +5298,7 @@ complete without obstructing your daily work.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1f3njnpd52djx3dmhh9a8p5a67f0jmr1gbk98icflr2q91149gjz"))))
+                "17hi33sw3663qz5v54bqqil31sgkrlxkb2l5bgqk87pac6x2wnbz"))))
     (build-system meson-build-system)
     (arguments
      `(#:configure-flags '("-Dintrospection=false" "-Dgtk-doc=false")))
@@ -4924,7 +5324,7 @@ for integration into status line generators or other command-line tools.")
               (method git-fetch)
               (uri (git-reference
                     (url
-                     "https://github.com/openAVproductions/openAV-ArtyFX.git")
+                     "https://github.com/openAVproductions/openAV-ArtyFX")
                     (commit (string-append "release-" version))))
               (file-name (git-file-name name version))
               (sha256
@@ -4956,7 +5356,7 @@ and reverb.")
 (define-public lsp-plugins
   (package
     (name "lsp-plugins")
-    (version "1.1.24")
+    (version "1.1.26")
     (source
       (origin
         (method git-fetch)
@@ -4965,7 +5365,7 @@ and reverb.")
                (commit (string-append "lsp-plugins-" version))))
         (file-name (git-file-name name version))
         (sha256
-         (base32 "0rzgzkg6wvhjcf664i16nz4v30drgv80s34bhdflcjzx2x7ix5zk"))))
+         (base32 "1apw8zh3a3il4smkjji6bih4vbsymj0hjs10fgkrd4nazqkjvgyd"))))
     (build-system gnu-build-system)
     (arguments
      `(#:make-flags
@@ -4976,18 +5376,18 @@ and reverb.")
          (string-append "ETC_PATH=" (assoc-ref %outputs "out") "/etc"))
        #:phases
        (modify-phases %standard-phases
-         (delete 'configure))   ; no configure
+         (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)))
+     `(("cairo" ,cairo)
+       ("hicolor-icon-theme" ,hicolor-icon-theme)
+       ("jack" ,jack-1)
+       ("ladspa" ,ladspa)
+       ("libsndfile" ,libsndfile)
+       ("lv2" ,lv2)
+       ("mesa" ,mesa)))
     (native-inputs
-     `(("pkg-config", pkg-config)))
+     `(("pkg-config" ,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
@@ -4998,7 +5398,7 @@ applications.")
 (define-public sherlock-lv2
   (package
     (name "sherlock-lv2")
-    (version "0.20.0")
+    (version "0.24.0")
     (source
      (origin
        (method url-fetch)
@@ -5008,10 +5408,11 @@ applications.")
              version ".tar.xz"))
        (sha256
         (base32
-         "1c5xajpss9h8lbyx160bbzg8va50n2d74qwnxig9sf468rzmha1y"))))
+         "08gjfx7vrsx9zvj04j8cr3vscxmq6jr2hbdi6dfgp1l1dnnpxsgq"))))
     (build-system meson-build-system)
     (inputs
-     `(("libx11" ,libx11)
+     `(("glu" ,glu)
+       ("libx11" ,libx11)
        ("mesa" ,mesa)
        ("sratom" ,sratom)))
     (native-inputs
@@ -5024,6 +5425,49 @@ and debugging of event signal flows inside plugin graphs.")
     (home-page "https://open-music-kontrollers.ch/lv2/sherlock/")
     (license license:artistic2.0)))
 
+(define-public foo-yc20
+  (package
+    (name "foo-yc20")
+    (version "1.3.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://github.com/sampov2/foo-yc20/releases/download/"
+                           version "/foo-yc20-" version ".tar.bz2"))
+       (sha256
+        (base32
+         "1drzfyr7mzb58pdv0gsqkg6ds6kbgp6g25rrv1yya1611cljgvjh"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:make-flags
+       (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
+       #:tests? #f  ; no automated test
+       #:phases
+       (modify-phases %standard-phases
+         (replace 'configure
+           (lambda _
+             (substitute* "Makefile"
+               (("-mtune=native") "")
+               (("-march=native") ""))
+             #t)))))
+    (inputs
+     `(("jack" ,jack-1)
+       ("lv2" ,lv2)
+       ("cairo" ,cairo)
+       ("gtk" ,gtk+-2)))
+    (native-inputs
+     `(("faust" ,faust)
+       ("pkg-config" ,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
+combo organ, the YC-20.  This package provides an LV2 plugin and a standalone
+version.  Processing for the organ is based on original schematics and
+measurements from a working specimen.  This instrument simulates the circutry
+as a whole to realisticly reproduce the features and flaws of the real deal.")
+    ;; Note that after 1.3.0 the license was changed.
+    (license license:gpl3+)))
+
 (define-public spectacle-analyzer
   (package
     (name "spectacle-analyzer")
@@ -5053,12 +5497,12 @@ and debugging of event signal flows inside plugin graphs.")
      `(("pkg-config" ,pkg-config)
        ("xxd" ,xxd)))
     (inputs
-     `(("cairo", cairo)
-       ("fftw", fftw)
-       ("fftwf", fftwf)
-       ("jack", jack-1)
-       ("lv2", lv2)
-       ("mesa", mesa)))
+     `(("cairo" ,cairo)
+       ("fftw" ,fftw)
+       ("fftwf" ,fftwf)
+       ("jack" ,jack-1)
+       ("lv2" ,lv2)
+       ("mesa" ,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.")
@@ -5070,15 +5514,15 @@ short-time Fourier transform, available as LV2 audio plugin and JACK client.")
 (define-public x42-plugins
   (package
     (name "x42-plugins")
-    (version "20191215")
+    (version "20200714")
     (source
      (origin
        (method url-fetch)
        (uri
-        (string-append "http://gareus.org/misc/x42-plugins/x42-plugins-"
+        (string-append "https://gareus.org/misc/x42-plugins/x42-plugins-"
                        version ".tar.xz"))
        (sha256
-        (base32 "1mwfvhsvc0qgjyiwd8pmmam1mav43lmv39fljhmj9yri558v5g1c"))))
+        (base32 "1av05ykph8x67018hm9zfgh1vk0zi39mvrsxkj6bm4hkarxf0vvl"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                      ; no "check" target
@@ -5174,7 +5618,7 @@ ZaMultiComp, ZaMultiCompX2 and ZamSynth.")
 (define-public geonkick
   (package
     (name "geonkick")
-    (version "1.10.0")
+    (version "2.3.8")
     (source
      (origin
        (method git-fetch)
@@ -5183,8 +5627,7 @@ ZaMultiComp, ZaMultiCompX2 and ZamSynth.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32
-         "1a59wnm4035kjhs66hihlkiv45p3ffb2yaj1awvyyi5f0lds5zvh"))))
+        (base32 "07809yy2q7dd6fcp0yndlg1vw2ca2zisnsplb3xrxvzdvrqlw910"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f                      ;no tests included
@@ -5203,6 +5646,8 @@ ZaMultiComp, ZaMultiCompX2 and ZamSynth.")
        ("rapidjson" ,rapidjson)))
     (native-inputs
      `(("lv2" ,lv2)
+       ;; Fails with default gcc (#include <filesystem> not found).
+       ("gcc" ,gcc-9)
        ("pkg-config" ,pkg-config)
        ("sord" ,sord)))
     (synopsis "Percussion synthesizer")
@@ -5350,12 +5795,12 @@ MIDI drums and comes as two separate drumkits: Black Pearl and Red Zeppelin.")
        ("freetype2" ,freetype)
        ("hicolor-icon-theme" ,hicolor-icon-theme)
        ("libxcursor" ,libxcursor)
-       ("libxinerama", libxinerama)
-       ("jack", jack-1)
+       ("libxinerama" ,libxinerama)
+       ("jack" ,jack-1)
        ("mesa" ,mesa)))
     (native-inputs
      `(("pkg-config" ,pkg-config)
-       ("lv2", lv2)))
+       ("lv2" ,lv2)))
     (home-page "https://tytel.org/helm/")
     (synopsis "Polyphonic synth with lots of modulation")
     (description "Helm is a cross-platform polyphonic synthesizer available standalone
@@ -5364,8 +5809,13 @@ and as an LV2 plugin.")
 
 (define-public zrythm
   (package
+    ;; Zrythm contains trademarks and comes with a trademark policy found in
+    ;; TRADMARKS.md inside the release distribution.  The trademark policy
+    ;; allows verbatim re-distribution, and it also allows FSF-approved
+    ;; distros to make necessary changes to integrate the software into the
+    ;; distribution.
     (name "zrythm")
-    (version "0.8.333")
+    (version "1.0.0-alpha.6.0.1")
     (source
       (origin
         (method url-fetch)
@@ -5373,26 +5823,24 @@ and as an LV2 plugin.")
                             version ".tar.xz"))
         (sha256
           (base32
-            "0x2kxr5zz058jpy6k6ymj0fi2gqfcgrlv4qkwz9443hjy5345iwb"))))
+           "1zfky3yj0k0rmbxighlk9sp4fsgw8rj7viv44yv626kldfvc04ab"))))
    (build-system meson-build-system)
    (arguments
     `(#:glib-or-gtk? #t
+      #:meson ,meson-0.55
       #:configure-flags
-      `("-Denable_tests=true" "-Dmanpage=true"
-        "-Dinstall_dseg_font=false" "-Denable_ffmpeg=true")
-      #:phases
-      (modify-phases %standard-phases
-        (add-after 'unpack 'patch-xdg-open
-          (lambda _
-            (substitute* "src/utils/io.c"
-                         (("OPEN_DIR_CMD")
-                          (string-append "\"" (which "xdg-open") "\"")))
-            #t)))))
+      `("-Dtests=true"
+        "-Dmanpage=true"
+        "-Ddseg_font=false"
+        "-Dgraphviz=enabled" ; for exporting routing graphs
+        "-Dguile=enabled" ; for Guile scripting
+        "-Djack=enabled" ; for JACK audio/MIDI backend
+        "-Drtmidi=enabled" ; for RtMidi backend (ALSA sequencer)
+        "-Dsdl=enabled"))) ; for SDL audio backend (which uses ALSA)
    (inputs
     `(("alsa-lib" ,alsa-lib)
       ("jack" ,jack-1)
       ("font-dseg" ,font-dseg)
-      ("ffmpeg" ,ffmpeg)
       ("fftw" ,fftw)
       ("fftwf" ,fftwf)
       ("gettext" ,gettext-minimal)
@@ -5401,19 +5849,23 @@ and as an LV2 plugin.")
       ("gtk+" ,gtk+)
       ("gtksourceview" ,gtksourceview)
       ("guile" ,guile-2.2)
+      ("libaudec" ,libaudec)
       ("libcyaml" ,libcyaml)
       ("libsamplerate" ,libsamplerate)
       ("libsndfile" ,libsndfile)
       ("libyaml" ,libyaml)
       ("lilv" ,lilv)
+      ("lv2" ,lv2)
+      ("reproc" ,reproc)
+      ("rubberband" ,rubberband)
+      ("rtmidi" ,rtmidi)
+      ("sdl2" ,sdl2)
       ("xdg-utils" ,xdg-utils)
-      ("rubberband" ,rubberband)))
+      ("zstd" ,zstd "lib")))
    (native-inputs
      `(("pkg-config" ,pkg-config)
        ("help2man" ,help2man)
-       ("libaudec" ,libaudec)
-       ("lv2" ,lv2)
-       ("glib" ,glib "bin"))) ;for 'glib-compile-resources'
+       ("glib" ,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
@@ -5424,7 +5876,7 @@ plugin support, JACK support and chord assistance.")
 (define-public dragonfly-reverb
   (package
     (name "dragonfly-reverb")
-    (version "3.0.0")
+    (version "3.2.1")
     (source
      (origin
        (method git-fetch)
@@ -5436,7 +5888,7 @@ plugin support, JACK support and chord assistance.")
          (recursive? #t)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1z2x33lzpd26dv1p29ca7vy8mjfzkfpin35iq46spwd9k3sqn1ja"))))
+        (base32 "0vfm2510shah67k87mdyar4wr4vqwii59y9lqfhwm6blxparkrqa"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                      ; no check target
@@ -5666,9 +6118,9 @@ plugin and a standalone JACK application.")
                               "/lib/lv2")
                        "install"))))))
       (inputs
-        `(("lv2", lv2)))
+        `(("lv2" ,lv2)))
       (native-inputs
-        `(("pkg-config", pkg-config)))
+        `(("pkg-config" ,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
@@ -5679,7 +6131,7 @@ plugin and a standalone JACK application.")
 (define-public wolf-shaper
   (package
     (name "wolf-shaper")
-    (version "0.1.7")
+    (version "0.1.8")
     (source
       (origin
         (method git-fetch)
@@ -5691,7 +6143,7 @@ plugin and a standalone JACK application.")
         (file-name (git-file-name name version))
         (sha256
           (base32
-            "0lllgcbnnh1m95bp29hh17x170hl7170zizjrvy892qfkn36830d"))))
+            "1j9xmh1nkf45ay1c5dz2g165qvrwlanzcq6mvb3nfxar265drd9q"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                      ; no check target
@@ -5724,9 +6176,9 @@ plugin and a standalone JACK application.")
     (native-inputs
      `(("pkg-config" ,pkg-config)))
     (inputs
-      `(("jack", jack-1)
-        ("lv2", lv2)
-        ("mesa", mesa)))
+      `(("jack" ,jack-1)
+        ("lv2" ,lv2)
+        ("mesa" ,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.")
@@ -5806,12 +6258,12 @@ It is provided as an LV2 plugin and as a standalone Jack application.")
       (native-inputs
        `(("pkg-config" ,pkg-config)))
       (inputs
-        `(("cairo", cairo)
-          ("glu", glu)
-          ("jack", jack-1)
-          ("lv2", lv2)
-          ("mesa", mesa)
-          ("pango", pango)))
+        `(("cairo" ,cairo)
+          ("glu" ,glu)
+          ("jack" ,jack-1)
+          ("lv2" ,lv2)
+          ("mesa" ,mesa)
+          ("pango" ,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
diff --git a/gnu/packages/musl.scm b/gnu/packages/musl.scm
index 466e472deb..e8c51036d7 100644
--- a/gnu/packages/musl.scm
+++ b/gnu/packages/musl.scm
@@ -28,14 +28,14 @@
 (define-public musl
   (package
     (name "musl")
-    (version "1.2.1")
+    (version "1.2.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://www.musl-libc.org/releases/"
                                   "musl-" version ".tar.gz"))
               (sha256
                (base32
-                "0jz8fzwgvfyjgxjbpw35ixdglp2apqjvp8m386f6yr4zacc6xbv8"))))
+                "1p8r6bac64y98ln0wzmnixysckq3crca69ys7p16sy9d04i975lv"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                      ; musl has no tests
diff --git a/gnu/packages/nano.scm b/gnu/packages/nano.scm
index bae2eb9825..5729448e18 100644
--- a/gnu/packages/nano.scm
+++ b/gnu/packages/nano.scm
@@ -2,7 +2,7 @@
 ;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org>
 ;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016 Rene Saavedra <rennes@openmailbox.org>
-;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -30,13 +30,13 @@
 (define-public nano
   (package
     (name "nano")
-    (version "5.1")
+    (version "5.5")
     (source
      (origin
       (method url-fetch)
       (uri (string-append "mirror://gnu/nano/nano-" version ".tar.xz"))
       (sha256
-       (base32 "1rkf5bcna12xc37fpxpaxbjbd17w3424zz0nbl4n0ka087rldz4y"))))
+       (base32 "0jkyd3yzcidnvnj1k9bmplzlbd303x6xxblpp5np7zs1kfzq22rr"))))
     (build-system gnu-build-system)
     (inputs
      `(("gettext" ,gettext-minimal)
diff --git a/gnu/packages/ncurses.scm b/gnu/packages/ncurses.scm
index 7b2ab991cf..a79e83f587 100644
--- a/gnu/packages/ncurses.scm
+++ b/gnu/packages/ncurses.scm
@@ -237,7 +237,7 @@ ncursesw library provides wide character support.")
 (define-public dialog
   (package
     (name "dialog")
-    (version "1.3-20200228")
+    (version "1.3-20201126")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -245,10 +245,8 @@ ncursesw library provides wide character support.")
                     version ".tgz"))
               (sha256
                (base32
-                "1n8zbkigbzxw8gkw7qhzwzdyc7rbc7a0jcfy9z8ib7pf3qfw9y4z"))))
+                "0riqmp2xl2j2yxx69nyg8jbm2fyi5fp4clcf6zi5jfm3irn3l8y9"))))
     (build-system gnu-build-system)
-    (arguments
-     `(#:tests? #f))                    ; no test suite
     (inputs
      `(("ncurses" ,ncurses)))
     (synopsis "Curses widgets")
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index 9a88535236..4e8d91256d 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -4,7 +4,7 @@
 ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2015, 2016, 2017 Stefan Reichör <stefan@xsteve.at>
 ;;; Copyright © 2016 Raimon Grau <raimonster@gmail.com>
-;;; Copyright © 2016, 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2016–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2016 John Darrington <jmd@gnu.org>
 ;;; Copyright © 2016, 2017, 2018, 2019, 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org>
@@ -13,7 +13,7 @@
 ;;; Copyright © 2016 Benz Schenk <benz.schenk@uzh.ch>
 ;;; Copyright © 2016, 2017 Pjotr Prins <pjotr.guix@thebird.nl>
 ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
-;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
+;;; Copyright © 2017, 2020 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2017, 2018, 2019 Rutger Helling <rhelling@mykolab.com>
 ;;; Copyright © 2017, 2019 Gábor Boskovits <boskovits@gmail.com>
@@ -39,6 +39,9 @@
 ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
 ;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
 ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
+;;; Copyright © 2020 Jesse Dowell <jessedowell@gmail.com>
+;;; Copyright © 2020 Hamzeh Nasajpour <h.nasajpour@pantherx.org>
+;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -95,6 +98,9 @@
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages gnupg)
+  #:use-module (gnu packages golang)
+  #:use-module (gnu packages graphviz)
+  #:use-module (gnu packages gstreamer)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages image)
   #:use-module (gnu packages libevent)
@@ -106,6 +112,7 @@
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages nettle)
   #:use-module (gnu packages openldap)
+  #:use-module (gnu packages onc-rpc)
   #:use-module (gnu packages password-utils)
   #:use-module (gnu packages pcre)
   #:use-module (gnu packages perl)
@@ -119,10 +126,14 @@
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages qt)
   #:use-module (gnu packages readline)
+  #:use-module (gnu packages ruby)
   #:use-module (gnu packages samba)
   #:use-module (gnu packages serialization)
+  #:use-module (gnu packages shells)
+  #:use-module (gnu packages sphinx)
   #:use-module (gnu packages sqlite)
   #:use-module (gnu packages ssh)
+  #:use-module (gnu packages tcl)
   #:use-module (gnu packages textutils)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages valgrind)
@@ -131,17 +142,423 @@
   #:use-module (gnu packages xml)
   #:use-module (ice-9 match))
 
+(define-public axel
+  (package
+    (name "axel")
+    (version "2.17.10")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://github.com/axel-download-accelerator/axel/"
+                           "releases/download/v" version "/"
+                           "axel-" version ".tar.xz"))
+       (sha256
+        (base32 "0kmlqk04sgkshsll4r9w3k0rvrgz0gpk987618r50khwl484zss6"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("gettext" ,gettext-minimal)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("libressl" ,libressl)))
+    (home-page "https://github.com/axel-download-accelerator/axel")
+    (synopsis "Light command line download accelerator")
+    (description
+     "Axel tries to accelerate the download process by using multiple
+connections per file, and can also balance the load between different
+servers.  It tries to be as light as possible, so it might be useful
+on byte-critical systems.  It supports HTTP, HTTPS, FTP and FTPS
+protocols.")
+    (license license:gpl2+)))
+
+;; This package does not have a release yet.
+;; But this is required to provide a feature in PipeWire.
+(define-public libcamera
+  (package
+    (name "libcamera")
+    (version "0.0.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "git://linuxtv.org/libcamera.git")
+         (commit "74c8b508338ccdd0780aa1e067a1e8fcb9ee326b")))
+       (file-name
+        (git-file-name name version))
+       (sha256
+        (base32 "0d9lp8b9gyxh4jwfh55kp8zl1xyyg32z684v3y29378zpksncss1"))))
+    (build-system meson-build-system)
+    (outputs '("out" "doc"))
+    (arguments
+     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
+       #:configure-flags
+       (list
+        "-Dv4l2=true")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'disable-failing-tests
+           (lambda _
+             (substitute* "test/meson.build"
+               (("\\['list-cameras',                    'list-cameras.cpp'\\],")
+                ""))
+             #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"))
+               (rename-file
+                (string-append out "/share/doc")
+                (string-append doc "/share/doc"))
+               #t))))))
+    (native-inputs
+     `(("dot" ,graphviz)
+       ("doxygen" ,doxygen)
+       ("pkg-config" ,pkg-config)
+       ("python" ,python-wrapper)
+       ("sphinx" ,python-sphinx)
+       ("yaml" ,python-pyyaml)))
+    (inputs
+     `(("boost" ,boost)
+       ("glib" ,glib)
+       ("gstreamer" ,gst-plugins-base)
+       ("gnutls" ,gnutls)
+       ("libtiff" ,libtiff)
+       ("openssl" ,openssl)
+       ("qt5" ,qtbase)
+       ("udev" ,eudev)))
+    (synopsis "Camera stack and framework")
+    (description "LibCamera is a complex camera support library for GNU+Linux,
+Android, and ChromeOS.")
+    (home-page "https://libcamera.org/")
+    (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)
+       ("gtk-doc" ,gtk-doc)
+       ("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
+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))))
+
+(define-public rtmpdump
+  ;; There are no tags in the repository, and the project is unlikely to
+  ;; make new releases.  Take a recent commit for multiple security fixes
+  ;; as well as GnuTLS compatibility.
+  (let ((commit "c5f04a58fc2aeea6296ca7c44ee4734c18401aa3")
+        (revision "0")
+        (version "2.4"))                ;as mentioned in README and man pages
+    (package
+      (name "rtmpdump")
+      (version (git-version version revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://git.ffmpeg.org/rtmpdump")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "07ias612jgmxpam9h418kvlag32da914jsnjsfyafklpnh8gdzjb"))))
+      (build-system gnu-build-system)
+      (arguments
+       `(#:tests? #f                    ; no tests
+         #:make-flags
+         (list
+          ;; The ‘validate-runpath’ phase fails to find librtmp.so.0.
+          (string-append "LDFLAGS=-Wl,-rpath="
+                         (assoc-ref %outputs "out") "/lib")
+          (string-append "prefix=" (assoc-ref %outputs "out")))
+         #:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'omit-static-library
+             (lambda _
+               (substitute* "librtmp/Makefile"
+                 (("cp librtmp\\.a .*") ; don't install it
+                  "")
+                 (("librtmp\\.a ")      ; don't build it
+                  ""))
+               #t))
+           (add-after 'unpack 'prefer-gnutls
+             (lambda _
+               (substitute* '("Makefile" "librtmp/Makefile")
+                 (("CRYPTO=OPENSSL")
+                  "#CRYPTO=OPENSSL")
+                 (("#CRYPTO=GNUTLS")
+                  "CRYPTO=GNUTLS"))))
+           (delete 'configure))))
+      (inputs
+       `(("gnutls" ,gnutls)
+         ("zlib" ,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://.")
+      (home-page "https://rtmpdump.mplayerhq.hu/")
+      (license
+       (list
+        ;; Library.
+        license:lgpl2.1+
+        ;; Others.
+        license:gpl2+)))))
+
+(define-public srt
+  (package
+    (name "srt")
+    (version "1.4.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/Haivision/srt")
+         (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "01nx3a35hzq2x0dvp2n2b86phpdy1z83kdraag7aq3hmc7f8iagg"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:configure-flags
+       (list
+        (string-append "-DCMAKE_INSTALL_BINDIR="
+                       (assoc-ref %outputs "out") "/bin")
+        "-DCMAKE_INSTALL_INCLUDEDIR=include"
+        "-DENABLE_STATIC=OFF"
+        "-DENABLE_UNITTESTS=ON")))
+    (native-inputs
+     `(("gtest" ,googletest)
+       ("pkg-config" ,pkg-config)
+       ("tclsh" ,tcl)))
+    (propagated-inputs
+     `(("openssl" ,openssl)))
+    (synopsis "Secure Reliable Transport")
+    (description "SRT is a transport technology that optimizes streaming
+performance across unpredictable networks, such as the Internet.")
+    (home-page "https://www.srtalliance.org/")
+    (license license:mpl2.0)))
+
+;; FFmpeg, GStreamer, and VLC don't support SRT 1.4.2 yet.
+(define-public srt-1.4.1
+  (package
+    (inherit srt)
+    (name "srt")
+    (version "1.4.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/Haivision/srt")
+         (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "01xaq44j95kbgqfl41pnybvqy0yq6wd4wdw88ckylzf0nzp977xz"))))))
+
+(define-public lksctp-tools
+  (package
+    (name "lksctp-tools")
+    (version "1.0.18")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/sctp/lksctp-tools")
+         (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1x4fwzrlzvfa3vcpja97m8w5g9ir2zrh4zs7zksminrnmdrs0dsr"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("libtool" ,libtool)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("linux-headers" ,linux-libre-headers)))
+    (synopsis "Linux SCTP helper library")
+    (description "Lksctp-tools project provides a user space library for SCTP
+(libsctp) including C language header files (netinet/sctp.h) for accessing SCTP
+specific application programming interfaces not provided by the standard
+sockets, and also some helper utilities around SCTP.")
+    (home-page "http://lksctp.sourceforge.net/")
+    (license
+     (list
+      ;; Library.
+      license:lgpl2.1+
+      ;; Others.
+      license:gpl2+))))
+
+(define-public knockd
+  (package
+    (name "knockd")
+    (version "0.7")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://www.zeroflux.org/proj/knock/files/knock-"
+                                  version ".tar.gz"))
+              (sha256
+               (base32
+                "193qcpsy7v51c6awhg9652l5blyz8vp6n7y6fi7l4rhh6af4ff4r"))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("libpcap" ,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
+an ethernet or PPP interface, looking for special \"knock\" sequences of @dfn{port-hits}
+(UDP/TCP packets sent to a server port).  This port need not be open, since knockd listens
+at the link-layer level.")
+    (license license:gpl2+)))
+
+(define-public nng
+  (package
+    (name "nng")
+    (version "1.3.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/nanomsg/nng")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0a4jg8alh2h0rw6fb4dqpvk4hgl2a7h76mq7g34fy89qh9sgg1a4"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:configure-flags
+       (list "-DNNG_ENABLE_COVERAGE=ON"
+             "-DNNG_ENABLE_TLS=ON"
+             "-DBUILD_SHARED_LIBS=ON")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'disable-failing-tests
+           (lambda _
+             ;; These tests require network access.
+             (substitute* "tests/CMakeLists.txt"
+               (("add_nng_test1\\(httpclient 60 NNG_SUPP_HTTP\\)") "")
+               (("add_nng_test1\\(resolv 10 NNG_STATIC_LIB\\)") "")
+               (("add_nng_test\\(tls 60\\)") ""))
+             #t)))))
+    (native-inputs
+     `(("ksh" ,oksh)))
+    (inputs
+     `(("mbedtls" ,mbedtls-apache)))
+    (synopsis "Lightweight messaging library")
+    (description "NNG project is a rewrite of the scalability protocols library
+known as libnanomsg, and adds significant new capabilities, while retaining
+compatibility with the original.  It is a lightweight, broker-less library,
+offering a simple API to solve common recurring messaging problems, such as
+publish/subscribe, RPC-style request/reply, or service discovery.")
+    (home-page "https://nng.nanomsg.org/")
+    (license license:expat)))
+
+(define-public nanomsg
+  (package
+    (name "nanomsg")
+    (version "1.1.5")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/nanomsg/nanomsg")
+         (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "01ddfzjlkf2dgijrmm3j3j8irccsnbgfvjcnwslsfaxnrmrq5s64"))))
+    (build-system cmake-build-system)
+    (outputs '("out" "doc"))
+    (arguments
+     `(#:configure-flags
+       (list
+        "-DNN_ENABLE_COVERAGE=ON")
+       #:phases
+       (modify-phases %standard-phases
+         (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/doc"))
+               (rename-file
+                (string-append out "/share/doc/nanomsg")
+                (string-append doc "/share/doc/nanomsg"))
+               #t))))))
+    (native-inputs
+     `(("asciidoctor" ,ruby-asciidoctor)
+       ("pkg-config" ,pkg-config)))
+    (synopsis "Scalable socket library")
+    (description "Nanomsg is a socket library that provides several common
+communication patterns.  It aims to make the networking layer fast, scalable,
+and easy to use.  Implemented in C, it works on a wide range of operating
+systems with no further dependencies.")
+    (home-page "https://nanomsg.org/")
+    (license (license:non-copyleft "file:///COPYING"))))
+
 (define-public blueman
   (package
     (name "blueman")
-    (version "2.1.3")
+    (version "2.1.4")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://github.com/blueman-project/blueman/releases"
                            "/download/" version "/blueman-" version ".tar.xz"))
        (sha256
-        (base32 "1pngqbwapbvywhkmflapqvs0wa0af7d1a87wy56l5hg2r462xl1v"))))
+        (base32 "1nk46s1s8yrlqv37sc7la05nnn7sdgqhkrcdm98qin34llwkv70x"))))
     (build-system glib-or-gtk-build-system)
     (arguments
      `(#:configure-flags (list "--enable-polkit"
@@ -285,6 +702,13 @@ or, more generally, MAC addresses of the same category of hardware.")
     (arguments
      '(#:phases
        (modify-phases %standard-phases
+         (add-after 'unpack 'patch-iproute2
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let* ((iproute (assoc-ref inputs "iproute"))
+                    (ip (string-append iproute "/sbin/ip")))
+               (substitute* "misc/client-hook.iproute"
+                 (("/sbin/ip") ip))
+               #t)))
          ;; The checkconf test in src/ requires network access.
          (add-before
           'check 'disable-checkconf-test
@@ -292,6 +716,8 @@ or, more generally, MAC addresses of the same category of hardware.")
             (substitute* "src/Makefile"
               (("^TESTS = .*") "TESTS = \n"))
             #t)))))
+    (inputs
+     `(("iproute" ,iproute)))
     (home-page "https://www.remlab.net/miredo/")
     (synopsis "Teredo IPv6 tunneling software")
     (description
@@ -484,19 +910,19 @@ transparently check connection attempts against an access control list.")
     (license (license:non-copyleft "file://DISCLAIMER"
                                    "See the file DISCLAIMER in the distribution."))))
 
-
 (define-public zeromq
   (package
     (name "zeromq")
-    (version "4.3.2")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/zeromq/libzmq/releases"
-                                  "/download/v" version "/zeromq-" version ".tar.gz"))
-              (sha256
-               (base32
-                "0qzp80ky4y2k7k1ya09v9gkivvfbz2km813snrb8jhnn634bbmzb"))))
+    (version "4.3.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://github.com/zeromq/libzmq/releases"
+                           "/download/v" version "/zeromq-" version ".tar.gz"))
+       (sha256
+        (base32 "1rf3jmi36ms8jh2g5cvi253h43l6xdfq0r7mvp95va7mi4d014y5"))))
     (build-system gnu-build-system)
+    (arguments '(#:configure-flags '("--disable-static")))
     (home-page "https://zeromq.org")
     (synopsis "Library for message-based applications")
     (description
@@ -527,10 +953,14 @@ more.")
        #:phases (modify-phases %standard-phases
                   (add-before 'check 'patch-tests
                     (lambda _
-                      ;; XXX FIXME: Disable the zproc test, which fails on some
-                      ;; hardware: <https://github.com/zeromq/czmq/issues/2007>.
                       (substitute* "src/czmq_selftest.c"
+                        ;; Disable the zproc test, which fails on some hardware
+                        ;; (see: https://github.com/zeromq/czmq/issues/2007).
                         (("\\{ \"zproc\", zproc_test.*")
+                         "")
+                        ;; Also disable the zarmour test, which fails as well
+                        ;; (see: https://github.com/zeromq/czmq/issues/2125).
+                        (("\\{ \"zarmour\", zarmour_test.*")
                          ""))
                       #t)))))
     (inputs
@@ -668,14 +1098,14 @@ receiving NDP messages.")
 (define-public ethtool
   (package
     (name "ethtool")
-    (version "5.8")
+    (version "5.10")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kernel.org/software/network/"
                                   "ethtool/ethtool-" version ".tar.xz"))
               (sha256
                (base32
-                "0ikmz36bdfwxscsfcgjmyzg70hwr8i3wpdhcp1vmk3q4ip858frg"))))
+                "1kygjg6g90017k53b8342i59cpwgidalqpa3gdilqyrhm6b56zc1"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
@@ -860,7 +1290,7 @@ test_parse_format_ipv(4(|_listen_all|_mapped_ipv6)|6)\\);")
        #:test-target "test"))
     (inputs `(("net-tools" ,net-tools)
               ("zlib" ,zlib)))
-    (native-inputs `(("check" ,check)
+    (native-inputs `(("check" ,check-0.14)
                      ("pkg-config" ,pkg-config)))
     (home-page "https://code.kryo.se/iodine/")
     (synopsis "Tunnel IPv4 data through a DNS server")
@@ -874,18 +1304,21 @@ and up to 1 Mbit/s downstream.")
 (define-public whois
   (package
     (name "whois")
-    (version "5.5.6")
+    (version "5.5.7")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "mirror://debian/pool/main/w/whois/"
-                           "whois_" version ".tar.xz"))
+       (method git-fetch)
+       (uri (git-reference
+              (url "https://github.com/rfc1036/whois")
+              (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
-        (base32 "0kpi981zjczvdcxfcq455c529vlaxa73x8kbm530z5b01h0fk8fb"))))
+        (base32 "1w3d0ffl0ng1m4i10k968kk4xicviq24w5vwl6d8dhja61d7yd2r"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                      ; no test suite
-       #:make-flags (list "CC=gcc"
+       #:make-flags (list (string-append "CC=" ,(cc-for-target))
+                          (string-append "PKG_CONFIG=" ,(pkg-config-for-target))
                           (string-append "prefix=" (assoc-ref %outputs "out")))
        #:phases
        (modify-phases %standard-phases
@@ -916,24 +1349,27 @@ of the same name.")
 (define-public wireshark
   (package
     (name "wireshark")
-    (version "3.2.5")
+    (version "3.4.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://www.wireshark.org/download/src/wireshark-"
                            version ".tar.xz"))
        (sha256
-        (base32 "0h69m9maq6w5gik4gamv4kfqrr37hmi4kpwh225y1k36awm0b2dx"))))
+        (base32 "1i548w6zv6ni5n22rs90a12aakyq811493dxmadlcsj2krr6i66y"))))
     (build-system cmake-build-system)
     (arguments
      `(#:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'remove-failing-test
-           ;; Test 31/32 fails with errors like "Program reassemble_test is
-           ;; not available".  Skipping it for now.
+           ;; Skip test suite failing with "Program reassemble_test is not
+           ;; available" and alike errors.  Also skip test suite failing with
+           ;; "AssertionError: Program extcap/sdjournal is not available"
+           ;; error.'
            (lambda _
              (substitute* "CMakeLists.txt"
-               (("suite_unittests" all) (string-append "# " all)))
+               (("suite_unittests" all) (string-append "# " all))
+               (("suite_extcaps" all) (string-append "# " all)))
              #t)))
        ;; Build process chokes during `validate-runpath' phase.
        ;;
@@ -1083,8 +1519,9 @@ handling network namespaces in Go.")
 
 (define-public go-sctp
   ;; docker-libnetwork-cmd-proxy requires this exact commit.
-  (let ((commit "07191f837fedd2f13d1ec7b5f885f0f3ec54b1cb")
-        (revision "1"))
+  ;; This commit is mentioned in docker-libnetwork-cmd-proxy's vendor.conf.
+  (let ((commit "6e2cb1366111dcf547c13531e3a263a067715847")
+        (revision "2"))
     (package
       (name "go-sctp")
       (version (git-version "0.0.0" revision commit))
@@ -1096,10 +1533,11 @@ handling network namespaces in Go.")
                 (file-name (git-file-name name version))
                 (sha256
                  (base32
-                  "1mk9ncm10gwi5pn5wcw4skbyf4qg7n5qdf1mim4gf3mrckvi6g6h"))))
+                  "1ba90fmpdwxa1ba4hrsjhi3gfy3pwmz7x8amw1p5dc9p5a7nnqrb"))))
       (build-system go-build-system)
       (arguments
-       `(#:import-path "github.com/ishidawataru/sctp"))
+       `(#:tests? #f    ; Test suite is flakey.
+         #:import-path "github.com/ishidawataru/sctp"))
       (home-page "https://github.com/ishidawataru/sctp")
       (synopsis "SCTP library for the Go programming language")
       (description "This library provides methods for using the stream control
@@ -1143,14 +1581,16 @@ application stack itself.")
 (define-public httpstat
   (package
     (name "httpstat")
-    (version "1.2.1")
+    (version "1.3.1")
     (source
      (origin
-       (method url-fetch)
-       (uri (pypi-uri "httpstat" version))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/reorx/httpstat")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "1chw2nk56vaq87aba012a270k9na06hfx1pfbsrc3jfvlc2kb9hb"))))
+        (base32 "0cw8299a080m42slsimz31xs0gjnh833gpbj2dsr4hkcinrn4iyd"))))
     (build-system python-build-system)
     (inputs `(("curl" ,curl)))
     (arguments
@@ -1162,7 +1602,10 @@ application stack itself.")
                (("ENV_CURL_BIN.get\\('curl'\\)")
                 (string-append "ENV_CURL_BIN.get('"
                                (assoc-ref inputs "curl")
-                               "/bin/curl')")))
+                               "/bin/curl')"))
+               ;; "curl -w time_*" units seems to have
+               ;; changed from seconds to nanoseconds.
+               (("d\\[k\\] \\* 1000") "d[k] / 1000"))
              #t)))))
     (home-page "https://github.com/reorx/httpstat")
     (synopsis "Visualize curl statistics")
@@ -1176,17 +1619,21 @@ TCP connection, TLS handshake and so on) in the terminal.")
 (define-public squid
   (package
     (name "squid")
-    (version "4.12")
+    (version "4.13")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "http://www.squid-cache.org/Versions/v4/squid-"
                            version ".tar.xz"))
        (sha256
-        (base32 "05z34ysy2zn7as11vd365xxhh36bm1ysiwcbr0i0f0nwng406apl"))))
+        (base32 "1q1ywpic6s7dfjj3cwzcfgscc4zq0aih462gyas7j1z683ss14b8"))))
     (build-system gnu-build-system)
     (arguments
-     '(#:phases
+     '(#:configure-flags
+       ;; disable -march=native in build for reproducibility; see
+       ;; https://wiki.squid-cache.org/KnowledgeBase/IllegalInstructionError
+       (list "--disable-arch-native")
+       #:phases
        (modify-phases %standard-phases
          (add-before 'build 'fix-true-path
            (lambda* (#:key inputs #:allow-other-keys)
@@ -1217,7 +1664,7 @@ reusing frequently-requested web pages.")
 (define-public bwm-ng
   (package
     (name "bwm-ng")
-    (version "0.6.2")
+    (version "0.6.3")
     (source
      (origin
        (method git-fetch)
@@ -1226,7 +1673,7 @@ reusing frequently-requested web pages.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0k906wb4pw3dcqpcwnni78lahzi3bva483f8c17sjykic7as4y5n"))))
+        (base32 "1gpp2l3w479h1w5skjra5xy0gxd24kvmk6i4psbkafnv2399la4k"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
@@ -1435,7 +1882,7 @@ private (reserved).")
 (define-public perl-net-dns
  (package
   (name "perl-net-dns")
-  (version "1.24")
+  (version "1.28")
   (source
     (origin
       (method url-fetch)
@@ -1446,7 +1893,7 @@ private (reserved).")
         (string-append "mirror://cpan/authors/id/N/NL/NLNETLABS/Net-DNS-"
                        version ".tar.gz")))
       (sha256
-       (base32 "0qyy5k4k0llqjjmkkfg96919gqybdc1z5fy9047n9imidjxc59hi"))))
+       (base32 "0kh2qbhxv005pqb35mdk2bld7cg7xnxl12qvdwv30sgd91aqica7"))))
   (build-system perl-build-system)
   (inputs
     `(("perl-digest-hmac" ,perl-digest-hmac)))
@@ -1630,30 +2077,6 @@ It is intended primarily for use in testing.")
   (description "Net::CIDR::Lite merges IPv4 or IPv6 CIDR addresses.")
   (license license:gpl1+)))
 
-;; TODO: Use the geolite-mirror-simple.pl script from the example
-;; directory to stay current with the databases. How?
-(define-public perl-geo-ip
- (package
-  (name "perl-geo-ip")
-  (version "1.51")
-  (source
-    (origin
-      (method url-fetch)
-      (uri (string-append
-             "mirror://cpan/authors/id/M/MA/MAXMIND/Geo-IP-"
-             version
-             ".tar.gz"))
-      (sha256
-        (base32
-          "1fka8fr7fw6sh3xa9glhs1zjg3s2gfkhi7n7da1l2m2wblqj0c0n"))))
-  (build-system perl-build-system)
-  (home-page "https://metacpan.org/release/Geo-IP")
-  (synopsis
-    "Look up location and network information by IP Address in Perl")
-  (description "The Perl module @code{Geo::IP}.  It looks up location and
-network information by IP Address.")
-  (license license:perl-license)))
-
 (define-public perl-io-socket-inet6
  (package
   (name "perl-io-socket-inet6")
@@ -1687,7 +2110,7 @@ sockets in Perl.")
 (define-public libproxy
   (package
     (name "libproxy")
-    (version "0.4.15")
+    (version "0.4.17")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/libproxy/libproxy/"
@@ -1695,7 +2118,7 @@ sockets in Perl.")
                                   version ".tar.xz"))
               (sha256
                (base32
-                "0kvdrazlzwia876w988cmlypp253gwy6idlh8mjk958c29jb8kb5"))))
+                "01cbgz6lc3v59sldqk96l1281kp2qxnsa2qwlf2ikvjlyr1gi2dw"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
@@ -1754,14 +2177,14 @@ HTTP proxies.")
 (define-public enet
   (package
     (name "enet")
-    (version "1.3.15")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "http://enet.bespin.org/download/"
-                                  "enet-" version ".tar.gz"))
-              (sha256
-               (base32
-                "1yxxf9bkx6dx3j8j70fj17c05likyfibb1419ls74hp58qrzdgas"))))
+    (version "1.3.17")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "http://enet.bespin.org/download/"
+                           "enet-" version ".tar.gz"))
+       (sha256
+        (base32 "1p6f9mby86af6cs7pv6h48032ip9g32c05cb7d9mimam8lchz3x3"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
@@ -1848,14 +2271,14 @@ that block port 22.")
 (define-public iperf
   (package
     (name "iperf")
-    (version "3.7")
+    (version "3.9")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://downloads.es.net/pub/iperf"
                                   "/iperf-" version ".tar.gz"))
               (sha256
                 (base32
-                 "033is7b5grfbiil98jxlz4ixp9shm44x6hy8flpsyz1i4h108inq"))))
+                 "0f601avdmzpwsa3lbi0ppjhkrdipm5wifhhxy5czf99370k3mdi4"))))
     (build-system gnu-build-system)
     (synopsis "TCP, UDP and SCTP bandwidth measurement tool")
     (description
@@ -2303,14 +2726,14 @@ can be whipped up with little effort.")
 (define-public mtr
   (package
     (name "mtr")
-    (version "0.93")
+    (version "0.94")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "ftp://ftp.bitwizard.nl/mtr/"
                            "mtr-" version ".tar.gz"))
        (sha256
-        (base32 "03gid8g4r6a9r40855s4345xm1bylj2kfqkicjwxpmvvccyng712"))))
+        (base32 "1glxvlqskcmjkxlqk9i12hcfaxb389cx2n8ji7776gmix3aq4z1z"))))
     (build-system gnu-build-system)
     (inputs
      `(("libcap" ,libcap)
@@ -2608,6 +3031,19 @@ asynchronous model using a modern C++ approach.")
                  (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
@@ -2626,14 +3062,14 @@ Features:
 (define-public net-snmp
   (package
     (name "net-snmp")
-    (version "5.8")
+    (version "5.9")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://sourceforge/net-snmp/net-snmp/"
                                   version "/net-snmp-" version ".tar.gz"))
               (sha256
                (base32
-                "1pvajzj9gmj56dmwix0ywmkmy2pglh6nny646hkm7ghfhh03bz5j"))
+                "0wb0vyafpspw3mcifkjjmf17r1r80kjvslycscb8nvaxz1k3lc04"))
               (modules '((guix build utils)))
               (snippet
                '(begin
@@ -2680,12 +3116,15 @@ Features:
                                " -NET")))
              #t)))))
     (inputs
-     `(("perl" ,perl)
+     `(("libnl" ,libnl)
+       ("ncurses" ,ncurses)             ; for the ‘apps’
        ("openssl" ,openssl)
-       ("libnl" ,libnl)))
-    ;; These inputs are only needed for tests.
+       ("perl" ,perl)))
     (native-inputs
-     `(("net-tools" ,net-tools)
+     `(("pkg-config" ,pkg-config)
+
+       ;; For tests only.
+       ("net-tools" ,net-tools)
        ("coreutils" ,coreutils)
        ("grep" ,grep)))
     (home-page "http://www.net-snmp.org/")
@@ -2914,9 +3353,9 @@ communication over HTTP.")
        ("pcre2" ,pcre2)
        ("sobjectizer" ,sobjectizer)))
     (propagated-inputs
-     `(("asio", asio)
+     `(("asio" ,asio)
        ("fmt" ,fmt)
-       ("http-parser", http-parser)))
+       ("http-parser" ,http-parser)))
     (arguments
      `(#:configure-flags '("-DRESTINIO_INSTALL=on")
        #:tests? #f ; TODO: The tests are called from the root CMakelist, need RESTINIO_TEST=on.
@@ -3072,14 +3511,14 @@ maximum extent possible.")
 (define-public batctl
   (package
    (name "batctl")
-   (version "2020.1")
+   (version "2020.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 "0fy252q1my3a57v6pfz8i97h6zv7v03di01dhwjkj47pqnx1rqm3"))))
+      (base32 "05rrpfbpdhxn5zgdps849qls2ifis6a94cjryb60d4y1nc2n0d7w"))))
    (inputs
     `(("libnl" ,libnl)))
    (native-inputs
@@ -3105,7 +3544,7 @@ module @code{batman-adv}, for Layer 2.")
 (define-public pagekite
   (package
     (name "pagekite")
-    (version "1.5.2.200603")
+    (version "1.5.2.200725")
     (source
      (origin
        (method git-fetch)
@@ -3114,7 +3553,7 @@ module @code{batman-adv}, for Layer 2.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "08rcyr54dssnpand6y26f8x9cjmd91hr44my08kxw70s5iqiwizv"))))
+        (base32 "0lig1i42bn9isw848vnml5qhcaa04x1dr2hb075bm0a3439kv3rr"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -3317,15 +3756,14 @@ thousands of connections is clearly realistic with today's hardware.")
 (define-public lldpd
   (package
     (name "lldpd")
-    (version "1.0.5")
+    (version "1.0.8")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://media.luffy.cx/files/lldpd/lldpd-"
                            version ".tar.gz"))
        (sha256
-        (base32
-         "16fbqrs3l976gdslx647nds8x7sz4h5h3h4l4yxzrayvyh9b5lrd"))
+        (base32 "1vrxr8lgkw7q6ixaaili6ac7i0j0326194s498n2dxihdvkh1llq"))
        (modules '((guix build utils)))
        (snippet
         '(begin
@@ -3339,6 +3777,7 @@ thousands of connections is clearly realistic with today's hardware.")
         "--with-privsep-group=nogroup"
         "--localstatedir=/var"
         "--enable-pie"
+        "--disable-static"
         "--without-embedded-libevent"
         (string-append "--with-systemdsystemunitdir="
                        (assoc-ref %outputs "out")
@@ -3406,3 +3845,121 @@ hashcash stamps efficiently.
 This package contains a command-line tool for computing and verifying hashcash
 stamps.")
     (license license:public-domain)))
+
+(define-public nbd
+  (package
+    (name "nbd")
+    (version "3.21")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append "mirror://sourceforge/nbd/nbd/" version
+                            "/nbd-" version ".tar.xz"))
+        (sha256
+         (base32 "1ydylvvayi4w2d08flji9q03sl7y8hn0c26vsay3nwwikprqls77"))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("glib" ,glib)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("which" ,which)))
+    (home-page "https://nbd.sourceforge.io/")
+    (synopsis "NBD client and server")
+    (description "This package provides the NBD (Network Block Devices)
+client and server.  It allows you to use remote block devices over a TCP/IP
+network.")
+    (license license:gpl2)))
+
+(define-public yggdrasil
+  (package
+    (name "yggdrasil")
+    (version "0.3.15")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/yggdrasil-network/yggdrasil-go")
+         (commit (string-append "v" version))
+         (recursive? #t)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0gk7gy8yq5nrnblv4imxzzm2hac4ri0hlw19ajfbc1zll5kj32gf"))
+       (patches (search-patches "yggdrasil-extra-config.patch"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/yggdrasil-network/yggdrasil-go"
+       ;; 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)))))
+    ;; 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)))
+    (home-page "https://yggdrasil-network.github.io/blog.html")
+    (synopsis
+     "Experiment in scalable routing as an encrypted IPv6 overlay network")
+    (description
+     "Yggdrasil is an early-stage implementation of a fully end-to-end encrypted
+IPv6 network.  It is lightweight, self-arranging, supported on multiple
+platforms and allows pretty much any IPv6-capable application to communicate
+securely with other Yggdrasil nodes.  Yggdrasil does not require you to have
+IPv6 Internet connectivity - it also works over IPv4.")
+    (license
+     ;; As a special exception to the GNU Lesser General Public License
+     ;; version 3 ("LGPL3"), the copyright holders of this Library give you
+     ;; permission to convey to a third party a Combined Work that links
+     ;; statically or dynamically to this Library without providing any Minimal
+     ;; Corresponding Source or Minimal Application Code as set out in 4d or
+     ;; providing the installation information set out in section 4e, provided
+     ;; that you comply with the other provisions of LGPL3 and provided that you
+     ;; meet, for the Application the terms and conditions of the license(s)
+     ;; which apply to the Application. Except as stated in this special
+     ;; exception, the provisions of LGPL3 will continue to comply in full to
+     ;; this Library. If you modify this Library, you may apply this exception
+     ;; to your version of this Library, but you are not obliged to do so. If
+     ;; you do not wish to do so, delete this exception statement from your
+     ;; version. This exception does not (and cannot) modify any license terms
+     ;; which apply to the Application, with which you must still comply
+     license:lgpl3)))
diff --git a/gnu/packages/nfs.scm b/gnu/packages/nfs.scm
index 049de2c4b0..8370107939 100644
--- a/gnu/packages/nfs.scm
+++ b/gnu/packages/nfs.scm
@@ -62,7 +62,8 @@
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags
-       `("--without-tcp-wrappers"
+       `("--disable-static"
+         "--without-tcp-wrappers"
          ,(string-append "--with-start-statd="
                          (assoc-ref %outputs "out") "/sbin/start-statd")
          ,(string-append "--with-krb5=" (assoc-ref %build-inputs "mit-krb5"))
@@ -116,10 +117,11 @@
      `(("keyutils" ,keyutils)
        ("libevent" ,libevent)
        ("libnfsidmap" ,libnfsidmap)
-       ("rpcsvc-proto" ,rpcsvc-proto) ;for 'rpcgen'
+       ("rpcsvc-proto" ,rpcsvc-proto)   ;for 'rpcgen'
        ("sqlite" ,sqlite)
        ("lvm2" ,lvm2)
-       ("util-linux" ,util-linux "lib")
+       ("util-linux" ,util-linux)           ; only for above substitutions
+       ("util-linux:lib" ,util-linux "lib") ; for libblkid
        ("mit-krb5" ,mit-krb5)
        ("libtirpc" ,libtirpc)
        ("python-wrapper" ,python-wrapper))) ;for the Python based tools
diff --git a/gnu/packages/nicotine.scm b/gnu/packages/nicotine.scm
new file mode 100644
index 0000000000..c6e99b3dbd
--- /dev/null
+++ b/gnu/packages/nicotine.scm
@@ -0,0 +1,78 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2020 Martin Becze <mjbecze@riseup.net>
+;;;
+;;; 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 nicotine)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix packages)
+  #:use-module (guix git-download)
+  #:use-module (guix build-system python)
+  #:use-module (gnu packages glib)
+  #:use-module (gnu packages gettext)
+  #:use-module (gnu packages gtk)
+  #:use-module (gnu packages check)
+  #:use-module (gnu packages mp3))
+
+(define-public nicotine+
+  (package
+    (name "nicotine+")
+    (version "2.1.2")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/Nicotine-Plus/nicotine-plus")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256 (base32 "18rra8yqjr10z23chzcp53ncbd5fhm0iqgqxpbxfq7a10za02v6l"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:imported-modules ((guix build glib-or-gtk-build-system)
+                           ,@%python-build-system-modules)
+       #:modules
+       ((guix build utils)
+        (guix build python-build-system)
+        ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'wrap-program
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((prog (string-append
+                          (assoc-ref outputs "out")
+                          "/bin/nicotine"))
+                   (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
+               (wrap-program prog
+                 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))
+               #t)))
+         (add-after 'wrap-program 'glib-or-gtk-wrap
+           (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap))
+         (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)))
+    (native-inputs
+     `(("python-pytest" ,python-pytest)
+       ("gettext" ,gettext-minimal)))
+    (home-page "https://nicotine-plus.github.io/nicotine-plus/")
+    (synopsis "Graphical client for Soulseek")
+    (description
+     "Nicotine+ is a graphical client for the Soulseek peer-to-peer
+file sharing network.  It is an attempt to keep Nicotine working with
+the latest libraries, kill bugs, keep current with the Soulseek protocol,
+and add some new features that users want and/or need.")
+    (license license:gpl3+)))
diff --git a/gnu/packages/node.scm b/gnu/packages/node.scm
index 1adb2cd07f..a495f6d763 100644
--- a/gnu/packages/node.scm
+++ b/gnu/packages/node.scm
@@ -6,6 +6,9 @@
 ;;; Copyright © 2017 Mike Gerwitz <mtg@gnu.org>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018, 2019, 2020 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2020 Pierre Langlois <pierre.langlois@gmx.com>
+;;; Copyright © 2020 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -24,6 +27,7 @@
 
 (define-module (gnu packages node)
   #:use-module ((guix licenses) #:select (expat))
+  #:use-module ((guix build utils) #:select (alist-replace))
   #:use-module (guix packages)
   #:use-module (guix derivations)
   #:use-module (guix download)
@@ -46,14 +50,14 @@
 (define-public node
   (package
     (name "node")
-    (version "10.19.0")
+    (version "10.20.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://nodejs.org/dist/v" version
                                   "/node-v" version ".tar.xz"))
               (sha256
                (base32
-                "0sginvcsf7lrlzsnpahj4bj1f673wfvby8kaxgvzlrbb7sy229v2"))
+                "0cvjwnl0wkcsyw3kannbdv01s235wrnp11n2s6swzjx95gpichfi"))
               (modules '((guix build utils)))
               (snippet
                `(begin
@@ -168,6 +172,14 @@
                     (target (readlink npm)))
                (with-directory-excursion bindir
                  (patch-shebang target (list bindir))
+                 #t))))
+         (add-after 'install 'patch-node-shebang
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((bindir (string-append (assoc-ref outputs "out")
+                                           "/bin"))
+                    (npx    (readlink (string-append bindir "/npx"))))
+               (with-directory-excursion bindir
+                 (patch-shebang npx (list bindir))
                  #t)))))))
     (native-inputs
      `(("python" ,python-2)
@@ -199,6 +211,24 @@ devices.")
     (properties '((max-silent-time . 7200)     ;2h, needed on ARM
                   (timeout . 21600)))))        ;6h
 
+;; TODO: Make this the default node on core-updates.  This cannot be done on
+;; master since this version of node requires a newer nghttp2 library at link
+;; time.
+(define-public node-10.22
+  (package
+    (inherit node)
+    (version "10.22.1")
+    (source (origin
+              (inherit (package-source node))
+              (uri (string-append "https://nodejs.org/dist/v" version
+                                  "/node-v" version ".tar.xz"))
+              (sha256
+               (base32
+                "0pr569qiabr4m7k38s7rwi3iyzrc5jmx19z2z0k7n4xfvhjlfzzl"))))
+    (inputs
+     (alist-replace "nghttp2" (list nghttp2-1.41 "lib")
+                    (package-inputs node)))))
+
 (define-public libnode
   (package
     (inherit node)
@@ -209,4 +239,5 @@ devices.")
         `(cons* "--shared" "--without-npm" ,flags))
        ((#:phases phases '%standard-phases)
         `(modify-phases ,phases
-           (delete 'patch-npm-shebang)))))))
+           (delete 'patch-npm-shebang)
+           (delete 'patch-node-shebang)))))))
diff --git a/gnu/packages/nss.scm b/gnu/packages/nss.scm
index b19ad7e1e9..6e2ca883e0 100644
--- a/gnu/packages/nss.scm
+++ b/gnu/packages/nss.scm
@@ -4,6 +4,7 @@
 ;;; Copyright © 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2020 Jonathan Brielmaier <jonathan.brielmaier@web.de>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -35,7 +36,7 @@
 (define-public nspr
   (package
     (name "nspr")
-    (version "4.25")
+    (version "4.29")
     (source (origin
              (method url-fetch)
              (uri (string-append
@@ -43,7 +44,7 @@
                    version "/src/nspr-" version ".tar.gz"))
              (sha256
               (base32
-               "0mjjk2b7ika3v4y99cnaqz3z1iq1a50r1psn9i3s87gr46z0khqb"))))
+               "10i5x637x0jqmdi47grkzgn56fg6770naa3wrhr4dmsrh3dnna12"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("perl" ,perl)))
@@ -72,7 +73,7 @@ in the Mozilla clients.")
 (define-public nss
   (package
     (name "nss")
-    (version "3.52.1")
+    (version "3.57")
     (source (origin
               (method url-fetch)
               (uri (let ((version-with-underscores
@@ -83,9 +84,9 @@ in the Mozilla clients.")
                       "nss-" version ".tar.gz")))
               (sha256
                (base32
-                "0y4jb9095f7bbgw7d7kvzm4c3g4p5i6y68fwhb8wlkpb7b1imj5w"))
+                "10n3pncg6k81ikjz12la147rppwqn57bkrdl9gb820w6pq0nra2m"))
               ;; Create nss.pc and nss-config.
-              (patches (search-patches "nss-pkgconfig.patch"
+              (patches (search-patches "nss-3.56-pkgconfig.patch"
                                        "nss-increase-test-timeout.patch"))
               (modules '((guix build utils)))
               (snippet
@@ -138,38 +139,29 @@ 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" "2020-02-01" "./nss/tests/all.sh")))
-           (replace 'install
-             (lambda* (#:key outputs #:allow-other-keys)
-               (let* ((out (assoc-ref outputs "out"))
-                      (bin (string-append (assoc-ref outputs "bin") "/bin"))
-                      (inc (string-append out "/include/nss"))
-                      (lib (string-append out "/lib/nss"))
-                      (obj (match (scandir "dist" (cut string-suffix? "OBJ" <>))
-                             ((obj) (string-append "dist/" obj)))))
-                 ;; Install nss-config to $out/bin.
-                 (install-file (string-append obj "/bin/nss-config")
-                               (string-append out "/bin"))
-                 (delete-file (string-append obj "/bin/nss-config"))
-                 ;; Install nss.pc to $out/lib/pkgconfig.
-                 (install-file (string-append obj "/lib/pkgconfig/nss.pc")
-                               (string-append out "/lib/pkgconfig"))
-                 (delete-file (string-append obj "/lib/pkgconfig/nss.pc"))
-                 (rmdir (string-append obj "/lib/pkgconfig"))
-                 ;; Install other files.
-                 (copy-recursively "dist/public/nss" inc)
-                 (copy-recursively (string-append obj "/bin") bin)
-                 (copy-recursively (string-append obj "/lib") lib)
-
-                 ;; FIXME: libgtest1.so is installed in the above step, and it's
-                 ;; (unnecessarily) linked with several NSS libraries, but
-                 ;; without the needed rpaths, causing the 'validate-runpath'
-                 ;; phase to fail.  Here we simply delete libgtest1.so, since it
-                 ;; seems to be used only during the tests.
-                 (delete-file (string-append lib "/libgtest1.so"))
-                 (delete-file (string-append lib "/libgtestutil.so"))
-
-                 #t))))))
+             (invoke "faketime" "2020-10-01" "./nss/tests/all.sh")))
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (bin (string-append (assoc-ref outputs "bin") "/bin"))
+                    (inc (string-append out "/include/nss"))
+                    (lib (string-append out "/lib/nss"))
+                    (obj (match (scandir "dist" (cut string-suffix? "OBJ" <>))
+                           ((obj) (string-append "dist/" obj)))))
+               ;; Install nss-config to $out/bin.
+               (install-file (string-append obj "/bin/nss-config")
+                             (string-append out "/bin"))
+               (delete-file (string-append obj "/bin/nss-config"))
+               ;; Install nss.pc to $out/lib/pkgconfig.
+               (install-file (string-append obj "/lib/pkgconfig/nss.pc")
+                             (string-append out "/lib/pkgconfig"))
+               (delete-file (string-append obj "/lib/pkgconfig/nss.pc"))
+               (rmdir (string-append obj "/lib/pkgconfig"))
+               ;; Install other files.
+               (copy-recursively "dist/public/nss" inc)
+               (copy-recursively (string-append obj "/bin") bin)
+               (copy-recursively (string-append obj "/lib") lib)
+               #t))))))
     (inputs
      `(("sqlite" ,sqlite)
        ("zlib" ,zlib)))
diff --git a/gnu/packages/ntp.scm b/gnu/packages/ntp.scm
index 82754cbf36..6d046eed1b 100644
--- a/gnu/packages/ntp.scm
+++ b/gnu/packages/ntp.scm
@@ -43,14 +43,14 @@
 (define-public chrony
   (package
     (name "chrony")
-    (version "3.5")
+    (version "4.0")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://download.tuxfamily.org/chrony/"
                            "chrony-" version ".tar.gz"))
        (sha256
-        (base32 "1d9r2dhslll4kzdmxrj0qfgwq1b30d4l3s5cwr8yr93029dpj0jf"))))
+        (base32 "09f6w2x5h5kamb4rhcbaz911q1f730qdalgsn8s48yjyqlafl9xy"))))
     (build-system gnu-build-system)
     (arguments
      `(#:modules ((srfi srfi-26)
@@ -80,7 +80,8 @@
     (native-inputs
      `(("pkg-config" ,pkg-config)))
     (inputs
-     `(("libcap" ,libcap)
+     `(("gnutls" ,gnutls)
+       ("libcap" ,libcap)
        ("libseccomp" ,libseccomp)
        ("nettle" ,nettle)))
     (home-page "https://chrony.tuxfamily.org/")
@@ -165,14 +166,14 @@ computers over a network.")
 (define-public openntpd
   (package
     (name "openntpd")
-    (version "6.2p3")
+    (version "6.8p1")
     (source (origin
               (method url-fetch)
               (uri (string-append
                     "mirror://openbsd/OpenNTPD/openntpd-" version ".tar.gz"))
               (sha256
                (base32
-                "0fn12i4kzsi0zkr4qp3dp9bycmirnfapajqvdfx02zhr4hanj0kv"))))
+                "0ijsylc7a4jlpxsqa0jq1w1c7333id8pcakzl7a5749ria1xp0l5"))))
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags `( "--with-privsep-user=ntpd"
diff --git a/gnu/packages/nvi.scm b/gnu/packages/nvi.scm
index c34b1cad72..b520b32784 100644
--- a/gnu/packages/nvi.scm
+++ b/gnu/packages/nvi.scm
@@ -19,12 +19,14 @@
 
 (define-module (gnu packages nvi)
   #:use-module (gnu packages)
+  #:use-module (gnu packages autotools)
   #:use-module (gnu packages dbm)
   #:use-module (gnu packages ncurses)
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix build-system gnu)
-  #:use-module (guix licenses))
+  #:use-module (guix licenses)
+  #:use-module (guix utils))
 
 (define-public nvi
   (package
@@ -64,17 +66,41 @@
     (build-system gnu-build-system)
     (arguments
       `(#:out-of-source? #t
-        #:configure-flags '("--enable-widechar")))
+        #:configure-flags
+        '("--enable-widechar"
+          ,@(if (%current-target-system)
+                '("vi_cv_sprintf_count=yes")
+                '()))
+        #:phases
+        (modify-phases %standard-phases
+          (add-before 'configure 'fix-configure
+            (lambda* (#:key inputs native-inputs #:allow-other-keys)
+              ;; Replace outdated config.sub and config.guess:
+              (with-directory-excursion "dist"
+                (for-each (lambda (file)
+                            (chmod file #o755)
+                            (install-file
+                             (string-append
+                              (assoc-ref
+                               (or native-inputs inputs) "automake")
+                              "/share/automake-"
+                              ,(version-major+minor
+                                (package-version automake))
+                              "/" file) "."))
+                          '("config.sub")))
+              #t)))))
     (inputs
       `(("bdb" ,bdb)
         ("ncurses" ,ncurses)))
+    (native-inputs
+     `(("automake" ,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
 considered the standard text editor, and is available on almost all Unix
-systems.  Nvi is intended as a \"bug-for-bug compatible\" clone of the original
-BSD vi editor.  As such, it doesn't have a lot of snazzy features as do some
-of the other vi clones such as elvis and vim.  However, if all you want is vi,
-this is the one to get.")
+systems.  Nvi is intended as a \"bug-for-bug compatible\" clone of the
+original BSD vi editor.  As such, it doesn't have a lot of snazzy features as
+do some of the other vi clones such as elvis and vim.  However, if all you
+want is vi, this is the one to get.")
     (home-page "https://sites.google.com/a/bostic.com/keithbostic/vi")
     (license bsd-3)))
diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm
index 682bc890bf..8a91a79c36 100644
--- a/gnu/packages/ocaml.scm
+++ b/gnu/packages/ocaml.scm
@@ -15,6 +15,10 @@
 ;;; 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 divoplade <d@divoplade.fr>
+;;; Copyright © 2020 pukkamustard <pukkamustard@posteo.net>
+;;; Copyright © 2021 aecepoglu <aecepoglu@fastmail.fm>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -69,6 +73,7 @@
   #:use-module (gnu packages time)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages virtualization)
+  #:use-module (gnu packages web)
   #:use-module (gnu packages web-browsers)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg)
@@ -91,51 +96,18 @@
                  (number->string file-number) "/" name "-" version
                  ".tar.gz"))
 
-;; Janestreet packages are found in a similar way and all need the same patch.
 (define (janestreet-origin name version hash)
   (origin (method url-fetch)
-          (uri (string-append "https://ocaml.janestreet.com/ocaml-core/"
+          (uri (string-append "https://ocaml.janestreet.com/ocaml-core/v"
                               (version-major+minor version) "/files/"
-                              name "-" version ".tar.gz"))
-          (sha256 (base32 hash))
-          (modules '((guix build utils)))
-          (snippet
-           (let ((pattern (string-append "lib/" name)))
-             `(begin
-                ;; install.ml contains an invalid reference to the ppx file and
-                ;; propagates this error to the generated META file.  It
-                ;; looks for it in the "lib" directory, but it is installed in
-                ;; "lib/ocaml/site-lib/package".  This substitute does not change
-                ;; this file for non ppx packages.
-                (substitute* "install.ml"
-                  ((,pattern) (string-append "lib/ocaml/site-lib/" ,name)))
-                ;; The standard Makefile would try to install janestreet modules
-                ;; in OCaml's directory in the store, which is read-only.
-                (substitute* "Makefile"
-                  (("--prefix")
-                   "--libdir $(LIBDIR) --prefix"))
-                #t)))))
-
-;; They also require almost the same set of arguments
-(define janestreet-arguments
-  `(#:use-make? #t
-    #:make-flags
-    (list (string-append "CONFIGUREFLAGS=--prefix "
-                         (assoc-ref %outputs "out")
-                         " --enable-tests")
-          (string-append "LIBDIR="
-                         (assoc-ref %outputs "out")
-                         "/lib/ocaml/site-lib")
-          ;; for ocaml-bin-prot, otherwise ignored
-          (string-append "OCAML_TOPLEVEL_PATH="
-                         (assoc-ref %build-inputs "findlib")
-                         "/lib/ocaml/site-lib"))
-    #:phases (modify-phases %standard-phases (delete 'configure))))
+                              name "-v" (version-major+minor+point version)
+                              ".tar.gz"))
+          (sha256 (base32 hash))))
 
-(define-public ocaml-4.09
+(define-public ocaml-4.11
   (package
     (name "ocaml")
-    (version "4.09.0")
+    (version "4.11.1")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -144,7 +116,7 @@
                     "/ocaml-" version ".tar.xz"))
               (sha256
                (base32
-                "1v3z5ar326f3hzvpfljg4xj8b9lmbrl53fn57yih1bkbx3gr3yzj"))))
+                "0k4521c0p10c5ams6vjv5qkkjhmpkb0bfn04llcz46ah0f3r2jpa"))))
     (build-system gnu-build-system)
     (native-search-paths
      (list (search-path-specification
@@ -202,6 +174,20 @@ functional, imperative and object-oriented styles of programming.")
     ;; distributed under lgpl2.0.
     (license (list license:qpl license:lgpl2.0))))
 
+(define-public ocaml-4.09
+  (package
+    (inherit ocaml-4.11)
+    (version "4.09.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "http://caml.inria.fr/pub/distrib/ocaml-"
+                    (version-major+minor version)
+                    "/ocaml-" version ".tar.xz"))
+              (sha256
+               (base32
+                "1v3z5ar326f3hzvpfljg4xj8b9lmbrl53fn57yih1bkbx3gr3yzj"))))))
+
 (define-public ocaml-4.07
   (package
     (inherit ocaml-4.09)
@@ -229,7 +215,7 @@ functional, imperative and object-oriented styles of programming.")
                           "--prefix" out
                           "--mandir" mandir))))))))))
 
-(define-public ocaml ocaml-4.09)
+(define-public ocaml ocaml-4.11)
 
 (define-public ocamlbuild
   (package
@@ -329,7 +315,7 @@ Software distribution.")
 (define-public ocaml-mccs
   (package
     (name "ocaml-mccs")
-    (version "1.1+9")
+    (version "1.1+11")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -338,7 +324,7 @@ Software distribution.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1i0hhkrqi7rqlainlg5pc4hibbx6b5dp3x99gmav8c3sbfvlk9mc"))))
+                "1gsad5cj03256i36wdjqk5pg51pyd48rpjazf0gfaakrn8lk438g"))))
     (build-system dune-build-system)
     (propagated-inputs `(("ocaml-cudf" ,ocaml-cudf)))
     (home-page "https://www.i3s.unice.fr/~cpjm/misc/")
@@ -405,6 +391,69 @@ repository-wide uninstallability checks.")
     ;; with static-linking exception
     (license license:lgpl2.1+)))
 
+(define-public ocaml-down
+  (package
+    (name "ocaml-down")
+    (version "0.0.3")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append "https://erratique.ch/software/down/releases/down-"
+                            version ".tbz"))
+        (sha256
+         (base32
+          "1nz2f5j17frgr2vrslcz9klmi6w9sm2vqwwwpi33ngcm3rgmsrlg"))))
+    (build-system ocaml-build-system)
+    (arguments
+     `(#:tests? #f ;no tests
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure))
+       #:build-flags
+       (list "build" "--lib-dir"
+             (string-append (assoc-ref %outputs "out") "/lib/ocaml/site-lib"))))
+    (native-inputs
+     `(("ocaml-findlib" ,ocaml-findlib)
+       ("ocamlbuild" ,ocamlbuild)
+       ("ocaml-topkg" ,ocaml-topkg)
+       ("opam" ,opam)))
+    (home-page "https://erratique.ch/software/down")
+    (synopsis "OCaml toplevel (REPL) upgrade")
+    (description "Down is an unintrusive user experience upgrade for the
+@command{ocaml} toplevel (REPL).
+
+Simply load the zero dependency @code{down} library in the @command{ocaml}
+toplevel and you get line edition, history, session support and identifier
+completion and documentation with @command{ocp-index}.
+
+Add this to your @file{~/.ocamlinit}:
+
+@example
+#use \"down.top\"
+@end example
+
+You may also need to add this to your @file{~/.ocamlinit} and declare
+the environment variable @code{OCAML_TOPLEVEL_PATH}:
+
+@example
+let () =
+  try Topdirs.dir_directory (Sys.getenv \"OCAML_TOPLEVEL_PATH\")
+  with Not_found -> ()
+@end example
+
+OR
+
+@example
+let () = String.split_on_char ':' (Sys.getenv \"OCAMLPATH\")
+         |> List.filter (fun x -> Filename.check_suffix x \"/site-lib\")
+         |> List.map (fun x -> x ^ \"/toplevel\")
+         (* remove the line below if you don't want to see the text
+            every time you start the toplevel *)
+         |> List.map (fun x -> Printf.printf \"adding directory %s\\n\" x; x)
+         |> List.iter Topdirs.dir_directory;;
+@end example")
+    (license license:isc)))
+
 (define-public ocaml-opam-file-format
   (package
     (name "ocaml-opam-file-format")
@@ -429,14 +478,14 @@ repository-wide uninstallability checks.")
     (home-page "https://opam.ocaml.org")
     (synopsis "Parser and printer for the opam file syntax")
     (description "This package contains a parser and a pretty-printer for
-the opam file fomat.")
+the opam file format.")
     ;; With static-linking exception
     (license license:lgpl2.1+)))
 
 (define-public opam
   (package
     (name "opam")
-    (version "2.0.6")
+    (version "2.0.7")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -445,7 +494,7 @@ the opam file fomat.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1vyga2jllsfsikppxyzljm4isfnnnl8k0rb44h8xaddjzdg1d4m8"))))
+                "1p719ccn9wnzk6impsnwr809yh507h8f37dx9nn64b1hsyb5z8ax"))))
     (build-system ocaml-build-system)
     (arguments
      `(#:configure-flags
@@ -541,7 +590,7 @@ Git-friendly development workflow.")
 (define-public camlp5
   (package
     (name "camlp5")
-    (version "7.12")
+    (version "7.13")
     (source
      (origin
        (method git-fetch)
@@ -550,7 +599,7 @@ Git-friendly development workflow.")
              (commit (string-append "rel" (string-delete #\. version)))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "12ix5g15bys932hyf9gs637iz76m0ji9075d83jfdmx85q30llgf"))))
+        (base32 "1d9spy3f5ahixm8nxxk086kpslzva669a5scn49am0s7vx4i71kp"))))
     (build-system gnu-build-system)
     (inputs
      `(("ocaml" ,ocaml)))
@@ -672,55 +721,59 @@ the OCaml core distribution.")
     (license license:lgpl2.1+))); with linking exception
 
 (define-public emacs-tuareg
-  (package
-    (name "emacs-tuareg")
-    (version "2.2.0")
-    (source
-     (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/ocaml/tuareg")
-             (commit version)))
-       (file-name (git-file-name name version))
-       (sha256
-        (base32 "06zxnn85fk5087iq0zxc5l5n9fz8r0367wylmynbfhc9711vccy6"))))
-    (build-system gnu-build-system)
-    (native-inputs `(("emacs" ,emacs-minimal)
-                     ("opam" ,opam)))
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'make-git-checkout-writable
-           (lambda _
-             (for-each make-file-writable (find-files "."))
-             #t))
-         (delete 'configure)
-         (add-before 'install 'fix-install-path
-           (lambda* (#:key outputs #:allow-other-keys)
-             (substitute* "Makefile"
-               (("/emacs/site-lisp")
-                (string-append (assoc-ref %outputs "out")
-                               "/share/emacs/site-lisp/")))
-             #t))
-         (add-after 'install 'post-install
-           (lambda* (#:key outputs #:allow-other-keys)
-             (symlink "tuareg.el"
-                      (string-append (assoc-ref outputs "out")
-                                     "/share/emacs/site-lisp/"
-                                     "tuareg-autoloads.el"))
-             #t)))))
-    (home-page "https://github.com/ocaml/tuareg")
-    (synopsis "OCaml programming mode, REPL, debugger for Emacs")
-    (description "Tuareg helps editing OCaml code, to highlight important
+  ;; Last upstream release on Sept., 14th, 2018, since then "Package cl
+  ;; deprecated" or 'lexical-binding' and others had been fixed.
+  (let ((commit "ccde45bbc292123ec20617f1af7f7e19f7481545")
+        (revision "0"))
+    (package
+      (name "emacs-tuareg")
+      (version (git-version "2.2.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/ocaml/tuareg")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1yxv4bnqarilnpg5j7wywall8170hwvm0q4xx06yqjgcn8pq1lac"))))
+      (build-system gnu-build-system)
+      (native-inputs
+       `(("emacs" ,emacs-minimal)
+         ("opam" ,opam)))
+      (arguments
+       `(#:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'make-git-checkout-writable
+             (lambda _
+               (for-each make-file-writable (find-files "."))
+               #t))
+           (delete 'configure)
+           (add-before 'install 'fix-install-path
+             (lambda* (#:key outputs #:allow-other-keys)
+               (substitute* "Makefile"
+                 (("/emacs/site-lisp")
+                  (string-append (assoc-ref %outputs "out")
+                                 "/share/emacs/site-lisp/")))
+               #t))
+           (add-after 'install 'post-install
+             (lambda* (#:key outputs #:allow-other-keys)
+               (symlink "tuareg.el"
+                        (string-append (assoc-ref outputs "out")
+                                       "/share/emacs/site-lisp/"
+                                       "tuareg-autoloads.el"))
+               #t)))))
+      (home-page "https://github.com/ocaml/tuareg")
+      (synopsis "OCaml programming mode, REPL, debugger for Emacs")
+      (description "Tuareg helps editing OCaml code, to highlight important
 parts of the code, to run an OCaml REPL, and to run the OCaml debugger within
 Emacs.")
-    (license license:gpl2+)))
+      (license license:gpl2+))))
 
 (define-public ocaml-menhir
   (package
     (name "ocaml-menhir")
-    ;; More recent versions can be built after we have dune >= 2.0
-    (version "20190626")
+    (version "20200211")
     (source
      (origin
        (method git-fetch)
@@ -729,19 +782,12 @@ Emacs.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0v8av4pw6rykzb7wx54xhbsx0jhh8xyb4x0k4yrxi0w5ylkck6mb"))))
-    (build-system ocaml-build-system)
+        (base32 "019izf51kdc7pzkw68zg8a2alc8lxw1gwdp7in970mr90n16b5zj"))))
+    (build-system dune-build-system)
     (inputs
      `(("ocaml" ,ocaml)))
-    (native-inputs
-     `(("ocamlbuild" ,ocamlbuild)))
     (arguments
-     `(#:make-flags `("USE_OCAMLFIND=true"
-                      ,(string-append "PREFIX=" (assoc-ref %outputs "out")))
-       #:tests? #f ; No check target
-       #:phases
-       (modify-phases %standard-phases
-         (delete 'configure))))
+     `(#:tests? #f)) ; No check target
     (home-page "http://gallium.inria.fr/~fpottier/menhir/")
     (synopsis "Parser generator")
     (description "Menhir is a parser generator.  It turns high-level grammar
@@ -861,12 +907,13 @@ libpanel, librsvg and quartz.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1bykiyc0dc5pkw8x370qkg2kygq9pq7yqzsgczd3y13b6ivm4sdq"))))
+                "1bykiyc0dc5pkw8x370qkg2kygq9pq7yqzsgczd3y13b6ivm4sdq"))
+              (patches (search-patches "unison-fix-ocaml-4.08.patch"))))
     (build-system gnu-build-system)
     (outputs '("out"
                "doc"))                  ; 1.9 MiB of documentation
     (native-inputs
-     `(("ocaml" ,ocaml-4.07)
+     `(("ocaml" ,ocaml-4.09)
        ;; For documentation
        ("ghostscript" ,ghostscript)
        ("texlive" ,texlive-tiny)
@@ -992,6 +1039,40 @@ compilers that can directly deal with packages.")
      `(("m4" ,m4)
        ("ocaml" ,ocaml-4.07)))))
 
+(define-public ocaml4.09-findlib
+  (package
+    (inherit ocaml-findlib)
+    (name "ocaml4.09-findlib")
+    (native-inputs
+     `(("m4" ,m4)
+       ("ocaml" ,ocaml-4.09)))))
+
+(define-public ocaml-ounit2
+  (package
+    (name "ocaml-ounit2")
+    (version "2.2.4")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/gildor478/ounit.git")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0gxjw1bhmjcjzri6x6psqrkbbyq678b69bqfl9i1zswp7cj2lryg"))))
+    (build-system dune-build-system)
+    (inputs
+     ;; XXX Should libev be a propagated-input of ocaml-lwt?
+     `(("libev" ,libev)))
+    (propagated-inputs
+     `(("lwt" ,ocaml-lwt)
+       ("ocaml-stdlib-shims" ,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
+to JUnit and other XUnit testing frameworks.")
+    (license license:expat)))
+
 ;; note that some tests may hang for no obvious reason.
 (define-public ocaml-ounit
   (package
@@ -1212,8 +1293,7 @@ instances and printing them.")
                 "0gddzan4vzs0vklsxhirdjrvx3rp7hhh2yr20vi13nq8rwkn9w29"))))
     (build-system dune-build-system)
     (arguments
-     `(#:jbuild? #t
-       #:test-target "tests"))
+     `(#:test-target "tests"))
     (propagated-inputs
      `(("ounit" ,ocaml-ounit)
        ("qcheck" ,ocaml-qcheck)))
@@ -1253,10 +1333,10 @@ full_split, cut, rcut, etc..")
     ;; where it says `mit'.
     (license license:expat)))
 
-(define-public dune
+(define dune-bootstrap
   (package
     (name "dune")
-    (version "1.11.3")
+    (version "2.7.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -1265,17 +1345,19 @@ full_split, cut, rcut, etc..")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0l4x0x2fz135pljv88zj8y6w1ninsqw0gn1mdxzprd6wbxbyn8wr"))))
+                "10qgx83fq8b522y9mpllrp0l5cgmr2bs5s7aix5img21hlbm34in"))))
     (build-system ocaml-build-system)
     (arguments
      `(#:tests? #f; require odoc
-       #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
+       #:make-flags (list "release"
+                          (string-append "PREFIX=" (assoc-ref %outputs "out"))
                           (string-append "LIBDIR=" (assoc-ref %outputs "out")
                                          "/lib/ocaml/site-lib"))
        #:phases
        (modify-phases %standard-phases
          (replace 'configure
            (lambda* (#:key outputs #:allow-other-keys)
+             (mkdir-p "src/dune")
              (invoke "./configure")
              #t)))))
     (home-page "https://github.com/ocaml/dune")
@@ -1285,13 +1367,133 @@ release of Jane Street packages.  It reads metadata from @file{dune} files
 following a very simple s-expression syntax.")
     (license license:expat)))
 
+(define ocaml4.09-dune-bootstrap
+  (package-with-ocaml4.09 dune-bootstrap))
+
+(define-public dune-configurator
+  (package
+    (inherit dune-bootstrap)
+    (name "dune-configurator")
+    (build-system dune-build-system)
+    (arguments
+     `(#:package "dune-configurator"
+       #:dune ,dune-bootstrap
+       ; require ppx_expect
+       #:tests? #f))
+    (propagated-inputs
+     `(("ocaml-csexp" ,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
+OCaml scripts that test features available on the system, in order to generate
+config.h files for instance.  Among other things, dune-configurator allows one to:
+
+@itemize
+@item test if a C program compiles
+@item query pkg-config
+@item import #define from OCaml header files
+@item generate config.h file
+@end itemize")))
+
+(define-public ocaml4.09-dune-configurator
+  (package
+    (inherit dune-configurator)
+    (name "ocaml4.09-dune-configurator")
+    (arguments
+     `(#:package "dune-configurator"
+       #:tests? #f
+       #:dune ,ocaml4.09-dune-bootstrap
+       #:ocaml ,ocaml-4.09
+       #:findlib ,ocaml4.09-findlib))
+    (propagated-inputs
+     `(("ocaml-csexp" ,ocaml4.09-csexp)))))
+
+(define-public dune
+  (package
+    (inherit dune-bootstrap)
+    (propagated-inputs
+     `(("dune-configurator" ,dune-configurator)))
+    (properties `((ocaml4.07-variant . ,(delay ocaml4.07-dune))
+                  (ocaml4.09-variant . ,(delay ocaml4.09-dune))))))
+
+(define-public ocaml4.09-dune
+  (package
+    (inherit ocaml4.09-dune-bootstrap)
+    (propagated-inputs
+     `(("dune-configurator" ,dune-configurator)))))
+
 (define-public ocaml4.07-dune
-  (package-with-ocaml4.07 dune))
+  (package
+    (inherit (package-with-ocaml4.07 dune-bootstrap))
+    (version "1.11.3")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/ocaml/dune")
+                     (commit version)))
+              (file-name (git-file-name "dune" version))
+              (sha256
+               (base32
+                "0l4x0x2fz135pljv88zj8y6w1ninsqw0gn1mdxzprd6wbxbyn8wr"))))))
+
+(define-public ocaml-csexp
+  (package
+    (name "ocaml-csexp")
+    (version "1.3.2")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/ocaml-dune/csexp")
+                     (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "190zppgvdjgghmrnx67ayzzk86qdjy3yn5fcrcw08wsh93384pl0"))))
+    (build-system dune-build-system)
+    (arguments
+     `(#:tests? #f; FIXME: needs ppx_expect, but which version?
+       #:dune ,dune-bootstrap
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'build 'chmod
+           (lambda _
+             (for-each (lambda (file) (chmod file #o644)) (find-files "." ".*"))
+             #t)))))
+    (propagated-inputs
+     `(("ocaml-result" ,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")
+    (description "This library provides minimal support for Canonical
+S-expressions.  Canonical S-expressions are a binary encoding of
+S-expressions that is super simple and well suited for communication
+between programs.
+
+This library only provides a few helpers for simple applications.  If
+you need more advanced support, such as parsing from more fancy input
+sources, you should consider copying the code of this library given
+how simple parsing S-expressions in canonical form is.
+
+To avoid a dependency on a particular S-expression library, the only
+module of this library is parameterised by the type of S-expressions.")
+    (license license:expat)))
+
+(define-public ocaml4.09-csexp
+  (package
+    (inherit ocaml-csexp)
+    (name "ocaml4.09-csexp")
+    (arguments
+     `(#:ocaml ,ocaml-4.09
+       #:findlib ,ocaml4.09-findlib
+       ,@(substitute-keyword-arguments (package-arguments ocaml-csexp)
+           ((#:dune _) ocaml4.09-dune-bootstrap))))
+    (propagated-inputs
+     `(("ocaml-result" ,ocaml4.09-result)))))
 
 (define-public ocaml-migrate-parsetree
   (package
     (name "ocaml-migrate-parsetree")
-    (version "1.4.0")
+    (version "1.7.3")
     (home-page "https://github.com/ocaml-ppx/ocaml-migrate-parsetree")
     (source
      (origin
@@ -1302,7 +1504,7 @@ following a very simple s-expression syntax.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "0sv1p4615l8gpbah4ya2c40yr6fbvahvv3ks7zhrsgcwcq2ljyr2"))))
+         "0336vz0galjnsazbmkxjwdv1qvdqsx2rgrvp778xgq2fzasz45cx"))))
     (build-system dune-build-system)
     (arguments
      `(#:tests? #f))
@@ -1320,7 +1522,7 @@ functions to the next and/or previous version.")
 (define-public ocaml-ppx-tools-versioned
   (package
     (name "ocaml-ppx-tools-versioned")
-    (version "5.2.3")
+    (version "5.4.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -1329,10 +1531,11 @@ functions to the next and/or previous version.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1hcmpnw26zf70a71r3d2c2c0mn8q084gdn1r36ynng6fv9hq6j0y"))))
+                "07lnj4yzwvwyh5fhpp1dxrys4ddih15jhgqjn59pmgxinbnddi66"))))
     (build-system dune-build-system)
     (arguments
-     `(#:test-target "."))
+     `(#:test-target "."
+       #:package "ppx_tools_versioned"))
     (propagated-inputs
      `(("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree)))
     (properties `((upstream-name . "ppx_tools_versioned")))
@@ -1362,8 +1565,14 @@ ocaml-migrate-parsetree")
     (propagated-inputs
      `(("ocaml-ppx-tools-versioned" ,ocaml-ppx-tools-versioned)))
     (arguments
-     `(#:tests? #f; Tests fail to build
-       #:jbuild? #t))
+     `(#:package "bitstring"
+       #:tests? #f; Tests fail to build
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'build 'upgrade
+           (lambda _
+             (invoke "dune" "upgrade")
+             #t)))))
     (home-page "https://github.com/xguerin/bitstring")
     (synopsis "Bitstrings and bitstring matching for OCaml")
     (description "Adds Erlang-style bitstrings and matching over bitstrings as
@@ -1376,7 +1585,7 @@ powerful.")
 (define-public ocaml-result
   (package
     (name "ocaml-result")
-    (version "1.4")
+    (version "1.5")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -1385,16 +1594,28 @@ powerful.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0hir97k9i72nfkm6kncxnqpyk400wlsxysbldgcvk0fd9pjnsc3p"))))
+                "166laj8qk7466sdl037c6cjs4ac571hglw4l5qpyll6df07h6a7q"))))
     (build-system dune-build-system)
     (arguments
-     `(#:test-target "."))
+     `(#:test-target "."
+       #:dune ,dune-bootstrap))
+    (properties `((ocaml4.09-variant . ,(delay ocaml4.09-result))))
     (home-page "https://github.com/janestreet/result")
     (synopsis "Compatibility Result module")
     (description "Uses the new result type defined in OCaml >= 4.03 while
 staying compatible with older version of OCaml should use the Result module
 defined in this library.")
     (license license:bsd-3)))
+
+(define-public ocaml4.09-result
+  (package
+    (inherit ocaml-result)
+    (name "ocaml4.09-result")
+    (arguments
+     `(#:test-target "."
+       #:dune ,ocaml4.09-dune-bootstrap
+       #:ocaml ,ocaml-4.09
+       #:findlib ,ocaml4.09-findlib))))
  
 (define-public ocaml-topkg
   (package
@@ -1475,9 +1696,10 @@ library.")
     (build-system dune-build-system)
     (arguments
      `(#:ocaml ,ocaml-4.07
-       #:findlib ,ocaml4.07-findlib))
+       #:findlib ,ocaml4.07-findlib
+       #:dune ,ocaml4.07-dune))
     (native-inputs
-     `(("ocaml-base" ,ocaml4.07-base)
+     `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base))
        ("ocaml-stdio" ,ocaml4.07-stdio)
        ("pkg-config" ,pkg-config)))
     (inputs
@@ -1593,23 +1815,23 @@ most of the POSIX and GNU conventions.")
 (define-public ocaml-fmt
   (package
     (name "ocaml-fmt")
-    (version "0.8.5")
+    (version "0.8.9")
     (source
       (origin
         (method url-fetch)
         (uri (string-append "http://erratique.ch/software/fmt/releases/fmt-"
                             version ".tbz"))
         (sha256 (base32
-                  "1zj9azcxcn6skmb69ykgmi9z8c50yskwg03wqgh87lypgjdcz060"))))
+                  "0gkkkj4x678vxdda4xaw2dd44qjacavsvn5nx8gydfwah6pjbkxk"))))
     (build-system ocaml-build-system)
     (native-inputs
      `(("ocamlbuild" ,ocamlbuild)
        ("opam" ,opam)
        ("topkg" ,ocaml-topkg)))
     (propagated-inputs
-     `(("result" ,ocaml-result)
-       ("ocaml-uchar" ,ocaml-uchar)
-       ("cmdliner" ,ocaml-cmdliner)))
+     `(("cmdliner" ,ocaml-cmdliner)
+       ("ocaml-stdlib-shims" ,ocaml-stdlib-shims)
+       ("ocaml-uchar" ,ocaml-uchar)))
     (arguments `(#:tests? #f
                  #:build-flags (list "build" "--with-base-unix" "true"
                                      "--with-cmdliner" "true")
@@ -1658,14 +1880,14 @@ immutability.")
 (define-public ocaml-alcotest
   (package
     (name "ocaml-alcotest")
-    (version "0.8.5")
+    (version "1.0.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/mirage/alcotest/releases/"
                                   "download/" version "/alcotest-" version ".tbz"))
               (sha256
                 (base32
-                  "0szwjxvaahgynsx0apj81jxj3ki6yz4is9mh2wkcbx66qy7n6fvb"))))
+                  "1a43ilhwnj58pq3bi78ni46l9wh6klmmgfc93i94mvyx48bzzayx"))))
     (build-system dune-build-system)
     (arguments
      `(#:package "alcotest"
@@ -1676,8 +1898,10 @@ immutability.")
      `(("ocaml-astring" ,ocaml-astring)
        ("ocaml-cmdliner" ,ocaml-cmdliner)
        ("ocaml-fmt" ,ocaml-fmt)
-       ("ocaml-result" ,ocaml-result)
-       ("ocaml-uuidm" ,ocaml-uuidm)))
+       ("ocaml-re" ,ocaml-re)
+       ("ocaml-stdlib-shims" ,ocaml-stdlib-shims)
+       ("ocaml-uuidm" ,ocaml-uuidm)
+       ("ocaml-uutf" ,ocaml-uutf)))
     (home-page "https://github.com/mirage/alcotest")
     (synopsis "Lightweight OCaml test framework")
     (description "Alcotest exposes simple interface to perform unit tests.  It
@@ -1865,8 +2089,7 @@ locks or other synchronization primitives.")
                 "1n12i1rmn9cjn6p8yr6qn5dwbrwvym7ckr7bla04a1xnq8qlcyj7"))))
     (build-system dune-build-system)
     (arguments
-     `(#:tests? #f; require lwt_ppx
-       #:jbuild? #t))
+     `(#:tests? #f)); require lwt_ppx
     (propagated-inputs
      `(("lwt" ,ocaml-lwt)))
     (properties `((upstream-name . "lwt_log")))
@@ -1879,14 +2102,14 @@ ocaml lwt.")
 (define-public ocaml-logs
   (package
     (name "ocaml-logs")
-    (version "0.6.2")
+    (version "0.7.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://erratique.ch/software/logs/releases/"
                                   "logs-" version ".tbz"))
               (sha256
                 (base32
-                  "1khbn7jqpid83zn8rvyh1x1sirls7zc878zj4fz985m5xlsfy853"))))
+                  "1jnmd675wmsmdwyb5mx5b0ac66g4c6gpv5s4mrx2j6pb0wla1x46"))))
     (build-system ocaml-build-system)
     (arguments
      `(#:tests? #f
@@ -2025,9 +2248,10 @@ representation of the data.")
      `(#:tests? #f; no tests
        #:package "gen"
        #:ocaml ,ocaml-4.07
-       #:findlib ,ocaml4.07-findlib))
+       #:findlib ,ocaml4.07-findlib
+       #:dune ,ocaml4.07-dune))
     (propagated-inputs
-     `(("ocaml-odoc" ,ocaml4.07-odoc)))
+     `(("ocaml-odoc" ,(package-with-ocaml4.07 ocaml4.07-odoc))))
     (native-inputs
      `(("ocaml-qtest" ,(package-with-ocaml4.07 ocaml-qtest))
        ("ocaml-qcheck" ,(package-with-ocaml4.07 ocaml-qcheck))))
@@ -2070,7 +2294,8 @@ and consumable.")
              (for-each (lambda (file) (chmod file #o644)) (find-files "." ".*"))
              #t)))
        #:ocaml ,ocaml-4.07
-       #:findlib ,ocaml4.07-findlib))
+       #:findlib ,ocaml4.07-findlib
+       #:dune ,ocaml4.07-dune))
     (native-inputs
      `(("ocamlbuild" ,(package-with-ocaml4.07 ocamlbuild))))
     (propagated-inputs
@@ -2201,6 +2426,77 @@ string values and to directly encode characters in OCaml Buffer.t values.")
 the JSON data format.  It can process JSON text without blocking on IO and
 without a complete in-memory representation of the data.")
     (license license:isc)))
+ 
+(define-public ocaml-ocp-indent
+  (package
+    (name "ocaml-ocp-indent")
+    (version "1.8.2")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/OCamlPro/ocp-indent")
+               (commit version)))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32
+          "1dvcl108ir9nqkk4mjm9xhhj4p9dx9bmg8bnms54fizs1x3x8ar3"))))
+    (build-system dune-build-system)
+    (arguments
+     `(#:test-target "tests"
+       #:build-flags (list "--profile=release")))
+    (propagated-inputs
+     `(("ocaml-cmdliner" ,ocaml-cmdliner)))
+    (home-page "https://www.typerex.org/ocp-indent.html")
+    (synopsis "Tool to indent OCaml programs")
+    (description
+      "Ocp-indent is based on an approximate, tolerant OCaml parser
+and a simple stack machine.  Presets and configuration options are available,
+with the possibility to set them project-wide.  It supports the most common
+syntax extensions, and it is extensible for others.
+
+This package includes:
+
+@itemize
+@item An indentor program, callable from the command-line or from within editors,
+@item Bindings for popular editors,
+@item A library that can be directly used by editor writers, or just for
+      fault-tolerant and approximate parsing.
+@end itemize")
+    (license license:lgpl2.1)))
+ 
+(define-public ocaml-ocp-index
+  (package
+    (name "ocaml-ocp-index")
+    (version "1.2.1")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/OCamlPro/ocp-index")
+               (commit version)))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32
+          "08r7mxdnxmhff37fw4hmrpjgckgi5kaiiiirwp4rmdl594z0h9c8"))))
+    (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)))
+    (native-inputs
+     `(("ocaml-cppo" ,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
+and command-line tool.")
+    ;; All files in libs/ are GNU lgpl2.1
+    ;; For static linking, clause 6 of LGPL is lifted
+    ;; All other files under GNU gpl3
+    (license (list license:gpl3+
+                   license:lgpl2.1+))))
 
 (define-public ocaml-ocurl
   (package
@@ -2233,7 +2529,7 @@ multitude of other network protocols (FTP/SMTP/RTSP/etc).")
 (define-public ocaml-base64
   (package
     (name "ocaml-base64")
-    (version "3.2.0")
+    (version "3.4.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -2242,8 +2538,19 @@ multitude of other network protocols (FTP/SMTP/RTSP/etc).")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                 "1ilw3zj0w6cq7i4pvr8m2kv5l5f2y9aldmv72drlwwns013b1gwy"))))
+                "0aa1m1sr8p1hgc10p96mij7p22r3qcysvzy6fz2jqamfgswchgqc"))))
     (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)
@@ -2258,25 +2565,38 @@ radix-64 representation.  It is specified in RFC 4648.")
 (define-public ocamlify
   (package
     (name "ocamlify")
-    (version "0.0.1")
-    (source (origin
-              (method url-fetch)
-              (uri "https://download.ocamlcore.org/ocamlify/ocamlify/0.0.1/ocamlify-0.0.1.tar.gz")
-              (sha256
-               (base32
-                "1j9nb3vjqbdsx3d6jazixgrh776051zkrc06nsc5q5ilp1jhrwkm"))))
+    (version "0.0.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://download.ocamlcore.org/ocamlify/ocamlify/"
+                           version "/ocamlify-" version ".tar.gz"))
+       (sha256
+        (base32 "1f0fghvlbfryf5h3j4as7vcqrgfjb4c8abl5y0y5h069vs4kp5ii"))))
     (build-system ocaml-build-system)
-    ; tests are done during build
     (arguments
-     `(#:phases
+     `(#:tests? #f; no tests
+       #:phases
        (modify-phases %standard-phases
-         (delete 'check)
-         (replace 'configure
+         (delete 'configure)
+         (replace 'build
+           ;; This package uses pre-generated setup.ml by oasis, but is
+           ;; a dependency of oasis.  the pre-generated setup.ml is broken
+           ;; with recent versions of OCaml, so we perform a bootstrap instead.
+           (lambda _
+             (substitute* "src/OCamlifyConfig.ml.ab"
+               (("$pkg_version") ,version))
+             (rename-file "src/OCamlifyConfig.ml.ab" "src/OCamlifyConfig.ml")
+             (with-directory-excursion "src"
+               (invoke "ocamlc" "OCamlifyConfig.ml" "ocamlify.ml" "-o"
+                       "ocamlify"))
+             #t))
+         (replace 'install
            (lambda* (#:key outputs #:allow-other-keys)
-             (invoke "ocaml" "setup.ml" "-configure" "--prefix"
-                     (assoc-ref outputs "out")))))))
-    (native-inputs
-     `(("ocamlbuild" ,ocamlbuild)))
+             (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
+               (mkdir-p bin)
+               (install-file "src/ocamlify" bin)
+               #t))))))
     (home-page "https://forge.ocamlcore.org/projects/ocamlify")
     (synopsis "Include files in OCaml code")
     (description "OCamlify creates OCaml source code by including
@@ -2403,7 +2723,7 @@ hierarchy of modules.")
        #:findlib ,ocaml4.07-findlib
        #:dune ,ocaml4.07-dune))
     (native-inputs
-     `(("ocaml-base" ,ocaml4.07-base)
+     `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base))
        ("pcre:bin" ,pcre "bin")))
     (propagated-inputs `(("pcre" ,pcre)))
     (home-page "https://mmottl.github.io/pcre-ocaml")
@@ -2526,29 +2846,6 @@ system in your OCaml projects.  It helps to create standard entry points in your
 build system and allows external tools to analyse your project easily.")
     (license license:lgpl2.1+))) ; with ocaml static compilation exception
 
-(define-public ocaml-js-build-tools
-  (package
-    (name "ocaml-js-build-tools")
-    (version "113.33.06")
-    (source (janestreet-origin "js-build-tools" version
-              "0r8z4fz8iy5y6hkdlkpwf6rk4qigcr3dzyv35585xgg2ahf12zy6"))
-    (native-inputs
-     `(("oasis" ,ocaml-oasis)
-       ("ocamlbuild" ,ocamlbuild)
-       ("opam" ,opam)))
-    (build-system ocaml-build-system)
-    (arguments janestreet-arguments)
-    (home-page "https://github.com/janestreet/js-build-tools")
-    (synopsis "Collection of tools to help building Jane Street Packages")
-    (description "This package contains tools to help building Jane Street
-packages, but can be used for other purposes.  It contains:
-@enumerate
-@item an @command{oasis2opam-install} tool to produce a @file{.install} file
-from the oasis build log
-@item a @code{js_build_tools} ocamlbuild plugin with various goodies.
-@end enumerate")
-    (license license:asl2.0)))
-
 (define-public ocaml-cppo
   (package
     (name "ocaml-cppo")
@@ -2571,9 +2868,9 @@ from the oasis build log
     (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
-programs.  It allows the definition of simple macros and file inclusion.  Cpp ois:
+programs.  It allows the definition of simple macros and file inclusion.  Cppo is:
 @enumerate
-@item more OCaml-friendly than cpp
+@item more OCaml-friendly than @command{cpp}
 @item easy to learn without consulting a manual
 @item reasonably fast
 @item simple to install and to maintain.
@@ -2745,13 +3042,14 @@ writing to these structures, and they are accessed via the Bigarray module.")
      `(#:package "ezjsonm"
        #:test-target "."
        #:ocaml ,ocaml-4.07
-       #:findlib ,ocaml4.07-findlib))
+       #:findlib ,ocaml4.07-findlib
+       #:dune ,ocaml4.07-dune))
     (native-inputs
      `(("ocaml-alcotest" ,(package-with-ocaml4.07 ocaml-alcotest))))
     (propagated-inputs
      `(("ocaml-hex" ,(package-with-ocaml4.07 ocaml-hex))
        ("ocaml-jsonm" ,(package-with-ocaml4.07 ocaml-jsonm))
-       ("ocaml-sexplib" ,ocaml4.07-sexplib)))
+       ("ocaml-sexplib" ,(package-with-ocaml4.07 ocaml-sexplib))))
     (home-page "https://github.com/mirage/ezjsonm/")
     (synopsis "Read and write JSON data")
     (description "Ezjsonm provides more convenient (but far less flexible) input
@@ -2783,13 +3081,14 @@ JSON.")
              (substitute* "lib/uri.ml"
                (("Re.get") "Re.Group.get")))))
        #:ocaml ,ocaml-4.07
-       #:findlib ,ocaml4.07-findlib))
+       #:findlib ,ocaml4.07-findlib
+       #:dune ,ocaml4.07-dune))
     (native-inputs
      `(("ocaml-ounit" ,(package-with-ocaml4.07 ocaml-ounit))
        ("ocaml-ppx-sexp-conv" ,ocaml4.07-ppx-sexp-conv)))
     (propagated-inputs
      `(("ocaml-re" ,(package-with-ocaml4.07 ocaml-re))
-       ("ocaml-sexplib0" ,ocaml4.07-sexplib0)
+       ("ocaml-sexplib0" ,(package-with-ocaml4.07 ocaml-sexplib0))
        ("ocaml-stringext" ,(package-with-ocaml4.07 ocaml-stringext))))
     (home-page "https://github.com/mirage/ocaml-uri")
     (synopsis "RFC3986 URI/URL parsing library")
@@ -2811,7 +3110,7 @@ JSON.")
                 "1fc95q2ypck6m6rv3kiawwilh5ac93v2hcp823mj608d5kj79xkb"))))
     (build-system dune-build-system)
     (arguments
-     `(#:jbuild? #t
+     `(#:package "easy-format"
        #:phases
        (modify-phases %standard-phases
          (add-before 'build 'make-writable
@@ -3111,7 +3410,8 @@ library is currently designed for Unicode Standard 3.2.")
     (build-system dune-build-system)
     (arguments
      `(#:ocaml ,ocaml-4.07
-       #:findlib ,ocaml4.07-findlib))
+       #: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))))
@@ -3140,10 +3440,10 @@ function that follows the prototype of POSIX's wcwidth.")
         (base32 "0pa9awinqr0plp4b2az78dwpvh01pwaljnn5ydg8mc6hi7rmir55"))))
     (build-system dune-build-system)
     (arguments
-     `(#:jbuild? #t
-       #:test-target "."
+     `(#:test-target "."
        #:ocaml ,ocaml-4.07
-       #:findlib ,ocaml4.07-findlib))
+       #:findlib ,ocaml4.07-findlib
+       #:dune ,ocaml4.07-dune))
     (propagated-inputs
      `(("ocaml-camomile" ,(package-with-ocaml4.07 ocaml-camomile))
        ("ocaml-charinfo-width" ,ocaml4.07-charinfo-width)
@@ -3173,7 +3473,8 @@ connect an engine to your inputs and rendering functions to get an editor.")
      `(#:build-flags (list "--profile" "release")
        #:tests? #f
        #:ocaml ,ocaml-4.07
-       #:findlib ,ocaml4.07-findlib))
+       #:findlib ,ocaml4.07-findlib
+       #:dune ,ocaml4.07-dune))
     (propagated-inputs
      `(("ocaml-lwt" ,(package-with-ocaml4.07 ocaml-lwt))
        ("ocaml-lwt-log" ,(package-with-ocaml4.07 ocaml-lwt-log))
@@ -3206,10 +3507,10 @@ instead of bindings to a C library.")
         (base32 "1bl4943qpi3qy152dbdm5glhx19zsiylmn4rcxi8l66g58hikyjp"))))
     (build-system dune-build-system)
     (arguments
-     `(#:jbuild? #t
-       #:test-target "."
+     `(#:test-target "."
        #:ocaml ,ocaml-4.07
-       #:findlib ,ocaml4.07-findlib))
+       #:findlib ,ocaml4.07-findlib
+       #:dune ,ocaml4.07-dune))
     (native-inputs
      `(("cppo" ,(package-with-ocaml4.07 ocaml-cppo))))
     (propagated-inputs
@@ -3511,13 +3812,14 @@ syntax checking on dedukti files.")
      ;see home page README for further information
      `(#:tests? #f
        #:ocaml ,ocaml-4.07
-       #:findlib ,ocaml4.07-findlib))
+       #:findlib ,ocaml4.07-findlib
+       #:dune ,ocaml4.07-dune))
     (inputs
-     `(("ocaml-base" ,ocaml4.07-base)
+     `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base))
        ("ocaml-migrate-parsetree"
         ,(package-with-ocaml4.07 ocaml-migrate-parsetree))
-       ("ocaml-compiler-libs" ,(package-with-ocaml4.07 ocaml-compiler-libs))
-       ("ocaml-sexplib0" ,ocaml4.07-sexplib0)
+       ("ocaml-compiler-libs" ,ocaml4.07-compiler-libs)
+       ("ocaml-sexplib0" ,(package-with-ocaml4.07 ocaml-sexplib0))
        ("ocaml-stdio" ,ocaml4.07-stdio)
        ("ocaml-ppxlib" ,ocaml4.07-ppxlib)))
     (properties `((upstream-name . "ppx_inline_test")))
@@ -3584,7 +3886,8 @@ or quantified formulas.")
     (arguments
      `(#:test-target "."
        #:ocaml ,ocaml-4.07
-       #:findlib ,ocaml4.07-findlib))
+       #:findlib ,ocaml4.07-findlib
+       #:dune ,ocaml4.07-dune))
     (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
@@ -3690,7 +3993,7 @@ than yojson), with 25-35% space savings.")
     (build-system dune-build-system)
     (arguments
      `(#:test-target "."))
-    (inputs
+    (propagated-inputs
      `(("ocaml-biniou" ,ocaml-biniou)
        ("ocaml-easy-format" ,ocaml-easy-format)))
     (native-inputs
@@ -3721,6 +4024,13 @@ serializers and deserializers from type definitions.")
         (base32
          "197xjp4vmzdymf2ndinw271ihpf45h04mx8gqj8ypspxdr5fj1a5"))))
     (build-system dune-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-before 'build 'upgrade
+           (lambda _
+             (invoke "dune" "upgrade")
+             #t)))))
     (inputs
      `(("ocaml-fmt" ,ocaml-fmt)
        ("ocaml-astring" ,ocaml-astring)
@@ -3734,11 +4044,37 @@ Mercurial's @code{https://www.selenic.com/blog/?p=663, unified test
 format}.  @code{craml} is released as a single binary (called @code{craml}).")
     (license license:isc)))
 
-(define-public ocaml4.07-merlin
+(define-public ocaml-dot-merlin-reader
   (package
-    (name "ocaml4.07-merlin")
-    (version "3.2.2")
+    (name "ocaml-dot-merlin-reader")
+    (version "3.4.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
+         "0i2nwkdh6cfzmnsdsr8aw86vs8j1k5jkjzrs61b9384wnffdbbmj"))))
+    (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)))
     (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
+@code{ocaml-merlin} configurations.")
+    (license license:expat)))
+
+(define-public ocaml-merlin
+  (package
+    (name "ocaml-merlin")
+    (version "3.4.2")
     (source
      (origin
        (method git-fetch)
@@ -3748,19 +4084,19 @@ format}.  @code{craml} is released as a single binary (called @code{craml}).")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "15ssgmwdxylbwhld9p1cq8x6kadxyhll5bfyf11dddj6cldna3hb"))))
+         "0i2nwkdh6cfzmnsdsr8aw86vs8j1k5jkjzrs61b9384wnffdbbmj"))))
     (build-system dune-build-system)
+    (arguments '(#:package "merlin"
+                 #:test-target "tests"))
     (inputs
-     `(("ocaml-biniou" ,(package-with-ocaml4.07 ocaml-biniou))
-       ("ocaml-yojson" ,(package-with-ocaml4.07 ocaml-yojson))
-       ("ocaml-easy-format" ,(package-with-ocaml4.07 ocaml-easy-format))))
+     `(("ocaml-yojson" ,ocaml-yojson)
+       ("ocaml-csexp" ,ocaml-csexp)
+       ("ocaml-result" ,ocaml-result)))
     (native-inputs
-     `(("ocaml-findlib" ,ocaml-findlib)))
-    (arguments
-     `(#:jbuild? #t
-       #:tests? #f ;; Errors in tests in version 3.2.2
-       #:ocaml ,ocaml-4.07
-       #:findlib ,ocaml4.07-findlib))
+     `(("ocaml-dot-merlin-reader" ,ocaml-dot-merlin-reader) ; required for tests
+       ("ocaml-mdx" ,ocaml-mdx)
+       ("jq" ,jq)))
+    (home-page "https://ocaml.github.io/merlin/")
     (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.
@@ -3768,6 +4104,34 @@ 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
   (package
     (name "ocaml4.07-gsl")
@@ -3798,7 +4162,7 @@ Atom.")
     (inputs
      `(("gsl" ,gsl)))
     (propagated-inputs
-     `(("ocaml-base" ,ocaml4.07-base)
+     `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base))
        ("ocaml-stdio" ,ocaml4.07-stdio)))
     (home-page "https://mmottl.github.io/gsl-ocaml")
     (synopsis "Bindings to the GNU Scientific Library")
@@ -3887,54 +4251,49 @@ an arbitrary number of processes.  Cache coherence protocols and mutual
 exclusion algorithms are typical examples of such systems.")
     (license license:asl2.0)))
 
-(define-public ocaml4.07-sexplib0
+(define-public ocaml-sexplib0
   (package
-    (name "ocaml4.07-sexplib0")
-    (version "0.11.0")
+    (name "ocaml-sexplib0")
+    (version "0.14.0")
     (home-page "https://github.com/janestreet/sexplib0")
     (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
-         "07v3ggyss7xhfv14bjk1n87sr42iqwj4cgjiv2lcdfkqk49i2bmi"))))
+     (janestreet-origin "sexplib0" version
+                        "0adrc0r1vvvr41dcpj8jwkzh1dfgqf0mks9xlnnskqfm3a51iavg"))
     (build-system dune-build-system)
-    (arguments
-     `(#:tests? #f ;no tests
-       #:ocaml ,ocaml-4.07
-       #:findlib ,ocaml4.07-findlib))
+    (arguments `(#:tests? #f)) ;no tests
+    (properties `((ocaml4.07-variant . ,(delay ocaml4.07-sexplib0))))
     (synopsis "Library containing the definition of S-expressions and some
 base converters")
     (description "Part of Jane Street's Core library The Core suite of
 libraries is an industrial strength alternative to OCaml's standard library
 that was developed by Jane Street, the largest industrial user of OCaml.")
-(license license:expat)))
+    (license license:expat)))
 
-(define-public ocaml4.07-parsexp
-  (package
-    (name "ocaml4.07-parsexp")
-    (version "0.11.0")
+(define-public ocaml4.07-sexplib0
+  (package-with-ocaml4.07
+   (package
+     (inherit ocaml-sexplib0)
+     (name "ocaml-sexplib0")
+     (version "0.11.0")
+     (source
+      (janestreet-origin "sexplib0" version
+                         "1p06p2s7p9xsjn0z9qicniv1ai54d8sj11k8j633di2mm7jzxpin"))
+     (arguments `(#:tests? #f))         ; no tests
+     (properties '()))))
+
+(define-public ocaml-parsexp
+  (package
+    (name "ocaml-parsexp")
+    (version "0.14.0")
     (home-page "https://github.com/janestreet/parsexp")
     (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
-         "1nyq23s5igd8cf3n4qxprjvhbmb6ighb3fy5mw7hxl0mdgsw5fvz"))))
+     (janestreet-origin "parsexp" version
+                        "158znj19dvfdcwsgzs3rdhxpj1g4aw0d4nkfr8c05bahf0lnshlb"))
     (build-system dune-build-system)
-    (arguments
-     `(#:ocaml ,ocaml-4.07
-       #:findlib ,ocaml4.07-findlib))
     (inputs
-     `(("ocaml-sexplib0" ,ocaml4.07-sexplib0)))
+     `(("ocaml-sexplib0" ,ocaml-sexplib0)
+       ("ocaml-base" ,ocaml-base)))
+    (properties `((ocaml4.07-variant . ,(delay ocaml4.07-parsexp))))
     (synopsis "S-expression parsing library")
     (description
      "This library provides generic parsers for parsing S-expressions from
@@ -3963,67 +4322,65 @@ s-expressions from files or other external sources, you should use
 parsexp_io.")
     (license license:expat)))
 
-(define-public ocaml4.07-sexplib
-  (package
-    (name "ocaml4.07-sexplib")
-    (version "0.11.0")
+(define-public ocaml4.07-parsexp
+  (package-with-ocaml4.07
+   (package
+     (inherit ocaml-parsexp)
+     (name "ocaml-parsexp")
+     (version "0.11.0")
+     (source
+      (janestreet-origin "parsexp" version
+                         "11a30zkfgbi6pb4whq22k1zc8ghdp9bwxl5s5cdlmx1z8s4yxsf0"))
+     (properties '()))))
+
+(define-public ocaml-sexplib
+  (package
+    (name "ocaml-sexplib")
+    (version "0.14.0")
     (home-page "https://github.com/janestreet/sexplib")
     (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
-         "1qfl0m04rpcjvc4yw1hzh6r16jpwmap0sa9ax6zjji67dz4szpyb"))))
+     (janestreet-origin "sexplib" version
+                        "12rlnc6fcrjfdn3gs2agi418sj54ighhs6dfll37zcv7mgywblm2"))
     (build-system dune-build-system)
-    (arguments
-     `(#:ocaml ,ocaml-4.07
-       #:findlib ,ocaml4.07-findlib))
     (propagated-inputs
-     `(("ocaml-num" ,(package-with-ocaml4.07 ocaml-num))
-       ("ocaml-parsexp" ,ocaml4.07-parsexp)
-       ("ocaml-sexplib0" ,ocaml4.07-sexplib0)))
+     `(("ocaml-base" ,ocaml-base)
+       ("ocaml-num" ,ocaml-num)
+       ("ocaml-parsexp" ,ocaml-parsexp)
+       ("ocaml-sexplib0" ,ocaml-sexplib0)))
+    (properties `((ocaml4.07-variant . ,(delay ocaml4.07-sexplib))))
     (synopsis
      "Library for serializing OCaml values to and from S-expressions")
     (description
-     "This package is part of Jane Street's Core library. Sexplib contains
+     "This package is part of Jane Street's Core library.  Sexplib contains
 functionality for parsing and pretty-printing s-expressions.")
     (license license:expat)))
 
-(define-public ocaml4.07-base
-  (package
-    (name "ocaml4.07-base")
-    (version "0.11.1")
+(define-public ocaml4.07-sexplib
+  (package-with-ocaml4.07
+   (package
+     (inherit ocaml-sexplib)
+     (version "0.11.0")
+     (source
+      (janestreet-origin "sexplib" version
+                         "0ksx62zsxhz8xmdrsn41n2hbc2qbyh3bxxc6946xisvgwh42h3q3"))
+     (properties '()))))
+
+(define-public ocaml-base
+  (package
+    (name "ocaml-base")
+    (version "0.14.0")
     (home-page "https://github.com/janestreet/base")
     (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
-         "0j6xb4265jr41vw4fjzak6yr8s30qrnzapnc6rl1dxy8bjai0nir"))))
+     (janestreet-origin "base" version
+         "1rkdhsgbcv0a8p29mwvpd2ldz8cjk97pixl43izm54wyin4lp778"))
     (build-system dune-build-system)
     (propagated-inputs
-     `(("ocaml-sexplib0" ,ocaml4.07-sexplib0)))
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (replace 'build
-           ;; make warnings non fatal (jbuilder behaviour)
-           (lambda _
-             (invoke "dune" "build" "@install" "--profile=release"))))
-       #:ocaml ,ocaml-4.07
-       #:findlib ,ocaml4.07-findlib))
-  (synopsis
-    "Full standard library replacement for OCaml")
-  (description
-    "Base is a complete and portable alternative to the OCaml standard
+     `(("ocaml-sexplib0" ,ocaml-sexplib0)))
+    (properties `((ocaml4.07-variant . ,(delay ocaml4.07-base))))
+    (synopsis
+     "Full standard library replacement for OCaml")
+    (description
+     "Base is a complete and portable alternative to the OCaml standard
 library.  It provides all standard functionalities one would expect
 from a language standard library.  It uses consistent conventions
 across all of its module.
@@ -4032,11 +4389,40 @@ Base aims to be usable in any context.  As a result system dependent
 features such as I/O are not offered by Base.  They are instead
 provided by companion libraries such as
 @url{https://github.com/janestreet/stdio, ocaml-stdio}.")
-  (license license:expat)))
+    (license license:expat)))
 
-(define-public ocaml-compiler-libs
-  (package
-    (name "ocaml-compiler-libs")
+(define-public ocaml4.07-base
+  (package-with-ocaml4.07
+   (package
+     (inherit ocaml-base)
+     (name "ocaml-base")
+     (version "0.11.1")
+     (source
+      (origin
+        ;; version 0.11.1 is not released on ocaml.janestreet.org.
+        (method git-fetch)
+        (uri (git-reference
+              (url "https://github.com/janestreet/base.git")
+              (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32
+          "0j6xb4265jr41vw4fjzak6yr8s30qrnzapnc6rl1dxy8bjai0nir"))))
+     (arguments
+      `(#:phases
+        (modify-phases %standard-phases
+          (replace 'build
+            ;; make warnings non fatal (jbuilder behaviour)
+            (lambda _
+              (invoke "dune" "build" "@install" "--profile=release"))))
+        #:ocaml ,ocaml-4.07
+        #:findlib ,ocaml4.07-findlib
+        #:dune ,ocaml4.07-dune))
+     (properties '()))))
+
+(define-public ocaml4.07-compiler-libs
+  (package
+    (name "ocaml4.07-compiler-libs")
     (version "0.11.0")
     (home-page "https://github.com/janestreet/ocaml-compiler-libs")
     (source
@@ -4051,7 +4437,10 @@ provided by companion libraries such as
          "03jds7bszh8wwpfwxb3dg0gyr1j1872wxwx1xqhry5ir0i84bg0s"))))
     (build-system dune-build-system)
     (arguments
-     '(#:tests? #f)) ;no tests
+     `(#:tests? #f ;no tests
+       #:ocaml ,ocaml-4.07
+       #:findlib ,ocaml4.07-findlib
+       #:dune ,ocaml4.07-dune))
     (properties `((upstream-name . "ocaml-compiler-libs")))
     (synopsis "Compiler libraries repackaged")
     (description "This package simply repackages the OCaml compiler libraries
@@ -4076,12 +4465,13 @@ is now @code{Ocaml_common.Ast_helper}.")
          "1facajqhvq34g2wrg368y0ajxd6lrj5b3lyzyj0jhdmraxajjcwn"))))
     (build-system dune-build-system)
     (propagated-inputs
-     `(("ocaml-base" ,ocaml4.07-base)
-       ("ocaml-sexplib0" ,ocaml4.07-sexplib0)))
+     `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base))
+       ("ocaml-sexplib0" ,(package-with-ocaml4.07 ocaml-sexplib0))))
     (arguments
      `(#:tests? #f ;no tests
        #:ocaml ,ocaml-4.07
-       #:findlib ,ocaml4.07-findlib))
+       #:findlib ,ocaml4.07-findlib
+       #:dune ,ocaml4.07-dune))
     (synopsis "Standard IO library for OCaml")
     (description
      "Stdio implements simple input/output functionalities for OCaml.  It
@@ -4133,14 +4523,14 @@ as part of the same ocaml-migrate-parsetree driver.")
          "0my9x7sxb329h0lzshppdaawiyfbaw6g5f41yiy7bhl071rnlvbv"))))
     (build-system dune-build-system)
     (propagated-inputs
-     `(("ocaml-base" ,ocaml4.07-base)
-       ("ocaml-compiler-libs" ,(package-with-ocaml4.07 ocaml-compiler-libs))
+     `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base))
+       ("ocaml-compiler-libs" ,ocaml4.07-compiler-libs)
        ("ocaml-migrate-parsetree"
         ,(package-with-ocaml4.07 ocaml-migrate-parsetree))
        ("ocaml-ppx-derivers" ,(package-with-ocaml4.07 ocaml-ppx-derivers))
        ("ocaml-stdio" ,ocaml4.07-stdio)
        ("ocaml-result" ,(package-with-ocaml4.07 ocaml-result))
-       ("ocaml-sexplib0" ,ocaml4.07-sexplib0)))
+       ("ocaml-sexplib0" ,(package-with-ocaml4.07 ocaml-sexplib0))))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -4162,7 +4552,8 @@ as part of the same ocaml-migrate-parsetree driver.")
                                  all))))
              #t)))
        #:ocaml ,ocaml-4.07
-       #:findlib ,ocaml4.07-findlib))
+       #:findlib ,ocaml4.07-findlib
+       #:dune ,ocaml4.07-dune))
     (synopsis
      "Base library and tools for ppx rewriters")
     (description
@@ -4195,13 +4586,14 @@ OCaml AST in the OCaml syntax;
                 "06bq4m1bsm4jlx4g7wh5m99qky7xm4c2g52kaz6pv25hdn5agi2m"))))
     (build-system dune-build-system)
     (propagated-inputs
-      `(("ocaml-base" ,ocaml4.07-base)
+      `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base))
         ("ocaml-migrate-parsetree"
          ,(package-with-ocaml4.07 ocaml-migrate-parsetree))
         ("ocaml-ppxlib" ,ocaml4.07-ppxlib)))
     (arguments
      `(#:ocaml ,ocaml-4.07
-       #:findlib ,ocaml4.07-findlib))
+       #:findlib ,ocaml4.07-findlib
+       #:dune ,ocaml4.07-dune))
     (properties `((upstream-name . "ppx_compare")))
     (home-page "https://github.com/janestreet/ppx_compare")
     (synopsis "Generation of comparison functions from types")
@@ -4230,9 +4622,10 @@ by making sure that you only compare comparable values.")
      ;; No tests
      `(#:tests? #f
        #:ocaml ,ocaml-4.07
-       #:findlib ,ocaml4.07-findlib))
+       #:findlib ,ocaml4.07-findlib
+       #:dune ,ocaml4.07-dune))
     (propagated-inputs
-      `(("ocaml-base" ,ocaml4.07-base)
+      `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base))
         ("ocaml-migrate-parsetree"
          ,(package-with-ocaml4.07 ocaml-migrate-parsetree))
         ("ocaml-ppxlib" ,ocaml4.07-ppxlib)))
@@ -4261,9 +4654,10 @@ of a record and create new record values.")
      ;; No tests
      `(#:tests? #f
        #:ocaml ,ocaml-4.07
-       #:findlib ,ocaml4.07-findlib))
+       #:findlib ,ocaml4.07-findlib
+       #:dune ,ocaml4.07-dune))
     (propagated-inputs
-      `(("ocaml-base" ,ocaml4.07-base)
+      `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base))
         ("ocaml-migrate-parsetree"
          ,(package-with-ocaml4.07 ocaml-migrate-parsetree))
         ("ocaml-ppxlib" ,ocaml4.07-ppxlib)))
@@ -4288,14 +4682,15 @@ standard library.")
                 "07zrd3qky2ppbfl55gpm90rvqa5860xgwcsvihrjmkrw6d0jirkc"))))
     (build-system dune-build-system)
     (propagated-inputs
-      `(("ocaml-base" ,ocaml4.07-base)
+      `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base))
         ("ocaml-fieldslib" ,ocaml4.07-fieldslib)
         ("ocaml-migrate-parsetree"
          ,(package-with-ocaml4.07 ocaml-migrate-parsetree))
         ("ocaml-ppxlib" ,ocaml4.07-ppxlib)))
     (arguments
      `(#:ocaml ,ocaml-4.07
-       #:findlib ,ocaml4.07-findlib))
+       #:findlib ,ocaml4.07-findlib
+       #:dune ,ocaml4.07-dune))
     (properties `((upstream-name . "ppx_fields_conv")))
     (home-page "https://github.com/janestreet/ppx_fields_conv")
     (synopsis "Generation of accessor and iteration functions for ocaml records")
@@ -4320,13 +4715,14 @@ new record values.")
                 "0pqwnqy1xp309wvdcaax4lg02yk64lq2w03mbgfvf6ps5ry4gis9"))))
     (build-system dune-build-system)
     (propagated-inputs
-      `(("ocaml-base" ,ocaml4.07-base)
+      `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base))
         ("ocaml-migrate-parsetree"
          ,(package-with-ocaml4.07 ocaml-migrate-parsetree))
         ("ocaml-ppxlib" ,ocaml4.07-ppxlib)))
     (arguments
      `(#:ocaml ,ocaml-4.07
-       #:findlib ,ocaml4.07-findlib))
+       #:findlib ,ocaml4.07-findlib
+       #:dune ,ocaml4.07-dune))
     (properties `((upstream-name . "ppx_sexp_conv")))
     (home-page "https://github.com/janestreet/ppx_sexp_conv")
     (synopsis "Generation of S-expression conversion functions from type definitions")
@@ -4349,21 +4745,22 @@ definitions.")
                 "1yc0gsds5m2nv39zga8nnrca2n75rkqy5dz4xj1635ybz20hhbjd"))))
     (build-system dune-build-system)
     (propagated-inputs
-      `(("ocaml-base" ,ocaml4.07-base)
+      `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base))
         ("ocaml-variantslib" ,ocaml4.07-variantslib)
         ("ocaml-migrate-parsetree"
          ,(package-with-ocaml4.07 ocaml-migrate-parsetree))
         ("ocaml-ppxlib" ,ocaml4.07-ppxlib)))
     (arguments
      `(#:ocaml ,ocaml-4.07
-       #:findlib ,ocaml4.07-findlib))
+       #:findlib ,ocaml4.07-findlib
+       #:dune ,ocaml4.07-dune))
     (properties
       `((upstream-name . "ppx_variants_conv")))
     (home-page
       "https://github.com/janestreet/ppx_variants_conv")
     (synopsis "Generation of accessor and iteration functions for OCaml variant types")
     (description
-      "This package generates accessors and interation functions for OCaml
+      "This package generates accessors and iteration functions for OCaml
 variant types.")
     (license license:asl2.0)))
 
@@ -4381,14 +4778,15 @@ variant types.")
                 "11b73smf3g3bpd9lg014pr4rx285nk9mnk6g6464ph51jv0sqzhj"))))
     (build-system dune-build-system)
     (propagated-inputs
-      `(("ocaml-base" ,ocaml4.07-base)
+      `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base))
         ("ocaml-ppx-sexp-conv" ,ocaml4.07-ppx-sexp-conv)
         ("ocaml-migrate-parsetree"
          ,(package-with-ocaml4.07 ocaml-migrate-parsetree))
         ("ocaml-ppxlib" ,ocaml4.07-ppxlib)))
     (arguments
      `(#:ocaml ,ocaml-4.07
-       #:findlib ,ocaml4.07-findlib))
+       #:findlib ,ocaml4.07-findlib
+       #:dune ,ocaml4.07-dune))
     (properties `((upstream-name . "ppx_custom_printf")))
     (home-page "https://github.com/janestreet/ppx_custom_printf")
     (synopsis "Printf-style format-strings for user-defined string conversion")
@@ -4410,7 +4808,7 @@ string conversion.")
                 "1rsd91gx36prj4whi76nsiz1bzpgal9nzyw3pxdz1alv4ilk2il6"))))
     (build-system dune-build-system)
     (inputs
-      `(("ocaml-base" ,ocaml4.07-base)
+      `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base))
         ("ocaml-ppx-compare" ,ocaml4.07-ppx-compare)
         ("ocaml-ppx-custom-printf" ,ocaml4.07-ppx-custom-printf)
         ("ocaml-ppx-fields-conv" ,ocaml4.07-ppx-fields-conv)
@@ -4420,7 +4818,8 @@ string conversion.")
          ,(package-with-ocaml4.07 ocaml-migrate-parsetree))))
     (arguments
      `(#:ocaml ,ocaml-4.07
-       #:findlib ,ocaml4.07-findlib))
+       #:findlib ,ocaml4.07-findlib
+       #:dune ,ocaml4.07-dune))
     (properties `((upstream-name . "bin_prot")))
     (home-page "https://github.com/janestreet/bin_prot")
     (synopsis "Binary protocol generator")
@@ -4478,7 +4877,7 @@ storage of large amounts of data.")
                 "1p0ic6aijxlrdggpmycj12q3cy9xksbq2vq727215maz4snvlf5p"))))
     (build-system dune-build-system)
     (propagated-inputs
-      `(("ocaml-base" ,ocaml4.07-base)
+      `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base))
         ("ocaml-ppx-compare" ,ocaml4.07-ppx-compare)
         ("ocaml-ppx-sexp-conv" ,ocaml4.07-ppx-sexp-conv)
         ("ocaml-migrate-parsetree"
@@ -4486,7 +4885,8 @@ storage of large amounts of data.")
         ("ocaml-ppxlib" ,ocaml4.07-ppxlib)))
     (arguments
      `(#:ocaml ,ocaml-4.07
-       #:findlib ,ocaml4.07-findlib))
+       #:findlib ,ocaml4.07-findlib
+       #:dune ,ocaml4.07-dune))
     (properties `((upstream-name . "ppx_hash")))
     (home-page "https://github.com/janestreet/ppx_hash")
     (synopsis "Generation of hash functions from type expressions and definitions")
@@ -4511,9 +4911,10 @@ hash functions from type exrpessions and definitions.")
     (arguments
      `(#:tests? #f; no test suite
        #:ocaml ,ocaml-4.07
-       #:findlib ,ocaml4.07-findlib))
+       #:findlib ,ocaml4.07-findlib
+       #:dune ,ocaml4.07-dune))
     (propagated-inputs
-      `(("ocaml-base" ,ocaml4.07-base)
+      `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base))
         ("ocaml-migrate-parsetree"
          ,(package-with-ocaml4.07 ocaml-migrate-parsetree))
         ("ocaml-ppxlib" ,ocaml4.07-ppxlib)))
@@ -4542,7 +4943,8 @@ many values).")
      ;; No tests
      `(#:tests? #f
        #:ocaml ,ocaml-4.07
-       #:findlib ,ocaml4.07-findlib))
+       #:findlib ,ocaml4.07-findlib
+       #:dune ,ocaml4.07-dune))
     (propagated-inputs
       `(("ocaml-ppx-inline-test" ,ocaml4.07-ppx-inline-test)
         ("ocaml-migrate-parsetree"
@@ -4571,9 +4973,10 @@ many values).")
      ;; broken tests
      `(#:tests? #f
        #:ocaml ,ocaml-4.07
-       #:findlib ,ocaml4.07-findlib))
+       #:findlib ,ocaml4.07-findlib
+       #:dune ,ocaml4.07-dune))
     (propagated-inputs
-      `(("ocaml-base" ,ocaml4.07-base)
+      `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base))
         ("ocaml-migrate-parsetree"
          ,(package-with-ocaml4.07 ocaml-migrate-parsetree))
         ("ocaml-ppxlib" ,ocaml4.07-ppxlib)))
@@ -4600,8 +5003,9 @@ many values).")
     (arguments
      `(#:tests? #f
        #:ocaml ,ocaml-4.07
-       #:findlib ,ocaml4.07-findlib))
-    (propagated-inputs `(("ocaml-base" ,ocaml4.07-base)))
+       #:findlib ,ocaml4.07-findlib
+       #:dune ,ocaml4.07-dune))
+    (propagated-inputs `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base))))
     (home-page "https://github.com/janestreet/typerep")
     (synopsis "Typerep is a library for runtime types")
     (description "Typerep is a library for runtime types.")
@@ -4622,9 +5026,10 @@ many values).")
     (build-system dune-build-system)
     (arguments
      `(#:ocaml ,ocaml-4.07
-       #:findlib ,ocaml4.07-findlib))
+       #:findlib ,ocaml4.07-findlib
+       #:dune ,ocaml4.07-dune))
     (propagated-inputs
-      `(("ocaml-base" ,ocaml4.07-base)
+      `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base))
         ("ocaml-ppx-here" ,ocaml4.07-ppx-here)
         ("ocaml-ppx-sexp-conv" ,ocaml4.07-ppx-sexp-conv)
         ("ocaml-migrate-parsetree"
@@ -4652,9 +5057,10 @@ ocaml values.")
     (build-system dune-build-system)
     (arguments
      `(#:ocaml ,ocaml-4.07
-       #:findlib ,ocaml4.07-findlib))
+       #:findlib ,ocaml4.07-findlib
+       #:dune ,ocaml4.07-dune))
     (propagated-inputs
-      `(("ocaml-base" ,ocaml4.07-base)
+      `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base))
         ("ocaml-ppx-here" ,ocaml4.07-ppx-here)
         ("ocaml-ppx-sexp-conv" ,ocaml4.07-ppx-sexp-conv)
         ("ocaml-migrate-parsetree"
@@ -4686,7 +5092,8 @@ context such as function arguments.")
      ;; No tests
      `(#:tests? #f
        #:ocaml ,ocaml-4.07
-       #:findlib ,ocaml4.07-findlib))
+       #:findlib ,ocaml4.07-findlib
+       #:dune ,ocaml4.07-dune))
     (propagated-inputs
       `(("ocaml-migrate-parsetree"
          ,(package-with-ocaml4.07 ocaml-migrate-parsetree))
@@ -4715,9 +5122,10 @@ context such as function arguments.")
      ;; No tests
      `(#:tests? #f
        #:ocaml ,ocaml-4.07
-       #:findlib ,ocaml4.07-findlib))
+       #:findlib ,ocaml4.07-findlib
+       #:dune ,ocaml4.07-dune))
     (propagated-inputs
-      `(("ocaml-base" ,ocaml4.07-base)
+      `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base))
         ("ocaml-migrate-parsetree"
          ,(package-with-ocaml4.07 ocaml-migrate-parsetree))
         ("ocaml-ppxlib" ,ocaml4.07-ppxlib)))
@@ -4744,9 +5152,10 @@ else expression.")
     (build-system dune-build-system)
     (arguments
      `(#:ocaml ,ocaml-4.07
-       #:findlib ,ocaml4.07-findlib))
+       #:findlib ,ocaml4.07-findlib
+       #:dune ,ocaml4.07-dune))
     (propagated-inputs
-      `(("ocaml-base" ,ocaml4.07-base)
+      `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base))
         ("ocaml-stdio" ,ocaml4.07-stdio)
         ("ocaml-ppxlib" ,ocaml4.07-ppxlib)))
     (properties `((upstream-name . "ppx_optcomp")))
@@ -4772,9 +5181,10 @@ size, the version of the compiler, ...")
     (build-system dune-build-system)
     (arguments
      `(#:ocaml ,ocaml-4.07
-       #:findlib ,ocaml4.07-findlib))
+       #:findlib ,ocaml4.07-findlib
+       #:dune ,ocaml4.07-dune))
     (propagated-inputs
-      `(("ocaml-base" ,ocaml4.07-base)
+      `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base))
         ("ocaml-migrate-parsetree"
          ,(package-with-ocaml4.07 ocaml-migrate-parsetree))
         ("ocaml-ppxlib" ,ocaml4.07-ppxlib)))
@@ -4800,9 +5210,10 @@ match expressions, and if expressions.")
     (build-system dune-build-system)
     (arguments
      `(#:ocaml ,ocaml-4.07
-       #:findlib ,ocaml4.07-findlib))
+       #:findlib ,ocaml4.07-findlib
+       #:dune ,ocaml4.07-dune))
     (propagated-inputs
-      `(("ocaml-base" ,ocaml4.07-base)
+      `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base))
         ("ocaml-ppx-here" ,ocaml4.07-ppx-here)
         ("ocaml-migrate-parsetree"
          ,(package-with-ocaml4.07 ocaml-migrate-parsetree))
@@ -4829,9 +5240,10 @@ position.")
     (build-system dune-build-system)
     (arguments
      `(#:ocaml ,ocaml-4.07
-       #:findlib ,ocaml4.07-findlib))
+       #:findlib ,ocaml4.07-findlib
+       #:dune ,ocaml4.07-dune))
     (propagated-inputs
-      `(("ocaml-base" ,ocaml4.07-base)
+      `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base))
         ("ocaml-ppx-compare" ,ocaml4.07-ppx-compare)
         ("ocaml-ppx-here" ,ocaml4.07-ppx-here)
         ("ocaml-ppx-sexp-conv" ,ocaml4.07-ppx-sexp-conv)
@@ -4860,11 +5272,11 @@ useful errors on failure.")
                 "1wawsbjfkri4sw52n8xqrzihxc3xfpdicv3ahz83a1rsn4lb8j5q"))))
     (build-system dune-build-system)
     (arguments
-     `(#:jbuild? #t
-       #:ocaml ,ocaml-4.07
-       #:findlib ,ocaml4.07-findlib))
+     `(#:ocaml ,ocaml-4.07
+       #:findlib ,ocaml4.07-findlib
+       #:dune ,ocaml4.07-dune))
     (propagated-inputs
-      `(("ocaml-base" ,ocaml4.07-base)
+      `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base))
         ("ocaml-ppx-assert" ,ocaml4.07-ppx-assert)
         ("ocaml-ppx-compare" ,ocaml4.07-ppx-compare)
         ("ocaml-ppx-custom-printf" ,ocaml4.07-ppx-custom-printf)
@@ -4905,9 +5317,10 @@ to denote the expected output.")
      ;; No tests
      `(#:tests? #f
        #:ocaml ,ocaml-4.07
-       #:findlib ,ocaml4.07-findlib))
+       #:findlib ,ocaml4.07-findlib
+       #:dune ,ocaml4.07-dune))
     (propagated-inputs
-      `(("ocaml-base" ,ocaml4.07-base)
+      `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base))
         ("ocaml-migrate-parsetree"
          ,(package-with-ocaml4.07 ocaml-migrate-parsetree))
         ("ocaml-octavius" ,(package-with-ocaml4.07 ocaml-octavius))
@@ -4937,9 +5350,10 @@ packages.")
     (arguments
      `(#:test-target "."
        #:ocaml ,ocaml-4.07
-       #:findlib ,ocaml4.07-findlib))
+       #:findlib ,ocaml4.07-findlib
+       #:dune ,ocaml4.07-dune))
     (propagated-inputs
-      `(("ocaml-base" ,ocaml4.07-base)
+      `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base))
         ("ocaml-typerep" ,ocaml4.07-typerep)
         ("ocaml-migrate-parsetree"
          ,(package-with-ocaml4.07 ocaml-migrate-parsetree))
@@ -4967,7 +5381,8 @@ from type definitions.")
     (arguments
      `(#:test-target "."
        #:ocaml ,ocaml-4.07
-       #:findlib ,ocaml4.07-findlib))
+       #:findlib ,ocaml4.07-findlib
+       #:dune ,ocaml4.07-dune))
     (propagated-inputs
       `(("ocaml-ppx-compare" ,ocaml4.07-ppx-compare)
         ("ocaml-ppx-enumerate" ,ocaml4.07-ppx-enumerate)
@@ -5004,9 +5419,10 @@ verification tool.")
      ;; Cyclic dependency with ocaml-ppx-jane
      `(#:tests? #f
        #:ocaml ,ocaml-4.07
-       #:findlib ,ocaml4.07-findlib))
+       #:findlib ,ocaml4.07-findlib
+       #:dune ,ocaml4.07-dune))
     (propagated-inputs
-      `(("ocaml-base" ,ocaml4.07-base)
+      `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base))
         ("ocaml-bin-prot" ,ocaml4.07-bin-prot)
         ("ocaml-ppx-here" ,ocaml4.07-ppx-here)
         ("ocaml-migrate-parsetree"
@@ -5035,7 +5451,8 @@ functions from type definitions.")
     (arguments
      `(#:test-target "."
        #:ocaml ,ocaml-4.07
-       #:findlib ,ocaml4.07-findlib))
+       #:findlib ,ocaml4.07-findlib
+       #:dune ,ocaml4.07-dune))
     (propagated-inputs
       `(("ocaml-ppx-assert" ,ocaml4.07-ppx-assert)
         ("ocaml-ppx-base" ,ocaml4.07-ppx-base)
@@ -5080,9 +5497,10 @@ driver including all standard Jane Street ppx rewriters.")
     (build-system dune-build-system)
     (arguments
      `(#:ocaml ,ocaml-4.07
-       #:findlib ,ocaml4.07-findlib))
+       #:findlib ,ocaml4.07-findlib
+       #:dune ,ocaml4.07-dune))
     (propagated-inputs
-      `(("ocaml-base" ,ocaml4.07-base)
+      `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base))
         ("ocaml-ppx-jane" ,ocaml4.07-ppx-jane)
         ("ocaml-migrate-parsetree"
          ,(package-with-ocaml4.07 ocaml-migrate-parsetree))))
@@ -5098,9 +5516,9 @@ This library implements a splittable pseudo-random number generator that sacrifi
 cryptographic-quality randomness in favor of performance.")
     (license license:asl2.0)))
 
-(define-public ocaml-jane-street-headers
+(define-public ocaml4.07-jane-street-headers
   (package
-    (name "ocaml-jane-street-headers")
+    (name "ocaml4.07-jane-street-headers")
     (version "0.11.0")
     (source (origin
               (method url-fetch)
@@ -5112,7 +5530,10 @@ cryptographic-quality randomness in favor of performance.")
                 "0afhzm08l9v883fhpqqh2lmy7az609pxif40bp7x1sk8c0yszqsh"))))
     (build-system dune-build-system)
     (arguments
-     `(#:test-target "."))
+     `(#:test-target "."
+       #:ocaml ,ocaml-4.07
+       #:findlib ,ocaml4.07-findlib
+       #:dune ,ocaml4.07-dune))
     (home-page "https://github.com/janestreet/jane-street-headers")
     (synopsis "Jane Street C header files")
     (description "This package provides C header files shared between the
@@ -5136,9 +5557,10 @@ various Jane Street packages.")
      ;; No tests
      `(#:tests? #f
        #:ocaml ,ocaml-4.07
-       #:findlib ,ocaml4.07-findlib))
+       #:findlib ,ocaml4.07-findlib
+       #:dune ,ocaml4.07-dune))
     (propagated-inputs
-      `(("ocaml-base" ,ocaml4.07-base)
+      `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base))
         ("ocaml-stdio" ,ocaml4.07-stdio)))
     (home-page "https://github.com/janestreet/configurator")
     (synopsis "Helper library for gathering system configuration")
@@ -5179,7 +5601,8 @@ Configurator allows one to:
                (("/bin/echo") (which "echo")))
              #t)))
        #:ocaml ,ocaml-4.07
-       #:findlib ,ocaml4.07-findlib))
+       #:findlib ,ocaml4.07-findlib
+       #:dune ,ocaml4.07-dune))
     (native-inputs
      `(("ocaml-ppx-expect" ,ocaml4.07-ppx-expect)))
     (home-page "https://github.com/janestreet/spawn")
@@ -5218,18 +5641,18 @@ thousands of times faster than fork.
                 "0pzl8n09z4f3i7z2wq4cjxfqrr8mj6xcdp7rbg0nxap2zdhjgvrq"))))
     (build-system dune-build-system)
     (arguments
-     `(#:jbuild? #t
-       ;; Require a cyclic dependency: core_extended
-       #:tests? #f
+     `(#:package "core"
+       #:tests? #f; Require a cyclic dependency: core_extended
        #:ocaml ,ocaml-4.07
-       #:findlib ,ocaml4.07-findlib))
+       #:findlib ,ocaml4.07-findlib
+       #:dune ,ocaml4.07-dune))
     (propagated-inputs
-      `(("ocaml-base" ,ocaml4.07-base)
+      `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base))
         ("ocaml-configurator" ,ocaml4.07-configurator)
         ("ocaml-core-kernel" ,ocaml4.07-core-kernel)
         ("ocaml-ppx-assert" ,ocaml4.07-ppx-assert)
         ("ocaml-ppx-jane" ,ocaml4.07-ppx-jane)
-        ("ocaml-sexplib" ,ocaml4.07-sexplib)
+        ("ocaml-sexplib" ,(package-with-ocaml4.07 ocaml-sexplib))
         ("ocaml-spawn" ,ocaml4.07-spawn)
         ("ocaml-stdio" ,ocaml4.07-stdio)
         ("ocaml-migrate-parsetree"
@@ -5261,14 +5684,14 @@ standard library that was developed by Jane Street.")
      ;; Cyclic dependency with ocaml-core
      `(#:tests? #f
        #:ocaml ,ocaml-4.07
-       #:findlib ,ocaml4.07-findlib))
+       #:findlib ,ocaml4.07-findlib
+       #:dune ,ocaml4.07-dune))
     (propagated-inputs
-      `(("ocaml-base" ,ocaml4.07-base)
+      `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base))
         ("ocaml-bin-prot" ,ocaml4.07-bin-prot)
         ("ocaml-configurator" ,ocaml4.07-configurator)
         ("ocaml-fieldslib" ,ocaml4.07-fieldslib)
-        ("ocaml-jane-street-headers"
-         ,(package-with-ocaml4.07 ocaml-jane-street-headers))
+        ("ocaml-jane-street-headers" ,ocaml4.07-jane-street-headers)
         ("ocaml-ppx-assert" ,ocaml4.07-ppx-assert)
         ("ocaml-ppx-base" ,ocaml4.07-ppx-base)
         ("ocaml-ppx-hash" ,ocaml4.07-ppx-hash)
@@ -5276,7 +5699,7 @@ standard library that was developed by Jane Street.")
         ("ocaml-ppx-jane" ,ocaml4.07-ppx-jane)
         ("ocaml-ppx-sexp-conv" ,ocaml4.07-ppx-sexp-conv)
         ("ocaml-ppx-sexp-message" ,ocaml4.07-ppx-sexp-message)
-        ("ocaml-sexplib" ,ocaml4.07-sexplib)
+        ("ocaml-sexplib" ,(package-with-ocaml4.07 ocaml-sexplib))
         ("ocaml-splittable-random" ,ocaml4.07-splittable-random)
         ("ocaml-stdio" ,ocaml4.07-stdio)
         ("ocaml-typerep" ,ocaml4.07-typerep)
@@ -5299,7 +5722,7 @@ the full Core is not available, such as in Javascript.")
 (define-public ocaml-markup
   (package
     (name "ocaml-markup")
-    (version "0.8.2")
+    (version "1.0.0")
     (home-page "https://github.com/aantron/markup.ml")
     (source
      (origin
@@ -5310,7 +5733,7 @@ the full Core is not available, such as in Javascript.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "13zcrwzjmifniv3bvjbkd2ah8wwa3ld75bxh1d8hrzdvfxzh9szn"))))
+         "09hkrf9pw6hpb9j06p5bddklpnjwdjpqza3bx2179l970yl67an9"))))
     (build-system dune-build-system)
     (arguments
      `(#:package "markup"))
@@ -5322,8 +5745,10 @@ the full Core is not available, such as in Javascript.")
        ("ocaml-uutf" ,ocaml-uutf)
        ("ocaml-lwt" ,ocaml-lwt)))
     (native-inputs
-     `(("ocaml-ounit" ,ocaml-ounit)
+     `(("ocaml-ounit2" ,ocaml-ounit2)
        ("pkg-config" ,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")
     (description "Markup.ml provides an HTML parser and an XML parser.  The
 parsers are wrapped in a simple interface: they are functions that transform
@@ -5345,10 +5770,30 @@ a single pass.  They automatically detect the character encoding of the input
 stream, and convert everything to UTF-8.")
     (license license:bsd-3)))
 
+;; ocaml-markup 1.0.0 can not be built with old version of dune used in
+;; package-with-ocaml4.07
+(define-public ocaml-markup0.8.0
+  (package
+    (inherit ocaml-markup)
+    (name "ocaml-markup")
+    (version "0.8.0")
+    (home-page "https://github.com/aantron/markup.ml")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url (string-append home-page ".git"))
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0aif4abvfmi9xc1pvw5n5rbm6rzkkpsxyvdn0lanr33rjpvkwdlm"))))
+    (properties '())))
+
 (define-public ocaml-tyxml
   (package
     (name "ocaml-tyxml")
-    (version "4.3.0")
+    (version "4.4.0")
     (source
      (origin
        (method git-fetch)
@@ -5358,7 +5803,7 @@ stream, and convert everything to UTF-8.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "0wv19xipkj8l2sks1h53105ywbjwk7q93fb7b8al4a2g9wr109c0"))))
+         "1hw4phyadcfgywgh5sj87i76gp56qwxzwlcpfdwjbf6ggag9clmd"))))
     (build-system dune-build-system)
     (inputs
      `(("ocaml-re" ,ocaml-re)
@@ -5368,7 +5813,7 @@ stream, and convert everything to UTF-8.")
        ("ocaml-markup" ,ocaml-markup)))
     (native-inputs
      `(("ocaml-alcotest" ,ocaml-alcotest)))
-    (arguments `(#:jbuild? #t))
+    (arguments `(#:package "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
@@ -5422,10 +5867,10 @@ 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-odoc
+(define-public ocaml-odoc
   (package
-    (name "ocaml4.07-odoc")
-    (version "1.4.2")
+    (name "ocaml-odoc")
+    (version "1.5.2")
     (source
      (origin
        (method git-fetch)
@@ -5434,26 +5879,24 @@ then run the Bisect_ppx report tool on the generated visitation files.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0rvhx139jx6wmlfz355mja6mk03x4swq1xxvk5ky6jzhalq3cf5i"))))
+        (base32 "0fqfyz48q7ss5bc4c5phmp4s3ka3vc08b8gfk8fvyryvb4bq27jm"))))
     (build-system dune-build-system)
-    (arguments
-     `(#:ocaml ,ocaml-4.07
-       #:findlib ,ocaml4.07-findlib
-       #:dune ,ocaml4.07-dune))
     (inputs
-     `(("ocaml-alcotest" ,(package-with-ocaml4.07 ocaml-alcotest))
-       ("ocaml-markup" ,(package-with-ocaml4.07 ocaml-markup))
-       ("ocaml-sexplib" ,ocaml4.07-sexplib)
-       ("ocaml-re" ,(package-with-ocaml4.07 ocaml-re))
-       ("ocaml-uutf" ,(package-with-ocaml4.07 ocaml-uutf))))
+     `(("ocaml-alcotest" ,ocaml-alcotest)
+       ("ocaml-markup" ,ocaml-markup)
+       ("ocaml-sexplib" ,ocaml-sexplib)
+       ("ocaml-re" ,ocaml-re)
+       ("ocaml-uutf" ,ocaml-uutf)))
     (native-inputs
-     `(("ocaml-astring" ,(package-with-ocaml4.07 ocaml-astring))
-       ("ocaml-cmdliner" ,(package-with-ocaml4.07 ocaml-cmdliner))
-       ("ocaml-cppo" ,(package-with-ocaml4.07 ocaml-cppo))
-       ("ocaml-fpath" ,(package-with-ocaml4.07 ocaml-fpath))
-       ("ocaml-result" ,(package-with-ocaml4.07 ocaml-result))
-       ("ocaml-tyxml" ,(package-with-ocaml4.07 ocaml-tyxml))
-       ("ocaml-bisect-ppx" ,(package-with-ocaml4.07 ocaml-bisect-ppx))))
+     `(("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 `((ocaml4.07-variant . ,(delay ocaml4.07-odoc))))
     (home-page "https://github.com/ocaml/odoc")
     (synopsis "OCaml documentation generator")
     (description "Odoc is a documentation generator for OCaml.  It reads
@@ -5465,6 +5908,25 @@ advantage over ocamldoc is an accurate cross-referencer, which handles the
 complexity of the OCaml module system.")
     (license license:isc)))
 
+;; version 1.5.2 requires ocaml-markdown 1.0.0 which does not compile
+;; with old version of dune used in package-with-ocaml4.07
+(define-public ocaml4.07-odoc
+  (package-with-ocaml4.07
+   (package
+     (inherit ocaml-odoc)
+     (name "ocaml-odoc")
+     (version "1.5.1")
+     (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+              (url "https://github.com/ocaml/odoc")
+              (commit version)))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "0z2nisg1vb5xlk41hqw8drvj90v52wli7zvnih6a844cg6xsvvj2"))))
+     (properties '()))))
+
 (define-public ocaml4.07-fftw3
   (package
     (name "ocaml4.07-fftw3")
@@ -5524,7 +5986,7 @@ library FFTW.")
     (native-inputs
      `(("openblas" ,openblas)
        ("lapack" ,lapack)
-       ("ocaml-base" ,ocaml4.07-base)
+       ("ocaml-base" ,(package-with-ocaml4.07 ocaml-base))
        ("ocaml-stdio" ,ocaml4.07-stdio)))
     (home-page "https://mmottl.github.io/lacaml/")
     (synopsis
@@ -5545,6 +6007,12 @@ convenience functions for vectors and matrices.")
                     (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"))))
@@ -5565,10 +6033,85 @@ include the X Window System, Quartz, Win32, image buffers, PostScript, PDF,
 and SVG file output.")
     (license license:lgpl3+)))
 
+(define-public ocaml-version
+  (package
+    (name "ocaml-version")
+    (version "3.0.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/ocurrent/ocaml-version")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "13770mp6adjjbx63zsbh6506dqxz241chw8c3y403sxpw45hnaw6"))))
+    (build-system dune-build-system)
+    (arguments `(#:tests? #f))          ; no tests
+    (home-page
+     "https://github.com/ocurrent/ocaml-version")
+    (synopsis
+     "Manipulate, parse and generate OCaml compiler version strings")
+    (description
+     "This library provides facilities to parse version numbers of the OCaml
+compiler, and enumerates the various official OCaml releases and configuration
+variants.")
+    (license license:isc)))
+
+(define-public ocaml-mdx
+  (package
+    (name "ocaml-mdx")
+    (version "1.7.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/realworldocaml/mdx")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "10avyv99xkfqdq3gmq8gps770jpibbfslg97sbhgmp0dpwikz49d"))))
+    (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)
+       ("ocaml-odoc" ,ocaml-odoc)
+       ("ocaml-version" ,ocaml-version)))
+    (native-inputs
+     `(("ocaml-cppo" ,ocaml-cppo)
+       ("ocaml-lwt" ,ocaml-lwt)
+       ("ocaml-alcotest" ,ocaml-alcotest)))
+    (home-page
+     "https://github.com/realworldocaml/mdx")
+    (synopsis
+     "Executable code blocks inside markdown files")
+    (description
+     "@code{ocaml-mdx} allows to execute code blocks inside markdown files.
+There are (currently) two sub-commands, corresponding
+to two modes of operations: pre-processing (@code{ocaml-mdx pp})
+and tests (@code{ocaml-mdx test}]).
+
+The pre-processor mode allows to mix documentation and code,
+and to practice @dfn{literate programming} using markdown and OCaml.
+
+The test mode allows to ensure that shell scripts and OCaml fragments
+in the documentation always stays up-to-date.
+
+@code{ocaml-mdx} is released as two binaries called @code{ocaml-mdx} and
+@code{mdx} which are the same, mdx being the deprecated name, kept for now for
+compatibility.")
+    (license license:isc)))
+
 (define-public lablgtk3
   (package
     (name "lablgtk")
-    (version "3.0.beta8")
+    (version "3.1.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -5577,7 +6120,7 @@ and SVG file output.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "08pgwnia240i2rw1rbgiahg673kwa7b6bvhsg3z4b47xr5sh9pvz"))))
+                "11qfc39cmwfwfpwmjh6wh98zwdv6p73bv8hqwcsss869vs1r7gmn"))))
     (build-system dune-build-system)
     (arguments
      `(#:tests? #t
@@ -5609,3 +6152,48 @@ LablGL), gnomecanvas, gnomeui, gtksourceview, gtkspell, libglade (and it can
 generate OCaml code from .glade files), libpanel, librsvg and quartz.")
     ;; Version 2 only, with linking exception.
     (license license:lgpl2.0)))
+
+(define-public ocaml-reactivedata
+  ;; Future releases will use dune.
+  (package
+    (name "ocaml-reactivedata")
+    (version "0.2.2")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/ocsigen/reactiveData")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0l5z0fsckqkywjbn2nwy3s55h85yx8scc4hq9qzr9ig3hrq1mfb0"))))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (add-before 'build 'fix-deprecated
+           (lambda _
+             (substitute*
+                 "src/reactiveData.ml"
+               (("Pervasives.compare") "compare"))
+             #t))
+         (add-before 'install 'forget-makefile
+           ;; Ensure we use opam to install files
+           (lambda _
+             (delete-file "Makefile")
+             #t)))))
+    (build-system ocaml-build-system)
+    (properties `((upstream-name . "reactiveData")))
+    (native-inputs
+     `(("ocamlbuild" ,ocamlbuild)
+       ("opam" ,opam)))
+    (propagated-inputs
+     `(("ocaml-react" ,ocaml-react)))
+    (home-page "https://github.com/ocsigen/reactiveData")
+    (synopsis "Declarative events and signals for OCaml")
+    (description
+     "React is an OCaml module for functional reactive programming (FRP).  It
+provides support to program with time varying values: declarative events and
+ signals.  React doesn't define any primitive event or signal, it lets the
+client chooses the concrete timeline.")
+    (license license:lgpl2.1+)))
diff --git a/gnu/packages/onc-rpc.scm b/gnu/packages/onc-rpc.scm
index 8d0480622e..14ff13c038 100644
--- a/gnu/packages/onc-rpc.scm
+++ b/gnu/packages/onc-rpc.scm
@@ -92,7 +92,7 @@ IPv4 and IPv6.  ONC RPC is notably used by the network file system (NFS).")
 (define-public rpcbind
   (package
     (name "rpcbind")
-    (version "0.2.4")
+    (version "1.2.5")
     (source
      (origin
       (method url-fetch)
@@ -102,7 +102,7 @@ IPv4 and IPv6.  ONC RPC is notably used by the network file system (NFS).")
       (patches (search-patches "rpcbind-CVE-2017-8779.patch"))
       (sha256
        (base32
-        "0rjc867mdacag4yqvs827wqhkh27135rp9asj06ixhf71m9rljh7"))))
+        "0ynszy5hpc7wbz8xngqwyhgbi9cay73y43izqhcmrcv375l61qrc"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags
@@ -143,7 +143,7 @@ from the protocol files.")
 (define-public libnsl
   (package
     (name "libnsl")
-    (version "1.2.0")
+    (version "1.3.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -152,17 +152,10 @@ from the protocol files.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1chzqhcgh0yia9js8mh92cmhyka7rh32ql6b3mgdk26n94dqzs8b"))))
+                "1dayj5i4bh65gn7zkciacnwv2a0ghm6nn58d78rsi4zby4lyj5w5"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:configure-flags '("--disable-static")
-       #:phases (modify-phases %standard-phases
-                  (add-before 'bootstrap 'gettextize
-                    (lambda _
-                      ;; Regenerate the bundled Makefile.in.in to avoid a
-                      ;; "gettext infrastructure mismatch" because the
-                      ;; existing version was generated by an older gettext.
-                      (invoke "gettextize" "-f"))))))
+     `(#:configure-flags '("--disable-static")))
     (native-inputs
      `(("autoconf" ,autoconf)
        ("automake" ,automake)
diff --git a/gnu/packages/opencl.scm b/gnu/packages/opencl.scm
index 593b9044df..ddc30ef037 100644
--- a/gnu/packages/opencl.scm
+++ b/gnu/packages/opencl.scm
@@ -1,6 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2018 Fis Trivial <ybbs.daans@hotmail.com>
-;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -348,14 +348,13 @@ pocl.")
 (define-public python-pytools
   (package
     (name "python-pytools")
-    (version "2020.1")
+    (version "2020.4")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "pytools" version))
        (sha256
-        (base32
-         "19h47pqfrq7ax7601i5g8icpb6b42h8zzwq0dqfdcjjqamwd2cn1"))))
+        (base32 "0q7439iy365a874ckpavx6h1mhnnngfy8nl7xj5grdd127zkknrp"))))
     (build-system python-build-system)
     (propagated-inputs
      `(("python-appdirs" ,python-appdirs)
diff --git a/gnu/packages/openldap.scm b/gnu/packages/openldap.scm
index 14bf874f48..6e863388d8 100644
--- a/gnu/packages/openldap.scm
+++ b/gnu/packages/openldap.scm
@@ -191,14 +191,14 @@ an LDAP server.")
 (define-public python-ldap
   (package
     (name "python-ldap")
-    (version "3.1.0")
+    (version "3.3.1")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "python-ldap" version))
        (sha256
         (base32
-         "1i97nwfnraylyn0myxlf3vciicrf5h6fymrcff9c00k581wmx5s1"))))
+         "198as30xy6p760niqps2zdvq2xcmr765h06pmda8fa9y077wl4a7"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
diff --git a/gnu/packages/openstack.scm b/gnu/packages/openstack.scm
index d0294cdef3..17a4f3dcdb 100644
--- a/gnu/packages/openstack.scm
+++ b/gnu/packages/openstack.scm
@@ -5,6 +5,7 @@
 ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2020 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -26,6 +27,7 @@
   #:use-module (gnu packages check)
   #:use-module (gnu packages gnupg)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages python-check)
   #:use-module (gnu packages python-crypto)
   #:use-module (gnu packages python-web)
   #:use-module (gnu packages python-xyz)
@@ -45,47 +47,64 @@
 (define-public python-bandit
   (package
     (name "python-bandit")
-    (version "1.4.0")
+    (version "1.6.2")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "bandit" version))
        (sha256
         (base32
-         "1m5bm42120zyazky4k0lp3d9r0jwhjmp6sb108xfr0vz952p15yb"))))
+         "0rb034c99pyhb4a60z7f2kz40cjydhm8m9v2blaal1rmhlam7rs1"))))
     (build-system python-build-system)
     (arguments
-     `(#:phases (modify-phases %standard-phases
-                  (delete 'check)
-                  (add-after 'install 'check
-                    (lambda* (#:key inputs outputs #:allow-other-keys)
-                      ;; Tests require the 'bandit' executable in PATH.
-                      ;; It's only built during install time.
-                      (add-installed-pythonpath inputs outputs)
-                      (setenv "PATH" (string-append (assoc-ref outputs "out")
-                                                    "/bin:" (getenv "PATH")))
-                      (invoke "python" "setup.py" "testr"))))))
+     ;; The tests are disabled to avoid a circular dependency with
+     ;; python-stestr.
+     `(#:tests? #f))
     (propagated-inputs
-      `(("python-gitpython" ,python-gitpython)
-        ("python-pyyaml" ,python-pyyaml)
-        ("python-six" ,python-six)
-        ("python-stevedore" ,python-stevedore)))
+     `(("python-gitpython" ,python-gitpython)
+       ("python-pyyaml" ,python-pyyaml)
+       ("python-six" ,python-six)
+       ("python-stevedore" ,python-stevedore)))
     (native-inputs
-      `(;; Tests.
-        ("python-beautifulsoup4" ,python-beautifulsoup4)
-        ("python-fixtures" ,python-fixtures)
-        ("python-mock" ,python-mock)
-        ("python-subunit" ,python-subunit)
-        ("python-testrepository" ,python-testrepository)
-        ("python-testscenarios" ,python-testscenarios)
-        ("python-testtools" ,python-testtools)))
+     `(("python-pbr" ,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 Python code.
-To do this Bandit processes each file, builds an AST from it, and runs
-appropriate plugins against the AST nodes.  Once Bandit has finished scanning
-all the files it generates a report.")
+    (description "Bandit is a tool designed to find common security issues in
+Python code.  To do this Bandit processes each file, builds an AST from it,
+and runs appropriate plugins against the AST nodes.  Once Bandit has finished
+scanning all the files it generates a report.")
+    (license asl2.0)))
+
+(define-public python-cliff
+  (package
+    (name "python-cliff")
+    (version "3.5.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "cliff" version))
+       (sha256
+        (base32
+         "0n8pzr0mnn9lq2mykds69ij2xrn0fsirh4ndmkx0mzydbx5niysv"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:tests? #f))
+    (native-inputs
+     `(("python-pbr" ,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)))
+    (home-page "https://opendev.org/openstack/cliff")
+    (synopsis "Framework for building command line programs")
+    (description "The @code{cliff} framework allows creating multi-level
+commands such as those of @command{subversion} and @command{git}, where the
+main program handles some basic argument parsing and then invokes a
+sub-command to do the work.  It uses plugins to define sub-commands, output
+formatters, and other extensions.")
     (license asl2.0)))
 
 (define-public python-debtcollector
@@ -131,39 +150,30 @@ manner.")
 (define-public python-hacking
   (package
     (name "python-hacking")
-    (version "1.1.0")
+    (version "4.0.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "hacking" version))
        (sha256
         (base32
-         "1vlgh81v4vsw3q3cf7qggsp043vq16knp203lrll82h7l7rhd8r3"))))
+         "062rvbkvbavqqz55f7q00ikwipkn5j0rdls1rrajdbfwgckjcrsm"))))
     (build-system python-build-system)
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'delete-broken-test
-           (lambda _
-             ;; TODO: Just one test fails:
-             ;; hacking.tests.test_doctest.HackingTestCase.test_pycodestyle
-             ;;   (H403-hacking_docstring_multiline_end-line-5)
-             (delete-file "hacking/tests/test_doctest.py")
-             #t)))))
-    (propagated-inputs
-     `(("python-flake8" ,python-flake8-2.6)
-       ("python-mccabe-0.2.1" ,python-mccabe-0.2.1)
-       ("python-pbr" ,python-pbr)
-       ("python-pep8-1.5.7" ,python-pep8-1.5.7)
-       ("python-pyflakes-1.2" ,python-pyflakes-1.2)
-       ("python-six" ,python-six)))
+     (propagated-inputs
+     `(("python-flake8" ,python-flake8)))
     (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-reno" ,python-reno)
-       ("python-testrepository" ,python-testrepository)
-       ("python-testscenarios" ,python-testscenarios)))
+       ("python-monotonic" ,python-monotonic)
+       ("python-subunit" ,python-subunit)
+       ("python-stestr" ,python-stestr)
+       ("python-testscenarios" ,python-testscenarios)
+       ("python-testtools" ,python-testtools)))
     (home-page "https://github.com/openstack-dev/hacking")
     (synopsis "OpenStack hacking guideline enforcement")
     (description
@@ -172,9 +182,6 @@ manner.")
 guidelines}.")
     (license asl2.0)))
 
-(define-public python2-hacking
-  (package-with-python2 python-hacking))
-
 (define-public python-mox3
   (package
     (name "python-mox3")
@@ -205,9 +212,6 @@ Google mox framework} to Python 3.  It was meant to be as compatible
 with mox as possible, but small enhancements have been made.")
     (license asl2.0)))
 
-(define-public python2-mox3
-  (package-with-python2 python-mox3))
-
 (define-public python-openstackdocstheme
   (package
     (name "python-openstackdocstheme")
@@ -235,9 +239,6 @@ with mox as possible, but small enhancements have been made.")
 to docs.openstack.org and developer.openstack.org.")
     (license asl2.0)))
 
-(define-public python2-openstackdocstheme
-  (package-with-python2 python-openstackdocstheme))
-
 (define-public python-os-client-config
   (package
     (name "python-os-client-config")
@@ -310,22 +311,21 @@ to docs.openstack.org and developer.openstack.org.")
 (define-public python-stevedore
   (package
     (name "python-stevedore")
-    (version "1.28.0")
+    (version "3.2.2")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "stevedore" version))
        (sha256
         (base32
-         "02ynfgwma84g59834dmvzr39mcppy5s229zf1w23c0qngf753izi"))))
+         "1w11lm293afzb73iq0ba9wnmr2rjwymnhr92km4a4xrs7a5qcigq"))))
     (build-system python-build-system)
-    (propagated-inputs
-     `(("python-pbr" ,python-pbr)
-       ("python-six" ,python-six)))
+    (arguments
+     ;; The tests are disabled to avoid a circular dependency with
+     ;; python-stestr.
+     `(#:tests? #f))
     (native-inputs
-     `(("python-mock" ,python-mock)
-       ("python-sphinx" ,python-sphinx)
-       ("python-testrepository" ,python-testrepository)))
+     `(("python-pbr" ,python-pbr)))
     (home-page "https://github.com/dreamhost/stevedore")
     (synopsis "Manage dynamic plugins for Python applications")
     (description
@@ -384,7 +384,11 @@ extensions.")
 common features used in Tempest.")
     (license asl2.0)))
 
-;; Packages from the Oslo library
+
+;;;
+;;; Packages from the Oslo library
+;;;
+
 (define-public python-oslo.config
   (package
     (name "python-oslo.config")
@@ -394,8 +398,8 @@ common features used in Tempest.")
        (method url-fetch)
        (uri (pypi-uri "oslo.config" version))
        (sha256
-         (base32
-          "0ymf7jxbq29fifyvkwhfiys1qvljqfxdw8ajwzwaf3yiqidgpxqd"))))
+        (base32
+         "0ymf7jxbq29fifyvkwhfiys1qvljqfxdw8ajwzwaf3yiqidgpxqd"))))
     (build-system python-build-system)
     (propagated-inputs
      `(("python-debtcollector" ,python-debtcollector)
@@ -420,29 +424,40 @@ common features used in Tempest.")
     (home-page "https://launchpad.net/oslo")
     (synopsis "Oslo Configuration API")
     (description
-      "The Oslo configuration API supports parsing command line arguments and
+     "The Oslo configuration API supports parsing command line arguments and
 .ini style configuration files.")
     (license asl2.0)))
 
 (define-public python-oslo.context
   (package
     (name "python-oslo.context")
-    (version "2.20.0")
+    (version "3.1.1")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "oslo.context" version))
        (sha256
         (base32
-         "0iiq9rpwg6wrdqnhf3d8z8g0g7fjhs5zn6qw6igvxplz2c3rbvvx"))))
+         "1l2z186rkd9acrb2ygf53yrdc1lgf7cy1akbhm21kgkzind4p2r6"))))
     (build-system python-build-system)
+    (arguments
+     `(#:phases (modify-phases %standard-phases
+                  (add-after 'unpack 'relax-requirements
+                    (lambda _
+                      (substitute* "test-requirements.txt"
+                        (("hacking>=3.0.1,<3.1.0")
+                         "hacking>=3.0.1"))
+                      #t)))))
     (propagated-inputs
-     `(("python-debtcollector" ,python-debtcollector)
-       ("python-pbr" ,python-pbr)))
+     `(("python-debtcollector" ,python-debtcollector)))
     (native-inputs
-     `(("python-fixtures" ,python-fixtures)
+     `(("python-bandit" ,python-bandit)
+       ("python-coverage" ,python-coverage)
+       ("python-fixtures" ,python-fixtures)
        ("python-hacking" ,python-hacking)
-       ("python-oslotest" ,python-oslotest)))
+       ("python-oslotest" ,python-oslotest)
+       ("python-pbr" ,python-pbr)
+       ("python-stestr" ,python-stestr)))
     (home-page "https://launchpad.net/oslo")
     (synopsis "Oslo context library")
     (description
@@ -451,42 +466,36 @@ about a request context.  The request context is usually populated in the WSGI
 pipeline and used by various modules such as logging.")
     (license asl2.0)))
 
-(define-public python2-oslo.context
-  (package-with-python2 python-oslo.context))
-
 (define-public python-oslo.i18n
   (package
     (name "python-oslo.i18n")
     (version "3.20.0")
     (source
-      (origin
-        (method url-fetch)
-        (uri (pypi-uri "oslo.i18n" version))
-        (sha256
-          (base32
-           "0kjcdw4bk3mi4vqmqwhhq053kxbbbj05si6nwxd1pzx33z067ky3"))))
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "oslo.i18n" version))
+       (sha256
+        (base32
+         "0kjcdw4bk3mi4vqmqwhhq053kxbbbj05si6nwxd1pzx33z067ky3"))))
     (build-system python-build-system)
     (propagated-inputs
-      `(("python-babel" ,python-babel)
-        ("python-six" ,python-six)))
+     `(("python-babel" ,python-babel)
+       ("python-six" ,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)))
+     `(("python-pbr" ,python-pbr)
+       ;; Tests
+       ("python-mock" ,python-mock)
+       ("python-mox3" ,python-mox3)
+       ("python-oslotest" ,python-oslotest)
+       ("python-testscenarios" ,python-testscenarios)))
     (home-page "https://launchpad.net/oslo")
     (synopsis "Oslo internationalization (i18n) library")
     (description
-      "The oslo.i18n library contain utilities for working with
+     "The oslo.i18n library contain utilities for working with
 internationalization (i18n) features, especially translation for text strings
 in an application or library.")
     (license asl2.0)))
 
-(define-public python2-oslo.i18n
-  (package-with-python2 python-oslo.i18n))
-
 (define-public python-oslo.log
   (package
   (name "python-oslo.log")
@@ -594,76 +603,65 @@ in transmittable and storable formats, such as JSON and MessagePack.")
 and building documentation from them.")
     (license asl2.0)))
 
-(define-public python2-reno
-  (package-with-python2 python-reno))
-
 (define-public python-oslosphinx
   (package
     (name "python-oslosphinx")
-    (version "4.10.0")
+    (version "4.18.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "oslosphinx" version))
        (sha256
         (base32
-         "09mxqyabi68f3s3arvdhlhq0mn38vf74jbsfcg84151hcj6czhnl"))))
+         "1xm41857vzrzjmnyi6bqirg4i5qa61v7wxcsdc4q1nzgr3ndgz5k"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
        (modify-phases %standard-phases
-         (replace 'check
+         (add-after 'unpack 'relax-requirements
            (lambda _
-             ;; Note: Upstream tests would have also built the release notes.
-             ;; That only would work if we were in a git checkout.
-             ;; Therefore, we don't do it here.
-             (invoke "python" "setup.py" "build_sphinx"))))))
+             (substitute* "test-requirements.txt"
+               (("hacking!=0.13.0,<0.14,>=0.12.0")
+                "hacking!=0.13.0,>=0.12.0"))
+             #t)))))
     (propagated-inputs
-      `(("python-requests" ,python-requests)))
+     `(("python-requests" ,python-requests)))
     (native-inputs
-      `(("python-pbr" ,python-pbr)
-        ("python-docutils" ,python-docutils)
-        ("python-hacking" ,python-hacking)
-        ("python-sphinx" ,python-sphinx)))
+     `(("python-hacking" ,python-hacking)
+       ("python-openstackdocstheme" ,python-openstackdocstheme)
+       ("python-pbr" ,python-pbr)
+       ("python-reno" ,python-reno)
+       ("python-sphinx" ,python-sphinx)))
     (home-page "https://www.openstack.org/")
     (synopsis "OpenStack sphinx extensions and theme")
-    (description
-      "This package provides themes and extensions for Sphinx documentation
-from the OpenStack project.")
+    (description "This package provides themes and extensions for Sphinx
+documentation from the OpenStack project.")
     (license asl2.0)))
 
-(define-public python2-oslosphinx
-  (package-with-python2 python-oslosphinx))
-
 (define-public python-oslotest
   (package
     (name "python-oslotest")
-    (version "3.4.0")
+    (version "4.4.1")
     (source
-      (origin
-        (method url-fetch)
-        (uri (pypi-uri "oslotest" version))
-        (sha256
-          (base32
-            "1pp8lq61d548cxcqi451czvrz5i5b3hyi2ry00wmngdgiswcqj1h"))))
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "oslotest" version))
+       (sha256
+        (base32
+         "0r50sz55m8ljv2vk1k7sp88iz1iqq4p9w6kb8hn8g8c50r9zdi5i"))))
     (build-system python-build-system)
+    (arguments
+     ;; The tests are disabled to avoid a circular dependency with oslo.config.
+     `(#:tests? #f))
     (propagated-inputs
-      `(("python-fixtures" ,python-fixtures)
-        ("python-mock" ,python-mock)
-        ("python-mox3" ,python-mox3)
-        ("python-os-client-config" ,python-os-client-config)
-        ("python-six" ,python-six)
-        ("python-subunit" ,python-subunit)
-        ("python-testrepository" ,python-testrepository)
-        ("python-testtools" ,python-testtools)))
-    (native-inputs
-      `(("python-pbr" ,python-pbr)
-        ("python-testscenarios" ,python-testscenarios)))
+     `(("python-fixtures" ,python-fixtures)
+       ("python-six" ,python-six)
+       ("python-subunit" ,python-subunit)
+       ("python-testtools" ,python-testtools)))
     (home-page "https://launchpad.net/oslo")
     (synopsis "Oslo test framework")
-    (description
-      "The Oslo Test framework provides common fixtures, support for debugging,
-and better support for mocking results.")
+    (description "The Oslo Test framework provides common fixtures, support
+for debugging, and better support for mocking results.")
     (license asl2.0)))
 
 (define-public python2-oslotest
diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm
index 9c2c226086..98af2187fa 100644
--- a/gnu/packages/package-management.scm
+++ b/gnu/packages/package-management.scm
@@ -1,20 +1,22 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2015, 2017, 2020 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2017 Muriithi Frederick Muriuki <fredmanglis@gmail.com>
 ;;; Copyright © 2017, 2018 Oleg Pykhalov <go.wigust@gmail.com>
 ;;; Copyright © 2017 Roel Janssen <roel@gnu.org>
-;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Julien Lepiller <julien@lepiller.eu>
 ;;; Copyright © 2018, 2019 Rutger Helling <rhelling@mykolab.com>
 ;;; Copyright © 2018 Sou Bunnbu <iyzsong@member.fsf.org>
 ;;; Copyright © 2018, 2019 Eric Bavier <bavier@member.fsf.org>
-;;; Copyright © 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2019 Jonathan Brielmaier <jonathan.brielmaier@web.de>
 ;;; Copyright © 2020 Mathieu Othacehe <m.othacehe@gmail.com>
 ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
 ;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org>
 ;;; Copyright © 2020 Jesse Gibbons <jgibbons2357+guix@gmail.com>
+;;; Copyright © 2020 Martin Becze <mjbecze@riseup.net>
+;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -49,6 +51,7 @@
   #:use-module (gnu packages cpio)
   #:use-module (gnu packages crypto)
   #:use-module (gnu packages curl)
+  #:use-module (gnu packages databases)
   #:use-module (gnu packages dbm)
   #:use-module (gnu packages docbook)
   #:use-module (gnu packages file)
@@ -114,13 +117,23 @@
                         arch "-linux"
                         "/20131110/guile-2.0.9.tar.xz"))))
 
+;; NOTE: The commit IDs used here form a linked list threaded through the git
+;; history. In a phenomenon known as boot-stripping, not only the head of this
+;; list is used, but also a few older versions, when a guix from this package is
+;; used to build something also depending on guix.
+;;
+;; Therefore, if, by accident, you set this package to a non-existent commit ID,
+;; it is insufficient to simply correct it with the latest commit.
+;; Instead, please push one commit that rolls back Guix to before the mistake,
+;; and then another that points to the first one. That way, the faulty commit
+;; won't appear on the linked list.
 (define-public guix
   ;; Latest version of Guix, which may or may not correspond to a release.
   ;; Note: the 'update-guix-package.scm' script expects this definition to
   ;; start precisely like this.
-  (let ((version "1.1.0")
-        (commit "218a67dfabcdf592325a8f8c49b86478f69ff589")
-        (revision 18))
+  (let ((version "1.2.0")
+        (commit "d4a562ba7ac4549cc2d57eff7f440026a2045f45")
+        (revision 11))
     (package
       (name "guix")
 
@@ -132,11 +145,11 @@
       (source (origin
                 (method git-fetch)
                 (uri (git-reference
-                      (url "https://git.savannah.gnu.org/r/guix.git")
+                      (url "https://git.savannah.gnu.org/git/guix.git")
                       (commit commit)))
                 (sha256
                  (base32
-                  "0zjpfagd377i977xv1ljzl0cj4vlrk4qpyqmlhclcdkjfbbachaq"))
+                  "05gkymzfl0fdb2zjyvvn7w15arfnn7fgpbn3bch9r5yc7ldxg868"))
                 (file-name (string-append "guix-" version "-checkout"))))
       (build-system gnu-build-system)
       (arguments
@@ -187,6 +200,13 @@
                            (string-append "sysvinitservicedir = \
 $(prefix)/etc/init.d\n")))
 
+                        ;; Install OpenRC init files to $(prefix)/etc rather
+                        ;; than to /etc.
+                        (substitute* "nix/local.mk"
+                          (("^openrcservicedir = .*$")
+                           (string-append "openrcservicedir = \
+$(prefix)/etc/init.d\n")))
+
                         (invoke "sh" "bootstrap")))
                     (add-before 'build 'use-host-compressors
                       (lambda* (#:key inputs target #:allow-other-keys)
@@ -275,17 +295,24 @@ $(prefix)/etc/init.d\n")))
                                (guile  ,@(if (%current-target-system)
                                              '((assoc-ref native-inputs "guile"))
                                              '((assoc-ref inputs "guile"))))
+                               (avahi  (assoc-ref inputs "guile-avahi"))
                                (gcrypt (assoc-ref inputs "guile-gcrypt"))
                                (json   (assoc-ref inputs "guile-json"))
                                (sqlite (assoc-ref inputs "guile-sqlite3"))
+                               (zlib   (assoc-ref inputs "guile-zlib"))
+                               (lzlib  (assoc-ref inputs "guile-lzlib"))
+                               (zstd   (assoc-ref inputs "guile-zstd"))
                                (git    (assoc-ref inputs "guile-git"))
                                (bs     (assoc-ref inputs
                                                   "guile-bytestructures"))
                                (ssh    (assoc-ref inputs "guile-ssh"))
                                (gnutls (assoc-ref inputs "gnutls"))
                                (locales (assoc-ref inputs "glibc-utf8-locales"))
-                               (deps   (list gcrypt json sqlite gnutls
-                                             git bs ssh))
+                               (deps   (list gcrypt json sqlite gnutls git
+                                             bs ssh zlib lzlib zstd))
+                               (deps*  ,@(if (%current-target-system)
+                                             '(deps)
+                                             '((cons avahi deps))))
                                (effective
                                 (read-line
                                  (open-pipe* OPEN_READ
@@ -295,13 +322,13 @@ $(prefix)/etc/init.d\n")))
                                         (map (cut string-append <>
                                                   "/share/guile/site/"
                                                   effective)
-                                             (delete #f deps))
+                                             (delete #f deps*))
                                         ":"))
                                (gopath (string-join
                                         (map (cut string-append <>
                                                   "/lib/guile/" effective
                                                   "/site-ccache")
-                                             (delete #f deps))
+                                             (delete #f deps*))
                                         ":"))
                                (locpath (string-append locales "/lib/locale")))
 
@@ -315,16 +342,28 @@ $(prefix)/etc/init.d\n")))
                             (let ((bash (assoc-ref inputs "bash")))
                               (substitute* (string-append out "/bin/guix")
                                 (("^#!.*/bash") (string-append "#! " bash "/bin/bash")))))
-                          #t))))))
+                          #t)))
+
+                    ;; The 'guix' executable has 'OUT/libexec/guix/guile' as
+                    ;; its shebang; that should remain unchanged, thus remove
+                    ;; the 'patch-shebangs' phase, which would otherwise
+                    ;; change it to 'GUILE/bin/guile'.
+                    (delete 'patch-shebangs))))
       (native-inputs `(("pkg-config" ,pkg-config)
 
                        ;; Guile libraries are needed here for
                        ;; cross-compilation.
                        ("guile" ,guile-3.0-latest) ;for faster builds
                        ("gnutls" ,gnutls)
+                       ,@(if (%current-target-system)
+                             '()
+                             `(("guile-avahi" ,guile-avahi)))
                        ("guile-gcrypt" ,guile-gcrypt)
                        ("guile-json" ,guile-json-4)
                        ("guile-sqlite3" ,guile-sqlite3)
+                       ("guile-zlib" ,guile-zlib)
+                       ("guile-lzlib" ,guile-lzlib)
+                       ("guile-zstd" ,guile-zstd)
                        ("guile-ssh" ,guile-ssh)
                        ("guile-git" ,guile-git)
 
@@ -341,9 +380,6 @@ $(prefix)/etc/init.d\n")))
       (inputs
        `(("bzip2" ,bzip2)
          ("gzip" ,gzip)
-         ("zlib" ,zlib)              ;for 'guix publish'
-         ("lzlib" ,lzlib)            ;for 'guix publish' and 'guix substitute'
-
          ("sqlite" ,sqlite)
          ("libgcrypt" ,libgcrypt)
 
@@ -372,12 +408,30 @@ $(prefix)/etc/init.d\n")))
 
          ("glibc-utf8-locales" ,glibc-utf8-locales)))
       (propagated-inputs
-       `(("gnutls" ,(if (%current-target-system) gnutls-3.6.14 guile3.0-gnutls))
+       `(("gnutls" ,(if (%current-target-system) gnutls/fixed gnutls))
+         ;; Avahi requires "glib" which doesn't cross-compile yet.
+         ,@(if (%current-target-system)
+               '()
+               `(("guile-avahi" ,guile-avahi)))
          ("guile-gcrypt" ,guile-gcrypt)
          ("guile-json" ,guile-json-4)
          ("guile-sqlite3" ,guile-sqlite3)
          ("guile-ssh" ,guile-ssh)
-         ("guile-git" ,guile-git)))
+         ("guile-git" ,guile-git)
+         ("guile-zlib" ,guile-zlib)
+         ("guile-lzlib" ,guile-lzlib)
+         ("guile-zstd" ,guile-zstd)))
+      (native-search-paths
+       (list (search-path-specification
+              (variable "GUIX_EXTENSIONS_PATH")
+              (files '("share/guix/extensions")))
+
+             ;; (guix git) and (guix build download) honor this variable whose
+             ;; name comes from OpenSSL.
+             (search-path-specification
+              (variable "SSL_CERT_DIR")
+              (separator #f)                      ;single entry
+              (files '("etc/ssl/certs")))))
 
       (home-page "https://www.gnu.org/software/guix/")
       (synopsis "Functional package manager for installed software packages and versions")
@@ -404,7 +458,7 @@ the Nix package manager.")
      (fold alist-delete (package-native-inputs guix)
            '("po4a" "graphviz" "help2man")))
     (inputs
-     `(("gnutls" ,guile3.0-gnutls)
+     `(("gnutls" ,gnutls)
        ("guile-git" ,guile-git)
        ("guile-json" ,guile-json-3)
        ("guile-gcrypt" ,guile-gcrypt)
@@ -544,18 +598,17 @@ out) and returning a package that uses that as its 'source'."
 (define-public nix
   (package
     (name "nix")
-    (version "2.3.6")
+    (version "2.3.10")
     (source (origin
              (method url-fetch)
-             (uri (string-append "http://nixos.org/releases/nix/nix-"
+             (uri (string-append "https://nixos.org/releases/nix/nix-"
                                  version "/nix-" version ".tar.xz"))
              (sha256
               (base32
-               "128xf2as0y7hr28x575pbf9lkjpxr9hsxknbavv4p7ywr4lhbs85"))))
+               "1axphwkx270c10bjyn4icq9wlx46npgnw0qkpymigl23vramxa58"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:configure-flags
-       (list "--sysconfdir=/etc")
+     `(#:configure-flags '("--sysconfdir=/etc" "--enable-gc")
        #:phases
        (modify-phases %standard-phases
          (replace 'install
@@ -620,10 +673,29 @@ letting you install them apart in distinct directories and then create
 symlinks to the files in a common directory such as /usr/local.")
     (license license:gpl3+)))
 
+(define-public xstow
+  (package
+    (name "xstow")
+    (version "1.0.2")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://sourceforge/xstow/xstow-"
+                                  version ".tar.bz2"))
+              (sha256
+               (base32
+                "1vy6lcswpkixh7h5mvsmq2wbcih6lpsmcva3m7v6f5npllciy13g"))))
+    (build-system gnu-build-system)
+    (synopsis "Replacement of GNU Stow written in C++")
+    (description
+     "XStow is a replacement of GNU Stow written in C++.  It supports all
+features of Stow with some extensions.")
+    (home-page "http://xstow.sourceforge.net/")
+    (license license:gpl2)))
+
 (define-public rpm
   (package
     (name "rpm")
-    (version "4.14.2.1")
+    (version "4.16.1.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://ftp.rpm.org/releases/rpm-"
@@ -631,7 +703,7 @@ symlinks to the files in a common directory such as /usr/local.")
                                   version ".tar.bz2"))
               (sha256
                (base32
-                "1nmck2fq9h85fgs3zhh6w1avlw5y16cbz5khd459ry3jfd5w4f8i"))))
+                "1k6ank2aad7r503w12m6m494mxr6iccj52wqhwbc94pwxsf34mw3"))))
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags '("--with-external-db"   ;use the system's bdb
@@ -655,6 +727,7 @@ symlinks to the files in a common directory such as /usr/local.")
        ("nss" ,nss)
        ("nspr" ,nspr)
        ("libarchive" ,libarchive)
+       ("libgcrypt" ,libgcrypt)
        ("file" ,file)
        ("bzip2" ,bzip2)
        ("zlib" ,zlib)
@@ -728,10 +801,64 @@ environments.")
 (define-public python2-anaconda-client
   (package-with-python2 python-anaconda-client))
 
-(define-public python-conda
+(define-public python-conda-package-handling
+  (package
+    (name "python-conda-package-handling")
+    (version "1.6.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/conda/conda-package-handling/")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0bqbs6a8jbjmbn47n5n1p529cx7pf4vgfnhqca9mflgidfb5i0jf"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'use-unmodified-libarchive
+           (lambda _
+             (substitute* "setup.py"
+               (("archive_and_deps") "archive"))
+             #t))
+         (replace 'check
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (add-installed-pythonpath inputs outputs)
+             (invoke "pytest" "-vv" "tests"
+                     "-k"
+                     (string-append
+                      ;; TODO: these three fail because the mocker fixture
+                      ;; cannot be found
+                      "not test_rename_to_trash"
+                      " and not test_api_extract_tarball_with_libarchive_import_error"
+                      " and not test_delete_trash"
+                      ;; TODO: this one does not raise an exception when it
+                      ;; should.
+                      " and not test_secure_refusal_to_extract_abs_paths")))))))
+    (propagated-inputs
+     `(("python-six" ,python-six)
+       ("python-tqdm" ,python-tqdm)))
+    (inputs
+     `(("libarchive" ,libarchive)))
+    (native-inputs
+     `(("python-cython" ,python-cython)
+       ("python-pytest" ,python-pytest)
+       ("python-pytest-cov" ,python-pytest-cov)
+       ("python-mock" ,python-mock)))
+    (home-page "https://conda.io")
+    (synopsis "Create and extract conda packages of various formats")
+    (description
+     "This library is an abstraction of Conda package handling and a tool for
+extracting, creating, and converting between formats.")
+    (license license:bsd-3)))
+
+(define-public conda
   (package
-    (name "python-conda")
-    (version "4.3.16")
+    (name "conda")
+    (version "4.8.3")
     (source
      (origin
        (method git-fetch)
@@ -741,58 +868,118 @@ environments.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "1qwy0awx4qf2pbk8z2b7q6wdcq7mvwpxxjhg27mbirdvs5hw7hb2"))))
+         "0iv1qzk21jsk6vdp3106xvpvl68zgfdqb3kyzpya87jhkl204l7r"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
        (modify-phases %standard-phases
+         (add-after 'unpack 'fix-permissions
+           (lambda _
+             ;; This file is no longer writable after downloading with
+             ;; 'git-fetch'
+             (make-file-writable
+              "tests/conda_env/support/saved-env/environment.yml")
+             #t))
+         (add-after 'unpack 'correct-python-executable-name
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((python (assoc-ref inputs "python-wrapper")))
+               #;
+               (substitute* "conda/common/path.py"
+                 (("python_version or ''")
+                  "python_version or '3'"))
+               (substitute* "conda/core/initialize.py"
+                 (("python_exe = join")
+                  (format #f "python_exe = \"~a/bin/python\" #"
+                          python))))
+             #t))
+         (add-after 'unpack 'do-not-use-python-root-as-prefix
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out"))
+                   (python (assoc-ref inputs "python-wrapper")))
+               (substitute* "tests/core/test_initialize.py"
+                 (("\"\"\"\\) % conda_prefix")
+                  (format #f "\"\"\") % \"~a\"" python))
+                 (("CONDA_PYTHON_EXE \"%s\"' % join\\(conda_prefix")
+                  (format #f "CONDA_PYTHON_EXE \"%s\"' % join(\"~a\""
+                          python))
+                 (("conda_prefix = abspath\\(sys.prefix\\)")
+                  (format #f "conda_prefix = abspath(\"~a\")" out)))
+               (substitute* "conda/base/context.py"
+                 (("os.chdir\\(sys.prefix\\)")
+                  (format #f "os.chdir(\"~a\")" out))
+                 (("sys.prefix, '.condarc'")
+                  (format #f "\"~a\", '.condarc'" out))
+                 (("return abspath\\(sys.prefix\\)")
+                  (format #f "return abspath(\"~a\")" out))
+                 (("os.path.join\\(sys.prefix, bin_dir, exe\\)")
+                  (format #f "\"~a/bin/conda\"" out))
+                 (("'CONDA_EXE', sys.executable")
+                  (format #f "'CONDA_EXE', \"~a/bin/conda\"" out))))
+             #t))
          (add-before 'build 'create-version-file
            (lambda _
              (with-output-to-file "conda/.version"
                (lambda () (display ,version)))
              #t))
-         (add-before 'check 'remove-failing-tests
-           (lambda _
-             ;; These tests require internet/network access
-             (let ((network-tests '("test_cli.py"
-                                    "test_create.py"
-                                    "test_export.py"
-                                    "test_fetch.py"
-                                    "test_history.py"
-                                    "test_info.py"
-                                    "test_install.py"
-                                    "test_priority.py"
-                                    "conda_env/test_cli.py"
-                                    "conda_env/test_create.py"
-                                    "conda_env/specs/test_notebook.py"
-                                    "conda_env/utils/test_notebooks.py"
-                                    "core/test_index.py"
-                                    "core/test_repodata.py")))
-               (with-directory-excursion "tests"
-                 (for-each delete-file network-tests)
-
-                 ;; FIXME: This test creates a file, then deletes it and tests
-                 ;; that the file was deleted.  For some reason it fails when
-                 ;; building with guix, but does not when you run it in the
-                 ;; directory left when you build with the --keep-failed
-                 ;; option
-                 (delete-file "gateways/disk/test_delete.py")
-                 ;; This file is no longer writable after downloading with 'git-fetch'
-                 (make-file-writable "conda_env/support/saved-env/environment.yml")
-                 #t))))
          (replace 'check
            (lambda _
              (setenv "HOME" "/tmp")
-             (invoke "py.test"))))))
-    (native-inputs
-     `(("python-cytoolz" ,python-cytoolz)
-       ("python-ruamel.yaml" ,python-ruamel.yaml)
-       ("python-requests" ,python-requests)
+             (invoke "py.test" "-vv"
+                     "-k"
+                     (string-append
+                      "not integration"
+                      ;; This one reports a newer version of conda than
+                      ;; expected.
+                      " and not test_auto_update_conda"
+                      ;; This fails because the output directory is not a
+                      ;; Conda environment.
+                      " and not test_list"
+                      ;; This fails because we patched the default root
+                      ;; prefix.
+                      " and not test_default_target_is_root_prefix"
+                      ;; TODO: I don't understand what this failure means
+                      " and not test_PrefixData_return_value_contract"
+                      ;; TODO: same here
+                      " and not test_install_1"
+                      ;; Not sure if this is really wrong.  This fails because
+                      ;; /gnu/store/...python-conda-4.8.3/bin/python
+                      ;; is not /gnu/store/...python-wrapper-3.8.2/bin/python
+                      " and not test_make_entry_point"))))
+         (add-after 'install 'init
+           ;; This writes a whole bunch of shell initialization files to the
+           ;; prefix directory.  Many features of conda can only be used after
+           ;; running "conda init".
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (add-installed-pythonpath inputs outputs)
+             (setenv "HOME" "/tmp")
+
+             ;; "conda init" insists on using sudo, because it is hell-bent on
+             ;; modifying system files.
+             (mkdir-p "/tmp/fake-sudo")
+             (with-output-to-file "/tmp/fake-sudo/sudo"
+               (lambda () (format #t "#!~/bin/sh~%exec $@" (which "sh"))))
+             (chmod "/tmp/fake-sudo/sudo" #o700)
+             (setenv "PATH" (string-append "/tmp/fake-sudo:"
+                                           (getenv "PATH")))
+
+             (invoke (string-append (assoc-ref outputs "out")
+                                    "/bin/conda")
+                     "init"))))))
+    (inputs
+     `(("python-wrapper" ,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-responses" ,python-responses)
        ("python-pyyaml" ,python-pyyaml)
-       ("python-anaconda-client" ,python-anaconda-client)))
+       ("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)))
     (home-page "https://github.com/conda/conda")
     (synopsis "Cross-platform, OS-agnostic, system-level binary package manager")
     (description
@@ -800,76 +987,11 @@ environments.")
 is the package manager used by Anaconda installations, but it may be used for
 other systems as well.  Conda makes environments first-class citizens, making
 it easy to create independent environments even for C libraries.  Conda is
-written entirely in Python.
-
-This package provides Conda as a library.")
+written entirely in Python.")
     (license license:bsd-3)))
 
-(define-public python2-conda
-  (let ((base (package-with-python2
-               (strip-python2-variant python-conda))))
-    (package (inherit base)
-             (native-inputs
-              `(("python2-enum34" ,python2-enum34)
-                ,@(package-native-inputs base))))))
-
-(define-public conda
-  (package (inherit python-conda)
-    (name "conda")
-    (arguments
-     (substitute-keyword-arguments (package-arguments python-conda)
-       ((#:phases phases)
-        `(modify-phases ,phases
-           (replace 'build
-             (lambda* (#:key outputs #:allow-other-keys)
-               ;; This test fails when run before installation.
-               (delete-file "tests/test_activate.py")
-
-               ;; Fix broken defaults
-               (substitute* "conda/base/context.py"
-                 (("return sys.prefix")
-                  (string-append "return \"" (assoc-ref outputs "out") "\""))
-                 (("return (prefix_is_writable\\(self.root_prefix\\))" _ match)
-                  (string-append "return False if self.root_prefix == self.conda_prefix else "
-                                 match)))
-
-               ;; The util/setup-testing.py is used to build conda in
-               ;; application form, rather than the default, library form.
-               ;; With this, we are able to run commands like `conda --help`
-               ;; directly on the command line
-               (invoke "python" "utils/setup-testing.py" "build_py")))
-           (replace 'install
-             (lambda* (#:key inputs outputs #:allow-other-keys)
-               (let* ((out (assoc-ref outputs "out"))
-                      (target (string-append out "/lib/python"
-                                             (python-version
-                                              (assoc-ref inputs "python"))
-                                             "/site-packages/")))
-                 ;; The installer aborts if the target directory is not on
-                 ;; PYTHONPATH.
-                 (setenv "PYTHONPATH"
-                         (string-append target ":" (getenv "PYTHONPATH")))
-
-                 ;; And it aborts if the directory doesn't exist.
-                 (mkdir-p target)
-                 (invoke "python" "utils/setup-testing.py" "install"
-                         (string-append "--prefix=" out)))))
-           ;; The "activate" and "deactivate" scripts don't need wrapping.
-           ;; They also break when they are renamed.
-           (add-after 'wrap 'undo-wrap
-             (lambda* (#:key outputs #:allow-other-keys)
-               (with-directory-excursion (string-append (assoc-ref outputs "out") "/bin/")
-                 (delete-file "deactivate")
-                 (rename-file ".deactivate-real" "deactivate")
-                 (delete-file "activate")
-                 (rename-file ".activate-real" "activate")
-                 #t)))))))
-    (description
-     "Conda is a cross-platform, Python-agnostic binary package manager.  It
-is the package manager used by Anaconda installations, but it may be used for
-other systems as well.  Conda makes environments first-class citizens, making
-it easy to create independent environments even for C libraries.  Conda is
-written entirely in Python.")))
+(define-public python-conda
+  (deprecated-package "python-conda" conda))
 
 (define-public gwl
   (package
@@ -919,10 +1041,106 @@ environments.")
     ;; and the fonts included in this package are licensed OFL1.1.
     (license (list license:gpl3+ license:agpl3+ license:silofl1.1))))
 
+(define-public guix-build-coordinator
+  (let ((commit "b5d998c22f7d4db3e26166ada9489af363f2d47a")
+        (revision "15"))
+    (package
+      (name "guix-build-coordinator")
+      (version (git-version "0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://git.cbaines.net/git/guix/build-coordinator")
+                      (commit commit)))
+                (sha256
+                 (base32
+                  "1jfmwfx7cvfsvryc3w70nw6mixdamjymkqh40qkv99sspkd86dkr"))
+                (file-name (string-append name "-" version "-checkout"))))
+      (build-system gnu-build-system)
+      (arguments
+       `(#: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-before 'build 'set-GUILE_AUTO_COMPILE
+             (lambda _
+               ;; To avoid warnings relating to 'guild'.
+               (setenv "GUILE_AUTO_COMPILE" "0")
+               #t))
+           (add-after 'install 'wrap-executable
+             (lambda* (#:key inputs outputs #:allow-other-keys)
+               (let* ((out (assoc-ref outputs "out"))
+                      (bin (string-append out "/bin"))
+                      (guile (assoc-ref inputs "guile"))
+                      (version (target-guile-effective-version))
+                      (scm (string-append out "/share/guile/site/" version))
+                      (go  (string-append out "/lib/guile/" version "/site-ccache")))
+                 (for-each
+                  (lambda (file)
+                    (simple-format (current-error-port) "wrapping: ~A\n" file)
+                    (wrap-program file
+                      `("PATH" ":" prefix
+                        (,bin
+                         ;; Support building without sqitch as an input, as it
+                         ;; can't be cross-compiled yet
+                         ,@(or (and=> (assoc-ref inputs "sqitch")
+                                      list)
+                               '())))
+                      `("GUILE_LOAD_PATH" ":" prefix
+                        (,scm ,(getenv "GUILE_LOAD_PATH")))
+                      `("GUILE_LOAD_COMPILED_PATH" ":" prefix
+                        (,go ,(getenv "GUILE_LOAD_COMPILED_PATH")))))
+                  (find-files bin)))
+               #t))
+           (delete 'strip))))             ; As the .go files aren't compatible
+      (native-inputs
+       `(("pkg-config" ,pkg-config)
+         ("autoconf" ,autoconf)
+         ("automake" ,automake)
+         ("gnutls" ,gnutls)
+
+         ;; Guile libraries are needed here for cross-compilation.
+         ("guile-json" ,guile-json-4)
+         ("guile-gcrypt" ,guile-gcrypt)
+         ("guix" ,guix)
+         ("guile-prometheus" ,guile-prometheus)
+         ("guile-fibers" ,guile-fibers)
+         ("guile-lib" ,guile-lib)
+         ("guile" ,@(assoc-ref (package-native-inputs guix) "guile"))))
+      (inputs
+       `(("guile" ,@(assoc-ref (package-native-inputs guix) "guile"))
+         ("sqlite" ,sqlite)
+         ,@(if (hurd-target?)
+               '()
+               `(("sqitch" ,sqitch)))))
+      (propagated-inputs
+       `(,@(if (hurd-target?)
+               '()
+               `(("guile-fibers" ,guile-fibers)))
+         ("guile-prometheus" ,guile-prometheus)
+         ("guile-gcrypt" ,guile-gcrypt)
+         ("guile-json" ,guile-json-4)
+         ("guile-lib" ,guile-lib)
+         ("guile-lzlib" ,guile-lzlib)
+         ("guile-zlib" ,guile-zlib)
+         ("guile-sqlite3" ,guile-sqlite3)
+         ("guix" ,guix)
+         ("gnutls" ,gnutls)))
+      (home-page "https://git.cbaines.net/guix/build-coordinator/")
+      (synopsis "Tool to help build derivations")
+      (description
+       "The Guix Build Coordinator helps with performing lots of builds across
+potentially many machines, and with doing something with the results and
+outputs of those builds.")
+      (license license:gpl3+))))
+
 (define-public guix-jupyter
   (package
     (name "guix-jupyter")
-    (version "0.1.0")
+    (version "0.2.1")
     (home-page "https://gitlab.inria.fr/guix-hpc/guix-kernel")
     (source (origin
               (method git-fetch)
@@ -930,15 +1148,7 @@ environments.")
                                   (commit (string-append "v" version))))
               (sha256
                (base32
-                "01z7jjkc7r7lj6637rcgpz40v8xqqyfp6871h94yvcnwm7zy9h1n"))
-              (modules '((guix build utils)))
-              (snippet
-               '(begin
-                  ;; Allow builds with Guile 3.0.
-                  (substitute* "configure.ac"
-                    (("^GUILE_PKG.*")
-                     "GUILE_PKG([3.0 2.2])\n"))
-                  #t))
+                "1kqwfp5h95s6mirq5nbydsbmlhsinn32grz1ld5mbxvhl6sn2i0j"))
               (file-name (string-append "guix-jupyter-" version "-checkout"))))
     (build-system gnu-build-system)
     (arguments
@@ -1014,14 +1224,14 @@ in an isolated environment, in separate namespaces.")
 (define-public gcab
   (package
     (name "gcab")
-    (version "1.2")
+    (version "1.4")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/gcab/"
                                   version "/gcab-" version ".tar.xz"))
               (sha256
                (base32
-                "038h5kk41si2hc9d9169rrlvp8xgsxq27kri7hv2vr39gvz9cbas"))))
+                "13q43iqld4l50yra45lhvkd376pn6qpk7rkx374zn8y9wsdzm9b7"))))
     (build-system meson-build-system)
     (native-inputs
      `(("glib:bin" ,glib "bin")         ; for glib-mkenums
@@ -1077,15 +1287,15 @@ for packaging and deployment of cross-compiled Windows applications.")
 (define-public libostree
   (package
     (name "libostree")
-    (version "2020.4")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "https://github.com/ostreedev/ostree/releases/download/v"
-                    (version-major+minor version) "/libostree-" version ".tar.xz"))
-              (sha256
-               (base32
-                "0s13cjrpx5r1dc9j9c9924zak45wl9nlbg9hiwgpsal80l92c39n"))))
+    (version "2020.8")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://github.com/ostreedev/ostree/releases/download/v"
+             (version-major+minor version) "/libostree-" version ".tar.xz"))
+       (sha256
+        (base32 "16v73v63h16ika73kgh2cvgm0v27r2d48m932mbj3xm6s295kapx"))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases
@@ -1131,14 +1341,14 @@ the boot loader configuration.")
 (define-public flatpak
   (package
    (name "flatpak")
-   (version "1.8.1")
+   (version "1.10.1")
    (source
     (origin
      (method url-fetch)
      (uri (string-append "https://github.com/flatpak/flatpak/releases/download/"
                          version "/flatpak-" version ".tar.xz"))
      (sha256
-      (base32 "1bcymiv0yzs05rplbyzpimb1k17s345a95y0dhw7jh56z5k4p4b6"))))
+      (base32 "1dywvfpmszvp2wy5hvpzy8z6gz2gzmi9p302njp52p9vpx14ydf1"))))
 
    ;; Wrap 'flatpak' so that GIO_EXTRA_MODULES is set, thereby allowing GIO to
    ;; find the TLS backend in glib-networking.
@@ -1174,7 +1384,7 @@ cp -r /tmp/locale/*/en_US.*")))
               (("/usr/bin/python3") (which "python3")))
             #t))
         ;; Many tests fail for unknown reasons, so we just run a few basic
-        ;; tests
+        ;; tests.
         (replace 'check
           (lambda _
             (setenv "HOME" "/tmp")
@@ -1219,3 +1429,53 @@ applications")
    (description "Flatpak is a system for building, distributing, and running
 sandboxed desktop applications on GNU/Linux.")
    (license license:lgpl2.1+)))
+
+(define-public akku
+  (package
+    (name "akku")
+    (version "1.0.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://gitlab.com/akkuscm/akku.git")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256 (base32 "1dm32ws3nshnnscd7k75zswxxs1pp25y2q4k8j5ms241hz47by3c"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:phases (modify-phases %standard-phases
+                  (replace 'bootstrap
+                    (lambda* (#:key outputs #:allow-other-keys)
+                      (for-each patch-shebang
+                                '("bootstrap"
+                                  ".akku/env"))
+                      (let* ((home "/tmp")
+                             (datadir (string-append home "/.local/share/akku/")))
+                        (mkdir-p datadir)
+                        (invoke "touch" (string-append datadir "index.db"))
+                        (setenv "HOME" home))
+                      (invoke "./bootstrap")
+                      #t))
+                  (add-after 'install 'wrap-executables
+                    (lambda* (#:key outputs inputs #:allow-other-keys)
+                      (let ((out (assoc-ref outputs "out"))
+                            (curl (assoc-ref inputs "curl")))
+                        (wrap-program (string-append out "/bin/akku")
+                          `("LD_LIBRARY_PATH" ":" prefix (,(string-append curl "/lib"))))
+                        #t))))))
+    (native-inputs
+     `(("which" ,which)
+       ("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("guile" ,guile-3.0)
+       ("curl" ,curl)))
+    (home-page "https://akkuscm.org/")
+    (synopsis "Language package manager for Scheme")
+    (description
+     "Akku.scm is a project-based language package manager for R6RS and R7RS Scheme.
+It is mainly meant for programmers who develop portable programs or libraries in Scheme,
+but could potentially work for end-users of those programs.  It also has a translator
+from R7RS, which allows most R7RS code to run on R6RS implementations.")
+    (license license:gpl3+)))
diff --git a/gnu/packages/pantheon.scm b/gnu/packages/pantheon.scm
index aa7074827e..249c27e4db 100644
--- a/gnu/packages/pantheon.scm
+++ b/gnu/packages/pantheon.scm
@@ -37,7 +37,7 @@
 (define-public granite
   (package
     (name "granite")
-    (version "5.4.0")
+    (version "5.5.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -46,7 +46,7 @@
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0acicv3f9gksb352v88lwap8ailjsxdrfknl2xql7blasbjzl2q0"))))
+                "13qfhq8xndikk6kmybibs6a4ddyp6mhvbsp2yy4qr7aiiyxf7mna"))))
     (build-system meson-build-system)
     (arguments
      `(#:phases
diff --git a/gnu/packages/parallel.scm b/gnu/packages/parallel.scm
index 4e97496d37..fde19ced92 100644
--- a/gnu/packages/parallel.scm
+++ b/gnu/packages/parallel.scm
@@ -1,15 +1,15 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2013, 2014, 2020 Eric Bavier <bavier@posteo.net>
 ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
-;;; Copyright © 2015, 2016, 2017, 2018, 2020 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2015, 2016, 2017, 2018, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016 Pjotr Prins <pjotr.guix@thebird.nl>
 ;;; Copyright © 2016 Andreas Enge <andreas@enge.fr>
-;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2016, 2020 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
 ;;; Copyright © 2017, 2018 Rutger Helling <rhelling@mykolab.com>
 ;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
-;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2019, 2020 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2020 Roel Janssen <roel@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -55,14 +55,14 @@
 (define-public parallel
   (package
     (name "parallel")
-    (version "20200722")
+    (version "20201222")
     (source
      (origin
       (method url-fetch)
       (uri (string-append "mirror://gnu/parallel/parallel-"
                           version ".tar.bz2"))
       (sha256
-       (base32 "0vqd8nhf4lkvbfy7nnibxjkpzpfandpklqm0hrix5vki5x7x80a8"))))
+       (base32 "13kxg2vmy20ciiv1gp96g33bmvma1nh5d66jdix1fqj6xjaizr5n"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
@@ -108,7 +108,7 @@ and they are executed on lists of files, hosts, users or other items.")
 (define-public slurm
   (package
    (name "slurm")
-   (version "19.05.3-2")
+   (version "20.11.2")
    (source (origin
             (method url-fetch)
             (uri (string-append
@@ -116,7 +116,7 @@ and they are executed on lists of files, hosts, users or other items.")
                   version ".tar.bz2"))
             (sha256
              (base32
-              "0qj4blfymrd2ry2qmb58l3jbr4jwygc3adcfw7my27rippcijlyc"))
+              "15h2vs58apgdz02ijgr46090vjyaa81qcm76mm6fxlvkkfd4pyxp"))
             (modules '((guix build utils)))
             (snippet
              '(begin
@@ -140,19 +140,19 @@ and they are executed on lists of files, hosts, users or other items.")
                 #t))))
    ;; FIXME: More optional inputs could be added,
    ;; in particular mysql and gtk+.
-   (inputs `(("expect" ,expect)
-             ("freeipmi" ,freeipmi)
+   (inputs `(("freeipmi" ,freeipmi)
              ("hwloc" ,hwloc-2 "lib")
              ("json-c" ,json-c)
              ("linux-pam" , linux-pam)
              ("munge" ,munge)
              ("numactl" ,numactl)
-             ("perl" ,perl)
-             ("python" ,python-wrapper)
              ("readline" ,readline)))
    (native-inputs
     `(("autoconf" ,autoconf)
-      ("pkg-config" ,pkg-config)))
+      ("expect" ,expect)
+      ("perl" ,perl)
+      ("pkg-config" ,pkg-config)
+      ("python" ,python-wrapper)))
    (build-system gnu-build-system)
    (arguments
     `(#:configure-flags
@@ -190,6 +190,55 @@ by managing a queue of pending work.")
                   license:zlib        ; src/common/strnatcmp.c
                   license:gpl2+))))   ; the rest, often with OpenSSL exception
 
+;; The SLURM client/daemon protocol and file format changes from time to time
+;; in incompatible ways, as noted in
+;; <https://slurm.schedmd.com/troubleshoot.html#network>.  Thus, keep older
+;; releases here.  See also <https://issues.guix.gnu.org/44387>.
+
+(define-public slurm-20.02
+  (package
+    (inherit slurm)
+    (version "20.02.6-1")
+    (source (origin
+              (inherit (package-source slurm))
+              (method url-fetch)
+              (uri (string-append
+                    "https://download.schedmd.com/slurm/slurm-"
+                    version ".tar.bz2"))
+              (sha256
+               (base32
+                "0qj4blfymrd2ry2qmb58l3jbr4jwygc3adcfw7my27rippcijlyc"))))))
+
+
+(define-public slurm-19.05
+  (package
+    (inherit slurm)
+    (version "19.05.3-2")
+    (source (origin
+              (inherit (package-source slurm))
+              (method url-fetch)
+              (uri (string-append
+                    "https://download.schedmd.com/slurm/slurm-"
+                    version ".tar.bz2"))
+              (sha256
+               (base32
+                "0qj4blfymrd2ry2qmb58l3jbr4jwygc3adcfw7my27rippcijlyc"))))))
+
+;; Same as Debian 10
+(define-public slurm-18.08
+  (package
+    (inherit slurm)
+    (version "18.08.5-2")
+    (source
+      (origin
+        (inherit (package-source slurm))
+        (uri (string-append
+               "https://download.schedmd.com/slurm/slurm-"
+               version ".tar.bz2"))
+        (sha256
+         (base32
+          "0xrj12nmkhvhzi7cyh4yvdm8qa51ji3j82mgpq7sx87g30f9spn4"))))))
+
 (define-public slurm-drmaa
   (package
     (name "slurm-drmaa")
diff --git a/gnu/packages/pascal.scm b/gnu/packages/pascal.scm
new file mode 100644
index 0000000000..88bc354269
--- /dev/null
+++ b/gnu/packages/pascal.scm
@@ -0,0 +1,279 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2017 Kei Kebreau <address@hidden>
+;;; Copyright © 2020 Eric Bavier <bavier@posteo.net>
+;;;
+;;; 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 pascal)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix packages)
+  #:use-module (guix download)
+  #:use-module (guix utils)
+  #:use-module (guix build-system gnu)
+  #:use-module (gnu packages)
+  #:use-module (gnu packages base)
+  #:use-module (gnu packages bootstrap)
+  #:use-module (gnu packages commencement)
+  #:use-module (gnu packages compression)
+  #:use-module (gnu packages gcc)
+  #:use-module (gnu packages ncurses)
+  #:use-module (gnu packages perl)
+  #:use-module (gnu packages xml)
+  #:use-module (ice-9 match))
+
+(define fpc-bootstrap-i386-3.0.4
+  (origin
+    (method url-fetch)
+    (uri
+     "mirror://sourceforge/freepascal/Linux/3.0.4/fpc-3.0.4.i386-linux.tar")
+    (sha256
+     (base32
+      "05xfgxa6vb0y2ryfsgn21m2kwaxhci6l2zxa3akvlnqminjsjvda"))))
+
+(define fpc-bootstrap-x86_64-3.0.4
+  (origin
+    (method url-fetch)
+    (uri
+     "mirror://sourceforge/freepascal/Linux/3.0.4/fpc-3.0.4.x86_64-linux.tar")
+    (sha256
+     (base32
+      "0xzxh689iyjfmkqkhcqg9plrjmdx82hbyywyyc7jm0n92fpmp5ky"))))
+
+(define-public fpc
+  (package
+    (name "fpc")
+    (version "3.2.0")                   ; Update release date below!
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://sourceforge/freepascal/Source/"
+                                  version "/fpcbuild-" version ".tar.gz"))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0f38glyn3ffmqww432snhx2b8wyrq0yj1njkp4zh56lqrvm19fgr"))
+              (patches (search-patches "fpc-reproducibility.patch"))
+              (modules '((guix build utils)))
+              (snippet
+               '(begin
+                  (rename-file "install/doc" "install-doc")
+                  (rename-file "install/man" "install-man")
+                  ;; Contains executables--some of them created by
+                  ;; closed-source compilers.
+                  (delete-file-recursively "install")
+                  (mkdir-p "install")
+                  (rename-file "install-doc" "install/doc")
+                  (rename-file "install-man" "install/man")
+                  (delete-file "fpcsrc/tests/utils/dosbox/exitcode.exe")
+                  #t))))
+    (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)))
+    (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)))))
+    (arguments
+     `(#:tests? #f ; no tests available
+       #:phases
+       (let ((fpc-bootstrap-path
+              (string-append (getcwd) "/" ,name "-" ,version "/fpc-bin"))
+             (arch ,(match (or (%current-target-system)
+                               (%current-system))
+                     ("i686-linux" "i386")
+                     ("x86_64-linux" "x86_64")
+                     (_ "unknown"))))
+         (modify-phases %standard-phases
+           (add-after 'unpack 'unpack-bin
+             (lambda* (#:key inputs #:allow-other-keys)
+               (mkdir-p fpc-bootstrap-path)
+               (with-directory-excursion fpc-bootstrap-path
+                 (invoke "tar" "xvf" (assoc-ref inputs "fpc-binary")))))
+           (add-after 'unpack-bin 'install-bin
+             (lambda* (#:key inputs #:allow-other-keys)
+               (with-directory-excursion
+                 (string-append fpc-bootstrap-path "/fpc-3.0.4."
+                                arch "-linux")
+                 (let ((binary-tarball
+                        (string-append "binary." arch "-linux.tar"))
+                       (compiler-tarball
+                        (string-append "base." arch "-linux.tar.gz"))
+                       (fpcmake-tarball
+                        (string-append "utils-fpcm." arch "-linux.tar.gz")))
+                   ;; Only the base compiler and fpcmake are needed.
+                   (invoke "tar" "xvf" binary-tarball compiler-tarball
+                           fpcmake-tarball)
+                   (invoke "tar" "xvf" compiler-tarball "-C..")
+                   (invoke "tar" "xvf" fpcmake-tarball "-C..")))))
+           (add-after 'patch-source-shebangs 'patch-inline-shebangs
+             (lambda _
+               (substitute* "fpcsrc/compiler/cscript.pas"
+                 (("#!/bin/sh") (string-append "#!" (which "sh"))))
+               #t))
+           (add-before 'build 'patch-release-date
+             (lambda _                  ; reproducibility
+               (substitute* (list "fpcdocs/prog.tex"
+                                  "fpcsrc/packages/amunits/examples/sortdemo.pas"
+                                  "fpcsrc/packages/libogcfpc/src/ogc/libversion.inc"
+                                  "fpcsrc/utils/fpcres/fpcjres.pas"
+                                  "fpcsrc/utils/fpcres/fpcres.pas"
+                                  "fpcsrc/utils/fpcm/fpcmmain.pp"
+                                  "fpcsrc/utils/fpcreslipo/fpcreslipo.pp"
+                                  "fpcsrc/compiler/version.pas")
+                 (("\\{\\$I(NCLUDE)? %DATE%\\}") "'2020/06/19'"))
+               #t))
+           (replace 'configure
+             (lambda* (#:key inputs outputs #:allow-other-keys)
+               (substitute* "fpcsrc/compiler/systems/t_linux.pas"
+                 ;; Point to the current glibc dynamic linker.
+                 (("/lib/ld-linux.so.2")
+                  (string-append (assoc-ref inputs "libc")
+                                 ,(glibc-dynamic-linker)))
+                 (("/lib64/ld-linux-x86-64.so.2")
+                  (string-append (assoc-ref inputs "libc")
+                                 ,(glibc-dynamic-linker)))
+                 ; TODO: /lib/ld-linux-armhf.so.3
+                 ; TODO: /lib/ld-linux-aarch64.so.1
+                 ; TODO: /lib64/ld64.so.2
+                 ;; Add glibc to ld's search path.
+                 (("if \\(isdll\\) then")
+                  (string-append
+                   "Add('SEARCH_DIR(\""
+                   (assoc-ref inputs "libc") "/lib"
+                   "\")');\n"
+                   "if (isdll) then")))
+               (substitute* "fpcsrc/compiler/options.pas"
+                 (("exepath\\+'../etc/'")
+                  (string-append "'" (assoc-ref outputs "out") "/etc'")))
+               #t))
+           (replace 'build
+             (lambda* (#:key inputs #:allow-other-keys)
+               (let* ((fpc-bin (string-append fpc-bootstrap-path "/bin"))
+                      (fpc (string-append fpc-bin "/fpc"))
+                      (fpcmake (string-append fpc-bin "/fpcmake")))
+                 ;; The fpc binary needs to run the ppc[arch] binary (which
+                 ;; does the actual compiling) in this directory.
+                 (setenv "PATH"
+                        (string-append (getenv "PATH") ":"
+                                       fpc-bootstrap-path
+                                       "/lib/fpc/3.0.4"))
+                 (setenv "FPC" fpc)
+                 ;; Specify target operating system using "-T" option
+                 (invoke fpcmake (string-append "-T" arch "-linux"))
+                 (invoke "make" "build" "NOGDB=1"))))
+           (replace 'install
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let* ((out (assoc-ref outputs "out"))
+                     ;; This is the suffix of the ppc[arch] binary.
+                     (suffix (if (string= arch "x86_64")
+                                 "x64"
+                                 "386"))
+                     (ppc (string-append "ppc" suffix)))
+                 (invoke "make" "install" "NOGDB=1"
+                         (string-append "INSTALL_PREFIX=" out))
+                 ;; Remove files that fail RUNPATH validation.
+                 ;; TODO: Fix it instead.
+                 (delete-file (string-append out "/lib/libpas2jslib.so"))
+                 ;; Add a symlink to the ppc[arch] binary so fpc works.
+                 (symlink (string-append out "/lib/fpc/" ,version "/" ppc)
+                          (string-append out "/bin/" ppc))
+                 ;; Install the example configuration file.
+                 (mkdir (string-append out "/etc"))
+                 (invoke
+                   (string-append out "/lib/fpc/" ,version "/samplecfg")
+                   (string-append out "/lib/fpc/" ,version)
+                   (string-append out "/etc")))))
+           (add-after 'install 'wrap
+             (lambda* (#:key inputs outputs #:allow-other-keys)
+               (let* ((out (assoc-ref outputs "out"))
+                      (fpc (string-append out "/bin/fpc"))
+                      (ld (assoc-ref inputs "ld-wrapper"))
+                      (glibc (assoc-ref inputs "glibc")))
+                 (wrap-program fpc
+                   `("PATH" ":" prefix (,(string-append ld "/bin")))
+                   `("LIBRARY_PATH" ":" prefix (,(string-append glibc "/lib"))))
+                 #t)))))))
+    ;; 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")
+    (synopsis "The Free Pascal Compiler")
+    (description
+     "Free Pascal is a professional Object Pascal compiler.  It supports the
+Turbo Pascal 7.0, Delphi, and Mac Pascal dialects.  Free Pascal also supports
+many useful extensions to the Pascal programming language.")
+    ;; The majority of the software included is licensed under the GPLv2
+    ;; or later.  For more licensing details, see the appropriate files in
+    ;; the install/doc directory of the source distribution.
+    (license license:gpl2+)))
+
+(define-public p2c
+  (package
+    (name "p2c")
+    (version "2.01")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://alum.mit.edu/www/toms/p2c/p2c-"
+                                  version ".tar.gz"))
+              (sha256
+               (base32
+                "03x72lv6jrvikbrpz4kfq1xp61l2jw5ki6capib71lxs65zndajn"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:make-flags
+       (let ((out (assoc-ref %outputs "out")))
+         (list (string-append "CC=" ,(cc-for-target))
+               (string-append "HOMEDIR=" out "/lib/p2c")
+               (string-append "INCDIR=" out "/include/p2c")
+               (string-append "BINDIR=" out "/bin")
+               (string-append "LIBDIR=" out "/lib")
+               (string-append "MANDIR=" out "/share/man/man1")
+               "MANFILE=p2c.man.inst"))
+       #:test-target "test"
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (add-before 'build 'mkdir
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (mkdir-p (string-append out "/share/man"))
+               (mkdir-p (string-append out "/lib"))
+               (mkdir-p (string-append out "/bin"))
+               (mkdir-p (string-append out "/include")))
+             #t))
+         (add-before 'build 'chdir
+           (lambda* (#:key make-flags #:allow-other-keys)
+             (chdir "src")
+             #t)))))
+    (native-inputs
+     `(("perl" ,perl)
+       ("which" ,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
+Pascal source code to C source code, and @command{p2cc}, a compiler for
+Pascal programs.")
+    (home-page "http://users.fred.net/tds/lab/p2c/")
+    (license license:gpl2+)))
diff --git a/gnu/packages/password-utils.scm b/gnu/packages/password-utils.scm
index ae211d8cd0..2053457375 100644
--- a/gnu/packages/password-utils.scm
+++ b/gnu/packages/password-utils.scm
@@ -9,7 +9,7 @@
 ;;; Copyright © 2016, 2019, 2020 Alex Griffin <a@ajgrf.com>
 ;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2017, 2018 Clément Lassieur <clement@lassieur.org>
-;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2017 Jelle Licht <jlicht@fsfe.org>
 ;;; Copyright © 2017, 2019 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2017, 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
@@ -28,6 +28,7 @@
 ;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
 ;;; Copyright © 2020 Jean-Baptiste Note <jean-baptiste.note@m4x.org>
 ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
+;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -122,7 +123,7 @@ human.")
 (define-public keepassxc
   (package
     (name "keepassxc")
-    (version "2.6.0")
+    (version "2.6.3")
     (source
      (origin
        (method url-fetch)
@@ -130,7 +131,7 @@ human.")
                            "/releases/download/" version "/keepassxc-"
                            version "-src.tar.xz"))
        (sha256
-        (base32 "0fpx6pq336g1xwjl5yzvsky6vqvaa38zb8pwkgswph9slybkvlnh"))))
+        (base32 "1lgp20597dzj8qn8a71x3a6b549rvqybqx4haywwb09qiznvdq77"))))
     (build-system cmake-build-system)
     (arguments
      '(#:configure-flags '("-DWITH_XC_ALL=YES"
@@ -210,7 +211,7 @@ algorithms AES or Twofish.")
 (define-public pwsafe
   (package
     (name "pwsafe")
-    (version "3.52.0")
+    (version "3.54.1")
     (home-page "https://www.pwsafe.org/")
     (source
      (origin
@@ -219,7 +220,7 @@ algorithms AES or Twofish.")
              (url "https://github.com/pwsafe/pwsafe")
              (commit version)))
        (sha256
-        (base32 "1ka7xsl63v0559fzf3pwc1iqr37gwr4vq5iaxa2hzar2g28hsxvh"))
+        (base32 "0d51dlw98mv23nwb0b5jyji8gnb9f5cnig6kivfljl97lmr6lhvf"))
        (file-name (git-file-name name version))))
     (build-system cmake-build-system)
     (native-inputs
@@ -306,15 +307,19 @@ applications, there is xclip integration." )
 (define-public yapet
   (package
     (name "yapet")
-    (version "2.3")
+    (version "2.5")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://yapet.guengel.ch/downloads/yapet-"
                            version ".tar.xz"))
        (sha256
-        (base32 "1fl4s7v1psl52ndd6i7716i9f493aj8ipl6lgmraadnn5h26l3pm"))))
+        (base32 "0hpibsdry259cmvps35isr6jn9cd9fsk3r1h0ppjx9zxfrpqwldg"))))
     (build-system gnu-build-system)
+    (arguments
+     `(#:configure-flags
+       (list (string-append "--docdir=" (assoc-ref %outputs "out")
+                            "/share/doc",name "-" ,version))))
     (inputs
      `(("argon2" ,argon2)
        ("ncurses" ,ncurses)
@@ -366,7 +371,7 @@ them out, at the source.")
 (define-public libpwquality
   (package
     (name "libpwquality")
-    (version "1.4.2")
+    (version "1.4.4")
     (source (origin
               (method url-fetch)
               (uri (list
@@ -378,11 +383,20 @@ them out, at the source.")
                                    "libpwquality-" version ".tar.bz2")))
               (sha256
                (base32
-                "13hw532fmzc5xjpy75d74rlfdlxf2a8ibb4hyy9c0s92wsgf0qsj"))))
+                "0id5a8bi8xnjg11g9vzrl2xbpx65mfxclxcvis7zx1v8vhisyfyl"))))
     (build-system gnu-build-system)
     (arguments
-     ;; XXX: have RUNPATH issue.
-     '(#:configure-flags '("--disable-python-bindings")))
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-before 'configure 'set-LDFLAGS
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (setenv "LDFLAGS"
+                     (string-append
+                      "-Wl,-rpath="
+                      (assoc-ref outputs "out") "/lib"))
+             #t)))))
+    (native-inputs
+     `(("python" ,python-wrapper)))
     (inputs
      `(("cracklib" ,cracklib)))
     (synopsis "Password quality checker")
@@ -719,7 +733,7 @@ using password-store through rofi interface:
 (define-public browserpass-native
   (package
     (name "browserpass-native")
-    (version "3.0.6")
+    (version "3.0.7")
     (source
      (origin
        (method git-fetch)
@@ -729,7 +743,7 @@ using password-store through rofi interface:
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "0q3bsla07zjl6i69nj1axbkg2ia89pvh0jg6nlqgbm2kpzzbn0pz"))))
+         "1jkjslbbac49xjyjkc2b07phdm3i64z40kh6h55cl22dxjmpp1nb"))))
     (build-system go-build-system)
     (arguments
      `(#:import-path "github.com/browserpass/browserpass-native"
@@ -890,7 +904,7 @@ between hosts and entries in the password store.")
        `(("gmp" ,gmp)
          ("libpcap" ,libpcap)
          ("nss" ,nss)
-         ("openssl" ,openssl-1.0)
+         ("openssl" ,openssl)
          ("python" ,python-2)           ; For "python" and "python2" shebangs
          ("ruby" ,ruby)                 ; For genincstats.rb
          ("zlib" ,zlib)))
diff --git a/gnu/packages/patches/alsa-modular-synth-fix-vocoder.patch b/gnu/packages/patches/alsa-modular-synth-fix-vocoder.patch
deleted file mode 100644
index 33a68a1dd8..0000000000
--- a/gnu/packages/patches/alsa-modular-synth-fix-vocoder.patch
+++ /dev/null
@@ -1,522 +0,0 @@
-This patch was taken from Debian.
-https://salsa.debian.org/multimedia-team/ams/-/raw/master/debian/patches/0007-Make-vocoder-module-compatible-to-C-11.patch
-
-From: Guido Scholz <gscholz@users.sourceforge.net>
-Date: Tue, 6 Nov 2018 21:55:38 +0100
-Subject: Make vocoder module compatible to C++11
-
----
- src/m_vocoder.cpp | 218 +++++++++++++++++++++++++++---------------------------
- src/m_vocoder.h   |  31 ++++----
- 2 files changed, 124 insertions(+), 125 deletions(-)
-
-diff --git a/src/m_vocoder.cpp b/src/m_vocoder.cpp
-index 572cf65..371e2cf 100644
---- a/src/m_vocoder.cpp
-+++ b/src/m_vocoder.cpp
-@@ -18,10 +18,6 @@
-   along with ams.  If not, see <http://www.gnu.org/licenses/>.
- */
- 
--#include <stdio.h>
--#include <stdlib.h>
--#include <unistd.h>
--#include <math.h>
- #include <qwidget.h>
- #include <qstring.h>
- #include <qslider.h>
-@@ -36,16 +32,13 @@
- #include "synthdata.h"
- #include "midicheckbox.h"
- #include "midislider.h"
--// For FFTW to be happy we must include complex.h before fftw3.h
--#include <complex.h>
--#include <fftw3.h>
- #include "port.h"
- #include "m_vocoder.h"
- 
- //   Window function - One way to make the FFT behave
- //   and give more continuous results over edge steps.
- 
--float M_vocoder::windowcurve (int windowfunc, int len, int elem, float alpha)
-+float M_vocoder::windowcurve (int windowfunc, unsigned int len, int elem, float alpha)
- {
-   float out;
-   out = 1.0;
-@@ -98,6 +91,7 @@ float M_vocoder::windowcurve (int windowfunc, int len, int elem, float alpha)
-   return (out);
- }
- 
-+
- M_vocoder::M_vocoder(QWidget* parent, int id)
-   : Module(M_type_vocoder, id, 5, parent, tr("FFT Vocoder"))
- {
-@@ -160,6 +154,7 @@ M_vocoder::M_vocoder(QWidget* parent, int id)
-     modbuf[l1] = (float *)malloc( fftsize * sizeof(float));
-     memset( modbuf[l1], 0, fftsize * sizeof(float));
-   }
-+
-   carrbuf = (float **)malloc(synthdata->poly * sizeof(float *));
-   for (l1 = 0; l1 < synthdata->poly; l1++) {
-     carrbuf[l1] = (float *)malloc( fftsize * sizeof(float));
-@@ -175,38 +170,48 @@ M_vocoder::M_vocoder(QWidget* parent, int id)
-     window[l2] = windowcurve (whichwin, fftsize, l2, 0.25);
- 
-   //  FFTW setup stuff
--  carrinforward = (fftw_complex *) fftw_malloc (sizeof (fftw_complex)
--					    * fftsize);
--  carrinbackward = (fftw_complex *) fftw_malloc (sizeof (fftw_complex)
--					     * fftsize);
--  carroutforward = (fftw_complex *) fftw_malloc (sizeof (fftw_complex)
--					     * fftsize);
--  carroutbackward = (fftw_complex *) fftw_malloc (sizeof (fftw_complex)
--					      * fftsize);
--  modinforward = (fftw_complex *) fftw_malloc (sizeof (fftw_complex)
--					    * fftsize);
--  modinbackward = (fftw_complex *) fftw_malloc (sizeof (fftw_complex)
--					     * fftsize);
--  modoutforward = (fftw_complex *) fftw_malloc (sizeof (fftw_complex)
--					     * fftsize);
--  modoutbackward = (fftw_complex *) fftw_malloc (sizeof (fftw_complex)
--					      * fftsize);
--  fftw_set_timelimit (5.0);
--  planmodforward = fftw_plan_dft_1d (fftsize, modinforward,
--				  modoutforward, FFTW_FORWARD, FFTW_MEASURE);
--  planmodbackward = fftw_plan_dft_1d (fftsize, modinbackward,
-- 				  modoutbackward, FFTW_BACKWARD, FFTW_MEASURE);
--  plancarrforward = fftw_plan_dft_1d (fftsize, carrinforward,
--				  carroutforward, FFTW_FORWARD, FFTW_MEASURE);
--  plancarrbackward = fftw_plan_dft_1d (fftsize, carrinbackward,
-- 				  carroutbackward, FFTW_BACKWARD, FFTW_MEASURE);
-+  carrinforward.reserve(fftsize);
-+  carrinbackward.reserve(fftsize);
-+  carroutforward.reserve(fftsize);
-+  carroutbackward.reserve(fftsize);
-+  modinforward.reserve(fftsize);
-+  modinbackward.reserve(fftsize);
-+  modoutforward.reserve(fftsize);
-+  modoutbackward.reserve(fftsize);
-+
-+  fftw_set_timelimit(5.0);
-+
-+  planmodforward = fftw_plan_dft_1d(fftsize,
-+          reinterpret_cast<fftw_complex*> (modinforward.data()),
-+          reinterpret_cast<fftw_complex*> (modoutforward.data()),
-+          FFTW_FORWARD, FFTW_MEASURE);
-+
-+  planmodbackward = fftw_plan_dft_1d(fftsize,
-+          reinterpret_cast<fftw_complex*> (modinbackward.data()),
-+          reinterpret_cast<fftw_complex*> (modoutbackward.data()),
-+          FFTW_BACKWARD, FFTW_MEASURE);
-+
-+  plancarrforward = fftw_plan_dft_1d(fftsize,
-+          reinterpret_cast<fftw_complex*> (carrinforward.data()),
-+          reinterpret_cast<fftw_complex*> (carroutforward.data()),
-+          FFTW_FORWARD, FFTW_MEASURE);
-+
-+  plancarrbackward = fftw_plan_dft_1d(fftsize,
-+          reinterpret_cast<fftw_complex*> (carrinbackward.data()),
-+          reinterpret_cast<fftw_complex*> (carroutbackward.data()),
-+          FFTW_BACKWARD, FFTW_MEASURE);
- }
- 
-+
- M_vocoder::~M_vocoder() {
- 
--  int l1;
-+  //    Clean up FFTW stuff.
-+  fftw_destroy_plan (plancarrforward);
-+  fftw_destroy_plan (plancarrbackward);
-+  fftw_destroy_plan (planmodforward);
-+  fftw_destroy_plan (planmodbackward);
- 
--  for (l1 = 0; l1 < synthdata->poly; l1++) {
-+  for (int l1 = 0; l1 < synthdata->poly; l1++) {
-     free(modbuf[l1]);
-     free(carrbuf[l1]);
-   }
-@@ -215,29 +220,14 @@ M_vocoder::~M_vocoder() {
-   free (window);
-   free (modmap);
-   free (armodmap);
--
--  //#define FFTW_CLEANUP
--#ifdef FFTW_CLEANUP
--  //    Clean up FFTW stuff.
--  fftw_destroy_plan (plancarrforward);
--  fftw_destroy_plan (plancarrbackward);
--  fftw_destroy_plan (planmodforward);
--  fftw_destroy_plan (planmodbackward);
--  fftw_free (carrinforward);
--  fftw_free (carrinbackward);
--  fftw_free (carroutforward);
--  fftw_free (carroutbackward);
--  fftw_free (modinforward);
--  fftw_free (modinbackward);
--  fftw_free (modoutforward);
--  fftw_free (modoutbackward);
--#endif
- }
- 
-+
- void M_vocoder::generateCycle() {
- 
-   int l1;  //  l1 indexes along polyphony.
-   unsigned int l2;  // l2 indexes along the cycle
-+  const std::complex<double> I(0.0, 1.0);
- 
-   inModulator = port_M_modulator->getinputdata();
-   inPitchShift = port_M_pitchshift->getinputdata();
-@@ -272,7 +262,7 @@ void M_vocoder::generateCycle() {
-   //   Did the user change the FFT windowing function?
-   if (myFFTWindowFunc != whichwin) {
-     whichwin = myFFTWindowFunc;
--    for (l2 = 0; l2 < (unsigned int) fftsize; l2++)
-+    for (l2 = 0; l2 < fftsize; l2++)
-       window[l2] = windowcurve (whichwin, fftsize, l2, 0.25);
-   }
- 
-@@ -294,7 +284,7 @@ void M_vocoder::generateCycle() {
-     }
- 
-     //    window the input buffer to modinforward
--    for (l2 = 0; l2 < (unsigned int)fftsize ; l2++) {
-+    for (l2 = 0; l2 < fftsize ; l2++) {
-       modinforward[l2] = modbuf[l1][l2] * window[l2];
-     }
- 
-@@ -310,17 +300,18 @@ void M_vocoder::generateCycle() {
-     fftw_execute (planmodforward);
- 
-     //    copy the FFT of the modulator to modinbackward.
--    for (l2 = 0; l2 < (unsigned int)fftsize; l2++)
--      modinbackward[l2] = modoutforward[l2];
-+    //for (l2 = 0; l2 < fftsize; l2++)
-+    //  modinbackward[l2] = modoutforward[l2];
-+    modinbackward = modoutforward;
- 
-     //     Send the FFT of the modulator to the output for giggles
-     //     and get an approximation of the first harmonic too.
-     float firstharmonicval;
-     int firstharmonicindex;
-     firstharmonicval = 0.0;
--    firstharmonicindex = 1.0;
-+    firstharmonicindex = 1;
-     for (l2 = 1; l2 < (unsigned int) synthdata->cyclesize; l2++) {
--      data[2][l1][l2] = logf(fabs (creal (modoutforward[l2])) + 1.0);
-+      data[2][l1][l2] = logf(fabs(modoutforward[l2].real()) + 1.0);
-       if (data[2][l1][l2] > firstharmonicval) {
- 	firstharmonicindex = l2;
- 	firstharmonicval  = data[2][l1][l2] ;
-@@ -333,35 +324,38 @@ void M_vocoder::generateCycle() {
- 
-     //   intermediate frequency-domain munging of modulator
-     //   Frequency (additive, Bode-style) shifting first
--    for (l2 = 0; l2 < (unsigned int)fftsize; l2++)
--      modinbackward[l2] = 0;
-+    for (l2 = 0; l2 < fftsize; l2++)
-+      modinbackward[l2] = 0.0;
-+
-     int lclfrq;
--    for (l2 = 0; l2 < (unsigned int)fftsize/2; l2++) {
-+    for (l2 = 0; l2 < fftsize/2; l2++) {
-       //   positive frequencies (first half) of the FFT result
-       lclfrq = l2 + (int)freqshift + vcfreqshift * inFreqShift[l1][0];
-       lclfrq = lclfrq > 0 ? lclfrq : 0;
--      lclfrq = lclfrq < ((fftsize/2)-1) ? lclfrq : (fftsize/2)-1;
-+      lclfrq = lclfrq < (int)((fftsize/2)-1) ? lclfrq : (fftsize/2)-1;
-       modinbackward [lclfrq] = modoutforward [l2];
-       //   Negative frequencies (second half of the fft result)
--      modinbackward [fftsize - lclfrq] = modoutforward [ fftsize - l2];
-+      modinbackward [fftsize - lclfrq] = modoutforward [fftsize - l2];
-     }
- 
--    //    Pitchshifting (multiplicative, harmonic-retaining) shifting.
--    //    Note that we reuse the modoutforward as working space
--    for (l2 = 0; l2 < (unsigned int) fftsize; l2++) {
--      modoutforward[l2] = modinbackward[l2];
--    };
--    for (l2 = 0; l2 < (unsigned int)fftsize; l2++)
--      modinbackward[l2] = 0;
-+    // Pitchshifting (multiplicative, harmonic-retaining) shifting.
-+    // Note that we reuse the modoutforward as working space
-+    //for (l2 = 0; l2 < fftsize; l2++) {
-+    //  modoutforward[l2] = modinbackward[l2];
-+    //};
-+    modoutforward = modinbackward;
-+
-+    for (l2 = 0; l2 < fftsize; l2++)
-+      modinbackward[l2] = 0.0;
- 
-     float psmod, psfactor;
-     psmod = (pitchshift + vcpitch * inPitchShift[l1][0]);
-     psfactor = pow (2.0, psmod);
--    for (l2 = 0; l2 < (unsigned int)fftsize/2; l2++) {
-+    for (l2 = 0; l2 < fftsize/2; l2++) {
-       //   positive frequencies (first half) of the FFT result
-       lclfrq = l2 * psfactor;
-       lclfrq = lclfrq > 0 ? lclfrq : 0;
--      lclfrq = lclfrq < ((fftsize/2)-1) ? lclfrq : (fftsize/2)-1;
-+      lclfrq = lclfrq < (int)((fftsize/2)-1) ? lclfrq : (fftsize/2)-1;
-       //   Old way to pitch shift: just move the bucket.  But this puts
-       //   nulls wherever the energy is split between two buckets with
-       //   a 180 degree phase difference.
-@@ -375,12 +369,12 @@ void M_vocoder::generateCycle() {
- 	  //   Better way: move freq. bin, multiply angle by octave motion.
- 	  //
- 	  modinbackward[lclfrq] +=
--	    cabs (modoutforward [l2])
--	    * cexp (I * ( carg (modoutforward [l2])
-+	    std::abs(modoutforward[l2])
-+	    * std::exp (I * ( std::arg (modoutforward [l2])
- 			  + (l2 * phaseshift * psfactor)));
- 	  modinbackward[fftsize - lclfrq] +=
--	    cabs (modoutforward [ fftsize - l2])
--	    * cexp (I * ( carg (modoutforward [ fftsize - l2])
-+	    std::abs (modoutforward [ fftsize - l2])
-+	    * std::exp (I * ( std::arg (modoutforward [ fftsize - l2])
- 			  + (l2 * phaseshift * psfactor)));
- 	};
-     }
-@@ -389,9 +383,9 @@ void M_vocoder::generateCycle() {
-     fftw_execute (planmodbackward);
- 
-     //   renormalize the time-domain modulator output
--    for (l2 = 0; l2 < (unsigned)fftsize; l2++) {
--      modoutbackward [l2] = modoutbackward[l2] / float (fftsize) ;
--      modoutbackward [l2] = modoutbackward[l2] / window[l2];
-+    for (l2 = 0; l2 < fftsize; l2++) {
-+      modoutbackward [l2] = modoutbackward[l2] / (double) fftsize;
-+      modoutbackward [l2] = modoutbackward[l2] / (double) window[l2];
-     }
- 
-     unsigned int i;
-@@ -400,13 +394,11 @@ void M_vocoder::generateCycle() {
- 
- 
-     //     Splicing the new output to the results
--    if (dynsplice == 0.0)
--      {
-+    if (dynsplice == 0.0) {
- 	//   output it as the altered modulator.
- 	for (l2 = 0; l2 < synthdata->cyclesize; l2++) {
--	  data[0][l1][l2] = creal ( modoutbackward [l2 +
--						    fftsize/2 -
--						    synthdata->cyclesize/2 ]);
-+	  data[0][l1][l2] =
-+              modoutbackward[l2 + fftsize/2 - synthdata->cyclesize/2].real();
- 	}
- 	clomatch_index = fftsize - synthdata->cyclesize;
-       }
-@@ -421,18 +413,21 @@ void M_vocoder::generateCycle() {
- 	float tval, dtval;
- 	int searchstart;
- 	float spliceval, dspliceval;
--	searchstart = fftsize/2 - synthdata->cyclesize;
--	if (searchstart < 1) searchstart = 1;
--	clomatch_index = searchstart;
-+
-+        searchstart = fftsize/2 - synthdata->cyclesize;
-+        if (searchstart < 1)
-+            searchstart = 1;
-+
-+        clomatch_index = searchstart;
- 	spliceval = data[0][l1][synthdata->cyclesize - 1];
- 	dspliceval = spliceval - data[0][l1][synthdata->cyclesize - 2];
--	clov_sofar= fabs(creal(modoutbackward[clomatch_index])-spliceval );
-+	clov_sofar= fabs(modoutbackward[clomatch_index].real()-spliceval);
- 	for (l2 = searchstart;
- 	     l2 < (searchstart + synthdata->cyclesize);
- 	     l2++)
- 	  {
--	    tval = creal (modoutbackward[l2]);
--	    dtval = tval - creal (modoutbackward [l2-1]);
-+	    tval = modoutbackward[l2].real();
-+	    dtval = tval - modoutbackward [l2-1].real();
- 	    if (
- 		((fabs (tval - spliceval )) < clov_sofar )
- 		&& ((dtval * dspliceval ) >= 0)
-@@ -445,15 +440,15 @@ void M_vocoder::generateCycle() {
- 	  };
- 	//  fprintf (stderr, "%d %f %f ",
- 	//      clomatch_index, clov_sofar, clodv_sofar);
--	
-+
- 	//   What's our residual error, so that we can splice this
- 	//   with minimal "click"?
--	residual = + spliceval - creal( modoutbackward[clomatch_index]);
-+	residual = + spliceval - modoutbackward[clomatch_index].real();
- 
- 	//  Move our wave, with the best match so far established, to
- 	//   the output buffer area.
- 	for (l2 = 0; l2 < synthdata->cyclesize; l2++) {
--	  data[0][l1][l2] = creal ( modoutbackward [ clomatch_index + l2])
-+	  data[0][l1][l2] = modoutbackward[clomatch_index + l2].real()
- 	    + ((1.0 - (float(l2) / float(synthdata->cyclesize))) * residual);
- 	};
- 
-@@ -466,17 +461,18 @@ void M_vocoder::generateCycle() {
-     for (l2 = 0; l2 < fftsize - synthdata->cyclesize; l2++) {
-       carrbuf [l1][l2] = carrbuf [l1][l2 + synthdata->cyclesize];
-     }
-+
-     for (l2 = 0; l2 < synthdata->cyclesize; l2++) {
-       carrbuf [l1][l2 + fftsize - synthdata->cyclesize] = inCarrier[l1][l2];
-     }
- 
--    for (l2 = 0; l2 <  unsigned (fftsize); l2++) {
-+    for (l2 = 0; l2 < fftsize; l2++) {
-       carrinforward [l2] = carrbuf [l1][l2] * window[l2];
-     }
- 
-     fftw_execute (plancarrforward);
- 
--    for (l2 = 0; l2 < (unsigned) fftsize; l2++) {
-+    for (l2 = 0; l2 < fftsize; l2++) {
-       carrinbackward[l2] = carroutforward[l2];
-     };
- 
-@@ -486,34 +482,37 @@ void M_vocoder::generateCycle() {
-     //   Group the modulator into channels, and multipy the channels
-     //   over the carrier.
- 
--    int localchannels;
--    localchannels = channels + vcchannels * inChannels[l1][0];
--    if (localchannels < 1) localchannels = 1;
--    if (localchannels > fftsize - 1) localchannels = fftsize - 1;
--    for (l2 = 0; l2 < (unsigned) fftsize; l2++) {
-+    unsigned int localchannels = channels + vcchannels * inChannels[l1][0];
-+    if (localchannels < 1)
-+        localchannels = 1;
-+
-+    if (localchannels > fftsize - 1)
-+        localchannels = fftsize - 1;
-+
-+    for (l2 = 0; l2 < fftsize; l2++) {
-       modmap[l2] = 0;
-       //       initial conditions...
-       if (l2 == 0)
- 	for (i = 0; i < channels; i++)
--	  modmap[l2] += cabs (modoutforward[l2 + i]);
-+	  modmap[l2] += std::abs(modoutforward[l2 + i]);
-       else
- 	modmap [l2] = modmap[l2 - 1];
- 
-       //    add the heads, subtract the tails
-       i = l2 + channels;
--      if (l2 < (unsigned)fftsize - 2)
--	modmap[l2] += cabs( modoutforward [i] );
-+      if (l2 < fftsize - 2)
-+	modmap[l2] += std::abs(modoutforward[i]);
-       i = l2 - channels;
-       if (l2 >= channels)
--	modmap[l2] -= cabs( modoutforward [i] );
-+	modmap[l2] -= std::abs(modoutforward[i]);
-     }
- 
-     //   Normalize the modmap
--    for (l2 = 0; l2 < (unsigned) fftsize; l2++)
-+    for (l2 = 0; l2 < fftsize; l2++)
-       modmap[l2] = modmap[l2] / localchannels;
- 
-     //   Do attack/release
--    for (l2 = 0; l2 < (unsigned) fftsize; l2++) {
-+    for (l2 = 0; l2 < fftsize; l2++) {
-       if (modmap [l2] > armodmap[l2])
- 	armodmap [l2] += (1 - attack) * (modmap[l2] - armodmap[l2]);
-       if (modmap [l2] < armodmap[l2])
-@@ -521,8 +520,8 @@ void M_vocoder::generateCycle() {
-     }
- 
-     //   multiply the carrier by the modulation map.
--    for (l2 = 0; l2 < (unsigned) fftsize; l2++) {
--      carrinbackward[l2] = carroutforward[l2] * armodmap[l2];
-+    for (l2 = 0; l2 < fftsize; l2++) {
-+      carrinbackward[l2] = carroutforward[l2] * (double) armodmap[l2];
-     }
- 
-     //   reverse transform to final output, and renormalize by 1/fftsize.
-@@ -532,8 +531,7 @@ void M_vocoder::generateCycle() {
-     for (l2 = 0; l2 < synthdata->cyclesize; l2++) {
-       offset = l2 + (fftsize/2) - (synthdata->cyclesize / 2);
-       data[1][l1][l2]=
--	(creal(carroutbackward[offset]/window[offset])) / (fftsize * 100);
-+	(carroutbackward[offset].real()/window[offset]) / (fftsize * 100);
-     };
-   };
- }
--
-diff --git a/src/m_vocoder.h b/src/m_vocoder.h
-index 38eac58..32c8521 100644
---- a/src/m_vocoder.h
-+++ b/src/m_vocoder.h
-@@ -1,4 +1,4 @@
--/* 
-+/*
-   Vocoder - derived from m_delay.cpp
- 
-   Copyright (C) 2011 Bill Yerazunis <yerazunis@yahoo.com>
-@@ -22,7 +22,9 @@
- #define M_VOCODER_H
- 
- #include "module.h"
--#include <complex.h>
-+
-+#include <vector>
-+#include <ccomplex>
- #include <fftw3.h>
- 
- #define MODULE_VOCODER_WIDTH                 105
-@@ -30,7 +32,7 @@
- 
- class M_vocoder : public Module
- {
--    Q_OBJECT 
-+    Q_OBJECT
- 
-     float channels, vcchannels;
-     float attack, release;
-@@ -42,21 +44,20 @@ class M_vocoder : public Module
- 
-     Port *port_M_modulator, *port_M_pitchshift, *port_M_freqshift,
-       *port_M_channels, *port_M_carrier;
-+
-     Port *port_modfft_out, *port_firstharmonic_out,
--      *port_altmodulator_out, 
--      *port_vocoder_out;
-+      *port_altmodulator_out, *port_vocoder_out;
- 
--    fftw_plan planmodforward, planmodbackward, 
-+    fftw_plan planmodforward, planmodbackward,
-       plancarrforward, plancarrbackward;
- 
--    fftw_complex *carrinforward, *carroutforward, 
--      *carrinbackward, *carroutbackward,
--      *modinforward, *modoutforward, 
--      *modinbackward, *modoutbackward;
-+    std::vector<std::complex<double>> carrinforward, carroutforward,
-+        carrinbackward, carroutbackward,
-+        modinforward, modoutforward,
-+        modinbackward, modoutbackward;
- 
--  public: 
--    int fftsize;
--    float **inModulator, **inPitchShift, **inFreqShift, 
-+    unsigned int fftsize;
-+    float **inModulator, **inPitchShift, **inFreqShift,
-       **inChannels, **inCarrier;
-     // the previous time-based samples, for overlapping
-     float **modbuf, **carrbuf;
-@@ -68,10 +69,10 @@ class M_vocoder : public Module
-     float *armodmap;
- 
-   public:
--    float windowcurve (int windowfunc, int len, int elem, float alpha );
-+    float windowcurve (int windowfunc, unsigned int len, int elem, float alpha );
-     M_vocoder(QWidget* parent=0, int id = 0);
-     ~M_vocoder();
-     void generateCycle();
- };
--  
-+
- #endif
diff --git a/gnu/packages/patches/audacity-add-include.patch b/gnu/packages/patches/audacity-add-include.patch
new file mode 100644
index 0000000000..a7f27918e7
--- /dev/null
+++ b/gnu/packages/patches/audacity-add-include.patch
@@ -0,0 +1,15 @@
+Without <sys/time.h>, gettimeofday is undefined.
+
+diff --git a/src/AudioIO.cpp b/src/AudioIO.cpp
+index 0187e3962..e15d55f4c 100644
+--- a/src/AudioIO.cpp
++++ b/src/AudioIO.cpp
+@@ -479,6 +479,8 @@ time warp info and AudioIOListener and whether the playback is looped.
+ #include "../lib-src/portmidi/porttime/porttime.h"
+ #include "../lib-src/header-substitutes/allegro.h"
+ 
++#include <sys/time.h>
++
+    #define MIDI_SLEEP 10 /* milliseconds */
+    // how long do we think the thread that fills MIDI buffers,
+    // if it is separate from the portaudio thread,
diff --git a/gnu/packages/patches/audiofile-Check-the-number-of-coefficients.patch b/gnu/packages/patches/audiofile-check-number-of-coefficients.patch
index f9427cbe61..f9427cbe61 100644
--- a/gnu/packages/patches/audiofile-Check-the-number-of-coefficients.patch
+++ b/gnu/packages/patches/audiofile-check-number-of-coefficients.patch
diff --git a/gnu/packages/patches/audiofile-division-by-zero-BlockCodec-runPull.patch b/gnu/packages/patches/audiofile-division-by-zero.patch
index e001133916..e001133916 100644
--- a/gnu/packages/patches/audiofile-division-by-zero-BlockCodec-runPull.patch
+++ b/gnu/packages/patches/audiofile-division-by-zero.patch
diff --git a/gnu/packages/patches/audiofile-signature-of-multiplyCheckOverflow.patch b/gnu/packages/patches/audiofile-function-signature.patch
index 35627d3869..35627d3869 100644
--- a/gnu/packages/patches/audiofile-signature-of-multiplyCheckOverflow.patch
+++ b/gnu/packages/patches/audiofile-function-signature.patch
diff --git a/gnu/packages/patches/audiofile-Fix-multiply-overflow-sfconvert.patch b/gnu/packages/patches/audiofile-multiply-overflow.patch
index 0f17140d6b..0f17140d6b 100644
--- a/gnu/packages/patches/audiofile-Fix-multiply-overflow-sfconvert.patch
+++ b/gnu/packages/patches/audiofile-multiply-overflow.patch
diff --git a/gnu/packages/patches/audiofile-Fix-overflow-in-MSADPCM-decodeSam.patch b/gnu/packages/patches/audiofile-overflow-in-MSADPCM.patch
index 2be930b924..2be930b924 100644
--- a/gnu/packages/patches/audiofile-Fix-overflow-in-MSADPCM-decodeSam.patch
+++ b/gnu/packages/patches/audiofile-overflow-in-MSADPCM.patch
diff --git a/gnu/packages/patches/aws-c-event-stream-cmake-prefix.patch b/gnu/packages/patches/aws-c-event-stream-cmake-prefix.patch
new file mode 100644
index 0000000000..79655a910b
--- /dev/null
+++ b/gnu/packages/patches/aws-c-event-stream-cmake-prefix.patch
@@ -0,0 +1,13 @@
+--- 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-checksums-cmake-prefix.patch b/gnu/packages/patches/aws-checksums-cmake-prefix.patch
new file mode 100644
index 0000000000..f6a5c9ad9c
--- /dev/null
+++ b/gnu/packages/patches/aws-checksums-cmake-prefix.patch
@@ -0,0 +1,13 @@
+--- 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
new file mode 100644
index 0000000000..c65095405f
--- /dev/null
+++ b/gnu/packages/patches/bear-disable-preinstall-tests.patch
@@ -0,0 +1,40 @@
+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/benchmark-unbundle-googletest.patch b/gnu/packages/patches/benchmark-unbundle-googletest.patch
deleted file mode 100644
index 4dce8f59f1..0000000000
--- a/gnu/packages/patches/benchmark-unbundle-googletest.patch
+++ /dev/null
@@ -1,69 +0,0 @@
-From 5eb306618196ea78b8c9390e22ea2edce20760fe Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?G=C3=A1bor=20Boskovits?= <boskovits@gmail.com>
-Date: Fri, 14 Jun 2019 22:15:49 +0200
-Subject: [PATCH] Remove googletest lookup from build system.
-
----
- cmake/GoogleTest.cmake    | 18 +++++++++---------
- cmake/GoogleTest.cmake.in | 12 ++++++------
- 2 files changed, 15 insertions(+), 15 deletions(-)
-
-diff --git a/cmake/GoogleTest.cmake b/cmake/GoogleTest.cmake
-index fb7c6be..a6c473b 100644
---- a/cmake/GoogleTest.cmake
-+++ b/cmake/GoogleTest.cmake
-@@ -27,15 +27,15 @@ endif()
- # settings on Windows
- set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
- 
--include(${GOOGLETEST_PREFIX}/googletest-paths.cmake)
-+#include(${GOOGLETEST_PREFIX}/googletest-paths.cmake)
- 
- # Add googletest directly to our build. This defines
- # the gtest and gtest_main targets.
--add_subdirectory(${GOOGLETEST_SOURCE_DIR}
--                 ${GOOGLETEST_BINARY_DIR}
--                 EXCLUDE_FROM_ALL)
--
--set_target_properties(gtest PROPERTIES INTERFACE_SYSTEM_INCLUDE_DIRECTORIES $<TARGET_PROPERTY:gtest,INTERFACE_INCLUDE_DIRECTORIES>)
--set_target_properties(gtest_main PROPERTIES INTERFACE_SYSTEM_INCLUDE_DIRECTORIES $<TARGET_PROPERTY:gtest_main,INTERFACE_INCLUDE_DIRECTORIES>)
--set_target_properties(gmock PROPERTIES INTERFACE_SYSTEM_INCLUDE_DIRECTORIES $<TARGET_PROPERTY:gmock,INTERFACE_INCLUDE_DIRECTORIES>)
--set_target_properties(gmock_main PROPERTIES INTERFACE_SYSTEM_INCLUDE_DIRECTORIES $<TARGET_PROPERTY:gmock_main,INTERFACE_INCLUDE_DIRECTORIES>)
-+#add_subdirectory(${GOOGLETEST_SOURCE_DIR}
-+#                 ${GOOGLETEST_BINARY_DIR}
-+#                 EXCLUDE_FROM_ALL)
-+
-+#set_target_properties(gtest PROPERTIES INTERFACE_SYSTEM_INCLUDE_DIRECTORIES $<TARGET_PROPERTY:gtest,INTERFACE_INCLUDE_DIRECTORIES>)
-+#set_target_properties(gtest_main PROPERTIES INTERFACE_SYSTEM_INCLUDE_DIRECTORIES $<TARGET_PROPERTY:gtest_main,INTERFACE_INCLUDE_DIRECTORIES>)
-+#set_target_properties(gmock PROPERTIES INTERFACE_SYSTEM_INCLUDE_DIRECTORIES $<TARGET_PROPERTY:gmock,INTERFACE_INCLUDE_DIRECTORIES>)
-+#set_target_properties(gmock_main PROPERTIES INTERFACE_SYSTEM_INCLUDE_DIRECTORIES $<TARGET_PROPERTY:gmock_main,INTERFACE_INCLUDE_DIRECTORIES>)
-diff --git a/cmake/GoogleTest.cmake.in b/cmake/GoogleTest.cmake.in
-index 28818ee..13b0888 100644
---- a/cmake/GoogleTest.cmake.in
-+++ b/cmake/GoogleTest.cmake.in
-@@ -31,7 +31,7 @@ if(EXISTS "${GOOGLETEST_PATH}"            AND IS_DIRECTORY "${GOOGLETEST_PATH}"
-   )
- else()
-   if(NOT ALLOW_DOWNLOADING_GOOGLETEST)
--    message(SEND_ERROR "Did not find Google Test sources! Either pass correct path in GOOGLETEST_PATH, or enable ALLOW_DOWNLOADING_GOOGLETEST, or disable BENCHMARK_ENABLE_GTEST_TESTS / BENCHMARK_ENABLE_TESTING.")
-+    message(WARNING "Did not find Google Test sources! Either pass correct path in GOOGLETEST_PATH, or enable ALLOW_DOWNLOADING_GOOGLETEST, or disable BENCHMARK_ENABLE_GTEST_TESTS / BENCHMARK_ENABLE_TESTING.")
-   else()
-     message(WARNING "Did not find Google Test sources! Fetching from web...")
-     ExternalProject_Add(
-@@ -51,8 +51,8 @@ else()
-   endif()
- endif()
- 
--ExternalProject_Get_Property(googletest SOURCE_DIR BINARY_DIR)
--file(WRITE googletest-paths.cmake
--"set(GOOGLETEST_SOURCE_DIR \"${SOURCE_DIR}\")
--set(GOOGLETEST_BINARY_DIR \"${BINARY_DIR}\")
--")
-+#ExternalProject_Get_Property(googletest SOURCE_DIR BINARY_DIR)
-+#file(WRITE googletest-paths.cmake
-+#"set(GOOGLETEST_SOURCE_DIR \"${SOURCE_DIR}\")
-+#set(GOOGLETEST_BINARY_DIR \"${BINARY_DIR}\")
-+#")
--- 
-2.22.0
-
diff --git a/gnu/packages/patches/bitcoin-core-python-compat.patch b/gnu/packages/patches/bitcoin-core-python-compat.patch
deleted file mode 100644
index 6bf744124d..0000000000
--- a/gnu/packages/patches/bitcoin-core-python-compat.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-Get rid of deprecation warning emitted by Python 3.8, which causes a test failure(!).
-
-https://github.com/bitcoin/bitcoin/pull/17931
-
-Taken from upstream:
-
-https://github.com/bitcoin/bitcoin/commit/f117fb00da747147cddfb071c1427a2754c278cd
-
-diff --git a/test/functional/p2p_invalid_messages.py b/test/functional/p2p_invalid_messages.py
-index 20864881c165..07eacf410d88 100755
---- a/test/functional/p2p_invalid_messages.py
-+++ b/test/functional/p2p_invalid_messages.py
-@@ -145,13 +145,13 @@ def run_test(self):
-     def test_magic_bytes(self):
-         conn = self.nodes[0].add_p2p_connection(P2PDataStore())
- 
--        def swap_magic_bytes():
-+        async def swap_magic_bytes():
-             conn._on_data = lambda: None  # Need to ignore all incoming messages from now, since they come with "invalid" magic bytes
-             conn.magic_bytes = b'\x00\x11\x22\x32'
- 
-         # Call .result() to block until the atomic swap is complete, otherwise
-         # we might run into races later on
--        asyncio.run_coroutine_threadsafe(asyncio.coroutine(swap_magic_bytes)(), NetworkThread.network_event_loop).result()
-+        asyncio.run_coroutine_threadsafe(swap_magic_bytes(), NetworkThread.network_event_loop).result()
- 
-         with self.nodes[0].assert_debug_log(['PROCESSMESSAGE: INVALID MESSAGESTART ping']):
-             conn.send_message(messages.msg_ping(nonce=0xff))
diff --git a/gnu/packages/patches/bsd-games-2.17-64bit.patch b/gnu/packages/patches/bsd-games-2.17-64bit.patch
new file mode 100644
index 0000000000..e286c1c531
--- /dev/null
+++ b/gnu/packages/patches/bsd-games-2.17-64bit.patch
@@ -0,0 +1,43 @@
+David Leverton writes about adventure/crc.c:
+
+The 'adventure' game from the games-misc/bsd-games-2.13 package crashes
+when saving the game on AMD64 (and probably other 64-bit systems, but I
+haven't checked).  Find attached to fix this.
+
+http://bugs.gentoo.org/show_bug.cgi?id=77032
+
+
+About utmpentry.c:
+
+the utmpx structure defines the ut_tv member a little differently on
+64bit hosts so that a 32bit and 64bit structure can be shared.  So the
+ut_tv is a custom 32bit structure rather than the native 64bit timeval
+structure.  Work around is to assign the submembers instead.
+
+http://bugs.gentoo.org/show_bug.cgi?id=102667
+
+--- bsd-games/adventure/crc.c
++++ bsd-games/adventure/crc.c
+@@ -134,7 +134,8 @@
+				if (step >= sizeof(crctab) / sizeof(crctab[0]))
+					step = 0;
+			}
+-			crcval = (crcval << 8) ^ crctab[i];
++			/* Mask to 32 bits. */
++			crcval = ((crcval << 8) ^ crctab[i]) & 0xffffffff;
+		}
+-	return crcval & 0xffffffff;	/* Mask to 32 bits. */
++	return crcval;
+ }
+--- bsd-games/dm/utmpentry.c
++++ bsd-games/dm/utmpentry.c
+@@ -291,7 +291,8 @@
+	e->line[sizeof(e->line) - 1] = '\0';
+	(void)strncpy(e->host, up->ut_host, sizeof(up->ut_host));
+	e->name[sizeof(e->host) - 1] = '\0';
+-	e->tv = up->ut_tv;
++	e->tv.tv_sec = up->ut_tv.tv_sec;
++	e->tv.tv_usec = up->ut_tv.tv_usec;
+	adjust_size(e);
+ }
+ #endif
diff --git a/gnu/packages/patches/bsd-games-add-configure-config.patch b/gnu/packages/patches/bsd-games-add-configure-config.patch
new file mode 100644
index 0000000000..d8636addb6
--- /dev/null
+++ b/gnu/packages/patches/bsd-games-add-configure-config.patch
@@ -0,0 +1,22 @@
+Remove a few 'setenv's from the definition.
+
+diff -Naur bsd-games-2.17/config.params bsd-games-patch/config.params
+--- bsd-games-2.17/config.params	1970-01-01 07:00:00.000000000 +0700
++++ bsd-games-patch/config.params	2020-04-22 20:49:40.809695248 +0700
+@@ -0,0 +1,16 @@
++bsd_games_cfg_do_chown=n
++bsd_games_cfg_non_interactive=y
++
++# Fix some man-pages: cfscores, morse, ppt, rot13, snscore, teachgammon.
++bsd_games_cfg_use_dot_so=syml
++
++# Don't build some games:
++# Countmail require some BSD-package called `from`.
++# DM is a toy to restrict access to bsd-games.
++# Fortune seems to be already packaged (fortune-mod).
++# Wargames isn't convenient as a game launcher.
++bsd_games_cfg_no_build_dirs="countmail dm fortune wargames"
++
++# Those are substitute*'d with GNU miscfiles.
++bsd_games_cfg_hangman_wordsfile=WORD_LIST
++bsd_games_cfg_dictionary_src=WORD_LIST
diff --git a/gnu/packages/patches/bsd-games-add-wrapper.patch b/gnu/packages/patches/bsd-games-add-wrapper.patch
new file mode 100644
index 0000000000..ad3b1a9860
--- /dev/null
+++ b/gnu/packages/patches/bsd-games-add-wrapper.patch
@@ -0,0 +1,251 @@
+As we cannot install outside the Store, and those games do not create the
+needed writable files on their own, we need a wrapper script.
+
+diff -Naur bsd-games-2.17/atc/Makefrag bsd-games-patch/atc/Makefrag
+--- bsd-games-2.17/atc/Makefrag	1970-01-01 07:00:00.000000000 +0700
++++ bsd-games-patch/atc/Makefrag	2020-04-23 20:24:04.446176222 +0700
+@@ -47,7 +47,8 @@
+	mv atc/lex.yy.c $@
+
+ atc_install:	atc_all
+-	$(INSTALL_SCORE_GAME) atc/atc $(INSTALL_PREFIX)$(GAMESDIR)/atc
++	$(INSTALL_SCORE_GAME) wrapper $(INSTALL_PREFIX)$(GAMESDIR)/atc
++	$(INSTALL_SCORE_GAME) atc/atc $(INSTALL_PREFIX)$(GAMESDIR)/.atc-real
+	$(HIDE_GAME) atc
+	$(INSTALL_SCORE_FILE) $(ATC_SCOREFILE)
+	$(INSTALL_MANUAL) atc/atc.6
+diff -Naur bsd-games-2.17/battlestar/Makefrag bsd-games-patch/battlestar/Makefrag
+--- bsd-games-2.17/battlestar/Makefrag	1970-01-01 07:00:00.000000000 +0700
++++ bsd-games-patch/battlestar/Makefrag	2020-04-23 20:24:04.482175771 +0700
+@@ -32,7 +32,8 @@
+ battlestar_all:	battlestar/battlestar battlestar/battlestar.6
+
+ battlestar_install:	battlestar_all
+-	$(INSTALL_SCORE_GAME) battlestar/battlestar $(INSTALL_PREFIX)$(GAMESDIR)/battlestar
++	$(INSTALL_SCORE_GAME) wrapper $(INSTALL_PREFIX)$(GAMESDIR)/battlestar
++	$(INSTALL_SCORE_GAME) battlestar/battlestar $(INSTALL_PREFIX)$(GAMESDIR)/.battlestar-real
+	$(HIDE_GAME) battlestar
+	$(INSTALL_MANUAL) battlestar/battlestar.6
+	$(INSTALL_SCORE_FILE) $(BATTLESTAR_SCOREFILE)
+diff -Naur bsd-games-2.17/canfield/canfield/Makefrag bsd-games-patch/canfield/canfield/Makefrag
+--- bsd-games-2.17/canfield/canfield/Makefrag	1970-01-01 07:00:00.000000000 +0700
++++ bsd-games-patch/canfield/canfield/Makefrag	2020-04-23 20:24:04.522175270 +0700
+@@ -31,7 +31,8 @@
+ canfield_canfield_all:	canfield/canfield/canfield canfield/canfield/canfield.6
+
+ canfield_canfield_install: canfield_canfield_all
+-	$(INSTALL_SCORE_GAME) canfield/canfield/canfield $(INSTALL_PREFIX)$(GAMESDIR)/canfield
++	$(INSTALL_SCORE_GAME) wrapper $(INSTALL_PREFIX)$(GAMESDIR)/canfield
++	$(INSTALL_SCORE_GAME) canfield/canfield/canfield $(INSTALL_PREFIX)$(GAMESDIR)/.canfield-real
+	$(HIDE_GAME) canfield
+	$(INSTALL_MANUAL) canfield/canfield/canfield.6
+	$(INSTALL_SCORE_FILE) $(CANFIELD_SCOREFILE)
+diff -ur bsd-games-2.17.orig/canfield/cfscores/Makefrag bsd-games-2.17/canfield/cfscores/Makefrag
+--- bsd-games-2.17.orig/canfield/cfscores/Makefrag	1970-01-01 07:00:01.000000000 +0700
++++ bsd-games-2.17/canfield/cfscores/Makefrag	2020-08-06 12:20:10.592076477 +0700
+@@ -32,6 +32,7 @@
+ canfield_cfscores_all:	canfield/cfscores/cfscores
+
+ canfield_cfscores_install:	canfield_cfscores_all
+-	$(INSTALL_BINARY) canfield/cfscores/cfscores $(INSTALL_PREFIX)$(GAMESDIR)/cfscores
++	$(INSTALL_BINARY) wrapper $(INSTALL_PREFIX)$(GAMESDIR)/cfscores
++	$(INSTALL_BINARY) canfield/cfscores/cfscores $(INSTALL_PREFIX)$(GAMESDIR)/.cfscores-real
+	$(HIDE_GAME) cfscores
+	$(INSTALL_MANUAL) canfield.6 cfscores.6
+diff -Naur bsd-games-2.17/cribbage/Makefrag bsd-games-patch/cribbage/Makefrag
+--- bsd-games-2.17/cribbage/Makefrag	1970-01-01 07:00:00.000000000 +0700
++++ bsd-games-patch/cribbage/Makefrag	2020-04-23 20:24:04.534175120 +0700
+@@ -31,7 +31,8 @@
+ cribbage_all:	cribbage/cribbage cribbage/cribbage.n cribbage/cribbage.6
+
+ cribbage_install:	cribbage_all
+-	$(INSTALL_SCORE_GAME) cribbage/cribbage $(INSTALL_PREFIX)$(GAMESDIR)/cribbage
++	$(INSTALL_SCORE_GAME) wrapper $(INSTALL_PREFIX)$(GAMESDIR)/cribbage
++	$(INSTALL_SCORE_GAME) cribbage/cribbage $(INSTALL_PREFIX)$(GAMESDIR)/.cribbage-real
+	$(HIDE_GAME) cribbage
+	$(INSTALL_DATA) cribbage/cribbage.n $(INSTALL_PREFIX)$(CRIBBAGE_INSTRFILE)
+	$(INSTALL_SCORE_FILE) $(CRIBBAGE_SCOREFILE)
+diff -Naur bsd-games-2.17/hack/Makefrag bsd-games-patch/hack/Makefrag
+--- bsd-games-2.17/hack/Makefrag	1970-01-01 07:00:00.000000000 +0700
++++ bsd-games-patch/hack/Makefrag	2020-04-23 20:24:04.590174419 +0700
+@@ -53,7 +53,8 @@
+ hack/hack.zap.d hack/rnd.d:	hack/hack.onames.h
+
+ hack_install:	hack_all
+-	$(INSTALL_SCORE_GAME) hack/hack $(INSTALL_PREFIX)$(GAMESDIR)/hack
++	$(INSTALL_SCORE_GAME) wrapper $(INSTALL_PREFIX)$(GAMESDIR)/hack
++	$(INSTALL_SCORE_GAME) hack/hack $(INSTALL_PREFIX)$(GAMESDIR)/.hack-real
+	$(HIDE_GAME) hack
+	$(INSTALL_HACK_DIR) $(INSTALL_PREFIX)$(HACK_DIR)
+	set -e; for f in data help hh rumors; do $(INSTALL_DATA) hack/$$f $(INSTALL_PREFIX)$(HACK_DIR)/$$f; done
+diff -Naur bsd-games-2.17/phantasia/Makefrag bsd-games-patch/phantasia/Makefrag
+--- bsd-games-2.17/phantasia/Makefrag	1970-01-01 07:00:00.000000000 +0700
++++ bsd-games-patch/phantasia/Makefrag	2020-04-23 20:24:04.650173667 +0700
+@@ -38,7 +38,8 @@
+	touch phantasia/scorefiles.stamp
+
+ phantasia_install:	phantasia_all
+-	$(INSTALL_SCORE_GAME) phantasia/phantasia $(INSTALL_PREFIX)$(GAMESDIR)/phantasia
++	$(INSTALL_SCORE_GAME) wrapper $(INSTALL_PREFIX)$(GAMESDIR)/phantasia
++	$(INSTALL_SCORE_GAME) phantasia/phantasia $(INSTALL_PREFIX)$(GAMESDIR)/.phantasia-real
+	$(HIDE_GAME) phantasia
+	(set -e; for f in $(phantasia_VFILES1); do \
+	    cp phantasia/$$f $(INSTALL_PREFIX)$(PHANTASIA_DIR)/$$f; \
+diff -Naur bsd-games-2.17/robots/Makefrag bsd-games-patch/robots/Makefrag
+--- bsd-games-2.17/robots/Makefrag	1970-01-01 07:00:00.000000000 +0700
++++ bsd-games-patch/robots/Makefrag	2020-04-23 20:24:04.702173016 +0700
+@@ -32,7 +32,8 @@
+ robots_all:	robots/robots robots/robots.6
+
+ robots_install:	robots_all
+-	$(INSTALL_SCORE_GAME) robots/robots $(INSTALL_PREFIX)$(GAMESDIR)/robots
++	$(INSTALL_SCORE_GAME) wrapper $(INSTALL_PREFIX)$(GAMESDIR)/robots
++	$(INSTALL_SCORE_GAME) robots/robots $(INSTALL_PREFIX)$(GAMESDIR)/.robots-real
+	$(HIDE_GAME) robots
+	$(INSTALL_SCORE_FILE) $(ROBOTS_SCOREFILE)
+	$(INSTALL_MANUAL) robots/robots.6
+diff -Naur bsd-games-2.17/sail/Makefrag bsd-games-patch/sail/Makefrag
+--- bsd-games-2.17/sail/Makefrag	1970-01-01 07:00:00.000000000 +0700
++++ bsd-games-patch/sail/Makefrag	2020-04-23 20:24:04.710172917 +0700
+@@ -31,7 +31,8 @@
+ sail_all:	sail/sail sail/sail.6
+
+ sail_install:	sail_all
+-	$(INSTALL_SCORE_GAME) sail/sail $(INSTALL_PREFIX)$(GAMESDIR)/sail
++	$(INSTALL_SCORE_GAME) wrapper $(INSTALL_PREFIX)$(GAMESDIR)/sail
++	$(INSTALL_SCORE_GAME) sail/sail $(INSTALL_PREFIX)$(GAMESDIR)/.sail-real
+	$(HIDE_GAME) sail
+	$(INSTALL_SCORE_FILE) $(SAIL_SCOREFILE)
+	$(INSTALL_SAIL_DIR) $(INSTALL_PREFIX)$(SAIL_DIR)
+diff -Naur bsd-games-2.17/snake/snake/Makefrag bsd-games-patch/snake/snake/Makefrag
+--- bsd-games-2.17/snake/snake/Makefrag	1970-01-01 07:00:00.000000000 +0700
++++ bsd-games-patch/snake/snake/Makefrag	2020-04-23 20:24:04.722172766 +0700
+@@ -31,7 +31,8 @@
+ snake_snake_all:	snake/snake/snake snake/snake/snake.6
+
+ snake_snake_install:	snake_snake_all
+-	$(INSTALL_SCORE_GAME) snake/snake/snake $(INSTALL_PREFIX)$(GAMESDIR)/snake
++	$(INSTALL_SCORE_GAME) wrapper $(INSTALL_PREFIX)$(GAMESDIR)/snake
++	$(INSTALL_SCORE_GAME) snake/snake/snake $(INSTALL_PREFIX)$(GAMESDIR)/.snake-real
+	$(HIDE_GAME) snake
+	$(INSTALL_SCORE_FILE) $(SNAKE_SCOREFILE)
+	$(INSTALL_SCORE_FILE) $(SNAKE_RAWSCOREFILE)
+--- bsd-games-2.17.orig/snake/snscore/Makefrag	1970-01-01 07:00:01.000000000 +0700
++++ bsd-games-2.17/snake/snscore/Makefrag	2020-08-06 12:33:09.636089394 +0700
+@@ -32,6 +32,7 @@
+ snake_snscore_all:	snake/snscore/snscore
+
+ snake_snscore_install:	snake_snscore_all
+-	$(INSTALL_BINARY) snake/snscore/snscore $(INSTALL_PREFIX)$(GAMESDIR)/snscore
++	$(INSTALL_BINARY) wrapper $(INSTALL_PREFIX)$(GAMESDIR)/snscore
++	$(INSTALL_BINARY) snake/snscore/snscore $(INSTALL_PREFIX)$(GAMESDIR)/.snscore-real
+	$(HIDE_GAME) snscore
+	$(INSTALL_MANUAL) snake.6 snscore.6
+diff -Naur bsd-games-2.17/tetris/Makefrag bsd-games-patch/tetris/Makefrag
+--- bsd-games-2.17/tetris/Makefrag	1970-01-01 07:00:00.000000000 +0700
++++ bsd-games-patch/tetris/Makefrag	2020-04-23 20:24:04.734172616 +0700
+@@ -32,7 +32,8 @@
+ tetris_all:	tetris/tetris tetris/tetris.6
+
+ tetris_install:	tetris_all
+-	$(INSTALL_SCORE_GAME) tetris/tetris $(INSTALL_PREFIX)$(GAMESDIR)/tetris-bsd
++	$(INSTALL_SCORE_GAME) wrapper $(INSTALL_PREFIX)$(GAMESDIR)/tetris-bsd
++	$(INSTALL_SCORE_GAME) tetris/tetris $(INSTALL_PREFIX)$(GAMESDIR)/.tetris-bsd-real
+	$(HIDE_GAME) tetris-bsd
+	$(INSTALL_SCORE_FILE) $(TETRIS_SCOREFILE)
+	ln -f tetris/tetris.6 tetris/tetris-bsd.6
+diff -Naur bsd-games-2.17/wrapper bsd-games-patch/wrapper
+--- bsd-games-2.17/wrapper	1970-01-01 07:00:00.000000000 +0700
++++ bsd-games-patch/wrapper	2020-04-23 20:24:37.153766719 +0700
+@@ -0,0 +1,91 @@
++#!/bin/sh
++# This file works around limitations of our read-only Store.
++
++set -e
++
++check_empty_files () {
++    # those start empty
++    for f in ${@}
++    do
++        if [[ ! -f ${f} ]]
++        then
++            touch      ${f}
++            echo "$(pwd)/${f} RESTORED"
++        fi
++    done
++}
++check_data_files () {
++    # those start with some initial data
++    for f in ${@}
++    do
++        if [[ ! -f ${f} ]]
++        then
++            cp STATIC_DATA/${game}/${f} ${f}
++            chmod u+w ${f}
++            echo "$(pwd)/${f} RESTORED"
++        fi
++    done
++}
++visit_dir () {
++    mkdir -p ${1}
++    cd ${1}
++}
++exit_with_variable_error () {
++    variables="${1}${2:+ or ${2}}"
++    echo "Guix: Please set up the ${variables} variable."
++    echo "Examples:"
++    echo "   export ${1}=/var/multiplayer"
++    echo "   export ${2:-${1}}=~/.local/share/bsd-games"
++    echo "You can place this in ~/.bashrc or a similar file for Your shell."
++    echo "For multiplayer this directory should be writable for all players."
++    exit 1
++}
++
++game=$(basename $0)
++if [[ ${game} == "hack" ]]
++then
++    if   [[ -n ${HACKDIR} ]];       then visit_dir "${HACKDIR}"
++    elif [[ -n ${BSD_GAMES_DIR} ]]; then visit_dir "${BSD_GAMES_DIR}/hack"
++    else exit_with_variable_error "HACKDIR" "BSD_GAMES_DIR"
++    fi
++else
++    if [[ -n ${BSD_GAMES_DIR} ]]; then visit_dir "${BSD_GAMES_DIR}"
++    else exit_with_variable_error "BSD_GAMES_DIR"
++    fi
++fi
++
++case ${game} in
++    ### Games with score-files
++    atc)
++        check_empty_files "atc_score";;
++    battlestar)
++        check_empty_files "battlestar.log";;
++    canfield)
++        check_empty_files "cfscores";;
++    cribbage)
++        check_empty_files "criblog";;
++    robots)
++        check_empty_files "robots_roll";;
++    snake)
++        check_empty_files "snakerawscores" "snake.log";;
++    tetris)
++        check_empty_files "tetris-bsd.scores";;
++    ### Games with saved state
++    hack)
++        check_empty_files "record" "perm"
++        check_data_files "data" "help" "hh" "rumors"
++        visit_dir "save"
++        cd ../../;;
++    phantasia)
++        visit_dir "phantasia"
++        check_empty_files "characs" "gold" "lastdead"\
++                          "mess" "motd" "scoreboard" "void"
++        check_data_files "monsters"
++        cd ../;;
++    sail)
++        visit_dir "sail"
++        check_empty_files "log" "syncfile"
++        cd ../;;
++esac
++
++exec .${game}-real ${@}
diff --git a/gnu/packages/patches/bsd-games-bad-ntohl-cast.patch b/gnu/packages/patches/bsd-games-bad-ntohl-cast.patch
new file mode 100644
index 0000000000..caadfa5054
--- /dev/null
+++ b/gnu/packages/patches/bsd-games-bad-ntohl-cast.patch
@@ -0,0 +1,22 @@
+diff --git a/hunt/hunt/playit.c b/hunt/hunt/playit.c
+index 9acf86e..881a4e7 100644
+--- a/hunt/hunt/playit.c
++++ b/hunt/hunt/playit.c
+@@ -114,7 +114,7 @@ playit()
+		bad_con();
+		/* NOTREACHED */
+	}
+-	if (ntohl(version) != (unsigned long)HUNT_VERSION) {
++	if (ntohl(version) != (uint32_t)HUNT_VERSION) {
+		bad_ver();
+		/* NOTREACHED */
+	}
+@@ -649,7 +649,7 @@ do_message()
+		bad_con();
+		/* NOTREACHED */
+	}
+-	if (ntohl(version) != (unsigned long)HUNT_VERSION) {
++	if (ntohl(version) != (uint32_t)HUNT_VERSION) {
+		bad_ver();
+		/* NOTREACHED */
+	}
diff --git a/gnu/packages/patches/bsd-games-dont-install-empty-files.patch b/gnu/packages/patches/bsd-games-dont-install-empty-files.patch
new file mode 100644
index 0000000000..4ee0578177
--- /dev/null
+++ b/gnu/packages/patches/bsd-games-dont-install-empty-files.patch
@@ -0,0 +1,87 @@
+Those games rely on user to provide the files to write scores in.
+Those score-files are initially empty.  Anyway, the Store is read-only.
+So we do not install those empty files.
+
+diff -Naur bsd-games-2.17/install-score.in bsd-games-patch/install-score.in
+--- bsd-games-2.17/install-score.in	1970-01-01 07:00:00.000000000 +0700
++++ bsd-games-patch/install-score.in	2020-04-22 21:41:47.810544804 +0700
+@@ -1,45 +0,0 @@
+-# install-score.in - install a score file
+-#
+-# Copyright (c) 1997, 1998, 1999 Joseph Samuel Myers.
+-# All rights reserved.
+-#
+-# Redistribution and use in source and binary forms, with or without
+-# modification, are permitted provided that the following conditions
+-# are met:
+-# 1. Redistributions of source code must retain the above copyright
+-#    notice, this list of conditions and the following disclaimer.
+-# 2. Redistributions in binary form must reproduce the above copyright
+-#    notice, this list of conditions and the following disclaimer in the
+-#    documentation and/or other materials provided with the distribution.
+-# 3. The name of the author may not be used to endorse or promote products
+-#    derived from this software without specific prior written permission.
+-#
+-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+-# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+-# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+-# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+-# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+-# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+-# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+-# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+-# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+-# SUCH DAMAGE.
+-
+-set -e
+-
+-if [ "$1" = "-p" ]; then
+-    scorefile="@install_prefix@$2"
+-    perms=@vardata_perms_priv@
+-else
+-    scorefile="@install_prefix@$1"
+-    perms=@vardata_perms@
+-fi
+-
+-mkdir -p "$(dirname "$scorefile")"
+-
+-test -e "$scorefile" || touch "$scorefile"
+-if [ @do_chown@ = y ]; then
+-    chown @vardata_owner@:@vardata_group@ "$scorefile"
+-fi
+-chmod "$perms" "$scorefile"
+diff -Naur bsd-games-2.17/phantasia/Makefrag bsd-games-patch/phantasia/Makefrag
+--- bsd-games-2.17/phantasia/Makefrag	1970-01-01 07:00:00.000000000 +0700
++++ bsd-games-patch/phantasia/Makefrag	2020-04-22 21:26:00.162409464 +0700
+@@ -27,9 +27,8 @@
+ # SUCH DAMAGE.
+
+ phantasia_DIRS := $(GAMESDIR) $(MAN6DIR) $(PHANTASIA_DIR)
+-phantasia_VFILES1 := gold lastdead mess monsters motd void
+-phantasia_VFILES2 := scoreboard characs
+-phantasia_CLEANFILES := $(phantasia_VFILES1) $(phantasia_VFILES2) scorefiles.stamp
++phantasia_VFILES1 := monsters
++phantasia_CLEANFILES := $(phantasia_VFILES1) scorefiles.stamp
+
+ phantasia_all:	phantasia/phantasia phantasia/phantasia.6 phantasia/scorefiles.stamp
+
+@@ -43,9 +42,4 @@
+	(set -e; for f in $(phantasia_VFILES1); do \
+	    cp phantasia/$$f $(INSTALL_PREFIX)$(PHANTASIA_DIR)/$$f; \
+	    $(INSTALL_SCORE_FILE) $(PHANTASIA_DIR)/$$f; done)
+-	(set -e; for f in $(phantasia_VFILES2); do \
+-	    if [ ! -e $(PHANTASIA_DIR)/$$f ]; then \
+-		cp phantasia/$$f $(INSTALL_PREFIX)$(PHANTASIA_DIR)/$$f; fi; done; \
+-	    $(INSTALL_SCORE_FILE) $(PHANTASIA_DIR)/scoreboard; \
+-	    $(INSTALL_SCORE_FILE) -p $(PHANTASIA_DIR)/characs)
+	$(INSTALL_MANUAL) phantasia/phantasia.6
+diff -Naur bsd-games-2.17/sail/Makefrag bsd-games-patch/sail/Makefrag
+--- bsd-games-2.17/sail/Makefrag	1970-01-01 07:00:00.000000000 +0700
++++ bsd-games-patch/sail/Makefrag	2020-04-22 21:26:48.701801676 +0700
+@@ -34,5 +34,4 @@
+	$(INSTALL_SCORE_GAME) sail/sail $(INSTALL_PREFIX)$(GAMESDIR)/sail
+	$(HIDE_GAME) sail
+	$(INSTALL_SCORE_FILE) $(SAIL_SCOREFILE)
+-	$(INSTALL_SAIL_DIR) $(INSTALL_PREFIX)$(SAIL_DIR)
+	$(INSTALL_MANUAL) sail/sail.6
diff --git a/gnu/packages/patches/bsd-games-gamescreen.h.patch b/gnu/packages/patches/bsd-games-gamescreen.h.patch
new file mode 100644
index 0000000000..d3c6b4ae50
--- /dev/null
+++ b/gnu/packages/patches/bsd-games-gamescreen.h.patch
@@ -0,0 +1,14 @@
+--- a/dab/gamescreen.h	2004-01-02 23:34:51.000000000 +0530
++++ b/dab/gamescreen.h	2008-07-31 23:45:19.000000000 +0530
+@@ -70,9 +70,9 @@
+     virtual void redraw(void) = 0;			// Refresh
+     virtual int getinput(void) = 0;			// Get user input
+     virtual void bell(void) = 0;			// Beep
+-    virtual void score(size_t p, const PLAYER& p) = 0;	// Post current score
+-    virtual void games(size_t p, const PLAYER& p) = 0;	// Post games won
+-    virtual void total(size_t p, const PLAYER& p) = 0;	// Post total score
++    virtual void score(size_t, const PLAYER&) = 0;	// Post current score
++    virtual void games(size_t, const PLAYER&) = 0;	// Post games won
++    virtual void total(size_t, const PLAYER&) = 0;	// Post total score
+     virtual void ties(const PLAYER& p) = 0;		// Post tie games
+ };
diff --git a/gnu/packages/patches/bsd-games-getline.patch b/gnu/packages/patches/bsd-games-getline.patch
new file mode 100644
index 0000000000..d7c0b4034d
--- /dev/null
+++ b/gnu/packages/patches/bsd-games-getline.patch
@@ -0,0 +1,194 @@
+diff -Naur bsd-games-2.17/boggle/boggle/bog.c bsd-games-2.17.1/boggle/boggle/bog.c
+--- bsd-games-2.17/boggle/boggle/bog.c	2004-12-07 07:34:21.000000000 -0600
++++ bsd-games-2.17.1/boggle/boggle/bog.c	2010-05-22 10:51:23.000000000 -0500
+@@ -336,7 +336,7 @@
+	}
+
+	while (1) {
+-		if (getline(buf) == NULL) {
++		if (boggle_getline(buf) == NULL) {
+			if (feof(stdin))
+				clearerr(stdin);
+			break;
+diff -Naur bsd-games-2.17/boggle/boggle/extern.h bsd-games-2.17.1/boggle/boggle/extern.h
+--- bsd-games-2.17/boggle/boggle/extern.h	2004-01-27 14:52:07.000000000 -0600
++++ bsd-games-2.17.1/boggle/boggle/extern.h	2010-05-22 10:51:23.000000000 -0500
+@@ -43,7 +43,7 @@
+ long	 dictseek(FILE *, long, int);
+ void	 findword(void);
+ void	 flushin(FILE *);
+-char	*getline(char *);
++char	*boggle_getline(char *);
+ void	 getword(char *);
+ int	 help(void);
+ int	 inputch(void);
+diff -Naur bsd-games-2.17/boggle/boggle/mach.c bsd-games-2.17.1/boggle/boggle/mach.c
+--- bsd-games-2.17/boggle/boggle/mach.c	2004-12-07 07:34:21.000000000 -0600
++++ bsd-games-2.17.1/boggle/boggle/mach.c	2010-05-22 10:51:23.000000000 -0500
+@@ -168,7 +168,7 @@
+  * - doesn't accept words longer than MAXWORDLEN or containing caps
+  */
+ char *
+-getline(q)
++boggle_getline(q)
+	char *q;
+ {
+	int ch, done;
+diff -Naur bsd-games-2.17/cribbage/cribbage.h bsd-games-2.17.1/cribbage/cribbage.h
+--- bsd-games-2.17/cribbage/cribbage.h	2004-02-08 16:29:14.000000000 -0600
++++ bsd-games-2.17.1/cribbage/cribbage.h	2010-05-22 10:51:23.000000000 -0500
+@@ -77,7 +77,7 @@
+ int	 fifteens(const CARD [], int);
+ void	 game(void);
+ void	 gamescore(void);
+-char	*getline(void);
++char	*cribbage_getline(void);
+ int	 getuchar(void);
+ int	 incard(CARD *);
+ int	 infrom(const CARD [], int, const char *);
+diff -Naur bsd-games-2.17/cribbage/crib.c bsd-games-2.17.1/cribbage/crib.c
+--- bsd-games-2.17/cribbage/crib.c	2004-01-27 14:52:07.000000000 -0600
++++ bsd-games-2.17.1/cribbage/crib.c	2010-05-22 10:51:23.000000000 -0500
+@@ -221,7 +221,7 @@
+			if (!rflag) {			/* player cuts deck */
+				msg(quiet ? "Cut for crib? " :
+			    "Cut to see whose crib it is -- low card wins? ");
+-				getline();
++				cribbage_getline();
+			}
+			i = (rand() >> 4) % CARDS;	/* random cut */
+			do {	/* comp cuts deck */
+@@ -397,7 +397,7 @@
+		if (!rflag) {	/* random cut */
+			msg(quiet ? "Cut the deck? " :
+		    "How many cards down do you wish to cut the deck? ");
+-			getline();
++			cribbage_getline();
+		}
+		i = (rand() >> 4) % (CARDS - pos);
+		turnover = deck[i + pos];
+diff -Naur bsd-games-2.17/cribbage/io.c bsd-games-2.17.1/cribbage/io.c
+--- bsd-games-2.17/cribbage/io.c	2004-12-07 07:34:21.000000000 -0600
++++ bsd-games-2.17.1/cribbage/io.c	2010-05-22 10:51:23.000000000 -0500
+@@ -245,7 +245,7 @@
+
+	retval = FALSE;
+	rnk = sut = EMPTY;
+-	if (!(line = getline()))
++	if (!(line = cribbage_getline()))
+		goto gotit;
+	p = p1 = line;
+	while (*p1 != ' ' && *p1 != '\0')
+@@ -346,7 +346,7 @@
+
+	for (sum = 0;;) {
+		msg(prompt);
+-		if (!(p = getline()) || *p == '\0') {
++		if (!(p = cribbage_getline()) || *p == '\0') {
+			msg(quiet ? "Not a number" :
+			    "That doesn't look like a number");
+			continue;
+@@ -528,12 +528,12 @@
+ }
+
+ /*
+- * getline:
++ * cribbage_getline:
+  *      Reads the next line up to '\n' or EOF.  Multiple spaces are
+  *	compressed to one space; a space is inserted before a ','
+  */
+ char *
+-getline()
++cribbage_getline()
+ {
+	char *sp;
+	int c, oy, ox;
+diff -Naur bsd-games-2.17/gomoku/bdisp.c bsd-games-2.17.1/gomoku/bdisp.c
+--- bsd-games-2.17/gomoku/bdisp.c	2003-12-16 20:47:37.000000000 -0600
++++ bsd-games-2.17.1/gomoku/bdisp.c	2010-05-22 10:51:23.000000000 -0500
+@@ -241,7 +241,7 @@
+ }
+
+ int
+-getline(buf, size)
++gomoku_getline(buf, size)
+	char *buf;
+	int size;
+ {
+diff -Naur bsd-games-2.17/gomoku/gomoku.h bsd-games-2.17.1/gomoku/gomoku.h
+--- bsd-games-2.17/gomoku/gomoku.h	2004-01-27 14:52:07.000000000 -0600
++++ bsd-games-2.17.1/gomoku/gomoku.h	2010-05-22 10:51:23.000000000 -0500
+@@ -263,7 +263,7 @@
+
+ void	bdinit(struct spotstr *);
+ void	init_overlap(void);
+-int	getline(char *, int);
++int	gomoku_getline(char *, int);
+ void	ask(const char *);
+ void	dislog(const char *);
+ void	bdump(FILE *);
+diff -Naur bsd-games-2.17/gomoku/main.c bsd-games-2.17.1/gomoku/main.c
+--- bsd-games-2.17/gomoku/main.c	2004-01-27 14:52:07.000000000 -0600
++++ bsd-games-2.17.1/gomoku/main.c	2010-05-22 10:51:23.000000000 -0500
+@@ -155,7 +155,7 @@
+		if (inputfp == NULL && test == 0) {
+			for (;;) {
+				ask("black or white? ");
+-				getline(buf, sizeof(buf));
++				gomoku_getline(buf, sizeof(buf));
+				if (buf[0] == 'b' || buf[0] == 'B') {
+					color = BLACK;
+					break;
+@@ -172,7 +172,7 @@
+		}
+	} else {
+		setbuf(stdout, 0);
+-		getline(buf, sizeof(buf));
++		gomoku_getline(buf, sizeof(buf));
+		if (strcmp(buf, "black") == 0)
+			color = BLACK;
+		else if (strcmp(buf, "white") == 0)
+@@ -244,7 +244,7 @@
+		getinput:
+			if (interactive)
+				ask("move? ");
+-			if (!getline(buf, sizeof(buf))) {
++			if (!gomoku_getline(buf, sizeof(buf))) {
+				curmove = RESIGN;
+				break;
+			}
+@@ -256,7 +256,7 @@
+					FILE *fp;
+
+					ask("save file name? ");
+-					(void)getline(buf, sizeof(buf));
++					(void)gomoku_getline(buf, sizeof(buf));
+					if ((fp = fopen(buf, "w")) == NULL) {
+						glog("cannot create save file");
+						goto getinput;
+@@ -309,14 +309,14 @@
+		if (i != RESIGN) {
+		replay:
+			ask("replay? ");
+-			if (getline(buf, sizeof(buf)) &&
++			if (gomoku_getline(buf, sizeof(buf)) &&
+			    (buf[0] == 'y' || buf[0] == 'Y'))
+				goto again;
+			if (strcmp(buf, "save") == 0) {
+				FILE *fp;
+
+				ask("save file name? ");
+-				(void)getline(buf, sizeof(buf));
++				(void)gomoku_getline(buf, sizeof(buf));
+				if ((fp = fopen(buf, "w")) == NULL) {
+					glog("cannot create save file");
+					goto replay;
+@@ -367,7 +367,7 @@
+		quit();
+ top:
+	ask("cmd? ");
+-	if (!getline(fmtbuf, sizeof(fmtbuf)))
++	if (!gomoku_getline(fmtbuf, sizeof(fmtbuf)))
+		quit();
+	switch (*fmtbuf) {
+	case '\0':
diff --git a/gnu/packages/patches/bsd-games-null-check.patch b/gnu/packages/patches/bsd-games-null-check.patch
new file mode 100644
index 0000000000..ba977c95bf
--- /dev/null
+++ b/gnu/packages/patches/bsd-games-null-check.patch
@@ -0,0 +1,24 @@
+diff --git a/hunt/hunt/hunt.c b/hunt/hunt/hunt.c
+index 11f4c44..28321bc 100644
+--- a/hunt/hunt/hunt.c
++++ b/hunt/hunt/hunt.c
+@@ -394,7 +394,8 @@ broadcast_vec(s, vector)
+
+	vec_cnt = 0;
+	for (ip = ifp; ip; ip = ip->ifa_next)
+-		if ((ip->ifa_addr->sa_family == AF_INET) &&
++		if (ip->ifa_addr &&
++		    (ip->ifa_addr->sa_family == AF_INET) &&
+		    (ip->ifa_flags & IFF_BROADCAST))
+			vec_cnt++;
+
+@@ -405,7 +406,8 @@ broadcast_vec(s, vector)
+
+	vec_cnt = 0;
+	for (ip = ifp; ip; ip = ip->ifa_next)
+-		if ((ip->ifa_addr->sa_family == AF_INET) &&
++		if (ip->ifa_addr &&
++		    (ip->ifa_addr->sa_family == AF_INET) &&
+		    (ip->ifa_flags & IFF_BROADCAST))
+			memcpy(&(*vector)[vec_cnt++], ip->ifa_broadaddr,
+			       sizeof(struct sockaddr_in));
diff --git a/gnu/packages/patches/bsd-games-number.c-and-test.patch b/gnu/packages/patches/bsd-games-number.c-and-test.patch
new file mode 100644
index 0000000000..1cf5ba2822
--- /dev/null
+++ b/gnu/packages/patches/bsd-games-number.c-and-test.patch
@@ -0,0 +1,183 @@
+Arch's patch, and a fix for the "number" game's test.
+--- bsdgames-2.17.orig/number/number.c
++++ bsdgames-2.17/number/number.c
+@@ -78,9 +78,9 @@
+
+ void	convert(char *);
+ int	main(int, char *[]);
+-int	number(const char *, int);
+-void	pfract(int);
+-int	unit(int, const char *);
++int	number(const char *, int, int *);
++void	pfract(int, int);
++int	unit(int, const char *, int *);
+ void	usage(void) __attribute__((__noreturn__));
+
+ int lflag;
+@@ -131,7 +131,7 @@
+ convert(line)
+	char *line;
+ {
+-	int flen, len, rval;
++	int flen, len, rval, singular;
+	char *p, *fraction;
+
+	flen = 0;
+@@ -174,7 +174,7 @@
+		--len;
+	}
+
+-	rval = len > 0 ? unit(len, line) : 0;
++	rval = len > 0 ? unit(len, line, &singular) : 0;
+	if (fraction != NULL && flen != 0)
+		for (p = fraction; *p != '\0'; ++p)
+			if (*p != '0') {
+@@ -182,10 +182,10 @@
+					(void)printf("%sand%s",
+					    lflag ? " " : "",
+					    lflag ? " " : "\n");
+-				if (unit(flen, fraction)) {
++				if (unit(flen, fraction, &singular)) {
+					if (lflag)
+						(void)printf(" ");
+-					pfract(flen);
++					pfract(flen, singular);
+					rval = 1;
+				}
+				break;
+@@ -197,9 +197,10 @@
+ }
+
+ int
+-unit(len, p)
++unit(len, p, singular)
+	int len;
+	const char *p;
++	int *singular;
+ {
+	int off, rval;
+
+@@ -208,7 +209,7 @@
+		if (len % 3) {
+			off = len % 3;
+			len -= off;
+-			if (number(p, off)) {
++			if (number(p, off, singular)) {
+				rval = 1;
+				(void)printf(" %s%s",
+				    name3[len / 3], lflag ? " " : ".\n");
+@@ -217,14 +218,16 @@
+		}
+		for (; len > 3; p += 3) {
+			len -= 3;
+-			if (number(p, 3)) {
++			if (number(p, 3, singular)) {
+				rval = 1;
+				(void)printf(" %s%s",
+				    name3[len / 3], lflag ? " " : ".\n");
+			}
+		}
+	}
+-	if (number(p, len)) {
++	if (number(p, len, singular)) {
++		if (rval)
++			*singular = 0;
+		if (!lflag)
+			(void)printf(".\n");
+		rval = 1;
+@@ -233,17 +236,20 @@
+ }
+
+ int
+-number(p, len)
++number(p, len, singular)
+	const char *p;
+	int len;
++	int *singular;
+ {
+	int val, rval;
+
+	rval = 0;
++	*singular = 1;
+	switch (len) {
+	case 3:
+		if (*p != '0') {
+			rval = 1;
++			*singular = 0;
+			(void)printf("%s hundred", name1[*p - '0']);
+		}
+		++p;
+@@ -262,33 +268,42 @@
+			}
+			rval = 1;
+		}
++		if (val != 1)
++			*singular = 0;
+		break;
+	case 1:
+		if (*p != '0') {
+			rval = 1;
+			(void)printf("%s", name1[*p - '0']);
+		}
++		if (*p != '1')
++			*singular = 0;
+	}
+	return (rval);
+ }
+
+ void
+-pfract(len)
++pfract(len, singular)
+	int len;
++	int singular;
+ {
+	static const char *const pref[] = { "", "ten-", "hundred-" };
+
+	switch(len) {
+	case 1:
+-		(void)printf("tenths.\n");
++		(void)printf("tenth");
+		break;
+	case 2:
+-		(void)printf("hundredths.\n");
++		(void)printf("hundredth");
+		break;
+	default:
+-		(void)printf("%s%sths.\n", pref[len % 3], name3[len / 3]);
++		(void)printf("%s%sth", pref[len % 3], name3[len / 3]);
+		break;
+	}
++	if (!singular) {
++		printf("s");
++	}
++	printf(".\n");
+ }
+
+ void
+diff -Naur bsd-games-2.17/tests/number.-0.1 bsd-games-patch/tests/number.-0.1
+--- bsd-games-2.17/tests/number.-0.1	1970-01-01 07:00:00.000000000 +0700
++++ bsd-games-patch/tests/number.-0.1	2020-04-17 15:14:27.831098084 +0700
+@@ -1,3 +1,3 @@
+ minus
+ one.
+-tenths.
++tenth.
+diff -Naur bsd-games-2.17/tests/number.-0.2 bsd-games-patch/tests/number.-0.2
+--- bsd-games-2.17/tests/number.-0.2	1970-01-01 07:00:00.000000000 +0700
++++ bsd-games-patch/tests/number.-0.2	2020-04-17 15:20:48.162336279 +0700
+@@ -0,0 +1,3 @@
++minus
++two.
++tenths.
+diff -Naur bsd-games-2.17/tests/number.test bsd-games-patch/tests/number.test
+--- bsd-games-2.17/tests/number.test	1970-01-01 07:00:00.000000000 +0700
++++ bsd-games-patch/tests/number.test	2020-04-17 15:20:22.774654155 +0700
+@@ -36,6 +36,8 @@
+ testno 1
+ number/number -- -0.1 >test.out 2>&1 || failtest
+ compare test.out tests/number.-0.1
++number/number -- -0.2 >test.out 2>&1 || failtest
++compare test.out tests/number.-0.2
+ rm -f test.out
+
+ testno 2
diff --git a/gnu/packages/patches/bsd-games-prevent-name-collisions.patch b/gnu/packages/patches/bsd-games-prevent-name-collisions.patch
new file mode 100644
index 0000000000..855ce59131
--- /dev/null
+++ b/gnu/packages/patches/bsd-games-prevent-name-collisions.patch
@@ -0,0 +1,13 @@
+There is already a "fish" shell.
+diff -ur bsd-games-2.17.orig/fish/Makefrag bsd-games-2.17/fish/Makefrag
+--- bsd-games-2.17.orig/fish/Makefrag	1970-01-01 07:00:01.000000000 +0700
++++ bsd-games-2.17/fish/Makefrag	2020-08-06 19:18:43.204492847 +0700
+@@ -31,7 +31,7 @@
+ fish_all:	fish/fish fish/fish.instr fish/fish.6
+
+ fish_install:	fish_all
+-	$(INSTALL_BINARY) fish/fish $(INSTALL_PREFIX)$(GAMESDIR)/fish
++	$(INSTALL_BINARY) fish/fish $(INSTALL_PREFIX)$(GAMESDIR)/fish-game
+	$(HIDE_GAME) fish
+	$(INSTALL_DATA) fish/fish.instr $(INSTALL_PREFIX)$(FISH_INSTRFILE)
+	$(INSTALL_MANUAL) fish/fish.6
diff --git a/gnu/packages/patches/bsd-games-stdio.h.patch b/gnu/packages/patches/bsd-games-stdio.h.patch
new file mode 100644
index 0000000000..1c3a402042
--- /dev/null
+++ b/gnu/packages/patches/bsd-games-stdio.h.patch
@@ -0,0 +1,14 @@
+diff -ru a/include/stdio.h b/include/stdio.h
+--- a/include/stdio.h	2000-08-04 10:24:39.000000000 +1000
++++ b/include/stdio.h	2005-06-18 14:26:35.000000000 +1000
+@@ -34,6 +34,10 @@
+ #include <bsd-games.h>
+ #include_next <stdio.h>
+
++__BEGIN_DECLS
++
+ #ifndef HAVE_fgetln
+ extern char *fgetln(FILE *stream, size_t *len);
+ #endif
++
++__END_DECLS
diff --git a/gnu/packages/patches/busybox-1.31.1-fix-build-with-glibc-2.31.patch b/gnu/packages/patches/busybox-1.31.1-fix-build-with-glibc-2.31.patch
deleted file mode 100644
index 1518df067f..0000000000
--- a/gnu/packages/patches/busybox-1.31.1-fix-build-with-glibc-2.31.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-See: https://bugs.gentoo.org/708350
-Author: Patrick McLean <patrick.mclean@sony.com>
-Date: 2020-02-06 23:06:22 +0000
-diff --git a/coreutils/date.c b/coreutils/date.c
-index 3414d38ae..4ade6abb4 100644
---- a/coreutils/date.c
-+++ b/coreutils/date.c
-@@ -279,6 +279,9 @@ int date_main(int argc UNUSED_PARAM, char **argv)
- 		time(&ts.tv_sec);
- #endif
- 	}
-+#if !ENABLE_FEATURE_DATE_NANO
-+	ts.tv_nsec = 0;
-+#endif
- 	localtime_r(&ts.tv_sec, &tm_time);
- 
- 	/* If date string is given, update tm_time, and maybe set date */
-@@ -301,9 +304,10 @@ int date_main(int argc UNUSED_PARAM, char **argv)
- 		if (date_str[0] != '@')
- 			tm_time.tm_isdst = -1;
- 		ts.tv_sec = validate_tm_time(date_str, &tm_time);
-+		ts.tv_nsec = 0;
- 
- 		/* if setting time, set it */
--		if ((opt & OPT_SET) && stime(&ts.tv_sec) < 0) {
-+		if ((opt & OPT_SET) && clock_settime(CLOCK_REALTIME, &ts) < 0) {
- 			bb_perror_msg("can't set date");
- 		}
- 	}
-diff --git a/libbb/missing_syscalls.c b/libbb/missing_syscalls.c
-index 87cf59b3d..dc40d9155 100644
---- a/libbb/missing_syscalls.c
-+++ b/libbb/missing_syscalls.c
-@@ -15,14 +15,6 @@ pid_t getsid(pid_t pid)
- 	return syscall(__NR_getsid, pid);
- }
- 
--int stime(const time_t *t)
--{
--	struct timeval tv;
--	tv.tv_sec = *t;
--	tv.tv_usec = 0;
--	return settimeofday(&tv, NULL);
--}
--
- int sethostname(const char *name, size_t len)
- {
- 	return syscall(__NR_sethostname, name, len);
-diff --git a/util-linux/rdate.c b/util-linux/rdate.c
-index 70f829e7f..878375d78 100644
---- a/util-linux/rdate.c
-+++ b/util-linux/rdate.c
-@@ -95,9 +95,13 @@ int rdate_main(int argc UNUSED_PARAM, char **argv)
- 	if (!(flags & 2)) { /* no -p (-s may be present) */
- 		if (time(NULL) == remote_time)
- 			bb_error_msg("current time matches remote time");
--		else
--			if (stime(&remote_time) < 0)
-+		else {
-+			struct timespec ts;
-+			ts.tv_sec = remote_time;
-+			ts.tv_nsec = 0;
-+			if (clock_settime(CLOCK_REALTIME, &ts) < 0)
- 				bb_perror_msg_and_die("can't set time of day");
-+		}
- 	}
- 
- 	if (flags != 1) /* not lone -s */
diff --git a/gnu/packages/patches/cl-asdf-config-directories.patch b/gnu/packages/patches/cl-asdf-config-directories.patch
new file mode 100644
index 0000000000..2b1b51932c
--- /dev/null
+++ b/gnu/packages/patches/cl-asdf-config-directories.patch
@@ -0,0 +1,44 @@
+Search for ASDF configuration files first in user directories, and then in
+Guix profiles.
+
+diff -ru a/asdf-3.3.4.lisp b/asdf-3.3.4.lisp
+--- a/asdf-3.3.4.lisp	2020-02-14 20:16:22.000000000 +0100
++++ b/asdf-3.3.4.lisp	2020-12-05 11:09:56.066229482 +0100
+@@ -12535,10 +12535,15 @@
+     (find-preferred-file (system-config-pathnames *output-translations-file*)
+                          :direction direction))
+   (defun user-output-translations-directory-pathname (&key (direction :input))
+-    (xdg-config-pathname *output-translations-directory* direction))
+-  (defun system-output-translations-directory-pathname (&key (direction :input))
+-    (find-preferred-file (system-config-pathnames *output-translations-directory*)
++    (find-preferred-file (list (xdg-config-home *output-translations-directory*))
+                          :direction direction))
++  (defun system-output-translations-directory-pathname (&key (direction :input))
++    `(:output-translations
++      ,@(loop :for dir :in (filter-pathname-set
++                            (xdg-config-dirs
++                             "common-lisp/asdf-output-translations.conf.d/"))
++              :collect `(:include ,dir))
++      :inherit-configuration))
+   (defun environment-output-translations ()
+     (getenv "ASDF_OUTPUT_TRANSLATIONS"))
+ 
+@@ -12921,10 +12926,15 @@
+     (find-preferred-file (system-config-pathnames *source-registry-file*)
+                          :direction direction))
+   (defun user-source-registry-directory (&key (direction :input))
+-    (xdg-config-pathname *source-registry-directory* direction))
+-  (defun system-source-registry-directory (&key (direction :input))
+-    (find-preferred-file (system-config-pathnames *source-registry-directory*)
++    (find-preferred-file (list (xdg-config-home *source-registry-directory*))
+                          :direction direction))
++  (defun system-source-registry-directory (&key (direction :input))
++    `(:source-registry
++      ,@(loop :for dir :in (filter-pathname-set
++                            (xdg-config-dirs
++                             "common-lisp/source-registry.conf.d/"))
++              :collect `(:include ,dir))
++      :inherit-configuration))
+   (defun environment-source-registry ()
+     (getenv "CL_SOURCE_REGISTRY"))
+ 
diff --git a/gnu/packages/patches/clamav-system-tomsfastmath.patch b/gnu/packages/patches/clamav-system-tomsfastmath.patch
index 2153723a76..99fbf9c6dc 100644
--- a/gnu/packages/patches/clamav-system-tomsfastmath.patch
+++ b/gnu/packages/patches/clamav-system-tomsfastmath.patch
@@ -1,8 +1,8 @@
 From: Tobias Geerinckx-Rice <me@tobias.gr>
-Date: Sun, 24 Feb 2019 15:50:37 +0100
+Date: Sat, 03 Oct 2020 22:10:20 +0200
 Subject: gnu: clamav: Add support for system tomsfastmath.
 
-Adjusted from the original for clamav 0.101.1:
+Adjusted from the original for clamav 0.103.0:
 
 From 756ff89526b5ffaa7a4f49b1bbecf2ecbd6f85f9 Mon Sep 17 00:00:00 2001
 From: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
@@ -19,9 +19,10 @@ Patch-Name: add-support-for-system-tomsfastmath.patch
  5 files changed, 28 insertions(+), 4 deletions(-)
  create mode 100644 m4/reorganization/libs/tomsfastmath.m4
 
---- a/configure.ac	1970-01-01 01:00:00.000000000 +0100
-+++ b/configure.ac	2019-02-24 15:47:14.076992864 +0100
-@@ -89,6 +89,7 @@
+diff -Naur a/configure.ac b/configure.ac
+--- a/configure.ac	1970-01-01 01:00:01.000000000 +0100
++++ b/configure.ac	2020-10-03 22:04:00.535448352 +0200
+@@ -94,6 +94,7 @@
  m4_include([m4/reorganization/libs/json.m4])
  m4_include([m4/reorganization/libs/pcre.m4])
  m4_include([m4/reorganization/libs/libmspack.m4])
@@ -29,7 +30,7 @@ Patch-Name: add-support-for-system-tomsfastmath.patch
  
  if test "x$use_internal_mspack" = "xno"; then
      mspack_msg="External, $LIBMSPACK_CFLAGS $LIBMSPACK_LIBS"
-@@ -297,6 +298,7 @@
+@@ -361,6 +362,7 @@
  fi
  CL_MSG_STATUS([yara        ],[$enable_yara],[$enable_yara])
  CL_MSG_STATUS([fts         ],[yes],[$lfs_fts_msg])
@@ -37,9 +38,9 @@ Patch-Name: add-support-for-system-tomsfastmath.patch
  
  
  # Yep, downgrading the compiler avoids the bug too:
-diff -Naur clamav-0.101.1/libclamav/bignum.h clamav-0.101.1b/libclamav/bignum.h
---- a/libclamav/bignum.h	1970-01-01 01:00:00.000000000 +0100
-+++ b/libclamav/bignum.h	2019-02-24 15:46:36.216998323 +0100
+diff -Naur a/libclamav/bignum.h b/libclamav/bignum.h
+--- a/libclamav/bignum.h	1970-01-01 01:00:01.000000000 +0100
++++ b/libclamav/bignum.h	2020-10-03 22:04:00.535448352 +0200
 @@ -1,9 +1,13 @@
  #ifndef BIGNUM_H_
  #define BIGNUM_H_
@@ -54,11 +55,11 @@ diff -Naur clamav-0.101.1/libclamav/bignum.h clamav-0.101.1b/libclamav/bignum.h
 +
  typedef fp_int mp_int;
  #define mp_cmp fp_cmp
- #define mp_toradix_n(a,b,c,d) fp_toradix_n(a,b,c,d)
-diff -Naur clamav-0.101.1/libclamav/Makefile.am clamav-0.101.1b/libclamav/Makefile.am
---- a/libclamav/Makefile.am	1970-01-01 01:00:00.000000000 +0100
-+++ b/libclamav/Makefile.am	2019-02-24 15:46:36.216998323 +0100
-@@ -597,8 +597,10 @@
+ #define mp_toradix_n(a, b, c, d) fp_toradix_n(a, b, c, d)
+diff -Naur a/libclamav/Makefile.am b/libclamav/Makefile.am
+--- a/libclamav/Makefile.am	1970-01-01 01:00:01.000000000 +0100
++++ b/libclamav/Makefile.am	2020-10-03 22:06:42.705447754 +0200
+@@ -588,8 +588,10 @@
  	yara_clam.h
  endif
  
@@ -68,23 +69,23 @@ diff -Naur clamav-0.101.1/libclamav/Makefile.am clamav-0.101.1b/libclamav/Makefi
 +
 +if !SYSTEM_TOMSFASTMATH
 +libclamav_la_SOURCES += bignum_fast.h\
-         tomsfastmath/addsub/fp_add.c\
-         tomsfastmath/addsub/fp_add_d.c\
-         tomsfastmath/addsub/fp_addmod.c\
-@@ -680,6 +682,10 @@
-         tomsfastmath/sqr/fp_sqr_comba_generic.c\
-         tomsfastmath/sqr/fp_sqr_comba_small_set.c\
+ 	tomsfastmath/addsub/fp_add.c\
+ 	tomsfastmath/addsub/fp_add_d.c\
+ 	tomsfastmath/addsub/fp_addmod.c\
+@@ -671,6 +673,10 @@
+ 	tomsfastmath/sqr/fp_sqr_comba_generic.c\
+ 	tomsfastmath/sqr/fp_sqr_comba_small_set.c\
  	tomsfastmath/sqr/fp_sqrmod.c
 +else
 +libclamav_la_CFLAGS += $(TOMSFASTMATH_CFLAGS)
 +libclamav_la_LIBADD += $(TOMSFASTMATH_LIBS)
 +endif
  
- .PHONY: version.h.tmp
+ .PHONY2: version.h.tmp
  version.c: version.h
-diff -Naur clamav-0.101.1/libclamav/xdp.c clamav-0.101.1b/libclamav/xdp.c
---- a/libclamav/xdp.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/libclamav/xdp.c	2019-02-24 15:46:36.216998323 +0100
+diff -Naur a/libclamav/xdp.c b/libclamav/xdp.c
+--- a/libclamav/xdp.c	1970-01-01 01:00:01.000000000 +0100
++++ b/libclamav/xdp.c	2020-10-03 22:04:00.535448352 +0200
 @@ -52,7 +52,7 @@
  #include "scanners.h"
  #include "conv.h"
@@ -94,9 +95,9 @@ diff -Naur clamav-0.101.1/libclamav/xdp.c clamav-0.101.1b/libclamav/xdp.c
  #include "filetypes.h"
  
  static char *dump_xdp(cli_ctx *ctx, const char *start, size_t sz);
-diff -Naur clamav-0.101.1/m4/reorganization/libs/tomsfastmath.m4 clamav-0.101.1b/m4/reorganization/libs/tomsfastmath.m4
+diff -Naur a/m4/reorganization/libs/tomsfastmath.m4 b/m4/reorganization/libs/tomsfastmath.m4
 --- a/m4/reorganization/libs/tomsfastmath.m4	1970-01-01 01:00:00.000000000 +0100
-+++ b/m4/reorganization/libs/tomsfastmath.m4	2019-02-24 15:46:36.216998323 +0100
++++ b/m4/reorganization/libs/tomsfastmath.m4	2020-10-03 22:04:00.535448352 +0200
 @@ -0,0 +1,12 @@
 +dnl Check for system tomsfastmath
 +PKG_CHECK_MODULES([TOMSFASTMATH], [tomsfastmath], [have_system_tomsfastmath=yes], [have_system_tomsfastmath=no])
diff --git a/gnu/packages/patches/clang-11.0-libc-search-path.patch b/gnu/packages/patches/clang-11.0-libc-search-path.patch
new file mode 100644
index 0000000000..c014de179d
--- /dev/null
+++ b/gnu/packages/patches/clang-11.0-libc-search-path.patch
@@ -0,0 +1,89 @@
+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 non-Guix systems.
+
+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
+ 
+     // See comments above on the multilib variant for details of why this is
+     // included even from outside the sysroot.
+diff --git a/lib/Driver/ToolChains/Linux.cpp b/lib/Driver/ToolChains/Linux.cpp
+--- 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.
++#if 0
+   Distro Distro(D.getVFS(), Triple);
+ 
+   if (Distro.IsAlpineLinux() || Triple.isAndroid()) {
+@@ -284,6 +287,7 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
+ 
+   if (IsAndroid || Distro.IsOpenSUSE())
+     ExtraOpts.push_back("--enable-new-dtags");
++#endif	// Guix
+ 
+   // 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);
+ 
++// 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);
+ 
+@@ -349,8 +356,9 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
+   if (StringRef(D.Dir).startswith(SysRoot))
+     addPathIfExists(D, D.Dir + "/../lib", Paths);
+ 
+-  addPathIfExists(D, SysRoot + "/lib", Paths);
+-  addPathIfExists(D, SysRoot + "/usr/lib", Paths);
++  // 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);
+ }
+ 
+ ToolChain::CXXStdlibType Linux::GetDefaultCXXStdlibType() const {
diff --git a/gnu/packages/patches/clisp-remove-failing-test.patch b/gnu/packages/patches/clisp-remove-failing-test.patch
deleted file mode 100644
index e44ce80f74..0000000000
--- a/gnu/packages/patches/clisp-remove-failing-test.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-This test doesn't ever complete or timeout
-
----
- tests/socket.tst | 24 ------------------------
- 1 file changed, 24 deletions(-)
-
-diff --git a/tests/socket.tst b/tests/socket.tst
-index 93c6310..1d976ff 100644
---- a/tests/socket.tst
-+++ b/tests/socket.tst
-@@ -551,30 +551,6 @@ T
-           interfaces))
- ("0.0.0.0" "127.0.0.1" "0.0.0.0" "127.0.0.1")
- 
--(multiple-value-bind (run args) (cmd-args)
--  (let ((se (socket:socket-server)))
--    (ext:run-program run :arguments (append args (list "-q" "-q" "-x" (format nil "(close (socket:socket-connect ~D))" (socket:socket-server-port se))))
--                     :wait nil :input nil :output nil)
--    (unwind-protect
--         (with-open-stream (so (socket:socket-accept se))
--           (list
--            (socket:socket-status so)
--            (write-line "foo" so)
--            (socket:socket-status so)
--            #+macos (handler-case (read-char so)
--                      (end-of-file (c)
--                        (princ 'read-char) (princ-error c) t))
--            #-macos (check-os-error (read-char so) (:ECONNRESET 104))
--            (null (member (socket:socket-status so) '(:EOF :APPEND)))
--            #+macos (string= (write-line "bar" so) "bar")
--            #-macos (check-os-error (write-line "bar" so) (:EPIPE 32))
--            (null (member (socket:socket-status so) '(:EOF :APPEND)))
--            (handler-case (read-char so)
--              (end-of-file (c)
--                (princ 'read-char) (princ-error c) 'end-of-file))))
--      (socket:socket-server-close se))))
--(:OUTPUT "foo" :OUTPUT T NIL T NIL END-OF-FILE)
--
- ;; https://sourceforge.net/p/clisp/feature-requests/46/
- (check-os-error (socket:socket-connect 0)
-   #-(or win32 macos) (:ECONNREFUSED 111)
--- 
-
diff --git a/gnu/packages/patches/combinatorial-blas-awpm.patch b/gnu/packages/patches/combinatorial-blas-awpm.patch
index 86d4ab2dcf..d44a6f28ba 100644
--- a/gnu/packages/patches/combinatorial-blas-awpm.patch
+++ b/gnu/packages/patches/combinatorial-blas-awpm.patch
@@ -1,4 +1,6 @@
-Install BipartiteMatchings headers for SuperLU_DIST.
+Install BipartiteMatchings headers for SuperLU_DIST.  Removes global variables
+and code related to performance measurement that is not useful when used in a
+library setting.
 
 --- a/BipartiteMatchings/ApproxWeightPerfectMatching.h
 +++ b/BipartiteMatchings/ApproxWeightPerfectMatching.h
@@ -11,6 +13,167 @@ Install BipartiteMatchings headers for SuperLU_DIST.
  #include "BPMaximalMatching.h"
  #include "BPMaximumMatching.h"
  #include <parallel/algorithm>
+@@ -39,9 +39,6 @@
+     std::shared_ptr<CommGrid> commGrid;
+ };
+ 
+-double t1Comp, t1Comm, t2Comp, t2Comm, t3Comp, t3Comm, t4Comp, t4Comm, t5Comp, t5Comm, tUpdateMateComp;
+-    
+-
+ template <class IT, class NT>
+ std::vector<std::tuple<IT,IT,NT>> ExchangeData(std::vector<std::vector<std::tuple<IT,IT,NT>>> & tempTuples, MPI_Comm World)
+ {
+@@ -391,7 +388,7 @@
+ 
+ 
+ 
+-int ThreadBuffLenForBinning(int itemsize, int nbins)
++inline int ThreadBuffLenForBinning(int itemsize, int nbins)
+ {
+     // 1MB shared cache (per 2 cores) in KNL
+ #ifndef L2_CACHE_SIZE
+@@ -417,7 +414,6 @@
+     
+     
+     
+-    double tstart = MPI_Wtime();
+     
+     
+     MPI_Comm World = param.commGrid->GetWorld();
+@@ -528,9 +524,6 @@
+         }
+     }
+     
+-    t1Comp = MPI_Wtime() - tstart;
+-    tstart = MPI_Wtime();
+-    
+     // Step 3: Communicate data
+     
+     std::vector<int> recvcnt (param.nprocs);
+@@ -548,7 +541,6 @@
+     std::vector< std::tuple<IT,IT,NT> > recvTuples1(totrecv);
+     MPI_Alltoallv(sendTuples.data(), sendcnt.data(), sdispls.data(), MPI_tuple, recvTuples1.data(), recvcnt.data(), rdispls.data(), MPI_tuple, World);
+     MPI_Type_free(&MPI_tuple);
+-    t1Comm = MPI_Wtime() - tstart;
+     return recvTuples1;
+ }
+ 
+@@ -730,9 +722,6 @@
+ 
+     // Step 4: Communicate data
+     
+-    t2Comp = MPI_Wtime() - tstart;
+-    tstart = MPI_Wtime();
+-    
+     std::vector<int> recvcnt (param.nprocs);
+     std::vector<int> rdispls (param.nprocs, 0);
+     
+@@ -748,7 +737,6 @@
+     std::vector< std::tuple<IT,IT,IT,NT> > recvTuples1(totrecv);
+     MPI_Alltoallv(sendTuples.data(), sendcnt.data(), sdispls.data(), MPI_tuple, recvTuples1.data(), recvcnt.data(), rdispls.data(), MPI_tuple, World);
+     MPI_Type_free(&MPI_tuple);
+-    t2Comm = MPI_Wtime() - tstart;
+     return recvTuples1;
+ }
+ 
+@@ -836,7 +824,6 @@
+     param.myrank = myrank;
+     param.commGrid = commGrid;
+     
+-    double t1CompAll = 0, t1CommAll = 0, t2CompAll = 0, t2CommAll = 0, t3CompAll = 0, t3CommAll = 0, t4CompAll = 0, t4CommAll = 0, t5CompAll = 0, t5CommAll = 0, tUpdateMateCompAll = 0, tUpdateWeightAll = 0;
+ 	
+ 	// -----------------------------------------------------------
+ 	// replicate mate vectors for mateCol2Row
+@@ -975,11 +962,7 @@
+ 		}
+ 		
+ 		//vector< tuple<IT,IT,IT, NT> >().swap(recvTuples1);
+-		double t3Comp = MPI_Wtime() - tstart;
+-		tstart = MPI_Wtime();
+ 		recvTuples1 = ExchangeData1(tempTuples1, World);
+-		double t3Comm = MPI_Wtime() - tstart;
+-		tstart = MPI_Wtime();
+ 		
+ 		std::vector<std::tuple<IT,IT,IT,IT, NT>> bestTuplesPhase4 (lncol);
+ 		// we could have used lnrow in both bestTuplesPhase3 and bestTuplesPhase4
+@@ -1041,14 +1024,9 @@
+ 		
+ 		
+ 		//vector< tuple<IT,IT,IT, NT> >().swap(recvTuples1);
+-		double t4Comp = MPI_Wtime() - tstart;
+-		tstart = MPI_Wtime();
+ 		
+ 		std::vector<std::tuple<IT,IT,IT,IT>> recvWinnerTuples = ExchangeData1(winnerTuples, World);
+ 		
+-		double t4Comm = MPI_Wtime() - tstart;
+-		tstart = MPI_Wtime();
+-		
+ 		// at the owner of (mj,j)
+ 		std::vector<std::tuple<IT,IT>> rowBcastTuples(recvWinnerTuples.size()); //(mi,mj)
+ 		std::vector<std::tuple<IT,IT>> colBcastTuples(recvWinnerTuples.size()); //(j,i)
+@@ -1065,15 +1043,10 @@
+ 			colBcastTuples[k] = std::make_tuple(j,i);
+ 			rowBcastTuples[k] = std::make_tuple(mj,mi);
+ 		}
+-		double t5Comp = MPI_Wtime() - tstart;
+-		tstart = MPI_Wtime();
+ 		
+ 		std::vector<std::tuple<IT,IT>> updatedR2C = MateBcast(rowBcastTuples, RowWorld);
+ 		std::vector<std::tuple<IT,IT>> updatedC2R = MateBcast(colBcastTuples, ColWorld);
+ 		
+-		double t5Comm = MPI_Wtime() - tstart;
+-		tstart = MPI_Wtime();
+-		
+ #ifdef THREADED
+ #pragma omp parallel for
+ #endif
+@@ -1095,13 +1068,9 @@
+ 		}
+ 		
+ 		
+-		double tUpdateMateComp = MPI_Wtime() - tstart;
+-		tstart = MPI_Wtime();
+ 		// update weights of matched edges
+ 		// we can do better than this since we are doing sparse updates
+ 		ReplicateMateWeights(param, dcsc, colptr, RepMateC2R, RepMateWR2C, RepMateWC2R);
+-		double tUpdateWeight = MPI_Wtime() - tstart;
+-		
+ 		
+ 		weightPrev = weightCur;
+ 		weightCur = MatchingWeight(RepMateWC2R, RowWorld, minw);
+@@ -1110,32 +1079,8 @@
+ 		//UpdateMatching(mateRow2Col, mateCol2Row, RepMateR2C, RepMateC2R);
+ 		//CheckMatching(mateRow2Col,mateCol2Row);
+ 		
+-		if(myrank==0)
+-		{
+-			std::cout  <<  t1Comp << " " << t1Comm << " "<< t2Comp << " " << t2Comm << " " << t3Comp << " " << t3Comm << " " << t4Comp << " " << t4Comm << " " << t5Comp << " " << t5Comm << " " << tUpdateMateComp << " " << tUpdateWeight << std::endl;
+-            
+-            t1CompAll += t1Comp;
+-            t1CommAll += t1Comm;
+-            t2CompAll += t2Comp;
+-            t2CommAll += t2Comm;
+-            t3CompAll += t3Comp;
+-            t3CommAll += t3Comm;
+-            t4CompAll += t4Comp;
+-            t4CommAll += t4Comm;
+-            t5CompAll += t5Comp;
+-            t5CommAll += t5Comm;
+-            tUpdateMateCompAll += tUpdateMateComp;
+-            tUpdateWeightAll += tUpdateWeight;
+-            
+-		}
+ 	}
+ 	
+-    if(myrank==0)
+-    {
+-        std::cout << "=========== overal timing ==========" << std::endl;
+-        std::cout  <<  t1CompAll << " " << t1CommAll << " " << t2CompAll << " " << t2CommAll << " " << t3CompAll << " " << t3CommAll << " " << t4CompAll << " " << t4CommAll << " " << t5CompAll << " " << t5CommAll << " " << tUpdateMateCompAll << " " << tUpdateWeightAll << std::endl;
+-    }
+-	
+ 	// update the distributed mate vectors from replicated mate vectors
+ 	UpdateMatching(mateRow2Col, mateCol2Row, RepMateR2C, RepMateC2R);
+ 	//weightCur = MatchingWeight(RepMateWC2R, RowWorld);
 --- a/BipartiteMatchings/BPMaximalMatching.h
 +++ b/BipartiteMatchings/BPMaximalMatching.h
 @@ -1,7 +1,7 @@
@@ -22,6 +185,33 @@ Install BipartiteMatchings headers for SuperLU_DIST.
  #include <iostream>
  #include <functional>
  #include <algorithm>
+@@ -14,8 +14,6 @@
+ #define GREEDY 1
+ #define KARP_SIPSER 2
+ #define DMD 3
+-MTRand GlobalMT(123); // for reproducible result
+-double tTotalMaximal;
+ 
+ namespace combblas {
+ 
+@@ -25,7 +25,7 @@
+ void MaximalMatching(Par_DCSC_Bool & A, Par_DCSC_Bool & AT, FullyDistVec<IT, IT>& mateRow2Col,
+             FullyDistVec<IT, IT>& mateCol2Row, FullyDistVec<IT, IT>& degColRecv, int type, bool rand=true)
+ {
+-
++    static MTRand GlobalMT(123); // for reproducible result
+ 	typedef VertexTypeML < IT, IT> VertexType;
+     int nprocs, myrank;
+     MPI_Comm_size(MPI_COMM_WORLD,&nprocs);
+@@ -354,8 +354,6 @@
+ 		
+ 	}
+ 	
+-    tTotalMaximal = MPI_Wtime() - tStart;
+-    
+ 	IT cardinality = mateRow2Col.Count([](IT mate){return mate!=-1;});
+ 	std::vector<double> totalTimes(timing[0].size(),0);
+ 	for(int i=0; i<timing.size(); i++)
 --- a/BipartiteMatchings/BPMaximumMatching.h
 +++ b/BipartiteMatchings/BPMaximumMatching.h
 @@ -1,7 +1,7 @@
@@ -33,6 +223,32 @@ Install BipartiteMatchings headers for SuperLU_DIST.
  #include <mpi.h>
  #include <sys/time.h>
  #include <iostream>
+@@ -11,7 +11,6 @@
+ #include <string>
+ #include <sstream>
+ #include "MatchingDefs.h"
+-double tTotalMaximum;
+ 
+ namespace combblas {
+ 
+@@ -231,7 +231,7 @@
+ void maximumMatching(SpParMat < IT, NT, DER > & A, FullyDistVec<IT, IT>& mateRow2Col,
+                      FullyDistVec<IT, IT>& mateCol2Row, bool prune=true, bool randMM = false, bool maximizeWeight = false)
+ {
+-	
++    static MTRand GlobalMT(123); // for reproducible result	
+ 	typedef VertexTypeMM <IT> VertexType;
+ 	
+     int nthreads=1;
+@@ -420,8 +420,6 @@
+     
+     MPI_Win_free(&winLeaves);
+     
+-    tTotalMaximum = MPI_Wtime() - tstart;
+-    
+     //isMaximalmatching(A, mateRow2Col, mateCol2Row, unmatchedRow, unmatchedCol);
+     //isMatching(mateCol2Row, mateRow2Col); //todo there is a better way to check this
+     
 --- a/BipartiteMatchings/MatchingDefs.h
 +++ b/BipartiteMatchings/MatchingDefs.h
 @@ -9,7 +9,7 @@
diff --git a/gnu/packages/patches/dbxfs-remove-sentry-sdk.patch b/gnu/packages/patches/dbxfs-remove-sentry-sdk.patch
new file mode 100644
index 0000000000..e4f660000d
--- /dev/null
+++ b/gnu/packages/patches/dbxfs-remove-sentry-sdk.patch
@@ -0,0 +1,64 @@
+sentry-sdk provides a link to sentry.io, a service which monitors applications deployed in the wild.
+Defaults to true. Best to just remove the option.
+
+---
+ dbxfs/main.py | 16 ----------------
+ setup.py      |  1 -
+ 2 files changed, 17 deletions(-)
+
+diff --git a/dbxfs/main.py b/dbxfs/main.py
+index 5a6cea1..5d00818 100755
+--- a/dbxfs/main.py
++++ b/dbxfs/main.py
+@@ -40,8 +40,6 @@ import userspacefs
+ import keyring
+ from keyring.errors import KeyringError
+ 
+-import sentry_sdk
+-
+ from block_tracing import block_tracing, BLOCK_TRACING_INHERITS
+ 
+ from dbxfs.dbxfs import FileSystem as DropboxFileSystem
+@@ -299,12 +297,6 @@ def _main(argv=None):
+             config['keyring_user'] = keyring_user
+             save_config = True
+ 
+-    if not config.get("asked_send_error_reports", False):
+-        if yes_no_input("Would you like to help us improve %s by providing anonymous error reports?" % (APP_NAME,), default_yes=True):
+-            config['send_error_reports'] = True
+-        config['asked_send_error_reports'] = True
+-        save_config = True
+-
+     if save_access_token and yes_no_input("Do you want \"%s\" to be the default mount point?" % (mount_point,), default_yes=True):
+         config['mount_point'] = mount_point
+         save_config = True
+@@ -315,14 +307,6 @@ def _main(argv=None):
+ 
+     log.info("Starting %s...", APP_NAME)
+ 
+-    if config.get('send_error_reports', False):
+-        try:
+-            sentry_sdk.init("https://b4b13ebd300849bd92260507a594e618@sentry.io/1293235",
+-                            release='%s@%s' % (APP_NAME, version),
+-                            with_locals=False)
+-        except Exception:
+-            log.warning("Failed to initialize sentry", exc_info=True)
+-
+     if cache_folder is None:
+         cache_folder = os.path.join(appdirs.user_cache_dir(APP_NAME), "file_cache")
+         try:
+diff --git a/setup.py b/setup.py
+index 89e25c6..f940d47 100644
+--- a/setup.py
++++ b/setup.py
+@@ -43,7 +43,6 @@ setup(
+         "privy>=6.0,<7",
+         "keyring>=15.1.0",
+         "keyrings.alt>=3.1,<5",
+-        "sentry_sdk>=0.3,<1",
+     ],
+     extras_require={
+         'safefs': ["safefs"],
+-- 
+2.28.0
+
diff --git a/gnu/packages/patches/dconf-meson-0.52.patch b/gnu/packages/patches/dconf-meson-0.52.patch
deleted file mode 100644
index c636edc108..0000000000
--- a/gnu/packages/patches/dconf-meson-0.52.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-Fix build failure with Meson 0.52.
-
-Taken from upstream:
-https://gitlab.gnome.org/GNOME/dconf/commit/7ad890fb7a2ec90a777a756a1fa20a615ec7245e
-https://gitlab.gnome.org/GNOME/dconf/merge_requests/54
-
-diff --git a/client/meson.build b/client/meson.build
-index f3b7122cb05bfa7bb481c487e3cd052aa1ad58e5..de6387e2cac2aba12b83f2614c277bada434fd16 100644
---- a/client/meson.build
-+++ b/client/meson.build
-@@ -28,7 +28,7 @@ libdconf_client = static_library(
- 
- libdconf_client_dep = declare_dependency(
-   dependencies: gio_dep,
--  link_whole: libdconf_client,
-+  link_with: libdconf_client,
- )
- 
- libdconf = shared_library(
diff --git a/gnu/packages/patches/dee-vapi.patch b/gnu/packages/patches/dee-vapi.patch
new file mode 100644
index 0000000000..3a9353a521
--- /dev/null
+++ b/gnu/packages/patches/dee-vapi.patch
@@ -0,0 +1,15 @@
+Index: dee-1.2.7+17.10.20170616/vapi/Dee-1.0.metadata
+===================================================================
+--- dee-1.2.7+17.10.20170616.orig/vapi/Dee-1.0.metadata
++++ dee-1.2.7+17.10.20170616/vapi/Dee-1.0.metadata
+@@ -2,7 +2,9 @@ GListResultSet skip
+ GListResultSetClass skip
+ 
+ FilterModel
+-	.filter unowned
++        .filter skip // unsupported type for construct property
++Index
++        .reader skip // unsupported type for construct property
+ Model
+ 	.append skip=false
+ 	.build_named_row skip
diff --git a/gnu/packages/patches/eigen-remove-openmp-error-counting.patch b/gnu/packages/patches/eigen-remove-openmp-error-counting.patch
new file mode 100644
index 0000000000..556474e8b3
--- /dev/null
+++ b/gnu/packages/patches/eigen-remove-openmp-error-counting.patch
@@ -0,0 +1,64 @@
+From ef3cc72cb65e2d500459c178c63e349bacfa834f Mon Sep 17 00:00:00 2001
+From: Luke Peterson <hazelnusse@gmail.com>
+Date: Thu, 8 Oct 2020 12:16:53 -0700
+Subject: [PATCH] Remove error counting in OpenMP parallelize_gemm
+
+This resolves a compilation error associated with
+Eigen::eigen_assert_exception. It also eliminates the counting of
+exceptions that may occur in the OpenMP parallel section. If an
+unhandled exception occurs in this section, the behavior is non-conforming
+according to the OpenMP specification.
+---
+ Eigen/src/Core/products/Parallelizer.h | 14 +++++---------
+ test/CMakeLists.txt                    |  2 +-
+ 2 files changed, 6 insertions(+), 10 deletions(-)
+
+diff --git a/Eigen/src/Core/products/Parallelizer.h b/Eigen/src/Core/products/Parallelizer.h
+index 67b2442b5..a3cc05b77 100644
+--- a/Eigen/src/Core/products/Parallelizer.h
++++ b/Eigen/src/Core/products/Parallelizer.h
+@@ -132,8 +132,7 @@ void parallelize_gemm(const Functor& func, Index rows, Index cols, Index depth,
+ 
+   ei_declare_aligned_stack_constructed_variable(GemmParallelInfo<Index>,info,threads,0);
+ 
+-  int errorCount = 0;
+-  #pragma omp parallel num_threads(threads) reduction(+: errorCount)
++  #pragma omp parallel num_threads(threads)
+   {
+     Index i = omp_get_thread_num();
+     // Note that the actual number of threads might be lower than the number of request ones.
+@@ -152,14 +151,11 @@ void parallelize_gemm(const Functor& func, Index rows, Index cols, Index depth,
+     info[i].lhs_start = r0;
+     info[i].lhs_length = actualBlockRows;
+ 
+-    EIGEN_TRY {
+-      if(transpose) func(c0, actualBlockCols, 0, rows, info);
+-      else          func(0, rows, c0, actualBlockCols, info);
+-    } EIGEN_CATCH(...) {
+-      ++errorCount;
+-    }
++    if(transpose)
++      func(c0, actualBlockCols, 0, rows, info);
++    else
++      func(0, rows, c0, actualBlockCols, info);
+   }
+-  if (errorCount) EIGEN_THROW_X(Eigen::eigen_assert_exception());
+ #endif
+ }
+ 
+diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
+index 0747aa6cb..b02577780 100644
+--- a/test/CMakeLists.txt
++++ b/test/CMakeLists.txt
+@@ -163,7 +163,7 @@ ei_add_test(constructor)
+ ei_add_test(linearstructure)
+ ei_add_test(integer_types)
+ ei_add_test(unalignedcount)
+-if(NOT EIGEN_TEST_NO_EXCEPTIONS)
++if(NOT EIGEN_TEST_NO_EXCEPTIONS AND NOT EIGEN_TEST_OPENMP)
+   ei_add_test(exceptions)
+ endif()
+ ei_add_test(redux)
+-- 
+GitLab
+
diff --git a/gnu/packages/patches/emacs-exec-path.patch b/gnu/packages/patches/emacs-exec-path.patch
index 884fa94a64..7303599df1 100644
--- a/gnu/packages/patches/emacs-exec-path.patch
+++ b/gnu/packages/patches/emacs-exec-path.patch
@@ -4,15 +4,13 @@ with things like GCC being referenced.
 
 --- a/lisp/loadup.el
 +++ b/lisp/loadup.el
-@@ -64,6 +64,11 @@
- 			    (expand-file-name "textmodes" dir)
- 			    (expand-file-name "vc" dir)))))
- 
-+;; Reset 'exec-path' so we don't capture the build-time $PATH in the
-+;; 'emacs' executable.
-+(setq-default exec-path nil)
-+(setq exec-path nil)
-+
- (if (eq t purify-flag)
-     ;; Hash consing saved around 11% of pure space in my tests.
-     (setq purify-flag (make-hash-table :test 'equal :size 70000)))
+@@ -481,7 +481,8 @@ lost after dumping")))
+                         ((equal dump-mode "dump") "emacs")
+                         ((equal dump-mode "bootstrap") "emacs")
+                         ((equal dump-mode "pbootstrap") "bootstrap-emacs.pdmp")
+-                        (t (error "unrecognized dump mode %s" dump-mode)))))
++                        (t (error "unrecognized dump mode %s" dump-mode))))
++          (exec-path nil))
+       (message "Dumping under the name %s" output)
+       (condition-case ()
+           (delete-file output)
diff --git a/gnu/packages/patches/emacs-ignore-empty-xim-styles.patch b/gnu/packages/patches/emacs-ignore-empty-xim-styles.patch
index 606d3ece6f..398e65bdc8 100644
--- a/gnu/packages/patches/emacs-ignore-empty-xim-styles.patch
+++ b/gnu/packages/patches/emacs-ignore-empty-xim-styles.patch
@@ -5,7 +5,7 @@ Index: emacs-26.3/src/xfns.c
 ===================================================================
 --- emacs-26.3.orig/src/xfns.c
 +++ emacs-26.3/src/xfns.c
-@@ -2533,6 +2533,8 @@ xic_free_xfontset (struct frame *f)
+@@ -2628,6 +2628,8 @@ xic_free_xfontset (struct frame *f)
  static XIMStyle
  best_xim_style (XIMStyles *xim)
  {
@@ -14,7 +14,7 @@ Index: emacs-26.3/src/xfns.c
    int i, j;
    int nr_supported = ARRAYELTS (supported_xim_styles);
 
-@@ -2541,6 +2543,7 @@ best_xim_style (XIMStyles *xim)
+@@ -2636,6 +2638,7 @@ best_xim_style (XIMStyles *xim)
        if (supported_xim_styles[i] == xim->supported_styles[j])
 	return supported_xim_styles[i];
 
diff --git a/gnu/packages/patches/emacs-scheme-complete-scheme-r5rs-info.patch b/gnu/packages/patches/emacs-scheme-complete-scheme-r5rs-info.patch
deleted file mode 100644
index 6c49bdcdde..0000000000
--- a/gnu/packages/patches/emacs-scheme-complete-scheme-r5rs-info.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-Fix completion for R5RS Scheme.
-See https://github.com/ashinn/scheme-complete/issues/1
-
---- scheme-complete-master/scheme-complete.el.orig	2015-12-25 21:59:09.896909029 +0100
-+++ scheme-complete-master/scheme-complete.el	2015-12-25 21:59:17.924993998 +0100
-@@ -591,7 +591,7 @@
-            '((exact->inexact (lambda (z) z))
-              (inexact->exact (lambda (z) z)))
-            (mapcar #'(lambda (x)
--                       (list x (scheme-env-lookup *scheme-r7rs-info* x)))
-+                       (scheme-env-lookup *scheme-r7rs-info* x))
-                    *scheme-r5rs-bindings*))))
-   *scheme-r5rs-info*)
- 
diff --git a/gnu/packages/patches/emacs-source-date-epoch.patch b/gnu/packages/patches/emacs-source-date-epoch.patch
index 41c03ef514..77ea7ac15c 100644
--- a/gnu/packages/patches/emacs-source-date-epoch.patch
+++ b/gnu/packages/patches/emacs-source-date-epoch.patch
@@ -3,9 +3,9 @@ Honor SOURCE_DATE_EPOCH variable to avoid non-determinism in generated
 
 --- a/lisp/emacs-lisp/autoload.el
 +++ b/lisp/emacs-lisp/autoload.el
-@@ -378,8 +378,12 @@
-   "Insert the section-header line,
- which lists the file name and which functions are in it, etc."
+@@ -419,8 +419,12 @@
+   ;;              nil t))
+   ;;        (match-end 2))))
    (insert generate-autoload-section-header)
 -  (prin1 `(autoloads ,autoloads ,load-name ,file ,time)
 -	 outbuf)
diff --git a/gnu/packages/patches/emacs27-exec-path.patch b/gnu/packages/patches/emacs27-exec-path.patch
deleted file mode 100644
index 418aa633a1..0000000000
--- a/gnu/packages/patches/emacs27-exec-path.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-Do not capture the build-time value of $PATH in the 'emacs' executable
-since this can noticeably increase the size of the closure of Emacs
-with things like GCC being referenced.
-
-(like emacs-exec-path.patch, but for Emacs 27)
-
---- a/lisp/loadup.el
-+++ b/lisp/loadup.el
-@@ -479,7 +479,8 @@ lost after dumping")))
-                         ((equal dump-mode "dump") "emacs")
-                         ((equal dump-mode "bootstrap") "emacs")
-                         ((equal dump-mode "pbootstrap") "bootstrap-emacs.pdmp")
--                        (t (error "unrecognized dump mode %s" dump-mode)))))
-+                        (t (error "unrecognized dump mode %s" dump-mode))))
-+          (exec-path nil))
-       (message "Dumping under the name %s" output)
-       (condition-case ()
-           (delete-file output)
diff --git a/gnu/packages/patches/farstream-make.patch b/gnu/packages/patches/farstream-make.patch
new file mode 100644
index 0000000000..6c1e9e7119
--- /dev/null
+++ b/gnu/packages/patches/farstream-make.patch
@@ -0,0 +1,39 @@
+This patch comes from upstream:
+https://gitlab.freedesktop.org/farstream/farstream/-/merge_requests/4
+
+From 54987d445ea714b467d901b7daf8c09ed0644189 Mon Sep 17 00:00:00 2001
+From: Debarshi Ray <debarshir@freedesktop.org>
+Date: Thu, 12 Mar 2020 14:07:23 +0100
+Subject: [PATCH] build: Adapt to backwards incompatible change in GNU Make 4.3
+
+GNU Make 4.3 has a backwards incompatible change affecting the use of
+number signs or hashes (ie., #) inside function invocations. See:
+https://lists.gnu.org/archive/html/info-gnu/2020-01/msg00004.html
+
+In this case, it would expand the '\#' in the '\n\#include \"$(h)\"'
+argument to the foreach call to '\#', not '#'. This would lead to
+spurious backslashes in front of the '#include' directives in the
+generated fs-enumtypes.c file.
+
+Spotted by Ernestas Kulik.
+---
+ common-modified/gst-glib-gen.mak | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/common-modified/gst-glib-gen.mak b/common-modified/gst-glib-gen.mak
+index 14f1ba37..2247a41c 100644
+--- a/common-modified/gst-glib-gen.mak
++++ b/common-modified/gst-glib-gen.mak
+@@ -6,7 +6,8 @@
+ #glib_gen_prefix=gst_color_balance
+ #glib_gen_basename=colorbalance
+ 
+-enum_headers=$(foreach h,$(glib_enum_headers),\n\#include \"$(h)\")
++hash:=\#
++enum_headers=$(foreach h,$(glib_enum_headers),\n$(hash)include \"$(h)\")
+ 
+ # these are all the rules generating the relevant files
+ $(glib_gen_basename)-enumtypes.h: $(glib_enum_headers)
+-- 
+GitLab
+
diff --git a/gnu/packages/patches/fpc-reproducibility.patch b/gnu/packages/patches/fpc-reproducibility.patch
new file mode 100644
index 0000000000..619f42b3b5
--- /dev/null
+++ b/gnu/packages/patches/fpc-reproducibility.patch
@@ -0,0 +1,28 @@
+Remove/patch metadata timestamps for reproducibility.
+
+diff -ur fpcbuild-3.0.0.old/fpcsrc/packages/fpmkunit/src/fpmkunit.pp fpcbuild-3.0.0/fpcsrc/packages/fpmkunit/src/fpmkunit.pp
+--- fpcbuild-3.0.0.old/fpcsrc/packages/fpmkunit/src/fpmkunit.pp	2015-11-04 16:17:00.000000000 -0500
++++ fpcbuild-3.0.0/fpcsrc/packages/fpmkunit/src/fpmkunit.pp	2017-01-26 16:25:29.327339282 -0500
+@@ -3779,7 +3779,7 @@
+       Values[KeyName]:=Name;
+       Values[KeyVersion]:=Version;
+       // TODO Generate checksum based on PPUs
+-      InstalledChecksum:=DateTimeToFileDate(Now);
++      InstalledChecksum:=0;
+       Values[KeyChecksum]:=IntToStr(InstalledChecksum);
+       Values[KeyCPU]:=CPUToString(ACPU);
+       Values[KeyOS]:=OSToString(AOS);
+diff -ur fpcbuild-3.0.0.old/fpcsrc/utils/fpcmkcfg/fpcmkcfg.pp fpcbuild-3.0.0/fpcsrc/utils/fpcmkcfg/fpcmkcfg.pp
+--- fpcbuild-3.0.0.old/fpcsrc/utils/fpcmkcfg/fpcmkcfg.pp	2013-06-01 18:27:16.000000000 -0400
++++ fpcbuild-3.0.0/fpcsrc/utils/fpcmkcfg/fpcmkcfg.pp	2017-01-26 16:24:22.949044903 -0500
+@@ -234,8 +234,8 @@
+   TemplateParser.Values['FPCTARGETOS'] := BuildOSTarget;
+   TemplateParser.Values['FPCBIN'] := 'fpc';
+   TemplateParser.Values['PWD'] := GetCurrentDir;
+-  TemplateParser.Values['BUILDDATE'] := DateToStr(Date);
+-  TemplateParser.Values['BUILDTIME'] := TimeToStr(Time);
++  TemplateParser.Values['BUILDDATE'] := '';
++  TemplateParser.Values['BUILDTIME'] := '';
+ 
+   TemplateParser.Values['LOCALREPOSITORY'] := GetDefaultLocalRepository;
+   TemplateParser.Values['LOCALBASEPATH'] := GetDefaultLocalBasepath;
diff --git a/gnu/packages/patches/fplll-std-fenv.patch b/gnu/packages/patches/fplll-std-fenv.patch
new file mode 100644
index 0000000000..aa2438f0c9
--- /dev/null
+++ b/gnu/packages/patches/fplll-std-fenv.patch
@@ -0,0 +1,18 @@
+See https://github.com/fplll/fplll/issues/444
+
+--- fplll-5.3.3-checkout.old/fplll/enum/enumerate_base.h	2020-09-23 13:55:27.833769823 +0200
++++ fplll-5.3.3-checkout/fplll/enum/enumerate_base.h	2020-09-23 13:56:14.313771769 +0200
+@@ -127,10 +127,10 @@
+   int rounding_backup;
+   void save_rounding()
+   {
+-    rounding_backup = std::fegetround();
+-    std::fesetround(FE_TONEAREST);
++    rounding_backup = fegetround();
++    fesetround(FE_TONEAREST);
+   }
+-  void restore_rounding() { std::fesetround(rounding_backup); }
++  void restore_rounding() { fesetround(rounding_backup); }
+ 
+   inline bool next_pos_up()
+   {
diff --git a/gnu/packages/patches/freebayes-devendor-deps.patch b/gnu/packages/patches/freebayes-devendor-deps.patch
new file mode 100644
index 0000000000..7e84666b85
--- /dev/null
+++ b/gnu/packages/patches/freebayes-devendor-deps.patch
@@ -0,0 +1,152 @@
+This patch is original to Guix, ongoing work to upstream bits as possible.
+
+From 9acc56db5e7469f5976be38b52ba4993de98ee38 Mon Sep 17 00:00:00 2001
+From: Efraim Flashner <efraim@flashner.co.il>
+Date: Sun, 17 Jan 2021 13:27:17 +0200
+Subject: [PATCH] devendor-dependants
+
+---
+ meson.build | 84 +++++++++++++++++++++++++++++++++++++++++------------
+ 1 file changed, 66 insertions(+), 18 deletions(-)
+
+diff --git a/meson.build b/meson.build
+index f6bf242..bded4af 100644
+--- a/meson.build
++++ b/meson.build
+@@ -9,8 +9,13 @@ project('freebayes', ['cpp', 'c'],
+ 
+ zlib_dep = dependency('zlib')
+ lzma_dep = dependency('liblzma')
++simde_dep = dependency('simde')
+ bzip2_dep = dependency('bz2lib', required: false)
+ htslib_dep = dependency('htslib', required : false)
++tabixpp_dep = dependency('tabixpp', required : false)
++fastahack_dep = dependency('fastahack', required : false)
++smithwaterman_dep = dependency('smithwaterman', required : false)
++vcflib_dep = dependency('libvcflib', required: false)
+ thread_dep = dependency('threads')
+ 
+ if htslib_dep.found()
+@@ -59,6 +64,56 @@ else
+ ]
+ endif
+ 
++if tabixpp_dep.found()
++  tabixpp_includes = ''
++  tabixpp_src = []
++else
++  tabixpp_includes = [
++    'vcflib/tabixpp',
++    ]
++  tabixpp_src = [
++    'vcflib/tabixpp/tabix.cpp',
++    ]
++endif
++
++if vcflib_dep.found()
++  vcflib_includes = ''
++  vcflib_src = []
++else
++  vcflib_includes = [
++    'vcflib/src',
++    'vcflib/multichoose',
++    'vcflib/filevercmp',
++    ]
++  vcflib_src = [
++    'vcflib/src/Variant.cpp',
++    ]
++endif
++
++if fastahack_dep.found()
++  fastahack_src = []
++else
++  fastahack_src = [
++    'vcflib/fastahack/Fasta.cpp',
++    'vcflib/src/split.cpp',
++    ]
++endif
++
++if smithwaterman_dep.found()
++  smithwaterman_includes = ''
++  smithwaterman_src = []
++else
++  smithwaterman_includes = [
++    'vcflib/smithwaterman',
++    ]
++  smithwaterman_src = [
++    'vcflib/smithwaterman/SmithWatermanGotoh.cpp',
++    'vcflib/smithwaterman/disorder.cpp',
++    'vcflib/smithwaterman/Repeats.cpp',
++    'vcflib/smithwaterman/LeftAlign.cpp',
++    'vcflib/smithwaterman/IndelAllele.cpp',
++    ]
++endif
+ 
+ 
+ #
+@@ -105,23 +160,18 @@ seqlib_src = [
+ ]
+ 
+ vcflib_src = [
+-    'vcflib/tabixpp/tabix.cpp',
+-    'vcflib/src/Variant.cpp',
+-    'vcflib/smithwaterman/SmithWatermanGotoh.cpp',
+-    'vcflib/smithwaterman/disorder.cpp',
+-    'vcflib/smithwaterman/Repeats.cpp',
+-    'vcflib/smithwaterman/LeftAlign.cpp',
+-    'vcflib/smithwaterman/IndelAllele.cpp',
++    vcflib_src,
++    tabixpp_src,
++    smithwaterman_src,
+ ]
+ 
+ bamleftalign_src = [
+     'src/bamleftalign.cpp',
+     'src/IndelAllele.cpp',
+     'contrib/SeqLib/src/BamWriter.cpp',
+-    'vcflib/fastahack/Fasta.cpp',
+-    'vcflib/smithwaterman/LeftAlign.cpp',
+-    'vcflib/smithwaterman/IndelAllele.cpp',
+-    'vcflib/src/split.cpp',
++    fastahack_src,
++    smithwaterman_src,
++    vcflib_src,
+     'src/LeftAlign.cpp',
+ ]
+ 
+@@ -134,11 +184,9 @@ incdir = include_directories(
+     'ttmath',
+     'contrib',
+     'contrib/SeqLib',
+-    'vcflib/src',
+-    'vcflib/tabixpp',
+-    'vcflib/smithwaterman',
+-    'vcflib/multichoose',
+-    'vcflib/filevercmp')
++    tabixpp_includes,
++    smithwaterman_includes,
++    vcflib_includes)
+ 
+ c_args = ['-fpermissive','-w']
+ cpp_args = ['-fpermissive','-w','-Wc++14-compat']
+@@ -152,7 +200,7 @@ executable('freebayes',
+            include_directories : incdir,
+            cpp_args : cpp_args,
+            c_args :   c_args,
+-           dependencies: [zlib_dep, lzma_dep, htslib_dep, thread_dep],
++           dependencies: [zlib_dep, lzma_dep, simde_dep, htslib_dep, tabixpp_dep, smithwaterman_dep, vcflib_dep, thread_dep],
+            install: true
+           )
+ 
+@@ -165,7 +213,7 @@ executable('bamleftalign',
+            include_directories : incdir,
+            cpp_args : cpp_args,
+            c_args :   c_args,
+-           dependencies: [zlib_dep, lzma_dep, htslib_dep, thread_dep],
++           dependencies: [zlib_dep, lzma_dep, simde_dep, htslib_dep, tabixpp_dep, fastahack_dep, smithwaterman_dep, vcflib_dep, thread_dep],
+            install: true
+           )
+ 
+-- 
+2.30.0
+
diff --git a/gnu/packages/patches/gajim-honour-GAJIM_PLUGIN_PATH.patch b/gnu/packages/patches/gajim-honour-GAJIM_PLUGIN_PATH.patch
new file mode 100644
index 0000000000..cb3313197c
--- /dev/null
+++ b/gnu/packages/patches/gajim-honour-GAJIM_PLUGIN_PATH.patch
@@ -0,0 +1,11 @@
+--- a/gajim/common/configpaths.py	2020-11-19 12:12:02.004414323 +0100
++++ a/gajim/common/configpaths.py	2020-11-19 15:34:52.211476895 +0100
+@@ -47,7 +47,7 @@
+         return [Path(_paths['PLUGINS_BASE']),
+                 Path('/app/plugins')]
+     return [Path(_paths['PLUGINS_BASE']),
+-            Path(_paths['PLUGINS_USER'])]
++            Path(_paths['PLUGINS_USER'])] + ([Path(os.getenv('GAJIM_PLUGIN_PATH'))] if os.getenv('GAJIM_PLUGIN_PATH') and Path(os.getenv('GAJIM_PLUGIN_PATH')).is_dir() else [])
+ 
+ 
+ def get_paths(type_: PathType) -> Generator[str, None, None]:
diff --git a/gnu/packages/patches/gcc-6-fix-buffer-size.patch b/gnu/packages/patches/gcc-6-fix-buffer-size.patch
new file mode 100644
index 0000000000..5fcd769d45
--- /dev/null
+++ b/gnu/packages/patches/gcc-6-fix-buffer-size.patch
@@ -0,0 +1,15 @@
+Fixes a possible buffer overflow.  (There are others)
+Author: Danny Milosavljevic <dannym@scratchpost.org>
+Date: 2020-11-16
+
+--- a/gcc/gimplify.c.orig	2020-10-29 08:45:11.532479774 +0100
++++ b/gcc/gimplify.c	2020-10-29 08:45:49.584637018 +0100
+@@ -5229,7 +5229,7 @@
+ 	     flexibility, split it into separate input and output
+  	     operands.  */
+ 	  tree input;
+-	  char buf[10];
++	  char buf[12];
+ 
+ 	  /* Turn the in/out constraint into an output constraint.  */
+ 	  char *p = xstrdup (constraint);
diff --git a/gnu/packages/patches/gcc-6-fix-isl-includes.patch b/gnu/packages/patches/gcc-6-fix-isl-includes.patch
new file mode 100644
index 0000000000..ab3c5634ea
--- /dev/null
+++ b/gnu/packages/patches/gcc-6-fix-isl-includes.patch
@@ -0,0 +1,16 @@
+See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86724
+Author: Rainer Jung
+Date: 2018-07-29
+
+isl 0.20 stopped including other unused header files in their header files.
+Therefore,now it's necessary to include the stuff ourselves.
+--- .../gcc/graphite.h 2018-01-03 11:03:58.000000000 +0000
++++ .../gcc/graphite.h 2018-07-29 17:42:55.836121000 +0000
+@@ -37,6 +37,8 @@
+ #include <isl/schedule.h>
+ #include <isl/ast_build.h>
+ #include <isl/schedule_node.h>
++#include <isl/id.h>
++#include <isl/space.h>
+
+ typedef struct poly_dr *poly_dr_p;
diff --git a/gnu/packages/patches/genimage-signedness.patch b/gnu/packages/patches/genimage-signedness.patch
new file mode 100644
index 0000000000..2204dfb545
--- /dev/null
+++ b/gnu/packages/patches/genimage-signedness.patch
@@ -0,0 +1,24 @@
+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/glib-appinfo-watch.patch b/gnu/packages/patches/glib-appinfo-watch.patch
new file mode 100644
index 0000000000..638a5e0949
--- /dev/null
+++ b/gnu/packages/patches/glib-appinfo-watch.patch
@@ -0,0 +1,92 @@
+This patch lets GLib's GDesktopAppInfo API watch and notice changes
+to the Guix user and system profiles.  That way, the list of available
+applications shown by the desktop environment is immediately updated
+when the user runs "guix install", "guix remove", or "guix system
+reconfigure" (see <https://issues.guix.gnu.org/35594>).
+
+It does so by monitoring /var/guix/profiles (for changes to the system
+profile) and /var/guix/profiles/per-user/USER (for changes to the user
+profile) and crawling their share/applications sub-directory when
+changes happen.
+
+diff --git a/gio/gdesktopappinfo.c b/gio/gdesktopappinfo.c
+index f1e2fdd..095c110 100644
+--- a/gio/gdesktopappinfo.c
++++ b/gio/gdesktopappinfo.c
+@@ -148,6 +148,7 @@ typedef struct
+   gchar                      *alternatively_watching;
+   gboolean                    is_config;
+   gboolean                    is_setup;
++  gchar                      *guix_profile_watch_dir;
+   GFileMonitor               *monitor;
+   GHashTable                 *app_names;
+   GHashTable                 *mime_tweaks;
+@@ -180,6 +181,7 @@ desktop_file_dir_unref (DesktopFileDir *dir)
+     {
+       desktop_file_dir_reset (dir);
+       g_free (dir->path);
++      g_free (dir->guix_profile_watch_dir);
+       g_free (dir);
+     }
+ }
+@@ -204,6 +206,13 @@ desktop_file_dir_get_alternative_dir (DesktopFileDir *dir)
+ {
+   gchar *parent;
+ 
++  /* If DIR is a profile, watch the specified directory--e.g.,
++   * /var/guix/profiles/per-user/$USER/ for the user profile.  Do not watch
++   * ~/.guix-profile or /run/current-system/profile because GFileMonitor does
++   * not pass IN_DONT_FOLLOW and thus cannot notice any change.  */
++  if (dir->guix_profile_watch_dir != NULL)
++    return g_strdup (dir->guix_profile_watch_dir);
++
+   /* If the directory itself exists then we need no alternative. */
+   if (g_access (dir->path, R_OK | X_OK) == 0)
+     return NULL;
+@@ -249,11 +258,11 @@ desktop_file_dir_changed (GFileMonitor      *monitor,
+    *
+    * If this is a notification for a parent directory (because the
+    * desktop directory didn't exist) then we shouldn't fire the signal
+-   * unless something actually changed.
++   * unless something actually changed or it's in /var/guix/profiles.
+    */
+   g_mutex_lock (&desktop_file_dir_lock);
+ 
+-  if (dir->alternatively_watching)
++  if (dir->alternatively_watching && dir->guix_profile_watch_dir == NULL)
+     {
+       gchar *alternative_dir;
+ 
+@@ -1555,6 +1564,32 @@ desktop_file_dirs_lock (void)
+       for (i = 0; dirs[i]; i++)
+         g_ptr_array_add (desktop_file_dirs, desktop_file_dir_new (dirs[i]));
+ 
++      {
++        /* Monitor the system and user profile under /var/guix/profiles and
++         * treat modifications to them as if they were modifications to their
++         * /share sub-directory.  */
++        const gchar *user;
++        DesktopFileDir *system_profile_dir, *user_profile_dir;
++
++        system_profile_dir =
++          desktop_file_dir_new ("/var/guix/profiles/system/profile/share");
++        system_profile_dir->guix_profile_watch_dir = g_strdup ("/var/guix/profiles");
++        g_ptr_array_add (desktop_file_dirs, desktop_file_dir_ref (system_profile_dir));
++
++        user = g_get_user_name ();
++        if (user != NULL)
++          {
++            gchar *profile_dir, *user_data_dir;
++
++            profile_dir = g_build_filename ("/var/guix/profiles/per-user", user, NULL);
++            user_data_dir = g_build_filename (profile_dir, "guix-profile", "share", NULL);
++            user_profile_dir = desktop_file_dir_new (user_data_dir);
++            user_profile_dir->guix_profile_watch_dir = profile_dir;
++            g_ptr_array_add (desktop_file_dirs, desktop_file_dir_ref (user_profile_dir));
++            g_free (user_data_dir);
++          }
++      }
++
+       /* The list of directories will never change after this, unless
+        * g_get_user_config_dir() changes due to %G_TEST_OPTION_ISOLATE_DIRS. */
+       desktop_file_dirs_config_dir = user_config_dir;
diff --git a/gnu/packages/patches/gnash-fix-giflib-version.patch b/gnu/packages/patches/gnash-fix-giflib-version.patch
new file mode 100644
index 0000000000..44816d2a14
--- /dev/null
+++ b/gnu/packages/patches/gnash-fix-giflib-version.patch
@@ -0,0 +1,17 @@
+Description: Change GIFLIB_MINOR to allow matching with v5.2+
+Source: https://savannah.gnu.org/patch/index.php?9873
+Author: marius851000
+
+diff --git a/libbase/GnashImageGif.cpp b/libbase/GnashImageGif.cpp
+index 2ae5ddb..b87b1e7 100644
+--- a/libbase/GnashImageGif.cpp
++++ b/libbase/GnashImageGif.cpp
+@@ -120,7 +120,7 @@ GifInput::GifInput(std::shared_ptr<IOChannel> in)
+ GifInput::~GifInput()
+ {
+     // Clean up allocated data.
+-#if GIFLIB_MAJOR==5 && GIFLIB_MINOR==1
++#if GIFLIB_MAJOR==5 && GIFLIB_MINOR!=0
+ 	DGifCloseFile(_gif, 0);
+ #else
+ 	DGifCloseFile(_gif);
diff --git a/gnu/packages/patches/gnome-settings-daemon-gc.patch b/gnu/packages/patches/gnome-settings-daemon-gc.patch
new file mode 100644
index 0000000000..688544b418
--- /dev/null
+++ b/gnu/packages/patches/gnome-settings-daemon-gc.patch
@@ -0,0 +1,43 @@
+This patch adds a "guix gc" button to the low disk space notification
+that 'gsd-housekeeping' emits.
+
+diff --git a/plugins/housekeeping/gsd-disk-space.c b/plugins/housekeeping/gsd-disk-space.c
+index bd3437e..89027d8 100644
+--- a/plugins/housekeeping/gsd-disk-space.c
++++ b/plugins/housekeeping/gsd-disk-space.c
+@@ -546,6 +546,21 @@ empty_trash_callback (NotifyNotification *n,
+         notify_notification_close (n, NULL);
+ }
+ 
++static void
++guix_gc_callback (NotifyNotification *n,
++                  const char         *action)
++{
++        const gchar *argv[] = { "guix", "gc", NULL };
++
++        g_assert (action != NULL);
++        g_assert (strcmp (action, "run-guix-gc") == 0);
++
++        g_spawn_async (NULL, (gchar **) argv, NULL, G_SPAWN_SEARCH_PATH,
++                       NULL, NULL, NULL, NULL);
++
++        notify_notification_close (n, NULL);
++}
++
+ static void
+ on_notification_closed (NotifyNotification *n)
+ {
+@@ -591,6 +606,13 @@ ldsm_notify (const char *summary,
+                                                 g_free);
+         }
+ 
++        notify_notification_add_action (notification,
++                                        "run-guix-gc",
++                                        _("Collect Unused Guix Items"),
++                                        (NotifyActionCallback) guix_gc_callback,
++                                        NULL,
++                                        NULL);
++
+         has_trash = ldsm_mount_has_trash (mount_path);
+ 
+         if (has_trash) {
diff --git a/gnu/packages/patches/gpodder-disable-updater.patch b/gnu/packages/patches/gpodder-disable-updater.patch
new file mode 100644
index 0000000000..1aa0afe4f1
--- /dev/null
+++ b/gnu/packages/patches/gpodder-disable-updater.patch
@@ -0,0 +1,18 @@
+Description: Modify the default value for check_on_startup to false.
+ This prevents an privacy/information disclosure unless the user
+ explicitly opts-in for the update check.
+Forwarded: not-needed
+Origin: vendor
+Author: tony mancill <tmancill@debian.org>
+
+--- a/src/gpodder/config.py
++++ b/src/gpodder/config.py
+@@ -93,7 +93,7 @@
+
+     # Software updates from gpodder.org
+     'software_update': {
+-        'check_on_startup': True,  # check for updates on start
++        'check_on_startup': False,  # check for updates on start
+         'last_check': 0,  # unix timestamp of last update check
+         'interval': 5,  # interval (in days) to check for updates
+     },
diff --git a/gnu/packages/patches/gpsbabel-fix-i686-test.patch b/gnu/packages/patches/gpsbabel-fix-i686-test.patch
new file mode 100644
index 0000000000..5ba0305113
--- /dev/null
+++ b/gnu/packages/patches/gpsbabel-fix-i686-test.patch
@@ -0,0 +1,46 @@
+https://github.com/gpsbabel/gpsbabel/commit/465a74194d53acea5c8d74c5cf3cb2940546ec92.patch
+Can be removed next release
+
+From 465a74194d53acea5c8d74c5cf3cb2940546ec92 Mon Sep 17 00:00:00 2001
+From: tsteven4 <13596209+tsteven4@users.noreply.github.com>
+Date: Fri, 7 Aug 2020 11:29:22 -0600
+Subject: [PATCH] fix i386 regression error with engima. (#620)
+
+this was motivated by the test failure seen at
+https://buildd.debian.org/status/fetch.php?pkg=gpsbabel&arch=i386&ver=1.7.0%2Bds-4&stamp=1596794554&raw=0
+---
+ enigma.cc | 13 ++++++++++---
+ 1 file changed, 10 insertions(+), 3 deletions(-)
+
+diff --git a/enigma.cc b/enigma.cc
+index 850f27b4e..32fea92d6 100644
+--- a/enigma.cc
++++ b/enigma.cc
+@@ -21,9 +21,16 @@
+ 
+  */
+ 
++#include <cmath>           // for fabs, lround
++#include <cstdint>         // for int32_t, uint8_t, uint32_t
++#include <cstdlib>         // for abs
++#include <cstring>         // for strlen, memcpy, memset
++
++#include <QtCore/QString>  // for QString
++
+ #include "defs.h"
+-#include <cmath>
+-#include <cstdlib>
++#include "gbfile.h"        // for gbfclose, gbfopen_le, gbfread, gbfwrite, gbfile
++
+ 
+ #define MYNAME "Enigma binary route and waypoint file format"
+ 
+@@ -177,7 +184,7 @@ enigma_waypt_disp(const Waypoint* wpt)
+   le_write32(&ewpt.longitude, decToEnigmaPosition(wpt->longitude));
+   ewpt.waypoint_type = WTYPE_WAYPOINT;
+   if (wpt->altitude != unknown_alt) {
+-    le_write32(&ewpt.data.wp_altitude, METERS_TO_FEET(wpt->altitude) + 1000);
++    le_write32(&ewpt.data.wp_altitude, lround(METERS_TO_FEET(wpt->altitude)) + 1000);
+   }
+   if (wpt->shortname != nullptr) {
+     ewpt.shortname_len = (uint8_t) min(6, strlen(CSTRc(wpt->shortname)));
diff --git a/gnu/packages/patches/gpsbabel-minizip.patch b/gnu/packages/patches/gpsbabel-minizip.patch
deleted file mode 100644
index 8f3bb36f57..0000000000
--- a/gnu/packages/patches/gpsbabel-minizip.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-Patch taken from https://sources.debian.org/data/main/g/gpsbabel/1.5.3-2/debian/patches/use_minizip.
-
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -120,7 +120,7 @@ LIBOBJS = queue.o route.o waypt.o filter
- 	  src/core/usasciicodec.o\
- 	  src/core/ziparchive.o \
- 	  $(GARMIN) $(JEEPS) $(SHAPE) @ZLIB@ $(FMTS) $(FILTERS)
--OBJS = main.o globals.o $(LIBOBJS) @FILEINFO@
-+OBJS = main.o globals.o $(MINIZIP) $(LIBOBJS) @FILEINFO@
- 
- DEPFILES = $(OBJS:.o=.d)
- 
\ No newline at end of file
diff --git a/gnu/packages/patches/gpsbabel-qstring.patch b/gnu/packages/patches/gpsbabel-qstring.patch
deleted file mode 100644
index 8ba1a7213b..0000000000
--- a/gnu/packages/patches/gpsbabel-qstring.patch
+++ /dev/null
@@ -1,69 +0,0 @@
-Extracted from following patch of gpsbabel:
-https://github.com/gpsbabel/gpsbabel/commit/604178aa8ad4d3c3ad218df24c1e9a6a1f683bb3
-
-From 604178aa8ad4d3c3ad218df24c1e9a6a1f683bb3 Mon Sep 17 00:00:00 2001
-From: Harel Mazor <harel.mazor@gmail.com>
-Date: Tue, 24 Jan 2017 00:35:04 +0200
-Subject: [PATCH] Added geojson read capablity, moved magic strings to
- constants, fixed windows compilation issues.
-
---- a/tef_xml.cc
-+++ b/tef_xml.cc
-@@ -72,11 +72,11 @@ tef_start(xg_string args, const QXmlStreamAttributes* attrv)
-   bool valid = false;
- 
-   foreach(QXmlStreamAttribute attr, *attrv) {
--    if (attr.name().compare("Comment", Qt::CaseInsensitive) == 0) {
--      if (attr.value().compare("TourExchangeFormat", Qt::CaseInsensitive) == 0) {
-+    if (attr.name().compare(QString("Comment"), Qt::CaseInsensitive) == 0) {
-+      if (attr.value().compare(QString("TourExchangeFormat"), Qt::CaseInsensitive) == 0) {
-         valid = true;
-       }
--    } else if (attr.name().compare("Version", Qt::CaseInsensitive) == 0) {
-+    } else if (attr.name().compare(QString("Version"), Qt::CaseInsensitive) == 0) {
-       version = attr.value().toString().toDouble();
-     }
-   }
-@@ -95,9 +95,9 @@ tef_header(xg_string args, const QXmlStreamAttributes* attrv)
- {
-   route = route_head_alloc();
-   foreach(QXmlStreamAttribute attr, *attrv) {
--    if (attr.name().compare("Name", Qt::CaseInsensitive) == 0) {
-+    if (attr.name().compare(QString("Name"), Qt::CaseInsensitive) == 0) {
-       route->rte_name = attr.value().toString().trimmed();
--    } else if (attr.name().compare("Software", Qt::CaseInsensitive) == 0) {
-+    } else if (attr.name().compare(QString("Software"), Qt::CaseInsensitive) == 0) {
-       route->rte_desc = attr.value().toString().trimmed();
-     }
-   }
-@@ -248,20 +248,20 @@ tef_item_start(xg_string args, const QXmlStreamAttributes* attrv)
-     QString attrstr = attr.value().toString();
-     QByteArray attrtext = attrstr.toUtf8();
- 
--    if (attr.name().compare("SegDescription", Qt::CaseInsensitive) == 0) {
-+    if (attr.name().compare(QString("SegDescription"), Qt::CaseInsensitive) == 0) {
-       wpt_tmp->shortname = attrstr.trimmed();
--    } else if (attr.name().compare("PointDescription", Qt::CaseInsensitive) == 0) {
-+    } else if (attr.name().compare(QString("PointDescription"), Qt::CaseInsensitive) == 0) {
-       wpt_tmp->description = attrstr.trimmed();
--    } else if (attr.name().compare("ViaStation", Qt::CaseInsensitive) == 0 &&
--               attr.value().compare("true", Qt::CaseInsensitive) == 0) {
-+    } else if (attr.name().compare(QString("ViaStation"), Qt::CaseInsensitive) == 0 &&
-+               attr.value().compare(QString("true"), Qt::CaseInsensitive) == 0) {
-       wpt_tmp->wpt_flags.fmt_use = 1;  /* only a flag */
- 
-       /* new in TEF V2 */
--    } else if (attr.name().compare("Instruction", Qt::CaseInsensitive) == 0) {
-+    } else if (attr.name().compare(QString("Instruction"), Qt::CaseInsensitive) == 0) {
-       wpt_tmp->description = attrstr.trimmed();
--    } else if (attr.name().compare("Altitude", Qt::CaseInsensitive) == 0) {
-+    } else if (attr.name().compare(QString("Altitude"), Qt::CaseInsensitive) == 0) {
-       wpt_tmp->altitude = attrstr.toDouble();
--    } else if (attr.name().compare("TimeStamp", Qt::CaseInsensitive) == 0) {
-+    } else if (attr.name().compare(QString("TimeStamp"), Qt::CaseInsensitive) == 0) {
-       /* nothing for the moment */
-     }
-   }
--- 
-2.16.1
-
diff --git a/gnu/packages/patches/guile-2.2-skip-so-test.patch b/gnu/packages/patches/guile-2.2-skip-so-test.patch
new file mode 100644
index 0000000000..e7c2594e91
--- /dev/null
+++ b/gnu/packages/patches/guile-2.2-skip-so-test.patch
@@ -0,0 +1,23 @@
+Skip 'test-stack-overflow' that crashes when using QEMU transparent emulation.
+
+--- a/test-suite/standalone/Makefile.in	1970-01-01 01:00:01.000000000 +0100
++++ b/test-suite/standalone/Makefile.in	2021-01-11 10:59:31.606269449 +0100
+@@ -102,8 +102,7 @@
+ 	test-scm-to-latin1-string$(EXEEXT) test-scm-values$(EXEEXT) \
+ 	test-scm-c-bind-keyword-arguments$(EXEEXT) \
+ 	test-srfi-4$(EXEEXT) $(am__append_6) $(am__EXEEXT_1) \
+-	test-smob-mark$(EXEEXT) test-smob-mark-race$(EXEEXT) \
+-	test-stack-overflow
++	test-smob-mark$(EXEEXT) test-smob-mark-race$(EXEEXT)
+ check_PROGRAMS = test-num2integral$(EXEEXT) test-round$(EXEEXT) \
+ 	test-foreign-object-c$(EXEEXT) test-list$(EXEEXT) \
+ 	test-unwind$(EXEEXT) test-conversion$(EXEEXT) \
+@@ -1938,7 +1937,7 @@
+ 	test-command-line-encoding test-command-line-encoding2 \
+ 	test-language test-guild-compile $(am__append_3) \
+ 	test-foreign-object-scm test-fast-slot-ref test-mb-regexp \
+-	test-use-srfi $(am__append_5) test-stack-overflow
++	test-use-srfi $(am__append_5)
+ BUILT_SOURCES = $(am__append_2)
+ EXTRA_DIST = test-import-order-a.scm test-import-order-b.scm \
+ 	test-import-order-c.scm test-import-order-d.scm \
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
new file mode 100644
index 0000000000..250eef2c8b
--- /dev/null
+++ b/gnu/packages/patches/gvfs-add-support-for-libplist-2.2.patch
@@ -0,0 +1,34 @@
+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/icecat-makeicecat.patch b/gnu/packages/patches/icecat-makeicecat.patch
index 521166b0fc..3f16880260 100644
--- a/gnu/packages/patches/icecat-makeicecat.patch
+++ b/gnu/packages/patches/icecat-makeicecat.patch
@@ -25,7 +25,7 @@ index 8be2362..48716f2 100755
 -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 91c1f7caaf1ba785b74799865227456bf784ba614d17cf5f0f41a5f25d6d2160 firefox-${FFVERSION}esr.source.tar.xz |sha256sum -c -
+-echo -n 0d07b74cb66b94018e3d7f11531f95c76a955e0016a3c401241d0d85062ae7ce firefox-${FFVERSION}esr.source.tar.xz |sha256sum -c -
 -
 -echo Extracting Firefox tarball
 -tar -xf firefox-${FFVERSION}esr.source.tar.xz
@@ -37,7 +37,7 @@ index 8be2362..48716f2 100755
 +# 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 91c1f7caaf1ba785b74799865227456bf784ba614d17cf5f0f41a5f25d6d2160 firefox-${FFVERSION}esr.source.tar.xz |sha256sum -c -
++# echo -n 0d07b74cb66b94018e3d7f11531f95c76a955e0016a3c401241d0d85062ae7ce firefox-${FFVERSION}esr.source.tar.xz |sha256sum -c -
 +# 
 +# echo Extracting Firefox tarball
 +# tar -xf firefox-${FFVERSION}esr.source.tar.xz
@@ -63,9 +63,9 @@ index 8be2362..48716f2 100755
 -
 -mv l10n $SOURCEDIR
 -
--hg clone http://hg.mozilla.org/l10n/compare-locales/
+-hg clone https://hg.mozilla.org/l10n/compare-locales/
 -cd compare-locales/
--hg checkout RELEASE_3_3_0
+-hg checkout RELEASE_8_0_0
 -cd ..
 -rm compare-locales/.hg* compare-locales/.git* -rf
 -mv compare-locales $SOURCEDIR/l10n
@@ -84,9 +84,9 @@ index 8be2362..48716f2 100755
 +# 
 +# mv l10n $SOURCEDIR
 +# 
-+# hg clone http://hg.mozilla.org/l10n/compare-locales/
++# hg clone https://hg.mozilla.org/l10n/compare-locales/
 +# cd compare-locales/
-+# hg checkout RELEASE_3_3_0
++# hg checkout RELEASE_8_0_0
 +# cd ..
 +# rm compare-locales/.hg* compare-locales/.git* -rf
 +# mv compare-locales $SOURCEDIR/l10n
@@ -98,7 +98,7 @@ index 8be2362..48716f2 100755
  
  shopt -s nullglob
  for patch in $DATA/patches/*.patch; do
-@@ -603,6 +603,6 @@ sed 's/777/755/;' -i toolkit/crashreporter/google-breakpad/Makefile.in
+@@ -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
  
diff --git a/gnu/packages/patches/icedtea-6-extend-hotspot-aarch64-support.patch b/gnu/packages/patches/icedtea-6-extend-hotspot-aarch64-support.patch
new file mode 100644
index 0000000000..9dc112a344
--- /dev/null
+++ b/gnu/packages/patches/icedtea-6-extend-hotspot-aarch64-support.patch
@@ -0,0 +1,1831 @@
+From d51cb8c0f7966ac0b870e90e421cc8a796d98abf Mon Sep 17 00:00:00 2001
+From: Simon South <simon@simonsouth.net>
+Date: Tue, 9 Jun 2020 13:48:42 -0400
+Subject: [PATCH] Extend AArch64 support
+
+This adds to IcedTea 6 a patch that extends the support for AArch64 in
+its version of HotSpot, allowing the portable Zero virtual machine to
+be built for that platform.
+
+The patch added is a backport of the one prepared for JDK 9 by the
+OpenJDK AArch64 Porting Project, available (as of 11 June 2020) for
+download from https://openjdk.java.net/jeps/237.
+---
+ Makefile.am                                   |    3 +-
+ Makefile.in                                   |   12 +-
+ .../hs23/aarch64-extended-support.patch       | 1766 +++++++++++++++++
+ 3 files changed, 1775 insertions(+), 6 deletions(-)
+ create mode 100644 patches/hotspot/hs23/aarch64-extended-support.patch
+
+diff --git a/Makefile.am b/Makefile.am
+index 97dac85..f5c917b 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -621,7 +621,8 @@ ICEDTEA_PATCHES = \
+ 	patches/openjdk/6260348-pr3068.patch \
+ 	patches/openjdk/6961123-pr2975.patch \
+ 	patches/pr2800-missing_resources.patch \
+-	patches/pr3213-conditional_arm32jit.patch
++	patches/pr3213-conditional_arm32jit.patch \
++	patches/hotspot/hs23/aarch64-extended-support.patch
+ 
+ if WITH_RHINO
+ ICEDTEA_PATCHES += \
+diff --git a/Makefile.in b/Makefile.in
+index aced7c2..e3545ee 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -1049,11 +1049,13 @@ ICEDTEA_PATCHES = $(DROP_PATCHES) $(SECURITY_PATCHES) \
+ 	patches/openjdk/6260348-pr3068.patch \
+ 	patches/openjdk/6961123-pr2975.patch \
+ 	patches/pr2800-missing_resources.patch \
+-	patches/pr3213-conditional_arm32jit.patch $(am__append_21) \
+-	$(am__append_22) $(am__append_23) $(am__append_24) \
+-	$(am__append_25) $(am__append_26) $(am__append_27) \
+-	$(am__append_28) $(am__append_29) $(am__append_30) \
+-	$(am__append_31) $(am__append_32) $(DISTRIBUTION_PATCHES)
++	patches/pr3213-conditional_arm32jit.patch \
++	patches/hotspot/hs23/aarch64-extended-support.patch \
++	$(am__append_21) $(am__append_22) $(am__append_23) \
++	$(am__append_24) $(am__append_25) $(am__append_26) \
++	$(am__append_27) $(am__append_28) $(am__append_29) \
++	$(am__append_30) $(am__append_31) $(am__append_32) \
++	$(DISTRIBUTION_PATCHES)
+ @ENABLE_NSS_FALSE@NSS_PATCHES = patches/nss-not-enabled-config.patch
+ @ENABLE_NSS_TRUE@NSS_PATCHES = patches/nss-config.patch
+ 
+diff --git a/patches/hotspot/hs23/aarch64-extended-support.patch b/patches/hotspot/hs23/aarch64-extended-support.patch
+new file mode 100644
+index 0000000..7817f4d
+--- /dev/null
++++ b/patches/hotspot/hs23/aarch64-extended-support.patch
+@@ -0,0 +1,1766 @@
++diff --git openjdk.orig/hotspot/agent/src/os/linux/LinuxDebuggerLocal.c openjdk/hotspot/agent/src/os/linux/LinuxDebuggerLocal.c
++index 5771fdd..b23cc17 100644
++--- openjdk.orig/hotspot/agent/src/os/linux/LinuxDebuggerLocal.c
+++++ openjdk/hotspot/agent/src/os/linux/LinuxDebuggerLocal.c
++@@ -304,6 +304,9 @@ JNIEXPORT jlongArray JNICALL Java_sun_jvm_hotspot_debugger_linux_LinuxDebuggerLo
++ #ifdef amd64
++ #define NPRGREG sun_jvm_hotspot_debugger_amd64_AMD64ThreadContext_NPRGREG
++ #endif
+++#ifdef aarch64
+++#define NPRGREG 32
+++#endif
++ #if defined(sparc) || defined(sparcv9)
++ #define NPRGREG sun_jvm_hotspot_debugger_sparc_SPARCThreadContext_NPRGREG
++ #endif
++@@ -406,6 +409,12 @@ JNIEXPORT jlongArray JNICALL Java_sun_jvm_hotspot_debugger_linux_LinuxDebuggerLo
++   regs[REG_INDEX(R_O7)]  = gregs.u_regs[14];
++ #endif /* sparc */
++ 
+++#if defined(aarch64)
+++
+++#define REG_INDEX(reg) sun_jvm_hotspot_debugger_aarch64_AARCH64ThreadContext_##reg
+++
+++#endif /* aarch64 */
+++
++ 
++   (*env)->ReleaseLongArrayElements(env, array, regs, JNI_COMMIT);
++   return array;
++diff --git openjdk.orig/hotspot/agent/src/os/linux/libproc.h openjdk/hotspot/agent/src/os/linux/libproc.h
++index e4d77f7..c02b841 100644
++--- openjdk.orig/hotspot/agent/src/os/linux/libproc.h
+++++ openjdk/hotspot/agent/src/os/linux/libproc.h
++@@ -54,6 +54,10 @@ struct pt_regs {
++ 
++ #endif //sparc or sparcv9
++ 
+++#if defined(aarch64)
+++#include "asm/ptrace.h"
+++#endif
+++
++ /************************************************************************************
++ 
++ 0. This is very minimal subset of Solaris libproc just enough for current application.
++@@ -97,6 +101,9 @@ unsigned long   regs[IA64_REG_COUNT];     /* integer and fp regs */
++ #if defined(sparc)  || defined(sparcv9)
++ #define user_regs_struct  pt_regs
++ #endif
+++#if defined(aarch64)
+++#define user_regs_struct user_pt_regs
+++#endif
++ 
++ // This C bool type must be int for compatibility with Linux calls and
++ // it would be a mistake to equivalence it to C++ bool on many platforms
++diff --git openjdk.orig/hotspot/make/defs.make openjdk/hotspot/make/defs.make
++index 44f21f8..4e8d00b 100644
++--- openjdk.orig/hotspot/make/defs.make
+++++ openjdk/hotspot/make/defs.make
++@@ -232,7 +232,7 @@ ifneq ($(OSNAME),windows)
++ 
++   # Use uname output for SRCARCH, but deal with platform differences. If ARCH
++   # is not explicitly listed below, it is treated as x86. 
++-  SRCARCH     = $(ARCH/$(filter sparc sparc64 ia64 amd64 x86_64 arm ppc zero,$(ARCH)))
+++  SRCARCH     = $(ARCH/$(filter sparc sparc64 ia64 amd64 x86_64 arm ppc aarch64 zero,$(ARCH)))
++   ARCH/       = x86
++   ARCH/sparc  = sparc
++   ARCH/sparc64= sparc
++@@ -242,6 +242,7 @@ ifneq ($(OSNAME),windows)
++   ARCH/ppc64  = ppc
++   ARCH/ppc    = ppc
++   ARCH/arm    = arm
+++  ARCH/aarch64= aarch64
++   ARCH/zero   = zero
++ 
++   # BUILDARCH is usually the same as SRCARCH, except for sparcv9
++@@ -267,11 +268,12 @@ ifneq ($(OSNAME),windows)
++   LIBARCH/sparcv9 = sparcv9
++   LIBARCH/ia64    = ia64
++   LIBARCH/ppc64   = ppc
+++  LIBARCH/aarch64 = aarch64
++   LIBARCH/ppc     = ppc
++   LIBARCH/arm     = arm
++   LIBARCH/zero    = $(ZERO_LIBARCH)
++ 
++-  LP64_ARCH = sparcv9 amd64 ia64 zero
+++  LP64_ARCH = sparcv9 amd64 ia64 aarch64 zero
++ endif
++ 
++ # Required make macro settings for all platforms
++diff --git openjdk.orig/hotspot/make/linux/makefiles/buildtree.make openjdk/hotspot/make/linux/makefiles/buildtree.make
++index 7c3d4f9..3bc7e8a 100644
++--- openjdk.orig/hotspot/make/linux/makefiles/buildtree.make
+++++ openjdk/hotspot/make/linux/makefiles/buildtree.make
++@@ -385,6 +385,7 @@ DATA_MODE/sparc   = 32
++ DATA_MODE/sparcv9 = 64
++ DATA_MODE/amd64   = 64
++ DATA_MODE/ia64    = 64
+++DATA_MODE/aarch64 = 64
++ DATA_MODE/zero    = $(ARCH_DATA_MODEL)
++ 
++ JAVA_FLAG/32 = -d32
++diff --git openjdk.orig/hotspot/make/linux/makefiles/defs.make openjdk/hotspot/make/linux/makefiles/defs.make
++index 7bb3149..39ffda4 100644
++--- openjdk.orig/hotspot/make/linux/makefiles/defs.make
+++++ openjdk/hotspot/make/linux/makefiles/defs.make
++@@ -118,6 +118,15 @@ ifeq ($(ARCH), ppc)
++   HS_ARCH          = ppc
++ endif
++ 
+++# AARCH64
+++ifeq ($(ARCH), aarch64)
+++  ARCH_DATA_MODEL  = 64
+++  MAKE_ARGS        += LP64=1
+++  PLATFORM         = linux-aarch64
+++  VM_PLATFORM      = linux_aarch64
+++  HS_ARCH          = aarch64
+++endif
+++
++ # determine if HotSpot is being built in JDK6 or earlier version
++ JDK6_OR_EARLIER=0
++ ifeq "$(shell expr \( '$(JDK_MAJOR_VERSION)' != '' \& '$(JDK_MINOR_VERSION)' != '' \& '$(JDK_MICRO_VERSION)' != '' \))" "1"
++diff --git openjdk.orig/hotspot/make/linux/makefiles/gcc.make openjdk/hotspot/make/linux/makefiles/gcc.make
++index 897e3a6..44f1673 100644
++--- openjdk.orig/hotspot/make/linux/makefiles/gcc.make
+++++ openjdk/hotspot/make/linux/makefiles/gcc.make
++@@ -104,6 +104,7 @@ endif
++ ARCHFLAG = $(ARCHFLAG/$(BUILDARCH))
++ ARCHFLAG/i486    = -m32 -march=i586
++ ARCHFLAG/amd64   = -m64
+++ARCHFLAG/aarch64 =
++ ARCHFLAG/ia64    =
++ ARCHFLAG/sparc   = -m32 -mcpu=v9
++ ARCHFLAG/sparcv9 = -m64 -mcpu=v9
++diff --git openjdk.orig/hotspot/src/os/linux/vm/os_linux.cpp openjdk/hotspot/src/os/linux/vm/os_linux.cpp
++index c1b0e5c..9f7cda0 100644
++--- openjdk.orig/hotspot/src/os/linux/vm/os_linux.cpp
+++++ openjdk/hotspot/src/os/linux/vm/os_linux.cpp
++@@ -296,6 +296,8 @@ static char cpu_arch[] = "sparcv9";
++ #  else
++ static char cpu_arch[] = "sparc";
++ #  endif
+++#elif defined(AARCH64)
+++static char cpu_arch[] = "aarch64";
++ #else
++ #error Add appropriate cpu_arch setting
++ #endif
++@@ -1442,7 +1444,7 @@ void os::Linux::clock_init() {
++ #ifndef SYS_clock_getres
++ 
++ #if defined(IA32) || defined(AMD64)
++-#define SYS_clock_getres IA32_ONLY(266)  AMD64_ONLY(229)
+++#define SYS_clock_getres IA32_ONLY(266)  AMD64_ONLY(229) AARCH64_ONLY(114)
++ #define sys_clock_getres(x,y)  ::syscall(SYS_clock_getres, x, y)
++ #else
++ #warning "SYS_clock_getres not defined for this platform, disabling fast_thread_cpu_time"
++@@ -1930,7 +1932,7 @@ void * os::dll_load(const char *filename, char *ebuf, int ebuflen)
++     static  Elf32_Half running_arch_code=EM_AARCH64;
++   #else
++     #error Method os::dll_load requires that one of following is defined:\
++-         IA32, AMD64, IA64, __sparc, __powerpc__, ARM, S390, ALPHA, MIPS, MIPSEL, PARISC, M68K, SH
+++      IA32, AMD64, IA64, __sparc, __powerpc__, ARM, S390, ALPHA, MIPS, MIPSEL, PARISC, M68K, SH, AARCH64
++   #endif
++ 
++   // Identify compatability class for VM's architecture and library's architecture
++@@ -3056,7 +3058,7 @@ void os::large_page_init() {
++ 
++ #ifndef ZERO
++     _large_page_size = IA32_ONLY(4 * M) AMD64_ONLY(2 * M) IA64_ONLY(256 * M) SPARC_ONLY(4 * M)
++-                       ARM_ONLY(2 * M) PPC_ONLY(4 * M);
+++                       ARM_ONLY(2 * M) PPC_ONLY(4 * M) AARCH64_ONLY(2 * M);
++ #endif // ZERO
++ 
++     FILE *fp = fopen("/proc/meminfo", "r");
++@@ -5378,11 +5380,11 @@ void Parker::unpark() {
++ extern char** environ;
++ 
++ #ifndef __NR_fork
++-#define __NR_fork IA32_ONLY(2) IA64_ONLY(not defined) AMD64_ONLY(57)
+++#define __NR_fork IA32_ONLY(2) IA64_ONLY(not defined) AMD64_ONLY(57) AARCH64_ONLY(1079)
++ #endif
++ 
++ #ifndef __NR_execve
++-#define __NR_execve IA32_ONLY(11) IA64_ONLY(1033) AMD64_ONLY(59)
+++#define __NR_execve IA32_ONLY(11) IA64_ONLY(1033) AMD64_ONLY(59) AARCH64_ONLY(221)
++ #endif
++ 
++ // Run the specified command in a separate process. Return its exit value,
++diff --git openjdk.orig/hotspot/src/share/vm/adlc/main.cpp openjdk/hotspot/src/share/vm/adlc/main.cpp
++index 47e207a..b93504e 100644
++--- openjdk.orig/hotspot/src/share/vm/adlc/main.cpp
+++++ openjdk/hotspot/src/share/vm/adlc/main.cpp
++@@ -244,6 +244,11 @@ int main(int argc, char *argv[])
++   AD.addInclude(AD._CPP_file, "assembler_arm.inline.hpp");
++   AD.addInclude(AD._CPP_file, "nativeInst_arm.hpp");
++   AD.addInclude(AD._CPP_file, "vmreg_arm.inline.hpp");
+++#endif
+++#ifdef TARGET_ARCH_aarch64
+++  AD.addInclude(AD._CPP_file, "assembler_aarch64.inline.hpp");
+++  AD.addInclude(AD._CPP_file, "nativeInst_aarch64.hpp");
+++  AD.addInclude(AD._CPP_file, "vmreg_aarch64.inline.hpp");
++ #endif
++   AD.addInclude(AD._HPP_file, "memory/allocation.hpp");
++   AD.addInclude(AD._HPP_file, "opto/machnode.hpp");
++diff --git openjdk.orig/hotspot/src/share/vm/asm/assembler.cpp openjdk/hotspot/src/share/vm/asm/assembler.cpp
++index 2bcdcbc..57787ac 100644
++--- openjdk.orig/hotspot/src/share/vm/asm/assembler.cpp
+++++ openjdk/hotspot/src/share/vm/asm/assembler.cpp
++@@ -43,6 +43,9 @@
++ #ifdef TARGET_ARCH_ppc
++ # include "assembler_ppc.inline.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "assembler_aarch64.inline.hpp"
+++#endif
++ 
++ 
++ // Implementation of AbstractAssembler
++diff --git openjdk.orig/hotspot/src/share/vm/asm/assembler.hpp openjdk/hotspot/src/share/vm/asm/assembler.hpp
++index c25aa3f..4f77825 100644
++--- openjdk.orig/hotspot/src/share/vm/asm/assembler.hpp
+++++ openjdk/hotspot/src/share/vm/asm/assembler.hpp
++@@ -51,6 +51,10 @@
++ # include "register_ppc.hpp"
++ # include "vm_version_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "register_aarch64.hpp"
+++# include "vm_version_aarch64.hpp"
+++#endif
++ 
++ // This file contains platform-independent assembler declarations.
++ 
++@@ -459,6 +463,9 @@ class AbstractAssembler : public ResourceObj  {
++ #ifdef TARGET_ARCH_ppc
++ # include "assembler_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "assembler_aarch64.hpp"
+++#endif
++ 
++ 
++ #endif // SHARE_VM_ASM_ASSEMBLER_HPP
++diff --git openjdk.orig/hotspot/src/share/vm/asm/codeBuffer.hpp openjdk/hotspot/src/share/vm/asm/codeBuffer.hpp
++index 685297a..002faef 100644
++--- openjdk.orig/hotspot/src/share/vm/asm/codeBuffer.hpp
+++++ openjdk/hotspot/src/share/vm/asm/codeBuffer.hpp
++@@ -573,6 +573,9 @@ class CodeBuffer: public StackObj {
++ #ifdef TARGET_ARCH_ppc
++ # include "codeBuffer_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "codeBuffer_aarch64.hpp"
+++#endif
++ 
++ };
++ 
++diff --git openjdk.orig/hotspot/src/share/vm/c1/c1_Canonicalizer.cpp openjdk/hotspot/src/share/vm/c1/c1_Canonicalizer.cpp
++index c95a23c..2ec31e5 100644
++--- openjdk.orig/hotspot/src/share/vm/c1/c1_Canonicalizer.cpp
+++++ openjdk/hotspot/src/share/vm/c1/c1_Canonicalizer.cpp
++@@ -877,6 +877,13 @@ static bool match(UnsafeRawOp* x,
++     return false;
++   }
++ 
+++// AARCH64 cannot handle shifts which are not either 0, or log2 of the type size
+++#ifdef AARCH64
+++  if (*log2_scale != 0 &&
+++	(1 << *log2_scale) != type2aelembytes(x->basic_type(), true))
+++    return false;
+++#endif
+++
++   // If the value is pinned then it will be always be computed so
++   // there's no profit to reshaping the expression.
++   return !root->is_pinned();
++diff --git openjdk.orig/hotspot/src/share/vm/c1/c1_Defs.hpp openjdk/hotspot/src/share/vm/c1/c1_Defs.hpp
++index bebb3b0..ddaceb7 100644
++--- openjdk.orig/hotspot/src/share/vm/c1/c1_Defs.hpp
+++++ openjdk/hotspot/src/share/vm/c1/c1_Defs.hpp
++@@ -41,6 +41,9 @@
++ #ifdef TARGET_ARCH_ppc
++ # include "register_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "register_aarch64.hpp"
+++#endif
++ 
++ // set frame size and return address offset to these values in blobs
++ // (if the compiled frame uses ebp as link pointer on IA; otherwise,
++@@ -62,6 +65,9 @@ enum {
++ #ifdef TARGET_ARCH_ppc
++ # include "c1_Defs_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "c1_Defs_aarch64.hpp"
+++#endif
++ 
++ 
++ // native word offsets from memory address
++diff --git openjdk.orig/hotspot/src/share/vm/c1/c1_FpuStackSim.hpp openjdk/hotspot/src/share/vm/c1/c1_FpuStackSim.hpp
++index a1e4c38..491b064 100644
++--- openjdk.orig/hotspot/src/share/vm/c1/c1_FpuStackSim.hpp
+++++ openjdk/hotspot/src/share/vm/c1/c1_FpuStackSim.hpp
++@@ -44,6 +44,9 @@ class FpuStackSim;
++ #ifdef TARGET_ARCH_ppc
++ # include "c1_FpuStackSim_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "c1_FpuStackSim_aarch64.hpp"
+++#endif
++ 
++ 
++ #endif // SHARE_VM_C1_C1_FPUSTACKSIM_HPP
++diff --git openjdk.orig/hotspot/src/share/vm/c1/c1_FrameMap.cpp openjdk/hotspot/src/share/vm/c1/c1_FrameMap.cpp
++index ea50b27..6a3dc63 100644
++--- openjdk.orig/hotspot/src/share/vm/c1/c1_FrameMap.cpp
+++++ openjdk/hotspot/src/share/vm/c1/c1_FrameMap.cpp
++@@ -41,6 +41,9 @@
++ #ifdef TARGET_ARCH_ppc
++ # include "vmreg_ppc.inline.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "vmreg_aarch64.inline.hpp"
+++#endif
++ 
++ 
++ 
++diff --git openjdk.orig/hotspot/src/share/vm/c1/c1_FrameMap.hpp openjdk/hotspot/src/share/vm/c1/c1_FrameMap.hpp
++index 288fc5c..e9a0250 100644
++--- openjdk.orig/hotspot/src/share/vm/c1/c1_FrameMap.hpp
+++++ openjdk/hotspot/src/share/vm/c1/c1_FrameMap.hpp
++@@ -93,6 +93,9 @@ class FrameMap : public CompilationResourceObj {
++ #endif
++ #ifdef TARGET_ARCH_ppc
++ # include "c1_FrameMap_ppc.hpp"
+++#endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "c1_FrameMap_aarch64.hpp"
++ #endif
++ 
++ 
++diff --git openjdk.orig/hotspot/src/share/vm/c1/c1_LIR.cpp openjdk/hotspot/src/share/vm/c1/c1_LIR.cpp
++index 776a6a3..6e1a362 100644
++--- openjdk.orig/hotspot/src/share/vm/c1/c1_LIR.cpp
+++++ openjdk/hotspot/src/share/vm/c1/c1_LIR.cpp
++@@ -67,7 +67,7 @@ FloatRegister LIR_OprDesc::as_double_reg() const {
++ 
++ #endif
++ 
++-#ifdef ARM
+++#if defined(ARM) || defined (TARGET_ARCH_aarch64)
++ 
++ FloatRegister LIR_OprDesc::as_float_reg() const {
++   return as_FloatRegister(fpu_regnr());
++@@ -147,7 +147,11 @@ void LIR_Address::verify() const {
++ #endif
++ #ifdef _LP64
++   assert(base()->is_cpu_register(), "wrong base operand");
+++#ifndef TARGET_ARCH_aarch64
++   assert(index()->is_illegal() || index()->is_double_cpu(), "wrong index operand");
+++#else
+++  assert(index()->is_illegal() || index()->is_double_cpu() || index()->is_single_cpu(), "wrong index operand");
+++#endif
++   assert(base()->type() == T_OBJECT || base()->type() == T_LONG,
++          "wrong type for addresses");
++ #else
++@@ -545,7 +549,7 @@ void LIR_OpVisitState::visit(LIR_Op* op) {
++       assert(opConvert->_info == NULL, "must be");
++       if (opConvert->_opr->is_valid())       do_input(opConvert->_opr);
++       if (opConvert->_result->is_valid())    do_output(opConvert->_result);
++-#ifdef PPC
+++#if defined(PPC) || defined(TARGET_ARCH_aarch64)
++       if (opConvert->_tmp1->is_valid())      do_temp(opConvert->_tmp1);
++       if (opConvert->_tmp2->is_valid())      do_temp(opConvert->_tmp2);
++ #endif
++@@ -1468,6 +1472,11 @@ void LIR_OprDesc::print(outputStream* out) const {
++     out->print("fpu%d", fpu_regnr());
++   } else if (is_double_fpu()) {
++     out->print("fpu%d", fpu_regnrLo());
+++#elif defined(AARCH64)
+++  } else if (is_single_fpu()) {
+++    out->print("fpu%d", fpu_regnr());
+++  } else if (is_double_fpu()) {
+++    out->print("fpu%d", fpu_regnrLo());
++ #elif defined(ARM)
++   } else if (is_single_fpu()) {
++     out->print("s%d", fpu_regnr());
++@@ -1836,7 +1845,7 @@ void LIR_OpConvert::print_instr(outputStream* out) const {
++   print_bytecode(out, bytecode());
++   in_opr()->print(out);                  out->print(" ");
++   result_opr()->print(out);              out->print(" ");
++-#ifdef PPC
+++#if defined(PPC) || defined(TARGET_ARCH_aarch64)
++   if(tmp1()->is_valid()) {
++     tmp1()->print(out); out->print(" ");
++     tmp2()->print(out); out->print(" ");
++diff --git openjdk.orig/hotspot/src/share/vm/c1/c1_LIR.hpp openjdk/hotspot/src/share/vm/c1/c1_LIR.hpp
++index f8589c3..eb3383f 100644
++--- openjdk.orig/hotspot/src/share/vm/c1/c1_LIR.hpp
+++++ openjdk/hotspot/src/share/vm/c1/c1_LIR.hpp
++@@ -437,8 +437,8 @@ class LIR_OprDesc: public CompilationResourceObj {
++   XMMRegister as_xmm_double_reg() const;
++   // for compatibility with RInfo
++   int fpu () const                                  { return lo_reg_half(); }
++-#endif // X86
++-#if defined(SPARC) || defined(ARM) || defined(PPC)
+++#endif
+++#if defined(SPARC) || defined(ARM) || defined(PPC) || defined(AARCH64)
++   FloatRegister as_float_reg   () const;
++   FloatRegister as_double_reg  () const;
++ #endif
++@@ -526,7 +526,7 @@ class LIR_Address: public LIR_OprPtr {
++      , _type(type)
++      , _disp(0) { verify(); }
++ 
++-#if defined(X86) || defined(ARM)
+++#if defined(X86) || defined(ARM) || defined(AARCH64)
++   LIR_Address(LIR_Opr base, LIR_Opr index, Scale scale, intx disp, BasicType type):
++        _base(base)
++      , _index(index)
++@@ -601,7 +601,7 @@ class LIR_OprFact: public AllStatic {
++                                                                              LIR_OprDesc::fpu_register         |
++                                                                              LIR_OprDesc::double_size); }
++ #endif
++-#ifdef X86
+++#if defined(X86) || defined(AARCH64)
++   static LIR_Opr double_fpu(int reg)            { return (LIR_Opr)(intptr_t)((reg  << LIR_OprDesc::reg1_shift) |
++                                                                              (reg  << LIR_OprDesc::reg2_shift) |
++                                                                              LIR_OprDesc::double_type          |
++@@ -1398,7 +1398,7 @@ class LIR_OpConvert: public LIR_Op1 {
++  private:
++    Bytecodes::Code _bytecode;
++    ConversionStub* _stub;
++-#ifdef PPC
+++#if defined(PPC) || defined(TARGET_ARCH_aarch64)
++   LIR_Opr _tmp1;
++   LIR_Opr _tmp2;
++ #endif
++@@ -1413,7 +1413,7 @@ class LIR_OpConvert: public LIR_Op1 {
++ #endif
++      , _bytecode(code)                           {}
++ 
++-#ifdef PPC
+++#if defined(PPC) || defined(TARGET_ARCH_aarch64)
++    LIR_OpConvert(Bytecodes::Code code, LIR_Opr opr, LIR_Opr result, ConversionStub* stub
++                  ,LIR_Opr tmp1, LIR_Opr tmp2)
++      : LIR_Op1(lir_convert, opr, result)
++@@ -1425,7 +1425,7 @@ class LIR_OpConvert: public LIR_Op1 {
++ 
++   Bytecodes::Code bytecode() const               { return _bytecode; }
++   ConversionStub* stub() const                   { return _stub; }
++-#ifdef PPC
+++#if defined(PPC) || defined(TARGET_ARCH_aarch64)
++   LIR_Opr tmp1() const                           { return _tmp1; }
++   LIR_Opr tmp2() const                           { return _tmp2; }
++ #endif
++@@ -1973,7 +1973,14 @@ class LIR_List: public CompilationResourceObj {
++ #ifdef PPC
++   void convert(Bytecodes::Code code, LIR_Opr left, LIR_Opr dst, LIR_Opr tmp1, LIR_Opr tmp2) { append(new LIR_OpConvert(code, left, dst, NULL, tmp1, tmp2)); }
++ #endif
+++#if defined (TARGET_ARCH_aarch64)
+++  void convert(Bytecodes::Code code, LIR_Opr left, LIR_Opr dst,
+++	       ConversionStub* stub = NULL, LIR_Opr tmp1 = LIR_OprDesc::illegalOpr()) {
+++    append(new LIR_OpConvert(code, left, dst, stub, tmp1, LIR_OprDesc::illegalOpr()));
+++  }
+++#else
++   void convert(Bytecodes::Code code, LIR_Opr left, LIR_Opr dst, ConversionStub* stub = NULL/*, bool is_32bit = false*/) { append(new LIR_OpConvert(code, left, dst, stub)); }
+++#endif
++ 
++   void logical_and (LIR_Opr left, LIR_Opr right, LIR_Opr dst) { append(new LIR_Op2(lir_logic_and,  left, right, dst)); }
++   void logical_or  (LIR_Opr left, LIR_Opr right, LIR_Opr dst) { append(new LIR_Op2(lir_logic_or,   left, right, dst)); }
++diff --git openjdk.orig/hotspot/src/share/vm/c1/c1_LIRAssembler.cpp openjdk/hotspot/src/share/vm/c1/c1_LIRAssembler.cpp
++index 528f21e..4d83fca 100644
++--- openjdk.orig/hotspot/src/share/vm/c1/c1_LIRAssembler.cpp
+++++ openjdk/hotspot/src/share/vm/c1/c1_LIRAssembler.cpp
++@@ -50,6 +50,10 @@
++ # include "nativeInst_ppc.hpp"
++ # include "vmreg_ppc.inline.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "nativeInst_aarch64.hpp"
+++# include "vmreg_aarch64.inline.hpp"
+++#endif
++ 
++ 
++ void LIR_Assembler::patching_epilog(PatchingStub* patch, LIR_PatchCode patch_code, Register obj, CodeEmitInfo* info) {
++diff --git openjdk.orig/hotspot/src/share/vm/c1/c1_LIRAssembler.hpp openjdk/hotspot/src/share/vm/c1/c1_LIRAssembler.hpp
++index 58adf59..f4a49b3 100644
++--- openjdk.orig/hotspot/src/share/vm/c1/c1_LIRAssembler.hpp
+++++ openjdk/hotspot/src/share/vm/c1/c1_LIRAssembler.hpp
++@@ -261,6 +261,9 @@ class LIR_Assembler: public CompilationResourceObj {
++ #ifdef TARGET_ARCH_ppc
++ # include "c1_LIRAssembler_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "c1_LIRAssembler_aarch64.hpp"
+++#endif
++ 
++ };
++ 
++diff --git openjdk.orig/hotspot/src/share/vm/c1/c1_LinearScan.cpp openjdk/hotspot/src/share/vm/c1/c1_LinearScan.cpp
++index aaae71d..93f9f5f 100644
++--- openjdk.orig/hotspot/src/share/vm/c1/c1_LinearScan.cpp
+++++ openjdk/hotspot/src/share/vm/c1/c1_LinearScan.cpp
++@@ -47,6 +47,9 @@
++ #ifdef TARGET_ARCH_ppc
++ # include "vmreg_ppc.inline.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "vmreg_aarch64.inline.hpp"
+++#endif
++ 
++ 
++ #ifndef PRODUCT
++@@ -2190,7 +2193,7 @@ LIR_Opr LinearScan::color_lir_opr(LIR_Opr opr, int op_id, LIR_OpVisitState::OprM
++ 
++   LIR_Opr res = operand_for_interval(interval);
++ 
++-#ifdef X86
+++#if defined(X86) || defined(AARCH64)
++   // new semantic for is_last_use: not only set on definite end of interval,
++   // but also before hole
++   // This may still miss some cases (e.g. for dead values), but it is not necessary that the
++diff --git openjdk.orig/hotspot/src/share/vm/c1/c1_LinearScan.hpp openjdk/hotspot/src/share/vm/c1/c1_LinearScan.hpp
++index 0c06f1b..a152328 100644
++--- openjdk.orig/hotspot/src/share/vm/c1/c1_LinearScan.hpp
+++++ openjdk/hotspot/src/share/vm/c1/c1_LinearScan.hpp
++@@ -985,6 +985,9 @@ class LinearScanTimers : public StackObj {
++ #ifdef TARGET_ARCH_ppc
++ # include "c1_LinearScan_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "c1_LinearScan_aarch64.hpp"
+++#endif
++ 
++ 
++ #endif // SHARE_VM_C1_C1_LINEARSCAN_HPP
++diff --git openjdk.orig/hotspot/src/share/vm/c1/c1_MacroAssembler.hpp openjdk/hotspot/src/share/vm/c1/c1_MacroAssembler.hpp
++index 55d9803..eda2174 100644
++--- openjdk.orig/hotspot/src/share/vm/c1/c1_MacroAssembler.hpp
+++++ openjdk/hotspot/src/share/vm/c1/c1_MacroAssembler.hpp
++@@ -41,6 +41,9 @@
++ #ifdef TARGET_ARCH_ppc
++ # include "assembler_ppc.inline.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "assembler_aarch64.inline.hpp"
+++#endif
++ 
++ class CodeEmitInfo;
++ 
++@@ -73,6 +76,9 @@ class C1_MacroAssembler: public MacroAssembler {
++ #ifdef TARGET_ARCH_ppc
++ # include "c1_MacroAssembler_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "c1_MacroAssembler_aarch64.hpp"
+++#endif
++ 
++ };
++ 
++diff --git openjdk.orig/hotspot/src/share/vm/c1/c1_Runtime1.cpp openjdk/hotspot/src/share/vm/c1/c1_Runtime1.cpp
++index 765dec4..f0b3aae 100644
++--- openjdk.orig/hotspot/src/share/vm/c1/c1_Runtime1.cpp
+++++ openjdk/hotspot/src/share/vm/c1/c1_Runtime1.cpp
++@@ -1103,6 +1103,7 @@ JRT_END
++ // completes we can check for deoptimization. This simplifies the
++ // assembly code in the cpu directories.
++ //
+++#ifndef TARGET_ARCH_aarch64
++ int Runtime1::move_klass_patching(JavaThread* thread) {
++ //
++ // NOTE: we are still in Java
++@@ -1150,6 +1151,7 @@ int Runtime1::access_field_patching(JavaThread* thread) {
++ 
++   return caller_is_deopted();
++ JRT_END
+++#endif
++ 
++ 
++ JRT_LEAF(void, Runtime1::trace_block_entry(jint block_id))
++diff --git openjdk.orig/hotspot/src/share/vm/c1/c1_Runtime1.hpp openjdk/hotspot/src/share/vm/c1/c1_Runtime1.hpp
++index 2032564..19261be 100644
++--- openjdk.orig/hotspot/src/share/vm/c1/c1_Runtime1.hpp
+++++ openjdk/hotspot/src/share/vm/c1/c1_Runtime1.hpp
++@@ -159,6 +159,9 @@ class Runtime1: public AllStatic {
++   static int move_klass_patching(JavaThread* thread);
++ 
++   static void patch_code(JavaThread* thread, StubID stub_id);
+++#ifdef TARGET_ARCH_aarch64
+++  static void patch_code_aarch64(JavaThread* thread, StubID stub_id);
+++#endif
++ 
++  public:
++   // initialization
++diff --git openjdk.orig/hotspot/src/share/vm/c1/c1_globals.hpp openjdk/hotspot/src/share/vm/c1/c1_globals.hpp
++index 15f3cc1..4143a87 100644
++--- openjdk.orig/hotspot/src/share/vm/c1/c1_globals.hpp
+++++ openjdk/hotspot/src/share/vm/c1/c1_globals.hpp
++@@ -38,6 +38,9 @@
++ #ifdef TARGET_ARCH_ppc
++ # include "c1_globals_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "c1_globals_aarch64.hpp"
+++#endif
++ #ifdef TARGET_OS_FAMILY_linux
++ # include "c1_globals_linux.hpp"
++ #endif
++diff --git openjdk.orig/hotspot/src/share/vm/classfile/classFileStream.hpp openjdk/hotspot/src/share/vm/classfile/classFileStream.hpp
++index cf6f0e5..b128b3a 100644
++--- openjdk.orig/hotspot/src/share/vm/classfile/classFileStream.hpp
+++++ openjdk/hotspot/src/share/vm/classfile/classFileStream.hpp
++@@ -41,6 +41,9 @@
++ #ifdef TARGET_ARCH_ppc
++ # include "bytes_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "bytes_aarch64.hpp"
+++#endif
++ 
++ // Input stream for reading .class file
++ //
++diff --git openjdk.orig/hotspot/src/share/vm/classfile/stackMapTable.hpp openjdk/hotspot/src/share/vm/classfile/stackMapTable.hpp
++index f876029..ac415b6 100644
++--- openjdk.orig/hotspot/src/share/vm/classfile/stackMapTable.hpp
+++++ openjdk/hotspot/src/share/vm/classfile/stackMapTable.hpp
++@@ -46,6 +46,9 @@
++ #ifdef TARGET_ARCH_ppc
++ # include "bytes_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "bytes_aarch64.hpp"
+++#endif
++ 
++ class StackMapReader;
++ 
++diff --git openjdk.orig/hotspot/src/share/vm/classfile/verifier.cpp openjdk/hotspot/src/share/vm/classfile/verifier.cpp
++index c5c5e11..9c22a21 100644
++--- openjdk.orig/hotspot/src/share/vm/classfile/verifier.cpp
+++++ openjdk/hotspot/src/share/vm/classfile/verifier.cpp
++@@ -60,6 +60,9 @@
++ #ifdef TARGET_ARCH_ppc
++ # include "bytes_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "bytes_aarch64.hpp"
+++#endif
++ 
++ #define NOFAILOVER_MAJOR_VERSION 51
++ 
++diff --git openjdk.orig/hotspot/src/share/vm/code/codeBlob.cpp openjdk/hotspot/src/share/vm/code/codeBlob.cpp
++index 244c320..429e0be 100644
++--- openjdk.orig/hotspot/src/share/vm/code/codeBlob.cpp
+++++ openjdk/hotspot/src/share/vm/code/codeBlob.cpp
++@@ -54,6 +54,9 @@
++ #ifdef TARGET_ARCH_ppc
++ # include "nativeInst_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "nativeInst_aarch64.hpp"
+++#endif
++ #ifdef COMPILER1
++ #include "c1/c1_Runtime1.hpp"
++ #endif
++diff --git openjdk.orig/hotspot/src/share/vm/code/compiledIC.hpp openjdk/hotspot/src/share/vm/code/compiledIC.hpp
++index fe1cfb3..c9f6a2e 100644
++--- openjdk.orig/hotspot/src/share/vm/code/compiledIC.hpp
+++++ openjdk/hotspot/src/share/vm/code/compiledIC.hpp
++@@ -44,6 +44,9 @@
++ #ifdef TARGET_ARCH_ppc
++ # include "nativeInst_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "nativeInst_aarch64.hpp"
+++#endif
++ 
++ //-----------------------------------------------------------------------------
++ // The CompiledIC represents a compiled inline cache.
++diff --git openjdk.orig/hotspot/src/share/vm/code/icBuffer.cpp openjdk/hotspot/src/share/vm/code/icBuffer.cpp
++index ed70457..d022482 100644
++--- openjdk.orig/hotspot/src/share/vm/code/icBuffer.cpp
+++++ openjdk/hotspot/src/share/vm/code/icBuffer.cpp
++@@ -52,6 +52,9 @@
++ #ifdef TARGET_ARCH_ppc
++ # include "assembler_ppc.inline.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "assembler_aarch64.inline.hpp"
+++#endif
++ 
++ 
++ DEF_STUB_INTERFACE(ICStub);
++diff --git openjdk.orig/hotspot/src/share/vm/code/relocInfo.cpp openjdk/hotspot/src/share/vm/code/relocInfo.cpp
++index 4fd82df..78310e6 100644
++--- openjdk.orig/hotspot/src/share/vm/code/relocInfo.cpp
+++++ openjdk/hotspot/src/share/vm/code/relocInfo.cpp
++@@ -49,6 +49,10 @@
++ # include "assembler_ppc.inline.hpp"
++ # include "nativeInst_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "assembler_aarch64.inline.hpp"
+++# include "nativeInst_aarch64.hpp"
+++#endif
++ 
++ 
++ const RelocationHolder RelocationHolder::none; // its type is relocInfo::none
++diff --git openjdk.orig/hotspot/src/share/vm/code/relocInfo.hpp openjdk/hotspot/src/share/vm/code/relocInfo.hpp
++index 1d14b44..3823889 100644
++--- openjdk.orig/hotspot/src/share/vm/code/relocInfo.hpp
+++++ openjdk/hotspot/src/share/vm/code/relocInfo.hpp
++@@ -435,6 +435,9 @@ class relocInfo VALUE_OBJ_CLASS_SPEC {
++ #endif
++ #ifdef TARGET_ARCH_ppc
++ # include "relocInfo_ppc.hpp"
+++#endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "relocInfo_aarch64.hpp"
++ #endif
++ 
++ 
++diff --git openjdk.orig/hotspot/src/share/vm/code/vmreg.hpp openjdk/hotspot/src/share/vm/code/vmreg.hpp
++index d57e6f8..1c18e47 100644
++--- openjdk.orig/hotspot/src/share/vm/code/vmreg.hpp
+++++ openjdk/hotspot/src/share/vm/code/vmreg.hpp
++@@ -42,6 +42,9 @@
++ #ifdef TARGET_ARCH_ppc
++ # include "register_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "register_aarch64.hpp"
+++#endif
++ #ifdef COMPILER2
++ #include "opto/adlcVMDeps.hpp"
++ #include "utilities/ostream.hpp"
++@@ -63,6 +66,9 @@
++ #ifdef TARGET_ARCH_MODEL_ppc
++ # include "adfiles/adGlobals_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_MODEL_aarch64
+++# include "adfiles/adGlobals_aarch64.hpp"
+++#endif
++ #endif
++ 
++ //------------------------------VMReg------------------------------------------
++@@ -182,6 +188,9 @@ public:
++ #ifdef TARGET_ARCH_ppc
++ # include "vmreg_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "vmreg_aarch64.hpp"
+++#endif
++ 
++ 
++ };
++diff --git openjdk.orig/hotspot/src/share/vm/compiler/disassembler.cpp openjdk/hotspot/src/share/vm/compiler/disassembler.cpp
++index 9603e86..3a67259 100644
++--- openjdk.orig/hotspot/src/share/vm/compiler/disassembler.cpp
+++++ openjdk/hotspot/src/share/vm/compiler/disassembler.cpp
++@@ -47,6 +47,9 @@
++ #ifdef TARGET_ARCH_ppc
++ # include "depChecker_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "depChecker_aarch64.hpp"
+++#endif
++ #ifdef SHARK
++ #include "shark/sharkEntry.hpp"
++ #endif
++diff --git openjdk.orig/hotspot/src/share/vm/compiler/disassembler.hpp openjdk/hotspot/src/share/vm/compiler/disassembler.hpp
++index a70b8cc..4c90c9a 100644
++--- openjdk.orig/hotspot/src/share/vm/compiler/disassembler.hpp
+++++ openjdk/hotspot/src/share/vm/compiler/disassembler.hpp
++@@ -78,6 +78,9 @@ class Disassembler {
++ #endif
++ #ifdef TARGET_ARCH_ppc
++ # include "disassembler_ppc.hpp"
+++#endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "disassembler_aarch64.hpp"
++ #endif
++ 
++ 
++diff --git openjdk.orig/hotspot/src/share/vm/interpreter/abstractInterpreter.hpp openjdk/hotspot/src/share/vm/interpreter/abstractInterpreter.hpp
++index d23f37a..24ca30e 100644
++--- openjdk.orig/hotspot/src/share/vm/interpreter/abstractInterpreter.hpp
+++++ openjdk/hotspot/src/share/vm/interpreter/abstractInterpreter.hpp
++@@ -44,6 +44,9 @@
++ #ifdef TARGET_ARCH_MODEL_ppc
++ # include "interp_masm_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_MODEL_aarch64
+++# include "interp_masm_aarch64.hpp"
+++#endif
++ #ifdef TARGET_OS_FAMILY_linux
++ # include "thread_linux.inline.hpp"
++ #endif
++diff --git openjdk.orig/hotspot/src/share/vm/interpreter/bytecode.hpp openjdk/hotspot/src/share/vm/interpreter/bytecode.hpp
++index 107161a..205d0f7 100644
++--- openjdk.orig/hotspot/src/share/vm/interpreter/bytecode.hpp
+++++ openjdk/hotspot/src/share/vm/interpreter/bytecode.hpp
++@@ -43,6 +43,9 @@
++ #ifdef TARGET_ARCH_ppc
++ # include "bytes_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "bytes_aarch64.hpp"
+++#endif
++ 
++ class ciBytecodeStream;
++ 
++diff --git openjdk.orig/hotspot/src/share/vm/interpreter/bytecodeInterpreter.hpp openjdk/hotspot/src/share/vm/interpreter/bytecodeInterpreter.hpp
++index e637414..308ad3b 100644
++--- openjdk.orig/hotspot/src/share/vm/interpreter/bytecodeInterpreter.hpp
+++++ openjdk/hotspot/src/share/vm/interpreter/bytecodeInterpreter.hpp
++@@ -47,6 +47,9 @@
++ #ifdef TARGET_ARCH_ppc
++ # include "bytes_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "bytes_aarch64.hpp"
+++#endif
++ 
++ #ifdef CC_INTERP
++ 
++@@ -618,6 +621,9 @@ void print();
++ #ifdef TARGET_ARCH_ppc
++ # include "bytecodeInterpreter_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "bytecodeInterpreter_aarch64.hpp"
+++#endif
++ 
++ 
++ }; // BytecodeInterpreter
++diff --git openjdk.orig/hotspot/src/share/vm/interpreter/bytecodeInterpreter.inline.hpp openjdk/hotspot/src/share/vm/interpreter/bytecodeInterpreter.inline.hpp
++index 3715a52..0d6a8aa 100644
++--- openjdk.orig/hotspot/src/share/vm/interpreter/bytecodeInterpreter.inline.hpp
+++++ openjdk/hotspot/src/share/vm/interpreter/bytecodeInterpreter.inline.hpp
++@@ -58,6 +58,9 @@
++ #ifdef TARGET_ARCH_ppc
++ # include "bytecodeInterpreter_ppc.inline.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "bytecodeInterpreter_aarch64.inline.hpp"
+++#endif
++ 
++ #endif // CC_INTERP
++ 
++diff --git openjdk.orig/hotspot/src/share/vm/interpreter/bytecodeStream.hpp openjdk/hotspot/src/share/vm/interpreter/bytecodeStream.hpp
++index 6106eac..f3dee0a 100644
++--- openjdk.orig/hotspot/src/share/vm/interpreter/bytecodeStream.hpp
+++++ openjdk/hotspot/src/share/vm/interpreter/bytecodeStream.hpp
++@@ -43,6 +43,9 @@
++ #ifdef TARGET_ARCH_ppc
++ # include "bytes_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "bytes_aarch64.hpp"
+++#endif
++ 
++ // A BytecodeStream is used for fast iteration over the bytecodes
++ // of a methodOop.
++diff --git openjdk.orig/hotspot/src/share/vm/interpreter/bytecodes.cpp openjdk/hotspot/src/share/vm/interpreter/bytecodes.cpp
++index 04f3f64..48ef30e 100644
++--- openjdk.orig/hotspot/src/share/vm/interpreter/bytecodes.cpp
+++++ openjdk/hotspot/src/share/vm/interpreter/bytecodes.cpp
++@@ -41,6 +41,9 @@
++ #ifdef TARGET_ARCH_ppc
++ # include "bytes_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "bytes_aarch64.hpp"
+++#endif
++ 
++ 
++ #if defined(WIN32) && (defined(_MSC_VER) && (_MSC_VER < 1600))
++diff --git openjdk.orig/hotspot/src/share/vm/interpreter/cppInterpreter.hpp openjdk/hotspot/src/share/vm/interpreter/cppInterpreter.hpp
++index e3a9f2e..8347473 100644
++--- openjdk.orig/hotspot/src/share/vm/interpreter/cppInterpreter.hpp
+++++ openjdk/hotspot/src/share/vm/interpreter/cppInterpreter.hpp
++@@ -101,6 +101,9 @@ class CppInterpreter: public AbstractInterpreter {
++ #ifdef TARGET_ARCH_ppc
++ # include "cppInterpreter_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "cppInterpreter_aarch64.hpp"
+++#endif
++ 
++ 
++ };
++diff --git openjdk.orig/hotspot/src/share/vm/interpreter/cppInterpreterGenerator.hpp openjdk/hotspot/src/share/vm/interpreter/cppInterpreterGenerator.hpp
++index c27805e..272f6e8 100644
++--- openjdk.orig/hotspot/src/share/vm/interpreter/cppInterpreterGenerator.hpp
+++++ openjdk/hotspot/src/share/vm/interpreter/cppInterpreterGenerator.hpp
++@@ -59,6 +59,9 @@ class CppInterpreterGenerator: public AbstractInterpreterGenerator {
++ #ifdef TARGET_ARCH_ppc
++ # include "cppInterpreterGenerator_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "cppInterpreterGenerator_aarch64.hpp"
+++#endif
++ 
++ };
++ 
++diff --git openjdk.orig/hotspot/src/share/vm/interpreter/interpreter.hpp openjdk/hotspot/src/share/vm/interpreter/interpreter.hpp
++index 0ab0be7..6a6822f 100644
++--- openjdk.orig/hotspot/src/share/vm/interpreter/interpreter.hpp
+++++ openjdk/hotspot/src/share/vm/interpreter/interpreter.hpp
++@@ -158,6 +158,9 @@ class Interpreter: public CC_INTERP_ONLY(CppInterpreter) NOT_CC_INTERP(TemplateI
++ #ifdef TARGET_ARCH_ppc
++ # include "interpreter_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "interpreter_aarch64.hpp"
+++#endif
++ 
++ };
++ 
++diff --git openjdk.orig/hotspot/src/share/vm/interpreter/interpreterGenerator.hpp openjdk/hotspot/src/share/vm/interpreter/interpreterGenerator.hpp
++index 7bc43ec..0434ca3 100644
++--- openjdk.orig/hotspot/src/share/vm/interpreter/interpreterGenerator.hpp
+++++ openjdk/hotspot/src/share/vm/interpreter/interpreterGenerator.hpp
++@@ -56,6 +56,9 @@ InterpreterGenerator(StubQueue* _code);
++ #ifdef TARGET_ARCH_ppc
++ # include "interpreterGenerator_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "interpreterGenerator_aarch64.hpp"
+++#endif
++ 
++ 
++ };
++diff --git openjdk.orig/hotspot/src/share/vm/interpreter/interpreterRuntime.cpp openjdk/hotspot/src/share/vm/interpreter/interpreterRuntime.cpp
++index e451c04..37700fb 100644
++--- openjdk.orig/hotspot/src/share/vm/interpreter/interpreterRuntime.cpp
+++++ openjdk/hotspot/src/share/vm/interpreter/interpreterRuntime.cpp
++@@ -71,6 +71,9 @@
++ #ifdef TARGET_ARCH_ppc
++ # include "vm_version_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "vm_version_aarch64.hpp"
+++#endif
++ #ifdef COMPILER2
++ #include "opto/runtime.hpp"
++ #endif
++diff --git openjdk.orig/hotspot/src/share/vm/interpreter/interpreterRuntime.hpp openjdk/hotspot/src/share/vm/interpreter/interpreterRuntime.hpp
++index 93c1a9e..425400e 100644
++--- openjdk.orig/hotspot/src/share/vm/interpreter/interpreterRuntime.hpp
+++++ openjdk/hotspot/src/share/vm/interpreter/interpreterRuntime.hpp
++@@ -164,6 +164,9 @@ class InterpreterRuntime: AllStatic {
++ #endif
++ #ifdef TARGET_ARCH_ppc
++ # include "interpreterRT_ppc.hpp"
+++#endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "interpreterRT_aarch64.hpp"
++ #endif
++ 
++ 
++diff --git openjdk.orig/hotspot/src/share/vm/interpreter/templateInterpreter.hpp openjdk/hotspot/src/share/vm/interpreter/templateInterpreter.hpp
++index 25d74f7..f78a16e 100644
++--- openjdk.orig/hotspot/src/share/vm/interpreter/templateInterpreter.hpp
+++++ openjdk/hotspot/src/share/vm/interpreter/templateInterpreter.hpp
++@@ -198,6 +198,9 @@ class TemplateInterpreter: public AbstractInterpreter {
++ #ifdef TARGET_ARCH_ppc
++ # include "templateInterpreter_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "templateInterpreter_aarch64.hpp"
+++#endif
++ 
++ 
++ };
++diff --git openjdk.orig/hotspot/src/share/vm/interpreter/templateInterpreterGenerator.hpp openjdk/hotspot/src/share/vm/interpreter/templateInterpreterGenerator.hpp
++index fb7bdc5..6007630 100644
++--- openjdk.orig/hotspot/src/share/vm/interpreter/templateInterpreterGenerator.hpp
+++++ openjdk/hotspot/src/share/vm/interpreter/templateInterpreterGenerator.hpp
++@@ -101,6 +101,9 @@ class TemplateInterpreterGenerator: public AbstractInterpreterGenerator {
++ #ifdef TARGET_ARCH_ppc
++ # include "templateInterpreterGenerator_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "templateInterpreterGenerator_aarch64.hpp"
+++#endif
++ 
++ 
++ };
++diff --git openjdk.orig/hotspot/src/share/vm/interpreter/templateTable.hpp openjdk/hotspot/src/share/vm/interpreter/templateTable.hpp
++index 5d2a7e8..c5e0f0a 100644
++--- openjdk.orig/hotspot/src/share/vm/interpreter/templateTable.hpp
+++++ openjdk/hotspot/src/share/vm/interpreter/templateTable.hpp
++@@ -43,6 +43,9 @@
++ #ifdef TARGET_ARCH_MODEL_ppc
++ # include "interp_masm_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_MODEL_aarch64
+++# include "interp_masm_aarch64.hpp"
+++#endif
++ 
++ #ifndef CC_INTERP
++ // All the necessary definitions used for (bytecode) template generation. Instead of
++@@ -373,6 +376,9 @@ class TemplateTable: AllStatic {
++ #ifdef TARGET_ARCH_MODEL_ppc
++ # include "templateTable_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_MODEL_aarch64
+++# include "templateTable_aarch64.hpp"
+++#endif
++ 
++ };
++ #endif /* !CC_INTERP */
++diff --git openjdk.orig/hotspot/src/share/vm/oops/constantPoolOop.hpp openjdk/hotspot/src/share/vm/oops/constantPoolOop.hpp
++index c2f985d..3d0d0fc 100644
++--- openjdk.orig/hotspot/src/share/vm/oops/constantPoolOop.hpp
+++++ openjdk/hotspot/src/share/vm/oops/constantPoolOop.hpp
++@@ -45,6 +45,9 @@
++ #ifdef TARGET_ARCH_ppc
++ # include "bytes_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "bytes_aarch64.hpp"
+++#endif
++ 
++ // A constantPool is an array containing class constants as described in the
++ // class file.
++diff --git openjdk.orig/hotspot/src/share/vm/oops/oop.inline.hpp openjdk/hotspot/src/share/vm/oops/oop.inline.hpp
++index db14b2e..c8b326f 100644
++--- openjdk.orig/hotspot/src/share/vm/oops/oop.inline.hpp
+++++ openjdk/hotspot/src/share/vm/oops/oop.inline.hpp
++@@ -58,6 +58,9 @@
++ #ifdef TARGET_ARCH_ppc
++ # include "bytes_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "bytes_aarch64.hpp"
+++#endif
++ 
++ // Implementation of all inlined member functions defined in oop.hpp
++ // We need a separate file to avoid circular references
++diff --git openjdk.orig/hotspot/src/share/vm/opto/buildOopMap.cpp openjdk/hotspot/src/share/vm/opto/buildOopMap.cpp
++index fc73160..2c5ec41 100644
++--- openjdk.orig/hotspot/src/share/vm/opto/buildOopMap.cpp
+++++ openjdk/hotspot/src/share/vm/opto/buildOopMap.cpp
++@@ -47,6 +47,9 @@
++ #ifdef TARGET_ARCH_ppc
++ # include "vmreg_ppc.inline.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "vmreg_aarch64.inline.hpp"
+++#endif
++ 
++ // The functions in this file builds OopMaps after all scheduling is done.
++ //
++diff --git openjdk.orig/hotspot/src/share/vm/opto/c2_globals.hpp openjdk/hotspot/src/share/vm/opto/c2_globals.hpp
++index f73dcbd..462c875 100644
++--- openjdk.orig/hotspot/src/share/vm/opto/c2_globals.hpp
+++++ openjdk/hotspot/src/share/vm/opto/c2_globals.hpp
++@@ -35,6 +35,9 @@
++ #ifdef TARGET_ARCH_arm
++ # include "c2_globals_arm.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "c2_globals_aarch64.hpp"
+++#endif
++ #ifdef TARGET_OS_FAMILY_linux
++ # include "c2_globals_linux.hpp"
++ #endif
++diff --git openjdk.orig/hotspot/src/share/vm/opto/c2compiler.cpp openjdk/hotspot/src/share/vm/opto/c2compiler.cpp
++index 713e3f1..948e447 100644
++--- openjdk.orig/hotspot/src/share/vm/opto/c2compiler.cpp
+++++ openjdk/hotspot/src/share/vm/opto/c2compiler.cpp
++@@ -43,6 +43,9 @@
++ #ifdef TARGET_ARCH_MODEL_ppc
++ # include "adfiles/ad_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_MODEL_aarch64
+++# include "adfiles/ad_aarch64.hpp"
+++#endif
++ 
++ 
++ volatile int C2Compiler::_runtimes = uninitialized;
++diff --git openjdk.orig/hotspot/src/share/vm/opto/compile.cpp openjdk/hotspot/src/share/vm/opto/compile.cpp
++index a7ee07a..91dc290 100644
++--- openjdk.orig/hotspot/src/share/vm/opto/compile.cpp
+++++ openjdk/hotspot/src/share/vm/opto/compile.cpp
++@@ -80,6 +80,9 @@
++ #ifdef TARGET_ARCH_MODEL_ppc
++ # include "adfiles/ad_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_MODEL_aarch64
+++# include "adfiles/ad_aarch64.hpp"
+++#endif
++ 
++ 
++ // -------------------- Compile::mach_constant_base_node -----------------------
++diff --git openjdk.orig/hotspot/src/share/vm/opto/gcm.cpp openjdk/hotspot/src/share/vm/opto/gcm.cpp
++index 8b8f311..4deb0b4 100644
++--- openjdk.orig/hotspot/src/share/vm/opto/gcm.cpp
+++++ openjdk/hotspot/src/share/vm/opto/gcm.cpp
++@@ -53,6 +53,9 @@
++ #ifdef TARGET_ARCH_MODEL_ppc
++ # include "adfiles/ad_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_MODEL_aarch64
+++# include "adfiles/ad_aarch64.hpp"
+++#endif
++ 
++ // Portions of code courtesy of Clifford Click
++ 
++diff --git openjdk.orig/hotspot/src/share/vm/opto/lcm.cpp openjdk/hotspot/src/share/vm/opto/lcm.cpp
++index aee6123..4b9aaed 100644
++--- openjdk.orig/hotspot/src/share/vm/opto/lcm.cpp
+++++ openjdk/hotspot/src/share/vm/opto/lcm.cpp
++@@ -48,6 +48,9 @@
++ #ifdef TARGET_ARCH_MODEL_ppc
++ # include "adfiles/ad_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_MODEL_aarch64
+++# include "adfiles/ad_aarch64.hpp"
+++#endif
++ 
++ // Optimization - Graph Style
++ 
++diff --git openjdk.orig/hotspot/src/share/vm/opto/locknode.hpp openjdk/hotspot/src/share/vm/opto/locknode.hpp
++index 91b99bc..665594f 100644
++--- openjdk.orig/hotspot/src/share/vm/opto/locknode.hpp
+++++ openjdk/hotspot/src/share/vm/opto/locknode.hpp
++@@ -46,6 +46,9 @@
++ #ifdef TARGET_ARCH_MODEL_ppc
++ # include "adfiles/ad_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_MODEL_aarch64
+++# include "adfiles/ad_aarch64.hpp"
+++#endif
++ 
++ //------------------------------BoxLockNode------------------------------------
++ class BoxLockNode : public Node {
++diff --git openjdk.orig/hotspot/src/share/vm/opto/matcher.cpp openjdk/hotspot/src/share/vm/opto/matcher.cpp
++index ca2d4e3..d0f55c5 100644
++--- openjdk.orig/hotspot/src/share/vm/opto/matcher.cpp
+++++ openjdk/hotspot/src/share/vm/opto/matcher.cpp
++@@ -55,6 +55,9 @@
++ #ifdef TARGET_ARCH_MODEL_ppc
++ # include "adfiles/ad_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_MODEL_aarch64
+++# include "adfiles/ad_aarch64.hpp"
+++#endif
++ 
++ OptoReg::Name OptoReg::c_frame_pointer;
++ 
++diff --git openjdk.orig/hotspot/src/share/vm/opto/output.hpp openjdk/hotspot/src/share/vm/opto/output.hpp
++index 50b6e76..6a920b2 100644
++--- openjdk.orig/hotspot/src/share/vm/opto/output.hpp
+++++ openjdk/hotspot/src/share/vm/opto/output.hpp
++@@ -45,6 +45,9 @@
++ #ifdef TARGET_ARCH_MODEL_ppc
++ # include "adfiles/ad_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_MODEL_aarch64
+++# include "adfiles/ad_aarch64.hpp"
+++#endif
++ 
++ class Arena;
++ class Bundle;
++diff --git openjdk.orig/hotspot/src/share/vm/opto/regmask.cpp openjdk/hotspot/src/share/vm/opto/regmask.cpp
++index ce220f0..20c6028 100644
++--- openjdk.orig/hotspot/src/share/vm/opto/regmask.cpp
+++++ openjdk/hotspot/src/share/vm/opto/regmask.cpp
++@@ -43,6 +43,9 @@
++ #ifdef TARGET_ARCH_MODEL_ppc
++ # include "adfiles/ad_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_MODEL_aarch64
+++# include "adfiles/ad_aarch64.hpp"
+++#endif
++ 
++ #define RM_SIZE _RM_SIZE /* a constant private to the class RegMask */
++ 
++diff --git openjdk.orig/hotspot/src/share/vm/opto/regmask.hpp openjdk/hotspot/src/share/vm/opto/regmask.hpp
++index e50ff84..26c6854 100644
++--- openjdk.orig/hotspot/src/share/vm/opto/regmask.hpp
+++++ openjdk/hotspot/src/share/vm/opto/regmask.hpp
++@@ -46,6 +46,9 @@
++ #ifdef TARGET_ARCH_MODEL_ppc
++ # include "adfiles/adGlobals_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_MODEL_aarch64
+++# include "adfiles/adGlobals_aarch64.hpp"
+++#endif
++ 
++ // Some fun naming (textual) substitutions:
++ //
++diff --git openjdk.orig/hotspot/src/share/vm/opto/runtime.cpp openjdk/hotspot/src/share/vm/opto/runtime.cpp
++index d315f10..11a58b1 100644
++--- openjdk.orig/hotspot/src/share/vm/opto/runtime.cpp
+++++ openjdk/hotspot/src/share/vm/opto/runtime.cpp
++@@ -86,6 +86,9 @@
++ #ifdef TARGET_ARCH_MODEL_ppc
++ # include "adfiles/ad_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_MODEL_aarch64
+++# include "adfiles/ad_aarch64.hpp"
+++#endif
++ 
++ 
++ // For debugging purposes:
++diff --git openjdk.orig/hotspot/src/share/vm/prims/jniCheck.cpp openjdk/hotspot/src/share/vm/prims/jniCheck.cpp
++index 3bf4ecd..2ad9014 100644
++--- openjdk.orig/hotspot/src/share/vm/prims/jniCheck.cpp
+++++ openjdk/hotspot/src/share/vm/prims/jniCheck.cpp
++@@ -51,6 +51,9 @@
++ #ifdef TARGET_ARCH_ppc
++ # include "jniTypes_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "jniTypes_aarch64.hpp"
+++#endif
++ 
++ 
++ // Heap objects are allowed to be directly referenced only in VM code,
++diff --git openjdk.orig/hotspot/src/share/vm/prims/jni_md.h openjdk/hotspot/src/share/vm/prims/jni_md.h
++index 7fa5829..3bd4e31 100644
++--- openjdk.orig/hotspot/src/share/vm/prims/jni_md.h
+++++ openjdk/hotspot/src/share/vm/prims/jni_md.h
++@@ -39,6 +39,9 @@
++ #ifdef TARGET_ARCH_ppc
++ # include "jni_ppc.h"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "jni_aarch64.h"
+++#endif
++ 
++ 
++ /*
++diff --git openjdk.orig/hotspot/src/share/vm/prims/jvmtiClassFileReconstituter.cpp openjdk/hotspot/src/share/vm/prims/jvmtiClassFileReconstituter.cpp
++index 97dd154..fd1fa43 100644
++--- openjdk.orig/hotspot/src/share/vm/prims/jvmtiClassFileReconstituter.cpp
+++++ openjdk/hotspot/src/share/vm/prims/jvmtiClassFileReconstituter.cpp
++@@ -43,6 +43,9 @@
++ #ifdef TARGET_ARCH_ppc
++ # include "bytes_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "bytes_aarch64.hpp"
+++#endif
++ // FIXME: add Deprecated, LVTT attributes
++ // FIXME: fix Synthetic attribute
++ // FIXME: per Serguei, add error return handling for constantPoolOopDesc::copy_cpool_bytes()
++diff --git openjdk.orig/hotspot/src/share/vm/prims/methodHandles.hpp openjdk/hotspot/src/share/vm/prims/methodHandles.hpp
++index 514ba6a..ea747d0 100644
++--- openjdk.orig/hotspot/src/share/vm/prims/methodHandles.hpp
+++++ openjdk/hotspot/src/share/vm/prims/methodHandles.hpp
++@@ -738,6 +738,9 @@ public:
++ #ifdef TARGET_ARCH_ppc
++ # include "methodHandles_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "methodHandles_aarch64.hpp"
+++#endif
++ };
++ 
++ 
++diff --git openjdk.orig/hotspot/src/share/vm/runtime/atomic.cpp openjdk/hotspot/src/share/vm/runtime/atomic.cpp
++index 80780d7..5a34f15 100644
++--- openjdk.orig/hotspot/src/share/vm/runtime/atomic.cpp
+++++ openjdk/hotspot/src/share/vm/runtime/atomic.cpp
++@@ -60,6 +60,9 @@
++ #ifdef TARGET_OS_ARCH_linux_ppc
++ # include "atomic_linux_ppc.inline.hpp"
++ #endif
+++#ifdef TARGET_OS_ARCH_linux_aarch64
+++# include "atomic_linux_aarch64.inline.hpp"
+++#endif
++ #ifdef TARGET_OS_ARCH_bsd_x86
++ # include "atomic_bsd_x86.inline.hpp"
++ #endif
++diff --git openjdk.orig/hotspot/src/share/vm/runtime/deoptimization.cpp openjdk/hotspot/src/share/vm/runtime/deoptimization.cpp
++index 4735588..4e7958a 100644
++--- openjdk.orig/hotspot/src/share/vm/runtime/deoptimization.cpp
+++++ openjdk/hotspot/src/share/vm/runtime/deoptimization.cpp
++@@ -65,6 +65,9 @@
++ #ifdef TARGET_ARCH_ppc
++ # include "vmreg_ppc.inline.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "vmreg_aarch64.inline.hpp"
+++#endif
++ #ifdef COMPILER2
++ #ifdef TARGET_ARCH_MODEL_x86_32
++ # include "adfiles/ad_x86_32.hpp"
++@@ -84,6 +87,9 @@
++ #ifdef TARGET_ARCH_MODEL_ppc
++ # include "adfiles/ad_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_MODEL_aarch64
+++# include "adfiles/ad_aarch64.hpp"
+++#endif
++ #endif
++ 
++ bool DeoptimizationMarker::_is_active = false;
++diff --git openjdk.orig/hotspot/src/share/vm/runtime/dtraceJSDT.hpp openjdk/hotspot/src/share/vm/runtime/dtraceJSDT.hpp
++index bff4310..1129cd6 100644
++--- openjdk.orig/hotspot/src/share/vm/runtime/dtraceJSDT.hpp
+++++ openjdk/hotspot/src/share/vm/runtime/dtraceJSDT.hpp
++@@ -41,6 +41,9 @@
++ #ifdef TARGET_ARCH_ppc
++ # include "nativeInst_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "nativeInst_aarch64.hpp"
+++#endif
++ 
++ class RegisteredProbes;
++ typedef jlong OpaqueProbes;
++diff --git openjdk.orig/hotspot/src/share/vm/runtime/frame.cpp openjdk/hotspot/src/share/vm/runtime/frame.cpp
++index 7ae9aa8..6654714 100644
++--- openjdk.orig/hotspot/src/share/vm/runtime/frame.cpp
+++++ openjdk/hotspot/src/share/vm/runtime/frame.cpp
++@@ -59,6 +59,9 @@
++ #ifdef TARGET_ARCH_ppc
++ # include "nativeInst_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "nativeInst_aarch64.hpp"
+++#endif
++ 
++ RegisterMap::RegisterMap(JavaThread *thread, bool update_map) {
++   _thread         = thread;
++diff --git openjdk.orig/hotspot/src/share/vm/runtime/frame.hpp openjdk/hotspot/src/share/vm/runtime/frame.hpp
++index c55380e..c13caae 100644
++--- openjdk.orig/hotspot/src/share/vm/runtime/frame.hpp
+++++ openjdk/hotspot/src/share/vm/runtime/frame.hpp
++@@ -50,6 +50,9 @@
++ #ifdef TARGET_ARCH_MODEL_ppc
++ # include "adfiles/adGlobals_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_MODEL_aarch64
+++# include "adfiles/adGlobals_aarch64.hpp"
+++#endif
++ #endif
++ #ifdef ZERO
++ #ifdef TARGET_ARCH_zero
++@@ -491,6 +494,9 @@ class frame VALUE_OBJ_CLASS_SPEC {
++ #ifdef TARGET_ARCH_ppc
++ # include "frame_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "frame_aarch64.hpp"
+++#endif
++ 
++ };
++ 
++diff --git openjdk.orig/hotspot/src/share/vm/runtime/frame.inline.hpp openjdk/hotspot/src/share/vm/runtime/frame.inline.hpp
++index b80b042..f6e1b0e 100644
++--- openjdk.orig/hotspot/src/share/vm/runtime/frame.inline.hpp
+++++ openjdk/hotspot/src/share/vm/runtime/frame.inline.hpp
++@@ -46,6 +46,9 @@
++ #ifdef TARGET_ARCH_ppc
++ # include "jniTypes_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "jniTypes_aarch64.hpp"
+++#endif
++ #ifdef ZERO
++ #ifdef TARGET_ARCH_zero
++ # include "entryFrame_zero.hpp"
++@@ -100,6 +103,9 @@ inline bool frame::is_first_frame() const {
++ #ifdef TARGET_ARCH_ppc
++ # include "frame_ppc.inline.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "frame_aarch64.inline.hpp"
+++#endif
++ 
++ 
++ #endif // SHARE_VM_RUNTIME_FRAME_INLINE_HPP
++diff --git openjdk.orig/hotspot/src/share/vm/runtime/globals.hpp openjdk/hotspot/src/share/vm/runtime/globals.hpp
++index 10d74cd..4cc5dfb 100644
++--- openjdk.orig/hotspot/src/share/vm/runtime/globals.hpp
+++++ openjdk/hotspot/src/share/vm/runtime/globals.hpp
++@@ -52,6 +52,9 @@
++ #ifdef TARGET_ARCH_ppc
++ # include "globals_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "globals_aarch64.hpp"
+++#endif
++ #ifdef TARGET_OS_FAMILY_linux
++ # include "globals_linux.hpp"
++ #endif
++@@ -88,6 +91,9 @@
++ #ifdef TARGET_OS_ARCH_linux_ppc
++ # include "globals_linux_ppc.hpp"
++ #endif
+++#ifdef TARGET_OS_ARCH_linux_aarch64
+++# include "globals_linux_aarch64.hpp"
+++#endif
++ #ifdef TARGET_OS_ARCH_bsd_x86
++ # include "globals_bsd_x86.hpp"
++ #endif
++@@ -107,6 +113,9 @@
++ #ifdef TARGET_ARCH_ppc
++ # include "c1_globals_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "c1_globals_aarch64.hpp"
+++#endif
++ #ifdef TARGET_OS_FAMILY_linux
++ # include "c1_globals_linux.hpp"
++ #endif
++@@ -130,6 +139,9 @@
++ #ifdef TARGET_ARCH_arm
++ # include "c2_globals_arm.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "c2_globals_aarch64.hpp"
+++#endif
++ #ifdef TARGET_OS_FAMILY_linux
++ # include "c2_globals_linux.hpp"
++ #endif
++diff --git openjdk.orig/hotspot/src/share/vm/runtime/icache.hpp openjdk/hotspot/src/share/vm/runtime/icache.hpp
++index d460a0f..9a3b9c8 100644
++--- openjdk.orig/hotspot/src/share/vm/runtime/icache.hpp
+++++ openjdk/hotspot/src/share/vm/runtime/icache.hpp
++@@ -83,6 +83,9 @@ class AbstractICache : AllStatic {
++ #ifdef TARGET_ARCH_ppc
++ # include "icache_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "icache_aarch64.hpp"
+++#endif
++ 
++ 
++ 
++diff --git openjdk.orig/hotspot/src/share/vm/runtime/java.cpp openjdk/hotspot/src/share/vm/runtime/java.cpp
++index fc3b67a..46794b0 100644
++--- openjdk.orig/hotspot/src/share/vm/runtime/java.cpp
+++++ openjdk/hotspot/src/share/vm/runtime/java.cpp
++@@ -78,6 +78,9 @@
++ #ifdef TARGET_ARCH_ppc
++ # include "vm_version_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "vm_version_aarch64.hpp"
+++#endif
++ #ifdef TARGET_OS_FAMILY_linux
++ # include "thread_linux.inline.hpp"
++ #endif
++diff --git openjdk.orig/hotspot/src/share/vm/runtime/javaCalls.hpp openjdk/hotspot/src/share/vm/runtime/javaCalls.hpp
++index d4f8595..bc2ca9b 100644
++--- openjdk.orig/hotspot/src/share/vm/runtime/javaCalls.hpp
+++++ openjdk/hotspot/src/share/vm/runtime/javaCalls.hpp
++@@ -45,6 +45,9 @@
++ #ifdef TARGET_ARCH_ppc
++ # include "jniTypes_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "jniTypes_aarch64.hpp"
+++#endif
++ #ifdef TARGET_OS_FAMILY_linux
++ # include "thread_linux.inline.hpp"
++ #endif
++diff --git openjdk.orig/hotspot/src/share/vm/runtime/javaFrameAnchor.hpp openjdk/hotspot/src/share/vm/runtime/javaFrameAnchor.hpp
++index 8374aa2..6be5f79 100644
++--- openjdk.orig/hotspot/src/share/vm/runtime/javaFrameAnchor.hpp
+++++ openjdk/hotspot/src/share/vm/runtime/javaFrameAnchor.hpp
++@@ -47,6 +47,9 @@
++ #ifdef TARGET_OS_ARCH_linux_arm
++ # include "orderAccess_linux_arm.inline.hpp"
++ #endif
+++#ifdef TARGET_OS_ARCH_linux_aarch64
+++# include "orderAccess_linux_aarch64.inline.hpp"
+++#endif
++ #ifdef TARGET_OS_ARCH_linux_ppc
++ # include "orderAccess_linux_ppc.inline.hpp"
++ #endif
++@@ -121,6 +124,9 @@ friend class JavaCallWrapper;
++ #ifdef TARGET_ARCH_ppc
++ # include "javaFrameAnchor_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "javaFrameAnchor_aarch64.hpp"
+++#endif
++ 
++ 
++ public:
++diff --git openjdk.orig/hotspot/src/share/vm/runtime/os.hpp openjdk/hotspot/src/share/vm/runtime/os.hpp
++index 5867deb..0f1fbb4 100644
++--- openjdk.orig/hotspot/src/share/vm/runtime/os.hpp
+++++ openjdk/hotspot/src/share/vm/runtime/os.hpp
++@@ -719,6 +719,9 @@ class os: AllStatic {
++ #ifdef TARGET_OS_ARCH_linux_ppc
++ # include "os_linux_ppc.hpp"
++ #endif
+++#ifdef TARGET_OS_ARCH_linux_aarch64
+++# include "os_linux_aarch64.hpp"
+++#endif
++ #ifdef TARGET_OS_ARCH_bsd_x86
++ # include "os_bsd_x86.hpp"
++ #endif
++diff --git openjdk.orig/hotspot/src/share/vm/runtime/registerMap.hpp openjdk/hotspot/src/share/vm/runtime/registerMap.hpp
++index 5dd677a..7bd425f 100644
++--- openjdk.orig/hotspot/src/share/vm/runtime/registerMap.hpp
+++++ openjdk/hotspot/src/share/vm/runtime/registerMap.hpp
++@@ -42,6 +42,9 @@
++ #ifdef TARGET_ARCH_ppc
++ # include "register_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "register_aarch64.hpp"
+++#endif
++ 
++ class JavaThread;
++ 
++@@ -150,6 +153,9 @@ class RegisterMap : public StackObj {
++ #ifdef TARGET_ARCH_ppc
++ # include "registerMap_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "registerMap_aarch64.hpp"
+++#endif
++ 
++ };
++ 
++diff --git openjdk.orig/hotspot/src/share/vm/runtime/relocator.hpp openjdk/hotspot/src/share/vm/runtime/relocator.hpp
++index c34866f..790bd80 100644
++--- openjdk.orig/hotspot/src/share/vm/runtime/relocator.hpp
+++++ openjdk/hotspot/src/share/vm/runtime/relocator.hpp
++@@ -42,6 +42,9 @@
++ #ifdef TARGET_ARCH_ppc
++ # include "bytes_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "bytes_aarch64.hpp"
+++#endif
++ 
++ // This code has been converted from the 1.1E java virtual machine
++ // Thanks to the JavaTopics group for using the code
++diff --git openjdk.orig/hotspot/src/share/vm/runtime/safepoint.cpp openjdk/hotspot/src/share/vm/runtime/safepoint.cpp
++index c29d257..a842bb3 100644
++--- openjdk.orig/hotspot/src/share/vm/runtime/safepoint.cpp
+++++ openjdk/hotspot/src/share/vm/runtime/safepoint.cpp
++@@ -70,6 +70,10 @@
++ # include "nativeInst_ppc.hpp"
++ # include "vmreg_ppc.inline.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "nativeInst_aarch64.hpp"
+++# include "vmreg_aarch64.inline.hpp"
+++#endif
++ #ifdef TARGET_OS_FAMILY_linux
++ # include "thread_linux.inline.hpp"
++ #endif
++diff --git openjdk.orig/hotspot/src/share/vm/runtime/sharedRuntime.cpp openjdk/hotspot/src/share/vm/runtime/sharedRuntime.cpp
++index c25dcfe..aa7caff 100644
++--- openjdk.orig/hotspot/src/share/vm/runtime/sharedRuntime.cpp
+++++ openjdk/hotspot/src/share/vm/runtime/sharedRuntime.cpp
++@@ -76,6 +76,10 @@
++ # include "nativeInst_ppc.hpp"
++ # include "vmreg_ppc.inline.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "nativeInst_aarch64.hpp"
+++# include "vmreg_aarch64.inline.hpp"
+++#endif
++ #ifdef COMPILER1
++ #include "c1/c1_Runtime1.hpp"
++ #endif
++diff --git openjdk.orig/hotspot/src/share/vm/runtime/stackValueCollection.cpp openjdk/hotspot/src/share/vm/runtime/stackValueCollection.cpp
++index 110f712..779f994 100644
++--- openjdk.orig/hotspot/src/share/vm/runtime/stackValueCollection.cpp
+++++ openjdk/hotspot/src/share/vm/runtime/stackValueCollection.cpp
++@@ -39,6 +39,9 @@
++ #ifdef TARGET_ARCH_ppc
++ # include "jniTypes_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "jniTypes_aarch64.hpp"
+++#endif
++ 
++ jint StackValueCollection::int_at(int slot) const {
++   intptr_t val =  at(slot)->get_int();
++diff --git openjdk.orig/hotspot/src/share/vm/runtime/statSampler.cpp openjdk/hotspot/src/share/vm/runtime/statSampler.cpp
++index 0b24def..c82a214 100644
++--- openjdk.orig/hotspot/src/share/vm/runtime/statSampler.cpp
+++++ openjdk/hotspot/src/share/vm/runtime/statSampler.cpp
++@@ -48,6 +48,9 @@
++ #ifdef TARGET_ARCH_ppc
++ # include "vm_version_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "vm_version_aarch64.hpp"
+++#endif
++ 
++ // --------------------------------------------------------
++ // StatSamplerTask
++diff --git openjdk.orig/hotspot/src/share/vm/runtime/stubCodeGenerator.cpp openjdk/hotspot/src/share/vm/runtime/stubCodeGenerator.cpp
++index b6068a5..4ef7e38 100644
++--- openjdk.orig/hotspot/src/share/vm/runtime/stubCodeGenerator.cpp
+++++ openjdk/hotspot/src/share/vm/runtime/stubCodeGenerator.cpp
++@@ -42,6 +42,9 @@
++ #ifdef TARGET_ARCH_ppc
++ # include "assembler_ppc.inline.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "assembler_aarch64.inline.hpp"
+++#endif
++ 
++ 
++ // Implementation of StubCodeDesc
++diff --git openjdk.orig/hotspot/src/share/vm/runtime/stubRoutines.hpp openjdk/hotspot/src/share/vm/runtime/stubRoutines.hpp
++index 8481dce..f233b56 100644
++--- openjdk.orig/hotspot/src/share/vm/runtime/stubRoutines.hpp
+++++ openjdk/hotspot/src/share/vm/runtime/stubRoutines.hpp
++@@ -46,6 +46,9 @@
++ #ifdef TARGET_ARCH_ppc
++ # include "nativeInst_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "nativeInst_aarch64.hpp"
+++#endif
++ 
++ // StubRoutines provides entry points to assembly routines used by
++ // compiled code and the run-time system. Platform-specific entry
++@@ -116,6 +119,9 @@ class StubRoutines: AllStatic {
++ #endif
++ #ifdef TARGET_ARCH_MODEL_ppc
++ # include "stubRoutines_ppc.hpp"
+++#endif
+++#ifdef TARGET_ARCH_MODEL_aarch64
+++# include "stubRoutines_aarch64.hpp"
++ #endif
++ 
++ 
++diff --git openjdk.orig/hotspot/src/share/vm/runtime/thread.hpp openjdk/hotspot/src/share/vm/runtime/thread.hpp
++index 7846cc0..6964c22 100644
++--- openjdk.orig/hotspot/src/share/vm/runtime/thread.hpp
+++++ openjdk/hotspot/src/share/vm/runtime/thread.hpp
++@@ -1651,6 +1651,9 @@ public:
++ #ifdef TARGET_OS_ARCH_linux_ppc
++ # include "thread_linux_ppc.hpp"
++ #endif
+++#ifdef TARGET_OS_ARCH_linux_aarch64
+++# include "thread_linux_aarch64.hpp"
+++#endif
++ #ifdef TARGET_OS_ARCH_bsd_x86
++ # include "thread_bsd_x86.hpp"
++ #endif
++diff --git openjdk.orig/hotspot/src/share/vm/runtime/threadLocalStorage.hpp openjdk/hotspot/src/share/vm/runtime/threadLocalStorage.hpp
++index c2f7a9e..26ef559 100644
++--- openjdk.orig/hotspot/src/share/vm/runtime/threadLocalStorage.hpp
+++++ openjdk/hotspot/src/share/vm/runtime/threadLocalStorage.hpp
++@@ -68,6 +68,9 @@ class ThreadLocalStorage : AllStatic {
++ #ifdef TARGET_OS_ARCH_linux_ppc
++ # include "threadLS_linux_ppc.hpp"
++ #endif
+++#ifdef TARGET_OS_ARCH_linux_aarch64
+++# include "threadLS_linux_aarch64.hpp"
+++#endif
++ #ifdef TARGET_OS_ARCH_bsd_x86
++ # include "threadLS_bsd_x86.hpp"
++ #endif
++diff --git openjdk.orig/hotspot/src/share/vm/runtime/vmStructs.cpp openjdk/hotspot/src/share/vm/runtime/vmStructs.cpp
++index 8afd933..359f9fc 100644
++--- openjdk.orig/hotspot/src/share/vm/runtime/vmStructs.cpp
+++++ openjdk/hotspot/src/share/vm/runtime/vmStructs.cpp
++@@ -125,6 +125,9 @@
++ #ifdef TARGET_ARCH_ppc
++ # include "vmStructs_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "vmStructs_aarch64.hpp"
+++#endif
++ #ifdef TARGET_OS_FAMILY_linux
++ # include "thread_linux.inline.hpp"
++ #endif
++@@ -161,6 +164,9 @@
++ #ifdef TARGET_OS_ARCH_linux_ppc
++ # include "vmStructs_linux_ppc.hpp"
++ #endif
+++#ifdef TARGET_OS_ARCH_linux_aarch64
+++# include "vmStructs_linux_aarch64.hpp"
+++#endif
++ #ifdef TARGET_OS_ARCH_bsd_x86
++ # include "vmStructs_bsd_x86.hpp"
++ #endif
++@@ -221,6 +227,9 @@
++ #ifdef TARGET_ARCH_MODEL_ppc
++ # include "adfiles/adGlobals_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_MODEL_aarch64
+++# include "adfiles/adGlobals_aarch64.hpp"
+++#endif
++ #endif
++ 
++ // Note: the cross-product of (c1, c2, product, nonproduct, ...),
++diff --git openjdk.orig/hotspot/src/share/vm/runtime/vm_version.cpp openjdk/hotspot/src/share/vm/runtime/vm_version.cpp
++index 2d51b67..bba9b01 100644
++--- openjdk.orig/hotspot/src/share/vm/runtime/vm_version.cpp
+++++ openjdk/hotspot/src/share/vm/runtime/vm_version.cpp
++@@ -41,6 +41,9 @@
++ #ifdef TARGET_ARCH_ppc
++ # include "vm_version_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "vm_version_aarch64.hpp"
+++#endif
++ 
++ const char* Abstract_VM_Version::_s_vm_release = Abstract_VM_Version::vm_release();
++ const char* Abstract_VM_Version::_s_internal_vm_info_string = Abstract_VM_Version::internal_vm_info_string();
++@@ -185,6 +188,7 @@ const char* Abstract_VM_Version::jre_release_version() {
++                  AMD64_ONLY("amd64")             \
++                  ARM_ONLY("arm")                 \
++                  PPC_ONLY("ppc")                 \
+++                 AARCH64_ONLY("aarch64")         \
++                  SPARC_ONLY("sparc")
++ #endif // ZERO
++ 
++diff --git openjdk.orig/hotspot/src/share/vm/utilities/copy.hpp openjdk/hotspot/src/share/vm/utilities/copy.hpp
++index 3dcbfee..198590f 100644
++--- openjdk.orig/hotspot/src/share/vm/utilities/copy.hpp
+++++ openjdk/hotspot/src/share/vm/utilities/copy.hpp
++@@ -337,6 +337,9 @@ class Copy : AllStatic {
++ #ifdef TARGET_ARCH_ppc
++ # include "copy_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "copy_aarch64.hpp"
+++#endif
++ 
++ };
++ 
++diff --git openjdk.orig/hotspot/src/share/vm/utilities/globalDefinitions.hpp openjdk/hotspot/src/share/vm/utilities/globalDefinitions.hpp
++index b55b0ac..5d11e26 100644
++--- openjdk.orig/hotspot/src/share/vm/utilities/globalDefinitions.hpp
+++++ openjdk/hotspot/src/share/vm/utilities/globalDefinitions.hpp
++@@ -346,6 +346,9 @@ extern int LogMinObjAlignmentInBytes;
++ #ifdef TARGET_ARCH_ppc
++ # include "globalDefinitions_ppc.hpp"
++ #endif
+++#ifdef TARGET_ARCH_aarch64
+++# include "globalDefinitions_aarch64.hpp"
+++#endif
++ 
++ 
++ // The byte alignment to be used by Arena::Amalloc.  See bugid 4169348.
++diff --git openjdk.orig/hotspot/src/share/vm/utilities/macros.hpp openjdk/hotspot/src/share/vm/utilities/macros.hpp
++index 003f2af..2aa7f87 100644
++--- openjdk.orig/hotspot/src/share/vm/utilities/macros.hpp
+++++ openjdk/hotspot/src/share/vm/utilities/macros.hpp
++@@ -261,6 +261,14 @@
++ #define NOT_ARM(code) code
++ #endif
++ 
+++#ifdef AARCH64
+++#define AARCH64_ONLY(code) code
+++#define NOT_AARCH64(code)
+++#else
+++#define AARCH64_ONLY(code)
+++#define NOT_AARCH64(code) code
+++#endif
+++
++ #ifdef JAVASE_EMBEDDED
++ #define EMBEDDED_ONLY(code) code
++ #define NOT_EMBEDDED(code)
+-- 
+2.26.2
+
diff --git a/gnu/packages/patches/icedtea-6-hotspot-gcc-segfault-workaround.patch b/gnu/packages/patches/icedtea-6-hotspot-gcc-segfault-workaround.patch
deleted file mode 100644
index ef090e0ec9..0000000000
--- a/gnu/packages/patches/icedtea-6-hotspot-gcc-segfault-workaround.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-# HG changeset patch
-# User Gábor Boskovits <boskovits@gmail.com>
-# Date 1530519413 -7200
-#      Mon Jul 02 10:16:53 2018 +0200
-# Node ID 77e5bc9e238a28d17e097647badc04ed67a6a452
-# Parent  1ae05a34e052d1672b4a7894ddf5fc2f662eb861
-Fix gcc segfault.
-
-diff -r 1ae05a34e052 -r 77e5bc9e238a src/share/vm/opto/output.cpp
---- a/src/share/vm/opto/output.cpp	Sun Dec 25 23:52:13 2016 +0000
-+++ b/src/share/vm/opto/output.cpp	Mon Jul 02 10:16:53 2018 +0200
-@@ -1758,6 +1758,8 @@
- 
- // Initializer for class Scheduling
- 
-+volatile const void *eePointer = Pipeline_Use::elaborated_elements;
-+
- Scheduling::Scheduling(Arena *arena, Compile &compile)
-   : _arena(arena),
-     _cfg(compile.cfg()),
-@@ -1802,8 +1804,8 @@
- 
-   // Clear the bundling information
-   memcpy(_bundle_use_elements,
--    Pipeline_Use::elaborated_elements,
--    sizeof(Pipeline_Use::elaborated_elements));
-+	 (void *)eePointer,
-+    11*sizeof(Pipeline_Use_Element));
- 
-   // Get the last node
-   Block *bb = _cfg->_blocks[_cfg->_blocks.size()-1];
-@@ -1854,8 +1856,8 @@
-   _bundle_use.reset();
- 
-   memcpy(_bundle_use_elements,
--    Pipeline_Use::elaborated_elements,
--    sizeof(Pipeline_Use::elaborated_elements));
-+	 (void *)eePointer,
-+    11*sizeof(Pipeline_Use_Element));
- }
- 
- //------------------------------ScheduleAndBundle------------------------------
diff --git a/gnu/packages/patches/icedtea-7-hotspot-aarch64-use-c++98.patch b/gnu/packages/patches/icedtea-7-hotspot-aarch64-use-c++98.patch
new file mode 100644
index 0000000000..7ad215f975
--- /dev/null
+++ b/gnu/packages/patches/icedtea-7-hotspot-aarch64-use-c++98.patch
@@ -0,0 +1,33 @@
+From 919dd016be1abd213b3a7d0e9a3b79e3286ef6ad Mon Sep 17 00:00:00 2001
+From: Simon South <simon@simonsouth.net>
+Date: Wed, 10 Jun 2020 13:02:09 -0400
+Subject: [PATCH] aarch64: Use only C++98
+
+This patch removes an unneeded C++ template that causes the build to
+fail for aarch64 using gcc 7.5.0 and its default support for only the
+C++98 standard.
+
+It is based on original work by Severin Gehwolf <sgehwolf@redhat.com>.
+See: https://bugzilla.redhat.com/show_bug.cgi?id=1307224
+---
+ src/cpu/aarch64/vm/sharedRuntime_aarch64.cpp | 4 ----
+ 1 file changed, 4 deletions(-)
+
+diff --git a/src/cpu/aarch64/vm/sharedRuntime_aarch64.cpp b/src/cpu/aarch64/vm/sharedRuntime_aarch64.cpp
+index 0bc0a2b..6f73ca0 100644
+--- a/src/cpu/aarch64/vm/sharedRuntime_aarch64.cpp
++++ b/src/cpu/aarch64/vm/sharedRuntime_aarch64.cpp
+@@ -194,10 +194,6 @@ static int reg2offset_out(VMReg r) {
+   return (r->reg2stack() + SharedRuntime::out_preserve_stack_slots()) * VMRegImpl::stack_slot_size;
+ }
+ 
+-template <class T> static const T& min (const T& a, const T& b) {
+-  return (a > b) ? b : a;
+-}
+-
+ // ---------------------------------------------------------------------------
+ // Read the array of BasicTypes from a signature, and compute where the
+ // arguments should go.  Values in the VMRegPair regs array refer to 4-byte
+-- 
+2.26.2
+
diff --git a/gnu/packages/patches/icedtea-7-hotspot-gcc-segfault-workaround.patch b/gnu/packages/patches/icedtea-7-hotspot-gcc-segfault-workaround.patch
deleted file mode 100644
index 35cfe38152..0000000000
--- a/gnu/packages/patches/icedtea-7-hotspot-gcc-segfault-workaround.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From 2f0ef2c69e99e1096a2a72c7a29025a736b044b4 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?G=C3=A1bor=20Boskovits?= <boskovits@gmail.com>
-Date: Mon, 2 Jul 2018 23:37:25 +0200
-Subject: [PATCH] Fix gcc segfault.
-
----
- src/share/vm/opto/output.cpp | 8 +++++---
- 1 file changed, 5 insertions(+), 3 deletions(-)
-
-diff --git a/src/share/vm/opto/output.cpp b/src/share/vm/opto/output.cpp
-index d46cb87..0eb9eda 100644
---- a/src/share/vm/opto/output.cpp
-+++ b/src/share/vm/opto/output.cpp
-@@ -1787,6 +1787,8 @@ uint Scheduling::_total_instructions_per_bundle[Pipeline::_max_instrs_per_cycle+
- 
- // Initializer for class Scheduling
- 
-+volatile const void *eePointer = Pipeline_Use::elaborated_elements;
-+
- Scheduling::Scheduling(Arena *arena, Compile &compile)
-   : _arena(arena),
-     _cfg(compile.cfg()),
-@@ -1829,7 +1831,7 @@ Scheduling::Scheduling(Arena *arena, Compile &compile)
-   memset(_current_latency,    0, node_max * sizeof(unsigned short));
- 
-   // Clear the bundling information
--  memcpy(_bundle_use_elements, Pipeline_Use::elaborated_elements, sizeof(Pipeline_Use::elaborated_elements));
-+  memcpy(_bundle_use_elements, (void *)eePointer, 11*sizeof(Pipeline_Use_Element));
- 
-   // Get the last node
-   Block* block = _cfg->get_block(_cfg->number_of_blocks() - 1);
-@@ -1880,8 +1882,8 @@ void Scheduling::step_and_clear() {
-   _bundle_use.reset();
- 
-   memcpy(_bundle_use_elements,
--    Pipeline_Use::elaborated_elements,
--    sizeof(Pipeline_Use::elaborated_elements));
-+	 (void *)eePointer,
-+    11*sizeof(Pipeline_Use_Element));
- }
- 
- // Perform instruction scheduling and bundling over the sequence of
--- 
-2.18.0
-
diff --git a/gnu/packages/patches/idris-disable-test.patch b/gnu/packages/patches/idris-disable-test.patch
new file mode 100644
index 0000000000..ec8c7c8451
--- /dev/null
+++ b/gnu/packages/patches/idris-disable-test.patch
@@ -0,0 +1,19 @@
+The "pkg010" test output depends on the version of optparse-applicative being
+used.  The expected output requires optparse-applicative >= 0.15.1.0.  Skip
+the test for now.
+
+--- idris-1.3.3/test/TestData.hs	2021-01-19 23:05:24.238958262 -0600
++++ idris-1.3.3/test/TestData.hs	2021-01-19 23:10:33.314390997 -0600
+@@ -212,8 +212,10 @@
+       (  5, ANY  ),
+       (  6, ANY  ),
+       (  7, ANY  ),
+-      (  8, ANY  ),
+-      ( 10, ANY  )]),
++      (  8, ANY  )]),
++--      FIXME: Expected output depends on optparse-applicative version.
++--      See https://github.com/idris-lang/Idris-dev/issues/4896
++--      ( 10, ANY  )]),
+   ("prelude",         "Prelude",
+     [ (  1, ANY  )]),
+   ("primitives",      "Primitive types",
diff --git a/gnu/packages/patches/ipxe-reproducible-geniso.patch b/gnu/packages/patches/ipxe-reproducible-geniso.patch
new file mode 100644
index 0000000000..ff6aa1da94
--- /dev/null
+++ b/gnu/packages/patches/ipxe-reproducible-geniso.patch
@@ -0,0 +1,77 @@
+From 052d24d8217c51c572c2f6cbb4a687be2e8ba52d Mon Sep 17 00:00:00 2001
+From: Brice Waegeneire <brice@waegenei.re>
+Date: Fri, 5 Jun 2020 14:38:43 +0200
+Subject: [PATCH] [geniso] Make it reproducible
+
+Some timestamps get embedded in the generated ISO, making it
+unreproducible so we overwrite those timestamps to be at the UNIX epoch.
+---
+ src/util/geniso | 24 +++++++++++++++++++++---
+ 1 file changed, 21 insertions(+), 3 deletions(-)
+
+diff --git a/src/util/geniso b/src/util/geniso
+index ff090d4a..e032ffb0 100755
+--- a/src/util/geniso
++++ b/src/util/geniso
+@@ -11,6 +11,13 @@ function help() {
+ 	echo " -o FILE  save iso image to file"
+ }
+ 
++function reset_timestamp() {
++	for f in "$1"/*; do
++		touch -t 197001010100 "$f"
++	done
++	touch -t 197001010100 "$1"
++}
++
+ LEGACY=0
+ FIRST=""
+ 
+@@ -37,8 +44,9 @@ if [ -z "${OUT}" ]; then
+ 	exit 1
+ fi
+ 
+-# There should either be mkisofs or the compatible genisoimage program
+-for command in genisoimage mkisofs; do
++# There should either be mkisofs, xorriso or the compatible genisoimage
++# program
++for command in xorriso genisoimage mkisofs; do
+ 	if ${command} --version >/dev/null 2>/dev/null; then
+ 		mkisofs=(${command})
+ 		break
+@@ -46,8 +54,10 @@ for command in genisoimage mkisofs; do
+ done
+ 
+ if [ -z "${mkisofs}" ]; then
+-	echo "${0}: mkisofs or genisoimage not found, please install or set PATH" >&2
++	echo "${0}: mkisofs, xorriso or genisoimage not found, please install or set PATH" >&2
+ 	exit 1
++elif [ "$mkisofs" = "xorriso" ]; then
++	 mkisofs+=(-as mkisofs)
+ fi
+ 
+ dir=$(mktemp -d bin/iso.dir.XXXXXX)
+@@ -115,6 +125,8 @@ case "${LEGACY}" in
+ 			exit 1
+ 		fi
+ 
++		reset_timestamp "$dir"
++
+ 		# generate the iso image
+ 		"${mkisofs[@]}" -b boot.img -output ${OUT} ${dir}
+ 		;;
+@@ -127,6 +139,12 @@ case "${LEGACY}" in
+ 			cp ${LDLINUX_C32} ${dir}
+ 		fi
+ 
++		reset_timestamp "$dir"
++
++		if [ "${mkisofs[0]}" = "xorriso" ]; then
++			mkisofs+=(-isohybrid-mbr "$SYSLINUX_MBR_DISK_PATH")
++		fi
++
+ 		# generate the iso image
+ 		"${mkisofs[@]}" -b isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table -output ${OUT} ${dir}
+ 
+-- 
+2.26.2
diff --git a/gnu/packages/patches/jamvm-1.5.1-aarch64-support.patch b/gnu/packages/patches/jamvm-1.5.1-aarch64-support.patch
new file mode 100644
index 0000000000..8867d4f191
--- /dev/null
+++ b/gnu/packages/patches/jamvm-1.5.1-aarch64-support.patch
@@ -0,0 +1,572 @@
+From 9c83c3d3f443eb92f87dc87c7dcfe95577b95621 Mon Sep 17 00:00:00 2001
+From: Simon South <simon@simonsouth.net>
+Date: Thu, 28 May 2020 14:29:55 -0400
+Subject: [PATCH] Add support for aarch64 on GNU/Linux
+
+---
+ configure.ac                      |  10 +-
+ src/arch/Makefile.am              |   2 +-
+ src/arch/aarch64.h                | 110 ++++++++++++++++
+ src/os/linux/Makefile.am          |   2 +-
+ src/os/linux/aarch64/Makefile.am  |  28 ++++
+ src/os/linux/aarch64/callNative.S | 212 ++++++++++++++++++++++++++++++
+ src/os/linux/aarch64/dll_md.c     |  59 +++++++++
+ src/os/linux/aarch64/init.c       |  51 +++++++
+ 8 files changed, 469 insertions(+), 5 deletions(-)
+ create mode 100644 src/arch/aarch64.h
+ create mode 100644 src/os/linux/aarch64/Makefile.am
+ create mode 100644 src/os/linux/aarch64/callNative.S
+ create mode 100644 src/os/linux/aarch64/dll_md.c
+ create mode 100644 src/os/linux/aarch64/init.c
+
+diff --git a/configure.ac b/configure.ac
+index ccd530f..707f281 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -43,6 +43,7 @@ amd64-*-freebsd*) host_os=bsd libdl_needed=no ;;
+ arm*-*-linux*) host_cpu=arm host_os=linux ;;
+ arm*-*-openbsd*) host_cpu=arm host_os=bsd libdl_needed=no ;;
+ arm*-*-freebsd*) host_cpu=arm host_os=bsd libdl_needed=no ;;
++aarch64*-*-linux*) host_cpu=aarch64 host_os=linux ;;
+ powerpc*-*-linux*) host_cpu=powerpc host_os=linux ;;
+ powerpc*-*-openbsd*) host_cpu=powerpc host_os=bsd libdl_needed=no ;;
+ powerpc*-*-freebsd*) host_cpu=powerpc host_os=bsd libdl_needed=no ;;
+@@ -149,9 +150,11 @@ AC_ARG_ENABLE(runtime-reloc-checks,
+ 
+ AC_ARG_ENABLE(int-inlining,
+     [AS_HELP_STRING(--enable-int-inlining,enable inline threaded version of the interpreter
+-                   (by default enabled on x86_64, i386 and powerpc, disabled otherwise))],,
+-    [if test "$host_cpu" = x86_64 -o "$host_cpu" = i386 -o "$host_cpu" = powerpc && \
+-        test "$cross_compiling" = no -o "$enable_runtime_reloc_checks" != no; then
++                   (by default enabled on x86_64, i386, powerpc and aarch64,
++                   disabled otherwise))],,
++    [if test "$host_cpu" = x86_64 -o "$host_cpu" = i386 -o "$host_cpu" = powerpc -o \
++             "$host_cpu" = aarch64 && test "$cross_compiling" = no -o \
++             "$enable_runtime_reloc_checks" != no; then
+          enable_int_inlining=yes
+        else
+          enable_int_inlining=no
+@@ -298,6 +301,7 @@ AC_CONFIG_FILES(
+     src/os/linux/x86_64/Makefile \
+     src/os/linux/parisc/Makefile \
+     src/os/linux/mips/Makefile \
++    src/os/linux/aarch64/Makefile \
+     src/os/darwin/i386/Makefile \
+     src/os/darwin/arm/Makefile \
+     src/os/darwin/powerpc/Makefile \
+diff --git a/src/arch/Makefile.am b/src/arch/Makefile.am
+index 078c1de..afb26d1 100644
+--- a/src/arch/Makefile.am
++++ b/src/arch/Makefile.am
+@@ -19,4 +19,4 @@
+ ## Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ ##
+ 
+-EXTRA_DIST = powerpc.h arm.h i386.h x86_64.h parisc.h mips.h
++EXTRA_DIST = powerpc.h arm.h i386.h x86_64.h parisc.h mips.h aarch64.h
+diff --git a/src/arch/aarch64.h b/src/arch/aarch64.h
+new file mode 100644
+index 0000000..c96aa9f
+--- /dev/null
++++ b/src/arch/aarch64.h
+@@ -0,0 +1,110 @@
++/*
++ * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008
++ * Robert Lougher <rob@lougher.org.uk>.
++ * Copyright (C) 2020 Simon South <simon@simonsouth.net>.
++ *
++ * This file is part of JamVM.
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License
++ * as published by the Free Software Foundation; either version 2,
++ * or (at your option) any later version.
++ *
++ * This program 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 this program; if not, write to the Free Software
++ * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
++ */
++
++#include <stdint.h>
++
++#define OS_ARCH "aarch64"
++
++#define HANDLER_TABLE_T static const void
++#define DOUBLE_1_BITS 0x3ff0000000000000LL
++
++#define READ_DBL(v,p,l) v = ((u8)p[0]<<56)|((u8)p[1]<<48)|((u8)p[2]<<40) \
++                            |((u8)p[3]<<32)|((u8)p[4]<<24)|((u8)p[5]<<16) \
++                            |((u8)p[6]<<8)|(u8)p[7]; p+=8
++
++/* Needed for i386 -- empty here */
++#define FPU_HACK
++
++#define COMPARE_AND_SWAP_64(addr, old_val, new_val)             \
++({                                                              \
++    int result, read_val;                                       \
++    __asm__ __volatile__ ("                                     \
++        1:      ldaxr %2, %1;                                   \
++                cmp %2, %3;                                     \
++                b.ne 2f;                                        \
++                stlxr %w0, %4, %1;                              \
++                cmp %w0, wzr;                                   \
++                b.ne 1b;                                        \
++        2:      cset %w0, eq;"                                  \
++    : "=&r" (result), "+Q" (*addr), "=&r" (read_val)            \
++    : "r" (old_val), "r" (new_val)                              \
++    : "cc");                                                    \
++    result;                                                     \
++})
++
++#define COMPARE_AND_SWAP(addr, old_val, new_val)                \
++        COMPARE_AND_SWAP_64(addr, old_val, new_val)
++
++#define LOCKWORD_READ(addr)                                     \
++({                                                              \
++    uintptr_t result;                                           \
++    __asm__ __volatile__ ("                                     \
++                ldar %0, %1;"                                   \
++    : "=r" (result)                                             \
++    : "Q" (*addr)                                               \
++    : "cc");                                                    \
++    result;                                                     \
++})
++
++#define LOCKWORD_WRITE(addr, value)                             \
++({                                                              \
++    __asm__ __volatile__ ("                                     \
++                stlr %1, %0;"                                   \
++    : "=Q" (*addr)                                              \
++    : "r" (value)                                               \
++    : "cc");                                                    \
++})
++
++#define LOCKWORD_COMPARE_AND_SWAP(addr, old_val, new_val)       \
++        COMPARE_AND_SWAP_64(addr, old_val, new_val)
++
++#define FLUSH_CACHE(addr, length)                               \
++{                                                               \
++    uintptr_t start = (uintptr_t) (addr);                       \
++    uintptr_t end = start + length;                             \
++    uintptr_t i;                                                \
++                                                                \
++    for(i = start & aarch64_data_cache_line_mask;               \
++        i < end;                                                \
++        i += aarch64_data_cache_line_len)                       \
++        __asm__ ("dc cvau, %0" :: "r" (i));                     \
++                                                                \
++    __asm__ ("dsb ish");                                        \
++                                                                \
++    for(i = start & aarch64_instruction_cache_line_mask;        \
++        i < end;                                                \
++        i += aarch64_instruction_cache_line_len)                \
++        __asm__ ("ic ivau, %0" :: "r" (i));                     \
++                                                                \
++    __asm__ ("dsb ish; isb");                                   \
++}
++
++#define MBARRIER() __asm__ ("dmb ish" ::: "memory")
++#define UNLOCK_MBARRIER() __asm__ ("dmb ish" ::: "memory")
++#define JMM_LOCK_MBARRIER() __asm__ ("dmb ish" ::: "memory")
++#define JMM_UNLOCK_MBARRIER() JMM_LOCK_MBARRIER()
++
++/* Defined in src/os/linux/aarch64/init.c */
++extern unsigned char aarch64_data_cache_line_len;
++extern uintptr_t aarch64_data_cache_line_mask;
++extern unsigned char aarch64_instruction_cache_line_len;
++extern uintptr_t aarch64_instruction_cache_line_mask;
+diff --git a/src/os/linux/Makefile.am b/src/os/linux/Makefile.am
+index aa29be1..d582b97 100644
+--- a/src/os/linux/Makefile.am
++++ b/src/os/linux/Makefile.am
+@@ -20,7 +20,7 @@
+ ##
+ 
+ SUBDIRS = @arch@
+-DIST_SUBDIRS = powerpc arm i386 x86_64 parisc mips
++DIST_SUBDIRS = powerpc arm i386 x86_64 parisc mips aarch64
+ 
+ noinst_LTLIBRARIES = libos.la
+ libos_la_SOURCES = os.c
+diff --git a/src/os/linux/aarch64/Makefile.am b/src/os/linux/aarch64/Makefile.am
+new file mode 100644
+index 0000000..1024c3a
+--- /dev/null
++++ b/src/os/linux/aarch64/Makefile.am
+@@ -0,0 +1,28 @@
++##
++## Copyright (C) 2003, 2004, 2005, 2006, 2007, 2010, 2011, 2012
++## Robert Lougher <rob@lougher.org.uk>.
++##
++## File added by Simon South <simon@simonsouth.net>.
++##
++## This file is part of JamVM.
++##
++## This program is free software; you can redistribute it and/or
++## modify it under the terms of the GNU General Public License
++## as published by the Free Software Foundation; either version 2,
++## or (at your option) any later version.
++##
++## This program 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 this program; if not, write to the Free Software
++## Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
++##
++
++noinst_LTLIBRARIES = libnative.la
++libnative_la_SOURCES = init.c dll_md.c callNative.S
++
++AM_CPPFLAGS = -I$(top_builddir)/src -I$(top_srcdir)/src
++AM_CCASFLAGS = -I$(top_builddir)/src
+diff --git a/src/os/linux/aarch64/callNative.S b/src/os/linux/aarch64/callNative.S
+new file mode 100644
+index 0000000..e067c4f
+--- /dev/null
++++ b/src/os/linux/aarch64/callNative.S
+@@ -0,0 +1,212 @@
++/*
++ * Copyright (C) 2008, 2009, 2011, 2012 Robert Lougher <rob@jamvm.org.uk>.
++ * Copyright (C) 2020 Simon South <simon@simonsouth.net>.
++ *
++ * This file is part of JamVM.
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License
++ * as published by the Free Software Foundation; either version 2,
++ * or (at your option) any later version.
++ *
++ * This program 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 this program; if not, write to the Free Software
++ * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
++ */
++
++#include "config.h"
++
++#ifndef USE_FFI
++        .text
++        .arch armv8-a
++        .align 2
++        .global callJNIMethod
++        .type callJNIMethod,function
++
++/*
++ * Arguments passed in:
++ *
++ * x0 JNIEnv
++ * x1 class or NULL
++ * x2 sig
++ * w3 extra arg
++ * x4 ostack
++ * x5 function pntr
++ * w6 args count
++ */
++
++/* Register usage:
++ *
++ * x20 ostack
++ * x19 sig pntr
++ * x16 function pntr
++ * x15 ostack pntr
++ * x14 args pntr
++ * x13 float/double handler
++ * x12 int/long handler
++ * w11 fp regs remaining
++ * w10 int regs remaining
++ * x9 scratch
++ * x2-x7 outgoing int args
++ * x1 outgoing class or this pntr
++ * x0 outgoing JNIEnv (as passed in)
++ *
++ * d0 - d7 outgoing float args
++ */
++
++callJNIMethod:
++        stp     x29, x30, [sp, #-32]!
++        mov     x29, sp
++        stp     x19, x20, [x29, #16]
++
++        sub     sp, sp, w3              /* allocate room for stacked args */
++        mov     x14, sp
++
++        mov     x20, x4                 /* preserve ostack */
++        add     x19, x2, #1             /* init sig pntr -- skipping '(' */
++
++        mov     x16, x5                 /* save function pntr */
++        mov     x15, x20                /* init ostack pntr */
++
++        adr     x13, fp_reg_handlers-8
++        adr     x12, int_reg_handlers-8
++
++        mov     w11, #8                 /* fp regs remaining */
++        mov     w10, #6                 /* int regs remaining */
++
++        cbnz    x1, scan_sig            /* is method non-static? */
++        ldr     x1, [x15], #8           /* yes, load x1 with "this" */
++
++scan_sig:
++        ldrb    w9, [x19], #1           /* get next sig char */
++
++        cmp     w9, #41                 /* ')' */
++        b.eq    done
++
++        cmp     w9, #74                 /* 'J' */
++        b.eq    long
++
++        cmp     w9, #70                 /* 'F' */
++        b.eq    float
++
++        cmp     w9, #68                 /* 'D' */
++        b.eq    double
++
++skip_brackets:
++        cmp     w9, #91                 /* '[' */
++        b.ne    1f
++        ldrb    w9, [x19], #1
++        b       skip_brackets
++1:
++        cmp     w9, #76                 /* 'L' */
++        b.ne    int
++
++skip_ref:
++        ldrb    w9, [x19], #1
++        cmp     w9, #59                 /* ';' */
++        b.ne    skip_ref
++
++int:
++        ldr     x9, [x15], #8
++        cbz     w10, stack_push
++
++load_int_reg:
++        sub     w10, w10, #1
++        add     x12, x12, #8
++        br      x12
++
++int_reg_handlers:
++        mov     x2, x9
++        b       scan_sig
++        mov     x3, x9
++        b       scan_sig
++        mov     x4, x9
++        b       scan_sig
++        mov     x5, x9
++        b       scan_sig
++        mov     x6, x9
++        b       scan_sig
++        mov     x7, x9
++        b       scan_sig
++
++long:
++        ldr     x9, [x15], #16
++        cbz     w10, stack_push
++        b       load_int_reg
++
++float:
++        ldr     w9, [x15], #8
++        cbz     w11, stack_push
++        b       load_fp_reg
++
++double:
++        ldr     x9, [x15], #16
++        cbz     w11, stack_push
++
++load_fp_reg:
++        sub     w11, w11, #1
++        add     x13, x13, #8
++        br      x13
++
++fp_reg_handlers:
++        fmov    d0, x9
++        b       scan_sig
++        fmov    d1, x9
++        b       scan_sig
++        fmov    d2, x9
++        b       scan_sig
++        fmov    d3, x9
++        b       scan_sig
++        fmov    d4, x9
++        b       scan_sig
++        fmov    d5, x9
++        b       scan_sig
++        fmov    d6, x9
++        b       scan_sig
++        fmov    d7, x9
++        b       scan_sig
++
++stack_push:
++        str     x9, [x14], #8
++        b       scan_sig
++
++done:
++        /* Call the function */
++        blr     x16
++
++        mov     sp, x29                 /* Pop argument area */
++
++        ldrb    w9, [x19]               /* Return type */
++
++        cmp     w9, #86                 /* 'V' */
++        b.eq    return
++
++        cmp     w9, #68                 /* 'D' */
++        b.ne    2f
++        str     d0, [x20], #16
++        b       return
++2:
++        cmp     w9, #70                 /* 'F' */
++        b.ne    3f
++        str     s0, [x20], #8
++        b       return
++3:
++        cmp     w9, #74                 /* 'J' */
++        b.ne    4f
++        str     x0, [x20], #16
++        b       return
++4:
++        str     x0, [x20], #8
++
++return:
++        mov     x0, x20                 /* return ostack */
++
++        ldp     x19, x20, [x29, #16]
++        ldp     x29, x30, [sp], #32
++        ret
++#endif
+diff --git a/src/os/linux/aarch64/dll_md.c b/src/os/linux/aarch64/dll_md.c
+new file mode 100644
+index 0000000..189f8a8
+--- /dev/null
++++ b/src/os/linux/aarch64/dll_md.c
+@@ -0,0 +1,59 @@
++/*
++ * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2010, 2011
++ * Robert Lougher <rob@jamvm.org.uk>.
++ * Copyright (C) 2020 Simon South <simon@simonsouth.net>.
++ *
++ * This file is part of JamVM.
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License
++ * as published by the Free Software Foundation; either version 2,
++ * or (at your option) any later version.
++ *
++ * This program 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 this program; if not, write to the Free Software
++ * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
++ */
++
++#include "jam.h"
++
++#ifndef USE_FFI
++
++int nativeExtraArg(MethodBlock *mb) {
++    char *sig = mb->type;
++    int stack_args = 0;
++    int int_args = 6;
++    int fp_args = 8;
++
++    while(*++sig != ')')
++        switch(*sig) {
++        case 'F':
++        case 'D':
++            if(fp_args == 0)
++                stack_args += 8;
++            else
++                fp_args--;
++
++        default:
++            if(int_args == 0)
++                stack_args += 8;
++            else
++                int_args--;
++
++            if(*sig == '[')
++                while(*++sig == '[');
++            if(*sig == 'L')
++                while(*++sig != ';');
++            break;
++        }
++
++    /* Ensure the stack remains 16 byte aligned. */
++    return (stack_args + 15) & ~15;
++}
++
++#endif
+diff --git a/src/os/linux/aarch64/init.c b/src/os/linux/aarch64/init.c
+new file mode 100644
+index 0000000..e03b446
+--- /dev/null
++++ b/src/os/linux/aarch64/init.c
+@@ -0,0 +1,51 @@
++/*
++ * Copyright (C) 2003, 2004, 2005, 2006, 2007
++ * Robert Lougher <rob@lougher.org.uk>.
++ * Copyright (C) 2020 Simon South <simon@simonsouth.net>.
++ *
++ * This file is part of JamVM.
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License
++ * as published by the Free Software Foundation; either version 2,
++ * or (at your option) any later version.
++ *
++ * This program 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 this program; if not, write to the Free Software
++ * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
++ */
++
++#include "arch/aarch64.h"
++
++/* Length in bytes of the smallest line in the host system's data cache */
++unsigned char aarch64_data_cache_line_len;
++
++/* Mask used to align a virtual address to a line in the data cache */
++uintptr_t aarch64_data_cache_line_mask;
++
++/* Length in bytes of the smallest line in the host system's instruction
++   cache */
++unsigned char aarch64_instruction_cache_line_len;
++
++/* Mask used to align a virtual address to a line in the instruction cache */
++uintptr_t aarch64_instruction_cache_line_mask;
++
++void initialisePlatform() {
++    unsigned int cache_type;
++
++    /* Extract information from the cache-type register, which describes aspects
++       of the host's cache configuration */
++    __asm__ ("mrs %0, ctr_el0" : "=r" (cache_type));
++
++    aarch64_data_cache_line_len = 4 << ((cache_type >> 16) & 0x0f);
++    aarch64_data_cache_line_mask = ~(aarch64_data_cache_line_len - 1);
++
++    aarch64_instruction_cache_line_len = 4 << (cache_type & 0x0f);
++    aarch64_instruction_cache_line_mask =
++        ~(aarch64_instruction_cache_line_len - 1);
++}
+-- 
+2.26.2
+
diff --git a/gnu/packages/patches/jamvm-arm.patch b/gnu/packages/patches/jamvm-1.5.1-armv7-support.patch
index 9e998e18db..9e998e18db 100644
--- a/gnu/packages/patches/jamvm-arm.patch
+++ b/gnu/packages/patches/jamvm-1.5.1-armv7-support.patch
diff --git a/gnu/packages/patches/jamvm-2.0.0-aarch64-support.patch b/gnu/packages/patches/jamvm-2.0.0-aarch64-support.patch
new file mode 100644
index 0000000000..b67d8b4584
--- /dev/null
+++ b/gnu/packages/patches/jamvm-2.0.0-aarch64-support.patch
@@ -0,0 +1,645 @@
+From a44154f7a18496cc3e5fc0b1b2ea69523ebc623a Mon Sep 17 00:00:00 2001
+From: Simon South <simon@simonsouth.net>
+Date: Mon, 1 Jun 2020 07:09:34 -0400
+Subject: [PATCH] Add support for aarch64 on GNU/Linux
+
+---
+ AUTHORS                           |   1 +
+ README                            |   2 +-
+ configure.ac                      |   7 +-
+ src/arch/Makefile.am              |   2 +-
+ src/arch/aarch64.h                | 147 +++++++++++++++++++++
+ src/jam.c                         |   3 +-
+ src/os/linux/Makefile.am          |   2 +-
+ src/os/linux/aarch64/Makefile.am  |  28 ++++
+ src/os/linux/aarch64/callNative.S | 212 ++++++++++++++++++++++++++++++
+ src/os/linux/aarch64/dll_md.c     |  59 +++++++++
+ src/os/linux/aarch64/init.c       |  51 +++++++
+ 11 files changed, 508 insertions(+), 6 deletions(-)
+ create mode 100644 src/arch/aarch64.h
+ create mode 100644 src/os/linux/aarch64/Makefile.am
+ create mode 100644 src/os/linux/aarch64/callNative.S
+ create mode 100644 src/os/linux/aarch64/dll_md.c
+ create mode 100644 src/os/linux/aarch64/init.c
+
+diff --git a/AUTHORS b/AUTHORS
+index e1334fe..6fd0eeb 100644
+--- a/AUTHORS
++++ b/AUTHORS
+@@ -1 +1,2 @@
+ Robert Lougher <rob@jamvm.org.uk>
++Simon South <simon@simonsouth.net>
+diff --git a/README b/README
+index c9d80bb..0e93d00 100644
+--- a/README
++++ b/README
+@@ -77,7 +77,7 @@ versions of JamVM also includes stubs for common method signatures.
+ The following platforms/architectures are recognised by configure.  Those
+ marked with * must be configured to use libffi.
+ 
+-- Linux: x86, x86_64, ARM, PowerPC, PowerPC64(*), MIPS, HPPA
++- Linux: x86, x86_64, ARM, ARM64, PowerPC, PowerPC64(*), MIPS, HPPA
+ - FreeBSD: x86, x86_64, ARM, PowerPC, PowerPC64(*), SPARC(*)
+ - OpenBSD: x86, x86_64, ARM, PowerPC, PowerPC64(*), SPARC(*)
+ - Mac OS X/Darwin: x86, x86_64, ARM, PowerPC, PowerPC64
+diff --git a/configure.ac b/configure.ac
+index 138b7e6..e7051d7 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -46,6 +46,7 @@ x86_64-*-freebsd*) host_os=bsd libdl_needed=no ;;
+ arm*-*-linux*) host_cpu=arm host_os=linux interp_cflags=-marm ;;
+ arm*-*-openbsd*) host_cpu=arm host_os=bsd libdl_needed=no ;;
+ arm*-*-freebsd*) host_cpu=arm host_os=bsd libdl_needed=no ;;
++aarch64*-*-linux*) host_cpu=aarch64 host_os=linux ;;
+ powerpc*-*-linux*) host_cpu=powerpc host_os=linux ;;
+ powerpc*-*-openbsd*) host_cpu=powerpc host_os=bsd libdl_needed=no ;;
+ powerpc*-*-freebsd*) host_cpu=powerpc host_os=bsd libdl_needed=no ;;
+@@ -155,10 +156,11 @@ AC_ARG_ENABLE(runtime-reloc-checks,
+ 
+ AC_ARG_ENABLE(int-inlining,
+     [AS_HELP_STRING(--enable-int-inlining,enable inline threaded version of the interpreter
+-                   (by default enabled on x86_64, i386, powerpc, mips and arm, 
++                   (by default enabled on x86_64, i386, powerpc, mips, arm and aarch64,
+                     disabled otherwise))],,
+     [if test "$host_cpu" = x86_64 -o "$host_cpu" = i386 -o "$host_cpu" = x86 -o \
+-             "$host_cpu" = powerpc -o "$host_cpu" = arm -o "$host_cpu" = mips; then
++             "$host_cpu" = powerpc -o "$host_cpu" = arm -o "$host_cpu" = mips -o \
++             "$host_cpu" = aarch64; then
+          enable_int_inlining=yes
+        else
+          enable_int_inlining=no
+@@ -407,6 +409,7 @@ AC_CONFIG_FILES(
+     src/os/linux/x86_64/Makefile \
+     src/os/linux/parisc/Makefile \
+     src/os/linux/mips/Makefile \
++    src/os/linux/aarch64/Makefile \
+     src/os/darwin/i386/Makefile \
+     src/os/darwin/arm/Makefile \
+     src/os/darwin/powerpc/Makefile \
+diff --git a/src/arch/Makefile.am b/src/arch/Makefile.am
+index 7580a1b..4e2a4f9 100644
+--- a/src/arch/Makefile.am
++++ b/src/arch/Makefile.am
+@@ -19,4 +19,4 @@
+ ## Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ ##
+ 
+-EXTRA_DIST = powerpc.h arm.h i386.h x86_64.h parisc.h mips.h sparc.h
++EXTRA_DIST = powerpc.h arm.h i386.h x86_64.h parisc.h mips.h sparc.h aarch64.h
+diff --git a/src/arch/aarch64.h b/src/arch/aarch64.h
+new file mode 100644
+index 0000000..1912e79
+--- /dev/null
++++ b/src/arch/aarch64.h
+@@ -0,0 +1,147 @@
++/*
++ * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008
++ * Robert Lougher <rob@jamvm.org.uk>.
++ * Copyright (C) 2020 Simon South <simon@simonsouth.net>.
++ *
++ * This file is part of JamVM.
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License
++ * as published by the Free Software Foundation; either version 2,
++ * or (at your option) any later version.
++ *
++ * This program 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 this program; if not, write to the Free Software
++ * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
++ */
++
++#include <stdint.h>
++
++#define OS_ARCH "aarch64"
++
++#define HANDLER_TABLE_T static const void
++#define DOUBLE_1_BITS 0x3ff0000000000000LL
++
++#define READ_DBL(v,p,l) v = ((u8)p[0]<<56)|((u8)p[1]<<48)|((u8)p[2]<<40) \
++                            |((u8)p[3]<<32)|((u8)p[4]<<24)|((u8)p[5]<<16) \
++                            |((u8)p[6]<<8)|(u8)p[7]; p+=8
++
++/* Needed for i386 -- empty here */
++#define FPU_HACK
++
++#define COMPARE_AND_SWAP_64(addr, old_val, new_val)             \
++({                                                              \
++    int result, read_val;                                       \
++    __asm__ __volatile__ ("                                     \
++        1:      ldaxr %2, %1;                                   \
++                cmp %2, %3;                                     \
++                b.ne 2f;                                        \
++                stlxr %w0, %4, %1;                              \
++                cmp %w0, wzr;                                   \
++                b.ne 1b;                                        \
++        2:      cset %w0, eq;"                                  \
++    : "=&r" (result), "+Q" (*addr), "=&r" (read_val)            \
++    : "r" (old_val), "r" (new_val)                              \
++    : "cc");                                                    \
++    result;                                                     \
++})
++
++#define COMPARE_AND_SWAP_32(addr, old_val, new_val)             \
++({                                                              \
++    int result, read_val;                                       \
++    __asm__ __volatile__ ("                                     \
++        1:      ldaxr %w2, %1;                                  \
++                cmp %w2, %w3;                                   \
++                b.ne 2f;                                        \
++                stlxr %w0, %w4, %1;                             \
++                cmp %w0, wzr;                                   \
++                b.ne 1b;                                        \
++        2:      cset %w0, eq;"                                  \
++    : "=&r" (result), "+Q" (*addr), "=&r" (read_val)            \
++    : "r" (old_val), "r" (new_val)                              \
++    : "cc");                                                    \
++    result;                                                     \
++})
++
++#define COMPARE_AND_SWAP(addr, old_val, new_val)                \
++        COMPARE_AND_SWAP_64(addr, old_val, new_val)
++
++#define LOCKWORD_READ(addr)                                     \
++({                                                              \
++    uintptr_t result;                                           \
++    __asm__ __volatile__ ("                                     \
++                ldar %0, %1;"                                   \
++    : "=r" (result)                                             \
++    : "Q" (*addr)                                               \
++    : "cc");                                                    \
++    result;                                                     \
++})
++
++#define LOCKWORD_WRITE(addr, value)                             \
++({                                                              \
++    __asm__ __volatile__ ("                                     \
++                stlr %1, %0;"                                   \
++    : "=Q" (*addr)                                              \
++    : "r" (value)                                               \
++    : "cc");                                                    \
++})
++
++#define LOCKWORD_COMPARE_AND_SWAP(addr, old_val, new_val)       \
++        COMPARE_AND_SWAP_64(addr, old_val, new_val)
++
++#define FLUSH_CACHE(addr, length)                               \
++{                                                               \
++    uintptr_t start = (uintptr_t) (addr);                       \
++    uintptr_t end = start + length;                             \
++    uintptr_t i;                                                \
++                                                                \
++    for(i = start & aarch64_data_cache_line_mask;               \
++        i < end;                                                \
++        i += aarch64_data_cache_line_len)                       \
++        __asm__ ("dc cvau, %0" :: "r" (i));                     \
++                                                                \
++    __asm__ ("dsb ish");                                        \
++                                                                \
++    for(i = start & aarch64_instruction_cache_line_mask;        \
++        i < end;                                                \
++        i += aarch64_instruction_cache_line_len)                \
++        __asm__ ("ic ivau, %0" :: "r" (i));                     \
++                                                                \
++    __asm__ ("dsb ish; isb");                                   \
++}
++
++#define GEN_REL_JMP(target_addr, patch_addr, patch_size)        \
++({                                                              \
++    int patched = FALSE;                                        \
++                                                                \
++    if(patch_size >= 4) {                                       \
++        /* Guard against the pointer difference being           \
++           larger than the signed range */                      \
++        long long offset = (uintptr_t)(target_addr) -           \
++                           (uintptr_t)(patch_addr);             \
++                                                                \
++        if(offset >= -1<<28 && offset < 1<<28) {                \
++            *(uint32_t*)(patch_addr) = offset>>2 & 0x03ffffff   \
++                                                 | 0x14000000;  \
++            patched = TRUE;                                     \
++        }                                                       \
++    }                                                           \
++    patched;                                                    \
++})
++
++#define MBARRIER() __asm__ ("dmb ish" ::: "memory")
++#define RMBARRIER() __asm__ ("dmb ishld" ::: "memory")
++#define WMBARRIER() __asm__ ("dmb ishst" ::: "memory")
++#define JMM_LOCK_MBARRIER() __asm__ ("dmb ish" ::: "memory")
++#define JMM_UNLOCK_MBARRIER() JMM_LOCK_MBARRIER()
++
++/* Defined in src/os/linux/aarch64/init.c */
++extern unsigned char aarch64_data_cache_line_len;
++extern uintptr_t aarch64_data_cache_line_mask;
++extern unsigned char aarch64_instruction_cache_line_len;
++extern uintptr_t aarch64_instruction_cache_line_mask;
+diff --git a/src/jam.c b/src/jam.c
+index 052f84a..c97524a 100644
+--- a/src/jam.c
++++ b/src/jam.c
+@@ -98,7 +98,8 @@ void showUsage(char *name) {
+ void showVersionAndCopyright() {
+     printf("java version \"%s\"\n", JAVA_COMPAT_VERSION);
+     printf("JamVM version %s\n", VERSION);
+-    printf("Copyright (C) 2003-2014 Robert Lougher <rob@jamvm.org.uk>\n\n");
++    printf("Copyright (C) 2003-2014 Robert Lougher <rob@jamvm.org.uk>\n");
++    printf("Portions Copyright (C) 2020 Simon South <simon@simonsouth.net>\n\n");
+     printf("This program is free software; you can redistribute it and/or\n");
+     printf("modify it under the terms of the GNU General Public License\n");
+     printf("as published by the Free Software Foundation; either version 2,\n");
+diff --git a/src/os/linux/Makefile.am b/src/os/linux/Makefile.am
+index 542094e..83e7dfe 100644
+--- a/src/os/linux/Makefile.am
++++ b/src/os/linux/Makefile.am
+@@ -20,7 +20,7 @@
+ ##
+ 
+ SUBDIRS = @arch@
+-DIST_SUBDIRS = powerpc arm i386 x86_64 parisc mips
++DIST_SUBDIRS = powerpc arm i386 x86_64 parisc mips aarch64
+ 
+ noinst_LTLIBRARIES = libos.la
+ libos_la_SOURCES = os.c
+diff --git a/src/os/linux/aarch64/Makefile.am b/src/os/linux/aarch64/Makefile.am
+new file mode 100644
+index 0000000..0e5134f
+--- /dev/null
++++ b/src/os/linux/aarch64/Makefile.am
+@@ -0,0 +1,28 @@
++##
++## Copyright (C) 2003, 2004, 2005, 2006, 2007, 2010, 2011, 2012
++## Robert Lougher <rob@jamvm.org.uk>.
++##
++## File added by Simon South <simon@simonsouth.net>.
++##
++## This file is part of JamVM.
++##
++## This program is free software; you can redistribute it and/or
++## modify it under the terms of the GNU General Public License
++## as published by the Free Software Foundation; either version 2,
++## or (at your option) any later version.
++##
++## This program 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 this program; if not, write to the Free Software
++## Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
++##
++
++noinst_LTLIBRARIES = libnative.la
++libnative_la_SOURCES = init.c dll_md.c callNative.S
++
++AM_CPPFLAGS = -I$(top_builddir)/src -I$(top_srcdir)/src
++AM_CCASFLAGS = -I$(top_builddir)/src
+diff --git a/src/os/linux/aarch64/callNative.S b/src/os/linux/aarch64/callNative.S
+new file mode 100644
+index 0000000..e067c4f
+--- /dev/null
++++ b/src/os/linux/aarch64/callNative.S
+@@ -0,0 +1,212 @@
++/*
++ * Copyright (C) 2008, 2009, 2011, 2012 Robert Lougher <rob@jamvm.org.uk>.
++ * Copyright (C) 2020 Simon South <simon@simonsouth.net>.
++ *
++ * This file is part of JamVM.
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License
++ * as published by the Free Software Foundation; either version 2,
++ * or (at your option) any later version.
++ *
++ * This program 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 this program; if not, write to the Free Software
++ * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
++ */
++
++#include "config.h"
++
++#ifndef USE_FFI
++        .text
++        .arch armv8-a
++        .align 2
++        .global callJNIMethod
++        .type callJNIMethod,function
++
++/*
++ * Arguments passed in:
++ *
++ * x0 JNIEnv
++ * x1 class or NULL
++ * x2 sig
++ * w3 extra arg
++ * x4 ostack
++ * x5 function pntr
++ * w6 args count
++ */
++
++/* Register usage:
++ *
++ * x20 ostack
++ * x19 sig pntr
++ * x16 function pntr
++ * x15 ostack pntr
++ * x14 args pntr
++ * x13 float/double handler
++ * x12 int/long handler
++ * w11 fp regs remaining
++ * w10 int regs remaining
++ * x9 scratch
++ * x2-x7 outgoing int args
++ * x1 outgoing class or this pntr
++ * x0 outgoing JNIEnv (as passed in)
++ *
++ * d0 - d7 outgoing float args
++ */
++
++callJNIMethod:
++        stp     x29, x30, [sp, #-32]!
++        mov     x29, sp
++        stp     x19, x20, [x29, #16]
++
++        sub     sp, sp, w3              /* allocate room for stacked args */
++        mov     x14, sp
++
++        mov     x20, x4                 /* preserve ostack */
++        add     x19, x2, #1             /* init sig pntr -- skipping '(' */
++
++        mov     x16, x5                 /* save function pntr */
++        mov     x15, x20                /* init ostack pntr */
++
++        adr     x13, fp_reg_handlers-8
++        adr     x12, int_reg_handlers-8
++
++        mov     w11, #8                 /* fp regs remaining */
++        mov     w10, #6                 /* int regs remaining */
++
++        cbnz    x1, scan_sig            /* is method non-static? */
++        ldr     x1, [x15], #8           /* yes, load x1 with "this" */
++
++scan_sig:
++        ldrb    w9, [x19], #1           /* get next sig char */
++
++        cmp     w9, #41                 /* ')' */
++        b.eq    done
++
++        cmp     w9, #74                 /* 'J' */
++        b.eq    long
++
++        cmp     w9, #70                 /* 'F' */
++        b.eq    float
++
++        cmp     w9, #68                 /* 'D' */
++        b.eq    double
++
++skip_brackets:
++        cmp     w9, #91                 /* '[' */
++        b.ne    1f
++        ldrb    w9, [x19], #1
++        b       skip_brackets
++1:
++        cmp     w9, #76                 /* 'L' */
++        b.ne    int
++
++skip_ref:
++        ldrb    w9, [x19], #1
++        cmp     w9, #59                 /* ';' */
++        b.ne    skip_ref
++
++int:
++        ldr     x9, [x15], #8
++        cbz     w10, stack_push
++
++load_int_reg:
++        sub     w10, w10, #1
++        add     x12, x12, #8
++        br      x12
++
++int_reg_handlers:
++        mov     x2, x9
++        b       scan_sig
++        mov     x3, x9
++        b       scan_sig
++        mov     x4, x9
++        b       scan_sig
++        mov     x5, x9
++        b       scan_sig
++        mov     x6, x9
++        b       scan_sig
++        mov     x7, x9
++        b       scan_sig
++
++long:
++        ldr     x9, [x15], #16
++        cbz     w10, stack_push
++        b       load_int_reg
++
++float:
++        ldr     w9, [x15], #8
++        cbz     w11, stack_push
++        b       load_fp_reg
++
++double:
++        ldr     x9, [x15], #16
++        cbz     w11, stack_push
++
++load_fp_reg:
++        sub     w11, w11, #1
++        add     x13, x13, #8
++        br      x13
++
++fp_reg_handlers:
++        fmov    d0, x9
++        b       scan_sig
++        fmov    d1, x9
++        b       scan_sig
++        fmov    d2, x9
++        b       scan_sig
++        fmov    d3, x9
++        b       scan_sig
++        fmov    d4, x9
++        b       scan_sig
++        fmov    d5, x9
++        b       scan_sig
++        fmov    d6, x9
++        b       scan_sig
++        fmov    d7, x9
++        b       scan_sig
++
++stack_push:
++        str     x9, [x14], #8
++        b       scan_sig
++
++done:
++        /* Call the function */
++        blr     x16
++
++        mov     sp, x29                 /* Pop argument area */
++
++        ldrb    w9, [x19]               /* Return type */
++
++        cmp     w9, #86                 /* 'V' */
++        b.eq    return
++
++        cmp     w9, #68                 /* 'D' */
++        b.ne    2f
++        str     d0, [x20], #16
++        b       return
++2:
++        cmp     w9, #70                 /* 'F' */
++        b.ne    3f
++        str     s0, [x20], #8
++        b       return
++3:
++        cmp     w9, #74                 /* 'J' */
++        b.ne    4f
++        str     x0, [x20], #16
++        b       return
++4:
++        str     x0, [x20], #8
++
++return:
++        mov     x0, x20                 /* return ostack */
++
++        ldp     x19, x20, [x29, #16]
++        ldp     x29, x30, [sp], #32
++        ret
++#endif
+diff --git a/src/os/linux/aarch64/dll_md.c b/src/os/linux/aarch64/dll_md.c
+new file mode 100644
+index 0000000..189f8a8
+--- /dev/null
++++ b/src/os/linux/aarch64/dll_md.c
+@@ -0,0 +1,59 @@
++/*
++ * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2010, 2011
++ * Robert Lougher <rob@jamvm.org.uk>.
++ * Copyright (C) 2020 Simon South <simon@simonsouth.net>.
++ *
++ * This file is part of JamVM.
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License
++ * as published by the Free Software Foundation; either version 2,
++ * or (at your option) any later version.
++ *
++ * This program 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 this program; if not, write to the Free Software
++ * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
++ */
++
++#include "jam.h"
++
++#ifndef USE_FFI
++
++int nativeExtraArg(MethodBlock *mb) {
++    char *sig = mb->type;
++    int stack_args = 0;
++    int int_args = 6;
++    int fp_args = 8;
++
++    while(*++sig != ')')
++        switch(*sig) {
++        case 'F':
++        case 'D':
++            if(fp_args == 0)
++                stack_args += 8;
++            else
++                fp_args--;
++
++        default:
++            if(int_args == 0)
++                stack_args += 8;
++            else
++                int_args--;
++
++            if(*sig == '[')
++                while(*++sig == '[');
++            if(*sig == 'L')
++                while(*++sig != ';');
++            break;
++        }
++
++    /* Ensure the stack remains 16 byte aligned. */
++    return (stack_args + 15) & ~15;
++}
++
++#endif
+diff --git a/src/os/linux/aarch64/init.c b/src/os/linux/aarch64/init.c
+new file mode 100644
+index 0000000..b21dc55
+--- /dev/null
++++ b/src/os/linux/aarch64/init.c
+@@ -0,0 +1,51 @@
++/*
++ * Copyright (C) 2003, 2004, 2005, 2006, 2007
++ * Robert Lougher <rob@jamvm.org.uk>.
++ * Copyright (C) 2020 Simon South <simon@simonsouth.net>.
++ *
++ * This file is part of JamVM.
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License
++ * as published by the Free Software Foundation; either version 2,
++ * or (at your option) any later version.
++ *
++ * This program 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 this program; if not, write to the Free Software
++ * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
++ */
++
++#include "arch/aarch64.h"
++
++/* Length in bytes of the smallest line in the host system's data cache */
++unsigned char aarch64_data_cache_line_len;
++
++/* Mask used to align a virtual address to a line in the data cache */
++uintptr_t aarch64_data_cache_line_mask;
++
++/* Length in bytes of the smallest line in the host system's instruction
++   cache */
++unsigned char aarch64_instruction_cache_line_len;
++
++/* Mask used to align a virtual address to a line in the instruction cache */
++uintptr_t aarch64_instruction_cache_line_mask;
++
++void initialisePlatform() {
++    unsigned int cache_type;
++
++    /* Extract information from the cache-type register, which describes aspects
++       of the host's cache configuration */
++    __asm__ ("mrs %0, ctr_el0" : "=r" (cache_type));
++
++    aarch64_data_cache_line_len = 4 << ((cache_type >> 16) & 0x0f);
++    aarch64_data_cache_line_mask = ~(aarch64_data_cache_line_len - 1);
++
++    aarch64_instruction_cache_line_len = 4 << (cache_type & 0x0f);
++    aarch64_instruction_cache_line_mask =
++        ~(aarch64_instruction_cache_line_len - 1);
++}
+-- 
+2.26.2
+
diff --git a/gnu/packages/patches/jamvm-2.0.0-opcode-guard.patch b/gnu/packages/patches/jamvm-2.0.0-opcode-guard.patch
new file mode 100644
index 0000000000..5415c27a62
--- /dev/null
+++ b/gnu/packages/patches/jamvm-2.0.0-opcode-guard.patch
@@ -0,0 +1,35 @@
+From ca11b53896365c948426974cb90e8f71c70d123b Mon Sep 17 00:00:00 2001
+From: Simon South <simon@simonsouth.net>
+Date: Sun, 31 May 2020 20:36:43 -0400
+Subject: [PATCH] Guard floating-point opcodes with explicit memory barrier
+
+---
+ src/interp/engine/interp-inlining.h | 11 ++++++++++-
+ 1 file changed, 10 insertions(+), 1 deletion(-)
+
+diff --git a/src/interp/engine/interp-inlining.h b/src/interp/engine/interp-inlining.h
+index 3339b0e..4ee5c5a 100644
+--- a/src/interp/engine/interp-inlining.h
++++ b/src/interp/engine/interp-inlining.h
+@@ -78,8 +78,17 @@
+    4.3, we need to insert a label, and ensure its address
+    is taken (to stop it being optimised out).  However,
+    this reduces performance on PowerPC by approx 1 - 2%.
++
++   With gcc 5 and newer an asm statement with a "memory"
++   clobber argument explicitly sets a memory barrier for the
++   compiler, preventing it from reordering memory accesses
++   in a way that breaks decaching.
+ */
+-#if (__GNUC__ == 4) && (__GNUC_MINOR__ >= 3)
++#if (__GNUC__ > 4)
++#define DEF_GUARD_TABLE(level) /* none */
++#define GUARD(opcode, level)   __asm__("" ::: "memory");
++#define GUARD_TBLS             /* none */
++#elif (__GNUC__ == 4) && (__GNUC_MINOR__ >= 3)
+ #define DEF_GUARD_TABLE(level) DEF_HANDLER_TABLE(level, GUARD)
+ #define GUARD(opcode, level)   label(opcode, level, GUARD)
+ #define GUARD_TBLS             , HNDLR_TBLS(GUARD)
+-- 
+2.26.2
+
diff --git a/gnu/packages/patches/java-antlr4-Add-standalone-generator.patch b/gnu/packages/patches/java-antlr4-Add-standalone-generator.patch
new file mode 100644
index 0000000000..75b6dce39f
--- /dev/null
+++ b/gnu/packages/patches/java-antlr4-Add-standalone-generator.patch
@@ -0,0 +1,52 @@
+From 3b43b79da15be994348f13035474925ba592fe1f Mon Sep 17 00:00:00 2001
+From: Julien Lepiller <julien@lepiller.eu>
+Date: Fri, 15 Sep 2017 10:06:42 +0200
+Subject: [PATCH] Add standalone template generator
+
+---
+ tool/src/org/antlr/v4/unicode/UnicodeRenderer.java | 33 ++++++++++++++++++++++
+ 1 file changed, 33 insertions(+)
+ create mode 100644 tool/src/org/antlr/v4/unicode/UnicodeRenderer.java
+
+diff --git a/tool/src/org/antlr/v4/unicode/UnicodeRenderer.java b/tool/src/org/antlr/v4/unicode/UnicodeRenderer.java
+new file mode 100644
+index 0000000..9e53213
+--- /dev/null
++++ b/tool/src/org/antlr/v4/unicode/UnicodeRenderer.java
+@@ -0,0 +1,33 @@
++package org.antlr.v4.unicode;
++
++import org.stringtemplate.v4.*;
++import org.stringtemplate.v4.misc.ErrorBuffer;
++import org.antlr.v4.unicode.UnicodeDataTemplateController;
++
++import java.io.File;
++import java.io.FileWriter;
++import java.io.IOException;
++import java.util.Map;
++import java.util.Map.Entry;
++
++public class UnicodeRenderer extends UnicodeDataTemplateController {
++    public static void main(String[] arg)
++        throws IOException {
++        String inputdir =  arg[0];
++        String input =     arg[1];
++        String output =    arg[2];
++
++        FileWriter fileWriter = new FileWriter(new File(output));
++        ErrorBuffer listener = new ErrorBuffer();
++
++        STGroupDir group = new STGroupDir(inputdir);
++        ST st = group.getInstanceOf(input);
++
++        for(Entry<String, Object> entry : getProperties().entrySet())
++        	st.add(entry.getKey(), entry.getValue());
++
++        st.write(new AutoIndentWriter(fileWriter), listener);
++        fileWriter.flush();
++        fileWriter.close();
++    }
++}
+-- 
+2.13.5
+
diff --git a/gnu/packages/patches/java-antlr4-fix-code-too-large.java b/gnu/packages/patches/java-antlr4-fix-code-too-large.java
new file mode 100644
index 0000000000..9e9f92349d
--- /dev/null
+++ b/gnu/packages/patches/java-antlr4-fix-code-too-large.java
@@ -0,0 +1,90 @@
+From d22db2048534bdf3d9615117291f9d86564ff10d Mon Sep 17 00:00:00 2001
+From: Julien Lepiller <julien@lepiller.eu>
+Date: Sat, 19 Sep 2020 21:05:48 +0200
+Subject: [PATCH] Separate addPropertyAliases in two methods
+
+The quantity of data used to generate addPropertyAliases creates a big
+method, that is too big for java and results in "error: code too large".
+This is most likely due to added data between the expected version of
+icu and the actual version of icu in Guix.
+---
+ .../org/antlr/v4/tool/templates/unicodedata.st | 17 ++++++++++++++---
+ .../unicode/UnicodeDataTemplateController.java | 18 ++++++++++--------
+ 2 files changed, 24 insertions(+), 11 deletions(-)
+
+diff --git a/tool/resources/org/antlr/v4/tool/templates/unicodedata.st b/tool/resources/org/antlr/v4/tool/templates/unicodedata.st
+index 0f22c73..3573873 100644
+--- a/tool/resources/org/antlr/v4/tool/templates/unicodedata.st
++++ b/tool/resources/org/antlr/v4/tool/templates/unicodedata.st
+@@ -1,4 +1,4 @@
+-unicodedata(propertyCodePointRanges, propertyAliases) ::= <<
++unicodedata(propertyCodePointRanges, propertyAliasesA, propertyAliasesB) ::= <<
+ package org.antlr.v4.unicode;
+ 
+ import java.util.Arrays;
+@@ -15,7 +15,7 @@ import org.antlr.v4.runtime.misc.Interval;
+  */
+ public abstract class UnicodeData {
+        private static final Map\<String, IntervalSet\> propertyCodePointRanges = new HashMap\<\>(<length(propertyCodePointRanges)>);
+-       private static final Map\<String, String\> propertyAliases = new HashMap\<\>(<length(propertyAliases)>);
++       private static final Map\<String, String\> propertyAliases = new HashMap\<\>(<length(propertyAliasesA)> + <length(propertyAliasesB)>);
+ 
+        // Work around Java 64k bytecode method limit by splitting up static
+        // initialization into one method per Unicode property
+@@ -30,9 +30,20 @@ static private void addProperty<i>() {
+        propertyCodePointRanges.put("<k>".toLowerCase(Locale.US), codePointRanges);
+ \}}; separator="\n\n">
+ 
++       // Property aliases
++       static private void addPropertyAliases1() {
++              <propertyAliasesA.keys:{ k | propertyAliases.put("<k>".toLowerCase(Locale.US), "<propertyAliasesA.(k)>".toLowerCase(Locale.US)); }; separator="\n">
++       }
++
++       // Property aliases
++       static private void addPropertyAliases2() {
++              <propertyAliasesB.keys:{ k | propertyAliases.put("<k>".toLowerCase(Locale.US), "<propertyAliasesB.(k)>".toLowerCase(Locale.US)); }; separator="\n">
++       }
++
+        // Property aliases
+        static private void addPropertyAliases() {
+-              <propertyAliases.keys:{ k | propertyAliases.put("<k>".toLowerCase(Locale.US), "<propertyAliases.(k)>".toLowerCase(Locale.US)); }; separator="\n">
++             addPropertyAliases1();
++             addPropertyAliases2();
+        }
+ 
+        // Put it all together
+diff --git a/tool/src/org/antlr/v4/unicode/UnicodeDataTemplateController.java b/tool/src/org/antlr/v4/unicode/UnicodeDataTemplateController.java
+index da244a3..dc591cb 100644
+--- a/tool/src/org/antlr/v4/unicode/UnicodeDataTemplateController.java
++++ b/tool/src/org/antlr/v4/unicode/UnicodeDataTemplateController.java
+@@ -78,17 +78,19 @@ public abstract class UnicodeDataTemplateController {
+ 		addTR35ExtendedPictographicPropertyCodesToCodePointRanges(propertyCodePointRanges);
+ 		addEmojiPresentationPropertyCodesToCodePointRanges(propertyCodePointRanges);
+ 
+-		Map<String, String> propertyAliases = new LinkedHashMap<>();
+-		addUnicodeCategoryCodesToNames(propertyAliases);
+-		addUnicodeBinaryPropertyCodesToNames(propertyAliases);
+-		addUnicodeScriptCodesToNames(propertyAliases);
+-		addUnicodeBlocksToNames(propertyAliases);
+-		addUnicodeIntPropertyCodesToNames(propertyAliases);
+-		propertyAliases.put("EP", "Extended_Pictographic");
++		Map<String, String> propertyAliases1 = new LinkedHashMap<>();
++		Map<String, String> propertyAliases2 = new LinkedHashMap<>();
++		addUnicodeCategoryCodesToNames(propertyAliases1);
++		addUnicodeBinaryPropertyCodesToNames(propertyAliases1);
++		addUnicodeScriptCodesToNames(propertyAliases1);
++		addUnicodeBlocksToNames(propertyAliases2);
++		addUnicodeIntPropertyCodesToNames(propertyAliases2);
++		propertyAliases2.put("EP", "Extended_Pictographic");
+ 
+ 		Map<String, Object> properties = new LinkedHashMap<>();
+ 		properties.put("propertyCodePointRanges", propertyCodePointRanges);
+-		properties.put("propertyAliases", propertyAliases);
++		properties.put("propertyAliasesA", propertyAliases1);
++		properties.put("propertyAliasesB", propertyAliases2);
+ 		return properties;
+ 	}
+ 
+-- 
+2.28.0
+
diff --git a/gnu/packages/patches/java-tunnelvisionlabs-antlr-code-too-large.patch b/gnu/packages/patches/java-tunnelvisionlabs-antlr-code-too-large.patch
new file mode 100644
index 0000000000..7bdf05eb9c
--- /dev/null
+++ b/gnu/packages/patches/java-tunnelvisionlabs-antlr-code-too-large.patch
@@ -0,0 +1,87 @@
+From 56ae699a27eca52cc0bb14cbc9944b62136be52b Mon Sep 17 00:00:00 2001
+From: Julien Lepiller <julien@lepiller.eu>
+Date: Sun, 20 Sep 2020 21:07:29 +0200
+Subject: [PATCH] Separate addPropertyAliases in two methods
+
+The quantity of data used to generate addPropertyAliases creates a big
+method, that is too big for java and results in "error: code too large".
+This is most likely due to added data between the expected version of
+icu and the actual version of icu in Guix.
+---
+ .../org/antlr/v4/tool/templates/unicodedata.st | 15 ++++++++++++---
+ .../unicode/UnicodeDataTemplateController.java | 18 ++++++++++--------
+ 2 files changed, 22 insertions(+), 11 deletions(-)
+
+diff --git a/tool/resources/org/antlr/v4/tool/templates/unicodedata.st b/tool/resources/org/antlr/v4/tool/templates/unicodedata.st
+index f5052b7..125d15b 100644
+--- a/tool/resources/org/antlr/v4/tool/templates/unicodedata.st
++++ b/tool/resources/org/antlr/v4/tool/templates/unicodedata.st
+@@ -1,4 +1,4 @@
+-unicodedata(propertyCodePointRanges, propertyAliases) ::= <<
++unicodedata(propertyCodePointRanges, propertyAliasesA, propertyAliasesB) ::= <<
+ package org.antlr.v4.unicode;
+ 
+ import java.util.Arrays;
+@@ -17,7 +17,7 @@ public enum UnicodeData {
+ 	;
+ 
+ 	private static final Map\<String, IntervalSet\> propertyCodePointRanges = new HashMap\<String, IntervalSet\>(<length(propertyCodePointRanges)>);
+-	private static final Map\<String, String\> propertyAliases = new HashMap\<String, String\>(<length(propertyAliases)>);
++	private static final Map\<String, String\> propertyAliases = new HashMap\<String, String\>(<length(propertyAliasesA)> + <length(propertyAliasesB)>);
+ 
+ 	// Work around Java 64k bytecode method limit by splitting up static
+ 	// initialization into one method per Unicode property
+@@ -33,8 +33,17 @@ static private void addProperty<i>() {
+ \}}; separator="\n\n">
+ 
+ 	// Property aliases
++	static private void addPropertyAliasesA() {
++		<propertyAliasesA.keys:{ k | propertyAliases.put("<k>".toLowerCase(Locale.US), "<propertyAliasesA.(k)>".toLowerCase(Locale.US)); }; separator="\n">
++	}
++
++	static private void addPropertyAliasesB() {
++		<propertyAliasesB.keys:{ k | propertyAliases.put("<k>".toLowerCase(Locale.US), "<propertyAliasesB.(k)>".toLowerCase(Locale.US)); }; separator="\n">
++	}
++
+ 	static private void addPropertyAliases() {
+-		<propertyAliases.keys:{ k | propertyAliases.put("<k>".toLowerCase(Locale.US), "<propertyAliases.(k)>".toLowerCase(Locale.US)); }; separator="\n">
++        addPropertyAliasesA();
++        addPropertyAliasesB();
+ 	}
+ 
+ 	// Put it all together
+diff --git a/tool/src/org/antlr/v4/unicode/UnicodeDataTemplateController.java b/tool/src/org/antlr/v4/unicode/UnicodeDataTemplateController.java
+index 570190c..692cee0 100644
+--- a/tool/src/org/antlr/v4/unicode/UnicodeDataTemplateController.java
++++ b/tool/src/org/antlr/v4/unicode/UnicodeDataTemplateController.java
+@@ -74,17 +74,19 @@ public abstract class UnicodeDataTemplateController {
+ 		addTR35ExtendedPictographicPropertyCodesToCodePointRanges(propertyCodePointRanges);
+ 		addEmojiPresentationPropertyCodesToCodePointRanges(propertyCodePointRanges);
+ 
+-		Map<String, String> propertyAliases = new LinkedHashMap<String, String>();
+-		addUnicodeCategoryCodesToNames(propertyAliases);
+-		addUnicodeBinaryPropertyCodesToNames(propertyAliases);
+-		addUnicodeScriptCodesToNames(propertyAliases);
+-		addUnicodeBlocksToNames(propertyAliases);
+-		addUnicodeIntPropertyCodesToNames(propertyAliases);
+-		propertyAliases.put("EP", "Extended_Pictographic");
++		Map<String, String> propertyAliasesA = new LinkedHashMap<String, String>();
++		Map<String, String> propertyAliasesB = new LinkedHashMap<String, String>();
++		addUnicodeCategoryCodesToNames(propertyAliasesA);
++		addUnicodeBinaryPropertyCodesToNames(propertyAliasesA);
++		addUnicodeScriptCodesToNames(propertyAliasesA);
++		addUnicodeBlocksToNames(propertyAliasesB);
++		addUnicodeIntPropertyCodesToNames(propertyAliasesB);
++		propertyAliasesB.put("EP", "Extended_Pictographic");
+ 
+ 		Map<String, Object> properties = new LinkedHashMap<String, Object>();
+ 		properties.put("propertyCodePointRanges", propertyCodePointRanges);
+-		properties.put("propertyAliases", propertyAliases);
++		properties.put("propertyAliasesA", propertyAliasesA);
++		properties.put("propertyAliasesB", propertyAliasesB);
+ 		return properties;
+ 	}
+ 
+-- 
+2.28.0
+
diff --git a/gnu/packages/patches/konversation-Fix-build-with-Qt-5.11.patch b/gnu/packages/patches/konversation-Fix-build-with-Qt-5.11.patch
deleted file mode 100644
index d9d29bbd1a..0000000000
--- a/gnu/packages/patches/konversation-Fix-build-with-Qt-5.11.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From 4d0036617becc26a76fd021138c98aceec4c7b53 Mon Sep 17 00:00:00 2001
-From: Luca Beltrame <lbeltrame@kde.org>
-Date: Sun, 21 Jul 2019 09:14:32 +0200
-Subject: Fix build with Qt 5.13
-
----
- src/irc/outputfilter.cpp | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/src/irc/outputfilter.cpp b/src/irc/outputfilter.cpp
-index f9e6253..45d11fb 100644
---- a/src/irc/outputfilter.cpp
-+++ b/src/irc/outputfilter.cpp
-@@ -32,6 +32,7 @@
- 
- #include <QStringList>
- #include <QFile>
-+#include <QMetaMethod>
- #include <QRegExp>
- #include <QTextCodec>
- #include <QByteArray>
--- 
-cgit v1.1
-
diff --git a/gnu/packages/patches/kpackage-fix-KF5PackageMacros.cmake.patch b/gnu/packages/patches/kpackage-fix-KF5PackageMacros.cmake.patch
new file mode 100644
index 0000000000..d677f19a70
--- /dev/null
+++ b/gnu/packages/patches/kpackage-fix-KF5PackageMacros.cmake.patch
@@ -0,0 +1,25 @@
+From 668010ebc9fd84d9dc60f90b9a4ebf3c7054977f Mon Sep 17 00:00:00 2001
+From: Hartmut Goebel <h.goebel@crazy-compilers.com>
+Date: Sun, 25 Oct 2020 20:11:13 +0000
+Subject: [PATCH] Fix build errors if PREFIX is different from ECM's PREFIX.
+
+See <https://bugs.kde.org/424483> for details.
+---
+ KF5PackageMacros.cmake | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/KF5PackageMacros.cmake b/KF5PackageMacros.cmake
+index f4c1d1d..acd3798 100644
+--- a/KF5PackageMacros.cmake
++++ b/KF5PackageMacros.cmake
+@@ -1,6 +1,5 @@
+ 
+-find_package(ECM 1.6.0 CONFIG REQUIRED)
+-include(${ECM_KDE_MODULE_DIR}/KDEInstallDirs.cmake)
++include(KDEInstallDirs)
+ 
+ set(KPACKAGE_RELATIVE_DATA_INSTALL_DIR "kpackage")
+ 
+-- 
+GitLab
+
diff --git a/gnu/packages/patches/ldns-drill-examples.patch b/gnu/packages/patches/ldns-drill-examples.patch
new file mode 100644
index 0000000000..f85e14cebe
--- /dev/null
+++ b/gnu/packages/patches/ldns-drill-examples.patch
@@ -0,0 +1,85 @@
+From 68916cd7ffb49ece9126d13ef984595595a156c4 Mon Sep 17 00:00:00 2001
+From: Raghav Gururajan <raghavgururajan@disroot.org>
+Date: Wed, 29 Jul 2020 12:32:48 -0400
+Subject: [PATCH] [PATCH]: Split installation of drill and examples.
+
+---
+ Makefile.in | 38 +++++++++++++++++++++-----------------
+ 1 file changed, 21 insertions(+), 17 deletions(-)
+
+diff --git a/Makefile.in b/Makefile.in
+index 442067de..9d2d5f4d 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -14,6 +14,10 @@ libdir		= @libdir@
+ includedir	= @includedir@
+ sysconfdir      = @sysconfdir@
+ doxygen		= @doxygen@
++drillbindir = @drillbindir@
++drillmandir = @drillmandir@
++examplesbindir = @examplesbindir@
++examplesmandir = @examplesmandir@
+ pywrapdir       = $(srcdir)/contrib/python
+ pyldnsxwrapdir  = $(srcdir)/contrib/ldnsx
+ p5_dns_ldns_dir = $(srcdir)/contrib/DNS-LDNS
+@@ -154,16 +158,16 @@ drill/drill.1: $(srcdir)/drill/drill.1.in
+ 	$(edit) $(srcdir)/drill/drill.1.in > drill/drill.1
+ 
+ install-drill: drill/drill drill/drill.1
+-	$(INSTALL) -m 755 -d $(DESTDIR)$(bindir)
+-	$(INSTALL) -m 755 -d $(DESTDIR)$(mandir)
+-	$(INSTALL) -m 755 -d $(DESTDIR)$(mandir)/man1
+-	$(LIBTOOL) --mode=install cp drill/drill $(DESTDIR)$(bindir)
+-	$(INSTALL) -m 644 drill/drill.1 $(DESTDIR)$(mandir)/man1/drill.1
++	$(INSTALL) -m 755 -d $(drillbindir)
++	$(INSTALL) -m 755 -d $(drillmandir)
++	$(INSTALL) -m 755 -d $(drillmandir)/man1
++	$(LIBTOOL) --mode=install cp drill/drill $(drillbindir)
++	$(INSTALL) -m 644 drill/drill.1 $(drillmandir)/man1/drill.1
+ 
+ uninstall-drill:
+-	rm -f $(DESTDIR)$(bindir)/drill $(DESTDIR)$(mandir)/man1/drill.1
+-	test ! -d $(DESTDIR)$(mandir) || rmdir -p $(DESTDIR)$(mandir)/man1 || :;
+-	test ! -d $(DESTDIR)$(bindir) || rmdir -p $(DESTDIR)$(bindir) || : ;
++	rm -f $(drillbindir)/drill $(drillmandir)/man1/drill.1
++	test ! -d $(drillmandir) || rmdir -p $(drillmandir)/man1 || :;
++	test ! -d $(drillbindir) || rmdir -p $(drillbindir) || : ;
+ 
+ clean-drill:
+ 	$(LIBTOOL) --mode clean rm -f $(DRILL_LOBJS) drill/drill drill/drill.1
+@@ -202,23 +206,23 @@ examples/ldns-verify-zone.1: $(srcdir)/examples/ldns-verify-zone.1.in
+ 	$(edit) $(srcdir)/examples/ldns-verify-zone.1.in > examples/ldns-verify-zone.1
+ 
+ install-examples: $(EXAMPLE_PROGS) $(TESTNS) $(LDNS_DPA) $(LDNS_DANE) $(EX_SSL_PROGS) examples/ldns-dane.1 examples/ldns-verify-zone.1
+-	$(INSTALL) -m 755 -d $(DESTDIR)$(bindir)
+-	$(INSTALL) -m 755 -d $(DESTDIR)$(mandir)
+-	$(INSTALL) -m 755 -d $(DESTDIR)$(mandir)/man1
++	$(INSTALL) -m 755 -d $(examplesbindir)
++	$(INSTALL) -m 755 -d $(examplesmandir)
++	$(INSTALL) -m 755 -d $(examplesmandir)/man1
+ 	for p in $(EXAMPLE_PROGS) $(TESTNS) $(LDNS_DPA) $(LDNS_DANE) $(EX_SSL_PROGS) ; do \
+-		$(LIBTOOL) --mode=install cp $$p $(DESTDIR)$(bindir) ; \
++		$(LIBTOOL) --mode=install cp $$p $(examplesbindir) ; \
+ 		if test -f $$p.1 ; \
+-		then $(INSTALL) -m 644 $$p.1 $(DESTDIR)$(mandir)/man1 ; \
+-		else $(INSTALL) -m 644 $(srcdir)/$$p.1 $(DESTDIR)$(mandir)/man1 ; \
++		then $(INSTALL) -m 644 $$p.1 $(examplesmandir)/man1 ; \
++		else $(INSTALL) -m 644 $(srcdir)/$$p.1 $(examplesmandir)/man1 ; \
+ 		fi ; \
+ 	done
+ 
+ uninstall-examples:
+ 	for p in $(EX_PROGS_BASENM) ; do \
+-		rm -f $(DESTDIR)$(bindir)/$$p $(DESTDIR)$(mandir)/man1/$$p.1 ;\
++		rm -f $(examplesbindir)/$$p $(examplesmandir)/man1/$$p.1 ;\
+ 	done
+-	test ! -d $(DESTDIR)$(mandir) || rmdir -p $(DESTDIR)$(mandir)/man1 || :;
+-	test ! -d $(DESTDIR)$(bindir) || rmdir -p $(DESTDIR)$(bindir) || : ;
++	test ! -d $(examplesmandir) || rmdir -p $(examplesmandir)/man1 || :;
++	test ! -d $(examplesbindir) || rmdir -p $(examplesbindir) || : ;
+ 
+ clean-examples:
+ 	$(LIBTOOL) --mode clean rm -f $(EXAMPLE_PROGS) 
+-- 
+2.27.0
+
diff --git a/gnu/packages/patches/libcanberra-wayland-crash.patch b/gnu/packages/patches/libcanberra-wayland-crash.patch
new file mode 100644
index 0000000000..e347436bbe
--- /dev/null
+++ b/gnu/packages/patches/libcanberra-wayland-crash.patch
@@ -0,0 +1,55 @@
+# This patch comes from upstream commit c0620e432650e81062c1967cc669829dbd29b310.
+# gtk: Don't assume all GdkDisplays are GdkX11Displays: broadway/wayland
+
+--- src/canberra-gtk-module.c.orig
++++ src/canberra-gtk-module.c
+@@ -307,6 +307,11 @@ static gint window_get_desktop(GdkDisplay *d, GdkWindow *w) {
+         guchar *data = NULL;
+         gint ret = -1;
+ 
++#ifdef GDK_IS_X11_DISPLAY
++        if (!GDK_IS_X11_DISPLAY(d))
++                return 0;
++#endif
++
+         if (XGetWindowProperty(GDK_DISPLAY_XDISPLAY(d), GDK_WINDOW_XID(w),
+                                gdk_x11_get_xatom_by_name_for_display(d, "_NET_WM_DESKTOP"),
+                                0, G_MAXLONG, False, XA_CARDINAL, &type_return,
+@@ -335,6 +340,11 @@ static gint display_get_desktop(GdkDisplay *d) {
+         guchar *data = NULL;
+         gint ret = -1;
+ 
++#ifdef GDK_IS_X11_DISPLAY
++        if (!GDK_IS_X11_DISPLAY(d))
++                return 0;
++#endif
++
+         if (XGetWindowProperty(GDK_DISPLAY_XDISPLAY(d), DefaultRootWindow(GDK_DISPLAY_XDISPLAY(d)),
+                                gdk_x11_get_xatom_by_name_for_display(d, "_NET_CURRENT_DESKTOP"),
+                                0, G_MAXLONG, False, XA_CARDINAL, &type_return,
+@@ -365,6 +375,11 @@ static gboolean window_is_xembed(GdkDisplay *d, GdkWindow *w) {
+         gboolean ret = FALSE;
+         Atom xembed;
+ 
++#ifdef GDK_IS_X11_DISPLAY
++        if (!GDK_IS_X11_DISPLAY(d))
++                return FALSE;
++#endif
++
+         /* Gnome Panel applets are XEMBED windows. We need to make sure we
+          * ignore them */
+ 
+--- src/canberra-gtk.c.orig
++++ src/canberra-gtk.c
+@@ -185,6 +185,11 @@ static gint window_get_desktop(GdkDisplay *d, GdkWindow *w) {
+         guchar *data = NULL;
+         gint ret = -1;
+ 
++#ifdef GDK_IS_X11_DISPLAY
++        if (!GDK_IS_X11_DISPLAY(d))
++                return 0;
++#endif
++
+         if (XGetWindowProperty(GDK_DISPLAY_XDISPLAY(d), GDK_WINDOW_XID(w),
+                                gdk_x11_get_xatom_by_name_for_display(d, "_NET_WM_DESKTOP"),
+                                0, G_MAXLONG, False, XA_CARDINAL, &type_return,
diff --git a/gnu/packages/patches/libcyaml-libyaml-compat.patch b/gnu/packages/patches/libcyaml-libyaml-compat.patch
new file mode 100644
index 0000000000..dcb8cb51b8
--- /dev/null
+++ b/gnu/packages/patches/libcyaml-libyaml-compat.patch
@@ -0,0 +1,51 @@
+Fix build against libyaml 0.2.5.
+
+Taken from upstream:
+https://github.com/tlsa/libcyaml/commit/0e947264b947f51f7ea785068637c4bfce5d4171
+
+diff --git a/test/units/save.c b/test/units/save.c
+--- a/test/units/save.c
++++ b/test/units/save.c
+@@ -3476,7 +3476,7 @@ static bool test_save_sequence_null_values_int(
+ 		ttest_report_ctx_t *report,
+ 		const cyaml_config_t *config)
+ {
+-	static const unsigned char ref[] =
++	static const unsigned char ref1[] =
+ 		"---\n"
+ 		"- 7\n"
+ 		"- 6\n"
+@@ -3487,6 +3487,18 @@ static bool test_save_sequence_null_values_int(
+ 		"- \n"
+ 		"- 0\n"
+ 		"...\n";
++	/* As of libyaml 0.2.5, trailing spaces are not emitted. */
++	static const unsigned char ref2[] =
++		"---\n"
++		"- 7\n"
++		"- 6\n"
++		"- 5\n"
++		"-\n"
++		"- 3\n"
++		"- 2\n"
++		"-\n"
++		"- 0\n"
++		"...\n";
+ 	static const int d[] = { 7, 6, 5, 4, 3, 2, 1, 0 };
+ 	static const int *data[] = { d + 0, d + 1, d + 2, NULL,
+ 	                             d + 4, d + 5, NULL, d + 7, };
+@@ -3515,11 +3527,12 @@ static bool test_save_sequence_null_values_int(
+ 		return ttest_fail(&tc, cyaml_strerror(err));
+ 	}
+ 
+-	if (len != YAML_LEN(ref) || memcmp(ref, buffer, len) != 0) {
++	if ((len != YAML_LEN(ref1) || memcmp(ref1, buffer, len) != 0) &&
++	    (len != YAML_LEN(ref2) || memcmp(ref2, buffer, len) != 0)) {
+ 		return ttest_fail(&tc, "Bad data:\n"
+ 				"EXPECTED (%zu):\n\n%.*s\n\n"
+ 				"GOT (%zu):\n\n%.*s\n",
+-				YAML_LEN(ref), YAML_LEN(ref), ref,
++				YAML_LEN(ref1), YAML_LEN(ref1), ref1,
+ 				len, len, buffer);
+ 	}
+ 
diff --git a/gnu/packages/patches/libdrm-realpath-virtio.patch b/gnu/packages/patches/libdrm-realpath-virtio.patch
deleted file mode 100644
index b7d85160b4..0000000000
--- a/gnu/packages/patches/libdrm-realpath-virtio.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-Only check for for relative path on virtio devices.  Otherwise it could
-break driver loading in some circumstances, notably the IceCat sandbox.
-
-https://gitlab.freedesktop.org/mesa/drm/-/issues/39
-
-Taken from upstream:
-https://gitlab.freedesktop.org/mesa/drm/-/commit/57df07572ce45a1b60bae6fb89770388d3abd6dd
-
-diff --git a/xf86drm.c b/xf86drm.c
---- a/xf86drm.c
-+++ b/xf86drm.c
-@@ -3103,15 +3103,18 @@ static int drmParseSubsystemType(int maj, int min)
-     int subsystem_type;
- 
-     snprintf(path, sizeof(path), "/sys/dev/char/%d:%d/device", maj, min);
--    if (!realpath(path, real_path))
--        return -errno;
--    snprintf(path, sizeof(path), "%s", real_path);
- 
-     subsystem_type = get_subsystem_type(path);
-+    /* Try to get the parent (underlying) device type */
-     if (subsystem_type == DRM_BUS_VIRTIO) {
-+        /* Assume virtio-pci on error */
-+        if (!realpath(path, real_path))
-+            return DRM_BUS_VIRTIO;
-         strncat(path, "/..", PATH_MAX);
-         subsystem_type = get_subsystem_type(path);
--    }
-+        if (subsystem_type < 0)
-+            return DRM_BUS_VIRTIO;
-+     }
-     return subsystem_type;
- #elif defined(__OpenBSD__) || defined(__DragonFly__) || defined(__FreeBSD__)
-     return DRM_BUS_PCI;
-@@ -3920,6 +3923,7 @@ process_device(drmDevicePtr *device, const char *d_name,
- 
-     switch (subsystem_type) {
-     case DRM_BUS_PCI:
-+    case DRM_BUS_VIRTIO:
-         return drmProcessPciDevice(device, node, node_type, maj, min,
-                                    fetch_deviceinfo, flags);
-     case DRM_BUS_USB:
diff --git a/gnu/packages/patches/libexpected-nofetch.patch b/gnu/packages/patches/libexpected-nofetch.patch
new file mode 100644
index 0000000000..e1d104f6f4
--- /dev/null
+++ b/gnu/packages/patches/libexpected-nofetch.patch
@@ -0,0 +1,27 @@
+Description: Disable FetchContent module
+ No online operations are permitted during build package.
+Author: Nicholas Guriev <guriev-ns@ya.ru>
+Last-Update: Wed, 22 Jan 2020 21:51:33 +0300
+
+Modified by Brett Gilio <brettg@gnu.org> on Dec 5, 2020
+
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -4,16 +4,7 @@ project(tl-expected VERSION 1.0.0 LANGUAGES CXX)
+ 
+ option(EXPECTED_ENABLE_TESTS "Enable tests." ON)
+ 
+-include(FetchContent)
+-FetchContent_Declare(

+-  tl_cmake

+-  GIT_REPOSITORY https://github.com/TartanLlama/tl-cmake.git

+-)
+-FetchContent_GetProperties(tl_cmake)

+-if(NOT tl_cmake_POPULATED)

+-  FetchContent_Populate(tl_cmake)

+-  set(CMAKE_MODULE_PATH ${tl_cmake_SOURCE_DIR} ${CMAKE_MODULE_PATH})

+-endif()
++set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/tl-cmake ${CMAKE_MODULE_PATH})
+ include(add-tl)
+ 
+ tl_add_library(expected SOURCES 
diff --git a/gnu/packages/patches/libffi-3.3-powerpc-fixes.patch b/gnu/packages/patches/libffi-3.3-powerpc-fixes.patch
new file mode 100644
index 0000000000..971ed26180
--- /dev/null
+++ b/gnu/packages/patches/libffi-3.3-powerpc-fixes.patch
@@ -0,0 +1,138 @@
+This is a combination of the following 4 commits:
+https://github.com/libffi/libffi/commit/01a75ed76ea7e57f1b7a5c183e2b1e890e6aa0fd.patch
+https://github.com/libffi/libffi/commit/6663047f56c2932a6b10a790f4ac6666dd181326.patch
+https://github.com/libffi/libffi/commit/e50b9ef8b910fa642ef158f6642e60d54d7ad740.patch
+https://github.com/libffi/libffi/commit/4d6d2866ae43e55325e8ee96561221804602cd7a.patch
+
+From 2dbfa92a95e3bacabca431b89d2a5925e48a0e40 Mon Sep 17 00:00:00 2001
+From: Sergei Trofimovich <slyfox@gentoo.org>
+Date: Thu, 28 Nov 2019 12:42:41 +0000
+
+powerpc: fix build failure on power7 and older (#532)
+
+Build failure looks as:
+```
+libtool: compile:  powerpc-unknown-linux-gnu-gcc \
+    -O2 -mcpu=powerpc -mtune=powerpc -pipe ... -c src/powerpc/ffi.c ...
+In file included from src/powerpc/ffi.c:33:
+src/powerpc/ffi_powerpc.h:65:9: error: '__int128' is not supported on this target
+   65 | typedef __int128 float128;
+      |         ^~~~~~~~
+```
+
+The fix avoids using __int128 in favour of aligned char[16].
+
+Closes: https://github.com/libffi/libffi/issues/531
+Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
+
+Address platforms with no __int128.
+
+powerpc64: Use memcpy to help platforms with no __int128. (#534)
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+Update powerpc sysv assembly for ffi_powerpc.h changes (#541)
+
+Some of the flag bits were moved when adding powerpc64 vector support.
+
+Fixes #536
+---
+ src/powerpc/ffi_linux64.c | 12 ++++++------
+ src/powerpc/ffi_powerpc.h |  2 +-
+ src/powerpc/sysv.S        | 12 +++++-------
+ 3 files changed, 12 insertions(+), 14 deletions(-)
+
+diff --git a/src/powerpc/ffi_linux64.c b/src/powerpc/ffi_linux64.c
+index de0d033..4d50878 100644
+--- a/src/powerpc/ffi_linux64.c
++++ b/src/powerpc/ffi_linux64.c
+@@ -547,9 +547,9 @@ ffi_prep_args64 (extended_cif *ecif, unsigned long *const stack)
+               if (next_arg.ul == gpr_end.ul)
+                 next_arg.ul = rest.ul;
+               if (vecarg_count < NUM_VEC_ARG_REGISTERS64 && i < nfixedargs)
+-                *vec_base.f128++ = **p_argv.f128;
++		memcpy (vec_base.f128++, *p_argv.f128, sizeof (float128));
+               else
+-                *next_arg.f128 = **p_argv.f128;
++		memcpy (next_arg.f128, *p_argv.f128, sizeof (float128));
+               if (++next_arg.f128 == gpr_end.f128)
+                 next_arg.f128 = rest.f128;
+               vecarg_count++;
+@@ -680,9 +680,9 @@ ffi_prep_args64 (extended_cif *ecif, unsigned long *const stack)
+                     {
+                       if (vecarg_count < NUM_VEC_ARG_REGISTERS64
+                           && i < nfixedargs)
+-                        *vec_base.f128++ = *arg.f128++;
++		        memcpy (vec_base.f128++, arg.f128, sizeof (float128));
+                       else
+-                        *next_arg.f128 = *arg.f128++;
++		        memcpy (next_arg.f128, arg.f128++, sizeof (float128));
+                       if (++next_arg.f128 == gpr_end.f128)
+                         next_arg.f128 = rest.f128;
+                       vecarg_count++;
+@@ -986,9 +986,9 @@ ffi_closure_helper_LINUX64 (ffi_cif *cif,
+                   do
+                     {
+                       if (pvec < end_pvec && i < nfixedargs)
+-                        *to.f128 = *pvec++;
++		        memcpy (to.f128, pvec++, sizeof (float128));
+                       else
+-                        *to.f128 = *from.f128;
++		        memcpy (to.f128, from.f128, sizeof (float128));
+                       to.f128++;
+                       from.f128++;
+                     }
+diff --git a/src/powerpc/ffi_powerpc.h b/src/powerpc/ffi_powerpc.h
+index 5ee2a70..8e2f2f0 100644
+--- a/src/powerpc/ffi_powerpc.h
++++ b/src/powerpc/ffi_powerpc.h
+@@ -62,7 +62,7 @@ typedef _Float128 float128;
+ #elif defined(__FLOAT128__)
+ typedef __float128 float128;
+ #else
+-typedef __int128 float128;
++typedef char float128[16] __attribute__((aligned(16)));
+ #endif
+ 
+ void FFI_HIDDEN ffi_closure_SYSV (void);
+diff --git a/src/powerpc/sysv.S b/src/powerpc/sysv.S
+index 1474ce7..df97734 100644
+--- a/src/powerpc/sysv.S
++++ b/src/powerpc/sysv.S
+@@ -104,17 +104,16 @@ ENTRY(ffi_call_SYSV)
+ 	bctrl
+ 
+ 	/* Now, deal with the return value.  */
+-	mtcrf	0x01,%r31 /* cr7  */
++	mtcrf	0x03,%r31 /* cr6-cr7  */
+ 	bt-	31,L(small_struct_return_value)
+ 	bt-	30,L(done_return_value)
+ #ifndef __NO_FPRS__
+ 	bt-	29,L(fp_return_value)
+ #endif
+ 	stw	%r3,0(%r30)
+-	bf+	28,L(done_return_value)
++	bf+	27,L(done_return_value)
+ 	stw	%r4,4(%r30)
+-	mtcrf	0x02,%r31 /* cr6  */
+-	bf	27,L(done_return_value)
++	bf	26,L(done_return_value)
+ 	stw     %r5,8(%r30)
+ 	stw	%r6,12(%r30)
+ 	/* Fall through...  */
+@@ -145,10 +144,9 @@ L(done_return_value):
+ #ifndef __NO_FPRS__
+ L(fp_return_value):
+ 	.cfi_restore_state
+-	bf	28,L(float_return_value)
++	bf	27,L(float_return_value)
+ 	stfd	%f1,0(%r30)
+-	mtcrf   0x02,%r31 /* cr6  */
+-	bf	27,L(done_return_value)
++	bf	26,L(done_return_value)
+ 	stfd	%f2,8(%r30)
+ 	b	L(done_return_value)
+ L(float_return_value):
+-- 
+2.26.0
+
diff --git a/gnu/packages/patches/libffi-float128-powerpc64le.patch b/gnu/packages/patches/libffi-float128-powerpc64le.patch
new file mode 100644
index 0000000000..4fd32b0102
--- /dev/null
+++ b/gnu/packages/patches/libffi-float128-powerpc64le.patch
@@ -0,0 +1,58 @@
+From de93adfb6f48100946bba2c3abad2a77a0cfde0b Mon Sep 17 00:00:00 2001
+From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
+Date: Sun, 24 Nov 2019 09:52:01 +0100
+Subject: [PATCH] ffi_powerpc.h: fix build failure with powerpc7
+
+This is a patch pulled down from the following:
+https://github.com/buildroot/buildroot/blob/78926f610b1411b03464152472fd430012deb9ac/package/libffi/0004-ffi_powerpc.h-fix-build-failure-with-powerpc7.patch
+
+This issue is being hit on OpenBMC code when pulling the latest
+libffi tag and building on a P8 ppc64le machine. I verified this
+patch fixes the issue we are seeing.
+
+Below is the original commit message:
+
+Sicne commit 73dd43afc8a447ba98ea02e9aad4c6898dc77fb0, build on powerpc7
+fails on:
+
+In file included from ../src/powerpc/ffi.c:33:0:
+../src/powerpc/ffi_powerpc.h:61:9: error: '_Float128' is not supported on this target
+ typedef _Float128 float128;
+         ^~~~~~~~~
+
+Fix this build failure by checking for __HAVE_FLOAT128 before using
+_Float128, as _Float128 is enabled only on specific conditions, see
+output/host/powerpc64-buildroot-linux-gnu/sysroot/usr/include/bits/floatn.h:
+
+ /* Defined to 1 if the current compiler invocation provides a
+    floating-point type with the IEEE 754 binary128 format, and this glibc
+    includes corresponding *f128 interfaces for it.  */
+ #if defined _ARCH_PWR8 && defined __LITTLE_ENDIAN__ && (_CALL_ELF == 2) \
+     && defined __FLOAT128__ && !defined __NO_LONG_DOUBLE_MATH
+ # define __HAVE_FLOAT128 1
+ #else
+ # define __HAVE_FLOAT128 0
+ #endif
+
+Fixes:
+ - http://autobuild.buildroot.org/results/5c9dd8fb3b6a128882b6250f197c80232d8a3b53
+
+Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
+Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
+---
+ src/powerpc/ffi_powerpc.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/powerpc/ffi_powerpc.h b/src/powerpc/ffi_powerpc.h
+index 8e2f2f0e..960a5c42 100644
+--- a/src/powerpc/ffi_powerpc.h
++++ b/src/powerpc/ffi_powerpc.h
+@@ -57,7 +57,7 @@ typedef union
+   double d;
+ } ffi_dblfl;
+ 
+-#if defined(__FLOAT128_TYPE__)
++#if defined(__FLOAT128_TYPE__) && defined(__HAVE_FLOAT128)
+ typedef _Float128 float128;
+ #elif defined(__FLOAT128__)
+ typedef __float128 float128;
diff --git a/gnu/packages/patches/libmhash-hmac-fix-uaf.patch b/gnu/packages/patches/libmhash-hmac-fix-uaf.patch
new file mode 100644
index 0000000000..76f937f4f6
--- /dev/null
+++ b/gnu/packages/patches/libmhash-hmac-fix-uaf.patch
@@ -0,0 +1,22 @@
+--- mhash-0.9.9.9/src/hmac_test.c	2020-08-20 14:53:06.628995733 -0500
++++ mhash-0.9.9.9/src/hmac_test.c	2020-08-20 14:53:39.424885862 -0500
+@@ -72,8 +72,6 @@
+ 		return(MUTILS_INVALID_RESULT);
+ 	}
+ 
+-	mutils_free(tmp);
+-
+ 	/* Test No 2 */	
+ 	
+ 	mutils_memset(tmp, 0, sizeof(tmp));
+--- mhash-0.9.9.9/src/keygen_test.c	2020-08-20 14:53:12.940974589 -0500
++++ mhash-0.9.9.9/src/keygen_test.c	2020-08-20 14:53:59.736817812 -0500
+@@ -94,8 +94,6 @@
+ 		return(MUTILS_INVALID_RESULT);
+ 	}
+ 
+-	mutils_free(tmp);
+-
+ 	passlen = sizeof(PASSWORD2);
+ 	password = (mutils_word8 *) mutils_malloc(passlen + 1);
+ 	mutils_strncpy(password, (mutils_word8 *) PASSWORD2, passlen);
diff --git a/gnu/packages/patches/libofa-curl.diff b/gnu/packages/patches/libofa-curl.diff
new file mode 100644
index 0000000000..6b1e824fad
--- /dev/null
+++ b/gnu/packages/patches/libofa-curl.diff
@@ -0,0 +1,15 @@
+Description: Fix FTBFS due to unexisting and useless include. (Closes: #637896)
+Author: Regis Boudin <regis@debian.org>
+Last-Update: 2011-10-03
+Index: libofa-0.9.3/examples/protocol.cpp
+===================================================================
+--- libofa-0.9.3.orig/examples/protocol.cpp
++++ libofa-0.9.3/examples/protocol.cpp
+@@ -13,7 +13,6 @@
+ #include <map>
+ #include <expat.h>
+ #include <curl/curl.h>
+-#include <curl/types.h>
+ #include <curl/easy.h>
+ 
+ using namespace std;
diff --git a/gnu/packages/patches/libofa-ftbfs-1.diff b/gnu/packages/patches/libofa-ftbfs-1.diff
new file mode 100644
index 0000000000..4aa712320c
--- /dev/null
+++ b/gnu/packages/patches/libofa-ftbfs-1.diff
@@ -0,0 +1,45 @@
+Description: fix FTBFS with GCC 4.3. (Closes: #417355)
+Author: Martin Michlmayr <tbm@cyrius.com>
+Last-Update: 2007-04-02
+
+Description: add a missing include. (Closes: #441557)
+Author: Brian M. Carlson <sandals@crustytoothpaste.ath.cx>
+Last-Update: 2007-12-29
+
+Index: libofa-0.9.3/lib/signal_op.cpp
+===================================================================
+--- libofa-0.9.3.orig/lib/signal_op.cpp
++++ libofa-0.9.3/lib/signal_op.cpp
+@@ -12,6 +12,7 @@
+ // DATE CREATED: 1/12/06
+ 
+ 
++#include <cstdlib>
+ #include <math.h>
+ #include "signal_op.h"
+ #include "AFLIB/aflibConverter.h"
+Index: libofa-0.9.3/examples/example.cpp
+===================================================================
+--- libofa-0.9.3.orig/examples/example.cpp
++++ libofa-0.9.3/examples/example.cpp
+@@ -8,6 +8,8 @@
+ -------------------------------------------------------------------*/
+ 
+ #include "protocol.h"
++#include <cctype>
++#include <string.h>
+ 
+ AudioData* loadWaveFile(char *file);
+ AudioData* loadDataUsingLAME(char *file);
+Index: libofa-0.9.3/examples/protocol.cpp
+===================================================================
+--- libofa-0.9.3.orig/examples/protocol.cpp
++++ libofa-0.9.3/examples/protocol.cpp
+@@ -8,6 +8,7 @@
+ -------------------------------------------------------------------*/
+ #include <stdio.h>
+ #include <stdlib.h>
++#include <cstring>
+ #include <string>
+ #include <map>
+ #include <expat.h>
diff --git a/gnu/packages/patches/libofa-ftbfs-2.diff b/gnu/packages/patches/libofa-ftbfs-2.diff
new file mode 100644
index 0000000000..ad61573578
--- /dev/null
+++ b/gnu/packages/patches/libofa-ftbfs-2.diff
@@ -0,0 +1,27 @@
+Description: ftbfs with GCC-4.7. (Closes: #667250)
+Author: Matthias Klose <doko@debian.org>
+Last-Update: 2012-04-17
+Index: libofa-0.9.3/examples/uselame.cpp
+===================================================================
+--- libofa-0.9.3.orig/examples/uselame.cpp
++++ libofa-0.9.3/examples/uselame.cpp
+@@ -11,6 +11,7 @@
+ #include "windows.h"
+ #else
+ #include <sys/wait.h>
++#include <unistd.h>
+ #endif
+ 
+ AudioData *loadWaveFile(char *file);
+Index: libofa-0.9.3/examples/wavefile.cpp
+===================================================================
+--- libofa-0.9.3.orig/examples/wavefile.cpp
++++ libofa-0.9.3/examples/wavefile.cpp
+@@ -11,6 +11,7 @@
+ #include "io.h"
+ #endif
+ #include <fcntl.h>
++#include <unistd.h>
+ 
+ static bool readBytes(int fd, unsigned char *buf, int size) {
+     int ct = 0;
diff --git a/gnu/packages/patches/libquicktime-ffmpeg.patch b/gnu/packages/patches/libquicktime-ffmpeg.patch
new file mode 100644
index 0000000000..48c595fba9
--- /dev/null
+++ b/gnu/packages/patches/libquicktime-ffmpeg.patch
@@ -0,0 +1,1309 @@
+Submitted By: Ken Moffat <ken at linuxfromscratch dot org>
+Date: 2018-05-12
+Initial Package Version: 1.2.4
+Upstream Status: Defunct
+Origin: Gentoo
+Description: Accumulated fixes up to and including building with ffmpeg-4
+
+From gentoo, their libav-9.patch, ffmpeg2.patch, CVE-2016-2399.patch,
+ffmpeg29.patch, ffmpeg4.patch, and seds to files lqt_ffmpeg.c, video.c,
+audio.c in plugins/ffmpeg/ to change CODEC_ID to AV_CODEC_ID.
+
+Build-tested only.
+
+diff -Naur a/plugins/ffmpeg/audio.c b/plugins/ffmpeg/audio.c
+--- a/plugins/ffmpeg/audio.c	2012-03-29 20:44:28.000000000 +0100
++++ b/plugins/ffmpeg/audio.c	2018-05-11 23:15:21.057985300 +0100
+@@ -45,6 +45,11 @@
+ #define ENCODE_AUDIO 1
+ #endif
+ 
++#ifndef AVCODEC_MAX_AUDIO_FRAME_SIZE
++/* from libavcodec/avcodec.h dated Dec 23 2012 */
++#define AVCODEC_MAX_AUDIO_FRAME_SIZE 192000 // 1 second of 48khz 32bit audio
++#endif
++
+ /* The following code was ported from gmerlin_avdecoder (http://gmerlin.sourceforge.net) */
+ 
+ /* MPEG Audio header parsing code */
+@@ -540,7 +545,7 @@
+ 
+ #if DECODE_AUDIO3 || DECODE_AUDIO4
+     codec->pkt.data = codec->chunk_buffer;
+-    codec->pkt.size = packet_size + FF_INPUT_BUFFER_PADDING_SIZE;
++    codec->pkt.size = packet_size + AV_INPUT_BUFFER_PADDING_SIZE;
+ 
+ #if DECODE_AUDIO4
+     frame_bytes = avcodec_decode_audio4(codec->avctx, &f,
+@@ -578,7 +583,7 @@
+                                          (codec->sample_buffer_end - codec->sample_buffer_start)],
+                   &bytes_decoded,
+                   codec->chunk_buffer,
+-                  packet_size + FF_INPUT_BUFFER_PADDING_SIZE);
++                  packet_size + AV_INPUT_BUFFER_PADDING_SIZE);
+     if(frame_bytes < 0)
+       {
+       lqt_log(file, LQT_LOG_ERROR, LOG_DOMAIN, "avcodec_decode_audio2 error");
+@@ -626,7 +631,7 @@
+     {
+     /* If the codec is mp3, make sure to decode the very last frame */
+ 
+-    if((codec->avctx->codec_id == CODEC_ID_MP3) &&
++    if((codec->avctx->codec_id == AV_CODEC_ID_MP3) &&
+        (codec->bytes_in_chunk_buffer >= 4))
+       {
+       if(!mpa_decode_header(&mph, codec->chunk_buffer, (const mpa_header*)0))
+@@ -640,13 +645,13 @@
+         return 0;
+         }
+ 
+-      if(codec->chunk_buffer_alloc < mph.frame_bytes + FF_INPUT_BUFFER_PADDING_SIZE)
++      if(codec->chunk_buffer_alloc < mph.frame_bytes + AV_INPUT_BUFFER_PADDING_SIZE)
+         {
+-        codec->chunk_buffer_alloc = mph.frame_bytes + FF_INPUT_BUFFER_PADDING_SIZE;
++        codec->chunk_buffer_alloc = mph.frame_bytes + AV_INPUT_BUFFER_PADDING_SIZE;
+         codec->chunk_buffer = realloc(codec->chunk_buffer, codec->chunk_buffer_alloc);
+         }
+       memset(codec->chunk_buffer + codec->bytes_in_chunk_buffer, 0,
+-             mph.frame_bytes - codec->bytes_in_chunk_buffer + FF_INPUT_BUFFER_PADDING_SIZE);
++             mph.frame_bytes - codec->bytes_in_chunk_buffer + AV_INPUT_BUFFER_PADDING_SIZE);
+       num_samples = mph.samples_per_frame;
+       codec->bytes_in_chunk_buffer = mph.frame_bytes;
+       }
+@@ -690,12 +695,12 @@
+     {
+ 
+         
+-    /* BIG NOTE: We pass extra FF_INPUT_BUFFER_PADDING_SIZE for the buffer size
++    /* BIG NOTE: We pass extra AV_INPUT_BUFFER_PADDING_SIZE for the buffer size
+        because we know, that lqt_read_audio_chunk allocates 16 extra bytes for us */
+     
+     /* Some really broken mp3 files have the header bytes split across 2 chunks */
+ 
+-    if(codec->avctx->codec_id == CODEC_ID_MP3)
++    if(codec->avctx->codec_id == AV_CODEC_ID_MP3)
+       {
+       if(codec->bytes_in_chunk_buffer < 4)
+         {
+@@ -756,7 +761,7 @@
+ 
+ #if DECODE_AUDIO3 || DECODE_AUDIO4
+     codec->pkt.data = &codec->chunk_buffer[bytes_used];
+-    codec->pkt.size = codec->bytes_in_chunk_buffer + FF_INPUT_BUFFER_PADDING_SIZE;
++    codec->pkt.size = codec->bytes_in_chunk_buffer + AV_INPUT_BUFFER_PADDING_SIZE;
+ 
+ #if DECODE_AUDIO4
+     
+@@ -793,7 +798,7 @@
+                                                   (codec->sample_buffer_end - codec->sample_buffer_start)],
+                             &bytes_decoded,
+                             &codec->chunk_buffer[bytes_used],
+-                            codec->bytes_in_chunk_buffer + FF_INPUT_BUFFER_PADDING_SIZE);
++                            codec->bytes_in_chunk_buffer + AV_INPUT_BUFFER_PADDING_SIZE);
+ #endif
+     if(frame_bytes < 0)
+       {
+@@ -806,7 +811,7 @@
+     
+     if(bytes_decoded < 0)
+       {
+-      if(codec->avctx->codec_id == CODEC_ID_MP3)
++      if(codec->avctx->codec_id == AV_CODEC_ID_MP3)
+         {
+         /* For mp3, bytes_decoded < 0 means, that the frame should be muted */
+         memset(&codec->sample_buffer[track_map->channels * (codec->sample_buffer_end -
+@@ -833,7 +838,7 @@
+         }
+       }
+     
+-    /* This happens because ffmpeg adds FF_INPUT_BUFFER_PADDING_SIZE to the bytes returned */
++    /* This happens because ffmpeg adds AV_INPUT_BUFFER_PADDING_SIZE to the bytes returned */
+     
+     if(codec->bytes_in_chunk_buffer < 0)
+       codec->bytes_in_chunk_buffer = 0;
+@@ -866,8 +871,8 @@
+   quicktime_audio_map_t *track_map = &file->atracks[track];
+   quicktime_ffmpeg_audio_codec_t *codec = track_map->codec->priv;
+ 
+-  if((codec->decoder->id == CODEC_ID_MP2) ||
+-     (codec->decoder->id == CODEC_ID_MP3))
++  if((codec->decoder->id == AV_CODEC_ID_MP2) ||
++     (codec->decoder->id == AV_CODEC_ID_MP3))
+     {
+     mpa_header h;
+     uint32_t header;
+@@ -909,7 +914,7 @@
+     else
+       track_map->ci.bitrate = h.bitrate;
+     }
+-  else if(codec->decoder->id == CODEC_ID_AC3)
++  else if(codec->decoder->id == AV_CODEC_ID_AC3)
+     {
+     a52_header h;
+     uint8_t * ptr;
+@@ -986,7 +991,7 @@
+ #endif
+     /* Some codecs need extra stuff */
+ 
+-    if(codec->decoder->id == CODEC_ID_ALAC)
++    if(codec->decoder->id == AV_CODEC_ID_ALAC)
+       {
+       header = quicktime_wave_get_user_atom(track_map->track, "alac", &header_len);
+       if(header)
+@@ -995,7 +1000,7 @@
+         codec->avctx->extradata_size = header_len;
+         }
+       }
+-    if(codec->decoder->id == CODEC_ID_QDM2)
++    if(codec->decoder->id == AV_CODEC_ID_QDM2)
+       {
+       header = quicktime_wave_get_user_atom(track_map->track, "QDCA", &header_len);
+       if(header)
+@@ -1261,7 +1266,7 @@
+     pkt.data = codec->chunk_buffer;
+     pkt.size = codec->chunk_buffer_alloc;
+ 
+-    avcodec_get_frame_defaults(&f);
++    av_frame_unref(&f);
+     f.nb_samples = codec->avctx->frame_size;
+     
+     avcodec_fill_audio_frame(&f, channels, codec->avctx->sample_fmt,
+@@ -1495,9 +1500,9 @@
+     codec_base->decode_audio = lqt_ffmpeg_decode_audio;
+   codec_base->set_parameter = set_parameter;
+ 
+-  if((decoder->id == CODEC_ID_MP3) || (decoder->id == CODEC_ID_MP2))
++  if((decoder->id == AV_CODEC_ID_MP3) || (decoder->id == AV_CODEC_ID_MP2))
+     codec_base->read_packet = read_packet_mpa;
+-  else if(decoder->id == CODEC_ID_AC3)
++  else if(decoder->id == AV_CODEC_ID_AC3)
+     {
+     codec_base->write_packet = write_packet_ac3;
+     codec_base->read_packet = read_packet_ac3;
+diff -Naur a/plugins/ffmpeg/ffmpeg.h b/plugins/ffmpeg/ffmpeg.h
+--- a/plugins/ffmpeg/ffmpeg.h	2012-02-15 19:48:30.000000000 +0000
++++ b/plugins/ffmpeg/ffmpeg.h	2018-05-11 23:10:24.204992468 +0100
+@@ -27,6 +27,7 @@
+ 
+ #include <quicktime/qtprivate.h>
+ #include AVCODEC_HEADER
++#include <libavutil/mem.h>
+ 
+ void quicktime_init_video_codec_ffmpeg(quicktime_codec_t * codec,
+                                        quicktime_video_map_t *vtrack,
+diff -Naur a/plugins/ffmpeg/lqt_ffmpeg.c b/plugins/ffmpeg/lqt_ffmpeg.c
+--- a/plugins/ffmpeg/lqt_ffmpeg.c	2012-02-15 19:48:30.000000000 +0000
++++ b/plugins/ffmpeg/lqt_ffmpeg.c	2018-05-11 23:15:07.583985628 +0100
+@@ -386,7 +386,7 @@
+ struct CODECIDMAP codecidmap_v[] =
+   {
+     {
+-      .id = CODEC_ID_MPEG1VIDEO,
++      .id = AV_CODEC_ID_MPEG1VIDEO,
+       .index = -1,
+       .encoder = NULL,
+       .decoder = NULL,
+@@ -397,7 +397,7 @@
+       .wav_ids = { LQT_WAV_ID_NONE }
+     },
+     {
+-      .id = CODEC_ID_MPEG4,
++      .id = AV_CODEC_ID_MPEG4,
+       .index = -1,
+       .encoder = NULL,
+       .decoder = NULL,
+@@ -415,7 +415,7 @@
+       .compression_id = LQT_COMPRESSION_MPEG4_ASP,
+     },
+     {
+-      .id = CODEC_ID_MSMPEG4V1,
++      .id = AV_CODEC_ID_MSMPEG4V1,
+       .index = -1,
+       .encoder = NULL,
+       .decoder = NULL,
+@@ -426,7 +426,7 @@
+       .wav_ids = { LQT_WAV_ID_NONE },
+     },
+     {
+-      .id = CODEC_ID_MSMPEG4V2,
++      .id = AV_CODEC_ID_MSMPEG4V2,
+       .index = -1,
+       .encoder = NULL,
+       .decoder = NULL,
+@@ -437,7 +437,7 @@
+       .wav_ids = { LQT_WAV_ID_NONE },
+     },
+     {
+-      .id = CODEC_ID_MSMPEG4V3,
++      .id = AV_CODEC_ID_MSMPEG4V3,
+       .index = -1,
+       .encoder = NULL,
+       .decoder = NULL,
+@@ -453,7 +453,7 @@
+       .do_encode = 1,
+     },
+     {
+-      .id = CODEC_ID_MSMPEG4V3,
++      .id = AV_CODEC_ID_MSMPEG4V3,
+       .index = -1,
+       .encoder = NULL,
+       .decoder = NULL,
+@@ -468,7 +468,7 @@
+     },
+ #if 0
+     {
+-      .id = CODEC_ID_WMV1,
++      .id = AV_CODEC_ID_WMV1,
+       .index = -1,
+       .encoder = NULL,
+       .decoder = NULL,
+@@ -481,7 +481,7 @@
+     },
+ #endif
+     {
+-      .id = CODEC_ID_H263,
++      .id = AV_CODEC_ID_H263,
+       .index = -1,
+       .encoder = NULL,
+       .decoder = NULL,
+@@ -493,7 +493,7 @@
+       .compatibility_flags = LQT_FILE_QT_OLD | LQT_FILE_QT | LQT_FILE_MP4 | LQT_FILE_3GP,
+     },
+     {
+-      .id = CODEC_ID_H263,
++      .id = AV_CODEC_ID_H263,
+       .index = -1,
+       .encoder = NULL,
+       .decoder = NULL,
+@@ -508,7 +508,7 @@
+       .do_encode = 1,
+     },
+     {
+-      .id = CODEC_ID_H264,
++      .id = AV_CODEC_ID_H264,
+       .index = -1,
+       .encoder = NULL,
+       .decoder = NULL,
+@@ -519,7 +519,7 @@
+       .wav_ids = { LQT_WAV_ID_NONE },
+     },
+     {
+-      .id = CODEC_ID_H263P,
++      .id = AV_CODEC_ID_H263P,
+       .index = -1,
+       .encoder = NULL,
+       .decoder = NULL,
+@@ -533,7 +533,7 @@
+       .do_encode = 1,
+     },
+     {
+-      .id = CODEC_ID_H263I,
++      .id = AV_CODEC_ID_H263I,
+       .index = -1,
+       .encoder = NULL,
+       .decoder = NULL,
+@@ -544,7 +544,7 @@
+       .wav_ids = { LQT_WAV_ID_NONE },
+     },
+     {
+-      .id = CODEC_ID_SVQ1,
++      .id = AV_CODEC_ID_SVQ1,
+       .index = -1,
+       .encoder = NULL,
+       .decoder = NULL,
+@@ -555,7 +555,7 @@
+       .wav_ids = { LQT_WAV_ID_NONE },
+     },
+     {
+-      .id = CODEC_ID_SVQ3,
++      .id = AV_CODEC_ID_SVQ3,
+       .index = -1,
+       .encoder = NULL,
+       .decoder = NULL,
+@@ -566,7 +566,7 @@
+       .wav_ids = { LQT_WAV_ID_NONE },
+     },
+     {
+-      .id = CODEC_ID_MJPEG,
++      .id = AV_CODEC_ID_MJPEG,
+       .index = -1,
+       .encoder = NULL,
+       .decoder = NULL,
+@@ -580,7 +580,7 @@
+       .do_encode = 1,
+     },
+     {
+-      .id = CODEC_ID_MJPEGB,
++      .id = AV_CODEC_ID_MJPEGB,
+       .index = -1,
+       .encoder = NULL,
+       .decoder = NULL,
+@@ -594,7 +594,7 @@
+     },
+ #if LIBAVCODEC_BUILD >= 3346688
+     {
+-      .id = CODEC_ID_TARGA,
++      .id = AV_CODEC_ID_TARGA,
+       .index = -1,
+       .encoder = NULL,
+       .decoder = NULL,
+@@ -606,7 +606,7 @@
+ #endif
+ #if LIBAVCODEC_BUILD >= 3347456
+     {
+-      .id = CODEC_ID_TIFF,
++      .id = AV_CODEC_ID_TIFF,
+       .index = -1,
+       .encoder = NULL,
+       .decoder = NULL,
+@@ -617,7 +617,7 @@
+     },
+ #endif
+     {
+-      .id = CODEC_ID_8BPS,
++      .id = AV_CODEC_ID_8BPS,
+       .index = -1,
+       .encoder = NULL,
+       .decoder = NULL,
+@@ -627,7 +627,7 @@
+       .wav_ids = { LQT_WAV_ID_NONE },
+     },
+     {
+-      .id = CODEC_ID_INDEO3,
++      .id = AV_CODEC_ID_INDEO3,
+       .index = -1,
+       .encoder = NULL,
+       .decoder = NULL,
+@@ -638,7 +638,7 @@
+       .wav_ids = { LQT_WAV_ID_NONE },
+     },
+     {
+-      .id = CODEC_ID_RPZA,
++      .id = AV_CODEC_ID_RPZA,
+       .index = -1,
+       .encoder = NULL,
+       .decoder = NULL,
+@@ -648,7 +648,7 @@
+       .wav_ids = { LQT_WAV_ID_NONE },
+     },
+     {
+-      .id = CODEC_ID_SMC,
++      .id = AV_CODEC_ID_SMC,
+       .index = -1,
+       .encoder = NULL,
+       .decoder = NULL,
+@@ -658,7 +658,7 @@
+       .wav_ids = { LQT_WAV_ID_NONE },
+     },
+     {
+-      .id = CODEC_ID_CINEPAK,
++      .id = AV_CODEC_ID_CINEPAK,
+       .index = -1,
+       .encoder = NULL,
+       .decoder = NULL,
+@@ -669,7 +669,7 @@
+       .wav_ids = { LQT_WAV_ID_NONE },
+     },
+     {
+-      .id = CODEC_ID_CYUV,
++      .id = AV_CODEC_ID_CYUV,
+       .index = -1,
+       .encoder = NULL,
+       .decoder = NULL,
+@@ -680,7 +680,7 @@
+       .wav_ids = { LQT_WAV_ID_NONE },
+     },
+     {
+-      .id = CODEC_ID_QTRLE,
++      .id = AV_CODEC_ID_QTRLE,
+       .index = -1,
+       .encoder = NULL,
+       .decoder = NULL,
+@@ -693,7 +693,7 @@
+       .encoding_colormodels = (int[]){ BC_RGB888, BC_RGBA8888, LQT_COLORMODEL_NONE },
+     },
+     {
+-      .id = CODEC_ID_MSRLE,
++      .id = AV_CODEC_ID_MSRLE,
+       .index = -1,
+       .encoder = NULL,
+       .decoder = NULL,
+@@ -703,7 +703,7 @@
+       .wav_ids = { LQT_WAV_ID_NONE },
+     },
+     {
+-      .id = CODEC_ID_DVVIDEO,
++      .id = AV_CODEC_ID_DVVIDEO,
+       .index = -1,
+       .encoder = NULL,
+       .decoder = NULL,
+@@ -719,7 +719,7 @@
+       .image_sizes = image_sizes_dv,
+     },
+     {
+-      .id = CODEC_ID_DVVIDEO,
++      .id = AV_CODEC_ID_DVVIDEO,
+       .index = -1,
+       .encoder = NULL,
+       .decoder = NULL,
+@@ -735,7 +735,7 @@
+       .image_sizes = image_sizes_dv,
+     },
+     {
+-      .id = CODEC_ID_DVVIDEO,
++      .id = AV_CODEC_ID_DVVIDEO,
+       .index = -1,
+       .encoder = NULL,
+       .decoder = NULL,
+@@ -751,7 +751,7 @@
+     },
+     /* DVCPRO HD (decoding only for now) */
+     {
+-      .id = CODEC_ID_DVVIDEO,
++      .id = AV_CODEC_ID_DVVIDEO,
+       .index = -1,
+       .encoder = NULL,
+       .decoder = NULL,
+@@ -772,7 +772,7 @@
+       // .do_encode = 1
+     },
+     {
+-      .id = CODEC_ID_FFVHUFF,
++      .id = AV_CODEC_ID_FFVHUFF,
+       .index = -1,
+       .encoder = NULL,
+       .decoder = NULL,
+@@ -785,7 +785,7 @@
+       .do_encode = 1
+     },
+     {
+-      .id = CODEC_ID_FFV1,
++      .id = AV_CODEC_ID_FFV1,
+       .index = -1,
+       .encoder = NULL,
+       .decoder = NULL,
+@@ -801,7 +801,7 @@
+     },
+ #if LIBAVCODEC_BUILD >= 3352576
+     {
+-      .id = CODEC_ID_DNXHD,
++      .id = AV_CODEC_ID_DNXHD,
+       .index = -1,
+       .encoder = NULL,
+       .decoder = NULL,
+@@ -817,7 +817,7 @@
+     },
+ #endif
+     {
+-      .id = CODEC_ID_MPEG2VIDEO,
++      .id = AV_CODEC_ID_MPEG2VIDEO,
+       .index = -1,
+       .encoder = NULL,
+       .decoder = NULL,
+@@ -839,7 +839,7 @@
+ struct CODECIDMAP codecidmap_a[] =
+   {
+     {
+-      .id = CODEC_ID_MP3,
++      .id = AV_CODEC_ID_MP3,
+       .index = -1,
+       .encoder = NULL,
+       .decoder = NULL,
+@@ -851,7 +851,7 @@
+       .wav_ids = { 0x50, 0x55, LQT_WAV_ID_NONE },
+     },
+     {
+-      .id = CODEC_ID_MP2,
++      .id = AV_CODEC_ID_MP2,
+       .index = -1,
+       .encoder = NULL,
+       .decoder = NULL,
+@@ -866,7 +866,7 @@
+       .compression_id = LQT_COMPRESSION_MP2,
+     },
+     {
+-      .id = CODEC_ID_AC3,
++      .id = AV_CODEC_ID_AC3,
+       .index = -1,
+       .encoder = NULL,
+       .decoder = NULL,
+@@ -881,7 +881,7 @@
+       .compression_id = LQT_COMPRESSION_AC3,
+     },
+     {
+-      .id = CODEC_ID_QDM2,
++      .id = AV_CODEC_ID_QDM2,
+       .index = -1,
+       .encoder = NULL,
+       .decoder = NULL,
+@@ -896,7 +896,7 @@
+ #if 1
+     /* Doesn't work as long as audio chunks are not split into VBR "Samples" */
+     {
+-      .id = CODEC_ID_ALAC,
++      .id = AV_CODEC_ID_ALAC,
+       .index = -1,
+       .encoder = NULL,
+       .decoder = NULL,
+@@ -909,7 +909,7 @@
+ #if 1
+     /* Sounds ugly */
+     {
+-      .id = CODEC_ID_ADPCM_MS,
++      .id = AV_CODEC_ID_ADPCM_MS,
+       .index = -1,
+       .encoder = NULL,
+       .decoder = NULL,
+@@ -922,7 +922,7 @@
+ #if 1
+     /* Sounds ugly */
+     {
+-      .id = CODEC_ID_ADPCM_IMA_WAV,
++      .id = AV_CODEC_ID_ADPCM_IMA_WAV,
+       .index = -1,
+       .encoder = NULL,
+       .decoder = NULL,
+diff -Naur a/plugins/ffmpeg/params.c b/plugins/ffmpeg/params.c
+--- a/plugins/ffmpeg/params.c	2012-03-07 14:10:41.000000000 +0000
++++ b/plugins/ffmpeg/params.c	2018-05-11 23:11:59.803990160 +0100
+@@ -101,6 +101,17 @@
+     }                                           \
+   }
+ 
++#define PARAM_DICT_INT(name, dict_name)             \
++  {                                                 \
++  if(!strcasecmp(name, key))                        \
++    {                                               \
++    char buf[128];                                  \
++    snprintf(buf, sizeof(buf), "%d", *(int*)value); \
++    av_dict_set(options, dict_name, buf, 0);        \
++    found = 1;                                      \
++    }                                               \
++  }
++
+ #define PARAM_DICT_FLAG(name, dict_name)        \
+   {                                             \
+   if(!strcasecmp(name, key))                    \
+@@ -113,16 +124,6 @@
+   }
+ 
+ 
+-enum_t me_method[] =
+-  {
+-    { "Zero",  ME_ZERO },
+-    { "Phods", ME_PHODS },
+-    { "Log",   ME_LOG },
+-    { "X1",    ME_X1 },
+-    { "Epzs",  ME_EPZS },
+-    { "Full",  ME_FULL }
+-  };
+-
+ enum_t prediction_method[] =
+   {
+     { "Left",   FF_PRED_LEFT },
+@@ -152,15 +153,6 @@
+     { "Rate distoration",     FF_MB_DECISION_RD }
+   };
+ 
+-enum_t coder_type[] =
+-  {
+-    { "VLC",                  FF_CODER_TYPE_VLC },
+-    { "Arithmetic",           FF_CODER_TYPE_AC },
+-    { "Raw",                  FF_CODER_TYPE_RAW },
+-    { "RLE",                  FF_CODER_TYPE_RLE },
+-    { "Deflate",              FF_CODER_TYPE_DEFLATE },
+-  };
+-
+ #define PARAM_ENUM(name, var, arr) \
+   if(!strcasecmp(key, name)) \
+     { \
+@@ -192,7 +184,7 @@
+   PARAM_INT_SCALE("ff_bit_rate_audio",bit_rate,1000);
+   PARAM_INT_SCALE("ff_bit_rate_video",bit_rate,1000);
+   PARAM_INT_SCALE("ff_bit_rate_tolerance",bit_rate_tolerance,1000);
+-  PARAM_ENUM("ff_me_method",me_method,me_method);
++  PARAM_DICT_INT("ff_me_method","motion-est");
+   PARAM_INT("ff_gop_size",gop_size);
+   PARAM_FLOAT("ff_qcompress",qcompress);
+   PARAM_FLOAT("ff_qblur",qblur);
+@@ -202,17 +194,23 @@
+   PARAM_INT("ff_max_b_frames",max_b_frames);
+   PARAM_FLOAT("ff_b_quant_factor",b_quant_factor);
+   PARAM_INT("ff_b_frame_strategy",b_frame_strategy);
++
++#if LIBAVCODEC_VERSION_MAJOR >= 55
++  PARAM_DICT_INT("ff_luma_elim_threshold","luma_elim_threshold");
++  PARAM_DICT_INT("ff_chroma_elim_threshold","chroma_elim_threshold");
++#else
+   PARAM_INT("ff_luma_elim_threshold",luma_elim_threshold);
+   PARAM_INT("ff_chroma_elim_threshold",chroma_elim_threshold);
++#endif
++
+   PARAM_INT("ff_strict_std_compliance",strict_std_compliance);
+   PARAM_QP2LAMBDA("ff_b_quant_offset",b_quant_offset);
+   PARAM_INT("ff_rc_min_rate",rc_min_rate);
+   PARAM_INT("ff_rc_max_rate",rc_max_rate);
+   PARAM_INT_SCALE("ff_rc_buffer_size",rc_buffer_size,1000);
+-  PARAM_FLOAT("ff_rc_buffer_aggressivity",rc_buffer_aggressivity);
+   PARAM_FLOAT("ff_i_quant_factor",i_quant_factor);
+   PARAM_QP2LAMBDA("ff_i_quant_offset",i_quant_offset);
+-  PARAM_FLOAT("ff_rc_initial_cplx",rc_initial_cplx);
++  PARAM_DICT_INT("ff_rc_initial_cplx","rc_init_cplx");
+   PARAM_FLOAT("ff_lumi_masking",lumi_masking);
+   PARAM_FLOAT("ff_temporal_cplx_masking",temporal_cplx_masking);
+   PARAM_FLOAT("ff_spatial_cplx_masking",spatial_cplx_masking);
+@@ -237,58 +235,68 @@
+   PARAM_INT("ff_me_range",me_range);
+   PARAM_ENUM("ff_mb_decision",mb_decision,mb_decision);
+   PARAM_INT("ff_scenechange_threshold",scenechange_threshold);
+-  PARAM_QP2LAMBDA("ff_lmin", lmin);
+-  PARAM_QP2LAMBDA("ff_lmax", lmax);
++  PARAM_DICT_INT("ff_lmin", "lmin");
++  PARAM_DICT_INT("ff_lmax", "lmax");
+   PARAM_INT("ff_noise_reduction",noise_reduction);
+   PARAM_INT_SCALE("ff_rc_initial_buffer_occupancy",rc_initial_buffer_occupancy,1000);
++
++#if LIBAVCODEC_VERSION_MAJOR >= 55
++  PARAM_DICT_INT("ff_inter_threshold","inter_threshold");
++  PARAM_DICT_INT("ff_quantizer_noise_shaping","quantizer_noise_shaping");
++#else
+   PARAM_INT("ff_inter_threshold",inter_threshold);
+   PARAM_INT("ff_quantizer_noise_shaping",quantizer_noise_shaping);
++#endif
++
+   PARAM_INT("ff_thread_count",thread_count);
+-  PARAM_INT("ff_me_threshold",me_threshold);
+-  PARAM_INT("ff_mb_threshold",mb_threshold);
+   PARAM_INT("ff_nsse_weight",nsse_weight);
+-  PARAM_FLOAT("ff_border_masking",border_masking);
++  PARAM_DICT_INT("ff_border_masking","border_mask");
+   PARAM_QP2LAMBDA("ff_mb_lmin", mb_lmin);
+   PARAM_QP2LAMBDA("ff_mb_lmax", mb_lmax);
+   PARAM_INT("ff_me_penalty_compensation",me_penalty_compensation);
+   PARAM_INT("ff_bidir_refine",bidir_refine);
+   PARAM_INT("ff_brd_scale",brd_scale);
+-  PARAM_INT("ff_scenechange_factor",scenechange_factor);
+-  PARAM_FLAG("ff_flag_qscale",CODEC_FLAG_QSCALE);
+-  PARAM_FLAG("ff_flag_4mv",CODEC_FLAG_4MV);
+-  PARAM_FLAG("ff_flag_qpel",CODEC_FLAG_QPEL);
+-  PARAM_FLAG("ff_flag_gmc",CODEC_FLAG_GMC);
+-  PARAM_FLAG("ff_flag_mv0",CODEC_FLAG_MV0);
++  PARAM_FLAG("ff_flag_qscale",AV_CODEC_FLAG_QSCALE);
++  PARAM_FLAG("ff_flag_4mv",AV_CODEC_FLAG_4MV);
++  PARAM_FLAG("ff_flag_qpel",AV_CODEC_FLAG_QPEL);
++  PARAM_DICT_FLAG("ff_flag_gmc","gmc");
++  PARAM_DICT_FLAG("ff_flag_mv0","mpv_flags");
+   //  PARAM_FLAG("ff_flag_part",CODEC_FLAG_PART); // Unused
+-  PARAM_FLAG("ff_flag_gray",CODEC_FLAG_GRAY);
+-  PARAM_FLAG("ff_flag_emu_edge",CODEC_FLAG_EMU_EDGE);
+-  PARAM_FLAG("ff_flag_normalize_aqp",CODEC_FLAG_NORMALIZE_AQP);
++  PARAM_FLAG("ff_flag_gray",AV_CODEC_FLAG_GRAY);
++  PARAM_DICT_FLAG("ff_flag_normalize_aqp","naq");
+   //  PARAM_FLAG("ff_flag_alt_scan",CODEC_FLAG_ALT_SCAN); // Unused
+ #if LIBAVCODEC_VERSION_INT < ((52<<16)+(0<<8)+0)
+   PARAM_FLAG("ff_flag_trellis_quant",CODEC_FLAG_TRELLIS_QUANT);
+ #else
+   PARAM_INT("ff_trellis",trellis);
+ #endif
+-  PARAM_FLAG("ff_flag_bitexact",CODEC_FLAG_BITEXACT);
+-  PARAM_FLAG("ff_flag_ac_pred",CODEC_FLAG_AC_PRED);
++  PARAM_FLAG("ff_flag_bitexact",AV_CODEC_FLAG_BITEXACT);
++  PARAM_FLAG("ff_flag_ac_pred",AV_CODEC_FLAG_AC_PRED);
+   //  PARAM_FLAG("ff_flag_h263p_umv",CODEC_FLAG_H263P_UMV); // Unused
+-  PARAM_FLAG("ff_flag_cbp_rd",CODEC_FLAG_CBP_RD);
+-  PARAM_FLAG("ff_flag_qp_rd",CODEC_FLAG_QP_RD);
++
++#if LIBAVCODEC_VERSION_MAJOR >= 55
++  PARAM_DICT_FLAG("ff_flag_cbp_rd","cbp_rd");
++  PARAM_DICT_FLAG("ff_flag_qp_rd","qp_rd");
++  PARAM_DICT_FLAG("ff_flag2_strict_gop","strict_gop");
++#else
++  PARAM_FLAG("ff_flag_cbp_rd",AV_CODEC_FLAG_CBP_RD);
++  PARAM_FLAG("ff_flag_qp_rd",AV_CODEC_FLAG_QP_RD);
++  PARAM_FLAG2("ff_flag2_strict_gop",AV_CODEC_FLAG2_STRICT_GOP);
++#endif
+ 
+ #if LIBAVCODEC_VERSION_MAJOR >= 54
+   PARAM_DICT_FLAG("ff_flag_h263p_aiv", "aiv");
+   PARAM_DICT_FLAG("ff_flag_obmc","obmc");
+   PARAM_DICT_FLAG("ff_flag_h263p_slice_struct","structured_slices");
+ #else
+-  PARAM_FLAG("ff_flag_h263p_aiv",CODEC_FLAG_H263P_AIV);
+-  PARAM_FLAG("ff_flag_obmc",CODEC_FLAG_OBMC);
+-  PARAM_FLAG("ff_flag_h263p_slice_struct",CODEC_FLAG_H263P_SLICE_STRUCT);
++  PARAM_FLAG("ff_flag_h263p_aiv",AV_CODEC_FLAG_H263P_AIV);
++  PARAM_FLAG("ff_flag_obmc",AV_CODEC_FLAG_OBMC);
++  PARAM_FLAG("ff_flag_h263p_slice_struct",AV_CODEC_FLAG_H263P_SLICE_STRUCT);
+ #endif
+ 
+-  PARAM_FLAG("ff_flag_loop_filter",CODEC_FLAG_LOOP_FILTER);
+-  PARAM_FLAG("ff_flag_closed_gop",CODEC_FLAG_CLOSED_GOP);
+-  PARAM_FLAG2("ff_flag2_fast",CODEC_FLAG2_FAST);
+-  PARAM_FLAG2("ff_flag2_strict_gop",CODEC_FLAG2_STRICT_GOP);
+-  PARAM_ENUM("ff_coder_type",coder_type,coder_type);
++  PARAM_FLAG("ff_flag_loop_filter",AV_CODEC_FLAG_LOOP_FILTER);
++  PARAM_FLAG("ff_flag_closed_gop",AV_CODEC_FLAG_CLOSED_GOP);
++  PARAM_FLAG2("ff_flag2_fast",AV_CODEC_FLAG2_FAST);
++  PARAM_DICT_INT("ff_coder_type","coder");
+   
+   }
+diff -Naur a/plugins/ffmpeg/params.h b/plugins/ffmpeg/params.h
+--- a/plugins/ffmpeg/params.h	2011-05-11 16:13:39.000000000 +0100
++++ b/plugins/ffmpeg/params.h	2018-05-11 23:11:59.803990160 +0100
+@@ -149,7 +149,7 @@
+     .type =        LQT_PARAMETER_INT, \
+     .val_default = { .val_int = 0 }, \
+     .val_min =     { .val_int = 0 }, \
+-    .val_max =     { .val_int = FF_MAX_B_FRAMES }, \
++    .val_max =     { .val_int = 16 }, \
+     .help_string = TRS("Maximum number of B-frames between non B-frames") \
+   }
+ 
+diff -Naur a/plugins/ffmpeg/video.c b/plugins/ffmpeg/video.c
+--- a/plugins/ffmpeg/video.c	2012-02-25 19:46:56.000000000 +0000
++++ b/plugins/ffmpeg/video.c	2018-05-11 23:15:15.697985432 +0100
+@@ -37,10 +37,10 @@
+ #endif
+ 
+ 
+-#ifdef  PIX_FMT_YUV422P10
+-#define PIX_FMT_YUV422P10_OR_DUMMY PIX_FMT_YUV422P10
++#ifdef  AV_PIX_FMT_YUV422P10
++#define AV_PIX_FMT_YUV422P10_OR_DUMMY AV_PIX_FMT_YUV422P10
+ #else
+-#define PIX_FMT_YUV422P10_OR_DUMMY -1234
++#define AV_PIX_FMT_YUV422P10_OR_DUMMY -1234
+ #endif
+ 
+ #if LIBAVCODEC_VERSION_INT >= ((54<<16)|(1<<8)|0)
+@@ -90,9 +90,9 @@
+   int imx_bitrate;
+   int imx_strip_vbi;
+ 
+-  /* In some cases FFMpeg would report something like PIX_FMT_YUV422P, while
+-     we would like to treat it as PIX_FMT_YUVJ422P. It's only used for decoding */
+-  enum PixelFormat reinterpret_pix_fmt;
++  /* In some cases FFMpeg would report something like AV_PIX_FMT_YUV422P, while
++     we would like to treat it as AV_PIX_FMT_YUVJ422P. It's only used for decoding */
++  enum AVPixelFormat reinterpret_pix_fmt;
+   
+   int is_imx;
+   int y_offset;
+@@ -137,42 +137,42 @@
+ 
+ static const struct
+   {
+-  enum PixelFormat ffmpeg_id;
++  enum AVPixelFormat ffmpeg_id;
+   int              lqt_id;
+   int              exact;
+   }
+ colormodels[] =
+   {
+-    { PIX_FMT_YUV420P,   BC_YUV420P,   1 }, ///< Planar YUV 4:2:0 (1 Cr & Cb sample per 2x2 Y samples)
++    { AV_PIX_FMT_YUV420P,   BC_YUV420P,   1 }, ///< Planar YUV 4:2:0 (1 Cr & Cb sample per 2x2 Y samples)
+ #if LIBAVUTIL_VERSION_INT < (50<<16)
+-    { PIX_FMT_YUV422,    BC_YUV422,    1 },
++    { AV_PIX_FMT_YUV422,    BC_YUV422,    1 },
+ #else
+-    { PIX_FMT_YUYV422,   BC_YUV422,    1 },
++    { AV_PIX_FMT_YUYV422,   BC_YUV422,    1 },
+ #endif
+-    { PIX_FMT_RGB24,     BC_RGB888,    1 }, ///< Packed pixel, 3 bytes per pixel, RGBRGB...
+-    { PIX_FMT_BGR24,     BC_BGR888,    1 }, ///< Packed pixel, 3 bytes per pixel, BGRBGR...
+-    { PIX_FMT_YUV422P,   BC_YUV422P,   1 }, ///< Planar YUV 4:2:2 (1 Cr & Cb sample per 2x1 Y samples)
+-    { PIX_FMT_YUV444P,   BC_YUV444P,   1 }, ///< Planar YUV 4:4:4 (1 Cr & Cb sample per 1x1 Y samples)
+-    { PIX_FMT_YUV411P,   BC_YUV411P,   1 }, ///< Planar YUV 4:1:1 (1 Cr & Cb sample per 4x1 Y samples)
+-    { PIX_FMT_YUV422P16, BC_YUV422P16, 1 }, ///< Planar 16 bit YUV 4:2:2 (1 Cr & Cb sample per 2x1 Y samples)
+-#ifdef PIX_FMT_YUV422P10
+-    { PIX_FMT_YUV422P10, BC_YUV422P10, 1 }, ///< 10 bit samples in uint16_t containers, planar 4:2:2
+-#endif
+-    { PIX_FMT_RGB565,    BC_RGB565,    1 }, ///< always stored in cpu endianness
+-    { PIX_FMT_YUVJ420P,  BC_YUVJ420P,  1 }, ///< Planar YUV 4:2:0 full scale (jpeg)
+-    { PIX_FMT_YUVJ422P,  BC_YUVJ422P,  1 }, ///< Planar YUV 4:2:2 full scale (jpeg)
+-    { PIX_FMT_YUVJ444P,  BC_YUVJ444P,  1 }, ///< Planar YUV 4:4:4 full scale (jpeg)
++    { AV_PIX_FMT_RGB24,     BC_RGB888,    1 }, ///< Packed pixel, 3 bytes per pixel, RGBRGB...
++    { AV_PIX_FMT_BGR24,     BC_BGR888,    1 }, ///< Packed pixel, 3 bytes per pixel, BGRBGR...
++    { AV_PIX_FMT_YUV422P,   BC_YUV422P,   1 }, ///< Planar YUV 4:2:2 (1 Cr & Cb sample per 2x1 Y samples)
++    { AV_PIX_FMT_YUV444P,   BC_YUV444P,   1 }, ///< Planar YUV 4:4:4 (1 Cr & Cb sample per 1x1 Y samples)
++    { AV_PIX_FMT_YUV411P,   BC_YUV411P,   1 }, ///< Planar YUV 4:1:1 (1 Cr & Cb sample per 4x1 Y samples)
++    { AV_PIX_FMT_YUV422P16, BC_YUV422P16, 1 }, ///< Planar 16 bit YUV 4:2:2 (1 Cr & Cb sample per 2x1 Y samples)
++#ifdef AV_PIX_FMT_YUV422P10
++    { AV_PIX_FMT_YUV422P10, BC_YUV422P10, 1 }, ///< 10 bit samples in uint16_t containers, planar 4:2:2
++#endif
++    { AV_PIX_FMT_RGB565,    BC_RGB565,    1 }, ///< always stored in cpu endianness
++    { AV_PIX_FMT_YUVJ420P,  BC_YUVJ420P,  1 }, ///< Planar YUV 4:2:0 full scale (jpeg)
++    { AV_PIX_FMT_YUVJ422P,  BC_YUVJ422P,  1 }, ///< Planar YUV 4:2:2 full scale (jpeg)
++    { AV_PIX_FMT_YUVJ444P,  BC_YUVJ444P,  1 }, ///< Planar YUV 4:4:4 full scale (jpeg)
+ #if LIBAVUTIL_VERSION_INT < (50<<16)
+-    { PIX_FMT_RGBA32,    BC_RGBA8888,  0 }, ///< Packed pixel, 4 bytes per pixel, BGRABGRA...
++    { AV_PIX_FMT_RGBA32,    BC_RGBA8888,  0 }, ///< Packed pixel, 4 bytes per pixel, BGRABGRA...
+ #else
+-    { PIX_FMT_RGB32,     BC_RGBA8888,  0 }, ///< Packed pixel, 4 bytes per pixel, BGRABGRA...
++    { AV_PIX_FMT_RGB32,     BC_RGBA8888,  0 }, ///< Packed pixel, 4 bytes per pixel, BGRABGRA...
+ #endif
+-    { PIX_FMT_RGB555,    BC_RGB888,    0 }, ///< always stored in cpu endianness, most significant bit to 1
+-    { PIX_FMT_GRAY8,     BC_RGB888,    0 },
+-    { PIX_FMT_MONOWHITE, BC_RGB888,    0 }, ///< 0 is white
+-    { PIX_FMT_MONOBLACK, BC_RGB888,    0 }, ///< 0 is black
+-    { PIX_FMT_PAL8,      BC_RGB888,    0 }, ///< 8 bit with RGBA palette
+-    { PIX_FMT_YUV410P,   BC_YUV420P,   0 }, ///< Planar YUV 4:1:0 (1 Cr & Cb sample per 4x4 Y samples)
++    { AV_PIX_FMT_RGB555,    BC_RGB888,    0 }, ///< always stored in cpu endianness, most significant bit to 1
++    { AV_PIX_FMT_GRAY8,     BC_RGB888,    0 },
++    { AV_PIX_FMT_MONOWHITE, BC_RGB888,    0 }, ///< 0 is white
++    { AV_PIX_FMT_MONOBLACK, BC_RGB888,    0 }, ///< 0 is black
++    { AV_PIX_FMT_PAL8,      BC_RGB888,    0 }, ///< 8 bit with RGBA palette
++    { AV_PIX_FMT_YUV410P,   BC_YUV420P,   0 }, ///< Planar YUV 4:1:0 (1 Cr & Cb sample per 4x4 Y samples)
+   };
+ 
+ static const struct
+@@ -343,16 +343,16 @@
+   if (!codec->pix_fmts)
+     return 0;
+ 
+-  for (i = 0; codec->pix_fmts[i] != PIX_FMT_NONE; ++i)
++  for (i = 0; codec->pix_fmts[i] != AV_PIX_FMT_NONE; ++i)
+     {
+-    if (codec->pix_fmts[i] == PIX_FMT_YUV422P10_OR_DUMMY)
++    if (codec->pix_fmts[i] == AV_PIX_FMT_YUV422P10_OR_DUMMY)
+       return 1;
+     }
+ 
+   return 0;
+   }
+ 
+-static enum PixelFormat lqt_ffmpeg_get_ffmpeg_colormodel(int id)
++static enum AVPixelFormat lqt_ffmpeg_get_ffmpeg_colormodel(int id)
+   {
+   int i;
+ 
+@@ -361,10 +361,10 @@
+     if(colormodels[i].lqt_id == id)
+       return colormodels[i].ffmpeg_id;
+     }
+-  return PIX_FMT_NB;
++  return AV_PIX_FMT_NB;
+   }
+ 
+-static int lqt_ffmpeg_get_lqt_colormodel(enum PixelFormat id, int * exact)
++static int lqt_ffmpeg_get_lqt_colormodel(enum AVPixelFormat id, int * exact)
+   {
+   int i;
+ 
+@@ -400,26 +400,26 @@
+   codec->reinterpret_pix_fmt = codec->avctx->pix_fmt;
+ 
+   /* First we try codec-specific colormodel matching. */
+-  if(codec->decoder->id == CODEC_ID_DNXHD)
++  if(codec->decoder->id == AV_CODEC_ID_DNXHD)
+     {
+-    /* FFMpeg supports PIX_FMT_YUV422P and PIX_FMT_YUV422P10 for DNxHD, which
+-       we sometimes interpret as PIX_FMT_YUVJ422P and PIX_FMT_YUVJ422P10. */
+-    if (codec->avctx->pix_fmt == PIX_FMT_YUV422P || codec->avctx->pix_fmt == PIX_FMT_YUV422P10_OR_DUMMY)
++    /* FFMpeg supports AV_PIX_FMT_YUV422P and AV_PIX_FMT_YUV422P10 for DNxHD, which
++       we sometimes interpret as AV_PIX_FMT_YUVJ422P and AV_PIX_FMT_YUVJ422P10. */
++    if (codec->avctx->pix_fmt == AV_PIX_FMT_YUV422P || codec->avctx->pix_fmt == AV_PIX_FMT_YUV422P10_OR_DUMMY)
+       {
+-      int p10 = (codec->avctx->pix_fmt == PIX_FMT_YUV422P10_OR_DUMMY);
++      int p10 = (codec->avctx->pix_fmt == AV_PIX_FMT_YUV422P10_OR_DUMMY);
+       *exact = 1;
+       if (lqt_ffmpeg_get_avid_yuv_range(vtrack->track) == AVID_FULL_YUV_RANGE)
+         {
+         vtrack->stream_cmodel = p10 ? BC_YUVJ422P10 : BC_YUVJ422P;
+-        codec->reinterpret_pix_fmt = p10 ? PIX_FMT_YUV422P10_OR_DUMMY : PIX_FMT_YUVJ422P;
+-        // Note: reinterpret_pix_fmt should really be PIX_FMT_YUVJ422P10, except
++        codec->reinterpret_pix_fmt = p10 ? AV_PIX_FMT_YUV422P10_OR_DUMMY : AV_PIX_FMT_YUVJ422P;
++        // Note: reinterpret_pix_fmt should really be AV_PIX_FMT_YUVJ422P10, except
+         // there is no such colormodel in FFMpeg. Fortunately, it's not a problem
+         // in this case, as reinterpret_pix_fmt is only used when *exact == 0.
+         }
+       else
+         {
+         vtrack->stream_cmodel = p10 ? BC_YUV422P10 : BC_YUV422P;
+-        codec->reinterpret_pix_fmt = p10 ? PIX_FMT_YUV422P10_OR_DUMMY : PIX_FMT_YUV422P;
++        codec->reinterpret_pix_fmt = p10 ? AV_PIX_FMT_YUV422P10_OR_DUMMY : AV_PIX_FMT_YUV422P;
+         }
+       return;
+       }
+@@ -438,16 +438,16 @@
+   quicktime_ffmpeg_video_codec_t *codec = vtrack->codec->priv;
+   codec->avctx->pix_fmt = lqt_ffmpeg_get_ffmpeg_colormodel(vtrack->stream_cmodel);
+ 
+-  if (codec->encoder->id == CODEC_ID_DNXHD)
++  if (codec->encoder->id == AV_CODEC_ID_DNXHD)
+     {
+-    /* FFMpeg's DNxHD encoder only supports PIX_FMT_YUV422P and PIX_FMT_YUV422P10
+-       and doesn't know anything about PIX_FMT_YUVJ422P and PIX_FMT_YUVJ422P10
++    /* FFMpeg's DNxHD encoder only supports AV_PIX_FMT_YUV422P and AV_PIX_FMT_YUV422P10
++       and doesn't know anything about AV_PIX_FMT_YUVJ422P and AV_PIX_FMT_YUVJ422P10
+        (in fact, the latter doesn't even exist) */
+-    codec->avctx->pix_fmt = PIX_FMT_YUV422P;
++    codec->avctx->pix_fmt = AV_PIX_FMT_YUV422P;
+     if (vtrack->stream_cmodel == BC_YUV422P10 || vtrack->stream_cmodel == BC_YUVJ422P10)
+       {
+       if (lqt_tenbit_dnxhd_supported(codec->encoder))
+-        codec->avctx->pix_fmt = PIX_FMT_YUV422P10_OR_DUMMY;
++        codec->avctx->pix_fmt = AV_PIX_FMT_YUV422P10_OR_DUMMY;
+       }
+     }
+   }
+@@ -458,7 +458,7 @@
+ /* From avcodec.h: */
+ 
+ /*
+- * PIX_FMT_RGBA32 is handled in an endian-specific manner. A RGBA
++ * AV_PIX_FMT_RGBA32 is handled in an endian-specific manner. A RGBA
+  * color is put together as:
+  *  (A << 24) | (R << 16) | (G << 8) | B
+  * This is stored as BGRA on little endian CPU architectures and ARGB on
+@@ -530,7 +530,7 @@
+  */
+ 
+ static void convert_image_decode(quicktime_ffmpeg_video_codec_t *codec,
+-                                 AVFrame * in_frame, enum PixelFormat in_format,
++                                 AVFrame * in_frame, enum AVPixelFormat in_format,
+                                  unsigned char ** out_frame, int out_format,
+                                  int width, int height, int row_span, int row_span_uv)
+   {
+@@ -547,9 +547,9 @@
+    *  RGBA format like in ffmpeg??
+    */
+ #if LIBAVUTIL_VERSION_INT < (50<<16)
+-  if((in_format == PIX_FMT_RGBA32) && (out_format == BC_RGBA8888))
++  if((in_format == AV_PIX_FMT_RGBA32) && (out_format == BC_RGBA8888))
+ #else
+-    if((in_format == PIX_FMT_RGB32) && (out_format == BC_RGBA8888))
++    if((in_format == AV_PIX_FMT_RGB32) && (out_format == BC_RGBA8888))
+ #endif
+       {
+       convert_image_decode_rgba(in_frame, out_frame, width, height, codec->y_offset);
+@@ -728,13 +728,13 @@
+ 
+     /* Set extradata: It's done differently for each codec */
+ 
+-    if(codec->decoder->id == CODEC_ID_SVQ3)
++    if(codec->decoder->id == AV_CODEC_ID_SVQ3)
+       {
+       extradata       = trak->mdia.minf.stbl.stsd.table[0].table_raw + 4;
+       extradata_size  = trak->mdia.minf.stbl.stsd.table[0].table_raw_size - 4;
+       
+       }
+-    else if(codec->decoder->id == CODEC_ID_H264)
++    else if(codec->decoder->id == AV_CODEC_ID_H264)
+       {
+       user_atom = quicktime_stsd_get_user_atom(trak, "avcC", &user_atom_len);
+ 
+@@ -753,7 +753,7 @@
+         }
+       
+       }
+-    else if(codec->decoder->id == CODEC_ID_MPEG4)
++    else if(codec->decoder->id == AV_CODEC_ID_MPEG4)
+       {
+       if(trak->mdia.minf.stbl.stsd.table[0].has_esds)
+         {
+@@ -781,7 +781,7 @@
+     if(extradata)
+       {
+       codec->extradata =
+-        calloc(1, extradata_size + FF_INPUT_BUFFER_PADDING_SIZE);
++        calloc(1, extradata_size + AV_INPUT_BUFFER_PADDING_SIZE);
+       memcpy(codec->extradata, extradata, extradata_size);
+       codec->avctx->extradata_size = extradata_size;
+       codec->avctx->extradata = codec->extradata;
+@@ -829,7 +829,7 @@
+     if(avcodec_open2(codec->avctx, codec->decoder, NULL) != 0)
+       return -1;
+ #endif
+-    codec->frame = avcodec_alloc_frame();
++    codec->frame = av_frame_alloc();
+     vtrack->stream_cmodel = LQT_COLORMODEL_NONE;
+     codec->initialized = 1;
+     }
+@@ -929,10 +929,10 @@
+ #ifdef HAVE_LIBSWSCALE
+ 
+ #if LIBAVUTIL_VERSION_INT < (50<<16)
+-      if(!((codec->avctx->pix_fmt == PIX_FMT_RGBA32) &&
++      if(!((codec->avctx->pix_fmt == AV_PIX_FMT_RGBA32) &&
+            (vtrack->stream_cmodel == BC_RGBA8888)))
+ #else
+-        if(!((codec->avctx->pix_fmt == PIX_FMT_RGB32) &&
++        if(!((codec->avctx->pix_fmt == AV_PIX_FMT_RGB32) &&
+              (vtrack->stream_cmodel == BC_RGBA8888)))
+ #endif
+           {
+@@ -947,15 +947,15 @@
+           }
+ #endif
+       }
+-    if(codec->decoder->id == CODEC_ID_DVVIDEO)
++    if(codec->decoder->id == AV_CODEC_ID_DVVIDEO)
+       {
+       if(vtrack->stream_cmodel == BC_YUV420P)
+         vtrack->chroma_placement = LQT_CHROMA_PLACEMENT_DVPAL;
+       vtrack->interlace_mode = LQT_INTERLACE_BOTTOM_FIRST;
+       vtrack->ci.id = LQT_COMPRESSION_DV;
+       }
+-    else if((codec->decoder->id == CODEC_ID_MPEG4) ||
+-            (codec->decoder->id == CODEC_ID_H264))
++    else if((codec->decoder->id == AV_CODEC_ID_MPEG4) ||
++            (codec->decoder->id == AV_CODEC_ID_H264))
+       {
+       if(vtrack->stream_cmodel == BC_YUV420P)
+         vtrack->chroma_placement = LQT_CHROMA_PLACEMENT_MPEG2;
+@@ -1140,8 +1140,8 @@
+   codec->avctx->qmin = 1;
+   codec->avctx->qmax = 3;
+   codec->avctx->rtp_payload_size = 1; // ??
+-  codec->avctx->rc_buffer_aggressivity = 0.25;
+-  codec->avctx->flags |= CODEC_FLAG_INTERLACED_DCT|CODEC_FLAG_LOW_DELAY;
++  av_dict_set(&codec->options, "rc_buf_aggressivity", "0.25", 0);
++  codec->avctx->flags |= AV_CODEC_FLAG_INTERLACED_DCT|AV_CODEC_FLAG_LOW_DELAY;
+ 
+ #if (LIBAVCODEC_VERSION_MAJOR < 54)
+   codec->avctx->flags2 |= CODEC_FLAG2_INTRA_VLC|CODEC_FLAG2_NON_LINEAR_QUANT;
+@@ -1299,13 +1299,13 @@
+     {
+     if(vtrack->stream_cmodel == BC_YUV420P)
+       {
+-      if(codec->encoder->id == CODEC_ID_MPEG4)
++      if(codec->encoder->id == AV_CODEC_ID_MPEG4)
+         {
+         vtrack->chroma_placement = LQT_CHROMA_PLACEMENT_MPEG2;
+         /* enable interlaced encoding */
+         vtrack->interlace_mode = LQT_INTERLACE_NONE;
+         }
+-      else if(codec->encoder->id == CODEC_ID_DVVIDEO)
++      else if(codec->encoder->id == AV_CODEC_ID_DVVIDEO)
+         {
+         vtrack->chroma_placement = LQT_CHROMA_PLACEMENT_DVPAL;
+         }
+@@ -1318,7 +1318,7 @@
+         
+   if(!codec->initialized)
+     {
+-    codec->frame = avcodec_alloc_frame();
++    codec->frame = av_frame_alloc();
+ 
+     /* time_base is 1/framerate for constant framerate */
+           
+@@ -1328,7 +1328,7 @@
+     //          codec->avctx->time_base.den = 1;
+     //          codec->avctx->time_base.num = lqt_video_time_scale(file, track);
+ 
+-    if(codec->avctx->flags & CODEC_FLAG_QSCALE)
++    if(codec->avctx->flags & AV_CODEC_FLAG_QSCALE)
+       codec->avctx->global_quality = codec->qscale;
+                               
+     codec->avctx->width = width;
+@@ -1340,11 +1340,11 @@
+     codec->avctx->sample_aspect_ratio.num = pixel_width;
+     codec->avctx->sample_aspect_ratio.den = pixel_height;
+     /* Use global headers for mp4v */
+-    if(codec->encoder->id == CODEC_ID_MPEG4)
++    if(codec->encoder->id == AV_CODEC_ID_MPEG4)
+       {
+       if(!(file->file_type & (LQT_FILE_AVI|LQT_FILE_AVI_ODML)))
+         {
+-        codec->avctx->flags |= CODEC_FLAG_GLOBAL_HEADER;
++        codec->avctx->flags |= AV_CODEC_FLAG_GLOBAL_HEADER;
+         codec->write_global_header = 1;
+         }
+             
+@@ -1360,16 +1360,16 @@
+         {
+         lqt_log(file, LQT_LOG_INFO, LOG_DOMAIN, "Enabling interlaced encoding");
+         codec->avctx->flags |=
+-          (CODEC_FLAG_INTERLACED_DCT|CODEC_FLAG_INTERLACED_ME|CODEC_FLAG_ALT_SCAN);
++          (AV_CODEC_FLAG_INTERLACED_DCT|AV_CODEC_FLAG_INTERLACED_ME|AV_CODEC_FLAG_ALT_SCAN);
+         }
+ #endif
+       }
+-    else if((codec->encoder->id == CODEC_ID_MSMPEG4V3) && (trak->strl) &&
++    else if((codec->encoder->id == AV_CODEC_ID_MSMPEG4V3) && (trak->strl) &&
+             !strncmp(trak->strl->strf.bh.biCompression, "DIV3", 4))
+       {
+       strncpy(trak->strl->strh.fccHandler, "div3", 4);
+       }
+-    else if((codec->encoder->id == CODEC_ID_H263) &&
++    else if((codec->encoder->id == AV_CODEC_ID_H263) &&
+             (file->file_type & (LQT_FILE_MP4|LQT_FILE_3GP)))
+       {
+       uint8_t d263_data[] =
+@@ -1383,34 +1383,34 @@
+       strncpy(trak->mdia.minf.stbl.stsd.table[0].format,
+               "s263", 4);
+       }
+-    else if(codec->encoder->id == CODEC_ID_FFVHUFF)
++    else if(codec->encoder->id == AV_CODEC_ID_FFVHUFF)
+       {
+       if(!(file->file_type & (LQT_FILE_AVI|LQT_FILE_AVI_ODML)))
+         {
+-        codec->avctx->flags |= CODEC_FLAG_GLOBAL_HEADER;
++        codec->avctx->flags |= AV_CODEC_FLAG_GLOBAL_HEADER;
+         codec->write_global_header = 1;
+         }
+       }
+-    else if(codec->encoder->id == CODEC_ID_QTRLE)
++    else if(codec->encoder->id == AV_CODEC_ID_QTRLE)
+       {
+       if(vtrack->stream_cmodel == BC_RGBA8888)
+         {
+         /* Libquicktime doesn't natively support a color model equivalent
+-           to PIX_FMT_ARGB, which is required for QTRLE with alpha channel.
++           to AV_PIX_FMT_ARGB, which is required for QTRLE with alpha channel.
+            So, we use BC_RGBA8888 and do ad hoc conversion below. */
+-        codec->avctx->pix_fmt = PIX_FMT_ARGB;
++        codec->avctx->pix_fmt = AV_PIX_FMT_ARGB;
+         vtrack->track->mdia.minf.stbl.stsd.table[0].depth = 32;
+         }
+       }
+-    else if(codec->encoder->id == CODEC_ID_DVVIDEO)
++    else if(codec->encoder->id == AV_CODEC_ID_DVVIDEO)
+       {
+       set_dv_fourcc(width, height, vtrack->stream_cmodel, trak);
+       }
+-    else if(codec->encoder->id == CODEC_ID_DNXHD)
++    else if(codec->encoder->id == AV_CODEC_ID_DNXHD)
+       {
+       if(vtrack->interlace_mode != LQT_INTERLACE_NONE)
+         {
+-        codec->avctx->flags |= CODEC_FLAG_INTERLACED_DCT;
++        codec->avctx->flags |= AV_CODEC_FLAG_INTERLACED_DCT;
+         }
+       }
+     else if(codec->is_imx)
+@@ -1422,7 +1422,7 @@
+       if(codec->pass == 1)
+         {
+         codec->stats_file = fopen(codec->stats_filename, "w");
+-        codec->avctx->flags |= CODEC_FLAG_PASS1;
++        codec->avctx->flags |= AV_CODEC_FLAG_PASS1;
+         }
+       else if(codec->pass == codec->total_passes)
+         {
+@@ -1438,7 +1438,7 @@
+         fclose(codec->stats_file);
+         codec->stats_file = (FILE*)0;
+               
+-        codec->avctx->flags |= CODEC_FLAG_PASS2;
++        codec->avctx->flags |= AV_CODEC_FLAG_PASS2;
+         }
+       }
+     /* Open codec */
+@@ -1467,7 +1467,7 @@
+     }
+   //        codec->lqt_colormodel = ffmepg_2_lqt(codec->com.ffcodec_enc);
+ 
+-  if(codec->y_offset != 0 || codec->avctx->pix_fmt == PIX_FMT_ARGB)
++  if(codec->y_offset != 0 || codec->avctx->pix_fmt == AV_PIX_FMT_ARGB)
+     {
+     if(!codec->tmp_rows)
+       {
+@@ -1492,7 +1492,7 @@
+                         vtrack->stream_cmodel,
+                         0, 0, 0, codec->y_offset);
+       }
+-    else if(codec->avctx->pix_fmt == PIX_FMT_ARGB)
++    else if(codec->avctx->pix_fmt == AV_PIX_FMT_ARGB)
+       {
+       convert_rgba_to_argb(row_pointers[0], vtrack->stream_row_span,
+                            codec->tmp_rows[0], codec->tmp_row_span,
+@@ -1516,7 +1516,7 @@
+     }
+   
+   codec->frame->pts = vtrack->timestamp;
+-  if(codec->avctx->flags & CODEC_FLAG_QSCALE)
++  if(codec->avctx->flags & AV_CODEC_FLAG_QSCALE)
+     codec->frame->quality = codec->qscale;
+ #ifdef DO_INTERLACE
+   if(vtrack->interlace_mode != LQT_INTERLACE_NONE)
+@@ -1558,12 +1558,12 @@
+   
+ #endif
+   
+-  if(!was_initialized && codec->encoder->id == CODEC_ID_DNXHD)
++  if(!was_initialized && codec->encoder->id == AV_CODEC_ID_DNXHD)
+     setup_avid_atoms(file, vtrack, codec->buffer, bytes_encoded);
+   
+   if(bytes_encoded)
+     {
+-    if (pts == AV_NOPTS_VALUE || (codec->encoder->id == CODEC_ID_DNXHD && pts == 0))
++    if (pts == AV_NOPTS_VALUE || (codec->encoder->id == AV_CODEC_ID_DNXHD && pts == 0))
+       {
+       /* Some codecs don't bother generating presentation timestamps.
+          FFMpeg's DNxHD encoder doesn't even bother to set it to AV_NOPTS_VALUE. */
+@@ -1590,17 +1590,16 @@
+ 
+   if(codec->write_global_header && !codec->global_header_written)
+     {
+-    if(codec->encoder->id == CODEC_ID_FFVHUFF)
++    if(codec->encoder->id == AV_CODEC_ID_FFVHUFF)
+       {
+       quicktime_user_atoms_add_atom(&trak->mdia.minf.stbl.stsd.table[0].user_atoms,
+                                     "glbl",
+                                     codec->avctx->extradata, codec->avctx->extradata_size );
+       }
+-    else if(codec->encoder->id == CODEC_ID_MPEG4)
++    else if(codec->encoder->id == AV_CODEC_ID_MPEG4)
+       {
+       int advanced = 0;
+-      if(codec->avctx->max_b_frames ||
+-         (codec->avctx->flags & (CODEC_FLAG_QPEL|CODEC_FLAG_GMC)))
++      if(codec->avctx->max_b_frames)
+         advanced = 1;
+ 
+       setup_header_mpeg4(file, track, codec->avctx->extradata,
+@@ -1903,18 +1902,18 @@
+     codec_base->encode_video = lqt_ffmpeg_encode_video;
+     codec_base->set_pass = set_pass_ffmpeg;
+ 
+-    if(encoder->id == CODEC_ID_MPEG4)
++    if(encoder->id == AV_CODEC_ID_MPEG4)
+       {
+       codec_base->writes_compressed = writes_compressed_mpeg4;
+       codec_base->init_compressed   = init_compressed_mpeg4;
+       codec_base->write_packet = write_packet_mpeg4;
+       }
+-    else if(encoder->id == CODEC_ID_MPEG2VIDEO)
++    else if(encoder->id == AV_CODEC_ID_MPEG2VIDEO)
+       {
+       codec_base->writes_compressed = writes_compressed_imx;
+       codec_base->init_compressed   = init_compressed_imx;
+       }
+-    else if(encoder->id == CODEC_ID_DVVIDEO)
++    else if(encoder->id == AV_CODEC_ID_DVVIDEO)
+       {
+       codec_base->init_compressed = init_compressed_dv;
+       }
+@@ -1922,7 +1921,7 @@
+     }
+   if(decoder)
+     {
+-    if(decoder->id == CODEC_ID_H264)
++    if(decoder->id == AV_CODEC_ID_H264)
+       codec_base->read_packet = read_packet_h264;
+     codec_base->decode_video = lqt_ffmpeg_decode_video;
+     }
+diff -Naur a/src/util.c b/src/util.c
+--- a/src/util.c	2011-01-07 14:40:47.000000000 +0000
++++ b/src/util.c	2018-05-11 23:11:04.367991499 +0100
+@@ -340,9 +340,14 @@
+ 
+ void quicktime_read_pascal(quicktime_t *file, char *data)
+ {
+-	char len = quicktime_read_char(file);
+-	quicktime_read_data(file, (uint8_t*)data, len);
+-	data[(int)len] = 0;
++	int len = quicktime_read_char(file);
++	if ((len > 0) && (len < 256)) {
++          /* data[] is expected to be 256 bytes long */
++          quicktime_read_data(file, (uint8_t*)data, len);
++          data[len] = 0;
++        } else {
++          data[0] = 0;
++        }
+ }
+ 
+ void quicktime_write_pascal(quicktime_t *file, char *data)
diff --git a/gnu/packages/patches/libsndfile-CVE-2017-12562.patch b/gnu/packages/patches/libsndfile-CVE-2017-12562.patch
deleted file mode 100644
index 58cb242b10..0000000000
--- a/gnu/packages/patches/libsndfile-CVE-2017-12562.patch
+++ /dev/null
@@ -1,97 +0,0 @@
-Fix CVE-2017-12562:
-
-https://github.com/erikd/libsndfile/issues/292
-https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-12562
-
-Patch copied from upstream source repository:
-
-https://github.com/erikd/libsndfile/commit/cf7a8182c2642c50f1cf90dddea9ce96a8bad2e8
-
-From cf7a8182c2642c50f1cf90dddea9ce96a8bad2e8 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?J=C3=B6rn=20Heusipp?= <osmanx@problemloesungsmaschine.de>
-Date: Wed, 14 Jun 2017 12:25:40 +0200
-Subject: [PATCH] src/common.c: Fix heap buffer overflows when writing strings
- in binheader
-
-Fixes the following problems:
- 1. Case 's' only enlarges the buffer by 16 bytes instead of size bytes.
- 2. psf_binheader_writef() enlarges the header buffer (if needed) prior to the
-    big switch statement by an amount (16 bytes) which is enough for all cases
-    where only a single value gets added. Cases 's', 'S', 'p' however
-    additionally write an arbitrary length block of data and again enlarge the
-    buffer to the required amount. However, the required space calculation does
-    not take into account the size of the length field which gets output before
-    the data.
- 3. Buffer size requirement calculation in case 'S' does not account for the
-    padding byte ("size += (size & 1) ;" happens after the calculation which
-    uses "size").
- 4. Case 'S' can overrun the header buffer by 1 byte when no padding is
-    involved
-    ("memcpy (&(psf->header.ptr [psf->header.indx]), strptr, size + 1) ;" while
-    the buffer is only guaranteed to have "size" space available).
- 5. "psf->header.ptr [psf->header.indx] = 0 ;" in case 'S' always writes 1 byte
-    beyond the space which is guaranteed to be allocated in the header buffer.
- 6. Case 's' can overrun the provided source string by 1 byte if padding is
-    involved ("memcpy (&(psf->header.ptr [psf->header.indx]), strptr, size) ;"
-    where "size" is "strlen (strptr) + 1" (which includes the 0 terminator,
-    plus optionally another 1 which is padding and not guaranteed to be
-    readable via the source string pointer).
-
-Closes: https://github.com/erikd/libsndfile/issues/292
----
- src/common.c | 15 +++++++--------
- 1 file changed, 7 insertions(+), 8 deletions(-)
-
-diff --git a/src/common.c b/src/common.c
-index 1a6204ca..6b2a2ee9 100644
---- a/src/common.c
-+++ b/src/common.c
-@@ -681,16 +681,16 @@ psf_binheader_writef (SF_PRIVATE *psf, const char *format, ...)
- 					/* Write a C string (guaranteed to have a zero terminator). */
- 					strptr = va_arg (argptr, char *) ;
- 					size = strlen (strptr) + 1 ;
--					size += (size & 1) ;
- 
--					if (psf->header.indx + (sf_count_t) size >= psf->header.len && psf_bump_header_allocation (psf, 16))
-+					if (psf->header.indx + 4 + (sf_count_t) size + (sf_count_t) (size & 1) > psf->header.len && psf_bump_header_allocation (psf, 4 + size + (size & 1)))
- 						return count ;
- 
- 					if (psf->rwf_endian == SF_ENDIAN_BIG)
--						header_put_be_int (psf, size) ;
-+						header_put_be_int (psf, size + (size & 1)) ;
- 					else
--						header_put_le_int (psf, size) ;
-+						header_put_le_int (psf, size + (size & 1)) ;
- 					memcpy (&(psf->header.ptr [psf->header.indx]), strptr, size) ;
-+					size += (size & 1) ;
- 					psf->header.indx += size ;
- 					psf->header.ptr [psf->header.indx - 1] = 0 ;
- 					count += 4 + size ;
-@@ -703,16 +703,15 @@ psf_binheader_writef (SF_PRIVATE *psf, const char *format, ...)
- 					*/
- 					strptr = va_arg (argptr, char *) ;
- 					size = strlen (strptr) ;
--					if (psf->header.indx + (sf_count_t) size > psf->header.len && psf_bump_header_allocation (psf, size))
-+					if (psf->header.indx + 4 + (sf_count_t) size + (sf_count_t) (size & 1) > psf->header.len && psf_bump_header_allocation (psf, 4 + size + (size & 1)))
- 						return count ;
- 					if (psf->rwf_endian == SF_ENDIAN_BIG)
- 						header_put_be_int (psf, size) ;
- 					else
- 						header_put_le_int (psf, size) ;
--					memcpy (&(psf->header.ptr [psf->header.indx]), strptr, size + 1) ;
-+					memcpy (&(psf->header.ptr [psf->header.indx]), strptr, size + (size & 1)) ;
- 					size += (size & 1) ;
- 					psf->header.indx += size ;
--					psf->header.ptr [psf->header.indx] = 0 ;
- 					count += 4 + size ;
- 					break ;
- 
-@@ -724,7 +723,7 @@ psf_binheader_writef (SF_PRIVATE *psf, const char *format, ...)
- 					size = (size & 1) ? size : size + 1 ;
- 					size = (size > 254) ? 254 : size ;
- 
--					if (psf->header.indx + (sf_count_t) size > psf->header.len && psf_bump_header_allocation (psf, size))
-+					if (psf->header.indx + 1 + (sf_count_t) size > psf->header.len && psf_bump_header_allocation (psf, 1 + size))
- 						return count ;
- 
- 					header_put_byte (psf, size) ;
diff --git a/gnu/packages/patches/libsndfile-CVE-2017-8361-8363-8365.patch b/gnu/packages/patches/libsndfile-CVE-2017-8361-8363-8365.patch
deleted file mode 100644
index 5f63231af0..0000000000
--- a/gnu/packages/patches/libsndfile-CVE-2017-8361-8363-8365.patch
+++ /dev/null
@@ -1,77 +0,0 @@
-Fix CVE-2017-{8361,8363,8365}:
-
-https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-8361
-https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-8363
-https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-8365
-
-Patch copied from upstream source repository:
-
-https://github.com/erikd/libsndfile/commit/fd0484aba8e51d16af1e3a880f9b8b857b385eb3
-
-From fd0484aba8e51d16af1e3a880f9b8b857b385eb3 Mon Sep 17 00:00:00 2001
-From: Erik de Castro Lopo <erikd@mega-nerd.com>
-Date: Wed, 12 Apr 2017 19:45:30 +1000
-Subject: [PATCH] FLAC: Fix a buffer read overrun
-
-Buffer read overrun occurs when reading a FLAC file that switches
-from 2 channels to one channel mid-stream. Only option is to
-abort the read.
-
-Closes: https://github.com/erikd/libsndfile/issues/230
----
- src/common.h  |  1 +
- src/flac.c    | 13 +++++++++++++
- src/sndfile.c |  1 +
- 3 files changed, 15 insertions(+)
-
-diff --git a/src/common.h b/src/common.h
-index 0bd810c3..e2669b6a 100644
---- a/src/common.h
-+++ b/src/common.h
-@@ -725,6 +725,7 @@ enum
- 	SFE_FLAC_INIT_DECODER,
- 	SFE_FLAC_LOST_SYNC,
- 	SFE_FLAC_BAD_SAMPLE_RATE,
-+	SFE_FLAC_CHANNEL_COUNT_CHANGED,
- 	SFE_FLAC_UNKOWN_ERROR,
- 
- 	SFE_WVE_NOT_WVE,
-diff --git a/src/flac.c b/src/flac.c
-index 84de0e26..986a7b8f 100644
---- a/src/flac.c
-+++ b/src/flac.c
-@@ -434,6 +434,19 @@ sf_flac_meta_callback (const FLAC__StreamDecoder * UNUSED (decoder), const FLAC_
- 
- 	switch (metadata->type)
- 	{	case FLAC__METADATA_TYPE_STREAMINFO :
-+			if (psf->sf.channels > 0 && psf->sf.channels != (int) metadata->data.stream_info.channels)
-+			{	psf_log_printf (psf, "Error: FLAC stream changed from %d to %d channels\n"
-+									"Nothing to be but to error out.\n" ,
-+									psf->sf.channels, metadata->data.stream_info.channels) ;
-+				psf->error = SFE_FLAC_CHANNEL_COUNT_CHANGED ;
-+				return ;
-+				} ;
-+
-+			if (psf->sf.channels > 0 && psf->sf.samplerate != (int) metadata->data.stream_info.sample_rate)
-+			{	psf_log_printf (psf, "Warning: FLAC stream changed sample rates from %d to %d.\n"
-+									"Carrying on as if nothing happened.",
-+									psf->sf.samplerate, metadata->data.stream_info.sample_rate) ;
-+				} ;
- 			psf->sf.channels = metadata->data.stream_info.channels ;
- 			psf->sf.samplerate = metadata->data.stream_info.sample_rate ;
- 			psf->sf.frames = metadata->data.stream_info.total_samples ;
-diff --git a/src/sndfile.c b/src/sndfile.c
-index 41875610..e2a87be8 100644
---- a/src/sndfile.c
-+++ b/src/sndfile.c
-@@ -245,6 +245,7 @@ ErrorStruct SndfileErrors [] =
- 	{	SFE_FLAC_INIT_DECODER	, "Error : problem with initialization of the flac decoder." },
- 	{	SFE_FLAC_LOST_SYNC		, "Error : flac decoder lost sync." },
- 	{	SFE_FLAC_BAD_SAMPLE_RATE, "Error : flac does not support this sample rate." },
-+	{	SFE_FLAC_CHANNEL_COUNT_CHANGED, "Error : flac channel changed mid stream." },
- 	{	SFE_FLAC_UNKOWN_ERROR	, "Error : unknown error in flac decoder." },
- 
- 	{	SFE_WVE_NOT_WVE			, "Error : not a WVE file." },
--- 
-2.12.2
-
diff --git a/gnu/packages/patches/libsndfile-CVE-2017-8362.patch b/gnu/packages/patches/libsndfile-CVE-2017-8362.patch
deleted file mode 100644
index 5fc52a377a..0000000000
--- a/gnu/packages/patches/libsndfile-CVE-2017-8362.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-Fix CVE-2017-8362:
-
-https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-8362
-
-Patch copied from upstream source repository:
-
-https://github.com/erikd/libsndfile/commit/ef1dbb2df1c0e741486646de40bd638a9c4cd808
-
-From ef1dbb2df1c0e741486646de40bd638a9c4cd808 Mon Sep 17 00:00:00 2001
-From: Erik de Castro Lopo <erikd@mega-nerd.com>
-Date: Fri, 14 Apr 2017 15:19:16 +1000
-Subject: [PATCH] src/flac.c: Fix a buffer read overflow
-
-A file (generated by a fuzzer) which increased the number of channels
-from one frame to the next could cause a read beyond the end of the
-buffer provided by libFLAC. Only option is to abort the read.
-
-Closes: https://github.com/erikd/libsndfile/issues/231
----
- src/flac.c | 11 +++++++++--
- 1 file changed, 9 insertions(+), 2 deletions(-)
-
-diff --git a/src/flac.c b/src/flac.c
-index 5a4f8c21..e4f9aaa0 100644
---- a/src/flac.c
-+++ b/src/flac.c
-@@ -169,6 +169,14 @@ flac_buffer_copy (SF_PRIVATE *psf)
- 	const int32_t* const *buffer = pflac->wbuffer ;
- 	unsigned i = 0, j, offset, channels, len ;
- 
-+	if (psf->sf.channels != (int) frame->header.channels)
-+	{	psf_log_printf (psf, "Error: FLAC frame changed from %d to %d channels\n"
-+									"Nothing to do but to error out.\n" ,
-+									psf->sf.channels, frame->header.channels) ;
-+		psf->error = SFE_FLAC_CHANNEL_COUNT_CHANGED ;
-+		return 0 ;
-+		} ;
-+
- 	/*
- 	**	frame->header.blocksize is variable and we're using a constant blocksize
- 	**	of FLAC__MAX_BLOCK_SIZE.
-@@ -202,7 +210,6 @@ flac_buffer_copy (SF_PRIVATE *psf)
- 		return 0 ;
- 		} ;
- 
--
- 	len = SF_MIN (pflac->len, frame->header.blocksize) ;
- 
- 	if (pflac->remain % channels != 0)
-@@ -436,7 +443,7 @@ sf_flac_meta_callback (const FLAC__StreamDecoder * UNUSED (decoder), const FLAC_
- 	{	case FLAC__METADATA_TYPE_STREAMINFO :
- 			if (psf->sf.channels > 0 && psf->sf.channels != (int) metadata->data.stream_info.channels)
- 			{	psf_log_printf (psf, "Error: FLAC stream changed from %d to %d channels\n"
--									"Nothing to be but to error out.\n" ,
-+									"Nothing to do but to error out.\n" ,
- 									psf->sf.channels, metadata->data.stream_info.channels) ;
- 				psf->error = SFE_FLAC_CHANNEL_COUNT_CHANGED ;
- 				return ;
--- 
-2.12.2
-
diff --git a/gnu/packages/patches/libsndfile-armhf-type-checks.patch b/gnu/packages/patches/libsndfile-armhf-type-checks.patch
deleted file mode 100644
index 7e0c71c3f6..0000000000
--- a/gnu/packages/patches/libsndfile-armhf-type-checks.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-This is a regression in 1.0.28 that causes a test failure on armhf.
-
-Upstream bug URL:
-
-https://github.com/erikd/libsndfile/issues/229
-
-Patch copied from upstream source repository:
-
-https://github.com/erikd/libsndfile/commit/9d470ee5577d3ccedb1c28c7e0a7295ba17feaf5
-
-From 9d470ee5577d3ccedb1c28c7e0a7295ba17feaf5 Mon Sep 17 00:00:00 2001
-From: Erik de Castro Lopo <erikd@mega-nerd.com>
-Date: Sun, 16 Apr 2017 17:54:17 +1000
-Subject: [PATCH] src/rf64.c: Fix varargs related bug
-
-C's <stargs.h> functionality isn't type checked so that passing an
-`sf_count_t` (64 bits) by mistake in place of a `unit32_t` can cause
-errors. This would be fine if it was an error on every architecture
-and platform, but its not. This particular problem only manifested
-on armhf and some other Arm architectures. It was not an issue on
-32 bit x86.
-
-I have now fixed variants of this same bug several times.
-
-Closes: https://github.com/erikd/libsndfile/issues/229
----
- src/rf64.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/rf64.c b/src/rf64.c
-index b3d637f..02dd904 100644
---- a/src/rf64.c
-+++ b/src/rf64.c
-@@ -742,7 +742,7 @@ rf64_write_header (SF_PRIVATE *psf, int calc_length)
- 
- 	pad_size = psf->dataoffset - 16 - psf->header.indx ;
- 	if (pad_size >= 0)
--		psf_binheader_writef (psf, "m4z", PAD_MARKER, pad_size, make_size_t (pad_size)) ;
-+		psf_binheader_writef (psf, "m4z", PAD_MARKER, (unsigned int) pad_size, make_size_t (pad_size)) ;
- 
- 	if (wpriv->rf64_downgrade && (psf->filelength < RIFF_DOWNGRADE_BYTES))
- 		psf_binheader_writef (psf, "tm8", data_MARKER, psf->datalength) ;
diff --git a/gnu/packages/patches/llvm-9-fix-bitcast-miscompilation.patch b/gnu/packages/patches/llvm-9-fix-bitcast-miscompilation.patch
index fe381acf1b..ec8e888618 100644
--- a/gnu/packages/patches/llvm-9-fix-bitcast-miscompilation.patch
+++ b/gnu/packages/patches/llvm-9-fix-bitcast-miscompilation.patch
@@ -36,8 +36,8 @@ Differential Revision: https://reviews.llvm.org/D70844
 
 diff --git a/llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp b/llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp
 index 2c9ba203fbf3..0af3de300e77 100644
---- a/llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp
-+++ b/llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp
+--- llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp
++++ llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp
 @@ -18,6 +18,7 @@
  #include "llvm/IR/DIBuilder.h"
  #include "llvm/IR/PatternMatch.h"
@@ -158,8 +158,8 @@ index 2c9ba203fbf3..0af3de300e77 100644
  
 diff --git a/llvm/test/Transforms/InstCombine/cast.ll b/llvm/test/Transforms/InstCombine/cast.ll
 index b6d1eda0601d..3ce8de033422 100644
---- a/llvm/test/Transforms/InstCombine/cast.ll
-+++ b/llvm/test/Transforms/InstCombine/cast.ll
+--- llvm/test/Transforms/InstCombine/cast.ll
++++ llvm/test/Transforms/InstCombine/cast.ll
 @@ -824,7 +824,7 @@ define i64 @test59(i8 %A, i8 %B) {
  
  define <3 x i32> @test60(<4 x i32> %call4) {
diff --git a/gnu/packages/patches/llvm-9-fix-lpad-miscompilation.patch b/gnu/packages/patches/llvm-9-fix-lpad-miscompilation.patch
index 6cfe07e50a..9a97d82ddc 100644
--- a/gnu/packages/patches/llvm-9-fix-lpad-miscompilation.patch
+++ b/gnu/packages/patches/llvm-9-fix-lpad-miscompilation.patch
@@ -15,8 +15,8 @@ PR45261
 
 diff --git a/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp b/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
 index 5ac3606dc662..2638b1e8a05c 100644
---- a/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
-+++ b/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
+--- llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
++++ llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
 @@ -225,6 +225,21 @@ static bool isRegUsedByPhiNodes(unsigned DefReg,
    return false;
  }
@@ -50,8 +50,8 @@ index 5ac3606dc662..2638b1e8a05c 100644
      }
 diff --git a/llvm/test/CodeGen/X86/sink-local-value.ll b/llvm/test/CodeGen/X86/sink-local-value.ll
 index b0e511ac1189..f7d861ac9b6c 100644
---- a/llvm/test/CodeGen/X86/sink-local-value.ll
-+++ b/llvm/test/CodeGen/X86/sink-local-value.ll
+--- llvm/test/CodeGen/X86/sink-local-value.ll
++++ llvm/test/CodeGen/X86/sink-local-value.ll
 @@ -145,6 +145,42 @@ try.cont:                                         ; preds = %entry, %lpad
  ; CHECK:         retl
  
diff --git a/gnu/packages/patches/llvm-9-fix-scev-miscompilation.patch b/gnu/packages/patches/llvm-9-fix-scev-miscompilation.patch
index 3f16de5a2b..ec37dc16fd 100644
--- a/gnu/packages/patches/llvm-9-fix-scev-miscompilation.patch
+++ b/gnu/packages/patches/llvm-9-fix-scev-miscompilation.patch
@@ -21,8 +21,8 @@ llvm-svn: 373184
 
 diff --git a/llvm/lib/Analysis/ScalarEvolution.cpp b/llvm/lib/Analysis/ScalarEvolution.cpp
 index 354ae05bb841..c29fc5dbccfb 100644
---- a/llvm/lib/Analysis/ScalarEvolution.cpp
-+++ b/llvm/lib/Analysis/ScalarEvolution.cpp
+--- llvm/lib/Analysis/ScalarEvolution.cpp
++++ llvm/lib/Analysis/ScalarEvolution.cpp
 @@ -4992,7 +4992,7 @@ const SCEV *ScalarEvolution::createSimpleAffineAddRec(PHINode *PN,
    // overflow.
    if (auto *BEInst = dyn_cast<Instruction>(BEValueV))
@@ -34,8 +34,8 @@ index 354ae05bb841..c29fc5dbccfb 100644
  }
 diff --git a/llvm/test/Analysis/ScalarEvolution/limit-depth.ll b/llvm/test/Analysis/ScalarEvolution/limit-depth.ll
 index db68a4f84c91..6fdf8c5df974 100644
---- a/llvm/test/Analysis/ScalarEvolution/limit-depth.ll
-+++ b/llvm/test/Analysis/ScalarEvolution/limit-depth.ll
+--- llvm/test/Analysis/ScalarEvolution/limit-depth.ll
++++ llvm/test/Analysis/ScalarEvolution/limit-depth.ll
 @@ -46,7 +46,7 @@ define void @test_mul(i32 %a, i32 %b, i32 %c, i32 %d, i32 %e, i32 %f) {
  define void @test_sext(i32 %a, i32 %b, i32 %c, i32 %d, i32 %e, i32 %f) {
  ; CHECK-LABEL: @test_sext
@@ -47,8 +47,8 @@ index db68a4f84c91..6fdf8c5df974 100644
  
 diff --git a/llvm/test/Analysis/ScalarEvolution/nsw.ll b/llvm/test/Analysis/ScalarEvolution/nsw.ll
 index 69427368625d..ca24f9d4a04b 100644
---- a/llvm/test/Analysis/ScalarEvolution/nsw.ll
-+++ b/llvm/test/Analysis/ScalarEvolution/nsw.ll
+--- llvm/test/Analysis/ScalarEvolution/nsw.ll
++++ llvm/test/Analysis/ScalarEvolution/nsw.ll
 @@ -163,7 +163,7 @@ bb5:                                              ; preds = %bb2
  declare void @f(i32)
  
@@ -60,8 +60,8 @@ index 69427368625d..ca24f9d4a04b 100644
    %add = add nsw i32 %v, 1
 diff --git a/llvm/test/Analysis/ScalarEvolution/trip-count12.ll b/llvm/test/Analysis/ScalarEvolution/trip-count12.ll
 index 5e7d72d5e4f3..d0086ee2e6ac 100644
---- a/llvm/test/Analysis/ScalarEvolution/trip-count12.ll
-+++ b/llvm/test/Analysis/ScalarEvolution/trip-count12.ll
+--- llvm/test/Analysis/ScalarEvolution/trip-count12.ll
++++ llvm/test/Analysis/ScalarEvolution/trip-count12.ll
 @@ -1,7 +1,7 @@
  ; RUN: opt < %s -analyze -scalar-evolution | FileCheck %s
  
@@ -73,8 +73,8 @@ index 5e7d72d5e4f3..d0086ee2e6ac 100644
  define zeroext i16 @test(i16* nocapture %p, i32 %len) nounwind readonly {
 diff --git a/llvm/test/Analysis/ScalarEvolution/trip-count9.ll b/llvm/test/Analysis/ScalarEvolution/trip-count9.ll
 index c0a1d12fa00e..9a080b34743f 100644
---- a/llvm/test/Analysis/ScalarEvolution/trip-count9.ll
-+++ b/llvm/test/Analysis/ScalarEvolution/trip-count9.ll
+--- llvm/test/Analysis/ScalarEvolution/trip-count9.ll
++++ llvm/test/Analysis/ScalarEvolution/trip-count9.ll
 @@ -179,7 +179,7 @@ exit:
  }
  
diff --git a/gnu/packages/patches/lsh-fix-x11-forwarding.patch b/gnu/packages/patches/lsh-fix-x11-forwarding.patch
new file mode 100644
index 0000000000..fd56a5bafd
--- /dev/null
+++ b/gnu/packages/patches/lsh-fix-x11-forwarding.patch
@@ -0,0 +1,20 @@
+--- a/src/server_x11.c	2016-08-01 11:58:54.714647794 +0200
++++ b/src/server_x11.c	2016-08-01 11:58:46.606563478 +0200
+@@ -151,7 +151,7 @@ DEFINE_COMMAND(open_forwarded_x11)
+ #define X11_MIN_DISPLAY 10
+ #define X11_MAX_DISPLAY 1000
+ 
+-/* FIXME: Create the /tmp/.X11-unix directory, if needed. Figure out
++/* FIXME: Figure out
+  * if and how we should use /tmp/.X17-lock. Consider using display
+  * "unix:17" instead of just ":17".
+  */
+@@ -253,6 +253,7 @@ open_x11_socket(struct ssh_channel *chan
+ 
+   old_umask = umask(0077);
+   
++  mkdir(X11_SOCKET_DIR, S_IRWXU | S_IRWXG | S_IRWXO | S_ISVTX);
+   old_cd = lsh_pushd(X11_SOCKET_DIR, &dir, 0, 0);
+   if (old_cd < 0)
+     {
+
diff --git a/gnu/packages/patches/lsof-fatal-test-failures.patch b/gnu/packages/patches/lsof-fatal-test-failures.patch
new file mode 100644
index 0000000000..e874ba6ad4
--- /dev/null
+++ b/gnu/packages/patches/lsof-fatal-test-failures.patch
@@ -0,0 +1,58 @@
+From: Tobias Geerinckx-Rice <me@tobias.gr>
+Date: Mon, 23 Nov 2020 05:36:53 +0100
+Subject: [PATCH] gnu: lsof: Make test failures fatal.
+
+Submitted upstream[0].
+
+[0]: https://github.com/lsof-org/lsof/pull/144
+
+diff --git a/tests/Makefile b/tests/Makefile
+index 08574a0..2923bb8 100644
+--- a/tests/Makefile
++++ b/tests/Makefile
+@@ -27,7 +27,7 @@ all:	${CKTSTDB} ${BASTST} ${STDTST} FRC
+ 	  exit 1 ;\
+ 	fi
+ 	@rm -f config.LT*
+-	-@err=0; \
++	@err=0; \
+ 	echo ""; \
+ 	echo "Basic test:"; \
+ 	./${BASTST}; \
+@@ -54,8 +54,11 @@ all:	${CKTSTDB} ${BASTST} ${STDTST} FRC
+ 	    echo "Suggestion: try the optional tests: \"make opt\""; \
+ 	    echo ""; \
+ 	  fi; \
+-	fi;
+-	@rm -f config.LT*
++	fi; \
++	rm -f config.LT*; \
++	if [ $$err -ne 0 ]; then \
++	  exit 1; \
++	fi
+ 
+ auto:	ckDB silent FRC
+ 
+@@ -112,7 +115,7 @@ LTunix: LTunix.c ${CONFIG} ${LIBOBJ} ${HDR} config.ldflags
+ 
+ opt:	${CKTSTDB} ${OPTTST} FRC
+ 	@rm -f config.LT*
+-	-@err=0; \
++	@err=0; \
+ 	echo ""; \
+ 	echo "Optional tests:"; \
+ 	for i in ${OPTTST}; do \
+@@ -126,8 +129,11 @@ opt:	${CKTSTDB} ${OPTTST} FRC
+ 	else \
+ 	  echo "All optional tests succeeded."; \
+ 	fi; \
+-	echo "";
+-	@rm -f config.LT*
++	echo ""; \
++	rm -f config.LT*; \
++	if [ $$err -ne 0 ]; then \
++	  exit 1; \
++	fi
+ 
+ optional: opt
+ 
diff --git a/gnu/packages/patches/mailutils-fix-uninitialized-variable.patch b/gnu/packages/patches/mailutils-fix-uninitialized-variable.patch
new file mode 100644
index 0000000000..2a1c81648b
--- /dev/null
+++ b/gnu/packages/patches/mailutils-fix-uninitialized-variable.patch
@@ -0,0 +1,26 @@
+From 5ca6382fe8adb5bc436a6d873c8b86c69d5abfd1 Mon Sep 17 00:00:00 2001
+From: Sergey Poznyakoff <gray@gnu.org>
+Date: Sun, 13 Sep 2020 14:43:46 +0300
+Subject: [PATCH] Fix uninitialized variable in readmsg
+
+* readmsg/readmsg.c (main): Initialize weedc.
+---
+ readmsg/readmsg.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/readmsg/readmsg.c b/readmsg/readmsg.c
+index 9f305bb9c..3a9f420db 100644
+--- a/readmsg/readmsg.c
++++ b/readmsg/readmsg.c
+@@ -466,7 +466,7 @@ main (int argc, char **argv)
+   mu_mailbox_t mbox = NULL;
+   struct mu_wordsplit ws;
+   char **weedv;
+-  int weedc;
++  int weedc = 0;
+   int unix_header = 0;
+   
+   /* Native Language Support */
+-- 
+2.28.0
+
diff --git a/gnu/packages/patches/mariadb-client-test-32bit.patch b/gnu/packages/patches/mariadb-client-test-32bit.patch
deleted file mode 100644
index 02017e324d..0000000000
--- a/gnu/packages/patches/mariadb-client-test-32bit.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 93efa48a7b972fc463406603574a4d508eefe792 Mon Sep 17 00:00:00 2001
-From: Sergei Golubchik <serg@mariadb.org>
-Date: Sun, 13 May 2018 18:50:21 +0200
-Subject: [PATCH] fix failing main.mysql_client_test test on 32bit
-
-in `ulonglong=ulong*uint` multiplication
-is done in ulong, wrapping around on 32bit.
-
-This became visible after C/C changed the
-default charset to utf8, thus changing
-mbmaxlem from 1 to 3.
----
- tests/mysql_client_fw.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/tests/mysql_client_fw.c b/tests/mysql_client_fw.c
-index f69eb28a2871..4d036887629a 100644
---- a/tests/mysql_client_fw.c
-+++ b/tests/mysql_client_fw.c
-@@ -768,7 +768,7 @@ static void do_verify_prepare_field(MYSQL_RES *result,
- {
-   MYSQL_FIELD *field;
-   CHARSET_INFO *cs;
--  ulonglong expected_field_length;
-+  ulonglong expected_field_length= length;
- 
-   if (!(field= mysql_fetch_field_direct(result, no)))
-   {
-@@ -777,7 +777,7 @@ static void do_verify_prepare_field(MYSQL_RES *result,
-   }
-   cs= get_charset(field->charsetnr, 0);
-   DIE_UNLESS(cs);
--  if ((expected_field_length= length * cs->mbmaxlen) > UINT_MAX32)
-+  if ((expected_field_length*= cs->mbmaxlen) > UINT_MAX32)
-     expected_field_length= UINT_MAX32;
-   if (!opt_silent)
-   {
diff --git a/gnu/packages/patches/minimap2-aarch64-support.patch b/gnu/packages/patches/minimap2-aarch64-support.patch
new file mode 100644
index 0000000000..95db8579d6
--- /dev/null
+++ b/gnu/packages/patches/minimap2-aarch64-support.patch
@@ -0,0 +1,52 @@
+This patch should be removed with the next release. There is WIP upstream
+support for proper support of more architectures, including aarch64 and powerpc64le.
+
+diff --git a/Makefile b/Makefile
+index ed341f6..94dbd85 100644
+--- a/Makefile
++++ b/Makefile
+@@ -6,20 +6,18 @@ PROG=		minimap2
+ PROG_EXTRA=	sdust minimap2-lite
+ LIBS=		-lm -lz -lpthread
+ 
+-ifeq ($(arm_neon),) # if arm_neon is not defined
+-ifeq ($(sse2only),) # if sse2only is not defined
+-	OBJS+=ksw2_extz2_sse41.o ksw2_extd2_sse41.o ksw2_exts2_sse41.o ksw2_extz2_sse2.o ksw2_extd2_sse2.o ksw2_exts2_sse2.o ksw2_dispatch.o
+-else                # if sse2only is defined
+-	OBJS+=ksw2_extz2_sse.o ksw2_extd2_sse.o ksw2_exts2_sse.o
+-endif
+-else				# if arm_neon is defined
++ifneq ($(arm_neon),) 		# if arm_neon is defined
+ 	OBJS+=ksw2_extz2_neon.o ksw2_extd2_neon.o ksw2_exts2_neon.o
+-    INCLUDES+=-Isse2neon
+-ifeq ($(aarch64),)	#if aarch64 is not defined
+ 	CFLAGS+=-D_FILE_OFFSET_BITS=64 -mfpu=neon -fsigned-char
+-else				#if aarch64 is defined
++	INCLUDES+=-Isse2neon
++else ifneq ($(aarch64),)	#if aarch64 is defined
++	OBJS+=ksw2_extz2_neon.o ksw2_extd2_neon.o ksw2_exts2_neon.o
+ 	CFLAGS+=-D_FILE_OFFSET_BITS=64 -fsigned-char
+-endif
++	INCLUDES+=-Isse2neon
++else ifneq ($(sse2only),) 	# if sse2only is defined
++	OBJS+=ksw2_extz2_sse.o ksw2_extd2_sse.o ksw2_exts2_sse.o
++else                		# none of the above
++	OBJS+=ksw2_extz2_sse41.o ksw2_extd2_sse41.o ksw2_exts2_sse41.o ksw2_extz2_sse2.o ksw2_extd2_sse2.o ksw2_exts2_sse2.o ksw2_dispatch.o
+ endif
+ 
+ .PHONY:all extra clean depend
+@@ -46,9 +44,12 @@ sdust:sdust.c kalloc.o kalloc.h kdq.h kvec.h kseq.h ketopt.h sdust.h
+ 
+ # SSE-specific targets on x86/x86_64
+ 
+-ifeq ($(arm_neon),)   # if arm_neon is defined, compile this target with the default setting (i.e. no -msse2)
++ifneq ($(arm_neon),)   # if arm_neon is defined, compile this target with the default setting (i.e. no -msse2)
++ksw2_ll_sse.o:ksw2_ll_sse.c ksw2.h kalloc.h
++else ifneq ($(aarch64),)
+ ksw2_ll_sse.o:ksw2_ll_sse.c ksw2.h kalloc.h
+-		$(CC) -c $(CFLAGS) -msse2 $(CPPFLAGS) $(INCLUDES) $< -o $@
++else
++	$(CC) -c $(CFLAGS) -msse2 $(CPPFLAGS) $(INCLUDES) $< -o $@
+ endif
+ 
+ ksw2_extz2_sse41.o:ksw2_extz2_sse.c ksw2.h kalloc.h
diff --git a/gnu/packages/patches/multipath-tools-sans-systemd.patch b/gnu/packages/patches/multipath-tools-sans-systemd.patch
deleted file mode 100644
index 8f3144718c..0000000000
--- a/gnu/packages/patches/multipath-tools-sans-systemd.patch
+++ /dev/null
@@ -1,83 +0,0 @@
-Fix various compiler warnings when built without systemd.
-
-Submitted upstream at <https://www.redhat.com/archives/dm-devel/2020-May/thread.html>.
-
-diff --git a/libmultipath/config.c b/libmultipath/config.c
---- a/libmultipath/config.c
-+++ b/libmultipath/config.c
-@@ -696,7 +696,7 @@ process_config_dir(struct config *conf, char *dir)
- 	pthread_cleanup_pop(1);
- }
- 
--static void set_max_checkint_from_watchdog(struct config *conf)
-+static void set_max_checkint_from_watchdog(__attribute__((unused)) struct config *conf)
- {
- #ifdef USE_SYSTEMD
- 	char *envp = getenv("WATCHDOG_USEC");
-diff --git a/multipathd/main.c b/multipathd/main.c
---- a/multipathd/main.c
-+++ b/multipathd/main.c
-@@ -176,6 +176,7 @@ daemon_status(void)
- /*
-  * I love you too, systemd ...
-  */
-+#ifdef USE_SYSTEMD
- static const char *
- sd_notify_status(enum daemon_status state)
- {
-@@ -195,7 +196,6 @@ sd_notify_status(enum daemon_status state)
- 	return NULL;
- }
- 
--#ifdef USE_SYSTEMD
- static void do_sd_notify(enum daemon_status old_state,
- 			 enum daemon_status new_state)
- {
-@@ -247,7 +247,9 @@ enum daemon_status wait_for_state_change_if(enum daemon_status oldstate,
- static void __post_config_state(enum daemon_status state)
- {
- 	if (state != running_state && running_state != DAEMON_SHUTDOWN) {
--		enum daemon_status old_state = running_state;
-+		/* save state for sd_notify */
-+		enum daemon_status
-+			__attribute__((unused)) old_state = running_state;
- 
- 		running_state = state;
- 		pthread_cond_broadcast(&config_cond);
-@@ -272,7 +274,9 @@ int set_config_state(enum daemon_status state)
- 	pthread_cleanup_push(config_cleanup, NULL);
- 	pthread_mutex_lock(&config_lock);
- 	if (running_state != state) {
--		enum daemon_status old_state = running_state;
-+		/* save state for sd_notify */
-+		enum daemon_status
-+			__attribute__((unused)) old_state = running_state;
- 
- 		if (running_state == DAEMON_SHUTDOWN)
- 			rc = EINVAL;
-@@ -2280,7 +2284,6 @@ checkerloop (void *ap)
- 	struct timespec last_time;
- 	struct config *conf;
- 	int foreign_tick = 0;
--	bool use_watchdog;
- 
- 	pthread_cleanup_push(rcu_unregister, NULL);
- 	rcu_register_thread();
-@@ -2292,11 +2295,15 @@ checkerloop (void *ap)
- 	get_monotonic_time(&last_time);
- 	last_time.tv_sec -= 1;
- 
--	/* use_watchdog is set from process environment and never changes */
- 	conf = get_multipath_config();
--	use_watchdog = conf->use_watchdog;
- 	put_multipath_config(conf);
- 
-+#ifdef USE_SYSTEMD
-+	/* use_watchdog is set from process environment and never changes */
-+	bool use_watchdog;
-+	use_watchdog = conf->use_watchdog;
-+#endif
-+
- 	while (1) {
- 		struct timespec diff_time, start_time, end_time;
- 		int num_paths = 0, strict_timing, rc = 0;
diff --git a/gnu/packages/patches/mupdf-fix-linkage.patch b/gnu/packages/patches/mupdf-fix-linkage.patch
new file mode 100644
index 0000000000..4ffd1c6a77
--- /dev/null
+++ b/gnu/packages/patches/mupdf-fix-linkage.patch
@@ -0,0 +1,27 @@
+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/mutt-store-references.patch b/gnu/packages/patches/mutt-store-references.patch
index 3b69c7b0bd..77d1680d60 100644
--- a/gnu/packages/patches/mutt-store-references.patch
+++ b/gnu/packages/patches/mutt-store-references.patch
@@ -2,15 +2,16 @@ By default 'mutt' embeds configure flags and the output of 'gcc -v',
 which contains the store file name of Bash and GCC.  This patch makes
 sure we don't embed a reference to these in 'mutt'.
 
---- mutt-1.5.23/txt2c.sh	2015-06-26 22:56:56.500731643 +0200
-+++ mutt-1.5.23/txt2c.sh	2015-06-26 22:57:26.664583900 +0200
+diff --git a/txt2c.sh b/txt2c.sh
+index f634bb9..53845cf 100755
+--- a/txt2c.sh
++++ b/txt2c.sh
 @@ -21,6 +21,8 @@ txt2c_fallback () {
  	echo ";"
  }
  
 +echo "unsigned char $1[] = \"value of '$1' not kept\";"
 +exit 0
- ./txt2c test </dev/null >/dev/null 2>&1 &&
- ./txt2c "$1" ||
- txt2c_fallback "$1"
-
+ if ./txt2c test </dev/null >/dev/null 2>&1; then
+     ./txt2c "$1"
+ else
diff --git a/gnu/packages/patches/netcdf-date-time.patch b/gnu/packages/patches/netcdf-date-time.patch
index a4e7925aa1..0bdfc55299 100644
--- a/gnu/packages/patches/netcdf-date-time.patch
+++ b/gnu/packages/patches/netcdf-date-time.patch
@@ -3,9 +3,9 @@
 @@ -13,7 +13,7 @@
  #endif
  
- /* Tell the user the version of netCDF. */
+ /** @internal The version string for the library, used by
+  * nc_inq_libvers(). */
 -static const char nc_libvers[] = PACKAGE_VERSION " of "__DATE__" "__TIME__" $";
-+static const char nc_libvers[] = PACKAGE_VERSION" $";
++static const char nc_libvers[] = PACKAGE_VERSION " $";
  
  /**
- \defgroup lib_version Library Version
diff --git a/gnu/packages/patches/netcdf-tst_h_par.patch b/gnu/packages/patches/netcdf-tst_h_par.patch
deleted file mode 100644
index ac14a4c0a2..0000000000
--- a/gnu/packages/patches/netcdf-tst_h_par.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-From a83702834938b23cc2e843589aa223e2024a7e6f Mon Sep 17 00:00:00 2001
-From: Orion Poplawski <orion@cora.nwra.com>
-Date: Tue, 29 Nov 2016 11:48:01 -0700
-Subject: [PATCH] Add missing #include "err_macros.h" to tst_h_par.c
-
----
- h5_test/tst_h_par.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/h5_test/tst_h_par.c b/h5_test/tst_h_par.c
-index c3da7f4..a419d55 100644
---- a/h5_test/tst_h_par.c
-+++ b/h5_test/tst_h_par.c
-@@ -11,6 +11,7 @@
-    $Id: tst_h_par.c,v 1.15 2010/05/25 13:53:04 ed Exp $
- */
- #include <nc_tests.h>
-+#include "err_macros.h"
- #include <hdf5.h>
- 
- /* Defining USE_MPE causes the MPE trace library to be used (and you
diff --git a/gnu/packages/patches/nginx-socket-cloexec.patch b/gnu/packages/patches/nginx-socket-cloexec.patch
new file mode 100644
index 0000000000..985ce573b5
--- /dev/null
+++ b/gnu/packages/patches/nginx-socket-cloexec.patch
@@ -0,0 +1,185 @@
+diff --git a/auto/unix b/auto/unix
+index 10835f6c..b5b33bb3 100644
+--- a/auto/unix
++++ b/auto/unix
+@@ -990,3 +990,27 @@ ngx_feature_test='struct addrinfo *res;
+                   if (getaddrinfo("localhost", NULL, NULL, &res) != 0) return 1;
+                   freeaddrinfo(res)'
+ . auto/feature
++
++ngx_feature="SOCK_CLOEXEC support"
++ngx_feature_name="NGX_HAVE_SOCKET_CLOEXEC"
++ngx_feature_run=no
++ngx_feature_incs="#include <sys/types.h>
++                  #include <sys/socket.h>"
++ngx_feature_path=
++ngx_feature_libs=
++ngx_feature_test="int fd;
++                  fd = socket(AF_INET, SOCK_STREAM | SOCK_CLOEXEC, 0);"
++. auto/feature
++
++ngx_feature="FD_CLOEXEC support"
++ngx_feature_name="NGX_HAVE_FD_CLOEXEC"
++ngx_feature_run=no
++ngx_feature_incs="#include <sys/types.h>
++                  #include <sys/socket.h>
++                  #include <fcntl.h>"
++ngx_feature_path=
++ngx_feature_libs=
++ngx_feature_test="int fd;
++                  fd = socket(AF_INET, SOCK_STREAM, 0);
++                  fcntl(fd, F_SETFD, FD_CLOEXEC);"
++. auto/feature
+diff --git a/src/core/ngx_resolver.c b/src/core/ngx_resolver.c
+index cd55520c..438e0806 100644
+--- a/src/core/ngx_resolver.c
++++ b/src/core/ngx_resolver.c
+@@ -4466,8 +4466,14 @@ ngx_tcp_connect(ngx_resolver_connection_t *rec)
+     ngx_event_t       *rev, *wev;
+     ngx_connection_t  *c;
+ 
++#if (NGX_HAVE_SOCKET_CLOEXEC)
++    s = ngx_socket(rec->sockaddr->sa_family, SOCK_STREAM | SOCK_CLOEXEC, 0);
++
++#else
+     s = ngx_socket(rec->sockaddr->sa_family, SOCK_STREAM, 0);
+ 
++#endif
++
+     ngx_log_debug1(NGX_LOG_DEBUG_EVENT, &rec->log, 0, "TCP socket %d", s);
+ 
+     if (s == (ngx_socket_t) -1) {
+@@ -4494,6 +4500,15 @@ ngx_tcp_connect(ngx_resolver_connection_t *rec)
+         goto failed;
+     }
+ 
++#if (NGX_HAVE_FD_CLOEXEC)
++    if (ngx_cloexec(s) == -1) {
++        ngx_log_error(NGX_LOG_ALERT, &rec->log, ngx_socket_errno,
++                      ngx_cloexec_n " failed");
++
++        goto failed;
++    }
++#endif
++
+     rev = c->read;
+     wev = c->write;
+ 
+diff --git a/src/event/ngx_event.h b/src/event/ngx_event.h
+index 19fec68..8c2f01a 100644
+--- a/src/event/ngx_event.h
++++ b/src/event/ngx_event.h
+@@ -73,6 +73,9 @@ struct ngx_event_s {
+     /* to test on worker exit */
+     unsigned         channel:1;
+     unsigned         resolver:1;
++#if (HAVE_SOCKET_CLOEXEC_PATCH)
++    unsigned         skip_socket_leak_check:1;
++#endif
+ 
+     unsigned         cancelable:1;
+ 
+diff --git a/src/event/ngx_event_accept.c b/src/event/ngx_event_accept.c
+index 77563709..5827b9d0 100644
+--- a/src/event/ngx_event_accept.c
++++ b/src/event/ngx_event_accept.c
+@@ -62,7 +62,9 @@ ngx_event_accept(ngx_event_t *ev)
+ 
+ #if (NGX_HAVE_ACCEPT4)
+         if (use_accept4) {
+-            s = accept4(lc->fd, &sa.sockaddr, &socklen, SOCK_NONBLOCK);
++            s = accept4(lc->fd, &sa.sockaddr, &socklen,
++                        SOCK_NONBLOCK | SOCK_CLOEXEC);
++
+         } else {
+             s = accept(lc->fd, &sa.sockaddr, &socklen);
+         }
+@@ -202,6 +204,16 @@ ngx_event_accept(ngx_event_t *ev)
+                     ngx_close_accepted_connection(c);
+                     return;
+                 }
++
++#if (NGX_HAVE_FD_CLOEXEC)
++                if (ngx_cloexec(s) == -1) {
++                    ngx_log_error(NGX_LOG_ALERT, ev->log, ngx_socket_errno,
++                                  ngx_cloexec_n " failed");
++                    ngx_close_accepted_connection(c);
++                    return;
++                }
++#endif
++
+             }
+         }
+ 
+diff --git a/src/event/ngx_event_connect.c b/src/event/ngx_event_connect.c
+index c5bb8068..cf33b1d2 100644
+--- a/src/event/ngx_event_connect.c
++++ b/src/event/ngx_event_connect.c
+@@ -38,8 +38,15 @@ ngx_event_connect_peer(ngx_peer_connection_t *pc)
+ 
+     type = (pc->type ? pc->type : SOCK_STREAM);
+ 
++#if (NGX_HAVE_SOCKET_CLOEXEC)
++    s = ngx_socket(pc->sockaddr->sa_family, type | SOCK_CLOEXEC, 0);
++
++#else
+     s = ngx_socket(pc->sockaddr->sa_family, type, 0);
+ 
++#endif
++
++
+     ngx_log_debug2(NGX_LOG_DEBUG_EVENT, pc->log, 0, "%s socket %d",
+                    (type == SOCK_STREAM) ? "stream" : "dgram", s);
+ 
+@@ -80,6 +87,15 @@ ngx_event_connect_peer(ngx_peer_connection_t *pc)
+         goto failed;
+     }
+ 
++#if (NGX_HAVE_FD_CLOEXEC)
++    if (ngx_cloexec(s) == -1) {
++        ngx_log_error(NGX_LOG_ALERT, pc->log, ngx_socket_errno,
++                      ngx_cloexec_n " failed");
++
++        goto failed;
++    }
++#endif
++
+     if (pc->local) {
+ 
+ #if (NGX_HAVE_TRANSPARENT_PROXY)
+diff --git a/src/os/unix/ngx_process_cycle.c b/src/os/unix/ngx_process_cycle.c
+index c4376a5..48e8fa8 100644
+--- a/src/os/unix/ngx_process_cycle.c
++++ b/src/os/unix/ngx_process_cycle.c
+@@ -1032,6 +1032,9 @@ ngx_worker_process_exit(ngx_cycle_t *cycle)
+         for (i = 0; i < cycle->connection_n; i++) {
+             if (c[i].fd != -1
+                 && c[i].read
++#if (HAVE_SOCKET_CLOEXEC_PATCH)
++                && !c[i].read->skip_socket_leak_check
++#endif
+                 && !c[i].read->accept
+                 && !c[i].read->channel
+                 && !c[i].read->resolver)
+diff --git a/src/os/unix/ngx_socket.h b/src/os/unix/ngx_socket.h
+index fcc51533..d1eebf47 100644
+--- a/src/os/unix/ngx_socket.h
++++ b/src/os/unix/ngx_socket.h
+@@ -38,6 +38,17 @@ int ngx_blocking(ngx_socket_t s);
+ 
+ #endif
+ 
++#if (NGX_HAVE_FD_CLOEXEC)
++
++#define ngx_cloexec(s)      fcntl(s, F_SETFD, FD_CLOEXEC)
++#define ngx_cloexec_n       "fcntl(FD_CLOEXEC)"
++
++/* at least FD_CLOEXEC is required to ensure connection fd is closed
++ * after execve */
++#define HAVE_SOCKET_CLOEXEC_PATCH  1
++
++#endif
++
+ int ngx_tcp_nopush(ngx_socket_t s);
+ int ngx_tcp_push(ngx_socket_t s);
+ 
diff --git a/gnu/packages/patches/nss-pkgconfig.patch b/gnu/packages/patches/nss-3.56-pkgconfig.patch
index e3145aa4cf..91b6aef604 100644
--- a/gnu/packages/patches/nss-pkgconfig.patch
+++ b/gnu/packages/patches/nss-3.56-pkgconfig.patch
@@ -7,7 +7,7 @@ Modifications:
   Remove optional patching in nss/Makefile.
   Include -L$libdir in output from "nss-config --libs".
 
-Later adapted to apply cleanly to nss-3.21.
+Later adapted to apply cleanly to nss-3.53.
 
 --- nss-3.21/nss/config/Makefile
 +++ nss-3.21/nss/config/Makefile
@@ -217,9 +217,12 @@ Later adapted to apply cleanly to nss-3.21.
 +
 --- nss-3.21/nss/manifest.mn
 +++ nss-3.21/nss/manifest.mn
-@@ -10,4 +10,4 @@
- 
+@@ -10,7 +10,7 @@
+
  RELEASE = nss
- 
+
 -DIRS = coreconf lib cmd cpputil gtests
 +DIRS = coreconf lib cmd cpputil gtests config
+
+ lib: coreconf
+ cmd: lib
diff --git a/gnu/packages/patches/oath-toolkit-glibc-compat.patch b/gnu/packages/patches/oath-toolkit-glibc-compat.patch
deleted file mode 100644
index 22814599e5..0000000000
--- a/gnu/packages/patches/oath-toolkit-glibc-compat.patch
+++ /dev/null
@@ -1,90 +0,0 @@
-Adjust the bundled Gnulib to cope with removal of libio interface in Glibc 2.28.
-
-Based on this upstream gnulib patch:
-https://git.savannah.gnu.org/cgit/gnulib.git/commit/?id=4af4a4a71827c0bc5e0ec67af23edef4f15cee8e
-
---- a/liboath/gl/fflush.c
-+++ b/liboath/gl/fflush.c
-@@ -33,7 +33,7 @@
- #undef fflush
- 
- 
--#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
-+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
- 
- /* Clear the stream's ungetc buffer, preserving the value of ftello (fp).  */
- static void
-@@ -72,7 +72,7 @@
- 
- #endif
- 
--#if ! (defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */)
-+#if ! (defined _IO_EOF_SEEN  || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */)
- 
- # if (defined __sferror || defined __DragonFly__ || defined __ANDROID__) && defined __SNPT
- /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Android */
-@@ -148,7 +148,7 @@
-   if (stream == NULL || ! freading (stream))
-     return fflush (stream);
- 
--#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
-+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
- 
-   clear_ungetc_buffer_preserving_position (stream);
- 
---- a/liboath/gl/fpurge.c
-+++ b/liboath/gl/fpurge.c
-@@ -62,7 +62,7 @@
-   /* Most systems provide FILE as a struct and the necessary bitmask in
-      <stdio.h>, because they need it for implementing getc() and putc() as
-      fast macros.  */
--# if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
-+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
-   fp->_IO_read_end = fp->_IO_read_ptr;
-   fp->_IO_write_ptr = fp->_IO_write_base;
-   /* Avoid memory leak when there is an active ungetc buffer.  */
---- a/libaoth/gl/freading.c
-+++ b/liboath/gl/freading.c
-@@ -31,7 +31,7 @@
-   /* Most systems provide FILE as a struct and the necessary bitmask in
-      <stdio.h>, because they need it for implementing getc() and putc() as
-      fast macros.  */
--# if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
-+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
-   return ((fp->_flags & _IO_NO_WRITES) != 0
-           || ((fp->_flags & (_IO_NO_READS | _IO_CURRENTLY_PUTTING)) == 0
-               && fp->_IO_read_base != NULL));
---- a/liboath/gl/fseeko.c
-+++ b/liboath/gl/fseeko.c
-@@ -47,7 +47,7 @@
- #endif
- 
-   /* These tests are based on fpurge.c.  */
--#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
-+#if defined _IO_EOF_SEEN  || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
-   if (fp->_IO_read_end == fp->_IO_read_ptr
-       && fp->_IO_write_ptr == fp->_IO_write_base
-       && fp->_IO_save_base == NULL)
-@@ -123,7 +123,7 @@
-           return -1;
-         }
- 
--#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
-+#if defined _IO_EOF_SEEN  || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
-       fp->_flags &= ~_IO_EOF_SEEN;
-       fp->_offset = pos;
- #elif defined __sferror || defined __DragonFly__ || defined __ANDROID__
---- a/liboath/gl/stdio-impl.h
-+++ b/liboath/gl/stdio-impl.h
-@@ -18,6 +18,11 @@
-    the same implementation of stdio extension API, except that some fields
-    have different naming conventions, or their access requires some casts.  */
- 
-+/* Glibc 2.28 made _IO_IN_BACKUP private, so define it here for now.  */
-+#if !defined _IO_IN_BACKUP && defined _IO_EOF_SEEN
-+# define _IO_IN_BACKUP 0x100
-+#endif
-+
- /* BSD stdio derived implementations.  */
- 
- #if defined __NetBSD__                         /* NetBSD */
diff --git a/gnu/packages/patches/ocaml-bisect-fix-camlp4-in-another-directory.patch b/gnu/packages/patches/ocaml-bisect-fix-camlp4-in-another-directory.patch
deleted file mode 100644
index fd9a4c9401..0000000000
--- a/gnu/packages/patches/ocaml-bisect-fix-camlp4-in-another-directory.patch
+++ /dev/null
@@ -1,283 +0,0 @@
-From bc3b353cb2f26cf10aa5c5caebddf6d3d5b1e318 Mon Sep 17 00:00:00 2001
-From: Julien Lepiller <julien@lepiller.eu>
-Date: Fri, 21 Sep 2018 22:31:29 +0200
-Subject: [PATCH] fix camlp4 in another directory
-
----
- Makefile                              | 11 ++++++-----
- configure                             | 13 ++++++++++++-
- tests/Makefile                        |  2 +-
- tests/camlp4-comments/Makefile        |  2 +-
- tests/camlp4-exclude-file/Makefile    |  2 +-
- tests/camlp4-exclude/Makefile         |  2 +-
- tests/camlp4-instrument-fast/Makefile |  2 +-
- tests/camlp4-instrument/Makefile      |  2 +-
- tests/combine-expr/Makefile           |  2 +-
- tests/ppx-comments/Makefile           |  2 +-
- tests/ppx-exclude-file/Makefile       |  2 +-
- tests/ppx-exclude/Makefile            |  2 +-
- tests/ppx-instrument-fast/Makefile    |  2 +-
- tests/ppx-instrument/Makefile         |  2 +-
- tests/report/Makefile                 |  2 +-
- 15 files changed, 31 insertions(+), 19 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index b0980ee..6697922 100644
---- a/Makefile
-+++ b/Makefile
-@@ -25,7 +25,7 @@ PATH_BUILD=$(PATH_BASE)/_build
- PATH_OCAMLDOC=$(PATH_BASE)/ocamldoc
- PATH_SRC=$(PATH_BASE)/src
- PATH_TESTS=$(PATH_BASE)/tests
--PATH_INSTALL=$(PATH_OCAML_PREFIX)/lib/ocaml/bisect
-+PATH_INSTALL=$(PREFIX)/lib/ocaml/bisect
- 
- 
- # DEFINITIONS
-@@ -33,7 +33,8 @@ PATH_INSTALL=$(PATH_OCAML_PREFIX)/lib/ocaml/bisect
- PROJECT_NAME=bisect
- OCAMLBUILD=ocamlbuild
- OCAMLBUILD_ENV=WARNINGS=$(WARNINGS) PATH_OCAML_PREFIX=$(PATH_OCAML_PREFIX)
--OCAMLBUILD_FLAGS=-classic-display -no-links
-+CAMLP4_INCLUDE=$(shell test -z $(CAMLP4_LIBDIR) || echo "-cflags -I,$(CAMLP4_LIBDIR)")
-+OCAMLBUILD_FLAGS=-classic-display -no-links $(CAMLP4_INCLUDE)
- MODULES_ODOCL=$(PROJECT_NAME).odocl
- MODULES_MLPACK=$(PROJECT_NAME).mlpack
- MODULES_MLPACK_PP=$(PROJECT_NAME)_pp.mlpack
-@@ -80,11 +81,11 @@ veryclean: clean
- 	rm -f $(PATH_OCAMLDOC)/*.html $(PATH_OCAMLDOC)/*.css
- 
- install: FORCE
--	cp $(PATH_BUILD)/src/report/report.byte $(PATH_OCAML_PREFIX)/bin/bisect-report; \
-+	cp $(PATH_BUILD)/src/report/report.byte $(PREFIX)/bin/bisect-report; \
- 	if [ "$(PPX)" = "TRUE" ]; then \
--	  cp $(PATH_BUILD)/src/syntax/bisect_ppx.byte $(PATH_OCAML_PREFIX)/bin; \
-+	  cp $(PATH_BUILD)/src/syntax/bisect_ppx.byte $(PREFIX)/bin; \
- 	fi; \
--	(which ocamlopt && cp $(PATH_BUILD)/src/report/report.native $(PATH_OCAML_PREFIX)/bin/bisect-report.opt || true); \
-+	(which ocamlopt && cp $(PATH_BUILD)/src/report/report.native $(PREFIX)/bin/bisect-report.opt || true); \
- 	if [ -x "$(PATH_OCAMLFIND)" ]; then \
- 	  $(PATH_OCAMLFIND) query $(PROJECT_NAME) && $(PATH_OCAMLFIND) remove $(PROJECT_NAME) || true; \
- 	  $(PATH_OCAMLFIND) install $(PROJECT_NAME) META -optional \
-diff --git a/configure b/configure
-index bb7ebf4..43ef46b 100755
---- a/configure
-+++ b/configure
-@@ -21,7 +21,9 @@
- # default values
- ocamlbuild=`which ocamlbuild || echo '/usr/local/bin/ocamlbuild'`
- bin_path=`dirname $ocamlbuild`
-+prefix=''
- ocaml_prefix=`dirname $bin_path`
-+camlp4_prefix=`dirname $(dirname $(which camlp4of))`
- ocamlfind=`which ocamlfind 2> /dev/null || echo ''`
- native_dynlink='TRUE'
- devel='FALSE'
-@@ -32,8 +34,12 @@ ppx='FALSE'
- while [ $# -gt 0 ]
- do
-     case "$1" in
-+        -prefix)
-+            prefix="$2"; shift;;
-         -ocaml-prefix)
-             ocaml_prefix="$2"; shift;;
-+        -camlp4-prefix)
-+            camlp4_prefix="$2"; shift;;
-         -ocamlfind)
-             ocamlfind="$2"; shift;;
-         -no-native-dynlink)
-@@ -45,7 +51,7 @@ do
-         -ppx)
-             ppx='TRUE';;
-         *)
--            echo "usage: $0 [-ocaml-prefix <path>] [-ocamlfind <path>] [-no-native-dynlink] [-devel]";
-+            echo "usage: $0 [-prefix <path>] [-ocaml-prefix <path>] [-camlp4-prefix <path>] [-ocamlfind <path>] [-no-native-dynlink] [-devel]";
-             exit 1;;
-         esac
-         shift
-@@ -57,6 +63,9 @@ if [ "$no_camlp4" = "TRUE" -a "$ppx" = "FALSE" ]; then
-   exit 1
- fi
- 
-+# prefix default value
-+test -z $prefix && prefix=$ocaml_prefix
-+
- # make options
- make_quiet=`make -f - <<EOF
- default: gnumake
-@@ -66,7 +75,9 @@ EOF`
- 
- # file creation
- echo "# timestamp: `date`" > Makefile.config
-+echo "PREFIX=$prefix" >> Makefile.config
- echo "PATH_OCAML_PREFIX=$ocaml_prefix" >> Makefile.config
-+echo "PATH_CAMLP4_PREFIX=$camlp4_prefix" >> Makefile.config
- echo "PATH_OCAMLFIND=$ocamlfind" >> Makefile.config
- echo "NATIVE_DYNLINK=$native_dynlink" >> Makefile.config
- echo "WARNINGS=$devel" >> Makefile.config
-diff --git a/tests/Makefile b/tests/Makefile
-index 1aba27f..9642323 100644
---- a/tests/Makefile
-+++ b/tests/Makefile
-@@ -41,7 +41,7 @@ one: FORCE
- 	else \
- 	  echo "Running tests for '$(NAME)'..." | tee -a _log; \
-           (cd $(NAME) && \
--	    $(MAKE) PATH_OCAML_BIN=$(PATH_OCAML_PREFIX)/bin \
-+	    $(MAKE) PATH_OCAML_BIN=$(PATH_OCAML_PREFIX)/bin PATH_CAMLP4_PREFIX=$(PATH_CAMLP4_PREFIX) \
- 	    COMPILER=ocamlc EXECUTABLE=bytecode RUN=./ LIB_EXT=cma EXE_SUFFIX='' \
- 	    REPORT=../../_build/src/report/report.byte && \
- 	  cd ..) || echo '*** error' >> _log; \
-diff --git a/tests/camlp4-comments/Makefile b/tests/camlp4-comments/Makefile
-index 33fca72..a918118 100644
---- a/tests/camlp4-comments/Makefile
-+++ b/tests/camlp4-comments/Makefile
-@@ -2,7 +2,7 @@ default:
- 	@rm -fr *.result *.cmp
- 	@for file in *.ml; do \
- 		echo "     testing '$$file' ..."; \
--		$(PATH_OCAML_BIN)/camlp4o$(EXE_SUFFIX) str.cma ../../_build/bisect_pp.cmo $$file -o $$file.result; \
-+		$(PATH_CAMLP4_PREFIX)/bin/camlp4o$(EXE_SUFFIX) str.cma ../../_build/bisect_pp.cmo $$file -o $$file.result; \
- 		diff -q $$file.reference $$file.result || exit 1; \
- 	done
- 	@rm -fr *.result *.cmp
-diff --git a/tests/camlp4-exclude-file/Makefile b/tests/camlp4-exclude-file/Makefile
-index ab13983..e2520fa 100644
---- a/tests/camlp4-exclude-file/Makefile
-+++ b/tests/camlp4-exclude-file/Makefile
-@@ -2,7 +2,7 @@ default:
- 	@rm -fr *.result *.cmp
- 	@for file in *.ml; do \
- 		echo "     testing '$$file' ..."; \
--		$(PATH_OCAML_BIN)/camlp4o$(EXE_SUFFIX) str.cma ../../_build/bisect_pp.cmo $$file -exclude-file exclusions -o $$file.result; \
-+		$(PATH_CAMLP4_PREFIX)/bin/camlp4o$(EXE_SUFFIX) str.cma ../../_build/bisect_pp.cmo $$file -exclude-file exclusions -o $$file.result; \
- 		diff -q $$file.reference $$file.result || exit 1; \
- 	done
- 	@rm -fr *.result *.cmp
-diff --git a/tests/camlp4-exclude/Makefile b/tests/camlp4-exclude/Makefile
-index 18aada4..d71a7bc 100644
---- a/tests/camlp4-exclude/Makefile
-+++ b/tests/camlp4-exclude/Makefile
-@@ -2,7 +2,7 @@ default:
- 	@rm -fr *.result *.cmp
- 	@for file in *.ml; do \
- 		echo "     testing '$$file' ..."; \
--		$(PATH_OCAML_BIN)/camlp4o$(EXE_SUFFIX) str.cma ../../_build/bisect_pp.cmo $$file -exclude 'f.*' -o $$file.result; \
-+		$(PATH_CAMLP4_PREFIX)/bin/camlp4o$(EXE_SUFFIX) str.cma ../../_build/bisect_pp.cmo $$file -exclude 'f.*' -o $$file.result; \
- 		diff -q $$file.reference $$file.result || exit 1; \
- 	done
- 	@rm -fr *.result *.cmp
-diff --git a/tests/camlp4-instrument-fast/Makefile b/tests/camlp4-instrument-fast/Makefile
-index f60767f..8506e38 100644
---- a/tests/camlp4-instrument-fast/Makefile
-+++ b/tests/camlp4-instrument-fast/Makefile
-@@ -2,7 +2,7 @@ default:
- 	@rm -fr *.result *.cmp
- 	@for file in *.ml; do \
- 		echo "     testing '$$file' ..."; \
--		$(PATH_OCAML_BIN)/camlp4o$(EXE_SUFFIX) str.cma ../../_build/bisect_pp.cmo -mode fast $$file -o $$file.result; \
-+		$(PATH_CAMLP4_PREFIX)/bin/camlp4o$(EXE_SUFFIX) str.cma ../../_build/bisect_pp.cmo -mode fast $$file -o $$file.result; \
- 		diff -q $$file.reference $$file.result || exit 1; \
- 	done
- 	@rm -fr *.result *.cmp
-diff --git a/tests/camlp4-instrument/Makefile b/tests/camlp4-instrument/Makefile
-index 33fca72..a918118 100644
---- a/tests/camlp4-instrument/Makefile
-+++ b/tests/camlp4-instrument/Makefile
-@@ -2,7 +2,7 @@ default:
- 	@rm -fr *.result *.cmp
- 	@for file in *.ml; do \
- 		echo "     testing '$$file' ..."; \
--		$(PATH_OCAML_BIN)/camlp4o$(EXE_SUFFIX) str.cma ../../_build/bisect_pp.cmo $$file -o $$file.result; \
-+		$(PATH_CAMLP4_PREFIX)/bin/camlp4o$(EXE_SUFFIX) str.cma ../../_build/bisect_pp.cmo $$file -o $$file.result; \
- 		diff -q $$file.reference $$file.result || exit 1; \
- 	done
- 	@rm -fr *.result *.cmp
-diff --git a/tests/combine-expr/Makefile b/tests/combine-expr/Makefile
-index 46ae9eb..e8e2af2 100644
---- a/tests/combine-expr/Makefile
-+++ b/tests/combine-expr/Makefile
-@@ -1,4 +1,4 @@
--COMPILE_FLAGS=-I ../../_build -pp '$(PATH_OCAML_BIN)/camlp4o str.cma -I ../../_build bisect_pp.cmo' bisect.$(LIB_EXT) $(FLAGS)
-+COMPILE_FLAGS=-I ../../_build -pp '$(PATH_CAMLP4_PREFIX)/bin/camlp4o str.cma -I ../../_build bisect_pp.cmo' bisect.$(LIB_EXT) $(FLAGS)
- 
- default: clean compile run report
- 
-diff --git a/tests/ppx-comments/Makefile b/tests/ppx-comments/Makefile
-index f8c645a..667526f 100644
---- a/tests/ppx-comments/Makefile
-+++ b/tests/ppx-comments/Makefile
-@@ -2,7 +2,7 @@ default:
- 	@rm -fr *.result *.cm*
- 	@for file in *.ml; do \
- 		echo "     testing '$$file' ..."; \
--		$(PATH_OCAML_BIN)/ocamlc -c -I ../../_build -ppx '../../_build/src/syntax/bisect_ppx.byte' -dsource $$file 2> $$file.result; \
-+		$(PATH_CAMLP4_PREFIX)/bin/ocamlc -c -I ../../_build -ppx '../../_build/src/syntax/bisect_ppx.byte' -dsource $$file 2> $$file.result; \
- 		diff -q $$file.reference $$file.result || exit 1; \
- 	done
- 	@rm -fr *.result *.cm*
-diff --git a/tests/ppx-exclude-file/Makefile b/tests/ppx-exclude-file/Makefile
-index a575a77..0dd1a20 100644
---- a/tests/ppx-exclude-file/Makefile
-+++ b/tests/ppx-exclude-file/Makefile
-@@ -2,7 +2,7 @@ default:
- 	@rm -fr *.result *.cm*
- 	@for file in *.ml; do \
- 		echo "     testing '$$file' ..."; \
--		$(PATH_OCAML_BIN)/ocamlc -c -I ../../_build -ppx '../../_build/src/syntax/bisect_ppx.byte -exclude-file exclusions' -dsource $$file 2> $$file.result; \
-+		$(PATH_CAMLP4_PREFIX)/bin/ocamlc -c -I ../../_build -ppx '../../_build/src/syntax/bisect_ppx.byte -exclude-file exclusions' -dsource $$file 2> $$file.result; \
- 		diff -q $$file.reference $$file.result || exit 1; \
- 	done
- 	@rm -fr *.result *.cm*
-diff --git a/tests/ppx-exclude/Makefile b/tests/ppx-exclude/Makefile
-index a517af4..f502a42 100644
---- a/tests/ppx-exclude/Makefile
-+++ b/tests/ppx-exclude/Makefile
-@@ -2,7 +2,7 @@ default:
- 	@rm -fr *.result *.cm*
- 	@for file in *.ml; do \
- 		echo "     testing '$$file' ..."; \
--		$(PATH_OCAML_BIN)/ocamlc -c -I ../../_build -ppx "../../_build/src/syntax/bisect_ppx.byte -exclude 'f.*'" -dsource $$file 2> $$file.result; \
-+		$(PATH_CAMLP4_PREFIX)/bin/ocamlc -c -I ../../_build -ppx "../../_build/src/syntax/bisect_ppx.byte -exclude 'f.*'" -dsource $$file 2> $$file.result; \
- 		diff -q $$file.reference $$file.result || exit 1; \
- 	done
- 	@rm -fr *.result *.cm*
-diff --git a/tests/ppx-instrument-fast/Makefile b/tests/ppx-instrument-fast/Makefile
-index da78bb6..1195988 100644
---- a/tests/ppx-instrument-fast/Makefile
-+++ b/tests/ppx-instrument-fast/Makefile
-@@ -2,7 +2,7 @@ default:
- 	@rm -fr *.result *.cm*
- 	@for file in *.ml; do \
- 		echo "     testing '$$file' ..."; \
--		$(PATH_OCAML_BIN)/ocamlc -c -I ../../_build -ppx '../../_build/src/syntax/bisect_ppx.byte -mode fast' -dsource $$file 2> $$file.result; \
-+		$(PATH_CAMLP4_PREFIX)/bin/ocamlc -c -I ../../_build -ppx '../../_build/src/syntax/bisect_ppx.byte -mode fast' -dsource $$file 2> $$file.result; \
- 		diff -q $$file.reference $$file.result || exit 1; \
- 	done
- 	@rm -fr *.result *.cm*
-diff --git a/tests/ppx-instrument/Makefile b/tests/ppx-instrument/Makefile
-index f8c645a..667526f 100644
---- a/tests/ppx-instrument/Makefile
-+++ b/tests/ppx-instrument/Makefile
-@@ -2,7 +2,7 @@ default:
- 	@rm -fr *.result *.cm*
- 	@for file in *.ml; do \
- 		echo "     testing '$$file' ..."; \
--		$(PATH_OCAML_BIN)/ocamlc -c -I ../../_build -ppx '../../_build/src/syntax/bisect_ppx.byte' -dsource $$file 2> $$file.result; \
-+		$(PATH_CAMLP4_PREFIX)/bin/ocamlc -c -I ../../_build -ppx '../../_build/src/syntax/bisect_ppx.byte' -dsource $$file 2> $$file.result; \
- 		diff -q $$file.reference $$file.result || exit 1; \
- 	done
- 	@rm -fr *.result *.cm*
-diff --git a/tests/report/Makefile b/tests/report/Makefile
-index a7ffe44..a968bf9 100644
---- a/tests/report/Makefile
-+++ b/tests/report/Makefile
-@@ -1,4 +1,4 @@
--COMPILE_FLAGS=-I ../../_build -pp '$(PATH_OCAML_BIN)/camlp4o str.cma -I ../../_build bisect_pp.cmo' bisect.$(LIB_EXT) $(FLAGS)
-+COMPILE_FLAGS=-I ../../_build -pp '$(PATH_CAMLP4_PREFIX)/bin/camlp4o str.cma -I ../../_build bisect_pp.cmo' bisect.$(LIB_EXT) $(FLAGS)
- XMLLINT=$(shell which xmllint)
- 
- default: clean compile run report
--- 
-2.18.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
new file mode 100644
index 0000000000..1ebde1997f
--- /dev/null
+++ b/gnu/packages/patches/ocaml-cairo2-caml_ba_array-fix.patch
@@ -0,0 +1,68 @@
+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/ola-readdir-r.patch b/gnu/packages/patches/ola-readdir-r.patch
deleted file mode 100644
index b4bd98137e..0000000000
--- a/gnu/packages/patches/ola-readdir-r.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-Fix build failure caused by use of the deprecated readdir_r(3) while
-building with -Werror=deprecated-declarations
-
-Patch copied from upstream source repository:
-https://github.com/daveol/ola/commit/9d8575ff38f76df698ea8889e07a3dee8f21bd68
-
-From 9d8575ff38f76df698ea8889e07a3dee8f21bd68 Mon Sep 17 00:00:00 2001
-From: Dave Olsthoorn <dave.olsthoorn@gmail.com>
-Date: Wed, 2 Mar 2016 11:22:17 +0100
-Subject: [PATCH] Use readdir instead of readdir_r
-
-This replacec the use of readdir_r with readdir since readdir seems to
-be both dangarous and deprecated in newer versions of glibc.
-
-This fixes #1055
----
- common/file/Util.cpp | 17 ++++++++---------
- 1 file changed, 8 insertions(+), 9 deletions(-)
-
-diff --git a/common/file/Util.cpp b/common/file/Util.cpp
-index e2261fd..0ffddd3 100644
---- a/common/file/Util.cpp
-+++ b/common/file/Util.cpp
-@@ -128,30 +128,29 @@ bool FindMatchingFiles(const string &directory,
-   FindClose(h_find);
- #else
-   DIR *dp;
--  struct dirent dir_ent;
--  struct dirent *dir_ent_p;
-+  struct dirent *dir_ent;
-   if ((dp = opendir(directory.data())) == NULL) {
-     OLA_WARN << "Could not open " << directory << ":" << strerror(errno);
-     return false;
-   }
- 
--  if (readdir_r(dp, &dir_ent, &dir_ent_p)) {
--    OLA_WARN << "readdir_r(" << directory << "): " << strerror(errno);
-+  if ((dir_ent = readdir(dp)) == NULL) {
-+    OLA_WARN << "readdir(" << directory << "): " << strerror(errno);
-     closedir(dp);
-     return false;
-   }
- 
--  while (dir_ent_p != NULL) {
-+  while (dir_ent != NULL) {
-     vector<string>::const_iterator iter;
-     for (iter = prefixes.begin(); iter != prefixes.end(); ++iter) {
--      if (!strncmp(dir_ent_p->d_name, iter->data(), iter->size())) {
-+      if (!strncmp(dir_ent->d_name, iter->data(), iter->size())) {
-         std::ostringstream str;
--        str << directory << PATH_SEPARATOR << dir_ent_p->d_name;
-+        str << directory << PATH_SEPARATOR << dir_ent->d_name;
-         files->push_back(str.str());
-       }
-     }
--    if (readdir_r(dp, &dir_ent, &dir_ent_p)) {
--      OLA_WARN << "readdir_r(" << directory << "): " << strerror(errno);
-+    if ((dir_ent = readdir(dp)) == NULL) {
-+      OLA_WARN << "readdir(" << directory << "): " << strerror(errno);
-       closedir(dp);
-       return false;
-     }
diff --git a/gnu/packages/patches/opencv-fix-build-of-grfmt_jpeg2000.cpp.patch b/gnu/packages/patches/opencv-fix-build-of-grfmt_jpeg2000.cpp.patch
new file mode 100644
index 0000000000..8deb60296a
--- /dev/null
+++ b/gnu/packages/patches/opencv-fix-build-of-grfmt_jpeg2000.cpp.patch
@@ -0,0 +1,39 @@
+From: Tobias Geerinckx-Rice <me@tobias.gr>
+Date: Thu, 13 Aug 2020 15:21:30 +0200
+Subject: [PATCH] gnu: opencv: Fix build with Jasper 2.0.19.
+
+Taken verbatim from upstream: <https://github.com/opencv/opencv/issues/17984>.
+
+From f66fc199a20882c546fa31142e9c0f5a8b3cf983 Mon Sep 17 00:00:00 2001
+From: Florian Jung <flo@windfis.ch>
+Date: Wed, 29 Jul 2020 18:51:55 +0200
+Subject: [PATCH] Fix build of grfmt_jpeg2000.cpp
+
+libjasper has recently changed `jas_matrix_get` from a macro to an inline function
+(389951d071 in https://github.com/jasper-software/jasper), causing the build to fail.
+---
+ modules/imgcodecs/src/grfmt_jpeg2000.cpp | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/modules/imgcodecs/src/grfmt_jpeg2000.cpp b/modules/imgcodecs/src/grfmt_jpeg2000.cpp
+index fe69f80c86f..0f4d28d6f4d 100644
+--- a/modules/imgcodecs/src/grfmt_jpeg2000.cpp
++++ b/modules/imgcodecs/src/grfmt_jpeg2000.cpp
+@@ -377,7 +377,7 @@ bool  Jpeg2KDecoder::readComponent8u( uchar *data, void *_buffer,
+ 
+     for( y = 0; y < yend - ystart; )
+     {
+-        jas_seqent_t* pix_row = &jas_matrix_get( buffer, y / ystep, 0 );
++        jas_seqent_t* pix_row = jas_matrix_getref( buffer, y / ystep, 0 );
+         uchar* dst = data + (y - yoffset) * step - xoffset;
+ 
+         if( xstep == 1 )
+@@ -443,7 +443,7 @@ bool  Jpeg2KDecoder::readComponent16u( unsigned short *data, void *_buffer,
+ 
+     for( y = 0; y < yend - ystart; )
+     {
+-        jas_seqent_t* pix_row = &jas_matrix_get( buffer, y / ystep, 0 );
++        jas_seqent_t* pix_row = jas_matrix_getref( buffer, y / ystep, 0 );
+         ushort* dst = data + (y - yoffset) * step - xoffset;
+ 
+         if( xstep == 1 )
diff --git a/gnu/packages/patches/openocd-nrf52.patch b/gnu/packages/patches/openocd-nrf52.patch
deleted file mode 100644
index 0ec4348cb4..0000000000
--- a/gnu/packages/patches/openocd-nrf52.patch
+++ /dev/null
@@ -1,827 +0,0 @@
-This patch adds support for nRF52 series devices.  It is patchset 7 from
-<http://openocd.zylin.com/#/c/3511/>, which has been tested, but not
-merged yet in master.
-
-From: Michael Dietz <mjdietzx@gmail.com>
-Date: Mon, 30 May 2016 12:50:44 +0000 (-0700)
-Subject: Added support for nRF52 Series Devices.
-X-Git-Url: http://openocd.zylin.com/gitweb?p=openocd.git;a=commitdiff_plain;h=9ba15633e221d9d72e320372ba8f49d3f30d4bce
-
-Added support for nRF52 Series Devices.
-
-Both nrf52.c and nrf52.cfg are based off of previous nRF51 files.
-- Some possible race conditions with NVMC have been fixed in nRF52.c
-- Removed nrf51_get_probed_chip_if_halted() as the core does not have to be halted to perform operations where it is called.
-- Only registers that are needed by openOCD are defined, some registers in nRF51 don't exist in nRF52 and are removed.
-- Some all around cleanup has been done.
-- The protection mechanism is completely different on nRF52 and this has not been implemented yet - just prints a warning and returns for now.
-
-Change-Id: I4dd42c86f33f450709bb981806c2655f04aa6201
-Signed-off-by: Michael Dietz <mjdietzx@gmail.com>
----
-
-diff --git a/src/flash/nor/Makefile.am b/src/flash/nor/Makefile.am
-index 727e4f2..839667c 100644
---- a/src/flash/nor/Makefile.am
-+++ b/src/flash/nor/Makefile.am
-@@ -36,6 +36,7 @@ NOR_DRIVERS = \
- 	%D%/niietcm4.c \
- 	%D%/non_cfi.c \
- 	%D%/nrf51.c \
-+	%D%/nrf52.c \
- 	%D%/numicro.c \
- 	%D%/ocl.c \
- 	%D%/pic32mx.c \
-diff --git a/src/flash/nor/drivers.c b/src/flash/nor/drivers.c
-index 56a5cb2..071273e 100644
---- a/src/flash/nor/drivers.c
-+++ b/src/flash/nor/drivers.c
-@@ -48,6 +48,7 @@ extern struct flash_driver mdr_flash;
- extern struct flash_driver mrvlqspi_flash;
- extern struct flash_driver niietcm4_flash;
- extern struct flash_driver nrf51_flash;
-+extern struct flash_driver nrf52_flash;
- extern struct flash_driver numicro_flash;
- extern struct flash_driver ocl_flash;
- extern struct flash_driver pic32mx_flash;
-@@ -100,6 +101,7 @@ static struct flash_driver *flash_drivers[] = {
- 	&mrvlqspi_flash,
- 	&niietcm4_flash,
- 	&nrf51_flash,
-+       &nrf52_flash,
- 	&numicro_flash,
- 	&ocl_flash,
- 	&pic32mx_flash,
-diff --git a/src/flash/nor/nrf52.c b/src/flash/nor/nrf52.c
-new file mode 100644
-index 0000000..7f2bd35
---- /dev/null
-+++ b/src/flash/nor/nrf52.c
-@@ -0,0 +1,733 @@
-+/***************************************************************************
-+ *   Copyright (C) 2013 Synapse Product Development                        *
-+ *   Andrey Smirnov <andrew.smironv@gmail.com>                             *
-+ *   Angus Gratton <gus@projectgus.com>                                    *
-+ *   Erdem U. Altunyurt <spamjunkeater@gmail.com>                          *
-+ *                                                                         *
-+ *   This program is free software; you can redistribute it and/or modify  *
-+ *   it under the terms of the GNU General Public License as published by  *
-+ *   the Free Software Foundation; either version 2 of the License, or     *
-+ *   (at your option) any later version.                                   *
-+ *                                                                         *
-+ *   This program 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 this program.  If not, see <http://www.gnu.org/licenses/>. *
-+ ***************************************************************************/
-+
-+#ifdef HAVE_CONFIG_H
-+#include "config.h"
-+#endif
-+
-+#include <stdlib.h>
-+
-+#include "imp.h"
-+#include <target/algorithm.h>
-+#include <target/armv7m.h>
-+#include <helper/types.h>
-+
-+/* nRF52 Register addresses used by openOCD. */
-+#define NRF52_FLASH_BASE_ADDR        (0x0)
-+
-+#define NRF52_FICR_BASE_ADDR         (0x10000000)
-+#define NRF52_FICR_CODEPAGESIZE_ADDR (NRF52_FICR_BASE_ADDR | 0x010)
-+#define NRF52_FICR_CODESIZE_ADDR     (NRF52_FICR_BASE_ADDR | 0x014)
-+
-+#define NRF52_UICR_BASE_ADDR         (0x10001000)
-+
-+#define NRF52_NVMC_BASE_ADDR         (0x4001E000)
-+#define NRF52_NVMC_READY_ADDR        (NRF52_NVMC_BASE_ADDR | 0x400)
-+#define NRF52_NVMC_CONFIG_ADDR       (NRF52_NVMC_BASE_ADDR | 0x504)
-+#define NRF52_NVMC_ERASEPAGE_ADDR    (NRF52_NVMC_BASE_ADDR | 0x508)
-+#define NRF52_NVMC_ERASEALL_ADDR     (NRF52_NVMC_BASE_ADDR | 0x50C)
-+#define NRF52_NVMC_ERASEUICR_ADDR    (NRF52_NVMC_BASE_ADDR | 0x514)
-+
-+/* nRF52 bit fields. */
-+enum nrf52_nvmc_config_bits {
-+	NRF52_NVMC_CONFIG_REN = 0x0,
-+	NRF52_NVMC_CONFIG_WEN = 0x01,
-+	NRF52_NVMC_CONFIG_EEN = 0x02
-+};
-+
-+enum nrf52_nvmc_ready_bits {
-+	NRF52_NVMC_BUSY  = 0x0,
-+	NRF52_NVMC_READY = 0x01
-+};
-+
-+/* nRF52 state information. */
-+struct nrf52_info {
-+	uint32_t code_page_size; /* Size of FLASH page in bytes. */
-+	uint32_t code_memory_size; /* Size of Code FLASH region in bytes. */
-+
-+	struct {
-+		bool probed;
-+		int (*write) (struct flash_bank *bank,
-+				struct nrf52_info *chip,
-+				const uint8_t *buffer, uint32_t offset, uint32_t count);
-+	} bank[2]; /* There are two regions in nRF52 FLASH - Code and UICR. */
-+	struct target *target;
-+};
-+
-+static int nrf52_protect_check(struct flash_bank *bank);
-+
-+static int nrf52_probe(struct flash_bank *bank)
-+{
-+	int res;
-+	struct nrf52_info *chip = bank->driver_priv;
-+	assert(chip != NULL);
-+
-+	res = target_read_u32(chip->target,
-+						NRF52_FICR_CODEPAGESIZE_ADDR,
-+						&chip->code_page_size);
-+	if (res != ERROR_OK) {
-+		LOG_ERROR("Couldn't read code page size");
-+		return res;
-+	}
-+
-+	res = target_read_u32(chip->target,
-+						NRF52_FICR_CODESIZE_ADDR,
-+						&chip->code_memory_size);
-+	if (res != ERROR_OK) {
-+		LOG_ERROR("Couldn't read code memory size");
-+		return res;
-+	}
-+
-+	chip->code_memory_size = chip->code_memory_size * chip->code_page_size;
-+
-+	if (bank->base == NRF52_FLASH_BASE_ADDR) {
-+		bank->size = chip->code_memory_size;
-+		bank->num_sectors = bank->size / chip->code_page_size;
-+		bank->sectors = calloc(bank->num_sectors,
-+							sizeof((bank->sectors)[0]));
-+		if (!bank->sectors)
-+			return ERROR_FLASH_BANK_NOT_PROBED;
-+
-+		/* Fill out the sector information: All nRF51 sectors are the same size. */
-+		for (int i = 0; i < bank->num_sectors; i++) {
-+			bank->sectors[i].size = chip->code_page_size;
-+			bank->sectors[i].offset	= i * chip->code_page_size;
-+
-+			/* Mark as unknown. */
-+			bank->sectors[i].is_erased = -1;
-+			bank->sectors[i].is_protected = -1;
-+		}
-+
-+		nrf52_protect_check(bank);
-+
-+		chip->bank[0].probed = true;
-+	} else { /* This is the UICR bank. */
-+		bank->size = chip->code_page_size;
-+		bank->num_sectors = 1;
-+		bank->sectors = calloc(bank->num_sectors,
-+							sizeof((bank->sectors)[0]));
-+		if (!bank->sectors)
-+			return ERROR_FLASH_BANK_NOT_PROBED;
-+
-+		bank->sectors[0].size = bank->size;
-+		bank->sectors[0].offset	= 0;
-+
-+		bank->sectors[0].is_erased = -1;
-+		bank->sectors[0].is_protected = -1;
-+
-+		chip->bank[1].probed = true;
-+	}
-+
-+	return ERROR_OK;
-+}
-+
-+static int nrf52_bank_is_probed(struct flash_bank *bank)
-+{
-+	struct nrf52_info *chip = bank->driver_priv;
-+	assert(chip != NULL);
-+
-+	return chip->bank[bank->bank_number].probed;
-+}
-+
-+static int nrf52_auto_probe(struct flash_bank *bank)
-+{
-+	if (!nrf52_bank_is_probed(bank))
-+		return nrf52_probe(bank);
-+	else
-+		return ERROR_OK;
-+}
-+
-+static int nrf52_wait_for_nvmc(struct nrf52_info *chip)
-+{
-+	int res;
-+	uint32_t ready;
-+	int timeout = 100;
-+
-+	do {
-+		res = target_read_u32(chip->target, NRF52_NVMC_READY_ADDR, &ready);
-+		if (res != ERROR_OK) {
-+			LOG_ERROR("Couldn't read NVMC_READY register");
-+			return res;
-+		}
-+
-+		if (ready == NRF52_NVMC_READY)
-+			return ERROR_OK;
-+
-+		alive_sleep(1);
-+	} while (timeout--);
-+
-+	LOG_DEBUG("Timed out waiting for the NVMC to be ready");
-+	return ERROR_FLASH_BUSY;
-+}
-+
-+static int nrf52_nvmc_erase_enable(struct nrf52_info *chip)
-+{
-+	int res;
-+
-+	res = nrf52_wait_for_nvmc(chip);
-+	if (res != ERROR_OK)
-+		return res;
-+
-+	res = target_write_u32(chip->target,
-+						NRF52_NVMC_CONFIG_ADDR,
-+						NRF52_NVMC_CONFIG_EEN);
-+	if (res != ERROR_OK) {
-+		LOG_ERROR("Failed to configure the NVMC for erasing");
-+		return res;
-+	}
-+
-+	return res;
-+}
-+
-+static int nrf52_nvmc_write_enable(struct nrf52_info *chip)
-+{
-+	int res;
-+
-+	res = nrf52_wait_for_nvmc(chip);
-+	if (res != ERROR_OK)
-+		return res;
-+
-+	res = target_write_u32(chip->target,
-+						NRF52_NVMC_CONFIG_ADDR,
-+						NRF52_NVMC_CONFIG_WEN);
-+	if (res != ERROR_OK) {
-+		LOG_ERROR("Failed to configure the NVMC for writing");
-+		return res;
-+	}
-+
-+	return res;
-+}
-+
-+static int nrf52_nvmc_read_only(struct nrf52_info *chip)
-+{
-+	int res;
-+
-+	res = nrf52_wait_for_nvmc(chip);
-+	if (res != ERROR_OK)
-+		return res;
-+
-+	res = target_write_u32(chip->target,
-+						NRF52_NVMC_CONFIG_ADDR,
-+						NRF52_NVMC_CONFIG_REN);
-+	if (res != ERROR_OK) {
-+		LOG_ERROR("Failed to configure the NVMC for read-only");
-+		return res;
-+	}
-+
-+	return res;
-+}
-+
-+static int nrf52_nvmc_generic_erase(struct nrf52_info *chip,
-+								uint32_t erase_register,
-+								uint32_t erase_value)
-+{
-+	int res;
-+
-+	res = nrf52_nvmc_erase_enable(chip);
-+	if (res != ERROR_OK)
-+		return res;
-+
-+	res = target_write_u32(chip->target,
-+						erase_register,
-+						erase_value);
-+	if (res != ERROR_OK)
-+		LOG_ERROR("Failed to write NVMC erase register");
-+
-+	return nrf52_nvmc_read_only(chip);
-+}
-+
-+static int nrf52_protect_check(struct flash_bank *bank)
-+{
-+	LOG_WARNING("nrf52_protect_check() is not implemented for nRF52 series devices yet");
-+	return ERROR_OK;
-+}
-+
-+static int nrf52_protect(struct flash_bank *bank, int set, int first, int last)
-+{
-+	LOG_WARNING("nrf52_protect() is not implemented for nRF52 series devices yet");
-+	return ERROR_OK;
-+}
-+
-+static struct flash_sector *nrf52_find_sector_by_address(struct flash_bank *bank, uint32_t address)
-+{
-+	struct nrf52_info *chip = bank->driver_priv;
-+	assert(chip != NULL);
-+
-+	for (int i = 0; i < bank->num_sectors; i++)
-+		if (bank->sectors[i].offset <= address &&
-+			address < (bank->sectors[i].offset + chip->code_page_size)) {
-+			return &bank->sectors[i];
-+		}
-+
-+	return NULL;
-+}
-+
-+static int nrf52_erase_all(struct nrf52_info *chip)
-+{
-+	LOG_DEBUG("Erasing all non-volatile memory");
-+	return nrf52_nvmc_generic_erase(chip,
-+								NRF52_NVMC_ERASEALL_ADDR,
-+								0x01);
-+}
-+
-+static int nrf52_erase_page(struct flash_bank *bank,
-+							struct nrf52_info *chip,
-+							struct flash_sector *sector)
-+{
-+	int res;
-+
-+	LOG_DEBUG("Erasing page at 0x%"PRIx32, sector->offset);
-+	if (sector->is_protected == 1) {
-+		LOG_ERROR("Cannot erase protected sector at 0x%" PRIx32, sector->offset);
-+		return ERROR_FAIL;
-+	}
-+
-+	if (bank->base == NRF52_UICR_BASE_ADDR) {
-+		res = nrf52_nvmc_generic_erase(chip,
-+									NRF52_NVMC_ERASEUICR_ADDR,
-+									0x00000001);
-+	} else {
-+		res = nrf52_nvmc_generic_erase(chip,
-+									NRF52_NVMC_ERASEPAGE_ADDR,
-+									sector->offset);
-+	}
-+
-+	if (res == ERROR_OK)
-+		sector->is_erased = 1;
-+	return res;
-+}
-+
-+static const uint8_t nrf52_flash_write_code[] = {
-+	/* See contrib/loaders/flash/cortex-m0.S */
-+	/* <wait_fifo>: */
-+	0x0d, 0x68,		/* ldr	r5,	[r1,	#0] */
-+	0x00, 0x2d,		/* cmp	r5,	#0 */
-+	0x0b, 0xd0,		/* beq.n	1e <exit> */
-+	0x4c, 0x68,		/* ldr	r4,	[r1,	#4] */
-+	0xac, 0x42,		/* cmp	r4,	r5 */
-+	0xf9, 0xd0,		/* beq.n	0 <wait_fifo> */
-+	0x20, 0xcc,		/* ldmia	r4!,	{r5} */
-+	0x20, 0xc3,		/* stmia	r3!,	{r5} */
-+	0x94, 0x42,		/* cmp	r4,	r2 */
-+	0x01, 0xd3,		/* bcc.n	18 <no_wrap> */
-+	0x0c, 0x46,		/* mov	r4,	r1 */
-+	0x08, 0x34,		/* adds	r4,	#8 */
-+	/* <no_wrap>: */
-+	0x4c, 0x60,		/* str	r4, [r1,	#4] */
-+	0x04, 0x38,		/* subs	r0, #4 */
-+	0xf0, 0xd1,		/* bne.n	0 <wait_fifo> */
-+	/* <exit>: */
-+	0x00, 0xbe		/* bkpt	0x0000 */
-+};
-+
-+
-+/* Start a low level flash write for the specified region */
-+static int nrf52_ll_flash_write(struct nrf52_info *chip, uint32_t offset, const uint8_t *buffer, uint32_t bytes)
-+{
-+	struct target *target = chip->target;
-+	uint32_t buffer_size = 8192;
-+	struct working_area *write_algorithm;
-+	struct working_area *source;
-+	uint32_t address = NRF52_FLASH_BASE_ADDR + offset;
-+	struct reg_param reg_params[4];
-+	struct armv7m_algorithm armv7m_info;
-+	int retval = ERROR_OK;
-+
-+	LOG_DEBUG("Writing buffer to flash offset=0x%"PRIx32" bytes=0x%"PRIx32, offset, bytes);
-+	assert(bytes % 4 == 0);
-+
-+	/* allocate working area with flash programming code */
-+	if (target_alloc_working_area(target, sizeof(nrf52_flash_write_code),
-+			&write_algorithm) != ERROR_OK) {
-+		LOG_WARNING("no working area available, falling back to slow memory writes");
-+
-+		for (; bytes > 0; bytes -= 4) {
-+			retval = target_write_memory(chip->target,
-+										offset, 4, 1, buffer);
-+			if (retval != ERROR_OK)
-+				return retval;
-+
-+			retval = nrf52_wait_for_nvmc(chip);
-+			if (retval != ERROR_OK)
-+				return retval;
-+
-+			offset += 4;
-+			buffer += 4;
-+		}
-+
-+		return ERROR_OK;
-+	}
-+
-+	LOG_WARNING("using fast async flash loader. This is currently supported");
-+	LOG_WARNING("only with ST-Link and CMSIS-DAP. If you have issues, add");
-+	LOG_WARNING("\"set WORKAREASIZE 0\" before sourcing nrf52.cfg to disable it");
-+
-+	retval = target_write_buffer(target, write_algorithm->address,
-+				sizeof(nrf52_flash_write_code),
-+				nrf52_flash_write_code);
-+	if (retval != ERROR_OK)
-+		return retval;
-+
-+	/* memory buffer */
-+	while (target_alloc_working_area(target, buffer_size, &source) != ERROR_OK) {
-+		buffer_size /= 2;
-+		buffer_size &= ~3UL; /* Make sure it's 4 byte aligned */
-+		if (buffer_size <= 256) {
-+			/* free working area, write algorithm already allocated */
-+			target_free_working_area(target, write_algorithm);
-+
-+			LOG_WARNING("No large enough working area available, can't do block memory writes");
-+			return ERROR_TARGET_RESOURCE_NOT_AVAILABLE;
-+		}
-+	}
-+
-+	armv7m_info.common_magic = ARMV7M_COMMON_MAGIC;
-+	armv7m_info.core_mode = ARM_MODE_THREAD;
-+
-+	init_reg_param(&reg_params[0], "r0", 32, PARAM_IN_OUT);	/* byte count */
-+	init_reg_param(&reg_params[1], "r1", 32, PARAM_OUT);	/* buffer start */
-+	init_reg_param(&reg_params[2], "r2", 32, PARAM_OUT);	/* buffer end */
-+	init_reg_param(&reg_params[3], "r3", 32, PARAM_IN_OUT);	/* target address */
-+
-+	buf_set_u32(reg_params[0].value, 0, 32, bytes);
-+	buf_set_u32(reg_params[1].value, 0, 32, source->address);
-+	buf_set_u32(reg_params[2].value, 0, 32, source->address + source->size);
-+	buf_set_u32(reg_params[3].value, 0, 32, address);
-+
-+	retval = target_run_flash_async_algorithm(target, buffer, bytes/4, 4,
-+			0, NULL,
-+			4, reg_params,
-+			source->address, source->size,
-+			write_algorithm->address, 0,
-+			&armv7m_info);
-+
-+	target_free_working_area(target, source);
-+	target_free_working_area(target, write_algorithm);
-+
-+	destroy_reg_param(&reg_params[0]);
-+	destroy_reg_param(&reg_params[1]);
-+	destroy_reg_param(&reg_params[2]);
-+	destroy_reg_param(&reg_params[3]);
-+
-+	return retval;
-+}
-+
-+/* Check and erase flash sectors in specified range, then start a low level page write.
-+   start/end must be sector aligned.
-+*/
-+static int nrf52_write_pages(struct flash_bank *bank, uint32_t start, uint32_t end, const uint8_t *buffer)
-+{
-+	int res;
-+	uint32_t offset;
-+	struct flash_sector *sector;
-+	struct nrf52_info *chip = bank->driver_priv;
-+	assert(chip != NULL);
-+
-+	assert(start % chip->code_page_size == 0);
-+	assert(end % chip->code_page_size == 0);
-+
-+	/* Erase all sectors */
-+	for (offset = start; offset < end; offset += chip->code_page_size) {
-+		sector = nrf52_find_sector_by_address(bank, offset);
-+
-+		if (sector == NULL) {
-+			LOG_ERROR("Invalid sector @ 0x%08"PRIx32, offset);
-+			return ERROR_FLASH_SECTOR_INVALID;
-+		}
-+
-+		if (sector->is_protected == 1) {
-+			LOG_ERROR("Can't erase protected sector @ 0x%08"PRIx32, offset);
-+			return ERROR_FAIL;
-+		}
-+
-+		if (sector->is_erased != 1) {	/* 1 = erased, 0= not erased, -1 = unknown */
-+			res = nrf52_erase_page(bank, chip, sector);
-+			if (res != ERROR_OK) {
-+				LOG_ERROR("Failed to erase sector @ 0x%08"PRIx32, sector->offset);
-+				return res;
-+			}
-+		}
-+		sector->is_erased = 1;
-+	}
-+
-+	res = nrf52_nvmc_write_enable(chip);
-+	if (res != ERROR_OK)
-+		return res;
-+
-+	res = nrf52_ll_flash_write(chip, start, buffer, (end - start));
-+	if (res != ERROR_OK) {
-+		LOG_ERROR("Failed to write FLASH");
-+		nrf52_nvmc_read_only(chip);
-+		return res;
-+	}
-+
-+	return nrf52_nvmc_read_only(chip);
-+}
-+
-+static int nrf52_erase(struct flash_bank *bank, int first, int last)
-+{
-+	int res = ERROR_OK;
-+	struct nrf52_info *chip = bank->driver_priv;
-+	assert(chip != NULL);
-+
-+	/* For each sector to be erased */
-+	for (int s = first; s <= last && res == ERROR_OK; s++)
-+		res = nrf52_erase_page(bank, chip, &bank->sectors[s]);
-+
-+	return res;
-+}
-+
-+static int nrf52_code_flash_write(struct flash_bank *bank,
-+								struct nrf52_info *chip,
-+								const uint8_t *buffer, uint32_t offset, uint32_t count)
-+{
-+	int res;
-+	/* Need to perform reads to fill any gaps we need to preserve in the first page,
-+	   before the start of buffer, or in the last page, after the end of buffer */
-+	uint32_t first_page = offset / chip->code_page_size;
-+	uint32_t last_page = DIV_ROUND_UP(offset+count, chip->code_page_size);
-+
-+	uint32_t first_page_offset = first_page * chip->code_page_size;
-+	uint32_t last_page_offset = last_page * chip->code_page_size;
-+
-+	LOG_DEBUG("Padding write from 0x%08"PRIx32"-0x%08"PRIx32" as 0x%08"PRIx32"-0x%08"PRIx32,
-+			offset, offset+count, first_page_offset, last_page_offset);
-+
-+	uint32_t page_cnt = last_page - first_page;
-+	uint8_t buffer_to_flash[page_cnt * chip->code_page_size];
-+
-+	/* Fill in any space between start of first page and start of buffer */
-+	uint32_t pre = offset - first_page_offset;
-+	if (pre > 0) {
-+		res = target_read_memory(bank->target, first_page_offset, 1, pre, buffer_to_flash);
-+		if (res != ERROR_OK)
-+			return res;
-+	}
-+
-+	/* Fill in main contents of buffer */
-+	memcpy(buffer_to_flash + pre, buffer, count);
-+
-+	/* Fill in any space between end of buffer and end of last page */
-+	uint32_t post = last_page_offset - (offset + count);
-+	if (post > 0) {
-+		/* Retrieve the full row contents from Flash */
-+		res = target_read_memory(bank->target, offset + count, 1, post, buffer_to_flash + pre + count);
-+		if (res != ERROR_OK)
-+			return res;
-+	}
-+
-+	return nrf52_write_pages(bank, first_page_offset, last_page_offset, buffer_to_flash);
-+}
-+
-+static int nrf52_uicr_flash_write(struct flash_bank *bank,
-+								struct nrf52_info *chip,
-+								const uint8_t *buffer, uint32_t offset, uint32_t count)
-+{
-+	int res;
-+	uint32_t nrf52_uicr_size = chip->code_page_size;
-+	uint8_t uicr[nrf52_uicr_size];
-+	struct flash_sector *sector = &bank->sectors[0];
-+
-+	if ((offset + count) > nrf52_uicr_size)
-+		return ERROR_FAIL;
-+
-+	res = target_read_memory(bank->target, NRF52_UICR_BASE_ADDR, 1, nrf52_uicr_size, uicr);
-+
-+	if (res != ERROR_OK)
-+		return res;
-+
-+	if (sector->is_erased != 1) {
-+		res = nrf52_erase_page(bank, chip, sector);
-+		if (res != ERROR_OK)
-+			return res;
-+	}
-+
-+	memcpy(&uicr[offset], buffer, count);
-+
-+	res = nrf52_nvmc_write_enable(chip);
-+	if (res != ERROR_OK)
-+		return res;
-+
-+	res = nrf52_ll_flash_write(chip, NRF52_UICR_BASE_ADDR, uicr, nrf52_uicr_size);
-+	if (res != ERROR_OK) {
-+		nrf52_nvmc_read_only(chip);
-+		return res;
-+	}
-+
-+	return nrf52_nvmc_read_only(chip);
-+}
-+
-+
-+static int nrf52_write(struct flash_bank *bank, const uint8_t *buffer,
-+					uint32_t offset, uint32_t count)
-+{
-+	struct nrf52_info *chip = bank->driver_priv;
-+	assert(chip != NULL);
-+
-+	return chip->bank[bank->bank_number].write(bank, chip, buffer, offset, count);
-+}
-+
-+
-+FLASH_BANK_COMMAND_HANDLER(nrf52_flash_bank_command)
-+{
-+	static struct nrf52_info *chip;
-+
-+	assert(bank != NULL);
-+
-+	switch (bank->base) {
-+	case NRF52_FLASH_BASE_ADDR:
-+		bank->bank_number = 0;
-+		break;
-+	case NRF52_UICR_BASE_ADDR:
-+		bank->bank_number = 1;
-+		break;
-+	default:
-+		LOG_ERROR("Invalid bank address 0x%08" PRIx32, bank->base);
-+		return ERROR_FAIL;
-+	}
-+
-+	if (!chip) {
-+		/* Create a new chip */
-+		chip = calloc(1, sizeof(*chip));
-+		assert(chip != NULL);
-+
-+		chip->target = bank->target;
-+	}
-+
-+	switch (bank->base) {
-+	case NRF52_FLASH_BASE_ADDR:
-+		chip->bank[bank->bank_number].write = nrf52_code_flash_write;
-+		break;
-+	case NRF52_UICR_BASE_ADDR:
-+		chip->bank[bank->bank_number].write = nrf52_uicr_flash_write;
-+		break;
-+	}
-+
-+	chip->bank[bank->bank_number].probed = false;
-+	bank->driver_priv = chip;
-+
-+	return ERROR_OK;
-+}
-+
-+COMMAND_HANDLER(nrf52_handle_mass_erase_command)
-+{
-+	int res;
-+	struct flash_bank *bank = NULL;
-+	struct target *target = get_current_target(CMD_CTX);
-+
-+	res = get_flash_bank_by_addr(target, NRF52_FLASH_BASE_ADDR, true, &bank);
-+	if (res != ERROR_OK)
-+		return res;
-+
-+	assert(bank != NULL);
-+
-+	struct nrf52_info *chip = bank->driver_priv;
-+	assert(chip != NULL);
-+
-+	res = nrf52_erase_all(chip);
-+	if (res != ERROR_OK) {
-+		LOG_ERROR("Failed to erase the chip");
-+		nrf52_protect_check(bank);
-+		return res;
-+	}
-+
-+	for (int i = 0; i < bank->num_sectors; i++)
-+		bank->sectors[i].is_erased = 1;
-+
-+	res = nrf52_protect_check(bank);
-+	if (res != ERROR_OK) {
-+		LOG_ERROR("Failed to check chip's write protection");
-+		return res;
-+	}
-+
-+	res = get_flash_bank_by_addr(target, NRF52_UICR_BASE_ADDR, true, &bank);
-+	if (res != ERROR_OK)
-+		return res;
-+
-+	bank->sectors[0].is_erased = 1;
-+
-+	return ERROR_OK;
-+}
-+
-+static int nrf52_info(struct flash_bank *bank, char *buf, int buf_size)
-+{
-+	int res;
-+	uint32_t ficr[2];
-+	struct nrf52_info *chip = bank->driver_priv;
-+	assert(chip != NULL);
-+
-+	res = target_read_u32(chip->target, NRF52_FICR_CODEPAGESIZE_ADDR, &ficr[0]);
-+		if (res != ERROR_OK) {
-+			LOG_ERROR("Couldn't read NVMC_READY register");
-+			return res;
-+		}
-+
-+	res = target_read_u32(chip->target, NRF52_FICR_CODESIZE_ADDR, &ficr[1]);
-+		if (res != ERROR_OK) {
-+			LOG_ERROR("Couldn't read NVMC_READY register");
-+			return res;
-+		}
-+
-+	snprintf(buf, buf_size,
-+			"\n--------nRF52 Series Device--------\n\n"
-+			"\n[factory information control block]\n"
-+			"code page size: %"PRIu32"B\n"
-+			"code memory size: %"PRIu32"kB\n",
-+			ficr[0],
-+			(ficr[1] * ficr[0]) / 1024);
-+
-+	return ERROR_OK;
-+}
-+
-+static const struct command_registration nrf52_exec_command_handlers[] = {
-+	{
-+		.name		= "mass_erase",
-+		.handler	= nrf52_handle_mass_erase_command,
-+		.mode		= COMMAND_EXEC,
-+		.help		= "Erase all flash contents of the chip.",
-+	},
-+	COMMAND_REGISTRATION_DONE
-+};
-+
-+static const struct command_registration nrf52_command_handlers[] = {
-+	{
-+		.name	= "nrf52",
-+		.mode	= COMMAND_ANY,
-+		.help	= "nrf52 flash command group",
-+		.usage	= "",
-+		.chain	= nrf52_exec_command_handlers,
-+	},
-+	COMMAND_REGISTRATION_DONE
-+};
-+
-+struct flash_driver nrf52_flash = {
-+	.name			= "nrf52",
-+	.commands		= nrf52_command_handlers,
-+	.flash_bank_command	= nrf52_flash_bank_command,
-+	.info			= nrf52_info,
-+	.erase			= nrf52_erase,
-+	.protect		= nrf52_protect,
-+	.write			= nrf52_write,
-+	.read			= default_flash_read,
-+	.probe			= nrf52_probe,
-+	.auto_probe		= nrf52_auto_probe,
-+	.erase_check	= default_flash_blank_check,
-+	.protect_check	= nrf52_protect_check,
-+};
-diff --git a/tcl/target/nrf52.cfg b/tcl/target/nrf52.cfg
-index c1cbf1a..41a22ff 100644
---- a/tcl/target/nrf52.cfg
-+++ b/tcl/target/nrf52.cfg
-@@ -10,6 +10,13 @@ if { [info exists CHIPNAME] } {
- 	set _CHIPNAME nrf52
- }
- 
-+# Work-area is a space in RAM used for flash programming, by default use 16kB.
-+if { [info exists WORKAREASIZE] } {
-+        set _WORKAREASIZE $WORKAREASIZE
-+} else {
-+        set _WORKAREASIZE 0x4000
-+}
-+
- if { [info exists CPUTAPID] } {
- 	set _CPUTAPID $CPUTAPID
- } else {
-@@ -22,7 +29,15 @@ set _TARGETNAME $_CHIPNAME.cpu
- target create $_TARGETNAME cortex_m -chain-position $_TARGETNAME
- 
- adapter_khz 10000
-+$_TARGETNAME configure -work-area-phys 0x20000000 -work-area-size $_WORKAREASIZE -work-area-backup 0
- 
- if { ![using_hla] } {
- 	cortex_m reset_config sysresetreq
- }
-+
-+flash bank $_CHIPNAME.flash nrf52 0x00000000 0 1 1 $_TARGETNAME
-+flash bank $_CHIPNAME.uicr nrf52 0x10001000 0 1 1 $_TARGETNAME
-+
-+adapter_khz 1000
-+
-+$_TARGETNAME configure -event reset-end {}
diff --git a/gnu/packages/patches/opensles-add-license-file.patch b/gnu/packages/patches/opensles-add-license-file.patch
new file mode 100644
index 0000000000..c638b3886a
--- /dev/null
+++ b/gnu/packages/patches/opensles-add-license-file.patch
@@ -0,0 +1,45 @@
+From 3a78134a35b448d9d4136ffbc55175be7fab6644 Mon Sep 17 00:00:00 2001
+From: Raghav Gururajan <raghavgururajan@disroot.org>
+Date: Mon, 6 Jul 2020 00:34:20 -0400
+Subject: [PATCH] [PATCH]: Add license file.
+
+---
+ LICENSE.txt | 25 +++++++++++++++++++++++++
+ 1 file changed, 25 insertions(+)
+ create mode 100644 LICENSE.txt
+
+diff --git a/LICENSE.txt b/LICENSE.txt
+new file mode 100644
+index 0000000..0fce823
+--- /dev/null
++++ b/LICENSE.txt
+@@ -0,0 +1,25 @@
++/*
++ * Copyright (c) 2007-2011 The Khronos Group Inc.
++ *
++ * Permission is hereby granted, free of charge, to any person obtaining a copy of
++ * this software and /or associated documentation files (the "Materials "), to
++ * deal in the Materials without restriction, including without limitation the
++ * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
++ * sell copies of the Materials, and to permit persons to whom the Materials are
++ * furnished to do so, subject to
++ * the following conditions:
++ *
++ * The above copyright notice and this permission notice shall be included
++ * in all copies or substantial portions of the Materials.
++ *
++ * THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
++ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
++ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
++ * OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS IN THE
++ * MATERIALS.
++ *
++ * OpenSLES_IID.c - OpenSL ES version 1.1
++ *
++ */
+\ No newline at end of file
+-- 
+2.26.2
+
diff --git a/gnu/packages/patches/openssh-fix-ssh-copy-id.patch b/gnu/packages/patches/openssh-fix-ssh-copy-id.patch
new file mode 100644
index 0000000000..6adba639a3
--- /dev/null
+++ b/gnu/packages/patches/openssh-fix-ssh-copy-id.patch
@@ -0,0 +1,38 @@
+Fix a bug where ssh-copy-id would fail with "EOF: command not found":
+
+https://github.com/openssh/openssh-portable/pull/206
+
+Patch copied from upstream source repository:
+
+https://github.com/openssh/openssh-portable/commit/d9e727dcc04a52caaac87543ea1d230e9e6b5604
+
+From d9e727dcc04a52caaac87543ea1d230e9e6b5604 Mon Sep 17 00:00:00 2001
+From: Oleg <Fallmay@users.noreply.github.com>
+Date: Thu, 1 Oct 2020 12:09:08 +0300
+Subject: [PATCH] Fix `EOF: command not found` error in ssh-copy-id
+
+---
+ contrib/ssh-copy-id | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/contrib/ssh-copy-id b/contrib/ssh-copy-id
+index 392f64f94..a76907717 100644
+--- a/contrib/ssh-copy-id
++++ b/contrib/ssh-copy-id
+@@ -247,7 +247,7 @@ installkeys_sh() {
+   #    the -z `tail ...` checks for a trailing newline. The echo adds one if was missing
+   #    the cat adds the keys we're getting via STDIN
+   #    and if available restorecon is used to restore the SELinux context
+-  INSTALLKEYS_SH=$(tr '\t\n' ' ' <<-EOF)
++  INSTALLKEYS_SH=$(tr '\t\n' ' ' <<-EOF
+ 	cd;
+ 	umask 077;
+ 	mkdir -p $(dirname "${AUTH_KEY_FILE}") &&
+@@ -258,6 +258,7 @@ installkeys_sh() {
+ 	  restorecon -F .ssh ${AUTH_KEY_FILE};
+ 	fi
+ EOF
++  )
+ 
+   # to defend against quirky remote shells: use 'exec sh -c' to get POSIX;
+   printf "exec sh -c '%s'" "${INSTALLKEYS_SH}"
diff --git a/gnu/packages/patches/pam-mount-luks2-support.patch b/gnu/packages/patches/pam-mount-luks2-support.patch
deleted file mode 100644
index b59daf5ce1..0000000000
--- a/gnu/packages/patches/pam-mount-luks2-support.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From d4434c05e7c0cf05d87089404cfa2deedc60811a Mon Sep 17 00:00:00 2001
-From: Ingo Franzki <ifranzki@linux.ibm.com>
-Date: Mon, 29 Oct 2018 16:47:40 +0100
-Subject: [PATCH] crypto: Add support for LUKS2
-
-Cryptsetup version 2.0 added support for LUKS2.
-This patch adds support for mounting LUKS2 volumes with
-pam_mount.
-
-Signed-off-by: Ingo Franzki <ifranzki@linux.ibm.com>
----
- src/crypto-dmc.c | 10 ++++++++--
- 1 file changed, 8 insertions(+), 2 deletions(-)
-
-diff --git a/src/crypto-dmc.c b/src/crypto-dmc.c
-index d0ab6ca..abd0358 100644
---- a/src/crypto-dmc.c
-+++ b/src/crypto-dmc.c
-@@ -21,6 +21,12 @@
- #include "libcryptmount.h"
- #include "pam_mount.h"
- 
-+#ifndef CRYPT_LUKS
-+	#define CRYPT_LUKS	NULL /* Passing NULL to crypt_load will
-+					default to LUKS(1) on older
-+					libcryptsetup versions. */
-+#endif
-+
- /**
-  * dmc_is_luks - check if @path points to a LUKS volume (cf. normal dm-crypt)
-  * @path:	path to the crypto container
-@@ -48,7 +54,7 @@ EXPORT_SYMBOL int ehd_is_luks(const char *path, bool blkdev)
- 
- 	ret = crypt_init(&cd, device);
- 	if (ret == 0) {
--		ret = crypt_load(cd, CRYPT_LUKS1, NULL);
-+		ret = crypt_load(cd, CRYPT_LUKS, NULL);
- 		if (ret == -EINVAL)
- 			ret = false;
- 		else if (ret == 0)
-@@ -106,7 +112,7 @@ static bool dmc_run(const struct ehd_mount_request *req,
- #endif
- 	}
- 
--	ret = crypt_load(cd, CRYPT_LUKS1, NULL);
-+	ret = crypt_load(cd, CRYPT_LUKS, NULL);
- 	if (ret == 0) {
- 		ret = crypt_activate_by_passphrase(cd, mt->crypto_name,
- 		      CRYPT_ANY_SLOT, req->key_data, req->key_size, flags);
--- 
-2.21.0
diff --git a/gnu/packages/patches/pciutils-hurd-fix.patch b/gnu/packages/patches/pciutils-hurd-fix.patch
new file mode 100644
index 0000000000..f1979d4352
--- /dev/null
+++ b/gnu/packages/patches/pciutils-hurd-fix.patch
@@ -0,0 +1,23 @@
+Fix a build error on GNU/Hurd for pciutils 3.7.0.
+
+commit 053cf6c8b2acafadf828912828336d90fe9b8696
+Author: Martin Mares <mj@ucw.cz>
+Date:   Sun May 31 11:53:28 2020 +0200
+
+    HURD backend should compile again
+    
+    Fixes a bug introduced by commit 82c06b47dea5a38075ce9d56f743360bc47b4c78.
+
+diff --git a/lib/hurd.c b/lib/hurd.c
+index 7b3b2ae..ccd92f6 100644
+--- a/lib/hurd.c
++++ b/lib/hurd.c
+@@ -307,7 +307,6 @@ hurd_fill_regions(struct pci_dev *d)
+       d->base_addr[i] |= regions[i].is_64 << 2;
+       d->base_addr[i] |= regions[i].is_prefetchable << 3;
+ 
+-      if (flags & PCI_FILL_SIZES)
+-	d->size[i] = regions[i].size;
++      d->size[i] = regions[i].size;
+     }
+ }
diff --git a/gnu/packages/patches/perl-www-curl-fix-struct-void.patch b/gnu/packages/patches/perl-www-curl-fix-struct-void.patch
new file mode 100644
index 0000000000..b150950668
--- /dev/null
+++ b/gnu/packages/patches/perl-www-curl-fix-struct-void.patch
@@ -0,0 +1,24 @@
+From: Tobias Geerinckx-Rice <me@tobias.gr>
+Date: Sat, 14 Nov 2020 15:40:56 +0100
+Subject: [PATCH] gnu: perl-www-curl: Fix struct void* usage.
+
+Copied verbatim from Gentoo[0].  Fixes:
+
+  Curl.xs:76:12: error: expected ‘{’ before ‘void’
+       struct void *curlm;
+              ^~~~
+  Curl.xs:76:12: error: two or more data types in declaration specifiers
+
+[0]: https://694466.bugs.gentoo.org/attachment.cgi?id=595098
+
+--- WWW-Curl-4.17/Curl.xs	2014-02-21 18:08:30.000000000 +0200
++++ WWW-Curl-4.17.new/Curl.xs	2019-11-05 21:44:55.434395739 +0200
+@@ -73,7 +73,7 @@ typedef struct {
+ #ifdef __CURL_MULTI_H
+     struct CURLM *curlm;
+ #else
+-    struct void *curlm;
++    void *curlm;
+ #endif
+ } perl_curl_multi;
+ 
diff --git a/gnu/packages/patches/perl-www-curl-remove-symbol.patch b/gnu/packages/patches/perl-www-curl-remove-symbol.patch
index ae3486708b..c32a34897b 100644
--- a/gnu/packages/patches/perl-www-curl-remove-symbol.patch
+++ b/gnu/packages/patches/perl-www-curl-remove-symbol.patch
Binary files differdiff --git a/gnu/packages/patches/picard-fix-id3-rename-test.patch b/gnu/packages/patches/picard-fix-id3-rename-test.patch
new file mode 100644
index 0000000000..3c4fa63c84
--- /dev/null
+++ b/gnu/packages/patches/picard-fix-id3-rename-test.patch
@@ -0,0 +1,11 @@
+Index: b/test/formats/test_id3.py
+===================================================================
+--- a/test/formats/test_id3.py
++++ b/test/formats/test_id3.py
+@@ -266,5 +266,5 @@
+         def test_rename_txxx_tags(self):
+             file_path = os.path.join('test', 'data', 'test-id3-rename-tags.mp3')
+-            filename = self.copy_file_tmp(file_path, 'mp3')
++            filename = self.copy_file_tmp(file_path, '.mp3')
+             raw_metadata = load_raw(filename)
+             self.assertIn('TXXX:Artists', raw_metadata)
diff --git a/gnu/packages/patches/pidgin-libnm.patch b/gnu/packages/patches/pidgin-libnm.patch
deleted file mode 100644
index d34af749af..0000000000
--- a/gnu/packages/patches/pidgin-libnm.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From: Tobias Geerinckx-Rice <me@tobias.gr>
-Date: Sun, 24 May 2020 16:11:01 +0200
-Subject: [PATCH] gnu: pidgin: Find libnm.
-
-Copied verbatim from[0].
-
-[0]: https://git.archlinux.org/svntogit/packages.git/plain/trunk/pidgin-nm-1.0.patch?h=packages/pidgin
-
-diff --git a/configure.ac b/configure.ac
-index 04836fa..0a2d451 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -1423,18 +1423,24 @@ fi
- dnl Check for NetworkManager.h; if we don't have it, oh well
- if test "x$enable_dbus" = "xyes" ; then
- 	if test "x$enable_nm" = "xyes" ; then
--		PKG_CHECK_MODULES(NETWORKMANAGER, [NetworkManager >= 0.5.0], [
-+		PKG_CHECK_MODULES(NETWORKMANAGER, [libnm], [
- 			AC_SUBST(NETWORKMANAGER_CFLAGS)
- 			AC_SUBST(NETWORKMANAGER_LIBS)
- 			AC_DEFINE(HAVE_NETWORKMANAGER, 1, [Define if we have NetworkManager.])
- 		], [
--			enable_nm=no
--			if test "x$force_deps" = "xyes" ; then
--				AC_MSG_ERROR([
-+			PKG_CHECK_MODULES(NETWORKMANAGER, [NetworkManager >= 0.5.0], [
-+				AC_SUBST(NETWORKMANAGER_CFLAGS)
-+				AC_SUBST(NETWORKMANAGER_LIBS)
-+				AC_DEFINE(HAVE_NETWORKMANAGER, 1, [Define if we have NetworkManager.])
-+			], [
-+				enable_nm=no
-+				if test "x$force_deps" = "xyes" ; then
-+					AC_MSG_ERROR([
- NetworkManager development headers not found.
- Use --disable-nm if you do not need NetworkManager support.
- ])
--			fi])
-+				fi])
-+		])
- 	fi
- else
- 	enable_nm=no
-diff --git a/libpurple/network.c b/libpurple/network.c
-index c43e3c7..b17e439 100644
---- a/libpurple/network.c
-+++ b/libpurple/network.c
-@@ -939,8 +939,13 @@ nm_update_state(NMState state)
- #if NM_CHECK_VERSION(0,8,992)
- 		case NM_STATE_DISCONNECTING:
- #endif
-+#if NM_CHECK_VERSION(1,0,0)
-+			if (prev != NM_STATE_CONNECTED_GLOBAL && prev != NM_STATE_UNKNOWN)
-+				break;
-+#else
- 			if (prev != NM_STATE_CONNECTED && prev != NM_STATE_UNKNOWN)
- 				break;
-+#endif
- 			if (ui_ops != NULL && ui_ops->network_disconnected != NULL)
- 				ui_ops->network_disconnected();
- 			break;
diff --git a/gnu/packages/patches/pidgin-vv-gst.patch b/gnu/packages/patches/pidgin-vv-gst.patch
new file mode 100644
index 0000000000..e0553dd119
--- /dev/null
+++ b/gnu/packages/patches/pidgin-vv-gst.patch
@@ -0,0 +1,48 @@
+Name: Gary Kramlich
+Date: 2020-07-12
+Source: https://keep.imfreedom.org/pidgin/pidgin/rev/39ac50435cfb
+
+diff --git a/libpurple/mediamanager.c b/libpurple/mediamanager.c
+--- a/libpurple/mediamanager.c
++++ b/libpurple/mediamanager.c
+@@ -2231,6 +2231,7 @@
+ purple_media_manager_unregister_gst_device(PurpleMediaManager *manager,
+ 		GstDevice *device)
+ {
++#ifdef USE_VV
+ 	GList *i;
+ 	gchar *name;
+ 	gchar *device_class;
+@@ -2277,6 +2278,7 @@
+ 
+ 	g_free(name);
+ 	g_free(device_class);
++#endif /* USE_VV */
+ }
+ 
+ static gboolean
+@@ -2304,7 +2306,7 @@
+ static void
+ purple_media_manager_init_device_monitor(PurpleMediaManager *manager)
+ {
+-#if GST_CHECK_VERSION(1, 4, 0)
++#if GST_CHECK_VERSION(1, 4, 0) && defined(USE_VV)
+ 	GstBus *bus;
+ 	GList *i;
+ 
+@@ -2334,6 +2336,7 @@
+ 		PurpleMediaElementType type)
+ {
+ 	GList *result = NULL;
++#ifdef USE_VV
+ 	GList *i;
+ 
+ 	for (i = manager->priv->elements; i; i = i->next) {
+@@ -2347,6 +2350,7 @@
+ 			result = g_list_prepend(result, info);
+ 		}
+ 	}
++#endif /* USE_VV */
+ 
+ 	return result;
+ }
diff --git a/gnu/packages/patches/plasma-framework-fix-KF5PlasmaMacros.cmake.patch b/gnu/packages/patches/plasma-framework-fix-KF5PlasmaMacros.cmake.patch
new file mode 100644
index 0000000000..bd55d512cf
--- /dev/null
+++ b/gnu/packages/patches/plasma-framework-fix-KF5PlasmaMacros.cmake.patch
@@ -0,0 +1,25 @@
+From ff5ed26f21d304e867ab57781878069567deb23d Mon Sep 17 00:00:00 2001
+From: Hartmut Goebel <h.goebel@crazy-compilers.com>
+Date: Mon, 3 Aug 2020 19:49:58 +0000
+Subject: [PATCH] Fix build errors if PREFIX is different from ECM's PREFIX.
+
+See <https://bugs.kde.org/424483> for details
+---
+ KF5PlasmaMacros.cmake | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/KF5PlasmaMacros.cmake b/KF5PlasmaMacros.cmake
+index 494b42d56..80b3fd8dd 100644
+--- a/KF5PlasmaMacros.cmake
++++ b/KF5PlasmaMacros.cmake
+@@ -1,6 +1,5 @@
+ 
+-find_package(ECM 1.6.0 CONFIG REQUIRED)
+-include(${ECM_KDE_MODULE_DIR}/KDEInstallDirs.cmake)
++include(KDEInstallDirs)
+ 
+ set(PLASMA_RELATIVE_DATA_INSTALL_DIR "plasma")
+ set(PLASMA_DATA_INSTALL_DIR "${KDE_INSTALL_DATADIR}/${PLASMA_RELATIVE_DATA_INSTALL_DIR}")
+-- 
+GitLab
+
diff --git a/gnu/packages/patches/podofo-cmake-3.12.patch b/gnu/packages/patches/podofo-cmake-3.12.patch
deleted file mode 100644
index 0a3c19b21a..0000000000
--- a/gnu/packages/patches/podofo-cmake-3.12.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-The build fails with cmake 3.12.0.  This patch will be obsolete with the next
-release.
-
-https://sourceforge.net/p/podofo/tickets/24/attachment/podofo-cmake-3.12.patch
-
-
---- a/test/TokenizerTest/CMakeLists.txt	2018-07-20 18:26:02.921494293 +0200
-+++ b/test/TokenizerTest/CMakeLists.txt	2018-07-20 18:34:53.727136443 +0200
-@@ -2,10 +2,3 @@
- TARGET_LINK_LIBRARIES(TokenizerTest ${PODOFO_LIB} ${PODOFO_LIB_DEPENDS})
- SET_TARGET_PROPERTIES(TokenizerTest PROPERTIES COMPILE_FLAGS "${PODOFO_CFLAGS}")
- ADD_DEPENDENCIES(TokenizerTest ${PODOFO_DEPEND_TARGET})
--
--# Copy the test samples over to the build tree
--ADD_CUSTOM_COMMAND(
--    TARGET TokenizerTest
--    POST_BUILD
--    COMMAND "${CMAKE_COMMAND}" -E copy_directory "${CMAKE_CURRENT_SOURCE_DIR}/objects" "${CMAKE_CURRENT_BINARY_DIR}/objects"
--    )
diff --git a/gnu/packages/patches/pulseview-qt515-compat.patch b/gnu/packages/patches/pulseview-qt515-compat.patch
new file mode 100644
index 0000000000..a7156b2018
--- /dev/null
+++ b/gnu/packages/patches/pulseview-qt515-compat.patch
@@ -0,0 +1,145 @@
+https://sigrok.org/gitweb/?p=pulseview.git;a=patch;h=ae726b70a7ada9a4be5808e00f0c951318479684
+
+From ae726b70a7ada9a4be5808e00f0c951318479684 Mon Sep 17 00:00:00 2001
+From: Valentin Ochs <a@0au.de>
+Date: Sat, 20 Jun 2020 16:01:27 +0200
+Subject: [PATCH] Replace obsolete/deprecated Qt methods
+
+---
+ pv/subwindows/decoder_selector/subwindow.cpp |  2 +-
+ pv/util.cpp                                  | 21 ++++++++++++++++++--
+ pv/util.hpp                                  | 10 ++++++++++
+ pv/views/trace/decodetrace.cpp               |  3 ++-
+ pv/views/trace/ruler.cpp                     |  2 +-
+ pv/widgets/timestampspinbox.cpp              |  2 +-
+ 6 files changed, 34 insertions(+), 6 deletions(-)
+
+diff --git a/pv/subwindows/decoder_selector/subwindow.cpp b/pv/subwindows/decoder_selector/subwindow.cpp
+index 94ed6f4b..2c65dcf2 100644
+--- a/pv/subwindows/decoder_selector/subwindow.cpp
++++ b/pv/subwindows/decoder_selector/subwindow.cpp
+@@ -185,7 +185,7 @@ QToolBar* SubWindow::create_toolbar(QWidget *parent) const
+ int SubWindow::minimum_width() const
+ {
+ 	QFontMetrics m(info_label_body_->font());
+-	const int label_width = m.width(QString(tr(initial_notice)));
++	const int label_width = util::text_width(m, tr(initial_notice));
+ 
+ 	return label_width + min_width_margin;
+ }
+diff --git a/pv/util.cpp b/pv/util.cpp
+index 897254e1..dfb8c72b 100644
+--- a/pv/util.cpp
++++ b/pv/util.cpp
+@@ -143,7 +143,7 @@ QString format_time_si(const Timestamp& v, SIPrefix prefix,
+ 	QString s;
+ 	QTextStream ts(&s);
+ 	if (sign && !v.is_zero())
+-		ts << forcesign;
++		ts.setNumberFlags(ts.numberFlags() | QTextStream::ForceSign);
+ 	ts << qSetRealNumberPrecision(precision) << (v * multiplier);
+ 	ts << ' ' << prefix << unit;
+ 
+@@ -169,7 +169,7 @@ QString format_value_si(double v, SIPrefix prefix, unsigned precision,
+ 	QString s;
+ 	QTextStream ts(&s);
+ 	if (sign && (v != 0))
+-		ts << forcesign;
++		ts.setNumberFlags(ts.numberFlags() | QTextStream::ForceSign);
+ 	ts.setRealNumberNotation(QTextStream::FixedNotation);
+ 	ts.setRealNumberPrecision(precision);
+ 	ts << (v * multiplier) << ' ' << prefix << unit;
+@@ -279,5 +279,22 @@ vector<string> split_string(string text, string separator)
+ 	return result;
+ }
+ 
++/**
++ * Return the width of a string in a given font.
++ *
++ * @param[in] metric metrics of the font
++ * @param[in] string the string whose width should be determined
++ *
++ * @return width of the string in pixels
++ */
++std::streamsize text_width(const QFontMetrics &metric, const QString &string)
++{
++#if QT_VERSION >= QT_VERSION_CHECK(5, 11, 0)
++	return metric.horizontalAdvance(string);
++#else
++	return metric.width(string);
++#endif
++}
++
+ } // namespace util
+ } // namespace pv
+diff --git a/pv/util.hpp b/pv/util.hpp
+index fab29a14..49ae04b2 100644
+--- a/pv/util.hpp
++++ b/pv/util.hpp
+@@ -30,6 +30,7 @@
+ 
+ #include <QMetaType>
+ #include <QString>
++#include <QFontMetrics>
+ 
+ using std::string;
+ using std::vector;
+@@ -143,6 +144,15 @@ QString format_time_minutes(const Timestamp& t, signed precision = 0,
+ 
+ vector<string> split_string(string text, string separator);
+ 
++/**
++ * Return the width of a string in a given font.
++ * @param[in] metric metrics of the font
++ * @param[in] string the string whose width should be determined
++ *
++ * @return width of the string in pixels
++ */
++std::streamsize text_width(const QFontMetrics &metric, const QString &string);
++
+ } // namespace util
+ } // namespace pv
+ 
+diff --git a/pv/views/trace/decodetrace.cpp b/pv/views/trace/decodetrace.cpp
+index 67c9b1c4..93c7c5a9 100644
+--- a/pv/views/trace/decodetrace.cpp
++++ b/pv/views/trace/decodetrace.cpp
+@@ -161,7 +161,8 @@ DecodeTrace::DecodeTrace(pv::Session &session,
+ 
+ 	// Determine shortest string we want to see displayed in full
+ 	QFontMetrics m(QApplication::font());
+-	min_useful_label_width_ = m.width("XX"); // e.g. two hex characters
++	// e.g. two hex characters
++	min_useful_label_width_ = util::text_width(m, "XX");
+ 
+ 	default_row_height_ = (ViewItemPaintParams::text_height() * 6) / 4;
+ 	annotation_height_ = (ViewItemPaintParams::text_height() * 5) / 4;
+diff --git a/pv/views/trace/ruler.cpp b/pv/views/trace/ruler.cpp
+index 555794fc..83ffed28 100644
+--- a/pv/views/trace/ruler.cpp
++++ b/pv/views/trace/ruler.cpp
+@@ -283,7 +283,7 @@ void Ruler::paintEvent(QPaintEvent*)
+ 		const int rightedge = width();
+ 		const int x_tick = tick.first;
+ 		if ((x_tick > leftedge) && (x_tick < rightedge)) {
+-			const int x_left_bound = QFontMetrics(font()).width(tick.second) / 2;
++			const int x_left_bound = util::text_width(QFontMetrics(font()), tick.second) / 2;
+ 			const int x_right_bound = rightedge - x_left_bound;
+ 			const int x_legend = min(max(x_tick, x_left_bound), x_right_bound);
+ 			p.drawText(x_legend, ValueMargin, 0, text_height,
+diff --git a/pv/widgets/timestampspinbox.cpp b/pv/widgets/timestampspinbox.cpp
+index fea8175e..01424a5b 100644
+--- a/pv/widgets/timestampspinbox.cpp
++++ b/pv/widgets/timestampspinbox.cpp
+@@ -76,7 +76,7 @@ QSize TimestampSpinBox::minimumSizeHint() const
+ {
+ 	const QFontMetrics fm(fontMetrics());
+ 	const int l = round(value_).str().size() + precision_ + 10;
+-	const int w = fm.width(QString(l, '0'));
++	const int w = util::text_width(fm, QString(l, '0'));
+ 	const int h = lineEdit()->minimumSizeHint().height();
+ 	return QSize(w, h);
+ }
+-- 
+2.24.0.rc2
+
diff --git a/gnu/packages/patches/purescript-relax-dependencies.patch b/gnu/packages/patches/purescript-relax-dependencies.patch
index 11c4a3c3fc..6ab4716fc4 100644
--- a/gnu/packages/patches/purescript-relax-dependencies.patch
+++ b/gnu/packages/patches/purescript-relax-dependencies.patch
@@ -1,41 +1,39 @@
 Allow the purescript dependencies to better match the available packages in
 Guix.
 
-diff --git purescript-0.13.6/purescript.cabal purescript-0.13.6/purescript.cabal.orig
-index 7e38070..0724a0b 100644
---- purescript-0.13.6/purescript.cabal
-+++ purescript-0.13.6/purescript.cabal.orig
-@@ -1167,1 +1167,1 @@ library
+--- purescript-0.13.8/purescript.cabal
++++ purescript-0.13.8/purescript.cabal.orig
+@@ -1091 +1091 @@ library
 -        Glob ==0.9.*,
 +        Glob ==0.10.*,
-@@ -1171,1 +1171,1 @@ library
+@@ -1095 +1095 @@ library
 -        ansi-terminal >=0.7.1 && <0.9,
 +        ansi-terminal ==0.9.*,
-@@ -1180,1 +1180,1 @@ library
+@@ -1105 +1105 @@ library
 -        clock <0.8,
 +        clock ==0.8.*,
-@@ -1246,1 +1246,1 @@ executable purs
+@@ -1173 +1173 @@ executable purs
 -        Glob ==0.9.*,
 +        Glob ==0.10.*,
-@@ -1250,1 +1250,1 @@ executable purs
+@@ -1177 +1177 @@ executable purs
 -        ansi-terminal >=0.7.1 && <0.9,
 +        ansi-terminal ==0.9.*,
-@@ -1260,1 +1260,1 @@ executable purs
+@@ -1188 +1188 @@ executable purs
 -        clock <0.8,
 +        clock ==0.8.*,
-@@ -1281,1 +1281,1 @@ executable purs
+@@ -1209 +1209 @@ executable purs
 -        network >=3.0.1.1 && <3.1,
 +        network >=2.8 && <3.1,
-@@ -1358,1 +1358,1 @@ test-suite tests
+@@ -1288 +1288 @@ test-suite tests
 -        Glob ==0.9.*,
 +        Glob ==0.10.*,
-@@ -1363,1 +1363,1 @@ test-suite tests
+@@ -1293 +1293 @@ test-suite tests
 -        ansi-terminal >=0.7.1 && <0.9,
 +        ansi-terminal ==0.9.*,
-@@ -1372,1 +1372,1 @@ test-suite tests
+@@ -1303 +1303 @@ test-suite tests
 -        clock <0.8,
 +        clock ==0.8.*,
-@@ -1384,2 +1384,2 @@ test-suite tests
+@@ -1315,2 +1315,2 @@ test-suite tests
 -        hspec <2.7,
 -        hspec-discover <2.7,
 +        hspec ==2.7.*,
diff --git a/gnu/packages/patches/python-3.9-fix-tests.patch b/gnu/packages/patches/python-3.9-fix-tests.patch
new file mode 100644
index 0000000000..dc6b8c4cc8
--- /dev/null
+++ b/gnu/packages/patches/python-3.9-fix-tests.patch
@@ -0,0 +1,370 @@
+See the discussion about the issues fixed here at:
+http://bugs.python.org/issue20868 .
+
+diff --git a/Lib/ctypes/test/test_callbacks.py b/Lib/ctypes/test/test_callbacks.py
+--- a/Lib/ctypes/test/test_callbacks.py
++++ b/Lib/ctypes/test/test_callbacks.py
+@@ -3,6 +3,7 @@ import unittest
+ from ctypes import *
+ from ctypes.test import need_symbol
+ import _ctypes_test
++import platform
+
+ class Callbacks(unittest.TestCase):
+     functype = CFUNCTYPE
+@@ -176,6 +177,8 @@ class SampleCallbacksTestCase(unittest.TestCase):
+
+         self.assertLess(diff, 0.01, "%s not less than 0.01" % diff)
+
++    @unittest.skipIf(platform.machine() in ['mips64'],
++                     "This test fails on this platform")
+     def test_issue_8959_a(self):
+         from ctypes.util import find_library
+         libc_path = find_library("c")
+diff --git a/Lib/ctypes/test/test_libc.py b/Lib/ctypes/test/test_libc.py
+--- a/Lib/ctypes/test/test_libc.py
++++ b/Lib/ctypes/test/test_libc.py
+@@ -2,6 +2,7 @@ import unittest
+
+ from ctypes import *
+ import _ctypes_test
++import platform
+
+ lib = CDLL(_ctypes_test.__file__)
+
+@@ -17,6 +18,8 @@ class LibTest(unittest.TestCase):
+         import math
+         self.assertEqual(lib.my_sqrt(2.0), math.sqrt(2.0))
+
++    @unittest.skipIf(platform.machine() in ['mips64'],
++                     "This test fails on this platform")
+     def test_qsort(self):
+         comparefunc = CFUNCTYPE(c_int, POINTER(c_char), POINTER(c_char))
+         lib.my_qsort.argtypes = c_void_p, c_size_t, c_size_t, comparefunc
+diff --git a/Lib/distutils/tests/test_archive_util.py b/Lib/distutils/tests/test_archive_util.py
+--- a/Lib/distutils/tests/test_archive_util.py
++++ b/Lib/distutils/tests/test_archive_util.py
+@@ -333,6 +333,7 @@ class ArchiveUtilTestCase(support.TempdirManager,
+         self.assertEqual(os.path.basename(res), 'archive.tar.xz')
+         self.assertEqual(self._tarinfo(res), self._created_files)
+
++    @unittest.skipIf(True, "getgrgid(0)[0] raises a KeyError on Guix")
+     def test_make_archive_owner_group(self):
+         # testing make_archive with owner and group, with various combinations
+         # this works even if there's not gid/uid support
+@@ -362,6 +363,7 @@ class ArchiveUtilTestCase(support.TempdirManager,
+
+     @unittest.skipUnless(ZLIB_SUPPORT, "Requires zlib")
+     @unittest.skipUnless(UID_GID_SUPPORT, "Requires grp and pwd support")
++    @unittest.skipIf(True, "getgrgid(0)[0] raises a KeyError on Guix")
+     def test_tarfile_root_owner(self):
+         tmpdir =  self._create_files()
+         base_name = os.path.join(self.mkdtemp(), 'archive')
+diff --git a/Lib/distutils/tests/test_sdist.py b/Lib/distutils/tests/test_sdist.py
+--- a/Lib/distutils/tests/test_sdist.py
++++ b/Lib/distutils/tests/test_sdist.py
+@@ -443,6 +443,7 @@ class SDistTestCase(BasePyPIRCCommandTestCase):
+                      "The tar command is not found")
+     @unittest.skipIf(find_executable('gzip') is None,
+                      "The gzip command is not found")
++    @unittest.skipIf(True, "getgrgid(0)[0] raises a KeyError on Guix")
+     def test_make_distribution_owner_group(self):
+         # now building a sdist
+         dist, cmd = self.get_cmd()
+diff --git a/Lib/test/_test_multiprocessing.py b/Lib/test/_test_multiprocessing.py
+--- a/Lib/test/_test_multiprocessing.py
++++ b/Lib/test/_test_multiprocessing.py
+@@ -1473,6 +1473,7 @@ class _TestCondition(BaseTestCase):
+         if pid is not None:
+             os.kill(pid, signal.SIGINT)
+
++    @unittest.skipIf(True, "This fails for unknown reasons on Guix")
+     def test_wait_result(self):
+         if isinstance(self, ProcessesMixin) and sys.platform != 'win32':
+             pid = os.getpid()
+diff --git a/Lib/test/test_asyncio/test_base_events.py b/Lib/test/test_asyncio/test_base_events.py
+--- a/Lib/test/test_asyncio/test_base_events.py
++++ b/Lib/test/test_asyncio/test_base_events.py
+@@ -1323,6 +1323,8 @@ class BaseEventLoopWithSelectorTests(test_utils.TestCase):
+         self._test_create_connection_ip_addr(m_socket, False)
+
+     @patch_socket
++    @unittest.skipUnless(support.is_resource_enabled('network'),
++                         'network is not enabled')
+     def test_create_connection_service_name(self, m_socket):
+         m_socket.getaddrinfo = socket.getaddrinfo
+         sock = m_socket.socket.return_value
+diff --git a/Lib/test/test_generators.py b/Lib/test/test_generators.py
+--- a/Lib/test/test_generators.py
++++ b/Lib/test/test_generators.py
+@@ -34,6 +34,7 @@ class SignalAndYieldFromTest(unittest.TestCase):
+         else:
+             return "FAILED"
+
++    @unittest.skipIf(True, 'Keyboard interrupts do not work in the Guix build environment')
+     def test_raise_and_yield_from(self):
+         gen = self.generator1()
+         gen.send(None)
+diff --git a/Lib/test/test_pathlib.py b/Lib/test/test_pathlib.py
+--- a/Lib/test/test_pathlib.py
++++ b/Lib/test/test_pathlib.py
+@@ -2134,8 +2134,7 @@ class PosixPathTest(_BasePathTest, unittest.TestCase):
+         self.assertEqual(given, expect)
+         self.assertEqual(set(p.rglob("FILEd*")), set())
+
+-    @unittest.skipUnless(hasattr(pwd, 'getpwall'),
+-                         'pwd module does not expose getpwall()')
++    @unittest.skipIf(True, "Guix builder home is '/' which causes trouble for these tests")
+     def test_expanduser(self):
+         P = self.cls
+         support.import_module('pwd')
+diff --git a/Lib/test/test_pdb.py b/Lib/test/test_pdb.py
+--- a/Lib/test/test_pdb.py
++++ b/Lib/test/test_pdb.py
+@@ -1150,11 +1150,11 @@ def test_pdb_issue_20766():
+     > <doctest test.test_pdb.test_pdb_issue_20766[0]>(6)test_function()
+     -> print('pdb %d: %s' % (i, sess._previous_sigint_handler))
+     (Pdb) continue
+-    pdb 1: <built-in function default_int_handler>
++    pdb 1: Handlers.SIG_IGN
+     > <doctest test.test_pdb.test_pdb_issue_20766[0]>(5)test_function()
+     -> sess.set_trace(sys._getframe())
+     (Pdb) continue
+-    pdb 2: <built-in function default_int_handler>
++    pdb 2: Handlers.SIG_IGN
+     """
+
+
+diff --git a/Lib/test/test_regrtest.py b/Lib/test/test_regrtest.py
+--- a/Lib/test/test_regrtest.py
++++ b/Lib/test/test_regrtest.py
+@@ -762,6 +762,7 @@ class ArgsTestCase(BaseTestCase):
+         output = self.run_tests('--fromfile', filename)
+         self.check_executed_tests(output, tests)
+
++    @unittest.skipIf(True, 'Keyboard interrupts do not work in the Guix build environment.')
+     def test_interrupted(self):
+         code = TEST_INTERRUPTED
+         test = self.create_test('sigint', code=code)
+@@ -779,6 +780,7 @@ class ArgsTestCase(BaseTestCase):
+                  % (self.TESTNAME_REGEX, len(tests)))
+         self.check_line(output, regex)
+
++    @unittest.skipIf(True, 'Keyboard interrupts do not work in the Guix build environment.')
+     def test_slowest_interrupted(self):
+         # Issue #25373: test --slowest with an interrupted test
+         code = TEST_INTERRUPTED
+diff --git a/Lib/test/test_resource.py b/Lib/test/test_resource.py
+--- a/Lib/test/test_resource.py
++++ b/Lib/test/test_resource.py
+@@ -145,6 +145,7 @@ class ResourceTest(unittest.TestCase):
+
+     @unittest.skipUnless(hasattr(resource, 'prlimit'), 'no prlimit')
+     @support.requires_linux_version(2, 6, 36)
++    @unittest.skipIf(True, "Bug: the PermissionError is not raised")
+     def test_prlimit(self):
+         self.assertRaises(TypeError, resource.prlimit)
+         self.assertRaises(ProcessLookupError, resource.prlimit,
+diff --git a/Lib/test/test_shutil.py b/Lib/test/test_shutil.py
+--- a/Lib/test/test_shutil.py
++++ b/Lib/test/test_shutil.py
+@@ -1428,6 +1428,7 @@ class TestArchives(BaseTest, unittest.TestCase):
+         self.assertRaises(ValueError, make_archive, base_name, 'xxx')
+
+     @support.requires_zlib()
++    @unittest.skipIf(True, "getgrgid(0)[0] raises a KeyError on Guix")
+     def test_make_archive_owner_group(self):
+         # testing make_archive with owner and group, with various combinations
+         # this works even if there's not gid/uid support
+@@ -1456,6 +1457,7 @@ class TestArchives(BaseTest, unittest.TestCase):
+
+
+     @support.requires_zlib()
++    @unittest.skipIf(True, "getgrgid(0)[0] raises a KeyError on Guix")
+     @unittest.skipUnless(UID_GID_SUPPORT, "Requires grp and pwd support")
+     def test_tarfile_root_owner(self):
+         root_dir, base_dir = self._create_files()
+diff --git a/Lib/test/test_unicodedata.py b/Lib/test/test_unicodedata.py
+--- a/Lib/test/test_unicodedata.py
++++ b/Lib/test/test_unicodedata.py
+@@ -320,6 +320,7 @@ class NormalizationTest(unittest.TestCase):
+         data = [int(x, 16) for x in data.split(" ")]
+         return "".join([chr(x) for x in data])
+
++    @unittest.skipIf(True, 'Network is not available in the Guix build environment')
+     def test_normalization(self):
+         TESTDATAFILE = "NormalizationTest.txt"
+         TESTDATAURL = f"http://www.pythontest.net/unicode/{unicodedata.unidata_version}/{TESTDATAFILE}"
+diff --git a/Lib/test/test_socket.py b/Lib/test/test_socket.py
+--- a/Lib/test/test_socket.py
++++ b/Lib/test/test_socket.py
+@@ -875,6 +875,8 @@ class GeneralModuleTests(unittest.TestCase):
+         if not fqhn in all_host_names:
+             self.fail("Error testing host resolution mechanisms. (fqdn: %s, all: %s)" % (fqhn, repr(all_host_names)))
+
++    @unittest.skipUnless(support.is_resource_enabled('network'),
++                         'network is not enabled')
+     def test_host_resolution(self):
+         for addr in [support.HOSTv4, '10.0.0.1', '255.255.255.255']:
+             self.assertEqual(socket.gethostbyname(addr), addr)
+@@ -1004,6 +1006,8 @@ class GeneralModuleTests(unittest.TestCase):
+             self.assertWarns(DeprecationWarning, socket.ntohs, k)
+             self.assertWarns(DeprecationWarning, socket.htons, k)
+
++    @unittest.skipUnless(os.path.exists("/etc/services"),
++                         "getservbyname uses /etc/services, which is not in the chroot")
+     def testGetServBy(self):
+         eq = self.assertEqual
+         # Find one service that exists, then check all the related interfaces.
+@@ -1358,6 +1362,8 @@ class GeneralModuleTests(unittest.TestCase):
+             raise
+         self.assertRaises(TypeError, s.ioctl, socket.SIO_LOOPBACK_FAST_PATH, None)
+
++    @unittest.skipUnless(os.path.exists("/etc/gai.conf"),
++                         "getaddrinfo() will fail")
+     def testGetaddrinfo(self):
+         try:
+             socket.getaddrinfo('localhost', 80)
+@@ -1440,6 +1446,8 @@ class GeneralModuleTests(unittest.TestCase):
+         # only IP addresses are allowed
+         self.assertRaises(OSError, socket.getnameinfo, ('mail.python.org',0), 0)
+
++    @unittest.skipUnless(os.path.exists("/etc/gai.conf"),
++                         "getaddrinfo() will fail")
+     @unittest.skipUnless(support.is_resource_enabled('network'),
+                          'network is not enabled')
+     def test_idna(self):
+diff --git a/Lib/test/test_spwd.py b/Lib/test/test_spwd.py
+--- a/Lib/test/test_spwd.py
++++ b/Lib/test/test_spwd.py
+@@ -5,8 +5,7 @@ from test import support
+ spwd = support.import_module('spwd')
+
+
+-@unittest.skipUnless(hasattr(os, 'geteuid') and os.geteuid() == 0,
+-                     'root privileges required')
++@unittest.skipUnless(os.path.exists("/etc/shadow"), 'spwd tests require /etc/shadow')
+ class TestSpwdRoot(unittest.TestCase):
+
+     def test_getspall(self):
+@@ -56,8 +55,7 @@ class TestSpwdRoot(unittest.TestCase):
+             self.assertRaises(TypeError, spwd.getspnam, bytes_name)
+
+
+-@unittest.skipUnless(hasattr(os, 'geteuid') and os.geteuid() != 0,
+-                     'non-root user required')
++@unittest.skipUnless(os.path.exists("/etc/shadow"), 'spwd tests require /etc/shadow')
+ class TestSpwdNonRoot(unittest.TestCase):
+
+     def test_getspnam_exception(self):
+diff --git a/Lib/test/test_tarfile.py b/Lib/test/test_tarfile.py
+--- a/Lib/test/test_tarfile.py
++++ b/Lib/test/test_tarfile.py
+@@ -2509,9 +2509,12 @@ def root_is_uid_gid_0():
+         import pwd, grp
+     except ImportError:
+         return False
+-    if pwd.getpwuid(0)[0] != 'root':
+-        return False
+-    if grp.getgrgid(0)[0] != 'root':
++    try:
++        if pwd.getpwuid(0)[0] != 'root':
++            return False
++        if grp.getgrgid(0)[0] != 'root':
++            return False
++    except KeyError:
+         return False
+     return True
+
+diff --git a/Lib/test/test_threading.py b/Lib/test/test_threading.py
+--- a/Lib/test/test_threading.py
++++ b/Lib/test/test_threading.py
+@@ -1249,6 +1249,7 @@ class MiscTestCase(unittest.TestCase):
+
+
+ class InterruptMainTests(unittest.TestCase):
++    @unittest.skipIf(True, 'Keyboard interrupts do not work in the Guix build container.')
+     def test_interrupt_main_subthread(self):
+         # Calling start_new_thread with a function that executes interrupt_main
+         # should raise KeyboardInterrupt upon completion.
+@@ -1260,6 +1261,8 @@ class InterruptMainTests(unittest.TestCase):
+             t.join()
+         t.join()
+
++
++    @unittest.skipIf(True, 'Keyboard interrupts do not work in the Guix build container.')
+     def test_interrupt_main_mainthread(self):
+         # Make sure that if interrupt_main is called in main thread that
+         # KeyboardInterrupt is raised instantly.
+diff --git a/Tools/scripts/run_tests.py b/Tools/scripts/run_tests.py
+--- a/Tools/scripts/run_tests.py
++++ b/Tools/scripts/run_tests.py
+@@ -39,7 +39,7 @@ def main(regrtest_args):
+     if not any(is_multiprocess_flag(arg) for arg in regrtest_args):
+         args.extend(['-j', '0'])  # Use all CPU cores
+     if not any(is_resource_use_flag(arg) for arg in regrtest_args):
+-        args.extend(['-u', 'all,-largefile,-audio,-gui'])
++        args.extend(['-u', 'all,-largefile,-audio,-gui,-network'])
+     args.extend(regrtest_args)
+     print(' '.join(args))
+     if sys.platform == 'win32':
+diff --git a/Lib/test/_test_multiprocessing.py b/Lib/test/_test_multiprocessing.py
+index 1474624..887f8ee 100644
+--- a/Lib/test/_test_multiprocessing.py
++++ b/Lib/test/_test_multiprocessing.py
+@@ -3801,6 +3801,7 @@ class _TestSharedMemory(BaseTestCase):
+         sms.close()
+
+     @unittest.skipIf(os.name != "posix", "not feasible in non-posix platforms")
++    @unittest.skipUnless(sys.stdin.isatty(), "KeyboardInterrupts require a TTY device")
+     def test_shared_memory_SharedMemoryServer_ignores_sigint(self):
+         # bpo-36368: protect SharedMemoryManager server process from
+         # KeyboardInterrupt signals.
+diff --git a/Lib/test/test_signal.py b/Lib/test/test_signal.py
+index d41e94b..a1c15e7 100644
+--- a/Lib/test/test_signal.py
++++ b/Lib/test/test_signal.py
+@@ -78,6 +78,7 @@ class PosixTests(unittest.TestCase):
+         self.assertLess(len(s), signal.NSIG)
+
+     @unittest.skipUnless(sys.executable, "sys.executable required.")
++    @unittest.skipUnless(sys.stdin.isatty(), "KeyboardInterrupts require a TTY device")
+     def test_keyboard_interrupt_exit_code(self):
+         """KeyboardInterrupt triggers exit via SIGINT."""
+         process = subprocess.run(
+@@ -128,6 +129,7 @@ class WindowsSignalTests(unittest.TestCase):
+             signal.signal(7, handler)
+
+     @unittest.skipUnless(sys.executable, "sys.executable required.")
++    @unittest.skipUnless(sys.stdin.isatty(), "KeyboardInterrupts require a TTY device")
+     def test_keyboard_interrupt_exit_code(self):
+         """KeyboardInterrupt triggers an exit using STATUS_CONTROL_C_EXIT."""
+         # We don't test via os.kill(os.getpid(), signal.CTRL_C_EVENT) here
+@@ -1245,6 +1247,7 @@ class StressTest(unittest.TestCase):
+
+ class RaiseSignalTest(unittest.TestCase):
+
++    @unittest.skipUnless(sys.stdin.isatty(), "KeyboardInterrupts require a TTY device")
+     def test_sigint(self):
+         with self.assertRaises(KeyboardInterrupt):
+             signal.raise_signal(signal.SIGINT)
+@@ -1279,6 +1279,7 @@ class PidfdSignalTest(unittest.TestCase):
+         hasattr(signal, "pidfd_send_signal"),
+         "pidfd support not built in",
+     )
++    @unittest.skipUnless(sys.stdin.isatty(), "KeyboardInterrupts require a TTY device")
+     def test_pidfd_send_signal(self):
+         with self.assertRaises(OSError) as cm:
+             signal.pidfd_send_signal(0, signal.SIGINT)
+diff --git a/Lib/ctypes/test/test_find.py b/Lib/ctypes/test/test_find.py
+index 92ac184..49eec2c 100644
+--- a/Lib/ctypes/test/test_find.py
++++ b/Lib/ctypes/test/test_find.py
+@@ -116,6 +116,7 @@ class FindLibraryLinux(unittest.TestCase):
+         with unittest.mock.patch("ctypes.util._findSoname_ldconfig", lambda *args: None):
+             self.assertNotEqual(find_library('c'), None)
+
++    @unittest.skipIf(True, "This fails for unknown reasons on Guix")
+     def test_find_library_with_ld(self):
+         with unittest.mock.patch("ctypes.util._findSoname_ldconfig", lambda *args: None), \
+              unittest.mock.patch("ctypes.util._findLib_gcc", lambda *args: None):
diff --git a/gnu/packages/patches/python-aiohttp-3.6.2-no-warning-fail.patch b/gnu/packages/patches/python-aiohttp-3.6.2-no-warning-fail.patch
deleted file mode 100644
index 6cdddefd50..0000000000
--- a/gnu/packages/patches/python-aiohttp-3.6.2-no-warning-fail.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-Do not fail test on runtime warning like: RuntimeWarning: coroutine 'noop2' was
-never awaited. This could be related to
-https://github.com/aio-libs/aiohttp/commit/60f01cca36b9f9d8d35dd351384eaae2f8fd0d4b,
-which does not fix this issue though.
-
---- a/aiohttp/pytest_plugin.py	2019-10-09 18:52:31.000000000 +0200
-+++ b/aiohttp/pytest_plugin.py	2020-03-05 08:35:48.230396025 +0100
-@@ -120,15 +120,6 @@
-     """
-     with warnings.catch_warnings(record=True) as _warnings:
-         yield
--        rw = ['{w.filename}:{w.lineno}:{w.message}'.format(w=w)
--              for w in _warnings  # type: ignore
--              if w.category == RuntimeWarning]
--        if rw:
--            raise RuntimeError('{} Runtime Warning{},\n{}'.format(
--                len(rw),
--                '' if len(rw) == 1 else 's',
--                '\n'.join(rw)
--            ))
- 
- 
- @contextlib.contextmanager
---- a/tests/test_pytest_plugin.py	2020-03-05 09:26:58.502284893 +0100
-+++ a/tests/test_pytest_plugin.py	2020-03-05 09:27:06.074284619 +0100
-@@ -170,7 +170,7 @@
-     expected_outcomes = (
-         {'failed': 0, 'passed': 2}
-         if IS_PYPY and bool(os.environ.get('PYTHONASYNCIODEBUG'))
--        else {'failed': 1, 'passed': 1}
-+        else {'failed': 0, 'passed': 2}
-     )
-     """Under PyPy "coroutine 'foobar' was never awaited" does not happen."""
-     result.assert_outcomes(**expected_outcomes)
diff --git a/gnu/packages/patches/python-cairocffi-dlopen-path.patch b/gnu/packages/patches/python-cairocffi-dlopen-path.patch
deleted file mode 100644
index e7a7fe3737..0000000000
--- a/gnu/packages/patches/python-cairocffi-dlopen-path.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- cairocffi-0.8.0/cairocffi/__init__.py.orig	2018-07-16 11:00:59.075664158 +0200
-+++ cairocffi-0.8.0/cairocffi/__init__.py	2018-07-16 17:09:42.471958015 +0200
-@@ -35,6 +35,7 @@
-                         return lib
-             except OSError:
-                 pass
-+        return ffi.dlopen(name)
-     raise OSError("dlopen() failed to load a library: %s" % ' / '.join(names))
- 
- 
diff --git a/gnu/packages/patches/python-gst-fix-build-with-python-3.8.patch b/gnu/packages/patches/python-gst-fix-build-with-python-3.8.patch
deleted file mode 100644
index affa0e1317..0000000000
--- a/gnu/packages/patches/python-gst-fix-build-with-python-3.8.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-Fix build with Python 3.8 by also checking for python-3.X-embed.pc. Since
-Python 3.8 the normal checks don't include the Python libraries anymore and
-linking of the gst-python module would fail.
-
-See also https://github.com/mesonbuild/meson/issues/5629
-Fixes https://gitlab.freedesktop.org/gstreamer/gst-python/issues/28
-
-Patch based on upstream commit:
-
-https://gitlab.freedesktop.org/gstreamer/gst-python/-/commit/10707f437f2fc3632067c6a0efa4432f7ebaf362
-
-diff --git a/meson.build b/meson.build
-index 5f13b48..d7c7e66 100644
---- a/meson.build
-+++ b/meson.build
-@@ -23,7 +23,17 @@ pygobject_dep = dependency('pygobject-3.0', fallback: ['pygobject', 'pygobject_d
- 
- pymod = import('python')
- python = pymod.find_installation(get_option('python'))
--python_dep = python.dependency(required : true)
-+pythonver = python.language_version()
-+if pythonver.version_compare('<3.0')
-+   error('Python2 is not supported anymore, please port your code to python3 (@0@ specified)'.format(python.language_version()))
-+endif
-+
-+# Workaround for https://github.com/mesonbuild/meson/issues/5629
-+# https://gitlab.freedesktop.org/gstreamer/gst-python/issues/28
-+python_dep = dependency('python-@0@-embed'.format(pythonver), version: '>=3', required: false)
-+if not python_dep.found()
-+  python_dep = python.dependency(required : true)
-+endif
- 
- python_abi_flags = python.get_variable('ABIFLAGS', '')
- pylib_loc = get_option('libpython-dir')
--- 
-2.26.2
diff --git a/gnu/packages/patches/python-pydot-regression-test.patch b/gnu/packages/patches/python-pydot-regression-test.patch
new file mode 100644
index 0000000000..d2f0f5996e
--- /dev/null
+++ b/gnu/packages/patches/python-pydot-regression-test.patch
@@ -0,0 +1,79 @@
+This patch is taken from the upstream repository
+https://github.com/pydot/pydot/commit/a10ced4d132361027a545a471af4541dea8c5cf5.patch
+It should be included in the 1.4.2 release.
+
+
+From a10ced4d132361027a545a471af4541dea8c5cf5 Mon Sep 17 00:00:00 2001
+From: Peter Nowee <peter@peternowee.com>
+Date: Wed, 26 Jun 2019 15:43:38 +0800
+Subject: [PATCH] Fix multi.dot Graphviz regression test
+
+Commit d6602ad of 2018-12-01 fixed the regression test broken by commit
+2d55978 of 2016-07-01. This revealed that `test/graphs/multi.dot` was
+failing.
+
+`multi.dot` was introduced in commit 2b3f088 of 2010-11-07 together
+with many of the other tests still here today. It has not been touched
+since. It is a DOT-file containing two digraphs. The regression test
+compares the JPEG images rendered from the DOT-file by pydot with those
+rendered by Graphviz's dot directly.
+
+Commit 66734d2 of 2016-07-01 is the actual cause of the failure. It
+changed one of the render methods of the regression test,
+`_render_with_pydot`, from calculating a single hash for all the JPEG
+images to calculating separate hashes for each JPEG image and then
+concatenating those hashes in one long string. The other render method,
+`_render_with_graphviz`, still calculates a single hash over all data.
+For DOT-files that generate only one image the end result is the same,
+but because `multi.dot` has two graphs, it produces two images and this
+leads to comparing a string of two hashes with one single hash.
+
+I do not think the change in generating the hash was intentional, for
+the following reasons:
+- Commit 66734d2 states that its purpose was to adapt the test to an
+  API change in pydot. It does not mention a deliberate choice to
+  change the testing method.
+- There was no effort to change `_render_with_graphviz` to also produce
+  multiple hashes.
+- Except for easier debugging in case of a failing test with multiple
+  images (AFAICT, only `multi.dot`), I do not see much added benefit in
+  checking a concatenation of the hashes of all images vs. checking one
+  hash of all images together: In both cases the test will fail if one
+  or more images is rendered differently.
+- Given that there were many commits authored that same hour, including
+  commit 2d55978 which broke the regression tests, I suspect the author
+  did not run the tests for each individual commit, but only at the end
+  of that batch, and was therefore also not alerted of this change by
+  the test suite.
+
+Assuming that the change was not intended, this commit will now revert
+`_render_with_pydot` to the old behavior of calculating a single hash
+from all JPEG image data.
+
+Tested with Debian 9.9, Graphviz 2.38.0-17, Python 2.7.13-2 and 3.5.3-1.
+
+Fixes https://github.com/pydot/pydot/issues/204.
+---
+ test/pydot_unittest.py | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/test/pydot_unittest.py b/test/pydot_unittest.py
+index 881ee16..64aa856 100644
+--- a/test/pydot_unittest.py
++++ b/test/pydot_unittest.py
+@@ -194,11 +194,11 @@ def _render_with_graphviz(self, filename, encoding):
+ 
+     def _render_with_pydot(self, filename, encoding):
+         c = pydot.graph_from_dot_file(filename, encoding=encoding)
+-        sha = ''
++        jpe_data = bytearray()
+         for g in c:
+-            jpe_data = g.create(prog=TEST_PROGRAM, format='jpe', encoding=encoding)
+-            sha += sha256(jpe_data).hexdigest()
+-        return sha
++            jpe_data.extend(g.create(prog=TEST_PROGRAM, format='jpe',
++                                     encoding=encoding))
++        return sha256(jpe_data).hexdigest()
+ 
+     def test_my_regression_tests(self):
+         path = os.path.join(test_dir, TESTS_DIR_1)
diff --git a/gnu/packages/patches/python-robotframework-honor-source-date-epoch.patch b/gnu/packages/patches/python-robotframework-source-date-epoch.patch
index ccd87911d8..ccd87911d8 100644
--- a/gnu/packages/patches/python-robotframework-honor-source-date-epoch.patch
+++ b/gnu/packages/patches/python-robotframework-source-date-epoch.patch
diff --git a/gnu/packages/patches/python-tinycss2-flake8-compat.patch b/gnu/packages/patches/python-tinycss2-flake8-compat.patch
deleted file mode 100644
index a66eb42fa1..0000000000
--- a/gnu/packages/patches/python-tinycss2-flake8-compat.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-Fix test failure that occurs with recent versions of Flake8.
-
-Taken from upstream:
-https://github.com/Kozea/tinycss2/commit/6556604fb98c2153412384d6f0f705db2da1aa60
-
-diff --git a/tinycss2/css-parsing-tests/make_color3_hsl.py b/tinycss2/css-parsing-tests/make_color3_hsl.py
-index d1fd3a6..56fda0c 100644
---- a/tinycss2/css-parsing-tests/make_color3_hsl.py
-+++ b/tinycss2/css-parsing-tests/make_color3_hsl.py
-@@ -8,16 +8,17 @@ def trim(s):
- print('[')
- print(',\n'.join(
-     '"hsl%s(%s, %s%%, %s%%%s)", [%s, %s, %s, %s]' % (
--        ('a' if a is not None else '', h,
--         trim(str(s / 10.)), trim(str(l / 10.)),
--         ', %s' % a if a is not None else '') +
-+        ('a' if alpha is not None else '', hue,
-+         trim(str(saturation / 10.)), trim(str(light / 10.)),
-+         ', %s' % alpha if alpha is not None else '') +
-         tuple(trim(str(round(v, 10)))
--              for v in colorsys.hls_to_rgb(h / 360., l / 1000., s / 1000.)) +
--        (a if a is not None else 1,)
-+              for v in colorsys.hls_to_rgb(
-+                hue / 360., light / 1000., saturation / 1000.)) +
-+        (alpha if alpha is not None else 1,)
-     )
--    for a in [None, 1, .2, 0]
--    for l in range(0, 1001, 125)
--    for s in range(0, 1001, 125)
--    for h in range(0, 360, 30)
-+    for alpha in [None, 1, .2, 0]
-+    for light in range(0, 1001, 125)
-+    for saturation in range(0, 1001, 125)
-+    for hue in range(0, 360, 30)
- ))
- print(']')
diff --git a/gnu/packages/patches/python2-pygobject-2-gi-info-type-error-domain.patch b/gnu/packages/patches/python2-pygobject-2-deprecation.patch
index 6a08e56351..6a08e56351 100644
--- a/gnu/packages/patches/python2-pygobject-2-gi-info-type-error-domain.patch
+++ b/gnu/packages/patches/python2-pygobject-2-deprecation.patch
diff --git a/gnu/packages/patches/qemu-build-info-manual.patch b/gnu/packages/patches/qemu-build-info-manual.patch
new file mode 100644
index 0000000000..d57b26ea00
--- /dev/null
+++ b/gnu/packages/patches/qemu-build-info-manual.patch
@@ -0,0 +1,139 @@
+From 07303a0a4daa83a0555ac4abad7a5d65584307ad Mon Sep 17 00:00:00 2001
+From: Maxim Cournoyer <maxim.cournoyer@gmail.com>
+Date: Thu, 17 Sep 2020 13:28:19 -0400
+Subject: [PATCH] build: Build and install the info manual.
+
+Take advantage of the Sphinx texinfo backend to generate a QEMU info
+manual.  The texinfo format allows for more structure and info readers
+provide more advanced navigation capabilities compared to manpages
+readers.
+
+* configure (infodir): Add the --infodir option, which allows
+configuring the directory under which the info manuals are installed.
+* docs/index.rst: Include the top level documents to prevent
+warnings (treated as errors by sphinx-build).
+* Makefile (sphinxdocs-info, $(MANUAL_BUILDDIR)/QEMU.texi)): New targets.
+(info): Depend on sphinxdocs-info.
+(install-doc): Install the info manual.
+---
+ Makefile       | 13 +++++++++++--
+ configure      |  7 +++++++
+ docs/index.rst |  2 ++
+ 3 files changed, 20 insertions(+), 2 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index 13dd708c..da78612d 100644
+--- a/Makefile
++++ b/Makefile
+@@ -864,12 +864,14 @@ endef
+ # Note that we deliberately do not install the "devel" manual: it is
+ # for QEMU developers, and not interesting to our users.
+ .PHONY: install-sphinxdocs
+-install-sphinxdocs: sphinxdocs
++install-sphinxdocs: sphinxdocs sphinxdocs-info
+ 	$(call install-manual,interop)
+ 	$(call install-manual,specs)
+ 	$(call install-manual,system)
+ 	$(call install-manual,tools)
+ 	$(call install-manual,user)
++	$(INSTALL_DIR) "$(DESTDIR)$(infodir)"
++	$(INSTALL_DATA) $(MANUAL_BUILDDIR)/QEMU.info "$(DESTDIR)$(infodir)"
+ 
+ install-doc: $(DOCS) install-sphinxdocs
+ 	$(INSTALL_DIR) "$(DESTDIR)$(qemu_docdir)"
+@@ -1067,6 +1069,13 @@ sphinxdocs: $(MANUAL_BUILDDIR)/devel/index.html \
+             $(MANUAL_BUILDDIR)/tools/index.html \
+             $(MANUAL_BUILDDIR)/user/index.html
+ 
++# Build the complete info manual.
++.PHONE: sphinxdocs-info
++sphinxdocs-info: $(MANUAL_BUILDDIR)/QEMU.info
++
++$(MANUAL_BUILDDIR)/QEMU.texi: $(call manual-deps,*) $(wildcard $(SRC_PATH)/docs/*.rst)
++	$(call build-manual,,texinfo)
++
+ # Canned command to build a single manual
+ # Arguments: $1 = manual name, $2 = Sphinx builder ('html' or 'man')
+ # Note the use of different doctree for each (manual, builder) tuple;
+@@ -1126,7 +1135,7 @@ docs/interop/qemu-ga-qapi.texi: qga/qapi-generated/qga-qapi-doc.texi
+ 	@cp -p $< $@
+ 
+ html: docs/interop/qemu-qmp-ref.html docs/interop/qemu-ga-ref.html sphinxdocs
+-info: docs/interop/qemu-qmp-ref.info docs/interop/qemu-ga-ref.info
++info: docs/interop/qemu-qmp-ref.info docs/interop/qemu-ga-ref.info sphinxdocs-info
+ pdf: docs/interop/qemu-qmp-ref.pdf docs/interop/qemu-ga-ref.pdf
+ txt: docs/interop/qemu-qmp-ref.txt docs/interop/qemu-ga-ref.txt
+ 
+diff --git a/configure b/configure
+index 2acc4d14..3691bd2e 100755
+--- a/configure
++++ b/configure
+@@ -415,6 +415,7 @@ LDFLAGS_SHARED="-shared"
+ modules="no"
+ module_upgrades="no"
+ prefix="/usr/local"
++infodir="\${prefix}/share/info"
+ mandir="\${prefix}/share/man"
+ datadir="\${prefix}/share"
+ firmwarepath="\${prefix}/share/qemu-firmware"
+@@ -987,6 +988,7 @@ if test "$mingw32" = "yes" ; then
+     LIBS="-liberty $LIBS"
+   fi
+   prefix="c:/Program Files/QEMU"
++  infodir="\${prefix}"
+   mandir="\${prefix}"
+   datadir="\${prefix}"
+   qemu_docdir="\${prefix}"
+@@ -1087,6 +1089,8 @@ for opt do
+     static="yes"
+     QEMU_PKG_CONFIG_FLAGS="--static $QEMU_PKG_CONFIG_FLAGS"
+   ;;
++  --infodir=*) infodir="$optarg"
++  ;;
+   --mandir=*) mandir="$optarg"
+   ;;
+   --bindir=*) bindir="$optarg"
+@@ -1780,6 +1784,7 @@ Advanced options (experts only):
+   --smbd=SMBD              use specified smbd [$smbd]
+   --with-git=GIT           use specified git [$git]
+   --static                 enable static build [$static]
++  --infodir=PATH           install info manual in PATH
+   --mandir=PATH            install man pages in PATH
+   --datadir=PATH           install firmware in PATH$confsuffix
+   --docdir=PATH            install documentation in PATH$confsuffix
+@@ -6836,6 +6841,7 @@ echo "include directory $(eval echo $includedir)"
+ echo "config directory  $(eval echo $sysconfdir)"
+ if test "$mingw32" = "no" ; then
+ echo "local state directory   $(eval echo $local_statedir)"
++echo "Info manual directory   $(eval echo $infodir)"
+ echo "Manual directory  $(eval echo $mandir)"
+ echo "ELF interp prefix $interp_prefix"
+ else
+@@ -7059,6 +7065,7 @@ echo "bindir=$bindir" >> $config_host_mak
+ echo "libdir=$libdir" >> $config_host_mak
+ echo "libexecdir=$libexecdir" >> $config_host_mak
+ echo "includedir=$includedir" >> $config_host_mak
++echo "infodir=$infodir" >> $config_host_mak
+ echo "mandir=$mandir" >> $config_host_mak
+ echo "sysconfdir=$sysconfdir" >> $config_host_mak
+ echo "qemu_confdir=$qemu_confdir" >> $config_host_mak
+diff --git a/docs/index.rst b/docs/index.rst
+index 763e3d04..4f155b51 100644
+--- a/docs/index.rst
++++ b/docs/index.rst
+@@ -9,6 +9,7 @@ Welcome to QEMU's documentation!
+ .. toctree::
+    :maxdepth: 2
+    :caption: Contents:
++   :glob:
+ 
+    system/index
+    user/index
+@@ -16,3 +17,4 @@ Welcome to QEMU's documentation!
+    interop/index
+    specs/index
+    devel/index
++   *
+-- 
+2.28.0
+
diff --git a/gnu/packages/patches/r-httpuv-1.5.5-unvendor-libuv.patch b/gnu/packages/patches/r-httpuv-1.5.5-unvendor-libuv.patch
new file mode 100644
index 0000000000..0947718059
--- /dev/null
+++ b/gnu/packages/patches/r-httpuv-1.5.5-unvendor-libuv.patch
@@ -0,0 +1,59 @@
+Removes references to bundled libuv.
+
+--- a/src/Makevars	2020-07-31 11:53:30.576484531 +0200
++++ b/src/Makevars	2020-07-31 11:54:19.369863118 +0200
+@@ -5,7 +5,7 @@
+ 
+ UNAME := $(shell uname)
+ 
+-PKG_LIBS = ./libuv/.libs/libuv.a ./http-parser/http_parser.o ./sha1/sha1.o ./base64/base64.o -pthread
++PKG_LIBS = -luv ./http-parser/http_parser.o ./sha1/sha1.o ./base64/base64.o -pthread
+ 
+ ifeq ($(UNAME), Darwin)
+ PKG_LIBS += -framework CoreServices
+@@ -23,7 +23,7 @@
+ 
+ PKG_CFLAGS = $(C_VISIBILITY) -DSTRICT_R_HEADERS
+ PKG_CXXFLAGS = $(CXX_VISIBILITY) -DSTRICT_R_HEADERS
+-PKG_CPPFLAGS = -Ilibuv/include -pthread
++PKG_CPPFLAGS = -pthread
+ 
+ # To avoid spurious warnings from `R CMD check --as-cran`, about compiler
+ # warning flags like -Werror.
+@@ -43,35 +43,5 @@
+ # PKG_CPPFLAGS += -D_GLIBCXX_ASSERTIONS
+ 
+ 
+-$(SHLIB): libuv/.libs/libuv.a http-parser/http_parser.o sha1/sha1.o base64/base64.o
++$(SHLIB): http-parser/http_parser.o sha1/sha1.o base64/base64.o
+ 
+-# We needed to rename lt~obsolete.m4 because the name causes problems with R
+-# CMD check. Here we rename it back.
+-libuv/m4/lt~obsolete.m4: libuv/m4/lt_obsolete.m4
+-	cp -p -f libuv/m4/lt_obsolete.m4 libuv/m4/lt~obsolete.m4
+-
+-# Run ./configure. We need to touch various autotools-related files to avoid
+-# it trying to run autotools programs again. We also need to make sure
+-# configure is executable, because on some platforms, calling unzip() in R
+-# does not preserve the executable bit.
+-#
+-# It's VERY IMPORTANT that mtime(aclocal.m4) <= mtime(configure), and also
+-# mtime(aclocal.m4) <= mtime(Makefile.in). On some platforms, passing multiple
+-# files to a single touch command gives them all the same time, but on others
+-# (Solaris and possibly some Fedoras) the timestamps are slightly increasing
+-# from one to the next, i.e. the order matters. To remove this fragility, we
+-# use "-r aclocal.m4" to ensure that all three files are guaranteed to have
+-# precisely the same timestamp value.
+-libuv/Makefile: libuv/m4/lt~obsolete.m4
+-	(cd libuv \
+-		&& touch aclocal.m4 \
+-		&& touch -r aclocal.m4 configure Makefile.in \
+-		&& chmod +x configure \
+-		&& CC="$(CC)" CFLAGS="$(CFLAGS) $(CPICFLAGS) $(C_VISIBILITY)" AR="$(AR)" RANLIB="$(RANLIB)" LDFLAGS="$(LDFLAGS)" ./configure $(CONFIGURE_FLAGS))
+-
+-libuv/.libs/libuv.a: libuv/Makefile
+-	$(MAKE) --directory=libuv \
+-		HAVE_DTRACE=0
+-
+-clean:
+-	$(MAKE) --directory=libuv distclean
diff --git a/gnu/packages/patches/rcs-5.10.0-no-stdin.patch b/gnu/packages/patches/rcs-5.10.0-no-stdin.patch
new file mode 100644
index 0000000000..56edfe7b65
--- /dev/null
+++ b/gnu/packages/patches/rcs-5.10.0-no-stdin.patch
@@ -0,0 +1,57 @@
+http://git.savannah.gnu.org/cgit/rcs.git/patch/?id=8883c4f5a29be18e9ea09bd27a7b660830de45bb
+
+
+From 8883c4f5a29be18e9ea09bd27a7b660830de45bb Mon Sep 17 00:00:00 2001
+From: Thien-Thi Nguyen <ttn@gnu.org>
+Date: Fri, 23 Oct 2020 09:23:49 -0400
+Subject: [v] Don't test signal handling if stdin not ok.
+
+<https://mail.gnu.org/archive/html/bug-rcs/2020-10/msg00014.html>
+
+* tests/t632: If stdin is not open and connected to
+a tty, skip the signal handling portion of the test.
+---
+ tests/ChangeLog | 9 +++++++++
+ tests/t632      | 9 +++++++++
+ 2 files changed, 18 insertions(+)
+
+diff --git a/tests/ChangeLog b/tests/ChangeLog
+index c3715c0..0565058 100644
+--- a/tests/ChangeLog
++++ b/tests/ChangeLog
+@@ -1,3 +1,12 @@
++2020-10-23  Thien-Thi Nguyen  <ttn@gnu.org>
++
++	[v] Don't test signal handling if stdin not ok.
++
++	<https://mail.gnu.org/archive/html/bug-rcs/2020-10/msg00014.html>
++
++	* t632: If stdin is not open and connected to
++	a tty, skip the signal handling portion of the test.
++
+ 2020-10-20  Thien-Thi Nguyen  <ttn@gnu.org>
+ 
+ 	Release: 5.10.0
+diff --git a/tests/t632 b/tests/t632
+index df6acc9..677ec8c 100644
+--- a/tests/t632
++++ b/tests/t632
+@@ -40,6 +40,15 @@ echo | co -l -I $w \
+ # (This is skipped if GNU coreutils timeout(1) is not available.)
+ ##
+ 
++# <https://mail.gnu.org/archive/html/bug-rcs/2020-10/msg00014.html>
++# The timeout test needs co(1) to block on input.
++# If stdin is not open and connected to a tty, skip out.
++if test -t 0 ; then
++    echo STDIN OK
++else
++    exit 0
++fi
++
+ # TODO: Don't be lame!  Pick one:
+ # (a) Mimic timeout(1) w/ sh commands.
+ # (b) Incorporate heart of timeout(1) into ./btdt and use that.
+-- 
+cgit v1.2.1
+
diff --git a/gnu/packages/patches/rcs-5.9.4-noreturn.patch b/gnu/packages/patches/rcs-5.9.4-noreturn.patch
deleted file mode 100644
index 0c0c044ed5..0000000000
--- a/gnu/packages/patches/rcs-5.9.4-noreturn.patch
+++ /dev/null
@@ -1,94 +0,0 @@
-Builds with GCC-5 failed due to misplaced `_Noreturn (__attribute__((noreturn)))`
-statement.
-
-Patch copied from upstream source repository:
-
-http://git.savannah.gnu.org/cgit/rcs.git/commit/?h=p&id=260704a9164dd34cf7128d6b1e88075ffa3be054
-
-Upstream bug URL:
-
-https://savannah.gnu.org/bugs/?49568
-
-commit 260704a9164dd34cf7128d6b1e88075ffa3be054
-Author: Thien-Thi Nguyen <ttn@gnu.org>
-Date:   Thu Jun 18 21:25:53 2015 +0200
-
-    [C slog] Move ‘exiting’ to beginning of func decl.
-    
-    Apparently, ‘gcc --std=c11’ does not abide the ‘exiting’
-    attribute appearing at the end of the func decl.
-    Reported by Romain Francoise.
-    See also <https://bugs.debian.org/778100>.
-    
-    * src/b-complain.h (generic_fatal, fatal_syntax, fatal_sys)
-    * src/b-fb.h (Ierror, Oerror)
-    * src/base.h (unexpected_EOF, thank_you_and_goodnight):
-    Move ‘exiting’ attribute to beginning of func decl.
-
-diff --git a/src/b-complain.h b/src/b-complain.h
-index 0ffd157..ea0ffc5 100644
---- a/src/b-complain.h
-+++ b/src/b-complain.h
-@@ -32,12 +32,14 @@ extern void generic_warn (char const *who, char const *fmt, ...)
-   printf_string (2, 3);
- extern void generic_error (char const *who, char const *fmt, ...)
-   printf_string (2, 3);
-+exiting
- extern void generic_fatal (char const *who, char const *fmt, ...)
--  printf_string (2, 3) exiting;
-+  printf_string (2, 3);
-+exiting
- extern void fatal_syntax (size_t lno, char const *fmt, ...)
--  printf_string (2, 3) exiting;
--extern void fatal_sys (char const *who)
--  exiting;
-+  printf_string (2, 3);
-+exiting
-+extern void fatal_sys (char const *who);
- 
- /* Idioms.  Here, prefix P stands for "program" (general operation);
-    M for "manifestation"; R for "repository".  */
-diff --git a/src/b-fb.h b/src/b-fb.h
-index c9850e7..bf5eaf8 100644
---- a/src/b-fb.h
-+++ b/src/b-fb.h
-@@ -21,9 +21,11 @@
- */
- 
- extern int change_mode (int fd, mode_t mode);
--extern void Ierror (void) exiting;
-+exiting
-+extern void Ierror (void);
- extern void testIerror (FILE *f);
--extern void Oerror (void) exiting;
-+exiting
-+extern void Oerror (void);
- extern void testOerror (FILE *o);
- extern FILE *fopen_safer (char const *filename, char const *type);
- extern void Ozclose (FILE **p);
-diff --git a/src/base.h b/src/base.h
-index 163ee09..5e7a9f8 100644
---- a/src/base.h
-+++ b/src/base.h
-@@ -755,8 +755,8 @@ int dorewrite (bool lockflag, int changed);
- int donerewrite (int changed, time_t newRCStime);
- void ORCSclose (void);
- void ORCSerror (void);
--void unexpected_EOF (void)
--  exiting;
-+exiting
-+void unexpected_EOF (void);
- void initdiffcmd (struct diffcmd *dc);
- int getdiffcmd (struct fro *finfile, bool delimiter,
-                 FILE *foutfile, struct diffcmd *dc);
-@@ -831,8 +831,8 @@ char const *date2str (char const date[datesize],
-                       char datebuf[datesize + zonelenmax]);
- 
- /* rcsutil */
--void thank_you_and_goodnight (int const how)
--  exiting;
-+exiting
-+void thank_you_and_goodnight (int const how);
- /* These are for ‘thank_you_and_goodnight’.  */
- #define TYAG_ORCSERROR     (1 << 3)
- #define TYAG_DIRTMPUNLINK  (1 << 2)
diff --git a/gnu/packages/patches/renpy-use-system-fribidi.patch b/gnu/packages/patches/renpy-use-system-fribidi.patch
new file mode 100644
index 0000000000..1437274bcc
--- /dev/null
+++ b/gnu/packages/patches/renpy-use-system-fribidi.patch
@@ -0,0 +1,52 @@
+See also [Arch] and [Gentoo] for similar patches in other distros.
+[Arch] https://github.com/archlinux/svntogit-community/blob/packages/renpy/trunk/renpy-system-fribidi.patch
+[Gentoo] https://gitweb.gentoo.org/repo/gentoo.git/tree/games-engines/renpy/files/renpy-7.3.5-use-system-fribidi.patch
+
+Index: renpy-7.3.5-source/module/renpybidicore.c
+===================================================================
+--- renpy-7.3.5-source.orig/module/renpybidicore.c
++++ renpy-7.3.5-source/module/renpybidicore.c
+@@ -1,5 +1,5 @@
+ #include <Python.h>
+-#include <fribidi-src/lib/fribidi.h>
++#include <fribidi.h>
+ #include <stdlib.h>
+
+ #ifndef alloca
+Index: renpy-7.3.5-source/module/setup.py
+===================================================================
+--- renpy-7.3.5-source.orig/module/setup.py
++++ renpy-7.3.5-source/module/setup.py
+@@ -119,30 +119,13 @@ cython(
+     sdl + [ png, 'z', 'm' ])
+
+ FRIBIDI_SOURCES = """
+-fribidi-src/lib/fribidi.c
+-fribidi-src/lib/fribidi-arabic.c
+-fribidi-src/lib/fribidi-bidi.c
+-fribidi-src/lib/fribidi-bidi-types.c
+-fribidi-src/lib/fribidi-deprecated.c
+-fribidi-src/lib/fribidi-joining.c
+-fribidi-src/lib/fribidi-joining-types.c
+-fribidi-src/lib/fribidi-mem.c
+-fribidi-src/lib/fribidi-mirroring.c
+-fribidi-src/lib/fribidi-run.c
+-fribidi-src/lib/fribidi-shape.c
+ renpybidicore.c
+ """.split()
+ cython(
+     "_renpybidi",
+     FRIBIDI_SOURCES,
+-    includes=[
+-        BASE + "/fribidi-src/",
+-        BASE + "/fribidi-src/lib/",
+-        ],
+-    define_macros=[
+-        ("FRIBIDI_ENTRY", ""),
+-        ("HAVE_CONFIG_H", "1"),
+-        ])
++    includes=["/usr/include/fribidi"],
++    libs=["fribidi"])
+
+
+ cython("_renpysteam", language="c++", compile_if=steam_sdk, libs=["steam_api"])
diff --git a/gnu/packages/patches/rust-1.48-linker-locale.patch b/gnu/packages/patches/rust-1.48-linker-locale.patch
new file mode 100644
index 0000000000..d06dcbe682
--- /dev/null
+++ b/gnu/packages/patches/rust-1.48-linker-locale.patch
@@ -0,0 +1,14 @@
+https://github.com/rust-lang/rust/pull/74416
+diff --git a/compiler/rustc_codegen_ssa/src/back/linker.rs b/compiler/rustc_codegen_ssa/src/back/linker.rs
+index 3df956c465e..f45fee45be4 100644
+--- a/compiler/rustc_codegen_ssa/src/back/linker.rs
++++ b/compiler/rustc_codegen_ssa/src/back/linker.rs
+@@ -28,7 +28,7 @@
+ pub fn disable_localization(linker: &mut Command) {
+     // No harm in setting both env vars simultaneously.
+     // Unix-style linkers.
+-    linker.env("LC_ALL", "C");
++    linker.env("LC_ALL", "en_US.UTF-8");
+     // MSVC's `link.exe`.
+     linker.env("VSLANG", "1033");
+ }
diff --git a/gnu/packages/patches/rust-ndarray-remove-blas-src-dep.patch b/gnu/packages/patches/rust-ndarray-remove-blas-src-dep.patch
new file mode 100644
index 0000000000..7221fdd608
--- /dev/null
+++ b/gnu/packages/patches/rust-ndarray-remove-blas-src-dep.patch
@@ -0,0 +1,36 @@
+From ed09f3c91e915c3b436854a7936566edceb3e8de Mon Sep 17 00:00:00 2001
+From: Efraim Flashner <efraim@flashner.co.il>
+Date: Tue, 15 Dec 2020 10:09:45 +0200
+Subject: [PATCH] remove blas-src dependency
+
+---
+ Cargo.toml | 6 +-----
+ 1 file changed, 1 insertion(+), 5 deletions(-)
+
+diff --git a/Cargo.toml b/Cargo.toml
+index 1f3e1b6..36bc816 100644
+--- a/Cargo.toml
++++ b/Cargo.toml
+@@ -37,10 +37,6 @@ debug = true
+ name = "ndarray"
+ test = true
+ bench = false
+-[dependencies.blas-src]
+-version = "0.2.0"
+-optional = true
+-default-features = false
+ 
+ [dependencies.cblas-sys]
+ version = "0.1.4"
+@@ -78,7 +74,7 @@ default-features = false
+ version = "0.1"
+ 
+ [features]
+-blas = ["cblas-sys", "blas-src"]
++blas = ["cblas-sys"]
+ docs = ["rustc-serialize", "serde-1"]
+ serde-1 = ["serde"]
+ test = ["test-blas-openblas-sys"]
+-- 
+2.29.2
+
diff --git a/gnu/packages/patches/samba-fix-fcntl-hint-detection.patch b/gnu/packages/patches/samba-fix-fcntl-hint-detection.patch
new file mode 100644
index 0000000000..b56c628537
--- /dev/null
+++ b/gnu/packages/patches/samba-fix-fcntl-hint-detection.patch
@@ -0,0 +1,55 @@
+From 454ccd986b61799908a6898a55d0480911f15306 Mon Sep 17 00:00:00 2001
+From: Ralph Boehme <slow@samba.org>
+Date: Mon, 21 Sep 2020 07:48:43 +0200
+Subject: [PATCH] s3: fix fcntl waf configure check
+
+RN: Fix fcntl waf configure check
+BUG: https://bugzilla.samba.org/show_bug.cgi?id=14503
+
+Signed-off-by: Ralph Boehme <slow@samba.org>
+Reviewed-by: Volker Lendecke <vl@samba.org>
+
+Autobuild-User(master): Volker Lendecke <vl@samba.org>
+Autobuild-Date(master): Mon Sep 21 07:26:54 UTC 2020 on sn-devel-184
+---
+ source3/wscript | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/source3/wscript b/source3/wscript
+index 840ed430c0f..d3ef346eecd 100644
+--- a/source3/wscript
++++ b/source3/wscript
+@@ -1244,7 +1244,7 @@ err:
+ 
+ int main(void)
+ {
+-        uint64_t *hint, get_hint;
++        uint64_t hint, get_hint;
+         int fd;
+ 
+         fd = open(DATA, O_RDONLY | O_CREAT | O_EXCL);
+@@ -1252,8 +1252,8 @@ int main(void)
+             goto err;
+         }
+ 
+-        *hint = RWH_WRITE_LIFE_SHORT;
+-        int ret = fcntl(fd, F_SET_RW_HINT, hint);
++        hint = RWH_WRITE_LIFE_SHORT;
++        int ret = fcntl(fd, F_SET_RW_HINT, &hint);
+         if (ret == -1) {
+             goto err;
+         }
+@@ -1267,8 +1267,8 @@ int main(void)
+             goto err;
+         }
+ 
+-        *hint = RWH_WRITE_LIFE_EXTREME;
+-        ret = fcntl(fd, F_SET_FILE_RW_HINT, hint);
++        hint = RWH_WRITE_LIFE_EXTREME;
++        ret = fcntl(fd, F_SET_FILE_RW_HINT, &hint);
+         if (ret == -1) {
+             goto err;
+         }
+-- 
+2.28.0
+
diff --git a/gnu/packages/patches/sbcl-clml-fix-types.patch b/gnu/packages/patches/sbcl-clml-fix-types.patch
new file mode 100644
index 0000000000..689a2fbfc2
--- /dev/null
+++ b/gnu/packages/patches/sbcl-clml-fix-types.patch
@@ -0,0 +1,280 @@
+commit 9920bf86604b536c735b6478488a3cb89413e000
+Author: Guillaume Le Vaillant <glv@posteo.net>
+Date:   Tue Dec 1 09:38:41 2020 +0100
+
+    Fix some type declarations
+    
+    This allows compiling with SBCL 2.0.11 which is less tolerant with wrong type
+    declarations.
+
+diff --git a/som/src/lvq_pak.lisp b/som/src/lvq_pak.lisp
+index 1a062cc..4006ed6 100644
+--- a/som/src/lvq_pak.lisp
++++ b/som/src/lvq_pak.lisp
+@@ -53,7 +53,7 @@
+      (current :accessor entries-current :initarg :current :initform 0
+               :documentation "index of current data-entry inside data-entries")
+      (entries :accessor entries-entries :initarg :entries :initform nil
+-              :type #-ccl cons #+ccl list
++              :type #-ccl (or null cons) #+ccl list
+               :documentation "list of data-entries")
+      (num-loaded :accessor entries-num-loaded :initarg :num-loaded :initform nil
+                  :documentation "number of lines loaded in entries list")
+diff --git a/statistics/src/rand/rand.lisp b/statistics/src/rand/rand.lisp
+index 3cd806a..c8f9952 100644
+--- a/statistics/src/rand/rand.lisp
++++ b/statistics/src/rand/rand.lisp
+@@ -154,7 +154,7 @@
+        (xn (make-array (1+ n) :element-type 'double-float)))
+   (declare (type double-float r v d)
+            (type fixnum k n n-minus-1)
+-           (type (vector double-float *) xn))
++           (type (simple-array double-float (*)) xn))
+   ;; build xn
+   (setf (aref xn n) (* v (exp (/ (* r r) 2))))
+   (setf (aref xn (1- n)) r)
+@@ -233,8 +233,8 @@
+          (base (expt 2 (- +bit-operation-m+ k 1))))
+     (declare (type double-float r v d)
+              (type fixnum k n n-minus-1 base)
+-             (type (vector double-float *) wn fn)
+-             (type (vector fixnum *) kn))
++             (type (simple-array double-float (*)) wn fn)
++             (type (simple-array fixnum (*)) kn))
+     ;; build arrays
+     (setf (aref wn (- n 1)) (/ (* v (exp (/ (* r r) 2))) base))
+     (setf (aref wn (- n 2)) (/ r base))
+@@ -347,8 +347,8 @@
+          (base (expt 2 (- +bit-operation-m+ k))))
+     (declare (type double-float r v d)
+              (type fixnum k n n-minus-1 base)
+-             (type (vector double-float *) wn fn)
+-             (type (vector fixnum *) kn))
++             (type (simple-array double-float (*)) wn fn)
++             (type (simple-array fixnum (*)) kn))
+     ;; build arrays
+     (setf (aref wn (- n 1)) (/ (* v (exp (/ (* r r) 2))) base))
+     (setf (aref wn (- n 2)) (/ r base))
+@@ -546,8 +546,8 @@
+          (base (expt 2 (- +bit-operation-m+ k 1))))
+     (declare (type double-float r v tr1 tr2)
+              (type fixnum k n n-minus-1 base)
+-             (type (vector double-float *) wn fn)
+-             (type (vector fixnum *) kn))
++             (type (simple-array double-float (*)) wn fn)
++             (type (simple-array fixnum (*)) kn))
+     ;; build arrays
+     (setf (aref wn (- n 1)) (/ (* v (+ 1 (* r r))) base))
+     (setf (aref wn (- n 2)) (/ r base))
+@@ -663,8 +663,8 @@
+        (base (expt 2 (- +bit-operation-m+ k))))
+   (declare (type double-float r v)
+            (type fixnum k n n-minus-1 base)
+-           (type (vector double-float *) wn fn)
+-           (type (vector fixnum *) kn))
++           (type (simple-array double-float (*)) wn fn)
++           (type (simple-array fixnum (*)) kn))
+   ;; build arrays
+   (setf (aref wn (- n 1)) (/ (* v (exp r)) base))
+   (setf (aref wn (- n 2)) (/ r base))
+@@ -804,8 +804,8 @@
+          (base (expt 2 (- +bit-operation-m+ k 1))))
+     (declare (type double-float r v)
+              (type fixnum k n n-minus-1 base)
+-             (type (vector double-float *) wn fn)
+-             (type (vector fixnum *) kn))
++             (type (simple-array double-float (*)) wn fn)
++             (type (simple-array fixnum (*)) kn))
+     ;; build arrays
+     (setf (aref wn (- n 1)) (/ (* v (exp r)) base))
+     (setf (aref wn (- n 2)) (/ r base))
+@@ -2083,8 +2083,8 @@
+        (base (expt 2 (- +bit-operation-m+ k 1))))
+   (declare (type double-float r v tr)
+            (type fixnum k n n-minus-1 base)
+-           (type (vector double-float *) wn fn)
+-           (type (vector fixnum *) kn))
++           (type (simple-array double-float (*)) wn fn)
++           (type (simple-array fixnum (*)) kn))
+   ;; build arrays
+   (setf (aref wn (- n 1)) (/ (* (expt (+ 1d0 tr) 2) v) tr base))
+   (setf (aref wn (- n 2)) (/ r base))
+@@ -2383,7 +2383,7 @@
+                ans)))
+     (declare (type double-float s a d)
+              (type vector tix)
+-             (type (vector fixnum *) si))
++             (type (simple-array fixnum (*)) si))
+     (values tix si)))
+ 
+ (defun binomial-table-lookup (tix si)
+@@ -2415,7 +2415,7 @@
+          (b (expt 2 k)))
+     (declare (type double-float s a)
+              (type fixnum nsq k b)
+-             (type (vector double-float *) pbins))
++             (type (simple-array double-float (*)) pbins))
+     ;; build pbins
+     (setf (aref pbins 0) (int-power (- 1d0 probability) size))
+     (loop for i from 1 to size do
+@@ -2438,7 +2438,7 @@
+                                do (incf j tx)) :initial-element -1 :element-type 'fixnum))
+           (thetan 0d0))
+       (declare (type double-float w thetan)
+-               (type (vector fixnum *) table))
++               (type (simple-array fixnum (*)) table))
+       (loop with j = 0
+             for x from 0
+             for pbin across pbins
+@@ -2454,8 +2454,8 @@
+             (vi (make-array nsq :element-type 'double-float
+                             :initial-contents (loop for i from 0 to size collect (dfloat (/ (+ i 1) nsq)))))
+             (c (dfloat (/ nsq))))
+-        (declare (type (vector fixnum *) ki)
+-                 (type (vector double-float *) vi)
++        (declare (type (simple-array fixnum (*)) ki)
++                 (type (simple-array double-float (*)) vi)
+                  (type double-float c))
+         (loop repeat size do
+               (let ((maxp 0)
+@@ -2658,7 +2658,7 @@
+           (thetan 0d0)
+           (sum 0d0))
+       (declare (type double-float w thetan sum)
+-               (type (vector fixnum *) table))
++               (type (simple-array fixnum (*)) table))
+       (loop with j = 0
+           for x from 0
+           for pgeo across pgeos
+@@ -2675,8 +2675,8 @@
+             (vi (make-array nsq :element-type 'double-float
+                             :initial-contents (loop for i from 0 below nsq collect (dfloat (/ (+ i 1) nsq)))))
+             (c (dfloat (/ nsq))))
+-        (declare (type (vector fixnum *) ki)
+-                 (type (vector double-float *) vi)
++        (declare (type (simple-array fixnum (*)) ki)
++                 (type (simple-array double-float (*)) vi)
+                  (type double-float c))
+         (loop repeat (1- nsq) do
+               (let ((maxp 0)
+@@ -2911,7 +2911,7 @@
+            (sum 0d0))
+       (declare (type double-float w thetan sum pl pu)
+                (type fixnum nsq d)
+-               (type (vector fixnum *) table))
++               (type (simple-array fixnum (*)) table))
+       (unless (= xl 0)
+         (setf pps (subseq pps xl)))
+       (loop with j = 0
+@@ -2930,8 +2930,8 @@
+             (vi (make-array nsq :element-type 'double-float
+                             :initial-contents (loop for i from 0 below nsq collect (dfloat (/ (+ i 1) nsq)))))
+             (c (dfloat (/ nsq))))
+-        (declare (type (vector fixnum *) ki)
+-                 (type (vector double-float *) vi)
++        (declare (type (simple-array fixnum (*)) ki)
++                 (type (simple-array double-float (*)) vi)
+                  (type double-float c))
+         (loop repeat (1- nsq) do
+               (let ((maxp 0)
+@@ -3174,7 +3174,7 @@
+          (k 7)
+          (b (expt 2 k)))
+     (declare (type fixnum a1 a2 nsq k b)
+-             (type (vector double-float *) phs))
++             (type (simple-array double-float (*)) phs))
+     ;; build phs
+     (setf (aref phs 0)
+       (/ (dfloat (the fixnum (* (combination successes a1) (combination (- elements successes) (- samples a1)))))
+@@ -3200,7 +3200,7 @@
+           (table (make-array b :initial-element -1 :element-type 'fixnum))
+           (thetan 0d0))
+       (declare (type double-float w thetan)
+-               (type (vector fixnum *) table))
++               (type (simple-array fixnum (*)) table))
+       (loop with j = 0
+           for x from a1
+           for i from 0
+@@ -3217,8 +3217,8 @@
+             (vi (make-array nsq :element-type 'double-float
+                             :initial-contents (loop for i from 0 below nsq collect (dfloat (/ (+ i 1) nsq)))))
+             (c (dfloat (/ nsq))))
+-        (declare (type (vector fixnum *) ki)
+-                 (type (vector double-float *) vi)
++        (declare (type (simple-array fixnum (*)) ki)
++                 (type (simple-array double-float (*)) vi)
+                  (type double-float c))
+         (loop repeat (1- nsq) do
+               (let ((maxp 0)
+@@ -3442,7 +3442,7 @@
+            (sum 0d0))
+       (declare (type double-float w thetan sum pl pu)
+                (type fixnum nsq d)
+-               (type (vector fixnum *) table))
++               (type (simple-array fixnum (*)) table))
+       (unless (= xl 0)
+         (setf pnbs (subseq pnbs xl)))
+       (loop with j = 0
+@@ -3461,8 +3461,8 @@
+             (vi (make-array nsq :element-type 'double-float
+                             :initial-contents (loop for i from 0 below nsq collect (dfloat (/ (+ i 1) nsq)))))
+             (c (dfloat (/ nsq))))
+-        (declare (type (vector fixnum *) ki)
+-                 (type (vector double-float *) vi)
++        (declare (type (simple-array fixnum (*)) ki)
++                 (type (simple-array double-float (*)) vi)
+                  (type double-float c))
+         (loop repeat (1- nsq) do
+               (let ((maxp 0)
+diff --git a/time-series/src/ts-read-data.lisp b/time-series/src/ts-read-data.lisp
+index 09ad933..a692514 100644
+--- a/time-series/src/ts-read-data.lisp
++++ b/time-series/src/ts-read-data.lisp
+@@ -5,7 +5,7 @@
+   ((frequency :initarg :frequency
+               :accessor ts-freq
+               :initform nil
+-              :type number)
++              :type (or null number))
+    (start :initarg :start :accessor ts-start :initform nil)
+    (end :initarg :end :accessor ts-end :initform nil)
+    (ts-type :initarg :ts-type :accessor ts-type :initform nil)
+diff --git a/time-series/src/ts-state-space-model.lisp b/time-series/src/ts-state-space-model.lisp
+index 4dbf56a..ad9e5cc 100644
+--- a/time-series/src/ts-state-space-model.lisp
++++ b/time-series/src/ts-state-space-model.lisp
+@@ -348,8 +348,8 @@
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+ (eval-when (:execute :compile-toplevel :load-toplevel)
+  (defclass trend-model (gaussian-stsp-model)
+-   ((diff-k :initarg :diff-k :initform nil :type integer :accessor diff-k)
+-    (tau^2 :initarg :tau^2 :initform nil :type number :accessor tau^2)
++   ((diff-k :initarg :diff-k :initform nil :type (or null integer) :accessor diff-k)
++    (tau^2 :initarg :tau^2 :initform nil :type (or null number) :accessor tau^2)
+     (aic :initarg :aic :initform +nan+ :type number))
+    (:documentation "- parent: gaussian-stsp-model
+ - accessors:
+@@ -492,9 +492,9 @@
+ ; seasonal model ;
+ ;;;;;;;;;;;;;;;;;;
+ (defclass seasonal-model (gaussian-stsp-model)
+-  ((s-deg  :initarg :s-deg :initform nil :type fixnum :accessor s-deg)
+-   (s-freq  :initarg :s-freq :initform nil :type fixnum :accessor s-freq)
+-   (tau^2 :initarg :tau^2 :initform nil :type number :accessor tau^2))
++  ((s-deg  :initarg :s-deg :initform nil :type (or null fixnum) :accessor s-deg)
++   (s-freq  :initarg :s-freq :initform nil :type (or null fixnum) :accessor s-freq)
++   (tau^2 :initarg :tau^2 :initform nil :type (or null number) :accessor tau^2))
+   (:documentation "- parent: gaussian-stsp-model
+ - accessors
+   - s-deg  : Degree for seasonal model
+@@ -593,8 +593,8 @@
+ ; seasonal-adjustment-model ;
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+ (defclass seasonal-adjustment-model (gaussian-stsp-model)
+-  ((trend :initarg :trend :initform nil :type trend-model :accessor trend-model)
+-   (seasonal :initarg :seasonal :initform nil :type seasonal-model :accessor seasonal-model))
++  ((trend :initarg :trend :initform nil :type (or null trend-model) :accessor trend-model)
++   (seasonal :initarg :seasonal :initform nil :type (or null seasonal-model) :accessor seasonal-model))
+   (:documentation "Standard seasonal adjustment model ( Trend + Seasonal )
+ - parent: gaussian-stsp-model
+ - accessors
diff --git a/gnu/packages/patches/sbcl-graph-asdf-definitions.patch b/gnu/packages/patches/sbcl-graph-asdf-definitions.patch
deleted file mode 100644
index ec17949675..0000000000
--- a/gnu/packages/patches/sbcl-graph-asdf-definitions.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-commit 52ebece1243ae6900e414b6248b5145a28348eef
-Author: Guillaume Le Vaillant <glv@posteo.net>
-Date:   Fri Oct 18 15:41:23 2019 +0200
-
-    Use basic ASDF system definitions instead of package-inferred-system
-
-diff --git a/graph.asd b/graph.asd
-index 193b6e3..56afc8f 100644
---- a/graph.asd
-+++ b/graph.asd
-@@ -3,12 +3,10 @@
-   :version "0.0.0"
-   :author ("Eric Schulte <schulte.eric@gmail.com>" "Thomas Dye")
-   :licence "GPL V3"
--  :class :package-inferred-system
--  :defsystem-depends-on (:asdf-package-system)
-+  :in-order-to ((test-op (test-op graph-test)))
-   :depends-on (alexandria
-                metabang-bind
-                named-readtables
-                curry-compose-reader-macros
--               graph/graph))
--
--(register-system-packages "femlisp-matlisp" '(:fl.matlisp))
-+               cl-heap)
-+  :components ((:file "graph")))
-diff --git a/graph-dot.asd b/graph-dot.asd
-new file mode 100644
-index 0000000..12aec7e
---- /dev/null
-+++ b/graph-dot.asd
-@@ -0,0 +1,8 @@
-+(defsystem :graph-dot
-+  :depends-on (alexandria
-+               metabang-bind
-+               named-readtables
-+               curry-compose-reader-macros
-+               cl-ppcre
-+               graph)
-+  :components ((:file "dot")))
-diff --git a/graph-json.asd b/graph-json.asd
-new file mode 100644
-index 0000000..e7d091f
---- /dev/null
-+++ b/graph-json.asd
-@@ -0,0 +1,8 @@
-+(defsystem :graph-json
-+  :depends-on (alexandria
-+               metabang-bind
-+               named-readtables
-+               curry-compose-reader-macros
-+               yason
-+               graph)
-+  :components ((:file "json")))
-diff --git a/graph-test.asd b/graph-test.asd
-new file mode 100644
-index 0000000..1e811e1
---- /dev/null
-+++ b/graph-test.asd
-@@ -0,0 +1,10 @@
-+(defsystem :graph-test
-+  :depends-on (alexandria
-+               metabang-bind
-+               named-readtables
-+               curry-compose-reader-macros
-+               graph
-+               stefil)
-+  :perform (test-op (o s)
-+             (uiop:symbol-call :graph/test 'test))
-+  :components ((:file "test")))
diff --git a/gnu/packages/patches/scribus-1.5.5-poppler-0.86-build-fix.patch b/gnu/packages/patches/scribus-1.5.5-poppler-0.86-build-fix.patch
deleted file mode 100644
index 39008cba5c..0000000000
--- a/gnu/packages/patches/scribus-1.5.5-poppler-0.86-build-fix.patch
+++ /dev/null
@@ -1,642 +0,0 @@
-Fix build with Poppler 0.86.
-
-The original series of patches authored by Craig Bradney <mrb@scribus.info>
-and Jean Ghali <jghali@libertysurf.fr>, taken from
-https://gitweb.gentoo.org/repo/gentoo.git/tree/app-office/scribus/files
-
-diff --git a/scribus/plugins/import/pdf/importpdf.cpp b/scribus/plugins/import/pdf/importpdf.cpp
---- a/scribus/plugins/import/pdf/importpdf.cpp
-+++ b/scribus/plugins/import/pdf/importpdf.cpp
-@@ -75,7 +75,11 @@ PdfPlug::PdfPlug(ScribusDoc* doc, int flags)
- QImage PdfPlug::readThumbnail(const QString& fName)

- {

- 	QString pdfFile = QDir::toNativeSeparators(fName);

-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 83, 0)

-+	globalParams.reset(new GlobalParams());

-+#else

- 	globalParams = new GlobalParams();

-+#endif

- 	if (globalParams)

- 	{

- #if defined(Q_OS_WIN32) && POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 62, 0)

-@@ -90,7 +94,9 @@ QImage PdfPlug::readThumbnail(const QString& fName)
- 			if (pdfDoc->getErrorCode() == errEncrypted)

- 			{

- 				delete pdfDoc;

-+#if POPPLER_ENCODED_VERSION < POPPLER_VERSION_ENCODE(0, 83, 0)

- 				delete globalParams;

-+#endif

- 				return QImage();

- 			}

- 			if (pdfDoc->isOk())

-@@ -134,11 +140,15 @@ QImage PdfPlug::readThumbnail(const QString& fName)
- 				image.setText("YSize", QString("%1").arg(h));

- 				delete dev;

- 				delete pdfDoc;

-+#if POPPLER_ENCODED_VERSION < POPPLER_VERSION_ENCODE(0, 83, 0)

- 				delete globalParams;

-+#endif

- 				return image;

- 			}

- 			delete pdfDoc;

-+#if POPPLER_ENCODED_VERSION < POPPLER_VERSION_ENCODE(0, 83, 0)

- 			delete globalParams;

-+#endif

- 		}

- 	}

- 	return QImage();

-@@ -387,7 +397,11 @@ bool PdfPlug::convert(const QString& fn)
- 		qApp->processEvents();

- 	}

- 

-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 83, 0)

-+	globalParams.reset(new GlobalParams());

-+#else

- 	globalParams = new GlobalParams();

-+#endif

- 	GooString *userPW = nullptr;

- 	if (globalParams)

- 	{

-@@ -429,7 +443,9 @@ bool PdfPlug::convert(const QString& fn)
- 					if (progressDialog)

- 						progressDialog->close();

- 					delete pdfDoc;

-+#if POPPLER_ENCODED_VERSION < POPPLER_VERSION_ENCODE(0, 83, 0)

- 					delete globalParams;

-+#endif

- 					return false;

- 				}

- 				if (progressDialog)

-@@ -474,7 +490,9 @@ bool PdfPlug::convert(const QString& fn)
- 							progressDialog->close();

- 						delete optImp;

- 						delete pdfDoc;

-+#if POPPLER_ENCODED_VERSION < POPPLER_VERSION_ENCODE(0, 83, 0)

- 						delete globalParams;

-+#endif

- 						return false;

- 					}

- 					pageString = optImp->getPagesString();

-@@ -838,11 +856,20 @@ bool PdfPlug::convert(const QString& fn)
- 								names = catDict.dictLookup("OpenAction");

- 								if (names.isDict())

- 								{

-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0)

-+									std::unique_ptr<LinkAction> linkAction;

-+									linkAction = LinkAction::parseAction(&names, pdfDoc->getCatalog()->getBaseURI());

-+#else

- 									LinkAction *linkAction = nullptr;

- 									linkAction = LinkAction::parseAction(&names, pdfDoc->getCatalog()->getBaseURI());

-+#endif

- 									if (linkAction)

- 									{

--										LinkJavaScript *jsa = (LinkJavaScript*)linkAction;

-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0)

-+										LinkJavaScript *jsa = (LinkJavaScript*) linkAction.get();

-+#else

-+										LinkJavaScript *jsa = (LinkJavaScript*) linkAction;

-+#endif

- 										if (jsa->isOk())

- 										{

- 											QString script = UnicodeParsedString(jsa->getScript());

-@@ -908,8 +935,12 @@ bool PdfPlug::convert(const QString& fn)
- 		}

- 		delete pdfDoc;

- 	}

-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 83, 0)

-+	globalParams.release();

-+#else

- 	delete globalParams;

- 	globalParams = nullptr;

-+#endif

- 

- //	qDebug() << "converting finished";

- //	qDebug() << "Imported" << Elements.count() << "Elements";

-@@ -1046,3 +1077,43 @@ QString PdfPlug::UnicodeParsedString(POPPLER_CONST GooString *s1)
- 	}

- 	return result;

- }

-+

-+QString PdfPlug::UnicodeParsedString(const std::string& s1)

-+{

-+	if (s1.length() == 0)

-+		return QString();

-+	GBool isUnicode;

-+	int i;

-+	Unicode u;

-+	QString result;

-+	if ((s1.at(0) & 0xff) == 0xfe && (s1.length() > 1 && (s1.at(1) & 0xff) == 0xff))

-+	{

-+		isUnicode = gTrue;

-+		i = 2;

-+		result.reserve((s1.length() - 2) / 2);

-+	}

-+	else

-+	{

-+		isUnicode = gFalse;

-+		i = 0;

-+		result.reserve(s1.length());

-+	}

-+	while (i < s1.length())

-+	{

-+		if (isUnicode)

-+		{

-+			u = ((s1.at(i) & 0xff) << 8) | (s1.at(i+1) & 0xff);

-+			i += 2;

-+		}

-+		else

-+		{

-+			u = s1.at(i) & 0xff;

-+			++i;

-+		}

-+		// #15616: imagemagick may write unicode strings incorrectly in PDF

-+		if (u == 0)

-+			continue;

-+		result += QChar( u );

-+	}

-+	return result;

-+}

-diff --git a/scribus/plugins/import/pdf/importpdf.h b/scribus/plugins/import/pdf/importpdf.h
---- a/scribus/plugins/import/pdf/importpdf.h
-+++ b/scribus/plugins/import/pdf/importpdf.h
-@@ -82,6 +82,7 @@ private:
- 	bool convert(const QString& fn);
- 	QRectF getCBox(int box, int pgNum);
- 	QString UnicodeParsedString(POPPLER_CONST GooString *s1);
-+	QString UnicodeParsedString(const std::string& s1);
- 	
- 	QList<PageItem*> Elements;
- 	double baseX, baseY;
-diff --git a/scribus/plugins/import/pdf/importpdfconfig.h b/scribus/plugins/import/pdf/importpdfconfig.h
---- a/scribus/plugins/import/pdf/importpdfconfig.h
-+++ b/scribus/plugins/import/pdf/importpdfconfig.h
-@@ -52,4 +52,16 @@ for which a new license (GPL+exception) is in place.
- #define POPPLER_REF

- #endif

- 

-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 82, 0)

-+#define POPPLER_CONST_082 const

-+#else

-+#define POPPLER_CONST_082

-+#endif

-+

-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 83, 0)

-+#define POPPLER_CONST_083 const

-+#else

-+#define POPPLER_CONST_083

-+#endif

-+

- #endif

-diff --git a/scribus/plugins/import/pdf/slaoutput.cpp b/scribus/plugins/import/pdf/slaoutput.cpp
---- a/scribus/plugins/import/pdf/slaoutput.cpp
-+++ b/scribus/plugins/import/pdf/slaoutput.cpp
-@@ -308,9 +308,15 @@ LinkAction* SlaOutputDev::SC_getAction(AnnotWidget *ano)
- }

- 

- /* Replacement for the crippled Poppler function LinkAction* AnnotWidget::getAdditionalAction(AdditionalActionsType type) */

-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0)

-+std::unique_ptr<LinkAction> SlaOutputDev::SC_getAdditionalAction(const char *key, AnnotWidget *ano)

-+{

-+	std::unique_ptr<LinkAction> linkAction;

-+#else

- LinkAction* SlaOutputDev::SC_getAdditionalAction(const char *key, AnnotWidget *ano)

- {

- 	LinkAction *linkAction = nullptr;

-+#endif

- 	Object obj;

- 	Ref refa = ano->getRef();

- 

-@@ -455,7 +461,11 @@ bool SlaOutputDev::handleLinkAnnot(Annot* annota, double xCoor, double yCoor, do
- 			POPPLER_CONST GooString *ndst = gto->getNamedDest();

- 			if (ndst)

- 			{

-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0)

-+				std::unique_ptr<LinkDest> dstn = pdfDoc->findDest(ndst);

-+#else

- 				LinkDest *dstn = pdfDoc->findDest(ndst);

-+#endif

- 				if (dstn)

- 				{

- 					if (dstn->getKind() == destXYZ)

-@@ -499,7 +509,11 @@ bool SlaOutputDev::handleLinkAnnot(Annot* annota, double xCoor, double yCoor, do
- 			POPPLER_CONST GooString *ndst = gto->getNamedDest();

- 			if (ndst)

- 			{

-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0)

-+				std::unique_ptr<LinkDest> dstn = pdfDoc->findDest(ndst);

-+#else

- 				LinkDest *dstn = pdfDoc->findDest(ndst);

-+#endif

- 				if (dstn)

- 				{

- 					if (dstn->getKind() == destXYZ)

-@@ -967,7 +981,11 @@ void SlaOutputDev::handleActions(PageItem* ite, AnnotWidget *ano)
- 				POPPLER_CONST GooString *ndst = gto->getNamedDest();

- 				if (ndst)

- 				{

-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0)

-+					std::unique_ptr<LinkDest> dstn = pdfDoc->findDest(ndst);

-+#else

- 					LinkDest *dstn = pdfDoc->findDest(ndst);

-+#endif

- 					if (dstn)

- 					{

- 						if (dstn->getKind() == destXYZ)

-@@ -1019,7 +1037,11 @@ void SlaOutputDev::handleActions(PageItem* ite, AnnotWidget *ano)
- 				POPPLER_CONST GooString *ndst = gto->getNamedDest();

- 				if (ndst)

- 				{

-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0)

-+					std::unique_ptr<LinkDest> dstn = pdfDoc->findDest(ndst);

-+#else

- 					LinkDest *dstn = pdfDoc->findDest(ndst);

-+#endif

- 					if (dstn)

- 					{

- 						if (dstn->getKind() == destXYZ)

-@@ -1088,96 +1110,148 @@ void SlaOutputDev::handleActions(PageItem* ite, AnnotWidget *ano)
- 		else

- 			qDebug() << "Found unsupported Action of type" << Lact->getKind();

- 	}

--	LinkAction *Aact = SC_getAdditionalAction("D", ano);

-+	auto Aact = SC_getAdditionalAction("D", ano);

- 	if (Aact)

- 	{

- 		if (Aact->getKind() == actionJavaScript)

- 		{

--			LinkJavaScript *jsa = (LinkJavaScript*)Aact;

-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0)

-+			LinkJavaScript *jsa = (LinkJavaScript*) Aact.get();

-+#else

-+			LinkJavaScript *jsa = (LinkJavaScript*) Aact;

-+#endif

- 			if (jsa->isOk())

- 			{

- 				ite->annotation().setD_act(UnicodeParsedString(jsa->getScript()));

- 				ite->annotation().setAAact(true);

- 			}

- 		}

-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0)

-+		Aact.reset();

-+#else

- 		Aact = nullptr;

-+#endif

- 	}

- 	Aact = SC_getAdditionalAction("E", ano);

- 	if (Aact)

- 	{

- 		if (Aact->getKind() == actionJavaScript)

- 		{

--			LinkJavaScript *jsa = (LinkJavaScript*)Aact;

-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0)

-+			LinkJavaScript *jsa = (LinkJavaScript*) Aact.get();

-+#else

-+			LinkJavaScript *jsa = (LinkJavaScript*) Aact;

-+#endif

- 			if (jsa->isOk())

- 			{

- 				ite->annotation().setE_act(UnicodeParsedString(jsa->getScript()));

- 				ite->annotation().setAAact(true);

- 			}

- 		}

-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0)

-+		Aact.reset();

-+#else

- 		Aact = nullptr;

-+#endif

- 	}

- 	Aact = SC_getAdditionalAction("X", ano);

- 	if (Aact)

- 	{

- 		if (Aact->getKind() == actionJavaScript)

- 		{

--			LinkJavaScript *jsa = (LinkJavaScript*)Aact;

-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0)

-+			LinkJavaScript *jsa = (LinkJavaScript*) Aact.get();

-+#else

-+			LinkJavaScript *jsa = (LinkJavaScript*) Aact;

-+#endif

- 			if (jsa->isOk())

- 			{

- 				ite->annotation().setX_act(UnicodeParsedString(jsa->getScript()));

- 				ite->annotation().setAAact(true);

- 			}

- 		}

-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0)

-+		Aact.reset();

-+#else

- 		Aact = nullptr;

-+#endif

- 	}

- 	Aact = SC_getAdditionalAction("Fo", ano);

- 	if (Aact)

- 	{

- 		if (Aact->getKind() == actionJavaScript)

- 		{

--			LinkJavaScript *jsa = (LinkJavaScript*)Aact;

-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0)

-+			LinkJavaScript *jsa = (LinkJavaScript*) Aact.get();

-+#else

-+			LinkJavaScript *jsa = (LinkJavaScript*) Aact;

-+#endif

- 			if (jsa->isOk())

- 			{

- 				ite->annotation().setFo_act(UnicodeParsedString(jsa->getScript()));

- 				ite->annotation().setAAact(true);

- 			}

- 		}

-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0)

-+		Aact.reset();

-+#else

- 		Aact = nullptr;

-+#endif

- 	}

- 	Aact = SC_getAdditionalAction("Bl", ano);

- 	if (Aact)

- 	{

- 		if (Aact->getKind() == actionJavaScript)

- 		{

--			LinkJavaScript *jsa = (LinkJavaScript*)Aact;

-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0)

-+			LinkJavaScript *jsa = (LinkJavaScript*) Aact.get();

-+#else

-+			LinkJavaScript *jsa = (LinkJavaScript*) Aact;

-+#endif

- 			if (jsa->isOk())

- 			{

- 				ite->annotation().setBl_act(UnicodeParsedString(jsa->getScript()));

- 				ite->annotation().setAAact(true);

- 			}

- 		}

-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0)

-+		Aact.reset();

-+#else

- 		Aact = nullptr;

-+#endif

- 	}

- 	Aact = SC_getAdditionalAction("C", ano);

- 	if (Aact)

- 	{

- 		if (Aact->getKind() == actionJavaScript)

- 		{

--			LinkJavaScript *jsa = (LinkJavaScript*)Aact;

-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0)

-+			LinkJavaScript *jsa = (LinkJavaScript*) Aact.get();

-+#else

-+			LinkJavaScript *jsa = (LinkJavaScript*) Aact;

-+#endif

- 			if (jsa->isOk())

- 			{

- 				ite->annotation().setC_act(UnicodeParsedString(jsa->getScript()));

- 				ite->annotation().setAAact(true);

- 			}

- 		}

-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0)

-+		Aact.reset();

-+#else

- 		Aact = nullptr;

-+#endif

- 	}

- 	Aact = SC_getAdditionalAction("F", ano);

- 	if (Aact)

- 	{

- 		if (Aact->getKind() == actionJavaScript)

- 		{

--			LinkJavaScript *jsa = (LinkJavaScript*)Aact;

-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0)

-+			LinkJavaScript *jsa = (LinkJavaScript*) Aact.get();

-+#else

-+			LinkJavaScript *jsa = (LinkJavaScript*) Aact;

-+#endif

- 			if (jsa->isOk())

- 			{

- 				ite->annotation().setF_act(UnicodeParsedString(jsa->getScript()));

-@@ -1185,14 +1259,22 @@ void SlaOutputDev::handleActions(PageItem* ite, AnnotWidget *ano)
- 				ite->annotation().setFormat(5);

- 			}

- 		}

-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0)

-+		Aact.reset();

-+#else

- 		Aact = nullptr;

-+#endif

- 	}

- 	Aact = SC_getAdditionalAction("K", ano);

- 	if (Aact)

- 	{

- 		if (Aact->getKind() == actionJavaScript)

- 		{

--			LinkJavaScript *jsa = (LinkJavaScript*)Aact;

-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0)

-+			LinkJavaScript *jsa = (LinkJavaScript*) Aact.get();

-+#else

-+			LinkJavaScript *jsa = (LinkJavaScript*) Aact;

-+#endif

- 			if (jsa->isOk())

- 			{

- 				ite->annotation().setK_act(UnicodeParsedString(jsa->getScript()));

-@@ -1200,21 +1282,33 @@ void SlaOutputDev::handleActions(PageItem* ite, AnnotWidget *ano)
- 				ite->annotation().setFormat(5);

- 			}

- 		}

-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0)

-+		Aact.reset();

-+#else

- 		Aact = nullptr;

-+#endif

- 	}

- 	Aact = SC_getAdditionalAction("V", ano);

- 	if (Aact)

- 	{

- 		if (Aact->getKind() == actionJavaScript)

- 		{

--			LinkJavaScript *jsa = (LinkJavaScript*)Aact;

-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0)

-+			LinkJavaScript *jsa = (LinkJavaScript*) Aact.get();

-+#else

-+			LinkJavaScript *jsa = (LinkJavaScript*) Aact;

-+#endif

- 			if (jsa->isOk())

- 			{

- 				ite->annotation().setV_act(UnicodeParsedString(jsa->getScript()));

- 				ite->annotation().setAAact(true);

- 			}

- 		}

-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0)

-+		Aact.reset();

-+#else

- 		Aact = nullptr;

-+#endif

- 	}

- }

- 

-@@ -1224,6 +1318,11 @@ void SlaOutputDev::startDoc(PDFDoc *doc, XRef *xrefA, Catalog *catA)
- 	catalog = catA;

- 	pdfDoc = doc;

- 	updateGUICounter = 0;

-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 84, 0)

-+	m_fontEngine = new SplashFontEngine(true, true, true, true);

-+#elif POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 61, 0)

-+	m_fontEngine = new SplashFontEngine(globalParams->getEnableFreeType(), true, true, true);

-+#else

- 	m_fontEngine = new SplashFontEngine(

- #if HAVE_T1LIB_H

- 	globalParams->getEnableT1lib(),

-@@ -1234,6 +1333,7 @@ void SlaOutputDev::startDoc(PDFDoc *doc, XRef *xrefA, Catalog *catA)
- 	true,

- #endif

- 	true);

-+#endif

- }

- 

- void SlaOutputDev::startPage(int pageNum, GfxState *, XRef *)

-@@ -2784,7 +2884,7 @@ void SlaOutputDev::drawMaskedImage(GfxState *state, Object *ref, Stream *str,  i
- 	delete[] mbuffer;

- }

- 

--void SlaOutputDev::drawImage(GfxState *state, Object *ref, Stream *str, int width, int height, GfxImageColorMap *colorMap, GBool interpolate, int *maskColors, GBool inlineImg)

-+void SlaOutputDev::drawImage(GfxState *state, Object *ref, Stream *str, int width, int height, GfxImageColorMap *colorMap, GBool interpolate, POPPLER_CONST_082 int* maskColors, GBool inlineImg)

- {

- 	ImageStream * imgStr = new ImageStream(str, width, colorMap->getNumPixelComps(), colorMap->getBits());

- //	qDebug() << "Image Components" << colorMap->getNumPixelComps() << "Mask" << maskColors;

-@@ -3365,7 +3465,7 @@ err1:
- 		fontsrc->unref();

- }

- 

--void SlaOutputDev::drawChar(GfxState *state, double x, double y, double dx, double dy, double originX, double originY, CharCode code, int nBytes, Unicode *u, int uLen)

-+void SlaOutputDev::drawChar(GfxState *state, double x, double y, double dx, double dy, double originX, double originY, CharCode code, int nBytes, POPPLER_CONST_082 Unicode *u, int uLen)

- {

- 	double x1, y1, x2, y2;

- 	int render;

-@@ -3452,7 +3552,7 @@ void SlaOutputDev::drawChar(GfxState *state, double x, double y, double dx, doub
- 	}

- }

- 

--GBool SlaOutputDev::beginType3Char(GfxState *state, double x, double y, double dx, double dy, CharCode code, Unicode *u, int uLen)

-+GBool SlaOutputDev::beginType3Char(GfxState *state, double x, double y, double dx, double dy, CharCode code, POPPLER_CONST_082 Unicode *u, int uLen)

- {

- //	qDebug() << "beginType3Char";

- 	GfxFont *gfxFont;

-@@ -3705,7 +3805,7 @@ QString SlaOutputDev::getAnnotationColor(const AnnotColor *color)
- 	return fNam;

- }

- 

--QString SlaOutputDev::convertPath(GfxPath *path)

-+QString SlaOutputDev::convertPath(POPPLER_CONST_083 GfxPath *path)

- {

- 	if (! path)

- 		return QString();

-@@ -3715,7 +3815,7 @@ QString SlaOutputDev::convertPath(GfxPath *path)
- 

- 	for (int i = 0; i < path->getNumSubpaths(); ++i)

- 	{

--		GfxSubpath * subpath = path->getSubpath(i);

-+		POPPLER_CONST_083 GfxSubpath * subpath = path->getSubpath(i);

- 		if (subpath->getNumPoints() > 0)

- 		{

- 			output += QString("M %1 %2").arg(subpath->getX(0)).arg(subpath->getY(0));

-@@ -3922,6 +4022,46 @@ QString SlaOutputDev::UnicodeParsedString(POPPLER_CONST GooString *s1)
- 	return result;

- }

- 

-+QString SlaOutputDev::UnicodeParsedString(const std::string& s1)

-+{

-+	if (s1.length() == 0)

-+		return QString();

-+	GBool isUnicode;

-+	int i;

-+	Unicode u;

-+	QString result;

-+	if ((s1.at(0) & 0xff) == 0xfe && (s1.length() > 1 && (s1.at(1) & 0xff) == 0xff))

-+	{

-+		isUnicode = gTrue;

-+		i = 2;

-+		result.reserve((s1.length() - 2) / 2);

-+	}

-+	else

-+	{

-+		isUnicode = gFalse;

-+		i = 0;

-+		result.reserve(s1.length());

-+	}

-+	while (i < s1.length())

-+	{

-+		if (isUnicode)

-+		{

-+			u = ((s1.at(i) & 0xff) << 8) | (s1.at(i+1) & 0xff);

-+			i += 2;

-+		}

-+		else

-+		{

-+			u = s1.at(i) & 0xff;

-+			++i;

-+		}

-+		// #15616: imagemagick may write unicode strings incorrectly in PDF

-+		if (u == 0)

-+			continue;

-+		result += QChar( u );

-+	}

-+	return result;

-+}

-+

- bool SlaOutputDev::checkClip()

- {

- 	bool ret = false;

-diff --git a/scribus/plugins/import/pdf/slaoutput.h b/scribus/plugins/import/pdf/slaoutput.h
---- a/scribus/plugins/import/pdf/slaoutput.h
-+++ b/scribus/plugins/import/pdf/slaoutput.h
-@@ -20,6 +20,8 @@ for which a new license (GPL+exception) is in place.
- #include <QTextStream>

- #include <QTransform>

- 

-+#include <memory>

-+

- #include "fpointarray.h"

- #include "importpdfconfig.h"

- #include "pageitem.h"

-@@ -159,7 +161,11 @@ public:
- 	virtual ~SlaOutputDev();

- 

- 	LinkAction* SC_getAction(AnnotWidget *ano);

-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0)

-+	std::unique_ptr<LinkAction> SC_getAdditionalAction(const char *key, AnnotWidget *ano);

-+#else

- 	LinkAction* SC_getAdditionalAction(const char *key, AnnotWidget *ano);

-+#endif

- 	static GBool annotations_callback(Annot *annota, void *user_data);

- 	bool handleTextAnnot(Annot* annota, double xCoor, double yCoor, double width, double height);

- 	bool handleLinkAnnot(Annot* annota, double xCoor, double yCoor, double width, double height);

-@@ -229,7 +235,7 @@ public:
- 

- 	//----- image drawing

- 	void drawImageMask(GfxState *state, Object *ref, Stream *str, int width, int height, GBool invert, GBool interpolate, GBool inlineImg) override;

--	void drawImage(GfxState *state, Object *ref, Stream *str, int width, int height, GfxImageColorMap *colorMap, GBool interpolate, int *maskColors, GBool inlineImg) override;

-+	void drawImage(GfxState *state, Object *ref, Stream *str, int width, int height, GfxImageColorMap *colorMap, GBool interpolate, POPPLER_CONST_082 int *maskColors, GBool inlineImg) override;

- 	void drawSoftMaskedImage(GfxState *state, Object *ref, Stream *str,

- 				   int width, int height,

- 				   GfxImageColorMap *colorMap,

-@@ -261,8 +267,8 @@ public:
- 	//----- text drawing

- 	void  beginTextObject(GfxState *state) override;

- 	void  endTextObject(GfxState *state) override;

--	void  drawChar(GfxState *state, double /*x*/, double /*y*/, double /*dx*/, double /*dy*/, double /*originX*/, double /*originY*/, CharCode /*code*/, int /*nBytes*/, Unicode * /*u*/, int /*uLen*/) override;

--	GBool beginType3Char(GfxState * /*state*/, double /*x*/, double /*y*/, double /*dx*/, double /*dy*/, CharCode /*code*/, Unicode * /*u*/, int /*uLen*/) override;

-+	void  drawChar(GfxState *state, double /*x*/, double /*y*/, double /*dx*/, double /*dy*/, double /*originX*/, double /*originY*/, CharCode /*code*/, int /*nBytes*/, POPPLER_CONST_082 Unicode * /*u*/, int /*uLen*/) override;

-+	GBool beginType3Char(GfxState * /*state*/, double /*x*/, double /*y*/, double /*dx*/, double /*dy*/, CharCode /*code*/, POPPLER_CONST_082 Unicode * /*u*/, int /*uLen*/) override;

- 	void  endType3Char(GfxState * /*state*/) override;

- 	void  type3D0(GfxState * /*state*/, double /*wx*/, double /*wy*/) override;

- 	void  type3D1(GfxState * /*state*/, double /*wx*/, double /*wy*/, double /*llx*/, double /*lly*/, double /*urx*/, double /*ury*/) override;

-@@ -282,11 +288,12 @@ private:
- 	void getPenState(GfxState *state);

- 	QString getColor(GfxColorSpace *color_space, POPPLER_CONST_070 GfxColor *color, int *shade);

- 	QString getAnnotationColor(const AnnotColor *color);

--	QString convertPath(GfxPath *path);

-+	QString convertPath(POPPLER_CONST_083 GfxPath *path);

- 	int getBlendMode(GfxState *state);

- 	void applyMask(PageItem *ite);

- 	void pushGroup(const QString& maskName = "", GBool forSoftMask = gFalse, GBool alpha = gFalse, bool inverted = false);

- 	QString UnicodeParsedString(POPPLER_CONST GooString *s1);

-+	QString UnicodeParsedString(const std::string& s1);

- 	bool checkClip();

- 	bool pathIsClosed;

- 	QString CurrColorFill;

diff --git a/gnu/packages/patches/sdcc-disable-non-free-code.patch b/gnu/packages/patches/sdcc-disable-non-free-code.patch
new file mode 100644
index 0000000000..ad9a3e7a9e
--- /dev/null
+++ b/gnu/packages/patches/sdcc-disable-non-free-code.patch
@@ -0,0 +1,3664 @@
+This patch disables the use of non-free code distributed with SDCC by
+removing
+
+  - The "--disable-non-free" option to "configure" and the build logic
+    it controls;
+
+  - All references to the "device/non-free" source directory and the
+    corresponding "non-free" installation directory; and
+
+  - The "--use-non-free" and "--no-warn-non-free" compiler options and
+    references to them in build scripts and compiler output.
+
+It also updates SDCC's documentation to reflect these changes and to
+remove instructions that encourage the use of SDCC with non-free
+software.
+
+diff --git a/Makefile.common.in b/Makefile.common.in
+index 412fd5a..81bbd61 100644
+--- a/Makefile.common.in
++++ b/Makefile.common.in
+@@ -69,7 +69,6 @@ OPT_DISABLE_PACKIHX     = @OPT_DISABLE_PACKIHX@
+ OPT_DISABLE_SDBINUTILS  = @OPT_DISABLE_SDBINUTILS@
+ OPT_DISABLE_SDCPP       = @OPT_DISABLE_SDCPP@
+ OPT_DISABLE_UCSIM       = @OPT_DISABLE_UCSIM@
+-OPT_DISABLE_NON_FREE    = @OPT_DISABLE_NON_FREE@
+ 
+ SLIB                    = $(top_builddir)/support/util
+ 
+diff --git a/Makefile.in b/Makefile.in
+index f3b028d..cfdf06d 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -100,9 +100,6 @@ endif
+ ifeq ($(OPT_DISABLE_DEVICE_LIB), 0)
+ TARGETS        += sdcc-device-lib
+ PKGS           += device/lib
+-ifeq ($(OPT_DISABLE_NON_FREE), 0)
+-PKGS           += device/non-free/lib
+-endif
+ endif
+ 
+ ifeq ($(OPT_DISABLE_PACKIHX), 0)
+@@ -123,9 +120,6 @@ endif
+ TARGETS        += sdcc-libs sdcc-cc sdcc-device-inc sdcc-as sdcc-ld sdcc-scripts
+ 
+ PKGS           += $(SDCC_LIBS) src device/include
+-ifeq ($(OPT_DISABLE_NON_FREE), 0)
+-PKGS           += device/non-free/include
+-endif
+ PKGS           += $(SDCC_AS) sdas/linksrc $(SDCC_SCRIPTS)
+ 
+ PORTS           = $(shell cat ports.build)
+@@ -171,21 +165,12 @@ sdcc-sdbinutils:
+ 
+ sdcc-device-inc:
+ 	$(MAKE) -C device/include
+-ifeq ($(OPT_DISABLE_NON_FREE), 0)
+-	$(MAKE) -C device/non-free/include
+-endif
+ 
+ sdcc-device-lib: sdcc-cc sdcc-as sdcc-ld $(SDCC_BINUTILS)
+ 	$(MAKE) -C device/lib
+-ifeq ($(OPT_DISABLE_NON_FREE), 0)
+-	$(MAKE) -C device/non-free/lib
+-endif
+ 
+ sdcc-device-tini:
+ 	$(MAKE) -C device/include
+-ifeq ($(OPT_DISABLE_NON_FREE), 0)
+-	$(MAKE) -C device/non-free/include
+-endif
+ 	$(MAKE) -C device/lib model-ds390 model-ds400
+ 
+ # doc depends on latex and latex2html
+diff --git a/configure b/configure
+index 43ccb6f..d345f54 100755
+--- a/configure
++++ b/configure
+@@ -632,7 +632,6 @@ LATEX
+ LATEX2HTML
+ LYX
+ OPT_ENABLE_DOC
+-OPT_DISABLE_NON_FREE
+ OPT_DISABLE_SDBINUTILS
+ OPT_DISABLE_SDCDB
+ OPT_DISABLE_SDCPP
+@@ -659,10 +658,7 @@ OPT_DISABLE_R2K
+ OPT_DISABLE_Z180
+ OPT_DISABLE_Z80
+ OPT_DISABLE_MCS51
+-non_free_lib_dir_suffix
+ lib_dir_suffix
+-non_free_include_dir_suffix
+-non_free_inclib_dir_suffix
+ include_dir_suffix
+ inclib_dir_suffix
+ LIB_TYPE
+@@ -780,7 +776,6 @@ enable_packihx
+ enable_sdcpp
+ enable_sdcdb
+ enable_sdbinutils
+-enable_non_free
+ enable_doc
+ enable_libgc
+ '
+@@ -801,10 +796,7 @@ sdccconf_h_dir_separator
+ LIB_TYPE
+ inclib_dir_suffix
+ include_dir_suffix
+-non_free_inclib_dir_suffix
+-non_free_include_dir_suffix
+ lib_dir_suffix
+-non_free_lib_dir_suffix
+ docdir'
+ ac_subdirs_all='support/cpp
+ support/packihx
+@@ -812,9 +804,7 @@ sim/ucsim
+ debugger/mcs51
+ support/sdbinutils
+ device/lib/pic14
+-device/non-free/lib/pic14
+-device/lib/pic16
+-device/non-free/lib/pic16'
++device/lib/pic16'
+ 
+ # Initialize some variables set by options.
+ ac_init_help=
+@@ -1455,7 +1445,6 @@ Optional Features:
+   --disable-sdcpp         Disables building sdcpp
+   --disable-sdcdb         Disables building sdcdb
+   --disable-sdbinutils    Disables configuring and building of sdbinutils
+-  --disable-non-free      Disables non-free runtime library parts
+   --enable-doc            Enables building the documentation
+   --enable-libgc          Use the Bohem memory allocator. Lower runtime
+                           footprint.
+@@ -1484,16 +1473,8 @@ Some influential environment variables:
+               appended to datadir to define SDCC's include/lib directory
+   include_dir_suffix
+               appended to datadir to define SDCC's include directory
+-  non_free_inclib_dir_suffix
+-              appended to datadir to define SDCC's non-free include/lib
+-              directory
+-  non_free_include_dir_suffix
+-              appended to datadir to define SDCC's non-free include directory
+   lib_dir_suffix
+               appended to datadir to define SDCC's library root directory
+-  non_free_lib_dir_suffix
+-              appended to datadir to define SDCC's non-free library root
+-              directory
+   docdir      documentation installation directory
+ 
+ Use these variables to override the choices made by `configure' or to help
+@@ -7134,19 +7115,6 @@ if test "${include_dir_suffix}" = ""; then
+     include_dir_suffix="${inclib_dir_suffix}/include"
+ fi
+ 
+-
+-if test "${non_free_inclib_dir_suffix}" = ""; then
+-    non_free_inclib_dir_suffix="sdcc/non-free"
+-fi
+-
+-# non_free_include_dir_suffix:
+-# *nix default: "sdcc/non-free/include"
+-
+-
+-if test "${non_free_include_dir_suffix}" = ""; then
+-    non_free_include_dir_suffix="${non_free_inclib_dir_suffix}/include"
+-fi
+-
+ # lib_dir_suffix:
+ # *nix default: "sdcc/lib"
+ 
+@@ -7154,13 +7122,6 @@ if test "${lib_dir_suffix}" = ""; then
+     lib_dir_suffix="${inclib_dir_suffix}/lib"
+ fi
+ 
+-# non_free_lib_dir_suffix:
+-# *nix default: "sdcc/non-free/lib"
+-
+-if test "${non_free_lib_dir_suffix}" = ""; then
+-    non_free_lib_dir_suffix="${non_free_inclib_dir_suffix}/lib"
+-fi
+-
+ # docdir:
+ # *nix default: "${datadir}/sdcc/doc"
+ 
+@@ -7327,24 +7288,6 @@ cat >>confdefs.h <<_ACEOF
+ #define INCLUDE_DIR_SUFFIX DIR_SEPARATOR_STRING "${norm_inc_dir_suffix}"
+ _ACEOF
+ 
+-norm_non_free_inc_dir_suffix=${non_free_include_dir_suffix}
+-case ":$norm_non_free_inc_dir_suffix:" in
+-  ::) norm_non_free_inc_dir_suffix='.' ;;
+-  :*[\\/]:) norm_non_free_inc_dir_suffix=`echo "$norm_non_free_inc_dir_suffix" | sed 's,[\\/]*$,,'` ;;
+-  :*:) ;;
+-esac
+-case $sdccconf_h_dir_separator in
+-
+-    *\\*) norm_non_free_inc_dir_suffix=`echo "$norm_non_free_inc_dir_suffix" | sed 's,\(.\)[\\/][\\/]*,\1\\\\\\\\,g
+-                                  s,^[\\/],\\\\\\\\,'` ;;
+-
+- *) norm_non_free_inc_dir_suffix=`echo "$norm_non_free_inc_dir_suffix" | sed 's,\(.\)[\\/][\\/]*,\1/,g'` ;;
+-esac
+-
+-cat >>confdefs.h <<_ACEOF
+-#define NON_FREE_INCLUDE_DIR_SUFFIX DIR_SEPARATOR_STRING "${norm_non_free_inc_dir_suffix}"
+-_ACEOF
+-
+ 
+ norm_lib_dir_suffix=${lib_dir_suffix}
+ case ":$norm_lib_dir_suffix:" in
+@@ -7364,24 +7307,6 @@ cat >>confdefs.h <<_ACEOF
+ #define LIB_DIR_SUFFIX DIR_SEPARATOR_STRING "${norm_lib_dir_suffix}"
+ _ACEOF
+ 
+-norm_non_free_lib_dir_suffix=${non_free_lib_dir_suffix}
+-case ":$norm_non_free_lib_dir_suffix:" in
+-  ::) norm_non_free_lib_dir_suffix='.' ;;
+-  :*[\\/]:) norm_non_free_lib_dir_suffix=`echo "$norm_non_free_lib_dir_suffix" | sed 's,[\\/]*$,,'` ;;
+-  :*:) ;;
+-esac
+-case $sdccconf_h_dir_separator in
+-
+-    *\\*) norm_non_free_lib_dir_suffix=`echo "$norm_non_free_lib_dir_suffix" | sed 's,\(.\)[\\/][\\/]*,\1\\\\\\\\,g
+-                                  s,^[\\/],\\\\\\\\,'` ;;
+-
+- *) norm_non_free_lib_dir_suffix=`echo "$norm_non_free_lib_dir_suffix" | sed 's,\(.\)[\\/][\\/]*,\1/,g'` ;;
+-esac
+-
+-cat >>confdefs.h <<_ACEOF
+-#define NON_FREE_LIB_DIR_SUFFIX DIR_SEPARATOR_STRING "${norm_non_free_lib_dir_suffix}"
+-_ACEOF
+-
+ 
+ # relative paths
+ for _lcl_i in expanded_bindir:expanded_datadir:bin2data_dir; do
+@@ -8439,28 +8364,6 @@ _ACEOF
+ 
+ 
+ 
+-  # Check whether --enable-non-free was given.
+-if test "${enable_non_free+set}" = set; then :
+-  enableval=$enable_non_free;
+-fi
+-
+-
+-      arg1=`echo non-free | sed s/-/_/`
+-
+-  if test "`eval echo \\$enable_$arg1`" = "no"; then
+-    OPT_DISABLE_NON_FREE=1
+-  else
+-    OPT_DISABLE_NON_FREE=0
+-  fi
+-
+-
+-cat >>confdefs.h <<_ACEOF
+-#define OPT_DISABLE_NON_FREE $OPT_DISABLE_NON_FREE
+-_ACEOF
+-
+-
+-
+-
+ 
+   # Check whether --enable-doc was given.
+ if test "${enable_doc+set}" = set; then :
+@@ -8855,20 +8758,12 @@ if test $OPT_DISABLE_PIC14 = 0; then
+ 
+   test $OPT_DISABLE_DEVICE_LIB = 0 && subdirs="$subdirs device/lib/pic14"
+ 
+-fi
+-if test $OPT_DISABLE_PIC14 = 0 && test $OPT_DISABLE_NON_FREE = 0; then
+-  test $OPT_DISABLE_DEVICE_LIB = 0 && subdirs="$subdirs device/non-free/lib/pic14"
+-
+ fi
+ if test $OPT_DISABLE_PIC16 = 0; then
+   ac_config_files="$ac_config_files src/pic16/Makefile"
+ 
+   test $OPT_DISABLE_DEVICE_LIB = 0 && subdirs="$subdirs device/lib/pic16"
+ 
+-fi
+-if test $OPT_DISABLE_PIC16 = 0 && test $OPT_DISABLE_NON_FREE = 0; then
+-  test $OPT_DISABLE_DEVICE_LIB = 0 && subdirs="$subdirs device/non-free/lib/pic16"
+-
+ fi
+ 
+ if test $OPT_DISABLE_Z80 = 0 || test $OPT_DISABLE_Z180 = 0 || test $OPT_DISABLE_R2K = 0 || test $OPT_DISABLE_R3KA = 0 || test $OPT_DISABLE_GBZ80 = 0 || test $OPT_DISABLE_TLCS90 = 0 || test $OPT_DISABLE_EZ80_Z80 = 0; then
+@@ -8945,15 +8840,9 @@ fi
+ 
+ test $OPT_DISABLE_DEVICE_LIB = 0 && ac_config_files="$ac_config_files device/lib/Makefile"
+ 
+-test $OPT_DISABLE_DEVICE_LIB = 0 && test $OPT_DISABLE_NON_FREE = 0 && ac_config_files="$ac_config_files device/non-free/lib/Makefile"
+-
+ 
+ ac_config_files="$ac_config_files main.mk:main_in.mk src/Makefile device/include/Makefile sdas/linksrc/Makefile support/makebin/Makefile support/regression/Makefile support/valdiag/Makefile support/scripts/Makefile support/regression/ports/host/spec.mk:support/regression/ports/host/spec.mk.in Makefile Makefile.common:Makefile.common.in"
+ 
+-if test $OPT_DISABLE_NON_FREE = 0; then
+-  ac_config_files="$ac_config_files device/non-free/include/Makefile"
+-
+-fi
+ cat >confcache <<\_ACEOF
+ # This file is a shell script that caches the results of configure
+ # tests run on this system so they can be shared between configure
+@@ -9692,7 +9581,6 @@ do
+     "device/lib/pdk15-stack-auto/Makefile") CONFIG_FILES="$CONFIG_FILES device/lib/pdk15-stack-auto/Makefile" ;;
+     "sdas/aspdk16/Makefile") CONFIG_FILES="$CONFIG_FILES sdas/aspdk16/Makefile" ;;
+     "device/lib/Makefile") CONFIG_FILES="$CONFIG_FILES device/lib/Makefile" ;;
+-    "device/non-free/lib/Makefile") CONFIG_FILES="$CONFIG_FILES device/non-free/lib/Makefile" ;;
+     "main.mk") CONFIG_FILES="$CONFIG_FILES main.mk:main_in.mk" ;;
+     "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;;
+     "device/include/Makefile") CONFIG_FILES="$CONFIG_FILES device/include/Makefile" ;;
+@@ -9704,7 +9592,6 @@ do
+     "support/regression/ports/host/spec.mk") CONFIG_FILES="$CONFIG_FILES support/regression/ports/host/spec.mk:support/regression/ports/host/spec.mk.in" ;;
+     "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
+     "Makefile.common") CONFIG_FILES="$CONFIG_FILES Makefile.common:Makefile.common.in" ;;
+-    "device/non-free/include/Makefile") CONFIG_FILES="$CONFIG_FILES device/non-free/include/Makefile" ;;
+ 
+   *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
+   esac
+@@ -10513,54 +10400,6 @@ esac
+ incPath3=`echo "$incPath3" | sed 's,\\\\\\\\,\\\\,g'`
+ 
+ 
+-nonFreeIncPath1=`echo "/${prefix2data_dir}/${norm_non_free_inc_dir_suffix}" | sed 's,/\./,/,g'`
+-case ":$nonFreeIncPath1:" in
+-  ::) nonFreeIncPath1='.' ;;
+-  :*[\\/]:) nonFreeIncPath1=`echo "$nonFreeIncPath1" | sed 's,[\\/]*$,,'` ;;
+-  :*:) ;;
+-esac
+-case $dirch in
+-
+-    *\\*) nonFreeIncPath1=`echo "$nonFreeIncPath1" | sed 's,\(.\)[\\/][\\/]*,\1\\\\\\\\,g
+-                                  s,^[\\/],\\\\\\\\,'` ;;
+-
+- *) nonFreeIncPath1=`echo "$nonFreeIncPath1" | sed 's,\(.\)[\\/][\\/]*,\1/,g'` ;;
+-esac
+-nonFreeIncPath1=`echo "$nonFreeIncPath1" | sed 's,\\\\\\\\,\\\\,g'`
+-
+-
+-nonFreeIncPath2=`echo "/${bin2data_dir}/${norm_non_free_inc_dir_suffix}" | sed 's,/\./,/,g'`
+-case ":$nonFreeIncPath2:" in
+-  ::) nonFreeIncPath2='.' ;;
+-  :*[\\/]:) nonFreeIncPath2=`echo "$nonFreeIncPath2" | sed 's,[\\/]*$,,'` ;;
+-  :*:) ;;
+-esac
+-case $dirch in
+-
+-    *\\*) nonFreeIncPath2=`echo "$nonFreeIncPath2" | sed 's,\(.\)[\\/][\\/]*,\1\\\\\\\\,g
+-                                  s,^[\\/],\\\\\\\\,'` ;;
+-
+- *) nonFreeIncPath2=`echo "$nonFreeIncPath2" | sed 's,\(.\)[\\/][\\/]*,\1/,g'` ;;
+-esac
+-nonFreeIncPath2=`echo "$nonFreeIncPath2" | sed 's,\\\\\\\\,\\\\,g'`
+-
+-
+-nonFreeIncPath3=`echo "${expanded_datadir}/${norm_non_free_inc_dir_suffix}" | sed 's,/\./,/,g'`
+-case ":$nonFreeIncPath3:" in
+-  ::) nonFreeIncPath3='.' ;;
+-  :*[\\/]:) nonFreeIncPath3=`echo "$nonFreeIncPath3" | sed 's,[\\/]*$,,'` ;;
+-  :*:) ;;
+-esac
+-case $dirch in
+-
+-    *\\*) nonFreeIncPath3=`echo "$nonFreeIncPath3" | sed 's,\(.\)[\\/][\\/]*,\1\\\\\\\\,g
+-                                  s,^[\\/],\\\\\\\\,'` ;;
+-
+- *) nonFreeIncPath3=`echo "$nonFreeIncPath3" | sed 's,\(.\)[\\/][\\/]*,\1/,g'` ;;
+-esac
+-nonFreeIncPath3=`echo "$nonFreeIncPath3" | sed 's,\\\\\\\\,\\\\,g'`
+-
+-
+ 
+ libPath1=`echo "/${prefix2data_dir}/${norm_lib_dir_suffix}" | sed 's,/\./,/,g'`
+ case ":$libPath1:" in
+@@ -10610,54 +10449,6 @@ esac
+ libPath3=`echo "$libPath3" | sed 's,\\\\\\\\,\\\\,g'`
+ 
+ 
+-nonFreeLibPath1=`echo "/${prefix2data_dir}/${norm_non_free_lib_dir_suffix}" | sed 's,/\./,/,g'`
+-case ":$nonFreeLibPath1:" in
+-  ::) nonFreeLibPath1='.' ;;
+-  :*[\\/]:) nonFreeLibPath1=`echo "$nonFreeLibPath1" | sed 's,[\\/]*$,,'` ;;
+-  :*:) ;;
+-esac
+-case $dirch in
+-
+-    *\\*) nonFreeLibPath1=`echo "$nonFreeLibPath1" | sed 's,\(.\)[\\/][\\/]*,\1\\\\\\\\,g
+-                                  s,^[\\/],\\\\\\\\,'` ;;
+-
+- *) nonFreeLibPath1=`echo "$nonFreeLibPath1" | sed 's,\(.\)[\\/][\\/]*,\1/,g'` ;;
+-esac
+-nonFreeLibPath1=`echo "$nonFreeLibPath1" | sed 's,\\\\\\\\,\\\\,g'`
+-
+-
+-nonFreeLibPath2=`echo "/${bin2data_dir}/${norm_non_free_lib_dir_suffix}" | sed 's,/\./,/,g'`
+-case ":$nonFreeLibPath2:" in
+-  ::) nonFreeLibPath2='.' ;;
+-  :*[\\/]:) nonFreeLibPath2=`echo "$nonFreeLibPath2" | sed 's,[\\/]*$,,'` ;;
+-  :*:) ;;
+-esac
+-case $dirch in
+-
+-    *\\*) nonFreeLibPath2=`echo "$nonFreeLibPath2" | sed 's,\(.\)[\\/][\\/]*,\1\\\\\\\\,g
+-                                  s,^[\\/],\\\\\\\\,'` ;;
+-
+- *) nonFreeLibPath2=`echo "$nonFreeLibPath2" | sed 's,\(.\)[\\/][\\/]*,\1/,g'` ;;
+-esac
+-nonFreeLibPath2=`echo "$nonFreeLibPath2" | sed 's,\\\\\\\\,\\\\,g'`
+-
+-
+-nonFreeLibPath3=`echo "${expanded_datadir}/${norm_non_free_lib_dir_suffix}" | sed 's,/\./,/,g'`
+-case ":$nonFreeLibPath3:" in
+-  ::) nonFreeLibPath3='.' ;;
+-  :*[\\/]:) nonFreeLibPath3=`echo "$nonFreeLibPath3" | sed 's,[\\/]*$,,'` ;;
+-  :*:) ;;
+-esac
+-case $dirch in
+-
+-    *\\*) nonFreeLibPath3=`echo "$nonFreeLibPath3" | sed 's,\(.\)[\\/][\\/]*,\1\\\\\\\\,g
+-                                  s,^[\\/],\\\\\\\\,'` ;;
+-
+- *) nonFreeLibPath3=`echo "$nonFreeLibPath3" | sed 's,\(.\)[\\/][\\/]*,\1/,g'` ;;
+-esac
+-nonFreeLibPath3=`echo "$nonFreeLibPath3" | sed 's,\\\\\\\\,\\\\,g'`
+-
+-
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result:
+ sdcc ${VERSION} is now configured for
+ 
+@@ -10694,7 +10485,6 @@ sdcc ${VERSION} is now configured for
+     pdk15               ${enable_pdk15_port}
+     pdk16               ${enable_pdk16_port}
+ 
+-  Disable non-free lib: ${OPT_DISABLE_NON_FREE}
+   Disable packihx:      ${OPT_DISABLE_PACKIHX}
+   Disable ucsim:        ${OPT_DISABLE_UCSIM}
+   Disable device lib:   ${OPT_DISABLE_DEVICE_LIB}
+@@ -10709,9 +10499,6 @@ sdcc ${VERSION} is now configured for
+     include/library files:  ${datadir}/${inclib_dir_suffix}
+     include files:          ${datadir}/${include_dir_suffix}
+     library files:          ${datadir}/${lib_dir_suffix}
+-    non-free files:         ${datadir}/${non_free_inclib_dir_suffix}
+-    non-free include files: ${datadir}/${non_free_include_dir_suffix}
+-    non-free library files: ${datadir}/${non_free_lib_dir_suffix}
+     documentation:          ${docdir}
+ 
+     prefix:             ${prefix}
+@@ -10723,15 +10510,9 @@ sdcc ${VERSION} is now configured for
+     include files:      ${incPath1}
+                         path(argv[0])${incPath2}
+                         ${incPath3}
+-                        ${nonFreeIncPath1}
+-                        path(argv[0])${nonFreeIncPath2}
+-                        ${nonFreeIncPath3}
+     library files:      \$SDCC_HOME${libPath1}${dirch}<model>
+                         path(argv[0])${libPath2}${dirch}<model>
+                         ${libPath3}${dirch}<model>
+-                        \$SDCC_HOME${nonFreeLibPath1}${dirch}<model>
+-                        path(argv[0])${nonFreeLibPath2}${dirch}<model>
+-                        ${nonFreeLibPath3}${dirch}<model>
+ " >&5
+ $as_echo "
+ sdcc ${VERSION} is now configured for
+@@ -10769,7 +10550,6 @@ sdcc ${VERSION} is now configured for
+     pdk15               ${enable_pdk15_port}
+     pdk16               ${enable_pdk16_port}
+ 
+-  Disable non-free lib: ${OPT_DISABLE_NON_FREE}
+   Disable packihx:      ${OPT_DISABLE_PACKIHX}
+   Disable ucsim:        ${OPT_DISABLE_UCSIM}
+   Disable device lib:   ${OPT_DISABLE_DEVICE_LIB}
+@@ -10784,9 +10564,6 @@ sdcc ${VERSION} is now configured for
+     include/library files:  ${datadir}/${inclib_dir_suffix}
+     include files:          ${datadir}/${include_dir_suffix}
+     library files:          ${datadir}/${lib_dir_suffix}
+-    non-free files:         ${datadir}/${non_free_inclib_dir_suffix}
+-    non-free include files: ${datadir}/${non_free_include_dir_suffix}
+-    non-free library files: ${datadir}/${non_free_lib_dir_suffix}
+     documentation:          ${docdir}
+ 
+     prefix:             ${prefix}
+@@ -10798,14 +10575,8 @@ sdcc ${VERSION} is now configured for
+     include files:      ${incPath1}
+                         path(argv[0])${incPath2}
+                         ${incPath3}
+-                        ${nonFreeIncPath1}
+-                        path(argv[0])${nonFreeIncPath2}
+-                        ${nonFreeIncPath3}
+     library files:      \$SDCC_HOME${libPath1}${dirch}<model>
+                         path(argv[0])${libPath2}${dirch}<model>
+                         ${libPath3}${dirch}<model>
+-                        \$SDCC_HOME${nonFreeLibPath1}${dirch}<model>
+-                        path(argv[0])${nonFreeLibPath2}${dirch}<model>
+-                        ${nonFreeLibPath3}${dirch}<model>
+ " >&6; }
+ # End of configure/configure.in
+diff --git a/configure.ac b/configure.ac
+index 2185793..76ab155 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -544,19 +544,6 @@ if test "${include_dir_suffix}" = ""; then
+     include_dir_suffix="${inclib_dir_suffix}/include"
+ fi
+ 
+-AC_ARG_VAR([non_free_inclib_dir_suffix], [appended to datadir to define SDCC's non-free include/lib directory])
+-if test "${non_free_inclib_dir_suffix}" = ""; then
+-    non_free_inclib_dir_suffix="sdcc/non-free"
+-fi
+-
+-# non_free_include_dir_suffix:
+-# *nix default: "sdcc/non-free/include"
+-
+-AC_ARG_VAR([non_free_include_dir_suffix], [appended to datadir to define SDCC's non-free include directory])
+-if test "${non_free_include_dir_suffix}" = ""; then
+-    non_free_include_dir_suffix="${non_free_inclib_dir_suffix}/include"
+-fi
+-
+ # lib_dir_suffix:
+ # *nix default: "sdcc/lib"
+ AC_ARG_VAR([lib_dir_suffix], [appended to datadir to define SDCC's library root directory])
+@@ -564,13 +551,6 @@ if test "${lib_dir_suffix}" = ""; then
+     lib_dir_suffix="${inclib_dir_suffix}/lib"
+ fi
+ 
+-# non_free_lib_dir_suffix:
+-# *nix default: "sdcc/non-free/lib"
+-AC_ARG_VAR([non_free_lib_dir_suffix], [appended to datadir to define SDCC's non-free library root directory])
+-if test "${non_free_lib_dir_suffix}" = ""; then
+-    non_free_lib_dir_suffix="${non_free_inclib_dir_suffix}/lib"
+-fi
+-
+ # docdir:
+ # *nix default: "${datadir}/sdcc/doc"
+ AC_ARG_VAR([docdir], [documentation installation directory])
+@@ -611,19 +591,11 @@ norm_inc_dir_suffix=${include_dir_suffix}
+ adl_NORMALIZE_PATH([norm_inc_dir_suffix], [$sdccconf_h_dir_separator])
+ AC_DEFINE_UNQUOTED(INCLUDE_DIR_SUFFIX,
+                    DIR_SEPARATOR_STRING "${norm_inc_dir_suffix}", [XXX])
+-norm_non_free_inc_dir_suffix=${non_free_include_dir_suffix}
+-adl_NORMALIZE_PATH([norm_non_free_inc_dir_suffix], [$sdccconf_h_dir_separator])
+-AC_DEFINE_UNQUOTED(NON_FREE_INCLUDE_DIR_SUFFIX,
+-                   DIR_SEPARATOR_STRING "${norm_non_free_inc_dir_suffix}", [XXX])
+ 
+ norm_lib_dir_suffix=${lib_dir_suffix}
+ adl_NORMALIZE_PATH([norm_lib_dir_suffix], [$sdccconf_h_dir_separator])
+ AC_DEFINE_UNQUOTED(LIB_DIR_SUFFIX,
+                    DIR_SEPARATOR_STRING "${norm_lib_dir_suffix}", [XXX])
+-norm_non_free_lib_dir_suffix=${non_free_lib_dir_suffix}
+-adl_NORMALIZE_PATH([norm_non_free_lib_dir_suffix], [$sdccconf_h_dir_separator])
+-AC_DEFINE_UNQUOTED(NON_FREE_LIB_DIR_SUFFIX,
+-                   DIR_SEPARATOR_STRING "${norm_non_free_lib_dir_suffix}", [XXX])
+ 
+ # relative paths
+ adl_COMPUTE_RELATIVE_PATHS([expanded_bindir:expanded_datadir:bin2data_dir])
+@@ -797,7 +769,6 @@ AC_DO_DISABLER(packihx,    PACKIHX,    [Disables building packihx])
+ AC_DO_DISABLER(sdcpp,      SDCPP,      [Disables building sdcpp])
+ AC_DO_DISABLER(sdcdb,      SDCDB,      [Disables building sdcdb])
+ AC_DO_DISABLER(sdbinutils, SDBINUTILS, [Disables configuring and building of sdbinutils])
+-AC_DO_DISABLER(non-free,   NON_FREE,   [Disables non-free runtime library parts])
+ 
+ AC_DO_ENABLER(doc,   DOC,   [Enables building the documentation])
+ AC_CHECK_PROG([LYX],        [lyx],        [lyx],        [:])
+@@ -868,16 +839,10 @@ if test $OPT_DISABLE_PIC14 = 0; then
+   AC_CONFIG_FILES(src/pic14/Makefile)
+   test $OPT_DISABLE_DEVICE_LIB = 0 && AC_CONFIG_SUBDIRS(device/lib/pic14)
+ fi
+-if test $OPT_DISABLE_PIC14 = 0 && test $OPT_DISABLE_NON_FREE = 0; then
+-  test $OPT_DISABLE_DEVICE_LIB = 0 && AC_CONFIG_SUBDIRS(device/non-free/lib/pic14)
+-fi
+ if test $OPT_DISABLE_PIC16 = 0; then
+   AC_CONFIG_FILES(src/pic16/Makefile)
+   test $OPT_DISABLE_DEVICE_LIB = 0 && AC_CONFIG_SUBDIRS(device/lib/pic16)
+ fi
+-if test $OPT_DISABLE_PIC16 = 0 && test $OPT_DISABLE_NON_FREE = 0; then
+-  test $OPT_DISABLE_DEVICE_LIB = 0 && AC_CONFIG_SUBDIRS(device/non-free/lib/pic16)
+-fi
+ 
+ if test $OPT_DISABLE_Z80 = 0 || test $OPT_DISABLE_Z180 = 0 || test $OPT_DISABLE_R2K = 0 || test $OPT_DISABLE_R3KA = 0 || test $OPT_DISABLE_GBZ80 = 0 || test $OPT_DISABLE_TLCS90 = 0 || test $OPT_DISABLE_EZ80_Z80 = 0; then
+   AC_CONFIG_FILES([src/z80/Makefile])
+@@ -939,7 +904,6 @@ fi
+ 
+ 
+ test $OPT_DISABLE_DEVICE_LIB = 0 && AC_CONFIG_FILES([device/lib/Makefile])
+-test $OPT_DISABLE_DEVICE_LIB = 0 && test $OPT_DISABLE_NON_FREE = 0 && AC_CONFIG_FILES([device/non-free/lib/Makefile])
+ 
+ AC_CONFIG_FILES([main.mk:main_in.mk
+ src/Makefile
+@@ -953,9 +917,6 @@ support/regression/ports/host/spec.mk:support/regression/ports/host/spec.mk.in
+ Makefile
+ Makefile.common:Makefile.common.in
+ ])
+-if test $OPT_DISABLE_NON_FREE = 0; then
+-  AC_CONFIG_FILES([device/non-free/include/Makefile])
+-fi
+ AC_OUTPUT
+ 
+ # I found no better place
+@@ -973,16 +934,10 @@ adl_NORMALIZE_PATH_MSG(/${prefix2bin_dir},                         [binPath],  [
+ adl_NORMALIZE_PATH_MSG(/${prefix2data_dir}/${norm_inc_dir_suffix}, [incPath1], [$dirch])
+ adl_NORMALIZE_PATH_MSG(/${bin2data_dir}/${norm_inc_dir_suffix},    [incPath2], [$dirch])
+ adl_NORMALIZE_PATH_MSG(${expanded_datadir}/${norm_inc_dir_suffix}, [incPath3], [$dirch])
+-adl_NORMALIZE_PATH_MSG(/${prefix2data_dir}/${norm_non_free_inc_dir_suffix}, [nonFreeIncPath1], [$dirch])
+-adl_NORMALIZE_PATH_MSG(/${bin2data_dir}/${norm_non_free_inc_dir_suffix},    [nonFreeIncPath2], [$dirch])
+-adl_NORMALIZE_PATH_MSG(${expanded_datadir}/${norm_non_free_inc_dir_suffix}, [nonFreeIncPath3], [$dirch])
+ 
+ adl_NORMALIZE_PATH_MSG(/${prefix2data_dir}/${norm_lib_dir_suffix}, [libPath1], [$dirch])
+ adl_NORMALIZE_PATH_MSG(/${bin2data_dir}/${norm_lib_dir_suffix},    [libPath2], [$dirch])
+ adl_NORMALIZE_PATH_MSG(${expanded_datadir}/${norm_lib_dir_suffix}, [libPath3], [$dirch])
+-adl_NORMALIZE_PATH_MSG(/${prefix2data_dir}/${norm_non_free_lib_dir_suffix}, [nonFreeLibPath1], [$dirch])
+-adl_NORMALIZE_PATH_MSG(/${bin2data_dir}/${norm_non_free_lib_dir_suffix},    [nonFreeLibPath2], [$dirch])
+-adl_NORMALIZE_PATH_MSG(${expanded_datadir}/${norm_non_free_lib_dir_suffix}, [nonFreeLibPath3], [$dirch])
+ 
+ AC_MSG_RESULT([
+ sdcc ${VERSION} is now configured for
+@@ -1020,7 +975,6 @@ sdcc ${VERSION} is now configured for
+     pdk15               ${enable_pdk15_port}
+     pdk16               ${enable_pdk16_port}
+ 
+-  Disable non-free lib: ${OPT_DISABLE_NON_FREE}
+   Disable packihx:      ${OPT_DISABLE_PACKIHX}
+   Disable ucsim:        ${OPT_DISABLE_UCSIM}
+   Disable device lib:   ${OPT_DISABLE_DEVICE_LIB}
+@@ -1035,9 +989,6 @@ sdcc ${VERSION} is now configured for
+     include/library files:  ${datadir}/${inclib_dir_suffix}
+     include files:          ${datadir}/${include_dir_suffix}
+     library files:          ${datadir}/${lib_dir_suffix}
+-    non-free files:         ${datadir}/${non_free_inclib_dir_suffix}
+-    non-free include files: ${datadir}/${non_free_include_dir_suffix}
+-    non-free library files: ${datadir}/${non_free_lib_dir_suffix}
+     documentation:          ${docdir}
+ 
+     prefix:             ${prefix}
+@@ -1049,14 +1000,8 @@ sdcc ${VERSION} is now configured for
+     include files:      ${incPath1}
+                         path(argv[[0]])${incPath2}
+                         ${incPath3}
+-                        ${nonFreeIncPath1}
+-                        path(argv[[0]])${nonFreeIncPath2}
+-                        ${nonFreeIncPath3}
+     library files:      \$SDCC_HOME${libPath1}${dirch}<model>
+                         path(argv[[0]])${libPath2}${dirch}<model>
+                         ${libPath3}${dirch}<model>
+-                        \$SDCC_HOME${nonFreeLibPath1}${dirch}<model>
+-                        path(argv[[0]])${nonFreeLibPath2}${dirch}<model>
+-                        ${nonFreeLibPath3}${dirch}<model>
+ ])
+ # End of configure/configure.in
+diff --git a/device/lib/pic14/Makefile.common b/device/lib/pic14/Makefile.common
+index 019fe0f..da3389d 100644
+--- a/device/lib/pic14/Makefile.common
++++ b/device/lib/pic14/Makefile.common
+@@ -68,14 +68,14 @@ GENERIC_SRC_DIR_ABS = $(abspath $(GENERIC_SRC_DIR))
+ AM_CPPFLAGS =
+ AM_CPPFLAGS += -I.
+ AM_CPPFLAGS += -I$(top_srcdir)
+-AM_CPPFLAGS += -I$(DEVICE_TOP_DIR)/include/pic14 -I$(DEVICE_TOP_DIR)/non-free/include/pic14 -I$(DEVICE_TOP_DIR)/include
++AM_CPPFLAGS += -I$(DEVICE_TOP_DIR)/include/pic14 -I$(DEVICE_TOP_DIR)/include
+ 
+ ############################################################
+ # C compiler flags
+ ############################################################
+ 
+ SDCC_FLAGS =
+-SDCC_FLAGS += -mpic14 --less-pedantic --no-warn-non-free --i-code-in-asm --fverbose-asm
++SDCC_FLAGS += -mpic14 --less-pedantic --i-code-in-asm --fverbose-asm
+ SDCC_FLAGS += --std-c11
+ 
+ # extra flags for enhanced cores
+@@ -113,7 +113,7 @@ AM_CFLAGS_EOX = -p$(EARCH) $(SDCC_FLAGS) $(SDCC_FLAGS_ENHANCED) $(SDCC_FLAGS_NOO
+ AM_CCASFLAGS =
+ AM_CCASFLAGS += -p$(ARCH)
+ AM_CCASFLAGS += -I$(srcdir)
+-AM_CCASFLAGS += -I$(DEVICE_TOP_DIR)/include/pic14 -I$(DEVICE_TOP_DIR)/non-free/include/pic14
++AM_CCASFLAGS += -I$(DEVICE_TOP_DIR)/include/pic14
+ 
+ ############################################################
+ # Common actions
+diff --git a/device/lib/pic14/Makefile.in b/device/lib/pic14/Makefile.in
+index 39b6cb0..ae3e37b 100644
+--- a/device/lib/pic14/Makefile.in
++++ b/device/lib/pic14/Makefile.in
+@@ -335,13 +335,12 @@ GENERIC_SRC_DIR_ABS = $(abspath $(GENERIC_SRC_DIR))
+ # C preprocessor flags
+ ############################################################
+ AM_CPPFLAGS = -I. -I$(top_srcdir) -I$(DEVICE_TOP_DIR)/include/pic14 \
+-	-I$(DEVICE_TOP_DIR)/non-free/include/pic14 \
+ 	-I$(DEVICE_TOP_DIR)/include
+ 
+ ############################################################
+ # C compiler flags
+ ############################################################
+-SDCC_FLAGS = -mpic14 --less-pedantic --no-warn-non-free \
++SDCC_FLAGS = -mpic14 --less-pedantic \
+ 	--i-code-in-asm --fverbose-asm --std-c11 $(am__append_4)
+ 
+ # extra flags for enhanced cores
+@@ -366,8 +365,7 @@ AM_CFLAGS_EOX = -p$(EARCH) $(SDCC_FLAGS) $(SDCC_FLAGS_ENHANCED) $(SDCC_FLAGS_NOO
+ ############################################################
+ # Assembler flags
+ ############################################################
+-AM_CCASFLAGS = -p$(ARCH) -I$(srcdir) -I$(DEVICE_TOP_DIR)/include/pic14 \
+-	-I$(DEVICE_TOP_DIR)/non-free/include/pic14
++AM_CCASFLAGS = -p$(ARCH) -I$(srcdir) -I$(DEVICE_TOP_DIR)/include/pic14
+ 
+ # extensions generated by the build process
+ CLEAN_EXTENSIONS = .asm .lst .sym .d .p .g .v .adb
+diff --git a/device/lib/pic14/libc/Makefile.in b/device/lib/pic14/libc/Makefile.in
+index 0efeeb0..d4dd8e6 100644
+--- a/device/lib/pic14/libc/Makefile.in
++++ b/device/lib/pic14/libc/Makefile.in
+@@ -878,13 +878,12 @@ GENERIC_SRC_DIR_ABS = $(abspath $(GENERIC_SRC_DIR))
+ # C preprocessor flags
+ ############################################################
+ AM_CPPFLAGS = -I. -I$(top_srcdir) -I$(DEVICE_TOP_DIR)/include/pic14 \
+-	-I$(DEVICE_TOP_DIR)/non-free/include/pic14 \
+ 	-I$(DEVICE_TOP_DIR)/include
+ 
+ ############################################################
+ # C compiler flags
+ ############################################################
+-SDCC_FLAGS = -mpic14 --less-pedantic --no-warn-non-free \
++SDCC_FLAGS = -mpic14 --less-pedantic \
+ 	--i-code-in-asm --fverbose-asm --std-c11 $(am__append_9)
+ 
+ # extra flags for enhanced cores
+@@ -909,8 +908,7 @@ AM_CFLAGS_EOX = -p$(EARCH) $(SDCC_FLAGS) $(SDCC_FLAGS_ENHANCED) $(SDCC_FLAGS_NOO
+ ############################################################
+ # Assembler flags
+ ############################################################
+-AM_CCASFLAGS = -p$(ARCH) -I$(srcdir) -I$(DEVICE_TOP_DIR)/include/pic14 \
+-	-I$(DEVICE_TOP_DIR)/non-free/include/pic14
++AM_CCASFLAGS = -p$(ARCH) -I$(srcdir) -I$(DEVICE_TOP_DIR)/include/pic14
+ 
+ # extensions generated by the build process
+ CLEAN_EXTENSIONS = .asm .lst .sym .d .p .g .v .adb
+diff --git a/device/lib/pic14/libm/Makefile.in b/device/lib/pic14/libm/Makefile.in
+index f0dc9ca..98ed2cf 100644
+--- a/device/lib/pic14/libm/Makefile.in
++++ b/device/lib/pic14/libm/Makefile.in
+@@ -511,13 +511,12 @@ GENERIC_SRC_DIR_ABS = $(abspath $(GENERIC_SRC_DIR))
+ # C preprocessor flags
+ ############################################################
+ AM_CPPFLAGS = -I. -I$(top_srcdir) -I$(DEVICE_TOP_DIR)/include/pic14 \
+-	-I$(DEVICE_TOP_DIR)/non-free/include/pic14 \
+ 	-I$(DEVICE_TOP_DIR)/include
+ 
+ ############################################################
+ # C compiler flags
+ ############################################################
+-SDCC_FLAGS = -mpic14 --less-pedantic --no-warn-non-free \
++SDCC_FLAGS = -mpic14 --less-pedantic \
+ 	--i-code-in-asm --fverbose-asm --std-c11 $(am__append_9)
+ 
+ # extra flags for enhanced cores
+@@ -542,8 +541,7 @@ AM_CFLAGS_EOX = -p$(EARCH) $(SDCC_FLAGS) $(SDCC_FLAGS_ENHANCED) $(SDCC_FLAGS_NOO
+ ############################################################
+ # Assembler flags
+ ############################################################
+-AM_CCASFLAGS = -p$(ARCH) -I$(srcdir) -I$(DEVICE_TOP_DIR)/include/pic14 \
+-	-I$(DEVICE_TOP_DIR)/non-free/include/pic14
++AM_CCASFLAGS = -p$(ARCH) -I$(srcdir) -I$(DEVICE_TOP_DIR)/include/pic14
+ 
+ # extensions generated by the build process
+ CLEAN_EXTENSIONS = .asm .lst .sym .d .p .g .v .adb
+diff --git a/device/lib/pic14/libsdcc/enhanced-no-xinst/Makefile.in b/device/lib/pic14/libsdcc/enhanced-no-xinst/Makefile.in
+index 098ec94..d1240ba 100644
+--- a/device/lib/pic14/libsdcc/enhanced-no-xinst/Makefile.in
++++ b/device/lib/pic14/libsdcc/enhanced-no-xinst/Makefile.in
+@@ -518,13 +518,12 @@ GENERIC_SRC_DIR_ABS = $(abspath $(GENERIC_SRC_DIR))
+ # C preprocessor flags
+ ############################################################
+ AM_CPPFLAGS = -I. -I$(top_srcdir) -I$(DEVICE_TOP_DIR)/include/pic14 \
+-	-I$(DEVICE_TOP_DIR)/non-free/include/pic14 \
+ 	-I$(DEVICE_TOP_DIR)/include
+ 
+ ############################################################
+ # C compiler flags
+ ############################################################
+-SDCC_FLAGS = -mpic14 --less-pedantic --no-warn-non-free \
++SDCC_FLAGS = -mpic14 --less-pedantic \
+ 	--i-code-in-asm --fverbose-asm --std-c11 $(am__append_5)
+ 
+ # extra flags for enhanced cores
+@@ -549,8 +548,7 @@ AM_CFLAGS_EOX = -p$(EARCH) $(SDCC_FLAGS) $(SDCC_FLAGS_ENHANCED) $(SDCC_FLAGS_NOO
+ ############################################################
+ # Assembler flags
+ ############################################################
+-AM_CCASFLAGS = -p$(ARCH) -I$(srcdir) -I$(DEVICE_TOP_DIR)/include/pic14 \
+-	-I$(DEVICE_TOP_DIR)/non-free/include/pic14
++AM_CCASFLAGS = -p$(ARCH) -I$(srcdir) -I$(DEVICE_TOP_DIR)/include/pic14
+ 
+ # extensions generated by the build process
+ CLEAN_EXTENSIONS = .asm .lst .sym .d .p .g .v .adb
+diff --git a/device/lib/pic14/libsdcc/enhanced/Makefile.in b/device/lib/pic14/libsdcc/enhanced/Makefile.in
+index d2dba9c..0857601 100644
+--- a/device/lib/pic14/libsdcc/enhanced/Makefile.in
++++ b/device/lib/pic14/libsdcc/enhanced/Makefile.in
+@@ -518,13 +518,12 @@ GENERIC_SRC_DIR_ABS = $(abspath $(GENERIC_SRC_DIR))
+ # C preprocessor flags
+ ############################################################
+ AM_CPPFLAGS = -I. -I$(top_srcdir) -I$(DEVICE_TOP_DIR)/include/pic14 \
+-	-I$(DEVICE_TOP_DIR)/non-free/include/pic14 \
+ 	-I$(DEVICE_TOP_DIR)/include
+ 
+ ############################################################
+ # C compiler flags
+ ############################################################
+-SDCC_FLAGS = -mpic14 --less-pedantic --no-warn-non-free \
++SDCC_FLAGS = -mpic14 --less-pedantic \
+ 	--i-code-in-asm --fverbose-asm --std-c11 $(am__append_5)
+ 
+ # extra flags for enhanced cores
+@@ -549,8 +548,7 @@ AM_CFLAGS_EOX = -p$(EARCH) $(SDCC_FLAGS) $(SDCC_FLAGS_ENHANCED) $(SDCC_FLAGS_NOO
+ ############################################################
+ # Assembler flags
+ ############################################################
+-AM_CCASFLAGS = -p$(ARCH) -I$(srcdir) -I$(DEVICE_TOP_DIR)/include/pic14 \
+-	-I$(DEVICE_TOP_DIR)/non-free/include/pic14
++AM_CCASFLAGS = -p$(ARCH) -I$(srcdir) -I$(DEVICE_TOP_DIR)/include/pic14
+ 
+ # extensions generated by the build process
+ CLEAN_EXTENSIONS = .asm .lst .sym .d .p .g .v .adb
+diff --git a/device/lib/pic14/libsdcc/regular/Makefile.in b/device/lib/pic14/libsdcc/regular/Makefile.in
+index 3c9bccd..9430fb5 100644
+--- a/device/lib/pic14/libsdcc/regular/Makefile.in
++++ b/device/lib/pic14/libsdcc/regular/Makefile.in
+@@ -511,13 +511,12 @@ GENERIC_SRC_DIR_ABS = $(abspath $(GENERIC_SRC_DIR))
+ # C preprocessor flags
+ ############################################################
+ AM_CPPFLAGS = -I. -I$(top_srcdir) -I$(DEVICE_TOP_DIR)/include/pic14 \
+-	-I$(DEVICE_TOP_DIR)/non-free/include/pic14 \
+ 	-I$(DEVICE_TOP_DIR)/include
+ 
+ ############################################################
+ # C compiler flags
+ ############################################################
+-SDCC_FLAGS = -mpic14 --less-pedantic --no-warn-non-free \
++SDCC_FLAGS = -mpic14 --less-pedantic \
+ 	--i-code-in-asm --fverbose-asm --std-c11 $(am__append_5)
+ 
+ # extra flags for enhanced cores
+@@ -542,8 +541,7 @@ AM_CFLAGS_EOX = -p$(EARCH) $(SDCC_FLAGS) $(SDCC_FLAGS_ENHANCED) $(SDCC_FLAGS_NOO
+ ############################################################
+ # Assembler flags
+ ############################################################
+-AM_CCASFLAGS = -p$(ARCH) -I$(srcdir) -I$(DEVICE_TOP_DIR)/include/pic14 \
+-	-I$(DEVICE_TOP_DIR)/non-free/include/pic14
++AM_CCASFLAGS = -p$(ARCH) -I$(srcdir) -I$(DEVICE_TOP_DIR)/include/pic14
+ 
+ # extensions generated by the build process
+ CLEAN_EXTENSIONS = .asm .lst .sym .d .p .g .v .adb
+diff --git a/device/lib/pic16/Makefile.common b/device/lib/pic16/Makefile.common
+index 01ad950..62839b9 100644
+--- a/device/lib/pic16/Makefile.common
++++ b/device/lib/pic16/Makefile.common
+@@ -1,11 +1,10 @@
+ AM_CPPFLAGS =
+ AM_CPPFLAGS += -I.
+-AM_CPPFLAGS += -I$(top_srcdir)/../../include/pic16 -I$(top_srcdir)/../../non-free/include/pic16
++AM_CPPFLAGS += -I$(top_srcdir)/../../include/pic16
+ 
+ AM_CFLAGS =
+ AM_CFLAGS += --std-c11
+ AM_CFLAGS += --asm="$(CCAS)"
+-AM_CFLAGS += --no-warn-non-free
+ ##AM_CFLAGS += -Wa,-q
+ 
+ AM_CFLAGS += --fomit-frame-pointer
+@@ -31,7 +30,7 @@ AM_CFLAGS += --i-code-in-asm
+ AM_CFLAGS += @USE_FLOATS@
+ 
+ AM_CCASFLAGS =
+-AM_CCASFLAGS += -I$(top_srcdir)/../../include/pic16 -I$(top_srcdir)/../../non-free/include/pic16
++AM_CCASFLAGS += -I$(top_srcdir)/../../include/pic16
+ AM_CCASFLAGS += -I$(srcdir)
+ 
+ clean-local:
+diff --git a/device/lib/pic16/Makefile.in b/device/lib/pic16/Makefile.in
+index 15d2e1d..9664ad4 100644
+--- a/device/lib/pic16/Makefile.in
++++ b/device/lib/pic16/Makefile.in
+@@ -87,10 +87,7 @@ PRE_UNINSTALL = :
+ POST_UNINSTALL = :
+ subdir = .
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+-am__aclocal_m4_deps =  \
+-	$(top_srcdir)/../../non-free/lib/pic16/supported-devices.ac \
+-	$(top_srcdir)/../../non-free/lib/pic16/processors.ac \
+-	$(top_srcdir)/configure.ac
++am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ 	$(ACLOCAL_M4)
+ DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \
+@@ -295,8 +292,7 @@ top_build_prefix = @top_build_prefix@
+ top_builddir = @top_builddir@
+ top_srcdir = @top_srcdir@
+ SUBDIRS = debug libc libio libm libsdcc startup
+-AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16 \
+-	-I$(top_srcdir)/../../non-free/include/pic16
++AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16
+ #AM_CFLAGS += --no-optimize-goto
+ 
+ #AM_CFLAGS += --debug-ralloc
+@@ -310,11 +306,10 @@ AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16 \
+ #AM_CFLAGS += --noinduction
+ #AM_CFLAGS += --nojtbound
+ #AM_CFLAGS += --noloopreverse
+-AM_CFLAGS = --std-c11 --asm="$(CCAS)" --no-warn-non-free \
++AM_CFLAGS = --std-c11 --asm="$(CCAS)" \
+ 	--fomit-frame-pointer --obanksel=9 --denable-peeps \
+ 	--optimize-cmp --optimize-df --i-code-in-asm @USE_FLOATS@
+-AM_CCASFLAGS = -I$(top_srcdir)/../../include/pic16 \
+-	-I$(top_srcdir)/../../non-free/include/pic16 -I$(srcdir)
++AM_CCASFLAGS = -I$(top_srcdir)/../../include/pic16 -I$(srcdir)
+ DISTCLEANFILES = a.cod a.hex ./.checkdevices/* pics.supported
+ all: config.h
+ 	$(MAKE) $(AM_MAKEFLAGS) all-recursive
+diff --git a/device/lib/pic16/configure b/device/lib/pic16/configure
+index c8f5b98..76f93a8 100755
+--- a/device/lib/pic16/configure
++++ b/device/lib/pic16/configure
+@@ -3657,7 +3657,6 @@ fi
+ 
+ 
+ 
+-LIBDEV="${srcdir}/../../non-free/lib/pic16/libdev"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking devices supported by gputils" >&5
+ $as_echo_n "checking devices supported by gputils... " >&6; }
+ GOOD_PICS="";
+diff --git a/device/lib/pic16/configure.ac b/device/lib/pic16/configure.ac
+index 3966c11..cdbffc7 100644
+--- a/device/lib/pic16/configure.ac
++++ b/device/lib/pic16/configure.ac
+@@ -68,10 +68,6 @@ AC_SUBST(OBJEXT, [o])
+ _AM_DEPENDENCIES(CC)
+ _AM_DEPENDENCIES(CCAS)
+ 
+-LIBDEV="${srcdir}/../../non-free/lib/pic16/libdev"
+-m4_include([../../non-free/lib/pic16/supported-devices.ac])
+-m4_include([../../non-free/lib/pic16/processors.ac])
+-
+ # Checks for libraries.
+ 
+ # Checks for header files.
+diff --git a/device/lib/pic16/debug/Makefile.in b/device/lib/pic16/debug/Makefile.in
+index df593e3..8cb5137 100644
+--- a/device/lib/pic16/debug/Makefile.in
++++ b/device/lib/pic16/debug/Makefile.in
+@@ -88,10 +88,7 @@ PRE_UNINSTALL = :
+ POST_UNINSTALL = :
+ subdir = debug
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+-am__aclocal_m4_deps =  \
+-	$(top_srcdir)/../../non-free/lib/pic16/supported-devices.ac \
+-	$(top_srcdir)/../../non-free/lib/pic16/processors.ac \
+-	$(top_srcdir)/configure.ac
++am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ 	$(ACLOCAL_M4)
+ DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
+@@ -291,8 +288,7 @@ top_builddir = @top_builddir@
+ top_srcdir = @top_srcdir@
+ lib_LIBRARIES = libdebug.a
+ libdebug_a_SOURCES = gstack/gstack.c
+-AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16 \
+-	-I$(top_srcdir)/../../non-free/include/pic16
++AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16
+ #AM_CFLAGS += --no-optimize-goto
+ 
+ #AM_CFLAGS += --debug-ralloc
+@@ -306,11 +302,10 @@ AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16 \
+ #AM_CFLAGS += --noinduction
+ #AM_CFLAGS += --nojtbound
+ #AM_CFLAGS += --noloopreverse
+-AM_CFLAGS = --std-c11 --asm="$(CCAS)" --no-warn-non-free \
++AM_CFLAGS = --std-c11 --asm="$(CCAS)" \
+ 	--fomit-frame-pointer --obanksel=9 --denable-peeps \
+ 	--optimize-cmp --optimize-df --i-code-in-asm @USE_FLOATS@
+-AM_CCASFLAGS = -I$(top_srcdir)/../../include/pic16 \
+-	-I$(top_srcdir)/../../non-free/include/pic16 -I$(srcdir)
++AM_CCASFLAGS = -I$(top_srcdir)/../../include/pic16 -I$(srcdir)
+ all: all-am
+ 
+ .SUFFIXES:
+diff --git a/device/lib/pic16/libc/Makefile.in b/device/lib/pic16/libc/Makefile.in
+index 85bec90..c0ea488 100644
+--- a/device/lib/pic16/libc/Makefile.in
++++ b/device/lib/pic16/libc/Makefile.in
+@@ -88,10 +88,7 @@ PRE_UNINSTALL = :
+ POST_UNINSTALL = :
+ subdir = libc
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+-am__aclocal_m4_deps =  \
+-	$(top_srcdir)/../../non-free/lib/pic16/supported-devices.ac \
+-	$(top_srcdir)/../../non-free/lib/pic16/processors.ac \
+-	$(top_srcdir)/configure.ac
++am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ 	$(ACLOCAL_M4)
+ DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
+@@ -381,8 +378,7 @@ libc18f_a_SOURCES = ctype/iscntrl.c ctype/isdigit.c ctype/isgraph.c \
+ 	string/strpbrk.c string/strrchr.c string/strspn.c \
+ 	string/strstr.c string/strtok.c string/strupr.c \
+ 	utils/cnvfrac.S utils/cnvint.S utils/cvtdec.S
+-AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16 \
+-	-I$(top_srcdir)/../../non-free/include/pic16
++AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16
+ #AM_CFLAGS += --no-optimize-goto
+ 
+ #AM_CFLAGS += --debug-ralloc
+@@ -396,11 +392,10 @@ AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16 \
+ #AM_CFLAGS += --noinduction
+ #AM_CFLAGS += --nojtbound
+ #AM_CFLAGS += --noloopreverse
+-AM_CFLAGS = --std-c11 --asm="$(CCAS)" --no-warn-non-free \
++AM_CFLAGS = --std-c11 --asm="$(CCAS)" \
+ 	--fomit-frame-pointer --obanksel=9 --denable-peeps \
+ 	--optimize-cmp --optimize-df --i-code-in-asm @USE_FLOATS@
+-AM_CCASFLAGS = -I$(top_srcdir)/../../include/pic16 \
+-	-I$(top_srcdir)/../../non-free/include/pic16 -I$(srcdir)
++AM_CCASFLAGS = -I$(top_srcdir)/../../include/pic16 -I$(srcdir)
+ all: all-am
+ 
+ .SUFFIXES:
+diff --git a/device/lib/pic16/libio/Makefile.in b/device/lib/pic16/libio/Makefile.in
+index 06fff29..78fe388 100644
+--- a/device/lib/pic16/libio/Makefile.in
++++ b/device/lib/pic16/libio/Makefile.in
+@@ -481,10 +481,7 @@ POST_UNINSTALL = :
+ @ENABLE_18LF8723_TRUE@am__append_393 = libio18lf8723.a
+ subdir = libio
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+-am__aclocal_m4_deps =  \
+-	$(top_srcdir)/../../non-free/lib/pic16/supported-devices.ac \
+-	$(top_srcdir)/../../non-free/lib/pic16/processors.ac \
+-	$(top_srcdir)/configure.ac
++am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ 	$(ACLOCAL_M4)
+ DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
+@@ -15600,8 +15597,7 @@ libio18lf8722_a_SOURCES = dummy.c i2c/i2cack.c i2c/i2cclose.c \
+ libio18lf8722_a_CFLAGS = -p18lf8722 $(AM_CFLAGS)
+ libio18lf8723_a_SOURCES = dummy.c
+ libio18lf8723_a_CFLAGS = -p18lf8723 $(AM_CFLAGS)
+-AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16 \
+-	-I$(top_srcdir)/../../non-free/include/pic16
++AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16
+ #AM_CFLAGS += --no-optimize-goto
+ 
+ #AM_CFLAGS += --debug-ralloc
+@@ -15615,11 +15611,10 @@ AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16 \
+ #AM_CFLAGS += --noinduction
+ #AM_CFLAGS += --nojtbound
+ #AM_CFLAGS += --noloopreverse
+-AM_CFLAGS = --std-c11 --asm="$(CCAS)" --no-warn-non-free \
++AM_CFLAGS = --std-c11 --asm="$(CCAS)" \
+ 	--fomit-frame-pointer --obanksel=9 --denable-peeps \
+ 	--optimize-cmp --optimize-df --i-code-in-asm @USE_FLOATS@
+-AM_CCASFLAGS = -I$(top_srcdir)/../../include/pic16 \
+-	-I$(top_srcdir)/../../non-free/include/pic16 -I$(srcdir)
++AM_CCASFLAGS = -I$(top_srcdir)/../../include/pic16 -I$(srcdir)
+ all: all-am
+ 
+ .SUFFIXES:
+diff --git a/device/lib/pic16/libio/mkmk.sh b/device/lib/pic16/libio/mkmk.sh
+index 211604e..e8896bf 100755
+--- a/device/lib/pic16/libio/mkmk.sh
++++ b/device/lib/pic16/libio/mkmk.sh
+@@ -17,40 +17,6 @@ lib_LIBRARIES =
+ 
+ HEREDOC
+ 
+-for f in "../../../non-free/lib/pic16/libdev/pic1"*.c; do
+-    p="${f##*/pic}";
+-    p="${p%.c}";
+-    P=$(echo "$p" | tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ);
+-    echo "Generating for device >>${p}<<" >&2;
+-    cat <<HERE
+-if ENABLE_$P
+-lib_LIBRARIES += libio${p}.a
+-endif ENABLE_$P
+-libio${p}_a_SOURCES = dummy.c
+-HERE
+-    sed -e 's/\s*\(#.*\)\{0,1\}$//' adc.ignore | grep -x "$p" > /dev/null 2>&1 && { echo "No adc." >&2 ; } || cat <<HERE
+-libio${p}_a_SOURCES += adc/adcbusy.c adc/adcclose.c adc/adcconv.c
+-libio${p}_a_SOURCES += adc/adcopen.c adc/adcread.c adc/adcsetch.c
+-HERE
+-    sed -e 's/\s*\(#.*\)\{0,1\}$//' i2c.ignore | grep -x "$p" > /dev/null 2>&1 && { echo "No i2c." >&2 ; } || cat <<HERE
+-libio${p}_a_SOURCES += i2c/i2cack.c i2c/i2cclose.c i2c/i2cdrdy.c
+-libio${p}_a_SOURCES += i2c/i2cidle.c i2c/i2cnack.c i2c/i2copen.c
+-libio${p}_a_SOURCES += i2c/i2creadc.c i2c/i2creads.c i2c/i2crestart.c
+-libio${p}_a_SOURCES += i2c/i2cstart.c i2c/i2cstop.c i2c/i2cwritec.c
+-libio${p}_a_SOURCES += i2c/i2cwrites.c
+-HERE
+-    sed -e 's/\s*\(#.*\)\{0,1\}$//' usart.ignore | grep -x "$p" > /dev/null 2>&1 && { echo "No usart." >&2 ; } || cat <<HERE
+-libio${p}_a_SOURCES += usart/ubaud.c usart/ubusy.c usart/uclose.c
+-libio${p}_a_SOURCES += usart/udrdy.c usart/ugetc.c usart/ugets.c
+-libio${p}_a_SOURCES += usart/uopen.c usart/uputc.c usart/uputs.c
+-libio${p}_a_SOURCES += usart/usartd.c
+-HERE
+-    cat <<HERE
+-libio${p}_a_CFLAGS = -p${p} \$(AM_CFLAGS)
+-
+-HERE
+-done
+-
+ cat <<HEREDOC
+ include \$(top_srcdir)/Makefile.common
+ 
+diff --git a/device/lib/pic16/libm/Makefile.in b/device/lib/pic16/libm/Makefile.in
+index 6728a39..495459e 100644
+--- a/device/lib/pic16/libm/Makefile.in
++++ b/device/lib/pic16/libm/Makefile.in
+@@ -88,10 +88,7 @@ PRE_UNINSTALL = :
+ POST_UNINSTALL = :
+ subdir = libm
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+-am__aclocal_m4_deps =  \
+-	$(top_srcdir)/../../non-free/lib/pic16/supported-devices.ac \
+-	$(top_srcdir)/../../non-free/lib/pic16/processors.ac \
+-	$(top_srcdir)/configure.ac
++am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ 	$(ACLOCAL_M4)
+ DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
+@@ -312,8 +309,7 @@ libm18f_a_SOURCES = acosf.c asincosf.c asinf.c atan2f.c atanf.c \
+ 	frexpf.c isinf.c isnan.c ldexpf.c log10f.c logf.c modff.c \
+ 	powf.c sincosf.c sincoshf.c sinf.c sinhf.c sqrtf.c tancotf.c \
+ 	tanf.c tanhf.c
+-AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16 \
+-	-I$(top_srcdir)/../../non-free/include/pic16
++AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16
+ #AM_CFLAGS += --no-optimize-goto
+ 
+ #AM_CFLAGS += --debug-ralloc
+@@ -327,11 +323,10 @@ AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16 \
+ #AM_CFLAGS += --noinduction
+ #AM_CFLAGS += --nojtbound
+ #AM_CFLAGS += --noloopreverse
+-AM_CFLAGS = --std-c11 --asm="$(CCAS)" --no-warn-non-free \
++AM_CFLAGS = --std-c11 --asm="$(CCAS)" \
+ 	--fomit-frame-pointer --obanksel=9 --denable-peeps \
+ 	--optimize-cmp --optimize-df --i-code-in-asm @USE_FLOATS@
+-AM_CCASFLAGS = -I$(top_srcdir)/../../include/pic16 \
+-	-I$(top_srcdir)/../../non-free/include/pic16 -I$(srcdir)
++AM_CCASFLAGS = -I$(top_srcdir)/../../include/pic16 -I$(srcdir)
+ all: all-am
+ 
+ .SUFFIXES:
+diff --git a/device/lib/pic16/libsdcc/Makefile.in b/device/lib/pic16/libsdcc/Makefile.in
+index 331aea0..63565be 100644
+--- a/device/lib/pic16/libsdcc/Makefile.in
++++ b/device/lib/pic16/libsdcc/Makefile.in
+@@ -88,10 +88,7 @@ PRE_UNINSTALL = :
+ POST_UNINSTALL = :
+ subdir = libsdcc
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+-am__aclocal_m4_deps =  \
+-	$(top_srcdir)/../../non-free/lib/pic16/supported-devices.ac \
+-	$(top_srcdir)/../../non-free/lib/pic16/processors.ac \
+-	$(top_srcdir)/configure.ac
++am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ 	$(ACLOCAL_M4)
+ DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
+@@ -413,8 +410,7 @@ libsdcc_a_SOURCES = char/divschar.c char/divuchar.c char/modschar.c \
+ 	int/modsint.c int/moduint.c int/mulint.c long/divslong.c \
+ 	long/divulong.c long/modslong.c long/modulong.c long/mullong.c \
+ 	lregs/lrrest.c lregs/lrst.c stack/stack.S
+-AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16 \
+-	-I$(top_srcdir)/../../non-free/include/pic16
++AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16
+ #AM_CFLAGS += --no-optimize-goto
+ 
+ #AM_CFLAGS += --debug-ralloc
+@@ -428,11 +424,10 @@ AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16 \
+ #AM_CFLAGS += --noinduction
+ #AM_CFLAGS += --nojtbound
+ #AM_CFLAGS += --noloopreverse
+-AM_CFLAGS = --std-c11 --asm="$(CCAS)" --no-warn-non-free \
++AM_CFLAGS = --std-c11 --asm="$(CCAS)" \
+ 	--fomit-frame-pointer --obanksel=9 --denable-peeps \
+ 	--optimize-cmp --optimize-df --i-code-in-asm @USE_FLOATS@
+-AM_CCASFLAGS = -I$(top_srcdir)/../../include/pic16 \
+-	-I$(top_srcdir)/../../non-free/include/pic16 -I$(srcdir)
++AM_CCASFLAGS = -I$(top_srcdir)/../../include/pic16 -I$(srcdir)
+ all: all-am
+ 
+ .SUFFIXES:
+diff --git a/device/lib/pic16/startup/Makefile.in b/device/lib/pic16/startup/Makefile.in
+index 2e59220..b213866 100644
+--- a/device/lib/pic16/startup/Makefile.in
++++ b/device/lib/pic16/startup/Makefile.in
+@@ -89,10 +89,7 @@ PRE_UNINSTALL = :
+ POST_UNINSTALL = :
+ subdir = startup
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+-am__aclocal_m4_deps =  \
+-	$(top_srcdir)/../../non-free/lib/pic16/supported-devices.ac \
+-	$(top_srcdir)/../../non-free/lib/pic16/processors.ac \
+-	$(top_srcdir)/configure.ac
++am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ 	$(ACLOCAL_M4)
+ DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
+@@ -308,8 +305,7 @@ libcrt0iz_a_SOURCES = crt0iz.c
+ # Force installation of .o files into $libdir
+ crtdir = $(libdir)
+ crt_DATA = crt0.o crt0i.o crt0iz.o
+-AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16 \
+-	-I$(top_srcdir)/../../non-free/include/pic16
++AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16
+ #AM_CFLAGS += --no-optimize-goto
+ 
+ #AM_CFLAGS += --debug-ralloc
+@@ -323,11 +319,10 @@ AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16 \
+ #AM_CFLAGS += --noinduction
+ #AM_CFLAGS += --nojtbound
+ #AM_CFLAGS += --noloopreverse
+-AM_CFLAGS = --std-c11 --asm="$(CCAS)" --no-warn-non-free \
++AM_CFLAGS = --std-c11 --asm="$(CCAS)" \
+ 	--fomit-frame-pointer --obanksel=9 --denable-peeps \
+ 	--optimize-cmp --optimize-df --i-code-in-asm @USE_FLOATS@
+-AM_CCASFLAGS = -I$(top_srcdir)/../../include/pic16 \
+-	-I$(top_srcdir)/../../non-free/include/pic16 -I$(srcdir)
++AM_CCASFLAGS = -I$(top_srcdir)/../../include/pic16 -I$(srcdir)
+ all: all-am
+ 
+ .SUFFIXES:
+diff --git a/doc/INSTALL.txt b/doc/INSTALL.txt
+index 76a6f42..0f92463 100644
+--- a/doc/INSTALL.txt
++++ b/doc/INSTALL.txt
+@@ -18,9 +18,7 @@ To install:
+ 
+ This will install sdcc binaries into: /usr/local/bin/
+ header files into:                    /usr/local/share/sdcc/include/
+-non-free header files into:           /usr/local/share/sdcc/non-free/include/
+ library files into:                   /usr/local/share/sdcc/lib/
+-non-free library files into:          /usr/local/share/sdcc/non-free/lib/
+ and documentation into:               /usr/local/share/sdcc/doc/
+ 
+ You can test the install by entering:
+@@ -44,9 +42,7 @@ To install:
+ 
+ By default this will install sdcc binaries into: C:\Program Files\SDCC\bin\
+ header files into:                               C:\Program Files\SDCC\include\
+-non-free header files into:                      C:\Program Files\SDCC\non-free\include\
+ library files into:                              C:\Program Files\SDCC\lib\
+-non-free library files into:                     C:\Program Files\SDCC\non-free\lib\
+ and documentation into:                          C:\Program Files\SDCC\doc\
+ 
+ You can test the install by opening a DOS box and entering:
+@@ -75,9 +71,7 @@ To install:
+ 
+ This will install sdcc binaries into: /Developer/sdcc/bin/
+ header files into:                    /Developer/sdcc/share/sdcc/include/
+-non-free header files into:           /Developer/sdcc/share/sdcc/non-free/include/
+ library files into:                   /Developer/sdcc/share/sdcc/lib/
+-non-free library files into:          /Developer/sdcc/share/sdcc/non-free/lib/
+ and documentation into:               /Developer/sdcc/share/sdcc/doc/
+ 
+ You can test the install by entering:
+diff --git a/doc/README.txt b/doc/README.txt
+index 88f8c98..a36db81 100644
+--- a/doc/README.txt
++++ b/doc/README.txt
+@@ -35,10 +35,9 @@ Exception are pic device libraries and header files which are derived
+ from Microchip header (.inc) and linker script (.lkr) files. Microchip
+ requires that "The header files should state that they are only to be
+ used with authentic Microchip devices" which makes them incompatible
+-with the GPL. Pic device libraries and header files are located at
+-non-free/lib and non-free/include directories respectively. Sdcc should
+-be run with the --use-non-free command line option in order to include
+-non-free header files and libraries.
++with the GPL. These non-free libraries and header files (and the build
++and run-time options that enable their use) are omitted in the SDCC
++package distributed with GNU Guix.
+ 
+ See:
+ 
+diff --git a/doc/sdccman.lyx b/doc/sdccman.lyx
+index d18a509..b95bf61 100644
+--- a/doc/sdccman.lyx
++++ b/doc/sdccman.lyx
+@@ -1092,54 +1092,9 @@ A possible exception are pic device libraries and header files which are
+  to be used with authentic Microchip devices" which makes them incompatible
+  with the GPL, if Microchip has any copyright in them (which might depend
+  on local copyright laws).
+- Pic device libraries and header files are located at non-free/lib and non-free/
+-include directories respectively.
+- SDCC should be run with the 
+-\series bold
+--
+-\begin_inset ERT
+-status collapsed
+-
+-\begin_layout Plain Layout
+-
+-
+-\backslash
+-/
+-\end_layout
+-
+-\end_inset
+-
+--
+-\series default
+-use-non-free
+-\series bold
+-
+-\begin_inset Index idx
+-status collapsed
+-
+-\begin_layout Plain Layout
+--
+-\begin_inset ERT
+-status collapsed
+-
+-\begin_layout Plain Layout
+-
+-
+-\backslash
+-/
+-\end_layout
+-
+-\end_inset
+-
+--use-non-free
+-\end_layout
+-
+-\end_inset
+-
+-
+-\series default
+- command line option in order to include non-free header files and libraries.
+- 
++ These non-free libraries and header files (and the build and run-time options
++ that enable their use) are omitted in the SDCC package distributed with
++ GNU Guix.
+ \end_layout
+ 
+ \begin_layout Itemize
+@@ -2870,18 +2825,6 @@ include_dir_suffix environment variable, see table below
+ \end_inset
+ 
+ 
+-\begin_inset space ~
+-\end_inset
+-
+-non_free_include_dir_suffix environment variable, see table below
+-\end_layout
+-
+-\begin_layout Labeling
+-\labelwidthstring 00.00.0000
+-\begin_inset space ~
+-\end_inset
+-
+-
+ \begin_inset space ~
+ \end_inset
+ 
+@@ -2894,22 +2837,6 @@ lib_dir_suffix environment variable, see table below
+ \end_inset
+ 
+ 
+-\begin_inset space ~
+-\end_inset
+-
+-
+-\begin_inset space ~
+-\end_inset
+-
+-non_free_lib_dir_suffix environment variable, see table below
+-\end_layout
+-
+-\begin_layout Labeling
+-\labelwidthstring 00.00.0000
+-\begin_inset space ~
+-\end_inset
+-
+-
+ \begin_inset space ~
+ \end_inset
+ 
+@@ -3408,7 +3335,7 @@ These defaults are:
+ \begin_layout Standard
+ \align center
+ \begin_inset Tabular
+-<lyxtabular version="3" rows="11" columns="3">
++<lyxtabular version="3" rows="9" columns="3">
+ <features tabularvalignment="middle">
+ <column alignment="block" valignment="top" width="0in">
+ <column alignment="block" valignment="top" width="0in">
+@@ -3692,68 +3619,6 @@ sdcc/include
+ include
+ \end_layout
+ 
+-\end_inset
+-</cell>
+-</row>
+-<row>
+-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+-\begin_inset Text
+-
+-\begin_layout Plain Layout
+-
+-\emph on
+-NON_FREE_INCLUDE_DIR_SUFFIX
+-\end_layout
+-
+-\end_inset
+-</cell>
+-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+-\begin_inset Text
+-
+-\begin_layout Plain Layout
+-sdcc/non-free/include
+-\end_layout
+-
+-\end_inset
+-</cell>
+-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+-\begin_inset Text
+-
+-\begin_layout Plain Layout
+-non-free/include
+-\end_layout
+-
+-\end_inset
+-</cell>
+-</row>
+-<row>
+-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+-\begin_inset Text
+-
+-\begin_layout Plain Layout
+-
+-\emph on
+-LIB_DIR_SUFFIX
+-\end_layout
+-
+-\end_inset
+-</cell>
+-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+-\begin_inset Text
+-
+-\begin_layout Plain Layout
+-sdcc/lib
+-\end_layout
+-
+-\end_inset
+-</cell>
+-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+-\begin_inset Text
+-
+-\begin_layout Plain Layout
+-lib
+-\end_layout
+-
+ \end_inset
+ </cell>
+ </row>
+@@ -3764,7 +3629,7 @@ lib
+ \begin_layout Plain Layout
+ 
+ \emph on
+-NON_FREE_LIB_DIR_SUFFIX
++LIB_DIR_SUFFIX
+ \end_layout
+ 
+ \end_inset
+@@ -3773,7 +3638,7 @@ NON_FREE_LIB_DIR_SUFFIX
+ \begin_inset Text
+ 
+ \begin_layout Plain Layout
+-sdcc/non-free/lib
++sdcc/lib
+ \end_layout
+ 
+ \end_inset
+@@ -3782,7 +3647,7 @@ sdcc/non-free/lib
+ \begin_inset Text
+ 
+ \begin_layout Plain Layout
+-non-free/lib
++lib
+ \end_layout
+ 
+ \end_inset
+@@ -4181,20 +4046,6 @@ include
+ \end_inset
+ 
+  
+-\backslash
+-
+-\begin_inset Newline newline
+-\end_inset
+-
+-non_free_include_dir_suffix=
+-\begin_inset Quotes srd
+-\end_inset
+-
+-non-free/include
+-\begin_inset Quotes srd
+-\end_inset
+-
+- 
+ \backslash
+ 
+ \begin_inset Newline newline
+@@ -4209,20 +4060,6 @@ lib
+ \end_inset
+ 
+  
+-\backslash
+-
+-\begin_inset Newline newline
+-\end_inset
+-
+-non_free_lib_dir_suffix=
+-\begin_inset Quotes srd
+-\end_inset
+-
+-non-free/lib
+-\begin_inset Quotes srd
+-\end_inset
+-
+- 
+ \backslash
+ 
+ \begin_inset Newline newline
+@@ -4403,20 +4240,6 @@ include
+ \end_inset
+ 
+  
+-\backslash
+-
+-\begin_inset Newline newline
+-\end_inset
+-
+-non_free_include_dir_suffix=
+-\begin_inset Quotes srd
+-\end_inset
+-
+-non-free/include
+-\begin_inset Quotes srd
+-\end_inset
+-
+- 
+ \backslash
+ 
+ \begin_inset Newline newline
+@@ -4431,20 +4254,6 @@ lib
+ \end_inset
+ 
+  
+-\backslash
+-
+-\begin_inset Newline newline
+-\end_inset
+-
+-non_free_lib_dir_suffix=
+-\begin_inset Quotes srd
+-\end_inset
+-
+-non-free/lib
+-\begin_inset Quotes srd
+-\end_inset
+-
+- 
+ \backslash
+ 
+ \begin_inset Newline newline
+@@ -4541,7 +4350,7 @@ Install paths
+ \begin_layout Standard
+ \align center
+ \begin_inset Tabular
+-<lyxtabular version="3" rows="7" columns="4">
++<lyxtabular version="3" rows="5" columns="4">
+ <features tabularvalignment="middle">
+ <column alignment="left" valignment="top">
+ <column alignment="left" valignment="top" width="4.5cm">
+@@ -4697,64 +4506,6 @@ include
+ <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+ \begin_inset Text
+ 
+-\begin_layout Plain Layout
+-Non-free include files
+-\end_layout
+-
+-\end_inset
+-</cell>
+-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+-\begin_inset Text
+-
+-\begin_layout Plain Layout
+-
+-\emph on
+-$DATADIR/non-free/
+-\emph default
+-
+-\begin_inset Newline newline
+-\end_inset
+-
+-
+-\emph on
+-$INCLUDE_DIR_SUFFIX
+-\end_layout
+-
+-\end_inset
+-</cell>
+-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+-\begin_inset Text
+-
+-\begin_layout Plain Layout
+-/usr/local/share/
+-\begin_inset Newline newline
+-\end_inset
+-
+-sdcc/non-free/include
+-\end_layout
+-
+-\end_inset
+-</cell>
+-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+-\begin_inset Text
+-
+-\begin_layout Plain Layout
+-
+-\backslash
+-sdcc
+-\backslash
+-non-free
+-\backslash
+-include
+-\end_layout
+-
+-\end_inset
+-</cell>
+-</row>
+-<row>
+-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+-\begin_inset Text
+-
+ \begin_layout Plain Layout
+ Library file**
+ \end_layout
+@@ -4804,64 +4555,6 @@ sdcc
+ lib
+ \end_layout
+ 
+-\end_inset
+-</cell>
+-</row>
+-<row>
+-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+-\begin_inset Text
+-
+-\begin_layout Plain Layout
+-Library file**
+-\end_layout
+-
+-\end_inset
+-</cell>
+-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+-\begin_inset Text
+-
+-\begin_layout Plain Layout
+-
+-\emph on
+-$DATADIR/non-free/
+-\emph default
+-
+-\begin_inset Newline newline
+-\end_inset
+-
+-
+-\emph on
+-$LIB_DIR_SUFFIX
+-\end_layout
+-
+-\end_inset
+-</cell>
+-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+-\begin_inset Text
+-
+-\begin_layout Plain Layout
+-/usr/local/share/
+-\begin_inset Newline newline
+-\end_inset
+-
+-sdcc/non-free/lib
+-\end_layout
+-
+-\end_inset
+-</cell>
+-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+-\begin_inset Text
+-
+-\begin_layout Plain Layout
+-
+-\backslash
+-sdcc
+-\backslash
+-non-free
+-\backslash
+-lib
+-\end_layout
+-
+ \end_inset
+ </cell>
+ </row>
+@@ -5184,7 +4877,7 @@ $PATH
+ \begin_layout Standard
+ \align center
+ \begin_inset Tabular
+-<lyxtabular version="3" rows="9" columns="4">
++<lyxtabular version="3" rows="6" columns="4">
+ <features tabularvalignment="middle">
+ <column alignment="block" valignment="top" width="0.5cm">
+ <column alignment="block" valignment="top" width="4.8cm">
+@@ -5462,203 +5155,13 @@ include
+ </cell>
+ </row>
+ <row>
+-<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
++<cell alignment="left" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+ \begin_inset Text
+ 
+ \begin_layout Plain Layout
+ 5
+ \end_layout
+ 
+-\end_inset
+-</cell>
+-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+-\begin_inset Text
+-
+-\begin_layout Plain Layout
+-
+-\emph on
+-$DATADIR/
+-\emph default
+-
+-\begin_inset Newline newline
+-\end_inset
+-
+-
+-\emph on
+-$INCLUDE_DIR_SUFFIX
+-\end_layout
+-
+-\end_inset
+-</cell>
+-<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
+-\begin_inset Text
+-
+-\begin_layout Plain Layout
+-/usr/local/share/
+-\begin_inset Newline newline
+-\end_inset
+-
+-sdcc/include
+-\end_layout
+-
+-\end_inset
+-</cell>
+-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+-\begin_inset Text
+-
+-\begin_layout Plain Layout
+-(not on Win32)
+-\end_layout
+-
+-\end_inset
+-</cell>
+-</row>
+-<row>
+-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+-\begin_inset Text
+-
+-\begin_layout Plain Layout
+-6
+-\end_layout
+-
+-\end_inset
+-</cell>
+-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+-\begin_inset Text
+-
+-\begin_layout Plain Layout
+-$SDCC_HOME/
+-\begin_inset Newline newline
+-\end_inset
+-
+-
+-\emph on
+-$PREFIX2DATA_DIR/
+-\emph default
+-
+-\begin_inset Newline newline
+-\end_inset
+-
+-
+-\emph on
+-non-free/
+-\emph default
+-
+-\begin_inset Newline newline
+-\end_inset
+-
+-
+-\emph on
+-$INCLUDE_DIR_SUFFIX
+-\end_layout
+-
+-\end_inset
+-</cell>
+-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+-\begin_inset Text
+-
+-\begin_layout Plain Layout
+-$SDCC_HOME/share/
+-\begin_inset Newline newline
+-\end_inset
+-
+-sdcc/non-free/include
+-\end_layout
+-
+-\end_inset
+-</cell>
+-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+-\begin_inset Text
+-
+-\begin_layout Plain Layout
+-$SDCC_HOME
+-\backslash
+-non-free
+-\backslash
+-include
+-\end_layout
+-
+-\end_inset
+-</cell>
+-</row>
+-<row>
+-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+-\begin_inset Text
+-
+-\begin_layout Plain Layout
+-7
+-\end_layout
+-
+-\end_inset
+-</cell>
+-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+-\begin_inset Text
+-
+-\begin_layout Plain Layout
+-path(argv[0])/
+-\begin_inset Newline newline
+-\end_inset
+-
+-
+-\emph on
+-$BIN2DATADIR/
+-\emph default
+-
+-\begin_inset Newline newline
+-\end_inset
+-
+-
+-\emph on
+-non-free/
+-\emph default
+-
+-\begin_inset Newline newline
+-\end_inset
+-
+-
+-\emph on
+-$INCLUDE_DIR_SUFFIX
+-\end_layout
+-
+-\end_inset
+-</cell>
+-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+-\begin_inset Text
+-
+-\begin_layout Plain Layout
+-path(argv[0])/../
+-\begin_inset Newline newline
+-\end_inset
+-
+-sdcc/non-free/include
+-\end_layout
+-
+-\end_inset
+-</cell>
+-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+-\begin_inset Text
+-
+-\begin_layout Plain Layout
+-path(argv[0])
+-\backslash
+-..
+-\backslash
+-non-free
+-\backslash
+-include
+-\end_layout
+-
+-\end_inset
+-</cell>
+-</row>
+-<row>
+-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+-\begin_inset Text
+-
+-\begin_layout Plain Layout
+-8
+-\end_layout
+-
+ \end_inset
+ </cell>
+ <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+@@ -5674,21 +5177,13 @@ $DATADIR/
+ \end_inset
+ 
+ 
+-\emph on
+-non-free/
+-\emph default
+-
+-\begin_inset Newline newline
+-\end_inset
+-
+-
+ \emph on
+ $INCLUDE_DIR_SUFFIX
+ \end_layout
+ 
+ \end_inset
+ </cell>
+-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
++<cell alignment="left" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+ \begin_inset Text
+ 
+ \begin_layout Plain Layout
+@@ -5696,7 +5191,7 @@ $INCLUDE_DIR_SUFFIX
+ \begin_inset Newline newline
+ \end_inset
+ 
+-sdcc/non-free/include
++sdcc/include
+ \end_layout
+ 
+ \end_inset
+@@ -5794,7 +5289,7 @@ model
+ \begin_layout Standard
+ \align center
+ \begin_inset Tabular
+-<lyxtabular version="3" rows="10" columns="4">
++<lyxtabular version="3" rows="6" columns="4">
+ <features tabularvalignment="middle">
+ <column alignment="block" valignment="top" width="0.5cm">
+ <column alignment="block" valignment="top" width="4.5cm">
+@@ -6074,7 +5569,7 @@ lib
+ </cell>
+ </row>
+ <row>
+-<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
++<cell alignment="left" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+ \begin_inset Text
+ 
+ \begin_layout Plain Layout
+@@ -6083,7 +5578,7 @@ lib
+ 
+ \end_inset
+ </cell>
+-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
++<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+ \begin_inset Text
+ 
+ \begin_layout Plain Layout
+@@ -6114,7 +5609,7 @@ $LIB_DIR_SUFFIX/
+ 
+ \end_inset
+ </cell>
+-<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
++<cell alignment="left" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+ \begin_inset Text
+ 
+ \begin_layout Plain Layout
+@@ -6129,7 +5624,7 @@ lib/
+ 
+ \end_inset
+ </cell>
+-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
++<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
+ \begin_inset Text
+ 
+ \begin_layout Plain Layout
+@@ -6152,308 +5647,6 @@ lib
+ <model>
+ \end_layout
+ 
+-\end_inset
+-</cell>
+-</row>
+-<row>
+-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+-\begin_inset Text
+-
+-\begin_layout Plain Layout
+-6
+-\end_layout
+-
+-\end_inset
+-</cell>
+-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+-\begin_inset Text
+-
+-\begin_layout Plain Layout
+-
+-\emph on
+-$DATADIR/non-free/
+-\emph default
+-
+-\begin_inset Newline newline
+-\end_inset
+-
+-
+-\emph on
+-$LIB_DIR_SUFFIX/
+-\emph default
+-
+-\begin_inset Newline newline
+-\end_inset
+-
+-
+-\emph on
+-<model>
+-\end_layout
+-
+-\end_inset
+-</cell>
+-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+-\begin_inset Text
+-
+-\begin_layout Plain Layout
+-/usr/local/share/sdcc/
+-\begin_inset Newline newline
+-\end_inset
+-
+-lib/
+-\emph on
+-<model>
+-\end_layout
+-
+-\end_inset
+-</cell>
+-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+-\begin_inset Text
+-
+-\begin_layout Plain Layout
+-(not on Win32)
+-\end_layout
+-
+-\end_inset
+-</cell>
+-</row>
+-<row>
+-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+-\begin_inset Text
+-
+-\begin_layout Plain Layout
+-7
+-\end_layout
+-
+-\end_inset
+-</cell>
+-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+-\begin_inset Text
+-
+-\begin_layout Plain Layout
+-$SDCC_HOME/
+-\begin_inset Newline newline
+-\end_inset
+-
+-
+-\emph on
+-$PREFIX2DATA_DIR/
+-\emph default
+-
+-\begin_inset Newline newline
+-\end_inset
+-
+-
+-\emph on
+-non-free/
+-\emph default
+-
+-\begin_inset Newline newline
+-\end_inset
+-
+-
+-\emph on
+-$LIB_DIR_SUFFIX/
+-\emph default
+-
+-\begin_inset Newline newline
+-\end_inset
+-
+-
+-\emph on
+-<model>
+-\end_layout
+-
+-\end_inset
+-</cell>
+-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+-\begin_inset Text
+-
+-\begin_layout Plain Layout
+-$SDCC_HOME/share/sdcc/
+-\begin_inset Newline newline
+-\end_inset
+-
+-non-free/lib/
+-\emph on
+-<model>
+-\end_layout
+-
+-\end_inset
+-</cell>
+-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+-\begin_inset Text
+-
+-\begin_layout Plain Layout
+-$SDCC_HOME
+-\backslash
+-
+-\begin_inset Newline newline
+-\end_inset
+-
+-lib
+-\backslash
+-non-free
+-\emph on
+-
+-\backslash
+-<model>
+-\end_layout
+-
+-\end_inset
+-</cell>
+-</row>
+-<row>
+-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+-\begin_inset Text
+-
+-\begin_layout Plain Layout
+-8
+-\end_layout
+-
+-\end_inset
+-</cell>
+-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+-\begin_inset Text
+-
+-\begin_layout Plain Layout
+-path(argv[0])/
+-\begin_inset Newline newline
+-\end_inset
+-
+-
+-\emph on
+-$BIN2DATADIR/
+-\emph default
+-
+-\begin_inset Newline newline
+-\end_inset
+-
+-
+-\emph on
+-non-free/
+-\emph default
+-
+-\begin_inset Newline newline
+-\end_inset
+-
+-
+-\emph on
+-$LIB_DIR_SUFFIX/
+-\emph default
+-
+-\begin_inset Newline newline
+-\end_inset
+-
+-
+-\emph on
+-<model>
+-\end_layout
+-
+-\end_inset
+-</cell>
+-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+-\begin_inset Text
+-
+-\begin_layout Plain Layout
+-path(argv[0])/../sdcc/
+-\begin_inset Newline newline
+-\end_inset
+-
+-non-free/lib/
+-\emph on
+-<model>
+-\end_layout
+-
+-\end_inset
+-</cell>
+-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+-\begin_inset Text
+-
+-\begin_layout Plain Layout
+-path(argv[0])
+-\backslash
+-..
+-\backslash
+-
+-\begin_inset Newline newline
+-\end_inset
+-
+-lib
+-\backslash
+-non-free
+-\emph on
+-
+-\backslash
+-<model>
+-\end_layout
+-
+-\end_inset
+-</cell>
+-</row>
+-<row>
+-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+-\begin_inset Text
+-
+-\begin_layout Plain Layout
+-9
+-\end_layout
+-
+-\end_inset
+-</cell>
+-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+-\begin_inset Text
+-
+-\begin_layout Plain Layout
+-
+-\emph on
+-$DATADIR/non-free/
+-\emph default
+-
+-\begin_inset Newline newline
+-\end_inset
+-
+-
+-\emph on
+-$LIB_DIR_SUFFIX/
+-\emph default
+-
+-\begin_inset Newline newline
+-\end_inset
+-
+-
+-\emph on
+-<model>
+-\end_layout
+-
+-\end_inset
+-</cell>
+-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+-\begin_inset Text
+-
+-\begin_layout Plain Layout
+-/usr/local/share/sdcc/
+-\begin_inset Newline newline
+-\end_inset
+-
+-non-free/lib/
+-\begin_inset Newline newline
+-\end_inset
+-
+-
+-\emph on
+-<model>
+-\end_layout
+-
+-\end_inset
+-</cell>
+-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
+-\begin_inset Text
+-
+-\begin_layout Plain Layout
+-(not on Win32)
+-\end_layout
+-
+ \end_inset
+ </cell>
+ </row>
+@@ -8717,14 +7910,6 @@ In <installdir>/share/sdcc/include
+ the include files
+ \end_layout
+ 
+-\begin_layout Standard
+-In <installdir>/share/sdcc/non-free/include
+-\end_layout
+-
+-\begin_layout Itemize
+-the non-free include files
+-\end_layout
+-
+ \begin_layout Standard
+ In <installdir>/share/sdcc/lib
+ \end_layout
+@@ -8733,14 +7918,6 @@ In <installdir>/share/sdcc/lib
+ the src and target subdirectories with the precompiled relocatables.
+ \end_layout
+ 
+-\begin_layout Standard
+-In <installdir>/share/sdcc/non-free/lib
+-\end_layout
+-
+-\begin_layout Itemize
+-the src and target subdirectories with the non-free precompiled relocatables.
+-\end_layout
+-
+ \begin_layout Standard
+ In <installdir>/share/sdcc/doc
+ \end_layout
+@@ -15254,66 +14431,6 @@ splint
+ myprogram.c
+ \end_layout
+ 
+-\begin_layout Labeling
+-\labelwidthstring 00.00.0000
+-
+-\series bold
+--
+-\begin_inset ERT
+-status collapsed
+-
+-\begin_layout Plain Layout
+-
+-
+-\backslash
+-/
+-\end_layout
+-
+-\end_inset
+-
+--use-non-free
+-\series default
+-
+-\begin_inset Index idx
+-status collapsed
+-
+-\begin_layout Plain Layout
+--
+-\begin_inset ERT
+-status collapsed
+-
+-\begin_layout Plain Layout
+-
+-
+-\backslash
+-/
+-\end_layout
+-
+-\end_inset
+-
+--use-non-free
+-\end_layout
+-
+-\end_inset
+-
+-
+-\begin_inset CommandInset label
+-LatexCommand label
+-name "lyx:--use-non-free"
+-
+-\end_inset
+-
+- Search / include non-free licensed libraries and header files, located
+- under the non-free directory - see section 
+-\begin_inset CommandInset ref
+-LatexCommand ref
+-reference "subsec:Search-Paths"
+-
+-\end_inset
+-
+-
+-\end_layout
+-
+ \begin_layout Subsection
+ Linker Options
+ \begin_inset Index idx
+@@ -44656,66 +43773,9 @@ http://sourceforge.net/projects/gputils
+ Pic device specific header and c source files are automatically generated
+  from MPLAB include files, which are published by Microchip with a special
+  requirement that they are only to be used with authentic Microchip devices.
+- This reqirement prevents to publish generated header and c source files
+- under the GPL compatible license, so they are located in non-free directory
+- (see section 
+-\begin_inset CommandInset ref
+-LatexCommand ref
+-reference "subsec:Search-Paths"
+-
+-\end_inset
+-
+-).
+- In order to include them in include and library search paths, the 
+-\series bold
+--
+-\begin_inset ERT
+-status collapsed
+-
+-\begin_layout Plain Layout
+-
+-
+-\backslash
+-/
+-\end_layout
+-
+-\end_inset
+-
+--use-non-free
+-\begin_inset Index idx
+-status collapsed
+-
+-\begin_layout Plain Layout
+--
+-\begin_inset ERT
+-status collapsed
+-
+-\begin_layout Plain Layout
+-
+-
+-\backslash
+-/
+-\end_layout
+-
+-\end_inset
+-
+--use-non-free
+-\end_layout
+-
+-\end_inset
+-
+-
+-\series default
+- command line option should be defined.
+-\begin_inset Newline newline
+-\end_inset
+-
+-
+-\begin_inset Newline newline
+-\end_inset
+-
+-NOTE: the compiled code, which use non-free pic device specific libraries,
+- is not GPL compatible!
++ As this restriction is incompatible with the goal of software freedom,
++ header files and libraries generated from these files are not included
++ in the SDCC package distributed with Guix.
+ \begin_inset Newline newline
+ \end_inset
+ 
+@@ -44769,7 +43829,7 @@ Makefile
+ \begin_inset space ~
+ \end_inset
+ 
+-sdcc -V --use-non-free -mpic14 -p16f877 -c $<
++sdcc -V -mpic14 -p16f877 -c $<
+ \begin_inset Newline newline
+ \end_inset
+ 
+@@ -44863,7 +43923,7 @@ Makefile
+ \begin_inset space ~
+ \end_inset
+ 
+-sdcc -S -V --use-non-free -mpic14 -p16f877 $<
++sdcc -S -V -mpic14 -p16f877 $<
+ \begin_inset Newline newline
+ \end_inset
+ 
+@@ -45145,47 +44205,6 @@ status collapsed
+ \begin_layout Plain Layout
+ 
+ 
+-\backslash
+-/
+-\end_layout
+-
+-\end_inset
+-
+--use-non-free
+-\begin_inset Index idx
+-status collapsed
+-
+-\begin_layout Plain Layout
+-PIC14!Options!-
+-\begin_inset ERT
+-status collapsed
+-
+-\begin_layout Plain Layout
+-
+-
+-\backslash
+-/
+-\end_layout
+-
+-\end_inset
+-
+--use-non-free
+-\end_layout
+-
+-\end_inset
+-
+- make non-free device headers and libraries available in the compiler's
+- search paths (implicit -I and -L options)
+-\end_layout
+-
+-\begin_layout Description
+--
+-\begin_inset ERT
+-status collapsed
+-
+-\begin_layout Plain Layout
+-
+-
+ \backslash
+ /
+ \end_layout
+@@ -46058,47 +45077,6 @@ status collapsed
+ -all-callee-saves
+ \end_layout
+ 
+-\begin_layout Description
+--
+-\begin_inset ERT
+-status collapsed
+-
+-\begin_layout Plain Layout
+-
+-
+-\backslash
+-/
+-\end_layout
+-
+-\end_inset
+-
+--use-non-free
+-\begin_inset Index idx
+-status collapsed
+-
+-\begin_layout Plain Layout
+-PIC16!Options!-
+-\begin_inset ERT
+-status collapsed
+-
+-\begin_layout Plain Layout
+-
+-
+-\backslash
+-/
+-\end_layout
+-
+-\end_inset
+-
+--use-non-free
+-\end_layout
+-
+-\end_inset
+-
+- Make non-free device headers and libraries available in the compiler's
+- search paths (implicit -I and -L options).
+-\end_layout
+-
+ \begin_layout Subsection
+ Port Specific Options
+ \begin_inset Index idx
+@@ -47375,188 +46353,6 @@ Linker
+ \end_inset
+ 
+ 
+-\end_layout
+-
+-\begin_layout Standard
+-If the 
+-\series bold
+--
+-\begin_inset ERT
+-status collapsed
+-
+-\begin_layout Plain Layout
+-
+-
+-\backslash
+-/
+-\end_layout
+-
+-\end_inset
+-
+--use-non-free
+-\begin_inset Index idx
+-status collapsed
+-
+-\begin_layout Plain Layout
+--
+-\begin_inset ERT
+-status collapsed
+-
+-\begin_layout Plain Layout
+-
+-
+-\backslash
+-/
+-\end_layout
+-
+-\end_inset
+-
+--use-non-free
+-\end_layout
+-
+-\end_inset
+-
+-
+-\series default
+- command line option is specified, non-free directories are searched:
+-\begin_inset Newline newline
+-\end_inset
+-
+-
+-\begin_inset Separator latexpar
+-\end_inset
+-
+-
+-\end_layout
+-
+-\begin_layout Standard
+-\align center
+-\begin_inset Tabular
+-<lyxtabular version="3" rows="3" columns="4">
+-<features tabularvalignment="middle">
+-<column alignment="center" valignment="top">
+-<column alignment="center" valignment="top">
+-<column alignment="center" valignment="top">
+-<column alignment="center" valignment="top">
+-<row>
+-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+-\begin_inset Text
+-
+-\begin_layout Plain Layout
+-Directory
+-\end_layout
+-
+-\end_inset
+-</cell>
+-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
+-\begin_inset Text
+-
+-\begin_layout Plain Layout
+-Description
+-\end_layout
+-
+-\end_inset
+-</cell>
+-<cell alignment="center" valignment="top" topline="true" bottomline="true" usebox="none">
+-\begin_inset Text
+-
+-\begin_layout Plain Layout
+-Target
+-\end_layout
+-
+-\end_inset
+-</cell>
+-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
+-\begin_inset Text
+-
+-\begin_layout Plain Layout
+-Command prefix
+-\end_layout
+-
+-\end_inset
+-</cell>
+-</row>
+-<row>
+-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+-\begin_inset Text
+-
+-\begin_layout Plain Layout
+-PREFIX/sdcc/non-free/include/pic16
+-\end_layout
+-
+-\end_inset
+-</cell>
+-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+-\begin_inset Text
+-
+-\begin_layout Plain Layout
+-PIC16 specific non-free headers
+-\end_layout
+-
+-\end_inset
+-</cell>
+-<cell alignment="center" valignment="top" topline="true" usebox="none">
+-\begin_inset Text
+-
+-\begin_layout Plain Layout
+-Compiler
+-\end_layout
+-
+-\end_inset
+-</cell>
+-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+-\begin_inset Text
+-
+-\begin_layout Plain Layout
+--I
+-\end_layout
+-
+-\end_inset
+-</cell>
+-</row>
+-<row>
+-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+-\begin_inset Text
+-
+-\begin_layout Plain Layout
+-PREFIX/sdcc/non-free/lib/pic16
+-\end_layout
+-
+-\end_inset
+-</cell>
+-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
+-\begin_inset Text
+-
+-\begin_layout Plain Layout
+-PIC16 specific non-free libraries
+-\end_layout
+-
+-\end_inset
+-</cell>
+-<cell alignment="center" valignment="top" topline="true" bottomline="true" usebox="none">
+-\begin_inset Text
+-
+-\begin_layout Plain Layout
+-Linker
+-\end_layout
+-
+-\end_inset
+-</cell>
+-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
+-\begin_inset Text
+-
+-\begin_layout Plain Layout
+--L
+-\end_layout
+-
+-\end_inset
+-</cell>
+-</row>
+-</lyxtabular>
+-
+-\end_inset
+-
+-
+ \end_layout
+ 
+ \begin_layout Subsection
+@@ -48252,66 +47048,9 @@ name "subsec:PIC16_Header-Files-and-Libraries"
+ Pic device specific header and c source files are automatically generated
+  from MPLAB include files, which are published by Microchip with a special
+  requirement that they are only to be used with authentic Microchip devices.
+- This requirement prevents to publish generated header and c source files
+- under the GPL compatible license, so they are located in the non-free directory
+- (see section 
+-\begin_inset CommandInset ref
+-LatexCommand ref
+-reference "subsec:Search-Paths"
+-
+-\end_inset
+-
+-).
+- In order to include them in include and library search paths, the 
+-\series bold
+--
+-\begin_inset ERT
+-status collapsed
+-
+-\begin_layout Plain Layout
+-
+-
+-\backslash
+-/
+-\end_layout
+-
+-\end_inset
+-
+--use-non-free
+-\begin_inset Index idx
+-status collapsed
+-
+-\begin_layout Plain Layout
+--
+-\begin_inset ERT
+-status collapsed
+-
+-\begin_layout Plain Layout
+-
+-
+-\backslash
+-/
+-\end_layout
+-
+-\end_inset
+-
+--use-non-free
+-\end_layout
+-
+-\end_inset
+-
+-
+-\series default
+- command line option should be defined.
+-\begin_inset Newline newline
+-\end_inset
+-
+-
+-\begin_inset Newline newline
+-\end_inset
+-
+-NOTE: the compiled code, which use non-free pic device specific libraries,
+- is not GPL compatible!
++ As this restriction is incompatible with the goal of software freedom,
++ header files and libraries generated from these files are not included
++ in the SDCC package distributed with Guix.
+ \end_layout
+ 
+ \begin_layout Subsection
+@@ -48557,195 +47296,6 @@ vfprintf.c
+  should also work, but is untested.
+ \end_layout
+ 
+-\begin_layout Subsection
+-Adding New Devices to the Port
+-\end_layout
+-
+-\begin_layout Standard
+-Adding support for a new 16
+-\begin_inset ERT
+-status collapsed
+-
+-\begin_layout Plain Layout
+-
+-
+-\backslash
+-,
+-\end_layout
+-
+-\end_inset
+-
+-bit PIC MCU requires the following steps:
+-\end_layout
+-
+-\begin_layout Enumerate
+-Create picDEVICE.c and picDEVICE.h from pDEVICE.inc using
+-\begin_inset Newline newline
+-\end_inset
+-
+-
+-\family typewriter
+-perl /path/to/sdcc/support/scripts/inc2h-pic16.pl 
+-\backslash
+-
+-\begin_inset Newline newline
+-\end_inset
+-
+-/path/to/gputils/header/pDEVICE.inc
+-\end_layout
+-
+-\begin_layout Enumerate
+-
+-\family typewriter
+-mv picDEVICE.h /path/to/sdcc/device/non-free/include/pic16
+-\end_layout
+-
+-\begin_layout Enumerate
+-
+-\family typewriter
+-mv picDEVICE.c /path/to/sdcc/device/non-free/lib/pic16/libdev
+-\end_layout
+-
+-\begin_layout Enumerate
+-Either
+-\begin_inset Separator latexpar
+-\end_inset
+-
+-
+-\end_layout
+-
+-\begin_deeper
+-\begin_layout Enumerate
+-add the new device to 
+-\family typewriter
+-/path/to/sdcc/device/lib/pic16/libio/*.ignore
+-\family default
+- to suppress building any of the I/O libraries for the new device
+-\begin_inset Foot
+-status collapsed
+-
+-\begin_layout Plain Layout
+-In fact, the 
+-\family typewriter
+-.ignore
+-\family default
+- files are only used when auto-generating 
+-\family typewriter
+-Makefile.am
+-\family default
+- using the 
+-\family typewriter
+-.../libio/mkmk.sh
+-\family default
+- script.
+-\end_layout
+-
+-\end_inset
+-
+-, or
+-\end_layout
+-
+-\begin_layout Enumerate
+-add the device (family) to 
+-\family typewriter
+-/path/to/sdcc/support/scripts/pic18fam-h-gen.pl
+-\family default
+- to assign I/O styles, run the 
+-\family typewriter
+-pic18fam-h-gen.pl
+-\family default
+- script to generate 
+-\family typewriter
+-pic18fam.h.gen
+-\family default
+-, replace your existing 
+-\family typewriter
+-pic18fam.h
+-\family default
+- with the generated file, and (if required) implement new I/O styles in
+- 
+-\family typewriter
+-/path/to/sdcc/device/include/pic16/{adc,i2c,usart}.h
+-\family default
+- and 
+-\family typewriter
+-/path/to/sdcc/device/lib/pic16/libio/*/*.
+-\end_layout
+-
+-\end_deeper
+-\begin_layout Enumerate
+-Edit 
+-\family typewriter
+-/path/to/sdcc/device/include/pic16/pic18fregs.h
+-\family default
+-
+-\begin_inset Newline newline
+-\end_inset
+-
+-The file format is self-explanatory, just add
+-\begin_inset Newline newline
+-\end_inset
+-
+-
+-\family typewriter
+-#elif defined(picDEVICE)
+-\begin_inset Newline newline
+-\end_inset
+-
+-#
+-\begin_inset ERT
+-status collapsed
+-
+-\begin_layout Plain Layout
+-
+-
+-\backslash
+- 
+-\backslash
+- 
+-\end_layout
+-
+-\end_inset
+-
+-include <picDEVICE.h>
+-\family default
+-
+-\begin_inset Newline newline
+-\end_inset
+-
+-at the right place (keep the file sorted, please).
+-\end_layout
+-
+-\begin_layout Enumerate
+-Edit 
+-\family typewriter
+-/path/to/sdcc/device/include/pic16devices.txt
+-\begin_inset Newline newline
+-\end_inset
+-
+-
+-\family default
+-Copy and modify an existing entry or create a new one and insert it at the
+- correct place (keep the file sorted, please).
+-\end_layout
+-
+-\begin_layout Enumerate
+-
+-\family typewriter
+-( cd /path/to/sdcc/device/non-free/lib/pic16 && sh update.sh )
+-\end_layout
+-
+-\begin_layout Enumerate
+-Recompile the pic16 libraries as described in 
+-\begin_inset CommandInset ref
+-LatexCommand ref
+-reference "subsec:pic16Libraries"
+-
+-\end_inset
+-
+- or just configure and build sdcc again from scratch (recommended).
+-\end_layout
+-
+ \begin_layout Subsection
+ Memory Models
+ \end_layout
+@@ -73531,6 +72081,12 @@ This document was initially written by Sandeep Dutta and updated by SDCC
+  developers.
+ \end_layout
+ 
++\begin_layout Standard
++It has been modified from the original to reflect the removal of non-free
++ components and related functionality in the SDCC package distributed with
++ GNU Guix.
++\end_layout
++
+ \begin_layout Standard
+ All product names mentioned herein may be trademarks
+ \begin_inset Index idx
+diff --git a/sdcc.spec b/sdcc.spec
+index b8baa92..be90a84 100644
+--- a/sdcc.spec
++++ b/sdcc.spec
+@@ -83,15 +83,15 @@ rm -rf $RPM_BUILD_ROOT
+ %files common
+ %defattr(-,root,root)
+ /usr/share/sdcc/include
+-/usr/share/sdcc/non-free/include
+ /usr/share/sdcc/lib
+-/usr/share/sdcc/non-free/lib
+ 
+ %files doc
+ %defattr(-,root,root)
+ %doc %{_defaultdocdir}
+ 
+ %changelog
++* Tue Dec 08 2020 - simon AT simonsouth.net
++- removed non-free include and lib directories
+ * Sat Jan 18 2029 - pkk AT spth.de
+ - version updated to 4.0.0
+ * Fri Apr 05 2019 - krauseph AT informatik.uni-freiburg.de
+diff --git a/sdcc_vc.h.in b/sdcc_vc.h.in
+index 06d8cca..736c325 100644
+--- a/sdcc_vc.h.in
++++ b/sdcc_vc.h.in
+@@ -23,8 +23,6 @@
+ 
+ #define INCLUDE_DIR_SUFFIX          "\\include"
+ #define LIB_DIR_SUFFIX              "\\lib"
+-#define NON_FREE_INCLUDE_DIR_SUFFIX "\\non-free\\include"
+-#define NON_FREE_LIB_DIR_SUFFIX     "\\non-free\\lib"
+ 
+ #define BIN2DATA_DIR                "\\.."
+ #define PREFIX2BIN_DIR              "\\bin"
+diff --git a/sdccconf_in.h b/sdccconf_in.h
+index aeb2724..9c1df9d 100644
+--- a/sdccconf_in.h
++++ b/sdccconf_in.h
+@@ -97,12 +97,6 @@
+ /* XXX */
+ #undef LIB_DIR_SUFFIX
+ 
+-/* XXX */
+-#undef NON_FREE_INCLUDE_DIR_SUFFIX
+-
+-/* XXX */
+-#undef NON_FREE_LIB_DIR_SUFFIX
+-
+ /* Define to 1 to disable the AVR port */
+ #undef OPT_DISABLE_AVR
+ 
+@@ -127,9 +121,6 @@
+ /* XXX */
+ #undef OPT_DISABLE_MCS51
+ 
+-/* XXX */
+-#undef OPT_DISABLE_NON_FREE
+-
+ /* XXX */
+ #undef OPT_DISABLE_PACKIHX
+ 
+diff --git a/src/SDCCglobl.h b/src/SDCCglobl.h
+index b8d156b..db81fd7 100644
+--- a/src/SDCCglobl.h
++++ b/src/SDCCglobl.h
+@@ -288,7 +288,6 @@ struct options
+     int no_pack_iram;           /* MCS51/DS390 - Deprecated: Tells the linker not to pack variables in internal ram */
+     int acall_ajmp;             /* MCS51 - Use acall/ajmp instead of lcall/ljmp */
+     int no_ret_without_call;    /* MCS51 - Do not use ret independent of acall/lcall */
+-    int use_non_free;           /* Search / include non-free licensed libraries and header files */
+     /* starting address of the segments */
+     int xstack_loc;             /* initial location of external stack */
+     int stack_loc;              /* initial value of internal stack pointer */
+diff --git a/src/SDCCmain.c b/src/SDCCmain.c
+index d4598a5..cd36f3d 100644
+--- a/src/SDCCmain.c
++++ b/src/SDCCmain.c
+@@ -142,7 +142,6 @@ char buffer[PATH_MAX * 2];
+ #define OPTION_DATA_SEG             "--dataseg"
+ #define OPTION_DOLLARS_IN_IDENT     "--fdollars-in-identifiers"
+ #define OPTION_SIGNED_CHAR          "--fsigned-char"
+-#define OPTION_USE_NON_FREE         "--use-non-free"
+ #define OPTION_PEEP_RETURN          "--peep-return"
+ #define OPTION_NO_PEEP_RETURN       "--no-peep-return"
+ #define OPTION_NO_OPTSDCC_IN_ASM    "--no-optsdcc-in-asm"
+@@ -197,7 +196,6 @@ static const OPTION optionsTable[] = {
+   {0,   OPTION_STD_SDCC2X, NULL, "Use ISO C2X standard with SDCC extensions"},
+   {0,   OPTION_DOLLARS_IN_IDENT, &options.dollars_in_ident, "Permit '$' as an identifier character"},
+   {0,   OPTION_SIGNED_CHAR, &options.signed_char, "Make \"char\" signed by default"},
+-  {0,   OPTION_USE_NON_FREE, &options.use_non_free, "Search / include non-free licensed libraries and header files"},
+ 
+   {0,   NULL, NULL, "Code generation options"},
+   {'m', NULL, NULL, "Set the port to use e.g. -mz80."},
+@@ -2084,10 +2082,6 @@ preProcess (char **envp)
+       else
+         addSet (&preArgvSet, Safe_strdup ("-D__SDCC_CHAR_UNSIGNED"));
+ 
+-      /* set the macro for non-free  */
+-      if (options.use_non_free)
+-        addSet (&preArgvSet, Safe_strdup ("-D__SDCC_USE_NON_FREE"));
+-
+       /* set the macro for large model  */
+       switch (options.model)
+         {
+@@ -2301,12 +2295,6 @@ setIncludePath (void)
+    *  6. - $SDCC_HOME/PREFIX2DATA_DIR/INCLUDE_DIR_SUFFIX
+    *  7. - path(argv[0])/BIN2DATA_DIR/INCLUDE_DIR_SUFFIX
+    *  8. - DATADIR/INCLUDE_DIR_SUFFIX (only on *nix)
+-   *  9. - $SDCC_HOME/PREFIX2DATA_DIR/NON_FREE_INCLUDE_DIR_SUFFIX/target
+-   * 10. - path(argv[0])/BIN2DATA_DIR/NON_FREE_INCLUDE_DIR_SUFFIX/target
+-   * 11. - DATADIR/NON_FREE_INCLUDE_DIR_SUFFIX/target (only on *nix)
+-   * 12. - $SDCC_HOME/PREFIX2DATA_DIR/NON_FREE_INCLUDE_DIR_SUFFIX
+-   * 13. - path(argv[0])/BIN2DATA_DIR/NON_FREE_INCLUDE_DIR_SUFFIX
+-   * 14. - DATADIR/NON_FREE_INCLUDE_DIR_SUFFIX (only on *nix)
+    */
+ 
+   if (!options.nostdinc)
+@@ -2319,17 +2307,6 @@ setIncludePath (void)
+       includeDirsSet = processStrSet (includeDirsSet, NULL, port->target, NULL);
+       mergeSets (&includeDirsSet, tempSet);
+ 
+-      if (options.use_non_free)
+-        {
+-          set *tempSet1;
+-
+-          tempSet = processStrSet (dataDirsSet, NULL, NON_FREE_INCLUDE_DIR_SUFFIX, NULL);
+-          tempSet1 = processStrSet (tempSet, NULL, DIR_SEPARATOR_STRING, NULL);
+-          tempSet1 = processStrSet (tempSet1, NULL, port->target, NULL);
+-          mergeSets (&tempSet1, tempSet);
+-          mergeSets (&includeDirsSet, tempSet1);
+-        }
+-
+       if ((p = getenv (SDCC_INCLUDE_NAME)) != NULL)
+         {
+           struct dbuf_s dbuf;
+@@ -2354,9 +2331,6 @@ setLibPath (void)
+    * 3. - $SDCC_HOME/PREFIX2DATA_DIR/LIB_DIR_SUFFIX/<model>
+    * 4. - path(argv[0])/BIN2DATA_DIR/LIB_DIR_SUFFIX/<model>
+    * 5. - DATADIR/LIB_DIR_SUFFIX/<model> (only on *nix)
+-   * 6. - $SDCC_HOME/PREFIX2DATA_DIR/NON_FREE_LIB_DIR_SUFFIX/<model>
+-   * 7. - path(argv[0])/BIN2DATA_DIR/NON_FREE_LIB_DIR_SUFFIX/<model>
+-   * 8. - DATADIR/NON_FREE_LIB_DIR_SUFFIX/<model> (only on *nix)
+    */
+ 
+   if (!options.nostdlib)
+@@ -2373,13 +2347,6 @@ setLibPath (void)
+       dbuf_makePath (&dbuf, LIB_DIR_SUFFIX, port->general.get_model ? port->general.get_model () : targetname);
+       libDirsSet = processStrSet (dataDirsSet, NULL, dbuf_c_str (&dbuf), NULL);
+ 
+-      if (options.use_non_free)
+-        {
+-          dbuf_set_length (&dbuf, 0);
+-          dbuf_makePath (&dbuf, NON_FREE_LIB_DIR_SUFFIX, port->general.get_model ? port->general.get_model () : targetname);
+-          mergeSets (&libDirsSet, processStrSet (dataDirsSet, NULL, dbuf_c_str (&dbuf), NULL));
+-        }
+-
+       if ((p = getenv (SDCC_LIB_NAME)) != NULL)
+         {
+           addSetHead (&libDirsSet, Safe_strdup (p));
+diff --git a/src/pic14/main.c b/src/pic14/main.c
+index ee90470..519ccfc 100644
+--- a/src/pic14/main.c
++++ b/src/pic14/main.c
+@@ -42,7 +42,6 @@ static OPTION _pic14_poptions[] =
+     { 0, "--no-pcode-opt", &pic14_options.disable_df, "disable (slightly faulty) optimization on pCode" },
+     { 0, OPTION_STACK_SIZE, &options.stack_size, "sets the size if the argument passing stack (default: 16, minimum: 4)", CLAT_INTEGER },
+     { 0, "--no-extended-instructions", &pic14_options.no_ext_instr, "forbid use of the extended instruction set (e.g., ADDFSR)" },
+-    { 0, "--no-warn-non-free", &pic14_options.no_warn_non_free, "suppress warning on absent --use-non-free option" },
+     { 0, NULL, NULL, NULL }
+   };
+ 
+@@ -176,16 +175,6 @@ _pic14_finaliseOptions (void)
+     addSet (&preArgvSet, Safe_strdup (dbuf_detach_c_str (&dbuf)));
+   }
+ 
+-  if (!pic14_options.no_warn_non_free && !options.use_non_free)
+-    {
+-      fprintf(stderr,
+-              "WARNING: Command line option --use-non-free not present.\n"
+-              "         When compiling for PIC14/PIC16, please provide --use-non-free\n"
+-              "         to get access to device headers and libraries.\n"
+-              "         If you do not use these, you may provide --no-warn-non-free\n"
+-              "         to suppress this warning (not recommended).\n");
+-    } // if
+-
+ }
+ 
+ static void
+diff --git a/src/pic14/main.h b/src/pic14/main.h
+index 4275b65..0dc8c86 100644
+--- a/src/pic14/main.h
++++ b/src/pic14/main.h
+@@ -5,7 +5,6 @@ typedef struct {
+   unsigned int isLibrarySource:1;
+   int disable_df;
+   int no_ext_instr;
+-  int no_warn_non_free;
+ } pic14_options_t;
+ 
+ extern pic14_options_t pic14_options;
+diff --git a/src/pic16/device.h b/src/pic16/device.h
+index cdfbba0..5877f09 100644
+--- a/src/pic16/device.h
++++ b/src/pic16/device.h
+@@ -99,7 +99,6 @@ typedef struct {
+   int gstack;
+   unsigned int debgen;
+   int xinst;
+-  int no_warn_non_free;
+ } pic16_options_t;
+ 
+ extern pic16_options_t pic16_options;
+diff --git a/src/pic16/main.c b/src/pic16/main.c
+index 61d9cfb..75d1182 100644
+--- a/src/pic16/main.c
++++ b/src/pic16/main.c
+@@ -655,7 +655,6 @@ OPTION pic16_optionsTable[]= {
+     { 0, "--pcode-verbose",     &pic16_pcode_verbose, "dump pcode related info"},
+     { 0, "--calltree",          &pic16_options.dumpcalltree, "dump call tree in .calltree file"},
+     { 0, "--gstack",            &pic16_options.gstack, "trace stack pointer push/pop to overflow"},
+-    { 0, "--no-warn-non-free",  &pic16_options.no_warn_non_free, "suppress warning on absent --use-non-free option" },
+     { 0, NULL,                  NULL, NULL}
+ };
+ 
+@@ -940,16 +939,6 @@ _pic16_finaliseOptions (void)
+       addSet (&asmOptionsSet, Safe_strdup ("-D__STACK_MODEL_SMALL"));
+     }
+ 
+-  if (!pic16_options.no_warn_non_free && !options.use_non_free)
+-    {
+-      fprintf(stderr,
+-              "WARNING: Command line option --use-non-free not present.\n"
+-              "         When compiling for PIC14/PIC16, please provide --use-non-free\n"
+-              "         to get access to device headers and libraries.\n"
+-              "         If you do not use these, you may provide --no-warn-non-free\n"
+-              "         to suppress this warning (not recommended).\n");
+-    } // if
+-
+   dbuf_destroy (&dbuf);
+ }
+ 
+@@ -979,7 +968,6 @@ _pic16_setDefaultOptions (void)
+   pic16_options.ip_stack = 1;       /* set to 1 to enable ipop/ipush for stack */
+   pic16_options.gstack = 0;
+   pic16_options.debgen = 0;
+-  pic16_options.no_warn_non_free = 0;
+ }
+ 
+ static const char *
+diff --git a/src/regression/Makefile b/src/regression/Makefile
+index d8dae7c..1a32355 100644
+--- a/src/regression/Makefile
++++ b/src/regression/Makefile
+@@ -107,12 +107,12 @@ endif
+ CC = $(top_builddir)/bin/sdcc
+ 
+ # compiler options
+-CFLAGS =  --no-warn-non-free -m$(ARCH) -p$(DEV) --fsigned-char --i-code-in-asm --fverbose-asm --std-c99
+-CFLAGS += --nostdinc -I$(top_srcdir)/device/include/$(ARCH) -I$(top_srcdir)/device/non-free/include/$(ARCH) -I$(top_srcdir)/device/include
++CFLAGS =  -m$(ARCH) -p$(DEV) --fsigned-char --i-code-in-asm --fverbose-asm --std-c99
++CFLAGS += --nostdinc -I$(top_srcdir)/device/include/$(ARCH) -I$(top_srcdir)/device/include
+ 
+ # linker options (for sdcc)
+ CFLAGS += -Wl,-l,-O2
+-CFLAGS += --nostdlib -L$(top_builddir)/device/lib/build/$(ARCH) -L$(top_builddir)/device/non-free/lib/build/$(ARCH)
++CFLAGS += --nostdlib -L$(top_builddir)/device/lib/build/$(ARCH)
+ 
+ # linker libraries
+ LIB_SUFFIX = $(LIB_E)$(LIB_O)$(LIB_X)
+diff --git a/support/regression/ports/pic14/spec.mk b/support/regression/ports/pic14/spec.mk
+index a3dcc05..bef1c45 100644
+--- a/support/regression/ports/pic14/spec.mk
++++ b/support/regression/ports/pic14/spec.mk
+@@ -12,13 +12,9 @@ endif
+ 
+ ifndef SDCC_BIN_PATH
+   ifndef CROSSCOMPILING
+-    SDCCFLAGS += --nostdinc -I$(top_srcdir)/device/include/pic14 -I$(top_srcdir)/device/non-free/include/pic14 -I$(top_srcdir)
+-    LINKFLAGS += --nostdlib -L$(top_builddir)/device/lib/build/pic14 -L$(top_builddir)/device/non-free/lib/build/pic14
+-  else
+-    SDCCFLAGS += --use-non-free
++    SDCCFLAGS += --nostdinc -I$(top_srcdir)/device/include/pic14 -I$(top_srcdir)
++    LINKFLAGS += --nostdlib -L$(top_builddir)/device/lib/build/pic14
+   endif
+-else
+-  SDCCFLAGS += --use-non-free
+ endif
+ 
+ ifdef CROSSCOMPILING
+@@ -26,7 +22,6 @@ ifdef CROSSCOMPILING
+ endif
+ 
+ SDCCFLAGS += -mpic14 -pp16f877 --less-pedantic -Wl,-q
+-SDCCFLAGS += --no-warn-non-free
+ LINKFLAGS += libsdcc.lib libm.lib
+ 
+ OBJEXT = .o
+diff --git a/support/regression/ports/pic16/spec.mk b/support/regression/ports/pic16/spec.mk
+index 1f94cde..f1ac726 100644
+--- a/support/regression/ports/pic16/spec.mk
++++ b/support/regression/ports/pic16/spec.mk
+@@ -12,13 +12,9 @@ endif
+ 
+ ifndef SDCC_BIN_PATH
+   ifndef CROSSCOMPILING
+-    SDCCFLAGS += --nostdinc -I$(top_srcdir)/device/include/pic16 -I$(top_srcdir)/device/non-free/include/pic16 -I$(top_srcdir)
+-    LINKFLAGS += --nostdlib -L$(top_builddir)/device/lib/build/pic16 -L$(top_builddir)/device/non-free/lib/build/pic16
+-  else
+-    SDCCFLAGS += --use-non-free
++    SDCCFLAGS += --nostdinc -I$(top_srcdir)/device/include/pic16 -I$(top_srcdir)
++    LINKFLAGS += --nostdlib -L$(top_builddir)/device/lib/build/pic16
+   endif
+-else
+-  SDCCFLAGS += --use-non-free
+ endif
+ 
+ ifdef CROSSCOMPILING
+@@ -27,7 +23,6 @@ endif
+ 
+ SDCCFLAGS += -mpic16 -pp18f452 --less-pedantic -Wl,-q
+ SDCCFLAGS += --no-peep
+-SDCCFLAGS += --no-warn-non-free
+ LINKFLAGS += libsdcc.lib libc18f.lib libm18f.lib
+ 
+ OBJEXT = .o
+diff --git a/support/scripts/cinc2h.pl b/support/scripts/cinc2h.pl
+index 8558135..30d72b7 100755
+--- a/support/scripts/cinc2h.pl
++++ b/support/scripts/cinc2h.pl
+@@ -39,58 +39,10 @@
+ 
+   -------------------------------------------------
+ 
+-  Steps to add a new target device to SDCC/PIC16:
+-  (Following Raphael Neider <rneider AT web.de>)
+-
+-   1. Create the picDEVICE.c and picDEVICE.h from pDEVICE.inc using
+-      ./cinc2h.pl -p 18f4520 -cb -cp -gp "path/to/gputils_source" -o "path/to/output"
+-
+-   2. mv picDEVICE.h $SDCC/device/non-free/include/pic16
+-   3. mv picDEVICE.c $SDCC/device/non-free/lib/pic16/libdev
+-   4. either
+-
+-      (a) adjust $SDCC/device/lib/pic16/libio/*.ignore
+-          if the device does not support ADC, I2C, or USART
+-          --- OR ---
+-      (b) adjust
+-          * SDCC/scripts/pic18fam-h-gen.pl
+-          * SDCC/device/include/pic16/adc.h (if required)
+-          * SDCC/device/include/pic16/usart.h (if required)
+-          * SDCC/device/lib/pic16/libio/*/* (if required)
+-          to add the new device to the appropriate I/O style
+-          and implement new styles (if required).
+-
+-          Having modified pic18fam-h-gen.pl, you need to run the
+-          script to generate pic18fam.h.gen, which in turn must
+-          then replace your .../include/pic16/pic18fam.h to take
+-          effect; see pic18fam-h-gen.pl for usage information.
+-   6. edit $SDCC/device/include/pic16/pic18fregs.h
+-   7. edit $SDCC/device/include/pic16/pic16devices.txt
+-   8. run cd $SDCC/device/non-free/lib/pic16 && sh update.sh
+-      to regenerate .../libdev/Makefile.am and processors.ac
+-
+-   The file format of steps 6 and 7 is self explanatory, in most
+-   if not all cases you can copy and paste another device's records
+-   and adjust them to the newly added device.
+-
+-  -------------------------------------------------
+-
+-  Steps to add a new target device to SDCC/PIC14:
+-
+-   1. Create the picDEVICE.c and picDEVICE.h from pDEVICE.inc using
+-      ./cinc2h.pl -p 16f1503 -cb -cp -gp "path/to/gputils_source" -o "path/to/output"
+-
+-   2. mv picDEVICE.h $SDCC/device/non-free/include/pic14
+-   3. mv picDEVICE.c $SDCC/device/non-free/lib/pic14/libdev
+-   4. add DEVICE to $SDCC/device/non-free/lib/pic14/libdev/devices.txt
+-      (The names of the enhanced devices the "# enhanced cores" line
+-       after follow.)
+-
+-   5. edit $SDCC/device/include/pic14/pic14devices.txt
+-
+-   The file format of step 5 is self explanatory, in most if not all
+-   cases you can copy and paste another device's records and adjust
+-   them to the newly added device.
++  For its inclusion in the SDCC package distributed with GNU Guix
++  (https://guix.gnu.org/) this file has been modified from the
++  original to remove instructions on its use with non-free software
++  and to update the output of the print_license subroutine below.
+ 
+   $Id: cinc2h.pl 9450 2016-01-09 16:47:43Z molnarkaroly $
+ =cut
+@@ -1345,10 +1297,9 @@ sub print_license($)
+  * Microchip header (.inc) and linker script (.lkr) files Microchip
+  * requires that "The header files should state that they are only to be
+  * used with authentic Microchip devices" which makes them incompatible
+- * with the GPL. Pic device libraries and header files are located at
+- * non-free/lib and non-free/include directories respectively.
+- * Sdcc should be run with the --use-non-free command line option in
+- * order to include non-free header files and libraries.
++ * with the GPL. These non-free libraries and header files (and the
++ * build and run-time options that enable their use) are omitted in the
++ * SDCC package distributed with GNU Guix.
+  *
+  * See http://sdcc.sourceforge.net/ for the latest information on sdcc.
+  */
+diff --git a/support/scripts/pic14-header-parser.pl b/support/scripts/pic14-header-parser.pl
+index 4413c25..57c6076 100755
+--- a/support/scripts/pic14-header-parser.pl
++++ b/support/scripts/pic14-header-parser.pl
+@@ -63,9 +63,7 @@ use constant P_SHOW_ONLY_NAME   => 3;
+ 
+ my @default_paths =
+   (
+-  '/usr/share/sdcc/non-free/include',
+   '/usr/share/sdcc/include',
+-  '/usr/local/share/sdcc/non-free/include',
+   '/usr/local/share/sdcc/include'
+   );
+ 
+diff --git a/support/scripts/pic16-header-parser.pl b/support/scripts/pic16-header-parser.pl
+index 6db417a..4b35225 100755
+--- a/support/scripts/pic16-header-parser.pl
++++ b/support/scripts/pic16-header-parser.pl
+@@ -62,9 +62,7 @@ use constant P_SHOW_ONLY_NAME   => 3;
+ 
+ my @default_paths =
+   (
+-  '/usr/share/sdcc/non-free/include',
+   '/usr/share/sdcc/include',
+-  '/usr/local/share/sdcc/non-free/include',
+   '/usr/local/share/sdcc/include'
+   );
+ 
+diff --git a/support/scripts/sdcc.nsi b/support/scripts/sdcc.nsi
+index 68e9035..92e5784 100644
+--- a/support/scripts/sdcc.nsi
++++ b/support/scripts/sdcc.nsi
+@@ -483,11 +483,6 @@ ${Section} "SDCC include files" SEC05
+ 
+   SetOutPath "$INSTDIR\include"
+   File "${DEV_ROOT}\include\*.h"
+-
+-  SetOutPath "$INSTDIR\non-free\include\pic14"
+-  File "${DEV_ROOT}\non-free\include\pic14\*.h"
+-  SetOutPath "$INSTDIR\non-free\include\pic16"
+-  File "${DEV_ROOT}\non-free\include\pic16\*.h"
+ ${SectionEnd}
+ 
+ ${Section} "SDCC DS390 library" SEC06
+@@ -585,18 +580,12 @@ ${Section} "SDCC PIC16 library" SEC21
+   SetOutPath "$INSTDIR\lib\pic16"
+   File "${DEV_ROOT}\lib\pic16\*.o"
+   File "${DEV_ROOT}\lib\pic16\*.lib"
+-
+-  SetOutPath "$INSTDIR\non-free\lib\pic16"
+-  File "${DEV_ROOT}\non-free\lib\pic16\*.lib"
+ ${SectionEnd}
+ 
+ ${Section} "SDCC PIC14 library" SEC22
+   SectionIn 1 2
+   SetOutPath "$INSTDIR\lib\pic14"
+   File "${DEV_ROOT}\lib\pic14\*.lib"
+-
+-  SetOutPath "$INSTDIR\non-free\lib\pic14"
+-  File "${DEV_ROOT}\non-free\lib\pic14\*.lib"
+ ${SectionEnd}
+ 
+ ${Section} "SDCC STM8 small model library" SEC23
+@@ -697,10 +686,6 @@ ${Section} "SDCC library sources" SEC25
+   File "${DEV_ROOT}\lib\src\pic14\libsdcc\enhanced\*.inc"
+ #  File "${DEV_ROOT}\lib\src\pic14\libsdcc\Makefile"
+ 
+-  SetOutPath "$INSTDIR\non-free\lib\src\pic14\libdev"
+-  File "${DEV_ROOT}\non-free\lib\src\pic14\libdev\*.c"
+-#  File "${DEV_ROOT}\non-free\lib\src\pic14\libdev\Makefile"
+-
+   SetOutPath "$INSTDIR\lib\src\pic14\libm"
+ #  File "${DEV_ROOT}\lib\src\pic14\libm\*.c"
+ 
+@@ -752,10 +737,6 @@ ${Section} "SDCC library sources" SEC25
+   File "${DEV_ROOT}\lib\src\pic16\libc\utils\*.S"
+ #  File "${DEV_ROOT}\lib\src\pic16\libc\utils\Makefile"
+ 
+-  SetOutPath "$INSTDIR\non-free\lib\src\pic16\libdev"
+-  File "${DEV_ROOT}\non-free\lib\src\pic16\libdev\*.c"
+-#  File "${DEV_ROOT}\non-free\lib\src\pic16\libdev\Makefile"
+-
+   SetOutPath "$INSTDIR\lib\src\pic16\libio"
+   File "${DEV_ROOT}\lib\src\pic16\libio\*.ignore"
+ #  File "${DEV_ROOT}\lib\src\pic16\libio\Makefile"
+@@ -1074,13 +1055,9 @@ ${Section} Uninstall SECUNINSTALL
+ 
+   Delete "$INSTDIR\lib\pic14\*.lib"
+ 
+-  Delete "$INSTDIR\non-free\lib\pic14\*.lib"
+-
+   Delete "$INSTDIR\lib\pic16\*.o"
+   Delete "$INSTDIR\lib\pic16\*.lib"
+ 
+-  Delete "$INSTDIR\non-free\lib\pic16\*.lib"
+-
+   Delete "$INSTDIR\lib\hc08\*.lib"
+ 
+   Delete "$INSTDIR\lib\s08\*.lib"
+@@ -1144,9 +1121,7 @@ ${Section} Uninstall SECUNINSTALL
+   Delete "$INSTDIR\include\pic14\*.h"
+   Delete "$INSTDIR\include\pic14\*.txt"
+   Delete "$INSTDIR\include\pic14\*.inc"
+-  Delete "$INSTDIR\non-free\include\pic14\*.h"
+   Delete "$INSTDIR\include\pic16\*.h"
+-  Delete "$INSTDIR\non-free\include\pic16\*.h"
+   Delete "$INSTDIR\include\pic16\*.txt"
+   Delete "$INSTDIR\include\mcs51\*.h"
+   Delete "$INSTDIR\include\hc08\*.h"
+@@ -1208,9 +1183,7 @@ ${Section} Uninstall SECUNINSTALL
+   Delete "$INSTDIR\uninstall.exe"
+ 
+   RMDir /r "$INSTDIR\lib\src\pic14"
+-  RMDir /r "$INSTDIR\non-free\lib\src\pic14"
+   RMDir /r "$INSTDIR\lib\src\pic16"
+-  RMDir /r "$INSTDIR\non-free\lib\src\pic16"
+   RMDir "$INSTDIR\lib\src\small"
+   RMDir "$INSTDIR\lib\src\medium"
+   RMDir "$INSTDIR\lib\src\large"
+@@ -1233,12 +1206,9 @@ ${Section} Uninstall SECUNINSTALL
+   RMDir "$INSTDIR\lib\src\pdk15"
+   RMDir "$INSTDIR\lib\src\pdk15-stack-auto"
+   RMDir "$INSTDIR\lib\src"
+-  RMDir "$INSTDIR\non-free\lib\src"
+ 
+   RMDir "$INSTDIR\lib\pic14"
+-  RMDir "$INSTDIR\non-free\lib\pic14"
+   RMDir "$INSTDIR\lib\pic16"
+-  RMDir "$INSTDIR\non-free\lib\pic16"
+   RMDir "$INSTDIR\lib\z80"
+   RMDir "$INSTDIR\lib\z180"
+   RMDir "$INSTDIR\lib\r2k"
+@@ -1261,7 +1231,6 @@ ${Section} Uninstall SECUNINSTALL
+   RMDir "$INSTDIR\lib\pdk15"
+   RMDir "$INSTDIR\lib\pdk15-stack-auto"
+   RMDir "$INSTDIR\lib"
+-  RMDir "$INSTDIR\non-free\lib"
+ 
+   RMDir "$INSTDIR\include\asm\z80"
+   RMDir "$INSTDIR\include\asm\z180"
+@@ -1269,9 +1238,7 @@ ${Section} Uninstall SECUNINSTALL
+   RMDir "$INSTDIR\include\asm\r3ka"
+   RMDir "$INSTDIR\include\asm\ez80_z80"
+   RMDir "$INSTDIR\include\asm\pic16"
+-  RMDir "$INSTDIR\non-free\include\asm\pic16"
+   RMDir "$INSTDIR\include\asm\pic14"
+-  RMDir "$INSTDIR\non-free\include\asm\pic14"
+   RMDir "$INSTDIR\include\asm\mcs51"
+   RMDir "$INSTDIR\include\asm\gbz80"
+   RMDir "$INSTDIR\include\asm\ds390"
+@@ -1280,17 +1247,12 @@ ${Section} Uninstall SECUNINSTALL
+   RMDir "$INSTDIR\include\asm"
+   RMDir "$INSTDIR\include\z180"
+   RMDir "$INSTDIR\include\pic14"
+-  RMDir "$INSTDIR\non-free\include\pic14"
+   RMDir "$INSTDIR\include\pic16"
+-  RMDir "$INSTDIR\non-free\include\pic16"
+   RMDir "$INSTDIR\include\mcs51"
+   RMDir "$INSTDIR\include\hc08"
+   RMDir "$INSTDIR\include\ds400"
+   RMDir "$INSTDIR\include\ds390"
+   RMDir "$INSTDIR\include"
+-  RMDir "$INSTDIR\non-free\include"
+-
+-  RMDir "$INSTDIR\non-free"
+ 
+ !ifdef FULL_DOC
+   RMDir /r "$INSTDIR\doc"
+diff --git a/support/scripts/sdcc_cygwin_mingw32 b/support/scripts/sdcc_cygwin_mingw32
+index 5575663..2588d4f 100755
+--- a/support/scripts/sdcc_cygwin_mingw32
++++ b/support/scripts/sdcc_cygwin_mingw32
+@@ -6,9 +6,7 @@
+ --datarootdir="/sdcc" \
+ docdir="\${datarootdir}/doc" \
+ include_dir_suffix="include" \
+-non_free_include_dir_suffix="non-free/include" \
+ lib_dir_suffix="lib" \
+-non_free_lib_dir_suffix="non-free/lib" \
+ sdccconf_h_dir_separator="\\\\" \
+ CC="gcc -mno-cygwin" \
+ CXX="g++ -mno-cygwin"
+diff --git a/support/scripts/sdcc_mingw32 b/support/scripts/sdcc_mingw32
+index 96e3280..050761e 100755
+--- a/support/scripts/sdcc_mingw32
++++ b/support/scripts/sdcc_mingw32
+@@ -19,9 +19,7 @@ export SDCCCONFIGUREFLAGS=" \
+ --datarootdir=/sdcc \
+ docdir=\${datarootdir}/doc \
+ include_dir_suffix=include \
+-non_free_include_dir_suffix=non-free/include \
+ lib_dir_suffix=lib \
+-non_free_lib_dir_suffix=non-free/lib \
+ sdccconf_h_dir_separator=\\\\ \
+ --disable-device-lib \
+ --host=i586-mingw32msvc --build=unknown-unknown-linux-gnu"
diff --git a/gnu/packages/patches/seed-webkit.patch b/gnu/packages/patches/seed-webkit.patch
new file mode 100644
index 0000000000..55f15af12f
--- /dev/null
+++ b/gnu/packages/patches/seed-webkit.patch
@@ -0,0 +1,49 @@
+From 6d512b5c4d774a9853b51dae464a10cea7e3423a Mon Sep 17 00:00:00 2001
+From: Peter Rustler <peter.rustler@basyskom.com>
+Date: Mon, 7 Dec 2015 11:40:05 +0000
+Subject: [PATCH] Add support for new webkit version 4.0 to build system
+
+Add new configure value for option --with-webkit.
+Now you can add 4.0 as value to --with-webkit.
+Default is still 3.0.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=759171
+---
+ configure.ac | 10 ++++++++--
+ 1 file changed, 8 insertions(+), 2 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 2313c093..3d5d4823 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -77,12 +77,12 @@ dnl ==============================WebKit=======================================
+ m4_define([webkit_default], [3.0])
+ 
+ AC_ARG_WITH([webkit],
+-            [AC_HELP_STRING([--with-webkit=@<:@3.0/1.0@:>@],
++            [AC_HELP_STRING([--with-webkit=@<:@4.0/3.0/1.0@:>@],
+                             [Select the Webkit backend, default=3.0])],
+ 	    [],
+             [with_webkit=webkit_default])
+ 
+-dnl=== support both 1.0 and 3.0 (default 3.0) ==
++dnl=== support all 1.0, 3.0 and 4.0 (default 3.0) ==
+ AS_CASE([$with_webkit],
+ 	[3.0], [
+ 		WEBKIT_PC=webkitgtk-3.0
+@@ -90,6 +90,12 @@ AS_CASE([$with_webkit],
+ 		AC_CHECK_LIB(webkitgtk-3.0, JSContextGroupCreate,,
+ 	                AC_CHECK_LIB(javascriptcoregtk-3.0, JSContextGroupCreate,WEBKIT_PC=javascriptcoregtk-3.0)) 
+ 	],
++	[4.0], [
++		WEBKIT_PC=webkitgtk-4.0
++		SEED_GTK_VERSION=-gtk4
++		AC_CHECK_LIB(webkitgtk-4.0, JSContextGroupCreate,,
++	                AC_CHECK_LIB(javascriptcoregtk-4.0, JSContextGroupCreate,WEBKIT_PC=javascriptcoregtk-4.0))
++	],
+ 	[1.0], [
+ 		AC_CHECK_LIB(webkitgtk-1.0, JSContextGroupCreate,WEBKIT_PC=webkitgtk-1.0,
+ 	                AC_CHECK_LIB(javascriptcoregtk-1.0, JSContextGroupCreate,WEBKIT_PC=javascriptcoregtk-1.0, 
+-- 
+GitLab
+
diff --git a/gnu/packages/patches/serf-python3.patch b/gnu/packages/patches/serf-python3.patch
new file mode 100644
index 0000000000..636f51ed1e
--- /dev/null
+++ b/gnu/packages/patches/serf-python3.patch
@@ -0,0 +1,29 @@
+Fix build with Python 3 scons.
+
+Patch taken from Arch Linux:
+https://github.com/archlinux/svntogit-packages/blob/packages/serf/trunk/scons-python3.patch
+
+--- serf-1.3.9/SConstruct.orig	2019-07-26 17:49:30.910189251 +0000
++++ serf-1.3.9/SConstruct	2019-07-26 17:49:54.073821735 +0000
+@@ -163,9 +163,9 @@
+               suffix='.def', src_suffix='.h')
+   })
+ 
+-match = re.search('SERF_MAJOR_VERSION ([0-9]+).*'
+-                  'SERF_MINOR_VERSION ([0-9]+).*'
+-                  'SERF_PATCH_VERSION ([0-9]+)',
++match = re.search(b'SERF_MAJOR_VERSION ([0-9]+).*'
++                  b'SERF_MINOR_VERSION ([0-9]+).*'
++                  b'SERF_PATCH_VERSION ([0-9]+)',
+                   env.File('serf.h').get_contents(),
+                   re.DOTALL)
+ MAJOR, MINOR, PATCH = [int(x) for x in match.groups()]
+@@ -183,7 +183,7 @@
+ 
+ unknown = opts.UnknownVariables()
+ if unknown:
+-  print 'Warning: Used unknown variables:', ', '.join(unknown.keys())
++  print ('Warning: Used unknown variables:', ', '.join(unknown.keys()))
+ 
+ apr = str(env['APR'])
+ apu = str(env['APU'])
diff --git a/gnu/packages/patches/shakespeare-spl-fix-grammar.patch b/gnu/packages/patches/shakespeare-spl-fix-grammar.patch
new file mode 100644
index 0000000000..737c0eb8c1
--- /dev/null
+++ b/gnu/packages/patches/shakespeare-spl-fix-grammar.patch
@@ -0,0 +1,16 @@
+ROMAN_HUNDREDS, ROMAN_TENS and ROMAN_ONES seem to use syntax, that is not
+recognized (any longer?) by flex, so let's expand their definitions.
+
+Index: spl-1.2.1/include/roman_numbers.metaflex
+===================================================================
+--- spl-1.2.1.orig/include/roman_numbers.metaflex
++++ spl-1.2.1/include/roman_numbers.metaflex
+@@ -1,5 +1,5 @@
+ ROMAN_THOUSANDS m+
+-ROMAN_HUNDREDS  (c(d|m)|dc{0,3}|c{1,3})
+-ROMAN_TENS      (x(l|c)|lx{0,3}|x{1,3})
+-ROMAN_ONES      (i(v|x)|vi{0,3}|i{1,3})
++ROMAN_HUNDREDS  (c(d|m|c?c?)|dc?c?c?)
++ROMAN_TENS      (x(l|c|x?x?)|lx?x?x?)
++ROMAN_ONES      (i(v|x|i?i?)|vi?i?i?)
+ ROMAN_NUMBER    {ROMAN_ONES}|{ROMAN_TENS}{ROMAN_ONES}?|{ROMAN_HUNDREDS}{ROMAN_TENS}?{ROMAN_ONES}?|{ROMAN_THOUSANDS}{ROMAN_HUNDREDS}?{ROMAN_TENS}?{ROMAN_ONES}?
diff --git a/gnu/packages/patches/smalltalk-multiplication-overflow.patch b/gnu/packages/patches/smalltalk-multiplication-overflow.patch
new file mode 100644
index 0000000000..7a0b4d02f7
--- /dev/null
+++ b/gnu/packages/patches/smalltalk-multiplication-overflow.patch
@@ -0,0 +1,121 @@
+Extracted from this commit without the ChangeLog to avoid conflicts:
+http://git.savannah.gnu.org/cgit/smalltalk.git/commit/?id=72ada189aba0283c551ead16635c1983968080b8
+
+The upstream commit message is
+From 72ada189aba0283c551ead16635c1983968080b8 Mon Sep 17 00:00:00 2001
+From: Holger Hans Peter Freyther <holger@moiji-mobile.com>
+Date: Sat, 7 Nov 2015 18:09:31 +0100
+Subject: libgst: Add alternative multiplication overflow check
+
+Apple clang on OSX and the version on FreeBSD optimize the
+multiplication check away. Clang introduced a family of
+builtins to do the multiplication and check for the overflow
+and GCC made the API usable. For clang we would need to know
+if intptr_t is of type int, long int, long long int and
+then use the smul, smull smulll.
+Luckily clang is adopting the better interface and this is
+what we are starting to use now. This means the new code
+will be used on GCC5 (and later) and some future versions of
+clang.
+
+2015-11-07  Holger Hans Peter Freyther  <holger@freyther.de>
+
+	* build-aux/overflow-builtins.m4: Add new macro.
+	* configure.ac: Use GST_C_OVERFLOW_BUILTINS macro.
+
+2015-11-07  Holger Hans Peter Freyther  <holger@freyther.de>
+
+	* interp.inl: Add alternative mul_with_check implementation.
+---
+ ChangeLog                      |  5 +++++
+ build-aux/overflow-builtins.m4 | 23 +++++++++++++++++++++++
+ configure.ac                   |  1 +
+ libgst/ChangeLog               |  4 ++++
+ libgst/interp.inl              | 22 ++++++++++++++++++++++
+ 5 files changed, 55 insertions(+)
+ create mode 100644 build-aux/overflow-builtins.m4
+
+diff --git a/build-aux/overflow-builtins.m4 b/build-aux/overflow-builtins.m4
+new file mode 100644
+index 00000000..9d050196
+--- /dev/null
++++ b/build-aux/overflow-builtins.m4
+@@ -0,0 +1,23 @@
++dnl Check whether the host supports synchronization builtins.
++
++AC_DEFUN([GST_C_OVERFLOW_BUILTINS], [
++  AC_REQUIRE([AC_CANONICAL_HOST])
++  AC_CACHE_CHECK([whether the host supports __builtin_mul_overflow],
++                 gst_cv_have_builtin_mul_overflow, [
++    save_CFLAGS="$CFLAGS"
++    case $host in
++      i?86-apple-darwin*) ;;
++      i?86-*-*) CFLAGS="$CFLAGS -march=i486" ;;
++    esac
++    AC_LINK_IFELSE([AC_LANG_PROGRAM([[int foovar = 0;]], [[
++if (__builtin_mul_overflow(44444, 55555, &foovar))
++	return 23;]])],
++		   [gst_cv_have_builtin_mul_overflow=yes],
++		   [gst_cv_have_builtin_mul_overflow=no])
++    CFLAGS="$save_CFLAGS"
++  ])
++  if test $gst_cv_have_builtin_mul_overflow = yes; then
++    AC_DEFINE(HAVE_OVERFLOW_BUILTINS, 1,
++              [Define to 1 if the host supports __builtin_*_overflow builtins])
++  fi
++])
+diff --git a/configure.ac b/configure.ac
+index e789be45..0bac23ef 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -243,6 +243,7 @@ GST_C_SYNC_BUILTINS
+ if test $gst_cv_have_sync_fetch_and_add = no; then
+   AC_MSG_ERROR([Synchronization primitives not found, please use a newer compiler.])
+ fi
++GST_C_OVERFLOW_BUILTINS
+ 
+ GST_LOCK
+ AC_SYS_LARGEFILE
+diff --git a/libgst/interp.inl b/libgst/interp.inl
+index e18e27c7..dbc631bc 100644
+--- a/libgst/interp.inl
++++ b/libgst/interp.inl
+@@ -159,6 +159,27 @@ sub_with_check (OOP op1, OOP op2, mst_Boolean *overflow)
+ OOP
+ mul_with_check (OOP op1, OOP op2, mst_Boolean *overflow)
+ {
++#ifdef HAVE_OVERFLOW_BUILTINS
++  intptr_t a = TO_INT (op1);
++  intptr_t b = TO_INT (op2);
++  intptr_t result;
++
++  if (__builtin_mul_overflow(a, b, &result))
++    {
++       *overflow = true;
++       return FROM_INT(0);
++    }
++
++
++  if (result < MIN_ST_INT || result > MAX_ST_INT)
++    {
++       *overflow = true;
++       return FROM_INT(0);
++    }
++
++  *overflow = false;
++  return FROM_INT(result);
++#else
+   intptr_t a = TO_INT (op1);
+   intptr_t b = TO_INT (op2);
+   intmax_t result = (intmax_t)a * b;
+@@ -188,6 +209,7 @@ mul_with_check (OOP op1, OOP op2, mst_Boolean *overflow)
+     }
+ 
+   return FROM_INT (0);
++#endif
+ }
+ 
+ /* State of the random generator.
+-- 
+2.29.2
+
diff --git a/gnu/packages/patches/sooperlooper-build-with-wx-30.patch b/gnu/packages/patches/sooperlooper-build-with-wx-30.patch
deleted file mode 100644
index 43f4b9be69..0000000000
--- a/gnu/packages/patches/sooperlooper-build-with-wx-30.patch
+++ /dev/null
@@ -1,179 +0,0 @@
-Downloaded from https://anonscm.debian.org/cgit/pkg-multimedia/sooperlooper.git/plain/debian/patches/04-build_with_wx_30.patch -O gnu/packages/patches/sooperlooper-build-with-wx-30.patch
-
-Author: Jaromír Mikeš <mira.mikes@seznam.cz>, Olly Betts <olly@survex.com>
-Description: build against wx 3.0.
-Forwarded: yes
-
-Index: sooperlooper/src/gui/main_panel.cpp
-===================================================================
---- sooperlooper.orig/src/gui/main_panel.cpp
-+++ sooperlooper/src/gui/main_panel.cpp
-@@ -448,7 +448,7 @@ MainPanel::init_loopers (int count)
- 		while (count < (int)_looper_panels.size()) {
- 			looperpan = _looper_panels.back();
- 			_looper_panels.pop_back();
--			_main_sizer->Remove(looperpan);
-+			_main_sizer->Detach(looperpan);
- 			looperpan->Destroy();
- 		}
- 	}
-@@ -1277,7 +1277,7 @@ void MainPanel::misc_action (bool releas
- 		}
- 
- 
--		wxString filename = do_file_selector (wxT("Choose file to save loop"), wxT("wav"), wxT("WAVE files (*.wav)|*.wav;*.WAV;*.Wav"),  wxSAVE|wxCHANGE_DIR|wxOVERWRITE_PROMPT);
-+		wxString filename = do_file_selector (wxT("Choose file to save loop"), wxT("wav"), wxT("WAVE files (*.wav)|*.wav;*.WAV;*.Wav"),  wxFD_SAVE|wxFD_CHANGE_DIR|wxFD_OVERWRITE_PROMPT);
- 		
- 		if ( !filename.empty() )
- 		{
-@@ -1296,7 +1296,7 @@ void MainPanel::misc_action (bool releas
- 			index = 0;
- 		}
- 
--		wxString filename = do_file_selector (wxT("Choose file to open"), wxT(""), wxT("*.slsess"), wxOPEN|wxCHANGE_DIR);
-+		wxString filename = do_file_selector (wxT("Choose file to open"), wxT(""), wxT("*.slsess"), wxFD_OPEN|wxFD_CHANGE_DIR);
- 		
- 		if ( !filename.empty() )
- 		{
-@@ -1408,7 +1408,7 @@ void MainPanel::set_curr_loop (int index
- 
- void MainPanel::do_load_session ()
- {
--	wxString filename = do_file_selector (wxT("Choose session to load"), wxT("*.slsess"), wxT("*.slsess"), wxOPEN|wxCHANGE_DIR);
-+	wxString filename = do_file_selector (wxT("Choose session to load"), wxT("*.slsess"), wxT("*.slsess"), wxFD_OPEN|wxFD_CHANGE_DIR);
- 	
- 	if ( !filename.empty() )
- 	{
-@@ -1419,7 +1419,7 @@ void MainPanel::do_load_session ()
- 
- void MainPanel::do_save_session (bool write_audio)
- {
--	wxString filename = do_file_selector (wxT("Choose file to save session"), wxT("slsess"), wxT("*.slsess"), wxSAVE|wxCHANGE_DIR|wxOVERWRITE_PROMPT);
-+	wxString filename = do_file_selector (wxT("Choose file to save session"), wxT("slsess"), wxT("*.slsess"), wxFD_SAVE|wxFD_CHANGE_DIR|wxFD_OVERWRITE_PROMPT);
- 	
- 	if ( !filename.empty() )
- 	{
-Index: sooperlooper/src/gui/pix_button.cpp
-===================================================================
---- sooperlooper.orig/src/gui/pix_button.cpp
-+++ sooperlooper/src/gui/pix_button.cpp
-@@ -250,7 +250,7 @@ PixButton::OnMouseEvents (wxMouseEvent &
- 		pt.x += bounds.x;
- 		pt.y += bounds.y;
- 
--		if (bounds.Inside(pt)) {
-+		if (bounds.Contains(pt)) {
- 			clicked (get_mouse_button(ev)); // emit
- 
- 			if (ev.MiddleUp() && ev.ControlDown()) {
-Index: sooperlooper/src/gui/looper_panel.cpp
-===================================================================
---- sooperlooper.orig/src/gui/looper_panel.cpp
-+++ sooperlooper/src/gui/looper_panel.cpp
-@@ -1428,7 +1428,7 @@ LooperPanel::clicked_events (int button,
- 	if (cmd == wxT("save"))
- 	{
- 		wxString filename = _mainpanel->do_file_selector (wxT("Choose file to save loop"),
--											      wxT("wav"), wxT("WAVE files (*.wav)|*.wav;*.WAV;*.Wav"),  wxSAVE|wxCHANGE_DIR|wxOVERWRITE_PROMPT);
-+											      wxT("wav"), wxT("WAVE files (*.wav)|*.wav;*.WAV;*.Wav"),  wxFD_SAVE|wxFD_CHANGE_DIR|wxFD_OVERWRITE_PROMPT);
- 		
- 		if ( !filename.empty() )
- 		{
-@@ -1442,7 +1442,7 @@ LooperPanel::clicked_events (int button,
- 	}
- 	else if (cmd == wxT("load"))
- 	{
--		wxString filename = _mainpanel->do_file_selector(wxT("Choose file to open"), wxT(""), wxT("Audio files (*.wav,*.aif)|*.wav;*.WAV;*.Wav;*.aif;*.aiff;*.AIF;*.AIFF|All files (*.*)|*.*"), wxOPEN|wxCHANGE_DIR);
-+		wxString filename = _mainpanel->do_file_selector(wxT("Choose file to open"), wxT(""), wxT("Audio files (*.wav,*.aif)|*.wav;*.WAV;*.Wav;*.aif;*.aiff;*.AIF;*.AIFF|All files (*.*)|*.*"), wxFD_OPEN|wxFD_CHANGE_DIR);
- 		
- 		if ( !filename.empty() )
- 		{
-Index: sooperlooper/src/gui/keyboard_target.cpp
-===================================================================
---- sooperlooper.orig/src/gui/keyboard_target.cpp
-+++ sooperlooper/src/gui/keyboard_target.cpp
-@@ -553,10 +553,10 @@ KeyboardTarget::keycode_from_name (const
-                         keycode = WXK_RETURN;
-                     }
-                     else if ( keyname == wxT("PGUP") ) {
--                        keycode = WXK_PRIOR;
-+                        keycode = WXK_PAGEUP;
-                     }
-                     else if ( keyname == wxT("PGDN") ) {
--                        keycode = WXK_NEXT;
-+                        keycode = WXK_PAGEDOWN;
-                     }
-                     else if ( keyname == wxT("LEFT") ) {
-                         keycode = WXK_LEFT;
-@@ -630,10 +630,10 @@ wxString KeyboardTarget::name_from_keyco
- 	case WXK_RETURN:
- 		text += wxT("return");
- 		break;
--	case WXK_PRIOR:
-+	case WXK_PAGEUP:
- 		text += wxT("pageup");
- 		break;
--	case WXK_NEXT:
-+	case WXK_PAGEDOWN:
- 		text += wxT("pagedown");
- 		break;
- 	case WXK_LEFT:
-Index: sooperlooper/src/gui/check_box.cpp
-===================================================================
---- sooperlooper.orig/src/gui/check_box.cpp
-+++ sooperlooper/src/gui/check_box.cpp
-@@ -237,7 +237,7 @@ CheckBox::OnMouseEvents (wxMouseEvent &e
- 	}
- 	else if (ev.LeftUp())
- 	{
--		if (bounds.Inside(ev.GetPosition())) {
-+		if (bounds.Contains(ev.GetPosition())) {
- 			// toggle value
- 			_value = !_value;
- 		
-Index: sooperlooper/src/gui/midi_bind_panel.cpp
-===================================================================
---- sooperlooper.orig/src/gui/midi_bind_panel.cpp
-+++ sooperlooper/src/gui/midi_bind_panel.cpp
-@@ -880,7 +880,7 @@ void MidiBindPanel::on_button (wxCommand
- 	}
- 	else if (ev.GetId() == ID_LoadButton)
- 	{
--		wxString filename = _parent->do_file_selector(wxT("Choose midi binding file to open"), wxT(""), wxT("*.slb"), wxOPEN|wxCHANGE_DIR);
-+		wxString filename = _parent->do_file_selector(wxT("Choose midi binding file to open"), wxT(""), wxT("*.slb"), wxFD_OPEN|wxFD_CHANGE_DIR);
- 		if ( !filename.empty() )
- 		{
- 			_parent->get_loop_control().load_midi_bindings(filename,  _append_check->GetValue());
-@@ -888,7 +888,7 @@ void MidiBindPanel::on_button (wxCommand
- 	}
- 	else if (ev.GetId() == ID_SaveButton)
- 	{
--		wxString filename = _parent->do_file_selector(wxT("Choose midi binding file to save"), wxT(""), wxT("*.slb"), wxSAVE|wxCHANGE_DIR|wxOVERWRITE_PROMPT);
-+		wxString filename = _parent->do_file_selector(wxT("Choose midi binding file to save"), wxT(""), wxT("*.slb"), wxFD_SAVE|wxFD_CHANGE_DIR|wxFD_OVERWRITE_PROMPT);
- 
- 		if ( !filename.empty() )
- 		{
-Index: sooperlooper/src/gui/config_panel.cpp
-===================================================================
---- sooperlooper.orig/src/gui/config_panel.cpp
-+++ sooperlooper/src/gui/config_panel.cpp
-@@ -378,7 +378,7 @@ void ConfigPanel::on_button (wxCommandEv
- 	else if (ev.GetId() == ID_MidiBrowseButton) {
- 		
- 		_parent->get_keyboard().set_enabled(false);
--		wxString filename = _parent->do_file_selector(wxT("Choose midi binding file to use"), wxT(""), wxT("*.slb"), wxOPEN|wxCHANGE_DIR);
-+		wxString filename = _parent->do_file_selector(wxT("Choose midi binding file to use"), wxT(""), wxT("*.slb"), wxFD_OPEN|wxFD_CHANGE_DIR);
- 		_parent->get_keyboard().set_enabled(true);
- 		
- 		if ( !filename.empty() )
-@@ -389,8 +389,8 @@ void ConfigPanel::on_button (wxCommandEv
- 	else if (ev.GetId() == ID_SessionBrowseButton) {
- 		
- 		_parent->get_keyboard().set_enabled(false);
--		wxString filename = _parent->do_file_selector(wxT("Choose session file to use"), wxT(""), wxT("*.slsess"), wxOPEN|wxCHANGE_DIR);
--		//wxString filename = wxFileSelector(wxT("Choose session file to use"), wxT(""), wxT(""), wxT(""), wxT("*.slsess"), wxOPEN|wxCHANGE_DIR);
-+		wxString filename = _parent->do_file_selector(wxT("Choose session file to use"), wxT(""), wxT("*.slsess"), wxFD_OPEN|wxFD_CHANGE_DIR);
-+		//wxString filename = wxFileSelector(wxT("Choose session file to use"), wxT(""), wxT(""), wxT(""), wxT("*.slsess"), wxFD_OPEN|wxFD_CHANGE_DIR);
- 		_parent->get_keyboard().set_enabled(true);
- 		
- 		if ( !filename.empty() )
diff --git a/gnu/packages/patches/sssd-system-directories.patch b/gnu/packages/patches/sssd-system-directories.patch
new file mode 100644
index 0000000000..f2ab0182e1
--- /dev/null
+++ b/gnu/packages/patches/sssd-system-directories.patch
@@ -0,0 +1,56 @@
+Do not attempt to create $localstatedir and $sysconfdir (i.e., /var and /etc)
+upon "make install".
+
+diff --git a/Makefile.in b/Makefile.in
+index c32cb7d..77a5c00 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -7991,7 +7991,7 @@ sssdconfdir = $(sysconfdir)/sssd
+ sssddatadir = $(datadir)/sssd
+ sssdapiplugindir = $(sssddatadir)/sssd.api.d
+ sssdtapscriptdir = $(sssddatadir)/systemtap
+-dbuspolicydir = $(sysconfdir)/dbus-1/system.d
++dbuspolicydir = $(prefix)/etc/dbus-1/system.d
+ dbusservicedir = $(datadir)/dbus-1/system-services
+ sss_statedir = $(localstatedir)/lib/sss
+ pamlibdir = @pammoddir@
+@@ -8000,7 +8000,7 @@ nfslibdir = @nfsidmaplibdir@
+ keytabdir = $(sss_statedir)/keytabs
+ pkgconfigdir = $(libdir)/pkgconfig
+ sudolibdir = @sudolibpath@
+-pamconfdir = $(sysconfdir)/pam.d
++pamconfdir = $(prefix)/etc/pam.d
+ systemtap_tapdir = @tapset_dir@
+ sssdkcmdatadir = $(datadir)/sssd-kcm
+ deskprofilepath = $(sss_statedir)/deskprofile
+@@ -43733,7 +43733,6 @@ installsssddirs::
+     $(DESTDIR)$(bindir) \
+     $(DESTDIR)$(sbindir) \
+     $(DESTDIR)$(mandir) \
+-    $(DESTDIR)$(pidpath) \
+     $(DESTDIR)$(pluginpath) \
+     $(DESTDIR)$(libdir)/ldb \
+     $(DESTDIR)$(dbuspolicydir) \
+@@ -43743,22 +43742,9 @@ installsssddirs::
+     $(DESTDIR)$(sssddatadir) \
+     $(DESTDIR)$(sudolibdir) \
+     $(DESTDIR)$(autofslibdir) \
+-    $(DESTDIR)$(pipepath)/private \
+-    $(SSSD_USER_DIRS) \
+     $(NULL);
+ @SSSD_USER_TRUE@	-chown $(SSSD_USER):$(SSSD_USER) $(SSSD_USER_DIRS)
+ @SSSD_USER_TRUE@	-chown $(SSSD_USER) $(DESTDIR)$(pipepath)/private
+-	$(INSTALL) -d -m 0700 $(DESTDIR)$(dbpath) $(DESTDIR)$(logpath) \
+-	    $(DESTDIR)$(keytabdir) \
+-	    $(NULL)
+-	$(INSTALL) -d -m 0750 $(DESTDIR)$(pipepath)/private
+-	$(INSTALL) -d -m 0755 $(DESTDIR)$(mcpath) $(DESTDIR)$(pipepath) \
+-            $(DESTDIR)$(pubconfpath) \
+-            $(DESTDIR)$(pubconfpath)/krb5.include.d $(DESTDIR)$(gpocachepath)
+-	$(INSTALL) -d -m 0711 $(DESTDIR)$(sssdconfdir) \
+-                          $(DESTDIR)$(sssdconfdir)/conf.d \
+-                          $(DESTDIR)$(sssdconfdir)/pki
+-@BUILD_SECRETS_TRUE@	$(MKDIR_P) $(DESTDIR)$(secdbpath)
+ 
+ @HAVE_DOXYGEN_TRUE@docs:
+ @HAVE_DOXYGEN_TRUE@	$(DOXYGEN) src/doxy.config
diff --git a/gnu/packages/patches/sunxi-tools-remove-sys-io.patch b/gnu/packages/patches/sunxi-tools-remove-sys-io.patch
new file mode 100644
index 0000000000..fc1e5ea28d
--- /dev/null
+++ b/gnu/packages/patches/sunxi-tools-remove-sys-io.patch
@@ -0,0 +1,52 @@
+From 783cbd59fcf086a9aaf603271823fb4ca71f0c55 Mon Sep 17 00:00:00 2001
+From: Danny Milosavljevic <dannym@scratchpost.org>
+Date: Thu, 8 Oct 2020 23:01:05 +0200
+Subject: [PATCH] meminfo: Replace sys/io.h by direct register accesses.
+See: https://github.com/linux-sunxi/sunxi-tools/pull/144
+
+Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org>
+---
+ meminfo.c | 9 ++++-----
+ 1 file changed, 4 insertions(+), 5 deletions(-)
+
+diff --git a/meminfo.c b/meminfo.c
+index 0b0ff23..3b3a5df 100644
+--- a/meminfo.c
++++ b/meminfo.c
+@@ -22,7 +22,6 @@
+ #include <sys/mman.h>
+ #include <stdint.h>
+ #include <errno.h>
+-#include <sys/io.h>
+ #include <stdbool.h>
+ 
+ #include "common.h"
+@@ -74,24 +73,24 @@ static enum sunxi_soc_version soc_version;
+ unsigned int
+ sunxi_io_read(void *base, int offset)
+ {
+-	return inl((unsigned long) (base + offset));
++	return *(volatile unsigned int*) (base + offset);
+ }
+ 
+ void
+ sunxi_io_write(void *base, int offset, unsigned int value)
+ {
+-	outl(value, (unsigned long) (base + offset));
++	*(volatile unsigned int*) (base + offset) = value;
+ }
+ 
+ void
+ sunxi_io_mask(void *base, int offset, unsigned int value, unsigned int mask)
+ {
+-	unsigned int tmp = inl((unsigned long) (base + offset));
++	unsigned int tmp = sunxi_io_read(base, offset);
+ 
+ 	tmp &= ~mask;
+ 	tmp |= value & mask;
+ 
+-	outl(tmp, (unsigned long) (base + offset));
++	sunxi_io_write(base, offset, tmp);
+ }
+ 
+ 
diff --git a/gnu/packages/patches/superlu-dist-awpm-grid.patch b/gnu/packages/patches/superlu-dist-awpm-grid.patch
index d6cb8e521d..42d1683cc4 100644
--- a/gnu/packages/patches/superlu-dist-awpm-grid.patch
+++ b/gnu/packages/patches/superlu-dist-awpm-grid.patch
@@ -1,8 +1,8 @@
 Create the CombBLAS::SpParMat with the MPI_Comm from the input 'gridinfo_t'.
 This prevents a warning/error from CombBLAS about using MPI_COMM_WORLD.
 
---- a/SRC/AWPM_CombBLAS.hpp
-+++ b/SRC/AWPM_CombBLAS.hpp
+--- a/SRC/dHWPM_CombBLAS.hpp
++++ b/SRC/dHWPM_CombBLAS.hpp
 @@ -52,7 +52,7 @@
      {
          printf("AWPM only supports square process grid. Retuning without a permutation.\n");
@@ -12,25 +12,14 @@ This prevents a warning/error from CombBLAS about using MPI_COMM_WORLD.
      std::vector< std::vector < std::tuple<int_t,int_t,double> > > data(procs);
      
      /* ------------------------------------------------------------
-@@ -100,11 +100,10 @@
-     combblas::AWPM(Adcsc, mateRow2Col, mateCol2Row,true);
-     
-     // now gather the matching vector
--    MPI_Comm World = mateRow2Col.getcommgrid()->GetWorld();
-     int * rdispls = new int[procs];
-     int sendcnt = mateRow2Col.LocArrSize();
-     int * recvcnt = new int[procs];
--    MPI_Allgather(&sendcnt, 1, MPI_INT, recvcnt, 1, MPI_INT, World);
-+    MPI_Allgather(&sendcnt, 1, MPI_INT, recvcnt, 1, MPI_INT, grid->comm);
-     rdispls[0] = 0;
-     for(int i=0; i<procs-1; ++i)
+--- a/SRC/zHWPM_CombBLAS.hpp
++++ b/SRC/zHWPM_CombBLAS.hpp
+@@ -52,7 +52,7 @@
      {
-@@ -112,7 +111,7 @@
+         printf("AWPM only supports square process grid. Retuning without a permutation.\n");
      }
-     int_t *senddata = (int_t *)mateRow2Col.GetLocArr();
-     
--    MPI_Allgatherv(senddata, sendcnt, combblas::MPIType<int_t>(), ScalePermstruct->perm_r, recvcnt, rdispls, combblas::MPIType<int_t>(), World);
-+    MPI_Allgatherv(senddata, sendcnt, combblas::MPIType<int_t>(), ScalePermstruct->perm_r, recvcnt, rdispls, combblas::MPIType<int_t>(), grid->comm);
+-    combblas::SpParMat < int_t, double, combblas::SpDCCols<int_t,double> > Adcsc;
++    combblas::SpParMat < int_t, double, combblas::SpDCCols<int_t,double> > Adcsc(grid->comm);
+     std::vector< std::vector < std::tuple<int_t,int_t,double> > > data(procs);
      
-     delete[] rdispls;
-     delete[] recvcnt;
+     /* ------------------------------------------------------------
diff --git a/gnu/packages/patches/tipp10-disable-downloader.patch b/gnu/packages/patches/tipp10-disable-downloader.patch
new file mode 100644
index 0000000000..4917a927f9
--- /dev/null
+++ b/gnu/packages/patches/tipp10-disable-downloader.patch
@@ -0,0 +1,165 @@
+https://salsa.debian.org/debian/tipp10/-/raw/debian/2.1.0-5/debian/patches/disable_downloaders.patch
+
+Author: Reiner Herrmann <reiner@reiner-h.de>
+Description: Disable downloaders
+ This makes porting to Qt5 much easier, as QHttp is no longer available.
+ But the functionality was not enabled anyway or is no longer useful.
+ .
+ - checkversion.h/.cpp:
+   At startup (while loading settings), Tipp10 "phones home" to do an
+   update check (www.tipp10.com/update/version.tipp10v210).
+   For a packaged software and one that is no longer being developed,
+   this does not make much sense.
+ - updatedialog.h/.cpp:
+   Can download newer sqlite database (www.tipp10.com/update/sql.tipp10v210.utf),
+   but this file is no longer available on the server (404).
+   The update action has also not been enabled in the menu, so the update
+   functionality was currently not active:
+     widget/mainwindow.cpp:143:  //fileMenu->addAction(updateAction);
+ - downloaddialog.h/.cpp:
+   Allows downloading lessons from user-specified location.
+   But the action (widget/startwidget.cpp -> lessonDownload) has not been part
+   of any menu, so it was also not in use.
+
+--- a/tipp10.pro
++++ b/tipp10.pro
+@@ -15,7 +15,6 @@
+ INCLUDEPATH     += 	.

+ CONFIG          += 	qt

+ QT              += 	sql

+-QT              += 	network

+ RC_FILE         += 	tipp10.rc

+ RESOURCES       += 	tipp10.qrc

+ HEADERS         += 	def/defines.h \

+@@ -36,15 +35,12 @@
+                     widget/settingspages.h \

+                     widget/lessondialog.h \

+                     widget/regexpdialog.h \

+-                    widget/downloaddialog.h \

+                     widget/lessonprintdialog.h \

+                     widget/lessonresult.h \

+-                    widget/updatedialog.h \

+                     widget/helpbrowser.h \

+                     widget/companylogo.h \

+                     widget/errormessage.h \

+                     widget/txtmessagedialog.h \

+-                    widget/checkversion.h \

+                     sql/connection.h \

+                     sql/lessontablesql.h \

+                     sql/chartablesql.h \

+@@ -70,15 +66,12 @@
+                     widget/settingspages.cpp \

+                     widget/lessondialog.cpp \

+                     widget/regexpdialog.cpp \

+-                    widget/downloaddialog.cpp \

+                     widget/lessonprintdialog.cpp \

+                     widget/lessonresult.cpp \

+-                    widget/updatedialog.cpp \

+                     widget/helpbrowser.cpp \

+                     widget/companylogo.cpp \

+                     widget/errormessage.cpp \

+                     widget/txtmessagedialog.cpp \

+-                    widget/checkversion.cpp \

+                     sql/lessontablesql.cpp \

+                     sql/chartablesql.cpp \

+                     sql/trainingsql.cpp \

+--- a/widget/mainwindow.cpp
++++ b/widget/mainwindow.cpp
+@@ -41,11 +41,9 @@
+ 

+ #include "mainwindow.h"

+ #include "settingsdialog.h"

+-#include "updatedialog.h"

+ #include "def/defines.h"

+ #include "def/errordefines.h"

+ #include "errormessage.h"

+-#include "checkversion.h"

+ 

+ MainWindow::MainWindow() {

+ 	trainingStarted = false;

+@@ -214,8 +212,8 @@
+ }

+ 

+ void MainWindow::showUpdate() {

+-	UpdateDialog updateDialog(this);

+-	updateDialog.exec();

++	//UpdateDialog updateDialog(this);

++	//updateDialog.exec();

+ 	// Fill lesson list after online update

+ 	startWidget->fillLessonList(false);

+ }

+@@ -486,6 +484,7 @@
+ 	settings.endGroup();

+ 

+     settings.beginGroup("general");

++#if 0

+     if (settings.value("check_new_version", true).toBool()) {

+ 

+         QDate lastVersionCheck = settings.value("last_version_check").toDate();

+@@ -499,6 +498,7 @@
+         }

+         settings.setValue("last_version_check", today);

+     }

++#endif

+     settings.endGroup();

+ }

+ 

+--- a/widget/settingspages.cpp
++++ b/widget/settingspages.cpp
+@@ -581,7 +581,7 @@
+ 

+ 	// Layout of group box vertical

+ 	QVBoxLayout *layout = new QVBoxLayout;

+-    layout->addWidget(checkNewVersion);

++    //layout->addWidget(checkNewVersion);

+     layout->addSpacing(1);

+     layout->addWidget(checkNativeStyle);

+     layout->setMargin(16);

+@@ -610,7 +610,6 @@
+     checkIntelligence->setChecked(settings.value("check_toggle_intelligence", true).toBool());

+ 	checkLimitLesson->setChecked(settings.value("check_limit_lesson", true).toBool());

+ 	checkLessonPublish->setChecked(settings.value("check_lesson_publish", true).toBool());

+-    checkNewVersion->setChecked(settings.value("check_new_version", true).toBool());

+     checkNativeStyle->setChecked(settings.value("check_native_style", false).toBool());

+ 	settings.endGroup();

+ }

+@@ -636,7 +635,6 @@
+ 	settings.setValue("check_limit_lesson", checkLimitLesson->isChecked());

+ 	settings.setValue("check_lesson_publish", checkLessonPublish->isChecked());

+ 	settings.setValue("check_native_style", checkNativeStyle->isChecked());

+-    settings.setValue("check_new_version", checkNewVersion->isChecked());

+     settings.endGroup();

+ 

+ 	return requireRestart;

+--- a/widget/startwidget.cpp
++++ b/widget/startwidget.cpp
+@@ -43,12 +43,10 @@
+ 

+ #include "startwidget.h"

+ #include "sql/startsql.h"

+-#include "updatedialog.h"

+ #include "def/defines.h"

+ #include "def/errordefines.h"

+ #include "errormessage.h"

+ #include "lessondialog.h"

+-#include "downloaddialog.h"

+ #include "illustrationdialog.h"

+ #include "txtmessagedialog.h"

+ 

+@@ -1048,7 +1046,7 @@
+ }

+ 

+ void StartWidget::clickDownloadLesson() {

+-

++#if 0

+ 	QStringList lessonData;

+ 

+ 	DownloadDialog downloadDialog(&lessonData, this);

+@@ -1083,6 +1081,7 @@
+ 			}

+ 		}

+ 	}

++#endif

+ }

+ 

+ void StartWidget::clickEditLesson() {

diff --git a/gnu/packages/patches/tipp10-qt5.patch b/gnu/packages/patches/tipp10-qt5.patch
new file mode 100644
index 0000000000..34ad5cd708
--- /dev/null
+++ b/gnu/packages/patches/tipp10-qt5.patch
@@ -0,0 +1,69 @@
+https://salsa.debian.org/debian/tipp10/-/raw/debian/2.1.0-5/debian/patches/qt5.patch
+
+Author: Reiner Herrmann <reiner@reiner-h.de>
+Description: Port to Qt5
+Bug-Debian: https://bugs.debian.org/875207
+
+--- a/tipp10.pro
++++ b/tipp10.pro
+@@ -14,6 +14,7 @@
+ DEPENDPATH      += 	.

+ INCLUDEPATH     += 	.

+ CONFIG          += 	qt

++QT              += 	widgets multimedia printsupport

+ QT              += 	sql

+ RC_FILE         += 	tipp10.rc

+ RESOURCES       += 	tipp10.qrc

+--- a/main.cpp
++++ b/main.cpp
+@@ -24,7 +24,6 @@
+ ****************************************************************/

+ 

+ #include <QApplication>

+-#include <QPlastiqueStyle>

+ #include <QString>

+ #include <QSettings>

+ #include <QCoreApplication>

+@@ -212,7 +211,7 @@
+ 

+     // Set windows style

+ 	if (!useNativeStyle) {

+-	    app.setStyle("plastique");

++	    app.setStyle("fusion");

+     }

+ 

+ 	// Translation

+--- a/games/abcrainwidget.cpp
++++ b/games/abcrainwidget.cpp
+@@ -235,8 +235,7 @@
+ 		charballs.last()->wind = (qrand() % 8) + 2;

+ 		charballs.last()->rad = 0;

+ 

+-		chartext.append(new QGraphicsTextItem(QString(characterTemp),

+-			charballs.last(), scene));

++		chartext.append(new QGraphicsTextItem(QString(characterTemp), charballs.last()));

+ 		chartext.last()->setFont(QFont("Courier", 16, 100));

+ 		chartext.last()->setPos(-(chartext.last()->boundingRect().width() / 2), -(chartext.last()->boundingRect().height() / 2));

+ 

+--- a/sql/chartablesql.cpp
++++ b/sql/chartablesql.cpp
+@@ -137,7 +137,7 @@
+ 	sortColumn(4);

+ 

+ 	headerview->setStretchLastSection(true);

+-	headerview->setResizeMode(QHeaderView::Interactive);

++	headerview->setSectionResizeMode(QHeaderView::Interactive);

+ 	headerview->setSortIndicatorShown(true);

+ 

+ 	// Resize the columns

+--- a/sql/lessontablesql.cpp
++++ b/sql/lessontablesql.cpp
+@@ -202,7 +202,7 @@
+ 	sortColumn(-1);

+ 

+ 	headerview->setStretchLastSection(true);

+-	headerview->setResizeMode(QHeaderView::Interactive);

++	headerview->setSectionResizeMode(QHeaderView::Interactive);

+ 	headerview->setSortIndicatorShown(true);

+ 

+ 	// Resize the columns

diff --git a/gnu/packages/patches/tomb-fix-errors-on-open.patch b/gnu/packages/patches/tomb-fix-errors-on-open.patch
deleted file mode 100644
index 5f41c9ee8f..0000000000
--- a/gnu/packages/patches/tomb-fix-errors-on-open.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-Description: Avoid error messages when opening a new tomb
- Make sure control file exists and has user ownership before user writes to it.
-Author: Sven Geuer <debmaint@g-e-u-e-r.de>
-Bug: https://github.com/dyne/Tomb/issues/369
-Last-Update: 2019-11-04
---- a/tomb
-+++ b/tomb
-@@ -2197,14 +2197,15 @@
- # {{{ Open
- 
- _update_control_file() {
--	# replaces a control file with new contents and gives it user ownership
-+	# make sure a control file exists, gives it user ownership
-+	# and replaces it with new contents
- 	# stdin = contents
- 	# $1 = path to control file
- 	# $2 = contents
- 	[[ "$2" = "" ]] && return 1
- 	_sudo touch "$1"
--	print "$2" > "$1"
- 	_sudo chown ${_UID}:${_GID} "$1"
-+	print "$2" > "$1"
- 	_verbose "updated control file $1 = $2"
- }
- 
diff --git a/gnu/packages/patches/transcode-ffmpeg.patch b/gnu/packages/patches/transcode-ffmpeg.patch
new file mode 100644
index 0000000000..c547cbad2b
--- /dev/null
+++ b/gnu/packages/patches/transcode-ffmpeg.patch
@@ -0,0 +1,1408 @@
+Submitted By: Ken Moffat <ken at linuxfromscratch dot org>
+Date: 2018-05-14
+Initial Package Version: 1.1.7
+Upstream Status: Defunct
+Origin: From gentoo.
+Description: Accumulated fixes to build with ffmpeg-4.0 (but only
+with the limited functionality we had before).
+
+diff -Naur a/encode/encode_lavc.c b/encode/encode_lavc.c
+--- a/encode/encode_lavc.c	2011-11-19 16:50:27.000000000 +0000
++++ b/encode/encode_lavc.c	2018-05-14 01:58:58.346408791 +0100
+@@ -74,6 +74,16 @@
+     int lmin;
+     int lmax;
+     int me_method;
++    int luma_elim_threshold;
++    int chroma_elim_threshold;
++    int quantizer_noise_shaping;
++    int inter_quant_bias;
++    int intra_quant_bias;
++    int scenechange_factor;
++    int rc_strategy;
++    float rc_initial_cplx;
++    float rc_qsquish;
++    float border_masking;
+ 
+     /* same as above for flags */
+     struct {
+@@ -114,6 +124,7 @@
+ 
+     AVFrame ff_venc_frame;
+     AVCodecContext ff_vcontext;
++    AVDictionary * ff_opts;
+ 
+     AVCodec *ff_vcodec;
+ 
+@@ -164,6 +175,7 @@
+     TC_CODEC_ERROR
+ };
+ 
++#if LIBAVCODEC_VERSION_MAJOR < 55
+ static const enum CodecID tc_lavc_internal_codecs[] = {
+     CODEC_ID_MPEG1VIDEO, CODEC_ID_MPEG2VIDEO, CODEC_ID_MPEG4,
+     CODEC_ID_H263I, CODEC_ID_H263P,
+@@ -176,6 +188,20 @@
+     CODEC_ID_MSMPEG4V2, CODEC_ID_MSMPEG4V3,
+     CODEC_ID_NONE
+ };
++#else
++static const enum AVCodecID tc_lavc_internal_codecs[] = {
++    AV_CODEC_ID_MPEG1VIDEO, AV_CODEC_ID_MPEG2VIDEO, AV_CODEC_ID_MPEG4,
++    AV_CODEC_ID_H263I, AV_CODEC_ID_H263P,
++    AV_CODEC_ID_H264,
++    AV_CODEC_ID_WMV1, AV_CODEC_ID_WMV2,
++    AV_CODEC_ID_RV10,
++    AV_CODEC_ID_HUFFYUV, AV_CODEC_ID_FFV1,
++    AV_CODEC_ID_DVVIDEO,
++    AV_CODEC_ID_MJPEG, AV_CODEC_ID_LJPEG,
++    AV_CODEC_ID_MSMPEG4V2, AV_CODEC_ID_MSMPEG4V3,
++    AV_CODEC_ID_NONE
++};
++#endif
+ 
+ static const TCFormatID tc_lavc_formats[] = { TC_FORMAT_ERROR };
+ 
+@@ -214,7 +240,7 @@
+                                      vframe_list_t *vframe)
+ {
+     avpicture_fill((AVPicture *)&pd->ff_venc_frame, vframe->video_buf,
+-                    PIX_FMT_YUV420P,
++                    AV_PIX_FMT_YUV420P,
+                     pd->ff_vcontext.width, pd->ff_vcontext.height);
+ }
+ 
+@@ -228,7 +254,7 @@
+                     IMG_YUV_DEFAULT,
+                     pd->ff_vcontext.width, pd->ff_vcontext.height);
+     avpicture_fill((AVPicture *)&pd->ff_venc_frame, pd->vframe_buf->video_buf,
+-                   PIX_FMT_YUV422P,
++                   AV_PIX_FMT_YUV422P,
+                    pd->ff_vcontext.width, pd->ff_vcontext.height);
+     ac_imgconvert(src, IMG_YUV_DEFAULT,
+                   pd->ff_venc_frame.data, IMG_YUV422P,
+@@ -244,7 +270,7 @@
+                     IMG_YUV422P,
+                     pd->ff_vcontext.width, pd->ff_vcontext.height);
+     avpicture_fill((AVPicture *)&pd->ff_venc_frame, pd->vframe_buf->video_buf,
+-                   PIX_FMT_YUV420P,
++                   AV_PIX_FMT_YUV420P,
+                    pd->ff_vcontext.width, pd->ff_vcontext.height);
+     ac_imgconvert(src, IMG_YUV422P,
+                   pd->ff_venc_frame.data, IMG_YUV420P,
+@@ -266,7 +292,7 @@
+                                    vframe_list_t *vframe)
+ {
+     avpicture_fill((AVPicture *)&pd->ff_venc_frame, pd->vframe_buf->video_buf,
+-                   PIX_FMT_YUV420P,
++                   AV_PIX_FMT_YUV420P,
+                    pd->ff_vcontext.width, pd->ff_vcontext.height);
+     ac_imgconvert(&vframe->video_buf, IMG_RGB_DEFAULT,
+                   pd->ff_venc_frame.data, IMG_YUV420P,
+@@ -596,15 +622,15 @@
+         } else {
+             pd->tc_pix_fmt = TC_CODEC_YUV420P;
+             pd->ff_vcontext.pix_fmt = (TC_VCODEC_ID(pd) == TC_CODEC_MJPEG) 
+-                                       ? PIX_FMT_YUVJ420P
+-                                       : PIX_FMT_YUV420P;
++                                       ? AV_PIX_FMT_YUVJ420P
++                                       : AV_PIX_FMT_YUV420P;
+             pd->pre_encode_video = pre_encode_video_yuv420p;
+         }
+         break;
+       case CODEC_YUV422:
+         pd->tc_pix_fmt = TC_CODEC_YUV422P;
+         pd->ff_vcontext.pix_fmt = (TC_VCODEC_ID(pd) == TC_CODEC_MJPEG) 
+-                                   ? PIX_FMT_YUVJ422P
++                                   ? AV_PIX_FMT_YUVJ422P
+                                    : PIX_FMT_YUV422P;
+         if (TC_VCODEC_ID(pd) == TC_CODEC_HUFFYUV) {
+             pd->pre_encode_video = pre_encode_video_yuv422p_huffyuv;
+@@ -617,8 +643,8 @@
+         pd->ff_vcontext.pix_fmt = (TC_VCODEC_ID(pd) == TC_CODEC_HUFFYUV)
+                                         ? PIX_FMT_YUV422P
+                                         : (TC_VCODEC_ID(pd) == TC_CODEC_MJPEG) 
+-                                           ? PIX_FMT_YUVJ420P
+-                                           : PIX_FMT_YUV420P;
++                                           ? AV_PIX_FMT_YUVJ420P
++                                           : AV_PIX_FMT_YUV420P;
+         pd->pre_encode_video = pre_encode_video_rgb24;
+         break;
+       default:
+@@ -665,7 +691,7 @@
+     switch (vob->divxmultipass) {
+       case 1:
+         CAN_DO_MULTIPASS(multipass_flag);
+-        pd->ff_vcontext.flags |= CODEC_FLAG_PASS1;
++        pd->ff_vcontext.flags |= AV_CODEC_FLAG_PASS1;
+         pd->stats_file = fopen(vob->divxlogfile, "w");
+         if (pd->stats_file == NULL) {
+             tc_log_error(MOD_NAME, "could not create 2pass log file"
+@@ -675,7 +701,7 @@
+         break;
+       case 2:
+         CAN_DO_MULTIPASS(multipass_flag);
+-        pd->ff_vcontext.flags |= CODEC_FLAG_PASS2;
++        pd->ff_vcontext.flags |= AV_CODEC_FLAG_PASS2;
+         pd->stats_file = fopen(vob->divxlogfile, "r");
+         if (pd->stats_file == NULL){
+             tc_log_error(MOD_NAME, "could not open 2pass log file \"%s\""
+@@ -704,7 +730,7 @@
+         break;
+       case 3:
+         /* fixed qscale :p */
+-        pd->ff_vcontext.flags |= CODEC_FLAG_QSCALE;
++        pd->ff_vcontext.flags |= AV_CODEC_FLAG_QSCALE;
+         pd->ff_venc_frame.quality = vob->divxbitrate;
+         break;
+     }
+@@ -937,7 +963,11 @@
+ static void tc_lavc_config_defaults(TCLavcPrivateData *pd)
+ {
+     /* first of all reinitialize lavc data */
++#if LIBAVCODEC_VERSION_MAJOR < 55
+     avcodec_get_context_defaults(&pd->ff_vcontext);
++#else
++    avcodec_get_context_defaults3(&pd->ff_vcontext, NULL);
++#endif
+ 
+     pd->confdata.thread_count = 1;
+ 
+@@ -947,7 +977,7 @@
+     pd->confdata.rc_buffer_size  = 0;
+     pd->confdata.lmin            = 2;
+     pd->confdata.lmax            = 31;
+-    pd->confdata.me_method       = ME_EPZS;
++    pd->confdata.me_method       = 0;
+ 
+     memset(&pd->confdata.flags, 0, sizeof(pd->confdata.flags));
+     pd->confdata.turbo_setup = 0;
+@@ -962,12 +992,12 @@
+     pd->ff_vcontext.me_range                = 0;
+     pd->ff_vcontext.mb_decision             = 0;
+     pd->ff_vcontext.scenechange_threshold   = 0;
+-    pd->ff_vcontext.scenechange_factor      = 1;
++    pd->confdata.scenechange_factor         = 1;
+     pd->ff_vcontext.b_frame_strategy        = 0;
+     pd->ff_vcontext.b_sensitivity           = 40;
+     pd->ff_vcontext.brd_scale               = 0;
+     pd->ff_vcontext.bidir_refine            = 0;
+-    pd->ff_vcontext.rc_strategy             = 2;
++    pd->confdata.rc_strategy                = 2;
+     pd->ff_vcontext.b_quant_factor          = 1.25;
+     pd->ff_vcontext.i_quant_factor          = 0.8;
+     pd->ff_vcontext.b_quant_offset          = 1.25;
+@@ -975,10 +1005,10 @@
+     pd->ff_vcontext.qblur                   = 0.5;
+     pd->ff_vcontext.qcompress               = 0.5;
+     pd->ff_vcontext.mpeg_quant              = 0;
+-    pd->ff_vcontext.rc_initial_cplx         = 0.0;
+-    pd->ff_vcontext.rc_qsquish              = 1.0;
+-    pd->ff_vcontext.luma_elim_threshold     = 0;
+-    pd->ff_vcontext.chroma_elim_threshold   = 0;
++    pd->confdata.rc_initial_cplx            = 0.0;
++    pd->confdata.rc_qsquish              = 1.0;
++    pd->confdata.luma_elim_threshold     = 0;
++    pd->confdata.chroma_elim_threshold   = 0;
+     pd->ff_vcontext.strict_std_compliance   = 0;
+     pd->ff_vcontext.dct_algo                = FF_DCT_AUTO;
+     pd->ff_vcontext.idct_algo               = FF_IDCT_AUTO;
+@@ -987,7 +1017,7 @@
+     pd->ff_vcontext.temporal_cplx_masking   = 0.0;
+     pd->ff_vcontext.spatial_cplx_masking    = 0.0;
+     pd->ff_vcontext.p_masking               = 0.0;
+-    pd->ff_vcontext.border_masking          = 0.0;
++    pd->confdata.border_masking          = 0.0;
+     pd->ff_vcontext.me_pre_cmp              = 0;
+     pd->ff_vcontext.me_cmp                  = 0;
+     pd->ff_vcontext.me_sub_cmp              = 0;
+@@ -999,10 +1029,8 @@
+     pd->ff_vcontext.pre_me                  = 1;
+     pd->ff_vcontext.me_subpel_quality       = 8;
+     pd->ff_vcontext.refs                    = 1;
+-    pd->ff_vcontext.intra_quant_bias        = FF_DEFAULT_QUANT_BIAS;
+-    pd->ff_vcontext.inter_quant_bias        = FF_DEFAULT_QUANT_BIAS;
+     pd->ff_vcontext.noise_reduction         = 0;
+-    pd->ff_vcontext.quantizer_noise_shaping = 0;
++    pd->confdata.quantizer_noise_shaping = 0;
+     pd->ff_vcontext.flags                   = 0;
+ }
+ 
+@@ -1023,27 +1051,22 @@
+  */
+ static void tc_lavc_dispatch_settings(TCLavcPrivateData *pd)
+ {
++    char buf[1024];
+     /* some translation... */
+     pd->ff_vcontext.bit_rate_tolerance = pd->confdata.vrate_tolerance * 1000;
+     pd->ff_vcontext.rc_min_rate = pd->confdata.rc_min_rate * 1000;
+     pd->ff_vcontext.rc_max_rate = pd->confdata.rc_max_rate * 1000;
+     pd->ff_vcontext.rc_buffer_size = pd->confdata.rc_buffer_size * 1024;
+-    pd->ff_vcontext.lmin = (int)(FF_QP2LAMBDA * pd->confdata.lmin + 0.5);
+-    pd->ff_vcontext.lmax = (int)(FF_QP2LAMBDA * pd->confdata.lmax + 0.5);
+-    pd->ff_vcontext.me_method = ME_ZERO + pd->confdata.me_method;
++    snprintf(buf, sizeof(buf), "%i", (int)(FF_QP2LAMBDA * pd->confdata.lmin + 0.5));
++    av_dict_set(&(pd->ff_opts), "lmin", buf, 0);
++    snprintf(buf, sizeof(buf), "%i", (int)(FF_QP2LAMBDA * pd->confdata.lmax + 0.5));
++    av_dict_set(&(pd->ff_opts), "lmax", buf, 0);
+ 
+     pd->ff_vcontext.flags = 0;
+-    SET_FLAG(pd, mv0);
+-    SET_FLAG(pd, cbp);
+     SET_FLAG(pd, qpel);
+-    SET_FLAG(pd, alt);
+-    SET_FLAG(pd, vdpart);
+-    SET_FLAG(pd, naq);
+     SET_FLAG(pd, ilme);
+     SET_FLAG(pd, ildct);
+     SET_FLAG(pd, aic);
+-    SET_FLAG(pd, aiv);
+-    SET_FLAG(pd, umv);
+     SET_FLAG(pd, psnr);
+     SET_FLAG(pd, trell);
+     SET_FLAG(pd, gray);
+@@ -1061,9 +1084,49 @@
+     }
+     if (pd->interlacing.active) {
+         /* enforce interlacing */
+-        pd->ff_vcontext.flags |= CODEC_FLAG_INTERLACED_DCT;
+-        pd->ff_vcontext.flags |= CODEC_FLAG_INTERLACED_ME;
++        pd->ff_vcontext.flags |= AV_CODEC_FLAG_INTERLACED_DCT;
++        pd->ff_vcontext.flags |= AV_CODEC_FLAG_INTERLACED_ME;
++    }
++    if (pd->confdata.flags.alt) {
++        av_dict_set(&(pd->ff_opts), "alternate_scan", "1", 0);
+     }
++    if (pd->confdata.flags.vdpart) {
++        av_dict_set(&(pd->ff_opts), "data_partitioning", "1", 0);
++    }
++    if (pd->confdata.flags.umv) {
++        av_dict_set(&(pd->ff_opts), "umv", "1", 0);
++    }
++    if (pd->confdata.flags.aiv) {
++        av_dict_set(&(pd->ff_opts), "aiv", "1", 0);
++    }
++    if (pd->confdata.flags.cbp) {
++    	av_dict_set(&(pd->ff_opts), "mpv_flags", "+cbp_rd", 0);
++    }
++    if (pd->confdata.flags.mv0) {
++    	av_dict_set(&(pd->ff_opts), "mpv_flags", "+mv0", 0);
++    }
++    if (pd->confdata.flags.naq) {
++    	av_dict_set(&(pd->ff_opts), "mpv_flags", "+naq", 0);
++    }
++
++#define set_dict_opt(val, opt) \
++    snprintf(buf, sizeof(buf), "%i", pd->confdata.val);\
++    av_dict_set(&(pd->ff_opts), opt, buf, 0)
++#define set_dict_float_opt(val, opt) \
++    snprintf(buf, sizeof(buf), "%f", pd->confdata.val);\
++    av_dict_set(&(pd->ff_opts), opt, buf, 0)
++
++    set_dict_opt(luma_elim_threshold, "luma_elim_threshold");
++    set_dict_opt(chroma_elim_threshold, "chroma_elim_threshold");
++    set_dict_opt(quantizer_noise_shaping, "quantizer_noise_shaping");
++    set_dict_opt(inter_quant_bias, "pbias");
++    set_dict_opt(intra_quant_bias, "ibias");
++    set_dict_opt(me_method, "me_method");
++    set_dict_opt(scenechange_factor, "sc_factor");
++    set_dict_opt(rc_strategy, "rc_strategy");
++    set_dict_float_opt(rc_initial_cplx, "rc_init_cplx");
++    set_dict_float_opt(rc_qsquish, "qsquish");
++    set_dict_float_opt(border_masking, "border_mask");
+ }
+ 
+ #undef SET_FLAG
+@@ -1121,12 +1184,12 @@
+         { "lmin", PAUX(lmin), TCCONF_TYPE_FLOAT, TCCONF_FLAG_RANGE, 0.01, 255.0 },
+         { "lmax", PAUX(lmax), TCCONF_TYPE_FLOAT, TCCONF_FLAG_RANGE, 0.01, 255.0 },
+         { "vqdiff", PCTX(max_qdiff), TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 1, 31 },
+-        { "vmax_b_frames", PCTX(max_b_frames), TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, FF_MAX_B_FRAMES },
++        { "vmax_b_frames", PCTX(max_b_frames), TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, INT_MAX },
+         { "vme", PAUX(me_method), TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 16, },
+         { "me_range", PCTX(me_range), TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 16000 },
+         { "mbd", PCTX(mb_decision), TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 3 },
+         { "sc_threshold", PCTX(scenechange_threshold), TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, -1000000, 1000000 },
+-        { "sc_factor", PCTX(scenechange_factor), TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 1, 16 },
++        { "sc_factor", PAUX(scenechange_factor), TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 1, 16 },
+         { "vb_strategy", PCTX(b_frame_strategy), TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 10 },
+         { "b_sensitivity", PCTX(b_sensitivity), TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 1, 100 },
+         { "brd_scale", PCTX(brd_scale), TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 10 },
+@@ -1137,7 +1200,7 @@
+         { "vrc_maxrate", PAUX(rc_max_rate), TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 24000000 },
+         { "vrc_minrate", PAUX(rc_min_rate), TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 24000000 },
+         { "vrc_buf_size", PAUX(rc_buffer_size), TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 4, 24000000 },
+-        { "vrc_strategy", PCTX(rc_strategy), TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 2 },
++        { "vrc_strategy", PAUX(rc_strategy), TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 2 },
+         { "vb_qfactor", PCTX(b_quant_factor), TCCONF_TYPE_FLOAT, TCCONF_FLAG_RANGE, -31.0, 31.0 },
+         { "vi_qfactor", PCTX(i_quant_factor), TCCONF_TYPE_FLOAT, TCCONF_FLAG_RANGE, -31.0, 31.0 },
+         { "vb_qoffset", PCTX(b_quant_offset), TCCONF_TYPE_FLOAT, TCCONF_FLAG_RANGE, 0.0, 31.0 },
+@@ -1147,11 +1210,11 @@
+         { "mpeg_quant", PCTX(mpeg_quant), TCCONF_TYPE_FLAG, 0, 0, 1 },
+         //  { "vrc_eq",     }, // not yet supported
+         { "vrc_override", rc_override_buf, TCCONF_TYPE_STRING, 0, 0, 0 },
+-        { "vrc_init_cplx", PCTX(rc_initial_cplx), TCCONF_TYPE_FLOAT, TCCONF_FLAG_RANGE, 0.0, 9999999.0 },
++        { "vrc_init_cplx", PAUX(rc_initial_cplx), TCCONF_TYPE_FLOAT, TCCONF_FLAG_RANGE, 0.0, 9999999.0 },
+         //  { "vrc_init_occupancy",   }, // not yet supported
+-        { "vqsquish", PCTX(rc_qsquish), TCCONF_TYPE_FLOAT, TCCONF_FLAG_RANGE, 0.0, 99.0 },
+-        { "vlelim", PCTX(luma_elim_threshold), TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, -99, 99 },
+-        { "vcelim", PCTX(chroma_elim_threshold), TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, -99, 99 },
++        { "vqsquish", PAUX(rc_qsquish), TCCONF_TYPE_FLOAT, TCCONF_FLAG_RANGE, 0.0, 99.0 },
++        { "vlelim", PAUX(luma_elim_threshold), TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, -99, 99 },
++        { "vcelim", PAUX(chroma_elim_threshold), TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, -99, 99 },
+         { "vstrict", PCTX(strict_std_compliance), TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, -99, 99 },
+         { "vpsize", PCTX(rtp_payload_size), TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 100000000 },
+         { "dct", PCTX(dct_algo), TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 10 },
+@@ -1161,7 +1224,7 @@
+         { "tcplx_mask", PCTX(temporal_cplx_masking), TCCONF_TYPE_FLOAT, TCCONF_FLAG_RANGE, 0.0, 1.0 },
+         { "scplx_mask", PCTX(spatial_cplx_masking), TCCONF_TYPE_FLOAT, TCCONF_FLAG_RANGE, 0.0, 1.0 },
+         { "p_mask", PCTX(p_masking), TCCONF_TYPE_FLOAT, TCCONF_FLAG_RANGE, 0.0, 1.0 },
+-        { "border_mask", PCTX(border_masking), TCCONF_TYPE_FLOAT, TCCONF_FLAG_RANGE, 0.0, 1.0 },
++        { "border_mask", PAUX(border_masking), TCCONF_TYPE_FLOAT, TCCONF_FLAG_RANGE, 0.0, 1.0 },
+         { "pred", PCTX(prediction_method), TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 4 },
+         { "precmp", PCTX(me_pre_cmp), TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 2000 },
+         { "cmp", PCTX(me_cmp), TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 2000 },
+@@ -1174,37 +1237,37 @@
+         { "pre_me", PCTX(pre_me), TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 2000},
+         { "subq", PCTX(me_subpel_quality), TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 8 },
+         { "refs", PCTX(refs), TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 1, 8 },
+-        { "ibias", PCTX(intra_quant_bias), TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, -512, 512 },
+-        { "pbias", PCTX(inter_quant_bias), TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, -512, 512 },
++        { "ibias", PAUX(intra_quant_bias), TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, -512, 512 },
++        { "pbias", PAUX(inter_quant_bias), TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, -512, 512 },
+         { "nr", PCTX(noise_reduction), TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 1000000},
+-        { "qns", PCTX(quantizer_noise_shaping), TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 3 },
++        { "qns", PAUX(quantizer_noise_shaping), TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 3 },
+         { "inter_matrix_file", inter_matrix_file, TCCONF_TYPE_STRING, 0, 0, 0 },
+         { "intra_matrix_file", intra_matrix_file, TCCONF_TYPE_STRING, 0, 0, 0 },
+     
+-        { "mv0", PAUX(flags.mv0), TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_MV0 },
+-        { "cbp", PAUX(flags.cbp), TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_CBP_RD },
+-        { "qpel", PAUX(flags.qpel), TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_QPEL },
+-        { "alt", PAUX(flags.alt), TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_ALT_SCAN },
+-        { "ilme", PAUX(flags.ilme), TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_INTERLACED_ME },
+-        { "ildct", PAUX(flags.ildct), TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_INTERLACED_DCT },
+-        { "naq", PAUX(flags.naq), TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_NORMALIZE_AQP },
+-        { "vdpart", PAUX(flags.vdpart), TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_PART },
++        { "mv0", PAUX(flags.mv0), TCCONF_TYPE_FLAG, 0, 0, 1 },
++        { "cbp", PAUX(flags.cbp), TCCONF_TYPE_FLAG, 0, 0, 1 },
++        { "qpel", PAUX(flags.qpel), TCCONF_TYPE_FLAG, 0, 0, AV_CODEC_FLAG_QPEL },
++        { "alt", PAUX(flags.alt), TCCONF_TYPE_FLAG, 0, 0, 1 },
++        { "ilme", PAUX(flags.ilme), TCCONF_TYPE_FLAG, 0, 0, AV_CODEC_FLAG_INTERLACED_ME },
++        { "ildct", PAUX(flags.ildct), TCCONF_TYPE_FLAG, 0, 0, AV_CODEC_FLAG_INTERLACED_DCT },
++        { "naq", PAUX(flags.naq), TCCONF_TYPE_FLAG, 0, 0, 1 },
++        { "vdpart", PAUX(flags.vdpart), TCCONF_TYPE_FLAG, 0, 0, 1 },
+ #if LIBAVCODEC_VERSION_INT < ((52<<16)+(0<<8)+0)
+         { "aic", PAUX(flags.aic), TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_H263P_AIC },
+ #else        
+-        { "aic", PAUX(flags.aic), TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_AC_PRED },
++        { "aic", PAUX(flags.aic), TCCONF_TYPE_FLAG, 0, 0, AV_CODEC_FLAG_AC_PRED },
+ #endif
+-        { "aiv", PAUX(flags.aiv), TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_H263P_AIV },
+-        { "umv", PAUX(flags.umv), TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_H263P_UMV },
+-        { "psnr", PAUX(flags.psnr), TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_PSNR },
++        { "aiv", PAUX(flags.aiv), TCCONF_TYPE_FLAG, 0, 0, 1 },
++        { "umv", PAUX(flags.umv), TCCONF_TYPE_FLAG, 0, 0, 1 },
++        { "psnr", PAUX(flags.psnr), TCCONF_TYPE_FLAG, 0, 0, AV_CODEC_FLAG_PSNR },
+ #if LIBAVCODEC_VERSION_INT < ((52<<16)+(0<<8)+0)
+         { "trell", PAUX(flags.trell), TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_TRELLIS_QUANT },
+ #else
+         { "trell", PCTX(trellis), TCCONF_TYPE_FLAG, 0, 0, 1 },
+ #endif
+-        { "gray", PAUX(flags.gray), TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_GRAY },
+-        { "v4mv", PAUX(flags.v4mv), TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_4MV },
+-        { "closedgop", PAUX(flags.closedgop), TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_CLOSED_GOP },
++        { "gray", PAUX(flags.gray), TCCONF_TYPE_FLAG, 0, 0, AV_CODEC_FLAG_GRAY },
++        { "v4mv", PAUX(flags.v4mv), TCCONF_TYPE_FLAG, 0, 0, AV_CODEC_FLAG_4MV },
++        { "closedgop", PAUX(flags.closedgop), TCCONF_TYPE_FLAG, 0, 0, AV_CODEC_FLAG_CLOSED_GOP },
+     
+         //  { "turbo", PAUX(turbo_setup), TCCONF_TYPE_FLAG, 0, 0, 1 }, // not yet  supported
+         /* End of the config file */
+@@ -1345,6 +1408,8 @@
+ 
+     pd = self->userdata;
+ 
++    pd->ff_opts = NULL;
++
+     pd->flush_flag = vob->encoder_flush;
+     
+     /* FIXME: move into core? */
+@@ -1387,7 +1452,7 @@
+                     pd->confdata.thread_count,
+                     (pd->confdata.thread_count > 1) ?"s" :"");
+     }
+-    avcodec_thread_init(&pd->ff_vcontext, pd->confdata.thread_count);
++    pd->ff_vcontext.thread_count = pd->confdata.thread_count;
+ 
+     pd->ff_vcodec = avcodec_find_encoder(FF_VCODEC_ID(pd));
+     if (pd->ff_vcodec == NULL) {
+@@ -1397,11 +1462,11 @@
+     }
+ 
+     TC_LOCK_LIBAVCODEC;
+-    ret = avcodec_open(&pd->ff_vcontext, pd->ff_vcodec);
++    ret = avcodec_open2(&pd->ff_vcontext, pd->ff_vcodec, &(pd->ff_opts));
+     TC_UNLOCK_LIBAVCODEC;
+ 
+     if (ret < 0) {
+-        tc_log_error(MOD_NAME, "avcodec_open() failed");
++        tc_log_error(MOD_NAME, "avcodec_open2() failed");
+         goto failed;
+     }
+     /* finally, pass up the extradata, if any */
+diff -Naur a/export/aud_aux.c b/export/aud_aux.c
+--- a/export/aud_aux.c	2011-11-19 16:50:27.000000000 +0000
++++ b/export/aud_aux.c	2018-05-14 01:58:58.346408791 +0100
+@@ -326,10 +326,18 @@
+ 
+     switch (o_codec) {
+       case   0x50:
++#if LIBAVCODEC_VERSION_MAJOR < 55
+         codeid = CODEC_ID_MP2;
++#else
++        codeid = AV_CODEC_ID_MP2;
++#endif
+         break;
+       case 0x2000:
++#if LIBAVCODEC_VERSION_MAJOR < 55
+         codeid = CODEC_ID_AC3;
++#else
++        codeid = AV_CODEC_ID_AC3;
++#endif
+         break;
+       default:
+         tc_warn("cannot init ffmpeg with %x", o_codec);
+@@ -346,7 +354,7 @@
+ 
+     //-- set parameters (bitrate, channels and sample-rate) --
+     //--------------------------------------------------------
+-    avcodec_get_context_defaults(&mpa_ctx);
++    avcodec_get_context_defaults3(&mpa_ctx, mpa_codec);
+ #if LIBAVCODEC_VERSION_MAJOR < 53
+     mpa_ctx.codec_type  = CODEC_TYPE_AUDIO;
+ #else
+@@ -359,11 +367,16 @@
+     //-- open codec --
+     //----------------
+     TC_LOCK_LIBAVCODEC;
+-    ret = avcodec_open(&mpa_ctx, mpa_codec);
++    ret = avcodec_open2(&mpa_ctx, mpa_codec, NULL);
+     TC_UNLOCK_LIBAVCODEC;
+     if (ret < 0) {
+         tc_warn("tc_audio_init_ffmpeg: could not open %s codec !",
+-                (codeid == CODEC_ID_MP2) ?"mpa" :"ac3");
++#if LIBAVCODEC_VERSION_MAJOR < 55
++                (codeid == CODEC_ID_MP2)
++#else
++                (codeid == AV_CODEC_ID_MP2)
++#endif
++                ?"mpa" :"ac3");
+         return(TC_EXPORT_ERROR);
+     }
+ 
+diff -Naur a/export/export_ffmpeg.c b/export/export_ffmpeg.c
+--- a/export/export_ffmpeg.c	2011-11-19 16:50:27.000000000 +0000
++++ b/export/export_ffmpeg.c	2018-05-14 01:58:58.346408791 +0100
+@@ -122,6 +122,7 @@
+ static AVFrame             *lavc_convert_frame = NULL;
+ 
+ static AVCodec             *lavc_venc_codec = NULL;
++static AVDictionary        *lavc_venc_opts = NULL;
+ static AVFrame             *lavc_venc_frame = NULL;
+ static AVCodecContext      *lavc_venc_context;
+ static avi_t               *avifile = NULL;
+@@ -180,7 +181,7 @@
+ 
+ 
+ /* START: COPIED FROM ffmpeg-0.5_p22846(ffmpeg.c, cmdutils.c) */
+-#include <libavcodec/opt.h>
++#include <libavutil/opt.h>
+ #include <libavutil/avstring.h>
+ #include <libswscale/swscale.h>
+ 
+@@ -321,7 +322,7 @@
+     }
+ 
+     if(!f){
+-        fprintf(stderr, "File for preset '%s' not found\n", arg);
++        tc_log_error(MOD_NAME, "File for preset '%s' not found", arg);
+         av_exit(1);
+     }
+ 
+@@ -470,7 +471,6 @@
+     }
+ 
+     TC_LOCK_LIBAVCODEC;
+-    avcodec_init();
+     avcodec_register_all();
+     TC_UNLOCK_LIBAVCODEC;
+ 
+@@ -486,11 +486,11 @@
+ 		            codec->name, codec->fourCC, codec->comments);
+     }
+ 
+-    lavc_venc_context = avcodec_alloc_context();
++    lavc_venc_context = avcodec_alloc_context3(lavc_venc_codec);
+     lavc_venc_frame   = avcodec_alloc_frame();
+ 
+     lavc_convert_frame= avcodec_alloc_frame();
+-    size = avpicture_get_size(PIX_FMT_RGB24, vob->ex_v_width, vob->ex_v_height);
++    size = avpicture_get_size(AV_PIX_FMT_RGB24, vob->ex_v_width, vob->ex_v_height);
+     enc_buffer = tc_malloc(size);
+ 
+     if (lavc_venc_context == NULL || !enc_buffer || !lavc_convert_frame) {
+@@ -634,7 +634,7 @@
+         lavc_param_rc_max_rate = 2516;
+         lavc_param_rc_buffer_size = 224 * 8;
+         lavc_param_rc_buffer_aggressivity = 99;
+-        lavc_param_scan_offset = CODEC_FLAG_SVCD_SCAN_OFFSET;
++        lavc_param_scan_offset = 1;
+ 
+         break;
+ 
+@@ -674,7 +674,7 @@
+ 
+         lavc_param_rc_buffer_size = 224 * 8;
+         lavc_param_rc_buffer_aggressivity = 99;
+-        lavc_param_scan_offset = CODEC_FLAG_SVCD_SCAN_OFFSET;
++        lavc_param_scan_offset = 1;
+ 
+         break;
+ 
+@@ -828,18 +828,35 @@
+ 
+     lavc_venc_context->bit_rate           = vob->divxbitrate * 1000;
+     lavc_venc_context->bit_rate_tolerance = lavc_param_vrate_tolerance * 1000;
+-    lavc_venc_context->lmin= (int)(FF_QP2LAMBDA * lavc_param_lmin + 0.5);
+-    lavc_venc_context->lmax= (int)(FF_QP2LAMBDA * lavc_param_lmax + 0.5);
+     lavc_venc_context->max_qdiff          = lavc_param_vqdiff;
+     lavc_venc_context->qcompress          = lavc_param_vqcompress;
+     lavc_venc_context->qblur              = lavc_param_vqblur;
+     lavc_venc_context->max_b_frames       = lavc_param_vmax_b_frames;
+     lavc_venc_context->b_quant_factor     = lavc_param_vb_qfactor;
+-    lavc_venc_context->rc_strategy        = lavc_param_vrc_strategy;
+     lavc_venc_context->b_frame_strategy   = lavc_param_vb_strategy;
+     lavc_venc_context->b_quant_offset     = lavc_param_vb_qoffset;
+-    lavc_venc_context->luma_elim_threshold= lavc_param_luma_elim_threshold;
+-    lavc_venc_context->chroma_elim_threshold= lavc_param_chroma_elim_threshold;
++
++    char buf[1024];
++#define set_dict_opt(val, opt) \
++	snprintf(buf, sizeof(buf), "%i", val); \
++	av_dict_set(&lavc_venc_opts, opt, buf, 0)
++#define set_dict_float_opt(val, opt) \
++	snprintf(buf, sizeof(buf), "%f", val); \
++	av_dict_set(&lavc_venc_opts, opt, buf, 0)
++    set_dict_opt(lavc_param_luma_elim_threshold, "luma_elim_threshold");
++    set_dict_opt(lavc_param_chroma_elim_threshold, "chroma_elim_threshold");
++    set_dict_opt((int)(FF_QP2LAMBDA * lavc_param_lmin + 0.5), "lmin");
++    set_dict_opt((int)(FF_QP2LAMBDA * lavc_param_lmax + 0.5), "lmax");
++    set_dict_opt(lavc_param_vrc_strategy, "rc_strategy");
++    set_dict_float_opt(lavc_param_rc_qsquish, "qsquish");
++    set_dict_float_opt(lavc_param_rc_qmod_amp, "rc_qmod_amp");
++    set_dict_opt(lavc_param_rc_qmod_freq, "rc_qmod_freq");
++    set_dict_opt(lavc_param_rc_eq, "rc_eq");
++    set_dict_opt(lavc_param_vme, "me_method");
++    set_dict_opt(lavc_param_ibias, "ibias");
++    set_dict_opt(lavc_param_pbias, "pbias");
++    set_dict_float_opt(lavc_param_rc_buffer_aggressivity, "rc_buf_aggressivity");
++    set_dict_float_opt(lavc_param_rc_initial_cplx, "rc_init_cplx");
+     lavc_venc_context->rtp_payload_size   = lavc_param_packet_size;
+ #if LIBAVCODEC_VERSION_INT < ((52<<16)+(0<<8)+0)   
+     if (lavc_param_packet_size)
+@@ -848,15 +865,9 @@
+     lavc_venc_context->strict_std_compliance= lavc_param_strict;
+     lavc_venc_context->i_quant_factor     = lavc_param_vi_qfactor;
+     lavc_venc_context->i_quant_offset     = lavc_param_vi_qoffset;
+-    lavc_venc_context->rc_qsquish         = lavc_param_rc_qsquish;
+-    lavc_venc_context->rc_qmod_amp        = lavc_param_rc_qmod_amp;
+-    lavc_venc_context->rc_qmod_freq       = lavc_param_rc_qmod_freq;
+-    lavc_venc_context->rc_eq              = lavc_param_rc_eq;
+     lavc_venc_context->rc_max_rate        = lavc_param_rc_max_rate * 1000;
+     lavc_venc_context->rc_min_rate        = lavc_param_rc_min_rate * 1000;
+     lavc_venc_context->rc_buffer_size     = lavc_param_rc_buffer_size * 1024;
+-    lavc_venc_context->rc_buffer_aggressivity= lavc_param_rc_buffer_aggressivity;
+-    lavc_venc_context->rc_initial_cplx    = lavc_param_rc_initial_cplx;
+     lavc_venc_context->debug              = lavc_param_debug;
+     lavc_venc_context->last_predictor_count= lavc_param_last_pred;
+     lavc_venc_context->pre_me             = lavc_param_pre_me;
+@@ -864,13 +875,11 @@
+     lavc_venc_context->pre_dia_size       = lavc_param_pre_dia_size;
+     lavc_venc_context->me_subpel_quality  = lavc_param_me_subpel_quality;
+     lavc_venc_context->me_range           = lavc_param_me_range;
+-    lavc_venc_context->intra_quant_bias   = lavc_param_ibias;
+-    lavc_venc_context->inter_quant_bias   = lavc_param_pbias;
+     lavc_venc_context->coder_type         = lavc_param_coder;
+     lavc_venc_context->context_model      = lavc_param_context;
+     lavc_venc_context->scenechange_threshold= lavc_param_sc_threshold;
+     lavc_venc_context->noise_reduction    = lavc_param_noise_reduction;
+-    lavc_venc_context->inter_threshold    = lavc_param_inter_threshold;
++    set_dict_opt(lavc_param_inter_threshold, "inter_threshold");
+     lavc_venc_context->intra_dc_precision = lavc_param_intra_dc_precision;
+     lavc_venc_context->skip_top           = lavc_param_skip_top;
+     lavc_venc_context->skip_bottom        = lavc_param_skip_bottom;
+@@ -887,7 +896,7 @@
+ 		    lavc_venc_context->thread_count);
+     }
+ 
+-    avcodec_thread_init(lavc_venc_context, lavc_param_threads);
++    lavc_venc_context->thread_count = lavc_param_threads;
+ 
+     if (lavc_param_intra_matrix) {
+         char *tmp;
+@@ -1065,15 +1074,14 @@
+     lavc_venc_context->flags |= lavc_param_closedgop;
+     lavc_venc_context->flags |= lavc_param_trunc;
+     lavc_venc_context->flags |= lavc_param_aic;
+-    lavc_venc_context->flags |= lavc_param_umv;
+     lavc_venc_context->flags |= lavc_param_v4mv;
+-    lavc_venc_context->flags |= lavc_param_data_partitioning;
+-    lavc_venc_context->flags |= lavc_param_cbp;
++    if(lavc_param_cbp)
++    	av_dict_set(&lavc_venc_opts, "mpv_flags", "+cbp_rd", 0);
+     lavc_venc_context->flags |= lavc_param_mv0;
+-    lavc_venc_context->flags |= lavc_param_qp_rd;
+-    lavc_venc_context->flags |= lavc_param_scan_offset;
+-    lavc_venc_context->flags |= lavc_param_ss;
+-    lavc_venc_context->flags |= lavc_param_alt;
++    if(lavc_param_qp_rd)
++    	av_dict_set(&lavc_venc_opts, "mpv_flags", "+qp_rd", 0);
++    if (lavc_param_normalize_aqp)
++    	av_dict_set(&lavc_venc_opts, "mpv_flags", "+naq", 0);
+     lavc_venc_context->flags |= lavc_param_ilme;
+ #if LIBAVCODEC_VERSION_INT < ((52<<16)+(0<<8)+0)   
+     lavc_venc_context->flags |= lavc_param_trell;
+@@ -1082,9 +1090,7 @@
+ #endif
+ 
+     if (lavc_param_gray)
+-        lavc_venc_context->flags |= CODEC_FLAG_GRAY;
+-    if (lavc_param_normalize_aqp)
+-        lavc_venc_context->flags |= CODEC_FLAG_NORMALIZE_AQP;
++        lavc_venc_context->flags |= AV_CODEC_FLAG_GRAY;
+ 
+     switch(vob->encode_fields) {
+     case TC_ENCODE_FIELDS_TOP_FIRST:
+@@ -1102,9 +1108,9 @@
+     }
+ 
+     lavc_venc_context->flags |= interlacing_active ?
+-        CODEC_FLAG_INTERLACED_DCT : 0;
++        AV_CODEC_FLAG_INTERLACED_DCT : 0;
+     lavc_venc_context->flags |= interlacing_active ?
+-        CODEC_FLAG_INTERLACED_ME : 0;
++        AV_CODEC_FLAG_INTERLACED_ME : 0;
+ 
+     lavc_venc_context->flags |= lavc_param_psnr;
+     do_psnr = lavc_param_psnr;
+@@ -1112,7 +1118,7 @@
+     lavc_venc_context->prediction_method = lavc_param_prediction_method;
+ 
+     if(is_huffyuv)
+-        lavc_venc_context->pix_fmt = PIX_FMT_YUV422P;
++        lavc_venc_context->pix_fmt = AV_PIX_FMT_YUV422P;
+     else
+     {
+         switch(pix_fmt)
+@@ -1121,18 +1127,18 @@
+             case CODEC_RGB:
+             {
+                 if(is_mjpeg)
+-                    lavc_venc_context->pix_fmt = PIX_FMT_YUVJ420P;
++                    lavc_venc_context->pix_fmt = AV_PIX_FMT_YUVJ420P;
+                 else
+-                    lavc_venc_context->pix_fmt = PIX_FMT_YUV420P;
++                    lavc_venc_context->pix_fmt = AV_PIX_FMT_YUV420P;
+                 break;
+             }
+ 
+             case CODEC_YUV422:
+             {
+                 if(is_mjpeg)
+-                    lavc_venc_context->pix_fmt = PIX_FMT_YUVJ422P;
++                    lavc_venc_context->pix_fmt = AV_PIX_FMT_YUVJ422P;
+                 else
+-                    lavc_venc_context->pix_fmt = PIX_FMT_YUV422P;
++                    lavc_venc_context->pix_fmt = AV_PIX_FMT_YUV422P;
+                 break;
+             }
+ 
+@@ -1151,7 +1157,7 @@
+                   "encoding.");
+           return TC_EXPORT_ERROR;
+         }
+-        lavc_venc_context->flags |= CODEC_FLAG_PASS1;
++        lavc_venc_context->flags |= AV_CODEC_FLAG_PASS1;
+         stats_file = fopen(vob->divxlogfile, "w");
+         if (stats_file == NULL){
+           tc_log_warn(MOD_NAME, "Could not create 2pass log file \"%s\".",
+@@ -1165,7 +1171,7 @@
+                   "encoding.");
+           return TC_EXPORT_ERROR;
+         }
+-        lavc_venc_context->flags |= CODEC_FLAG_PASS2;
++        lavc_venc_context->flags |= AV_CODEC_FLAG_PASS2;
+         stats_file= fopen(vob->divxlogfile, "r");
+         if (stats_file==NULL){
+           tc_log_warn(MOD_NAME, "Could not open 2pass log file \"%s\" for "
+@@ -1196,18 +1202,16 @@
+         break;
+       case 3:
+         /* fixed qscale :p */
+-        lavc_venc_context->flags   |= CODEC_FLAG_QSCALE;
++        lavc_venc_context->flags   |= AV_CODEC_FLAG_QSCALE;
+         lavc_venc_frame->quality  = vob->divxbitrate;
+         break;
+     }
+ 
+-    lavc_venc_context->me_method = ME_ZERO + lavc_param_vme;
+-
+ 
+ 	/* FIXME: transcode itself contains "broken ffmpeg default settings", thus we need to override them! */
+-	if (lavc_param_video_preset) {
++	if (lavc_param_video_preset && strcmp(lavc_param_video_preset, "none")) {
+ 		avcodec_opts[AVMEDIA_TYPE_VIDEO] = lavc_venc_context;
+-		video_codec_name = ffmpeg_codec_name(codec->name);
++		video_codec_name = av_strdup(ffmpeg_codec_name(codec->name));
+ 
+ 		const char *preset_start = lavc_param_video_preset;
+ 		while (preset_start) {
+@@ -1225,6 +1229,8 @@
+ 			if (opt_preset("vpre", preset_name) != 0) {
+ 				tc_log_warn(MOD_NAME, "Parsing ffmpeg preset '%s' failed", preset_name);
+ 			}
++      av_free(video_codec_name);
++      video_codec_name = NULL;
+ 			if (verbose) {
+ 				int i;
+ 				tc_log_info(MOD_NAME, "After parsing preset '%s', %i options are overridden:", preset_name, opt_name_count);
+@@ -1241,20 +1247,39 @@
+ 		}
+ 	}
+ 
++    if (lavc_param_scan_offset) {
++      av_dict_set(&lavc_venc_opts, "scan_offset", "1", 0);
++    }
++
++    if (lavc_param_ss) {
++      av_dict_set(&lavc_venc_opts, "structured_slices", "1", 0);
++    }
++
++    if (lavc_param_alt) {
++      av_dict_set(&lavc_venc_opts, "alternate_scan", "1", 0);
++    }
++
++    if (lavc_param_umv) {
++      av_dict_set(&lavc_venc_opts, "umv", "1", 0);
++    }
++
++    if (lavc_param_data_partitioning) {
++      av_dict_set(&lavc_venc_opts, "vdpart", "1", 0);
++    }
+ 
+     //-- open codec --
+     //----------------
+     TC_LOCK_LIBAVCODEC;
+-    ret = avcodec_open(lavc_venc_context, lavc_venc_codec);
++    ret = avcodec_open2(lavc_venc_context, lavc_venc_codec, &lavc_venc_opts);
+     TC_UNLOCK_LIBAVCODEC;
+     if (ret < 0) {
+       tc_log_warn(MOD_NAME, "could not open FFMPEG codec");
+       return TC_EXPORT_ERROR;
+     }
+ 
+-    if (lavc_venc_context->codec->encode == NULL) {
++    if (av_codec_is_encoder(lavc_venc_context->codec) == 0) {
+       tc_log_warn(MOD_NAME, "could not open FFMPEG codec "
+-              "(lavc_venc_context->codec->encode == NULL)");
++              "(av_codec_is_encoder(lavc_venc_context->codec) == 0)");
+       return TC_EXPORT_ERROR;
+     }
+ 
+@@ -1598,7 +1623,7 @@
+ 	        	YUV_INIT_PLANES(src, param->buffer, IMG_YUV_DEFAULT,
+ 			                	lavc_venc_context->width, lavc_venc_context->height);
+                 avpicture_fill((AVPicture *)lavc_venc_frame, img_buffer,
+-                               PIX_FMT_YUV422P, lavc_venc_context->width,
++                               AV_PIX_FMT_YUV422P, lavc_venc_context->width,
+                                lavc_venc_context->height);
+         		/* FIXME: can't use tcv_convert (see decode_lavc.c) */
+                 ac_imgconvert(src, IMG_YUV_DEFAULT,
+@@ -1628,7 +1653,7 @@
+ 		                		lavc_venc_context->width,
+                                 lavc_venc_context->height);
+                 avpicture_fill((AVPicture *)lavc_venc_frame, img_buffer,
+-                               PIX_FMT_YUV420P, lavc_venc_context->width,
++                               AV_PIX_FMT_YUV420P, lavc_venc_context->width,
+                                lavc_venc_context->height);
+                 ac_imgconvert(src, IMG_YUV422P,
+                               lavc_venc_frame->data, IMG_YUV420P,
+@@ -1639,7 +1664,7 @@
+ 
+         case CODEC_RGB:
+             avpicture_fill((AVPicture *)lavc_venc_frame, img_buffer,
+-                           PIX_FMT_YUV420P, lavc_venc_context->width,
++                           AV_PIX_FMT_YUV420P, lavc_venc_context->width,
+                            lavc_venc_context->height);
+     	    ac_imgconvert(&param->buffer, IMG_RGB_DEFAULT,
+                               lavc_venc_frame->data, IMG_YUV420P,
+diff -Naur a/export/ffmpeg_cfg.c b/export/ffmpeg_cfg.c
+--- a/export/ffmpeg_cfg.c	2011-11-19 16:50:27.000000000 +0000
++++ b/export/ffmpeg_cfg.c	2018-05-14 01:58:58.346408791 +0100
+@@ -95,8 +95,8 @@
+ int lavc_param_pre_me= 1;
+ int lavc_param_me_subpel_quality= 8;
+ int lavc_param_me_range=0;
+-int lavc_param_ibias=FF_DEFAULT_QUANT_BIAS;
+-int lavc_param_pbias=FF_DEFAULT_QUANT_BIAS;
++int lavc_param_ibias=0;
++int lavc_param_pbias=0;
+ int lavc_param_coder=0;
+ int lavc_param_context=0;
+ char *lavc_param_intra_matrix = NULL;
+@@ -126,7 +126,7 @@
+ //int lavc_param_atag = 0;
+ //int lavc_param_abitrate = 224;
+ 
+-char *lavc_param_video_preset = "medium";
++char *lavc_param_video_preset = "none";
+ char *lavc_param_ffmpeg_datadir = "/usr/share/ffmpeg";
+ 
+ TCConfigEntry lavcopts_conf[]={
+@@ -138,7 +138,7 @@
+     {"vratetol", &lavc_param_vrate_tolerance, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 4, 24000000},
+     {"vhq", &lavc_param_mb_decision, TCCONF_TYPE_FLAG, 0, 0, 1},
+     {"mbd", &lavc_param_mb_decision, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 9},
+-    {"v4mv", &lavc_param_v4mv, TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_4MV},
++    {"v4mv", &lavc_param_v4mv, TCCONF_TYPE_FLAG, 0, 0, AV_CODEC_FLAG_4MV},
+     {"vme", &lavc_param_vme, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 5},
+ //    {"vqscale", &lavc_param_vqscale, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 1, 31},
+ //    {"vqmin", &lavc_param_vqmin, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 1, 31},
+@@ -151,7 +151,7 @@
+     {"vqcomp", &lavc_param_vqcompress, TCCONF_TYPE_FLOAT, TCCONF_FLAG_RANGE, 0.0, 1.0},
+     {"vqblur", &lavc_param_vqblur, TCCONF_TYPE_FLOAT, TCCONF_FLAG_RANGE, 0.0, 1.0},
+     {"vb_qfactor", &lavc_param_vb_qfactor, TCCONF_TYPE_FLOAT, TCCONF_FLAG_RANGE, -31.0, 31.0},
+-    {"vmax_b_frames", &lavc_param_vmax_b_frames, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, FF_MAX_B_FRAMES},
++    {"vmax_b_frames", &lavc_param_vmax_b_frames, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, INT_MAX},
+ //    {"vpass", &lavc_param_vpass, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 2},
+     {"vrc_strategy", &lavc_param_vrc_strategy, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 2},
+     {"vb_strategy", &lavc_param_vb_strategy, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 10},
+@@ -160,9 +160,9 @@
+     {"vcelim", &lavc_param_chroma_elim_threshold, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, -99, 99},
+     {"vpsize", &lavc_param_packet_size, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 100000000},
+     {"vstrict", &lavc_param_strict, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, -99, 99},
+-    {"vdpart", &lavc_param_data_partitioning, TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_PART},
++    {"vdpart", &lavc_param_data_partitioning, TCCONF_TYPE_FLAG, 0, 0, 1},
+ //    {"keyint", &lavc_param_keyint, TCCONF_TYPE_INT, 0, 0, 0},
+-    {"gray", &lavc_param_gray, TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_PART},
++    {"gray", &lavc_param_gray, TCCONF_TYPE_FLAG, 0, 0, AV_CODEC_FLAG_GRAY},
+     {"mpeg_quant", &lavc_param_mpeg_quant, TCCONF_TYPE_FLAG, 0, 0, 1},
+     {"vi_qfactor", &lavc_param_vi_qfactor, TCCONF_TYPE_FLOAT, TCCONF_FLAG_RANGE, -31.0, 31.0},
+     {"vi_qoffset", &lavc_param_vi_qoffset, TCCONF_TYPE_FLOAT, TCCONF_FLAG_RANGE, 0.0, 31.0},
+@@ -188,7 +188,7 @@
+     {"pred", &lavc_param_prediction_method, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 20},
+     {"format", &lavc_param_format, TCCONF_TYPE_STRING, 0, 0, 0},
+     {"debug", &lavc_param_debug, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 100000000},
+-    {"psnr", &lavc_param_psnr, TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_PSNR},
++    {"psnr", &lavc_param_psnr, TCCONF_TYPE_FLAG, 0, 0, AV_CODEC_FLAG_PSNR},
+     {"precmp", &lavc_param_me_pre_cmp, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 2000},
+     {"cmp", &lavc_param_me_cmp, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 2000},
+     {"subcmp", &lavc_param_me_sub_cmp, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 2000},
+@@ -196,9 +196,9 @@
+     {"ildctcmp", &lavc_param_ildct_cmp, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 2000},
+     {"predia", &lavc_param_pre_dia_size, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, -2000, 2000},
+     {"dia", &lavc_param_dia_size, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, -2000, 2000},
+-    {"qpel", &lavc_param_qpel, TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_QPEL},
++    {"qpel", &lavc_param_qpel, TCCONF_TYPE_FLAG, 0, 0, AV_CODEC_FLAG_QPEL},
+ #if LIBAVCODEC_VERSION_INT < ((52<<16)+(0<<8)+0)   
+-    {"trell", &lavc_param_trell, TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_TRELLIS_QUANT},
++    {"trell", &lavc_param_trell, TCCONF_TYPE_FLAG, 0, 0, AV_CODEC_FLAG_TRELLIS_QUANT},
+ #else
+     {"trell", &lavc_param_trell, TCCONF_TYPE_FLAG, 0, 0, 1},
+ #endif
+@@ -207,32 +207,32 @@
+     {"subq", &lavc_param_me_subpel_quality, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 8},
+     {"me_range", &lavc_param_me_range, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 16000},
+ #if LIBAVCODEC_VERSION_INT < ((52<<16)+(0<<8)+0)   
+-    {"aic", &lavc_param_aic, TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_H263P_AIC},
++    {"aic", &lavc_param_aic, TCCONF_TYPE_FLAG, 0, 0, AV_CODEC_FLAG_H263P_AIC},
+ #else
+-    {"aic", &lavc_param_aic, TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_AC_PRED},
++    {"aic", &lavc_param_aic, TCCONF_TYPE_FLAG, 0, 0, AV_CODEC_FLAG_AC_PRED},
+ #endif    
+-    {"umv", &lavc_param_umv, TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_H263P_UMV},
++    {"umv", &lavc_param_umv, TCCONF_TYPE_FLAG, 0, 0, 1},
+     {"ibias", &lavc_param_ibias, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, -512, 512},
+     {"pbias", &lavc_param_pbias, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, -512, 512},
+     {"coder", &lavc_param_coder, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 10},
+     {"context", &lavc_param_context, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 10},
+     {"intra_matrix", &lavc_param_intra_matrix, TCCONF_TYPE_STRING, 0, 0, 0},
+     {"inter_matrix", &lavc_param_inter_matrix, TCCONF_TYPE_STRING, 0, 0, 0},
+-    {"cbp", &lavc_param_cbp, TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_CBP_RD},
+-    {"mv0", &lavc_param_mv0, TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_MV0},
++    {"cbp", &lavc_param_cbp, TCCONF_TYPE_FLAG, 0, 0, 1},
++    {"mv0", &lavc_param_mv0, TCCONF_TYPE_FLAG, 0, 0, 1},
+     {"nr", &lavc_param_noise_reduction, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 1000000},
+-    {"qprd", &lavc_param_qp_rd, TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_QP_RD},
++    {"qprd", &lavc_param_qp_rd, TCCONF_TYPE_FLAG, 0, 0, 1},
+     {"threads", &lavc_param_threads, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 1, 16},
+-    {"ss", &lavc_param_ss, TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_H263P_SLICE_STRUCT},
+-    {"svcd_sof", &lavc_param_scan_offset, TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_SVCD_SCAN_OFFSET},
+-    {"alt", &lavc_param_alt, TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_ALT_SCAN},
+-    {"ilme", &lavc_param_ilme, TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_INTERLACED_ME},
++    {"ss", &lavc_param_ss, TCCONF_TYPE_FLAG, 0, 0, 1},
++    {"svcd_sof", &lavc_param_scan_offset, TCCONF_TYPE_FLAG, 0, 0, 1},
++    {"alt", &lavc_param_alt, TCCONF_TYPE_FLAG, 0, 0, 1},
++    {"ilme", &lavc_param_ilme, TCCONF_TYPE_FLAG, 0, 0, AV_CODEC_FLAG_INTERLACED_ME},
+     {"inter_threshold", &lavc_param_inter_threshold, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, -1000000, 1000000},
+     {"sc_threshold", &lavc_param_sc_threshold, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, -1000000, 1000000},
+     {"top", &lavc_param_top, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, -1, 1},
+-    {"gmc", &lavc_param_gmc, TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_GMC},
+-    {"trunc", &lavc_param_trunc, TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_TRUNCATED},
+-    {"closedgop", &lavc_param_closedgop, TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_CLOSED_GOP},
++    {"gmc", &lavc_param_gmc, TCCONF_TYPE_FLAG, 0, 0, 1},
++    {"trunc", &lavc_param_trunc, TCCONF_TYPE_FLAG, 0, 0, AV_CODEC_FLAG_TRUNCATED},
++    {"closedgop", &lavc_param_closedgop, TCCONF_TYPE_FLAG, 0, 0, AV_CODEC_FLAG_CLOSED_GOP},
+     {"intra_dc_precision", &lavc_param_intra_dc_precision, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 16},
+     {"skip_top", &lavc_param_skip_top, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 1000},
+     {"skip_bottom", &lavc_param_skip_bottom, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 1000},
+diff -Naur a/filter/filter_pp.c b/filter/filter_pp.c
+--- a/filter/filter_pp.c	2011-11-19 16:50:27.000000000 +0000
++++ b/filter/filter_pp.c	2018-05-14 01:58:58.347408780 +0100
+@@ -38,8 +38,8 @@
+ 
+ /* FIXME: these use the filter ID as an index--the ID can grow
+  * arbitrarily large, so this needs to be fixed */
+-static pp_mode_t *mode[100];
+-static pp_context_t *context[100];
++static pp_mode *mode[100];
++static pp_context *context[100];
+ static int width[100], height[100];
+ static int pre[100];
+ 
+diff -Naur a/filter/filter_resample.c b/filter/filter_resample.c
+--- a/filter/filter_resample.c	2011-11-19 16:50:27.000000000 +0000
++++ b/filter/filter_resample.c	2018-05-14 01:58:58.347408780 +0100
+@@ -37,6 +37,7 @@
+ #include "libtc/optstr.h"
+ #include "libtc/tcavcodec.h"
+ #include "libtc/tcmodule-plugin.h"
++#include <libavresample/avresample.h>
+ 
+ 
+ typedef struct {
+@@ -45,7 +46,7 @@
+ 
+     int bytes_per_sample;
+ 
+-    ReSampleContext *resample_ctx;
++    AVAudioResampleContext *resample_ctx;
+ } ResamplePrivateData;
+ 
+ static const char resample_help[] = ""
+diff -Naur a/filter/subtitler/load_font.c b/filter/subtitler/load_font.c
+--- a/filter/subtitler/load_font.c	2011-11-19 16:50:27.000000000 +0000
++++ b/filter/subtitler/load_font.c	2018-05-14 01:58:58.347408780 +0100
+@@ -47,8 +47,8 @@
+ // FreeType specific includes
+ #include <ft2build.h>
+ #include FT_FREETYPE_H
++#include FT_GLYPH_H
+ 
+-#include <freetype/ftglyph.h>
+ 
+ /**
+  * @file bswap.h
+diff -Naur a/import/decode_lavc.c b/import/decode_lavc.c
+--- a/import/decode_lavc.c	2011-11-19 16:50:27.000000000 +0000
++++ b/import/decode_lavc.c	2018-05-14 01:58:58.347408780 +0100
+@@ -57,6 +57,7 @@
+ };
+ 
+ // fourCC to ID mapping taken from MPlayer's codecs.conf
++#if LIBAVCODEC_VERSION_MAJOR < 55
+ static struct ffmpeg_codec ffmpeg_codecs[] = {
+   {CODEC_ID_MSMPEG4V1, TC_CODEC_ERROR, "mp41",
+     {"MP41", "DIV1", ""}},
+@@ -91,6 +92,42 @@
+   {CODEC_ID_MPEG2VIDEO, TC_CODEC_MPEG2, "mpeg2video",
+     {"MPG2", ""}},
+   {0, TC_CODEC_UNKNOWN, NULL, {""}}};
++#else
++static struct ffmpeg_codec ffmpeg_codecs[] = {
++  {AV_CODEC_ID_MSMPEG4V1, TC_CODEC_ERROR, "mp41",
++    {"MP41", "DIV1", ""}},
++  {AV_CODEC_ID_MSMPEG4V2, TC_CODEC_MP42, "mp42",
++    {"MP42", "DIV2", ""}},
++  {AV_CODEC_ID_MSMPEG4V3, TC_CODEC_DIVX3, "msmpeg4",
++    {"DIV3", "DIV5", "AP41", "MPG3", "MP43", ""}},
++  {AV_CODEC_ID_MPEG4, TC_CODEC_DIVX4, "mpeg4",
++    {"DIVX", "XVID", "MP4S", "M4S2", "MP4V", "UMP4", "DX50", ""}},
++  {AV_CODEC_ID_MJPEG, TC_CODEC_MJPEG, "mjpeg",
++    {"MJPG", "AVRN", "AVDJ", "JPEG", "MJPA", "JFIF", ""}},
++  {AV_CODEC_ID_MPEG1VIDEO, TC_CODEC_MPEG1VIDEO, "mpeg1video",
++    {"MPG1", ""}},
++  {AV_CODEC_ID_DVVIDEO, TC_CODEC_DV, "dvvideo",
++    {"DVSD", ""}},
++  {AV_CODEC_ID_WMV1, TC_CODEC_WMV1, "wmv1",
++    {"WMV1", ""}},
++  {AV_CODEC_ID_WMV2, TC_CODEC_WMV2, "wmv2",
++    {"WMV2", ""}},
++  {AV_CODEC_ID_HUFFYUV, TC_CODEC_HUFFYUV, "hfyu",
++    {"HFYU", ""}},
++  {AV_CODEC_ID_H263I, TC_CODEC_H263I, "h263i",
++    {"I263", ""}},
++  {AV_CODEC_ID_H263P, TC_CODEC_H263P, "h263p",
++    {"H263", "U263", "VIV1", ""}},
++  {AV_CODEC_ID_RV10, TC_CODEC_RV10, "rv10",
++    {"RV10", "RV13", ""}},
++  {AV_CODEC_ID_SVQ1, TC_CODEC_SVQ1, "svq1",
++    {"SVQ1", ""}},
++  {AV_CODEC_ID_SVQ3, TC_CODEC_SVQ3, "svq3",
++    {"SVQ3", ""}},
++  {AV_CODEC_ID_MPEG2VIDEO, TC_CODEC_MPEG2, "mpeg2video",
++    {"MPG2", ""}},
++  {0, TC_CODEC_UNKNOWN, NULL, {""}}};
++#endif
+ 
+ 
+ static struct ffmpeg_codec *find_ffmpeg_codec_id(unsigned int transcode_id)
+@@ -170,7 +207,7 @@
+ 
+   // Set these to the expected values so that ffmpeg's decoder can
+   // properly detect interlaced input.
+-  lavc_dec_context = avcodec_alloc_context();
++  lavc_dec_context = avcodec_alloc_context3(NULL);
+   if (lavc_dec_context == NULL) {
+       tc_log_error(__FILE__, "Could not allocate enough memory.");
+       goto decoder_error;
+@@ -181,12 +218,12 @@
+ #if LIBAVCODEC_VERSION_INT < ((52<<16)+(0<<8)+0)
+   lavc_dec_context->error_resilience  = 2;
+ #else
+-  lavc_dec_context->error_recognition = 2;
++  lavc_dec_context->err_recognition = 2;
+ #endif
+   lavc_dec_context->error_concealment = 3;
+   lavc_dec_context->workaround_bugs = FF_BUG_AUTODETECT;
+ 
+-  if (avcodec_open(lavc_dec_context, lavc_dec_codec) < 0) {
++  if (avcodec_open2(lavc_dec_context, lavc_dec_codec, NULL) < 0) {
+       tc_log_error(__FILE__, "Could not initialize the '%s' codec.",
+ 		   codec->name);
+       goto decoder_error;
+@@ -290,8 +327,8 @@
+ 
+       // Convert avcodec image to the requested YUV or RGB format
+       switch (lavc_dec_context->pix_fmt) {
+-	case PIX_FMT_YUVJ420P:
+-	case PIX_FMT_YUV420P:
++	case AV_PIX_FMT_YUVJ420P:
++	case AV_PIX_FMT_YUV420P:
+ 	    // Remove "dead space" at right edge of planes, if any
+ 	    if (picture.linesize[0] != lavc_dec_context->width) {
+ 		int y;
+@@ -315,7 +352,7 @@
+ 			  pix_fmt==TC_CODEC_YUV420P ? IMG_YUV420P : IMG_RGB_DEFAULT,
+ 			  lavc_dec_context->width, lavc_dec_context->height);
+ 	    break;
+-	case PIX_FMT_YUV411P:
++	case AV_PIX_FMT_YUV411P:
+ 	    if (picture.linesize[0] != lavc_dec_context->width) {
+ 		int y;
+ 		for (y = 0; y < lavc_dec_context->height; y++) {
+@@ -334,8 +371,8 @@
+ 			  pix_fmt==TC_CODEC_YUV420P ? IMG_YUV420P : IMG_RGB_DEFAULT,
+ 			  lavc_dec_context->width, lavc_dec_context->height);
+ 	    break;
+-	case PIX_FMT_YUVJ422P:
+-	case PIX_FMT_YUV422P:
++	case AV_PIX_FMT_YUVJ422P:
++	case AV_PIX_FMT_YUV422P:
+ 	    if (picture.linesize[0] != lavc_dec_context->width) {
+ 		int y;
+ 		for (y = 0; y < lavc_dec_context->height; y++) {
+@@ -354,8 +391,8 @@
+ 			  pix_fmt==TC_CODEC_YUV420P ? IMG_YUV420P : IMG_RGB_DEFAULT,
+ 			  lavc_dec_context->width, lavc_dec_context->height);
+ 	    break;
+-	case PIX_FMT_YUVJ444P:
+-	case PIX_FMT_YUV444P:
++	case AV_PIX_FMT_YUVJ444P:
++	case AV_PIX_FMT_YUV444P:
+ 	    if (picture.linesize[0] != lavc_dec_context->width) {
+ 		int y;
+ 		for (y = 0; y < lavc_dec_context->height; y++) {
+diff -Naur a/import/import_ffmpeg.c b/import/import_ffmpeg.c
+--- a/import/import_ffmpeg.c	2011-11-19 16:50:27.000000000 +0000
++++ b/import/import_ffmpeg.c	2018-05-14 01:58:58.347408780 +0100
+@@ -58,6 +58,7 @@
+ };
+ 
+ // fourCC to ID mapping taken from MPlayer's codecs.conf
++#if LIBAVCODEC_VERSION_MAJOR < 55
+ static struct ffmpeg_codec ffmpeg_codecs[] = {
+   {CODEC_ID_MSMPEG4V1, TC_CODEC_ERROR, "mp41",
+     {"MP41", "DIV1", ""}},
+@@ -106,6 +107,56 @@
+   {CODEC_ID_RAWVIDEO, TC_CODEC_YUV422P, "raw",
+     {"Y42B", ""}},
+   {0, TC_CODEC_UNKNOWN, NULL, {""}}};
++#else
++static struct ffmpeg_codec ffmpeg_codecs[] = {
++  {AV_CODEC_ID_MSMPEG4V1, TC_CODEC_ERROR, "mp41",
++    {"MP41", "DIV1", ""}},
++  {AV_CODEC_ID_MSMPEG4V2, TC_CODEC_MP42, "mp42",
++    {"MP42", "DIV2", ""}},
++  {AV_CODEC_ID_MSMPEG4V3, TC_CODEC_DIVX3, "msmpeg4",
++    {"DIV3", "DIV5", "AP41", "MPG3", "MP43", ""}},
++  {AV_CODEC_ID_MPEG4, TC_CODEC_DIVX4, "mpeg4",
++    {"DIVX", "XVID", "MP4S", "M4S2", "MP4V", "UMP4", "DX50", ""}},
++  {AV_CODEC_ID_MJPEG, TC_CODEC_MJPEG, "mjpeg",
++    {"MJPG", "AVRN", "AVDJ", "JPEG", "MJPA", "JFIF", ""}},
++  {AV_CODEC_ID_MPEG1VIDEO, TC_CODEC_MPG1, "mpeg1video",
++    {"MPG1", ""}},
++  {AV_CODEC_ID_DVVIDEO, TC_CODEC_DV, "dvvideo",
++    {"DVSD", ""}},
++  {AV_CODEC_ID_WMV1, TC_CODEC_WMV1, "wmv1",
++    {"WMV1", ""}},
++  {AV_CODEC_ID_WMV2, TC_CODEC_WMV2, "wmv2",
++    {"WMV2", ""}},
++  {AV_CODEC_ID_HUFFYUV, TC_CODEC_HUFFYUV, "hfyu",
++    {"HFYU", ""}},
++  {AV_CODEC_ID_H263I, TC_CODEC_H263I, "h263i",
++    {"I263", ""}},
++  {AV_CODEC_ID_H263P, TC_CODEC_H263P, "h263p",
++    {"H263", "U263", "VIV1", ""}},
++  {AV_CODEC_ID_H264, TC_CODEC_H264, "h264",
++    {"H264", "h264", "X264", "x264", "avc1", ""}},
++  {AV_CODEC_ID_RV10, TC_CODEC_RV10, "rv10",
++    {"RV10", "RV13", ""}},
++  {AV_CODEC_ID_SVQ1, TC_CODEC_SVQ1, "svq1",
++    {"SVQ1", ""}},
++  {AV_CODEC_ID_SVQ3, TC_CODEC_SVQ3, "svq3",
++    {"SVQ3", ""}},
++  {AV_CODEC_ID_MPEG2VIDEO, TC_CODEC_MPEG2, "mpeg2video",
++    {"MPG2", ""}},
++  {AV_CODEC_ID_MPEG2VIDEO, TC_CODEC_MPEG, "mpeg2video",
++    {"MPG2", ""}},
++  {AV_CODEC_ID_ASV1, TC_CODEC_ASV1, "asv1",
++    {"ASV1", ""}},
++  {AV_CODEC_ID_ASV2, TC_CODEC_ASV2, "asv2",
++    {"ASV2", ""}},
++  {AV_CODEC_ID_FFV1, TC_CODEC_FFV1, "ffv1",
++    {"FFV1", ""}},
++  {AV_CODEC_ID_RAWVIDEO, TC_CODEC_YUV420P, "raw",
++    {"I420", "IYUV", ""}},
++  {AV_CODEC_ID_RAWVIDEO, TC_CODEC_YUV422P, "raw",
++    {"Y42B", ""}},
++  {0, TC_CODEC_UNKNOWN, NULL, {""}}};
++#endif
+ 
+ #define BUFFER_SIZE SIZE_RGB_FRAME
+ 
+@@ -302,7 +353,7 @@
+ 
+     // Set these to the expected values so that ffmpeg's decoder can
+     // properly detect interlaced input.
+-    lavc_dec_context = avcodec_alloc_context();
++    lavc_dec_context = avcodec_alloc_context3(lavc_dec_codec);
+     if (lavc_dec_context == NULL) {
+       tc_log_error(MOD_NAME, "Could not allocate enough memory.");
+       return TC_IMPORT_ERROR;
+@@ -310,11 +361,11 @@
+     lavc_dec_context->width  = x_dim;
+     lavc_dec_context->height = y_dim;
+ 
+-    if (vob->decolor) lavc_dec_context->flags |= CODEC_FLAG_GRAY;
++    if (vob->decolor) lavc_dec_context->flags |= AV_CODEC_FLAG_GRAY;
+ #if LIBAVCODEC_VERSION_INT < ((52<<16)+(0<<8)+0)
+     lavc_dec_context->error_resilience  = 2;
+ #else
+-    lavc_dec_context->error_recognition = 2;
++    lavc_dec_context->err_recognition = 2;
+ #endif
+     lavc_dec_context->error_concealment = 3;
+     lavc_dec_context->workaround_bugs = FF_BUG_AUTODETECT;
+@@ -324,6 +375,7 @@
+     // XXX: some codecs need extra data
+     switch (codec->id)
+     {
++#if LIBAVCODEC_VERSION_MAJOR < 55
+       case CODEC_ID_MJPEG: extra_data_size  = 28; break;
+       case CODEC_ID_LJPEG: extra_data_size  = 28; break;
+       case CODEC_ID_HUFFYUV: extra_data_size = 1000; break;
+@@ -331,6 +383,15 @@
+       case CODEC_ID_ASV2: extra_data_size = 8; break;
+       case CODEC_ID_WMV1: extra_data_size = 4; break;
+       case CODEC_ID_WMV2: extra_data_size = 4; break;
++#else
++      case AV_CODEC_ID_MJPEG: extra_data_size  = 28; break;
++      case AV_CODEC_ID_LJPEG: extra_data_size  = 28; break;
++      case AV_CODEC_ID_HUFFYUV: extra_data_size = 1000; break;
++      case AV_CODEC_ID_ASV1: extra_data_size = 8; break;
++      case AV_CODEC_ID_ASV2: extra_data_size = 8; break;
++      case AV_CODEC_ID_WMV1: extra_data_size = 4; break;
++      case AV_CODEC_ID_WMV2: extra_data_size = 4; break;
++#endif
+       default: extra_data_size = 0; break;
+     }
+ 
+@@ -344,7 +405,7 @@
+     }
+ 
+     TC_LOCK_LIBAVCODEC;
+-    ret = avcodec_open(lavc_dec_context, lavc_dec_codec);
++    ret = avcodec_open2(lavc_dec_context, lavc_dec_codec, NULL);
+     TC_UNLOCK_LIBAVCODEC;
+     if (ret < 0) {
+       tc_log_warn(MOD_NAME, "Could not initialize the '%s' codec.",
+@@ -360,7 +421,11 @@
+         frame_size = x_dim*y_dim + 2*UV_PLANE_SIZE(IMG_YUV_DEFAULT,x_dim,y_dim);
+ 
+ 	// we adapt the color space
++#if LIBAVCODEC_VERSION_MAJOR < 55
+         if(codec->id == CODEC_ID_MJPEG) {
++#else
++        if(codec->id == AV_CODEC_ID_MJPEG) {
++#endif
+ 	  enable_levels_filter();
+         }
+         break;
+@@ -434,7 +499,11 @@
+       }
+ 
+       // we adapt the color space
++#if LIBAVCODEC_VERSION_MAJOR < 55
+       if(codec->id == CODEC_ID_MJPEG) {
++#else
++      if(codec->id == AV_CODEC_ID_MJPEG) {
++#endif
+         enable_levels_filter();
+       }
+ 
+@@ -504,13 +573,25 @@
+       int bkey = 0;
+ 
+       // check for keyframes
++#if LIBAVCODEC_VERSION_MAJOR < 55
+       if (codec->id == CODEC_ID_MSMPEG4V3) {
++#else
++      if (codec->id == AV_CODEC_ID_MSMPEG4V3) {
++#endif
+ 	if (divx3_is_key(buffer)) bkey = 1;
+       }
++#if LIBAVCODEC_VERSION_MAJOR < 55
+       else if (codec->id == CODEC_ID_MPEG4) {
++#else
++      else if (codec->id == AV_CODEC_ID_MPEG4) {
++#endif
+ 	if (mpeg4_is_key(buffer, bytes_read)) bkey = 1;
+       }
++#if LIBAVCODEC_VERSION_MAJOR < 55
+       else if (codec->id == CODEC_ID_MJPEG) {
++#else
++      else if (codec->id == AV_CODEC_ID_MJPEG) {
++#endif
+ 	bkey = 1;
+       }
+ 
+@@ -580,8 +661,8 @@
+ 
+     // Convert avcodec image to our internal YUV or RGB format
+     switch (lavc_dec_context->pix_fmt) {
+-      case PIX_FMT_YUVJ420P:
+-      case PIX_FMT_YUV420P:
++      case AV_PIX_FMT_YUVJ420P:
++      case AV_PIX_FMT_YUV420P:
+         src_fmt = IMG_YUV420P;
+         YUV_INIT_PLANES(src_planes, frame, src_fmt,
+                         lavc_dec_context->width, lavc_dec_context->height);
+@@ -612,7 +693,7 @@
+ 	}
+         break;
+ 
+-      case PIX_FMT_YUV411P:
++      case AV_PIX_FMT_YUV411P:
+         src_fmt = IMG_YUV411P;
+         YUV_INIT_PLANES(src_planes, frame, src_fmt,
+                         lavc_dec_context->width, lavc_dec_context->height);
+@@ -640,8 +721,8 @@
+         }
+         break;
+ 
+-      case PIX_FMT_YUVJ422P:
+-      case PIX_FMT_YUV422P:
++      case AV_PIX_FMT_YUVJ422P:
++      case AV_PIX_FMT_YUV422P:
+         src_fmt = IMG_YUV422P;
+         YUV_INIT_PLANES(src_planes, frame, src_fmt,
+                         lavc_dec_context->width, lavc_dec_context->height);
+@@ -669,8 +750,8 @@
+         }
+ 	break;
+ 
+-      case PIX_FMT_YUVJ444P:
+-      case PIX_FMT_YUV444P:
++      case AV_PIX_FMT_YUVJ444P:
++      case AV_PIX_FMT_YUV444P:
+         src_fmt = IMG_YUV444P;
+         YUV_INIT_PLANES(src_planes, frame, src_fmt,
+                         lavc_dec_context->width, lavc_dec_context->height);
+diff -Naur a/import/probe_ffmpeg.c b/import/probe_ffmpeg.c
+--- a/import/probe_ffmpeg.c	2011-11-19 16:50:27.000000000 +0000
++++ b/import/probe_ffmpeg.c	2018-05-14 01:58:58.347408780 +0100
+@@ -51,8 +51,8 @@
+             info->bitrate = st->codec->bit_rate / 1000;
+             info->width = st->codec->width;
+             info->height = st->codec->height;
+-            if (st->r_frame_rate.num > 0 && st->r_frame_rate.den > 0) {
+-                info->fps = av_q2d(st->r_frame_rate);
++            if (st->avg_frame_rate.num > 0 && st->avg_frame_rate.den > 0) {
++                info->fps = av_q2d(st->avg_frame_rate);
+             } else {
+                 /* watch out here */
+                 info->fps = 1.0/av_q2d(st->codec->time_base);
+@@ -99,8 +99,8 @@
+ 
+     TC_INIT_LIBAVCODEC;
+ 
+-    ret = av_open_input_file(&lavf_dmx_context, ipipe->name,
+-                             NULL, 0, NULL);
++    ret = avformat_open_input(&lavf_dmx_context, ipipe->name,
++                             NULL, NULL);
+     if (ret != 0) {
+         tc_log_error(__FILE__, "unable to open '%s'"
+                                " (libavformat failure)",
+@@ -109,7 +109,7 @@
+         return;
+     }
+ 
+-    ret = av_find_stream_info(lavf_dmx_context);
++    ret = avformat_find_stream_info(lavf_dmx_context, NULL);
+     if (ret < 0) {
+         tc_log_error(__FILE__, "unable to fetch informations from '%s'"
+                                " (libavformat failure)",
+@@ -120,7 +120,11 @@
+ 
+     translate_info(lavf_dmx_context, ipipe->probe_info);
+ 
++#if LIBAVFORMAT_VERSION_INT > AV_VERSION_INT(53,25,0)
++    avformat_close_input(&lavf_dmx_context);
++#else
+     av_close_input_file(lavf_dmx_context);
++#endif
+     return;
+ }
+ 
+diff -Naur a/libtc/tcavcodec.h b/libtc/tcavcodec.h
+--- a/libtc/tcavcodec.h	2011-11-19 16:50:27.000000000 +0000
++++ b/libtc/tcavcodec.h	2018-05-14 01:58:58.347408780 +0100
+@@ -53,7 +53,6 @@
+ 
+ #define TC_INIT_LIBAVCODEC do { \
+     TC_LOCK_LIBAVCODEC; \
+-    avcodec_init(); \
+     avcodec_register_all(); \
+     TC_UNLOCK_LIBAVCODEC; \
+ } while (0)
diff --git a/gnu/packages/patches/transmission-honor-localedir.patch b/gnu/packages/patches/transmission-honor-localedir.patch
new file mode 100644
index 0000000000..70c66bfb2b
--- /dev/null
+++ b/gnu/packages/patches/transmission-honor-localedir.patch
@@ -0,0 +1,34 @@
+This patch modifies Transmission so it honors the "localedir" option
+passed to its configure script, allowing GTK-specific localization
+data to be placed in the package's "gui" output.
+
+Without this patch, localization of transmission-gtk can break as the
+application will expect to find this data in the package's default
+output (as a result of the call to bindtextdomain in gtk/main.c).
+
+diff --git a/configure b/configure
+index a29e24f..3ae8ef4 100755
+--- a/configure
++++ b/configure
+@@ -21305,7 +21305,7 @@ $as_echo "$LINGUAS" >&6; }
+    sed -e "/^#/d" -e "/^\$/d" -e "s,.*,	$posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \
+ 	< $srcdir/po/POTFILES.in > po/POTFILES
+ 
+-    transmissionlocaledir='${prefix}/${DATADIRNAME}/locale'
++    transmissionlocaledir='${localedir}'
+ 
+ fi
+ 
+diff --git a/configure.ac b/configure.ac
+index 57d3cae..ab62093 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -563,7 +563,7 @@ if test "x$enable_nls" = "xyes" ; then
+     AC_SUBST(GETTEXT_PACKAGE)
+     AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE],["$GETTEXT_PACKAGE"],[Gettext package])
+     AM_GLIB_GNU_GETTEXT
+-    transmissionlocaledir='${prefix}/${DATADIRNAME}/locale'
++    transmissionlocaledir='${localedir}'
+     AC_SUBST(transmissionlocaledir)
+ fi
+ AC_SUBST(INTLLIBS)
diff --git a/gnu/packages/patches/ttfautohint-source-date-epoch.patch b/gnu/packages/patches/ttfautohint-source-date-epoch.patch
deleted file mode 100644
index e42fdbf6b0..0000000000
--- a/gnu/packages/patches/ttfautohint-source-date-epoch.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-Honour an external definition of SOURCE_DATE_EPOCH when updating the embedded
-modification date in TTF/TTC files.
-
---- a/lib/tatime.c
-+++ b/lib/tatime.c
-@@ -15,6 +15,8 @@
- 
- #include <time.h>
- #include <stdint.h>
-+#include <errno.h>
-+#include <limits.h>
- 
- #include "ta.h"
- 
-@@ -27,12 +29,51 @@ TA_get_current_time(FT_ULong* high,
- {
-   /* there have been 24107 days between January 1st, 1904 (the epoch of */
-   /* OpenType), and January 1st, 1970 (the epoch of the `time' function) */
--  TA_ULongLong seconds_to_1970 = 24107 * 24 * 60 * 60;
--  TA_ULongLong seconds_to_today = seconds_to_1970 + (TA_ULongLong)time(NULL);
-+  const TA_ULongLong seconds_to_1970 = 24107 * 24 * 60 * 60;
-+  TA_ULongLong seconds_to_build;
- 
-+  time_t now;
-+  char *source_date_epoch, *endptr;
-+  TA_ULongLong epoch;
-+  source_date_epoch = getenv("SOURCE_DATE_EPOCH");
-+  if (source_date_epoch) {
-+    errno = 0;
-+    epoch = strtoull(source_date_epoch, &endptr, 10);
-+    if ((errno == ERANGE && (epoch == ULLONG_MAX || epoch == 0))
-+	|| (errno != 0 && epoch == 0)) {
-+      fprintf(stderr,
-+	      "Environment variable $SOURCE_DATE_EPOCH: strtoull: %s\n",
-+	      strerror(errno));
-+      exit(EXIT_FAILURE);
-+    }
-+    if (endptr == source_date_epoch) {
-+      fprintf(stderr,
-+	      "Environment variable $SOURCE_DATE_EPOCH: No digits were found: %s\n",
-+	      endptr);
-+      exit(EXIT_FAILURE);
-+    }
-+    if (*endptr != '\0') {
-+      fprintf(stderr,
-+	      "Environment variable $SOURCE_DATE_EPOCH: Trailing garbage: %s\n",
-+	      endptr);
-+      exit(EXIT_FAILURE);
-+    }
-+    if (epoch > ULONG_MAX) {
-+      fprintf(stderr,
-+	      "Environment variable $SOURCE_DATE_EPOCH: value must be smaller "
-+	      "than or equal to: %lu but was found to be: %llu \n",
-+	      ULONG_MAX, epoch);
-+      exit(EXIT_FAILURE);
-+    }
-+    now = epoch;
-+  } else {
-+    now = time(NULL);
-+  }
- 
--  *high = (FT_ULong)(seconds_to_today >> 32);
--  *low = (FT_ULong)seconds_to_today;
-+  seconds_to_build = seconds_to_1970 + (TA_ULongLong)now;
-+
-+  *high = (FT_ULong)(seconds_to_build >> 32);
-+  *low = (FT_ULong)seconds_to_build;
- }
- 
- /* end of tatime.c */
diff --git a/gnu/packages/patches/u-boot-riscv64-fix-extlinux.patch b/gnu/packages/patches/u-boot-riscv64-fix-extlinux.patch
index 29dec4f5e9..d6c1987718 100644
--- a/gnu/packages/patches/u-boot-riscv64-fix-extlinux.patch
+++ b/gnu/packages/patches/u-boot-riscv64-fix-extlinux.patch
@@ -32,9 +32,9 @@ Index: u-boot/configs/sifive_fu540_defconfig
 ===================================================================
 --- u-boot.orig/configs/sifive_fu540_defconfig
 +++ u-boot/configs/sifive_fu540_defconfig
-@@ -12,3 +12,5 @@ CONFIG_DISPLAY_BOARDINFO=y
- CONFIG_DEFAULT_DEVICE_TREE="hifive-unleashed-a00"
- CONFIG_SYS_RELOC_GD_ENV_ADDR=y
+@@ -27,3 +27,5 @@ CONFIG_SPL_DM_SEQ_ALIAS=y
+ CONFIG_SPL_CLK=y
  CONFIG_DM_MTD=y
+ CONFIG_DM_RESET=y
 +CONFIG_USE_PREBOOT=y
 +CONFIG_PREBOOT="setenv fdt_addr ${fdtcontroladdr}; fdt addr ${fdtcontroladdr};"
diff --git a/gnu/packages/patches/ungoogled-chromium-extension-search-path.patch b/gnu/packages/patches/ungoogled-chromium-extension-search-path.patch
new file mode 100644
index 0000000000..5ce219ccc7
--- /dev/null
+++ b/gnu/packages/patches/ungoogled-chromium-extension-search-path.patch
@@ -0,0 +1,28 @@
+Look for extensions in $CHROMIUM_EXTENSION_DIRECTORY instead of
+/usr/share/chromium/extensions.
+
+--- a/chrome/common/chrome_paths.cc
++++ b/chrome/common/chrome_paths.cc
+@@ -4,6 +4,7 @@
+ 
+ #include "chrome/common/chrome_paths.h"
+ 
++#include "base/environment.h"
+ #include "base/files/file_util.h"
+ #include "base/logging.h"
+ #include "base/native_library.h"
+@@ -511,7 +512,13 @@
+ #endif
+ #if defined(OS_LINUX) || defined(OS_CHROMEOS)
+     case chrome::DIR_STANDALONE_EXTERNAL_EXTENSIONS: {
+-      cur = base::FilePath(kFilepathSinglePrefExtensions);
++      std::unique_ptr<base::Environment> environment(base::Environment::Create());
++      std::string extension_dir;
++      if (environment->GetVar("CHROMIUM_EXTENSION_DIRECTORY", &extension_dir)) {
++        cur = base::FilePath(extension_dir);
++      } else {
++        cur = base::FilePath(kFilepathSinglePrefExtensions);
++      }
+       break;
+     }
+ #endif
diff --git a/gnu/packages/patches/ungoogled-chromium-system-nspr.patch b/gnu/packages/patches/ungoogled-chromium-system-nspr.patch
index 6fbc0a56a7..988296b143 100644
--- a/gnu/packages/patches/ungoogled-chromium-system-nspr.patch
+++ b/gnu/packages/patches/ungoogled-chromium-system-nspr.patch
@@ -17,8 +17,8 @@ https://salsa.debian.org/chromium-team/chromium/-/blob/master/debian/patches/sys
 --- a/base/time/time.cc
 +++ b/base/time/time.cc
 @@ -14,7 +14,7 @@
- #include "base/macros.h"
- #include "base/no_destructor.h"
+ #include "base/optional.h"
+ #include "base/strings/string_util.h"
  #include "base/strings/stringprintf.h"
 -#include "base/third_party/nspr/prtime.h"
 +#include <nspr/prtime.h>
@@ -27,7 +27,7 @@ https://salsa.debian.org/chromium-team/chromium/-/blob/master/debian/patches/sys
  
 --- a/base/BUILD.gn
 +++ b/base/BUILD.gn
-@@ -107,6 +107,9 @@ config("base_flags") {
+@@ -102,6 +102,9 @@
        "-Wglobal-constructors",
      ]
    }
@@ -37,7 +37,7 @@ https://salsa.debian.org/chromium-team/chromium/-/blob/master/debian/patches/sys
  }
  
  config("base_implementation") {
-@@ -712,8 +715,6 @@ jumbo_component("base") {
+@@ -720,8 +723,6 @@
      "third_party/cityhash_v103/src/city_v103.h",
      "third_party/icu/icu_utf.cc",
      "third_party/icu/icu_utf.h",
@@ -48,19 +48,19 @@ https://salsa.debian.org/chromium-team/chromium/-/blob/master/debian/patches/sys
      "threading/hang_watcher.cc",
 --- a/tools/gn/build/gen.py
 +++ b/tools/gn/build/gen.py
-@@ -339,6 +339,9 @@ def WriteGNNinja(path, platform, host, o
+@@ -380,6 +380,9 @@
        if not options.no_static_libstdcpp:
          ldflags.append('-static-libstdc++')
  
 +      # Additional system libraries that are used.
 +      libs.append('-lnspr4')
 +
-       # This is needed by libc++.
-       if not platform.is_mingw():
-         libs.append('-ldl')
+       if platform.is_mingw() or platform.is_msys():
+         cflags.remove('-std=c++17')
+         cflags.extend([
 --- a/third_party/blink/renderer/platform/BUILD.gn
 +++ b/third_party/blink/renderer/platform/BUILD.gn
-@@ -103,6 +103,9 @@
+@@ -110,6 +110,9 @@
      "//build/win:default_exe_manifest",
      "//third_party/icu",
    ]
@@ -72,7 +72,7 @@ https://salsa.debian.org/chromium-team/chromium/-/blob/master/debian/patches/sys
  # This isn't strictly necessary since we can just add the deps to "platform",
 --- a/third_party/crashpad/crashpad/handler/BUILD.gn
 +++ b/third_party/crashpad/crashpad/handler/BUILD.gn
-@@ -140,6 +140,9 @@
+@@ -144,6 +144,9 @@
        "../third_party/mini_chromium:base",
        "../tools:tool_support",
      ]
@@ -104,7 +104,7 @@ https://salsa.debian.org/chromium-team/chromium/-/blob/master/debian/patches/sys
 +    "-lnspr4",
 +  ]
    if (is_ios) {
-     libs = [ "UIKit.framework" ]
+     frameworks = [ "UIKit.framework" ]
    }
 --- a/components/schema_org/BUILD.gn
 +++ b/components/schema_org/BUILD.gn
diff --git a/gnu/packages/patches/unison-fix-ocaml-4.08.patch b/gnu/packages/patches/unison-fix-ocaml-4.08.patch
new file mode 100644
index 0000000000..811f590721
--- /dev/null
+++ b/gnu/packages/patches/unison-fix-ocaml-4.08.patch
@@ -0,0 +1,81 @@
+This patch is taken from the opam repository:
+https://github.com/ocaml/opam-repository/blob/master/packages/unison/unison.2.51.2/files/ocaml48.patch
+
+It fixes compatibility with changes introduced in OCaml 4.08.
+
+diff --git a/src/Makefile.OCaml b/src/Makefile.OCaml
+index 7cefa2e..378fc8b 100644
+--- a/src/Makefile.OCaml
++++ b/src/Makefile.OCaml
+@@ -272,7 +272,7 @@ endif
+ 
+ # Gtk GUI
+ ifeq ($(UISTYLE), gtk)
+-  CAMLFLAGS+=-I +lablgtk
++  CAMLFLAGS+=-I $(LABLGTKLIB)
+   OCAMLOBJS+=pixmaps.cmo uigtk.cmo linkgtk.cmo
+   OCAMLLIBS+=lablgtk.cma
+ endif
+@@ -282,7 +282,7 @@ OCAMLFIND := $(shell command -v ocamlfind 2> /dev/null)
+ 
+ ifeq ($(UISTYLE), gtk2)
+   ifndef OCAMLFIND
+-    CAMLFLAGS+=-I +lablgtk2
++    CAMLFLAGS+=-I $(LABLGTK2LIB)
+   else
+     CAMLFLAGS+=$(shell $(OCAMLFIND) query -i-format lablgtk2 )
+   endif
+diff --git a/src/files.ml b/src/files.ml
+index 5ff1881..1d1fbcc 100644
+--- a/src/files.ml
++++ b/src/files.ml
+@@ -734,7 +734,7 @@ let get_files_in_directory dir =
+   with End_of_file ->
+     dirh.System.closedir ()
+   end;
+-  Sort.list (<) !files
++  List.sort String.compare !files
+ 
+ let ls dir pattern =
+   Util.convertUnixErrorsToTransient
+diff --git a/src/recon.ml b/src/recon.ml
+index 2c619bb..2412c18 100644
+--- a/src/recon.ml
++++ b/src/recon.ml
+@@ -661,8 +661,8 @@ let rec reconcile
+ 
+ (* Sorts the paths so that they will be displayed in order                   *)
+ let sortPaths pathUpdatesList =
+-  Sort.list
+-    (fun (p1, _) (p2, _) -> Path.compare p1 p2 <= 0)
++  List.sort
++    Path.compare
+     pathUpdatesList
+ 
+ let rec enterPath p1 p2 t =
+diff --git a/src/system/system_generic.ml b/src/system/system_generic.ml
+index 453027d..c2288b8 100755
+--- a/src/system/system_generic.ml
++++ b/src/system/system_generic.ml
+@@ -47,7 +47,7 @@ let open_out_gen = open_out_gen
+ let chmod = Unix.chmod
+ let chown = Unix.chown
+ let utimes = Unix.utimes
+-let link = Unix.link
++let link s d = Unix.link s d
+ let openfile = Unix.openfile
+ let opendir f =
+   let h = Unix.opendir f in
+diff --git a/src/uigtk2.ml b/src/uigtk2.ml
+index fbc5d8f..4e82cc2 100644
+--- a/src/uigtk2.ml
++++ b/src/uigtk2.ml
+@@ -94,7 +94,7 @@ let icon =
+ let icon =
+   let p = GdkPixbuf.create ~width:48 ~height:48 ~has_alpha:true () in
+   Gpointer.blit
+-    (Gpointer.region_of_string Pixmaps.icon_data) (GdkPixbuf.get_pixels p);
++    (Gpointer.region_of_bytes Pixmaps.icon_data) (GdkPixbuf.get_pixels p);
+   p
+ 
+ let leftPtrWatch =
diff --git a/gnu/packages/patches/unknown-horizons-python-3.8-distro.patch b/gnu/packages/patches/unknown-horizons-python-3.8-distro.patch
new file mode 100644
index 0000000000..d43a4f3e4a
--- /dev/null
+++ b/gnu/packages/patches/unknown-horizons-python-3.8-distro.patch
@@ -0,0 +1,52 @@
+From: Tobias Geerinckx-Rice <me@tobias.gr>
+Date: Wed, 19 Aug 2020 22:58:32 +0200
+Subject: [PATCH] gnu: unknown-horizons: Replace ‘dist’ with ‘distro’.
+
+This fixes builds with Python >= 3.8.  Taken verbatim from upstream[0].
+
+[0]: https://github.com/unknown-horizons/unknown-horizons/commit/c40fb866f3f72ac1049d6fa7859b17d8a48fe9e1
+
+From c40fb866f3f72ac1049d6fa7859b17d8a48fe9e1 Mon Sep 17 00:00:00 2001
+From: MarkusHackspacher <hackspacher@gmx.de>
+Date: Thu, 18 Jul 2019 11:46:39 +0200
+Subject: [PATCH] replace deprecated to distro package
+
+---
+ requirements.txt | 1 +
+ setup.py         | 4 +++-
+ 2 files changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/requirements.txt b/requirements.txt
+index a5edf794fb..b58179bfa8 100644
+--- a/requirements.txt
++++ b/requirements.txt
+@@ -1,6 +1,7 @@
+ coverage==4.4.1
+ coveralls==1.1
+ crayons==0.1.2
++distro
+ future==0.16.0
+ greenlet==0.4.15
+ isort==4.3.4
+diff --git a/setup.py b/setup.py
+index 6d63a5ce15..6a237a8749 100755
+--- a/setup.py
++++ b/setup.py
+@@ -32,6 +32,8 @@
+ from distutils.spawn import find_executable
+ from shutil import copytree, rmtree
+ 
++import distro
++
+ import horizons
+ from horizons.constants import VERSION
+ from horizons.ext import polib
+@@ -39,7 +41,7 @@
+ # Ensure we are in the correct directory
+ os.chdir(os.path.realpath(os.path.dirname(__file__)))
+ 
+-if platform.dist()[0].lower() in ('debian', 'ubuntu'):
++if distro.linux_distribution(full_distribution_name=False)[0] in ('debian', 'mint', 'ubuntu'):
+ 	executable_path = 'games'
+ else:
+ 	executable_path = 'bin'
diff --git a/gnu/packages/patches/weasyprint-library-paths.patch b/gnu/packages/patches/weasyprint-library-paths.patch
deleted file mode 100644
index 317f0c542e..0000000000
--- a/gnu/packages/patches/weasyprint-library-paths.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-Make weasyprint load dynamic libraries from hard-coded path.
-
-From NixOS
-pkgs/development/python-modules/weasyprint/library-paths.patch
-
-diff --git a/weasyprint/fonts.py b/weasyprint/fonts.py
-index 377716c1..2016e01c 100644
---- a/weasyprint/fonts.py
-+++ b/weasyprint/fonts.py
-@@ -48,11 +48,8 @@ else:
-     # with OSError: dlopen() failed to load a library: cairo / cairo-2
-     # So let's hope we find the same file as cairo already did ;)
-     # Same applies to pangocairo requiring pangoft2
--    fontconfig = dlopen(ffi, 'fontconfig', 'libfontconfig',
--                        'libfontconfig-1.dll',
--                        'libfontconfig.so.1', 'libfontconfig-1.dylib')
--    pangoft2 = dlopen(ffi, 'pangoft2-1.0', 'libpangoft2-1.0-0',
--                      'libpangoft2-1.0.so', 'libpangoft2-1.0.dylib')
-+    fontconfig = dlopen(ffi, '@fontconfig@')
-+    pangoft2 = dlopen(ffi, '@pangoft2@')
- 
-     ffi.cdef('''
-         // FontConfig
-diff --git a/weasyprint/text.py b/weasyprint/text.py
-index 035074e9..08e40395 100644
---- a/weasyprint/text.py
-+++ b/weasyprint/text.py
-@@ -243,12 +243,9 @@ def dlopen(ffi, *names):
-     return ffi.dlopen(names[0])  # pragma: no cover
- 
- 
--gobject = dlopen(ffi, 'gobject-2.0', 'libgobject-2.0-0', 'libgobject-2.0.so',
--                 'libgobject-2.0.dylib')
--pango = dlopen(ffi, 'pango-1.0', 'libpango-1.0-0', 'libpango-1.0.so',
--               'libpango-1.0.dylib')
--pangocairo = dlopen(ffi, 'pangocairo-1.0', 'libpangocairo-1.0-0',
--                    'libpangocairo-1.0.so', 'libpangocairo-1.0.dylib')
-+gobject = dlopen(ffi, '@gobject@')
-+pango = dlopen(ffi, '@pango@')
-+pangocairo = dlopen(ffi, '@pangocairo@')
- 
- gobject.g_type_init()
- 
diff --git a/gnu/packages/patches/webkitgtk-bind-all-fonts.patch b/gnu/packages/patches/webkitgtk-bind-all-fonts.patch
new file mode 100644
index 0000000000..3fe9704727
--- /dev/null
+++ b/gnu/packages/patches/webkitgtk-bind-all-fonts.patch
@@ -0,0 +1,26 @@
+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>
+Index: webkitgtk-2.28.2/Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp
+===================================================================
+--- a/Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp
++++ b/Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp
+@@ -387,6 +387,7 @@ static void bindFonts(Vector<CString>& args)
+     const char* homeDir = g_get_home_dir();
+     const char* dataDir = g_get_user_data_dir();
+     const char* cacheDir = g_get_user_cache_dir();
++    const char* const * dataDirs = g_get_system_data_dirs();
+
+     // Configs can include custom dirs but then we have to parse them...
+     GUniquePtr<char> fontConfig(g_build_filename(configDir, "fontconfig", nullptr));
+@@ -403,6 +404,10 @@ static void bindFonts(Vector<CString>& args)
+     bindIfExists(args, fontHomeConfigDir.get());
+     bindIfExists(args, fontData.get());
+     bindIfExists(args, fontHomeData.get());
++    for (auto dataDir = dataDirs; dataDir != nullptr && *dataDir != nullptr; dataDir++) {
++        GUniquePtr<char> fontDataDir(g_build_filename(*dataDir, "fonts", nullptr));
++        bindIfExists(args, fontDataDir.get());
++    }
+     bindIfExists(args, "/var/cache/fontconfig"); // Used by Debian.
+ }
diff --git a/gnu/packages/patches/wgetpaste-update-bpaste.patch b/gnu/packages/patches/wgetpaste-update-bpaste.patch
new file mode 100644
index 0000000000..f92a0c17ed
--- /dev/null
+++ b/gnu/packages/patches/wgetpaste-update-bpaste.patch
@@ -0,0 +1,27 @@
+From: Tobias Geerinckx-Rice <me@tobias.gr>
+Date: Tue, 01 Sep 2020 04:23:25 +0200
+Subject: [PATCH] Update bpaste URL & regular expressions.
+
+diff -Naur wgetpaste-2.30/wgetpaste wgetpaste-2.30a/wgetpaste
+--- wgetpaste-2.30/wgetpaste	2020-07-31 23:56:05.000000000 +0200
++++ wgetpaste-2.30a/wgetpaste	2020-09-01 04:22:37.499898403 +0200
+@@ -16,7 +16,7 @@
+ SERVICES="codepad bpaste dpaste gists snippets"
+ # bpaste
+ ENGINE_bpaste=pinnwand
+-URL_bpaste="https://bpaste.net/"
++URL_bpaste="https://bpa.st/"
+ DEFAULT_EXPIRATION_bpaste="1week"
+ DEFAULT_LANGUAGE_bpaste="text"
+ # codepad
+@@ -194,8 +194,8 @@
+ xml+velocity xml xquery xslt xtend yaml"
+ EXPIRATIONS_pinnwand="1day 1week 1month never"
+ POST_pinnwand="submit=Paste! % % lexer expiry % code"
+-REGEX_LOC_pinnwand="\(/show/[^ ]*\).*$|https://bpaste.net\1"
+-REGEX_RAW_pinnwand='s|^\(https\?://[^/]*/\)show\(/[^ ]*/\?\)$|\1raw\2|'
++REGEX_LOC_pinnwand="\(/[^ ]*\).*$|https://bpa.st\1"
++REGEX_RAW_pinnwand='s|^\(https\?://[^/]*\)\(/[^ ]*/\?\)$|\1/raw\2|'
+ 
+ ### errors
+ die() {
diff --git a/gnu/packages/patches/xf86-video-geode-glibc-2.20.patch b/gnu/packages/patches/xf86-video-geode-glibc-2.20.patch
deleted file mode 100644
index 4dc69e3611..0000000000
--- a/gnu/packages/patches/xf86-video-geode-glibc-2.20.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-Allow builds with glibc 2.20.
-Based on a patch by Peter Hutterer <peter.hutterer@who-t.net>.
-See <https://raw.githubusercontent.com/openembedded/oe-core/master/meta/recipes-graphics/xorg-driver/xf86-input-synaptics/always_include_xorg_server.h.patch>.
-
---- xf86-video-geode-2.11.16/src/lx_memory.c.~1~	2014-07-16 16:59:37.000000000 -0400
-+++ xf86-video-geode-2.11.16/src/lx_memory.c	2014-12-19 00:38:11.753388268 -0500
-@@ -23,6 +23,8 @@
-  * software without specific prior written permission.
-  */
- 
-+#include <xorg-server.h>
-+
- #include "xf86.h"
- #include "geode.h"
- #include "cim/cim_regs.h"
diff --git a/gnu/packages/patches/xf86-video-sis-xorg-compat.patch b/gnu/packages/patches/xf86-video-sis-xorg-compat.patch
deleted file mode 100644
index ebe9715d13..0000000000
--- a/gnu/packages/patches/xf86-video-sis-xorg-compat.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-Remove use of interface no longer provided by xorg-server.
-
-Patch taken from upstream:
-https://cgit.freedesktop.org/xorg/driver/xf86-video-sis/commit/?id=4b1356a2b7fd06e9a05d134caa4033681c939737
-
-diff --git a/src/sis_driver.c b/src/sis_driver.c
-index 8f06164..513f68b 100644
---- a/src/sis_driver.c
-+++ b/src/sis_driver.c
-@@ -2738,7 +2738,7 @@ SiSPrintModes(ScrnInfoPtr pScrn)
-     float hsync, refresh = 0.0;
-     char *desc, *desc2, *prefix, *uprefix, *output;
- 
--    xf86DrvMsg(pScrn->scrnIndex, pScrn->virtualFrom, "Virtual size is %dx%d "
-+    xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Virtual size is %dx%d "
- 	       "(pitch %d)\n", pScrn->virtualX, pScrn->virtualY,
- 	       pScrn->displayWidth);
- 
diff --git a/gnu/packages/patches/xmonad-dynamic-linking.patch b/gnu/packages/patches/xmonad-dynamic-linking.patch
new file mode 100644
index 0000000000..4f3386e53a
--- /dev/null
+++ b/gnu/packages/patches/xmonad-dynamic-linking.patch
@@ -0,0 +1,16 @@
+This patch is required for xmonad to make use of shared libraries.
+Without it, xmonad will not work since we do not (by default) use
+statically linked Haskell libraries.
+
+diff -ruN xmonad-0.15-a/src/XMonad/Core.hs xmonad-0.15-b/src/XMonad/Core.hs
+--- xmonad-0.15-a/src/XMonad/Core.hs	1969-12-31 19:00:00.000000000 -0500
++++ xmonad-0.15-b/src/XMonad/Core.hs	1969-12-31 19:00:00.000000000 -0500
+@@ -681,6 +681,8 @@
+        compileGHC bin dir errHandle =
+          runProcess "ghc" ["--make"
+                           , "xmonad.hs"
++                          , "-dynamic"
++                          , "-fPIC"
+                           , "-i"
+                           , "-ilib"
+                           , "-fforce-recomp"
diff --git a/gnu/packages/patches/xorg-server-CVE-2020-14347.patch b/gnu/packages/patches/xorg-server-CVE-2020-14347.patch
deleted file mode 100644
index c54b93d764..0000000000
--- a/gnu/packages/patches/xorg-server-CVE-2020-14347.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From aac28e162e5108510065ad4c323affd6deffd816 Mon Sep 17 00:00:00 2001
-From: Matthieu Herrb <matthieu@herrb.eu>
-Date: Sat, 25 Jul 2020 19:33:23 +0200
-Subject: [PATCH] fix for ZDI-11426
-
-Avoid leaking un-initalized memory to clients by zeroing the
-whole pixmap on initial allocation.
-
-This vulnerability was discovered by:
-Jan-Niklas Sohn working with Trend Micro Zero Day Initiative
-
-Signed-off-by: Matthieu Herrb <matthieu@herrb.eu>
-Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
----
- dix/pixmap.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/dix/pixmap.c b/dix/pixmap.c
-index 1186d7dbb..5a0146bbb 100644
---- a/dix/pixmap.c
-+++ b/dix/pixmap.c
-@@ -116,7 +116,7 @@ AllocatePixmap(ScreenPtr pScreen, int pixDataSize)
-     if (pScreen->totalPixmapSize > ((size_t) - 1) - pixDataSize)
-         return NullPixmap;
- 
--    pPixmap = malloc(pScreen->totalPixmapSize + pixDataSize);
-+    pPixmap = calloc(1, pScreen->totalPixmapSize + pixDataSize);
-     if (!pPixmap)
-         return NullPixmap;
- 
--- 
-2.27.0
-
diff --git a/gnu/packages/patches/yggdrasil-extra-config.patch b/gnu/packages/patches/yggdrasil-extra-config.patch
new file mode 100644
index 0000000000..c21ca29a84
--- /dev/null
+++ b/gnu/packages/patches/yggdrasil-extra-config.patch
@@ -0,0 +1,86 @@
+diff --git a/cmd/yggdrasil/main.go b/cmd/yggdrasil/main.go
+index 813e950..08d35cc 100644
+--- a/cmd/yggdrasil/main.go
++++ b/cmd/yggdrasil/main.go
+@@ -40,11 +40,12 @@ type node struct {
+ 	admin     module.Module // admin.AdminSocket
+ }
+ 
+-func readConfig(useconf *bool, useconffile *string, normaliseconf *bool) *config.NodeConfig {
++func readConfig(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 != "" {
+ 		// Read the file from the filesystem
+@@ -56,6 +57,21 @@ func readConfig(useconf *bool, useconffile *string, normaliseconf *bool) *config
+ 	if err != nil {
+ 		panic(err)
+ 	}
++	if *extraconffile != "" {
++		extraconf, err = ioutil.ReadFile(*extraconffile);
++	}
++	if err != nil {
++		panic(err)
++	}
++	// Generate a new configuration - this gives us a set of sane defaults -
++	// 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()
++	var confs [2][]byte
++	confs[0]=conf
++	confs[1]=extraconf
++	for _, conf := range confs { if len(conf)>0 {
+ 	// 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
+ 			panic(err)
+ 		}
+ 	}
+-	// Generate a new configuration - this gives us a set of sane defaults -
+-	// 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()
+ 	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
+ 	if err = mapstructure.Decode(dat, &cfg); err != nil {
+ 		panic(err)
+ 	}
++	}}
+ 	return cfg
+ }
+ 
+@@ -164,6 +176,7 @@ func main() {
+ 	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")
++	extraconffile := flag.String("extraconffile", "", "extra (usually private) HJSON/JSON config from specified file path")
+ 	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:
+ 		// Read the configuration from either stdin or from the filesystem
+-		cfg = readConfig(useconf, useconffile, normaliseconf)
++		cfg = readConfig(useconf, useconffile, extraconffile, 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)
diff --git a/gnu/packages/patchutils.scm b/gnu/packages/patchutils.scm
index c26977be1f..1354c860a5 100644
--- a/gnu/packages/patchutils.scm
+++ b/gnu/packages/patchutils.scm
@@ -321,7 +321,7 @@ you to figure out what is going on in that merge you keep avoiding.")
 (define-public patchwork
   (package
     (name "patchwork")
-    (version "2.1.5")
+    (version "3.0.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -330,7 +330,7 @@ you to figure out what is going on in that merge you keep avoiding.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1n4hfwlgmw6mj5kp261zfx47mgb0l7g2yzl1rf0rnm8x69lr3as6"))))
+                "005irr5xsjpp3wrvvqs2xyr14ig9vp3h4v0qixhj1b8v69cfrgpi"))))
     (build-system python-build-system)
     (arguments
      `(;; TODO: Tests require a running database
@@ -396,23 +396,10 @@ application = get_wsgi_application()\n") port)))))
                            (install-file file (string-append out "/bin")))
                          (list
                           (string-append out-site-packages
-                                         "patchwork/bin/pwclient")
-                          (string-append out-site-packages
                                          "patchwork/bin/parsemail.sh")
                           (string-append out-site-packages
                                          "patchwork/bin/parsemail-batch.sh")))
 
-               ;; Delete the symlink to pwclient, and replace it with the
-               ;; actual file, as this can cause issues when serving the file
-               ;; from a webserver.
-               (let ((template-pwclient (string-append
-                                         out-site-packages
-                                         "patchwork/templates/patchwork/pwclient")))
-                 (delete-file template-pwclient)
-                 (copy-file (string-append out-site-packages
-                                           "patchwork/bin/pwclient")
-                            template-pwclient))
-
                ;; Collect the static assets, this includes JavaScript, CSS and
                ;; fonts. This is a standard Django process when running a
                ;; Django application for regular use, and includes assets for
@@ -467,7 +454,7 @@ if __name__ == \"__main__\":
     (inputs
      `(("python-wrapper" ,python-wrapper)))
     (propagated-inputs
-     `(("python-django" ,python-django)
+     `(("python-django" ,python-django-2.2)
        ;; TODO: Make this configurable
        ("python-psycopg2" ,python-psycopg2)
        ("python-mysqlclient" ,python-mysqlclient)
@@ -481,3 +468,57 @@ patches, and displays the patches along with comments and state information.
 Users can login allowing them to change the state of patches.")
     (home-page "http://jk.ozlabs.org/projects/patchwork/")
     (license gpl2+)))
+
+(define-public pwclient
+  (package
+    (name "pwclient")
+    (version "1.3.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/getpatchwork/pwclient")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1xckwvcqklzpyh3xs4k2zm40ifp0q5fdkj2vmgb8vhfvl1ivs6jv"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-requirements
+           (lambda _
+             (substitute* "test-requirements.txt"
+               ;; The pytest requirement is unnecessarily strict
+               (("pytest>=3.0,<5.0;")
+                "pytest>=3.0,<6.0;"))
+             #t))
+         (add-before 'build 'set-PBR_VERSION
+           (lambda _
+             (setenv "PBR_VERSION"
+                     ,version)
+             #t))
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (invoke "pytest"))
+             #t))
+         (add-after 'install 'install-man-page
+           (lambda* (#:key outputs #:allow-other-keys)
+             (install-file "man/pwclient.1"
+                           (string-append
+                            (assoc-ref outputs "out")
+                            "/share/man/man1"))
+             #t)))))
+    (native-inputs
+     `(("python-pbr" ,python-pbr)
+       ("python-pytest" ,python-pytest)
+       ("python-pytest-cov" ,python-pytest-cov)
+       ("python-mock" ,python-mock)))
+    (home-page
+     "https://github.com/getpatchwork/pwclient")
+    (synopsis "Command-line client for the Patchwork patch tracking tool")
+    (description
+     "pwclient is a VCS-agnostic tool for interacting with Patchwork, the
+web-based patch tracking system.")
+    (license gpl2+)))
diff --git a/gnu/packages/pciutils.scm b/gnu/packages/pciutils.scm
index c992988437..d7d224b292 100644
--- a/gnu/packages/pciutils.scm
+++ b/gnu/packages/pciutils.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2014, 2015, 2017 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014, 2015, 2017, 2020 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
@@ -36,7 +36,7 @@
 (define-public pciutils
   (package
     (name "pciutils")
-    (version "3.6.4")
+    (version "3.7.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -45,7 +45,7 @@
               (patches (search-patches "pciutils-hurd-configure.patch"))
               (sha256
                (base32
-                "0mb0f2phdcmp4kfiqsszn2k6nlln0w160ffzrjjv4bbfjwrgfzzn"))))
+                "1ss0rnfsx8gvqjxaji4mvbhf9xyih4cadmgadbwwv8mnx1xvjh4x"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
@@ -92,7 +92,15 @@
          (replace 'install
            (lambda* (#:key outputs #:allow-other-keys)
              ;; Install the commands, library, and .pc files.
-             (invoke "make" "install" "install-lib"))))
+             (invoke "make" "install" "install-lib")))
+
+         ,@(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)))))
+               '()))
 
        ;; Make sure programs have an RPATH so they can find libpciutils.so.
        #:make-flags (list (string-append "LDFLAGS=-Wl,-rpath="
@@ -109,6 +117,9 @@
                      (package-supported-systems kmod))
              `(("kmod" ,kmod))
              '())
+       ,@(if (hurd-target?)
+             `(("hurd-patch" ,(search-patch "pciutils-hurd-fix.patch")))
+             '())
        ("zlib" ,zlib)))
     (home-page "https://mj.ucw.cz/sw/pciutils/")
     (synopsis "Programs for inspecting and manipulating PCI devices")
diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm
index 7649bff695..d03379c113 100644
--- a/gnu/packages/pdf.scm
+++ b/gnu/packages/pdf.scm
@@ -13,11 +13,14 @@
 ;;; Copyright © 2017, 2018 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2017 Alex Vong <alexvong1995@gmail.com>
 ;;; Copyright © 2017, 2018 Rene Saavedra <pacoon@protonmail.com>
-;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2019 Alex Griffin <a@ajgrf.com>
 ;;; Copyright © 2019 Ben Sturmfels <ben@sturm.com.au>
 ;;; Copyright © 2019,2020 Hartmut Goebel <h.goebel@crazy-compilers.com>
 ;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
+;;; Copyright © 2020 Timotej Lazar <timotej.lazar@araneo.si>
+;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -44,6 +47,7 @@
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system meson)
   #:use-module (guix build-system python)
+  #:use-module (guix build-system qt)
   #:use-module (guix build-system trivial)
   #:use-module (gnu packages)
   #:use-module (gnu packages audio)
@@ -53,8 +57,10 @@
   #:use-module (gnu packages bash)
   #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages cups)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages djvu)
+  #:use-module (gnu packages fonts)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages game-development)
   #:use-module (gnu packages gcc)
@@ -67,7 +73,6 @@
   #:use-module (gnu packages gstreamer)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages image)
-  #:use-module (gnu packages imagemagick)
   #:use-module (gnu packages javascript)
   #:use-module (gnu packages lesstif)
   #:use-module (gnu packages libffi)
@@ -88,6 +93,7 @@
   #:use-module (gnu packages sqlite)
   #:use-module (gnu packages tex)
   #:use-module (gnu packages tls)
+  #:use-module (gnu packages web)
   #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg)
@@ -190,9 +196,7 @@ please install the @code{flyer-composer-gui} package.")))
 
              ;; To build poppler-glib (as needed by Evince), we need Cairo and
              ;; GLib.  But of course, that Cairo must not depend on Poppler.
-             ("cairo" ,(package (inherit cairo)
-                         (inputs (alist-delete "poppler"
-                                               (package-inputs cairo)))))))
+             ("cairo" ,cairo-sans-poppler)))
    (propagated-inputs
     ;; As per poppler-cairo and poppler-glib.pc.
     ;; XXX: Ideally we'd propagate Cairo too, but that would require a
@@ -220,17 +224,17 @@ please install the @code{flyer-composer-gui} package.")))
 (define-public poppler-data
   (package
     (name "poppler-data")
-    (version "0.4.9")
+    (version "0.4.10")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://poppler.freedesktop.org/poppler-data"
                                   "-" version ".tar.gz"))
               (sha256
                (base32
-                "04i0wgdkn5lhda8cyxd1ll4a2p41pwqrwd47n9mdpl7cx5ypx70z"))))
+                "0c3vjs3p7rjc4yfacnhd865r27czmzwcr4j2z4jldi68dvvcwbvf"))))
     (build-system gnu-build-system)
     (arguments
-     '(#:tests? #f ; no test suite
+     '(#:tests? #f                      ; no test suite
        #:make-flags (list (string-append "prefix=" (assoc-ref %outputs "out")))
        #:phases
        (modify-phases %standard-phases
@@ -500,7 +504,7 @@ using the DjVuLibre library.")
 (define-public zathura-pdf-mupdf
   (package
     (name "zathura-pdf-mupdf")
-    (version "0.3.5")
+    (version "0.3.6")
     (source (origin
               (method url-fetch)
               (uri
@@ -508,7 +512,7 @@ using the DjVuLibre library.")
                               "/download/zathura-pdf-mupdf-" version ".tar.xz"))
               (sha256
                (base32
-                "1pjwsb7zwclxsvz229fl7y2saf1pv3ifwv3ay8viqxgrp9x3z9hq"))))
+                "1r3v37k9fl2rxipvacgxr36llywvy7n20a25h3ajlyk70697sa66"))))
     (native-inputs `(("pkg-config" ,pkg-config)))
     (inputs
      `(("jbig2dec" ,jbig2dec)
@@ -527,6 +531,12 @@ using the DjVuLibre library.")
                                "-Dlink-external=true")
        #:phases
        (modify-phases %standard-phases
+         (add-after 'unpack 'remove-libmupdfthird.a-requirement
+           (lambda _
+             ;; Ignore a missing (apparently superfluous) static library.
+             (substitute* "meson.build"
+               ((".*mupdfthird.*") ""))
+             #t))
          (add-before 'configure 'add-mujs-to-dependencies
            (lambda _
              ;; Add mujs to the 'build_dependencies'.
@@ -580,7 +590,7 @@ by using the poppler rendering engine.")
 (define-public zathura
   (package
     (name "zathura")
-    (version "0.4.5")
+    (version "0.4.7")
     (source (origin
               (method url-fetch)
               (uri
@@ -588,7 +598,7 @@ by using the poppler rendering engine.")
                               version ".tar.xz"))
               (sha256
                (base32
-                "0b3nrcvykkpv2vm99kijnic2gpfzva520bsjlihaxandzfm9ff8c"))))
+                "1rx1fk9s556fk59lmqgvhwrmv71ashh89bx9adjq46wq5gzdn4p0"))))
     (native-inputs `(("pkg-config" ,pkg-config)
                      ("gettext" ,gettext-minimal)
                      ("glib:bin" ,glib "bin")
@@ -638,15 +648,14 @@ interaction.")
 (define-public podofo
   (package
     (name "podofo")
-    (version "0.9.6")
+    (version "0.9.7")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://sourceforge/podofo/podofo/" version
                                   "/podofo-" version ".tar.gz"))
               (sha256
                (base32
-                "0wj0y4zcmj4q79wrn3vv3xq4bb0vhhxs8yifafwy9f2sjm83c5p9"))
-              (patches (search-patches "podofo-cmake-3.12.patch"))))
+                "1f0yvkx6nf99fp741w2y706d8bs9824x1z2gqm3rdy5fv8bfgwkw"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("cppunit" ,cppunit)
@@ -661,8 +670,8 @@ interaction.")
        ("openssl" ,openssl)
        ("zlib" ,zlib)))
     (arguments
-     `(#:configure-flags '("-DPODOFO_BUILD_SHARED=ON"
-                           "-DPODOFO_BUILD_STATIC=ON")
+     `(#:configure-flags
+       (list "-DPODOFO_BUILD_SHARED=ON")
        #:phases
        (modify-phases %standard-phases
          (add-before 'configure 'patch
@@ -685,30 +694,35 @@ extracting content or merging files.")
 (define-public mupdf
   (package
     (name "mupdf")
-    (version "1.16.1")
+    (version "1.18.0")
     (source
-      (origin
-        (method url-fetch)
-        (uri (string-append "https://mupdf.com/downloads/archive/"
-                            "mupdf-" version "-source.tar.xz"))
-        (sha256
-         (base32
-          "1npmy92lkj41nnc14b4fpq7z62pminy94zsdbrczj22jpn283rvg"))
-        (modules '((guix build utils)))
-        (snippet
-         ;; We keep lcms2 since it is different than our lcms.
-         '(begin
-            (for-each
-              (lambda (dir)
-                (delete-file-recursively (string-append "thirdparty/" dir)))
-              '("freeglut" "freetype" "harfbuzz" "jbig2dec"
-                "libjpeg" "mujs" "openjpeg" "zlib"))
-                #t))))
+     (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"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin
+           ;; Remove bundled software.
+           (let* ((keep (list "lcms2")) ; different from our lcms2 package
+                  (from "thirdparty")
+                  (kept (string-append from "~temp")))
+             (mkdir-p kept)
+             (for-each (lambda (file) (rename-file (string-append from "/" file)
+                                              (string-append kept "/" file)))
+                       keep)
+             (delete-file-recursively from)
+             (rename-file kept from))
+           #t))))
     (build-system gnu-build-system)
     (inputs
       `(("curl" ,curl)
         ("freeglut" ,freeglut)
         ("freetype" ,freetype)
+        ("gumbo-parser" ,gumbo-parser)
         ("harfbuzz" ,harfbuzz)
         ("jbig2dec" ,jbig2dec)
         ("libjpeg" ,libjpeg-turbo)
@@ -721,14 +735,19 @@ extracting content or merging files.")
     (native-inputs
       `(("pkg-config" ,pkg-config)))
     (arguments
-      '(#:tests? #f ; no check target
-        #:make-flags (list "CC=gcc"
+      `(#:tests? #f                     ; no check target
+        #:make-flags (list "verbose=yes"
+                           (string-append "CC=" ,(cc-for-target))
                            "XCFLAGS=-fpic"
                            "USE_SYSTEM_LIBS=yes"
                            "USE_SYSTEM_MUJS=yes"
+                           "shared=yes"
+                           ;; Even with the linkage patch we must fix RUNPATH.
+                           (string-append "LDFLAGS=-Wl,-rpath="
+                                          (assoc-ref %outputs "out") "/lib")
                            (string-append "prefix=" (assoc-ref %outputs "out")))
         #:phases (modify-phases %standard-phases
-                  (delete 'configure))))
+                   (delete 'configure)))) ; no configure script
     (home-page "https://mupdf.com")
     (synopsis "Lightweight PDF viewer and toolkit")
     (description
@@ -791,6 +810,53 @@ program capable of converting PDF into other formats.")
    (license (list license:asl2.0 license:clarified-artistic))
    (home-page "http://qpdf.sourceforge.net/")))
 
+(define-public qpdfview
+  (package
+    (name "qpdfview")
+    (version "0.4.18")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://launchpad.net/qpdfview/"
+                           "trunk/" version "/+download/"
+                           "qpdfview-" version ".tar.gz"))
+       (sha256
+        (base32 "0v1rl126hvblajnph2hkansgi0s8vjdc5yxrm4y3faa0lxzjwr6c"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("cups" ,cups)
+       ("djvulibre" ,djvulibre)
+       ("libspectre" ,libspectre)
+       ("poppler-qt5" ,poppler-qt5)
+       ("qtbase" ,qtbase)
+       ("qtsvg" ,qtsvg)))
+    (arguments
+     `(#:imported-modules ((guix build qt-build-system)
+                           (guix build cmake-build-system)
+                           ,@%gnu-build-system-modules)
+       #:modules ((guix build utils)
+                  (guix build gnu-build-system)
+                  ((guix build qt-build-system) #:prefix qt:))
+       #:phases
+       (modify-phases %standard-phases
+         (replace 'configure
+           (lambda _
+             (substitute* "qpdfview.pri"
+               (("/usr") (assoc-ref %outputs "out")))
+             (invoke "qmake" "qpdfview.pro")))
+         ;; Otherwise, the user interface will not display any icons.
+         (add-after 'install 'qt-wrap
+           (assoc-ref qt:%standard-phases 'qt-wrap)))))
+    (home-page "https://launchpad.net/qpdfview")
+    (synopsis "Tabbed document viewer")
+    (description "@command{qpdfview} is a document viewer for PDF, PS and DJVU
+files.  It uses the Qt toolkit and features persistent per-file settings,
+configurable toolbars and shortcuts, continuous and multi‐page layouts,
+SyncTeX support, and rudimentary support for annotations and forms.")
+    (license license:gpl2+)))
+
 (define-public xournal
   (package
     (name "xournal")
@@ -822,7 +888,7 @@ using a stylus.")
 (define-public xournalpp
   (package
     (name "xournalpp")
-    (version "1.0.18")
+    (version "1.0.20")
     (source
      (origin
        (method git-fetch)
@@ -831,7 +897,7 @@ using a stylus.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0a9ygbmd4dwgck3k8wsrm2grynqa0adb12wwspzmzvpisbadffjy"))))
+        (base32 "1c7n03xm3m4lwcwxgplkn25i8c6s3i7rijbkcx86br1j4jadcs3k"))))
     (build-system cmake-build-system)
     (arguments
      `(#:configure-flags (list "-DENABLE_CPPUNIT=ON") ;enable tests
@@ -848,6 +914,14 @@ using a stylus.")
              (for-each (lambda (po) (chmod po #o666))
                        (find-files "." "\\.po$"))
              #t))
+         ;; Fix path to addr2line utility, which the crash reporter uses.
+         (add-after 'unpack 'fix-paths
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "src/util/Stacktrace.cpp"
+               ;; Match only the commandline.
+               (("\"addr2line ")
+                (string-append "\"" (which "addr2line") " ")))
+             #t))
          (add-after 'install 'glib-or-gtk-wrap
            (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
     (native-inputs
@@ -1038,7 +1112,6 @@ the PDF pages.")
               ("libudev" ,eudev)
               ("libwebp" ,libwebp)
               ("libdrm" ,libdrm)
-              ("imagemagick" ,imagemagick)
               ("giflib" ,giflib)
               ("glib" ,glib)
               ("cairo-xcb" ,cairo-xcb)
@@ -1256,7 +1329,7 @@ multiple files.")
 (define-public pdfpc
   (package
     (name "pdfpc")
-    (version "4.4.0")
+    (version "4.4.1")
     (source
      (origin
        (method git-fetch)
@@ -1265,7 +1338,7 @@ multiple files.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0vh2r32akvasdrghkaq7ard24r2qncp34jfiyshi3zxabm9bhfaa"))))
+        (base32 "11n925c5jj3yfwnqkgxzqrmsrpqh8ls1g4idmqqzpsanpam1xvna"))))
     (build-system cmake-build-system)
     (arguments '(#:tests? #f))          ; no test target
     (inputs
@@ -1356,14 +1429,17 @@ manipulating PDF documents from the command line.  It supports
 (define-public weasyprint
   (package
     (name "weasyprint")
-    (version "51")
+    (version "52.1")
     (source
      (origin
-       (method url-fetch)
-       (uri (pypi-uri "WeasyPrint" version))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/FelixSchwarz/WeasyPrint")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
-        (base32 "0skdzwq7cd715dnnds6abx0k0xmmnmsqp0vb1r1w20sg7abp3sdk"))
-       (patches (search-patches "weasyprint-library-paths.patch"))))
+        (base32
+         "0rcj9yah3bp6bbvkmny3w4csx4l5v49lc7mrk29g0x77qnwswjy7"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -1375,27 +1451,39 @@ manipulating PDF documents from the command line.  It supports
                    (pango (assoc-ref inputs "pango"))
                    (pangoft2 (assoc-ref inputs "pangoft2")))
                (substitute* "weasyprint/fonts.py"
-                 (("@fontconfig@")
-                  (string-append fontconfig "/lib/libfontconfig.so"))
-                 (("@pangoft2@")
-                  (string-append pango "/lib/libpangoft2-1.0.so")))
+                 (("'fontconfig'")
+                  (format #f "'~a/lib/libfontconfig.so'" fontconfig))
+                 (("'pangoft2-1.0'")
+                  (format #f "'~a/lib/libpangoft2-1.0.so'" pango)))
                (substitute* "weasyprint/text.py"
-                 (("@gobject@")
-                  (string-append glib "/lib/libgobject-2.0.so"))
-                 (("@pango@")
-                  (string-append pango "/lib/libpango-1.0.so"))
-                 (("@pangocairo@")
-                  (string-append pango "/lib/libpangocairo-1.0.so"))))))
-         (add-after 'unpack 'remove-pytest-options
+                 (("'gobject-2.0'")
+                  (format #f "'~a/lib/libgobject-2.0.so'" glib))
+                 (("'pango-1.0'")
+                  (format #f "'~a/lib/libpango-1.0.so'" pango))
+                 (("'pangocairo-1.0'")
+                  (format #f "'~a/lib/libpangocairo-1.0.so'" pango)))
+               #t)))
+         (add-after 'unpack 'disable-linters
+           ;; Their check fails; none of our business.
            (lambda _
              (substitute* "setup.cfg"
-               ;; flake8 and isort syntax checks fail, which is not our
-               ;; business.
-               (("addopts = --flake8 --isort") ""))))
-         (replace 'check
-           (lambda _
-             ;; Run pytest, excluding one failing test.
-             (invoke "pytest" "-k" "not test_flex_column_wrap_reverse"))))))
+               ((".*pytest-flake8.*") "")
+               ((".*pytest-isort.*") "")
+               (("--flake8") "")
+               (("--isort") ""))
+             #t))
+         (add-before 'check 'register-dejavu-font
+           (lambda* (#:key inputs #:allow-other-keys)
+             ;; TODO: fix FreeType so that fonts found in XDG_DATA_DIRS are
+             ;; honored.
+             (let* ((HOME "/tmp")
+                    (dejavu (assoc-ref inputs "font-dejavu"))
+                    (fonts-dir (string-append HOME "/.fonts")))
+               (setenv "HOME" HOME)
+               (mkdir-p fonts-dir)
+               (symlink (string-append dejavu "/share/fonts/truetype")
+                        (string-append fonts-dir "/truetype"))
+               (invoke "fc-cache" "-rv")))))))
     (inputs
      `(("fontconfig" ,fontconfig)
        ("glib" ,glib)
@@ -1410,7 +1498,8 @@ manipulating PDF documents from the command line.  It supports
        ("python-pyphen" ,python-pyphen)
        ("python-tinycss2" ,python-tinycss2)))
     (native-inputs
-     `(("python-pytest-cov" ,python-pytest-cov)
+     `(("font-dejavu" ,font-dejavu)     ;tests depend on it
+       ("python-pytest-cov" ,python-pytest-cov)
        ("python-pytest-runner" ,python-pytest-runner)))
     (home-page "https://weasyprint.org/")
     (synopsis "Document factory for creating PDF files from HTML")
diff --git a/gnu/packages/perl-check.scm b/gnu/packages/perl-check.scm
index 0aaae65573..ad8b166bd9 100644
--- a/gnu/packages/perl-check.scm
+++ b/gnu/packages/perl-check.scm
@@ -10,7 +10,7 @@
 ;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2017 Christopher Baines <mail@cbaines.net>
 ;;; Copyright © 2017 Petter <petter@mykolab.ch>
-;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
 ;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
 ;;; Copyright © 2018 Kei Kebreau <kkebreau@posteo.net>
@@ -587,7 +587,7 @@ testing exception-throwing code with about the same amount of typing.")
 (define-public perl-test-file
   (package
     (name "perl-test-file")
-    (version "1.443")
+    (version "1.444")
     (source
      (origin
        (method url-fetch)
@@ -596,8 +596,7 @@ testing exception-throwing code with about the same amount of typing.")
              version
              ".tar.gz"))
        (sha256
-        (base32
-         "1mdwb3x8d4l24wsymamsnq2c73a637v4q5kmb5xqqz31iymsdd31"))))
+        (base32 "0195dnvwxxphwbglw6cjid3j7kq15xg46lr7r4468idvadyal6c7"))))
     (build-system perl-build-system)
     (native-inputs
      `(("perl-test-utf8" ,perl-test-utf8)))
@@ -1442,15 +1441,14 @@ from boxed blocks of test code.")
 (define-public perl-test-utf8
   (package
     (name "perl-test-utf8")
-    (version "1.01")
+    (version "1.02")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://cpan/authors/id/M/MA/MARKF/"
                            "Test-utf8-" version ".tar.gz"))
        (sha256
-        (base32
-         "0yhvf735v334qqvp9zg7i66qyk6r4cbk5s2psv93d3fdd4bindzg"))))
+        (base32 "1mwbdgbbzm54v7wdw3l80bk73lr4z9i8274zlhjhp0s0b6fg10nz"))))
     (build-system perl-build-system)
     (native-inputs
      `(("perl-module-install" ,perl-module-install)))
diff --git a/gnu/packages/perl-compression.scm b/gnu/packages/perl-compression.scm
index 3303fe1645..da7c09b640 100644
--- a/gnu/packages/perl-compression.scm
+++ b/gnu/packages/perl-compression.scm
@@ -69,14 +69,14 @@ is available in this module.")
 (define-public perl-compress-raw-bzip2
   (package
     (name "perl-compress-raw-bzip2")
-    (version "2.095")
+    (version "2.096")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://cpan/authors/id/P/PM/PMQS/"
                            "Compress-Raw-Bzip2-" version ".tar.gz"))
        (sha256
-        (base32 "1n72lr35axc9hhxxf9ss6b576s1fn8vab6dcsmbbb7h234j5hzg5"))))
+        (base32 "1glcjnbqksaviwyrprh9i4dybsb12kzfy0bx932l0xya9riyfr55"))))
     (build-system perl-build-system)
     ;; TODO: Use our bzip2 package.
     (home-page "https://metacpan.org/release/Compress-Raw-Bzip2")
@@ -88,14 +88,14 @@ compression library.")
 (define-public perl-compress-raw-zlib
   (package
     (name "perl-compress-raw-zlib")
-    (version "2.095")
+    (version "2.096")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://cpan/authors/id/P/PM/PMQS/"
                            "Compress-Raw-Zlib-" version ".tar.gz"))
        (sha256
-        (base32 "1ci1mp361cjkky2s30ganzvxcjj93rqjf26mli786wyicwr6ab5s"))))
+        (base32 "04jrqvqsa2c655idw7skv5rhb9vx9997h4n9if5p99srq4hblk6d"))))
     (build-system perl-build-system)
     (inputs
      `(("zlib" ,zlib)))
@@ -123,14 +123,14 @@ compression library.")
 (define-public perl-io-compress
   (package
     (name "perl-io-compress")
-    (version "2.095")
+    (version "2.096")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://cpan/authors/id/P/PM/PMQS/"
                            "IO-Compress-" version ".tar.gz"))
        (sha256
-        (base32 "14spyqv7x608kvi7wsj4pw68dxwnjlh0aqff5b5iw7wg5v569q4h"))))
+        (base32 "0wm51dib74l9baqfkfm0ixsr4cqwrgij2yc45xfhnjabvzary8cx"))))
     (build-system perl-build-system)
     (propagated-inputs
      ;; These two packages should be updated to this one's version first.
@@ -170,14 +170,14 @@ in the format used by the @command{gzip} program.")
 (define-public perl-archive-extract
   (package
     (name "perl-archive-extract")
-    (version "0.82")
+    (version "0.86")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://cpan/authors/id/B/BI/BINGOS/Archive-Extract-"
                            version ".tar.gz"))
        (sha256
-        (base32 "00zq2ishxk70192sjl1wciq14vhb9isz8rcafcy1j89va1srpvrn"))))
+        (base32 "11xnmb21835hysdk2mcq6ndch0136j03n2i111nhpkz8p36hkkcs"))))
     (build-system perl-build-system)
     (home-page "https://metacpan.org/release/Archive-Extract")
     (synopsis "Generic archive extracting mechanism")
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index 41c6da67d4..da05f7a95b 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -1,6 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
-;;; Copyright © 2013, 2019 Andreas Enge <andreas@enge.fr>
+;;; Copyright © 2013, 2019, 2020 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2015, 2016, 2017, 2019 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2015, 2016, 2017, 2019, 2020 Eric Bavier <bavier@posteo.net>
 ;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr>
@@ -27,6 +27,8 @@
 ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
 ;;; Copyright © 2020 Paul Garlick <pgarlick@tourbillion-technology.com>
 ;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;; Copyright © 2020 Malte Frank Gerdes <malte.f.gerdes@gmail.com>
+;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -74,7 +76,8 @@
   #:use-module (gnu packages sdl)
   #:use-module (gnu packages textutils)
   #:use-module (gnu packages video)
-  #:use-module (gnu packages web))
+  #:use-module (gnu packages web)
+  #:use-module (gnu packages xorg))
 
 ;;;
 ;;; Please: Try to add new module packages in alphabetic order.
@@ -267,15 +270,14 @@ more.")
 (define-public perl-algorithm-c3
   (package
     (name "perl-algorithm-c3")
-    (version "0.10")
+    (version "0.11")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://cpan/authors/id/H/HA/HAARG/"
                            "Algorithm-C3-" version ".tar.gz"))
        (sha256
-        (base32
-         "01hlcaxndls86bl92rkd3fvf9pfa3inxqaimv88bxs95803kmkss"))))
+        (base32 "02ck52cf0yyk57354rd1rp5l0kbfwi1pvg2lh3jadvjxfrkq9x5a"))))
     (build-system perl-build-system)
     (home-page "https://metacpan.org/release/Algorithm-C3")
     (synopsis "Module for merging hierarchies using the C3 algorithm")
@@ -454,14 +456,14 @@ list manipulation routines.")
 (define-public perl-async-interrupt
   (package
     (name "perl-async-interrupt")
-    (version "1.25")
+    (version "1.26")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://cpan/authors/id/M/ML/MLEHMANN/"
                                   "Async-Interrupt-" version ".tar.gz"))
               (sha256
                (base32
-                "0jh94wj1b6a0cnni8prsb59g5lak5rfj2fw5ng96291zmz2yqp1w"))))
+                "0nq8wqy0gsnwhiw23wsp1dmgzzbf2q1asi85yd0d7cmg4haxsmib"))))
     (build-system perl-build-system)
     (native-inputs
      `(("perl-canary-stability" ,perl-canary-stability)))
@@ -1265,14 +1267,14 @@ different getters and setters.")
 (define-public perl-class-c3
   (package
     (name "perl-class-c3")
-    (version "0.34")
+    (version "0.35")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://cpan/authors/id/H/HA/HAARG/"
                            "Class-C3-" version ".tar.gz"))
        (sha256
-        (base32 "1dcibc31v5jwmi6hsdzi7c5ag1sb4wp3kxkibc889qrdj7jm12sd"))))
+        (base32 "0gp3czp6y0jxx4448kz37f7gdxq4vw514bvc0l98rk4glvqkq1c4"))))
     (build-system perl-build-system)
     (propagated-inputs
      `(("perl-algorithm-c3" ,perl-algorithm-c3)))
@@ -1691,15 +1693,14 @@ one.")
 (define-public perl-clone-pp
   (package
     (name "perl-clone-pp")
-    (version "1.07")
+    (version "1.08")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://cpan/authors/id/N/NE/NEILB/Clone-PP-"
                            version ".tar.gz"))
        (sha256
-        (base32
-         "15dkhqvih6rx9dnngfwwljcm9s8afb0nbyl2vdvhd8frnw4y31dz"))))
+        (base32 "0y7m25fksiavzg4xj4cm9zkz8rmnk4iqy7lm01m4nmyqlna3082p"))))
     (build-system perl-build-system)
     (home-page "https://metacpan.org/release/Clone-PP")
     (synopsis "Recursively copy Perl datatypes")
@@ -1712,7 +1713,7 @@ and objects.")
 (define-public perl-common-sense
   (package
     (name "perl-common-sense")
-    (version "3.74")
+    (version "3.75")
     (source
      (origin
        (method url-fetch)
@@ -1720,7 +1721,7 @@ and objects.")
                            "common-sense-" version ".tar.gz"))
        (sha256
         (base32
-         "1wxv2s0hbjkrnssvxvsds0k213awg5pgdlrpkr6xkpnimc17s7vp"))))
+         "0zhfp8f0czg69ycwn7r6ayg6idm5kyh2ai06g5s6s07kli61qsm8"))))
     (build-system perl-build-system)
     (home-page "https://metacpan.org/release/common-sense")
     (synopsis "Sane defaults for Perl programs")
@@ -1961,7 +1962,7 @@ the caller.")
     (synopsis "Extract data from Macintosh BinHex files")
     (description
      "BinHex is a format for transporting files safely through electronic
-mail, as short-lined, 7-bit, semi-compressed data streams.  Ths module
+mail, as short-lined, 7-bit, semi-compressed data streams.  This module
 provides a means of converting those data streams back into into binary
 data.")
     (license license:perl-license)))
@@ -2033,14 +2034,14 @@ CPAN::Meta object are present.")
 (define-public perl-cpanel-json-xs
   (package
     (name "perl-cpanel-json-xs")
-    (version "4.18")
+    (version "4.25")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://cpan/authors/id/R/RU/RURBAN/"
                            "Cpanel-JSON-XS-" version ".tar.gz"))
        (sha256
-        (base32 "1dnnf6bjz0fi9hk8gzmsklmh5y0z137vk62k3d7s88q30maf3rk3"))))
+        (base32 "061940vyj9y3rzwq47z2a3f5i5rfpa90ccz7fgz228zr7njkvfpr"))))
     (build-system perl-build-system)
     (propagated-inputs
      `(("perl-common-sense" ,perl-common-sense)))
@@ -2211,7 +2212,7 @@ Password Generator\".")
 (define-public perl-crypt-rijndael
   (package
     (name "perl-crypt-rijndael")
-    (version "1.14")
+    (version "1.15")
     (source
      (origin
       (method url-fetch)
@@ -2219,8 +2220,7 @@ Password Generator\".")
             "mirror://cpan/authors/id/L/LE/LEONT/Crypt-Rijndael-"
             version ".tar.gz"))
       (sha256
-       (base32
-        "03l5nwq97a8q9na4dpd4m3r7vrwpranx225vw8xm40w7zvgw6lb4"))))
+       (base32 "0qs1b6ma4sj0ip5d8544fzgc1bbankc4qlmznp8hay8dk5arp650"))))
     (build-system perl-build-system)
     (home-page "https://metacpan.org/release/Crypt-Rijndael")
     (synopsis "Crypt::CBC compliant Rijndael encryption module")
@@ -3812,24 +3812,15 @@ of the input.  MD4 is described in RFC 1320.")
 (define-public perl-digest-md5
   (package
     (name "perl-digest-md5")
-    (version "2.55")
+    (version "2.58")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "mirror://cpan/authors/id/G/GA/GAAS/Digest-MD5-"
+       (uri (string-append "mirror://cpan/authors/id/T/TO/TODDR/Digest-MD5-"
                            version ".tar.gz"))
        (sha256
-        (base32
-         "0g0fklbrm2krswc1xhp4iwn1dhqq71fqh2p5wm8xj9a4s6i9ic83"))))
+        (base32 "057psy6k7im0pr3344ny6k5rsnbqj8aizkmwgw53kbbngabh20kx"))))
     (build-system perl-build-system)
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-after 'build 'set-permissions
-           (lambda _
-             ;; Make MD5.so read-write so it can be stripped.
-             (chmod "blib/arch/auto/Digest/MD5/MD5.so" #o755)
-             #t)))))
     (home-page "https://metacpan.org/release/Digest-MD5")
     (synopsis "Perl interface to the MD-5 algorithm")
     (description
@@ -4066,6 +4057,41 @@ environment, other than a fixed list of specified variables.  Compilation
 errors are rethrown automatically.")
     (license (package-license perl))))
 
+(define-public perl-eval-withlexicals
+  (package
+    (name "perl-eval-withlexicals")
+    (version "1.003006")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "mirror://cpan/authors/id/H/HA/HAARG/Eval-WithLexicals-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32
+         "0x09mq0q745cxkw3xgr0h7dil7p1pdq3l5299kj3mk2ijkk2gwb6"))))
+    (build-system perl-build-system)
+    (arguments
+     `(#:phases (modify-phases %standard-phases
+                  (add-after 'install 'wrap-tinyrepl
+                    (lambda* (#:key outputs #:allow-other-keys)
+                      (let* ((out (assoc-ref outputs "out")))
+                        (wrap-program (string-append out "/bin/tinyrepl")
+                          `("PERL5LIB" ":" prefix
+                            (,(getenv "PERL5LIB")
+                             ,(string-append out "/lib/perl5/site_perl"))))
+                        #t))))))
+    (propagated-inputs
+     `(("perl-moo" ,perl-moo)
+       ("perl-strictures" ,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
+lexical scope evaluation.  This package also includes the @command{tinyrepl}
+command, which can be used as a minimal Perl read-eval-print loop (REPL).")
+    (license (package-license perl))))
+
 (define-public perl-exception-class
   (package
     (name "perl-exception-class")
@@ -5023,16 +5049,19 @@ relic support.")
 (define-public perl-hash-merge
   (package
     (name "perl-hash-merge")
-    (version "0.300")
+    (version "0.302")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "mirror://cpan/authors/id/R/RE/REHSACK/"
+       (uri (string-append "mirror://cpan/authors/id/H/HE/HERMES/"
                            "Hash-Merge-" version ".tar.gz"))
        (sha256
-        (base32
-         "0h3wfnpv5d4d3f9xzmwkchay6251nhzngdv3f6xia56mj4hxabs0"))))
+        (base32 "0i46agids6pk445gfck80f8z7q3pjvkp0ip1vmhqnq1rcpvj41df"))))
     (build-system perl-build-system)
+    (native-inputs
+     ;; For tests only.
+     `(("perl-clone" ,perl-clone)
+       ("perl-clone-pp" ,perl-clone-pp)))
     (propagated-inputs
      `(("perl-clone-choose" ,perl-clone-choose)))
     (home-page "https://metacpan.org/release/Hash-Merge")
@@ -5560,18 +5589,18 @@ installed.")
 (define-public perl-json-maybexs
   (package
     (name "perl-json-maybexs")
-    (version "1.004000")
+    (version "1.004003")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "mirror://cpan/authors/id/H/HA/HAARG/"
+       (uri (string-append "mirror://cpan/authors/id/E/ET/ETHER/"
                            "JSON-MaybeXS-" version ".tar.gz"))
        (sha256
         (base32
-         "09m1w03as6n0a00pzvaldkhm494yaf5n0g3j2cwwfx24iwpa1gar"))))
+         "1grg8saa318bs4x2wqnww7y0nra7azrzg35bk5pgvkwxzwbkpvjv"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-test-without-module" ,perl-test-without-module)))
+     `(("perl-test-needs" ,perl-test-needs)))
     (inputs
      `(("perl-cpanel-json-xs" ,perl-cpanel-json-xs)))
     (home-page "https://metacpan.org/release/JSON-MaybeXS")
@@ -5784,14 +5813,14 @@ one: logging, exceptions, and translations.")
 (define-public perl-libintl-perl
   (package
     (name "perl-libintl-perl")
-    (version "1.31")
+    (version "1.32")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://cpan/authors/id/G/GU/GUIDO/"
                            "libintl-perl-" version ".tar.gz"))
        (sha256
-        (base32 "1afandrl44mq9c32r57xr489gkfswdgc97h8x86k98dz1byv3l6a"))))
+        (base32 "19gbbh9w3rl805mv6mg1q80fsrg610h098qhf7ycnkjnyac84440"))))
     (build-system perl-build-system)
     (arguments
      `(#:phases
@@ -5904,15 +5933,14 @@ intersections, unions, unique elements, complements and many more.")
 (define-public perl-list-moreutils
   (package
     (name "perl-list-moreutils")
-    (version "0.428")
+    (version "0.430")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://cpan/authors/id/R/RE/REHSACK/"
                            "List-MoreUtils-" version ".tar.gz"))
        (sha256
-        (base32
-         "1hkc8xkd27yzfkgaglzn77j4qjmilyva4gaz3pc64vpism2hjgki"))))
+        (base32 "09v5cipjf634a1176wy2wicibzz51lry0d0yim9rnbfl5j2ggcb3"))))
     (build-system perl-build-system)
     (arguments
      `(#:phases
@@ -5939,15 +5967,14 @@ functionality on lists which is not going to go into List::Util.")
 (define-public perl-list-moreutils-xs
   (package
     (name "perl-list-moreutils-xs")
-    (version "0.428")
+    (version "0.430")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://cpan/authors/id/R/RE/REHSACK/List-MoreUtils-XS-"
                            version ".tar.gz"))
        (sha256
-        (base32
-         "0bfndmnkqaaf3gffprak143bzplxd69c368jxgr7rzlx88hyd7wx"))))
+        (base32 "0hmjkhmk1qlzbg8skq7g1zral07k1x0fk4w2fpcfr7hpgkaldkp8"))))
     (build-system perl-build-system)
     (native-inputs
      `(("perl-config-autoconf" ,perl-config-autoconf)
@@ -7285,15 +7312,14 @@ building is done in @code{MooX::ConfigFromFile::Role}---using
 (define-public perl-moox-file-configdir
   (package
     (name "perl-moox-file-configdir")
-    (version "0.007")
+    (version "0.008")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://cpan/authors/id/R/RE/REHSACK/"
                            "MooX-File-ConfigDir-" version ".tar.gz"))
        (sha256
-        (base32
-         "074v150wrbddhy1n0qc8s80zrb71l3c4is968cnr06ac5l9kmshz"))))
+        (base32 "1b033injzk9d8clgip67ps5j5bpkrnag28q89ddwhrgqx12i3m7q"))))
     (build-system perl-build-system)
     (propagated-inputs
      `(("perl-file-configdir" ,perl-file-configdir)
@@ -7309,17 +7335,16 @@ installing configuration files or for finding any piece of settings.")
 (define-public perl-moox-handlesvia
   (package
     (name "perl-moox-handlesvia")
-    (version "0.001008")
+    (version "0.001009")
     (source
      (origin
        (method url-fetch)
        (uri (string-append
-             "mirror://cpan/authors/id/M/MA/MATTP/MooX-HandlesVia-"
+             "mirror://cpan/authors/id/T/TO/TOBYINK/MooX-HandlesVia-"
              version
              ".tar.gz"))
        (sha256
-        (base32
-         "137yrjn2jmw4cj0fjdajnkjgqr5arnpq72kbm6w66xskncinz55h"))))
+        (base32 "04kcyflg49rclxa1nm035c05jpyvhdacjyy1wklbgv4li3im6qvi"))))
     (build-system perl-build-system)
     (native-inputs
      `(("perl-moox-types-mooselike"
@@ -7867,6 +7892,64 @@ technology to store hierarchical information such as links to other
 documents within a single file.")
     (license (package-license perl))))
 
+(define-public perl-opengl
+  (package
+    (name "perl-opengl")
+    (version "0.70")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://cpan/authors/id/C/CH/CHM/OpenGL-"
+               version
+               ".tar.gz"))
+        (sha256
+          (base32
+            "1q3lz168q081iwl9jg21fbzhp9la79gav9mv6nmh2jab83s2l3mj"))))
+    (build-system perl-build-system)
+    (inputs `(("freeglut" ,freeglut)
+              ("libxi" ,libxi)
+              ("libxmu" ,libxmu)))
+    (arguments
+     '(#:tests? #f ; test.pl fails with our empty glversion.txt, while
+                   ; the package still seems to work on the examples
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'configure 'glversion
+           ;; Building utils/glversion.txt fails, and is probably
+           ;; dependent on the graphics card in the build system.
+           ;; Replace it by a content-free file; while this breaks
+           ;; the tests, the examples in the examples/ subdirectory
+           ;; can be run.
+           (lambda _
+             (substitute* "Makefile.PL"
+               (("unlink") "# unlink") ; prevent utils/glversion.txt
+                                       ; from being deleted once...
+               (("\\.\"\\$make_ver clean\"") "")) ; ...and twice...
+             (substitute* "utils/Makefile"
+               (("all: glversion.txt") "all: ")) ; ...and thrice.
+             (call-with-output-file "utils/glversion.txt"
+               (lambda (port)
+                 (display (string-append "FREEGLUT=\nGLUT=\nVERSION=\n"
+                                         "VENDOR=\nRENDERER=\n"
+                                         "EXTENSIONS=\n")
+                          port)))
+             #t))
+         (add-before 'configure 'fix-library-flags
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "Makefile.PL"
+               (("-L/usr/local/freeglut/lib")
+                (string-append "-L" (assoc-ref inputs "freeglut") "/lib\n"
+                               "-L" (assoc-ref inputs "glu") "/lib\n"
+                               "-L" (assoc-ref inputs "mesa") "/lib\n")))
+             #t)))))
+    (home-page "https://metacpan.org/release/OpenGL")
+    (synopsis
+      "Perl bindings to the OpenGL API, GLU, and GLUT/FreeGLUT")
+    (description "The package provides Perl bindings to OpenGL, GLU
+and FreeGLUT.")
+    (license (package-license perl))))
+
 (define-public perl-package-anon
   (package
     (name "perl-package-anon")
@@ -8226,7 +8309,7 @@ with file paths.")
 (define-public perl-pdf-api2
   (package
     (name "perl-pdf-api2")
-    (version "2.036")
+    (version "2.038")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -8234,7 +8317,7 @@ with file paths.")
                     version ".tar.gz"))
               (sha256
                (base32
-                "0x0pa75wpb87pcshl92y5nh8pzikjp46ljlr2pqvdgpqzvll8107"))))
+                "02dxz798sx0ncdphjrfvfl2a3c1lkplyriyk4psq99q2kdsc8ivl"))))
     (build-system perl-build-system)
     (native-inputs
      `(("perl-test-exception" ,perl-test-exception)
@@ -8321,14 +8404,14 @@ for a given module is comprehensive.")
 (define-public perl-pod-simple
   (package
     (name "perl-pod-simple")
-    (version "3.35")
+    (version "3.42")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://cpan/authors/id/K/KH/KHW/"
                                   "Pod-Simple-" version ".tar.gz"))
               (sha256
                (base32
-                "0gg11ibbc02l2aw0bsv4jx0jax8z0apgfy3p5csqnvhlsb6218cr"))))
+                "1icagrjqw1azmff82h17cbrhqgql7rg21gz64mjpiqqq0cpfpz59"))))
     (build-system perl-build-system)
     (home-page "https://metacpan.org/release/Pod-Simple")
     (synopsis "Parsing library for text in Pod format")
@@ -8552,14 +8635,14 @@ and @code{deserialize_regexp}.")
 (define-public perl-role-tiny-2
   (package
     (inherit perl-role-tiny)
-    (version "2.001001")
+    (version "2.001004")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://cpan/authors/id/H/HA/HAARG/"
                            "Role-Tiny-" version ".tar.gz"))
        (sha256
-        (base32 "16yryg3cr14xw201gm8k8ci00hs60fy8lk2xhnaqa85n5m68flk8"))))))
+        (base32 "11qn516352yhi794www3ykwa9xv2gxpfnhn9jcn10x0ahl95gflj"))))))
 
 (define-public perl-safe-isa
   (package
@@ -9738,14 +9821,14 @@ can combine fields into a CSV string and parse a CSV string into fields.")
 (define-public perl-text-csv-xs
   (package
     (name "perl-text-csv-xs")
-    (version "1.43")
+    (version "1.44")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://cpan/authors/id/H/HM/HMBRAND/"
                            "Text-CSV_XS-" version ".tgz"))
        (sha256
-        (base32 "1frh8awr5ipry21x4403wdkbglpl707n69smksg8sf79ia75756d"))))
+        (base32 "1i4viyf61lzss474ndnmqhdqlhksn9hcxhjbqhv4frg2m3f2v0f4"))))
     (build-system perl-build-system)
     (home-page "https://metacpan.org/release/Text-CSV_XS")
     (synopsis "Routines for manipulating CSV files")
@@ -9784,7 +9867,7 @@ generally slower on larger files.")
 (define-public perl-text-format
   (package
     (name "perl-text-format")
-    (version "0.61")
+    (version "0.62")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -9792,7 +9875,7 @@ generally slower on larger files.")
                     version ".tar.gz"))
               (sha256
                (base32
-                "0axfyiml3zwawwd127z8rl2lm53z6dlsflzmp80m3j0myn7kp2mv"))))
+                "0104z7jjv46kqh77rnx8kvmsbr5dy0s56xm01dckq4ly65br0hkx"))))
     (build-system perl-build-system)
     (native-inputs
      `(("perl-module-build" ,perl-module-build)
@@ -10227,7 +10310,7 @@ duration strings like \"2 minutes\" and \"3 seconds\" to seconds.")
 (define-public perl-time-hires
   (package
     (name "perl-time-hires")
-    (version "1.9760")
+    (version "1.9764")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -10235,10 +10318,10 @@ duration strings like \"2 minutes\" and \"3 seconds\" to seconds.")
                     version ".tar.gz"))
               (sha256
                (base32
-                "0avh25m5ffsqc2xnfczvlnlbfbisw5wjq9d3w0j01h9byjzrif1c"))))
+                "1cfp078spid9z5g7xiswkpkjbkh4mkjvarz25wgwvdxzhxavwhcq"))))
     (build-system perl-build-system)
     (home-page "https://metacpan.org/release/Time-HiRes")
-    (synopsis "High resolution alarm, sleep, gettimeofday, interval timers")
+    (synopsis "High-resolution alarm, sleep, gettimeofday, and interval timers")
     (description "This package implements @code{usleep}, @code{ualarm}, and
 @code{gettimeofday} for Perl, as well as wrappers to implement @code{time},
 @code{sleep}, and @code{alarm} that know about non-integral seconds.")
@@ -11058,6 +11141,39 @@ package takes some liberties with the SDL API, and attempts to adhere to the
 spirit of both the SDL and Perl.")
     (license license:lgpl2.1)))
 
+(define-public perl-sgmls
+  (package
+    (name "perl-sgmls")
+    (version "1.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://cpan/authors/id/R/RA/RAAB/SGMLSpm-"
+                                  version ".tar.gz"))
+              (sha256
+               (base32
+                "1gdjf3mcz2bxir0l9iljxiz6qqqg3a9gg23y5wjg538w552r432m"))))
+    (build-system perl-build-system)
+    (arguments
+     `(#:phases (modify-phases %standard-phases
+                  (add-after 'install 'wrap-script
+                    (lambda* (#:key outputs #:allow-other-keys)
+                      (let* ((out (assoc-ref outputs "out"))
+                             (site (string-append out "/lib/perl5/site_perl")))
+                        (with-directory-excursion out
+                          (rename-file "bin/sgmlspl.pl" "bin/sgmlspl")
+                          (wrap-program "bin/sgmlspl"
+                            `("PERL5LIB" suffix (,site))))
+                        #t))))))
+    (native-inputs
+     `(("perl-module-build" ,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
+for parsing the output from an SGML parser such as OpenSP.  It also includes
+the @command{sgmlspl} command, an Perl script showcasing how the library can
+be used.")
+    (license license:gpl2+)))
+
 (define-public perl-shell-command
   (package
     (name "perl-shell-command")
diff --git a/gnu/packages/phabricator.scm b/gnu/packages/phabricator.scm
index e4a4f79942..af95cd93d2 100644
--- a/gnu/packages/phabricator.scm
+++ b/gnu/packages/phabricator.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2018 Robin Templeton <robin@igalia.com>
+;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -24,48 +25,9 @@
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages))
 
-(define-public libphutil
-  (let ((commit "b29d76e1709ef018cc5edc7c03033fd9fdebc578")
-        (revision "1"))
-    (package
-      (name "libphutil")
-      (version (git-version "0.0.0" revision commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://github.com/phacility/libphutil")
-                      (commit commit)))
-                (file-name (git-file-name name version))
-                (sha256
-                 (base32
-                  "06j84721r9r8624fmil62b5crs2qs0v6rr3cvv2zvkvwhxwrwv1l"))))
-      (build-system gnu-build-system)
-      ;; TODO: Unbundle jsonlint and porter-stemmer.
-      (arguments
-       '(#:tests? #f
-         #:phases
-         (modify-phases %standard-phases
-           (delete 'configure)
-           (delete 'build)
-           (replace 'install
-             (lambda _
-               (let ((lib (string-append %output "/lib/libphutil")))
-                 (mkdir-p lib)
-                 (copy-recursively "." lib))
-               #t)))))
-      (inputs
-       `(("php" ,php)))
-      (home-page "https://github.com/phacility/libphutil")
-      (synopsis "PHP utility library")
-      (description
-       "@code{libphutil} is a collection of utility classes and functions for
-PHP.")
-      ;; Bundled libraries are expat-licensed.
-      (license (list license:asl2.0 license:expat)))))
-
 (define-public arcanist
-  (let ((commit "45a8d22c74a62624e69f5cd6ce901c9ab2658904")
-        (revision "1"))
+  (let ((commit "ceb082ef6b2919d76a90d4a53ca84f5b1e0c2c06")
+        (revision "2"))
     (package
       (name "arcanist")
       (version (git-version "0.0.0" revision commit))
@@ -77,8 +39,9 @@ PHP.")
                 (file-name (git-file-name name version))
                 (sha256
                  (base32
-                  "13vswhqy9sap6841y93j4mj71dl27vhcivcn3rzyi0cchkhg2ac9"))))
+                  "16590nywh3cpm2yq4igw3nfa8g84kwza215mrnqr2k6b2cqzjak3"))))
       (build-system gnu-build-system)
+      ;; TODO: Unbundle jsonlint
       (arguments
        '(#:tests? #f
          #:phases
@@ -86,22 +49,20 @@ PHP.")
            (delete 'configure)
            (delete 'build)
            (replace 'install
-             (lambda _
-               (let ((bin (string-append %output "/bin"))
-                     (lib (string-append %output "/lib/arcanist")))
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let* ((out (assoc-ref outputs "out"))
+                      (bin (string-append out "/bin"))
+                      (lib (string-append out "/lib/arcanist")))
                  (mkdir-p lib)
                  (copy-recursively "." lib)
                  (mkdir-p bin)
                  (symlink (string-append lib "/bin/arc")
                           (string-append bin "/arc"))
                  (wrap-program (string-append bin "/arc")
-                   `("ARC_PHUTIL_PATH" =
-                     (,(string-append (assoc-ref %build-inputs "libphutil")
-                                      "/lib/libphutil")))
                    `("PATH" ":" prefix
                      (,@(map (lambda (i)
                                (string-append (assoc-ref %build-inputs i) "/bin"))
-                             '("git" "mercurial" "subversion"))))))
+                             '("php" "git" "mercurial" "subversion"))))))
                #t))
            (add-before 'reset-gzip-timestamps 'make-compressed-files-writable
              (lambda _
@@ -110,7 +71,6 @@ PHP.")
                #t)))))
       (inputs
        `(("php" ,php)
-         ("libphutil" ,libphutil)
          ("git" ,git)
          ("mercurial" ,mercurial)
          ("subversion" ,subversion)))
@@ -121,4 +81,8 @@ PHP.")
 development service.  It allows you to interact with Phabricator installs to
 send code for review, download patches, transfer files, view status, make API
 calls, and various other things.")
-      (license license:asl2.0))))
+      ;; 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 abdb751a5a..5402826fd6 100644
--- a/gnu/packages/photo.scm
+++ b/gnu/packages/photo.scm
@@ -4,7 +4,7 @@
 ;;; Copyright © 2015, 2017 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2017 Roel Janssen <roel@gnu.org>
-;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2020 Sebastian Schott <sschott@mailbox.org>
 ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
@@ -28,6 +28,7 @@
 (define-module (gnu packages photo)
   #:use-module (guix build-system cmake)
   #: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 download)
@@ -40,6 +41,8 @@
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages base)
   #:use-module (gnu packages boost)
+  #:use-module (gnu packages check)
+  #:use-module (gnu packages cmake)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages cups)
   #:use-module (gnu packages curl)
@@ -73,6 +76,7 @@
   #:use-module (gnu packages python-web)
   #:use-module (gnu packages qt)
   #:use-module (gnu packages readline)
+  #:use-module (gnu packages ruby)
   #:use-module (gnu packages sqlite)
   #:use-module (gnu packages tex)
   #:use-module (gnu packages time)
@@ -236,14 +240,14 @@ data as produced by digital cameras.")
 (define-public libgphoto2
   (package
     (name "libgphoto2")
-    (version "2.5.25")
+    (version "2.5.26")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://sourceforge/gphoto/libgphoto/"
                                   version "/libgphoto2-" version ".tar.bz2"))
               (sha256
                (base32
-                "0fkz2rx7xlmr6zl6f56hhxps6bx16dwcw5pyd8c2icf273s9h3kw"))))
+                "1m5wxap3x9z6x8s2gj3sw9lqwlmbgz00dv6z3h3qk15prfizwh3p"))))
     (build-system gnu-build-system)
     (native-inputs `(("pkg-config" ,pkg-config)))
     (inputs
@@ -267,14 +271,14 @@ from digital cameras.")
 (define-public gphoto2
   (package
     (name "gphoto2")
-    (version "2.5.23")
+    (version "2.5.26")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://sourceforge/gphoto/gphoto/" version
                                   "/gphoto2-" version ".tar.bz2"))
               (sha256
                (base32
-                "1laqwhxr0xhbykmp0dhd3j4rr2lhj5y228s31afnqxp700hhk1yz"))))
+                "0bxbcn31xalsvjp8fra324hf2105y3ps7zlyfz11v71j0lxj2lvn"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
@@ -314,7 +318,7 @@ MTP, and much more.")
 (define-public perl-image-exiftool
   (package
     (name "perl-image-exiftool")
-    (version "11.85")
+    (version "12.00")
     (source
      (origin
        (method url-fetch)
@@ -326,7 +330,7 @@ MTP, and much more.")
                             "Image-ExifTool-" version ".tar.gz")))
        (sha256
         (base32
-         "15zqm0ly2b3paqg0ym44ib2mvh6k18a9q5rvdirwipqa127al2lb"))))
+         "0nl5djf6hs6brnp7qnqvj3xwhj1qnjwcv35ih4yqp2mm9b4jqyfh"))))
     (build-system perl-build-system)
     (arguments
      '(#:phases
@@ -465,7 +469,7 @@ photographic equipment.")
 (define-public darktable
   (package
     (name "darktable")
-    (version "3.0.2")
+    (version "3.4.0")
     (source
      (origin
        (method url-fetch)
@@ -473,15 +477,17 @@ photographic equipment.")
              "https://github.com/darktable-org/darktable/releases/"
              "download/release-" version "/darktable-" version ".tar.xz"))
        (sha256
-        (base32 "1yrnkw8c47kmy2x6m1xp69hwyk02xyc8pd9kvcmyj54lzrhzdfka"))))
+        (base32 "1nmx5lmhp7igav5pswqxmacsbnhgydgvxh1q53wlmyd9bqgxxlvd"))))
     (build-system cmake-build-system)
     (arguments
-     `(#:tests? #f                      ; there are no tests
-       #:configure-flags '("-DBINARY_PACKAGE_BUILD=On")
+     `(#:configure-flags '("-DBINARY_PACKAGE_BUILD=On"
+                           "-DBUILD_TESTING=On")
        #:phases
        (modify-phases %standard-phases
          (add-before 'configure 'prepare-build-environment
            (lambda* (#:key inputs #:allow-other-keys)
+             ;; Rawspeed fails to build with GCC due to OpenMP error:
+             ;; "undefined reference to `GOMP_loop_nonmonotonic_dynamic_next'"
              (setenv "CC" "clang") (setenv "CXX" "clang++")
              ;; Darktable looks for opencl-c.h in the LLVM dir. Guix installs
              ;; it to the Clang dir. We fix this by patching CMakeLists.txt.
@@ -501,58 +507,67 @@ photographic equipment.")
                      (string-append (assoc-ref inputs "ilmbase")
                                     "/include/OpenEXR:" (or (getenv "CPATH") "")))
              #t))
-          (add-after 'install 'wrap-program
-            (lambda* (#:key inputs outputs #:allow-other-keys)
-              (wrap-program (string-append (assoc-ref outputs "out")
-                                           "/bin/darktable")
-                ;; For GtkFileChooserDialog.
-                `("GSETTINGS_SCHEMA_DIR" =
-                  (,(string-append (assoc-ref inputs "gtk+")
-                                   "/share/glib-2.0/schemas"))))
-              #t)))))
+         (add-after 'install 'wrap-program
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (wrap-program (string-append (assoc-ref outputs "out")
+                                          "/bin/darktable")
+               ;; For GtkFileChooserDialog.
+               `("GSETTINGS_SCHEMA_DIR" =
+                 (,(string-append (assoc-ref inputs "gtk+")
+                                  "/share/glib-2.0/schemas")))
+               ;; For libOpenCL.so.
+               `("LD_LIBRARY_PATH" =
+                 (,(string-append (assoc-ref inputs "ocl-icd")
+                                  "/lib"))))
+             #t)))))
     (native-inputs
-     `(("clang" ,clang-9)
+     `(("clang" ,clang-11)
+       ("cmocka" ,cmocka)
        ("desktop-file-utils" ,desktop-file-utils)
        ("glib:bin" ,glib "bin")
        ("gobject-introspection" ,gobject-introspection)
        ("intltool" ,intltool)
-       ("llvm" ,llvm-9) ;should match the Clang version
+       ("llvm" ,llvm-11) ;should match the Clang version
        ("opencl-headers" ,opencl-headers)
        ("perl" ,perl)
        ("pkg-config" ,pkg-config)
-       ("po4a" ,po4a)))
+       ("po4a" ,po4a)
+       ("python" ,python-wrapper)
+       ("ruby" ,ruby)))
     (inputs
      `(("cairo" ,cairo)
-       ("colord-gtk" ,colord-gtk)
-       ("cups" ,cups)
+       ("colord-gtk" ,colord-gtk) ;optional, for color profile support
+       ("cups" ,cups) ;optional, for printing support
        ("curl" ,curl)
        ("dbus-glib" ,dbus-glib)
        ("exiv2" ,exiv2)
        ("freeimage" ,freeimage)
-       ("gmic" ,gmic)
+       ("gmic" ,gmic) ;optional, for HaldcLUT support
        ("graphicsmagick" ,graphicsmagick)
        ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
        ("gtk+" ,gtk+)
        ("ilmbase" ,ilmbase)
-       ("iso-codes" ,iso-codes)
+       ("iso-codes" ,iso-codes) ;optional, for language names in the preferences
        ("json-glib" ,json-glib)
        ("lcms" ,lcms)
-       ("lensfun" ,lensfun)
-       ("libgphoto2" ,libgphoto2)
+       ("lensfun" ,lensfun) ;optional, for the lens distortion plugin
+       ("libgphoto2" ,libgphoto2) ;optional, for camera tethering
+       ("libavif" ,libavif) ;optional, for AVIF support
        ("libjpeg" ,libjpeg-turbo)
        ("libomp" ,libomp)
        ("libpng" ,libpng)
        ("librsvg" ,librsvg)
-       ("libsecret" ,libsecret)
+       ("libsecret" ,libsecret) ;optional, for storing passwords
        ("libsoup" ,libsoup)
        ("libtiff" ,libtiff)
-       ("libwebp" ,libwebp)
+       ("libwebp" ,libwebp) ;optional, for WebP support
        ("libxml2" ,libxml2)
        ("libxslt" ,libxslt)
-       ("lua" ,lua) ;for plugins
-       ("openexr" ,openexr)
-       ("openjpeg" ,openjpeg)
-       ("osm-gps-map" ,osm-gps-map)
+       ("lua" ,lua) ;optional, for plugins
+       ("ocl-icd" ,ocl-icd) ;optional, for OpenCL support
+       ("openexr" ,openexr) ;optional, for EXR import/export
+       ("openjpeg" ,openjpeg) ;optional, for JPEG2000 export
+       ("osm-gps-map" ,osm-gps-map) ;optional, for geotagging view
        ("pugixml" ,pugixml)
        ("python-jsonschema" ,python-jsonschema)
        ("sqlite" ,sqlite)))
@@ -563,14 +578,14 @@ 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 '("i686-linux" "x86_64-linux" "aarch64-linux"))
+    (supported-systems '("x86_64-linux" "aarch64-linux"))
     (license (list license:gpl3+ ;; Darktable itself.
                    license:lgpl2.1+)))) ;; Rawspeed library.
 
 (define-public photoflare
   (package
     (name "photoflare")
-    (version "1.6.5")
+    (version "1.6.6")
     (source
      (origin
        (method git-fetch)
@@ -579,7 +594,7 @@ and enhance them.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0a394324h7ds567z3i3pw6kkii78n4qwdn129kgkkm996yh03q89"))))
+        (base32 "07lrlxagv1bljj607s8m0zsbzx9jrvi18bnxahnm7r4i5car5x2d"))))
     (build-system gnu-build-system)
     (arguments
      '(#:tests? #f                      ;no tests
@@ -611,6 +626,71 @@ paint brushes, image filters, colour adjustments and more advanced features
 such as Batch image processing.")
     (license license:gpl3+)))
 
+(define-public entangle
+  (package
+    (name "entangle")
+    (version "3.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://gitlab.com/entangle/entangle")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1pdmgxjdb3xlcqsaz7l8qzj5f7g7nwzhsrgid8929bm36d49cgc7"))))
+    (build-system meson-build-system)
+    (arguments
+     `(#:glib-or-gtk? #t
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'skip-gtk-update-icon-cache
+           ;; Don't create 'icon-theme.cache'.
+           (lambda _
+             (substitute* "meson_post_install.py"
+               (("gtk-update-icon-cache") "true"))
+             #t))
+         (add-after 'install 'wrap-gi-python
+           ;; Make GTK find files needed by plugins.
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let ((out               (assoc-ref outputs "out"))
+                   (gi-typelib-path   (getenv "GI_TYPELIB_PATH"))
+                   (python-path       (getenv "PYTHONPATH")))
+               (wrap-program (string-append out "/bin/entangle")
+                 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
+                 `("PYTHONPATH" ":" prefix (,python-path))))
+             #t)))))
+    (native-inputs
+     `(("cmake" ,cmake)
+       ("gettext" ,gettext-minimal)
+       ("glib:bin" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("gtk-doc" ,gtk-doc)
+       ("perl" ,perl)
+       ("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)))
+    (home-page "https://entangle-photo.org/")
+    (synopsis "Camera control and capture")
+    (description
+     "Entangle is an application which uses GTK and libgphoto2 to provide a
+graphical interface for tethered photography with digital cameras.  It
+includes control over camera shooting and configuration settings and 'hands
+off' shooting directly from the controlling computer.")
+    (license license:gpl3+)))
+
 (define-public hugin
   (package
     (name "hugin")
diff --git a/gnu/packages/php.scm b/gnu/packages/php.scm
index 7e6a646c0c..ef2618083f 100644
--- a/gnu/packages/php.scm
+++ b/gnu/packages/php.scm
@@ -60,7 +60,7 @@
 (define-public php
   (package
     (name "php")
-    (version "7.4.8")
+    (version "7.4.14")
     (home-page "https://secure.php.net/")
     (source (origin
               (method url-fetch)
@@ -68,7 +68,7 @@
                                   "php-" version ".tar.xz"))
               (sha256
                (base32
-                "0i9j0yykm6ww021iq89g83qjliq1mqiyhqdn3kq8lbkk1f4l6a34"))
+                "11i8w12kyz2lx3fs4vv4l6ccca1znmmdf7dv3mn01ngwd5ww7wzr"))
               (modules '((guix build utils)))
               (snippet
                '(with-directory-excursion "ext"
@@ -218,6 +218,9 @@
                          ;; count of a sub-directory to increase compared to
                          ;; its parent.
                          "ext/standard/tests/file/lstat_stat_variation8.phpt"
+                         ;; This tests whether microseconds ‘differ enough’ and
+                         ;; fails inconsistently on ‘fast’ machines.
+                         "ext/date/tests/bug73837.phpt"
 
                          ;; XXX: These gd tests fails.  Likely because our version
                          ;; is different from the (patched) bundled one.
@@ -311,7 +314,11 @@
                          ;; ("ISO-8859-1"=>"UTF-8") unknown error.
                          "ext/standard/tests/file/bug43008.phpt"
                          ;; Table data not created in sqlite(?).
-                         "ext/pdo_sqlite/tests/bug_42589.phpt"))
+                         "ext/pdo_sqlite/tests/bug_42589.phpt"
+                         ;; Expects an Array with 3 preg_matches; gets 0.
+                         "ext/pcre/tests/bug79846.phpt"
+                         ;; Expects an empty Array; gets one with " " in it.
+                         "ext/pcre/tests/bug80118.phpt"))
 
              ;; Skip tests requiring network access.
              (setenv "SKIP_ONLINE_TESTS" "1")
diff --git a/gnu/packages/piet.scm b/gnu/packages/piet.scm
new file mode 100644
index 0000000000..a09c05d990
--- /dev/null
+++ b/gnu/packages/piet.scm
@@ -0,0 +1,177 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2020 Jesse Gibbons <jgibbons2357+guix@gmail.com>
+;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;;
+;;; 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 piet)
+  #:use-module (guix packages)
+  #:use-module (guix download)
+  #:use-module (guix git-download)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix build-system gnu)
+  #:use-module (gnu packages gd)
+  #:use-module (gnu packages groff)
+  #:use-module (gnu packages image)
+  #:use-module (gnu packages netpbm)
+  #:use-module (gnu packages perl)
+  #:use-module (gnu packages tcl))
+
+(define-public npiet
+  (package
+    (name "npiet")
+    (version "1.3f")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://www.bertnase.de/npiet/npiet-"
+                                  version ".tar.gz"))
+              (sha256
+               (base32
+                "0nl59fhdqqr7nslxdirdn8nvlq5wws67c7jyx2ckbmxbc9h8bv9d"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'wrap-binaries
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (wrap-program (string-append out "/bin/npietedit")
+                 `("PATH" ":" prefix (,(dirname (which "wish")))))
+               #t))))))
+    (inputs
+     `(("gd" ,gd)
+       ("giflib" ,giflib)
+       ("libpng" ,libpng)
+       ("tk" ,tk)))
+    (native-inputs `(("groff" ,groff)))
+    (synopsis "Piet interpreter")
+    (description
+     "Npiet is an interpreter for the Piet programming language.  Instead of
+text, Piet programs are pictures.  Commands are determined based on changes in
+color.
+
+This package includes:
+@enumerate
+@item @command{npiet}, a Piet interpreter with debugging capabilities
+@item @command{npiet-foogol}, a program that builds a Piet program from Foogol,
+an Algol-like language
+@item @command{npietedit}, an editor for Piet programs.
+@end enumerate\n")
+    (home-page "https://www.bertnase.de/npiet/")
+    (license license:gpl2+)))
+
+(define-public piet-toolchain
+  (let ((commit "f002ff6a924a6bbace5eef94f3be06f425e7f590")
+        (revision "0"))
+    (package
+      (name "piet-toolchain")
+      (version (git-version "0.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/sl236/Piet")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0xwbhwizfbn080fmrgavaz3b939brycmlar3m5px9avl2b68c816"))
+         (modules '((guix build utils)))
+         (snippet
+          '(begin
+             ;; Remove a bundled fork of Marc Majcher's Piet interpreter.
+             (delete-file-recursively "interpreter")
+             #t))))
+      (build-system gnu-build-system)
+      (arguments
+       `(#:modules ((guix build gnu-build-system)
+                    (guix build utils)
+                    (srfi srfi-26))
+         #:phases
+         (modify-phases %standard-phases
+           (delete 'configure)          ; no configure script
+           (delete 'build)              ; nothing to build
+           (delete 'check)              ; run our own tests below
+           (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/"
+                                          ,name "-" ,version)))
+                 (for-each (lambda (script)
+                             (install-file script bin)
+                             (wrap-program (string-append bin "/" script)
+                               `("PERL5LIB" ":" = (,(getenv "PERL5LIB")))))
+                           (list "piet-assembler"
+                                 "piet-compiler"))
+
+                 ;; Fix an odd mode.
+                 (chmod "compiler-samples/test-binary-ops.script" #o644)
+                 (for-each (lambda (file)    ; INSTALL-FILE is not recursive
+                             (copy-recursively file
+                                               (string-append doc "/" file)))
+                           (list "assembler-samples"
+                                 "compiler-samples"
+                                 "README.md")) ; includes the licence grant
+                 #t)))
+           (add-after 'install 'check
+             (lambda* (#:key outputs tests? #:allow-other-keys)
+               (let* ((out (assoc-ref outputs "out"))
+                      (bin (string-append out "/bin")))
+                 (when tests?
+                   (unsetenv "PERL5LIB") ; test the wrapping
+                   ;; Compile all scripts assemble all Piets.
+                   (for-each (lambda (file)
+                               (system (string-append bin "/piet-compiler "
+                                                      file ">"
+                                                      file ".piet")))
+                             (find-files "." "\\.script$"))
+                   (for-each (lambda (file)
+                               (system (string-append bin "/piet-assembler "
+                                                      file "|pnmtopng>"
+                                                      file ".png")))
+                             (find-files "." "\\.piet$"))
+
+                   ;; Don't run the interactive one.
+                   (delete-file "assembler-samples/quest.piet.png")
+                   (for-each (cut invoke "npiet" <>)
+                             (find-files "." "\\.png$"))
+                   #t)))))))
+      (native-inputs
+       ;; For our tests.
+       `(("netpbm" ,netpbm)
+         ("npiet" ,npiet)))
+      (inputs
+       `(("perl" ,perl)
+         ("perl-parse-recdescent" ,perl-parse-recdescent)))
+      (home-page "https://www.toothycat.net/wiki/wiki.pl?MoonShadow/Piet")
+      (synopsis "Piet compiler and assembler")
+      (description
+       "This package provides a compiler and assembler that target the Piet
+graphical programming language.
+
+@command{piet-assembler} converts Piet assembler instructions (e.g.,
+@code{push}, @code{add}, @code{switch}, @code{outn}) and directives into an
+executable @code{netpbm} image of the corresponding Piet program.
+
+@command{piet-compiler} compiles a C-like high-level language into assembly
+source understood by @command{piet-assembler}.  It supports common arithmetic
+and boolean logic operators (though not bitwise manipulation), flow control
+(@code{if}, @code{for}, @code{while}), recursive functions, in-line assembler,
+and input/output intrinsics.  The only supported data type is the integer.
+
+The language is documented only by the compiler's Perl source code and the
+included samples.")
+      (license license:cc-by-sa4.0))))
diff --git a/gnu/packages/plotutils.scm b/gnu/packages/plotutils.scm
index 0efc253718..f23b56728a 100644
--- a/gnu/packages/plotutils.scm
+++ b/gnu/packages/plotutils.scm
@@ -208,14 +208,14 @@ colors, styles, options and details.")
 (define-public asymptote
   (package
     (name "asymptote")
-    (version "2.67")
+    (version "2.68")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://sourceforge/asymptote/"
                            version "/asymptote-" version ".src.tgz"))
        (sha256
-        (base32 "16rdwxal27fikzfqsm2sb8ji78whpxl98rdyyp0ky2qlh55mf7la"))))
+        (base32 "1ch2bc28v0v76x9sbbn7xswvqi88plam9y4966j0kj2dn5fmms71"))))
     (build-system gnu-build-system)
     ;; Note: The 'asy' binary retains a reference to docdir for use with its
     ;; "help" command in interactive mode, so adding a "doc" output is not
diff --git a/gnu/packages/popt.scm b/gnu/packages/popt.scm
index df80f12077..11d2b1827d 100644
--- a/gnu/packages/popt.scm
+++ b/gnu/packages/popt.scm
@@ -59,27 +59,23 @@ line syntax.")
 (define-public popt
   (package
     (name "popt")
-    (version "1.16")
+    (version "1.18")
     (source (origin
              (method url-fetch)
-             ;; The original rpm5.org domain is not accessible since
-             ;; 2019-06-13, so use Debians copy of the tarball.
-             (uri (string-append "https://deb.debian.org/debian/pool/main"
-                                 "/p/popt/popt_" version ".orig.tar.gz"))
-             ;; Ensure the file name stays the same to prevent rebuilds.
-             (file-name (string-append "popt-" version ".tar.gz"))
+             (uri (string-append "http://ftp.rpm.org/popt/releases"
+                                 "/popt-1.x/popt-" version ".tar.gz"))
              (sha256
               (base32
-               "1j2c61nn2n351nhj4d25mnf3vpiddcykq005w2h6kw79dwlysa77"))))
+               "1lf5zlj5rbg6s4bww7hbhpca97prgprnarx978vcwa0bl81vqnai"))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases
        (modify-phases %standard-phases
          (add-before 'configure 'patch-test
            (lambda _
-             (substitute* "test-poptrc.in"
+             (substitute* "tests/test-poptrc.in"
                (("/bin/echo") (which "echo")))
-             (substitute* "testit.sh"   ; don't expect old libtool names
+             (substitute* "tests/testit.sh"   ;don't expect old libtool names
                (("lt-test1") "test1"))
              #t)))))
     (home-page "http://rpm5.org/files/popt/")
diff --git a/gnu/packages/pretty-print.scm b/gnu/packages/pretty-print.scm
index 9f9a746844..4ab1da5ca9 100644
--- a/gnu/packages/pretty-print.scm
+++ b/gnu/packages/pretty-print.scm
@@ -1,9 +1,9 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2016, 2019 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
-;;; Copyright © 2017 Ludovic Courtès <ludo@gnu.org>
-;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017, 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2017–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2019 Meiyo Peng <meiyo@riseup.net>
 ;;; Copyright © 2020 Paul Garlick <pgarlick@tourbillion-technology.com>
 ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
@@ -40,7 +40,6 @@
   #:use-module (gnu packages gperf)
   #:use-module (gnu packages groff)
   #:use-module (gnu packages gv)
-  #:use-module (gnu packages imagemagick)
   #:use-module (gnu packages lua)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
@@ -72,8 +71,7 @@
     (build-system gnu-build-system)
     (inputs
      `(("psutils" ,psutils)
-       ("gv" ,gv)
-       ("imagemagick" ,imagemagick)))
+       ("gv" ,gv)))
     (native-inputs
      `(("gperf" ,gperf)
        ("groff" ,groff)
@@ -168,14 +166,14 @@ different programming languages.")
 (define-public fmt
   (package
     (name "fmt")
-    (version "6.2.1")
+    (version "7.0.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://github.com/fmtlib/fmt/releases/download/"
                            version "/fmt-" version ".zip"))
        (sha256
-        (base32 "06l8g59frbsbwj15kg6x2bbn6p8yidh6wzsigdhbdjncvm1agzll"))))
+        (base32 "0kgajl3qsrdyj0csqsz8b8h84kasdy0pnh16byl0y1vlsaddzkyy"))))
     (build-system cmake-build-system)
     (arguments
      '(#:configure-flags '("-DBUILD_SHARED_LIBS=ON")))
@@ -190,6 +188,19 @@ 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-6
+  (package
+    (inherit fmt)
+    (name "fmt")
+    (version "6.2.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://github.com/fmtlib/fmt/releases/download/"
+                           version "/fmt-" version ".zip"))
+       (sha256
+        (base32 "06l8g59frbsbwj15kg6x2bbn6p8yidh6wzsigdhbdjncvm1agzll"))))))
+
 (define-public source-highlight
   (package
     (name "source-highlight")
@@ -217,6 +228,18 @@ to @code{IOStreams}.")
        #:parallel-tests? #f             ;There appear to be race conditions
        #:phases
        (modify-phases %standard-phases
+         ,@(if (%current-target-system)
+               ;; 'doc/Makefile.am' tries to run stuff even when
+               ;; cross-compiling.  Explicitly skip it.
+               ;; XXX: Inline this on next rebuild cycle.
+               `((add-before 'build 'skip-doc-directory
+                   (lambda _
+                     (substitute* "Makefile"
+                       (("^SUBDIRS = (.*) doc(.*)$" _ before after)
+                        (string-append "SUBDIRS = " before
+                                       " " after "\n")))
+                     #t)))
+               '())
          (add-before 'check 'patch-test-files
            (lambda _
              ;; Unpatch shebangs in test input so that source-highlight
@@ -247,14 +270,14 @@ seen in a terminal.")
 (define-public highlight
   (package
     (name "highlight")
-    (version "3.54")
+    (version "3.60")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "http://www.andre-simon.de/zip/highlight-"
                            version ".tar.bz2"))
        (sha256
-        (base32 "1l6nxk3vwd7rkxpq9aqisjyps89r008wzn3abh4566q6jigahl4a"))))
+        (base32 "098xwzj70f2kp9zbfknlqca41lgdjv71clfx1m84151xdszv8p56"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                      ; no tests
diff --git a/gnu/packages/printers.scm b/gnu/packages/printers.scm
index bbf98ee653..9ab9da37fb 100644
--- a/gnu/packages/printers.scm
+++ b/gnu/packages/printers.scm
@@ -1,7 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2018 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
-;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -21,13 +20,9 @@
 (define-module (gnu packages printers)
   #:use-module (guix packages)
   #:use-module (guix git-download)
-  #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
   #:use-module ((guix licenses) #:prefix license:)
-  #:use-module (gnu packages compression)
-  #:use-module (gnu packages cups)
   #:use-module (gnu packages libusb)
-  #:use-module (gnu packages ghostscript)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages qt))
 
@@ -73,68 +68,3 @@
 with Graphtec and Sihouette plotting cutters using an SVG file as its input.")
     (home-page "http://robocut.org")
     (license license:gpl3+)))
-
-(define-public brlaser
-  (package
-    (name "brlaser")
-    (version "6")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://github.com/pdewacht/brlaser")
-                    (commit (string-append "v" version))))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "1995s69ksq1fz0vb34v0ndiqncrinbrlpmp70rkl6az7kag99s80"))))
-    (build-system cmake-build-system)
-    (arguments
-     `(#:configure-flags
-       (list (string-append "-DCUPS_DATA_DIR="
-                            (assoc-ref %outputs "out")
-                            "/share/cups")
-             (string-append "-DCUPS_SERVER_BIN="
-                            (assoc-ref %outputs "out")
-                            "/lib/cups"))))
-    (inputs
-     `(("ghostscript" ,ghostscript)
-       ("cups" ,cups)
-       ("zlib" ,zlib)))
-    (home-page "https://github.com/pdewacht/brlaser")
-    (synopsis "Brother laser printer driver")
-    (description "Brlaser is a CUPS driver for Brother laser printers.  This
-driver is known to work with these printers:
-
-@enumerate
-@item Brother DCP-1510 series
-@item Brother DCP-1600 series
-@item Brother DCP-7030
-@item Brother DCP-7040
-@item Brother DCP-7055
-@item Brother DCP-7055W
-@item Brother DCP-7060D
-@item Brother DCP-7065DN
-@item Brother DCP-7080
-@item Brother DCP-L2500D series
-@item Brother DCP-L2520D series
-@item Brother DCP-L2540DW series
-@item Brother HL-1110 series
-@item Brother HL-1200 series
-@item Brother HL-2030 series
-@item Brother HL-2140 series
-@item Brother HL-2220 series
-@item Brother HL-2270DW series
-@item Brother HL-5030 series
-@item Brother HL-L2300D series
-@item Brother HL-L2320D series
-@item Brother HL-L2340D series
-@item Brother HL-L2360D series
-@item Brother MFC-1910W
-@item Brother MFC-7240
-@item Brother MFC-7360N
-@item Brother MFC-7365DN
-@item Brother MFC-7840W
-@item Brother MFC-L2710DW series
-@item Lenovo M7605D
-@end enumerate")
-    (license license:gpl2+)))
diff --git a/gnu/packages/prolog.scm b/gnu/packages/prolog.scm
index 86b4bd2107..9e0fe2a829 100644
--- a/gnu/packages/prolog.scm
+++ b/gnu/packages/prolog.scm
@@ -86,7 +86,7 @@ manner.  It also features an interactive interpreter.")
 (define-public swi-prolog
   (package
     (name "swi-prolog")
-    (version "8.3.5")
+    (version "8.3.10")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -96,7 +96,7 @@ manner.  It also features an interactive interpreter.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "14dga0gja45x1717fp1bwgf96nzc0zgb8x1lha0pb46jg1raa2da"))))
+                "15q40qpxz472lp190zbk0lyap2xgaxzib55l0c3qwgf9haz46j1p"))))
     (build-system cmake-build-system)
     (arguments
      `(#:parallel-build? #t
@@ -125,7 +125,7 @@ manner.  It also features an interactive interpreter.")
        ("texinfo" ,texinfo)
        ("libarchive" ,libarchive)
        ("libunwind" ,libunwind)
-       ("libjpeg", libjpeg-turbo)
+       ("libjpeg" ,libjpeg-turbo)
        ("libxft" ,libxft)
        ("fontconfig" ,fontconfig)
        ("perl" ,perl)
diff --git a/gnu/packages/protobuf.scm b/gnu/packages/protobuf.scm
index b8bd617eca..a414bc6bbb 100644
--- a/gnu/packages/protobuf.scm
+++ b/gnu/packages/protobuf.scm
@@ -6,6 +6,7 @@
 ;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
+;;; Copyright © 2020 Brett Gilio <brettg@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -32,11 +33,14 @@
   #:use-module (guix build-system emacs)
   #:use-module (guix build-system ruby)
   #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix utils)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages check)
   #:use-module (gnu packages gcc)
   #:use-module (gnu packages libevent)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages python-check)
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages ruby))
 
@@ -79,7 +83,7 @@ data in motion, or as a file format for data at rest.")
 (define-public protobuf
   (package
     (name "protobuf")
-    (version "3.12.3")
+    (version "3.14.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/google/protobuf/releases/"
@@ -87,7 +91,7 @@ data in motion, or as a file format for data at rest.")
                                   version ".tar.gz"))
               (sha256
                (base32
-                "0s29dj8l9j6jk04im3ivcji1x9jm42fwjmwcmli0smz0m337xyaf"))))
+                "0nan2wkkwkcx3qyx0cf5vfzjcjhr5qgh4jfx6v2lwpf5q03mmv2h"))))
     (build-system gnu-build-system)
     (inputs `(("zlib" ,zlib)))
     (outputs (list "out"
@@ -159,7 +163,7 @@ internal RPC protocols and file formats.")
 (define-public protobuf-c
   (package
     (name "protobuf-c")
-    (version "1.3.2")
+    (version "1.3.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/protobuf-c/protobuf-c/"
@@ -167,7 +171,7 @@ internal RPC protocols and file formats.")
                                   "/protobuf-c-" version ".tar.gz"))
               (sha256
                (base32
-                "0x4ybd9rfd878p2imz0hb8zxfd7l60vbdw7cg84dnysr9kqm3wjk"))))
+                "0y3yaanq97si7iyld06p8w20m0shpj7sf4xwzbhhvijhxw36d592"))))
     (build-system gnu-build-system)
     (inputs `(("protobuf" ,protobuf)))
     (native-inputs `(("pkg-config" ,pkg-config)))
@@ -227,6 +231,58 @@ encoder in C++.  The developer using protozero has to manually translate the
 mechanism for serializing structured data.")
     (license license:bsd-3)))
 
+(define-public python-pure-protobuf
+  (package
+    (name "python-pure-protobuf")
+    (version "2.0.1")
+    (source
+     (origin
+       ;; The PyPI tarball is broken: it has no tests.
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/eigenein/protobuf")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (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)))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-before 'check 'setup-test-env
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (py3sitedir
+                     (string-append out "/lib/python"
+                                    ,(version-major+minor
+                                      (package-version python))
+                                    "/site-packages")))
+               (setenv "PYTHONPATH"
+                       (string-append py3sitedir ":"
+                                      (getenv "PYTHONPATH"))))
+             #t))
+         (replace 'check
+           (lambda _
+             (invoke "pytest" "--cov-report" "term-missing" "--cov"
+                     "pure_protobuf")
+             (invoke "flake8" "pure_protobuf" "tests"
+                     "--ignore=F541")
+             (invoke "isort" "-rc" "-c" "pure_protobuf" "tests")
+             #t)))))
+    (home-page "https://pypi.org/project/pure-protobuf/")
+    (synopsis "Protobuf implementation using dataclasses")
+    (description
+     "@code{python-pure-protobuf} takes advantage of the standard
+dataclasses module to define message types.  Protocol buffers are a
+language-neutral, platform-neutral extensible mechanism for serializing
+structured data.")
+    (license license:expat)))
+
 (define-public python2-protobuf
   (package-with-python2 python-protobuf))
 
diff --git a/gnu/packages/pulseaudio.scm b/gnu/packages/pulseaudio.scm
index 3757859d11..af74c0ac5c 100644
--- a/gnu/packages/pulseaudio.scm
+++ b/gnu/packages/pulseaudio.scm
@@ -13,6 +13,7 @@
 ;;; Copyright © 2020 Amin Bandali <bandali@gnu.org>
 ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
 ;;; Copyright © 2020 Pierre Neidhardt <mail@ambrevar.xyz>
+;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -70,25 +71,41 @@
 (define-public libsndfile
   (package
     (name "libsndfile")
-    (version "1.0.28")
+    (version "1.0.30")
     (source (origin
              (method url-fetch)
-             (uri (string-append "http://www.mega-nerd.com/libsndfile/files/libsndfile-"
-                                 version ".tar.gz"))
-             (patches (search-patches "libsndfile-armhf-type-checks.patch"
-                                      "libsndfile-CVE-2017-8361-8363-8365.patch"
-                                      "libsndfile-CVE-2017-8362.patch"
-                                      "libsndfile-CVE-2017-12562.patch"))
+             (uri (string-append "https://github.com/erikd/libsndfile"
+                                 "/releases/download/v" version
+                                 "/libsndfile-" version ".tar.bz2"))
              (sha256
               (base32
-               "1afzm7jx34jhqn32clc5xghyjglccam2728yxlx37yj2y0lkkwqz"))))
+               "06k1wj3lwm7vf21s8yqy51k6nrkn9z610bj1gxb618ag5hq77wlx"))
+             (modules '((ice-9 textual-ports) (guix build utils)))
+             (snippet
+              '(begin
+                 ;; Remove carriage returns (CRLF) to prevent bogus
+                 ;; errors from bash like "$'\r': command not found".
+                 (let ((data (call-with-input-file
+                                 "tests/pedantic-header-test.sh.in"
+                               (lambda (port)
+                                 (string-join
+                                  (string-split (get-string-all port)
+                                                #\return))))))
+                   (call-with-output-file "tests/pedantic-header-test.sh.in"
+                     (lambda (port) (format port data))))
+
+                 ;; While at it, fix hard coded executable name.
+                 (substitute* "tests/test_wrapper.sh.in"
+                   (("^/usr/bin/env") "env"))
+                 #t))))
     (build-system gnu-build-system)
     (inputs
      `(("libvorbis" ,libvorbis)
        ("libogg" ,libogg)
        ("flac" ,flac)))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     `(("pkg-config" ,pkg-config)
+       ("python" ,python)))
     (home-page "http://www.mega-nerd.com/libsndfile/")
     (synopsis "Reading and writing files containing sampled sound")
     (description
@@ -224,7 +241,7 @@ rates.")
 
        ("eudev" ,eudev)))         ;for the detection of hardware audio devices
     (native-inputs
-     `(("check" ,check)
+     `(("check" ,check-0.14)
        ("gettext" ,gettext-minimal)
        ("glib:bin" ,glib "bin")
        ("m4" ,m4)
@@ -505,7 +522,7 @@ module-gsettings is loaded in the sound server.")
 (define-public rnnoise
   (package
     (name "rnnoise")
-    (version "0.9")
+    (version "0.91")
     (source
      (origin
        (method git-fetch)
@@ -514,7 +531,7 @@ module-gsettings is loaded in the sound server.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "18bq5b50xw3d4r1ildinafpg3isb9y216430h4mm9wr3ir7h76a7"))))
+        (base32 "11pwisbcks7g0mdgcrrv49v3ci1l6m26bbb7f67xz4pr1hai5dwc"))))
     (build-system cmake-build-system)
     (arguments
      ;; No tests.
@@ -538,7 +555,7 @@ The plugin is made to work with 1 or 2 channels (ladspa plugin),
 (define-public noisetorch
   (package
     (name "noisetorch")
-    (version "0.6.1-beta")
+    (version "0.8.3")
     (source
      (origin
        (method git-fetch)
@@ -547,7 +564,7 @@ The plugin is made to work with 1 or 2 channels (ladspa plugin),
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1jmh7204mhlabdn0azfjrm3kb944j24n0w0cwibqrs9lfgdn8k52"))))
+        (base32 "115sq4waq048bv82lnq5sblf62m50yvyakx7x06qq359v7qf5ji1"))))
     (build-system go-build-system)
     (arguments
      `(#:import-path "github.com/lawl/NoiseTorch"
@@ -572,6 +589,12 @@ The plugin is made to work with 1 or 2 channels (ladspa plugin),
                  (lambda ()
                    (format #t "package main~%~%var version=~s~&" ,version))))
              #t))
+         (add-after 'unpack 'disable-update-check.go
+           (lambda _
+             (with-directory-excursion "src/github.com/lawl/NoiseTorch"
+               (substitute* "main.go"
+                 ((".*updateCheck.*") "")))
+             #t))
          (add-before 'build 'go-generate
            (lambda _
              (with-directory-excursion "src/github.com/lawl/NoiseTorch"
diff --git a/gnu/packages/purescript.scm b/gnu/packages/purescript.scm
index 13cd773839..cc51b163c9 100644
--- a/gnu/packages/purescript.scm
+++ b/gnu/packages/purescript.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2020 John Soo <jsoo1@asu.edu>
+;;; Copyright © 2020 Bonface Munyoki Kilyungi <bonfacemunyoki@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -47,7 +48,7 @@
 (define-public purescript
   (package
     (name "purescript")
-    (version "0.13.6")
+    (version "0.13.8")
     (source
      (origin
        (method url-fetch)
@@ -57,7 +58,7 @@
              ".tar.gz"))
        (sha256
         (base32
-         "1xss3wpv6wb38gsh9r635s09cxzmiz81hhssdxzdba2pw6ifzx8j"))
+         "0sh9z3ir3jiwmi5h95v9p7j746xxidg1hrxha89c0zl6vr4sq7vh"))
        (patches (search-patches "purescript-relax-dependencies.patch"))))
     (build-system haskell-build-system)
     (inputs
@@ -70,6 +71,7 @@
        ("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)
@@ -95,6 +97,7 @@
        ("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)
diff --git a/gnu/packages/python-check.scm b/gnu/packages/python-check.scm
index d0bde27e13..c23741825b 100644
--- a/gnu/packages/python-check.scm
+++ b/gnu/packages/python-check.scm
@@ -1,8 +1,8 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net>
-;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2019, 2020, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2019 Hartmut Goebel <h.goebel@crazy-compilers.com>
 ;;; Copyright © 2020 Julien Lepiller <julien@lepiller.eu>
 ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
@@ -28,6 +28,7 @@
 (define-module (gnu packages python-check)
   #:use-module (gnu packages)
   #:use-module (gnu packages check)
+  #:use-module (gnu packages openstack)
   #:use-module (gnu packages python-web)
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages web)
@@ -82,6 +83,39 @@ This package provides seamless integration with coverage.py (and thus pytest,
 nosetests, etc...) in Python projects.")
     (license license:expat)))
 
+(define-public python-junit-xml
+  ;; XXX: There are no tags or PyPI releases, so take the latest commit
+  ;; and use the version defined in setup.py.
+  (let ((version "1.9")
+        (commit "4bd08a272f059998cedf9b7779f944d49eba13a6")
+        (revision "0"))
+    (package
+      (name "python-junit-xml")
+      (version (git-version version revision commit))
+      (home-page "https://github.com/kyrus/python-junit-xml")
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference (url home-page) (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "0b8kbjhk3j10rk0vcniy695m3h43yip6y93h1bd6jjh0cp7s09c7"))))
+      (build-system python-build-system)
+      (arguments
+       `(#:phases (modify-phases %standard-phases
+                    (replace 'check
+                      (lambda _
+                        (invoke "pytest" "-vv"))))))
+      (native-inputs
+       `(("python-pytest" ,python-pytest)))
+      (propagated-inputs
+       `(("python-six" ,python-six)))
+      (synopsis "Create JUnit XML test results")
+      (description
+       "This package provides a Python module for creating JUnit XML test
+result documents that can be read by tools such as Jenkins or Bamboo.")
+      (license license:expat))))
+
 (define-public python-vcrpy
   (package
     (name "python-vcrpy")
@@ -436,6 +470,40 @@ in Pytest.")
 of the project to ensure it renders properly.")
     (license license:expat)))
 
+(define-public python-re-assert
+  (package
+    (name "python-re-assert")
+    (version "1.1.0")
+    (source
+     (origin
+       ;; There are no tests in the PyPI tarball.
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/asottile/re-assert")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1rssq4wpqmx1c17hjfx5l3sn3zmnlz9jffddiqrs4f6h7m6cadai"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda _
+             (invoke "pytest" "-vv"))))))
+    (native-inputs
+     `(("python-covdefaults" ,python-covdefaults)
+       ("python-coverage" ,python-coverage)
+       ("python-pytest" ,python-pytest)))
+    (propagated-inputs
+     `(("python-regex" ,python-regex)))
+    (home-page "https://github.com/asottile/re-assert")
+    (synopsis "Show where your regex match assertion failed")
+    (description
+     "@code{re-assert} provides a helper class to make assertions of regexes
+simpler.")
+    (license license:expat)))
+
 (define-public python-pytest-trio
   (package
     (name "python-pytest-trio")
@@ -698,6 +766,49 @@ rounds that are calibrated to the chosen timer.")
 service processes for your tests with pytest.")
     (license license:expat)))
 
+(define-public python-pytest-toolbox
+  (package
+    (name "python-pytest-toolbox")
+    (version "0.4")
+    (source
+     (origin
+       ;; No tests in the PyPI tarball.
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/samuelcolvin/pytest-toolbox")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1wqkr3g5gmqdxmhzfsxbwy8pm3cadaj6a8cxq58w9bacly4hqbh0"))))
+    (build-system python-build-system)
+    (arguments
+     '(#: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"))))))
+    (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)))
+    (home-page "https://github.com/samuelcolvin/pytest-toolbox")
+    (synopsis "Numerous useful plugins for Pytest")
+    (description
+     "Pytest Toolbox contains many useful plugins for Pytest.  Among them are
+new fixtures, new methods and new comparison objects.")
+    (license license:expat)))
+
 (define-public python-pytest-aiohttp
   (package
     (name "python-pytest-aiohttp")
@@ -722,13 +833,13 @@ service processes for your tests with pytest.")
 (define-public python-nbval
   (package
     (name "python-nbval")
-    (version "0.9.5")
+    (version "0.9.6")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "nbval" version))
        (sha256
-        (base32 "1xh2p7g5s5g06caaraf3dsz69bpj7dgw2h3ss67kci789aspnwp8"))))
+        (base32 "0h3xrnw0mj1srigrx2rfnd73h8s0xjycclmjs0vx7qkfyqpcvvyg"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -809,6 +920,26 @@ also ensuring that the notebooks are running without errors.")
 variables in the @file{pytest.ini} file.")
     (license license:expat)))
 
+(define-public python-pyux
+  (package
+    (name "python-pyux")
+    (version "0.0.6")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "pyux" version))
+       (sha256
+        (base32
+         "1i17xh4dy238ibrjdgh8vn78fk5q6dj37mcznpvdfzidj57js7ca"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:tests? #f))                  ;the mini test suite fails
+    (home-page "https://github.com/farizrahman4u/pyux")
+    (synopsis "Utility to check API integrity in Python libraries")
+    (description "The pyux utility detects API changes in Python
+libraries.")
+    (license license:expat)))
+
 (define-public python-codacy-coverage
   (package
     (name "python-codacy-coverage")
@@ -911,22 +1042,31 @@ supported by the MyPy typechecker.")
 (define-public python-mypy
   (package
     (name "python-mypy")
-    (version "0.782")
+    (version "0.790")
     (source
-      (origin
-        (method url-fetch)
-        (uri (pypi-uri "mypy" version))
-        (sha256
-         (base32
-          "030kn709515452n6gy2i1d9fg6fyrkmdz228lfpmbslybsld9xzg"))))
+     (origin
+       ;; Because of https://github.com/python/mypy/issues/9584, the
+       ;; mypyc/analysis directory is missing in the PyPI archive, leading to
+       ;; test failures.
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/python/mypy")
+             (commit (string-append "v" version))
+             ;; Fetch git submodules otherwise typeshed is not fetched.
+             ;; Typeshed is a collection of Python sources type annotation
+             ;; (data) files.
+             (recursive? #t)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0zq3lpdf9hphcklk40wz444h8w3dkhwa12mqba5j9lmg11klnhz7"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
        (modify-phases %standard-phases
          (replace 'check
            (lambda _
-             (invoke "./runtests.py")
-             #t)))))
+             (invoke "pytest" "mypyc"))))))
     (native-inputs
      `(("python-attrs" ,python-attrs)
        ("python-flake8" ,python-flake8)
@@ -935,8 +1075,7 @@ supported by the MyPy typechecker.")
        ("python-importlib-metadata" ,python-importlib-metadata)
        ("python-lxml" ,python-lxml)
        ("python-psutil" ,python-psutil)
-       ("python-py" ,python-py)
-       ("python-pytest" ,python-pytest)
+       ("python-pytest" ,python-pytest-6)
        ("python-pytest-cov" ,python-pytest-cov)
        ("python-pytest-forked" ,python-pytest-forked)
        ("python-pytest-xdist" ,python-pytest-xdist)
@@ -956,3 +1095,107 @@ any Python VM with basically no runtime overhead.")
     ;; Foundation License version 2: stdlib-samples/*, mypyc/lib-rt/pythonsupport.h and
     ;; mypyc/lib-rt/getargs.c
     (license (list license:expat license:psfl))))
+
+(define-public python-eradicate
+  (package
+    (name "python-eradicate")
+    (version "2.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "eradicate" version))
+       (sha256
+        (base32
+         "1j30g9jfmbfki383qxwrfds8b23yiwywj40lng4lqcf5yab4ahr7"))))
+    (build-system python-build-system)
+    (home-page "https://github.com/myint/eradicate")
+    (synopsis "Remove commented-out code from Python sources")
+    (description "The @command{eradicate} command removes commented-out code
+from Python files.  It does this by detecting block comments that contain
+valid Python syntax that are likely to be commented out code.")
+    (license license:expat)))
+
+(define-public python-robber
+  (package
+    (name "python-robber")
+    (version "1.1.5")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "robber" version))
+              (sha256
+               (base32
+                "0xp5csgv2g9q38hscml6bc5i1nm4xy5lzqqiimm2drxsf0hw2nq5"))))
+    (build-system python-build-system)
+    ;; There are no tests in the tarball downloaded from PyPI.
+    ;; The last version tagged in Github (0.1.0) is older than the one on PyPI.
+    ;; Reported upstream: <https://github.com/vesln/robber.py/issues/20>.
+    (arguments '(#:tests? #f))
+    (propagated-inputs
+     `(("python-mock" ,python-mock)
+       ("python-termcolor" ,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")
+    (description "Robber is a Python assertion library for test-driven and
+behavior-driven development (TDD and BDD).")
+    (license license:expat)))
+
+(define-public python-stestr
+  (package
+    (name "python-stestr")
+    (version "3.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "stestr" version))
+       (sha256
+        (base32
+         "0adhqp9c9338wlvlq776k57k04lyxp38bv591afdm9gjsn2qn1zm"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:tests? #f))                    ;to avoid circular dependencies
+    (native-inputs
+     `(("python-pbr" ,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)))
+    (home-page "https://stestr.readthedocs.io/en/latest/")
+    (synopsis "Parallel Python test runner")
+    (description "This package provides the @command{stestr} command, a
+parallel Python test runner built around @code{subunit}.  It is designed to
+execute @code{unittest} test suites using multiple processes to split up
+execution of a test suite.  It will also store a history of all test runs to
+help in debugging failures and optimizing the scheduler to improve speed.")
+    (license license:asl2.0)))
+
+;; This is only used by python-sanic
+(define-public python-pytest-sanic
+  (package
+    (name "python-pytest-sanic")
+    (version "1.6.2")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "pytest-sanic" version))
+              (sha256
+                (base32
+                  "02ajd8z77ahi69kzkz200qgxrb4s2j4qb6k8j9ds1kz6qa6fsa34"))))
+    (build-system python-build-system)
+    (arguments
+     ;; Tests depend on python-sanic.
+     `(#:tests? #f))
+    (propagated-inputs
+      `(("python-aiohttp" ,python-aiohttp)
+        ("python-async-generator"
+         ,python-async-generator)
+        ("python-pytest" ,python-pytest)))
+    (home-page
+      "https://github.com/yunstanford/pytest-sanic")
+    (synopsis "Pytest plugin for Sanic")
+    (description "A pytest plugin for Sanic.  It helps you to test your
+code asynchronously.")
+    (license license:expat)))
diff --git a/gnu/packages/python-compression.scm b/gnu/packages/python-compression.scm
index 730b247414..6b2da5f925 100644
--- a/gnu/packages/python-compression.scm
+++ b/gnu/packages/python-compression.scm
@@ -136,14 +136,14 @@ the LZ4 frame format.")
 (define-public python-brotli
   (package
     (name "python-brotli")
-    (version "1.0.7")
+    (version "1.0.9")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "Brotli" version ".zip"))
         (sha256
          (base32
-          "19x5dqxckb62n37mpnczp21rfxqvgpm0ki5ds8ac65zx8hbxqf05"))))
+          "0f4433s4wv9masc303kkb1s0a09x81xwr8pdvj0kyxzdl05826sd"))))
     (build-system python-build-system)
     (native-inputs
      `(("unzip" ,unzip)))
diff --git a/gnu/packages/python-crypto.scm b/gnu/packages/python-crypto.scm
index 96837e3cde..486cc48457 100644
--- a/gnu/packages/python-crypto.scm
+++ b/gnu/packages/python-crypto.scm
@@ -8,7 +8,7 @@
 ;;; Copyright © 2015 Cyril Roelandt <tipecaml@gmail.com>
 ;;; Copyright © 2014, 2017 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2015, 2016 David Thompson <davet@gnu.org>
-;;; Copyright © 2016, 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2016, 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2016, 2017 Nikita <nikita@n0.is>
 ;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2015, 2016, 2017, 2019 Ricardo Wurmus <rekado@elephly.net>
@@ -16,7 +16,7 @@
 ;;; Copyright © 2016, 2017, 2020 Arun Isaac <arunisaac@systemreboot.net>
 ;;; Copyright © 2017 Carlo Zancanaro <carlo@zancanaro.id.au>
 ;;; Copyright © 2018 Tomáš Čech <sleep_walker@gnu.org>
-;;; Copyright © 2018 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;; Copyright © 2018, 2021 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;; Copyright © 2018 Vagrant Cascadian <vagrant@debian.org>
 ;;; Copyright © 2018 Nam Nguyen <namn@berkeley.edu>
 ;;; Copyright © 2019 Guillaume Le Vaillant <glv@posteo.net>
@@ -61,20 +61,45 @@
   #:use-module (gnu packages swig)
   #:use-module (gnu packages time)
   #:use-module (gnu packages tls)
+  #:use-module (gnu packages xml)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (srfi srfi-1))
 
+(define-public python-potr
+  (package
+    (name "python-potr")
+    (version "1.0.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/python-otr/pure-python-otr")
+         (commit version)))
+       (file-name
+        (git-file-name name version))
+       (sha256
+        (base32 "1hzw6h01fm216nmipyylgz0zybd80w1xsk12m7djycnhqrnrvvv1"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-pycrypto" ,python-pycrypto)))
+    (synopsis "Python OTR Implementation")
+    (description "Python OTR is an Off-The-Record Protocol Implementation in
+Python.  It does not bind to libotr.")
+    (home-page "https://github.com/python-otr/pure-python-otr")
+    (license license:lgpl3+)))
+
 (define-public python-base58
   (package
     (name "python-base58")
-    (version "1.0.3")
+    (version "2.0.1")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "base58" version))
        (sha256
         (base32
-         "0q1yr0n5jaf17xq98m7dma6z4rh8p19ch55l1s09gi3rk5ckqycs"))))
+         "0yfaqp76kbdb62hikr5n4jkkfjfmii89grwfy6sw3fmsv5hrap1n"))))
     (build-system python-build-system)
     (native-inputs
      `(("python-pyhamcrest" ,python-pyhamcrest)))
@@ -117,13 +142,13 @@ Password Scheme\"} by Niels Provos and David Mazieres.")
 (define-public python-passlib
   (package
     (name "python-passlib")
-    (version "1.7.2")
+    (version "1.7.4")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "passlib" version))
        (sha256
-        (base32 "1a5ngap7kq0b4azq8nlfg6xg5bcl1i0v1sbynhmbr631jgpnqrld"))))
+        (base32 "015y5qaw9qnxr29lg60dml1g5rbqd4586wy5n8m41ib55gvm1zfy"))))
     (build-system python-build-system)
     (native-inputs
      `(("python-nose" ,python-nose)))
@@ -133,8 +158,8 @@ Password Scheme\"} by Niels Provos and David Mazieres.")
      `(#: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)))))
+           ;; Some tests require access to "$HOME/.cython".
+           (lambda _ (setenv "PYTHON_EGG_CACHE" "/tmp") #t)))))
     (home-page "https://bitbucket.org/ecollins/passlib")
     (synopsis "Comprehensive password hashing framework")
     (description
@@ -209,14 +234,13 @@ This package provides a Python interface for BLAKE2.")
 (define-public python-paramiko
   (package
     (name "python-paramiko")
-    (version "2.7.1")
+    (version "2.7.2")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "paramiko" version))
        (sha256
-        (base32
-         "17wx8lkhqxmddfdq7z7x45xqq2w3gwa974hpq1n3y0dqbn4r414j"))))
+        (base32 "0dahwq623jnna7gsr9j0mkwr9k2n1pvkapjryhcx508d5jxg8dkz"))))
     (build-system python-build-system)
     (arguments
      `(;; FIXME: Tests require many unpackaged libraries, see dev-requirements.txt.
@@ -263,7 +287,7 @@ Python interface around SSH networking concepts.")
     (description
      "This is an easy-to-use implementation of ECDSA cryptography (Elliptic
 Curve Digital Signature Algorithm), implemented purely in Python.  With this
-library, you can quickly create keypairs (signing key and verifying key), sign
+library, you can quickly create key pairs (signing key and verifying key), sign
 messages, and verify the signatures.  The keys and signatures are very short,
 making them easy to handle and incorporate into other protocols.")
     (license license:expat)))
@@ -452,13 +476,13 @@ risk.")
 (define-public python-certifi
   (package
     (name "python-certifi")
-    (version "2020.4.5.1")
+    (version "2020.11.8")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "certifi" version))
               (sha256
                (base32
-                "06b5gfs7wmmipln8f3z928d2mmx2j4b3x7pnqmj6cvmyfh8v7z2i"))))
+                "1x4w18gm71dbwys5g2mbcnbw27b3dvphj5d56icg5ys45h4yypgh"))))
     (build-system python-build-system)
     (arguments '(#:tests? #f))          ;no tests
     (home-page "https://certifi.io/")
@@ -474,14 +498,14 @@ is used by the Requests library to verify HTTPS requests.")
 (define-public python-cryptography-vectors
   (package
     (name "python-cryptography-vectors")
-    (version "2.9.2")
+    (version "3.1.1")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "cryptography_vectors" version))
        (sha256
         (base32
-         "1d4iykcv7cn9j399hczlxm5pzxmqy6d80h3j16dkjwlmv3293b4r"))))
+         "1xp2j79c1y8qj4b97ygx451gzp8l4cp830hnvg3zw8j134bcaaam"))))
     (build-system python-build-system)
     (home-page "https://github.com/pyca/cryptography")
     (synopsis "Test vectors for the cryptography package")
@@ -496,14 +520,14 @@ is used by the Requests library to verify HTTPS requests.")
 (define-public python-cryptography
   (package
     (name "python-cryptography")
-    (version "2.9.2")
+    (version "3.1.1")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "cryptography" version))
        (sha256
         (base32
-         "0af25w5mkd6vwns3r6ai1w5ip9xp0ms9s261zzssbpadzdr05hx0"))))
+         "0z81q4d1nangw3r0v5f41mfl4d9r04qnbayl5ll5v5jpcfhwd7wx"))))
     (build-system python-build-system)
     (inputs
      `(("openssl" ,openssl)))
@@ -718,18 +742,23 @@ ECB and OFB).")
 (define-public python-asn1crypto
   (package
     (name "python-asn1crypto")
-    (version "0.24.0")
+    (version "1.4.0")
     (source
-      (origin
+     (origin
        (method git-fetch)
        (uri (git-reference
-              (url "https://github.com/wbond/asn1crypto")
-              (commit version)))
-        (file-name (git-file-name name version))
-        (sha256
-         (base32
-          "10lai2cs5mnz3gpaffbw1m7b885ls8328q5wxm35vfmcip1f0xmb"))))
+             (url "https://github.com/wbond/asn1crypto")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "19abibn6jw20mzi1ln4n9jjvpdka8ygm4m439hplyrdfqbvgm01r"))))
     (build-system python-build-system)
+    (arguments
+     '(#:phases (modify-phases %standard-phases
+                  (replace 'check
+                    (lambda _
+                      (invoke "python" "run.py" "tests"))))))
     (home-page "https://github.com/wbond/asn1crypto")
     (synopsis "ASN.1 parser and serializer in Python")
     (description "asn1crypto is an ASN.1 parser and serializer with definitions
@@ -965,26 +994,34 @@ protocol (Javascript Object Signing and Encryption).")
 (define-public python-pycryptodome
   (package
     (name "python-pycryptodome")
-    (version "3.7.3")
+    (version "3.9.9")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "pycryptodome" version))
        (sha256
         (base32
-         "0dh6ky5ngxayyn5f6n7gdamjl49g3khz6pdx9sdnag1zwi8248hs"))))
+         "1i4m74f88qj9ci8rpyzrbk2slmsdj5ipmwdkq6qk24byalm203li"))))
     (build-system python-build-system)
     (home-page "https://www.pycryptodome.org")
-    (synopsis "Cryptographic library for Python")
-    (description "This package provides a cryptographic library for Python.
+    (synopsis "Low-level cryptographic Python library")
+    (description
+     "PyCryptodome is a self-contained Python package of low-level
+cryptographic primitives.  It's not a wrapper to a separate C library like
+OpenSSL.  To the largest possible extent, algorithms are implemented in pure
+Python.  Only the pieces that are extremely critical to performance (e.g.,
+block ciphers) are implemented as C extensions.
 
-It brings the following enhancements with respect to the last official version
-of PyCrypto:
+You are expected to have a solid understanding of cryptography and security
+engineering to successfully use these primitives.  You must also be able to
+recognize that some are obsolete (e.g., TDES) or even insecure (RC4).
+
+It provides many enhancements over the last release of PyCrypto (2.6.1):
 
 @itemize
 @item Authenticated encryption modes (GCM, CCM, EAX, SIV, OCB)
 @item Accelerated AES on Intel platforms via AES-NI
-@item First class support for PyPy
+@item First-class support for PyPy
 @item Elliptic curves cryptography (NIST P-256 curve only)
 @item Better and more compact API (nonce and iv attributes for ciphers,
 automatic generation of random nonces and IVs, simplified CTR cipher mode, and
@@ -998,13 +1035,63 @@ more)
 @item Random numbers get sourced directly from the OS (and not from a CSPRNG
 in userspace)
 @item Cleaner RSA and DSA key generation (largely based on FIPS 186-4)
-@item Major clean ups and simplification of the code base
-@end itemize\n")
-    (license license:bsd-2)))
+@item Major clean-ups and simplification of the code base
+@end itemize
+
+This package provides drop-in compatibility with PyCrypto.  It is one of two
+PyCryptodome variants, the other being python-pycryptodomex.")
+    (license (list license:bsd-2
+                   license:public-domain)))) ; code inherited from PyCrypto
 
 (define-public python2-pycryptodome
   (package-with-python2 python-pycryptodome))
 
+(define-public python-pycryptodomex
+  (package (inherit python-pycryptodome)
+    (name "python-pycryptodomex")
+    (version (package-version python-pycryptodome))
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "pycryptodomex" version))
+       (sha256
+        (base32 "0lbx4qk3xmwqiidhmkj8qa7bh2lf8bwzg0xjpsh2w5zqjrc7qnvv"))))
+    (description
+     "PyCryptodome is a self-contained Python package of low-level
+cryptographic primitives.  It's not a wrapper to a separate C library like
+OpenSSL.  To the largest possible extent, algorithms are implemented in pure
+Python.  Only the pieces that are extremely critical to performance (e.g.,
+block ciphers) are implemented as C extensions.
+
+You are expected to have a solid understanding of cryptography and security
+engineering to successfully use these primitives.  You must also be able to
+recognize that some are obsolete (e.g., TDES) or even insecure (RC4).
+
+It provides many enhancements over the last release of PyCrypto (2.6.1):
+
+@itemize
+@item Authenticated encryption modes (GCM, CCM, EAX, SIV, OCB)
+@item Accelerated AES on Intel platforms via AES-NI
+@item First-class support for PyPy
+@item Elliptic curves cryptography (NIST P-256 curve only)
+@item Better and more compact API (nonce and iv attributes for ciphers,
+automatic generation of random nonces and IVs, simplified CTR cipher mode, and
+more)
+@item SHA-3 (including SHAKE XOFs) and BLAKE2 hash algorithms
+@item Salsa20 and ChaCha20 stream ciphers
+@item scrypt and HKDF
+@item Deterministic (EC)DSA
+@item Password-protected PKCS#8 key containers
+@item Shamir’s Secret Sharing scheme
+@item Random numbers get sourced directly from the OS (and not from a CSPRNG
+in userspace)
+@item Cleaner RSA and DSA key generation (largely based on FIPS 186-4)
+@item Major clean-ups and simplification of the code base
+@end itemize
+
+PyCryptodomex is the stand-alone version of PyCryptodome that no longer
+provides drop-in compatibility with PyCrypto.")))
+
 (define-public python-m2crypto
   (package
     (name "python-m2crypto")
@@ -1037,6 +1124,53 @@ through the Engine interface.")
              (propagated-inputs
               `(("python2-typing" ,python2-typing))))))
 
+(define-public python-pykeepass
+  (package
+    (name "python-pykeepass")
+    (version "3.2.1")
+    (source
+     (origin
+       (method git-fetch)
+       ;; Source tarball on PyPI doesn't include tests.
+       (uri (git-reference
+             (url "https://github.com/libkeepass/pykeepass")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1symxf4ahylynihnp9z4z3lh2vy65ipvg8s4hjrnn936hcaaxghk"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'make-kdbx-writable
+           ;; Tests have to write to the .kdbx files in the test directory.
+           (lambda _
+             (with-directory-excursion "tests"
+               (for-each make-file-writable (find-files "."))
+               #t)))
+         (add-before 'build 'patch-requirements
+           (lambda _
+             ;; Update requirements from dependency==version
+             ;; to dependency>=version.
+             (substitute* "setup.py"
+               (("==") ">="))
+             #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)))
+    (home-page "https://github.com/libkeepass/pykeepass")
+    (synopsis "Python library to interact with keepass databases")
+    (description
+     "This library allows you to write entries to a KeePass database.  It
+supports KDBX3 and KDBX4.")
+    ;; There are no copyright headers in the source code.  The LICENSE file
+    ;; indicates GPL3.
+    (license license:gpl3+)))
+
 (define-public python-pylibscrypt
   (package
     (name "python-pylibscrypt")
@@ -1078,14 +1212,14 @@ none of them have everything that I'd like, so here's one more.  It uses
 (define-public python-libnacl
   (package
     (name "python-libnacl")
-    (version "1.6.1")
+    (version "1.7.2")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "libnacl" version))
        (sha256
         (base32
-         "0nv7n8nfswkhl614x5mllrkvaslraa0053q11iylb337cy43vb4v"))))
+         "0srx7i264v4dq9and8y6gpzzhrg8jpxs5iy9ggw4plimfj0rjfdm"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -1093,11 +1227,10 @@ none of them have everything that I'd like, so here's one more.  It uses
          (add-after 'unpack 'locate-libsodium
            (lambda* (#:key inputs #:allow-other-keys)
              (substitute* "libnacl/__init__.py"
-               (("(return ctypes.cdll.LoadLibrary\\(')libsodium.so('\\))"
-                 _ pre post)
-                (let ((libsodium (string-append (assoc-ref inputs "libsodium")
-                                                "/lib/libsodium.so")))
-                  (string-append pre libsodium post)))))))))
+               (("/usr/local/lib/libsodium.so")
+                (string-append (assoc-ref inputs "libsodium")
+                               "/lib/libsodium.so")))
+             #t)))))
     (native-inputs
      `(("python-pyhamcrest" ,python-pyhamcrest)))
     (inputs
@@ -1110,6 +1243,26 @@ been constructed to maintain extensive documentation on how to use
 @code{NaCl} as well as being completely portable.")
     (license license:asl2.0)))
 
+(define-public python-pyotp
+  (package
+    (name "python-pyotp")
+    (version "2.4.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "pyotp" version))
+       (sha256
+        (base32 "0jsqfmx9i7j8z81r4zazv76xzy1fcq8v9s2r4kvx7ajfndq3z2h3"))))
+    (build-system python-build-system)
+    (home-page "https://github.com/pyauth/pyotp")
+    (synopsis "Python One Time Password Library")
+    (description
+     "PyOTP is a Python library for generating and verifying one-time
+passwords.  It can be used to implement two-factor (2FA) or multi-factor
+(MFA) authentication methods in web applications and in other systems that
+require users to log in.")
+    (license license:expat)))
+
 (define-public python-scrypt
   (package
     (name "python-scrypt")
@@ -1414,14 +1567,13 @@ certificates, signing and building trust bundles.")
 (define-public python-jeepney
   (package
     (name "python-jeepney")
-    (version "0.4.2")
+    (version "0.4.3")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "jeepney" version))
         (sha256
-         (base32
-          "1fz9lb5fl831sijg2j0sbki698j2z6awbblas7mz3gp9jz2xi9hb"))))
+         (base32 "0vp3p1lqhqk2kd3254q5sxr50znmm2hmysc8a7g0fr1brihvhy9l"))))
     (build-system python-build-system)
     (native-inputs
      `(("python-testpath" ,python-testpath)
@@ -1515,20 +1667,28 @@ signatures.")
 (define-public python-pgpy
   (package
     (name "python-pgpy")
-    (version "0.5.2")
+    (version "0.5.3")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "PGPy" version))
         (sha256
-         (base32
-          "0i4lqhzdwkjkim3wab0kqadx28z3r5ixlh6qxj4lif4gif56c0m7"))))
+         (base32 "11rrq15gmn6qbahli7czflfcngjl7zyybjlvk732my6axnf2d754"))))
     (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
      `(("python-cryptography" ,python-cryptography)
        ("python-pyasn1" ,python-pyasn1)
+       ("python-pytest" ,python-pytest)
        ("python-singledispatch" ,python-singledispatch)
-       ("python-six" ,python-six)))
+       ("python-six" ,python-six)
+       ("python-wheel" ,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 7675152d79..99903ef247 100644
--- a/gnu/packages/python-science.scm
+++ b/gnu/packages/python-science.scm
@@ -265,6 +265,26 @@ logic, also known as grey logic.")
      "Scikit-image is a collection of algorithms for image processing.")
     (license license:bsd-3)))
 
+(define-public python-sgp4
+  (package
+    (name "python-sgp4")
+    (version "2.12")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "sgp4" version))
+       (sha256
+        (base32 "0dncp9i5b6afkg7f8mj9j0qzsp008b8v73yc0qkmizhpns7mvwvx"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-numpy" ,python-numpy)))
+    (home-page "https://github.com/brandon-rhodes/python-sgp4")
+    (synopsis "Track earth satellite TLE orbits using SGP4")
+    (description
+     "This package provides a Python implementation of the most recent version
+of the SGP4 satellite tracking algorithm.")
+    (license license:expat)))
+
 (define-public python-pandas
   (package
     (name "python-pandas")
@@ -419,6 +439,32 @@ doing practical, real world data analysis in Python.")
 written in C.")
     (license license:bsd-2)))
 
+(define-public python-baycomp
+  (package
+    (name "python-baycomp")
+    (version "1.0.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "baycomp" version))
+       (sha256
+        (base32 "1c1354a7b3g8slychjgyjxqdm8z40z9kviyl9n4g9kfpdg0p4d64"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-matplotlib" ,python-matplotlib)
+       ("python-numpy" ,python-numpy)
+       ("python-scipy" ,python-scipy)))
+    (home-page "https://github.com/janezd/baycomp")
+    (synopsis "Library for comparison of Bayesian classifiers")
+    (description
+     "Baycomp is a library for Bayesian comparison of classifiers.  Functions
+in the library compare two classifiers on one or on multiple data sets.  They
+compute three probabilities: the probability that the first classifier has
+higher scores than the second, the probability that differences are within the
+region of practical equivalence (rope), or that the second classifier has
+higher scores.")
+    (license license:expat)))
+
 (define-public python-xarray
   (package
     (name "python-xarray")
diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index f9c8157f0d..622f5fc6e2 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -3,8 +3,8 @@
 ;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2017 Christopher Baines <mail@cbaines.net>
 ;;; Copyright © 2016, 2017 Danny Milosavljevic <dannym+a@scratchpost.org>
-;;; Copyright © 2013, 2014, 2015, 2016 Andreas Enge <andreas@enge.fr>
-;;; Copyright © 2016, 2017, 2020 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2013, 2014, 2015, 2016, 2020 Andreas Enge <andreas@enge.fr>
+;;; Copyright © 2016, 2017, 2019, 2020 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2017 Roel Janssen <roel@gnu.org>
 ;;; Copyright © 2016, 2017, 2020 Julien Lepiller <julien@lepiller.eu>
@@ -26,11 +26,11 @@
 ;;; Copyright © 2018 Tomáš Čech <sleep_walker@gnu.org>
 ;;; Copyright © 2018, 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
-;;; Copyright © 2018 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2018, 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2019 Vagrant Cascadian <vagrant@debian.org>
 ;;; Copyright © 2019 Brendan Tildesley <mail@brendan.scot>
 ;;; Copyright © 2019 Pierre Langlois <pierre.langlois@gmx.com>
-;;; Copyright © 2019 Tanguy Le Carrour <tanguy@bioneland.org>
+;;; Copyright © 2019, 2020 Tanguy Le Carrour <tanguy@bioneland.org>
 ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
 ;;; Copyright © 2020 Evan Straw <evan.straw99@gmail.com>
 ;;; Copyright © 2020 Alexandros Theodotou <alex@zrythm.org>
@@ -38,6 +38,8 @@
 ;;; Copyright © 2020 Noisytoot <noisytoot@gmail.com>
 ;;; Copyright © 2020 Edouard Klein <edk@beaver-labs.com>
 ;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
+;;; Copyright © 2020 Konrad Hinsen <konrad.hinsen@fastmail.net>
+;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -67,12 +69,16 @@
   #:use-module (gnu packages curl)
   #:use-module (gnu packages databases)
   #:use-module (gnu packages django)
+  #:use-module (gnu packages graphviz)
   #:use-module (gnu packages groff)
+  #:use-module (gnu packages libevent)
   #:use-module (gnu packages libffi)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
   #: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 serialization)
   #:use-module (gnu packages sphinx)
@@ -87,15 +93,13 @@
 (define-public python-aiohttp
   (package
     (name "python-aiohttp")
-    (version "3.6.2")
+    (version "3.7.3")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "aiohttp" version))
        (sha256
-        (base32
-         "09pkw6f1790prnrq0k8cqgnf1qy57ll8lpmc6kld09q7zw4vi6i5"))
-       (patches (search-patches "python-aiohttp-3.6.2-no-warning-fail.patch"))))
+        (base32 "1i3p4yrfgrf1zpbgnywqmb33ps4k51wylcxykhf2cwky0spq26lw"))))
     (build-system python-build-system)
     (arguments
      '(#:phases
@@ -108,33 +112,41 @@
                 "    @pytest.mark.xfail\n    async def test_feed_eof_no_err_brotli"))
              ;; make sure the timestamp of this file is > 1990, because a few
              ;; tests like test_static_file_if_modified_since_past_date depend on it
-             (invoke "touch" "-d" "2020-01-01" "tests/data.unknown_mime_type")
-
-             ;; FIXME: These tests are failing due to deprecation warnings
-             ;; in Python 3.8.  Remove this when updating to aiohttp >= 3.7.
-             ;; https://github.com/aio-libs/aiohttp/issues/4477
-             ;; https://github.com/aio-libs/aiohttp/issues/4525
-             (with-directory-excursion "tests"
-               (for-each delete-file '("test_client_session.py"
-                                       "test_multipart.py"
-                                       "test_web_middleware.py"
-                                       "test_web_protocol.py"
-                                       "test_web_urldispatcher.py")))
-             #t)))))
+             (let ((late-90s (* 60 60 24 365 30)))
+               (utime "tests/data.unknown_mime_type" late-90s late-90s))
+
+             ;; Disable test that attempts to access httpbin.org.
+             (substitute* "tests/test_formdata.py"
+               (("async def test_mark_formdata_as_processed.*" all)
+                (string-append "@pytest.mark.xfail\n" all)))
+
+             ;; Don't test the aiohttp pytest plugin to avoid a dependency loop.
+             (delete-file "tests/test_pytest_plugin.py")
+             #t))
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (setenv "PYTHONPATH"
+                     (string-append ".:" (getenv "PYTHONPATH")))
+             (if tests?
+                 (invoke "pytest" "-vv"
+                         ;; Disable loading the aiohttp coverage plugin
+                         ;; to avoid a circular dependency (code coverage
+                         ;; is not very interesting to us anyway).
+                         "-o" "addopts=''")
+                 (format #t "test suite not run~%")))))))
     (propagated-inputs
      `(("python-aiodns" ,python-aiodns)
        ("python-async-timeout" ,python-async-timeout)
-       ("python-attrs" ,python-attrs)
+       ("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)))
     (native-inputs
-     `(("python-pytest-runner" ,python-pytest-runner)
-       ("python-pytest-xdit" ,python-pytest-xdist)
-       ("python-pytest-timeout" ,python-pytest-timeout)
-       ("python-pytest-forked" ,python-pytest-forked)
+     `(("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)))
@@ -155,17 +167,19 @@ Callback Hell.
 (define-public python-aiohttp-socks
   (package
     (name "python-aiohttp-socks")
-    (version "0.2.2")
+    (version "0.5.5")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "aiohttp_socks" version))
        (sha256
         (base32
-         "0473702jk66xrgpm28wbdgpnak4v0dh2qmdjw7ky7hf3lwwqkggf"))))
+         "0jmhb0l1w8k1nishij3awd9zv8zbyb5l35a2pdalrqxxasbhbcif"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-aiohttp" ,python-aiohttp)))
+     `(("python-aiohttp" ,python-aiohttp)
+       ("python-attrs" ,python-attrs)
+       ("python-socks" ,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
@@ -184,7 +198,7 @@ aiohttp.  It supports SOCKS4(a) and SOCKS5.")
         (base32
          "1snr5paql8dgvc676n8xq460wypjsb1xj53cf3px1s4wczf7lryq"))))
     (build-system python-build-system)
-    (inputs
+    (propagated-inputs
      `(("python-pycares" ,python-pycares)))
     (arguments
      `(#:tests? #f))                    ;tests require internet access
@@ -220,6 +234,212 @@ The package includes a module with full coverage of JSON RPC versions 1.0 and
 comes with a SOCKS proxy client.")
     (license (list license:expat license:bsd-2))))
 
+(define-public python-asgiref
+  (package
+    (name "python-asgiref")
+    (version "3.2.10")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "asgiref" version))
+              (sha256
+               (base32
+                "06kg3hnnvh7qg0w9amkvk1hd6n6bs055r04b7if6ipa7w4g92lby"))))
+    (build-system python-build-system)
+    (arguments
+     '(#:phases (modify-phases %standard-phases
+                  (replace 'check
+                    (lambda _
+                      (setenv "PYTHONPATH"
+                              (string-append "./build/lib:"
+                                             (getenv "PYTHONPATH")))
+                      (invoke "pytest" "-vv"))))))
+    (native-inputs
+     `(("python-pytest" ,python-pytest)
+       ("python-pytest-asyncio" ,python-pytest-asyncio)))
+    (home-page "https://github.com/django/asgiref/")
+    (synopsis "ASGI specs, helper code, and adapters")
+    (description
+     "ASGI is a standard for Python asynchronous web apps and servers to
+communicate with each other, and positioned as an asynchronous successor to
+WSGI.  This package includes libraries for implementing ASGI servers.")
+    (license license:bsd-3)))
+
+(define-public python-css-html-js-minify
+  (package
+    (name "python-css-html-js-minify")
+    (version "2.5.5")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "css-html-js-minify" version ".zip"))
+              (sha256
+               (base32
+                "0v3l2dqdk2y4r6ax259gs4ij1zzm9yxg6491s6254vs9w3vi37sa"))))
+    (build-system python-build-system)
+    ;; XXX: The git repository has no tags, and the PyPI releases do not
+    ;; contain tests.
+    (arguments '(#:tests? #f))
+    (native-inputs `(("unzip" ,unzip)))
+    (home-page "https://github.com/juancarlospaco/css-html-js-minify")
+    (synopsis "CSS/HTML/JS minifier")
+    (description
+     "This package provides a single-file minifier for CSS, HTML, and JavaScript.")
+    ;; XXX: The README just says "GNU GPL and GNU LGPL and MIT".  From
+    ;; <https://github.com/juancarlospaco/css-html-js-minify/issues/9> it
+    ;; looks like the user can choose a license.
+    (license (list license:gpl3+ license:lgpl3+ license:expat))))
+
+(define-public python-aws-sam-translator
+  (package
+    (name "python-aws-sam-translator")
+    (version "1.30.1")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "aws-sam-translator" version))
+              (sha256
+               (base32
+                "0d9ppd94x2kw404m49ajswmmxgdngbs4p5ajyrdvnlivfzqbv7dx"))))
+    (build-system python-build-system)
+    (arguments
+     `(;; XXX: Tests are not distributed with the PyPI archive, and would
+       ;; introduce a circular dependency on python-cfn-lint.
+       #:tests? #f
+       #:phases (modify-phases %standard-phases
+                  (add-after 'unpack 'loosen-requirements
+                    (lambda _
+                      ;; The package needlessly specifies exact versions
+                      ;; of dependencies, when it works fine with others.
+                      (substitute* "requirements/base.txt"
+                        (("(.*)(~=[0-9\\.]+)" all package version)
+                         package))
+                      #t)))))
+    (propagated-inputs
+     `(("python-boto3" ,python-boto3)
+       ("python-jsonschema" ,python-jsonschema)
+       ("python-six" ,python-six)))
+    (home-page "https://github.com/awslabs/serverless-application-model")
+    (synopsis "Transform AWS SAM templates into AWS CloudFormation templates")
+    (description
+     "AWS SAM Translator is a library that transform @dfn{Serverless Application
+Model} (SAM) templates into AWS CloudFormation templates.")
+    (license license:asl2.0)))
+
+(define-public python-aws-xray-sdk
+  (package
+    (name "python-aws-xray-sdk")
+    (version "2.6.0")
+    (home-page "https://github.com/aws/aws-xray-sdk-python")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference (url home-page) (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "12fzr0ylpa1lx3xr1x2f1jx8iiyzcr6g57fb9jign0j0lxdlbzpv"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases (modify-phases %standard-phases
+                  (add-after 'unpack 'disable-tests
+                    (lambda _
+                      (for-each delete-file
+                                '(;; These tests require packages not yet in Guix.
+                                  "tests/ext/aiobotocore/test_aiobotocore.py"
+                                  "tests/ext/aiohttp/test_middleware.py"
+                                  "tests/ext/pg8000/test_pg8000.py"
+                                  "tests/ext/psycopg2/test_psycopg2.py"
+                                  "tests/ext/pymysql/test_pymysql.py"
+                                  "tests/ext/pynamodb/test_pynamodb.py"
+                                  "tests/test_async_recorder.py"
+
+                                  ;; FIXME: Why is this failing?
+                                  "tests/test_patcher.py"
+
+                                  ;; TODO: How to configure Django for these tests.
+                                  "tests/ext/django/test_db.py"
+                                  "tests/ext/django/test_middleware.py"
+
+                                  ;; These tests want to access httpbin.org.
+                                  "tests/ext/requests/test_requests.py"
+                                  "tests/ext/httplib/test_httplib.py"
+                                  "tests/ext/aiohttp/test_client.py"))))
+                  (replace 'check
+                    (lambda _
+                      (setenv "PYTHONPATH"
+                              (string-append "./build/lib:.:"
+                                             (getenv "PYTHONPATH")))
+                      (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)))
+    (synopsis "Profile applications on AWS X-Ray")
+    (description
+     "The AWS X-Ray SDK for Python enables Python developers to record and
+emit information from within their applications to the AWS X-Ray service.")
+    (license license:asl2.0)))
+
+(define-public python-cfn-lint
+  (package
+    (name "python-cfn-lint")
+    (version "0.41.0")
+    (home-page "https://github.com/aws-cloudformation/cfn-python-lint")
+    (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
+                "0nqs0fmj3hd7pnd9hkb4z57jvi2iv82hh6n3xxba6i6p8zgx75q4"))))
+    (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")
+                        (setenv "PYTHONPATH"
+                                (string-append "./build/lib:"
+                                               (getenv "PYTHONPATH")))
+                        (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)))
+    (synopsis "Validate CloudFormation templates")
+    (description
+     "This package lets you validate CloudFormation YAML/JSON templates against
+the CloudFormation spec and additional checks.  Includes checking valid values
+for resource properties and best practices.")
+    (license license:expat)))
+
 (define-public python-falcon
   (package
     (name "python-falcon")
@@ -373,14 +593,14 @@ other HTTP libraries.")
 (define-public httpie
   (package
     (name "httpie")
-    (version "2.2.0")
+    (version "2.3.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "httpie" version))
        (sha256
         (base32
-         "18058k0i3cc4ixvgzj882w693lf40283flvspbrvd876iq42ib1i"))))
+         "15ngl3yc186gkgqdx8iav9bpj8gxjpzz26y32z92jwyhj4cmfh6m"))))
     (build-system python-build-system)
     (arguments
      ;; The tests attempt to access external web servers, so we cannot run them.
@@ -388,27 +608,30 @@ other HTTP libraries.")
     (propagated-inputs
      `(("python-colorama" ,python-colorama)
        ("python-pygments" ,python-pygments)
-       ("python-requests" ,python-requests)))
-    (home-page "https://httpie.org/")
+       ("python-requests" ,python-requests)
+       ("python-requests-toolbelt" ,python-requests-toolbelt-0.9.1)))
+    (home-page "https://httpie.io")
     (synopsis "cURL-like tool for humans")
     (description
      "A command line HTTP client with an intuitive UI, JSON support,
 syntax highlighting, wget-like downloads, plugins, and more.  It consists of
 a single http command designed for painless debugging and interaction with
 HTTP servers, RESTful APIs, and web services.")
+    ;; This was fixed in 1.0.3.
+    (properties `((lint-hidden-cve . ("CVE-2019-10751"))))
     (license license:bsd-3)))
 
 (define-public python-html2text
   (package
     (name "python-html2text")
-    (version "2019.8.11")
+    (version "2020.1.16")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "html2text" version))
        (sha256
         (base32
-         "0ppgjplg06kmv9sj0x8p7acczcq2mcfgk1jdjwm4w5w40b0vj5pm"))))
+         "1fvv4z6dblii2wk1x82981ag8yhxbim1v2ksgywxsndh2s7335p2"))))
     (build-system python-build-system)
     (arguments
      '(#:phases
@@ -426,7 +649,94 @@ Swartz.")
     (license license:gpl3+)))
 
 (define-public python2-html2text
-  (package-with-python2 python-html2text))
+  (let ((base (package-with-python2 python-html2text)))
+    (package
+      (inherit base)
+      ;; This is the last version with support for Python 2.
+      (version "2019.8.11")
+      (source (origin
+                (method url-fetch)
+                (uri (pypi-uri "html2text" version))
+                (sha256
+                 (base32
+                  "0ppgjplg06kmv9sj0x8p7acczcq2mcfgk1jdjwm4w5w40b0vj5pm")))))))
+
+(define-public python-jose
+  (package
+    (name "python-jose")
+    (version "3.2.0")
+    (home-page "http://github.com/mpdavis/python-jose")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference (url home-page) (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1xmnf8whzv2gnkkdv0fqcn9qwmcc7y647p4kw9fi3lvcp9kch8vi"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (if tests?
+                 (invoke "pytest" "-vv")
+                 (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)))
+    (synopsis "JOSE implementation in Python")
+    (description
+     "The @dfn{JavaScript Object Signing and Encryption} (JOSE) technologies
+- JSON Web Signature (JWS), JSON Web Encryption (JWE), JSON Web Key (JWK), and
+JSON Web Algorithms (JWA) - collectively can be used to encrypt and/or sign
+content using a variety of algorithms.")
+    (license license:expat)))
+
+(define-public python-jsonpickle
+  (package
+    (name "python-jsonpickle")
+    (version "1.4.1")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "jsonpickle" version))
+              (sha256
+               (base32
+                "1fn86z468hamw8njh2grw2xdhsm7g48dyxs3lw0n10nn1g6vgm78"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases (modify-phases %standard-phases
+                  (replace 'check
+                    (lambda _
+                      (setenv "PYTHONPATH"
+                              (string-append "./build/lib:"
+                                             (getenv "PYTHONPATH")))
+                      (invoke "pytest" "-vv"
+                              ;; Prevent running the flake8 and black
+                              ;; pytest plugins, which only tests style
+                              ;; 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)))
+    (home-page "https://jsonpickle.github.io/")
+    (synopsis "Serialize object graphs into JSON")
+    (description
+     "This package provides a Python library for serializing any arbitrary
+object graph to and from JSON.")
+    (license license:bsd-3)))
 
 (define-public python-mechanicalsoup
   (package
@@ -527,6 +837,34 @@ into HTTP/2 frames.")
 for use in Python programs that implement HTTP/2.")
     (license license:expat)))
 
+(define-public python-h11
+  (package
+    (name "python-h11")
+    (version "0.9.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "h11" version))
+       (sha256
+        (base32 "1qfad70h59hya21vrzz8dqyyaiqhac0anl2dx3s3k80gpskvrm1k"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda _
+             (invoke "pytest" "-vv"))))))
+    (native-inputs
+     `(("python-pytest" ,python-pytest)))
+    (home-page "https://github.com/python-hyper/h11")
+    (synopsis "Pure-Python, bring-your-own-I/O implementation of HTTP/1.1")
+    (description
+     "This is a little HTTP/1.1 library written from scratch in Python, heavily
+inspired by hyper-h2.  It's a bring-your-own-I/O library; h11 contains no IO
+code whatsoever.  This means you can hook h11 up to your favorite network API,
+and that could be anything you want.")
+    (license license:expat)))
+
 (define-public python-h2
   (package
     (name "python-h2")
@@ -625,17 +963,91 @@ both of which are installed automatically if you install this library.")
 (define-public python2-flask-babel
   (package-with-python2 python-flask-babel))
 
+(define-public python-flask-cors
+  (package
+    (name "python-flask-cors")
+    (version "3.0.9")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "Flask-Cors" version))
+              (sha256
+               (base32
+                "1f36hkaxc92zn12f88fkzwifdvlvsnmlp1dv3p5inpcc500c3kvb"))))
+    (build-system python-build-system)
+    (native-inputs
+     `(("python-flask" ,python-flask)
+       ("python-nose" ,python-nose)
+       ("python-packaging" ,python-packaging)))
+    (propagated-inputs
+     `(("python-six" ,python-six)))
+    (home-page "https://flask-cors.readthedocs.io/en/latest/")
+    (synopsis "Handle Cross-Origin Resource Sharing with Flask")
+    (description
+     "This package provides a Flask extension for handling @acronym{CORS,Cross
+Origin Resource Sharing}, making cross-origin AJAX possible.")
+    (license license:expat)))
+
+(define-public python-flask-markdown
+  (package
+    (name "python-flask-markdown")
+    (version "0.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "Flask-Markdown" version))
+       (sha256
+        (base32
+         "0l32ikv4f7va926jlq4f7gx0xid247bhlxl6bd9av5dk8ljz1hyq"))))
+    (build-system python-build-system)
+    (arguments
+     '(#:tests? #f))        ; Tests seem to be incompatible with latest python
+    (propagated-inputs
+     `(("python-markdown" ,python-markdown)
+       ("python-flask" ,python-flask)))
+    (native-inputs
+     `(("python-nose" ,python-nose)))
+    (home-page "https://github.com/dcolish/flask-markdown")
+    (synopsis "Small extension to help with using Markdown in Flask")
+    (description
+     "Flask-Markdown supports several extensions for Markdown and integrates
+into Jinja2 by default.")
+    (license license:bsd-3)))
+
+(define-public python-flask-session
+  (package
+    (name "python-flask-session")
+    (version "0.3.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "Flask-Session" version))
+       (sha256
+        (base32
+         "08s4msg8jzb8vgb9bd491zvrzhrdldxdw6vimb0kx5kgy2xy4s07"))))
+    (build-system python-build-system)
+    (arguments
+     '(#:tests? #f)) ; Tests require the various storage backends to be present
+    (propagated-inputs
+     `(("python-flask" ,python-flask)))
+    (home-page "https://github.com/fengsp/flask-session")
+    (synopsis "Adds server-side session support to your Flask application")
+    (description
+     "Flask-Session is an extension for Flask that adds support for
+Server-side sessions, with a variety of different backends for session
+storage.")
+    (license license:bsd-3)))
+
 (define-public python-html5lib
   (package
     (name "python-html5lib")
-    (version "1.0.1")
+    (version "1.1")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "html5lib" version))
         (sha256
           (base32
-            "0dipzfrycv6j1jw82v9b7d8lzggx3x8xngx6l4xrqkxwvg7hvjv6"))))
+            "0vqlhk0hgbsfkh7ybmby93xhlx8dq6pr5blf356ka3z2c41b9rdj"))))
     (build-system python-build-system)
     (propagated-inputs
      `(("python-six" ,python-six)
@@ -645,9 +1057,9 @@ both of which are installed automatically if you install this library.")
     (home-page
       "https://github.com/html5lib/html5lib-python")
     (synopsis
-      "Python HTML parser based on the WHATWG HTML specifcation")
+      "Python HTML parser based on the WHATWG HTML specification")
     (description
-      "Html5lib is an HTML parser based on the WHATWG HTML specifcation
+      "Html5lib is an HTML parser based on the WHATWG HTML specification
 and written in Python.")
     (license license:expat)))
 
@@ -701,6 +1113,41 @@ C, yielding parse times that can be a thirtieth of the html5lib parse times.")
 (define-public python2-html5-parser
   (package-with-python2 python-html5-parser))
 
+(define-public python-minio
+  (package
+    (name "python-minio")
+    (version "6.0.0")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "minio" version))
+              (sha256
+               (base32
+                "1cxpa0m7mdvpdbc1g6wlihq6ja4g4paxkl6f3q84bbnx07zpbllp"))))
+    (build-system python-build-system)
+    (arguments
+     '(#:phases (modify-phases %standard-phases
+                  (add-before 'check 'disable-failing-tests
+                    (lambda _
+                      ;; This test requires network access.
+                      (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)))
+    (home-page "https://github.com/minio/minio-py")
+    (synopsis "Programmatically access Amazon S3 from Python")
+    (description
+     "This package provides a Python library for interacting with any
+Amazon S3 compatible object storage server.")
+    (license license:asl2.0)))
+
 (define-public python-pycurl
   (package
     (name "python-pycurl")
@@ -787,14 +1234,14 @@ is Python’s.")
 (define-public python-openid
   (package
     (name "python-openid")
-    (version "3.1.0")
+    (version "3.2.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "python3-openid" version))
        (sha256
         (base32
-         "00l5hrjh19740w00b3fnsqldnla41wbr2rics09dl4kyd1fkd3b2"))))
+         "1bxf9a3ny1js422j962zfzl4a9dhj192pvai05whn7j0iy9gdyrk"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -871,19 +1318,22 @@ options.")
   (package
     (inherit python-cssutils)
     (name "python-css-parser")
-    (version "1.0.4")
+    (version "1.0.6")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "css-parser" version ".tar.gz"))
        (sha256
-        (base32
-         "0i4xfykiffxzr4f6y0m2ggqvx1rzam6pw6krlr5k6ldf29akbay7"))))
+        (base32 "0bmg4kiiir6pj9x3sd12x4dz2c1xpp2bn5nn60fxnbk2lnl4im2f"))))
     (home-page "https://github.com/ebook-utils/css-parser")
     (synopsis "Fork of cssutils modified for parsing ebooks")
     (description
-     "Css-parser is a fork of cssutils 1.0.2, updated and modified for parsing
-ebooks, due to cssutils not receiving updates as of 1.0.2.")
+      "Css-parser is a Python package for parsing and building CSS
+Cascading Style Sheets.  Currently it provides a DOM only and no rendering
+options.
+
+It's a fork of cssutils 1.0.2, updated and modified for parsing ebooks, due to
+cssutils not receiving updates as of 1.0.2.")
     (license license:lgpl3+)))
 
 (define-public python2-css-parser
@@ -923,6 +1373,49 @@ another XPath engine to find the matching elements in an XML or HTML document.")
 (define-public python2-cssselect
   (package-with-python2 python-cssselect))
 
+(define-public python-databricks-cli
+  (package
+    (name "python-databricks-cli")
+    (version "0.14.1")
+    (home-page "https://github.com/databricks/databricks-cli")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference (url home-page) (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "03w19rzh72jll9phai23wp0c2mlv39qsrv50mhckziy39z60yxh8"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases (modify-phases %standard-phases
+                  (replace 'check
+                    (lambda _
+                      (setenv "PYTHONPATH"
+                              (string-append "./build/lib:"
+                                             (getenv "PYTHONPATH")))
+                      (invoke "pytest" "tests" "-vv"
+                              ;; XXX: This fails with newer Pytest
+                              ;; (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)))
+    (synopsis "Command line interface for Databricks")
+    (description
+     "The Databricks Command Line Interface is a tool which provides an easy
+to use interface to the Databricks platform.  The CLI is built on top of the
+Databricks REST APIs.")
+    (license license:asl2.0)))
+
 (define-public python-openid-cla
   (package
     (name "python-openid-cla")
@@ -968,6 +1461,142 @@ teams extension for python-openid.")
 (define-public python2-openid-teams
   (package-with-python2 python-openid-teams))
 
+(define-public python-priority
+  (package
+    (name "python-priority")
+    (version "1.3.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "priority" version))
+       (sha256
+        (base32 "1gpzn9k9zgks0iw5wdmad9b4dry8haiz2sbp6gycpjkzdld9dhbb"))))
+    (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" "test" "-k"
+                     ;; 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)))
+    (home-page "https://python-hyper.org/projects/priority/en/latest/")
+    (synopsis "Pure-Python implementation of the HTTP/2 priority tree")
+    (description
+     "Priority is a pure-Python implementation of the priority logic for HTTP/2,
+set out in RFC 7540 Section 5.3 (Stream Priority).")
+    (license license:expat)))
+
+(define-public python-wsproto
+  (package
+    (name "python-wsproto")
+    (version "0.15.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "wsproto" version))
+       (sha256
+        (base32 "17gsxlli4w8am1wwwl3k90hpdfa213ax40ycbbvb7hjx1v1rhiv1"))))
+    (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" "test"))))))
+    (native-inputs
+     `(("python-pytest" ,python-pytest)))
+    (propagated-inputs
+     `(("python-h11" ,python-h11)))
+    (home-page "https://github.com/python-hyper/wsproto/")
+    (synopsis "WebSockets state-machine based protocol implementation")
+    (description
+     "@code{wsproto} is a pure-Python implementation of a WebSocket protocol
+stack.  It's written from the ground up to be embeddable in whatever program you
+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
+  (package
+    (name "python-hypercorn")
+    (version "0.10.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "Hypercorn" version))
+       (sha256
+        (base32 "15dgy47a18w2ls3hwykra1cyf7yzxmfjqnsqml482p12cxr2xwqr"))))
+    (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)))
+    (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)))
+    (home-page "https://gitlab.com/pgjones/hypercorn/")
+    (synopsis "ASGI Server based on Hyper libraries")
+    (description
+     "Hypercorn is an ASGI web server based on the sans-io hyper, h11, h2, and
+wsproto libraries and inspired by Gunicorn.  It supports HTTP/1, HTTP/2,
+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-querystring-parser
+  (package
+    (name "python-querystring-parser")
+    (version "1.2.4")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "querystring_parser" version))
+              (sha256
+               (base32
+                "0qlar8a0wa003hm2z6wcpb625r6vjj0a70rsni9h8lz0zwfcwkv4"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases (modify-phases %standard-phases
+                  (replace 'check
+                    (lambda _
+                      ;; XXX FIXME: This test is broken with Python 3.7:
+                      ;; https://github.com/bernii/querystring-parser/issues/35
+                      (substitute* "querystring_parser/tests.py"
+                        (("self\\.assertEqual\\(self\\.knownValuesNormalized, result\\)")
+                         "True"))
+                      (invoke "python" "querystring_parser/tests.py"))))))
+    (propagated-inputs
+     `(("python-six" ,python-six)))
+    (home-page "https://github.com/bernii/querystring-parser")
+    (synopsis "QueryString parser that correctly handles nested dictionaries")
+    (description
+     "This package provides a query string parser for Python and Django
+projects that correctly creates nested dictionaries from sent form/querystring
+data.")
+    (license license:expat)))
+
 (define-public python-tornado
   (package
     (name "python-tornado")
@@ -1723,16 +2352,92 @@ WebSocket usage in Python programs.")
           ,python2-backport-ssl-match-hostname)
          ,@(package-native-inputs base))))))
 
+(define-public python-purl
+  (package
+    (name "python-purl")
+    (version "1.5")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "purl" version))
+        (sha256
+          (base32
+            "15ibnz1xrh5msmn04j0nr00sz4n7jwx6cwd6zlx99kkz3vpin53m"))))
+    (build-system python-build-system)
+    (propagated-inputs `(("python-six" ,python-six)))
+    (home-page
+      "https://github.com/codeinthehole/purl")
+    (synopsis
+      "Python package for URL manipulation")
+    (description
+      "Purl is a Python package for handling URLs.")
+    (license license:expat)))
+
+(define-public python-apiron
+  (package
+    (name "python-apiron")
+    (version "5.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "apiron" version))
+       (sha256
+        (base32 "1qwbqn47sf0aqznj1snbv37v8ijx476qqkjf5l9pac7xjkxsr8qk"))))
+    (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" "--cov" "-k"
+                     ;; This test tries to connect to the internet.
+                     "not test_call"))))))
+    (propagated-inputs
+     `(("python-requests" ,python-requests)))
+    (native-inputs
+     `(("python-pytest" ,python-pytest)
+       ("python-pytest-cov" ,python-pytest-cov)))
+    (home-page "https://github.com/ithaka/apiron")
+    (synopsis "Python wrapper for interacting with RESTful APIs")
+    (description
+     "@code{apiron} provides a declarative, structured configuration of
+services and endpoints with a unified interface for interacting with RESTful
+APIs.")
+    (license license:expat)))
+
+(define-public python-beren
+  (package
+    (name "python-beren")
+    (version "0.7.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "beren" version))
+       (sha256
+        (base32 "1v3mdwfqsyza892zvs124ym9w1bkng1j56b7l4dwfjir3723xcgf"))))
+    (build-system python-build-system)
+    (arguments
+     ;; The test tries to open a connection to a remote server.
+     `(#:tests? #f))
+    (propagated-inputs
+     `(("python-apiron" ,python-apiron)))
+    (home-page "https://github.com/teffalump/beren")
+    (synopsis "REST client for Orthanc DICOM servers")
+    (description
+     "@code{beren} provides a REST client for Orthanc, a DICOM server.")
+    (license license:gpl3+)))
+
 (define-public python-requests
   (package
     (name "python-requests")
-    (version "2.23.0")
+    (version "2.24.0")
     (source (origin
              (method url-fetch)
              (uri (pypi-uri "requests" version))
              (sha256
               (base32
-               "1rhpg0jb08v0gd7f19jjiwlcdnxpmqi1fhvw7r4s9avddi4kvx5k"))))
+               "06r3017hz0hzxv42gpg73l8xvdjbzw7q904ljvp36b5p3l9rlmdk"))))
     (build-system python-build-system)
     (propagated-inputs
      `(("python-certifi" ,python-certifi)
@@ -1765,18 +2470,6 @@ than Python’s urllib2 library.")
               ("python-idna" ,python-idna-2.7)
               ,@(package-propagated-inputs python-requests)))))
 
-;; Some software requires an older version of Requests, notably Docker
-;; Compose.
-(define-public python-requests-2.7
-  (package (inherit python-requests)
-    (version "2.7.0")
-    (source (origin
-             (method url-fetch)
-             (uri (pypi-uri "requests" version))
-             (sha256
-              (base32
-               "0gdr9dxm24amxpbyqpbh3lbwxc2i42hnqv50sigx568qssv3v2ir"))))))
-
 (define-public python2-requests
   (package-with-python2 python-requests))
 
@@ -1807,14 +2500,14 @@ library.")
 (define-public python-requests-mock
   (package
     (name "python-requests-mock")
-    (version "1.3.0")
+    (version "1.8.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "requests-mock" version))
        (sha256
         (base32
-         "0jr997dvk6zbmhvbpcv3rajrgag69mcsm1ai3w3rgk2jdh6rg1mx"))))
+         "09nj8fmyj7xz2mgwyvbw0fl9zybmx2d3qd2hf529vvjc9s24d3z6"))))
     (build-system python-build-system)
     (propagated-inputs
      `(("python-requests" ,python-requests)
@@ -1825,9 +2518,10 @@ library.")
        ("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)
-       ("python-testtools" ,python-testtools)))
+       ("python-testrepository" ,python-testrepository)))
     (home-page "https://requests-mock.readthedocs.org/")
     (synopsis "Mock out responses from the requests package")
     (description
@@ -1870,16 +2564,52 @@ with python-requests.")
 (define-public python2-requests-toolbelt
   (package-with-python2 python-requests-toolbelt))
 
+(define-public python-requests-toolbelt-0.9.1
+  (package
+    (inherit python-requests-toolbelt)
+    (version "0.9.1")
+    (source (origin
+             (method url-fetch)
+             (uri (pypi-uri "requests-toolbelt" version))
+             (sha256
+              (base32
+               "1h3gm88dcjbd7gm229a7x5qkkhnsqsjz0m0l2xyavm2ab3a8k04n"))))
+    (arguments
+     `(;; FIXME: Some tests require network access.
+       #:tests? #f))))
+
+(define-public python-requests-ftp
+  (package
+    (name "python-requests-ftp")
+    (version "0.3.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "requests-ftp" version))
+       (sha256
+        (base32
+         "0yh5v21v36dsjsgv4y9dx4mmz35741l5jf6pbq9w19d8rfsww13m"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-requests" ,python-requests)))
+    (home-page
+     "https://github.com/Lukasa/requests-ftp")
+    (synopsis "FTP Transport Adapter for Requests")
+    (description
+     "Requests-FTP is an implementation of a simple FTP transport
+adapter for use with the Requests library.")
+    (license license:asl2.0)))
+
 (define-public python-oauthlib
   (package
     (name "python-oauthlib")
-    (version "3.0.1")
+    (version "3.1.0")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "oauthlib" version))
               (sha256
                (base32
-                "163jg4a8f7c5ki655grrr47kgljy12wri3qly7ijf64sk1fjrqqc"))))
+                "12gqnabwck30gdlpwm6af3s28qm9p2yc7b1w8s4fk9ncbz1irr5y"))))
     (build-system python-build-system)
     (arguments
      `(#:phases (modify-phases %standard-phases
@@ -1954,7 +2684,6 @@ authenticated session objects providing things like keep-alive.")
        ("python-certifi" ,python-certifi)
        ("python-cryptography" ,python-cryptography)
        ("python-idna" ,python-idna)
-       ("python-ipaddress" ,python-ipaddress)
        ("python-pyopenssl" ,python-pyopenssl)
        ("python-pysocks" ,python-pysocks)))
     (home-page "https://urllib3.readthedocs.io/")
@@ -1963,6 +2692,7 @@ authenticated session objects providing things like keep-alive.")
      "Urllib3 supports features left out of urllib and urllib2 libraries.  It
 can reuse the same socket connection for multiple requests, it can POST files,
 supports url redirection and retries, and also gzip and deflate decoding.")
+    (properties `((python2-variant . ,(delay python2-urllib3))))
     (license license:expat)))
 
 ;; Some software requires an older version of urllib3, notably Docker.
@@ -1978,19 +2708,25 @@ supports url redirection and retries, and also gzip and deflate decoding.")
 
 
 (define-public python2-urllib3
-  (package-with-python2 python-urllib3))
+  (let ((base (package-with-python2 (strip-python2-variant python-urllib3))))
+    (package/inherit
+     base
+     (propagated-inputs
+      `(("python-ipaddress" ,python2-ipaddress)
+        ,@(package-propagated-inputs base))))))
 
 (define-public awscli
   (package
+    ;; Note: updating awscli typically requires updating botocore as well.
     (name "awscli")
-    (version "1.18.6")
+    (version "1.18.203")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri name version))
        (sha256
         (base32
-         "0p479mfs9r0m82a217pap8156ijwvhv6r3kqa4k267gd05wgvygm"))))
+         "128zg24961j8nmnq2dxqg6a7zwh3qgv87cmvclsdqwwih9nigxv9"))))
     (build-system python-build-system)
     (arguments
      ;; FIXME: The 'pypi' release does not contain tests.
@@ -2052,13 +2788,13 @@ and to spawn subprocesses to handle requests.")
 (define-public python-pastedeploy
   (package
     (name "python-pastedeploy")
-    (version "2.1.0")
+    (version "2.1.1")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "PasteDeploy" version))
        (sha256
-        (base32 "16qsq5y6mryslmbp5pn35x4z8z3ndp5rpgl42h226879nrw9hmg7"))))
+        (base32 "05s88qdjdwd9d9qs13fap7nqgxs7qs5qfzzjbrc5va13k2mxdskd"))))
     (build-system python-build-system)
     (arguments
      '(#:test-target "pytest"))
@@ -2282,16 +3018,34 @@ library.")
 @code{Requests} with @code{Gevent} to make asynchronous HTTP Requests easily")
     (license license:bsd-2)))
 
+(define-public python-dpkt
+  (package
+    (name "python-dpkt")
+    (version "1.9.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "dpkt" version))
+       (sha256
+        (base32
+         "1d28r8pmhzjjd6hrn1xcddinfhwv8lcl1s59ygmqa8kfmz5pkrgl"))))
+    (build-system python-build-system)
+    (home-page "https://github.com/kbandla/dpkt")
+    (synopsis "Packet generator and parser for TCP/IP protocols")
+    (description "The dpkt module is a fast, simple packet generator and parser
+for the basic TCP/IP protocols.")
+    (license license:bsd-3)))
+
 (define-public python-geventhttpclient
   (package
     (name "python-geventhttpclient")
-    (version "1.3.1")
+    (version "1.4.4")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "geventhttpclient" version))
               (sha256
                (base32
-                "07d0q3wzmml75227r6y6mrl5a0zpf4v9gj0ni5rhbyzmaj4az1xx"))
+                "1hy4qm9d3r69n5199i7qjji1v7718n7cxbj8ggi0njify99m37pm"))
               (modules '((guix build utils)))
               (snippet
                '(begin
@@ -2319,7 +3073,8 @@ library.")
                      "-k" (string-append "not test_cookielib_compatibility"))
              #t)))))
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     `(("python-dpkt" ,python-dpkt)
+       ("python-pytest" ,python-pytest)))
     (propagated-inputs
      `(("python-certifi" ,python-certifi)
        ("python-gevent" ,python-gevent)
@@ -2330,9 +3085,6 @@ library.")
 concurrent HTTP client library for python using @code{gevent}.")
     (license license:expat)))
 
-(define-public python2-geventhttpclient
-  (package-with-python2 python-geventhttpclient))
-
 (define-public python-requests-oauthlib
   (package
     (name "python-requests-oauthlib")
@@ -2435,6 +3187,19 @@ provide an easy-to-use Python interface for building OAuth1 and OAuth2 clients."
 (define-public python2-cachecontrol
   (package-with-python2 python-cachecontrol))
 
+(define-public python-cachecontrol-0.11
+  (package
+    (inherit python-cachecontrol)
+    (name "python-cachecontrol")
+    (version "0.11.7")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "CacheControl" version))
+        (sha256
+         (base32
+          "07jsfhlbcwgqg6ayz8nznzaqg5rmxqblbzxz1qvg5wc44pcjjy4g"))))))
+
 (define-public python-betamax
   (package
     (name "python-betamax")
@@ -2488,13 +3253,13 @@ Betamax.")
 (define-public python-s3transfer
   (package
     (name "python-s3transfer")
-    (version "0.2.0")
+    (version "0.3.3")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "s3transfer" version))
               (sha256
                (base32
-                "08fhj73b1ai52hrs2q3nggshq3pswn1gq8ch3m009cb2v2vmqggj"))))
+                "1nzp5kwmy9669334shcz9ipg89jgpdqhrmbkgdg18r7wmvi3f6lj"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -2597,21 +3362,30 @@ pretty printer and a tree visitor.")
     (name "python-flask-basicauth")
     (version "0.2.0")
     (source
-      (origin
-        (method url-fetch)
-        (uri (pypi-uri "Flask-BasicAuth" version))
-        (sha256
-          (base32
-            "1zq1spkjr4sjdnalpp8wl242kdqyk6fhbnhr8hi4r4f0km4bspnz"))))
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "Flask-BasicAuth" version))
+       (sha256
+        (base32
+         "1zq1spkjr4sjdnalpp8wl242kdqyk6fhbnhr8hi4r4f0km4bspnz"))))
     (build-system python-build-system)
+    (arguments
+     `(#:phases (modify-phases %standard-phases
+                  (add-after 'unpack 'fix-imports
+                    (lambda _
+                      (substitute* '("docs/index.rst"
+                                     "docs/conf.py"
+                                     "flask_basicauth.py"
+                                     "test_basicauth.py")
+                        (("flask\\.ext\\.basicauth")
+                         "flask_basicauth"))
+                      #t)))))
     (propagated-inputs
      `(("python-flask" ,python-flask)))
-    (home-page
-      "https://github.com/jpvanhal/flask-basicauth")
-    (synopsis
-      "HTTP basic access authentication for Flask")
+    (home-page "https://github.com/jpvanhal/flask-basicauth")
+    (synopsis "HTTP basic access authentication for Flask")
     (description
-      "This package provides HTTP basic access authentication for Flask.")
+     "This package provides HTTP basic access authentication for Flask.")
     (license license:bsd-3)))
 
 (define-public python-flask-htpasswd
@@ -2718,9 +3492,6 @@ documentation builder.")
 specs from your Flask-Restful projects.")
     (license license:expat)))
 
-(define-public python2-flask-restful-swagger
-  (package-with-python2 python-flask-restful-swagger))
-
 (define-public python-htmlmin
   (package
     (name "python-htmlmin")
@@ -2882,15 +3653,29 @@ for Flask.")
 (define-public python-webassets
   (package
     (name "python-webassets")
-    (version "0.12.1")
+    (version "2.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "webassets" version))
        (sha256
         (base32
-         "1nrqkpb7z46h2b77xafxihqv3322cwqv6293ngaky4j3ff4cing7"))))
+         "1kc1042jydgk54xpgcp0r1ib4gys91nhy285jzfcxj3pfqrk4w8n"))))
     (build-system python-build-system)
+    (arguments
+     '(#:phases (modify-phases %standard-phases
+                  (add-before 'check 'disable-some-tests
+                    (lambda _
+                      ;; This test requires 'postcss' and 'babel' which are
+                      ;; not yet available in Guix.
+                      (delete-file "tests/test_filters.py")
+                      #t))
+                  (replace 'check
+                    (lambda _
+                      (setenv "PYTHONPATH"
+                              (string-append "./build/lib:"
+                                             (getenv "PYTHONPATH")))
+                      (invoke "pytest" "-vv"))))))
     (native-inputs
      `(("python-jinja2" ,python-jinja2)
        ("python-mock" ,python-mock)
@@ -2991,9 +3776,6 @@ and other command-line tasks that belong outside the web application
 itself.")
   (license license:bsd-3)))
 
-(define-public python2-flask-script
-  (package-with-python2 python-flask-script))
-
 (define-public python-flask-migrate
   (package
   (name "python-flask-migrate")
@@ -3067,9 +3849,6 @@ Flask.  It supports managing both authentication and authorization data in a
 thread-local variable.")
     (license license:expat)))
 
-(define-public python2-flask-principal
-  (package-with-python2 python-flask-principal))
-
 (define-public python-flask-httpauth
   (package
     (name "python-flask-httpauth")
@@ -3090,20 +3869,17 @@ thread-local variable.")
 authentication for Flask routes.")
     (license license:expat)))
 
-(define-public python2-flask-httpauth
-  (package-with-python2 python-flask-httpauth))
-
 (define-public python-uritemplate
   (package
     (name "python-uritemplate")
-    (version "3.0.0")
+    (version "3.0.1")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "uritemplate" version))
        (sha256
         (base32
-         "0781gm9g34wa0asc19dx81ng0nqq07igzv3bbvdqmz13pv7469n0"))))
+         "1bkwmgr0ia9gcn4bszs2xlvml79f0bi2s4a87xg22ky9rq8avy2s"))))
     (build-system python-build-system)
     (home-page "https://uritemplate.readthedocs.org")
     (synopsis "Library to deal with URI Templates")
@@ -3171,14 +3947,14 @@ List.  Forked from and using the same API as the publicsuffix package.")
 (define-public python-werkzeug
   (package
     (name "python-werkzeug")
-    (version "1.0.0")
+    (version "1.0.1")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "Werkzeug" version))
        (sha256
         (base32
-         "15kh0z61klp62mrc1prka13xsshxn0rsp1j1s2964iw86yisi6qn"))))
+         "0z74sa1xw5h20yin9faj0vvdbq713cgbj84klc72jr9nmpjv303c"))))
     (build-system python-build-system)
     (arguments
      '(#:phases
@@ -3193,7 +3969,7 @@ List.  Forked from and using the same API as the publicsuffix package.")
     (native-inputs
      `(("python-pytest" ,python-pytest)
        ("python-pytest-timeout" ,python-pytest-timeout)))
-    (home-page "https://www.palletsprojects.org/p/werkzeug/")
+    (home-page "https://palletsprojects.com/p/werkzeug/")
     (synopsis "Utilities for WSGI applications")
     (description "One of the most advanced WSGI utility modules.  It includes a
 powerful debugger, full-featured request and response objects, HTTP utilities to
@@ -3202,22 +3978,18 @@ uploads, a powerful URL routing system and a bunch of community-contributed
 addon modules.")
     (license license:x11)))
 
-(define-public python2-werkzeug
-  (package-with-python2 python-werkzeug))
-
 (define-public python-bottle
   (package
     (name "python-bottle")
-    (version "0.12.18")
+    (version "0.12.19")
     (source
      (origin
       (method url-fetch)
       (uri (pypi-uri "bottle" version))
       (sha256
-        (base32
-          "17pn43kzr7m6czjbm4nda7kzs4ap9mmb30qfbhifyzas2i5vf688"))))
+        (base32 "0b6s50vc4iad97b6bb3xnyrgajb3nj6n6jbr5p54a4vapky3zmx9"))))
     (build-system python-build-system)
-    (home-page "http://bottlepy.org/")
+    (home-page "https://bottlepy.org/")
     (synopsis "WSGI framework for small web-applications.")
     (description "@code{python-bottle} is a WSGI framework for small web-applications.")
     (license license:expat)))
@@ -3665,26 +4437,21 @@ library to create slugs from unicode strings while keeping it DRY.")
 (define-public python-tinycss2
   (package
     (name "python-tinycss2")
-    (version "1.0.2")
+    (version "1.1.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "tinycss2" version))
-       (patches (search-patches "python-tinycss2-flake8-compat.patch"))
        (sha256
-        (base32 "1kw84y09lggji4krkc58jyhsfj31w8npwhznr7lf19d0zbix09v4"))))
+        (base32 "12p16k8x8ig51gpfcwz3k3kxpxrwwkn41a1avdgvh3nn8hqarp7v"))))
     (build-system python-build-system)
     (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (replace 'check
-           (lambda _ (invoke "pytest"))))))
+     ;; Test data is missing from the PyPI archive, and the build system is
+     ;; based on Flit, which wants an unmaintained and unpackaged
+     ;; python-pytoml dependency.
+     `(#:tests? #f))
     (propagated-inputs
      `(("python-webencodings" ,python-webencodings)))
-    (native-inputs
-     `(("python-pytest-flake8" ,python-pytest-flake8)
-       ("python-pytest-isort" ,python-pytest-isort)
-       ("python-pytest-runner" ,python-pytest-runner)))
     (home-page "https://tinycss2.readthedocs.io/")
     (synopsis "Low-level CSS parser for Python")
     (description "@code{tinycss2} can parse strings, return Python objects
@@ -3699,13 +4466,13 @@ in various CSS modules.")
 (define-public python-cssselect2
   (package
     (name "python-cssselect2")
-    (version "0.2.2")
+    (version "0.4.1")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "cssselect2" version))
        (sha256
-        (base32 "0skymzb4ncrm2zdsy80f53vi0arf776lvbp51hzh4ayp1il5lj3h"))))
+        (base32 "1j2fcr217rsvkipsg6zjq03rl64rxnvb5hqqpx0dv58fhspvkywk"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -3730,6 +4497,43 @@ XPath and therefore does not have all the correctness corner cases that are
 hard or impossible to fix in cssselect.")
     (license license:bsd-3)))
 
+(define-public python-uvloop
+  (package
+    (name "python-uvloop")
+    (version "0.14.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "uvloop" version))
+       (sha256
+        (base32 "07j678z9gf41j98w72ysrnb5sa41pl5yxd7ib17lcwfxqz0cjfhj"))))
+    (build-system python-build-system)
+    (arguments
+     '(#:tests? #f ;FIXME: tests hang and with some errors in the way
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'preparations
+           (lambda _
+             ;; Use packaged libuv.
+             (substitute* "setup.py" (("self.use_system_libuv = False")
+                                      "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)))
+    (inputs
+     `(("libuv" ,libuv)))
+    (home-page "https://github.com/MagicStack/uvloop")
+    (synopsis "Fast implementation of asyncio event loop on top of libuv")
+    (description
+     "@code{uvloop} is a fast, drop-in replacement of the built-in asyncio
+event loop.  It is implemented in Cython and uses libuv under the hood.")
+    (license license:expat)))
+
 (define-public gunicorn
   (package
     (name "gunicorn")
@@ -3776,7 +4580,7 @@ hard or impossible to fix in cssselect.")
              #t)))))
     (native-inputs
      `(("binutils" ,binutils)  ;; for ctypes.util.find_library()
-       ("python-aiohttp", python-aiohttp)
+       ("python-aiohttp" ,python-aiohttp)
        ("python-pytest" ,python-pytest)
        ("python-pytest-cov" ,python-pytest-cov)
        ("python-sphinx" ,python-sphinx)
@@ -3800,6 +4604,104 @@ and fairly speedy.")
     (properties '((hidden? . #t)))
     (native-inputs `())))
 
+(define-public python-httptools
+  (package
+    (name "python-httptools")
+    (version "0.1.1")
+    (source
+     (origin
+       ;; PyPI tarball comes with a vendored http-parser and no tests.
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/MagicStack/httptools")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0g08128x2ixsiwrzskxc6c8ymgzs39wbzr5mhy0mjk30q9pqqv77"))))
+    (build-system python-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'preparations
+           (lambda _
+             ;; Skip a failing test (AssertionError).  Bug report:
+             ;; https://github.com/MagicStack/httptools/issues/10.
+             (substitute* "tests/test_parser.py"
+               (("    def test_parser_response_1")
+                (string-append
+                 "    @unittest.skip(\"Disabled.\")\n"
+                 "    def test_parser_response_1")))
+             ;; Use packaged http-parser.
+             (substitute* "setup.py" (("self.use_system_http_parser = False")
+                                      "self.use_system_http_parser = True"))
+             ;; This path is hardcoded.  Hardcode our own.
+             (substitute* "httptools/parser/cparser.pxd"
+               (("../../vendor/http-parser")
+                (string-append (assoc-ref %build-inputs "http-parser")
+                               "/include")))
+             ;; Don't force Cython version.
+             (substitute* "setup.py" (("Cython==") "Cython>="))
+             #t)))))
+    (native-inputs
+     `(("python-cython" ,python-cython)
+       ("python-pytest" ,python-pytest)))
+    (inputs
+     `(("http-parser" ,http-parser)))
+    (home-page "https://github.com/MagicStack/httptools")
+    (synopsis "Collection of framework independent HTTP protocol utils")
+    (description
+     "@code{httptools} is a Python binding for the nodejs HTTP parser.")
+    (license license:expat)))
+
+(define-public python-uvicorn
+  (package
+    (name "python-uvicorn")
+    (version "0.11.8")
+    (source
+     (origin
+       ;; PyPI tarball has no tests.
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/encode/uvicorn")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "00iidg5ysp7k00bw3kmkvr8mghnh4jdi0p2ryiarhryf8wz2r3fy"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key inputs outputs tests? #:allow-other-keys)
+             (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)))
+    (home-page "https://github.com/encode/uvicorn")
+    (synopsis "Fast ASGI server implementation")
+    (description
+     "@code{uvicorn} is a fast ASGI server implementation, using @code{uvloop}
+and @code{httptools}.  It currently supports HTTP/1.1 and WebSockets.  Support
+for HTTP/2 is planned.")
+    (license license:bsd-3)))
+
 (define-public python-translation-finder
   (package
     (name "python-translation-finder")
@@ -4013,6 +4915,164 @@ and serve updated contents upon changes to the directory.")
 @acronym{TLS, Transport Layer Security} support.")
     (license license:bsd-2)))
 
+(define-public python-httpcore
+  (package
+    (name "python-httpcore")
+    (version "0.12.2")
+    (source
+     (origin
+       ;; PyPI tarball does not contain tests.
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/encode/httpcore")
+             (commit  version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1nrwwfdqjfc2a1k3j41cdwkprwvplf95fwmypdl2aq2qgp3209q0"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:tests? #f ; Tests hang at 98%
+       #:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key inputs outputs tests? #:allow-other-keys)
+             (when tests?
+               (add-installed-pythonpath inputs outputs)
+               (invoke "pytest" "-vv" "--cov=httpcore"
+                       "--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)))
+    (home-page "https://github.com/encode/httpcore")
+    (synopsis "Minimal, low-level HTTP client")
+    (description
+     "HTTP Core provides a minimal and low-level HTTP client, which does one
+thing only: send HTTP requests.
+
+Some things HTTP Core does do:
+
+@itemize
+@item Sending HTTP requests.
+@item Provides both sync and async interfaces.
+@item Supports HTTP/1.1 and HTTP/2.
+@item Async backend support for asyncio and trio.
+@item Automatic connection pooling.
+@item HTTP(S) proxy support.
+@end itemize")
+    (license license:bsd-3)))
+
+(define-public python-httpx
+  (package
+    (name "python-httpx")
+    (version "0.16.1")
+    (source
+     (origin
+       ;; PyPI tarball does not contain tests.
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/encode/httpx")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "00gmq45fckcqkj910bvd7pyqz1mvgsdvz4s0k7dzbnc5czzq1f4a"))))
+    (build-system python-build-system)
+    (arguments
+     `(#: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")))))))
+    (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)))
+    (home-page "https://www.python-httpx.org/")
+    (synopsis "HTTP client for Python")
+    (description
+     "HTTPX is a fully featured HTTP client for Python 3, which provides sync
+and async APIs, and support for both HTTP/1.1 and HTTP/2.
+
+HTTPX builds on the well-established usability of requests, and gives you:
+
+@itemize
+@item A broadly requests-compatible API.
+@item Standard synchronous interface, but with async support if you need it.
+@item HTTP/1.1 and HTTP/2 support.
+@item Ability to make requests directly to WSGI applications or ASGI applications.
+@item Strict timeouts everywhere.
+@item Fully type annotated.
+@item 99% test coverage.
+@end itemize
+
+Plus all the standard features of requests:
+
+@itemize
+@item International Domains and URLs
+@item Keep-Alive & Connection Pooling
+@item Sessions with Cookie Persistence
+@item Browser-style SSL Verification
+@item Basic/Digest Authentication
+@item Elegant Key/Value Cookies
+@item Automatic Decompression
+@item Automatic Content Decoding
+@item Unicode Response Bodies
+@item Multipart File Uploads
+@item HTTP(S) Proxy Support
+@item Connection Timeouts
+@item Streaming Downloads
+@item .netrc Support
+@item Chunked Requests
+@end itemize")
+    (license license:bsd-3)))
+
 (define-public python-websockets
   (package
     (name "python-websockets")
@@ -4121,7 +5181,7 @@ major web browsers.")
        ("python-pytest-cov" ,python-pytest-cov)))
     (arguments '(#:test-target "pytest"))
     (home-page "https://docs.pylonsproject.org/projects/venusian")
-    (synopsis "Library for defering decorator actions")
+    (synopsis "Library for deferring decorator actions")
     (description
      "Venusian is a library which allows framework authors to defer decorator
 actions.  Instead of taking actions when a function (or class) decorator is
@@ -4519,3 +5579,195 @@ using a pure Python implementation.")
      "This package provices a simple implementation of Encrypted Content
 Encoding for HTTP.")
     (license license:expat)))
+
+(define-public python-cloudscraper
+  (package
+    (name "python-cloudscraper")
+    (version "1.2.48")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "cloudscraper" version))
+       (sha256
+        (base32 "0qjxzb0z5bprvmdhx42ayqhlhi2h49d9dwc0vvycj817s71f2sxv"))
+       (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"))
+           (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))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         ;; XXX: Dependencies, that have not yet been packaged
+         ;;      and cause an import error when included.
+         (add-after 'unpack 'drop-unsupported-sources
+           (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)))
+    (native-inputs
+     `(("python-pytest" ,python-pytest)))
+    (home-page "https://github.com/venomous/cloudscraper")
+    (synopsis "Cloudflare anti-bot bypass")
+    (description
+     "This module acts as a webbrowser solving Cloudflare's Javascript
+challenges.")
+    (license license:expat)))
+
+(define-public python-imap-tools
+  (package
+    (name "python-imap-tools")
+    (version "0.29.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "imap_tools" version))
+        (sha256
+          (base32
+            "0x122jwpc74wwyw2rsv2fvh6p12y31019ndfr9717jzjkj2d3lhb"))))
+    (build-system python-build-system)
+    (arguments '(#:tests? #f))          ; tests require internet access
+    (home-page "https://github.com/ikvk/imap_tools")
+    (synopsis "Work with email and mailbox by IMAP")
+    (description
+      "This Python library provides tools to deal with email and mailboxes
+over IMAP:
+
+@itemize
+@item Parsed email message attributes
+@item Query builder for searching emails
+@item Work with emails in folders (copy, delete, flag, move, seen)
+@item Work with mailbox folders (list, set, get, create, exists, rename, delete, status)
+@end itemize")
+    (license license:asl2.0)))
+
+(define-public python-hstspreload
+  (package
+    (name "python-hstspreload")
+    (version "2020.10.20")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "hstspreload" version))
+       (sha256
+        (base32
+         "1qah80p2xlib1rhivvdj9v5y3girxrj7dwp1mnh8mwaj5wy32y8a"))))
+    (build-system python-build-system)
+    (home-page
+     "https://github.com/sethmlarson/hstspreload")
+    (synopsis
+     "Chromium HSTS Preload list as a Python package")
+    (description
+     "@code{python-hstspreload} contains Chromium HSTS Preload list
+as a Python package.")
+    (license license:bsd-3)))
+
+(define-public python-sanic
+  (package
+    (name "python-sanic")
+    (version "20.9.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "sanic" version))
+       (sha256
+        (base32
+         "06p0lsxqbfbka2yaqlpp0bg5pf7ma44zi6kq7qbb6hhry48dp1w6"))))
+    (build-system python-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'use-recent-pytest
+           ;; Allow using recent dependencies.
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "setup.py"
+               (("httpcore==0.3.0") "httpcore")
+               (("pytest==5.2.1") "pytest")
+               (("multidict==5.0.0") "multidict")
+               (("httpx==0\\.15\\.4") "httpx"))
+             #t))
+         (replace 'check
+           (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)))
+    (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-urllib3" ,python-urllib3)
+       ("python-uvicorn" ,python-uvicorn)))
+    (home-page
+     "https://github.com/huge-success/sanic/")
+    (synopsis
+     "Async Python 3.6+ web server/framework")
+    (description
+     "Sanic is a Python 3.6+ web server and web framework
+that's written to go fast.  It allows the usage of the
+@code{async/await} syntax added in Python 3.5, which makes
+your code non-blocking and speedy.")
+    (license license:expat)))
+
+(define-public python-socks
+  (package
+    (name "python-socks")
+    (version "1.1.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "python-socks" version))
+        (sha256
+         (base32
+          "06mgv3icsyglv50w3sb71x6cpbskza20pqd93l5xk59x574i6xgs"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:tests? #f  ; tests not included
+       #:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (invoke "pytest" "tests/" "-s"))
+             #t)))))
+    (propagated-inputs
+     `(("python-async-timeout" ,python-async-timeout)
+       ("python-curio" ,python-curio)
+       ("python-trio" ,python-trio)))
+    (native-inputs
+     `(("python-pytest" ,python-pytest)))
+    (home-page "https://github.com/romis2012/python-socks")
+    (synopsis
+     "Core proxy (SOCKS4, SOCKS5, HTTP tunneling) functionality for Python")
+    (description
+     "Socks is a library providing core proxy (SOCKS4, SOCKS5, HTTP tunneling)
+ functionality.")
+    (license license:asl2.0)))
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 50c36a1e03..d08e23936c 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -14,8 +14,8 @@
 ;;; Copyright © 2015, 2016, 2017, 2019 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2015, 2017 Ben Woodcroft <donttrustben@gmail.com>
 ;;; Copyright © 2015, 2016 Erik Edrosa <erik.edrosa@gmail.com>
-;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2015, 2017 Kyle Meyer <kyle@kyleam.com>
+;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2015, 2017, 2020 Kyle Meyer <kyle@kyleam.com>
 ;;; Copyright © 2015, 2016 Chris Marusich <cmmarusich@gmail.com>
 ;;; Copyright © 2016 Danny Milosavljevic <dannym+a@scratchpost.org>
 ;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox.org>
@@ -31,7 +31,7 @@
 ;;; Copyright © 2016, 2017, 2019 Alex Vong <alexvong1995@gmail.com>
 ;;; Copyright © 2016, 2017, 2018 Arun Isaac <arunisaac@systemreboot.net>
 ;;; Copyright © 2016, 2017, 2018, 2020 Julien Lepiller <julien@lepiller.eu>
-;;; Copyright © 2016, 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2016–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2016, 2017 Thomas Danckaert <post@thomasdanckaert.be>
 ;;; Copyright © 2017 Carlo Zancanaro <carlo@zancanaro.id.au>
 ;;; Copyright © 2017 Frederick M. Muriithi <fredmanglis@gmail.com>
@@ -50,12 +50,13 @@
 ;;; Copyright © 2018 Mathieu Lirzin <mthl@gnu.org>
 ;;; Copyright © 2018 Adam Massmann <massmannak@gmail.com>
 ;;; Copyright © 2016, 2018 Tomáš Čech <sleep_walker@gnu.org>
-;;; Copyright © 2018, 2019, 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;; 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, 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2018 Luther Thompson <lutheroto@gmail.com>
 ;;; Copyright © 2018 Vagrant Cascadian <vagrant@debian.org>
+;;; Copyright © 2015, 2018 Pjotr Prins <pjotr.guix@thebird.nl>
 ;;; Copyright © 2019, 2020 Brett Gilio <brettg@gnu.org>
 ;;; Copyright © 2019 Sam <smbaines8@gmail.com>
 ;;; Copyright © 2019 Jack Hill <jackhill@jackhill.us>
@@ -83,6 +84,16 @@
 ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
 ;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
 ;;; Copyright © 2020 Guy Fleury Iteriteka <gfleury@disroot.org>
+;;; Copyright © 2020 Hendursaga <hendursaga@yahoo.com>
+;;; Copyright © 2020 Malte Frank Gerdes <malte.f.gerdes@gmail.com>
+;;; Copyright © 2020 Joseph LaFreniere <joseph@lafreniere.xyz>
+;;; Copyright © 2020 Tim Gesthuizen <tim.gesthuizen@yahoo.de>
+;;; Copyright © 2020 Bonface Munyoki Kilyungi <bonfacemunyoki@gmail.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 © 2019 Kristian Trandem <kristian@devup.no>
+;;; Copyright © 2020 Zheng Junjie <873216071@qq.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -104,6 +115,7 @@
   #:use-module (gnu packages)
   #:use-module (gnu packages algebra)
   #:use-module (gnu packages adns)
+  #:use-module (gnu packages aidc)
   #:use-module (gnu packages attr)
   #:use-module (gnu packages backup)
   #:use-module (gnu packages bash)
@@ -113,6 +125,8 @@
   #:use-module (gnu packages crypto)
   #:use-module (gnu packages databases)
   #:use-module (gnu packages dbm)
+  #:use-module (gnu packages djvu)
+  #:use-module (gnu packages docker)
   #:use-module (gnu packages enchant)
   #:use-module (gnu packages file)
   #:use-module (gnu packages fontutils)
@@ -122,17 +136,19 @@
   #:use-module (gnu packages gl)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
+  #:use-module (gnu packages gnupg)
   #:use-module (gnu packages graphviz)
   #:use-module (gnu packages graphics)
   #:use-module (gnu packages gsasl)
   #:use-module (gnu packages gstreamer)
   #:use-module (gnu packages gtk)
+  #:use-module (gnu packages haskell-xyz)
   #:use-module (gnu packages icu4c)
   #:use-module (gnu packages image)
-  #:use-module (gnu packages imagemagick)
   #:use-module (gnu packages kerberos)
   #:use-module (gnu packages libevent)
   #:use-module (gnu packages libffi)
+  #:use-module (gnu packages libidn)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages llvm)
   #:use-module (gnu packages man)
@@ -143,6 +159,7 @@
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages openstack)
   #:use-module (gnu packages pcre)
+  #:use-module (gnu packages pdf)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages photo)
   #:use-module (gnu packages pkg-config)
@@ -153,12 +170,14 @@
   #:use-module (gnu packages python-science)
   #:use-module (gnu packages python-web)
   #:use-module (gnu packages qt)
+  #:use-module (gnu packages rdf)
   #:use-module (gnu packages readline)
   #:use-module (gnu packages sdl)
   #:use-module (gnu packages search)
   #:use-module (gnu packages shells)
   #:use-module (gnu packages sphinx)
   #:use-module (gnu packages ssh)
+  #:use-module (gnu packages swig)
   #:use-module (gnu packages terminals)
   #:use-module (gnu packages tex)
   #:use-module (gnu packages texinfo)
@@ -168,6 +187,7 @@
   #:use-module (gnu packages version-control)
   #:use-module (gnu packages video)
   #:use-module (gnu packages web)
+  #:use-module (gnu packages wxwidgets)
   #:use-module (gnu packages base)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg)
@@ -187,6 +207,52 @@
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-26))
 
+(define-public python-slixmpp
+  (package
+    (name "python-slixmpp")
+    (version "1.5.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://lab.louiz.org/poezio/slixmpp.git")
+         (commit
+          (string-append "slix-" version))))
+       (file-name
+        (git-file-name name version))
+       (sha256
+        (base32 "15mqxcws14bjvh5jcfwl86zsvrymkdw3ya07vb44md7vfnsnclwx"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch
+           (lambda _
+             (substitute* "setup.py"
+               (("'CC', 'cc'")
+                "'CC', 'gcc'"))
+             #t)))))
+    (native-inputs
+     `(("cython" ,python-cython)
+       ("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)))
+    (inputs
+     `(("libidn" ,libidn)
+       ("python" ,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
+socket handling, the timers, the events dispatching) in order to remove all
+threads.")
+    (home-page "https://lab.louiz.org/poezio/slixmpp")
+    (license license:expat)))
+
 (define-public python-tenacity
   (package
     (name "python-tenacity")
@@ -217,6 +283,39 @@
 task of adding retry behavior to just about anything.")
     (license license:asl2.0)))
 
+(define-public python-pytelegrambotapi
+  (package
+    (name "python-pytelegrambotapi")
+    (version "3.7.4")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/eternnoir/pyTelegramBotAPI")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0r7g5zs0fk3g2dxvbpl0pi730x7r2kalrhn30fs0pvc15a59fmxz"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (with-directory-excursion "tests"
+                 (invoke "py.test")))
+             #t)))))
+    (propagated-inputs
+     `(("python-requests" ,python-requests)))
+    (native-inputs
+     `(("python-pytest" ,python-pytest)))
+    (home-page "https://github.com/eternnoir/pyTelegramBotAPI")
+    (synopsis "Python Telegram bot api")
+    (description "This package provides a simple, but extensible Python
+implementation for the Telegram Bot API.")
+    (license license:gpl2)))
+
 (define-public python-colorlog
   (package
     (name "python-colorlog")
@@ -457,14 +556,20 @@ pidof, tty, taskset, pmap.")
 (define-public python-shapely
   (package
     (name "python-shapely")
-    (version "1.6.4.post2")
+    (version "1.7.1")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "Shapely" version))
        (sha256
         (base32
-         "03r42fmd9alp6r3q95ad6rldq2f7n1wimrw53zy5kpn33yv7pf64"))))
+         "0adiz4jwmwxk7k1awqifb1a9bj5x4nx4gglb5dz9liam21674h8n"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin
+           (delete-file "shapely/speedups/_speedups.c")
+           (delete-file "shapely/vectorized/_vectorized.c")
+           #t))))
     (build-system python-build-system)
     (native-inputs
      `(("python-cython" ,python-cython)
@@ -483,12 +588,15 @@ pidof, tty, taskset, pmap.")
              (let ((geos (assoc-ref inputs "geos"))
                    (glibc (assoc-ref inputs ,(if (%current-target-system)
                                                  "cross-libc" "libc"))))
-               (substitute* "shapely/geos.py"
+               (substitute* '("shapely/geos.py" "shapely/_buildcfg.py")
                  (("_lgeos = load_dll\\('geos_c', fallbacks=.*\\)")
                   (string-append "_lgeos = load_dll('geos_c', fallbacks=['"
                                  geos "/lib/libgeos_c.so'])"))
                  (("free = load_dll\\('c'\\)\\.free")
                   (string-append "free = load_dll('c', fallbacks=['"
+                                 glibc "/lib/libc.so.6']).free"))
+                 (("free = load_dll\\('c', fallbacks=.*\\)\\.free")
+                  (string-append "free = load_dll('c', fallbacks=['"
                                  glibc "/lib/libc.so.6']).free"))))
              #t)))))
     (home-page "https://github.com/Toblerity/Shapely")
@@ -614,18 +722,6 @@ etc. ")
 (define-public python2-babel
   (package-with-python2 python-babel))
 
-;; Sphinx < 2.0 requires this version.  Remove once no longer needed.
-(define-public python2-babel-2.6
-  (package
-    (inherit python2-babel)
-    (version "2.6.0")
-    (source (origin
-              (method url-fetch)
-              (uri (pypi-uri "Babel" version))
-              (sha256
-               (base32
-                "08rxmbx2s4irp0w0gmn498vns5xy0fagm0fg33xa772jiks51flc"))))))
-
 (define-public python2-backport-ssl-match-hostname
   (package
     (name "python2-backport-ssl-match-hostname")
@@ -893,19 +989,16 @@ to users of that module.")
     ;; by the Expat license.
     (license (list license:isc license:expat))))
 
-(define-public python2-netcdf4
-  (package-with-python2 python-netcdf4))
-
 (define-public python-license-expression
   (package
     (name "python-license-expression")
-    (version "0.999")
+    (version "1.2")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "license-expression" version))
        (sha256
-        (base32 "08ppb0bxbrsxazy88sgpl9yffvdsabw6dkk1nc332wcz2mphwwyf"))))
+        (base32 "1g0sgphss8hbi1rpl4avy1nmbixmy9v194xdbvkjgl90vzgy2q3r"))))
     (build-system python-build-system)
     (propagated-inputs
      `(("python-boolean.py" ,python-boolean.py)))
@@ -1177,14 +1270,13 @@ language.  It aims to be fast.")
 (define-public python-aenum
   (package
     (name "python-aenum")
-    (version "2.2.3")
+    (version "2.2.4")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "aenum" version))
        (sha256
-        (base32
-         "1s3008rklv4n1kvmq6xdbdfyrpl0gf1rhqasmd27s5kwyjmlqcx4"))))
+        (base32 "0r1812bjm72x73pl7y4yhffr4zbdjgxa08avsy4b3di0pqgqv0l1"))))
     (build-system python-build-system)
     (arguments
      `(#:phases (modify-phases %standard-phases
@@ -1265,6 +1357,46 @@ abstractions to different hardware devices, and a suite of utilities for
 sending and receiving messages on a CAN bus.")
     (license license:lgpl3+)))
 
+(define-public python-caniusepython3
+  (package
+    (name "python-caniusepython3")
+    (version "7.2.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "caniusepython3" version))
+        (sha256
+          (base32
+            "0a755444ln38j8d7xb3yw0wzpd0mjrzfn6zqvsh06nw1vdaq4l28"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases (modify-phases %standard-phases
+                  (add-after 'unpack 'relax-requirements
+                    (lambda _
+                      (substitute* "setup.py"
+                        ;; These are for compatibility with Python 2.
+                        ((".*'argparse', 'backports.functools_lru_cache',.*")
+                         ""))
+                      (substitute* "dev_requirements.txt"
+                        ((".*pylint.*") "")) ;not actually required
+                      #t))
+                  (replace 'check
+                    (lambda _
+                      (invoke "py.test" "-k" "not NetworkTests"))))))
+    (propagated-inputs
+      `(("python-distlib" ,python-distlib)
+        ("python-packaging" ,python-packaging)
+        ("python-requests" ,python-requests)))
+    (native-inputs
+     `(("python-mock" ,python-mock)
+       ("python-pytest" ,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
+reports the Python 3-incompatible libraries it found.  It can also be used as
+a library.")
+    (license license:asl2.0)))
+
 (define-public python-diskcache
   (package
     (name "python-diskcache")
@@ -1504,6 +1636,43 @@ files are easily readable and they work nicely with version control systems.")
     ;; "fnmatch.py" and "ini.py" are licensed under psfl, the rest is bsd-2.
     (license (list license:bsd-2 license:psfl))))
 
+(define-public dosage
+  (package
+    (name "dosage")
+    (version "2.17")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "dosage" version))
+       (sha256
+        (base32
+         "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)))
+    (native-inputs
+     `(("python-pytest-cov" ,python-pytest-cov)
+       ("python-pytest-xdist" ,python-pytest-xdist)
+       ("python-responses" ,python-responses)
+       ("python-setuptools-scm" ,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
+picture-based content such as Picture of the Day sites.  With the @command{dosage}
+command-line script you can get the latest strip of a webcomic, catch-up to the last strip
+downloaded, or download a strip for a particular date or index, if possible.")
+    (license license:expat)))
+
 (define-public python-et-xmlfile
   (package
     (name "python-et-xmlfile")
@@ -1537,18 +1706,18 @@ of @code{xmlfile}.")
 (define-public python-openpyxl
   (package
     (name "python-openpyxl")
-    (version "2.6.2")
+    (version "3.0.5")
     (source
      (origin
        ;; We use the upstream repository, as the tests are not included in the
        ;; PyPI releases.
        (method hg-fetch)
        (uri (hg-reference
-             (url "https://bitbucket.org/openpyxl/openpyxl")
+             (url "https://foss.heptapod.net/openpyxl/openpyxl")
              (changeset version)))
        (file-name (string-append name "-" version "-checkout"))
        (sha256
-        (base32 "1qhij6kcvdxqjy4g6193nsv4q7fy8n4fwyd3c2z047idlm6s3j4w"))))
+        (base32 "0s6fgwwkcfz1bnrp5gjd4g2lcbl4a76147ylkrmkbabi2nf4xlli"))))
     (build-system python-build-system)
     (arguments
      `(#:phases (modify-phases %standard-phases
@@ -1568,8 +1737,25 @@ of @code{xmlfile}.")
     (description "This Python library allows reading and writing to the Excel XLSX, XLSM,
 XLTX and XLTM file formats that are defined by the Office Open XML (OOXML)
 standard.")
+    (properties  `((python2-variant . ,(delay python2-openpyxl))))
     (license license:expat)))
 
+(define-public python2-openpyxl
+  (let ((base (package-with-python2
+               (strip-python2-variant python-openpyxl))))
+    (package
+      (inherit base)
+      ;; This is the latest version that has python2 support
+      (version "2.6.4")
+      (source
+        (origin
+          (method url-fetch)
+          (uri (pypi-uri "openpyxl" version))
+          (sha256
+           (base32
+            "1qzjj8nwj4dn0mhq1j64f136afiqqb81lvqiikipz3g1g0b80lqx"))))
+      (arguments '(#:tests? #f)))))     ; No test suite.
+
 (define-public python-eventlet
   (package
     (name "python-eventlet")
@@ -1599,14 +1785,6 @@ 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)))
 
-(define-public python2-eventlet
-  (let ((base (package-with-python2
-                (strip-python2-variant python-eventlet))))
-    (package (inherit base)
-      (propagated-inputs
-       `(("python2-enum34" ,python2-enum34)
-         ,@(package-propagated-inputs base))))))
-
 (define-public python-six
   (package
     (name "python-six")
@@ -1677,6 +1855,32 @@ human-friendly syntax.")
 (define-public python2-schedule
   (package-with-python2 python-schedule))
 
+(define-public python-scour
+  (package
+    (name "python-scour")
+    (version "038.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/scour-project/scour")
+         (commit
+          (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0rgiypb9ig8x4rl3hfzpy7kwnx1q3064nvlrv4fk0dnp84girn0v"))))
+    (propagated-inputs
+     `(("python-six" ,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")
+    (description "The goal of Scour is to output a file that renderes
+identically at a fraction of the size by removing a lot of redundant
+information created by most SVG editors.  Optimization options are typically
+lossless but can be tweaked for more aggressive cleaning.")
+    (license license:asl2.0)))
+
 (define-public python-mechanize
   (package
     (name "python-mechanize")
@@ -1702,6 +1906,30 @@ after Andy Lester’s Perl module WWW::Mechanize.")
 (define-public python2-mechanize
   (package-with-python2 python-mechanize))
 
+(define-public python-simpleaudio
+  (package
+    (name "python-simpleaudio")
+    (version "1.0.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "simpleaudio" version))
+       (sha256
+        (base32
+         "07glihg0fpca0gvbbvqs9q815w8xhflzdvg72yvlsm23j9j8h739"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:tests? #f))
+    (inputs
+      `(("alsa-lib" ,alsa-lib)))
+    (home-page
+     "https://github.com/hamiltron/py-simple-audio")
+    (synopsis "Simple, asynchronous audio playback for Python 3")
+    (description
+     "The @code{simplaudio} package provides cross-platform, dependency-free
+audio playback capability for Python 3 on OSX, Windows, and Linux.")
+    (license license:expat))) ; MIT license
+
 (define-public python-simplejson
   (package
     (name "python-simplejson")
@@ -1979,14 +2207,14 @@ backported for previous versions of Python from 2.4 to 3.3.")
 (define-public python-parse
   (package
     (name "python-parse")
-    (version "1.8.4")
+    (version "1.18.0")
     (source
      (origin
       (method url-fetch)
       (uri (pypi-uri "parse" version))
       (sha256
        (base32
-        "0f8997xr8nq2nq35iiviq8ningd1zvy59fg503xfpbi2dwhgdkf3"))))
+        "19063x4xdjpaf7rfxai6jpgm2k4yvkq7wha8aa8cagbjsqr60rli"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -2248,6 +2476,18 @@ server.")
 code introspection, and logging.")
     (license license:expat)))
 
+(define-public python-py-next
+  (package
+    (inherit python-py)
+    (version "1.9.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "py" version))
+       (sha256
+        (base32
+         "0hpk0gzd4v1pcnq7zinwg5n219czi23qghcswykqskkbwly8i9lw"))))))
+
 (define-public python2-py
   (package-with-python2 python-py))
 
@@ -2819,9 +3059,6 @@ of state and cooperation between execution units, which makes it
 easier to build concurrent applications.")
     (license license:asl2.0)))
 
-(define-public python2-pykka
-  (package-with-python2 python-pykka))
-
 (define-public python-pymsgbox
   (package
     (name "python-pymsgbox")
@@ -2967,14 +3204,14 @@ e.g. filters, callbacks and errbacks can all be promises.")
 (define-public python-virtualenv
   (package
     (name "python-virtualenv")
-    (version "20.0.10")
+    (version "20.2.1")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "virtualenv" version))
        (sha256
         (base32
-         "0y6x41l3ja891993i4adylbbyly0r4m52n2d0a0y9y4h3lzyh4l5"))))
+         "1rd6wmymsgv0cdsn50jwybcvbbslzym3mzffcjbl42l8br9cgap0"))))
     (build-system python-build-system)
     (native-inputs
      `(("python-mock" ,python-mock)
@@ -2987,7 +3224,7 @@ e.g. filters, callbacks and errbacks can all be promises.")
        ("python-setuptools-scm" ,python-setuptools-scm)))
     (propagated-inputs
      `(("python-appdirs" ,python-appdirs)
-       ("python-distlib" ,python-distlib)
+       ("python-distlib" ,python-distlib/next)
        ("python-filelock" ,python-filelock)
        ("python-six" ,python-six)
        ("python-importlib-metadata" ,python-importlib-metadata)))
@@ -3292,8 +3529,11 @@ structure for Python.")
     (synopsis "Python Documentation Utilities")
     (description
      "Docutils is a modular system for processing documentation into useful
-formats, such as HTML, XML, and LaTeX.  For input Docutils supports
-reStructuredText.")
+formats, such as HTML, XML, and LaTeX.  It uses @dfn{reStructuredText}, an
+easy to use markup language, for input.
+
+This package provides tools for converting @file{.rst} files to other formats
+via commands such as @command{rst2man}, as well as supporting Python code.")
     ;; Most of the source code is public domain, but some source files are
     ;; licensed under the PFSL, BSD 2-clause, and GPLv3+ licenses.
     (license (list license:public-domain license:psfl license:bsd-2 license:gpl3+))))
@@ -3387,14 +3627,14 @@ text styles of documentation.")
 (define-public python-pygments
   (package
     (name "python-pygments")
-    (version "2.5.2")
+    (version "2.6.1")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "Pygments" version))
        (sha256
         (base32
-         "1zmhnswy0wxfn0xprs9aqsvx2c3kmzfn2wx14q8cv3vpkxdamj4q"))))
+         "0i4gnd4q0mgkq0dp5wymn7ca8zjd8fgp63139svs6jf2c6h48wv4"))))
     (build-system python-build-system)
     (arguments
      ;; FIXME: Tests require sphinx, which depends on this.
@@ -3403,10 +3643,21 @@ text styles of documentation.")
     (synopsis "Syntax highlighting")
     (description
      "Pygments is a syntax highlighting package written in Python.")
-    (license license:bsd-2)))
+    (license license:bsd-2)
+    (properties `((python2-variant . ,(delay python2-pygments))))))
 
+;; Pygments 2.6 and later does not support Python 2.
 (define-public python2-pygments
-  (package-with-python2 python-pygments))
+  (let ((base (package-with-python2 (strip-python2-variant python-pygments))))
+    (package
+      (inherit base)
+      (version "2.5.2")
+      (source (origin
+                (method url-fetch)
+                (uri (pypi-uri "Pygments" version))
+                (sha256
+                 (base32
+                  "1zmhnswy0wxfn0xprs9aqsvx2c3kmzfn2wx14q8cv3vpkxdamj4q")))))))
 
 (define-public python-bumpversion
   (package
@@ -3531,7 +3782,7 @@ ecosystem, but can naturally be used also by other projects.")
 (define-public python-robotframework
   (package
     (name "python-robotframework")
-    (version "3.1.2")
+    (version "3.2.2")
     ;; There are no tests in the PyPI archive.
     (source
      (origin
@@ -3541,9 +3792,9 @@ ecosystem, but can naturally be used also by other projects.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "16gnxy0qinh8fhs0qvhff5z2xh49c3cqgm0d7bfjw120df6x7fym"))
+        (base32 "0if0h3myb9m3hgmn1phrhq8pfp89kfqsaq32vmfdjkyjdj7y59ds"))
        (patches (search-patches
-                 "python-robotframework-honor-source-date-epoch.patch"))))
+                 "python-robotframework-source-date-epoch.patch"))))
     (build-system python-build-system)
     (arguments
      `(#:phases (modify-phases %standard-phases
@@ -3558,12 +3809,23 @@ ecosystem, but can naturally be used also by other projects.")
                                           (string-append doc "/libraries"))
                         #t)))
                   (replace 'check
-                    (lambda _
+                    (lambda* (#:key inputs #:allow-other-keys)
+                      ;; Some tests require timezone data.  Otherwise, they
+                      ;; look up /etc/localtime, which doesn't exist, and fail
+                      ;; with:
+                      ;;
+                      ;; OverflowError: mktime argument out of range
+                      (setenv "TZDIR"
+                              (string-append (assoc-ref inputs "tzdata")
+                                             "/share/zoneinfo"))
+                      (setenv "TZ" "Europe/Paris")
+
                       (invoke "python" "utest/run.py"))))))
     (native-inputs
      `(("python-invoke" ,python-invoke)
        ("python-rellu" ,python-rellu)
-       ("python:tk" ,python "tk")))     ;used when building the HTML doc
+       ("python:tk" ,python "tk")             ;used when building the HTML doc
+       ("tzdata" ,tzdata-for-tests)))
     (outputs '("out" "doc"))
     (home-page "https://robotframework.org")
     (synopsis "Generic automation framework")
@@ -3577,11 +3839,12 @@ process automation (RPA).")
   ;; to the 0.9 stable release available from PyPI.  The tests are not
   ;; included in the PyPI archive, so we fetch the sources from the upstream
   ;; Git repo.
-  (let ((commit "e851879bab1f63e4e53b34a4dc8a67ed95102830")
-        (revision "1"))
+  (let ((commit "b0619ac58a8b1be125f9c98856a664594614570f")
+        (revision "0"))
     (package
       (name "python-robotframework-lint")
-      (version (git-version "0.9.0" revision commit))
+      (version (git-version "1.1"      ;version taken from 'rflint/version.py'
+                            revision commit))
       (source
        (origin
          (method git-fetch)
@@ -3591,7 +3854,7 @@ process automation (RPA).")
          (file-name (git-file-name name version))
          (sha256
           (base32
-           "1p6fknqg5sb9qz5857ji4a877657vgfjm5v3zn45994parx6ml1m"))))
+           "180npmvzqync25b2scs878gv8q4y17dsinxyjcc10bw22msfap6b"))))
       (build-system python-build-system)
       (arguments
        `(#:phases
@@ -3693,14 +3956,13 @@ outside the standard library.")
 (define-public python-scp
   (package
     (name "python-scp")
-    (version "0.13.2")
+    (version "0.13.3")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "scp" version))
        (sha256
-        (base32
-         "1crlpw9lnn58fs1c1rmh7s7s9y5gkgpgjsqlvg9qa51kq1knx7gg"))))
+        (base32 "1m2v09m407p097cy3xy5rxicqfzrqjwf8v5rd4qhfqkk7lllimwb"))))
     (build-system python-build-system)
     (arguments
      '(#:tests? #f))                     ;tests require an SSH server
@@ -3742,6 +4004,30 @@ augment the changelog, but it can be used for other documents, too.")
 (define-public python2-rst.linker
   (package-with-python2 python-rst.linker))
 
+(define-public python-sshpubkeys
+  (package
+    (name "python-sshpubkeys")
+    (version "3.1.0")
+    (home-page "https://github.com/ojarva/python-sshpubkeys")
+    (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
+                "1h4gwmcfn84kkqh83km1vfz8sc5kr2g4gzgzmr8gz704jmqiv7nq"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-cryptography" ,python-cryptography)
+       ("python-ecdsa" ,python-ecdsa)))
+    (synopsis "OpenSSH public key parser")
+    (description
+     "This package provides a library for parsing and validating OpenSSH
+public key files.")
+    (license license:bsd-3)))
+
 (define-public python-feedgenerator
   (package
     (name "python-feedgenerator")
@@ -3800,19 +4086,19 @@ Language (TOML) configuration files.")
 (define-public python-jsonrpc-server
   (package
     (name "python-jsonrpc-server")
-    (version "0.3.4")
+    (version "0.4.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "python-jsonrpc-server" version))
        (sha256
         (base32
-         "0dzya99nbi4mw7q85vmyw1wfgbx5dpmysnvm0bwx5m4xbi4zafy7"))))
+         "1585ybn3djvx5r5zbxkzlhz2wb1d47y4wrfwaxdyq0gi87jl7ib2"))))
     (build-system python-build-system)
     (propagated-inputs
      `(("python-mock" ,python-mock)
        ("python-pytest" ,python-pytest)
-       ("python-ujson" ,python-ujson-1)))
+       ("python-ujson" ,python-ujson)))
     (home-page
      "https://github.com/palantir/python-jsonrpc-server")
     (synopsis "JSON RPC 2.0 server library")
@@ -3883,28 +4169,39 @@ Server (PLS).")
 (define-public python-language-server
   (package
     (name "python-language-server")
-    (version "0.34.1")
+    (version "0.36.2")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "python-language-server" version))
        (sha256
         (base32
-         "0gfjjlj7yg2nf8wkbrshwaljkwlqja4n7s1x949f495anmkg8vxr"))))
+         "1c0pnk2aibfhfaanrs0a5gkabkvz81gj20z7r0152b7fcx5ci14r"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-pluggy" ,python-pluggy)
-       ("python-jsonrpc-server" ,python-jsonrpc-server)
-       ("python-jedi" ,python-jedi)
-       ("python-yapf" ,python-yapf)
-       ("python-pyflakes" ,python-pyflakes)
+     `(("python-autopep8" ,python-autopep8)
+       ("python-configparser" ,python-configparser)
        ("python-pydocstyle" ,python-pydocstyle)
+       ("python-future" ,python-future)
+       ("python-jedi" ,python-jedi)
+       ("python-jsonrpc-server" ,python-jsonrpc-server)
+       ("python-pluggy" ,python-pluggy)
        ("python-pycodestyle" ,python-pycodestyle)
-       ("python-mccabe" ,python-mccabe)
+       ("python-pyflakes" ,python-pyflakes)
        ("python-rope" ,python-rope)
-       ("python-autopep8" ,python-autopep8)
-       ("python-flake8" ,python-flake8)
-       ("python-pylint" ,python-pylint)))
+       ("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)))
     (home-page "https://github.com/palantir/python-language-server")
     (synopsis "Python implementation of the Language Server Protocol")
     (description
@@ -3936,14 +4233,14 @@ matching of file paths.")
 (define-public python-black
   (package
     (name "python-black")
-    (version "19.10b0")
+    (version "20.8b1")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "black" version))
        (sha256
         (base32
-         "0f8mr0yzj78q1dx7v6ggbgfir2wv0n5z2shfbbvfdq7910xbgvf2"))))
+         "1spv6sldp3mcxr740dh3ywp25lly9s8qlvs946fin44rl1x5a0hw"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -3961,7 +4258,11 @@ matching of file paths.")
                                                   "")))))
              #t))
          (add-after 'unpack 'disable-broken-tests
-           (lambda _
+           (lambda* (#:key outputs inputs #:allow-other-keys)
+             ;; Make installed package available for running the tests
+             (setenv "PATH" (string-append (assoc-ref outputs "out") "/bin"
+                                           ":" (getenv "PATH")))
+
              ;; These tests are supposed to be skipped when the blackd
              ;; dependencies are missing, but this doesn't quite work.
              (substitute* "tests/test_black.py"
@@ -3975,15 +4276,21 @@ matching of file paths.")
              (substitute* "tests/test_black.py"
                (("( *)def test_self" match indent)
                 (string-append indent "@unittest.skip(\"guix\")\n" match)))
+
+             (substitute* "tests/test_black.py"
+               (("( *)def test_python38" match indent)
+                (string-append indent "@unittest.skip(\"guix\")\n" match)))
              #t)))))
     (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-typed-ast" ,python-typed-ast)
+       ("python-typing-extensions" ,python-typing-extensions)))
     (native-inputs
      `(("python-setuptools-scm" ,python-setuptools-scm)))
     (home-page "https://github.com/ambv/black")
@@ -3991,6 +4298,27 @@ matching of file paths.")
     (description "Black is the uncompromising Python code formatter.")
     (license license:expat)))
 
+(define-public python-black-macchiato
+  (package
+    (name "python-black-macchiato")
+    (version "1.3.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "black-macchiato" version))
+       (sha256
+        (base32
+         "1drp5p697ni1xn5y2lbjpalgpkzy2i4cyxjj5pk4dxr0vk97dd7i"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-black" ,python-black)))
+    (home-page "https://github.com/wbolster/black-macchiato")
+    (synopsis "Partial @code{python-black} formatting")
+    (description
+     "This package is built on top the @{python-black} code formatter to
+enable formatting of partial files.")
+    (license license:bsd-3)))
+
 (define-public python-blinker
   (package
     (name "python-blinker")
@@ -4083,14 +4411,14 @@ provides additional functionality on the produced Mallard documents.")
 (define-public python-cython
   (package
     (name "python-cython")
-    (version "0.29.17")
+    (version "0.29.21")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "Cython" version))
        (sha256
         (base32
-         "1wnaz40hdw4mg5acz5gqb6bhjhn4cvfxg0xdzfy7aa6qn665hqb3"))))
+         "1bcwpra7c6k30yvic3sw2v3rq2dr40ypc4zqif6kr52mpn4wnyp5"))))
     (build-system python-build-system)
     ;; we need the full python package and not just the python-wrapper
     ;; because we need libpython3.3m.so
@@ -4460,14 +4788,17 @@ color scales, and color space conversion easy.  It has support for:
        ("texinfo" ,texinfo)
        ("perl" ,perl)
        ("scipy-sphinx-theme"
-        ,(origin ; The build script expects scipy-sphinx-theme as a git submodule
-           (method git-fetch)
-           (uri (git-reference
-                 (url "https://github.com/scipy/scipy-sphinx-theme")
-                 (commit "c466764e2231ba132c09826b5b138fffa1cfcec3")))
-           (sha256
-            (base32
-             "0q2y87clwlsgc7wvlsn9pzyssybcq10plwhq2w1ydykfsyyqbmkl"))))
+        ,(let ((commit "c466764e2231ba132c09826b5b138fffa1cfcec3"))
+           (origin ;the build script expects scipy-sphinx-theme as a git submodule
+             (method git-fetch)
+             (uri (git-reference
+                   (url "https://github.com/scipy/scipy-sphinx-theme")
+                   (commit commit)))
+             (file-name (git-file-name "python-scipy-sphinx-theme"
+                                       (string-take commit 7)))
+             (sha256
+              (base32
+               "0q2y87clwlsgc7wvlsn9pzyssybcq10plwhq2w1ydykfsyyqbmkl")))))
        ,@(package-native-inputs python-numpy)))
     (arguments
      `(#:tests? #f ; we're only generating the documentation
@@ -4530,13 +4861,13 @@ color scales, and color space conversion easy.  It has support for:
 (define-public python-pygit2
   (package
     (name "python-pygit2")
-    (version "1.1.0")
+    (version "1.4.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "pygit2" version))
        (sha256
-        (base32 "1hs0pqqzn1yjxqk86nq7p0lvsklwnlyi5xwyzr7d5nrs19dmsjbg"))))
+        (base32 "1j71iskvirkm8jzfmwdm79v69878m9iix8a8cn4xidgr3nmkisyb"))))
     (build-system python-build-system)
     (arguments
      '(#:tests? #f))            ; tests don't run correctly in our environment
@@ -4573,6 +4904,25 @@ algorithm.  Patiencediff provides a good balance of performance, nice output for
 humans, and implementation simplicity.")
     (license license:gpl2)))
 
+(define-public python-pdftotext
+  (package
+    (name "python-pdftotext")
+    (version "2.1.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "pdftotext" version))
+       (sha256
+        (base32
+         "19la1cw1hmkcr8big04gm2dd5fw0y0z97g930aiy29s1gaqbiblq"))))
+    (build-system python-build-system)
+    (inputs
+     `(("poppler" ,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
   (package
     (name "python-pyparsing")
@@ -4617,6 +4967,17 @@ that client code uses to construct the grammar directly in Python code.")
 (define-public python2-pyparsing
   (package-with-python2 python-pyparsing))
 
+(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 python-numpydoc
   (package
     (name "python-numpydoc")
@@ -4767,7 +5128,6 @@ convert between colorspaces like sRGB, XYZ, CIEL*a*b*, CIECAM02, CAM02-UCS, etc.
        ("python-cairocffi" ,python-cairocffi)))
     (inputs
      `(("libpng" ,libpng)
-       ("imagemagick" ,imagemagick)
        ("freetype" ,freetype)
        ("cairo" ,cairo)
        ("glib" ,glib)
@@ -4842,6 +5202,9 @@ convert between colorspaces like sRGB, XYZ, CIEL*a*b*, CIECAM02, CAM02-UCS, etc.
                ;; has not effect.
                (setenv "LD_LIBRARY_PATH" (string-append cairo "/lib"))
                (setenv "HOME" (getcwd))
+               ;; Fix rounding errors when using the x87 FPU.
+               (when (string-prefix? "i686" ,(%current-system))
+                 (setenv "CFLAGS" "-ffloat-store"))
                (call-with-output-file "setup.cfg"
                  (lambda (port)
                    (format port "[directories]~%
@@ -5320,6 +5683,19 @@ relate to packaging and distribution of Python software.  It is intended to be
 used as the basis for third-party packaging tools.")
     (license license:psfl)))
 
+;; TODO: Merge with 'python-distlib' on the next rebuild cycle.
+(define-public python-distlib/next
+  (package
+    (inherit python-distlib)
+    (version "0.3.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "distlib" version ".zip"))
+       (sha256
+        (base32
+         "1wdzv7fsjhrkhh1wfkarlhcwa8m00mgcpdsvknmf2qy8f9l13xpd"))))))
+
 (define-public python-distutils-extra
   (package
     (name "python-distutils-extra")
@@ -5401,14 +5777,14 @@ the OleFileIO module from PIL, the Python Image Library.")
 (define-public python-pillow
   (package
     (name "python-pillow")
-    (version "6.2.1")
+    (version "8.0.1")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "Pillow" version))
        (sha256
         (base32
-         "1c8wkzc58f5wdh006jvmwdk3wxld1xgagcbdvj7iv17qi0m9fkmz"))))
+         "17pv0flaqqfld9m4lz8ayxyqb11gbbmr7w04mw4ar79cn3lwdi8i"))))
     (build-system python-build-system)
     (native-inputs
      `(("python-pytest" ,python-pytest)))
@@ -5448,12 +5824,24 @@ efficient internal representation, and fairly powerful image processing
 capabilities.  The core image library is designed for fast access to data
 stored in a few basic pixel formats.  It should provide a solid foundation for
 a general image processing tool.")
+    (properties `((python2-variant . ,(delay python2-pillow))))
     (license (license:x11-style
               "http://www.pythonware.com/products/pil/license.htm"
               "The PIL Software License"))))
 
 (define-public python2-pillow
-  (package-with-python2 python-pillow))
+  (package-with-python2
+   (package
+     (inherit (strip-python2-variant python-pillow))
+     ;; Version 6 is the last series with Python 2 support.
+     (version "6.2.2")
+     (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "Pillow" version))
+        (sha256
+         (base32
+          "0l5rv8jkdrb5q846v60v03mcq64yrhklidjkgwv6s1pda71g17yv")))))))
 
 (define-public python-pillow-2.9
   (package
@@ -5627,6 +6015,28 @@ a front-end for C compilers or analysis tools.")
 (define-public python2-pycparser
   (package-with-python2 python-pycparser))
 
+(define-public python-xlsxwriter
+  (package
+    (name "python-xlsxwriter")
+    (version "1.3.7")
+    (source
+     (origin
+       ;; There are no tests in the PyPI tarball.
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/jmcnamara/XlsxWriter")
+             (commit (string-append "RELEASE_" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1qg40r2mwrqfmhaxnary1cfgi0dwwazp5qga7c9p2cdji2v0x5rm"))))
+    (build-system python-build-system)
+    (home-page "https://github.com/jmcnamara/XlsxWriter")
+    (synopsis "Python module for creating Excel XLSX files")
+    (description
+     "XlsxWriter is a Python module that can be used to write text, numbers,
+formulas and hyperlinks to multiple worksheets in an Excel 2007+ XLSX file.")
+    (license license:bsd-2)))
+
 (define-public python-pywavelets
   (package
     (name "python-pywavelets")
@@ -5746,59 +6156,70 @@ support for Python 3 and PyPy.  It is based on cffi.")
 (define-public python-cairocffi
   (package
     (name "python-cairocffi")
-    (version "0.9.0")
+    (version "1.2.0")
     (source
      (origin
-      (method url-fetch)
-      (uri (pypi-uri "cairocffi" version))
-      (sha256
-       (base32
-        "0dq3k4zhqd8cwsf3nyjqvjqm8wkvrjn1wjf44rl3v0h8kqx6qf0m"))
-      (patches (search-patches "python-cairocffi-dlopen-path.patch"))))
+       ;; The PyPI archive does not include the documentation, so use Git.
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/Kozea/cairocffi")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1ypw0c2lr43acn57hbmckk183zq4h477j7p4ig2zjvw0mcpvia50"))))
     (build-system python-build-system)
     (outputs '("out" "doc"))
     (inputs
      `(("glib" ,glib)
        ("gtk+" ,gtk+)
        ("gdk-pixbuf" ,gdk-pixbuf)
-       ("cairo" ,cairo)
-       ("pango" ,pango)))
+       ("cairo" ,cairo)))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
+     `(("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-docutils" ,python-docutils)))
+       ("python-sphinx-rtd-theme" ,python-sphinx-rtd-theme)))
     (propagated-inputs
      `(("python-xcffib" ,python-xcffib))) ; used at run time
     (arguments
      `(#:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'patch-paths
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (substitute* (find-files "." "\\.py$")
-              (("dlopen\\(ffi, 'cairo'")
-               (string-append "dlopen(ffi, '" (assoc-ref inputs "cairo")
-                              "/lib/libcairo.so.2'"))
-              (("dlopen\\(ffi, 'gdk-3'")
-               (string-append "dlopen(ffi, '" (assoc-ref inputs "gtk+")
-                              "/lib/libgtk-3.so.0'"))
-              (("dlopen\\(ffi, 'gdk_pixbuf-2.0'")
-               (string-append "dlopen(ffi, '" (assoc-ref inputs "gdk-pixbuf")
-                              "/lib/libgdk_pixbuf-2.0.so.0'"))
-              (("dlopen\\(ffi, 'glib-2.0'")
-               (string-append "dlopen(ffi, '" (assoc-ref inputs "glib")
-                              "/lib/libglib-2.0.so.0'"))
-              (("dlopen\\(ffi, 'gobject-2.0'")
-               (string-append "dlopen(ffi, '" (assoc-ref inputs "glib")
-                              "/lib/libgobject-2.0.so.0'"))
-              (("dlopen\\(ffi, 'pangocairo-1.0'")
-               (string-append "dlopen(ffi, '" (assoc-ref inputs "pango")
-                              "/lib/libpangocairo-1.0.so.0'"))
-              (("dlopen\\(ffi, 'pango-1.0'")
-               (string-append "dlopen(ffi, '" (assoc-ref inputs "pango")
-                              "/lib/libpango-1.0.so.0'")))
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "cairocffi/__init__.py"
+               ;; Hack the dynamic library loading mechanism.
+               (("find_library\\(library_name\\)")
+                "\"found\"")
+               (("filenames = \\(library_filename,\\) \\+ filenames")
+                "pass")
+               (("libcairo.so.2")
+                (string-append (assoc-ref inputs "cairo")
+                               "/lib/libcairo.so.2")))
+             (substitute* "cairocffi/pixbuf.py"
+               (("libgdk_pixbuf-2.0.so.0")
+                (string-append (assoc-ref inputs "gdk-pixbuf")
+                               "/lib/libgdk_pixbuf-2.0.so.0"))
+               (("libgobject-2.0.so.0")
+                (string-append (assoc-ref inputs "glib")
+                               "/lib/libgobject-2.0.so.0"))
+               (("libglib-2.0.so.0")
+                (string-append (assoc-ref inputs "glib")
+                               "/lib/libglib-2.0.so.0"))
+               (("libgdk-3.so.0")
+                (string-append (assoc-ref inputs "gtk+")
+                               "/lib/libgdk-3.so.0")))
+             #t))
+         (add-after 'unpack 'disable-linters
+           ;; Their check fails; none of our business.
+           (lambda _
+             (substitute* "setup.cfg"
+               ((".*pytest-flake8.*") "")
+               ((".*pytest-isort.*") "")
+               (("--flake8") "")
+               (("--isort") ""))
              #t))
          (add-after 'install 'install-doc
            (lambda* (#:key inputs outputs #:allow-other-keys)
@@ -5813,7 +6234,7 @@ support for Python 3 and PyPy.  It is based on cffi.")
                (for-each (lambda (file)
                            (copy-file (string-append "." file)
                                       (string-append doc file)))
-                         '("/README.rst" "/CHANGES" "/LICENSE"))
+                         '("/README.rst" "/NEWS.rst"))
                (system* "python" "setup.py" "build_sphinx")
                (copy-recursively "docs/_build/html" html)
                #t))))))
@@ -5908,6 +6329,61 @@ memoizing PEG/Packrat parser in Python.")
 (define-public python2-grako
   (package-with-python2 python-grako))
 
+(define-public python-grandalf
+  (package
+    (name "python-grandalf")
+    (version "0.7")
+    (source
+     (origin
+       ;; There's no source tarball on PyPI.
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/bdcht/grandalf")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "03p8w8ljpb87qbyldm3s6b7qi30hfcn43h33iwlgqcf31fjsyr4g"))))
+    (build-system python-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda _
+             (invoke "python" "setup.py" "pytest"))))))
+    (native-inputs
+     `(("python-pytest" ,python-pytest)
+       ("python-pytest-runner" ,python-pytest-runner)))
+    (propagated-inputs
+     `(("python-numpy" ,python-numpy)
+       ("python-ply" ,python-ply)))
+    (home-page "https://github.com/bdcht/grandalf")
+    (synopsis "Graph and drawing algorithms framework")
+    (description
+     "Grandalf is a Python package made for experimentations with graphs
+drawing algorithms.  It is written in pure Python, and currently implements
+two layouts: the Sugiyama hierarchical layout and the force-driven or energy
+minimization approach.  While not as fast or featured as graphviz or other
+libraries like OGDF (C++), it provides a way to walk and draw graphs no larger
+than thousands of nodes, while keeping the source code simple enough to tweak
+and hack any part of it for experimental purpose.  With a total of about 1500
+lines of Python, the code involved in drawing the Sugiyama (dot) layout fits
+in less than 600 lines.  The energy minimization approach is comprised of only
+250 lines!
+
+Grandalf does only 2 not-so-simple things:
+@itemize
+@item computing the nodes (x,y) coordinates (based on provided nodes
+dimensions, and a chosen layout)
+@item routing the edges with lines or nurbs
+@end itemize
+
+It doesn’t depend on any GTK/Qt/whatever graphics toolkit.  This means that it
+will help you find where to draw things like nodes and edges, but it’s up to
+you to actually draw things with your favorite toolkit.")
+    ;; The user can choose either license.
+    (license (list license:gpl2 license:epl1.0))))
+
 (define-public python-gridmap
   (package
     (name "python-gridmap")
@@ -7232,13 +7708,13 @@ interfaces in an easy and portable manner.")
 (define-public python-networkx
   (package
     (name "python-networkx")
-    (version "2.4")
+    (version "2.5")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "networkx" version))
        (sha256
-        (base32 "0r2wr7aqay9fwjrgk35fkjzk8lvvb4i4df7ndaqzkr4ndw5zzx7q"))))
+        (base32 "00hnii2lplig2s324k1hvi29pyfab6z7i22922f67jgv4da9ay3r"))))
     (build-system python-build-system)
     (arguments
      '(#:phases (modify-phases %standard-phases
@@ -7428,15 +7904,17 @@ and statistical routines from scipy and statsmodels.")
 (define-public python-mpmath
   (package
   (name "python-mpmath")
-  (version "0.19")
+  (version "1.1.0")
   (source (origin
             (method url-fetch)
-            (uri (string-append "http://mpmath.org/files/mpmath-"
-                                version ".tar.gz"))
+            (uri (pypi-uri "mpmath" version))
+            (file-name (git-file-name name version))
             (sha256
              (base32
-              "08ijsr4ifrqv3cjc26mkw0dbvyygsa99in376hr4b96ddm1gdpb8"))))
+              "1xlrcja213jpfhw25q1jl5pl10w1a2cc68x1c4mkicxsbzhan5zw"))))
   (build-system python-build-system)
+  (native-inputs
+   `(("python-pytest" ,python-pytest)))
   (arguments
    '(#:phases
      (modify-phases %standard-phases
@@ -7480,27 +7958,22 @@ multiprecision arithmetic.")
 (define-public python-sympy
   (package
     (name "python-sympy")
-    (version "1.1.1")
+    (version "1.6.2")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append
-             "https://github.com/sympy/sympy/releases/download/sympy-"
-             version "/sympy-" version ".tar.gz"))
+       (uri (pypi-uri "sympy" version))
        (sha256
-        (base32 "190n29sppw7g8ihilc5451y7jlfcaw56crqiqbf1jff43dlmfnxc"))))
+        (base32 "0247skhkxanczpqqdz6n9k1axgpwl665b25hyn9vgr060p4dryhw"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
        (modify-phases %standard-phases
-         ;; Run the core tests after installation.  By default it would run
-         ;; *all* tests, which take a very long time to complete and are known
-         ;; to be flaky.
-         (delete 'check)
-         (add-after 'install 'check
+         (replace 'check
            (lambda* (#:key outputs #:allow-other-keys)
-             (invoke "python3" "-c" "import sympy; sympy.test(\"/core\")")
-             #t)))))
+             (invoke
+               (or (which "python3") (which "python"))
+               "-c" "import sympy; sympy.test(\"/core\")"))))))
     (propagated-inputs
      `(("python-mpmath" ,python-mpmath)))
     (home-page "https://www.sympy.org/")
@@ -7514,17 +7987,13 @@ as possible in order to be comprehensible and easily extensible.")
 (define-public python2-sympy
   (package
     (inherit (package-with-python2 python-sympy))
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         ;; Run the core tests after installation.  By default it would run
-         ;; *all* tests, which take a very long time to complete and are known
-         ;; to be flaky.
-         (delete 'check)
-         (add-after 'install 'check
-           (lambda* (#:key outputs #:allow-other-keys)
-             (invoke "python" "-c" "import sympy; sympy.test(\"/core\")")
-             #t)))))))
+    (version "1.5.1")  ; last release for python2
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "sympy" version))
+       (sha256
+        (base32 "0zjfbxlkazzh9z22gf62azrkipb2xw7mpzjz3wl1az9893bh2yfp"))))))
 
 (define-public python-q
   (package
@@ -7797,14 +8266,14 @@ PEP 8.")
 (define-public python-pep517
   (package
     (name "python-pep517")
-    (version "0.8.2")
+    (version "0.9.1")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "pep517" version))
         (sha256
          (base32
-          "17m2bcabx3sr5wjalgzppfx5xahqrwm12zq58h68mm482b7rjqcf"))))
+          "0zqidxah03qpnp6zkg3zd1kmd5f79hhdsfmlc0cldaniy80qddxf"))))
     (build-system python-build-system)
     (arguments
      '(#:phases
@@ -7865,27 +8334,6 @@ PEP 8.")
 (define-public python2-pyflakes
   (package-with-python2 python-pyflakes))
 
-;; Flake8 2.6 requires an older version of pyflakes.
-;; This should be removed ASAP.
-(define-public python-pyflakes-1.2
-  (package (inherit python-pyflakes)
-    (version "1.2.3")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (pypi-uri "pyflakes" version))
-       (sha256
-        (base32
-         "17hkw8yd44cr8fz13phy4aih3r5j2p7ild4zlvqdh2c8dmiinjif"))))
-    (arguments
-     '(#:phases
-       (modify-phases %standard-phases
-         ;; This one test fails.
-         (replace 'check
-           (lambda _ (invoke "pytest" "-vv" "-k" "not test_f_string"))))))
-    (native-inputs
-     `(("python-pytest" ,python-pytest)))))
-
 (define-public python-mccabe
   (package
     (name "python-mccabe")
@@ -7911,49 +8359,16 @@ complexity of Python source code.")
 (define-public python2-mccabe
   (package-with-python2 python-mccabe))
 
-(define-public python-mccabe-0.2.1
-  (package (inherit python-mccabe)
-    (version "0.2.1")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (pypi-uri "mccabe" version))
-        (sha256
-          (base32
-            "0fi4a81kr5bcv5p4xgibqr595hyj5dafkqgsmfk96mfy8w71fajs"))))))
-
-(define-public python2-mccabe-0.2.1
-  (package-with-python2 python-mccabe-0.2.1))
-
-;; Flake8 2.4.1 requires an older version of pep8.
-;; This should be removed ASAP.
-(define-public python-pep8-1.5.7
-  (package (inherit python-pep8)
-    (version "1.5.7")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (pypi-uri "pep8" version))
-       (sha256
-        (base32
-         "12b9bbdbwnspxgak14xg58c130x2n0blxzlms5jn2dszn8qj3d0m"))))
-    (arguments
-     ;; XXX Tests not compatible with Python 3.5.
-     '(#:tests? #f))))
-
-(define-public python2-pep8-1.5.7
-  (package-with-python2 python-pep8-1.5.7))
-
 (define-public python-flake8
   (package
     (name "python-flake8")
-    (version "3.8.3")
+    (version "3.8.4")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "flake8" version))
               (sha256
                (base32
-                "02527892hh0qjivxaiphzalj7q32qkna1cqaikjs7c03mk5ryjzh"))))
+                "0fvcrsbyzjpcli8ldbpsdbpmf238nkvwc1dy4hy82lf63rvfinma"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -7990,40 +8405,6 @@ complexity of Python source code.")
          ("python2-typing" ,python2-typing)
           ,@(package-propagated-inputs base))))))
 
-;; python-hacking requires flake8 <2.7.0.
-(define-public python-flake8-2.6
-  (package
-    (inherit python-flake8)
-    (version "2.6.2")
-    (source (origin
-              (method url-fetch)
-              (uri (pypi-uri "flake8" version))
-              (sha256
-               (base32
-                "0y57hzal0j84dh9i1g1g6dc4aywvrnhy2fjmmbglpv5ajihxh713"))))
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'use-later-pycodestyles
-           (lambda __
-             (substitute* '("flake8.egg-info/requires.txt"
-                            "setup.py")
-               (("pycodestyle >= 2.0, < 2.1")
-                "pycodestyle >= 2.0"))
-             #t))
-         (delete 'check)
-         (add-after 'install 'check
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (add-installed-pythonpath inputs outputs)
-             (invoke "pytest" "-v")
-             #t)))))
-    (propagated-inputs
-     `(("python-pep8" ,python-pep8)
-       ("python-pycodestyle" ,python-pycodestyle)
-       ("python-entrypoints" ,python-entrypoints)
-       ("python-pyflakes" ,python-pyflakes-1.2)
-       ("python-mccabe" ,python-mccabe)))))
-
 (define-public python-flake8-bugbear
   (package
     (name "python-flake8-bugbear")
@@ -8133,6 +8514,48 @@ expressions after the entire file has been read.  This enables support for
 first-class forward references that stub files use.")
     (license license:expat)))
 
+(define-public python-flake8-pie
+  (package
+    (name "python-flake8-pie")
+    (version "0.5.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "flake8-pie" version))
+       (sha256
+        (base32 "0kgipl5gljlp7aa7ykx15pswpzkd0d0qiznihb2z0d9a73181dyd"))))
+    (build-system python-build-system)
+    (home-page "https://github.com/sbdchd/flake8-pie")
+    (synopsis "Flake8 extension that implements lints")
+    (description
+     "This package provides a flake8 extension that implements miscellaneous
+lints.")
+    (license license:bsd-2)))
+
+(define-public python-autoflake
+  (package
+    (name "python-autoflake")
+    (version "1.3.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "autoflake" version))
+       (sha256
+        (base32 "0nzr057dbmgprp4a52ymafdkdd5zp2wcqf42913xc7hhvvdbj338"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-pyflakes" ,python-pyflakes)))
+    (home-page "https://github.com/myint/autoflake")
+    (synopsis "Removes unused imports and unused variables")
+    (description
+     "@code{autoflake} removes unused imports and unused variables from Python
+code as reported by @code{pyflakes}.
+
+By default, it only removes unused imports for modules that are part of the
+standard library.  Removal of unused variables is also disabled by default.
+It also removes useless @code{pass} statements.")
+    (license license:expat)))
+
 (define-public python-mistune
   (package
     (name "python-mistune")
@@ -8290,14 +8713,13 @@ output.")
 (define-public python-crashtest
   (package
     (name "python-crashtest")
-    (version "0.3.0")
+    (version "0.3.1")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "crashtest" version))
         (sha256
-          (base32
-            "056zzbznl3xfnbblfci8lvcam3h7k7va68vi6asrm4q0ck4nrh79"))))
+          (base32 "1p9p7mn8x2j9psc4jxab98897v4i9s4fliyfw8rp8v4bx1n7pjj2"))))
     (build-system python-build-system)
     (home-page "https://github.com/sdispater/crashtest")
     (synopsis "Manage Python errors with ease")
@@ -8410,16 +8832,36 @@ should be stored on various operating systems.")
 (define-public python2-appdirs
   (package-with-python2 python-appdirs))
 
+(define-public python-gorilla
+  (package
+    (name "python-gorilla")
+    (version "0.3.0")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "gorilla" version))
+              (sha256
+               (base32
+                "0b40blcp6fih4nvqbilra4qw1dfccv1ahjmr41ac4d9rjadqkcpy"))))
+    (build-system python-build-system)
+    (home-page "https://github.com/christophercrouzet/gorilla")
+    (synopsis "Convenient monkey patching with Python")
+    (description
+     "Gorilla is a Python library that provides a convenient approach to
+monkey patching.  Monkey patching is the process of modifying module and
+class attributes at runtime with the purpose of replacing or extending
+third-party code.")
+    (license license:expat)))
+
 (define-public python-llfuse
   (package
     (name "python-llfuse")
-    (version "1.3.6")
+    (version "1.3.8")
     (source (origin
               (method url-fetch)
-              (uri (pypi-uri "llfuse" version ".tar.bz2"))
+              (uri (pypi-uri "llfuse" version))
               (sha256
                (base32
-                "1j9fzxpgmb4rxxyl9jcf84zvznhgi3hnh4hg5vb0qaslxkvng8ii"))))
+                "1g2cdhdqrb6m7655qp61pn61pwj1ql61cdzhr2jvl3w4i8877ddr"))))
     (build-system python-build-system)
     (inputs
      `(("fuse" ,fuse)
@@ -8438,22 +8880,6 @@ should be stored on various operating systems.")
                  (strip-python2-variant python-llfuse)))
     (propagated-inputs `(("python2-contextlib2" ,python2-contextlib2)))))
 
-;; For attic-0.16
-(define-public python-llfuse-0.41
-  (package (inherit python-llfuse)
-    (version "0.41.1")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "https://bitbucket.org/nikratio/python-llfuse/downloads/"
-                    "llfuse-" version ".tar.bz2"))
-              (sha256
-               (base32
-                "1imlqw9b73086y97izr036f58pgc5akv4ihc2rrf8j5h75jbrlaa"))))
-    ;; Python-LLFUSE < 0.42 includes underscore.js, which is MIT (expat)
-    ;; licensed.  The rest of the package is licensed under LGPL2.0 or later.
-    (license (list license:expat license:lgpl2.0+))))
-
 (define-public python-msgpack
   (package
     (name "python-msgpack")
@@ -8606,6 +9032,32 @@ Supported netlink families and protocols include:
 (define-public python2-wrapt
   (package-with-python2 python-wrapt))
 
+(define-public python-commonmark
+  (package
+    (name "python-commonmark")
+    (version "0.9.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "commonmark" version))
+       (sha256
+        (base32 "0q7d39lm8kcingpmykk5r959hrwwj6v2icyw3mihczxyb749sbs5"))))
+    (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 "python" "setup.py" "test"))))))
+    (home-page "https://github.com/readthedocs/commonmark.py")
+    (synopsis "Python parser for the CommonMark Markdown spec")
+    (description
+     "This module is a pure Python port of jgm's @code{commonmark.js}, a
+Markdown parser and renderer for the CommonMark specification, using only
+native modules.")
+    (license license:bsd-3)))
+
 (define-public python-xlrd
   (package
     (name "python-xlrd")
@@ -8989,14 +9441,14 @@ versions of Python.")
 (define-public python-idna
   (package
     (name "python-idna")
-    (version "2.9")
+    (version "2.10")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "idna" version))
        (sha256
         (base32
-         "1jxp2pdi8y4asi7ka1zhx3yx09kv8kzj533f0ds7viz49b0x323m"))))
+         "1xmk3s92d2vq42684p61wixfmh3qpr2mw762w0n6662vhlpqf1xk"))))
     (build-system python-build-system)
     (home-page "https://github.com/kjd/idna")
     (synopsis "Internationalized domain names in applications")
@@ -9027,7 +9479,7 @@ specification.")
 (define-public python-libsass
   (package
     (name "python-libsass")
-    (version "0.20.0")
+    (version "0.20.1")
     (source
      (origin
        ;; PyPI tarball is missing some test files.
@@ -9037,7 +9489,7 @@ specification.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0h9rj4k9izkfdvli8ip72bbvh6a7bvrv5pxz6zay2bq235gpfgfc"))))
+        (base32 "1r0kgl7i6nnhgjl44sjw57k08gh2qr7l8slqih550dyxbf1akbxh"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -9050,10 +9502,7 @@ specification.")
          (replace 'check
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (add-installed-pythonpath inputs outputs)
-             (invoke "pytest" "sasstests.py" "-k"
-                     ;; See https://github.com/sass/libsass/issues/3092.
-                     ;; This test may work in a future release of libsass.
-                     "not test_stack_trace_formatting"))))))
+             (invoke "pytest" "sasstests.py"))))))
     (native-inputs
      `(("python-pytest" ,python-pytest)
        ("python-werkzeug" ,python-werkzeug)))
@@ -9115,14 +9564,14 @@ responses, rather than doing any computation.")
 (define-public python-pip
   (package
     (name "python-pip")
-    (version "20.0.2")
+    (version "20.2.4")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "pip" version))
        (sha256
         (base32
-         "0zwnlsjn6mb742cr995zfbk9v56ygxp8w3k49601r9by9kmcic3x"))))
+         "18b4qcijwivvkj1g0hs4w8zjbks0bjzdjcrqybnhmyx0gs2rmjc5"))))
     (build-system python-build-system)
     (arguments
      '(#:tests? #f))          ; there are no tests in the pypi archive.
@@ -9290,10 +9739,14 @@ Python's @code{ctypes} foreign function interface (FFI).")
     (native-inputs (if (%current-target-system)
                        `(("self" ,this-package))
                        '()))
-    (synopsis "Python bindings to the libmagic file type guesser.  Note that
-this module and the python-magic module both provide a \"magic.py\" file;
-these two modules, which are different and were developed separately, both
-serve the same purpose: provide Python bindings for libmagic.")))
+    (synopsis "Python bindings to the libmagic file type guesser")
+    (description "This package provides Python bindings to the libmagic file
+type guesser.
+
+Note that this module and the @code{python-magic} module both provide a
+@file{magic.py} file; these two modules, which are different and were
+developed separately, both serve the same purpose: provide Python bindings for
+libmagic.")))
 
 (define-public python2-file
   (package-with-python2 python-file))
@@ -9462,6 +9915,64 @@ functions to find and load entry points.")
 from elisp.")
     (license license:gpl3)))
 
+(define-public python-forex-python
+  (package
+    (name "python-forex-python")
+    (version "1.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "forex-python" version))
+       (sha256
+        (base32 "1ma8cl1i2dh8aa99pifnlilyy4d1gd1s07fj0yd17wcbpsh532cj"))))
+    (build-system python-build-system)
+    (arguments
+     ;; Tests are not included in the PyPI tarball.  Also, the tests in the
+     ;; repository require online data.
+     `(#:tests? #f))
+    (propagated-inputs
+     `(("python-requests" ,python-requests)
+       ("python-simplejson" ,python-simplejson)))
+    (home-page "https://github.com/MicroPyramid/forex-python")
+    (synopsis "Foreign exchange rates and currency conversion")
+    (description
+     "@code{python-forex-python} can be used to manipulate foreign
+exchange rates and to operate currency conversions.
+
+Features:
+@itemize
+@item List all currency rates.
+@item BitCoin price for all currencies.
+@item Converting amount to BitCoins.
+@item Get historical rates for any day since 1999.
+@item Conversion rate for one currency(ex; USD to INR).
+@item Convert amount from one currency to other.('USD 10$' to INR).
+@item Currency symbols.
+@item Currency names.
+@end itemize")
+    (license license:expat)))
+
+(define-public python-simpleeval
+  (package
+    (name "python-simpleeval")
+    (version "0.9.10")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "simpleeval" version))
+       (sha256
+        (base32 "1skvl467kj83rzkhk01i0wm8m5vmh6j5znrfdizn6r18ii45a839"))))
+    (build-system python-build-system)
+    (home-page "https://github.com/danthedeckie/simpleeval")
+    (synopsis "Simple, safe single expression evaluator library")
+    (description
+     "This package provides a quick single file library for easily adding
+evaluatable expressions into python projects.  Say you want to allow a user
+to set an alarm volume, which could depend on the time of day, alarm level,
+how many previous alarms had gone off, and if there is music playing at the
+time.")
+    (license license:expat)))
+
 (define-public python-nbconvert
   (package
     (name "python-nbconvert")
@@ -9967,13 +10478,13 @@ config files.")
 (define-public python-configargparse
   (package
     (name "python-configargparse")
-    (version "0.14.0")
+    (version "1.2.3")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "ConfigArgParse" version))
               (sha256
                (base32
-                "149fy4zya0rsnlkvxbbq43cyr8lscb5k4pj1m6n7f1grwcmzwbif"))))
+                "1p1pzpf5qpf80bfxsx1mbw9blyhhypjvhl3i60pbmhfmhvlpplgd"))))
     (build-system python-build-system)
     (native-inputs
      `(("python-pyyaml" ,python-pyyaml)))
@@ -9995,9 +10506,6 @@ be set via config files and/or environment variables.")
     (home-page "https://github.com/bw2/ConfigArgParse")
     (license license:expat)))
 
-(define-public python2-configargparse
-  (package-with-python2 python-configargparse))
-
 (define-public python-argparse-manpage
   (package
     (name "python-argparse-manpage")
@@ -10522,14 +11030,13 @@ for the module to work under Python 3.3.")
 (define-public python-colorama
   (package
    (name "python-colorama")
-   (version "0.4.3")
+   (version "0.4.4")
    (source
     (origin
      (method url-fetch)
      (uri (pypi-uri "colorama" version))
      (sha256
-      (base32
-       "189n8hpijy14jfan4ha9f5n06mnl33cxz7ay92wjqgkr639s0vg9"))))
+      (base32 "16w62sm95hmh55rqxn4zwdz0bkh3fqm1qnz9cwi3s510iasb4har"))))
    (build-system python-build-system)
    (synopsis "Colored terminal text rendering for Python")
    (description "Colorama is a Python library for rendering colored terminal
@@ -10540,6 +11047,73 @@ text.")
 (define-public python2-colorama
   (package-with-python2 python-colorama))
 
+(define-public python-moto
+  (package
+    (name "python-moto")
+    ;; XXX: Use a pre-release for compatibility with latest botocore & friends.
+    (version "1.3.16.dev134")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "moto" version))
+              (sha256
+               (base32
+                "1pix0c7zszjwzfy88n1rpih9vkdm25nqcvz93z850xvgwb4v81bd"))))
+    (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 _
+                      (setenv "PYTHONPATH" (string-append "./build/lib:"
+                                                          (getenv "PYTHONPATH")))
+                      (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)))
+    (home-page "https://github.com/spulec/moto")
+    (synopsis "Mock out the boto library")
+    (description
+     "@code{moto} is a library designed to easily mock out the
+@code{boto} library.")
+    (license license:asl2.0)))
+
 (define-public python-rsa
   (package
    (name "python-rsa")
@@ -10610,36 +11184,40 @@ Pytest but stripped of Pytest specific details.")
 
 (define-public python-tox
   (package
-   (name "python-tox")
-   (version "2.8.1")
-   (source
-    (origin
-     (method url-fetch)
-     (uri (pypi-uri "tox" version))
-     (sha256
-      (base32
-       "1drp6mwm8wdypjym15ia8lwjxbhcksb9vzxg4ay5dh4ji57by2ny"))))
-   (build-system python-build-system)
-   (arguments
-    ;; FIXME: Tests require pytest-timeout, which itself requires
-    ;; pytest>=2.8.0 for installation.
-    '(#:tests? #f))
-   (propagated-inputs
-    `(("python-pluggy" ,python-pluggy) ; >=0.3.0,<0.4.0
-      ("python-py" ,python-py)
-      ("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)))
-   (home-page "https://tox.readthedocs.io")
-   (synopsis "Virtualenv-based automation of test activities")
-   (description "Tox is a generic virtualenv management and test command line
+    (name "python-tox")
+    (version "3.20.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "tox" version))
+       (sha256
+        (base32
+         "0nk0nyzhzamcrvn0qqzzy54isxxqwdi28swml7a2ym78c3f9sqpb"))))
+    (build-system python-build-system)
+    (arguments
+     ;; FIXME: Tests require pytest-timeout, which itself requires
+     ;; 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)))
+    (home-page "https://tox.readthedocs.io")
+    (synopsis "Virtualenv-based automation of test activities")
+    (description "Tox is a generic virtualenv management and test command line
 tool.  It can be used to check that a package installs correctly with
 different Python versions and interpreters, or run tests in each type of
 supported environment, or act as a frontend to continuous integration
 servers.")
-   (license license:expat)))
+    (license license:expat)))
 
 (define-public python2-tox
   (package-with-python2 python-tox))
@@ -10691,32 +11269,55 @@ document.")
 manipulation library.")
     (license license:expat)))
 
+(define-public python-boto
+  (package
+    (name "python-boto")
+    (version "2.49.0")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "boto" version))
+              (sha256
+               (base32
+                "0njy09c4wjx7ipxhwi6vv404nflyiasl78vwwxxpclnql903n3ga"))))
+    (build-system python-build-system)
+    (arguments
+     ;; XXX: This package is unmaintained and has problems with newer versions
+     ;; of Python 3 as well as test libraries.  'python-moto' still uses a
+     ;; 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)))
+    (home-page "https://github.com/boto/boto")
+    (synopsis "Python interfaces for Amazon Web Services")
+    (description
+     "This package provides various facilities for interacting with Amazon
+Web Services through Python.
+
+This software is unmaintained, and new projects should use @code{boto3} instead.")
+    (license license:expat)))
+
 (define-public python-botocore
+  ;; Note: When updating botocore, also make sure that boto3 and awscli
+  ;; are compatible.
   (package
     (name "python-botocore")
-    (version "1.15.26")
+    (version "1.19.22")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "botocore" version))
        (sha256
         (base32
-         "1a87pbwkk5vlwz92hy1wizfnpiwn11bhaicr6bmji1i5ybwdhnr8"))))
+         "0iim86x7c6hqmvd61ygz6x6x9glnsfbnyzv2y67qjdcdx8jpkmw7"))))
     (build-system python-build-system)
     (arguments
      ;; FIXME: Many tests are failing.
      '(#:tests? #f))
     (propagated-inputs
      `(("python-dateutil" ,python-dateutil)
-       ("python-docutils" ,python-docutils)
-       ("python-jmespath" ,python-jmespath)))
-    (native-inputs
-     `(("python-mock" ,python-mock)
-       ("python-nose" ,python-nose)
-       ("behave" ,behave)
-       ("python-tox" ,python-tox)
-       ("python-urllib3" ,python-urllib3)
-       ("python-wheel" ,python-wheel)))
+       ("python-jmespath" ,python-jmespath)
+       ("python-urllib3" ,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
@@ -10726,6 +11327,40 @@ interface to the Amazon Web Services (AWS) API.")
 (define-public python2-botocore
   (package-with-python2 python-botocore))
 
+(define-public python-boto3
+  (package
+    (name "python-boto3")
+    (version "1.16.22")
+    (home-page "https://github.com/boto/boto3")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference (url home-page) (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0h20hgl4yfl58g75qhb6ibrdmzn47md3srgar7hask14cjmfhfy3"))))
+    (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)))))
+    (build-system python-build-system)
+    (native-inputs
+     `(("python-nose" ,python-nose)
+       ("python-mock" ,python-mock)))
+    (propagated-inputs
+     `(("python-botocore" ,python-botocore)
+       ("python-jmespath" ,python-jmespath)
+       ("python-s3transfer" ,python-s3transfer)))
+    (synopsis "AWS SDK for Python")
+    (description
+     "Boto3 is a Python library for writing programs that interact with
+@acronym{AWS,Amazon Web Services}.")
+    (license license:asl2.0)))
+
 (define-public python-pyfiglet
   (package
     (name "python-pyfiglet")
@@ -10789,14 +11424,14 @@ python-xdo for newer bindings.)")
 (define-public python-mako
   (package
     (name "python-mako")
-    (version "1.1.2")
+    (version "1.1.3")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "Mako" version))
        (sha256
         (base32
-         "17bd6r9ynp4hyfckkia0bb8gpd98f42jfl5rmzdpbld59bbcaf9i"))))
+         "09ywrmhr6gdyfx6d5727wwjnz73i6rklqcb4c14m7sqc830wi5c1"))))
     (build-system python-build-system)
     (arguments
      `(#:phases (modify-phases %standard-phases
@@ -11883,13 +12518,13 @@ multiple processes (imagine multiprocessing, billiard, futures, celery etc).
 (define-public python-greenlet
   (package
     (name "python-greenlet")
-    (version "0.4.16")
+    (version "0.4.17")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "greenlet" version))
               (sha256
                (base32
-                "0v2571d0av1hz3yx63gvmnrinyn57nnvibg4zkl9frv74b3yl1kf"))))
+                "0swdhrcq13bdszv3yz5645gi4ijbzmmhxpb6whcfg3d7d5f87n21"))))
     (build-system python-build-system)
     (home-page "https://greenlet.readthedocs.io/")
     (synopsis "Lightweight in-process concurrent programming")
@@ -11900,9 +12535,6 @@ pseudo-concurrently (typically in a single or a few OS-level threads) and
 are synchronized with data exchanges on \"channels\".")
     (license (list license:psfl license:expat))))
 
-(define-public python2-greenlet
-  (package-with-python2 python-greenlet))
-
 (define-public python-objgraph
   (package
     (name "python-objgraph")
@@ -11933,13 +12565,13 @@ graphviz.")
 (define-public python-gevent
   (package
     (name "python-gevent")
-    (version "20.6.2")
+    (version "20.9.0")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "gevent" version))
               (sha256
                (base32
-                "1ldmppgghfphdaazjw6wq2i17xcmsjb2jsizfa4cjlg812zjlg52"))
+                "13aw9x6imsy3b369kfjblqiwfni69pp32m4r13n62r9k3l2lhvaz"))
               (modules '((guix build utils)))
               (snippet
                '(begin
@@ -11998,24 +12630,10 @@ graphviz.")
                   (add-before 'check 'adjust-tests
                     (lambda _
                       (let ((disabled-tests
-                             '(;; These tests rely on networking which is not
-                               ;; available in the build container.
-                               "test_urllib2net.py"
-                               "test__server.py"
-                               "test__server_pywsgi.py"
-                               "test_socket.py"
-                               "test__socket.py"
-                               "test__socket_ssl.py"
-                               "test__socket_dns.py"
-                               "test__socket_dns6.py"
-                               "test___example_servers.py"
+                             '(;; These tests relies on networking which is
+                               ;; not available in the build container.
                                "test__getaddrinfo_import.py"
-                               "test__examples.py"
-                               "test_httplib.py"
-                               "test_https.py"
-                               "test_urllib2_localnet.py"
-                               "test_ssl.py"
-                               "test__ssl.py"
+                               "test__server_pywsgi.py"
                                ;; XXX: These tests borrow functionality from the
                                ;; Python builtin 'test' module, but it is not
                                ;; installed with the Guix Python distribution.
@@ -12054,7 +12672,7 @@ graphviz.")
                       ;; Use the build daemons configured number of workers.
                       (setenv "NWORKERS" (number->string (parallel-job-count)))
 
-                      (invoke "python" "-m" "gevent.tests" "--config"
+                      (invoke "python" "-m" "gevent.tests" "-unone" "--config"
                               "known_failures.py" "--ignore" "skipped_tests.txt"))))))
     (propagated-inputs
      `(("python-greenlet" ,python-greenlet)
@@ -12070,22 +12688,13 @@ graphviz.")
     (inputs
      `(("c-ares" ,c-ares)
        ("libev" ,libev)))
-    (home-page "http://www.gevent.org/")
+    (home-page "https://www.gevent.org/")
     (synopsis "Coroutine-based network library")
     (description
-     "gevent is a coroutine-based Python networking library that uses greenlet
-to provide a high-level synchronous API on top of the libev event loop.")
-    (license license:expat)
-    (properties `((python2-variant . ,(delay python2-gevent))))))
-
-(define-public python2-gevent
-  (let ((base (package-with-python2
-               (strip-python2-variant python-gevent))))
-    (package
-      (inherit base)
-      (native-inputs `(,@(package-native-inputs base)
-                       ("python-mock" ,python2-mock)
-                       ("python2-selectors2" ,python2-selectors2))))))
+     "@code{gevent} is a coroutine-based Python networking library that uses
+@code{greenlet} to provide a high-level synchronous API on top of the
+@code{libev} event loop.")
+    (license license:expat)))
 
 (define-public python-fastimport
   (package
@@ -12260,9 +12869,6 @@ It includes Python implementations of Kafka producers and consumers, which
 are optionally backed by a C extension built on librdkafka.")
     (license license:asl2.0)))
 
-(define-public python2-pykafka
-  (package-with-python2 python-pykafka))
-
 (define-public python-wcwidth
   (package
     (name "python-wcwidth")
@@ -12409,20 +13015,21 @@ docstring and colored output.")
 (define-public python-tomlkit
   (package
     (name "python-tomlkit")
-    (version "0.6.0")
+    (version "0.7.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "tomlkit" version))
        (sha256
-        (base32 "16jf0060csn8p500jnxa7m5h1sl3pzispvd11961dzrhh287dybl"))))
+        (base32 "062n694sfv24ylda6nh8228y2q9hrvy554kqx84y7czsjfbg4mxc"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     `(("python-pytest" ,python-pytest)
+       ("python-pyyaml" ,python-pyyaml)))
     (home-page "https://github.com/sdispater/tomlkit")
     (synopsis "Style-preserving TOML library")
     (description
-     "TOML Kit is a 0.5.0-compliant TOML library.  It includes a parser that
+     "TOML Kit is a 1.0.0rc1-compliant TOML library.  It includes a parser that
 preserves all comments, indentations, whitespace and internal element ordering,
 and makes them accessible and editable via an intuitive API.  It can also
 create new TOML documents from scratch using the provided helpers.  Part of the
@@ -12572,10 +13179,30 @@ powerful API: thread-safety; decorator syntax; support for memcached, redis,
 database, file, dict stores.  Cachy supports python versions 2.7+ and 3.2+.")
     (license license:expat)))
 
+(define-public python-poetry-core
+  (package
+    (name "python-poetry-core")
+    (version "1.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "poetry-core" version))
+       (sha256
+        (base32 "1mgv276h1iphn5fqhp2sgkgd5d0c39hs33vgaf157x5ri7rlyrka"))))
+    (build-system python-build-system)
+    (home-page "https://github.com/python-poetry/poetry-core")
+    (synopsis "Poetry PEP 517 build back-end")
+    (description
+     "The @code{poetry-core} module provides a PEP 517 build back-end
+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 poetry
   (package
     (name "poetry")
-    (version "1.0.10")
+    (version "1.1.4")
     ;; Poetry can only be built from source with Poetry.
     (source
      (origin
@@ -12583,7 +13210,7 @@ database, file, dict stores.  Cachy supports python versions 2.7+ and 3.2+.")
        (uri (pypi-uri "poetry" version))
        (sha256
         (base32
-         "1wm66xlsls4f0q4skmq96yb7aahjsqwgwvbrw4iax6rd4xfqj6sb"))))
+         "1a2kgfiw66fvxhlqk5qc83s6l38czfh5hcsrbiy7qq5yfc8mlsll"))))
     (build-system python-build-system)
     (arguments
      `(#:tests? #f ;; Pypi does not have tests.
@@ -12592,14 +13219,12 @@ database, file, dict stores.  Cachy supports python versions 2.7+ and 3.2+.")
          (add-before 'build 'patch-setup-py
            (lambda _
              (substitute* "setup.py"
-               ;; poetry won't update version as 21.0.0 relies on python > 3.6
-               (("keyring>=20.0.1,<21.0.0") "keyring>=21.0.0,<22.0.0")
-               (("pyrsistent>=0.14.2,<0.15.0") "pyrsistent>=0.14.2,<0.17.0")
-               ;; Reported upstream:
-               ;; <https://github.com/python-poetry/poetry/issues/2752>.
-               (("tomlkit>=0.5.11,<0.6.0") "tomlkit>=0.5.11,<0.7.0")
-               (("cleo>=0.7.6,<0.8.0") "cleo>=0.7.6,<0.9.0")
-               (("clikit>=0.4.2,<0.5.0") "clikit>=0.4.2,<0.7.0"))
+               ;; Newer versions of keyring produce a package with version "0.0.0"
+               ;; Reported upstream: <https://github.com/jaraco/keyring/issues/469>
+               (("keyring>=21.2.0,<22.0.0") "keyring>=21.0.0,<22.0.0")
+               ;; TODO: remove after the next release cycle,
+               ;; when packaging has been updated.
+               (("packaging>=20.4,<21.0") "packaging>=20.0,<21.0"))
              #t)))))
     (propagated-inputs
      `(("python-cachecontrol" ,python-cachecontrol)
@@ -12607,15 +13232,15 @@ database, file, dict stores.  Cachy supports python versions 2.7+ and 3.2+.")
        ("python-cleo" ,python-cleo)
        ("python-clikit" ,python-clikit)
        ("python-html5lib" ,python-html5lib)
-       ("python-jsonschema" ,python-jsonschema)
        ("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-pyparsing" ,python-pyparsing)
-       ("python-pyrsistent" ,python-pyrsistent)
+       ("python-poetry-core" ,python-poetry-core)
        ("python-requests" ,python-requests)
-       ("python-requests-toolbelt" ,python-requests-toolbelt)
+       ("python-requests-toolbelt" ,python-requests-toolbelt-0.9.1)
        ("python-shellingham" ,python-shellingham)
        ("python-tomlkit" ,python-tomlkit)
        ("python-virtualenv" ,python-virtualenv)))
@@ -12749,27 +13374,40 @@ until the object is actually required, and caches the result of said call.")
 
 (define-public python-dnspython
   (package
-  (name "python-dnspython")
-  (version "1.16.0")
-  (source (origin
-            (method url-fetch)
-            (uri (string-append "http://www.dnspython.org/kits/"
-                                version "/dnspython-" version ".tar.gz"))
-            (sha256
-             (base32
-              "1yaw7irazy42n0kdhlk7wyg8ki34rxcnc5xbc1wfwy245b0wbxab"))))
-  (build-system python-build-system)
-  (arguments '(#:tests? #f)) ; XXX: requires internet access
-  (home-page "http://www.dnspython.org")
-  (synopsis "DNS toolkit for Python")
-  (description
-   "dnspython is a DNS toolkit for Python.  It supports almost all record
+    (name "python-dnspython")
+    (version "2.0.0")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "dnspython" version ".zip"))
+              (sha256
+               (base32
+                "1dyip5ygqqhrgcaiy7qzjpndl9xciip186paxqwkm726fj9z0jh4"))))
+    (build-system python-build-system)
+    (native-inputs `(("unzip" ,unzip)))
+    (arguments '(#:tests? #f))          ; XXX: requires internet access
+    (home-page "https://www.dnspython.org")
+    (synopsis "DNS toolkit for Python")
+    (description
+     "dnspython is a DNS toolkit for Python.  It supports almost all record
 types.  It can be used for queries, zone transfers, and dynamic updates.
 It supports TSIG authenticated messages and EDNS0.")
-  (license license:expat)))
+    (license license:expat)))
+
+(define-public python-dnspython-1.16
+  (package
+    (inherit python-dnspython)
+    (version "1.16.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://www.dnspython.org/kits/"
+                                  version "/dnspython-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1yaw7irazy42n0kdhlk7wyg8ki34rxcnc5xbc1wfwy245b0wbxab"))))
+    (native-inputs '())))
 
-(define-public python2-dnspython
-  (package-with-python2 python-dnspython))
+(define-public python2-dnspython-1.16
+  (package-with-python2 python-dnspython-1.16))
 
 (define-public python-py3dns
   (package
@@ -12963,14 +13601,13 @@ collections of data.")
 (define-public python-prompt-toolkit
   (package
     (name "python-prompt-toolkit")
-    (version "3.0.5")
+    (version "3.0.9")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "prompt_toolkit" version))
        (sha256
-        (base32
-         "1j3x5s4gp4ih73sbcni0a0vffbzvrxbrbnkvb3fzjgxn810ilgan"))))
+        (base32 "0bvjp62cs6aj9lrh7njzxdjgg8pjfw3qgmr551243d9ivmcapvn5"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -12987,8 +13624,7 @@ collections of data.")
      `(("python-wcwidth" ,python-wcwidth)))
     (native-inputs
      `(("python-pytest" ,python-pytest)))
-    (home-page
-     "https://github.com/prompt-toolkit/python-prompt-toolkit")
+    (home-page "https://github.com/prompt-toolkit/python-prompt-toolkit")
     (synopsis "Library for building command line interfaces in Python")
     (description
      "Prompt-Toolkit is a library for building interactive command line
@@ -12996,7 +13632,8 @@ interfaces in Python.  It's like GNU Readline but it also features syntax
 highlighting while typing, out-of-the-box multi-line input editing, advanced
 code completion, incremental search, support for Chinese double-width
 characters, mouse support, and auto suggestions.")
-    (license license:bsd-3)))
+    (license license:bsd-3)
+    (properties `((python2-variant . ,(delay python-prompt-toolkit-2))))))
 
 (define-public python-prompt-toolkit-2
   (package (inherit python-prompt-toolkit)
@@ -13012,7 +13649,8 @@ characters, mouse support, and auto suggestions.")
     (propagated-inputs
      `(("python-wcwidth" ,python-wcwidth)
        ("python-six" ,python-six)
-       ("python-pygments" ,python-pygments)))))
+       ("python-pygments" ,python-pygments)))
+    (properties '())))
 
 (define-public python2-prompt-toolkit
   (package-with-python2 python-prompt-toolkit-2))
@@ -13071,18 +13709,18 @@ well.")
 (define-public ptpython
   (package
     (name "ptpython")
-    (version "0.34")
+    (version "3.0.5")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "ptpython" version))
               (sha256
                (base32
-                "1mmbiyzf0n8hm7z2a562x7w5cbl6jc0zsk6vp40q1z4cyblv1k13"))))
+                "0c2ry5gwi2v99slna62j8r2bwq0hpzmvgdryqg9m6x57vbjfg52h"))))
     (build-system python-build-system)
     (arguments
      '(#:tests? #f)) ; FIXME: No tests in pypi tarball.
     (propagated-inputs
-     `(("python-docopt" ,python-docopt)
+     `(("python-appdirs" ,python-appdirs)
        ("python-jedi" ,python-jedi)
        ("python-prompt-toolkit" ,python-prompt-toolkit)
        ("python-pygments" ,python-pygments)))
@@ -13527,14 +14165,14 @@ monitors CPU, load, memory, network bandwidth, disk I/O, disk use, and more.")
 (define-public python-graphql-core
   (package
     (name "python-graphql-core")
-    (version "0.5.3")
+    (version "3.1.2")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "graphql-core" version))
         (sha256
          (base32
-          "0rsaarx2sj4xnw9966rhh4haiqaapm4lm2mfqm48ywd51j5vh1a0"))))
+          "0fjv5w2wvgdr8gb27v241bavliipyir9fdz48rsgc3xapm644mn0"))))
     (build-system python-build-system)
     (arguments
      `(#:tests? #f ; Tests require the unpackaged pytest-benchmark.
@@ -13592,9 +14230,6 @@ should be noted that the code is a exact port of the original
 from Facebook.")
     (license license:expat)))
 
-(define-public python2-graphql-relay
-  (package-with-python2 python-graphql-relay))
-
 (define-public python-graphene
   (package
     (name "python-graphene")
@@ -13621,17 +14256,8 @@ from Facebook.")
      "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.")
-    (properties `((python2-variant . ,(delay python2-graphene))))
     (license license:expat)))
 
-(define-public python2-graphene
-  (let ((base (package-with-python2
-                (strip-python2-variant python-graphene))))
-    (package (inherit base)
-      (native-inputs
-       `(("python2-sqlalchemy" ,python2-sqlalchemy)
-         ,@(package-native-inputs base))))))
-
 (define-public python-nautilus
   (package
     (name "python-nautilus")
@@ -14243,7 +14869,7 @@ 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 arbitrarly-sized key can be read.")
+a file-like object from which an arbitrarily-sized key can be read.")
     (license license:expat)))
 
 (define-public python2-pbkdf2
@@ -14323,7 +14949,7 @@ to ansi-escaped strings suitable for display in a terminal.")
     (synopsis "Convert ANSI-decorated console output to HTML")
     (description
      "@command{ansi2html} is a Python library and command line utility for
-convering 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
@@ -14332,22 +14958,20 @@ convering text with ANSI color codes to HTML or LaTeX.")
 (define-public python-ddt
   (package
     (name "python-ddt")
-    (version "1.1.3")
+    (version "1.4.1")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "ddt" version))
        (sha256
         (base32
-         "1lw17420iimhghkgzgax85nn8d1an2d6k2cfvb7j5kwn2dqlr1vk"))))
+         "1niqpzc26sxdbyi46r07n4pma5fjx6crww2539vpfmsf0w6yg585"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-mock" ,python-mock)
-       ("python-nose" ,python-nose)))
+     `(("python-pytest" ,python-pytest)))
     (propagated-inputs
-     `(("python-six" ,python-six)
-       ("python-pyyaml" ,python-pyyaml)))
-    (home-page "https://github.com/txels/ddt")
+     `(("python-pyyaml" ,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
@@ -14355,9 +14979,6 @@ running it with different test data, and make it appear as multiple test
 cases.")
     (license license:expat)))
 
-(define-public python2-ddt
-  (package-with-python2 python-ddt))
-
 (define-public python-pycountry
   (package
     (name "python-pycountry")
@@ -14392,16 +15013,18 @@ through a Python API.")
 (define-public python-pycosat
   (package
     (name "python-pycosat")
-    (version "0.6.1")
+    (version "0.6.3")
     (source
      (origin
        (method url-fetch)
-       (uri (pypi-uri "pycosat" version))
+       (uri (pypi-uri "pycosat" version ".zip"))
        (sha256
         (base32
-         "1kl3wh1f47rc712n4bmwplbx3fqz3x9i1b587jrbpmvdva4c8f6l"))))
+         "1vg0f2fwcybpdqv92z0hwdl603n2safh3fqvjjxkksd78r4qg6ac"))))
     ;; TODO: Unundle picosat. http://fmv.jku.at/picosat/
     (build-system python-build-system)
+    (native-inputs
+     `(("unzip" ,unzip)))
     (home-page "https://github.com/ContinuumIO/pycosat")
     (synopsis "Bindings to picosat (a SAT solver)")
     (description
@@ -14496,13 +15119,13 @@ projects.")
   (package
     (name "python-invoke")
     (home-page "https://www.pyinvoke.org/")
-    (version "1.3.0")
+    (version "1.4.1")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "invoke" version))
               (sha256
                (base32
-                "1nn7gad0rvy492acpyhkrp01zsk86acf34qhsvq4xmm6x39788n5"))))
+                "0pg1lpl4583z83i12262v72y1a4cxdcxi7vqhl8dpqv9wszj6gyy"))))
     (build-system python-build-system)
     (arguments
      ;; XXX: Requires many dependencies that are not yet in Guix.
@@ -14883,14 +15506,14 @@ builds partial trees by inspecting living objects.")
 (define-public python-isbnlib
   (package
     (name "python-isbnlib")
-    (version "3.10.3")
+    (version "3.10.4")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "isbnlib" version))
        (sha256
         (base32
-         "07qhykv0x60d5rsx5pj6s4q15ri4znczscll3xmpf6gyclac1592"))))
+         "0iin0x2xqwyphyyzd0mzrq5v5xm7b6dlbb294k4dywra5qvbrgzm"))))
     (build-system python-build-system)
     (arguments '(#:tests? #f))  ; No test
     (home-page "https://github.com/xlcnd/isbnlib")
@@ -14984,16 +15607,41 @@ in other versions.")
 (define-public python2-configparser
   (package-with-python2 python-configparser))
 
+(define-public python-iniconfig
+  (package
+    (name "python-iniconfig")
+    (version "1.1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "iniconfig" version))
+       (sha256
+        (base32
+         "0ckzngs3scaa1mcfmsi1w40a1l8cxxnncscrxzjjwjyisx8z0fmw"))))
+    (build-system python-build-system)
+    (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")
+    (license license:expat)))
+
 (define-public python-mamba
   (package
     (name "python-mamba")
-    (version "0.11.1")
+    (version "0.11.2")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "mamba" version))
               (sha256
                (base32
-                "1jxy3bva94ac02a0wjsms79rp5104zmalxh8rhqqg6mw95cp6xpr"))))
+                "15m4dpnpv9m60pdaygvwgi43fwqaivs3qxfxhspwrp47sbgwdkvm"))))
     (build-system python-build-system)
     (arguments `(#:tests? #f))  ; No test
     (propagated-inputs
@@ -15176,18 +15824,18 @@ perform the operations required for synchronizing plain text.")
 (define-public python-dirsync
   (package
     (name "python-dirsync")
-    (version "2.2.3")
+    (version "2.2.5")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "dirsync" version))
         (sha256
          (base32
-          "1r40fkanksagcszf1ag85mdr8w7rgc7196n6s1qlsk2abw6i7v0z"))))
+          "1gm82jddm1lkazdi8lfsl1b3vi1z0252ng60mzjym8irnv94qfhy"))))
     (build-system python-build-system)
     (propagated-inputs
      `(("six" ,python-six)))
-    (home-page "https://bitbucket.org/tkhyn/dirsync")
+    (home-page "https://github.com/tkhyn/dirsync")
     (synopsis "Advanced directory tree synchronisation tool")
     (description "Advanced directory tree synchronisation tool.")
     (license license:expat)))
@@ -15649,7 +16297,7 @@ by path in a JSON document (see RFC 6901).")
         (base32
          "0k9pff06lxama3nhsc7cdxbp83422bdy8ifs52i6xkas8hpyzfzr"))))
     (build-system python-build-system)
-    (native-inputs
+    (propagated-inputs
      `(("python-jsonpointer" ,python-jsonpointer)))
     (home-page "https://github.com/stefankoegl/python-json-patch")
     (synopsis "Applying JSON Patches in Python 2.6+ and 3.x")
@@ -15741,6 +16389,170 @@ validation of URIs (see RFC 3986) and IRIs (see RFC 3987).")
 (define-public python2-rfc3987
   (package-with-python2 python-rfc3987))
 
+;; The latest commit contains fixes for building with both python3 and python2.
+(define-public python-rfc6555
+  (let ((commit "1a181b432312731f6742a5eb558dae4761d32361")
+        (revision "1"))
+    (package
+      (name "python-rfc6555")
+      (version (git-version "0.0.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                       (url "https://github.com/sethmlarson/rfc6555")
+                       (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "1bxl17j9vs69cshcqnlwamr03hnykxqnwz3mdgi6x3s2k4q18npp"))))
+      (build-system python-build-system)
+      (arguments
+       '(#:phases
+         (modify-phases %standard-phases
+           (replace 'check
+             (lambda* (#:key tests? #:allow-other-keys)
+               (if tests?
+                 ;; Other tests require network access.
+                 (invoke "pytest" "tests/test_ipv6.py")
+                 #t))))))
+      (native-inputs
+       `(("python-pytest" ,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.")
+      (properties `((python2-variant . ,(delay python2-rfc6555))))
+      (license license:asl2.0))))
+
+(define-public python2-rfc6555
+  (let ((base (package-with-python2
+               (strip-python2-variant python-rfc6555))))
+    (package
+      (inherit base)
+      (propagated-inputs
+       `(("python2-selectors2" ,python2-selectors2))))))
+
+(define-public python-bagit
+  (package
+    (name "python-bagit")
+    (version "1.7.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "bagit" version))
+        (sha256
+         (base32
+          "1m6y04qmig0b5hzb35lnaw3d2yfydb7alyr1579yblvgs3da6j7j"))))
+    (build-system python-build-system)
+    (native-inputs
+     `(("python-setuptools-scm" ,python-setuptools-scm)
+       ("python-coverage" ,python-coverage)
+       ("python-mock" ,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.")
+    (license license:cc0)))
+
+(define-public python-prov
+  (package
+    (name "python-prov")
+    (version "2.0.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "prov" version))
+        (sha256
+         (base32
+          "1vi2fj31vygfcqrkimdmk52q2ldw08g9fn4v4zlgdfgcjlhqyhxn"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-dateutil" ,python-dateutil)
+       ("python-lxml" ,python-lxml)
+       ("python-networkx" ,python-networkx)
+       ("python-rdflib" ,python-rdflib)))
+    (native-inputs
+     `(("graphviz" ,graphviz)
+       ("python-pydot" ,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.")
+    (license license:expat)))
+
+(define-public python-arcp
+  (package
+    (name "python-arcp")
+    (version "0.2.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "arcp" version))
+        (sha256
+         (base32
+          "1p8mfyjssa6pbn5dp6pyzv9yy6kwm2rz5jn2kjbq5vy9f9wsq5sw"))))
+    (build-system python-build-system)
+    (native-inputs
+     `(("python-pytest" ,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.")
+    (license license:asl2.0)))
+
+(define-public python-shellescape
+  (package
+    (name "python-shellescape")
+    (version "3.8.1")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/chrissimpkins/shellescape")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32
+          "0wzccxk139qx1lb2g70f5b2yh9zq15nr2mgvqdbfabg5zm0vf1qw"))))
+    (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" "tests/test_shellescape.py"))
+             #t)))))
+    (native-inputs
+     `(("python-pytest" ,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.")
+    (license license:expat)))
+
 (define-public python-validators
   (package
     (name "python-validators")
@@ -15829,14 +16641,14 @@ address is valid and really exists.")
 (define-public python-marshmallow
   (package
     (name "python-marshmallow")
-    (version "3.0.0b14")
+    (version "3.9.1")
     (source
      (origin
       (method url-fetch)
       (uri (pypi-uri "marshmallow" version))
       (sha256
        (base32
-        "1digk3f5cfk7wmlka65mc7bzsd96pbsgcsvp6pimd5b4ff9zb5p3"))))
+        "0kizhh3mnhpa08wfnsv1gagy22bpxzxszgbiylkhpz1d8qvwrykk"))))
     (build-system python-build-system)
     (propagated-inputs
      `(("python-dateutil" ,python-dateutil)
@@ -15851,40 +16663,45 @@ Python datatypes.")
 complex datatypes to and from native Python datatypes.")
     (license license:expat)))
 
-(define-public python2-marshmallow
-  (package-with-python2 python-marshmallow))
-
 (define-public python-apispec
   (package
     (name "python-apispec")
-    (version "0.25.3")
+    (version "4.0.0")
     (source
      (origin
       (method url-fetch)
       (uri (pypi-uri "apispec" version))
       (sha256
         (base32
-          "0kxa8723zbisx10363yh4mmmn4higxrspymbjfz5zq8f644zagm9"))))
+          "12n4w5zkn4drcn8izq68vmixmqvz6abviqkdn4ip0kaax3jjh3in"))))
     (build-system python-build-system)
+    (arguments
+     '(#:phases (modify-phases %standard-phases
+                  (add-after 'unpack 'disable-prance-tests
+                    (lambda _
+                      ;; Disable validation tests since they require the
+                      ;; optional 'prance' library which is not yet in Guix.
+                      (substitute* "tests/test_ext_marshmallow_openapi.py"
+                        (("def test_openapi_tools_validate.*" all)
+                         (string-append "@pytest.mark.xfail\n" all)))))
+                  (replace 'check
+                    (lambda _
+                      (setenv "PYTHONPATH"
+                              (string-append "./build/lib:"
+                                             (getenv "PYTHONPATH")))
+                      (invoke "pytest" "-vv"))))))
     (propagated-inputs
      `(("python-pyyaml" ,python-pyyaml)))
     (native-inputs
      `(("python-pytest" ,python-pytest)
-       ("python-flask" ,python-flask)
-       ("python-marshmallow" ,python-marshmallow)
-       ("python-tornado" ,python-tornado)
-       ("python-bottle" ,python-bottle)
-       ("python-mock" ,python-mock)))
+       ("python-marshmallow" ,python-marshmallow)))
     (home-page "https://github.com/marshmallow-code/apispec")
-    (synopsis "Swagger 2.0 API specification generator")
+    (synopsis "Swagger/OpenAPI specification generator")
     (description "@code{python-apispec} is a pluggable API specification
-generator. Currently supports the OpenAPI specification (f.k.a.
-Swagger 2.0).")
+generator.  It currently supports the OpenAPI specification, formerly known
+as Swagger.")
     (license license:expat)))
 
-(define-public python2-apispec
-  (package-with-python2 python-apispec))
-
 (define-public python-flasgger
   (package
     (name "python-flasgger")
@@ -15932,9 +16749,6 @@ Swagger 2.0).")
 from your Flask project.  It is a fork of Flask-Swagger.")
     (license license:expat)))
 
-(define-public python2-flasgger
-  (package-with-python2 python-flasgger))
-
 (define-public python-swagger-spec-validator
   (package
     (name "python-swagger-spec-validator")
@@ -15964,14 +16778,14 @@ validating Swagger API specifications.")
 (define-public python-apache-libcloud
   (package
     (name "python-apache-libcloud")
-    (version "2.4.0")
+    (version "3.1.0")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "apache-libcloud" version))
         (sha256
          (base32
-          "0daj3mkzw79v5zin2r1s2wkrz1hplfc16bwj4ss68i5qjq4l2p0j"))))
+          "1b28j265kvibgxrgxx0gwfm6cmv252c8ph1j2vb0cpms8ph5if5v"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -15984,22 +16798,10 @@ validating Swagger API specifications.")
              #t))
          (add-after 'unpack 'patch-tests
            (lambda _
-             (substitute* "./libcloud/test/test_file_fixtures.py"
-               ;; See <https://issues.apache.org/jira/browse/LIBCLOUD-923>.
-               (("def _ascii") "def _raw_data(self, method, url, body, headers):
-        return (httplib.OK,
-                \"1234abcd\",
-                {\"test\": \"value\"},
-                httplib.responses[httplib.OK])
-    def _ascii"))
              (substitute* "libcloud/test/compute/test_ssh_client.py"
                (("class ShellOutSSHClientTests")
                 "@unittest.skip(\"Guix container doesn't have ssh service\")
-class ShellOutSSHClientTests")
-               ;; See <https://issues.apache.org/jira/browse/LIBCLOUD-924>.
-               (("'.xf0.x90.x8d.x88'") "b'\\xF0\\x90\\x8D\\x88'")
-               (("'.xF0', '.x90', '.x8D', '.x88'")
-                "b'\\xF0', b'\\x90', b'\\x8D', b'\\x88'"))
+class ShellOutSSHClientTests"))
              #t))
          (add-before 'check 'copy-secret
            (lambda _
@@ -16235,14 +17037,14 @@ requirements is not met.")
 (define-public python-pysocks
   (package
     (name "python-pysocks")
-    (version "1.7.0")
+    (version "1.7.1")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "PySocks" version))
        (sha256
         (base32
-         "0z4p31bpqm893cf87qqgb30k7nwd8kqfjwwjm5cvxb6zbyj1w0yr"))))
+         "184sg65mbmih6ljblfsxcmq5js5l7dj3gpn618w9q5dy3rbh921z"))))
     (build-system python-build-system)
     (arguments `(#:tests? #f))
     (home-page "https://github.com/Anorov/PySocks")
@@ -16276,6 +17078,44 @@ ignoring formatting changes.")
 (define-public python2-pydiff
   (package-with-python2 python-pydiff))
 
+(define-public python-pydub
+  (package
+    (name "python-pydub")
+    (version "0.24.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "pydub" version))
+       (sha256
+        (base32
+         "0sfwfq7yjv4bl3yqbmizszscafvwf4zr40hzbsy7rclvzyznh333"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-ffmpeg-path
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((ffmpeg (assoc-ref inputs "ffmpeg")))
+               (substitute* '("pydub/utils.py")
+                 (("return \"ffmpeg\"")
+                  (string-append "return \"" ffmpeg "/bin/ffmpeg\""))
+                 (("return \"ffplay\"")
+                  (string-append "return \"" ffmpeg "/bin/ffplay\""))
+                 (("return \"ffprobe\"")
+                  (string-append "return \"" ffmpeg "/bin/ffprobe\""))
+                 (("warn\\(\"Couldn't find ff") "# warn\\(\"Couldn't find ff"))
+               #t))))))
+    (home-page "https://pydub.com")
+    (inputs
+     `(("ffmpeg" ,ffmpeg)))
+    (propagated-inputs
+     `(("python-scipy" ,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
+@code{ffmpeg} to open various audio formats.")
+    (license license:expat))) ; MIT license
+
 (define-public python-tqdm
   (package
     (name "python-tqdm")
@@ -16741,14 +17581,14 @@ such as figshare or Zenodo.")
         (base32
          "183kg1rhzz3hqizvphkd8hlbf1zxfx8737zhfkmqzxi71jmdw7pd"))))
     (build-system python-build-system)
+    (arguments
+     `(#:phases (modify-phases %standard-phases
+                  (replace 'check
+                    (lambda _
+                      (delete-file "setup.cfg")
+                      (invoke "py.test"))))))
     (native-inputs
-     `(("python-appdirs" ,python-appdirs)
-       ("python-distlib" ,python-distlib)
-       ("python-importlib-metadata" ,python-importlib-metadata)
-       ("python-filelock" ,python-filelock)
-       ("python-six" ,python-six)
-       ("python-tox" ,python-tox)
-       ("python-virtualenv" ,python-virtualenv)))
+     `(("python-pytest" ,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
@@ -16962,6 +17802,31 @@ user's @file{~/Trash} directory.")
                        (string-append (getcwd) ":" (getenv "PYTHONPATH")))
                #t))))))))
 
+(define-public python-pyfavicon
+  (package
+    (name "python-pyfavicon")
+    (version "0.1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "pyfavicon" version))
+       (sha256
+        (base32 "15wfpa99hvcfsv8j0m8iprmydi2p4qkhm86qfx485244y0ia5mgx"))))
+    (build-system python-build-system)
+    (arguments
+     ;; There are no tests in the PyPI tarball and the tests from the
+     ;; repository require online data.
+     '(#:tests? #f))
+    (propagated-inputs
+     `(("python-aiohttp" ,python-aiohttp)
+       ("python-beautifulsoup4" ,python-beautifulsoup4)
+       ("python-pillow" ,python-pillow)))
+    (home-page "https://github.com/bilelmoussaoui/pyfavicon")
+    (synopsis "Async favicon fetcher")
+    (description
+     "@code{pyfavicon} is an async favicon fetcher.")
+    (license license:expat)))
+
 (define-public python-yapf
   (package
     (name "python-yapf")
@@ -16985,6 +17850,47 @@ style guide, even if the original code didn't violate the style guide.")
 (define-public python2-yapf
   (package-with-python2 python-yapf))
 
+(define-public python-yq
+  (package
+    (name "python-yq")
+    (version "2.11.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "yq" version))
+       (sha256
+        (base32
+         "1q4rky0a6n4izmq7slb91a54g8swry1xrbfqxwc8lkd3hhvlxxkl"))))
+    (build-system python-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "yq/__init__.py"
+               (("Popen\\(\\[\"jq")
+                (string-append
+                 "Popen([\""
+                 (assoc-ref inputs "jq")
+                 "/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)))
+    (home-page "https://github.com/kislyuk/yq")
+    (synopsis "Command-line YAML/XML processor")
+    (description
+     "This package provides @command{yq} and @command{xq} for processing YAML
+and XML respectively.  The processing is done through @command{jq}, @command{jq}
+filters can be used to process the data as it passes through.")
+    (license license:asl2.0)))
+
 (define-public python-gyp
   (let ((commit "5e2b3ddde7cda5eb6bc09a5546a76b00e49d888f")
         (revision "0"))
@@ -17123,6 +18029,58 @@ Week instances stringify to this form.")
 (define-public python2-isoweek
   (package-with-python2 python-isoweek))
 
+(define-public python-pyzbar
+  (package
+    (name "python-pyzbar")
+    (version "0.1.8")
+    (source
+     (origin
+       ;; There's no source tarball on PyPI.
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/NaturalHistoryMuseum/pyzbar")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1fqlfg5p2v9lzzzi0si2sz54lblprk6jjjhjw54b64lp58c1yhsl"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'remove-failing-test
+           (lambda _
+             ;; This tests if find_library was called once, but we remove
+             ;; the call in the stage below to make the library find libzbar.
+             (delete-file "pyzbar/tests/test_zbar_library.py")
+             #t))
+         (add-before 'build 'set-library-file-name
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((libzbar (assoc-ref inputs "zbar")))
+               (substitute* "pyzbar/zbar_library.py"
+                 (("find_library\\('zbar'\\)")
+                  (string-append "'" libzbar "/lib/libzbar.so.0'")))
+               #t))))))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("python-numpy" ,python-numpy)
+       ("python-pillow" ,python-pillow)))
+    (inputs
+     `(("zbar" ,zbar)))
+    (home-page "https://github.com/NaturalHistoryMuseum/pyzbar/")
+    (synopsis "Read one-dimensional barcodes and QR codes")
+    (description
+     "Read one-dimensional barcodes and QR codes using the zbar library.
+
+Features:
+
+@itemize
+@item Pure python
+@item Works with PIL / Pillow images, OpenCV / numpy ndarrays, and raw bytes
+@item Decodes locations of barcodes
+@item No dependencies, other than the zbar library itself
+@end itemize")
+    (license license:expat)))
+
 (define-public python-tokenize-rt
   (package
     (name "python-tokenize-rt")
@@ -17217,14 +18175,13 @@ based on the CPython 2.7 and 3.7 parsers.")
 (define-public python-typing
   (package
     (name "python-typing")
-    (version "3.7.4.1")
+    (version "3.7.4.3")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "typing" version))
        (sha256
-        (base32
-         "08xs7s5pyq99hbrzw23inczmidz90krvpv9q5p1qrvh6yzrydpwi"))))
+        (base32 "1j8wnz8c9s049w9xbf7ssr1dmgg4rz7vdfq7m880srzxhafgp1qi"))))
     (build-system python-build-system)
     (home-page "https://docs.python.org/3/library/typing.html")
     (synopsis "Type hints for Python")
@@ -17242,14 +18199,14 @@ and other tools.")
 (define-public python-typing-extensions
   (package
     (name "python-typing-extensions")
-    (version "3.7.4.2")
+    (version "3.7.4.3")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "typing_extensions" version))
        (sha256
         (base32
-         "1bk9b60s3rm1c8cwhv0bl3gh0x43153xxa6jpyllk9mc7jd5ivkr"))))
+         "0356ljrrplm917dqgpn8wjkw6j3mpp916gwxas7jhc3xc4xhgm4r"))))
     (build-system python-build-system)
     (home-page
      "https://github.com/python/typing/blob/master/typing_extensions/README.rst")
@@ -17279,13 +18236,13 @@ Included are implementations of:
 (define-public bpython
   (package
     (name "bpython")
-    (version "0.18")
+    (version "0.20.1")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "bpython" version))
        (sha256
-        (base32 "1hl6frgvr2lqaxqczl8amg9xih32b3gzv429vs0qrjb8wpdj1k2n"))))
+        (base32 "00vmkkc79mlnkyvwww1cr7bpwmf4p61704dhayz6kd0kc203hxvf"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -17308,11 +18265,14 @@ Included are implementations of:
     (propagated-inputs
      `(("python-pygments" ,python-pygments)
        ("python-requests" ,python-requests)
-       ("python-babel" ,python-babel)   ; optional, for internationalization
-       ("python-curtsies" ,python-curtsies) ; >= 0.1.18
+       ("python-curtsies" ,python-curtsies)
        ("python-greenlet" ,python-greenlet)
+       ("python-six" ,python-six)
+       ("python-wcwidth" ,python-wcwidth)
+       ;; optional dependencies
        ("python-urwid" ,python-urwid)   ; for bpython-urwid only
-       ("python-six" ,python-six)))
+       ("python-watchdog" ,python-watchdog)
+       ("python-jedi" ,python-jedi)))
     (native-inputs
      `(("python-sphinx" ,python-sphinx)
        ("python-mock" ,python-mock)))
@@ -17333,37 +18293,6 @@ interpreter. bpython's main features are
 @end enumerate")
     (license license:expat)))
 
-(define-public bpython2
-  (let ((base (package-with-python2
-               (strip-python2-variant bpython))))
-    (package (inherit base)
-      (name "bpython2")
-      (arguments
-       `(#:python ,python-2
-         #:phases
-         (modify-phases %standard-phases
-         (add-after 'unpack 'remove-failing-test
-           (lambda _
-             ;; Remove failing test. FIXME: make it pass
-             (delete-file "bpython/test/test_args.py")
-             ;; Disable failing test-cases (renaming inhibits they are
-             ;; discovered)
-             (substitute* "bpython/test/test_curtsies_repl.py"
-               (("^(\\s*def )(test_get_last_word_with_prev_line\\W)" _ a b)
-                (string-append a "xxx_off_" b))
-               (("^(\\s*def )(test_complex\\W)" _ a b)
-                (string-append a "xxx_off_" b)))
-             #t))
-           (add-before 'build 'rename-scripts
-             ;; rename the scripts to bypthon2, bpdb2, etc.
-             (lambda _
-               (substitute* "setup.py"
-                 (("^(\\s+'bpdb)(\\s+=.*',?)\\s*?$" _ name rest)
-                  (string-append name "2" rest "\n"))
-                 (("^(\\s+'bpython)(-\\S+)?(\\s+=.*',?)\\s*?$" _ name sub rest)
-                  (string-append name "2" (or sub "") rest "\n")))
-               #t))))))))
-
 (define-public python-pyinotify
   (package
     (name "python-pyinotify")
@@ -17667,8 +18596,108 @@ process-based child processes can safely be created anywhere within a
 gevent-powered application.")
     (license license:expat)))
 
-(define-public python2-gipc
-  (package-with-python2 python-gipc))
+(define-public python-beautifultable
+  (package
+    (name "python-beautifultable")
+    (version "1.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "beautifultable" version))
+       (sha256
+        (base32
+         "0wwlbifcbpzy3wfv6yzsxncarsngzizmmxbn6cy5gazlcq7h4k5x"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-wcwidth" ,python-wcwidth)))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-setup.py
+           (lambda _
+             (substitute* "setup.py"
+               (("setup\\(")
+                "setup(\n    test_suite=\"test\",")))))))
+    (home-page "https://github.com/pri22296/beautifultable")
+    (synopsis "Print ASCII tables for terminals")
+    (description "@code{python-beautifultable} provides a class for easily
+printing tabular data in a visually appealing ASCII format to a terminal.
+
+Features include, but are not limited to:
+@itemize
+@item Full customization of the look and feel of the table
+@item Row and column accessors.
+@item Full support for colors using ANSI sequences or any library.
+@item Plenty of predefined styles and option to create custom ones.
+@item Support for Unicode characters.
+@item Supports streaming table when data is slow to retrieve.
+@end itemize")
+    (license license:expat)))
+
+(define-public python-globber
+  (package
+    (name "python-globber")
+    (version "0.2.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/asharov/globber")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "055xf7ja7zjhxis0ab5fnfsx16fsvr5fvc6mixqybanwxh8sgfjk"))))
+    (build-system python-build-system)
+    (home-page "https://github.com/asharov/globber")
+    (synopsis "Library for string matching with glob patterns")
+    (description
+     "Globber is a Python library for matching file names against glob patterns.
+In contrast to other glob-matching libraries, it matches arbitrary strings and
+doesn't require the matched names to be existing files.  In addition, it
+supports the globstar @code{**} operator to match an arbitrary number of
+path components.")
+    (license license:asl2.0)))
+
+(define-public python-git-hammer
+  (package
+    (name "python-git-hammer")
+    (version "0.3.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/asharov/git-hammer")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0f9xlk86ijzpdj25hr1q4wcy8k72v3w470ngwm9mpdkfj8ng84wr"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-setup.py
+           (lambda _
+             (substitute* "setup.py"
+               (("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)))
+    (home-page "https://github.com/asharov/git-hammer")
+    (synopsis "Provide statistics for git repositories")
+    (description
+     "Git Hammer is a statistics tool for projects in git repositories.
+Its major feature is tracking the number of lines authored by each person for every
+commit, but it also includes some other useful statistics.")
+    (license license:asl2.0)))
 
 (define-public python-fusepy
   (package
@@ -17736,58 +18765,17 @@ interface to FUSE on various operating systems.  It's just one file and is
 implemented using @code{ctypes}.")
     (license license:isc)))
 
-(define-public python2-gdrivefs
-  (package
-    (name "python2-gdrivefs")
-    (version "0.14.9")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (pypi-uri "gdrivefs" version))
-       (sha256
-        (base32
-         "0v9sp2cfg4ki3wagkwf3rnfpjhvgf845anz3757il9z95yvvcvb7"))))
-    (build-system python-build-system)
-    (arguments
-     `(#:python ,python-2
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'build 'patch-setup-py
-           (lambda _
-             ;; Update requirements from dependency==version
-             ;; to dependency>=version
-             (substitute* "gdrivefs/resources/requirements.txt"
-               (("==") ">="))
-             #t)))))
-    (native-inputs
-     `(("python2-gipc" ,python2-gipc)
-       ("python2-gevent" ,python2-gevent)
-       ("python2-greenlet" ,python2-greenlet)
-       ("python2-httplib2" ,python2-httplib2)
-       ("python2-uritemplate" ,python2-uritemplate)
-       ("python2-oauth2client" ,python2-oauth2client)
-       ("python2-six" ,python2-six)))
-    (propagated-inputs
-     `(("python2-dateutil" ,python2-dateutil)
-       ("python2-fusepy" ,python2-fusepy)
-       ("python2-google-api-client" ,python2-google-api-client)))
-    (home-page "https://github.com/dsoprea/GDriveFS")
-    (synopsis "Mount Google Drive as a local file system")
-    (description "@code{gdrivefs} provides a FUSE wrapper for Google Drive
-under Python 2.7.")
-    (license license:gpl2)))
-
 (define-public python-userspacefs
   (package
     (name "python-userspacefs")
-    (version "1.0.13")
+    (version "2.0.3")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "userspacefs" version))
         (sha256
          (base32
-          "0kyz52jyxw3m7hqvn5g6z0sx9cq6k0nq1wj44lvdrghdljjgyk2z"))))
+          "1v6saf62ml3j63adalvlkj4iavxjbsbapl20b21mn73p7kvn4ayf"))))
     (build-system python-build-system)
     (propagated-inputs
      `(("python-fusepyng" ,python-fusepyng)))
@@ -17798,6 +18786,56 @@ under Python 2.7.")
 user-space file systems in Python.")
     (license license:gpl3+)))
 
+(define-public python-stone
+  (package
+    (name "python-stone")
+    (version "3.2.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "stone" version))
+        (sha256
+         (base32
+          "0xby5mpsms7b2rv8j6mvxzmzz5i9ii01brb9ylxz6kiv2i08piwv"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'change-version-requirements
+           (lambda _
+             ;; Match the requirement in test/requirements.txt
+             (substitute* "setup.py"
+               (("pytest < 5") "pytest < 7"))
+             ;; We don't care about a coverage report.
+             (substitute* "test/requirements.txt"
+               (("coverage.*") "coverage\n"))
+             #t))
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               ;; These tests don't import currectly.
+               (delete-file "test/test_js_client.py")
+               (delete-file "test/test_tsd_types.py")
+               (delete-file "test/test_python_gen.py")
+               (setenv "PYTHONPATH"
+                       (string-append (getcwd) ":"
+                                      (getenv "PYTHONPATH")))
+               (invoke "pytest"))
+             #t)))))
+    (propagated-inputs
+     `(("python-ply" ,python-ply)
+       ("python-six" ,python-six)))
+    (native-inputs
+     `(("python-coverage" ,python-coverage)
+       ("python-mock" ,python-mock)
+       ("python-pytest" ,python-pytest)
+       ("python-pytest-runner" ,python-pytest-runner)))
+    (home-page "https://github.com/dropbox/stone")
+    (synopsis "Official Api Spec Language for Dropbox")
+    (description
+     "Stone is an interface description language (IDL) for APIs.")
+    (license license:expat)))
+
 (define-public pybind11
   (package
     (name "pybind11")
@@ -18129,79 +19167,37 @@ validation testing and application logic.")
 (define-public python-numba
   (package
     (name "python-numba")
-    (version "0.46.0")
+    (version "0.51.2")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "numba" version))
        (sha256
         (base32
-         "1vnfzcq6fcnkmdms6114d49awvvj5181fl7z1wlha27qc2paxjy2"))))
+         "0s0777m8kq4l96i88zj78np7283v1n4878qfc1gvzb8l45bmkg8n"))))
     (build-system python-build-system)
     (arguments
-     `(#:modules ((guix build utils)
-                  (guix build python-build-system)
-                  (ice-9 ftw)
-                  (srfi srfi-1)
-                  (srfi srfi-26))
-       #:phases
+     `(#:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'disable-proprietary-features
            (lambda _
              (setenv "NUMBA_DISABLE_HSA" "1")
              (setenv "NUMBA_DISABLE_CUDA" "1")
              #t))
-         (add-after 'unpack 'remove-failing-tests
-           (lambda _
-             ;; FIXME: These tests fail for unknown reasons:
-             ;; test_non_writable_pycache, test_non_creatable_pycache, and
-             ;; test_frozen (all in numba.tests.test_dispatcher.TestCache).
-             (substitute* "numba/tests/test_dispatcher.py"
-               (("def test(_non_writable_pycache)" _ m)
-                (string-append "def guix_skip" m))
-               (("def test(_non_creatable_pycache)" _ m)
-                (string-append "def guix_skip" m))
-               (("def test(_frozen)" _ m)
-                (string-append "def guix_skip" m)))
-
-             ;; These tests fail because we don't run the tests from the build
-             ;; directory: test_setup_py_distutils, test_setup_py_setuptools
-             ;; They are in numba.tests.test_pycc.TestDistutilsSupport.
-             (substitute* "numba/tests/test_pycc.py"
-               (("def test(_setup_py_distutils|_setup_py_setuptools)" _ m)
-                (string-append "def guix_skip" m)))
-
-             ;; These tests fail because our version of Python does not have
-             ;; a recognizable front-end for the Numba distribution to use
-             ;; to check against.
-             (substitute* "numba/tests/test_entrypoints.py"
-               (("def test(_init_entrypoint)" _ m)
-                (string-append "def guix_skip" m)))
-             (substitute* "numba/tests/test_jitclasses.py"
-               (("def test(_jitclass_longlabel_not_truncated)" _ m)
-                (string-append "def guix_skip" m)))
-             #t))
          (replace 'check
-           (lambda _
-             (let ((cwd (getcwd)))
-               (setenv "PYTHONPATH"
-                       (string-append cwd "/build/"
-                                      (find (cut string-prefix? "lib" <>)
-                                            (scandir (string-append cwd "/build")))
-                                      ":"
-                                      (getenv "PYTHONPATH")))
-               ;; 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"
-                 (invoke "python3" "-m" "numba.runtests" "-v" "-m")))
-             #t)))))
+           (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")))))))
     (propagated-inputs
      `(("python-llvmlite" ,python-llvmlite)
        ("python-numpy" ,python-numpy)
        ("python-singledispatch" ,python-singledispatch)))
-    ;; Needed for tests.
-    (inputs
+    (native-inputs                      ;for tests
      `(("python-jinja2" ,python-jinja2)
        ("python-pygments" ,python-pygments)))
     (home-page "https://numba.pydata.org")
@@ -18760,7 +19756,7 @@ with a non-list @code{cdr}.")
     (description
      "This Python module provides line editing functions similar to the default
 Emacs-style ones of GNU Readline.  Unlike the Python standard library's
-@code{readline} package, this one allows access to those capabilties in settings
+@code{readline} package, this one allows access to those capabilities in settings
 outside of a standard command-line interface.  It is especially well-suited to
 interfacing with Urwid, due to a shared syntax for describing key inputs.
 
@@ -19063,13 +20059,13 @@ project.")
 (define-public python-trio
   (package
     (name "python-trio")
-    (version "0.16.0")
+    (version "0.17.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "trio" version))
        (sha256
-        (base32 "0g6gkwz6i05rm9ym4l4imxakzld7qcgxhb21kprilchcav87s1nz"))))
+        (base32 "0zcxirpdvvl54pbfkgw7vz984879xwvdygqfpggnam24is2zjp78"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -19122,6 +20118,54 @@ programs that do multiple things at the same time with parallelized I/O.")
     ;; Either license applies.
     (license (list license:expat license:asl2.0))))
 
+(define-public python-trio-typing
+  (package
+    (name "python-trio-typing")
+    (version "0.5.0")
+    (source
+     (origin
+      (method url-fetch)
+      (uri (pypi-uri "trio-typing" version))
+      (sha256
+       (base32 "1yvlj4vf3wyvp16dw6vyfm4i2idm8lvdc3fvjhi6mhm62zv7s07j"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda _
+             (invoke "pytest" "-vv"))))))
+    (native-inputs
+     `(("python-attrs" ,python-attrs)
+       ("python-pytest" ,python-pytest)))
+    (propagated-inputs
+     `(("python-mypy" ,python-mypy)
+       ("python-mypy-extensions"
+        ,python-mypy-extensions)
+       ("python-trio" ,python-trio)
+       ("python-typing-extensions"
+        ,python-typing-extensions)))
+    (home-page "https://github.com/python-trio/trio-typing")
+    (synopsis "Static type checking support for Trio and related projects")
+    (description
+     "This package provides:
+
+@itemize
+@item PEP 561 typing stubs packages for the Trio project packages:
+
+@itemize
+@item trio (@code{trio-stubs})
+@item outcome (@code{outcome-stubs})
+@item async_generator (@code{async_generator-stubs})
+@end itemize
+
+@item A package @code{trio_typing} containing types that Trio programs often
+want to refer to (@code{AsyncGenerator[Y, S]} and @code{TaskStatus[T])} and
+a mypy plugin that smooths over some limitations in the basic type hints.
+@end itemize")
+    ;; Either license applies.
+    (license (list license:expat license:asl2.0))))
+
 (define-public python-humanize
   (package
     (name "python-humanize")
@@ -19207,6 +20251,27 @@ file-based data structures that are @code{mmap}ped into memory so that many
 processes may share the same data.")
     (license license:asl2.0)))
 
+(define-public python-croniter
+  (package
+    (name "python-croniter")
+    (version "0.3.34")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "croniter" version))
+              (sha256
+               (base32
+                "0r79cx4v2dw4hzr0annkkxxis46c8hivq61sr39z6p7lcjsbk1ki"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-dateutil" ,python-dateutil)
+       ("python-natsort" ,python-natsort)))
+    (home-page "https://github.com/kiorky/croniter")
+    (synopsis "Iterate datetime objects with cron-like syntax")
+    (description
+     "@code{croniter} provides iteration for datetime object with cron-like
+format.")
+    (license license:expat)))
+
 (define-public python-pylzma
   (package
     (name "python-pylzma")
@@ -19483,13 +20548,13 @@ information in various formats.")
 (define-public python-cairosvg
   (package
     (name "python-cairosvg")
-    (version "2.4.2")
+    (version "2.5.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "CairoSVG" version))
        (sha256
-        (base32 "1bb7irxbaxxb9ahm3z5wsx1q96mm5gzskc7b6q07h9ikcnb8yrjf"))))
+        (base32 "1ylsisha2cc4w0yydxwhy7idkfw1inl9fsipxsrm7vyby080vi9z"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -19518,13 +20583,13 @@ qvarious formats: PDF, PostScript, PNG and even SVG.")
 (define-public python-pyphen
   (package
     (name "python-pyphen")
-    (version "0.9.5")
+    (version "0.10.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "Pyphen" version))
        (sha256
-        (base32 "08c9y69ry9d6m4zalhnalg86lsp9v2j5n1ziw5vxfmiihx83lqrv"))))
+        (base32 "0a1iwrgs4hzwzz60q4i1813kbzimhm0i4q8grh8vqkxhnkgj36vi"))))
     (build-system python-build-system)
     ;; TODO: Use the Guix system hyphenation packages hyphen-* rather than the
     ;; embedded set provided by upstream - like Debian does.
@@ -19620,17 +20685,42 @@ hard (or impossible without root privileges) to set the state of the real
 services to what you expect in your tests.")
     (license license:lgpl3+)))
 
+(define-public python-jsonplus
+  (package
+    (name "python-jsonplus")
+    (version "0.8.0")
+    (home-page "https://github.com/randomir/jsonplus")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "jsonplus" version))
+              (sha256
+               (base32
+                "05yv3dw813zwas9snz124k2hki49y268b3mx0gj9w7v1nrjmglq1"))))
+    (build-system python-build-system)
+    ;; 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)))
+    (synopsis "Serialize Python types to/from JSON")
+    (description
+     "This package provides functionality to serialize arbitrary data types
+to and from JSON.  Common data types are implemented and it is easy to
+register custom encoders and decoders.")
+    (license license:expat)))
+
 (define-public python-ujson
   (package
     (name "python-ujson")
-    (version "2.0.3")
+    (version "4.0.1")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "ujson" version))
         (sha256
          (base32
-          "18z9gb9ggy1r464b9q1gqs078mqgrkj6dys5a47529rqk3yfybdx"))
+          "1lr9lbm76y3ah1463jggwg2hjcb709mpns5f752wxxbgnd0n5kr6"))
         (modules '((guix build utils)))
         (snippet
          '(begin (delete-file-recursively "deps") #t))))
@@ -19664,28 +20754,6 @@ services to what you expect in your tests.")
 bindings for Python 3.")
     (license license:bsd-3)))
 
-(define-public python-ujson-1
-  (package
-    (inherit python-ujson)
-    (version "1.35")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (pypi-uri "ujson" version))
-       (sha256
-        (base32
-         "11jz5wi7mbgqcsz52iqhpyykiaasila4lq8cmc2d54bfa3jp6q7n"))))
-    (arguments
-     '(#:phases %standard-phases))
-    (native-inputs '())
-    (home-page "http://www.esn.me")
-    (description
-     "UltraJSON is an ultra fast JSON encoder and decoder written in pure C with
-bindings for Python 2.5+ and 3.")))
-
-(define-public python2-ujson-1
-  (package-with-python2 python-ujson-1))
-
 (define-public python-iocapture
   ;; The latest release is more than a year older than this commit.
   (let ((commit "fdc021c431d0840303908dfc3ca8769db383595c")
@@ -19813,11 +20881,11 @@ load balancing.")
      `(("python-pytest" ,python-pytest)
        ("which" ,which)))
     (home-page "https://pypi.org/project/pox/")
-    (synopsis "Python utilities for filesystem exploration and automated builds")
+    (synopsis "Python utilities for file system exploration and automated builds")
     (description
      "Pox provides a collection of utilities for navigating and manipulating
-filesystems.  This module is designed to facilitate some of the low level
-operating system interactions that are useful when exploring a filesystem on a
+file systems.  This module is designed to facilitate some of the low-level
+operating system interactions that are useful when exploring a file system on a
 remote host.  Pox provides Python equivalents of several shell commands such
 as @command{which} and @command{find}.  These commands allow automated
 discovery of what has been installed on an operating system, and where the
@@ -19865,14 +20933,14 @@ the syntactic logic to configure and launch jobs in an execution environment.")
 (define-public python-flit
   (package
     (name "python-flit")
-    (version "2.1.0")
+    (version "3.0.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "flit" version))
        (sha256
         (base32
-         "0h5vvmqinqzn97mr3ix7zx53af9ad4fimjjwqpx88yp8qhz4r5bc"))))
+         "14q8qa48bli2mniznc8b54qkwvhbik4kw99y01fi5gzzl620zzml"))))
     (build-system python-build-system)
     (arguments
      `(#:tests? #f)) ; XXX: Check requires network access.
@@ -20017,12 +21085,23 @@ Notation (CSON).")
              (invoke "python" "-X" "dev" "-m" "unittest" "-v" "test")))
          (add-after 'unpack 'disable-tests
            (lambda* _
-             (substitute* "test/test_selector.py"
-               ;; XXX: This test fails for unknown reason inside the build
-               ;; environment.
+             ;; 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_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
@@ -20141,15 +21220,31 @@ tests.")
 (define-public python-gssapi
   (package
     (name "python-gssapi")
-    (version "1.6.5")
+    (version "1.6.9")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "gssapi" version))
        (sha256
         (base32
-         "02i5s7998dg5kcr4m0xwamd8vjqk1816xbzldyp68l91f6bynwcr"))))
+         "1fa78pn5jzfbwf3y6mj4fc8sh11wjf1hwh5qv39cdlxb71qsq2hb"))))
     (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         ;; Work around
+         ;; https://github.com/pythongssapi/python-gssapi/issues/220.
+         (add-before 'check 'disable-failing-tests
+           (lambda _
+             (let ((reason "Disabled failing test (see: \
+https://github.com/pythongssapi/python-gssapi/issues/220)."))
+               (substitute* "gssapi/tests/test_high_level.py"
+                 ((".*def test_add_with_impersonate.*" all)
+                  (string-append all "        self.skipTest('" reason "')\n")))
+               (substitute* "gssapi/tests/test_raw.py"
+                 ((".*def test_.*impersonate_name.*" all)
+                  (string-append all "        self.skipTest('" reason "')\n")))
+               #t))))))
     (propagated-inputs
      `(("python-decorator" ,python-decorator)
        ("python-six" ,python-six)))
@@ -20166,7 +21261,7 @@ tests.")
     (description
      "Python-GSSAPI provides both low-level and high level wrappers around the
 GSSAPI C libraries.  While it focuses on the Kerberos mechanism, it should
-also be useable with other GSSAPI mechanisms.")
+also be usable with other GSSAPI mechanisms.")
     (license license:isc)))
 
 (define-public python-check-manifest
@@ -20242,12 +21337,55 @@ files.  These files are used to translate strings in android apps.")
      `(("python-pytest-cov" ,python-pytest-cov)
        ("python-pytest-timeout" ,python-pytest-timeout)))
     (home-page "https://github.com/gorakhargosh/watchdog")
-    (synopsis "Filesystem events monitoring")
-    (description "This package provides a way to monitor filesystem events
+    (synopsis "File system events monitoring")
+    (description "This package provides a way to monitor file system events
 such as a file modification and trigger an action.  This is similar to inotify,
 but portable.")
     (license license:asl2.0)))
 
+(define-public python-watchgod
+  (package
+    (name "python-watchgod")
+    (version "0.6")
+    (source
+     (origin
+       ;; There are no tests in the PyPI tarball.
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/samuelcolvin/watchgod")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1lqx44wkryakgpyqj3m0hsz61bqr07vc7smgzh188374hwvscp66"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda _
+             (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)))
+    (home-page "https://github.com/samuelcolvin/watchgod")
+    (synopsis "Simple, modern file watching and code reload in Python")
+    (description
+     "Simple, modern file watching and code reload in Python inspired by
+@code{watchdog}.  Among the differences are a unified approach for each
+operating systems and an elegant approach to concurrency using threading.")
+    (license license:expat)))
+
 (define-public python-wget
   (package
     (name "python-wget")
@@ -20471,13 +21609,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)))
+      `(("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)))
     (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.")
@@ -20500,9 +21638,9 @@ content models.")
      `(("python-cffi" ,python-cffi)))
     (home-page "https://github.com/xattr/xattr")
     (synopsis
-     "Python wrapper for extended filesystem attributes")
+     "Python wrapper for extended file system attributes")
     (description "This package provides a Python wrapper for using extended
-filesystem attributes.  Extended attributes extend the basic attributes of files
+file system attributes.  Extended attributes extend the basic attributes of files
 and directories in the file system.  They are stored as name:data pairs
 associated with file system objects (files, directories, symlinks, etc).")
     (license license:expat)))
@@ -20711,13 +21849,13 @@ information for your operating system.")
 (define-public python-canonicaljson
   (package
     (name "python-canonicaljson")
-    (version "1.1.4")
+    (version "1.4.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "canonicaljson" version))
        (sha256
-        (base32 "09cpacc8yvcc74i63pdmlfaahh77dnvbyw9zf29wml2zzwqfbg25"))))
+        (base32 "0c86g0vvzdcg3nrcsqnbzlfhpprc2i894p8i14hska56yl27d6w9"))))
     (build-system python-build-system)
     (propagated-inputs
      `(("python-six" ,python-six)
@@ -21105,16 +22243,47 @@ randomness (including real life dice) and different wordlists (including
 cryptographically signed ones).")
     (license license:gpl3+)))
 
+(define-public python-dictdiffer
+  (package
+    (name "python-dictdiffer")
+    (version "0.8.1")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "dictdiffer" version))
+              (sha256
+               (base32
+                "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)))
+    (home-page "https://github.com/inveniosoftware/dictdiffer")
+    (synopsis "Diff and patch Python dictionary objects")
+    (description
+     "Dictdiffer is a Python module that helps you to diff and patch
+dictionaries.")
+    (license license:expat)))
+
 (define-public pyzo
   (package
     (name "pyzo")
-    (version "4.10.2")
+    (version "4.11.2")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "pyzo" version))
        (sha256
-        (base32 "1zplxcb78qy8qibifmnsx5i9gnlfmw9n6nr4yflsabpxw57mx4m1"))))
+        (base32 "1jk5f79lj09vnsdk9h01w21p9h49z2hhf8xhkx8471pjbg9vrlzr"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -21124,8 +22293,8 @@ cryptographically signed ones).")
              ;; Tests fail with "Permission denied: '/homeless-shelter'".
              (setenv "HOME" "/tmp")
              #t)))
-       ;; Tests fail with "Uncaught Python exception: invalid literal for
-       ;; int() with base 10: 'test'".
+       ;; Tests fail with "Uncaught Python exception: python: undefined
+       ;; symbol: objc_getClass".
        #:tests? #f))
     (propagated-inputs
      `(("python-pyqt" ,python-pyqt)))
@@ -21277,7 +22446,7 @@ allows you, from Python code, to “fix” invalid (X)HTML markup.")
     (build-system python-build-system)
     (home-page "https://github.com/mattgiles/mujson")
     (synopsis "Use the fastest JSON functions available at import time")
-    (description "This packages selects the fastest JSON functions available
+    (description "This package selects the fastest JSON functions available
 at import time.")
     (license license:expat)))
 
@@ -21515,10 +22684,10 @@ RFC 3464.")
     (home-page "https://flufli18n.readthedocs.io")
     (synopsis "API for Python internationalization")
     (description
-     "This package provides a high level, convenient API for managing
-internationalization translation contexts in Python application.  There is a
+     "This package provides a high-level, convenient API for managing
+internationalization/translation contexts in Python applications.  There is a
 simple API for single-context applications, such as command line scripts which
-only need to translate into one language during the entire course of thei
+only need to translate into one language during the entire course of their
 execution.  There is a more flexible, but still convenient API for multi-context
 applications, such as servers, which may need to switch language contexts for
 different tasks.")
@@ -21601,3 +22770,684 @@ and have a maximum lifetime built-in.")
      "This package provides a debug print command and other development tools.
 It adds a simple and readable way to print stuff during development.")
     (license license:expat)))
+
+(define-public python-dateparser
+  (package
+    (name "python-dateparser")
+    (version "0.7.6")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "dateparser" version))
+       (sha256
+        (base32
+         "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)))
+    (native-inputs
+     `(("python-mock" ,python-mock)
+       ("python-parameterized" ,python-parameterized)
+       ("tzdata" ,tzdata-for-tests)))
+    (arguments
+     `(;; TODO: Of 23320 tests, 6 fail and 53 error.
+       #:tests? #f
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'check 'set-check-environment
+           (lambda* (#:key inputs #:allow-other-keys)
+             (setenv "TZ" "UTC")
+             (setenv "TZDIR"
+                     (string-append (assoc-ref inputs "tzdata")
+                                    "/share/zoneinfo"))
+             #t)))))
+    (home-page "https://github.com/scrapinghub/dateparser")
+    (synopsis
+     "Date parsing library designed to parse dates from HTML pages")
+    (description
+     "@code{python-dateparser} provides modules to easily parse localized
+dates in almost any string formats commonly found on web pages.")
+    (license license:bsd-3)))
+
+(define-public python-dparse
+  (package
+    (name "python-dparse")
+    (version "0.5.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "dparse" version))
+        (sha256
+          (base32
+            "0rzkg3nymsbwdjc0ms2bsajkda02jipwyp3xk97qj71f21lz3dd1"))))
+    (build-system python-build-system)
+    (native-inputs
+      `(("python-pytest" ,python-pytest)))
+    (propagated-inputs
+      `(("python-packaging" ,python-packaging)
+        ("python-pyyaml" ,python-pyyaml)
+        ("python-toml" ,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.")
+    (license license:expat)))
+
+(define-public python-dpath
+  (package
+    (name "python-dpath")
+    (version "2.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "dpath" version))
+       (sha256
+        (base32
+         "1ymi9ssk7i0mx3mviplf4csfvzibdd6wyj4qzj6s487n9xgnp85y"))))
+    (build-system python-build-system)
+    (native-inputs
+     `(("python-hypothesis" ,python-hypothesis)
+       ("python-mock" ,python-mock)
+       ("python-nose" ,python-nose)))
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (add-installed-pythonpath inputs outputs)
+             ;; This invokation is taken from tox.ini.
+             (invoke "nosetests" "-d" "-v" "tests/"))))))
+    (home-page "https://github.com/akesterson/dpath-python")
+    (synopsis "Filesystem-like pathing and searching for dictionaries")
+    (description
+     "@code{python-dpath} is a library for accessing and searching
+dictionaries via /slashed/paths ala xpath.
+
+Basically it lets you glob over a dictionary as if it were a filesystem.  It
+allows you to specify globs (ala the bash eglob syntax, through some advanced
+fnmatch.fnmatch magic) to access dictionary elements, and provides some
+facility for filtering those results.")
+    (license license:expat)))
+
+(define-public python-safety
+  (package
+    (name "python-safety")
+    (version "1.9.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "safety" version))
+        (sha256
+          (base32
+            "1j801xsxfzavjbzhhc934awvnk1b7jc0qsw3jp3ys0241mlj1gr3"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'disable-tests
+           (lambda _
+             (substitute* "tests/test_safety.py"
+               ;; requires network
+               (("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)))
+    (home-page "https://github.com/pyupio/safety")
+    (synopsis "Check installed dependencies for known vulnerabilities")
+    (description "Safety checks installed dependencies for known vulnerabilities.
+By default it uses the open Python vulnerability database Safety DB.")
+  (license license:expat)))
+
+(define-public python-pypandoc
+  (package
+    (name "python-pypandoc")
+    (version "1.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "pypandoc" version))
+       (sha256
+        (base32
+         "1zvn9764cf7kkjkmr9gw6wc8adpk06qxr1rhxwa9pg0zmdvrk90l"))))
+    (build-system python-build-system)
+    (inputs
+     `(("pandoc" ,pandoc)
+       ("pandoc-citeproc" ,pandoc-citeproc)))
+    (propagated-inputs
+     `(("wheel" ,python-wheel)))
+    (native-inputs
+     `(("texlive" ,(texlive-union (list texlive-amsfonts
+                                        texlive-fonts-ec
+                                        texlive-latex-hyperref
+                                        texlive-latex-oberdiek
+                                        texlive-lm
+                                        texlive-xcolor)))))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-before 'check 'disable-tests
+           (lambda _
+             ;; Disable test requiring network access
+             (substitute* "tests.py"
+               (("test_basic_conversion_from_http_url")
+                "skip_test_basic_conversion_from_http_url"))
+             ;; Needed by texlive-union to generate fonts
+             (setenv "HOME" "/tmp")
+             #t)))))
+    (home-page "https://github.com/bebraw/pypandoc")
+    (synopsis "Python wrapper for pandoc")
+    (description "pypandoc is a thin Python wrapper around pandoc
+and pandoc-citeproc.")
+    (license license:expat)))
+
+(define-public python-rnc2rng
+  (package
+    (name "python-rnc2rng")
+    (version "2.6.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "rnc2rng" version))
+       (sha256
+        (base32
+         "1kmp3iwxxyzjsd47j2sprd47ihhkwhb3yydih3af5bbfq0ibh1w8"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-rply" ,python-rply)))
+    (arguments
+     `(#:phases (modify-phases %standard-phases
+                  (replace 'check
+                    (lambda _
+                      (invoke "python" "test.py"))))))
+    (home-page "https://github.com/djc/rnc2rng")
+    (synopsis "Convert RELAX NG Compact to regular syntax")
+    (description
+     "This package provides the @command{rnc2rng} command-line tool as well as
+a Python library to convert RELAX NG schemata in Compact syntax (rnc) to
+equivalent schemata in the XML-based default RELAX NG syntax.")
+    (license license:expat)))
+
+(define-public python-telethon
+  (package
+    (name "python-telethon")
+    (version "1.17.5")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+              (url "https://github.com/LonamiWebs/Telethon")
+              (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0l9fhdrq576vllgi9aam45xzw5xi6jhgdv5zz8i4ygssdp7cm8jl"))))
+    (build-system python-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (invoke "py.test" "-v"))
+             #t)))))
+    (propagated-inputs
+     `(("python-rsa" ,python-rsa)
+       ("python-pyaes" ,python-pyaes)))
+    (native-inputs
+     `(("python-pytest" ,python-pytest)
+       ("python-pytest-asyncio" ,python-pytest-asyncio)
+       ("python-pytest-trio" ,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
+programs that can interact with Telegram.")
+    (license license:expat)))
+
+(define-public python-citeproc-py
+  (package
+    (name "python-citeproc-py")
+    (version "0.5.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "citeproc-py" version))
+       (sha256
+        (base32
+         "00aaff50jy4j0nakdzq9258z1gzrac9baarli2ymgspj88jg5968"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-lxml" ,python-lxml)
+       ("python-rnc2rng" ,python-rnc2rng)))
+    (home-page
+     "https://github.com/brechtm/citeproc-py")
+    (synopsis "Citations and bibliography formatter")
+    (description
+     "Citeproc-py is a CSL processor for Python.  It aims to implement the
+CSL 1.0.1 specification.  citeproc-py can output styled citations and
+bibliographies in a number of different output formats.  Currently supported
+are plain text, reStructuredText and HTML.")
+    (license license:bsd-2)))
+
+(define-public python-inform
+  (package
+    (name "python-inform")
+    (version "1.23.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "inform" version))
+        (sha256
+          (base32
+            "0dvc5klbnbryrvspp45nmlg02g40j7xspcz7lqsm0c0dj0z29zdz"))))
+    (build-system python-build-system)
+    (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)))
+    (propagated-inputs
+      `(("python-arrow" ,python-arrow)
+        ("python-six" ,python-six)))
+    (home-page "https://inform.readthedocs.io")
+    (synopsis "Print & logging utilities for communicating with user")
+    (description
+      "Inform is designed to display messages from programs that are typically run from
+a console.  It provides a collection of ‘print’ functions that allow you to simply and
+cleanly print different types of messages.")
+    (license license:gpl3+)))
+
+(define-public python-nestedtext
+  (package
+    (name "python-nestedtext")
+    (version "1.0.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "nestedtext" version))
+        (sha256
+          (base32
+            "0xjx863n7yd1xmkwhy48lhmqrmlzgbx3civhk386hvrzyq4sx148"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:tests? #f))  ; PyPI tarball lacks tests
+    (propagated-inputs
+      `(("python-inform" ,python-inform)))
+    (home-page "https://nestedtext.org")
+    (synopsis "Human readable and writable data interchange format")
+    (description
+      "NestedText is a file format for holding data that is to be entered, edited, or
+viewed by people.  It allows data to be organized into a nested collection of
+dictionaries, lists, and strings.  In this way it is similar to JSON and YAML, but
+without the complexity and risk of YAML and without the syntatic clutter of JSON.
+NestedText is both simple and natural.  Only a small number of concepts and rules must
+be kept in mind when creating it.  It is easily created, modified, or viewed with
+a text editor and easily understood and used by both programmers and non-programmers.")
+    (license license:expat))) ; MIT license
+
+(define-public python-parallel
+  (package
+    (name "python-parallel")
+    (version "1.6.4.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://www.parallelpython.com/downloads/pp/pp-"
+             version ".zip"))
+       (sha256
+        (base32
+         "1mzk4yabxj6r149fswhis18hd8dnag5sj8i4wb06450zq3pi8dh7"))))
+    (native-inputs
+     `(("unzip" ,unzip)))
+    (build-system python-build-system)
+    (arguments '(#:tests? #f))  ; No test suite.
+    (home-page "https://www.parallelpython.com")
+    (synopsis "Parallel and distributed programming for Python")
+    (description "Parallel Python module (PP) provides an easy and efficient
+way to create parallel-enabled applications for SMP computers and clusters.
+PP module features cross-platform portability and dynamic load balancing.
+Thus applications written with PP will parallelize efficiently even on
+heterogeneous and multi-platform clusters (including clusters running other
+applications with variable CPU loads).")
+    (license license:bsd-3)))
+
+(define-public python2-parallel
+  (package-with-python2 python-parallel))
+
+(define-public python-djvulibre
+  (package
+    (name "python-djvulibre")
+    (version "0.8.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "python-djvulibre" version))
+       (sha256
+        (base32 "1c0lvpg7j2525cv52s3q5sg7hfnakkb8rmghg0jc02gshsxmrj4f"))))
+    (build-system python-build-system)
+    (native-inputs
+     `(("ghostscript" ,ghostscript)
+       ("pkg-config" ,pkg-config)
+       ("python-nose" ,python-nose)))
+    (inputs
+     `(("djvulibre" ,djvulibre)
+       ("python-cython" ,python-cython)))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-tests
+           (lambda _
+             ;; Unit tests try to load the 'dllpath.py' and fail, because it
+             ;; doesn't make sense on GNU/Linux.
+             (delete-file "djvu/dllpath.py")
+             #t)))))
+    (synopsis "Python bindings for DjVuLibre")
+    (description "This is a set of Python bindings for the DjVuLibre library.")
+    (home-page "https://jwilk.net/software/python-djvulibre")
+    (license license:gpl2)))
+
+(define-public python2-djvulibre
+  (package-with-python2 python-djvulibre))
+
+(define-public python-versioneer
+  (package
+    (name "python-versioneer")
+    (version "0.19")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "versioneer" version))
+       (sha256
+        (base32
+         "1bmg8y78am371rd9b4clf11b8g1h7xvq8q58z03jvgdwpsdx7zm4"))))
+    (build-system python-build-system)
+    (home-page
+     "https://github.com/python-versioneer/python-versioneer")
+    (synopsis
+     "Version-string management for VCS-controlled trees")
+    (description
+     "@code{versioneer} is a tool for managing a recorded version number in
+distutils-based python projects.  The goal is to remove the tedious and
+error-prone \"update the embedded version string\" step from your release
+process.")
+    (license license:public-domain)))
+
+(define-public python2-gamera
+  (package
+    (name "python2-gamera")
+    (version "3.4.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://gamera.informatik.hsnr.de/download/"
+                           "gamera-" version ".tar.gz"))
+       (sha256
+        (base32 "1g4y1kxk1hmxfsiz682hbxvwryqilnb21ci509m559yp7hcliiyy"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin
+           ;; Remove bundled libraries.
+           (for-each delete-file-recursively
+                     '("src/libpng-1.2.5"
+                       "src/libtiff"
+                       "src/zlib-1.2.8"))))))
+    (build-system python-build-system)
+    (inputs
+     `(("libpng" ,libpng)
+       ("libtiff" ,libtiff)
+       ("python2-wxpython" ,python2-wxpython)
+       ("zlib" ,zlib)))
+    (arguments
+     `(#:python ,python-2))
+    (synopsis "Framework for building document analysis applications")
+    (description
+     "Gamera is a toolkit for building document image recognition systems.")
+    (home-page "https://gamera.informatik.hsnr.de/")
+    (license license:gpl2+)))
+
+(define-public python-contextvars
+  (package
+    (name "python-contextvars")
+    (version "2.4")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "contextvars" version))
+        (sha256
+          (base32
+            "17n3w8c20kgkgc6khaafdhhlcdj4bzman4paxqsl7harma59137k"))))
+    (build-system python-build-system)
+    (propagated-inputs
+      `(("python-immutables" ,python-immutables)))
+    (home-page
+      "https://github.com/MagicStack/contextvars")
+    (synopsis "PEP 567 Backport")
+    (description "This package implements a backport of Python 3.7
+@code{contextvars} module (see PEP 567) for Python 3.6.")
+    (license license:asl2.0)))
+
+(define-public python-aiofiles
+  (package
+    (name "python-aiofiles")
+    (version "0.5.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "aiofiles" version))
+        (sha256
+          (base32
+            "1bqmv019x16qa3zah0z915cw6z4va3fjs60fk2s7vyah3gyvrrlq"))))
+    (build-system python-build-system)
+    (home-page "https://github.com/Tinche/aiofiles")
+    (synopsis "File support for @code{asyncio}")
+    (description "@code{python-aiofiles} is a library for handling local
+disk files in asyncio applications.")
+    (license license:asl2.0)))
+
+(define-public python-pyre-extensions
+  (package
+    (name "python-pyre-extensions")
+    (version "0.0.18")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "pyre-extensions" version))
+        (sha256
+          (base32
+            "0c5cbbqrfyjwakdh3kbwxis6mbrbwky1z1fqslgszgpcj4g43q30"))))
+    (build-system python-build-system)
+    (propagated-inputs
+      `(("python-typing-extensions"
+         ,python-typing-extensions)
+        ("python-typing-inspect" ,python-typing-inspect)))
+    (home-page "https://pyre-check.org")
+    (synopsis
+     "Type system extensions for use with @code{python-pyre}")
+    (description
+      "@code{python-pyre-extensions} defines extensions to the standard
+@code{typing} module that are supported by the Pyre typechecker.")
+    (license license:expat)))
+
+(define-public python-dataclasses
+  (package
+    (name "python-dataclasses")
+    (version "0.7")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "dataclasses" version))
+        (sha256
+          (base32
+            "1rh8111fbws2vxyf2qy2zw3x6p6cq1jfz8pf904gig5qwg56sjj9"))))
+    (build-system python-build-system)
+    (home-page
+      "https://github.com/ericvsmith/dataclasses")
+    (synopsis
+      "Backport of the @code{dataclasses} module for Python 3.6")
+    (description
+      "This is an implementation of PEP 557, Data Classes.  It is a
+backport of the @code{dataclasses} module for Python 3.6.")
+    (license license:asl2.0)))
+
+(define-public python-pywatchman
+  (package
+    (name "python-pywatchman")
+    (version "1.4.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "pywatchman" version))
+        (sha256
+          (base32
+            "1yf2gm20wc3djpb5larxii3l55xxby0il2ns3q0v1byyfnr7w16h"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:tests? #f)) ;there are none
+    (home-page
+      "https://facebook.github.io/watchman/")
+    (synopsis "Watchman client for python")
+    (description "@code{python-pywatchman} is a library to connect and
+query Watchman to discover file changes.")
+    (license license:bsd-3)))
+
+(define-public python-helpdev
+  (package
+    (name "python-helpdev")
+    (version "0.7.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "helpdev" version))
+        (sha256
+         (base32
+          "0gfvj28i82va7c264jl2p4cdsl3lpf9fpb9cyjnis55crfdafqmv"))))
+    (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 "pytest" "tests"))
+             #t)))))
+    (propagated-inputs
+     `(("python-importlib-metadata" ,python-importlib-metadata)))
+    (native-inputs
+     `(("python-pytest" ,python-pytest)))
+    (home-page "https://gitlab.com/dpizetta/helpdev")
+    (synopsis
+     "Extract information about the Python environment easily")
+    (description
+     "Helpdev is a library to easily extract information about the Python
+environment.")
+    (license license:expat)))
+
+(define-public python-qdarkstyle
+  (package
+    (name "python-qdarkstyle")
+    (version "2.8.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "QDarkStyle" version))
+        (sha256
+         (base32
+          "0883vzg35fzpyl1aiijzpfcdfvpq5vi325w0m7xkx7nxplh02fym"))))
+    (build-system python-build-system)
+    (arguments
+     `(;; Fails unable to detect valid Qt bindings even when
+       ;; added as native-inputs.
+       #:tests? #f))
+    (propagated-inputs
+     `(("python-helpdev" ,python-helpdev)
+       ("python-qtpy" ,python-qtpy)))
+    (home-page
+     "https://github.com/ColinDuquesnoy/QDarkStyleSheet")
+    (synopsis
+     "Complete dark stylesheet for Python and Qt applications")
+    (description "QDarkStyle is the most complete dark stylesheet for Python and
+Qt applications.")
+    (license license:expat)))
+
+(define-public python-bitstring
+  (package
+    (name "python-bitstring")
+    (version "3.1.7")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "bitstring" version))
+        (sha256
+         (base32
+          "0jl6192dwrlm5ybkbh7ywmyaymrc3cmz9y07nm7qdli9n9rfpwzx"))))
+    (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)
+               (with-directory-excursion "test"
+                 (invoke "pytest")))
+             #t)))))
+    (native-inputs
+     `(("python-pytest" ,python-pytest)))
+    (home-page "https://github.com/scott-griffiths/bitstring")
+    (synopsis
+     "Simple construction, analysis and modification of binary data")
+    (description
+     "Bitstring is a library for simple construction, analysis and modification
+ of binary data.")
+    (license license:expat)))
+
+(define-public python-pivy
+  (package
+    (name "python-pivy")
+    (version "0.6.5")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/coin3d/pivy")
+               (commit version)))
+        (file-name (git-file-name name version))
+        (sha256
+          (base32 "0vids7sxk8w5vr73xdnf8xdci71a7syl6cd35aiisppbqyyfmykx"))))
+    (build-system python-build-system)
+    (arguments
+      `(;; The test suite fails due to an import cycle between 'pivy' and '_coin'
+        #:tests? #f
+        #:phases
+        (modify-phases %standard-phases
+          (add-after 'unpack 'patch-cmake-include-dirs
+           (lambda _
+             ;; Patch buildsystem to respect Coin3D include directory
+             (substitute* "CMakeLists.txt"
+                          (("\\$\\{SoQt_INCLUDE_DIRS}")
+                           "${Coin_INCLUDE_DIR};${SoQt_INCLUDE_DIRS}"))
+             #t)))))
+    (native-inputs
+      `(("cmake" ,cmake)
+        ("swig" ,swig)))
+    (inputs
+      `(("python-wrapper" ,python-wrapper)
+        ("qtbase" ,qtbase)
+        ("libxi" ,libxi)
+        ("libice" ,libice)
+        ("soqt" ,soqt)
+        ("glew" ,glew)
+        ("coin3D" ,coin3D-4)))
+    (home-page "https://github.com/coin3d/pivy")
+    (synopsis "Python bindings to Coin3D")
+    (description
+      "Pivy provides python bindings for Coin, a 3D graphics library with an
+Application Programming Interface based on the Open Inventor 2.1 API.")
+    (license license:isc)))
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 45d7288817..fa9bf10e07 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -395,7 +395,39 @@ data types.")
                 " --exclude test_mmap"
                 ;; test_socket may hang and eventually run out of memory
                 ;; on some systems: <https://bugs.python.org/issue34587>.
-                " test_socket")))
+                " test_socket"
+                ,@(if (hurd-target?)
+                      '(" test_posix"      ;multiple errors
+                        " test_time"
+                        " test_pty"
+                        " test_shutil"
+                        " test_tempfile"   ;chflags: invalid argument:
+                                           ;  tbv14c9t/dir0/dir0/dir0/test0.txt
+                        " test_asyncio"    ;runs over 10min
+                        " test_os"         ;stty: 'standard input':
+                                           ;  Inappropriate ioctl for device
+                        " test_openpty"    ;No such file or directory
+                        " test_selectors"  ;assertEqual(NUM_FDS // 2, len(fds))
+                                           ;  32752 != 4
+                        " test_compileall" ;multiple errors
+                        " test_poll"       ;list index out of range
+                        " test_subprocess" ;runs over 10min
+                        " test_asyncore"   ;multiple errors
+                        " test_threadsignals"
+                        " test_eintr"      ;Process return code is -14
+                        " test_io"         ;multiple errors
+                        " test_logging"
+                        " test_signal"
+                        " test_threading"  ;runs over 10min
+                        " test_flags"      ;ERROR
+                        " test_bidirectional_pty"
+                        " test_create_unix_connection"
+                        " test_unix_sock_client_ops"
+                        " test_open_unix_connection"
+                        " test_open_unix_connection_error"
+                        " test_read_pty_output"
+                        " test_write_pty")
+                      '()))))
        ((#:phases phases)
        `(modify-phases ,phases
           ,@(if (hurd-system?)
@@ -488,6 +520,31 @@ data types.")
                                         (version-major+minor version)
                                         "/site-packages"))))))))
 
+(define-public python-3.9
+  (package (inherit python-3.8)
+    (name "python-next")
+    (version "3.9.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://www.python.org/ftp/python/"
+                                  version "/Python-" version ".tar.xz"))
+              (patches (search-patches
+                        "python-3.9-fix-tests.patch"
+                        "python-3-deterministic-build-info.patch"
+                        "python-3-search-paths.patch"))
+              (sha256
+               (base32
+                "1zq3k4ymify5ig739zyvx9s2ainvchxb1zpy139z74krr653y74r"))
+              (modules '((guix build utils)))
+              (snippet
+               '(begin
+                  ;; Delete the bundled copy of libexpat.
+                  (delete-file-recursively "Modules/expat")
+                  (substitute* "Modules/Setup"
+                    ;; Link Expat instead of embedding the bundled one.
+                    (("^#pyexpat.*") "pyexpat pyexpat.c -lexpat\n"))
+                  #t))))))
+
 ;; Current 3.x version.
 (define-public python-3 python-3.8)
 
@@ -581,7 +638,9 @@ for more information.")))
     (description
      "This package provides wrappers for the commands of Python@tie{}3.x such
 that they can be invoked under their usual name---e.g., @command{python}
-instead of @command{python3}.")))
+instead of @command{python3} or @command{pip} instead of @command{pip3}.
+To function properly, this package should not be installed together with the
+@command{python} package.")))
 
 (define-public python-wrapper (wrap-python3 python))
 (define-public python-minimal-wrapper (wrap-python3 python-minimal))
@@ -589,7 +648,7 @@ instead of @command{python3}.")))
 (define-public micropython
   (package
     (name "micropython")
-    (version "1.12")
+    (version "1.13")
     (source
       (origin
         (method url-fetch)
@@ -597,8 +656,7 @@ instead of @command{python3}.")))
                             "releases/download/v" version
                             "/micropython-" version ".tar.gz"))
         (sha256
-         (base32
-          "1fl1dm2aay23hyqbarnv69qj7z2wljcvkwmvfwfac8yadcv05zcq"))
+         (base32 "0lfl7dv5v9rqckslrjqy5swjri29x1nj5d79wxnjys4sq6r2xcws"))
       (modules '((guix build utils)))
       (snippet
        '(begin
diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index 25f811ac70..96a28ceb29 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -1,7 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2013, 2014, 2015 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
-;;; Copyright © 2015, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2015, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2015, 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016, 2017 Nikita <nikita@n0.is>
 ;;; Copyright © 2016 Thomas Danckaert <post@thomasdanckaert.be>
@@ -67,6 +67,7 @@
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnupg)
   #:use-module (gnu packages gperf)
+  #:use-module (gnu packages graphics)
   #:use-module (gnu packages gstreamer)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages icu4c)
@@ -195,7 +196,6 @@ system, and the core design of Django is reused in Grantlee.")
        ("libxslt" ,libxslt)
        ("libxtst" ,libxtst)
        ("mtdev" ,mtdev)
-       ("mariadb" ,mariadb "lib")
        ("mariadb-dev" ,mariadb "dev")
        ("nss" ,nss)
        ("postgresql" ,postgresql)
@@ -343,23 +343,39 @@ developers using C++ or QML, a CSS & JavaScript like language.")
     ;; Qt 5: assembler error; see <http://hydra.gnu.org/build/112526>.
     (supported-systems (delete "mips64el-linux" %supported-systems))))
 
+(define (qt5-urls component version)
+  "Return a list of URLs for VERSION of the Qt5 COMPONENT."
+  ;; We can't use a mirror:// scheme because these URLs are not exact copies:
+  ;; the layout differs between them.
+  (list (string-append "https://download.qt.io/official_releases/qt/"
+                       (version-major+minor version) "/" version
+                       "/submodules/" component "-everywhere-src-"
+                       version ".tar.xz")
+        (string-append "https://download.qt.io/archive/qt/"
+                       (version-major+minor version) "/" version
+                       "/submodules/" component "-everywhere-src-"
+                       version ".tar.xz")
+        (let ((directory (string-append "qt5" (string-drop component 2))))
+          (string-append "http://sources.buildroot.net/" directory "/"
+                         component "-everywhere-src-" version ".tar.xz"))
+        (string-append "https://distfiles.macports.org/qt5/"
+                       component "-everywhere-src-" version ".tar.xz")))
+
 (define-public qtbase
   (package
     (name "qtbase")
-    ;; TODO Remove ((gnu packages kde) qtbase-for-krita) when upgrading qtbase.
     (version "5.14.2")
     (source (origin
              (method url-fetch)
-             (uri (string-append "https://download.qt.io/official_releases/qt/"
-                                 (version-major+minor version) "/" version
-                                 "/submodules/" name "-everywhere-src-"
-                                 version ".tar.xz"))
+             (uri (qt5-urls name version))
              (sha256
               (base32
                "12mjsahlma9rw3vz9a6b5h2s6ylg8b34hxc2vnlna5ll429fgfa8"))
              ;; Use TZDIR to avoid depending on package "tzdata".
              (patches (search-patches "qtbase-use-TZDIR.patch"
-                                      "qtbase-moc-ignore-gcc-macro.patch"))
+                                      "qtbase-moc-ignore-gcc-macro.patch"
+                                      "qtbase-absolute-runpath.patch"
+                                      "qtbase-fix-krita-deadlock.patch"))
              (modules '((guix build utils)))
              (snippet
                ;; corelib uses bundled harfbuzz, md4, md5, sha3
@@ -371,6 +387,7 @@ developers using C++ or QML, a CSS & JavaScript like language.")
                                   "zlib"))
                   #t)))))
     (build-system gnu-build-system)
+    (outputs '("out" "debug"))
     (propagated-inputs
      `(("mesa" ,mesa)
        ;; Use which the package, not the function
@@ -404,7 +421,6 @@ developers using C++ or QML, a CSS & JavaScript like language.")
        ("libxslt" ,libxslt)
        ("libxtst" ,libxtst)
        ("mtdev" ,mtdev)
-       ("mariadb" ,mariadb "lib")
        ("mariadb-dev" ,mariadb "dev")
        ("nss" ,nss)
        ("openssl" ,openssl)
@@ -477,6 +493,9 @@ developers using C++ or QML, a CSS & JavaScript like language.")
                  "-opensource"
                  "-confirm-license"
 
+                 ;; Later stripped into the :debug output.
+                 "-force-debug-info"
+
                  ;; These features require higher versions of Linux than the
                  ;; minimum version of the glibc.  See
                  ;; src/corelib/global/minimum-linux_p.h.  By disabling these
@@ -601,37 +620,13 @@ developers using C++ or QML, a CSS & JavaScript like language.")
 ;; qt used to refer to the monolithic Qt 5.x package
 (define-deprecated qt qtbase)
 
-;; This variable is required by 'python-pyside-2-tools', which copies some
-;; qtbase executables that fail to run because RUNPATH refers to the
-;; wrong $ORIGIN.  TODO: Merge with qtbase in the next rebuild cycle.
-(define qtbase/next
-  (package
-    (inherit qtbase)
-    (source
-     (origin
-       (inherit (package-source qtbase))
-       (patches (append (origin-patches (package-source qtbase))
-                        (search-patches "qtbase-absolute-runpath.patch")))))))
-
-(define-public qtbase-for-krita
-  (hidden-package
-    (package
-      (inherit qtbase)
-      (source (origin
-                (inherit (package-source qtbase))
-                (patches (append (origin-patches (package-source qtbase))
-                                 (search-patches "qtbase-fix-krita-deadlock.patch"))))))))
-
 (define-public qtsvg
   (package (inherit qtbase)
     (name "qtsvg")
     (version "5.14.2")
     (source (origin
              (method url-fetch)
-             (uri (string-append "https://download.qt.io/official_releases/qt/"
-                                 (version-major+minor version) "/" version
-                                 "/submodules/" name "-everywhere-src-"
-                                 version ".tar.xz"))
+             (uri (qt5-urls name version))
              (sha256
               (base32
                "18dmfc8s428fzbk7k5vl3212b25455ayrz7s716nwyiy3ahgmmy7"))))
@@ -703,10 +698,7 @@ HostData=lib/qt5
     (version "5.14.2")
     (source (origin
              (method url-fetch)
-             (uri (string-append "https://download.qt.io/official_releases/qt/"
-                                 (version-major+minor version) "/" version
-                                 "/submodules/" name "-everywhere-src-"
-                                 version ".tar.xz"))
+             (uri (qt5-urls name version))
              (sha256
               (base32
                "132g4rlm61pdcpcrclr1rwpbrxn7va4wjfb021mh8pn1cl0wlgkk"))
@@ -744,10 +736,7 @@ support for MNG, TGA, TIFF and WBMP image formats.")))
     (version "5.14.2")
     (source (origin
              (method url-fetch)
-             (uri (string-append "https://download.qt.io/official_releases/qt/"
-                                 (version-major+minor version) "/" version
-                                 "/submodules/" name "-everywhere-src-"
-                                 version ".tar.xz"))
+             (uri (qt5-urls name version))
              (sha256
               (base32
                "0njlh6d327nll7d8qaqrwr5x15m9yzgyar2j45qigs1f7ah896my"))))
@@ -768,10 +757,7 @@ from within Qt 5.")))
     (version "5.14.2")
     (source (origin
              (method url-fetch)
-             (uri (string-append "https://download.qt.io/official_releases/qt/"
-                                 (version-major+minor version) "/" version
-                                 "/submodules/" name "-everywhere-src-"
-                                 version ".tar.xz"))
+             (uri (qt5-urls name version))
              (sha256
               (base32
                "1dyg1z4349k04yyzn8xbp4f5qjgm60gz6wgzp80khpilcmk8g6i1"))))
@@ -799,10 +785,7 @@ xmlpatternsvalidator.")))
     (version "5.14.2")
     (source (origin
              (method url-fetch)
-             (uri (string-append "https://download.qt.io/official_releases/qt/"
-                                 (version-major+minor version) "/" version
-                                 "/submodules/" name "-everywhere-src-"
-                                 version ".tar.xz"))
+             (uri (qt5-urls name version))
              (sha256
               (base32
                "0l0nhc2si6dl9r4s1bs45z90qqigs8jnrsyjjdy38q4pvix63i53"))))
@@ -843,10 +826,7 @@ with JavaScript and C++.")))
     (version "5.14.2")
     (source (origin
              (method url-fetch)
-             (uri (string-append "https://download.qt.io/official_releases/qt/"
-                                 (version-major+minor version) "/" version
-                                 "/submodules/" name "-everywhere-src-"
-                                 version ".tar.xz"))
+             (uri (qt5-urls name version))
              (sha256
               (base32
                "0a5wzin635b926b8prdwfazgy1vhyf8m6an64wp2lpkp78z7prmb"))))
@@ -867,10 +847,7 @@ with Bluetooth and NFC.")))
     (version "5.14.2")
     (source (origin
              (method url-fetch)
-             (uri (string-append "https://download.qt.io/official_releases/qt/"
-                                 (version-major+minor version) "/" version
-                                 "/submodules/" name "-everywhere-src-"
-                                 version ".tar.xz"))
+             (uri (qt5-urls name version))
              (sha256
               (base32
                "116amx4mnv50k0fpswgpr5x8wjny8nbffrjmld01pzhkhfqn4vph"))))
@@ -894,10 +871,7 @@ consume data received from the server, or both.")))
     (version "5.14.2")
     (source (origin
              (method url-fetch)
-             (uri (string-append "https://download.qt.io/official_releases/qt/"
-                                 (version-major+minor version) "/" version
-                                 "/submodules/" name "-everywhere-src-"
-                                 version ".tar.xz"))
+             (uri (qt5-urls name version))
              (sha256
               (base32
                "0qccpgbhyg9k4x5nni7xm0pyvaqia3zrcd42cn7ksf5h21lwmkxw"))))
@@ -927,10 +901,7 @@ recognition API for devices.")))
     (version "5.14.2")
     (source (origin
              (method url-fetch)
-             (uri (string-append "https://download.qt.io/official_releases/qt/"
-                                 (version-major+minor version) "/" version
-                                 "/submodules/" name "-everywhere-src-"
-                                 version ".tar.xz"))
+             (uri (qt5-urls name version))
              (sha256
               (base32
                "1sczzcvk3c5gczz53yvp8ma6gp8aixk5pcq7wh344c9md3g8xkbs"))
@@ -978,10 +949,7 @@ set of plugins for interacting with pulseaudio and GStreamer.")))
     (version "5.14.2")
     (source (origin
              (method url-fetch)
-             (uri (string-append "https://download.qt.io/official_releases/qt/"
-                                 (version-major+minor version) "/" version
-                                 "/submodules/" name "-everywhere-src-"
-                                 version ".tar.xz"))
+             (uri (qt5-urls name version))
              (sha256
               (base32
                "0al3yypy3fin62n8d1859jh0mn0fbpa161l7f37hgd4gf75365nk"))
@@ -1038,10 +1006,7 @@ compositor libraries.")))
     (version "5.14.2")
     (source (origin
              (method url-fetch)
-             (uri (string-append "https://download.qt.io/official_releases/qt/"
-                                 (version-major+minor version) "/" version
-                                 "/submodules/" name "-everywhere-src-"
-                                 version ".tar.xz"))
+             (uri (qt5-urls name version))
              (sha256
               (base32
                "08ga9a1lwj83872nxablk602z1dq0la6jqsiicvd7m1sfbfpgnd6"))))
@@ -1072,10 +1037,7 @@ interacting with serial ports from within Qt.")))
     (version "5.14.2")
     (source (origin
              (method url-fetch)
-             (uri (string-append "https://download.qt.io/official_releases/qt/"
-                                 (version-major+minor version) "/" version
-                                 "/submodules/" name "-everywhere-src-"
-                                 version ".tar.xz"))
+             (uri (qt5-urls name version))
              (sha256
               (base32
                "14bahg82jciciqkl74q9hvf3a8kp3pk5v731vp2416k4b8bn4xqb"))))
@@ -1107,10 +1069,7 @@ and others.")))
     (version "5.14.2")
     (source (origin
              (method url-fetch)
-             (uri (string-append "https://download.qt.io/official_releases/qt/"
-                                 (version-major+minor version) "/" version
-                                 "/submodules/" name "-everywhere-src-"
-                                 version ".tar.xz"))
+             (uri (qt5-urls name version))
              (sha256
               (base32
                "0x7q66994pw6cd0f505bmirw1sssqs740zaw8lyqqqr32m2ch7bx"))))
@@ -1131,10 +1090,7 @@ popular web engines, Qt WebKit 2 and Qt WebEngine.")))
     (version "5.14.2")
     (source (origin
              (method url-fetch)
-             (uri (string-append "https://download.qt.io/official_releases/qt/"
-                                 (version-major+minor version) "/" version
-                                 "/submodules/" name "-everywhere-src-"
-                                 version ".tar.xz"))
+             (uri (qt5-urls name version))
              (sha256
               (base32
                "05rl657848fsprsnabdqb5z363c6drjc32k59223vl351f8ihhgb"))))
@@ -1167,10 +1123,7 @@ OpenGL ES 2.0 and can be used in HTML5 canvas elements")))
     (version "5.14.2")
     (source (origin
              (method url-fetch)
-             (uri (string-append "https://download.qt.io/official_releases/qt/"
-                                 (version-major+minor version) "/" version
-                                 "/submodules/" name "-everywhere-src-"
-                                 version ".tar.xz"))
+             (uri (qt5-urls name version))
              (sha256
               (base32
                "0jzzcm7z5njkddzfhmyjz4dbbzq8h93980cci4479zc4xq9r47y6"))))
@@ -1220,10 +1173,7 @@ positioning and geolocation plugins.")))
     (version "5.14.2")
     (source (origin
              (method url-fetch)
-             (uri (string-append "https://download.qt.io/official_releases/qt/"
-                                 (version-major+minor version) "/" version
-                                 "/submodules/" name "-everywhere-src-"
-                                 version ".tar.xz"))
+             (uri (qt5-urls name version))
              (sha256
               (base32
                "1iakl3hlyg51ri1czmis8mmb257b0y1zk2a2knybd3mq69wczc2v"))))
@@ -1248,10 +1198,7 @@ that helps in Qt development.")))
     (version "5.14.2")
     (source (origin
              (method url-fetch)
-             (uri (string-append "https://download.qt.io/official_releases/qt/"
-                                 (version-major+minor version) "/" version
-                                 "/submodules/" name "-everywhere-src-"
-                                 version ".tar.xz"))
+             (uri (qt5-urls name version))
              (sha256
               (base32
                "1zlvg3hc6h70d789g3kv6dxbwswzkskkm00bdgl01grwrdy4izg9"))
@@ -1272,10 +1219,7 @@ ECMAScript and Qt.")))
     (version "5.14.2")
     (source (origin
              (method url-fetch)
-             (uri (string-append "https://download.qt.io/official_releases/qt/"
-                                 (version-major+minor version) "/" version
-                                 "/submodules/" name "-everywhere-src-"
-                                 version ".tar.xz"))
+             (uri (qt5-urls name version))
              (sha256
               (base32
                "0qa4dlhn3iv9yvaic8hw86v6h8rn9sgq8xjfdaym04pfshfyypfm"))))
@@ -1296,10 +1240,7 @@ can be used to build complete interfaces in Qt Quick.")))
     (version "5.14.2")
     (source (origin
              (method url-fetch)
-             (uri (string-append "https://download.qt.io/official_releases/qt/"
-                                 (version-major+minor version) "/" version
-                                 "/submodules/" name "-everywhere-src-"
-                                 version ".tar.xz"))
+             (uri (qt5-urls name version))
              (sha256
               (base32
                "0q0mk2mjlf9ll0gdrdzxy8096s6g9draaqiwrlvdpa7lv14x7xzs"))))
@@ -1321,10 +1262,7 @@ not available.")))
     (version "5.14.2")
     (source (origin
              (method url-fetch)
-             (uri (string-append "https://download.qt.io/official_releases/qt/"
-                                 (version-major+minor version) "/" version
-                                 "/submodules/" name "-everywhere-src-"
-                                 version ".tar.xz"))
+             (uri (qt5-urls name version))
              (sha256
               (base32
                "03xmwhapv0b2qj661iaqqrvhxc7qiid0acrp6rj85824ha2pyyj8"))))
@@ -1348,10 +1286,7 @@ coloring, and many more.")))
     (version "5.14.2")
     (source (origin
              (method url-fetch)
-             (uri (string-append "https://download.qt.io/official_releases/qt/"
-                                 (version-major+minor version) "/" version
-                                 "/submodules/" name "-everywhere-src-"
-                                 version ".tar.xz"))
+             (uri (qt5-urls name version))
              (sha256
               (base32
                "00wd3h465waxdghg2vdhs5pkj0xikwjn88l12477dksm8zdslzgp"))))
@@ -1378,10 +1313,7 @@ and mobile applications targeting TV-like form factors.")))
     (version "5.14.2")
     (source (origin
              (method url-fetch)
-             (uri (string-append "https://download.qt.io/official_releases/qt/"
-                                 (version-major+minor version) "/" version
-                                 "/submodules/" name "-everywhere-src-"
-                                 version ".tar.xz"))
+             (uri (qt5-urls name version))
              (sha256
               (base32
                "141pfschv6zmcvvn3pi7f5vb4nf96zpngy80f9bly1sn58syl303"))
@@ -1409,10 +1341,7 @@ also contains functionality to support data models and executable content.")))
     (version "5.14.2")
     (source (origin
              (method url-fetch)
-             (uri (string-append "https://download.qt.io/official_releases/qt/"
-                                 (version-major+minor version) "/" version
-                                 "/submodules/" name "-everywhere-src-"
-                                 version ".tar.xz"))
+             (uri (qt5-urls name version))
              (sha256
               (base32
                "0lg8x7g7dkf95xwxq8b4yw4ypdz68igkscya96xwbklg3q08gc39"))))
@@ -1429,10 +1358,7 @@ purchasing goods and services.")))
     (version "5.14.2")
     (source (origin
              (method url-fetch)
-             (uri (string-append "https://download.qt.io/official_releases/qt/"
-                                 (version-major+minor version) "/" version
-                                 "/submodules/" name "-everywhere-src-"
-                                 version ".tar.xz"))
+             (uri (qt5-urls name version))
              (sha256
               (base32
                "1drvm15i6n10b6a1acgarig120ppvqh3r6fqqdn8i3blx81m5cmd"))))
@@ -1456,10 +1382,7 @@ selecting one of the charts themes.")
     (version "5.14.2")
     (source (origin
              (method url-fetch)
-             (uri (string-append "https://download.qt.io/official_releases/qt/"
-                                 (version-major+minor version) "/" version
-                                 "/submodules/" name "-everywhere-src-"
-                                 version ".tar.xz"))
+             (uri (qt5-urls name version))
              (sha256
               (base32
                "080fkpxg70m3c697wfnkjhca58b7r1xsqd559jzb21985pdh6g3j"))))
@@ -1483,10 +1406,7 @@ customized by using themes or by adding custom items and labels to them.")
     (version "5.14.2")
     (source (origin
              (method url-fetch)
-             (uri (string-append "https://download.qt.io/official_releases/qt/"
-                                 (version-major+minor version) "/" version
-                                 "/submodules/" name "-everywhere-src-"
-                                 version ".tar.xz"))
+             (uri (qt5-urls name version))
              (sha256
               (base32
                "0pi6p7bq54kzij2p69cgib7n55k69jsq0yqq09yli645s4ym202g"))))
@@ -1512,10 +1432,7 @@ implementation of OAuth and OAuth2 authenticathon methods for Qt.")))
     (version "5.14.2")
     (source (origin
              (method url-fetch)
-             (uri (string-append "https://download.qt.io/official_releases/qt/"
-                                 (version-major+minor version) "/" version
-                                 "/submodules/" name "-everywhere-src-"
-                                 version ".tar.xz"))
+             (uri (qt5-urls name version))
              (sha256
               (base32
                "1mhlws5w0igf5hw0l90p6dz6k7w16dqfbnk2li0zxdmayk2039m6"))))
@@ -1549,10 +1466,7 @@ processes or computers.")))
     (version "5.14.2")
     (source (origin
              (method url-fetch)
-             (uri (string-append "https://download.qt.io/official_releases/qt/"
-                                 (version-major+minor version) "/" version
-                                 "/submodules/" name "-everywhere-src-"
-                                 version ".tar.xz"))
+             (uri (qt5-urls name version))
              (sha256
               (base32
                "1nn6kspbp8hfkz1jhzc1qx1m9z7r1bgkdqgi9n4vl1q25yk8x7jy"))))
@@ -1584,7 +1498,7 @@ message.")))
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://github.com/manisandro/qtspell.git")
+             (url "https://github.com/manisandro/qtspell")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
@@ -1614,10 +1528,7 @@ using the Enchant spell-checking library.")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "https://download.qt.io/official_releases/qt/"
-                           (version-major+minor version) "/" version
-                           "/submodules/" name "-everywhere-src-"
-                           version ".tar.xz"))
+       (uri (qt5-urls name version))
        (sha256
         (base32
          "0iy9lsl6zxlkca6x2p1506hbj3wmhnaipg23z027wfccbnkxcsg1"))
@@ -2243,7 +2154,7 @@ itself.")
 (define-public python2-pyqt-4
   (package (inherit python-pyqt)
     (name "python2-pyqt")
-    (version "4.12")
+    (version "4.12.3")
     (source
       (origin
         (method url-fetch)
@@ -2253,11 +2164,12 @@ itself.")
                          version ".tar.gz"))
         (sha256
          (base32
-          "1nw8r88a5g2d550yvklawlvns8gd5slw53yy688kxnsa65aln79w"))))
+          "0wnlasg62rm5d39nq1yw4namcx2ivxgzl93r5f2vb9s0yaz5l3x0"))))
     (native-inputs
-     `(("python-sip" ,python2-sip)
-       ("qt" ,qt-4)))
+     `(("qt" ,qt-4)))
     (inputs `(("python" ,python-2)))
+    (propagated-inputs
+     `(("python-sip" ,python2-sip)))
     (arguments
      `(#:tests? #f ; no check target
        #:modules ((srfi srfi-1)
@@ -2286,6 +2198,31 @@ itself.")
                        "--sipdir" sip)))))))
     (license (list license:gpl2 license:gpl3)))) ; choice of either license
 
+(define-public python-qtpy
+  (package
+    (name "python-qtpy")
+    (version "1.9.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "QtPy" version))
+       (sha256
+          (base32
+           "13cw8l7zrhbdi03k1wl1pg9xdl4ahdfa7yz8gd0f23sxnm22rdrd"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-pyside2" ,python-pyside-2)))
+    (arguments
+     `(;; Not all supported bindings are packaged. Especially PyQt4.
+       #:tests? #f))
+    (home-page "https://github.com/spyder-ide/qtpy")
+    (synopsis
+     "Qt bindings (PyQt5, PyQt4 and PySide) and additional custom QWidgets")
+    (description
+     "Provides an abstraction layer on top of the various Qt bindings
+(PyQt5, PyQt4 and PySide) and additional custom QWidgets.")
+    (license license:expat)))
+
 (define-public qscintilla
   (package
     (name "qscintilla")
@@ -2779,7 +2716,7 @@ generate Python bindings for your C or C++ code.")
     (inputs
      `(("python-pyside-2" ,python-pyside-2)
        ("python-shiboken-2" ,python-shiboken-2)
-       ("qtbase" ,qtbase/next)))
+       ("qtbase" ,qtbase)))
     (native-inputs
      `(("python" ,python-wrapper)))
     (arguments
@@ -2842,3 +2779,35 @@ being fully customizable and easy to extend.")
     ;; According to LICENSE, either version 2 or version 3 of the GNU GPL may
     ;; be used.
     (license (list license:gpl2 license:gpl3))))
+
+
+(define-public soqt
+  (let ((commit-ref "fb8f655632bb9c9c60e0ff9fa69a5ba22d3ff99d")
+        (revision "1"))
+    (package
+    (name "soqt")
+    (version (git-version "1.6.0" revision commit-ref))
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/coin3d/soqt")
+               (commit commit-ref)
+               (recursive? #t)))
+        (file-name (git-file-name name version))
+        (sha256
+          (base32 "16vikb3fy8rmk10sg5g0gy2c343hi3x7zccsga90ssnkzpq6m032"))))
+    (build-system cmake-build-system)
+    (arguments '(#:tests? #f)) ; There are no tests
+    (native-inputs
+      `(("pkg-config" ,pkg-config)
+        ("cmake" ,cmake)))
+    (inputs
+      `(("qtbase" ,qtbase)
+        ("coin3D" ,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
+also compatible with SGI and TGS Open Inventor, and the API is based on the API
+of the InventorXt GUI component toolkit.")
+    (license license:bsd-3))))
diff --git a/gnu/packages/radio.scm b/gnu/packages/radio.scm
index c4c9cc4417..95e86e560a 100644
--- a/gnu/packages/radio.scm
+++ b/gnu/packages/radio.scm
@@ -2,10 +2,10 @@
 ;;; Copyright © 2017, 2018, 2019, 2020 Arun Isaac <arunisaac@systemreboot.net>
 ;;; Copyright © 2019, 2020 Christopher Howard <christopher@librehacker.com>
 ;;; Copyright © 2019, 2020 Evan Straw <evan.straw99@gmail.com>
-;;; Copyright © 2020 Guillaume Le Vaillant <glv@posteo.net>
+;;; Copyright © 2020, 2021 Guillaume Le Vaillant <glv@posteo.net>
 ;;; Copyright © 2020 Danny Milosavljevic <dannym@scratchpost.org>
 ;;; Copyright © 2020 Charlie Ritter <chewzerita@posteo.net>
-;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2020, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -159,15 +159,14 @@ this package.  E.g.: @code{(udev-rules-service 'rtl-sdr rtl-sdr)}")
 (define-public chirp
   (package
     (name "chirp")
-    (version "20200430")
+    (version "20201121")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://trac.chirp.danplanet.com/chirp_daily/daily-"
                            version "/chirp-daily-" version ".tar.gz"))
        (sha256
-        (base32
-         "060fzplgmpfrk6wkfaasx7phpfk90mmylk6drbwzk4f9r1655vda"))))
+        (base32 "092jryb1jn9li6zj243awv6piz1lhghqsm4phrz7j0rgqf76dy4n"))))
     (build-system python-build-system)
     (inputs
      `(("python2-libxml2" ,python2-libxml2)
@@ -418,7 +417,7 @@ environment.")
 (define-public gnuradio-osmosdr
   (package
     (name "gnuradio-osmosdr")
-    (version "0.2.0")
+    (version "0.2.2")
     (source
      (origin
        (method git-fetch)
@@ -427,7 +426,7 @@ environment.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1rdx7fa0xiq0qmgrrbby7z1bblmqhl9qh9jqpsznzxkx91f17ypd"))))
+        (base32 "1aqj5cylipmmjh1x1kb2j8262hxq6mi86dgb2zphj94wvsab2ghx"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("doxygen" ,doxygen)
@@ -539,7 +538,7 @@ to the fix block above.
 (define-public gqrx
   (package
     (name "gqrx")
-    (version "2.12.1")
+    (version "2.14.4")
     (source
      (origin
        (method git-fetch)
@@ -548,7 +547,7 @@ to the fix block above.
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "00alf3q6y313xpx6p7v43vqsphd2x4am4q362lw21bcy9wc4jidw"))))
+        (base32 "0m4ncydihz4n4i80c252vk3c5v672yab1jv85n6ndn7a92xv3ilq"))))
     (build-system qt-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
@@ -568,7 +567,7 @@ to the fix block above.
        ("qtsvg" ,qtsvg)
        ("volk" ,volk)))
     (arguments
-     `(#:tests? #f)) ; No tests
+     `(#:tests? #f))                    ; no tests
     (synopsis "Software defined radio receiver")
     (description "Gqrx is a software defined radio (SDR) receiver implemented
 using GNU Radio and the Qt GUI toolkit.")
@@ -578,14 +577,14 @@ using GNU Radio and the Qt GUI toolkit.")
 (define-public fldigi
   (package
     (name "fldigi")
-    (version "4.1.13")
+    (version "4.1.17")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "http://www.w1hkj.com/files/fldigi/fldigi-"
                            version ".tar.gz"))
        (sha256
-        (base32 "0mlq4z5k3h466plij8hg9xn5xbjxk557g4pw13cplpf32fhng224"))))
+        (base32 "1gzff60sn3h05279f9mdi1rkdws52m28shcil16911lvlq6ki13m"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
@@ -614,14 +613,14 @@ hardware.")
 (define-public flrig
   (package
     (name "flrig")
-    (version "1.3.51")
+    (version "1.3.52")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "http://www.w1hkj.com/files/flrig/flrig-"
                            version ".tar.gz"))
        (sha256
-        (base32 "0aq4x0ai9q08ypfhzfj2inc4z3q39zq1l6h9as1kil9yn4zbay61"))))
+        (base32 "18c154080vl25cy4l5amh96abm6kzm7mzld9h58pabc28yqq8zl8"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
@@ -1016,7 +1015,7 @@ gain and standing wave ratio.")
 (define-public dump1090
   (package
     (name "dump1090")
-    (version "3.8.1")
+    (version "4.0")
     (source
      (origin
        (method git-fetch)
@@ -1025,7 +1024,7 @@ gain and standing wave ratio.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0xg8rzrxqklx1m9ncxsd96dlkbjcsxfi2mrb859v50f07xysdyd8"))))
+        (base32 "1zacsqaqsiapljhzw31dwc4nld2rp98jm3ivkyznrhzk9n156p42"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
@@ -1053,12 +1052,12 @@ gain and standing wave ratio.")
 It can be used to decode the ADS-B signals that planes emit to indicate
 their position, altitude, speed, etc.")
     (home-page "https://github.com/flightaware/dump1090")
-    (license license:bsd-3)))
+    (license license:gpl2+)))
 
 (define-public rtl-433
   (package
     (name "rtl-433")
-    (version "20.02")
+    (version "20.11")
     (source
      (origin
        (method git-fetch)
@@ -1067,7 +1066,7 @@ their position, altitude, speed, etc.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "11991xky9gawkragdyg27qsf7kw5bhlg7ygvf3fn7ng00x4xbh1z"))))
+        (base32 "093bxjxkg7yf78wqj5gpijbfa2p05ny09qqsj84kzi1svnzsa369"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
@@ -1084,7 +1083,7 @@ from devices on the 433 MHz, 868 MHz, 315 MHz, 345 MHz and 915 MHz ISM bands.")
 (define-public multimon-ng
   (package
     (name "multimon-ng")
-    (version "1.1.8")
+    (version "1.1.9")
     (source
      (origin
        (method git-fetch)
@@ -1093,13 +1092,13 @@ from devices on the 433 MHz, 868 MHz, 315 MHz, 345 MHz and 915 MHz ISM bands.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1973xfyvzl1viz19zr83cgqlx5laxbjrca35rqabn6dlb6xb5xk8"))))
+        (base32 "01716cfhxfzsab9zjply9giaa4nn4b7rm3p3vizrwi7n253yiwm2"))))
     (build-system cmake-build-system)
     (inputs
      `(("libx11" ,libx11)
        ("pulseaudio" ,pulseaudio)))
     (arguments
-     '(#:tests? #f)) ; No test suite
+     '(#:tests? #f))                    ; no test suite
     (home-page "https://github.com/EliasOenal/multimon-ng")
     (synopsis "Decoder for digital radio transmission modes")
     (description "Multimon-ng can decode several digital radio transmission
@@ -1118,3 +1117,33 @@ modes:
 @item X10
 @end itemize")
     (license license:gpl2+)))
+
+(define-public nanovna-saver
+  (package
+    (name "nanovna-saver")
+    (version "0.3.8")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/NanoVNA-Saver/nanovna-saver")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0z83rwpnbbs1n74mx8dgh1d1crp90mannj9vfy161dmy4wzc5kpv"))))
+    (build-system python-build-system)
+    (native-inputs
+     `(("python-cython" ,python-cython)))
+    (inputs
+     `(("python-numpy" ,python-numpy)
+       ("python-pyqt" ,python-pyqt)
+       ("python-pyserial" ,python-pyserial)
+       ("python-scipy" ,python-scipy)))
+    (arguments
+     '(#:tests? #f))
+    (home-page "https://github.com/NanoVNA-Saver/nanovna-saver")
+    (synopsis "GUI for NanoVNA devices")
+    (description
+     "NanoVNA-Saver is a tool for reading, displaying and saving data from the
+NanoVNA vector network analyzers.")
+    (license license:gpl3+)))
diff --git a/gnu/packages/raspberry-pi.scm b/gnu/packages/raspberry-pi.scm
new file mode 100644
index 0000000000..cdea392fc7
--- /dev/null
+++ b/gnu/packages/raspberry-pi.scm
@@ -0,0 +1,237 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2020 Danny Milosavljevic <dannym@scratchpost.org>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages raspberry-pi)
+  #:use-module (gnu packages)
+  #:use-module (gnu packages admin)
+  #:use-module (gnu packages algebra)
+  #:use-module (gnu packages base)
+  #:use-module (gnu packages bash)
+  #:use-module (gnu packages commencement)
+  #:use-module (gnu packages cross-base)
+  #:use-module (gnu packages documentation)
+  #:use-module (gnu packages file)
+  #:use-module (gnu packages gcc)
+  #:use-module (gnu packages embedded)
+  #: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)
+  #:use-module (guix gexp)
+  #:use-module (guix store)
+  #:use-module (guix monads)
+  #:use-module (guix utils)
+  #:use-module (srfi srfi-1)
+  #:use-module (srfi srfi-2)
+  #:use-module (srfi srfi-26)
+  #:use-module (ice-9 match))
+
+(define-public bcm2835
+  (package
+    (name "bcm2835")
+    (version "1.64")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "http://www.airspayce.com/mikem/bcm2835/bcm2835-"
+                    version ".tar.gz"))
+              (sha256
+               (base32
+                "06s81540iz4vsh0cm6jwah2x0hih79v42pfa4pgr8kcbv56158h6"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f))    ; Would need to be root
+    ;; doc/html docs would not be installed anyway.
+    ;(native-inputs
+    ; `(("doxygen", doxygen)))
+    (synopsis "C library for Broadcom BCM 2835 as used in Raspberry Pi")
+    (description "This package provides a C library for Broadcom BCM 2835 as
+used in the Raspberry Pi")
+    (home-page "http://www.airspayce.com/mikem/bcm2835/")
+    (supported-systems '("armhf-linux" "aarch64-linux"))
+    (license license:gpl3)))
+
+(define raspi-gpio
+  (let ((commit "6d0769ac04760b6e9f33b4aa1f11c682237bf368")
+        (revision "1"))
+    (package
+      (name "raspi-gpio")
+      (version (git-version "0.1" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/RPi-Distro/raspi-gpio")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "1fia1ma586hwhpda0jz86j6i55andq0wncbhzhzvhf7yc773cpi4"))))
+      (build-system gnu-build-system)
+      (synopsis "State dumper for BCM270x GPIOs")
+      (description "Tool to help debug / hack at the BCM283x GPIO. You can dump
+  the state of a GPIO or (all GPIOs). You can change a GPIO mode and pulls (and
+  level if set as an output).  Beware this tool writes directly to the BCM283x
+  GPIO reisters, ignoring anything else that may be using them (like Linux
+  drivers).")
+      (home-page "https://github.com/RPi-Distro/raspi-gpio")
+      (supported-systems '("armhf-linux" "aarch64-linux"))
+      (license license:bsd-3))))
+
+(define %rpi-open-firmware-version "0.1")
+(define %rpi-open-firmware-origin
+  (origin
+   (method git-fetch)
+   (uri (git-reference
+         (url "https://github.com/librerpi/rpi-open-firmware")
+         (commit "6be45466e0be437a1b0b3512a86f3d9627217006")))
+   (file-name "rpi-open-firmware-checkout")
+   (sha256
+    (base32 "1wyxvv62i3rjicg4hd94pzbgpadinnrgs27sk39md706mm0qixbh"))))
+
+(define-public raspi-arm-chainloader
+  (package
+    (name "raspi-arm-chainloader")
+    (version %rpi-open-firmware-version)
+    (source %rpi-open-firmware-origin)
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f                   ; No tests exist
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (add-before 'build 'setenv
+           (lambda _
+             (setenv "CC" "arm-none-eabi-gcc")
+             (setenv "CXX" "arm-none-eabi-g++")
+             (setenv "AS" "arm-none-eabi-as")
+             (setenv "OBJCOPY" "arm-none-eabi-objcopy")
+             (setenv "BAREMETAL" "1")
+             #t))
+         (add-after 'setenv 'build-tlsf
+           (lambda _
+             (with-directory-excursion "tlsf"
+               ;; Note: Adding "-I../common -I../notc/include".
+               (invoke "make"
+                       "CFLAGS=-mtune=arm1176jzf-s -march=armv6zk -mfpu=vfp -mfloat-abi=softfp -I../common -I../notc/include"))))
+         (add-after 'build-tlsf 'build-common
+           (lambda _
+             (with-directory-excursion "common"
+               (invoke "make"
+                       ;; Note: Adding "-I.. -I../notc/include".
+                       "ARMCFLAGS=-mtune=arm1176jzf-s -march=armv6zk -marm -I.. -I../notc/include"))))
+         (add-after 'build-common 'build-notc
+           (lambda _
+             (with-directory-excursion "notc"
+               (invoke "make"))))
+         (add-after 'build-notc 'chdir
+           (lambda _
+             (chdir "arm_chainloader")
+             (substitute* "Makefile"
+              (("-I[.][.]/")
+               "-I../common -I../common/include -I../notc/include -I../")
+              (("-ltlsf")
+               "-L../common -L../notc -L../tlsf -ltlsf"))
+             #t))
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (libexec (string-append out "/libexec")))
+               (mkdir-p libexec)
+               (install-file "build/arm_chainloader.elf" libexec)
+               (install-file "build/arm_chainloader.map" libexec)
+               (install-file "build/arm_chainloader.bin" libexec)
+               #t))))))
+    (native-inputs
+     `(("binutils" ,(cross-binutils "arm-none-eabi"))
+       ("gcc" ,gcc-arm-none-eabi-6)))
+    (inputs
+     `())
+    (synopsis "Raspberry Pi ARM bootloader")
+    (description "This package provides a bootloader for the ARM part of a
+Raspberry Pi.  Note: It does not work on Raspberry Pi 1.")
+    (home-page "https://github.com/librerpi/rpi-open-firmware/")
+    (license license:gpl2+)))
+
+(define-public raspi-arm64-chainloader
+  (package
+    (inherit raspi-arm-chainloader)
+    (name "raspi-arm64-chainloader")
+    ;; These native-inputs especially don't contain a libc.
+    (native-inputs
+     `(("bash" ,bash)
+       ("binutils" ,binutils)
+       ("coreutils" ,coreutils)
+       ("file" ,file)
+       ("ld-wrapper" ,ld-wrapper)
+       ("make" ,gnu-make)
+       ("gcc" ,gcc-6)
+       ("locales" ,glibc-utf8-locales)))
+    (inputs
+     `())
+    (arguments
+     `(#:implicit-inputs? #f
+       ,@(substitute-keyword-arguments (package-arguments raspi-arm-chainloader)
+         ((#:phases phases)
+          `(modify-phases ,phases
+             (replace 'setenv
+               (lambda _
+                 (setenv "AS" "as") ; TODO: as-for-target
+                 (setenv "OBJCOPY" "objcopy")
+                 (setenv "CC" ,(cc-for-target))
+                 (setenv "CXX" ,(cc-for-target))
+                 (setenv "BAREMETAL" "1")
+                 #t))
+             (add-after 'setenv 'build-tlsf
+               (lambda _
+                 (with-directory-excursion "tlsf"
+                   (invoke "make"
+                           "CFLAGS=-I../common -I../notc/include"))))
+             (replace 'build-common
+               (lambda _
+                 (with-directory-excursion "common"
+                   ;; Autodetection uses the CC filename for detecting the architecture.
+                   ;; Since we are not using a cross-compiler, we side-step that.
+                   (invoke "make"
+                           "CFLAGS=-Ilib -I. -Iinclude -ffunction-sections -Wall -g -nostdlib -nostartfiles -ffreestanding -DBAREMETAL"))))
+             (replace 'build-notc
+               (lambda _
+                 (with-directory-excursion "notc"
+                   ;; Autodetection uses the CC filename for detecting the architecture.
+                   ;; Since we are not using a cross-compiler, we side-step that.
+                   (invoke "make"
+                           "CFLAGS=-Iinclude -g"))))
+             (replace 'chdir
+               (lambda _
+                 (chdir "arm64")
+                 (substitute* "Makefile"
+                  (("CFLAGS =")
+                   "CFLAGS = -I../common -I../common/include -I../notc/include -I.. -DBAREMETAL")
+                  (("-lcommon")
+                   "-L../common -L../notc -lcommon"))
+                 #t))
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (libexec (string-append out "/libexec")))
+               (mkdir-p libexec)
+               (install-file "arm64.elf" libexec)
+               (install-file "arm64.map" libexec)
+               (install-file "arm64.bin" libexec)
+               #t))))))))
+    (supported-systems '("aarch64-linux"))))
diff --git a/gnu/packages/rcm.scm b/gnu/packages/rcm.scm
index c61626d114..f8c7ba4200 100644
--- a/gnu/packages/rcm.scm
+++ b/gnu/packages/rcm.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2019 Josh Holland <josh@inv.alid.pw>
+;;; Copyright © 2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -27,13 +28,13 @@
 (define-public rcm
   (package
     (name "rcm")
-    (version "1.3.3")
+    (version "1.3.4")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://thoughtbot.github.io/rcm/dist/rcm-"
                                   version ".tar.gz"))
               (sha256
-               (base32 "1bqk7rrp1ckzvsvl9wghsr77m8xl3a7yc5gqdsisz492dx2j8mck"))))
+               (base32 "0jn2crdqcna0fyg7w7x1mcyjblzykd3lh4vdxhsd5x4w8hvsw4cv"))))
     (build-system gnu-build-system)
     (arguments '(#:phases
                  (modify-phases %standard-phases
diff --git a/gnu/packages/rdesktop.scm b/gnu/packages/rdesktop.scm
index 2e364b2b8e..30523deefe 100644
--- a/gnu/packages/rdesktop.scm
+++ b/gnu/packages/rdesktop.scm
@@ -1,7 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2015 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
-;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2019 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2019 Eric Bavier <bavier@member.fsf.org>
@@ -35,6 +35,7 @@
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gstreamer)
   #:use-module (gnu packages image)
+  #:use-module (gnu packages libusb)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages nettle)
   #:use-module (gnu packages pkg-config)
@@ -81,15 +82,16 @@ to remotely control a user's Windows desktop.")
 (define-public freerdp
   (package
     (name "freerdp")
-    (version "2.0.0-rc4")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                     (url "git://github.com/FreeRDP/FreeRDP.git")
-                     (commit version)))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32 "0546i0m2d4nz5jh84ngwzpcm3c43fp987jk6cynqspsmvapab6da"))))
+    (version "2.2.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "git://github.com/FreeRDP/FreeRDP")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "02zlg5r704zbryx09a5rjjf7q137kj16i9qh25dw9q1y69ri619n"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("docbook-xml" ,docbook-xml)
@@ -104,6 +106,7 @@ to remotely control a user's Windows desktop.")
        ("cups" ,cups)
        ("ffmpeg" ,ffmpeg)
        ("libjpeg" ,libjpeg-turbo)
+       ("libusb" ,libusb)
        ("libx11" ,libx11)
        ("libxkbcommon" ,libxkbcommon)
        ("libxkbfile" ,libxkbfile)
@@ -123,7 +126,6 @@ to remotely control a user's Windows desktop.")
      `(#:build-type "RELEASE"
        #:configure-flags
        (list "-DWITH_JPEG=ON"
-             "-DWITH_LIBSYSTEMD=OFF"
              ,@(if (string-prefix? "x86_64"
                                    (or (%current-target-system)
                                        (%current-system)))
diff --git a/gnu/packages/rdf.scm b/gnu/packages/rdf.scm
index e68e57818d..0841c1fd8d 100644
--- a/gnu/packages/rdf.scm
+++ b/gnu/packages/rdf.scm
@@ -1,11 +1,12 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2013, 2014, 2015 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2015, 2016, 2018 Ricardo Wurmus <rekado@elephly.net>
-;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2019 Julien Lepiller <julien@lepiller.eu>
 ;;; Copyright © 2020 Alexandros Theodotou <alex@zrythm.org>
 ;;; Copyright © 2020 Pjotr Prins <pjotr.guix@thebird.nl>
 ;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2020 pukkamustard <pukkamustard@posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -267,17 +268,17 @@ and triple stores.")
 (define-public serd
   (package
     (name "serd")
-    (version "0.30.4")
+    (version "0.30.8")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://download.drobilla.net/serd-"
                                  version ".tar.bz2"))
              (sha256
               (base32
-               "168rn3m32c59qbar120f83ibcnnd987ij9p053kybgl7cmm6358c"))))
+               "11zs53yx40mv62vxsl15mvdh7s17y5v6lgcgahdvzxgnan7w8bk7"))))
     (build-system waf-build-system)
     (arguments
-     `(#:tests? #f ; no check target
+     `(#:tests? #f                      ; no check target
        #:phases
        (modify-phases %standard-phases
          (add-before
@@ -301,14 +302,14 @@ ideal (e.g. in LV2 implementations or embedded applications).")
 (define-public sord
   (package
     (name "sord")
-    (version "0.16.4")
+    (version "0.16.8")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://download.drobilla.net/sord-"
                                  version ".tar.bz2"))
              (sha256
               (base32
-               "1mwh4qvp9q4vgrgg5bz9sgjhxscncrylf2b06h0q55ddwzs9hndi"))))
+               "052y7zllrg0bzyky2rmrrwnnf16p6bk7q40rq9mgm0mzm8p9sa3w"))))
     (build-system waf-build-system)
     (arguments
      `(#:tests? #f                      ; no check target
@@ -413,3 +414,32 @@ parser and serializer.")
     (description
      "This package contains RDF Collections flattener for @code{rdflib}.")
     (license license:asl2.0)))
+
+(define-public hdt-cpp
+  (package
+    (name "hdt-cpp")
+    (version "1.3.3")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/rdfhdt/hdt-cpp")
+                     (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1vsq80jnix6cy78ayag7v8ajyw7h8dqyad1q6xkf2hzz3skvr34z"))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("serd" ,serd)
+       ("zlib" ,zlib)))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("libtool" ,libtool)
+       ("pkg-config" ,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
+RDF data that can also be queried for Triple Patterns.  This package provides a
+C++ library as well as various command-line tools to to work with HDT.")
+(license license:lgpl2.1+)))
diff --git a/gnu/packages/re2c.scm b/gnu/packages/re2c.scm
index 427195fd5f..3b329617c7 100644
--- a/gnu/packages/re2c.scm
+++ b/gnu/packages/re2c.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2017 Sergei Trofimovich <slyfox@inbox.ru>
+;;; Copyright © 2017, 2020 Sergei Trofimovich <slyfox@inbox.ru>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -26,7 +26,7 @@
 (define-public re2c
   (package
     (name "re2c")
-    (version "1.2.1")
+    (version "2.0.3")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://github.com/skvadrik/" name
@@ -34,7 +34,7 @@
                                  name "-" version ".tar.xz"))
              (sha256
               (base32
-               "05xq0571mkgr20v827jm63nhsirr8arghg4fszzswrmrnl3dfk0s"))))
+               "0y22fiyv2pqmq8asb2p5hzcf7ibjdrz7nl16rlpzy8damaw1xg5j"))))
     (build-system gnu-build-system)
     (home-page "https://re2c.org/")
     (synopsis "Lexer generator for C/C++")
diff --git a/gnu/packages/regex.scm b/gnu/packages/regex.scm
index cb7a08e207..d37663bf5b 100644
--- a/gnu/packages/regex.scm
+++ b/gnu/packages/regex.scm
@@ -3,6 +3,7 @@
 ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2016, 2020 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2020 Brett Gilio <brettg@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -30,7 +31,7 @@
 (define-public re2
    (package
      (name "re2")
-     (version "2020-07-06")
+     (version "2020-11-01")
      (home-page "https://github.com/google/re2")
      (source (origin
                (method git-fetch)
@@ -38,7 +39,7 @@
                (file-name (git-file-name name version))
                (sha256
                 (base32
-                 "12a9r9y7ry3hq0qf4znl9j7pn9mb5k6xp1f8nrk1sagfj1a504mq"))))
+                 "0ii51fpp6fn51x4qyd99sy4r122s8ayh4x1srwhhijxlh8mzla5k"))))
      (build-system gnu-build-system)
      (arguments
       `(#:modules ((guix build gnu-build-system)
diff --git a/gnu/packages/rpc.scm b/gnu/packages/rpc.scm
index e26170942b..a0d979e3bb 100644
--- a/gnu/packages/rpc.scm
+++ b/gnu/packages/rpc.scm
@@ -2,6 +2,7 @@
 ;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2020 Brett Gilio <brettg@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -38,12 +39,13 @@
   #:use-module (gnu packages protobuf)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-xyz)
+  #:use-module (gnu packages regex)
   #:use-module (gnu packages tls))
 
 (define-public grpc
   (package
     (name "grpc")
-    (version "1.27.3")
+    (version "1.34.0")
     (outputs '("out" "static"))
     (source (origin
               (method git-fetch)
@@ -53,7 +55,7 @@
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0czmbwnafc7jnrrq2fnac2av83vs2q7q0wy4k11w9zbpld7j5h6d"))))
+                "1fs407hnlnm0b8sncjwys9rc7ia5nb7wxrpx39nq3pzzfs1lv3vq"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f ; no test target
@@ -63,6 +65,7 @@
              "-DgRPC_CARES_PROVIDER=package"
              "-DgRPC_SSL_PROVIDER=package"
              "-DgRPC_PROTOBUF_PROVIDER=package"
+             "-DgRPC_RE2_PROVIDER=package"
              (string-append "-DCMAKE_INSTALL_PREFIX="
                             (assoc-ref %outputs "out"))
              "-DCMAKE_INSTALL_LIBDIR=lib"
@@ -102,9 +105,11 @@
      `(("abseil-cpp" ,abseil-cpp)
        ("c-ares" ,c-ares/cmake)
        ("openssl" ,openssl)
+       ("re2" ,re2)
        ("zlib" ,zlib)))
     (native-inputs
-     `(("protobuf" ,protobuf)
+     `(("pkg-config" ,pkg-config)
+       ("protobuf" ,protobuf)
        ("python" ,python-wrapper)))
     (home-page "https://grpc.io")
     (synopsis "High performance universal RPC framework")
diff --git a/gnu/packages/rsync.scm b/gnu/packages/rsync.scm
index 214095aa61..f90feaf57f 100644
--- a/gnu/packages/rsync.scm
+++ b/gnu/packages/rsync.scm
@@ -4,6 +4,7 @@
 ;;; Copyright © 2017, 2019 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2019 Leo Famulari <leo@famulari.name>
+;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -70,7 +71,7 @@ files in the destination.")
 (define-public librsync
   (package
     (name "librsync")
-    (version "2.2.1")
+    (version "2.3.1")
        (source (origin
             (method git-fetch)
             (uri (git-reference
@@ -79,7 +80,7 @@ files in the destination.")
             (file-name (git-file-name name version))
             (sha256
              (base32
-              "08wdlxsa9zg2pyasz1lwg70d5psi4amv81v4yxwffx67ndzb9yp5"))))
+              "131cd4asmpm4nskidzgiy8xibbnpibvvbq857a0pcky77min5g4z"))))
    (build-system cmake-build-system)
    (inputs
     `(("popt" ,popt)))
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index d71764e027..b811cbd2c4 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -7,7 +7,7 @@
 ;;; 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, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2017, 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
 ;;; Copyright © 2017, 2018, 2019 Christopher Baines <mail@cbaines.net>
@@ -21,6 +21,9 @@
 ;;; Copyright © 2019 Diego N. Barbato <dnbarbato@posteo.de>
 ;;; Copyright © 2019 Brett Gilio <brettg@posteo.de>
 ;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
+;;; Copyright © 2020 Holgr Peters <holger.peters@posteo.de>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -145,16 +148,16 @@ a focus on simplicity and productivity.")
 (define-public ruby-2.7
   (package
     (inherit ruby)
-    (version "2.7.1")
+    (version "2.7.2")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "http://cache.ruby-lang.org/pub/ruby/"
+       (uri (string-append "https://cache.ruby-lang.org/pub/ruby/"
                            (version-major+minor version)
                            "/ruby-" version ".tar.gz"))
        (sha256
         (base32
-         "0674x98f542y02r7n2yv2qhmh97blqhi2mvh2dn5f000vlxlh66l"))
+         "1m63461mxi3fg4y3bspbgmb0ckbbb1ldgf9xi0piwkpfsk80cmvf"))
        (modules '((guix build utils)))
        (snippet `(begin
                    ;; Remove bundled libffi
@@ -185,6 +188,20 @@ a focus on simplicity and productivity.")
     (native-inputs
      `(("autoconf" ,autoconf)))))
 
+(define-public ruby-3.0
+  (package
+    (inherit ruby-2.7)
+    (version "3.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "http://cache.ruby-lang.org/pub/ruby/"
+                           (version-major+minor version)
+                           "/ruby-" version ".tar.xz"))
+       (sha256
+        (base32
+         "1cbcixwnr0y8q0lg67wjgplp06kjd6p6hjjh680csv3v0bpsxgv8"))))))
+
 (define-public ruby-2.5
   (package
     (inherit ruby)
@@ -226,7 +243,7 @@ a focus on simplicity and productivity.")
 (define-public mruby
   (package
     (name "mruby")
-    (version "2.0.0")
+    (version "2.1.2")
     (source
      (origin
        (method git-fetch)
@@ -236,7 +253,7 @@ a focus on simplicity and productivity.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "1r6w1asjshff43ymdwa6xmrkggza99mi2kw88k7ic6ag2j81hcj5"))))
+         "0fhfv8pi7i8jn2vgk2n2rjnbnfa12nhj514v8i4k353n7q4pmkh3"))))
     (build-system gnu-build-system)
     (arguments
      `(#:test-target "test"
@@ -646,8 +663,8 @@ outcomes of a code example.")
     (synopsis "Ripper-style abstract syntax tree to Ruby source generator")
     (description "Sorcerer generates Ruby code from a Ripper-like abstract
 syntax tree (i.e. S-Expressions).  Sorcerer is targeted mainly at small
-snippets of Ruby code, expressable in a single line.  Longer examples may be
-re-sourced, but they will be rendered in a single line format.")
+snippets of Ruby code, expressible in a single line.  Longer examples may be
+re-sourced, but they will be rendered in a single-line format.")
     (home-page "https://github.com/rspec-given/sorcerer")
     (license license:expat)))
 
@@ -1113,7 +1130,7 @@ line of code.")
              #t))
          (add-after 'unpack 'patch-pandoc-path
            (lambda* (#:key inputs #:allow-other-keys)
-             (let ((pandoc (string-append (assoc-ref inputs "ghc-pandoc")
+             (let ((pandoc (string-append (assoc-ref inputs "pandoc")
                                           "/bin/pandoc")))
                (substitute* "lib/pandoc-ruby.rb"
                  (("@@pandoc_path = 'pandoc'")
@@ -1133,7 +1150,7 @@ line of code.")
     (native-inputs
      `(("ruby-mocha" ,ruby-mocha)))
     (inputs
-     `(("ghc-pandoc" ,ghc-pandoc)))
+     `(("pandoc" ,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
@@ -1347,7 +1364,7 @@ Prawn module.")
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://github.com/prawnpdf/prawn-templates.git")
+             (url "https://github.com/prawnpdf/prawn-templates")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
@@ -1409,7 +1426,7 @@ loader for the file type associated with a filename extension, and it augments
      (origin
        (method git-fetch)               ;no test suite in distributed gem
        (uri (git-reference
-             (url "https://github.com/cjheath/treetop.git")
+             (url "https://github.com/cjheath/treetop")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
@@ -1472,7 +1489,7 @@ for performance optimizations in Ruby code.")
        (origin
          (method git-fetch)
          (uri (git-reference
-               (url "https://github.com/searls/gimme.git")
+               (url "https://github.com/searls/gimme")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
@@ -1533,7 +1550,7 @@ only what they care about.")
      (origin
        (method git-fetch)               ;no test suite in distributed gem
        (uri (git-reference
-             (url "https://github.com/testdouble/standard.git")
+             (url "https://github.com/testdouble/standard")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
@@ -1580,17 +1597,16 @@ to save time in the following ways:
 (define-public ruby-chunky-png
   (package
     (name "ruby-chunky-png")
-    (version "1.3.12")
+    (version "1.3.14")
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://github.com/wvanbergen/chunky_png.git")
+             (url "https://github.com/wvanbergen/chunky_png")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32
-         "0hn8ap7iib47qkqdp0awmxgma11z0lmk1ca3lp7c97ykhv7ij1zs"))))
+        (base32 "1m7y11ix38h5a2pj5v81qdmvqh980ql9hp62hk2dxwkwsa4nh22h"))))
     (build-system ruby-build-system)
     (arguments
      `(#:test-target "spec"
@@ -1637,7 +1653,12 @@ pixel, depending on the hardware).
 Performance: ChunkyPNG is reasonably fast for Ruby standards, by only using
 integer math and a highly optimized saving routine.
 @item Interoperability with RMagick.
-@end itemize")
+@end itemize
+
+ChunkyPNG is vulnerable to decompression bombs and can run out of memory when
+loading a specifically crafted PNG file.  This is hard to fix in pure Ruby.
+Deal with untrusted images in a separate process, e.g., by using @code{fork}
+or a background processing library.")
     (home-page "https://github.com/wvanbergen/chunky_png/wiki")
     (license license:expat)))
 
@@ -1699,7 +1720,7 @@ web pages.")
        (origin
          (method git-fetch)      ;no test suite in the distributed gem
          (uri (git-reference
-               (url "https://github.com/asciidoctor/asciidoctor-pdf.git")
+               (url "https://github.com/asciidoctor/asciidoctor-pdf")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
@@ -2414,7 +2435,9 @@ extensions.")
     (arguments
      '(#:tests? #f ; test suite hangs for unknown reason
        #:gem-flags
-       (list "--"
+       (list "--no-document"            ; TODO: Re-enable when documentation
+                                        ; generation works
+             "--"
              (string-append "--with-xml2-include="
                             (assoc-ref %build-inputs "libxml2")
                             "/include/libxml2" ))))
@@ -3793,8 +3816,7 @@ specs for Ruby implementations in ruby/spec.")
                (invoke "rspec"))
              #t)))))
     (inputs
-     `(("mariadb" ,mariadb "lib")
-       ("mariadb-dev" ,mariadb "dev")
+     `(("mariadb-dev" ,mariadb "dev")
        ("zlib" ,zlib)))
     (native-inputs
      `(("ruby-rspec" ,ruby-rspec)
@@ -3846,6 +3868,10 @@ as a base class when writing classes that depend upon
         (base32
          "1r19ifc4skyl2gxnifrxa5jvbbay9fb2in79ppgv02b6n4bhsw90"))))
     (build-system ruby-build-system)
+    (arguments
+     ;; The test suite fails (see:
+     ;; https://github.com/cldwalker/bond/issues/46).
+     `(#:tests? #f))
     (native-inputs
      `(("ruby-bacon" ,ruby-bacon)
        ("ruby-bacon-bits" ,ruby-bacon-bits)
@@ -4517,6 +4543,29 @@ reporter.")
     (home-page "https://blowmage.com/minitest-rg/")
     (license license:expat)))
 
+(define-public ruby-minitest-global-expectations
+  (package
+    (name "ruby-minitest-global-expectations")
+    (version "1.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (rubygems-uri "minitest-global_expectations"
+                          version))
+       (sha256
+        (base32
+         "1pp3k2608spj4kvqy2y16hs18an917g6vwgvphrfhjviac83090x"))))
+    (build-system ruby-build-system)
+    (propagated-inputs
+     `(("ruby-minitest" ,ruby-minitest)))
+    (synopsis "Adjust minitest behaviour for calling expectation methods")
+    (description
+     "Minitest-global_expectations allows continued use of expectation methods
+on all objects.  Calling expectation methods on all objects was deprecated in
+minitest 5.12, and is planned to be removed from minitest 6.")
+    (home-page "https://github.com/jeremyevans/minitest-global_expectations")
+    (license license:expat)))
+
 (define-public ruby-minitest-hooks
   (package
     (name "ruby-minitest-hooks")
@@ -4971,10 +5020,16 @@ both CSS3 selector and XPath 1.0 support.")
          "1pnyh44qycnf9mzi1j6fywd5fkskv3x7nmsqrrws0rjn5dd4ayfp"))))
     (build-system ruby-build-system)
     (arguments
-     `(#:test-target "spec"))
+     `(#:test-target "spec"
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'remove-git-ls-files
+           (lambda* (#:key outputs #:allow-other-keys)
+             (substitute* "Rakefile"
+               (("git ls-files") "find . -type f"))
+             #t)))))
     (native-inputs
-     `(("ruby-rspec" ,ruby-rspec)
-       ("git" ,git)))
+     `(("ruby-rspec" ,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
@@ -5096,15 +5151,17 @@ across multiple CPU cores.")
 (define-public ruby-parser
   (package
     (name "ruby-parser")
-    (version "2.7.1.4")
+    (version "2.7.2.0")
     (source
      (origin
        (method url-fetch)
        (uri (rubygems-uri "parser" version))
        (sha256
         (base32
-         "1030znhvhkfn39svwbj6qn4xb6hgl94gnvg57k4d3r76f9bryqmn"))))
+         "1f7gmm60yla325wlnd3qkxs59qm2y0aan8ljpg6k18rwzrrfil6z"))))
     (build-system ruby-build-system)
+    (arguments
+     '(#:tests? #f)) ; tests not included in gem
     (native-inputs
      `(("bundler" ,bundler)
        ("ruby-cliver" ,ruby-cliver)
@@ -6308,14 +6365,14 @@ alternative to Marshal for Object serialization. ")
 (define-public ruby-pg
   (package
     (name "ruby-pg")
-    (version "1.1.4")
+    (version "1.2.3")
     (source
      (origin
        (method url-fetch)
        (uri (rubygems-uri "pg" version))
        (sha256
         (base32
-         "0fmnyxcyrvgdbgq7m09whgn9i8rwfybk0w8aii1nc4g5kqw0k2jy"))))
+         "13mfrysrdrh8cka1d96zm0lnfs59i5x2g6ps49r2kz5p3q81xrzj"))))
     (build-system ruby-build-system)
     (arguments
      '(#:test-target "spec"))
@@ -6785,17 +6842,17 @@ inspired by the Sinatra microframework style of specifying actions:
 (define-public ruby-rubocop-ast
   (package
     (name "ruby-rubocop-ast")
-    (version "0.1.0")
+    (version "0.3.0")
     (source
      (origin
        (method git-fetch)               ;no test suite in distributed gem
        (uri (git-reference
-             (url "https://github.com/rubocop-hq/rubocop-ast.git")
+             (url "https://github.com/rubocop-hq/rubocop-ast")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "0nz25z5b76xkgb9sh370hni3l946j07fr05cdwkdj9x7ibgsb6nj"))))
+         "1ycf6qcj8nbzk2js72priim4642lkn56w5kbny1nlryjkckxgm04"))))
     (build-system ruby-build-system)
     (arguments
      `(#:test-target "spec"
@@ -6834,7 +6891,7 @@ by RuboCop to deal with Ruby's Abstract Syntax Tree (AST), in particular:
      (origin
        (method git-fetch)               ;no tests in distributed gem
        (uri (git-reference
-             (url "https://github.com/ruby/rexml.git")
+             (url "https://github.com/ruby/rexml")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
@@ -6885,7 +6942,7 @@ better performance than @code{Regexp} and @code{String} methods from the
       (origin
         (method git-fetch)
         (uri (git-reference
-              (url "https://github.com/janosch-x/range_compressor.git")
+              (url "https://github.com/janosch-x/range_compressor")
               (commit (string-append "v" version))))
         (file-name (git-file-name name version))
         (sha256
@@ -6918,7 +6975,7 @@ following: @code{[1, 2, 3, 4, 6, 8, 9, 10]} into @code{[1..4, 6..6, 8..10]}.")
      (origin
        (method git-fetch)
        (uri (git-reference              ;no test suite in distributed gem
-             (url "https://github.com/jaynetics/regexp_property_values.git")
+             (url "https://github.com/jaynetics/regexp_property_values")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
@@ -6944,17 +7001,17 @@ they match.")
 (define-public ruby-regexp-parser
   (package
     (name "ruby-regexp-parser")
-    (version "1.7.1")
+    (version "2.0.0")
     (source
      (origin
        (method git-fetch)               ;bin/test missing from gem
        (uri (git-reference
-             (url "https://github.com/ammar/regexp_parser.git")
+             (url "https://github.com/ammar/regexp_parser")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "0dk9d4vpw31cc06s29fqyr1kq0kipym1mydifkcrnppvpl3pd53r"))))
+         "09ddxdwlml30q6j4rqf06bbjj1mwx00rs0bksnyblhv85anrqz3k"))))
     (build-system ruby-build-system)
     (arguments
      '(#:test-target "default"
@@ -7022,7 +7079,7 @@ run.")
      (origin
        (method git-fetch)               ;no tests in distributed gem
        (uri (git-reference
-             (url "https://github.com/rubocop-hq/rubocop.git")
+             (url "https://github.com/rubocop-hq/rubocop")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
@@ -7790,7 +7847,7 @@ master/html-formatter/ruby")
     (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-aruba" ,ruby-aruba-without-tests)
        ("ruby-rspec" ,ruby-rspec)
        ("ruby-pry" ,ruby-pry)
        ("ruby-nokogiri" ,ruby-nokogiri)
@@ -8849,7 +8906,7 @@ display width of strings in Ruby.")
     (native-inputs
      `(("ruby-rdoc" ,ruby-rdoc)
        ("ruby-rspec" ,ruby-rspec)
-       ("ruby-rubygems-tasks", ruby-rubygems-tasks)))
+       ("ruby-rubygems-tasks" ,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.")
@@ -8903,14 +8960,13 @@ extension plugins.")
 (define-public ruby-domain-name
   (package
     (name "ruby-domain-name")
-    (version "0.5.20180417")
+    (version "0.5.20190701")
     (source
      (origin
        (method url-fetch)
        (uri (rubygems-uri "domain_name" version))
        (sha256
-        (base32
-         "0abdlwb64ns7ssmiqhdwgl27ly40x2l27l8hs8hn0z4kb3zd2x3v"))))
+        (base32 "0lcqjsmixjp52bnlgzh4lg9ppsk52x9hpwdjd53k8jnbah2602h0"))))
     (build-system ruby-build-system)
     (arguments
      `(#:phases
@@ -9896,13 +9952,13 @@ programs running in the background, in Ruby.")
 (define-public ruby-public-suffix
   (package
     (name "ruby-public-suffix")
-    (version "4.0.1")
+    (version "4.0.5")
     (source (origin
               (method url-fetch)
               (uri (rubygems-uri "public_suffix" version))
               (sha256
                (base32
-                "0xnfv2j2bqgdpg2yq9i2rxby0w2sc9h5iyjkpaas2xknwrgmhdb0"))))
+                "0vywld400fzi17cszwrchrzcqys4qm6sshbv73wy5mwcixmrgg7g"))))
     (build-system ruby-build-system)
     (arguments
      '(#:phases
@@ -9962,7 +10018,7 @@ all known public suffixes.")
        ("bundler" ,bundler)
        ("ruby-idn-ruby" ,ruby-idn-ruby)
        ("ruby-sporkmonger-rack-mount" ,ruby-sporkmonger-rack-mount)
-       ("ruby-rspec-its", ruby-rspec-its-minimal)
+       ("ruby-rspec-its" ,ruby-rspec-its-minimal)
        ("ruby-yard" ,ruby-yard)
        ("ruby-simplecov" ,ruby-simplecov)))
     (propagated-inputs
@@ -10503,7 +10559,7 @@ custom checks.  This gem provides a set of additional checks.")
     (source (origin
               (method git-fetch)        ;no test in distributed gem archive
               (uri (git-reference
-                    (url "https://github.com/yob/pdf-reader.git")
+                    (url "https://github.com/yob/pdf-reader")
                     (commit (string-append "v" version))))
               (file-name (git-file-name name version))
               (sha256
@@ -10543,7 +10599,7 @@ access to the contents of a PDF file with a high degree of flexibility.")
       (source (origin
                 (method git-fetch)
                 (uri (git-reference
-                      (url "https://github.com/prawnpdf/pdf-inspector.git")
+                      (url "https://github.com/prawnpdf/pdf-inspector")
                       (commit commit)))
                 (file-name (git-file-name name version))
                 (sha256
@@ -10606,7 +10662,7 @@ functionality from Prawn.")
       (source (origin
                 (method git-fetch)
                 (uri (git-reference
-                      (url "https://github.com/prawnpdf/prawn.git")
+                      (url "https://github.com/prawnpdf/prawn")
                       (commit commit)))
                 (file-name (git-file-name name version))
                 (sha256
@@ -10697,13 +10753,13 @@ functionality from Prawn.")
 (define-public ruby-kramdown
   (package
     (name "ruby-kramdown")
-    (version "1.17.0")
+    (version "2.3.0")
     (source (origin
               (method url-fetch)
               (uri (rubygems-uri "kramdown" version))
               (sha256
                (base32
-                "1n1c4jmrh5ig8iv1rw81s4mw4xsp4v97hvf8zkigv4hn5h542qjq"))))
+                "1vmw752c26ny2jwl0npn0gbyqwgz4hdmlpxnsld9qi9xhk5b1qh7"))))
     (build-system ruby-build-system)
     (arguments `(#:tests? #f)); FIXME: some test failures
     (native-inputs
@@ -10717,6 +10773,28 @@ of Markdown.  It is completely written in Ruby, supports standard Markdown
 popular by the PHP @code{Markdown Extra} package and @code{Maruku}.")
     (license license:expat)))
 
+(define-public ruby-kramdown-parser-gfm
+  (package
+    (name "ruby-kramdown-parser-gfm")
+    (version "1.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (rubygems-uri "kramdown-parser-gfm" version))
+       (sha256
+        (base32 "0a8pb3v951f4x7h968rqfsa19c8arz21zw1vaj42jza22rap8fgv"))))
+    (build-system ruby-build-system)
+    (arguments
+     `(#:tests? #f))                    ;no rakefile
+    (propagated-inputs
+     `(("ruby-kramdown" ,ruby-kramdown)))
+    (synopsis "Kramdown parser for the GFM dialect of Markdown")
+    (description
+     "This is a parser for kramdown that converts Markdown documents in the
+GFM dialect to HTML.")
+    (home-page "https://github.com/kramdown/parser-gfm")
+    (license license:expat)))
+
 (define-public ruby-http-parser.rb
   (package
     (name "ruby-http-parser.rb")
@@ -10985,7 +11063,8 @@ Pathname.")
          (add-before 'build 'fix-i18n
            (lambda _
              (substitute* ".gemspec"
-               (("~> 0.7") ">= 0.7"))
+               (("~> 0.7") ">= 0.7")
+               (("~> 1.14") ">= 1.14"))
              #t)))))
     (propagated-inputs
      `(("ruby-addressable" ,ruby-addressable)
@@ -10994,7 +11073,7 @@ Pathname.")
        ("ruby-i18n" ,ruby-i18n)
        ("ruby-jekyll-sass-converter" ,ruby-jekyll-sass-converter)
        ("ruby-jekyll-watch" ,ruby-jekyll-watch)
-       ("ruby-kramdown" ,ruby-kramdown)
+       ("ruby-kramdown" ,ruby-kramdown-parser-gfm)
        ("ruby-liquid" ,ruby-liquid)
        ("ruby-mercenary" ,ruby-mercenary)
        ("ruby-pathutil" ,ruby-pathutil)
@@ -11008,13 +11087,13 @@ Pathname.")
 (define-public ruby-jekyll-paginate-v2
   (package
     (name "ruby-jekyll-paginate-v2")
-    (version "2.0.0")
+    (version "3.0.0")
     (source (origin
               (method url-fetch)
               (uri (rubygems-uri "jekyll-paginate-v2" version))
               (sha256
                (base32
-                "154bfpyml6abxww9868hhyfvxasl8qhsc5zy2q30c7dxaj0igdib"))))
+                "1qzlqhpiqz28624fp0ak76hfy7908w6kpx62v7z43aiwjv0yc6q0"))))
     (build-system ruby-build-system)
     (propagated-inputs
      `(("jekyll" ,jekyll)))
@@ -11145,6 +11224,29 @@ serves JavaScript, CoffeeScript, CSS, LESS, Sass, and SCSS.")
     (home-page "https://github.com/rails/sprockets")
     (license license:expat)))
 
+(define-public ruby-mustache
+  (package
+    (name "ruby-mustache")
+    (version "1.1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (rubygems-uri "mustache" version))
+       (sha256
+        (base32 "1l0p4wx15mi3wnamfv92ipkia4nsx8qi132c6g51jfdma3fiz2ch"))))
+    (build-system ruby-build-system)
+    (native-inputs
+     `(("ruby-simplecov" ,ruby-simplecov)))
+    (synopsis "framework-agnostic way to render logic-free views")
+    (description
+     "Mustache is a framework-agnostic way to render logic-free views.
+Think of Mustache as a replacement for your views.  Instead of views
+consisting of ERB or HAML with random helpers and arbitrary logic,
+your views are broken into two parts: a Ruby class and an HTML
+template.")
+    (home-page "https://github.com/mustache/mustache")
+    (license license:expat)))
+
 (define-public ruby-mustermann
   (package
     (name "ruby-mustermann")
@@ -11635,3 +11737,30 @@ which snapshots to consider and what files to include.")
 defined in @file{.travis.yml} on your local machine, using @code{rvm},
 @code{rbenv}, or @code{chruby} to test different versions of Ruby.")
     (license license:expat)))
+
+(define-public ruby-rugged
+  (package
+    (name "ruby-rugged")
+    (version "1.1.0")
+    (home-page "https://www.rubydoc.info/gems/rugged")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (rubygems-uri "rugged" version))
+       (sha256
+        (base32 "04aq913plcxjw71l5r62qgz3bx3466p0wvgyfqahg5n3nybmcwqy"))))
+    (build-system ruby-build-system)
+    (arguments
+     `(#:tests? #f
+       #:gem-flags (list  "--" "--use-system-libraries")))
+    (inputs
+     `(("libgit2" ,libgit2)))
+    (native-inputs
+     `(("ruby-minitest" ,ruby-minitest)
+       ("ruby-pry" ,ruby-pry)
+       ("ruby-rake-compiler" ,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
+language.")
+    (license license:expat)))
diff --git a/gnu/packages/rust-apps.scm b/gnu/packages/rust-apps.scm
index d0960226c5..e7a0c4fab2 100644
--- a/gnu/packages/rust-apps.scm
+++ b/gnu/packages/rust-apps.scm
@@ -1,9 +1,14 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2019, 2020 John Soo <jsoo1@asu.edu>
-;;; Copyright © 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
 ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
 ;;; Copyright © 2020 Leo Famulari <leo@famulari.name>
+;;; Copyright © 2020 Mark H Weaver <mhw@netris.org>
+;;; Copyright © 2020 Gabriel Arazas <foo.dogsquared@gmail.com>
+;;; Copyright © 2020, 2021 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;; Copyright © 2021 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2021 Sharlatan Hellseher <sharlatanus@gmail.ccom>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -27,13 +32,108 @@
   #:use-module (guix packages)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages crates-io)
+  #:use-module (gnu packages crates-graphics)
   #:use-module (gnu packages documentation)
+  #:use-module (gnu packages fontutils)
+  #:use-module (gnu packages gtk)
   #:use-module (gnu packages jemalloc)
   #:use-module (gnu packages pcre)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages version-control))
 
+(define-public bat
+  (package
+    (name "bat")
+    (version "0.17.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "bat" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1ia12774prjnm3msiaja6qdpxkpyknxswqpgkmwzj0wn9nhkc7nz"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-ansi-colours" ,rust-ansi-colours-1)
+        ("rust-ansi-term" ,rust-ansi-term-0.12)
+        ("rust-atty" ,rust-atty-0.2)
+        ("rust-clap" ,rust-clap-2)
+        ("rust-console" ,rust-console-0.13)
+        ("rust-content-inspector" ,rust-content-inspector-0.2)
+        ("rust-dirs" ,rust-dirs-3)
+        ("rust-encoding" ,rust-encoding-0.2)
+        ("rust-error-chain" ,rust-error-chain-0.12)
+        ("rust-git2" ,rust-git2-0.13)
+        ("rust-globset" ,rust-globset-0.4)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-path-abs" ,rust-path-abs-0.5)
+        ("rust-semver" ,rust-semver-0.11)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-yaml" ,rust-serde-yaml-0.8)
+        ("rust-shell-words" ,rust-shell-words-1)
+        ("rust-syntect" ,rust-syntect-4)
+        ("rust-unicode-width" ,rust-unicode-width-0.1)
+        ("rust-wild" ,rust-wild-2))
+       #:cargo-development-inputs
+       (("rust-assert-cmd" ,rust-assert-cmd-1)
+        ("rust-predicates" ,rust-predicates-1)
+        ("rust-tempdir" ,rust-tempdir-0.3))))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("libgit2" ,libgit2)
+       ("zlib" ,zlib)))
+    (home-page "https://github.com/sharkdp/bat")
+    (synopsis "@command{cat} clone with syntax highlighting and git integration")
+    (description
+     "@command{bat} is a drop-in @command{cat} replacement featuring syntax
+highlighting for a large number of languages, git integration, and automatic
+paging.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public drill
+  (package
+    (name "drill")
+    (version "0.7.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "drill" version))
+        (file-name (string-append name "-" version ".tar.gz"))
+        (sha256
+          (base32 "1m73d7rzi0p5c1hn0081d2235kcyapdza7h0vqf5jhnirpnjn793"))))
+    (build-system cargo-build-system)
+    (arguments
+      `(#:cargo-inputs
+        (("rust-async-trait" ,rust-async-trait-0.1)
+         ("rust-clap" ,rust-clap-2)
+         ("rust-colored" ,rust-colored-1)
+         ("rust-csv" ,rust-csv-1)
+         ("rust-futures" ,rust-futures-0.3)
+         ("rust-lazy-static" ,rust-lazy-static-1)
+         ("rust-linked-hash-map" ,rust-linked-hash-map-0.5)
+         ("rust-num-cpus" ,rust-num-cpus-1)
+         ("rust-rand" ,rust-rand-0.7)
+         ("rust-regex" ,rust-regex-1)
+         ("rust-reqwest" ,rust-reqwest-0.10)
+         ("rust-serde" ,rust-serde-1)
+         ("rust-serde-json" ,rust-serde-json-1)
+         ("rust-tokio" ,rust-tokio-0.2)
+         ("rust-url" ,rust-url-2)
+         ("rust-yaml-rust" ,rust-yaml-rust-0.4))))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("openssl" ,openssl)))
+    (home-page "https://github.com/fcsonline/drill")
+    (synopsis "HTTP load testing application")
+    (description
+      "Drill is a HTTP load testing application written in Rust inspired by
+Ansible syntax.  Benchmark files can be written in YAML.")
+    (license license:gpl3)))
+
 (define-public exa
   (package
     (name "exa")
@@ -72,11 +172,6 @@
        (("rust-datetime" ,rust-datetime-0.4))
        #:phases
        (modify-phases %standard-phases
-         (add-after 'configure 'dont-vendor-sources
-           (lambda* (#:key inputs #:allow-other-keys)
-             (let ((openssl (assoc-ref inputs "openssl")))
-               (setenv "OPENSSL_DIR" openssl))
-             #t))
          ;; Ignoring failing tests.
          ;; Reported in https://github.com/ogham/exa/issues/318
          (add-before 'check 'disable-failing-tests
@@ -87,6 +182,7 @@
 
              (substitute* "src/options/view.rs"
                (("test!\\(across:.*") "")
+               (("test!\\(cr:.*") "")
                (("test!\\(empty:.*") "")
                (("test!\\(gracross:.*") "")
                (("test!\\(grid:.*") "")
@@ -148,7 +244,7 @@ also knows about symlinks, extended attributes, and Git.")
     (arguments
      `(#:cargo-inputs
        (("rust-ansi-term" ,rust-ansi-term-0.12)
-        ("rust-anyhow" ,rust-anyhow-1.0)
+        ("rust-anyhow" ,rust-anyhow-1)
         ("rust-atty" ,rust-atty-0.2)
         ("rust-clap" ,rust-clap-2)
         ("rust-ctrlc" ,rust-ctrlc-3.1)
@@ -204,6 +300,34 @@ While it does not seek to mirror all of find's powerful functionality, it
 provides defaults for 80% of the use cases.")
     (license (list license:expat license:asl2.0))))
 
+(define-public hexyl
+  (package
+    (name "hexyl")
+    (version "0.8.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "hexyl" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0sipag77196467idbznbk5q5lwhqz85zw7y1pwg9b27jxqyk04rp"))))
+    (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-libc" ,rust-libc-0.2))))
+    (home-page "https://github.com/sharkdp/hexyl")
+    (synopsis "Command-line hex viewer")
+    (description
+     "This package provides a command line hex viewer.  It uses a colored output
+for distinguishing different kinds of bytes such as NULL bytes, printable ASCII
+characters, ASCII whitespace characters, other ASCII characters and non-ASCII.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public ripgrep
   (package
     (name "ripgrep")
@@ -292,11 +416,67 @@ gitignore rules.")
      "This package provides a tool for generating C/C++ bindings to Rust code.")
     (license license:mpl2.0)))
 
-(define-public rust-cbindgen-0.12
+(define-public rust-cbindgen-0.16
   (package
     (inherit rust-cbindgen)
     (name "rust-cbindgen")
-    (version "0.12.2")
+    (version "0.16.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "cbindgen" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "049cai626nzw0km03parx4sxwaxgbr7i5ifjbjwnfxkqkj5k2i4k"))))
+    (arguments
+     `(#:tests? #false                  ;missing files
+       #:cargo-inputs
+       (("rust-clap" ,rust-clap-2)
+        ("rust-heck" ,rust-heck-0.3)
+        ("rust-indexmap" ,rust-indexmap-1)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-syn" ,rust-syn-1)
+        ("rust-tempfile" ,rust-tempfile-3)
+        ("rust-toml" ,rust-toml-0.5))
+       #:cargo-development-inputs
+       (("rust-serial-test" ,rust-serial-test-0.5))))))
+
+(define-public rust-cbindgen-0.15
+  (package
+    (inherit rust-cbindgen)
+    (name "rust-cbindgen")
+    (version "0.15.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "cbindgen" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0dgf49zij9rxnf0lv4k5gcmx1mxcz16czkk6q63anz0xp8ds3xhx"))))
+    (arguments
+     `(#:tests? #false                  ;missing files
+       #:cargo-inputs
+       (("rust-clap" ,rust-clap-2)
+        ("rust-heck" ,rust-heck-0.3)
+        ("rust-indexmap" ,rust-indexmap-1)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-syn" ,rust-syn-1)
+        ("rust-tempfile" ,rust-tempfile-3)
+        ("rust-toml" ,rust-toml-0.5))))))
+
+(define-public rust-cbindgen-0.14
+  (package
+    (inherit rust-cbindgen)
+    (name "rust-cbindgen")
+    (version "0.14.1")
     (source
       (origin
         (method url-fetch)
@@ -305,60 +485,140 @@ gitignore rules.")
          (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "13jzbmjz1bmmfr0i80hw6ar484mgabx3hbpb2ynhk0ddqi0yr58m"))))))
+          "1ppwqbzydxlg9a24lynzfk60xrvqw4k31mpz1wrk6lbf88zf8nxi"))))))
 
-(define-public tokei
+(define-public rust-cbindgen-0.12
   (package
-    (name "tokei")
-    (version "10.1.1")
+    (inherit rust-cbindgen)
+    (name "rust-cbindgen")
+    (version "0.12.2")
     (source
       (origin
         (method url-fetch)
-        (uri (crate-uri "tokei" version))
+        (uri (crate-uri "cbindgen" version))
         (file-name
          (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "07f5laqw2k9l3k8wrg9h8p2m5d9hkfxngyacwrn3vs7mlnw8l81m"))))
+          "13jzbmjz1bmmfr0i80hw6ar484mgabx3hbpb2ynhk0ddqi0yr58m"))))))
+
+(define-public tectonic
+  (package
+    (name "tectonic")
+    (version "0.4.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tectonic" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "16fm2bfvfizrydmirzf0bhr1fidb5slcbvr6150and8yqr8jc4lf"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-clap" ,rust-clap-2)
-        ("rust-crossbeam-channel" ,rust-crossbeam-channel-0.4)
-        ("rust-dirs" ,rust-dirs-2.0)
+       (("rust-app-dirs2" ,rust-app-dirs2-2)
+        ("rust-atty" ,rust-atty-0.2)
+        ("rust-byte-unit" ,rust-byte-unit-4)
+        ("rust-cbindgen" ,rust-cbindgen-0.16)
+        ("rust-cc" ,rust-cc-1)
+        ("rust-cfg-if" ,rust-cfg-if-1)
+        ("rust-error-chain" ,rust-error-chain-0.12)
+        ("rust-flate2" ,rust-flate2-1)
+        ("rust-fs2" ,rust-fs2-0.4)
+        ("rust-headers" ,rust-headers-0.2)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-md-5" ,rust-md-5-0.9)
+        ("rust-pkg-config" ,rust-pkg-config-0.3)
+        ("rust-regex" ,rust-regex-1)
+        ("rust-reqwest" ,rust-reqwest-0.9)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-sha2" ,rust-sha2-0.9)
+        ("rust-structopt" ,rust-structopt-0.3)
+        ("rust-tectonic-cfg-support" ,rust-tectonic-cfg-support-0.1)
+        ("rust-tectonic-xdv" ,rust-tectonic-xdv-0.1)
+        ("rust-tempfile" ,rust-tempfile-3)
+        ("rust-termcolor" ,rust-termcolor-1)
+        ("rust-toml" ,rust-toml-0.5)
+        ("rust-vcpkg" ,rust-vcpkg-0.2)
+        ("rust-zip" ,rust-zip-0.5))
+       #:cargo-development-inputs
+       (("rust-filetime" ,rust-filetime-0.2)
+        ("rust-futures" ,rust-futures-0.1)
+        ("rust-headers" ,rust-headers-0.2)
+        ("rust-hyper" ,rust-hyper-0.12)
+        ("rust-tempfile" ,rust-tempfile-3)
+        ("rust-tokio" ,rust-tokio-0.1))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'install-doc
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (doc (string-append out "/share/doc/" ,name "-" ,version)))
+               (copy-recursively "docs/src" doc)
+               #t))))))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("fontconfig" ,fontconfig)
+       ("harfbuzz" ,harfbuzz)
+       ("openssl" ,openssl)
+       ("zlib" ,zlib)))
+    (home-page "https://tectonic-typesetting.github.io/")
+    (synopsis "Complete, embeddable TeX/LaTeX engine")
+    (description
+     "This package provides a modernized, complete, embeddable
+TeX/LaTeX engine.  Tectonic is forked from the XeTeX extension to the
+classic Web2C implementation of TeX and uses the TeXLive distribution
+of support files.")
+    (license license:expat)))
+
+(define-public tokei
+  (package
+    (name "tokei")
+    (version "12.1.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tokei" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "000w549v1bpw7r57xw656p40ywf1gimvxxx5cjnri2js0xg927x4"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-aho-corasick" ,rust-aho-corasick-0.7)
+        ("rust-clap" ,rust-clap-2)
+        ("rust-crossbeam-channel" ,rust-crossbeam-channel-0.5)
+        ("rust-dashmap" ,rust-dashmap-4)
+        ("rust-dirs" ,rust-dirs-3)
         ("rust-encoding-rs-io" ,rust-encoding-rs-io-0.1)
-        ("rust-env-logger" ,rust-env-logger-0.7)
+        ("rust-env-logger" ,rust-env-logger-0.8)
         ("rust-grep-searcher" ,rust-grep-searcher-0.1)
         ("rust-hex" ,rust-hex-0.4)
         ("rust-ignore" ,rust-ignore-0.4)
         ("rust-log" ,rust-log-0.4)
+        ("rust-num-format" ,rust-num-format-0.4)
+        ("rust-once-cell" ,rust-once-cell-1)
+        ("rust-parking-lot" ,rust-parking-lot-0.11)
         ("rust-rayon" ,rust-rayon-1)
+        ("rust-regex" ,rust-regex-1)
         ("rust-serde" ,rust-serde-1)
-        ("rust-serde-cbor" ,rust-serde-cbor-0.10)
-        ("rust-serde-derive" ,rust-serde-derive-1)
+        ("rust-serde-cbor" ,rust-serde-cbor-0.11)
         ("rust-serde-json" ,rust-serde-json-1)
         ("rust-serde-yaml" ,rust-serde-yaml-0.8)
+        ("rust-tera" ,rust-tera-1)
         ("rust-term-size" ,rust-term-size-0.3)
         ("rust-toml" ,rust-toml-0.5))
        #:cargo-development-inputs
-       (("rust-git2" ,rust-git2-0.11)
-        ("rust-handlebars" ,rust-handlebars-2.0)
-        ("rust-ignore" ,rust-ignore-0.4)
-        ("rust-lazy-static" ,rust-lazy-static-1)
+       (("rust-git2" ,rust-git2-0.13)
         ("rust-regex" ,rust-regex-1)
-        ("rust-serde-json" ,rust-serde-json-1)
-        ("rust-tempfile" ,rust-tempfile-3))
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'configure 'unvendor-libraries-from-crates
-           (lambda* (#:key inputs #:allow-other-keys)
-             (let ((openssl (assoc-ref inputs "openssl")))
-               (setenv "OPENSSL_DIR" openssl))
-             #t)))))
+        ("rust-tempfile" ,rust-tempfile-3))))
     (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
      `(("libgit2" ,libgit2)
        ("openssl" ,openssl)
-       ("pkg-config" ,pkg-config)
        ("zlib" ,zlib)))
     (home-page "https://tokei.rs")
     (synopsis "Count code, quickly")
@@ -371,7 +631,7 @@ blanks grouped by language.")
 (define-public watchexec
   (package
     (name "watchexec")
-    (version "1.14.0")
+    (version "1.14.1")
     (source
      (origin
        (method url-fetch)
@@ -379,8 +639,7 @@ blanks grouped by language.")
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32
-         "0bwgqb5fvyqbf2lf0005fxzpbpbwbszc7144g3kg2cmzy5cbrf0w"))))
+        (base32 "1vqaa462sjpzi0crh12ixqc2wa5bblirc129pnj8jr8iz3xw3gvd"))))
     (build-system cargo-build-system)
     (arguments
      `(#:phases
@@ -395,7 +654,7 @@ blanks grouped by language.")
                (install-file "README.md" doc)
                #t))))
        #:cargo-inputs
-       (("rust-clap" ,rust-clap-2)
+       (("rust-embed-resource" ,rust-embed-resource-1.3)
         ("rust-derive-builder" ,rust-derive-builder-0.9)
         ("rust-env-logger" ,rust-env-logger-0.7)
         ("rust-glob" ,rust-glob-0.3)
@@ -404,8 +663,7 @@ blanks grouped by language.")
         ("rust-log" ,rust-log-0.4)
         ("rust-nix" ,rust-nix-0.17)
         ("rust-notify" ,rust-notify-4)
-        ("rust-walkdir" ,rust-walkdir-2)
-        ("rust-winapi" ,rust-winapi-0.3))))
+        ("rust-walkdir" ,rust-walkdir-2))))
     (home-page "https://github.com/watchexec/watchexec")
     (synopsis "Executes commands in response to file modifications")
     (description
@@ -420,7 +678,7 @@ Example use cases:
 
 Features:
 @itemize @bullet
-@item Coalesces multiple filesystem events into one, for editors that
+@item Coalesces multiple file system events into one, for editors that
 use swap/backup files during saving
 @item By default, uses @code{.gitignore} and @code{.ignore} to determine which
 files to ignore notifications for
diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm
index 778aeaab05..58a9092ac4 100644
--- a/gnu/packages/rust.scm
+++ b/gnu/packages/rust.scm
@@ -4,11 +4,13 @@
 ;;; Copyright © 2016 Nikita <nikita@n0.is>
 ;;; Copyright © 2017 Ben Woodcroft <donttrustben@gmail.com>
 ;;; Copyright © 2017, 2018 Nikolai Merinov <nikolai.merinov@member.fsf.org>
-;;; Copyright © 2017, 2019 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2017, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Danny Milosavljevic <dannym+a@scratchpost.org>
 ;;; Copyright © 2019 Ivan Petkov <ivanppetkov@gmail.com>
-;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
+;;; Copyright © 2020, 2021 Jakub Kądziołka <kuba@kadziolka.net>
+;;; Copyright © 2020 Pierre Langlois <pierre.langlois@gmx.com>
+;;; Copyright © 2020 Matthew Kraai <kraai@ftbfs.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -421,7 +423,9 @@ test = { path = \"../libtest\" }
      `(("bison" ,bison) ; For the tests
        ("cmake" ,cmake-minimal)
        ("flex" ,flex) ; For the tests
-       ("gdb" ,gdb)   ; For the tests
+       ;; FIXME: Rust 1.27 and some later versions require GDB 8.2 specifically.
+       ;; See <https://bugs.gnu.org/37810>.  Use it on all Rusts for simplicity.
+       ("gdb" ,gdb-8.2) ; For the tests
        ("procps" ,procps) ; For the tests
        ("python-2" ,python-2)
        ("rustc-bootstrap" ,mrustc)
@@ -449,7 +453,8 @@ test = { path = \"../libtest\" }
             (variable "LIBRARY_PATH")
             (files '("lib" "lib64")))))
 
-    (synopsis "Compiler for the Rust progamming language")
+    (supported-systems '("x86_64-linux"))
+    (synopsis "Compiler for the Rust programming language")
     (description "Rust is a systems programming language that provides memory
 safety and thread safety guarantees.")
     (home-page "https://www.rust-lang.org")
@@ -614,7 +619,8 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
                      (lambda (file) (delete-manifest-file out file))
                      '("install.log"
                        "manifest-rust-docs"
-                       "manifest-rust-std-x86_64-unknown-linux-gnu"
+                       ,(string-append "manifest-rust-std-"
+                                       (nix-system->gnu-triplet-for-rust))
                        "manifest-rustc"))
                    (for-each
                      (lambda (file) (delete-manifest-file cargo-out file))
@@ -756,6 +762,9 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
           (patches (search-patches
                      "rust-coresimd-doctest.patch"
                      "rust-1.25-accept-more-detailed-gdb-lines.patch"))))
+      (inputs
+       (alist-replace "openssl" (list openssl)
+                      (package-inputs base-rust)))
       (arguments
        (substitute-keyword-arguments (package-arguments base-rust)
          ((#:phases phases)
@@ -798,7 +807,6 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
                    (("fn finds_author_git") "#[ignore]\nfn finds_author_git")
                    (("fn finds_local_author_git") "#[ignore]\nfn finds_local_author_git"))
                  #t))
-             ;; TODO(rebuild-rust): Remove this phase in rust-1.28 when rebuilding.
              (add-after 'patch-cargo-tests 'disable-cargo-test-for-nightly-channel
                (lambda* _
                  ;; This test failed to work on "nightly" channel builds
@@ -827,11 +835,6 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
                                    "rust-bootstrap-stage0-test.patch"
                                    "rust-1.25-accept-more-detailed-gdb-lines.patch"
                                    "rust-reproducible-builds.patch"))))
-      (native-inputs
-       ;; FIXME: Rust 1.27 and some later versions require GDB 8.2 specifically.
-       ;; See <https://bugs.gnu.org/37810>.
-       (alist-replace "gdb" (list gdb-8.2)
-                      (package-native-inputs base-rust)))
       (arguments
        (substitute-keyword-arguments (package-arguments base-rust)
          ((#:phases phases)
@@ -883,6 +886,8 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
                  (substitute* "src/test/run-pass/issue-44056.rs"
                    (("only-x86_64") "ignore-test"))
                  #t))
+             ;; This is no longer needed as of 1.28
+             (delete 'disable-cargo-test-for-nightly-channel)
              ;; The thinlto test should pass with llvm 6.
              (delete 'disable-thinlto-test))))))))
 
@@ -1145,14 +1150,13 @@ move around."
                    (setenv "CARGO_HOME" cargo-home)
                    #t))))))))))
 
-;; TODO(rebuild-rust): Switch to LLVM 9 in 1.38 instead of 1.40.
 (define-public rust-1.38
   (let ((base-rust
          (rust-bootstrapped-package rust-1.37 "1.38.0"
            "101dlpsfkq67p0hbwx4acqq6n90dj4bbprndizpgh1kigk566hk4")))
     (package
       (inherit base-rust)
-      #;(inputs
+      (inputs
         (alist-replace "llvm" (list llvm-9)
                        (package-inputs base-rust)))
       (arguments
@@ -1195,9 +1199,6 @@ move around."
            "1ba9llwhqm49w7sz3z0gqscj039m53ky9wxzhaj11z6yg1ah15yx")))
     (package
       (inherit base-rust)
-      (inputs
-        (alist-replace "llvm" (list llvm-9)
-                       (package-inputs base-rust)))
       (source
         (origin
           (inherit (package-source base-rust))
@@ -1252,8 +1253,6 @@ move around."
                  ,(patch-command-exec-tests-phase
                     '(match (find-files "src/test" "command-exec\\.rs")
                        ((file) file))))
-               ;; TODO(rebuild-rust): The test in question got fixed long ago.
-               (delete 'disable-cargo-test-for-nightly-channel)
                ;; The test got removed in commit 000fe63b6fc57b09828930cacbab20c2ee6e6d15
                ;; "Remove painful test that is not pulling its weight"
                (delete 'remove-unsupported-tests)))))))))
@@ -1317,5 +1316,78 @@ move around."
                      (string-append "#[ignore] " all)))
                  #t)))))))))
 
+(define-public rust-1.46
+  (rust-bootstrapped-package rust-1.45 "1.46.0"
+    "0a17jby2pd050s24cy4dfc0gzvgcl585v3vvyfilniyvjrqknsid"))
+
+(define-public rust-1.47
+  (let ((base-rust
+         (rust-bootstrapped-package rust-1.46 "1.47.0"
+          "07fqd2vp7cf1ka3hr207dnnz93ymxml4935vp74g4is79h3dz19i")))
+    (package
+      (inherit base-rust)
+      (inputs
+        (alist-replace "llvm" (list llvm-11)
+                       (package-inputs base-rust)))
+      (arguments
+       (substitute-keyword-arguments (package-arguments base-rust)
+         ((#:phases phases)
+          `(modify-phases ,phases
+             ;; The source code got rearranged: libstd is now in the newly created library folder.
+             (replace 'patch-tests
+               (lambda* (#:key inputs #:allow-other-keys)
+                 (let ((bash (assoc-ref inputs "bash")))
+                   (substitute* "library/std/src/process.rs"
+                     (("\"/bin/sh\"") (string-append "\"" bash "/bin/sh\"")))
+                   ;; <https://lists.gnu.org/archive/html/guix-devel/2017-06/msg00222.html>
+                   (substitute* "library/std/src/sys/unix/process/process_common.rs"
+                     (("fn test_process_mask") "#[allow(unused_attributes)]
+    #[ignore]
+    fn test_process_mask"))
+                   #t)))
+             (delete 'patch-cargo-checksums)
+             (add-after 'patch-generated-file-shebangs 'patch-cargo-checksums
+               ;; Generate checksums after patching generated files (in
+               ;; particular, vendor/jemalloc/rep/Makefile).
+               (lambda* _
+                 (use-modules (guix build cargo-utils))
+                 (substitute* "Cargo.lock"
+                   (("(checksum = )\".*\"" all name)
+                    (string-append name "\"" ,%cargo-reference-hash "\"")))
+                 (generate-all-checksums "vendor")
+                 #t)))))))))
+
+(define-public rust-1.48
+  (let ((base-rust
+         (rust-bootstrapped-package rust-1.47 "1.48.0"
+           "0fz4gbb5hp5qalrl9lcl8yw4kk7ai7wx511jb28nypbxninkwxhf")))
+    (package
+      (inherit base-rust)
+      (source
+        (origin
+          (inherit (package-source base-rust))
+          ;; New patch required due to the second part of the source code rearrangement:
+          ;; the relevant source code is now in the compiler directory.
+          (patches (search-patches "rust-1.48-linker-locale.patch"))))
+      (arguments
+       (substitute-keyword-arguments (package-arguments base-rust)
+         ((#:phases phases)
+          `(modify-phases ,phases
+             ;; Some tests got split out into separate files.
+             (replace 'patch-tests
+               (lambda* (#:key inputs #:allow-other-keys)
+                 (let ((bash (assoc-ref inputs "bash")))
+                   (substitute* "library/std/src/process/tests.rs"
+                     (("\"/bin/sh\"") (string-append "\"" bash "/bin/sh\"")))
+                   (substitute* "library/std/src/sys/unix/process/process_common/tests.rs"
+                     (("fn test_process_mask") "#[allow(unused_attributes)]
+    #[ignore]
+    fn test_process_mask"))
+                   #t))))))))))
+
+(define-public rust-1.49
+  (rust-bootstrapped-package rust-1.48 "1.49.0"
+    "0yf7kll517398dgqsr7m3gldzj0iwsp3ggzxrayckpqzvylfy2mm"))
+
 ;; TODO(staging): Bump this variable to the latest packaged rust.
-(define-public rust rust-1.39)
+(define-public rust rust-1.45)
diff --git a/gnu/packages/sagemath.scm b/gnu/packages/sagemath.scm
index 8c837fdaeb..7f060155ed 100644
--- a/gnu/packages/sagemath.scm
+++ b/gnu/packages/sagemath.scm
@@ -3,6 +3,7 @@
 ;;; Copyright © 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;; Copyright © 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
+;;; Copyright © 2021 Efraim Flashner <efraim@flashner.co.il>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -44,14 +45,14 @@
 (define-public python-cypari2
   (package
     (name "python-cypari2")
-    (version "2.1.1")
+    (version "2.1.2")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "cypari2" version))
        (sha256
         (base32
-         "1nwkzgqvbw6361x0rpggy1q5nx663fswhpvg8md6xhqyfwpgc7nz"))))
+         "0ymc4i9y60aazscc1blivirkr1rflzz6akkmvfzyn5l7mgnlbk83"))))
     (build-system python-build-system)
     (native-inputs
      `(("python-cython" ,python-cython)))
@@ -59,7 +60,7 @@
      `(("python-cysignals" ,python-cysignals)))
     (inputs
      `(("gmp" ,gmp)
-       ("pari-gp", pari-gp)))
+       ("pari-gp" ,pari-gp)))
     (home-page "https://cypari2.readthedocs.io/")
     (synopsis
      "Python interface to the number theory library libpari")
diff --git a/gnu/packages/samba.scm b/gnu/packages/samba.scm
index 0fa19e355c..13e03d7ac7 100644
--- a/gnu/packages/samba.scm
+++ b/gnu/packages/samba.scm
@@ -5,9 +5,11 @@
 ;;; Copyright © 2016 Adonay "adfeno" Felipe Nogueira <https://libreplanet.org/wiki/User:Adfeno> <adfeno@openmailbox.org>
 ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
 ;;; Copyright © 2017, 2018, 2020 Marius Bakke <mbakke@fastmail.com>
-;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2019 Rutger Helling <rhelling@mykolab.com>
+;;; Copyright © 2020 Pierre Langlois <pierre.langlois@gmx.com>
+;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -31,6 +33,7 @@
   #:use-module (guix build-system gnu)
   #:use-module (guix licenses)
   #:use-module (guix utils)
+  #:use-module (gnu packages)
   #:use-module (gnu packages acl)
   #:use-module (gnu packages admin)
   #:use-module (gnu packages autotools)
@@ -41,6 +44,8 @@
   #:use-module (gnu packages cups)
   #:use-module (gnu packages databases)
   #:use-module (gnu packages docbook)
+  #:use-module (gnu packages glib)
+  #:use-module (gnu packages gnome)
   #:use-module (gnu packages gnupg)
   #:use-module (gnu packages kerberos)
   #:use-module (gnu packages linux)
@@ -59,14 +64,14 @@
 (define-public cifs-utils
   (package
     (name "cifs-utils")
-    (version "6.10")
+    (version "6.12")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://download.samba.org/pub/linux-cifs/"
                            "cifs-utils/cifs-utils-" version ".tar.bz2"))
        (sha256 (base32
-                "19q4b5bzlxhn1hpi843xrp6f50d33w7m0rs26krkg5h3x742kz4j"))))
+                "1vw570pvir73kl4y6fhd6ns936ankimkhb1ii43yh8lr0p1xqbcj"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("autoconf" ,autoconf)
@@ -82,12 +87,6 @@
     (arguments
      `(#:phases
        (modify-phases %standard-phases
-         (replace 'bootstrap
-           ;; Force a bootstrap to fix a ‘cannot find install-sh, install.sh,
-           ;; or shtool’ error since version 6.10.
-           (lambda _
-             (invoke "autoreconf" "-vfi")
-             #t))
          (add-before 'configure 'set-root-sbin
            (lambda* (#:key outputs #:allow-other-keys)
              ;; Don't try to install into "/sbin".
@@ -173,68 +172,77 @@ external dependencies.")
 (define-public samba
   (package
     (name "samba")
-    (version "4.12.3")
+    (version "4.13.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://download.samba.org/pub/samba/stable/"
                            "samba-" version ".tar.gz"))
        (sha256
-        (base32 "09w7aap1cjc41ayhaksm1igc7p7gl40fad4a1l6q4ds9a2jbrb9z"))
+        (base32 "0hb5fli4kgwg376c289mcmdqszd51vs8pzzrw7j6yr9k7za8a1f1"))
+       (patches (search-patches "samba-fix-fcntl-hint-detection.patch"))
        (modules '((guix build utils)))
        (snippet
         '(begin
-           ;; TODO: also remove the bundled ‘third_party/popt’.
+           ;; XXX: Some bundled libraries (e.g, popt, cmocka) are used from
+           ;; the system, but their bundled sources must be kept as they
+           ;; include the WAF scripts used for detecting them.
            (delete-file-recursively "third_party/pyiso8601")
            #t))))
     (build-system gnu-build-system)
     (arguments
-     `(#:phases
+     `(#:make-flags '("TEST_OPTIONS=--quick") ;some tests are very long
+       #:phases
        (modify-phases %standard-phases
-         (add-before 'configure 'locate-docbook-stylesheets
+         (add-before 'configure 'setup-docbook-stylesheets
            (lambda* (#:key inputs #:allow-other-keys)
-             ;; XXX for some reason XML_CATALOG_FILES is not respected.
-             (substitute* '("buildtools/wafsamba/samba_conftests.py"
-                            "buildtools/wafsamba/wafsamba.py"
-                            "docs-xml/xslt/man.xsl")
-               (("http://docbook.sourceforge.net/release/xsl/current/")
-                (string-append (assoc-ref inputs "docbook-xsl")
-                               "/xml/xsl/docbook-xsl-"
-                               ,(package-version docbook-xsl) "/")))
+             ;; Append Samba's own DTDs to XML_CATALOG_FILES
+             ;; (c.f. docs-xml/build/README).
+             (copy-file "docs-xml/build/catalog.xml.in"
+                        "docs-xml/build/catalog.xml")
+             (substitute* "docs-xml/build/catalog.xml"
+               (("/@abs_top_srcdir@")
+                (string-append (getcwd) "/docs-xml")))
+             ;; Honor XML_CATALOG_FILES.
+             (substitute* "buildtools/wafsamba/wafsamba.py"
+               (("XML_CATALOG_FILES=\"\\$\\{SAMBA_CATALOGS\\}" all)
+                (string-append all " $XML_CATALOG_FILES")))
              #t))
          (replace 'configure
-           ;; samba uses a custom configuration script that runs waf.
+           ;; Samba uses a custom configuration script that runs WAF.
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out    (assoc-ref outputs "out"))
                     (libdir (string-append out "/lib")))
                (invoke "./configure"
+                       "--enable-selftest"
                        "--enable-fhs"
-                       ;; XXX: heimdal not packaged.
-                       "--bundled-libraries=com_err"
                        (string-append "--prefix=" out)
                        "--sysconfdir=/etc"
+                       "--localstatedir=/var"
                        ;; Install public and private libraries into
                        ;; a single directory to avoid RPATH issues.
                        (string-append "--libdir=" libdir)
                        (string-append "--with-privatelibdir=" libdir)))))
-         (add-before 'install 'disable-etc-samba-directory-creation
+         (add-before 'install 'disable-etc,var-samba-directories-setup
            (lambda _
              (substitute* "dynconfig/wscript"
-               (("bld\\.INSTALL_DIR\\(\"\\$\\{CONFIGDIR\\}\"\\)")
-                ""))
+               (("bld\\.INSTALL_DIR.*") ""))
              #t)))
-       ;; XXX: The test infrastructure attempts to set password with
-       ;; smbpasswd, which fails with "smbpasswd -L can only be used by root."
-       ;; So disable tests until there's a workaround.
+       ;; FIXME: The test suite seemingly hangs after failing to provision the
+       ;; test environment.
        #:tests? #f))
-    (inputs                                   ; TODO: Add missing dependencies
+    (inputs
      `(("acl" ,acl)
+       ("cmocka" ,cmocka)
        ("cups" ,cups)
-       ;; ("gamin" ,gamin)
+       ("gamin" ,gamin)
+       ("dbus", dbus)
        ("gpgme" ,gpgme)
        ("gnutls" ,gnutls)
+       ("heimdal" ,heimdal)
        ("jansson" ,jansson)
        ("libarchive" ,libarchive)
+       ("libtirpc" ,libtirpc)
        ("linux-pam" ,linux-pam)
        ("lmdb" ,lmdb)
        ("openldap" ,openldap)
@@ -253,11 +261,11 @@ external dependencies.")
        ("pkg-config" ,pkg-config)
        ("python-iso8601" ,python-iso8601)
        ("rpcsvc-proto" ,rpcsvc-proto)   ; for 'rpcgen'
-
        ;; For generating man pages.
        ("docbook-xml" ,docbook-xml-4.2)
        ("docbook-xsl" ,docbook-xsl)
-       ("xsltproc" ,libxslt)))
+       ("xsltproc" ,libxslt)
+       ("libxml2", libxml2)))           ;for XML_CATALOG_FILES
     (home-page "https://www.samba.org/")
     (synopsis
      "The standard Windows interoperability suite of programs for GNU and Unix")
@@ -435,51 +443,48 @@ key-value pair databases and a real LDAP database.")
     (license lgpl3+)))
 
 (define-public ppp
-  ;; This git commit contains unreleased fixes for CVE-2020-8597.
-  (let ((revision "1")
-        (commit "8d45443bb5c9372b4c6a362ba2f443d41c5636af"))
-    (package
-      (name "ppp")
-      (version (git-version "2.4.8" revision commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://github.com/paulusmack/ppp")
-                      (commit commit)))
-                (file-name (git-file-name name version))
-                (sha256
-                 (base32
-                  "06cf8fb84l3h2zy5da4j7k2j1qjv2gfqn986sf43xgj75605aks2"))))
-      (build-system gnu-build-system)
-      (arguments
-       '(#:tests? #f                    ; no check target
-         #:make-flags '("CC=gcc")
-         #:phases
-         (modify-phases %standard-phases
-           (add-before 'configure 'patch-Makefile
-             (lambda* (#:key inputs #:allow-other-keys)
-               (let ((libc    (assoc-ref inputs "libc"))
-                     (openssl (assoc-ref inputs "openssl"))
-                     (libpcap (assoc-ref inputs "libpcap")))
-                 (substitute* "pppd/Makefile.linux"
-                   (("/usr/include/crypt\\.h")
-                    (string-append libc "/include/crypt.h"))
-                   (("/usr/include/openssl")
-                    (string-append openssl "/include/openssl"))
-                   (("/usr/include/pcap-bpf.h")
-                    (string-append libpcap "/include/pcap-bpf.h")))
-                 #t))))))
-      (inputs
-       `(("libpcap" ,libpcap)
-         ("openssl" ,(@ (gnu packages tls) openssl))))
-      (synopsis "Implementation of the Point-to-Point Protocol")
-      (home-page "https://ppp.samba.org/")
-      (description
-       "The Point-to-Point Protocol (PPP) provides a standard way to establish
+  (package
+    (name "ppp")
+    (version "2.4.9")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/paulusmack/ppp")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1bhhksdclsnkw54a517ndrw55q5zljjbh9pcqz1z4a2z2flxpsgk"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:tests? #f                    ; no check target
+       #:make-flags '("CC=gcc")
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'configure 'patch-Makefile
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((libc    (assoc-ref inputs "libc"))
+                   (openssl (assoc-ref inputs "openssl"))
+                   (libpcap (assoc-ref inputs "libpcap")))
+               (substitute* "pppd/Makefile.linux"
+                 (("/usr/include/crypt\\.h")
+                  (string-append libc "/include/crypt.h"))
+                 (("/usr/include/openssl")
+                  (string-append openssl "/include/openssl"))
+                 (("/usr/include/pcap-bpf.h")
+                  (string-append libpcap "/include/pcap-bpf.h")))
+               #t))))))
+    (inputs
+     `(("libpcap" ,libpcap)
+       ("openssl" ,(@ (gnu packages tls) openssl))))
+    (synopsis "Implementation of the Point-to-Point Protocol")
+    (home-page "https://ppp.samba.org/")
+    (description
+     "The Point-to-Point Protocol (PPP) provides a standard way to establish
 a network connection over a serial link.  At present, this package supports IP
 and IPV6 and the protocols layered above them, such as TCP and UDP.")
-      ;; pppd, pppstats and pppdump are under BSD-style notices.
-      ;; some of the pppd plugins are GPL'd.
-      ;; chat is public domain.
-      (license (list bsd-3 bsd-4 gpl2+ public-domain)))))
+    ;; pppd, pppstats and pppdump are under BSD-style notices.
+    ;; some of the pppd plugins are GPL'd.
+    ;; chat is public domain.
+    (license (list bsd-3 bsd-4 gpl2+ public-domain))))
 
diff --git a/gnu/packages/scanner.scm b/gnu/packages/scanner.scm
index 04d5065808..5a69d923bf 100644
--- a/gnu/packages/scanner.scm
+++ b/gnu/packages/scanner.scm
@@ -28,6 +28,7 @@
   #:use-module (gnu packages image)
   #:use-module (gnu packages libusb)
   #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages xml)
   #:use-module (guix build-system gnu)
   #:use-module (guix download)
   #:use-module (guix git-download)
@@ -39,16 +40,15 @@
 (define-public sane-backends-minimal
   (package
     (name "sane-backends-minimal")
-    (version "1.0.30")
+    (version "1.0.31")
     (source (origin
              (method url-fetch)
              (uri (string-append
                    "https://gitlab.com/sane-project/backends/uploads/"
-                   "c3dd60c9e054b5dee1e7b01a7edc98b0/"
+                   "8bf1cae2e1803aefab9e5331550e5d5d/"
                    "sane-backends-" version ".tar.gz"))
              (sha256
-              (base32
-               "18vryaycps3zpjzxh0wjgg8nv2f4pdvcfxxmdfj28qbzqjlrcp9z"))
+              (base32 "1am5w92zyybs26wx4brgmky6dzpd8n34jyfrfx3qbvcqngy10fsa"))
              (modules '((guix build utils)))
              (snippet
               ;; Generated HTML files and udev rules normally embed a
@@ -123,8 +123,9 @@ package contains the library, but no drivers.")
     (name "sane-backends")
     (inputs
      `(("hplip" ,(@ (gnu packages cups) hplip-minimal))
-       ("libjpeg" ,libjpeg-turbo)       ; wanted by pixma, epsonds, others
+       ("libjpeg" ,libjpeg-turbo)       ; for pixma/epsonds/other back ends
        ("libpng" ,libpng)               ; support ‘scanimage --format=png’
+       ("libxml2" ,libxml2)             ; for pixma back end
        ,@(package-inputs sane-backends-minimal)))
     (arguments
      (substitute-keyword-arguments (package-arguments sane-backends-minimal)
diff --git a/gnu/packages/scheme.scm b/gnu/packages/scheme.scm
index ffbe90a52e..6c30ed8bf6 100644
--- a/gnu/packages/scheme.scm
+++ b/gnu/packages/scheme.scm
@@ -3,7 +3,7 @@
 ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
 ;;; Copyright © 2015, 2016 Federico Beffa <beffa@fbengineering.ch>
 ;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
-;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2017, 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
 ;;; Copyright © 2016, 2017 Nikita <nikita@n0.is>
 ;;; Copyright © 2017 John Darrington <jmd@gnu.org>
@@ -13,6 +13,7 @@
 ;;; Copyright © 2018 Gabriel Hondet <gabrielhondet@gmail.com>
 ;;; Copyright © 2020 Pierre Neidhardt <mail@ambrevar.xyz>
 ;;; Copyright © 2020 Brett Gilio <brettg@gnu.org>
+;;; Copyright © 2020 Edouard Klein <edk@beaver-labs.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -32,7 +33,7 @@
 (define-module (gnu packages scheme)
   #:use-module (gnu packages)
   #:use-module ((guix licenses)
-                #:select (gpl2+ lgpl2.0+ lgpl2.1+ lgpl3+ asl2.0 bsd-3
+                #:select (gpl2+ lgpl2.0+ lgpl2.1 lgpl2.1+ lgpl3+ asl2.0 bsd-3
                           cc-by-sa4.0 non-copyleft expat))
   #:use-module (guix packages)
   #:use-module (guix download)
@@ -71,6 +72,7 @@
   #:use-module (gnu packages tls)
   #:use-module (gnu packages gl)
   #:use-module (gnu packages libedit)
+  #:use-module (gnu packages linux)
   #:use-module (srfi srfi-1)
   #:use-module (ice-9 match))
 
@@ -396,7 +398,7 @@ implementation techniques and as an expository tool.")
 (define-public racket
   (package
     (name "racket")
-    (version "7.8")
+    (version "7.9")            ; note: remember to also update racket-minimal!
     (source (origin
               (method url-fetch)
               (uri (list (string-append "http://mirror.racket-lang.org/installers/"
@@ -406,7 +408,7 @@ implementation techniques and as an expository tool.")
                           version "/racket-" version "-src.tgz")))
               (sha256
                (base32
-                "19z3dayybcra277s4gk2mppalwawd93f2b16xyrb6d7rbbfz7j9j"))
+                "0gmp2ahmfd97nn9bwpfx9lznjmjkd042slnrrbdmyh59cqh98y2m"))
               (patches (search-patches
                         "racket-store-checksum-override.patch"))))
     (build-system gnu-build-system)
@@ -538,7 +540,7 @@ of libraries.")
                           version "/racket-minimal-" version "-src.tgz")))
               (sha256
                (base32
-                "1lxcd4ix8q3089xql48hwccxvcpkinfxwxnc6fhcjdgzqcyxh3ln"))
+                "0yc5zkpq1bavj64h67pllw6mfjhmdp65fgdpyqcaan3syy6b5cia"))
               (patches (search-patches
                         "racket-store-checksum-override.patch"))))
     (synopsis "Racket without bundled packages such as Dr. Racket")
@@ -813,14 +815,14 @@ linked with a SCM executable.")
 (define-public tinyscheme
   (package
     (name "tinyscheme")
-    (version "1.41")
+    (version "1.42")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://sourceforge/" name "/" name "/"
                                   name "-" version "/" name "-" version ".zip"))
               (sha256
                (base32
-                "0yqma4jrjgj95f3hf30h542x97n8ah234n19yklbqq0phfsa08wf"))))
+                "0rik3qnxqd8wjlazx8rw996pfzkjjg60v6hcbpcqzi7rgml8q4n8"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("unzip" ,unzip)))
@@ -1008,7 +1010,7 @@ The core is 12 builtin special forms and 33 builtin functions.")
 (define-public gauche
   (package
     (name "gauche")
-    (version "0.9.9")
+    (version "0.9.10")
     (home-page "https://practical-scheme.net/gauche/index.html")
     (source
      (origin
@@ -1017,7 +1019,7 @@ The core is 12 builtin special forms and 33 builtin functions.")
              "mirror://sourceforge/gauche/Gauche/Gauche-"
              version ".tgz"))
        (sha256
-        (base32 "1yzpszhw52vkpr65r5d4khf3489mnnvnw58dd2wsvvx7499k5aac"))
+        (base32 "0ci57ak5cp3lkmfy3nh50hifh8nbg58hh6r18asq0rn5mqfxyf8g"))
        (modules '((guix build utils)))
        (snippet '(begin
                    ;; Remove libatomic-ops.
@@ -1026,24 +1028,26 @@ The core is 12 builtin special forms and 33 builtin functions.")
     (build-system gnu-build-system)
     (inputs
      `(("libatomic-ops" ,libatomic-ops)
+       ("slib" ,slib)
        ("zlib" ,zlib)))
     (native-inputs
      `(("texinfo" ,texinfo)
        ("openssl" ,openssl)            ; needed for tests
        ("pkg-config" ,pkg-config)))    ; needed to find external libatomic-ops
     (arguments
-     `(#:phases
+     `(#:configure-flags
+       (list (string-append "--with-slib="
+                            (assoc-ref %build-inputs "slib")
+                            "/lib/slib"))
+       #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'patch-/bin/sh
            ;; Needed only for tests.
            (lambda _
-             (substitute* '("configure"
-                            "test/www.scm"
+             (substitute* '("test/www.scm"
                             "ext/tls/test.scm"
-                            "gc/configure"
-                            "lib/gauche/configure.scm"
                             "lib/gauche/package/util.scm"
-                            "lib/gauche/process.scm")
+                            "libsrc/gauche/process.scm")
                (("/bin/sh") (which "sh")))
              #t))
          (add-after 'build 'build-doc
@@ -1051,18 +1055,11 @@ The core is 12 builtin special forms and 33 builtin functions.")
              (with-directory-excursion "doc"
                (invoke "make" "info"))
              #t))
-         (add-before 'check 'patch-normalize-test
-           ;; Neutralize sys-normalize-pathname test as it relies on
-           ;; the home directory; (setenv "HOME" xx) isn't enough).
-           (lambda _
-             (substitute* "test/system.scm"
-               (("~/abc") "//abc"))
-             #t))
          (add-before 'check 'patch-network-tests
            ;; Remove net checks.
            (lambda _
-             (substitute* "ext/Makefile"
-               (("binary net termios") "binary termios"))
+             (delete-file "ext/net/test.scm")
+             (invoke "touch" "ext/net/test.scm")
              #t))
          (add-after 'install 'install-docs
            (lambda _
@@ -1077,3 +1074,107 @@ multilingual support are some of the goals.  Gauche comes with a package
 manager/installer @code{gauche-package} which can download, compile, install
 and list gauche extension packages.")
     (license bsd-3)))
+
+(define-public gerbil
+  (package
+    (name "gerbil")
+    (version "0.16")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/vyzo/gerbil")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0vng0kxpnwsg8jbjdpyn4sdww36jz7zfpfbzayg9sdpz6bjxjy0f"))))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (delete 'bootstrap)
+         (add-before 'configure 'chdir
+           (lambda _
+             (chdir "src")
+             #t))
+         (replace 'configure
+           (lambda* (#:key outputs inputs #:allow-other-keys)
+             (invoke "chmod" "755" "-R" ".")
+             ;; Otherwise fails when editing an r--r--r-- file.
+             (invoke "gsi-script" "configure"
+                     "--prefix" (assoc-ref outputs "out")
+                     "--with-gambit" (assoc-ref inputs "gambit-c"))))
+         (add-before 'patch-generated-file-shebangs 'fix-gxi-shebangs
+           (lambda _
+             ;; Some .ss files refer to gxi using /usr/bin/env gxi
+             ;; and 'patch-generated-file-shebangs can't fix that
+             ;; because gxi has not been compiled yet.
+             ;; We know where gxi is going to end up so we
+             ;; Doctor Who our fix here before the problem
+             ;; happens towards the end of the build.sh script.
+             (let ((abs-srcdir (getcwd)))
+               (for-each
+                (lambda (f)
+                   (substitute* f
+                     (("#!/usr/bin/env gxi")
+                      (string-append "#!" abs-srcdir "/../bin/gxi"))))
+                 '("./gerbil/gxc"
+                   "./lang/build.ss"
+                   "./misc/http-perf/build.ss"
+                   "./misc/rpc-perf/build.ss"
+                   "./misc/scripts/docsnarf.ss"
+                   "./misc/scripts/docstub.ss"
+                   "./misc/scripts/docsyms.ss"
+                   "./r7rs-large/build.ss"
+                   "./release.ss"
+                   "./std/build.ss"
+                   "./std/run-tests.ss"
+                   "./std/web/fastcgi-test.ss"
+                   "./std/web/rack-test.ss"
+                   "./tools/build.ss"
+                   "./tutorial/httpd/build.ss"
+                   "./tutorial/kvstore/build.ss"
+                   "./tutorial/lang/build.ss"
+                   "./tutorial/proxy/build-static.ss"
+                   "./tutorial/proxy/build.ss")))
+             #t))
+         (replace
+          'build
+          (lambda*
+           (#:key inputs #:allow-other-keys)
+           (setenv "HOME" (getcwd))
+             (invoke
+              ;; The build script needs a tty or it'll crash on an ioctl
+              ;; trying to find the width of the terminal it's running on.
+              ;; Calling in script prevents that.
+              "script"
+              "-qefc"
+              "./build.sh")))
+         (delete 'check)
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (bin (string-append out "/bin"))
+                    (lib (string-append out "/lib")))
+               (mkdir-p bin)
+               (mkdir-p lib)
+               (copy-recursively "../bin" bin)
+               (copy-recursively "../lib" lib)))))))
+    (native-inputs
+     `(("coreutils" ,coreutils)
+       ("util-linux" ,util-linux)))
+    (propagated-inputs
+     `(("gambit-c" ,gambit-c)
+       ("zlib" ,zlib)
+       ("openssl" ,openssl)
+       ("sqlite" ,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
+Programming, with a state of the art macro and module system on top of the Gambit
+runtime.  The macro system is based on quote-syntax, and provides the full meta-syntactic
+tower with a native implementation of syntax-case.  It also provides a full-blown module
+system, similar to PLT Scheme's (sorry, Racket) modules.  The main difference from Racket
+is that Gerbil modules are single instantiation, supporting high performance ahead of
+time compilation and compiled macros.")
+    (home-page "https://cons.io")
+    (license `(,lgpl2.1 ,asl2.0))))
diff --git a/gnu/packages/scribus.scm b/gnu/packages/scribus.scm
index 6519ce7a7f..9a6b75333b 100644
--- a/gnu/packages/scribus.scm
+++ b/gnu/packages/scribus.scm
@@ -4,6 +4,7 @@
 ;;; Copyright © 2017, 2018 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
 ;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2020, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -45,19 +46,37 @@
   #:use-module (gnu packages tls)
   #:use-module (gnu packages xml))
 
+(define podofo-for-scribus
+  (package
+    (inherit podofo)
+    (version "0.9.6")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://sourceforge/podofo/podofo/" version
+                           "/podofo-" version ".tar.gz"))
+       (sha256
+        (base32 "0wj0y4zcmj4q79wrn3vv3xq4bb0vhhxs8yifafwy9f2sjm83c5p9"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin
+           ;; Fix the build with CMake 3.12.0.
+           (substitute* "test/TokenizerTest/CMakeLists.txt"
+             (("\\$\\{CMAKE_COMMAND\\}")
+              "true"))
+           #t))))))
+
 (define-public scribus
   (package
     (name "scribus")
-    (version "1.5.5")
+    (version "1.5.6.1")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://sourceforge/scribus/scribus-devel/"
                            version "/scribus-" version ".tar.xz"))
-       (patches (search-patches "scribus-1.5.5-poppler-0.86-build-fix.patch"))
        (sha256
-        (base32
-         "0w9zzsiaq3f7vpxybk01c9z2b4qqg67mzpyfb2gjchz8dhdb423r"))))
+        (base32 "1axp8ffnx3nh6k4s5mfa9gbx8d0yql2azgcampg41ylwafapc9fl"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f                      ;no test target
@@ -97,9 +116,11 @@
        ("libxml2" ,libxml2)
        ("libzmf" ,libzmf)
        ("openssl" ,openssl)
-       ("podofo" ,podofo)
+       ;; Scribus 1.5.6.1 does not build with later versions, see
+       ;; <https://bugs.scribus.net/view.php?id=16427>.
+       ("podofo" ,podofo-for-scribus)
        ("poppler" ,poppler)
-       ("python" ,python-2)             ;need Python library
+       ("python" ,python)               ; need Python library
        ("qtbase" ,qtbase)
        ("qtdeclarative" ,qtdeclarative)
        ("zlib" ,zlib)))
diff --git a/gnu/packages/sdcc.scm b/gnu/packages/sdcc.scm
deleted file mode 100644
index 6d05470101..0000000000
--- a/gnu/packages/sdcc.scm
+++ /dev/null
@@ -1,70 +0,0 @@
-;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2016 David Craven <david@craven.ch>
-;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
-;;;
-;;; 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 sdcc)
-  #:use-module (gnu packages bison)
-  #:use-module (gnu packages boost)
-  #:use-module (gnu packages flex)
-  #:use-module (gnu packages python)
-  #:use-module (gnu packages texinfo)
-  #:use-module (guix build-system gnu)
-  #:use-module (guix download)
-  #:use-module (guix packages)
-  #:use-module ((guix licenses) #:prefix license:))
-
-(define-public sdcc
-  (package
-    (name "sdcc")
-    (version "3.7.0")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "mirror://sourceforge/sdcc/sdcc"
-                    "/" version "/sdcc-src-" version ".tar.bz2"))
-              (sha256
-               (base32
-                "13llvx0j3v5qa7qd4fh7nix4j3alpd3ccprxvx163c4q8q4lfkc5"))))
-    (build-system gnu-build-system)
-    (native-inputs
-     `(("bison" ,bison)
-       ("boost" ,boost)
-       ("flex" ,flex)
-       ("python-2" ,python-2)
-       ("texinfo" ,texinfo)))
-    (arguments
-     `(;; gputils is required for PIC ports
-       #:configure-flags
-       '("--disable-pic14-port" "--disable-pic16-port" "--enable-ucsim")
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'patch-makefile
-           (lambda _
-             (substitute* (find-files "." "(\\.mk$|\\.in$)")
-               (("/bin/sh") (which "sh")))
-             #t)))))
-    (home-page "http://sdcc.sourceforge.net")
-    (synopsis "Small devices C compiler")
-    (description "SDCC is a retargetable, optimizing Standard C compiler suite
-that targets the Intel MCS51-based microprocessors (8031, 8032, 8051, 8052, ...),
-Maxim (formerly Dallas) DS80C390 variants, Freescale (formerly Motorola)
-HC08-based (hc08, s08), Zilog Z80-based MCUs (z80, z180, gbz80, Rabbit
-2000/3000, Rabbit 3000A, TLCS-90) and STMicroelectronics STM8.
-Work is in progress on supporting the Microchip PIC16 and PIC18 targets.
-It can be retargeted for other microprocessors.")
-    (license license:gpl2+)))
diff --git a/gnu/packages/search.scm b/gnu/packages/search.scm
index be6a626b37..e261e64a7f 100644
--- a/gnu/packages/search.scm
+++ b/gnu/packages/search.scm
@@ -3,7 +3,7 @@
 ;;; Copyright © 2015, 2016 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
 ;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
-;;; Copyright © 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018, 2020, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Adam Massmann <massmannak@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -49,14 +49,14 @@
 (define-public xapian
   (package
     (name "xapian")
-    (version "1.4.16")
+    (version "1.4.18")
     ;; Note: When updating Xapian, remember to update xapian-bindings below.
     (source (origin
               (method url-fetch)
               (uri (string-append "https://oligarchy.co.uk/xapian/" version
                                   "/xapian-core-" version ".tar.xz"))
               (sha256
-               (base32 "0w5znrf9l5ahbxwg04358nzv0xsqnk42isah46j3jzpjkzsg4ds9"))))
+               (base32 "0xsb4ihf3p767f0zx9p4janwni6r9sg5j6lry0002i8hmnsdnv8r"))))
     (build-system gnu-build-system)
     (inputs `(("zlib" ,zlib)
               ("util-linux" ,util-linux "lib")))
@@ -94,7 +94,7 @@ rich set of boolean query operators.")
                                   "/xapian-bindings-" version ".tar.xz"))
               (sha256
                (base32
-                "06v2prlzwgbcsgjpmd7x2qczcp6dn7836h21bq3gmlnd2mnyr4c7"))))
+                "13ziql8027glgihgvnbsa75vkcn82g83mbihj60zf0njj170clpy"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags '("--with-python3")
@@ -116,15 +116,14 @@ rich set of boolean query operators.")
 (define-public perl-search-xapian
   (package
     (name "perl-search-xapian")
-    (version "1.2.25.2")
+    (version "1.2.25.4")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://cpan/authors/id/O/OL/OLLY/"
                            "Search-Xapian-" version ".tar.gz"))
        (sha256
-        (base32
-         "0hpa8gi38j0ibq8af6dy69lm1bl5jnq76nsa69dbrzbr88l5m594"))))
+        (base32 "1pbl8pbgmbs3i8yik4p63g4pd9bhn0dp3d7l667dkvw0kccl66c7"))))
     (build-system perl-build-system)
     (native-inputs
      `(("perl-devel-leak" ,perl-devel-leak)))
diff --git a/gnu/packages/security-token.scm b/gnu/packages/security-token.scm
index cf6bf18373..50e6a502ca 100644
--- a/gnu/packages/security-token.scm
+++ b/gnu/packages/security-token.scm
@@ -4,10 +4,11 @@
 ;;; Copyright © 2016 Mike Gerwitz <mtg@gnu.org>
 ;;; Copyright © 2016 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
-;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2017, 2019 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2018, 2019 Chris Marusich <cmmarusich@gmail.com>
 ;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2020 Raphaël Mélotte <raphael.melotte@mind.be>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -43,6 +44,7 @@
   #:use-module (gnu packages dns)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages graphviz)
+  #:use-module (gnu packages gnupg)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages libusb)
   #:use-module (gnu packages linux)
@@ -85,11 +87,11 @@
                (("/bin/echo") (which "echo")))
              #t)))))
     (native-inputs
-     `(("pcsc-lite" ,pcsc-lite)         ; only required for headers
-       ("perl" ,perl)
+     `(("perl" ,perl)
        ("pkg-config" ,pkg-config)))
     (inputs
-     `(("libusb" ,libusb)))
+     `(("libusb" ,libusb)
+       ("pcsc-lite" ,pcsc-lite)))
     (home-page "https://ccid.apdu.fr/")
     (synopsis "PC/SC driver for USB smart card devices")
     (description
@@ -102,7 +104,7 @@ readers and is needed to communicate with such devices through the
 (define-public eid-mw
   (package
     (name "eid-mw")
-    (version "4.4.27")
+    (version "5.0.11")
     (source
      (origin
        (method git-fetch)
@@ -111,13 +113,15 @@ 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 "17lw8iwp7h5cs3db80sysr84ffi333cf2vrhncs9l6hy6glfl2v1"))))
+        (base32 "0590cz00cny749p99srv880gpgzvxaf9fwm2lghv3nw0qdsilss8"))))
     (build-system glib-or-gtk-build-system)
     (native-inputs
      `(("autoconf" ,autoconf)
+       ("autoconf-archive" ,autoconf-archive)
        ("automake" ,automake)
        ("gettext" ,gettext-minimal)
        ("libtool" ,libtool)
+       ("libassuan" ,libassuan)
        ("pkg-config" ,pkg-config)
        ("perl" ,perl)))
     (inputs
@@ -130,16 +134,33 @@ readers and is needed to communicate with such devices through the
        ("libxml2" ,libxml2)
        ("cyrus-sasl" ,cyrus-sasl)))
     (arguments
-     `(#:phases
+     `(#:configure-flags
+       (list "--disable-static")
+       #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'bootstrap
+         (replace 'bootstrap
            (lambda _
              ;; configure.ac relies on ‘git --describe’ to get the version.
              ;; Patch it to just return the real version number directly.
              (substitute* "scripts/build-aux/genver.sh"
                (("/bin/sh") (which "sh"))
                (("^(GITDESC=).*" _ match) (string-append match ,version "\n")))
-             (invoke "sh" "./bootstrap.sh"))))))
+             (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.")
@@ -197,14 +218,14 @@ with a PKCS #11 Cryptographic Token Interface.")
 (define-public pcsc-lite
   (package
     (name "pcsc-lite")
-    (version "1.8.26")
+    (version "1.9.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://pcsclite.apdu.fr/files/"
                                   "pcsc-lite-" version ".tar.bz2"))
               (sha256
                (base32
-                "1ndvvz0fgqwz70pijymsxmx25mzryb0zav1i8jjc067ndryvxdry"))))
+                "1y9f9zipnrmgiw0mxrvcgky8vfrcmg6zh40gbln5a93i2c1x8j01"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags '("--enable-usbdropdir=/var/lib/pcsc/drivers"
@@ -256,7 +277,7 @@ website for more information about Yubico and the YubiKey.")
 (define-public opensc
   (package
     (name "opensc")
-    (version "0.20.0")
+    (version "0.21.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -264,7 +285,7 @@ website for more information about Yubico and the YubiKey.")
                     version "/opensc-" version ".tar.gz"))
               (sha256
                (base32
-                "0qs8pabkrpj1z52bkdsk59s2z6q5m0hfh9d5j1f68qs4lksb9x5v"))))
+                "0pijycjwpll9zn83dazgsh8n9ywq0z1ragjsd1sqv3abrcfvpyrb"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
diff --git a/gnu/packages/sequoia.scm b/gnu/packages/sequoia.scm
index 714f2b5ab0..ce3396a7c4 100644
--- a/gnu/packages/sequoia.scm
+++ b/gnu/packages/sequoia.scm
@@ -32,6 +32,7 @@
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-xyz) ;; python-setuptools
+  #:use-module (gnu packages rust)
   #:use-module (gnu packages serialization)
   #:use-module (gnu packages sqlite)
   #:use-module (gnu packages tls))
@@ -39,7 +40,7 @@
 (define-public sequoia
   (package
     (name "sequoia")
-    (version "0.17.0")
+    (version "1.0.0")
     (source
      (origin
        (method git-fetch)
@@ -47,7 +48,7 @@
              (url "https://gitlab.com/sequoia-pgp/sequoia.git")
              (commit (string-append "v" version))))
        (sha256
-        (base32 "1rf9q67qmjfkgy6r3mz1h9ibfmc04r4j8nzacqv2l75x4mwvf6xb"))
+        (base32 "0y80bl786m29ww3272qsl1ql0xc3pwd6iiqlkv3nmhnjsmygbn0d"))
        (file-name (git-file-name name version))))
     (build-system cargo-build-system)
     (outputs '("out" "python"))
@@ -55,7 +56,8 @@
      `(("clang" ,clang)
        ("pkg-config" ,pkg-config)
        ("python-pytest" ,python-pytest)
-       ("python-pytest-runner" ,python-pytest-runner)))
+       ("python-pytest-runner" ,python-pytest-runner)
+       ("python-wrapper" ,python-wrapper)))
     (inputs
      `(("capnproto" ,capnproto)
        ("gmp" ,gmp)
@@ -66,57 +68,71 @@
        ("sqlite" ,sqlite)))
     (arguments
      `(#:tests? #f ;; building the tests requires 9.7GB total
+       #:rust ,rust-1.46
        #:cargo-inputs
-       (("rust-assert-cli" ,rust-assert-cli-0.6)
-        ("rust-anyhow" ,rust-anyhow-1.0)
-        ("rust-base64" ,rust-base64-0.11)
+       (("rust-anyhow" ,rust-anyhow-1)
+        ("rust-backtrace" ,rust-backtrace-0.3)
+        ("rust-base64" ,rust-base64-0.13)
         ;;("rust-buffered-reader" included
-        ("rust-bzip2" ,rust-bzip2-0.3)
-        ("rust-capnp" ,rust-capnp-0.10)
-        ("rust-capnp-rpc" ,rust-capnp-rpc-0.10)
-        ("rust-capnpc" ,rust-capnpc-0.10)
-        ("rust-chrono" ,rust-chrono-0.4)
-        ("rust-clap" ,rust-clap-2)
+        ("rust-bzip2" ,rust-bzip2-0.4)
+        ("rust-capnp" ,rust-capnp-0.13)
+        ("rust-capnp-rpc" ,rust-capnp-rpc-0.13)
+        ("rust-capnpc" ,rust-capnpc-0.13)
+        ("rust-chrono" ,rust-chrono-0.4)  ;; for sqv, sop
+        ("rust-clap" ,rust-clap-2)        ;; for sqv
         ("rust-colored" ,rust-colored-1.9.1)
         ("rust-crossterm" ,rust-crossterm-0.13)
         ("rust-ctor" ,rust-ctor-0.1)
         ("rust-dirs" ,rust-dirs-2.0)
+        ("rust-dyn-clone" ,rust-dyn-clone-1)
+        ("rust-ed25519-dalek" ,rust-ed25519-dalek-1)
+        ("rust-eax" ,rust-eax-0.3)
         ;;("rust-failure" included
         ("rust-filetime" ,rust-filetime-0.2)
-        ("rust-flate2" ,rust-flate2-1.0)
+        ("rust-flate2" ,rust-flate2-1)
         ("rust-fs2" ,rust-fs2-0.4)
-        ("rust-futures" ,rust-futures-0.1)
-        ("rust-http" ,rust-http-0.1)
-        ("rust-hyper" ,rust-hyper-0.12)
-        ("rust-hyper-tls" ,rust-hyper-tls-0.3)
+        ("rust-futures" ,rust-futures-0.3)
+        ("rust-futures-util" ,rust-futures-util-0.3)
+        ("rust-http" ,rust-http-0.2)
+        ("rust-hyper" ,rust-hyper-0.13)
+        ("rust-hyper-tls" ,rust-hyper-tls-0.4)
         ("rust-idna" ,rust-idna-0.2)
-        ("rust-itertools" ,rust-itertools-0.8)
-        ("rust-lalrpop-util" ,rust-lalrpop-util-0.17)
+        ("rust-itertools" ,rust-itertools-0.9) ;; for sq
+        ("rust-lalrpop" ,rust-lalrpop-0.19)
+        ("rust-lalrpop-util" ,rust-lalrpop-util-0.19)
         ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-libc" ,rust-libc-0.2)
-        ("rust-memsec" ,rust-memsec-0.5)
+        ("rust-memsec" ,rust-memsec-0.6)
         ("rust-native-tls" ,rust-native-tls-0.2)
         ("rust-nettle" ,rust-nettle-7)
+        ("rust-num-bigint-dig" ,rust-num-bigint-dig-0.6)
         ("rust-parity-tokio-ipc" ,rust-parity-tokio-ipc-0.4)
-        ("rust-percent-encoding" ,rust-percent-encoding-2.1)
-        ("rust-prettytable-rs" ,rust-prettytable-rs-0.8)
+        ("rust-percent-encoding" ,rust-percent-encoding-2)
+        ("rust-prettytable-rs" ,rust-prettytable-rs-0.8)  ;; for sq
         ("rust-proc-macro2" ,rust-proc-macro2-1)
         ("rust-quickcheck" ,rust-quickcheck-0.9)
         ("rust-rand" ,rust-rand-0.7)
         ("rust-regex" ,rust-regex-1)
-        ("rust-rusqlite" ,rust-rusqlite-0.19)
-        ("rust-structopt" ,rust-structopt-0.3)
-        ("rust-tempfile" ,rust-tempfile-3)
-        ("rust-thiserror" ,rust-thiserror-1.0)
-        ("rust-tokio" ,rust-tokio-0.1)
+        ("rust-rusqlite" ,rust-rusqlite-0.24)
+        ("rust-sha1collisiondetection" ,rust-sha1collisiondetection-0.2)
+        ("rust-socket2", rust-socket2-0.3)
+        ("rust-structopt" ,rust-structopt-0.3) ;; for sop
+        ("rust-tempfile" ,rust-tempfile-3) ;; for sq
+        ("rust-thiserror" ,rust-thiserror-1)
+        ("rust-tokio" ,rust-tokio-0.2)
         ("rust-tokio-core" ,rust-tokio-core-0.1)
         ("rust-unicode-normalization" ,rust-unicode-normalization-0.1)
-        ("rust-url" ,rust-url-2.1)
+        ("rust-url" ,rust-url-2)
+        ("rust-win-crypto-ng" ,rust-win-crypto-ng-0.4)
+        ("rust-winapi" ,rust-winapi-0.3)
         ("rust-zbase32" ,rust-zbase32-0.1))
        #:cargo-development-inputs
-       (("rust-bindgen" ,rust-bindgen-0.51) ;; FIXME for nettle-sys and rusqlite
-        ("rust-lalrpop" ,rust-lalrpop-0.17)
-        ("rust-rpassword" ,rust-rpassword-4))
+       (("rust-assert-cli" ,rust-assert-cli-0.6) ;; dev-dep for for sq, sqv
+        ("rust-bindgen" ,rust-bindgen-0.51) ;; FIXME for nettle-sys and rusqlite
+        ;;("rust-lalrpop" ,rust-lalrpop-0.19)
+        ("rust-quickcheck" ,rust-quickcheck-0.9)
+        ("rust-rand" ,rust-rand-0.7)
+        ("rust-rpassword" ,rust-rpassword-5))
        #:phases
        (modify-phases %standard-phases
          ;; Run make instead of using the rust build system, as
@@ -128,9 +144,12 @@
                  (invoke "make" "check")
                  #t)))
          (replace 'install (lambda _ (invoke "make" "install") #t))
-         (add-after 'unpack 'adjust-prefix
+         (add-after 'unpack 'fix-environment
            (lambda* (#:key outputs #:allow-other-keys)
+             ;; adjust prefix
              (setenv "PREFIX" (assoc-ref outputs "out"))
+             ;; fix install script detection
+             (setenv "INSTALL" "install")
              #t))
          (add-after 'unpack 'fix-fo-python-output
            (lambda* (#:key outputs #:allow-other-keys)
@@ -157,6 +176,13 @@
                (substitute* "openpgp-ffi/sequoia-openpgp.pc.in"
                  (("PREFIX") out))
                #t)))
+         (add-after 'unpack 'keep-SOURCE_DATE_EPOCH
+           (lambda _
+               ;; preempt Makefiles replacing SOURCE_DATE_EPOCH
+               (substitute* "Makefile"
+                 (("SOURCE_DATE_EPOCH\\s=" line)
+                  (string-append "#" line)))
+             #t))
          (add-after 'unpack 'set-missing-env-vars
            (lambda* (#:key inputs #:allow-other-keys)
              ;; FIXME: why do we need to set this here?
@@ -168,7 +194,7 @@
              ;; As the comment in that file explains, upstream encourages
              ;; unpinning, as the pinned version is only to make sure the crate
              ;; compiles on older versions of rustc
-             (substitute* '("openpgp/Cargo.toml" "tool/Cargo.toml")
+             (substitute* '("openpgp/Cargo.toml" "sq/Cargo.toml")
                (("= \"=") "= \""))
              #t)))))
     (home-page "https://sequoia-pgp.org")
diff --git a/gnu/packages/shells.scm b/gnu/packages/shells.scm
index 1ebdfce768..5ee7add8b1 100644
--- a/gnu/packages/shells.scm
+++ b/gnu/packages/shells.scm
@@ -3,7 +3,7 @@
 ;;; Copyright © 2014, 2015 David Thompson <davet@gnu.org>
 ;;; Copyright © 2014 Kevin Lemonnier <lemonnierk@ulrar.net>
 ;;; Copyright © 2015 Jeff Mickey <j@codemac.net>
-;;; Copyright © 2016, 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2016–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2016 Stefan Reichör <stefan@xsteve.at>
 ;;; Copyright © 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2017, 2018 Nikita <nikita@n0.is>
@@ -65,14 +65,14 @@
 (define-public dash
   (package
     (name "dash")
-    (version "0.5.11.1")
+    (version "0.5.11.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "http://gondor.apana.org.au/~herbert/dash/files/"
                            "dash-" version ".tar.gz"))
        (sha256
-        (base32 "048n1rbw3v1ffzsw5mkc6zzvvf1csq7pcri7jraaqag38vqq3j3k"))
+        (base32 "0amwphfal2rnfa63f7qd4i9m4ckv0gm3j6jlxkmfi9x6ddkz3fb2"))
        (modules '((guix build utils)))
        (snippet
         '(begin
@@ -513,14 +513,13 @@ ksh, and tcsh.")
 (define-public xonsh
   (package
     (name "xonsh")
-    (version "0.9.18")
+    (version "0.9.24")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "xonsh" version))
         (sha256
-          (base32
-            "1h4rrwzwiwkyi9p49sjn97rl39fqq2r23hchzsw0s3fcwa7m8fkj"))
+          (base32 "00nwbagsl8qrs7m40lb0yi5dhvippj387bpnjg6w7r9cvfbj2h7m"))
         (modules '((guix build utils)))
         (snippet
          `(begin
@@ -702,8 +701,9 @@ Its features include:
       (home-page "https://github.com/rain-1/s")
       (synopsis "Extremely minimal shell with the simplest syntax possible")
       (description
-       "S is a new shell that aims to be extremely simple.
-S does not implemnt the POSIX shell standard.
+       "S is a new shell that aims to be extremely simple.  It does not
+implement the POSIX shell standard.
+
 There are no globs or \"splatting\" where a variable $FOO turns into multiple
 command line arguments.  One token stays one token forever.
 This is a \"no surprises\" straightforward approach.
@@ -814,15 +814,14 @@ Shell (pdksh).")
 (define-public oil
   (package
     (name "oil")
-    ;; https://www.oilshell.org/blog/2020/04/release-0.8.pre4.html#comment-on-version-numbering
-    (version "0.8.pre6")
+    (version "0.8.6")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://www.oilshell.org/download/oil-"
                            version ".tar.gz"))
        (sha256
-        (base32 "11nfwn5b1w74hv78065jg2zm45mqzi59381b0f649j7n3g7yp3iq"))))
+        (base32 "1g7ij3va9rlapfyl3zd08g2iffcr6b0n8b0zrp0bnxwvvnysl95h"))))
     (build-system gnu-build-system)
     (arguments
      `(#:strip-binaries? #f             ; strip breaks the binary
@@ -831,7 +830,7 @@ Shell (pdksh).")
          (replace 'configure
            (lambda* (#:key outputs #:allow-other-keys)
              (let ((out (assoc-ref outputs "out")))
-               (setenv "CC" "gcc")
+               (setenv "CC" ,(cc-for-target))
                (substitute* "configure"
                  ((" cc ") " $CC "))
                (invoke "./configure" (string-append "--prefix=" out)
@@ -839,7 +838,7 @@ Shell (pdksh).")
          (replace 'check
            ;; The tests are not distributed in the tarballs but upstream
            ;; recommends running this smoke test.
-           ;; https://github.com/oilshell/oil/blob/release/0.8.pre6/INSTALL.txt#L38-L48
+           ;; https://github.com/oilshell/oil/blob/release/0.8.0/INSTALL.txt#L38-L48
            (lambda _
              (let* ((oil "_bin/oil.ovm"))
                (invoke/quiet oil "osh" "-c" "echo hi")
diff --git a/gnu/packages/shellutils.scm b/gnu/packages/shellutils.scm
index b1db32a3dc..c7a941dfa6 100644
--- a/gnu/packages/shellutils.scm
+++ b/gnu/packages/shellutils.scm
@@ -7,6 +7,7 @@
 ;;; Copyright © 2018 Benjamin Slade <slade@jnanam.net>
 ;;; Copyright © 2019 Collin J. Doering <collin@rekahsoft.ca>
 ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
+;;; Copyright © 2020 aecepoglu <aecepoglu@fastmail.fm>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -34,6 +35,8 @@
   #:use-module (guix build-system python)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages base)
+  #:use-module (gnu packages bison)
+  #:use-module (gnu packages flex)
   #:use-module (gnu packages golang)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages pkg-config)
@@ -43,6 +46,46 @@
   #:use-module (gnu packages shells)
   #:use-module (gnu packages tmux))
 
+(define-public boxes
+  (package
+    (name "boxes")
+    (version "1.3")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/ascii-boxes/boxes")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0b12rsynrmkldlwcb62drk33kk0aqwbj10mq5y5x3hjf626gjwsi"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:test-target "test"
+       #:make-flags (list (string-append "GLOBALCONF="
+                                         (assoc-ref %outputs "out")
+                                         "/etc/boxes-config"))
+       #: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)))
+    (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
   (package
     (name "zsh-autosuggestions")
@@ -278,7 +321,7 @@ below the current cursor position, scrolling the screen if necessary.")
 (define-public hstr
   (package
     (name "hstr")
-    (version "2.2")
+    (version "2.3")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -287,7 +330,7 @@ below the current cursor position, scrolling the screen if necessary.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "07fkilqlkpygvf9kvxyvl58g3lfq0bwwdp3wczy4hk8qlbhmgihn"))))
+                "1chmfdi1dwg3sarzd01nqa82g65q7wdr6hrnj96l75vikwsg986y"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
diff --git a/gnu/packages/simulation.scm b/gnu/packages/simulation.scm
index 8d5788545f..45efd5c472 100644
--- a/gnu/packages/simulation.scm
+++ b/gnu/packages/simulation.scm
@@ -19,6 +19,7 @@
 (define-module (gnu packages simulation)
   #:use-module (gnu packages)
   #:use-module (gnu packages algebra)
+  #:use-module (gnu packages admin)
   #:use-module (gnu packages base)
   #:use-module (gnu packages bash)
   #:use-module (gnu packages bison)
@@ -47,6 +48,7 @@
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg)
   #:use-module (guix download)
+  #:use-module (guix svn-download)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system python)
@@ -682,17 +684,13 @@ user interface to the FEniCS core components and external libraries.")
              (with-directory-excursion "test"
                ;; Note: The test test_snes_set_from_options() in the file
                ;; unit/nls/test_PETScSNES_solver.py fails and is ignored.
-               (and (invoke "py.test" "unit" "--ignore"
-                            "unit/nls/test_PETScSNES_solver.py")
-                    (invoke "mpirun" "-np" "3" "python" "-B" "-m"
-                            "pytest" "unit" "--ignore"
-                            "unit/nls/test_PETScSNES_solver.py")))
-             (with-directory-excursion "demo"
-               ;; Check demos.
-               (invoke "python" "generate-demo-files.py")
-               (and (invoke "python" "-m" "pytest" "-v" "test.py")
-                    (invoke "python" "-m" "pytest" "-v" "test.py"
-                            "--mpiexec=mpiexec" "--num-proc=3")))
+               ;; Limit the number of jobs to 3 as 500 MiB of memory is used
+               ;; per process.
+               (invoke "mpirun" "-np" (number->string
+                                       (min 3 (parallel-job-count)))
+                       "python" "-B" "-m"
+                       "pytest" "unit" "--ignore"
+                       "unit/nls/test_PETScSNES_solver.py"))
              #t))
          (add-after 'install 'install-demo-files
            (lambda* (#:key outputs #:allow-other-keys)
@@ -724,3 +722,73 @@ problems that can be solved using the Finite Element Method (FEM).
 within the FEniCS project.  It provides the python user interface to the
 FEniCS core components and external libraries.")
     (license license:lgpl3+)))
+
+(define-public fullswof-2d
+  (let ((revision 505)
+        (release "1.09.01"))
+    (package
+      (name "fullswof-2d")
+      (version release)
+      (source (origin
+               (method svn-fetch)
+               (uri (svn-reference
+                     (url (string-append "https://subversion.renater.fr/"
+                                         "anonscm/svn/fullswof-2d/tags/"
+                                         "release-" version))
+                     (revision revision)))
+               (file-name (string-append "fullswof-2d-" version "-checkout"))
+               (sha256
+                (base32
+                 "16v08dx7h7n4wyddzbwimazwyj74ynis12mpjfkay4243npy44b8"))))
+      (build-system gnu-build-system)
+      (native-inputs
+       `(("inetutils" ,inetutils))) ; for 'hostname', used in the check phase
+      (arguments
+       `(#:phases
+         (modify-phases %standard-phases
+           (delete 'configure)     ; no configure script
+           (add-after 'build 'build-tools
+             (lambda _
+               (with-directory-excursion "Tools/ConvertFormat"
+                 (invoke "make" "../../bin/asc2xyz")
+                 (invoke "make" "../../bin/xyz2asc"))
+               (with-directory-excursion "Tools/ExtractWindow"
+                 (invoke "make" "../../bin/cropxyz"))
+               #t))
+           (replace 'check         ; no check target
+             (lambda _
+               (invoke "make" "benchref")))
+           (replace 'install       ; no install target
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let* ((out (assoc-ref outputs "out"))
+                      (bin (string-append out "/bin"))
+                      (doc (string-append
+                            out "/share/doc/" ,name "-" ,version))
+                      (examples (string-append doc "/Examples")))
+                 (with-directory-excursion "bin"
+                   (for-each (lambda (binary) (install-file binary bin))
+                             (list "asc2xyz" "xyz2asc" "cropxyz"
+                                   "FullSWOF_2D")))
+                 (with-directory-excursion "doc"
+                   (for-each (lambda (pdf) (install-file pdf doc))
+                             (list "Documentation.pdf" "refman.pdf")))
+                 (with-directory-excursion "Tools"
+                   (for-each (lambda (dir)
+                               (copy-file
+                                (string-append dir "/README.txt")
+                                (string-append doc "/README_" dir ".txt")))
+                             (list "ConvertFormat" "ExtractWindow")))
+                 (copy-recursively "Examples" examples)
+                 #t))))))
+      (home-page "https://www.idpoisson.fr/fullswof/")
+      (synopsis "Two dimensional flow solver for flood modelling")
+      (description "@code{FullSWOF_2d} is a numerical tool for solving
+the shallow water equations on structured grids.  The name FullSWOF
+refers to the Full form of the Shallow Water equations for Overland
+Flow.  The discretized system of equations is solved using the finite
+volume method.  A choice of shock-capturing methods is available to
+locate the transition boundaries between the wet areas and the dry
+areas in the model.  A semi-implicit method is used to advance the
+solution in time.  The tool is typically applied to the modelling of
+river flooding.")
+      (license license:cecill))))
diff --git a/gnu/packages/skarnet.scm b/gnu/packages/skarnet.scm
index 848a811d33..51be1a30e8 100644
--- a/gnu/packages/skarnet.scm
+++ b/gnu/packages/skarnet.scm
@@ -2,7 +2,7 @@
 ;;; Copyright © 2015 Claes Wallin <claes.wallin@greatsinodevelopment.com>
 ;;; Copyright © 2016 Eric Le Bihan <eric.le.bihan.dev@free.fr>
 ;;; Copyright © 2017 Z. Ren <zren@dlut.edu.cn>
-;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -30,14 +30,14 @@
 (define-public skalibs
   (package
     (name "skalibs")
-    (version "2.9.2.1")
+    (version "2.10.0.0")
     (source
      (origin
       (method url-fetch)
       (uri (string-append "https://skarnet.org/software/skalibs/skalibs-"
                           version ".tar.gz"))
       (sha256
-       (base32 "0ff551181vv9d1z5sv7yg6n4b88ajcdircs4p4nif4yl7nsrj2r5"))))
+       (base32 "122xipbxh6awsfdfj37mjc8f3g8ndmmmps4gw5s43mya8wgzib61"))))
     (build-system gnu-build-system)
     (arguments
      '(#:tests? #f                      ; no tests exist
@@ -62,14 +62,14 @@ and file system operations.  It is used by all skarnet.org software.")
 (define-public execline
   (package
     (name "execline")
-    (version "2.6.0.2")
+    (version "2.7.0.0")
     (source
      (origin
       (method url-fetch)
       (uri (string-append "https://skarnet.org/software/execline/execline-"
                           version ".tar.gz"))
       (sha256
-       (base32 "0wdg93hwpxxdqmsnd8j1nf3m2pf85n3rxaawzaih1y0ajyz6gwya"))))
+       (base32 "0kl74yix60msgw8k3shhp9ymm80n91yxxqckixj5qbbhmylpnpqd"))))
     (build-system gnu-build-system)
     (inputs `(("skalibs" ,skalibs)))
     (arguments
@@ -104,14 +104,14 @@ complexity.")))
 (define-public s6
   (package
    (name "s6")
-   (version "2.9.1.0")
+   (version "2.10.0.0")
    (source
     (origin
      (method url-fetch)
      (uri (string-append "https://skarnet.org/software/s6/s6-"
                          version ".tar.gz"))
      (sha256
-      (base32 "1xqzl2wnvcmcyhppk7mc10h1ac7fkik3i6gpyliwpf3d5i9mkqh5"))))
+      (base32 "0xzqrd0m3wjklmw1w3gjw5dcdxnhgvxv2r5wd6m2ismw2jprr9k0"))))
    (build-system gnu-build-system)
    (inputs `(("skalibs" ,skalibs)
              ("execline" ,execline)))
@@ -150,14 +150,14 @@ functionality with a very small amount of code.")))
 (define-public s6-dns
   (package
    (name "s6-dns")
-   (version "2.3.2.0")
+   (version "2.3.4.0")
    (source
     (origin
      (method url-fetch)
      (uri (string-append "https://skarnet.org/software/s6-dns/s6-dns-"
                          version ".tar.gz"))
      (sha256
-      (base32 "09hyb1xv9glqq0yy7wy8hiwvlr78kwv552pags8ancgamag15di7"))))
+      (base32 "03s94bc1y2yf0i3v3gh27xz3l2ycf246nb29mrf1zm4v9kdff5fn"))))
     (build-system gnu-build-system)
     (inputs `(("skalibs" ,skalibs)))
     (arguments
@@ -179,14 +179,14 @@ as an alternative to the BIND, djbdns or other DNS clients.")))
 (define-public s6-networking
   (package
    (name "s6-networking")
-   (version "2.3.1.2")
+   (version "2.4.0.0")
    (source
     (origin
      (method url-fetch)
      (uri (string-append "https://skarnet.org/software/s6-networking/s6-networking-"
                          version ".tar.gz"))
      (sha256
-      (base32 "1029bgwfmv903y5ji93j75m7p2jgchdxya1khxzb42q2z7yxnlyr"))))
+      (base32 "1yqykwfl5jnkxgr6skfj5kzd896pknij0hi5m7lj0r18jpfs5zgq"))))
     (build-system gnu-build-system)
     (inputs `(("skalibs" ,skalibs)
               ("execline" ,execline)
@@ -222,14 +222,14 @@ clock synchronization.")))
 (define-public s6-rc
   (package
    (name "s6-rc")
-   (version "0.5.1.4")
+   (version "0.5.2.1")
    (source
     (origin
      (method url-fetch)
      (uri (string-append "https://skarnet.org/software/s6-rc/s6-rc-"
                          version ".tar.gz"))
      (sha256
-      (base32 "07q0ixpwsmj1v08l6vd7qywdg33zzn8vhm21kvp179bapdzs8sdg"))))
+      (base32 "02pszbi440wagx2qp8aqj9mv5wm2qisw9lkq7mbnbnxxw9azlhi8"))))
     (build-system gnu-build-system)
     (inputs `(("skalibs" ,skalibs)
               ("execline" ,execline)
@@ -263,7 +263,7 @@ environment.")))
 (define-public s6-portable-utils
   (package
    (name "s6-portable-utils")
-   (version "2.2.2.4")
+   (version "2.2.3.1")
    (source
     (origin
      (method url-fetch)
@@ -271,7 +271,7 @@ environment.")))
            "https://skarnet.org/software/s6-portable-utils/s6-portable-utils-"
            version ".tar.gz"))
      (sha256
-      (base32 "0494saavpqfa4v5kib69p186858yjy87hm5qm804a4xvq51wqbwm"))))
+      (base32 "1ks1ch5v3p2z8y8wp5fmzzgjrqn2l5sj1sgfp8vv6wy8psd8mrj3"))))
     (build-system gnu-build-system)
     (inputs `(("skalibs" ,skalibs)))
     (arguments
@@ -295,7 +295,7 @@ systems and other constrained environments, but they work everywhere.")))
 (define-public s6-linux-init
   (package
    (name "s6-linux-init")
-   (version "1.0.4.2")
+   (version "1.0.6.0")
    (source
     (origin
      (method url-fetch)
@@ -303,15 +303,16 @@ systems and other constrained environments, but they work everywhere.")))
            "https://skarnet.org/software/s6-linux-init/s6-linux-init-"
            version ".tar.gz"))
      (sha256
-      (base32 "0rp4k78555r38ir57a8w9qlxss4x487jqmhpn40ankpidwjs04gm"))))
+      (base32 "0kzif3dqhm7h4h7c6npzdbcy7w756222g8ysw116fgb8j385dr6w"))))
     (build-system gnu-build-system)
     (inputs
      `(("execline" ,execline)
-       ("s6", s6)
+       ("s6" ,s6)
        ("skalibs" ,skalibs)))
     (arguments
      '(#:configure-flags
        (list
+        "--disable-static"
         (string-append "--with-lib="
                        (assoc-ref %build-inputs "skalibs")
                        "/lib/skalibs")
@@ -340,7 +341,7 @@ all the details.")))
 (define-public s6-linux-utils
   (package
    (name "s6-linux-utils")
-   (version "2.5.1.2")
+   (version "2.5.1.4")
    (source
     (origin
      (method url-fetch)
@@ -348,7 +349,7 @@ all the details.")))
            "https://skarnet.org/software/s6-linux-utils/s6-linux-utils-"
            version ".tar.gz"))
      (sha256
-      (base32 "0w4jms9qyb5kx9zcyd3gzri60rrii2rbmh08s59ckg4awy27py86"))))
+      (base32 "02gxzc9igid2kf2rvm3v6kc9806mpjmdq7cpanv4cml0ip68vbfq"))))
     (build-system gnu-build-system)
     (inputs `(("skalibs" ,skalibs)))
     (arguments
diff --git a/gnu/packages/skribilo.scm b/gnu/packages/skribilo.scm
index 6bfed916de..e5d764ae28 100644
--- a/gnu/packages/skribilo.scm
+++ b/gnu/packages/skribilo.scm
@@ -20,6 +20,7 @@
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix licenses)
+  #:use-module ((guix utils) #:select (version-major+minor))
   #:use-module (guix build-system gnu)
   #:use-module (gnu packages guile)
   #:use-module (gnu packages guile-xyz)
@@ -32,30 +33,35 @@
 (define-public skribilo
   (package
     (name "skribilo")
-    (version "0.9.4")
+    (version "0.9.5")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://savannah/skribilo/skribilo-"
                                  version ".tar.gz"))
              (sha256
               (base32
-               "06ywnfjfa9sxrzdszb5sryzg266380g519cm64kq62sskzl7zmnf"))))
+               "02dzy2imqgfmwda4d1r51205si4c0r4fp2gf22sb0kv3qhhnm0h0"))))
     (build-system gnu-build-system)
     (arguments
      ;; Make the modules available under the usual location.
-     '(#:phases
+     `(#:phases
        (modify-phases %standard-phases
          (add-before 'configure 'pre-configure
            (lambda* (#:key inputs #:allow-other-keys)
              ;; Make sure the 'skribilo' command gets to see
              ;; Guile-Reader, even if Guile-Reader is not in the search
              ;; path.
-             (let ((reader (assoc-ref inputs "guile-reader")))
+             (let ((reader (assoc-ref inputs "guile-reader"))
+                   (effective ,(version-major+minor
+                                (package-version
+                                 (car (assoc-ref (package-inputs this-package)
+                                                 "guile"))))))
                (substitute* "src/skribilo.in"
                  (("^exec (.*) -c" _ things)
                   (string-append "exec " things
-                                 " -L " reader "/share/guile/site/2.2"
-                                 " -C " reader "/lib/guile/2.2/site-ccache"
+                                 " -L " reader "/share/guile/site/" effective
+                                 " -C " reader
+                                 "/lib/guile/" effective "/site-ccache"
                                  " -c"))))
              #t)))
 
@@ -63,7 +69,7 @@
 
     (native-inputs `(("pkg-config" ,pkg-config)))
 
-    (inputs `(("guile" ,guile-2.2)
+    (inputs `(("guile" ,guile-3.0)
               ("imagemagick" ,imagemagick)
               ("ghostscript" ,ghostscript)        ; for 'convert'
               ("ploticus" ,ploticus)
@@ -71,8 +77,8 @@
 
     ;; The 'skribilo' command needs them, and for people using Skribilo as a
     ;; library, these inputs are needed as well.
-    (propagated-inputs `(("guile-reader" ,guile2.2-reader)
-                         ("guile-lib" ,guile2.2-lib)))
+    (propagated-inputs `(("guile-reader" ,guile-reader)
+                         ("guile-lib" ,guile-lib)))
 
     (home-page "https://www.nongnu.org/skribilo/")
     (synopsis "Document production tool written in Guile Scheme")
diff --git a/gnu/packages/smalltalk.scm b/gnu/packages/smalltalk.scm
index 5d35f563e2..ea1798ac13 100644
--- a/gnu/packages/smalltalk.scm
+++ b/gnu/packages/smalltalk.scm
@@ -26,6 +26,8 @@
   #:use-module (guix download)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
+  #:use-module (gnu packages)
+  #:use-module (gnu packages assembly)
   #:use-module (gnu packages audio)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages base)
@@ -36,6 +38,7 @@
   #:use-module (gnu packages libffi)
   #:use-module (gnu packages libsigsegv)
   #:use-module (gnu packages linux)
+  #:use-module (gnu packages multiprecision)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages xorg))
@@ -43,26 +46,61 @@
 (define-public smalltalk
   (package
     (name "smalltalk")
-    (version "3.2.5")
+    (version "3.2.91")
     (source
      (origin
       (method url-fetch)
-      (uri (string-append "mirror://gnu/smalltalk/smalltalk-"
+      ;; XXX: Revert to mirror://gnu with the next release of Smalltalk.
+      (uri (string-append "https://alpha.gnu.org/gnu/smalltalk/smalltalk-"
                           version ".tar.xz"))
       (sha256
        (base32
-        "1k2ssrapfzhngc7bg1zrnd9n2vyxp9c9m70byvsma6wapbvib6l1"))))
+        "1zb2h5cbz1cwybqjl24lflw359lwj7sjvvhwb4x6miypzhwq4qh0"))
+      ;; XXX: To be removed with the next release of Smalltalk.
+      (patches (search-patches "smalltalk-multiplication-overflow.patch"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("libffi" ,libffi)
+     `(("pkg-config" ,pkg-config)
+       ;; XXX: To be removed with the next release of Smalltalk.
+       ("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("libtool" ,libtool)))
+    ;; 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:
+    ;;  - freeglut
+    ;;  - glib
+    ;;  - gobject-introspection
+    ;;  - gtk+-2
+    ;;  - tcl/tk
+    ;;  - SDL (sdl-union)
+    ;;  - sqlite
+    ;;  - zlib
+    (inputs
+     `(("gmp" ,gmp)
+       ("libffi" ,libffi)
        ("libltdl" ,libltdl)
        ("libsigsegv" ,libsigsegv)
-       ("pkg-config" ,pkg-config)))
-    (inputs
-     `(("zip" ,zip)))
+       ("lightning" ,lightning)
+       ("zip" ,zip)))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
+         ;; XXX: To be removed with the next release of Smalltalk.
+         ;; The overflow patch modifies configure.ac, therefore remove
+         ;; old configure script and enforce an autoreconf.
+         (add-before 'bootstrap 'remove-unpatched-configure
+           (lambda _
+             (delete-file "configure")
+             #t))
+         ;; XXX: To be removed with the next release of Smalltalk.
+         ;; We don't want to regenerate the info files.
+         (add-after 'build 'keep-generated-info-manual
+           (lambda _
+             (for-each (lambda (file)
+                         (invoke "touch" file))
+                       (find-files "doc" "\\.info"))
+             #t))
          (add-before 'configure 'fix-libc
            (lambda _
              (let ((libc (assoc-ref %build-inputs "libc")))
diff --git a/gnu/packages/speech.scm b/gnu/packages/speech.scm
index fc87a19b79..66d8fca31b 100644
--- a/gnu/packages/speech.scm
+++ b/gnu/packages/speech.scm
@@ -51,6 +51,74 @@
   #:use-module (gnu packages texinfo)
   #:use-module (gnu packages textutils))
 
+(define-public flite
+  (package
+    (name "flite")
+    (version "2.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "http://www.festvox.org/" name "/packed/" name
+                       "-" version "/" name "-" version "-release.tar.bz2"))
+       (sha256
+        (base32 "119b7l7pjb1l5raqq24p8rmhdqni49vjh2mgdryrfr575rm3yg67"))))
+    (build-system gnu-build-system)
+    (arguments
+     ;; XXX:
+     ;; There numerous issues with the testsuite.
+     ;; Enable all of them once they are fixed in upstream.
+     `(#:tests? #f
+       #:configure-flags
+       (list
+        "--enable-shared"
+        (string-append "LDFLAGS=-Wl,-rpath="
+                       (assoc-ref %outputs "out")
+                       "/lib"))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-rpath
+           (lambda _
+             (substitute* "main/Makefile"
+              (("flite_LIBS_flags \\+= -Wl,-rpath [^ ]*")
+               "flite_LIBS_flags +="))
+             #t))
+         (delete 'check)
+         ;; Modifying testsuite/Makefile is not done in favor of
+         ;; overriding 'check.
+         ;; The path not taken would be:
+         ;; test:\n\t$(foreach x,$(subst tris1,,$(subst dcoffset_wave,,$(subst flite_test,,$(subst by_word,,$(subst bin2ascii,,$(subst lpc_resynth,,$(subst rfc,,$(subst compare_wave,,$(subst record_in_noise,,$(subst combine_waves,,$(patsubst play_%,,$(subst record_wave,,$(subst lex_lookup,,$(patsubst lpc_test%,,$(patsubst asciiS2U%,,$(patsubst asciiU2S%,,$(ALL))))))))))))))))),echo TEST $x && ./$x data.one && ) true
+         (add-after 'install 'check
+           (lambda _
+             (invoke "make" "-C" "testsuite")
+             (with-directory-excursion "testsuite"
+               (invoke "./token_test")
+               (invoke "./hrg_test")
+               (invoke "./regex_test")
+               (invoke "./nums_test")
+               (invoke "./lex_test")
+               (invoke "./utt_test")
+               (invoke "./multi_thread"))
+             #t))
+         (add-after 'install 'remove-static-libs
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out")))
+               (for-each delete-file
+                         (find-files out "\\.a$"))
+               #t))))))
+    (native-inputs
+     `(("perl" ,perl)))
+    (inputs
+     `(("alsa" ,alsa-lib)))
+    (synopsis "Speech synthesis system")
+    (description "Flite (festival-lite) is a small, fast run-time text to speech
+synthesis engine developed at CMU and primarily designed for small embedded
+machines and/or large servers.  It is designed as an alternative text to speech
+synthesis engine to Festival for voices built using the FestVox suite of voice
+building tools.")
+    (home-page "http://www.festvox.org/flite/index.html")
+    (license (license:non-copyleft "file:///COPYING"))))
+
 (define-public espeak
   (package
     (name "espeak")
diff --git a/gnu/packages/sphinx.scm b/gnu/packages/sphinx.scm
index f27f9d0176..3531ed3bdf 100644
--- a/gnu/packages/sphinx.scm
+++ b/gnu/packages/sphinx.scm
@@ -13,6 +13,7 @@
 ;;; Copyright © 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;; Copyright © 2019 Alexandros Theodotou <alex@zrythm.org>
 ;;; Copyright © 2019 Brett Gilio <brettg@gnu.org>
+;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -48,14 +49,14 @@
 (define-public python-sphinx
   (package
     (name "python-sphinx")
-    (version "2.3.1")
+    (version "3.2.1")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "Sphinx" version))
        (sha256
         (base32
-         "19a28nsb0w4bs6k8rdfyk6vzrcwdpvhs2wq77rgpmww59yvndrz6"))))
+         "1s70hxhddzf656kmj01lws4cbywgsinbg8750r9ilf7s2sdns79j"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -99,52 +100,7 @@
 for Python projects or other documents consisting of multiple reStructuredText
 sources.")
     (license license:bsd-2)
-    (properties `((python2-variant . ,(delay python2-sphinx))))))
-
-;; Sphinx 2 does not support Python 2, so we stick with this older version here.
-;; Remove this package once python2-pbcore no longer requires it.
-(define-public python2-sphinx
-  (let ((base (package-with-python2 (strip-python2-variant python-sphinx))))
-    (package
-      (inherit base)
-      (version "1.7.7")
-      (source (origin
-                (method url-fetch)
-                (uri (pypi-uri "Sphinx" version))
-                (sha256
-                 (base32
-                  "0pkkbfj7cl157q550gcs45am5y78ps0h7q6455d64s1zmw01jlvi"))))
-      (arguments
-       (substitute-keyword-arguments (package-arguments base)
-         ((#:phases phases)
-          `(modify-phases ,phases
-             (add-before 'check 'disable-broken-tests
-               (lambda _
-                 ;; These tests are broken when using Python2:
-                 ;; <https://github.com/sphinx-doc/sphinx/issues/4710>.
-                 (for-each delete-file '("tests/test_api_translator.py"
-                                         "tests/test_setup_command.py"))
-                 #t))))))
-      (native-inputs `(("python2-mock" ,python2-mock)
-                       ("python2-enum34" ,python2-enum34)
-                       ,@(package-native-inputs base)))
-      ;; 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-2.6)
-                           ("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))))))
+    (properties `((python2-variant . ,(delay python-sphinx))))))
 
 (define-public python-sphinxcontrib-applehelp
   (package
@@ -556,14 +512,14 @@ and several other projects.")
 (define-public python-breathe
   (package
     (name "python-breathe")
-    (version "4.13.1")
+    (version "4.22.1")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "breathe" version))
        (sha256
         (base32
-         "1aw749n2ry27434qd7gr99dvsrs3x3chyi9aywmhjj1g4m2j6xf6"))))
+         "0snk538xv60z4vfhl3f7v5g658za7257hddkg07cknkn33k6cjvf"))))
     (build-system python-build-system)
     (propagated-inputs
      `(("python-docutils" ,python-docutils)
@@ -578,14 +534,13 @@ to be able to read and render the Doxygen xml output.")
 (define-public python-sphinx-intl
   (package
     (name "python-sphinx-intl")
-    (version "2.0.0")
+    (version "2.0.1")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "sphinx-intl" version))
        (sha256
-        (base32
-         "0zbf1bh23b3kza8bnjykmv2k21xmmr4gamhi3lnicnr6ypnrphr5"))))
+        (base32 "1d1q0sanjp4nkfvhsxi75zf3xjyyi8nzxvl3v7l0jy9ld70nwnmj"))))
     (build-system python-build-system)
     (propagated-inputs
      `(("python-sphinx" ,python-sphinx)
@@ -643,3 +598,32 @@ translate and to apply translation to Sphinx generated document.")
 documentation when a change is detected.  It also includes a livereload
 enabled web server.")
     (license license:expat)))
+
+(define-public python-nbsphinx
+  (package
+    (name "python-nbsphinx")
+    (version "0.7.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "nbsphinx" version))
+        (sha256
+          (base32
+            "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)))
+    (home-page "https://nbsphinx.readthedocs.io/")
+    (synopsis "Jupyter Notebook Tools for Sphinx")
+    (description "@code{python-nbsphinx} is a Sphinx extension that
+provides a source parser for @code{*.ipynb} files.  Custom Sphinx
+directives are used to show Jupyter Notebook code cells (and of course
+their results) in both HTML and LaTeX output.  Un-evaluated notebooks
+- i.e. notebooks without stored output cells - will be automatically
+executed during the Sphinx build process.")
+    (license license:expat)))
diff --git a/gnu/packages/spice.scm b/gnu/packages/spice.scm
index 4aff8dbf56..92aeef7f79 100644
--- a/gnu/packages/spice.scm
+++ b/gnu/packages/spice.scm
@@ -102,7 +102,7 @@ system to use the host GPU to accelerate 3D rendering.")
 (define-public spice-protocol
   (package
     (name "spice-protocol")
-    (version "0.14.2")
+    (version "0.14.3")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -110,7 +110,7 @@ system to use the host GPU to accelerate 3D rendering.")
                 "spice-protocol-" version ".tar.xz"))
               (sha256
                (base32
-                "1sgi9ksb781qs47pdbw0bmnyg8dgayn5xrzj6vzdy043nv466flg"))))
+                "0yj8k7gcirrsf21w0q6146n5g4nzn2pqky4p90n5760m5ayfb1pr"))))
     (build-system meson-build-system)
     (arguments
      `(#:phases
@@ -144,11 +144,8 @@ which allows users to view a desktop computing environment.")
     (build-system gnu-build-system)
     (propagated-inputs
       `(("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)
         ("spice-protocol" ,spice-protocol)
 
         ;; These are required by the pkg-config files.
@@ -264,7 +261,7 @@ Internet and from a wide variety of machine architectures.")
 (define-public spice-vdagent
   (package
     (name "spice-vdagent")
-    (version "0.17.0")
+    (version "0.20.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -272,7 +269,7 @@ Internet and from a wide variety of machine architectures.")
                 "spice-vdagent-" version ".tar.bz2"))
               (sha256
                (base32
-                "0gdkyylyg1hksg0i0anvznqfli2q39335fnrmcd6847frpc8njpi"))))
+                "0n9k2kna2gd1zi6jv45zsp2jlv439nz5l5jjijirxqaycwi74srf"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags
@@ -297,6 +294,7 @@ Internet and from a wide variety of machine architectures.")
       `(("alsa-lib" ,alsa-lib)
         ("dbus" ,dbus)
         ("glib" ,glib)
+        ("libdrm" ,libdrm)
         ("libpciaccess" ,libpciaccess)
         ("libx11" ,libx11)
         ("libxext" ,libxext)
@@ -372,6 +370,7 @@ share smart cards from client system to local or remote virtual machines.")
     (build-system gnu-build-system)
     (inputs
       `(("gtk+" ,gtk+)
+        ("gtk-vnc" ,gtk-vnc)
         ("libcap" ,libcap)
         ("libxml2" ,libxml2)
         ("spice-gtk" ,spice-gtk)))
diff --git a/gnu/packages/ssh.scm b/gnu/packages/ssh.scm
index 50316ea1be..146177f7f3 100644
--- a/gnu/packages/ssh.scm
+++ b/gnu/packages/ssh.scm
@@ -15,6 +15,7 @@
 ;;; Copyright © 2019, 2020 Mathieu Othacehe <m.othacehe@gmail.com>
 ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
 ;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
+;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -56,6 +57,8 @@
   #:use-module (gnu packages popt)
   #:use-module (gnu packages protobuf)
   #: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 readline)
   #:use-module (gnu packages texinfo)
@@ -122,7 +125,7 @@ file names.
 (define-public libssh
   (package
     (name "libssh")
-    (version "0.9.4")
+    (version "0.9.5")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -130,7 +133,7 @@ file names.
                      (commit (string-append "libssh-" version))))
               (sha256
                (base32
-                "0qr4vi3k1wv69c95d9j26fiv78pzyksaq8ccd76b8nxar5z1fbj6"))
+                "1b2klflmn0mdkcyjl4dqfg116bf9nhmqm4qla5cqa9xis89a5bn6"))
               (file-name (git-file-name name version))))
     (build-system cmake-build-system)
     (outputs '("out" "debug"))
@@ -181,15 +184,16 @@ a server that supports the SSH-2 protocol.")
 (define-public openssh
   (package
    (name "openssh")
-   (version "8.3p1")
+   (version "8.4p1")
    (source (origin
              (method url-fetch)
              (uri (string-append "mirror://openbsd/OpenSSH/portable/"
                                  "openssh-" version ".tar.gz"))
-             (patches (search-patches "openssh-hurd.patch"))
+             (patches (search-patches "openssh-hurd.patch"
+                                      "openssh-fix-ssh-copy-id.patch"))
              (sha256
               (base32
-               "1cl74ghi9y21dc3f4xa0qamb7dhwacbynh1ks9syprrg8zhgpgpj"))))
+               "091b3pxdlj47scxx6kkf4agkx8c8sdacdxx8m1dw1cby80pd40as"))))
    (build-system gnu-build-system)
    (native-inputs `(("groff" ,groff)
                     ("pkg-config" ,pkg-config)))
@@ -297,7 +301,7 @@ Additionally, various channel-specific options can be negotiated.")
 (define-public guile-ssh
   (package
     (name "guile-ssh")
-    (version "0.13.0")
+    (version "0.13.1")
     (home-page "https://github.com/artyom-poptsov/guile-ssh")
     (source (origin
               (method git-fetch)
@@ -307,7 +311,7 @@ Additionally, various channel-specific options can be negotiated.")
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "1q96h98p6x7ah6nc0d2wfx503fmsj36riv9ka9s79z3lzwaf0k26"))
+                "1xpxkvgj7wgcl450djkcrmrf957mcy2f36hfs5g6kpla1gax2d1g"))
               (modules '((guix build utils)))))
     (build-system gnu-build-system)
     (outputs '("out" "debug"))
@@ -352,9 +356,7 @@ Additionally, various channel-specific options can be negotiated.")
                         (rename-file (string-append bin "/sssh.scm")
                                      (string-append examples "/sssh.scm"))
                         (delete-file-recursively bin)
-                        #t))))
-       ;; Tests are not parallel-safe.
-       #:parallel-tests? #f))
+                        #t))))))
     (native-inputs `(("autoconf" ,autoconf)
                      ("automake" ,automake)
                      ("libtool" ,libtool)
@@ -486,40 +488,10 @@ of user keystrokes.  It's a replacement for SSH that's more robust and
 responsive, especially over Wi-Fi, cellular, and long-distance links.")
     (license license:gpl3+)))
 
-(define-public et
-  (package
-    (name "et")
-    (version "3.1.0")
-    (source
-     (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/MisterTea/EternalTCP")
-             (commit (string-append "et-v" version))))
-       (file-name (git-file-name name version))
-       (sha256
-        (base32 "1m5caxckn2ihwp9s2pbyh5amxlpwr7yc54q8s0kb10fr52w2vfnm"))))
-    (build-system cmake-build-system)
-    (arguments `(#:tests? #f))
-    (native-inputs
-     `(("pkg-config" ,pkg-config)))
-    (inputs `(("glog" ,glog)
-              ("gflags" ,gflags)
-              ("libsodium" ,libsodium)
-              ("protobuf" ,protobuf)))
-    (synopsis "Remote shell that automatically reconnects")
-    (description
-     "Eternal Terminal (ET) is a remote shell that automatically reconnects
-without interrupting the session.  Unlike SSH sessions, ET sessions will
-survive even network outages and IP changes.  ET uses a custom protocol over
-TCP, not the SSH protocol.")
-    (home-page "https://eternalterminal.dev/")
-    (license license:asl2.0)))
-
 (define-public dropbear
   (package
     (name "dropbear")
-    (version "2020.80")
+    (version "2020.81")
     (source
      (origin
        (method url-fetch)
@@ -527,7 +499,7 @@ TCP, not the SSH protocol.")
              "https://matt.ucc.asn.au/dropbear/releases/"
              "dropbear-" version ".tar.bz2"))
        (sha256
-        (base32 "0jbrbpdzyv11x5rkljdimzq9p6a7da5siw9k405ibnpjj4dr89yr"))))
+        (base32 "0fy5ma4cfc2pk25mcccc67b2mf1rnb2c06ilb7ddnxbpnc85s8s8"))))
     (build-system gnu-build-system)
     (arguments `(#:tests? #f))  ; there is no "make check" or anything similar
     ;; TODO: Investigate unbundling libtommath and libtomcrypt or at least
@@ -593,10 +565,13 @@ basis for almost any application.")
 
                   (substitute* "src/testsuite/login-auth-test"
                     (("/bin/cat") "cat"))
-                  #t))))
+                  #t))
+              (patches (search-patches "lsh-fix-x11-forwarding.patch"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("m4" ,m4)
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("m4" ,m4)
        ("guile" ,guile-2.0)
        ("gperf" ,gperf)
        ("psmisc" ,psmisc)))                       ; for `killall'
@@ -614,7 +589,8 @@ basis for almost any application.")
 
        ;; The server (lshd) invokes xauth when X11 forwarding is requested.
        ;; This adds 24 MiB (or 27%) to the closure of lsh.
-       ("xauth" ,xauth)))
+       ("xauth" ,xauth)
+       ("libxau" ,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
@@ -627,14 +603,20 @@ basis for almost any application.")
                            ;; 'lsh_argp.h' checks HAVE_ARGP_PARSE but nothing
                            ;; defines it.
                            "CPPFLAGS=-DHAVE_ARGP_PARSE")
-
-       ;; FIXME: Tests won't run in a chroot, presumably because
-       ;; /etc/profile is missing, and thus clients get an empty $PATH
-       ;; and nothing works.
-       #:tests? #f
-
        #:phases
        (modify-phases %standard-phases
+         (add-after 'unpack 'disable-failing-tests
+           (lambda _
+             ;; FIXME: Most tests won't run in a chroot, presumably because
+             ;; /etc/profile is missing, and thus clients get an empty $PATH
+             ;; and nothing works.  Run only the subset that passes.
+             (delete-file "configure")  ;force rebootstrap
+             (substitute* "src/testsuite/Makefile.am"
+               (("seed-test \\\\")        ;prevent trailing slash
+                "seed-test")
+               (("^\t(lsh|daemon|tcpip|socks|lshg|lcp|rapid7|lshd).*test.*")
+                ""))
+             #t))
          (add-before 'configure 'pre-configure
            (lambda* (#:key inputs #:allow-other-keys)
              (let* ((nettle    (assoc-ref inputs "nettle"))
@@ -695,7 +677,7 @@ manipulating key files.")
         (base32
          "0q7fblaczb7kwbsz0gdy9267z0sllzgmf0c7z5c9mf88wv74ycn6"))))
     (build-system gnu-build-system)
-    (description "sshpass is a tool for non-interactivly performing password
+    (description "sshpass is a tool for non-interactively performing password
 authentication with SSH's so-called @dfn{interactive keyboard password
 authentication}.")
     (license license:gpl2+)))
@@ -782,6 +764,45 @@ dynamically loadable modules for extended functionality such as new remote
 shell services and remote host selection.")
     (license license:gpl2+)))
 
+(define-public python-asyncssh
+  (package
+    (name "python-asyncssh")
+    (version "2.3.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "asyncssh" version))
+       (sha256
+        (base32
+         "0pi6npmsgx7l9r1qrfvg8mxx3i23ipff492xz4yhrw13f56a7ga4"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-cryptography" ,python-cryptography)
+       ("python-pyopenssl" ,python-pyopenssl)
+       ("python-gssapi" ,python-gssapi)
+       ("python-bcrypt" ,python-bcrypt)))
+    (native-inputs
+     `(("openssh" ,openssh)
+       ("openssl" ,openssl)))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'disable-tests
+           (lambda* _
+             (substitute* "tests/test_agent.py"
+               ;; TODO Test fails for unknown reason
+               (("(.+)async def test_confirm" all indent)
+                (string-append indent "@unittest.skip('disabled by guix')\n"
+                               indent "async def test_confirm")))
+             #t)))))
+    (home-page "https://asyncssh.readthedocs.io/")
+    (synopsis "Asynchronous SSHv2 client and server library for Python")
+    (description
+     "AsyncSSH is a Python package which provides an asynchronous client and
+server implementation of the SSHv2 protocol on top of the Python 3.6+ asyncio
+framework.")
+    (license license:epl2.0)))
+
 (define-public clustershell
   (package
     (name "clustershell")
@@ -853,3 +874,39 @@ program doesn't depend on any cryptographic libraries.  It's a simple,
 single-threaded, standalone C program.  It uses @code{poll()} to trap multiple
 clients at a time.")
     (license license:unlicense)))
+
+(define-public webssh
+  (package
+    (name "webssh")
+    (version "1.5.3")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/huashengdun/webssh")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1bcy9flrzbvams5p77swwiygv54ac58ia7hpic1bvg30b3wpvv7b"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-paramiko" ,python-paramiko)
+       ("python-tornado" ,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
+client.
+
+Features:
+@itemize @bullet
+@item SSH password authentication supported, including empty password.
+@item SSH public-key authentication supported, including DSA RSA ECDSA
+Ed25519 keys.
+@item Encrypted keys supported.
+@item Two-Factor Authentication (time-based one-time password) supported.
+@item Fullscreen terminal supported.
+@item Terminal window resizable.
+@item Auto detect the ssh server's default encoding.
+@item Modern browsers are supported.
+@end itemize")
+    (license license:expat)))
diff --git a/gnu/packages/sssd.scm b/gnu/packages/sssd.scm
index c004e8c21c..b2b5da96f8 100644
--- a/gnu/packages/sssd.scm
+++ b/gnu/packages/sssd.scm
@@ -90,7 +90,8 @@ fundamental object types for C.")
               (sha256
                (base32
                 "1h6hwibaf3xa2w6qpzjiiywmfj6zkgbz4r2isf3gd0xm6vq7n6if"))
-              (patches (search-patches "sssd-fix-samba.patch"))))
+              (patches (search-patches "sssd-fix-samba.patch"
+                                       "sssd-system-directories.patch"))))
     (build-system gnu-build-system)
     (arguments
      `(#:make-flags
@@ -103,7 +104,10 @@ fundamental object types for C.")
              ;; online DTDs.
              "XMLLINT_FLAGS = --catalogs --nonet --noent --xinclude --noout")
        #:configure-flags
-       (list "--disable-cifs-idmap-plugin"
+       (list "--localstatedir=/var" ;for /var/lib/sss, /var/run/sssd.pid, etc.
+             "--sysconfdir=/etc"    ;/etc/sssd
+
+             "--disable-cifs-idmap-plugin"
              "--without-nfsv4-idmapd-plugin"
              "--without-python2-bindings"
              "--without-python3-bindings"
@@ -160,7 +164,7 @@ fundamental object types for C.")
        ("tdb" ,tdb)
        ("tevent" ,tevent)))
     (native-inputs
-     `(("check" ,check)
+     `(("check" ,check-0.14)
        ("docbook-xsl" ,docbook-xsl)
        ("docbook-xml" ,docbook-xml)
        ("libxml2" ,libxml2)             ; for xmllint
diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm
index a076d42c70..77cd629882 100644
--- a/gnu/packages/statistics.scm
+++ b/gnu/packages/statistics.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 Vicente Vera Parra <vicentemvp@gmail.com>
 ;;; Copyright © 2016 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2016, 2017, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
@@ -88,7 +88,7 @@
 (define-public pspp
   (package
     (name "pspp")
-    (version "1.2.0")
+    (version "1.4.1")
     (source
      (origin
       (method url-fetch)
@@ -96,7 +96,7 @@
                           version ".tar.gz"))
       (sha256
        (base32
-        "07pp27zycrb5x927jwaj9r3q7hy915jh51xs85zxby6gfiwl63m5"))))
+        "0lqrash677b09zxdlxp89z6k02y4i23mbqg83956dwl69wc53dan"))))
     (build-system gnu-build-system)
     (inputs
      `(("cairo" ,cairo)
@@ -160,14 +160,14 @@ simulation not wholly unlike BUGS.  JAGS was written with three aims in mind:
 (define-public libxls
   (package
     (name "libxls")
-    (version "1.5.3")
+    (version "1.6.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://github.com/libxls/libxls/releases/download/"
                            "v" version "/libxls-" version ".tar.gz"))
        (sha256
-        (base32 "0rl513wpq5qh7wkmdk4g9c68rzffv3mcbz48p4xyg4969zrx8lnm"))))
+        (base32 "0wg3ymr43aa1j3scyl9x83b2xgg7wilzpil0dj91a8dzji6w7b2x"))))
     (build-system gnu-build-system)
     (home-page "https://github.com/libxls/libxls")
     (synopsis "Read binary (.xls) Excel spreadsheet files")
@@ -184,7 +184,7 @@ This package also provides @command{xls2csv} to export Excel files to CSV.")
 (define r-with-tests
   (package
     (name "r-with-tests")
-    (version "4.0.2")
+    (version "4.0.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://cran/src/base/R-"
@@ -192,7 +192,7 @@ This package also provides @command{xls2csv} to export Excel files to CSV.")
                                   version ".tar.gz"))
               (sha256
                (base32
-                "0xdy3dy2bzdiba8z94hjykyra8si8a5q15s0bri7c26scjrymg6k"))))
+                "03cypg2qf7v9mq9mr9alz9w5y9m5kdgwbc97bp26pyymg253m609"))))
     (build-system gnu-build-system)
     (arguments
      `(#:disallowed-references (,tzdata-for-tests)
@@ -269,6 +269,15 @@ as.POSIXct(if (\"\" != Sys.getenv(\"SOURCE_DATE_EPOCH\")) {\
                (substitute* "tools/help2man.pl"
                  (("my \\$date = strftime \"%B %Y\", localtime" line)
                   (string-append line " 1"))))
+
+             ;; The "References" section of this file when converted to
+             ;; package.rds is sometimes stored with a newline, sometimes with
+             ;; a space.  We avoid this problem by adding characters to break
+             ;; up the series of line break and spaces that is suspected to be
+             ;; the culprit.
+             (substitute* "src/library/methods/DESCRIPTION.in"
+               (("  ``Software")
+                "  -- ``Software"))
              #t))
          (add-before 'build 'set-locales
            (lambda _
@@ -429,14 +438,14 @@ D.V. Hinkley (1997, CUP), originally written by Angelo Canty for S.")
 (define-public r-mass
   (package
     (name "r-mass")
-    (version "7.3-51.6")
+    (version "7.3-53")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "MASS" version))
        (sha256
         (base32
-         "1viyxy22qp8abzzzlbck55b0i81rrdygim1dq2pm52s2v13mq0z2"))))
+         "0f2bwsbqr3nzsqxva051lg8wd068naqif3vc48hac0m3mmq4x0j1"))))
     (properties `((upstream-name . "MASS")))
     (build-system r-build-system)
     (home-page "http://www.stats.ox.ac.uk/pub/MASS4/")
@@ -494,14 +503,14 @@ Hubert, based on Kaufman and Rousseeuw (1990) \"Finding Groups in Data\".")
 (define-public r-codetools
   (package
     (name "r-codetools")
-    (version "0.2-16")
+    (version "0.2-18")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "codetools" version))
        (sha256
         (base32
-         "00bmhzqprqfn3w6ghx7sakai6s7il8gbksfiawj8in5mbhbncypn"))))
+         "0a2c115glq8jxixwfigrpvjabhxchn9r4mc40y41dg9dg6wsd7hs"))))
     (build-system r-build-system)
     (home-page "https://cran.r-project.org/web/packages/codetools")
     (synopsis "Code analysis tools for R")
@@ -513,14 +522,14 @@ code for possible problems.")
 (define-public r-foreign
   (package
     (name "r-foreign")
-    (version "0.8-80")
+    (version "0.8-81")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "foreign" version))
        (sha256
         (base32
-         "0wjdi3qn9famsxmpdyyahidaid0yhxlpx4ad9k8vrxhxd6xspasp"))))
+         "0b4rca1bl8xxna05057hchbwfmgjgx0n140szabpc0raizqzks0s"))))
     (build-system r-build-system)
     (home-page "https://cran.r-project.org/web/packages/foreign")
     (synopsis "Read data stored by other statistics software")
@@ -533,14 +542,14 @@ for reading and writing some dBase files.")
 (define-public r-kernsmooth
   (package
     (name "r-kernsmooth")
-    (version "2.23-17")
+    (version "2.23-18")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "KernSmooth" version))
        (sha256
         (base32
-         "11g6b0q67vasxag6v9m4px33qqxpmnx47c73yv1dninv2pz76g9b"))))
+         "14640ddvxmczd5xjg1xsd51gll2glfg946vks8wmac6jb8680d43"))))
     (properties `((upstream-name . "KernSmooth")))
     (build-system r-build-system)
     (native-inputs
@@ -577,14 +586,14 @@ also flexible enough to handle most nonstandard requirements.")
 (define-public r-matrix
   (package
     (name "r-matrix")
-    (version "1.2-18")
+    (version "1.3-2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "Matrix" version))
        (sha256
         (base32
-         "06b1rc1vq65b271f2wpzhqkvhng8hwwnvjflzxkng50i52603zzp"))))
+         "0ccmmfd0lbvrhzjzr28k4yfawiywa1m4ics34zyi3rqq23csa2wm"))))
     (properties `((upstream-name . "Matrix")))
     (build-system r-build-system)
     (propagated-inputs
@@ -599,13 +608,13 @@ and operations on them using LAPACK and SuiteSparse.")
 (define-public r-nlme
   (package
     (name "r-nlme")
-    (version "3.1-148")
+    (version "3.1-151")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "nlme" version))
        (sha256
-        (base32 "1cmf43r82kar1hpj9dhqfi3rbjka0z5s6cbdy7fklwh99xj3phkp"))))
+        (base32 "1jl6x0glpyszy6bkbcggm3f10jl4kldhs5q561k85xcbssx2dim2"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-lattice" ,r-lattice)))
@@ -621,13 +630,13 @@ nonlinear mixed-effects models.")
 (define-public r-mgcv
   (package
    (name "r-mgcv")
-   (version "1.8-31")
+   (version "1.8-33")
    (source
     (origin
      (method url-fetch)
      (uri (cran-uri "mgcv" version))
      (sha256
-      (base32 "1if34mqsn9r7g0l82lxvvx0wjhi9paqdymyd73nschxcl1if8vbk"))))
+      (base32 "1x1bdzz2b2f05626xygwqp30b4rhblgg76hs15j9ab4fjan7pjwq"))))
    (build-system r-build-system)
    (propagated-inputs
     `(("r-matrix" ,r-matrix)
@@ -702,14 +711,14 @@ analysis.")
 (define-public r-survival
   (package
     (name "r-survival")
-    (version "3.2-3")
+    (version "3.2-7")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "survival" version))
        (sha256
         (base32
-         "07h76r2y23w889257krlijcw4n4d7ssx92x7i5qb1xyv5gyvl3rx"))))
+         "0ila864g5b9yhjhk3jirgdpi06sksc0axa78890dmkvyv9rwsmjk"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-matrix" ,r-matrix)))
@@ -771,14 +780,14 @@ binary booleans, @code{TRUE} and @code{FALSE} can be stored with 1 bit only.")
 (define-public r-bit64
   (package
     (name "r-bit64")
-    (version "4.0.2")
+    (version "4.0.5")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "bit64" version))
        (sha256
         (base32
-         "1yrwvgvxdlsa8y42l05vy173qndlqkwfk6mp2zrqwm8l7c7p79g9"))))
+         "0y0m7q1rwam1g88cjx7zyi07mj5dipxd9jkl90f294syx8k6ipr5"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-bit" ,r-bit)))
@@ -815,13 +824,13 @@ effects of different types of color-blindness.")
 (define-public r-digest
   (package
     (name "r-digest")
-    (version "0.6.25")
+    (version "0.6.27")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "digest" version))
        (sha256
-        (base32 "1r9dkq0kxkps54gkmgcdngsd068p054va2vhnqhs5jmwp2vsvk0m"))))
+        (base32 "0gr503pinailfglpfbzxprqw7w1jla8jr9nl856a4zch498zg1gl"))))
     (build-system r-build-system)
     ;; Vignettes require r-knitr, which requires r-digest, so we have to
     ;; disable them and the tests.
@@ -863,13 +872,13 @@ non-estimable cases correctly.")
 (define-public r-labeling
   (package
     (name "r-labeling")
-    (version "0.3")
+    (version "0.4.2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "labeling" version))
        (sha256
-        (base32 "13sk7zrrrzry6ky1bp8mmnzcl9jhvkig8j4id9nny7z993mnk00d"))))
+        (base32 "0rfikd9gy70b8qz87q9axcwv8nmn9mbxfdwypxi0sghpfs9df8p0"))))
     (build-system r-build-system)
     (home-page "https://cran.r-project.org/web/packages/labeling")
     (synopsis "Axis labeling algorithms")
@@ -880,14 +889,18 @@ algorithms.")
 (define-public r-magrittr
   (package
     (name "r-magrittr")
-    (version "1.5")
+    (version "2.0.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "magrittr" version))
        (sha256
-        (base32 "1s1ar6rag8m277qcqmdp02gn4awn9bdj9ax0r8s32i59mm1mki05"))))
+        (base32 "0pxd99fvg406whqsk9wh756rayrwh84xn3h44zmlpcy23kanbhkm"))))
     (build-system r-build-system)
+    ;; knitr needs magrittr
+    #;
+    (native-inputs
+     `(("r-knitr" ,r-knitr)))
     (home-page "https://cran.r-project.org/web/packages/magrittr/index.html")
     (synopsis "A forward-pipe operator for R")
     (description
@@ -1026,14 +1039,14 @@ solution for sending email, including attachments, from within R.")
 (define-public r-stringi
   (package
     (name "r-stringi")
-    (version "1.4.6")
+    (version "1.5.3")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "stringi" version))
        (sha256
         (base32
-         "1mkgxzf000zdgbbbvg2vf4md4l501n5lfksffq8vdg6pbgd6fgv3"))))
+         "0420f7zn5knyyvd3a3xa7059l4kadw0m67rfpivacqn9xn6iwkr2"))))
     (build-system r-build-system)
     (inputs `(("icu4c" ,icu4c)))
     (native-inputs `(("pkg-config" ,pkg-config)))
@@ -1099,13 +1112,13 @@ using just two functions: melt and dcast (or acast).")
 (define-public r-ggplot2
   (package
     (name "r-ggplot2")
-    (version "3.3.2")
+    (version "3.3.3")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "ggplot2" version))
        (sha256
-        (base32 "0wsib5qpzn4d0w1ss3x158xmrawkms8vvsfvr3mh40pvd8g2ibad"))))
+        (base32 "1k136k1sr6dq1xvx6gs6gzji6hbnnwnsb5qivsxrblfv90irxhj5"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-digest" ,r-digest)
@@ -1135,13 +1148,13 @@ aesthetic attributes.")
 (define-public r-ggdendro
   (package
     (name "r-ggdendro")
-    (version "0.1.21")
+    (version "0.1.22")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "ggdendro" version))
               (sha256
                (base32
-                "0jcjdkhd3wirjgv4v3gb9rw8idyymwhwnxplg3wi8wa3mwr9rhq2"))))
+                "0skbj487b6f6pj2iz4yq2b9gbgb39cv5dyzhdl3w7ay1k0s5z9ph"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-ggplot2" ,r-ggplot2)
@@ -1162,14 +1175,14 @@ agnes cluster diagrams.")
 (define-public r-gdtools
   (package
     (name "r-gdtools")
-    (version "0.2.2")
+    (version "0.2.3")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "gdtools" version))
        (sha256
         (base32
-         "08njzin0c6biw62j5w30r9j85vr1m2cg4hmv5d76nym860yrlqjf"))))
+         "1p3ip0qwpg8f63jfx0b8vbac6l20ddid8xvxzkfi6i858pybnawp"))))
     (build-system r-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
@@ -1255,14 +1268,16 @@ evaluation (NSE) in R.")
 (define-public r-dbi
   (package
     (name "r-dbi")
-    (version "1.1.0")
+    (version "1.1.1")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "DBI" version))
               (sha256
                (base32
-                "1r03j9rdcxb9bhxk40dkmy10ikz4yzsxhy3f9k9ix3x577xbfvd9"))))
+                "0i0kfyg43nryyka2bjlgz4x75w965224qp36wz1hl7a2lswb6ajp"))))
     (build-system r-build-system)
+    (native-inputs
+     `(("r-knitr" ,r-knitr)))
     (home-page "https://github.com/rstats-db/DBI")
     (synopsis "R database interface")
     (description
@@ -1275,13 +1290,13 @@ R/DBMS implementations.")
 (define-public r-bh
   (package
     (name "r-bh")
-    (version "1.72.0-3")
+    (version "1.75.0-0")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "BH" version))
               (sha256
                (base32
-                "1ay8vb6i730lipg8b8g3893vqglhw2kqpc29lwdrxdkb66iw33l8"))))
+                "0nkgvl5qjs2a7jv0ncsrl4fqaw2pdaj7a1pncdv6kp874sci0k5f"))))
     (build-system r-build-system)
     (home-page "https://github.com/eddelbuettel/bh")
     (synopsis "R package providing subset of Boost headers")
@@ -1415,13 +1430,13 @@ emitter (http://pyyaml.org/wiki/LibYAML) for R.")
 (define-public r-knitr
   (package
     (name "r-knitr")
-    (version "1.29")
+    (version "1.30")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "knitr" version))
               (sha256
                (base32
-                "00rcwiq8znmk5h4qgrwd0639xyb38iwbjykqjk3disz3kvrcvbn1"))))
+                "0gn9qwc5762a6j0iywfwhalni52g228dcy4bl4di6d52cqsv3ars"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-evaluate" ,r-evaluate)
@@ -1570,26 +1585,36 @@ R packages that praise their users.")
 (define-public r-testthat
   (package
     (name "r-testthat")
-    (version "2.3.2")
+    (version "3.0.1")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "testthat" version))
               (sha256
                (base32
-                "0v70v2fs0f2ir962z9csbjlj8snrq9mbjfyhhb9dhz3zy26qs9hs"))))
+                "1l1s4jgmgbsf711ma5i58ssgkz98an7hijcxvwfz314nf5fc8zr9"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-cli" ,r-cli)
+     `(("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)))
+    (native-inputs
+     `(("r-knitr" ,r-knitr)))
     (home-page "https://github.com/hadley/testthat")
     (synopsis "Unit testing for R")
     (description
@@ -1600,13 +1625,13 @@ flexible and easy to set up.")
 (define-public r-r6
   (package
     (name "r-r6")
-    (version "2.4.1")
+    (version "2.5.0")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "R6" version))
               (sha256
                (base32
-                "0gma5z41mx02ka9h96xdyf3p6i1rx0izczrzj26c4mbnh9jgvc16"))))
+                "00ifi2kwa7kn67xf0z1w6jfdicjczygbyi5mhfw2qlzc4sbazhdf"))))
     (build-system r-build-system)
     (home-page "https://github.com/wch/R6/")
     (synopsis "Classes with reference semantics in R")
@@ -1622,13 +1647,13 @@ defined in different packages.")
 (define-public r-rlang
   (package
     (name "r-rlang")
-    (version "0.4.7")
+    (version "0.4.10")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "rlang" version))
               (sha256
                (base32
-                "0f4rhnhyhgrv874l0yzm80ij6vcqdykfd7bzmnqs0wbgyhkxk8vq"))))
+                "0ximv89f6zymnwms121k1jfvvflrdm3pmmf5xyvz56f1qiq04lq7"))))
     (build-system r-build-system)
     (home-page "http://rlang.tidyverse.org")
     (synopsis "Functions for base types, core R and Tidyverse features")
@@ -1640,14 +1665,14 @@ like tidy evaluation.")
 (define-public r-tibble
   (package
     (name "r-tibble")
-    (version "3.0.3")
+    (version "3.0.5")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "tibble" version))
        (sha256
         (base32
-         "0f4yi87w6509lnaz1lhk9s8nm3bzx21ij3273s0zx7vpbp0qlxxz"))))
+         "142i34h53b8w8jkh3l8y3xsqfvvgp7ybfbv830bjky7cymxjvj8w"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-cli" ,r-cli)
@@ -1672,13 +1697,13 @@ and printing capabilities than traditional data frames.")
 (define-public r-dplyr
   (package
     (name "r-dplyr")
-    (version "1.0.1")
+    (version "1.0.3")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "dplyr" version))
               (sha256
                (base32
-                "0ghdz1nfbq8yf70gr5yng8pnwbhqr0r3mh1rjw03kp12q6nmgxsm"))))
+                "0hc4wnx70mrsb3s0k5ywffhnky3hznlrvvs22m6ls5crgvcak898"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-ellipsis" ,r-ellipsis)
@@ -1708,14 +1733,14 @@ database.")
 (define-public r-dbplyr
   (package
     (name "r-dbplyr")
-    (version "1.4.4")
+    (version "2.0.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "dbplyr" version))
        (sha256
         (base32
-         "1v0p0557n6bz84nq9jc4182k00mdd1hvz7h4w3bbg81z0fmpj0d8"))))
+         "0sa0ggirvfn8j9y4cvhj04z93h6979jm4knjzahdvyzyxhv1kmzc"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-assertthat" ,r-assertthat)
@@ -1729,7 +1754,8 @@ database.")
        ("r-r6" ,r-r6)
        ("r-rlang" ,r-rlang)
        ("r-tibble" ,r-tibble)
-       ("r-tidyselect" ,r-tidyselect)))
+       ("r-tidyselect" ,r-tidyselect)
+       ("r-withr" ,r-withr)))
     (native-inputs
      `(("r-knitr" ,r-knitr)))
     (home-page "https://github.com/tidyverse/dbplyr")
@@ -1765,14 +1791,14 @@ transformations.")
 (define-public r-formula
   (package
     (name "r-formula")
-    (version "1.2-3")
+    (version "1.2-4")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "Formula" version))
        (sha256
         (base32
-         "0wiqh8rr9d5ciy80wj8f5fnmiiw0ywanvvnhkwd622dx42dk848l"))))
+         "1bsw282i5m8rlirbhz7hqvf25zbxschk7yrp152whbzdnmry6w6b"))))
     (properties `((upstream-name . "Formula")))
     (build-system r-build-system)
     (home-page "https://cran.r-project.org/web/packages/Formula")
@@ -1808,13 +1834,13 @@ and density estimation.")
 (define-public r-chron
   (package
     (name "r-chron")
-    (version "2.3-55")
+    (version "2.3-56")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "chron" version))
               (sha256
                (base32
-                "09gbs7c1ynlg0kl1m6nkbn75ysk16g13r17snnaws64qwywiywqg"))))
+                "0p9zz96jfyf139924hdwkzhr8knkjvx6547ac53rknm3a6wwngl6"))))
     (build-system r-build-system)
     (home-page "https://cran.r-project.org/web/packages/chron")
     (synopsis "Chronological R objects which can handle dates and times")
@@ -1826,13 +1852,13 @@ times.")
 (define-public r-data-table
   (package
     (name "r-data-table")
-    (version "1.13.0")
+    (version "1.13.6")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "data.table" version))
               (sha256
                (base32
-                "0wihpg1syjxzsij2fmhwh30vvf2cghw2b2qi79w36qwil2s8w2gn"))))
+                "16ryrpzl86krww5nx7a97i09y5xqld4lw4d9pa1vzjl99x6ds36m"))))
     (build-system r-build-system)
     (inputs
      `(("zlib" ,zlib)))
@@ -1965,13 +1991,13 @@ inference for statistical models.")
 (define-public r-coda
   (package
     (name "r-coda")
-    (version "0.19-3")
+    (version "0.19-4")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "coda" version))
               (sha256
                (base32
-                "1mn50bshky968gn4nf6vnkaa768fnvm1xmhkms7szwdw9341zpyk"))))
+                "13z5dwfpnyyhpsbpg4xr9g5c1685jhqj90f4x4qkcykr6kykqba2"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-lattice" ,r-lattice)))
@@ -1986,18 +2012,19 @@ chain.")
 (define-public r-ade4
   (package
     (name "r-ade4")
-    (version "1.7-15")
+    (version "1.7-16")
     (source
       (origin
         (method url-fetch)
         (uri (cran-uri "ade4" version))
         (sha256
           (base32
-            "1xpxznlqm8wb4d5z2dcrl0wi3jjciq2hr5rcx2b5aaipiiyzm1ij"))))
+            "142m70im8yd4q01q7z02y3ia0f66yh4ikdznv0ps6c7yyigs5mwv"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-mass" ,r-mass)
        ("r-pixmap" ,r-pixmap)
+       ("r-progress" ,r-progress)
        ("r-sp" ,r-sp)))
     (home-page "http://pbil.univ-lyon1.fr/ADE-4")
     (synopsis "Multivariate data analysis and graphical display")
@@ -2034,14 +2061,14 @@ files in R.  It is built on top of the libxml2 C library.")
 (define-public r-multitaper
   (package
     (name "r-multitaper")
-    (version "1.0-14")
+    (version "1.0-15")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "multitaper" version))
        (sha256
         (base32
-         "04wd9bbhyx7697pfy0fpj02v1csr48hkpqj62h9p8a6w84ji4k68"))))
+         "1gm3wr8xqpqiby7q1dr3zxim77v0bvvrqi0hlazf5g3gnkrp2zc3"))))
     (build-system r-build-system)
     (native-inputs
      `(("gfortran" ,gfortran)))
@@ -2100,14 +2127,14 @@ limited to R.")
 (define-public r-backports
   (package
     (name "r-backports")
-    (version "1.1.8")
+    (version "1.2.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "backports" version))
        (sha256
         (base32
-         "1irc9c23hwliwkky1b3hi0dkzwalhb7zgjj08562ff1k8dqv4qf6"))))
+         "1mf2nz78l97lbxyagv55bcxrny51ds8g28h307cfa1g3ayylp0x2"))))
     (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")
@@ -2322,14 +2349,14 @@ collation, and NAMESPACE files.")
 (define-public r-openssl
   (package
     (name "r-openssl")
-    (version "1.4.2")
+    (version "1.4.3")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "openssl" version))
        (sha256
         (base32
-         "17fkc6pr8w5z3rpadg692a689p1v4j7xl5ak0y64is7c74cxgljx"))))
+         "0sc2skh1nz7jj65p0pq4a6bl8jza6lyi4zvmvwndzxfgivgh281l"))))
     (build-system r-build-system)
     (inputs
      `(("libressl" ,libressl)))
@@ -2384,13 +2411,13 @@ functions make it easy to control additional request components.")
 (define-public r-git2r
   (package
     (name "r-git2r")
-    (version "0.27.1")
+    (version "0.28.0")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "git2r" version))
               (sha256
                (base32
-                "1h1vfzym6hi1fqs9p5z5v0f4xldggr425frw8k6dsidah3qhg4h9"))))
+                "1wjmbs9cmm16pm3g0rmqp7cxxyh95m5lgx4fx5bpgj6j466i8vff"))))
     (build-system r-build-system)
     (inputs
      `(("libgit2" ,libgit2)
@@ -2408,14 +2435,16 @@ pure C implementation of the Git core methods.")
 (define-public r-rstudioapi
   (package
     (name "r-rstudioapi")
-    (version "0.11")
+    (version "0.13")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "rstudioapi" version))
               (sha256
                (base32
-                "0srh0m4mw4k6s7spwb84l4cx4xnn04cp5cjxi0fwza7bwavpzq0k"))))
+                "12vdfzzjc6mv4h105l8cp108j3hjk0mqmg23m6mqr3jarfymphxa"))))
     (build-system r-build-system)
+    (native-inputs
+     `(("r-knitr" ,r-knitr)))
     (home-page "https://cran.r-project.org/web/packages/rstudioapi")
     (synopsis "Safely access the RStudio API")
     (description
@@ -2426,13 +2455,13 @@ informative error messages when it's not available.")
 (define-public r-devtools
   (package
     (name "r-devtools")
-    (version "2.3.1")
+    (version "2.3.2")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "devtools" version))
               (sha256
                (base32
-                "100mgighf6vqsfwv2qw5rlnd5sfvcji9l9jrmx9ii28r9fd2gyas"))))
+                "0vcqs4c5dfjs2ddkclv3z7zzix2zrnrxvzax8hjvjszgp8362275"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-callr" ,r-callr)
@@ -2467,13 +2496,13 @@ tools to simplify the devolpment of R packages.")
 (define-public r-withr
   (package
     (name "r-withr")
-    (version "2.2.0")
+    (version "2.4.0")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "withr" version))
               (sha256
                (base32
-                "10mmfffjbnb2zq5x0kqhhb4z6va4micc6pjzvlfji34gyhffa8ac"))))
+                "1y0l6zbpg0wix60r58yk452aqvx4rd0bk7zw9b90lzniwk3wvr7d"))))
     (build-system r-build-system)
     (native-inputs
      `(("r-knitr" ,r-knitr)))
@@ -2488,18 +2517,20 @@ were originally a part of the r-devtools package.")
 (define-public r-hms
   (package
     (name "r-hms")
-    (version "0.5.3")
+    (version "1.0.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "hms" version))
        (sha256
         (base32
-         "1baki0qw5ijgiflvsdvqj3apg4yanf12vx14kwbqdzk5rz46fasf"))))
+         "0qn9lvpkqrpxck88nf0zbff43vd7d6s1ibg58qfr3w14sw1yj14p"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-rlang" ,r-rlang)
+     `(("r-ellipsis" ,r-ellipsis)
+       ("r-lifecycle" ,r-lifecycle)
        ("r-pkgconfig" ,r-pkgconfig)
+       ("r-rlang" ,r-rlang)
        ("r-vctrs" ,r-vctrs)))
     (home-page "https://github.com/rstats-db/hms")
     (synopsis "Pretty time of day")
@@ -2511,22 +2542,27 @@ time-of-day values, based on the @code{difftime} class.")
 (define-public r-readr
   (package
     (name "r-readr")
-    (version "1.3.1")
+    (version "1.4.0")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "readr" version))
               (sha256
                (base32
-                "1wz496rw0ah433p755n3xac8gh7yzid4xgdjzd1a7wmpkgilvy9k"))))
+                "1fa67h4l9d30ig460xizgzl115i9pm3bk9dvsbrw6awbmf51ic82"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-clipr" ,r-clipr)
+     `(("r-cli" ,r-cli)
+       ("r-clipr" ,r-clipr)
+       ("r-cpp11" ,r-cpp11)
        ("r-crayon" ,r-crayon)
-       ("r-rcpp" ,r-rcpp)
        ("r-hms" ,r-hms)
+       ("r-lifecycle" ,r-lifecycle)
        ("r-tibble" ,r-tibble)
        ("r-r6" ,r-r6)
+       ("r-rlang" ,r-rlang)
        ("r-bh" ,r-bh)))
+    (native-inputs
+     `(("r-knitr" ,r-knitr)))
     (home-page "https://github.com/hadley/readr")
     (synopsis "Read tabular data")
     (description
@@ -2598,13 +2634,13 @@ well as additional utilities such as panel and axis annotation functions.")
 (define-public r-rcpparmadillo
   (package
     (name "r-rcpparmadillo")
-    (version "0.9.900.2.0")
+    (version "0.10.1.2.2")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "RcppArmadillo" version))
               (sha256
                (base32
-                "03dfy0avzpiaf1jk8h18y2gyj3zwlfvvfixi13q3zq5qaz93by2r"))))
+                "0sfhk4mh39ab1y7pmlnijg4w65yz7pfsyjlqy931zdpjzh1kfciq"))))
     (properties `((upstream-name . "RcppArmadillo")))
     (build-system r-build-system)
     (propagated-inputs
@@ -2644,13 +2680,13 @@ vectors.")
 (define-public r-catools
   (package
     (name "r-catools")
-    (version "1.18.0")
+    (version "1.18.1")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "caTools" version))
               (sha256
                (base32
-                "0y1kgyiy322yhb0phzwvf2zgjz9awp13lhzhk9v1ddg88656jhq3"))))
+                "1yf98x2gaf84y9m32xrg84g384zlfwsdw7wvywdljpgdpvzs9szz"))))
     (properties `((upstream-name . "caTools")))
     (build-system r-build-system)
     (propagated-inputs
@@ -2667,17 +2703,17 @@ encoder/decoder, round-off-error-free sum and cumsum, etc.")
 (define-public r-rprojroot
   (package
     (name "r-rprojroot")
-    (version "1.3-2")
+    (version "2.0.2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "rprojroot" version))
        (sha256
         (base32
-         "12r3fdxmi2pmwn6ic3rhg0b20ll5z420m0d8fziv1n21961namnz"))))
+         "07wy07yhms8zln9qb0iwx69dq08h4lrdi8kavjcplfxcskq638az"))))
     (build-system r-build-system)
-    (propagated-inputs
-     `(("r-backports" ,r-backports)))
+    (native-inputs
+     `(("r-knitr" ,r-knitr)))
     (home-page "https://github.com/krlmlr/rprojroot")
     (synopsis "Finding files in project subdirectories")
     (description
@@ -2690,27 +2726,26 @@ certain criterion, e.g., it contains a certain regular file.")
 (define-public r-rmarkdown
   (package
     (name "r-rmarkdown")
-    (version "2.3")
+    (version "2.6")
     (source
       (origin
         (method url-fetch)
         (uri (cran-uri "rmarkdown" version))
         (sha256
-          (base32 "0vdjq4kcyxkr2m27588kk6yi5g53symjshj4jz4n0j18wz53shji"))))
+          (base32 "1c7nrpnv2v43msv7nia90rjh6s5x9m5wlb3mpiwy04fyfb29krz6"))))
     (properties `((upstream-name . "rmarkdown")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-base64enc" ,r-base64enc)
-       ("r-evaluate" ,r-evaluate)
+     `(("r-evaluate" ,r-evaluate)
        ("r-htmltools" ,r-htmltools)
        ("r-jsonlite" ,r-jsonlite)
        ("r-knitr" ,r-knitr)
-       ("r-mime" ,r-mime)
        ("r-stringr" ,r-stringr)
        ("r-tinytex" ,r-tinytex)
        ("r-xfun" ,r-xfun)
        ("r-yaml" ,r-yaml)
-       ("ghc-pandoc" ,ghc-pandoc)))
+       ("pandoc" ,pandoc)
+       ("pandoc-citeproc" ,pandoc-citeproc)))
     (native-inputs
      `(("r-knitr" ,r-knitr)))
     (home-page "https://rmarkdown.rstudio.com")
@@ -2806,13 +2841,13 @@ a column in data frame.")
 (define-public r-rsqlite
   (package
     (name "r-rsqlite")
-    (version "2.2.0")
+    (version "2.2.2")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "RSQLite" version))
               (sha256
                (base32
-                "1m38sj8rwbf3p2lhqabcp7c7djk7s9ng37cz39yxk706v9pi4380"))))
+                "0wx8awxfd4q4mb5dk261rf7zd7y2lcm121fplay0vxl697yym719"))))
     (properties `((upstream-name . "RSQLite")))
     (build-system r-build-system)
     (propagated-inputs
@@ -2824,6 +2859,8 @@ a column in data frame.")
        ("r-bit64" ,r-bit64)
        ("r-blob" ,r-blob)
        ("r-pkgconfig" ,r-pkgconfig)))
+    (native-inputs
+     `(("r-knitr" ,r-knitr)))
     (home-page "https://github.com/rstats-db/RSQLite")
     (synopsis "SQLite interface for R")
     (description
@@ -3001,14 +3038,14 @@ statements.")
 (define-public r-segmented
   (package
     (name "r-segmented")
-    (version "1.2-0")
+    (version "1.3-1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "segmented" version))
        (sha256
         (base32
-         "0r83p36l6m5sy4lxfjbfajn4gcqb0wv9zh7arny02s6c7fb4756y"))))
+         "0g8l1i31zfqamvwc5j537k3ld6dr5z81p84grdlqq41gywmyidmr"))))
     (build-system r-build-system)
     (home-page "https://cran.r-project.org/web/packages/segmented")
     (synopsis "Regression models with breakpoints estimation")
@@ -3065,14 +3102,14 @@ standard R subsetting and Kronecker products.")
 (define-public r-iterators
   (package
     (name "r-iterators")
-    (version "1.0.12")
+    (version "1.0.13")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "iterators" version))
        (sha256
         (base32
-         "0jwzxaa3jm1xzgfv5pn0xqkk7rhm0xwvgn85w7xaw8xx1vb33gwn"))))
+         "190i1y2493v5c9z8978rb3idlwsjymy67k1assa9znljqbj313kp"))))
     (build-system r-build-system)
     (home-page "https://cran.r-project.org/web/packages/iterators")
     (synopsis "Iterator construct for R")
@@ -3085,14 +3122,14 @@ data.")
 (define-public r-foreach
   (package
     (name "r-foreach")
-    (version "1.5.0")
+    (version "1.5.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "foreach" version))
        (sha256
         (base32
-         "0584nv49x8d8m1cak5drb54sxs3y594gd521kjsdwk4c849sgy8s"))))
+         "1qb83b1jvpmk8d6kfibkm5q2hiki0x5gipy758mwa62n56gdcnpv"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-codetools" ,r-codetools)
@@ -3115,14 +3152,14 @@ parallel.")
 (define-public r-doparallel
   (package
     (name "r-doparallel")
-    (version "1.0.15")
+    (version "1.0.16")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "doParallel" version))
        (sha256
         (base32
-         "0vnqbha3gig3awbfvsfx3ni5jir398md1n7xmsb8jihnjsk7xbbi"))))
+         "1cjf0mxrxgls5pl7aj22fv9j488craib1wkc9np4f3gkckwjdfzi"))))
     (properties `((upstream-name . "doParallel")))
     (build-system r-build-system)
     (propagated-inputs
@@ -3138,14 +3175,14 @@ using the parallel package.")
 (define-public r-domc
   (package
     (name "r-domc")
-    (version "1.3.6")
+    (version "1.3.7")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "doMC" version))
        (sha256
         (base32
-         "1cn9gxavhvjswip8pwvkpi7q6wpzdllcsdjabga8akf55nggqxr9"))))
+         "0kdmfhp5m1wisjbfyl9d040jrmjmhcgjb0vdi536g2i9vixb5yny"))))
     (properties `((upstream-name . "doMC")))
     (build-system r-build-system)
     (propagated-inputs
@@ -3161,13 +3198,13 @@ using the multicore functionality of the parallel package.")
 (define-public r-dt
   (package
     (name "r-dt")
-    (version "0.15")
+    (version "0.17")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "DT" version))
               (sha256
                (base32
-                "1wc2aiqkn01i571h29847yaq7vb624bkf44axp4ygpn0r85hdq7k"))))
+                "0mpvyfmi2viyhdqx11hznd7dl0q6kxrdmppjsmm2pk0x8a904hz3"))))
     (properties
      `((upstream-name . "DT")))
     (build-system r-build-system)
@@ -3240,13 +3277,13 @@ analysis of large sparse or dense matrices.")
 (define-public r-glmnet
   (package
    (name "r-glmnet")
-   (version "4.0-2")
+   (version "4.1")
    (source
     (origin
      (method url-fetch)
      (uri (cran-uri "glmnet" version))
      (sha256
-      (base32 "0qdswxvdwjcnw0by15p9yfzw8laq4f2j0ivpma6q8c5zywldpxxc"))))
+      (base32 "1js01qnznm20h4pslaw1ragxhrzk0w4nw7r6ryg7i27l344za2lg"))))
    (build-system r-build-system)
    (native-inputs
     `(("gfortran" ,gfortran)
@@ -3269,23 +3306,20 @@ path-wise fashion.")
 (define-public r-pkgmaker
   (package
     (name "r-pkgmaker")
-    (version "0.31.1")
+    (version "0.32.2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "pkgmaker" version))
        (sha256
         (base32
-         "0r0ga20dy25v9y5gjbds4y6kaa5a7qknh503qdkzllcpzbibh0hp"))))
+         "14ggsd24n5g5rvn0wl4w90ipxzmywqikh28llj89q6kpxwnv4iff"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-assertthat" ,r-assertthat)
-       ("r-bibtex" ,r-bibtex)
        ("r-codetools" ,r-codetools)
        ("r-digest" ,r-digest)
-       ("r-magrittr" ,r-magrittr)
        ("r-registry" ,r-registry)
-       ("r-stringi" ,r-stringi)
        ("r-stringr" ,r-stringr)
        ("r-withr" ,r-withr)
        ("r-xtable" ,r-xtable)))
@@ -3367,14 +3401,14 @@ Stochastic Neighbor Embedding using a Barnes-Hut implementation.")
 (define-public r-e1071
   (package
     (name "r-e1071")
-    (version "1.7-3")
+    (version "1.7-4")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "e1071" version))
        (sha256
         (base32
-         "0pf2pjb590z0jikgv1037xcp7dq06mg3dzmyffjw6gk7dd9blbdv"))))
+         "02935xcscjhb0jmnvh44hxlpjcgladrcr0gpz1jxq07m0qdqgaz6"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-class" ,r-class)))
@@ -3458,13 +3492,13 @@ memory-mapped files.")
 (define-public r-r-methodss3
   (package
     (name "r-r-methodss3")
-    (version "1.8.0")
+    (version "1.8.1")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "R.methodsS3" version))
               (sha256
                (base32
-                "19c5870v7b59fs6xk58bh3rfkmhfralmgsax86zzpdmz47pga1g0"))))
+                "16v1br7lf7vxv40z65giv9jnqkpnyqagcmgqa0s1jy7spj0zp64a"))))
     (properties `((upstream-name . "R.methodsS3")))
     (build-system r-build-system)
     (home-page "https://cran.r-project.org/web/packages/R.methodsS3")
@@ -3482,13 +3516,13 @@ want to migrate to S4.")
 (define-public r-r-oo
   (package
     (name "r-r-oo")
-    (version "1.23.0")
+    (version "1.24.0")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "R.oo" version))
               (sha256
                (base32
-                "189fb7mmyzwg6nn8rza8iip7fbyws7i2vkmzy672x9mhvgilq4pm"))))
+                "1divisff26fmiqg6vmabnwlrx079c066r8qvkakfp336vnwdm89p"))))
     (properties `((upstream-name . "R.oo")))
     (build-system r-build-system)
     (propagated-inputs
@@ -3505,13 +3539,13 @@ maintenance for package developers.")
 (define-public r-r-utils
   (package
     (name "r-r-utils")
-    (version "2.9.2")
+    (version "2.10.1")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "R.utils" version))
               (sha256
                (base32
-                "1krj1ny7y43lpm2q8c7swxfdc3ngy2j8knzv71f8bfsgh673nsxc"))))
+                "1gssnk73nhisc20by9kvfl4byfsmwrk6597na0x40ycck58lyylm"))))
     (properties `((upstream-name . "R.utils")))
     (build-system r-build-system)
     (propagated-inputs
@@ -3604,13 +3638,13 @@ t-probabilities, quantiles, random deviates and densities.")
 (define-public r-matrixstats
   (package
     (name "r-matrixstats")
-    (version "0.56.0")
+    (version "0.57.0")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "matrixStats" version))
               (sha256
                (base32
-                "09qgfv9x32x6ncgf19iy7yjp26fwy6p5wm8spc2xzfc0qhylmqrr"))))
+                "0hzkx7yi9ira476izsgw7r2bhv72ra4z2m9zr1i1f4ivrn3ihs7r"))))
     (properties `((upstream-name . "matrixStats")))
     (build-system r-build-system)
     (native-inputs
@@ -3712,14 +3746,14 @@ selection.")
 (define-public r-tidyr
   (package
     (name "r-tidyr")
-    (version "1.1.1")
+    (version "1.1.2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "tidyr" version))
        (sha256
         (base32
-         "05bv4086axk21gsszx9rvzlz6jq4bcqm462nys8g91gqw003zljh"))))
+         "0v7x1pgmwmjypzdr4j2ig2klgrrgryi3qvw8hwqv65a5h9kwpz08"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-cpp11" ,r-cpp11)
@@ -3749,14 +3783,14 @@ and tidyr provides no margins or aggregation.")
 (define-public r-hexbin
   (package
     (name "r-hexbin")
-    (version "1.28.1")
+    (version "1.28.2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "hexbin" version))
        (sha256
         (base32
-         "1ry6jm3lqz3mj0s5rzbs6mpkz2hxpnvbw8c1vwc4pj7b173r5l22"))))
+         "0bbhs5pwxh474w62sq6gqvih7habancxng9wd4f2rgn6lv9zhhb2"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-lattice" ,r-lattice)))
@@ -3797,13 +3831,13 @@ features present in other programming languages.")
 (define-public r-plotly
   (package
     (name "r-plotly")
-    (version "4.9.2.1")
+    (version "4.9.3")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "plotly" version))
               (sha256
                (base32
-                "1f0x83a2s7200iqi6gpngijks06fcvcbm6701d5r5rxpb8rawppl"))))
+                "0801i2q7sw62x734d58h9p2fwpi1hirqj73gsg18pqkdv4b1lkfl"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-base64enc" ,r-base64enc)
@@ -3812,7 +3846,6 @@ features present in other programming languages.")
        ("r-data-table" ,r-data-table)
        ("r-dplyr" ,r-dplyr)
        ("r-ggplot2" ,r-ggplot2)
-       ("r-hexbin" ,r-hexbin)
        ("r-htmltools" ,r-htmltools)
        ("r-htmlwidgets" ,r-htmlwidgets)
        ("r-httr" ,r-httr)
@@ -3826,6 +3859,7 @@ features present in other programming languages.")
        ("r-scales" ,r-scales)
        ("r-tibble" ,r-tibble)
        ("r-tidyr" ,r-tidyr)
+       ("r-vctrs" ,r-vctrs)
        ("r-viridislite" ,r-viridislite)))
     (home-page "https://plot.ly/r")
     (synopsis "Create interactive web graphics")
@@ -4000,13 +4034,13 @@ package instead.")
 (define-public r-hmisc
   (package
     (name "r-hmisc")
-    (version "4.4-1")
+    (version "4.4-2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "Hmisc" version))
        (sha256
-        (base32 "0mm3r2kv0kgrhg7salk2hw0s37d4i2mghwk0l0qxaw2ny0w8w5z6"))))
+        (base32 "1j7vkckmahdh90ndcl646sjpxq82y4x55ngxqvkni22mv16wc2j9"))))
     (properties `((upstream-name . "Hmisc")))
     (build-system r-build-system)
     (native-inputs
@@ -4079,27 +4113,6 @@ framework, with additional code inspection and report generation tools.")
 hierarchical clustering dendrograms.")
     (license license:gpl2+)))
 
-(define-public r-preprocesscore
-  (package
-    (name "r-preprocesscore")
-    (version "1.50.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (bioconductor-uri "preprocessCore" version))
-       (sha256
-        (base32
-         "0q1406kswylc8zn5k3wyd34p34pfzbhi1ggkfsh30zcjp6adbwjl"))))
-    (properties
-     `((upstream-name . "preprocessCore")))
-    (build-system r-build-system)
-    (home-page "https://github.com/bmbolstad/preprocessCore")
-    (synopsis "Collection of pre-processing functions")
-    (description
-     "This package provides a library of core pre-processing and normalization
-routines.")
-    (license license:lgpl2.0+)))
-
 (define-public r-fastcluster
   (package
     (name "r-fastcluster")
@@ -4128,14 +4141,14 @@ existing packages provide.")
 (define-public r-sfsmisc
   (package
     (name "r-sfsmisc")
-    (version "1.1-7")
+    (version "1.1-8")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "sfsmisc" version))
        (sha256
         (base32
-         "12g6m8sf17q3qmm133nm4fa296w5n5d9ly3fvb2nvc0w4llkif3l"))))
+         "198zpkz1gvw954ym8669svrk81yb49j6fyk5i6a7dw07z3snlmdn"))))
     (build-system r-build-system)
     (home-page "https://cran.r-project.org/web/packages/sfsmisc")
     (synopsis "Utilities from \"Seminar fuer Statistik\" ETH Zurich")
@@ -4217,18 +4230,17 @@ including:
 (define-public r-gplots
   (package
     (name "r-gplots")
-    (version "3.0.4")
+    (version "3.1.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "gplots" version))
        (sha256
         (base32
-         "15ip3v4xiqzbanf8bc5fj90cbwdgixr72aj5jrp34jfdzdx0gxwg"))))
+         "0f8khaymz383w2ksnk80d4kpnvgmdk37pbycpsnl2vabaz11kbpr"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-catools" ,r-catools)
-       ("r-gdata" ,r-gdata)
        ("r-gtools" ,r-gtools)
        ("r-kernsmooth" ,r-kernsmooth)))
     (native-inputs
@@ -4291,22 +4303,24 @@ mechanism.")
 (define-public r-ztable
   (package
     (name "r-ztable")
-    (version "0.2.0")
+    (version "0.2.2")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "ztable" version))
               (sha256
                (base32
-                "0g7khk5ifsdh9p31wlwh2l5mn1hzxzpv6qcn1wh34vsfjdmijjwy"))))
+                "0wxcdb7yp2r6w5iznz1k49npp5sn4jiybfcj30s3198hkcnv0r8y"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-flextable" ,r-flextable)
        ("r-magrittr" ,r-magrittr)
-       ("r-moonbook" ,r-moonbook)
        ("r-officer" ,r-officer)
        ("r-rcolorbrewer" ,r-rcolorbrewer)
+       ("r-rstudioapi" ,r-rstudioapi)
        ("r-scales" ,r-scales)
        ("r-stringr" ,r-stringr)))
+    (native-inputs
+     `(("r-knitr" ,r-knitr)))
     (home-page "https://cran.r-project.org/web/packages/ztable")
     (synopsis "Zebra-striped tables in LaTeX and HTML formats for R")
     (description
@@ -4427,13 +4441,13 @@ Wall Street Journal, among others.  This package also provides
 (define-public r-statmod
   (package
     (name "r-statmod")
-    (version "1.4.34")
+    (version "1.4.35")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "statmod" version))
               (sha256
                (base32
-                "0yklg64aw5y8kfq5piafnrj1v3jv563iwzzl75g3kllrw23c508s"))))
+                "1zpqnfslq5gi6hvqjqnsn5kf2m986s1yb6kvyjd881n3h67l4pny"))))
     (build-system r-build-system)
     (home-page "https://cran.r-project.org/web/packages/statmod")
     (native-inputs
@@ -4522,20 +4536,22 @@ Farebrother's algorithm or Liu et al.'s algorithm.")
 (define-public r-cowplot
   (package
     (name "r-cowplot")
-    (version "1.0.0")
+    (version "1.1.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "cowplot" version))
        (sha256
         (base32
-         "19cqdhgfyr1wj0fz0c5ly8f0aiy9sfgzq6lzb78hkx0hdp2agybh"))))
+         "0j7d5vhzdxn1blrsfafx5z8lhq122rp8230hp9czrpsnnhjydp67"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-ggplot2" ,r-ggplot2)
        ("r-gtable" ,r-gtable)
        ("r-rlang" ,r-rlang)
        ("r-scales" ,r-scales)))
+    (native-inputs
+     `(("r-knitr" ,r-knitr)))
     (home-page "https://github.com/wilkelab/cowplot")
     (synopsis "Streamlined plot theme and plot annotations for ggplot2")
     (description
@@ -4680,14 +4696,14 @@ to change in the future.")
 (define-public r-flexmix
   (package
     (name "r-flexmix")
-    (version "2.3-15")
+    (version "2.3-17")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "flexmix" version))
        (sha256
         (base32
-         "0hrz2axp2c9548b1r0bmrl57219nn030qndb83a8garkzq5lqi5s"))))
+         "0jangf89174p0idh9afbicfiln2sz8jxc3bjc6n0j9036dw9n09n"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-lattice" ,r-lattice)
@@ -4706,14 +4722,14 @@ models, generalized linear models and model-based clustering.")
 (define-public r-mclust
   (package
     (name "r-mclust")
-    (version "5.4.6")
+    (version "5.4.7")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "mclust" version))
        (sha256
         (base32
-         "1z46qask09x3xpv0wzvhn09218vwyrip4f5jrhnx96khpwvczzyl"))))
+         "08scl72llpinfijiyx14yqvmx8lma9jvh8h92v9ynnzfr9kadxa5"))))
     (build-system r-build-system)
     (native-inputs
      `(("gfortran" ,gfortran)
@@ -4777,14 +4793,14 @@ can be efficiently implemented directly in the R language.")
 (define-public r-robustbase
   (package
     (name "r-robustbase")
-    (version "0.93-6")
+    (version "0.93-7")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "robustbase" version))
        (sha256
         (base32
-         "1cr478xi4n9jwsdpbq182a7ig47rpb413q28dz6d1am08sk6657a"))))
+         "0mh9d114p3jdrjf8yn4dx5ff41niz5wn411y0ckjcpnazp8d44c9"))))
     (build-system r-build-system)
     (native-inputs
      `(("gfortran" ,gfortran)))
@@ -4925,14 +4941,14 @@ of the points.")
 (define-public r-fpc
   (package
     (name "r-fpc")
-    (version "2.2-7")
+    (version "2.2-9")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "fpc" version))
        (sha256
         (base32
-         "1xnp3j36hggfg675v39mnr6rgvp7i11pfng7nmyy3k2ldgklz0j9"))))
+         "0f7sfmpcycr9y7cy5gasyjm2ardxa62kglqms92mcr68jrp01c19"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-class" ,r-class)
@@ -4957,13 +4973,13 @@ groupings.")
 (define-public r-vgam
   (package
     (name "r-vgam")
-    (version "1.1-3")
+    (version "1.1-5")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "VGAM" version))
        (sha256
-        (base32 "1hwlrdx3nhdp83pvy1h23i16vbbhi4kizdhr58c8nvg7kqdzb7qc"))))
+        (base32 "1fx123h4x5awzshv0m4jqbbllrdjfpslb2i8gl9phm1y1wahn69h"))))
     (properties `((upstream-name . "VGAM")))
     (build-system r-build-system)
     (native-inputs
@@ -4981,14 +4997,14 @@ VGLMs can be loosely thought of as multivariate generalised linear models.")
 (define-public r-pbapply
   (package
     (name "r-pbapply")
-    (version "1.4-2")
+    (version "1.4-3")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "pbapply" version))
        (sha256
         (base32
-         "1xmk4p006v8gij26rs6kp5prjyf2n32nqjxiyp8a6kvgyc4z46dc"))))
+         "08gb6c8p1r9z8wrfidj2dfn6irm43k6f4448d1d6nxmy6msjirlg"))))
     (build-system r-build-system)
     (home-page "https://github.com/psolymos/pbapply")
     (synopsis "Adding progress bar to apply functions")
@@ -5024,14 +5040,14 @@ based on an interface to Fortran implementations by M. J. D. Powell.")
 (define-public r-rcppeigen
   (package
     (name "r-rcppeigen")
-    (version "0.3.3.7.0")
+    (version "0.3.3.9.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "RcppEigen" version))
        (sha256
         (base32
-         "1b78qcjim0n9klgkr82n794d6bj9r9f33g0kcsszsns2hir65sk2"))))
+         "0qp9gypar280lm84pc8w0fxw4jgwqygwi3qnl5sl52kpkcj8c14a"))))
     (properties `((upstream-name . "RcppEigen")))
     (build-system r-build-system)
     (propagated-inputs
@@ -5094,13 +5110,13 @@ using modular prediction and response module classes.")
 (define-public r-quantreg
   (package
     (name "r-quantreg")
-    (version "5.61")
+    (version "5.82")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "quantreg" version))
        (sha256
-        (base32 "0kby1crnzkdg5sczwqapfpkr58apyzrrx85khigcqggmhhwl44wk"))))
+        (base32 "01wcai04asr0wcfm001whihwbbx3b3r1m65ngknj82nh6hg4xhza"))))
     (build-system r-build-system)
     (native-inputs
      `(("gfortran" ,gfortran)))
@@ -5150,14 +5166,14 @@ algorithms.")
 (define-public r-lme4
   (package
     (name "r-lme4")
-    (version "1.1-23")
+    (version "1.1-26")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "lme4" version))
        (sha256
         (base32
-         "0qh29kqli0l3naylgb6jha6jllx4nwryr3hv9yk37blgyyql5mcr"))))
+         "0ls2krph4pfjn45vf9fn3ln3x98s85wxrkvm5pnxyx55n1pnsjrn"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-boot" ,r-boot)
@@ -5184,20 +5200,25 @@ C++ library for numerical linear algebra and RcppEigen glue.")
 (define-public r-pbkrtest
   (package
     (name "r-pbkrtest")
-    (version "0.4-8.6")
+    (version "0.5-0.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "pbkrtest" version))
        (sha256
         (base32
-         "0s5xhhrhv5i9680lw6af9lj2x4jc3fygmzzk0jjpxnb8g4b3p1jz"))))
+         "0sgl8r74cknmp8lnq5jvc1w181274ylgk6w4pxf4mzkfii42argm"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-lme4" ,r-lme4)
+     `(("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-matrix" ,r-matrix)
+       ("r-numderiv" ,r-numderiv)))
+    (native-inputs
+     `(("r-knitr" ,r-knitr)))
     (home-page "http://people.math.aau.dk/~sorenh/software/pbkrtest/")
     (synopsis "Methods for linear mixed model comparison")
     (description
@@ -5228,13 +5249,13 @@ Companion to Applied Regression, Third Edition, Sage.")
 (define-public r-car
   (package
     (name "r-car")
-    (version "3.0-9")
+    (version "3.0-10")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "car" version))
        (sha256
-        (base32 "1clh8c7mj87i4hz27l16w76dpw7k4mlnjbgm9mbrhrfkv0lpb63c"))))
+        (base32 "1w95b7xm0bna3qm637pwyv4s7294ffz9dl153naprd79zv91dqqw"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-abind" ,r-abind)
@@ -5310,14 +5331,14 @@ normals.")
 (define-public r-mnormt
   (package
     (name "r-mnormt")
-    (version "2.0.1")
+    (version "2.0.2")
     (source
      (origin
        (method url-fetch)
         (uri (cran-uri "mnormt" version))
         (sha256
           (base32
-           "00nn0b6nksn2jbpg0np5wphryp4f9v95vqxf5v628yysnawgkcwq"))))
+           "0d7ka4l4fl1wi77r2r81dc91n6cbj2xrb3lsizz5y0ziscva0sjw"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-tmvnsim" ,r-tmvnsim)))
@@ -5381,14 +5402,14 @@ multivariate case.")
 (define-public r-tclust
   (package
     (name "r-tclust")
-    (version "1.4-1")
+    (version "1.4-2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "tclust" version))
        (sha256
         (base32
-         "17md6l9v9dl9b72l84df01b52h2xiynbcjm437mv9mzcr09fc2sb"))))
+         "1nb5iky4kc832627jf28lzj19wrvgwg5da6fyl3kyf0npmyx1p4m"))))
     (build-system r-build-system)
     ;; These are all suggested packages, not build dependencies.
     (propagated-inputs
@@ -5486,14 +5507,14 @@ is supported.")
 (define-public r-lubridate
   (package
     (name "r-lubridate")
-    (version "1.7.9")
+    (version "1.7.9.2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "lubridate" version))
        (sha256
         (base32
-         "0wnjzvfkrgp2hkr8g5r5vcgcxmsq8bhdmkzkk0m93wr3fgh5xyfb"))))
+         "0yfvlgksasmia7rsp83lsipjpgvlly5qkldcfxj68lfaz9l2sspf"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-generics" ,r-generics)
@@ -5514,14 +5535,14 @@ easy and fun.")
 (define-public r-fdrtool
   (package
     (name "r-fdrtool")
-    (version "1.2.15")
+    (version "1.2.16")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "fdrtool" version))
        (sha256
         (base32
-         "1h46frlk7d9f4qx0bg6p55nrm9wwwz2sv6d1nz7061wdfsm69yb5"))))
+         "1aap4k1l3a9m43374xq688mqnzkgqx8l021li262r3h1xr4adpp7"))))
     (build-system r-build-system)
     (home-page "http://strimmerlab.org/software/fdrtool/")
     (synopsis "Estimation of false discovery rates and higher criticism")
@@ -5683,76 +5704,87 @@ to any arbitrary string.  In this case, it is up to you to set valid values.")
     (license license:gpl3+)))
 
 (define-public python-rpy2
-  ;; We need to take this changeset instead of the RELEASE_3_0_4 tag, because
-  ;; it fixes a regression when using ggplot 3.2.0.
-  (let ((changeset "19868a8")
-        (revision "1"))
-    (package
-      (name "python-rpy2")
-      (version (git-version "3.0.4" revision changeset))
-      (source
-       (origin
-         (method hg-fetch)
-         (uri (hg-reference
-               (url "https://bitbucket.org/rpy2/rpy2")
-               (changeset changeset)))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32
-           "1bb0wslcbj3wjvyk3jb9yyzdi6adfqh5vfgcvn22dyzxzbhcs8kk"))))
-      (build-system python-build-system)
-      (arguments
-       '(#:modules ((ice-9 ftw)
-                    (srfi srfi-1)
-                    (srfi srfi-26)
-                    (guix build utils)
-                    (guix build python-build-system))
-         #:phases
-         (modify-phases %standard-phases
-           (replace 'check
-             (lambda* (#:key outputs inputs #:allow-other-keys)
-               (let ((cwd (getcwd)))
-                 (setenv "TZ" "UTC")
-                 (setenv "PYTHONPATH"
-                         (string-append cwd "/build/"
-                                        (find (cut string-prefix? "lib" <>)
-                                              (scandir (string-append cwd "/build")))
-                                        ":"
-                                        (getenv "PYTHONPATH"))))
-               (invoke "pytest" "-v" "rpy/tests/"))))))
-      (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)))
-      (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)))
-      (native-inputs
-       `(("zlib" ,zlib)
-         ("python-pytest" ,python-pytest)))
-      (home-page "https://rpy2.bitbucket.io/")
-      (synopsis "Python interface to the R language")
-      (description "rpy2 is a redesign and rewrite of rpy.  It is providing a
+  (package
+    (name "python-rpy2")
+    (version "3.3.5")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "rpy2" version))
+        (sha256
+         (base32
+          "1bs36rds5fq8821l5q85q2b25161rs9ppw5c26x0hjwj487gpcfj"))
+        ;; These patches should be removed with the next release.
+        (patches
+          (list
+            (origin
+              (method url-fetch)
+              (uri "https://github.com/rpy2/rpy2/commit/04c57598f00145d868ea8da31ac1b1e7c49f7570.patch")
+              (file-name "python-rpy2-fix-test-failure.patch")
+              (sha256
+               (base32
+                "1lqd3yxjfx1rxrybcmnapy0r6ambg9myrb98q4nlfhpxanwfdbbh")))
+            (origin
+              (method url-fetch)
+              (uri "https://github.com/rpy2/rpy2/commit/685f67d0a6b47ea80e718116a10755019446aef7.patch")
+              (file-name "python-rpy2-r-console-test-fix.patch")
+              (sha256
+               (base32
+                "18wpvfaa4c13d44cb4sw88c3c7403xdy5m8h82wfq8fjmcq3cmzn")))))))
+    (build-system python-build-system)
+    (arguments
+     '(#:modules ((ice-9 ftw)
+                  (srfi srfi-1)
+                  (srfi srfi-26)
+                  (guix build utils)
+                  (guix build python-build-system))
+       #:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key outputs inputs #:allow-other-keys)
+             (let ((cwd (getcwd)))
+               (setenv "TZ" "UTC")
+               (setenv "PYTHONPATH"
+                       (string-append cwd "/build/"
+                                      (find (cut string-prefix? "lib" <>)
+                                            (scandir (string-append cwd "/build")))
+                                      ":"
+                                      (getenv "PYTHONPATH"))))
+             ;; test_vector_complex has issues when run in our environment.
+             (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)))
+    (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)))
+    (native-inputs
+     `(("zlib" ,zlib)
+       ("python-pytest" ,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
 low-level interface to R from Python, a proposed high-level interface,
 including wrappers to graphical libraries, as well as R-like structures and
 functions.")
-      ;; Any of these licenses can be picked for the R interface.  The whole
-      ;; project is released under GPLv2+ according to the license declaration
-      ;; in "setup.py".
-      (license (list license:mpl2.0 license:gpl2+ license:lgpl2.1+)))))
+    ;; Any of these licenses can be picked for the R interface.  The whole
+    ;; project is released under GPLv2+ according to the license declaration
+    ;; in "setup.py".
+    (license (list license:mpl2.0 license:gpl2+ license:lgpl2.1+))))
 
 (define-public java-jdistlib
   (package
@@ -5792,78 +5824,81 @@ Java package that provides routines for various statistical distributions.")
     (license license:gpl2+)))
 
 (define-public emacs-ess
-  (package
-    (name "emacs-ess")
-    (version "18.10.2")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://github.com/emacs-ess/ESS")
-                    (commit (string-append "v" version))))
-              (sha256
-               (base32
-                "1yq41l2bicwjrc0b731iic20cpcnz6ppigri1jn621qv2qv22vy3"))
-              (file-name (git-file-name name version))
-              (modules '((guix build utils)))
-              (snippet
-               '(begin
-                  ;; Stop ESS from trying to bundle an external julia-mode.el.
-                  (substitute* "lisp/Makefile"
-                    (("^ess-julia.elc: julia-mode.elc") "")
-                    (("^all: julia-mode.el")
-                     "all:"))
-                  ;; Include *.el files in install target.
-                  (substitute* "lisp/Makefile"
-                    (("\t\\$\\(INSTALL) \\$\\(ELC\\) \\$\\(LISPDIR\\)" elc)
-                     (string-append "\t$(INSTALL) $(ELS) ess-autoloads.el "
-                                    "$(LISPDIR)\n" elc)))
-                  ;; Only build docs in info format.
-                  (substitute* "doc/Makefile"
-                    (("all  : info text")
-                     "all  : info")
-                    (("install: install-info install-other-docs")
-                     "install: install-info"))
-                  ;; Stop install-info from trying to update the info directory.
-                  (substitute* "doc/Makefile"
-                    ((".*\\$\\(INFODIR\\)/dir.*") ""))
-                  ;; Fix roxygen preview test.
-                  (substitute* "test/ess-r-tests.el"
-                               (("Add together two numbers.\n")
-                                "Add together two numbers. ")
-                               (("##' add\\(10, 1\\)") "add(10, 1)"))
-                  #t))))
-    (build-system gnu-build-system)
-    (arguments
-     (let ((base-directory "/share/emacs/site-lisp"))
-       `(#:make-flags (list (string-append "PREFIX=" %output)
-                            (string-append "ETCDIR=" %output
-                                           ,base-directory "/etc")
-                            (string-append "LISPDIR=" %output
-                                           ,base-directory))
-         #:phases
-         (modify-phases %standard-phases
-           (delete 'configure)
-           (add-before 'build 'more-shebang-patching
-             (lambda* (#:key inputs #:allow-other-keys)
-               (substitute* "Makeconf"
-                 (("SHELL = /bin/sh")
-                  (string-append "SHELL = " (which "sh"))))
-               #t))
-           (replace 'check
-             (lambda _
-               (invoke "make" "test")))))))
-    (inputs
-     `(("emacs" ,emacs-minimal)
-       ("r-minimal" ,r-minimal)))
-    (native-inputs
-     `(("perl" ,perl)
-       ("r-roxygen2" ,r-roxygen2)
-       ("texinfo" ,texinfo)))
-    (propagated-inputs
-     `(("emacs-julia-mode" ,emacs-julia-mode)))
-    (home-page "https://ess.r-project.org/")
-    (synopsis "Emacs mode for statistical analysis programs")
-    (description "Emacs Speaks Statistics (ESS) is an add-on package for GNU
-Emacs.  It is designed to support editing of scripts and interaction with
-various statistical analysis programs such as R, Julia, and JAGS.")
-    (license license:gpl2+)))
+  ;; Latest release is old.  This is not the latest commit either due to bug
+  ;; reported here: <https://github.com/emacs-ess/ESS/issues/987>.
+  (let ((commit "24da603184ce39246611dd5b8602e769d7ebd5bf")
+        (version "18.10.2")
+        (revision "0"))
+    (package
+      (name "emacs-ess")
+      (version (git-version version revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/emacs-ess/ESS")
+               (commit commit)))
+         (sha256
+          (base32 "0j98lv07nzwzd54d4dgcfz01wy5gj48m0mnirxzh5r45ik2myh1r"))
+         (file-name (git-file-name name version))
+         (modules '((guix build utils)))
+         (snippet
+          '(begin
+             ;; Stop ESS from trying to bundle an external julia-mode.el.
+             (substitute* "lisp/Makefile"
+               ((" \\$\\(JULIAS)") "")
+               (("\ttest.*julia-mode.*\\.el") ""))
+             ;; Only build docs in info format.
+             (substitute* "doc/Makefile"
+               (("all  : info text")
+                "all  : info")
+               (("install: install-info install-other-docs")
+                "install: install-info"))
+             ;; Stop install-info from trying to update the info directory.
+             (substitute* "doc/Makefile"
+               ((".*/dir.*") ""))
+             ;; Fix r-help-mode test.
+             (substitute* "test/ess-test-r.el"
+               (("\\(equal ess-help-object \"plot.default\")") "t"))
+             ;; Avoid generating ess-autoloads.el twice.
+             (substitute* "Makefile"
+               (("all: lisp doc etc autoloads")
+                "all: lisp doc etc"))
+             ;; Install to correct directories.
+             (substitute* "Makefile"
+               (("mkdir -p \\$\\(ESSDESTDIR)")
+                "$(MAKE) -C lisp install; $(MAKE) -C doc install")
+               (("\\$\\(INSTALL) -R \\./\\* \\$\\(ESSDESTDIR)/")
+                "$(MAKE) -C etc install"))
+             #t))))
+      (build-system gnu-build-system)
+      (arguments
+       (let ((base-directory "/share/emacs/site-lisp"))
+         `(#:make-flags (list (string-append "PREFIX=" %output)
+                              (string-append "ETCDIR=" %output
+                                             ,base-directory "/etc")
+                              (string-append "LISPDIR=" %output
+                                             ,base-directory)
+                              (string-append "INFODIR=" %output
+                                             "/share/info"))
+           #:phases
+           (modify-phases %standard-phases
+             (delete 'configure)
+             (replace 'check
+               (lambda _ (invoke "make" "test")))))))
+      (native-inputs
+       `(("perl" ,perl)
+         ("r-roxygen2" ,r-roxygen2)
+         ("texinfo" ,texinfo)))
+      (inputs
+       `(("emacs" ,emacs-minimal)
+         ("r-minimal" ,r-minimal)))
+      (propagated-inputs
+       `(("emacs-julia-mode" ,emacs-julia-mode)))
+      (home-page "https://ess.r-project.org/")
+      (synopsis "Emacs mode for statistical analysis programs")
+      (description
+       "Emacs Speaks Statistics (ESS) is an add-on package for GNU Emacs.  It
+is designed to support editing of scripts and interaction with various
+statistical analysis programs such as R, Julia, and JAGS.")
+      (license license:gpl3+))))
diff --git a/gnu/packages/stb.scm b/gnu/packages/stb.scm
index 9cb2ae10b6..094ece536d 100644
--- a/gnu/packages/stb.scm
+++ b/gnu/packages/stb.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -26,8 +27,8 @@
 (define stb
   ;; stb is a collection of libraries developed within the same repository.
   ;; When updating this, remember to change versions below as appropriate.
-  (let ((commit "2c2908f50515dcd939f24be261c3ccbcd277bb49")
-        (revision "1"))
+  (let ((commit "b42009b3b9d4ca35bc703f5310eedc74f584be58")
+        (revision "2"))
     (package
       (name "stb")
       (home-page "https://github.com/nothings/stb")
@@ -39,7 +40,7 @@
                       (commit commit)))
                 (sha256
                  (base32
-                  "1z753rscqc4clp0rd57bw68i60kz694y1z52bwv6slzmkgds1cki"))
+                  "1gmcjhmj62mfdscrsg2hv4j4j9v447y8zj3rbrm7mqn94cx73z1i"))
                 (file-name (git-file-name name version))))
       (build-system gnu-build-system)
       (arguments
@@ -92,23 +93,29 @@ the C programming language.")
 ;; converted to macros as outlined in <https://bugs.gnu.org/32155>.
 (define-public stb-image
   (make-stb-header-package
-   "stb-image" "2.22"
+   "stb-image" "2.26"
    "stb-image is a small and self-contained library for image loading or
 decoding from file or memory.  A variety of formats are supported."))
 
 (define-public stb-image-write
   (make-stb-header-package
-   "stb-image-write" "1.13"
+   "stb-image-write" "1.15"
    "stb-image-write is a small library for writing image files to the
 C@tie{}@code{stdio} interface."))
 
+(define-public stb-rect-pack
+  (make-stb-header-package
+   "stb-rect-pack" "1.00"
+   "stb-rect-pack is a small rectangle packing library useful for, e.g., packing
+rectangular textures into an atlas.  It does not do rotation."))
+
 (define-public stb-sprintf
   (make-stb-header-package
-   "stb-sprintf" "1.06"
+   "stb-sprintf" "1.09"
    "stb-sprintf implements fast @code{sprintf}, @code{snprintf} for C/C++."))
 
 (define-public stb-truetype
   (make-stb-header-package
-   "stb-truetype" "1.22"
+   "stb-truetype" "1.24"
    "stb-truetype is a library for parsing, decoding, and rasterizing
 characters from TrueType fonts."))
diff --git a/gnu/packages/storage.scm b/gnu/packages/storage.scm
index b7d4056635..d53327df75 100644
--- a/gnu/packages/storage.scm
+++ b/gnu/packages/storage.scm
@@ -55,14 +55,14 @@
 (define-public ceph
   (package
     (name "ceph")
-    (version "14.2.10")
+    (version "14.2.16")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://download.ceph.com/tarballs/ceph-"
                                   version ".tar.gz"))
               (sha256
                (base32
-                "0bbs3ag8zav283qpxrrndhvh2z01ykm6126fmwrbc1c5f9jfjq39"))
+                "0lmdri415hqczc9565s5m5568pnj97ipqxgnw6085kps0flwq5zh"))
               (patches
                (search-patches "ceph-disable-cpu-optimizations.patch"))
               (modules '((guix build utils)))
diff --git a/gnu/packages/suckless.scm b/gnu/packages/suckless.scm
index 51a82a58d9..7e297eb9ae 100644
--- a/gnu/packages/suckless.scm
+++ b/gnu/packages/suckless.scm
@@ -137,14 +137,14 @@ optimising the environment for the application in use and the task performed.")
 (define-public dmenu
   (package
     (name "dmenu")
-    (version "4.9")
+    (version "5.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://dl.suckless.org/tools/dmenu-"
                                   version ".tar.gz"))
               (sha256
                (base32
-                "0ia9nqr83bv6x247q30bal0v42chcj9qcjgv59xs6xj46m7iz5xk"))))
+                "1lvfxzg3chsgcqbc2vr0zic7vimijgmbvnspayx73kyvqi1f267y"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                      ; no tests
diff --git a/gnu/packages/sync.scm b/gnu/packages/sync.scm
index 9f1c5e349f..7e670a327f 100644
--- a/gnu/packages/sync.scm
+++ b/gnu/packages/sync.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2015, 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Ludovic Courtès <ludo@gnu.org>
@@ -108,7 +108,7 @@ distributions.")
 (define-public megatools
   (package
     (name "megatools")
-    (version "1.10.2")
+    (version "1.10.3")
     (source
      (origin
        (method url-fetch)
@@ -116,8 +116,17 @@ distributions.")
                            version ".tar.gz"))
        (sha256
         (base32
-         "12n32w5mqvpk0hvh9yg9qkj9i0g2wp7jp9rq28bnqs94iv3897hp"))))
+         "1nwbalc54iz6616liyxfalf5yafwx0iv6cmqgvg4kz9khqscmhcd"))))
     (build-system gnu-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'install-completions
+           (lambda* (#:key outputs #:allow-other-keys)
+             (install-file "contrib/bash-completion/megatools"
+                           (string-append (assoc-ref outputs "out")
+                                          "/etc/bash_completion.d"))
+             #t)))))
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ;; For documentation
@@ -360,14 +369,14 @@ over the Internet in an HTTP and CDN friendly way;
 (define-public rclone
   (package
     (name "rclone")
-    (version "1.52.2")
+    (version "1.52.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://github.com/rclone/rclone/releases/download/"
                            "v" version "/rclone-v" version ".tar.gz"))
        (sha256
-        (base32 "1y0ysdbqqb1dj8daziwwhz531c7kfr7f9fsvc7xyg4ysppz1qxfq"))))
+        (base32 "1pdhsxzc5ch2brfylghc602h9ba3x5dshxm3vcaldrgfac0rx0zl"))))
     ;; FIXME: Rclone bundles some libraries Guix already provides.  Need to
     ;; un-bundle them.
     (build-system go-build-system)
diff --git a/gnu/packages/syncthing.scm b/gnu/packages/syncthing.scm
index 857b8a8813..7e479a0d39 100644
--- a/gnu/packages/syncthing.scm
+++ b/gnu/packages/syncthing.scm
@@ -195,7 +195,7 @@ Protocol.")
     (source (origin
               (method git-fetch)
               (uri (git-reference
-                    (url "https://github.com/syncthing/syncthing-gtk.git")
+                    (url "https://github.com/syncthing/syncthing-gtk")
                     (commit (string-append "v" version))))
               (file-name (git-file-name name version))
               (sha256
@@ -228,6 +228,7 @@ Protocol.")
      `(("gtk+" ,gtk+)
        ("libappindicator" ,libappindicator)
        ("libnotify" ,libnotify)
+       ("librsvg" ,librsvg)
        ("python2-bcrypt" ,python2-bcrypt)
        ("python2-dateutil" ,python2-dateutil)
        ("python2-pycairo" ,python2-pycairo)
diff --git a/gnu/packages/syndication.scm b/gnu/packages/syndication.scm
index b8665fb9c3..54fa221fa6 100644
--- a/gnu/packages/syndication.scm
+++ b/gnu/packages/syndication.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2016, 2017, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2017, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
 ;;;
@@ -21,12 +21,15 @@
 (define-module (gnu packages syndication)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix download)
+  #:use-module (guix git-download)
   #:use-module (guix packages)
   #:use-module (guix build-system cargo)
   #:use-module (guix build-system glib-or-gtk)
   #: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 check)
   #:use-module (gnu packages crates-io)
   #:use-module (gnu packages curl)
@@ -53,7 +56,7 @@
 (define-public newsboat
   (package
     (name "newsboat")
-    (version "2.20.1")
+    (version "2.22.1")
     (source
      (origin
        (method url-fetch)
@@ -61,13 +64,7 @@
                            "/newsboat-" version ".tar.xz"))
        (sha256
         (base32
-         "0rimjikni96m52vhymgsg1b9g99af6ggyzd1lpvhgqsznxwj0y42"))
-       (modules '((guix build utils)))
-       (snippet
-        '(begin
-           (substitute* "rust/libnewsboat/Cargo.toml"
-             (("= 1.0.17") "1.0.17"))
-           #t))))
+         "1476fmfw2hkrjwyr3f7k9316lzwnn2b1dbc51rybcxipqlfg8849"))))
     (build-system cargo-build-system)
     (native-inputs
      `(("gettext" ,gettext-minimal)
@@ -77,7 +74,7 @@
        ("asciidoctor" ,ruby-asciidoctor)))
     (inputs
      `(("curl" ,curl)
-       ("json-c" ,json-c-0.13)
+       ("json-c" ,json-c)
        ("libxml2" ,libxml2)
        ("ncurses" ,ncurses)
        ("stfl" ,stfl)
@@ -93,20 +90,16 @@
         ("rust-chrono" ,rust-chrono-0.4)
         ("rust-clap" ,rust-clap-2)
         ("rust-curl-sys" ,rust-curl-sys-0.4)
-        ("rust-dirs" ,rust-dirs-2.0)
-        ("rust-gettext-rs" ,rust-gettext-rs-0.4)
-        ("rust-gettext-sys" ,rust-gettext-sys-0.19)
+        ("rust-cxx" ,rust-cxx-0.5)
+        ("rust-cxx-build" ,rust-cxx-build-0.5)
+        ("rust-gettext-rs" ,rust-gettext-rs-0.5)
         ("rust-libc" ,rust-libc-0.2)
-        ("rust-libz-sys" ,rust-libz-sys-1.0)
         ("rust-natord" ,rust-natord-1.0)
-        ("rust-nom" ,rust-nom-5)
-        ("rust-once-cell" ,rust-once-cell-1.2)
-        ("rust-percent-encoding" ,rust-percent-encoding-2.1)
-        ("rust-rand" ,rust-rand-0.6)
-        ("rust-smallvec" ,rust-smallvec-0.6)
-        ("rust-url" ,rust-url-2.1)
-        ("rust-unicode-width" ,rust-unicode-width-0.1)
-        ("rust-xdg" ,rust-xdg-2.2))
+        ("rust-nom" ,rust-nom-6)
+        ("rust-once-cell" ,rust-once-cell-1)
+        ("rust-rand" ,rust-rand-0.7)
+        ("rust-url" ,rust-url-2)
+        ("rust-unicode-width" ,rust-unicode-width-0.1))
        #:cargo-development-inputs
        (("rust-tempfile" ,rust-tempfile-3)
         ("rust-proptest" ,rust-proptest-0.9)
@@ -119,6 +112,11 @@
              (delete-file-recursively
                (string-append vendor-dir "/" ,name "-" ,version ".tar.xz"))
              #t))
+         (add-after 'unpack 'patch-source
+           (lambda _
+             (substitute* "Makefile"
+               (("Cargo.lock") ""))
+             #t))
          (replace 'build
            (lambda* args
              ((assoc-ref gnu:%standard-phases 'build)
@@ -169,6 +167,9 @@ file system, and many more features.")
                '("asciidoctor" "openssl"))
        ;; For building documentation.
        ("asciidoc" ,asciidoc)))
+    (inputs
+     `(("json-c" ,json-c-0.13)
+       ,@(alist-delete "json-c" (package-inputs newsboat))))
     (arguments
      '(#:phases
        (modify-phases %standard-phases
@@ -183,15 +184,16 @@ file system, and many more features.")
 (define-public liferea
   (package
     (name "liferea")
-    (version "1.12.8")
+    (version "1.13.4")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/lwindolf/liferea/"
-                           "releases/download/v" version "/liferea-"
-                           version ".tar.bz2"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/lwindolf/liferea/")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
-        (base32 "1xm5if831llkjcmbq4w9ssgqjgy3zlb5n9y7kh54xpy6afafbsh7"))))
+        (base32 "1g9463bvswsm899j6dfhslcg6np70m5wq143mjicr24zy8d17bm7"))))
     (build-system glib-or-gtk-build-system)
     (arguments
      `(#:phases
@@ -206,15 +208,19 @@ file system, and many more features.")
                    (gi-typelib-path   (getenv "GI_TYPELIB_PATH"))
                    (python-path       (getenv "PYTHONPATH")))
                (wrap-program (string-append out "/bin/liferea")
-                             `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
-                             `("PYTHONPATH" ":" prefix (,python-path))))
-            #t)))))
+                 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
+                 `("PYTHONPATH" ":" prefix (,python-path))))
+             #t)))))
     (native-inputs
-     `(("gettext" ,gettext-minimal)
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("gettext" ,gettext-minimal)
        ("glib:bin" ,glib "bin")
        ("gobject-introspection" ,gobject-introspection)
        ("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)))
+       ("libtool" ,libtool)
+       ("pkg-config" ,pkg-config)
+       ("which" ,which)))
     (inputs
      `(("glib-networking" ,glib-networking)
        ("gnome-keyring" ,gnome-keyring)
diff --git a/gnu/packages/task-management.scm b/gnu/packages/task-management.scm
index 601a3616f7..3c0efe13e2 100644
--- a/gnu/packages/task-management.scm
+++ b/gnu/packages/task-management.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2015 Tomáš Čech <sleep_walker@suse.cz>
+;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -19,11 +20,22 @@
 (define-module (gnu packages task-management)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
+  #:use-module (gnu packages freedesktop)
+  #:use-module (gnu packages gettext)
+  #:use-module (gnu packages glib)
+  #:use-module (gnu packages gnome)
+  #:use-module (gnu packages gstreamer)
+  #:use-module (gnu packages gtk)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages lua)
+  #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages python)
   #:use-module (gnu packages tls)
   #:use-module (guix download)
-  #:use-module (guix build-system cmake))
+  #:use-module (guix git-download)
+  #:use-module (guix utils)
+  #:use-module (guix build-system cmake)
+  #:use-module (guix build-system meson))
 
 (define-public taskwarrior
   (package
@@ -59,3 +71,57 @@
 Done time management method.  It supports network synchronization, filtering
 and querying data, exposing task data in multiple formats to other tools.")
     (license license:expat)))
+
+(define-public blanket
+  (package
+    (name "blanket")
+    (version "0.3.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/rafaelmardojai/blanket/")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "13xip9b2p2ai2jchkck71c849s2rlxzfvlbsgpraw9hswi0rk0jg"))))
+    (build-system meson-build-system)
+    (arguments
+     `(#:glib-or-gtk? #t
+       #:tests? #f ;the "Validate appstream file" test fails
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'wrap 'wrap-libs
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out               (assoc-ref outputs "out"))
+                    (gi-typelib-path   (getenv "GI_TYPELIB_PATH"))
+                    (gst-plugin-path   (getenv "GST_PLUGIN_SYSTEM_PATH"))
+                    (python-path       (getenv "PYTHONPATH")))
+               (wrap-program (string-append out "/bin/blanket")
+                 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
+                 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
+                 `("PYTHONPATH" ":" prefix (,python-path))))
+             #t)))))
+    (native-inputs
+     `(("desktop-file-utils" ,desktop-file-utils)
+       ("gettext" ,gettext-minimal)
+       ("glib:bin" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("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)))
+    (home-page "https://github.com/rafaelmardojai/blanket")
+    (synopsis "Ambient sound and noise player")
+    (description
+     "Blanket provides different ambient sounds and types of noise to listen
+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+)))
diff --git a/gnu/packages/tbb.scm b/gnu/packages/tbb.scm
index a0bf631baa..5f1438667d 100644
--- a/gnu/packages/tbb.scm
+++ b/gnu/packages/tbb.scm
@@ -29,7 +29,7 @@
 (define-public tbb
   (package
     (name "tbb")
-    (version "2020.2")
+    (version "2020.3")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -38,7 +38,7 @@
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0h8kdxikpq2v4a2h9cj33ril9kj0ig47n0vvbd92wabkn442jwar"))
+                "0r9axsdlmacjlcnax4vkzg86nwf8lsx7wbqdi3wnryaxk0xvdcx6"))
               (modules '((guix build utils)))
               (snippet
                '(begin
diff --git a/gnu/packages/telephony.scm b/gnu/packages/telephony.scm
index be50ab3c95..48e30abfc3 100644
--- a/gnu/packages/telephony.scm
+++ b/gnu/packages/telephony.scm
@@ -323,14 +323,14 @@ GNU ccRTP stack and serves as library for other RTP stacks
 (define-public osip
   (package
    (name "osip")
-   (version "5.1.1")
+   (version "5.1.2")
    (source (origin
             (method url-fetch)
             (uri (string-append "mirror://gnu/osip/libosip2-" version ".tar.gz"))
             (patches (search-patches "osip-CVE-2017-7853.patch"))
             (sha256
              (base32
-              "0kgnxgzf968kbl6rx3hjsfb3jsg4ydgrsf35gzj319i1f8qjifv1"))))
+              "148j1i0zkwf09qdpk3nc5sssj1dvppw7p0n9rgrg8k56447l1h1b"))))
    (build-system gnu-build-system)
 
    (synopsis "Library implementing SIP (RFC-3261)")
@@ -515,14 +515,14 @@ address of one of the participants.")
 (define-public mumble
   (package
     (name "mumble")
-    (version "1.3.2")
+    (version "1.3.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://mumble.info/snapshot/stable/"
                                   name "-" version ".tar.gz"))
               (sha256
                (base32
-                "1q91vp3bp7xn67g9kgp1pfgxjj1hks3w60vdxcfm3373wy5db5lz"))
+                "101gw1334zmqsbjrba5dq1v4p2nxcs37g2yrzvkcra6s9ri4fw3j"))
               (modules '((guix build utils)))
               (snippet
                `(begin
diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm
index 4d6c22d7ce..e6a7d6b16d 100644
--- a/gnu/packages/terminals.scm
+++ b/gnu/packages/terminals.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; 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 © 2016 Mckinley Olsen <mck.olsen@gmail.com>
 ;;; Copyright © 2016, 2017, 2019 Alex Griffin <a@ajgrf.com>
 ;;; Copyright © 2016 David Craven <david@craven.ch>
@@ -16,10 +16,13 @@
 ;;; Copyright © 2018, 2019 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2019 Julien Lepiller <julien@lepiller.eu>
 ;;; Copyright © 2019 Pierre Langlois <pierre.langlois@gmx.com>
-;;; Copyright © 2019 Brett Gilio <brettg@gnu.org>
+;;; Copyright © 2019, 2020 Brett Gilio <brettg@gnu.org>
 ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
 ;;; Copyright © 2020 Valentin Ignatev <valentignatev@gmail.com>
 ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
+;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
+;;; Copyright © 2020, 2021 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;; Copyright © 2020 Leo Famulari <leo@famulari.name>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -43,22 +46,27 @@
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system glib-or-gtk)
   #:use-module (guix build-system go)
+  #:use-module (guix build-system meson)
   #:use-module (guix build-system python)
   #:use-module (guix download)
   #:use-module (guix git-download)
   #:use-module (guix packages)
+  #: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 check)
   #:use-module (gnu packages cmake)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages crates-io)
+  #:use-module (gnu packages crates-graphics)
   #:use-module (gnu packages crypto)
   #:use-module (gnu packages docbook)
   #:use-module (gnu packages fontutils)
   #: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)
@@ -68,6 +76,7 @@
   #:use-module (gnu packages libcanberra)
   #:use-module (gnu packages libevent)
   #:use-module (gnu packages linux)
+  #:use-module (gnu packages man)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages perl-check)
@@ -90,7 +99,7 @@
 (define-public tilda
   (package
     (name "tilda")
-    (version "1.5.2")
+    (version "1.5.4")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -99,8 +108,15 @@
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0psq0f4s0s92bba6wwcf6b0j7i59b76svqxhvpavwv53yvhmmamn"))))
+                "0q2i9ny8sh7zjzgvkx8vcvk593wcvchjc4xq4nrlqdd377r7cg5q"))))
     (build-system glib-or-gtk-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'make-po-writable
+           (lambda _
+             (for-each make-file-writable (find-files "po" "."))
+             #t)))))
     (native-inputs
      `(("autoconf" ,autoconf)
        ("automake" ,automake)
@@ -220,24 +236,29 @@ text-based approach to terminal recording.")
     (package
       (name "libtsm")
       (version (git-version "0.0.0" revision commit))
-      (source (origin
-                (method git-fetch)
-                ;; The freedesktop repository is no longer maintained.
-                (uri (git-reference
-                      (url (string-append "https://github.com/Aetf/" name))
-                      (commit commit)))
-                (file-name (git-file-name name version))
-                (sha256
-                 (base32
-                  "0mwn91i5h5d518i1s05y7hzv6bc13vzcvxszpfh77473iwg4wprx"))))
+      (source
+       (origin
+         (method git-fetch)
+         ;; The freedesktop repository is no longer maintained.
+         (uri (git-reference
+               (url (string-append "https://github.com/Aetf/" name))
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0mwn91i5h5d518i1s05y7hzv6bc13vzcvxszpfh77473iwg4wprx"))
+         (modules '((guix build utils)))
+         (snippet
+          '(begin
+             ;; Remove a bundled copy of libxkbcommon's xkbcommon-keysyms.h.
+             (delete-file-recursively "external/xkbcommon")
+             #t))))
       (build-system cmake-build-system)
       (arguments
        `(#:configure-flags '("-DBUILD_TESTING=ON")))
       (native-inputs
-       `(("pkg-config" ,pkg-config)))
-      (inputs
-       `(("libxkbcommon" ,libxkbcommon)
-         ("check" ,check)))
+       `(("check" ,check)
+         ("libxkbcommon" ,libxkbcommon) ; for xkbcommon-keysyms.h
+         ("pkg-config" ,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
@@ -332,20 +353,28 @@ multi-seat support, a replacement for @command{mingetty}, and more.")
 (define-public libtermkey
   (package
     (name "libtermkey")
-    (version "0.21.1")
+    (version "0.22")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://www.leonerd.org.uk/code/libtermkey/"
                                   "libtermkey-" version ".tar.gz"))
               (sha256
-               (base32 "0psd0kf10q5ixfima0mxz10syy7qq1ilz1npr0rz862xycvzgjyf"))))
+               (base32 "002606rrxh5f6l6jrikl0dyxsknscdamq10av21xm0xa98ybsib9"))))
     (build-system gnu-build-system)
     (arguments
-     '(#:make-flags (list
-                     "CC=gcc"
+     `(#:make-flags (list
+                     (string-append "CC=" ,(cc-for-target))
                      (string-append "PREFIX=" (assoc-ref %outputs "out")))
-       #:phases (modify-phases %standard-phases
-                  (delete 'configure))  ; no configure script
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)            ; no configure script
+         (add-before 'check 'patch-failing-test
+           ;; XXX This undoes an upstream change in version 0.22 which ‘ensures
+           ;; that the hooked function can invent TI strings for new terminal
+           ;; types’.  That fails in the build environment.  Why?
+           (lambda _
+             (substitute* "t/40ti-override.c"
+               (("vt750") "vt100")))))
        #:test-target "test"))
     (inputs `(("ncurses" ,ncurses)))
     (native-inputs `(("libtool" ,libtool)
@@ -426,7 +455,7 @@ to all types of devices that provide serial consoles.")
 allowing different sounds to indicate different events.  While it can be run
 quite happily on the command line, its intended place of residence is within
 scripts, notifying the user when something interesting occurs.  Of course, it
-has no notion of what's interesing, but it's very good at that notifying part.")
+has no notion of what's interesting, but it's very good at that notifying part.")
     (home-page "https://github.com/spkr-beep/beep")
     (license license:gpl2+)))
 
@@ -468,7 +497,7 @@ should be thread-safe.")
 (define-public libvterm
   (package
     (name "libvterm")
-    (version "0.1.3")
+    (version "0.1.4")
     (source
      (origin
        (method url-fetch)
@@ -476,7 +505,7 @@ should be thread-safe.")
                            "libvterm-" version ".tar.gz"))
        (sha256
         (base32
-         "0awfszvhc3cjsrqyx66fdmrc09k0wbm5mz78jpqf0n26d93285z4"))))
+         "1pfkhbbihd2kvaza707vl2nvk7bxaawmb37wf9v6d72mjng38w5w"))))
     (build-system gnu-build-system)
     (arguments
      `(#:make-flags
@@ -670,6 +699,46 @@ eye-candy, customizable, and reasonably lightweight.")
                 license:x11
                 license:bsd-3)))))
 
+(define-public foot
+  (package
+    (name "foot")
+    (version "1.5.4")
+    (home-page "https://codeberg.org/dnkl/foot")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference (url home-page) (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0y6xfsldz5lwy6kp5dy9s27pnii7n5zj754wglvz9d9fp5lkl6id"))))
+    (build-system meson-build-system)
+    (arguments
+     `(#:meson ,meson-0.55
+       ;; Using a "release" build is recommended both for performance, and
+       ;; also to address a GCC 10 issue when doing PGO builds.
+       #:build-type "release"
+       ;; Enable LTO as recommended by INSTALL.md.
+       #:configure-flags '("-Db_lto=true")))
+    (native-inputs
+     `(;; Foot makes use of modern C features and needs a newer compiler.
+       ;; Remove when the default compiler is > GCC 7.
+       ("gcc" ,gcc-10)
+       ("ncurses" ,ncurses)             ;for 'tic'
+       ("pkg-config" ,pkg-config)
+       ("scdoc" ,scdoc)
+       ("wayland-protocols" ,wayland-protocols)))
+    (inputs
+     `(("fcft" ,fcft)
+       ("libxkbcommon" ,libxkbcommon)
+       ("wayland" ,wayland)))
+    (synopsis "Wayland-native terminal emulator")
+    (description
+     "@command{foot} is a terminal emulator for systems using the Wayland
+display server.  It is designed to be fast, lightweight, and independent of
+desktop environments.  It can be used as a standalone terminal and also has
+a server/client mode.")
+    (license license:expat)))
+
 (define-public sakura
   (package
     (name "sakura")
@@ -731,7 +800,7 @@ programmer to write text-based user interfaces.")
 (define-public go-github-com-junegunn-fzf
   (package
     (name "go-github-com-junegunn-fzf")
-    (version "0.18.0")
+    (version "0.22.0")
     (source
      (origin
        (method git-fetch)
@@ -741,7 +810,7 @@ programmer to write text-based user interfaces.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "0pwpr4fpw56yzzkcabzzgbgwraaxmp7xzzmap7w1xsrkbj7dl2xl"))))
+         "0n0cy5q2r3dm1a3ivlzrv9c5d11awxlqim5b9x8zc85dlr73n35l"))))
     (build-system go-build-system)
     (arguments
      `(#:import-path "github.com/junegunn/fzf"))
@@ -750,6 +819,8 @@ programmer to write text-based user interfaces.")
        ("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)))
     (home-page "https://github.com/junegunn/fzf")
     (synopsis "Command-line fuzzy-finder")
@@ -861,14 +932,14 @@ than a terminal.")
 (define-public python-curtsies
   (package
     (name "python-curtsies")
-    (version "0.2.11")
+    (version "0.3.4")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "curtsies" version))
        (sha256
         (base32
-         "1vljmw3sy6lrqahhpyg4gk13mzcx3mwhvg8s41698ms3cpgkjipc"))))
+         "019bpf5wmng4f6ic2ykg893ypfihpfvzi6dhblcagfwbincl79ac"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -883,7 +954,7 @@ than a terminal.")
      `(("python-mock" ,python-mock)
        ("python-pyte" ,python-pyte)
        ("python-nose" ,python-nose)))
-    (home-page "https://github.com/thomasballinger/curtsies")
+    (home-page "https://github.com/bpython/curtsies")
     (synopsis "Library for curses-like terminal interaction with colored
 strings")
     (description "Curtsies is a Python library for interacting with the
@@ -891,9 +962,6 @@ terminal.  It features string-like objects which carry formatting information,
 per-line fullscreen terminal rendering, and keyboard input event reporting.")
     (license license:expat)))
 
-(define-public python2-curtsies
-  (package-with-python2 python-curtsies))
-
 (define-public tmate
   (package
     (name "tmate")
@@ -928,7 +996,7 @@ tmux.")
 (define-public kitty
   (package
     (name "kitty")
-    (version "0.16.0")
+    (version "0.19.3")
     (home-page "https://sw.kovidgoyal.net/kitty/")
     (source
      (origin
@@ -938,7 +1006,7 @@ tmux.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1bszyddar0g1gdz67h8rd3gbrdhi6ahjg7j14cjiqxm1938z9ajf"))
+        (base32 "0r49bybqy6c0n1lz6yc85py80wb40w757m60f5rszjf200wnyl6s"))
        (modules '((guix build utils)))
        (snippet
         '(begin
@@ -953,46 +1021,53 @@ tmux.")
               "SPHINXBUILD = sphinx-build\n"))
            #t))))
     (build-system gnu-build-system)
-    (inputs
-     `(("python" ,python)
-       ("harfbuzz" ,harfbuzz)
-       ("zlib" ,zlib)
-       ("libcanberra" ,libcanberra)
-       ("libpng" ,libpng)
-       ("freetype" ,freetype)
-       ("fontconfig" ,fontconfig)
-       ("pygments" ,python-pygments)
-       ("wayland" ,wayland)))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("libxrandr" ,libxrandr)
-       ("libdbus" ,dbus)
+     `(("libdbus" ,dbus)
+       ("libgl1-mesa" ,mesa)
        ("libxcursor" ,libxcursor)
        ("libxi" ,libxi)
        ("libxinerama" ,libxinerama)
-       ("libgl1-mesa" ,mesa)
        ("libxkbcommon" ,libxkbcommon)
-       ("sphinx" ,python-sphinx)
+       ("libxrandr" ,libxrandr)
        ("ncurses" ,ncurses) ;; for tic command
+       ("pkg-config" ,pkg-config)
+       ("sphinx" ,python-sphinx)
        ("wayland-protocols" ,wayland-protocols)))
+    (inputs
+     `(("fontconfig" ,fontconfig)
+       ("freetype" ,freetype)
+       ("harfbuzz" ,harfbuzz)
+       ("lcms" ,lcms)
+       ("libcanberra" ,libcanberra)
+       ("libpng" ,libpng)
+       ("pygments" ,python-pygments)
+       ("python" ,python-wrapper)
+       ("wayland" ,wayland)
+       ("zlib" ,zlib)))
     (arguments
      '(#:phases (modify-phases %standard-phases
-                  (delete 'configure)
-                  ;; Wayland backend requires EGL, which isn't found
-                  ;; out-of-the-box for some reason. Hard-code it instead.
-                  (add-after 'unpack 'hard-code-libegl
-                    (lambda _
-                      (let* ((mesa (assoc-ref %build-inputs "libgl1-mesa"))
-                             (libegl (string-append mesa "/lib/libEGL.so.1")))
-                        (substitute* "glfw/egl_context.c"
-                                     (("libEGL.so.1") libegl)))
-                      #t))
+                  (delete 'configure)   ;no configure script
                   (replace 'build
-                    (lambda _
-                      (invoke "python3" "setup.py" "linux-package")))
+                    (lambda* (#:key inputs #:allow-other-keys)
+                      ;; The "kitty" sub-directory must be writable prior to
+                      ;; configuration (e.g., un-setting updates).
+                      (for-each make-file-writable (find-files "kitty"))
+
+                      (invoke "python3" "setup.py" "linux-package"
+                              ;; Do not phone home.
+                              "--update-check-interval=0"
+                              ;; Wayland backend requires EGL, which isn't
+                              ;; found out-of-the-box for some reason.
+                              (string-append "--egl-library="
+                                             (assoc-ref inputs "libgl1-mesa")
+                                             "/lib/libEGL.so.1"))))
                   (replace 'check
                     (lambda _
-                      (invoke "python3" "setup.py" "test")))
+                      ;; Fix "cannot find kitty executable" error when running
+                      ;; tests.
+                      (setenv "PATH" (string-append "linux-package/bin:"
+                                                    (getenv "PATH")))
+                      (invoke "python3" "test.py")))
                   (add-before 'install 'rm-pycache
                     ;; created python cache __pycache__ are non deterministic
                     (lambda _
@@ -1036,7 +1111,7 @@ comfortably in a pager or editor.
 (define-public eternalterminal
   (package
     (name "eternalterminal")
-    (version "6.0.7")
+    (version "6.0.13")
     (source
       (origin
         (method git-fetch)
@@ -1045,7 +1120,7 @@ comfortably in a pager or editor.
                (commit (string-append "et-v" version))))
         (file-name (git-file-name name version))
        (sha256
-        (base32 "03pdspggqxkmz95qb96pig5x0xw18hy9a7ivszydr32ry6kxxx1h"))))
+        (base32 "0sb1hypg2276y8c2a5vivrkcxp70swddvhnd9h273if3kv6j879r"))))
     (build-system cmake-build-system)
     (arguments
      '(#:configure-flags '("-DBUILD_TEST=ON")
@@ -1073,6 +1148,9 @@ 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")
@@ -1164,7 +1242,7 @@ made by suckless.")
         ("rust-unicode-width" ,rust-unicode-width-0.1)
         ("rust-parking-lot" ,rust-parking-lot-0.9)
         ("rust-urlocator" ,rust-urlocator-0.1)
-        ("rust-xdg" ,rust-xdg-2.2)
+        ("rust-xdg" ,rust-xdg-2)
         ("rust-image" ,rust-image-0.22)
         ("rust-dirs" ,rust-dirs-2.0)
         ("rust-x11-dl" ,rust-x11-dl-2)
@@ -1175,7 +1253,7 @@ made by suckless.")
         ("rust-mio" ,rust-mio-0.6)
         ("rust-mio-extras" ,rust-mio-extras-2)
         ("rust-terminfo" ,rust-terminfo-0.6)
-        ("rust-url" ,rust-url-2.1)
+        ("rust-url" ,rust-url-2)
         ("rust-vte" ,rust-vte-0.3)
         ("rust-nix" ,rust-nix-0.15)
         ("rust-miow" ,rust-miow-0.3)
@@ -1212,18 +1290,52 @@ made by suckless.")
         ("rust-winapi" ,rust-winapi-0.3))
        #:phases
        (modify-phases %standard-phases
-         (add-after 'configure 'patch-glutin-libgl-path
+         (add-after 'configure 'add-absolute-library-references
            (lambda* (#:key inputs cargo-inputs vendor-dir #:allow-other-keys)
              (let* ((glutin-name ,(package-name rust-glutin-0.22))
                     (glutin-version ,(package-version rust-glutin-0.22))
-                    (src-api
-                      (string-append
-                        glutin-name "-" glutin-version ".tar.gz/src/api/"))
+                    (glutin-api (string-append glutin-name "-" glutin-version
+                                               ".tar.gz/src/api/"))
+                    (smithay-client-toolkit-name
+                     ,(package-name rust-smithay-client-toolkit-0.6))
+                    (smithay-client-toolkit-version
+                     ,(package-version rust-smithay-client-toolkit-0.6))
+                    (smithay-client-toolkit-src
+                     (string-append smithay-client-toolkit-name "-"
+                                    smithay-client-toolkit-version ".tar.gz/src"))
+                    (wayland-sys-name ,(package-name rust-wayland-sys-0.23))
+                    (wayland-sys-version ,(package-version rust-wayland-sys-0.23))
+                    (wayland-sys-src (string-append wayland-sys-name "-"
+                                                    wayland-sys-version
+                                                    ".tar.gz/src"))
+                    (libxkbcommon (assoc-ref inputs "libxkbcommon"))
+                    (libwayland (assoc-ref inputs "wayland"))
                     (mesa (assoc-ref inputs "mesa")))
-              (substitute* (string-append vendor-dir "/" src-api "glx/mod.rs")
+              (substitute* (string-append vendor-dir "/" glutin-api "glx/mod.rs")
                 (("libGL.so") (string-append mesa "/lib/libGL.so")))
-              (substitute* (string-append vendor-dir "/" src-api "egl/mod.rs")
+              (substitute* (string-append vendor-dir "/" glutin-api "egl/mod.rs")
                 (("libEGL.so") (string-append mesa "/lib/libEGL.so")))
+              (substitute* (string-append vendor-dir "/"
+                                          smithay-client-toolkit-src
+                                          "/keyboard/ffi.rs")
+                (("libxkbcommon\\.so")
+                 (string-append libxkbcommon "/lib/libxkbcommon.so")))
+              (substitute* (string-append vendor-dir "/" wayland-sys-src
+                                          "/server.rs")
+                (("libwayland-server\\.so")
+                 (string-append libwayland "/lib/libwayland-server.so")))
+              (substitute* (string-append vendor-dir "/" wayland-sys-src
+                                          "/cursor.rs")
+                (("libwayland-cursor\\.so")
+                 (string-append libwayland "/lib/libwayland-cursor.so")))
+              (substitute* (string-append vendor-dir "/" wayland-sys-src
+                                          "/egl.rs")
+                (("libwayland-egl\\.so")
+                 (string-append libwayland "/lib/libwayland-egl.so")))
+              (substitute* (string-append vendor-dir "/" wayland-sys-src
+                                          "/client.rs")
+                (("libwayland-client\\.so")
+                 (string-append libwayland "/lib/libwayland-client.so")))
               #t)))
          (add-after 'configure 'remove-alacritty-vendor
            (lambda* (#:key vendor-dir #:allow-other-keys)
@@ -1243,15 +1355,8 @@ made by suckless.")
                     (man   (string-append share "/man/man1"))
                     (alacritty-bin "target/release/alacritty"))
 
-               ;; Install and wrap the binary.
+               ;; Install the executable.
                (install-file alacritty-bin bin)
-               (wrap-program (string-append bin "/alacritty")
-                 ;; Both libraries are dlopen()d by cargo dependencies above
-                 ;; when running Alacritty on pure Wayland.
-                 ;; XXX Find out how to patch these at the source.
-                 `("LD_LIBRARY_PATH" ":" prefix
-                   (,(string-append (assoc-ref inputs "libxkbcommon") "/lib:"
-                                    (assoc-ref inputs "wayland") "/lib"))))
 
                ;; Install man pages.
                (mkdir-p man)
@@ -1304,6 +1409,12 @@ made by suckless.")
        ("ncurses" ,ncurses)
        ("pkg-config" ,pkg-config)
        ("python3" ,python)))
+    (native-search-paths
+     ;; FIXME: This should only be located in 'ncurses'.  Nonetheless it is
+     ;; provided for usability reasons.  See <https://bugs.gnu.org/22138>.
+     (list (search-path-specification
+            (variable "TERMINFO_DIRS")
+            (files '("share/terminfo")))))
     (home-page "https://github.com/alacritty/alacritty")
     (synopsis "GPU-accelerated terminal emulator")
     (description
@@ -1314,3 +1425,39 @@ blazingly fast.  By making sane choices for defaults, Alacritty requires no
 additional setup.  However, it does allow configuration of many aspects of the
 terminal.  Note that you need support for OpenGL 3.2 or higher.")
     (license license:asl2.0)))
+
+(define-public bootterm
+  (package
+    (name "bootterm")
+    (version "0.2")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/wtarreau/bootterm")
+                     (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "08yb4kiid3028cqsx7wzyrzk46asphxlxlj1y141hi245wbql55n"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f ; no test suite
+       #:make-flags (list (string-append "CC=" ,(cc-for-target))
+                          (string-append "PREFIX=" (assoc-ref %outputs "out")))
+       #:phases
+       (modify-phases %standard-phases
+         ;; No ./configure script
+         (delete 'configure)
+         (add-after 'install 'install-doc
+           (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)
+               #t))))))
+    (home-page "https://github.com/wtarreau/bootterm")
+    (synopsis "Serial terminal")
+    (description "Bootterm is a terminal designed to ease connection to
+ephemeral serial ports.  It features automatic port detection, port enumeration,
+support for non-standard baud rates, the ability to wait for ports to appear,
+and the ability to read and write via stdin and stdout.")
+    (license license:expat)))
diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm
index c4f9f6cfb7..bdf881f643 100644
--- a/gnu/packages/tex.scm
+++ b/gnu/packages/tex.scm
@@ -9,10 +9,12 @@
 ;;; Copyright © 2016, 2017, 2018, 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2017, 2020 Marius Bakke <mbakke@fastmail.com>
-;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Danny Milosavljevic <dannym+a@scratchpost.org>
 ;;; Copyright © 2018, 2020 Arun Isaac <arunisaac@systemreboot.net>
 ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
+;;; Copyright © 2020 Paul Garlick <pgarlick@tourbillion-technology.com>
+;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -823,6 +825,33 @@ originals.")
 (define-public texlive-fonts-cm-super
   (deprecated-package "texlive-fonts-cm-super" texlive-cm-super))
 
+(define-public texlive-courier
+  (package
+    (inherit (simple-texlive-package
+              "texlive-courier"
+              (list "/dvips/courier/"
+                    "/fonts/afm/adobe/courier/"
+                    "/fonts/afm/urw/courier/"
+                    "/fonts/map/dvips/courier/"
+                    "/fonts/tfm/adobe/courier/"
+                    "/fonts/tfm/urw35vf/courier/"
+                    "/fonts/type1/adobe/courier/"
+                    "/fonts/type1/urw/courier/"
+                    "/fonts/vf/adobe/courier/"
+                    "/fonts/vf/urw35vf/courier/"
+                    "/tex/latex/courier/"
+                    "/tex4ht/ht-fonts/alias/adobe/courier/"
+                    "/tex4ht/ht-fonts/unicode/adobe/courier/")
+              (base32
+               "1hfgisdi7mjf5156ax6d6zsbiq42zkmp1x5lg17rgzf61k6d6z1y")
+              #:trivial? #t))
+    (home-page "https://ctan.org/pkg/urw-base35")
+    (synopsis "URW Base 35 font pack for LaTeX")
+    (description "This package provides a drop-in replacements for the Courier
+font from Adobe's basic set.")
+    ;; No license version specified.
+    (license license:gpl3+)))
+
 (define-public texlive-lm
   (package
     (inherit (simple-texlive-package
@@ -1290,6 +1319,32 @@ described in the TeXbook, together with various supporting files (some also
 discussed in the book).")
     (license license:knuth)))
 
+(define-public texlive-helvetic
+  (package
+    (inherit (simple-texlive-package
+              "texlive-helvetic"
+              (list "/dvips/helvetic/"
+                    "/fonts/afm/adobe/helvetic/"
+                    "/fonts/afm/urw/helvetic/"
+                    "/fonts/map/dvips/helvetic/"
+                    "/fonts/tfm/adobe/helvetic/"
+                    "/fonts/tfm/monotype/helvetic/"
+                    "/fonts/tfm/urw35vf/helvetic/"
+                    "/fonts/type1/urw/helvetic/"
+                    "/fonts/vf/adobe/helvetic/"
+                    "/fonts/vf/monotype/helvetic/"
+                    "/fonts/vf/urw35vf/helvetic/"
+                    "/tex/latex/helvetic/")
+              (base32
+               "0c3f1ly7y6404z0akbfbbfql13sz717v0n0g69qjpr69hi4n0nsl")
+              #:trivial? #t))
+    (home-page "https://ctan.org/pkg/urw-base35")
+    (synopsis "URW Base 35 font pack for LaTeX")
+    (description "This package provides a drop-in replacements for the Helvetica
+font from Adobe's basic set.")
+    ;; No license version specified.
+    (license license:gpl3+)))
+
 (define-public texlive-hyphen-afrikaans
   (package
     (inherit (texlive-hyphen-package
@@ -3534,6 +3589,29 @@ distribution.")
     (description "This is a very limited subset of the TeX Live distribution.
 It includes little more than the required set of LaTeX packages.")))
 
+(define-public texlive-tipa
+  (package
+    (inherit (simple-texlive-package
+              "texlive-tipa"
+              (list "/tex4ht/ht-fonts/alias/tipa/"
+                    "/doc/fonts/tipa/"
+                    "/fonts/map/dvips/tipa/"
+                    "/fonts/source/public/tipa/"
+                    "/fonts/tfm/public/tipa/"
+                    "/fonts/type1/public/tipa/"
+                    "/tex/latex/tipa/")
+              (base32
+               "1h53dscv8z6fsa0ax5dys3x11b2f1g60l22hpdf7c88cvdhcs8sn")
+              #:trivial? #t))
+    (home-page "https://www.ctan.org/pkg/tipa")
+    (synopsis "Fonts and macros for IPA phonetics characters")
+    (description "These fonts are considered the \"ultimate answer\" to IPA
+typesetting.  The encoding of these 8-bit fonts has been registered as LaTeX
+standard encoding T3, and the set of addendum symbols as encoding
+TS3. \"Times-like\" Adobe Type 1 versions are provided for both the T3 and the
+TS3 fonts.")
+    (license license:lppl)))
+
 (define-public texlive-latex-amsrefs
   (package
     (name "texlive-latex-amsrefs")
@@ -5352,6 +5430,115 @@ alternative version of the Kurier fonts.  The difference lies in the absence
 of ink traps which typify the Kurier font.")
     (license license:gfl1.0)))
 
+(define-public texlive-jknappen
+  (package
+    (inherit (simple-texlive-package
+              "texlive-jknappen"
+              (list "/fonts/source/jknappen/"
+                    "/fonts/tfm/jknappen/"
+                    "/fonts/source/jknappen/"
+                    "/fonts/tfm/jknappen/"
+                    "/tex4ht/ht-fonts/alias/jknappen/"
+                    "/tex4ht/ht-fonts/unicode/jknappen/")
+              (base32
+               "1v5wk5il41bddzr81h5636h3cjz0w1qann5g9garsb7qfch9fhws")
+              #:trivial? #t))
+    (home-page "https://www.ctan.org/pkg/jknappen")
+    (synopsis "Miscellaneous packages by Jörg Knappen")
+    (description
+     "This package contains a collection of macros by Jörg Knappen:
+@table @code
+@item greekctr
+New counterstyles @code{\\greek} and @code{\\Greek}.
+@item holtpolt
+Non-commutative fractions
+@item latin1jk
+@itemx latin2jk
+@itemx latin3jk
+Inputenc definition files that allow verbatim input in the respective ISO
+Latin codes.
+@item mathbol
+Blackboard bold fonts for use in maths.
+@item mathrsfs
+Mathematical script letters, as traditionally used in physics for Lagrangian,
+Hamiltonian, path integral measures, etc.
+@item parboxx
+New alignment options for parboxen at top and bottom of the box.
+@item sans
+Interchanges the roles of sans serif and roman fonts throughout the document.
+@item semtrans
+Support for special latin letters and diacritics used in transliteration of
+semitic languages
+@item smartmn
+Intelligent hyphen/minus, which guesses whether to render as hyphen or minus.
+@item sgmlcmpt
+Commands replacing the characters <, >, and &.
+@item tccompat
+A compatibility package for users of the older versions of the textcomp package.
+@item young
+Simple Young tableaux.
+@end table")
+    (license license:gpl2)))                    ;per the 00readme_txt file.
+
+(define-public texlive-libertine
+  (package
+    (inherit (simple-texlive-package
+              "texlive-libertine"
+              (list "/doc/fonts/libertine/"
+
+                    "/fonts/enc/dvips/libertine/"
+                    "/fonts/map/dvips/libertine/"
+                    "/fonts/opentype/public/libertine/"
+                    "/fonts/tfm/public/libertine/"
+                    "/fonts/type1/public/libertine/"
+                    "/fonts/vf/public/libertine/"
+
+                    "/tex/latex/libertine/")
+              (base32
+               "1v2vimpfi0b08sd79dadrck7wkpa0bphiakwyvhjc3ygq9k5bp8k")
+              #:trivial? #t))
+    (home-page "https://www.ctan.org/pkg/libertine")
+    (synopsis "Use Linux Libertine and Biolinum fonts with LaTeX")
+    (description
+     "The package provides the Libertine and Biolinum fonts in both Type 1 and
+OTF styles, together with support macros for their use.  Monospaced and
+display fonts, and the \"keyboard\" set are also included, in OTF style, only.
+The @code{mweights} package is used to manage the selection of font weights.
+The package supersedes both the @code{libertineotf} and the
+@code{libertine-legacy} packages.")
+    (license (list license:gpl2+        ; with font exception
+                   license:silofl1.1
+                   license:lppl))))
+
+(define-public texlive-dejavu
+  (package
+    (inherit (simple-texlive-package
+              "texlive-dejavu"
+              (list "/doc/fonts/dejavu/"
+
+                    "/fonts/enc/dvips/dejavu/"
+                    "/fonts/map/dvips/dejavu/"
+
+                    "/fonts/afm/public/dejavu/"
+                    "/fonts/tfm/public/dejavu/"
+                    "/fonts/truetype/public/dejavu/"
+                    "/fonts/type1/public/dejavu/"
+                    "/fonts/vf/public/dejavu/"
+
+                    "/tex/latex/dejavu/")
+              (base32
+               "0y4qf5jl0xncah9nkcaalmy69wwq02n3j895zp71n2p0nfi24aka")
+              #:trivial? #t))
+    (home-page "https://www.ctan.org/pkg/libertine")
+    (synopsis "LaTeX support for the DejaVu fonts")
+    (description
+     "The package contains LaTeX support for the DejaVu fonts, which are
+derived from the Vera fonts but contain more characters and styles.  The fonts
+are included in the original TrueType format, and in converted Type 1 format.
+The (currently) supported encodings are: OT1, T1, IL2, TS1, T2*, X2, QX, and
+LGR.  The package doesn't (currently) support mathematics.")
+    (license license:lppl)))
+
 (define-public texlive-latex-titlesec
   (package
     (name "texlive-latex-titlesec")
@@ -5444,6 +5631,32 @@ CM-Super family of fonts.  The package also offers its own LaTeX support for
 OT2 encoded fonts, CM bright shaped fonts and Concrete shaped fonts.")
     (license license:lppl)))
 
+(define-public texlive-marvosym
+  (package
+    (inherit (simple-texlive-package
+              "texlive-marvosym"
+              (list "/doc/fonts/marvosym/"
+                    "/fonts/afm/public/marvosym/"
+                    "/fonts/map/dvips/marvosym/"
+                    "/fonts/tfm/public/marvosym/"
+                    "/fonts/truetype/public/marvosym/"
+                    "/fonts/type1/public/marvosym/"
+                    "/tex/latex/marvosym/")
+              (base32
+               "0m3bbg06cia8ni86fjhvb7x4a5qcxgnpqcvicfms91w2px9ysc46")
+              #:trivial? #t))
+    (home-page "https://martinvogel.de/blog/index.php?\
+/archives/131-Marvosym.ttf.html")
+    (synopsis "Martin Vogel's Symbols (marvosym) font")
+    (description "The Martin Vogel’s Symbols fonts (marvosym) contains the
+Euro currency symbol as defined by the European commission, along with symbols
+for structural engineering, symbols for steel cross-sections, astronomy
+signs (sun, moon, planets), the 12 signs of the zodiac, scissor symbols, CE
+sign and others.  This package contains both the original TrueType font and
+the derived Type 1 font, together with support files for TeX (LaTeX).")
+    (license (list license:lppl          ;for TeX support files
+                   license:silofl1.1)))) ;for fonts
+
 (define-public texlive-metapost
   (package
     (name "texlive-metapost")
@@ -5532,6 +5745,24 @@ Association for Computing Machinery (ACM).")
 get a narrower “natural” width.")
     (license license:lppl)))
 
+(define-public texlive-wasy
+  (package
+    (inherit (simple-texlive-package
+              "texlive-wasy"
+              (list "/fonts/source/public/wasy/"
+                    "/fonts/tfm/public/wasy/"
+                    "/tex/plain/wasy/"
+                    "/doc/fonts/wasy/")
+              (base32
+               "10dxbqgv42niybj65hj6y47x8lsl83m48rgw2v2s50k05wbghwbm")
+              #:trivial? #t))
+    (home-page "https://www.ctan.org/pkg/wasy")
+    (synopsis "Waldi symbol fonts")
+    (description "This package provides the @code{wasy} (Waldi symbol) fonts,
+in the Metafont and Adobe Type 1 formats.  Support under LaTeX is provided by
+the @code{wasysym} package.")
+    (license license:public-domain)))
+
 (define-public texlive-latex-wasysym
   (package
     (name "texlive-latex-wasysym")
@@ -5546,12 +5777,12 @@ get a narrower “natural” width.")
     (build-system texlive-build-system)
     (arguments '(#:tex-directory "latex/wasysym"))
     (home-page "https://www.ctan.org/pkg/wasysym")
-    (synopsis "LaTeX support file to use the WASY2 fonts")
+    (synopsis "LaTeX support file to use the @code{wasy} fonts")
     (description
-     "The wasy2WASY2 (Waldi Symbol) font by Roland Waldi provides many glyphs
-like male and female symbols and astronomical symbols, as well as the complete
-lasy font set and other odds and ends.  The wasysym package implements an easy
-to use interface for these symbols.")
+     "The @code{wasy} (Waldi Symbol) font by Roland Waldi provides many glyphs like
+male and female symbols and astronomical symbols, as well as the complete
+@code{lasy} font set and other odds and ends.  The @code{wasysym} package
+implements an easy to use interface for these symbols.")
     (license license:lppl)))
 
 (define-public texlive-latex-wrapfig
@@ -6044,14 +6275,14 @@ PDF documents.")
 (define-public texmaker
   (package
     (name "texmaker")
-    (version "5.0.3")
+    (version "5.0.4")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://www.xm1math.net/texmaker/texmaker-"
                                   version ".tar.bz2"))
               (sha256
                (base32
-                "0vrj9w5lk3vf6138n5bz8phmy3xp5kv4dq1rgirghcf4hbxdyx30"))))
+                "1qnh5g8zkjpjmw2l8spcynpfgs3wpcfcla5ms2kkgvkbdlzspqqx"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
@@ -7308,3 +7539,229 @@ facilities designed to cope with the more specific demands of academic
 writing, especially in the humanities and the social sciences.  All quote
 styles as well as the optional active quotes are freely configurable.")
       (license license:lppl1.3c+))))
+
+(define-public texlive-logreq
+  (let ((template (simple-texlive-package
+                   "texlive-logreq"
+                   (list "/doc/latex/logreq/"
+                         "/tex/latex/logreq/")
+                   (base32
+                    "13difccs3cxlkqlnhw286yb0c7mifrxfd402a2x5wwxv0m1kgfqd")
+                   #:trivial? #t)))
+    (package
+      (inherit template)
+      (propagated-inputs
+       `(("texlive-etoolbox" ,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
+workflow that involves running LaTeX several times and running tools
+such as BibTeX or makeindex.  It will log requests like \"please rerun
+LaTeX\" or \"please run BibTeX on file X\" to an external file in a
+machine-readable format.  Compiler scripts and integrated LaTeX
+editing environments may parse this file to determine the next steps
+in the workflow.  In sum, the package will do two things:
+
+@enumerate
+@item
+enable package authors to use LaTeX commands to issue requests, and
+
+@item
+collect all requests from all packages and write them to an external
+XML file.
+@end enumerate\n")
+      (license license:lppl1.3c))))
+
+(define-public texlive-biblatex
+  (let ((template (simple-texlive-package
+                   "texlive-biblatex"
+                   (list "/doc/latex/biblatex/"
+                         "/tex/latex/biblatex/")
+                   (base32
+                    "11kzvny50iklzkamr0rqd5x532q8rxny1xhmf96jl8mzj1d2zmay")
+                   #:trivial? #t)))
+    (package
+      (inherit template)
+      (propagated-inputs
+       `(("texlive-logreq" ,texlive-logreq)
+         ("texlive-url" ,texlive-url)))
+      (home-page "https://www.ctan.org/pkg/biblatex")
+      (synopsis "Sophisticated bibliographies in LaTeX")
+      (description "BibLaTeX is a complete reimplementation of the
+bibliographic facilities provided by LaTeX.  Formatting of the
+bibliography is entirely controlled by LaTeX macros, facilitating the
+design of new bibliography and citation styles.  BibLaTeX uses its own
+data backend program \"biber\" to read and process the bibliographic
+data.  With biber, the range of features provided by biblatex
+includes:
+
+@enumerate
+@item
+full unicode support,
+
+@item
+customisable bibliography labels,
+
+@item
+multiple bibliographies in the same document, and
+
+@item
+subdivided bibliographies, such as bibliographies per chapter or
+section.
+@end enumerate\n")
+      (license license:lppl1.3c))))
+
+(define-public texlive-todonotes
+  (let ((template (simple-texlive-package
+                   "texlive-todonotes"
+                   (list "/doc/latex/todonotes/"
+                         "/tex/latex/todonotes/")
+                   (base32
+                    "0lvxsskz4bdfxhd59hf77kiq8k4nh2spb66vc6hifdgi21z8r8wm")
+                   #:trivial? #t)))
+    (package
+      (inherit template)
+      (propagated-inputs
+       `(("texlive-latex-pgf" ,texlive-latex-pgf)
+         ("texlive-latex-xkeyval" ,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
+things to do later, in a simple and visually appealing way.  The
+package takes several options to enable customization and finetuning
+of the visual appearance.")
+      (license license:lppl1.3+))))
+
+(define-public texlive-units
+  (let ((template (simple-texlive-package
+                   "texlive-units"
+                   (list "/doc/latex/units/"
+                         "/tex/latex/units/")
+                   (base32
+                    "1ia1vzy8dp7pdvmawwnmh9lmkajmpnnh62dixrjpb6mnxq118bfd")
+                   #:trivial? #t)))
+    (package
+      (inherit template)
+      (home-page "http://www.ctan.org/pkg/units")
+      (synopsis "Typeset physical units and fractions")
+      (description "@code{units} is a package for typesetting physical
+units in a standard-looking way.  The package is based upon
+@code{nicefrac}, a package for typing fractions.  @code{nicefrac} is
+included in the @code{units} bundle.")
+      (license license:gpl3+))))
+
+(define-public texlive-microtype
+  (let ((template (simple-texlive-package
+                   "texlive-microtype"
+                   (list "/doc/latex/microtype/"
+                         "/tex/latex/microtype/")
+                   (base32
+                    "0xmjpzbj4nqmnl5m7xx1bshdk2c8n57rmbvn0j479ypj4wdlq9iy")
+                   #:trivial? #t)))
+    (package
+      (inherit template)
+      (home-page "http://www.ctan.org/pkg/microtype")
+      (synopsis "Subliminal refinements towards typographical perfection")
+      (description "@code{microtype} provides a LaTeX interface to the
+micro-typographic extensions that were introduced by pdfTeX and have
+since propagated to XeTeX and LuaTeX: most prominently character
+protrusion and font expansion, the adjustment of kerning and interword
+spacing, hyphenatable letterspacing and the possibility to disable all
+or selected ligatures.  These features may be applied to customisable
+sets of fonts.  All micro-typographic aspects of the fonts can be
+configured in a straight-forward and flexible way.  Settings for
+various fonts are provided.  An alternative package
+@code{letterspace}, which also works with plain TeX, is included in
+the bundle.")
+      (license license:lppl1.3c))))
+
+(define-public texlive-caption
+  (let ((template (simple-texlive-package
+                   "texlive-caption"
+                   (list "/doc/latex/caption/"
+                         "/tex/latex/caption/")
+                   (base32
+                    "09gmh8yjj9f5zak8r18g87w9p5jn7flnvmlhxmvdq6992mbdc6hg")
+                   #:trivial? #t)))
+    (package
+      (inherit template)
+      (home-page "http://www.ctan.org/pkg/caption")
+      (synopsis "Customising captions in floating environments")
+      (description "The @code{caption} package provides many ways to
+customise the captions in floating environments like figure and table.
+Facilities include rotating captions, sideways captions and continued
+captions (for tables or figures that come in several parts).  A list
+of compatibility notes, for other packages, is provided in the
+documentation.  The package also provides the \"caption outside
+float\" facility, in the same way that simpler packages like
+@code{capt-ofcapt-of} do.  The package supersedes @code{caption2}.
+Packages @code{bicaption}, @code{ltcaption}, @code{newfloat},
+@code{subcaption} and @code{totalcount} are included in the bundle.")
+      (license license:lppl1.3+))))
+
+(define-public texlive-symbol
+  (package
+    (inherit (simple-texlive-package
+              "texlive-symbol"
+              (list "/dvips/symbol/"
+                    "/fonts/afm/adobe/symbol/"
+                    "/fonts/afm/urw/symbol/"
+                    "/fonts/tfm/adobe/symbol/"
+                    "/fonts/tfm/urw35vf/symbol/"
+                    "/fonts/type1/urw/symbol/"
+                    "/fonts/map/dvips/symbol/"
+                    "/tex/latex/symbol/")
+              (base32
+               "01xiygb88xwi7rfvh1zrlxzi5pqb5fvylws5zzszg379iz4pyzwj")
+              #:trivial? #t))
+    (home-page "https://ctan.org/pkg/urw-base35")
+    (synopsis "URW Base 35 font pack for LaTeX")
+    (description "This package provides a drop-in replacement for the
+Symbol font from Adobe's basic set.")
+    (license license:gpl2)))
+
+(define-public texlive-mathpazo
+  (package
+    (inherit (simple-texlive-package
+              "texlive-mathpazo"
+              (list "/doc/latex/mathpazo/"
+                    "/fonts/afm/public/mathpazo/"
+                    "/fonts/tfm/public/mathpazo/"
+                    "/fonts/type1/public/mathpazo/"
+                    "/fonts/vf/public/mathpazo/")
+              (base32
+               "02in6hdnbnkz216mpy8g6fk3wmlls8nh5982vmg37vhbj77lk0rh")
+              #:trivial? #t))
+    (home-page "http://www.ctan.org/pkg/mathpazo")
+    (synopsis "Fonts to typeset mathematics to match Palatino")
+    (description "The Pazo Math fonts are a family of PostScript fonts
+suitable for typesetting mathematics in combination with the Palatino
+family of text fonts.  The Pazo Math family is made up of five fonts
+provided in Adobe Type 1 format.  These contain glyphs that are
+usually not available in Palatino and for which Computer Modern looks
+odd when combined with Palatino.  These glyphs include the uppercase
+Greek alphabet in upright and slanted shapes, the lowercase Greek
+alphabet in slanted shape, several mathematical glyphs and the
+uppercase letters commonly used to represent various number sets.
+LaTeX macro support is provided in package @code{psnfss}.")
+    (license license:gpl3+)))
+
+(define-public texlive-fpl
+  (package
+    (inherit (simple-texlive-package
+              "texlive-fpl"
+              (list "/doc/fonts/fpl/"
+                    "/source/fonts/fpl/"
+                    "/fonts/afm/public/fpl/"
+                    "/fonts/type1/public/fpl/")
+              (base32
+               "02gkl516z9kn8xqs269pdkqn37sxm8ib0pcs43s4rs2rhyyl5z68")
+              #:trivial? #t))
+    (home-page "https://www.ctan.org/pkg/fpl")
+    (synopsis "SC and OsF fonts for URW Palladio L")
+    (description "The FPL Fonts provide a set of SC/OsF fonts for URW
+Palladio L which are compatible with the Palatino SC/OsF fonts from
+Adobe.  LaTeX use is enabled by the mathpazo package, which is part of
+the @code{psnfss} distribution.")
+    ;; Either LPPL version 1.0 or later, or GPL version 2
+    (license (list license:lppl1.0+ license:gpl2))))
diff --git a/gnu/packages/text-editors.scm b/gnu/packages/text-editors.scm
index 81475b4d0f..052dfa1236 100644
--- a/gnu/packages/text-editors.scm
+++ b/gnu/packages/text-editors.scm
@@ -5,12 +5,14 @@
 ;;; Copyright © 2017 Feng Shu <tumashu@163.com>
 ;;; Copyright © 2017 Nikita <nikita@n0.is>
 ;;; Copyright © 2014 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.org>
-;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2019 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2019 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2019, 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2020 Tom Zander <tomz@freedommail.ch>
+;;; Copyright © 2020 Mark Meyer <mark@ofosos.org>
+;;; Copyright © 2020 Maxime Devos <maximedevos@telenet.be>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -62,6 +64,7 @@
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
   #: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 regex)
@@ -75,21 +78,27 @@
 (define-public vis
   (package
     (name "vis")
-    (version "0.5")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/martanne/vis/releases"
-                                  "/download/v" version
-                                  "/vis-v" version ".tar.gz"))
-              (sha256
-               (base32
-                "0aw35n8xk7ir84ckvczc6yshj9ynishrlz0qlv4yc1afbra1gxmn"))))
+    (version "0.6")                     ; also update the vis-test input
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/martanne/vis")
+             (commit (string-append "v" version))))
+       (sha256
+        (base32 "1zjm89cn3rfq8fxpwp66khy53s6vqlmw6q103qyyvix8ydzxdmsh"))
+       (file-name (git-file-name name version))))
     (build-system gnu-build-system)
     (arguments
      `(#:test-target "test"
-       #:tests? #f                  ; no releases; snapshots are missing tests
        #:phases
        (modify-phases %standard-phases
+         (add-after 'unpack 'unpack-test-suite
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((vis-test (assoc-ref inputs "vis-test")))
+               (copy-recursively vis-test "test")
+               #t)))
+         (delete 'check)                ; the tests need a wrapped vis
          (add-after 'install 'wrap-binary
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
@@ -102,7 +111,34 @@
                (wrap-program (string-append out "/bin/vis")
                  `("LUA_PATH" ":" prefix (,LUA_PATH))
                  `("LUA_CPATH" ":" prefix (,LUA_CPATH)))
+               #t)))
+         (add-after 'wrap-binary 'check
+           (assoc-ref %standard-phases 'check))
+         (add-before 'check 'set-up-tests
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               ;; DEFAULT_COMPILER is hard-coded here.
+               (substitute* "test/core/ccan-config.c"
+                 (("\"cc\"")
+                  (format #f "\"~a\"" ,(cc-for-target))))
+
+               ;; Use the ‘vis’ executable that we wrapped above.
+               (install-file (string-append out "/bin/vis") ".")
+
+               ;; XXX Delete 2 failing tests.  TODO: make them not fail. :-)
+               (for-each delete-file
+                         (find-files "test/vis/selections" "^complement"))
                #t))))))
+    (native-inputs
+     `(("vis-test"
+        ,(origin
+           (method git-fetch)
+           (uri (git-reference
+                 (url "https://github.com/martanne/vis-test")
+                 (commit "4c4f6645de77f697a45899e8645e0c2bbdc7208a")))
+           (sha256
+            (base32 "10vh1pxsqw88a5xwh5irkm85xr66dbycmgpmabyw9h0vm14cvcz2"))
+           (file-name (git-file-name "vis-test" version))))))
     (inputs `(("lua" ,lua)
               ("ncurses" ,ncurses)
               ("libtermkey" ,libtermkey)
@@ -122,7 +158,7 @@ based command language.")
 (define-public kakoune
   (package
     (name "kakoune")
-    (version "2020.01.16")
+    (version "2020.09.01")
     (source
      (origin
        (method url-fetch)
@@ -130,7 +166,7 @@ based command language.")
                            "releases/download/v" version "/"
                            "kakoune-" version ".tar.bz2"))
        (sha256
-        (base32 "1bhd990gywdwdhxc5dn83wwj418c5cw1ndqycf7k0a02kxlg3550"))))
+        (base32 "0x81rxy7bqnhd9374g5ypy4w4nxmm0vnqw6b52bf62jxdg2qj6l6"))))
     (build-system gnu-build-system)
     (arguments
      `(#:make-flags
@@ -149,7 +185,7 @@ based command language.")
                                "\";\n        " line)))
              #t))
          (delete 'configure)            ; no configure script
-         ;; kakoune requires us to be in the src/ directory to build
+         ;; kakoune requires us to be in the src/ directory to build.
          (add-before 'build 'chdir
            (lambda _ (chdir "src") #t)))))
     (native-inputs
@@ -194,7 +230,7 @@ bindings and many of the powerful features of GNU Emacs.")
 (define-public jucipp
   (package
     (name "jucipp")
-    (version "1.6.0")
+    (version "1.6.2")
     (home-page "https://gitlab.com/cppit/jucipp")
     (source (origin
               (method git-fetch)
@@ -206,7 +242,7 @@ bindings and many of the powerful features of GNU Emacs.")
                                   (recursive? #t)))
               (file-name (git-file-name name version))
               (sha256
-               (base32 "177myy6qvjlb6j3f3i3xmfml5r3p9in8xzpvm0n59dn56s81gpnr"))))
+               (base32 "10idv2kyw2dg45wfcnh7nybs8qys7kfvif90sjrff3541k97pm5y"))))
     (build-system cmake-build-system)
     (arguments
      `(#:configure-flags '("-DBUILD_TESTING=ON"
@@ -247,7 +283,26 @@ bindings and many of the powerful features of GNU Emacs.")
                         (setenv "DISPLAY" display)
                         (system (string-append xorg-server "/bin/Xvfb "
                                                display " &")))
-                      #t)))))
+                      #t))
+                  (add-after 'install 'wrap
+                    (lambda* (#:key inputs outputs #:allow-other-keys)
+                      ;; The package needs GTK+ and GtkSourceView on XDG_DATA_DIRS
+                      ;; for syntax highlighting to work.  shared-mime-info is
+                      ;; necessary for MIME handling.
+                      ;; XXX: Ideally we'd reuse glib-or-gtk-wrap here, but it
+                      ;; does not pick up $gtksourceview/share/gtksourceview-3.0.
+                      (let ((out (assoc-ref outputs "out"))
+                            (gtk+ (assoc-ref inputs "gtk+"))
+                            (gtksourceview (assoc-ref inputs "gtksourceview"))
+                            (shared-mime-info (assoc-ref inputs "shared-mime-info")))
+                        (wrap-program (string-append out "/bin/juci")
+                          `("XDG_DATA_DIRS" ":" prefix
+                            (,(string-join
+                               (map (lambda (pkg)
+                                      (string-append pkg "/share"))
+                                    (list out gtk+ gtksourceview shared-mime-info))
+                               ":"))))
+                        #t))))))
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("xorg-server" ,xorg-server-for-tests)))
@@ -605,24 +660,20 @@ environment with Markdown markup.")
                      (icons-dir (string-append out "/share/pixmaps")))
                  (install-file "icons/Manuskript/manuskript.svg" icons-dir)
                  (mkdir-p apps)
-                 (with-output-to-file (string-append apps "/manuskript.desktop")
-                   (lambda _
-                     (format #t
-                             "[Desktop Entry]~@
-                         Name=Manuskript~@
-                         MimeType=application/x-manuskript-book;~@
-                         Exec=~a/bin/manuskript %f~@
-                         Comment=Tool for writers~@
-                         Comment[es]=Herramienta para escritores/as~@
-                         Keywords=manuskript;office;write;edit;novel;text;msk~@
-                         Terminal=false~@
-                         Type=Application~@
-                         Icon=manuskript~@
-                         Categories=Office;WordProcessor;~%"
-                             out))))
+                 (make-desktop-entry-file (string-append apps "/manuskript.desktop")
+                   #:name "Manuskript"
+                   #:mime-type "application/x-manuskript-book;"
+                   #:exec (string-append out "/bin/manuskript %f")
+                   #:comment '((#f "Tool for writers")
+                               ("es" "Herramienta para escritores/as"))
+                   #:keywords "manuskript;office;write;edit;novel;text;msk"
+                   #:terminal #f
+                   #:type "Application"
+                   #:icon "manuskript"
+                   #:categories "Office;WordProcessor;"))
                #t))))))
     (inputs
-     `(("ghc-pandoc" ,ghc-pandoc)
+     `(("pandoc" ,pandoc)
        ("python-lxml" ,python-lxml)
        ("python-markdown" ,python-markdown)
        ("python-pyqt" ,python-pyqt)
@@ -657,7 +708,7 @@ in plain text file format.")
 (define-public editorconfig-core-c
   (package
     (name "editorconfig-core-c")
-    (version "0.12.3")
+    (version "0.12.4")
     (source
       (origin
         (method git-fetch)
@@ -666,8 +717,7 @@ in plain text file format.")
                (commit (string-append "v" version))))
         (file-name (git-file-name name version))
         (sha256
-         (base32
-          "0jkc69r4jwn4rih6h6cqvgljjc3ff49cxj8286mi515aczr48cm1"))))
+         (base32 "1311fhh2jfsja2hhk3nwb6nijlq03jw8dk35cwbrac0p9jvy03jx"))))
     (build-system cmake-build-system)
     (arguments
      '(#:phases
@@ -676,17 +726,25 @@ in plain text file format.")
            (lambda* (#:key inputs #:allow-other-keys)
              (let ((tests (assoc-ref inputs "tests")))
                (copy-recursively tests "tests"))
-             #t)))))
+             #t))
+         (add-after 'install 'delete-static-library
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (lib (string-append out "/lib")))
+               (with-directory-excursion lib
+                 (delete-file "libeditorconfig_static.a"))
+               #t))))))
     (native-inputs
-     `(("tests" ,(origin
-                   (method git-fetch)
-                   (uri (git-reference
-                          (url "https://github.com/editorconfig/editorconfig-core-test")
-                          (commit "6ea1d8ece62cac9cf72c79dce4879b046abe1fe7"))) ; matches version
-                   (file-name (git-file-name "editorconfig-core-test" version))
-                   (sha256
-                    (base32
-                     "1sf6910idnd4bgzbj8w8f9ldsbkaqa0lh6syymwy3hfqda63acj7"))))))
+     `(("tests"
+        ,(origin
+           (method git-fetch)
+           (uri (git-reference
+                 (url "https://github.com/editorconfig/editorconfig-core-test")
+                 ;; The tests submodule commit matching this package's version.
+                 (commit "48610d43b7455af12195473377f93c4ceea654f5")))
+           (file-name (git-file-name "editorconfig-core-test" version))
+           (sha256
+            (base32 "1s29p4brmcsc3xsww3gk85dg45f1kk3iykh1air3ij0hymf5dyqy"))))))
     (inputs
      `(("pcre2" ,pcre2)))
     (home-page "https://editorconfig.org/")
@@ -701,14 +759,14 @@ editors.")
 (define-public texmacs
   (package
     (name "texmacs")
-    (version "1.99.13")
+    (version "1.99.16")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://www.texmacs.org/Download/ftp/tmftp/"
                            "source/TeXmacs-" version "-src.tar.gz"))
        (sha256
-        (base32 "1d590yyanh2ar88pd0ns4mf616bq1lq4cwg93m863anhir5irb82"))))
+        (base32 "118sk75k0k9pkyfyx000n2ypab8vm1lz5zxkkdmsi5nwyr3rp56s"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
@@ -718,7 +776,8 @@ editors.")
        ("guile" ,guile-1.8)
        ("perl" ,perl)
        ("python" ,python-wrapper)
-       ("qt" ,qtbase)))
+       ("qt" ,qtbase)
+       ("qtsvg" ,qtsvg)))
     (arguments
      `(#:tests? #f                      ; no check target
        #:phases
@@ -730,6 +789,14 @@ editors.")
                  (("/usr/share")
                   (string-append out "/share")))
                #t)))
+         (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)
+               #t)))
          (add-before 'configure 'gzip-flags
            (lambda _
              (substitute* "Makefile.in"
@@ -747,14 +814,14 @@ Octave.  TeXmacs is completely extensible via Guile.")
 (define-public scintilla
   (package
     (name "scintilla")
-    (version "4.4.4")
+    (version "4.4.6")
     (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 "1zjsb6iiqi4cw9r9md3xv8qyy86ssz11p680xn7vmllrxshxvs8y"))))
+        (base32 "1p62dq2fgdkvdn2clz1xjdj09acv87rbifl67zhlz7skqip31y9d"))))
     (build-system gnu-build-system)
     (arguments
      `(#:make-flags (list "GTK3=1" "CC=gcc" "-Cgtk")
@@ -793,14 +860,14 @@ and multiple fonts.")
 (define-public geany
   (package
     (name "geany")
-    (version "1.36")
+    (version "1.37.1")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://download.geany.org/"
                            "geany-" version ".tar.bz2"))
        (sha256
-        (base32 "0gnm17cr4rf3pmkf0axz4a0fxwnvp55ji0q0lzy88yqbshyxv14i"))))
+        (base32 "060sachn33xpx3a609f09y97qq5ky17gvv686zbvrn618ij7bi8q"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("autoconf" ,autoconf)
@@ -903,7 +970,7 @@ card.  It offers:
 (define-public ne
   (package
     (name "ne")
-    (version "3.2.1")
+    (version "3.3.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -912,7 +979,7 @@ card.  It offers:
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0h6d08cnwrk96ss83i9bragwwanph6x54sm3ak1z81146dsqsiif"))))
+                "01aglnsfljlvx0wvyvpjfn4y88jf450a06qnj9a8lgdqv1hdkq1a"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("perl" ,perl)
@@ -973,3 +1040,42 @@ files.  It was originally developed on the Amiga 3000T.")
 systems that displays its buffer(s) as a hex dump.  The user interface is kept
 similar to vi/ex.")
     (license license:bsd-3)))
+
+(define-public virtaal
+  (package
+    (name "virtaal")
+    (version "0.7.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://sourceforge/translate/Virtaal/"
+                                  version "/virtaal-" version ".tar.bz2"))
+              (sha256
+               (base32
+                "0cyimjp3191qlmw6n0ipqdr9xr0cq4f6dqvz4rl9q31h6l3kywf9"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:python ,python-2
+       #:use-setuptools? #f
+       #:tests? #f ;; Failing tests
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'build 'configure
+           (lambda* (#:key outputs #:allow-other-keys)
+             ;; Set data file path to absolute store path.
+             (substitute* "virtaal/common/pan_app.py"
+               (("file_discovery\\.get_abs_data_filename.*")
+                (string-append "os.path.join('"
+                               (assoc-ref outputs "out")
+                               "/share', *path_parts)"))))))))
+    (inputs
+     `(("python2-lxml" ,python2-lxml)
+       ("python2-pygtk" ,python2-pygtk)
+       ("python2-simplejson" ,python2-simplejson)
+       ("python2-translate-toolkit" ,python2-translate-toolkit)
+       ("python2-pycurl" ,python2-pycurl)))
+    (synopsis "Graphical translation tool")
+    (description "Virtaal is a powerful yet simple translation tool with an
+uncluttered user interface.  It supports a multitude of translation formats
+provided by the Translate Toolkit, including XLIFF and PO.")
+    (home-page "https://virtaal.translatehouse.org/")
+    (license license:gpl2+)))
diff --git a/gnu/packages/textutils.scm b/gnu/packages/textutils.scm
index 3c765aa887..34da04d0d8 100644
--- a/gnu/packages/textutils.scm
+++ b/gnu/packages/textutils.scm
@@ -1,11 +1,11 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
-;;; Copyright © 2015, 2016, 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2015, 2016 Ben Woodcroft <donttrustben@gmail.com>
 ;;; Copyright © 2015 Roel Janssen <roel@gnu.org>
 ;;; Copyright © 2016 Jelle Licht <jlicht@fsfe.org>
 ;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
-;;; Copyright © 2016, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016 Nikita <nikita@n0.is>
 ;;; Copyright © 2016, 2020 Marius Bakke <marius@gnu.org>
 ;;; Copyright © 2017 Eric Bavier <bavier@member.fsf.org>
@@ -46,11 +46,13 @@
   #:use-module (guix build-system go)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system python)
+  #:use-module (guix utils)
   #:use-module (gnu packages)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages base)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages gcc)
+  #:use-module (gnu packages golang)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages java)
   #:use-module (gnu packages ncurses)
@@ -66,18 +68,19 @@
 (define-public dos2unix
   (package
     (name "dos2unix")
-    (version "7.4.1")
+    (version "7.4.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://waterlan.home.xs4all.nl/dos2unix/"
                            "dos2unix-" version ".tar.gz"))
        (sha256
-        (base32 "08w6yywzirsxq8bh87jycvvw922ybhc2l426j2iqzliyn1h8mm8w"))))
+        (base32 "00dfsf4rfyjb5j12gan8xjiirm0asshdz6dmd3l34a7ays6wadb0"))))
     (build-system gnu-build-system)
     (arguments
-     '(#:make-flags (list "CC=gcc"
-                          (string-append "prefix=" (assoc-ref %outputs "out")))
+     `(#:make-flags
+       (list (string-append "CC=" ,(cc-for-target))
+             (string-append "prefix=" (assoc-ref %outputs "out")))
        #:phases
        (modify-phases %standard-phases
          (delete 'configure)))) ; no configure script
@@ -235,14 +238,25 @@ nested include statements).")
         (base32 "0jiybkb2z58wa2msvllnphr4js2hvjvh988pavb3mzkgr6ihwbkr"))))
     (build-system gnu-build-system)
     (arguments
-     '(#:phases
+     `(#:phases
        (modify-phases %standard-phases
          (replace 'bootstrap
-           (lambda _ (invoke "sh" "reconf"))))))
+           (lambda _ (invoke "sh" "reconf")))
+         (add-after 'set-paths 'hide-default-gcc
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((gcc (assoc-ref inputs "gcc")))
+               ;; Remove the default GCC from CPLUS_INCLUDE_PATH to prevent
+               ;; conflicts with the GCC 5 input.
+               (setenv "CPLUS_INCLUDE_PATH"
+                       (string-join
+                        (delete (string-append gcc "/include/c++")
+                                (string-split (getenv "CPLUS_INCLUDE_PATH") #\:))
+                        ":"))
+               #t))))))
     (native-inputs
      `(("autoconf" ,autoconf)
        ("automake" ,automake)
-       ("gcc" ,gcc-5) ;; doesn't build with later versions
+       ("gcc@5" ,gcc-5) ; doesn't build with later versions
        ("libtool" ,libtool)))
     (home-page "https://github.com/agordon/libgtextutils")
     (synopsis "Gordon's text utils library")
@@ -838,14 +852,14 @@ Filter, list, or split a tar file.
     (name "java-rsyntaxtextarea")
     (version "2.6.1")
     (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/bobbylight/"
-                                  "RSyntaxTextArea/archive/"
-                                  version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/bobbylight/RSyntaxTextArea")
+                     (commit version)))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "0c5mqg2klj5rvf8fhycrli8rf6s37l9p7a8knw9gpp65r1c120q2"))))
+                "0dyflzvxq2wvs0rgqfyi5yzzrb6r4bzw2dm8cl304dakxk38ddys"))))
     (build-system ant-build-system)
     (arguments
      `(;; FIXME: some tests fail because locale resources cannot be found.
@@ -1112,14 +1126,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.2")
+    (version "1.4.3")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "pandocfilters" version))
        (sha256
-        (base32
-         "1a8d9b7s48gmq9zj0pmbyv2sivn5i7m6mybgpkk4jm5vd7hp1pdk"))))
+        (base32 "1sq675dg4barb5949xxz4d5gk2ly524hi1p1xgwb3d1l0nsznqxw"))))
     (build-system python-build-system)
     (home-page "https://github.com/jgm/pandocfilters")
     (synopsis "Python module for writing Pandoc filters")
@@ -1137,7 +1150,7 @@ This package provides Python bindings.")
 (define-public aha
   (package
     (name "aha")
-    (version "0.5")
+    (version "0.5.1")
     (source
      (origin
        (method git-fetch)
@@ -1145,21 +1158,51 @@ This package provides Python bindings.")
              (url "https://github.com/theZiz/aha")
              (commit version)))
        (sha256
-        (base32
-         "0byml4rmpiaalwx69jcixl3yvpvwmwiss1jzgsqwshilb2p4qnmz"))
+        (base32 "1gywad0rvvz3c5balz8cxsnx0562hj2ngzqyr8zsy2mb4pn0lpgv"))
        (file-name (git-file-name name version))))
     (build-system gnu-build-system)
     (arguments
-     '(#:phases
+     `(#:phases
        (modify-phases %standard-phases
          (delete 'configure))
-       #:make-flags (list "CC=gcc"
+       #:make-flags (list (string-append "CC=" ,(cc-for-target))
                           (string-append "PREFIX="
                                          (assoc-ref %outputs "out")))
-       ;; no check target
-       #:tests? #f))
+       #:tests? #f))                    ; no test suite
     (home-page "https://github.com/theZiz/aha")
     (synopsis "Converts terminal escape sequences to HTML")
     (description "@command{aha} (Ansi Html Adapter) converts ANSI escape sequences
 of a Unix terminal to HTML code.")
     (license (list license:lgpl2.0+ license:mpl1.1))))
+
+(define-public go-github-com-errata-ai-vale
+  (package
+    (name "go-github-com-errata-ai-vale")
+    (version "2.4.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/errata-ai/vale")
+             (commit (string-append "v" version))))
+       (sha256
+        (base32 "0d07fwha2220m8j24h527xl0gnl3svvyaywflgk5292d6g49ach2"))
+       (file-name (git-file-name name version))))
+    (build-system go-build-system)
+    (native-inputs
+     `(("github.com/sp13/afero" ,go-github-com-spf13-afero)
+       ("github.com/urfave/cli" ,go-github-com-urfave-cli)
+       ("github.com/olekukonko/tablewriter" ,go-github-com-olekukonko-tablewriter)
+       ("github.com/mitchellh/mapstructure" ,go-github-com-mitchellh-mapstructure)))
+    (arguments
+     `(#:import-path "github.com/errata-ai/vale"
+       #:install-source? #f))
+    (home-page "https://github.com/errata-ai/vale")
+    (synopsis "Fully customizable syntax-aware linter that focuses on your style")
+    (description
+     "Vale is a fully extensible linter that focuses on your own writing style
+by making use of rules in individual YAML files.  It is syntax-aware on markup
+languages such as HTML, Markdown, Asciidoc, and reStructuredText.  The community
+around it also has a list of style guides implemented with Vale in
+@url{https://github.com/errata-ai/styles, their styles repo}.")
+    (license license:expat)))
diff --git a/gnu/packages/time.scm b/gnu/packages/time.scm
index e396412e47..c1c46a5f2d 100644
--- a/gnu/packages/time.scm
+++ b/gnu/packages/time.scm
@@ -17,6 +17,7 @@
 ;;; Copyright © 2019 Kyle Meyer <kyle@kyleam.com>
 ;;; Copyright © 2019 Pierre Langlois <pierre.langlois@gmx.com>
 ;;; Copyright © 2020 Lars-Dominik Braun <ldb@leibniz-psychology.org>
+;;; Copyright © 2020 Tanguy Le Carrour <tanguy@bioneland.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -140,13 +141,13 @@ saving time.  Almost all of the Olson timezones are supported.")
 (define-public python-pendulum
   (package
     (name "python-pendulum")
-    (version "2.1.1")
+    (version "2.1.2")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "pendulum" version))
        (sha256
-        (base32 "1w4an6ki3l1pc36m2f2xiglaw5czmj9b4imbigln9z6mlnkkjxyr"))))
+        (base32 "01zjc245w08j0xryrgrq9vng59q1cl5ry0hcpw5rj774pyhhqsmh"))))
     (build-system python-build-system)
     ;; XXX: The PyPI distribution lacks tests, and the upstream repository
     ;; lacks a setup.py!
@@ -399,21 +400,31 @@ timestamps.")
 (define-public python-arrow
   (package
     (name "python-arrow")
-    (version "0.10.0")
+    (version "0.17.0")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "arrow" version))
               (sha256
                (base32
-                "08n7q2l69hlainds1byd4lxhwrq7zsw7s640zkqc3bs5jkq0cnc0"))))
+                "1m3fpz96w3g08i9x9cpqh3cr795y9zbj1bfnay3ccdhxv86d227z"))))
     (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda _
+             (invoke "pytest" "-vv" "tests"))))))
     (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)))
     (propagated-inputs
-     `(("python-dateutil" ,python-dateutil)))
-    (home-page "https://github.com/crsmithdev/arrow/")
+     `(("python-dateutil" ,python-dateutil)
+       ("python-pytz" ,python-pytz)))
+    (home-page "https://github.com/arrow-py/arrow")
     (synopsis "Dates and times for Python")
     (description
      "Arrow is a Python library to creating, manipulating, formatting and
diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm
index 408a9e1e67..8e438e3a54 100644
--- a/gnu/packages/tls.scm
+++ b/gnu/packages/tls.scm
@@ -4,13 +4,13 @@
 ;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net>
 ;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2015 David Thompson <davet@gnu.org>
-;;; Copyright © 2015, 2016, 2017, 2018, 2019 Leo Famulari <leo@famulari.name>
+;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2016, 2017, 2019 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016, 2017, 2018 Nikita <nikita@n0.is>
 ;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com>
 ;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2017, 2018, 2019, 2020 Marius Bakke <mbakke@fastmail.com>
-;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017–2019, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com>
 ;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
 ;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
@@ -125,15 +125,14 @@ in intelligent transportation networks.")
 (define-public p11-kit
   (package
     (name "p11-kit")
-    (version "0.23.20")
+    (version "0.23.22")
     (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
-        "0131maw666ha4d6iyj13fkz18c4pnb3lw2xwv5kvkmnzqcj61n0l"))))
+       (base32 "1dn6br4v033d3gp2max9lsr3y4q0nj6iyr1yq3kzi8ym7lal13wa"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
@@ -166,7 +165,7 @@ living in the same process.")
   (package
     (name "gnutls")
     ;; XXX Unversion openconnect's "gnutls" input when ungrafting.
-    (replacement gnutls-3.6.14)
+    (replacement gnutls/fixed)
     (version "3.6.12")
     (source (origin
              (method url-fetch)
@@ -182,7 +181,8 @@ living in the same process.")
                "0jvca1qahn9lrwv6f5kfs95icirc15b2a8x9fzczyj996ipg3b5z"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:tests? ,(not (hurd-target?))
+     `(#:tests? ,(not (or (%current-target-system)
+                          (hurd-target?)))
        ;; Ensure we don't keep a reference to net-tools.
        #:disallowed-references ,(if (hurd-target?) '() (list net-tools))
        #:configure-flags
@@ -254,10 +254,11 @@ required structures.")
     (properties '((ftp-server . "ftp.gnutls.org")
                   (ftp-directory . "/gcrypt/gnutls")))))
 
-(define-public gnutls-3.6.14
+;; Replacement package to fix multiple security vulnerabilities.
+(define-public gnutls/fixed
   (package
     (inherit gnutls)
-    (version "3.6.14")
+    (version "3.6.15")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnupg/gnutls/v"
@@ -267,7 +268,7 @@ required structures.")
                                        "gnutls-cross.patch"))
               (sha256
                (base32
-                "0qwxsfizynly0ns537vnhnlm5lh03la4vbsmz675n0n7vqd7ac2n"))))
+                "0n0m93ymzd0q9hbknxc2ycanz49sqlkyyf73g9fk7n787llc7a0f"))))
     (native-inputs
      `(,@(if (%current-target-system)             ;for cross-build
              `(("guile" ,guile-3.0))              ;to create .go files
@@ -286,7 +287,7 @@ required structures.")
   ;; Authentication of Named Entities.  This is required for GNS functionality
   ;; by GNUnet and gnURL.  This is done in an extra package definition
   ;; to have the choice between GnuTLS with Dane and without Dane.
-  (package/inherit gnutls
+  (package/inherit gnutls/fixed
     (name "gnutls-dane")
     (inputs `(("unbound" ,unbound)
               ,@(package-inputs gnutls)))))
@@ -306,7 +307,7 @@ required structures.")
   (package
    (name "openssl")
    (version "1.1.1f")
-   (replacement openssl-1.1.1g)
+   (replacement openssl-1.1.1i)
    (source (origin
              (method url-fetch)
              (uri (list (string-append "https://www.openssl.org/source/openssl-"
@@ -334,25 +335,33 @@ required structures.")
       #:disallowed-references ,(list (canonical-package perl))
       #:phases
       (modify-phases %standard-phases
-	,@(if (%current-target-system)
-	      '((add-before
-		    'configure 'set-cross-compile
-		  (lambda* (#:key target outputs #:allow-other-keys)
-		    (setenv "CROSS_COMPILE" (string-append target "-"))
-		    (setenv "CONFIGURE_TARGET_ARCH"
-			    (cond
-			     ((string-prefix? "i586" target)
-			      "hurd-x86")
-			     ((string-prefix? "i686" target)
-			      "linux-x86")
-			     ((string-prefix? "x86_64" target)
-			      "linux-x86_64")
-			     ((string-prefix? "arm" target)
-			      "linux-armv4")
-			     ((string-prefix? "aarch64" target)
-			      "linux-aarch64")))
-		    #t)))
-	      '())
+       ,@(if (%current-target-system)
+           '((add-before
+               'configure 'set-cross-compile
+               (lambda* (#:key target outputs #:allow-other-keys)
+                 (setenv "CROSS_COMPILE" (string-append target "-"))
+                 (setenv "CONFIGURE_TARGET_ARCH"
+                         (cond
+                           ((string-prefix? "i586" target)
+                            "hurd-x86")
+                           ((string-prefix? "i686" target)
+                            "linux-x86")
+                           ((string-prefix? "x86_64" target)
+                            "linux-x86_64")
+                           ((string-prefix? "mips64el" target)
+                            "linux-mips64")
+                           ((string-prefix? "arm" target)
+                            "linux-armv4")
+                           ((string-prefix? "aarch64" target)
+                            "linux-aarch64")
+                           ((string-prefix? "powerpc64le" target)
+                            "linux-ppc64le")
+                           ((string-prefix? "powerpc64" target)
+                            "linux-ppc64")
+                           ((string-prefix? "powerpc" target)
+                            "linux-ppc")))
+                 #t)))
+           '())
         (replace 'configure
           (lambda* (#:key outputs #:allow-other-keys)
             (let* ((out (assoc-ref outputs "out"))
@@ -363,8 +372,8 @@ required structures.")
                  (string-append (assoc-ref %build-inputs "coreutils")
                                 "/bin/env")))
               (invoke ,@(if (%current-target-system)
-			    '("./Configure")
-			    '("./config"))
+                          '("./Configure")
+                          '("./config"))
                       "shared"       ;build shared libraries
                       "--libdir=lib"
 
@@ -376,9 +385,9 @@ required structures.")
 
                       (string-append "--prefix=" out)
                       (string-append "-Wl,-rpath," lib)
-		      ,@(if (%current-target-system)
-			    '((getenv "CONFIGURE_TARGET_ARCH"))
-			    '())))))
+                      ,@(if (%current-target-system)
+                          '((getenv "CONFIGURE_TARGET_ARCH"))
+                          '())))))
         (add-after 'install 'move-static-libraries
           (lambda* (#:key outputs #:allow-other-keys)
             ;; Move static libraries to the "static" output.
@@ -430,10 +439,10 @@ required structures.")
    (license license:openssl)
    (home-page "https://www.openssl.org/")))
 
-(define openssl-1.1.1g
+(define openssl-1.1.1i
   (package
    (inherit openssl)
-   (version "1.1.1g")
+   (version "1.1.1i")
    (source (origin
              (method url-fetch)
              (uri (list (string-append "https://www.openssl.org/source/openssl-"
@@ -446,7 +455,7 @@ required structures.")
              (patches (search-patches "openssl-1.1-c-rehash-in.patch"))
              (sha256
               (base32
-               "0ikdcc038i7jk8h7asq5xcn8b1xc2rrbc88yfm4hqbz3y5s4gc6x"))))))
+               "0hjj1phcwkz69lx1lrvr9grhpl4y529mwqycqc1hdla1zqsnmgp8"))))))
 
 (define-public openssl-1.0
   (package
@@ -544,18 +553,18 @@ required structures.")
 (define-public libressl
   (package
     (name "libressl")
-    (version "3.0.2")
+    (version "3.1.5")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://openbsd/LibreSSL/"
                                   "libressl-" version ".tar.gz"))
               (sha256
                (base32
-                "13ir2lpxz8y1m151k7lrx306498nzfhwlvgkgv97v5cvywmifyyz"))))
+                "1504a1sf43frw43j14pij0q1f48rm5q86ggrlxxhw708qp7ds4rc"))))
     (build-system gnu-build-system)
     (arguments
-     ;; Do as if 'getentropy' was missing since older Linux kernels lack it
-     ;; and libc would return ENOSYS, which is not properly handled.
+     ;; Do as if 'getentropy' were missing: Linux kernels before 3.17 lack its
+     ;; underlying 'getrandom' system call and ENOSYS isn't properly handled.
      ;; See <https://lists.gnu.org/archive/html/guix-devel/2017-04/msg00235.html>.
      '(#:configure-flags '("ac_cv_func_getentropy=no"
                            ;; Provide a TLS-enabled netcat.
@@ -586,13 +595,13 @@ netcat implementation that supports TLS.")
   (package
     (name "python-acme")
     ;; Remember to update the hash of certbot when updating python-acme.
-    (version "1.3.0")
+    (version "1.10.1")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "acme" version))
               (sha256
                (base32
-                "03fjmg0fgfy7xfn3i8rzn9i0i4amajmijkash84qb8mlphgrxpn0"))))
+                "1n1g29f3qzy77xn06dss9nc92wndgm8phgjrvx740sy9xnd5bfzw"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -643,7 +652,7 @@ netcat implementation that supports TLS.")
               (uri (pypi-uri "certbot" version))
               (sha256
                (base32
-                "1n5i0k6kwmd6wvivshfl3k4djwcpwx390c39xmr2hhrgpk5r285w"))))
+                "1dww9m1a2p3a9vpxs5j29f8cdkqywqb4j70z3cnkpl7017yf77hd"))))
     (build-system python-build-system)
     (arguments
      `(,@(substitute-keyword-arguments (package-arguments python-acme)
@@ -949,7 +958,7 @@ coding footprint.")
 (define-public dehydrated
   (package
     (name "dehydrated")
-    (version "0.6.5")
+    (version "0.7.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -957,7 +966,7 @@ coding footprint.")
                     "v" version "/dehydrated-" version ".tar.gz"))
               (sha256
                (base32
-                "0dgskgbdd95p13jx6s13p77y15wngb5cm6p4305cf2s54w0bvahh"))))
+                "1yf4kldyd5y13r6qxrkcbbk74ykngq7jzy0351vb2r3ywp114pqw"))))
     (build-system trivial-build-system)
     (arguments
      `(#:modules ((guix build utils)
diff --git a/gnu/packages/tmux.scm b/gnu/packages/tmux.scm
index c81b526999..95a31f80fd 100644
--- a/gnu/packages/tmux.scm
+++ b/gnu/packages/tmux.scm
@@ -43,7 +43,7 @@
 (define-public tmux
   (package
     (name "tmux")
-    (version "3.1b")
+    (version "3.1c")
     (source (origin
              (method url-fetch)
              (uri (string-append
@@ -51,7 +51,7 @@
                     version "/tmux-" version ".tar.gz"))
              (sha256
               (base32
-               "1fbd93hzaz64h7j0h9nsll29avbq1ikqa438wrgsf1dga0fkagyr"))))
+               "11l3r337ly2wxwdrgjg19bdxkbqpagqaykrdj2hk7vvv8hh753wi"))))
     (build-system gnu-build-system)
     (inputs
      `(("libevent" ,libevent)
@@ -145,7 +145,7 @@ windows.")
 (define-public python-libtmux
   (package
     (name "python-libtmux")
-    (version "0.8.2")
+    (version "0.8.5")
     (source
      (origin
        (method git-fetch)
@@ -155,8 +155,7 @@ windows.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32
-         "1akjv6aqpc690c4l2cjh0fxbpxxg63sfjggapfjjjaqmcl38g1dz"))))
+        (base32 "1vrd99kl2gsk49mvbp6k7l1k7r96vf1fczsqclb62yd4hdpp7zaa"))))
     (build-system python-build-system)
     (propagated-inputs
      `(("procps" ,procps)))             ;tests need top
@@ -172,6 +171,8 @@ windows.")
              (setenv "PYTHONPATH"
                      (string-append (getcwd) "/build/lib:"
                                     (getenv "PYTHONPATH")))
+             ;; Fix <https://github.com/tmux-python/libtmux/issues/265>.
+             (setenv "LANG" "en_US.utf8")
              ;; Skip tests that I suspect fail because of a change
              ;; in behavior in tmux 3 from tmux 2
              ;; https://github.com/tmux-python/libtmux/issues/281
diff --git a/gnu/packages/tor.scm b/gnu/packages/tor.scm
index c852c54a5b..e2ce7afe9d 100644
--- a/gnu/packages/tor.scm
+++ b/gnu/packages/tor.scm
@@ -54,14 +54,14 @@
 (define-public tor
   (package
     (name "tor")
-    (version "0.4.3.6")
+    (version "0.4.4.6")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://dist.torproject.org/tor-"
                                  version ".tar.gz"))
              (sha256
               (base32
-               "0qmcrkjip0ywq77232m73pjwqiaj0q2klwklqlpbw575shvhcbba"))))
+               "1p0zpqmbskygx0wmiijhprg8r45n2wqbbjl7kv4gbb83b0alq5az"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags
@@ -155,7 +155,7 @@ rejects UDP traffic from the application you're using.")
 (define-public privoxy
   (package
     (name "privoxy")
-    (version "3.0.28")
+    (version "3.0.29")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://sourceforge/ijbswa/Sources/"
@@ -163,7 +163,7 @@ rejects UDP traffic from the application you're using.")
                                  version "-stable-src.tar.gz"))
              (sha256
               (base32
-               "0jl2yav1qzqnaqnnx8i6i53ayckkimcrs3l6ryvv7bda6v08rmxm"))))
+               "17a8fbdyb0ixc0wwq68fg7xn7l6n7jq67njpq93psmxgzng0dii5"))))
     (build-system gnu-build-system)
     (arguments
      '(;; The default 'sysconfdir' is $out/etc; change that to
@@ -171,7 +171,9 @@ rejects UDP traffic from the application you're using.")
        #:configure-flags (list (string-append "--sysconfdir="
                                               (assoc-ref %outputs "out")
                                               "/etc/privoxy")
-                               "--localstatedir=/var")
+                               "--localstatedir=/var"
+                               "--with-brotli"
+                               "--with-openssl")
        #:tests? #f                      ; no test suite
        #:phases
        (modify-phases %standard-phases
@@ -193,8 +195,10 @@ rejects UDP traffic from the application you're using.")
                  (("^logfile") "#logfile")))
              #t)))))
     (inputs
-     `(("w3m" ,w3m)
+     `(("brotli" ,brotli)
+       ("openssl" ,openssl)
        ("pcre" ,pcre)
+       ("w3m" ,w3m)
        ("zlib" ,zlib)))
     (native-inputs
      `(("autoconf" ,autoconf)
@@ -249,7 +253,7 @@ networks.")
     (native-inputs
      `(("python-pytest" ,python-pytest)))
     (inputs
-     `(("python-pycrypto" ,python-pycrypto)
+     `(("python-pycryptodome" ,python-pycryptodome)
        ("python-flask" ,python-flask)
        ("python-flask-httpauth" ,python-flask-httpauth)
        ("python-nautilus" ,python-nautilus)
diff --git a/gnu/packages/toys.scm b/gnu/packages/toys.scm
index 459c0c4953..6387e84a3d 100644
--- a/gnu/packages/toys.scm
+++ b/gnu/packages/toys.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017, 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2019 Jesse Gibbons <jgibbons2357+guix@gmail.com>
 ;;; Copyright © 2019, 2020 Timotej Lazar <timotej.lazar@araneo.si>
 ;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
@@ -32,7 +32,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 sl
   (package
@@ -77,52 +78,51 @@ typing @command{sl} instead of @command{ls}.")
                                    "See LICENSE in the distribution."))))
 
 (define-public filters
-  (let ((version "2.55")
-        (commit "c5c291916b52ed9e6418448a8eee30475fb9adcf"))
-    (package
-      (name "filters")
-      (version "2.55")
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://git.joeyh.name/filters")
-               (commit commit)))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32 "1gaigpda1w9wxfh8an3sam1hpacc1bhxl696w4yj0vzhc6izqvxs"))
-         (modules '((guix build utils)))
-         (snippet '(begin
-                     ;; kenny is under nonfree Artistic License (Perl) 1.0.
-                     (delete-file "kenny")
-                     (substitute* "Makefile"
-                       (("kenny")
-                        ""))))))
-      (build-system gnu-build-system)
-      (arguments
-       `(#:make-flags
-         (list "CC=gcc" (string-append "DESTDIR=" %output))
-         #:phases
-         (modify-phases %standard-phases
-           (delete 'configure)
-           (add-after 'unpack 'fix-install-directories
-             (lambda _
-               (substitute* "Makefile"
-                 (("/usr/games")
-                  "/bin/")
-                 (("/usr/share/")
-                  "/share/"))
-               #t)))
-         #:tests? #f))                  ; no test suite
-      (native-inputs
-       `(("bison" ,bison)
-         ("flex" ,flex)))
-      (inputs
-       `(("perl" ,perl)))
-      (home-page "https://joeyh.name/code/filters/")
-      (synopsis "Various amusing text filters")
-      (description
-       "The filters collection harks back to the late 1980s, when various text
+  (package
+    (name "filters")
+    (version "2.55")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "git://git.joeyh.name/filters")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1gaigpda1w9wxfh8an3sam1hpacc1bhxl696w4yj0vzhc6izqvxs"))
+       (modules '((guix build utils)))
+       (snippet '(begin
+                   ;; kenny is under nonfree Artistic License (Perl) 1.0.
+                   (delete-file "kenny")
+                   (substitute* "Makefile"
+                     (("kenny")
+                      ""))))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:make-flags
+       (list (string-append "CC=" ,(cc-for-target))
+             (string-append "prefix=" (assoc-ref %outputs "out")))
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (add-after 'unpack 'respect-prefix
+           (lambda _
+             (substitute* "Makefile"
+               (("/usr/games")
+                "$(prefix)/bin/")
+               (("/usr")
+                "$(prefix)"))
+             #t)))
+       #:tests? #f))                    ; no test suite
+    (native-inputs
+     `(("bison" ,bison)
+       ("flex" ,flex)))
+    (inputs
+     `(("perl" ,perl)))
+    (home-page "https://joeyh.name/code/filters/")
+    (synopsis "Various amusing text filters")
+    (description
+     "The filters collection harks back to the late 1980s, when various text
 filters were written to munge written language in amusing ways.  The earliest
 and best known were legends such as the Swedish Chef filter and B1FF.
 
@@ -156,13 +156,13 @@ This package contains the following filter commands:
 @end enumerate
 
 The GNU project hosts a similar collection of filters, the GNU talkfilters.")
-      (license                    ; see debian/copyright
-       (list license:gpl2+        ; most of the filters
-             license:gpl2         ; rasterman, ky00te.dir/* nethackify, pirate
-             license:gpl3+        ; scramble, scottish
-             license:public-domain      ; jethro, kraut, ken, studly
-             license:gpl1+         ; cockney, jive, nyc only say "gpl"
-             license:expat)))))    ; newspeak
+    (license                      ; see debian/copyright
+     (list license:gpl2+          ; most of the filters
+           license:gpl2           ; rasterman, ky00te.dir/* nethackify, pirate
+           license:gpl3+          ; scramble, scottish
+           license:public-domain  ; jethro, kraut, ken, studly
+           license:gpl1+          ; cockney, jive, nyc only say "gpl"
+           license:expat))))     ; newspeak
 
 (define-public xsnow
   (package
diff --git a/gnu/packages/tryton.scm b/gnu/packages/tryton.scm
index a2952f2b80..3809b986d5 100644
--- a/gnu/packages/tryton.scm
+++ b/gnu/packages/tryton.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2017 Adriano Peluso <catonano@gmail.com>
+;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -22,38 +23,40 @@
   #:use-module (gnu packages check)
   #:use-module (gnu packages databases)
   #:use-module (gnu packages finance)
+  #:use-module (gnu packages glib)
+  #:use-module (gnu packages gnome)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages python-crypto)
   #:use-module (gnu packages python-web)
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages time)
   #:use-module (gnu packages xml)
   #:use-module (guix packages)
   #:use-module (guix download)
+  #:use-module (guix utils)
   #:use-module (guix build-system python))
 
 (define-public python-trytond
   (package
     (name "python-trytond")
-    (version "4.6.2")
+    (version "5.6.5")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "trytond" version))
        (sha256
-        (base32
-         "0asc3pd37h8ky8j66iqxr0fv0k6mpjcwxwm0xgm5hrdi32l5cdda"))))
+        (base32 "1n76ccv2x5csz80p42dav8rhzg2m14wdi3bj1pizhw8x2hxxfwx3"))))
     (build-system python-build-system)
     (inputs
      `(("python-dateutil" ,python-dateutil)
        ("python-genshi" ,python-genshi)
-       ("python-polib" ,python-polib)
+       ("python-lxml" ,python-lxml)
        ("python-magic" ,python-magic)
-       ;; there's no python-mysql in Guix right now
-       ;; so python-psycopg2 (postgresql) only for now
+       ("python-passlib" ,python-passlib)
+       ("python-polib" ,python-polib)
        ("python-psycopg2" ,python-psycopg2)
        ("python-relatorio" ,python-relatorio)
-       ("python-lxml" ,python-lxml)
        ("python-sql" ,python-sql)
        ("python-werkzeug" ,python-werkzeug)
        ("python-wrapt" ,python-wrapt)))
@@ -65,6 +68,7 @@
          (add-before 'check 'preparations
            (lambda _
              (setenv "DB_NAME" ":memory:")
+             (setenv "HOME" "/tmp")
              #t)))))
     (home-page "https://www.tryton.org/")
     (synopsis "Server component of Tryton")
@@ -77,125 +81,847 @@ and security.")
 (define-public tryton
   (package
     (name "tryton")
-    (version "4.6.2")
+    (version "5.6.3")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "tryton" version))
        (sha256
-        (base32
-         "0bamr040np02gfjk8c734rw3mbgg75irfgpdcl2npgkdzyw1ksf9"))))
+        (base32 "1dghr6x5wga3sizjvj261xndpl38si5hwiz3llm2bhmg33nplfh7"))))
     (build-system python-build-system)
-    (inputs
-     `(("python2-chardet" ,python2-chardet)
-       ("python2-dateutil" ,python2-dateutil)
-       ("python2-pygtk" ,python2-pygtk)))
     (arguments
-     `(#:python ,python-2))
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-before 'check 'change-home
+           (lambda _
+             ;; Change from /homeless-shelter to /tmp for write permission.
+             (setenv "HOME" "/tmp")))
+         (add-after 'install 'wrap-gi-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/tryton")
+                 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
+             #t)))))
+    (native-inputs
+     `(("glib-compile-schemas" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)))
+    (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)))
     (home-page "https://www.tryton.org/")
     (synopsis "Client component of Tryton")
-    (description "This package is the client component of Tryton.")
+    (description
+     "This package is the client component of Tryton.")
     (license license:gpl3+)))
 
 (define-public python-trytond-country
   (package
-  (name "python-trytond-country")
-  (version "4.6.0")
-  (source
-    (origin
-      (method url-fetch)
-      (uri (pypi-uri "trytond_country" version))
-      (sha256
-        (base32
-          "11c9mw2scbjn7c6yhlwh5ml266f0s31lh4jwj6gh7vl1shs3isr3"))))
-  (build-system python-build-system)
-  (arguments
-   `(#:phases
-     (modify-phases %standard-phases
-       (add-before 'check 'preparations
-         (lambda _
-           (setenv "DB_NAME" ":memory:")
-           #t)))))
-  (propagated-inputs
-   `(("python-trytond" ,python-trytond)
-     ("python-wrapt" ,python-wrapt)
-     ("python-werkzeug" ,python-werkzeug)
-     ("python-sql" ,python-sql)
-     ("python-polib" ,python-polib)
-     ("python-dateutil" ,python-dateutil)
-     ("python-genshi" ,python-genshi)
-     ("python-relatorio" ,python-relatorio)
-     ("python-magic" ,python-magic)))
-  (home-page "http://www.tryton.org/")
-  (synopsis "Tryton module with countries")
-  (description "This package provides a Tryton module with countries.")
-  (license license:gpl3+)))
+    (name "python-trytond-country")
+    (version "5.6.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_country" version))
+       (sha256
+        (base32 "0k1xw5r2pfd5mvvg3pn3vavwjwpgmm5i6nsc8x421znk4gvvns78"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (let ((runtest
+                  (string-append
+                   (assoc-ref %build-inputs "python-trytond")
+                   "/lib/python"
+                   ,(version-major+minor (package-version python))
+                   "/site-packages/trytond/tests/run-tests.py")))
+             (lambda* (#:key inputs outputs #:allow-other-keys)
+               (add-installed-pythonpath inputs outputs)
+               ;; Doctest contains one test that requires internet access.
+               (invoke "python" runtest "-m" "country" "--no-doctest")))))))
+    (native-inputs
+     `(("python" ,python)
+       ("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-proteus" ,python-proteus)
+       ("python-relatorio" ,python-relatorio)
+       ("python-sql" ,python-sql)
+       ("python-werkzeug" ,python-werkzeug)
+       ("python-wrapt" ,python-wrapt)))
+    (propagated-inputs
+     `(("python-pycountry" ,python-pycountry)
+       ("python-trytond" ,python-trytond)))
+    (home-page "http://www.tryton.org/")
+    (synopsis "Tryton module with countries")
+    (description
+     "This package provides a Tryton module with countries.")
+    (license license:gpl3+)))
 
 (define-public python-trytond-party
   (package
     (name "python-trytond-party")
-    (version "4.6.0")
+    (version "5.6.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "trytond_party" version))
        (sha256
-        (base32
-         "0fbf4kxywiglcdsx9ppjg7nxw87915mb6bpn1jn652gk949rdww5"))))
+        (base32 "0wh7g1g67g4vwxm797ra6fkfvmd3w77vl7nxj76y856cy217gbzp"))))
     (build-system python-build-system)
-    ;; XXX The tests seem to require Proteus. But Proteus tests seem to
-    ;; require trytond-party.
     (arguments
-     '(#:tests? #f))
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (let ((runtest
+                  (string-append
+                   (assoc-ref %build-inputs "python-trytond")
+                   "/lib/python"
+                   ,(version-major+minor (package-version python))
+                   "/site-packages/trytond/tests/run-tests.py")))
+             (lambda* (#:key inputs outputs #:allow-other-keys)
+               (add-installed-pythonpath inputs outputs)
+               ;; Doctest 'scenario_party_phone_number.rst' fails.
+               (invoke "python" runtest "-m" "party" "--no-doctest")))))))
+    (native-inputs
+     `(("python" ,python-minimal-wrapper)
+       ("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-proteus" ,python-proteus)
+       ("python-relatorio" ,python-relatorio)
+       ("python-werkzeug" ,python-werkzeug)
+       ("python-wrapt" ,python-wrapt)))
     (propagated-inputs
-     `(("python-trytond" ,python-trytond)
-       ("python-trytond-country" ,python-trytond-country)
-       ("python-stdnum" ,python-stdnum)
+     `(("python-sql" ,python-sql)
+       ("python-stnum" ,python-stdnum)
+       ("python-trytond" ,python-trytond)
+       ("python-trytond-country" ,python-trytond-country)))
+    (home-page "https://www.tryton.org/")
+    (synopsis "Tryton module for parties and addresses")
+    (description
+     "This package provides a Tryton module for (counter)parties and
+addresses.")
+    (license license:gpl3+)))
+
+(define-public python-trytond-currency
+  (package
+    (name "python-trytond-currency")
+    (version "5.6.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_currency" version))
+       (sha256
+        (base32 "1x6ynxpbafjpky5vfir9favijj6v5gl62szshladlx14ng6qgm68"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (let ((runtest
+                  (string-append
+                   (assoc-ref %build-inputs "python-trytond")
+                   "/lib/python"
+                   ,(version-major+minor (package-version python))
+                   "/site-packages/trytond/tests/run-tests.py")))
+             (lambda* (#:key inputs outputs #:allow-other-keys)
+               (add-installed-pythonpath inputs outputs)
+               (invoke "python" runtest "-m" "currency")))))))
+    (native-inputs
+     `(("python" ,python-minimal-wrapper)
+       ("python-dateutil" ,python-dateutil)
+       ("python-genshi" ,python-genshi)
+       ("python-forex-python" ,python-forex-python)
+       ("python-lxml" ,python-lxml)
+       ("python-magic" ,python-magic)
+       ("python-passlib" ,python-passlib)
+       ("python-polib" ,python-polib)
+       ("python-proteus" ,python-proteus)
+       ("python-pycountry" ,python-pycountry)
+       ("python-relatorio" ,python-relatorio)
+       ("python-werkzeug" ,python-werkzeug)
+       ("python-wrapt" ,python-wrapt)))
+    (propagated-inputs
+     `(("python-sql" ,python-sql)
+       ("python-trytond" ,python-trytond)))
+    (home-page "https://www.tryton.org/")
+    (synopsis "Tryton module with currencies")
+    (description
+     "This package provides a Tryton module that defines the concepts of
+currency and rate.")
+    (license license:gpl3+)))
+
+(define-public python-trytond-company
+  (package
+    (name "python-trytond-company")
+    (version "5.6.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_company" version))
+       (sha256
+        (base32 "0fa2yswfal1fbmm0ml845lm6bwcm65fln6s1xq1wqi17xqbbx44x"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (let ((runtest
+                  (string-append
+                   (assoc-ref %build-inputs "python-trytond")
+                   "/lib/python"
+                   ,(version-major+minor (package-version python))
+                   "/site-packages/trytond/tests/run-tests.py")))
+             (lambda* (#:key inputs outputs #:allow-other-keys)
+               (add-installed-pythonpath inputs outputs)
+               (invoke "python" runtest "-m" "company")))))))
+    (native-inputs
+     `(("python" ,python-minimal-wrapper)
+       ("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-proteus" ,python-proteus)
+       ("python-relatorio" ,python-relatorio)
        ("python-sql" ,python-sql)
-       ("python-wrapt" ,python-wrapt)
        ("python-werkzeug" ,python-werkzeug)
+       ("python-wrapt" ,python-wrapt)))
+    (propagated-inputs
+     `(("python-trytond" ,python-trytond)
+       ("python-trytond-currency"
+        ,python-trytond-currency)
+       ("python-trytond-party" ,python-trytond-party)))
+    (home-page "https://www.tryton.org/")
+    (synopsis "Tryton module with companies and employees")
+    (description
+     "This package provides a Tryton module that defines the concepts of
+company and employee and extend the user model.")
+    (license license:gpl3+)))
+
+(define-public python-trytond-product
+  (package
+    (name "python-trytond-product")
+    (version "5.6.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_product" version))
+       (sha256
+        (base32 "0k1sw1jfgsm9qhyhv4lzama31db6ccjx5f2a7xw96ypflfl9f1xz"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (let ((runtest
+                  (string-append
+                   (assoc-ref %build-inputs "python-trytond")
+                   "/lib/python"
+                   ,(version-major+minor (package-version python))
+                   "/site-packages/trytond/tests/run-tests.py")))
+             (lambda* (#:key inputs outputs #:allow-other-keys)
+               (add-installed-pythonpath inputs outputs)
+               (invoke "python" runtest "-m" "product")))))))
+    (native-inputs
+     `(("python" ,python-minimal-wrapper)
+       ("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-proteus" ,python-proteus)
+       ("python-relatorio" ,python-relatorio)
+       ("python-werkzeug" ,python-werkzeug)
+       ("python-wrapt" ,python-wrapt)))
+    (propagated-inputs
+     `(("python-sql" ,python-sql)
+       ("python-stdnum" ,python-stdnum)
+       ("python-trytond" ,python-trytond)
+       ("python-trytond-company"
+        ,python-trytond-company)))
+    (home-page "https://www.tryton.org/")
+    (synopsis "Tryton module with products")
+    (description
+     "This package provides a Tryton module that defines two concepts: Product
+Template and Product.")
+    (license license:gpl3+)))
+
+(define-public python-trytond-account
+  (package
+    (name "python-trytond-account")
+    (version "5.6.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_account" version))
+       (sha256
+        (base32 "17q0cxp3vkymbv62ir4c6kg9y8lx8xvz30p0asrbsnbgwl6sjm30"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (let ((runtest
+                  (string-append
+                   (assoc-ref %build-inputs "python-trytond")
+                   "/lib/python"
+                   ,(version-major+minor (package-version python))
+                   "/site-packages/trytond/tests/run-tests.py")))
+             (lambda* (#:key inputs outputs #:allow-other-keys)
+               (add-installed-pythonpath inputs outputs)
+               (invoke "python" runtest "-m" "account")))))))
+    (native-inputs
+     `(("python" ,python-minimal-wrapper)
+       ("python-genshi" ,python-genshi)
+       ("python-lxml" ,python-lxml)
+       ("python-magic" ,python-magic)
+       ("python-passlib" ,python-passlib)
+       ("python-polib" ,python-polib)
+       ("python-proteus" ,python-proteus)
+       ("python-relatorio" ,python-relatorio)
+       ("python-werkzeug" ,python-werkzeug)
+       ("python-wrapt" ,python-wrapt)))
+    (propagated-inputs
+     `(("python-dateutil" ,python-dateutil)
+       ("python-simpleeval" ,python-simpleeval)
+       ("python-sql" ,python-sql)
+       ("python-trytond" ,python-trytond)
+       ("python-trytond-company"
+        ,python-trytond-company)
+       ("python-trytond-currency"
+        ,python-trytond-currency)
+       ("python-trytond-party" ,python-trytond-party)))
+    (home-page "https://www.tryton.org/")
+    (synopsis "Tryton module for accounting")
+    (description
+     "This package provides a Tryton module that defines the fundamentals for
+most of accounting needs.")
+    (license license:gpl3+)))
+
+(define-public python-trytond-analytic-account
+  (package
+    (name "python-trytond-analytic-account")
+    (version "5.6.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_analytic_account" version))
+       (sha256
+        (base32 "02hv3mmhadz248vy4azrw8rs2mwgsixd4cnzsm82z15gjmfxl34q"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (let ((runtest
+                  (string-append
+                   (assoc-ref %build-inputs "python-trytond")
+                   "/lib/python"
+                   ,(version-major+minor (package-version python))
+                   "/site-packages/trytond/tests/run-tests.py")))
+             (lambda* (#:key inputs outputs #:allow-other-keys)
+               (add-installed-pythonpath inputs outputs)
+               (invoke "python" runtest "-m" "analytic_account")))))))
+    (native-inputs
+     `(("python" ,python-minimal-wrapper)
        ("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-proteus" ,python-proteus)
        ("python-relatorio" ,python-relatorio)
+       ("python-werkzeug" ,python-werkzeug)
+       ("python-wrapt" ,python-wrapt)))
+    (propagated-inputs
+     `(("python-sql" ,python-sql)
+       ("python-trytond" ,python-trytond)
+       ("python-trytond-account"
+        ,python-trytond-account)
+       ("python-trytond-company"
+        ,python-trytond-company)
+       ("python-trytond-currency"
+        ,python-trytond-currency)
+       ("python-trytond-party" ,python-trytond-party)))
+    (home-page "https://www.tryton.org/")
+    (synopsis "Tryton module for analytic accounting")
+    (description
+     "This package provides a Tryton module that adds the fundamentals
+required to analyse accounting using multiple different axes.")
+    (license license:gpl3+)))
+
+(define-public python-trytond-account-product
+  (package
+    (name "python-trytond-account-product")
+    (version "5.6.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_account_product" version))
+       (sha256
+        (base32 "0iyk07adixf37jlvn7n27ac12hk23zx09w4s78dr9sfp0lsf8vv8"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (let ((runtest
+                  (string-append
+                   (assoc-ref %build-inputs "python-trytond")
+                   "/lib/python"
+                   ,(version-major+minor (package-version python))
+                   "/site-packages/trytond/tests/run-tests.py")))
+             (lambda* (#:key inputs outputs #:allow-other-keys)
+               (add-installed-pythonpath inputs outputs)
+               (invoke "python" runtest "-m" "account_product")))))))
+    (native-inputs
+     `(("python" ,python-minimal-wrapper)
+       ("python-dateutil" ,python-dateutil)
+       ("python-genshi" ,python-genshi)
+       ("python-lxml" ,python-lxml)
        ("python-magic" ,python-magic)
-       ("python-phonenumbers" ,python-phonenumbers)))
-    (home-page "http://www.tryton.org/")
-    (synopsis
-     "Tryton module for parties and addresses")
+       ("python-passlib" ,python-passlib)
+       ("python-polib" ,python-polib)
+       ("python-proteus" ,python-proteus)
+       ("python-relatorio" ,python-relatorio)
+       ("python-sql" ,python-sql)
+       ("python-werkzeug" ,python-werkzeug)
+       ("python-wrapt" ,python-wrapt)))
+    (propagated-inputs
+     `(("python-trytond" ,python-trytond)
+       ("python-trytond-account"
+        ,python-trytond-account)
+       ("python-trytond-analytic-account"
+        ,python-trytond-analytic-account)
+       ("python-trytond-company"
+        ,python-trytond-company)
+       ("python-trytond-product"
+        ,python-trytond-product)))
+    (home-page "https://www.tryton.org/")
+    (synopsis "Tryton module to add accounting on product")
     (description
-     "This package provides a Tryton module for (counter)parties and
-addresses.")
+     "This package provides a Tryton module that adds accounting on product
+and category.")
     (license license:gpl3+)))
 
-(define-public python-proteus
+(define-public python-trytond-account-invoice
   (package
-    (name "python-proteus")
-    (version "4.6.0")
+    (name "python-trytond-account-invoice")
+    (version "5.6.1")
     (source
      (origin
        (method url-fetch)
-       (uri (pypi-uri "proteus" version))
+       (uri (pypi-uri "trytond_account_invoice" version))
        (sha256
-        (base32
-         "0flkf1vxbhz51b7bq31dn7q9mlkli3pmpbzfhsxfqpf6laghbkqg"))))
+        (base32 "0ic5zghg50m6jwdr88y4vgzy58g1h17b63sbhh61brys1cp2dxhc"))))
     (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (let ((runtest
+                  (string-append
+                   (assoc-ref %build-inputs "python-trytond")
+                   "/lib/python"
+                   ,(version-major+minor (package-version python))
+                   "/site-packages/trytond/tests/run-tests.py")))
+             (lambda* (#:key inputs outputs #:allow-other-keys)
+               (add-installed-pythonpath inputs outputs)
+               (invoke "python" runtest "-m" "account_invoice")))))))
+    (native-inputs
+     `(("python" ,python-minimal-wrapper)
+       ("python-genshi" ,python-genshi)
+       ("python-lxml" ,python-lxml)
+       ("python-magic" ,python-magic)
+       ("python-passlib" ,python-passlib)
+       ("python-polib" ,python-polib)
+       ("python-proteus" ,python-proteus)
+       ("python-relatorio" ,python-relatorio)
+       ("python-werkzeug" ,python-werkzeug)
+       ("python-wrapt" ,python-wrapt)))
     (propagated-inputs
      `(("python-dateutil" ,python-dateutil)
+       ("python-sql" ,python-sql)
+       ("python-trytond" ,python-trytond)
+       ("python-trytond-account"
+        ,python-trytond-account)
+       ("python-trytond-account-product"
+        ,python-trytond-account-product)
+       ("python-trytond-company"
+        ,python-trytond-company)
+       ("python-trytond-currency"
+        ,python-trytond-currency)
        ("python-trytond-party" ,python-trytond-party)
-       ("python-trytond-country" ,python-trytond-country)
+       ("python-trytond-product"
+        ,python-trytond-product)))
+    (home-page "https://www.tryton.org/")
+    (synopsis "Tryton module for invoicing")
+    (description
+     "This package provides a Tryton module that adds the invoice, payment
+term.")
+    (license license:gpl3+)))
+
+(define-public python-trytond-stock
+  (package
+    (name "python-trytond-stock")
+    (version "5.6.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_stock" version))
+       (sha256
+        (base32 "13m57absscks2advpjz0mmmp6c0c4ksf9aln1brqyd0js38arw76"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (let ((runtest
+                  (string-append
+                   (assoc-ref %build-inputs "python-trytond")
+                   "/lib/python"
+                   ,(version-major+minor (package-version python))
+                   "/site-packages/trytond/tests/run-tests.py")))
+             (lambda* (#:key inputs outputs #:allow-other-keys)
+               (add-installed-pythonpath inputs outputs)
+               (invoke "python" runtest "-m" "stock")))))))
+    (native-inputs
+     `(("python" ,python-minimal-wrapper)
+       ("python-genshi" ,python-genshi)
+       ("python-lxml" ,python-lxml)
+       ("python-magic" ,python-magic)
+       ("python-passlib" ,python-passlib)
+       ("python-polib" ,python-polib)
+       ("python-proteus" ,python-proteus)
+       ("python-relatorio" ,python-relatorio)
+       ("python-werkzeug" ,python-werkzeug)
+       ("python-wrapt" ,python-wrapt)))
+    (propagated-inputs
+     `(("python-simpleeval" ,python-simpleeval)
+       ("python-sql" ,python-sql)
        ("python-trytond" ,python-trytond)
-       ("python-stdnum" ,python-stdnum)
+       ("python-trytond-company"
+        ,python-trytond-company)
+       ("python-trytond-currency"
+        ,python-trytond-currency)
+       ("python-trytond-party" ,python-trytond-party)
+       ("python-trytond-product"
+        ,python-trytond-product)))
+    (home-page "https://www.tryton.org/")
+    (synopsis "Tryton module for stock and inventory")
+    (description
+     "This package provides a Tryton module that defines the fundamentals for
+all stock management situations: Locations where products are stored, moves
+between these locations, shipments for product arrivals and departures and
+inventory to control and update stock levels.")
+    (license license:gpl3+)))
+
+(define-public python-trytond-stock-lot
+  (package
+    (name "python-trytond-stock-lot")
+    (version "5.6.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_stock_lot" version))
+       (sha256
+        (base32 "0a0kc8dyx2zw244dhq6lm2jdp1kzpllhdhrmx7kkr9cjhp58rqip"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (let ((runtest
+                  (string-append
+                   (assoc-ref %build-inputs "python-trytond")
+                   "/lib/python"
+                   ,(version-major+minor (package-version python))
+                   "/site-packages/trytond/tests/run-tests.py")))
+             (lambda* (#:key inputs outputs #:allow-other-keys)
+               (add-installed-pythonpath inputs outputs)
+               (invoke "python" runtest "-m" "stock_lot")))))))
+    (native-inputs
+     `(("python" ,python)
+       ("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-proteus" ,python-proteus)
+       ("python-relatorio" ,python-relatorio)
        ("python-sql" ,python-sql)
-       ("python-wrapt" ,python-wrapt)
        ("python-werkzeug" ,python-werkzeug)
+       ("python-wrapt" ,python-wrapt)))
+    (propagated-inputs
+     `(("python-trytond" ,python-trytond)
+       ("python-trytond-product"
+        ,python-trytond-product)
+       ("python-trytond-stock" ,python-trytond-stock)))
+    (home-page "https://www.tryton.org/")
+    (synopsis "Tryton module for lot of products")
+    (description
+     "This package provides a Tryton module that defines lot of products.")
+    (license license:gpl3+)))
+
+(define-public python-trytond-account-invoice-stock
+  (package
+    (name "python-trytond-account-invoice-stock")
+    (version "5.6.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri
+             "trytond_account_invoice_stock"
+             version))
+       (sha256
+        (base32 "1ky39ab8ax7hla5d9qgmp0p4ra4q6n29xc3wba5qdw3ij8wkn96f"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (let ((runtest
+                  (string-append
+                   (assoc-ref %build-inputs "python-trytond")
+                   "/lib/python"
+                   ,(version-major+minor (package-version python))
+                   "/site-packages/trytond/tests/run-tests.py")))
+             (lambda* (#:key inputs outputs #:allow-other-keys)
+               (add-installed-pythonpath inputs outputs)
+               (invoke "python" runtest "-m" "account_invoice_stock")))))))
+    (native-inputs
+     `(("python" ,python-minimal-wrapper)
+       ("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-proteus" ,python-proteus)
+       ("python-relatorio" ,python-relatorio)
+       ("python-sql" ,python-sql)
+       ("python-werkzeug" ,python-werkzeug)
+       ("python-wrapt" ,python-wrapt)))
+    (propagated-inputs
+     `(("python-trytond" ,python-trytond)
+       ("python-trytond-account-invoice"
+        ,python-trytond-account-invoice)
+       ("python-trytond-product"
+        ,python-trytond-product)
+       ("python-trytond-stock" ,python-trytond-stock)))
+    (home-page "https://www.tryton.org/")
+    (synopsis "Tryton module to link stock and invoice")
+    (description
+     "This package provides a Tryton module that adds link between invoice
+lines and stock moves.  The unit price of the stock move is updated with the
+average price of the posted invoice lines that are linked to it.")
+    (license license:gpl3+)))
+
+(define-public python-trytond-stock-supply
+  (package
+    (name "python-trytond-stock-supply")
+    (version "5.6.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_stock_supply" version))
+       (sha256
+        (base32 "0lw7qrg58k5pjpp3nz73rmlm8v086l49ri31ci75calm552zpfay"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (let ((runtest
+                  (string-append
+                   (assoc-ref %build-inputs "python-trytond")
+                   "/lib/python"
+                   ,(version-major+minor (package-version python))
+                   "/site-packages/trytond/tests/run-tests.py")))
+             (lambda* (#:key inputs outputs #:allow-other-keys)
+               (add-installed-pythonpath inputs outputs)
+               (invoke "python" runtest "-m" "stock_supply")))))))
+    (native-inputs
+     `(("python" ,python-minimal-wrapper)
+       ("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-proteus" ,python-proteus)
+       ("python-relatorio" ,python-relatorio)
+       ("python-werkzeug" ,python-werkzeug)
+       ("python-wrapt" ,python-wrapt)))
+    (propagated-inputs
+     `(("python-sql" ,python-sql)
+       ("python-trytond" ,python-trytond)
+       ("python-trytond-account"
+        ,python-trytond-account)
+       ("python-trytond-party" ,python-trytond-party)
+       ("python-trytond-product"
+        ,python-trytond-product)
+       ("python-trytond-purchase"
+        ,python-trytond-purchase)
+       ("python-trytond-purchase-request"
+        ,python-trytond-purchase-request)
+       ("python-trytond-stock" ,python-trytond-stock)))
+    (home-page "https://www.tryton.org/")
+    (synopsis "Tryton module for stock supply")
+    (description
+     "This package provides a Tryton module that adds automatic supply
+mechanisms and introduces the concepts of order point.")
+    (license license:gpl3+)))
+
+(define-public python-trytond-purchase
+  (package
+    (name "python-trytond-purchase")
+    (version "5.6.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_purchase" version))
+       (sha256
+        (base32 "0znjxhhwqlz4sq96ah9g28mvw4w83rhp022h6vihnz64z2ad3p3z"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (let ((runtest
+                  (string-append
+                   (assoc-ref %build-inputs "python-trytond")
+                   "/lib/python"
+                   ,(version-major+minor (package-version python))
+                   "/site-packages/trytond/tests/run-tests.py")))
+             (lambda* (#:key inputs outputs #:allow-other-keys)
+               (add-installed-pythonpath inputs outputs)
+               (invoke "python" runtest "-m" "purchase")))))))
+    (native-inputs
+     `(("python" ,python-minimal-wrapper)
+       ("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-proteus" ,python-proteus)
+       ("python-relatorio" ,python-relatorio)
+       ("python-werkzeug" ,python-werkzeug)
+       ("python-wrapt" ,python-wrapt)))
+    (propagated-inputs
+     `(("python-sql" ,python-sql)
+       ("python-trytond" ,python-trytond)
+       ("python-trytond-account"
+        ,python-trytond-account)
+       ("python-trytond-account-invoice"
+        ,python-trytond-account-invoice)
+       ("python-trytond-account-invoice-stock"
+        ,python-trytond-account-invoice-stock)
+       ("python-trytond-account-product"
+        ,python-trytond-account-product)
+       ("python-trytond-company"
+        ,python-trytond-company)
+       ("python-trytond-currency"
+        ,python-trytond-currency)
+       ("python-trytond-party" ,python-trytond-party)
+       ("python-trytond-product"
+        ,python-trytond-product)
+       ("python-trytond-stock" ,python-trytond-stock)))
+    (home-page "https://www.tryton.org/")
+    (synopsis "Tryton module for purchase")
+    (description
+     "This package provides a Tryton module that defines the Purchase model.")
+    (license license:gpl3+)))
+
+(define-public python-trytond-purchase-request
+  (package
+    (name "python-trytond-purchase-request")
+    (version "5.6.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_purchase_request" version))
+       (sha256
+        (base32 "15r1x3jzr83rna1vfpans277785dpmgjr7989icav602nkyhhx0x"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (let ((runtest
+                  (string-append
+                   (assoc-ref %build-inputs "python-trytond")
+                   "/lib/python"
+                   ,(version-major+minor (package-version python))
+                   "/site-packages/trytond/tests/run-tests.py")))
+             (lambda* (#:key inputs outputs #:allow-other-keys)
+               (add-installed-pythonpath inputs outputs)
+               ;; Doctest 'scenario_purchase_request.rst' fails.
+               (invoke "python" runtest
+                       "-m" "purchase_request" "--no-doctest")))))))
+    (native-inputs
+     `(("python" ,python-minimal-wrapper)
+       ("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-proteus" ,python-proteus)
        ("python-relatorio" ,python-relatorio)
-       ("python-magic" ,python-magic)))
+       ("python-sql" ,python-sql)
+       ("python-werkzeug" ,python-werkzeug)
+       ("python-wrapt" ,python-wrapt)))
+    (propagated-inputs
+     `(("python-trytond" ,python-trytond)
+       ("python-trytond-product"
+        ,python-trytond-product)
+       ("python-trytond-purchase"
+        ,python-trytond-purchase)))
+    (home-page "https://www.tryton.org/")
+    (synopsis "Tryton module for purchase requests")
+    (description
+     "This package provides a Tryton module that introduces the concept of
+Purchase Requests which are central points to collect purchase requests
+generated by other process from Tryton.")
+    (license license:gpl3+)))
+
+(define-public python-proteus
+  (package
+    (name "python-proteus")
+    (version "5.6.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "proteus" version))
+       (sha256
+        (base32 "0kxac5pkps243wf0xbmbd1g5bml96xl94j88y6yyzm093vyli150"))))
+    (build-system python-build-system)
+    ;; Tests require python-trytond-party which requires python-proteus.
+    (arguments
+     `(#:tests? #f))
+    (propagated-inputs
+     `(("python-dateutil" ,python-dateutil)))
     (home-page "http://www.tryton.org/")
-    (synopsis
-     "Library to access a Tryton server as a client")
+    (synopsis "Library to access a Tryton server as a client")
     (description
      "This package provides a library to access Tryton server as a client.")
     (license license:lgpl3+)))
diff --git a/gnu/packages/tv.scm b/gnu/packages/tv.scm
index 2196162956..88df5c90bf 100644
--- a/gnu/packages/tv.scm
+++ b/gnu/packages/tv.scm
@@ -1,6 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2015, 2016, 2017, 2018 Alex Kost <alezost@gmail.com>
-;;; Copyright © 208 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2018 Efraim Flashner <efraim@flashner.co.il>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
diff --git a/gnu/packages/uml.scm b/gnu/packages/uml.scm
index ecf8fe0c45..ad766beece 100644
--- a/gnu/packages/uml.scm
+++ b/gnu/packages/uml.scm
@@ -1,7 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2016 Theodoros Foradis <theodoros@foradis.org>
 ;;; Copyright © 2019 Arun Isaac <arunisaac@systemreboot.net>
-;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -31,14 +31,14 @@
 (define-public plantuml
   (package
     (name "plantuml")
-    (version "1.2020.15")
+    (version "1.2020.24")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://sourceforge/plantuml/"
                                   version "/plantuml-" version ".tar.gz"))
               (sha256
                (base32
-                "0n9zrdylc79kdzq7i42kd38bndrhgs7p24bmcm7l09nzv8w8j5r0"))))
+                "1czjrsngy0j0lgbmvfzg1ax13vzba2c6ybmfbzqyvnasx4rfrsf8"))))
     (build-system ant-build-system)
     (arguments
      `(#:tests? #f                      ; no tests
diff --git a/gnu/packages/upnp.scm b/gnu/packages/upnp.scm
index f0c03e12b3..8f4e9952f2 100644
--- a/gnu/packages/upnp.scm
+++ b/gnu/packages/upnp.scm
@@ -5,6 +5,7 @@
 ;;; Copyright © 2018 Theodoros Foradis <theodoros@foradis.org>
 ;;; Copyright © 2019 Jens Mølgaard <jens@zete.tk>
 ;;; Copyright © 2020 Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl>
+;;; Copyright © 2021 Efraim Flashner <efraim@flashner.co.il>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -23,21 +24,22 @@
 
 (define-module (gnu packages upnp)
   #:use-module (gnu packages)
-  #:use-module (gnu packages gettext)
   #:use-module (gnu packages autotools)
-  #:use-module (gnu packages video)
-  #:use-module (gnu packages photo)
+  #:use-module (gnu packages compression)
+  #:use-module (gnu packages gettext)
   #:use-module (gnu packages image)
   #:use-module (gnu packages mp3)
+  #:use-module (gnu packages photo)
   #:use-module (gnu packages pkg-config)
-  #:use-module (gnu packages xiph)
-  #:use-module (gnu packages sqlite)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages sqlite)
+  #:use-module (gnu packages video)
+  #:use-module (gnu packages xiph)
   #:use-module (guix build-system gnu)
   #:use-module (guix utils)
   #:use-module (guix download)
   #:use-module (guix git-download)
-  #:use-module (guix licenses)
+  #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (ice-9 match))
 
@@ -89,12 +91,12 @@ while running behind a UPnP-enabled router or firewall.  Such applications
 include peer-to-peer applications, active-mode FTP clients, DCC file transfers
 over IRC, instant messaging, network games, and most server software.")
     (license
-     (x11-style "file://LICENSE" "See 'LICENSE' file in the distribution"))))
+     (license:x11-style "file://LICENSE" "See 'LICENSE' file in the distribution"))))
 
 (define-public libupnp
   (package
     (name "libupnp")
-    (version "1.12.1")
+    (version "1.14.0")
     (source
      (origin
       (method url-fetch)
@@ -102,7 +104,7 @@ over IRC, instant messaging, network games, and most server software.")
                           "/release-" version "/libupnp-" version".tar.bz2"))
       (sha256
        (base32
-        "02a0dnbk1cla8xlb5l2zp09grv2hsf8n4jbd560mmzj830mn8dpw"))))
+        "1sswsdqzarrd6h9mld2lncbcrfhd4p16zcafvmxqm34nj513vcpc"))))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
     (build-system gnu-build-system)
@@ -120,43 +122,49 @@ API and code for building control points, devices, and bridges that are
 compliant with Version 1.0 of the Universal Plug and Play Device Architecture
 Specification and support several operating systems like Linux, *BSD, Solaris
 and others.")
-    (license bsd-3)))
+    (license license:bsd-3)))
 
 (define-public readymedia
   (package
     (name "readymedia")
-    (version "1.2.1")
+    (version "1.3.0")
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
              (url "https://git.code.sf.net/p/minidlna/git")
              (commit (string-append
-                      "v"
-                      (string-map (match-lambda
-                                    (#\. #\_)
-                                    (chr chr))
-                                  version)))))
+                      "v" (string-replace-substring version "." "_")))))
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "160915yv38k0p5zmyncs12kkbbcd8m8fk9jq70fkfd5x6dz40xm4"))))
+         "0g04lffj37wdv5bnpl5faxpnmlj6bbk8y7ziaz2wp6h82g6kb5wj"))))
     (build-system gnu-build-system)
+    (arguments
+     `(#:configure-flags '("--with-os-name=Linux")      ; uname -s
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-source
+           (lambda _
+             (substitute* "Makefile.am"
+               ((".*LIBAVUTIL_LIBS.*") ""))
+             #t)))))
     (native-inputs
-     `(("automake" ,automake)
-       ("autoconf" ,autoconf)
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
        ("gettext" ,gettext-minimal)))
     (inputs
-     `(("libexif" ,libexif)
-       ("libjpeg" ,libjpeg-turbo)
-       ("libid3tag" ,libid3tag)
+     `(("ffmpeg" ,ffmpeg)
        ("flac" ,flac)
+       ("libexif" ,libexif)
+       ("libid3tag" ,libid3tag)
+       ("libjpeg" ,libjpeg-turbo)
        ("libvorbis" ,libvorbis)
        ("sqlite" ,sqlite)
-       ("ffmpeg" ,ffmpeg)))
+       ("zlib" ,zlib)))
     (home-page "https://sourceforge.net/projects/minidlna/")
     (synopsis "DLNA/UPnP-AV media server")
     (description "ReadyMedia (formerly known as MiniDLNA) is a simple media
 server, which serves multimedia content to compatible clients on the network.
 It aims to be fully compliant with DLNA and UPnP-AV standards.")
-    (license gpl2)))
+    (license license:gpl2)))
diff --git a/gnu/packages/valgrind.scm b/gnu/packages/valgrind.scm
index 75e852915e..4036bd461b 100644
--- a/gnu/packages/valgrind.scm
+++ b/gnu/packages/valgrind.scm
@@ -4,6 +4,7 @@
 ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2016, 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -32,7 +33,9 @@
 (define-public valgrind
   (package
     (name "valgrind")
-    (version "3.15.0")
+    ;; Note: check "guix refresh -l -e '(@ (gnu packages valgrind) valgrind)'"
+    ;; when updating this package to find which branch it should go to.
+    (version "3.16.1")
     (source (origin
               (method url-fetch)
               (uri (list (string-append "https://sourceware.org/pub/valgrind"
@@ -41,7 +44,7 @@
                                         "/valgrind-" version ".tar.bz2")))
               (sha256
                (base32
-                "1ccawxrni8brcvwhygy12iprkvz409hbr9xkk1bd03gnm2fplz21"))
+                "1jik19rcd34ip8a5c9nv5wfj8k8maqb8cyclr4xhznq2gcpkl7y9"))
               (patches (search-patches "valgrind-enable-arm.patch"))))
     (build-system gnu-build-system)
     (outputs '("doc"                              ;16 MB
@@ -70,9 +73,6 @@
                (mkdir-p dest)
                (rename-file orig dest)
                #t))))))
-    (inputs
-     ;; GDB is needed to provide a sane default for `--db-command'.
-     `(("gdb" ,gdb)))
     (native-inputs
      `(("perl" ,perl)))
     (home-page "https://www.valgrind.org/")
@@ -82,4 +82,15 @@
 tools.  There are Valgrind tools that can automatically detect many memory
 management and threading bugs, and profile your programs in detail.  You can
 also use Valgrind to build new tools.")
-    (license gpl2+)))
+    (license gpl2+)
+
+    ;; Hide this variant so end users get the "interactive" Valgrind below.
+    (properties '((hidden? . #t)))))
+
+(define-public valgrind/interactive
+  (package/inherit
+   valgrind
+   (inputs
+    ;; GDB is needed to provide a sane default for `--db-command'.
+    `(("gdb" ,gdb)))
+   (properties '())))
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index 62ccd4600d..f53ca9b11b 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -6,15 +6,15 @@
 ;;; 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 © 2015, 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2015, 2018 Kyle Meyer <kyle@kyleam.com>
+;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2015, 2018, 2020 Kyle Meyer <kyle@kyleam.com>
 ;;; Copyright © 2015, 2017, 2018, 2020 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2016, 2017, 2018 Nikita <nikita@n0.is>
-;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2017 Vasile Dumitrascu <va511e@yahoo.com>
 ;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
-;;; Copyright © 2017 André <eu@euandre.org>
+;;; Copyright © 2017, 2020 EuAndreh <eu@euandre.org>
 ;;; Copyright © 2017, 2018, 2020 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2017 Stefan Reichör <stefan@xsteve.at>
 ;;; Copyright © 2017, 2020 Oleg Pykhalov <go.wigust@gmail.com>
@@ -30,6 +30,9 @@
 ;;; Copyright © 2020 John D. Boy <jboy@bius.moe>
 ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
 ;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
+;;; Copyright © 2020 Tanguy Le Carrour <tanguy@bioneland.org>
+;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
+;;; Copyright © 2021 Greg Hogan <code@greghogan.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -52,7 +55,9 @@
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix git-download)
+  #:use-module (guix hg-download)
   #:use-module (guix build-system cmake)
+  #:use-module (guix build-system copy)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system go)
   #:use-module (guix build-system perl)
@@ -72,6 +77,7 @@
   #:use-module (gnu packages ed)
   #:use-module (gnu packages file)
   #:use-module (gnu packages flex)
+  #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages gl)
   #:use-module (gnu packages golang)
@@ -91,6 +97,7 @@
   #:use-module (gnu packages perl-check)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages python-check)
   #:use-module (gnu packages python-web)
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages readline)
@@ -157,14 +164,14 @@ as well as the classic centralized workflow.")
 (define-public git
   (package
    (name "git")
-   (version "2.28.0")
+   (version "2.30.0")
    (source (origin
             (method url-fetch)
             (uri (string-append "mirror://kernel.org/software/scm/git/git-"
                                 version ".tar.xz"))
             (sha256
              (base32
-              "17a311vzimqn1glc9d7x82rhb1mb81m5rr4g8xji8idaafid39fz"))))
+              "06ad6dylgla34k9am7d5z8y3rryc8ln3ibq5z0d74rcm20hm0wsm"))))
    (build-system gnu-build-system)
    (native-inputs
     `(("native-perl" ,perl)
@@ -181,7 +188,7 @@ as well as the classic centralized workflow.")
                 version ".tar.xz"))
           (sha256
            (base32
-            "1dvwq0py8a2ywmgc5pzdlsj3608s7r9wyba292728fcs3yj7ynk6"))))
+            "0xngjg60rwzrb9x32d1qbdd8szkzwcyha5qni7ilkldxsl2q8avv"))))
       ;; For subtree documentation.
       ("asciidoc" ,asciidoc-py3)
       ("docbook-xsl" ,docbook-xsl)
@@ -388,6 +395,16 @@ as well as the classic centralized workflow.")
               (install-file "contrib/subtree/git-subtree.1"
                             (string-append subtree "/share/man/man1"))
               #t)))
+         (add-after 'install 'restore-sample-hooks-shebang
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (dir (string-append out "/share/git-core/templates/hooks")))
+               (for-each (lambda (file)
+                           (format #t "restoring shebang on `~a'~%" file)
+                           (substitute* file
+                             (("^#!.*/bin/sh") "#!/bin/sh")))
+                         (find-files dir ".*"))
+               #t)))
         (add-after 'install 'split
           (lambda* (#:key inputs outputs #:allow-other-keys)
             ;; Split the binaries to the various outputs.
@@ -516,11 +533,6 @@ everything from small to very large projects with speed and efficiency.")
            (delete 'install-man-pages)
            (delete 'install-subtree)
            (delete 'install-credential-netrc)
-           (add-before 'check 'delete-svn-test
-             (lambda _
-               ;; This test cannot run since we are not building 'git-svn'.
-               (delete-file "t/t9020-remote-svn.sh")
-               #t))
            (add-after 'install 'remove-unusable-perl-commands
              (lambda* (#:key outputs #:allow-other-keys)
                (let* ((out     (assoc-ref outputs "out"))
@@ -657,7 +669,7 @@ to GitHub contributions calendar.")
 (define-public libgit2
   (package
     (name "libgit2")
-    (version "1.0.1")
+    (version "1.1.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/libgit2/libgit2/"
@@ -665,7 +677,7 @@ to GitHub contributions calendar.")
                                   "/libgit2-" version ".tar.gz"))
               (sha256
                (base32
-                "0nlg35pxhh548nn7aa3y1m81mf81nkbzz86i2psps4f474n497v8"))
+                "1fjdglkh04qv3b4alg621pxa689i0wlf8m7nf2755zawjr2zhwxd"))
               (patches (search-patches "libgit2-mtime-0.patch"))
               (snippet '(begin
                           (delete-file-recursively "deps") #t))
@@ -1203,7 +1215,7 @@ lot easier.")
 (define-public stgit
   (package
     (name "stgit")
-    (version "0.21")
+    (version "0.23")
     (source
      (origin
        (method git-fetch)
@@ -1212,7 +1224,7 @@ lot easier.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "00pmz93znl418lsjwy4mr0chp8i2w27h1xjysa05f62smsv91yyc"))))
+        (base32 "0bgxgsd6nj6gkk74c56vrjsyr7j19jrj6cx2ma6f7b20wriznhd5"))))
     (build-system python-build-system)
     (native-inputs
      `(("perl" ,perl)))
@@ -1242,7 +1254,7 @@ lot easier.")
                      "PERL_PATH=perl"
                      (string-append "SHELL_PATH=" (which "bash"))
                      "test"))))))
-    (home-page "http://procode.org/stgit/")
+    (home-page "https://stacked-git.github.io/")
     (synopsis "Stacked Git")
     (description
      "StGit is a command-line application that provides functionality similar
@@ -1330,7 +1342,7 @@ also walk each side of a merge and test those changes individually.")
 (define-public gitolite
   (package
     (name "gitolite")
-    (version "3.6.11")
+    (version "3.6.12")
     (source
      (origin
        (method git-fetch)
@@ -1339,10 +1351,10 @@ also walk each side of a merge and test those changes individually.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1rkj7gknwjlc5ij9w39zf5mr647bm45la57yjczydmvrb8c56yrh"))))
+        (base32 "05xw1pmagvkrbzga5pgl3xk9qyc6b5x73f842454f3w9ijspa8zy"))))
     (build-system gnu-build-system)
     (arguments
-     '(#:tests? #f ; no tests
+     '(#:tests? #f                      ; no tests
        #:phases (modify-phases %standard-phases
                   (delete 'configure)
                   (delete 'build)
@@ -1444,7 +1456,7 @@ control to Git repositories.")
 (define-public pre-commit
   (package
     (name "pre-commit")
-    (version "2.6.0")
+    (version "2.8.1")
     (source
      (origin
        ;; No tests in the PyPI tarball.
@@ -1454,7 +1466,7 @@ control to Git repositories.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "144hcnz8vz07nkx7hk8a3ac822186ardwxa8jnl6s8qvm5ip92f2"))))
+        (base32 "0b3ks6viccq3n4p8i8zgfd40vp1k5nkhmmlz7p4nxcdizw8zxgn8"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -1490,11 +1502,17 @@ control to Git repositories.")
                       " and not test_run_a_ruby_hook"
                       " and not test_run_ruby_hook_with_disable_shared_gems"
                       " and not test_run_versioned_ruby_hook"
-                      ;; Disable Cargo tests
+                      ;; Disable Cargo tests.
                       " and not test_additional_rust_cli_dependencies_installed"
                       " and not test_additional_rust_lib_dependencies_installed"
                       " and not test_local_rust_additional_dependencies"
                       " and not test_rust_hook"
+                      ;; Disable dotnet tests.
+                      " and not test_dotnet_hook"
+                      ;; Disable nodejs tests.
+                      " and not test_unhealthy_if_system_node_goes_missing"
+                      " and not test_installs_without_links_outside_env"
+                      " and not test_healthy_system_node"
                       ;; Disable python2 test.
                       " and not test_switch_language_versions_doesnt_clobber"
                       ;; These tests try to open a network socket.
@@ -1517,14 +1535,14 @@ control to Git repositories.")
                       " and not test_too_new_version"
                       " and not test_try_repo_uncommitted_changes"
                       " and not test_versions_ok"
-                      ;; This test tries to activate a virtualenv
+                      ;; This test tries to activate a virtualenv.
                       " and not test_healthy_venv_creator"
                       ;; Fatal error: Not a Git repository.
                       " and not test_all_cmds"
                       " and not test_try_repo"
-                      ;; No module named 'pip._internal.cli.main'
+                      ;; No module named 'pip._internal.cli.main'.
                       " and not test_additional_dependencies_roll_forward"
-                      ; Assertion errors
+                      ;; Assertion errors.
                       " and not test_install_existing_hooks_no_overwrite"
                       " and not test_uninstall_restores_legacy_hooks"))))
          (add-before 'reset-gzip-timestamps 'make-files-writable
@@ -1536,9 +1554,11 @@ control to Git repositories.")
                          (find-files out "\\.gz$"))
                #t))))))
     (native-inputs
-     `(("git" ,git)
-       ("python-pytest" ,python-pytest)))
-    (inputs
+     `(("git" ,git-minimal)
+       ("python-pytest" ,python-pytest)
+       ("python-re-assert" ,python-re-assert)))
+    ;; Propagate because pre-commit is also used as a module.
+    (propagated-inputs
      `(("python-cfgv" ,python-cfgv)
        ("python-identify" ,python-identify)
        ("python-nodeenv" ,python-nodeenv)
@@ -1553,40 +1573,17 @@ specify a list of hooks you want and pre-commit manages the installation and
 execution of any hook written in any language before every commit.")
     (license license:expat)))
 
-(define (mercurial-patch name revision hash)
-  (origin
-    (method url-fetch)
-    (uri (string-append "https://www.mercurial-scm.org/repo/hg/raw-rev/" revision))
-    (file-name (string-append "mercurial-" name ".patch"))
-    (sha256 (base32 hash))))
-
-(define %mercurial-patches
-  (list
-   ;; These three patches fixes compatibility with the updated gzip module
-   ;; in Python 3.8.2: <https://bz.mercurial-scm.org/show_bug.cgi?id=6284>.
-   (mercurial-patch "python-mtime" "6c36a521572edf3a79ee567b118469b3192037cc"
-                    "0bmm7y40r8s081ws2sjvn1v8kvyfan4a97jl0fhdh7yc2pzxlzqq")
-   (mercurial-patch "indent-gzip" "a23b859ad17dd0a5b9bb37846b69b5e30f99c44c"
-                    "1spscv9dgqv38m7h1liki93ax6w97gxayg17fr7wr6acjdfccpr9")
-   (mercurial-patch "python-gzip" "b7ca03dff14c63d64ad7bfa36a2d0a36a6b62253"
-                    "0p88ffhx0kk21ssrsb156ffhpcb7g8mkwwkmq49qpmbm5ag2paf0")
-   ;; This fixes an incompatibility with os.isfile in Python 3.8:
-   ;; <https://bz.mercurial-scm.org/show_bug.cgi?id=6287>.
-   (mercurial-patch "os-isfile" "6a8738dc4a019da4c9df5c26961aa09d45ce1c68"
-                    "0lr069m12kzrkmr1pmhaxg5lxmdwxabsza61qp1i1q70g7sy8lvy")))
-
 (define-public mercurial
   (package
     (name "mercurial")
-    (version "5.3.1")
+    (version "5.5.1")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://www.mercurial-scm.org/"
                                  "release/mercurial-" version ".tar.gz"))
-             (patches %mercurial-patches)
              (sha256
               (base32
-               "1nbjpzjrzgql4hrvslpxwbcgn885ikq6ba1yb4w6p78rw9nzkhgp"))))
+               "0x08yjs26j88kh1bvl2g3r24lnfc023ry3i1cxfq6haray6sv5ag"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -1615,6 +1612,13 @@ execution of any hook written in any language before every commit.")
                            ;; not in 'guix environment -C' (even without /bin/sh)?
                            "test-nointerrupt.t"
 
+                           ;; FIXME: This gets killed but does not receive an interrupt.
+                           "test-commandserver.t"
+
+                           ;; Only works when run in a hg-repo, not in an
+                           ;; extracted tarball
+                           "test-doctest.py"
+
                            ;; TODO: the fqaddr() call fails in the build
                            ;; container, causing these server tests to fail.
                            "test-hgwebdir.t"
@@ -1650,17 +1654,43 @@ It efficiently handles projects of any size
 and offers an easy and intuitive interface.")
     (license license:gpl2+)))
 
+(define-public python-hg-evolve
+  (package
+    (name "python-hg-evolve")
+    (version "10.0.1")
+    (source
+      (origin
+        (method hg-fetch)
+        (uri (hg-reference
+               (url "https://www.mercurial-scm.org/repo/evolve")
+               (changeset version)))
+        (file-name (string-append name "-" version "-checkout"))
+        (sha256
+          (base32
+            "1lz407373lfam9n02gq0l0rc2sjvn0m96kbzy93ipia3ika8fa68"))))
+    (build-system python-build-system)
+    (arguments
+     ;; Tests need mercurial source code.
+     '(#:tests? #f))
+    (propagated-inputs
+      `(("mercurial" ,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
+history.  It implements the changeset evolution concept for Mercurial.")
+    (license license:gpl2)))
+
 (define-public neon
   (package
     (name "neon")
-    (version "0.30.2")
+    (version "0.31.2")
     (source (origin
              (method url-fetch)
-             (uri (string-append "http://www.webdav.org/neon/neon-"
+             (uri (string-append "https://notroj.github.io/neon/neon-"
                                  version ".tar.gz"))
              (sha256
               (base32
-               "1jpvczcx658vimqm7c8my2q41fnmjaf1j03g7bsli6rjxk6xh2yv"))))
+               "0y46dbhiblcvg8k41bdydr3fivghwk73z040ki5825d24ynf67ng"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("perl" ,perl)
@@ -1674,11 +1704,12 @@ and offers an easy and intuitive interface.")
        ;; https://sourceware.org/bugzilla/show_bug.cgi?id=16475
        #:tests? #f
        #:configure-flags '("--enable-shared"
+                           "--disable-static"
                            ;; requires libgnutils-config, deprecated
                            ;; in gnutls 2.8.
                            ; "--with-ssl=gnutls")))
                            "--with-ssl=openssl")))
-    (home-page "http://www.webdav.org/neon/")
+    (home-page "https://notroj.github.io/neon/")
     (synopsis "HTTP and WebDAV client library")
     (description
      "Neon is an HTTP and WebDAV client library, with a C interface and the
@@ -1787,26 +1818,17 @@ projects, from individuals to large-scale enterprise operations.")
 (define-public rcs
   (package
     (name "rcs")
-    (version "5.9.4")
+    (version "5.10.0")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://gnu/rcs/rcs-"
                                  version ".tar.xz"))
              (sha256
               (base32
-               "1zsx7bb0rgvvvisiy4zlixf56ay8wbd9qqqcp1a1g0m1gl6mlg86"))
-             (patches (search-patches "rcs-5.9.4-noreturn.patch"))))
+               "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-before 'check 'disable-t810
-                    ;; See https://savannah.gnu.org/bugs/index.php?52288
-                    ;; Back-porting the fix is non-trivial, so disable for now.
-                    (lambda _
-                      (substitute* "tests/Makefile"
-                        ((" t810 \\\\\n") ""))
-                     #t)))))
     (home-page "https://www.gnu.org/software/rcs/")
     (synopsis "Per-file local revision control system")
     (description
@@ -1889,14 +1911,14 @@ masters from remote CVS hosts.")
 (define-public vc-dwim
   (package
     (name "vc-dwim")
-    (version "1.9")
+    (version "1.10")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://gnu/vc-dwim/vc-dwim-"
                                  version ".tar.xz"))
              (sha256
               (base32
-               "0mf1dd7wdqxsm4fcfinfd7iadzarmzvg747pbsbi32qpavpk8gdf"))))
+               "0am6axxdvkm2vwgg0gjrd930yv4dlsdbf0rdv0zh5bhy1ir64rph"))))
     (build-system gnu-build-system)
     (inputs `(("perl" ,perl)))
     (native-inputs
@@ -1916,7 +1938,7 @@ standards-compliant ChangeLog entries based on the changes that it detects.")
 (define-public diffstat
   (package
     (name "diffstat")
-    (version "1.63")
+    (version "1.64")
     (source (origin
               (method url-fetch)
               (uri
@@ -1927,7 +1949,7 @@ standards-compliant ChangeLog entries based on the changes that it detects.")
                                 "diffstat-" version ".tgz")))
               (sha256
                (base32
-                "0vyw200s5dv1257pmrh6c6fdkmw3slyz5szpqfx916xr04sdbpby"))))
+                "1z7pwcv48fjnhxrjcsjdy83x8b9ckl582mbbds90a79fkn6y7bmq"))))
     (build-system gnu-build-system)
     (home-page "https://invisible-island.net/diffstat/")
     (synopsis "Make histograms from the output of @command{diff}")
@@ -2257,6 +2279,75 @@ supports a large number of version control systems: Git, Subversion,
 Mercurial, Bazaar, Darcs, CVS, Fossil, and Veracity.")
     (license license:gpl2+)))
 
+(define-public grokmirror
+  (package
+    (name "grokmirror")
+    (version "2.0.5")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url (string-append "https://git.kernel.org/pub/scm/"
+                                 "utils/grokmirror/grokmirror.git"))
+             (commit (string-append "v" version))))
+       (file-name (string-append name "-" version "-checkout"))
+       (sha256
+        (base32 "006ar3kc6fw1sq300ar9np4a63qzzsdama6cv30wh65v5mqw1mnv"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:tests? #f                      ; no test suite
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'install-manpages
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((man (string-append (assoc-ref outputs "out")
+                                        "/man/man1/")))
+               (mkdir-p man)
+               (for-each (lambda (file) (install-file file man))
+                         (find-files "." "\\.1$")))
+             #t)))))
+    (propagated-inputs
+     `(("python-packaging" ,python-packaging)
+       ("python-requests" ,python-requests)))
+    (home-page
+     "https://git.kernel.org/pub/scm/utils/grokmirror/grokmirror.git")
+    (synopsis "Framework to smartly mirror git repositories")
+    (description "Grokmirror enables replicating large git repository
+collections efficiently.  Mirrors decide to clone and update repositories
+based on a manifest file published by servers.")
+    (license license:gpl3+)))
+
+(define-public b4
+  (package
+    (name "b4")
+    (version "0.6.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "b4" version))
+       (sha256
+        (base32 "1j904dy9cwxl85k2ngc498q5cdnqwsmw3jibjr1m55w8aqdck68z"))))
+    (build-system python-build-system)
+    (arguments '(#:tests? #f))          ; No tests.
+    (inputs
+     `(("python-dkimpy" ,python-dkimpy)
+       ("python-dnspython" ,python-dnspython)
+       ("python-requests" ,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
+     "The @code{b4} command is designed to make it easier to participate in
+patch-based workflows for projects that have public-inbox archives.
+
+Features include:
+@itemize
+@item downloading a thread's mbox given a message ID
+@item processing an mbox so that is ready to be fed to @code{git-am}
+@item creating templated replies for processed patches and pull requests
+@item submitting cryptographic attestation for patches.
+@end itemize")
+    (license license:gpl2+)))
+
 (define-public git-annex-remote-rclone
   (package
     (name "git-annex-remote-rclone")
@@ -2575,7 +2666,7 @@ interrupted, published, and collaborated on while in progress.")
 (define-public git-lfs
   (package
     (name "git-lfs")
-    (version "2.7.2")
+    (version "2.11.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -2584,10 +2675,35 @@ interrupted, published, and collaborated on while in progress.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1nf40rbdz901vsahg5cm09pznpina6wimmxl0lmh8pn0mi51yzvc"))))
+                "05qd96bn2cl7gn5qarbcv6scdpj28qiwdfzalamqk5jjiidpmng5"))))
     (build-system go-build-system)
     (arguments
-     '(#:import-path "github.com/git-lfs/git-lfs"))
+     `(#:import-path "github.com/git-lfs/git-lfs"
+       #:install-source? #f
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'build 'man-gen
+           ;; Without this, the binary generated in 'build
+           ;; phase won't have any embedded usage-text.
+           (lambda _
+             (with-directory-excursion "src/github.com/git-lfs/git-lfs"
+               (invoke "make" "mangen"))))
+         (add-after 'build 'build-man-pages
+           (lambda _
+             (with-directory-excursion "src/github.com/git-lfs/git-lfs"
+               (invoke "make" "man"))
+             #t))
+         (add-after 'install 'install-man-pages
+           (lambda _
+             (with-directory-excursion "src/github.com/git-lfs/git-lfs/man"
+               (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)))
     (home-page "https://git-lfs.github.com/")
     (synopsis "Git extension for versioning large files")
     (description
@@ -2596,6 +2712,40 @@ videos, datasets, and graphics with text pointers inside Git, while storing the
 file contents on a remote server.")
     (license license:expat)))
 
+(define-public git-open
+  (package
+    (name "git-open")
+    (version "2.1.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/paulirish/git-open")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "11n46bngvca5wbdbfcxzjhjbfdbad7sgf7h9gf956cb1q8swsdm0"))))
+    (build-system copy-build-system)
+    (inputs
+     `(("xdg-utils" ,xdg-utils)))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'wrap-program
+           (lambda* (#:key outputs inputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out"))
+                   (xdg-utils (assoc-ref inputs "xdg-utils")))
+               (wrap-program (string-append out "/bin/git-open")
+                 `("PATH" ":" prefix (,(string-append xdg-utils "/bin"))))))))
+       #:install-plan
+       '(("git-open" "bin/git-open"))))
+    (home-page "https://github.com/paulirish/git-open")
+    (synopsis "Open a Git repository's homepage from the command-line")
+    (description
+     "@code{git open} opens the repository's website from the command-line,
+guessing the URL pattern from the @code{origin} remote.")
+    (license license:expat)))
+
 (define-public tla
   (package
     (name "gnu-arch")
@@ -2653,6 +2803,53 @@ for historians.")
     (home-page "https://www.gnu.org/software/gnu-arch/")
     (license license:gpl2)))                      ;version 2 only
 
+(define-public diff-so-fancy
+  (package
+    (name "diff-so-fancy")
+    (version "1.3.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/so-fancy/diff-so-fancy")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0aavxahzha2mms4vdwysk79pa6wzswpfwgsq2hwaxnaf66maahfl"))))
+    (inputs
+     `(("perl" ,perl)
+       ("ncurses" ,ncurses)))
+    (build-system copy-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-lib-path
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((lib (string-append (assoc-ref outputs "out") "/lib")))
+               (substitute* "diff-so-fancy"
+                 (("use lib.*$")
+                  (string-append "use lib '" lib "';\n")))
+               #t)))
+         (add-after 'install 'symlink-executable
+           (lambda* (#:key outputs inputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out"))
+                   (ncurses (assoc-ref inputs "ncurses"))
+                   (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))))
+       #:install-plan
+       '(("lib" "lib")
+         ("diff-so-fancy" "bin/"))))
+    (home-page "https://github.com/so-fancy/diff-so-fancy")
+    (synopsis "Makes diffs more human friendly and readable")
+    (description
+     "@code{diff-so-fancy} strives to make your diffs human readable instead
+of machine readable.  This helps improve code quality and helps you spot
+defects faster.")
+    (license license:expat)))
+
 (define-public go-github-go-git
   (package
     (name "go-github-go-git")
@@ -2706,3 +2903,115 @@ for historians.")
     (synopsis "Git implementation library")
     (description "This package provides a Git implementation library.")
     (license license:asl2.0)))
+
+(define-public gita
+  (let ((commit "62eb3d69874f75bdd6f95743e57315bc59890f70")
+        (revision "1"))
+    (package
+      (name "gita")
+      (version (git-version "0.10.10" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/nosarthur/gita")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "1jn5wnmjbdrrgz9fif7s81pv3g92q0wjcqy5qxl77kjy7iv0kpfp"))))
+      (build-system python-build-system)
+      (native-inputs
+       `(("git" ,git) ;for tests
+         ("python-pytest" ,python-pytest)))
+      (propagated-inputs
+       `(("python-pyyaml" ,python-pyyaml)))
+      (arguments
+       `(#:phases
+         (modify-phases %standard-phases
+           (replace 'check
+             (lambda* (#:key inputs outputs #:allow-other-keys)
+               (substitute* "tests/test_main.py"
+                 (("'gita\\\\n'") "'source\\n'")
+                 (("'gita'") "'source'"))
+               (invoke (string-append (assoc-ref inputs "git") "/bin/git")
+                       "init")
+               (add-installed-pythonpath inputs outputs)
+               (invoke (string-append (assoc-ref inputs "python-pytest")
+                                      "/bin/pytest")
+                       "-vv" "tests")))
+           (add-after 'install 'install-shell-completions
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let* ((out (assoc-ref outputs "out"))
+                      (bash-completion (string-append out "/etc/bash_completion.d"))
+                      (zsh-completion (string-append out "/etc/zsh/site-functions")))
+                 (mkdir-p bash-completion)
+                 (copy-file ".gita-completion.bash"
+                            (string-append bash-completion "/gita"))
+                 (mkdir-p zsh-completion)
+                 (copy-file ".gita-completion.zsh"
+                            (string-append zsh-completion "/_gita"))))))))
+      (home-page "https://github.com/nosarthur/gita")
+      (synopsis "Command-line tool to manage multiple Git repos")
+      (description "This package provides a command-line tool to manage
+multiple Git repos.
+
+This tool does two things:
+@itemize
+@item display the status of multiple Git repos such as branch, modification,
+commit message side by side
+@item (batch) delegate Git commands/aliases from any working directory
+@end itemize
+
+If several repos are related, it helps to see their status together.")
+      (license license:expat))))
+
+(define-public ghq
+  (package
+    (name "ghq")
+    (version "1.1.5")
+    (home-page "https://github.com/x-motemen/ghq")
+    (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
+                "098fik155viylq07az7crzbgswcvhpx0hr68xpvyx0rpri792jbq"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:install-source? #f
+       #:import-path "github.com/x-motemen/ghq"
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'install-completions
+           (lambda* (#:key outputs import-path #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (bash-completion (string-append out "/etc/bash_completion.d"))
+                    (zsh-completion (string-append out "/share/zsh/site-functions")))
+               (with-directory-excursion (string-append "src/" import-path)
+                 (mkdir-p bash-completion)
+                 (copy-file "misc/bash/_ghq"
+                            (string-append bash-completion "/ghq"))
+                 (mkdir-p zsh-completion)
+                 (copy-file "misc/zsh/_ghq"
+                            (string-append zsh-completion "/_ghq"))))
+             #t)))))
+    (native-inputs
+     `(("git" ,git-minimal)))
+    (inputs
+     `(("github.com/songmu/gitconfig" ,go-github-com-songmu-gitconfig)
+       ("github.com/mattn/go-isatty" ,go-github-com-mattn-go-isatty)
+       ("github.com/motemen/go-colorine" ,go-github-com-motemen-go-colorine)
+       ("github.com/saracen/walker" ,go-github-com-saracen-walker)
+       ("github.com/urfave/cli/v2" ,go-github-com-urfave-cli-v2)
+       ("golang.org/x/net/html" ,go-golang-org-x-net-html)
+       ("golang.org/x/sync/errgroup" ,go-golang.org-x-sync-errgroup)))
+    (synopsis "Manage remote repository clones")
+    (description
+     "@code{ghq} provides a way to organize remote repository clones, like
+@code{go get} does.  When you clone a remote repository by @code{ghq get}, ghq
+makes a directory under a specific root directory (by default @file{~/ghq})
+using the remote repository URL's host and path.")
+    (license license:expat)))
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 933c868ee6..97cb7d6837 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -1,7 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2013, 2014, 2015, 2016 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2014, 2015, 2016 David Thompson <davet@gnu.org>
-;;; Copyright © 2014, 2015, 2016, 2018 Mark H Weaver <mhw@netris.org>
+;;; 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 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2015 Andy Patterson <ajpatter@uwaterloo.ca>
@@ -15,7 +15,7 @@
 ;;; Copyright © 2016, 2018, 2019, 2020 Eric Bavier <bavier@posteo.net>
 ;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
 ;;; Copyright © 2017 Feng Shu <tumashu@163.com>
-;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 201–72021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2017 Chris Marusich <cmmarusich@gmail.com>
 ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
 ;;; Copyright © 2017 Ethan R. Jones <doubleplusgood23@gmail.com>
@@ -41,9 +41,12 @@
 ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
 ;;; Copyright © 2020 Guillaume Le Vaillant <glv@posteo.net>
 ;;; Copyright © 2020 Alex McGrath <amk@amk.ie>
-;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
+;;; Copyright © 2020, 2021 Michael Rohleder <mike@rohleder.de>
 ;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
 ;;; Copyright © 2020 Brett Gilio <brettg@gnu.org>
+;;; Copyright © 2020 Alexandru-Sergiu Marton <brown121407@posteo.ro>
+;;; Copyright © 2020 Ivan Kozlov <kanichos@yandex.ru>
+;;; Copyright © 2020 Antoine Côté <antoine.cote@posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -62,7 +65,7 @@
 
 (define-module (gnu packages video)
   #:use-module (ice-9 match)
-  #:use-module (srfi srfi-1)
+  #:use-module ((srfi srfi-1) #:hide (zip))
   #:use-module (srfi srfi-26)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix utils)
@@ -96,6 +99,7 @@
   #:use-module (gnu packages compression)
   #:use-module (gnu packages cpp)
   #:use-module (gnu packages crates-io)
+  #:use-module (gnu packages crates-graphics)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages dejagnu)
   #:use-module (gnu packages dns)
@@ -134,6 +138,7 @@
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages networking)
   #:use-module (gnu packages ocr)
+  #:use-module (gnu packages pcre)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages perl-check)
   #:use-module (gnu packages perl-web)
@@ -149,6 +154,7 @@
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages qt)
   #:use-module (gnu packages rdesktop)
+  #:use-module (gnu packages re2c)
   #:use-module (gnu packages ruby)
   #:use-module (gnu packages rust-apps)
   #:use-module (gnu packages samba)
@@ -172,6 +178,478 @@
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg))
 
+(define-public transcode
+  (package
+    (name "transcode")
+    (version "1.1.7")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://sources.archlinux.org/other/community/"
+                       name "/" name "-" version ".tar.bz2"))
+       (sha256
+        (base32 "14ha9xjsjrj131f35jd56z5v1jb4rbsrj1nril5shqnxw3c74khy"))
+       (patches
+        (search-patches "transcode-ffmpeg.patch"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:configure-flags
+       (list
+        "--enable-libv4l2"
+        "--enable-libmpeg2"
+        "--enable-libmpeg2convert"
+        "--enable-v4l"
+        ;;; XXX: Not available.
+        ;"--enable-bktr"
+        ;"--enable-sunau"
+        "--enable-oss"
+        "--enable-alsa"
+        ;;; XXX: Not available.
+        ;"--enable-libpostproc"
+        "--enable-freetype2"
+        "--enable-xvid"
+        "--enable-x264"
+        "--enable-ogg"
+        "--enable-vorbis"
+        "--enable-theora"
+        ;;; XXX: Not available.
+        ;"--enable-pvm3"
+        "--enable-libdv"
+        "--enable-libquicktime"
+        "--enable-lzo"
+        "--enable-a52"
+        "--enable-faac"
+        "--enable-libxml2"
+        ;;; XXX: Not available.
+        ;"--enable-ibp"
+        ;;"--enable-mjpegtools"
+        "--enable-sdl"
+        "--enable-imagemagick"
+        ;;; XXX: Not available.
+        ;"--enable-libjpegmmx"
+        "--enable-libjpeg")))
+        ;;; XXX: Not available.
+        ;"--enable-bsdav"
+        ;"--enable-pv3"
+        ;"--enable-nuv"
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("iconv" ,libiconv)
+       ("libtool" ,libtool)
+       ("libxml2" ,libxml2)
+       ("perl" ,perl)
+       ("pkg-config" ,pkg-config)
+       ("python" ,python-wrapper)))
+    (inputs
+     `(("alsa-lib" ,alsa-lib)
+       ("faac" ,faac)
+       ("ffmpeg" ,ffmpeg)
+       ("freetype" ,freetype)
+       ("imagemagick" ,imagemagick-next)
+       ("lame" ,lame)
+       ("liba52" ,liba52)
+       ("libdv" ,libdv)
+       ("libdvdread" ,libdvdread)
+       ("libjpeg" ,libjpeg-turbo)
+       ("libmpeg2" ,libmpeg2)
+       ("libogg" ,libogg)
+       ("libquicktime" ,libquicktime)
+       ("libtheora" ,libtheora)
+       ("libvorbis" ,libvorbis)
+       ("lzo" ,lzo)
+       ("mjepgtools" ,mjpegtools)
+       ("sdl" ,sdl)
+       ("v4l-utils" ,v4l-utils)
+       ("x11" ,libx11)
+       ("x264" ,libx264)
+       ("xaw" ,libxaw)
+       ("xext" ,libxext)
+       ("xpm" ,libxpm)
+       ("xv" ,libxv)
+       ("xvid" ,xvid)
+       ("zlib" ,zlib)))
+    (synopsis "Audio/Video Transcoder")
+    (description "Transcode is a fast, versatile and command-line based
+audio/video everything to everything converter primarily focussed on producing
+AVI video files with MP3 audio, but also including a program to read all the
+video and audio streams from a DVD.")
+    (home-page
+     "http://linuxfromscratch.org/blfs/view/svn/multimedia/transcode.html")
+    (license license:gpl2+)))
+
+(define-public svt-hevc
+  (package
+    (name "svt-hevc")
+    (version "1.4.3")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/OpenVisualCloud/SVT-HEVC")
+         (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1sqh3dciqm2p1b66kngcpxqy5fx3ramxlxy8gfcbdwn2i3rsqhs7"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:tests? #f)) ; Test script is stand-alone
+    (native-inputs
+     `(("yasm" ,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
+the SVT-HEVC encoder, it is possible to spread video encoding processing across
+multiple Intel's Xeon processors to achieve a real advantage of processing
+efficiency.")
+    (home-page "https://01.org/svt")
+    (license (license:non-copyleft "file:///LICENSE.md"))))
+
+(define-public mediasdk
+  (package
+    (name "mediasdk")
+    (version "20.1.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/Intel-Media-SDK/MediaSDK")
+         (commit (string-append "intel-" name "-" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0blwcxr5j8762nylx2cxrq0h53bpgnk859dbs6crq4wr9fcxlx9z"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:configure-flags
+       (list
+        "-DENABLE_X11=ON"
+        "-DENABLE_X11_DRI3=ON"
+        "-DENABLE_WAYLAND=ON"
+        "-DENABLE_TEXTLOG=ON"
+        "-DENABLE_STAT=ON"
+        "-DBUILD_TESTS=ON"
+        "-DBUILD_TOOLS=ON"
+        (string-append "-DCMAKE_EXE_LINKER_FLAGS=-Wl,-rpath="
+                       (assoc-ref %outputs "out") "/lib"))))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("python" ,python-wrapper)))
+    (inputs
+     `(("libdrm" ,libdrm)
+       ("libva" ,libva)
+       ("pciaccess" ,libpciaccess)
+       ("wayland" ,wayland)
+       ("x11" ,libx11)))
+    (synopsis "Intel Media SDK")
+    (description "MediaSDK provides a plain C API to access hardware-accelerated
+video decode, encode and filtering on Intel's Gen graphics hardware platforms.")
+    (home-page "http://mediasdk.intel.com/")
+    (license (license:non-copyleft "file:///LICENSE"))))
+
+(define-public schroedinger
+  (package
+    (name "schroedinger")
+    (version "1.0.11")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://launchpad.net/" name "/trunk/" version
+                       "/+download/" name "-" version ".tar.gz"))
+       (sha256
+        (base32 "04prr667l4sn4zx256v1z36a0nnkxfdqyln48rbwlamr6l3jlmqy"))))
+    (build-system gnu-build-system)
+    (outputs '("out" "doc"))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (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
+     `(("dash" ,dash)
+       ("gtk-doc" ,gtk-doc)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("glew" ,glew)
+       ("opengl" ,mesa)))
+    (propagated-inputs
+     `(("orc" ,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
+as a joint effort between the BBC and Fluendo.")
+    (home-page "https://launchpad.net/schroedinger")
+    (license
+     ;; This library is licensed under 4 different licenses,
+     ;; and you can choose to use it under the terms of any one of them.
+     (list
+      license:gpl2+
+      license:lgpl2.0+
+      license:expat
+      license:mpl1.1))))
+
+(define-public libquicktime
+  (package
+    (name "libquicktime")
+    (version "1.2.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://sourceforge.net/projects/" name "/files/"
+                       name "/" version "/" name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0s3kshzl3zfjw3phzv73r91fkr9z8q8kc3dhsys4f4xk6ff3alqw"))
+       (patches
+        (search-patches "libquicktime-ffmpeg.patch"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("gettext" ,gettext-minimal)
+       ("doxygen" ,doxygen)
+       ("pkg-config" ,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)))
+    (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 mjpegtools
+  (package
+    (name "mjpegtools")
+    (version "2.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://sourceforge.net/projects/" name "/files/"
+                       name "/" version "/" name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0kvhxr5hkabj9v7ah2rzkbirndfqdijd9hp8v52c1z6bxddf019w"))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("gtk+-2" ,gtk+-2)
+       ("libdv" ,libdv)
+       ("libpng" ,libpng)
+       ("libquicktime" ,libquicktime)
+       ("sdl" ,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
+compression software is hardware independent.")
+    (home-page "http://mjpeg.sourceforge.net/")
+    (license license:gpl2+)))
+
+(define-public libmms
+  (package
+    (name "libmms")
+    (version "0.6.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://sourceforge.net/projects/" name "/files/"
+                       name "/" version "/" name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0kvhxr5hkabj9v7ah2rzkbirndfqdijd9hp8v52c1z6bxddf019w"))))
+    (build-system gnu-build-system)
+    (synopsis "MMS stream protocol library")
+    (description "Libmms is a library for streaming media files using the mmst
+and mmsh protocols.")
+    (home-page "https://sourceforge.net/projects/libmms/")
+    (license license:lgpl2.1+)))
+
+(define-public libvideogfx
+  (package
+    (name "libvideogfx")
+    (version "1.0.9")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/farindk/libvideogfx")
+         (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "154b0j8cfg879pg08xcbwvbz8z9nrfnyj31i48vxir1psas70ynq"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-build-errors
+           (lambda _
+             (substitute* "libvideogfx/graphics/fileio/ffmpeg.cc"
+               (("av_close_input_file\\(")
+                "avformat_close_input(&"))
+             (substitute* "libvideogfx/graphics/fileio/png.cc"
+               (("is != NULL") "is.good()"))
+             #t)))))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("libtool" ,libtool)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("ffmpeg" ,ffmpeg-2.8)
+       ("jpeg" ,libjpeg-turbo)
+       ("png" ,libpng)
+       ("x11" ,libx11)
+       ("xext" ,libxext)))
+    (synopsis "Video processing library")
+    (description "LibVideoGfx is a C++ library for low-level video processing.
+It aims at speeding up the development process for image and video processing
+applications by providing high-level classes for commonly required tasks.")
+    (home-page "https://dirk-farin.net/software/libvideogfx/index.html")
+    (license license:lgpl2.1+)))
+
+(define-public libde265
+  (package
+    (name "libde265")
+    (version "1.0.8")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/strukturag/libde265")
+         (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1dzflqbk248lz5ws0ni5acmf32b3rmnq5gsfaz7691qqjxkl1zml"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:configure-flags
+       (list "--disable-static")))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("libtool" ,libtool)
+       ("pkg-config" ,pkg-config)
+       ("python" ,python-wrapper)))
+    (inputs
+     `(;; XXX: Build fails with libvideogfx.
+       ;; ("libvideogfx" ,libvideogfx)
+       ("qt" ,qtbase)
+       ("sdl" ,sdl)))
+    (synopsis "H.265 video codec implementation")
+    (description "Libde265 is an implementation of the h.265 video codec.  It is
+written from scratch and has a plain C API to enable a simple integration into
+other software.")
+    (home-page "https://www.libde265.org/")
+    (license
+     (list
+      ;; Applications.
+      license:expat
+      ;; Library.
+      license:lgpl3+))))
+
+(define-public tslib
+  (package
+    (name "tslib")
+    (version "1.22")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/libts/tslib")
+         (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "197p6vy539wvfrv23agbvmay4rjya1jnisi46llm0nx4cvqh48by"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:test-target "tests"
+       #:configure-flags
+       (list "--with-sdl2")))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("libtool" ,libtool)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("linux-headers" ,linux-libre-headers)
+       ("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.")
+    (home-page "http://www.tslib.org/")
+    (license license:lgpl2.1+)))
+
+(define-public libmpeg3
+  (package
+    (name "libmpeg3")
+    (version "1.8")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://sourceforge.net/projects/heroines/files/"
+                       "releases/081108/" name "-" version "-src.tar.bz2"))
+       (sha256
+        (base32 "1i53vv0wm5qfwgg1z7j9g14s6c7gxxkiy4vbdkq3lijjyyz50vv5"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:test-target "test"
+       #:make-flags
+       (list
+        (string-append "A52DIR=" (assoc-ref %build-inputs "liba52"))
+        (string-append "DST=" (assoc-ref %outputs "out") "/bin"))
+     #:phases
+     (modify-phases %standard-phases
+       (add-after 'unpack 'delete-bundled-a52dec
+         (lambda _
+           (delete-file-recursively "a52dec-0.7.3")
+           (substitute* "Makefile"
+             (("include Makefile\\.a52")
+              "")
+             (("\\(A52DIR\\)/include")
+              "(A52DIR)/include/a52dec")
+             (("LIBS = " match)
+              (string-append match "-la52 ")))
+           #t))
+       (add-before 'install 'create-destination-directory
+         (lambda* (#:key outputs #:allow-other-keys)
+           (let* ((out (string-append (assoc-ref outputs "out"))))
+             (mkdir-p (string-append out "/bin"))
+             #t))))))
+  (native-inputs
+   `(("nasm" ,nasm)))
+  (inputs
+   `(("liba52" ,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
+parallel video decoding, frame-accurate editing, YUV 4:2:2, and ATSC transport
+stream decoding")
+  (home-page "http://heroinewarrior.com/libmpeg3.php")
+  (license license:gpl2+)))
+
 (define-public aalib
   (package
     (name "aalib")
@@ -225,14 +703,15 @@ old-fashioned output methods with powerful ascii-art renderer.")
 (define-public celluloid
   (package
     (name "celluloid")
-    (version "0.19")
+    (version "0.20")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "https://github.com/celluloid-player/celluloid/releases"
-                           "/download/v" version "/celluloid-" version ".tar.xz"))
+       (uri (string-append "https://github.com/celluloid-player/celluloid"
+                           "/releases/download/v" version
+                           "/celluloid-" version ".tar.xz"))
        (sha256
-        (base32 "1s3qkism96gi44incvsb6rqg255qcvjvw61ya7nw30md0sapj4sl"))))
+        (base32 "0kjjv2pcdvwcn4yi8kbpsca7pnx6cx6xdznv7ppqm0fssx68qyb3"))))
     (build-system glib-or-gtk-build-system)
     (native-inputs
      `(("intltool" ,intltool)
@@ -289,7 +768,7 @@ television and DVD.  It is also known as AC-3.")
 (define-public libaom
   (package
     (name "libaom")
-    (version "2.0.0")
+    (version "2.0.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -298,7 +777,7 @@ television and DVD.  It is also known as AC-3.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1616xjhj6770ykn82ml741h8hx44v507iky3s9h7a5lnk9d4cxzy"))))
+                "1vakwmcwvmmrdw7460m8hzq96y71lxqix8b2g07c6s12br0rrdhl"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("perl" ,perl)
@@ -351,8 +830,8 @@ shared library and encoder and decoder command-line executables.")
 (define-public libx264
   ;; There are no tags in the repository, so we take the version number from
   ;; the X264_BUILD variable defined in x264.h.
-  (let ((version "159")
-        (commit "1771b556ee45207f8711744ccbd5d42a3949b14c")
+  (let ((version "161")
+        (commit "4c2aafd864dd201832ec2be0fef4484925146650")
         (revision "0"))
     (package
       (name "libx264")
@@ -365,7 +844,7 @@ shared library and encoder and decoder command-line executables.")
                 (file-name (git-file-name name version))
                 (sha256
                  (base32
-                  "0kmi78gs5101d4df33il5bmjbns54nvdjsyn44xiw60lwsg11vwz"))))
+                  "1i6v9h3xx9pi0zmlj3anwwjxqa63sbhy9crrif8dphipwfn9hyg5"))))
       (build-system gnu-build-system)
       (native-inputs
        `(("pkg-config" ,pkg-config)
@@ -406,14 +885,14 @@ H.264 (MPEG-4 AVC) video streams.")
 (define-public mkvtoolnix
   (package
     (name "mkvtoolnix")
-    (version "37.0.0")
+    (version "52.0.0")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://mkvtoolnix.download/sources/"
                            "mkvtoolnix-" version ".tar.xz"))
        (sha256
-        (base32 "0r4d9318ymb9a0mkc0shi9p4kjy3m70s49v4f8dmjhvj63silhix"))
+        (base32 "15y7ahlifsclnkl70wn5w34dil8nwcwcjnw3k2ydqc6dz4vb0j5s"))
        (modules '((guix build utils)))
        (snippet '(begin
                    ;; Delete bundled libraries.
@@ -435,10 +914,12 @@ H.264 (MPEG-4 AVC) video streams.")
        ("file" ,file)
        ("flac" ,flac)
        ("fmt" ,fmt)
+       ("libdvdread" ,libdvdread)
        ("libmatroska" ,libmatroska)
        ("libogg" ,libogg)
        ("libvorbis" ,libvorbis)
        ("lzo" ,lzo)
+       ("pcre2" ,pcre2)
        ("pugixml" ,pugixml)
        ("qtbase" ,qtbase)
        ("qtmultimedia" ,qtmultimedia)
@@ -529,7 +1010,7 @@ H.264 (MPEG-4 AVC) video streams.")
 (define-public straw-viewer
   (package
     (name "straw-viewer")
-    (version "0.0.6")
+    (version "0.1.2")
     (source
      (origin
        (method git-fetch)
@@ -538,8 +1019,7 @@ H.264 (MPEG-4 AVC) video streams.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32
-         "0a9g10r56jdm2jx2yg9i8j8nczq74x78c29bhannr7ybnm2r6w2a"))))
+        (base32 "1s6w8m9377ajy21x7lf6mbgp5yk5i70nhzmqscibjnarr3xfg9zs"))))
     (build-system perl-build-system)
     (native-inputs
      `(("perl-module-build" ,perl-module-build)
@@ -553,13 +1033,13 @@ H.264 (MPEG-4 AVC) video streams.")
        ("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)))
-
-       ;; Required only when building the graphical interface (--gtk).
-       ;;("perl-file-sharedir" ,perl-file-sharedir)
+       ("xdg-utils" ,xdg-utils)))
+    ;; Required only when building the graphical interface (--gtk).
+    ;;("perl-file-sharedir" ,perl-file-sharedir)
+    
+    ;; Some videos play without youtube-dl, but others silently fail to.
+    (propagated-inputs
+     `(("youtube-dl" ,youtube-dl)))
     (arguments
      `(#:modules ((guix build perl-build-system)
                   (guix build utils)
@@ -714,7 +1194,7 @@ designed to encode video or images into an H.265 / HEVC encoded bitstream.")
 (define-public libass
   (package
     (name "libass")
-    (version "0.14.0")
+    (version "0.15.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -722,8 +1202,10 @@ designed to encode video or images into an H.265 / HEVC encoded bitstream.")
                     version "/libass-" version ".tar.xz"))
               (sha256
                (base32
-                "18iqznl4mabhj9ywfsz4kwvbsplcv1jjxq50nxssvbj8my1267w8"))))
+                "0cz8v6kh3f2j5rdjrra2z0h715fa16vjm7kambvqx9hak86262cz"))))
     (build-system gnu-build-system)
+    (arguments
+     '(#:configure-flags '("--disable-static")))
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("nasm" ,nasm)))
@@ -731,8 +1213,7 @@ designed to encode video or images into an H.265 / HEVC encoded bitstream.")
      `(("freetype" ,freetype)
        ("fribidi" ,fribidi)
        ("fontconfig" ,fontconfig)
-       ("harfbuzz" ,harfbuzz)
-       ("enca" ,enca)))
+       ("harfbuzz" ,harfbuzz)))
     (home-page "https://github.com/libass/libass")
     (synopsis "Subtitle rendering library for the ASS/SSA format")
     (description "libass is a subtitle rendering library for the
@@ -751,6 +1232,8 @@ ASS/SSA (Advanced Substation Alpha/SubStation Alpha) subtitle format.")
                (base32
                 "1x3j6yfyxl52adgnabycr0n38j9hx2j74la0hz0n8cnh9ry4d2qj"))))
     (build-system gnu-build-system)
+    (arguments
+     '(#:configure-flags '("--disable-static")))
     (native-inputs `(("pkg-config" ,pkg-config)))
     (inputs
      `(("freeglut" ,freeglut)
@@ -818,14 +1301,14 @@ SMPTE 314M.")
 (define-public libmatroska
   (package
     (name "libmatroska")
-    (version "1.6.0")
+    (version "1.6.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://dl.matroska.org/downloads/"
                            "libmatroska/libmatroska-" version ".tar.xz"))
        (sha256
-        (base32 "0cs03ghf7h65yvv8yf915bx4a47i6d3w2mjbs5zpz000spmrrj7y"))))
+        (base32 "140r3q6n4a0n11zaf76lvyxd9gp435dgm8gn7mj0gar2hjm7ji5w"))))
     (build-system cmake-build-system)
     (inputs
      `(("libebml" ,libebml)))
@@ -847,7 +1330,7 @@ libebml is a C++ library to read and write EBML files.")
 (define-public libva
   (package
     (name "libva")
-    (version "2.7.1")
+    (version "2.9.0")
     (source
      (origin
        (method url-fetch)
@@ -859,7 +1342,7 @@ libebml is a C++ library to read and write EBML files.")
              (string-append "https://www.freedesktop.org/software/vaapi/releases/"
                             "libva/libva-" version "/libva-" version ".tar.bz2")))
        (sha256
-        (base32 "014av7ayyc624xfmr63xhbgg7nw8fynsswj1g2wmk4lnkyfz23x0"))))
+        (base32 "0jsq6ia3fzyzvq7lxsrn4a8kn2kx4z3v777xkxn6k4ny5lww2i73"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
@@ -980,6 +1463,8 @@ operate properly.")
        ("sdl" ,sdl2)
        ("soxr" ,soxr)
        ("speex" ,speex)
+       ;; FFmpeg is not yet compatible with SRT > 1.4.1.
+       ("srt" ,srt-1.4.1)
        ("twolame" ,twolame)
        ("vidstab" ,vidstab)
        ("x265" ,x265)
@@ -990,7 +1475,6 @@ operate properly.")
        ("perl" ,perl)
        ("pkg-config" ,pkg-config)
        ("texinfo" ,texinfo)
-       ("python" ,python-2) ; scripts use interpreter python2
        ("speex" ,speex)
        ("yasm" ,yasm)))
     (arguments
@@ -1064,6 +1548,7 @@ operate properly.")
                '())
          "--enable-libsoxr"
          "--enable-libspeex"
+         "--enable-libsrt"
          "--enable-libtheora"
          "--enable-libtwolame"
          "--enable-libvidstab"
@@ -1142,7 +1627,10 @@ audio/video codec library.")
     (arguments
      (substitute-keyword-arguments (package-arguments ffmpeg)
        ((#:configure-flags flags)
-        `(delete "--enable-librav1e" ,flags))))))
+        `(delete "--enable-librav1e" ,flags))))
+    (inputs (fold alist-delete
+                  (package-inputs ffmpeg)
+                  '("rav1e")))))
 
 (define-public ffmpeg-3.4
   (package
@@ -1157,11 +1645,69 @@ audio/video codec library.")
                "1j7mdk9szrljgv4sdx69bm1pnbb3cldbdxbkr42jbdi9zn11gl7g"))))
     (arguments
      (substitute-keyword-arguments (package-arguments ffmpeg)
+       ((#:modules modules %gnu-build-system-modules)
+        `((srfi srfi-1)
+          ,@modules))
        ((#:configure-flags flags)
-        `(delete "--enable-libdav1d" (delete "--enable-libaom" (delete "--enable-librav1e"
-                  ,flags))))))
-    (inputs (alist-delete "dav1d" (alist-delete "libaom" (alist-delete "rav1e"
-                           (package-inputs ffmpeg)))))))
+        `(fold delete
+               ,flags
+               '("--enable-libdav1d"
+                 "--enable-libaom"
+                 "--enable-librav1e"
+                 "--enable-libsrt")))))
+    (inputs (fold alist-delete
+                  (package-inputs ffmpeg)
+                  '("dav1d" "libaom" "rav1e" "srt")))))
+
+(define-public ffmpeg-2.8
+  (package
+    (inherit ffmpeg)
+    (version "2.8.16")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://ffmpeg.org/releases/ffmpeg-"
+                                  version ".tar.xz"))
+              (sha256
+               (base32
+                "14n0xg22yz1r4apif2idm91s3avcmkz4sl8gyj5763gcy415k2bb"))))
+    (arguments
+     `(#:tests? #f               ; XXX: Enable them later, if required
+       #:configure-flags
+       (list
+        "--disable-static"
+        "--enable-shared"
+        "--extra-cflags=-DFF_API_OLD_ENCODE_VIDEO -DFF_API_OLD_ENCODE_AUDIO")
+       #:phases
+       (modify-phases %standard-phases
+         (replace 'configure
+           (lambda* (#:key outputs configure-flags #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (substitute* "configure"
+                 (("#! /bin/sh") (string-append "#!" (which "sh"))))
+                ;; configure does not work followed by "SHELL=..." and
+                ;; "CONFIG_SHELL=..."; set environment variables instead.
+               (setenv "SHELL" (which "bash"))
+               (setenv "CONFIG_SHELL" (which "bash"))
+               (apply invoke
+                      "./configure"
+                      (string-append "--prefix=" out)
+                      ;; Add $libdir to the RUNPATH of all the binaries.
+                      (string-append "--extra-ldflags=-Wl,-rpath="
+                                     out "/lib")
+                      configure-flags))))
+         (add-before
+             'check 'set-ld-library-path
+           (lambda _
+             ;; Allow $(top_builddir)/ffmpeg to find its dependencies when
+             ;; running tests.
+             (let* ((dso  (find-files "." "\\.so$"))
+                    (path (string-join (map dirname dso) ":")))
+               (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")))))
 
 (define-public ffmpeg-for-stepmania
   (hidden-package
@@ -1225,7 +1771,7 @@ videoformats depend on the configuration flags of ffmpeg.")
 (define-public vlc
   (package
     (name "vlc")
-    (version "3.0.11.1")
+    (version "3.0.12")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1234,7 +1780,7 @@ videoformats depend on the configuration flags of ffmpeg.")
                     "/vlc-" version ".tar.xz"))
               (sha256
                (base32
-                "1f46h0hv7fk35zg4iczlp7ib7h2jmh8m4r5klw3g2558ib9134qq"))))
+                "0ygqihw2c5vvzv8950dlf7rdwz1cpz1668jgyja604ljibrmix7g"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("flex" ,flex)
@@ -1308,6 +1854,8 @@ videoformats depend on the configuration flags of ffmpeg.")
        ("sdl-image" ,sdl-image)
        ("speex" ,speex)
        ("speexdsp" ,speexdsp)
+       ;; VLC is not yet compatible with SRT > 1.4.1.
+       ("srt" ,srt-1.4.1)
        ("taglib" ,taglib)
        ("twolame" ,twolame)
        ("unzip" ,unzip)
@@ -1466,7 +2014,7 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.")
 (define-public mpv
   (package
     (name "mpv")
-    (version "0.32.0")
+    (version "0.33.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -1475,7 +2023,7 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0kmy1q0hp87vq4rpv7py04x8bpg1wmlzaibavmkf713jqp6qy596"))))
+                "06cmycd2gb826kf2zv470w6nhzyk9sdhjydsdiinbgb902lzcpfy"))))
     (build-system waf-build-system)
     (native-inputs
      `(("perl" ,perl) ; for zsh completion file
@@ -1607,9 +2155,8 @@ To load this plugin, specify the following option when starting mpv:
 (define-public libvpx
   (package
     (name "libvpx")
-    (version "1.8.2")
+    (version "1.9.0")
     (source (origin
-              ;; XXX: Upstream does not provide tarballs for > 1.6.1.
               (method git-fetch)
               (uri (git-reference
                     (url "https://chromium.googlesource.com/webm/libvpx")
@@ -1617,7 +2164,7 @@ To load this plugin, specify the following option when starting mpv:
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0gyq4fkbd2fv7m1mm9xrvn6rk6f4jsmbv8bnlhingmnrvyncnmnr"))
+                "16xv6ambc82g14h1y0q1vyy57wp6j9fbp0nk0wd5csnrw407rhry"))
               (patches (search-patches "libvpx-CVE-2016-2818.patch"))))
     (build-system gnu-build-system)
     (arguments
@@ -1635,7 +2182,11 @@ To load this plugin, specify the following option when starting mpv:
                       ;; The configure script does not understand some of the GNU
                       ;; options, so we only add the flags specified above.
                       (apply invoke  "./configure" configure-flags))))
-       #:tests? #f)) ; no check target
+
+       ;; XXX: The test suite wants to download 871 files from a cloud storage
+       ;; service (see test/test-data.sha1).  It is possible to specify a
+       ;; custom directory, but there seems to be no tarball with all files.
+       #:tests? #f))
     (native-inputs
      `(("perl" ,perl)
        ("yasm" ,yasm)))
@@ -1647,15 +2198,25 @@ To load this plugin, specify the following option when starting mpv:
 (define-public youtube-dl
   (package
     (name "youtube-dl")
-    (version "2020.07.28")
+    (version "2021.01.16")
     (source (origin
               (method url-fetch)
-              (uri (string-append "https://github.com/ytdl-org/youtube-dl/"
-                                  "releases/download/" version "/youtube-dl-"
-                                  version ".tar.gz"))
+              (uri (string-append "https://youtube-dl.org/downloads/latest/"
+                                  "youtube-dl-" version ".tar.gz"))
               (sha256
                (base32
-                "1if7xyi7g9rpni1jbs7gv5m12s34qdb15dpfbbjn8120h16y7cqz"))))
+                "1q8pvw5j45k8nvr3d9rvnhi6xaj1mdqlkrg7q7qq6zciq5r54fhi"))
+              (snippet
+               '(begin
+                  ;; Delete the pre-generated files, except for the man page
+                  ;; which requires 'pandoc' to build.
+                  (for-each delete-file '("youtube-dl"
+                                          ;;pandoc is needed to generate
+                                          ;;"youtube-dl.1"
+                                          "youtube-dl.bash-completion"
+                                          "youtube-dl.fish"
+                                          "youtube-dl.zsh"))
+                  #t))))
     (build-system python-build-system)
     (arguments
      ;; The problem here is that the directory for the man page and completion
@@ -1666,6 +2227,26 @@ To load this plugin, specify the following option when starting mpv:
      ;; 'youtube-dl.bash-completion'.
      `(#:tests? #f ; Many tests fail. The test suite can be run with pytest.
        #:phases (modify-phases %standard-phases
+                  (add-after 'unpack 'default-to-the-ffmpeg-input
+                    (lambda _
+                      ;; See <https://issues.guix.gnu.org/43418#5>.
+                      ;; ffmpeg is big but required to request free formats
+                      ;; from, e.g., YouTube so pull it in unconditionally.
+                      ;; Continue respecting the --ffmpeg-location argument.
+                      (substitute* "youtube_dl/postprocessor/ffmpeg.py"
+                        (("\\.get\\('ffmpeg_location'\\)" match)
+                         (format #f "~a or '~a'" match (which "ffmpeg"))))
+                      #t))
+                  (add-before 'build 'build-generated-files
+                    (lambda _
+                      ;; Avoid the make targets that require pandoc.
+                      (invoke "make"
+                              "PYTHON=python"
+                              "youtube-dl"
+                              ;;"youtube-dl.1"   ; needs pandoc
+                              "youtube-dl.bash-completion"
+                              "youtube-dl.zsh"
+                              "youtube-dl.fish")))
                   (add-before 'install 'fix-the-data-directories
                     (lambda* (#:key outputs #:allow-other-keys)
                       (let ((prefix (assoc-ref outputs "out")))
@@ -1689,6 +2270,10 @@ To load this plugin, specify the following option when starting mpv:
                         (copy-file "youtube-dl.zsh"
                                    (string-append zsh "/_youtube-dl"))
                         #t))))))
+    (native-inputs
+     `(("zip" ,zip)))
+    (inputs
+     `(("ffmpeg" ,ffmpeg)))
     (synopsis "Download videos from YouTube.com and other sites")
     (description
      "Youtube-dl is a small command-line program to download videos from
@@ -1795,7 +2380,7 @@ other site that youtube-dl supports.")
 (define-public you-get
   (package
     (name "you-get")
-    (version "0.4.1456")
+    (version "0.4.1500")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -1804,7 +2389,7 @@ other site that youtube-dl supports.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0n6h5qkhjwsxy8rf6n4i8hd8dah38hbvchh9272c53gydgp9lp29"))))
+                "02wkmq6bjg9iz0kccsgs192aiky99l2jnw1xs6zjhvjvq7jyvf7s"))))
     (build-system python-build-system)
     (inputs
      `(("ffmpeg" ,ffmpeg)))             ; for multi-part and >=1080p videos
@@ -1834,7 +2419,7 @@ audio, images) from the Web.  It can use either mpv or vlc for playback.")
 (define-public youtube-viewer
   (package
     (name "youtube-viewer")
-    (version "3.7.7")
+    (version "3.8.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -1843,7 +2428,7 @@ audio, images) from the Web.  It can use either mpv or vlc for playback.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1gc1b1zm55w2w62ayc6k51l31fswk17b072lpbq65is3ngjg6c98"))))
+                "0xdybiihd66b79rbsawjhxs9snm78gld5ziz3gnp8vdcw0bshwz7"))))
     (build-system perl-build-system)
     (native-inputs
      `(("perl-module-build" ,perl-module-build)))
@@ -1856,6 +2441,7 @@ audio, images) from the Web.  It can use either mpv or vlc for playback.")
        ("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)
@@ -1928,7 +2514,8 @@ Both command-line and GTK2 interface are available.")
                 "1zxfnw1xbghcj7b3zz5djndv6gwssxda19cz1lrlqrkg8577r7kd"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:configure-flags '("--disable-bdjava-jar")
+     `(#:configure-flags '("--disable-bdjava-jar"
+                           "--disable-static")
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'refer-to-libxml2-in-.pc-file
@@ -2099,7 +2686,7 @@ for use with HTML5 video.")
 (define-public avidemux
   (package
     (name "avidemux")
-    (version "2.7.4")
+    (version "2.7.6")
     (source (origin
              (method url-fetch)
              (uri (string-append
@@ -2107,7 +2694,7 @@ for use with HTML5 video.")
                    "avidemux_" version ".tar.gz"))
              (sha256
               (base32
-               "1acdb3m37vdzzbm8mwyibcn8msi7birb5v30qfi7jli5r00src3x"))
+               "1kwkn976ppahrcr74bnv6sqx75pzl9y21m1mvr5ksi1m6lgp924s"))
              (patches (search-patches "avidemux-install-to-lib.patch"))))
     (build-system cmake-build-system)
     (native-inputs
@@ -2125,6 +2712,7 @@ for use with HTML5 video.")
        ("glu" ,glu)
        ("jack" ,jack-1)
        ("lame" ,lame)
+       ("libaom" ,libaom)
        ("libva" ,libva)
        ("libvdpau" ,libvdpau)
        ("libvorbis" ,libvorbis)
@@ -2139,7 +2727,7 @@ for use with HTML5 video.")
        #:phases
        ;; Make sure files inside the included ffmpeg tarball are
        ;; patch-shebanged.
-       (let ((ffmpeg "ffmpeg-4.1.4"))
+       (let ((ffmpeg "ffmpeg-4.2.3"))
          (modify-phases %standard-phases
            (add-before 'patch-source-shebangs 'unpack-ffmpeg
              (lambda _
@@ -2218,7 +2806,7 @@ capabilities.")
 (define-public vapoursynth
   (package
     (name "vapoursynth")
-    (version "49")
+    (version "52")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -2227,7 +2815,7 @@ capabilities.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1d298mlb24nlc2x7pixfbkd0qbpv4c706c32idsgpi96z1spkhvl"))))
+                "1krfdzc2x2vxv4nq9kiv1c09hgj525qn120ah91fw2ikq8ldvmx4"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("autoconf" ,autoconf)
@@ -2289,14 +2877,14 @@ and custom quantization matrices.")
 (define-public streamlink
   (package
     (name "streamlink")
-    (version "1.4.1")
+    (version "1.7.0")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "streamlink" version))
         (sha256
          (base32
-          "1s458k8z1lv0w8i82sxs8dys66fwm4yr9j1m7fzp7r0piz8phcpd"))))
+          "0ymqxzpwk7mr77w0dnnv7dj63d46q7cl1l4vj9llgn8jfaj64ypq"))))
     (build-system python-build-system)
     (home-page "https://github.com/streamlink/streamlink")
     (native-inputs
@@ -2428,20 +3016,49 @@ tools, XML authoring components, and an extensible plug-in based API.")
 (define-public v4l-utils
   (package
     (name "v4l-utils")
-    (version "1.16.6")
+    (version "1.20.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://linuxtv.org/downloads/v4l-utils"
                                   "/v4l-utils-" version ".tar.bz2"))
               (sha256
                (base32
-                "1bkqlrizx0j2rd6ybam2x17bjrpwzl4v4szmnzm3cmixis3w3npr"))))
+                "1xr66y6w422hil6s7n8d61a2vhwh4im8l267amf41jvw7xqihqcm"))))
     (build-system gnu-build-system)
+    ;; Separate graphical tools in order to save almost 1 GiB on the closure
+    ;; for the common case.
+    (outputs '("out" "gui"))
     (arguments
      '(#:configure-flags
-       (list (string-append "--with-udevdir="
+       (list "--disable-static"
+             (string-append "--with-udevdir="
                             (assoc-ref %outputs "out")
-                            "/lib/udev"))))
+                            "/lib/udev"))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'split
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out"))
+                   (gui (assoc-ref outputs "gui")))
+               (mkdir-p (string-append gui "/bin"))
+               (mkdir-p (string-append gui "/share/man/man1"))
+               (mkdir-p (string-append gui "/share/applications"))
+               (for-each
+                (lambda (prog)
+                  (for-each
+                   (lambda (file)
+                     (rename-file (string-append out file)
+                                  (string-append gui file)))
+                   (list
+                    (string-append "/bin/" prog)
+                    (string-append "/share/man/man1/" prog ".1")
+                    (string-append "/share/applications/" prog ".desktop"))))
+                '("qv4l2" "qvidcap"))
+               (copy-recursively (string-append out "/share/icons")
+                                 (string-append gui "/share/icons"))
+               (delete-file-recursively (string-append out "/share/icons"))
+               (rmdir (string-append out "/share/applications"))
+               #t))))))
     (native-inputs
      `(("perl" ,perl)
        ("pkg-config" ,pkg-config)))
@@ -2462,7 +3079,7 @@ be used for realtime video capture via Linux-specific APIs.")
 (define-public obs
   (package
     (name "obs")
-    (version "25.0.8")
+    (version "26.1.2")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -2471,14 +3088,24 @@ be used for realtime video capture via Linux-specific APIs.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0j2k65q3wfyfxhvkl6icz4qy0s3kfqhksizy2i3ah7yml266axbj"))))
+                "1k1asqiqw757v59ayx0w029ril947hs0lcp8n91knzjl891fr4nc"))))
     (build-system cmake-build-system)
     (arguments
-     `(#:tests? #f ; no test suite
-       #:configure-flags
-       (list (string-append "-DOBS_VERSION_OVERRIDE=" ,version))))
+     `(#:configure-flags
+       (list (string-append "-DOBS_VERSION_OVERRIDE=" ,version)
+             "-DENABLE_UNIT_TESTS=TRUE")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'wrap-executable
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out"))
+                   (plugin-path (getenv "QT_PLUGIN_PATH")))
+               (wrap-program (string-append out "/bin/obs")
+                 `("QT_PLUGIN_PATH" ":" prefix (,plugin-path))))
+             #t)))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     `(("cmocka" ,cmocka)
+       ("pkg-config" ,pkg-config)))
     (inputs
      `(("alsa-lib" ,alsa-lib)
        ("curl" ,curl)
@@ -2496,7 +3123,7 @@ be used for realtime video capture via Linux-specific APIs.")
        ("qtbase" ,qtbase)
        ("qtsvg" ,qtsvg)
        ("qtx11extras" ,qtx11extras)
-       ("speex" ,speex)
+       ("speexdsp" ,speexdsp)
        ("v4l-utils" ,v4l-utils)
        ("zlib" ,zlib)))
     (synopsis "Live streaming software")
@@ -2505,13 +3132,12 @@ video recording and live streaming.  OBS supports capturing audio and video
 from many input sources such as webcams, X11 (for screencasting), PulseAudio,
 and JACK.")
     (home-page "https://obsproject.com")
-    (supported-systems '("x86_64-linux" "i686-linux"))
     (license license:gpl2+)))
 
 (define-public libvdpau
   (package
     (name "libvdpau")
-    (version "1.3")
+    (version "1.4")
     (source
       (origin
         (method git-fetch)
@@ -2521,7 +3147,7 @@ and JACK.")
         (file-name (git-file-name name version))
         (sha256
          (base32
-          "1fb1nh5apr9kzx9bm2lysjwpyva1s60b2l2p230nqgvb11q25hd2"))))
+          "1hc4mcrbr1yhfiy4zfd8wc2iiqbp90z6jswap0jia20vmyk5lqld"))))
     (build-system meson-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
@@ -2539,19 +3165,29 @@ present in modern GPUs.")
 (define-public vdpauinfo
   (package
     (name "vdpauinfo")
-    (version "1.0")
+    (version "1.4")
     (source
       (origin
-        (method url-fetch)
-        (uri (string-append "https://secure.freedesktop.org/~aplattner/vdpau/"
-                            name "-" version ".tar.gz"))
+        (method git-fetch)
+        (uri (git-reference
+              (url "https://gitlab.freedesktop.org/vdpau/vdpauinfo")
+              (commit version)))
+        (file-name (git-file-name name version))
         (sha256
-         (base32
-          "1i2b0k9h8r0lnxlrkgqzmrjakgaw3f1ygqqwzx8w6676g85rcm20"))))
+         (base32 "0s84bavxr39w0r7zfaac7kpbfsg88hgymqyzcr0yvbj1yry3liz2"))))
     (build-system gnu-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'bootstrap
+           ;; ./autogen.sh runs ./configure too soon.
+           (lambda _
+             (invoke "autoreconf" "-fiv"))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("libx11" ,libx11)))
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("libx11" ,libx11)
+       ("pkg-config" ,pkg-config)))
     (propagated-inputs
      `(("libvdpau" ,libvdpau)))
     (home-page "https://wiki.freedesktop.org/www/Software/VDPAU/")
@@ -3067,7 +3703,7 @@ practically any type of media.")
 (define-public libmediainfo
   (package
     (name "libmediainfo")
-    (version "20.03")
+    (version "20.09")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://mediaarea.net/download/source/"
@@ -3075,7 +3711,7 @@ practically any type of media.")
                                   name "_" version ".tar.xz"))
               (sha256
                (base32
-                "0wkzj5s34m8dvy7hif4h8f90q8ncrzd930gij1zzw3h5nw732j38"))))
+                "15ni9pnch6688m72swwax109a7mg4a08yx75qknrx7qa6dbyhz6h"))))
     ;; TODO add a Big Buck Bunny webm for tests.
     (native-inputs
      `(("autoconf" ,autoconf)
@@ -3125,7 +3761,7 @@ MPEG-2, MPEG-4, DVD (VOB)...
 (define-public mediainfo
   (package
     (name "mediainfo")
-    (version "20.03")
+    (version "20.09")
     (source (origin
               (method url-fetch)
               ;; Warning: This source has proved unreliable 1 time at least.
@@ -3136,7 +3772,7 @@ MPEG-2, MPEG-4, DVD (VOB)...
                                   name "_" version ".tar.xz"))
               (sha256
                (base32
-                "1f1shnycf0f1fwka9k9s250l228xjkg0k4k73h8bpld8msighgnw"))))
+                "0rqg9z7s5bk7vlvjrs4gackzg7ib05a0dffi2ihsjf5a7kw7wcir"))))
     (native-inputs
      `(("autoconf" ,autoconf)
        ("automake" ,automake)
@@ -3162,10 +3798,51 @@ information and other metadata about audio or video files.  It supports the
 many codecs and formats supported by libmediainfo.")
     (license license:bsd-2)))
 
+(define-public atomicparsley
+  (package
+    (name "atomicparsley")
+    (version "20200701.154658.b0d6223")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/wez/atomicparsley")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1kym2l5y34nmbrrlkfmxsf1cwrvch64kb34jp0hpa0b89idbhwqh"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:tests? #f ;; no tests included
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'configure 'set-cmake-version
+           (lambda* _
+             (substitute* "CMakeLists.txt"
+               ;; At the time of writing, Guix has CMake at 3.16, but
+               ;; AtomicParsley uses 3.17.  This brings the required CMake
+               ;; version down to what Guix can afford.
+               (("VERSION 3.17") "VERSION 3.16"))
+             #t))
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (bin (string-append out "/bin")))
+               (install-file "AtomicParsley" bin))
+             #t)))))
+    (inputs
+     `(("zlib" ,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,
+iTunes-style metadata.")
+    (home-page "https://github.com/wez/atomicparsley")
+    (license license:gpl2+)))
+
 (define-public livemedia-utils
   (package
     (name "livemedia-utils")
-    (version "2019.05.29")
+    (version "2020.11.19")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -3173,11 +3850,12 @@ many codecs and formats supported by libmediainfo.")
                     version ".tar.gz"))
               (sha256
                (base32
-                "08i63jr8ihn1xiq5z5n3yls3yz6li5sg0s454l56p5bcvbrw81my"))))
+                "16w6yxdbmjdhvffnrb752dn4llf3l0wb00dgdkyia0vqsv2qqyn7"))))
     (build-system gnu-build-system)
     (arguments
-     '(#:tests? #f                      ; no tests
-       #:make-flags (list "CC=gcc"
+     `(#:tests? #f                      ; no tests
+       #:make-flags (list (string-append "CC=" ,(cc-for-target))
+                          (string-append "CXX=" ,(cxx-for-target))
                           (string-append "LDFLAGS=-Wl,-rpath="
                                          (assoc-ref %outputs "out") "/lib")
                           (string-append "PREFIX="
@@ -3192,6 +3870,8 @@ many codecs and formats supported by libmediainfo.")
                     (lambda _
                       (invoke "./genMakefiles"
                               "linux-with-shared-libraries"))))))
+    (inputs
+     `(("openssl" ,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
@@ -3325,33 +4005,72 @@ tools for styling them, including a built-in real-time video preview.")
    ; by upstream). See https://github.com/Aegisub/Aegisub/blob/master/LICENCE
    ; src/MatroskaParser.(c|h) is under bsd-3 with permission from the author
 
-(define-public gst-transcoder
-  (package
-    (name "gst-transcoder")
-    (version "1.12.2")
-    (source
-     (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/pitivi/gst-transcoder")
-             (commit version)))
-       (file-name (git-file-name name version))
-       (sha256
-        (base32
-         "0nw1zykqc6c8xs3ri55pm00pwyz93z4y4nd880apfiwj7yv5p3az"))))
-    (build-system meson-build-system)
-    (inputs
-     `(("gobject-introspection" ,gobject-introspection)
-       ("glib" ,glib)
-       ("gstreamer" ,gstreamer)
-       ("gst-plugins-base" ,gst-plugins-base)))
+(define-public pitivi
+  ;; Pitivi switched to a non-semantic versioning scheme close before 1.0
+  (let ((latest-semver "0.999.0")
+        (%version "2020.09.2"))
+   (package
+     (name "pitivi")
+     (version (string-append latest-semver "-" %version))
+     (source (origin
+               (method url-fetch)
+               (uri (string-append "mirror://gnome/sources/" name "/"
+                                   (version-major+minor %version) "/"
+                                   name "-" %version ".tar.xz"))
+               (sha256
+                (base32
+                 "0hzvv4wia4rk0kvq16y27imq2qd4q5lg3vx99hdcjdb1x3zqqfg0"))))
+     (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)))
     (native-inputs
-     `(("python" ,python)
+     `(("gettext" ,gettext-minimal)
+       ("glib:bin" ,glib "bin")
+       ("itstool" ,itstool)
        ("pkg-config" ,pkg-config)))
-    (home-page "https://github.com/pitivi/gst-transcoder/")
-    (synopsis "GStreamer Transcoding API")
-    (description "GStreamer Transcoding API")
-    (license license:lgpl2.1)))
+     (arguments
+      `(#:glib-or-gtk? #t
+        #:phases
+        (modify-phases %standard-phases
+          (add-after 'glib-or-gtk-wrap 'wrap-other-dependencies
+            (lambda* (#:key outputs #:allow-other-keys)
+              (let ((prog (string-append (assoc-ref outputs "out")
+                                         "/bin/pitivi")))
+                (wrap-program prog
+                  `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
+                  `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))
+                  ;; We've only added inputs for what Pitivi deems either
+                  ;; necessary or optional.  Let the user's packages take
+                  ;; precedence in case they have e.g. the full gst-plugins-bad.
+                  `("GST_PLUGIN_SYSTEM_PATH" suffix
+                    (,(getenv "GST_PLUGIN_SYSTEM_PATH")))))
+                #t)))))
+     (home-page "http://www.pitivi.org")
+     (synopsis "Video editor based on GStreamer Editing Services")
+     (description "Pitivi is a video editor built upon the GStreamer Editing
+Services.  It aims to be an intuitive and flexible application that can appeal
+to newbies and professionals alike.")
+     (license license:lgpl2.1+))))
 
 (define-public gavl
   (package
@@ -3442,7 +4161,7 @@ It counts more than 100 plugins.")
 (define-public motion
   (package
     (name "motion")
-    (version "4.2.2")
+    (version "4.3.2")
     (home-page "https://motion-project.github.io/")
     (source (origin
               (method git-fetch)
@@ -3451,7 +4170,7 @@ It counts more than 100 plugins.")
                     (commit (string-append "release-" version))))
               (sha256
                (base32
-                "05c1gx75xy2hw49x6vkydvwxbr80kipsc3nr906k3hq8735svx6f"))
+                "09xs815jsivcilpmnrx2jkcxirj4lg5kp99fkr0p2sdxw03myi95"))
               (file-name (git-file-name name version))))
     (build-system gnu-build-system)
     (native-inputs
@@ -3468,7 +4187,7 @@ It counts more than 100 plugins.")
      '(#:phases (modify-phases %standard-phases
                   (replace 'bootstrap
                     (lambda _
-                      (patch-shebang "version.sh")
+                      (patch-shebang "scripts/version.sh")
                       (invoke "autoreconf" "-vfi"))))
        #:configure-flags '("--sysconfdir=/etc")
        #:make-flags (list (string-append "sysconfdir="
@@ -3741,15 +4460,16 @@ transitions, and effects and then export your film to many common formats.")
 (define-public dav1d
   (package
     (name "dav1d")
-    (version "0.7.1")
+    (version "0.8.1")
     (source
       (origin
-        (method url-fetch)
-        (uri (string-append "https://downloads.videolan.org/pub/videolan"
-                            "/dav1d/" version "/dav1d-" version ".tar.xz"))
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://code.videolan.org/videolan/dav1d.git")
+               (commit version)))
+        (file-name (git-file-name name version))
         (sha256
-         (base32
-          "1hnkfcg57bv5rib6cnj39dy1jx0q7zi5fb2fz52hf2y0bv8bad1k"))))
+         (base32 "1820fpmmq1vxjzjmza6ydk4fgxipb8gmcc5skybki64qn7410v7x"))))
     (build-system meson-build-system)
     (native-inputs `(("nasm" ,nasm)))
     (home-page "https://code.videolan.org/videolan/dav1d")
@@ -3790,7 +4510,7 @@ video from a Wayland session.")
 (define-public gaupol
   (package
     (name "gaupol")
-    (version "1.7")
+    (version "1.9")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -3799,7 +4519,7 @@ video from a Wayland session.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1cp0ka8hzma1dxiisdhl2fznxklj2pl63vkdqcd91lrblghdj6x9"))))
+                "1mmjg8nwhif2hmmp8i11643izwzdf839brqdai3ksfg0qkh8rnxk"))))
     (build-system python-build-system)
     (native-inputs
      `(("gettext" ,gettext-minimal)
@@ -3922,19 +4642,19 @@ transcode or reformat the videos in any way, producing perfect backups.")
 (define-public svt-av1
   (package
     (name "svt-av1")
-    (version "0.8.4")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                     (url "https://github.com/OpenVisualCloud/SVT-AV1")
-                     (commit (string-append "v" version))))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "0xad35q9sv5w0iihcf9q1f1m7br5anl3vsyx9svnx128iqf0n997"))))
+    (version "0.8.6")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/AOMediaCodec/SVT-AV1")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1wzamg89azi1f93wxvdy7silsgklckc754ca066k33drvyacicyw"))))
     (build-system cmake-build-system)
-    ;; SVT-AV1 only supports Intel-compatible CPUs.
-    (supported-systems '("x86_64-linux" "i686-linux"))
+    ;; SVT-AV1 only supports 64-bit Intel-compatible CPUs.
+    (supported-systems '("x86_64-linux"))
     (arguments
       ;; The test suite tries to download test data and git clone a 3rd-party
       ;; fork of libaom.  Skip it.
@@ -3953,7 +4673,41 @@ transcode or reformat the videos in any way, producing perfect backups.")
     (description "SVT-AV1 is an AV1 codec implementation.  The encoder is a
 work-in-progress, aiming to support video-on-demand and live streaming
 applications.  It only supports Intel-compatible CPUs (x86).")
-    (home-page "https://github.com/OpenVisualCloud/SVT-AV1")
+    (home-page "https://github.com/AOMediaCodec/SVT-AV1")
+    (license license:bsd-2)))
+
+(define-public svt-vp9
+  (package
+    (name "svt-vp9")
+    (version "0.3.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/OpenVisualCloud/SVT-VP9")
+                     (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1ypdiw4cq22llvm8jyszxdq6r1aydkj80dsxjarjn5b7c1f2q3ar"))))
+    ;; SVT-AV1 only supports 64-bit Intel-compatible CPUs.
+    (supported-systems '("x86_64-linux"))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:tests? #f ; No test suite
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'install-documentation
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref %outputs "out"))
+                    (doc (string-append out "/share/doc/" ,name "-" ,version)))
+               (copy-recursively "../source/Docs" doc)
+               #t))))))
+    (native-inputs
+     `(("yasm" ,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
+on supporting video-on-demand and live encoding on Intel Xeon processors.")
     (license license:bsd-2)))
 
 (define-public w-scan
@@ -3987,7 +4741,7 @@ result in several formats:
 (define-public rav1e
   (package
     (name "rav1e")
-    (version "0.3.3")
+    (version "0.3.5")
     (source
       (origin
         (method url-fetch)
@@ -3996,17 +4750,18 @@ result in several formats:
          (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "053bh8hc6jj81ydq4gcak01b0ady59hvkl7d87im3y8nafg7xzb4"))))
+          "0c40gq4qid2apmlgzx98f6826jmn2n61prk0rn7sjxaw7yimw854"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-aom-sys" ,rust-aom-sys-0.1)
+       (("rust-aom-sys" ,rust-aom-sys-0.2)
         ("rust-arbitrary" ,rust-arbitrary-0.2)
         ("rust-arg-enum-proc-macro" ,rust-arg-enum-proc-macro-0.3)
         ("rust-arrayvec" ,rust-arrayvec-0.5)
         ("rust-backtrace" ,rust-backtrace-0.3)
         ("rust-bitstream-io" ,rust-bitstream-io-0.8)
-        ("rust-byteorder" ,rust-byteorder-1.3)
+        ("rust-byteorder" ,rust-byteorder-1)
+        ("rust-cc" ,rust-cc-1)
         ("rust-cfg-if" ,rust-cfg-if-0.1)
         ("rust-clap" ,rust-clap-2)
         ("rust-console" ,rust-console-0.11)
@@ -4018,6 +4773,7 @@ result in several formats:
         ("rust-ivf" ,rust-ivf-0.1)
         ("rust-libc" ,rust-libc-0.2)
         ("rust-log" ,rust-log-0.4)
+        ("rust-nasm-rs" ,rust-nasm-rs-0.2)
         ("rust-noop-proc-macro" ,rust-noop-proc-macro-0.2)
         ("rust-num-derive" ,rust-num-derive-0.3)
         ("rust-num-traits" ,rust-num-traits-0.2)
@@ -4026,17 +4782,15 @@ result in several formats:
         ("rust-rand-chacha" ,rust-rand-chacha-0.2)
         ("rust-rayon" ,rust-rayon-1)
         ("rust-rust-hawktracer" ,rust-rust-hawktracer-0.7)
+        ("rust-rustc-version" ,rust-rustc-version-0.2)
         ("rust-scan-fmt" ,rust-scan-fmt-0.2)
         ("rust-serde" ,rust-serde-1)
         ("rust-signal-hook" ,rust-signal-hook-0.1)
         ("rust-simd-helpers" ,rust-simd-helpers-0.1)
-        ("rust-thiserror" ,rust-thiserror-1.0)
+        ("rust-thiserror" ,rust-thiserror-1)
         ("rust-toml" ,rust-toml-0.5)
-        ("rust-y4m" ,rust-y4m-0.5)
-        ("rust-cc" ,rust-cc-1)
-        ("rust-nasm-rs" ,rust-nasm-rs-0.1)
-        ("rust-rustc-version" ,rust-rustc-version-0.2)
-        ("rust-vergen" ,rust-vergen-3.1))
+        ("rust-vergen" ,rust-vergen-3.1)
+        ("rust-y4m" ,rust-y4m-0.5))
        #:cargo-development-inputs
        (("rust-assert-cmd" ,rust-assert-cmd-1)
         ("rust-criterion" ,rust-criterion-0.3)
@@ -4246,3 +5000,40 @@ BBC iPlayer output.")
 includes @code{dvdxchap} tool for extracting chapter information from DVD.")
     (license license:gpl2)
     (home-page "https://www.bunkus.org/videotools/ogmtools/")))
+
+(define-public libcaption
+  (package
+    (name "libcaption")
+    (version "0.7")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/szatmary/libcaption")
+                     (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "16mhw8wpl7wdjj4n7rd1c294p1r8r322plj7z91crla5aah726rq"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:tests? #f ; Cannot figure out how to run the unit tests
+       #:configure-flags '("-DENABLE_RE2C=ON")))
+    (native-inputs
+     `(("re2c" ,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
+standards.
+
+608 support is currently limited to encoding and decoding the necessary control
+and preamble codes as well as support for the Basic North American, Special
+North American and Extended Western European character sets.
+
+708 support is limited to encoding the 608 data in NTSC field 1 user data type
+structure.
+
+In addition, utility functions to create h.264 SEI (Supplementary enhancement
+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)))
diff --git a/gnu/packages/vim.scm b/gnu/packages/vim.scm
index 5a8011bc76..3e120fac17 100644
--- a/gnu/packages/vim.scm
+++ b/gnu/packages/vim.scm
@@ -70,7 +70,7 @@
 (define-public vim
   (package
     (name "vim")
-    (version "8.2.1145")
+    (version "8.2.2067")
     (source (origin
              (method git-fetch)
              (uri (git-reference
@@ -79,7 +79,7 @@
              (file-name (git-file-name name version))
              (sha256
               (base32
-               "01z5hgi7m8d63gl1fgfn4p9rsdaqbl5xn4vr247nbxjq5x5hrs7a"))))
+               "02cd953h69k9klrcwi756namwg39ka7if9ccc399ihb1l5f3kr66"))))
     (build-system gnu-build-system)
     (arguments
      `(#:test-target "test"
@@ -92,6 +92,7 @@
                (("/usr/bin/nawk") (which "gawk")))
              (substitute* '("src/testdir/Makefile"
                             "src/testdir/test_normal.vim"
+                            "src/testdir/test_popupwin.vim"
                             "src/testdir/test_system.vim"
                             "src/testdir/test_terminal.vim"
                             "src/testdir/test_terminal2.vim")
@@ -109,7 +110,7 @@
              ;; Make sure the TERM environment variable is set for the tests
              (setenv "TERM" "xterm")
              #t))
-         (add-before 'check 'skip-failing-tests
+         (add-before 'check 'skip-or-fix-failing-tests
            (lambda _
              ;; This test assumes that PID 1 is run as root and that the user
              ;; running the test suite does not have permission to kill(1, 0)
@@ -120,22 +121,26 @@
              (substitute* "src/testdir/test_swap.vim"
                (("if !IsRoot\\(\\)") "if 0"))
 
-             ;; These tests fail on upstream's CI on FreeBSD because they are
-             ;; run as root.  They fail for us because PID 1 and the test suite
-             ;; are run by the same user.
-             (substitute* '("src/testdir/test_backup.vim"
-                            "src/testdir/test_writefile.vim")
-               (("CheckNotBSD") "throw 'Skipped: this test fails on Guix'")
-               (("'bsd'") "'unix'"))
-
-             ;; This test checks how the terminal looks after executing some
+             ;; These tests check how the terminal looks after executing some
              ;; actions.  The path of the bash binary is shown, which results in
              ;; a difference being detected.  Patching the expected result is
              ;; non-trivial due to the special format used, so skip the test.
              (substitute* "src/testdir/test_terminal.vim"
+               ((".*Test_open_term_from_cmd.*" line)
+                (string-append line "return\n"))
                ((".*Test_terminal_postponed_scrollback.*" line)
                 (string-append line "return\n")))
-             #t)))))
+             (substitute* "src/testdir/test_popupwin.vim"
+               ((".*Test_popup_drag_termwin.*" line)
+                (string-append line "return\n")))
+             #t))
+         (add-after 'install 'install-guix.vim
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let ((vimdir (string-append (assoc-ref outputs "out") "/share/vim")))
+               (mkdir-p vimdir)
+               (copy-file (assoc-ref inputs "guix.vim")
+                          (string-append vimdir "/vimrc"))
+               #t))))))
     (inputs
      `(("gawk" ,gawk)
        ("ncurses" ,ncurses)
@@ -143,6 +148,7 @@
        ("tcsh" ,tcsh)))                 ; For runtime/tools/vim32
     (native-inputs
      `(("libtool" ,libtool)
+       ("guix.vim" ,(search-auxiliary-file "guix.vim"))
 
        ;; For tests.
        ("tzdata" ,tzdata-for-tests)))
@@ -165,7 +171,7 @@ configuration files.")
   (package (inherit vim)
     (name "xxd")
     (arguments
-     `(#:make-flags '("CC=gcc")
+     `(#:make-flags (list ,(string-append "CC=" (cc-for-target)))
        #:tests? #f ; there are none
        #:phases
        (modify-phases %standard-phases
@@ -498,8 +504,7 @@ commit or run any Git arbitrary command.")
      '(#:install-plan
        '(("autoload" "share/vim/vimfiles/")
          ("doc" "share/vim/vimfiles/")
-         ("plugin" "share/vim/vimfiles/")
-         ("t" "share/vim/vimfiles/"))))
+         ("plugin" "share/vim/vimfiles/"))))
     (synopsis "Statusline for Vim")
     (description
      "@code{vim-airline} is an extensible statusline for Vim.
@@ -569,7 +574,7 @@ are detected, the user is notified.")
 (define-public editorconfig-vim
   (package
     (name "editorconfig-vim")
-    (version "0.3.3")
+    (version "1.1.1")
     (source
       (origin
         (method git-fetch)
@@ -579,27 +584,13 @@ are detected, the user is notified.")
         (file-name (git-file-name name version))
         (sha256
          (base32
-          "0vssfl1wjq0mv0p30c3dszwrh4yy90vwxmmdgqaxf5rykik7bdfd"))
-        (modules '((guix build utils)))
-        (snippet
-         '(begin
-            (delete-file-recursively "plugin/editorconfig-core-py") #t))))
+          "0mp80bi2m56bb93szw87vy6q5s85yk9g91sl4pr51316rgdv5kkv"))))
     (build-system copy-build-system)
     (arguments
-     '(#:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'patch-editorconfig-path
-           (lambda* (#:key inputs #:allow-other-keys)
-             (let ((editorconfig (assoc-ref inputs "editorconfig-core")))
-               (substitute* "plugin/editorconfig.vim"
-                 (("/opt") editorconfig))
-               #t))))
-       #:install-plan
+     '(#:install-plan
        '(("autoload" "share/vim/vimfiles/")
          ("doc" "share/vim/vimfiles/")
          ("plugin" "share/vim/vimfiles/"))))
-    (inputs
-     `(("editorconfig-core" ,editorconfig-core-c)))
     (home-page "https://editorconfig.org/")
     (synopsis "EditorConfig plugin for Vim")
     (description "EditorConfig makes it easy to maintain the correct coding
@@ -712,7 +703,7 @@ refactor Vim in order to:
 (define-public vifm
   (package
     (name "vifm")
-    (version "0.10.1")
+    (version "0.11")
     (source
       (origin
         (method url-fetch)
@@ -723,7 +714,7 @@ refactor Vim in order to:
                               "vifm-" version ".tar.bz2")))
         (sha256
          (base32
-          "0fyhxh7ndjn8fyjhj14ymkr3pjcs3k1xbs43g7xvvq85vdb6y04r"))))
+          "0rqyd424y0g5b5basw2ybb60r9gar4f40d1xgzr3c2dsy4jpwvyh"))))
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags '("--disable-build-timestamp")
@@ -793,13 +784,13 @@ With the package comes a plugin to use vifm as a vim file selector.")
 (define-public python-pynvim
   (package
     (name "python-pynvim")
-    (version "0.4.1")
+    (version "0.4.2")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "pynvim" version))
               (sha256
                (base32
-                "0n2cx22lrmbq7xk7356lyn6k77ryqvkxplw9k0fglk35ckb1isam"))))
+                "13qgwkqbx012j5spis1aw8rb120rw0zphgjy1j58irax8r6j1ikb"))))
     (build-system python-build-system)
     (propagated-inputs
      `(("python-greenlet" ,python-greenlet)
@@ -813,13 +804,10 @@ also works as a library for connecting to and scripting neovim processes
 through its msgpack-rpc API.")
     (license license:asl2.0)))
 
-(define-public python2-pynvim
-  (package-with-python2 python-pynvim))
-
 (define-public vim-guix-vim
   (package
     (name "vim-guix-vim")
-    (version "0.1")
+    (version "0.1.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -828,7 +816,7 @@ through its msgpack-rpc API.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1f8h8m96fqh3f9hy87spgh9kdqzyxl11n9s3rywvyq5xhn489bnk"))))
+                "10bfy0dgwizxr56b4272b7sqajpr6lnz332pzx055dis2zzjap8z"))))
     (build-system copy-build-system)
     (arguments
      '(#:install-plan
diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm
index d0223bce3d..2262aa6197 100644
--- a/gnu/packages/virtualization.scm
+++ b/gnu/packages/virtualization.scm
@@ -6,7 +6,7 @@
 ;;; Copyright © 2017 Alex Vong <alexvong1995@gmail.com>
 ;;; Copyright © 2017 Andy Patterson <ajpatter@uwaterloo.ca>
 ;;; Copyright © 2017, 2018, 2019 Rutger Helling <rhelling@mykolab.com>
-;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Danny Milosavljevic <dannym@scratchpost.org>
 ;;; Copyright © 2018 Sou Bunnbu <iyzsong@member.fsf.org>
 ;;; Copyright © 2018 Julien Lepiller <julien@lepiller.eu>
@@ -15,6 +15,8 @@
 ;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
 ;;; Copyright © 2020 Mathieu Othacehe <m.othacehe@gmail.com>
 ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2020 Brett Gilio <brettg@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -85,6 +87,7 @@
   #:use-module (gnu packages polkit)
   #:use-module (gnu packages protobuf)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages python-check)
   #:use-module (gnu packages python-crypto)
   #:use-module (gnu packages python-web)
   #:use-module (gnu packages python-xyz)
@@ -129,21 +132,34 @@
 (define-public qemu
   (package
     (name "qemu")
-    (version "5.0.0")
+    (version "5.1.0")
     (source (origin
-             (method url-fetch)
-             (uri (string-append "https://download.qemu.org/qemu-"
-                                 version ".tar.xz"))
-             (sha256
-              (base32
-               "1dlcwyshdp94fwd30pddxf9bn2q8dfw5jsvry2gvdj551wmaj4rg"))))
-    (build-system gnu-build-system)
-    (arguments
-     `(;; Running tests in parallel can occasionally lead to failures, like:
-       ;; boot_sector_test: assertion failed (signature == SIGNATURE): (0x00000000 == 0x0000dead)
-       #:parallel-tests? #f
-
-       ;; FIXME: Disable tests on i686 to work around
+              (method url-fetch)
+              (uri (string-append "https://download.qemu.org/qemu-"
+                                  version ".tar.xz"))
+               (sha256
+                (base32
+                 "1rd41wwlvp0vpialjp2czs6i3lsc338xc72l3zkbb7ixjfslw5y9"))
+              (patches (search-patches "qemu-build-info-manual.patch"))
+              (modules '((guix build utils)))
+              (snippet
+               '(begin
+                  ;; Fix a bug in the do_ioctl_ifconf() function of qemu to
+                  ;; make ioctl(…, SIOCGIFCONF, …) work for emulated 64 bit
+                  ;; architectures.  The size of struct ifreq is handled
+                  ;; incorrectly.
+                  ;; https://lists.nongnu.org/archive/html/qemu-devel/2021-01/msg01545.html
+                  (substitute* '("linux-user/syscall.c")
+                    (("^([[:blank:]]*)const argtype ifreq_arg_type.*$" line indent)
+                     (string-append line indent
+                                    "const argtype ifreq_max_type[] = { MK_STRUCT(STRUCT_ifmap_ifreq) };\n"))
+                    (("^([[:blank:]]*)target_ifreq_size[[:blank:]]=.*$" _ indent)
+                     (string-append indent "target_ifreq_size = thunk_type_size(ifreq_max_type, 0);")))
+                  #t))))
+     (outputs '("out" "doc"))            ;4.7 MiB of HTML docs
+     (build-system gnu-build-system)
+     (arguments
+     `(;; FIXME: Disable tests on i686 to work around
        ;; <https://bugs.gnu.org/40527>.
        #:tests? ,(or (%current-target-system)
                      (not (string=? "i686-linux" (%current-system))))
@@ -178,6 +194,31 @@
                                               '("include")
                                               input-directories)
                #t)))
+         (add-after 'unpack 'extend-test-time-outs
+           (lambda _
+             ;; These tests can time out on heavily-loaded and/or slow storage.
+             (substitute* (cons* "tests/qemu-iotests/common.qemu"
+                                 (find-files "tests/qemu-iotests" "^[0-9]+$"))
+               (("QEMU_COMM_TIMEOUT=[0-9]+" match)
+                (string-append match "9")))))
+         (add-after 'unpack 'disable-unusable-tests
+           (lambda _
+             (substitute* "tests/Makefile.include"
+               ;; Comment out the test-qga test, which needs /sys and
+               ;; fails within the build environment.
+               (("check-unit-.* tests/test-qga" all)
+                (string-append "# " all))
+               ;; Comment out the test-char test, which needs networking and
+               ;; fails within the build environment.
+               (("check-unit-.* tests/test-char" all)
+                (string-append "# " all)))
+             (substitute* "tests/qtest/Makefile.include"
+               ;; Disable the following test, which triggers a crash on some
+               ;; x86 CPUs (see https://issues.guix.info/43048 and
+               ;; https://bugs.launchpad.net/qemu/+bug/1896263).
+               (("check-qtest-i386-y \\+= bios-tables-test" all)
+                (string-append "# " all)))
+             #t))
          (add-after 'patch-source-shebangs 'patch-/bin/sh-references
            (lambda _
              ;; Ensure the executables created by these source files reference
@@ -188,7 +229,7 @@
              #t))
          (replace 'configure
            (lambda* (#:key inputs outputs (configure-flags '())
-                           #:allow-other-keys)
+                     #:allow-other-keys)
              ;; The `configure' script doesn't understand some of the
              ;; GNU options.  Thus, add a new phase that's compatible.
              (let ((out (assoc-ref outputs "out")))
@@ -218,23 +259,12 @@
                         ,(string-append "--prefix=" out)
                         ,(string-append "--sysconfdir=/etc")
                         ,@configure-flags)))))
-         (add-after 'install 'install-info
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             ;; Install the Info manual, unless Texinfo is missing.
-             (when (assoc-ref inputs "texinfo")
-               (let* ((out  (assoc-ref outputs "out"))
-                      (dir (string-append out "/share/info")))
-                 (invoke "make" "info")
-                 (for-each (lambda (info)
-                             (install-file info dir))
-                           (find-files "." "\\.info"))))
-             #t))
          ;; Create a wrapper for Samba. This allows QEMU to use Samba without
          ;; pulling it in as an input. Note that you need to explicitly install
          ;; Samba in your Guix profile for Samba support.
-         (add-after 'install-info 'create-samba-wrapper
+         (add-after 'install 'create-samba-wrapper
            (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let* ((out    (assoc-ref %outputs "out"))
+             (let* ((out    (assoc-ref outputs "out"))
                     (libexec (string-append out "/libexec")))
                (call-with-output-file "samba-wrapper"
                  (lambda (port)
@@ -243,18 +273,14 @@ exec smbd $@")))
                (chmod "samba-wrapper" #o755)
                (install-file "samba-wrapper" libexec))
              #t))
-         (add-before 'check 'disable-unusable-tests
+         (add-after 'install 'move-html-doc
            (lambda* (#:key inputs outputs #:allow-other-keys)
-             (substitute* "tests/Makefile.include"
-               ;; Comment out the test-qga test, which needs /sys and
-               ;; fails within the build environment.
-               (("check-unit-.* tests/test-qga" all)
-                (string-append "# " all)))
-             (substitute* "tests/Makefile.include"
-               ;; Comment out the test-char test, which needs networking and
-               ;; fails within the build environment.
-               (("check-unit-.* tests/test-char" all)
-                (string-append "# " all)))
+             (let* ((out (assoc-ref outputs "out"))
+                    (doc (assoc-ref outputs "doc"))
+                    (qemu-doc (string-append doc "/share/doc/qemu-" ,version)))
+               (mkdir-p qemu-doc)
+               (rename-file (string-append out "/share/doc/qemu")
+                            (string-append qemu-doc "/html")))
              #t)))))
     (inputs                                       ; TODO: Add optional inputs.
      `(("alsa-lib" ,alsa-lib)
@@ -324,34 +350,34 @@ server and embedded PowerPC, and S390 guests.")
      (substitute-keyword-arguments (package-arguments qemu)
        ((#:configure-flags _ '(list))
         ;; Restrict to the host's architecture.
-        (match (car (string-split (or (%current-target-system)
-                                      (%current-system))
-                                  #\-))
-          ("i686"
-           '(list "--target-list=i386-softmmu"))
-          ("x86_64"
-           '(list "--target-list=i386-softmmu,x86_64-softmmu"))
-          ("mips64"
-           '(list (string-append "--target-list=mips-softmmu,mipsel-softmmu,"
-                                 "mips64-softmmu,mips64el-softmmu")))
-          ("mips"
-           '(list "--target-list=mips-softmmu,mipsel-softmmu"))
-          ("aarch64"
-           '(list "--target-list=arm-softmmu,aarch64-softmmu"))
-          ("arm"
-           '(list "--target-list=arm-softmmu"))
-          ("alpha"
-           '(list "--target-list=alpha-softmmu"))
-          ("powerpc64"
-           '(list "--target-list=ppc-softmmu,ppc64-softmmu"))
-          ("powerpc"
-           '(list "--target-list=ppc-softmmu"))
-          ("s390"
-           '(list "--target-list=s390x-softmmu"))
-          ("riscv"
-           '(list "--target-list=riscv32-softmmu,riscv64-softmmu"))
-          (else   ; An empty list actually builds all the targets.
-            ''())))))
+        (let ((system (or (%current-target-system)
+                          (%current-system))))
+          (cond
+            ((string-prefix? "i686" system)
+             '(list "--target-list=i386-softmmu"))
+            ((string-prefix? "xasdf86_64" system)
+             '(list "--target-list=i386-softmmu,x86_64-softmmu"))
+            ((string-prefix? "mips64" system)
+             '(list (string-append "--target-list=mips-softmmu,mipsel-softmmu,"
+                                   "mips64-softmmu,mips64el-softmmu")))
+            ((string-prefix? "mips" system)
+             '(list "--target-list=mips-softmmu,mipsel-softmmu"))
+            ((string-prefix? "aarch64" system)
+             '(list "--target-list=arm-softmmu,aarch64-softmmu"))
+            ((string-prefix? "arm" system)
+             '(list "--target-list=arm-softmmu"))
+            ((string-prefix? "alpha" system)
+             '(list "--target-list=alpha-softmmu"))
+            ((string-prefix? "powerpc64" system)
+             '(list "--target-list=ppc-softmmu,ppc64-softmmu"))
+            ((string-prefix? "powerpc" system)
+             '(list "--target-list=ppc-softmmu"))
+            ((string-prefix? "s390" system)
+             '(list "--target-list=s390x-softmmu"))
+            ((string-prefix? "riscv" system)
+             '(list "--target-list=riscv32-softmmu,riscv64-softmmu"))
+            (else   ; An empty list actually builds all the targets.
+              ''()))))))
 
     ;; Remove dependencies on optional libraries, notably GUI libraries.
     (native-inputs (fold alist-delete (package-native-inputs qemu)
@@ -510,7 +536,11 @@ server and embedded PowerPC, and S390 guests.")
                (("\\$\\(GHC\\)")
                 "$(GHC) -package-db=../package.conf.d"))
              #t))
-
+         (add-after 'configure 'make-ghc-use-shared-libraries
+           (lambda _
+             (substitute* "Makefile"
+               (("HFLAGS =") "HFLAGS = -dynamic -fPIC"))
+             #t))
          (add-after 'configure 'fix-installation-directories
            (lambda _
              (substitute* "Makefile"
@@ -675,7 +705,7 @@ server and embedded PowerPC, and S390 guests.")
        ;; For the documentation.
        ("python-docutils" ,python-docutils)
        ("sphinx" ,python-sphinx)
-       ("pandoc" ,ghc-pandoc)
+       ("pandoc" ,pandoc)
        ("dot" ,graphviz)
 
        ;; Test dependencies.
@@ -937,7 +967,7 @@ all common programming languages.  Vala bindings are also provided.")
 (define-public lxc
   (package
     (name "lxc")
-    (version "3.1.0")
+    (version "4.0.6")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -945,7 +975,7 @@ all common programming languages.  Vala bindings are also provided.")
                     version ".tar.gz"))
               (sha256
                (base32
-                "1igxqgx8q9cp15mcp1y8j564bl85ijw04jcmgb1s5bmfbg1751sd"))))
+                "0qz4l7mlhq7hx53q606qgvkyzyr01glsw290v8ppzvxn1fydlrci"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
@@ -1280,14 +1310,14 @@ domains, their live performance and resource utilization statistics.")
 (define-public criu
   (package
     (name "criu")
-    (version "3.14")
+    (version "3.15")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://download.openvz.org/criu/criu-"
                                   version ".tar.bz2"))
               (sha256
                (base32
-                "1jrr3v99g18gc0hriz0avq6ccdvyya0j6wwz888sdsc4icc30gzn"))))
+                "09d0j24x0cyc7wkgi7cnxqgfjk7kbdlm79zxpj8d356sa3rw2z24"))))
     (build-system gnu-build-system)
     (arguments
      `(#:test-target "test"
@@ -1368,7 +1398,8 @@ domains, their live performance and resource utilization statistics.")
        ("libcap" ,libcap)
        ("libnet" ,libnet)
        ("libnl" ,libnl)
-       ("libbsd" ,libbsd)))
+       ("libbsd" ,libbsd)
+       ("nftables" ,nftables)))
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("perl" ,perl)
@@ -1512,18 +1543,19 @@ monitor/GPU.")
                        "-xvf" source))))
          (replace 'build
            (lambda* (#:key import-path #:allow-other-keys)
-             (chdir (string-append "src/" import-path))
-             ;; XXX: requires 'go-md2man'.
-             ;; (invoke "make" "man")
-             (invoke "make")))
+             (with-directory-excursion (string-append "src/" import-path)
+               ;; XXX: requires 'go-md2man'.
+               ;; (invoke "make" "man")
+               (invoke "make"))))
          ;; (replace 'check
          ;;   (lambda _
          ;;     (invoke "make" "localunittest")))
          (replace 'install
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let ((out (assoc-ref outputs "out")))
-              (invoke "make" "install" "install-bash"
-                      (string-append "PREFIX=" out))))))))
+           (lambda* (#:key import-path outputs #:allow-other-keys)
+             (with-directory-excursion (string-append "src/" import-path)
+               (let ((out (assoc-ref outputs "out")))
+                 (invoke "make" "install" "install-bash"
+                         (string-append "PREFIX=" out)))))))))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
     (inputs
@@ -1567,14 +1599,15 @@ Open Container Initiative specification.")
                        "-xvf" source))))
          (replace 'build
            (lambda* (#:key import-path #:allow-other-keys)
-             (chdir (string-append "src/" import-path))
-             ;; TODO: build manpages with 'go-md2man'.
-             (invoke "make" "SHELL=bash")))
+             (with-directory-excursion (string-append "src/" import-path)
+               ;; TODO: build manpages with 'go-md2man'.
+               (invoke "make" "SHELL=bash"))))
          (replace 'install
-           (lambda* (#:key outputs #:allow-other-keys)
+           (lambda* (#:key import-path outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
                     (bindir (string-append out "/bin")))
-               (install-file "umoci" bindir)
+               (install-file (string-append "src/" import-path "/umoci")
+                             bindir)
                #t))))))
     (home-page "https://umo.ci/")
     (synopsis "Tool for modifying Open Container images")
@@ -1586,19 +1619,20 @@ Open Container Initiative (OCI) image layout and its tagged images.")
 (define-public skopeo
   (package
     (name "skopeo")
-    (version "0.1.40")
+    (version "1.2.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
-                    (url "https://github.com/projectatomic/skopeo")
+                    (url "https://github.com/containers/skopeo")
                     (commit (string-append "v" version))))
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1bagirzdzjhicn5dr691092ac3q6lhz3xngjzgqiqkxnvpz7p6cn"))))
+                "1y9pmijazbgxzriymrm7zrifmkd1x1wad9b3zjcj7zwr6c999dhg"))))
     (build-system go-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     `(("pkg-config" ,pkg-config)
+       ("go-github-com-go-md2man" ,go-github-com-go-md2man)))
     (inputs
      `(("btrfs-progs" ,btrfs-progs)
        ("eudev" ,eudev)
@@ -1609,22 +1643,28 @@ Open Container Initiative (OCI) image layout and its tagged images.")
        ("glib" ,glib)
        ("gpgme" ,gpgme)))
     (arguments
-     '(#:import-path "github.com/projectatomic/skopeo"
+     '(#:import-path "github.com/containers/skopeo"
        #:install-source? #f
-       #:tests? #f ; The tests require Docker
+       #:tests? #f                                ; The tests require Docker
        #:phases
        (modify-phases %standard-phases
          (replace 'build
            (lambda* (#:key import-path #:allow-other-keys)
-             (chdir (string-append "src/" import-path))
-             ;; TODO: build manpages with 'go-md2man'.
-             (invoke "make" "binary-local")))
+             (with-directory-excursion (string-append "src/" import-path)
+               (invoke "make" "bin/skopeo"))))
+         (add-after 'build 'build-docs
+           (lambda* (#:key import-path #:allow-other-keys)
+             (with-directory-excursion (string-append "src/" import-path)
+               (invoke "make" "docs"))))
          (replace 'install
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let ((out (assoc-ref outputs "out")))
-               (invoke "make" "install-binary" "install-completions"
-                       (string-append "PREFIX=" out))))))))
-    (home-page "https://github.com/projectatomic/skopeo")
+           (lambda* (#:key import-path outputs #:allow-other-keys)
+             (with-directory-excursion (string-append "src/" import-path)
+               (let ((out (assoc-ref outputs "out")))
+                 (install-file "default-policy.json"
+                               (string-append out "/etc/containers"))
+                 (invoke "make" "install-binary" "install-completions" "install-docs"
+                         (string-append "PREFIX=" out)))))))))
+    (home-page "https://github.com/containers/skopeo")
     (synopsis "Interact with container images and container image registries")
     (description
      "@command{skopeo} is a command line utility providing various operations
@@ -1755,7 +1795,7 @@ DOS or Microsoft Windows.")
 (define-public xen
   (package
     (name "xen")
-    (version "4.13.0")
+    (version "4.14.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -1764,7 +1804,7 @@ DOS or Microsoft Windows.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0py50n995gv909i0d1lfdcj9wcp5g1d5z6m2291jqqlfyany138g"))))
+                "1r90rvypw76ya9clqw5p02gm1k8hxz73f7gr95ca778nnzvb7xjw"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags
@@ -1878,13 +1918,14 @@ override CC = " (assoc-ref inputs "cross-gcc") "/bin/i686-linux-gnu-gcc"))
                                          new-search-path ":")))
                     (setenv env-name new-env-value)))
                 environment-variable-names))
-             (setenv "CROSS_CPATH" (getenv "CPATH"))
+             (setenv "CROSS_C_INCLUDE_PATH" (getenv "C_INCLUDE_PATH"))
+             (setenv "CROSS_CPLUS_INCLUDE_PATH" (getenv "CPLUS_INCLUDE_PATH"))
              (setenv "CROSS_LIBRARY_PATH" (getenv "LIBRARY_PATH"))
              (filter-environment! cross?
-              '("CROSS_CPATH"
+              '("CROSS_C_INCLUDE_PATH" "CROSS_CPLUS_INCLUDE_PATH"
                 "CROSS_LIBRARY_PATH"))
              (filter-environment! (lambda (e) (not (cross? e)))
-              '("CPATH"
+              '("C_INCLUDE_PATH" "CPLUS_INCLUDE_PATH"
                 "LIBRARY_PATH"))
              ;; Guix tries to be helpful and automatically adds
              ;; mini-os-git-checkout/include to the include path,
@@ -1893,7 +1934,7 @@ override CC = " (assoc-ref inputs "cross-gcc") "/bin/i686-linux-gnu-gcc"))
                                     (not
                                      (string-contains e
                                       "mini-os-git-checkout")))
-              '("CPATH"
+              '("C_INCLUDE_PATH" "CPLUS_INCLUDE_PATH"
                 "LIBRARY_PATH"))
             (setenv "EFI_VENDOR" "guix")
              #t))
@@ -1991,14 +2032,14 @@ administrators and developers in managing the database.")
 (define-public osinfo-db
   (package
     (name "osinfo-db")
-    (version "20200529")
+    (version "20201218")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://releases.pagure.org/libosinfo/osinfo-db-"
                                   version ".tar.xz"))
               (sha256
                (base32
-                "0mbrf9j5wmjhc6jixvhp4jqyxixh1717lqrmzmipdg99xnzba81n"))))
+                "0ydbindwgw7kg861rqii5036gq0dbbbmv35dzrmmv937ddfsxwh0"))))
     (build-system trivial-build-system)
     (arguments
      `(#:modules ((guix build utils))
@@ -2023,3 +2064,48 @@ administrators and developers in managing the database.")
 libosinfo library.  It provides information about guest operating systems for
 use with virtualization provisioning tools")
     (license license:lgpl2.0+)))
+
+(define-public python-transient
+  (package
+    (name "python-transient")
+    (version "0.12")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "transient" version))
+       (sha256
+        (base32
+         "148yiqrmcscsi6787y0f27i1y9cf0gcw3mqfv5frhpmsmv62mv5z"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:tests? #f ; Requires behave
+       #:phases (modify-phases %standard-phases
+                  (add-after 'unpack 'fix-dependencies
+                    (lambda _
+                      (substitute* "setup.py"
+                        (("==")
+                         ">="))
+                      #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)))
+    (native-inputs
+     `(("python-black" ,python-black)
+       ("python-mypy" ,python-mypy)
+       ("python-pyhamcrest" ,python-pyhamcrest)
+       ("python-twine" ,python-twine)))
+    (home-page
+     "https://github.com/ALSchwalm/transient")
+    (synopsis
+     "QEMU Wrapper written in Python")
+    (description
+     "@code{transient} is a wrapper for QEMU allowing the creation of virtual
+machines with shared folder, ssh, and disk creation support.")
+    (license license:expat)))
diff --git a/gnu/packages/visidata.scm b/gnu/packages/visidata.scm
index 68ea401362..c802c088b3 100644
--- a/gnu/packages/visidata.scm
+++ b/gnu/packages/visidata.scm
@@ -17,13 +17,13 @@
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (gnu packages visidata)
-  #:use-module (gnu packages databases)
-  #:use-module (gnu packages python-science)
+  #: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 time)
   #: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))
@@ -31,34 +31,34 @@
 (define-public visidata
   (package
     (name "visidata")
-    (version "1.5.2")
+    (version "2.1.1")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "visidata" version))
        (sha256
         (base32
-         "10adfyn4gkisvciqawgh2lakkhhnjjxiyp7mzbgcwkq1b3sigpf1"))))
+         "0sn0hnlrrbydgwdza20g2zdlchsas39hbkxzyxnrc13sp26zmmnx"))))
     (build-system python-build-system)
-    ;; Tests disabled because they are not packaged with the source tarball.
-    ;; Upstream suggests tests will be packaged with tarball around 2.0 release.
-    (arguments '(#:tests? #f))
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests? (invoke "pytest"))
+             #t)))))
     (inputs
-     `(("python-dateutil" ,python-dateutil)
-       ("python-fonttools" ,python-fonttools)
-       ("python-h5py" ,python-h5py)
-       ("python-lxml" ,python-lxml)
-       ("python-openpyxl" ,python-openpyxl)
-       ("python-pandas" ,python-pandas)
-       ("python-psycopg2" ,python-psycopg2)
-       ("python-pyyaml" ,python-pyyaml)
-       ("python-requests" ,python-requests)
-       ("python-xlrd" ,python-xlrd)))
+     `(("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 (list license:gpl3
-                   license:expat)))) ;; visidata/vdtui.py
+    (license license:gpl3)))
diff --git a/gnu/packages/vlang.scm b/gnu/packages/vlang.scm
index d1296c1c2f..e0b2e7bcfc 100644
--- a/gnu/packages/vlang.scm
+++ b/gnu/packages/vlang.scm
@@ -1,5 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2020 Ryan Prior <rprior@protonmail.com>
+;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -18,15 +20,20 @@
 
 (define-module (gnu packages vlang)
   #:use-module (gnu packages glib)
+  #:use-module (gnu packages node)
+  #:use-module (gnu packages sqlite)
+  #:use-module (gnu packages tls)
+  #:use-module (gnu packages xorg)
   #:use-module (guix build-system gnu)
   #:use-module (guix git-download)
   #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix utils)
   #:use-module (guix packages))
 
-(define-public v
+(define-public vlang
   (package
-   (name "v")
-   (version "0.1.27")
+   (name "vlang")
+   (version "0.1.29")
    (source
     (origin
      (method git-fetch)
@@ -35,20 +42,18 @@
            (commit version)))
      (file-name (git-file-name name version))
      (sha256
-      (base32 "1d9qhacllvkqif42jaayixhjyhx7pzslh8p1yr5p19447q763fq1"))))
+      (base32 "1rqi7cah5nq8aggrib9xvdpfjxq20li91svv0w9yny6nn1ag7snx"))))
    (build-system gnu-build-system)
    (arguments
-    '(#:tests? #f ; tests are broken in v 0.1.27
-      #:make-flags
-      `("CC=gcc"
-        "GITCLEANPULL=true"
-        "GITFASTCLONE=mkdir -p"
-        "TCCREPO="
-        "TMPTCC=tcc"
-        ,(string-append "TMPVC=" (assoc-ref %build-inputs "vc"))
-        "VCREPO="
-        "VERBOSE=1"
-        "V_ALWAYS_CLEAN_TMP=false")
+    `(#:make-flags
+      (list (string-append "CC=" ,(cc-for-target))
+            "TMPTCC=tcc"
+            (string-append "VC=" (assoc-ref %build-inputs "vc"))
+            "GITCLEANPULL=true"
+            "GITFASTCLONE=mkdir -p"
+            "TCCREPO="
+            "VCREPO="
+            "VERBOSE=1")
       #:phases
       (modify-phases %standard-phases
         (delete 'configure)
@@ -56,22 +61,32 @@
           (lambda _
             (substitute* "Makefile"
               (("rm -rf") "true")
-              (("v self") "v -cc gcc cmd/v"))
+              (("v self") (string-append "v -cc " ,(cc-for-target) " cmd/v")))
             #t))
-        ;; A few tests are broken in v 0.1.27. This function should be
-        ;; enabled to run tests in the next release.
-        ;; (replace 'check
-        ;;   (lambda _
-        ;;     (let* ((tmpbin "tmp/bin")
-        ;;            (gcc (which "gcc")))
-        ;;       (mkdir-p tmpbin)
-        ;;       (symlink gcc (string-append tmpbin "/cc"))
-        ;;       (setenv "PATH" (string-append tmpbin ":" (getenv "PATH")))
-        ;;       (invoke "./v" "test-fixed"))
-        ;;     #t))
-        (replace 'install
+        (add-before 'check 'delete-failing-tests
+          ;; XXX As always, these should eventually be fixed and run.
           (lambda _
-            (let* ((bin (string-append (assoc-ref %outputs "out") "/bin"))
+            (for-each delete-file
+                      '("vlib/v/gen/x64/tests/x64_test.v"
+                        "vlib/v/tests/repl/repl_test.v"
+                        "vlib/v/tests/valgrind/valgrind_test.v"
+                        "vlib/v/tests/valgrind/strings_and_arrays.vv"
+                        "vlib/v/tests/live_test.v"
+                        "vlib/net/websocket/ws_test.v"))
+            #t))
+        (replace 'check
+          (lambda* (#:key tests? #:allow-other-keys)
+            (let* ((bin "tmp/bin")
+                   (gcc (which "gcc")))
+              (when tests?
+                (mkdir-p bin)
+                (symlink gcc (string-append bin "/cc"))
+                (setenv "PATH" (string-append bin ":" (getenv "PATH")))
+                (invoke "./v" "test-fixed")))
+            #t))
+        (replace 'install
+          (lambda* (#:key outputs #:allow-other-keys)
+            (let* ((bin (string-append (assoc-ref outputs "out") "/bin"))
                    (tools (string-append bin "/cmd/tools"))
                    (thirdparty (string-append bin "/thirdparty"))
                    (vlib (string-append bin "/vlib"))
@@ -90,7 +105,9 @@
     `(("glib" ,glib)))
    (native-inputs
     `(("vc"
-       ,(let ((vc-version "0884d7092f4c2a4f8ca16da6f1792efa235247be"))
+       ;; Versions are not consistently tagged, but the matching commit will
+       ;; probably have ‘v0.x.y’ in the commit message.
+       ,(let ((vc-version "b01d0fcda4b55861baa4be82e307cca4834b1641"))
           ;; v bootstraps from generated c source code from a dedicated
           ;; repository. It's readable, as generated source goes, and not at all
           ;; obfuscated, and it's about 15kb. The original source written in
@@ -104,10 +121,20 @@
                   (commit vc-version)))
             (file-name (git-file-name "vc" vc-version))
             (sha256
-             (base32 "17bs09iwxfd0si70j48n9nd16gfgcj8imd0azypk3xzzbz4wybnz")))))))
+             (base32 "052gp5q2k31r3lci3rx4k0vy0vjdjva64xvrbbihn8lgmw63lc9f")))))
+
+      ;; For the tests.
+      ("libx11" ,libx11)
+      ("node" ,node)
+      ("openssl" ,openssl)
+      ("sqlite" ,sqlite)))
    (home-page "https://vlang.io/")
    (synopsis "Compiler for the V programming language")
    (description
     "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 ab89bad7aa..b8979b2921 100644
--- a/gnu/packages/vnc.scm
+++ b/gnu/packages/vnc.scm
@@ -1,8 +1,9 @@
-;;; GNU Guix --- Functional package management for GNU
+;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2019 Todor Kondić <tk.code@protonmail.com>
 ;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
 ;;; Copyright © 2020 Hartmut Goebel <h.goebel@crazy-compilers.com>
 ;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
+;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -41,55 +42,56 @@
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages sdl)
   #:use-module (gnu packages tls)
+  #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xorg))
 
 (define-public tigervnc-client
-  (let ((commit "920d9c4d6562ecabf79497bc901d50522d4bc661"))
-    (package
-      (name "tigervnc-client")
-      (version (git-version "1.10.1" "1" commit))
-      (source (origin
-                (method git-fetch)
-                (uri
-                 (git-reference
-                  (url "https://github.com/TigerVNC/tigervnc")
-                  (commit commit)))
-                (sha256
-                 (base32
-                  "1lp6mxl5dqlkrzx0q145jzgpbwvhsni3fj6x9ngf8v5s63x82q1p"))
-                (file-name (git-file-name name version))))
-      (build-system cmake-build-system)
-      (arguments
-       '(#:tests? #f ; Tests that do exists are not automated.
-         #:phases (modify-phases %standard-phases
-                    (replace 'install
-                      (lambda* (#:key outputs #:allow-other-keys)
-                        (with-directory-excursion "vncviewer"
-                          (invoke "make" "install")))))))
-      (native-inputs
-       `(("autoconf" ,autoconf)
-         ("gettext-minimal" ,gettext-minimal)
-         ("automake" ,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)))
-      (home-page "https://tigervnc.org/")
-      (synopsis "High-performance, platform-neutral
+  (package
+    (name "tigervnc-client")
+    (version "1.11.0")
+    (source (origin
+              (method git-fetch)
+              (uri
+               (git-reference
+                (url "https://github.com/TigerVNC/tigervnc")
+                (commit (string-append "v" version))))
+              (sha256
+               (base32
+                "1bg79ahr4mzy48ak0caxy3ckdsxmhpchypggaz6lxjjk92hgsz91"))
+              (file-name (git-file-name name version))))
+    (build-system cmake-build-system)
+    (arguments
+     '(#:tests? #f ; Tests that do exists are not automated.
+       #:phases (modify-phases %standard-phases
+                  (replace 'install
+                    (lambda* (#:key outputs #:allow-other-keys)
+                      (with-directory-excursion "vncviewer"
+                        (invoke "make" "install")))))))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("gettext-minimal" ,gettext-minimal)
+       ("automake" ,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)))
+    (home-page "https://tigervnc.org/")
+    (synopsis "High-performance, platform-neutral
 implementation of VNC (client)")
-      (description "TigerVNC is a client/server implementation of VNC (Virtual
+    (description "TigerVNC is a client/server implementation of VNC (Virtual
 Network Computing).  It provides enough performance to run even 3D and video
 applications.  It also provides extensions for advanced authentication methods
 and TLS encryption.  This package installs only the VNC client, the
 application which is needed to connect to VNC servers.")
-      (license license:gpl2))))
+    (license license:gpl2)))
 
 ;; A VNC server is, in fact, an X server so it seems like a good idea
 ;; to build on the work already done for xorg-server package.  This is
diff --git a/gnu/packages/vpn.scm b/gnu/packages/vpn.scm
index 65cf5bd355..37555d9b45 100644
--- a/gnu/packages/vpn.scm
+++ b/gnu/packages/vpn.scm
@@ -4,9 +4,9 @@
 ;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2015 Jeff Mickey <j@codemac.net>
 ;;; Copyright © 2016, 2017, 2019 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2016, 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2016–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu>
-;;; Copyright © 2018 Pierre Langlois <pierre.langlois@gmx.com>
+;;; Copyright © 2018, 2020 Pierre Langlois <pierre.langlois@gmx.com>
 ;;; Copyright © 2018 Meiyo Peng <meiyo.peng@gmail.com>
 ;;; Copyright © 2019, 2020 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2019 Rutger Helling <rhelling@mykolab.com>
@@ -14,6 +14,7 @@
 ;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
 ;;; Copyright © 2020 Ryan Prior <rprior@protonmail.com>
 ;;; Copyright © 2020 Ivan Kozlov <kanichos@yandex.ru>
+;;; Copyright © 2020 David Dashyan <mail@davie.li>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -39,6 +40,7 @@
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system linux-module)
   #:use-module (guix build-system python)
+  #:use-module (guix utils)
   #:use-module (gnu packages)
   #:use-module (gnu packages admin)
   #:use-module (gnu packages base)
@@ -52,6 +54,7 @@
   #:use-module (gnu packages guile)
   #:use-module (gnu packages libevent)
   #:use-module (gnu packages linux)
+  #:use-module (gnu packages ncurses)
   #:use-module (gnu packages nss)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
@@ -129,10 +132,10 @@ Only \"Universal TUN/TAP device driver support\" is needed in the kernel.")
    (home-page "https://www.unix-ag.uni-kl.de/~massar/vpnc/")))
 
 (define-public vpnc-scripts
-  (let ((commit "1000e0f6dd7d6bff163169a46359211c1fc3a6d2"))
+  (let ((commit "3885f8bbc4ae03fd6da0ada6de12f7223a59595c"))
     (package
       (name "vpnc-scripts")
-      (version (string-append "20190116." (string-take commit 7)))
+      (version (string-append "20200925." (string-take commit 7)))
       (source (origin
                 (method git-fetch)
                 (uri
@@ -142,7 +145,7 @@ Only \"Universal TUN/TAP device driver support\" is needed in the kernel.")
                 (file-name (git-file-name name version))
                 (sha256
                  (base32
-                  "1g41yarz2bl0f73kbjqnywr485ghanbp7nmspklfb0n07yp0z6ak"))))
+                  "1pmi4n58q81pmn9arvfixhvv6vkkf3rpwac3hwnwyl882q5q0ccx"))))
       (build-system gnu-build-system)
       (inputs `(("guile" ,guile-3.0) ; for the wrapper scripts
                 ("coreutils" ,coreutils)
@@ -263,7 +266,7 @@ the user specifically asks to proxy, so the @dfn{VPN} interface no longer
     `(("libxml2" ,libxml2)
       ;; XXX ‘DTLS is insecure in GnuTLS v3.6.3 through v3.6.12.’
       ;; See <https://gitlab.com/gnutls/gnutls/-/issues/960>.
-      ("gnutls" ,gnutls-3.6.14)
+      ("gnutls" ,gnutls/fixed)
       ("zlib" ,zlib)))
    (inputs
     `(("lz4" ,lz4)
@@ -285,10 +288,38 @@ and probably others.")
    (license license:lgpl2.1)
    (home-page "https://www.infradead.org/openconnect/")))
 
+(define-public openfortivpn
+  (package
+    (name "openfortivpn")
+    (version "1.15.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/adrienverge/openfortivpn")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1qsfgpxg553s8rc9cyrc4k96z0pislxsdxb9wyhp8fdprkak2mw2"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("autotools" ,automake)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("openssl" ,openssl)
+       ("ppp" ,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
+spawns a pppd process and operates the communication between the gateway and
+this process.  It is compatible with Fortinet VPNs.")
+    (license license:gpl3+)))
+
 (define-public openvpn
   (package
     (name "openvpn")
-    (version "2.4.9")
+    (version "2.4.10")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -296,7 +327,7 @@ and probably others.")
                     version ".tar.xz"))
               (sha256
                (base32
-                "1qpbllwlha7cffsd5dlddb8rl22g9rar5zflkz1wrcllhvfkl7v4"))))
+                "0xx378ja2rdfaayc257z0z5ddsp8h0jcpqnd1a6bdw3rlsam6a6g"))))
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags '("--enable-iproute2=yes")))
@@ -320,7 +351,7 @@ traversing network address translators (@dfn{NAT}s) and firewalls.")
 (define-public protonvpn-cli
   (package
     (name "protonvpn-cli")
-    (version "2.2.2")
+    (version "2.2.6")
     (source
      (origin
        ;; PyPI has a ".whl" file but not a proper source release.
@@ -331,17 +362,44 @@ traversing network address translators (@dfn{NAT}s) and firewalls.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32
-         "0ixjb02kj4z79whm1izd8mrn2h0rp9cmw4im1qvp93rahqxdd4n8"))))
+        (base32 "0y7v9ikrmy5dbjlpbpacp08gy838i8z54m8m4ps7ldk1j6kyia3n"))))
     (build-system python-build-system)
-    (arguments '(#:tests? #f)) ; no tests in repo
+    (arguments
+     '(#:tests? #f ; no tests in repo
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'wrap 'wrap-wrapper
+           ;; Wrap entrypoint with paths to its hard dependencies.
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let ((entrypoint (string-append (assoc-ref outputs "out")
+                                              "/bin/.protonvpn-real")))
+               (wrap-program entrypoint
+                            `("PATH" ":" prefix
+                              ,(map (lambda (name)
+                                      (let ((input (assoc-ref inputs name)))
+                                        (string-append input "/bin:"
+                                                       input "/sbin")))
+                                    (list "dialog"
+                                          "iproute2"
+                                          "iptables"
+                                          "ncurses"
+                                          "openvpn"
+                                          "procps"
+                                          "which")))))
+             #t)))))
     (native-inputs
-     `(("docopt" ,python-docopt)))
+     `(("python-docopt" ,python-docopt)))
     (inputs
-     `(("pythondialog" ,python-pythondialog)
-       ("requests" ,python-requests)))
-    (propagated-inputs
-     `(("openvpn" ,openvpn)))
+     `(("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)))
     (synopsis "Command-line client for ProtonVPN")
     (description
      "This is the official command-line interface for ProtonVPN, a secure
@@ -402,7 +460,7 @@ private network between hosts on the internet.")
     (native-inputs
      `(("python-setuptools-scm" ,python-setuptools-scm)
        ;; For tests only.
-       ("python-flake8", python-flake8)
+       ("python-flake8" ,python-flake8)
        ("python-mock" ,python-mock)
        ("python-pytest-cov" ,python-pytest-cov)
        ("python-pytest-runner" ,python-pytest-runner)))
@@ -501,7 +559,7 @@ The peer-to-peer VPN implements a Layer 2 (Ethernet) network between the peers
 (define-public wireguard-linux-compat
   (package
     (name "wireguard-linux-compat")
-    (version "1.0.20200623")
+    (version "1.0.20201221")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://git.zx2c4.com/wireguard-linux-compat/"
@@ -509,12 +567,13 @@ The peer-to-peer VPN implements a Layer 2 (Ethernet) network between the peers
                                   ".tar.xz"))
               (sha256
                (base32
-                "0iclixsqfckaz6kz6a4lhzdary3xhfy1d0pz0pgrwy8m8mr3f28k"))))
+                "0ci13in0fqq32n5qamch4qhjgbdq86ygrgmfhc9szsh2nsl8jlkf"))))
     (build-system linux-module-build-system)
     (outputs '("out"
                "kernel-patch"))
     (arguments
-     `(#:tests? #f ; No test suite
+     `(#:linux ,linux-libre-5.4         ; mustn't have WG built-in
+       #:tests? #f                      ; no test suite
        #:modules ((guix build linux-module-build-system)
                   (guix build utils)
                   (ice-9 popen)
@@ -534,7 +593,7 @@ The peer-to-peer VPN implements a Layer 2 (Ethernet) network between the peers
                (call-with-output-file "wireguard.patch"
                  (lambda (port)
                    (format port "~a" str))))
-               #t))
+             #t))
          (add-after 'install 'install-patch
            (lambda* (#:key outputs #:allow-other-keys)
              (install-file "wireguard.patch"
@@ -555,7 +614,7 @@ WireGuard was added to Linux 5.6.")
 (define-public wireguard-tools
   (package
     (name "wireguard-tools")
-    (version "1.0.20200513")
+    (version "1.0.20200827")
     (source
      (origin
        (method git-fetch)
@@ -564,11 +623,11 @@ WireGuard was added to Linux 5.6.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1yk8hng0qw2rf76hnawjbdpjssmah88bd5fk20h1c0j1yazlx0a9"))))
+        (base32 "1h351hn531z6z85sx9ya27xjz1jszgn1pkwibacjj49mds15f7gn"))))
     (build-system gnu-build-system)
     (arguments
      `(#:make-flags
-       (list "CC=gcc"
+       (list ,(string-append "CC=" (cc-for-target))
              "--directory=src"
              "WITH_BASHCOMPLETION=yes"
              ;; Install the ‘simple and dirty’ helper script wg-quick(8).
@@ -630,7 +689,7 @@ public keys and can roam across IP addresses.")
 (define-public xl2tpd
   (package
     (name "xl2tpd")
-    (version "1.3.15")
+    (version "1.3.16")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -639,7 +698,7 @@ public keys and can roam across IP addresses.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0ppwza8nwm1av1vldw40gin9wrjrs4l9si50jad414js3k8ycaag"))))
+                "0is5ccrvijz0pfm45pfrlbb9y8231yz3c4zqs8mkgakl9rxajy6l"))))
     (build-system gnu-build-system)
     (arguments
      `(#:make-flags (list (string-append "PREFIX=" %output)
diff --git a/gnu/packages/vulkan.scm b/gnu/packages/vulkan.scm
index fe37b59e26..7e622946e9 100644
--- a/gnu/packages/vulkan.scm
+++ b/gnu/packages/vulkan.scm
@@ -183,7 +183,7 @@ interpretation of the specifications for these languages.")
 (define-public vulkan-headers
   (package
     (name "vulkan-headers")
-    (version "1.2.141")
+    (version "1.2.148")
     (source
      (origin
        (method git-fetch)
@@ -193,7 +193,7 @@ interpretation of the specifications for these languages.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "10nmx6y4llllfcczyfz76amd0vkqv09dj952d19zkzmmgcval7zq"))))
+         "1c877npvmkv2qxac308m3x0ij3il7hy5xk3fwsfi7s9dcsaxi63j"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f))                    ; No tests.
@@ -207,7 +207,7 @@ interpretation of the specifications for these languages.")
 (define-public vulkan-loader
   (package
     (name "vulkan-loader")
-    (version "1.2.140")
+    (version "1.2.148")
     (source
      (origin
        (method git-fetch)
@@ -217,7 +217,7 @@ interpretation of the specifications for these languages.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "0rhyz0qgp0i7pcx6wlvgwy7j33d4cs0xx39f0b6igpfk0vk70r1w"))))
+         "0rxh4q09k0pdl3xlvxdv5qkak4d7az25gijxr5w170fjnd8yfrhk"))))
     (build-system cmake-build-system)
     (arguments
      `(#:phases (modify-phases %standard-phases
@@ -261,7 +261,7 @@ and the ICD.")
 (define-public vulkan-tools
   (package
     (name "vulkan-tools")
-    (version "1.2.140")
+    (version "1.2.148")
     (source
      (origin
        (method git-fetch)
@@ -271,7 +271,7 @@ and the ICD.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "08dk0q77kpycn4vv19jh3ig73gbq3psan246a7fss0nfxpiddg0j"))))
+         "1908fw4rvg5iaim8ph0c0bzhac6jplg8dhfs6dpxd1dapzwqllkf"))))
     (build-system cmake-build-system)
     (inputs
      `(("glslang" ,glslang)
diff --git a/gnu/packages/web-browsers.scm b/gnu/packages/web-browsers.scm
index cb249dbc48..b134d29782 100644
--- a/gnu/packages/web-browsers.scm
+++ b/gnu/packages/web-browsers.scm
@@ -13,6 +13,8 @@
 ;;; Copyright © 2020 Raghav Gururajan <raghavgururajan@disroot.org>
 ;;; Copyright © 2020 B. Wilson <elaexuotee@wilsonb.com>
 ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
+;;; Copyright © 2020 Nicolò Balzarotti <nicolo@nixo.xyz>
+;;; Copyright © 2020 Alexandru-Sergiu Marton <brown121407@posteo.ro>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -40,12 +42,14 @@
   #:use-module (guix git-download)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
+  #:use-module (guix utils)
   #:use-module (gnu packages)
   #:use-module (gnu packages backup)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages documentation)
   #:use-module (gnu packages fltk)
   #:use-module (gnu packages fontutils)
+  #:use-module (gnu packages fonts)
   #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages gcc)
   #:use-module (gnu packages glib)
@@ -60,6 +64,8 @@
   #:use-module (gnu packages lisp)
   #:use-module (gnu packages lisp-xyz)
   #:use-module (gnu packages lua)
+  #:use-module (gnu packages man)
+  #:use-module (gnu packages markup)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
@@ -215,7 +221,7 @@ features including, tables, builtin image display, bookmarks, SSL and more.")
 (define-public luakit
   (package
     (name "luakit")
-    (version "2.1")
+    (version "2.2")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -224,7 +230,7 @@ features including, tables, builtin image display, bookmarks, SSL and more.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1qa90caxv1k6ak88fn0a7n7h0c4iv8szw6zn2axch8ig83i86az2"))))
+                "0km5nxn6innzn8pfsvlkxvfj2z5g46fp6dy5bnmaklbn13mqlcrn"))))
     (inputs
      `(("lua-5.1" ,lua-5.1)
        ("gtk+" ,gtk+)
@@ -280,7 +286,7 @@ and the GTK+ toolkit.")
 (define-public lynx
   (package
     (name "lynx")
-    (version "2.8.9rel.1")
+    (version "2.9.0dev.6")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -288,7 +294,7 @@ and the GTK+ toolkit.")
                     "/lynx" version ".tar.bz2"))
               (sha256
                (base32
-                "15cmyyma2kz1hfaa6mwjgli8zwdzq3jv0q2cl6nwzycjfwyijzrq"))))
+                "1cjkpwxc1r8x8q73bgh9a4skaph1bwa0anml6f6lvf7lh5zvxw3q"))))
     (build-system gnu-build-system)
     (native-inputs `(("pkg-config" ,pkg-config)
                      ("perl" ,perl)))
@@ -341,10 +347,133 @@ access.")
     (properties `((lint-hidden-cve . ("CVE-2016-9179"))))
     (license license:gpl2)))
 
+(define-public kristall
+  ;; Fixes to the build system applied after the latest tag
+  ;; Use tagged release when updating
+  (let ((commit "204b08a9303e75cd8d4c252b0554935062766f86")
+        (revision "1"))
+    (package
+      (name "kristall")
+      (version (string-append "0.3-" revision "." (string-take commit 7)))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/MasterQ32/kristall")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "1mymq0dh6r0829x74j0jkw8hw46amqwbznlf1b4ra6w77h9yz3lj"))
+         (modules '((srfi srfi-1)
+                    (ice-9 ftw)
+                    (guix build utils)))
+         (snippet
+          '(let ((preserved-lib-files '("luis-l-gist")))
+             (with-directory-excursion "lib"
+               (for-each
+                (lambda (directory)
+                  (simple-format #t "deleting: ~A\n" directory)
+                  (delete-file-recursively directory))
+                (lset-difference string=?
+                                 (scandir ".")
+                                 (cons* "." ".." preserved-lib-files))))
+             ;; Contains executable of 7z and pscp
+             (delete-file-recursively "ci/tools")
+             ;; Remove bundled fonts
+             (delete-file-recursively "src/fonts")
+             #t))))
+      (build-system gnu-build-system)
+      (arguments
+       `(#:modules ((guix build gnu-build-system)
+                    (guix build qt-utils)
+                    (guix build utils))
+         #:imported-modules (,@%gnu-build-system-modules
+                             (guix build qt-utils))
+         #:make-flags
+         (list (string-append "PREFIX=" %output))
+         #:phases
+         (modify-phases %standard-phases
+           (delete 'configure)          ; no ./configure script
+           (delete 'check)              ; no check target
+           (add-before 'build 'set-program-version
+             (lambda _
+               ;; configure.ac relies on ‘git --describe’ to get the version.
+               ;; Patch it to just return the real version number directly.
+               (substitute* "src/kristall.pro"
+                 (("(KRISTALL_VERSION=).*" _ match)
+                  (string-append match ,version "\n")))
+               #t))
+           (add-before 'build 'dont-use-bundled-cmark
+             (lambda _
+               (substitute* "src/kristall.pro"
+                 (("(^include\\(.*cmark.*)" _ match)
+                  (string-append
+                   "LIBS += -I" (assoc-ref %build-inputs "cmark") " -lcmark")))
+               #t))
+           (add-before 'build 'dont-use-bundled-breeze-stylesheet
+             (lambda _
+               (substitute* "src/kristall.pro"
+                 (("../lib/BreezeStyleSheets/breeze.qrc")
+                  (string-append
+                   (assoc-ref %build-inputs "breeze-stylesheet") "/breeze.qrc")))
+               #t))
+           (add-before 'build 'dont-use-bundled-fonts
+             (lambda _
+               (substitute* "src/kristall.pro"
+                 ((".*fonts.qrc.*") ""))
+               (substitute* "src/main.cpp"
+                 (("/fonts/OpenMoji-Color")
+                  (string-append
+                   (assoc-ref %build-inputs "font-openmoji")
+                   "/share/fonts/truetype/OpenMoji-Color"))
+                 (("/fonts/NotoColorEmoji")
+                  (string-append
+                   (assoc-ref %build-inputs "font-google-noto")
+                   "/share/fonts/truetype/NotoColorEmoji")))
+               #t))
+           (add-after 'install 'wrap-program
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let ((out (assoc-ref outputs "out")))
+                 (wrap-qt-program out "kristall"))
+               #t)))))
+      (native-inputs
+       `(("breeze-stylesheet"
+          ,(let ((commit "2d595a956f8a5f493aa51139a470b768a6d82cce")
+                 (revision "0"))
+             (origin
+               (method git-fetch)
+               (uri
+                (git-reference
+                 (url "https://github.com/Alexhuszagh/BreezeStyleSheets")
+                 (commit "2d595a956f8a5f493aa51139a470b768a6d82cce")))
+               (file-name (git-file-name "breeze-stylesheet"
+                                         (git-version "0" revision commit)))
+               (sha256
+                (base32
+                 "1kvkxkisi3czldnb43ig60l55pi4a3m2a4ixp7krhpf9fc5wp294")))))))
+      (inputs
+       `(("cmark" ,cmark)
+         ("font-google-noto" ,font-google-noto)
+         ("font-openmoji" ,font-openmoji)
+         ("openssl" ,openssl)
+         ("qtbase" ,qtbase)
+         ("qtmultimedia" ,qtmultimedia)
+         ("qtsvg" ,qtsvg)))
+      (home-page "https://kristall.random-projects.net")
+      (synopsis "Small-internet graphical client")
+      (description "Graphical small-internet client with with many features
+including multi-protocol support (gemini, HTTP, HTTPS, gopher, finger),
+bookmarks, TSL certificates management, outline generation and a tabbed
+interface.")
+      (license (list license:gpl3+
+                     ;; for breeze-stylesheet
+                     license:expat)))))
+
 (define-public qutebrowser
   (package
     (name "qutebrowser")
-    (version "1.13.1")
+    (version "1.14.1")
     (source
      (origin
        (method url-fetch)
@@ -352,7 +481,7 @@ access.")
                            "qutebrowser/releases/download/v" version "/"
                            "qutebrowser-" version ".tar.gz"))
        (sha256
-        (base32 "1n72dvrv4dch4i07lsis76p7g16a039fwx8rk7w8q9f60wgqb5i8"))))
+        (base32 "15l7jphy1qjsh6y6kd5mgkxsl6ymm9564g1yypa946jbyrgi8k2m"))))
     (build-system python-build-system)
     (native-inputs
      `(("python-attrs" ,python-attrs))) ; for tests
@@ -412,7 +541,7 @@ access.")
                                       (assoc-ref inputs "qtwebengine")
                                       "/lib/qt5/libexec/QtWebEngineProcess")))
                (wrap-program bin
-                 `("QTWEBENGINEPROCESS_PATH" ":" prefix (,qt-process-path)))
+                 `("QTWEBENGINEPROCESS_PATH" = (,qt-process-path)))
                #t))))))
     (home-page "https://qutebrowser.org/")
     (synopsis "Minimal, keyboard-focused, vim-like web browser")
@@ -457,129 +586,123 @@ driven and does not detract you from your daily work.")
     (license license:gpl3+)))
 
 (define-public nyxt
-  ;; 1.5.0 does not build anymore, let's use the master which is more stable anyways.
-  (let ((commit "9440980a9c5f75232b08ca98183b22be4a3d9bc3"))
-    (package
-      (name "nyxt")
-      (version (git-version "1.5.0" "1" commit))
-      (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 commit)))
-         (sha256
-          (base32
-           "079n5ffsa8136i9ik5mn4rwa3iv0avncw6y973gj3hlf8sf4wv7g"))
-         (file-name (git-file-name "nyxt" version))))
-      (build-system gnu-build-system)
-      (arguments
-       `(#:make-flags (list "nyxt" "NYXT_INTERNAL_QUICKLISP=false"
-                            (string-append "DESTDIR=" (assoc-ref %outputs "out"))
-                            "PREFIX=")
-         #:strip-binaries? #f           ; Stripping breaks SBCL binaries.
-         #:phases
-         (modify-phases %standard-phases
-           (add-after 'unpack 'patch-version ; Version is guessed from .git which Guix does not have.
-             (lambda* (#:key inputs #:allow-other-keys)
-               (let ((version (format #f "~a" ,version)))
-                 (substitute* "source/global.lisp"
-                   (("version\\)\\)\\)")
-                    (string-append "version)))"
-                                   "\n"
-                                   "(setf +version+ \"" version "\")"))))
-               #t))
-           (add-before 'build 'make-desktop-version-number
-             (lambda _
-               (with-output-to-file "version"
-                 (lambda _
-                   (format #t "~a" ,version)))))
-
-           (delete 'configure)
-           (add-before 'build 'fix-common-lisp-cache-folder
-             (lambda _
-               (setenv "HOME" "/tmp")
-               #t))
-           (add-after 'install 'wrap-program
-             (lambda* (#:key inputs outputs #:allow-other-keys)
-               (let* ((bin (string-append (assoc-ref outputs "out") "/bin/nyxt"))
-                      (glib-networking (assoc-ref inputs "glib-networking"))
-                      (libs '("gsettings-desktop-schemas"))
-                      (path (string-join
-                             (map (lambda (lib)
-                                    (string-append (assoc-ref inputs lib) "/lib"))
-                                  libs)
-                             ":"))
-                      (gi-path (string-join
-                                (map (lambda (lib)
-                                       (string-append (assoc-ref inputs lib) "/lib/girepository-1.0"))
-                                     libs)
-                                ":"))
-                      (xdg-path (string-join
-                                 (map (lambda (lib)
-                                        (string-append (assoc-ref inputs lib) "/share"))
-                                      libs)
-                                 ":")))
-                 (wrap-program bin
-                   `("GIO_EXTRA_MODULES" prefix
-                     (,(string-append glib-networking "/lib/gio/modules")))
-                   `("GI_TYPELIB_PATH" prefix (,gi-path))
-                   `("LD_LIBRARY_PATH" ":" prefix (,path))
-                   `("XDG_DATA_DIRS" ":" prefix (,xdg-path)))
-                 #t))))))
-      (native-inputs
-       `(("prove" ,sbcl-prove)
-         ("sbcl" ,sbcl)))
-      (inputs
-       ;; We need to avoid sbcl-* inputs (sbcl-cl-cffi-gtk in particular) as they
-       ;; seem to cause Nyxt to hang into a hogging process in about 10 minutes.
-       ;; Probably an issue between CFFI and how we build SBCL packages.
-       ;; See https://github.com/atlas-engineer/nyxt/issues/680.
-       `(("alexandria" ,cl-alexandria)
-         ("bordeaux-threads" ,cl-bordeaux-threads)
-         ("cl-containers" ,cl-containers)
-         ("cl-css" ,cl-css)
-         ("cl-json" ,cl-json)
-         ("cl-markup" ,cl-markup)
-         ("cl-ppcre" ,cl-ppcre)
-         ("cl-prevalence" ,cl-prevalence)
-         ("closer-mop" ,cl-closer-mop)
-         ("cluffer" ,cl-cluffer)
-         ("dexador" ,cl-dexador)
-         ("enchant" ,cl-enchant)
-         ("fset" ,cl-fset)
-         ("iolib" ,cl-iolib)
-         ("local-time" ,cl-local-time)
-         ("log4cl" ,cl-log4cl)
-         ("lparallel" ,cl-lparallel)
-         ("mk-string-metrics" ,cl-mk-string-metrics)
-         ("moptilities" ,cl-moptilities)
-         ("osicat" ,sbcl-osicat)       ; SBCL version needed for libosicat.so.
-         ("parenscript" ,cl-parenscript)
-         ("plump" ,cl-plump)
-         ("quri" ,cl-quri)
-         ("serapeum" ,cl-serapeum)
-         ("str" ,cl-str)
-         ("swank" ,cl-slime-swank)
-         ("trivia" ,cl-trivia)
-         ("trivial-clipboard" ,cl-trivial-clipboard)
-         ("trivial-features" ,cl-trivial-features)
-         ("trivial-package-local-nicknames" ,cl-trivial-package-local-nicknames)
-         ("trivial-types" ,cl-trivial-types)
-         ("unix-opts" ,cl-unix-opts)
-         ;; WebKitGTK deps
-         ("cl-cffi-gtk" ,cl-cffi-gtk)
-         ("cl-webkit" ,cl-webkit)
-         ("glib-networking" ,glib-networking)
-         ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
-      (synopsis "Extensible web-browser in Common Lisp")
-      (home-page "https://nyxt.atlas.engineer")
-      (description "Nyxt is a keyboard-oriented, extensible web-browser
+  (package
+    (name "nyxt")
+    ;; Package the pre-release because latest stable 1.5.0 does not build
+    ;; anymore.
+    (version "2-pre-release-5")
+    (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
+         "1sdafyhiicasd4wyzqnzdyrr16mz55y4b2hf5ya6i7nvm2vyhywl"))
+       (file-name (git-file-name "nyxt" version))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:make-flags (list "nyxt" "NYXT_INTERNAL_QUICKLISP=false"
+                          (string-append "DESTDIR=" (assoc-ref %outputs "out"))
+                          "PREFIX=")
+       #:strip-binaries? #f             ; Stripping breaks SBCL binaries.
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (add-before 'build 'fix-common-lisp-cache-folder
+           (lambda _
+             (setenv "HOME" "/tmp")
+             #t))
+         (add-before 'build 'set-version
+           (lambda _
+             (setenv "NYXT_VERSION" ,version)
+             #t))
+         (add-before 'check 'configure-tests
+           (lambda _
+             (setenv "NYXT_TESTS_NO_NETWORK" "1")
+             (setenv "NYXT_TESTS_ERROR_ON_FAIL" "1")
+             #t))
+         (add-after 'install 'wrap-program
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let* ((bin (string-append (assoc-ref outputs "out") "/bin/nyxt"))
+                    (glib-networking (assoc-ref inputs "glib-networking"))
+                    (libs '("gsettings-desktop-schemas"))
+                    (path (string-join
+                           (map (lambda (lib)
+                                  (string-append (assoc-ref inputs lib) "/lib"))
+                                libs)
+                           ":"))
+                    (gi-path (string-join
+                              (map (lambda (lib)
+                                     (string-append (assoc-ref inputs lib)
+                                                    "/lib/girepository-1.0"))
+                                   libs)
+                              ":"))
+                    (xdg-path (string-join
+                               (map (lambda (lib)
+                                      (string-append (assoc-ref inputs lib) "/share"))
+                                    libs)
+                               ":")))
+               (wrap-program bin
+                 `("GIO_EXTRA_MODULES" prefix
+                   (,(string-append glib-networking "/lib/gio/modules")))
+                 `("GI_TYPELIB_PATH" prefix (,gi-path))
+                 `("LD_LIBRARY_PATH" ":" prefix (,path))
+                 `("XDG_DATA_DIRS" ":" prefix (,xdg-path)))
+               #t))))))
+    (native-inputs
+     `(("prove" ,sbcl-prove)
+       ("sbcl" ,sbcl)))
+    (inputs
+     `(("alexandria" ,sbcl-alexandria)
+       ("bordeaux-threads" ,sbcl-bordeaux-threads)
+       ("cl-calispel" ,sbcl-calispel)
+       ("cl-containers" ,sbcl-cl-containers)
+       ("cl-css" ,sbcl-cl-css)
+       ("cl-json" ,sbcl-cl-json)
+       ("cl-markup" ,sbcl-cl-markup)
+       ("cl-ppcre" ,sbcl-cl-ppcre)
+       ("cl-prevalence" ,sbcl-cl-prevalence)
+       ("closer-mop" ,sbcl-closer-mop)
+       ("cluffer" ,sbcl-cluffer)
+       ("dexador" ,sbcl-dexador)
+       ("enchant" ,sbcl-enchant)
+       ("fset" ,sbcl-fset)
+       ("hu.dwim.defclass-star" ,sbcl-hu.dwim.defclass-star)
+       ("iolib" ,sbcl-iolib)
+       ("local-time" ,sbcl-local-time)
+       ("log4cl" ,sbcl-log4cl)
+       ("mk-string-metrics" ,sbcl-mk-string-metrics)
+       ("moptilities" ,sbcl-moptilities)
+       ("named-readtables" ,sbcl-named-readtables)
+       ("osicat" ,sbcl-osicat)
+       ("parenscript" ,sbcl-parenscript)
+       ("plump" ,sbcl-plump)
+       ("quri" ,sbcl-quri)
+       ("serapeum" ,sbcl-serapeum)
+       ("str" ,sbcl-cl-str)
+       ("swank" ,sbcl-slime-swank)
+       ("trivia" ,sbcl-trivia)
+       ("trivial-clipboard" ,sbcl-trivial-clipboard)
+       ("trivial-features" ,sbcl-trivial-features)
+       ("trivial-package-local-nicknames" ,sbcl-trivial-package-local-nicknames)
+       ("trivial-types" ,sbcl-trivial-types)
+       ("unix-opts" ,sbcl-unix-opts)
+       ("usocket" ,sbcl-usocket)
+       ;; WebKitGTK deps
+       ("cl-cffi-gtk" ,sbcl-cl-cffi-gtk)
+       ("cl-webkit" ,sbcl-cl-webkit)
+       ("glib-networking" ,glib-networking)
+       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
+    (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.  The application has familiar Emacs and VI
 key-bindings and is fully configurable and extensible in Common Lisp.")
-      (license license:bsd-3))))
+    (license license:bsd-3)))
 
 (define-public next
   (deprecated-package "next" nyxt))
@@ -587,10 +710,47 @@ key-bindings and is fully configurable and extensible in Common Lisp.")
 (define-public sbcl-next
   (deprecated-package "sbcl-next" nyxt))
 
+(define-public gmni
+  (let ((commit "d8f0870446c471a42612d6a8e853ad9b723a6d39")
+        (revision "0"))
+    (package
+      (name "gmni")
+      (version (git-version "0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://git.sr.ht/~sircmpwn/gmni")
+                      (commit commit)))
+                (sha256
+                 (base32
+                  "1h0iqm7l0i06glf5b2872w656s1mjdiqva14zh6sl4f5yp7zmvwr"))
+                (file-name (git-file-name name version))))
+      (build-system gnu-build-system)
+      (arguments
+       `(#:tests? #f ; no check target
+         #:make-flags (list (string-append "CC=" ,(cc-for-target)))))
+      (inputs
+       `(("openssl" ,openssl)))
+      (native-inputs
+       `(("pkg-config" ,pkg-config)
+         ("scdoc" ,scdoc)))
+      (home-page "https://sr.ht/~sircmpwn/gmni")
+      (synopsis "Minimalist command line Gemini client")
+      (description "The gmni package includes:
+
+@itemize
+@item A CLI utility (like curl): gmni
+@item A line-mode browser: gmnlm
+@end itemize")
+      (license (list license:gpl3+
+                     (license:non-copyleft
+                      "https://curl.se/docs/copyright.html"
+                      "Used only for files taken from curl."))))))
+
 (define-public bombadillo
   (package
     (name "bombadillo")
-    (version "2.2.0")
+    (version "2.3.3")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -598,7 +758,7 @@ key-bindings and is fully configurable and extensible in Common Lisp.")
                     (commit version)))
               (sha256
                (base32
-                "1m52b1wk48gkqmjy8l0x3jaksrx2v8w6w59lhr7zaw2i0n4f5k0z"))
+                "02w6h44sxzmk3bkdidl8xla0i9rwwpdqljnvcbydx5kyixycmg0q"))
               (file-name (git-file-name name version))))
     (build-system go-build-system)
     (arguments
@@ -617,7 +777,6 @@ key-bindings and is fully configurable and extensible in Common Lisp.")
                              (pixdir (string-append sharedir "/pixmaps")))
                         (with-directory-excursion builddir
                           (install-file "bombadillo.desktop" appdir)
-                          (install-file "LICENSE" docdir)
                           (install-file "bombadillo.1" mandir)
                           (install-file "bombadillo-icon.png" pixdir)
                           #t)))))))
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index a0900c686e..16c99af9d3 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -16,7 +16,7 @@
 ;;; Copyright © 2016 Clément Lassieur <clement@lassieur.org>
 ;;; Copyright © 2016, 2017 Nikita <nikita@n0.is>
 ;;; Copyright © 2016, 2017, 2018, 2019 Arun Isaac <arunisaac@systemreboot.net>
-;;; Copyright © 2016, 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2016–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2016 Bake Timmons <b3timmons@speedymail.org>
 ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
 ;;; Copyright © 2017, 2018, 2020 Marius Bakke <mbakke@fastmail.com>
@@ -30,7 +30,7 @@
 ;;; Copyright © 2018 Gábor Boskovits <boskovits@gmail.com>
 ;;; Copyright © 2018 Mădălin Ionel Patrașcu <madalinionel.patrascu@mdc-berlin.de>
 ;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com>
-;;; Copyright © 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;; Copyright © 2019, 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;; Copyright © 2019 Brendan Tildesley <mail@brendan.scot>
 ;;; Copyright © 2019 Alex Griffin <a@ajgrf.com>
 ;;; Copyright © 2019 Hartmut Goebel <h.goebel@crazy-compilers.com>
@@ -43,8 +43,10 @@
 ;;; Copyright © 2020 Pierre Neidhardt <mail@ambrevar.xyz>
 ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
 ;;; Copyright © 2018, 2019, 2020 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
-;;; Copyright © 2020 Paul Garlick <pgarlick@tourbillion-technology.com>
+;;; Copyright © 2020, 2021 Paul Garlick <pgarlick@tourbillion-technology.com>
 ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
+;;; Copyright © 2020, 2021 Ryan Prior <rprior@protonmail.com>
+;;; Copyright © 2020 Alexandru-Sergiu Marton <brown121407@posteo.ro>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -67,57 +69,67 @@
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix gexp)
-  #:use-module (guix git-download)
   #:use-module (guix cvs-download)
   #:use-module (guix hg-download)
+  #:use-module (guix git-download)
   #:use-module (guix utils)
-  #:use-module (guix build-system gnu)
+  #:use-module (guix build-system ant)
+  #:use-module (guix build-system cargo)
+  #: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 go)
+  #:use-module (guix build-system meson)
   #:use-module (guix build-system perl)
-  #:use-module (guix build-system cmake)
-  #:use-module (guix build-system trivial)
   #:use-module (guix build-system python)
-  #:use-module (guix build-system ant)
+  #:use-module (guix build-system qt)
   #:use-module (guix build-system scons)
-  #:use-module (guix build-system go)
+  #:use-module (guix build-system trivial)
   #:use-module (gnu packages)
   #:use-module (gnu packages admin)
   #:use-module (gnu packages adns)
   #:use-module (gnu packages apr)
+  #:use-module (gnu packages autotools)
+  #:use-module (gnu packages base)
+  #:use-module (gnu packages bison)
+  #:use-module (gnu packages bittorrent)
   #:use-module (gnu packages boost)
   #:use-module (gnu packages check)
-  #:use-module (gnu packages documentation)
-  #:use-module (gnu packages docbook)
-  #:use-module (gnu packages emacs)
-  #:use-module (gnu packages emacs-xyz)
-  #:use-module (gnu packages autotools)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages crates-gtk)
+  #:use-module (gnu packages crates-io)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages cyrus-sasl)
   #:use-module (gnu packages databases)
-  #:use-module (gnu packages bison)
+  #:use-module (gnu packages docbook)
+  #:use-module (gnu packages documentation)
+  #:use-module (gnu packages emacs)
+  #:use-module (gnu packages emacs-xyz)
   #:use-module (gnu packages flex)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages freedesktop)
-  #:use-module (gnu packages kerberos)
   #:use-module (gnu packages gcc)
   #:use-module (gnu packages gd)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages gnu-doc)
+  #:use-module (gnu packages gnunet)
   #:use-module (gnu packages gnupg)
   #:use-module (gnu packages golang)
   #:use-module (gnu packages gperf)
+  #:use-module (gnu packages graphviz)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages guile)
   #:use-module (gnu packages guile-xyz)
   #:use-module (gnu packages hurd)
+  #:use-module (gnu packages icu4c)
+  #:use-module (gnu packages image)
   #:use-module (gnu packages java)
   #:use-module (gnu packages jemalloc)
-  #:use-module (gnu packages image)
   #:use-module (gnu packages imagemagick)
   #:use-module (gnu packages kde)
+  #:use-module (gnu packages kerberos)
   #:use-module (gnu packages libevent)
   #:use-module (gnu packages libidn)
   #:use-module (gnu packages libunistring)
@@ -126,25 +138,27 @@
   #:use-module (gnu packages lisp-xyz)
   #:use-module (gnu packages lsof)
   #:use-module (gnu packages lua)
+  #:use-module (gnu packages mail)
+  #:use-module (gnu packages man)
   #:use-module (gnu packages markup)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages networking)
   #:use-module (gnu packages nss)
   #:use-module (gnu packages openldap)
   #:use-module (gnu packages openstack)
-  #:use-module (gnu packages base)
   #:use-module (gnu packages package-management)
+  #:use-module (gnu packages pcre)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages perl-check)
   #: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 pcre)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages qt)
-  #:use-module (gnu packages readline)
   #:use-module (gnu packages re2c)
+  #:use-module (gnu packages readline)
+  #:use-module (gnu packages search)
   #:use-module (gnu packages sphinx)
   #:use-module (gnu packages texinfo)
   #:use-module (gnu packages textutils)
@@ -158,14 +172,14 @@
 (define-public httpd
   (package
     (name "httpd")
-    (version "2.4.43")
+    (version "2.4.46")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://apache/httpd/httpd-"
                                  version ".tar.bz2"))
              (sha256
               (base32
-               "0hqgw47r3p3521ygkkqs8s30s5crm683081avj6330gwncm6b5x4"))))
+               "1sj1rwgbcjgkzac3ybjy7j68c9b3dv3ap71m48mrjhf6w7vds3kl"))))
     (build-system gnu-build-system)
     (native-inputs `(("pcre" ,pcre "bin")))       ;for 'pcre-config'
     (inputs `(("apr" ,apr)
@@ -196,7 +210,7 @@ and its related documentation.")
 (define-public mod-wsgi
   (package
     (name "mod-wsgi")
-    (version "4.5.22")
+    (version "4.7.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -205,7 +219,7 @@ and its related documentation.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1q90xw2cbhka5gcd6yc69iir73x4gm7fm75qpkins2ryfl6w1q3f"))))
+                "1savh6h3qds20mwn1nqasmqzcp57pdhfc9v4b4k78d6q28y0r17s"))))
     (build-system gnu-build-system)
     (arguments
      '(#:tests? #f                 ; TODO: can't figure out if there are tests
@@ -224,6 +238,52 @@ Interface} specification.")
     (license license:asl2.0)
     (home-page "https://modwsgi.readthedocs.io/")))
 
+(define-public monolith
+  (package
+    (name "monolith")
+    (version "2.4.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/Y2Z/monolith.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "18c6bsv9m3spiyfhqp08v807m93r6n9hrlv4qbfiqp4kw5aryb4h"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-base64" ,rust-base64-0.13)
+        ("rust-chrono" ,rust-chrono-0.4)
+        ("rust-clap" ,rust-clap-2)
+        ("rust-cssparser" ,rust-cssparser-0.27)
+        ("rust-html5ever" ,rust-html5ever-0.24)
+        ("rust-regex" ,rust-regex-1)
+        ("rust-reqwest" ,rust-reqwest-0.10)
+        ("rust-sha2" ,rust-sha2-0.9)
+        ("rust-url" ,rust-url-2))
+       #:cargo-development-inputs
+       (("rust-assert-cmd" ,rust-assert-cmd-1)
+        ("rust-tempfile" ,rust-tempfile-3))))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("openssl" ,openssl)))
+    (home-page "https://github.com/Y2Z/monolith")
+    (synopsis "Command line tool for saving web pages as a single HTML file")
+    (description
+     "Monolith bundles any web page into a single HTML file.
+
+Unlike conventional ``Save page as…'', Monolith not only saves the target
+document, it embeds CSS, image, and JavaScript assets all at once, producing
+a single HTML5 document.
+
+If compared to saving websites with @samp{wget -mpk}, Monolith embeds
+all assets as data URLs and therefore displays the saved page exactly
+the same, being completely separated from the Internet.")
+    (license license:unlicense)))
+
 (define-public nginx
   (package
     (name "nginx")
@@ -231,14 +291,14 @@ Interface} specification.")
     ;; ’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/)
     ;; Consider updating the nginx-documentation package together with this one.
-    (version "1.19.1")
+    (version "1.19.6")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://nginx.org/download/nginx-"
                                   version ".tar.gz"))
               (sha256
                (base32
-                "14jlcn8gywa4r9brmm41ddg2dczskslnn4dnr5xmqg7dcin7f150"))))
+                "1d9kzks8x1226prjbpdin4dz93fjnv304zlqybfqachx5fh9a4di"))))
     (build-system gnu-build-system)
     (inputs `(("openssl" ,openssl)
               ("pcre" ,pcre)
@@ -254,31 +314,32 @@ Interface} specification.")
              #t))
          (replace 'configure
            ;; The configure script is hand-written, not from GNU autotools.
-           (lambda* (#:key outputs #:allow-other-keys)
+           (lambda* (#:key configure-flags outputs #:allow-other-keys)
              (let ((flags
-                    (list (string-append "--prefix=" (assoc-ref outputs "out"))
-                          "--with-http_ssl_module"
-                          "--with-http_v2_module"
-                          "--with-pcre-jit"
-                          "--with-debug"
-                          ;; Even when not cross-building, we pass the
-                          ;; --crossbuild option to avoid customizing for the
-                          ;; kernel version on the build machine.
-                          ,(let ((system "Linux")    ; uname -s
-                                 (release "3.2.0")   ; uname -r
-                                 ;; uname -m
-                                 (machine (match (or (%current-target-system)
-                                                     (%current-system))
-                                            ("x86_64-linux"   "x86_64")
-                                            ("i686-linux"     "i686")
-                                            ("mips64el-linux" "mips64")
-                                            ;; Prevent errors when querying
-                                            ;; this package on unsupported
-                                            ;; platforms, e.g. when running
-                                            ;; "guix package --search="
-                                            (_                "UNSUPPORTED"))))
-                             (string-append "--crossbuild="
-                                            system ":" release ":" machine)))))
+                    (append (list (string-append "--prefix=" (assoc-ref outputs "out"))
+                                  "--with-http_ssl_module"
+                                  "--with-http_v2_module"
+                                  "--with-pcre-jit"
+                                  "--with-debug"
+                                  ;; Even when not cross-building, we pass the
+                                  ;; --crossbuild option to avoid customizing for the
+                                  ;; kernel version on the build machine.
+                                  ,(let ((system "Linux")    ; uname -s
+                                         (release "3.2.0")   ; uname -r
+                                         ;; uname -m
+                                         (machine (match (or (%current-target-system)
+                                                             (%current-system))
+                                                    ("x86_64-linux"   "x86_64")
+                                                    ("i686-linux"     "i686")
+                                                    ("mips64el-linux" "mips64")
+                                                    ;; Prevent errors when querying
+                                                    ;; this package on unsupported
+                                                    ;; platforms, e.g. when running
+                                                    ;; "guix package --search="
+                                                    (_                "UNSUPPORTED"))))
+                                     (string-append "--crossbuild="
+                                                    system ":" release ":" machine)))
+                            configure-flags)))
                (setenv "CC" "gcc")
                (format #t "configure flags: ~s~%" flags)
                (apply invoke "./configure" flags)
@@ -318,53 +379,11 @@ and as a proxy to reduce the load on back-end HTTP or mail servers.")
     ;;     except for two source files which are bsd-4 licensed.
     (license (list license:bsd-2 license:expat license:bsd-3 license:bsd-4))))
 
-(define nginx-xslscript
-  (let ((revision 11)
-        (changeset "01dc9ba12e1b"))
-    (package
-      (name "nginx-xslscript")
-      (version
-       (simple-format #f "2014-03-31-~A-~A" revision changeset))
-      (source (origin
-                (method hg-fetch)
-                (uri (hg-reference
-                      (url "http://hg.nginx.org/xslscript")
-                      (changeset changeset)))
-                (file-name (string-append name "-" version))
-                (sha256
-                 (base32
-                  "0am8zvdx3jmiwkg5q07qjaw5r26r4i2v5i4yr8a1k0jgib6ii08g"))))
-      (build-system gnu-build-system)
-      (arguments
-       '(#:tests? #f  ; No test suite
-         #:phases
-         (modify-phases %standard-phases
-           (delete 'configure)
-           (delete 'build)
-           (replace 'install
-             (lambda* (#:key outputs #:allow-other-keys)
-               (let ((out-bin (string-append
-                               (assoc-ref outputs "out")
-                               "/bin")))
-                 (mkdir-p out-bin)
-                 (copy-file "xslscript.pl"
-                            (string-append
-                             out-bin
-                             "/xslscript.pl"))
-                 #t))))))
-      (home-page "http://hg.nginx.org/xslscript")
-      (synopsis "XSLScript with NGinx specific modifications")
-      (description
-       "XSLScript is a terse notation for writing complex XSLT stylesheets.
-This is modified version, specifically intended for use with the NGinx
-documentation.")
-      (license license:bsd-2))))
-
 (define-public nginx-documentation
   ;; This documentation should be relevant for the current nginx package.
-  (let ((version "1.19.0")
-        (revision 2549)
-        (changeset "c13a55aae487"))
+  (let ((version "1.19.6")
+        (revision 2636)
+        (changeset "a0824dab33ff"))
     (package
       (name "nginx-documentation")
       (version (simple-format #f "~A-~A-~A" version revision changeset))
@@ -376,7 +395,7 @@ documentation.")
                (file-name (string-append name "-" version))
                (sha256
                 (base32
-                 "0vwwvk6wf8f6c6n6yffmya9a287s6dbx1p739hdl3hwxfyh2ygc5"))))
+                 "06w6fg33pnkqpaagzp9rqizill61vj7db7083mrd6i6by0j7cp1b"))))
       (build-system gnu-build-system)
       (arguments
        '(#:tests? #f                    ; no test suite
@@ -549,10 +568,123 @@ supported at your website.")
                       ;; binary:
                       (package-license nginx)))))))
 
+(define nginx-xslscript
+  (let ((revision 11)
+        (changeset "01dc9ba12e1b"))
+    (package
+      (name "nginx-xslscript")
+      (version
+       (simple-format #f "2014-03-31-~A-~A" revision changeset))
+      (source (origin
+                (method hg-fetch)
+                (uri (hg-reference
+                      (url "http://hg.nginx.org/xslscript")
+                      (changeset changeset)))
+                (file-name (string-append name "-" version))
+                (sha256
+                 (base32
+                  "0am8zvdx3jmiwkg5q07qjaw5r26r4i2v5i4yr8a1k0jgib6ii08g"))))
+      (build-system gnu-build-system)
+      (arguments
+       '(#:tests? #f  ; No test suite
+         #:phases
+         (modify-phases %standard-phases
+           (delete 'configure)
+           (delete 'build)
+           (replace 'install
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let ((out-bin (string-append
+                               (assoc-ref outputs "out")
+                               "/bin")))
+                 (mkdir-p out-bin)
+                 (copy-file "xslscript.pl"
+                            (string-append
+                             out-bin
+                             "/xslscript.pl"))
+                 #t))))))
+      (home-page "http://hg.nginx.org/xslscript")
+      (synopsis "XSLScript with NGinx specific modifications")
+      (description
+       "XSLScript is a terse notation for writing complex XSLT stylesheets.
+This is modified version, specifically intended for use with the NGinx
+documentation.")
+      (license license:bsd-2))))
+
+(define nginx-socket-cloexec
+  (package
+    (inherit nginx)
+    (name "nginx-socket-cloexec") ;required for lua-resty-shell
+    (source
+     (origin
+       (inherit (package-source nginx))
+       (patches (append (search-patches "nginx-socket-cloexec.patch")
+                        (origin-patches (package-source nginx))))))))
+
+(define-public nginx-lua-module
+  (package
+    (inherit nginx)
+    (name "nginx-lua-module")
+    (version "0.10.16")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/openresty/lua-nginx-module")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name "lua-nginx-module" version))
+       (sha256
+        (base32 "0nwcbqm1visg1dkxav7qa16w0d0n8cgqn4881xiqn88xfkxj0dyg"))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("nginx-sources" ,(package-source nginx-socket-cloexec))
+       ("luajit" ,luajit)
+       ,@(package-inputs nginx)))
+    (arguments
+     (substitute-keyword-arguments
+         `(#:configure-flags '("--add-dynamic-module=.")
+           #:make-flags '("modules")
+           #:modules ((guix build utils)
+                      (guix build gnu-build-system)
+                      (ice-9 popen)
+                      (ice-9 regex)
+                      (ice-9 textual-ports))
+           ,@(package-arguments nginx))
+       ((#:phases phases)
+        `(modify-phases ,phases
+           (add-after 'unpack 'unpack-nginx-sources
+             (lambda* (#:key inputs native-inputs #:allow-other-keys)
+               (begin
+                 ;; The nginx source code is part of the module’s source.
+                 (format #t "decompressing nginx source code~%")
+                 (let ((tar (assoc-ref inputs "tar"))
+                       (nginx-srcs (assoc-ref inputs "nginx-sources")))
+                   (invoke (string-append tar "/bin/tar")
+                           "xvf" nginx-srcs "--strip-components=1"))
+                 #t)))
+           (add-before 'configure 'set-luajit-env
+             (lambda* (#:key inputs #:allow-other-keys)
+               (let ((luajit (assoc-ref inputs "luajit")))
+                 (setenv "LUAJIT_LIB"
+                         (string-append luajit "/lib"))
+                 (setenv "LUAJIT_INC"
+                         (string-append luajit "/include/luajit-2.1"))
+                 #t)))
+           (replace 'install
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let ((modules-dir (string-append (assoc-ref outputs "out")
+                                                 "/etc/nginx/modules")))
+                 (install-file "objs/ngx_http_lua_module.so" modules-dir)
+                 #t)))
+           (delete 'fix-root-dirs)
+           (delete 'install-man-page)))))
+    (synopsis "NGINX module for Lua programming language support")
+    (description "This NGINX module provides a scripting support with Lua
+programming language.")))
+
 (define-public lighttpd
   (package
     (name "lighttpd")
-    (version "1.4.55")
+    (version "1.4.58")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://download.lighttpd.net/lighttpd/"
@@ -560,7 +692,7 @@ supported at your website.")
                                   "lighttpd-" version ".tar.xz"))
               (sha256
                (base32
-                "09z947730yjh438wrqb3z1c5hr1dbb11a8sr92g3vk6mr7lm02va"))))
+                "03kd28nq6wndvvyk0zs5120ajvg1icnif5bvrsyhw69sl7yyyzr6"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags
@@ -939,7 +1071,8 @@ instances, while JSON's objects will be mapped to @code{QVariantMap}.")
      `(("qca" ,qca)
        ("qtbase" ,qtbase)))
     (arguments
-     '(#:phases
+     '(#:tests? #f                      ;FIXME: some tests are failing
+       #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'patch-code
            (lambda _
@@ -947,11 +1080,17 @@ instances, while JSON's objects will be mapped to @code{QVariantMap}.")
              (substitute* "src/src.pro"
                (("/lib64") "/lib"))
              #t))
-         (delete 'configure) ; no configure script
-         (delete 'check) ; no test target
-         (add-before 'build 'qmake
-           (lambda _
-             (let ((qca (assoc-ref %build-inputs "qca")))
+         (add-after 'unpack 'adjust-mkspecs-directory
+           (lambda* (#:key outputs #:allow-other-keys)
+             (substitute* "src/src.pro"
+               ;; Do not attempt to install the .prf file into qtbase
+               ;; "lib/qt5/mkspecs/features", ref <https://bugs.gnu.org/45031>.
+               (("\\$\\$\\[QMAKE_MKSPECS\\]")
+                (string-append (assoc-ref outputs "out") "/lib/qt5/mkspecs")))
+             #t))
+         (replace 'configure
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((qca (assoc-ref inputs "qca")))
                (invoke
                 "qmake"
                 (string-append "PREFIX=" (assoc-ref %outputs "out"))
@@ -1272,15 +1411,15 @@ perform the opening handshake in HTTP.")
 (define-public libpsl
   (package
     (name "libpsl")
-    (version "0.21.0")
+    (version "0.21.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/rockdaboot/libpsl/"
-                                  "releases/download/libpsl-" version
+                                  "releases/download/" version
                                   "/libpsl-" version ".tar.gz"))
               (sha256
                (base32
-                "04pfagb7ppq3yibx4lhazd1v9nwkxdfkyy2rgcrmrf3mldsirga1"))))
+                "0k0d46bbh1jj2ll369f134vciplrzbqkg7fv9m62bl6lzghy2v5c"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
@@ -1345,6 +1484,49 @@ used to validate and fix HTML data.")
     (home-page "http://tidy.sourceforge.net/")
     (license (license:x11-style "file:///include/tidy.h"))))
 
+(define-public esbuild
+  (package
+    (name "esbuild")
+    (version "0.8.32")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/evanw/esbuild")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "17aa269dq0gsm4nlhh1q2mj6k8mw6v8ig3nygwk3s07l2xl5gqvn"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin
+           ;; Remove prebuilt binaries
+           (delete-file-recursively "npm")
+           #t))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/evanw/esbuild/cmd/esbuild"
+       #:unpack-path "github.com/evanw/esbuild"
+       #:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key tests? unpack-path #:allow-other-keys)
+             (when tests?
+               (with-directory-excursion (string-append "src/" unpack-path)
+                 (invoke "make" "test-go")))
+             #t)))))
+    (inputs
+     `(("golang.org/x/sys" ,go-golang-org-x-sys)))
+    (native-inputs
+     `(("github.com/kylelemons/godebug" ,go-github-com-kylelemons-godebug)))
+    (home-page "https://esbuild.github.io/")
+    (synopsis "Bundler and minifier tool for JavaScript and TypeScript")
+    (description
+     "The esbuild tool provides a unified bundler, transpiler and
+minifier.  It packages up JavaScript and TypeScript code, along with JSON
+and other data, for distribution on the web.")
+    (license license:expat)))
+
 (define-public tinyproxy
   (package
     (name "tinyproxy")
@@ -1502,21 +1684,31 @@ hash/signatures.")
 (define-public libyaml
   (package
     (name "libyaml")
-    (version "0.2.4")
+    (version "0.2.5")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://pyyaml.org/download/libyaml/yaml-"
                            version ".tar.gz"))
        (sha256
-        (base32 "0mq5wf17ifcwwxq3kbimhi53jn3fg23vcynqpzxjcz3vfjlfs2nq"))))
+        (base32
+         "1x4fcw13r3lqy8ndydr3ili87wicplw2awbcv6r21qgyfndswhn6"))))
     (build-system gnu-build-system)
+    (arguments
+     '(#:configure-flags '("--disable-static")))
     (home-page "https://pyyaml.org/wiki/LibYAML")
     (synopsis "YAML 1.1 parser and emitter written in C")
     (description
      "LibYAML is a YAML 1.1 parser and emitter written in C.")
     (license license:expat)))
 
+(define-public libyaml+static
+  (package
+    (inherit libyaml)
+    (name "libyaml+static")
+    (arguments
+     '(#:configure-flags '("--enable-static")))))
+
 (define-public libquvi-scripts
   (package
     (name "libquvi-scripts")
@@ -1602,6 +1794,7 @@ from streaming URLs.  It is a command-line wrapper for the libquvi library.")
        (method url-fetch)
        (uri (string-append "mirror://apache/serf/serf-"
                            version ".tar.bz2"))
+       (patches (search-patches "serf-python3.patch"))
        (sha256
         (base32 "1k47gbgpp52049andr28y28nbwh9m36bbb0g8p0aka3pqlhjv72l"))))
     (build-system scons-build-system)
@@ -1614,8 +1807,7 @@ from streaming URLs.  It is a command-line wrapper for the libquvi library.")
        ;;("gss" ,gss)
        ("zlib" ,zlib)))
     (arguments
-     `(#:scons ,scons-python2
-       #:scons-flags (list (string-append "APR=" (assoc-ref %build-inputs "apr"))
+     `(#:scons-flags (list (string-append "APR=" (assoc-ref %build-inputs "apr"))
                            (string-append "APU=" (assoc-ref %build-inputs "apr-util"))
                            (string-append "OPENSSL=" (assoc-ref %build-inputs "openssl"))
                            ;; (string-append "GSSAPI=" (assoc-ref %build-inputs "gss"))
@@ -1675,7 +1867,7 @@ minimum to provide high performance operation.")
   (package
     (name "libsass")
     ;; When updating, check whether sassc/libsass-3.5 is still needed.
-    (version "3.6.3")
+    (version "3.6.4")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -1684,7 +1876,7 @@ minimum to provide high performance operation.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1vn0q343d1vxz5q0xb6f9dzjah8z6j0s6x0lwvwdd55xa8z7rsnh"))))
+                "0r8lfqvr3rjhjd8r036zd1wc9q17gyiskppcw9m13jks9an7xp4j"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
@@ -1962,14 +2154,14 @@ instance of a component on each request.")
 (define-public perl-catalyst-devel
   (package
     (name "perl-catalyst-devel")
-    (version "1.40")
+    (version "1.41")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "mirror://cpan/authors/id/J/JJ/JJNAPIORK/"
+       (uri (string-append "mirror://cpan/authors/id/H/HA/HAARG/"
                            "Catalyst-Devel-" version ".tar.gz"))
        (sha256
-        (base32 "1fqnw6cizpxnfr87rpid8w1wpi1p1lxg6imfjpixqn7s055hcpwc"))))
+        (base32 "1r8arq7sw37d0mjyfzkc3pg1a9plgydqbscryc8qpvba4swpljls"))))
     (build-system perl-build-system)
     (native-inputs
      `(("perl-test-fatal" ,perl-test-fatal)))
@@ -2194,16 +2386,15 @@ Catalyst.")
 (define-public perl-catalyst-plugin-configloader
   (package
     (name "perl-catalyst-plugin-configloader")
-    (version "0.34")
+    (version "0.35")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "mirror://cpan/authors/id/B/BO/BOBTFISH/"
+       (uri (string-append "mirror://cpan/authors/id/H/HA/HAARG/"
                            "Catalyst-Plugin-ConfigLoader-"
                            version ".tar.gz"))
        (sha256
-        (base32
-         "19j7p4v7mbx6wrmpvmrnd974apx7hdl2s095ga3b9zcbdrl77h5q"))))
+        (base32 "0w8r3bbxqnlykvra6sx3sh3wh8ylkj914xg5ql6nw11ddy56jaly"))))
     (build-system perl-build-system)
     (native-inputs
      `(("perl-path-class" ,perl-path-class)
@@ -2520,15 +2711,14 @@ stash data in JSON format.")
 (define-public perl-catalyst-view-tt
   (package
     (name "perl-catalyst-view-tt")
-    (version "0.44")
+    (version "0.45")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "mirror://cpan/authors/id/E/ET/ETHER/"
+       (uri (string-append "mirror://cpan/authors/id/H/HA/HAARG/"
                            "Catalyst-View-TT-" version ".tar.gz"))
      (sha256
-      (base32
-       "06d1zg4nbb6kcyjbnyxrkf8z4zlscxr8650d94f7187jygfl8rvh"))))
+      (base32 "0jzgpkgq5pwq82zlb0nykdyk40dfpsyn9ilz91d0wpixgi9i5pr8"))))
   (build-system perl-build-system)
   (propagated-inputs
    `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
@@ -2631,15 +2821,14 @@ development server with Starman.")
 (define-public perl-cgi
   (package
     (name "perl-cgi")
-    (version "4.47")
+    (version "4.51")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://cpan/authors/id/L/LE/LEEJO/"
                            "CGI-" version ".tar.gz"))
        (sha256
-        (base32
-         "1a9cylhqsm5icvbg09m21nj0xx4zy5gbk4p74npm1ch3qlryzyyr"))))
+        (base32 "02k0p8zwbn0fz9r39rg8jvbmky8fwdg6kznklzk557rg07kiblhb"))))
     (build-system perl-build-system)
     (native-inputs
      `(("perl-test-deep" ,perl-test-deep)
@@ -2857,15 +3046,15 @@ RSS 0.91, RSS 1.0, RSS 2.0, Atom.")
 (define-public perl-file-listing
   (package
     (name "perl-file-listing")
-    (version "6.04")
+    (version "6.11")
     (source (origin
              (method url-fetch)
              (uri (string-append
-                   "mirror://cpan/authors/id/G/GA/GAAS/File-Listing-"
+                   "mirror://cpan/authors/id/P/PL/PLICEASE/File-Listing-"
                    version ".tar.gz"))
              (sha256
               (base32
-               "1xcwjlnxaiwwpn41a5yi6nz95ywh3szq5chdxiwj36kqsvy5000y"))))
+               "0vmzw1mhv580flzkla80gvwfpficnhlbqr1dnlf9x50bw7n18k62"))))
     (build-system perl-build-system)
     (propagated-inputs
      `(("perl-http-date" ,perl-http-date)))
@@ -3180,15 +3369,14 @@ and multipart/form-data.")
 (define-public perl-http-cookiejar
   (package
     (name "perl-http-cookiejar")
-    (version "0.008")
+    (version "0.010")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://cpan/authors/id/D/DA/DAGOLDEN/"
                            "HTTP-CookieJar-" version ".tar.gz"))
        (sha256
-        (base32
-         "0rfw6avcralggs7bf7n86flvhaahxjnqzvpwszp0sk4z4wwy01wm"))))
+        (base32 "1l7mqsca4fmls7agzwmp6yq1x16y9jwq4114i6i75n654gl37qsn"))))
     (build-system perl-build-system)
     (native-inputs
      `(("perl-test-deep" ,perl-test-deep)
@@ -3532,15 +3720,14 @@ algorithm specified in section 8.2.2.1 of the draft standard.")
 (define-public perl-io-socket-ip
   (package
     (name "perl-io-socket-ip")
-    (version "0.39")
+    (version "0.41")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://cpan/authors/id/P/PE/PEVANS/"
                            "IO-Socket-IP-" version ".tar.gz"))
        (sha256
-        (base32
-         "15kv5g1yb4a345sk3r5wfr99f868lhfqkddzsgpqddvccfkhv58i"))))
+        (base32 "0ihlpxrkq1xrvhnq52nhghanskic718ch8kpp642afgq72i4b6l4"))))
     (build-system perl-build-system)
     (native-inputs `(("perl-module-build" ,perl-module-build)))
     (home-page "https://metacpan.org/release/IO-Socket-IP")
@@ -3580,7 +3767,7 @@ select or poll.")
 (define-public perl-libwww
   (package
     (name "perl-libwww")
-    (version "6.41")
+    (version "6.49")
     (source (origin
              (method url-fetch)
              (uri (string-append
@@ -3588,7 +3775,7 @@ select or poll.")
                    version ".tar.gz"))
              (sha256
               (base32
-               "0jh67946fwd33ap3xy8df0421d2mr6lmhalhkf1p7dx2b7fil9wf"))))
+               "19k0cg4j4qz005a4ngy48z4r8dc99dxlpq8kvj7qnk15mvgd1r63"))))
     (build-system perl-build-system)
     (native-inputs
      `(("perl-test-fatal" ,perl-test-fatal)
@@ -3674,15 +3861,14 @@ exists it is used instead.")
 (define-public perl-lwp-protocol-https
   (package
     (name "perl-lwp-protocol-https")
-    (version "6.07")
+    (version "6.09")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://cpan/authors/id/O/OA/OALDERS/"
                            "LWP-Protocol-https-" version ".tar.gz"))
        (sha256
-        (base32
-         "1rxrpwylfw1afah0nk96kgkwjbl2p1a7lwx50iipg8c4rx3cjb2j"))))
+        (base32 "14pm785cgyrnppks6ccasb2vkqifh0a8fz36nmnhc2v926jy3kqn"))))
     (build-system perl-build-system)
     (native-inputs
      ;; For tests.
@@ -3690,8 +3876,7 @@ exists it is used instead.")
     (propagated-inputs
      `(("perl-io-socket-ssl" ,perl-io-socket-ssl)
        ("perl-libwww" ,perl-libwww)
-       ;; Users should instead make sure SSL_ca_path is set properly.
-       ;; ("perl-mozilla-ca" ,perl-mozilla-ca)
+       ("perl-mozilla-ca" ,perl-mozilla-ca)
        ("perl-net-http" ,perl-net-http)))
     (home-page "https://metacpan.org/release/LWP-Protocol-https")
     (synopsis "HTTPS support for LWP::UserAgent")
@@ -3717,7 +3902,7 @@ https schemed URLs with LWP.")
     (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
-cache support.  It returns responses from the local filesystem if available
+cache support.  It returns responses from the local file system, if available,
 instead of making an HTTP request.")
     (license license:perl-license)))
 
@@ -3819,7 +4004,7 @@ is limited to http and https.")
 (define-public perl-net-http
   (package
     (name "perl-net-http")
-    (version "6.19")
+    (version "6.20")
     (source (origin
              (method url-fetch)
              (uri (string-append
@@ -3827,7 +4012,7 @@ is limited to http and https.")
                    "Net-HTTP-" version ".tar.gz"))
              (sha256
               (base32
-               "1i1gbcwdzx74whn5vn6xbr2cp7frldfz2rfrcjp2qljr770nxdsj"))))
+               "07lzfycza7qqxli18xgsnqwiwxapl0b64z33wfw62aai4hm7nllj"))))
     (build-system perl-build-system)
     (propagated-inputs
      `(("perl-io-socket-ssl" ,perl-io-socket-ssl)
@@ -4075,14 +4260,14 @@ either mocked HTTP or a locally spawned server.")
 (define-public perl-test-tcp
   (package
     (name "perl-test-tcp")
-    (version "2.21")
+    (version "2.22")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "mirror://cpan/authors/id/K/KA/KAZUHO/"
+       (uri (string-append "mirror://cpan/authors/id/M/MI/MIYAGAWA/"
                            "Test-TCP-" version ".tar.gz"))
        (sha256
-        (base32 "1djnaw1yli0kcd7azchqnp59l62f6mp13q50xyrjirpaxhd51j32"))))
+        (base32 "0mvv9rqwrwlcfh8qrs0s47p85rhlnw15d4gbpyi802bddp0c6lry"))))
     (build-system perl-build-system)
     (propagated-inputs
      `(("perl-test-sharedfork" ,perl-test-sharedfork)))
@@ -4308,14 +4493,14 @@ RFC 6570.")
               (uri (string-append
                     "mirror://cpan/authors/id/S/SZ/SZBALINT/WWW-Curl-"
                     version".tar.gz"))
-              (patches (search-patches "perl-www-curl-remove-symbol.patch"))
+              (patches (search-patches "perl-www-curl-fix-struct-void.patch"
+                                       "perl-www-curl-remove-symbol.patch"))
               (sha256
                (base32
                 "1fmp9aib1kaps9vhs4dwxn7b15kgnlz9f714bxvqsd1j1q8spzsj"))))
     (build-system perl-build-system)
     (arguments
      '(#:tests? #f                          ;XXX: tests require network access
-
        #:phases (modify-phases %standard-phases
                    (add-before 'configure 'set-search-path
                      (lambda _
@@ -4457,8 +4642,8 @@ CDF, Atom 0.3, and Atom 1.0 feeds.")
   (package-with-python2 python-feedparser))
 
 (define-public guix-data-service
-  (let ((commit "d1c243f7fd8902f359ff06fb78dce663cf4297ce")
-        (revision "19"))
+  (let ((commit "e3878fefb4184f3ad45a6e6f434767c0bf109db8")
+        (revision "23"))
     (package
       (name "guix-data-service")
       (version (string-append "0.0.1-" revision "." (string-take commit 7)))
@@ -4470,7 +4655,7 @@ CDF, Atom 0.3, and Atom 1.0 feeds.")
                 (file-name (git-file-name name version))
                 (sha256
                  (base32
-                  "1ji8d4vwmv7j9h7z96hvzi3zvik594yngjrdal37w13fbxy2v6sw"))))
+                  "0002ckayjnd6mw7a0m7q307jdwc9vsjgiidp72463xyp0yrnjdjf"))))
       (build-system gnu-build-system)
       (arguments
        '(#:modules ((guix build utils)
@@ -4484,7 +4669,7 @@ CDF, Atom 0.3, and Atom 1.0 feeds.")
          (modify-phases %standard-phases
            (add-before 'build 'set-GUILE_AUTO_COMPILE
              (lambda _
-               ;; To avoid errors relating to guild
+               ;; To avoid warnings relating to 'guild'.
                (setenv "GUILE_AUTO_COMPILE" "0")
                #t))
            (add-after 'install 'wrap-executable
@@ -4533,13 +4718,14 @@ CDF, Atom 0.3, and Atom 1.0 feeds.")
          ("guile-fibers" ,guile3.0-fibers)
          ("guile-json" ,guile3.0-json)
          ("guile-email" ,guile3.0-email)
+         ("guile-prometheus" ,guile-prometheus)
          ("guile-squee" ,guile3.0-squee)
          ("ephemeralpg" ,ephemeralpg)
          ("util-linux" ,util-linux)
          ("postgresql" ,postgresql-11)
          ("sqitch" ,sqitch)))
       (native-inputs
-       `(("guile" ,guile-3.0)
+       `(("guile" ,@(assoc-ref (package-native-inputs guix) "guile"))
          ("autoconf" ,autoconf)
          ("automake" ,automake)
          ("emacs-minimal" ,emacs-minimal)
@@ -4949,6 +5135,7 @@ NetSurf project.")
        ("perl-xml-feed" ,perl-xml-feed)
        ("perl-xml-sax" ,perl-xml-sax)
        ("perl-xml-twig" ,perl-xml-twig)
+       ("perl-yaml-tiny" ,perl-yaml-tiny)
        ("po4a" ,po4a)))
     (propagated-inputs
      `(("perl-cgi-formbuilder" ,perl-cgi-formbuilder)
@@ -4987,7 +5174,7 @@ commenting.")
     (native-inputs
      `(("netsurf-buildsystem" ,netsurf-buildsystem)
        ("pkg-config" ,pkg-config)
-       ("check" ,check)))               ;for tests
+       ("check" ,check-0.14)))          ;for tests
     (arguments netsurf-buildsystem-arguments)
     (home-page "https://www.netsurf-browser.org/projects/libwapcaplet/")
     (synopsis "String internment library")
@@ -5028,7 +5215,7 @@ written in C.  It is developed as part of the NetSurf project.")
 (define-public libcyaml
   (package
     (name "libcyaml")
-    (version "1.0.1")
+    (version "1.1.0")
     (source
      (origin
        (method git-fetch)
@@ -5036,8 +5223,9 @@ written in C.  It is developed as part of the NetSurf project.")
              (url "https://github.com/tlsa/libcyaml")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
+       (patches (search-patches "libcyaml-libyaml-compat.patch"))
        (sha256
-        (base32 "0h5ydyqdl8kzh526np3jsi0pm7ks16nh1hjkdsjcd6pacw7y6i6z"))))
+        (base32 "0428p0rwq71nhh5nzcbapsbrjxa0x5l6h6ns32nxv7j624f0zd93"))))
     (build-system gnu-build-system)
     (arguments
      `(#:make-flags
@@ -5053,7 +5241,7 @@ written in C.  It is developed as part of the NetSurf project.")
     (inputs
      `(("libyaml" ,libyaml)))
     (native-inputs
-     `(("pkg-config", pkg-config)))
+     `(("pkg-config" ,pkg-config)))
     (synopsis "C library for reading and writing YAML")
     (description
      "LibCYAML is a C library written in ISO C11 for reading and writing
@@ -5514,14 +5702,14 @@ on the fly.")
 (define-public hitch
   (package
     (name "hitch")
-    (version "1.6.0")
+    (version "1.7.0")
     (home-page "https://hitch-tls.org/")
     (source (origin
               (method url-fetch)
               (uri (string-append home-page "source/hitch-" version ".tar.gz"))
               (sha256
                (base32
-                "01n70yf8hx42jb801jv5q1xhrpqxyjnqhd98hjf81lvxpd5fnisf"))))
+                "1i75giwyr66ip8xsvk3gg5xdbxnmcabgxz8dqi06c58mw7qzhzn9"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases (modify-phases %standard-phases
@@ -5606,14 +5794,14 @@ tools like SSH (Secure Shell) to reach the outside world.")
 (define-public stunnel
   (package
   (name "stunnel")
-  (version "5.56")
+  (version "5.57")
   (source
     (origin
       (method url-fetch)
       (uri (string-append "https://www.stunnel.org/downloads/stunnel-"
                           version ".tar.gz"))
       (sha256
-       (base32 "08kb4gi9fzqngrczykvba6xhaxhq9m4wmdbhxvgrva5rasrvz13k"))))
+       (base32 "1q8gc05fiz7w55ws0whwzb94ffjnhzfppf1mhz1hf671vmrvjnmg"))))
   (build-system gnu-build-system)
   (native-inputs
    ;; For tests.
@@ -5654,13 +5842,13 @@ deployments.")
   (package
     (name "varnish")
     (home-page "https://varnish-cache.org/")
-    (version "6.4.0")
+    (version "6.5.1")
     (source (origin
               (method url-fetch)
               (uri (string-append home-page "_downloads/varnish-" version ".tgz"))
               (sha256
                (base32
-                "1hkn98vbxk7rc1sd08367qn6rcv8wkxgwbmm1x46y50vi0nvldpn"))))
+                "1dfdswri6lkfk6kml3szvffm91y49pajgqy1k5y26llqixl4r5hi"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags (list (string-append "LDFLAGS=-Wl,-rpath=" %output "/lib")
@@ -5728,18 +5916,25 @@ configuration language.")
   (package
     (name "varnish-modules")
     (home-page "https://github.com/varnish/varnish-modules")
-    (version "0.16.0")
+    (version "0.17.0")
     (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/varnish/varnish-modules"
-                                  "/releases/download/varnish-modules-" version
-                                  "/varnish-modules-" version ".tar.gz"))
+              (method git-fetch)
+              (uri (git-reference (url home-page) (commit version)))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "1ph5bplsip4rycql1c2hgbvmrwbgcrgv2ldgfp7saxxbsv5cpcds"))))
+                "0zg8y2sgkygdani70zp9rbx278431fmssj26d47c5qsiw939i519"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     `(("pkg-config" ,pkg-config)
+
+       ;; For bootstrapping.
+       ("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("libtool" ,libtool)
+
+       ;; For generating manuals.
+       ("rst2man" ,python-docutils)))
     (inputs
      `(("python" ,python)
        ("varnish" ,varnish)))
@@ -5947,9 +6142,6 @@ into your tests.  It automatically starts up a HTTP server in a separate thread
 @code{httpbin} and provides your test with the URL in the fixture.")
     (license license:expat)))
 
-(define-public python2-pytest-httpbin
-  (package-with-python2 python-pytest-httpbin))
-
 (define-public http-parser
   (package
     (name "http-parser")
@@ -6130,7 +6322,7 @@ command-line arguments or read from stdin.")
     (home-page "https://github.com/jjjake/internetarchive")
     (synopsis "Command-line interface to archive.org")
     (description "@code{ia} is a command-line tool for using
-@url{archive.org} from the command-line.  It also emplements the
+@url{archive.org} from the command-line.  It also implements the
 internetarchive python module for programmatic access to archive.org.")
     (license license:agpl3+)))
 
@@ -6238,7 +6430,7 @@ Instagram and YouTube.")
          "03ihjmc4bqxxqv71bb43r2f23sx0xnbq1k2fsg9fw05qa5s9x187"))))
     (build-system python-build-system)
     (inputs
-     `(("python2-dnspython" ,python2-dnspython)
+     `(("python2-dnspython" ,python2-dnspython-1.16)
        ("python2-pyxdg" ,python2-pyxdg)
        ("python2-requests" ,python2-requests)))
     (native-inputs
@@ -6312,6 +6504,48 @@ file upload, download, on-screen display, namespace operations (move/copy),
 collection creation and deletion, and locking operations.")
     (license license:gpl2)))
 
+(define-public castor
+  (package
+    (name "castor")
+    (version "0.8.16")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://git.sr.ht/~julienxx/castor")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0rwg1w7srjwa23mkypl8zk6674nhph4xsc6nc01f6g5k959szylr"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-ansi-parser" ,rust-ansi-parser-0.6)
+        ("rust-dirs" ,rust-dirs-2.0)
+        ("rust-gdk" ,rust-gdk-0.13)
+        ("rust-gtk" ,rust-gtk-0.8)
+        ("rust-linkify" ,rust-linkify-0.4)
+        ("rust-native-tls" ,rust-native-tls-0.2)
+        ("rust-open" ,rust-open-1)
+        ("rust-percent-encoding" ,rust-percent-encoding-2)
+        ("rust-url" ,rust-url-2))))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("atk" ,atk)
+       ("cairo" ,cairo)
+       ("gdk-pixbuf" ,gdk-pixbuf)
+       ("gtk+" ,gtk+)
+       ("libressl" ,libressl)
+       ("pango" ,pango)))
+    (home-page "https://git.sr.ht/~julienxx/castor")
+    (synopsis "Graphical client for plain-text protocols")
+    (description
+     "Castor is a graphical client for plain-text protocols written in
+Rust with GTK.  It currently supports the Gemini, Gopher and Finger
+protocols.")
+    (license license:expat)))
+
 (define-public python-py-ubjson
   (package
     (name "python-py-ubjson")
@@ -7425,6 +7659,36 @@ update an existing mirrored site, and resume interrupted downloads.
 HTTrack is fully configurable, and has an integrated help system.")
     (license license:gpl3+)))
 
+(define-public buku
+  (package
+    (name "buku")
+    (version "4.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "buku" version))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1bk3h2ya34a5livyf6p7kawh50ikbix5szsq2rkb8cp5bwrzsj5i"))))
+    (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)))
+    (home-page "https://github.com/jarun/buku")
+    (synopsis "Bookmark manager")
+    (description
+     "buku is a powerful bookmark manager written in Python3 and SQLite3.
+@command{buku} can auto-import bookmarks from your browser and present them
+in an interactive command-line interface that lets you compose and update
+bookmarks directly.  It can also present them in a web interface with
+@command{bukuserver}.")
+    (license license:gpl3+)))
+
 (define-public anonip
   (package
     (name "anonip")
@@ -7557,3 +7821,221 @@ solution for any project's interface needs:
 @item Easily integrated and extensible with Python or Lua scripting.
 @end itemize\n")
     (license license:expat)))
+
+(define-public gmnisrv
+  (let ((commit "d484ba0ab0020866535a44be5948c9482b8f2b8d")
+        (revision "1"))
+    (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
+                  "11phipixsxx1jgm42agp76p5s68l0zj65kgb41vzaymgwcq79ivn"))
+                (file-name (git-file-name name version))))
+      (build-system gnu-build-system)
+      (arguments
+       `(#:phases
+         (modify-phases %standard-phases
+           (add-before 'configure 'set-variables
+             (lambda _
+               (setenv "CC" "gcc")
+               #t))
+           (delete 'check))))
+      (inputs
+       `(("openssl" ,openssl)))
+      (native-inputs
+       `(("pkg-config" ,pkg-config)
+         ("scdoc" ,scdoc)))
+      (propagated-inputs
+       `(("mailcap" ,mailcap)))
+      (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
+    (name "libzim")
+    (version "6.3.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/openzim/libzim")
+                    (commit version)))
+              (sha256
+               (base32
+                "0iy0f1clhihq277x218ccx3mszgpr3h9l0by48b9ykr115nffw3s"))
+              (file-name (git-file-name name version))))
+    (build-system meson-build-system)
+    (arguments
+     ;; TODO: Find out why tests fail.
+     '(#:tests? #f))
+    (inputs
+     `(("icu4c" ,icu4c)
+       ("liblzma" ,xz)
+       ("libuuid" ,util-linux "lib")
+       ("xapian" ,xapian)
+       ("zstd" ,zstd "lib")))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("googletest" ,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
+content coming from the Web.  The zimlib is the standard implementation of the
+ZIM specification.  It is a library which implements the read and write method
+for ZIM files.")
+    (license license:gpl2)))
+
+(define-public kiwix-lib
+  (package
+    (name "kiwix-lib")
+    (version "9.4.1")
+    (home-page "https://github.com/kiwix/kiwix-lib/")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url home-page)
+                    (commit version)))
+              (sha256
+               (base32
+                "034nk6l623v78clrs2d0k1vg69sbzrd8c0q79qiqmlkinck1nkxw"))
+              (file-name (git-file-name name version))))
+    (build-system meson-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-before 'configure 'fix-paths-and-includes
+           (lambda* (#:key inputs #:allow-other-keys)
+             (setenv "CPPFLAGS" (string-append "-I" (assoc-ref inputs "mustache")))
+             (substitute* "src/aria2.cpp"
+               (("ARIA2_CMD \"aria2c\"")
+                (string-append "ARIA2_CMD \""
+                               (assoc-ref inputs "aria2")
+                               "/bin/aria2c\"")))
+             #t)))))
+    (inputs
+     `(("aria2" ,aria2)
+       ("curl" ,curl)
+       ("icu4c" ,icu4c)
+       ("libmicrohttpd" ,libmicrohttpd)
+       ("libzim" ,libzim)
+       ("pugixml" ,pugixml)
+       ("xapian" ,xapian)
+       ("zlib" ,zlib)
+       ("zstd" ,zstd "lib")))
+    (native-inputs
+     `(("mustache" ,(origin
+                      (method git-fetch)
+                      (uri (git-reference
+                            (url "https://github.com/kainjow/Mustache")
+                            ;; XXX: Readme says to use version 3.  Can we use 3.2.1?
+                            (commit "v4.1")))
+                      (file-name (git-file-name "mustache" "4.1"))
+                      (sha256
+                       (base32
+                        "0r9rbk6v1wpld2ismfsk2lkhbyv3dkf0p03hkjivbj05qkfhvlbb"))))
+       ("pkg-config" ,pkg-config)))
+    (synopsis "Common code base for all Kiwix ports")
+    (description "The Kiwix library provides the Kiwix software suite core.
+It contains the code shared by all Kiwix ports.")
+    (license license:gpl3)))
+
+(define-public kiwix-desktop
+  (package
+    (name "kiwix-desktop")
+    (version "2.0.5")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://download.kiwix.org/release/kiwix-desktop/kiwix-desktop-"
+                    version
+                    ".tar.gz"))
+              (sha256
+               (base32
+                "1a9h4qmh6fkfscyp6lax0ri07dvvzw2wp4kr1sm86n0bdk3cwwha"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'configure
+           (lambda* (#:key outputs #:allow-other-keys)
+             (invoke "qmake"
+                     (string-append "PREFIX="
+                                    (assoc-ref outputs "out")))))
+         (add-before 'configure 'enable-print-support
+           (lambda _
+             (substitute* "kiwix-desktop.pro"
+               (("webenginewidgets") "webenginewidgets printsupport"))
+             #t))
+         (add-before 'configure 'substitute-source
+           ;; Looks like .pro file is missing a feature.
+           ;; See https://github.com/kiwix/kiwix-desktop/issues/556.
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "kiwix-desktop.pro"
+               (("webenginewidgets" all) (string-append all " printsupport")))
+             #t))
+         (add-after 'install 'wrap-qt-process-path
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (bin (string-append out "/bin/kiwix-desktop"))
+                    (qt-process-path (string-append
+                                      (assoc-ref inputs "qtwebengine")
+                                      "/lib/qt5/libexec/QtWebEngineProcess")))
+               (wrap-program bin
+                 `("QTWEBENGINEPROCESS_PATH" = (,qt-process-path)))
+               #t))))))
+    (inputs
+     `(("curl" ,curl)
+       ("icu4c" ,icu4c)
+       ("kiwix-lib" ,kiwix-lib)
+       ("libmicrohttpd" ,libmicrohttpd)
+       ("libzim" ,libzim)
+       ("pugixml" ,pugixml)
+       ("qtbase" ,qtbase)
+       ("qtdeclarative" ,qtdeclarative)
+       ("qtwebchannel" ,qtwebchannel)
+       ("qtwebengine" ,qtwebengine)
+       ("xapian" ,xapian)
+       ("zlib" ,zlib)
+       ("zstd" ,zstd "lib")))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("qmake" ,qtbase)))
+    (home-page "https://wiki.kiwix.org/wiki/Software")
+    (synopsis "Viewer and manager of ZIM files")
+    (description "Kiwix Desktop allows you to enjoy a lot of different content
+offline (such as Wikipedia), without any access to Internet.")
+    (license license:gpl3)))
+
+(define-public uriparser
+  (let ((commit "25dddb16cf044a7df27884e7ad3911baaaca3d7c")
+        (revision "1"))
+    (package
+      (name "uriparser")
+      (version (git-version "0.9.4" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/uriparser/uriparser")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "1ffzia679axcsccx2fxjpxhb0i5xc42zxn446x6c1170w6v69qf6"))))
+      (build-system cmake-build-system)
+      (native-inputs `(("gtest" ,googletest)
+                       ("doxygen" ,doxygen)
+                       ("graphviz" ,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
+Unicode.")
+      (home-page "https://uriparser.github.io/")
+      (license license:bsd-3))))
diff --git a/gnu/packages/webkit.scm b/gnu/packages/webkit.scm
index 5a517c3b87..1f49c7de91 100644
--- a/gnu/packages/webkit.scm
+++ b/gnu/packages/webkit.scm
@@ -3,7 +3,7 @@
 ;;; 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 © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
 ;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com>
 ;;;
@@ -32,9 +32,11 @@
   #:use-module (gnu packages)
   #:use-module (gnu packages base)
   #:use-module (gnu packages bison)
+  #:use-module (gnu packages compression)
   #:use-module (gnu packages docbook)
   #:use-module (gnu packages enchant)
   #:use-module (gnu packages flex)
+  #:use-module (gnu packages fontutils)
   #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages gcc)
   #:use-module (gnu packages gettext)
@@ -65,29 +67,28 @@
   (package
     (name "libwpe")
     (version "1.6.0")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://wpewebkit.org/releases/libwpe-"
-                                  version ".tar.xz"))
-              (sha256
-               (base32
-                "141w35b488jjhanl3nrm0awrbcy6hb579fk8n9vbpx07m2wcd1rm"))))
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://wpewebkit.org/releases/libwpe-"
+                       version ".tar.xz"))
+       (sha256
+        (base32 "141w35b488jjhanl3nrm0awrbcy6hb579fk8n9vbpx07m2wcd1rm"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f))                    ;no tests
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     `(("pkg-config" ,pkg-config)
+       ("python" ,python-wrapper)))
     (inputs
      `(("mesa" ,mesa)))
     (propagated-inputs
-     `(;; In Requires of wpe-1.0.pc.
-       ("libxkbcommon" ,libxkbcommon)))
+     `(("libxkbcommon" ,libxkbcommon)))
+    (synopsis "General-purpose library for WPE")
+    (description "LibWPE is general-purpose library specifically developed for
+the WPE-flavored port of WebKit.")
     (home-page "https://wpewebkit.org/")
-    (synopsis "Platform agnostic WebKit interfaces")
-    (description
-     "@code{libwpe} is a small library that defines programming interfaces
-for use by WebKit, and provides a mechanism for loading a platform-specific
-backend which implements them.")
     (license license:bsd-2)))
 
 (define-public wpebackend-fdo
@@ -118,18 +119,121 @@ backend which implements them.")
 engine that uses Wayland for graphics output.")
     (license license:bsd-2)))
 
+(define-public wpewebkit
+  (package
+    (name "wpewebkit")
+    (version "2.28.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://wpewebkit.org/releases/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "12z9457ja1xm93kl3gpd6nvd5xn11mvm8pr0w2zhmh3k9lx2cf95"))))
+    (build-system cmake-build-system)
+    (outputs '("out" "doc"))
+    (arguments
+     `(#:tests? #f                      ; XXX: To be enabled
+       #:configure-flags
+       (list
+        "-DPORT=WPE"
+        ;; XXX: To be enabled.
+        ;; "-DENABLE_ACCELERATED_2D_CANVAS=ON"
+        "-DENABLE_ENCRYPTED_MEDIA=ON"
+        "-DENABLE_GTKDOC=ON")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'setenv
+           (lambda _
+             (setenv "HOME" "/tmp")
+             #t))
+         (add-after 'unpack 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (for-each
+              (lambda (file)
+                (substitute* file
+                  (("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))
+         (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))))))
+    (native-inputs
+     `(("docbook-xml" ,docbook-xml-4.1.2)
+       ("docbook-xsl" ,docbook-xsl)
+       ("glib:bin" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("gtk-doc" ,gtk-doc)
+       ("perl" ,perl)
+       ("pkg-config" ,pkg-config)
+       ("python" ,python-wrapper)
+       ("python2" ,python-2.7)
+       ("ruby" ,ruby)))
+    (inputs
+     `(("atk" ,atk)
+       ("atk-bridge" ,at-spi2-atk)
+       ("bubblewrap" ,bubblewrap)
+       ("cairo" ,cairo)
+       ("fontconfig" ,fontconfig)
+       ("freetype" ,freetype)
+       ("gperf" ,gperf)
+       ("gstreamer" ,gstreamer)
+       ("gst-plugins-base" ,gst-plugins-base)
+       ("harfbuzz" ,harfbuzz)
+       ("icu" ,icu4c)
+       ("libepoxy" ,libepoxy)
+       ("libgcrypt" ,libgcrypt)
+       ("libjpeg" ,libjpeg-turbo)
+       ("libpng" ,libpng)
+       ("libseccomp" ,libseccomp)
+       ("libtasn1" ,libtasn1)
+       ("libxml2" ,libxml2)
+       ("libxslt" ,libxslt)
+       ("mesa" ,mesa)
+       ("openjpeg" ,openjpeg)
+       ("sqlite" ,sqlite)
+       ("webp" ,libwebp)
+       ("woff2" ,woff2)
+       ("xdg-dbus-proxy" ,xdg-dbus-proxy)
+       ("zlib" ,zlib)))
+    (propagated-inputs
+     `(("glib" ,glib)
+       ("libsoup" ,libsoup)
+       ("wpe" ,libwpe)))
+    (synopsis "WebKit port optimized for embedded devices")
+    (description "WPE WebKit allows embedders to create simple and performant
+systems based on Web platform technologies.  It is designed with hardware
+acceleration in mind, leveraging common 3D graphics APIs for best performance.")
+    (home-page "https://wpewebkit.org/")
+    (license
+     (list
+      ;; Rendering and JavaScript Engines.
+      license:lgpl2.1+
+      ;; Others
+      license:bsd-2))))
+
 (define-public webkitgtk
   (package
     (name "webkitgtk")
-    (version "2.28.4")
+    (version "2.30.4")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://www.webkitgtk.org/releases/"
                                   "webkitgtk-" version ".tar.xz"))
               (sha256
                (base32
-                "0r4lkk21pny2g4mmsw0ds14m5hhjys1l47gvy59dfgihr7l546c2"))
-              (patches (search-patches "webkitgtk-share-store.patch"))))
+                "093v5wwi237kq8a2fvs6dn5b9rgjll1y6mdicrr7izq1a1ya75fm"))
+              (patches (search-patches "webkitgtk-share-store.patch"
+                                       "webkitgtk-bind-all-fonts.patch"))))
     (build-system cmake-build-system)
     (outputs '("out" "doc"))
     (arguments
@@ -138,6 +242,7 @@ engine that uses Wayland for graphics output.")
        #:configure-flags (list
                           "-DPORT=GTK"
                           "-DENABLE_GTKDOC=ON" ; No doc by default
+                          "-DUSE_SYSTEMD=OFF"
                           (string-append ; uses lib64 by default
                            "-DLIB_INSTALL_DIR="
                            (assoc-ref %outputs "out") "/lib")
diff --git a/gnu/packages/wget.scm b/gnu/packages/wget.scm
index d7ac9e0c12..1092237a03 100644
--- a/gnu/packages/wget.scm
+++ b/gnu/packages/wget.scm
@@ -3,7 +3,8 @@
 ;;; Copyright © 2014, 2015, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2016, 2017, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com>
-;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -56,10 +57,10 @@
     (inputs
      `(("gnutls" ,gnutls)
        ("libidn2" ,libidn2)
-       ("libpsl" ,libpsl)
-       ("lzip" ,lzip)))
+       ("libpsl" ,libpsl)))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
+     `(("lzip" ,lzip)
+       ("pkg-config" ,pkg-config)
        ("perl" ,perl)
        ("python" ,python)               ;for testenv suite
        ("perl-http-daemon" ,perl-http-daemon)
@@ -76,15 +77,15 @@ in downloaded documents to relative links.")
 (define-public wgetpaste
   (package
     (name "wgetpaste")
-    (version "2.29")
+    (version "2.30")
     (source
       (origin
         (method url-fetch)
-        (uri (string-append "http://wgetpaste.zlin.dk/wgetpaste-"
+        (uri (string-append "https://wgetpaste.zlin.dk/wgetpaste-"
                             version ".tar.bz2"))
         (sha256
-         (base32
-          "1rp0wxr3zy7y2xp3azaadfghrx7g0m138f9qg6icjxkkz4vj9r22"))))
+         (base32 "14k5i6j6f34hcf9gdb9cnvfwscn0ys2dgd73ci421wj9zzqkbv73"))
+        (patches (search-patches "wgetpaste-update-bpaste.patch"))))
     (build-system gnu-build-system)
     (arguments
      `(#:modules ((guix build gnu-build-system)
@@ -94,12 +95,12 @@ in downloaded documents to relative links.")
        (modify-phases %standard-phases
          (delete 'configure)
          (delete 'build)
-         (add-after 'unpack 'remove-dead-paste-site
-           ;; This phase is adaped from the following patch:
-           ;; https://gitweb.gentoo.org/repo/gentoo.git/tree/app-text/wgetpaste/files/wgetpaste-remove-dead.patch
+         (add-after 'unpack 'change-unfriendly-default
            (lambda _
              (substitute* "wgetpaste"
-               (("-bpaste") "-dpaste")) ; dpaste blocks tor users
+               ;; dpaste blocks Tor users.  Use a better default.
+               (("DEFAULT_SERVICE:-dpaste")
+                "DEFAULT_SERVICE-bpaste"))
              #t))
          (replace 'install
            (lambda* (#:key outputs #:allow-other-keys)
@@ -128,7 +129,7 @@ in downloaded documents to relative links.")
     (inputs
      `(("wget" ,wget)
        ("xclip" ,xclip)))
-    (home-page "http://wgetpaste.zlin.dk/")
+    (home-page "https://wgetpaste.zlin.dk/")
     (synopsis "Script that automates pasting to a number of pastebin services")
     (description
      "@code{wgetpaste} is an extremely simple command-line interface to various
diff --git a/gnu/packages/wine.scm b/gnu/packages/wine.scm
index c38936d55a..0d93af0dc9 100644
--- a/gnu/packages/wine.scm
+++ b/gnu/packages/wine.scm
@@ -76,7 +76,7 @@
 (define-public wine
   (package
     (name "wine")
-    (version "5.12")
+    (version "5.21")
     (source
      (origin
        (method url-fetch)
@@ -88,7 +88,7 @@
               (string-append "https://dl.winehq.org/wine/source/" dir
                              "wine-" version ".tar.xz")))
        (sha256
-        (base32 "0bl4ii4h1w4z8kb6dpdc1pgwk0wrhm61c2q2nzpcckkrqra75wc7"))))
+        (base32 "0h185lfpid6cw1sz8rmkpky2l11izpb0w8j0cq6ww6yi94jmq6js"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("bison" ,bison)
@@ -171,21 +171,22 @@
                     (let* ((out (assoc-ref outputs "out"))
                            (icd (string-append out "/share/vulkan/icd.d")))
                       (mkdir-p icd)
-                      (copy-file (string-append (assoc-ref inputs "mesa")
-                                 "/share/vulkan/icd.d/radeon_icd.i686.json")
+                      (copy-file (string-append
+                                  (assoc-ref inputs "mesa")
+                                  "/share/vulkan/icd.d/radeon_icd.i686.json")
                                  (string-append icd "/radeon_icd.i686.json"))
-                      (copy-file (string-append (assoc-ref inputs "mesa")
-                                 "/share/vulkan/icd.d/intel_icd.i686.json")
+                      (copy-file (string-append
+                                  (assoc-ref inputs "mesa")
+                                  "/share/vulkan/icd.d/intel_icd.i686.json")
                                  (string-append icd "/intel_icd.i686.json"))
                       (wrap-program (string-append out "/bin/wine-preloader")
-                                    `("VK_ICD_FILENAMES" ":" =
-                                      (,(string-append icd
-                                        "/radeon_icd.i686.json" ":"
-                                        icd "/intel_icd.i686.json"))))
+                        `("VK_ICD_FILENAMES" ":" =
+                          (,(string-append icd
+                                           "/radeon_icd.i686.json" ":"
+                                           icd "/intel_icd.i686.json"))))
                       #t)))))
              (_
-              `())
-             )
+              `()))
          (add-after 'configure 'patch-dlopen-paths
            ;; Hardcode dlopened sonames to absolute paths.
            (lambda _
@@ -227,34 +228,35 @@ integrate Windows applications into your desktop.")
          ;; when installing to x86_64-linux so both are available.
          ;; TODO: Add more JSON files as they become available in Mesa.
          ,@(match (%current-system)
-           ((or "x86_64-linux")
-             `((add-after 'copy-wine32-binaries 'wrap-executable
-               (lambda* (#:key inputs outputs #:allow-other-keys)
-                 (let* ((out (assoc-ref outputs "out")))
-                   (wrap-program (string-append out "/bin/wine-preloader")
-                                 `("VK_ICD_FILENAMES" ":" =
-                                   (,(string-append (assoc-ref inputs "mesa")
-                                     "/share/vulkan/icd.d/radeon_icd.x86_64.json" ":"
-                                     (assoc-ref inputs "mesa")
-                                     "/share/vulkan/icd.d/intel_icd.x86_64.json" ":"
-                                     (assoc-ref inputs "wine")
-                                     "/share/vulkan/icd.d/radeon_icd.i686.json" ":"
-                                     (assoc-ref inputs "wine")
-                                     "/share/vulkan/icd.d/intel_icd.i686.json"))))
-                   (wrap-program (string-append out "/bin/wine64-preloader")
-                                 `("VK_ICD_FILENAMES" ":" =
-                                   (,(string-append (assoc-ref inputs "mesa")
-                                     "/share/vulkan/icd.d/radeon_icd.x86_64.json"
-                                     ":" (assoc-ref inputs "mesa")
-                                     "/share/vulkan/icd.d/intel_icd.x86_64.json"
-                                     ":" (assoc-ref inputs "wine")
-                                     "/share/vulkan/icd.d/radeon_icd.i686.json"
-                                     ":" (assoc-ref inputs "wine")
-                                     "/share/vulkan/icd.d/intel_icd.i686.json"))))
-                   #t)))))
-           (_
-            `())
-           )
+             ((or "x86_64-linux")
+              `((add-after 'copy-wine32-binaries 'wrap-executable
+                  (lambda* (#:key inputs outputs #:allow-other-keys)
+                    (let* ((out (assoc-ref outputs "out")))
+                      (wrap-program (string-append out "/bin/wine-preloader")
+                        `("VK_ICD_FILENAMES" ":" =
+                          (,(string-append
+                             (assoc-ref inputs "mesa")
+                             "/share/vulkan/icd.d/radeon_icd.x86_64.json" ":"
+                             (assoc-ref inputs "mesa")
+                             "/share/vulkan/icd.d/intel_icd.x86_64.json" ":"
+                             (assoc-ref inputs "wine")
+                             "/share/vulkan/icd.d/radeon_icd.i686.json" ":"
+                             (assoc-ref inputs "wine")
+                             "/share/vulkan/icd.d/intel_icd.i686.json"))))
+                      (wrap-program (string-append out "/bin/wine64-preloader")
+                        `("VK_ICD_FILENAMES" ":" =
+                          (,(string-append
+                             (assoc-ref inputs "mesa")
+                             "/share/vulkan/icd.d/radeon_icd.x86_64.json"
+                             ":" (assoc-ref inputs "mesa")
+                             "/share/vulkan/icd.d/intel_icd.x86_64.json"
+                             ":" (assoc-ref inputs "wine")
+                             "/share/vulkan/icd.d/radeon_icd.i686.json"
+                             ":" (assoc-ref inputs "wine")
+                             "/share/vulkan/icd.d/intel_icd.i686.json"))))
+                      #t)))))
+             (_
+              `()))
          (add-after 'install 'copy-wine32-binaries
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((wine32 (assoc-ref %build-inputs "wine"))
@@ -267,6 +269,13 @@ integrate Windows applications into your desktop.")
                (copy-file (string-append wine32 "/bin/.wine-preloader-real")
                           (string-append out "/bin/wine-preloader"))
                #t)))
+         (add-after 'install 'copy-wine32-libraries
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((wine32 (assoc-ref %build-inputs "wine"))
+                    (out (assoc-ref %outputs "out")))
+               (copy-recursively (string-append wine32 "/lib/wine32")
+                                 (string-append out "/lib/wine32"))
+               #t)))
          (add-after 'compress-documentation 'copy-wine32-manpage
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((wine32 (assoc-ref %build-inputs "wine"))
diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm
index 2ffba9e5a2..084822f2c7 100644
--- a/gnu/packages/wm.scm
+++ b/gnu/packages/wm.scm
@@ -5,7 +5,7 @@
 ;;; Copyright © 2015 xd1le <elisp.vim@gmail.com>
 ;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
 ;;; Copyright © 2016 Danny Milosavljevic <dannym@scratchpost.org>
-;;; Copyright © 2016, 2019 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016 Al McElrath <hello@yrns.org>
 ;;; Copyright © 2016 Carlo Zancanaro <carlo@zancanaro.id.au>
 ;;; Copyright © 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
@@ -13,9 +13,9 @@
 ;;; Copyright © 2016 doncatnip <gnopap@gmail.com>
 ;;; Copyright © 2016 Ivan Vilata i Balaguer <ivan@selidor.net>
 ;;; Copyright © 2017 Mekeor Melire <mekeor.melire@gmail.com>
-;;; Copyright © 2017, 2019 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2017, 2019, 2020 Marius Bakke <marius@gnu.org>
 ;;; Copyright © 2017, 2020 Oleg Pykhalov <go.wigust@gmail.com>
-;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Pierre-Antoine Rouby <contact@parouby.fr>
 ;;; Copyright © 2018, 2019 Meiyo Peng <meiyo@riseup.net>
 ;;; Copyright © 2019 Rutger Helling <rhelling@mykolab.com>
@@ -35,6 +35,12 @@
 ;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
 ;;; Copyright © 2020 Boris A. Dekshteyn <harlequin78@gmail.com>
 ;;; Copyright © 2020 Marcin Karpezo <sirmacik@wioo.waw.pl>
+;;; Copyright © 2020 EuAndreh <eu@euandre.org>
+;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
+;;; Copyright © 2020 Guillaume Le Vaillant <glv@posteo.net>
+;;; Copyright © 2020 B. Wilson <elaexuotee@wilsonb.com>
+;; Copyright © 2020 Niklas Eklund <niklas.eklund@posteo.net>
+;;; Copyright © 2020 Robert Smith <robertsmith@posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -70,6 +76,7 @@
   #: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 calendar)
   #:use-module (gnu packages docbook)
   #:use-module (gnu packages documentation)
@@ -117,7 +124,7 @@
 (define-public bspwm
   (package
     (name "bspwm")
-    (version "0.9.9")
+    (version "0.9.10")
     (source
      (origin
        (method git-fetch)
@@ -126,7 +133,7 @@
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1i7crmljk1vra1r6alxvj6lqqailjjcv0llyg7a0gm23rbv4a42g"))))
+        (base32 "0qlv7b4c2mmjfd65y100d11x8iqyg5f6lfiws3cgmpjidhdygnxc"))))
     (build-system gnu-build-system)
     (inputs
      `(("libxcb" ,libxcb)
@@ -271,14 +278,14 @@ commands would.")
 (define-public i3-wm
   (package
     (name "i3-wm")
-    (version "4.18.2")
+    (version "4.18.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://i3wm.org/downloads/i3-"
                                   version ".tar.bz2"))
               (sha256
                (base32
-                "030jym6b8b07yf4y6pb806hg8k77zsprv569gy0r72rh5zb1g1mj"))))
+                "03dijnwv2n8ak9jq59fhq0rc80m5wjc9d54fslqaivnnz81pkbjk"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags
@@ -341,7 +348,7 @@ many programming languages.")
 (define-public i3-gaps
   (package (inherit i3-wm)
            (name "i3-gaps")
-           (version "4.18.2")
+           (version "4.18.3")
            (source (origin
                      (method url-fetch)
                      (uri (string-append
@@ -349,7 +356,7 @@ many programming languages.")
                            version "/i3-" version ".tar.bz2"))
                      (sha256
                       (base32
-                       "0lz08wf4b0yprzqsmymn94kiyg885dcwmh0p64v2rnf52s165g2g"))))
+                       "1hcakwyz78lgp8mhqv7pw86jlb3m415pfql1q19rkijnhm3fn3ci"))))
            (home-page "https://github.com/Airblader/i3")
            (synopsis "Tiling window manager with gaps")
            (description "i3-gaps is a fork of i3wm, a tiling window manager
@@ -609,7 +616,7 @@ Features include:
                                         "/bin/gawk")))
 
                (substitute* "lock"
-                 (("$(which wmctrl)") wmctrl)
+                 (("\\$\\(command -V wmctrl\\)") wmctrl)
                  (("convert") mconvert)
                  (("shot=\\(import") (string-append "shot=\(" mimport))
                  (("awk -F") (string-append awk " -F"))
@@ -628,7 +635,7 @@ Features include:
                             (string-append bin "/i3lock-fancy"))
                (copy-recursively "icons" icons)
                #t))))))
-    (native-inputs
+    (inputs
      `(("imagemagick" ,imagemagick)
        ("wmctrl" ,wmctrl)
        ("gawk" ,gawk)))
@@ -654,7 +661,8 @@ desktop environment.")
                                   "xmonad-" version ".tar.gz"))
               (sha256
                (base32
-                "0a7rh21k9y6g8fwkggxdxjns2grvvsd5hi2ls4klmqz5xvk4hyaa"))))
+                "0a7rh21k9y6g8fwkggxdxjns2grvvsd5hi2ls4klmqz5xvk4hyaa"))
+              (patches (search-patches "xmonad-dynamic-linking.patch"))))
     (build-system haskell-build-system)
     (inputs
      `(("ghc-extensible-exceptions" ,ghc-extensible-exceptions)
@@ -743,6 +751,29 @@ is also usable with any other window manager.  While xmobar is written in
 Haskell, no knowledge of the language is required to install and use it.")
     (license license:bsd-3)))
 
+(define-public yeganesh
+  (package
+    (name "yeganesh")
+    (version "2.4")
+    (source
+     (origin
+
+       (method url-fetch)
+       (uri (string-append "http://dmwit.com/yeganesh/yeganesh-" version ".tar.gz"))
+       (sha256
+        (base32 "04djfyjab3c5y9z9x8zd0xcx0jyy35zq7cl9ddr4ppf6k5ky6iky"))))
+    (build-system haskell-build-system)
+    (inputs
+     `(("ghc-strict" ,ghc-strict)
+       ("ghc-xdg-basedir" ,ghc-xdg-basedir)))
+    (home-page "http://dmwit.com/yeganesh/")
+    (synopsis "Small wrapper around dmenu")
+    (description "@code{yeganesh} is a small wrapper around demnu.  Like
+dmenu, it accepts input on stdin and writes the chosen result on stdout.
+Unlike dmenu, it mangles the input before it presents its choices.  In
+particular, it displays commonly-chosen options before uncommon ones.")
+    (license license:bsd-3)))
+
 (define-public ghc-xmonad-contrib
   (package
     (name "ghc-xmonad-contrib")
@@ -948,6 +979,9 @@ experience.")
        (modify-phases %standard-phases
          (add-before 'configure 'set-paths
            (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "lib/awful/completion.lua"
+               (("/usr/bin/env")
+                ""))
              ;; The build process needs to load Cairo dynamically.
              (let* ((cairo (string-append (assoc-ref inputs "cairo") "/lib"))
                     (lua-version ,(version-major+minor (package-version lua)))
@@ -996,9 +1030,9 @@ experience.")
                     (lua-version ,(version-major+minor (package-version lua)))
                     (lua-lgi (assoc-ref inputs "lua-lgi")))
                (wrap-program (string-append awesome "/bin/awesome")
-                 `("LUA_PATH" suffix
+                 `("LUA_PATH" ";" suffix
                    (,(format #f "~a/share/lua/~a/?.lua" lua-lgi lua-version)))
-                 `("LUA_CPATH" suffix
+                 `("LUA_CPATH" ";" suffix
                    (,(format #f "~a/lib/lua/~a/?.so" lua-lgi lua-version)))
                  `("GI_TYPELIB_PATH" ":" prefix (,(getenv "GI_TYPELIB_PATH")))
                  `("LD_LIBRARY_PATH" suffix (,cairo)))
@@ -1176,18 +1210,17 @@ It is inspired by Xmonad and dwm.  Its major features include:
 (define-public cwm
   (package
     (name "cwm")
-    (version "6.6")
+    (version "6.7")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://leahneukirchen.org/releases/cwm-"
                            version ".tar.gz"))
        (sha256
-        (base32
-         "0p350pbfn92m21jiq4i324sdskxhs71p435g0mgz7cmzprnhhg92"))))
+        (base32 "022zld29qawd8gl700g4m24qa89il3aks397zkhh66wvzssdblzx"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:make-flags (list "CC=gcc"
+     `(#:make-flags (list (string-append "CC=" ,(cc-for-target))
                           (string-append "PREFIX=" %output))
        #:tests? #f
        #:phases
@@ -1268,14 +1301,14 @@ its size
 (define-public polybar
   (package
     (name "polybar")
-    (version "3.4.3")
+    (version "3.5.4")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://github.com/polybar/polybar/releases/"
-                           "download/" version "/polybar-" version ".tar"))
+                           "download/" version "/polybar-" version ".tar.gz"))
        (sha256
-        (base32 "0bw22qvbcdvyd0qv3ax48r34rnclbbb6dyb8h8zljq1r3lf15vfl"))))
+        (base32 "0awwjp3l0y9yhmrl914710ipawp2xr43jxrvmnanahlznblg8fhk"))))
     (build-system cmake-build-system)
     (arguments
      ;; Test is disabled because it requires downloading googletest from the
@@ -1313,7 +1346,7 @@ functionality to display information about the most commonly used services.")
 (define-public wlroots
   (package
     (name "wlroots")
-    (version "0.10.1")
+    (version "0.12.0")
     (source
      (origin
        (method git-fetch)
@@ -1322,32 +1355,35 @@ functionality to display information about the most commonly used services.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0j2lh9vc92zhn44rjbia5aw3y1rpgfng1x1h17lcvj5m4i6vj0pc"))))
+        (base32 "01j38lmgs2c6fq68v8b75pkilia2wsgzgp46ivfbi9hhx47kgcfn"))))
     (build-system meson-build-system)
     (arguments
      `(#:configure-flags '("-Dlogind-provider=elogind")
+       #:meson ,meson-0.55
        #:phases
        (modify-phases %standard-phases
          (add-before 'configure 'hardcode-paths
            (lambda* (#:key inputs #:allow-other-keys)
-             (substitute* "xwayland/xwayland.c"
+             (substitute* "xwayland/server.c"
                (("Xwayland") (string-append (assoc-ref inputs
                                                        "xorg-server-xwayland")
                                             "/bin/Xwayland")))
              #t)))))
-    (inputs `(("elogind" ,elogind)
-              ("eudev" ,eudev)
-              ("libinput" ,libinput)
-              ("libxkbcommon" ,libxkbcommon)
-              ("mesa" ,mesa)
-              ("pixman" ,pixman)
-              ("wayland" ,wayland)
-              ("xorg-server-xwayland" ,xorg-server-xwayland)))
-    (native-inputs `(("ffmpeg" ,ffmpeg)
-                     ("libcap" ,libcap)
-                     ("libpng" ,libpng)
-                     ("pkg-config" ,pkg-config)
-                     ("wayland-protocols" ,wayland-protocols)))
+    (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)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
     (home-page "https://github.com/swaywm/wlroots")
     (synopsis "Pluggable, composable, unopinionated modules for building a
 Wayland compositor")
@@ -1358,7 +1394,7 @@ modules for building a Wayland compositor.")
 (define-public sway
   (package
     (name "sway")
-    (version "1.4")
+    (version "1.5.1")
     (source
      (origin
        (method git-fetch)
@@ -1367,7 +1403,7 @@ modules for building a Wayland compositor.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "11qf89y3q92g696a6f4d23qb44gqixg6qxq740vwv2jw59ms34ja"))))
+        (base32 "1xsa3h8zhf29p0mi90baxpr76jkd9pd1gr97ky8cnjbcs4isj9j0"))))
     (build-system meson-build-system)
     (arguments
      `(#:phases
@@ -1396,21 +1432,21 @@ modules for building a Wayland compositor.")
               ("swaybg" ,swaybg)
               ("wayland" ,wayland)
               ("wlroots" ,wlroots)))
-    (native-inputs `(("libcap" ,libcap)
-                     ("linux-pam" ,linux-pam)
-                     ("mesa" ,mesa)
-                     ("pkg-config" ,pkg-config)
-                     ("scdoc" ,scdoc)
-                     ("wayland-protocols" ,wayland-protocols)))
+    (native-inputs
+     `(("linux-pam" ,linux-pam)
+       ("mesa" ,mesa)
+       ("pkg-config" ,pkg-config)
+       ("scdoc" ,scdoc)
+       ("wayland-protocols" ,wayland-protocols)))
     (home-page "https://github.com/swaywm/sway")
     (synopsis "Wayland compositor compatible with i3")
     (description "Sway is a i3-compatible Wayland compositor.")
-    (license license:expat)))       ; MIT license
+    (license license:expat)))
 
 (define-public swayidle
   (package
     (name "swayidle")
-    (version "1.5")
+    (version "1.6")
     (source
      (origin
        (method git-fetch)
@@ -1419,7 +1455,7 @@ modules for building a Wayland compositor.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "05qi96j58xqxjiighay1d39rfanxcpn6vlynj23mb5dymxvlaq9n"))))
+        (base32 "1nd3v8r9549lykdwh4krldfl59lzaspmmai5k1icy7dvi6kkr18r"))))
     (build-system meson-build-system)
     (arguments
      `(#:configure-flags '("-Dlogind-provider=elogind")))
@@ -1436,7 +1472,7 @@ modules for building a Wayland compositor.")
 (define-public swaylock
   (package
     (name "swaylock")
-    (version "1.4")
+    (version "1.5")
     (source
      (origin
        (method git-fetch)
@@ -1445,7 +1481,7 @@ modules for building a Wayland compositor.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1ii9ql1mxkk2z69dv6bg1x22nl3a46iww764wqjiv78x08xpk982"))))
+        (base32 "0r95p4w11dwm5ra614vddz83r8j7z6gd120z2vcchy7m9b0f15kf"))))
     (build-system meson-build-system)
     (inputs `(("cairo" ,cairo)
               ("gdk-pixbuf" ,gdk-pixbuf)
@@ -1489,7 +1525,7 @@ modules for building a Wayland compositor.")
 (define-public waybar
   (package
     (name "waybar")
-    (version "0.9.3")
+    (version "0.9.4")
     (source
      (origin
        (method git-fetch)
@@ -1498,13 +1534,10 @@ modules for building a Wayland compositor.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0ks719khhg2zwpyiwa2079i6962qcxpapm28hmr4ckpsp2n659ck"))))
+        (base32 "038vnma7y7z81caywp45yr364bc1aq8d01j5vycyiyfv33nm76fy"))))
     (build-system meson-build-system)
-    (arguments
-     `(#:configure-flags
-       (list (string-append "-Dout=" (assoc-ref %outputs "out")))))
     (inputs `(("date" ,date)
-              ("fmt" ,fmt)
+              ("fmt" ,fmt-6)
               ("gtk-layer-shell" ,gtk-layer-shell)
               ("gtkmm" ,gtkmm)
               ("jsoncpp" ,jsoncpp)
@@ -1513,12 +1546,13 @@ modules for building a Wayland compositor.")
               ("libmpdclent" ,libmpdclient)
               ("libnl" ,libnl)
               ("pulseaudio" ,pulseaudio)
-              ("spdlog" ,spdlog)
+              ("spdlog" ,spdlog-1.7)
               ("wayland" ,wayland)))
     (native-inputs
      `(("gcc" ,gcc-8)                   ; for #include <filesystem>
        ("glib:bin" ,glib "bin")
        ("pkg-config" ,pkg-config)
+       ("scdoc" ,scdoc)
        ("wayland-protocols" ,wayland-protocols)))
     (home-page "https://github.com/Alexays/Waybar")
     (synopsis "Wayland bar for Sway and Wlroots based compositors")
@@ -1526,10 +1560,31 @@ modules for building a Wayland compositor.")
 Wlroots based compositors.")
     (license license:expat))) ; MIT license
 
+(define-public wlr-randr
+  (package
+    (name "wlr-randr")
+    (version "0.1.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/emersion/wlr-randr")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "10c8zzp78s5bw34vvjhilipa28bsdx3jbyhnxgp8f8kawh3cvgsc"))))
+    (build-system meson-build-system)
+    (inputs `(("wayland" ,wayland)))
+    (native-inputs `(("pkg-config" ,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.")
+    (license license:expat))) ; MIT license
+
 (define-public mako
   (package
     (name "mako")
-    (version "1.4")
+    (version "1.4.1")
     (source
      (origin
        (method git-fetch)
@@ -1538,7 +1593,7 @@ Wlroots based compositors.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "11ymiq6cr2ma0iva1mqybn3j6k73bsc6lv6pcbdq7hkhd4f9b7j9"))))
+        (base32 "0hwvibpnrximb628w9dsfjpi30b5jy7nfkm4d94z5vhp78p43vxh"))))
     (build-system meson-build-system)
     (inputs `(("cairo" ,cairo)
               ("elogind" ,elogind)
@@ -1554,10 +1609,34 @@ Wlroots based compositors.")
 compositors that support the layer-shell protocol.")
     (license license:expat))) ; MIT license
 
+(define-public kanshi
+  (package
+    (name "kanshi")
+    (version "1.1.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/emersion/kanshi")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0nbpgm8qnn7ljsg9vgs35kl8l4rrk542vdcbx8wrn9r909ld3x92"))))
+    (build-system meson-build-system)
+    (inputs `(("wayland" ,wayland)))
+    (native-inputs `(("pkg-config" ,pkg-config)
+                     ("scdoc" ,scdoc)))
+    (home-page "https://wayland.emersion.fr/kanshi")
+    (synopsis "Hotswappable output profiles for Wayland")
+    (description "Kanshi allows you to define output profiles that are
+automatically enabled and disabled on hotplug.  Kanshi can be used with
+Wayland compositors supporting the wlr-output-management protocol.")
+    (license license:expat))) ; MIT license
+
 (define-public stumpwm
   (package
     (name "stumpwm")
-    (version "19.11")
+    (version "20.11")
     (source
      (origin
        (method git-fetch)
@@ -1566,19 +1645,23 @@ compositors that support the layer-shell protocol.")
              (commit version)))
        (file-name (git-file-name "stumpwm" version))
        (sha256
-        (base32 "1ha8803ll7472kqxsy2xz0v5d4sv8apmc9z631d67m31q0z1m9rz"))))
+        (base32 "1ghs6ihvmb3bz4q4ys1d3h6rdi96xyiw7l2ip7jh54c25049aymf"))))
     (build-system asdf-build-system/sbcl)
     (native-inputs `(("fiasco" ,sbcl-fiasco)
-                     ("texinfo" ,texinfo)))
+                     ("texinfo" ,texinfo)
+
+                     ;; To build the manual.
+                     ("autoconf" ,autoconf)
+                     ("automake" ,automake)))
     (inputs `(("cl-ppcre" ,sbcl-cl-ppcre)
               ("clx" ,sbcl-clx)
               ("alexandria" ,sbcl-alexandria)))
     (outputs '("out" "lib"))
     (arguments
-     '(#:asd-system-name "stumpwm"
+     '(#:asd-systems '("stumpwm")
        #:phases
        (modify-phases %standard-phases
-         (add-after 'create-symlinks 'build-program
+         (add-after 'create-asdf-configuration 'build-program
            (lambda* (#:key outputs #:allow-other-keys)
              (build-program
               (string-append (assoc-ref outputs "out") "/bin/stumpwm")
@@ -1603,13 +1686,12 @@ compositors that support the layer-shell protocol.")
                     out)))
                #t)))
          (add-after 'install 'install-manual
-           (lambda* (#:key outputs #:allow-other-keys)
-             ;; The proper way to the manual is bootstrapping a full autotools
-             ;; build system and running ‘./configure && make stumpwm.info’ to
-             ;; do some macro substitution.  We can get away with much less.
+           (lambda* (#:key (make-flags '()) outputs #:allow-other-keys)
              (let* ((out  (assoc-ref outputs "out"))
                     (info (string-append out "/share/info")))
-               (invoke "makeinfo" "stumpwm.texi.in")
+               (invoke "./autogen.sh")
+               (invoke "sh" "./configure" "SHELL=sh")
+               (apply invoke "make" "stumpwm.info" make-flags)
                (install-file "stumpwm.info" info)
                #t))))))
     (synopsis "Window manager written in Common Lisp")
@@ -1645,22 +1727,18 @@ productive, customizable lisp based systems.")
              (lambda* (#:key inputs outputs #:allow-other-keys)
                (let* ((out (assoc-ref outputs "out"))
                       (program (string-append out "/bin/stumpwm")))
+                 (setenv "HOME" "/tmp")
                  (build-program program outputs
                                 #:entry-program '((stumpwm:stumpwm) 0)
-                                #:dependencies '("stumpwm"
-                                                 ,@(@@ (gnu packages lisp-xyz) slynk-systems))
+                                #:dependencies '("stumpwm" "slynk")
                                 #:dependency-prefixes
                                 (map (lambda (input) (assoc-ref inputs input))
                                      '("stumpwm" "slynk")))
-                 ;; Remove unneeded file.
-                 (delete-file (string-append out "/bin/stumpwm-exec.fasl"))
                  #t)))
            (delete 'copy-source)
            (delete 'build)
            (delete 'check)
-           (delete 'create-asd-file)
-           (delete 'cleanup)
-           (delete 'create-symlinks)))))))
+           (delete 'cleanup)))))))
 
 (define stumpwm-contrib
   (let ((commit "920f8fc1488f7953f205e1dda4c2ecbbbda56d63")
@@ -1691,7 +1769,8 @@ productive, customizable lisp based systems.")
     (name "stumpish")
     (inputs
      `(("bash" ,bash)
-       ("rlwrap" ,rlwrap)))
+       ("rlwrap" ,rlwrap)
+       ("xprop" ,xprop)))
     (build-system trivial-build-system)
     (arguments
      '(#:modules ((guix build utils))
@@ -1703,6 +1782,8 @@ productive, customizable lisp based systems.")
          (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")))
          (install-file "stumpish" (string-append %output "/bin")))))
@@ -1722,7 +1803,7 @@ productive, customizable lisp based systems.")
      `(("stumpwm" ,stumpwm "lib")
        ("clx-truetype" ,sbcl-clx-truetype)))
     (arguments
-     '(#:asd-system-name "ttf-fonts"
+     '(#:asd-systems '("ttf-fonts")
        #:tests? #f
        #:phases
        (modify-phases %standard-phases
@@ -1739,7 +1820,7 @@ rendering.")
     (inherit stumpwm-contrib)
     (name "sbcl-stumpwm-pass")
     (arguments
-     '(#:asd-system-name "pass"
+     '(#:asd-systems '("pass")
        #:tests? #f
        #:phases
        (modify-phases %standard-phases
@@ -1756,7 +1837,7 @@ password-store into StumpWM.")
     (inherit stumpwm-contrib)
     (name "sbcl-stumpwm-globalwindows")
     (arguments
-     '(#:asd-system-name "globalwindows"
+     '(#:asd-systems '("globalwindows")
        #:tests? #f
        #:phases
        (modify-phases %standard-phases
@@ -1773,7 +1854,7 @@ windows in the current X session.")
     (inherit stumpwm-contrib)
     (name "sbcl-stumpwm-swm-gaps")
     (arguments
-     '(#:asd-system-name "swm-gaps"
+     '(#:asd-systems '("swm-gaps")
        #:tests? #f
        #:phases
        (modify-phases %standard-phases
@@ -1790,7 +1871,7 @@ between windows.")
     (inherit stumpwm-contrib)
     (name "sbcl-stumpwm-net")
     (arguments
-     '(#:asd-system-name "net"
+     '(#:asd-systems '("net")
        #:tests? #f
        #:phases
        (modify-phases %standard-phases
@@ -1808,7 +1889,7 @@ between windows.")
     (inherit stumpwm-contrib)
     (name "sbcl-stumpwm-wifi")
     (arguments
-     '(#:asd-system-name "wifi"
+     '(#:asd-systems '("wifi")
        #:tests? #f
        #:phases
        (modify-phases %standard-phases
@@ -1826,7 +1907,7 @@ between windows.")
     (inherit stumpwm-contrib)
     (name "sbcl-stumpwm-stumptray")
     (arguments
-     '(#:asd-system-name "stumptray"
+     '(#:asd-systems '("stumptray")
        #:tests? #f
        #:phases
        (modify-phases %standard-phases
@@ -1848,7 +1929,7 @@ between windows.")
     (inherit stumpwm-contrib)
     (name "sbcl-stumpwm-kbd-layouts")
     (arguments
-     '(#:asd-system-name "kbd-layouts"
+     '(#:asd-systems '("kbd-layouts")
        #:tests? #f
        #:phases
        (modify-phases %standard-phases
@@ -1859,6 +1940,107 @@ between windows.")
     (description "Keyboard layout switcher for StumpWM")
     (license license:gpl3+)))
 
+(define-public sbcl-stumpwm-numpad-layouts
+  (package
+    (inherit stumpwm-contrib)
+    (name "sbcl-stumpwm-numpad-layouts")
+    (arguments
+     '(#:asd-systems '("numpad-layouts")
+       #:tests? #f
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'chdir
+           (lambda _
+             (chdir "util/numpad-layouts"))))))
+    (home-page
+     "https://github.com/stumpwm/stumpwm-contrib/tree/master/util/numpad-layouts")
+    (synopsis "Keyboard numpad layouts for StumpWM")
+    (description "This is a module for handling different keyboards numpad
+layouts in StumpWM.")
+    (license license:gpl3+)))
+
+(define-public sbcl-stumpwm-cpu
+  (package
+    (inherit stumpwm-contrib)
+    (name "sbcl-stumpwm-cpu")
+    (arguments
+     '(#:asd-systems '("cpu")
+       #:tests? #f
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'chdir
+           (lambda _
+             (chdir "modeline/cpu"))))))
+    (home-page
+     "https://github.com/stumpwm/stumpwm-contrib/tree/master/modeline/cpu")
+    (synopsis "Modeline support for CPU info")
+    (description "Modeline support for CPU info.")
+    (license license:gpl3+)))
+
+(define-public sbcl-stumpwm-mem
+  (package
+    (inherit stumpwm-contrib)
+    (name "sbcl-stumpwm-mem")
+    (arguments
+     '(#:asd-systems '("mem")
+       #:tests? #f
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'chdir
+           (lambda _
+             (chdir "modeline/mem"))))))
+    (home-page
+     "https://github.com/stumpwm/stumpwm-contrib/tree/master/modeline/mem")
+    (synopsis "Modeline support for memory info")
+    (description "Modeline support for memory info.")
+    (license license:gpl3+)))
+
+(define-public sbcl-stumpwm-winner-mode
+  (package
+    (inherit stumpwm-contrib)
+    (name "sbcl-stumpwm-winner-mode")
+    (arguments
+     '(#:asd-systems '("winner-mode")
+       #:tests? #f
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'chdir
+           (lambda _
+             (chdir "util/winner-mode"))))))
+    (home-page
+     "https://github.com/stumpwm/stumpwm-contrib/tree/master/util/winner-mode")
+    (synopsis "Emacs' winner-mode for StumpWM")
+    (description "This module provides a winner-mode for StumpWM similar to the
+one in Emacs.")
+    (license license:gpl3+)))
+
+(define-public sbcl-stumpwm-screenshot
+  (package
+    (inherit stumpwm-contrib)
+    (name "sbcl-stumpwm-screenshot")
+    (inputs
+     `(("stumpwm" ,stumpwm "lib")
+       ("zpng" ,sbcl-zpng)))
+    (arguments
+     '(#:asd-systems '("screenshot")
+       #:tests? #f
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'chdir
+           (lambda _
+             (chdir "util/screenshot")))
+         (add-after 'chdir 'fix-build
+           (lambda _
+             (substitute* "screenshot.asd"
+               (("#:zpng")
+                "#:stumpwm #:zpng")))))))
+    (home-page
+     "https://github.com/stumpwm/stumpwm-contrib/tree/master/util/screenshot")
+    (synopsis "Screenshots for StumpWM")
+    (description "This StumpWM module can take screenshots and store them as
+PNG files.")
+    (license license:gpl3+)))
+
 (define-public lemonbar
   (let ((commit "35183ab81d2128dbb7b6d8e119cc57846bcefdb4")
         (revision "1"))
@@ -1896,42 +2078,86 @@ formatting, RandR and Xinerama support and EWMH compliance without
 wasting your precious memory.")
       (license license:x11))))
 
-(define-public xclickroot
-  (let ((commit "309fd17174dba4149b5ea66654c6fd02cfcf7c9a")
-        (revision "1"))
+(define-public lemonbar-xft
+  ;; Upstream v2.0 tag is several years behind HEAD
+  (let ((commit "481e12363e2a0fe0ddd2176a8e003392be90ed02"))
     (package
-      (name "xclickroot")
-      (version (git-version "0.0.1" revision commit)) ;no upstream release
+      (inherit lemonbar)
+      (name "lemonbar-xft")
+      (version (string-append "2.0." (string-take commit 7)))
       (source (origin
                 (method git-fetch)
                 (uri (git-reference
-                      (url "https://github.com/phillbush/xclickroot")
+                      (url "https://github.com/drscream/lemonbar-xft")
                       (commit commit)))
                 (file-name (git-file-name name version))
                 (sha256
                  (base32
-                  "0fjqkg3wnyks0my1vrzhxfjicsfy8xwnijaazmpz6mhilcqkpvnd"))))
-      (build-system gnu-build-system)
+                  "0588g37h18lv50h7w8vfbwhvc3iajh7sdr53848spaif99nh3mh4"))))
       (inputs
-       `(("libx11" ,libx11)))
+       `(("freetype" ,freetype)
+         ("libxft" ,libxft)
+         ("libx11" ,libx11)
+         ,@(package-inputs lemonbar)))
       (arguments
-       `(#:tests? #f ;no test suite
-         #:make-flags
-         (list ,(string-append "CC=" (cc-for-target))
-               (string-append "PREFIX=" %output))
-         #:phases
-         (modify-phases %standard-phases
-           (delete 'configure))))
-      (home-page "https://github.com/phillbush/xclickroot")
-      (synopsis "Run a command when a mouse button is pressed on the root window")
-      (description "@code{xclickroot} runs a command every time a given mouse
+       (substitute-keyword-arguments (package-arguments lemonbar)
+         ((#:make-flags make-flags)
+          `(append
+            ,make-flags
+            (list (string-append
+                   "CFLAGS="
+                   (string-join
+                    (list (string-append
+                           "-I" (assoc-ref %build-inputs "freetype")
+                           "/include/freetype2")
+                          (string-append
+                           "-D" "VERSION="
+                           (format #f "'~s'" ,version))))))))))
+      (home-page "https://github.com/drscream/lemonbar-xft")
+      (synopsis
+       (string-append
+        (package-synopsis lemonbar)
+        " with fontconfig support"))
+      (description
+       (string-append
+        (package-description lemonbar)
+        "This is a fork of the @code{lemonbar} package that adds fontconfig
+support, for easier unicode usage.")))))
+
+(define-public xclickroot
+  (package
+    (name "xclickroot")
+    (version "1.2")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/phillbush/xclickroot")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1nd5qz0qz5j7gx2jsbcp234giwaa0xmg42vrcjrcf587q9ivakfl"))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("libx11" ,libx11)))
+    (arguments
+     `(#:tests? #f ;no test suite
+       #:make-flags
+       (list ,(string-append "CC=" (cc-for-target))
+             (string-append "PREFIX=" %output))
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure))))
+    (home-page "https://github.com/phillbush/xclickroot")
+    (synopsis "Run a command when a mouse button is pressed on the root window")
+    (description "@code{xclickroot} runs a command every time a given mouse
 button is pressed on the root window.")
-      (license license:public-domain))))
+    (license license:public-domain)))
 
 (define-public xmenu
   (package
     (name "xmenu")
-    (version "3.4")
+    (version "4.4.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -1940,10 +2166,11 @@ button is pressed on the root window.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1sw9l87fh03jp03a2v7rhgpyx29yg2x9blzfzp40jwad2whs7m7n"))))
+                "1s70zvsaqnsjqs298vw3py0vcvia68xlks1wcz37pb88bwligz1x"))))
     (build-system gnu-build-system)
     (inputs
      `(("libx11" ,libx11)
+       ("libxinerama" ,libxinerama)
        ("libxft" ,libxft)
        ("freetype" ,freetype)
        ("imlib2" ,imlib2)))
@@ -2016,3 +2243,68 @@ execute a shell command on a configurable action.  The icons can be moved on
 the desktop by dragging them, and the icons will remember their positions on
 start-up.")
     (license license:bsd-3)))
+
+(define-public xnotify
+  (package
+    (name "xnotify")
+    (version "0.7.3")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/phillbush/xnotify")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "09s29m8z4x3mc3wja2587ik3f6zg16b40adr3nllnpyy1mqnprq5"))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("libx11" ,libx11)
+       ("libxft" ,libxft)
+       ("libxinerama" ,libxinerama)
+       ("imlib2" ,imlib2)))
+    (arguments
+     `(#:make-flags
+       (list (string-append "CC=" ,(cc-for-target))
+             (string-append "PREFIX=" %output)
+             (string-append "CFLAGS="
+                            "-I" (assoc-ref %build-inputs "freetype")
+                            "/include/freetype2"))
+       #:tests? #f ;no test suite
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure))))
+    (home-page "https://github.com/phillbush/xnotify")
+    (synopsis "Displays a notification on the screen")
+    (description "XNotify receives a notification specification in stdin and
+shows a notification for the user on the screen.")
+    (license license:expat)))
+
+(define-public cagebreak
+  (package
+    (name "cagebreak")
+    (version "1.4.4")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/project-repo/cagebreak")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0mnxs1m7jrqdl0asx39nxfzvkp7d4jqpdchi63w2yd1igpj2frb2"))))
+    (build-system meson-build-system)
+    (arguments '(#:configure-flags '("-Dxwayland=true")))
+    (native-inputs
+     `(("pandoc" ,pandoc)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("pango" ,pango)
+       ("wlroots" ,wlroots)))
+    (home-page "https://github.com/project-repo/cagebreak")
+    (synopsis "Tiling wayland compositor inspired by ratpoison")
+    (description
+     "@command{cagebreak} is a slim, keyboard-controlled, tiling compositor
+for wayland conceptually based on the X11 window manager
+@command{ratpoison}.")
+    (license license:expat)))
diff --git a/gnu/packages/wv.scm b/gnu/packages/wv.scm
index 37881a4d0f..a8c0d3cbaf 100644
--- a/gnu/packages/wv.scm
+++ b/gnu/packages/wv.scm
@@ -1,7 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2014 Marek Benc <merkur32@gmail.com>
 ;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
-;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -33,14 +33,14 @@
 (define-public wv
   (package
     (name "wv")
-    (version "1.2.4")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://sourceforge/wvware/wv/" version
-                                  "/wv-" version ".tar.gz"))
-              (sha256
-               (base32
-                "1mn2ax6qjy3pvixlnvbkn6ymy6y4l2wxrr4brjaczm121s8hjcb7"))))
+    (version "1.2.9")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://abiword.org/downloads/wv/"
+                           version "/wv-" version ".tar.gz"))
+       (sha256
+        (base32 "17f16lkdv1c3amaz2hagiicih59ynpp4786k1m2qa1sw68xhswsc"))))
     (build-system gnu-build-system)
     (inputs
       `(("glib" ,glib)
@@ -57,7 +57,7 @@
 Word 9, 8, 7, and 6) to HTML or LaTeX.  Word 2 documents can still be converted
 to plain text but will lack formatting.
 
-Othe programs can use wv as a library to convert Word documents to other
+Other programs can use wv as a library to convert Word documents to other
 formats.  AbiWord uses it as its Word importer, and KWord uses concepts and
 code from wv in theirs.")
     (home-page "http://wvware.sourceforge.net/")
diff --git a/gnu/packages/wxwidgets.scm b/gnu/packages/wxwidgets.scm
index 7141b2f4b8..f3a7fdd7a4 100644
--- a/gnu/packages/wxwidgets.scm
+++ b/gnu/packages/wxwidgets.scm
@@ -37,6 +37,7 @@
   #:use-module (gnu packages databases)
   #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages gl)
+  #:use-module (gnu packages gnome)
   #:use-module (gnu packages gstreamer)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages image)
@@ -75,6 +76,7 @@
        ("mesa" ,mesa)
        ("webkitgtk" ,webkitgtk)
        ("sdl" ,sdl)
+       ("shared-mime-info" ,shared-mime-info)
        ("xdg-utils" ,xdg-utils)))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
@@ -97,11 +99,15 @@
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'refer-to-inputs
-           (lambda _
-             (substitute* "src/unix/utilsx11.cpp"
-               (("wxExecute\\(xdg_open \\+")
-                (string-append "wxExecute(\"" (which "xdg-open") "\"")))
-             #t)))))
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let* ((mime (string-append (assoc-ref inputs "shared-mime-info")
+                                         "/share/mime")))
+               (substitute* "src/unix/utilsx11.cpp"
+                 (("wxExecute\\(xdg_open \\+")
+                  (string-append "wxExecute(\"" (which "xdg-open") "\"")))
+               (substitute* "src/unix/mimetype.cpp"
+                 (("/usr(/local)?/share/mime") mime))
+               #t))))))
     (home-page "https://www.wxwidgets.org/")
     (synopsis "Widget toolkit for creating graphical user interfaces")
     (description
diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm
index 2c34b95d74..26660b8bfa 100644
--- a/gnu/packages/xdisorg.scm
+++ b/gnu/packages/xdisorg.scm
@@ -18,7 +18,7 @@
 ;;; Copyright © 2016 Petter <petter@mykolab.ch>
 ;;; Copyright © 2017 Mekeor Melire <mekeor.melire@gmail.com>
 ;;; Copyright © 2017 Nikita <nikita@n0.is>
-;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2017 Marek Benc <dusxmt@gmx.com>
 ;;; Copyright © 2017 Mike Gerwitz <mtg@gnu.org>
 ;;; Copyright © 2018 Thomas Sigurdsen <tonton@riseup.net>
@@ -39,6 +39,10 @@
 ;;; Copyright © 2020 Alex McGrath <amk@amk.ie>
 ;;; Copyright © 2020 Ivan Kozlov <kanichos@yandex.ru>
 ;;; Copyright © 2020 Brett Gilio <brettg@gnu.org>
+;;; Copyright © 2020 Gabriel Arazas <foo.dogsquared@gmail.com>
+;;; Copyright © 2020 James Smith <jsubuntuxp@disroot.org>
+;;; Copyright © 2020 B. Wilson <elaexuotee@wilsonb.com>
+;;; Copyright © 2020 Zheng Junjie <873216071@qq.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -103,10 +107,43 @@
   #:use-module (gnu packages xorg)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages bison)
+  #:use-module (gnu packages sphinx)
   #:use-module (ice-9 match))
 
 ;; packages outside the x.org system proper
 
+(define-public xtitle
+  (package
+    (name "xtitle")
+    (version "0.4.4")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/baskerville/xtitle")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0f5070k2bwarghl1vq886pl52xck1x5p7x3qhlfchsc2y3dcqms9"))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("libxcb" ,libxcb)
+       ("xcb-util" ,xcb-util)
+       ("xcb-util-wm" ,xcb-util-wm)))
+    (arguments
+     `(#:tests? #f                      ;no test suite
+       #:make-flags (list (string-append "CC=" ,(cc-for-target))
+                          (string-append "PREFIX=" %output))
+       #:phases (modify-phases %standard-phases (delete 'configure))))
+    (home-page "https://github.com/baskerville/xtitle")
+    (synopsis "Output X window titles")
+    (description
+     "If arguments are given, @code{xtitle} outputs the title of each
+specified window, otherwise it outputs the title of the active window.  With
+@emph{snoop} mode on, it continuously monitors the specified windows and
+outputs when titles change.")
+    (license license:unlicense)))
+
 (define-public arandr
   (package
     (name "arandr")
@@ -321,18 +358,19 @@ avoiding password prompts when X11 forwarding has already been setup.")
 (define-public libxkbcommon
   (package
     (name "libxkbcommon")
-    (version "0.10.0")
+    (version "1.0.1")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://xkbcommon.org/download/libxkbcommon-"
                                  version ".tar.xz"))
              (sha256
               (base32
-               "1wmnl0hngn6vrqrya4r8hvimlkr4jag39yjprls4gyrqvh667hsp"))))
+               "13bcdf2xpjxwbghas0cr448z89qqki2ssgfgswc257y9859v4s5b"))))
     (build-system meson-build-system)
     (inputs
      `(("libx11" ,libx11)
        ("libxcb" ,libxcb)
+       ("libxml2" ,libxml2)
        ("wayland" ,wayland)
        ("wayland-protocols" ,wayland-protocols)
        ("xkeyboard-config" ,xkeyboard-config)))
@@ -357,7 +395,8 @@ system applications; currently that includes Wayland, kmscon, GTK+, Qt,
 Clutter, and more.  Despite the name, it is not currently used by anything
 X11 (yet).")
     (license (license:x11-style "file://COPYING"
-                                "See 'COPYING' in the distribution."))))
+                                "See 'COPYING' in the distribution."))
+    (properties '((cpe-name . "xkbcommon")))))
 
 (define-public libfakekey
   (package
@@ -470,34 +509,37 @@ following the mouse.")
   (package
     (name "pixman")
     (version "0.38.4")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "https://www.cairographics.org/releases/pixman-"
-                    version ".tar.gz"))
-              (sha256
-               (base32
-                "1ryxzdf048x7wsx4dlvrr1p00gzwfs7lybnhgc7ygbj0dvyxcrns"))
-              (patches (search-patches "pixman-CVE-2016-5296.patch"))))
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append
+         "https://www.cairographics.org/releases/pixman-"
+         version ".tar.gz"))
+       (sha256
+        (base32 "1ryxzdf048x7wsx4dlvrr1p00gzwfs7lybnhgc7ygbj0dvyxcrns"))
+       (patches
+        (search-patches
+         "pixman-CVE-2016-5296.patch"))))
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags '("--disable-static")))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
     (inputs
      `(("libpng" ,libpng)
        ("zlib" ,zlib)))
-    (native-inputs
-     `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.pixman.org/")
     (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
 rasterisation.")
+    (home-page "http://www.pixman.org/")
     (license license:x11)))
 
 (define-public libdrm
   (package
     (name "libdrm")
-    (version "2.4.101")
+    (version "2.4.102")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -505,8 +547,7 @@ rasterisation.")
                     version ".tar.xz"))
               (sha256
                (base32
-                "19vqbhqljhln0lrpnv3s7y3lkhsdcp76dl8bhqj3cis9ism1pwyx"))
-              (patches (search-patches "libdrm-realpath-virtio.patch"))))
+                "0nx0bd9dhymdsd99v4ifib77yjirkvkxf5hzdkbr7qr8dhrzkjwb"))))
     (build-system meson-build-system)
     (arguments
      `(#:configure-flags
@@ -839,7 +880,7 @@ shows it again when the mouse cursor moves or a mouse button is pressed.")
 (define-public xlockmore
   (package
     (name "xlockmore")
-    (version "5.62")
+    (version "5.66")
     (source (origin
              (method url-fetch)
              (uri (list (string-append "http://sillycycle.com/xlock/"
@@ -850,7 +891,7 @@ shows it again when the mouse cursor moves or a mouse button is pressed.")
                                        "xlockmore-" version ".tar.xz")))
              (sha256
               (base32
-               "0b05wgj4mpssy4hd7km5c48i454dfg45p11mfmsr7xjd2gnz5gqi"))))
+               "0wdb7gpyjw3sigmhiplgg1bqxz6wipr0c3n9492x2a18cv1saxjr"))))
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags (list (string-append "--enable-appdefaultdir="
@@ -983,7 +1024,8 @@ compact configuration syntax.")
      ;; This sets the destination when installing the necessary terminal
      ;; capability data, which are not provided by 'ncurses'.  See
      ;; https://lists.gnu.org/archive/html/bug-ncurses/2009-10/msg00031.html
-     `(#:make-flags (list (string-append "TERMINFO="
+     `(#:configure-flags (list "--enable-256-color")
+       #:make-flags (list (string-append "TERMINFO="
                                          (assoc-ref %outputs "out")
                                          "/share/terminfo"))
        #:phases
@@ -1084,7 +1126,7 @@ Escape key when Left Control is pressed and released on its own.")
 (define-public libwacom
   (package
     (name "libwacom")
-    (version "1.4")
+    (version "1.7")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1092,12 +1134,14 @@ Escape key when Left Control is pressed and released on its own.")
                     "libwacom-" version "/libwacom-" version ".tar.bz2"))
               (sha256
                (base32
-                "1rk661cymmahak9rw0wcssnfszbngq74vp7zc2cwyg6yrjbif1lh"))))
+                "0797gc055dgg2jfqijy9823bd83jwr4wb2z9id992qlcr0xmz1rw"))))
     (build-system glib-or-gtk-build-system)
     (arguments
      `(#:configure-flags '("--disable-static")))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     `(("pkg-config" ,pkg-config)
+       ;; For tests.
+       ("python" ,python)))
     (inputs
      `(("gtk+" ,gtk+)
        ("libgudev" ,libgudev)
@@ -1453,7 +1497,7 @@ connectivity of the X server running on a particular @code{DISPLAY}.")
 (define-public rofi
   (package
     (name "rofi")
-    (version "1.5.4")
+    (version "1.6.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/DaveDavenport/rofi/"
@@ -1461,13 +1505,14 @@ connectivity of the X server running on a particular @code{DISPLAY}.")
                                   version "/rofi-" version ".tar.xz"))
               (sha256
                (base32
-                "1nslmyqyzhfr4hxd4llqkkkb8ap8apkdna32rllvar7r576059ci"))))
+                "12p9z8bl1gg8k024m4a6zfz7gf1zbyffardh98raqgabn6knwk22"))))
     (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)
@@ -2020,7 +2065,7 @@ temperature of the screen.")
          "--with-xkb"
          "--with-default-authproto-module=/run/setuid-programs/authproto_pam")))
     (native-inputs
-     `(("pandoc" ,ghc-pandoc)
+     `(("pandoc" ,pandoc)
        ("pkg-config" ,pkg-config)))
     (inputs
      `(("fontconfig" ,fontconfig)
@@ -2220,7 +2265,7 @@ Xwrits hides itself until you should take another break.")
 (define-public xsettingsd
   (package
     (name "xsettingsd")
-    (version "1.0.0")
+    (version "1.0.2")
     (source
      (origin
        (method git-fetch)
@@ -2229,8 +2274,7 @@ Xwrits hides itself until you should take another break.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32
-         "05m4jlw0mgwp24cvyklncpziq1prr2lg0cq9c055sh4n9d93d07v"))))
+        (base32 "14gnkz18dipsa2v24f4nm9syxaa7g21iqjm7y65jn849ka2jr1h8"))))
     (build-system scons-build-system)
     (inputs
      `(("libx11" ,libx11)))
@@ -2434,7 +2478,7 @@ After selection, the clip is put onto the PRIMARY and CLIPBOARD X selections.")
        ("glib" ,glib "bin")
        ("pkg-config" ,pkg-config)))
     (inputs
-     `(("dbus-glib", dbus-glib)
+     `(("dbus-glib" ,dbus-glib)
        ("glib" ,glib)
        ("libx11" ,libx11)))
     (home-page "https://github.com/qnikst/kbdd")
@@ -2453,7 +2497,7 @@ create layout indicator widgets.")
 (define-public j4-dmenu-desktop
   (package
     (name "j4-dmenu-desktop")
-    (version "2.17")
+    (version "2.18")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -2462,7 +2506,7 @@ create layout indicator widgets.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0v23fimkn83dcm5p53y2ymhklff3kwppxhf75sm8xmswrzkixpgc"))))
+                "1gxpgifzy0hnpd0ymw3r32amzr32z3bgb90ldjzl438p6h1q0i26"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("catch2" ,catch-framework2)))
@@ -2489,7 +2533,7 @@ using @command{dmenu}.")
 (define-public wofi
   (package
     (name "wofi")
-    (version "1.1.2")
+    (version "1.2.3")
     (source (origin
               (method hg-fetch)
               (uri (hg-reference
@@ -2498,7 +2542,7 @@ using @command{dmenu}.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "086j5wshawjbwdmmmldivfagc2rr7g5a2gk11l0snqqslm294xsn"))))
+                "0glpb2gf5n78s01z3rn614ak8ibxhfr824gy6xlljbxclgds264i"))))
     (build-system meson-build-system)
     (arguments
      `(#:glib-or-gtk? #t))
@@ -2513,3 +2557,106 @@ using @command{dmenu}.")
 such as sway, similar to @command{rofi}.")
     (home-page "https://hg.sr.ht/~scoopta/wofi")
     (license license:gpl3+)))
+
+(define-public dex
+  (package
+    (name "dex")
+    (version "0.9.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url (string-append "https://github.com/jceb/dex"))
+                    (commit (string-append "v" version))))
+              (sha256
+               (base32
+                "03aapcywnz4kl548cygpi25m8adwbmqlmwgxa66v4156ax9dqs86"))
+              (file-name (git-file-name name version))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure))
+       #:tests? #f))
+    (inputs
+     `(("python", python)))
+    (native-inputs
+     `(("python-sphinx" ,python-sphinx)))
+    (home-page "https://github.com/jceb/dex")
+    (synopsis "Execute DesktopEntry files")
+    (description
+     "@command{dex}, @dfn{DesktopEntry Execution}, is a program to generate
+and execute @file{.desktop} files of the Application type.")
+    (license license:gpl3+)))
+
+(define-public sx
+  (package
+    (name "sx")
+    (version "2.1.6")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/Earnestly/sx")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0p24ghp1ygvyc2hv81byhxax7491yhcc5priq5ldv07nzl7akagc"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:tests? #f                      ; no tests
+       #:make-flags
+       (let ((out (assoc-ref %outputs "out")))
+         (list (string-append "PREFIX=" out)))
+       #:phases
+       (modify-phases %standard-phases
+         ;; no configure script
+         (delete 'configure))))
+    (propagated-inputs
+     `(("xauth" ,xauth)))
+    (home-page "https://github.com/Earnestly/sx")
+    (synopsis "Start an xorg server")
+    (description
+     "@command{sx} is a simple alternative to both @command{xinit} and
+@command{startx} for starting an Xorg server.")
+    (license license:x11)))
+
+(define-public hsetroot
+  (package
+    (name "hsetroot")
+    (version "1.0.5")
+    (home-page "https://github.com/himdel/hsetroot")
+    (source (origin
+              (method git-fetch)
+              (file-name (git-file-name name version))
+              (uri (git-reference
+                    (url home-page)
+                    (commit version)))
+              (sha256
+               (base32
+                "1jbk5hlxm48zmjzkaq5946s58rqwg1v1ds2sdyd2ba029hmvr722"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f
+       #:make-flags
+       (list
+        "CC=gcc"
+        (string-append "PREFIX=" (assoc-ref %outputs "out")))
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (add-before 'install 'mkdir-install-path
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (mkdir-p (string-append out "/bin"))))))))
+    (inputs
+     `(("libx11" ,libx11)
+       ("imlib2" ,imlib2)
+       ("libxinerama" ,libxinerama)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (synopsis "Imlib2-based wallpaper changer")
+    (description
+     "The @command{hsetroot} command composes wallpapers for X.
+This package is the fork of hsetroot by Hyriand.")
+    (license license:gpl2+)))
diff --git a/gnu/packages/xfce.scm b/gnu/packages/xfce.scm
index ed584d8959..c8dd66b2e0 100644
--- a/gnu/packages/xfce.scm
+++ b/gnu/packages/xfce.scm
@@ -3,17 +3,17 @@
 ;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2016 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2016 Florian Paul Schmidt <mista.tapas@gmx.net>
-;;; Copyright © 2016 Kei Kebreau <kkebreau@posteo.net>
+;;; Copyright © 2016, 2020 Kei Kebreau <kkebreau@posteo.net>
 ;;; Copyright © 2017, 2019 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2017 Petter <petter@mykolab.ch>
 ;;; Copyright © 2017 Nikita <nikita@n0.is>
-;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2019 Pkill -9 <pkill9@runbox.com>
 ;;; Copyright © 2019 L  p R n  d n <guix@lprndn.info>
 ;;; Copyright © 2019 Ingo Ruhnke <grumbel@gmail.com>
 ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
 ;;; Copyright © 2020 Jonathan Brielmaier <jonathan.brielmaier@web.de>
-;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
+;;; Copyright © 2020, 2021 Michael Rohleder <mike@rohleder.de>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -38,6 +38,7 @@
   #:use-module (gnu packages cdrom)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages freedesktop)
+  #:use-module (gnu packages gettext)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages gstreamer)
@@ -53,7 +54,10 @@
   #: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-xyz)
   #:use-module (gnu packages pulseaudio)
+  #:use-module (gnu packages search)
   #:use-module (gnu packages web)
   #:use-module (gnu packages wm)
   #:use-module (gnu packages xml)
@@ -62,8 +66,10 @@
   #: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 python)
   #:use-module (guix build-system trivial)
   #:use-module (guix download)
+  #:use-module (guix git-download)
   #:use-module (guix gexp)
   #:use-module ((guix licenses) #:hide (freetype))
   #:use-module (guix packages)
@@ -95,7 +101,7 @@
 (define-public libxfce4util
   (package
     (name "libxfce4util")
-    (version "4.14.0")
+    (version "4.16.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://archive.xfce.org/src/xfce/"
@@ -103,7 +109,7 @@
                                   "/" name "-" version ".tar.bz2"))
               (sha256
                (base32
-                "093338faqqsrlc8dkmzr7qv411ysxczg1wlg7s3gvhrfk6vpkb9j"))))
+                "10svnpc8ggasym1pfgh24bfr0ndqs6lc7v1wmpsizj0zbms8snb0"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
@@ -121,7 +127,7 @@ Xfce Desktop Environment.")
 (define-public xfconf
   (package
     (name "xfconf")
-    (version "4.14.3")
+    (version "4.16.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://archive.xfce.org/src/xfce/"
@@ -129,12 +135,17 @@ Xfce Desktop Environment.")
                                   "xfconf-" version ".tar.bz2"))
               (sha256
                (base32
-                "00hcb96bw5ylfs9ppblchj8zv9026m3dlf7lnmgiq5f6xyh5542q"))))
+                "09al5bkq89b8pb3xyxnw0cnz6crxj8678ymwq2k9nzf60y812ak5"))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases
        ;; Run check after install phase to test dbus activation.
        (modify-phases %standard-phases
+         ;; tests-end seems to hang forever
+         (add-before 'configure 'patchout-tests-end
+           (lambda _
+             (substitute* "tests/Makefile.in"
+               (("tests-end") ""))))
          (add-after 'install 'custom-check
            (lambda _
              (setenv "HOME" (getenv "TMPDIR")) ; xfconfd requires a writable HOME
@@ -142,8 +153,15 @@ Xfce Desktop Environment.")
              (setenv "XDG_DATA_DIRS" ; for finding org.xfce.Xfconf.service
                      (string-append %output "/share"))
              ;; For the missing '/etc/machine-id'.
-             (setenv "DBUS_FATAL_WARNINGS" "0");
+             (setenv "DBUS_FATAL_WARNINGS" "0")
              (invoke "dbus-launch" "make" "check")))
+         (add-after 'custom-check 'install-shell-completions
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (etc (string-append out "/etc")))
+               (with-directory-excursion "completions"
+                 (install-file "xfconf-query"
+                               (string-append etc "/bash_completion.d"))))))
          (delete 'check))))
     (native-inputs
      `(("pkg-config" ,pkg-config)
@@ -167,7 +185,7 @@ storage system.")
 (define-public libxfce4ui
   (package
     (name "libxfce4ui")
-    (version "4.14.1")
+    (version "4.16.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://archive.xfce.org/src/xfce/"
@@ -175,7 +193,7 @@ storage system.")
                                   name "-" version ".tar.bz2"))
               (sha256
                (base32
-                "1npjhznmnckhnylsv3l7p1zvhckhmp9d7vifs8w12kdfmrg0fjf4"))))
+                "1anfj3n28abv9kbcpybs7q3k5g3c3d0r4xf4hyfqms2b9zlwj1lb"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags
@@ -186,14 +204,11 @@ storage system.")
        ("gobject-introspection" ,gobject-introspection)))
     (propagated-inputs
      `(("gtk+-3" ,gtk+)    ; required by libxfce4ui-2.pc
-       ;; libxfce4kbd-private-2.pc refers to all these.
+       ;; libxfce4kbd-private-3.pc refers to all these.
        ("libxfce4util" ,libxfce4util)
        ("xfconf" ,xfconf)))
     (inputs `(("libsm" ,libsm)
               ("libice" ,libice)
-              ;; FIXME: required by libxfce4ui-1.pc, so should be propagated,
-              ;; but will lead to a conflict with gtk+.
-              ("gtk+-2" ,gtk+-2)
               ("startup-notification" ,startup-notification)))
     (home-page "https://www.xfce.org/")
     (synopsis "Widgets library for Xfce")
@@ -202,10 +217,103 @@ storage system.")
 to share commonly used Xfce widgets among the Xfce applications.")
     (license lgpl2.0+)))
 
+(define-public catfish
+  (package
+    (name "catfish")
+    (version "1.4.13")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://archive.xfce.org/src/apps/"
+                                  "catfish/" (version-major+minor version)
+                                  "/catfish-" version ".tar.bz2"))
+              (sha256
+               (base32
+                "0fg89946z6n8njxn4mv29jksw8yavg8vypsljn9031pjwl3fmh2q"))))
+    (build-system python-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-command-paths
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "catfish/CatfishSearchEngine.py"
+               (("'which'") (string-append "'" (which "which") "'")))
+             (substitute* "catfish/CatfishWindow.py"
+               (("xdg-mime") (which "xdg-mime"))
+               (("xdg-open") (which "xdg-open")))))
+         ;; 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=/")))
+         (add-after 'install 'wrap-program
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (wrap-program (string-append out "/bin/catfish")
+                 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
+                 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))))))
+       #:tests? #f))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("python-distutils-extra" ,python-distutils-extra)
+       ("intltool" ,intltool)))
+    (inputs
+     `(("which" ,which)
+       ("xdg-utils" ,xdg-utils)))
+    (propagated-inputs
+     `(("gtk+" ,gtk+)
+       ("python-dbus" ,python-dbus)
+       ("python-pexpect" ,python-pexpect)
+       ("python-pycairo" ,python-pycairo)
+       ("python-pygobject" ,python-pygobject)))
+    (home-page "https://docs.xfce.org/apps/catfish/start")
+    (synopsis "File searching tool for Xfce")
+    (description
+     "Catfish is a file searching tool for Linux and Unix.  The interface is
+intentionally lightweight and simple, using only GTK+ 3.  You can configure
+it to your needs by using several command line options.")
+    (license gpl2+)))
+
+(define-public elementary-xfce-icon-theme
+  (package
+    (name "elementary-xfce-icon-theme")
+    (version "0.15.2")
+    (source (origin
+              (method git-fetch)
+              (uri
+               (git-reference
+                (url "https://github.com/shimmerproject/elementary-xfce")
+                (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1g6vndqvp11c2kl5vkpzb1wxvr2pfb3hvqxjjdgx6qzq9x8zmiqk"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:tests? #f                      ; no check target
+       #:make-flags '("CC=gcc")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'make-git-checkout-writable
+           (lambda _
+             (for-each make-file-writable (find-files "."))
+             #t)))))
+    (native-inputs
+     `(("gtk+" ,gtk+)
+       ("optipng" ,optipng)
+       ("pkg-config" ,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
+theme is supposed to keep everything working for Xfce, but gets updates from
+upstream occasionally.")
+    (license gpl2+)))
+
 (define-public exo
   (package
     (name "exo")
-    (version "0.12.11")
+    (version "4.16.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://archive.xfce.org/src/xfce/"
@@ -213,21 +321,8 @@ to share commonly used Xfce widgets among the Xfce applications.")
                                   "exo-" version ".tar.bz2"))
               (sha256
                (base32
-                "1dp5s64g6572h9zvx9js7qc72s728qsd9y7hl7hg6rwaq0cjb2gc"))))
+                "1k5sfm9cmg8k5zzzv0wb2cciqwwklnpfzcpak7wa32lsxl7b0x8r"))))
     (build-system gnu-build-system)
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         ;; exo won't find URI::Escape otherwise
-         (add-after 'install 'wrap-exo-compose-mail
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (perl5lib (getenv "PERL5LIB")))
-               (wrap-program (string-append out "/lib/xfce4/exo/exo-compose-mail")
-                 `("PERL5LIB" ":" prefix
-                   (,(string-append perl5lib ":" out
-                                    "/lib/perl5/site_perl")))))
-             #t)))))
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("intltool" ,intltool)))
@@ -236,10 +331,7 @@ to share commonly used Xfce widgets among the Xfce applications.")
      `(("gtk+-3" ,gtk+)
        ("libxfce4util" ,libxfce4util)))
     (inputs
-     `(;; FIXME Referred to in exo-1.pc but conflict with gtk+-3.
-       ("gtk+-2" ,gtk+-2)
-       ("libxfce4ui" ,libxfce4ui)
-       ("perl-uri" ,perl-uri)))
+     `(("libxfce4ui" ,libxfce4ui)))
     (home-page "https://www.xfce.org/")
     (synopsis "Extension library for Xfce")
     (description
@@ -252,7 +344,7 @@ development.")
 (define-public garcon
   (package
     (name "garcon")
-    (version "0.7.0")
+    (version "4.16.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://archive.xfce.org/src/xfce/"
@@ -260,14 +352,13 @@ development.")
                                   "garcon-" version ".tar.bz2"))
               (sha256
                (base32
-                "08r4dfvdvl178cjajm7ww16lwb7jsfqh3yz614mn84c0a0dvdhw2"))))
+                "07fjsgdjqxbcm84ga3cl495782k381k6mwksyrks3zf1l8klk4c4"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
+     `(("glib:bin" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
        ("intltool" ,intltool)
-       ("glib:bin" ,glib "bin")))
-    (inputs
-     `(("gtk+-2" ,gtk+-2)))             ; required by garcon-gtk2-1.pc
+       ("pkg-config" ,pkg-config)))
     (propagated-inputs
      `(("gtk+-3" ,gtk+)                 ; required by garcon-gtk3-1.pc
        ("libxfce4ui" ,libxfce4ui)))     ; required by garcon-gtk3-1.pc
@@ -283,7 +374,7 @@ merging features essential for loading menus modified with menu editors.")
 (define-public tumbler
   (package
     (name "tumbler")
-    (version "0.2.9")
+    (version "4.16.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://archive.xfce.org/src/xfce/"
@@ -291,7 +382,7 @@ merging features essential for loading menus modified with menu editors.")
                                   "tumbler-" version ".tar.bz2"))
               (sha256
                (base32
-                "1dh7h0jcbf8brvv9vwq4amnk6zgldl2ipdq3clzsx9p50dpr0235"))))
+                "0rmga1l7da0pjrs6jlyq1nfn513r543v7cchshrif1341knpy2wv"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
@@ -322,7 +413,7 @@ management D-Bus specification.")
 (define-public xfce4-panel
   (package
     (name "xfce4-panel")
-    (version "4.14.0")
+    (version "4.16.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://archive.xfce.org/src/xfce/"
@@ -330,7 +421,7 @@ management D-Bus specification.")
                                   name "-" version ".tar.bz2"))
               (sha256
                (base32
-                "1x3flv86jh9vqah7mr5mmfx2991mc6icsqjygsc3j88lgsyz7y6m"))
+                "0gf57hgx6v44bc2hj570inkafbi291scc6wbhmr6sc3xngp9m5sy"))
               (patches (search-patches "xfce4-panel-plugins.patch"))))
     (build-system gnu-build-system)
     (arguments
@@ -479,7 +570,7 @@ keys for controlling the audio volume.")
 (define-public xfce4-whiskermenu-plugin
   (package
     (name "xfce4-whiskermenu-plugin")
-    (version "2.4.6")
+    (version "2.5.2")
     (source
      (origin
        (method url-fetch)
@@ -487,7 +578,7 @@ keys for controlling the audio volume.")
                            "xfce4-whiskermenu-plugin/" (version-major+minor version) "/"
                            "xfce4-whiskermenu-plugin-" version ".tar.bz2"))
        (sha256
-        (base32 "0i2pn8852x6zvlys4610knscscyjpha6wjzy7rljixbxr26d6x49"))))
+        (base32 "05f53ycbszvw23g76pbdszfnqfk4f8w4imwfgljj140wzl50gxx6"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
@@ -495,11 +586,21 @@ keys for controlling the audio volume.")
     (inputs
      `(("xfce4-panel" ,xfce4-panel)
        ("garcon" ,garcon)
+       ("gettext" ,gettext-minimal)
        ("exo" ,exo)
        ("gtk+" ,gtk+)
        ("libxfce4ui" ,libxfce4ui)))
     (arguments
-      `(#:tests? #f)) ; no tests
+     `(#:tests? #f                      ; no tests
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-shell-script
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* (string-append "panel-plugin/xfce4-popup-whiskermenu.in")
+               (("@CMAKE_INSTALL_FULL_BINDIR@")
+                (string-append (assoc-ref inputs "xfce4-panel") "/bin"))
+               (("gettext") (which "gettext")))
+             #t)))))
     (home-page "https://goodies.xfce.org/projects/panel-plugins/xfce4-whiskermenu-plugin")
     (synopsis "Application menu panel plugin for Xfce")
     (description
@@ -513,7 +614,7 @@ applications, and includes a search bar to search for applications.")
 (define-public xfce4-xkb-plugin
   (package
     (name "xfce4-xkb-plugin")
-    (version "0.8.1")
+    (version "0.8.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://archive.xfce.org/src/panel-plugins/"
@@ -521,7 +622,7 @@ applications, and includes a search bar to search for applications.")
                                   name "-" version ".tar.bz2"))
               (sha256
                (base32
-                "18b7cnaf3zxm598p2i47vim3kbbi8w923ia1hwabdph1c89cz7n1"))))
+                "0rvrz464y7ji989zvi2v85kg47444nqsdq9rv6k8dkbkdwzy2jxv"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("intltool" ,intltool)
@@ -551,15 +652,16 @@ per window.")
 (define-public xfce4-appfinder
   (package
     (name "xfce4-appfinder")
-    (version "4.14.0")
+    (version "4.16.1")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://archive.xfce.org/xfce/"
+              (uri (string-append "https://archive.xfce.org/src/xfce/"
+                                  name "/"
                                   (version-major+minor version)
-                                  "/src/" name "-" version ".tar.bz2"))
+                                  "/" name "-" version ".tar.bz2"))
               (sha256
                (base32
-                "162dibl6ipp72x0s35yhk7kkzxd4qimagg5zdkkv5kjgjpa7bhby"))))
+                "1v77h5634n49idci2jiw0k7jjk0vzpsvgyx2fkp18l39jayykqxz"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
@@ -578,7 +680,7 @@ your system in categories, so you can quickly find and launch them.")
 (define-public xfce4-session
   (package
     (name "xfce4-session")
-    (version "4.14.2")
+    (version "4.16.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://archive.xfce.org/src/xfce/"
@@ -586,7 +688,7 @@ your system in categories, so you can quickly find and launch them.")
                                   "xfce4-session-" version ".tar.bz2"))
               (sha256
                (base32
-                "1bwpylcn7x9i301yz45wvkzah9bncv9b44nf4hh9ln4i1jka9qzv"))
+                "1dqpgnq1hy9z170aapjglyp6jpyq1iqn5331nph727a82br77wi2"))
               (modules '((guix build utils)))
               (snippet
                '(begin
@@ -623,7 +725,7 @@ allows you to shut down the computer from Xfce.")
 (define-public xfce4-settings
   (package
     (name "xfce4-settings")
-    (version "4.14.0")
+    (version "4.16.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://archive.xfce.org/src/xfce/"
@@ -631,7 +733,7 @@ allows you to shut down the computer from Xfce.")
                                   name "-" version ".tar.bz2"))
               (sha256
                (base32
-                "0g0ipkg2fyg8r1z95ynx0xjr78bp49c2dwh4mli05nmb4gb40c70"))
+                "1hnx88a8xmi38mdf5gxdvx7n8yax1vzah8hy8g37bijlqx7l18b7"))
               (patches (search-patches "xfce4-settings-defaults.patch"))))
     (build-system gnu-build-system)
     (arguments
@@ -650,7 +752,8 @@ allows you to shut down the computer from Xfce.")
        ("libxklavier" ,libxklavier)
        ("libxrandr" ,libxrandr)
        ("libxfce4ui" ,libxfce4ui)
-       ("upower" ,upower)
+       ("upower" ,upower) ;; TODO needs upower-glib
+       ("python" ,python) ;; for xfce4-compose-mail
        ("xf86-input-libinput" ,xf86-input-libinput)))
     (home-page "https://www.xfce.org/")
     (synopsis "Xfce settings manager")
@@ -662,7 +765,7 @@ like appearance, display, keyboard and mouse settings.")
 (define-public thunar
   (package
     (name "thunar")
-    (version "1.8.15")
+    (version "4.16.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://archive.xfce.org/src/xfce/"
@@ -670,13 +773,14 @@ like appearance, display, keyboard and mouse settings.")
                                   "thunar-" version ".tar.bz2"))
               (sha256
                (base32
-                "14vw4yaf9fff24zmj4dp8r8hf8mb19hl4w4l0jc8c4qzy865c93n"))))
+                "1pbspa31q4kgydjzmssahq3k0wcy10ma466dlsd2y69nqjc0pab7"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("intltool" ,intltool)))
     (inputs
      `(("exo" ,exo)
+       ("gobject-introspection" ,gobject-introspection)
        ("libexif" ,libexif)
        ("libgudev" ,libgudev)
        ("libnotify" ,libnotify)
@@ -694,7 +798,7 @@ fast.")
 (define-public thunar-volman
   (package
     (name "thunar-volman")
-    (version "0.9.5")
+    (version "4.16.0")
     (source
      (origin
        (method url-fetch)
@@ -702,7 +806,7 @@ fast.")
                            (version-major+minor version) "/"
                            "thunar-volman-" version ".tar.bz2"))
        (sha256
-        (base32 "0dqqkbhn43hhmhqyx1fnmawpvysdjzw6ln4ryf629wil6dlwd9vy"))))
+        (base32 "0zaliahfz9ci2md7g6w9mb7z5azi5n56gihbnwyzvds2n8cygh6j"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
@@ -725,7 +829,7 @@ and import the new pictures from your camera.")
 (define-public xfwm4
   (package
     (name "xfwm4")
-    (version "4.14.3")
+    (version "4.16.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://archive.xfce.org/src/xfce/"
@@ -733,7 +837,7 @@ and import the new pictures from your camera.")
                                   "xfwm4-" version ".tar.bz2"))
               (sha256
                (base32
-                "1gw3fbiwraylarl1bqbvfh7nxlss5w8w0im5ahfg3a9mkrdfr6w2"))))
+                "133ip28v6j3x4l413d81ixsisf32sa0xzd54n0nn8g6p9fh4rcmm"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
@@ -755,7 +859,7 @@ on the screen.")
 (define-public xfdesktop
   (package
     (name "xfdesktop")
-    (version "4.14.2")
+    (version "4.16.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://archive.xfce.org/src/xfce/"
@@ -763,7 +867,7 @@ on the screen.")
                                   "xfdesktop-" version ".tar.bz2"))
               (sha256
                (base32
-                "0x1yx9sd5aanrlr1qnbwd2nsmcg09g4132k0kyb7z47a3x3381d3"))
+                "1bjv2mpkv7zmpzssbvvzh0x4pn8cqm8dvhgsv5i1xwngzspsajwk"))
               (modules '((guix build utils)))
               (snippet
                #~(begin
@@ -787,6 +891,7 @@ on the screen.")
                                           "/tmp/final.jpg")
                                   (copy-file "/tmp/final.jpg" image))
                                 '(;; "backgrounds/xfce-blue.jpg"
+                                  "backgrounds/xfce-stripes.png"
                                   "backgrounds/xfce-teal.jpg"))
                       #t)))
 
@@ -816,7 +921,7 @@ devices and folders.")
 (define-public xfce4-terminal
   (package
     (name "xfce4-terminal")
-    (version "0.8.9.2")
+    (version "0.8.10")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://archive.xfce.org/src/apps/" name "/"
@@ -824,7 +929,7 @@ devices and folders.")
                                   name "-" version ".tar.bz2"))
               (sha256
                (base32
-                "1szfmvx4gbwcqag7fnlqh96i9cmvs6xm1yrdbnlzh3imdpw3p8lv"))))
+                "1irxyg5vp6vyd9vxdqav6jhchfkmhlqq511386h644p0k30kfcvs"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
@@ -898,7 +1003,7 @@ system resources, while still being visually appealing and user friendly.")
 (define-public xfce4-power-manager
   (package
     (name "xfce4-power-manager")
-    (version "1.7.0")
+    (version "4.16.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://archive.xfce.org/src/xfce/"
@@ -906,7 +1011,7 @@ system resources, while still being visually appealing and user friendly.")
                                   "xfce4-power-manager-" version ".tar.bz2"))
               (sha256
                (base32
-                "0jqjwy341dxyijjm9k77a12iih6b5r3f4cmpr2lppa7mf37qqdj5"))))
+                "1wrvqiifaxsgcn1kh4vm2hwxi9lgm6mw4zrfld2zl0mm05y5i77b"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
@@ -964,7 +1069,7 @@ the desktop wallpaper.")
 (define-public xfce4-taskmanager
   (package
     (name "xfce4-taskmanager")
-    (version "1.2.3")
+    (version "1.4.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://archive.xfce.org/src/apps/"
@@ -972,7 +1077,7 @@ the desktop wallpaper.")
                                   "xfce4-taskmanager-" version ".tar.bz2"))
               (sha256
                (base32
-                "1i63bnvpjpblnd0d3l1v065x9q1cz74cvlab5hzd0q8zgkd49z6w"))))
+                "0hvx7qqkiyq81axcbkqfv39bn84x8gjzrybq3w3hkz0mzkfq8mk5"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("intltool" ,intltool)
@@ -1034,7 +1139,7 @@ several different time zones.")
 (define-public xfce4-notifyd
   (package
     (name "xfce4-notifyd")
-    (version "0.6.1")
+    (version "0.6.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://archive.xfce.org/src/apps/"
@@ -1042,7 +1147,7 @@ several different time zones.")
                                   name "-" version ".tar.bz2"))
               (sha256
                (base32
-                "1d49l2vdz4hb2c14ai5p81wz7vikh9g3ffz0gmm2kgw9kjcp8llv"))))
+                "0ib5s7kjbr9sy8nh89nfcc4w6qplacnk4s92iycijy2wcv389aqr"))))
     (build-system glib-or-gtk-build-system)
     (native-inputs
      `(("intltool" ,intltool)
@@ -1101,7 +1206,7 @@ of data to either CD/DVD/BD.")
 (define-public mousepad
   (package
     (name "mousepad")
-    (version "0.4.2")
+    (version "0.5.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://archive.xfce.org/src/apps/mousepad/"
@@ -1109,7 +1214,7 @@ of data to either CD/DVD/BD.")
                                   version ".tar.bz2"))
               (sha256
                (base32
-                "1myy7954r1a30dk7inwy7kwki7zvfbnnsc3a8swk72vzrbgjmh44"))))
+                "10m52yrh89j7xbr299m9f0mqrhqz95lp3qi5zbqd0bg839xjfbix"))))
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags '(;; Use the GSettings keyfile backend rather than
@@ -1143,7 +1248,7 @@ of data to either CD/DVD/BD.")
 (define-public xfce4-screenshooter
   (package
    (name "xfce4-screenshooter")
-   (version "1.9.7")
+   (version "1.9.8")
    (source (origin
             (method url-fetch)
             (uri (string-append "https://archive.xfce.org/src/apps/"
@@ -1153,7 +1258,7 @@ of data to either CD/DVD/BD.")
                                 version ".tar.bz2"))
             (sha256
              (base32
-              "1lbhl0sh0ayv3zhgzcd9hj9q9m3lnyv7vlglfqrl39i3782n2w8g"))))
+              "0l1cyrb4ym7d95yliyl8gn701wvnr734v622yyy3zdnk99hrs0kg"))))
    (build-system gnu-build-system)
    (native-inputs
     `(("pkg-config" ,pkg-config)
@@ -1176,7 +1281,7 @@ A plugin for the Xfce panel is also available.")
 (define-public xfce4-screensaver
   (package
     (name "xfce4-screensaver")
-    (version "0.1.10")
+    (version "4.16.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://archive.xfce.org/src/apps/"
@@ -1186,7 +1291,7 @@ A plugin for the Xfce panel is also available.")
                                   version ".tar.bz2"))
               (sha256
                (base32
-                "0mqxbyq9np6jzky8y35dlxxmk78q2w0jvwg9kh7a4ib7vmw1qvsq"))))
+                "13962rkc7nn3yigv1km8w0z7g41kj2bxmrrwx2f6gnv27qz18kbd"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
@@ -1252,7 +1357,7 @@ A plugin for the Xfce panel is also available.")
 (define-public xfce4-cpugraph-plugin
   (package
    (name "xfce4-cpugraph-plugin")
-   (version "1.1.0")
+   (version "1.2.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://archive.xfce.org/src/panel-plugins/"
@@ -1261,7 +1366,7 @@ A plugin for the Xfce panel is also available.")
                                   "/xfce4-cpugraph-plugin-" version ".tar.bz2"))
               (sha256
                (base32
-                "193bj1p54l4zrvgdjj0pvjn161d6dn82jh9invcy09sqwlj0mkiy"))))
+                "19rdc3k085z7bv8365g26vz6iy9dx2f4x4q3wszsjmq5pvdxsrkq"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("intltool" ,intltool)
@@ -1341,7 +1446,7 @@ each time a new earthquake occurs.")
 (define-public xfce4-datetime-plugin
   (package
    (name "xfce4-datetime-plugin")
-   (version "0.8.0")
+   (version "0.8.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://archive.xfce.org/src/panel-plugins/"
@@ -1350,7 +1455,7 @@ each time a new earthquake occurs.")
                                   "/xfce4-datetime-plugin-" version ".tar.bz2"))
               (sha256
                (base32
-                "1m7bmpvbmiz2xdffpg675qn80zx2n0cnlf842ppvh1q7zz18ndfd"))))
+                "0h15mxq5lawlxyr6h1vxc60rkf0rpmnv81l0f52mrswww9dz3xp9"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("intltool" ,intltool)
@@ -1368,7 +1473,7 @@ and a calendar appears when you left-click on it.")
 (define-public xfce4-calculator-plugin
   (package
    (name "xfce4-calculator-plugin")
-   (version "0.7.0")
+   (version "0.7.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://archive.xfce.org/src/panel-plugins/"
@@ -1377,7 +1482,7 @@ and a calendar appears when you left-click on it.")
                                   "/xfce4-calculator-plugin-" version ".tar.bz2"))
               (sha256
                (base32
-                "1scx7z5ijg2fpcqrzv1nxhpj9vrqic7pyghig70f2n5hgaaanl3v"))))
+                "10fsb9pyr2cr9dj1k3n96dq6g02g61g5y4z4jzfvskpgqc1nl0g4"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("intltool" ,intltool)
@@ -1396,7 +1501,7 @@ precedence rules, and the following functions and common constants.")
 (define-public xfce4-cpufreq-plugin
   (package
    (name "xfce4-cpufreq-plugin")
-   (version "1.2.1")
+   (version "1.2.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://archive.xfce.org/src/panel-plugins/"
@@ -1405,7 +1510,7 @@ precedence rules, and the following functions and common constants.")
                                   "/xfce4-cpufreq-plugin-" version ".tar.bz2"))
               (sha256
                (base32
-                "1dgmx3ygil51s1az298ly0gybcw8ln1dz8q8y9k207a0vk049q65"))))
+                "1g07rpbq61dbdz0zvvb0xz6ipympxadwknn5y5q3v85k0nr9qfbx"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("intltool" ,intltool)
@@ -1423,7 +1528,7 @@ governor and frequencies supported and used by your system.")
 (define-public xfce4-diskperf-plugin
   (package
    (name "xfce4-diskperf-plugin")
-   (version "2.6.2")
+   (version "2.6.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://archive.xfce.org/src/panel-plugins/"
@@ -1432,7 +1537,7 @@ governor and frequencies supported and used by your system.")
                                   "/xfce4-diskperf-plugin-" version ".tar.bz2"))
               (sha256
                (base32
-                "0i4nrsvwcn15g5gmnba9p07sad3c96x517l2lybdw8jqv91rhbpx"))))
+                "0n8wsnjvzw98z8r0f0zr8n2gicjz6hhislp86xrjh0r4xcnymcbk"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("intltool" ,intltool)
@@ -1485,7 +1590,7 @@ this very convenient.")
 (define-public xfce4-fsguard-plugin
   (package
    (name "xfce4-fsguard-plugin")
-   (version "1.1.1")
+   (version "1.1.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://archive.xfce.org/src/panel-plugins/"
@@ -1494,7 +1599,7 @@ this very convenient.")
                                   "/xfce4-fsguard-plugin-" version ".tar.bz2"))
               (sha256
                (base32
-                "05nmfkrmifm76bsywqmbjd1qdvzagv5cbvnwbkb57156j055vl6n"))))
+                "01a1an5z4kpgi68lk98q7wga7sx676fcbnrsd5cpq4d736ifdn37"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("intltool" ,intltool)
@@ -1515,7 +1620,7 @@ be clicked to open the chosen mount point.")
 (define-public xfce4-genmon-plugin
   (package
    (name "xfce4-genmon-plugin")
-   (version "4.0.2")
+   (version "4.1.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://archive.xfce.org/src/panel-plugins/"
@@ -1524,7 +1629,7 @@ be clicked to open the chosen mount point.")
                                   "/xfce4-genmon-plugin-" version ".tar.bz2"))
               (sha256
                (base32
-                "1ai3pwgv61nv7i2dyrvncnc63r8kdjbkp40vp51vzak1dx924v15"))))
+                "0zafr1jrw87l7h4z3wp88gj7n5mcygm22aw42vdpnp2l8x5nn9fi"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("intltool" ,intltool)
@@ -1574,7 +1679,7 @@ Caps, Scroll and Num Lock in Xfce panel.")
 (define-public xfce4-mailwatch-plugin
   (package
    (name "xfce4-mailwatch-plugin")
-   (version "1.2.0")
+   (version "1.3.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://archive.xfce.org/src/panel-plugins/"
@@ -1583,7 +1688,7 @@ Caps, Scroll and Num Lock in Xfce panel.")
                                   "/xfce4-mailwatch-plugin-" version ".tar.bz2"))
               (sha256
                (base32
-                "1bfw3smwivr9mzdyq768biqrl4aq94zqi3xjzq6kqnd8561cqjk2"))))
+                "0bmykjhd3gs1737fl3zn5gg6f3vlncak2xqz89zv5018znz1xy90"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("intltool" ,intltool)
@@ -1655,7 +1760,7 @@ right-click menu
 (define-public xfce4-mount-plugin
   (package
    (name "xfce4-mount-plugin")
-   (version "1.1.3")
+   (version "1.1.5")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://archive.xfce.org/src/panel-plugins/"
@@ -1664,7 +1769,7 @@ right-click menu
                                   "/xfce4-mount-plugin-" version ".tar.bz2"))
               (sha256
                (base32
-                "07lijjhimjrcyrhasr2299km6wm22xcd3fazdfpqvisbk1mvvrda"))))
+                "1hlfnlxwwx0hkm82mcz777f3i22x6bh6k3gzl0yjnm4yj9adjk2q"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("intltool" ,intltool)
@@ -1753,7 +1858,7 @@ opens up a menu with the following:
 (define-public xfce4-smartbookmark-plugin
   (package
    (name "xfce4-smartbookmark-plugin")
-   (version "0.5.1")
+   (version "0.5.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://archive.xfce.org/src/panel-plugins/"
@@ -1762,7 +1867,7 @@ opens up a menu with the following:
                                   "/xfce4-smartbookmark-plugin-" version ".tar.bz2"))
               (sha256
                (base32
-                "001nf2bqly8vm868qvafzgihc9463c488mkim24iw9g2s9ygna1y"))))
+                "1lyd64qc9w6qnpqjb5xk0mjq4l7riv6z7l9aws28clalb8prw9ra"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("intltool" ,intltool)
@@ -1813,7 +1918,7 @@ freedesktop.org specification.")
 (define-public xfce4-stopwatch-plugin
   (package
    (name "xfce4-stopwatch-plugin")
-   (version "0.4.0")
+   (version "0.5.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://archive.xfce.org/src/panel-plugins/"
@@ -1822,7 +1927,7 @@ freedesktop.org specification.")
                                   "/xfce4-stopwatch-plugin-" version ".tar.bz2"))
               (sha256
                (base32
-                "0jfr0ykn97hfngh0hd2wrs9rxswzxaxjv93g6csdp8hnij649nm3"))))
+                "1q840298jzdqlhc9lw49q32xzdhnbzcgvv69qq5slkc704s5w6vw"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("intltool" ,intltool)
@@ -1839,7 +1944,7 @@ freedesktop.org specification.")
 (define-public xfce4-systemload-plugin
   (package
    (name "xfce4-systemload-plugin")
-   (version "1.2.3")
+   (version "1.2.4")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://archive.xfce.org/src/panel-plugins/"
@@ -1848,7 +1953,7 @@ freedesktop.org specification.")
                                   "/xfce4-systemload-plugin-" version ".tar.bz2"))
               (sha256
                (base32
-                "0x87a8h5l3ashz1ksfaxcpn9a392jzlsbx5n5pga8g90fp2hf905"))))
+                "0dcqg13phlcri4i4g9752m4zfkcmidiqpjv4s3l3pfiwjbgvhc85"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("intltool" ,intltool)
@@ -1925,7 +2030,7 @@ period.")
 (define-public xfce4-verve-plugin
   (package
    (name "xfce4-verve-plugin")
-   (version "2.0.0")
+   (version "2.0.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://archive.xfce.org/src/panel-plugins/"
@@ -1934,7 +2039,7 @@ period.")
                                   "/xfce4-verve-plugin-" version ".tar.bz2"))
               (sha256
                (base32
-                "1ljcmgc8ixrbz134ggxbbh4zzdnp7mhi9ay6s5hgrz28djx10rcy"))))
+                "09gqp0jb5ccjh7ny798n5cy9skdx3hpis4kgvjpl4vidnrg5xnpb"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("intltool" ,intltool)
@@ -1959,7 +2064,7 @@ for the Xfce panel.  It supports several features, such as:
 (define-public xfce4-wavelan-plugin
   (package
    (name "xfce4-wavelan-plugin")
-   (version "0.6.1")
+   (version "0.6.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://archive.xfce.org/src/panel-plugins/"
@@ -1968,7 +2073,7 @@ for the Xfce panel.  It supports several features, such as:
                                   "/xfce4-wavelan-plugin-" version ".tar.bz2"))
               (sha256
                (base32
-                "05zdiq1igr1fcvnwlivg8g3szvxmlr3yc7jfj3bwgqrs0vm827zl"))))
+                "07a8nmc60in48licjj0gmwm77vb8divh1lb7jnib35n5a1ka6ypa"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("intltool" ,intltool)
@@ -1986,7 +2091,7 @@ lan interface (signal state, signal quality, network name (SSID)).")
 (define-public xfce4-weather-plugin
   (package
    (name "xfce4-weather-plugin")
-   (version "0.10.1")
+   (version "0.10.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://archive.xfce.org/src/panel-plugins/"
@@ -1995,7 +2100,7 @@ lan interface (signal state, signal quality, network name (SSID)).")
                                   "/xfce4-weather-plugin-" version ".tar.bz2"))
               (sha256
                (base32
-                "12bs2rfmmy021087i10vxibdbbvd5vld0vk3h5hymhpz7rgszcmg"))))
+                "1ik2qvmwylsz5vyz4np2y0mmd37s89xkayxi97490c4mj85pj5wh"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("intltool" ,intltool)
diff --git a/gnu/packages/xiph.scm b/gnu/packages/xiph.scm
index fb3c06418b..4a3f25e009 100644
--- a/gnu/packages/xiph.scm
+++ b/gnu/packages/xiph.scm
@@ -7,7 +7,7 @@
 ;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
 ;;; Copyright © 2015, 2016, 2017, 2019 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2017, 2018, 2019, 2020 Marius Bakke <marius@gnu.org>
-;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
 ;;;
@@ -86,14 +86,14 @@ periodic timestamps for seeking.")
 (define libvorbis
   (package
    (name "libvorbis")
-   (version "1.3.6")
+   (version "1.3.7")
    (source (origin
             (method url-fetch)
             (uri (string-append "https://downloads.xiph.org/releases/vorbis/"
                                 "libvorbis-" version ".tar.xz"))
             (sha256
              (base32
-              "05dlzjkdpv46zb837wysxqyn8l636x3dw8v8ymlrwz2fg1dbn05g"))))
+              "0jwmf87x5sdis64rbv0l87mdpah1rbilkkxszipbzg128f9w8g5k"))))
    (build-system gnu-build-system)
    (propagated-inputs `(("libogg" ,libogg)))
    (arguments `(#:configure-flags '("LDFLAGS=-lm"
@@ -494,7 +494,7 @@ things in between.")
 (define-public libshout
   (package
     (name "libshout")
-    (version "2.4.3")
+    (version "2.4.5")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -502,7 +502,7 @@ things in between.")
                     "libshout-" version ".tar.gz"))
               (sha256
                (base32
-                "1zhdshas539cs8fsz8022ljxnnncr5lafhfd1dqr1gs125fzb2hd"))))
+                "1438da40y73y9068saxrbmm27qq6xqmmzsziwgmr8fb7i9k6irfr"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm
index 20d9de246c..930cd795f5 100644
--- a/gnu/packages/xml.scm
+++ b/gnu/packages/xml.scm
@@ -23,6 +23,11 @@
 ;;; Copyright © 2018 Jack Hill <jackhill@jackhill.us>
 ;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org>
 ;;; Copyright © 2020 Paul Garlick <pgarlick@tourbillion-technology.com>
+;;; Copyright © 2020 Edouard Klein <edk@beaver-labs.com>
+;;; Copyright © 2020 Brett Gilio <brettg@gnu.org>
+;;; Copyright © 2020 Pierre Langlois <pierre.langlois@gmx.com>
+;;; Copyright © 2021 Michael Rohleder <mike@rohleder.de>
+;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -41,16 +46,19 @@
 
 (define-module (gnu packages xml)
   #:use-module (gnu packages)
+  #:use-module (gnu packages base)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages docbook)
   #:use-module (gnu packages documentation)
+  #:use-module (gnu packages gettext)
   #:use-module (gnu packages glib)
-  #:use-module (gnu packages gnupg)
   #:use-module (gnu packages gnome)
+  #:use-module (gnu packages gnupg)
   #:use-module (gnu packages graphviz)
+  #:use-module (gnu packages gtk)
   #:use-module (gnu packages java)
   #:use-module (gnu packages nss)
   #:use-module (gnu packages perl)
@@ -65,11 +73,45 @@
   #:use-module (guix build-system ant)
   #:use-module (guix build-system cmake)
   #: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 (gnu packages linux)
   #:use-module (gnu packages pkg-config))
 
+(define-public libxmlb
+  (package
+    (name "libxmlb")
+    (version "0.1.15")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/hughsie/libxmlb")
+         (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1mb73pnfwqc4mm0lm16yfn0lj495h8hcciprb2v6wgy3ifnnjxib"))))
+    (build-system meson-build-system)
+    (arguments
+     `(#:glib-or-gtk? #t))
+    (native-inputs
+     `(("gobject-introspection" ,gobject-introspection)
+       ("gtk-doc" ,gtk-doc)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("appstream-glib" ,appstream-glib)
+       ("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
+strings have the NULs included.  This allows an application to mmap the binary
+XML file, do an XPath query and return some strings without actually parsing
+the entire document.")
+    (home-page "https://github.com/hughsie/libxmlb")
+    (license license:lgpl2.1+)))
+
 (define-public expat
   (package
     (name "expat")
@@ -100,14 +142,14 @@ things the parser might find in the XML document (like start tags).")
 (define-public libebml
   (package
     (name "libebml")
-    (version "1.4.0")
+    (version "1.4.1")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://dl.matroska.org/downloads/libebml/"
                            "libebml-" version ".tar.xz"))
        (sha256
-        (base32 "1cy4hbk8qbxn4c6pwvlsvr1rp8vhfach9rwfg4c50qa94nlckaw0"))))
+        (base32 "0ckhf7wcfwik1c8ilwipdr9p7b58pvqvj8x54l6slqah81lwd53f"))))
     (build-system cmake-build-system)
     (arguments
      `(#:configure-flags
@@ -180,7 +222,7 @@ project (but it is usable outside of the Gnome platform).")
     (source (origin
              (method git-fetch)
              (uri (git-reference
-                   (url "https://github.com/libxmlplusplus/libxmlplusplus.git")
+                   (url "https://github.com/libxmlplusplus/libxmlplusplus")
                    (commit version)))
              (file-name (git-file-name name version))
              (sha256
@@ -240,7 +282,7 @@ It uses libxml2 to access the XML files.")
     (source (origin
              (method git-fetch)
              (uri (git-reference
-                   (url "https://github.com/libxmlplusplus/libxmlplusplus.git")
+                   (url "https://github.com/libxmlplusplus/libxmlplusplus")
                    (commit version)))
              (file-name (git-file-name name version))
              (sha256
@@ -319,6 +361,86 @@ It uses libxml2 to access the XML files.")
 based on libxml for XML parsing, tree manipulation and XPath support.")
     (license license:x11)))
 
+(define-public openjade
+  (package
+    (name "openjade")
+    (version "1.3.2")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://sourceforge/openjade/openjade/"
+                                  version "/" name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1l92sfvx1f0wmkbvzv1385y1gb3hh010xksi1iyviyclrjb7jb8x"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:configure-flags
+       (list (string-append "--enable-spincludedir="
+                            (assoc-ref %build-inputs "opensp")
+                            "/include/OpenSP")
+             (string-append "--enable-splibdir="
+                            (assoc-ref %build-inputs "opensp") "/lib")
+             ;; Workaround segfaults in OpenJade (see:
+             ;; https://bugs.launchpad.net/ubuntu/+source/openjade/+bug/1869734).
+             "CXXFLAGS=-O0")
+       #:parallel-build? #f             ;build fails otherwise
+       ;; The test suite fails with diff errors between the actual and
+       ;; expected results, like: (char<? #\a #\A) returning #t rather than
+       ;; #f (see: https://sourceforge.net/p/openjade/bugs/150/).
+       #:tests? #f
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'replace-deprecated-getopt
+           ;; See: https://sourceforge.net/p/openjade/bugs/140/.
+           (lambda _
+             (substitute* "msggen.pl"
+               (("use POSIX;") "use POSIX;\nuse Getopt::Std;")
+               (("do 'getopts.pl';") "")
+               (("&Getopts") "getopts"))
+             #t))
+         (add-after 'replace-deprecated-getopt 'fix-locale-lookup
+           ;; See: https://sourceforge.net/p/openjade/bugs/149/.
+           (lambda _
+             (substitute* "testsuite/expr-lang.dsl"
+               (("\\(language \"EN\" \"US\"\\)")
+                "(language \"EN\" \"US.UTF-8\")"))
+             #t))
+         (add-after 'install 'install-doc
+           (lambda* (#:key outputs #:allow-other-keys)
+             ;; TODO: Generate the manpage from source, with
+             ;; openjade-bootstrap and jadetex.  See the file docsrc/Makefile.
+             (let* ((out (assoc-ref outputs "out"))
+                    (man1 (string-append out "/share/man/man1")))
+               (install-file "docsrc/openjade.1" man1)
+               #t)))
+         (add-after 'install-doc 'install-dtds
+          (lambda* (#:key outputs #:allow-other-keys)
+            (let* ((out (assoc-ref outputs "out"))
+                   (dtd (string-append out "/sgml/dtd")))
+              (mkdir-p dtd)
+              (copy-recursively "dsssl" dtd)
+              #t)))
+         (delete 'check)
+         (add-after 'install 'check
+           (lambda* (#:key tests? out #:allow-other-keys)
+             (if tests?
+                 (with-directory-excursion "testsuite"
+                   (invoke "make"))
+                 (format #t "test suite not run~%"))
+             #t)))))
+    (inputs
+     `(("opensp" ,opensp)))
+    (native-inputs
+     `(("perl" ,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
+and Specification Language (DSSSL), a style language to format SGML or XML
+documents.  It contains backends for various formats such as RTF, HTML, TeX,
+MIF, SGML2SGML, and FOT.")
+    (license (license:non-copyleft "file://COPYING"
+                                   "See COPYING in the distribution."))))
+
 (define-public perl-graph-readwrite
   (package
     (name "perl-graph-readwrite")
@@ -953,14 +1075,14 @@ the form of functions.")
 (define-public pugixml
   (package
     (name "pugixml")
-    (version "1.10")
+    (version "1.11")
     (source
      (origin
       (method url-fetch)
       (uri (string-append "https://github.com/zeux/pugixml/releases/download/v"
                           version "/pugixml-" version ".tar.gz"))
       (sha256
-       (base32 "02l7nllhydggf7s64d2x84kckbmwag4lsn28sc82953hnkxrkwsm"))))
+       (base32 "0b5apqiisq8yk51x0cwks4h2m0zd2zgjdy0w80qp9h5rccz3v496"))))
     (build-system cmake-build-system)
     (arguments
      `(#:configure-flags '("-DBUILD_SHARED_LIBS=ON")
@@ -1042,14 +1164,14 @@ XSL-T processor.  It also performs any necessary post-processing.")
 (define-public xmlsec
   (package
     (name "xmlsec")
-    (version "1.2.30")
+    (version "1.2.31")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://www.aleksey.com/xmlsec/download/"
                                   "xmlsec1-" version ".tar.gz"))
               (sha256
                (base32
-                "1j5bf7ni45jghyrbf7a14wx2pvfara557zyry7g7h8840c5kd11d"))))
+                "09hbbaz2d9hw645q27apkjs1mdr6vd85x5z3c9hzgr1iri9bq44v"))))
     (build-system gnu-build-system)
     (propagated-inputs                  ; according to xmlsec1.pc
      `(("libxml2" ,libxml2)
@@ -1086,7 +1208,7 @@ Libxml2).")
 (define-public minixml
   (package
     (name "minixml")
-    (version "2.12")
+    (version "3.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/michaelrsweet/mxml/"
@@ -1094,14 +1216,14 @@ Libxml2).")
                                   "/mxml-" version ".tar.gz"))
               (sha256
                (base32
-                "0kq3wiycb40dcyswvajrqb1n5ffm5xcnsfxxaml92vhpl6x57yvb"))))
+                "0x698ayv00vrjg0yfm20lakpgl7m02x1fk2n09wygwk4973gd55q"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags
        (list (string-append "LDFLAGS=-Wl,-rpath="
                             (assoc-ref %outputs "out") "/lib"))
        #:tests? #f))                    ; tests are run during build
-    (home-page "https://michaelrsweet.github.io/mxml")
+    (home-page "https://www.msweet.org/mxml/")
     (synopsis "Small XML parsing library")
     (description
      "Mini-XML is a small C library to read and write XML files and strings in
@@ -1222,7 +1344,15 @@ C++ programming language.")
            (substitute* "Makefile"
              (("^examples/schema1\\\\") "\\")
              (("^examples/valid1\\\\") "\\"))
-           #t)))))
+           #t))
+       (add-after 'install 'symlink-xmlstarlet
+         (lambda* (#:key outputs #:allow-other-keys)
+           ;; Other distros usually either rename or symlink the `xml' binary
+           ;; as `xmlstarlet', let's do it as well for compatibility.
+           (let* ((out (assoc-ref outputs "out"))
+                  (bin (string-append out "/bin")))
+             (symlink "xml" (string-append bin "/xmlstarlet"))
+             #t))))))
    (inputs
     `(("libxslt" ,libxslt)
       ("libxml2" ,libxml2)))
@@ -1392,6 +1522,42 @@ generating, manipulating, and validating XML documents using the DOM, SAX, and
 SAX2 APIs.")
     (license license:asl2.0)))
 
+(define-public xlsxio
+  (package
+    (name "xlsxio")
+    (version "0.2.29")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/brechtsanders/xlsxio")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0jr6ggzhd8aakdvppcl8scy9j9jafg82zbzr4ih996sz8lrj90fn"))))
+    (native-inputs
+     `(("expat" ,expat)
+       ("make" ,gnu-make)
+       ("minizip" ,minizip)
+       ("which" ,which)))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (delete 'check)
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (invoke "make" "install"
+                     (string-append
+                      "PREFIX=" (assoc-ref outputs "out"))))))))
+    (synopsis "C library for reading and writing .xlsx files")
+    (description "XLSX I/O aims to provide a C library for reading and writing
+.xlsx files.  The .xlsx file format is the native format used by Microsoft(R)
+Excel(TM) since version 2007.")
+    (home-page "https://github.com/brechtsanders/xlsxio")
+    (license license:expat)))
+
 (define-public java-simple-xml
   (package
     (name "java-simple-xml")
@@ -2049,7 +2215,7 @@ outputting XML data from Java code.")
 (define-public java-xstream
   (package
     (name "java-xstream")
-    (version "1.4.10")
+    (version "1.4.15")
     (source
      (origin
        (method git-fetch)
@@ -2061,7 +2227,7 @@ outputting XML data from Java code.")
                                   version)))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "12m2bw8bapdc1w0pni9wl5hh2y8jfdgcvxd464jl9917dsp3ai2n"))))
+        (base32 "1178qryrjwjp44439pi5dxzd32896r5zs429z1qhlc09951r7mi9"))))
     (build-system ant-build-system)
     (arguments
      `(#:jar-name "xstream.jar"
@@ -2124,6 +2290,95 @@ server using HTTP, and gets back the response as XML.  This library provides a
 modular implementation of XML-RPC for C and C++.")
     (license (list license:psfl license:expat))))
 
+(define-public opensp
+  (package
+    (name "opensp")
+    (version "1.5.2")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://sourceforge/openjade/opensp/"
+                                  version "/OpenSP-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1khpasr6l0a8nfz6kcf3s81vgdab8fm2dj291n5r2s53k228kx2p"))))
+    (outputs '("out" "doc"))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("docbook-xml" ,docbook-xml-4.1.2)
+       ("docbook-xsl" ,docbook-xsl)
+       ("libxml2" ,libxml2)             ;for XML_CATALOG_DIR
+       ("xmlto" ,xmlto)
+       ;; Dependencies to regenerate the 'configure' script.
+       ("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("gettext" ,gettext-minimal)
+       ("libtool" ,libtool)))
+    (arguments
+     `( ;; Note: we cannot use '--enable-full-doc-build' as this would require
+       ;; Openjade, which in turn requires this package.
+
+       ;; Skip the tests that are known to fail (see:
+       ;; https://sourceforge.net/p/openjade/mailman/message/6182316/)
+       #:make-flags '("TESTS_THAT_FAIL=")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-docbook-paths
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
+                                          "/xml/dtd/docbook"))
+                   (xsldoc (string-append (assoc-ref inputs "docbook-xsl")
+                                          "/xml/xsl/docbook-xsl-"
+                                          ,(package-version docbook-xsl))))
+               (substitute* (find-files "docsrc" "\\.xml$")
+                 (("/usr/share/sgml/docbook/xml-dtd-4.1.2") xmldoc)
+                 (("http://.*/docbookx\\.dtd")
+                  (string-append xmldoc "/docbookx.dtd")))
+               #t)))
+         (add-after 'patch-docbook-paths 'delete-configure
+           ;; The configure script in the release was made with an older
+           ;; Autoconf and lacks support for the `--docdir' option.
+           (lambda _
+             (delete-file "configure")
+             #t))
+         (add-after 'delete-configure 'honor-docdir
+           ;; docdir is not honored due to being hardcoded in the various
+           ;; Makefile.am (see: https://sourceforge.net/p/openjade/bugs/147/).
+           (lambda _
+             (substitute* '("Makefile.am" "doc/Makefile.am" "docsrc/Makefile.am")
+               (("^docdir = .*") "docdir = @docdir@\n"))
+             #t))
+         (add-after 'delete-configure 'fix-tests-makefile.am
+           ;; Remove the trailing $(SHELL) from the TESTS_ENVIRONMENT variable
+           ;; definition. Otherwise, when targets are built using
+           ;; "$(am__check_pre) $(LOG_DRIVER) [...]", there would be two
+           ;; $(SHELL) expansion which fails the build.
+           (lambda _
+             (substitute* "tests/Makefile.am"
+               (("^\tOSGMLNORM=`echo osgmlnorm\\|sed '\\$\\(transform\\)'`\\\\")
+                "\tOSGMLNORM=`echo osgmlnorm|sed '$(transform)'`")
+               (("^\t\\$\\(SHELL\\)\n") ""))
+             #t)))))
+    ;; $SGML_CATALOG_FILES lists 'catalog' or 'CATALOG' or '*.cat' files found
+    ;; under the 'sgml' sub-directory of any given package.
+    (native-search-paths (list (search-path-specification
+                                (variable "SGML_CATALOG_FILES")
+                                (separator ":")
+                                (files '("sgml"))
+                                (file-pattern "^catalog$|^CATALOG$|^.*\\.cat$")
+                                (file-type 'regular))))
+    (home-page "http://openjade.sourceforge.net/")
+    (synopsis "Suite of SGML/XML processing tools")
+    (description "OpenSP is an object-oriented toolkit for SGML parsing and
+entity management.  It is a fork of James Clark's SP suite.  The tools it
+contains can be used to parse, validate, and normalize SGML and XML files.
+The central program included in this package is @code{onsgmls}, which replaces
+@code{sgmls}, @code{ospam}, @code{ospent}, @code{osgmlnorm}, and @code{osx}.")
+    (license
+     ;; expat license with added clause regarding advertising
+     (license:non-copyleft
+      "file://COPYING"
+      "See COPYING in the distribution."))))
+
 (define-public python-elementpath
   (package
     (name "python-elementpath")
diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm
index 9dc9fc1e7c..900f6c925d 100644
--- a/gnu/packages/xorg.scm
+++ b/gnu/packages/xorg.scm
@@ -6,15 +6,15 @@
 ;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr>
 ;;; Copyright © 2016 Mathieu Lirzin <mthl@gnu.org>
 ;;; Copyright © 2015 Cyrill Schenkel <cyrill.schenkel@gmail.com>
-;;; Copyright © 2016, 2017, 2019 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2017, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016 Nikita <nikita@n0.is>
 ;;; Copyright © 2016 Alex Kost <alezost@gmail.com>
 ;;; Copyright © 2016 David Craven <david@craven.ch>
 ;;; Copyright © 2016, 2017 John Darrington <jmd@gnu.org>
-;;; Copyright © 2017, 2018, 2019 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2017, 2018, 2019, 2020 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2017, 2018, 2019 Rutger Helling <rhelling@mykolab.com>
 ;;; Copyright © 2017, 2020 Arun Isaac <arunisaac@systemreboot.net>
-;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Kei Kebreau <kkebreau@posteo.net>
 ;;; Copyright © 2018, 2020 Oleg Pykhalov <go.wigust@gmail.com>
 ;;; Copyright © 2018 Benjamin Slade <slade@jnanam.net>
@@ -23,7 +23,7 @@
 ;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
 ;;; Copyright © 2020 Leo Prikler <leo.prikler@student.tugraz.at>
 ;;; Copyright © 2020 Florian Pelz <pelzflorian@pelzflorian.de>
-;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
+;;; Copyright © 2020, 2021 Michael Rohleder <mike@rohleder.de>
 ;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2020 Jean-Baptiste Note <jean-baptiste.note@m4x.org>
 ;;;
@@ -2466,7 +2466,7 @@ XC-APPGROUP, XTEST.")
 (define-public libevdev
   (package
     (name "libevdev")
-    (version "1.8.0")
+    (version "1.9.1")
     (source
      (origin
        (method url-fetch)
@@ -2474,21 +2474,10 @@ XC-APPGROUP, XTEST.")
                            name "-" version ".tar.xz"))
        (sha256
         (base32
-         "04a2klvii0in9ln8r85mk2cm73jq8ry2m3yzmf2z8xyjxzjcmlr0"))))
+         "1jvsphdrs1i54ccjcn6ll26jy42am7h28lbsvwa6pmxgqm43qq7m"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:configure-flags '("--disable-static")
-       #:phases (modify-phases %standard-phases
-                  (add-before 'configure 'pedantry
-                    (lambda _
-                      ;; XXX: libevdev includes kernel headers, which causes this
-                      ;; compile test to fail with:
-                      ;; ...-headers-4.14.67/include/asm-generic/posix_types.h:88:14:
-                      ;;error: ISO C90 does not support ‘long long’ [-Werror=long-long]
-                      (substitute* "test/Makefile.in"
-                        (("-pedantic -Werror -std=c89")
-                         "-pedantic -Werror -std=c99"))
-                      #t)))))
+     `(#:configure-flags '("--disable-static")))
     (native-inputs `(("python" ,python)))
     (home-page "https://www.freedesktop.org/wiki/Software/libevdev/")
     (synopsis "Wrapper library for evdev devices")
@@ -2539,7 +2528,7 @@ including most mice, keyboards, tablets and touchscreens.")
 (define-public xf86-input-libinput
   (package
     (name "xf86-input-libinput")
-    (version "0.28.2")
+    (version "0.30.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -2547,7 +2536,7 @@ including most mice, keyboards, tablets and touchscreens.")
                     name "-" version ".tar.bz2"))
               (sha256
                (base32
-                "0818vr0yhk9j1y1wcbxzcd458vrvp06rrhi8k43bhqkb5jb4dcxq"))))
+                "1h4np66p87jf0c85ig524w8f5rbhl5gx8fww1qg0c55f87yzkizr"))))
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags
@@ -2714,14 +2703,14 @@ as USB mice.")
 (define-public xf86-video-amdgpu
   (package
     (name "xf86-video-amdgpu")
-    (version "19.0.1")
+    (version "19.1.0")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://xorg/individual/driver/"
                            "xf86-video-amdgpu-" version ".tar.bz2"))
        (sha256
-        (base32 "1mf6s7i423b2xyl469kwnakrpp5fr41sm8hh7vli5jxdd8crg8da"))))
+        (base32 "0pgy4ihnja0vm8504qw7qxh3pdpa3p9k6967nz15m6b1mvha83jg"))))
     (build-system gnu-build-system)
     (inputs `(("xorg-server" ,xorg-server)))
     (native-inputs `(("pkg-config" ,pkg-config)))
@@ -2781,20 +2770,19 @@ X server.")
 (define-public xf86-video-ati
   (package
     (name "xf86-video-ati")
-    (version "19.0.1")
+    (version "19.1.0")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://xorg/individual/driver/"
                            "xf86-video-ati-" version ".tar.bz2"))
        (sha256
-        (base32 "1c31g5q5p3nk9nscwikh1vvfnhdwsxiw7j8v678nlm34hrfh3djw"))))
+        (base32 "0j9w4axsqlycv4v14g53xyhkm9h7d27b2fcv9lrzb9gf54b5m7v5"))))
     (build-system gnu-build-system)
     (inputs `(("mesa" ,mesa)
               ("xorgproto" ,xorgproto)
               ("xorg-server" ,xorg-server)))
     (native-inputs `(("pkg-config" ,pkg-config)))
-    (arguments `(#:configure-flags `("--disable-glamor"))) ; TODO: Enable glamor
     (home-page "https://www.x.org/wiki/")
     (synopsis "ATI Radeon video driver for X server")
     (description
@@ -2920,18 +2908,14 @@ It supports a variety of Adreno graphics chipsets.")
 (define-public xf86-video-geode
   (package
     (name "xf86-video-geode")
-    (version "2.11.19")
+    (version "2.11.20")
     (source
-      (origin
-        (method url-fetch)
-        (uri (string-append
-               "mirror://xorg/individual/driver/xf86-video-geode-"
-               version
-               ".tar.bz2"))
-        (sha256
-          (base32
-           "0zn9gb49grds5mcs1dlrx241k2w1sgqmx4i5x7v6159xxqhlqsf6"))
-        (patches (search-patches "xf86-video-geode-glibc-2.20.patch"))))
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://xorg/individual/driver/xf86-video-geode-"
+                           version ".tar.bz2"))
+       (sha256
+        (base32 "0r2dz0agg0k5wrqdbicji6mh6svzyl0xgqk76hpcfdlzn2zx15zl"))))
     (build-system gnu-build-system)
     (inputs `(("xorg-server" ,xorg-server)))
     (native-inputs `(("pkg-config" ,pkg-config)))
@@ -3028,8 +3012,8 @@ X server.")
 
 
 (define-public xf86-video-intel
-  (let ((commit "5ca3ac1a90af177eb111a965e9b4dd8a27cc58fc")
-        (revision "16"))
+  (let ((commit "ad5540f6ecaec287c70259f0181e613561b716f6")
+        (revision "17"))
     (package
       (name "xf86-video-intel")
       (version (git-version "2.99.917" revision commit))
@@ -3042,7 +3026,7 @@ X server.")
                (commit commit)))
          (sha256
           (base32
-           "1y1v6cp3r3isq3bc7mypkvypwjygi205k06slmidx2q3sz4h4mjc"))
+           "09jdg5wrq708wc83027337qvdjb96827h7sjwjfl5ffiynfpwl95"))
          (file-name (git-file-name name version))))
       (build-system gnu-build-system)
       (inputs `(("mesa" ,mesa)
@@ -3368,7 +3352,7 @@ Xorg X server.")
 (define-public xf86-video-sis
   (package
     (name "xf86-video-sis")
-    (version "0.10.9")
+    (version "0.12.0")
     (source
       (origin
         (method url-fetch)
@@ -3376,16 +3360,15 @@ Xorg X server.")
                "mirror://xorg/individual/driver/xf86-video-sis-"
                version
                ".tar.bz2"))
-        (patches (search-patches "xf86-video-sis-xorg-compat.patch"))
         (sha256
-          (base32
-           "03f1abjjf68y8y1iz768rn95va9d33wmbwfbsqrgl6k0gi0bf9jj"))))
+         (base32
+          "0nrs6cjldlhakx5987fiiggjrlzilsbdc7l9pz22x1iwslbkz78i"))))
     (build-system gnu-build-system)
     (inputs `(("mesa" ,mesa)
               ("xorgproto" ,xorgproto)
               ("xorg-server" ,xorg-server)))
     (native-inputs
-      `(("pkg-config" ,pkg-config)))
+     `(("pkg-config" ,pkg-config)))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Sis video driver for X server")
     (description
@@ -4038,7 +4021,7 @@ extension to the X11 protocol.  It includes:
 (define-public xkeyboard-config
   (package
     (name "xkeyboard-config")
-    (version "2.29")
+    (version "2.31")
     (source
       (origin
         (method url-fetch)
@@ -4048,7 +4031,7 @@ extension to the X11 protocol.  It includes:
               ".tar.bz2"))
         (sha256
           (base32
-            "00hqc8nykvy8c09b8vab64dcd0ij3n5klxjn6rl00q7hickpah8x"))))
+            "18xddaxh83zm698syh50w983jg6b7b8zgv0dfaf7ha485hgihi6s"))))
     (build-system gnu-build-system)
     (inputs
       `(("libx11" ,libx11)
@@ -5326,8 +5309,7 @@ over Xlib, including:
 (define-public xorg-server
   (package
     (name "xorg-server")
-    (version "1.20.8")
-    (replacement xorg-server/fixed)
+    (version "1.20.10")
     (source
       (origin
         (method url-fetch)
@@ -5335,7 +5317,7 @@ over Xlib, including:
                             "xorg-server-" version ".tar.bz2"))
         (sha256
          (base32
-          "0ih15m7gh1z1ly6z7g82bkni719yisqmbk61a1wgp82bxrmn8yyi"))
+          "16bwrf0ag41l7jbrllbix8z6avc5yimga7ihvq4ch3a5hb020x4p"))
         (patches
          (list
           ;; See:
@@ -5451,32 +5433,22 @@ communicates with the user via graphical controls such as buttons and
 draggable titlebars and borders.")
     (license license:x11)))
 
-(define xorg-server/fixed  ; Fixes CVE-2020-14347
-  (package
-    (inherit xorg-server)
-    (source
-     (origin
-       (inherit (package-source xorg-server))
-       (patches
-        (append (origin-patches (package-source xorg-server))
-                (search-patches "xorg-server-CVE-2020-14347.patch")))))))
-
 ;; This package is intended to be used when building GTK+.
 ;; Note: It's currently marked as "hidden" to avoid having two non-eq?
 ;; packages with the same name and version.
-;; TODO: Update this in the next rebuild cycle.
+;; TODO: Inherit source from xorg-server in a future rebuild cycle.
 (define-public xorg-server-for-tests
   (hidden-package
    (package
      (inherit xorg-server)
-     (version "1.20.7")
+     (version "1.20.9")
      (source (origin
                (inherit (package-source xorg-server))
                (uri (string-append "mirror://xorg/individual/xserver/"
                                    "xorg-server-" version ".tar.bz2"))
                (sha256
                 (base32
-                 "18bfl04ihw1jr3h0fs522nnxxq5ixjay77y9dcymnkzk23q8cndx")))))))
+                 "0w9mrnffvjgmwi50kln15i8rpdskxv97r78l75wlcmg4vzhg46g2")))))))
 
 (define-public xorg-server-xwayland
   (package/inherit xorg-server
@@ -5793,7 +5765,7 @@ The XCB util module provides the following libraries:
       `(("autoconf" ,autoconf)
         ("automake" ,automake)
         ("libtool" ,libtool)
-        ("python-2" ,python-2)
+        ("python" ,python-wrapper)
         ("pkg-config" ,pkg-config)))
      (arguments
       `(#:phases
@@ -6113,17 +6085,17 @@ to answer a question.  Xmessage can also exit after a specified time.")
 (define-public xterm
   (package
     (name "xterm")
-    (version "358")
-    (source (origin
-              (method url-fetch)
-              (uri (list
-                    (string-append "http://invisible-mirror.net/archives/xterm/"
-                                   "xterm-" version ".tgz")
-                    (string-append "ftp://ftp.invisible-island.net/xterm/"
-                                   "xterm-" version ".tgz")))
-              (sha256
-               (base32
-                "0yxzdwchfvkq784qadxalnbnxr4k2hdgli9w1dq9j2lic9li1nvw"))))
+    (version "363")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (list
+             (string-append "https://invisible-mirror.net/archives/xterm/"
+                            "xterm-" version ".tgz")
+             (string-append "ftp://ftp.invisible-island.net/xterm/"
+                            "xterm-" version ".tgz")))
+       (sha256
+        (base32 "0j0bl5z3kmhahf770mbrj2zwm2nvxkhqpwnwbdvbclk5w8wkc6nq"))))
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags '("--enable-wide-chars" "--enable-load-vt-fonts"
@@ -6307,14 +6279,14 @@ basic eye-candy effects.")
 (define-public xpra
   (package
     (name "xpra")
-    (version "4.0.3")
+    (version "4.0.6")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://www.xpra.org/src/xpra-"
                            version ".tar.xz"))
        (sha256
-        (base32 "05afdspf51fbya6jg6971i3ddqn8p4mg3v3aaqyi3chx4q1807rp"))
+        (base32 "1s49y2s75a8a70vj0micnmpic5zv1n32yjxy8fkxsqa6j5njyrww"))
        (patches (search-patches "xpra-4.0.1-systemd-run.patch"))))
     (build-system python-build-system)
     ;; see also http://xpra.org/trac/wiki/Dependencies
@@ -6341,8 +6313,11 @@ basic eye-candy effects.")
               ("xf86-input-keyboard" ,xf86-input-keyboard)
               ("python-pillow" ,python-pillow)
               ;; Optional dependencies.
+              ("libx264" ,libx264)
+              ("x265" ,x265)
+              ("libvpx" ,libvpx)
               ("python-rencode" ,python-rencode) ; For speed.
-              ("python-numpy", python-numpy)
+              ("python-numpy" ,python-numpy)
               ("python-pyopengl" ,python-pyopengl) ; Drawing acceleration.
               ("python-pyopengl-accelerate" ,python-pyopengl-accelerate) ; Same.
               ("python-paramiko" ,python-paramiko) ; Tunneling over SSH.
@@ -6670,7 +6645,7 @@ output.")
 (define-public console-setup
   (package
     (name "console-setup")
-    (version "1.196")
+    (version "1.197")
     (source
      (origin
        (method git-fetch)
@@ -6678,7 +6653,7 @@ output.")
              (url "https://salsa.debian.org/installer-team/console-setup.git")
              (commit version)))
        (sha256
-        (base32 "0c79rycgpna8910as6blw3z3sajzzakz4qlvr6js2yr8zq2d0ylg"))
+        (base32 "0m2q30f94vd1wb2zqpiyplpgfchjlm8j41xiyxcqdjzdgqbs7l27"))
        (file-name (git-file-name name version))))
     (build-system gnu-build-system)
     (arguments
@@ -6727,7 +6702,7 @@ output.")
     (synopsis "Set up the Linux console font and keyboard")
     (description
      "console-setup provides the console with the same keyboard
-configuration scheme that X Window System has.  In particular, the
+configuration scheme that the X Window System has.  In particular, the
 @command{ckbcomp} program compiles an XKB keyboard description to a keymap
 suitable for @command{loadkeys} or @command{kbdcontrol}.  As a result, there
 is no need to duplicate or change the console keyboard files just to make
diff --git a/gnu/packages/zile.scm b/gnu/packages/zile.scm
index 2718232e27..6169815520 100644
--- a/gnu/packages/zile.scm
+++ b/gnu/packages/zile.scm
@@ -2,7 +2,7 @@
 ;;; Copyright © 2012, 2013, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -42,14 +42,14 @@
 (define-public zile
   (package
     (name "zile")
-    (version "2.4.14")
+    (version "2.4.15")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://gnu/zile/zile-"
                                  version ".tar.gz"))
              (sha256
               (base32
-               "0x3byaddms8l3g7igx6njycqsq98wgapysdb5c7lhcnajlkp8y3s"))))
+               "0ph3wd0cz3ysdyka6ds2w5l5b89mb5l79kwkfyk7phvq9yih1hrr"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
diff --git a/gnu/services.scm b/gnu/services.scm
index 11ba21e824..13259dfaee 100644
--- a/gnu/services.scm
+++ b/gnu/services.scm
@@ -461,7 +461,12 @@ channels in use and CONFIG-FILE, if it is true."
 
   (mbegin %store-monad
     (let ((config-file (cond ((string? config-file)
-                              (local-file config-file "configuration.scm"))
+                              ;; CONFIG-FILE has been passed typically via
+                              ;; 'guix system reconfigure CONFIG-FILE' so we
+                              ;; can assume it's valid: tell 'local-file' to
+                              ;; not emit a warning.
+                              (local-file (assume-valid-file-name config-file)
+                                          "configuration.scm"))
                              ((not config-file)
                               #f)
                              (else
@@ -783,7 +788,13 @@ executables, making them setuid-root.")))
 
 (define (packages->profile-entry packages)
   "Return a system entry for the profile containing PACKAGES."
-  (with-monad %store-monad
+  ;; 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
                                      (delete-duplicates packages eq?)))))))))
diff --git a/gnu/services/admin.scm b/gnu/services/admin.scm
index 6ed3de9423..b34b990f32 100644
--- a/gnu/services/admin.scm
+++ b/gnu/services/admin.scm
@@ -49,6 +49,7 @@
             unattended-upgrade-service-type
             unattended-upgrade-configuration
             unattended-upgrade-configuration?
+            unattended-upgrade-configuration-operating-system-file
             unattended-upgrade-configuration-channels
             unattended-upgrade-configuration-schedule
             unattended-upgrade-configuration-services-to-restart
@@ -198,6 +199,8 @@ Old log files are removed or compressed according to the configuration.")
 (define-record-type* <unattended-upgrade-configuration>
   unattended-upgrade-configuration make-unattended-upgrade-configuration
   unattended-upgrade-configuration?
+  (operating-system-file unattended-upgrade-operating-system-file
+                         (default "/run/current-system/configuration.scm"))
   (schedule             unattended-upgrade-configuration-schedule
                         (default "30 01 * * 0"))
   (channels             unattended-upgrade-configuration-channels
@@ -228,6 +231,9 @@ Old log files are removed or compressed according to the configuration.")
   (define expiration
     (unattended-upgrade-system-expiration config))
 
+  (define config-file
+    (unattended-upgrade-operating-system-file config))
+
   (define code
     (with-imported-modules (source-module-closure '((guix build utils)
                                                     (gnu services herd)))
@@ -249,13 +255,6 @@ Old log files are removed or compressed according to the configuration.")
                     (timestamp))
             (exit 1))
 
-          (define-syntax-rule (with-logging exp ...)
-            (with-output-to-port log
-              (lambda ()
-                (with-error-to-port log
-                  (lambda ()
-                    exp ...)))))
-
           ;; 'guix time-machine' needs X.509 certificates to authenticate the
           ;; Git host.
           (setenv "SSL_CERT_DIR"
@@ -265,30 +264,32 @@ Old log files are removed or compressed according to the configuration.")
           (sigaction SIGALRM alarm-handler)
           (alarm #$(unattended-upgrade-maximum-duration config))
 
-          (with-logging
-           (format #t "~a starting upgrade...~%" (timestamp))
-           (guard (c ((invoke-error? c)
-                      (report-invoke-error c)))
-             (invoke #$(file-append guix "/bin/guix")
-                     "time-machine" "-C" #$channels
-                     "--" "system" "reconfigure"
-                     "/run/current-system/configuration.scm")
-
-             ;; 'guix system delete-generations' fails when there's no
-             ;; matching generation.  Thus, catch 'invoke-error?'.
-             (guard (c ((invoke-error? c)
-                        (report-invoke-error c)))
-               (invoke #$(file-append guix "/bin/guix")
-                       "system" "delete-generations"
-                       #$(string-append (number->string expiration)
-                                        "s")))
-
-             (format #t "~a restarting services...~%" (timestamp))
-             (for-each restart-service '#$services)
-
-             ;; XXX: If 'mcron' has been restarted, perhaps this isn't
-             ;; reached.
-             (format #t "~a upgrade complete~%" (timestamp)))))))
+          ;; Redirect stdout/stderr to LOG to save the output of 'guix' below.
+          (redirect-port log (current-output-port))
+          (redirect-port log (current-error-port))
+
+          (format #t "~a starting upgrade...~%" (timestamp))
+          (guard (c ((invoke-error? c)
+                     (report-invoke-error c)))
+            (invoke #$(file-append guix "/bin/guix")
+                    "time-machine" "-C" #$channels
+                    "--" "system" "reconfigure" #$config-file)
+
+            ;; 'guix system delete-generations' fails when there's no
+            ;; matching generation.  Thus, catch 'invoke-error?'.
+            (guard (c ((invoke-error? c)
+                       (report-invoke-error c)))
+              (invoke #$(file-append guix "/bin/guix")
+                      "system" "delete-generations"
+                      #$(string-append (number->string expiration)
+                                       "s")))
+
+            (format #t "~a restarting services...~%" (timestamp))
+            (for-each restart-service '#$services)
+
+            ;; XXX: If 'mcron' has been restarted, perhaps this isn't
+            ;; reached.
+            (format #t "~a upgrade complete~%" (timestamp))))))
 
   (define upgrade
     (program-file "unattended-upgrade" code))
diff --git a/gnu/services/audio.scm b/gnu/services/audio.scm
index 37f2efa479..c60053f33c 100644
--- a/gnu/services/audio.scm
+++ b/gnu/services/audio.scm
@@ -1,6 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2017 Peter Mikkelsen <petermikkelsen10@gmail.com>
 ;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2020 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -21,6 +22,8 @@
   #:use-module (guix gexp)
   #:use-module (gnu services)
   #:use-module (gnu services shepherd)
+  #:use-module (gnu system shadow)
+  #:use-module (gnu packages admin)
   #:use-module (gnu packages mpd)
   #:use-module (guix records)
   #:use-module (ice-9 match)
@@ -135,19 +138,19 @@ audio_output {
 (define (mpd-shepherd-service config)
   (shepherd-service
    (documentation "Run the MPD (Music Player Daemon)")
+   (requirement '(user-processes))
    (provision '(mpd))
    (start #~(make-forkexec-constructor
              (list #$(file-append mpd "/bin/mpd")
                    "--no-daemon"
                    #$(mpd-config->file config))
-             #:pid-file #$(mpd-file-name config "pid")
              #:environment-variables
              ;; Required to detect PulseAudio when run under a user account.
-             '(#$(string-append
-                   "XDG_RUNTIME_DIR=/run/user/"
-                   (number->string
+             (list (string-append
+                    "XDG_RUNTIME_DIR=/run/user/"
+                    (number->string
                      (passwd:uid
-                       (getpwnam (mpd-configuration-user config))))))
+                      (getpwnam #$(mpd-configuration-user config))))))
              #:log-file #$(mpd-file-name config "log")))
    (stop  #~(make-kill-destructor))))
 
@@ -158,9 +161,29 @@ audio_output {
         (define %user
           (getpw #$(mpd-configuration-user config)))
 
-        (let ((directory #$(mpd-file-name config "")))
+        (let ((directory #$(mpd-file-name config ".mpd")))
           (mkdir-p directory)
-          (chown directory (passwd:uid %user) (passwd:gid %user))))))
+          (chown directory (passwd:uid %user) (passwd:gid %user))
+
+          ;; Make /var/run/mpd/USER user-owned as well.
+          (chown (dirname directory)
+                 (passwd:uid %user) (passwd:gid %user))))))
+
+
+(define %mpd-accounts
+  ;; Default account and group for MPD.
+  (list (user-group (name "mpd") (system? #t))
+        (user-account
+         (name "mpd")
+         (group "mpd")
+         (system? #t)
+         (comment "Music Player Daemon (MPD) user")
+
+         ;; Note: /var/run/mpd hosts one sub-directory per user, of which
+         ;; /var/run/mpd/mpd corresponds to the "mpd" user.
+         (home-directory "/var/run/mpd/mpd")
+
+         (shell (file-append shadow "/sbin/nologin")))))
 
 (define mpd-service-type
   (service-type
@@ -169,6 +192,8 @@ audio_output {
    (extensions
     (list (service-extension shepherd-root-service-type
                              (compose list mpd-shepherd-service))
+          (service-extension account-service-type
+                             (const %mpd-accounts))
           (service-extension activation-service-type
                              mpd-service-activation)))
    (default-value (mpd-configuration))))
diff --git a/gnu/services/avahi.scm b/gnu/services/avahi.scm
index 54656708ca..7812191cb2 100644
--- a/gnu/services/avahi.scm
+++ b/gnu/services/avahi.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -130,7 +130,7 @@
     (list (shepherd-service
            (documentation "Run the Avahi mDNS/DNS-SD responder.")
            (provision '(avahi-daemon))
-           (requirement '(dbus-system networking))
+           (requirement '(user-processes dbus-system networking))
 
            (start #~(make-forkexec-constructor
                      (list #$(file-append avahi "/sbin/avahi-daemon")
diff --git a/gnu/services/base.scm b/gnu/services/base.scm
index 491f35702a..f6a490f712 100644
--- a/gnu/services/base.scm
+++ b/gnu/services/base.scm
@@ -1,7 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2015, 2016 Alex Kost <alezost@gmail.com>
-;;; Copyright © 2015, 2016 Mark H Weaver <mhw@netris.org>
+;;; Copyright © 2015, 2016, 2020 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
 ;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2016 David Craven <david@craven.ch>
@@ -62,7 +62,8 @@
   #:use-module (srfi srfi-26)
   #:use-module (ice-9 match)
   #:use-module (ice-9 format)
-  #:re-export (user-processes-service-type)       ;backwards compatibility
+  #:re-export (user-processes-service-type        ;backwards compatibility
+               %default-substitute-urls)
   #:export (fstab-service-type
             root-file-system-service
             file-system-service-type
@@ -106,6 +107,12 @@
             agetty-service-type
 
             mingetty-configuration
+            mingetty-configuration-tty
+            mingetty-configuration-auto-login
+            mingetty-configuration-login-program
+            mingetty-configuration-login-pause?
+            mingetty-configuration-clear-on-logout?
+            mingetty-configuration-mingetty
             mingetty-configuration?
             mingetty-service
             mingetty-service-type
@@ -272,7 +279,9 @@ system objects.")))
 
 (define root-file-system-service-type
   (shepherd-service-type 'root-file-system
-                         (const %root-file-system-shepherd-service)))
+                         (const %root-file-system-shepherd-service)
+                         (description "Take care of syncing the root file
+system and of remounting it read-only when the system shuts down.")))
 
 (define (root-file-system-service)
   "Return a service whose sole purpose is to re-mount read-only the root file
@@ -291,7 +300,8 @@ FILE-SYSTEM."
 (define (mapped-device->shepherd-service-name md)
   "Return the symbol that denotes the shepherd service of MD, a <mapped-device>."
   (symbol-append 'device-mapping-
-                 (string->symbol (mapped-device-target md))))
+                 (string->symbol (string-join
+                                  (mapped-device-targets md) "-"))))
 
 (define dependency->shepherd-service-name
   (match-lambda
@@ -562,7 +572,9 @@ down.")))
         (requirement '(udev))
         (provision '(trng))
         (start #~(make-forkexec-constructor '#$rngd-command))
-        (stop #~(make-kill-destructor))))))
+        (stop #~(make-kill-destructor))))
+    (description "Run the @command{rngd} random number generation daemon to
+supply entropy to the kernel's pool.")))
 
 (define* (rngd-service #:key
                        (rng-tools rng-tools)
@@ -589,7 +601,8 @@ to add @var{device} to the kernel's entropy pool.  The service will fail if
       (provision '(host-name))
       (start #~(lambda _
                  (sethostname #$name)))
-      (one-shot? #t)))))
+      (one-shot? #t)))
+   (description "Initialize the machine's host name.")))
 
 (define (host-name-service name)
   "Return a service that sets the host name to @var{name}."
@@ -618,7 +631,8 @@ to add @var{device} to the kernel's entropy pool.  The service will fail if
                          (display 1 port))))
                    #t))
         (stop #~(const #f)))))
-   #t))                                           ;default to UTF-8
+   #t                                             ;default to UTF-8
+   (description "Ensure the Linux virtual terminals run in UTF-8 mode.")))
 
 (define console-keymap-service-type
   (shepherd-service-type
@@ -630,7 +644,10 @@ to add @var{device} to the kernel's entropy pool.  The service will fail if
       (start #~(lambda _
                  (zero? (system* #$(file-append kbd "/bin/loadkeys")
                                  #$@files))))
-      (respawn? #f)))))
+      (respawn? #f)))
+   (description "@emph{This service is deprecated in favor of the
+@code{keyboard-layout} field of @code{operating-system}.}  Load the given list
+of console keymaps with @command{loadkeys}.")))
 
 (define-deprecated (console-keymap-service #:rest files)
   #f
@@ -1024,20 +1041,22 @@ the tty to run, among other things."
 (define-record-type* <mingetty-configuration>
   mingetty-configuration make-mingetty-configuration
   mingetty-configuration?
-  (mingetty       mingetty-configuration-mingetty ;<package>
-                  (default mingetty))
-  (tty            mingetty-configuration-tty)     ;string
-  (auto-login     mingetty-auto-login             ;string | #f
-                  (default #f))
-  (login-program  mingetty-login-program          ;gexp
-                  (default #f))
-  (login-pause?   mingetty-login-pause?           ;Boolean
-                  (default #f)))
+  (mingetty         mingetty-configuration-mingetty ;<package>
+                    (default mingetty))
+  (tty              mingetty-configuration-tty)     ;string
+  (auto-login       mingetty-auto-login             ;string | #f
+                    (default #f))
+  (login-program    mingetty-login-program          ;gexp
+                    (default #f))
+  (login-pause?     mingetty-login-pause?           ;Boolean
+                    (default #f))
+  (clear-on-logout? mingetty-clear-on-logout?       ;Boolean
+                    (default #t)))
 
 (define mingetty-shepherd-service
   (match-lambda
     (($ <mingetty-configuration> mingetty tty auto-login login-program
-                                 login-pause?)
+                                 login-pause? clear-on-logout?)
      (list
       (shepherd-service
        (documentation "Run mingetty on an tty.")
@@ -1050,7 +1069,6 @@ the tty to run, among other things."
 
        (start  #~(make-forkexec-constructor
                   (list #$(file-append mingetty "/sbin/mingetty")
-                        "--noclear"
 
                         ;; Avoiding 'vhangup' allows us to avoid 'setfont'
                         ;; errors down the path where various ioctls get
@@ -1058,6 +1076,9 @@ the tty to run, among other things."
                         ;; in Linux.
                         "--nohangup" #$tty
 
+                        #$@(if clear-on-logout?
+                               #~()
+                               #~("--noclear"))
                         #$@(if auto-login
                                #~("--autologin" #$auto-login)
                                #~())
@@ -1329,7 +1350,9 @@ Service Switch}, for an example."
                          (pid  (spawn)))
                      (umask mask)
                      pid))))
-      (stop #~(make-kill-destructor))))))
+      (stop #~(make-kill-destructor))))
+   (description "Run the syslog daemon, @command{syslogd}, which is
+responsible for logging system messages.")))
 
 ;; Snippet adapted from the GNU inetutils manual.
 (define %default-syslog.conf
@@ -1476,10 +1499,18 @@ archive' public keys, with GUIX."
     #~(begin
         (use-modules (guix build utils))
 
-        (unless (file-exists? "/etc/guix/acl")
-          (mkdir-p "/etc/guix")
-          (copy-file #+default-acl "/etc/guix/acl")
-          (chmod "/etc/guix/acl" #o600)))))
+        ;; If the ACL already exists, move it out of the way.  Create a backup
+        ;; if it's a regular file: it's likely that the user manually updated
+        ;; it with 'guix archive --authorize'.
+        (if (file-exists? "/etc/guix/acl")
+            (if (and (symbolic-link? "/etc/guix/acl")
+                     (store-file-name? (readlink "/etc/guix/acl")))
+                (delete-file "/etc/guix/acl")
+                (rename-file "/etc/guix/acl" "/etc/guix/acl.bak"))
+            (mkdir-p "/etc/guix"))
+
+        ;; Installed the declared ACL.
+        (symlink #+default-acl "/etc/guix/acl"))))
 
 (define %default-authorized-guix-keys
   ;; List of authorized substitute keys.
@@ -1510,6 +1541,8 @@ archive' public keys, with GUIX."
                     (default 0))
   (log-compression  guix-configuration-log-compression
                     (default 'bzip2))
+  (discover?        guix-configuration-discover?
+                    (default #f))
   (extra-options    guix-configuration-extra-options ;list of strings
                     (default '()))
   (log-file         guix-configuration-log-file   ;string
@@ -1546,69 +1579,118 @@ proxy of 'guix-daemon'...~%")
                     (environ environment)
                     #t)))))
 
+(define shepherd-discover-action
+  ;; Shepherd action to enable or disable substitute servers discovery.
+  (shepherd-action
+   (name 'discover)
+   (documentation
+    "Enable or disable substitute servers discovery and restart the
+'guix-daemon'.")
+   (procedure #~(lambda* (_ status)
+                  (let ((environment (environ)))
+                    (if (and status
+                             (string=? status "on"))
+                        (begin
+                          (format #t "enable substitute servers discovery~%")
+                          (setenv "discover" "on"))
+                        (begin
+                          (format #t "disable substitute servers discovery~%")
+                          (unsetenv "discover")))
+                    (action 'guix-daemon 'restart)
+                    (environ environment)
+                    #t)))))
+
 (define (guix-shepherd-service config)
   "Return a <shepherd-service> for the Guix daemon service with CONFIG."
   (match-record config <guix-configuration>
     (guix build-group build-accounts authorize-key? authorized-keys
           use-substitutes? substitute-urls max-silent-time timeout
-          log-compression extra-options log-file http-proxy tmpdir
-          chroot-directories)
+          log-compression discover? extra-options log-file
+          http-proxy tmpdir chroot-directories)
     (list (shepherd-service
            (documentation "Run the Guix daemon.")
            (provision '(guix-daemon))
            (requirement '(user-processes))
-           (actions (list shepherd-set-http-proxy-action))
-           (modules '((srfi srfi-1)))
+           (actions (list shepherd-set-http-proxy-action
+                          shepherd-discover-action))
+           (modules '((srfi srfi-1)
+                      (ice-9 match)
+                      (gnu build shepherd)))
            (start
-            #~(lambda _
-                (define proxy
-                  ;; HTTP/HTTPS proxy.  The 'http_proxy' variable is set by
-                  ;; the 'set-http-proxy' action.
-                  (or (getenv "http_proxy") #$http-proxy))
-
-                (fork+exec-command
-                 (cons* #$(file-append guix "/bin/guix-daemon")
-                        "--build-users-group" #$build-group
-                        "--max-silent-time" #$(number->string max-silent-time)
-                        "--timeout" #$(number->string timeout)
-                        "--log-compression" #$(symbol->string log-compression)
-                        #$@(if use-substitutes?
-                               '()
-                               '("--no-substitutes"))
-                        "--substitute-urls" #$(string-join substitute-urls)
-                        #$@extra-options
-
-                        ;; Add CHROOT-DIRECTORIES and all their dependencies
-                        ;; (if these are store items) to the chroot.
-                        (append-map (lambda (file)
-                                      (append-map (lambda (directory)
-                                                    (list "--chroot-directory"
-                                                          directory))
-                                                  (call-with-input-file file
-                                                    read)))
-                                    '#$(map references-file
-                                            chroot-directories)))
-
-                 #:environment-variables
-                 (append (list #$@(if tmpdir
-                                      (list (string-append "TMPDIR=" tmpdir))
-                                      '())
-
-                               ;; Make sure we run in a UTF-8 locale so that
-                               ;; 'guix offload' correctly restores nars that
-                               ;; contain UTF-8 file names such as
-                               ;; 'nss-certs'.  See
-                               ;; <https://bugs.gnu.org/32942>.
-                               (string-append "GUIX_LOCPATH="
-                                              #$glibc-utf8-locales
-                                              "/lib/locale")
-                               "LC_ALL=en_US.utf8")
-                         (if proxy
-                             (list (string-append "http_proxy=" proxy)
-                                   (string-append "https_proxy=" proxy))
-                             '()))
-
-                 #:log-file #$log-file)))
+            (with-imported-modules `(((guix config) => ,(make-config.scm))
+                                     ,@(source-module-closure
+                                        '((gnu build shepherd))
+                                        #:select? not-config?))
+              #~(lambda args
+                  (define proxy
+                    ;; HTTP/HTTPS proxy.  The 'http_proxy' variable is set by
+                    ;; the 'set-http-proxy' action.
+                    (or (getenv "http_proxy") #$http-proxy))
+
+                  (define discover?
+                    (or (getenv "discover") #$discover?))
+
+                  ;; Start the guix-daemon from a container, when supported,
+                  ;; to solve an installation issue. See the comment below for
+                  ;; more details.
+                  (fork+exec-command/container
+                   (cons* #$(file-append guix "/bin/guix-daemon")
+                          "--build-users-group" #$build-group
+                          "--max-silent-time"
+                          #$(number->string max-silent-time)
+                          "--timeout" #$(number->string timeout)
+                          "--log-compression"
+                          #$(symbol->string log-compression)
+                          #$@(if use-substitutes?
+                                 '()
+                                 '("--no-substitutes"))
+                          (string-append "--discover="
+                                         (if discover? "yes" "no"))
+                          "--substitute-urls" #$(string-join substitute-urls)
+                          #$@extra-options
+
+                          ;; Add CHROOT-DIRECTORIES and all their dependencies
+                          ;; (if these are store items) to the chroot.
+                          (append-map
+                           (lambda (file)
+                             (append-map (lambda (directory)
+                                           (list "--chroot-directory"
+                                                 directory))
+                                         (call-with-input-file file
+                                           read)))
+                           '#$(map references-file
+                                   chroot-directories)))
+
+                   ;; When running the installer, we need guix-daemon to
+                   ;; operate from within the same MNT namespace as the
+                   ;; installation container. In that case only, enter the
+                   ;; namespace of the process PID passed as start argument.
+                   ;; Otherwise, for symmetry purposes enter the caller
+                   ;; namespaces which is a no-op.
+                   #:pid (match args
+                           ((pid) (string->number pid))
+                           (else (getpid)))
+
+                   #:environment-variables
+                   (append (list #$@(if tmpdir
+                                        (list (string-append "TMPDIR=" tmpdir))
+                                        '())
+
+                                 ;; Make sure we run in a UTF-8 locale so that
+                                 ;; 'guix offload' correctly restores nars
+                                 ;; that contain UTF-8 file names such as
+                                 ;; 'nss-certs'.  See
+                                 ;; <https://bugs.gnu.org/32942>.
+                                 (string-append "GUIX_LOCPATH="
+                                                #$glibc-utf8-locales
+                                                "/lib/locale")
+                                 "LC_ALL=en_US.utf8")
+                           (if proxy
+                               (list (string-append "http_proxy=" proxy)
+                                     (string-append "https_proxy=" proxy))
+                               '()))
+
+                   #:log-file #$log-file))))
            (stop #~(make-kill-destructor))))))
 
 (define (guix-accounts config)
@@ -1633,26 +1715,32 @@ proxy of 'guix-daemon'...~%")
      ;; otherwise call 'chown' here, but the problem is that on a COW overlayfs,
      ;; chown leads to an entire copy of the tree, which is a bad idea.
 
-     ;; Optionally authorize substitute server keys.
-     (if authorize-key?
-         (substitute-key-authorization keys guix)
-         #~#f))))
+     ;; Generate a key pair and optionally authorize substitute server keys.
+     #~(begin
+         (unless (file-exists? "/etc/guix/signing-key.pub")
+           (system* #$(file-append guix "/bin/guix") "archive"
+                    "--generate-key"))
+
+         #$(if authorize-key?
+               (substitute-key-authorization keys guix)
+               #~#f)))))
 
 (define* (references-file item #:optional (name "references"))
   "Return a file that contains the list of references of ITEM."
   (if (struct? item)                              ;lowerable object
       (computed-file name
-                     (with-imported-modules (source-module-closure
-                                             '((guix build store-copy)))
-                       #~(begin
-                           (use-modules (guix build store-copy))
-
-                           (call-with-output-file #$output
-                             (lambda (port)
-                               (write (map store-info-item
-                                           (call-with-input-file "graph"
-                                             read-reference-graph))
-                                      port)))))
+                     (with-extensions (list guile-gcrypt) ;for store-copy
+                       (with-imported-modules (source-module-closure
+                                               '((guix build store-copy)))
+                         #~(begin
+                             (use-modules (guix build store-copy))
+
+                             (call-with-output-file #$output
+                               (lambda (port)
+                                 (write (map store-info-item
+                                             (call-with-input-file "graph"
+                                               read-reference-graph))
+                                        port))))))
                      #:options `(#:local-build? #f
                                  #:references-graphs (("graph" ,item))))
       (plain-file name "()")))
@@ -1697,6 +1785,8 @@ proxy of 'guix-daemon'...~%")
            (default 80))
   (host    guix-publish-configuration-host        ;string
            (default "localhost"))
+  (advertise? guix-publish-advertise?       ;boolean
+              (default #f))
   (compression       guix-publish-configuration-compression
                      (thunked)
                      (default (default-compression this-record
@@ -1707,6 +1797,8 @@ proxy of 'guix-daemon'...~%")
                (default "nar"))
   (cache       guix-publish-configuration-cache   ;#f | string
                (default #f))
+  (cache-bypass-threshold guix-publish-configuration-cache-bypass-threshold
+                          (default (* 10 (expt 2 20)))) ;integer
   (workers     guix-publish-configuration-workers ;#f | integer
                (default #f))
   (ttl         guix-publish-configuration-ttl     ;#f | integer
@@ -1741,10 +1833,13 @@ raise a deprecation warning if the 'compression-level' field was used."
                    lst))))
 
   (match-record config <guix-publish-configuration>
-    (guix port host nar-path cache workers ttl)
+    (guix port host nar-path cache workers ttl cache-bypass-threshold
+          advertise?)
     (list (shepherd-service
            (provision '(guix-publish))
-           (requirement '(guix-daemon))
+           (requirement `(user-processes
+                          guix-daemon
+                          ,@(if advertise? '(avahi-daemon) '())))
            (start #~(make-forkexec-constructor
                      (list #$(file-append guix "/bin/guix")
                            "publish" "-u" "guix-publish"
@@ -1752,6 +1847,9 @@ raise a deprecation warning if the 'compression-level' field was used."
                            #$@(config->compression-options config)
                            (string-append "--nar-path=" #$nar-path)
                            (string-append "--listen=" #$host)
+                           #$@(if advertise?
+                                  #~("--advertise")
+                                  #~())
                            #$@(if workers
                                   #~((string-append "--workers="
                                                     #$(number->string
@@ -1763,7 +1861,11 @@ raise a deprecation warning if the 'compression-level' field was used."
                                                     "s"))
                                   #~())
                            #$@(if cache
-                                  #~((string-append "--cache=" #$cache))
+                                  #~((string-append "--cache=" #$cache)
+                                     #$(string-append
+                                        "--cache-bypass-threshold="
+                                        (number->string
+                                         cache-bypass-threshold)))
                                   #~()))
 
                      ;; Make sure we run in a UTF-8 locale so we can produce
@@ -2071,22 +2173,53 @@ instance."
    'swap
    (lambda (device)
      (define requirement
-       (if (string-prefix? "/dev/mapper/" device)
+       (if (and (string? device)
+                (string-prefix? "/dev/mapper/" device))
            (list (symbol-append 'device-mapping-
                                 (string->symbol (basename device))))
            '()))
 
-     (shepherd-service
-      (provision (list (symbol-append 'swap- (string->symbol device))))
-      (requirement `(udev ,@requirement))
-      (documentation "Enable the given swap device.")
-      (start #~(lambda ()
-                 (restart-on-EINTR (swapon #$device))
-                 #t))
-      (stop #~(lambda _
-                (restart-on-EINTR (swapoff #$device))
-                #f))
-      (respawn? #f)))))
+     (define (device-lookup device)
+       ;; 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)
+              #~(find-partition-by-label
+                 #$(file-system-label->string device)))
+             (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)))))
+
+     (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.")
+        (modules `((gnu build file-systems)
+                   ,@%default-modules))
+        (start #~(lambda ()
+                   (let ((device #$(device-lookup device)))
+                     (and device
+                          (begin
+                            (restart-on-EINTR (swapon device))
+                            #t)))))
+        (stop #~(lambda _
+                  (let ((device #$(device-lookup device)))
+                    (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."
@@ -2200,7 +2333,9 @@ This service is not part of @var{%base-services}."
         (requirement '(user-processes udev dbus-system))
         (provision (list (symbol-append 'term- (string->symbol virtual-terminal))))
         (start #~(make-forkexec-constructor #$kmscon-command))
-        (stop #~(make-kill-destructor)))))))
+        (stop #~(make-kill-destructor)))))
+   (description "Start the @command{kmscon} virtual terminal emulator for the
+Linux @dfn{kernel mode setting} (KMS).")))
 
 (define-record-type* <static-networking>
   static-networking make-static-networking
diff --git a/gnu/services/certbot.scm b/gnu/services/certbot.scm
index 5643340799..1c67ff63f1 100644
--- a/gnu/services/certbot.scm
+++ b/gnu/services/certbot.scm
@@ -71,7 +71,8 @@
                        (default "/var/www"))
   (certificates        certbot-configuration-certificates
                        (default '()))
-  (email               certbot-configuration-email)
+  (email               certbot-configuration-email
+                       (default #f))
   (server              certbot-configuration-server
                        (default #f))
   (rsa-key-size        certbot-configuration-rsa-key-size
@@ -99,12 +100,14 @@
                    (if challenge
                      (append
                       (list name certbot "certonly" "-n" "--agree-tos"
-                            "-m" email
                             "--manual"
                             (string-append "--preferred-challenges=" challenge)
                             "--cert-name" name
                             "--manual-public-ip-logging-ok"
                             "-d" (string-join domains ","))
+                      (if email
+                          `("--email" ,email)
+                          '("--register-unsafely-without-email"))
                       (if server `("--server" ,server) '())
                       (if rsa-key-size `("--rsa-key-size" ,rsa-key-size) '())
                       (if authentication-hook
@@ -114,10 +117,12 @@
                       (if deploy-hook `("--deploy-hook" ,deploy-hook) '()))
                      (append
                       (list name certbot "certonly" "-n" "--agree-tos"
-                            "-m" email
                             "--webroot" "-w" webroot
                             "--cert-name" name
                             "-d" (string-join domains ","))
+                      (if email
+                          `("--email" ,email)
+                          '("--register-unsafely-without-email"))
                       (if server `("--server" ,server) '())
                       (if rsa-key-size `("--rsa-key-size" ,rsa-key-size) '())
                       (if deploy-hook `("--deploy-hook" ,deploy-hook) '()))))))
diff --git a/gnu/services/cuirass.scm b/gnu/services/cuirass.scm
index 0f4f0f9948..7706ed41c6 100644
--- a/gnu/services/cuirass.scm
+++ b/gnu/services/cuirass.scm
@@ -54,6 +54,11 @@
                     (default "/var/log/cuirass.log"))
   (web-log-file     cuirass-configuration-web-log-file ;string
                     (default "/var/log/cuirass-web.log"))
+  (queries-log-file cuirass-configuration-queries-log-file ;string
+                    (default #f))
+  (web-queries-log-file
+                    cuirass-configuration-web-queries-log-file ;string
+                    (default #f))
   (cache-directory  cuirass-configuration-cache-directory ;string (dir-name)
                     (default "/var/cache/cuirass"))
   (ttl              cuirass-configuration-ttl     ;integer
@@ -64,6 +69,8 @@
                     (default "cuirass"))
   (interval         cuirass-configuration-interval ;integer (seconds)
                     (default 60))
+  (queue-size       cuirass-configuration-queue-size
+                    (default 1))
   (database         cuirass-configuration-database ;string (file-name)
                     (default "/var/lib/cuirass/cuirass.db"))
   (port             cuirass-configuration-port ;integer (port)
@@ -87,9 +94,13 @@
         (cache-directory  (cuirass-configuration-cache-directory config))
         (web-log-file     (cuirass-configuration-web-log-file config))
         (log-file         (cuirass-configuration-log-file config))
+        (queries-log-file (cuirass-configuration-queries-log-file config))
+        (web-queries-log-file
+                          (cuirass-configuration-web-queries-log-file config))
         (user             (cuirass-configuration-user config))
         (group            (cuirass-configuration-group config))
         (interval         (cuirass-configuration-interval config))
+        (queue-size       (cuirass-configuration-queue-size config))
         (database         (cuirass-configuration-database config))
         (ttl              (cuirass-configuration-ttl config))
         (port             (cuirass-configuration-port config))
@@ -111,6 +122,11 @@
                            "--database" #$database
                            "--ttl" #$(string-append (number->string ttl) "s")
                            "--interval" #$(number->string interval)
+                           "--queue-size" #$(number->string queue-size)
+                           #$@(if queries-log-file
+                                  (list (string-append "--log-queries="
+                                                       queries-log-file))
+                                  '())
                            #$@(if use-substitutes? '("--use-substitutes") '())
                            #$@(if one-shot? '("--one-shot") '())
                            #$@(if fallback? '("--fallback") '())
@@ -140,6 +156,10 @@
                            "--port" #$(number->string port)
                            "--listen" #$host
                            "--interval" #$(number->string interval)
+                           #$@(if web-queries-log-file
+                                  (list (string-append "--log-queries="
+                                                       web-queries-log-file))
+                                  '())
                            #$@(if use-substitutes? '("--use-substitutes") '())
                            #$@(if fallback? '("--fallback") '())
                            #$@extra-options)
@@ -170,6 +190,9 @@
         (db    (dirname (cuirass-configuration-database config)))
         (user  (cuirass-configuration-user config))
         (log   "/var/log/cuirass")
+        (queries-log-file (cuirass-configuration-queries-log-file config))
+        (web-queries-log-file
+         (cuirass-configuration-web-queries-log-file config))
         (group (cuirass-configuration-group config)))
     (with-imported-modules '((guix build utils))
       #~(begin
@@ -183,14 +206,33 @@
                 (gid (group:gid (getgr #$group))))
             (chown #$cache uid gid)
             (chown #$db uid gid)
-            (chown #$log uid gid))))))
+            (chown #$log uid gid)
+
+            (let ((queries-log-file #$queries-log-file))
+              (when queries-log-file
+                (call-with-output-file queries-log-file (const #t))
+                (chown #$queries-log-file uid gid)))
+
+            (let ((web-queries-log-file #$web-queries-log-file))
+              (when web-queries-log-file
+                (call-with-output-file web-queries-log-file (const #t))
+                (chown web-queries-log-file uid gid))))))))
 
 (define (cuirass-log-rotations config)
   "Return the list of log rotations that corresponds to CONFIG."
-  (list (log-rotation
-         (files (list (cuirass-configuration-log-file config)))
-         (frequency 'weekly)
-         (options '("rotate 40")))))              ;worth keeping
+  (let ((queries-log-file (cuirass-configuration-queries-log-file config))
+        (web-queries-log-file
+         (cuirass-configuration-web-queries-log-file config)))
+    (list (log-rotation
+           (files `(,(cuirass-configuration-log-file config)
+                    ,@(if queries-log-file
+                          (list queries-log-file)
+                          '())
+                    ,@(if web-queries-log-file
+                          (list web-queries-log-file)
+                          '())))
+           (frequency 'weekly)
+           (options '("rotate 40"))))))              ;worth keeping
 
 (define cuirass-service-type
   (service-type
diff --git a/gnu/services/cups.scm b/gnu/services/cups.scm
index 16d6f76c1a..17ed04e58b 100644
--- a/gnu/services/cups.scm
+++ b/gnu/services/cups.scm
@@ -32,7 +32,7 @@
   #:use-module (guix records)
   #:use-module (guix gexp)
   #:use-module (ice-9 match)
-  #:use-module ((srfi srfi-1) #:select (append-map))
+  #:use-module ((srfi srfi-1) #:select (append-map find))
   #:export (cups-service-type
             cups-configuration
             opaque-cups-configuration
@@ -50,7 +50,13 @@
 ;;; Code:
 
 (define %cups-accounts
-  (list (user-group (name "lp") (system? #t))
+  (list (or
+         ;; The "lp" group should already exist; try to reuse it.
+         (find (lambda (group)
+                 (and (user-group? group)
+                      (string=? (user-group-name group) "lp")))
+               %base-groups)
+         (user-group (name "lp") (system? #t)))
         (user-group (name "lpadmin") (system? #t))
         (user-account
          (name "lp")
@@ -482,7 +488,8 @@ programs.")
    (package cups)
    "The CUPS package.")
   (extensions
-   (package-list (list cups-filters))
+   (package-list (list brlaser cups-filters epson-inkjet-printer-escpr
+                       foomatic-filters hplip-minimal splix))
    "Drivers and other extensions to the CUPS package.")
   (files-configuration
    (files-configuration (files-configuration))
diff --git a/gnu/services/databases.scm b/gnu/services/databases.scm
index 2bddf70f71..d2dc5f0da8 100644
--- a/gnu/services/databases.scm
+++ b/gnu/services/databases.scm
@@ -6,6 +6,7 @@
 ;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
 ;;; Copyright © 2018 Julien Lepiller <julien@lepiller.eu>
 ;;; Copyright © 2019 Robert Vollmert <rob@vllmrt.net>
+;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -30,21 +31,20 @@
   #:use-module (gnu packages databases)
   #:use-module (guix build-system trivial)
   #:use-module (guix build union)
+  #:use-module (guix deprecation)
   #:use-module (guix modules)
   #:use-module (guix packages)
   #:use-module (guix records)
   #:use-module (guix gexp)
   #:use-module (srfi srfi-1)
   #:use-module (ice-9 match)
-  #:export (<postgresql-config-file>
-            postgresql-config-file
+  #:export (postgresql-config-file
             postgresql-config-file?
             postgresql-config-file-log-destination
             postgresql-config-file-hba-file
             postgresql-config-file-ident-file
             postgresql-config-file-extra-config
 
-            <postgresql-configuration>
             postgresql-configuration
             postgresql-configuration?
             postgresql-configuration-postgresql
@@ -57,7 +57,6 @@
             postgresql-service-type
 
             memcached-service-type
-            <memcached-configuration>
             memcached-configuration
             memcached-configuration?
             memcached-configuration-memecached
@@ -66,7 +65,6 @@
             memcached-configuration-udp-port
             memcached-configuration-additional-options
 
-            <mongodb-configuration>
             mongodb-configuration
             mongodb-configuration?
             mongodb-configuration-mongodb
@@ -146,8 +144,7 @@ host	all	all	::1/128 	md5"))
 (define-record-type* <postgresql-configuration>
   postgresql-configuration make-postgresql-configuration
   postgresql-configuration?
-  (postgresql         postgresql-configuration-postgresql ;<package>
-                      (default postgresql))
+  (postgresql         postgresql-configuration-postgresql) ;<package>
   (port               postgresql-configuration-port
                       (default 5432))
   (locale             postgresql-configuration-locale
@@ -278,15 +275,15 @@ host	all	all	::1/128 	md5"))
                        (service-extension account-service-type
                                           (const %postgresql-accounts))
                        (service-extension profile-service-type
-                                          (compose list postgresql-configuration-postgresql))))
-                (default-value (postgresql-configuration))))
-
-(define* (postgresql-service #:key (postgresql postgresql)
-                             (port 5432)
-                             (locale "en_US.utf8")
-                             (config-file (postgresql-config-file))
-                             (data-directory "/var/lib/postgresql/data")
-                             (extension-packages '()))
+                                          (compose list postgresql-configuration-postgresql))))))
+
+(define-deprecated (postgresql-service #:key (postgresql postgresql)
+                                       (port 5432)
+                                       (locale "en_US.utf8")
+                                       (config-file (postgresql-config-file))
+                                       (data-directory "/var/lib/postgresql/data")
+                                       (extension-packages '()))
+  postgresql-service-type
   "Return a service that runs @var{postgresql}, the PostgreSQL database server.
 
 The PostgreSQL daemon loads its runtime configuration from @var{config-file}
@@ -465,8 +462,11 @@ storage:
   mysql-configuration make-mysql-configuration
   mysql-configuration?
   (mysql mysql-configuration-mysql (default mariadb))
+  (bind-address mysql-configuration-bind-address (default "127.0.0.1"))
   (port mysql-configuration-port (default 3306))
-  (extra-content mysql-configuration-extra-content (default "")))
+  (socket mysql-configuration-socket (default "/run/mysqld/mysqld.sock"))
+  (extra-content mysql-configuration-extra-content (default ""))
+  (auto-upgrade? mysql-configuration-auto-upgrade? (default #t)))
 
 (define %mysql-accounts
   (list (user-group
@@ -481,10 +481,11 @@ storage:
 
 (define mysql-configuration-file
   (match-lambda
-    (($ <mysql-configuration> mysql port extra-content)
+    (($ <mysql-configuration> mysql bind-address port socket extra-content)
      (mixed-text-file "my.cnf" "[mysqld]
 datadir=/var/lib/mysql
-socket=/run/mysqld/mysqld.sock
+socket=" socket "
+bind-address=" bind-address "
 port=" (number->string port) "
 " extra-content "
 "))))
@@ -556,6 +557,52 @@ FLUSH PRIVILEGES;
                      #:user "mysql" #:group "mysql")))
          (stop #~(make-kill-destructor)))))
 
+(define (mysql-upgrade-wrapper mysql socket-file)
+  ;; The MySQL socket and PID file may appear before the server is ready to
+  ;; accept connections.  Ensure the socket is responsive before attempting
+  ;; to run the upgrade script.
+  (program-file
+   "mysql-upgrade-wrapper"
+   #~(begin
+       (let ((mysql-upgrade #$(file-append mysql "/bin/mysql_upgrade"))
+             (timeout 10))
+         (begin
+           (let loop ((i 0))
+             (catch 'system-error
+               (lambda ()
+                 (let ((sock (socket PF_UNIX SOCK_STREAM 0)))
+                   (connect sock AF_UNIX #$socket-file)
+                   (close-port sock)
+                   ;; The socket is ready!
+                   (execl mysql-upgrade mysql-upgrade
+                          (string-append "--socket=" #$socket-file))))
+               (lambda args
+                 (if (< i timeout)
+                     (begin
+                       (sleep 1)
+                       (loop (+ 1 i)))
+                     ;; No luck, give up.
+                     (throw 'timeout-error
+                            "MySQL server did not appear in time!"))))))))))
+
+(define (mysql-upgrade-shepherd-service config)
+  (list (shepherd-service
+         (provision '(mysql-upgrade))
+         (requirement '(mysql))
+         (one-shot? #t)
+         (documentation "Upgrade MySQL database schemas.")
+         (start (let ((mysql (mysql-configuration-mysql config))
+                      (socket (mysql-configuration-socket config)))
+                  #~(make-forkexec-constructor
+                     (list #$(mysql-upgrade-wrapper mysql socket))
+                     #:user "mysql" #:group "mysql"))))))
+
+(define (mysql-shepherd-services config)
+  (if (mysql-configuration-auto-upgrade? config)
+      (append (mysql-shepherd-service config)
+              (mysql-upgrade-shepherd-service config))
+      (mysql-shepherd-service config)))
+
 (define mysql-service-type
   (service-type
    (name 'mysql)
@@ -565,15 +612,11 @@ FLUSH PRIVILEGES;
           (service-extension activation-service-type
                              %mysql-activation)
           (service-extension shepherd-root-service-type
-                             mysql-shepherd-service)))
+                             mysql-shepherd-services)))
    (default-value (mysql-configuration))))
 
-(define* (mysql-service #:key (config (mysql-configuration)))
-  "Return a service that runs @command{mysqld}, the MySQL or MariaDB
-database server.
-
-The optional @var{config} argument specifies the configuration for
-@command{mysqld}, which should be a @code{<mysql-configuration>} object."
+(define-deprecated (mysql-service #:key (config (mysql-configuration)))
+  mysql-service-type
   (service mysql-service-type config))
 
 
diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm
index 9e45743586..265cf9f35f 100644
--- a/gnu/services/desktop.scm
+++ b/gnu/services/desktop.scm
@@ -3,7 +3,7 @@
 ;;; Copyright © 2015 Andy Wingo <wingo@igalia.com>
 ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2016 Sou Bunnbu <iyzsong@gmail.com>
-;;; Copyright © 2017 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2017, 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2017 Nikita <nikita@n0.is>
 ;;; Copyright © 2018, 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
@@ -11,6 +11,7 @@
 ;;; Copyright © 2019 Tim Gesthuizen <tim.gesthuizen@yahoo.de>
 ;;; Copyright © 2019 David Wilson <david@daviwil.com>
 ;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2020 Reza Alizadeh Majd <r.majd@pantherx.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -53,7 +54,9 @@
   #:use-module (gnu packages suckless)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages libusb)
+  #:use-module (gnu packages lxqt)
   #:use-module (gnu packages mate)
+  #:use-module (gnu packages nfs)
   #:use-module (gnu packages enlightenment)
   #:use-module (guix deprecation)
   #:use-module (guix records)
@@ -126,6 +129,10 @@
             mate-desktop-service
             mate-desktop-service-type
 
+            lxqt-desktop-configuration
+            lxqt-desktop-configuration?
+            lxqt-desktop-service-type
+
             xfce-desktop-configuration
             xfce-desktop-configuration?
             xfce-desktop-service
@@ -470,6 +477,7 @@ site} for more information."
                                   ,(bluetooth-directory config)))))
           (service-extension shepherd-root-service-type
                              (compose list bluetooth-shepherd-service))))
+   (default-value (bluetooth-configuration))
    (description "Run the @command{bluetoothd} daemon, which manages all the
 Bluetooth devices and provides a number of D-Bus interfaces.")))
 
@@ -595,64 +603,66 @@ include the @command{udisksctl} command, part of UDisks, and GNOME Disks."
 (define-record-type* <elogind-configuration> elogind-configuration
   make-elogind-configuration
   elogind-configuration?
-  (elogind                         elogind-package
-                                   (default elogind))
-  (kill-user-processes?            elogind-kill-user-processes?
-                                   (default #f))
-  (kill-only-users                 elogind-kill-only-users
-                                   (default '()))
-  (kill-exclude-users              elogind-kill-exclude-users
-                                   (default '("root")))
-  (inhibit-delay-max-seconds       elogind-inhibit-delay-max-seconds
-                                   (default 5))
-  (handle-power-key                elogind-handle-power-key
-                                   (default 'poweroff))
-  (handle-suspend-key              elogind-handle-suspend-key
-                                   (default 'suspend))
-  (handle-hibernate-key            elogind-handle-hibernate-key
-                                   ;; (default 'hibernate)
-                                   ;; XXX Ignore it for now, since we don't
-                                   ;; yet handle resume-from-hibernation in
-                                   ;; our initrd.
-                                   (default 'ignore))
-  (handle-lid-switch               elogind-handle-lid-switch
-                                   (default 'suspend))
-  (handle-lid-switch-docked        elogind-handle-lid-switch-docked
-                                   (default 'ignore))
-  (power-key-ignore-inhibited?     elogind-power-key-ignore-inhibited?
-                                   (default #f))
-  (suspend-key-ignore-inhibited?   elogind-suspend-key-ignore-inhibited?
-                                   (default #f))
-  (hibernate-key-ignore-inhibited? elogind-hibernate-key-ignore-inhibited?
-                                   (default #f))
-  (lid-switch-ignore-inhibited?    elogind-lid-switch-ignore-inhibited?
-                                   (default #t))
-  (holdoff-timeout-seconds         elogind-holdoff-timeout-seconds
-                                   (default 30))
-  (idle-action                     elogind-idle-action
-                                   (default 'ignore))
-  (idle-action-seconds             elogind-idle-action-seconds
-                                   (default (* 30 60)))
-  (runtime-directory-size-percent  elogind-runtime-directory-size-percent
-                                   (default 10))
-  (runtime-directory-size          elogind-runtime-directory-size
-                                   (default #f))
-  (remove-ipc?                     elogind-remove-ipc?
-                                   (default #t))
-
-  (suspend-state                   elogind-suspend-state
-                                   (default '("mem" "standby" "freeze")))
-  (suspend-mode                    elogind-suspend-mode
-                                   (default '()))
-  (hibernate-state                 elogind-hibernate-state
-                                   (default '("disk")))
-  (hibernate-mode                  elogind-hibernate-mode
-                                   (default '("platform" "shutdown")))
-  (hybrid-sleep-state              elogind-hybrid-sleep-state
-                                   (default '("disk")))
-  (hybrid-sleep-mode               elogind-hybrid-sleep-mode
-                                   (default
-                                     '("suspend" "platform" "shutdown"))))
+  (elogind                          elogind-package
+                                    (default elogind))
+  (kill-user-processes?             elogind-kill-user-processes?
+                                    (default #f))
+  (kill-only-users                  elogind-kill-only-users
+                                    (default '()))
+  (kill-exclude-users               elogind-kill-exclude-users
+                                    (default '("root")))
+  (inhibit-delay-max-seconds        elogind-inhibit-delay-max-seconds
+                                    (default 5))
+  (handle-power-key                 elogind-handle-power-key
+                                    (default 'poweroff))
+  (handle-suspend-key               elogind-handle-suspend-key
+                                    (default 'suspend))
+  (handle-hibernate-key             elogind-handle-hibernate-key
+                                    ;; (default 'hibernate)
+                                    ;; XXX Ignore it for now, since we don't
+                                    ;; yet handle resume-from-hibernation in
+                                    ;; our initrd.
+                                    (default 'ignore))
+  (handle-lid-switch                elogind-handle-lid-switch
+                                    (default 'suspend))
+  (handle-lid-switch-docked         elogind-handle-lid-switch-docked
+                                    (default 'ignore))
+  (handle-lid-switch-external-power elogind-handle-lid-switch-external-power
+                                    (default 'ignore))
+  (power-key-ignore-inhibited?      elogind-power-key-ignore-inhibited?
+                                    (default #f))
+  (suspend-key-ignore-inhibited?    elogind-suspend-key-ignore-inhibited?
+                                    (default #f))
+  (hibernate-key-ignore-inhibited?  elogind-hibernate-key-ignore-inhibited?
+                                    (default #f))
+  (lid-switch-ignore-inhibited?     elogind-lid-switch-ignore-inhibited?
+                                    (default #t))
+  (holdoff-timeout-seconds          elogind-holdoff-timeout-seconds
+                                    (default 30))
+  (idle-action                      elogind-idle-action
+                                    (default 'ignore))
+  (idle-action-seconds              elogind-idle-action-seconds
+                                    (default (* 30 60)))
+  (runtime-directory-size-percent   elogind-runtime-directory-size-percent
+                                    (default 10))
+  (runtime-directory-size           elogind-runtime-directory-size
+                                    (default #f))
+  (remove-ipc?                      elogind-remove-ipc?
+                                    (default #t))
+
+  (suspend-state                    elogind-suspend-state
+                                    (default '("mem" "standby" "freeze")))
+  (suspend-mode                     elogind-suspend-mode
+                                    (default '()))
+  (hibernate-state                  elogind-hibernate-state
+                                    (default '("disk")))
+  (hibernate-mode                   elogind-hibernate-mode
+                                    (default '("platform" "shutdown")))
+  (hybrid-sleep-state               elogind-hybrid-sleep-state
+                                    (default '("disk")))
+  (hybrid-sleep-mode                elogind-hybrid-sleep-mode
+                                    (default
+                                      '("suspend" "platform" "shutdown"))))
 
 (define (elogind-configuration-file config)
   (define (yesno x)
@@ -704,6 +714,7 @@ include the @command{udisksctl} command, part of UDisks, and GNOME Disks."
    ("HandleHibernateKey" (handle-action elogind-handle-hibernate-key))
    ("HandleLidSwitch" (handle-action elogind-handle-lid-switch))
    ("HandleLidSwitchDocked" (handle-action elogind-handle-lid-switch-docked))
+   ("HandleLidSwitchExternalPower" (handle-action elogind-handle-lid-switch-external-power))
    ("PowerKeyIgnoreInhibited" (yesno elogind-power-key-ignore-inhibited?))
    ("SuspendKeyIgnoreInhibited" (yesno elogind-suspend-key-ignore-inhibited?))
    ("HibernateKeyIgnoreInhibited" (yesno elogind-hibernate-key-ignore-inhibited?))
@@ -836,7 +847,8 @@ when they log out."
                  (list (service-extension activation-service-type
                                           (const %accountsservice-activation))
                        (service-extension dbus-root-service-type list)
-                       (service-extension polkit-service-type list)))))
+                       (service-extension polkit-service-type list)))
+                (default-value accountsservice)))
 
 (define* (accountsservice-service #:key (accountsservice accountsservice))
   "Return a service that runs AccountsService, a system service that
@@ -1003,6 +1015,36 @@ system as root from within a user session, after the user has authenticated
 with the administrator's password."
   (service xfce-desktop-service-type config))
 
++
+;;;
+;;; Lxqt desktop service.
+;;;
+
+(define-record-type* <lxqt-desktop-configuration> lxqt-desktop-configuration
+  make-lxqt-desktop-configuration
+  lxqt-desktop-configuration?
+  (lxqt lxqt-package
+        (default lxqt)))
+
+(define (lxqt-polkit-settings config)
+  "Return the list of LXQt dependencies that provide polkit actions and
+rules."
+  (let ((lxqt (lxqt-package config)))
+    (map (lambda (name)
+           ((package-direct-input-selector name) lxqt))
+         '("lxqt-admin"))))
+
+(define lxqt-desktop-service-type
+  (service-type
+   (name 'lxqt-desktop)
+   (extensions
+    (list (service-extension polkit-service-type
+                             lxqt-polkit-settings)
+          (service-extension profile-service-type
+                             (compose list lxqt-package))))
+   (default-value (lxqt-desktop-configuration))
+   (description "Run LXQt desktop environment.")))
+
 
 ;;;
 ;;; X11 socket directory service
@@ -1201,6 +1243,12 @@ or setting its password with passwd.")))
          ;; perform administrative tasks (similar to "sudo").
          polkit-wheel-service
 
+         ;; Allow desktop users to also mount NTFS and NFS file systems
+         ;; without root.
+         (simple-service 'mount-setuid-helpers setuid-program-service-type
+                         (list (file-append nfs-utils "/sbin/mount.nfs")
+                               (file-append ntfs-3g "/sbin/mount.ntfs-3g")))
+
          ;; The global fontconfig cache directory can sometimes contain
          ;; stale entries, possibly referencing fonts that have been GC'd,
          ;; so mount it read-only.
diff --git a/gnu/services/dict.scm b/gnu/services/dict.scm
index 519ed3eca2..a97ad8f608 100644
--- a/gnu/services/dict.scm
+++ b/gnu/services/dict.scm
@@ -187,7 +187,7 @@ of DICT server (@pxref{Dicod,,, dico, GNU Dico Manual}).
 
 The optional @var{config} argument specifies the configuration for
 @command{dicod}, which should be a @code{<dicod-configuration>} object, by
-default it serves the GNU Collaborative International Dictonary of English.
+default it serves the GNU Collaborative International Dictionary of English.
 
 You can add @command{open localhost} to your @file{~/.dico} file to make
 @code{localhost} the default server for @command{dico}
diff --git a/gnu/services/dns.scm b/gnu/services/dns.scm
index 9caa3611be..b339eb0619 100644
--- a/gnu/services/dns.scm
+++ b/gnu/services/dns.scm
@@ -700,7 +700,7 @@ cache.size = 100 * MB
        (documentation "Run the Knot Resolver daemon.")
        (start #~(make-forkexec-constructor
                  '(#$(file-append package "/sbin/kresd")
-                   "-c" #$kresd-config-file "-f" "1"
+                   "-c" #$kresd-config-file "-n"
                    "/var/cache/knot-resolver")))
        (stop #~(make-kill-destructor)))
       (shepherd-service
@@ -757,7 +757,29 @@ cache.size = 100 * MB
   (cache-size       dnsmasq-configuration-cache-size
                     (default 150))      ;integer
   (negative-cache?  dnsmasq-configuration-negative-cache?
-                    (default #t)))      ;boolean
+                    (default #t))      ;boolean
+  (tftp-enable?     dnsmasq-configuration-tftp-enable?
+                    (default #f))       ;boolean
+  (tftp-no-fail?    dnsmasq-configuration-tftp-no-fail?
+                    (default #f))       ;boolean
+  (tftp-single-port? dnsmasq-configuration-tftp-single-port?
+                    (default #f))       ;boolean
+  (tftp-secure?     dnsmasq-tftp-secure?
+                    (default #f))       ;boolean
+  (tftp-max         dnsmasq-tftp-max
+                    (default #f))       ;integer
+  (tftp-mtu         dnsmasq-tftp-mtu
+                    (default #f))       ;integer
+  (tftp-no-blocksize? dnsmasq-tftp-no-blocksize?
+                      (default #f))     ;boolean
+  (tftp-lowercase?  dnsmasq-tftp-lowercase?
+                    (default #f))       ;boolean
+  (tftp-port-range  dnsmasq-tftp-port-range
+                    (default #f))       ;string
+  (tftp-root        dnsmasq-tftp-root
+                    (default "/var/empty,lo")) ;string
+  (tftp-unique-root dnsmasq-tftp-unique-root
+                    (default #f)))      ;"" or "ip" or "mac"
 
 (define dnsmasq-shepherd-service
   (match-lambda
@@ -765,7 +787,12 @@ cache.size = 100 * MB
                                 no-hosts?
                                 port local-service? listen-addresses
                                 resolv-file no-resolv? servers
-                                addresses cache-size negative-cache?)
+                                addresses cache-size negative-cache?
+                                tftp-enable? tftp-no-fail?
+                                tftp-single-port? tftp-secure?
+                                tftp-max tftp-mtu tftp-no-blocksize?
+                                tftp-lowercase? tftp-port-range
+                                tftp-root tftp-unique-root)
      (shepherd-service
       (provision '(dnsmasq))
       (requirement '(networking))
@@ -794,7 +821,44 @@ cache.size = 100 * MB
                   #$(format #f "--cache-size=~a" cache-size)
                   #$@(if negative-cache?
                          '()
-                         '("--no-negcache")))
+                         '("--no-negcache"))
+                  #$@(if tftp-enable?
+                         '("--enable-tftp")
+                         '())
+                  #$@(if tftp-no-fail?
+                         '("--tftp-no-fail")
+                         '())
+                  #$@(if tftp-single-port?
+                         '("--tftp-single-port")
+                         '())
+                  #$@(if tftp-secure?
+                         '("--tftp-secure?")
+                         '())
+                  #$@(if tftp-max
+                         (list (format #f "--tftp-max=~a" tftp-max))
+                         '())
+                  #$@(if tftp-mtu
+                         (list (format #f "--tftp-mtu=~a" tftp-mtu))
+                         '())
+                  #$@(if tftp-no-blocksize?
+                         '("--tftp-no-blocksize")
+                         '())
+                  #$@(if tftp-lowercase?
+                         '("--tftp-lowercase")
+                         '())
+                  #$@(if tftp-port-range
+                         (list (format #f "--tftp-port-range=~a"
+                                          tftp-port-range))
+                         '())
+                  #$@(if tftp-root
+                         (list (format #f "--tftp-root=~a" tftp-root))
+                         '())
+                  #$@(if tftp-unique-root
+                         (list
+                          (if (> (length tftp-unique-root) 0)
+                              (format #f "--tftp-unique-root=~a" tftp-unique-root)
+                              (format #f "--tftp-unique-root")))
+                         '()))
                 #:pid-file "/run/dnsmasq.pid"))
       (stop #~(make-kill-destructor))))))
 
diff --git a/gnu/services/docker.scm b/gnu/services/docker.scm
index 937dff7bdb..7acfbea49f 100644
--- a/gnu/services/docker.scm
+++ b/gnu/services/docker.scm
@@ -2,6 +2,8 @@
 ;;; Copyright © 2018 Danny Milosavljevic <dannym@scratchpost.org>
 ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
 ;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2020 Jesse Dowell <jessedowell@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -44,6 +46,9 @@
   (docker
    (package docker)
    "Docker daemon package.")
+  (docker-cli
+   (package docker-cli)
+   "Docker client package.")
   (containerd
    (package containerd)
    "containerd package.")
@@ -56,7 +61,10 @@ loop-back communications.")
    "Enable or disable the user-land proxy (enabled by default).")
   (debug?
    (boolean #f)
-   "Enable or disable debug output."))
+   "Enable or disable debug output.")
+  (enable-iptables?
+   (boolean #t)
+   "Enable addition of iptables rules (enabled by default)."))
 
 (define %docker-accounts
   (list (user-group (name "docker") (system? #t))))
@@ -76,7 +84,8 @@ loop-back communications.")
 
 (define (containerd-shepherd-service config)
   (let* ((package (docker-configuration-containerd config))
-         (debug? (docker-configuration-debug? config)))
+         (debug? (docker-configuration-debug? config))
+         (containerd (docker-configuration-containerd config)))
     (shepherd-service
            (documentation "containerd daemon.")
            (provision '(containerd))
@@ -85,12 +94,16 @@ loop-back communications.")
                            #$@(if debug?
                                   '("--log-level=debug")
                                   '()))
+                     ;; For finding containerd-shim binary.
+                     #:environment-variables
+                     (list (string-append "PATH=" #$containerd "/bin"))
                      #:log-file "/var/log/containerd.log"))
            (stop #~(make-kill-destructor)))))
 
 (define (docker-shepherd-service config)
   (let* ((docker (docker-configuration-docker config))
          (enable-proxy? (docker-configuration-enable-proxy? config))
+         (enable-iptables? (docker-configuration-enable-iptables? config))
          (proxy (docker-configuration-proxy config))
          (debug? (docker-configuration-debug? config)))
     (shepherd-service
@@ -113,9 +126,14 @@ loop-back communications.")
                            #$@(if debug?
                                   '("--debug" "--log-level=debug")
                                   '())
-                           (if #$enable-proxy? "--userland-proxy" "")
-                           "--userland-proxy-path" (string-append #$proxy
-                                                                  "/bin/proxy"))
+                           #$@(if enable-proxy?
+                                  (list "--userland-proxy=true"
+                                        #~(string-append
+                                           "--userland-proxy-path=" #$proxy "/bin/proxy"))
+                                  '("--userland-proxy=false"))
+                           (if #$enable-iptables?
+                               "--iptables"
+                               "--iptables=false"))
                      #:pid-file "/var/run/docker.pid"
                      #:log-file "/var/log/docker.log"))
            (stop #~(make-kill-destructor)))))
@@ -126,6 +144,9 @@ loop-back communications.")
 bundles in Docker containers.")
                 (extensions
                  (list
+                  ;; Make sure the 'docker' command is available.
+                  (service-extension profile-service-type
+                                     (compose list docker-configuration-docker-cli))
                   (service-extension activation-service-type
                                      %docker-activation)
                   (service-extension shepherd-root-service-type
diff --git a/gnu/services/ganeti.scm b/gnu/services/ganeti.scm
index 8d30472371..0a34ea6a5e 100644
--- a/gnu/services/ganeti.scm
+++ b/gnu/services/ganeti.scm
@@ -430,7 +430,7 @@ appropriate requests to this daemon.")))
                 (description
                  "@command{ganeti-luxid} is a daemon used to answer queries
 related to the configuration and the current live state of a Ganeti cluster.
-Additionally, it is the autorative daemon for the Ganeti job queue.  Jobs can
+Additionally, it is the authoritative daemon for the Ganeti job queue.  Jobs can
 be submitted via this daemon and it schedules and starts them.")))
 
 (define-record-type* <ganeti-rapi-configuration>
@@ -550,7 +550,7 @@ The KVM daemon monitors, using @code{inotify}, KVM instances through their QMP
 sockets, which are provided by KVM.  Using the QMP sockets, the KVM daemon
 listens for particular shutdown, powerdown, and stop events which will determine
 if a given instance was shutdown by the user or Ganeti, and this result is
-communicated to Ganeti via a special file in the filesystem.")))
+communicated to Ganeti via a special file in the file system.")))
 
 (define-record-type* <ganeti-mond-configuration>
   ganeti-mond-configuration make-ganeti-mond-configuration
diff --git a/gnu/services/guix.scm b/gnu/services/guix.scm
index 10a8581a62..88d23f746a 100644
--- a/gnu/services/guix.scm
+++ b/gnu/services/guix.scm
@@ -17,20 +17,67 @@
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (gnu services guix)
+  #:use-module (srfi srfi-1)
   #:use-module (ice-9 match)
   #:use-module (guix gexp)
   #:use-module (guix records)
+  #:use-module (guix packages)
   #:use-module ((gnu packages base)
                 #:select (glibc-utf8-locales))
   #:use-module (gnu packages admin)
+  #:use-module (gnu packages databases)
   #:use-module (gnu packages web)
+  #:use-module (gnu packages guile)
+  #:use-module (gnu packages guile-xyz)
+  #:use-module (gnu packages package-management)
   #:use-module (gnu services)
   #:use-module (gnu services base)
   #:use-module (gnu services admin)
   #:use-module (gnu services shepherd)
   #:use-module (gnu services getmail)
   #:use-module (gnu system shadow)
-  #:export (<guix-data-service-configuration>
+  #:export (guix-build-coordinator-configuration
+            guix-build-coordinator-configuration?
+            guix-build-coordinator-configuration-package
+            guix-build-coordinator-configuration-user
+            guix-build-coordinator-configuration-group
+            guix-build-coordinator-configuration-datastore-uri-string
+            guix-build-coordinator-configuration-agent-communication-uri-string
+            guix-build-coordinator-configuration-client-communication-uri-string
+            guix-build-coordinator-configuration-allocation-strategy
+            guix-build-coordinator-configuration-hooks
+            guix-build-coordinator-configuration-guile
+
+            guix-build-coordinator-service-type
+
+            guix-build-coordinator-agent-configuration
+            guix-build-coordinator-agent-configuration?
+            guix-build-coordinator-agent-configuration-package
+            guix-build-coordinator-agent-configuration-user
+            guix-build-coordinator-agent-configuration-coordinator
+            guix-build-coordinator-agent-configuration-uuid
+            guix-build-coordinator-agent-configuration-password
+            guix-build-coordinator-agent-configuration-password-file
+            guix-build-coordinator-agent-configuration-systems
+            guix-build-coordinator-agent-configuration-max-parallel-builds
+            guix-build-coordinator-agent-configuration-derivation-substitute-urls
+            guix-build-coordinator-agent-configuration-non-derivation-substitute-urls
+
+            guix-build-coordinator-agent-service-type
+
+            guix-build-coordinator-queue-builds-configuration
+            guix-build-coordinator-queue-builds-configuration?
+            guix-build-coordinator-queue-builds-configuration-package
+            guix-build-coordinator-queue-builds-configuration-user
+            guix-build-coordinator-queue-builds-coordinator
+            guix-build-coordinator-queue-builds-configuration-systems
+            guix-build-coordinator-queue-builds-configuration-system-and-targets
+            guix-build-coordinator-queue-builds-configuration-guix-data-service
+            guix-build-coordinator-queue-builds-configuration-processed-commits-file
+
+            guix-build-coordinator-queue-builds-service-type
+
+            <guix-data-service-configuration>
             guix-data-service-configuration
             guix-data-service-configuration?
             guix-data-service-package
@@ -45,11 +92,403 @@
 
 ;;;; Commentary:
 ;;;
-;;; This module implements a service that to run instances of the Guix Data
-;;; Service, which provides data about Guix over time.
+;;; Services specifically related to GNU Guix.
 ;;;
 ;;;; Code:
 
+(define-record-type* <guix-build-coordinator-configuration>
+  guix-build-coordinator-configuration make-guix-build-coordinator-configuration
+  guix-build-coordinator-configuration?
+  (package                         guix-build-coordinator-configuration-package
+                                   (default guix-build-coordinator))
+  (user                            guix-build-coordinator-configuration-user
+                                   (default "guix-build-coordinator"))
+  (group                           guix-build-coordinator-configuration-group
+                                   (default "guix-build-coordinator"))
+  (database-uri-string
+   guix-build-coordinator-configuration-datastore-uri-string
+   (default "sqlite:///var/lib/guix-build-coordinator/guix_build_coordinator.db"))
+  (agent-communication-uri-string
+   guix-build-coordinator-configuration-agent-communication-uri-string
+   (default "http://0.0.0.0:8745"))
+  (client-communication-uri-string
+   guix-build-coordinator-configuration-client-communication-uri-string
+   (default "http://127.0.0.1:8746"))
+  (allocation-strategy
+   guix-build-coordinator-configuration-allocation-strategy
+   (default #~basic-build-allocation-strategy))
+  (hooks                           guix-build-coordinator-configuration-hooks
+                                   (default '()))
+  (guile                           guix-build-coordinator-configuration-guile
+                                   (default guile-3.0-latest)))
+
+(define-record-type* <guix-build-coordinator-agent-configuration>
+  guix-build-coordinator-agent-configuration
+  make-guix-build-coordinator-agent-configuration
+  guix-build-coordinator-agent-configuration?
+  (package             guix-build-coordinator-agent-configuration-package
+                       (default guix-build-coordinator))
+  (user                guix-build-coordinator-agent-configuration-user
+                       (default "guix-build-coordinator-agent"))
+  (coordinator         guix-build-coordinator-agent-configuration-coordinator
+                       (default "http://localhost:8745"))
+  (uuid                guix-build-coordinator-agent-configuration-uuid)
+  (password            guix-build-coordinator-agent-configuration-password
+                       (default #f))
+  (password-file       guix-build-coordinator-agent-configuration-password-file
+                       (default #f))
+  (systems             guix-build-coordinator-agent-configuration-systems
+                       (default #f))
+  (max-parallel-builds
+   guix-build-coordinator-agent-configuration-max-parallel-builds
+   (default 1))
+  (derivation-substitute-urls
+   guix-build-coordinator-agent-configuration-derivation-substitute-urls
+   (default #f))
+  (non-derivation-substitute-urls
+   guix-build-coordinator-agent-configuration-non-derivation-substitute-urls
+   (default #f)))
+
+(define-record-type* <guix-build-coordinator-queue-builds-configuration>
+  guix-build-coordinator-queue-builds-configuration
+  make-guix-build-coordinator-queue-builds-configuration
+  guix-build-coordinator-queue-builds-configuration?
+  (package              guix-build-coordinator-queue-builds-configuration-package
+                        (default guix-build-coordinator))
+  (user                 guix-build-coordinator-queue-builds-configuration-user
+                        (default "guix-build-coordinator-queue-builds"))
+  (coordinator          guix-build-coordinator-queue-builds-coordinator
+                        (default "http://localhost:8745"))
+  (systems              guix-build-coordinator-queue-builds-configuration-systems
+                        (default #f))
+  (systems-and-targets
+   guix-build-coordinator-queue-builds-configuration-system-and-targets
+   (default #f))
+  (guix-data-service
+   guix-build-coordinator-queue-builds-configuration-guix-data-service
+   (default "https://data.guix.gnu.org"))
+  (processed-commits-file
+   guix-build-coordinator-queue-builds-configuration-processed-commits-file
+   (default "/var/cache/guix-build-coordinator-queue-builds/processed-commits")))
+
+(define* (make-guix-build-coordinator-start-script database-uri-string
+                                                   allocation-strategy
+                                                   pid-file
+                                                   guix-build-coordinator-package
+                                                   #:key
+                                                   agent-communication-uri-string
+                                                   client-communication-uri-string
+                                                   (hooks '())
+                                                   (guile guile-3.0))
+  (program-file
+   "start-guix-build-coordinator"
+   (with-extensions (cons guix-build-coordinator-package
+                          ;; This is a poorly constructed Guile load path,
+                          ;; since it contains things that aren't Guile
+                          ;; libraries, but it means that the Guile libraries
+                          ;; needed for the Guix Build Coordinator don't need
+                          ;; to be individually specified here.
+                          (append
+                           (map second (package-inputs
+                                        guix-build-coordinator-package))
+                           (map second (package-propagated-inputs
+                                        guix-build-coordinator-package))))
+     #~(begin
+         (use-modules (srfi srfi-1)
+                      (ice-9 match)
+                      (web uri)
+                      (prometheus)
+                      (guix-build-coordinator hooks)
+                      (guix-build-coordinator datastore)
+                      (guix-build-coordinator build-allocator)
+                      (guix-build-coordinator coordinator))
+
+         (setvbuf (current-output-port) 'line)
+         (setvbuf (current-error-port) 'line)
+
+         (simple-format #t "starting the guix-build-coordinator:\n  ~A\n"
+                        (current-filename))
+         (let* ((metrics-registry (make-metrics-registry
+                                   #:namespace
+                                   "guixbuildcoordinator"))
+                (datastore (database-uri->datastore
+                            #$database-uri-string
+                            #:metrics-registry metrics-registry))
+                (hooks
+                 (list #$@(map (match-lambda
+                                 ((name . hook-gexp)
+                                  #~(cons '#$name #$hook-gexp)))
+                               hooks)))
+                (hooks-with-defaults
+                 `(,@hooks
+                   ,@(remove (match-lambda
+                               ((name . _) (assq-ref hooks name)))
+                             %default-hooks)))
+                (build-coordinator (make-build-coordinator
+                                    #:datastore datastore
+                                    #:hooks hooks-with-defaults
+                                    #:metrics-registry metrics-registry
+                                    #:allocation-strategy #$allocation-strategy)))
+
+           (run-coordinator-service
+            build-coordinator
+            #:update-datastore? #t
+            #:pid-file #$pid-file
+            #:agent-communication-uri (string->uri
+                                       #$agent-communication-uri-string)
+            #:client-communication-uri (string->uri
+                                        #$client-communication-uri-string)))))
+   #:guile guile))
+
+(define (guix-build-coordinator-shepherd-services config)
+  (match-record config <guix-build-coordinator-configuration>
+    (package user group database-uri-string
+             agent-communication-uri-string
+             client-communication-uri-string
+             allocation-strategy
+             hooks
+             guile)
+    (list
+     (shepherd-service
+      (documentation "Guix Build Coordinator")
+      (provision '(guix-build-coordinator))
+      (requirement '(networking))
+      (start #~(make-forkexec-constructor
+                (list #$(make-guix-build-coordinator-start-script
+                         database-uri-string
+                         allocation-strategy
+                         "/var/run/guix-build-coordinator/pid"
+                         package
+                         #:agent-communication-uri-string
+                         agent-communication-uri-string
+                         #:client-communication-uri-string
+                         client-communication-uri-string
+                         #:hooks hooks
+                         #:guile guile))
+                #:user #$user
+                #:group #$group
+                #:pid-file "/var/run/guix-build-coordinator/pid"
+                ;; Allow time for migrations to run
+                #:pid-file-timeout 60
+                #:environment-variables
+                `(,(string-append
+                    "GUIX_LOCPATH=" #$glibc-utf8-locales "/lib/locale")
+                  "LC_ALL=en_US.utf8"
+                  "PATH=/run/current-system/profile/bin") ; for hooks
+                #:log-file "/var/log/guix-build-coordinator/coordinator.log"))
+      (stop #~(make-kill-destructor))))))
+
+(define (guix-build-coordinator-activation config)
+  #~(begin
+      (use-modules (guix build utils))
+
+      (define %user (getpw "guix-build-coordinator"))
+
+      (chmod "/var/lib/guix-build-coordinator" #o755)
+
+      (mkdir-p "/var/log/guix-build-coordinator")
+
+      ;; Allow writing the PID file
+      (mkdir-p "/var/run/guix-build-coordinator")
+      (chown "/var/run/guix-build-coordinator"
+             (passwd:uid %user)
+             (passwd:gid %user))))
+
+(define (guix-build-coordinator-account config)
+  (match-record config <guix-build-coordinator-configuration>
+    (user group)
+    (list (user-group
+           (name group)
+           (system? #t))
+          (user-account
+           (name user)
+           (group group)
+           (system? #t)
+           (comment "Guix Build Coordinator user")
+           (home-directory "/var/lib/guix-build-coordinator")
+           (shell (file-append shadow "/sbin/nologin"))))))
+
+(define guix-build-coordinator-service-type
+  (service-type
+   (name 'guix-build-coordinator)
+   (extensions
+    (list
+     (service-extension shepherd-root-service-type
+                        guix-build-coordinator-shepherd-services)
+     (service-extension activation-service-type
+                        guix-build-coordinator-activation)
+     (service-extension account-service-type
+                        guix-build-coordinator-account)))
+   (default-value
+     (guix-build-coordinator-configuration))
+   (description
+    "Run an instance of the Guix Build Coordinator.")))
+
+(define (guix-build-coordinator-agent-shepherd-services config)
+  (match-record config <guix-build-coordinator-agent-configuration>
+    (package user coordinator uuid password password-file max-parallel-builds
+             derivation-substitute-urls non-derivation-substitute-urls
+             systems)
+    (list
+     (shepherd-service
+      (documentation "Guix Build Coordinator Agent")
+      (provision '(guix-build-coordinator-agent))
+      (requirement '(networking))
+      (start #~(make-forkexec-constructor
+                (list #$(file-append package "/bin/guix-build-coordinator-agent")
+                      #$(string-append "--coordinator=" coordinator)
+                      #$(string-append "--uuid=" uuid)
+                      #$@(if password
+                             #~(#$(string-append "--password=" password))
+                             #~())
+                      #$@(if password-file
+                             #~(#$(string-append "--password-file=" password-file))
+                             #~())
+                      #$(simple-format #f "--max-parallel-builds=~A"
+                                       max-parallel-builds)
+                      #$@(if derivation-substitute-urls
+                             #~(#$(string-append
+                                   "--derivation-substitute-urls="
+                                 (string-join derivation-substitute-urls " ")))
+                             #~())
+                      #$@(if non-derivation-substitute-urls
+                             #~(#$(string-append
+                                   "--non-derivation-substitute-urls="
+                                   (string-join non-derivation-substitute-urls " ")))
+                             #~())
+                      #$@(map (lambda (system)
+                                (string-append "--system=" system))
+                              (or systems '())))
+                #:user #$user
+                #:environment-variables
+                `(,(string-append
+                    "GUIX_LOCPATH=" #$glibc-utf8-locales "/lib/locale")
+                  ;; XDG_CACHE_HOME is used by Guix when caching narinfo files
+                  "XDG_CACHE_HOME=/var/cache/guix-build-coordinator-agent"
+                  "LC_ALL=en_US.utf8")
+                #:log-file "/var/log/guix-build-coordinator/agent.log"))
+      (stop #~(make-kill-destructor))))))
+
+(define (guix-build-coordinator-agent-activation config)
+  #~(begin
+      (use-modules (guix build utils))
+
+      (define %user (getpw "guix-build-coordinator-agent"))
+
+      (mkdir-p "/var/log/guix-build-coordinator")
+
+      ;; Create a cache directory for storing narinfo files if downloaded
+      (mkdir-p "/var/cache/guix-build-coordinator-agent")
+      (chown "/var/cache/guix-build-coordinator-agent"
+             (passwd:uid %user)
+             (passwd:gid %user))))
+
+(define (guix-build-coordinator-agent-account config)
+  (list (user-account
+         (name (guix-build-coordinator-agent-configuration-user config))
+         (group "nogroup")
+         (system? #t)
+         (comment "Guix Build Coordinator agent user")
+         (home-directory "/var/empty")
+         (shell (file-append shadow "/sbin/nologin")))))
+
+(define guix-build-coordinator-agent-service-type
+  (service-type
+   (name 'guix-build-coordinator-agent)
+   (extensions
+    (list
+     (service-extension shepherd-root-service-type
+                        guix-build-coordinator-agent-shepherd-services)
+     (service-extension activation-service-type
+                        guix-build-coordinator-agent-activation)
+     (service-extension account-service-type
+                        guix-build-coordinator-agent-account)))
+   (description
+    "Run a Guix Build Coordinator agent.")))
+
+(define (guix-build-coordinator-queue-builds-shepherd-services config)
+  (match-record config <guix-build-coordinator-queue-builds-configuration>
+    (package user coordinator systems systems-and-targets
+             guix-data-service processed-commits-file)
+    (list
+     (shepherd-service
+      (documentation "Guix Build Coordinator queue builds from Guix Data Service")
+      (provision '(guix-build-coordinator-queue-builds))
+      (requirement '(networking))
+      (start
+       #~(make-forkexec-constructor
+          (list
+           #$(file-append
+              package
+              "/bin/guix-build-coordinator-queue-builds-from-guix-data-service")
+           #$(string-append "--coordinator=" coordinator)
+           #$@(map (lambda (system)
+                     (string-append "--system=" system))
+                   (or systems '()))
+           #$@(map (match-lambda
+                     ((system . target)
+                      (string-append "--system-and-target=" system "=" target)))
+                   (or systems-and-targets '()))
+           #$@(if guix-data-service
+                  #~(#$(string-append "--guix-data-service=" guix-data-service))
+                  #~())
+           #$@(if processed-commits-file
+                  #~(#$(string-append "--processed-commits-file="
+                                      processed-commits-file))
+                  #~()))
+          #:user #$user
+          #:pid-file "/var/run/guix-build-coordinator-queue-builds/pid"
+          #:environment-variables
+          `(,(string-append
+              "GUIX_LOCPATH=" #$glibc-utf8-locales "/lib/locale")
+            "LC_ALL=en_US.utf8")
+          #:log-file "/var/log/guix-build-coordinator/queue-builds.log"))
+      (stop #~(make-kill-destructor))))))
+
+(define (guix-build-coordinator-queue-builds-activation config)
+  #~(begin
+      (use-modules (guix build utils))
+
+      (mkdir-p "/var/log/guix-build-coordinator")
+
+      ;; Allow writing the PID file
+      (mkdir-p "/var/run/guix-build-coordinator-queue-builds")
+      (chown "/var/run/guix-build-coordinator-queue-builds"
+             (passwd:uid %user)
+             (passwd:gid %user))))
+
+(define (guix-build-coordinator-queue-builds-account config)
+  (list (user-account
+         (name (guix-build-coordinator-queue-builds-configuration-user config))
+         (group "nogroup")
+         (system? #t)
+         (comment "Guix Build Coordinator queue-builds user")
+         (home-directory "/var/empty")
+         (shell (file-append shadow "/sbin/nologin")))))
+
+(define guix-build-coordinator-queue-builds-service-type
+  (service-type
+   (name 'guix-build-coordinator-queue-builds)
+   (extensions
+    (list
+     (service-extension shepherd-root-service-type
+                        guix-build-coordinator-queue-builds-shepherd-services)
+     (service-extension activation-service-type
+                        guix-build-coordinator-queue-builds-activation)
+     (service-extension account-service-type
+                        guix-build-coordinator-queue-builds-account)))
+   (description
+    "Run the guix-build-coordinator-queue-builds-from-guix-data-service
+script.
+
+This is a script to assist in having the Guix Build Coordinator build
+derivations stored in an instance of the Guix Data Service.")))
+
+
+;;;
+;;; Guix Data Service
+;;;
+
 (define-record-type* <guix-data-service-configuration>
   guix-data-service-configuration make-guix-data-service-configuration
   guix-data-service-configuration?
@@ -108,7 +547,7 @@ ca-certificates.crt file in the system profile."
                 #:environment-variables
                 `(,(string-append
                     "GUIX_LOCPATH=" #$glibc-utf8-locales "/lib/locale")
-                  "LC_ALL=en_US.utf8")
+                  "LC_ALL=en_US.UTF-8")
                 #:log-file "/var/log/guix-data-service/web.log"))
       (stop #~(make-kill-destructor)))
 
@@ -132,7 +571,7 @@ ca-certificates.crt file in the system profile."
                   "GIT_SSL_CAINFO=/etc/ssl/certs/ca-certificates.crt"
                   ,(string-append
                     "GUIX_LOCPATH=" #$glibc-utf8-locales "/lib/locale")
-                  "LC_ALL=en_US.utf8")
+                  "LC_ALL=en_US.UTF-8")
                 #:log-file "/var/log/guix-data-service/process-jobs.log"))
       (stop #~(make-kill-destructor))))))
 
diff --git a/gnu/services/linux.scm b/gnu/services/linux.scm
index ec42663a11..1046a7e0c2 100644
--- a/gnu/services/linux.scm
+++ b/gnu/services/linux.scm
@@ -147,35 +147,34 @@ representation."
 (define kernel-module-loader-shepherd-service
   (match-lambda
     ((and (? list? kernel-modules) ((? string?) ...))
-     (list
-      (shepherd-service
-       (documentation "Load kernel modules.")
-       (provision '(kernel-module-loader))
-       (requirement '(file-systems))
-       (one-shot? #t)
-       (modules `((srfi srfi-1)
-                  (srfi srfi-34)
-                  (srfi srfi-35)
-                  (rnrs io ports)
-                  ,@%default-modules))
-       (start
-        #~(lambda _
-            (cond
-             ((null? '#$kernel-modules) #t)
-             ((file-exists? "/proc/sys/kernel/modprobe")
-              (let ((modprobe (call-with-input-file
-                               "/proc/sys/kernel/modprobe" get-line)))
-                (guard (c ((message-condition? c)
-                           (format (current-error-port) "~a~%"
-                                   (condition-message c))
-                           #f))
-                  (every (lambda (module)
-                         (invoke/quiet modprobe "--" module))
-                         '#$kernel-modules))))
-             (else
-               (format (current-error-port) "error: ~a~%"
-                       "Kernel is missing loadable module support.")
-               #f)))))))))
+     (shepherd-service
+      (documentation "Load kernel modules.")
+      (provision '(kernel-module-loader))
+      (requirement '(file-systems))
+      (one-shot? #t)
+      (modules `((srfi srfi-1)
+                 (srfi srfi-34)
+                 (srfi srfi-35)
+                 (rnrs io ports)
+                 ,@%default-modules))
+      (start
+       #~(lambda _
+           (cond
+            ((null? '#$kernel-modules) #t)
+            ((file-exists? "/proc/sys/kernel/modprobe")
+             (let ((modprobe (call-with-input-file
+                                 "/proc/sys/kernel/modprobe" get-line)))
+               (guard (c ((message-condition? c)
+                          (format (current-error-port) "~a~%"
+                                  (condition-message c))
+                          #f))
+                 (every (lambda (module)
+                          (invoke/quiet modprobe "--" module))
+                        '#$kernel-modules))))
+            (else
+             (format (current-error-port) "error: ~a~%"
+                     "Kernel is missing loadable module support.")
+             #f))))))))
 
 (define kernel-module-loader-service-type
   (service-type
@@ -183,7 +182,7 @@ representation."
    (description "Load kernel modules.")
    (extensions
     (list (service-extension shepherd-root-service-type
-                             kernel-module-loader-shepherd-service)))
+                             (compose list kernel-module-loader-shepherd-service))))
    (compose concatenate)
    (extend append)
    (default-value '())))
@@ -196,7 +195,7 @@ representation."
 (define-record-type* <zram-device-configuration>
   zram-device-configuration make-zram-device-configuration
   zram-device-configuration?
-  (size                     zram-device-configration-size
+  (size                     zram-device-configuration-size
                             (default "1G"))     ; string or integer
   (compression-algorithm    zram-device-configuration-compression-algorithm
                             (default 'lzo))     ; symbol
diff --git a/gnu/services/mail.scm b/gnu/services/mail.scm
index cfcaf4601b..c0f6371104 100644
--- a/gnu/services/mail.scm
+++ b/gnu/services/mail.scm
@@ -4,6 +4,7 @@
 ;;; Copyright © 2017 Carlo Zancanaro <carlo@zancanaro.id.au>
 ;;; Copyright © 2017, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2019 Kristofer Buffington <kristoferbuffington@gmail.com>
+;;; Copyright © 2020 Jonathan Brielmaier <jonathan.brielmaier@web.de>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -31,6 +32,7 @@
   #:use-module (gnu system shadow)
   #:use-module (gnu packages mail)
   #:use-module (gnu packages admin)
+  #:use-module (gnu packages dav)
   #:use-module (gnu packages tls)
   #:use-module (guix records)
   #:use-module (guix packages)
@@ -70,7 +72,12 @@
             imap4d-configuration
             imap4d-configuration?
             imap4d-service-type
-            %default-imap4d-config-file))
+            %default-imap4d-config-file
+
+            radicale-configuration
+            radicale-configuration?
+            radicale-service-type
+            %default-radicale-config-file))
 
 ;;; Commentary:
 ;;;
@@ -99,7 +106,9 @@
                   (and (string? x) (not (string-index x #\space))))
                 val)))
 (define (serialize-space-separated-string-list field-name val)
-  (serialize-field field-name (string-join val " ")))
+  (match val
+    (() #f)
+    (_ (serialize-field field-name (string-join val " ")))))
 
 (define (comma-separated-string-list? val)
   (and (list? val)
@@ -479,64 +488,6 @@ interfaces.  If you want to specify non-default ports or anything more
 complex, customize the address and port fields of the
 @samp{inet-listener} of the specific services you are interested in.")
 
-  (protocols
-   (protocol-configuration-list
-    (list (protocol-configuration
-           (name "imap"))))
-   "List of protocols we want to serve.  Available protocols include
-@samp{imap}, @samp{pop3}, and @samp{lmtp}.")
-
-  (services
-   (service-configuration-list
-    (list
-     (service-configuration
-      (kind "imap-login")
-      (client-limit 0)
-      (process-limit 0)
-      (listeners
-       (list
-        (inet-listener-configuration (protocol "imap") (port 143) (ssl? #f))
-        (inet-listener-configuration (protocol "imaps") (port 993) (ssl? #t)))))
-     (service-configuration
-      (kind "pop3-login")
-      (listeners
-       (list
-        (inet-listener-configuration (protocol "pop3") (port 110) (ssl? #f))
-        (inet-listener-configuration (protocol "pop3s") (port 995) (ssl? #t)))))
-     (service-configuration
-      (kind "lmtp")
-      (client-limit 1)
-      (process-limit 0)
-      (listeners
-       (list (unix-listener-configuration (path "lmtp") (mode "0666")))))
-     (service-configuration
-      (kind "imap")
-      (client-limit 1)
-      (process-limit 1024))
-     (service-configuration
-      (kind "pop3")
-      (client-limit 1)
-      (process-limit 1024))
-     (service-configuration
-      (kind "auth")
-      (service-count 0)
-      (client-limit 0)
-      (process-limit 1)
-      (listeners
-       (list (unix-listener-configuration (path "auth-userdb")))))
-     (service-configuration
-      (kind "auth-worker")
-      (client-limit 1)
-      (process-limit 0))
-     (service-configuration
-      (kind "dict")
-      (client-limit 1)
-      (process-limit 0)
-      (listeners (list (unix-listener-configuration (path "dict")))))))
-   "List of services to enable.  Available services include @samp{imap},
-@samp{imap-login}, @samp{pop3}, @samp{pop3-login}, @samp{auth}, and
-@samp{lmtp}.")
-
   (dict
    (dict-configuration (dict-configuration))
    "Dict configuration, as created by the @code{dict-configuration}
@@ -1430,7 +1381,65 @@ greyed out, instead of only later giving \"not selectable\" popup error.
 
   (imap-urlauth-host
    (string "")
-   "Host allowed in URLAUTH URLs sent by client.  \"*\" allows all.")  )
+   "Host allowed in URLAUTH URLs sent by client.  \"*\" allows all.")
+
+  (protocols
+   (protocol-configuration-list
+    (list (protocol-configuration
+           (name "imap"))))
+   "List of protocols we want to serve.  Available protocols include
+@samp{imap}, @samp{pop3}, and @samp{lmtp}.")
+
+  (services
+   (service-configuration-list
+    (list
+     (service-configuration
+      (kind "imap-login")
+      (client-limit 0)
+      (process-limit 0)
+      (listeners
+       (list
+        (inet-listener-configuration (protocol "imap") (port 143) (ssl? #f))
+        (inet-listener-configuration (protocol "imaps") (port 993) (ssl? #t)))))
+     (service-configuration
+      (kind "pop3-login")
+      (listeners
+       (list
+        (inet-listener-configuration (protocol "pop3") (port 110) (ssl? #f))
+        (inet-listener-configuration (protocol "pop3s") (port 995) (ssl? #t)))))
+     (service-configuration
+      (kind "lmtp")
+      (client-limit 1)
+      (process-limit 0)
+      (listeners
+       (list (unix-listener-configuration (path "lmtp") (mode "0666")))))
+     (service-configuration
+      (kind "imap")
+      (client-limit 1)
+      (process-limit 1024))
+     (service-configuration
+      (kind "pop3")
+      (client-limit 1)
+      (process-limit 1024))
+     (service-configuration
+      (kind "auth")
+      (service-count 0)
+      (client-limit 0)
+      (process-limit 1)
+      (listeners
+       (list (unix-listener-configuration (path "auth-userdb")))))
+     (service-configuration
+      (kind "auth-worker")
+      (client-limit 1)
+      (process-limit 0))
+     (service-configuration
+      (kind "dict")
+      (client-limit 1)
+      (process-limit 0)
+      (listeners (list (unix-listener-configuration (path "dict")))))))
+   "List of services to enable.  Available services include @samp{imap},
+@samp{imap-login}, @samp{pop3}, @samp{pop3-login}, @samp{auth}, and
+@samp{lmtp}."))
 
 (define-configuration opaque-dovecot-configuration
   (dovecot
@@ -1832,3 +1841,75 @@ exim_group = exim
     (list (service-extension
            shepherd-root-service-type imap4d-shepherd-service)))
    (default-value (imap4d-configuration))))
+
+
+;;;
+;;; Radicale.
+;;;
+
+(define-record-type* <radicale-configuration>
+  radicale-configuration make-radicale-configuration
+  radicale-configuration?
+  (package     radicale-configuration-package
+               (default radicale))
+  (config-file radicale-configuration-config-file
+               (default %default-radicale-config-file)))
+
+(define %default-radicale-config-file
+  (plain-file "radicale.conf" "
+[auth]
+type = htpasswd
+htpasswd_filename = /var/lib/radicale/users
+htpasswd_encryption = plain
+
+[server]
+hosts = localhost:5232"))
+
+(define %radicale-accounts
+  (list (user-group
+         (name "radicale")
+         (system? #t))
+        (user-account
+         (name "radicale")
+         (group "radicale")
+         (system? #t)
+         (comment "Radicale Daemon")
+         (home-directory "/var/empty")
+         (shell (file-append shadow "/sbin/nologin")))))
+
+(define radicale-shepherd-service
+  (match-lambda
+    (($ <radicale-configuration> package config-file)
+     (list (shepherd-service
+            (provision '(radicale))
+            (documentation "Run the radicale daemon.")
+            (requirement '(networking))
+            (start #~(make-forkexec-constructor
+                      (list #$(file-append package "/bin/radicale")
+                        "-C" #$config-file)
+                      #:user "radicale"
+                      #:group "radicale"))
+            (stop #~(make-kill-destructor)))))))
+
+(define radicale-activation
+  (match-lambda
+    (($ <radicale-configuration> package config-file)
+     (with-imported-modules '((guix build utils))
+       #~(begin
+           (use-modules (guix build utils))
+           (let ((uid (passwd:uid (getpw "radicale")))
+                 (gid (group:gid (getgr "radicale"))))
+             (mkdir-p "/var/lib/radicale/collections")
+             (chown "/var/lib/radicale" uid gid)
+             (chown "/var/lib/radicale/collections" uid gid)
+             (chmod "/var/lib/radicale" #o700)))))))
+
+(define radicale-service-type
+  (service-type
+   (name 'radicale)
+   (description "Run radicale, a small CalDAV and CardDAV server.")
+   (extensions
+    (list (service-extension shepherd-root-service-type radicale-shepherd-service)
+          (service-extension account-service-type (const %radicale-accounts))
+          (service-extension activation-service-type radicale-activation)))
+   (default-value (radicale-configuration))))
diff --git a/gnu/services/mcron.scm b/gnu/services/mcron.scm
index d9627c6bd0..bd4e6e7410 100644
--- a/gnu/services/mcron.scm
+++ b/gnu/services/mcron.scm
@@ -57,8 +57,35 @@
   (jobs              mcron-configuration-jobs     ;list of <mcron-job>
                      (default '())))
 
-(define (job-file job)
-  (scheme-file "mcron-job" job))
+(define (job-files mcron jobs)
+  "Return a list of file-like object for JOBS, a list of gexps."
+  (define (validated-file job)
+    ;; This procedure behaves like 'scheme-file' but it runs 'mcron
+    ;; --schedule' to detect any error in JOB.
+    (computed-file "mcron-job"
+                   (with-imported-modules '((guix build utils))
+                     #~(begin
+                         (use-modules (guix build utils))
+
+                         (call-with-output-file "prologue"
+                           (lambda (port)
+                             ;; This prologue allows 'mcron --schedule' to
+                             ;; proceed no matter what #:user option is passed
+                             ;; to 'job'.
+                             (write '(set! getpw
+                                       (const (getpwuid (getuid))))
+                                    port)))
+
+                         (call-with-output-file "job"
+                           (lambda (port)
+                             (write '#$job port)))
+
+                         (invoke #+(file-append mcron "/bin/mcron")
+                                 "--schedule=20" "prologue" "job")
+                         (copy-file "job" #$output)))
+                   #:options '(#:env-vars (("COLUMNS" . "150")))))
+
+  (map validated-file jobs))
 
 (define (shepherd-schedule-action mcron files)
   "Return a Shepherd action that runs MCRON with '--schedule' for the given
@@ -101,7 +128,7 @@ files."
     (($ <mcron-configuration> mcron ())           ;nothing to do!
      '())
     (($ <mcron-configuration> mcron jobs)
-     (let ((files (map job-file jobs)))
+     (let ((files (job-files mcron jobs)))
        (list (shepherd-service
               (provision '(mcron))
               (requirement '(user-processes))
diff --git a/gnu/services/messaging.scm b/gnu/services/messaging.scm
index 11b41f2bf6..8f2f3914cf 100644
--- a/gnu/services/messaging.scm
+++ b/gnu/services/messaging.scm
@@ -1,7 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2017, 2018 Clément Lassieur <clement@lassieur.org>
 ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
-;;; Copyright © 2015, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2015, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2018 Pierre-Antoine Rouby <contact@parouby.fr>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -813,14 +813,15 @@ string, you could instantiate a prosody service like this:
   (match-lambda
     (($ <bitlbee-configuration> bitlbee interface port
                                 plugins extra-settings)
-     (let ((conf (mixed-text-file "bitlbee.conf"
+     (let* ((plugins (directory-union "bitlbee-plugins" plugins))
+            (conf    (mixed-text-file "bitlbee.conf"
                                   "
   [settings]
   User = bitlbee
   ConfigDir = /var/lib/bitlbee
   DaemonInterface = " interface "
   DaemonPort = " (number->string port) "
-  PluginDir = " (directory-union "bitlbee-plugins" plugins) "/lib/bitlbee
+  PluginDir = " plugins "/lib/bitlbee
 " extra-settings)))
 
        (with-imported-modules (source-module-closure
@@ -840,6 +841,11 @@ string, you could instantiate a prosody service like this:
                           (list #$(file-append bitlbee "/sbin/bitlbee")
                                 "-n" "-F" "-u" "bitlbee" "-c" #$conf)
 
+                          ;; Allow 'bitlbee-purple' to use libpurple plugins.
+                          #:environment-variables
+                          (list (string-append "PURPLE_PLUGIN_PATH="
+                                               #$plugins "/lib/purple-2"))
+
                           #:pid-file "/var/run/bitlbee.pid"
                           #:mappings (list (file-system-mapping
                                             (source "/var/lib/bitlbee")
diff --git a/gnu/services/monitoring.scm b/gnu/services/monitoring.scm
index 511f4fb2fe..5123a8c441 100644
--- a/gnu/services/monitoring.scm
+++ b/gnu/services/monitoring.scm
@@ -1,7 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2018 Sou Bunnbu <iyzsong@member.fsf.org>
 ;;; Copyright © 2018, 2019 Gábor Boskovits <boskovits@gmail.com>
-;;; Copyright © 2018, 2019 Oleg Pykhalov <go.wigust@gmail.com>
+;;; Copyright © 2018, 2019, 2020 Oleg Pykhalov <go.wigust@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -36,8 +36,12 @@
   #:use-module (srfi srfi-26)
   #:use-module (srfi srfi-35)
   #:export (darkstat-configuration
-            prometheus-node-exporter-configuration
             darkstat-service-type
+
+            prometheus-node-exporter-configuration
+            prometheus-node-exporter-configuration?
+            prometheus-node-exporter-configuration-package
+            prometheus-node-exporter-web-listen-address
             prometheus-node-exporter-service-type
 
             zabbix-server-configuration
@@ -110,6 +114,11 @@ HTTP.")
           (service-extension shepherd-root-service-type
                              (compose list darkstat-shepherd-service))))))
 
+
+;;;
+;;; Prometheus node exporter
+;;;
+
 (define-record-type* <prometheus-node-exporter-configuration>
   prometheus-node-exporter-configuration
   make-prometheus-node-exporter-configuration
@@ -117,31 +126,73 @@ HTTP.")
   (package prometheus-node-exporter-configuration-package
            (default go-github-com-prometheus-node-exporter))
   (web-listen-address prometheus-node-exporter-web-listen-address
-                      (default ":9100")))
+                      (default ":9100"))
+  (textfile-directory prometheus-node-exporter-textfile-directory
+                      (default "/var/lib/prometheus/node-exporter"))
+  (extra-options      prometheus-node-exporter-extra-options
+                      (default '())))
+
+(define %prometheus-node-exporter-accounts
+  (list (user-account
+         (name "prometheus-node-exporter")
+         (group "prometheus-node-exporter")
+         (system? #t)
+         (comment "Prometheus node exporter daemon user")
+         (home-directory "/var/empty")
+         (shell (file-append shadow "/sbin/nologin")))
+        (user-group
+         (name "prometheus-node-exporter")
+         (system? #t))))
 
 (define prometheus-node-exporter-shepherd-service
   (match-lambda
     (( $ <prometheus-node-exporter-configuration>
-         package web-listen-address)
-     (shepherd-service
-      (documentation "Prometheus node exporter.")
-      (provision '(prometheus-node-exporter))
-      (requirement '(networking))
-      (start #~(make-forkexec-constructor
-                (list #$(file-append package "/bin/node_exporter")
-                      "--web.listen-address" #$web-listen-address)))
-      (stop #~(make-kill-destructor))))))
+         package web-listen-address textfile-directory extra-options)
+     (list
+      (shepherd-service
+       (documentation "Prometheus node exporter.")
+       (provision '(prometheus-node-exporter))
+       (requirement '(networking))
+       (start #~(make-forkexec-constructor
+                 (list #$(file-append package "/bin/node_exporter")
+                       "--web.listen-address" #$web-listen-address
+                       #$@(if textfile-directory
+                              (list "--collector.textfile.directory"
+                                    textfile-directory)
+                              '())
+                       #$@extra-options)
+                 #:user "prometheus-node-exporter"
+                 #:group "prometheus-node-exporter"
+                 #:log-file "/var/log/prometheus-node-exporter.log"))
+       (stop #~(make-kill-destructor)))))))
+
+(define (prometheus-node-exporter-activation config)
+  (with-imported-modules '((guix build utils))
+    #~(let ((textfile-directory
+             #$(prometheus-node-exporter-textfile-directory config)))
+        (use-modules (guix build utils))
+
+        (when textfile-directory
+          (let ((user (getpw "prometheus-node-exporter")))
+            #t
+            (mkdir-p textfile-directory)
+            (chown textfile-directory (passwd:uid user) (passwd:gid user))
+            (chmod textfile-directory #o775))))))
 
 (define prometheus-node-exporter-service-type
   (service-type
    (name 'prometheus-node-exporter)
    (description
     "Run @command{node_exporter} to serve hardware and OS metrics to
-prometheus.")
+Prometheus.")
    (extensions
-    (list (service-extension
-           shepherd-root-service-type
-           (compose list prometheus-node-exporter-shepherd-service))))
+    (list
+     (service-extension account-service-type
+                        (const %prometheus-node-exporter-accounts))
+     (service-extension activation-service-type
+                        prometheus-node-exporter-activation)
+     (service-extension shepherd-root-service-type
+                        prometheus-node-exporter-shepherd-service)))
    (default-value (prometheus-node-exporter-configuration))))
 
 
@@ -279,11 +330,11 @@ configuration file."))
 
 (define (zabbix-server-activation config)
   "Return the activation gexp for CONFIG."
-  (with-imported-modules '((guix build utils)
-                           (ice-9 rdelim))
+  (with-imported-modules '((guix build utils))
     #~(begin
         (use-modules (guix build utils)
                      (ice-9 rdelim))
+
         (let ((user (getpw #$(zabbix-server-configuration-user config))))
           (for-each (lambda (file)
                       (let ((directory (dirname file)))
@@ -343,7 +394,7 @@ configuration file."))
    (group "zabbix")
    "Group who will run the Zabbix agent.")
   (hostname
-   (string "Zabbix server")
+   (string "")
    "Unique, case sensitive hostname which is required for active checks and
 must match hostname as configured on the server.")
   (log-type
@@ -393,8 +444,7 @@ configuration file."))
 
 (define (zabbix-agent-activation config)
   "Return the activation gexp for CONFIG."
-  (with-imported-modules '((guix build utils)
-                           (ice-9 rdelim))
+  (with-imported-modules '((guix build utils))
     #~(begin
         (use-modules (guix build utils)
                      (ice-9 rdelim))
diff --git a/gnu/services/networking.scm b/gnu/services/networking.scm
index 353fdce2bb..a4d4ac0646 100644
--- a/gnu/services/networking.scm
+++ b/gnu/services/networking.scm
@@ -1,7 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
-;;; Copyright © 2016, 2018 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2018, 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016 John Darrington <jmd@gnu.org>
 ;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
 ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
@@ -14,6 +14,7 @@
 ;;; Copyright © 2019 Sou Bunnbu <iyzsong@member.fsf.org>
 ;;; Copyright © 2019 Alex Griffin <a@ajgrf.com>
 ;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
+;;; Copyright © 2021 Oleg Pykhalov <go.wigust@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -42,6 +43,7 @@
   #:use-module (gnu packages admin)
   #:use-module (gnu packages base)
   #:use-module (gnu packages bash)
+  #:use-module (gnu packages cluster)
   #:use-module (gnu packages connman)
   #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages linux)
@@ -61,7 +63,9 @@
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-9)
   #:use-module (srfi srfi-26)
+  #:use-module (srfi srfi-43)
   #:use-module (ice-9 match)
+  #:use-module (json)
   #:re-export (static-networking-service
                static-networking-service-type)
   #:export (%facebook-host-aliases
@@ -180,7 +184,21 @@
             pagekite-configuration-kitesecret
             pagekite-configuration-frontend
             pagekite-configuration-kites
-            pagekite-configuration-extra-file))
+            pagekite-configuration-extra-file
+
+            yggdrasil-service-type
+            yggdrasil-configuration
+            yggdrasil-configuration?
+            yggdrasil-configuration-autoconf?
+            yggdrasil-configuration-config-file
+            yggdrasil-configuration-log-level
+            yggdrasil-configuration-log-to
+            yggdrasil-configuration-json-config
+            yggdrasil-configuration-package
+
+            keepalived-configuration
+            keepalived-configuration?
+            keepalived-service-type))
 
 ;;; Commentary:
 ;;;
@@ -265,7 +283,9 @@ fe80::1%lo0 apps.facebook.com\n")
                    (and (zero? (cdr (waitpid pid)))
                         (read-pid-file #$pid-file)))))
       (stop #~(make-kill-destructor))))
-   isc-dhcp))
+   isc-dhcp
+   (description "Run @command{dhcp}, a Dynamic Host Configuration
+Protocol (DHCP) client, on all the non-loopback network interfaces.")))
 
 (define-deprecated (dhcp-client-service #:key (dhcp isc-dhcp))
   dhcp-client-service-type
@@ -540,9 +560,7 @@ make an initial adjustment of more than 1,000 seconds."
   (constraint-from         openntpd-constraint-from
                            (default '()))
   (constraints-from        openntpd-constraints-from
-                           (default '()))
-  (allow-large-adjustment? openntpd-allow-large-adjustment?
-                           (default #f))) ; upstream default
+                           (default '())))
 
 (define (openntpd-configuration->string config)
 
@@ -574,8 +592,7 @@ make an initial adjustment of more than 1,000 seconds."
      "\n")))                              ;add a trailing newline
 
 (define (openntpd-shepherd-service config)
-  (let ((openntpd (openntpd-configuration-openntpd config))
-        (allow-large-adjustment? (openntpd-allow-large-adjustment? config)))
+  (let ((openntpd (openntpd-configuration-openntpd config)))
 
     (define ntpd.conf
       (plain-file "ntpd.conf" (openntpd-configuration->string config)))
@@ -587,10 +604,7 @@ make an initial adjustment of more than 1,000 seconds."
            (start #~(make-forkexec-constructor
                      (list (string-append #$openntpd "/sbin/ntpd")
                            "-f" #$ntpd.conf
-                           "-d" ;; don't daemonize
-                           #$@(if allow-large-adjustment?
-                                  '("-s")
-                                  '()))
+                           "-d") ;; don't daemonize
                      ;; When ntpd is daemonized it repeatedly tries to respawn
                      ;; while running, leading shepherd to disable it.  To
                      ;; prevent spamming stderr, redirect output to logfile.
@@ -1163,7 +1177,8 @@ wireless networking."))))
             (start #~(make-forkexec-constructor
                       (list (string-append #$connman
                                            "/sbin/connmand")
-                            "-n" "-r"
+                            "--nodaemon"
+                            "--nodnsproxy"
                             #$@(if disable-vpn? '("--noplugin=vpn") '()))
 
                       ;; As connman(8) notes, when passing '-n', connman
@@ -1323,7 +1338,7 @@ whatever the thing is supposed to do).")))
   (wpa-supplicant     wpa-supplicant-configuration-wpa-supplicant ;<package>
                       (default wpa-supplicant))
   (requirement        wpa-supplicant-configuration-requirement    ;list of symbols
-                      (default '(user-processes dbus-system loopback syslogd)))
+                      (default '(user-processes loopback syslogd)))
   (pid-file           wpa-supplicant-configuration-pid-file       ;string
                       (default "/var/run/wpa_supplicant.pid"))
   (dbus?              wpa-supplicant-configuration-dbus?          ;Boolean
@@ -1342,7 +1357,9 @@ whatever the thing is supposed to do).")))
      (list (shepherd-service
             (documentation "Run the WPA supplicant daemon")
             (provision '(wpa-supplicant))
-            (requirement requirement)
+            (requirement (if dbus?
+                             (cons 'dbus-system requirement)
+                             requirement))
             (start #~(make-forkexec-constructor
                       (list (string-append #$wpa-supplicant
                                            "/sbin/wpa_supplicant")
@@ -1747,4 +1764,146 @@ table inet filter {
     "Run @url{https://pagekite.net/,PageKite}, a tunneling solution to make
 local servers publicly accessible on the web, even behind NATs and firewalls.")))
 
+
+;;;
+;;; Yggdrasil
+;;;
+
+(define-record-type* <yggdrasil-configuration>
+  yggdrasil-configuration
+  make-yggdrasil-configuration
+  yggdrasil-configuration?
+  (package yggdrasil-configuration-package
+           (default yggdrasil))
+  (json-config yggdrasil-configuration-json-config
+               (default '()))
+  (config-file yggdrasil-config-file
+               (default "/etc/yggdrasil-private.conf"))
+  (autoconf? yggdrasil-configuration-autoconf?
+             (default #f))
+  (log-level yggdrasil-configuration-log-level
+             (default 'info))
+  (log-to yggdrasil-configuration-log-to
+          (default 'stdout)))
+
+(define (yggdrasil-configuration-file config)
+  (define (scm->yggdrasil-json x)
+    (define key-value?
+      dotted-list?)
+    (define (param->camel str)
+      (string-concatenate
+       (map
+	string-capitalize
+	(string-split str (cut eqv? <> #\-)))))
+    (cond
+     ((key-value? x)
+      (let ((k (car x))
+	    (v (cdr x)))
+	(cons
+	 (if (symbol? k)
+	     (param->camel (symbol->string k))
+	     k)
+	 v)))
+     ((list? x) (map scm->yggdrasil-json x))
+     ((vector? x) (vector-map scm->yggdrasil-json x))
+     (else x)))
+  (computed-file
+   "yggdrasil.conf"
+   #~(call-with-output-file #$output
+       (lambda (port)
+         ;; it's HJSON, so comments are a-okay
+         (display "# Generated by yggdrasil-service\n" port)
+         (display #$(scm->json-string
+                     (scm->yggdrasil-json
+                      (yggdrasil-configuration-json-config config)))
+                  port)))))
+
+(define (yggdrasil-shepherd-service config)
+  "Return a <shepherd-service> for yggdrasil with CONFIG."
+  (define yggdrasil-command
+    #~(append
+       (list (string-append
+              #$(yggdrasil-configuration-package config)
+              "/bin/yggdrasil")
+             "-useconffile"
+             #$(yggdrasil-configuration-file config))
+       (if #$(yggdrasil-configuration-autoconf? config)
+           '("-autoconf")
+           '())
+       (let ((extraconf #$(yggdrasil-config-file config)))
+         (if extraconf
+             (list "-extraconffile" extraconf)
+             '()))
+       (list "-loglevel"
+             #$(symbol->string
+		(yggdrasil-configuration-log-level config))
+             "-logto"
+             #$(symbol->string
+		(yggdrasil-configuration-log-to config)))))
+  (list (shepherd-service
+         (documentation "Connect to the Yggdrasil mesh network")
+         (provision '(yggdrasil))
+         (requirement '(networking))
+         (start #~(make-forkexec-constructor
+                   #$yggdrasil-command
+                   #:log-file "/var/log/yggdrasil.log"
+                   #:group "yggdrasil"))
+         (stop #~(make-kill-destructor)))))
+
+(define %yggdrasil-accounts
+  (list (user-group (name "yggdrasil") (system? #t))))
+
+(define yggdrasil-service-type
+  (service-type
+   (name 'yggdrasil)
+   (description
+    "Connect to the Yggdrasil mesh network.
+See yggdrasil -genconf for config options.")
+   (extensions
+    (list (service-extension shepherd-root-service-type
+                             yggdrasil-shepherd-service)
+          (service-extension account-service-type
+                             (const %yggdrasil-accounts))
+          (service-extension profile-service-type
+                             (compose list yggdrasil-configuration-package))))))
+
+
+;;;
+;;; Keepalived
+;;;
+
+(define-record-type* <keepalived-configuration>
+  keepalived-configuration make-keepalived-configuration
+  keepalived-configuration?
+  (keepalived  keepalived-configuration-keepalived  ;<package>
+               (default keepalived))
+  (config-file keepalived-configuration-config-file ;file-like
+               (default #f)))
+
+(define keepalived-shepherd-service
+  (match-lambda
+    (($ <keepalived-configuration> keepalived config-file)
+     (list
+      (shepherd-service
+       (provision '(keepalived))
+       (documentation "Run keepalived.")
+       (requirement '(loopback))
+       (start #~(make-forkexec-constructor
+                 (list (string-append #$keepalived "/sbin/keepalived")
+                       "--dont-fork" "--log-console" "--log-detail"
+                       "--pid=/var/run/keepalived.pid"
+                       (string-append "--use-file=" #$config-file))
+                 #:pid-file "/var/run/keepalived.pid"
+                 #:log-file "/var/log/keepalived.log"))
+       (respawn? #f)
+       (stop #~(make-kill-destructor)))))))
+
+(define keepalived-service-type
+  (service-type (name 'keepalived)
+                (extensions (list (service-extension shepherd-root-service-type
+                                                     keepalived-shepherd-service)))
+                (description
+                 "Run @uref{https://www.keepalived.org/, Keepalived}
+routing software.")))
+
 ;;; networking.scm ends here
diff --git a/gnu/services/nix.scm b/gnu/services/nix.scm
index 93f46ef71e..1aef47db0a 100644
--- a/gnu/services/nix.scm
+++ b/gnu/services/nix.scm
@@ -89,37 +89,41 @@ GID."
          (id 40000))
         (nix-build-accounts 10 #:group "nixbld")))
 
-(define nix-activation
+(define (nix-activation _)
   ;; Return the activation gexp.
+  #~(begin
+      (use-modules (guix build utils)
+                   (srfi srfi-26))
+      (for-each (cut mkdir-p <>) '("/nix/store" "/nix/var/log"
+                                   "/nix/var/nix/gcroots/per-user"
+                                   "/nix/var/nix/profiles/per-user"))
+      (chown "/nix/store"
+             (passwd:uid (getpw "root")) (group:gid (getpw "nixbld01")))
+      (chmod "/nix/store" #o775)
+      (for-each (cut chmod <> #o777) '("/nix/var/nix/profiles"
+                                       "/nix/var/nix/profiles/per-user"))))
+
+(define nix-service-etc
   (match-lambda
     (($ <nix-configuration> package sandbox build-sandbox-items extra-config)
-     (with-imported-modules (source-module-closure
-                             '((guix build store-copy)))
-       #~(begin
-           (use-modules (guix build utils)
-                        (ice-9 format)
-                        (srfi srfi-1)
-                        (srfi srfi-26))
-           (for-each (cut mkdir-p <>) '("/nix/store" "/nix/var/log"
-                                        "/nix/var/nix/gcroots/per-user"
-                                        "/nix/var/nix/profiles/per-user"))
-           (chown "/nix/store"
-                  (passwd:uid (getpw "root")) (group:gid (getpw "nixbld01")))
-           (chmod "/nix/store" #o775)
-           (for-each (cut chmod <> #o777) '("/nix/var/nix/profiles"
-                                            "/nix/var/nix/profiles/per-user"))
-           (mkdir-p "/etc/nix")
-           (with-output-to-file "/etc/nix/nix.conf"
-             (lambda _
-               (format #t "sandbox = ~a~%" (if #$sandbox "true" "false"))
-               ;; config.nix captures store file names.
-               (format #t "build-sandbox-paths = ~{~a ~}~%"
-                       (append (append-map (cut call-with-input-file <> read)
-                                           '#$(map references-file
-                                                   (list package)))
-                               '#$build-sandbox-items))
-               (for-each (cut display <>) '#$extra-config)
-               (newline))))))))
+     (let ((ref-file (references-file package)))
+       `(("nix/nix.conf"
+          ,(computed-file
+            "nix.conf"
+            #~(begin
+                (use-modules (srfi srfi-26)
+                             (ice-9 format))
+                (with-output-to-file #$output
+                  (lambda _
+                    (define internal-sandbox-paths
+                      (call-with-input-file #$ref-file read))
+
+                    (format #t "sandbox = ~a~%" (if #$sandbox "true" "false"))
+                    ;; config.nix captures store file names.
+                    (format #t "build-sandbox-paths = ~{~a ~}~%"
+                            (append internal-sandbox-paths
+                                    '#$build-sandbox-items))
+                    (for-each (cut display <>) '#$extra-config)))))))))))
 
 (define nix-shepherd-service
   ;; Return a <shepherd-service> for Nix.
@@ -143,6 +147,7 @@ GID."
     (list (service-extension shepherd-root-service-type nix-shepherd-service)
           (service-extension account-service-type nix-accounts)
           (service-extension activation-service-type nix-activation)
+          (service-extension etc-service-type nix-service-etc)
           (service-extension profile-service-type
                              (compose list nix-configuration-package))))
    (description "Run the Nix daemon.")
diff --git a/gnu/services/science.scm b/gnu/services/science.scm
index 94ff0f36f2..6f7ac91154 100644
--- a/gnu/services/science.scm
+++ b/gnu/services/science.scm
@@ -1,3 +1,21 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
+;;;
+;;; 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 services science)
   #:export (<rshiny-configuration>
             rshiny-configuration
diff --git a/gnu/services/sddm.scm b/gnu/services/sddm.scm
index 59f8b16985..694ad736dc 100644
--- a/gnu/services/sddm.scm
+++ b/gnu/services/sddm.scm
@@ -169,7 +169,7 @@ Relogin="              (if (sddm-configuration-relogin? config)
 
   (list (shepherd-service
          (documentation "SDDM display manager.")
-         (requirement '(user-processes))
+         (requirement '(user-processes elogind))
          (provision '(xorg-server display-manager))
          (start #~(make-forkexec-constructor #$sddm-command))
          (stop #~(make-kill-destructor)))))
diff --git a/gnu/services/security-token.scm b/gnu/services/security-token.scm
index 354549b33c..ec26006538 100644
--- a/gnu/services/security-token.scm
+++ b/gnu/services/security-token.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -57,7 +58,7 @@
         (modules '((gnu build shepherd)))
         (start #~(lambda _
                    (invoke #$(file-append pcsc-lite "/sbin/pcscd"))
-                   (call-with-input-file "/var/run/pcscd/pcscd.pid" read)))
+                   (call-with-input-file "/run/pcscd/pcscd.pid" read)))
         (stop #~(make-kill-destructor)))))))
 
 (define pcscd-activation
diff --git a/gnu/services/shepherd.scm b/gnu/services/shepherd.scm
index e14ceca231..d2f9776288 100644
--- a/gnu/services/shepherd.scm
+++ b/gnu/services/shepherd.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014, 2015, 2016, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2014, 2015, 2016, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
 ;;; Copyright © 2018 Carlo Zancanaro <carlo@zancanaro.id.au>
 ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
@@ -119,23 +119,25 @@ ensuring they are started and stopped in the right order.")))
   (service shepherd-root-service-type '()))
 
 (define-syntax shepherd-service-type
-  (syntax-rules ()
+  (syntax-rules (description)
     "Return a <service-type> denoting a simple shepherd service--i.e., the type
 for a service that extends SHEPHERD-ROOT-SERVICE-TYPE and nothing else.  When
 DEFAULT is given, use it as the service's default value."
-    ((_ service-name proc default)
+    ((_ service-name proc default (description text))
      (service-type
       (name service-name)
       (extensions
        (list (service-extension shepherd-root-service-type
                                 (compose list proc))))
-      (default-value default)))
-    ((_ service-name proc)
+      (default-value default)
+      (description text)))
+    ((_ service-name proc (description text))
      (service-type
       (name service-name)
       (extensions
        (list (service-extension shepherd-root-service-type
-                                (compose list proc))))))))
+                                (compose list proc))))
+      (description text)))))
 
 (define %default-imported-modules
   ;; Default set of modules imported for a service's consumption.
@@ -224,16 +226,21 @@ which is not provided by any service")
 
   (for-each assert-satisfied-requirements services))
 
+(define %store-characters
+  ;; Valid store characters; see 'checkStoreName' in the daemon.
+  (string->char-set
+   "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz+-._?="))
+
 (define (shepherd-service-file-name service)
   "Return the file name where the initialization code for SERVICE is to be
 stored."
   (let ((provisions (string-join (map symbol->string
                                       (shepherd-service-provision service)))))
     (string-append "shepherd-"
-                   (string-map (match-lambda
-                                 (#\/ #\-)
-                                 (#\  #\-)
-                                 (chr chr))
+                   (string-map (lambda (chr)
+                                 (if (char-set-contains? %store-characters chr)
+                                     chr
+                                     #\-))
                                provisions)
                    ".scm")))
 
diff --git a/gnu/services/ssh.scm b/gnu/services/ssh.scm
index ced21c0742..1891db0487 100644
--- a/gnu/services/ssh.scm
+++ b/gnu/services/ssh.scm
@@ -5,6 +5,7 @@
 ;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
 ;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2020 pinoaffe <pinoaffe@airmail.cc>
+;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -26,6 +27,7 @@
   #:use-module (gnu packages admin)
   #:use-module (gnu services)
   #:use-module (gnu services shepherd)
+  #:use-module (gnu services web)
   #:use-module (gnu system pam)
   #:use-module (gnu system shadow)
   #:use-module (guix gexp)
@@ -50,7 +52,12 @@
 
             autossh-configuration
             autossh-configuration?
-            autossh-service-type))
+            autossh-service-type
+
+            webssh-configuration
+            webssh-configuration?
+            webssh-service-type
+            %webssh-configuration-nginx))
 
 ;;; Commentary:
 ;;;
@@ -732,4 +739,126 @@ object."
                              autossh-service-activation)))
    (default-value (autossh-configuration))))
 
+
+;;;
+;;; WebSSH
+;;;
+
+(define-record-type* <webssh-configuration>
+  webssh-configuration make-webssh-configuration
+  webssh-configuration?
+  (package     webssh-configuration-package     ;package
+               (default webssh))
+  (user-name   webssh-configuration-user-name   ;string
+               (default "webssh"))
+  (group-name  webssh-configuration-group-name  ;string
+               (default "webssh"))
+  (policy      webssh-configuration-policy      ;symbol
+               (default #f))
+  (known-hosts webssh-configuration-known-hosts ;list of strings
+               (default #f))
+  (port        webssh-configuration-port        ;number
+               (default #f))
+  (address     webssh-configuration-address     ;string
+               (default #f))
+  (log-file    webssh-configuration-log-file    ;string
+               (default "/var/log/webssh.log"))
+  (log-level   webssh-configuration-log-level   ;symbol
+               (default #f)))
+
+(define %webssh-configuration-nginx
+  (nginx-server-configuration
+   (listen '("80"))
+   (locations
+    (list (nginx-location-configuration
+           (uri "/")
+           (body '("proxy_pass http://127.0.0.1:8888;"
+                   "proxy_http_version 1.1;"
+                   "proxy_read_timeout 300;"
+                   "proxy_set_header Upgrade $http_upgrade;"
+                   "proxy_set_header Connection \"upgrade\";"
+                   "proxy_set_header Host $http_host;"
+                   "proxy_set_header X-Real-IP $remote_addr;"
+                   "proxy_set_header X-Real-PORT $remote_port;")))))))
+
+(define webssh-account
+  ;; Return the user accounts and user groups for CONFIG.
+  (match-lambda
+    (($ <webssh-configuration> _ user-name group-name _ _ _ _ _ _)
+     (list (user-group
+            (name group-name))
+           (user-account
+            (name user-name)
+            (group group-name)
+            (comment "webssh privilege separation user")
+            (home-directory (string-append "/var/run/" user-name))
+            (shell #~(string-append #$shadow "/sbin/nologin")))))))
+
+(define webssh-activation
+  ;; Return the activation GEXP for CONFIG.
+  (match-lambda
+    (($ <webssh-configuration> _ user-name group-name policy known-hosts _ _
+                               log-file _)
+     (with-imported-modules '((guix build utils))
+       #~(begin
+           (let* ((home-dir (string-append "/var/run/" #$user-name))
+                  (ssh-dir (string-append home-dir "/.ssh"))
+                  (known-hosts-file (string-append ssh-dir "/known_hosts")))
+             (call-with-output-file #$log-file (const #t))
+             (mkdir-p ssh-dir)
+             (case '#$policy
+               ((reject)
+                (if '#$known-hosts
+                    (call-with-output-file known-hosts-file
+                      (lambda (port)
+                        (for-each (lambda (host) (display host port) (newline port))
+                                  '#$known-hosts)))
+                    (display-hint (G_ "webssh: reject policy requires `known-hosts'.")))))
+             (for-each (lambda (file)
+                         (chown file
+                                (passwd:uid (getpw #$user-name))
+                                (group:gid (getpw #$group-name))))
+                       (list #$log-file ssh-dir known-hosts-file))
+             (chmod ssh-dir #o700)))))))
+
+(define webssh-shepherd-service
+  (match-lambda
+    (($ <webssh-configuration> package user-name group-name policy _ port
+                               address log-file log-level)
+     (list (shepherd-service
+            (provision '(webssh))
+            (documentation "Run webssh daemon.")
+            (start #~(make-forkexec-constructor
+                      `(,(string-append #$webssh "/bin/wssh")
+                        ,(string-append "--log-file-prefix=" #$log-file)
+                        ,@(case '#$log-level
+                            ((debug) '("--logging=debug"))
+                            (else '()))
+                        ,@(case '#$policy
+                            ((reject) '("--policy=reject"))
+                            (else '()))
+                        ,@(if #$port
+                              (list (string-append "--port=" (number->string #$port)))
+                              '())
+                        ,@(if #$address
+                              (list (string-append "--address=" #$address))
+                              '()))
+                      #:user #$user-name
+                      #:group #$group-name))
+            (stop #~(make-kill-destructor)))))))
+
+(define webssh-service-type
+  (service-type
+   (name 'webssh)
+   (extensions
+    (list (service-extension shepherd-root-service-type
+                             webssh-shepherd-service)
+          (service-extension account-service-type
+                             webssh-account)
+          (service-extension activation-service-type
+                             webssh-activation)))
+   (default-value (webssh-configuration))
+   (description
+    "Run the webssh.")))
+
 ;;; ssh.scm ends here
diff --git a/gnu/services/syncthing.scm b/gnu/services/syncthing.scm
new file mode 100644
index 0000000000..12ebe7c107
--- /dev/null
+++ b/gnu/services/syncthing.scm
@@ -0,0 +1,89 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2021 Oleg Pykhalov <go.wigust@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 services syncthing)
+  #:use-module (gnu packages syncthing)
+  #:use-module (gnu services)
+  #:use-module (gnu services shepherd)
+  #:use-module (guix gexp)
+  #:use-module (guix records)
+  #:use-module (ice-9 match)
+  #:use-module (srfi srfi-1)
+  #:export (syncthing-configuration
+            syncthing-configuration?
+            syncthing-service-type))
+
+;;; Commentary:
+;;;
+;;; This module provides a service definition for the syncthing service.
+;;;
+;;; Code:
+
+(define-record-type* <syncthing-configuration>
+  syncthing-configuration make-syncthing-configuration
+  syncthing-configuration?
+  (syncthing syncthing-configuration-syncthing ;<package>
+             (default syncthing))
+  (arguments syncthing-configuration-arguments ;list of strings
+             (default '()))
+  (logflags  syncthing-configuration-logflags  ;number
+             (default 0))
+  (user      syncthing-configuration-user      ;string
+             (default #f))
+  (group     syncthing-configuration-group     ;string
+             (default "users"))
+  (home      syncthing-configuration-home      ;string
+             (default #f)))
+
+(define syncthing-shepherd-service
+  (match-lambda
+    (($ <syncthing-configuration> syncthing arguments logflags user group home)
+     (list
+      (shepherd-service
+       (provision (list (string->symbol (string-append "syncthing-" user))))
+       (documentation "Run syncthing.")
+       (requirement '(loopback))
+       (start #~(make-forkexec-constructor
+                 (append (list (string-append #$syncthing "/bin/syncthing")
+                               "-no-browser"
+                               "-no-restart"
+                               (string-append "-logflags=" (number->string #$logflags)))
+                         '#$arguments)
+                 #:user #$user
+                 #:group #$group
+                 #:environment-variables
+                 (append (list (string-append "HOME=" (or #$home (passwd:dir (getpw #$user))))
+                               "SSL_CERT_DIR=/etc/ssl/certs"
+                               "SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt")
+                         (remove (lambda (str)
+                                   (or (string-prefix? "HOME=" str)
+                                       (string-prefix? "SSL_CERT_DIR=" str)
+                                       (string-prefix? "SSL_CERT_FILE=" str)))
+                                 (environ)))))
+       (respawn? #f)
+       (stop #~(make-kill-destructor)))))))
+
+(define syncthing-service-type
+  (service-type (name 'syncthing)
+                (extensions (list (service-extension shepherd-root-service-type
+                                                     syncthing-shepherd-service)))
+                (description
+                 "Run @uref{https://github.com/syncthing/syncthing, Syncthing}
+decentralized continuous file system synchronization.")))
+
+;;; syncthing.scm ends here
diff --git a/gnu/services/version-control.scm b/gnu/services/version-control.scm
index cc07f8025b..f3df0b979f 100644
--- a/gnu/services/version-control.scm
+++ b/gnu/services/version-control.scm
@@ -307,10 +307,15 @@ access to exported repositories under @file{/srv/git}."
                 (pubkey-file (string-append
                               #$home "/"
                               (basename
-                               (strip-store-file-name admin-pubkey)))))
+                               (strip-store-file-name admin-pubkey))))
+                (rc-file #$(string-append home "/.gitolite.rc")))
 
            (simple-format #t "guix: gitolite: installing ~A\n" #$rc-file)
-           (copy-file #$rc-file #$(string-append home "/.gitolite.rc"))
+           (copy-file #$rc-file rc-file)
+           ;; ensure gitolite's user can read the configuration
+           (chown rc-file
+                  (passwd:uid user-info)
+                  (passwd:gid user-info))
 
            ;; The key must be writable, so copy it from the store
            (copy-file admin-pubkey pubkey-file)
diff --git a/gnu/services/virtualization.scm b/gnu/services/virtualization.scm
index b93ed70099..a45da14a80 100644
--- a/gnu/services/virtualization.scm
+++ b/gnu/services/virtualization.scm
@@ -1,7 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2017 Ryan Moe <ryan.moe@gmail.com>
-;;; Copyright © 2018 Ludovic Courtès <ludo@gnu.org>
-;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
+;;; Copyright © 2018, 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2020,2021 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -23,6 +23,8 @@
   #:use-module (gnu bootloader grub)
   #:use-module (gnu image)
   #:use-module (gnu packages admin)
+  #:use-module (gnu packages gdb)
+  #:use-module (gnu packages package-management)
   #:use-module (gnu packages ssh)
   #:use-module (gnu packages virtualization)
   #:use-module (gnu services base)
@@ -34,11 +36,11 @@
   #:use-module (gnu system file-systems)
   #:use-module (gnu system hurd)
   #:use-module (gnu system image)
-  #:use-module (gnu system images hurd)
   #:use-module (gnu system shadow)
   #:use-module (gnu system)
   #:use-module (guix derivations)
   #:use-module (guix gexp)
+  #:use-module (guix modules)
   #:use-module (guix monads)
   #:use-module (guix packages)
   #:use-module (guix records)
@@ -61,7 +63,10 @@
             hurd-vm-configuration-options
             hurd-vm-configuration-id
             hurd-vm-configuration-net-options
+            hurd-vm-configuration-secrets
+
             hurd-vm-disk-image
+            hurd-vm-port
             hurd-vm-net-options
             hurd-vm-service-type
 
@@ -712,7 +717,7 @@ potential infinite waits blocking libvirt."))
   (platforms   qemu-binfmt-configuration-platforms
                (default '()))                     ;safest default
   (guix-support? qemu-binfmt-configuration-guix-support?
-                 (default #f)))
+                 (default #t)))
 
 (define (qemu-platform->binfmt qemu platform)
   "Return a gexp that evaluates to a binfmt string for PLATFORM, using the
@@ -806,6 +811,45 @@ functionality of the kernel Linux.")))
 
 
 ;;;
+;;; Secrets for guest VMs.
+;;;
+
+(define (secret-service-activation port)
+  "Return an activation snippet 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))))))
+
+(define secret-service-type
+  (service-type
+   (name 'secret-service)
+   (extensions (list (service-extension activation-service-type
+                                        secret-service-activation)))
+   (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
+can only be accessed by their host.")))
+
+(define (secret-service-operating-system os)
+  "Return an operating system based on OS that includes the secret-service,
+that will be listening to receive secret keys on port 1004, TCP."
+  (operating-system
+    (inherit os)
+    ;; Arrange so that the secret service activation snippet shows up before
+    ;; the OpenSSH and Guix activation snippets.  That way, we receive OpenSSH
+    ;; and Guix keys before the activation snippets try to generate fresh keys
+    ;; for nothing.
+    (services (append (operating-system-user-services os)
+                      (list (service secret-service-type 1004))))))
+
+
+;;;
 ;;; The Hurd in VM service: a Childhurd.
 ;;;
 
@@ -818,6 +862,9 @@ functionality of the kernel Linux.")))
                  (bootloader grub-minimal-bootloader)
                  (target "/dev/vda")
                  (timeout 0)))
+    (packages (cons* gdb-minimal
+                     (operating-system-packages
+                      %hurd-default-operating-system)))
     (services (cons*
                (service openssh-service-type
                         (openssh-configuration
@@ -827,7 +874,16 @@ functionality of the kernel Linux.")))
                          (permit-root-login #t)
                          (allow-empty-passwords? #t)
                          (password-authentication? #t)))
-               %base-services/hurd))))
+
+               ;; By default, the secret service introduces a pre-initialized
+               ;; /etc/guix/acl file in the childhurd.  Thus, clear
+               ;; 'authorize-key?' so that it's not overridden at activation
+               ;; time.
+               (modify-services %base-services/hurd
+                 (guix-service-type config =>
+                                    (guix-configuration
+                                     (inherit config)
+                                     (authorize-key? #f))))))))
 
 (define-record-type* <hurd-vm-configuration>
   hurd-vm-configuration make-hurd-vm-configuration
@@ -849,27 +905,43 @@ functionality of the kernel Linux.")))
                (default #f))
   (net-options hurd-vm-configuration-net-options        ;list of string
                (thunked)
-               (default (hurd-vm-net-options this-record))))
+               (default (hurd-vm-net-options this-record)))
+  (secret-root hurd-vm-configuration-secret-root        ;string
+               (default "/etc/childhurd")))
 
 (define (hurd-vm-disk-image config)
-  "Return a disk-image for the Hurd according to CONFIG."
-  (let ((os (hurd-vm-configuration-os config))
-        (disk-size (hurd-vm-configuration-disk-size config)))
+  "Return a disk-image for the Hurd according to CONFIG.  The secret-service
+is added to the OS specified in CONFIG."
+  (let* ((os        (secret-service-operating-system
+                     (hurd-vm-configuration-os config)))
+         (disk-size (hurd-vm-configuration-disk-size config))
+         (type      (lookup-image-type-by-name 'hurd-qcow2))
+         (os->image (image-type-constructor type)))
     (system-image
-     (image
-      (inherit hurd-disk-image)
-      (size disk-size)
-      (operating-system os)))))
+     (image (inherit (os->image os))
+            (size disk-size)))))
 
-(define (hurd-vm-net-options config)
+(define (hurd-vm-port config base)
+  "Return the forwarded vm port for this childhurd config."
   (let ((id (or (hurd-vm-configuration-id config) 0)))
-    (define (qemu-vm-port base)
-      (number->string (+ base (* 1000 id))))
-    `("--device" "rtl8139,netdev=net0"
-      "--netdev" ,(string-append
-                   "user,id=net0"
-                   ",hostfwd=tcp:127.0.0.1:" (qemu-vm-port 10022) "-:2222"
-                   ",hostfwd=tcp:127.0.0.1:" (qemu-vm-port 15900) "-:5900"))))
+    (+ base (* 1000 id))))
+(define %hurd-vm-secrets-port 11004)
+(define %hurd-vm-ssh-port 10022)
+(define %hurd-vm-vnc-port 15900)
+
+(define (hurd-vm-net-options config)
+  `("--device" "rtl8139,netdev=net0"
+    "--netdev"
+    ,(string-append "user,id=net0"
+                    ",hostfwd=tcp:127.0.0.1:"
+                    (number->string (hurd-vm-port config %hurd-vm-secrets-port))
+                    "-:1004"
+                    ",hostfwd=tcp:127.0.0.1:"
+                    (number->string (hurd-vm-port config %hurd-vm-ssh-port))
+                    "-:2222"
+                    ",hostfwd=tcp:127.0.0.1:"
+                    (number->string (hurd-vm-port config %hurd-vm-vnc-port))
+                    "-:5900")))
 
 (define (hurd-vm-shepherd-service config)
   "Return a <shepherd-service> for a Hurd in a Virtual Machine with CONFIG."
@@ -883,13 +955,19 @@ functionality of the kernel Linux.")))
         (provisions  '(hurd-vm childhurd)))
 
     (define vm-command
-      #~(list
-         (string-append #$qemu "/bin/qemu-system-i386")
-         #$@(if (file-exists? "/dev/kvm") '("--enable-kvm") '())
-         "-m" (number->string #$memory-size)
-         #$@net-options
-         #$@options
-         "--hda" #+image))
+      #~(append (list #$(file-append qemu "/bin/qemu-system-i386")
+                      "-m" (number->string #$memory-size)
+                      #$@net-options
+                      #$@options
+                      "--hda" #+image
+
+                      ;; Cause the service to be respawned if the guest
+                      ;; reboots (it can reboot for instance if it did not
+                      ;; receive valid secrets, or if it crashed.)
+                      "--no-reboot")
+                (if (file-exists? "/dev/kvm")
+                    '("--enable-kvm")
+                    '())))
 
     (list
      (shepherd-service
@@ -900,15 +978,125 @@ functionality of the kernel Linux.")))
                             (string->symbol (number->string id)))
                       provisions)
                      provisions))
-      (requirement '(networking))
-      (start #~(make-forkexec-constructor #$vm-command))
+      (requirement '(loopback networking user-processes))
+      (start
+       (with-imported-modules
+           (source-module-closure '((gnu build secret-service)
+                                    (guix build utils)))
+         #~(lambda ()
+             (let ((pid  (fork+exec-command #$vm-command
+                                            #:user "childhurd"
+                                            ;; XXX TODO: use "childhurd" after
+                                            ;; updating Shepherd
+                                            #:group "kvm"
+                                            #:environment-variables
+                                            ;; QEMU tries to write to /var/tmp
+                                            ;; by default.
+                                            '("TMPDIR=/tmp")))
+                   (port #$(hurd-vm-port config %hurd-vm-secrets-port))
+                   (root #$(hurd-vm-configuration-secret-root config)))
+               (catch #t
+                 (lambda _
+                   ;; XXX: 'secret-service-send-secrets' won't complete until
+                   ;; the guest has booted and its secret service server is
+                   ;; running, which could take 20+ seconds during which PID 1
+                   ;; is stuck waiting.
+                   (if (secret-service-send-secrets port root)
+                       pid
+                       (begin
+                         (kill (- pid) SIGTERM)
+                         #f)))
+                 (lambda (key . args)
+                   (kill (- pid) SIGTERM)
+                   (apply throw key args)))))))
+      (modules `((gnu build secret-service)
+                 (guix build utils)
+                 ,@%default-modules))
       (stop  #~(make-kill-destructor))))))
 
+(define %hurd-vm-accounts
+  (list (user-group (name "childhurd") (system? #t))
+        (user-account
+         (name "childhurd")
+         (group "childhurd")
+         (supplementary-groups '("kvm"))
+         (comment "Privilege separation user for the childhurd")
+         (home-directory "/var/empty")
+         (shell (file-append shadow "/sbin/nologin"))
+         (system? #t))))
+
+(define (initialize-hurd-vm-substitutes)
+  "Initialize the Hurd VM's key pair and ACL and store it on the host."
+  (define run
+    (with-imported-modules '((guix build utils))
+      #~(begin
+          (use-modules (guix build utils)
+                       (ice-9 match))
+
+          (define host-key
+            "/etc/guix/signing-key.pub")
+
+          (define host-acl
+            "/etc/guix/acl")
+
+          (match (command-line)
+            ((_ guest-config-directory)
+             (setenv "GUIX_CONFIGURATION_DIRECTORY"
+                     guest-config-directory)
+             (invoke #+(file-append guix "/bin/guix") "archive"
+                     "--generate-key")
+
+             (when (file-exists? host-acl)
+               ;; Copy the host ACL.
+               (copy-file host-acl
+                          (string-append guest-config-directory
+                                         "/acl")))
+
+             (when (file-exists? host-key)
+               ;; Add the host key to the childhurd's ACL.
+               (let ((key (open-fdes host-key O_RDONLY)))
+                 (close-fdes 0)
+                 (dup2 key 0)
+                 (execl #+(file-append guix "/bin/guix")
+                        "guix" "archive" "--authorize"))))))))
+
+  (program-file "initialize-hurd-vm-substitutes" run))
+
+(define (hurd-vm-activation config)
+  "Return a gexp to activate the Hurd VM according to CONFIG."
+  (with-imported-modules '((guix build utils))
+    #~(begin
+        (use-modules (guix build utils))
+
+        (define secret-directory
+          #$(hurd-vm-configuration-secret-root config))
+
+        (define ssh-directory
+          (string-append secret-directory "/etc/ssh"))
+
+        (define guix-directory
+          (string-append secret-directory "/etc/guix"))
+
+        (unless (file-exists? ssh-directory)
+          ;; Generate SSH host keys under SSH-DIRECTORY.
+          (mkdir-p ssh-directory)
+          (invoke #$(file-append openssh "/bin/ssh-keygen")
+                  "-A" "-f" secret-directory))
+
+        (unless (file-exists? guix-directory)
+          (invoke #$(initialize-hurd-vm-substitutes)
+                  guix-directory)))))
+
 (define hurd-vm-service-type
   (service-type
    (name 'hurd-vm)
    (extensions (list (service-extension shepherd-root-service-type
-                                        hurd-vm-shepherd-service)))
+                                        hurd-vm-shepherd-service)
+                     (service-extension account-service-type
+                                        (const %hurd-vm-accounts))
+                     (service-extension activation-service-type
+                                        hurd-vm-activation)))
    (default-value (hurd-vm-configuration))
    (description
-    "Provide a Virtual Machine running the GNU/Hurd.")))
+    "Provide a virtual machine (VM) running GNU/Hurd, also known as a
+@dfn{childhurd}.")))
diff --git a/gnu/services/vpn.scm b/gnu/services/vpn.scm
index 658d5c3e88..70f2617c7e 100644
--- a/gnu/services/vpn.scm
+++ b/gnu/services/vpn.scm
@@ -273,16 +273,16 @@ servers.")
     "The device type used to represent the VPN connection.")
 
    (ca
-    (string "/etc/openvpn/ca.crt")
+    (maybe-string "/etc/openvpn/ca.crt")
     "The certificate authority to check connections against.")
 
    (cert
-    (string "/etc/openvpn/client.crt")
+    (maybe-string "/etc/openvpn/client.crt")
     "The certificate of the machine the daemon is running on. It should be signed
 by the authority given in @code{ca}.")
 
    (key
-    (string "/etc/openvpn/client.key")
+    (maybe-string "/etc/openvpn/client.key")
     "The key of the machine the daemon is running on. It must be the key whose
 certificate is @code{cert}.")
 
diff --git a/gnu/services/web.scm b/gnu/services/web.scm
index 3b9f9e40be..ff7b262b6a 100644
--- a/gnu/services/web.scm
+++ b/gnu/services/web.scm
@@ -12,6 +12,9 @@
 ;;; Copyright © 2019, 2020 Florian Pelz <pelzflorian@pelzflorian.de>
 ;;; Copyright © 2020 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2020 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
+;;; Copyright © 2020 Alexandru-Sergiu Marton <brown121407@posteo.ro>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -89,7 +92,7 @@
 
             nginx-configuration
             nginx-configuration?
-            nginx-configuartion-nginx
+            nginx-configuration-nginx
             nginx-configuration-log-directory
             nginx-configuration-run-directory
             nginx-configuration-server-blocks
@@ -151,6 +154,7 @@
             php-fpm-configuration-timezone
             php-fpm-configuration-workers-log-file
             php-fpm-configuration-file
+            php-fpm-configuration-php-ini-file
 
             php-fpm-dynamic-process-manager-configuration
             make-php-fpm-dynamic-process-manager-configuration
@@ -252,7 +256,14 @@
             mumi-configuration-sender
             mumi-configuration-smtp
 
-            mumi-service-type))
+            mumi-service-type
+
+            gmnisrv-configuration
+            gmnisrv-configuration?
+            gmnisrv-configuration-package
+            gmnisrv-configuration-config-file
+
+            gmnisrv-service-type))
 
 ;;; Commentary:
 ;;;
@@ -523,6 +534,10 @@
   (modules nginx-configuration-modules (default '()))
   (global-directives nginx-configuration-global-directives
                      (default '((events . ()))))
+  (lua-package-path nginx-lua-package-path ;list of <package>
+                    (default #f))
+  (lua-package-cpath nginx-lua-package-cpath ;list of <package>
+                     (default #f))
   (extra-content nginx-configuration-extra-content
                  (default ""))
   (file          nginx-configuration-file         ;#f | string | file-like
@@ -628,6 +643,8 @@ of index files."
                  server-names-hash-bucket-max-size
                  modules
                  global-directives
+                 lua-package-path
+                 lua-package-cpath
                  extra-content)
    (apply mixed-text-file "nginx.conf"
           (flatten
@@ -644,11 +661,25 @@ of index files."
            "    scgi_temp_path " run-directory "/scgi_temp;\n"
            "    access_log " log-directory "/access.log;\n"
            "    include " nginx "/share/nginx/conf/mime.types;\n"
+           (if lua-package-path
+               #~(format #f "    lua_package_path ~s;~%"
+                         (string-join (map (lambda (path)
+                                             (string-append path "/lib/?.lua"))
+                                           '#$lua-package-path)
+                                      ";"))
+               "")
+           (if lua-package-cpath
+               #~(format #f "    lua_package_cpath ~s;~%"
+                         (string-join (map (lambda (cpath)
+                                             (string-append cpath "/lib/lua/?.lua"))
+                                           '#$lua-package-cpath)
+                                      ";"))
+               "")
            (if server-names-hash-bucket-size
                (string-append
-                "    server_names_hash_bucket_size "
-                (number->string server-names-hash-bucket-size)
-                ";\n")
+                 "    server_names_hash_bucket_size "
+                 (number->string server-names-hash-bucket-size)
+                 ";\n")
                "")
            (if server-names-hash-bucket-max-size
                (string-append
@@ -794,13 +825,29 @@ of index files."
 		      #:user #$user #:group #$group))
             (stop #~(make-kill-destructor)))))))
 
+(define fcgiwrap-activation
+  (match-lambda
+    (($ <fcgiwrap-configuration> package socket user group)
+     #~(begin
+         ;; When listening on a unix socket, create a parent directory for the
+         ;; socket with the correct permissions.
+         (when (string-prefix? "unix:" #$socket)
+           (let ((run-directory
+                  (dirname (substring #$socket (string-length "unix:")))))
+             (mkdir-p run-directory)
+             (chown run-directory
+                    (passwd:uid (getpw #$user))
+                    (group:gid (getgr #$group)))))))))
+
 (define fcgiwrap-service-type
   (service-type (name 'fcgiwrap)
                 (extensions
                  (list (service-extension shepherd-root-service-type
                                           fcgiwrap-shepherd-service)
 		       (service-extension account-service-type
-                                          fcgiwrap-accounts)))
+                                          fcgiwrap-accounts)
+                       (service-extension activation-service-type
+                                          fcgiwrap-activation)))
                 (default-value (fcgiwrap-configuration))))
 
 (define-record-type* <php-fpm-configuration> php-fpm-configuration
@@ -839,6 +886,8 @@ of index files."
                                             (version-major (package-version php))
                                             "-fpm.www.log")))
   (file             php-fpm-configuration-file ;#f | file-like
+                    (default #f))
+  (php-ini-file     php-fpm-configuration-php-ini-file ;#f | file-like
                     (default #f)))
 
 (define-record-type* <php-fpm-dynamic-process-manager-configuration>
@@ -873,19 +922,20 @@ of index files."
 (define php-fpm-accounts
   (match-lambda
     (($ <php-fpm-configuration> php socket user group socket-user socket-group _ _ _ _ _ _)
-     (list
-      (user-group (name "php-fpm") (system? #t))
-      (user-group
-       (name group)
-       (system? #t))
-      (user-account
-       (name user)
-       (group group)
-       (supplementary-groups '("php-fpm"))
-       (system? #t)
-       (comment "php-fpm daemon user")
-       (home-directory "/var/empty")
-       (shell (file-append shadow "/sbin/nologin")))))))
+     `(,@(if (equal? group "php-fpm")
+             '()
+             (list (user-group (name "php-fpm") (system? #t))))
+       ,(user-group
+         (name group)
+         (system? #t))
+       ,(user-account
+         (name user)
+         (group group)
+         (supplementary-groups '("php-fpm"))
+         (system? #t)
+         (comment "php-fpm daemon user")
+         (home-directory "/var/empty")
+         (shell (file-append shadow "/sbin/nologin")))))))
 
 (define (default-php-fpm-config socket user group socket-user socket-group
           pid-file log-file pm display-errors timezone workers-log-file)
@@ -945,7 +995,7 @@ of index files."
   (match-lambda
     (($ <php-fpm-configuration> php socket user group socket-user socket-group
                                 pid-file log-file pm display-errors
-                                timezone workers-log-file file)
+                                timezone workers-log-file file php-ini-file)
      (list (shepherd-service
             (provision '(php-fpm))
             (documentation "Run the php-fpm daemon.")
@@ -956,7 +1006,10 @@ of index files."
                         #$(or file
                               (default-php-fpm-config socket user group
                                 socket-user socket-group pid-file log-file
-                                pm display-errors timezone workers-log-file)))
+                                pm display-errors timezone workers-log-file))
+                        #$@(if php-ini-file
+                               `("-c" ,php-ini-file)
+                               '()))
                       #:pid-file #$pid-file))
             (stop #~(make-kill-destructor)))))))
 
@@ -1096,7 +1149,7 @@ a webserver.")
                  #:user "hpcguix-web"
                  #:group "hpcguix-web"
                  #:environment-variables
-                 (list "XDG_CACHE_HOME=/var/cache"
+                 (list "XDG_CACHE_HOME=/var/cache/guix/web"
                        "SSL_CERT_DIR=/etc/ssl/certs")
                  #:log-file #$%hpcguix-web-log-file))
        (stop #~(make-kill-destructor))))))
@@ -1760,3 +1813,75 @@ WSGIPassAuthorization On
     "Run Mumi, a Web interface to the Debbugs bug-tracking server.")
    (default-value
      (mumi-configuration))))
+
+(define %default-gmnisrv-config-file
+  (plain-file "gmnisrv.ini" "
+listen=0.0.0.0:1965 [::]:1965
+
+[:tls]
+store=/var/lib/gemini/certs
+
+organization=gmnisrv on Guix user
+
+[localhost]
+root=/srv/gemini
+"))
+
+(define-record-type* <gmnisrv-configuration>
+  gmnisrv-configuration make-gmnisrv-configuration
+  gmnisrv-configuration?
+  (package     gmnisrv-configuration-package
+               (default gmnisrv))
+  (config-file gmnisrv-configuration-config-file
+               (default %default-gmnisrv-config-file)))
+
+(define gmnisrv-shepherd-service
+  (match-lambda
+    (($ <gmnisrv-configuration> package config-file)
+     (list (shepherd-service
+            (provision '(gmnisrv))
+            (requirement '(networking))
+            (documentation "Run the gmnisrv Gemini server.")
+            (start (let ((gmnisrv (file-append package "/bin/gmnisrv")))
+                     #~(make-forkexec-constructor
+                        (list #$gmnisrv "-C" #$config-file)
+                        #:user "gmnisrv" #:group "gmnisrv"
+                        #:log-file "/var/log/gmnisrv.log")))
+            (stop #~(make-kill-destructor)))))))
+
+(define %gmnisrv-accounts
+  (list (user-group (name "gmnisrv") (system? #t))
+        (user-account
+         (name "gmnisrv")
+         (group "gmnisrv")
+         (system? #t)
+         (comment "gmnisrv Gemini server")
+         (home-directory "/var/empty")
+         (shell (file-append shadow "/sbin/nologin")))))
+
+(define %gmnisrv-activation
+  (with-imported-modules '((guix build utils))
+    #~(begin
+        (use-modules (guix build utils))
+
+        (mkdir-p "/var/lib/gemini/certs")
+        (let* ((pw  (getpwnam "gmnisrv"))
+               (uid (passwd:uid pw))
+               (gid (passwd:gid pw)))
+          (chown "/var/lib/gemini" uid gid)
+          (chown "/var/lib/gemini/certs" uid gid)))))
+
+(define gmnisrv-service-type
+  (service-type
+   (name 'guix)
+   (extensions
+    (list (service-extension activation-service-type
+                             (const %gmnisrv-activation))
+          (service-extension account-service-type
+                             (const %gmnisrv-accounts))
+          (service-extension shepherd-root-service-type
+                             gmnisrv-shepherd-service)))
+   (description
+    "Run the gmnisrv Gemini server.")
+   (default-value
+     (gmnisrv-configuration))))
diff --git a/gnu/services/xorg.scm b/gnu/services/xorg.scm
index ca39994516..4590709187 100644
--- a/gnu/services/xorg.scm
+++ b/gnu/services/xorg.scm
@@ -7,6 +7,7 @@
 ;;; Copyright © 2019 Tim Gesthuizen <tim.gesthuizen@yahoo.de>
 ;;; Copyright © 2020 shtwzrd <shtwzrd@protonmail.com>
 ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
+;;; Copyright © 2020 Alex Griffin <a@ajgrf.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -925,7 +926,7 @@ the GNOME desktop environment.")
     (inherit (unix-pam-service "gdm-autologin"
                                #:login-uid? #t))
     (auth (list (pam-entry
-                 (control "[success=ok default=1]")
+                 (control "optional")
                  (module (file-append (gdm-configuration-gdm config)
                                       "/lib/security/pam_gdm.so")))
                 (pam-entry
diff --git a/gnu/system.scm b/gnu/system.scm
index 5dd2f7f680..90ad368664 100644
--- a/gnu/system.scm
+++ b/gnu/system.scm
@@ -1,15 +1,17 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2015, 2016 Alex Kost <alezost@gmail.com>
 ;;; Copyright © 2016 Chris Marusich <cmmarusich@gmail.com>
 ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
 ;;; Copyright © 2019 Meiyo Peng <meiyo.peng@gmail.com>
+;;; Copyright © 2019, 2020 Miguel Ángel Arruga Vivas <rosen644835@gmail.com>
 ;;; Copyright © 2020 Danny Milosavljevic <dannym@scratchpost.org>
 ;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
 ;;; Copyright © 2020 Florian Pelz <pelzflorian@pelzflorian.de>
 ;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <jannek@gnu.org>
+;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -38,24 +40,28 @@
   #:use-module ((guix utils) #:select (substitute-keyword-arguments))
   #:use-module (guix i18n)
   #:use-module (guix diagnostics)
+  #:use-module (gnu packages admin)
   #:use-module (gnu packages base)
   #:use-module (gnu packages bash)
+  #:use-module (gnu packages compression)
   #:use-module (gnu packages cross-base)
+  #:use-module (gnu packages cryptsetup)
+  #:use-module (gnu packages disk)
+  #:use-module (gnu packages file-systems)
+  #:use-module (gnu packages firmware)
+  #:use-module (gnu packages gawk)
   #:use-module (gnu packages guile)
   #:use-module (gnu packages guile-xyz)
-  #:use-module (gnu packages admin)
   #:use-module (gnu packages hurd)
-  #:use-module (gnu packages linux)
-  #:use-module (gnu packages pciutils)
-  #:use-module (gnu packages package-management)
   #:use-module (gnu packages less)
-  #:use-module (gnu packages zile)
-  #:use-module (gnu packages nano)
-  #:use-module (gnu packages gawk)
+  #:use-module (gnu packages linux)
   #:use-module (gnu packages man)
+  #:use-module (gnu packages nano)
+  #:use-module (gnu packages nvi)
+  #:use-module (gnu packages package-management)
+  #:use-module (gnu packages pciutils)
   #:use-module (gnu packages texinfo)
-  #:use-module (gnu packages compression)
-  #:use-module (gnu packages firmware)
+  #:use-module (gnu packages zile)
   #:use-module (gnu services)
   #:use-module (gnu services shepherd)
   #:use-module (gnu services base)
@@ -106,6 +112,7 @@
             operating-system-store-file-system
             operating-system-user-mapped-devices
             operating-system-boot-mapped-devices
+            operating-system-bootloader-crypto-devices
             operating-system-activation-script
             operating-system-user-accounts
             operating-system-shepherd-service-names
@@ -141,8 +148,11 @@
             boot-parameters-root-device
             boot-parameters-bootloader-name
             boot-parameters-bootloader-menu-entries
+            boot-parameters-store-crypto-devices
             boot-parameters-store-device
+            boot-parameters-store-directory-prefix
             boot-parameters-store-mount-point
+            boot-parameters-locale
             boot-parameters-kernel
             boot-parameters-kernel-arguments
             boot-parameters-initrd
@@ -159,6 +169,7 @@
             %base-packages-interactive
             %base-packages-linux
             %base-packages-networking
+            %base-packages-disk-utilities
             %base-packages-utils
             %base-firmware
             %default-kernel-arguments))
@@ -281,16 +292,24 @@ directly by the user."
   ;; Because we will use the 'store-device' to create the GRUB search command,
   ;; the 'store-device' has slightly different semantics than 'root-device'.
   ;; The 'store-device' can be a file system uuid, a file system label, or #f,
-  ;; but it cannot be a device path such as "/dev/sda3", since GRUB would not
-  ;; understand that.  The 'root-device', on the other hand, corresponds
+  ;; but it cannot be a device file name such as "/dev/sda3", since GRUB would
+  ;; not understand that.  The 'root-device', on the other hand, corresponds
   ;; exactly to the device field of the <file-system> object representing the
-  ;; OS's root file system, so it might be a device path like "/dev/sda3".
+  ;; OS's root file system, so it might be a device file name like
+  ;; "/dev/sda3".  The 'store-directory-prefix' field contains #f or the store
+  ;; file name inside the 'store-device' as it is seen by GRUB, e.g. it would
+  ;; contain "/storefs" if the store is located in that subvolume of a btrfs
+  ;; partition.
   (root-device      boot-parameters-root-device)
   (bootloader-name  boot-parameters-bootloader-name)
   (bootloader-menu-entries                        ;list of <menu-entry>
    boot-parameters-bootloader-menu-entries)
   (store-device     boot-parameters-store-device)
   (store-mount-point boot-parameters-store-mount-point)
+  (store-directory-prefix boot-parameters-store-directory-prefix)
+  (store-crypto-devices boot-parameters-store-crypto-devices
+                        (default '()))
+  (locale           boot-parameters-locale)
   (kernel           boot-parameters-kernel)
   (kernel-arguments boot-parameters-kernel-arguments)
   (initrd           boot-parameters-initrd)
@@ -316,11 +335,20 @@ file system labels."
       ((? bytevector? bv)                         ;old format
        (bytevector->uuid bv 'dce))
       ((? string? device)
-       ;; It used to be that we would not distinguish between labels and
-       ;; device names.  Try to infer the right thing here.
-       (if (string-prefix? "/dev/" device)
-           device
-           (file-system-label device)))))
+       (if (string-contains device ":/")
+           device ; nfs-root
+           ;; It used to be that we would not distinguish between labels and
+           ;; device names.  Try to infer the right thing here.
+           (if (string-prefix? "/" device)
+               device
+               (file-system-label device))))))
+  (define uuid-sexp->uuid
+    (match-lambda
+      (('uuid (? symbol? type) (? bytevector? bv))
+       (bytevector->uuid bv type))
+      (x
+       (warning (G_ "unrecognized uuid ~a at '~a'~%") x (port-filename port))
+       #f)))
 
   (match (read port)
     (('boot-parameters ('version 0)
@@ -366,6 +394,11 @@ file system labels."
          ((_ args) args)
          (#f       '())))
 
+      (locale
+       (match (assq 'locale rest)
+         ((_ locale) locale)
+         (#f         #f)))
+
       (store-device
        ;; Linux device names like "/dev/sda1" are not suitable GRUB device
        ;; identifiers, so we just filter them out.
@@ -378,6 +411,34 @@ file system labels."
           (_                                      ;the old format
            root-device))))
 
+      (store-directory-prefix
+       (match (assq 'store rest)
+         (('store . store-data)
+          (match (assq 'directory-prefix store-data)
+            (('directory-prefix prefix) prefix)
+            ;; No directory-prefix found.
+            (_ #f)))
+         (_
+          ;; No store found, old format.
+          #f)))
+
+      (store-crypto-devices
+       (match (assq 'store rest)
+         (('store . store-data)
+          (match (assq 'crypto-devices store-data)
+            (('crypto-devices (devices ...))
+             (map uuid-sexp->uuid devices))
+            (('crypto-devices dev)
+             (warning (G_ "unrecognized crypto-devices ~S at '~a'~%")
+                      dev (port-filename port))
+             '())
+            (_
+             ;; No crypto-devices found.
+             '())))
+         (_
+          ;; No store found, old format.
+          '())))
+
       (store-mount-point
        (match (assq 'store rest)
          (('store ('device _) ('mount-point mount-point) _ ...)
@@ -442,9 +503,9 @@ marked as 'needed-for-boot'."
     (let ((device (file-system-device fs)))
       (if (string? device)                        ;title is 'device
           (filter (lambda (md)
-                    (string=? (string-append "/dev/mapper/"
-                                             (mapped-device-target md))
-                              device))
+                    (any (cut string=? device <>)
+                         (map (cut string-append "/dev/mapper" <>)
+                              (mapped-device-targets md))))
                   (operating-system-mapped-devices os))
           '())))
 
@@ -464,11 +525,12 @@ marked as 'needed-for-boot'."
 
 (define (mapped-device-users device file-systems)
   "Return the subset of FILE-SYSTEMS that use DEVICE."
-  (let ((target (string-append "/dev/mapper/" (mapped-device-target device))))
+  (let ((targets (map (cut string-append "/dev/mapper/" <>)
+                      (mapped-device-targets device))))
     (filter (lambda (fs)
               (or (member device (file-system-dependencies fs))
                   (and (string? (file-system-device fs))
-                       (string=? (file-system-device fs) target))))
+                       (any (cut string=? (file-system-device fs) <>) targets))))
             file-systems)))
 
 (define (operating-system-user-mapped-devices os)
@@ -491,6 +553,26 @@ from the initrd."
                (any file-system-needed-for-boot? users)))
            devices)))
 
+(define (operating-system-bootloader-crypto-devices os)
+  "Return the subset of mapped devices that the bootloader must open.
+Only devices specified by uuid are supported."
+  (define (valid-crypto-device? dev)
+    (or (uuid? dev)
+        (begin
+          (warning (G_ "\
+mapped-device '~a' may not be mounted by the bootloader.~%")
+                   dev)
+          #f)))
+  (filter-map (match-lambda
+                ((and (= mapped-device-type type)
+                      (= mapped-device-source source))
+                 (and (eq? luks-device-mapping type)
+                      (valid-crypto-device? source)
+                      source))
+                (_ #f))
+              ;; XXX: Ordering is important, we trust the returned one.
+              (operating-system-boot-mapped-devices os)))
+
 (define (device-mapping-services os)
   "Return the list of device-mapping services for OS as a list."
   (map device-mapping-service
@@ -632,6 +714,8 @@ bookkeeping."
                            (operating-system-file-systems os)))
           (pam-root-service (operating-system-pam-services os))
           (operating-system-etc-service os)
+          (service setuid-program-service-type
+                   (operating-system-setuid-programs os))
           (service profile-service-type (operating-system-packages os)))))
 
 (define* (operating-system-services os)
@@ -688,7 +772,7 @@ of PROVENANCE-SERVICE-TYPE to its services."
  (cons* procps psmisc which
         (@ (gnu packages admin) shadow) ;for 'passwd'
 
-        guile-3.0
+        guile-3.0-latest
 
         ;; The packages below are also in %FINAL-INPUTS, so take them from
         ;; there to avoid duplication.
@@ -706,6 +790,7 @@ of PROVENANCE-SERVICE-TYPE to its services."
 (define %base-packages-interactive
   ;; Default set of common interactive packages.
   (list less zile nano
+        nvi
         man-db
         info-reader                     ;the standalone Info reader (no Perl)
         bash-completion
@@ -724,6 +809,19 @@ of PROVENANCE-SERVICE-TYPE to its services."
         ;; many people are familiar with, so keep it around.
         iw wireless-tools))
 
+(define %base-packages-disk-utilities
+  ;; A well-rounded set of packages for interacting with disks, partitions
+  ;; and filesystems.
+  (list parted gptfdisk ddrescue
+        ;; We used to provide fdisk from GNU fdisk, but as of version 2.0.0a
+        ;; it pulls Guile 1.8, which takes unreasonable space; furthermore
+        ;; util-linux's fdisk is already available, in %base-packages-linux.
+        cryptsetup mdadm
+        dosfstools
+        btrfs-progs
+        f2fs-tools
+        jfsutils))
+
 (define %base-packages
   ;; Default set of packages globally visible.  It should include anything
   ;; required for basic administrator tasks.
@@ -747,9 +845,21 @@ This is the GNU system.  Welcome.\n")
   "Return the default /etc/hosts file."
   (plain-file "hosts" (local-host-aliases host-name)))
 
+(define (validated-sudoers-file file)
+  "Return a copy of FILE, a sudoers file, after checking that it is
+syntactically correct."
+  (computed-file "sudoers"
+                 (with-imported-modules '((guix build utils))
+                   #~(begin
+                       (use-modules (guix build utils))
+
+                       (invoke #+(file-append sudo "/sbin/visudo")
+                               "--check" "--file" #$file)
+                       (copy-file #$file #$output)))))
+
 (define* (operating-system-etc-service os)
-  "Return a <service> that builds containing the static part of the /etc
-directory."
+  "Return a <service> that builds a directory containing the static part of
+the /etc directory."
   (let* ((login.defs
           (plain-file "login.defs"
                       (string-append
@@ -873,7 +983,9 @@ fi\n")))
        ("timezone" ,(plain-file "timezone" (operating-system-timezone os)))
        ("localtime" ,(file-append tzdata "/share/zoneinfo/"
                                   (operating-system-timezone os)))
-       ,@(if sudoers `(("sudoers" ,sudoers)) '())
+       ,@(if sudoers
+             `(("sudoers" ,(validated-sudoers-file sudoers)))
+             '())
        ,@(if hurd
              `(("login" ,(file-append hurd "/etc/login"))
                ("motd"  ,(file-append hurd "/etc/motd"))
@@ -1196,6 +1308,8 @@ a list of <menu-entry>, to populate the \"old entries\" menu."
   (let* ((file-systems    (operating-system-file-systems os))
          (root-fs         (operating-system-root-file-system os))
          (root-device     (file-system-device root-fs))
+         (locale          (operating-system-locale os))
+         (crypto-devices  (operating-system-bootloader-crypto-devices os))
          (params          (operating-system-boot-parameters
                            os root-device
                            #:system-kernel-arguments? #t))
@@ -1208,6 +1322,8 @@ a list of <menu-entry>, to populate the \"old entries\" menu."
 
     (generate-config-file bootloader-conf (list entry)
                           #:old-entries old-entries
+                          #:locale locale
+                          #:store-crypto-devices crypto-devices
                           #:store-directory-prefix
 			  (btrfs-store-subvolume-file-name file-systems))))
 
@@ -1246,6 +1362,9 @@ such as '--root' and '--load' to <boot-parameters>."
   (let* ((initrd          (and (not (operating-system-hurd os))
                                (operating-system-initrd-file os)))
          (store           (operating-system-store-file-system os))
+         (file-systems    (operating-system-file-systems os))
+         (crypto-devices  (operating-system-bootloader-crypto-devices os))
+         (locale          (operating-system-locale os))
          (bootloader      (bootloader-configuration-bootloader
                            (operating-system-bootloader os)))
          (bootloader-name (bootloader-name bootloader))
@@ -1264,7 +1383,10 @@ such as '--root' and '--load' to <boot-parameters>."
      (bootloader-name bootloader-name)
      (bootloader-menu-entries
       (bootloader-configuration-menu-entries (operating-system-bootloader os)))
+     (locale locale)
      (store-device (ensure-not-/dev (file-system-device store)))
+     (store-directory-prefix (btrfs-store-subvolume-file-name file-systems))
+     (store-crypto-devices crypto-devices)
      (store-mount-point (file-system-mount-point store)))))
 
 (define (device->sexp device)
@@ -1316,11 +1438,17 @@ being stored into the \"parameters\" file)."
                              (or (and=> (operating-system-bootloader os)
                                         bootloader-configuration-menu-entries)
                                  '())))
+                     (locale #$(boot-parameters-locale params))
                      (store
                       (device
                        #$(device->sexp (boot-parameters-store-device params)))
                       (mount-point #$(boot-parameters-store-mount-point
-                                      params))))
+                                      params))
+                      (directory-prefix
+                       #$(boot-parameters-store-directory-prefix params))
+                      (crypto-devices
+                       #$(map device->sexp
+                              (boot-parameters-store-crypto-devices params)))))
                   #:set-load-path? #f)))
 
 (define-gexp-compiler (operating-system-compiler (os <operating-system>)
diff --git a/gnu/system/examples/bare-hurd.tmpl b/gnu/system/examples/bare-hurd.tmpl
index 414a9379c8..135ed23cb6 100644
--- a/gnu/system/examples/bare-hurd.tmpl
+++ b/gnu/system/examples/bare-hurd.tmpl
@@ -5,7 +5,7 @@
 
 ;; To build a disk image for a virtual machine, do
 ;;
-;;     ./pre-inst-env guix system disk-image --target=i586-pc-gnu \
+;;     ./pre-inst-env guix system image --target=i586-pc-gnu \
 ;;         gnu/system/examples/bare-hurd.tmpl
 ;;
 ;; You may run it like so
@@ -40,15 +40,20 @@
                         %base-file-systems))
     (host-name "guixygnu")
     (timezone "Europe/Amsterdam")
+    (users (cons (user-account
+                  (name "guix")
+                  (comment "Anonymous Hurd Hacker")
+                  (group "users")
+                  (supplementary-groups '("wheel")))
+                 %base-user-accounts))
     (packages (cons openssh-sans-x %base-packages/hurd))
     (services (cons (service openssh-service-type
                              (openssh-configuration
                               (openssh openssh-sans-x)
-                              (use-pam? #f)
                               (port-number 2222)
                               (permit-root-login #t)
                               (allow-empty-passwords? #t)
                               (password-authentication? #t)))
-               %base-services/hurd))))
+                    %base-services/hurd))))
 
 %hurd-os
diff --git a/gnu/system/examples/lightweight-desktop.tmpl b/gnu/system/examples/lightweight-desktop.tmpl
index 20b122fe51..d5a63dc457 100644
--- a/gnu/system/examples/lightweight-desktop.tmpl
+++ b/gnu/system/examples/lightweight-desktop.tmpl
@@ -4,8 +4,8 @@
 
 (use-modules (gnu) (gnu system nss))
 (use-service-modules desktop)
-(use-package-modules bootloaders certs ratpoison suckless wm)
-(use-package-modules bootloaders certs ratpoison suckless wm xorg)
+(use-package-modules bootloaders certs emacs emacs-xyz ratpoison suckless wm
+                     xorg)
 
 (operating-system
   (host-name "antelope")
@@ -44,6 +44,7 @@
   (packages (append (list
                      ;; window managers
                      ratpoison i3-wm i3status dmenu
+                     emacs emacs-exwm emacs-desktop-environment
                      ;; terminal emulator
                      xterm
                      ;; for HTTPS access
diff --git a/gnu/system/examples/yggdrasil.tmpl b/gnu/system/examples/yggdrasil.tmpl
new file mode 100644
index 0000000000..be80bf4de9
--- /dev/null
+++ b/gnu/system/examples/yggdrasil.tmpl
@@ -0,0 +1,60 @@
+;; This is an operating system configuration template
+;; for a "bare bones" setup, with no X11 display server.
+
+(use-modules (gnu))
+(use-service-modules networking ssh)
+(use-package-modules admin curl networking screen)
+
+(operating-system
+  (host-name "ruby-guard-5545")
+  (timezone "Europe/Budapest")
+  (locale "en_US.utf8")
+
+  ;; Boot in "legacy" BIOS mode, assuming /dev/sdX is the
+  ;; target hard disk, and "my-root" is the label of the target
+  ;; root file system.
+  (bootloader (bootloader-configuration
+                (bootloader grub-bootloader)
+                (target "/dev/sdX")))
+  (file-systems (cons (file-system
+                        (device (file-system-label "my-root"))
+                        (mount-point "/")
+                        (type "ext4"))
+                      %base-file-systems))
+  (users (cons (user-account
+                (name "alice")
+                (comment "Bob's sister")
+                (group "users")
+                ;; adding her to the yggdrasil group means she can use
+                ;; yggdrasilctl to modify the configuration
+                (supplementary-groups '("wheel" "yggdrasil")))
+               %base-user-accounts))
+
+  ;; Globally-installed packages.
+  (packages (cons* screen curl %base-packages))
+
+  ;; Add services to the baseline: a DHCP client and
+  ;; an SSH server.
+  ;; If you add an /etc/yggdrasil-private.conf, you can log in to ssh
+  ;; using your Yggdrasil IPv6 address from another machine running Yggdrasil.
+  ;; Alternatively, the client can sit behind a router that has Yggdrasil.
+  ;; That file is specifically _not_ handled by Guix, because we don't want its
+  ;; contents to sit in the world-readable /gnu/store.
+  (services
+   (append
+    (list
+     (service dhcp-client-service-type)
+     (service yggdrasil-service-type
+              (yggdrasil-configuration
+               (log-to 'stdout)
+               (log-level 'debug)
+               (autoconf? #f)
+               (json-config
+                ;; choose a few from
+                ;; https://github.com/yggdrasil-network/public-peers
+                '((peers . #("tcp://1.2.3.4:1337"))))
+               (config-file #f)))
+     (service openssh-service-type
+              (openssh-configuration
+               (port-number 2222))))
+    %base-services)))
diff --git a/gnu/system/file-systems.scm b/gnu/system/file-systems.scm
index 5c02dfac93..464e87cb18 100644
--- a/gnu/system/file-systems.scm
+++ b/gnu/system/file-systems.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2020 Google LLC
 ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
 ;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;;
@@ -590,11 +591,8 @@ a bind mount."
                  ;; XXX: On some GNU/Linux systems, /etc/resolv.conf is a
                  ;; symlink to a file in a tmpfs which, for an unknown reason,
                  ;; cannot be bind mounted read-only within the container.
-                 ;; The same goes with /var/run/nscd, as discussed in
-                 ;; <https://bugs.gnu.org/37967>.
-                 (writable? (or (string=? file "/etc/resolv.conf")
-                                (string=? file "/var/run/nscd")))))
-              (cons "/var/run/nscd" %network-configuration-files)))
+                 (writable? (string=? file "/etc/resolv.conf"))))
+              %network-configuration-files))
 
 (define (file-system-type-predicate type)
   "Return a predicate that, when passed a file system, returns #t if that file
diff --git a/gnu/system/hurd.scm b/gnu/system/hurd.scm
index 80fffe8e45..8b46e65e31 100644
--- a/gnu/system/hurd.scm
+++ b/gnu/system/hurd.scm
@@ -26,8 +26,10 @@
   #:use-module (gnu packages admin)
   #:use-module (gnu packages base)
   #:use-module (gnu packages bash)
+  #:use-module (gnu packages compression)
   #:use-module (gnu packages cross-base)
   #:use-module (gnu packages file)
+  #:use-module (gnu packages gawk)
   #:use-module (gnu packages guile)
   #:use-module (gnu packages guile-xyz)
   #:use-module (gnu packages hurd)
@@ -42,7 +44,8 @@
   #:export (%base-packages/hurd
             %base-services/hurd
             %hurd-default-operating-system
-            %hurd-default-operating-system-kernel))
+            %hurd-default-operating-system-kernel
+            %setuid-programs/hurd))
 
 ;;; Commentary:
 ;;;
@@ -61,8 +64,9 @@
 
 (define %base-packages/hurd
   (list hurd bash coreutils file findutils grep sed
-        guile-3.0 guile-colorized guile-readline
-        net-base inetutils less shepherd which))
+        diffutils patch gawk tar gzip bzip2 xz lzip
+        guile-3.0-latest guile-colorized guile-readline
+        net-base inetutils less shadow shepherd sudo which))
 
 (define %base-services/hurd
   (list (service hurd-console-service-type
@@ -86,6 +90,17 @@
                  `(("/bin/sh" ,(file-append bash "/bin/sh"))
                    ("/usr/bin/env" ,(file-append coreutils "/bin/env"))))))
 
+(define %setuid-programs/hurd
+  ;; Default set of setuid-root programs.
+  (list (file-append shadow "/bin/passwd")
+        (file-append shadow "/bin/sg")
+        (file-append shadow "/bin/su")
+        (file-append shadow "/bin/newgrp")
+        (file-append shadow "/bin/newuidmap")
+        (file-append shadow "/bin/newgidmap")
+        (file-append sudo "/bin/sudo")
+        (file-append sudo "/bin/sudoedit")))
+
 (define %hurd-default-operating-system
   (operating-system
     (kernel %hurd-default-operating-system-kernel)
@@ -103,6 +118,4 @@
     (timezone "GNUrope")
     (name-service-switch #f)
     (essential-services (hurd-default-essential-services this-operating-system))
-    (pam-services '())
-    (setuid-programs '())
-    (sudoers-file #f)))
+    (setuid-programs %setuid-programs/hurd)))
diff --git a/gnu/system/image.scm b/gnu/system/image.scm
index 36f56e237d..1012fa6158 100644
--- a/gnu/system/image.scm
+++ b/gnu/system/image.scm
@@ -18,6 +18,8 @@
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (gnu system image)
+  #:use-module (guix diagnostics)
+  #:use-module (guix discovery)
   #:use-module (guix gexp)
   #:use-module (guix modules)
   #:use-module (guix monads)
@@ -47,11 +49,14 @@
   #:use-module (gnu packages hurd)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages mtools)
+  #:use-module (gnu packages virtualization)
   #:use-module ((srfi srfi-1) #:prefix srfi-1:)
   #:use-module (srfi srfi-11)
   #:use-module (srfi srfi-26)
+  #:use-module (srfi srfi-34)
   #:use-module (srfi srfi-35)
   #:use-module (rnrs bytevectors)
+  #:use-module (ice-9 format)
   #:use-module (ice-9 match)
   #:export (root-offset
             root-label
@@ -61,9 +66,22 @@
 
             efi-disk-image
             iso9660-image
+            arm32-disk-image
+            arm64-disk-image
 
-            find-image
-            system-image))
+            image-with-os
+            efi-raw-image-type
+            qcow2-image-type
+            iso-image-type
+            uncompressed-iso-image-type
+            arm32-image-type
+            arm64-image-type
+
+            image-with-label
+            system-image
+
+            %image-types
+            lookup-image-type-by-name))
 
 
 ;;;
@@ -110,6 +128,74 @@
            (label "GUIX_IMAGE")
            (flags '(boot)))))))
 
+(define* (arm32-disk-image #:optional (offset root-offset))
+  (image
+   (format 'disk-image)
+   (target "arm-linux-gnueabihf")
+   (partitions
+    (list (partition
+           (inherit root-partition)
+           (offset offset))))
+   ;; FIXME: Deleting and creating "/var/run" and "/tmp" on the overlayfs
+   ;; fails.
+   (volatile-root? #f)))
+
+(define* (arm64-disk-image #:optional (offset root-offset))
+  (image
+   (inherit (arm32-disk-image offset))
+   (target "aarch64-linux-gnu")))
+
+
+;;;
+;;; Images types.
+;;;
+
+(define-syntax-rule (image-with-os base-image os)
+  "Return an image inheriting from BASE-IMAGE, with the operating-system field
+set to the given OS."
+  (image
+   (inherit base-image)
+   (operating-system os)))
+
+(define efi-raw-image-type
+  (image-type
+   (name 'efi-raw)
+   (constructor (cut image-with-os efi-disk-image <>))))
+
+(define qcow2-image-type
+  (image-type
+   (name 'qcow2)
+   (constructor (cut image-with-os
+                 (image
+                  (inherit efi-disk-image)
+                  (name 'image.qcow2)
+                  (format 'compressed-qcow2))
+                 <>))))
+
+(define iso-image-type
+  (image-type
+   (name 'iso9660)
+   (constructor (cut image-with-os iso9660-image <>))))
+
+(define uncompressed-iso-image-type
+  (image-type
+   (name 'uncompressed-iso9660)
+   (constructor (cut image-with-os
+                 (image
+                  (inherit iso9660-image)
+                  (compression? #f))
+                 <>))))
+
+(define arm32-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) <>))))
+
 
 ;;
 ;; Helpers.
@@ -148,6 +234,7 @@
     (with-imported-modules `(,@(source-module-closure
                                 '((gnu build vm)
                                   (gnu build image)
+                                  (gnu build bootloader)
                                   (gnu build hurd-boot)
                                   (gnu build linux-boot)
                                   (guix store database))
@@ -156,6 +243,7 @@
       #~(begin
           (use-modules (gnu build vm)
                        (gnu build image)
+                       (gnu build bootloader)
                        (gnu build hurd-boot)
                        (gnu build linux-boot)
                        (guix store database)
@@ -206,8 +294,8 @@ used in the image."
     (define (format->image-type format)
       ;; Return the genimage format corresponding to FORMAT.  For now, only
       ;; the hdimage format (raw disk-image) is supported.
-      (case format
-        ((disk-image) "hdimage")
+      (cond
+       ((memq format '(disk-image compressed-qcow2)) "hdimage")
         (else
          (raise (condition
                  (&message
@@ -266,6 +354,9 @@ used in the image."
                                        #$output
                                        image-root)))))
         (computed-file "partition.img" image-builder
+                       ;; Allow offloading so that this I/O-intensive process
+                       ;; doesn't run on the build farm's head node.
+                       #:local-build? #f
                        #:options `(#:references-graphs ,inputs))))
 
     (define (partition->config partition)
@@ -305,25 +396,25 @@ image ~a {
          (name (if image-name
                    (symbol->string image-name)
                    name))
+         (format (image-format image))
          (substitutable? (image-substitutable? image))
          (builder
           (with-imported-modules*
-           (let ((inputs '#+(list genimage coreutils findutils))
+           (let ((inputs '#+(list genimage coreutils findutils qemu-minimal))
                  (bootloader-installer
-                  #+(bootloader-disk-image-installer bootloader)))
+                  #+(bootloader-disk-image-installer bootloader))
+                 (out-image (string-append "images/" #$genimage-name)))
              (set-path-environment-variable "PATH" '("bin" "sbin") inputs)
-             (genimage #$(image->genimage-cfg image) #$output)
+             (genimage #$(image->genimage-cfg image))
              ;; Install the bootloader directly on the disk-image.
              (when bootloader-installer
                (bootloader-installer
                 #+(bootloader-package bootloader)
                 #$(root-partition-index image)
-                (string-append #$output "/" #$genimage-name))))))
-         (image-dir (computed-file "image-dir" builder)))
-    (computed-file name
-                   #~(symlink
-                      (string-append #$image-dir "/" #$genimage-name)
-                      #$output)
+                out-image))
+             (convert-disk-image out-image '#$format #$output)))))
+    (computed-file name builder
+                   #:local-build? #f              ;too I/O-intensive
                    #:options `(#:substitutable? ,substitutable?))))
 
 
@@ -339,7 +430,7 @@ image ~a {
 
 (define* (system-iso9660-image image
                                #:key
-                               (name "iso9660-image")
+                               (name "image.iso")
                                bootcfg
                                bootloader
                                register-closures?
@@ -401,9 +492,26 @@ used in the image. "
                                  #:volume-id #$root-label
                                  #:volume-uuid #$root-uuid)))))
     (computed-file name builder
+                   ;; Allow offloading so that this I/O-intensive process
+                   ;; doesn't run on the build farm's head node.
+                   #:local-build? #f
                    #:options `(#:references-graphs ,inputs
                                #:substitutable? ,substitutable?))))
 
+(define (image-with-label base-image label)
+  "The volume ID of an ISO is the label of the first partition.  This procedure
+returns an image record where the first partition's label is set to <label>."
+  (image
+    (inherit base-image)
+    (partitions
+      (match (image-partitions base-image)
+        ((boot others ...)
+         (cons
+           (partition
+             (inherit boot)
+             (label label))
+           others))))))
+
 
 ;;
 ;; Image creation.
@@ -426,7 +534,7 @@ used in the image. "
       image-size)
      (else root-size))))
 
-(define* (image-with-os base-image os)
+(define* (image-with-os* base-image os)
   "Return an image based on BASE-IMAGE but with the operating-system field set
 to OS.  Also set the UUID and the size of the root partition."
   (define root-file-system
@@ -452,7 +560,9 @@ to OS.  Also set the UUID and the size of the root partition."
   "Return an operating-system based on the one specified in IMAGE, but
 suitable for image creation.  Assign an UUID to the root file-system, so that
 it can be used for bootloading."
-  (define volatile-root? (image-volatile-root? image))
+  (define volatile-root? (if (eq? (image-format image) 'iso9660)
+                             #t
+                             (image-volatile-root? image)))
 
   (define (root-uuid os)
     ;; UUID of the root file system, computed in a deterministic fashion.
@@ -468,7 +578,9 @@ it can be used for bootloading."
          (file-systems-to-keep
           (srfi-1:remove
            (lambda (fs)
-             (string=? (file-system-mount-point fs) "/"))
+             (let ((mount-point (file-system-mount-point fs)))
+               (or (string=? mount-point "/")
+                   (string=? mount-point "/boot/efi"))))
            (operating-system-file-systems base-os)))
          (format (image-format image))
          (os
@@ -507,20 +619,21 @@ image, depending on IMAGE format."
 
   (with-parameters ((%current-target-system target))
     (let* ((os (operating-system-for-image image))
-           (image* (image-with-os image os))
+           (image* (image-with-os* image os))
+           (image-format (image-format image))
            (register-closures? (has-guix-service-type? os))
            (bootcfg (operating-system-bootcfg os))
            (bootloader (bootloader-configuration-bootloader
                         (operating-system-bootloader os))))
-      (case (image-format image)
-        ((disk-image)
+      (cond
+       ((memq image-format '(disk-image compressed-qcow2))
          (system-disk-image image*
                             #:bootcfg bootcfg
                             #:bootloader bootloader
                             #:register-closures? register-closures?
                             #:inputs `(("system" ,os)
                                        ("bootcfg" ,bootcfg))))
-        ((iso9660)
+       ((memq image-format '(iso9660))
          (system-iso9660-image
           image*
           #:bootcfg bootcfg
@@ -539,18 +652,34 @@ image, depending on IMAGE format."
           #:grub-mkrescue-environment
           '(("MKRESCUE_SED_MODE" . "mbr_only"))))))))
 
-(define (find-image file-system-type target)
-  "Find and return an image built that could match the given FILE-SYSTEM-TYPE,
-built for TARGET.  This is useful to adapt to interfaces written before the
-addition of the <image> record."
-  (match file-system-type
-    ("iso9660" iso9660-image)
-    (_ (cond
-        ((and target
-              (hurd-triplet? target))
-         (module-ref (resolve-interface '(gnu system images hurd))
-                     'hurd-disk-image))
-        (else
-         efi-disk-image)))))
+
+;;
+;; Image detection.
+;;
+
+(define (image-modules)
+  "Return the list of image modules."
+  (cons (resolve-interface '(gnu system image))
+        (all-modules (map (lambda (entry)
+                            `(,entry . "gnu/system/images/"))
+                          %load-path)
+                     #:warn warn-about-load-error)))
+
+(define %image-types
+  ;; The list of publically-known image types.
+  (delay (fold-module-public-variables (lambda (obj result)
+                                         (if (image-type? obj)
+                                             (cons obj result)
+                                             result))
+                                       '()
+                                       (image-modules))))
+
+(define (lookup-image-type-by-name name)
+  "Return the image type called NAME."
+  (or (srfi-1:find (lambda (image-type)
+                     (eq? name (image-type-name image-type)))
+                   (force %image-types))
+      (raise
+       (formatted-message (G_ "~a: no such image type") name))))
 
 ;;; image.scm ends here
diff --git a/gnu/system/images/hurd.scm b/gnu/system/images/hurd.scm
index d87640e8e3..4417952c5d 100644
--- a/gnu/system/images/hurd.scm
+++ b/gnu/system/images/hurd.scm
@@ -29,9 +29,13 @@
   #:use-module (gnu system file-systems)
   #:use-module (gnu system hurd)
   #:use-module (gnu system image)
+  #:use-module (srfi srfi-26)
   #:export (hurd-barebones-os
             hurd-disk-image
-            hurd-barebones-disk-image))
+            hurd-image-type
+            hurd-qcow2-image-type
+            hurd-barebones-disk-image
+            hurd-barebones-qcow2-image))
 
 (define hurd-barebones-os
   (operating-system
@@ -82,8 +86,28 @@
            (flags '(boot))
            (initializer hurd-initialize-root-partition))))))
 
+(define hurd-image-type
+  (image-type
+   (name 'hurd-raw)
+   (constructor (cut image-with-os hurd-disk-image <>))))
+
+(define hurd-qcow2-image-type
+  (image-type
+   (name 'hurd-qcow2)
+   (constructor (lambda (os)
+                  (image
+                   (inherit hurd-disk-image)
+                   (format 'compressed-qcow2)
+                   (operating-system os))))))
+
 (define hurd-barebones-disk-image
   (image
-   (inherit hurd-disk-image)
-   (name 'hurd-barebones-disk-image)
-   (operating-system hurd-barebones-os)))
+   (inherit
+    (os->image hurd-barebones-os #: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))
+   (name 'hurd-barebones.qcow2)))
diff --git a/gnu/system/images/novena.scm b/gnu/system/images/novena.scm
new file mode 100644
index 0000000000..dfaf2c60ee
--- /dev/null
+++ b/gnu/system/images/novena.scm
@@ -0,0 +1,61 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2020 Mathieu Othacehe <m.othacehe@gmail.com>
+;;; Copyright © 2020 Danny Milosavljevic <dannym@scratchpost.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 system images novena)
+  #:use-module (gnu bootloader)
+  #:use-module (gnu bootloader u-boot)
+  #:use-module (gnu image)
+  #:use-module (gnu packages linux)
+  #:use-module (gnu services)
+  #:use-module (gnu services base)
+  #:use-module (gnu system)
+  #:use-module (gnu system file-systems)
+  #:use-module (gnu system image)
+  #:use-module (srfi srfi-26)
+  #:export (novena-barebones-os
+            novena-image-type
+            novena-barebones-raw-image))
+
+(define novena-barebones-os
+  (operating-system
+    (host-name "vignemale")
+    (timezone "Europe/Paris")
+    (locale "en_US.utf8")
+    (bootloader (bootloader-configuration
+                 (bootloader u-boot-novena-bootloader)
+                 (target "/dev/vda")))
+    (initrd-modules '("sdhci-esdhc-imx" "ahci_imx" "i2c-dev"))
+    ;(kernel linux-libre-arm-generic)
+    (kernel-arguments '("console=ttymxc1,115200"))
+    (file-systems (cons (file-system
+                          (device (file-system-label "my-root"))
+                          (mount-point "/")
+                          (type "ext4"))
+                        %base-file-systems))))
+
+(define novena-image-type
+  (image-type
+   (name 'novena-raw)
+   (constructor (cut image-with-os (arm32-disk-image) <>))))
+
+(define novena-barebones-raw-image
+  (image
+   (inherit
+    (os->image novena-barebones-os #:type novena-image-type))
+   (name 'novena-barebones-raw-image)))
diff --git a/gnu/system/images/pine64.scm b/gnu/system/images/pine64.scm
new file mode 100644
index 0000000000..63b31399a5
--- /dev/null
+++ b/gnu/system/images/pine64.scm
@@ -0,0 +1,66 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2020 Mathieu Othacehe <m.othacehe@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 system images pine64)
+  #:use-module (gnu bootloader)
+  #:use-module (gnu bootloader u-boot)
+  #:use-module (gnu image)
+  #:use-module (gnu packages linux)
+  #:use-module (gnu services)
+  #:use-module (gnu services base)
+  #:use-module (gnu system)
+  #:use-module (gnu system file-systems)
+  #:use-module (gnu system image)
+  #:use-module (srfi srfi-26)
+  #:export (pine64-barebones-os
+            pine64-image-type
+            pine64-barebones-raw-image))
+
+(define pine64-barebones-os
+  (operating-system
+    (host-name "vignemale")
+    (timezone "Europe/Paris")
+    (locale "en_US.utf8")
+    (bootloader (bootloader-configuration
+                 (bootloader u-boot-pine64-lts-bootloader)
+                 (target "/dev/vda")))
+    (initrd-modules '())
+    (kernel linux-libre-arm64-generic)
+    (file-systems (cons (file-system
+                          (device (file-system-label "my-root"))
+                          (mount-point "/")
+                          (type "ext4"))
+                        %base-file-systems))
+    (services (cons (service agetty-service-type
+                             (agetty-configuration
+                              (extra-options '("-L")) ; no carrier detect
+                              (baud-rate "115200")
+                              (term "vt100")
+                              (tty "ttyS0")))
+                    %base-services))))
+
+(define pine64-image-type
+  (image-type
+   (name 'pine64-raw)
+   (constructor (cut image-with-os (arm64-disk-image) <>))))
+
+(define pine64-barebones-raw-image
+  (image
+   (inherit
+    (os->image pine64-barebones-os #:type pine64-image-type))
+   (name 'pine64-barebones-raw-image)))
diff --git a/gnu/system/images/pinebook-pro.scm b/gnu/system/images/pinebook-pro.scm
new file mode 100644
index 0000000000..22997fd742
--- /dev/null
+++ b/gnu/system/images/pinebook-pro.scm
@@ -0,0 +1,68 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2020 Mathieu Othacehe <m.othacehe@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 system images pinebook-pro)
+  #:use-module (gnu bootloader)
+  #:use-module (gnu bootloader u-boot)
+  #:use-module (gnu image)
+  #:use-module (gnu packages linux)
+  #:use-module (gnu services)
+  #:use-module (gnu services base)
+  #:use-module (gnu system)
+  #:use-module (gnu system file-systems)
+  #:use-module (gnu system image)
+  #:use-module (srfi srfi-26)
+  #:export (pinebook-pro-barebones-os
+            pinebook-pro-image-type
+            pinebook-pro-barebones-raw-image))
+
+(define pinebook-pro-barebones-os
+  (operating-system
+    (host-name "viso")
+    (timezone "Europe/Paris")
+    (locale "en_US.utf8")
+    (bootloader (bootloader-configuration
+                 (bootloader u-boot-pinebook-pro-rk3399-bootloader)
+                 (target "/dev/vda")))
+    (initrd-modules '())
+    (kernel linux-libre-arm64-generic)
+    (file-systems (cons (file-system
+                          (device (file-system-label "my-root"))
+                          (mount-point "/")
+                          (type "ext4"))
+                        %base-file-systems))
+    (services (cons (service agetty-service-type
+                             (agetty-configuration
+                              (extra-options '("-L")) ; no carrier detect
+                              (baud-rate "115200")
+                              (term "vt100")
+                              (tty "ttyS2")))
+                    %base-services))))
+
+(define pinebook-pro-image-type
+  (image-type
+   (name 'pinebook-pro-raw)
+   (constructor (cut image-with-os
+                     (arm64-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))
+   (name 'pinebook-pro-barebones-raw-image)))
diff --git a/gnu/system/install.scm b/gnu/system/install.scm
index a87c2f4207..7fa5c15324 100644
--- a/gnu/system/install.scm
+++ b/gnu/system/install.scm
@@ -1,10 +1,11 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2016 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2017, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2020 Florian Pelz <pelzflorian@pelzflorian.de>
+;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -33,6 +34,7 @@
   #:use-module ((guix store) #:select (%store-prefix))
   #:use-module (gnu installer)
   #:use-module (gnu system locale)
+  #:use-module (gnu services avahi)
   #:use-module (gnu services dbus)
   #:use-module (gnu services networking)
   #:use-module (gnu services shepherd)
@@ -41,18 +43,13 @@
   #:use-module (gnu packages bash)
   #:use-module (gnu packages bootloaders)
   #:use-module (gnu packages certs)
-  #:use-module (gnu packages file-systems)
+  #:use-module (gnu packages compression)
   #:use-module (gnu packages fonts)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages guile)
   #:use-module (gnu packages linux)
-  #:use-module (gnu packages ssh)
-  #:use-module (gnu packages cryptsetup)
   #:use-module (gnu packages package-management)
-  #:use-module (gnu packages disk)
   #:use-module (gnu packages texinfo)
-  #:use-module (gnu packages compression)
-  #:use-module (gnu packages nvi)
   #:use-module (gnu packages xorg)
   #:use-module (ice-9 match)
   #:use-module (srfi srfi-26)
@@ -175,43 +172,17 @@ manual."
   ;; Sub-directory used as the backing store for copy-on-write.
   "/tmp/guix-inst")
 
-(define (make-cow-store target)
-  "Return a gexp that makes the store copy-on-write, using TARGET as the
-backing store.  This is useful when TARGET is on a hard disk, whereas the
-current store is on a RAM disk."
-
-  (define (set-store-permissions directory)
-    ;; Set the right perms on DIRECTORY to use it as the store.
-    #~(begin
-        (chown #$directory 0 30000)             ;use the fixed 'guixbuild' GID
-        (chmod #$directory #o1775)))
-
-  #~(begin
-      ;; Bind-mount TARGET's /tmp in case we need space to build things.
-      (let ((tmpdir (string-append #$target "/tmp")))
-        (mkdir-p tmpdir)
-        (mount tmpdir "/tmp" "none" MS_BIND))
-
-      (let* ((rw-dir (string-append target #$%backing-directory))
-             (work-dir (string-append rw-dir "/../.overlayfs-workdir")))
-        (mkdir-p rw-dir)
-        (mkdir-p work-dir)
-        (mkdir-p "/.rw-store")
-        #$(set-store-permissions #~rw-dir)
-        #$(set-store-permissions "/.rw-store")
-
-        ;; Mount the overlay, then atomically make it the store.
-        (mount "none" "/.rw-store" "overlay" 0
-               (string-append "lowerdir=" #$(%store-prefix) ","
-                              "upperdir=" rw-dir ","
-                              "workdir=" work-dir))
-        (mount "/.rw-store" #$(%store-prefix) "" MS_MOVE)
-        (rmdir "/.rw-store"))))
-
 (define cow-store-service-type
   (shepherd-service-type
    'cow-store
    (lambda _
+     (define (import-module? module)
+       ;; Since we don't use deduplication support in 'populate-store', don't
+       ;; import (guix store deduplication) and its dependencies, which
+       ;; includes Guile-Gcrypt.
+       (and (guix-module-name? module)
+            (not (equal? module '(guix store deduplication)))))
+
      (shepherd-service
       (requirement '(root-file-system user-processes))
       (provision '(cow-store))
@@ -222,20 +193,28 @@ the given target.")
       ;; This is meant to be explicitly started by the user.
       (auto-start? #f)
 
-      (start #~(case-lambda
-                 ((target)
-                  #$(make-cow-store #~target)
-                  target)
-                 (else
-                  ;; Do nothing, and mark the service as stopped.
-                  #f)))
+      (modules `((gnu build install)
+                 ,@%default-modules))
+      (start
+       (with-imported-modules (source-module-closure
+                               '((gnu build install))
+                               #:select? import-module?)
+         #~(case-lambda
+             ((target)
+              (mount-cow-store target #$%backing-directory)
+              target)
+             (else
+              ;; Do nothing, and mark the service as stopped.
+              #f))))
       (stop #~(lambda (target)
                 ;; Delete the temporary directory, but leave everything
                 ;; mounted as there may still be processes using it since
                 ;; 'user-processes' doesn't depend on us.  The 'user-file-systems'
                 ;; service will unmount TARGET eventually.
                 (delete-file-recursively
-                 (string-append target #$%backing-directory))))))))
+                 (string-append target #$%backing-directory))))))
+   (description "Make the store copy-on-write, with writes going to \
+the given target.")))
 
 (define (cow-store-service)
   "Return a service that makes the store copy-on-write, such that writes go to
@@ -367,6 +346,10 @@ Access documentation at any time by pressing Alt-F2.\x1b[0m
           ;; The usual services.
           (syslog-service)
 
+          ;; Use the Avahi daemon to discover substitute servers on the local
+          ;; network.  It can be faster than fetching from remote servers.
+          (service avahi-service-type)
+
           ;; The build daemon.  Register the default substitute server key(s)
           ;; as trusted to allow the installation process to use substitutes by
           ;; default.
@@ -467,12 +450,19 @@ Access documentation at any time by pressing Alt-F2.\x1b[0m
     (host-name "gnu")
     (timezone "Europe/Paris")
     (locale "en_US.utf8")
+    (name-service-switch %mdns-host-lookup-nss)
     (bootloader (bootloader-configuration
                  (bootloader grub-bootloader)
                  (target "/dev/sda")))
     (label (string-append "GNU Guix installation "
                           (package-version guix)))
 
+    ;; XXX: The AMD Radeon driver is reportedly broken, which makes kmscon
+    ;; non-functional:
+    ;; <https://lists.gnu.org/archive/html/guix-devel/2019-03/msg00441.html>.
+    ;; Thus, blacklist it.
+    (kernel-arguments '("quiet" "modprobe.blacklist=radeon"))
+
     (file-systems
      ;; Note: the disk image build code overrides this root file system with
      ;; the appropriate one.
@@ -518,27 +508,14 @@ Access documentation at any time by pressing Alt-F2.\x1b[0m
      ;; Explicitly allow for empty passwords.
      (base-pam-services #:allow-empty-passwords? #t))
 
-    (packages (cons* glibc ;for 'tzselect' & co.
-                     parted gptfdisk ddrescue
-                     fontconfig
-                     font-dejavu font-gnu-unifont
-                     grub                  ;mostly so xrefs to its manual work
-                     cryptsetup
-                     mdadm
-                     dosfstools         ;mkfs.fat, for the UEFI boot partition
-                     btrfs-progs
-                     f2fs-tools
-                     jfsutils
-                     openssh    ;we already have sshd, having ssh/scp can help
-                     wireless-tools iw wpa-supplicant-minimal iproute
-                     ;; XXX: We used to have GNU fdisk here, but as of version
-                     ;; 2.0.0a, that pulls Guile 1.8, which takes unreasonable
-                     ;; space; furthermore util-linux's fdisk is already
-                     ;; available here, so we keep that.
-                     bash-completion
-                     nvi                          ;:wq!
-                     nss-certs ; To access HTTPS, use git, etc.
-                     %base-packages))))
+    (packages (append
+                (list glibc         ; for 'tzselect' & co.
+                      fontconfig
+                      font-dejavu font-gnu-unifont
+                      grub          ; mostly so xrefs to its manual work
+                      nss-certs)    ; To access HTTPS, use git, etc.
+                %base-packages-disk-utilities
+                %base-packages))))
 
 (define* (os-with-u-boot os board #:key (bootloader-target "/dev/mmcblk0")
                          (triplet "arm-linux-gnueabihf"))
diff --git a/gnu/system/linux-container.scm b/gnu/system/linux-container.scm
index c5e2e4bf9c..e6fd0f1315 100644
--- a/gnu/system/linux-container.scm
+++ b/gnu/system/linux-container.scm
@@ -1,8 +1,9 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2015 David Thompson <davet@gnu.org>
-;;; Copyright © 2016, 2017, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2016, 2017, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2019 Arun Isaac <arunisaac@systemreboot.net>
 ;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2020 Google LLC
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -75,7 +76,19 @@ from OS that are needed on the bare metal and not in a container."
 doing anything.")
            (provision '(loopback networking))
            (start #~(const #t))))
-   #f))
+   #f
+   (description "Provide loopback and networking without actually doing
+anything.  This service is used by guest systems running in containers, where
+networking support is provided by the host.")))
+
+(define %nscd-container-caches
+  ;; Similar to %nscd-default-caches but with smaller cache sizes. This allows
+  ;; many containers to coexist on the same machine without exhausting RAM.
+  (map (lambda (cache)
+         (nscd-cache
+          (inherit cache)
+          (max-database-size (expt 2 18)))) ;256KiB
+       %nscd-default-caches))
 
 (define* (containerized-operating-system os mappings
                                          #:key
@@ -100,22 +113,39 @@ containerized OS.  EXTRA-FILE-SYSTEMS is a list of file systems to add to OS."
     (file-system (inherit (file-system-mapping->bind-mount fs))
       (needed-for-boot? #t)))
 
-  (define useless-services
-    ;; Services that make no sense in a container.  Those that attempt to
-    ;; access /dev/tty[0-9] in particular cannot work in a container.
+  (define services-to-drop
+    ;; Service types to filter from the original operating-system. Some of
+    ;; these make no sense in a container (e.g., those that access
+    ;; /dev/tty[0-9]), while others just need to be reinstantiated with
+    ;; different configs that are better suited to containers.
     (append (list console-font-service-type
                   mingetty-service-type
-                  agetty-service-type)
-            ;; Remove nscd service if network is shared with the host.
+                  agetty-service-type
+                  ;; Reinstantiated below with smaller caches.
+                  nscd-service-type)
             (if shared-network?
-                (list nscd-service-type
-                      static-networking-service-type
-                      dhcp-client-service-type
-                      network-manager-service-type
-                      connman-service-type
-                      wicd-service-type)
+                ;; Replace these with dummy-networking-service-type below.
+                (list
+                 static-networking-service-type
+                 dhcp-client-service-type
+                 network-manager-service-type
+                 connman-service-type
+                 wicd-service-type)
                 (list))))
 
+  (define services-to-add
+    (append
+     ;; Many Guix services depend on a 'networking' shepherd
+     ;; service, so make sure to provide a dummy 'networking'
+     ;; service when we are sure that networking is already set up
+     ;; in the host and can be used.  That prevents double setup.
+     (if shared-network?
+         (list (service dummy-networking-service-type))
+         '())
+     (list
+      (nscd-service (nscd-configuration
+                     (caches %nscd-container-caches))))))
+
   (operating-system
     (inherit os)
     (swap-devices '()) ; disable swap
@@ -124,15 +154,9 @@ containerized OS.  EXTRA-FILE-SYSTEMS is a list of file systems to add to OS."
                          #:shared-network? shared-network?))
     (services (append (remove (lambda (service)
                                 (memq (service-kind service)
-                                      useless-services))
+                                      services-to-drop))
                               (operating-system-user-services os))
-                      ;; Many Guix services depend on a 'networking' shepherd
-                      ;; service, so make sure to provide a dummy 'networking'
-                      ;; service when we are sure that networking is already set up
-                      ;; in the host and can be used.  That prevents double setup.
-                      (if shared-network?
-                          (list (service dummy-networking-service-type))
-                          '())))
+                      services-to-add))
     (file-systems (append (map mapping->fs
                                (if shared-network?
                                    (append %network-file-mappings mappings)
diff --git a/gnu/system/linux-initrd.scm b/gnu/system/linux-initrd.scm
index 0971ec29e2..c6ba9bb560 100644
--- a/gnu/system/linux-initrd.scm
+++ b/gnu/system/linux-initrd.scm
@@ -3,7 +3,7 @@
 ;;; Copyright © 2016 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
 ;;; Copyright © 2017, 2019 Mathieu Othacehe <m.othacehe@gmail.com>
-;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -76,9 +76,20 @@ the derivations referenced by EXP are automatically copied to the initrd."
   (define init
     (program-file "init" exp #:guile guile))
 
+  (define (import-module? module)
+    ;; Since we don't use deduplication support in 'populate-store', don't
+    ;; import (guix store deduplication) and its dependencies, which includes
+    ;; Guile-Gcrypt.  That way we can run tests with '--bootstrap'.
+    (and (guix-module-name? module)
+         (not (equal? module '(guix store deduplication)))))
+
   (define builder
+    ;; Do not use "guile-zlib" extension here, otherwise it would drag the
+    ;; non-static "zlib" package to the initrd closure.  It is not needed
+    ;; anyway because the modules are stored uncompressed within the initrd.
     (with-imported-modules (source-module-closure
-                            '((gnu build linux-initrd)))
+                            '((gnu build linux-initrd))
+                            #:select? import-module?)
       #~(begin
           (use-modules (gnu build linux-initrd))
 
@@ -111,34 +122,49 @@ the derivations referenced by EXP are automatically copied to the initrd."
 (define (flat-linux-module-directory linux modules)
   "Return a flat directory containing the Linux kernel modules listed in
 MODULES and taken from LINUX."
-  (define build-exp
-    (with-imported-modules (source-module-closure
-                            '((gnu build linux-modules)))
-      #~(begin
-          (use-modules (gnu build linux-modules)
-                       (srfi srfi-1)
-                       (srfi srfi-26))
-
-          (define module-dir
-            (string-append #$linux "/lib/modules"))
+  (define imported-modules
+    (source-module-closure '((gnu build linux-modules)
+                             (guix build utils))))
 
-          (define modules
-            (let* ((lookup  (cut find-module-file module-dir <>))
-                   (modules (map lookup '#$modules)))
-              (append modules
-                      (recursive-module-dependencies modules
-                                                     #:lookup-module lookup))))
-
-          (mkdir #$output)
-          (for-each (lambda (module)
-                      (format #t "copying '~a'...~%" module)
-                      (copy-file module
-                                 (string-append #$output "/"
-                                                (basename module))))
-                    (delete-duplicates modules))
-
-          ;; Hyphen or underscore?  This database tells us.
-          (write-module-name-database #$output))))
+  (define build-exp
+    (with-imported-modules imported-modules
+      (with-extensions (list guile-zlib)
+        #~(begin
+            (use-modules (gnu build linux-modules)
+                         (guix build utils)
+                         (srfi srfi-1)
+                         (srfi srfi-26))
+
+            (define module-dir
+              (string-append #$linux "/lib/modules"))
+
+            (define modules
+              (let* ((lookup  (cut find-module-file module-dir <>))
+                     (modules (map lookup '#$modules)))
+                (append modules
+                        (recursive-module-dependencies
+                         modules
+                         #:lookup-module lookup))))
+
+            (define (maybe-uncompress file)
+              ;; If FILE is a compressed module, uncompress it, as the initrd
+              ;; is already gzipped as a whole.
+              (cond
+               ((string-contains file ".ko.gz")
+                (invoke #+(file-append gzip "/bin/gunzip") file))))
+
+            (mkdir #$output)
+            (for-each (lambda (module)
+                        (let ((out-module
+                               (string-append #$output "/"
+                                              (basename module))))
+                          (format #t "copying '~a'...~%" module)
+                          (copy-file module out-module)
+                          (maybe-uncompress out-module)))
+                      (delete-duplicates modules))
+
+            ;; Hyphen or underscore?  This database tells us.
+            (write-module-name-database #$output)))))
 
   (computed-file "linux-modules" build-exp))
 
@@ -177,11 +203,11 @@ upon error."
   (define device-mapping-commands
     ;; List of gexps to open the mapped devices.
     (map (lambda (md)
-           (let* ((source (mapped-device-source md))
-                  (target (mapped-device-target md))
-                  (type   (mapped-device-type md))
-                  (open   (mapped-device-kind-open type)))
-             (open source target)))
+           (let* ((source  (mapped-device-source md))
+                  (targets (mapped-device-targets md))
+                  (type    (mapped-device-type md))
+                  (open    (mapped-device-kind-open type)))
+             (open source targets)))
          mapped-devices))
 
   (define kodir
@@ -199,6 +225,7 @@ upon error."
                       (gnu system file-systems)
                       ((guix build utils) #:hide (delete))
                       (guix build bournish)   ;add the 'bournish' meta-command
+                      (srfi srfi-1)           ;for lvm-device-mapping
                       (srfi srfi-26)
 
                       ;; FIXME: The following modules are for
@@ -241,6 +268,9 @@ FILE-SYSTEMS."
                 file-systems)
           (list fatfsck/static)
           '())
+    ,@(if (find (file-system-type-predicate "bcachefs") file-systems)
+          (list bcachefs-tools/static)
+          '())
     ,@(if (find (file-system-type-predicate "btrfs") file-systems)
           (list btrfs-progs/static)
           '())
@@ -276,6 +306,7 @@ FILE-SYSTEMS."
   ;; Given a file system type, return the list of modules it needs.
   (lookup-procedure ("cifs" => '("md4" "ecb" "cifs"))
                     ("9p" => '("9p" "9pnet_virtio"))
+                    ("bcachefs" => '("bcachefs"))
                     ("btrfs" => '("btrfs"))
                     ("iso9660" => '("isofs"))
                     ("jfs" => '("jfs"))
diff --git a/gnu/system/mapped-devices.scm b/gnu/system/mapped-devices.scm
index 31c50c4e40..518dbc4fe8 100644
--- a/gnu/system/mapped-devices.scm
+++ b/gnu/system/mapped-devices.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, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2016 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2017, 2018 Mark H Weaver <mhw@netris.org>
 ;;;
@@ -28,6 +28,7 @@
                           formatted-message
                           &fix-hint
                           &error-location))
+  #:use-module (guix deprecation)
   #:use-module (gnu services)
   #:use-module (gnu services shepherd)
   #:use-module (gnu system uuid)
@@ -35,17 +36,19 @@
   #:autoload   (gnu build linux-modules)
                  (missing-modules)
   #:autoload   (gnu packages cryptsetup) (cryptsetup-static)
-  #:autoload   (gnu packages linux) (mdadm-static)
+  #:autoload   (gnu packages linux) (mdadm-static lvm2-static)
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-26)
   #:use-module (srfi srfi-34)
   #:use-module (srfi srfi-35)
   #:use-module (ice-9 match)
   #:use-module (ice-9 format)
-  #:export (mapped-device
+  #:export (%mapped-device
+            mapped-device
             mapped-device?
             mapped-device-source
             mapped-device-target
+            mapped-device-targets
             mapped-device-type
             mapped-device-location
 
@@ -61,7 +64,8 @@
             check-device-initrd-modules           ;XXX: needs a better place
 
             luks-device-mapping
-            raid-device-mapping))
+            raid-device-mapping
+            lvm-device-mapping))
 
 ;;; Commentary:
 ;;;
@@ -70,15 +74,36 @@
 ;;;
 ;;; Code:
 
-(define-record-type* <mapped-device> mapped-device
+(define-record-type* <mapped-device> %mapped-device
   make-mapped-device
   mapped-device?
   (source    mapped-device-source)                ;string | list of strings
-  (target    mapped-device-target)                ;string
+  (targets   mapped-device-targets)               ;list of strings
   (type      mapped-device-type)                  ;<mapped-device-kind>
   (location  mapped-device-location
              (default (current-source-location)) (innate)))
 
+(define-syntax mapped-device-compatibility-helper
+  (syntax-rules (target)
+    ((_ () (fields ...))
+     (%mapped-device fields ...))
+    ((_ ((target exp) rest ...) (others ...))
+     (%mapped-device others ...
+                      (targets (list exp))
+                      rest ...))
+    ((_ (field rest ...) (others ...))
+     (mapped-device-compatibility-helper (rest ...)
+                                         (others ... field)))))
+
+(define-syntax-rule (mapped-device fields ...)
+  "Build an <mapped-device> record, automatically converting 'target' field
+specifications to 'targets'."
+  (mapped-device-compatibility-helper (fields ...) ()))
+
+(define-deprecated (mapped-device-target md)
+  mapped-device-targets
+  (car (mapped-device-targets md)))
+
 (define-record-type* <mapped-device-type> mapped-device-kind
   make-mapped-device-kind
   mapped-device-kind?
@@ -97,15 +122,16 @@
   (shepherd-service-type
    'device-mapping
    (match-lambda
-     (($ <mapped-device> source target
+     (($ <mapped-device> source targets
                          ($ <mapped-device-type> open close))
       (shepherd-service
-       (provision (list (symbol-append 'device-mapping- (string->symbol target))))
+       (provision (list (symbol-append 'device-mapping- (string->symbol (string-join targets "-")))))
        (requirement '(udev))
        (documentation "Map a device node using Linux's device mapper.")
-       (start #~(lambda () #$(open source target)))
-       (stop #~(lambda _ (not #$(close source target))))
-       (respawn? #f))))))
+       (start #~(lambda () #$(open source targets)))
+       (stop #~(lambda _ (not #$(close source targets))))
+       (respawn? #f))))
+   (description "Map a device node using Linux's device mapper.")))
 
 (define (device-mapping-service mapped-device)
   "Return a service that sets up @var{mapped-device}."
@@ -162,48 +188,52 @@ option of @command{guix system}.\n")
 ;;; Common device mappings.
 ;;;
 
-(define (open-luks-device source target)
+(define (open-luks-device source targets)
   "Return a gexp that maps SOURCE to TARGET as a LUKS device, using
 'cryptsetup'."
   (with-imported-modules (source-module-closure
                           '((gnu build file-systems)))
-    #~(let ((source #$(if (uuid? source)
-                          (uuid-bytevector source)
-                          source)))
-        ;; XXX: 'use-modules' should be at the top level.
-        (use-modules (rnrs bytevectors)           ;bytevector?
-                     ((gnu build file-systems)
-                      #:select (find-partition-by-luks-uuid)))
-
-        ;; Use 'cryptsetup-static', not 'cryptsetup', to avoid pulling the
-        ;; whole world inside the initrd (for when we're in an initrd).
-        (zero? (system* #$(file-append cryptsetup-static "/sbin/cryptsetup")
-                        "open" "--type" "luks"
-
-                        ;; Note: We cannot use the "UUID=source" syntax here
-                        ;; because 'cryptsetup' implements it by searching the
-                        ;; udev-populated /dev/disk/by-id directory but udev may
-                        ;; be unavailable at the time we run this.
-                        (if (bytevector? source)
-                            (or (let loop ((tries-left 10))
-                                  (and (positive? tries-left)
-                                       (or (find-partition-by-luks-uuid source)
-                                           ;; If the underlying partition is
-                                           ;; not found, try again after
-                                           ;; waiting a second, up to ten
-                                           ;; times.  FIXME: This should be
-                                           ;; dealt with in a more robust way.
-                                           (begin (sleep 1)
-                                                  (loop (- tries-left 1))))))
-                                (error "LUKS partition not found" source))
-                            source)
-
-                        #$target)))))
-
-(define (close-luks-device source target)
+    (match targets
+      ((target)
+       #~(let ((source #$(if (uuid? source)
+                             (uuid-bytevector source)
+                             source)))
+           ;; XXX: 'use-modules' should be at the top level.
+           (use-modules (rnrs bytevectors) ;bytevector?
+                        ((gnu build file-systems)
+                         #:select (find-partition-by-luks-uuid)))
+
+           ;; Use 'cryptsetup-static', not 'cryptsetup', to avoid pulling the
+           ;; whole world inside the initrd (for when we're in an initrd).
+           (zero? (system* #$(file-append cryptsetup-static "/sbin/cryptsetup")
+                           "open" "--type" "luks"
+
+                           ;; Note: We cannot use the "UUID=source" syntax here
+                           ;; because 'cryptsetup' implements it by searching the
+                           ;; udev-populated /dev/disk/by-id directory but udev may
+                           ;; be unavailable at the time we run this.
+                           (if (bytevector? source)
+                               (or (let loop ((tries-left 10))
+                                     (and (positive? tries-left)
+                                          (or (find-partition-by-luks-uuid source)
+                                              ;; If the underlying partition is
+                                              ;; not found, try again after
+                                              ;; waiting a second, up to ten
+                                              ;; times.  FIXME: This should be
+                                              ;; dealt with in a more robust way.
+                                              (begin (sleep 1)
+                                                     (loop (- tries-left 1))))))
+                                   (error "LUKS partition not found" source))
+                               source)
+
+                           #$target)))))))
+
+(define (close-luks-device source targets)
   "Return a gexp that closes TARGET, a LUKS device."
-  #~(zero? (system* #$(file-append cryptsetup-static "/sbin/cryptsetup")
-                    "close" #$target)))
+  (match targets
+    ((target)
+     #~(zero? (system* #$(file-append cryptsetup-static "/sbin/cryptsetup")
+                       "close" #$target)))))
 
 (define* (check-luks-device md #:key
                             needed-for-boot?
@@ -235,36 +265,40 @@ option of @command{guix system}.\n")
    (close close-luks-device)
    (check check-luks-device)))
 
-(define (open-raid-device sources target)
+(define (open-raid-device sources targets)
   "Return a gexp that assembles SOURCES (a list of devices) to the RAID device
 TARGET (e.g., \"/dev/md0\"), using 'mdadm'."
-  #~(let ((sources '#$sources)
-
-          ;; XXX: We're not at the top level here.  We could use a
-          ;; non-top-level 'use-modules' form but that doesn't work when the
-          ;; code is eval'd, like the Shepherd does.
-          (every   (@ (srfi srfi-1) every))
-          (format  (@ (ice-9 format) format)))
-      (let loop ((attempts 0))
-        (unless (every file-exists? sources)
-          (when (> attempts 20)
-            (error "RAID devices did not show up; bailing out"
-                   sources))
-
-          (format #t "waiting for RAID source devices~{ ~a~}...~%"
-                  sources)
-          (sleep 1)
-          (loop (+ 1 attempts))))
-
-      ;; Use 'mdadm-static' rather than 'mdadm' to avoid pulling its whole
-      ;; closure (80 MiB) in the initrd when a RAID device is needed for boot.
-      (zero? (apply system* #$(file-append mdadm-static "/sbin/mdadm")
-                    "--assemble" #$target sources))))
-
-(define (close-raid-device sources target)
+  (match targets
+    ((target)
+     #~(let ((sources '#$sources)
+
+             ;; XXX: We're not at the top level here.  We could use a
+             ;; non-top-level 'use-modules' form but that doesn't work when the
+             ;; code is eval'd, like the Shepherd does.
+             (every   (@ (srfi srfi-1) every))
+             (format  (@ (ice-9 format) format)))
+         (let loop ((attempts 0))
+           (unless (every file-exists? sources)
+             (when (> attempts 20)
+               (error "RAID devices did not show up; bailing out"
+                      sources))
+
+             (format #t "waiting for RAID source devices~{ ~a~}...~%"
+                     sources)
+             (sleep 1)
+             (loop (+ 1 attempts))))
+
+         ;; Use 'mdadm-static' rather than 'mdadm' to avoid pulling its whole
+         ;; closure (80 MiB) in the initrd when a RAID device is needed for boot.
+         (zero? (apply system* #$(file-append mdadm-static "/sbin/mdadm")
+                       "--assemble" #$target sources))))))
+
+(define (close-raid-device sources targets)
   "Return a gexp that stops the RAID device TARGET."
-  #~(zero? (system* #$(file-append mdadm-static "/sbin/mdadm")
-                    "--stop" #$target)))
+  (match targets
+    ((target)
+     #~(zero? (system* #$(file-append mdadm-static "/sbin/mdadm")
+                       "--stop" #$target)))))
 
 (define raid-device-mapping
   ;; The type of RAID mapped devices.
@@ -272,4 +306,24 @@ TARGET (e.g., \"/dev/md0\"), using 'mdadm'."
    (open open-raid-device)
    (close close-raid-device)))
 
+(define (open-lvm-device source targets)
+  #~(and
+     (zero? (system* #$(file-append lvm2-static "/sbin/lvm")
+                     "vgchange" "--activate" "ay" #$source))
+     ; /dev/mapper nodes are usually created by udev, but udev may be unavailable at the time we run this. So we create them here.
+     (zero? (system* #$(file-append lvm2-static "/sbin/lvm")
+                     "vgscan" "--mknodes"))
+     (every file-exists? (map (lambda (file) (string-append "/dev/mapper/" file))
+                              '#$targets))))
+
+
+(define (close-lvm-device source targets)
+  #~(zero? (system* #$(file-append lvm2-static "/sbin/lvm")
+                    "vgchange" "--activate" "n" #$source)))
+
+(define lvm-device-mapping
+  (mapped-device-kind
+   (open open-lvm-device)
+   (close close-lvm-device)))
+
 ;;; mapped-devices.scm ends here
diff --git a/gnu/system/shadow.scm b/gnu/system/shadow.scm
index a69339bc07..7c57222716 100644
--- a/gnu/system/shadow.scm
+++ b/gnu/system/shadow.scm
@@ -20,6 +20,7 @@
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (gnu system shadow)
+  #:use-module ((guix diagnostics) #:select (formatted-message))
   #:use-module (guix records)
   #:use-module (guix gexp)
   #:use-module (guix store)
@@ -34,6 +35,7 @@
   #:use-module ((gnu packages admin)
                 #:select (shadow))
   #:use-module (gnu packages bash)
+  #:use-module (ice-9 match)
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-26)
   #:use-module (srfi srfi-34)
@@ -222,6 +224,44 @@ for a colorful Guile experience.\\n\\n\"))))\n"))
                          (rename-file ".nanorc" ".config/nano/nanorc"))
                        #t))))
 
+(define (find-duplicates list)
+  "Find duplicate entries in @var{list}.
+Two entries are considered duplicates, if they are @code{equal?} to each other.
+This implementation is made asymptotically faster than @code{delete-duplicates}
+through the internal use of hash tables."
+  (let loop ((list list)
+             ;; We actually modify table in-place, but still allocate it here
+             ;; so that we only need one level of indentation.
+             (table (make-hash-table)))
+    (match list
+      (()
+       (hash-fold (lambda (key value seed)
+                    (if (> value 1)
+                        (cons key seed)
+                        seed))
+                  '()
+                  table))
+      ((first . rest)
+       (hash-set! table first
+                  (1+ (hash-ref table first 0)))
+       (loop rest table)))))
+
+(define (assert-unique-account-names users)
+  (match (find-duplicates (map user-account-name users))
+    (() *unspecified*)
+    (duplicates
+     (warning
+      (G_ "the following accounts appear more than once:~{ ~a~}~%")
+      duplicates))))
+
+(define (assert-unique-group-names groups)
+  (match (find-duplicates (map user-group-name groups))
+    (() *unspecified*)
+    (duplicates
+     (warning
+      (G_ "the following groups appear more than once:~{ ~a~}~%")
+      duplicates))))
+
 (define (assert-valid-users/groups users groups)
   "Raise an error if USERS refer to groups not listed in GROUPS."
   (let ((groups (list->set (map user-group-name groups))))
@@ -281,17 +321,19 @@ of user '~a' is undeclared")
 <user-group> objects.  Raise an error if a user account refers to a undefined
 group."
   (define accounts
-    (filter user-account? accounts+groups))
+    (delete-duplicates (filter user-account? accounts+groups) eq?))
 
   (define user-specs
     (map user-account->gexp accounts))
 
   (define groups
-    (filter user-group? accounts+groups))
+    (delete-duplicates (filter user-group? accounts+groups) eq?))
 
   (define group-specs
     (map user-group->gexp groups))
 
+  (assert-unique-account-names accounts)
+  (assert-unique-group-names groups)
   (assert-valid-users/groups accounts groups)
 
   ;; Add users and user groups.
diff --git a/gnu/system/uuid.scm b/gnu/system/uuid.scm
index c8352f4933..f4c4be6e2b 100644
--- a/gnu/system/uuid.scm
+++ b/gnu/system/uuid.scm
@@ -1,7 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2017 Danny Milosavljevic <dannym@scratchpost.org>
-;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -42,6 +42,7 @@
             string->ext2-uuid
             string->ext3-uuid
             string->ext4-uuid
+            string->bcachefs-uuid
             string->btrfs-uuid
             string->fat-uuid
             string->jfs-uuid
@@ -236,6 +237,7 @@ ISO9660 UUID representation."
 (define string->ext2-uuid string->dce-uuid)
 (define string->ext3-uuid string->dce-uuid)
 (define string->ext4-uuid string->dce-uuid)
+(define string->bcachefs-uuid string->dce-uuid)
 (define string->btrfs-uuid string->dce-uuid)
 (define string->jfs-uuid string->dce-uuid)
 
@@ -251,14 +253,14 @@ ISO9660 UUID representation."
 
 (define %uuid-parsers
   (vhashq
-   ('dce 'ext2 'ext3 'ext4 'btrfs 'jfs 'luks => string->dce-uuid)
+   ('dce 'ext2 'ext3 'ext4 'bcachefs 'btrfs 'jfs '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 'btrfs 'jfs 'luks => dce-uuid->string)
+   ('dce 'ext2 'ext3 'ext4 'bcachefs 'btrfs 'jfs '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 861f2a427a..1afae6b4ed 100644
--- a/gnu/system/vm.scm
+++ b/gnu/system/vm.scm
@@ -77,7 +77,6 @@
 
             system-qemu-image/shared-store
             system-qemu-image/shared-store-script
-            system-disk-image-in-vm
             system-docker-image
 
             virtual-machine
@@ -224,6 +223,12 @@ substitutable."
               (use-modules (guix build utils)
                            (gnu build vm))
 
+              ;; Allow non-ASCII file names--e.g., 'nss-certs'--to be decoded
+              ;; by 'estimated-partition-size' below.
+              (setenv "GUIX_LOCPATH"
+                      #+(file-append glibc-utf8-locales "/lib/locale"))
+              (setlocale LC_ALL "en_US.utf8")
+
               (let* ((native-inputs
                       '#+(list qemu (canonical-package coreutils)))
                      (linux   (string-append
@@ -557,77 +562,6 @@ the operating system."
 ;;; VM and disk images.
 ;;;
 
-(define* (system-disk-image-in-vm os
-                                  #:key
-                                  (name "disk-image")
-                                  (file-system-type "ext4")
-                                  (disk-image-size (* 900 (expt 2 20)))
-                                  (volatile? #t)
-                                  (substitutable? #t))
-  "Return the derivation of a disk image of DISK-IMAGE-SIZE bytes of the
-system described by OS.  Said image can be copied on a USB stick as is.  When
-VOLATILE? is true, the root file system is made volatile; this is useful
-to USB sticks meant to be read-only.
-
-SUBSTITUTABLE? determines whether the returned derivation should be marked as
-substitutable."
-  (define root-label
-    "Guix_image")
-
-  (define (root-uuid os)
-    ;; UUID of the root file system, computed in a deterministic fashion.
-    ;; This is what we use to locate the root file system so it has to be
-    ;; different from the user's own file system UUIDs.
-    (operating-system-uuid os 'dce))
-
-  (define file-systems-to-keep
-    (remove (lambda (fs)
-              (string=? (file-system-mount-point fs) "/"))
-            (operating-system-file-systems os)))
-
-  (let* ((os (operating-system (inherit os)
-               ;; Since this is meant to be used on real hardware, don't
-               ;; install QEMU networking or anything like that.  Assume USB
-               ;; mass storage devices (usb-storage.ko) are available.
-               (initrd (lambda (file-systems . rest)
-                         (apply (operating-system-initrd os)
-                                file-systems
-                                #:volatile-root? volatile?
-                                rest)))
-
-               (bootloader (operating-system-bootloader os))
-
-               ;; Force our own root file system.  (We need a "/" file system
-               ;; to call 'root-uuid'.)
-               (file-systems (cons (file-system
-                                     (mount-point "/")
-                                     (device "/dev/placeholder")
-                                     (type file-system-type))
-                                   file-systems-to-keep))))
-         (uuid (root-uuid os))
-         (os (operating-system
-               (inherit os)
-               (file-systems (cons (file-system
-                                     (mount-point "/")
-                                     (device uuid)
-                                     (type file-system-type))
-                                   file-systems-to-keep))))
-        (bootcfg (operating-system-bootcfg os)))
-    (qemu-image #:name name
-                #:os os
-                #:bootcfg-drv bootcfg
-                #:bootloader (bootloader-configuration-bootloader
-                              (operating-system-bootloader os))
-                #:disk-image-size disk-image-size
-                #:disk-image-format "raw"
-                #:file-system-type file-system-type
-                #:file-system-label root-label
-                #:file-system-uuid uuid
-                #:copy-inputs? #t
-                #:inputs `(("system" ,os)
-                           ("bootcfg" ,bootcfg))
-                #:substitutable? substitutable?)))
-
 (define* (system-qemu-image os
                             #:key
                             (file-system-type "ext4")
@@ -641,7 +575,10 @@ of the GNU system as described by OS."
               (let ((target (file-system-mount-point fs))
                     (source (file-system-device fs)))
                 (or (string=? target "/")
-                    (string-prefix? "/dev/" source))))
+                    (and (string? source)
+                         (string-prefix? "/dev/" source))
+                    (uuid? source)
+                    (file-system-label? source))))
             (operating-system-file-systems os)))
 
   (define root-uuid
@@ -652,7 +589,14 @@ of the GNU system as described by OS."
                                'dce)))
 
 
-  (let* ((os (operating-system (inherit os)
+  (let* ((os (operating-system
+               (inherit os)
+
+               ;; As in 'virtualized-operating-system', use BIOS-style GRUB.
+               (bootloader (bootloader-configuration
+                            (bootloader grub-bootloader)
+                            (target "/dev/vda")))
+
                ;; Assume we have an initrd with the whole QEMU shebang.
 
                ;; Force our own root file system.  Refer to it by UUID so that
@@ -699,7 +643,8 @@ of the GNU system as described by OS."
        (device (file-system->mount-tag source))
        (type "9p")
        (flags (if writable? '() '(read-only)))
-       (options "trans=virtio,cache=loose")
+       (options (string-append "trans=virtio"
+                               (if writable? "" ",cache=loose")))
        (check? #f)
        (create-mount-point? #t)))))
 
diff --git a/gnu/tests/audio.scm b/gnu/tests/audio.scm
index 8eadaf02e1..7bf7d4ef14 100644
--- a/gnu/tests/audio.scm
+++ b/gnu/tests/audio.scm
@@ -28,9 +28,7 @@
 
 (define %mpd-os
   (simple-operating-system
-   (service mpd-service-type
-            (mpd-configuration
-             (user "root")))))
+   (service mpd-service-type)))
 
 (define (run-mpd-test)
   "Run tests in %mpd-os, which has mpd running."
@@ -62,9 +60,14 @@
                 (start-service 'mpd))
              marionette))
 
-          (test-assert "mpc connect"
+          (test-assert "mpd listening"
+            ;; Wait until mpd is actually listening before spawning 'mpc'.
+            (wait-for-tcp-port 6600 marionette))
+
+          (test-equal "mpc connect"
+            0
             (marionette-eval
-             '(zero? (system #$(file-append mpd-mpc "/bin/mpc")))
+             '(system* #$(file-append mpd-mpc "/bin/mpc"))
              marionette))
 
           (test-end)
diff --git a/gnu/tests/base.scm b/gnu/tests/base.scm
index 086d2a133f..e5f9b87b1d 100644
--- a/gnu/tests/base.scm
+++ b/gnu/tests/base.scm
@@ -55,7 +55,10 @@
 
 
 (define* (run-basic-test os command #:optional (name "basic")
-                         #:key initialization root-password)
+                         #:key
+                         initialization
+                         root-password
+                         desktop?)
   "Return a derivation called NAME that tests basic features of the OS started
 using COMMAND, a gexp that evaluates to a list of strings.  Compare some
 properties of running system to what's declared in OS, an <operating-system>.
@@ -300,6 +303,12 @@ info --version")
           (test-equal "login on tty1"
             "root\n"
             (begin
+              ;; XXX: On desktop, GDM3 will switch to TTY7. If this happens
+              ;; after we switched to TTY1, we won't be able to login. Make
+              ;; sure to wait long enough before switching to TTY1.
+              (when #$desktop?
+                (sleep 30))
+
               (marionette-control "sendkey ctrl-alt-f1" marionette)
               ;; Wait for the 'term-tty1' service to be running (using
               ;; 'start-service' is the simplest and most reliable way to do
@@ -871,7 +880,7 @@ non-ASCII names from /tmp.")
           (test-equal "avahi-browse"
             0
             (marionette-eval
-             '(system* "avahi-browse" "-avt")
+             '(system* "/run/current-system/profile/bin/avahi-browse" "-avt")
              marionette))
 
           (test-assert "getaddrinfo .local"
diff --git a/gnu/tests/databases.scm b/gnu/tests/databases.scm
index e0544bbcd2..31d5ae4c6a 100644
--- a/gnu/tests/databases.scm
+++ b/gnu/tests/databases.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2017 Christopher Baines <mail@cbaines.net>
+;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -215,7 +216,9 @@
 
 (define %postgresql-os
   (simple-operating-system
-   (service postgresql-service-type)))
+   (service postgresql-service-type
+            (postgresql-configuration
+             (postgresql postgresql-10)))))
 
 (define (run-postgresql-test)
   "Run tests in %POSTGRESQL-OS."
@@ -269,7 +272,7 @@
 
 (define %mysql-os
   (simple-operating-system
-   (mysql-service)))
+   (service mysql-service-type)))
 
 (define* (run-mysql-test)
   "Run tests in %MYSQL-OS."
@@ -309,6 +312,48 @@
                      ((pid) (number? pid))))))
              marionette))
 
+          (test-assert "mysql_upgrade completed"
+            (wait-for-file "/var/lib/mysql/mysql_upgrade_info" marionette))
+
+          (test-eq "create database"
+            0
+            (marionette-eval
+             '(begin
+                (system* #$(file-append mariadb "/bin/mysql")
+                         "-e" "CREATE DATABASE guix;"))
+             marionette))
+
+          (test-eq "create table"
+            0
+            (marionette-eval
+             '(begin
+                (system*
+                 #$(file-append mariadb "/bin/mysql") "guix"
+                 "-e" "CREATE TABLE facts (id INT, data VARCHAR(12));"))
+             marionette))
+
+          (test-eq "insert data"
+            0
+            (marionette-eval
+             '(begin
+                (system* #$(file-append mariadb "/bin/mysql") "guix"
+                         "-e" "INSERT INTO facts VALUES (1, 'awesome')"))
+             marionette))
+
+          (test-equal "retrieve data"
+            "awesome\n"
+            (marionette-eval
+             '(begin
+                (use-modules (ice-9 popen))
+                (let* ((port (open-pipe*
+                              OPEN_READ
+                              #$(file-append mariadb "/bin/mysql") "guix"
+                              "-NB" "-e" "SELECT data FROM facts WHERE id=1;"))
+                       (output (get-string-all port)))
+                  (close-pipe port)
+                  output))
+             marionette))
+
           (test-end)
           (exit (= (test-runner-fail-count (test-runner-current)) 0)))))
 
diff --git a/gnu/tests/docker.scm b/gnu/tests/docker.scm
index ea6c9a33fe..c70c3ddb9e 100644
--- a/gnu/tests/docker.scm
+++ b/gnu/tests/docker.scm
@@ -27,8 +27,9 @@
   #:use-module (gnu services networking)
   #:use-module (gnu services docker)
   #:use-module (gnu services desktop)
-  #:use-module (gnu packages docker)
+  #:use-module ((gnu packages base) #:select (glibc))
   #:use-module (gnu packages guile)
+  #:use-module (gnu packages docker)
   #:use-module (guix gexp)
   #:use-module (guix grafts)
   #:use-module (guix monads)
@@ -206,7 +207,7 @@ inside %DOCKER-OS."
      ;; load' must be able to store the whole image into memory, hence the
      ;; huge memory requirements.  We should avoid the volatile-root setup
      ;; instead.
-     (memory-size 3500)
+     (memory-size 4000)
      (port-forwardings '())))
 
   (define test
@@ -298,5 +299,9 @@ inside %DOCKER-OS."
    (description "Run a system image as produced by @command{guix system
 docker-image} inside Docker.")
    (value (with-monad %store-monad
-            (>>= (system-docker-image (simple-operating-system))
+            (>>= (system-docker-image (operating-system
+                                        (inherit (simple-operating-system))
+                                        ;; Use locales for a single libc to
+                                        ;; reduce space requirements.
+                                        (locale-libcs (list glibc))))
                  run-docker-system-test)))))
diff --git a/gnu/tests/guix.scm b/gnu/tests/guix.scm
index 6139e31cf0..af7d8f0b21 100644
--- a/gnu/tests/guix.scm
+++ b/gnu/tests/guix.scm
@@ -35,7 +35,80 @@
   #:use-module (guix store)
   #:use-module (guix utils)
   #:use-module (ice-9 match)
-  #:export (%test-guix-data-service))
+  #:export (%test-guix-build-coordinator
+            %test-guix-data-service))
+
+;;;
+;;; Guix Build Coordinator
+;;;
+
+(define %guix-build-coordinator-os
+  (simple-operating-system
+   (service dhcp-client-service-type)
+   (service guix-build-coordinator-service-type)))
+
+(define (run-guix-build-coordinator-test)
+  (define os
+    (marionette-operating-system
+     %guix-build-coordinator-os
+     #:imported-modules '((gnu services herd)
+                          (guix combinators))))
+
+  (define forwarded-port 8745)
+
+  (define vm
+    (virtual-machine
+     (operating-system os)
+     (memory-size 1024)
+     (port-forwardings `((,forwarded-port . 8745)))))
+
+  (define test
+    (with-imported-modules '((gnu build marionette))
+      #~(begin
+          (use-modules (srfi srfi-11) (srfi srfi-64)
+                       (gnu build marionette)
+                       (web uri)
+                       (web client)
+                       (web response))
+
+          (define marionette
+            (make-marionette (list #$vm)))
+
+          (mkdir #$output)
+          (chdir #$output)
+
+          (test-begin "guix-build-coordinator")
+
+          (test-assert "service running"
+            (marionette-eval
+             '(begin
+                (use-modules (gnu services herd))
+                (match (start-service 'guix-build-coordinator)
+                  (#f #f)
+                  (('service response-parts ...)
+                   (match (assq-ref response-parts 'running)
+                     ((pid) (number? pid))))))
+             marionette))
+
+          (test-equal "http-get"
+            200
+            (let-values
+                (((response text)
+                  (http-get #$(simple-format
+                               #f "http://localhost:~A/metrics" forwarded-port)
+                            #:decode-body? #t)))
+              (response-code response)))
+
+          (test-end)
+          (exit (= (test-runner-fail-count (test-runner-current)) 0)))))
+
+  (gexp->derivation "guix-build-coordinator-test" test))
+
+(define %test-guix-build-coordinator
+  (system-test
+   (name "guix-build-coordinator")
+   (description "Connect to a running Guix Build Coordinator.")
+   (value (run-guix-build-coordinator-test))))
 
 
 ;;;
@@ -83,6 +156,7 @@
    (service dhcp-client-service-type)
    (service postgresql-service-type
             (postgresql-configuration
+             (postgresql postgresql-10)
              (config-file
               (postgresql-config-file
                (hba-file
diff --git a/gnu/tests/install.scm b/gnu/tests/install.scm
index 9656e5f41f..9dbe63f1e4 100644
--- a/gnu/tests/install.scm
+++ b/gnu/tests/install.scm
@@ -35,6 +35,8 @@
   #:use-module (gnu packages bootloaders)
   #:use-module (gnu packages commencement)       ;for 'guile-final'
   #:use-module (gnu packages cryptsetup)
+  #:use-module (gnu packages emacs)
+  #:use-module (gnu packages emacs-xyz)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages ocr)
   #:use-module (gnu packages openbox)
@@ -61,10 +63,12 @@
             %test-separate-home-os
             %test-raid-root-os
             %test-encrypted-root-os
+            %test-encrypted-root-not-boot-os
             %test-btrfs-root-os
             %test-btrfs-root-on-subvolume-os
             %test-jfs-root-os
             %test-f2fs-root-os
+            %test-lvm-separate-home-os
 
             %test-gui-installed-os
             %test-gui-installed-os-encrypted
@@ -218,7 +222,7 @@ reboot\n")
                            #:imported-modules '((gnu services herd)
                                                 (gnu installer tests)
                                                 (guix combinators))))
-                      (installation-disk-image-file-system-type "ext4")
+                      (installation-image-type 'efi-raw)
                       (install-size 'guess)
                       (target-size (* 2200 MiB)))
   "Run SCRIPT (a shell script following the system installation procedure) in
@@ -228,10 +232,6 @@ packages defined in installation-os."
 
   (mlet* %store-monad ((_      (set-grafting #f))
                        (system (current-system))
-                       (target (current-target-system))
-                       (base-image -> (find-image
-                                       installation-disk-image-file-system-type
-                                       target))
 
                        ;; Since the installation system has no network access,
                        ;; we cheat a little bit by adding TARGET to its GC
@@ -239,18 +239,20 @@ packages defined in installation-os."
                        ;; succeed.  Also add guile-final, which is pulled in
                        ;; through provenance.drv and may not always be present.
                        (target (operating-system-derivation target-os))
+                       (base-image ->
+                                   (os->image
+                                    (operating-system-with-gc-roots
+                                     os (list target guile-final))
+                                    #:type (lookup-image-type-by-name
+                                            installation-image-type)))
                        (image ->
-                        (system-image
-                         (image
-                          (inherit base-image)
-                          (size install-size)
-                          (operating-system
-                            (operating-system-with-gc-roots
-                             os (list target guile-final)))
-                          ;; Do not compress to speed-up the tests.
-                          (compression? #f)
-                          ;; Don't provide substitutes; too big.
-                          (substitutable? #f)))))
+                              (system-image
+                               (image
+                                (inherit base-image)
+                                (size install-size)
+
+                                ;; Don't provide substitutes; too big.
+                                (substitutable? #f)))))
     (define install
       (with-imported-modules '((guix build utils)
                                (gnu build marionette))
@@ -270,16 +272,16 @@ packages defined in installation-os."
                  "-no-reboot"
                  "-m" "1200"
                  #$@(cond
-                     ((string=? "ext4" installation-disk-image-file-system-type)
+                     ((eq? 'efi-raw installation-image-type)
                       #~("-drive"
                          ,(string-append "file=" #$image
                                          ",if=virtio,readonly")))
-                     ((string=? "iso9660" installation-disk-image-file-system-type)
+                     ((eq? 'uncompressed-iso9660 installation-image-type)
                       #~("-cdrom" #$image))
                      (else
                       (error
-                       "unsupported installation-disk-image-file-system-type:"
-                       installation-disk-image-file-system-type)))
+                       "unsupported installation-image-type:"
+                       installation-image-type)))
                  "-drive"
                  ,(string-append "file=" #$output ",if=virtio")
                  ,@(if (file-exists? "/dev/kvm")
@@ -443,8 +445,8 @@ reboot\n")
                                    %minimal-os-on-vda-source
                                    #:script
                                    %simple-installation-script-for-/dev/vda
-                                   #:installation-disk-image-file-system-type
-                                   "iso9660"))
+                                   #:installation-image-type
+                                   'uncompressed-iso9660))
                          (command (qemu-command/writable-image image)))
       (run-basic-test %minimal-os-on-vda command name)))))
 
@@ -798,6 +800,193 @@ build (current-guix) and then store a couple of full system images.")
 
 
 ;;;
+;;; Separate /home on LVM
+;;;
+
+;; Since LVM support in guix currently doesn't allow root-on-LVM we use /home on LVM
+(define-os-with-source (%lvm-separate-home-os %lvm-separate-home-os-source)
+  (use-modules (gnu) (gnu tests))
+
+  (operating-system
+    (host-name "separate-home-on-lvm")
+    (timezone "Europe/Paris")
+    (locale "en_US.utf8")
+
+    (bootloader (bootloader-configuration
+                 (bootloader grub-bootloader)
+                 (target "/dev/vdb")))
+    (kernel-arguments '("console=ttyS0"))
+
+    (mapped-devices (list (mapped-device
+                           (source "vg0")
+                           (target "vg0-home")
+                           (type lvm-device-mapping))))
+    (file-systems (cons* (file-system
+                           (device (file-system-label "root-fs"))
+                           (mount-point "/")
+                           (type "ext4"))
+                         (file-system
+                           (device "/dev/mapper/vg0-home")
+                           (mount-point "/home")
+                           (type "ext4")
+                           (dependencies mapped-devices))
+                        %base-file-systems))
+    (users %base-user-accounts)
+    (services (cons (service marionette-service-type
+                             (marionette-configuration
+                              (imported-modules '((gnu services herd)
+                                                  (guix combinators)))))
+                    %base-services))))
+
+(define %lvm-separate-home-installation-script
+  "\
+. /etc/profile
+set -e -x
+guix --version
+
+export GUIX_BUILD_OPTIONS=--no-grafts
+parted --script /dev/vdb mklabel gpt \\
+  mkpart primary ext2 1M 3M \\
+  mkpart primary ext2 3M 1.6G \\
+  mkpart primary 1.6G 3.2G \\
+  set 1 boot on \\
+  set 1 bios_grub on
+pvcreate /dev/vdb3
+vgcreate vg0 /dev/vdb3
+lvcreate -L 1.6G -n home vg0
+vgchange -ay
+mkfs.ext4 -L root-fs /dev/vdb2
+mkfs.ext4 /dev/mapper/vg0-home
+mount /dev/vdb2 /mnt
+mkdir /mnt/home
+mount /dev/mapper/vg0-home /mnt/home
+df -h /mnt /mnt/home
+herd start cow-store /mnt
+mkdir /mnt/etc
+cp /etc/target-config.scm /mnt/etc/config.scm
+guix system init /mnt/etc/config.scm /mnt --no-substitutes
+sync
+reboot\n")
+
+(define %test-lvm-separate-home-os
+  (system-test
+   (name "lvm-separate-home-os")
+   (description
+    "Test functionality of an OS installed with a LVM /home partition")
+   (value
+    (mlet* %store-monad ((image   (run-install %lvm-separate-home-os
+                                               %lvm-separate-home-os-source
+                                               #:script
+                                               %lvm-separate-home-installation-script
+                                               #:packages (list lvm2-static)
+                                               #:target-size (* 3200 MiB)))
+                         (command (qemu-command/writable-image image)))
+      (run-basic-test %lvm-separate-home-os
+                      `(,@command) "lvm-separate-home-os")))))
+
+
+;;;
+;;; LUKS-encrypted root file system and /boot in a non-encrypted partition.
+;;;
+
+(define-os-with-source (%encrypted-root-not-boot-os
+                        %encrypted-root-not-boot-os-source)
+  ;; The OS we want to install.
+  (use-modules (gnu) (gnu tests) (srfi srfi-1))
+
+  (operating-system
+    (host-name "bootroot")
+    (timezone "Europe/Madrid")
+    (locale "en_US.UTF-8")
+
+    (bootloader (bootloader-configuration
+                 (bootloader grub-bootloader)
+                 (target "/dev/vdb")))
+
+    (mapped-devices (list (mapped-device
+                           (source
+                            (uuid "12345678-1234-1234-1234-123456789abc"))
+                           (target "root")
+                           (type luks-device-mapping))))
+    (file-systems (cons* (file-system
+                           (device (file-system-label "my-boot"))
+                           (mount-point "/boot")
+                           (type "ext4"))
+                         (file-system
+                           (device "/dev/mapper/root")
+                           (mount-point "/")
+                           (type "ext4"))
+                         %base-file-systems))
+    (users (cons (user-account
+                  (name "alice")
+                  (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 %encrypted-root-not-boot-installation-script
+  ;; Shell script for an installation with boot not encrypted but root
+  ;; encrypted.
+  (format #f "\
+. /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 50M \\
+  mkpart primary ext2 50M 1.6G \\
+  set 1 boot on \\
+  set 1 bios_grub on
+echo -n \"~a\" | cryptsetup luksFormat --uuid=\"~a\" -q /dev/vdb3 -
+echo -n \"~a\" | cryptsetup open --type luks --key-file - /dev/vdb3 root
+mkfs.ext4 -L my-root /dev/mapper/root
+mkfs.ext4 -L my-boot /dev/vdb2
+mount LABEL=my-root /mnt
+mkdir /mnt/boot
+mount LABEL=my-boot /mnt/boot
+echo \"Checking mounts\"
+mount
+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
+echo \"Debugging info\"
+blkid
+cat /mnt/boot/grub/grub.cfg
+reboot\n"
+          %luks-passphrase "12345678-1234-1234-1234-123456789abc"
+          %luks-passphrase))
+
+(define %test-encrypted-root-not-boot-os
+  (system-test
+   (name "encrypted-root-not-boot-os")
+   (description
+    "Test the manual installation on an OS with / in an encrypted partition
+but /boot on a different, non-encrypted partition.  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 %encrypted-root-not-boot-os
+                             %encrypted-root-not-boot-os-source
+                             #:script
+                             %encrypted-root-not-boot-installation-script))
+         (command (qemu-command/writable-image image)))
+      (run-basic-test %encrypted-root-not-boot-os command
+                      "encrypted-root-not-boot-os"
+                      #:initialization enter-luks-passphrase)))))
+
+
+;;;
 ;;; Btrfs root file system.
 ;;;
 
@@ -1211,6 +1400,16 @@ build (current-guix) and then store a couple of full system images.")
                         #$marionette)
       (screenshot "installer-run.ppm")
 
+      (unless #$encrypted?
+        ;; At this point, user partitions are formatted and the installer is
+        ;; waiting for us to start the final step: generating the
+        ;; configuration file, etc.  Set a fixed UUID on the swap partition
+        ;; that matches what 'installation-target-os-for-gui-tests' expects.
+        (marionette-eval* '(invoke #$(file-append util-linux "/sbin/swaplabel")
+                                   "-U" "11111111-2222-3333-4444-123456789abc"
+                                   "/dev/vda2")
+                          #$marionette))
+
       (marionette-eval* '(conclude-installation installer-socket)
                         #$marionette)
 
@@ -1257,8 +1456,12 @@ build (current-guix) and then store a couple of full system images.")
                            '("wheel" "audio" "video"))))
                    %base-user-accounts))
     ;; The installer does not create a swap device in guided mode with
-    ;; encryption support.
-    (swap-devices (if encrypted? '() '("/dev/vda2")))
+    ;; 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"))))
     (services (cons (service dhcp-client-service-type)
                     (operating-system-user-services %minimal-os-on-vda)))))
 
@@ -1273,7 +1476,8 @@ build (current-guix) and then store a couple of full system images.")
     ;; graphical installer are available.
     (packages (append
                (list openbox awesome i3-wm i3status
-                     dmenu st ratpoison xterm)
+                     dmenu st ratpoison xterm
+                     emacs emacs-exwm emacs-desktop-environment)
                %base-packages))
     (services
      (append
@@ -1309,18 +1513,19 @@ build (current-guix) and then store a couple of full system images.")
                                #:os installation-os-for-gui-tests
                                #:install-size install-size
                                #:target-size target-size
-                               #:installation-disk-image-file-system-type
-                               "iso9660"
+                               #:installation-image-type
+                               'uncompressed-iso9660
                                #:gui-test
                                (lambda (marionette)
                                  (gui-test-program
                                   marionette
                                   #:desktop? desktop?
                                   #:encrypted? encrypted?))))
-         (command (qemu-command/writable-image image)))
+         (command (qemu-command/writable-image image #:memory-size 512)))
       (run-basic-test target-os command name
                       #:initialization (and encrypted? enter-luks-passphrase)
-                      #:root-password %root-password)))))
+                      #:root-password %root-password
+                      #:desktop? desktop?)))))
 
 (define %test-gui-installed-os
   (guided-installation-test
diff --git a/gnu/tests/mail.scm b/gnu/tests/mail.scm
index a50fb1dbca..eb8952b33a 100644
--- a/gnu/tests/mail.scm
+++ b/gnu/tests/mail.scm
@@ -205,8 +205,7 @@ acl_check_data:
      (port-forwardings '((1025 . 25)))))
 
   (define test
-    (with-imported-modules '((gnu build marionette)
-                             (ice-9 ftw))
+    (with-imported-modules '((gnu build marionette))
       #~(begin
           (use-modules (rnrs base)
                        (srfi srfi-64)
diff --git a/gnu/tests/monitoring.scm b/gnu/tests/monitoring.scm
index d20b8ac59e..7371b02fe1 100644
--- a/gnu/tests/monitoring.scm
+++ b/gnu/tests/monitoring.scm
@@ -307,7 +307,9 @@ zabbix||{}
   (let ((base-os
          (simple-operating-system
           (service dhcp-client-service-type)
-          (postgresql-service)
+          (service postgresql-service-type
+                   (postgresql-configuration
+                    (postgresql postgresql-10)))
           (service zabbix-front-end-service-type
                    (zabbix-front-end-configuration
                     (db-password "zabbix")))
diff --git a/gnu/tests/nfs.scm b/gnu/tests/nfs.scm
index 5e4de2783b..5d04af38fb 100644
--- a/gnu/tests/nfs.scm
+++ b/gnu/tests/nfs.scm
@@ -39,7 +39,8 @@
   #:use-module (guix store)
   #:use-module (guix monads)
   #:export (%test-nfs
-            %test-nfs-server))
+            %test-nfs-server
+            %test-nfs-root-fs))
 
 (define %base-os
   (operating-system
@@ -262,3 +263,152 @@
    (description "Test that an NFS server can be started and exported
 directories can be mounted.")
    (value (run-nfs-server-test))))
+
+
+(define (run-nfs-root-fs-test)
+  "Run a test of an OS mounting its root file system via NFS."
+  (define nfs-root-server-os
+    (marionette-operating-system
+     (operating-system
+       (inherit %nfs-os)
+       (services
+         (modify-services (operating-system-user-services %nfs-os)
+           (nfs-service-type config =>
+            (nfs-configuration
+             (debug '(nfs nfsd mountd))
+             ;;; Note: Adding the following line causes Guix to hang.
+             ;(rpcmountd-port 20001)
+             ;;; Note: Adding the following line causes Guix to hang.
+             ;(rpcstatd-port 20002) ; FIXME: Set broadcast port AND listening port.
+             (nfsd-port 2049)
+             (nfs-versions '("4.2"))
+             (exports '(("/export"
+                         "*(rw,insecure,no_subtree_check,crossmnt,fsid=root,no_root_squash,insecure,async)"))))))))
+     #:requirements '(nscd)
+     #:imported-modules '((gnu services herd)
+                          (guix combinators))))
+
+  (define nfs-root-client-os
+    (marionette-operating-system
+     (operating-system
+       (inherit (simple-operating-system (service dhcp-client-service-type)))
+       (kernel-arguments '("ip=dhcp"))
+       (file-systems (cons
+                      (file-system
+                        (type "nfs")
+                        (mount-point "/")
+                        (device ":/export")
+                        (options "addr=127.0.0.1,vers=4.2"))
+                     %base-file-systems)))
+     #:requirements '(nscd)
+     #:imported-modules '((gnu services herd)
+                          (guix combinators))))
+
+  (define test
+    (with-imported-modules '((gnu build marionette))
+      #~(begin
+          (use-modules (gnu build marionette)
+                       (srfi srfi-64))
+
+          (mkdir #$output)
+          (chdir #$output)
+
+          (test-begin "start-nfs-boot-test")
+
+          ;;; Start up NFS server host.
+
+          (mkdir "/tmp/server")
+          (define server-marionette
+            (make-marionette (list #$(virtual-machine
+                                      nfs-root-server-os
+                                      ;(operating-system nfs-root-server-os)
+                                      ;(port-forwardings '( ; (111 . 111)
+                                      ;                    (2049 . 2049)
+                                      ;                    (20001 . 20001)
+                                      ;                    (20002 . 20002)))
+))
+                             #:socket-directory "/tmp/server"))
+
+          (marionette-eval
+           '(begin
+              (use-modules (gnu services herd))
+              (current-output-port
+               (open-file "/dev/console" "w0"))
+              ;; FIXME: Instead statfs "/" and "/export" and wait until they
+              ;; are different file systems.  But Guile doesn't seem to have
+              ;; statfs.
+              (sleep 5)
+              (chmod "/export" #o777)
+              (symlink "/gnu" "/export/gnu")
+              (start-service 'nscd)
+              (start-service 'networking)
+              (start-service 'nfs))
+           server-marionette)
+
+          ;;; Wait for the NFS services to be up and running.
+
+          (test-assert "nfs services are running"
+           (wait-for-file "/var/run/rpc.statd.pid" server-marionette))
+
+          (test-assert "NFS port is ready"
+            (wait-for-tcp-port 2049 server-marionette))
+
+          (test-assert "NFS statd port is ready"
+            (wait-for-tcp-port 20002 server-marionette))
+
+          (test-assert "NFS mountd port is ready"
+            (wait-for-tcp-port 20001 server-marionette))
+
+          ;;; FIXME: (test-assert "NFS portmapper port is ready"
+          ;;; FIXME:  (wait-for-tcp-port 111 server-marionette))
+
+          ;;; Start up NFS client host.
+
+          (define client-marionette
+            (make-marionette (list #$(virtual-machine
+                                      nfs-root-client-os
+                                      ;(port-forwardings '((111 . 111)
+                                      ;                    (2049 . 2049)
+                                      ;                    (20001 . 20001)
+                                      ;                    (20002 . 20002)))
+                                                          ))))
+
+          (marionette-eval
+           '(begin
+              (use-modules (gnu services herd))
+              (use-modules (rnrs io ports))
+
+              (current-output-port
+               (open-file "/dev/console" "w0"))
+              (let ((content (call-with-input-file "/proc/mounts" get-string-all)))
+                (call-with-output-file "/mounts.new"
+                  (lambda (port)
+                    (display content port))))
+              (chmod "/mounts.new" #o777)
+              (rename-file "/mounts.new" "/mounts"))
+           client-marionette)
+
+          (test-assert "nfs-root-client booted")
+
+          ;;; Check whether NFS client host communicated with NFS server host.
+
+          (test-assert "nfs client deposited file"
+           (wait-for-file "/export/mounts" server-marionette))
+          (marionette-eval
+           '(begin
+              (current-output-port
+               (open-file "/dev/console" "w0"))
+              (call-with-input-file "/export/mounts" display))
+           server-marionette)
+
+          (test-end)
+          (exit (= (test-runner-fail-count (test-runner-current)) 0)))))
+
+  (gexp->derivation "nfs-root-fs-test" test))
+
+(define %test-nfs-root-fs
+  (system-test
+   (name "nfs-root-fs")
+   (description "Test that an NFS server can be started and the exported
+directory can be used as root filesystem.")
+   (value (run-nfs-root-fs-test))))
diff --git a/gnu/tests/reconfigure.scm b/gnu/tests/reconfigure.scm
index 928a210a94..52beeef447 100644
--- a/gnu/tests/reconfigure.scm
+++ b/gnu/tests/reconfigure.scm
@@ -260,7 +260,9 @@ bootloader's configuration file."
      ;; test suite, the bootloader installer script is omitted. 'grub-install'
      ;; would attempt to write directly to the virtual disk if the
      ;; installation script were run.
-     (test (install-bootloader-program #f #f bootcfg bootcfg-file #f "/")))))
+     (test
+      (install-bootloader-program #f #f #f bootcfg bootcfg-file #f "/")))))
+
 
 (define %test-switch-to-system
   (system-test
diff --git a/gnu/tests/version-control.scm b/gnu/tests/version-control.scm
index 230aa9edf9..d3cf19c913 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 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2017, 2018, 2020 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2017, 2018 Clément Lassieur <clement@lassieur.org>
 ;;; Copyright © 2018 Christopher Baines <mail@cbaines.net>
 ;;;
@@ -285,6 +285,10 @@ HTTP-PORT."
              '(file-exists? "/srv/git/test")
              marionette))
 
+          (test-assert "fcgiwrap listens"
+            ;; Wait for fcgiwrap to be ready before cloning.
+            (wait-for-tcp-port 9000 marionette))
+
           ;; Make sure we can clone the repo from the host.
           (test-equal "clone"
             '#$README-contents
diff --git a/gnu/tests/virtualization.scm b/gnu/tests/virtualization.scm
index fbdec20805..e95787ee19 100644
--- a/gnu/tests/virtualization.scm
+++ b/gnu/tests/virtualization.scm
@@ -1,5 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2017 Christopher Baines <mail@cbaines.net>
+;;; Copyright © 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -18,17 +20,28 @@
 
 (define-module (gnu tests virtualization)
   #:use-module (gnu tests)
+  #:use-module (gnu image)
   #:use-module (gnu system)
   #:use-module (gnu system file-systems)
+  #:use-module (gnu system image)
+  #:use-module (gnu system images hurd)
   #:use-module (gnu system vm)
   #:use-module (gnu services)
   #:use-module (gnu services dbus)
   #:use-module (gnu services networking)
   #:use-module (gnu services virtualization)
   #:use-module (gnu packages virtualization)
+  #:use-module (gnu packages ssh)
   #:use-module (guix gexp)
+  #:use-module (guix records)
   #:use-module (guix store)
-  #:export (%test-libvirt))
+  #:export (%test-libvirt
+            %test-childhurd))
+
+
+;;;
+;;; Libvirt.
+;;;
 
 (define %libvirt-os
   (simple-operating-system
@@ -93,3 +106,148 @@
    (name "libvirt")
    (description "Connect to the running LIBVIRT service.")
    (value (run-libvirt-test))))
+
+
+;;;
+;;; GNU/Hurd virtual machines, aka. childhurds.
+;;;
+
+;; Copy of `hurd-vm-disk-image', using plain disk-image for test
+(define (hurd-vm-disk-image-raw config)
+  (let ((os ((@@ (gnu services virtualization) secret-service-operating-system)
+             (hurd-vm-configuration-os config)))
+        (disk-size (hurd-vm-configuration-disk-size config)))
+    (system-image
+     (image
+      (inherit hurd-disk-image)
+      (format 'disk-image)
+      (size disk-size)
+      (operating-system os)))))
+
+(define %childhurd-os
+  (simple-operating-system
+   (service dhcp-client-service-type)
+   (service hurd-vm-service-type
+            (hurd-vm-configuration
+             (image (hurd-vm-disk-image-raw this-record))))))
+
+(define (run-childhurd-test)
+  (define os
+    (marionette-operating-system
+     %childhurd-os
+     #:imported-modules '((gnu services herd)
+                          (guix combinators))))
+
+  (define vm
+    (virtual-machine
+     (operating-system os)
+     (memory-size (* 1024 3))))
+
+  (define run-uname-over-ssh
+    ;; Program that runs 'uname' over SSH and prints the result on standard
+    ;; output.
+    (let ()
+      (define run
+        (with-extensions (list guile-ssh)
+          #~(begin
+              (use-modules (ssh session)
+                           (ssh auth)
+                           (ssh popen)
+                           (ice-9 match)
+                           (ice-9 textual-ports))
+
+              (let ((session (make-session #:user "root"
+                                           #:port 10022
+                                           #:host "localhost"
+                                           #:log-verbosity 'rare)))
+                (match (connect! session)
+                  ('ok
+                   (userauth-password! session "")
+                   (display
+                    (get-string-all
+                     (open-remote-input-pipe* session "uname" "-on"))))
+                  (status
+                   (error "could not connect to childhurd over SSH"
+                          session status)))))))
+
+      (program-file "run-uname-over-ssh" run)))
+
+  (define test
+    (with-imported-modules '((gnu build marionette))
+      #~(begin
+          (use-modules (gnu build marionette)
+                       (srfi srfi-64)
+                       (ice-9 match))
+
+          (define marionette
+            (make-marionette (list #$vm)))
+
+          (mkdir #$output)
+          (chdir #$output)
+
+          (test-begin "childhurd")
+
+          (test-assert "service running"
+            (marionette-eval
+             '(begin
+                (use-modules (gnu services herd))
+                (match (start-service 'childhurd)
+                  (#f #f)
+                  (('service response-parts ...)
+                   (match (assq-ref response-parts 'running)
+                     ((pid) (number? pid))))))
+             marionette))
+
+          (test-equal "childhurd SSH server replies"
+            "SSH"
+            ;; Check from within the guest whether its childhurd's SSH
+            ;; server is reachable.  Do that from the guest: port forwarding
+            ;; to the host won't work because QEMU listens on 127.0.0.1.
+            (marionette-eval
+             '(begin
+                (use-modules (ice-9 match))
+
+                (let loop ((n 60))
+                  (if (zero? n)
+                      'all-attempts-failed
+                      (let ((s (socket PF_INET SOCK_STREAM 0))
+                            (a (make-socket-address AF_INET
+                                                    INADDR_LOOPBACK
+                                                    10022)))
+                        (format #t "connecting to childhurd SSH server...~%")
+                        (connect s a)
+                        (match (get-string-n s 3)
+                          ((? eof-object?)
+                           (close-port s)
+                           (sleep 1)
+                           (loop (- n 1)))
+                          (str
+                           (close-port s)
+                           str))))))
+             marionette))
+
+          (test-equal "SSH up and running"
+            "childhurd GNU\n"
+
+            ;; Connect from the guest to the chidhurd over SSH and run the
+            ;; 'uname' command.
+            (marionette-eval
+             '(begin
+                (use-modules (ice-9 popen))
+
+                (get-string-all
+                 (open-input-pipe #$run-uname-over-ssh)))
+             marionette))
+
+          (test-end)
+          (exit (= (test-runner-fail-count (test-runner-current)) 0)))))
+
+  (gexp->derivation "childhurd-test" test))
+
+(define %test-childhurd
+  (system-test
+   (name "childhurd")
+   (description
+    "Connect to the GNU/Hurd virtual machine service, aka. a childhurd, making
+sure that the childhurd boots and runs its SSH server.")
+   (value (run-childhurd-test))))
diff --git a/gnu/tests/web.scm b/gnu/tests/web.scm
index 7513eab2e4..7f4518acd2 100644
--- a/gnu/tests/web.scm
+++ b/gnu/tests/web.scm
@@ -567,7 +567,9 @@ HTTP-PORT."
              (config
               (httpd-config-file
                (listen '("8080"))))))
-   (service postgresql-service-type)
+   (service postgresql-service-type
+            (postgresql-configuration
+             (postgresql postgresql-10)))
    (service patchwork-service-type
             (patchwork-configuration
              (patchwork patchwork)
diff --git a/guix/android-repo-download.scm b/guix/android-repo-download.scm
new file mode 100644
index 0000000000..5ff3e7edd4
--- /dev/null
+++ b/guix/android-repo-download.scm
@@ -0,0 +1,156 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2017 Mathieu Lirzin <mthl@gnu.org>
+;;; Copyright © 2017 Christopher Baines <mail@cbaines.net>
+;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
+;;; Copyright © 2020 Danny Milosavljevic <dannym@scratchpost.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 (guix android-repo-download)
+  #:use-module (guix gexp)
+  #:use-module (guix store)
+  #:use-module (guix monads)
+  #:use-module (guix records)
+  #:use-module (guix packages)
+  #:use-module (guix modules)
+  #:autoload   (guix build-system gnu) (standard-packages)
+  #:use-module (ice-9 match)
+  #:use-module (ice-9 vlist)
+  #:use-module (srfi srfi-1)
+  #:use-module (srfi srfi-34)
+  #:use-module (srfi srfi-35)
+  #:export (android-repo-reference
+            android-repo-reference?
+            android-repo-reference-manifest-url
+            android-repo-reference-revision
+
+            android-repo-fetch
+            android-repo-version
+            android-repo-file-name))
+
+;;; Commentary:
+;;;
+;;; An <origin> method that fetches a specific commit from an Android repo
+;;; repository.
+;;; The repository's manifest (URL and revision) can be specified with a
+;;; <android-repo-reference> object.
+;;;
+;;; Code:
+
+(define-record-type* <android-repo-reference>
+  android-repo-reference make-android-repo-reference
+  android-repo-reference?
+  (manifest-url        android-repo-reference-manifest-url)
+  (manifest-revision   android-repo-reference-manifest-revision))
+
+(define (git-repo-package)
+  "Return the default git-repo package."
+  (let ((distro (resolve-interface '(gnu packages android))))
+    (module-ref distro 'git-repo)))
+
+(define* (android-repo-fetch ref hash-algo hash
+                             #:optional name
+                             #:key (system (%current-system))
+                             (guile (default-guile))
+                             (git-repo (git-repo-package)))
+  "Return a fixed-output derivation that fetches REF, an
+<android-repo-reference> object.  The output is expected to have recursive
+hash HASH of type HASH-ALGO (a symbol).  Use NAME as the file name, or a
+generic name if unset."
+  ;; TODO: Remove.
+  (define inputs
+    (standard-packages))
+
+  (define zlib
+    (module-ref (resolve-interface '(gnu packages compression)) 'zlib))
+
+  (define gnutls
+    (module-ref (resolve-interface '(gnu packages tls)) 'gnutls))
+
+  (define config.scm
+    (scheme-file "config.scm"
+                 #~(begin
+                     (define-module (guix config)
+                       #:export (%libz))
+
+                     (define %libz
+                       #+(file-append zlib "/lib/libz")))))
+
+  (define modules
+    (cons `((guix config) => ,config.scm)
+          (delete '(guix config)
+                  (source-module-closure '((guix build android-repo)
+                                           (guix build utils)
+                                           (guix build download-nar))))))
+
+  (define build
+    (with-imported-modules modules
+      (with-extensions (list gnutls)
+        #~(begin
+            (use-modules (guix build android-repo)
+                         (guix build utils)
+                         (guix build download-nar)
+                         (ice-9 match))
+
+            ;; The 'git submodule' commands expects Coreutils, sed,
+            ;; grep, etc. to be in $PATH.
+            (set-path-environment-variable "PATH" '("bin")
+                                           (match '#+inputs
+                                             (((names dirs outputs ...) ...)
+                                              dirs)))
+
+            (setvbuf (current-output-port) 'line)
+            (setvbuf (current-error-port) 'line)
+
+            (or (android-repo-fetch (getenv "android-repo manifest-url")
+                                    (getenv "android-repo manifest-revision")
+                                    #$output
+                                    #:git-repo-command
+                                    (string-append #+git-repo "/bin/repo"))
+                (download-nar #$output))))))
+
+  (mlet %store-monad ((guile (package->derivation guile system)))
+    (gexp->derivation (or name "android-repo-checkout") build
+
+                      ;; Use environment variables and a fixed script name so
+                      ;; there's only one script in store for all the
+                      ;; downloads.
+                      #:script-name "android-repo-download"
+                      #:env-vars
+                      `(("android-repo manifest-url" .
+                         ,(android-repo-reference-manifest-url ref))
+                        ("android-repo manifest-revision" .
+                         ,(android-repo-reference-manifest-revision ref)))
+                      #:leaked-env-vars '("http_proxy" "https_proxy"
+                                          "LC_ALL" "LC_MESSAGES" "LANG"
+                                          "COLUMNS")
+                      #:system system
+                      #:local-build? #t           ;don't offload repo cloning
+                      #:hash-algo hash-algo
+                      #:hash hash
+                      #:recursive? #t
+                      #:guile-for-build guile)))
+
+(define (android-repo-version version revision)
+  "Return the version string for packages using android-repo-download."
+  (string-append version "-" (string-join (string-split revision #\/) "_")))
+
+(define (android-repo-file-name name version)
+  "Return the file-name for packages using android-repo-download."
+  (string-append name "-" version "-checkout"))
+
+
diff --git a/guix/avahi.scm b/guix/avahi.scm
new file mode 100644
index 0000000000..132e42f268
--- /dev/null
+++ b/guix/avahi.scm
@@ -0,0 +1,178 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2020 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 (guix avahi)
+  #:use-module (guix records)
+  #:use-module (guix build syscalls)
+  #:use-module (avahi)
+  #:use-module (avahi client)
+  #:use-module (avahi client lookup)
+  #:use-module (avahi client publish)
+  #:use-module (srfi srfi-9)
+  #:use-module (ice-9 threads)
+  #:export (avahi-service
+            avahi-service?
+            avahi-service-name
+            avahi-service-type
+            avahi-service-interface
+            avahi-service-local-address
+            avahi-service-address
+            avahi-service-port
+            avahi-service-txt
+
+            avahi-publish-service-thread
+            avahi-browse-service-thread))
+
+(define-record-type* <avahi-service>
+  avahi-service make-avahi-service
+  avahi-service?
+  (name avahi-service-name)
+  (type avahi-service-type)
+  (interface avahi-service-interface)
+  (local-address avahi-service-local-address)
+  (address avahi-service-address)
+  (port avahi-service-port)
+  (txt avahi-service-txt))
+
+(define* (avahi-publish-service-thread name
+                                       #:key
+                                       type port
+                                       (stop-loop? (const #f))
+                                       (timeout 100)
+                                       (txt '()))
+  "Publish the service TYPE using Avahi, for the given PORT, on all interfaces
+and for all protocols. Also, advertise the given TXT record list.
+
+This procedure starts a new thread running the Avahi event loop.  It exits
+when STOP-LOOP? procedure returns true."
+  (define client-callback
+    (lambda (client state)
+      (when (eq? state client-state/s-running)
+        (let ((group (make-entry-group client (const #t))))
+          (apply
+           add-entry-group-service! group interface/unspecified
+           protocol/unspecified '()
+           name type #f #f port txt)
+          (commit-entry-group group)))))
+
+  (call-with-new-thread
+   (lambda ()
+     (let* ((poll (make-simple-poll))
+            (client (make-client (simple-poll poll)
+                                 (list
+                                  client-flag/ignore-user-config)
+                                 client-callback)))
+       (while (not (stop-loop?))
+         (iterate-simple-poll poll timeout))))))
+
+(define (interface->ip-address interface)
+  "Return the local IP address of the given INTERFACE."
+  (let* ((socket (socket AF_INET SOCK_STREAM 0))
+         (address (network-interface-address socket interface))
+         (ip (inet-ntop (sockaddr:fam address)
+                        (sockaddr:addr address))))
+    (close-port socket)
+    ip))
+
+(define never
+  ;; Never true.
+  (const #f))
+
+(define* (avahi-browse-service-thread proc
+                                      #:key
+                                      types
+                                      (ignore-local? #t)
+                                      (family AF_INET)
+                                      (stop-loop? never)
+                                      (timeout (if (eq? stop-loop? never)
+                                                   #f
+                                                   100)))
+  "Browse services which type is part of the TYPES list, using Avahi.  The
+search is restricted to services with the given FAMILY.  Each time a service
+is found or removed, PROC is called and passed as argument the corresponding
+AVAHI-SERVICE record.  If a service is available on multiple network
+interfaces, it will only be reported on the first interface found.
+
+This procedure starts a new thread running the Avahi event loop.  It exits
+when STOP-LOOP? procedure returns true."
+  (define %known-hosts
+    ;; Set of Avahi discovered hosts.
+    (make-hash-table))
+
+  (define (service-resolver-callback resolver interface protocol event
+                                     service-name service-type domain
+                                     host-name address-type address port
+                                     txt flags)
+    ;; Handle service resolution events.
+    (cond ((eq? event resolver-event/found)
+           ;; Add the service if the host is unknown.  This means that if a
+           ;; service is available on multiple network interfaces for a single
+           ;; host, only the first interface found will be considered.
+           (unless (or (hash-ref %known-hosts service-name)
+                       (and ignore-local?
+                            (member lookup-result-flag/local flags)))
+             (let* ((address (inet-ntop family address))
+                    (local-address (interface->ip-address interface))
+                    (service* (avahi-service
+                               (name service-name)
+                               (type service-type)
+                               (interface interface)
+                               (local-address local-address)
+                               (address address)
+                               (port port)
+                               (txt txt))))
+               (hash-set! %known-hosts service-name service*)
+               (proc 'new-service service*)))))
+    (free-service-resolver! resolver))
+
+  (define (service-browser-callback browser interface protocol event
+                                    service-name service-type
+                                    domain flags)
+    (cond
+     ((eq? event browser-event/new)
+      (make-service-resolver (service-browser-client browser)
+                             interface protocol
+                             service-name service-type domain
+                             protocol/unspecified '()
+                             service-resolver-callback))
+     ((eq? event browser-event/remove)
+      (let ((service (hash-ref %known-hosts service-name)))
+        (when service
+          (proc 'remove-service service)
+          (hash-remove! %known-hosts service-name))))))
+
+  (define client-callback
+    (lambda (client state)
+      (if (eq? state client-state/s-running)
+          (for-each (lambda (type)
+                      (make-service-browser client
+                                            interface/unspecified
+                                            protocol/inet
+                                            type #f '()
+                                            service-browser-callback))
+                    types))))
+
+  (let* ((poll (make-simple-poll))
+         (client (make-client (simple-poll poll)
+                              '() ;; no flags
+                              client-callback)))
+    (and (client? client)
+         (while (not (stop-loop?))
+           (if timeout
+               (iterate-simple-poll poll timeout)
+               (iterate-simple-poll poll))))))
diff --git a/guix/build-system.scm b/guix/build-system.scm
index 4174972b98..76d670995c 100644
--- a/guix/build-system.scm
+++ b/guix/build-system.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012, 2013, 2014 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012, 2013, 2014, 2020 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -18,6 +18,7 @@
 
 (define-module (guix build-system)
   #:use-module (guix records)
+  #:use-module (srfi srfi-1)
   #:use-module (ice-9 match)
   #:export (build-system
             build-system?
@@ -37,7 +38,9 @@
             bag-arguments
             bag-build
 
-            make-bag))
+            make-bag
+
+            build-system-with-c-toolchain))
 
 (define-record-type* <build-system> build-system make-build-system
   build-system?
@@ -98,3 +101,31 @@ intermediate representation just above derivations."
             #:outputs outputs
             #:target target
             arguments))))
+
+(define (build-system-with-c-toolchain bs toolchain)
+  "Return a variant of BS, a build system, that uses TOOLCHAIN instead of the
+default GNU C/C++ toolchain.  TOOLCHAIN must be a list of
+inputs (label/package tuples) providing equivalent functionality, such as the
+'gcc-toolchain' package."
+  (define lower
+    (build-system-lower bs))
+
+  (define toolchain-packages
+    ;; These are the GNU toolchain packages pulled in by GNU-BUILD-SYSTEM and
+    ;; all the build systems that inherit from it.  Keep the list in sync with
+    ;; 'standard-packages' in (guix build-system gnu).
+    '("gcc" "binutils" "libc" "libc:static" "ld-wrapper"))
+
+  (define (lower* . args)
+    (let ((lowered (apply lower args)))
+      (bag
+        (inherit lowered)
+        (build-inputs
+         (append (fold alist-delete
+                       (bag-build-inputs lowered)
+                       toolchain-packages)
+                 toolchain)))))
+
+  (build-system
+    (inherit bs)
+    (lower lower*)))
diff --git a/guix/build-system/asdf.scm b/guix/build-system/asdf.scm
index 630b99e2bf..28403a1960 100644
--- a/guix/build-system/asdf.scm
+++ b/guix/build-system/asdf.scm
@@ -1,6 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2016, 2017 Andy Patterson <ajpatter@uwaterloo.ca>
-;;; Copyright © 2019 Guillaume Le Vaillant <glv@posteo.net>
+;;; Copyright © 2019, 2020 Guillaume Le Vaillant <glv@posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -54,12 +54,14 @@
   ;; Imported build-side modules
   `((guix build asdf-build-system)
     (guix build lisp-utils)
+    (guix build union)
     ,@%gnu-build-system-modules))
 
 (define %asdf-build-modules
   ;; Used (visible) build-side modules
   '((guix build asdf-build-system)
     (guix build utils)
+    (guix build union)
     (guix build lisp-utils)))
 
 (define (default-lisp implementation)
@@ -210,7 +212,7 @@ set up using CL source package conventions."
       (define base-arguments
         (if target-is-source?
             (strip-keyword-arguments
-             '(#:tests? #:asd-file #:lisp #:asd-system-name #:test-asd-file)
+             '(#:tests? #:asd-files #:lisp #:asd-systems #:test-asd-file)
              (package-arguments pkg))
             (package-arguments pkg)))
 
@@ -278,8 +280,8 @@ set up using CL source package conventions."
   (lambda* (store name inputs
                   #:key source outputs
                   (tests? #t)
-                  (asd-file #f)
-                  (asd-system-name #f)
+                  (asd-files ''())
+                  (asd-systems ''())
                   (test-asd-file #f)
                   (phases '(@ (guix build asdf-build-system)
                               %standard-phases))
@@ -289,12 +291,17 @@ set up using CL source package conventions."
                   (imported-modules %asdf-build-system-modules)
                   (modules %asdf-build-modules))
 
-    (define system-name
-      (or asd-system-name
-          (string-drop
-           ;; NAME is the value returned from `package-full-name'.
-           (hyphen-separated-name->name+version name)
-           (1+ (string-length lisp-type))))) ; drop the "<lisp>-" prefix.
+    ;; FIXME: The definition of 'systems' is pretty hacky.
+    ;; Is there a more elegant way to do it?
+    (define systems
+      (if (null? (cadr asd-systems))
+          `(quote
+            ,(list
+              (string-drop
+               ;; NAME is the value returned from `package-full-name'.
+               (hyphen-separated-name->name+version name)
+               (1+ (string-length lisp-type))))) ; drop the "<lisp>-" prefix.
+          asd-systems))
 
     (define builder
       `(begin
@@ -309,8 +316,8 @@ set up using CL source package conventions."
                                     (derivation->output-path source))
                                    ((source) source)
                                    (source source))
-                       #:asd-file ,(or asd-file (string-append system-name ".asd"))
-                       #:asd-system-name ,system-name
+                       #:asd-files ,asd-files
+                       #:asd-systems ,systems
                        #:test-asd-file ,test-asd-file
                        #:system ,system
                        #:tests? ,tests?
diff --git a/guix/build-system/chicken.scm b/guix/build-system/chicken.scm
new file mode 100644
index 0000000000..9abae0431a
--- /dev/null
+++ b/guix/build-system/chicken.scm
@@ -0,0 +1,132 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2020 raingloom <raingloom@riseup.net>
+;;;
+;;; 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 (guix build-system chicken)
+  #:use-module (guix utils)
+  #:use-module (guix derivations)
+  #:use-module (guix search-paths)
+  #:use-module (guix build-system)
+  #:use-module (guix build-system gnu)
+  #:use-module (guix packages)
+  #:use-module (ice-9 match)
+  #:export (%chicken-build-system-modules
+            chicken-build
+            chicken-build-system))
+
+(define %chicken-build-system-modules
+  ;; Build-side modules imported and used by default.
+  `((guix build chicken-build-system)
+    (guix build union)
+    ,@%gnu-build-system-modules))
+
+(define (default-chicken)
+  ;; Lazily resolve the binding to avoid a circular dependency.
+  ;; TODO is this actually needed in every build system?
+  (let ((chicken (resolve-interface '(gnu packages chicken))))
+      (module-ref chicken 'chicken)))
+
+(define* (lower name
+                #:key source inputs native-inputs outputs system target
+                (chicken (default-chicken))
+                #:allow-other-keys
+                #:rest arguments)
+  "Return a bag for NAME."
+  (define private-keywords
+    '(#:source #:target #:chicken #:inputs #:native-inputs))
+
+  ;; TODO: cross-compilation support
+  (and (not target)
+       (bag
+         (name name)
+         (system system)
+         (host-inputs `(,@(if source
+                              `(("source" ,source))
+                              '())
+                        ,@inputs
+
+                        ;; Keep the standard inputs of 'gnu-build-system', since
+                        ;; Chicken compiles Scheme by using C as an intermediate
+                        ;; language.
+                        ,@(standard-packages)))
+         (build-inputs `(("chicken" ,chicken)
+                         ,@native-inputs))
+         (outputs outputs)
+         (build chicken-build)
+         (arguments (strip-keyword-arguments private-keywords arguments)))))
+
+(define* (chicken-build store name inputs
+                   #:key
+                   (phases '(@ (guix build chicken-build-system)
+                               %standard-phases))
+                   (outputs '("out"))
+                   (search-paths '())
+                   (egg-name "")
+                   (unpack-path "")
+                   (build-flags ''())
+                   (tests? #t)
+                   (system (%current-system))
+                   (guile #f)
+                   (imported-modules %chicken-build-system-modules)
+                   (modules '((guix build chicken-build-system)
+                              (guix build union)
+                              (guix build utils))))
+  (define builder
+    `(begin
+       (use-modules ,@modules)
+       (chicken-build #:name ,name
+                 #:source ,(match (assoc-ref inputs "source")
+                             (((? derivation? source))
+                              (derivation->output-path source))
+                             ((source)
+                              source)
+                             (source
+                              source))
+                 #:system ,system
+                 #:phases ,phases
+                 #:outputs %outputs
+                 #:search-paths ',(map search-path-specification->sexp
+                                       search-paths)
+                 #:egg-name ,egg-name
+                 #:unpack-path ,unpack-path
+                 #:build-flags ,build-flags
+                 #:tests? ,tests?
+                 #:inputs %build-inputs)))
+
+  (define guile-for-build
+    (match guile
+      ((? package?)
+       (package-derivation store guile system #:graft? #f))
+      (#f                                         ; the default
+       (let* ((distro (resolve-interface '(gnu packages commencement)))
+              (guile  (module-ref distro 'guile-final)))
+         (package-derivation store guile system
+                             #:graft? #f)))))
+
+  (build-expression->derivation store name builder
+                                #:inputs inputs
+                                #:system system
+                                #:modules imported-modules
+                                #:outputs outputs
+                                #:guile-for-build guile-for-build))
+
+(define chicken-build-system
+  (build-system
+    (name 'chicken)
+    (description
+     "Build system for Chicken Scheme programs")
+    (lower lower)))
diff --git a/guix/build-system/haskell.scm b/guix/build-system/haskell.scm
index 1ec11c71d8..18a584f782 100644
--- a/guix/build-system/haskell.scm
+++ b/guix/build-system/haskell.scm
@@ -1,5 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
+;;; Copyright © 2020 Timothy Sample <samplet@ngyro.com>
+;;; Copyright © 2020 Simon Tournier <zimon.toutoune@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -26,6 +28,7 @@
   #:use-module (guix build-system)
   #:use-module (guix build-system gnu)
   #:use-module (ice-9 match)
+  #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-26)
   #:export (%haskell-build-system-modules
             haskell-build
@@ -67,7 +70,7 @@ version REVISION."
                 #:rest arguments)
   "Return a bag for NAME."
   (define private-keywords
-    '(#:target #:haskell #:cabal-revision #:inputs #:native-inputs))
+    '(#:target #:haskell #:cabal-revision #:inputs #:native-inputs #:outputs))
 
   (define (cabal-revision->origin cabal-revision)
     (match cabal-revision
@@ -95,9 +98,23 @@ version REVISION."
                         ,@(standard-packages)))
          (build-inputs `(("haskell" ,haskell)
                          ,@native-inputs))
-         (outputs outputs)
+         ;; XXX: this is a hack to get around issue #41569.
+         (outputs (match outputs
+                    (("out") (cons "static" outputs))
+                    (_ outputs)))
          (build haskell-build)
-         (arguments (strip-keyword-arguments private-keywords arguments)))))
+         (arguments
+          (substitute-keyword-arguments
+              (strip-keyword-arguments private-keywords arguments)
+            ((#:extra-directories extra-directories)
+             `(list ,@(append-map
+                       (lambda (name)
+                         (match (assoc name inputs)
+                           ((_ pkg)
+                            (match (package-transitive-propagated-inputs pkg)
+                              (((propagated-names . _) ...)
+                               (cons name propagated-names))))))
+                       extra-directories))))))))
 
 (define* (haskell-build store name inputs
                         #:key source
@@ -105,10 +122,14 @@ version REVISION."
                         (haddock-flags ''())
                         (tests? #t)
                         (test-target "test")
+                        ;; FIXME: Parallel builds lead to indeterministic
+                        ;; results, see <http://issues.guix.gnu.org/43843#3>.
+                        (parallel-build? #f)
                         (configure-flags ''())
+                        (extra-directories ''())
                         (phases '(@ (guix build haskell-build-system)
                                     %standard-phases))
-                        (outputs '("out"))
+                        (outputs '("out" "static"))
                         (search-paths '())
                         (system (%current-system))
                         (guile #f)
@@ -134,10 +155,12 @@ provides a 'Setup.hs' file as its build system."
                                            (derivation->output-path revision))
                                           (revision revision))
                       #:configure-flags ,configure-flags
+                      #:extra-directories ,extra-directories
                       #:haddock-flags ,haddock-flags
                       #:system ,system
                       #:test-target ,test-target
                       #:tests? ,tests?
+                      #:parallel-build? ,parallel-build?
                       #:haddock? ,haddock?
                       #:phases ,phases
                       #:outputs %outputs
diff --git a/guix/build-system/linux-module.scm b/guix/build-system/linux-module.scm
index 1077215671..fc3d959ce7 100644
--- a/guix/build-system/linux-module.scm
+++ b/guix/build-system/linux-module.scm
@@ -68,14 +68,41 @@
             (lambda* (#:key inputs outputs #:allow-other-keys)
               (let* ((out (assoc-ref outputs "out"))
                      (out-lib-build (string-append out "/lib/modules/build")))
+                ;; Delete some huge items that we probably don't need.
                 ;; TODO: Only preserve the minimum, i.e. [Kbuild], Kconfig,
                 ;; scripts, include, ".config".
                 (copy-recursively "." out-lib-build)
+                (for-each (lambda (name)
+                            (when (file-exists? name)
+                            (delete-file-recursively name)))
+                 (map (lambda (name)
+                        (string-append out-lib-build "/" name))
+                  '("arch" ; 137 MB
+                    ;"tools" ; 44 MB ; Note: is built by our 'build phase.
+                    "tools/testing" ; 14 MB
+                    "tools/perf" ; 17 MB
+                    "drivers" ; 600 MB
+                    "Documentation" ; 52 MB
+                    "fs" ; 43 MB
+                    "net" ; 33 MB
+                    "samples" ; 2 MB
+                    "sound"))) ; 40 MB
+                ;; Reinstate arch/**/dts since "scripts/dtc" depends on it.
+                ;; Reinstate arch/**/include directories.
+                ;; Reinstate arch/**/Makefile.
+                ;; Reinstate arch/**/module.lds.
+                (for-each
+                 (lambda (name)
+                   (mkdir-p (dirname (string-append out-lib-build "/" name)))
+                   (copy-recursively name
+                                     (string-append out-lib-build "/" name)))
+                 (append (find-files "arch" "^(dts|include)$" #:directories? #t)
+                         (find-files "arch" "^(Makefile|module.lds)$")))
                 (let* ((linux (assoc-ref inputs "linux")))
                   (install-file (string-append linux "/System.map")
                                 out-lib-build)
                   (let ((source (string-append linux "/Module.symvers")))
-                    (if (file-exists? source)
+                    (when (file-exists? source)
                         (install-file source out-lib-build))))
                 #t)))))))))
 
diff --git a/guix/build-system/ocaml.scm b/guix/build-system/ocaml.scm
index c5996bf0cf..5513216c25 100644
--- a/guix/build-system/ocaml.scm
+++ b/guix/build-system/ocaml.scm
@@ -29,6 +29,8 @@
   #:export (%ocaml-build-system-modules
             package-with-ocaml4.07
             strip-ocaml4.07-variant
+            package-with-ocaml4.09
+            strip-ocaml4.09-variant
             default-findlib
             default-ocaml
             lower
@@ -96,6 +98,18 @@
   (let ((module (resolve-interface '(gnu packages ocaml))))
     (module-ref module 'ocaml4.07-dune)))
 
+(define (default-ocaml4.09)
+  (let ((ocaml (resolve-interface '(gnu packages ocaml))))
+    (module-ref ocaml 'ocaml-4.09)))
+
+(define (default-ocaml4.09-findlib)
+  (let ((module (resolve-interface '(gnu packages ocaml))))
+    (module-ref module 'ocaml4.09-findlib)))
+
+(define (default-ocaml4.09-dune)
+  (let ((module (resolve-interface '(gnu packages ocaml))))
+    (module-ref module 'ocaml4.09-dune)))
+
 (define* (package-with-explicit-ocaml ocaml findlib dune old-prefix new-prefix
                                        #:key variant-property)
   "Return a procedure of one argument, P.  The procedure creates a package
@@ -171,6 +185,19 @@ pre-defined variants."
     (inherit p)
     (properties (alist-delete 'ocaml4.07-variant (package-properties p)))))
 
+(define package-with-ocaml4.09
+  (package-with-explicit-ocaml (delay (default-ocaml4.09))
+                               (delay (default-ocaml4.09-findlib))
+                               (delay (default-ocaml4.09-dune))
+                               "ocaml-" "ocaml4.09-"
+                               #:variant-property 'ocaml4.09-variant))
+
+(define (strip-ocaml4.09-variant p)
+  "Remove the 'ocaml4.09-variant' property from P."
+  (package
+    (inherit p)
+    (properties (alist-delete 'ocaml4.09-variant (package-properties p)))))
+
 (define* (lower name
                 #:key source inputs native-inputs outputs system target
                 (ocaml (default-ocaml))
diff --git a/guix/build-system/r.scm b/guix/build-system/r.scm
index 5ef982d66a..e2bf41f18d 100644
--- a/guix/build-system/r.scm
+++ b/guix/build-system/r.scm
@@ -59,7 +59,7 @@ release corresponding to NAME and VERSION."
                          "/src/contrib/"
                          name "_" version ".tar.gz")
           ;; TODO: use %bioconductor-version from (guix import cran)
-          (string-append "https://bioconductor.org/packages/3.11"
+          (string-append "https://bioconductor.org/packages/3.12"
                          type-url-part
                          "/src/contrib/"
                          name "_" version ".tar.gz"))))
diff --git a/guix/build/android-repo.scm b/guix/build/android-repo.scm
new file mode 100644
index 0000000000..db8c4d127b
--- /dev/null
+++ b/guix/build/android-repo.scm
@@ -0,0 +1,75 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2014, 2016, 2019 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2020 Danny Milosavljevic <dannym@scratchpost.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 (guix build android-repo)
+  #:use-module (guix build utils)
+  #:use-module (srfi srfi-34)
+  #:use-module (ice-9 format)
+  #:export (android-repo-fetch))
+
+;;; Commentary:
+;;;
+;;; This is the build-side support code of (guix android-repo-download).
+;;; It allows a multirepository managed by the git-repo tool to be cloned and
+;;; checked out at a specific revision.
+;;;
+;;; Code:
+
+(define* (android-repo-fetch manifest-url manifest-revision directory
+                             #:key (git-repo-command "git-repo"))
+  "Fetch packages according to the manifest at MANIFEST-URL with
+MANIFEST-REVISION.  MANIFEST-REVISION must be either a revision
+or a branch.  Return #t on success, #f otherwise."
+
+  ;; Disable TLS certificate verification.  The hash of the checkout is known
+  ;; in advance anyway.
+  (setenv "GIT_SSL_NO_VERIFY" "true")
+
+  (mkdir-p directory)
+
+  (guard (c ((invoke-error? c)
+             (format (current-error-port)
+                     "android-repo-fetch: '~a~{ ~a~}' failed with exit code ~a~%"
+                     (invoke-error-program c)
+                     (invoke-error-arguments c)
+                     (or (invoke-error-exit-status c) ;XXX: not quite accurate
+                         (invoke-error-stop-signal c)
+                         (invoke-error-term-signal c)))
+             (delete-file-recursively directory)
+             #f))
+    (with-directory-excursion directory
+      (invoke git-repo-command "init" "-u" manifest-url "-b" manifest-revision
+              "--depth=1")
+      (invoke git-repo-command "sync" "-c" "--fail-fast" "-v" "-j"
+              (number->string (parallel-job-count)))
+
+      ;; Delete vendor/**/.git, system/**/.git, toolchain/**/.git,
+      ;; .repo/**/.git etc since they contain timestamps.
+      (for-each delete-file-recursively
+       (find-files "." "^\\.git$" #:directories? #t))
+
+      ;; Delete git state directories since they contain timestamps.
+      (for-each delete-file-recursively
+       (find-files ".repo" "^.*\\.git$" #:directories? #t))
+
+      ;; This file contains timestamps.
+      (delete-file ".repo/.repo_fetchtimes.json")
+      #t)))
+
+;;; android-repo.scm ends here
diff --git a/guix/build/asdf-build-system.scm b/guix/build/asdf-build-system.scm
index 25dd031962..6ad855cab2 100644
--- a/guix/build/asdf-build-system.scm
+++ b/guix/build/asdf-build-system.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2016, 2017 Andy Patterson <ajpatter@uwaterloo.ca>
+;;; Copyright © 2020 Guillaume Le Vaillant <glv@posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -19,6 +20,7 @@
 (define-module (guix build asdf-build-system)
   #:use-module ((guix build gnu-build-system) #:prefix gnu:)
   #:use-module (guix build utils)
+  #:use-module (guix build union)
   #:use-module (guix build lisp-utils)
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-11)
@@ -41,14 +43,22 @@
 ;;
 ;; Code:
 
-(define %object-prefix "/lib")
+(define %object-prefix "/lib/common-lisp")
 
 (define (%lisp-source-install-prefix)
-  (string-append %source-install-prefix "/" (%lisp-type) "-source"))
+  (string-append %source-install-prefix "/" (%lisp-type)))
 
 (define %system-install-prefix
   (string-append %source-install-prefix "/systems"))
 
+(define (main-system-name output)
+  (let ((package-name (package-name->name+version
+                       (strip-store-file-name output)))
+        (lisp-prefix (string-append (%lisp-type) "-")))
+    (if (string-prefix? lisp-prefix package-name)
+        (string-drop package-name (string-length lisp-prefix))
+        package-name)))
+
 (define (lisp-source-directory output name)
   (string-append output (%lisp-source-install-prefix) "/" name))
 
@@ -71,6 +81,13 @@ to it's binary output."
 (define (source-asd-file output name asd-file)
   (string-append (lisp-source-directory output name) "/" asd-file))
 
+(define (find-asd-files output name asd-files)
+  (if (null? asd-files)
+      (find-files (lisp-source-directory output name) "\\.asd$")
+      (map (lambda (asd-file)
+             (source-asd-file output name asd-file))
+           asd-files)))
+
 (define (copy-files-to-output out name)
   "Copy all files from the current directory to OUT.  Create an extra link to
 any system-defining files in the source to a convenient location.  This is
@@ -107,9 +124,10 @@ if it's present in the native-inputs."
     (package-name->name+version
      (strip-store-file-name output)))
   (define (no-prefix pkgname)
-    (if (string-index pkgname #\-)
-        (string-drop pkgname (1+ (string-index pkgname #\-)))
-        pkgname))
+    (let ((index (string-index pkgname #\-)))
+      (if index
+          (string-drop pkgname (1+ index))
+          pkgname)))
   (define parent
     (match (assoc package-name inputs
                   (lambda (key alist-car)
@@ -125,9 +143,10 @@ if it's present in the native-inputs."
   (define parent-source
     (and parent
          (string-append parent "/share/common-lisp/"
-                        (string-take parent-name
-                                     (string-index parent-name #\-))
-                        "-source")))
+                        (let ((index (string-index parent-name #\-)))
+                          (if index
+                              (string-take parent-name index)
+                              parent-name)))))
 
   (define (first-subdirectory directory) ; From gnu-build-system.
     "Return the file name of the first sub-directory of DIRECTORY."
@@ -146,122 +165,83 @@ if it's present in the native-inputs."
   (with-directory-excursion source-directory
     (copy-files-to-output output package-name)))
 
-(define* (copy-source #:key outputs asd-system-name #:allow-other-keys)
+(define* (copy-source #:key outputs asd-systems #:allow-other-keys)
   "Copy the source to the library output."
   (let* ((out (library-output outputs))
-         (install-path (string-append out %source-install-prefix)))
-    (copy-files-to-output out asd-system-name)
+         (install-path (string-append out %source-install-prefix))
+         (system-name (main-system-name out)))
+    (copy-files-to-output out system-name)
     ;; Hide the files from asdf
     (with-directory-excursion install-path
-      (rename-file "source" (string-append (%lisp-type) "-source"))
+      (rename-file "source" (%lisp-type))
       (delete-file-recursively "systems")))
   #t)
 
-(define* (build #:key outputs inputs asd-file asd-system-name
+(define* (configure #:key inputs #:allow-other-keys)
+  ;; Create a directory having the configuration files for
+  ;; all the dependencies in 'etc/common-lisp/'.
+  (let ((out (string-append (getcwd) "/.cl-union")))
+    (match inputs
+      (((name . directories) ...)
+       (union-build out (filter directory-exists? directories)
+                    #:create-all-directories? #t
+                    #:log-port (%make-void-port "w"))))
+    (setenv "CL_UNION" out)
+    (setenv "XDG_CONFIG_DIRS" (string-append out "/etc")))
+  #t)
+
+(define* (build #:key outputs inputs asd-files asd-systems
                 #:allow-other-keys)
   "Compile the system."
   (let* ((out (library-output outputs))
-         (source-path (lisp-source-directory out asd-system-name))
+         (system-name (main-system-name out))
+         (source-path (string-append out (%lisp-source-install-prefix)))
          (translations (wrap-output-translations
                         `(,(output-translation source-path
                                                out))))
-         (asd-file (source-asd-file out asd-system-name asd-file)))
-
+         (asd-files (find-asd-files out system-name asd-files)))
     (setenv "ASDF_OUTPUT_TRANSLATIONS"
             (replace-escaped-macros (format #f "~S" translations)))
-
     (setenv "HOME" out) ; ecl's asdf sometimes wants to create $HOME/.cache
-
-    (compile-system asd-system-name asd-file)
-
-    ;; As above, ecl will sometimes create this even though it doesn't use it
-
-    (let ((cache-directory (string-append out "/.cache")))
-      (when (directory-exists? cache-directory)
-        (delete-file-recursively cache-directory))))
+    (compile-systems asd-systems asd-files))
   #t)
 
-(define* (check #:key tests? outputs inputs asd-file asd-system-name
+(define* (check #:key tests? outputs inputs asd-files asd-systems
                 test-asd-file
                 #:allow-other-keys)
   "Test the system."
   (let* ((out (library-output outputs))
-         (asd-file (source-asd-file out asd-system-name asd-file))
+         (system-name (main-system-name out))
+         (asd-files (find-asd-files out system-name asd-files))
          (test-asd-file
           (and=> test-asd-file
-                 (cut source-asd-file out asd-system-name <>))))
+                 (cut source-asd-file out system-name <>))))
     (if tests?
-        (test-system asd-system-name asd-file test-asd-file)
+        (test-system (first asd-systems) asd-files test-asd-file)
         (format #t "test suite not run~%")))
   #t)
 
-(define* (create-asd-file #:key outputs
-                          inputs
-                          asd-file
-                          asd-system-name
-                          #:allow-other-keys)
-  "Create a system definition file for the built system."
-  (let*-values (((out) (library-output outputs))
-                ((_ version) (package-name->name+version
-                              (strip-store-file-name out)))
-                ((new-asd-file) (string-append
-                                 (library-directory out)
-                                 "/" (normalize-string asd-system-name)
-                                 ".asd")))
-
-    (make-asd-file new-asd-file
-                   #:system asd-system-name
-                   #:version version
-                   #:inputs inputs
-                   #:system-asd-file asd-file))
-  #t)
-
-(define* (symlink-asd-files #:key outputs #:allow-other-keys)
-  "Create an extra reference to the system in a convenient location."
-  (let* ((out (library-output outputs)))
-    (for-each
-     (lambda (asd-file)
-       (receive (new-asd-file asd-file-directory)
-           (bundle-asd-file out asd-file)
-         (mkdir-p asd-file-directory)
-         (symlink asd-file new-asd-file)
-         ;; Update the source registry for future phases which might want to
-         ;; use the newly compiled system.
-         (prepend-to-source-registry
-          (string-append asd-file-directory "/"))))
-
-     (find-files (string-append out %object-prefix) "\\.asd$")))
-  #t)
+(define* (create-asdf-configuration #:key inputs outputs #:allow-other-keys)
+  "Create the ASDF configuration files for the built systems."
+  (let* ((system-name (main-system-name (assoc-ref outputs "out")))
+         (out (library-output outputs))
+         (conf-dir (string-append out "/etc/common-lisp"))
+         (deps-conf-dir (string-append (getenv "CL_UNION") "/etc/common-lisp"))
+         (source-dir (lisp-source-directory out system-name))
+         (lib-dir (string-append (library-directory out) "/" system-name)))
+    (make-asdf-configuration system-name conf-dir deps-conf-dir
+                             source-dir lib-dir)
+    #t))
 
 (define* (cleanup-files #:key outputs
                         #:allow-other-keys)
   "Remove any compiled files which are not a part of the final bundle."
-  (let ((out (library-output outputs)))
-    (match (%lisp-type)
-      ("sbcl"
-       (for-each
-        (lambda (file)
-          (unless (string-suffix? "--system.fasl" file)
-            (delete-file file)))
-        (find-files out "\\.fasl$")))
-      ("ecl"
-       (for-each delete-file
-                 (append (find-files out "\\.fas$")
-                         (find-files out "\\.o$")))))
-
-    (with-directory-excursion (library-directory out)
-      (for-each
-       (lambda (file)
-         (rename-file file
-                      (string-append "./" (basename file))))
-       (find-files "."))
-      (for-each delete-file-recursively
-                (scandir "."
-                         (lambda (file)
-                           (and
-                            (directory-exists? file)
-                            (string<> "." file)
-                            (string<> ".." file)))))))
+  (let* ((out (library-output outputs))
+         (cache-directory (string-append out "/.cache")))
+    ;; Remove the cache directory in case the lisp implementation wrote
+    ;; something in there when compiling or testing a system.
+    (when (directory-exists? cache-directory)
+      (delete-file-recursively cache-directory)))
   #t)
 
 (define* (strip #:rest args)
@@ -280,15 +260,14 @@ if it's present in the native-inputs."
 (define %standard-phases
   (modify-phases gnu:%standard-phases
     (delete 'bootstrap)
-    (delete 'configure)
-    (delete 'install)
+    (replace 'configure configure)
+    (add-before 'configure 'copy-source copy-source)
     (replace 'build build)
-    (add-before 'build 'copy-source copy-source)
     (replace 'check check)
-    (replace 'strip strip)
-    (add-after 'check 'create-asd-file create-asd-file)
-    (add-after 'create-asd-file 'cleanup cleanup-files)
-    (add-after 'cleanup 'create-symlinks symlink-asd-files)))
+    (add-after 'check 'create-asdf-configuration create-asdf-configuration)
+    (add-after 'create-asdf-configuration 'cleanup cleanup-files)
+    (delete 'install)
+    (replace 'strip strip)))
 
 (define* (asdf-build #:key inputs
                      (phases %standard-phases)
diff --git a/guix/build/cargo-build-system.scm b/guix/build/cargo-build-system.scm
index 95e8dd772a..1d21b33895 100644
--- a/guix/build/cargo-build-system.scm
+++ b/guix/build/cargo-build-system.scm
@@ -4,6 +4,7 @@
 ;;; Copyright © 2019 Ivan Petkov <ivanppetkov@gmail.com>
 ;;; Copyright © 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
+;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -122,6 +123,13 @@ directory = '" port)
   (setenv "CC" (string-append (assoc-ref inputs "gcc") "/bin/gcc"))
   (setenv "LIBGIT2_SYS_USE_PKG_CONFIG" "1")
   (setenv "LIBSSH2_SYS_USE_PKG_CONFIG" "1")
+  (when (assoc-ref inputs "openssl")
+    (setenv "OPENSSL_DIR" (assoc-ref inputs "openssl")))
+  (when (assoc-ref inputs "gettext")
+    (setenv "GETTEXT_SYSTEM" (assoc-ref inputs "gettext")))
+  (when (assoc-ref inputs "clang")
+    (setenv "LIBCLANG_PATH"
+            (string-append (assoc-ref inputs "clang") "/lib")))
 
   ;; We don't use the Cargo.lock file to determine the package versions we use
   ;; during building, and in any case if one is not present it is created
@@ -141,14 +149,17 @@ directory = '" port)
 
 (define* (build #:key
                 skip-build?
-                features
+                (features '())
                 (cargo-build-flags '("--release"))
                 #:allow-other-keys)
   "Build a given Cargo package."
   (or skip-build?
-      (apply invoke "cargo" "build"
-             "--features" (string-join features)
-             cargo-build-flags)))
+      (apply invoke
+             `("cargo" "build"
+               ,@(if (null? features)
+                     '()
+                     `("--features" ,(string-join features)))
+               ,@cargo-build-flags))))
 
 (define* (check #:key
                 tests?
@@ -172,8 +183,10 @@ directory = '" port)
     ;; otherwise cargo will raise an error.
     (or skip-build?
         (not (has-executable-target?))
-        (invoke "cargo" "install" "--path" "." "--root" out
-                "--features" (string-join features)))))
+        (invoke "cargo" "install" "--no-track" "--path" "." "--root" out
+                "--features" (string-join features)))
+
+    #t))
 
 (define %standard-phases
   (modify-phases gnu:%standard-phases
diff --git a/guix/build/cargo-utils.scm b/guix/build/cargo-utils.scm
index 5ac429a62a..7a3bb4b843 100644
--- a/guix/build/cargo-utils.scm
+++ b/guix/build/cargo-utils.scm
@@ -2,7 +2,7 @@
 ;;; Copyright © 2016 David Craven <david@craven.ch>
 ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
 ;;; Copyright © 2019 Ivan Petkov <ivanppetkov@gmail.com>
-;;; Copyright © 2019 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -23,6 +23,7 @@
   #:use-module (guix build utils)
   #:use-module (ice-9 popen)
   #:use-module (ice-9 rdelim)
+  #:use-module (ice-9 threads)
   #:export (generate-checksums
             generate-all-checksums))
 
@@ -70,7 +71,7 @@ the same directory."
         (display "}" port)))))
 
 (define (generate-all-checksums dir-name)
-  (for-each
+  (n-par-for-each (parallel-job-count)
     (lambda (filename)
       (let* ((dir (dirname filename))
              (checksum-file (string-append dir "/.cargo-checksum.json")))
diff --git a/guix/build/chicken-build-system.scm b/guix/build/chicken-build-system.scm
new file mode 100644
index 0000000000..5db9906acf
--- /dev/null
+++ b/guix/build/chicken-build-system.scm
@@ -0,0 +1,133 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2020 raingloom <raingloom@riseup.net>
+;;;
+;;; 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 (guix build chicken-build-system)
+  #:use-module ((guix build gnu-build-system) #:prefix gnu:)
+  #:use-module (guix build union)
+  #:use-module (guix build utils)
+  #:use-module (ice-9 match)
+  #:use-module (ice-9 ftw)
+  #:use-module (srfi srfi-1)
+  #:use-module (srfi srfi-26)
+  #:use-module (rnrs io ports)
+  #:use-module (rnrs bytevectors)
+  #:export (%standard-phases
+            chicken-build))
+
+;; CHICKEN_EGG_CACHE is where sources are fetched and binaries are built
+;; CHICKEN_INSTALL_REPOSITORY is where dependencies are looked up
+;; its first component is also where new eggs are installed.
+
+;; TODO: deduplicate with go-build-system.scm ?
+;; TODO: the binary version should be defined in one of the relevant modules
+;; instead of being hardcoded everywhere. Tried to do that but got undefined
+;; variable errors.
+
+(define (chicken-package? name)
+  (string-prefix? "chicken-" name))
+
+(define* (setup-chicken-environment #:key inputs outputs #:allow-other-keys)
+  (setenv "CHICKEN_INSTALL_REPOSITORY"
+          (string-concatenate
+           ;; see TODO item about binary version above
+           (append (list (assoc-ref outputs "out") "/var/lib/chicken/11/")
+                   (let ((oldenv (getenv "CHICKEN_INSTALL_REPOSITORY")))
+                     (if oldenv
+                         (list  ":" oldenv)
+                         '())))))
+  (setenv "CHICKEN_EGG_CACHE" (getcwd))
+  #t)
+
+;; This is copied from go-build-system.scm so it could probably be simplified.
+;; I used it because the source of the egg needs to be unpacked into a directory
+;; that is named after the egg and I knew that the go build system does that.
+(define* (unpack #:key source egg-name unpack-path #:allow-other-keys)
+  "Relative to $CHICKEN_EGG_CACHE, unpack SOURCE in UNPACK-PATH, or EGG-NAME
+when UNPACK-PATH is unset.  If the SOURCE archive has a single top level
+directory, it is stripped so that the sources appear directly under UNPACK-PATH.
+When SOURCE is a directory, copy its content into UNPACK-PATH instead of
+unpacking."
+  (define (unpack-maybe-strip source dest)
+    (let* ((scratch-dir (string-append (or (getenv "TMPDIR") "/tmp")
+                                       "/scratch-dir"))
+           (out (mkdir-p scratch-dir)))
+      (with-directory-excursion scratch-dir
+        (if (string-suffix? ".zip" source)
+            (invoke "unzip" source)
+            (invoke "tar" "-xvf" source))
+        (let ((top-level-files (remove (lambda (x)
+                                         (member x '("." "..")))
+                                       (scandir "."))))
+          (match top-level-files
+            ((top-level-file)
+             (when (file-is-directory? top-level-file)
+               (copy-recursively top-level-file dest #:keep-mtime? #t)))
+            (_
+             (copy-recursively "." dest #:keep-mtime? #t)))))
+      (delete-file-recursively scratch-dir)))
+
+  (when (string-null? egg-name)
+    (display "WARNING: The egg name is unset.\n"))
+  (when (string-null? unpack-path)
+    (set! unpack-path egg-name))
+  (let ((dest (string-append (getenv "CHICKEN_EGG_CACHE") "/" unpack-path)))
+    (mkdir-p dest)
+    (if (file-is-directory? source)
+        (copy-recursively source dest #:keep-mtime? #t)
+        (unpack-maybe-strip source dest)))
+  #t)
+
+(define* (build #:key egg-name #:allow-other-keys)
+  "Build the Chicken egg named by EGG-NAME"
+  (invoke "chicken-install" "-cached" "-no-install" egg-name))
+
+(define* (install #:key egg-name #:allow-other-keys)
+  "Install the already built egg named by EGG-NAME"
+  (invoke "chicken-install" "-cached" egg-name))
+
+(define* (check #:key egg-name tests? #:allow-other-keys)
+  "Build and run tests for the Chicken egg EGG-NAME"
+  ;; there is no "-test-only" option, but we've already run install
+  ;; so this just runs tests.
+  ;; i think it's a fair assumption that phases won't be reordered.
+  (setenv "CHICKEN_REPOSITORY_PATH"
+          (string-append (getenv "CHICKEN_INSTALL_REPOSITORY")
+                         ":"
+                         (getenv "CHICKEN_REPOSITORY_PATH")))
+  (when tests?
+    (invoke "chicken-install" "-cached" "-test" "-no-install" egg-name)))
+
+;; It doesn't look like Chicken generates any unnecessary references.
+;; So we don't have to remove them either. Nice.
+
+(define %standard-phases
+  (modify-phases gnu:%standard-phases
+    (replace 'unpack unpack)
+    (delete 'bootstrap)
+    (delete 'configure)
+    (delete 'patch-generated-file-shebangs)
+    (add-before 'unpack 'setup-chicken-environment setup-chicken-environment)
+    (replace 'build build)
+    (delete 'check)
+    (replace 'install install)
+    (add-after 'install 'check check)))
+
+(define* (chicken-build #:key inputs (phases %standard-phases)
+                        #:allow-other-keys #:rest args)
+  "Build the given Chicken package, applying all of PHASES in order."
+  (apply gnu:gnu-build #:inputs inputs #:phases phases args))
diff --git a/guix/build/download-nar.scm b/guix/build/download-nar.scm
index 377e428341..867f3c10bb 100644
--- a/guix/build/download-nar.scm
+++ b/guix/build/download-nar.scm
@@ -20,7 +20,7 @@
   #:use-module (guix build download)
   #:use-module (guix build utils)
   #:use-module ((guix serialization) #:hide (dump-port*))
-  #:use-module (guix zlib)
+  #:autoload   (zlib) (call-with-gzip-input-port)
   #:use-module (guix progress)
   #:use-module (web uri)
   #:use-module (srfi srfi-11)
diff --git a/guix/build/go-build-system.scm b/guix/build/go-build-system.scm
index b9cb2bfd7b..227df820db 100644
--- a/guix/build/go-build-system.scm
+++ b/guix/build/go-build-system.scm
@@ -4,6 +4,7 @@
 ;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2020 Jack Hill <jackhill@jackhill.us>
 ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
+;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -254,6 +255,17 @@ XXX We can't make use of compiled libraries (Go \"packages\")."
       (copy-recursively source dest #:keep-mtime? #t)))
   #t)
 
+(define* (install-license-files #:key unpack-path
+                                import-path
+                                #:allow-other-keys
+                                #:rest args)
+  "Install license files matching LICENSE-FILE-REGEXP to 'share/doc'.  Adjust
+the standard install-license-files phase to first enter the correct directory."
+  (with-directory-excursion (string-append "src/" (if (string-null? unpack-path)
+                                                    import-path
+                                                    unpack-path))
+    (apply (assoc-ref gnu:%standard-phases 'install-license-files) args)))
+
 (define* (remove-store-reference file file-name
                                   #:optional (store (%store-directory)))
   "Remove from FILE occurrences of FILE-NAME in STORE; return #t when FILE-NAME
@@ -317,6 +329,7 @@ files in OUTPUTS."
     (replace 'build build)
     (replace 'check check)
     (replace 'install install)
+    (replace 'install-license-files install-license-files)
     (add-after 'install 'remove-go-references remove-go-references)))
 
 (define* (go-build #:key inputs (phases %standard-phases)
diff --git a/guix/build/haskell-build-system.scm b/guix/build/haskell-build-system.scm
index 91f62138d0..28253ce2f0 100644
--- a/guix/build/haskell-build-system.scm
+++ b/guix/build/haskell-build-system.scm
@@ -2,7 +2,7 @@
 ;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
 ;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
-;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2018, 2020 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -73,37 +73,35 @@ and parameters ~s~%"
         (error "no Setup.hs nor Setup.lhs found"))))
 
 (define* (configure #:key outputs inputs tests? (configure-flags '())
-                    #:allow-other-keys)
+                    (extra-directories '()) #:allow-other-keys)
   "Configure a given Haskell package."
   (let* ((out (assoc-ref outputs "out"))
          (doc (assoc-ref outputs "doc"))
          (lib (assoc-ref outputs "lib"))
-         (bin (assoc-ref outputs "bin"))
          (name-version (strip-store-file-name out))
-         (input-dirs (match inputs
-                       (((_ . dir) ...)
-                        dir)
-                       (_ '())))
+         (extra-dirs (filter-map (cut assoc-ref inputs <>) extra-directories))
          (ghc-path (getenv "GHC_PACKAGE_PATH"))
-         (params (append `(,(string-append "--prefix=" out))
-                         `(,(string-append "--libdir=" (or lib out) "/lib"))
-                         `(,(string-append "--bindir=" (or bin out) "/bin"))
-                         `(,(string-append
-                             "--docdir=" (or doc out)
-                             "/share/doc/" name-version))
-                         '("--libsubdir=$compiler/$pkg-$version")
-                         `(,(string-append "--package-db=" %tmp-db-dir))
-                         '("--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)))
+         (params `(,(string-append "--prefix=" out)
+                   ,(string-append "--libdir=" (or lib out) "/lib")
+                   ,(string-append "--docdir=" (or doc out)
+                                   "/share/doc/" name-version)
+                   "--libsubdir=$compiler/$pkg-$version"
+                   ,(string-append "--package-db=" %tmp-db-dir)
+                   "--global"
+                   ,@(map (cut string-append "--extra-include-dirs=" <>)
+                          (search-path-as-list '("include") extra-dirs))
+                   ,@(map (cut string-append "--extra-lib-dirs=" <>)
+                          (search-path-as-list '("lib") extra-dirs))
+                   ,@(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=" (or lib out)
+                                   "/lib/$compiler/$pkg-$version")
+                   ,@configure-flags)))
     ;; Cabal errors if GHC_PACKAGE_PATH is set during 'configure', so unset
     ;; and restore it.
     (unsetenv "GHC_PACKAGE_PATH")
@@ -121,13 +119,27 @@ and parameters ~s~%"
     (setenv "GHC_PACKAGE_PATH" ghc-path)
     #t))
 
-(define* (build #:rest empty)
+(define* (build #:key parallel-build? #:allow-other-keys)
   "Build a given Haskell package."
-  (run-setuphs "build" '()))
+  (run-setuphs "build"
+               (if parallel-build?
+                   `(,(string-append "--ghc-option=-j" (number->string (parallel-job-count))))
+                   '())))
 
-(define* (install #:rest empty)
+(define* (install #:key outputs #:allow-other-keys)
   "Install a given Haskell package."
-  (run-setuphs "copy" '()))
+  (run-setuphs "copy" '())
+  (when (assoc-ref outputs "static")
+    (let ((static (assoc-ref outputs "static"))
+          (lib (or (assoc-ref outputs "lib")
+                   (assoc-ref outputs "out"))))
+      (for-each (lambda (static-lib)
+                  (let* ((subdir (string-drop static-lib (string-length lib)))
+                         (new    (string-append static subdir)))
+                    (mkdir-p (dirname new))
+                    (rename-file static-lib new)))
+                (find-files lib "\\.a$"))))
+  #t)
 
 (define (grep rx port)
   "Given a regular-expression RX including a group, read from PORT until the
@@ -227,9 +239,10 @@ given Haskell package."
              (loop seen tail))))))
 
   (let* ((out (assoc-ref outputs "out"))
+         (doc (assoc-ref outputs "doc"))
          (haskell  (assoc-ref inputs "haskell"))
          (name-verion (strip-store-file-name haskell))
-         (lib (string-append out "/lib"))
+         (lib (string-append (or (assoc-ref outputs "lib") out) "/lib"))
          (config-dir (string-append lib
                                     "/" name-verion
                                     "/" name ".conf.d"))
@@ -241,8 +254,25 @@ given Haskell package."
     ;; The conf file is created only when there is a library to register.
     (when (file-exists? config-file)
       (mkdir-p config-dir)
-      (let* ((config-file-name+id
-              (call-with-ascii-input-file config-file (cut grep id-rx <>))))
+      (let ((config-file-name+id
+             (call-with-ascii-input-file config-file (cut grep id-rx <>))))
+
+        ;; Remove reference to "doc" output from "lib" (or "out") by rewriting the
+        ;; "haddock-interfaces" field and removing the optional "haddock-html"
+        ;; field in the generated .conf file.
+        (when doc
+          (substitute* config-file
+            (("^haddock-html: .*") "\n")
+            (((format #f "^haddock-interfaces: ~a" doc))
+             (string-append "haddock-interfaces: " lib)))
+          ;; Move the referenced file to the "lib" (or "out") output.
+          (match (find-files doc "\\.haddock$")
+            ((haddock-file . rest)
+             (let* ((subdir (string-drop haddock-file (string-length doc)))
+                    (new    (string-append lib subdir)))
+               (mkdir-p (dirname new))
+               (rename-file haddock-file new)))
+            (_ #f)))
         (install-transitive-deps config-file %tmp-db-dir config-dir)
         (rename-file config-file
                      (string-append config-dir "/"
diff --git a/guix/build/hg.scm b/guix/build/hg.scm
index b3e3ff7ac3..0ffad7fa2d 100644
--- a/guix/build/hg.scm
+++ b/guix/build/hg.scm
@@ -2,6 +2,7 @@
 ;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2018 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2018 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
+;;; Copyright © 2020 Simon Tournier <zimon.toutoune@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -20,6 +21,8 @@
 
 (define-module (guix build hg)
   #:use-module (guix build utils)
+  #:use-module (srfi srfi-34)
+  #:use-module (ice-9 format)
   #:export (hg-fetch))
 
 ;;; Commentary:
@@ -35,22 +38,29 @@
   "Fetch CHANGESET from URL into DIRECTORY.  CHANGESET must be a valid
 Mercurial changeset identifier.  Return #t on success, #f otherwise."
 
-  (invoke hg-command
-          "clone" url
-          "--rev" changeset
-          ;; Disable TLS certificate verification.  The hash of
-          ;; the checkout is known in advance anyway.
-          "--insecure"
-          directory)
-
-  ;; The contents of '.hg' vary as a function of the current
-  ;; status of the Mercurial repo.  Since we want a fixed
-  ;; output, this directory needs to be taken out.
-  ;; Since the '.hg' file is also in sub-modules, we have to
-  ;; search for it in all sub-directories.
-  (for-each delete-file-recursively
-            (find-files directory "^\\.hg$" #:directories? #t))
-
-  #t)
+  (mkdir-p directory)
+
+  (guard (c ((invoke-error? c)
+             (report-invoke-error c)
+             (delete-file-recursively directory)
+             #f))
+    (with-directory-excursion directory
+      (invoke hg-command
+              "clone" url
+              "--rev" changeset
+              ;; Disable TLS certificate verification.  The hash of
+              ;; the checkout is known in advance anyway.
+              "--insecure"
+              directory)
+
+      ;; The contents of '.hg' vary as a function of the current
+      ;; status of the Mercurial repo.  Since we want a fixed
+      ;; output, this directory needs to be taken out.
+      ;; Since the '.hg' file is also in sub-modules, we have to
+      ;; search for it in all sub-directories.
+      (for-each delete-file-recursively
+                (find-files directory "^\\.hg$" #:directories? #t))
+
+      #t)))
 
 ;;; hg.scm ends here
diff --git a/guix/build/lisp-utils.scm b/guix/build/lisp-utils.scm
index f6d9168c48..8a02cb68dd 100644
--- a/guix/build/lisp-utils.scm
+++ b/guix/build/lisp-utils.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2016, 2017 Andy Patterson <ajpatter@uwaterloo.ca>
+;;; Copyright © 2020 Guillaume Le Vaillant <glv@posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -28,19 +29,17 @@
             %lisp-type
             %source-install-prefix
             lisp-eval-program
-            compile-system
+            compile-systems
             test-system
             replace-escaped-macros
             generate-executable-wrapper-system
             generate-executable-entry-point
             generate-executable-for-system
-            %bundle-install-prefix
-            bundle-asd-file
             wrap-output-translations
             prepend-to-source-registry
             build-program
             build-image
-            make-asd-file
+            make-asdf-configuration
             valid-char-set
             normalize-string
             library-output))
@@ -65,9 +64,6 @@
 ;; link farm for system definition (.asd) files.
 (define %source-install-prefix "/share/common-lisp")
 
-(define (%bundle-install-prefix)
-  (string-append %source-install-prefix "/" (%lisp-type) "-bundle-systems"))
-
 (define (library-output outputs)
   "If a `lib' output exists, build things there. Otherwise use `out'."
   (or (assoc-ref outputs "lib") (assoc-ref outputs "out")))
@@ -81,38 +77,6 @@
   "Replace invalid characters in STR with a hyphen."
   (string-join (string-tokenize str valid-char-set) "-"))
 
-(define (normalize-dependency dependency)
-  "Normalize the name of DEPENDENCY.  Handles dependency definitions of the
-dependency-def form described by
-<https://common-lisp.net/project/asdf/asdf.html#The-defsystem-grammar>.
-Assume that any symbols in DEPENDENCY will be in upper-case."
-  (match dependency
-    ((':VERSION name rest ...)
-     `(:version ,(normalize-string name) ,@rest))
-    ((':FEATURE feature-specification dependency-specification)
-     `(:feature
-       ,feature-specification
-       ,(normalize-dependency dependency-specification)))
-    ((? string? name) (normalize-string name))
-    (require-specification require-specification)))
-
-(define (inputs->asd-file-map inputs)
-  "Produce a hash table of the form (system . asd-file), where system is the
-name of an ASD system, and asd-file is the full path to its definition."
-  (alist->hash-table
-   (filter-map
-    (match-lambda
-      ((_ . path)
-       (let ((prefix (string-append path (%bundle-install-prefix))))
-         (and (directory-exists? prefix)
-              (match (find-files prefix "\\.asd$")
-                ((asd-file)
-                 (cons
-                  (string-drop-right (basename asd-file) 4) ; drop ".asd"
-                  asd-file))
-                (_ #f))))))
-    inputs)))
-
 (define (wrap-output-translations translations)
   `(:output-translations
     ,@translations
@@ -143,70 +107,26 @@ with PROGRAM."
              "--eval" "(quit)"))
     (_ (error "The LISP provided is not supported at this time."))))
 
-(define (asdf-load-all systems)
-  (map (lambda (system)
-         `(asdf:load-system ,system))
-       systems))
-
-(define (compile-system system asd-file)
-  "Use a lisp implementation to compile SYSTEM using asdf.  Load ASD-FILE
-first."
+(define (compile-systems systems asd-files)
+  "Use a lisp implementation to compile the SYSTEMS using asdf.
+Load ASD-FILES first."
   (lisp-eval-program
    `((require :asdf)
-     (asdf:load-asd (truename ,asd-file) :name ,(normalize-string system))
-     (asdf:operate 'asdf:compile-bundle-op ,system))))
-
-(define (system-dependencies system asd-file)
-  "Return the dependencies of SYSTEM, as reported by
-asdf:system-depends-on.  First load the system's ASD-FILE."
-  (define deps-file ".deps.sexp")
-  (define program
-    `((require :asdf)
-      (asdf:load-asd (truename ,asd-file) :name ,(normalize-string system))
-      (with-open-file
-       (stream ,deps-file :direction :output)
-       (format stream
-               "~s~%"
-               (asdf:system-depends-on
-                (asdf:find-system ,system))))))
-
-  (dynamic-wind
-    (lambda _
-      (lisp-eval-program program))
-    (lambda _
-      (call-with-input-file deps-file read))
-    (lambda _
-      (when (file-exists? deps-file)
-        (delete-file deps-file)))))
-
-(define (compiled-system system)
-  (let ((system (basename system))) ; this is how asdf handles slashes
-    (match (%lisp-type)
-      ("sbcl" (string-append system "--system"))
-      (_ system))))
-
-(define* (generate-system-definition system
-                                     #:key version dependencies component?)
-  `(asdf:defsystem
-    ,(normalize-string system)
-    ,@(if component?
-          '(:class asdf/bundle:prebuilt-system)
-          '())
-    :version ,version
-    :depends-on ,dependencies
-    ,@(if component?
-          `(:components ((:compiled-file ,(compiled-system system))))
-          '())
-    ,@(if (string=? "ecl" (%lisp-type))
-          `(:lib ,(string-append system ".a"))
-          '())))
-
-(define (test-system system asd-file test-asd-file)
-  "Use a lisp implementation to test SYSTEM using asdf.  Load ASD-FILE first.
+     ,@(map (lambda (asd-file)
+              `(asdf:load-asd (truename ,asd-file)))
+            asd-files)
+     ,@(map (lambda (system)
+              `(asdf:compile-system ,system))
+            systems))))
+
+(define (test-system system asd-files test-asd-file)
+  "Use a lisp implementation to test SYSTEM using asdf.  Load ASD-FILES first.
 Also load TEST-ASD-FILE if necessary."
   (lisp-eval-program
    `((require :asdf)
-     (asdf:load-asd (truename ,asd-file) :name ,(normalize-string system))
+     ,@(map (lambda (asd-file)
+              `(asdf:load-asd (truename ,asd-file)))
+            asd-files)
      ,@(if test-asd-file
            `((asdf:load-asd (truename ,test-asd-file)))
            ;; Try some likely files.
@@ -237,6 +157,7 @@ created a \"SYSTEM-exec\" system which contains the entry program."
                                        :executable t
                                        :compression t))
           '())
+     (asdf:load-asd (truename ,(string-append system "-exec.asd")))
      (asdf:operate ',type ,(string-append system "-exec")))))
 
 (define (generate-executable-wrapper-system system dependencies)
@@ -271,79 +192,30 @@ ENTRY-PROGRAM for SYSTEM within the current directory."
                       (declare (ignorable arguments))
                       ,@entry-program))))))))
 
-(define (generate-dependency-links registry system)
-  "Creates a program which populates asdf's source registry from REGISTRY, an
-alist of dependency names to corresponding asd files.  This allows the system
-to locate its dependent systems."
-  `(progn
-    (asdf/source-registry:ensure-source-registry)
-    ,@(map (match-lambda
-             ((name . asd-file)
-              `(setf
-                (gethash ,name
-                         asdf/source-registry:*source-registry*)
-                ,(string->symbol "#p")
-                ,asd-file)))
-           registry)))
-
-(define* (make-asd-file asd-file
-                        #:key system version inputs
-                        (system-asd-file #f))
-  "Create an ASD-FILE for SYSTEM@VERSION, appending a program to allow the
-system to find its dependencies, as described by GENERATE-DEPENDENCY-LINKS."
-  (define dependencies
-    (let ((deps
-           (system-dependencies system system-asd-file)))
-      (if (eq? 'NIL deps)
-          '()
-          (map normalize-dependency deps))))
-
-  (define lisp-input-map
-    (inputs->asd-file-map inputs))
-
-  (define dependency-name
-    (match-lambda
-      ((':version name _ ...) name)
-      ((':feature _ dependency-specification)
-       (dependency-name dependency-specification))
-      ((? string? name) name)
-      (_ #f)))
-
-  (define registry
-    (filter-map hash-get-handle
-                (make-list (length dependencies)
-                           lisp-input-map)
-                (map dependency-name dependencies)))
-
-  ;; Ensure directory exists, which might not be the case for an .asd without components.
-  (mkdir-p (dirname asd-file))
-  (call-with-output-file asd-file
-    (lambda (port)
-      (display
-       (replace-escaped-macros
-        (format #f "~y~%~y~%"
-                (generate-system-definition
-                 system
-                 #:version version
-                 #:dependencies dependencies
-                 ;; Some .asd don't have components, and thus they don't generate any .fasl.
-                 #:component? (match (%lisp-type)
-                                ("sbcl" (pair? (find-files (dirname asd-file)
-                                                           "--system\\.fasl$")))
-                                ("ecl" (pair? (find-files (dirname asd-file)
-                                                          "\\.fasb$")))
-                                (_ (error "The LISP provided is not supported at this time."))))
-                (generate-dependency-links registry system)))
-       port))))
-
-(define (bundle-asd-file output-path original-asd-file)
-  "Find the symlinked bundle file for ORIGINAL-ASD-FILE by looking in
-OUTPUT-PATH/share/common-lisp/LISP-bundle-systems/<system>.asd.  Returns two
-values: the asd file itself and the directory in which it resides."
-  (let ((bundle-asd-path (string-append output-path
-                                        (%bundle-install-prefix))))
-    (values (string-append bundle-asd-path "/" (basename original-asd-file))
-            bundle-asd-path)))
+(define (make-asdf-configuration name conf-dir deps-conf-dir source-dir lib-dir)
+  (let ((registry-dir (string-append
+                       conf-dir "/source-registry.conf.d"))
+        (translations-dir (string-append
+                           conf-dir "/asdf-output-translations.conf.d"))
+        (deps-registry-dir (string-append
+                            deps-conf-dir "/source-registry.conf.d"))
+        (deps-translations-dir (string-append
+                                deps-conf-dir
+                                "/asdf-output-translations.conf.d")))
+    (mkdir-p registry-dir)
+    (when (directory-exists? deps-registry-dir)
+      (copy-recursively deps-registry-dir registry-dir))
+    (with-output-to-file (string-append registry-dir "/50-" name ".conf")
+      (lambda _
+        (format #t "~y~%" `(:tree ,source-dir))))
+
+    (mkdir-p translations-dir)
+    (when (directory-exists? deps-translations-dir)
+      (copy-recursively deps-translations-dir translations-dir))
+    (with-output-to-file (string-append translations-dir "/50-" name ".conf")
+      (lambda _
+        (format #t "~y~%" `((,source-dir :**/ :*.*.*)
+                            (,lib-dir :**/ :*.*.*)))))))
 
 (define (replace-escaped-macros string)
   "Replace simple lisp forms that the guile writer escapes, for example by
@@ -368,6 +240,7 @@ will run ENTRY-PROGRAM, a list of Common Lisp expressions in which `arguments'
 has been bound to the command-line arguments which were passed.  Link in any
 asd files from DEPENDENCY-PREFIXES to ensure references to those libraries are
 retained."
+  (setenv "XDG_CONFIG_DIRS" (string-append (library-output outputs) "/etc"))
   (generate-executable program
                        #:dependencies dependencies
                        #:dependency-prefixes dependency-prefixes
@@ -388,6 +261,7 @@ retained."
   "Generate an image, possibly standalone, which contains all DEPENDENCIES,
 placing the result in IMAGE.image.  Link in any asd files from
 DEPENDENCY-PREFIXES to ensure references to those libraries are retained."
+  (setenv "XDG_CONFIG_DIRS" (string-append (library-output outputs) "/etc"))
   (generate-executable image
                        #:dependencies dependencies
                        #:dependency-prefixes dependency-prefixes
@@ -416,20 +290,15 @@ references to those libraries are retained."
     (mkdir-p bin-directory)
     (with-directory-excursion bin-directory
       (generate-executable-wrapper-system name dependencies)
-      (generate-executable-entry-point name entry-program))
-
-    (prepend-to-source-registry
-     (string-append bin-directory "/"))
-
-    (setenv "ASDF_OUTPUT_TRANSLATIONS"
-            (replace-escaped-macros
-             (format
-              #f "~S"
-              (wrap-output-translations
-               `(((,bin-directory :**/ :*.*.*)
-                  (,bin-directory :**/ :*.*.*)))))))
-
-    (generate-executable-for-system type name #:compress? compress?)
+      (generate-executable-entry-point name entry-program)
+      (setenv "ASDF_OUTPUT_TRANSLATIONS"
+              (replace-escaped-macros
+               (format
+                #f "~S"
+                (wrap-output-translations
+                 `(((,bin-directory :**/ :*.*.*)
+                    (,bin-directory :**/ :*.*.*)))))))
+      (generate-executable-for-system type name #:compress? compress?))
 
     (let* ((after-store-prefix-index
             (string-index out-file #\/
@@ -445,9 +314,11 @@ references to those libraries are retained."
             (symlink asd-file
                      (string-append hidden-asd-links
                                     "/" (basename asd-file))))
-          (find-files (string-append path (%bundle-install-prefix))
+          (find-files (string-append path %source-install-prefix "/"
+                                     (%lisp-type))
                       "\\.asd$")))
        dependency-prefixes))
 
     (delete-file (string-append bin-directory "/" name "-exec.asd"))
-    (delete-file (string-append bin-directory "/" name "-exec.lisp"))))
+    (delete-file (string-append bin-directory "/" name "-exec.lisp"))
+    (delete-file (string-append bin-directory "/" name "-exec.fasl"))))
diff --git a/guix/build/maven-build-system.scm b/guix/build/maven-build-system.scm
index 914298d584..534b4ebcee 100644
--- a/guix/build/maven-build-system.scm
+++ b/guix/build/maven-build-system.scm
@@ -100,7 +100,8 @@
                     inputs local-packages excludes)))))))
 
 (define* (fix-pom-files #:key inputs local-packages exclude #:allow-other-keys)
-  (fix-pom "pom.xml" inputs local-packages exclude))
+  (fix-pom "pom.xml" inputs local-packages exclude)
+  #t)
 
 (define* (build #:key outputs #:allow-other-keys)
   "Build the given package."
diff --git a/guix/build/maven/pom.scm b/guix/build/maven/pom.scm
index aa60af2afa..c92d409d2b 100644
--- a/guix/build/maven/pom.scm
+++ b/guix/build/maven/pom.scm
@@ -59,7 +59,7 @@ represents a @file{.pom} file content, or parts of it."
   (pom-ref content "parent"))
 
 (define* (find-parent content inputs #:optional local-packages)
-  "Find the parent pom for the pom file whith @var{content} in a package's
+  "Find the parent pom for the pom file with @var{content} in a package's
 @var{inputs}.  When the parent pom cannot be found in @var{inputs}, but
 @var{local-packages} is defined, the parent pom is looked up in it.
 
@@ -246,14 +246,14 @@ to re-declare the namespaces in the top-level element."
   "Open @var{pom-file}, and override its content, rewritting its dependencies
 to set their version to the latest version available in the @var{inputs}.
 
-@var{#:with-plugins?} controls whether plugins are also overiden.
+@var{#:with-plugins?} controls whether plugins are also overridden.
 @var{#:with-build-dependencies?} controls whether build dependencies (whose
-scope is not empty) are also overiden.  By default build dependencies and
-plugins are not overiden.
+scope is not empty) are also overridden.  By default build dependencies and
+plugins are not overridden.
 
 @var{#:excludes} is an association list of groupID to a list of artifactIDs.
 When a pair (groupID, artifactID) is present in the list, its entry is
-removed instead of being overiden.  If the entry is ignored because of the
+removed instead of being overridden.  If the entry is ignored because of the
 previous arguments, the entry is not removed.
 
 @var{#:local-packages} is an association list that contains additional version
@@ -262,7 +262,7 @@ not found in @var{inputs}, information from this list is used instead to determi
 the latest version of the package.  This is an association list of group IDs
 to another association list of artifact IDs to a version number.
 
-Returns nothing, but overides the @var{pom-file} as a side-effect."
+Returns nothing, but overrides the @var{pom-file} as a side-effect."
   (define pom (get-pom pom-file))
 
   (define (ls dir)
diff --git a/guix/build/store-copy.scm b/guix/build/store-copy.scm
index ad551bca98..01e1f41870 100644
--- a/guix/build/store-copy.scm
+++ b/guix/build/store-copy.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2014, 2017, 2018, 2020 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -17,9 +17,10 @@
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (guix build store-copy)
-  #:use-module (guix build utils)
+  #:use-module ((guix build utils) #:hide (copy-recursively))
   #:use-module (guix sets)
   #:use-module (guix progress)
+  #:autoload   (guix store deduplication) (copy-file/deduplicate)
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-9)
   #:use-module (srfi srfi-26)
@@ -37,6 +38,7 @@
 
             file-size
             closure-size
+            copy-store-item
             populate-store))
 
 ;;; Commentary:
@@ -169,32 +171,104 @@ REFERENCE-GRAPHS, a list of reference-graph files."
 
   (reduce + 0 (map file-size items)))
 
-(define (reset-permissions file)
-  "Reset the permissions on FILE and its sub-directories so that they are all
-read-only."
-  ;; XXX: This procedure exists just to work around the inability of
-  ;; 'copy-recursively' to preserve permissions.
-  (file-system-fold (const #t)                    ;enter?
-                    (lambda (file stat _)         ;leaf
-                      (unless (eq? 'symlink (stat:type stat))
-                        (chmod file
-                               (if (zero? (logand (stat:mode stat)
-                                                  #o100))
-                                   #o444
-                                   #o555))))
-                    (const #t)                    ;down
-                    (lambda (directory stat _)    ;up
-                      (chmod directory #o555))
-                    (const #f)                    ;skip
-                    (const #f)                    ;error
+;; TODO: Remove when the one in (guix build utils) has #:keep-permissions?,
+;; the fix for <https://bugs.gnu.org/44741>, and when #:keep-mtime? works for
+;; symlinks.
+(define* (copy-recursively source destination
+                           #:key
+                           (log (current-output-port))
+                           (follow-symlinks? #f)
+                           (copy-file copy-file)
+                           keep-mtime? keep-permissions?)
+  "Copy SOURCE directory to DESTINATION.  Follow symlinks if FOLLOW-SYMLINKS?
+is true; otherwise, just preserve them.  Call COPY-FILE to copy regular files.
+When KEEP-MTIME? is true, keep the modification time of the files in SOURCE on
+those of DESTINATION.  When KEEP-PERMISSIONS? is true, preserve file
+permissions.  Write verbose output to the LOG port."
+  (define AT_SYMLINK_NOFOLLOW
+    ;; Guile 2.0 did not define this constant, hence this hack.
+    (let ((variable (module-variable the-root-module 'AT_SYMLINK_NOFOLLOW)))
+      (if variable
+          (variable-ref variable)
+          256)))                                    ;for GNU/Linux
+
+  (define (set-file-time file stat)
+    (utime file
+           (stat:atime stat)
+           (stat:mtime stat)
+           (stat:atimensec stat)
+           (stat:mtimensec stat)
+           AT_SYMLINK_NOFOLLOW))
+
+  (define strip-source
+    (let ((len (string-length source)))
+      (lambda (file)
+        (substring file len))))
+
+  (file-system-fold (const #t)                    ; enter?
+                    (lambda (file stat result)    ; leaf
+                      (let ((dest (string-append destination
+                                                 (strip-source file))))
+                        (format log "`~a' -> `~a'~%" file dest)
+                        (case (stat:type stat)
+                          ((symlink)
+                           (let ((target (readlink file)))
+                             (symlink target dest)))
+                          (else
+                           (copy-file file dest)
+                           (when keep-permissions?
+                             (chmod dest (stat:perms stat)))))
+                        (when keep-mtime?
+                          (set-file-time dest stat))))
+                    (lambda (dir stat result)     ; down
+                      (let ((target (string-append destination
+                                                   (strip-source dir))))
+                        (mkdir-p target)))
+                    (lambda (dir stat result)     ; up
+                      (let ((target (string-append destination
+                                                   (strip-source dir))))
+                        (when keep-mtime?
+                          (set-file-time target stat))
+                        (when keep-permissions?
+                          (chmod target (stat:perms stat)))))
+                    (const #t)                    ; skip
+                    (lambda (file stat errno result)
+                      (format (current-error-port) "i/o error: ~a: ~a~%"
+                              file (strerror errno))
+                      #f)
                     #t
-                    file
-                    lstat))
+                    source
+
+                    (if follow-symlinks?
+                        stat
+                        lstat)))
+
+(define* (copy-store-item item target
+                          #:key
+                          (deduplicate? #t)
+                          (log-port (%make-void-port "w")))
+  "Copy ITEM, a store item, to the store under TARGET, the target root
+directory.  When DEDUPLICATE? is true, deduplicate it within TARGET."
+  (define store
+    (string-append target (%store-directory)))
+
+  (copy-recursively item (string-append target item)
+                    #:keep-mtime? #t
+                    #:keep-permissions? #t
+                    #:copy-file
+                    (if deduplicate?
+                        (cut copy-file/deduplicate <> <> #:store store)
+                        copy-file)
+                    #:log log-port))
 
 (define* (populate-store reference-graphs target
-                         #:key (log-port (current-error-port)))
+                         #:key
+                         (deduplicate? #t)
+                         (log-port (current-error-port)))
   "Populate the store under directory TARGET with the items specified in
-REFERENCE-GRAPHS, a list of reference-graph files."
+REFERENCE-GRAPHS, a list of reference-graph files.  Items copied to TARGET
+maintain timestamps and permissions.  When DEDUPLICATE? is true, deduplicate
+regular files as they are copied to TARGET."
   (define store
     (string-append target (%store-directory)))
 
@@ -218,15 +292,8 @@ REFERENCE-GRAPHS, a list of reference-graph files."
     (call-with-progress-reporter progress
       (lambda (report)
         (for-each (lambda (thing)
-                    (copy-recursively thing
-                                      (string-append target thing)
-                                      #:keep-mtime? #t
-                                      #:log (%make-void-port "w"))
-
-                    ;; XXX: Since 'copy-recursively' doesn't allow us to
-                    ;; preserve permissions, we have to traverse TARGET to
-                    ;; make sure everything is read-only.
-                    (reset-permissions (string-append target thing))
+                    (copy-store-item thing target
+                                     #:deduplicate? deduplicate?)
                     (report))
                   things)))))
 
diff --git a/guix/build/svn.scm b/guix/build/svn.scm
index 33783f3056..44d77a968f 100644
--- a/guix/build/svn.scm
+++ b/guix/build/svn.scm
@@ -1,7 +1,8 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014, 2020 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2014 Sree Harsha Totakura <sreeharsha@totakura.in>
 ;;; Copyright © 2018 Mark H Weaver <mhw@netris.org>
+;;; Copyright © 2020 Simon Tournier <zimon.toutoune@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -20,6 +21,8 @@
 
 (define-module (guix build svn)
   #:use-module (guix build utils)
+  #:use-module (srfi srfi-34)
+  #:use-module (ice-9 format)
   #:export (svn-fetch))
 
 ;;; Commentary:
@@ -36,20 +39,23 @@
                     (password #f))
   "Fetch REVISION from URL into DIRECTORY.  REVISION must be an integer, and a
 valid Subversion revision.  Return #t on success, #f otherwise."
-  (apply invoke svn-command
-         "export" "--non-interactive"
-         ;; Trust the server certificate.  This is OK as we
-         ;; verify the checksum later.  This can be removed when
-         ;; ca-certificates package is added.
-         "--trust-server-cert" "-r" (number->string revision)
-         `(,@(if (and user-name password)
-                 (list (string-append "--username=" user-name)
-                       (string-append "--password=" password))
-                 '())
-           ,@(if recursive?
-                 '()
-                 (list "--ignore-externals"))
-           ,url ,directory))
-  #t)
+  (guard (c ((invoke-error? c)
+             (report-invoke-error c)
+             #f))
+    (apply invoke svn-command
+           "export" "--non-interactive"
+           ;; Trust the server certificate.  This is OK as we
+           ;; verify the checksum later.  This can be removed when
+           ;; ca-certificates package is added.
+           "--trust-server-cert" "-r" (number->string revision)
+           `(,@(if (and user-name password)
+                   (list (string-append "--username=" user-name)
+                         (string-append "--password=" password))
+                   '())
+             ,@(if recursive?
+                   '()
+                   (list "--ignore-externals"))
+             ,url ,directory))
+    #t))
 
 ;;; svn.scm ends here
diff --git a/guix/cache.scm b/guix/cache.scm
index feff131068..0401a9d428 100644
--- a/guix/cache.scm
+++ b/guix/cache.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -47,13 +47,14 @@
       (unless (= ENOENT (system-error-errno args))
         (apply throw args)))))
 
-(define (file-expiration-time ttl)
+(define* (file-expiration-time ttl #:optional (timestamp stat:atime))
   "Return a procedure that, when passed a file, returns its \"expiration
-time\" computed as its last-access time + TTL seconds."
+time\" computed as its timestamp + TTL seconds.  Call TIMESTAMP to obtain the
+relevant timestamp from the result of 'stat'."
   (lambda (file)
     (match (stat file #f)
       (#f 0)                       ;FILE may have been deleted in the meantime
-      (st (+ (stat:atime st) ttl)))))
+      (st (+ (timestamp st) ttl)))))
 
 (define* (remove-expired-cache-entries entries
                                        #:key
diff --git a/guix/channels.scm b/guix/channels.scm
index ad2442f50e..0c84eed477 100644
--- a/guix/channels.scm
+++ b/guix/channels.scm
@@ -72,6 +72,7 @@
             openpgp-fingerprint->bytevector
             openpgp-fingerprint
 
+            %default-guix-channel
             %default-channels
             guix-channel?
 
@@ -170,13 +171,16 @@ to the corresponding bytevector."
   ;; URL of the default 'guix' channel.
   "https://git.savannah.gnu.org/git/guix.git")
 
+(define %default-guix-channel
+  (channel
+   (name 'guix)
+   (branch "master")
+   (url %default-channel-url)
+   (introduction %guix-channel-introduction)))
+
 (define %default-channels
   ;; Default list of channels.
-  (list (channel
-         (name 'guix)
-         (branch "master")
-         (url %default-channel-url)
-         (introduction %guix-channel-introduction))))
+  (list %default-guix-channel))
 
 (define (guix-channel? channel)
   "Return true if CHANNEL is the 'guix' channel."
@@ -783,7 +787,8 @@ modules in the old ~/.config/guix/latest style."
                    ;; derivation that builds modules.  We have to infer what the
                    ;; dependencies of these modules were.
                    (list guile-json-3 guile-git guile-bytestructures
-                         (ssh -> guile-ssh) (tls -> gnutls)))))
+                         (ssh -> guile-ssh) (tls -> gnutls))
+                   #:guile (default-guile))))
 
 (define (old-style-guix? drv)
   "Return true if DRV corresponds to a ~/.config/guix/latest style of
diff --git a/guix/ci.scm b/guix/ci.scm
index 02eb90e6c3..f429bf198f 100644
--- a/guix/ci.scm
+++ b/guix/ci.scm
@@ -19,7 +19,6 @@
 
 (define-module (guix ci)
   #:use-module (guix http-client)
-  #:use-module (guix json)
   #:use-module (json)
   #:use-module (srfi srfi-1)
   #:use-module (ice-9 match)
@@ -32,6 +31,7 @@
             build?
             build-id
             build-derivation
+            build-evaluation
             build-system
             build-status
             build-timestamp
@@ -50,6 +50,7 @@
             %query-limit
             queued-builds
             latest-builds
+            evaluation
             latest-evaluations
             evaluations-for-commit))
 
@@ -72,6 +73,7 @@
   json->build
   (id          build-id "id")                     ;integer
   (derivation  build-derivation)                  ;string | #f
+  (evaluation  build-evaluation)                  ;integer
   (system      build-system)                      ;string
   (status      build-status "buildstatus" )       ;integer
   (timestamp   build-timestamp)                   ;integer
@@ -139,6 +141,13 @@ string such as \"x86_64-linux\"), restrict to builds for SYSTEM."
     ;; 'latestbuilds', but Cuirass does.
     (map json->build (vector->list latest))))
 
+(define (evaluation url evaluation)
+  "Return the given EVALUATION performed by the CI server at URL."
+  (let ((evaluation (json-fetch
+                     (string-append url "/api/evaluation?id="
+                                    (number->string evaluation)))))
+    (json->evaluation evaluation)))
+
 (define* (latest-evaluations url #:optional (limit %query-limit))
   "Return the latest evaluations performed by the CI server at URL."
   (map json->evaluation
diff --git a/guix/config.scm.in b/guix/config.scm.in
index 0ada0f3c38..b2901735d8 100644
--- a/guix/config.scm.in
+++ b/guix/config.scm.in
@@ -33,8 +33,6 @@
             %config-directory
 
             %system
-            %libz
-            %liblz
             %gzip
             %bzip2
             %xz))
@@ -88,12 +86,6 @@
 (define %system
   "@guix_system@")
 
-(define %libz
-  "@LIBZ@")
-
-(define %liblz
-  "@LIBLZ@")
-
 (define %gzip
   "@GZIP@")
 
diff --git a/guix/cpio.scm b/guix/cpio.scm
index e4692e2e9c..c9932f5bf9 100644
--- a/guix/cpio.scm
+++ b/guix/cpio.scm
@@ -27,6 +27,7 @@
             make-cpio-header
             file->cpio-header
             file->cpio-header*
+            special-file->cpio-header*
             write-cpio-header
             read-cpio-header
 
@@ -132,9 +133,10 @@
     (%make-cpio-header MAGIC
                        inode mode uid gid
                        nlink mtime
-                       (if (= C_ISDIR (logand mode C_FMT))
-                           0
-                           size)
+                       (if (or (= C_ISLNK (logand mode C_FMT))
+                               (= C_ISREG (logand mode C_FMT)))
+                           size
+                           0)
                        major minor rmajor rminor
                        (+ name-size 1)              ;include trailing zero
                        0)))                          ;checksum
@@ -146,6 +148,8 @@ denotes, similar to 'stat:type'."
     (cond ((= C_ISREG fmt) 'regular)
           ((= C_ISDIR fmt) 'directory)
           ((= C_ISLNK fmt) 'symlink)
+          ((= C_ISBLK fmt) 'block-special)
+          ((= C_ISCHR fmt) 'char-special)
           (else
            (error "unsupported file type" mode)))))
 
@@ -187,6 +191,25 @@ produced in a deterministic fashion."
                       #:size (stat:size st)
                       #:name-size (string-length file-name))))
 
+(define* (special-file->cpio-header* file
+                                     device-type
+                                     device-major
+                                     device-minor
+                                     permission-bits
+                                     #:optional (file-name file))
+  "Create a character or block device header.
+
+DEVICE-TYPE is either 'char-special or 'block-special.
+
+The number of hard links is assumed to be 1."
+  (make-cpio-header #:mode (logior (match device-type
+                                    ('block-special C_ISBLK)
+                                    ('char-special C_ISCHR))
+                                    permission-bits)
+                    #:nlink 1
+                    #:rdev (device-number device-major device-minor)
+                    #:name-size (string-length file-name)))
+
 (define %trailer
   "TRAILER!!!")
 
@@ -233,6 +256,10 @@ produces with the '-H newc' option."
            (put-string port target)))
         ((directory)
          #t)
+        ((block-special)
+         #t)
+        ((char-special)
+         #t)
         (else
          (error "file type not supported")))
 
diff --git a/guix/cve.scm b/guix/cve.scm
index ae9cca2341..b3a8b13a06 100644
--- a/guix/cve.scm
+++ b/guix/cve.scm
@@ -19,7 +19,6 @@
 (define-module (guix cve)
   #:use-module (guix utils)
   #:use-module (guix http-client)
-  #:use-module (guix json)
   #:use-module (guix i18n)
   #:use-module ((guix diagnostics) #:select (formatted-message))
   #:use-module (json)
@@ -337,7 +336,7 @@ sexp to CACHE."
                ,(map vulnerability->sexp vulns))
              cache))))
 
-(define (fetch-vulnerabilities year ttl)
+(define* (fetch-vulnerabilities year ttl #:key (timeout 10))
   "Return the list of <vulnerability> for YEAR, assuming the on-disk cache has
 the given TTL (fetch from the NIST web site when TTL has expired)."
   (define (cache-miss uri)
@@ -362,16 +361,18 @@ the given TTL (fetch from the NIST web site when TTL has expired)."
   (let* ((port (http-fetch/cached (yearly-feed-uri year)
                                   #:ttl ttl
                                   #:write-cache write-cache
-                                  #:cache-miss cache-miss))
+                                  #:cache-miss cache-miss
+                                  #:timeout timeout))
          (sexp (read* port)))
     (close-port port)
     (match sexp
       (('vulnerabilities 1 vulns)
        (map sexp->vulnerability vulns)))))
 
-(define (current-vulnerabilities)
+(define* (current-vulnerabilities #:key (timeout 10))
   "Return the current list of Common Vulnerabilities and Exposures (CVE) as
-published by the US NIST."
+published by the US NIST.  TIMEOUT specifies the timeout in seconds for
+connection establishment."
   (let ((past-years (unfold (cut > <> 3)
                             (lambda (n)
                               (- %current-year n))
@@ -382,7 +383,7 @@ published by the US NIST."
                               (* n %past-year-ttl))
                             1+
                             1)))
-    (append-map fetch-vulnerabilities
+    (append-map (cut fetch-vulnerabilities <> <> #:timeout timeout)
                 (cons %current-year past-years)
                 (cons %current-year-ttl past-ttls))))
 
diff --git a/guix/cvs-download.scm b/guix/cvs-download.scm
index cb42103aae..76b3eac739 100644
--- a/guix/cvs-download.scm
+++ b/guix/cvs-download.scm
@@ -60,35 +60,26 @@
   "Return a fixed-output derivation that fetches REF, a <cvs-reference>
 object.  The output is expected to have recursive hash HASH of type
 HASH-ALGO (a symbol).  Use NAME as the file name, or a generic name if #f."
-  (define zlib
-    (module-ref (resolve-interface '(gnu packages compression)) 'zlib))
-
-  (define config.scm
-    (scheme-file "config.scm"
-                 #~(begin
-                     (define-module (guix config)
-                       #:export (%libz))
-
-                     (define %libz
-                       #+(file-append zlib "/lib/libz")))))
+  (define guile-zlib
+    (module-ref (resolve-interface '(gnu packages guile)) 'guile-zlib))
 
   (define modules
-    (cons `((guix config) => ,config.scm)
-          (delete '(guix config)
-                  (source-module-closure '((guix build cvs)
-                                           (guix build download-nar))))))
+    (delete '(guix config)
+            (source-module-closure '((guix build cvs)
+                                     (guix build download-nar)))))
   (define build
     (with-imported-modules modules
-      #~(begin
-          (use-modules (guix build cvs)
-                       (guix build download-nar))
+      (with-extensions (list guile-zlib)
+        #~(begin
+            (use-modules (guix build cvs)
+                         (guix build download-nar))
 
-          (or (cvs-fetch '#$(cvs-reference-root-directory ref)
-                         '#$(cvs-reference-module ref)
-                         '#$(cvs-reference-revision ref)
-                         #$output
-                         #:cvs-command (string-append #+cvs "/bin/cvs"))
-              (download-nar #$output)))))
+            (or (cvs-fetch '#$(cvs-reference-root-directory ref)
+                           '#$(cvs-reference-module ref)
+                           '#$(cvs-reference-revision ref)
+                           #$output
+                           #:cvs-command (string-append #+cvs "/bin/cvs"))
+                (download-nar #$output))))))
 
   (mlet %store-monad ((guile (package->derivation guile system)))
     (gexp->derivation (or name "cvs-checkout") build
diff --git a/d3.v3.js b/guix/d3.v3.js
index d234c4ec86..d234c4ec86 100644
--- a/d3.v3.js
+++ b/guix/d3.v3.js
diff --git a/guix/derivations.scm b/guix/derivations.scm
index 7db61d272f..2fe684cc18 100644
--- a/guix/derivations.scm
+++ b/guix/derivations.scm
@@ -26,6 +26,7 @@
   #:use-module (srfi srfi-34)
   #:use-module (srfi srfi-35)
   #:use-module (ice-9 binary-ports)
+  #:use-module ((ice-9 textual-ports) #:select (put-char put-string))
   #:use-module (rnrs bytevectors)
   #:use-module (ice-9 match)
   #:use-module (ice-9 rdelim)
@@ -561,33 +562,65 @@ things as appropriate and is thus more efficient."
     ((prefix (... ...) last)
      (for-each (lambda (item)
                  (write-item item port)
-                 (display "," port))
+                 (put-char port #\,))
                prefix)
      (write-item last port))))
 
 (define-inlinable (write-list lst write-item port)
   ;; Write LST as a derivation list to PORT, using WRITE-ITEM to write each
   ;; element.
-  (display "[" port)
+  (put-char port #\[)
   (write-sequence lst write-item port)
-  (display "]" port))
+  (put-char port #\]))
 
 (define-inlinable (write-tuple lst write-item port)
   ;; Same, but write LST as a tuple.
-  (display "(" port)
+  (put-char port #\()
   (write-sequence lst write-item port)
-  (display ")" port))
+  (put-char port #\)))
+
+(define %escape-char-set
+  ;; Characters that need to be escaped.
+  (char-set #\" #\\ #\newline #\return #\tab))
+
+(define (escaped-string str)
+  "Escape double quote characters found in STR, if any."
+  (define escape
+    (match-lambda
+      (#\"       "\\\"")
+      (#\\       "\\\\")
+      (#\newline "\\n")
+      (#\return  "\\r")
+      (#\tab     "\\t")))
+
+  (let loop ((str   str)
+             (result '()))
+    (let ((index (string-index str %escape-char-set)))
+      (if index
+          (let ((rest (string-drop str (+ 1 index))))
+            (loop rest
+                  (cons* (escape (string-ref str index))
+                         (string-take str index)
+                         result)))
+          (if (null? result)
+              str
+              (string-concatenate-reverse (cons str result)))))))
 
 (define (write-derivation drv port)
   "Write the ATerm-like serialization of DRV to PORT.  See Section 2.4 of
 Eelco Dolstra's PhD dissertation for an overview of a previous version of
 that form."
 
-  ;; Make sure we're using the faster implementation.
-  (define format simple-format)
+  ;; Use 'put-string', which does less work and is faster than 'display'.
+  ;; Likewise, 'write-escaped-string' is faster than 'write'.
+
+  (define (write-escaped-string str port)
+    (put-char port #\")
+    (put-string port (escaped-string str))
+    (put-char port #\"))
 
   (define (write-string-list lst)
-    (write-list lst write port))
+    (write-list lst write-escaped-string port))
 
   (define (write-output output port)
     (match output
@@ -599,48 +632,47 @@ that form."
                              "")
                          (or (and=> hash bytevector->base16-string)
                              ""))
-                   write
+                   write-escaped-string
                    port))))
 
   (define (write-input input port)
     (match input
       (($ <derivation-input> obj sub-drvs)
-       (display "(\"" port)
+       (put-string port "(\"")
 
        ;; 'derivation/masked-inputs' produces objects that contain a string
        ;; instead of a <derivation>, so we need to account for that.
-       (display (if (derivation? obj)
-                    (derivation-file-name obj)
-                    obj)
-                port)
-       (display "\"," port)
+       (put-string port (if (derivation? obj)
+                            (derivation-file-name obj)
+                            obj))
+       (put-string port "\",")
        (write-string-list sub-drvs)
-       (display ")" port))))
+       (put-char port #\)))))
 
   (define (write-env-var env-var port)
     (match env-var
       ((name . value)
-       (display "(" port)
-       (write name port)
-       (display "," port)
-       (write value port)
-       (display ")" port))))
+       (put-char port #\()
+       (write-escaped-string name port)
+       (put-char port #\,)
+       (write-escaped-string value port)
+       (put-char port #\)))))
 
   ;; Assume all the lists we are writing are already sorted.
   (match drv
     (($ <derivation> outputs inputs sources
         system builder args env-vars)
-     (display "Derive(" port)
+     (put-string port "Derive(")
      (write-list outputs write-output port)
-     (display "," port)
+     (put-char port #\,)
      (write-list inputs write-input port)
-     (display "," port)
+     (put-char port #\,)
      (write-string-list sources)
      (simple-format port ",\"~a\",\"~a\"," system builder)
      (write-string-list args)
-     (display "," port)
+     (put-char port #\,)
      (write-list env-vars write-env-var port)
-     (display ")" port))))
+     (put-char port #\)))))
 
 (define derivation->bytevector
   (lambda (drv)
diff --git a/guix/describe.scm b/guix/describe.scm
index 6b9b219113..05bf99eb58 100644
--- a/guix/describe.scm
+++ b/guix/describe.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2018, 2019 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -43,11 +43,17 @@
 ;;;
 ;;; Code:
 
+(define initial-program-arguments
+  ;; Save the initial program arguments.  This allows us to see the "real"
+  ;; 'guix' program, even if 'guix repl -s' calls 'set-program-arguments'
+  ;; later on.
+  (program-arguments))
+
 (define current-profile
   (mlambda ()
     "Return the profile (created by 'guix pull') the calling process lives in,
 or #f if this is not applicable."
-    (match (command-line)
+    (match initial-program-arguments
       ((program . _)
        (and (string-suffix? "/bin/guix" program)
             ;; Note: We want to do _lexical dot-dot resolution_.  Using ".."
diff --git a/guix/download.scm b/guix/download.scm
index 6622e252b4..494825860e 100644
--- a/guix/download.scm
+++ b/guix/download.scm
@@ -248,22 +248,13 @@
       (imagemagick
        ;; from http://www.imagemagick.org/script/download.php
        ;; (without mirrors that are unavailable or not up to date)
-       ;; mirrors keeping old versions at the top level
-       "https://sunsite.icm.edu.pl/packages/ImageMagick/"
-       ;; mirrors moving old versions to "legacy"
-       "http://mirror.checkdomain.de/imagemagick/"
-       "http://ftp.surfnet.nl/pub/ImageMagick/"
-       "http://mirror.searchdaimon.com/ImageMagick"
-       "http://mirror.is.co.za/pub/imagemagick/"
-       "http://www.imagemagick.org/download/"
-       "ftp://mirror.aarnet.edu.au/pub/imagemagick/"
-       "ftp://ftp.kddlabs.co.jp/graphics/ImageMagick/"
-       "ftp://ftp.u-aizu.ac.jp/pub/graphics/image/ImageMagick/imagemagick.org/"
+       "https://sunsite.icm.edu.pl/packages/ImageMagick/releases"
+       "http://mirror.checkdomain.de/imagemagick/releases"
+       "ftp://ftp.u-aizu.ac.jp/pub/graphics/image/ImageMagick/imagemagick.org/releases"
        "ftp://ftp.nluug.nl/pub/ImageMagick/"
-       "ftp://ftp.tpnet.pl/pub/graphics/ImageMagick/"
-       "ftp://ftp.fifi.org/pub/ImageMagick/"
-       ;; one legacy location as a last resort
-       "http://www.imagemagick.org/download/legacy/")
+       "http://www.imagemagick.org/download/releases/"
+       ;; Try this if all else fails (normally contains just the latest version).
+       "http://www.imagemagick.org/download/")
       (debian
        "http://ftp.de.debian.org/debian/"
        "http://ftp.fr.debian.org/debian/"
@@ -463,17 +454,17 @@ download by itself using its own dependencies."
                     #:key (system (%current-system))
                     (guile (default-guile))
                     executable?)
-  "Return a fixed-output derivation that fetches URL (a string, or a list of
-strings denoting alternate URLs), which is expected to have hash HASH of type
-HASH-ALGO (a symbol).  By default, the file name is the base name of URL;
-optionally, NAME can specify a different file name.  When EXECUTABLE? is true,
-make the downloaded file executable.
+  "Return a fixed-output derivation that fetches data from URL (a string, or a
+list of strings denoting alternate URLs), which is expected to have hash HASH
+of type HASH-ALGO (a symbol).  By default, the file name is the base name of
+URL; optionally, NAME can specify a different file name.  When EXECUTABLE? is
+true, make the downloaded file executable.
 
 When one of the URL starts with mirror://, then its host part is
 interpreted as the name of a mirror scheme, taken from %MIRROR-FILE.
 
-Alternately, when URL starts with file://, return the corresponding file name
-in the store."
+Alternatively, when URL starts with file://, return the corresponding file
+name in the store."
   (define file-name
     (match url
       ((head _ ...)
diff --git a/guix/gexp.scm b/guix/gexp.scm
index 67b6121313..764c89a187 100644
--- a/guix/gexp.scm
+++ b/guix/gexp.scm
@@ -3,6 +3,7 @@
 ;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
 ;;; Copyright © 2018 Jan Nieuwenhuizen <janneke@gnu.org>
 ;;; Copyright © 2019, 2020 Mathieu Othacehe <m.othacehe@gmail.com>
+;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -25,6 +26,8 @@
   #:use-module (guix derivations)
   #:use-module (guix grafts)
   #:use-module (guix utils)
+  #:use-module (guix diagnostics)
+  #:use-module (guix i18n)
   #:use-module (rnrs bytevectors)
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-9)
@@ -32,6 +35,7 @@
   #:use-module (srfi srfi-26)
   #:use-module (srfi srfi-34)
   #:use-module (srfi srfi-35)
+  #:use-module (ice-9 format)
   #:use-module (ice-9 match)
   #:export (gexp
             gexp?
@@ -45,6 +49,7 @@
             gexp-input-output
             gexp-input-native?
 
+            assume-valid-file-name
             local-file
             local-file?
             local-file-file
@@ -142,12 +147,17 @@
 
 ;; "G expressions".
 (define-record-type <gexp>
-  (make-gexp references modules extensions proc)
+  (make-gexp references modules extensions proc location)
   gexp?
   (references gexp-references)                    ;list of <gexp-input>
   (modules    gexp-self-modules)                  ;list of module names
   (extensions gexp-self-extensions)               ;list of lowerable things
-  (proc       gexp-proc))                         ;procedure
+  (proc       gexp-proc)                          ;procedure
+  (location   %gexp-location))                    ;location alist
+
+(define (gexp-location gexp)
+  "Return the source code location of GEXP."
+  (and=> (%gexp-location gexp) source-properties->location))
 
 (define (write-gexp gexp port)
   "Write GEXP on PORT."
@@ -160,6 +170,11 @@
    (write (apply (gexp-proc gexp)
                  (gexp-references gexp))
           port))
+
+  (let ((loc (gexp-location gexp)))
+    (when loc
+      (format port " ~a" (location->string loc))))
+
   (format port " ~a>"
           (number->string (object-address gexp) 16)))
 
@@ -400,9 +415,15 @@ Here TARGET is bound to the cross-compilation triplet or #f."
 (define (true file stat) #t)
 
 (define* (%local-file file promise #:optional (name (basename file))
-                      #:key recursive? (select? true))
+                      #:key
+                      (literal? #t) location
+                      recursive? (select? true))
   ;; This intermediate procedure is part of our ABI, but the underlying
   ;; %%LOCAL-FILE is not.
+  (when (and (not literal?) (not (string-prefix? "/" file)))
+    (warning (and=> location source-properties->location)
+             (G_ "resolving '~a' relative to current directory~%")
+             file))
   (%%local-file file promise name recursive? select?))
 
 (define (absolute-file-name file directory)
@@ -415,6 +436,12 @@ vicinity of DIRECTORY."
           (string-append directory "/" file))
          (else file))))
 
+(define-syntax-rule (assume-valid-file-name file)
+  "This is a syntactic keyword to tell 'local-file' that it can assume that
+the given file name is valid, even if it's not a string literal, and thus not
+warn about it."
+  file)
+
 (define-syntax local-file
   (lambda (s)
     "Return an object representing local file FILE to add to the store; this
@@ -433,18 +460,28 @@ where FILE is the entry's absolute file name and STAT is the result of
 This is the declarative counterpart of the 'interned-file' monadic procedure.
 It is implemented as a macro to capture the current source directory where it
 appears."
-    (syntax-case s ()
+    (syntax-case s (assume-valid-file-name)
       ((_ file rest ...)
        (string? (syntax->datum #'file))
        ;; FILE is a literal, so resolve it relative to the source directory.
        #'(%local-file file
                       (delay (absolute-file-name file (current-source-directory)))
                       rest ...))
-      ((_ file rest ...)
-       ;; Resolve FILE relative to the current directory.
+      ((_ (assume-valid-file-name file) rest ...)
+       ;; FILE is not a literal, so resolve it relative to the current
+       ;; directory.  Since the user declared FILE is valid, do not pass
+       ;; #:literal? #f so that we do not warn about it later on.
        #'(%local-file file
                       (delay (absolute-file-name file (getcwd)))
                       rest ...))
+      ((_ file rest ...)
+       ;; Resolve FILE relative to the current directory.
+       (with-syntax ((location (datum->syntax s (syntax-source s))))
+        #`(%local-file file
+                       (delay (absolute-file-name file (getcwd)))
+                       rest ...
+                       #:location 'location
+                       #:literal? #f)))           ;warn if FILE is relative
       ((_)
        #'(syntax-error "missing file name"))
       (id
@@ -504,13 +541,15 @@ This is the declarative counterpart of 'text-file'."
   (options    computed-file-options))             ;list of arguments
 
 (define* (computed-file name gexp
-                        #:key guile (options '(#:local-build? #t)))
+                        #:key guile (local-build? #t) (options '()))
   "Return an object representing the store item NAME, a file or directory
-computed by GEXP.  OPTIONS is a list of additional arguments to pass
-to 'gexp->derivation'.
+computed by GEXP.  When LOCAL-BUILD? is #t (the default), it ensures the
+corresponding derivation is built locally.  OPTIONS may be used to pass
+additional arguments to 'gexp->derivation'.
 
 This is the declarative counterpart of 'gexp->derivation'."
-  (%computed-file name gexp guile options))
+  (let ((options* `(#:local-build? ,local-build? ,@options)))
+    (%computed-file name gexp guile options*)))
 
 (define-gexp-compiler (computed-file-compiler (file <computed-file>)
                                               system target)
@@ -709,22 +748,26 @@ whether this should be considered a \"native\" input or not."
 
 (set-record-type-printer! <gexp-output> write-gexp-output)
 
-(define* (gexp-attribute gexp self-attribute #:optional (equal? equal?))
+(define* (gexp-attribute gexp self-attribute #:optional (equal? equal?)
+                         #:key (validate (const #t)))
   "Recurse on GEXP and the expressions it refers to, summing the items
 returned by SELF-ATTRIBUTE, a procedure that takes a gexp.  Use EQUAL? as the
-second argument to 'delete-duplicates'."
+second argument to 'delete-duplicates'.  Pass VALIDATE every gexp and
+attribute that is traversed."
   (if (gexp? gexp)
       (delete-duplicates
-       (append (self-attribute gexp)
+       (append (let ((attribute (self-attribute gexp)))
+                 (validate gexp attribute)
+                 attribute)
                (append-map (match-lambda
                              (($ <gexp-input> (? gexp? exp))
-                              (gexp-attribute exp self-attribute))
+                              (gexp-attribute exp self-attribute
+                                              #:validate validate))
                              (($ <gexp-input> (lst ...))
                               (append-map (lambda (item)
-                                            (if (gexp? item)
-                                                (gexp-attribute item
-                                                                self-attribute)
-                                                '()))
+                                            (gexp-attribute item self-attribute
+                                                            #:validate
+                                                            validate))
                                           lst))
                              (_
                               '()))
@@ -750,7 +793,25 @@ false, meaning that GEXP is a plain Scheme object, return the empty list."
       (_
        (equal? m1 m2))))
 
-  (gexp-attribute gexp gexp-self-modules module=?))
+  (define (validate-modules gexp modules)
+    ;; Warn if MODULES, imported by GEXP, contains modules that in general
+    ;; should not be imported from the host because they vary from user to
+    ;; user and may thus be a source of non-reproducibility.  This includes
+    ;; (guix config) as well as modules that come with Guile.
+    (match (filter (match-lambda
+                     ((or ('guix 'config) ('ice-9 . _)) #t)
+                     (_ #f))
+                   modules)
+      (() #t)
+      (suspects
+       (warning (gexp-location gexp)
+                (N_ "importing module~{ ~a~} from the host~%"
+                    "importing modules~{ ~a~} from the host~%"
+                    (length suspects))
+                suspects))))
+
+  (gexp-attribute gexp gexp-self-modules module=?
+                  #:validate validate-modules))
 
 (define (gexp-extensions gexp)
   "Return the list of Guile extensions (packages) GEXP relies on.  If (gexp?
@@ -1056,7 +1117,8 @@ The other arguments are as for 'derivation'."
         (make-gexp (gexp-references exp)
                    (append modules (gexp-self-modules exp))
                    (gexp-self-extensions exp)
-                   (gexp-proc exp))))
+                   (gexp-proc exp)
+                   (gexp-location exp))))
 
   (mlet* %store-monad ( ;; The following binding forces '%current-system' and
                        ;; '%current-target-system' to be looked up at >>=
@@ -1255,18 +1317,7 @@ and in the current monad setting (system type, etc.)"
                    reference->sexp (gexp-references exp))))
     (return (apply (gexp-proc exp) args))))
 
-(define-syntax-rule (define-syntax-parameter-once name proc)
-  ;; Like 'define-syntax-parameter' but ensure the top-level binding for NAME
-  ;; does not get redefined.  This works around a race condition in a
-  ;; multi-threaded context with Guile <= 2.2.4: <https://bugs.gnu.org/27476>.
-  (eval-when (load eval expand compile)
-    (define name
-      (if (module-locally-bound? (current-module) 'name)
-          (module-ref (current-module) 'name)
-          (make-syntax-transformer 'name 'syntax-parameter
-                                   (list proc))))))
-
-(define-syntax-parameter-once current-imported-modules
+(define-syntax-parameter current-imported-modules
   ;; Current list of imported modules.
   (identifier-syntax '()))
 
@@ -1277,7 +1328,7 @@ environment."
                          (identifier-syntax modules)))
     body ...))
 
-(define-syntax-parameter-once current-imported-extensions
+(define-syntax-parameter current-imported-extensions
   ;; Current list of extensions.
   (identifier-syntax '()))
 
@@ -1386,7 +1437,8 @@ execution environment."
                       current-imported-modules
                       current-imported-extensions
                       (lambda #,formals
-                        #,sexp)))))))
+                        #,sexp)
+                      (current-source-location)))))))
 
 
 ;;;
diff --git a/guix/git-download.scm b/guix/git-download.scm
index 71ea1031c5..8e575e3b5f 100644
--- a/guix/git-download.scm
+++ b/guix/git-download.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2017 Mathieu Lirzin <mthl@gnu.org>
 ;;; Copyright © 2017 Christopher Baines <mail@cbaines.net>
 ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
@@ -84,35 +84,26 @@ HASH-ALGO (a symbol).  Use NAME as the file name, or a generic name if #f."
           ("tar" ,(module-ref (resolve-interface '(gnu packages base))
                               'tar)))))
 
-  (define zlib
-    (module-ref (resolve-interface '(gnu packages compression)) 'zlib))
-
   (define guile-json
-    (module-ref (resolve-interface '(gnu packages guile)) 'guile-json-3))
+    (module-ref (resolve-interface '(gnu packages guile)) 'guile-json-4))
+
+  (define guile-zlib
+    (module-ref (resolve-interface '(gnu packages guile)) 'guile-zlib))
 
   (define gnutls
     (module-ref (resolve-interface '(gnu packages tls)) 'gnutls))
 
-  (define config.scm
-    (scheme-file "config.scm"
-                 #~(begin
-                     (define-module (guix config)
-                       #:export (%libz))
-
-                     (define %libz
-                       #+(file-append zlib "/lib/libz")))))
-
   (define modules
-    (cons `((guix config) => ,config.scm)
-          (delete '(guix config)
-                  (source-module-closure '((guix build git)
-                                           (guix build utils)
-                                           (guix build download-nar)
-                                           (guix swh))))))
+    (delete '(guix config)
+            (source-module-closure '((guix build git)
+                                     (guix build utils)
+                                     (guix build download-nar)
+                                     (guix swh)))))
 
   (define build
     (with-imported-modules modules
-      (with-extensions (list guile-json gnutls)   ;for (guix swh)
+      (with-extensions (list guile-json gnutls   ;for (guix swh)
+                             guile-zlib)
         #~(begin
             (use-modules (guix build git)
                          (guix build utils)
diff --git a/guix/git.scm b/guix/git.scm
index 7f8f9addfb..a5103547d3 100644
--- a/guix/git.scm
+++ b/guix/git.scm
@@ -1,6 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2017, 2020 Mathieu Othacehe <m.othacehe@gmail.com>
-;;; Copyright © 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -20,18 +20,24 @@
 (define-module (guix git)
   #:use-module (git)
   #:use-module (git object)
+  #:use-module (git submodule)
   #:use-module (guix i18n)
   #:use-module (guix base32)
+  #:use-module (guix cache)
   #:use-module (gcrypt hash)
-  #:use-module ((guix build utils) #:select (mkdir-p))
+  #:use-module ((guix build utils)
+                #:select (mkdir-p delete-file-recursively))
   #:use-module (guix store)
   #:use-module (guix utils)
   #:use-module (guix records)
   #:use-module (guix gexp)
   #:use-module (guix sets)
   #:use-module ((guix diagnostics) #:select (leave))
+  #:use-module (guix progress)
   #:use-module (rnrs bytevectors)
+  #:use-module (ice-9 format)
   #:use-module (ice-9 match)
+  #:use-module (ice-9 ftw)
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-11)
   #:use-module (srfi srfi-34)
@@ -39,6 +45,7 @@
   #:export (%repository-cache-directory
             honor-system-x509-certificates!
 
+            url-cache-directory
             with-repository
             with-git-error-handling
             false-if-git-not-found
@@ -115,9 +122,61 @@ the 'SSL_CERT_FILE' and 'SSL_CERT_DIR' environment variables."
                               (string-append "R:" url)
                               url))))))
 
-;; Authentication appeared in Guile-Git 0.3.0, check if it is available.
-(define auth-supported?
-  (false-if-exception (resolve-interface '(git auth))))
+(define (show-progress progress)
+  "Display a progress bar as we fetch Git code.  PROGRESS is an
+<indexer-progress> record from (git)."
+  (define total
+    (indexer-progress-total-objects progress))
+
+  (define hundredth
+    (match (quotient (indexer-progress-total-objects progress) 100)
+      (0 1)
+      (x x)))
+
+  (define-values (done label)
+    (if (< (indexer-progress-received-objects progress) total)
+        (values (indexer-progress-received-objects progress)
+                (G_ "receiving objects"))
+        (values (indexer-progress-indexed-objects progress)
+                (G_ "indexing objects"))))
+
+  (define %
+    (* 100. (/ done total)))
+
+  (when (and (< % 100) (zero? (modulo done hundredth)))
+    (erase-current-line (current-error-port))
+    (let ((width (max (- (current-terminal-columns)
+                         (string-length label) 7)
+                      3)))
+      (format (current-error-port) "~a ~3,d% ~a"
+              label (inexact->exact (round %))
+              (progress-bar % width)))
+    (force-output (current-error-port)))
+
+  (when (= % 100.)
+    ;; We're done, erase the line.
+    (erase-current-line (current-error-port))
+    (force-output (current-error-port)))
+
+  ;; Return true to indicate that we should go on.
+  #t)
+
+(define (make-default-fetch-options)
+  "Return the default fetch options."
+  (let ((auth-method (%make-auth-ssh-agent)))
+    ;; The #:transfer-progress and #:proxy-url options appeared in Guile-Git
+    ;; 0.4.0.  Omit them when using an older version.
+    (catch 'wrong-number-of-args
+      (lambda ()
+        (make-fetch-options auth-method
+                            ;; Guile-Git doesn't distinguish between these.
+                            #:proxy-url (or (getenv "http_proxy")
+                                            (getenv "https_proxy"))
+                            #:transfer-progress
+                            (and (isatty? (current-error-port))
+                                 show-progress)))
+      (lambda args
+        (make-fetch-options auth-method)))))
 
 (define (clone* url directory)
   "Clone git repository at URL into DIRECTORY.  Upon failure,
@@ -126,18 +185,10 @@ make sure no empty directory is left behind."
     (lambda ()
       (mkdir-p directory)
 
-      ;; Note: Explicitly pass options to work around the invalid default
-      ;; value in Guile-Git: <https://bugs.gnu.org/29238>.
-      (if (module-defined? (resolve-interface '(git))
-                           'clone-init-options)
-          (let ((auth-method (and auth-supported?
-                                  (%make-auth-ssh-agent))))
-            (clone url directory
-                   (if auth-supported?
-                       (make-clone-options
-                        #:fetch-options (make-fetch-options auth-method))
-                       (clone-init-options))))
-          (clone url directory)))
+      (let ((auth-method (%make-auth-ssh-agent)))
+        (clone url directory
+               (make-clone-options
+                #:fetch-options (make-default-fetch-options)))))
     (lambda _
       (false-if-exception (rmdir directory)))))
 
@@ -166,12 +217,7 @@ corresponding Git object."
          ;; read out-of-bounds when passed a string shorter than 40 chars,
          ;; which is why we delay calls to it below.
          (if (< len 40)
-             (if (module-defined? (resolve-interface '(git object))
-                                  'object-lookup-prefix)
-                 (object-lookup-prefix repository (string->oid commit) len)
-                 (raise (condition
-                         (&message
-                          (message "long Git object ID is required")))))
+             (object-lookup-prefix repository (string->oid commit) len)
              (object-lookup repository (string->oid commit)))))
       (('tag-or-commit . str)
        (if (or (> (string-length str) 40)
@@ -233,40 +279,23 @@ dynamic extent of EXP."
     (lambda (key err)
       (report-git-error err))))
 
-(define (load-git-submodules)
-  "Attempt to load (git submodules), which was missing until Guile-Git 0.2.0.
-Return true on success, false on failure."
-  (match (false-if-exception (resolve-interface '(git submodule)))
-    (#f
-     (set! load-git-submodules (const #f))
-     #f)
-    (iface
-     (module-use! (resolve-module '(guix git)) iface)
-     (set! load-git-submodules (const #t))
-     #t)))
-
 (define* (update-submodules repository
                             #:key (log-port (current-error-port)))
   "Update the submodules of REPOSITORY, a Git repository object."
-  ;; Guile-Git < 0.2.0 did not have (git submodule).
-  (if (load-git-submodules)
-      (for-each (lambda (name)
-                  (let ((submodule (submodule-lookup repository name)))
-                    (format log-port (G_ "updating submodule '~a'...~%")
-                            name)
-                    (submodule-update submodule)
-
-                    ;; Recurse in SUBMODULE.
-                    (let ((directory (string-append
-                                      (repository-working-directory repository)
-                                      "/" (submodule-path submodule))))
-                      (with-repository directory repository
-                        (update-submodules repository
-                                           #:log-port log-port)))))
-                (repository-submodules repository))
-      (format (current-error-port)
-              (G_ "Support for submodules is missing; \
-please upgrade Guile-Git.~%"))))
+  (for-each (lambda (name)
+              (let ((submodule (submodule-lookup repository name)))
+                (format log-port (G_ "updating submodule '~a'...~%")
+                        name)
+                (submodule-update submodule)
+
+                ;; Recurse in SUBMODULE.
+                (let ((directory (string-append
+                                  (repository-working-directory repository)
+                                  "/" (submodule-path submodule))))
+                  (with-repository directory repository
+                    (update-submodules repository
+                                       #:log-port log-port)))))
+            (repository-submodules repository)))
 
 (define-syntax-rule (false-if-git-not-found exp)
   "Evaluate EXP, returning #false if a GIT_ENOTFOUND error is raised."
@@ -283,11 +312,33 @@ please upgrade Guile-Git.~%"))))
 definitely available in REPOSITORY, false otherwise."
   (match ref
     (('commit . commit)
-     (false-if-git-not-found
-      (->bool (commit-lookup repository (string->oid commit)))))
+     (let ((len (string-length commit))
+           (oid (string->oid commit)))
+       (false-if-git-not-found
+        (->bool (if (< len 40)
+                    (object-lookup-prefix repository oid len OBJ-COMMIT)
+                    (commit-lookup repository oid))))))
     (_
      #f)))
 
+(define cached-checkout-expiration
+  ;; Return the expiration time procedure for a cached checkout.
+  ;; TODO: Honor $GUIX_GIT_CACHE_EXPIRATION.
+
+  ;; Use the mtime rather than the atime to cope with file systems mounted
+  ;; with 'noatime'.
+  (file-expiration-time (* 90 24 3600) stat:mtime))
+
+(define %checkout-cache-cleanup-period
+  ;; Period for the removal of expired cached checkouts.
+  (* 5 24 3600))
+
+(define (delete-checkout directory)
+  "Delete DIRECTORY recursively, in an atomic fashion."
+  (let ((trashed (string-append directory ".trashed")))
+    (rename-file directory trashed)
+    (delete-file-recursively trashed)))
+
 (define* (update-cached-checkout url
                                  #:key
                                  (ref '(branch . "master"))
@@ -311,6 +362,14 @@ When RECURSIVE? is true, check out submodules as well, if any.
 
 When CHECK-OUT? is true, reset the cached working tree to REF; otherwise leave
 it unchanged."
+  (define (cache-entries directory)
+    (filter-map (match-lambda
+                  ((or "." "..")
+                   #f)
+                  (file
+                   (string-append directory "/" file)))
+                (or (scandir directory) '())))
+
   (define canonical-ref
     ;; We used to require callers to specify "origin/" for each branch, which
     ;; made little sense since the cache should be transparent to them.  So
@@ -330,12 +389,9 @@ it unchanged."
      ;; Only fetch remote if it has not been cloned just before.
      (when (and cache-exists?
                 (not (reference-available? repository ref)))
-       (if auth-supported?
-           (let ((auth-method (and auth-supported?
-                                   (%make-auth-ssh-agent))))
-             (remote-fetch (remote-lookup repository "origin")
-                           #:fetch-options (make-fetch-options auth-method)))
-           (remote-fetch (remote-lookup repository "origin"))))
+       (let ((auth-method (%make-auth-ssh-agent)))
+         (remote-fetch (remote-lookup repository "origin")
+                       #:fetch-options (make-default-fetch-options))))
      (when recursive?
        (update-submodules repository #:log-port log-port))
 
@@ -358,9 +414,18 @@ it unchanged."
 
        ;; Reclaim file descriptors and memory mappings associated with
        ;; REPOSITORY as soon as possible.
-       (when (module-defined? (resolve-interface '(git repository))
-                              'repository-close!)
-         (repository-close! repository))
+       (repository-close! repository)
+
+       ;; When CACHE-DIRECTORY is a sub-directory of the default cache
+       ;; directory, remove expired checkouts that are next to it.
+       (let ((parent (dirname cache-directory)))
+         (when (string=? parent (%repository-cache-directory))
+           (maybe-remove-expired-cache-entries parent cache-entries
+                                               #:entry-expiration
+                                               cached-checkout-expiration
+                                               #:delete-entry delete-checkout
+                                               #:cleanup-period
+                                               %checkout-cache-cleanup-period)))
 
        (values cache-directory (oid->string oid) relation)))))
 
diff --git a/guix/glob.scm b/guix/glob.scm
index a9fc744802..d73783cd30 100644
--- a/guix/glob.scm
+++ b/guix/glob.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2018 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -61,6 +62,11 @@ STR, a glob pattern such as \"foo*\" or \"foo??bar\"."
        (flatten (reverse (if (null? pending)
                              result
                              (cons-string pending result)))))
+      ((#\* #\* #\/ . rest)
+       (if (zero? brackets)
+           (loop rest '() 0
+                 (cons* '**/ (cons-string pending result)))
+           (loop rest (cons '**/ pending) brackets result)))
       (((and chr (or #\? #\*)) . rest)
        (let ((wildcard (match chr
                          (#\? '?)
@@ -121,6 +127,15 @@ STR, a glob pattern such as \"foo*\" or \"foo??bar\"."
       (string-null? str))
      (('*)
       #t)
+     (('**/)
+      #t)
+     (('**/ suffix . rest)
+      (let ((rest (if (eq? '* suffix) (cdr rest) rest))
+            (suffix (if (eq? '* suffix) (car rest) suffix)))
+        (match (string-contains str suffix)
+          (#f    #f)
+          (index (loop rest (string-drop str
+                                         (+ index (string-length suffix))))))))
      (('* suffix . rest)
       (match (string-contains str suffix)
         (#f    #f)
diff --git a/guix/gnu-maintenance.scm b/guix/gnu-maintenance.scm
index cd7109002b..08b2bcf758 100644
--- a/guix/gnu-maintenance.scm
+++ b/guix/gnu-maintenance.scm
@@ -36,7 +36,7 @@
   #:use-module (guix records)
   #:use-module (guix upstream)
   #:use-module (guix packages)
-  #:use-module (guix zlib)
+  #:use-module (zlib)
   #:export (gnu-package-name
             gnu-package-mundane-name
             gnu-package-copyright-holder
diff --git a/graph.js b/guix/graph.js
index ad8279395d..ad8279395d 100644
--- a/graph.js
+++ b/guix/graph.js
diff --git a/guix/graph.scm b/guix/graph.scm
index b695ca4306..0d4cd83667 100644
--- a/guix/graph.scm
+++ b/guix/graph.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2015, 2016, 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2015, 2016, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -142,7 +142,7 @@ typically returned by 'node-edges' or 'node-back-edges'."
                         nodes node-edges))
 
 (define (shortest-path node1 node2 type)
-  "Return as a monadic value the shorted path, represented as a list, from
+  "Return as a monadic value the shortest path, represented as a list, from
 NODE1 to NODE2 of the given TYPE.  Return #f when there is no path."
   (define node-edges
     (node-type-edges type))
@@ -238,7 +238,7 @@ NODE1 to NODE2 of the given TYPE.  Return #f when there is no path."
 (define (emit-epilogue port)
   (display "\n}\n" port))
 (define (emit-node id label port)
-  (format port "  \"~a\" [label = \"~a\", shape = box, fontname = Helvetica];~%"
+  (format port "  \"~a\" [label = \"~a\", shape = box, fontname = sans];~%"
           id label))
 (define (emit-edge id1 id2 port)
   (format port "  \"~a\" -> \"~a\" [color = ~a];~%"
@@ -274,11 +274,11 @@ text {
 var nodes = {},
     nodeArray = [],
     links = [];
-" (search-path %load-path "d3.v3.js")))
+" (search-path %load-path "guix/d3.v3.js")))
 
 (define (emit-d3js-epilogue port)
   (format port "</script><script type=\"text/javascript\" src=\"~a\"></script></body></html>"
-          (search-path %load-path "graph.js")))
+          (search-path %load-path "guix/graph.js")))
 
 (define (emit-d3js-node id label port)
   (format port "\
diff --git a/guix/hg-download.scm b/guix/hg-download.scm
index 4cdc1a780a..bd55946523 100644
--- a/guix/hg-download.scm
+++ b/guix/hg-download.scm
@@ -26,12 +26,14 @@
   #:use-module (guix packages)
   #:autoload   (guix build-system gnu) (standard-packages)
   #:use-module (ice-9 match)
+  #:use-module (ice-9 popen)
+  #:use-module (ice-9 rdelim)
   #:export (hg-reference
             hg-reference?
             hg-reference-url
             hg-reference-changeset
             hg-reference-recursive?
-
+            hg-predicate
             hg-fetch))
 
 ;;; Commentary:
@@ -60,35 +62,26 @@
   "Return a fixed-output derivation that fetches REF, a <hg-reference>
 object.  The output is expected to have recursive hash HASH of type
 HASH-ALGO (a symbol).  Use NAME as the file name, or a generic name if #f."
-  (define zlib
-    (module-ref (resolve-interface '(gnu packages compression)) 'zlib))
-
-  (define config.scm
-    (scheme-file "config.scm"
-                 #~(begin
-                     (define-module (guix config)
-                       #:export (%libz))
-
-                     (define %libz
-                       #+(file-append zlib "/lib/libz")))))
+  (define guile-zlib
+    (module-ref (resolve-interface '(gnu packages guile)) 'guile-zlib))
 
   (define modules
-    (cons `((guix config) => ,config.scm)
-          (delete '(guix config)
-                  (source-module-closure '((guix build hg)
-                                           (guix build download-nar))))))
+    (delete '(guix config)
+            (source-module-closure '((guix build hg)
+                                     (guix build download-nar)))))
 
   (define build
     (with-imported-modules modules
-      #~(begin
-          (use-modules (guix build hg)
-                       (guix build download-nar))
+      (with-extensions (list guile-zlib)
+        #~(begin
+            (use-modules (guix build hg)
+                         (guix build download-nar))
 
-          (or (hg-fetch '#$(hg-reference-url ref)
-                        '#$(hg-reference-changeset ref)
-                        #$output
-                        #:hg-command (string-append #+hg "/bin/hg"))
-              (download-nar #$output)))))
+            (or (hg-fetch '#$(hg-reference-url ref)
+                          '#$(hg-reference-changeset ref)
+                          #$output
+                          #:hg-command (string-append #+hg "/bin/hg"))
+                (download-nar #$output))))))
 
   (mlet %store-monad ((guile (package->derivation guile system)))
     (gexp->derivation (or name "hg-checkout") build
@@ -102,4 +95,38 @@ HASH-ALGO (a symbol).  Use NAME as the file name, or a generic name if #f."
                       #:recursive? #t
                       #:guile-for-build guile)))
 
+(define (hg-file-list directory)
+  "Evaluates to a list of files contained in the repository at path
+  @var{directory}"
+  (let* ((port (open-input-pipe (format #f "hg files --repository ~s" directory)))
+         (files (let loop ((files '()))
+                  (let ((line (read-line port)))
+                    (cond
+                     ((eof-object? line) files)
+                     (else
+                      (loop (cons line files))))))))
+    (close-pipe port)
+    (map canonicalize-path files)))
+
+(define (should-select? path-list candidate)
+  "Returns #t in case that @var{candidate} is a file that is part of the given
+@var{path-list}."
+  (let ((canon-candidate (canonicalize-path candidate)))
+    (let loop ((xs path-list))
+      (cond
+       ((null? xs)
+        ;; Directories are not part of `hg files', but `local-file' will not
+        ;; recurse if we don't return #t for directories.
+        (equal? (array-ref (lstat candidate) 13) 'directory))
+       ((string-contains candidate (car xs)) #t)
+       (else (loop (cdr xs)))))))
+
+(define (hg-predicate directory)
+  "This procedure evaluates to a predicate that reports back whether a given
+@var{file} - @var{stat} combination is part of the files tracked by
+Mercurial."
+  (let ((files (hg-file-list directory)))
+    (lambda (file stat)
+      (should-select? files file))))
+
 ;;; hg-download.scm ends here
diff --git a/guix/http-client.scm b/guix/http-client.scm
index 5a5a33b4c0..553640fe9e 100644
--- a/guix/http-client.scm
+++ b/guix/http-client.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2020 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2012, 2015 Free Software Foundation, Inc.
 ;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
@@ -70,23 +70,32 @@
 
 
 (define* (http-fetch uri #:key port (text? #f) (buffered? #t)
+                     (keep-alive? #f)
                      (verify-certificate? #t)
-                     (headers '((user-agent . "GNU Guile"))))
+                     (headers '((user-agent . "GNU Guile")))
+                     timeout)
   "Return an input port containing the data at URI, and the expected number of
 bytes available or #f.  If TEXT? is true, the data at URI is considered to be
 textual.  Follow any HTTP redirection.  When BUFFERED? is #f, return an
 unbuffered port, suitable for use in `filtered-port'.  HEADERS is an alist of
 extra HTTP headers.
 
+When KEEP-ALIVE? is true, the connection is marked as 'keep-alive' and PORT is
+not closed upon completion.
+
 When VERIFY-CERTIFICATE? is true, verify HTTPS server certificates.
 
+TIMEOUT specifies the timeout in seconds for connection establishment; when
+TIMEOUT is #f, connection establishment never times out.
+
 Raise an '&http-get-error' condition if downloading fails."
   (let loop ((uri (if (string? uri)
                       (string->uri uri)
                       uri)))
     (let ((port (or port (guix:open-connection-for-uri uri
                                                        #:verify-certificate?
-                                                       verify-certificate?)))
+                                                       verify-certificate?
+                                                       #:timeout timeout)))
           (headers (match (uri-userinfo uri)
                      ((? string? str)
                       (cons (cons 'Authorization
@@ -99,11 +108,7 @@ Raise an '&http-get-error' condition if downloading fails."
         (setvbuf port 'none))
       (let*-values (((resp data)
                      (http-get uri #:streaming? #t #:port port
-                               ;; XXX: When #:keep-alive? is true, if DATA is
-                               ;; a chunked-encoding port, closing DATA won't
-                               ;; close PORT, leading to a file descriptor
-                               ;; leak.
-                               #:keep-alive? #f
+                               #:keep-alive? keep-alive?
                                #:headers headers))
                     ((code)
                      (response-code resp)))
@@ -155,13 +160,16 @@ Raise an '&http-get-error' condition if downloading fails."
 
 (define* (http-fetch/cached uri #:key (ttl (%http-cache-ttl)) text?
                             (write-cache dump-port)
-                            (cache-miss (const #t)))
+                            (cache-miss (const #t))
+                            (timeout 10))
   "Like 'http-fetch', return an input port, but cache its contents in
 ~/.cache/guix.  The cache remains valid for TTL seconds.
 
 Call WRITE-CACHE with the HTTP input port and the cache output port to write
 the data to cache.  Call CACHE-MISS with URI just before fetching data from
-URI."
+URI.
+
+TIMEOUT specifies the timeout in seconds for connection establishment."
   (let ((file (cache-file-for-uri uri)))
     (define (update-cache cache-port)
       (define cache-time
@@ -183,7 +191,7 @@ URI."
                        cache-port)
                      (raise c))))
         (let ((port (http-fetch uri #:text? text?
-                                #:headers headers)))
+                                #:headers headers #:timeout timeout)))
           (cache-miss uri)
           (mkdir-p (dirname file))
           (when cache-port
diff --git a/guix/import/cabal.scm b/guix/import/cabal.scm
index 7dfe771e41..da00019297 100644
--- a/guix/import/cabal.scm
+++ b/guix/import/cabal.scm
@@ -718,7 +718,7 @@ If #f use the function 'port-filename' to obtain it."
   (dependencies cabal-custom-setup-dependencies)) ; list of <cabal-dependency>
 
 (define (cabal-flags->alist flag-list)
-    "Retrun an alist associating the flag name to its default value from a
+    "Return an alist associating the flag name to its default value from a
 list of <cabal-flag> objects."
   (map (lambda (flag) (cons (cabal-flag-name flag) (cabal-flag-default flag)))
        flag-list))
diff --git a/guix/import/cpan.scm b/guix/import/cpan.scm
index 085467b871..87abe9c2f1 100644
--- a/guix/import/cpan.scm
+++ b/guix/import/cpan.scm
@@ -3,7 +3,7 @@
 ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2016 Alex Sassmannshausen <alex@pompo.co>
 ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
-;;; Copyright © 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2020, 2021 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -28,7 +28,6 @@
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-26)
   #:use-module (json)
-  #:use-module (guix json)
   #:use-module (gcrypt hash)
   #:use-module (guix store)
   #:use-module (guix utils)
@@ -50,7 +49,7 @@
             cpan-release-license
             cpan-release-author
             cpan-release-version
-            cpan-release-modle
+            cpan-release-module
             cpan-release-distribution
             cpan-release-download-url
             cpan-release-abstract
@@ -110,6 +109,7 @@
   (home-page    cpan-release-home-page "resources"
                 (match-lambda
                   (#f #f)
+                  ((? unspecified?) #f)
                   ((lst ...) (assoc-ref lst "homepage"))))
   (dependencies cpan-release-dependencies "dependency"
                 (lambda (vector)
diff --git a/guix/import/cran.scm b/guix/import/cran.scm
index a1275b4822..e8caf080fd 100644
--- a/guix/import/cran.scm
+++ b/guix/import/cran.scm
@@ -1,7 +1,8 @@
 ;;; 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, 2016, 2017, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
+;;; Copyright © 2020 Martin Becze <mjbecze@riseup.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -28,6 +29,7 @@
   #:use-module (srfi srfi-11)
   #:use-module (srfi srfi-26)
   #:use-module (srfi srfi-34)
+  #:use-module (srfi srfi-35)
   #:use-module (ice-9 receive)
   #:use-module (web uri)
   #:use-module (guix memoization)
@@ -49,7 +51,9 @@
   #:use-module (guix upstream)
   #:use-module (guix packages)
   #:use-module (gnu packages)
-  #:export (cran->guix-package
+  #:export (%input-style
+
+            cran->guix-package
             bioconductor->guix-package
             cran-recursive-import
             %cran-updater
@@ -72,6 +76,9 @@
 ;;;
 ;;; Code:
 
+(define %input-style
+  (make-parameter 'variable)) ; or 'specification
+
 (define string->license
   (match-lambda
    ("AGPL-3" 'agpl3+)
@@ -126,7 +133,11 @@
 (define (format-inputs names)
   "Generate a sorted list of package inputs from a list of package NAMES."
   (map (lambda (name)
-         (list name (list 'unquote (string->symbol name))))
+         (case (%input-style)
+           ((specification)
+            (list name (list 'unquote (list 'specification->package name))))
+           (else
+            (list name (list 'unquote (string->symbol name))))))
        (sort names string-ci<?)))
 
 (define* (maybe-inputs package-inputs #:optional (type 'inputs))
@@ -139,11 +150,12 @@ package definition."
      `((,type (,'quasiquote ,(format-inputs package-inputs)))))))
 
 (define %cran-url "https://cran.r-project.org/web/packages/")
+(define %cran-canonical-url "https://cran.r-project.org/package=")
 (define %bioconductor-url "https://bioconductor.org/packages/")
 
-;; The latest Bioconductor release is 3.11.  Bioconductor packages should be
+;; The latest Bioconductor release is 3.12.  Bioconductor packages should be
 ;; updated together.
-(define %bioconductor-version "3.11")
+(define %bioconductor-version "3.12")
 
 (define* (bioconductor-packages-list-url #:optional type)
   (string-append "https://bioconductor.org/packages/"
@@ -329,7 +341,11 @@ empty list when the FIELD cannot be found."
 ;; The field for system dependencies is often abused to specify non-package
 ;; dependencies (such as c++11).  This list is used to ignore them.
 (define invalid-packages
-  (list "c++11"))
+  (list "c++11"
+        "c++14"
+        "linux"
+        "getopt::long"
+        "xquartz"))
 
 (define cran-guix-name (cut guix-name "r-" <>))
 
@@ -439,6 +455,10 @@ from the alist META, which was derived from the R package's DESCRIPTION file."
                        ((bioconductor) %bioconductor-url)
                        ((git)          #f)
                        ((hg)           #f)))
+         (canonical-url-base (case repository
+                               ((cran)         %cran-canonical-url)
+                               ((bioconductor) %bioconductor-url)
+                               ((git)          #f)))
          (uri-helper (case repository
                        ((cran)         cran-uri)
                        ((bioconductor) bioconductor-uri)
@@ -454,7 +474,7 @@ from the alist META, which was derived from the R package's DESCRIPTION file."
                        ((hg)  (assoc-ref meta 'hg))
                        (else (match (listify meta "URL")
                                ((url rest ...) url)
-                               (_ (string-append base-url name))))))
+                               (_ (string-append canonical-url-base name))))))
          (source-url (case repository
                        ((git) (assoc-ref meta 'git))
                        ((hg)  (assoc-ref meta 'hg))
@@ -568,7 +588,7 @@ from the alist META, which was derived from the R package's DESCRIPTION file."
 
 (define cran->guix-package
   (memoize
-   (lambda* (package-name #:optional (repo 'cran))
+   (lambda* (package-name #:key (repo 'cran) version)
      "Fetch the metadata for PACKAGE-NAME from REPO and return the `package'
 s-expression corresponding to that package, or #f on failure."
      (let ((description (fetch-description repo package-name)))
@@ -577,17 +597,21 @@ s-expression corresponding to that package, or #f on failure."
            (case repo
              ((git)
               ;; Retry import from Bioconductor
-              (cran->guix-package package-name 'bioconductor))
+              (cran->guix-package package-name #:repo 'bioconductor))
              ((hg)
               ;; Retry import from Bioconductor
-              (cran->guix-package package-name 'bioconductor))
+              (cran->guix-package package-name #:repo 'bioconductor))
              ((bioconductor)
               ;; Retry import from CRAN
-              (cran->guix-package package-name 'cran))
-             (else (values #f '()))))))))
-
-(define* (cran-recursive-import package-name #:optional (repo 'cran))
-  (recursive-import package-name repo
+              (cran->guix-package package-name #:repo 'cran))
+             (else
+              (raise (condition
+                      (&message
+                       (message "couldn't find meta-data for R package")))))))))))
+
+(define* (cran-recursive-import package-name #:key (repo 'cran))
+  (recursive-import package-name
+                    #:repo repo
                     #:repo->guix-package cran->guix-package
                     #:guix-name cran-guix-name))
 
@@ -653,7 +677,7 @@ s-expression corresponding to that package, or #f on failure."
         (input-changes
          (changed-inputs
           pkg
-          (cran->guix-package upstream-name 'bioconductor))))))
+          (cran->guix-package upstream-name #:repo 'bioconductor))))))
 
 (define (cran-package? package)
   "Return true if PACKAGE is an R package from CRAN."
diff --git a/guix/import/crate.scm b/guix/import/crate.scm
index 796a7641e9..aee1b01c9f 100644
--- a/guix/import/crate.scm
+++ b/guix/import/crate.scm
@@ -1,7 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2016 David Craven <david@craven.ch>
 ;;; Copyright © 2019, 2020 Ludovic Courtès <ludo@gnu.org>
-;;; Copyright © 2019 Martin Becze <mjbecze@riseup.net>
+;;; Copyright © 2019, 2020 Martin Becze <mjbecze@riseup.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -24,20 +24,22 @@
   #:use-module ((guix download) #:prefix download:)
   #:use-module (gcrypt hash)
   #:use-module (guix http-client)
-  #:use-module (guix json)
   #:use-module (guix import json)
   #:use-module (guix import utils)
   #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix memoization)
   #:use-module (guix monads)
   #:use-module (guix packages)
   #:use-module (guix upstream)
   #:use-module (guix utils)
+  #:use-module (gnu packages)
   #:use-module (ice-9 match)
   #:use-module (ice-9 regex)
   #:use-module (json)
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-2)
   #:use-module (srfi srfi-26)
+  #:use-module (srfi srfi-71)
   #:export (crate->guix-package
             guix-package->crate-name
             string->license
@@ -86,10 +88,16 @@
   crate-dependency?
   json->crate-dependency
   (id            crate-dependency-id "crate_id")  ;string
-  (kind          crate-dependency-kind "kind"     ;'normal | 'dev
+  (kind          crate-dependency-kind "kind"     ;'normal | 'dev | 'build
                  string->symbol)
   (requirement   crate-dependency-requirement "req")) ;string
 
+;; Autoload Guile-Semver so we only have a soft dependency.
+(module-autoload! (current-module)
+		  '(semver) '(string->semver semver->string semver<?))
+(module-autoload! (current-module)
+		  '(semver ranges) '(string->semver-range semver-range-contains?))
+
 (define (lookup-crate name)
   "Look up NAME on https://crates.io and return the corresopnding <crate>
 record or #f if it was not found."
@@ -105,6 +113,8 @@ record or #f if it was not found."
                (json->crate `(,@alist
                               ("actual_versions" . ,versions))))))))
 
+(define lookup-crate* (memoize lookup-crate))
+
 (define (crate-version-dependencies version)
   "Return the list of <crate-dependency> records of VERSION, a
 <crate-version>."
@@ -142,17 +152,29 @@ record or #f if it was not found."
     ((args ...)
      `((arguments (,'quasiquote ,args))))))
 
+(define (version->semver-prefix version)
+  "Return the version up to and including the first non-zero part"
+  (first
+   (map match:substring
+        (list-matches "^(0+\\.){,2}[0-9]+" version))))
+
 (define* (make-crate-sexp #:key name version cargo-inputs cargo-development-inputs
-                          home-page synopsis description license
-                          #:allow-other-keys)
+                          home-page synopsis description license build?)
   "Return the `package' s-expression for a rust package with the given NAME,
 VERSION, CARGO-INPUTS, CARGO-DEVELOPMENT-INPUTS, HOME-PAGE, SYNOPSIS, DESCRIPTION,
 and LICENSE."
+  (define (format-inputs inputs)
+    (map
+     (match-lambda
+      ((name version)
+       (list (crate-name->package-name name)
+             (version->semver-prefix version))))
+     inputs))
+
   (let* ((port (http-fetch (crate-uri name version)))
          (guix-name (crate-name->package-name name))
-         (cargo-inputs (map crate-name->package-name cargo-inputs))
-         (cargo-development-inputs (map crate-name->package-name
-                                        cargo-development-inputs))
+         (cargo-inputs (format-inputs cargo-inputs))
+         (cargo-development-inputs (format-inputs cargo-development-inputs))
          (pkg `(package
                    (name ,guix-name)
                    (version ,version)
@@ -164,11 +186,14 @@ and LICENSE."
                               (base32
                                ,(bytevector->nix-base32-string (port-sha256 port))))))
                    (build-system cargo-build-system)
-                   ,@(maybe-arguments (append (maybe-cargo-inputs cargo-inputs)
+                   ,@(maybe-arguments (append (if build?
+                                                 '()
+                                                 '(#:skip-build? #t))
+                                              (maybe-cargo-inputs cargo-inputs)
                                               (maybe-cargo-development-inputs
                                                 cargo-development-inputs)))
                    (home-page ,(match home-page
-                                 (() "")
+                                 ('null "")
                                  (_ home-page)))
                    (synopsis ,synopsis)
                    (description ,(beautify-description description))
@@ -177,7 +202,7 @@ and LICENSE."
                                ((license) license)
                                (_ `(list ,@license)))))))
          (close-port port)
-         pkg))
+         (package->definition pkg (version->semver-prefix version))))
 
 (define (string->license string)
   (filter-map (lambda (license)
@@ -188,41 +213,94 @@ and LICENSE."
                          'unknown-license!)))
               (string-split string (string->char-set " /"))))
 
-(define* (crate->guix-package crate-name #:optional version)
+(define* (crate->guix-package crate-name #:key version include-dev-deps? repo)
   "Fetch the metadata for CRATE-NAME from crates.io, and return the
 `package' s-expression corresponding to that package, or #f on failure.
-When VERSION is specified, attempt to fetch that version; otherwise fetch the
-latest version of CRATE-NAME."
+When VERSION is specified, convert it into a semver range and attempt to fetch
+the latest version matching this semver range; otherwise fetch the latest
+version of CRATE-NAME. If INCLUDE-DEV-DEPS is true then this will also
+look up the development dependencs for the given crate."
+
+  (define (semver-range-contains-string? range version)
+    (semver-range-contains? (string->semver-range range)
+                            (string->semver version)))
 
   (define (normal-dependency? dependency)
-    (eq? (crate-dependency-kind dependency) 'normal))
+    (or (eq? (crate-dependency-kind dependency) 'build)
+        (eq? (crate-dependency-kind dependency) 'normal)))
 
   (define crate
-    (lookup-crate crate-name))
+    (lookup-crate* crate-name))
 
   (define version-number
     (and crate
          (or version
              (crate-latest-version crate))))
 
+  ;; find the highest existing package that fulfills the semver <range>
+  (define (find-package-version name range)
+    (let* ((semver-range (string->semver-range range))
+           (versions
+            (sort
+             (filter (lambda (version)
+                       (semver-range-contains? semver-range version))
+                     (map (lambda (pkg)
+                            (string->semver (package-version pkg)))
+                          (find-packages-by-name
+                           (crate-name->package-name name))))
+             semver<?)))
+      (and (not (null-list? versions))
+           (semver->string (last versions)))))
+
+  ;; find the highest version of a crate that fulfills the semver <range>
+  (define (find-crate-version crate range)
+    (let* ((semver-range (string->semver-range range))
+           (versions
+            (sort
+             (filter (lambda (entry)
+                       (semver-range-contains? semver-range (first entry)))
+                     (map (lambda (ver)
+                            (list (string->semver (crate-version-number ver))
+                                  ver))
+                          (crate-versions crate)))
+             (match-lambda* (((semver _) ...)
+                             (apply semver<? semver))))))
+      (and (not (null-list? versions))
+           (second (last versions)))))
+
+  (define (dependency-name+version dep)
+    (let* ((name (crate-dependency-id dep))
+           (req (crate-dependency-requirement dep))
+           (existing-version (find-package-version name req)))
+      (if existing-version
+          (list name existing-version)
+          (let* ((crate (lookup-crate* name))
+                 (ver (find-crate-version crate req)))
+            (list name
+                  (crate-version-number ver))))))
+
   (define version*
     (and crate
-         (find (lambda (version)
-                 (string=? (crate-version-number version)
-                           version-number))
-               (crate-versions crate))))
+         (find-crate-version crate version-number)))
+
+  ;; sort and map the dependencies to a list containing
+  ;; pairs of (name version)
+  (define (sort-map-dependencies deps)
+    (sort (map dependency-name+version
+               deps)
+          (match-lambda* (((name _) ...)
+                          (apply string-ci<? name)))))
 
   (and crate version*
-       (let* ((dependencies   (crate-version-dependencies version*))
-              (dep-crates     (filter normal-dependency? dependencies))
-              (dev-dep-crates (remove normal-dependency? dependencies))
-              (cargo-inputs   (sort (map crate-dependency-id dep-crates)
-                                    string-ci<?))
-              (cargo-development-inputs
-               (sort (map crate-dependency-id dev-dep-crates)
-                     string-ci<?)))
+       (let* ((dependencies (crate-version-dependencies version*))
+              (dep-crates dev-dep-crates (partition normal-dependency? dependencies))
+              (cargo-inputs (sort-map-dependencies dep-crates))
+              (cargo-development-inputs (if include-dev-deps?
+                                            (sort-map-dependencies dev-dep-crates)
+                                            '())))
          (values
-          (make-crate-sexp #:name crate-name
+          (make-crate-sexp #:build? include-dev-deps?
+                           #:name crate-name
                            #:version (crate-version-number version*)
                            #:cargo-inputs cargo-inputs
                            #:cargo-development-inputs cargo-development-inputs
@@ -234,13 +312,15 @@ latest version of CRATE-NAME."
                                             string->license))
           (append cargo-inputs cargo-development-inputs)))))
 
-(define* (crate-recursive-import crate-name #:optional version)
-  (recursive-import crate-name #f
-                    #:repo->guix-package
-                    (lambda (name repo)
-                      (let ((version (and (string=? name crate-name)
-                                          version)))
-                        (crate->guix-package name version)))
+(define* (crate-recursive-import crate-name #:key version)
+  (recursive-import crate-name
+                    #:repo->guix-package (lambda* params
+                      ;; download development dependencies only for the top level package
+                      (let ((include-dev-deps? (equal? (car params) crate-name))
+                            (crate->guix-package* (memoize crate->guix-package)))
+                        (apply crate->guix-package*
+                               (append params `(#:include-dev-deps? ,include-dev-deps?)))))
+                    #:version version
                     #:guix-name crate-name->package-name))
 
 (define (guix-package->crate-name package)
@@ -255,7 +335,7 @@ latest version of CRATE-NAME."
       ((name _ ...) name))))
 
 (define (crate-name->package-name name)
-  (string-append "rust-" (string-join (string-split name #\_) "-")))
+  (guix-name "rust-" name))
 
 
 ;;;
@@ -278,7 +358,7 @@ latest version of CRATE-NAME."
 
 (define %crate-updater
   (upstream-updater
-   (name 'crates)
+   (name 'crate)
    (description "Updater for crates.io packages")
    (pred crate-package?)
    (latest latest-release)))
diff --git a/guix/import/elpa.scm b/guix/import/elpa.scm
index 871b918f88..c0dc5acf51 100644
--- a/guix/import/elpa.scm
+++ b/guix/import/elpa.scm
@@ -1,7 +1,9 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
-;;; Copyright © 2015, 2016, 2017, 2018, 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2015, 2016, 2017, 2018, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
+;;; Copyright © 2020 Martin Becze <mjbecze@riseup.net>
+;;; Copyright © 2020 Ricardo Wurmus <rekado@elephly.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -21,15 +23,20 @@
 (define-module (guix import elpa)
   #:use-module (ice-9 match)
   #:use-module (ice-9 rdelim)
+  #:use-module (ice-9 regex)
   #:use-module (web uri)
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-9)
   #:use-module (srfi srfi-9 gnu)
   #:use-module (srfi srfi-11)
   #:use-module (srfi srfi-26)
+  #:use-module (srfi srfi-34)
+  #:use-module (srfi srfi-35)
   #:use-module ((guix download) #:select (download-to-store))
   #:use-module (guix import utils)
   #:use-module (guix http-client)
+  #:use-module (guix git)
+  #:use-module ((guix serialization) #:select (write-file))
   #:use-module (guix store)
   #:use-module (guix ui)
   #:use-module (gcrypt hash)
@@ -195,10 +202,143 @@ include VERSION."
                             url)))
       (_ #f))))
 
-(define* (elpa-package->sexp pkg #:optional license)
+(define* (download-git-repository url ref)
+  "Fetch the given REF from the Git repository at URL."
+  (with-store store
+    (latest-repository-commit store url #:ref ref)))
+
+(define (package-name->melpa-recipe package-name)
+  "Fetch the MELPA recipe for PACKAGE-NAME, represented as an alist from
+keywords to values."
+  (define recipe-url
+    (string-append "https://raw.githubusercontent.com/melpa/melpa/master/recipes/"
+                   package-name))
+
+  (define (data->recipe data)
+    (match data
+      (() '())
+      ((key value . tail)
+       (cons (cons key value) (data->recipe tail)))))
+
+  (let* ((port (http-fetch/cached (string->uri recipe-url)
+                                  #:ttl (* 6 3600)))
+         (data (read port)))
+    (close-port port)
+    (data->recipe (cons ':name data))))
+
+;; XXX adapted from (guix scripts hash)
+(define (file-hash file select? recursive?)
+  ;; Compute the hash of FILE.
+  (if recursive?
+      (let-values (((port get-hash) (open-sha256-port)))
+        (write-file file port #:select? select?)
+        (force-output port)
+        (get-hash))
+      (call-with-input-file file port-sha256)))
+
+;; XXX taken from (guix scripts hash)
+(define (vcs-file? file stat)
+  (case (stat:type stat)
+    ((directory)
+     (member (basename file) '(".bzr" ".git" ".hg" ".svn" "CVS")))
+    ((regular)
+     ;; Git sub-modules have a '.git' file that is a regular text file.
+     (string=? (basename file) ".git"))
+    (else
+     #f)))
+
+(define (git-repository->origin recipe url)
+  "Fetch origin details from the Git repository at URL for the provided MELPA
+RECIPE."
+  (define ref
+    (cond
+     ((assoc-ref recipe #:branch)
+      => (lambda (branch) (cons 'branch branch)))
+     ((assoc-ref recipe #:commit)
+      => (lambda (commit) (cons 'commit commit)))
+     (else
+      '(branch . "master"))))
+
+  (let-values (((directory commit) (download-git-repository url ref)))
+    `(origin
+       (method git-fetch)
+       (uri (git-reference
+             (url ,url)
+             (commit ,commit)))
+       (sha256
+        (base32
+         ,(bytevector->nix-base32-string
+           (file-hash directory (negate vcs-file?) #t)))))))
+
+(define* (melpa-recipe->origin recipe)
+  "Fetch origin details from the MELPA recipe and associated repository for
+the package named PACKAGE-NAME."
+  (define (github-repo->url repo)
+    (string-append "https://github.com/" repo ".git"))
+  (define (gitlab-repo->url repo)
+    (string-append "https://gitlab.com/" repo ".git"))
+
+  (match (assq-ref recipe ':fetcher)
+    ('github (git-repository->origin recipe (github-repo->url (assq-ref recipe ':repo))))
+    ('gitlab (git-repository->origin recipe (gitlab-repo->url (assq-ref recipe ':repo))))
+    ('git    (git-repository->origin recipe (assq-ref recipe ':url)))
+    (#f #f)   ; if we're not using melpa then this stops us printing a warning
+    (_ (warning (G_ "Unsupported MELPA fetcher: ~a, falling back to unstable MELPA source.~%")
+                (assq-ref recipe ':fetcher))
+       #f)))
+
+(define default-files-spec
+  ;; This contains more than just the things contained in %default-include and
+  ;; %default-exclude, presumably because this includes source files (*.in,
+  ;; *.texi, etc.) which have already been processed for releases.
+  ;;
+  ;; Taken from:
+  ;; https://github.com/melpa/melpa/blob/e8dc709d0ab2b4a68c59315f42858bcb86095f11/package-build/package-build.el#L580-L585
+  '("*.el" "*.el.in" "dir"
+    "*.info" "*.texi" "*.texinfo"
+    "doc/dir" "doc/*.info" "doc/*.texi" "doc/*.texinfo"
+    (:exclude ".dir-locals.el" "test.el" "tests.el" "*-test.el" "*-tests.el")))
+
+(define* (melpa-recipe->maybe-arguments melpa-recipe)
+  "Extract arguments for the build system from MELPA-RECIPE."
+  (define (glob->regexp glob)
+    (string-append
+     "^"
+     (regexp-substitute/global #f "\\*\\*?" glob
+                               'pre
+                               (lambda (m)
+                                 (if (string= (match:substring m 0) "**")
+                                     ".*"
+                                     "[^/]+"))
+                               'post)
+     "$"))
+
+  (let ((files (assq-ref melpa-recipe ':files)))
+    (if files
+        (let* ((with-default (apply append (map (lambda (entry)
+                                                  (if (eq? ':defaults entry)
+                                                      default-files-spec
+                                                      (list entry)))
+                                                files)))
+               (inclusions (remove pair? with-default))
+               (exclusions (apply append (map (match-lambda
+                                                ((':exclude . values)
+                                                 values)
+                                                (_ '()))
+                                              with-default))))
+          `((arguments '(#:include ',(map glob->regexp inclusions)
+                         #:exclude ',(map glob->regexp exclusions)))))
+        '())))
+
+(define* (elpa-package->sexp pkg #:optional license repo)
   "Return the `package' S-expression for the Emacs package PKG, a record of
 type '<elpa-package>'."
 
+  (define melpa-recipe
+    (if (eq? repo 'melpa)
+        (package-name->melpa-recipe (elpa-package-name pkg))
+        #f))
+
   (define name (elpa-package-name pkg))
 
   (define version (elpa-package-version pkg))
@@ -223,37 +363,49 @@ type '<elpa-package>'."
        (list (list input-type
                    (list 'quasiquote inputs))))))
 
-  (let ((tarball (with-store store
-                   (download-to-store store source-url))))
-    (values
-     `(package
-        (name ,(elpa-name->package-name name))
-        (version ,version)
-        (source (origin
-                  (method url-fetch)
-                  (uri (string-append ,@(factorize-uri source-url version)))
-                  (sha256
-                   (base32
-                    ,(if tarball
-                         (bytevector->nix-base32-string (file-sha256 tarball))
-                         "failed to download package")))))
-        (build-system emacs-build-system)
-        ,@(maybe-inputs 'propagated-inputs dependencies)
-        (home-page ,(elpa-package-home-page pkg))
-        (synopsis ,(elpa-package-synopsis pkg))
-        (description ,(elpa-package-description pkg))
-        (license ,license))
-     dependencies-names)))
-
-(define* (elpa->guix-package name #:optional (repo 'gnu))
+  (define melpa-source
+    (melpa-recipe->origin melpa-recipe))
+
+  (values
+   `(package
+      (name ,(elpa-name->package-name name))
+      (version ,version)
+      (source ,(or melpa-source
+                   (let ((tarball (with-store store
+                                    (download-to-store store source-url))))
+                     `(origin
+                        (method url-fetch)
+                        (uri (string-append ,@(factorize-uri source-url version)))
+                        (sha256
+                         (base32
+                          ,(if tarball
+                               (bytevector->nix-base32-string (file-sha256 tarball))
+                               "failed to download package")))))))
+      (build-system emacs-build-system)
+      ,@(maybe-inputs 'propagated-inputs dependencies)
+      ,@(if melpa-source
+            (melpa-recipe->maybe-arguments melpa-recipe)
+            '())
+      (home-page ,(elpa-package-home-page pkg))
+      (synopsis ,(elpa-package-synopsis pkg))
+      (description ,(elpa-package-description pkg))
+      (license ,license))
+   dependencies-names))
+
+(define* (elpa->guix-package name #:key (repo 'gnu) version)
   "Fetch the package NAME from REPO and produce a Guix package S-expression."
   (match (fetch-elpa-package name repo)
-    (#f #f)
+    (#false
+     (raise (condition
+             (&message
+              (message (format #false
+                               "couldn't find meta-data for ELPA package `~a'."
+                               name))))))
     (package
       ;; ELPA is known to contain only GPLv3+ code.  Other repos may contain
       ;; code under other license but there's no license metadata.
       (let ((license (and (memq repo '(gnu gnu/http)) 'license:gpl3+)))
-        (elpa-package->sexp package license)))))
+        (elpa-package->sexp package license repo)))))
 
 
 ;;;
@@ -267,19 +419,24 @@ type '<elpa-package>'."
         (string-drop (package-name package) 6)
         (package-name package)))
 
-  (let* ((repo    'gnu)
-         (info    (elpa-package-info name repo))
-         (version (match info
-                    ((name raw-version . _)
-                     (elpa-version->string raw-version))))
-         (url     (match info
-                    ((_ raw-version reqs synopsis kind . rest)
-                     (package-source-url kind name version repo)))))
-    (upstream-source
-     (package (package-name package))
-     (version version)
-     (urls (list url))
-     (signature-urls (list (string-append url ".sig"))))))
+  (define repo 'gnu)
+
+  (match (elpa-package-info name repo)
+    (#f
+     ;; No info, perhaps because PACKAGE is not truly an ELPA package.
+     #f)
+    (info
+     (let* ((version (match info
+                       ((name raw-version . _)
+                        (elpa-version->string raw-version))))
+            (url     (match info
+                       ((_ raw-version reqs synopsis kind . rest)
+                        (package-source-url kind name version repo)))))
+       (upstream-source
+        (package (package-name package))
+        (version version)
+        (urls (list url))
+        (signature-urls (list (string-append url ".sig"))))))))
 
 (define package-from-gnu.org?
   (url-predicate (lambda (url)
@@ -299,7 +456,8 @@ type '<elpa-package>'."
 (define elpa-guix-name (cut guix-name "emacs-" <>))
 
 (define* (elpa-recursive-import package-name #:optional (repo 'gnu))
-  (recursive-import package-name repo
+  (recursive-import package-name
+                    #:repo repo
                     #:repo->guix-package elpa->guix-package
                     #:guix-name elpa-guix-name))
 
diff --git a/guix/import/gem.scm b/guix/import/gem.scm
index a2d99ddbca..418d716be6 100644
--- a/guix/import/gem.scm
+++ b/guix/import/gem.scm
@@ -2,7 +2,8 @@
 ;;; Copyright © 2015 David Thompson <davet@gnu.org>
 ;;; Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
 ;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
-;;; Copyright © 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2020, 2021 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2020 Martin Becze <mjbecze@riseup.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -22,7 +23,7 @@
 (define-module (guix import gem)
   #:use-module (ice-9 match)
   #:use-module (srfi srfi-1)
-  #:use-module (guix json)
+  #:use-module (json)
   #:use-module ((guix download) #:prefix download:)
   #:use-module (guix import utils)
   #:use-module (guix import json)
@@ -48,6 +49,7 @@
                    ;; This is sometimes #nil (the JSON 'null' value).  Arrange
                    ;; to always return a list.
                    (cond ((not licenses) '())
+                         ((unspecified? licenses) '())
                          ((vector? licenses) (vector->list licenses))
                          (else '()))))
   (info          gem-info)
@@ -68,7 +70,7 @@
                  json->gem-dependency-list))
 
 (define (json->gem-dependency-list vector)
-  (if vector
+  (if (and vector (not (unspecified? vector)))
       (map json->gem-dependency (vector->list vector))
       '()))
 
@@ -122,7 +124,7 @@ VERSION, HASH, HOME-PAGE, DESCRIPTION, DEPENDENCIES, and LICENSES."
                  ((license) (license->symbol license))
                  (_ `(list ,@(map license->symbol licenses)))))))
 
-(define* (gem->guix-package package-name #:optional (repo 'rubygems) version)
+(define* (gem->guix-package package-name #:key (repo 'rubygems) version)
   "Fetch the metadata for PACKAGE-NAME from rubygems.org, and return the
 `package' s-expression corresponding to that package, or #f on failure."
   (let ((gem (rubygems-fetch package-name)))
@@ -188,6 +190,7 @@ package on RubyGems."
    (latest latest-release)))
 
 (define* (gem-recursive-import package-name #:optional version)
-  (recursive-import package-name '()
+  (recursive-import package-name
+                    #:repo '()
                     #:repo->guix-package gem->guix-package
                     #:guix-name ruby-package-name))
diff --git a/guix/import/hackage.scm b/guix/import/hackage.scm
index 35c67cad8d..6ca4f65cb0 100644
--- a/guix/import/hackage.scm
+++ b/guix/import/hackage.scm
@@ -40,7 +40,8 @@
   #:use-module (guix upstream)
   #:use-module (guix packages)
   #:use-module ((guix utils) #:select (call-with-temporary-output-file))
-  #:export (hackage->guix-package
+  #:export (%hackage-url
+            hackage->guix-package
             hackage-recursive-import
             %hackage-updater
 
@@ -92,20 +93,23 @@
 
 (define package-name-prefix "ghc-")
 
+(define %hackage-url
+  (make-parameter "https://hackage.haskell.org"))
+
 (define (hackage-source-url name version)
   "Given a Hackage package NAME and VERSION, return a url to the source
 tarball."
-  (string-append "https://hackage.haskell.org/package/" name
-                 "/" name "-" version ".tar.gz"))
+  (string-append (%hackage-url) "/package/"
+                 name "/" name "-" version ".tar.gz"))
 
 (define* (hackage-cabal-url name #:optional version)
   "Given a Hackage package NAME and VERSION, return a url to the corresponding
 .cabal file on Hackage.  If VERSION is #f or missing, the url for the latest
 version is returned."
   (if version
-      (string-append "https://hackage.haskell.org/package/"
+      (string-append (%hackage-url) "/package/"
                      name "-" version "/" name ".cabal")
-      (string-append "https://hackage.haskell.org/package/"
+      (string-append (%hackage-url) "/package/"
                      name "/" name ".cabal")))
 
 (define (hackage-name->package-name name)
diff --git a/guix/import/launchpad.scm b/guix/import/launchpad.scm
index c7375837c7..fd3cfa8444 100644
--- a/guix/import/launchpad.scm
+++ b/guix/import/launchpad.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2019 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2019, 2020 Arun Isaac <arunisaac@systemreboot.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -32,7 +32,7 @@
   "Return the extension of the archive e.g. '.tar.gz' given a URL, or
 false if none is recognized"
   (find (lambda (x) (string-suffix? x url))
-        (list ".tar.gz" ".tar.bz2" ".tar.xz"
+        (list ".orig.tar.gz" ".tar.gz" ".tar.bz2" ".tar.xz"
               ".zip" ".tar" ".tgz" ".tbz" ".love")))
 
 (define (updated-launchpad-url old-package new-version)
@@ -46,15 +46,35 @@ false if none is recognized"
                (version (package-version old-package))
                (repo (launchpad-repository url)))
            (cond
-            ((and
-              (>= (length (string-split version #\.)) 2)
-              (string=? (string-append "https://launchpad.net/"
-                                       repo "/" (version-major+minor version)
-                                       "/" version "/+download/" repo "-" version ext)
-                        url))
+            ((< (length (string-split version #\.)) 2) #f)
+            ((string=? (string-append "https://launchpad.net/"
+                                      repo "/" (version-major+minor version)
+                                      "/" version "/+download/" repo "-" version ext)
+                       url)
              (string-append "https://launchpad.net/"
                             repo "/" (version-major+minor new-version)
                             "/" new-version "/+download/" repo "-" new-version ext))
+            ((string=? (string-append "https://launchpad.net/"
+                                      repo "/" (version-major+minor version)
+                                      "/" version "/+download/" repo "_" version ext)
+                       url)
+             (string-append "https://launchpad.net/"
+                            repo "/" (version-major+minor new-version)
+                            "/" new-version "/+download/" repo "-" new-version ext))
+            ((string=? (string-append "https://launchpad.net/"
+                                      repo "/trunk/" version "/+download/"
+                                      repo "-" version ext)
+                       url)
+             (string-append "https://launchpad.net/"
+                            repo "/trunk/" new-version
+                            "/+download/" repo "-" new-version ext))
+            ((string=? (string-append "https://launchpad.net/"
+                                      repo "/trunk/" version "/+download/"
+                                      repo "_" version ext)
+                       url)
+             (string-append "https://launchpad.net/"
+                            repo "/trunk/" new-version
+                            "/+download/" repo "_" new-version ext))
             (#t #f))))) ; Some URLs are not recognised.
 
   (match (package-source old-package)
@@ -66,7 +86,7 @@ false if none is recognized"
               ((? string?)
                (updated-url source-uri))
               ((source-uri ...)
-               (find updated-url source-uri))))))
+               (any updated-url source-uri))))))
     (_ #f)))
 
 (define (launchpad-package? package)
diff --git a/guix/import/opam.scm b/guix/import/opam.scm
index 9cda3da006..670973b193 100644
--- a/guix/import/opam.scm
+++ b/guix/import/opam.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2018 Julien Lepiller <julien@lepiller.eu>
+;;; Copyright © 2020 Martin Becze <mjbecze@riseup.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -49,16 +50,19 @@
             condition))
 
 ;; Define a PEG parser for the opam format
-(define-peg-pattern comment none (and "#" (* STRCHR) "\n"))
+(define-peg-pattern comment none (and "#" (* COMMCHR) "\n"))
 (define-peg-pattern SP none (or " " "\n" comment))
 (define-peg-pattern SP2 body (or " " "\n"))
 (define-peg-pattern QUOTE none "\"")
 (define-peg-pattern QUOTE2 body "\"")
 (define-peg-pattern COLON none ":")
 ;; A string character is any character that is not a quote, or a quote preceded by a backslash.
+(define-peg-pattern COMMCHR none
+                    (or " " "!" "\\" "\"" (range #\# #\頋)))
 (define-peg-pattern STRCHR body
                     (or " " "!" "\n" (and (ignore "\\") "\"")
-                        (and (ignore "\\") "\\") (range #\# #\頋)))
+                        (ignore "\\\n") (and (ignore "\\") "\\")
+                        (range #\# #\頋)))
 (define-peg-pattern operator all (or "=" "!" "<" ">"))
 
 (define-peg-pattern records body (* (and (or record weird-record) (* SP))))
@@ -69,8 +73,12 @@
 (define-peg-pattern choice-pat all (and (ignore "(") (* SP) choice (* SP)  (ignore ")")))
 (define-peg-pattern choice body
   (or (and (or conditional-value ground-value) (* SP) (ignore "|") (* SP) choice)
+      group-pat
       conditional-value
       ground-value))
+(define-peg-pattern group-pat all
+                    (and (or conditional-value ground-value) (* SP) (ignore "&") (* SP)
+                         (or group-pat conditional-value ground-value)))
 (define-peg-pattern ground-value body (and (or multiline-string string-pat choice-pat list-pat var) (* SP)))
 (define-peg-pattern conditional-value all (and ground-value (* SP) condition))
 (define-peg-pattern string-pat all (and QUOTE (* STRCHR) QUOTE))
@@ -112,12 +120,29 @@
 (define-peg-pattern condition-string all (and QUOTE (* STRCHR) QUOTE))
 (define-peg-pattern condition-var all (+ (or (range #\a #\z) "-" ":")))
 
-(define (get-opam-repository)
+(define* (get-opam-repository #:optional repo)
   "Update or fetch the latest version of the opam repository and return the
 path to the repository."
-  (receive (location commit _)
-    (update-cached-checkout "https://github.com/ocaml/opam-repository")
-    location))
+  (let ((url (cond
+               ((or (not repo) (equal? repo 'opam))
+                "https://github.com/ocaml/opam-repository")
+               ((string-prefix? "coq-" (symbol->string repo))
+                "https://github.com/coq/opam-coq-archive")
+               ((equal? repo 'coq) "https://github.com/coq/opam-coq-archive")
+               (else (throw 'unknown-repository repo)))))
+    (receive (location commit _)
+      (update-cached-checkout url)
+      (cond
+        ((or (not repo) (equal? repo 'opam))
+         location)
+        ((equal? repo 'coq)
+         (string-append location "/released"))
+        ((string-prefix? "coq-" (symbol->string repo))
+         (string-append location "/" (substring (symbol->string repo) 4)))
+        (else location)))))
+
+;; Prevent Guile 3 from inlining this procedure so we can mock it in tests.
+(set! get-opam-repository get-opam-repository)
 
 (define (latest-version versions)
   "Find the most recent version from a list of versions."
@@ -153,6 +178,7 @@ path to the repository."
   (substitute-char
     (cond
       ((equal? name "ocamlfind") "ocaml-findlib")
+      ((equal? name "coq") name)
       ((string-prefix? "ocaml" name) name)
       ((string-prefix? "conf-" name) (substring name 5))
       (else (string-append "ocaml-" name)))
@@ -189,6 +215,7 @@ path to the repository."
     (('string-pat str) str)
     ;; Arbitrary select the first dependency
     (('choice-pat choice ...) (dependency->input (car choice)))
+    (('group-pat val ...) (map dependency->input val))
     (('conditional-value val condition)
      (if (native? condition) "" (dependency->input val)))))
 
@@ -196,7 +223,8 @@ path to the repository."
   (match dependency
     (('string-pat str) "")
     ;; Arbitrary select the first dependency
-    (('choice-pat choice ...) (dependency->input (car choice)))
+    (('choice-pat choice ...) (dependency->native-input (car choice)))
+    (('group-pat val ...) (map dependency->native-input val))
     (('conditional-value val condition)
      (if (native? condition) (dependency->input val) ""))))
 
@@ -204,7 +232,8 @@ path to the repository."
   (match dependency
     (('string-pat str) str)
     ;; Arbitrary select the first dependency
-    (('choice-pat choice ...) (dependency->input (car choice)))
+    (('choice-pat choice ...) (dependency->name (car choice)))
+    (('group-pat val ...) (map dependency->name val))
     (('conditional-value val condition)
      (dependency->name val))))
 
@@ -224,12 +253,15 @@ path to the repository."
                      (equal? "ocaml" name))
                names)))
 
-(define (depends->inputs depends)
+(define (filter-dependencies depends)
+  "Remove implicit dependencies from the list of dependencies in @var{depends}."
   (filter (lambda (name)
-            (and (not (equal? "" name))
-                 (not (equal? "ocaml" name))
-                 (not (equal? "ocamlfind" name))))
-    (map dependency->input depends)))
+            (and (not (member name '("" "ocaml" "ocamlfind" "dune" "jbuilder")))
+                 (not (string-prefix? "base-" name))))
+          depends))
+
+(define (depends->inputs depends)
+  (filter-dependencies (map dependency->input depends)))
 
 (define (depends->native-inputs depends)
   (filter (lambda (name) (not (equal? "" name)))
@@ -250,17 +282,19 @@ path to the repository."
                         (substring version 1)
                         version)))))
 
-(define* (opam->guix-package name #:key (repository (get-opam-repository)))
+(define* (opam->guix-package name #:key (repo 'opam) version)
   "Import OPAM package NAME from REPOSITORY (a directory name) or, if
 REPOSITORY is #f, from the official OPAM repository.  Return a 'package' sexp
 or #f on failure."
-  (and-let* ((opam-file (opam-fetch name repository))
+  (and-let* ((opam-file (opam-fetch name (get-opam-repository repo)))
              (version (assoc-ref opam-file "version"))
              (opam-content (assoc-ref opam-file "metadata"))
              (url-dict (metadata-ref opam-content "url"))
-             (source-url (metadata-ref url-dict "src"))
+             (source-url (or (metadata-ref url-dict "src")
+                             (metadata-ref url-dict "archive")))
              (requirements (metadata-ref opam-content "depends"))
-             (dependencies (dependency-list->names requirements))
+             (names (dependency-list->names requirements))
+             (dependencies (filter-dependencies names))
              (native-dependencies (depends->native-inputs requirements))
              (inputs (dependency-list->inputs (depends->inputs requirements)))
              (native-inputs (dependency-list->inputs
@@ -270,10 +304,7 @@ or #f on failure."
                                 (lambda (name)
                                   (not (member name '("dune" "jbuilder"))))
                                 native-dependencies))))
-        ;; If one of these are required at build time, it means we
-        ;; can use the much nicer dune-build-system.
-        (let ((use-dune? (or (member "dune" (append dependencies native-dependencies))
-                        (member "jbuilder" (append dependencies native-dependencies)))))
+        (let ((use-dune? (member "dune" names)))
           (call-with-temporary-output-file
             (lambda (temp port)
               (and (url-fetch source-url temp)
@@ -308,13 +339,13 @@ or #f on failure."
                     (filter
                       (lambda (name)
                         (not (member name '("dune" "jbuilder"))))
-		      dependencies))))))))
+                      dependencies))))))))
 
-(define (opam-recursive-import package-name)
-  (recursive-import package-name #f
-                    #:repo->guix-package (lambda (name repo)
-                                           (opam->guix-package name))
-                    #:guix-name ocaml-name->guix-name))
+(define* (opam-recursive-import package-name #:key repo)
+  (recursive-import package-name
+                    #:repo->guix-package opam->guix-package
+                    #:guix-name ocaml-name->guix-name
+                    #:repo repo))
 
 (define (guix-name->opam-name name)
   (if (string-prefix? "ocaml-" name)
diff --git a/guix/import/print.scm b/guix/import/print.scm
index 11cc218285..a2ab810a5c 100644
--- a/guix/import/print.scm
+++ b/guix/import/print.scm
@@ -57,7 +57,8 @@ when evaluated."
   ;; Print either license variable name or the code for a license object
   (define (license->code lic)
     (let ((var (variable-name lic '(guix licenses))))
-      (or (symbol-append 'license: var)
+      (if var
+          (symbol-append 'license: var)
           `(license
             (name ,(license-name lic))
             (uri ,(license-uri lic))
@@ -74,7 +75,7 @@ when evaluated."
   (define (source->code source version)
     (let ((uri       (origin-uri source))
           (method    (origin-method source))
-          (sha256    (origin-sha256 source))
+          (hash      (origin-hash source))
           (file-name (origin-file-name source))
           (patches   (origin-patches source)))
       `(origin
@@ -82,9 +83,12 @@ when evaluated."
          (uri (string-append ,@(match (factorize-uri uri version)
                                  ((? string? uri) (list uri))
                                  (factorized factorized))))
-         (sha256
-          (base32
-           ,(format #f "~a" (bytevector->nix-base32-string sha256))))
+         ,(if (equal? (content-hash-algorithm hash) 'sha256)
+              `(sha256 (base32 ,(bytevector->nix-base32-string
+                                 (content-hash-value hash))))
+              `(hash (content-hash ,(bytevector->nix-base32-string
+                                     (content-hash-value hash))
+                                   ,(content-hash-algorithm hash))))
          ;; FIXME: in order to be able to throw away the directory prefix,
          ;; we just assume that the patch files can be found with
          ;; "search-patches".
diff --git a/guix/import/pypi.scm b/guix/import/pypi.scm
index a4a2489688..bf4dc50138 100644
--- a/guix/import/pypi.scm
+++ b/guix/import/pypi.scm
@@ -8,6 +8,7 @@
 ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
 ;;; Copyright © 2020 Lars-Dominik Braun <ldb@leibniz-psychology.org>
 ;;; Copyright © 2020 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2020 Martin Becze <mjbecze@riseup.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -46,7 +47,7 @@
   #:use-module (guix import utils)
   #:use-module ((guix download) #:prefix download:)
   #:use-module (guix import json)
-  #:use-module (guix json)
+  #:use-module (json)
   #:use-module (guix packages)
   #:use-module (guix upstream)
   #:use-module ((guix licenses) #:prefix license:)
@@ -471,7 +472,7 @@ VERSION, SOURCE-URL, HOME-PAGE, SYNOPSIS, DESCRIPTION, and LICENSE."
 
 (define pypi->guix-package
   (memoize
-   (lambda* (package-name)
+   (lambda* (package-name #:key repo version)
      "Fetch the metadata for PACKAGE-NAME from pypi.org, and return the
 `package' s-expression corresponding to that package, or #f on failure."
      (let* ((project (pypi-fetch package-name))
@@ -495,9 +496,8 @@ VERSION, SOURCE-URL, HOME-PAGE, SYNOPSIS, DESCRIPTION, and LICENSE."
                                (project-info-license info)))))))))
 
 (define (pypi-recursive-import package-name)
-  (recursive-import package-name #f
-                    #:repo->guix-package (lambda (name repo)
-                                           (pypi->guix-package name))
+  (recursive-import package-name
+                    #:repo->guix-package pypi->guix-package
                     #:guix-name python->package-name))
 
 (define (string->license str)
diff --git a/guix/import/stackage.scm b/guix/import/stackage.scm
index e04073d193..bbd903a2cd 100644
--- a/guix/import/stackage.scm
+++ b/guix/import/stackage.scm
@@ -1,6 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2017 Federico Beffa <beffa@fbengineering.ch>
 ;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2020 Martin Becze <mjbecze@riseup.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -30,7 +31,8 @@
   #:use-module (guix memoization)
   #:use-module (guix packages)
   #:use-module (guix upstream)
-  #:export (stackage->guix-package
+  #:export (%stackage-url
+            stackage->guix-package
             stackage-recursive-import
             %stackage-updater))
 
@@ -39,15 +41,14 @@
 ;;; Stackage info fetcher and access functions
 ;;;
 
-(define %stackage-url "http://www.stackage.org")
+(define %stackage-url
+  (make-parameter "https://www.stackage.org"))
 
-(define (lts-info-ghc-version lts-info)
-  "Retruns the version of the GHC compiler contained in LTS-INFO."
-  (and=> (assoc-ref lts-info "snapshot")
-         (cut assoc-ref <> "ghc")))
+;; Latest LTS version compatible with GHC 8.6.5.
+(define %default-lts-version "14.27")
 
 (define (lts-info-packages lts-info)
-  "Retruns the alist of packages contained in LTS-INFO."
+  "Returns the alist of packages contained in LTS-INFO."
   (or (assoc-ref lts-info "packages") '()))
 
 (define (leave-with-message fmt . args)
@@ -57,9 +58,10 @@
   ;; "Retrieve the information about the LTS Stackage release VERSION."
   (memoize
    (lambda* (#:optional (version ""))
-     (let* ((url (if (string=? "" version)
-                     (string-append %stackage-url "/lts")
-                     (string-append %stackage-url "/lts-" version)))
+     (let* ((url (string-append (%stackage-url)
+                                "/lts-" (if (string-null? version)
+                                            %default-lts-version
+                                            version)))
             (lts-info (json-fetch url)))
        (if lts-info
            (reverse lts-info)
@@ -90,7 +92,7 @@
    (lambda* (package-name ; upstream name
              #:key
              (include-test-dependencies? #t)
-             (lts-version "")
+             (lts-version %default-lts-version)
              (packages-info
               (lts-info-packages
                (stackage-lts-info-fetch lts-version))))
@@ -108,8 +110,8 @@ included in the Stackage LTS release."
            (leave-with-message "~a: Stackage package not found" package-name))))))
 
 (define (stackage-recursive-import package-name . args)
-  (recursive-import package-name #f
-                    #:repo->guix-package (lambda (name repo)
+  (recursive-import package-name
+                    #:repo->guix-package (lambda* (name #:key repo version)
                                            (apply stackage->guix-package (cons name args)))
                     #:guix-name hackage-name->package-name))
 
@@ -119,7 +121,9 @@ included in the Stackage LTS release."
 ;;;
 
 (define latest-lts-release
-  (let ((pkgs-info (mlambda () (lts-info-packages (stackage-lts-info-fetch)))))
+  (let ((pkgs-info
+        (mlambda () (lts-info-packages
+                     (stackage-lts-info-fetch %default-lts-version)))))
     (lambda* (package)
       "Return an <upstream-source> for the latest Stackage LTS release of
 PACKAGE or #f if the package is not included in the Stackage LTS release."
diff --git a/guix/import/texlive.scm b/guix/import/texlive.scm
index a84683ef6f..18d8b95ee0 100644
--- a/guix/import/texlive.scm
+++ b/guix/import/texlive.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -25,6 +26,8 @@
   #:use-module (srfi srfi-26)
   #:use-module (srfi srfi-34)
   #:use-module (web uri)
+  #:use-module (guix diagnostics)
+  #:use-module (guix i18n)
   #:use-module (guix http-client)
   #:use-module (gcrypt hash)
   #:use-module (guix memoization)
@@ -149,19 +152,24 @@ expression describing it."
            (home-page  (string-append "http://www.ctan.org/pkg/" id))
            (ref        (texlive-ref component id))
            (checkout   (download-svn-to-store store ref)))
+      (unless checkout
+        (warning (G_ "Could not determine source location.  \
+Please manually specify the source field.~%")))
       `(package
          (name ,(guix-name component id))
          (version ,version)
-         (source (origin
-                   (method svn-fetch)
-                   (uri (texlive-ref ,component ,id))
-                   (sha256
-                    (base32
-                     ,(bytevector->nix-base32-string
-                       (let-values (((port get-hash) (open-sha256-port)))
-                         (write-file checkout port)
-                         (force-output port)
-                         (get-hash)))))))
+         (source ,(if checkout
+                      `(origin
+                         (method svn-fetch)
+                         (uri (texlive-ref ,component ,id))
+                         (sha256
+                          (base32
+                           ,(bytevector->nix-base32-string
+                             (let-values (((port get-hash) (open-sha256-port)))
+                               (write-file checkout port)
+                               (force-output port)
+                               (get-hash))))))
+                      #f))
          (build-system texlive-build-system)
          (arguments ,`(,'quote (#:tex-directory ,(string-join (list component id) "/"))))
          (home-page ,home-page)
diff --git a/guix/import/utils.scm b/guix/import/utils.scm
index 0cfa1f8321..2f5ccf7cea 100644
--- a/guix/import/utils.scm
+++ b/guix/import/utils.scm
@@ -5,6 +5,8 @@
 ;;; Copyright © 2017, 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
 ;;; Copyright © 2019 Robert Vollmert <rob@vllmrt.net>
+;;; Copyright © 2020 Helio Machado <0x2b3bfa0+guix@googlemail.com>
+;;; Copyright © 2020 Martin Becze <mjbecze@riseup.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -44,6 +46,7 @@
   #:use-module (srfi srfi-9)
   #:use-module (srfi srfi-11)
   #:use-module (srfi srfi-26)
+  #:use-module (srfi srfi-71)
   #:export (factorize-uri
 
             flatten
@@ -124,9 +127,12 @@ of the string VERSION is replaced by the symbol 'version."
   ;; https://spdx.org/licenses/
   ;; The psfl, gfl1.0, nmap, repoze
   ;; licenses doesn't have SPDX identifiers
+  ;;
+  ;; Please update guix/licenses.scm when modifying
+  ;; this list to avoid mismatches.
   (match str
-    ("AGPL-1.0"                    'license:agpl-1.0)
-    ("AGPL-3.0"                    'license:agpl-3.0)
+    ("AGPL-1.0"                    'license:agpl1)
+    ("AGPL-3.0"                    'license:agpl3)
     ("Apache-1.1"                  'license:asl1.1)
     ("Apache-2.0"                  'license:asl2.0)
     ("BSL-1.0"                     'license:boost1.0)
@@ -166,8 +172,8 @@ of the string VERSION is replaced by the symbol 'version."
     ("LGPL-2.0+"                   'license:lgpl2.0+)
     ("LGPL-2.1"                    'license:lgpl2.1)
     ("LGPL-2.1+"                   'license:lgpl2.1+)
-    ("LGPL-3.0"                    'license:lgpl3.0)
-    ("LGPL-3.0+"                   'license:lgpl3.0+)
+    ("LGPL-3.0"                    'license:lgpl3)
+    ("LGPL-3.0+"                   'license:lgpl3+)
     ("MPL-1.0"                     'license:mpl1.0)
     ("MPL-1.1"                     'license:mpl1.1)
     ("MPL-2.0"                     'license:mpl2.0)
@@ -175,7 +181,7 @@ of the string VERSION is replaced by the symbol 'version."
     ("NCSA"                        'license:ncsa)
     ("OpenSSL"                     'license:openssl)
     ("OLDAP-2.8"                   'license:openldap2.8)
-    ("CUA-OPL-1.0"                 'license:opl1.0)
+    ("CUA-OPL-1.0"                 'license:cua-opl1.0)
     ("QPL-1.0"                     'license:qpl)
     ("Ruby"                        'license:ruby)
     ("SGI-B-2.0"                   'license:sgifreeb2.0)
@@ -223,13 +229,20 @@ into a proper sentence and by using two spaces between sentences."
                               cleaned 'pre ".  " 'post)))
 
 (define* (package-names->package-inputs names #:optional (output #f))
-  "Given a list of PACKAGE-NAMES, and an optional OUTPUT, tries to generate a
-quoted list of inputs, as suitable to use in an 'inputs' field of a package
-definition."
-  (map (lambda (input)
-         (cons* input (list 'unquote (string->symbol input))
-                            (or (and output (list output))
-                                '())))
+  "Given a list of PACKAGE-NAMES or (PACKAGE-NAME VERSION) pairs, and an
+optional OUTPUT, tries to generate a quoted list of inputs, as suitable to
+use in an 'inputs' field of a package definition."
+  (define (make-input input version)
+    (cons* input (list 'unquote (string->symbol
+                                 (if version
+                                     (string-append input "-" version)
+                                     input)))
+           (or (and output (list output))
+               '())))
+
+  (map (match-lambda
+         ((input version) (make-input input version))
+         (input (make-input input #f)))
        names))
 
 (define* (maybe-inputs package-names #:optional (output #f))
@@ -250,13 +263,21 @@ package definition."
     ((package-inputs ...)
      `((native-inputs (,'quasiquote ,package-inputs))))))
 
-(define (package->definition guix-package)
+(define* (package->definition guix-package #:optional append-version?/string)
+  "If APPEND-VERSION?/STRING is #t, append the package's major+minor
+version. If APPEND-VERSION?/string is a string, append this string."
   (match guix-package
-    (('package ('name (? string? name)) _ ...)
-     `(define-public ,(string->symbol name)
-        ,guix-package))
-    (('let anything ('package ('name (? string? name)) _ ...))
-     `(define-public ,(string->symbol name)
+    ((or
+      ('package ('name name) ('version version) . rest)
+      ('let _ ('package ('name name) ('version version) . rest)))
+
+     `(define-public ,(string->symbol
+                       (cond
+                        ((string? append-version?/string)
+                         (string-append name "-" append-version?/string))
+                        ((eq? append-version?/string #t)
+                         (string-append name "-" (version-major+minor version)))
+                        (else name)))
         ,guix-package))))
 
 (define (build-system-modules)
@@ -351,8 +372,12 @@ specifications to look up and replace them with plain symbols instead."
      (match (assoc-ref meta "license")
        (#f #f)
        (l
-        (or (module-ref (resolve-interface '(guix licenses) #:prefix 'license:)
-                        (spdx-string->license l))
+        (or (false-if-exception
+             (module-ref (resolve-interface '(guix licenses))
+                         (string->symbol l)))
+            (false-if-exception
+             (module-ref (resolve-interface '(guix licenses) #:prefix 'license:)
+                         (spdx-string->license l)))
             (license:fsdg-compatible l)))))))
 
 (define* (read-lines #:optional (port (current-input-port)))
@@ -405,32 +430,43 @@ obtain a node's uniquely identifying \"key\"."
                    (cons head result)
                    (set-insert (node-name head) visited))))))))
 
-(define* (recursive-import package-name repo
-                           #:key repo->guix-package guix-name
+(define* (recursive-import package-name
+                           #:key repo->guix-package guix-name version repo
                            #:allow-other-keys)
   "Return a list of package expressions for PACKAGE-NAME and all its
 dependencies, sorted in topological order.  For each package,
-call (REPO->GUIX-PACKAGE NAME REPO), which should return a package expression
-and a list of dependencies; call (GUIX-NAME NAME) to obtain the Guix package
-name corresponding to the upstream name."
+call (REPO->GUIX-PACKAGE NAME :KEYS version repo), which should return a
+package expression and a list of dependencies; call (GUIX-NAME NAME) to
+obtain the Guix package name corresponding to the upstream name."
   (define-record-type <node>
-    (make-node name package dependencies)
+    (make-node name version package dependencies)
     node?
     (name         node-name)
+    (version      node-version)
     (package      node-package)
     (dependencies node-dependencies))
 
-  (define (exists? name)
-    (not (null? (find-packages-by-name (guix-name name)))))
+  (define (exists? name version)
+    (not (null? (find-packages-by-name (guix-name name) version))))
 
-  (define (lookup-node name)
-    (receive (package dependencies) (repo->guix-package name repo)
-      (make-node name package dependencies)))
+  (define (lookup-node name version)
+    (let* ((package dependencies (repo->guix-package name
+                                                     #:version version
+                                                     #:repo repo))
+           (normalized-deps (map (match-lambda
+                                   ((name version) (list name version))
+                                   (name (list name #f))) dependencies)))
+      (make-node name version package normalized-deps)))
 
   (map node-package
-       (topological-sort (list (lookup-node package-name))
+       (topological-sort (list (lookup-node package-name version))
                          (lambda (node)
-                           (map lookup-node
-                                (remove exists?
+                           (map (lambda (name-version)
+                                  (apply lookup-node name-version))
+                                (remove (lambda (name-version)
+                                          (apply exists? name-version))
                                         (node-dependencies node))))
-                         node-name)))
+                         (lambda (node)
+                           (string-append
+                            (node-name node)
+                            (or (node-version node) ""))))))
diff --git a/guix/inferior.scm b/guix/inferior.scm
index 77820872b3..2fe91beaab 100644
--- a/guix/inferior.scm
+++ b/guix/inferior.scm
@@ -469,22 +469,13 @@ is similar to the sexp returned by 'package-provenance' for regular packages."
   "Proxy communication between CLIENT and BACKEND until CLIENT closes the
 connection, at which point CLIENT is closed (both CLIENT and BACKEND must be
 input/output ports.)"
-  (define (select* read write except)
-    ;; This is a workaround for <https://bugs.gnu.org/30365> in Guile < 2.2.4:
-    ;; since 'select' sometimes returns non-empty sets for no good reason,
-    ;; call 'select' a second time with a zero timeout to filter out incorrect
-    ;; replies.
-    (match (select read write except)
-      ((read write except)
-       (select read write except 0))))
-
   ;; Use buffered ports so that 'get-bytevector-some' returns up to the
   ;; whole buffer like read(2) would--see <https://bugs.gnu.org/30066>.
   (setvbuf client 'block 65536)
   (setvbuf backend 'block 65536)
 
   (let loop ()
-    (match (select* (list client backend) '() '())
+    (match (select (list client backend) '() '())
       ((reads () ())
        (when (memq client reads)
          (match (get-bytevector-some client)
diff --git a/guix/json.scm b/guix/json.scm
deleted file mode 100644
index 3e3a28b749..0000000000
--- a/guix/json.scm
+++ /dev/null
@@ -1,83 +0,0 @@
-;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
-;;;
-;;; This file is part of GNU Guix.
-;;;
-;;; GNU Guix is free software; you can redistribute it and/or modify it
-;;; under the terms of the GNU General Public License as published by
-;;; the Free Software Foundation; either version 3 of the License, or (at
-;;; your option) any later version.
-;;;
-;;; GNU Guix is distributed in the hope that it will be useful, but
-;;; WITHOUT ANY WARRANTY; without even the implied warranty of
-;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-;;; GNU General Public License for more details.
-;;;
-;;; You should have received a copy of the GNU General Public License
-;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
-
-(define-module (guix json)
-  #:use-module (json)
-  #:use-module (srfi srfi-9))
-
-;;; Commentary:
-;;;
-;;; Helpers to map JSON objects to SRFI-9 records.  Taken from (guix swh).
-;;; This module is superseded by 'define-json-mapping' as found since version
-;;; 4.2.0 of Guile-JSON and will be removed once migration is complete.
-;;;
-;;; Code:
-
-(define-syntax define-as-needed
-  (lambda (s)
-    "Define the given syntax rule unless (json) already provides it."
-    (syntax-case s ()
-      ((_ (macro args ...) body ...)
-       (if (module-defined? (resolve-interface '(json))
-                            (syntax->datum #'macro))
-           #'(eval-when (expand load eval)
-               ;; Re-export MACRO from (json).
-               (module-re-export! (current-module) '(macro)))
-           #'(begin
-               ;; Using Guile-JSON < 4.2.0, so provide our own MACRO.
-               (define-syntax-rule (macro args ...)
-                 body ...)
-               (eval-when (expand load eval)
-                 (module-export! (current-module) '(macro)))))))))
-
-(define-syntax-rule (define-json-reader json->record ctor spec ...)
-  "Define JSON->RECORD as a procedure that converts a JSON representation,
-read from a port, string, or hash table, into a record created by CTOR and
-following SPEC, a series of field specifications."
-  (define (json->record input)
-    (let ((table (cond ((port? input)
-                        (json->scm input))
-                       ((string? input)
-                        (json-string->scm input))
-                       ((or (null? input) (pair? input))
-                        input))))
-      (let-syntax ((extract-field (syntax-rules ()
-                                    ((_ table (field key json->value))
-                                     (json->value (assoc-ref table key)))
-                                    ((_ table (field key))
-                                     (assoc-ref table key))
-                                    ((_ table (field))
-                                     (assoc-ref table
-                                                (symbol->string 'field))))))
-        (ctor (extract-field table spec) ...)))))
-
-;; For some reason we cannot just have colliding definitions of
-;; 'define-json-mapping' (that leads to a build failure in users of this
-;; module), hence the use of 'define-as-needed'.
-(define-as-needed (define-json-mapping rtd ctor pred json->record
-                    (field getter spec ...) ...)
-  "Define RTD as a record type with the given FIELDs and GETTERs, à la SRFI-9,
-and define JSON->RECORD as a conversion from JSON to a record of this type."
-  (begin
-    (define-record-type rtd
-      (ctor field ...)
-      pred
-      (field getter) ...)
-
-    (define-json-reader json->record ctor
-      (field spec ...) ...)))
diff --git a/guix/licenses.scm b/guix/licenses.scm
index bf72a33c92..63010a7231 100644
--- a/guix/licenses.scm
+++ b/guix/licenses.scm
@@ -14,6 +14,8 @@
 ;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net>
 ;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com>
+;;; Copyright © 2020 André Batista <nandre@riseup.net>
+;;; Copyright © 2020 Helio Machado <0x2b3bfa0+guix@googlemail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -34,6 +36,7 @@
   #:use-module (srfi srfi-9)
   #:export (license? license-name license-uri license-comment
             agpl1 agpl3 agpl3+
+            apsl2
             asl1.1 asl2.0
             boost1.0
             bsd-2 bsd-3 bsd-4
@@ -47,6 +50,7 @@
             artistic2.0 clarified-artistic
             copyleft-next
             cpl1.0
+            cua-opl1.0
             edl1.0
             epl1.0
             epl2.0
@@ -115,6 +119,9 @@
 ;;; https://github.com/NixOS/nixpkgs/blob/master/lib/licenses.nix
 ;;; https://www.gnu.org/licenses/license-list
 ;;;
+;;; Please update spdx-string->license from guix/import/utils.scm
+;;; when modifying this list to avoid mismatches.
+;;;
 ;;; Code:
 
 (define agpl1
@@ -132,6 +139,11 @@
            "https://gnu.org/licenses/agpl.html"
            "https://gnu.org/licenses/why-affero-gpl.html"))
 
+(define apsl2
+  (license "APSL 2.0"
+           "https://directory.fsf.org/wiki/License:APSL-2.0"
+           "https://www.gnu.org/licenses/license-list.html#apsl2"))
+
 (define asl1.1
   (license "ASL 1.1"
            "http://directory.fsf.org/wiki/License:Apache1.1"
@@ -262,6 +274,11 @@ at URI, which may be a file:// URI pointing the package's tree."
            "http://directory.fsf.org/wiki/License:CPLv1.0"
            "https://www.gnu.org/licenses/license-list#CommonPublicLicense10"))
 
+(define cua-opl1.0
+  (license "CUA Office Public License v1.0"
+           "https://spdx.org/licenses/CUA-OPL-1.0.html"
+           "https://opensource.org/licenses/CUA-OPL-1.0"))
+
 (define edl1.0
   (license "EDL 1.0"
            "http://directory.fsf.org/wiki/License:EDLv1.0"
diff --git a/guix/lint.scm b/guix/lint.scm
index 71ce931964..311bc94cc3 100644
--- a/guix/lint.scm
+++ b/guix/lint.scm
@@ -1,7 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2014 Cyril Roelandt <tipecaml@gmail.com>
 ;;; Copyright © 2014, 2015 Eric Bavier <bavier@member.fsf.org>
-;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2015, 2016 Mathieu Lirzin <mthl@gnu.org>
 ;;; Copyright © 2016 Danny Milosavljevic <dannym+a@scratchpost.org>
 ;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com>
@@ -10,6 +10,7 @@
 ;;; Copyright © 2017, 2018, 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2018, 2019 Arun Isaac <arunisaac@systemreboot.net>
 ;;; Copyright © 2020 Chris Marusich <cmmarusich@gmail.com>
+;;; Copyright © 2020 Timothy Sample <samplet@ngyro.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -35,6 +36,8 @@
   #:use-module (guix http-client)
   #:use-module (guix packages)
   #:use-module (guix i18n)
+  #:use-module ((guix gexp)
+                #:select (local-file? local-file-absolute-file-name))
   #:use-module (guix licenses)
   #:use-module (guix records)
   #:use-module (guix grafts)
@@ -50,6 +53,7 @@
   #:use-module ((guix swh) #:hide (origin?))
   #:autoload   (guix git-download) (git-reference?
                                     git-reference-url git-reference-commit)
+  #:use-module (guix import stackage)
   #:use-module (ice-9 match)
   #:use-module (ice-9 regex)
   #:use-module (ice-9 format)
@@ -73,6 +77,7 @@
             check-inputs-should-be-native
             check-inputs-should-not-be-an-input-at-all
             check-patch-file-names
+            check-patch-headers
             check-synopsis-style
             check-derivation
             check-home-page
@@ -87,6 +92,7 @@
             check-formatting
             check-archival
             check-profile-collisions
+            check-haskell-stackage
 
             lint-warning
             lint-warning?
@@ -139,7 +145,7 @@
    message-text
    message-data
    (or location
-       (package-field-location package field)
+       (and field (package-field-location package field))
        (package-location package))))
 
 (define-syntax make-warning
@@ -663,17 +669,11 @@ from ~a")
 (define (check-patch-file-names package)
   "Emit a warning if the patches requires by PACKAGE are badly named or if the
 patch could not be found."
-  (guard (c ((message-condition? c)     ;raised by 'search-patch'
-             (list
-              ;; Use %make-warning, as condition-mesasge is already
-              ;; translated.
-              (%make-warning package (condition-message c)
-                             #:field 'patch-file-names)))
-            ((formatted-message? c)
+  (guard (c ((formatted-message? c)               ;raised by 'search-patch'
              (list (%make-warning package
-                                  (apply format #f
-                                         (G_ (formatted-message-string c))
-                                         (formatted-message-arguments c))))))
+                                  (formatted-message-string c)
+                                  (formatted-message-arguments c)
+                                  #:field 'source))))
     (define patches
       (match (package-source package)
         ((? origin? origin) (origin-patches origin))
@@ -718,6 +718,54 @@ patch could not be found."
                      (_ #f))
                    patches)))))
 
+(define (check-patch-headers package)
+  "Check that PACKAGE's patches start with a comment.  Return a list of
+warnings."
+  (define (blank? str)
+    (string-every char-set:blank str))
+
+  (define (patch-header-warnings patch)
+    (call-with-input-file patch
+      (lambda (port)
+        ;; Read from PORT until a non-blank line is found or EOF is reached.
+        (let loop ()
+          (let ((line (read-line port)))
+            (cond ((eof-object? line)
+                   (list (make-warning package
+                                       (G_ "~a: empty patch")
+                                       (list (basename patch))
+                                       #:field 'source)))
+                  ((blank? line)
+                   (loop))
+                  ((or (string-prefix? "--- " line)
+                       (string-prefix? "+++ " line))
+                   (list (make-warning package
+                                       (G_ "~a: patch lacks comment and \
+upstream status")
+                                       (list (basename patch))
+                                       #:field 'source)))
+                  (else
+                   '())))))))
+
+  (guard (c ((formatted-message? c)               ;raised by 'search-patch'
+             (list (%make-warning package
+                                  (formatted-message-string c)
+                                  (formatted-message-arguments c)
+                                  #:field 'source))))
+   (let ((patches (if (origin? (package-source package))
+                      (origin-patches (package-source package))
+                      '())))
+     (append-map (lambda (patch)
+                   ;; Dismiss PATCH if it's an origin or similar.
+                   (cond ((string? patch)
+                          (patch-header-warnings patch))
+                         ((local-file? patch)
+                          (patch-header-warnings
+                           (local-file-absolute-file-name patch)))
+                         (else
+                          '())))
+                 patches))))
+
 (define (escape-quotes str)
   "Replace any quote character in STR by an escaped quote character."
   (list->string
@@ -1084,7 +1132,7 @@ or HTTP errors.  This allows network-less operation and makes problems with
 the NIST server non-fatal."
   (with-networking-fail-safe (G_ "while retrieving CVE vulnerabilities")
                              '()
-                             (current-vulnerabilities)))
+                             (current-vulnerabilities #:timeout 4)))
 
 (define package-vulnerabilities
   (let ((lookup (delay (vulnerabilities->lookup-proc
@@ -1135,7 +1183,7 @@ vulnerability records for PACKAGE by calling PACKAGE-VULNERABILITIES."
           (format #f (G_ "while retrieving upstream info for '~a'")
                   (package-name package))
           #f
-          (package-latest-release* package (force %updaters)))
+          (package-latest-release* package))
     ((? upstream-source? source)
      (if (version>? (upstream-source-version source)
                     (package-version package))
@@ -1240,6 +1288,25 @@ Heritage")
               '()
               (apply throw key args))))))))
 
+(define (check-haskell-stackage package)
+  "Check whether PACKAGE is a Haskell package ahead of the current
+Stackage LTS version."
+  (match (with-networking-fail-safe
+          (format #f (G_ "while retrieving upstream info for '~a'")
+                  (package-name package))
+          #f
+          (package-latest-release package (list %stackage-updater)))
+    ((? upstream-source? source)
+     (if (version>? (package-version package)
+                    (upstream-source-version source))
+         (list
+          (make-warning package
+                        (G_ "ahead of Stackage LTS version ~a")
+                        (list (upstream-source-version source))
+                        #:field 'version))
+         '()))
+    (#f '())))
+
 
 ;;;
 ;;; Source code formatting.
@@ -1355,12 +1422,20 @@ them for PACKAGE."
   "Check the formatting of the source code of PACKAGE."
   (let ((location (package-location package)))
     (if location
-        (and=> (search-path %load-path (location-file location))
-               (lambda (file)
-                 ;; Report issues starting from the line before the 'package'
-                 ;; form, which usually contains the 'define' form.
-                 (report-formatting-issues package file
-                                           (- (location-line location) 1))))
+        ;; Report issues starting from the line before the 'package'
+        ;; form, which usually contains the 'define' form.
+        (let ((line (- (location-line location) 1)))
+          (match (search-path %load-path (location-file location))
+            ((? string? file)
+             (report-formatting-issues package file line))
+            (#f
+             ;; It could be that LOCATION lists a "true" relative file
+             ;; name--i.e., not relative to an element of %LOAD-PATH.
+             (let ((file (location-file location)))
+               (if (file-exists? file)
+                   (report-formatting-issues package file line)
+                   (list (make-warning package
+                                       (G_ "source file not found"))))))))
         '())))
 
 
@@ -1416,6 +1491,10 @@ or a list thereof")
     (description "Validate file names and availability of patches")
     (check       check-patch-file-names))
    (lint-checker
+    (name        'patch-headers)
+    (description "Validate patch headers")
+    (check       check-patch-headers))
+   (lint-checker
      (name        'formatting)
      (description "Look for formatting issues in the source")
      (check       check-formatting))))
@@ -1454,7 +1533,11 @@ or a list thereof")
    (lint-checker
      (name        'archival)
      (description "Ensure source code archival on Software Heritage")
-     (check       check-archival))))
+     (check       check-archival))
+   (lint-checker
+     (name        'haskell-stackage)
+     (description "Ensure Haskell packages use Stackage LTS versions")
+     (check       check-haskell-stackage))))
 
 (define %all-checkers
   (append %local-checkers
diff --git a/guix/lzlib.scm b/guix/lzlib.scm
deleted file mode 100644
index 2fc326ba34..0000000000
--- a/guix/lzlib.scm
+++ /dev/null
@@ -1,709 +0,0 @@
-;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
-;;; Copyright © 2019, 2020 Ludovic Courtès <ludo@gnu.org>
-;;;
-;;; This file is part of GNU Guix.
-;;;
-;;; GNU Guix is free software; you can redistribute it and/or modify it
-;;; under the terms of the GNU General Public License as published by
-;;; the Free Software Foundation; either version 3 of the License, or (at
-;;; your option) any later version.
-;;;
-;;; GNU Guix is distributed in the hope that it will be useful, but
-;;; WITHOUT ANY WARRANTY; without even the implied warranty of
-;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-;;; GNU General Public License for more details.
-;;;
-;;; You should have received a copy of the GNU General Public License
-;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
-
-(define-module (guix lzlib)
-  #:use-module (rnrs bytevectors)
-  #:use-module (rnrs arithmetic bitwise)
-  #:use-module (ice-9 binary-ports)
-  #:use-module (ice-9 match)
-  #:use-module (system foreign)
-  #:use-module (guix config)
-  #:use-module (srfi srfi-11)
-  #:export (lzlib-available?
-            make-lzip-input-port
-            make-lzip-output-port
-            make-lzip-input-port/compressed
-            call-with-lzip-input-port
-            call-with-lzip-output-port
-            %default-member-length-limit
-            %default-compression-level
-            dictionary-size+match-length-limit))
-
-;;; Commentary:
-;;;
-;;; Bindings to the lzlib / liblz API.  Some convenience functions are also
-;;; provided (see the export).
-;;;
-;;; While the bindings are complete, the convenience functions only support
-;;; single member archives.  To decompress single member archives, we loop
-;;; until lz-decompress-read returns 0.  This is simpler.  To support multiple
-;;; members properly, we need (among others) to call lz-decompress-finish and
-;;; loop over lz-decompress-read until lz-decompress-finished? returns #t.
-;;; Otherwise a multi-member archive starting with an empty member would only
-;;; decompress the empty member and stop there, resulting in truncated output.
-
-;;; Code:
-
-(define %lzlib
-  ;; File name of lzlib's shared library.  When updating via 'guix pull',
-  ;; '%liblz' might be undefined so protect against it.
-  (delay (dynamic-link (if (defined? '%liblz)
-                           %liblz
-                           "liblz"))))
-
-(define (lzlib-available?)
-  "Return true if lzlib is available, #f otherwise."
-  (false-if-exception (force %lzlib)))
-
-(define (lzlib-procedure ret name parameters)
-  "Return a procedure corresponding to C function NAME in liblz, or #f if
-either lzlib or the function could not be found."
-  (match (false-if-exception (dynamic-func name (force %lzlib)))
-    ((? pointer? ptr)
-     (pointer->procedure ret ptr parameters))
-    (#f
-     #f)))
-
-(define-wrapped-pointer-type <lz-decoder>
-  ;; Scheme counterpart of the 'LZ_Decoder' opaque type.
-  lz-decoder?
-  pointer->lz-decoder
-  lz-decoder->pointer
-  (lambda (obj port)
-    (format port "#<lz-decoder ~a>"
-            (number->string (object-address obj) 16))))
-
-(define-wrapped-pointer-type <lz-encoder>
-  ;; Scheme counterpart of the 'LZ_Encoder' opaque type.
-  lz-encoder?
-  pointer->lz-encoder
-  lz-encoder->pointer
-  (lambda (obj port)
-    (format port "#<lz-encoder ~a>"
-            (number->string (object-address obj) 16))))
-
-;; From lzlib.h
-(define %error-number-ok 0)
-(define %error-number-bad-argument 1)
-(define %error-number-mem-error 2)
-(define %error-number-sequence-error 3)
-(define %error-number-header-error 4)
-(define %error-number-unexpected-eof 5)
-(define %error-number-data-error 6)
-(define %error-number-library-error 7)
-
-
-;; Compression bindings.
-
-(define lz-compress-open
-  (let ((proc (lzlib-procedure '* "LZ_compress_open" (list int int uint64)))
-        ;; member-size is an "unsigned long long", and the C standard guarantees
-        ;; a minimum range of 0..2^64-1.
-        (unlimited-size (- (expt 2 64) 1)))
-    (lambda* (dictionary-size match-length-limit #:optional (member-size unlimited-size))
-      "Initialize the internal stream state for compression and returns a
-pointer that can only be used as the encoder argument for the other
-lz-compress functions, or a null pointer if the encoder could not be
-allocated.
-
-See the manual: (lzlib) Compression functions."
-      (let ((encoder-ptr (proc dictionary-size match-length-limit member-size)))
-        (if (not (= (lz-compress-error encoder-ptr) -1))
-            (pointer->lz-encoder encoder-ptr)
-            (throw 'lzlib-error 'lz-compress-open))))))
-
-(define lz-compress-close
-  (let ((proc (lzlib-procedure int "LZ_compress_close" '(*))))
-    (lambda (encoder)
-      "Close encoder.  ENCODER can no longer be used as an argument to any
-lz-compress function. "
-      (let ((ret (proc (lz-encoder->pointer encoder))))
-        (if (= ret -1)
-            (throw 'lzlib-error 'lz-compress-close ret)
-            ret)))))
-
-(define lz-compress-finish
-  (let ((proc (lzlib-procedure int "LZ_compress_finish" '(*))))
-    (lambda (encoder)
-      "Tell that all the data for this member have already been written (with
-the `lz-compress-write' function).  It is safe to call `lz-compress-finish' as
-many times as needed.  After all the produced compressed data have been read
-with `lz-compress-read' and `lz-compress-member-finished?' returns #t, a new
-member can be started with 'lz-compress-restart-member'."
-      (let ((ret (proc (lz-encoder->pointer encoder))))
-        (if (= ret -1)
-            (throw 'lzlib-error 'lz-compress-finish (lz-compress-error encoder))
-            ret)))))
-
-(define lz-compress-restart-member
-  (let ((proc (lzlib-procedure int "LZ_compress_restart_member" (list '* uint64))))
-    (lambda (encoder member-size)
-      "Start a new member in a multimember data stream.
-Call this function only after `lz-compress-member-finished?' indicates that the
-current member has been fully read (with the `lz-compress-read' function)."
-      (let ((ret (proc (lz-encoder->pointer encoder) member-size)))
-        (if (= ret -1)
-            (throw 'lzlib-error 'lz-compress-restart-member
-                   (lz-compress-error encoder))
-            ret)))))
-
-(define lz-compress-sync-flush
-  (let ((proc (lzlib-procedure int "LZ_compress_sync_flush" (list '*))))
-    (lambda (encoder)
-      "Make available to `lz-compress-read' all the data already written with
-the `LZ-compress-write' function.  First call `lz-compress-sync-flush'.  Then
-call 'lz-compress-read' until it returns 0.
-
-Repeated use of `LZ-compress-sync-flush' may degrade compression ratio,
-so use it only when needed. "
-      (let ((ret (proc (lz-encoder->pointer encoder))))
-        (if (= ret -1)
-            (throw 'lzlib-error 'lz-compress-sync-flush
-                   (lz-compress-error encoder))
-            ret)))))
-
-(define lz-compress-read
-  (let ((proc (lzlib-procedure int "LZ_compress_read" (list '* '* int))))
-    (lambda* (encoder lzfile-bv #:optional (start 0) (count (bytevector-length lzfile-bv)))
-      "Read up to COUNT bytes from the encoder stream, storing the results in LZFILE-BV.
-Return the number of uncompressed bytes written, a positive integer."
-      (let ((ret (proc (lz-encoder->pointer encoder)
-                       (bytevector->pointer lzfile-bv start)
-                       count)))
-        (if (= ret -1)
-            (throw 'lzlib-error 'lz-compress-read (lz-compress-error encoder))
-            ret)))))
-
-(define lz-compress-write
-  (let ((proc (lzlib-procedure int "LZ_compress_write" (list '* '* int))))
-    (lambda* (encoder bv #:optional (start 0) (count (bytevector-length bv)))
-      "Write up to COUNT bytes from BV to the encoder stream.  Return the
-number of uncompressed bytes written, a strictly positive integer."
-      (let ((ret (proc (lz-encoder->pointer encoder)
-                       (bytevector->pointer bv start)
-                       count)))
-        (if (< ret 0)
-            (throw 'lzlib-error 'lz-compress-write (lz-compress-error encoder))
-            ret)))))
-
-(define lz-compress-write-size
-  (let ((proc (lzlib-procedure int "LZ_compress_write_size" '(*))))
-    (lambda (encoder)
-      "The maximum number of bytes that can be immediately written through the
-`lz-compress-write' function.
-
-It is guaranteed that an immediate call to `lz-compress-write' will accept a
-SIZE up to the returned number of bytes. "
-      (let ((ret (proc (lz-encoder->pointer encoder))))
-        (if (= ret -1)
-            (throw 'lzlib-error 'lz-compress-write-size (lz-compress-error encoder))
-            ret)))))
-
-(define lz-compress-error
-  (let ((proc (lzlib-procedure int "LZ_compress_errno" '(*))))
-    (lambda (encoder)
-      "ENCODER can be a Scheme object or a pointer."
-      (let* ((error-number (proc (if (lz-encoder? encoder)
-                                     (lz-encoder->pointer encoder)
-                                     encoder))))
-        error-number))))
-
-(define lz-compress-finished?
-  (let ((proc (lzlib-procedure int "LZ_compress_finished" '(*))))
-    (lambda (encoder)
-      "Return #t if all the data have been read and `lz-compress-close' can
-be safely called. Otherwise return #f."
-      (let ((ret (proc (lz-encoder->pointer encoder))))
-        (match ret
-          (1 #t)
-          (0 #f)
-          (_ (throw 'lzlib-error 'lz-compress-finished? (lz-compress-error encoder))))))))
-
-(define lz-compress-member-finished?
-  (let ((proc (lzlib-procedure int "LZ_compress_member_finished" '(*))))
-    (lambda (encoder)
-      "Return #t if the current member, in a multimember data stream, has
-been fully read and 'lz-compress-restart-member' can be safely called.
-Otherwise return #f."
-      (let ((ret (proc (lz-encoder->pointer encoder))))
-        (match ret
-          (1 #t)
-          (0 #f)
-          (_ (throw 'lzlib-error 'lz-compress-member-finished? (lz-compress-error encoder))))))))
-
-(define lz-compress-data-position
-  (let ((proc (lzlib-procedure uint64 "LZ_compress_data_position" '(*))))
-    (lambda (encoder)
-      "Return the number of input bytes already compressed in the current
-member."
-      (let ((ret (proc (lz-encoder->pointer encoder))))
-        (if (= ret -1)
-            (throw 'lzlib-error 'lz-compress-data-position
-                   (lz-compress-error encoder))
-            ret)))))
-
-(define lz-compress-member-position
-  (let ((proc (lzlib-procedure uint64 "LZ_compress_member_position" '(*))))
-    (lambda (encoder)
-      "Return the number of compressed bytes already produced, but perhaps
-not yet read, in the current member."
-      (let ((ret (proc (lz-encoder->pointer encoder))))
-        (if (= ret -1)
-            (throw 'lzlib-error 'lz-compress-member-position
-                   (lz-compress-error encoder))
-            ret)))))
-
-(define lz-compress-total-in-size
-  (let ((proc (lzlib-procedure uint64 "LZ_compress_total_in_size" '(*))))
-    (lambda (encoder)
-      "Return the total number of input bytes already compressed."
-      (let ((ret (proc (lz-encoder->pointer encoder))))
-        (if (= ret -1)
-            (throw 'lzlib-error 'lz-compress-total-in-size
-                   (lz-compress-error encoder))
-            ret)))))
-
-(define lz-compress-total-out-size
-  (let ((proc (lzlib-procedure uint64 "LZ_compress_total_out_size" '(*))))
-    (lambda (encoder)
-      "Return the total number of compressed bytes already produced, but
-perhaps not yet read."
-      (let ((ret (proc (lz-encoder->pointer encoder))))
-        (if (= ret -1)
-            (throw 'lzlib-error 'lz-compress-total-out-size
-                   (lz-compress-error encoder))
-            ret)))))
-
-
-;; Decompression bindings.
-
-(define lz-decompress-open
-  (let ((proc (lzlib-procedure '* "LZ_decompress_open" '())))
-    (lambda ()
-      "Initializes the internal stream state for decompression and returns a
-pointer that can only be used as the decoder argument for the other
-lz-decompress functions, or a null pointer if the decoder could not be
-allocated.
-
-See the manual: (lzlib) Decompression functions."
-      (let ((decoder-ptr (proc)))
-        (if (not (= (lz-decompress-error decoder-ptr) -1))
-            (pointer->lz-decoder decoder-ptr)
-            (throw 'lzlib-error 'lz-decompress-open))))))
-
-(define lz-decompress-close
-  (let ((proc (lzlib-procedure int "LZ_decompress_close" '(*))))
-    (lambda (decoder)
-      "Close decoder.  DECODER can no longer be used as an argument to any
-lz-decompress function. "
-      (let ((ret (proc (lz-decoder->pointer decoder))))
-        (if (= ret -1)
-            (throw 'lzlib-error 'lz-decompress-close ret)
-            ret)))))
-
-(define lz-decompress-finish
-  (let ((proc (lzlib-procedure int "LZ_decompress_finish" '(*))))
-    (lambda (decoder)
-      "Tell that all the data for this stream have already been written (with
-the `lz-decompress-write' function).  It is safe to call
-`lz-decompress-finish' as many times as needed."
-      (let ((ret (proc (lz-decoder->pointer decoder))))
-        (if (= ret -1)
-            (throw 'lzlib-error 'lz-decompress-finish (lz-decompress-error decoder))
-            ret)))))
-
-(define lz-decompress-reset
-  (let ((proc (lzlib-procedure int "LZ_decompress_reset" '(*))))
-    (lambda (decoder)
-      "Reset the internal state of DECODER as it was just after opening it
-with the `lz-decompress-open' function.  Data stored in the internal buffers
-is discarded.  Position counters are set to 0."
-      (let ((ret (proc (lz-decoder->pointer decoder))))
-        (if (= ret -1)
-            (throw 'lzlib-error 'lz-decompress-reset
-                   (lz-decompress-error decoder))
-            ret)))))
-
-(define lz-decompress-sync-to-member
-  (let ((proc (lzlib-procedure int "LZ_decompress_sync_to_member" '(*))))
-    (lambda (decoder)
-      "Reset the error state of DECODER and enters a search state that lasts
-until a new member header (or the end of the stream) is found.  After a
-successful call to `lz-decompress-sync-to-member', data written with
-`lz-decompress-write' will be consumed and 'lz-decompress-read' will return 0
-until a header is found.
-
-This function is useful to discard any data preceding the first member, or to
-discard the rest of the current member, for example in case of a data
-error.  If the decoder is already at the beginning of a member, this function
-does nothing."
-      (let ((ret (proc (lz-decoder->pointer decoder))))
-        (if (= ret -1)
-            (throw 'lzlib-error 'lz-decompress-sync-to-member
-                   (lz-decompress-error decoder))
-            ret)))))
-
-(define lz-decompress-read
-  (let ((proc (lzlib-procedure int "LZ_decompress_read" (list '* '* int))))
-    (lambda* (decoder file-bv #:optional (start 0) (count (bytevector-length file-bv)))
-      "Read up to COUNT bytes from the decoder stream, storing the results in FILE-BV.
-Return the number of uncompressed bytes written, a non-negative positive integer."
-      (let ((ret (proc (lz-decoder->pointer decoder)
-                       (bytevector->pointer file-bv start)
-                       count)))
-        (if (< ret 0)
-            (throw 'lzlib-error 'lz-decompress-read (lz-decompress-error decoder))
-            ret)))))
-
-(define lz-decompress-write
-  (let ((proc (lzlib-procedure int "LZ_decompress_write" (list '* '* int))))
-    (lambda* (decoder bv #:optional (start 0) (count (bytevector-length bv)))
-      "Write up to COUNT bytes from BV to the decoder stream.  Return the
-number of uncompressed bytes written, a non-negative integer."
-      (let ((ret (proc (lz-decoder->pointer decoder)
-                       (bytevector->pointer bv start)
-                       count)))
-        (if (< ret 0)
-            (throw 'lzlib-error 'lz-decompress-write (lz-decompress-error decoder))
-            ret)))))
-
-(define lz-decompress-write-size
-  (let ((proc (lzlib-procedure int "LZ_decompress_write_size" '(*))))
-    (lambda (decoder)
-      "Return the maximum number of bytes that can be immediately written
-through the `lz-decompress-write' function.
-
-It is guaranteed that an immediate call to `lz-decompress-write' will accept a
-SIZE up to the returned number of bytes. "
-      (let ((ret (proc (lz-decoder->pointer decoder))))
-        (if (= ret -1)
-            (throw 'lzlib-error 'lz-decompress-write-size (lz-decompress-error decoder))
-            ret)))))
-
-(define lz-decompress-error
-  (let ((proc (lzlib-procedure int "LZ_decompress_errno" '(*))))
-    (lambda (decoder)
-      "DECODER can be a Scheme object or a pointer."
-      (let* ((error-number (proc (if (lz-decoder? decoder)
-                                     (lz-decoder->pointer decoder)
-                                     decoder))))
-        error-number))))
-
-(define lz-decompress-finished?
-  (let ((proc (lzlib-procedure int "LZ_decompress_finished" '(*))))
-    (lambda (decoder)
-      "Return #t if all the data have been read and `lz-decompress-close' can
-be safely called.  Otherwise return #f."
-      (let ((ret (proc (lz-decoder->pointer decoder))))
-        (match ret
-          (1 #t)
-          (0 #f)
-          (_ (throw 'lzlib-error 'lz-decompress-finished? (lz-decompress-error decoder))))))))
-
-(define lz-decompress-member-finished?
-  (let ((proc (lzlib-procedure int "LZ_decompress_member_finished" '(*))))
-    (lambda (decoder)
-      "Return #t if the current member, in a multimember data stream, has
-been fully read and `lz-decompress-restart-member' can be safely called.
-Otherwise return #f."
-      (let ((ret (proc (lz-decoder->pointer decoder))))
-        (match ret
-          (1 #t)
-          (0 #f)
-          (_ (throw 'lzlib-error 'lz-decompress-member-finished? (lz-decompress-error decoder))))))))
-
-(define lz-decompress-member-version
-  (let ((proc (lzlib-procedure int "LZ_decompress_member_version" '(*))))
-    (lambda (decoder)
-      (let ((ret (proc (lz-decoder->pointer decoder))))
-        "Return the version of current member from member header."
-        (if (= ret -1)
-            (throw 'lzlib-error 'lz-decompress-data-position
-                   (lz-decompress-error decoder))
-            ret)))))
-
-(define lz-decompress-dictionary-size
-  (let ((proc (lzlib-procedure int "LZ_decompress_dictionary_size" '(*))))
-    (lambda (decoder)
-      (let ((ret (proc (lz-decoder->pointer decoder))))
-        "Return the dictionary size of current member from member header."
-        (if (= ret -1)
-            (throw 'lzlib-error 'lz-decompress-member-position
-                   (lz-decompress-error decoder))
-            ret)))))
-
-(define lz-decompress-data-crc
-  (let ((proc (lzlib-procedure unsigned-int "LZ_decompress_data_crc" '(*))))
-    (lambda (decoder)
-      (let ((ret (proc (lz-decoder->pointer decoder))))
-        "Return the 32 bit Cyclic Redundancy Check of the data decompressed
-from the current member.  The returned value is valid only when
-`lz-decompress-member-finished' returns #t. "
-        (if (= ret -1)
-            (throw 'lzlib-error 'lz-decompress-member-position
-                   (lz-decompress-error decoder))
-            ret)))))
-
-(define lz-decompress-data-position
-  (let ((proc (lzlib-procedure uint64 "LZ_decompress_data_position" '(*))))
-    (lambda (decoder)
-      "Return the number of decompressed bytes already produced, but perhaps
-not yet read, in the current member."
-      (let ((ret (proc (lz-decoder->pointer decoder))))
-        (if (= ret -1)
-            (throw 'lzlib-error 'lz-decompress-data-position
-                   (lz-decompress-error decoder))
-            ret)))))
-
-(define lz-decompress-member-position
-  (let ((proc (lzlib-procedure uint64 "LZ_decompress_member_position" '(*))))
-    (lambda (decoder)
-      "Return the number of input bytes already decompressed in the current
-member."
-      (let ((ret (proc (lz-decoder->pointer decoder))))
-        (if (= ret -1)
-            (throw 'lzlib-error 'lz-decompress-member-position
-                   (lz-decompress-error decoder))
-            ret)))))
-
-(define lz-decompress-total-in-size
-  (let ((proc (lzlib-procedure uint64 "LZ_decompress_total_in_size" '(*))))
-    (lambda (decoder)
-      (let ((ret (proc (lz-decoder->pointer decoder))))
-        "Return the total number of input bytes already compressed."
-        (if (= ret -1)
-            (throw 'lzlib-error 'lz-decompress-total-in-size
-                   (lz-decompress-error decoder))
-            ret)))))
-
-(define lz-decompress-total-out-size
-  (let ((proc (lzlib-procedure uint64 "LZ_decompress_total_out_size" '(*))))
-    (lambda (decoder)
-      (let ((ret (proc (lz-decoder->pointer decoder))))
-        "Return the total number of compressed bytes already produced, but
-perhaps not yet read."
-        (if (= ret -1)
-            (throw 'lzlib-error 'lz-decompress-total-out-size
-                   (lz-decompress-error decoder))
-            ret)))))
-
-
-;; High level functions.
-
-(define* (lzread! decoder port bv
-                  #:optional (start 0) (count (bytevector-length bv)))
-  "Read up to COUNT bytes from PORT into BV at offset START.  Return the
-number of uncompressed bytes actually read; it is zero if COUNT is zero or if
-the end-of-stream has been reached."
-  (define (feed-decoder! decoder)
-    ;; Feed DECODER with data read from PORT.
-    (match (get-bytevector-n port (lz-decompress-write-size decoder))
-      ((? eof-object? eof) eof)
-      (bv (lz-decompress-write decoder bv))))
-
-  (let loop ((read 0)
-             (start start))
-    (cond ((< read count)
-           (match (lz-decompress-read decoder bv start (- count read))
-             (0 (cond ((lz-decompress-finished? decoder)
-                       read)
-                      ((eof-object? (feed-decoder! decoder))
-                       (lz-decompress-finish decoder)
-                       (loop read start))
-                      (else                       ;read again
-                       (loop read start))))
-             (n (loop (+ read n) (+ start n)))))
-          (else
-           read))))
-
-(define (lzwrite! encoder source source-offset source-count
-                  target target-offset target-count)
-  "Write up to SOURCE-COUNT bytes from SOURCE to ENCODER, and read up to
-TARGET-COUNT bytes into TARGET at TARGET-OFFSET.  Return two values: the
-number of bytes read from SOURCE, and the number of bytes written to TARGET,
-possibly zero."
-  (define read
-    (if (> (lz-compress-write-size encoder) 0)
-        (match (lz-compress-write encoder source source-offset source-count)
-          (0 (lz-compress-finish encoder) 0)
-          (n n))
-        0))
-
-  (define written
-    (lz-compress-read encoder target target-offset target-count))
-
-  (values read written))
-
-(define* (lzwrite encoder bv lz-port
-                  #:optional (start 0) (count (bytevector-length bv)))
-  "Write up to COUNT bytes from BV at offset START into LZ-PORT.  Return
-the number of uncompressed bytes written, a non-negative integer."
-  (let ((written 0)
-        (read 0))
-    (while (and (< 0 (lz-compress-write-size encoder))
-                (< written count))
-      (set! written (+ written
-                       (lz-compress-write encoder bv (+ start written) (- count written)))))
-    (when (= written 0)
-      (lz-compress-finish encoder))
-    (let ((lz-bv (make-bytevector written)))
-      (let loop ((rd 0))
-        (set! rd (lz-compress-read encoder lz-bv 0 (bytevector-length lz-bv)))
-        (put-bytevector lz-port lz-bv 0 rd)
-        (set! read (+ read rd))
-        (unless (= rd 0)
-          (loop rd))))
-    ;; `written' is the total byte count of uncompressed data.
-    written))
-
-
-;;;
-;;; Port interface.
-;;;
-
-;; Alist of (levels (dictionary-size match-length-limit)).  0 is the fastest.
-;; See bbexample.c in lzlib's source.
-(define %compression-levels
-  `((0 65535 16)
-    (1 ,(bitwise-arithmetic-shift-left 1 20) 5)
-    (2 ,(bitwise-arithmetic-shift-left 3 19) 6)
-    (3 ,(bitwise-arithmetic-shift-left 1 21) 8)
-    (4 ,(bitwise-arithmetic-shift-left 3 20) 12)
-    (5 ,(bitwise-arithmetic-shift-left 1 22) 20)
-    (6 ,(bitwise-arithmetic-shift-left 1 23) 36)
-    (7 ,(bitwise-arithmetic-shift-left 1 24) 68)
-    (8 ,(bitwise-arithmetic-shift-left 3 23) 132)
-    (9 ,(bitwise-arithmetic-shift-left 1 25) 273)))
-
-(define %default-compression-level
-  6)
-
-(define (dictionary-size+match-length-limit level)
-  "Return two values: the dictionary size for LEVEL, and its match-length
-limit.  LEVEL must be a compression level, an integer between 0 and 9."
-  (match (assv-ref %compression-levels level)
-    ((dictionary-size match-length-limit)
-     (values dictionary-size match-length-limit))))
-
-(define* (make-lzip-input-port port)
-  "Return an input port that decompresses data read from PORT, a file port.
-PORT is automatically closed when the resulting port is closed."
-  (define decoder (lz-decompress-open))
-
-  (define (read! bv start count)
-    (lzread! decoder port bv start count))
-
-  (make-custom-binary-input-port "lzip-input" read! #f #f
-                                 (lambda ()
-                                   (lz-decompress-close decoder)
-                                   (close-port port))))
-
-(define* (make-lzip-output-port port
-                                #:key
-                                (level %default-compression-level))
-  "Return an output port that compresses data at the given LEVEL, using PORT,
-a file port, as its sink.  PORT is automatically closed when the resulting
-port is closed."
-  (define encoder
-    (call-with-values (lambda () (dictionary-size+match-length-limit level))
-      lz-compress-open))
-
-  (define (write! bv start count)
-    (lzwrite encoder bv port start count))
-
-  (make-custom-binary-output-port "lzip-output" write! #f #f
-                                  (lambda ()
-                                    (lz-compress-finish encoder)
-                                    ;; "lz-read" the trailing metadata added by `lz-compress-finish'.
-                                    (let ((lz-bv (make-bytevector (* 64 1024))))
-                                      (let loop ((rd 0))
-                                        (set! rd (lz-compress-read encoder lz-bv 0 (bytevector-length lz-bv)))
-                                        (put-bytevector port lz-bv 0 rd)
-                                        (unless (= rd 0)
-                                          (loop rd))))
-                                    (lz-compress-close encoder)
-                                    (close-port port))))
-
-(define* (make-lzip-input-port/compressed port
-                                          #:key
-                                          (level %default-compression-level))
-  "Return an input port that compresses data read from PORT, with the given LEVEL.
-PORT is automatically closed when the resulting port is closed."
-  (define encoder
-    (call-with-values (lambda () (dictionary-size+match-length-limit level))
-      lz-compress-open))
-
-  (define input-buffer (make-bytevector 8192))
-  (define input-len 0)
-  (define input-offset 0)
-
-  (define input-eof? #f)
-
-  (define (read! bv start count)
-    (cond
-     (input-eof?
-      (match (lz-compress-read encoder bv start count)
-        (0 (if (lz-compress-finished? encoder)
-               0
-               (read! bv start count)))
-        (n n)))
-     ((= input-offset input-len)
-      (match (get-bytevector-n! port input-buffer 0
-                                (bytevector-length input-buffer))
-        ((? eof-object?)
-         (set! input-eof? #t)
-         (lz-compress-finish encoder))
-        (count
-         (set! input-offset 0)
-         (set! input-len count)))
-      (read! bv start count))
-     (else
-      (let-values (((read written)
-                    (lzwrite! encoder
-                              input-buffer input-offset
-                              (- input-len input-offset)
-                              bv start count)))
-        (set! input-offset (+ input-offset read))
-
-        ;; Make sure we don't return zero except on EOF.
-        (if (= 0 written)
-            (read! bv start count)
-            written)))))
-
-  (make-custom-binary-input-port "lzip-input/compressed"
-                                 read! #f #f
-                                 (lambda ()
-                                   (close-port port))))
-
-(define* (call-with-lzip-input-port port proc)
-  "Call PROC with a port that wraps PORT and decompresses data read from it.
-PORT is closed upon completion."
-  (let ((lzip (make-lzip-input-port port)))
-    (dynamic-wind
-      (const #t)
-      (lambda ()
-        (proc lzip))
-      (lambda ()
-        (close-port lzip)))))
-
-(define* (call-with-lzip-output-port port proc
-                                     #:key
-                                     (level %default-compression-level))
-  "Call PROC with an output port that wraps PORT and compresses data.  PORT is
-close upon completion."
-  (let ((lzip (make-lzip-output-port port
-                                     #:level level)))
-    (dynamic-wind
-      (const #t)
-      (lambda ()
-        (proc lzip))
-      (lambda ()
-        (close-port lzip)))))
-
-;;; lzlib.scm ends here
diff --git a/guix/man-db.scm b/guix/man-db.scm
index 4cef874f8b..a6528e4431 100644
--- a/guix/man-db.scm
+++ b/guix/man-db.scm
@@ -17,7 +17,7 @@
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (guix man-db)
-  #:use-module (guix zlib)
+  #:use-module (zlib)
   #:use-module ((guix build utils) #:select (find-files))
   #:use-module (gdbm)                             ;gdbm-ffi
   #:use-module (srfi srfi-9)
diff --git a/guix/modules.scm b/guix/modules.scm
index 1a6fafe35b..61bc8e1978 100644
--- a/guix/modules.scm
+++ b/guix/modules.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2016, 2017, 2018, 2019, 2021 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -77,7 +77,7 @@ CLAUSES."
       ((#:autoload module _ rest ...)
        (loop rest (cons module result)))
       (((or #:export #:re-export #:export-syntax #:re-export-syntax
-            #:replace #:version)
+            #:re-export-and-replace #:replace #:version)
         _ rest ...)
        (loop rest result))
       (((or #:pure #:no-backtrace) rest ...)
diff --git a/guix/monads.scm b/guix/monads.scm
index 6924471345..6ae616aca9 100644
--- a/guix/monads.scm
+++ b/guix/monads.scm
@@ -274,23 +274,12 @@ more optimizations."
                    (_
                     #'generic-name))))))))))
 
-(define-syntax-rule (define-syntax-parameter-once name proc)
-  ;; Like 'define-syntax-parameter' but ensure the top-level binding for NAME
-  ;; does not get redefined.  This works around a race condition in a
-  ;; multi-threaded context with Guile <= 2.2.4: <https://bugs.gnu.org/27476>.
-  (eval-when (load eval expand compile)
-    (define name
-      (if (module-locally-bound? (current-module) 'name)
-          (module-ref (current-module) 'name)
-          (make-syntax-transformer 'name 'syntax-parameter
-                                   (list proc))))))
-
-(define-syntax-parameter-once >>=
+(define-syntax-parameter >>=
   ;; The name 'bind' is already taken, so we choose this (obscure) symbol.
   (lambda (s)
     (syntax-violation '>>= ">>= (bind) used outside of 'with-monad'" s)))
 
-(define-syntax-parameter-once return
+(define-syntax-parameter return
   (lambda (s)
     (syntax-violation 'return "return used outside of 'with-monad'" s)))
 
diff --git a/guix/nar.scm b/guix/nar.scm
index 6bb2ea5b96..a817b56007 100644
--- a/guix/nar.scm
+++ b/guix/nar.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -27,6 +27,7 @@
   ;; (guix store) since this is "daemon-side" code.
   #:use-module (guix store)
   #:use-module (guix store database)
+  #:use-module ((guix store deduplication) #:select (dump-file/deduplicate))
   #:use-module ((guix build store-copy) #:select (store-info))
 
   #:use-module (guix i18n)
@@ -114,8 +115,8 @@ held."
           ;; Install the new TARGET.
           (rename-file source target)
 
-          ;; Register TARGET.  As a side effect, it resets the timestamps of all
-          ;; its files, recursively, and runs a deduplication pass.
+          ;; Register TARGET.  The 'restore-file' call took care of
+          ;; deduplication, timestamps, and permissions.
           (register-items db
                           (list (store-info target deriver references))))
 
@@ -156,7 +157,8 @@ protected from GC."
 (define* (restore-one-item port
                            #:key acl (verify-signature? #t) (lock? #t)
                            (log-port (current-error-port)))
-  "Restore one store item from PORT; return its file name on success."
+  "Restore one store item of a nar bundle read from PORT; return its file name
+on success."
 
   (define (assert-valid-signature signature hash file)
     ;; Bail out if SIGNATURE, which must be a string as produced by
@@ -209,7 +211,8 @@ s-expression"))
   (let-values (((port get-hash)
                 (open-sha256-input-port port)))
     (with-temporary-store-file temp
-      (restore-file port temp)
+      (restore-file port temp
+                    #:dump-file dump-file/deduplicate)
 
       (let ((magic (read-int port)))
         (unless (= magic %export-magic)
@@ -251,11 +254,11 @@ a signature"))
 (define* (restore-file-set port
                            #:key (verify-signature? #t) (lock? #t)
                            (log-port (current-error-port)))
-  "Restore the file set read from PORT to the store.  The format of the data
-on PORT must be as created by 'export-paths'---i.e., a series of Nar-formatted
-archives with interspersed meta-data joining them together, possibly with a
-digital signature at the end.  Log progress to LOG-PORT.  Return the list of
-files restored.
+  "Restore the file set (\"nar bundle\") read from PORT to the store.  The
+format of the data on PORT must be as created by 'export-paths'---i.e., a
+series of Nar-formatted archives with interspersed meta-data joining them
+together, possibly with a digital signature at the end.  Log progress to
+LOG-PORT.  Return the list of files restored.
 
 When LOCK? is #f, assume locks for the files to be restored are already held.
 This is the case when the daemon calls a build hook.
diff --git a/guix/narinfo.scm b/guix/narinfo.scm
new file mode 100644
index 0000000000..241090ec98
--- /dev/null
+++ b/guix/narinfo.scm
@@ -0,0 +1,326 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014 Nikita Karetnikov <nikita@karetnikov.org>
+;;; Copyright © 2018 Kyle Meyer <kyle@kyleam.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 (guix narinfo)
+  #:use-module (guix pki)
+  #:use-module (guix i18n)
+  #:use-module (guix base32)
+  #:use-module (guix base64)
+  #:use-module (guix records)
+  #:use-module (guix diagnostics)
+  #:use-module (guix scripts substitute)
+  #:use-module (gcrypt hash)
+  #:use-module (gcrypt pk-crypto)
+  #:use-module (rnrs bytevectors)
+  #:use-module (srfi srfi-1)
+  #:use-module (srfi srfi-9)
+  #:use-module (srfi srfi-26)
+  #:use-module (ice-9 match)
+  #:use-module (ice-9 binary-ports)
+  #:use-module (web uri)
+  #:export (narinfo-signature->canonical-sexp
+
+            narinfo?
+            narinfo-path
+            narinfo-uris
+            narinfo-uri-base
+            narinfo-compressions
+            narinfo-file-hashes
+            narinfo-file-sizes
+            narinfo-hash
+            narinfo-size
+            narinfo-references
+            narinfo-deriver
+            narinfo-system
+            narinfo-signature
+
+            narinfo-hash-algorithm+value
+
+            narinfo-hash->sha256
+            narinfo-best-uri
+
+            valid-narinfo?
+
+            read-narinfo
+            write-narinfo
+
+            string->narinfo
+            narinfo->string
+
+            equivalent-narinfo?))
+
+(define-record-type <narinfo>
+  (%make-narinfo path uri-base uris compressions file-sizes file-hashes
+                 nar-hash nar-size references deriver system
+                 signature contents)
+  narinfo?
+  (path         narinfo-path)
+  (uri-base     narinfo-uri-base)        ;URI of the cache it originates from
+  (uris         narinfo-uris)            ;list of strings
+  (compressions narinfo-compressions)    ;list of strings
+  (file-sizes   narinfo-file-sizes)      ;list of (integers | #f)
+  (file-hashes  narinfo-file-hashes)
+  (nar-hash     narinfo-hash)
+  (nar-size     narinfo-size)
+  (references   narinfo-references)
+  (deriver      narinfo-deriver)
+  (system       narinfo-system)
+  (signature    narinfo-signature)      ; canonical sexp
+  ;; The original contents of a narinfo file.  This field is needed because we
+  ;; want to preserve the exact textual representation for verification purposes.
+  ;; See <https://lists.gnu.org/archive/html/guix-devel/2014-02/msg00340.html>
+  ;; for more information.
+  (contents     narinfo-contents))
+
+(define (narinfo-hash-algorithm+value narinfo)
+  "Return two values: the hash algorithm used by NARINFO and its value as a
+bytevector."
+  (match (string-tokenize (narinfo-hash narinfo)
+                          (char-set-complement (char-set #\:)))
+    ((algorithm base32)
+     (values (lookup-hash-algorithm (string->symbol algorithm))
+             (nix-base32-string->bytevector base32)))
+    (_
+     (raise (formatted-message
+             (G_ "invalid narinfo hash: ~s") (narinfo-hash narinfo))))))
+
+(define (narinfo-hash->sha256 hash)
+  "If the string HASH denotes a sha256 hash, return it as a bytevector.
+Otherwise return #f."
+  (and (string-prefix? "sha256:" hash)
+       (nix-base32-string->bytevector (string-drop hash 7))))
+
+(define (narinfo-signature->canonical-sexp str)
+  "Return the value of a narinfo's 'Signature' field as a canonical sexp."
+  (match (string-split str #\;)
+    ((version host-name sig)
+     (let ((maybe-number (string->number version)))
+       (cond ((not (number? maybe-number))
+              (leave (G_ "signature version must be a number: ~s~%")
+                     version))
+             ;; Currently, there are no other versions.
+             ((not (= 1 maybe-number))
+              (leave (G_ "unsupported signature version: ~a~%")
+                     maybe-number))
+             (else
+              (let ((signature (utf8->string (base64-decode sig))))
+                (catch 'gcry-error
+                  (lambda ()
+                    (string->canonical-sexp signature))
+                  (lambda (key proc err)
+                    (leave (G_ "signature is not a valid \
+s-expression: ~s~%")
+                           signature))))))))
+    (x
+     (leave (G_ "invalid format of the signature field: ~a~%") x))))
+
+(define (narinfo-maker str cache-url)
+  "Return a narinfo constructor for narinfos originating from CACHE-URL.  STR
+must contain the original contents of a narinfo file."
+  (lambda (path urls compressions file-hashes file-sizes
+                nar-hash nar-size references deriver system
+                signature)
+    "Return a new <narinfo> object."
+    (define len (length urls))
+    (%make-narinfo path cache-url
+                   ;; Handle the case where URL is a relative URL.
+                   (map (lambda (url)
+                          (or (string->uri url)
+                              (string->uri
+                               (string-append cache-url "/" url))))
+                        urls)
+                   compressions
+                   (match file-sizes
+                     (()        (make-list len #f))
+                     ((lst ...) (map string->number lst)))
+                   (match file-hashes
+                     (()        (make-list len #f))
+                     ((lst ...) (map string->number lst)))
+                   nar-hash
+                   (and=> nar-size string->number)
+                   (string-tokenize references)
+                   (match deriver
+                     ((or #f "") #f)
+                     (_ deriver))
+                   system
+                   (false-if-exception
+                    (and=> signature narinfo-signature->canonical-sexp))
+                   str)))
+
+(define fields->alist
+  ;; The narinfo format is really just like recutils.
+  recutils->alist)
+
+(define* (read-narinfo port #:optional url
+                       #:key size)
+  "Read a narinfo from PORT.  If URL is true, it must be a string used to
+build full URIs from relative URIs found while reading PORT.  When SIZE is
+true, read at most SIZE bytes from PORT; otherwise, read as much as possible.
+
+No authentication and authorization checks are performed here!"
+  (let ((str (utf8->string (if size
+                               (get-bytevector-n port size)
+                               (get-bytevector-all port)))))
+    (alist->record (call-with-input-string str fields->alist)
+                   (narinfo-maker str url)
+                   '("StorePath" "URL" "Compression"
+                     "FileHash" "FileSize" "NarHash" "NarSize"
+                     "References" "Deriver" "System"
+                     "Signature")
+                   '("URL" "Compression" "FileSize" "FileHash"))))
+
+(define (narinfo-sha256 narinfo)
+  "Return the sha256 hash of NARINFO as a bytevector, or #f if NARINFO lacks a
+'Signature' field."
+  (define %mandatory-fields
+    ;; List of fields that must be signed.  If they are not signed, the
+    ;; narinfo is considered unsigned.
+    '("StorePath" "NarHash" "References"))
+
+  (let ((contents (narinfo-contents narinfo)))
+    (match (string-contains contents "Signature:")
+      (#f #f)
+      (index
+       (let* ((above-signature (string-take contents index))
+              (signed-fields (match (call-with-input-string above-signature
+                                      fields->alist)
+                               (((fields . values) ...) fields))))
+         (and (every (cut member <> signed-fields) %mandatory-fields)
+              (sha256 (string->utf8 above-signature))))))))
+
+(define* (valid-narinfo? narinfo #:optional (acl (current-acl))
+                         #:key verbose?)
+  "Return #t if NARINFO's signature is not valid."
+  (let ((hash      (narinfo-sha256 narinfo))
+        (signature (narinfo-signature narinfo))
+        (uri       (uri->string (first (narinfo-uris narinfo)))))
+    (and hash signature
+         (signature-case (signature hash acl)
+           (valid-signature #t)
+           (invalid-signature
+            (when verbose?
+              (format (current-error-port)
+                      "invalid signature for substitute at '~a'~%"
+                      uri))
+            #f)
+           (hash-mismatch
+            (when verbose?
+              (format (current-error-port)
+                      "hash mismatch for substitute at '~a'~%"
+                      uri))
+            #f)
+           (unauthorized-key
+            (when verbose?
+              (format (current-error-port)
+                      "substitute at '~a' is signed by an \
+unauthorized party~%"
+                      uri))
+            #f)
+           (corrupt-signature
+            (when verbose?
+              (format (current-error-port)
+                      "corrupt signature for substitute at '~a'~%"
+                      uri))
+            #f)))))
+
+(define (write-narinfo narinfo port)
+  "Write NARINFO to PORT."
+  (put-bytevector port (string->utf8 (narinfo-contents narinfo))))
+
+(define (narinfo->string narinfo)
+  "Return the external representation of NARINFO."
+  (call-with-output-string (cut write-narinfo narinfo <>)))
+
+(define (string->narinfo str cache-uri)
+  "Return the narinfo represented by STR.  Assume CACHE-URI as the base URI of
+the cache STR originates form."
+  (call-with-input-string str (cut read-narinfo <> cache-uri)))
+
+(define (equivalent-narinfo? narinfo1 narinfo2)
+  "Return true if NARINFO1 and NARINFO2 are equivalent--i.e., if they describe
+the same store item.  This ignores unnecessary metadata such as the Nar URL."
+  (and (string=? (narinfo-hash narinfo1)
+                 (narinfo-hash narinfo2))
+
+       ;; The following is not needed if all we want is to download a valid
+       ;; nar, but it's necessary if we want valid narinfo.
+       (string=? (narinfo-path narinfo1)
+                 (narinfo-path narinfo2))
+       (equal? (narinfo-references narinfo1)
+               (narinfo-references narinfo2))
+
+       (= (narinfo-size narinfo1)
+          (narinfo-size narinfo2))))
+
+(define %compression-methods
+  ;; Known compression methods and a thunk to determine whether they're
+  ;; supported.  See 'decompressed-port' in (guix utils).
+  `(("gzip"  . ,(const #t))
+    ("lzip"  . ,(const #t))
+    ("zstd"  . ,(lambda ()
+                  (resolve-module '(zstd) #t #f #:ensure #f)))
+    ("xz"    . ,(const #t))
+    ("bzip2" . ,(const #t))
+    ("none"  . ,(const #t))))
+
+(define (supported-compression? compression)
+  "Return true if COMPRESSION, a string, denotes a supported compression
+method."
+  (match (assoc-ref %compression-methods compression)
+    (#f         #f)
+    (supported? (supported?))))
+
+(define (compresses-better? compression1 compression2)
+  "Return true if COMPRESSION1 generally compresses better than COMPRESSION2;
+this is a rough approximation."
+  (match compression1
+    ("none" #f)
+    ("gzip" (string=? compression2 "none"))
+    ("lzip" #t)
+    (_      (or (string=? compression2 "none")
+                (string=? compression2 "gzip")))))
+
+(define (narinfo-best-uri narinfo)
+  "Select the \"best\" URI to download NARINFO's nar, and return three values:
+the URI, its compression method (a string), and the compressed file size."
+  (define choices
+    (filter (match-lambda
+              ((uri compression file-size)
+               (supported-compression? compression)))
+            (zip (narinfo-uris narinfo)
+                 (narinfo-compressions narinfo)
+                 (narinfo-file-sizes narinfo))))
+
+  (define (file-size<? c1 c2)
+    (match c1
+      ((uri1 compression1 (? integer? file-size1))
+       (match c2
+         ((uri2 compression2 (? integer? file-size2))
+          (< file-size1 file-size2))
+         (_ #t)))
+      ((uri compression1 #f)
+       (match c2
+         ((uri2 compression2 _)
+          (compresses-better? compression1 compression2))))
+      (_ #f)))                                    ;we can't tell
+
+  (match (sort choices file-size<?)
+    (((uri compression file-size) _ ...)
+     (values uri compression file-size))))
diff --git a/guix/openpgp.scm b/guix/openpgp.scm
index 33c851255b..648c359621 100644
--- a/guix/openpgp.scm
+++ b/guix/openpgp.scm
@@ -34,6 +34,7 @@
             openpgp-error?
             openpgp-unrecognized-packet-error?
             openpgp-unrecognized-packet-error-port
+            openpgp-unrecognized-packet-error-type
             openpgp-invalid-signature-error?
             openpgp-invalid-signature-error-port
 
@@ -110,7 +111,7 @@
 (define-alias fx/ /)
 (define-alias fxdiv quotient)
 (define-alias fxand logand)
-(define-alias fxbit-set? bit-set?)
+(define-inlinable (fxbit-set? n index) (bit-set? index n))
 (define-alias fxbit-field bit-field)
 (define-alias bitwise-bit-field bit-field)
 (define-alias fxarithmetic-shift-left ash)
@@ -132,6 +133,7 @@
 ;; Error raised when reading an unsupported or unrecognized packet tag.
 (define-condition-type &openpgp-unrecognized-packet-error &openpgp-error
   openpgp-unrecognized-packet-error?
+  (type openpgp-unrecognized-packet-error-type)
   (port openpgp-unrecognized-packet-error-port))
 
 ;; Error raised when reading an invalid signature packet.
@@ -477,7 +479,8 @@ hexadecimal format for fingerprints."
      ((= tag PACKET-ONE-PASS-SIGNATURE)
       'one-pass-signature)                        ;TODO: implement
      (else
-      (raise (condition (&openpgp-unrecognized-packet-error (port p))))))))
+      (raise (condition (&openpgp-unrecognized-packet-error (type tag)
+                                                            (port p))))))))
 
 (define-record-type <openpgp-public-key>
   (make-openpgp-public-key version subkey? time value fingerprint)
@@ -817,6 +820,7 @@ FINGERPRINT, a bytevector."
         (if critical?
             (raise (condition
                     (&openpgp-unrecognized-packet-error
+                     (type type)
                      (port signature-port))))
             (list 'unsupported-subpacket type data))))))
 
diff --git a/guix/packages.scm b/guix/packages.scm
index 95d7c2cc0d..9305dabcec 100644
--- a/guix/packages.scm
+++ b/guix/packages.scm
@@ -124,6 +124,7 @@
             package-patched-vulnerabilities
             package-with-patches
             package-with-extra-patches
+            package-with-c-toolchain
             package/inherit
 
             transitive-input-references
@@ -166,6 +167,25 @@
 ;;;
 ;;; Code:
 
+(define-syntax-rule (define-compile-time-decoder name string->bytevector)
+  "Define NAME as a macro that runs STRING->BYTEVECTOR at macro expansion time
+if possible."
+  (define-syntax name
+    (lambda (s)
+      "Return the bytevector corresponding to the given textual
+representation."
+      (syntax-case s ()
+        ((_ str)
+         (string? (syntax->datum #'str))
+         ;; A literal string: do the conversion at expansion time.
+         (with-syntax ((bv (string->bytevector (syntax->datum #'str))))
+           #''bv))
+        ((_ str)
+         #'(string->bytevector str))))))
+
+(define-compile-time-decoder base32 nix-base32-string->bytevector)
+(define-compile-time-decoder base64 base64-decode)
+
 ;; Crytographic content hash.
 (define-immutable-record-type <content-hash>
   (%content-hash algorithm value)
@@ -228,7 +248,8 @@ as base32.  Otherwise, it must be a bytevector."
 (define (print-content-hash hash port)
   (format port "#<content-hash ~a:~a>"
           (content-hash-algorithm hash)
-          (bytevector->nix-base32-string (content-hash-value hash))))
+          (and=> (content-hash-value hash)
+                 bytevector->nix-base32-string)))
 
 (set-record-type-printer! <content-hash> print-content-hash)
 
@@ -300,25 +321,6 @@ specifications to 'hash'."
 
 (set-record-type-printer! <origin> print-origin)
 
-(define-syntax-rule (define-compile-time-decoder name string->bytevector)
-  "Define NAME as a macro that runs STRING->BYTEVECTOR at macro expansion time
-if possible."
-  (define-syntax name
-    (lambda (s)
-      "Return the bytevector corresponding to the given textual
-representation."
-      (syntax-case s ()
-        ((_ str)
-         (string? (syntax->datum #'str))
-         ;; A literal string: do the conversion at expansion time.
-         (with-syntax ((bv (string->bytevector (syntax->datum #'str))))
-           #''bv))
-        ((_ str)
-         #'(string->bytevector str))))))
-
-(define-compile-time-decoder base32 nix-base32-string->bytevector)
-(define-compile-time-decoder base64 base64-decode)
-
 (define (origin-actual-file-name origin)
   "Return the file name of ORIGIN, either its 'file-name' field or the file
 name of its URI."
@@ -421,6 +423,16 @@ name of its URI."
                                                        package)
                                                       16)))))
 
+(define-syntax-rule (package/inherit p overrides ...)
+  "Like (package (inherit P) OVERRIDES ...), except that the same
+transformation is done to the package replacement, if any.  P must be a bare
+identifier, and will be bound to either P or its replacement when evaluating
+OVERRIDES."
+  (let loop ((p p))
+    (package (inherit p)
+      overrides ...
+      (replacement (and=> (package-replacement p) loop)))))
+
 (define (package-upstream-name package)
   "Return the upstream name of PACKAGE, which could be different from the name
 it has in Guix."
@@ -779,6 +791,14 @@ specifies modules in scope when evaluating SNIPPET."
                         (append (origin-patches (package-source original))
                                 patches)))
 
+(define (package-with-c-toolchain package toolchain)
+  "Return a variant of PACKAGE that uses TOOLCHAIN instead of the default GNU
+C/C++ toolchain.  TOOLCHAIN must be a list of inputs (label/package tuples)
+providing equivalent functionality, such as the 'gcc-toolchain' package."
+  (let ((bs (package-build-system package)))
+    (package/inherit package
+      (build-system (build-system-with-c-toolchain bs toolchain)))))
+
 (define (transitive-inputs inputs)
   "Return the closure of INPUTS when considering the 'propagated-inputs'
 edges.  Omit duplicate inputs, except for those already present in INPUTS
@@ -967,60 +987,125 @@ packages they depend on, recursively."
                    (vhash-consq package #t visited)
                    (fold set-insert closure dependencies))))))))
 
-(define* (package-mapping proc #:optional (cut? (const #f)))
+(define (build-system-with-package-mapping bs rewrite)
+  "Return a variant of BS, a build system, that rewrites a bag's inputs by
+passing them through REWRITE, a procedure that takes an input tuplet and
+returns a \"rewritten\" input tuplet."
+  (define lower
+    (build-system-lower bs))
+
+  (define (lower* . args)
+    (let ((lowered (apply lower args)))
+      (bag
+        (inherit lowered)
+        (build-inputs (map rewrite (bag-build-inputs lowered)))
+        (host-inputs (map rewrite (bag-host-inputs lowered)))
+        (target-inputs (map rewrite (bag-target-inputs lowered))))))
+
+  (build-system
+    (inherit bs)
+    (lower lower*)))
+
+(define* (package-mapping proc #:optional (cut? (const #f))
+                          #:key deep?)
   "Return a procedure that, given a package, applies PROC to all the packages
 depended on and returns the resulting package.  The procedure stops recursion
-when CUT? returns true for a given package."
+when CUT? returns true for a given package.  When DEEP? is true, PROC is
+applied to implicit inputs as well."
   (define (rewrite input)
     (match input
       ((label (? package? package) outputs ...)
-       (let ((proc (if (cut? package) proc replace)))
-         (cons* label (proc package) outputs)))
+       (cons* label (replace package) outputs))
       (_
        input)))
 
+  (define mapping-property
+    ;; Property indicating whether the package has already been processed.
+    (gensym " package-mapping-done"))
+
   (define replace
     (mlambdaq (p)
-      ;; Return a variant of P with PROC applied to P and its explicit
-      ;; dependencies, recursively.  Memoize the transformations.  Failing to
-      ;; do that, we would build a huge object graph with lots of duplicates,
-      ;; which in turns prevents us from benefiting from memoization in
-      ;; 'package-derivation'.
-      (let ((p (proc p)))
-        (package
-          (inherit p)
-          (location (package-location p))
-          (inputs (map rewrite (package-inputs p)))
-          (native-inputs (map rewrite (package-native-inputs p)))
-          (propagated-inputs (map rewrite (package-propagated-inputs p)))
-          (replacement (and=> (package-replacement p) proc))))))
+      ;; If P is the result of a previous call, return it.
+      (cond ((assq-ref (package-properties p) mapping-property)
+             p)
+
+            ((cut? p)
+             ;; Since P's propagated inputs are really inputs of its dependents,
+             ;; rewrite them as well, unless we're doing a "shallow" rewrite.
+             (let ((p (proc p)))
+               (if (or (not deep?)
+                       (null? (package-propagated-inputs p)))
+                   p
+                   (package
+                     (inherit p)
+                     (location (package-location p))
+                     (replacement (package-replacement p))
+                     (propagated-inputs (map rewrite (package-propagated-inputs p)))
+                     (properties `((,mapping-property . #t)
+                                   ,@(package-properties p)))))))
+
+            (else
+             ;; Return a variant of P with PROC applied to P and its explicit
+             ;; dependencies, recursively.  Memoize the transformations.  Failing
+             ;; to do that, we would build a huge object graph with lots of
+             ;; duplicates, which in turns prevents us from benefiting from
+             ;; memoization in 'package-derivation'.
+             (let ((p (proc p)))
+               (package
+                 (inherit p)
+                 (location (package-location p))
+                 (build-system (if deep?
+                                   (build-system-with-package-mapping
+                                    (package-build-system p) rewrite)
+                                   (package-build-system p)))
+                 (inputs (map rewrite (package-inputs p)))
+                 (native-inputs (map rewrite (package-native-inputs p)))
+                 (propagated-inputs (map rewrite (package-propagated-inputs p)))
+                 (replacement (and=> (package-replacement p) replace))
+                 (properties `((,mapping-property . #t)
+                               ,@(package-properties p)))))))))
 
   replace)
 
 (define* (package-input-rewriting replacements
-                                  #:optional (rewrite-name identity))
+                                  #:optional (rewrite-name identity)
+                                  #:key (deep? #t))
   "Return a procedure that, when passed a package, replaces its direct and
-indirect dependencies (but not its implicit inputs) according to REPLACEMENTS.
-REPLACEMENTS is a list of package pairs; the first element of each pair is the
-package to replace, and the second one is the replacement.
+indirect dependencies, including implicit inputs when DEEP? is true, according
+to REPLACEMENTS.  REPLACEMENTS is a list of package pairs; the first element
+of each pair is the package to replace, and the second one is the replacement.
 
 Optionally, REWRITE-NAME is a one-argument procedure that takes the name of a
 package and returns its new name after rewrite."
-  (define (rewrite p)
-    (match (assq-ref replacements p)
-      (#f  (package
-             (inherit p)
-             (name (rewrite-name (package-name p)))))
-      (new new)))
-
-  (package-mapping rewrite (cut assq <> replacements)))
+  (define replacement-property
+    ;; Property to tag right-hand sides in REPLACEMENTS.
+    (gensym " package-replacement"))
 
-(define (package-input-rewriting/spec replacements)
+  (define (rewrite p)
+    (if (assq-ref (package-properties p) replacement-property)
+        p
+        (match (assq-ref replacements p)
+          (#f  (package/inherit p
+                 (name (rewrite-name (package-name p)))))
+          (new (if deep?
+                   (package/inherit new
+                     (properties `((,replacement-property . #t)
+                                   ,@(package-properties new))))
+                   new)))))
+
+  (define (cut? p)
+    (or (assq-ref (package-properties p) replacement-property)
+        (assq-ref replacements p)))
+
+  (package-mapping rewrite cut?
+                   #:deep? deep?))
+
+(define* (package-input-rewriting/spec replacements #:key (deep? #t))
   "Return a procedure that, given a package, applies the given REPLACEMENTS to
-all the package graph (excluding implicit inputs).  REPLACEMENTS is a list of
-spec/procedures pair; each spec is a package specification such as \"gcc\" or
-\"guile@2\", and each procedure takes a matching package and returns a
-replacement for that package."
+all the package graph, including implicit inputs unless DEEP? is false.
+REPLACEMENTS is a list of spec/procedures pair; each spec is a package
+specification such as \"gcc\" or \"guile@2\", and each procedure takes a
+matching package and returns a replacement for that package."
   (define table
     (fold (lambda (replacement table)
             (match replacement
@@ -1045,22 +1130,27 @@ replacement for that package."
                  (package-name package)
                  table))
 
-  (define (rewrite package)
-    (match (find-replacement package)
-      (#f package)
-      (proc (proc package))))
-
-  (package-mapping rewrite find-replacement))
+  (define replacement-property
+    (gensym " package-replacement"))
 
-(define-syntax-rule (package/inherit p overrides ...)
-  "Like (package (inherit P) OVERRIDES ...), except that the same
-transformation is done to the package replacement, if any.  P must be a bare
-identifier, and will be bound to either P or its replacement when evaluating
-OVERRIDES."
-  (let loop ((p p))
-    (package (inherit p)
-      overrides ...
-      (replacement (and=> (package-replacement p) loop)))))
+  (define (rewrite p)
+    (if (assq-ref (package-properties p) replacement-property)
+        p
+        (match (find-replacement p)
+          (#f p)
+          (proc
+           (let ((new (proc p)))
+             ;; Mark NEW as already processed.
+             (package/inherit new
+               (properties `((,replacement-property . #t)
+                             ,@(package-properties new)))))))))
+
+  (define (cut? p)
+    (or (assq-ref (package-properties p) replacement-property)
+        (find-replacement p)))
+
+  (package-mapping rewrite cut?
+                   #:deep? deep?))
 
 
 ;;;
diff --git a/guix/profiles.scm b/guix/profiles.scm
index 0619e735fb..59a313ea08 100644
--- a/guix/profiles.scm
+++ b/guix/profiles.scm
@@ -399,22 +399,24 @@ denoting a specific output of a package."
                 'inferior-package->manifest-entry))
 
   (manifest
-   (map (match-lambda
-          (((? package? package) output)
-           (package->manifest-entry package output))
-          ((? package? package)
-           (package->manifest-entry package))
-          ((thing output)
-           (if inferiors-loaded?
-               ((inferior->entry) thing output)
-               (throw 'wrong-type-arg 'packages->manifest
-                      "Wrong package object: ~S" (list thing) (list thing))))
-          (thing
-           (if inferiors-loaded?
-               ((inferior->entry) thing)
-               (throw 'wrong-type-arg 'packages->manifest
-                      "Wrong package object: ~S" (list thing) (list thing)))))
-        packages)))
+   (delete-duplicates
+    (map (match-lambda
+           (((? package? package) output)
+            (package->manifest-entry package output))
+           ((? package? package)
+            (package->manifest-entry package))
+           ((thing output)
+            (if inferiors-loaded?
+                ((inferior->entry) thing output)
+                (throw 'wrong-type-arg 'packages->manifest
+                       "Wrong package object: ~S" (list thing) (list thing))))
+           (thing
+            (if inferiors-loaded?
+                ((inferior->entry) thing)
+                (throw 'wrong-type-arg 'packages->manifest
+                       "Wrong package object: ~S" (list thing) (list thing)))))
+         packages)
+    manifest-entry=?)))
 
 (define (manifest->gexp manifest)
   "Return a representation of MANIFEST as a gexp."
@@ -716,6 +718,12 @@ replace it."
     (manifest-pattern
       (name   (manifest-entry-name entry))
       (output (manifest-entry-output entry))))
+  (define manifest-entry-pair=?
+    (match-lambda*
+      (((m1a . m2a) (m1b . m2b))
+       (and (manifest-entry=? m1a m1b)
+            (manifest-entry=? m2a m2b)))
+      (_ #f)))
 
   (let loop ((input     (manifest-transaction-install transaction))
              (install   '())
@@ -724,8 +732,16 @@ replace it."
     (match input
       (()
        (let ((remove (manifest-transaction-remove transaction)))
-         (values (manifest-matching-entries manifest remove)
-                 (reverse install) (reverse upgrade) (reverse downgrade))))
+         (values (delete-duplicates
+                  (manifest-matching-entries manifest remove)
+                  manifest-entry=?)
+                 (delete-duplicates (reverse install) manifest-entry=?)
+                 (delete-duplicates
+                  (reverse upgrade)
+                  manifest-entry-pair=?)
+                 (delete-duplicates
+                  (reverse downgrade)
+                  manifest-entry-pair=?))))
       ((entry rest ...)
        ;; Check whether installing ENTRY corresponds to the installation of a
        ;; new package or to an upgrade.
@@ -1205,43 +1221,48 @@ and creates the dependency graph of all these kernel modules.
 This is meant to be used as a profile hook."
   (define kmod                                    ; lazy reference
     (module-ref (resolve-interface '(gnu packages linux)) 'kmod))
+
+  (define guile-zlib
+    (module-ref (resolve-interface '(gnu packages guile)) 'guile-zlib))
+
   (define build
     (with-imported-modules (source-module-closure
                             '((guix build utils)
                               (gnu build linux-modules)))
-      #~(begin
-          (use-modules (ice-9 ftw)
-                       (ice-9 match)
-                       (srfi srfi-1)              ; append-map
-                       (gnu build linux-modules))
-
-          (let* ((inputs '#$(manifest-inputs manifest))
-                 (module-directories
-                  (map (lambda (directory)
-                         (string-append directory "/lib/modules"))
-                       inputs))
-                 (directory-entries
-                  (lambda (directory)
-                    (or (scandir directory
-                                 (lambda (basename)
-                                   (not (string-prefix? "." basename))))
-                        '())))
-                 ;; Note: Should usually result in one entry.
-                 (versions (delete-duplicates
-                            (append-map directory-entries
-                                        module-directories))))
-            (match versions
-              ((version)
-               (let ((old-path (getenv "PATH")))
-                 (setenv "PATH" #+(file-append kmod "/bin"))
-                 (make-linux-module-directory inputs version #$output)
-                 (setenv "PATH" old-path)))
-              (()
-               ;; Nothing here, maybe because this is a kernel with
-               ;; CONFIG_MODULES=n.
-               (mkdir #$output))
-              (_ (error "Specified Linux kernel and Linux kernel modules
-are not all of the same version")))))))
+      (with-extensions (list guile-zlib)
+        #~(begin
+            (use-modules (ice-9 ftw)
+                         (ice-9 match)
+                         (srfi srfi-1)              ; append-map
+                         (gnu build linux-modules))
+
+            (let* ((inputs '#$(manifest-inputs manifest))
+                   (module-directories
+                    (map (lambda (directory)
+                           (string-append directory "/lib/modules"))
+                         inputs))
+                   (directory-entries
+                    (lambda (directory)
+                      (or (scandir directory
+                                   (lambda (basename)
+                                     (not (string-prefix? "." basename))))
+                          '())))
+                   ;; Note: Should usually result in one entry.
+                   (versions (delete-duplicates
+                              (append-map directory-entries
+                                          module-directories))))
+              (match versions
+                ((version)
+                 (let ((old-path (getenv "PATH")))
+                   (setenv "PATH" #+(file-append kmod "/bin"))
+                   (make-linux-module-directory inputs version #$output)
+                   (setenv "PATH" old-path)))
+                (()
+                 ;; Nothing here, maybe because this is a kernel with
+                 ;; CONFIG_MODULES=n.
+                 (mkdir #$output))
+                (_ (error "Specified Linux kernel and Linux kernel modules
+are not all of the same version"))))))))
   (gexp->derivation "linux-module-database" build
                     #:local-build? #t
                     #:substitutable? #f
@@ -1296,31 +1317,43 @@ entries.  It's used to query the MIME type of a given file."
   (define shared-mime-info  ; lazy reference
     (module-ref (resolve-interface '(gnu packages gnome)) 'shared-mime-info))
 
-  (mlet %store-monad ((glib
-                       (manifest-lookup-package
-                        manifest "glib")))
+  (mlet %store-monad ((glib (manifest-lookup-package manifest "glib")))
     (define build
       (with-imported-modules  '((guix build utils)
                                 (guix build union))
         #~(begin
-            (use-modules (srfi srfi-26)
-                         (guix build utils)
-                         (guix build union))
+            (use-modules (guix build utils)
+                         (guix build union)
+                         (srfi srfi-26)
+                         (ice-9 match))
+
             (let* ((datadir (string-append #$output "/share"))
                    (destdir (string-append datadir "/mime"))
                    (pkgdirs (filter file-exists?
                                     (map (cut string-append <>
                                               "/share/mime/packages")
                                          (cons #+shared-mime-info
-                                               '#$(manifest-inputs manifest)))))
-                   (update-mime-database (string-append
-                                          #+shared-mime-info
-                                          "/bin/update-mime-database")))
-              (mkdir-p destdir)
-              (union-build (string-append destdir "/packages") pkgdirs
-                           #:log-port (%make-void-port "w"))
-              (setenv "XDG_DATA_HOME" datadir)
-              (exit (zero? (system* update-mime-database destdir)))))))
+                                               '#$(manifest-inputs manifest))))))
+
+              (match pkgdirs
+                ((shared-mime-info)
+                 ;; PKGDIRS contains nothing but 'shared-mime-info', which
+                 ;; already contains its database, so nothing to do.
+                 (mkdir-p datadir)
+                 (symlink #$(file-append shared-mime-info "/share/mime")
+                          destdir))
+                (_
+                 ;; PKGDIRS contains additional packages providing
+                 ;; 'share/mime/packages' (very few packages do so) so rebuild
+                 ;; the database.  TODO: Find a way to avoid reprocessing
+                 ;; 'shared-mime-info', which is the most expensive one.
+                 (mkdir-p destdir)
+                 (union-build (string-append destdir "/packages") pkgdirs
+                              #:log-port (%make-void-port "w"))
+                 (setenv "XDG_DATA_HOME" datadir)
+                 (invoke #+(file-append shared-mime-info
+                                        "/bin/update-mime-database")
+                         destdir)))))))
 
     ;; Don't run the hook when there are no GLib based applications.
     (if glib
@@ -1412,27 +1445,18 @@ the entries in MANIFEST."
     (module-ref (resolve-interface '(gnu packages guile))
                 'guile-gdbm-ffi))
 
-  (define zlib
-    (module-ref (resolve-interface '(gnu packages compression)) 'zlib))
-
-  (define config.scm
-    (scheme-file "config.scm"
-                 #~(begin
-                     (define-module #$'(guix config) ;placate Geiser
-                       #:export (%libz))
-
-                     (define %libz
-                       #+(file-append zlib "/lib/libz")))))
+  (define guile-zlib
+    (module-ref (resolve-interface '(gnu packages guile)) 'guile-zlib))
 
   (define modules
-    (cons `((guix config) => ,config.scm)
-          (delete '(guix config)
-                  (source-module-closure `((guix build utils)
-                                           (guix man-db))))))
+    (delete '(guix config)
+            (source-module-closure `((guix build utils)
+                                     (guix man-db)))))
 
   (define build
     (with-imported-modules modules
-      (with-extensions (list gdbm-ffi)            ;for (guix man-db)
+      (with-extensions (list gdbm-ffi           ;for (guix man-db)
+                             guile-zlib)
         #~(begin
             (use-modules (guix man-db)
                          (guix build utils)
diff --git a/guix/progress.scm b/guix/progress.scm
index fec65b424c..334bd40547 100644
--- a/guix/progress.scm
+++ b/guix/progress.scm
@@ -184,44 +184,54 @@ move the cursor to the beginning of the line."
 
 (define* (display-download-progress file size
                                     #:key
+                                    (tty? #t)
                                     start-time (transferred 0)
                                     (log-port (current-error-port)))
   "Write the progress report to LOG-PORT.  Use START-TIME (a SRFI-19 time
 object) and TRANSFERRED (a total number of bytes) to determine the
-throughput."
+throughput.  When TTY? is false, assume LOG-PORT is not a tty and do not emit
+ANSI escape codes."
   (define elapsed
     (duration->seconds
      (time-difference (current-time (time-type start-time))
                       start-time)))
 
-  (if (and (number? size) (not (zero? size)))
-      (let* ((%  (* 100.0 (/ transferred size)))
-             (throughput (/ transferred elapsed))
-             (left       (format #f " ~a  ~a" file
-                                 (byte-count->string size)))
-             (right      (format #f "~a/s ~a ~a~6,1f%"
-                                 (byte-count->string throughput)
-                                 (seconds->string elapsed)
-                                 (progress-bar %) %)))
-        (erase-current-line log-port)
-        (display (string-pad-middle left right
-                                    (current-terminal-columns))
-                 log-port)
-        (force-output log-port))
-      ;; If we don't know the total size, the last transfer will have a 0B
-      ;; size.  Don't display it.
-      (unless (zero? transferred)
-        (let* ((throughput (/ transferred elapsed))
-               (left       (format #f " ~a" file))
-               (right      (format #f "~a/s ~a | ~a transferred"
-                                   (byte-count->string throughput)
-                                   (seconds->string elapsed)
-                                   (byte-count->string transferred))))
-          (erase-current-line log-port)
-          (display (string-pad-middle left right
-                                      (current-terminal-columns))
-                   log-port)
-          (force-output log-port)))))
+  (cond ((and (not tty?)
+              size (not (zero? size))
+              transferred)
+         ;; Display a dot for at most every 10%.
+         (when (zero? (modulo (round (* 100. (/ transferred size))) 10))
+           (display "." log-port)
+           (force-output log-port)))
+        ((and (number? size) (not (zero? size)))
+         (let* ((%  (* 100.0 (/ transferred size)))
+                (throughput (/ transferred elapsed))
+                (left       (format #f " ~a  ~a" file
+                                    (byte-count->string size)))
+                (right      (format #f "~a/s ~a ~a~6,1f%"
+                                    (byte-count->string throughput)
+                                    (seconds->string elapsed)
+                                    (progress-bar %) %)))
+           (erase-current-line log-port)
+           (display (string-pad-middle left right
+                                       (current-terminal-columns))
+                    log-port)
+           (force-output log-port)))
+        (else
+         ;; If we don't know the total size, the last transfer will have a 0B
+         ;; size.  Don't display it.
+         (unless (zero? transferred)
+           (let* ((throughput (/ transferred elapsed))
+                  (left       (format #f " ~a" file))
+                  (right      (format #f "~a/s ~a | ~a transferred"
+                                      (byte-count->string throughput)
+                                      (seconds->string elapsed)
+                                      (byte-count->string transferred))))
+             (erase-current-line log-port)
+             (display (string-pad-middle left right
+                                         (current-terminal-columns))
+                      log-port)
+             (force-output log-port))))))
 
 (define %progress-interval
   ;; Default interval between subsequent outputs for rate-limited displays.
@@ -337,9 +347,10 @@ should be a <progress-reporter> object."
               (report total)
               (loop total (get-bytevector-n! in buffer 0 buffer-size))))))))
 
-(define (progress-report-port reporter port)
+(define* (progress-report-port reporter port #:key (close? #t))
   "Return a port that continuously reports the bytes read from PORT using
-REPORTER, which should be a <progress-reporter> object."
+REPORTER, which should be a <progress-reporter> object.  When CLOSE? is true,
+PORT is closed when the returned port is closed."
   (match reporter
     (($ <progress-reporter> start report stop)
      (let* ((total 0)
@@ -364,5 +375,6 @@ REPORTER, which should be a <progress-reporter> object."
                                         ;; trace.
                                         (unless (zero? total)
                                           (stop))
-                                        (close-port port)))))))
+                                        (when close?
+                                          (close-port port))))))))
 
diff --git a/guix/repl.scm b/guix/repl.scm
index 0ace5976cf..94d85815ef 100644
--- a/guix/repl.scm
+++ b/guix/repl.scm
@@ -78,8 +78,14 @@ output port.  VERSION is the client's protocol version we are targeting."
          (let ((stack (if (repl-prompt)
                           (make-stack #t handle-exception (repl-prompt))
                           (make-stack #t))))
+           ;; Note: 'make-stack' returns #f if there's no 'handle-exception'
+           ;; stack frame, which is the case when this file is being
+           ;; interpreted as with 'primitive-load'.
            `(exception (arguments ,key ,@(map value->sexp args))
-                       (stack ,@(map frame->sexp (stack->frames stack))))))
+                       (stack ,@(map frame->sexp
+                                     (if stack
+                                         (stack->frames stack)
+                                         '()))))))
         (_
          ;; Protocol (0 0).
          `(exception ,key ,@(map value->sexp args)))))
diff --git a/guix/scripts.scm b/guix/scripts.scm
index 8534948892..34cba35401 100644
--- a/guix/scripts.scm
+++ b/guix/scripts.scm
@@ -3,6 +3,7 @@
 ;;; Copyright © 2014 Deck Pickard <deck.r.pickard@gmail.com>
 ;;; Copyright © 2015, 2016 Alex Kost <alezost@gmail.com>
 ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
+;;; Copyright © 2021 Ricardo Wurmus <rekado@elephly.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -34,7 +35,12 @@
   #:use-module (srfi srfi-19)
   #:use-module (srfi srfi-37)
   #:use-module (ice-9 match)
-  #:export (args-fold*
+  #:export (synopsis
+            category
+            define-command
+            %command-categories
+
+            args-fold*
             parse-command-line
             maybe-build
             build-package
@@ -50,6 +56,62 @@
 ;;;
 ;;; Code:
 
+;; Syntactic keywords.
+(define synopsis 'command-synopsis)
+(define category 'command-category)
+
+(define-syntax define-command-categories
+  (syntax-rules (G_)
+    "Define command categories."
+    ((_ name assert-valid (identifiers (G_ synopses)) ...)
+     (begin
+       (define-public identifiers
+         ;; Define and export syntactic keywords.
+         (list 'syntactic-keyword-for-command-category))
+       ...
+
+       (define-syntax assert-valid
+         ;; Validate at expansion time that we're passed a valid category.
+         (syntax-rules (identifiers ...)
+           ((_ identifiers) #t)
+           ...))
+
+       (define name
+         ;; Alist mapping category name to synopsis.
+         `((identifiers . synopses) ...))))))
+
+;; Command categories.
+(define-command-categories %command-categories
+  assert-valid-command-category
+  (main        (G_ "main commands"))
+  (development (G_ "software development commands"))
+  (packaging   (G_ "packaging commands"))
+  (plumbing    (G_ "plumbing commands"))
+  (internal    (G_ "internal commands"))
+  (extension   (G_ "extension commands")))
+
+(define-syntax define-command
+  (syntax-rules (category synopsis)
+    "Define the given command as a procedure along with its synopsis and,
+optionally, its category.  The synopsis becomes the docstring of the
+procedure, but both the category and synopsis are meant to be read (parsed) by
+'guix help'."
+    ;; The (synopsis ...) form is here so that xgettext sees those strings as
+    ;; translatable.
+    ((_ (name . args)
+        (synopsis doc) body ...)
+     (define (name . args)
+       doc
+       body ...))
+    ((_ (name . args)
+        (category cat) (synopsis doc)
+        body ...)
+     (begin
+       (assert-valid-command-category cat)
+       (define (name . args)
+         doc
+         body ...)))))
+
 (define (args-fold* args options unrecognized-option-proc operand-proc . seeds)
   "A wrapper on top of `args-fold' that does proper user-facing error
 reporting."
diff --git a/guix/scripts/archive.scm b/guix/scripts/archive.scm
index f3b86fba14..91be1b02e1 100644
--- a/guix/scripts/archive.scm
+++ b/guix/scripts/archive.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -310,6 +311,16 @@ the input port."
         (leave (G_ "failed to read public key: ~a: ~a~%")
                (error-source err) (error-string err)))))
 
+  ;; Warn about potentially volatile ACLs, but continue: system reconfiguration
+  ;; might not be possible without (newly-authorized) substitutes.
+  (let ((stat (false-if-exception (lstat %acl-file))))
+    (when (and stat (eq? 'symlink (stat:type (lstat %acl-file))))
+      (warning (G_ "replacing symbolic link ~a with a regular file~%")
+               %acl-file)
+      (when (string-prefix? (%store-prefix) (readlink %acl-file))
+        (display-hint (G_ "On Guix System, add all @code{authorized-keys} to the
+@code{guix-service-type} service of your @code{operating-system} instead.")))))
+
   (let ((key (read-key))
         (acl (current-acl)))
     (unless (eq? 'public-key (canonical-sexp-nth-data key 0))
@@ -336,6 +347,8 @@ output port."
                   (match type
                     ('directory
                      (format #t "D ~a~%" file))
+                    ('directory-complete
+                     #t)
                     ('symlink
                      (format #t "S ~a -> ~a~%" file content))
                     ((or 'regular 'executable)
@@ -355,7 +368,10 @@ output port."
 ;;; Entry point.
 ;;;
 
-(define (guix-archive . args)
+(define-command (guix-archive . args)
+  (category plumbing)
+  (synopsis "manipulate, export, and import normalized archives (nars)")
+
   (define (lines port)
     ;; Return lines read from PORT.
     (let loop ((line   (read-line port))
diff --git a/guix/scripts/authenticate.scm b/guix/scripts/authenticate.scm
index f1fd8ee895..45f62f6ebc 100644
--- a/guix/scripts/authenticate.scm
+++ b/guix/scripts/authenticate.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2020 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -17,14 +17,21 @@
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (guix scripts authenticate)
-  #:use-module (guix config)
+  #:use-module (guix scripts)
   #:use-module (guix base16)
   #:use-module (gcrypt pk-crypto)
   #:use-module (guix pki)
   #:use-module (guix ui)
+  #:use-module (guix diagnostics)
+  #:use-module (srfi srfi-34)
+  #:use-module (srfi srfi-35)
+  #:use-module (srfi srfi-71)
+  #:use-module (rnrs bytevectors)
   #:use-module (ice-9 binary-ports)
   #:use-module (ice-9 rdelim)
   #:use-module (ice-9 match)
+  #:use-module (ice-9 vlist)
+  #:use-module (ice-9 iconv)
   #:export (guix-authenticate))
 
 ;;; Commentary:
@@ -39,58 +46,130 @@
   ;; Read a gcrypt sexp from a port and return it.
   (compose string->canonical-sexp read-string))
 
-(define (read-hash-data port key-type)
-  "Read sha256 hash data from PORT and return it as a gcrypt sexp.  KEY-TYPE
-is a symbol representing the type of public key algo being used."
-  (let* ((hex (read-string port))
-         (bv  (base16-string->bytevector (string-trim-both hex))))
-    (bytevector->hash-data bv #:key-type key-type)))
-
-(define (sign-with-key key-file port)
-  "Sign the hash read from PORT with KEY-FILE, and write an sexp that includes
-both the hash and the actual signature."
-  (let* ((secret-key (call-with-input-file key-file read-canonical-sexp))
-         (public-key (if (string-suffix? ".sec" key-file)
-                         (call-with-input-file
+(define (load-key-pair key-file)
+  "Load the key pair whose secret key lives at KEY-FILE.  Return a pair of
+canonical sexps representing those keys."
+  (catch 'system-error
+    (lambda ()
+      (let* ((secret-key (call-with-input-file key-file read-canonical-sexp))
+             (public-key (call-with-input-file
                              (string-append (string-drop-right key-file 4)
                                             ".pub")
-                           read-canonical-sexp)
-                         (leave
-                          (G_ "cannot find public key for secret key '~a'~%")
-                          key-file)))
-         (data       (read-hash-data port (key-type public-key)))
-         (signature  (signature-sexp data secret-key public-key)))
-    (display (canonical-sexp->string signature))
-    #t))
-
-(define (validate-signature port)
-  "Read the signature from PORT (which is as produced above), check whether
-its public key is authorized, verify the signature, and print the signed data
-to stdout upon success."
-  (let* ((signature (read-canonical-sexp port))
-         (subject   (signature-subject signature))
-         (data      (signature-signed-data signature)))
+                           read-canonical-sexp)))
+        (cons public-key secret-key)))
+    (lambda args
+      (let ((errno (system-error-errno args)))
+        (raise
+         (formatted-message
+          (G_ "failed to load key pair at '~a': ~a~%")
+          key-file (strerror errno)))))))
+
+(define (sign-with-key public-key secret-key sha256)
+  "Sign the hash SHA256 (a bytevector) with SECRET-KEY (a canonical sexp), and
+return the signature as a canonical sexp that includes SHA256, PUBLIC-KEY, and
+the actual signature."
+  (let ((data (bytevector->hash-data sha256
+                                     #:key-type (key-type public-key))))
+    (signature-sexp data secret-key public-key)))
+
+(define (validate-signature signature acl)
+  "Validate SIGNATURE, a canonical sexp.  Check whether its public key is
+authorized in ACL, verify the signature, and return the signed data (a
+bytevector) upon success."
+  (let* ((subject (signature-subject signature))
+         (data    (signature-signed-data signature)))
     (if (and data subject)
-        (if (authorized-key? subject)
+        (if (authorized-key? subject acl)
             (if (valid-signature? signature)
-                (let ((hash (hash-data->bytevector data)))
-                  (display (bytevector->base16-string hash))
-                  #t)                              ; success
-                (leave (G_ "error: invalid signature: ~a~%")
-                       (canonical-sexp->string signature)))
-            (leave (G_ "error: unauthorized public key: ~a~%")
-                   (canonical-sexp->string subject)))
-        (leave (G_ "error: corrupt signature data: ~a~%")
-               (canonical-sexp->string signature)))))
+                (hash-data->bytevector data)      ; success
+                (raise
+                 (formatted-message (G_ "invalid signature: ~a")
+                                    (canonical-sexp->string signature))))
+            (raise
+             (formatted-message (G_ "unauthorized public key: ~a")
+                                (canonical-sexp->string subject))))
+        (raise
+         (formatted-message (G_ "corrupt signature data: ~a")
+                            (canonical-sexp->string signature))))))
+
+(define (read-command port)
+  "Read a command from PORT and return the command and arguments as a list of
+strings.  Return the empty list when the end-of-file is reached.
+
+Commands are newline-terminated and must look something like this:
+
+  COMMAND 3:abc 5:abcde 1:x
+
+where COMMAND is an alphanumeric sequence and the remainder is the command
+arguments.  Each argument is written as its length (in characters), followed
+by colon, followed by the given number of characters."
+  (define (consume-whitespace port)
+    (let ((chr (lookahead-u8 port)))
+      (when (eqv? chr (char->integer #\space))
+        (get-u8 port)
+        (consume-whitespace port))))
+
+  (match (read-delimited " \t\n\r" port)
+    ((? eof-object?)
+     '())
+    (command
+     (let loop ((result (list command)))
+       (consume-whitespace port)
+       (let ((next (lookahead-u8 port)))
+         (cond ((eqv? next (char->integer #\newline))
+                (get-u8 port)
+                (reverse result))
+               ((eof-object? next)
+                (reverse result))
+               (else
+                (let* ((len (string->number (read-delimited ":" port)))
+                       (str (bytevector->string
+                             (get-bytevector-n port len)
+                             "ISO-8859-1" 'error)))
+                  (loop (cons str result))))))))))
+
+(define-syntax define-enumerate-type              ;TODO: factorize
+  (syntax-rules ()
+    ((_ name->int (name id) ...)
+     (define-syntax name->int
+       (syntax-rules (name ...)
+         ((_ name) id) ...)))))
+
+;; Codes used when reply to requests.
+(define-enumerate-type reply-code
+  (success 0)
+  (command-not-found 404)
+  (command-failed 500))
 
 
 ;;;
-;;; Entry point with 'openssl'-compatible interface.  We support this
-;;; interface because that's what the daemon expects, and we want to leave it
-;;; unmodified currently.
+;;; Entry point.
 ;;;
 
-(define (guix-authenticate . args)
+(define-command (guix-authenticate . args)
+  (category internal)
+  (synopsis "sign or verify signatures on normalized archives (nars)")
+
+  (define (send-reply code str)
+    ;; Send CODE and STR as a reply to our client.
+    (let ((bv (string->bytevector str "ISO-8859-1" 'error)))
+      (format #t "~a ~a:" code (bytevector-length bv))
+      (put-bytevector (current-output-port) bv)
+      (force-output (current-output-port))))
+
+  (define (call-with-reply thunk)
+    ;; Send a reply for the result of THUNK or for any exception raised during
+    ;; its execution.
+    (guard (c ((formatted-message? c)
+               (send-reply (reply-code command-failed)
+                           (apply format #f
+                                  (G_ (formatted-message-string c))
+                                  (formatted-message-arguments c)))))
+      (send-reply (reply-code success) (thunk))))
+
+  (define-syntax-rule (with-reply exp ...)
+    (call-with-reply (lambda () exp ...)))
+
   ;; Signature sexps written to stdout may contain binary data, so force
   ;; ISO-8859-1 encoding so that things are not mangled.  See
   ;; <http://bugs.gnu.org/17312> for details.
@@ -101,29 +180,46 @@ to stdout upon success."
   (with-fluids ((%default-port-encoding "ISO-8859-1")
                 (%default-port-conversion-strategy 'error))
     (match args
-      ;; As invoked by guix-daemon.
-      (("rsautl" "-sign" "-inkey" key "-in" hash-file)
-       (call-with-input-file hash-file
-         (lambda (port)
-           (sign-with-key key port))))
-      ;; As invoked by Nix/Crypto.pm (used by Hydra.)
-      (("rsautl" "-sign" "-inkey" key)
-       (sign-with-key key (current-input-port)))
-      ;; As invoked by guix-daemon.
-      (("rsautl" "-verify" "-inkey" _ "-pubin" "-in" signature-file)
-       (call-with-input-file signature-file
-         (lambda (port)
-           (validate-signature port))))
-      ;; As invoked by Nix/Crypto.pm (used by Hydra.)
-      (("rsautl" "-verify" "-inkey" _ "-pubin")
-       (validate-signature (current-input-port)))
       (("--help")
        (display (G_ "Usage: guix authenticate OPTION...
-Sign or verify the signature on the given file.  This tool is meant to
-be used internally by 'guix-daemon'.\n")))
+Sign data or verify signatures.  This tool is meant to be used internally by
+'guix-daemon'.\n")))
       (("--version")
        (show-version-and-exit "guix authenticate"))
-      (else
-       (leave (G_ "wrong arguments"))))))
+      (()
+       (let ((acl (current-acl)))
+         (let loop ((key-pairs vlist-null))
+           ;; Read a request on standard input and reply.
+           (match (read-command (current-input-port))
+             (("sign" signing-key (= base16-string->bytevector hash))
+              (let* ((key-pairs keys
+                                (match (vhash-assoc signing-key key-pairs)
+                                  ((_ . keys)
+                                   (values key-pairs keys))
+                                  (#f
+                                   (let ((keys (load-key-pair signing-key)))
+                                     (values (vhash-cons signing-key keys
+                                                         key-pairs)
+                                             keys))))))
+                (with-reply (canonical-sexp->string
+                             (match keys
+                               ((public . secret)
+                                (sign-with-key public secret hash)))))
+                (loop key-pairs)))
+             (("verify" signature)
+              (with-reply (bytevector->base16-string
+                           (validate-signature
+                            (string->canonical-sexp signature)
+                            acl)))
+              (loop key-pairs))
+             (()
+              (exit 0))
+             (commands
+              (warning (G_ "~s: invalid command; ignoring~%") commands)
+              (send-reply (reply-code command-not-found)
+                          "invalid command")
+              (loop key-pairs))))))
+      (_
+       (leave (G_ "wrong arguments~%"))))))
 
 ;;; authenticate.scm ends here
diff --git a/guix/scripts/build.scm b/guix/scripts/build.scm
index 6286a43c02..a959cb827d 100644
--- a/guix/scripts/build.scm
+++ b/guix/scripts/build.scm
@@ -26,43 +26,38 @@
   #:use-module (guix store)
   #:use-module (guix derivations)
   #:use-module (guix packages)
+  #:use-module (guix memoization)
   #:use-module (guix grafts)
 
   #:use-module (guix utils)
 
-  ;; Use the procedure that destructures "NAME-VERSION" forms.
-  #:use-module ((guix build utils)
-                #:select ((package-name->name+version
-                           . hyphen-package-name->name+version)))
-
   #:use-module (guix monads)
   #:use-module (guix gexp)
   #:use-module (guix profiles)
+  #:use-module (guix diagnostics)
   #:autoload   (guix http-client) (http-fetch http-get-error?)
   #:use-module (ice-9 format)
   #:use-module (ice-9 match)
   #:use-module (ice-9 vlist)
   #:use-module (srfi srfi-1)
+  #:use-module (srfi srfi-9)
   #:use-module (srfi srfi-11)
   #:use-module (srfi srfi-26)
   #:use-module (srfi srfi-34)
+  #:use-module (srfi srfi-35)
   #:use-module (srfi srfi-37)
   #:use-module (gnu packages)
-  #:autoload   (guix download) (download-to-store)
-  #:autoload   (guix git-download) (git-reference? git-reference-url)
-  #:autoload   (guix git) (git-checkout git-checkout? git-checkout-url)
   #:use-module ((guix status) #:select (with-status-verbosity))
   #:use-module ((guix progress) #:select (current-terminal-columns))
   #:use-module ((guix build syscalls) #:select (terminal-columns))
-  #:export (%standard-build-options
+  #:use-module (guix transformations)
+  #:export (log-url
+
+            %standard-build-options
             set-build-options-from-command-line
             set-build-options-from-command-line*
             show-build-options-help
 
-            %transformation-options
-            options->transformation
-            show-transformation-options-help
-
             guix-build
             register-root
             register-root*))
@@ -147,340 +142,6 @@ found.  Return #f if no build log was found."
 (define register-root*
   (store-lift register-root))
 
-(define (numeric-extension? file-name)
-  "Return true if FILE-NAME ends with digits."
-  (string-every char-set:hex-digit (file-extension file-name)))
-
-(define (tarball-base-name file-name)
-  "Return the \"base\" of FILE-NAME, removing '.tar.gz' or similar
-extensions."
-  ;; TODO: Factorize.
-  (cond ((not (file-extension file-name))
-         file-name)
-        ((numeric-extension? file-name)
-         file-name)
-        ((string=? (file-extension file-name) "tar")
-         (file-sans-extension file-name))
-        ((file-extension file-name)
-         =>
-         (match-lambda
-           ("scm" file-name)
-           (else  (tarball-base-name (file-sans-extension file-name)))))
-        (else
-         file-name)))
-
-(define* (package-with-source store p uri #:optional version)
-  "Return a package based on P but with its source taken from URI.  Extract
-the new package's version number from URI."
-  (let ((base (tarball-base-name (basename uri))))
-    (let-values (((_ version*)
-                  (hyphen-package-name->name+version base)))
-      (package (inherit p)
-               (version (or version version*
-                            (package-version p)))
-
-               ;; Use #:recursive? #t to allow for directories.
-               (source (download-to-store store uri
-                                          #:recursive? #t))
-
-               ;; Override the replacement, otherwise '--with-source' would
-               ;; have no effect.
-               (replacement #f)))))
-
-
-;;;
-;;; Transformations.
-;;;
-
-(define (transform-package-source sources)
-  "Return a transformation procedure that replaces package sources with the
-matching URIs given in SOURCES."
-  (define new-sources
-    (map (lambda (uri)
-           (match (string-index uri #\=)
-             (#f
-              ;; Determine the package name and version from URI.
-              (call-with-values
-                  (lambda ()
-                    (hyphen-package-name->name+version
-                     (tarball-base-name (basename uri))))
-                (lambda (name version)
-                  (list name version uri))))
-             (index
-              ;; What's before INDEX is a "PKG@VER" or "PKG" spec.
-              (call-with-values
-                  (lambda ()
-                    (package-name->name+version (string-take uri index)))
-                (lambda (name version)
-                  (list name version
-                        (string-drop uri (+ 1 index))))))))
-         sources))
-
-  (lambda (store obj)
-    (let loop ((sources  new-sources)
-               (result   '()))
-      (match obj
-        ((? package? p)
-         (match (assoc-ref sources (package-name p))
-           ((version source)
-            (package-with-source store p source version))
-           (#f
-            p)))
-        (_
-         obj)))))
-
-(define (evaluate-replacement-specs specs proc)
-  "Parse SPECS, a list of strings like \"guile=guile@2.1\" and return a list
-of package spec/procedure pairs as expected by 'package-input-rewriting/spec'.
-PROC is called with the package to be replaced and its replacement according
-to SPECS.  Raise an error if an element of SPECS uses invalid syntax, or if a
-package it refers to could not be found."
-  (define not-equal
-    (char-set-complement (char-set #\=)))
-
-  (map (lambda (spec)
-         (match (string-tokenize spec not-equal)
-           ((spec new)
-            (cons spec
-                  (let ((new (specification->package new)))
-                    (lambda (old)
-                      (proc old new)))))
-           (x
-            (leave (G_ "invalid replacement specification: ~s~%") spec))))
-       specs))
-
-(define (transform-package-inputs replacement-specs)
-  "Return a procedure that, when passed a package, replaces its direct
-dependencies according to REPLACEMENT-SPECS.  REPLACEMENT-SPECS is a list of
-strings like \"guile=guile@2.1\" meaning that, any dependency on a package
-called \"guile\" must be replaced with a dependency on a version 2.1 of
-\"guile\"."
-  (let* ((replacements (evaluate-replacement-specs replacement-specs
-                                                   (lambda (old new)
-                                                     new)))
-         (rewrite      (package-input-rewriting/spec replacements)))
-    (lambda (store obj)
-      (if (package? obj)
-          (rewrite obj)
-          obj))))
-
-(define (transform-package-inputs/graft replacement-specs)
-  "Return a procedure that, when passed a package, replaces its direct
-dependencies according to REPLACEMENT-SPECS.  REPLACEMENT-SPECS is a list of
-strings like \"gnutls=gnutls@3.5.4\" meaning that packages are built using the
-current 'gnutls' package, after which version 3.5.4 is grafted onto them."
-  (define (set-replacement old new)
-    (package (inherit old) (replacement new)))
-
-  (let* ((replacements (evaluate-replacement-specs replacement-specs
-                                                   set-replacement))
-         (rewrite      (package-input-rewriting/spec replacements)))
-    (lambda (store obj)
-      (if (package? obj)
-          (rewrite obj)
-          obj))))
-
-(define %not-equal
-  (char-set-complement (char-set #\=)))
-
-(define (package-git-url package)
-  "Return the URL of the Git repository for package, or raise an error if
-the source of PACKAGE is not fetched from a Git repository."
-  (let ((source (package-source package)))
-    (cond ((and (origin? source)
-                (git-reference? (origin-uri source)))
-           (git-reference-url (origin-uri source)))
-          ((git-checkout? source)
-           (git-checkout-url source))
-          (else
-           (leave (G_ "the source of ~a is not a Git reference~%")
-                  (package-full-name package))))))
-
-(define (evaluate-git-replacement-specs specs proc)
-  "Parse SPECS, a list of strings like \"guile=stable-2.2\", and return a list
-of package pairs, where (PROC PACKAGE URL BRANCH-OR-COMMIT) returns the
-replacement package.  Raise an error if an element of SPECS uses invalid
-syntax, or if a package it refers to could not be found."
-  (map (lambda (spec)
-         (match (string-tokenize spec %not-equal)
-           ((spec branch-or-commit)
-            (define (replace old)
-              (let* ((source (package-source old))
-                     (url    (package-git-url old)))
-                (proc old url branch-or-commit)))
-
-            (cons spec replace))
-           (x
-            (leave (G_ "invalid replacement specification: ~s~%") spec))))
-       specs))
-
-(define (transform-package-source-branch replacement-specs)
-  "Return a procedure that, when passed a package, replaces its direct
-dependencies according to REPLACEMENT-SPECS.  REPLACEMENT-SPECS is a list of
-strings like \"guile-next=stable-3.0\" meaning that packages are built using
-'guile-next' from the latest commit on its 'stable-3.0' branch."
-  (define (replace old url branch)
-    (package
-      (inherit old)
-      (version (string-append "git." (string-map (match-lambda
-                                                   (#\/ #\-)
-                                                   (chr chr))
-                                                 branch)))
-      (source (git-checkout (url url) (branch branch)
-                            (recursive? #t)))))
-
-  (let* ((replacements (evaluate-git-replacement-specs replacement-specs
-                                                       replace))
-         (rewrite      (package-input-rewriting/spec replacements)))
-    (lambda (store obj)
-      (if (package? obj)
-          (rewrite obj)
-          obj))))
-
-(define (transform-package-source-commit replacement-specs)
-  "Return a procedure that, when passed a package, replaces its direct
-dependencies according to REPLACEMENT-SPECS.  REPLACEMENT-SPECS is a list of
-strings like \"guile-next=cabba9e\" meaning that packages are built using
-'guile-next' from commit 'cabba9e'."
-  (define (replace old url commit)
-    (package
-      (inherit old)
-      (version (if (and (> (string-length commit) 1)
-                        (string-prefix? "v" commit)
-                        (char-set-contains? char-set:digit
-                                            (string-ref commit 1)))
-                   (string-drop commit 1)        ;looks like a tag like "v1.0"
-                   (string-append "git."
-                                  (if (< (string-length commit) 7)
-                                      commit
-                                      (string-take commit 7)))))
-      (source (git-checkout (url url) (commit commit)
-                            (recursive? #t)))))
-
-  (let* ((replacements (evaluate-git-replacement-specs replacement-specs
-                                                       replace))
-         (rewrite      (package-input-rewriting/spec replacements)))
-    (lambda (store obj)
-      (if (package? obj)
-          (rewrite obj)
-          obj))))
-
-(define (transform-package-source-git-url replacement-specs)
-  "Return a procedure that, when passed a package, replaces its dependencies
-according to REPLACEMENT-SPECS.  REPLACEMENT-SPECS is a list of strings like
-\"guile-json=https://gitthing.com/…\" meaning that packages are built using
-a checkout of the Git repository at the given URL."
-  (define replacements
-    (map (lambda (spec)
-           (match (string-tokenize spec %not-equal)
-             ((spec url)
-              (cons spec
-                    (lambda (old)
-                      (package
-                        (inherit old)
-                        (source (git-checkout (url url)
-                                              (recursive? #t)))))))
-             (_
-              (leave (G_ "~a: invalid Git URL replacement specification~%")
-                     spec))))
-         replacement-specs))
-
-  (define rewrite
-    (package-input-rewriting/spec replacements))
-
-  (lambda (store obj)
-    (if (package? obj)
-        (rewrite obj)
-        obj)))
-
-(define %transformations
-  ;; Transformations that can be applied to things to build.  The car is the
-  ;; key used in the option alist, and the cdr is the transformation
-  ;; procedure; it is called with two arguments: the store, and a list of
-  ;; things to build.
-  `((with-source . ,transform-package-source)
-    (with-input  . ,transform-package-inputs)
-    (with-graft  . ,transform-package-inputs/graft)
-    (with-branch . ,transform-package-source-branch)
-    (with-commit . ,transform-package-source-commit)
-    (with-git-url . ,transform-package-source-git-url)))
-
-(define %transformation-options
-  ;; The command-line interface to the above transformations.
-  (let ((parser (lambda (symbol)
-                  (lambda (opt name arg result . rest)
-                    (apply values
-                           (alist-cons symbol arg result)
-                           rest)))))
-    (list (option '("with-source") #t #f
-                  (parser 'with-source))
-          (option '("with-input") #t #f
-                  (parser 'with-input))
-          (option '("with-graft") #t #f
-                  (parser 'with-graft))
-          (option '("with-branch") #t #f
-                  (parser 'with-branch))
-          (option '("with-commit") #t #f
-                  (parser 'with-commit))
-          (option '("with-git-url") #t #f
-                  (parser 'with-git-url)))))
-
-(define (show-transformation-options-help)
-  (display (G_ "
-      --with-source=SOURCE
-                         use SOURCE when building the corresponding package"))
-  (display (G_ "
-      --with-input=PACKAGE=REPLACEMENT
-                         replace dependency PACKAGE by REPLACEMENT"))
-  (display (G_ "
-      --with-graft=PACKAGE=REPLACEMENT
-                         graft REPLACEMENT on packages that refer to PACKAGE"))
-  (display (G_ "
-      --with-branch=PACKAGE=BRANCH
-                         build PACKAGE from the latest commit of BRANCH"))
-  (display (G_ "
-      --with-commit=PACKAGE=COMMIT
-                         build PACKAGE from COMMIT"))
-  (display (G_ "
-      --with-git-url=PACKAGE=URL
-                         build PACKAGE from the repository at URL")))
-
-
-(define (options->transformation opts)
-  "Return a procedure that, when passed an object to build (package,
-derivation, etc.), applies the transformations specified by OPTS."
-  (define applicable
-    ;; List of applicable transformations as symbol/procedure pairs in the
-    ;; order in which they appear on the command line.
-    (filter-map (match-lambda
-                  ((key . value)
-                   (match (any (match-lambda
-                                 ((k . proc)
-                                  (and (eq? k key) proc)))
-                               %transformations)
-                     (#f
-                      #f)
-                     (transform
-                      ;; XXX: We used to pass TRANSFORM a list of several
-                      ;; arguments, but we now pass only one, assuming that
-                      ;; transform composes well.
-                      (cons key (transform (list value)))))))
-                (reverse opts)))
-
-  (lambda (store obj)
-    (fold (match-lambda*
-            (((name . transform) obj)
-             (let ((new (transform store obj)))
-               (when (eq? new obj)
-                 (warning (G_ "transformation '~a' had no effect on ~a~%")
-                          name
-                          (if (package? obj)
-                              (package-full-name obj)
-                              obj)))
-               new)))
-          obj
-          applicable)))
-
 
 ;;;
 ;;; Standard command-line build options.
@@ -805,7 +466,28 @@ must be one of 'package', 'all', or 'transitive'~%")
 build---packages, gexps, derivations, and so on."
   (define (validate-type x)
     (unless (or (derivation? x) (file-like? x) (gexp? x) (procedure? x))
-      (leave (G_ "~s: not something we can build~%") x)))
+      (raise (make-compound-condition
+               (formatted-message (G_ "~s: not something we can build~%") x)
+               (condition
+                (&fix-hint
+                 (hint
+                   (if (unspecified? x)
+                       (G_ "If you build from a file, make sure the last Scheme
+expression returns a package value.  @code{define-public} defines a variable,
+but returns @code{#<unspecified>}.  To fix this, add a Scheme expression at
+the end of the file that consists only of the package's variable name you
+defined, as in this example:
+
+@example
+(define-public my-package
+  (package
+    ...))
+
+my-package
+@end example")
+                       (G_ "If you build from a file, make sure the last
+Scheme expression returns a package, gexp, derivation or a list of such
+values.")))))))))
 
   (define (ensure-list x)
     (let ((lst (match x
@@ -875,8 +557,7 @@ build."
       (systems systems)))
 
   (define things-to-build
-    (map (cut transform store <>)
-         (options->things-to-build opts)))
+    (map transform (options->things-to-build opts)))
 
   (define (compute-derivation obj system)
     ;; Compute the derivation of OBJ for SYSTEM.
@@ -945,7 +626,10 @@ needed."
 ;;; Entry point.
 ;;;
 
-(define (guix-build . args)
+(define-command (guix-build . args)
+  (category packaging)
+  (synopsis "build packages or derivations without installing them")
+
   (define opts
     (parse-command-line args %options
                         (list %default-options)))
diff --git a/guix/scripts/challenge.scm b/guix/scripts/challenge.scm
index 624f51b200..cc9cbe6f27 100644
--- a/guix/scripts/challenge.scm
+++ b/guix/scripts/challenge.scm
@@ -28,6 +28,7 @@
   #:use-module ((guix progress) #:hide (dump-port*))
   #:use-module (guix serialization)
   #:use-module (guix scripts substitute)
+  #:use-module (guix narinfo)
   #:use-module (rnrs bytevectors)
   #:autoload   (guix http-client) (http-fetch)
   #:use-module ((guix build syscalls) #:select (terminal-columns))
@@ -210,6 +211,7 @@ taken since we do not import the archives."
                         (cons `(,file ,type ,(port-sha256* port size))
                               result))))
                     ('directory result)
+                    ('directory-complete result)
                     ('symlink
                      (cons `(,file ,type ,contents) result))))
                 '()
@@ -475,7 +477,10 @@ Challenge the substitutes for PACKAGE... provided by one or more servers.\n"))
 ;;; Entry point.
 ;;;
 
-(define (guix-challenge . args)
+(define-command (guix-challenge . args)
+  (category packaging)
+  (synopsis "challenge substitute servers, comparing their binaries")
+
   (with-error-handling
     (let* ((opts     (parse-command-line args %options (list %default-options)
                                          #:build-options? #f))
diff --git a/guix/scripts/container.scm b/guix/scripts/container.scm
index 8041d64b6b..2369437043 100644
--- a/guix/scripts/container.scm
+++ b/guix/scripts/container.scm
@@ -20,6 +20,7 @@
 (define-module (guix scripts container)
   #:use-module (ice-9 match)
   #:use-module (guix ui)
+  #:use-module (guix scripts)
   #:export (guix-container))
 
 (define (show-help)
@@ -46,7 +47,10 @@ Build and manipulate Linux containers.\n"))
         (proc (string->symbol (string-append "guix-container-" name))))
     (module-ref module proc)))
 
-(define (guix-container . args)
+(define-command (guix-container . args)
+  (category development)
+  (synopsis "run code in containers created by 'guix environment -C'")
+
   (with-error-handling
     (match args
       (()
diff --git a/guix/scripts/copy.scm b/guix/scripts/copy.scm
index 16d2de30f7..2780d4fbe9 100644
--- a/guix/scripts/copy.scm
+++ b/guix/scripts/copy.scm
@@ -20,6 +20,7 @@
   #:use-module (guix ui)
   #:use-module (guix scripts)
   #:use-module (guix ssh)
+  #:use-module ((ssh session) #:select (disconnect!))
   #:use-module (guix store)
   #:use-module ((guix status) #:select (with-status-verbosity))
   #:use-module (guix utils)
@@ -71,9 +72,10 @@ package names, build the underlying packages before sending them."
     (and (build-derivations local drv)
          (let* ((session (open-ssh-session host #:user user
                                            #:port (or port 22)))
-                (sent    (send-files local items
-                                     (connect-to-remote-daemon session)
+                (remote  (connect-to-remote-daemon session))
+                (sent    (send-files local items remote
                                      #:recursive? #t)))
+           (close-connection remote)
            (format #t "~{~a~%~}" sent)
            sent))))
 
@@ -93,6 +95,8 @@ package names, build the underlying packages before sending them."
                    (options->derivations+files local opts))
                   ((retrieved)
                    (retrieve-files local items remote #:recursive? #t)))
+      (close-connection remote)
+      (disconnect! session)
       (format #t "~{~a~%~}" retrieved)
       retrieved)))
 
@@ -166,7 +170,10 @@ Copy ITEMS to or from the specified host over SSH.\n"))
 ;;; Entry point.
 ;;;
 
-(define (guix-copy . args)
+(define-command (guix-copy . args)
+  (category plumbing)
+  (synopsis "copy store items remotely over SSH")
+
   (with-error-handling
     (let* ((opts     (parse-command-line args %options (list %default-options)))
            (source   (assoc-ref opts 'source))
diff --git a/guix/scripts/deploy.scm b/guix/scripts/deploy.scm
index 4a68197620..0725fba54b 100644
--- a/guix/scripts/deploy.scm
+++ b/guix/scripts/deploy.scm
@@ -120,23 +120,35 @@ Perform the deployment specified by FILE.\n"))
   (info (G_ "deploying to ~a...~%")
         (machine-display-name machine))
 
-  (guard (c ((message-condition? c)
-             (report-error (G_ "failed to deploy ~a: ~a~%")
-                           (machine-display-name machine)
-                           (condition-message c)))
-            ((deploy-error? c)
-             (when (deploy-error-should-roll-back c)
-               (info (G_ "rolling back ~a...~%")
-                     (machine-display-name machine))
-               (run-with-store store (roll-back-machine machine)))
-             (apply throw (deploy-error-captured-args c))))
-    (run-with-store store (deploy-machine machine))
+  (guard* (c
+           ;; On Guile 3.0, exceptions such as 'unbound-variable' are compound
+           ;; and include a '&message'.  However, that message only contains
+           ;; the format string.  Thus, special-case it here to avoid
+           ;; displaying a bare format string.
+           ((cond-expand
+              (guile-3
+               ((exception-predicate &exception-with-kind-and-args) c))
+              (else #f))
+            (raise c))
+
+           ((message-condition? c)
+            (report-error (G_ "failed to deploy ~a: ~a~%")
+                          (machine-display-name machine)
+                          (condition-message c)))
+           ((deploy-error? c)
+            (when (deploy-error-should-roll-back c)
+              (info (G_ "rolling back ~a...~%")
+                    (machine-display-name machine))
+              (run-with-store store (roll-back-machine machine)))
+            (apply throw (deploy-error-captured-args c))))
+      (run-with-store store (deploy-machine machine))
 
     (info (G_ "successfully deployed ~a~%")
           (machine-display-name machine))))
 
 
-(define (guix-deploy . args)
+(define-command (guix-deploy . args)
+  (synopsis "deploy operating systems on a set of machines")
   (define (handle-argument arg result)
     (alist-cons 'file arg result))
 
diff --git a/guix/scripts/describe.scm b/guix/scripts/describe.scm
index bc868ffbbf..c3667516eb 100644
--- a/guix/scripts/describe.scm
+++ b/guix/scripts/describe.scm
@@ -304,7 +304,8 @@ text.  The hyperlink links to a web view of COMMIT, when available."
 ;;; Entry point.
 ;;;
 
-(define (guix-describe . args)
+(define-command (guix-describe . args)
+  (synopsis "describe the channel revisions currently used")
   (let* ((opts    (args-fold* args %options
                               (lambda (opt name arg result)
                                 (leave (G_ "~A: unrecognized option~%")
diff --git a/guix/scripts/discover.scm b/guix/scripts/discover.scm
new file mode 100644
index 0000000000..6aade81ed1
--- /dev/null
+++ b/guix/scripts/discover.scm
@@ -0,0 +1,142 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2020 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 (guix scripts discover)
+  #:use-module (guix avahi)
+  #:use-module (guix config)
+  #:use-module (guix scripts)
+  #:use-module (guix ui)
+  #:use-module (guix utils)
+  #:use-module (guix build syscalls)
+  #:use-module (guix build utils)
+  #:use-module (guix scripts publish)
+  #:use-module (ice-9 rdelim)
+  #:use-module (srfi srfi-37)
+  #:export (read-substitute-urls
+
+            guix-discover))
+
+(define (show-help)
+  (format #t (G_ "Usage: guix discover [OPTION]...
+Discover Guix related services using Avahi.\n"))
+  (display (G_ "
+  -c, --cache=DIRECTORY     cache discovery results in DIRECTORY"))
+  (display (G_ "
+  -h, --help                display this help and exit"))
+  (display (G_ "
+  -V, --version             display version information and exit"))
+  (newline)
+  (show-bug-report-information))
+
+(define %options
+  (list (option '(#\c "cache") #t #f
+                (lambda (opt name arg result)
+                  (alist-cons 'cache arg result)))
+        (option '(#\h "help") #f #f
+                (lambda _
+                  (show-help)
+                  (exit 0)))
+        (option '(#\V "version") #f #f
+                (lambda _
+                  (show-version-and-exit "guix discover")))))
+
+(define %default-options
+  `((cache . ,%state-directory)))
+
+
+;;;
+;;; Publish servers.
+;;;
+
+(define %publish-services
+  ;; Set of discovered publish services.
+  (make-hash-table))
+
+(define (publish-file cache-directory)
+  "Return the name of the file storing the discovered publish services inside
+CACHE-DIRECTORY."
+  (let ((directory (string-append cache-directory "/discover")))
+    (string-append directory "/publish")))
+
+(define %publish-file
+  (make-parameter (publish-file %state-directory)))
+
+(define* (write-publish-file #:key (file (%publish-file)))
+  "Dump the content of %PUBLISH-SERVICES hash table into FILE.  Use a write
+lock on FILE to synchronize with any potential readers."
+  (with-atomic-file-output file
+    (lambda (port)
+      (hash-for-each
+       (lambda (name service)
+         (format port "http://~a:~a~%"
+                 (avahi-service-address service)
+                 (avahi-service-port service)))
+       %publish-services)))
+  (chmod file #o644))
+
+(define* (read-substitute-urls #:key (file (%publish-file)))
+  "Read substitute urls list from FILE and return it.  Use a read lock on FILE
+to synchronize with the writer."
+  (if (file-exists? file)
+      (call-with-input-file file
+        (lambda (port)
+          (let loop ((url (read-line port))
+                     (urls '()))
+            (if (eof-object? url)
+                urls
+                (loop (read-line port) (cons url urls))))))
+      '()))
+
+
+;;;
+;;; Entry point.
+;;;
+
+(define %services
+  ;; List of services we want to discover.
+  (list publish-service-type))
+
+(define (service-proc action service)
+  (let ((name (avahi-service-name service))
+        (type (avahi-service-type service)))
+    (when (string=? type publish-service-type)
+      (case action
+        ((new-service)
+         (hash-set! %publish-services name service))
+        ((remove-service)
+         (hash-remove! %publish-services name)))
+      (write-publish-file))))
+
+(define-command (guix-discover . args)
+  (category internal)
+  (synopsis "discover Guix related services using Avahi")
+
+  (with-error-handling
+    (let* ((opts (args-fold* args %options
+                             (lambda (opt name arg result)
+                               (leave (G_ "~A: unrecognized option~%") name))
+                             (lambda (arg result)
+                               (leave (G_ "~A: extraneous argument~%") arg))
+                             %default-options))
+           (cache (assoc-ref opts 'cache))
+           (publish-file (publish-file cache)))
+      (parameterize ((%publish-file publish-file))
+        (mkdir-p (dirname publish-file))
+        (false-if-exception (delete-file publish-file))
+        (avahi-browse-service-thread service-proc
+                                     #:types %services)))))
diff --git a/guix/scripts/download.scm b/guix/scripts/download.scm
index 589f62da9d..ce8dd8b02c 100644
--- a/guix/scripts/download.scm
+++ b/guix/scripts/download.scm
@@ -156,7 +156,10 @@ and 'base16' ('hex' and 'hexadecimal' can be used as well).\n"))
 ;;; Entry point.
 ;;;
 
-(define (guix-download . args)
+(define-command (guix-download . args)
+  (category packaging)
+  (synopsis "download a file to the store and print its hash")
+
   (define (parse-options)
     ;; Return the alist of option values.
     (args-fold* args %options
diff --git a/guix/scripts/edit.scm b/guix/scripts/edit.scm
index 43f3011869..49c9d945b6 100644
--- a/guix/scripts/edit.scm
+++ b/guix/scripts/edit.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2015, 2016, 2019 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2015, 2016, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2015 Mathieu Lirzin <mthl@gnu.org>
 ;;; Copyright © 2020 Simon Tournier <zimon.toutoune@gmail.com>
 ;;;
@@ -78,7 +78,10 @@ line."
         (search-path* %load-path (location-file location))))
 
 
-(define (guix-edit . args)
+(define-command (guix-edit . args)
+  (category packaging)
+  (synopsis "view and edit package definitions")
+
   (define (parse-arguments)
     ;; Return the list of package names.
     (args-fold* args %options
diff --git a/guix/scripts/environment.scm b/guix/scripts/environment.scm
index b8979cac19..f4d12f89bf 100644
--- a/guix/scripts/environment.scm
+++ b/guix/scripts/environment.scm
@@ -32,17 +32,17 @@
   #:use-module ((guix gexp) #:select (lower-object))
   #:use-module (guix scripts)
   #:use-module (guix scripts build)
+  #:use-module (guix transformations)
   #:use-module (gnu build linux-container)
   #:use-module (gnu build accounts)
+  #:use-module ((guix build syscalls) #:select (set-network-interface-up))
   #:use-module (gnu system linux-container)
   #:use-module (gnu system file-systems)
   #:use-module (gnu packages)
   #:use-module (gnu packages bash)
   #:use-module ((gnu packages bootstrap)
                 #:select (bootstrap-executable %bootstrap-guile))
-  #:use-module (ice-9 format)
   #:use-module (ice-9 match)
-  #:use-module (ice-9 rdelim)
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-11)
   #:use-module (srfi srfi-26)
@@ -321,7 +321,7 @@ for the corresponding packages."
                    (manifest-entry-output e2))))
 
   (define transform
-    (cut (options->transformation opts) store <>))
+    (options->transformation opts))
 
   (define* (package->manifest-entry* package #:optional (output "out"))
     (package->manifest-entry (transform package) output))
@@ -477,6 +477,7 @@ WHILE-LIST."
                             (group-entry (gid 65534) ;the overflow GID
                                          (name "overflow"))))
             (home-dir (password-entry-directory passwd))
+            (logname  (password-entry-name passwd))
             (environ  (filter (match-lambda
                                 ((variable . value)
                                  (find (cut regexp-exec <> variable)
@@ -528,6 +529,10 @@ WHILE-LIST."
                       ;; The same variables as in Nix's 'build.cc'.
                       '("TMPDIR" "TEMPDIR" "TMP" "TEMP"))
 
+            ;; Some programs expect USER and/or LOGNAME to be set.
+            (setenv "LOGNAME" logname)
+            (setenv "USER" logname)
+
             ;; Create a dummy home directory.
             (mkdir-p home-dir)
             (setenv "HOME" home-dir)
@@ -544,6 +549,16 @@ WHILE-LIST."
             (write-passwd (list passwd))
             (write-group groups)
 
+            (unless network?
+              ;; When isolated from the network, provide a minimal /etc/hosts
+              ;; to resolve "localhost".
+              (call-with-output-file "/etc/hosts"
+                (lambda (port)
+                  (display "127.0.0.1 localhost\n" port)))
+
+              ;; Allow local AF_INET communications.
+              (set-network-interface-up "lo"))
+
             ;; For convenience, start in the user's current working
             ;; directory or, if unmapped, the home directory.
             (chdir (if map-cwd?
@@ -559,7 +574,11 @@ WHILE-LIST."
             (primitive-exit/status
              ;; A container's environment is already purified, so no need to
              ;; request it be purified again.
-             (launch-environment command profile manifest #:pure? #f)))
+             (launch-environment command
+                                 (if link-profile?
+                                     (string-append home-dir "/.guix-profile")
+                                     profile)
+                                 manifest #:pure? #f)))
           #:guest-uid uid
           #:guest-gid gid
           #:namespaces (if network?
@@ -656,7 +675,7 @@ message if any test fails."
   (let* ((root (if (string-prefix? "/" root)
                    root
                    (string-append (canonicalize-path (dirname root))
-                                  "/" root))))
+                                  "/" (basename root)))))
     (catch 'system-error
       (lambda ()
         (symlink target root)
@@ -673,7 +692,10 @@ message if any test fails."
 ;;; Entry point.
 ;;;
 
-(define (guix-environment . args)
+(define-command (guix-environment . args)
+  (category development)
+  (synopsis "spawn one-off software environments")
+
   (with-error-handling
     (let* ((opts       (parse-args args))
            (pure?      (assoc-ref opts 'pure))
diff --git a/guix/scripts/gc.scm b/guix/scripts/gc.scm
index ab7c13315f..043273f491 100644
--- a/guix/scripts/gc.scm
+++ b/guix/scripts/gc.scm
@@ -220,7 +220,9 @@ is deprecated; use '-D'~%"))
 ;;; Entry point.
 ;;;
 
-(define (guix-gc . args)
+(define-command (guix-gc . args)
+  (synopsis "invoke the garbage collector")
+
   (define (parse-options)
     ;; Return the alist of option values.
     (parse-command-line args %options (list %default-options)
diff --git a/guix/scripts/git.scm b/guix/scripts/git.scm
index bc829cbe99..4436d8a6e0 100644
--- a/guix/scripts/git.scm
+++ b/guix/scripts/git.scm
@@ -19,6 +19,7 @@
 (define-module (guix scripts git)
   #:use-module (ice-9 match)
   #:use-module (guix ui)
+  #:use-module (guix scripts)
   #:export (guix-git))
 
 (define (show-help)
@@ -45,7 +46,10 @@ Operate on Git repositories.\n"))
         (proc (string->symbol (string-append "guix-git-" name))))
     (module-ref module proc)))
 
-(define (guix-git . args)
+(define-command (guix-git . args)
+  (category plumbing)
+  (synopsis "operate on Git repositories")
+
   (with-error-handling
     (match args
       (()
diff --git a/guix/scripts/graph.scm b/guix/scripts/graph.scm
index 73d9269de2..ddfc6ba497 100644
--- a/guix/scripts/graph.scm
+++ b/guix/scripts/graph.scm
@@ -34,11 +34,12 @@
   #:use-module (guix sets)
   #:use-module ((guix diagnostics)
                 #:select (location-file formatted-message))
-  #:use-module ((guix scripts build)
+  #:use-module ((guix transformations)
                 #:select (show-transformation-options-help
                           options->transformation
-                          %standard-build-options
                           %transformation-options))
+  #:use-module ((guix scripts build)
+                #:select (%standard-build-options))
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-26)
   #:use-module (srfi srfi-34)
@@ -565,7 +566,10 @@ Emit a representation of the dependency graph of PACKAGE...\n"))
 ;;; Entry point.
 ;;;
 
-(define (guix-graph . args)
+(define-command (guix-graph . args)
+  (category packaging)
+  (synopsis "view and query package dependency graphs")
+
   (with-error-handling
     (define opts
       (parse-command-line args %options
@@ -582,11 +586,11 @@ Emit a representation of the dependency graph of PACKAGE...\n"))
                                       (('argument . (? store-path? item))
                                        item)
                                       (('argument . spec)
-                                       (transform store
-                                                  (specification->package spec)))
+                                       (transform
+                                        (specification->package spec)))
                                       (('expression . exp)
-                                       (transform store
-                                                  (read/eval-package-expression exp)))
+                                       (transform
+                                        (read/eval-package-expression exp)))
                                       (_ #f))
                                     opts)))
         (run-with-store store
diff --git a/guix/scripts/hash.scm b/guix/scripts/hash.scm
index 9b4f419a24..b8622373cc 100644
--- a/guix/scripts/hash.scm
+++ b/guix/scripts/hash.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012, 2013, 2014, 2016, 2017, 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012, 2013, 2014, 2016, 2017, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
 ;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
 ;;; Copyright © 2018 Tim Gesthuizen <tim.gesthuizen@yahoo.de>
@@ -116,7 +116,10 @@ and 'base16' ('hex' and 'hexadecimal' can be used as well).\n"))
 ;;; Entry point.
 ;;;
 
-(define (guix-hash . args)
+(define-command (guix-hash . args)
+  (category packaging)
+  (synopsis "compute the cryptographic hash of a file")
+
   (define (parse-options)
     ;; Return the alist of option values.
     (parse-command-line args %options (list %default-options)
@@ -148,7 +151,8 @@ and 'base16' ('hex' and 'hexadecimal' can be used as well).\n"))
       ;; Catch and gracefully report possible '&nar-error' conditions.
       (with-error-handling
         (if (assoc-ref opts 'recursive?)
-            (let-values (((port get-hash) (open-sha256-port)))
+            (let-values (((port get-hash)
+                          (open-hash-port (assoc-ref opts 'hash-algorithm))))
               (write-file file port #:select? select?)
               (force-output port)
               (get-hash))
diff --git a/guix/scripts/import.scm b/guix/scripts/import.scm
index c6cc93fad8..0a3863f965 100644
--- a/guix/scripts/import.scm
+++ b/guix/scripts/import.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012, 2013, 2014 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012, 2013, 2014, 2020 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2014 David Thompson <davet@gnu.org>
 ;;; Copyright © 2018 Kyle Meyer <kyle@kyleam.com>
 ;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net>
@@ -21,6 +21,7 @@
 
 (define-module (guix scripts import)
   #:use-module (guix ui)
+  #:use-module (guix scripts)
   #:use-module (guix utils)
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-11)
@@ -98,7 +99,10 @@ Run IMPORTER with ARGS.\n"))
   (newline)
   (show-bug-report-information))
 
-(define (guix-import . args)
+(define-command (guix-import . args)
+  (category packaging)
+  (synopsis "import a package definition from an external repository")
+
   (match args
     (()
      (format (current-error-port)
diff --git a/guix/scripts/import/cran.scm b/guix/scripts/import/cran.scm
index d6f371ef3a..4767bc082d 100644
--- a/guix/scripts/import/cran.scm
+++ b/guix/scripts/import/cran.scm
@@ -1,6 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
-;;; Copyright © 2015, 2017, 2019 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2015, 2017, 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2020 Martin Becze <mjbecze@riseup.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -66,6 +67,10 @@ Import and convert the CRAN package for PACKAGE-NAME.\n"))
                  (lambda (opt name arg result)
                    (alist-cons 'repo (string->symbol arg)
                                (alist-delete 'repo result))))
+         (option '(#\s "style") #t #f
+                 (lambda (opt name arg result)
+                   (alist-cons 'style (string->symbol arg)
+                               (alist-delete 'style result))))
          (option '(#\r "recursive") #f #f
                  (lambda (opt name arg result)
                    (alist-cons 'recursive #t result)))
@@ -92,21 +97,24 @@ Import and convert the CRAN package for PACKAGE-NAME.\n"))
                              value)
                             (_ #f))
                            (reverse opts))))
-    (match args
-      ((package-name)
-       (if (assoc-ref opts 'recursive)
-           ;; Recursive import
-           (map package->definition
-                (cran-recursive-import package-name
-                                       (or (assoc-ref opts 'repo) 'cran)))
-           ;; Single import
-           (let ((sexp (cran->guix-package package-name
-                                           (or (assoc-ref opts 'repo) 'cran))))
-             (unless sexp
-               (leave (G_ "failed to download description for package '~a'~%")
-                      package-name))
-             sexp)))
-      (()
-       (leave (G_ "too few arguments~%")))
-      ((many ...)
-       (leave (G_ "too many arguments~%"))))))
+    (parameterize ((%input-style (assoc-ref opts 'style)))
+      (match args
+        ((package-name)
+         (if (assoc-ref opts 'recursive)
+             ;; Recursive import
+             (with-error-handling
+               (map package->definition
+                    (filter identity
+                            (cran-recursive-import package-name
+                                                   #:repo (or (assoc-ref opts 'repo) 'cran)))))
+             ;; Single import
+             (let ((sexp (cran->guix-package package-name
+                                             #:repo (or (assoc-ref opts 'repo) 'cran))))
+               (unless sexp
+                 (leave (G_ "failed to download description for package '~a'~%")
+                        package-name))
+               sexp)))
+        (()
+         (leave (G_ "too few arguments~%")))
+        ((many ...)
+         (leave (G_ "too many arguments~%")))))))
diff --git a/guix/scripts/import/crate.scm b/guix/scripts/import/crate.scm
index d834518c18..3a96defb86 100644
--- a/guix/scripts/import/crate.scm
+++ b/guix/scripts/import/crate.scm
@@ -2,7 +2,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2014 David Thompson <davet@gnu.org>
 ;;; Copyright © 2016 David Craven <david@craven.ch>
-;;; Copyright © 2019 Martin Becze <mjbecze@riseup.net>
+;;; Copyright © 2019, 2020 Martin Becze <mjbecze@riseup.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -42,7 +42,7 @@
 
 (define (show-help)
   (display (G_ "Usage: guix import crate PACKAGE-NAME
-Import and convert the crate.io package for PACKAGE-NAME.\n"))
+Import and convert the crates.io package for PACKAGE-NAME.\n"))
   (display (G_ "
   -r, --recursive        import packages recursively"))
   (newline)
@@ -95,19 +95,14 @@ Import and convert the crate.io package for PACKAGE-NAME.\n"))
          (package-name->name+version spec))
 
        (if (assoc-ref opts 'recursive)
-           (map (match-lambda
-                  ((and ('package ('name name) . rest) pkg)
-                   `(define-public ,(string->symbol name)
-                      ,pkg))
-                  (_ #f))
-                (crate-recursive-import name version))
-           (let ((sexp (crate->guix-package name version)))
+           (crate-recursive-import name #:version version)
+           (let ((sexp (crate->guix-package name #:version version #:include-dev-deps? #t)))
              (unless sexp
                (leave (G_ "failed to download meta-data for package '~a'~%")
                       (if version
                           (string-append name "@" version)
                           name)))
-             sexp)))
+             (list sexp))))
       (()
        (leave (G_ "too few arguments~%")))
       ((many ...)
diff --git a/guix/scripts/import/elpa.scm b/guix/scripts/import/elpa.scm
index d270d2b4bc..d6b38e5c4b 100644
--- a/guix/scripts/import/elpa.scm
+++ b/guix/scripts/import/elpa.scm
@@ -1,6 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
 ;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
+;;; Copyright © 2020 Martin Becze <mjbecze@riseup.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -95,14 +96,16 @@ Import the latest package named PACKAGE-NAME from an ELPA repository.\n"))
     (match args
       ((package-name)
        (if (assoc-ref opts 'recursive)
-           (map (match-lambda
-                  ((and ('package ('name name) . rest) pkg)
-                   `(define-public ,(string->symbol name)
-                      ,pkg))
-                  (_ #f))
-                (elpa-recursive-import package-name
-                                       (or (assoc-ref opts 'repo) 'gnu)))
-           (let ((sexp (elpa->guix-package package-name (assoc-ref opts 'repo))))
+           (with-error-handling
+             (map (match-lambda
+                    ((and ('package ('name name) . rest) pkg)
+                     `(define-public ,(string->symbol name)
+                        ,pkg))
+                    (_ #f))
+                  (elpa-recursive-import package-name
+                                         (or (assoc-ref opts 'repo) 'gnu))))
+           (let ((sexp (elpa->guix-package package-name
+                                           #:repo (assoc-ref opts 'repo))))
              (unless sexp
                (leave (G_ "failed to download package '~a'~%") package-name))
              sexp)))
diff --git a/guix/scripts/import/hackage.scm b/guix/scripts/import/hackage.scm
index 710e786a79..906dca24b1 100644
--- a/guix/scripts/import/hackage.scm
+++ b/guix/scripts/import/hackage.scm
@@ -49,7 +49,7 @@
 Import and convert the Hackage package for PACKAGE-NAME.  If PACKAGE-NAME
 includes a suffix constituted by a at-sign followed by a numerical version (as
 used with Guix packages), then a definition for the specified version of the
-package will be generated.  If no version suffix is pecified, then the
+package will be generated.  If no version suffix is specified, then the
 generated package definition will correspond to the latest available
 version.\n"))
   (display (G_ "
diff --git a/guix/scripts/import/opam.scm b/guix/scripts/import/opam.scm
index 20da1437fe..da9392821c 100644
--- a/guix/scripts/import/opam.scm
+++ b/guix/scripts/import/opam.scm
@@ -45,6 +45,8 @@ Import and convert the opam package for PACKAGE-NAME.\n"))
   (display (G_ "
   -r, --recursive        import packages recursively"))
   (display (G_ "
+      --repo             import packages from this opam repository"))
+  (display (G_ "
   -V, --version          display version information and exit"))
   (newline)
   (show-bug-report-information))
@@ -58,6 +60,9 @@ Import and convert the opam package for PACKAGE-NAME.\n"))
          (option '(#\V "version") #f #f
                  (lambda args
                    (show-version-and-exit "guix import opam")))
+         (option '(#f "repo") #t #f
+                 (lambda (opt name arg result)
+                   (alist-cons 'repo arg result)))
          (option '(#\r "recursive") #f #f
                  (lambda (opt name arg result)
                    (alist-cons 'recursive #t result)))
@@ -79,6 +84,7 @@ Import and convert the opam package for PACKAGE-NAME.\n"))
                 %default-options))
 
   (let* ((opts (parse-options))
+         (repo (and=> (assoc-ref opts 'repo) string->symbol))
          (args (filter-map (match-lambda
                             (('argument . value)
                              value)
@@ -93,9 +99,9 @@ Import and convert the opam package for PACKAGE-NAME.\n"))
                    `(define-public ,(string->symbol name)
                       ,pkg))
                   (_ #f))
-                (opam-recursive-import package-name))
+                (opam-recursive-import package-name #:repo repo))
            ;; Single import
-           (let ((sexp (opam->guix-package package-name)))
+           (let ((sexp (opam->guix-package package-name #:repo repo)))
              (unless sexp
                (leave (G_ "failed to download meta-data for package '~a'~%")
                       package-name))
diff --git a/guix/scripts/install.scm b/guix/scripts/install.scm
index d88e86e77a..63e625f266 100644
--- a/guix/scripts/install.scm
+++ b/guix/scripts/install.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2019, 2020 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -20,6 +20,7 @@
   #:use-module (guix ui)
   #:use-module (guix scripts package)
   #:use-module (guix scripts build)
+  #:use-module (guix transformations)
   #:use-module (guix scripts)
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-26)
@@ -66,7 +67,9 @@ This is an alias for 'guix package -i'.\n"))
                  %transformation-options
                  %standard-build-options)))
 
-(define (guix-install . args)
+(define-command (guix-install . args)
+  (synopsis "install packages")
+
   (define (handle-argument arg result arg-handler)
     ;; Treat all non-option arguments as package specs.
     (values (alist-cons 'install arg result)
diff --git a/guix/scripts/lint.scm b/guix/scripts/lint.scm
index 97ffd57301..c72dc3caad 100644
--- a/guix/scripts/lint.scm
+++ b/guix/scripts/lint.scm
@@ -1,7 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2014 Cyril Roelandt <tipecaml@gmail.com>
 ;;; Copyright © 2014, 2015 Eric Bavier <bavier@member.fsf.org>
-;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2015, 2016 Mathieu Lirzin <mthl@gnu.org>
 ;;; Copyright © 2016 Danny Milosavljevic <dannym+a@scratchpost.org>
 ;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com>
@@ -9,7 +9,8 @@
 ;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2018, 2019 Arun Isaac <arunisaac@systemreboot.net>
-;;; Copyright © 2019 Simon Tournier <zimon.toutoune@gmail.com>
+;;; Copyright © 2019, 2020 Simon Tournier <zimon.toutoune@gmail.com>
+;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -47,11 +48,15 @@
   ;; provided MESSAGE.
   (for-each
    (lambda (lint-warning)
-     (let ((package (lint-warning-package lint-warning))
-           (loc     (lint-warning-location lint-warning)))
-       (info loc (G_ "~a@~a: ~a~%")
-             (package-name package) (package-version package)
-             (lint-warning-message lint-warning))))
+     (let* ((package (lint-warning-package lint-warning))
+            (name    (package-name package))
+            (version (package-version package))
+            (loc     (lint-warning-location lint-warning))
+            (message (lint-warning-message lint-warning)))
+       (parameterize
+           ((guix-warning-port (current-output-port)))
+         (info loc (G_ "~a@~a: ~a~%")
+               name version message))))
    warnings))
 
 (define* (run-checkers package checkers #:key store)
@@ -98,6 +103,12 @@ run the checkers on all packages.\n"))
   (display (G_ "
   -c, --checkers=CHECKER1,CHECKER2...
                          only run the specified checkers"))
+   (display (G_ "
+  -x, --exclude=CHECKER1,CHECKER2...
+                         exclude the specified checkers"))
+  (display (G_ "
+  -n, --no-network       only run checkers that do not access the network"))
+
   (display (G_ "
   -L, --load-path=DIR    prepend DIR to the package module search path"))
   (newline)
@@ -110,32 +121,37 @@ run the checkers on all packages.\n"))
   (newline)
   (show-bug-report-information))
 
+(define (option-checker short-long)
+  ;; Factorize the creation of the two options -c/--checkers and -x/--exclude,
+  ;; see %options.  The parameter SHORT-LONG is the list containing the short
+  ;; and long name.  The alist uses the long name as symbol.
+  (option short-long #t #f
+          (lambda (opt name arg result)
+            (let ((names (map string->symbol (string-split arg #\,)))
+                  (checker-names (map lint-checker-name %all-checkers))
+                  (option-name (string->symbol (match short-long
+                                                 ((short long) long)))))
+              (for-each (lambda (c)
+                          (unless (memq c checker-names)
+                            (leave (G_ "~a: invalid checker~%") c)))
+                        names)
+              (alist-cons option-name
+                          (filter (lambda (checker)
+                                    (member (lint-checker-name checker)
+                                            names))
+                                  %all-checkers)
+                          result)))))
 
 (define %options
   ;; Specification of the command-line options.
   ;; TODO: add some options:
   ;; * --certainty=[low,medium,high]: only run checkers that have at least this
   ;;                                  'certainty'.
-  (list (option '(#\c "checkers") #t #f
-                (lambda (opt name arg result)
-                  (let ((names (map string->symbol (string-split arg #\,)))
-                        (checker-names (map lint-checker-name %all-checkers)))
-                    (for-each (lambda (c)
-                                (unless (memq c checker-names)
-                                  (leave (G_ "~a: invalid checker~%") c)))
-                              names)
-                    (alist-cons 'checkers
-                                (filter (lambda (checker)
-                                          (member (lint-checker-name checker)
-                                                  names))
-                                        %all-checkers)
-                                result))))
+  (list (option-checker '(#\c "checkers"))
+        (option-checker '(#\x "exclude"))
         (option '(#\n "no-network") #f #f
                 (lambda (opt name arg result)
-                  (alist-cons 'checkers
-                              %local-checkers
-                              (alist-delete 'checkers
-                                            result))))
+                  (alist-cons 'no-network? #t result)))
         (find (lambda (option)
                 (member "load-path" (option-names option)))
               %standard-build-options)
@@ -157,7 +173,10 @@ run the checkers on all packages.\n"))
 ;;; Entry Point
 ;;;
 
-(define (guix-lint . args)
+(define-command (guix-lint . args)
+  (category packaging)
+  (synopsis "validate package definitions")
+
   (define (parse-options)
     ;; Return the alist of option values.
     (parse-command-line args %options (list %default-options)
@@ -169,28 +188,38 @@ run the checkers on all packages.\n"))
                               value)
                              (_ #f))
                            (reverse opts)))
-         (checkers (or (assoc-ref opts 'checkers) %all-checkers)))
+         (no-checkers (or (assoc-ref opts 'exclude) '()))
+         (the-checkers (filter (lambda (checker)
+                                 (not (member checker no-checkers)))
+                               (or (assoc-ref opts 'checkers) %all-checkers)))
+         (checkers
+          (if (assoc-ref opts 'no-network?)
+              (filter (lambda (checker)
+                        (member checker %local-checkers))
+                      the-checkers)
+              the-checkers)))
 
     (when (assoc-ref opts 'list?)
       (list-checkers-and-exit checkers))
 
-    (let ((any-lint-checker-requires-store?
-           (any lint-checker-requires-store? checkers)))
-
-      (define (call-maybe-with-store proc)
-        (if any-lint-checker-requires-store?
-            (with-store store
-              (proc store))
-            (proc #f)))
-
-      (call-maybe-with-store
-       (lambda (store)
-         (cond
-          ((null? args)
-           (fold-packages (lambda (p r) (run-checkers p checkers
-                                                      #:store store)) '()))
-          (else
-           (for-each (lambda (spec)
-                       (run-checkers (specification->package spec) checkers
-                                     #:store store))
-                     args))))))))
+    (with-error-handling
+      (let ((any-lint-checker-requires-store?
+             (any lint-checker-requires-store? checkers)))
+
+        (define (call-maybe-with-store proc)
+          (if any-lint-checker-requires-store?
+              (with-store store
+                (proc store))
+              (proc #f)))
+
+        (call-maybe-with-store
+         (lambda (store)
+           (cond
+            ((null? args)
+             (fold-packages (lambda (p r) (run-checkers p checkers
+                                                        #:store store)) '()))
+            (else
+             (for-each (lambda (spec)
+                         (run-checkers (specification->package spec) checkers
+                                       #:store store))
+                       args)))))))))
diff --git a/guix/scripts/offload.scm b/guix/scripts/offload.scm
index 77ff3d2694..835078cb97 100644
--- a/guix/scripts/offload.scm
+++ b/guix/scripts/offload.scm
@@ -1,6 +1,8 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2020 Julien Lepiller <julien@lepiller.eu>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -38,6 +40,7 @@
                 #:select (fcntl-flock set-thread-name))
   #:use-module ((guix build utils) #:select (which mkdir-p))
   #:use-module (guix ui)
+  #:use-module (guix scripts)
   #:use-module (guix diagnostics)
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-11)
@@ -51,7 +54,23 @@
   #:use-module (ice-9 format)
   #:use-module (ice-9 binary-ports)
   #:export (build-machine
+            build-machine?
+            build-machine-name
+            build-machine-port
+            build-machine-systems
+            build-machine-user
+            build-machine-private-key
+            build-machine-host-key
+            build-machine-compression
+            build-machine-daemon-socket
+            build-machine-overload-threshold
+            build-machine-systems
+            build-machine-features
+            build-machine-location
+
             build-requirements
+            build-requirements?
+
             guix-offload))
 
 ;;; Commentary:
@@ -66,14 +85,16 @@
 ;;;
 ;;; Code:
 
-
 (define-record-type* <build-machine>
   build-machine make-build-machine
   build-machine?
   (name            build-machine-name)            ; string
   (port            build-machine-port             ; number
                    (default 22))
-  (system          build-machine-system)          ; string
+  (systems         %build-machine-systems         ; list of strings
+                   (default #f))                  ; drop default after system is removed
+  (system          %build-machine-system          ; deprecated
+                   (default #f))
   (user            build-machine-user)            ; string
   (private-key     build-machine-private-key      ; file name
                    (default (user-openssh-private-key)))
@@ -84,12 +105,35 @@
                      (default 3))
   (daemon-socket   build-machine-daemon-socket    ; string
                    (default "/var/guix/daemon-socket/socket"))
+  ;; A #f value tells the offload scheduler to disregard the load of the build
+  ;; machine when selecting the best offload machine.
+  (overload-threshold build-machine-overload-threshold ; inexact real between
+                      (default 0.6))                   ; 0.0 and 1.0 | #f
   (parallel-builds build-machine-parallel-builds  ; number
                    (default 1))
   (speed           build-machine-speed            ; inexact real
                    (default 1.0))
   (features        build-machine-features         ; list of strings
-                   (default '())))
+                   (default '()))
+  (location        build-machine-location
+                   (default (and=> (current-source-location)
+                                   source-properties->location))
+                   (innate)))
+
+;;; Deprecated.
+(define (build-machine-system machine)
+  (warning
+    (build-machine-location machine)
+    (G_ "The 'system' field is deprecated, \
+please use 'systems' instead.~%"))
+  (%build-machine-system machine))
+
+;;; TODO: Remove after the deprecated 'system' field is removed.
+(define (build-machine-systems machine)
+  (or (%build-machine-systems machine)
+      (list (build-machine-system machine))
+      (leave (G_ "The build-machine object lacks a value for its 'systems'
+field."))))
 
 (define-record-type* <build-requirements>
   build-requirements make-build-requirements
@@ -161,8 +205,10 @@ can interpret meaningfully."
 private key from '~a': ~a")
                                 file str)))))
 
-(define* (open-ssh-session machine #:optional (max-silent-time -1))
-  "Open an SSH session for MACHINE and return it.  Throw an error on failure."
+(define* (open-ssh-session machine #:optional max-silent-time)
+  "Open an SSH session for MACHINE and return it.  Throw an error on failure.
+When MAX-SILENT-TIME is true, it must be a positive integer denoting the
+number of seconds after which the connection times out."
   (let ((private (private-key-from-file* (build-machine-private-key machine)))
         (public  (public-key-from-file
                   (string-append (build-machine-private-key machine)
@@ -199,9 +245,10 @@ private key from '~a': ~a")
            (leave (G_ "SSH public key authentication failed for '~a': ~a~%")
                   (build-machine-name machine) (get-error session))))
 
-       ;; From then on use MAX-SILENT-TIME as the absolute timeout when
-       ;; reading from or write to a channel for this session.
-       (session-set! session 'timeout max-silent-time)
+       (when max-silent-time
+         ;; From then on use MAX-SILENT-TIME as the absolute timeout when
+         ;; reading from or write to a channel for this session.
+         (session-set! session 'timeout max-silent-time))
 
        session)
       (x
@@ -349,6 +396,8 @@ of free disk space on '~a'~%")
                                        #:log-port (current-error-port)
                                        #:lock? #f)))
 
+  (close-connection store)
+  (disconnect! session)
   (format (current-error-port) "done with offloaded '~a'~%"
           (derivation-file-name drv)))
 
@@ -359,8 +408,8 @@ of free disk space on '~a'~%")
 
 (define (machine-matches? machine requirements)
   "Return #t if MACHINE matches REQUIREMENTS."
-  (and (string=? (build-requirements-system requirements)
-                 (build-machine-system machine))
+  (and (member (build-requirements-system requirements)
+               (build-machine-systems machine))
        (lset<= string=?
                (build-requirements-features requirements)
                (build-machine-features machine))))
@@ -372,30 +421,34 @@ of free disk space on '~a'~%")
   (* 100 (expt 2 20)))                            ;100 MiB
 
 (define (node-load node)
-  "Return the load on NODE.  Return +∞ if NODE is misbehaving."
+  "Return the load on NODE, a normalized value between 0.0 and 1.0.  The value
+is derived from /proc/loadavg and normalized according to the number of
+logical cores available, to give a rough estimation of CPU usage.  Return
+1.0 (fully loaded) if NODE is misbehaving."
   (let ((line (inferior-eval '(begin
                                 (use-modules (ice-9 rdelim))
                                 (call-with-input-file "/proc/loadavg"
                                   read-string))
-                             node)))
-    (if (eof-object? line)
-        +inf.0 ;MACHINE does not respond, so assume it is infinitely loaded
+                             node))
+        (ncores (inferior-eval '(begin
+                                  (use-modules (ice-9 threads))
+                                  (current-processor-count))
+                               node)))
+    (if (or (eof-object? line) (eof-object? ncores))
+        1.0    ;MACHINE does not respond, so assume it is fully loaded
         (match (string-tokenize line)
           ((one five fifteen . x)
-           (string->number one))
+           (let ((load (/ (string->number one) ncores)))
+             (if (> load 1.0)
+                 1.0
+                 load)))
           (x
-           +inf.0)))))
-
-(define (normalized-load machine load)
-  "Divide LOAD by the number of parallel builds of MACHINE."
-  (if (rational? load)
-      (let* ((jobs       (build-machine-parallel-builds machine))
-             (normalized (/ load jobs)))
-        (format (current-error-port) "load on machine '~a' is ~s\
- (normalized: ~s)~%"
-                (build-machine-name machine) load normalized)
-        normalized)
-      load))
+           1.0)))))
+
+(define (report-load machine load)
+  (format (current-error-port)
+          "normalized load on machine '~a' is ~,2f~%"
+          (build-machine-name machine) load))
 
 (define (random-seed)
   (logxor (getpid) (car (gettimeofday))))
@@ -453,11 +506,15 @@ slot (which must later be released with 'release-build-slot'), or #f and #f."
        (let* ((session (false-if-exception (open-ssh-session best
                                                              %short-timeout)))
               (node    (and session (remote-inferior session)))
-              (load    (and node (normalized-load best (node-load node))))
+              (load    (and node (node-load node)))
+              (threshold (build-machine-overload-threshold best))
               (space   (and node (node-free-disk-space node))))
+         (when load (report-load best load))
          (when node (close-inferior node))
          (when session (disconnect! session))
-         (if (and node (< load 2.) (>= space %minimum-disk-space))
+         (if (and node
+                  (or (not threshold) (< load threshold))
+                  (>= space %minimum-disk-space))
              (match others
                (((machines slots) ...)
                 ;; Release slots from the uninteresting machines.
@@ -577,7 +634,8 @@ daemon is not running."
                            (and add-text-to-store 'alright))
                         node)
     ('alright #t)
-    (_ (report-module-error name)))
+    (_ (leave (G_ "(guix) module not usable on remote host '~a'")
+              name)))
 
   (match (inferior-eval '(begin
                            (use-modules (guix))
@@ -689,13 +747,13 @@ machine."
                               (free (node-free-disk-space inferior)))
                           (close-inferior inferior)
                           (format #t "~a~%  kernel: ~a ~a~%  architecture: ~a~%\
-  host name: ~a~%  normalized load: ~a~%  free disk space: ~,2f MiB~%\
+  host name: ~a~%  normalized load: ~,2f~%  free disk space: ~,2f MiB~%\
   time difference: ~a s~%"
                                   (build-machine-name machine)
                                   (utsname:sysname uts) (utsname:release uts)
                                   (utsname:machine uts)
                                   (utsname:nodename uts)
-                                  (normalized-load machine load)
+                                  load
                                   (/ free (expt 2 20) 1.)
                                   (- time now))))))))
 
@@ -707,7 +765,10 @@ machine."
 ;;; Entry point.
 ;;;
 
-(define (guix-offload . args)
+(define-command (guix-offload . args)
+  (category plumbing)
+  (synopsis "set up and operate build offloading")
+
   (define request-line-rx
     ;; The request format.  See 'tryBuildHook' method in build.cc.
     (make-regexp "([01]) ([a-z0-9_-]+) (/[[:graph:]]+.drv) ([[:graph:]]*)"))
@@ -779,7 +840,8 @@ machine."
     (("--version")
      (show-version-and-exit "guix offload"))
     (("--help")
-     (format #t (G_ "Usage: guix offload SYSTEM PRINT-BUILD-TRACE
+     (format #t (G_ "Usage: guix offload SYSTEM MAX-SILENT-TIME \
+PRINT-BUILD-TRACE? BUILD-TIMEOUT
 Process build offload requests written on the standard input, possibly
 offloading builds to the machines listed in '~a'.~%")
              %machine-file)
diff --git a/guix/scripts/pack.scm b/guix/scripts/pack.scm
index 9d6881fdaf..8ecdcb823f 100644
--- a/guix/scripts/pack.scm
+++ b/guix/scripts/pack.scm
@@ -5,6 +5,7 @@
 ;;; Copyright © 2018 Chris Marusich <cmmarusich@gmail.com>
 ;;; Copyright © 2018 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2020 Eric Bavier <bavier@posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -42,6 +43,7 @@
   #:use-module (guix search-paths)
   #:use-module (guix build-system gnu)
   #:use-module (guix scripts build)
+  #:use-module (guix transformations)
   #:use-module ((guix self) #:select (make-config.scm))
   #:use-module (gnu packages)
   #:use-module (gnu packages bootstrap)
@@ -57,11 +59,16 @@
   #:use-module (srfi srfi-37)
   #:use-module (ice-9 match)
   #:export (compressor?
+            compressor-name
+            compressor-extenstion
+            compressor-command
+            %compressors
             lookup-compressor
             self-contained-tarball
             docker-image
             squashfs-image
 
+            %formats
             guix-pack))
 
 ;; Type of a compression tool.
@@ -135,9 +142,11 @@ dependencies are registered."
 
   (define build
     (with-extensions gcrypt-sqlite3&co
-      (with-imported-modules (source-module-closure
-                              '((guix build store-copy)
-                                (guix store database)))
+      (with-imported-modules `(((guix config) => ,(make-config.scm))
+                               ,@(source-module-closure
+                                  '((guix build store-copy)
+                                    (guix store database))
+                                  #:select? not-config?))
         #~(begin
             (use-modules (guix store database)
                          (guix build store-copy)
@@ -158,8 +167,6 @@ dependencies are registered."
             (let ((items (append-map read-closure '#$labels)))
               (with-database db-file db
                 (register-items db items
-                                #:deduplicate? #f
-                                #:reset-timestamps? #f
                                 #:registration-time %epoch)))))))
 
   (computed-file "store-database" build
@@ -195,12 +202,19 @@ added to the pack."
                      #+(file-append glibc-utf8-locales "/lib/locale"))
              (setlocale LC_ALL "en_US.utf8"))))
 
+  (define (import-module? module)
+    ;; Since we don't use deduplication support in 'populate-store', don't
+    ;; import (guix store deduplication) and its dependencies, which includes
+    ;; Guile-Gcrypt.  That way we can run tests with '--bootstrap'.
+    (and (not-config? module)
+         (not (equal? '(guix store deduplication) module))))
+
   (define build
     (with-imported-modules (source-module-closure
                             `((guix build utils)
                               (guix build union)
                               (gnu build install))
-                            #:select? not-config?)
+                            #:select? import-module?)
       #~(begin
           (use-modules (guix build utils)
                        ((guix build union) #:select (relative-file-name))
@@ -374,138 +388,139 @@ added to the pack."
         `(("/bin" -> "bin") ,@symlinks)))
 
   (define build
-    (with-imported-modules (source-module-closure
-                            '((guix build utils)
-                              (guix build store-copy)
-                              (guix build union)
-                              (gnu build install))
-                            #:select? not-config?)
-      #~(begin
-          (use-modules (guix build utils)
-                       (guix build store-copy)
-                       ((guix build union) #:select (relative-file-name))
-                       (gnu build install)
-                       (srfi srfi-1)
-                       (srfi srfi-26)
-                       (ice-9 match))
+    (with-extensions (list guile-gcrypt)
+      (with-imported-modules (source-module-closure
+                              '((guix build utils)
+                                (guix build store-copy)
+                                (guix build union)
+                                (gnu build install))
+                              #:select? not-config?)
+        #~(begin
+            (use-modules (guix build utils)
+                         (guix build store-copy)
+                         ((guix build union) #:select (relative-file-name))
+                         (gnu build install)
+                         (srfi srfi-1)
+                         (srfi srfi-26)
+                         (ice-9 match))
 
-          (define database #+database)
-          (define entry-point #$entry-point)
+            (define database #+database)
+            (define entry-point #$entry-point)
 
-          (define (mksquashfs args)
-            (apply invoke "mksquashfs"
-                   `(,@args
+            (define (mksquashfs args)
+              (apply invoke "mksquashfs"
+                     `(,@args
 
-                     ;; Do not create a "recovery file" when appending to the
-                     ;; file system since it's useless in this case.
-                     "-no-recovery"
+                       ;; Do not create a "recovery file" when appending to the
+                       ;; file system since it's useless in this case.
+                       "-no-recovery"
 
-                     ;; Do not attempt to store extended attributes.
-                     ;; See <https://bugs.gnu.org/40043>.
-                     "-no-xattrs"
+                       ;; Do not attempt to store extended attributes.
+                       ;; See <https://bugs.gnu.org/40043>.
+                       "-no-xattrs"
 
-                     ;; Set file times and the file system creation time to
-                     ;; one second after the Epoch.
-                     "-all-time" "1" "-mkfs-time" "1"
+                       ;; Set file times and the file system creation time to
+                       ;; one second after the Epoch.
+                       "-all-time" "1" "-mkfs-time" "1"
 
-                     ;; Reset all UIDs and GIDs.
-                     "-force-uid" "0" "-force-gid" "0")))
+                       ;; Reset all UIDs and GIDs.
+                       "-force-uid" "0" "-force-gid" "0")))
 
-          (setenv "PATH" #+(file-append archiver "/bin"))
+            (setenv "PATH" #+(file-append archiver "/bin"))
 
-          ;; We need an empty file in order to have a valid file argument when
-          ;; we reparent the root file system.  Read on for why that's
-          ;; necessary.
-          (with-output-to-file ".empty" (lambda () (display "")))
-
-          ;; Create the squashfs image in several steps.
-          ;; Add all store items.  Unfortunately mksquashfs throws away all
-          ;; ancestor directories and only keeps the basename.  We fix this
-          ;; in the following invocations of mksquashfs.
-          (mksquashfs `(,@(map store-info-item
-                               (call-with-input-file "profile"
-                                 read-reference-graph))
-                        #$environment
-                        ,#$output
-
-                        ;; Do not perform duplicate checking because we
-                        ;; don't have any dupes.
-                        "-no-duplicates"
-                        "-comp"
-                        ,#+(compressor-name compressor)))
-
-          ;; Here we reparent the store items.  For each sub-directory of
-          ;; the store prefix we need one invocation of "mksquashfs".
-          (for-each (lambda (dir)
-                      (mksquashfs `(".empty"
-                                    ,#$output
-                                    "-root-becomes" ,dir)))
-                    (reverse (string-tokenize (%store-directory)
-                                              (char-set-complement (char-set #\/)))))
-
-          ;; Add symlinks and mount points.
-          (mksquashfs
-           `(".empty"
-             ,#$output
-             ;; Create SYMLINKS via pseudo file definitions.
-             ,@(append-map
-                (match-lambda
-                  ((source '-> target)
-                   ;; Create relative symlinks to work around a bug in
-                   ;; Singularity 2.x:
-                   ;;   https://bugs.gnu.org/34913
-                   ;;   https://github.com/sylabs/singularity/issues/1487
-                   (let ((target (string-append #$profile "/" target)))
-                     (list "-p"
-                           (string-join
-                            ;; name s mode uid gid symlink
-                            (list source
-                                  "s" "777" "0" "0"
-                                  (relative-file-name (dirname source)
-                                                      target)))))))
-                '#$symlinks*)
-
-             "-p" "/.singularity.d d 555 0 0"
-
-             ;; Create the environment file.
-             "-p" "/.singularity.d/env d 555 0 0"
-             "-p" ,(string-append
-                    "/.singularity.d/env/90-environment.sh s 777 0 0 "
-                    (relative-file-name "/.singularity.d/env"
-                                        #$environment))
-
-             ;; Create /.singularity.d/actions, and optionally the 'run'
-             ;; script, used by 'singularity run'.
-             "-p" "/.singularity.d/actions d 555 0 0"
-
-             ,@(if entry-point
-                   `(;; This one if for Singularity 2.x.
-                     "-p"
-                     ,(string-append
-                       "/.singularity.d/actions/run s 777 0 0 "
-                       (relative-file-name "/.singularity.d/actions"
-                                           (string-append #$profile "/"
-                                                          entry-point)))
-
-                     ;; This one is for Singularity 3.x.
-                     "-p"
-                     ,(string-append
-                       "/.singularity.d/runscript s 777 0 0 "
-                       (relative-file-name "/.singularity.d"
-                                           (string-append #$profile "/"
-                                                          entry-point))))
-                   '())
-
-             ;; Create empty mount points.
-             "-p" "/proc d 555 0 0"
-             "-p" "/sys d 555 0 0"
-             "-p" "/dev d 555 0 0"
-             "-p" "/home d 555 0 0"))
-
-          (when database
-            ;; Initialize /var/guix.
-            (install-database-and-gc-roots "var-etc" database #$profile)
-            (mksquashfs `("var-etc" ,#$output))))))
+            ;; We need an empty file in order to have a valid file argument when
+            ;; we reparent the root file system.  Read on for why that's
+            ;; necessary.
+            (with-output-to-file ".empty" (lambda () (display "")))
+
+            ;; Create the squashfs image in several steps.
+            ;; Add all store items.  Unfortunately mksquashfs throws away all
+            ;; ancestor directories and only keeps the basename.  We fix this
+            ;; in the following invocations of mksquashfs.
+            (mksquashfs `(,@(map store-info-item
+                                 (call-with-input-file "profile"
+                                   read-reference-graph))
+                          #$environment
+                          ,#$output
+
+                          ;; Do not perform duplicate checking because we
+                          ;; don't have any dupes.
+                          "-no-duplicates"
+                          "-comp"
+                          ,#+(compressor-name compressor)))
+
+            ;; Here we reparent the store items.  For each sub-directory of
+            ;; the store prefix we need one invocation of "mksquashfs".
+            (for-each (lambda (dir)
+                        (mksquashfs `(".empty"
+                                      ,#$output
+                                      "-root-becomes" ,dir)))
+                      (reverse (string-tokenize (%store-directory)
+                                                (char-set-complement (char-set #\/)))))
+
+            ;; Add symlinks and mount points.
+            (mksquashfs
+             `(".empty"
+               ,#$output
+               ;; Create SYMLINKS via pseudo file definitions.
+               ,@(append-map
+                  (match-lambda
+                    ((source '-> target)
+                     ;; Create relative symlinks to work around a bug in
+                     ;; Singularity 2.x:
+                     ;;   https://bugs.gnu.org/34913
+                     ;;   https://github.com/sylabs/singularity/issues/1487
+                     (let ((target (string-append #$profile "/" target)))
+                       (list "-p"
+                             (string-join
+                              ;; name s mode uid gid symlink
+                              (list source
+                                    "s" "777" "0" "0"
+                                    (relative-file-name (dirname source)
+                                                        target)))))))
+                  '#$symlinks*)
+
+               "-p" "/.singularity.d d 555 0 0"
+
+               ;; Create the environment file.
+               "-p" "/.singularity.d/env d 555 0 0"
+               "-p" ,(string-append
+                      "/.singularity.d/env/90-environment.sh s 777 0 0 "
+                      (relative-file-name "/.singularity.d/env"
+                                          #$environment))
+
+               ;; Create /.singularity.d/actions, and optionally the 'run'
+               ;; script, used by 'singularity run'.
+               "-p" "/.singularity.d/actions d 555 0 0"
+
+               ,@(if entry-point
+                     `( ;; This one if for Singularity 2.x.
+                       "-p"
+                       ,(string-append
+                         "/.singularity.d/actions/run s 777 0 0 "
+                         (relative-file-name "/.singularity.d/actions"
+                                             (string-append #$profile "/"
+                                                            entry-point)))
+
+                       ;; This one is for Singularity 3.x.
+                       "-p"
+                       ,(string-append
+                         "/.singularity.d/runscript s 777 0 0 "
+                         (relative-file-name "/.singularity.d"
+                                             (string-append #$profile "/"
+                                                            entry-point))))
+                     '())
+
+               ;; Create empty mount points.
+               "-p" "/proc d 555 0 0"
+               "-p" "/sys d 555 0 0"
+               "-p" "/dev d 555 0 0"
+               "-p" "/home d 555 0 0"))
+
+            (when database
+              ;; Initialize /var/guix.
+              (install-database-and-gc-roots "var-etc" database #$profile)
+              (mksquashfs `("var-etc" ,#$output)))))))
 
   (gexp->derivation (string-append name
                                    (compressor-extension compressor)
@@ -748,12 +763,13 @@ last resort for relocation."
                               (guix elf)))
       #~(begin
           (use-modules (guix build utils)
-                       ((guix build union) #:select (relative-file-name))
+                       ((guix build union) #:select (symlink-relative))
                        (guix elf)
                        (guix build gremlin)
                        (ice-9 binary-ports)
                        (ice-9 ftw)
                        (ice-9 match)
+                       (ice-9 receive)
                        (srfi srfi-1)
                        (rnrs bytevectors))
 
@@ -817,11 +833,17 @@ last resort for relocation."
 
                             (string-append "-DLOADER_AUDIT_MODULE=\""
                                            #$(audit-module) "\"")
+
+                            ;; XXX: Normally (runpath #$(audit-module)) is
+                            ;; enough.  However, to work around
+                            ;; <https://sourceware.org/bugzilla/show_bug.cgi?id=26634>
+                            ;; (glibc <= 2.32), pass the whole search path of
+                            ;; PROGRAM, which presumably is a superset of that
+                            ;; of the audit module.
                             (string-append "-DLOADER_AUDIT_RUNPATH={ "
                                            (string-join
                                             (map object->string
-                                                 (runpath
-                                                  #$(audit-module)))
+                                                 (runpath program))
                                             ", " 'suffix)
                                            "NULL }")
                             (if gconv
@@ -841,7 +863,7 @@ last resort for relocation."
               (("@STORE_DIRECTORY@") (%store-directory)))
 
             (let* ((base   (strip-store-prefix program))
-                   (result (string-append target "/" base))
+                   (result (string-append target base))
                    (proot  #$(and proot?
                                   #~(string-drop
                                      #$(file-append (proot) "/bin/proot")
@@ -850,6 +872,9 @@ last resort for relocation."
               (mkdir-p (dirname result))
               (apply invoke #$compiler "-std=gnu99" "-static" "-Os" "-g0" "-Wall"
                      "run.c" "-o" result
+                     (string-append "-DWRAPPER_PROGRAM=\""
+                                    (canonicalize-path (dirname result)) "/"
+                                    (basename result) "\"")
                      (append (if proot
                                  (list (string-append "-DPROOT_PROGRAM=\""
                                                       proot "\""))
@@ -864,16 +889,27 @@ last resort for relocation."
           (mkdir target)
           (for-each (lambda (file)
                       (unless (member file '("." ".." "bin" "sbin" "libexec"))
-                        (let ((file* (string-append input "/" file)))
-                          (symlink (relative-file-name target file*)
-                                   (string-append target "/" file)))))
+                        (symlink-relative (string-append input  "/" file)
+                                          (string-append target "/" file))))
                     (scandir input))
 
-          (for-each build-wrapper
-                    ;; Note: Trailing slash in case these are symlinks.
-                    (append (find-files (string-append input "/bin/"))
-                            (find-files (string-append input "/sbin/"))
-                            (find-files (string-append input "/libexec/")))))))
+          (receive (executables others)
+              (partition executable-file?
+			 ;; Note: Trailing slash in case these are symlinks.
+                         (append (find-files (string-append input "/bin/"))
+                                 (find-files (string-append input "/sbin/"))
+                                 (find-files (string-append input "/libexec/"))))
+            ;; Wrap only executables, since the wrapper will eventually need
+            ;; to execve them.  E.g. git's "libexec" directory contains many
+            ;; shell scripts that are source'd from elsewhere, which fails if
+            ;; they are wrapped.
+            (for-each build-wrapper executables)
+            ;; Link any other non-executable files
+            (for-each (lambda (old)
+                        (let ((new (string-append target (strip-store-prefix old))))
+                          (mkdir-p (dirname new))
+                          (symlink-relative old new)))
+                      others)))))
 
   (computed-file (string-append
                   (cond ((package? package)
@@ -1089,7 +1125,10 @@ Create a bundle of PACKAGE.\n"))
 ;;; Entry point.
 ;;;
 
-(define (guix-pack . args)
+(define-command (guix-pack . args)
+  (category development)
+  (synopsis "create application bundles")
+
   (define opts
     (parse-command-line args %options (list %default-options)))
 
@@ -1109,9 +1148,9 @@ Create a bundle of PACKAGE.\n"))
     (let* ((transform     (options->transformation opts))
            (packages      (map (match-lambda
                                  (((? package? package) output)
-                                  (list (transform store package) output))
+                                  (list (transform package) output))
                                  ((? package? package)
-                                  (list (transform store package) "out")))
+                                  (list (transform package) "out")))
                                (reverse
                                 (filter-map maybe-package-argument opts))))
            (manifests     (filter-map (match-lambda
@@ -1131,19 +1170,24 @@ Create a bundle of PACKAGE.\n"))
                manifest))
             identity))
 
+      (define (with-transformations manifest)
+        (map-manifest-entries manifest-entry-with-transformations
+                              manifest))
+
       (with-provenance
-       (cond
-        ((and (not (null? manifests)) (not (null? packages)))
-         (leave (G_ "both a manifest and a package list were given~%")))
-        ((not (null? manifests))
-         (concatenate-manifests
-          (map (lambda (file)
-                 (let ((user-module (make-user-module
-                                     '((guix profiles) (gnu)))))
-                   (load* file user-module)))
-               manifests)))
-        (else
-         (packages->manifest packages))))))
+       (with-transformations
+        (cond
+         ((and (not (null? manifests)) (not (null? packages)))
+          (leave (G_ "both a manifest and a package list were given~%")))
+         ((not (null? manifests))
+          (concatenate-manifests
+           (map (lambda (file)
+                  (let ((user-module (make-user-module
+                                      '((guix profiles) (gnu)))))
+                    (load* file user-module)))
+                manifests)))
+         (else
+          (packages->manifest packages)))))))
 
   (with-error-handling
     (with-store store
diff --git a/guix/scripts/package.scm b/guix/scripts/package.scm
index ac8dedb5f3..6faf2adb7a 100644
--- a/guix/scripts/package.scm
+++ b/guix/scripts/package.scm
@@ -41,6 +41,7 @@
   #:use-module (guix config)
   #:use-module (guix scripts)
   #:use-module (guix scripts build)
+  #:use-module (guix transformations)
   #:use-module (guix describe)
   #:autoload   (guix store roots) (gc-roots user-owned?)
   #:use-module ((guix build utils)
@@ -218,12 +219,13 @@ non-zero relevance score."
         (output (manifest-entry-output old)))
       transaction)))
 
-  (define (upgrade entry)
+  (define (upgrade entry transform)
     (match entry
       (($ <manifest-entry> name version output (? string? path))
        (match (find-best-packages-by-name name #f)
          ((pkg . rest)
-          (let ((candidate-version (package-version pkg)))
+          (let* ((pkg               (transform pkg))
+                 (candidate-version (package-version pkg)))
             (match (package-superseded pkg)
               ((? package? new)
                (supersede entry new))
@@ -231,12 +233,14 @@ non-zero relevance score."
                (case (version-compare candidate-version version)
                  ((>)
                   (manifest-transaction-install-entry
-                   (package->manifest-entry* pkg output)
+                   (manifest-entry-with-transformations
+                    (package->manifest-entry* pkg output))
                    transaction))
                  ((<)
                   transaction)
                  ((=)
-                  (let* ((new (package->manifest-entry* pkg output)))
+                  (let* ((new (manifest-entry-with-transformations
+                               (package->manifest-entry* pkg output))))
                     ;; Here we want to determine whether the NEW actually
                     ;; differs from ENTRY, but we need to intercept
                     ;; 'build-things' calls because they would prevent us from
@@ -255,7 +259,14 @@ non-zero relevance score."
 
   (if (manifest-transaction-removal-candidate? entry transaction)
       transaction
-      (upgrade entry)))
+
+      ;; Upgrade ENTRY, preserving transformation options listed in its
+      ;; properties.
+      (let ((transform (options->transformation
+                        (or (assq-ref (manifest-entry-properties entry)
+                                      'transformations)
+                            '()))))
+        (upgrade entry transform))))
 
 
 ;;;
@@ -585,14 +596,8 @@ upgrading, #f otherwise."
 (define (package->manifest-entry* package output)
   "Like 'package->manifest-entry', but attach PACKAGE provenance meta-data to
 the resulting manifest entry."
-  (define (provenance-properties package)
-    (match (package-provenance package)
-      (#f   '())
-      (sexp `((provenance ,@sexp)))))
-
-  (package->manifest-entry package output
-                           #:properties (provenance-properties package)))
-
+  (manifest-entry-with-provenance
+   (package->manifest-entry package output)))
 
 (define (options->installable opts manifest transaction)
   "Given MANIFEST, the current manifest, and OPTS, the result of 'args-fold',
@@ -869,13 +874,14 @@ processed, #f otherwise."
   (define transform (options->transformation opts))
 
   (define (transform-entry entry)
-    (let ((item (transform store (manifest-entry-item entry))))
-      (manifest-entry
-        (inherit entry)
-        (item item)
-        (version (if (package? item)
-                     (package-version item)
-                     (manifest-entry-version entry))))))
+    (let ((item (transform (manifest-entry-item entry))))
+      (manifest-entry-with-transformations
+       (manifest-entry
+         (inherit entry)
+         (item item)
+         (version (if (package? item)
+                      (package-version item)
+                      (manifest-entry-version entry)))))))
 
   (when (equal? profile %current-profile)
     ;; Normally the daemon created %CURRENT-PROFILE when we connected, unless
@@ -941,7 +947,9 @@ processed, #f otherwise."
 ;;; Entry point.
 ;;;
 
-(define (guix-package . args)
+(define-command (guix-package . args)
+  (synopsis "manage packages and profiles")
+
   (define (handle-argument arg result arg-handler)
     ;; Process non-option argument ARG by calling back ARG-HANDLER.
     (if arg-handler
diff --git a/guix/scripts/perform-download.scm b/guix/scripts/perform-download.scm
index df787a9940..8d409092ba 100644
--- a/guix/scripts/perform-download.scm
+++ b/guix/scripts/perform-download.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2016, 2017, 2018, 2020 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -18,6 +18,7 @@
 
 (define-module (guix scripts perform-download)
   #:use-module (guix ui)
+  #:use-module (guix scripts)
   #:use-module (guix derivations)
   #:use-module ((guix store) #:select (derivation-path? store-path?))
   #:use-module (guix build download)
@@ -91,14 +92,15 @@ actual output is different from that when we're doing a 'bmCheck' or
     (leave (G_ "refusing to run with elevated privileges (UID ~a)~%")
            (getuid))))
 
-(define (guix-perform-download . args)
-  "Perform the download described by the given fixed-output derivation.
+(define-command (guix-perform-download . args)
+  (category internal)
+  (synopsis "perform download described by fixed-output derivations")
 
-This is an \"out-of-band\" download in that this code is executed directly by
-the daemon and not explicitly described as an input of the derivation.  This
-allows us to sidestep bootstrapping problems, such downloading the source code
-of GnuTLS over HTTPS, before we have built GnuTLS.  See
-<http://bugs.gnu.org/22774>."
+  ;; This is an "out-of-band" download in that this code is executed directly
+  ;; by the daemon and not explicitly described as an input of the derivation.
+  ;; This allows us to sidestep bootstrapping problems, such as downloading
+  ;; the source code of GnuTLS over HTTPS before we have built GnuTLS.  See
+  ;; <https://bugs.gnu.org/22774>.
 
   (define print-build-trace?
     (match (getenv "_NIX_OPTIONS")
diff --git a/guix/scripts/processes.scm b/guix/scripts/processes.scm
index 35698a0216..3db5603286 100644
--- a/guix/scripts/processes.scm
+++ b/guix/scripts/processes.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2020 John Soo <jsoo1@asu.edu>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -176,6 +177,9 @@ active sessions, and the master 'guix-daemon' process."
     (values (filter-map child-process->session children)
             master)))
 
+(define (lock->recutils lock port)
+  (format port "LockHeld: ~a~%" lock))
+
 (define (daemon-session->recutils session port)
   "Display SESSION information in recutils format on PORT."
   (format port "SessionPID: ~a~%"
@@ -184,28 +188,111 @@ active sessions, and the master 'guix-daemon' process."
           (process-id (daemon-session-client session)))
   (format port "ClientCommand:~{ ~a~}~%"
           (process-command (daemon-session-client session)))
-  (for-each (lambda (lock)
-              (format port "LockHeld: ~a~%" lock))
+  (for-each (lambda (lock) (lock->recutils lock port))
             (daemon-session-locks-held session))
   (for-each (lambda (process)
-              (format port "ChildProcess: ~a:~{ ~a~}~%"
-                      (process-id process)
+              (format port "ChildPID: ~a~%"
+                      (process-id process))
+              (format port "ChildCommand: :~{ ~a~}~%"
                       (process-command process)))
             (daemon-session-children session)))
 
+(define (daemon-sessions->recutils port sessions)
+  "Display denormalized SESSIONS information to PORT."
+  (for-each (lambda (session)
+              (daemon-session->recutils session port)
+              (newline port))
+            sessions))
+
+(define session-rec-type
+  "%rec: Session
+%type: PID int
+%type: ClientPID int
+%key: PID
+%mandatory: ClientPID ClientCommand")
+
+(define lock-rec-type
+  "%rec: Lock
+%mandatory: LockHeld
+%type: Session rec Session")
+
+(define child-process-rec-type
+  "%rec: ChildProcess
+%type: PID int
+%type: Session rec Session
+%key: PID
+%mandatory: Command")
+
+(define (session-key->recutils session port)
+  "Display SESSION PID as a recutils field on PORT."
+  (format
+   port "Session: ~a"
+   (process-id (daemon-session-process session))))
+
+(define (session-scalars->normalized-record session port)
+  "Display SESSION scalar fields to PORT in normalized form."
+  (format port "PID: ~a~%"
+          (process-id (daemon-session-process session)))
+  (format port "ClientPID: ~a~%"
+          (process-id (daemon-session-client session)))
+  (format port "ClientCommand:~{ ~a~}~%"
+          (process-command (daemon-session-client session))))
+
+(define (child-process->normalized-record process port)
+  "Display PROCESS record on PORT in normalized form"
+  (format port "PID: ~a" (process-id process))
+  (newline port)
+  (format port "Command:~{ ~a~}" (process-command process)))
+
+(define (daemon-sessions->normalized-record port sessions)
+  "Display SESSIONS recutils on PORT in normalized form"
+  (display session-rec-type port)
+  (newline port)
+  (newline port)
+  (for-each (lambda (session)
+              (session-scalars->normalized-record session port)
+              (newline port))
+            sessions)
+
+  (display lock-rec-type port)
+  (newline port)
+  (newline port)
+  (for-each (lambda (session)
+              (for-each (lambda (lock)
+                          (lock->recutils "testing testing" port)
+                          (session-key->recutils session port)
+                          (newline port)
+                          (newline port))
+                        (daemon-session-locks-held session)))
+            sessions)
+
+  (display child-process-rec-type port)
+  (newline port)
+  (newline port)
+  (for-each (lambda (session)
+              (for-each (lambda (process)
+                          (child-process->normalized-record process port)
+                          (newline port)
+                          (session-key->recutils session port)
+                          (newline port)
+                          (newline port))
+                        (daemon-session-children session)))
+            sessions))
+
 
 ;;;
 ;;; Options.
 ;;;
 
-(define %options
-  (list (option '(#\h "help") #f #f
-                (lambda args
-                  (show-help)
-                  (exit 0)))
-        (option '(#\V "version") #f #f
-                (lambda args
-                  (show-version-and-exit "guix processes")))))
+(define %available-formats
+  '("recutils" "normalized"))
+
+(define (list-formats)
+  (display (G_ "The available formats are:\n"))
+  (newline)
+  (for-each (lambda (f)
+              (format #t "  - ~a~%" f))
+            %available-formats))
 
 (define (show-help)
   (display (G_ "Usage: guix processes
@@ -216,26 +303,51 @@ List the current Guix sessions and their processes."))
   (display (G_ "
   -V, --version          display version information and exit"))
   (newline)
+  (display (G_ "
+  -f, --format=FORMAT    display results as normalized record sets"))
+  (display (G_ "
+      --list-formats     display available formats"))
+  (newline)
   (show-bug-report-information))
 
+(define %options
+  (list (option '(#\h "help") #f #f
+                (lambda args
+                  (show-help)
+                  (exit 0)))
+        (option '(#\V "version") #f #f
+                (lambda args
+                  (show-version-and-exit "guix processes")))
+        (option '(#\f "format") #t #f
+                (lambda (opt name arg result)
+                  (unless (member arg %available-formats)
+                    (leave (G_ "~a: unsupported output format~%") arg))
+                  (alist-cons 'format (string->symbol arg) result)))
+        (option '("list-formats") #f #f
+                (lambda (opt name arg result)
+                  (list-formats)
+                  (exit 0)))))
+
+(define %default-options '((format . recutils)))
+
 
 ;;;
 ;;; Entry point.
 ;;;
 
-(define (guix-processes . args)
+(define-command (guix-processes . args)
+  (category plumbing)
+  (synopsis "list currently running sessions")
+
   (define options
-    (args-fold* args %options
-                (lambda (opt name arg result)
-                  (leave (G_ "~A: unrecognized option~%") name))
-                cons
-                '()))
+    (parse-command-line args %options (list %default-options)
+                        #:build-options? #f))
 
   (with-paginated-output-port port
-    (for-each (lambda (session)
-                (daemon-session->recutils session port)
-                (newline port))
-              (daemon-sessions))
+    (match (assoc-ref options 'format)
+      ('normalized
+       (daemon-sessions->normalized-record port (daemon-sessions)))
+      (_ (daemon-sessions->recutils port (daemon-sessions))))
 
     ;; Pass 'R' (instead of 'r') so 'less' correctly estimates line length.
     #:less-options "FRX"))
diff --git a/guix/scripts/publish.scm b/guix/scripts/publish.scm
index a00f08f9d9..fa85088ed0 100644
--- a/guix/scripts/publish.scm
+++ b/guix/scripts/publish.scm
@@ -1,6 +1,8 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2015 David Thompson <davet@gnu.org>
+;;; Copyright © 2020 by Amar M. Singh <nly@disroot.org>
 ;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -40,6 +42,7 @@
   #:use-module (web server)
   #:use-module (web uri)
   #:autoload   (sxml simple) (sxml->xml)
+  #:autoload   (guix avahi) (avahi-publish-service-thread)
   #:use-module (guix base32)
   #:use-module (guix base64)
   #:use-module (guix config)
@@ -50,10 +53,11 @@
   #:use-module (guix workers)
   #:use-module (guix store)
   #:use-module ((guix serialization) #:select (write-file))
-  #:use-module (guix zlib)
-  #:autoload   (guix lzlib) (lzlib-available?
-                             call-with-lzip-output-port
-                             make-lzip-output-port)
+  #:use-module (zlib)
+  #:autoload   (lzlib) (call-with-lzip-output-port
+                        make-lzip-output-port)
+  #:autoload   (zstd)  (call-with-zstd-output-port
+                        make-zstd-output-port)
   #:use-module (guix cache)
   #:use-module (guix ui)
   #:use-module (guix scripts)
@@ -62,10 +66,15 @@
   #:use-module ((guix build utils)
                 #:select (dump-port mkdir-p find-files))
   #:use-module ((guix build syscalls) #:select (set-thread-name))
-  #:export (%public-key
+  #:export (%default-gzip-compression
+
+            %public-key
             %private-key
             signed-string
 
+            open-server-socket
+            publish-service-type
+            run-publish-server
             guix-publish))
 
 (define (show-help)
@@ -78,11 +87,16 @@ Publish ~a over HTTP.\n") %store-directory)
   (display (G_ "
   -u, --user=USER        change privileges to USER as soon as possible"))
   (display (G_ "
+  -a, --advertise        advertise on the local network"))
+  (display (G_ "
   -C, --compression[=METHOD:LEVEL]
                          compress archives with METHOD at LEVEL"))
   (display (G_ "
   -c, --cache=DIRECTORY  cache published items to DIRECTORY"))
   (display (G_ "
+      --cache-bypass-threshold=SIZE
+                         serve store items below SIZE even when not cached"))
+  (display (G_ "
       --workers=N        use N workers to bake items"))
   (display (G_ "
       --ttl=TTL          announce narinfos can be cached for TTL seconds"))
@@ -135,6 +149,12 @@ if ITEM is already compressed."
       (list %no-compression)
       requested))
 
+(define (low-compression c)
+  "Return <compression> of the same type as C, but optimized for low CPU
+usage."
+  (compression (compression-type c)
+               (min (compression-level c) 2)))
+
 (define %options
   (list (option '(#\h "help") #f #f
                 (lambda _
@@ -143,6 +163,9 @@ if ITEM is already compressed."
         (option '(#\V "version") #f #f
                 (lambda _
                   (show-version-and-exit "guix publish")))
+        (option '(#\a "advertise") #f #f
+                (lambda (opt name arg result)
+                  (alist-cons 'advertise? #t result)))
         (option '(#\u "user") #t #f
                 (lambda (opt name arg result)
                   (alist-cons 'user arg result)))
@@ -185,6 +208,10 @@ if ITEM is already compressed."
         (option '(#\c "cache") #t #f
                 (lambda (opt name arg result)
                   (alist-cons 'cache arg result)))
+        (option '("cache-bypass-threshold") #t #f
+                (lambda (opt name arg result)
+                  (alist-cons 'cache-bypass-threshold (size->number arg)
+                              result)))
         (option '("workers") #t #f
                 (lambda (opt name arg result)
                   (alist-cons 'workers (string->number* arg)
@@ -237,6 +264,21 @@ if ITEM is already compressed."
     ("WantMassQuery" . 0)
     ("Priority" . 100)))
 
+;;; A common buffer size value used for the TCP socket SO_SNDBUF option and
+;;; the gzip compressor buffer size.
+(define %default-buffer-size
+  (* 208 1024))
+
+(define %default-socket-options
+  ;; List of options passed to 'setsockopt' when transmitting files.
+  (list (list SO_SNDBUF %default-buffer-size)))
+
+(define* (configure-socket socket #:key (level SOL_SOCKET)
+                           (options %default-socket-options))
+  "Apply multiple option tuples in OPTIONS to SOCKET, using LEVEL."
+  (for-each (cut apply setsockopt socket level <>)
+            options))
+
 (define (signed-string s)
   "Sign the hash of the string S with the daemon's key.  Return a canonical
 sexp for the signature."
@@ -435,7 +477,7 @@ items.  Failing that, we could eventually have to recompute them and return
             (expiration-time file))))))
 
 (define (hash-part->path* store hash cache)
-  "Like 'hash-part->path' but cached results under CACHE.  This ensures we can
+  "Like 'hash-part->path' but cache results under CACHE.  This ensures we can
 still map HASH to the corresponding store file name, even if said store item
 vanished from the store in the meantime."
   (let ((cached (hash-part-mapping-cache-file cache hash)))
@@ -455,6 +497,18 @@ vanished from the store in the meantime."
                result))
             (apply throw args))))))
 
+(define cache-bypass-threshold
+  ;; Maximum size of a store item that may be served by the '/cached' handlers
+  ;; below even when not in cache.
+  (make-parameter (* 10 (expt 2 20))))
+
+(define (bypass-cache? store item)
+  "Return true if we allow ITEM to be downloaded before it is cached.  ITEM is
+interpreted as the basename of a store item."
+  (guard (c ((store-error? c) #f))
+    (< (path-info-nar-size (query-path-info store item))
+       (cache-bypass-threshold))))
+
 (define* (render-narinfo/cached store request hash
                                 #:key ttl (compressions (list %no-compression))
                                 (nar-path "nar")
@@ -514,9 +568,20 @@ requested using POOL."
                                                      (nar-expiration-time ttl)
                                                      #:delete-entry delete-entry
                                                      #:cleanup-period ttl))))
-           (not-found request
-                      #:phrase "We're baking it"
-                      #:ttl 300))              ;should be available within 5m
+
+           ;; If ITEM passes 'bypass-cache?', render a temporary narinfo right
+           ;; away, with a short TTL.  The narinfo is temporary because it
+           ;; lacks 'FileSize', for instance, which the cached narinfo will
+           ;; have.  Chances are that the nar will be baked by the time the
+           ;; client asks for it.
+           (if (bypass-cache? store item)
+               (render-narinfo store request hash
+                               #:ttl 300          ;temporary
+                               #:nar-path nar-path
+                               #:compressions compressions)
+               (not-found request
+                          #:phrase "We're baking it"
+                          #:ttl 300)))          ;should be available within 5m
           (else
            (not-found request #:phrase "")))))
 
@@ -525,29 +590,31 @@ requested using POOL."
   (define nar
     (nar-cache-file cache item #:compression compression))
 
+  (define (write-compressed-file call-with-compressed-output-port)
+    ;; Note: the file port gets closed along with the compressed port.
+    (call-with-compressed-output-port (open-output-file (string-append nar ".tmp"))
+      (lambda (port)
+        (write-file item port))
+      #:level (compression-level compression))
+    (rename-file (string-append nar ".tmp") nar))
+
   (mkdir-p (dirname nar))
   (match (compression-type compression)
     ('gzip
-     ;; Note: the file port gets closed along with the gzip port.
-     (call-with-gzip-output-port (open-output-file (string-append nar ".tmp"))
-       (lambda (port)
-         (write-file item port))
-       #:level (compression-level compression)
-       #:buffer-size (* 128 1024))
-     (rename-file (string-append nar ".tmp") nar))
+     (write-compressed-file call-with-gzip-output-port))
     ('lzip
-     ;; Note: the file port gets closed along with the lzip port.
-     (call-with-lzip-output-port (open-output-file (string-append nar ".tmp"))
-       (lambda (port)
-         (write-file item port))
-       #:level (compression-level compression))
-     (rename-file (string-append nar ".tmp") nar))
+     (write-compressed-file call-with-lzip-output-port))
+    ('zstd
+     (write-compressed-file call-with-zstd-output-port))
     ('none
      ;; Cache nars even when compression is disabled so that we can
      ;; guarantee the TTL (see <https://bugs.gnu.org/28664>.)
      (with-atomic-file-output nar
        (lambda (port)
-         (write-file item port))))))
+         (write-file item port)
+         ;; Make the file world-readable, contrary to what
+         ;; 'with-atomic-file-output' does.
+         (chmod port (logand #o644 (lognot (umask)))))))))
 
 (define* (bake-narinfo+nar cache item
                            #:key ttl (compressions (list %no-compression))
@@ -579,7 +646,12 @@ requested using POOL."
                                           #:nar-path nar-path
                                           #:compressions compressions
                                           #:file-sizes sizes)
-                          port)))))
+                          port)))
+
+             ;; Make the cached narinfo world-readable, contrary to what
+             ;; 'with-atomic-file-output' does, so that other users can rsync
+             ;; the whole cache.
+             (chmod port (logand #o644 (lognot (umask))))))
 
          ;; Make narinfo files for OTHERS hard links to NARINFO such that the
          ;; atime-based cache eviction considers either all the nars or none
@@ -628,19 +700,32 @@ return it; otherwise, return 404.  When TTL is true, use it as the
 'Cache-Control' expiration time."
   (let ((cached (nar-cache-file cache store-item
                                 #:compression compression)))
-    (if (file-exists? cached)
-        (values `((content-type . (application/octet-stream
-                                   (charset . "ISO-8859-1")))
-                  ,@(if ttl
-                        `((cache-control (max-age . ,ttl)))
-                        '())
-
-                  ;; XXX: We're not returning the actual contents, deferring
-                  ;; instead to 'http-write'.  This is a hack to work around
-                  ;; <http://bugs.gnu.org/21093>.
-                  (x-raw-file . ,cached))
-                #f)
-        (not-found request))))
+    (cond ((file-exists? cached)
+           (values `((content-type . (application/octet-stream
+                                      (charset . "ISO-8859-1")))
+                     ,@(if ttl
+                           `((cache-control (max-age . ,ttl)))
+                           '())
+
+                     ;; XXX: We're not returning the actual contents, deferring
+                     ;; instead to 'http-write'.  This is a hack to work around
+                     ;; <http://bugs.gnu.org/21093>.
+                     (x-raw-file . ,cached))
+                   #f))
+          ((let* ((hash (and=> (string-index store-item #\-)
+                               (cut string-take store-item <>)))
+                  (item (and hash
+                             (guard (c ((store-error? c) #f))
+                               (hash-part->path store hash)))))
+             (and item (not (string-null? item))
+                  (bypass-cache? store item)))
+           ;; Render STORE-ITEM live.  We reach this because STORE-ITEM is
+           ;; being baked but clients are already asking for it.  Thus, we're
+           ;; duplicating work, but doing so allows us to reduce delays.
+           (render-nar store request store-item
+                       #:compression (low-compression compression)))
+          (else
+           (not-found request)))))
 
 (define (render-content-addressed-file store request
                                        name algo hash)
@@ -687,6 +772,13 @@ to compress or decompress the log file; just return it as-is."
         (values (response-headers log) log)
         (not-found request))))
 
+(define (render-signing-key)
+  "Render signing key."
+  (let ((file %public-key-file))
+    (values `((content-type . (text/plain (charset . "UTF-8")))
+              (x-raw-file . ,file))
+            file)))
+
 (define (render-home-page request)
   "Render the home page."
   (values `((content-type . (text/html (charset . "UTF-8"))))
@@ -700,7 +792,12 @@ to compress or decompress the log file; just return it as-is."
                                (a (@ (href
                                       "https://guix.gnu.org/manual/en/html_node/Invoking-guix-publish.html"))
                                   (tt "guix publish"))
-                               " speaking.  Welcome!")))
+                               " speaking.  Welcome!")
+                            (p "Here is the "
+                               (a (@ (href
+                                      "signing-key.pub"))
+                                  (tt "signing key"))
+                               " for this server. Knock yourselves out!")))
                          port)))))
 
 (define (extract-narinfo-hash str)
@@ -728,32 +825,6 @@ example: \"/foo/bar\" yields '(\"foo\" \"bar\")."
 (define %http-write
   (@@ (web server http) http-write))
 
-(match (list (major-version) (minor-version) (micro-version))
-  (("2" "2" "5")                                  ;Guile 2.2.5
-   (let ()
-     (define %read-line (@ (ice-9 rdelim) %read-line))
-     (define bad-header (@@ (web http) bad-header))
-
-     ;; XXX: Work around <https://bugs.gnu.org/36350> by reverting to the
-     ;; definition of 'read-header-line' as found in 2.2.4 and earlier.
-     (define (read-header-line port)
-       "Read an HTTP header line and return it without its final CRLF or LF.
-Raise a 'bad-header' exception if the line does not end in CRLF or LF,
-or if EOF is reached."
-       (match (%read-line port)
-         (((? string? line) . #\newline)
-          ;; '%read-line' does not consider #\return a delimiter; so if it's
-          ;; there, remove it.  We are more tolerant than the RFC in that we
-          ;; tolerate LF-only endings.
-          (if (string-suffix? "\r" line)
-              (string-drop-right line 1)
-              line))
-         ((line . _)                              ;EOF or missing delimiter
-          (bad-header 'read-header-line line))))
-
-     (set! (@@ (web http) read-header-line) read-header-line)))
-  (_ #t))
-
 (define (strip-headers response)
   "Return RESPONSE's headers minus 'Content-Length' and our internal headers."
   (fold alist-delete
@@ -797,10 +868,13 @@ or if EOF is reached."
      ;; 'make-gzip-output-port' wants a file port.
      (make-gzip-output-port (response-port response)
                             #:level level
-                            #:buffer-size (* 64 1024)))
+                            #:buffer-size %default-buffer-size))
     (($ <compression> 'lzip level)
      (make-lzip-output-port (response-port response)
                             #:level level))
+    (($ <compression> 'zstd level)
+     (make-zstd-output-port (response-port response)
+                            #:level level))
     (($ <compression> 'none)
      (response-port response))
     (#f
@@ -822,6 +896,7 @@ blocking."
                                             client))
                (port        (begin
                               (force-output client)
+                              (configure-socket client)
                               (nar-response-port response compression))))
           ;; XXX: Given our ugly workaround for <http://bugs.gnu.org/21093> in
           ;; 'render-nar', BODY here is just the file name of the store item.
@@ -851,7 +926,7 @@ blocking."
                                                                          size)
                                                     client))
                           (output   (response-port response)))
-                     (setsockopt client SOL_SOCKET SO_SNDBUF (* 128 1024))
+                     (configure-socket client)
                      (if (file-port? output)
                          (sendfile output input size)
                          (dump-port input output))
@@ -880,8 +955,9 @@ blocking."
   "Return a symbol denoting the compression method expressed by STRING; return
 #f if STRING doesn't match any supported method."
   (match string
-    ("gzip" (and (zlib-available?) 'gzip))
-    ("lzip" (and (lzlib-available?) 'lzip))
+    ("gzip" 'gzip)
+    ("lzip" 'lzip)
+    ("zstd" 'zstd)
     (_      #f)))
 
 (define (effective-compression requested-type compressions)
@@ -919,6 +995,9 @@ methods, return the applicable compression."
           ;; /
           ((or () ("index.html"))
            (render-home-page request))
+          ;; guix signing-key
+          (("signing-key.pub")
+           (render-signing-key))
           ;; /<hash>.narinfo
           (((= extract-narinfo-hash (? string? hash)))
            (if cache
@@ -976,11 +1055,29 @@ methods, return the applicable compression."
           (x (not-found request)))
         (not-found request))))
 
+(define (service-name)
+  "Return the Avahi service name of the server."
+  (string-append "guix-publish-" (gethostname)))
+
+(define publish-service-type
+  ;; Return the Avahi service type of the server.
+  "_guix_publish._tcp")
+
 (define* (run-publish-server socket store
                              #:key
+                             advertise? port
                              (compressions (list %no-compression))
                              (nar-path "nar") narinfo-ttl
                              cache pool)
+  (when advertise?
+    (let ((name (service-name)))
+      ;; XXX: Use a callback from Guile-Avahi here, as Avahi can pick a
+      ;; different name to avoid name clashes.
+      (info (G_ "Advertising ~a~%.") name)
+      (avahi-publish-service-thread name
+                                    #:type publish-service-type
+                                    #:port port)))
+
   (run-server (make-request-handler store
                                     #:cache cache
                                     #:pool pool
@@ -993,7 +1090,8 @@ methods, return the applicable compression."
 (define (open-server-socket address)
   "Return a TCP socket bound to ADDRESS, a socket address."
   (let ((sock (socket (sockaddr:fam address) SOCK_STREAM 0)))
-    (setsockopt sock SOL_SOCKET SO_REUSEADDR 1)
+    (configure-socket sock #:options (cons (list SO_REUSEADDR 1)
+                                           %default-socket-options))
     (bind sock address)
     sock))
 
@@ -1014,7 +1112,10 @@ methods, return the applicable compression."
 ;;; Entry point.
 ;;;
 
-(define (guix-publish . args)
+(define-command (guix-publish . args)
+  (category packaging)
+  (synopsis "publish build results over HTTP")
+
   (with-error-handling
     (let* ((opts    (args-fold* args %options
                                 (lambda (opt name arg result)
@@ -1022,9 +1123,10 @@ methods, return the applicable compression."
                                 (lambda (arg result)
                                   (leave (G_ "~A: extraneous argument~%") arg))
                                 %default-options))
-           (user    (assoc-ref opts 'user))
-           (port    (assoc-ref opts 'port))
-           (ttl     (assoc-ref opts 'narinfo-ttl))
+           (advertise?  (assoc-ref opts 'advertise?))
+           (user        (assoc-ref opts 'user))
+           (port        (assoc-ref opts 'port))
+           (ttl         (assoc-ref opts 'narinfo-ttl))
            (compressions (match (filter-map (match-lambda
                                               (('compression . compression)
                                                compression)
@@ -1032,9 +1134,7 @@ methods, return the applicable compression."
                                             opts)
                            (()
                             ;; Default to fast & low compression.
-                            (list (if (zlib-available?)
-                                      %default-gzip-compression
-                                      %no-compression)))
+                            (list %default-gzip-compression))
                            (lst (reverse lst))))
            (address (let ((addr (assoc-ref opts 'address)))
                       (make-socket-address (sockaddr:fam addr)
@@ -1061,7 +1161,10 @@ methods, return the applicable compression."
 consider using the '--user' option!~%")))
 
       (parameterize ((%public-key public-key)
-                     (%private-key private-key))
+                     (%private-key private-key)
+                     (cache-bypass-threshold
+                      (or (assoc-ref opts 'cache-bypass-threshold)
+                          (cache-bypass-threshold))))
         (info (G_ "publishing ~a on ~a, port ~d~%")
               %store-directory
               (inet-ntop (sockaddr:fam address) (sockaddr:addr address))
@@ -1081,6 +1184,8 @@ consider using the '--user' option!~%")))
 
         (with-store store
           (run-publish-server socket store
+                              #:advertise? advertise?
+                              #:port port
                               #:cache cache
                               #:pool (and cache (make-pool workers
                                                            #:thread-name
diff --git a/guix/scripts/pull.scm b/guix/scripts/pull.scm
index 5b4ccf13fe..83cdc1d1eb 100644
--- a/guix/scripts/pull.scm
+++ b/guix/scripts/pull.scm
@@ -1,6 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2013, 2014, 2015, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -385,7 +386,7 @@ previous generation.  Return true if there are news to display."
     (and=> (relative-generation profile -1)
            (cut generation-file-name profile <>)))
 
-  (when previous
+  (and previous
     (let ((old-channels (profile-channels previous))
           (new-channels (profile-channels profile)))
       ;; Find the channels present in both PROFILE and PREVIOUS, and print
@@ -507,6 +508,7 @@ true, display what would be built without actually building it."
   ;; workaround, skip this code when $SUDO_USER is set.  See
   ;; <https://bugs.gnu.org/36785>.
   (unless (or (getenv "SUDO_USER")
+              (not (file-exists? %user-profile-directory))
               (string=? %profile-directory
                         (dirname
                          (canonicalize-profile %user-profile-directory))))
@@ -750,11 +752,17 @@ Use '~/.config/guix/channels.scm' instead."))
         channels)))
 
 
-(define (guix-pull . args)
+(define-command (guix-pull . args)
+  (synopsis "pull the latest revision of Guix")
+
+  (define (no-arguments arg _‌)
+    (leave (G_ "~A: extraneous argument~%") arg))
+
   (with-error-handling
     (with-git-error-handling
      (let* ((opts         (parse-command-line args %options
-                                              (list %default-options)))
+                                              (list %default-options)
+                                              #:argument-handler no-arguments))
             (substitutes? (assoc-ref opts 'substitutes?))
             (dry-run?     (assoc-ref opts 'dry-run?))
             (channels     (channel-list opts))
diff --git a/guix/scripts/refresh.scm b/guix/scripts/refresh.scm
index efada1df5a..fb6c52a567 100644
--- a/guix/scripts/refresh.scm
+++ b/guix/scripts/refresh.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
 ;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2015 Alex Kost <alezost@gmail.com>
@@ -440,7 +440,7 @@ releases for ~a~%")
                  (full-name x)))
         (lst
          (format (current-output-port)
-                 (N_ "Building the following ~*package would ensure ~d \
+                 (N_ "Building the following ~d package would ensure ~d \
 dependent packages are rebuilt: ~{~a~^ ~}~%"
                      "Building the following ~d packages would ensure ~d \
 dependent packages are rebuilt: ~{~a~^ ~}~%"
@@ -496,7 +496,10 @@ all are dependent packages: ~{~a~^ ~}~%")
 ;;; Entry point.
 ;;;
 
-(define (guix-refresh . args)
+(define-command (guix-refresh . args)
+  (category packaging)
+  (synopsis "update existing package definitions")
+
   (define (parse-options)
     ;; Return the alist of option values.
     (parse-command-line args %options (list %default-options)
diff --git a/guix/scripts/remove.scm b/guix/scripts/remove.scm
index 2f06ea4f37..a46ad04d56 100644
--- a/guix/scripts/remove.scm
+++ b/guix/scripts/remove.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2019, 2020 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -63,7 +63,9 @@ This is an alias for 'guix package -r'.\n"))
 
                  %standard-build-options)))
 
-(define (guix-remove . args)
+(define-command (guix-remove . args)
+  (synopsis "remove installed packages")
+
   (define (handle-argument arg result arg-handler)
     ;; Treat all non-option arguments as package specs.
     (values (alist-cons 'remove arg result)
diff --git a/guix/scripts/repl.scm b/guix/scripts/repl.scm
index 0ea9c3655c..9f20803efc 100644
--- a/guix/scripts/repl.scm
+++ b/guix/scripts/repl.scm
@@ -27,6 +27,7 @@
   #:use-module (srfi srfi-37)
   #:use-module (ice-9 match)
   #:use-module (rnrs bytevectors)
+  #:autoload   (guix describe) (current-profile)
   #:autoload   (system repl repl) (start-repl)
   #:autoload   (system repl server)
                   (make-tcp-server-socket make-unix-domain-server-socket)
@@ -137,7 +138,10 @@ call THUNK."
              (loop)))))))
 
 
-(define (guix-repl . args)
+(define-command (guix-repl . args)
+  (category plumbing)
+  (synopsis "read-eval-print loop (REPL) for interactive programming")
+
   (define opts
     (args-fold* args %options
                 (lambda (opt name arg result)
@@ -173,9 +177,19 @@ call THUNK."
       ;; Run script
       (save-module-excursion
        (lambda ()
+         ;; Invoke 'current-profile' so that it memoizes the correct value
+         ;; based on (program-arguments), before we call
+         ;; 'set-program-arguments'.  This in turn ensures that
+         ;; (%package-module-path) will contain entries for the channels
+         ;; available in the current profile.
+         (current-profile)
+
          (set-program-arguments script)
          (set-user-module)
-         (load-in-vicinity "." (car script)))))
+
+         ;; When passed a relative file name, 'load-in-vicinity' searches the
+         ;; file in %LOAD-PATH.  Thus, pass (getcwd) instead of ".".
+         (load-in-vicinity (getcwd) (car script)))))
 
     (when (null? script)
       ;; Start REPL
diff --git a/guix/scripts/search.scm b/guix/scripts/search.scm
index 827b2eb7a9..0c9e6af07b 100644
--- a/guix/scripts/search.scm
+++ b/guix/scripts/search.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2019, 2020 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -57,7 +57,9 @@ This is an alias for 'guix package -s'.\n"))
                 (member "load-path" (option-names option)))
               %standard-build-options)))
 
-(define (guix-search . args)
+(define-command (guix-search . args)
+  (synopsis "search for packages")
+
   (define (handle-argument arg result)
     ;; Treat all non-option arguments as regexps.
     (cons `(query search ,(or arg ""))
diff --git a/guix/scripts/show.scm b/guix/scripts/show.scm
index a2b0030a63..535d03c1a6 100644
--- a/guix/scripts/show.scm
+++ b/guix/scripts/show.scm
@@ -57,7 +57,9 @@ This is an alias for 'guix package --show='.\n"))
                 (member "load-path" (option-names option)))
               %standard-build-options)))
 
-(define (guix-show . args)
+(define-command (guix-show . args)
+  (synopsis "show information about packages")
+
   (define (handle-argument arg result)
     ;; Treat all non-option arguments as regexps.
     (cons `(query show ,arg)
diff --git a/guix/scripts/size.scm b/guix/scripts/size.scm
index c42f4f7782..e46983382a 100644
--- a/guix/scripts/size.scm
+++ b/guix/scripts/size.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2019 Simon Tournier <zimon.toutoune@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -298,7 +298,10 @@ Report the size of the PACKAGE or STORE-ITEM, with its dependencies.\n"))
 ;;; Entry point.
 ;;;
 
-(define (guix-size . args)
+(define-command (guix-size . args)
+  (category packaging)
+  (synopsis "profile the on-disk size of packages")
+
   (with-error-handling
     (let* ((opts     (parse-command-line args %options (list %default-options)
                                          #:build-options? #f))
diff --git a/guix/scripts/substitute.scm b/guix/scripts/substitute.scm
index ba2b2d2d4e..f9bcead045 100755
--- a/guix/scripts/substitute.scm
+++ b/guix/scripts/substitute.scm
@@ -2,6 +2,7 @@
 ;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2014 Nikita Karetnikov <nikita@karetnikov.org>
 ;;; Copyright © 2018 Kyle Meyer <kyle@kyleam.com>
+;;; Copyright © 2020 Christopher Baines <mail@cbaines.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -20,12 +21,18 @@
 
 (define-module (guix scripts substitute)
   #:use-module (guix ui)
+  #:use-module (guix scripts)
+  #:use-module (guix narinfo)
   #:use-module (guix store)
   #:use-module (guix utils)
   #:use-module (guix combinators)
   #:use-module (guix config)
   #:use-module (guix records)
-  #:use-module ((guix serialization) #:select (restore-file))
+  #:use-module (guix diagnostics)
+  #:use-module (guix i18n)
+  #:use-module ((guix serialization) #:select (restore-file dump-file))
+  #:autoload   (guix store deduplication) (dump-file/deduplicate)
+  #:autoload   (guix scripts discover) (read-substitute-urls)
   #:use-module (gcrypt hash)
   #:use-module (guix base32)
   #:use-module (guix base64)
@@ -38,10 +45,10 @@
                           (open-connection-for-uri
                            . guix:open-connection-for-uri)
                           store-path-abbreviation byte-count->string))
+  #:autoload   (gnutls) (error/invalid-session)
   #:use-module (guix progress)
   #:use-module ((guix build syscalls)
                 #:select (set-thread-name))
-  #:autoload   (guix lzlib) (lzlib-available?)
   #:use-module (ice-9 rdelim)
   #:use-module (ice-9 regex)
   #:use-module (ice-9 match)
@@ -62,31 +69,11 @@
   #:use-module (web request)
   #:use-module (web response)
   #:use-module (guix http-client)
-  #:export (narinfo-signature->canonical-sexp
-
-            narinfo?
-            narinfo-path
-            narinfo-uris
-            narinfo-uri-base
-            narinfo-compressions
-            narinfo-file-hashes
-            narinfo-file-sizes
-            narinfo-hash
-            narinfo-size
-            narinfo-references
-            narinfo-deriver
-            narinfo-system
-            narinfo-signature
-
-            narinfo-hash->sha256
-            narinfo-best-uri
-
-            lookup-narinfos
+  #:export (lookup-narinfos
             lookup-narinfos/diverse
-            read-narinfo
-            write-narinfo
 
             %allow-unauthenticated-substitutes?
+            %error-to-file-descriptor-4?
 
             substitute-urls
             guix-substitute))
@@ -123,11 +110,7 @@ disabled!~%"))
   ;; purposes, and should be avoided otherwise.
   (make-parameter
    (and=> (getenv "GUIX_ALLOW_UNAUTHENTICATED_SUBSTITUTES")
-          (cut string-ci=? <> "yes"))
-   (lambda (value)
-     (when value
-       (warn-about-missing-authentication))
-     value)))
+          (cut string-ci=? <> "yes"))))
 
 (define %narinfo-ttl
   ;; Number of seconds during which cached narinfo lookups are considered
@@ -137,7 +120,7 @@ disabled!~%"))
 
 (define %narinfo-negative-ttl
   ;; Likewise, but for negative lookups---i.e., cached lookup failures (404).
-  (* 3 3600))
+  (* 1 3600))
 
 (define %narinfo-transient-error-ttl
   ;; Likewise, but for transient errors such as 504 ("Gateway timeout").
@@ -147,10 +130,6 @@ disabled!~%"))
   ;; How often we want to remove files corresponding to expired cache entries.
   (* 7 24 3600))
 
-(define fields->alist
-  ;; The narinfo format is really just like recutils.
-  recutils->alist)
-
 (define %fetch-timeout
   ;; Number of seconds after which networking is considered "slow".
   5)
@@ -190,9 +169,14 @@ again."
         (sigaction SIGALRM SIG_DFL)
         (apply values result)))))
 
-(define* (fetch uri #:key (buffered? #t) (timeout? #t))
+(define* (fetch uri #:key (buffered? #t) (timeout? #t)
+                (keep-alive? #f) (port #f))
   "Return a binary input port to URI and the number of bytes it's expected to
-provide."
+provide.
+
+When PORT is true, use it as the underlying I/O port for HTTP transfers; when
+PORT is false, open a new connection for URI.  When KEEP-ALIVE? is true, the
+connection (typically PORT) is kept open once data has been fetched from URI."
   (case (uri-scheme uri)
     ((file)
      (let ((port (open-file (uri-path uri)
@@ -208,7 +192,7 @@ provide."
        ;;   sudo tc qdisc add dev eth0 root netem delay 1500ms
        ;; and then cancel with:
        ;;   sudo tc qdisc del dev eth0 root
-       (let ((port #f))
+       (let ((port port))
          (with-timeout (if timeout?
                            %fetch-timeout
                            0)
@@ -219,188 +203,16 @@ provide."
            (begin
              (when (or (not port) (port-closed? port))
                (set! port (guix:open-connection-for-uri
-                           uri #:verify-certificate? #f))
-               (unless (or buffered? (not (file-port? port)))
-                 (setvbuf port 'none)))
+                           uri #:verify-certificate? #f)))
+             (unless (or buffered? (not (file-port? port)))
+               (setvbuf port 'none))
              (http-fetch uri #:text? #f #:port port
+                         #:keep-alive? keep-alive?
                          #:verify-certificate? #f))))))
     (else
      (leave (G_ "unsupported substitute URI scheme: ~a~%")
             (uri->string uri)))))
 
-
-(define-record-type <narinfo>
-  (%make-narinfo path uri-base uris compressions file-sizes file-hashes
-                 nar-hash nar-size references deriver system
-                 signature contents)
-  narinfo?
-  (path         narinfo-path)
-  (uri-base     narinfo-uri-base)        ;URI of the cache it originates from
-  (uris         narinfo-uris)            ;list of strings
-  (compressions narinfo-compressions)    ;list of strings
-  (file-sizes   narinfo-file-sizes)      ;list of (integers | #f)
-  (file-hashes  narinfo-file-hashes)
-  (nar-hash     narinfo-hash)
-  (nar-size     narinfo-size)
-  (references   narinfo-references)
-  (deriver      narinfo-deriver)
-  (system       narinfo-system)
-  (signature    narinfo-signature)      ; canonical sexp
-  ;; The original contents of a narinfo file.  This field is needed because we
-  ;; want to preserve the exact textual representation for verification purposes.
-  ;; See <https://lists.gnu.org/archive/html/guix-devel/2014-02/msg00340.html>
-  ;; for more information.
-  (contents     narinfo-contents))
-
-(define (narinfo-hash->sha256 hash)
-  "If the string HASH denotes a sha256 hash, return it as a bytevector.
-Otherwise return #f."
-  (and (string-prefix? "sha256:" hash)
-       (nix-base32-string->bytevector (string-drop hash 7))))
-
-(define (narinfo-signature->canonical-sexp str)
-  "Return the value of a narinfo's 'Signature' field as a canonical sexp."
-  (match (string-split str #\;)
-    ((version host-name sig)
-     (let ((maybe-number (string->number version)))
-       (cond ((not (number? maybe-number))
-              (leave (G_ "signature version must be a number: ~s~%")
-                     version))
-             ;; Currently, there are no other versions.
-             ((not (= 1 maybe-number))
-              (leave (G_ "unsupported signature version: ~a~%")
-                     maybe-number))
-             (else
-              (let ((signature (utf8->string (base64-decode sig))))
-                (catch 'gcry-error
-                  (lambda ()
-                    (string->canonical-sexp signature))
-                  (lambda (key proc err)
-                    (leave (G_ "signature is not a valid \
-s-expression: ~s~%")
-                           signature))))))))
-    (x
-     (leave (G_ "invalid format of the signature field: ~a~%") x))))
-
-(define (narinfo-maker str cache-url)
-  "Return a narinfo constructor for narinfos originating from CACHE-URL.  STR
-must contain the original contents of a narinfo file."
-  (lambda (path urls compressions file-hashes file-sizes
-                nar-hash nar-size references deriver system
-                signature)
-    "Return a new <narinfo> object."
-    (define len (length urls))
-    (%make-narinfo path cache-url
-                   ;; Handle the case where URL is a relative URL.
-                   (map (lambda (url)
-                          (or (string->uri url)
-                              (string->uri
-                               (string-append cache-url "/" url))))
-                        urls)
-                   compressions
-                   (match file-sizes
-                     (()        (make-list len #f))
-                     ((lst ...) (map string->number lst)))
-                   (match file-hashes
-                     (()        (make-list len #f))
-                     ((lst ...) (map string->number lst)))
-                   nar-hash
-                   (and=> nar-size string->number)
-                   (string-tokenize references)
-                   (match deriver
-                     ((or #f "") #f)
-                     (_ deriver))
-                   system
-                   (false-if-exception
-                    (and=> signature narinfo-signature->canonical-sexp))
-                   str)))
-
-(define* (read-narinfo port #:optional url
-                       #:key size)
-  "Read a narinfo from PORT.  If URL is true, it must be a string used to
-build full URIs from relative URIs found while reading PORT.  When SIZE is
-true, read at most SIZE bytes from PORT; otherwise, read as much as possible.
-
-No authentication and authorization checks are performed here!"
-  (let ((str (utf8->string (if size
-                               (get-bytevector-n port size)
-                               (get-bytevector-all port)))))
-    (alist->record (call-with-input-string str fields->alist)
-                   (narinfo-maker str url)
-                   '("StorePath" "URL" "Compression"
-                     "FileHash" "FileSize" "NarHash" "NarSize"
-                     "References" "Deriver" "System"
-                     "Signature")
-                   '("URL" "Compression" "FileSize" "FileHash"))))
-
-(define (narinfo-sha256 narinfo)
-  "Return the sha256 hash of NARINFO as a bytevector, or #f if NARINFO lacks a
-'Signature' field."
-  (define %mandatory-fields
-    ;; List of fields that must be signed.  If they are not signed, the
-    ;; narinfo is considered unsigned.
-    '("StorePath" "NarHash" "References"))
-
-  (let ((contents (narinfo-contents narinfo)))
-    (match (string-contains contents "Signature:")
-      (#f #f)
-      (index
-       (let* ((above-signature (string-take contents index))
-              (signed-fields (match (call-with-input-string above-signature
-                                      fields->alist)
-                               (((fields . values) ...) fields))))
-         (and (every (cut member <> signed-fields) %mandatory-fields)
-              (sha256 (string->utf8 above-signature))))))))
-
-(define* (valid-narinfo? narinfo #:optional (acl (current-acl))
-                         #:key verbose?)
-  "Return #t if NARINFO's signature is not valid."
-  (or (%allow-unauthenticated-substitutes?)
-      (let ((hash      (narinfo-sha256 narinfo))
-            (signature (narinfo-signature narinfo))
-            (uri       (uri->string (first (narinfo-uris narinfo)))))
-        (and hash signature
-             (signature-case (signature hash acl)
-               (valid-signature #t)
-               (invalid-signature
-                (when verbose?
-                  (format (current-error-port)
-                          "invalid signature for substitute at '~a'~%"
-                          uri))
-                #f)
-               (hash-mismatch
-                (when verbose?
-                  (format (current-error-port)
-                          "hash mismatch for substitute at '~a'~%"
-                          uri))
-                #f)
-               (unauthorized-key
-                (when verbose?
-                  (format (current-error-port)
-                          "substitute at '~a' is signed by an \
-unauthorized party~%"
-                          uri))
-                #f)
-               (corrupt-signature
-                (when verbose?
-                  (format (current-error-port)
-                          "corrupt signature for substitute at '~a'~%"
-                          uri))
-                #f))))))
-
-(define (write-narinfo narinfo port)
-  "Write NARINFO to PORT."
-  (put-bytevector port (string->utf8 (narinfo-contents narinfo))))
-
-(define (narinfo->string narinfo)
-  "Return the external representation of NARINFO."
-  (call-with-output-string (cut write-narinfo narinfo <>)))
-
-(define (string->narinfo str cache-uri)
-  "Return the narinfo represented by STR.  Assume CACHE-URI as the base URI of
-the cache STR originates form."
-  (call-with-input-string str (cut read-narinfo <> cache-uri)))
-
 (define (narinfo-cache-file cache-url path)
   "Return the name of the local file that contains an entry for PATH.  The
 entry is stored in a sub-directory specific to CACHE-URL."
@@ -480,27 +292,33 @@ indicates that PATH is unavailable at CACHE-URL."
     (build-request (string->uri url) #:method 'GET #:headers headers)))
 
 (define (at-most max-length lst)
-  "If LST is shorter than MAX-LENGTH, return it; otherwise return its
-MAX-LENGTH first elements."
+  "If LST is shorter than MAX-LENGTH, return it and the empty list; otherwise
+return its MAX-LENGTH first elements and its tail."
   (let loop ((len 0)
              (lst lst)
              (result '()))
     (match lst
       (()
-       (reverse result))
+       (values (reverse result) '()))
       ((head . tail)
        (if (>= len max-length)
-           (reverse result)
+           (values (reverse result) lst)
            (loop (+ 1 len) tail (cons head result)))))))
 
 (define* (http-multiple-get base-uri proc seed requests
                             #:key port (verify-certificate? #t)
+                            (open-connection guix:open-connection-for-uri)
+                            (keep-alive? #t)
                             (batch-size 1000))
   "Send all of REQUESTS to the server at BASE-URI.  Call PROC for each
 response, passing it the request object, the response, a port from which to
 read the response body, and the previous result, starting with SEED, à la
-'fold'.  Return the final result.  When PORT is specified, use it as the
-initial connection on which HTTP requests are sent."
+'fold'.  Return the final result.
+
+When PORT is specified, use it as the initial connection on which HTTP
+requests are sent; otherwise call OPEN-CONNECTION to open a new connection for
+a URI.  When KEEP-ALIVE? is false, close the connection port before
+returning."
   (let connect ((port     port)
                 (requests requests)
                 (result   seed))
@@ -509,10 +327,9 @@ initial connection on which HTTP requests are sent."
 
     ;; (format (current-error-port) "connecting (~a requests left)..."
     ;;         (length requests))
-    (let ((p (or port (guix:open-connection-for-uri
-                       base-uri
-                       #:verify-certificate?
-                       verify-certificate?))))
+    (let ((p (or port (open-connection base-uri
+                                       #:verify-certificate?
+                                       verify-certificate?))))
       ;; For HTTPS, P is not a file port and does not support 'setvbuf'.
       (when (file-port? p)
         (setvbuf p 'block (expt 2 16)))
@@ -537,7 +354,8 @@ initial connection on which HTTP requests are sent."
           (()
            (match (drop requests processed)
              (()
-              (close-port p)
+              (unless keep-alive?
+                (close-port p))
               (reverse result))
              (remainder
               (connect p remainder result))))
@@ -579,18 +397,18 @@ if file doesn't exist, and the narinfo otherwise."
 
 (define* (open-connection-for-uri/maybe uri
                                         #:key
-                                        (verify-certificate? #f)
+                                        fresh?
                                         (time %fetch-timeout))
-  "Open a connection to URI and return a port to it, or, if connection failed,
-print a warning and return #f."
+  "Open a connection to URI via 'open-connection-for-uri/cached' and return a
+port to it, or, if connection failed, print a warning and return #f.  Pass
+#:fresh? to 'open-connection-for-uri/cached'."
   (define host
     (uri-host uri))
 
   (catch #t
     (lambda ()
-      (guix:open-connection-for-uri uri
-                                    #:verify-certificate? verify-certificate?
-                                    #:timeout time))
+      (open-connection-for-uri/cached uri #:timeout time
+                                      #:fresh? fresh?))
     (match-lambda*
       (('getaddrinfo-error error)
        (unless (hash-ref %unreachable-hosts host)
@@ -656,7 +474,7 @@ print a warning and return #f."
                 (get-bytevector-n port len)
                 (read-to-eof port))
             (cache-narinfo! url (hash-part->path hash-part) #f
-                            (if (= 404 code)
+                            (if (or (= 404 code) (= 202 code))
                                 ttl
                                 %narinfo-transient-error-ttl))
             result))))
@@ -664,23 +482,26 @@ print a warning and return #f."
   (define (do-fetch uri)
     (case (and=> uri uri-scheme)
       ((http https)
-       (let ((requests (map (cut narinfo-request url <>) paths)))
-         (match (open-connection-for-uri/maybe uri)
-           (#f
-            '())
-           (port
-            (update-progress!)
-            ;; Note: Do not check HTTPS server certificates to avoid depending
-            ;; on the X.509 PKI.  We can do it because we authenticate
-            ;; narinfos, which provides a much stronger guarantee.
-            (let ((result (http-multiple-get uri
-                                             handle-narinfo-response '()
-                                             requests
-                                             #:verify-certificate? #f
-                                             #:port port)))
-              (close-port port)
-              (newline (current-error-port))
-              result)))))
+       ;; Note: Do not check HTTPS server certificates to avoid depending
+       ;; on the X.509 PKI.  We can do it because we authenticate
+       ;; narinfos, which provides a much stronger guarantee.
+       (let* ((requests (map (cut narinfo-request url <>) paths))
+              (result   (call-with-cached-connection uri
+                          (lambda (port)
+                            (if port
+                                (begin
+                                  (update-progress!)
+                                  (http-multiple-get uri
+                                                     handle-narinfo-response '()
+                                                     requests
+                                                     #:open-connection
+                                                     open-connection-for-uri/cached
+                                                     #:verify-certificate? #f
+                                                     #:port port))
+                                '()))
+                          open-connection-for-uri/maybe)))
+         (newline (current-error-port))
+         result))
       ((file #f)
        (let* ((base  (string-append (uri-path uri) "/"))
               (files (map (compose (cut string-append base <> ".narinfo")
@@ -713,22 +534,6 @@ information is available locally."
         (let ((missing (fetch-narinfos cache missing)))
           (append cached (or missing '()))))))
 
-(define (equivalent-narinfo? narinfo1 narinfo2)
-  "Return true if NARINFO1 and NARINFO2 are equivalent--i.e., if they describe
-the same store item.  This ignores unnecessary metadata such as the Nar URL."
-  (and (string=? (narinfo-hash narinfo1)
-                 (narinfo-hash narinfo2))
-
-       ;; The following is not needed if all we want is to download a valid
-       ;; nar, but it's necessary if we want valid narinfo.
-       (string=? (narinfo-path narinfo1)
-                 (narinfo-path narinfo2))
-       (equal? (narinfo-references narinfo1)
-               (narinfo-references narinfo2))
-
-       (= (narinfo-size narinfo1)
-          (narinfo-size narinfo2))))
-
 (define (lookup-narinfos/diverse caches paths authorized?)
   "Look up narinfos for PATHS on all of CACHES, a list of URLS, in that order.
 That is, when a cache lacks an AUTHORIZED? narinfo, look it up in the next
@@ -889,8 +694,14 @@ expected by the daemon."
   "Reply to COMMAND, a query as written by the daemon to this process's
 standard input.  Use ACL as the access-control list against which to check
 authorized substitutes."
-  (define (valid? obj)
-    (valid-narinfo? obj acl))
+  (define valid?
+    (if (%allow-unauthenticated-substitutes?)
+        (begin
+          (warn-about-missing-authentication)
+
+          (const #t))
+        (lambda (obj)
+          (valid-narinfo? obj acl))))
 
   (match (string-tokenize command)
     (("have" paths ..1)
@@ -908,66 +719,105 @@ authorized substitutes."
     (wtf
      (error "unknown `--query' command" wtf))))
 
-(define %compression-methods
-  ;; Known compression methods and a thunk to determine whether they're
-  ;; supported.  See 'decompressed-port' in (guix utils).
-  `(("gzip"  . ,(const #t))
-    ("lzip"  . ,lzlib-available?)
-    ("xz"    . ,(const #t))
-    ("bzip2" . ,(const #t))
-    ("none"  . ,(const #t))))
-
-(define (supported-compression? compression)
-  "Return true if COMPRESSION, a string, denotes a supported compression
-method."
-  (match (assoc-ref %compression-methods compression)
-    (#f         #f)
-    (supported? (supported?))))
-
-(define (compresses-better? compression1 compression2)
-  "Return true if COMPRESSION1 generally compresses better than COMPRESSION2;
-this is a rough approximation."
-  (match compression1
-    ("none" #f)
-    ("gzip" (string=? compression2 "none"))
-    (_      (or (string=? compression2 "none")
-                (string=? compression2 "gzip")))))
-
-(define (narinfo-best-uri narinfo)
-  "Select the \"best\" URI to download NARINFO's nar, and return three values:
-the URI, its compression method (a string), and the compressed file size."
-  (define choices
-    (filter (match-lambda
-              ((uri compression file-size)
-               (supported-compression? compression)))
-            (zip (narinfo-uris narinfo)
-                 (narinfo-compressions narinfo)
-                 (narinfo-file-sizes narinfo))))
-
-  (define (file-size<? c1 c2)
-    (match c1
-      ((uri1 compression1 (? integer? file-size1))
-       (match c2
-         ((uri2 compression2 (? integer? file-size2))
-          (< file-size1 file-size2))
-         (_ #t)))
-      ((uri compression1 #f)
-       (match c2
-         ((uri2 compression2 _)
-          (compresses-better? compression1 compression2))))
-      (_ #f)))                                    ;we can't tell
-
-  (match (sort choices file-size<?)
-    (((uri compression file-size) _ ...)
-     (values uri compression file-size))))
+(define %max-cached-connections
+  ;; Maximum number of connections kept in cache by
+  ;; 'open-connection-for-uri/cached'.
+  16)
+
+(define open-connection-for-uri/cached
+  (let ((cache '()))
+    (lambda* (uri #:key fresh? timeout verify-certificate?)
+      "Return a connection for URI, possibly reusing a cached connection.
+When FRESH? is true, delete any cached connections for URI and open a new one.
+Return #f if URI's scheme is 'file' or #f.
+
+When true, TIMEOUT is the maximum number of milliseconds to wait for
+connection establishment.  When VERIFY-CERTIFICATE? is true, verify HTTPS
+server certificates."
+      (define host (uri-host uri))
+      (define scheme (uri-scheme uri))
+      (define key (list host scheme (uri-port uri)))
+
+      (and (not (memq scheme '(file #f)))
+           (match (assoc-ref cache key)
+             (#f
+              ;; Open a new connection to URI and evict old entries from
+              ;; CACHE, if any.
+              (let-values (((socket)
+                            (guix:open-connection-for-uri
+                             uri
+                             #:verify-certificate? verify-certificate?
+                             #:timeout timeout))
+                           ((new-cache evicted)
+                            (at-most (- %max-cached-connections 1) cache)))
+                (for-each (match-lambda
+                            ((_ . port)
+                             (false-if-exception (close-port port))))
+                          evicted)
+                (set! cache (alist-cons key socket new-cache))
+                socket))
+             (socket
+              (if (or fresh? (port-closed? socket))
+                  (begin
+                    (false-if-exception (close-port socket))
+                    (set! cache (alist-delete key cache))
+                    (open-connection-for-uri/cached uri #:timeout timeout
+                                                    #:verify-certificate?
+                                                    verify-certificate?))
+                  (begin
+                    ;; Drain input left from the previous use.
+                    (drain-input socket)
+                    socket))))))))
+
+(define* (call-with-cached-connection uri proc
+                                      #:optional
+                                      (open-connection
+                                       open-connection-for-uri/cached))
+  (let ((port (open-connection uri)))
+    (catch #t
+      (lambda ()
+        (proc port))
+      (lambda (key . args)
+        ;; If PORT was cached and the server closed the connection in the
+        ;; meantime, we get EPIPE.  In that case, open a fresh connection and
+        ;; retry.  We might also get 'bad-response or a similar exception from
+        ;; (web response) later on, once we've sent the request, or a
+        ;; ERROR/INVALID-SESSION from GnuTLS.
+        (if (or (and (eq? key 'system-error)
+                     (= EPIPE (system-error-errno `(,key ,@args))))
+                (and (eq? key 'gnutls-error)
+                     (eq? (first args) error/invalid-session))
+                (memq key '(bad-response bad-header bad-header-component)))
+            (proc (open-connection uri #:fresh? #t))
+            (apply throw key args))))))
+
+(define-syntax-rule (with-cached-connection uri port exp ...)
+  "Bind PORT with EXP... to a socket connected to URI."
+  (call-with-cached-connection uri (lambda (port) exp ...)))
 
 (define* (process-substitution store-item destination
-                               #:key cache-urls acl print-build-trace?)
+                               #:key cache-urls acl
+                               deduplicate? print-build-trace?)
   "Substitute STORE-ITEM (a store file name) from CACHE-URLS, and write it to
-DESTINATION as a nar file.  Verify the substitute against ACL."
+DESTINATION as a nar file.  Verify the substitute against ACL, and verify its
+hash against what appears in the narinfo.  When DEDUPLICATE? is true, and if
+DESTINATION is in the store, deduplicate its files.  Print a status line on
+the current output port."
   (define narinfo
     (lookup-narinfo cache-urls store-item
-                    (cut valid-narinfo? <> acl)))
+                    (if (%allow-unauthenticated-substitutes?)
+                        (const #t)
+                        (cut valid-narinfo? <> acl))))
+
+  (define destination-in-store?
+    (string-prefix? (string-append (%store-prefix) "/")
+                    destination))
+
+  (define (dump-file/deduplicate* . args)
+    ;; Make sure deduplication looks at the right store (necessary in test
+    ;; environments).
+    (apply dump-file/deduplicate
+           (append args (list #:store (%store-prefix)))))
 
   (unless narinfo
     (leave (G_ "no valid substitute for '~a'~%")
@@ -975,18 +825,17 @@ DESTINATION as a nar file.  Verify the substitute against ACL."
 
   (let-values (((uri compression file-size)
                 (narinfo-best-uri narinfo)))
-    ;; Tell the daemon what the expected hash of the Nar itself is.
-    (format #t "~a~%" (narinfo-hash narinfo))
-
     (unless print-build-trace?
       (format (current-error-port)
               (G_ "Downloading ~a...~%") (uri->string uri)))
 
     (let*-values (((raw download-size)
-                   ;; Note that Hydra currently generates Nars on the fly
-                   ;; and doesn't specify a Content-Length, so
-                   ;; DOWNLOAD-SIZE is #f in practice.
-                   (fetch uri #:buffered? #f #:timeout? #f))
+                   ;; 'guix publish' without '--cache' doesn't specify a
+                   ;; Content-Length, so DOWNLOAD-SIZE is #f in this case.
+                   (with-cached-connection uri port
+                     (fetch uri #:buffered? #f #:timeout? #f
+                            #:port port
+                            #:keep-alive? #t)))
                   ((progress)
                    (let* ((dl-size  (or download-size
                                         (and (equal? compression "none")
@@ -1000,15 +849,28 @@ DESTINATION as a nar file.  Verify the substitute against ACL."
                                          (uri->string uri) dl-size
                                          (current-error-port)
                                          #:abbreviation nar-uri-abbreviation))))
-                     (progress-report-port reporter raw)))
+                     ;; Keep RAW open upon completion so we can later reuse
+                     ;; the underlying connection.
+                     (progress-report-port reporter raw #:close? #f)))
                   ((input pids)
                    ;; NOTE: This 'progress' port of current process will be
                    ;; closed here, while the child process doing the
                    ;; reporting will close it upon exit.
                    (decompressed-port (string->symbol compression)
-                                      progress)))
+                                      progress))
+
+                  ;; Compute the actual nar hash as we read it.
+                  ((algorithm expected)
+                   (narinfo-hash-algorithm+value narinfo))
+                  ((hashed get-hash)
+                   (open-hash-input-port algorithm input)))
       ;; Unpack the Nar at INPUT into DESTINATION.
-      (restore-file input destination)
+      (restore-file hashed destination
+                    #:dump-file (if (and destination-in-store?
+                                         deduplicate?)
+                                    dump-file/deduplicate*
+                                    dump-file))
+      (close-port hashed)
       (close-port input)
 
       ;; Wait for the reporter to finish.
@@ -1016,7 +878,19 @@ DESTINATION as a nar file.  Verify the substitute against ACL."
 
       ;; Skip a line after what 'progress-reporter/file' printed, and another
       ;; one to visually separate substitutions.
-      (display "\n\n" (current-error-port)))))
+      (display "\n\n" (current-error-port))
+
+      ;; Check whether we got the data announced in NARINFO.
+      (let ((actual (get-hash)))
+        (if (bytevector=? actual expected)
+            ;; Tell the daemon that we're done.
+            (format (current-output-port) "success ~a ~a~%"
+                    (narinfo-hash narinfo) (narinfo-size narinfo))
+            ;; The actual data has a different hash than that in NARINFO.
+            (format (current-output-port) "hash-mismatch ~a ~a ~a~%"
+                    (hash-algorithm-name algorithm)
+                    (bytevector->nix-base32-string expected)
+                    (bytevector->nix-base32-string actual)))))))
 
 
 ;;;
@@ -1078,9 +952,40 @@ found."
      ;; daemon.
      '("http://ci.guix.gnu.org"))))
 
+;; In order to prevent using large number of discovered local substitute
+;; servers, limit the local substitute urls list size.
+(define %max-substitute-urls 50)
+
+(define* (randomize-substitute-urls urls
+                                    #:key
+                                    (max %max-substitute-urls))
+  "Return a list containing MAX urls from URLS, picked randomly. If URLS list
+is shorter than MAX elements, then it is directly returned."
+  (define (random-item list)
+    (list-ref list (random (length list))))
+
+  (if (<= (length urls) max)
+      urls
+      (let loop ((res '())
+                 (urls urls))
+        (if (eq? (length res) max)
+            res
+            (let ((url (random-item urls)))
+              (loop (cons url res) (delete url urls)))))))
+
+(define %local-substitute-urls
+  ;; If the following option is passed to the daemon, use the substitutes list
+  ;; provided by "guix discover" process.
+  (let* ((option (find-daemon-option "discover"))
+         (discover? (and option (string=? option "yes"))))
+    (if discover?
+     (randomize-substitute-urls (read-substitute-urls))
+     '())))
+
 (define substitute-urls
   ;; List of substitute URLs.
-  (make-parameter %default-substitute-urls))
+  (make-parameter (append %local-substitute-urls
+                          %default-substitute-urls)))
 
 (define (client-terminal-columns)
   "Return the number of columns in the client's terminal, if it is known, or a
@@ -1096,8 +1001,15 @@ default value."
   (unless (string->uri uri)
     (leave (G_ "~a: invalid URI~%") uri)))
 
-(define (guix-substitute . args)
-  "Implement the build daemon's substituter protocol."
+(define %error-to-file-descriptor-4?
+  ;; Whether to direct 'current-error-port' to file descriptor 4 like
+  ;; 'guix-daemon' expects.
+  (make-parameter #t))
+
+(define-command (guix-substitute . args)
+  (category internal)
+  (synopsis "implement the build daemon's substituter protocol")
+
   (define print-build-trace?
     (match (or (find-daemon-option "untrusted-print-extended-build-trace")
                (find-daemon-option "print-extended-build-trace"))
@@ -1105,70 +1017,83 @@ default value."
       ((= string->number number) (> number 0))
       (_ #f)))
 
-  (mkdir-p %narinfo-cache-directory)
-  (maybe-remove-expired-cache-entries %narinfo-cache-directory
-                                      cached-narinfo-files
-                                      #:entry-expiration
-                                      cached-narinfo-expiration-time
-                                      #:cleanup-period
-                                      %narinfo-expired-cache-entry-removal-delay)
-  (check-acl-initialized)
-
-  ;; Starting from commit 22144afa in Nix, we are allowed to bail out directly
-  ;; when we know we cannot substitute, but we must emit a newline on stdout
-  ;; when everything is alright.
-  (when (null? (substitute-urls))
-    (exit 0))
-
-  ;; Say hello (see above.)
-  (newline)
-  (force-output (current-output-port))
-
-  ;; Sanity-check SUBSTITUTE-URLS so we can provide a meaningful error message.
-  (for-each validate-uri (substitute-urls))
-
-  ;; Attempt to install the client's locale, mostly so that messages are
-  ;; suitably translated.
-  (match (or (find-daemon-option "untrusted-locale")
-             (find-daemon-option "locale"))
-    (#f     #f)
-    (locale (false-if-exception (setlocale LC_ALL locale))))
-
-  (catch 'system-error
-    (lambda ()
-      (set-thread-name "guix substitute"))
-    (const #t))                                   ;GNU/Hurd lacks 'prctl'
-
-  (with-networking
-   (with-error-handling                           ; for signature errors
-     (match args
-       (("--query")
-        (let ((acl (current-acl)))
-          (let loop ((command (read-line)))
-            (or (eof-object? command)
-                (begin
-                  (process-query command
-                                 #:cache-urls (substitute-urls)
-                                 #:acl acl)
-                  (loop (read-line)))))))
-       (("--substitute" store-path destination)
-        ;; Download STORE-PATH and add store it as a Nar in file DESTINATION.
-        ;; Specify the number of columns of the terminal so the progress
-        ;; report displays nicely.
-        (parameterize ((current-terminal-columns (client-terminal-columns)))
-          (process-substitution store-path destination
-                                #:cache-urls (substitute-urls)
-                                #:acl (current-acl)
-                                #:print-build-trace? print-build-trace?)))
-       ((or ("-V") ("--version"))
-        (show-version-and-exit "guix substitute"))
-       (("--help")
-        (show-help))
-       (opts
-        (leave (G_ "~a: unrecognized options~%") opts))))))
+  (define deduplicate?
+    (find-daemon-option "deduplicate"))
+
+  ;; The daemon's agent code opens file descriptor 4 for us and this is where
+  ;; stderr should go.
+  (parameterize ((current-error-port (if (%error-to-file-descriptor-4?)
+                                         (fdopen 4 "wl")
+                                         (current-error-port))))
+    ;; Redirect diagnostics to file descriptor 4 as well.
+    (guix-warning-port (current-error-port))
+
+    (mkdir-p %narinfo-cache-directory)
+    (maybe-remove-expired-cache-entries %narinfo-cache-directory
+                                        cached-narinfo-files
+                                        #:entry-expiration
+                                        cached-narinfo-expiration-time
+                                        #:cleanup-period
+                                        %narinfo-expired-cache-entry-removal-delay)
+    (check-acl-initialized)
+
+    ;; Sanity-check SUBSTITUTE-URLS so we can provide a meaningful error
+    ;; message.
+    (for-each validate-uri (substitute-urls))
+
+    ;; Attempt to install the client's locale so that messages are suitably
+    ;; translated.  LC_CTYPE must be a UTF-8 locale; it's the case by default
+    ;; so don't change it.
+    (match (or (find-daemon-option "untrusted-locale")
+               (find-daemon-option "locale"))
+      (#f     #f)
+      (locale (false-if-exception (setlocale LC_MESSAGES locale))))
+
+    (catch 'system-error
+      (lambda ()
+        (set-thread-name "guix substitute"))
+      (const #t))                                 ;GNU/Hurd lacks 'prctl'
+
+    (with-networking
+     (with-error-handling                         ; for signature errors
+       (match args
+         (("--query")
+          (let ((acl (current-acl)))
+            (let loop ((command (read-line)))
+              (or (eof-object? command)
+                  (begin
+                    (process-query command
+                                   #:cache-urls (substitute-urls)
+                                   #:acl acl)
+                    (loop (read-line)))))))
+         (("--substitute")
+          ;; Download STORE-PATH and store it as a Nar in file DESTINATION.
+          ;; Specify the number of columns of the terminal so the progress
+          ;; report displays nicely.
+          (parameterize ((current-terminal-columns (client-terminal-columns)))
+            (let loop ()
+              (match (read-line)
+                ((? eof-object?)
+                 #t)
+                ((= string-tokenize ("substitute" store-path destination))
+                 (process-substitution store-path destination
+                                       #:cache-urls (substitute-urls)
+                                       #:acl (current-acl)
+                                       #:deduplicate? deduplicate?
+                                       #:print-build-trace?
+                                       print-build-trace?)
+                 (loop))))))
+         ((or ("-V") ("--version"))
+          (show-version-and-exit "guix substitute"))
+         (("--help")
+          (show-help))
+         (opts
+          (leave (G_ "~a: unrecognized options~%") opts)))))))
 
 ;;; Local Variables:
 ;;; eval: (put 'with-timeout 'scheme-indent-function 1)
+;;; eval: (put 'with-cached-connection 'scheme-indent-function 2)
+;;; eval: (put 'call-with-cached-connection 'scheme-indent-function 1)
 ;;; End:
 
 ;;; substitute.scm ends here
diff --git a/guix/scripts/system.scm b/guix/scripts/system.scm
index f6d20382b6..66225bff35 100644
--- a/guix/scripts/system.scm
+++ b/guix/scripts/system.scm
@@ -1,11 +1,13 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2016 Alex Kost <alezost@gmail.com>
 ;;; Copyright © 2016, 2017, 2018 Chris Marusich <cmmarusich@gmail.com>
 ;;; Copyright © 2017, 2019 Mathieu Othacehe <m.othacehe@gmail.com>
 ;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2019 Christopher Baines <mail@cbaines.net>
 ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
+;;; Copyright © 2020 Julien Lepiller <julien@lepiller.eu>
+;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -27,7 +29,10 @@
   #:use-module (guix ui)
   #:use-module ((guix status) #:select (with-status-verbosity))
   #:use-module (guix store)
-  #:autoload   (guix store database) (register-path)
+  #:autoload   (guix base16) (bytevector->base16-string)
+  #:autoload   (guix store database)
+               (sqlite-register store-database-file call-with-database)
+  #:autoload   (guix build store-copy) (copy-store-item)
   #:use-module (guix describe)
   #:use-module (guix grafts)
   #:use-module (guix gexp)
@@ -43,7 +48,8 @@
   #:autoload   (guix scripts package) (delete-generations
                                        delete-matching-generations)
   #:autoload   (guix scripts pull) (channel-commit-hyperlink)
-  #:use-module (guix graph)
+  #:autoload   (guix graph) (export-graph node-type
+                             graph-backend-name %graph-backends)
   #:use-module (guix scripts graph)
   #:use-module (guix scripts system reconfigure)
   #:use-module (guix build utils)
@@ -127,12 +133,11 @@ BODY..., and restore them."
   (store-lift topologically-sorted))
 
 
-(define* (copy-item item references target
+(define* (copy-item item info target db
                     #:key (log-port (current-error-port)))
-  "Copy ITEM to the store under root directory TARGET and register it with
-REFERENCES as its set of references."
-  (let ((dest  (string-append target item))
-        (state (string-append target "/var/guix")))
+  "Copy ITEM to the store under root directory TARGET and populate DB with the
+given INFO, a <path-info> record."
+  (let ((dest (string-append target item)))
     (format log-port "copying '~a'...~%" item)
 
     ;; Remove DEST if it exists to make sure that (1) we do not fail badly
@@ -145,44 +150,48 @@ REFERENCES as its set of references."
                             #:directories? #t))
       (delete-file-recursively dest))
 
-    (copy-recursively item dest
-                      #:log (%make-void-port "w"))
+    (copy-store-item item target
+                     #:deduplicate? #t)
 
-    ;; Register ITEM; as a side-effect, it resets timestamps, etc.
-    ;; Explicitly use "TARGET/var/guix" as the state directory, to avoid
-    ;; reproducing the user's current settings; see
-    ;; <http://bugs.gnu.org/18049>.
-    (unless (register-path item
-                           #:prefix target
-                           #:state-directory state
-                           #:references references)
-      (leave (G_ "failed to register '~a' under '~a'~%")
-             item target))))
+    (sqlite-register db
+                     #:path item
+                     #:references (path-info-references info)
+                     #:deriver (path-info-deriver info)
+                     #:hash (string-append
+                             "sha256:"
+                             (bytevector->base16-string (path-info-hash info)))
+                     #:nar-size (path-info-nar-size info))))
 
 (define* (copy-closure item target
                        #:key (log-port (current-error-port)))
   "Copy ITEM and all its dependencies to the store under root directory
 TARGET, and register them."
   (mlet* %store-monad ((to-copy (topologically-sorted* (list item)))
-                       (refs    (mapm %store-monad references* to-copy))
-                       (info    (mapm %store-monad query-path-info*
-                                      (delete-duplicates
-                                       (append to-copy (concatenate refs)))))
+                       (info    (mapm %store-monad query-path-info* to-copy))
                        (size -> (reduce + 0 (map path-info-nar-size info))))
     (define progress-bar
       (progress-reporter/bar (length to-copy)
                              (format #f (G_ "copying to '~a'...")
                                      target)))
 
+    (define state
+      (string-append target "/var/guix"))
+
     (check-available-space size target)
 
-    (call-with-progress-reporter progress-bar
-      (lambda (report)
-        (let ((void (%make-void-port "w")))
-          (for-each (lambda (item refs)
-                      (copy-item item refs target #:log-port void)
-                      (report))
-                    to-copy refs))))
+    ;; Explicitly use "TARGET/var/guix" as the state directory to avoid
+    ;; reproducing the user's current settings; see
+    ;; <http://bugs.gnu.org/18049>.
+    (call-with-database (store-database-file #:prefix target
+                                             #:state-directory state)
+      (lambda (db)
+        (call-with-progress-reporter progress-bar
+          (lambda (report)
+            (let ((void (%make-void-port "w")))
+              (for-each (lambda (item info)
+                          (copy-item item info target db #:log-port void)
+                          (report))
+                        to-copy info))))))
 
     (return *unspecified*)))
 
@@ -271,28 +280,33 @@ expression in %STORE-MONAD."
 
 (define (report-shepherd-error error)
   "Report ERROR, a '&shepherd-error' error condition object."
-  (cond ((service-not-found-error? error)
-         (report-error (G_ "service '~a' could not be found~%")
-                       (service-not-found-error-service error)))
-        ((action-not-found-error? error)
-         (report-error (G_ "service '~a' does not have an action '~a'~%")
-                       (action-not-found-error-service error)
-                       (action-not-found-error-action error)))
-        ((action-exception-error? error)
-         (report-error (G_ "exception caught while executing '~a' \
+  (when error
+    (cond ((service-not-found-error? error)
+           (warning (G_ "service '~a' could not be found~%")
+                    (service-not-found-error-service error)))
+          ((action-not-found-error? error)
+           (warning (G_ "service '~a' does not have an action '~a'~%")
+                    (action-not-found-error-service error)
+                    (action-not-found-error-action error)))
+          ((action-exception-error? error)
+           (warning (G_ "exception caught while executing '~a' \
 on service '~a':~%")
-                       (action-exception-error-action error)
-                       (action-exception-error-service error))
-         (print-exception (current-error-port) #f
-                          (action-exception-error-key error)
-                          (action-exception-error-arguments error)))
-        ((unknown-shepherd-error? error)
-         (report-error (G_ "something went wrong: ~s~%")
-                       (unknown-shepherd-error-sexp error)))
-        ((shepherd-error? error)
-         (report-error (G_ "shepherd error~%")))
-        ((not error)                              ;not an error
-         #t)))
+                    (action-exception-error-action error)
+                    (action-exception-error-service error))
+           (print-exception (current-error-port) #f
+                            (action-exception-error-key error)
+                            (action-exception-error-arguments error)))
+          ((unknown-shepherd-error? error)
+           (warning (G_ "something went wrong: ~s~%")
+                    (unknown-shepherd-error-sexp error)))
+          ((shepherd-error? error)
+           (warning (G_ "shepherd error~%"))))
+
+    ;; Don't leave users out in the cold and explain what that means and what
+    ;; they can do.
+    (warning (G_ "some services could not be upgraded~%"))
+    (display-hint (G_ "To allow changes to all the system services to take
+effect, you will need to reboot."))))
 
 (define-syntax-rule (unless-file-not-found exp)
   (catch 'system-error
@@ -377,6 +391,10 @@ STORE is an open connection to the store."
          ;; Make the specified system generation the default entry.
          (params (first (profile-boot-parameters %system-profile
                                                  (list number))))
+         (locale (boot-parameters-locale params))
+         (store-crypto-devices (boot-parameters-store-crypto-devices params))
+         (store-directory-prefix
+          (boot-parameters-store-directory-prefix params))
          (old-generations
           (delv number (reverse (generation-numbers %system-profile))))
          (old-params (profile-boot-parameters
@@ -389,6 +407,9 @@ STORE is an open connection to the store."
           ((bootcfg (lower-object
                      ((bootloader-configuration-file-generator bootloader)
                       bootloader-config entries
+                      #:locale locale
+                      #:store-crypto-devices store-crypto-devices
+                      #:store-directory-prefix store-directory-prefix
                       #:old-entries old-entries)))
            (drvs -> (list bootcfg)))
         (mbegin %store-monad
@@ -659,38 +680,49 @@ checking this by themselves in their 'check' procedure."
 ;;; Action.
 ;;;
 
-(define* (system-derivation-for-action os base-image action
-                                       #:key image-size file-system-type
+(define* (system-derivation-for-action os action
+                                       #:key image-size image-type
                                        full-boot? container-shared-network?
-                                       mappings)
+                                       mappings label
+                                       volatile-root?)
   "Return as a monadic value the derivation for OS according to ACTION."
-  (case action
-    ((build init reconfigure)
-     (operating-system-derivation os))
-    ((container)
-     (container-script
-      os
-      #:mappings mappings
-      #:shared-network? container-shared-network?))
-    ((vm-image)
-     (system-qemu-image os #:disk-image-size image-size))
-    ((vm)
-     (system-qemu-image/shared-store-script os
-                                            #:full-boot? full-boot?
-                                            #:disk-image-size
-                                            (if full-boot?
-                                                image-size
-                                                (* 70 (expt 2 20)))
-                                            #:mappings mappings))
-    ((disk-image)
-     (lower-object
-      (system-image
-       (image
-        (inherit base-image)
-        (size image-size)
-        (operating-system os)))))
-    ((docker-image)
-     (system-docker-image os #:shared-network? container-shared-network?))))
+  (mlet %store-monad ((target (current-target-system)))
+    (case action
+      ((build init reconfigure)
+       (operating-system-derivation os))
+      ((container)
+       (container-script
+        os
+        #:mappings mappings
+        #:shared-network? container-shared-network?))
+      ((vm-image)
+       (system-qemu-image os #:disk-image-size image-size))
+      ((vm)
+       (system-qemu-image/shared-store-script os
+                                              #:full-boot? full-boot?
+                                              #:disk-image-size
+                                              (if full-boot?
+                                                  image-size
+                                                  (* 70 (expt 2 20)))
+                                              #:mappings mappings))
+      ((image disk-image)
+       (let* ((base-image (os->image os #:type image-type))
+              (base-target (image-target base-image)))
+         (when (eq? action 'disk-image)
+           (warning (G_ "'disk-image' is deprecated: use 'image' instead~%")))
+         (lower-object
+          (system-image
+           (image
+            (inherit (if label
+                         (image-with-label base-image label)
+                         base-image))
+            (target (or base-target target))
+            (size image-size)
+            (operating-system os)
+            (volatile-root? volatile-root?))))))
+      ((docker-image)
+       (system-docker-image os
+                            #:shared-network? container-shared-network?)))))
 
 (define (maybe-suggest-running-guix-pull)
   "Suggest running 'guix pull' if this has never been done before."
@@ -741,18 +773,21 @@ and TARGET arguments."
                          install-bootloader?
                          dry-run? derivations-only?
                          use-substitutes? bootloader-target target
-                         image-size file-system-type full-boot?
-                         container-shared-network?
+                         image-size image-type
+                         volatile-root?
+                         full-boot? label container-shared-network?
                          (mappings '())
                          (gc-root #f))
   "Perform ACTION for OS.  INSTALL-BOOTLOADER? specifies whether to install
 bootloader; BOOTLOADER-TAGET is the target for the bootloader; TARGET is the
 target root directory; IMAGE-SIZE is the size of the image to be built, for
-the 'vm-image' and 'disk-image' actions.  The root file system is created as a
-FILE-SYSTEM-TYPE file system.  FULL-BOOT? is used for the 'vm' action; it
-determines whether to boot directly to the kernel or to the bootloader.
-CONTAINER-SHARED-NETWORK? determines if the container will use a separate
-network namespace.
+the 'vm-image' and 'image' actions.  IMAGE-TYPE is the type of image to
+be built.  When VOLATILE-ROOT? is #t, the root file system is mounted
+volatile.
+
+FULL-BOOT? is used for the 'vm' action; it determines whether to
+boot directly to the kernel or to the bootloader.  CONTAINER-SHARED-NETWORK?
+determines if the container will use a separate network namespace.
 
 When DERIVATIONS-ONLY? is true, print the derivation file name(s) without
 building anything.
@@ -792,11 +827,11 @@ static checks."
       (check-initrd-modules os)))
 
   (mlet* %store-monad
-      ((target*   (current-target-system))
-       (image ->  (find-image file-system-type target*))
-       (sys       (system-derivation-for-action os image action
-                                                #:file-system-type file-system-type
+      ((sys       (system-derivation-for-action os action
+                                                #:label label
+                                                #:image-type image-type
                                                 #:image-size image-size
+                                                #:volatile-root? volatile-root?
                                                 #:full-boot? full-boot?
                                                 #:container-shared-network? container-shared-network?
                                                 #:mappings mappings))
@@ -835,7 +870,9 @@ static checks."
                  (upgrade-shepherd-services local-eval os)
                  (return (format #t (G_ "\
 To complete the upgrade, run 'herd restart SERVICE' to stop,
-upgrade, and restart each service that was not automatically restarted.\n"))))))
+upgrade, and restart each service that was not automatically restarted.\n")))
+                 (return (format #t (G_ "\
+Run 'herd status' to view the list of services on your system.\n"))))))
             ((init)
              (newline)
              (format #t (G_ "initializing operating system under '~a'...~%")
@@ -853,18 +890,28 @@ upgrade, and restart each service that was not automatically restarted.\n"))))))
                    (register-root* (list output) gc-root))
                  (return output)))))))))
 
-(define (export-extension-graph os port)
-  "Export the service extension graph of OS to PORT."
+(define (lookup-backend name)                     ;TODO: factorize
+  "Return the graph backend called NAME.  Raise an error if it is not found."
+  (or (find (lambda (backend)
+              (string=? (graph-backend-name backend) name))
+            %graph-backends)
+      (leave (G_ "~a: unknown backend~%") name)))
+
+(define* (export-extension-graph os port
+                                 #:key (backend (lookup-backend "graphviz")))
+  "Export the service extension graph of OS to PORT using BACKEND."
   (let* ((services (operating-system-services os))
          (system   (find (lambda (service)
                            (eq? (service-kind service) system-service-type))
                          services)))
     (export-graph (list system) (current-output-port)
+                  #:backend backend
                   #:node-type (service-node-type services)
                   #:reverse-edges? #t)))
 
-(define (export-shepherd-graph os port)
-  "Export the graph of shepherd services of OS to PORT."
+(define* (export-shepherd-graph os port
+                                #:key (backend (lookup-backend "graphviz")))
+  "Export the graph of shepherd services of OS to PORT using BACKEND."
   (let* ((services  (operating-system-services os))
          (pid1      (fold-services services
                                    #:target-type shepherd-root-service-type))
@@ -873,11 +920,23 @@ upgrade, and restart each service that was not automatically restarted.\n"))))))
                               (null? (shepherd-service-requirement service)))
                             shepherds)))
     (export-graph sinks (current-output-port)
+                  #:backend backend
                   #:node-type (shepherd-service-node-type shepherds)
                   #:reverse-edges? #t)))
 
 
 ;;;
+;;; Images.
+;;;
+
+(define (list-image-types)
+  "Print the available image types."
+  (display (G_ "The available image types are:\n"))
+  (newline)
+  (format #t "~{   - ~a ~%~}" (map image-type-name (force %image-types))))
+
+
+;;;
 ;;; Options.
 ;;;
 
@@ -911,7 +970,7 @@ Some ACTIONS support additional ARGS.\n"))
   (display (G_ "\
    vm-image         build a freestanding virtual machine image\n"))
   (display (G_ "\
-   disk-image       build a disk image, suitable for a USB stick\n"))
+   image            build a Guix System image\n"))
   (display (G_ "\
    docker-image     build a Docker image\n"))
   (display (G_ "\
@@ -935,23 +994,29 @@ Some ACTIONS support additional ARGS.\n"))
                          apply STRATEGY (one of nothing-special, backtrace,
                          or debug) when an error occurs while reading FILE"))
   (display (G_ "
-      --file-system-type=TYPE
-                         for 'disk-image', produce a root file system of TYPE
-                         (one of 'ext4', 'iso9660')"))
+      --list-image-types list available image types"))
+  (display (G_ "
+  -t, --image-type=TYPE  for 'image', produce an image of TYPE"))
   (display (G_ "
       --image-size=SIZE  for 'vm-image', produce an image of SIZE"))
   (display (G_ "
       --no-bootloader    for 'init', do not install a bootloader"))
   (display (G_ "
+      --volatile         for 'image', make the root file system volatile"))
+  (display (G_ "
+      --label=LABEL      for 'image', label disk image with LABEL"))
+  (display (G_ "
       --save-provenance  save provenance information"))
   (display (G_ "
-      --share=SPEC       for 'vm', share host file system according to SPEC"))
+      --share=SPEC       for 'vm' and 'container', share host file system with
+                         read/write access according to SPEC"))
   (display (G_ "
-      --expose=SPEC      for 'vm', expose host file system according to SPEC"))
+      --expose=SPEC      for 'vm' and 'container', expose host file system
+                         directory as read-only according to SPEC"))
   (display (G_ "
   -N, --network          for 'container', allow containers to access the network"))
   (display (G_ "
-  -r, --root=FILE        for 'vm', 'vm-image', 'disk-image', 'container',
+  -r, --root=FILE        for 'vm', 'vm-image', 'image', 'container',
                          and 'build', make FILE a symlink to the result, and
                          register it as a garbage collector root"))
   (display (G_ "
@@ -964,6 +1029,10 @@ Some ACTIONS support additional ARGS.\n"))
   -v, --verbosity=LEVEL  use the given verbosity LEVEL"))
   (newline)
   (display (G_ "
+      --graph-backend=BACKEND
+                         use BACKEND for 'extension-graphs' and 'shepherd-graph'"))
+  (newline)
+  (display (G_ "
   -h, --help             display this help and exit"))
   (display (G_ "
   -V, --version          display version information and exit"))
@@ -994,10 +1063,14 @@ Some ACTIONS support additional ARGS.\n"))
                  (lambda (opt name arg result)
                    (alist-cons 'on-error (string->symbol arg)
                                result)))
-         (option '(#\t "file-system-type") #t #f
+         (option '(#\t "image-type") #t #f
                  (lambda (opt name arg result)
-                   (alist-cons 'file-system-type arg
+                   (alist-cons 'image-type (string->symbol arg)
                                result)))
+         (option '("list-image-types") #f #f
+                 (lambda (opt name arg result)
+                   (list-image-types)
+                   (exit 0)))
          (option '("image-size") #t #f
                  (lambda (opt name arg result)
                    (alist-cons 'image-size (size->number arg)
@@ -1008,6 +1081,12 @@ Some ACTIONS support additional ARGS.\n"))
          (option '("no-bootloader" "no-grub") #f #f
                  (lambda (opt name arg result)
                    (alist-cons 'install-bootloader? #f result)))
+         (option '("volatile") #f #f
+                 (lambda (opt name arg result)
+                   (alist-cons 'volatile-root? #t result)))
+         (option '("label") #t #f
+                 (lambda (opt name arg result)
+                   (alist-cons 'label arg result)))
          (option '("full-boot") #f #f
                  (lambda (opt name arg result)
                    (alist-cons 'full-boot? #t result)))
@@ -1048,6 +1127,9 @@ Some ACTIONS support additional ARGS.\n"))
          (option '(#\r "root") #t #f
                  (lambda (opt name arg result)
                    (alist-cons 'gc-root arg result)))
+         (option '("graph-backend") #t #f
+                 (lambda (opt name arg result)
+                   (alist-cons 'graph-backend arg result)))
          %standard-build-options))
 
 (define %default-options
@@ -1063,9 +1145,12 @@ Some ACTIONS support additional ARGS.\n"))
     (debug . 0)
     (verbosity . #f)                              ;default
     (validate-reconfigure . ,ensure-forward-reconfigure)
-    (file-system-type . "ext4")
+    (image-type . efi-raw)
     (image-size . guess)
-    (install-bootloader? . #t)))
+    (install-bootloader? . #t)
+    (label . #f)
+    (volatile-root? . #f)
+    (graph-backend . "graphviz")))
 
 (define (verbosity-level opts)
   "Return the verbosity level based on OPTS, the alist of parsed options."
@@ -1119,6 +1204,7 @@ resulting from command-line parsing."
 
          (dry?        (assoc-ref opts 'dry-run?))
          (bootloader? (assoc-ref opts 'install-bootloader?))
+         (label       (assoc-ref opts 'label))
          (target-file (match args
                         ((first second) second)
                         (_ #f)))
@@ -1127,6 +1213,9 @@ resulting from command-line parsing."
                            (bootloader-configuration-target
                             (operating-system-bootloader os)))))
 
+    (define (graph-backend)
+      (lookup-backend (assoc-ref opts 'graph-backend)))
+
     (with-store store
       (set-build-options-from-command-line store opts)
 
@@ -1141,9 +1230,11 @@ resulting from command-line parsing."
             (set-guile-for-build (default-guile))
             (case action
               ((extension-graph)
-               (export-extension-graph os (current-output-port)))
+               (export-extension-graph os (current-output-port)
+                                       #:backend (graph-backend)))
               ((shepherd-graph)
-               (export-shepherd-graph os (current-output-port)))
+               (export-shepherd-graph os (current-output-port)
+                                      #:backend (graph-backend)))
               (else
                (unless (memq action '(build init))
                  (warn-about-old-distro #:suggested-command
@@ -1158,8 +1249,11 @@ resulting from command-line parsing."
                                (assoc-ref opts 'skip-safety-checks?)
                                #:validate-reconfigure
                                (assoc-ref opts 'validate-reconfigure)
-                               #:file-system-type (assoc-ref opts 'file-system-type)
+                               #:image-type (lookup-image-type-by-name
+                                             (assoc-ref opts 'image-type))
                                #:image-size (assoc-ref opts 'image-size)
+                               #:volatile-root?
+                               (assoc-ref opts 'volatile-root?)
                                #:full-boot? (assoc-ref opts 'full-boot?)
                                #:container-shared-network?
                                (assoc-ref opts 'container-shared-network?)
@@ -1169,6 +1263,7 @@ resulting from command-line parsing."
                                                         (_ #f))
                                                       opts)
                                #:install-bootloader? bootloader?
+                               #:label label
                                #:target target-file
                                #:bootloader-target bootloader-target
                                #:gc-root (assoc-ref opts 'gc-root)))))
@@ -1233,14 +1328,16 @@ argument list and OPTS is the option alist."
     ;; need an operating system configuration file.
     (else (process-action command args opts))))
 
-(define (guix-system . args)
+(define-command (guix-system . args)
+  (synopsis "build and deploy full operating systems")
+
   (define (parse-sub-command arg result)
     ;; Parse sub-command ARG and augment RESULT accordingly.
     (if (assoc-ref result 'action)
         (alist-cons 'argument arg result)
         (let ((action (string->symbol arg)))
           (case action
-            ((build container vm vm-image disk-image reconfigure init
+            ((build container vm vm-image image disk-image reconfigure init
               extension-graph shepherd-graph
               list-generations describe
               delete-generations roll-back
@@ -1273,7 +1370,8 @@ argument list and OPTS is the option alist."
         (exit 1))
 
       (case action
-        ((build container vm vm-image disk-image docker-image reconfigure)
+        ((build container vm vm-image image disk-image docker-image
+                reconfigure)
          (unless (or (= count 1)
                      (and expr (= count 0)))
            (fail)))
diff --git a/guix/scripts/system/reconfigure.scm b/guix/scripts/system/reconfigure.scm
index 45bb1d5d3b..5581e12892 100644
--- a/guix/scripts/system/reconfigure.scm
+++ b/guix/scripts/system/reconfigure.scm
@@ -126,22 +126,25 @@ return the <live-service> objects that are currently running on MACHINE."
   (define exp
     (with-imported-modules '((gnu services herd))
       #~(begin
-          (use-modules (gnu services herd))
+          (use-modules (gnu services herd)
+                       (ice-9 match))
+
           (let ((services (current-services)))
             (and services
-                 ;; 'live-service-running' is ignored, as we can't necessarily
-                 ;; serialize arbitrary objects. This should be fine for now,
-                 ;; since 'machine-current-services' is not exposed publicly,
-                 ;; and the resultant <live-service> objects are only used for
-                 ;; resolving service dependencies.
                  (map (lambda (service)
                         (list (live-service-provision service)
-                              (live-service-requirement service)))
+                              (live-service-requirement service)
+                              (match (live-service-running service)
+                                (#f #f)
+                                (#t #t)
+                                ((? number? pid) pid)
+                                (_ #t))))         ;not serializable
                       services))))))
+
   (mlet %store-monad ((services (eval exp)))
     (return (map (match-lambda
-                   ((provision requirement)
-                    (live-service provision requirement #f)))
+                   ((provision requirement running)
+                    (live-service provision requirement running)))
                  services))))
 
 ;; XXX: Currently, this does NOT attempt to restart running services. See
@@ -181,13 +184,14 @@ services as defined by OS."
   (mlet* %store-monad ((live-services (running-services eval)))
     (let*-values (((to-unload to-restart)
                    (shepherd-service-upgrade live-services target-services)))
-      (let* ((to-unload (map live-service-canonical-name to-unload))
+      (let* ((to-unload  (map live-service-canonical-name to-unload))
              (to-restart (map shepherd-service-canonical-name to-restart))
-             (to-start (lset-difference eqv?
-                                        (map shepherd-service-canonical-name
-                                             target-services)
-                                        (map live-service-canonical-name
-                                             live-services)))
+             (running    (map live-service-canonical-name
+                              (filter live-service-running live-services)))
+             (to-start   (lset-difference eqv?
+                                          (map shepherd-service-canonical-name
+                                               target-services)
+                                          running))
              (service-files (map shepherd-service-file target-services)))
         (eval #~(parameterize ((current-warning-port (%make-void-port "w")))
                   (primitive-load #$(upgrade-services-program service-files
@@ -200,7 +204,8 @@ services as defined by OS."
 ;;; Bootloader configuration.
 ;;;
 
-(define (install-bootloader-program installer bootloader-package bootcfg
+(define (install-bootloader-program installer disk-installer
+                                    bootloader-package bootcfg
                                     bootcfg-file device target)
   "Return an executable store item that, upon being evaluated, will install
 BOOTCFG to BOOTCFG-FILE, a target file name, on DEVICE, a file system device,
@@ -242,10 +247,17 @@ BOOTLOADER-PACKAGE."
              ;; a broken installation.
              (switch-symlinks new-gc-root #$bootcfg)
              (install-boot-config #$bootcfg #$bootcfg-file #$target)
-             (when #$installer
+             (when (or #$installer #$disk-installer)
                (catch #t
                  (lambda ()
-                   (#$installer #$bootloader-package #$device #$target))
+                   ;; The bootloader might not support installation on a
+                   ;; mounted directory using the BOOTLOADER-INSTALLER
+                   ;; procedure. In that case, fallback to installing the
+                   ;; bootloader directly on DEVICE using the
+                   ;; BOOTLOADER-DISK-IMAGE-INSTALLER procedure.
+                   (if #$installer
+                       (#$installer #$bootloader-package #$device #$target)
+                       (#$disk-installer #$bootloader-package 0 #$device)))
                  (lambda args
                    (delete-file new-gc-root)
                    (match args
@@ -268,11 +280,14 @@ additional configurations specified by MENU-ENTRIES can be selected."
   (let* ((bootloader (bootloader-configuration-bootloader configuration))
          (installer (and run-installer?
                          (bootloader-installer bootloader)))
+         (disk-installer (and run-installer?
+                              (bootloader-disk-image-installer bootloader)))
          (package (bootloader-package bootloader))
          (device (bootloader-configuration-target configuration))
          (bootcfg-file (bootloader-configuration-file bootloader)))
     (eval #~(parameterize ((current-warning-port (%make-void-port "w")))
               (primitive-load #$(install-bootloader-program installer
+                                                            disk-installer
                                                             package
                                                             bootcfg
                                                             bootcfg-file
diff --git a/guix/scripts/time-machine.scm b/guix/scripts/time-machine.scm
index 441673b780..0d27414702 100644
--- a/guix/scripts/time-machine.scm
+++ b/guix/scripts/time-machine.scm
@@ -128,7 +128,9 @@ Execute COMMAND ARGS... in an older version of Guix.\n"))
 ;;; Entry point.
 ;;;
 
-(define (guix-time-machine . args)
+(define-command (guix-time-machine . args)
+  (synopsis "run commands from a different revision")
+
   (with-error-handling
     (with-git-error-handling
      (let* ((opts         (parse-args args))
diff --git a/guix/scripts/upgrade.scm b/guix/scripts/upgrade.scm
index 7f14a2fdbe..beb59cbe6f 100644
--- a/guix/scripts/upgrade.scm
+++ b/guix/scripts/upgrade.scm
@@ -1,5 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2019, 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
+;;; Copyright © 2020 Simon Tournier <zimon.toutoune@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -20,6 +22,7 @@
   #:use-module (guix ui)
   #:use-module (guix scripts package)
   #:use-module (guix scripts build)
+  #:use-module (guix transformations)
   #:use-module (guix scripts)
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-26)
@@ -35,6 +38,8 @@ This is an alias for 'guix package -u'.\n"))
   -p, --profile=PROFILE  use PROFILE instead of the user's default profile"))
   (display (G_ "
   -v, --verbosity=LEVEL  use the given verbosity LEVEL"))
+  (display (G_ "
+      --do-not-upgrade[=REGEXP] do not upgrade any packages matching REGEXP"))
   (newline)
   (show-build-options-help)
   (newline)
@@ -60,23 +65,20 @@ This is an alias for 'guix package -u'.\n"))
          ;; Preserve some of the 'guix package' options.
          (append (filter (lambda (option)
                            (any (cut member <> (option-names option))
-                                '("profile" "dry-run" "verbosity")))
+                                '("profile" "dry-run" "verbosity" "do-not-upgrade")))
                          %package-options)
 
                  %transformation-options
                  %standard-build-options)))
 
-(define (guix-upgrade . args)
+(define-command (guix-upgrade . args)
+  (synopsis "upgrade packages to their latest version")
+
   (define (handle-argument arg result arg-handler)
-    ;; Accept at most one non-option argument, and treat it as an upgrade
-    ;; regexp.
-    (match (assq-ref result 'upgrade)
-      (#f
-       (values (alist-cons 'upgrade arg
-                           (alist-delete 'upgrade result))
-               arg-handler))
-      (_
-       (leave (G_ "~A: extraneous argument~%") arg))))
+    ;; Treat non-option arguments as upgrade regexps.
+    (values (alist-cons 'upgrade arg
+                        (delete '(upgrade . #f) result))
+            arg-handler))
 
   (define opts
     (parse-command-line args %options
diff --git a/guix/scripts/weather.scm b/guix/scripts/weather.scm
index 3035ff6ca8..97e4a73802 100644
--- a/guix/scripts/weather.scm
+++ b/guix/scripts/weather.scm
@@ -2,6 +2,7 @@
 ;;; Copyright © 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2018 Kyle Meyer <kyle@kyleam.com>
+;;; Copyright © 2020 Simon Tournier <zimon.toutoune@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -30,7 +31,9 @@
   #:use-module (guix grafts)
   #:use-module (guix gexp)
   #:use-module ((guix build syscalls) #:select (terminal-columns))
+  #:use-module ((guix build utils) #:select (every*))
   #:use-module (guix scripts substitute)
+  #:use-module (guix narinfo)
   #:use-module (guix http-client)
   #:use-module (guix ci)
   #:use-module (guix sets)
@@ -495,7 +498,9 @@ SERVER.  Display information for packages with at least THRESHOLD dependents."
 ;;; Entry point.
 ;;;
 
-(define (guix-weather . args)
+(define-command (guix-weather . args)
+  (synopsis "report on the availability of pre-built package binaries")
+
   (define (package-list opts)
     ;; Return the package list specified by OPTS.
     (let ((files (filter-map (match-lambda
@@ -538,23 +543,23 @@ SERVER.  Display information for packages with at least THRESHOLD dependents."
                                     (package-outputs packages system))
                                   systems))))))
         (exit
-         (every (lambda (server)
-                  (define coverage
-                    (report-server-coverage server items
-                                            #:display-missing?
-                                            (assoc-ref opts 'display-missing?)))
-                  (match (assoc-ref opts 'coverage)
-                    (#f #f)
-                    (threshold
-                     ;; PACKAGES may include non-package objects coming from a
-                     ;; manifest.  Filter them out.
-                     (report-package-coverage server
-                                              (filter package? packages)
-                                              systems
-                                              #:threshold threshold)))
-
-                  (= 1 coverage))
-                urls))))))
+         (every* (lambda (server)
+                   (define coverage
+                     (report-server-coverage server items
+                                             #:display-missing?
+                                             (assoc-ref opts 'display-missing?)))
+                   (match (assoc-ref opts 'coverage)
+                     (#f #f)
+                     (threshold
+                      ;; PACKAGES may include non-package objects coming from a
+                      ;; manifest.  Filter them out.
+                      (report-package-coverage server
+                                               (filter package? packages)
+                                               systems
+                                               #:threshold threshold)))
+
+                   (= 1 coverage))
+                 urls))))))
 
 ;;; Local Variables:
 ;;; eval: (put 'let/time 'scheme-indent-function 1)
diff --git a/guix/self.scm b/guix/self.scm
index f70b1ecdd8..15c8ad4eb9 100644
--- a/guix/self.scm
+++ b/guix/self.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2020 Martin Becze <mjbecze@riseup.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -27,6 +28,7 @@
   #:use-module (guix packages)
   #:use-module (guix sets)
   #:use-module (guix modules)
+  #:use-module ((guix utils) #:select (version-major+minor))
   #:use-module ((guix build utils) #:select (find-files))
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-9)
@@ -49,19 +51,23 @@
                (module-ref (resolve-interface module) variable))))
     (match-lambda
       ("guile"      (ref '(gnu packages guile) 'guile-3.0/libgc-7))
-      ("guile-json" (ref '(gnu packages guile) 'guile-json-3))
+      ("guile-avahi" (ref '(gnu packages guile-xyz) 'guile-avahi))
+      ("guile-json" (ref '(gnu packages guile) 'guile-json-4))
       ("guile-ssh"  (ref '(gnu packages ssh)   'guile-ssh))
       ("guile-git"  (ref '(gnu packages guile) 'guile-git))
+      ("guile-semver"  (ref '(gnu packages guile-xyz) 'guile-semver))
       ("guile-sqlite3" (ref '(gnu packages guile) 'guile-sqlite3))
+      ("guile-zlib" (ref '(gnu packages guile) 'guile-zlib))
+      ("guile-lzlib" (ref '(gnu packages guile) 'guile-lzlib))
+      ("guile-zstd" (ref '(gnu packages guile) 'guile-zstd))
       ("guile-gcrypt"  (ref '(gnu packages gnupg) 'guile-gcrypt))
-      ("gnutls"     (ref '(gnu packages tls) 'guile3.0-gnutls))
-      ("zlib"       (ref '(gnu packages compression) 'zlib))
-      ("lzlib"      (ref '(gnu packages compression) 'lzlib))
+      ("gnutls"     (ref '(gnu packages tls) 'gnutls))
       ("gzip"       (ref '(gnu packages compression) 'gzip))
       ("bzip2"      (ref '(gnu packages compression) 'bzip2))
       ("xz"         (ref '(gnu packages compression) 'xz))
       ("po4a"       (ref '(gnu packages gettext) 'po4a))
       ("gettext"       (ref '(gnu packages gettext) 'gettext-minimal))
+      ("gcc-toolchain" (ref '(gnu packages commencement) 'gcc-toolchain))
       (_            #f))))                        ;no such package
 
 
@@ -398,6 +404,12 @@ a list of extra files, such as '(\"contributing\")."
                         (find-files directory
                                     "\\.[a-z]{2}(_[A-Z]{2})?\\.po$")))
 
+          (define parallel-jobs
+            ;; Limit thread creation by 'n-par-for-each'.  Going beyond can
+            ;; lead libgc 8.0.4 to abort with:
+            ;; mmap(PROT_NONE) failed
+            (min (parallel-job-count) 4))
+
           (mkdir #$output)
           (copy-recursively #$documentation "."
                             #:log (%make-void-port "w"))
@@ -413,14 +425,14 @@ a list of extra files, such as '(\"contributing\")."
           (setenv "LC_ALL" "en_US.UTF-8")
           (setlocale LC_ALL "en_US.UTF-8")
 
-          (n-par-for-each (parallel-job-count)
+          (n-par-for-each parallel-jobs
                           (match-lambda
                             ((language . po)
                              (translate-texi "guix" po language
                                              #:extras '("contributing"))))
                           (available-translations "." "guix-manual"))
 
-          (n-par-for-each (parallel-job-count)
+          (n-par-for-each parallel-jobs
                           (match-lambda
                             ((language . po)
                              (translate-texi "guix-cookbook" po language)))
@@ -580,6 +592,48 @@ that provide Guile modules."
 
   (computed-file name build))
 
+(define (quiet-guile guile)
+  "Return a wrapper that does the same as the 'guile' executable of GUILE,
+except that it does not complain about locales and falls back to 'en_US.utf8'
+instead of 'C'."
+  (define gcc
+    (specification->package "gcc-toolchain"))
+
+  (define source
+    (search-path %load-path
+                 "gnu/packages/aux-files/guile-launcher.c"))
+
+  (define effective
+    (version-major+minor (package-version guile)))
+
+  (define build
+    ;; XXX: Reuse <c-compiler> from (guix scripts pack) instead?
+    (with-imported-modules '((guix build utils))
+      #~(begin
+          (use-modules (guix build utils)
+                       (srfi srfi-26))
+
+          (mkdir-p (string-append #$output "/bin"))
+
+          (setenv "PATH" #$(file-append gcc "/bin"))
+          (setenv "C_INCLUDE_PATH"
+                  (string-join
+                   (map (cut string-append <> "/include")
+                        '#$(match (bag-transitive-build-inputs
+                                   (package->bag guile))
+                             (((labels packages . _) ...)
+                              (filter package? packages))))
+                   ":"))
+          (setenv "LIBRARY_PATH" #$(file-append gcc "/lib"))
+
+          (invoke "gcc" #$(local-file source) "-Wall" "-g0" "-O2"
+                  "-I" #$(file-append guile "/include/guile/" effective)
+                  "-L" #$(file-append guile "/lib")
+                  #$(string-append "-lguile-" effective)
+                  "-o" (string-append #$output "/bin/guile")))))
+
+  (computed-file "guile-wrapper" build))
+
 (define* (guix-command modules
                        #:key source (dependencies '())
                        guile (guile-version (effective-version)))
@@ -596,18 +650,26 @@ load path."
 
   (program-file "guix-command"
                 #~(begin
+                    ;; Remove the empty extension from the search path.
+                    (set! %load-extensions '(".scm"))
+
                     (set! %load-path
-                      (cons (string-append #$module-directory
-                                           "/share/guile/site/"
-                                           (effective-version))
-                            %load-path))
+                      (append (list (string-append #$module-directory
+                                                   "/share/guile/site/"
+                                                   (effective-version))
+                                    (string-append #$guile "/share/guile/"
+                                                   (effective-version)))
+                              %load-path))
 
                     (set! %load-compiled-path
-                      (cons (string-append #$module-directory
-                                           "/lib/guile/"
-                                           (effective-version)
-                                           "/site-ccache")
-                            %load-compiled-path))
+                      (append (list (string-append #$module-directory
+                                                   "/lib/guile/"
+                                                   (effective-version)
+                                                   "/site-ccache")
+                                    (string-append #$guile "/lib/guile/"
+                                                   (effective-version)
+                                                   "/ccache"))
+                              %load-compiled-path))
 
                     ;; To maximize the chances that locales are set up right
                     ;; out-of-the-box, bundle "common" UTF-8 locales.
@@ -634,7 +696,9 @@ load path."
                       ;; XXX: It would be more convenient to change it to:
                       ;;   (exit (apply guix-main (command-line)))
                       (apply guix-main (command-line))))
-                #:guile guile))
+
+                ;; Use a 'guile' variant that doesn't complain about locales.
+                #:guile (quiet-guile guile)))
 
 (define (miscellaneous-files source)
   "Return data files taken from SOURCE."
@@ -722,18 +786,26 @@ Info manual."
                          (copy-recursively #$miscellany #$output
                                            #:log (%make-void-port "w")))))))
 
+(define (transitive-package-dependencies package)
+  "Return the list of packages propagated by PACKAGE, including PACKAGE
+itself."
+  (match (package-transitive-propagated-inputs package)
+    (((labels packages _ ...) ...)
+     (cons package packages))))
+
 (define* (compiled-guix source #:key (version %guix-version)
                         (pull-version 1)
                         (name (string-append "guix-" version))
                         (guile-version (effective-version))
                         (guile-for-build (default-guile))
-                        (zlib (specification->package "zlib"))
-                        (lzlib (specification->package "lzlib"))
                         (gzip (specification->package "gzip"))
                         (bzip2 (specification->package "bzip2"))
                         (xz (specification->package "xz"))
                         (guix (specification->package "guix")))
   "Return a file-like object that contains a compiled Guix."
+  (define guile-avahi
+    (specification->package "guile-avahi"))
+
   (define guile-json
     (specification->package "guile-json"))
 
@@ -746,20 +818,29 @@ Info manual."
   (define guile-sqlite3
     (specification->package "guile-sqlite3"))
 
+  (define guile-zlib
+    (specification->package "guile-zlib"))
+
+  (define guile-lzlib
+    (specification->package "guile-lzlib"))
+
+  (define guile-zstd
+    (specification->package "guile-zstd"))
+
   (define guile-gcrypt
     (specification->package "guile-gcrypt"))
 
+  (define guile-semver
+    (specification->package "guile-semver"))
+
   (define gnutls
     (specification->package "gnutls"))
 
   (define dependencies
-    (match (append-map (lambda (package)
-                         (cons (list "x" package)
-                               (package-transitive-propagated-inputs package)))
-                       (list guile-gcrypt gnutls guile-git guile-json
-                             guile-ssh guile-sqlite3))
-      (((labels packages _ ...) ...)
-       packages)))
+    (append-map transitive-package-dependencies
+                (list guile-gcrypt gnutls guile-git guile-avahi
+                      guile-json guile-semver guile-ssh guile-sqlite3
+                      guile-zlib guile-lzlib guile-zstd)))
 
   (define *core-modules*
     (scheme-node "guix-core"
@@ -803,6 +884,11 @@ Info manual."
                                (name name))
                              (scheme-modules* source "guix"))
                  (list *core-modules*)
+
+                 #:extra-files
+                 `(("guix/graph.js" ,(local-file "../guix/graph.js"))
+                   ("guix/d3.v3.js" ,(local-file "../guix/d3.v3.js")))
+
                  #:extensions dependencies
                  #:guile-for-build guile-for-build))
 
@@ -884,9 +970,7 @@ Info manual."
                  '()
                  #:extra-modules
                  `(((guix config)
-                    => ,(make-config.scm #:zlib zlib
-                                         #:lzlib lzlib
-                                         #:gzip gzip
+                    => ,(make-config.scm #:gzip gzip
                                          #:bzip2 bzip2
                                          #:xz xz
                                          #:package-name
@@ -983,7 +1067,7 @@ Info manual."
                                       (variables rest ...))))))
     (variables %localstatedir %storedir %sysconfdir)))
 
-(define* (make-config.scm #:key zlib lzlib gzip xz bzip2
+(define* (make-config.scm #:key gzip xz bzip2
                           (package-name "GNU Guix")
                           (package-version "0")
                           (bug-report-address "bug-guix@gnu.org")
@@ -1004,8 +1088,6 @@ Info manual."
                                %state-directory
                                %store-database-directory
                                %config-directory
-                               %libz
-                               %liblz
                                %gzip
                                %bzip2
                                %xz))
@@ -1048,15 +1130,7 @@ Info manual."
                    (define %bzip2
                      #+(and bzip2 (file-append bzip2 "/bin/bzip2")))
                    (define %xz
-                     #+(and xz (file-append xz "/bin/xz")))
-
-                   (define %libz
-                     #+(and zlib
-                            (file-append zlib "/lib/libz")))
-
-                   (define %liblz
-                     #+(and lzlib
-                            (file-append lzlib "/lib/liblz"))))
+                     #+(and xz (file-append xz "/bin/xz"))))
 
                ;; Guile 2.0 *requires* the 'define-module' to be at the
                ;; top-level or the 'toplevel-ref' in the resulting .go file are
diff --git a/guix/serialization.scm b/guix/serialization.scm
index 836ad06caf..9d0739f6c5 100644
--- a/guix/serialization.scm
+++ b/guix/serialization.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -34,7 +34,7 @@
             write-bytevector write-string
             read-string read-latin1-string read-maybe-utf8-string
             write-string-list read-string-list
-            write-string-pairs
+            write-string-pairs read-string-pairs
             write-store-path read-store-path
             write-store-path-list read-store-path-list
             (dump . dump-port*)
@@ -51,7 +51,8 @@
             write-file
             write-file-tree
             fold-archive
-            restore-file))
+            restore-file
+            dump-file))
 
 ;;; Comment:
 ;;;
@@ -165,6 +166,14 @@ substitute invalid byte sequences with question marks.  This is a
   (write-int (length l) p)
   (for-each (cut write-string <> p) l))
 
+(define (read-string-list p)
+  (let ((len (read-int p)))
+    (unfold (cut >= <> len)
+            (lambda (i)
+              (read-string p))
+            1+
+            0)))
+
 (define (write-string-pairs l p)
   (write-int (length l) p)
   (for-each (match-lambda
@@ -173,11 +182,11 @@ substitute invalid byte sequences with question marks.  This is a
               (write-string second p)))
             l))
 
-(define (read-string-list p)
+(define (read-string-pairs p)
   (let ((len (read-int p)))
     (unfold (cut >= <> len)
             (lambda (i)
-              (read-string p))
+              (cons (read-string p) (read-string p)))
             1+
             0)))
 
@@ -444,7 +453,8 @@ depends on TYPE."
                                            (file file)
                                            (token x))))))
                      (loop (read-string port) result)))))
-               (")" result)                       ;done with DIR
+               (")"                               ;done with DIR
+                (proc file 'directory-complete #f result))
                (x
                 (raise
                  (condition
@@ -456,23 +466,43 @@ depends on TYPE."
            (&message (message "unsupported nar entry type"))
            (&nar-read-error (port port) (file file) (token x)))))))))
 
-(define (restore-file port file)
+(define (dump-file file input size type)
+  "Dump SIZE bytes from INPUT to FILE.
+
+This procedure is suitable for use as the #:dump-file argument to
+'restore-file'."
+  (call-with-output-file file
+    (lambda (output)
+      (dump input output size))))
+
+(define* (restore-file port file
+                       #:key (dump-file dump-file))
   "Read a file (possibly a directory structure) in Nar format from PORT.
-Restore it as FILE."
+Restore it as FILE with canonical permissions and timestamps.  To write a
+regular or executable file, call:
+
+  (DUMP-FILE FILE INPUT SIZE TYPE)
+
+The default is to dump SIZE bytes from INPUT to FILE, but callers can provide
+a custom procedure, for instance to deduplicate FILE on the fly."
   (fold-archive (lambda (file type content result)
                   (match type
                     ('directory
                      (mkdir file))
+                    ('directory-complete
+                     (chmod file #o555)
+                     (utime file 1 1 0 0))
                     ('symlink
-                     (symlink content file))
+                     (symlink content file)
+                     (utime file 1 1 0 0 AT_SYMLINK_NOFOLLOW))
                     ((or 'regular 'executable)
                      (match content
                        ((input . size)
-                        (call-with-output-file file
-                          (lambda (output)
-                            (dump input output size)
-                            (when (eq? type 'executable)
-                              (chmod output #o755)))))))))
+                        (dump-file file input size type)
+                        (chmod file (if (eq? type 'executable)
+                                        #o555
+                                        #o444))
+                        (utime file 1 1 0 0))))))
                 #t
                 port
                 file))
diff --git a/guix/ssh.scm b/guix/ssh.scm
index 24db171374..457d1890f9 100644
--- a/guix/ssh.scm
+++ b/guix/ssh.scm
@@ -20,7 +20,11 @@
   #:use-module (guix store)
   #:use-module (guix inferior)
   #:use-module (guix i18n)
-  #:use-module ((guix diagnostics) #:select (&fix-hint formatted-message))
+  #:use-module ((guix diagnostics)
+                #:select (info &fix-hint formatted-message))
+  #:use-module ((guix progress)
+                #:select (progress-bar
+                          erase-current-line current-terminal-columns))
   #:use-module (gcrypt pk-crypto)
   #:use-module (ssh session)
   #:use-module (ssh auth)
@@ -36,6 +40,7 @@
   #:use-module (ice-9 match)
   #:use-module (ice-9 format)
   #:use-module (ice-9 binary-ports)
+  #:use-module (ice-9 vlist)
   #:export (open-ssh-session
             authenticate-server*
 
@@ -49,8 +54,7 @@
             retrieve-files*
             remote-store-host
 
-            report-guile-error
-            report-module-error))
+            report-guile-error))
 
 ;;; Commentary:
 ;;;
@@ -201,6 +205,40 @@ REPL."
         ;; <https://bugs.gnu.org/26976>.)
         (close-inferior inferior)))))
 
+(define (remote-run exp session)
+  "Run EXP in a new process in SESSION and return a remote pipe.
+
+Unlike 'inferior-remote-eval', this is used for side effects and may
+communicate over stdout/stdin as it sees fit.  EXP is typically a loop that
+processes data from stdin and/or sends data to stdout.  The assumption is that
+EXP never returns or calls 'primitive-exit' when it's done."
+  (define pipe
+    (open-remote-pipe* session OPEN_BOTH
+                       "guix" "repl" "-t" "machine"))
+
+  (match (read pipe)
+    (('repl-version _ ...)
+     #t)
+    ((? eof-object?)
+     (close-port pipe)
+     (raise (formatted-message
+             (G_ "failed to start 'guix repl' on '~a'")
+             (session-get session 'host)))))
+
+  ;; Disable buffering so 'guix repl' does not read more than what's really
+  ;; sent to itself.
+  (write '(setvbuf (current-input-port) 'none) pipe)
+  (force-output pipe)
+
+  ;; Read the reply and subsequent newline.
+  (read pipe) (get-u8 pipe)
+
+  (write exp pipe)
+  (force-output pipe)
+
+  ;; From now on, we stop following the inferior protocol.
+  pipe)
+
 (define* (remote-daemon-channel session
                                 #:optional
                                 (socket-name
@@ -256,11 +294,7 @@ REPL."
              (_
               (primitive-exit 1)))))))
 
-  (open-remote-pipe* session OPEN_BOTH
-                     ;; Sort-of shell-quote REDIRECT.
-                     "guile" "-c"
-                     (object->string
-                      (object->string redirect))))
+  (remote-run redirect session))
 
 (define* (connect-to-remote-daemon session
                                    #:optional
@@ -283,11 +317,6 @@ can be written."
   ;; consumed.
   (define import
     `(begin
-       (eval-when (load expand eval)
-         (unless (resolve-module '(guix) #:ensure #f)
-           (write `(module-error))
-           (exit 7)))
-
        (use-modules (guix) (srfi srfi-34)
                     (rnrs io ports) (rnrs bytevectors))
 
@@ -317,13 +346,10 @@ can be written."
                 (import-paths store (current-input-port))
                 '(success))))
           (lambda args
-            (cons 'error args))))))
+            (cons 'error args))))
+       (primitive-exit 0)))
 
-  (open-remote-pipe session
-                    (string-join
-                     `("guile" "-c"
-                       ,(object->string (object->string import))))
-                    OPEN_BOTH))
+  (remote-run import session))
 
 (define* (store-export-channel session files
                                #:key recursive?)
@@ -333,22 +359,20 @@ be read.  When RECURSIVE? is true, the closure of FILES is exported."
   ;; remote store.
   (define export
     `(begin
-       (eval-when (load expand eval)
-         (unless (resolve-module '(guix) #:ensure #f)
-           (write `(module-error))
-           (exit 7)))
-
        (use-modules (guix) (srfi srfi-1)
                     (srfi srfi-26) (srfi srfi-34))
 
        (guard (c ((nix-connection-error? c)
                   (write `(connection-error ,(nix-connection-error-file c)
-                                            ,(nix-connection-error-code c))))
+                                            ,(nix-connection-error-code c)))
+                  (primitive-exit 1))
                  ((nix-protocol-error? c)
                   (write `(protocol-error ,(nix-protocol-error-status c)
-                                          ,(nix-protocol-error-message c))))
+                                          ,(nix-protocol-error-message c)))
+                  (primitive-exit 2))
                  (else
-                  (write `(exception))))
+                  (write `(exception))
+                  (primitive-exit 3)))
          (with-store store
            (let* ((files ',files)
                   (invalid (remove (cut valid-path? store <>)
@@ -366,13 +390,10 @@ be read.  When RECURSIVE? is true, the closure of FILES is exported."
 
              (setvbuf (current-output-port) 'none)
              (export-paths store files (current-output-port)
-                           #:recursive? ,recursive?))))))
+                           #:recursive? ,recursive?)
+             (primitive-exit 0))))))
 
-  (open-remote-input-pipe session
-                          (string-join
-                           `("guile" "-c"
-                             ,(object->string
-                               (object->string export))))))
+  (remote-run export session))
 
 (define (remote-system session)
   "Return the system type as expected by Nix, usually ARCHITECTURE-KERNEL, of
@@ -402,6 +423,56 @@ to the system ACL file if it has not yet been authorized."
    session
    become-command))
 
+(define (prepare-to-send store host log-port items)
+  "Notify the user that we're about to send ITEMS to HOST.  Return three
+values allowing 'notify-send-progress' to track the state of this transfer."
+  (let* ((count (length items))
+         (sizes (fold (lambda (item result)
+                        (vhash-cons item
+                                    (path-info-nar-size
+                                     (query-path-info store item))
+                                    result))
+                      vlist-null
+                      items))
+         (total  (vlist-fold (lambda (pair result)
+                               (match pair
+                                 ((_ . size) (+ size result))))
+                             0
+                             sizes)))
+    (info (N_ "sending ~a store item (~h MiB) to '~a'...~%"
+              "sending ~a store items (~h MiB) to '~a'...~%" count)
+          count
+          (inexact->exact (round (/ total (expt 2. 20))))
+          host)
+
+    (values log-port sizes total 0)))
+
+(define (notify-transfer-progress item port sizes total sent)
+  "Notify the user that we've already transferred SENT bytes out of TOTAL.
+Use SIZES to determine the size of ITEM, which is about to be sent."
+  (define (display-bar %)
+    (erase-current-line port)
+    (format port "~3@a% ~a"
+            (inexact->exact (round (* 100. (/ sent total))))
+            (progress-bar % (- (max (current-terminal-columns) 5) 5)))
+    (force-output port))
+
+  (unless (zero? total)
+    (let ((% (* 100. (/ sent total))))
+      (match (vhash-assoc item sizes)
+        (#f
+         (display-bar %)
+         (values port sizes total sent))
+        ((_ . size)
+         (display-bar %)
+         (values port sizes total (+ sent size)))))))
+
+(define (notify-transfer-completion port . args)
+  "Notify the user that the transfer has completed."
+  (apply notify-transfer-progress "" port args) ;display the 100% progress bar
+  (erase-current-line port)
+  (force-output port))
+
 (define* (send-files local files remote
                      #:key
                      recursive?
@@ -421,11 +492,8 @@ Return the list of store items actually sent."
                         (remove (cut valid-path? store <>)
                                 ',files)))
                    session))
-         (count   (length missing))
-         (sizes   (map (lambda (item)
-                         (path-info-nar-size (query-path-info local item)))
-                       missing))
-         (port    (store-import-channel session)))
+         (port    (store-import-channel session))
+         (host    (session-get session 'host)))
     ;; Make sure everything alright on the remote side.
     (match (read port)
       (('importing)
@@ -433,14 +501,12 @@ Return the list of store items actually sent."
       (sexp
        (handle-import/export-channel-error sexp remote)))
 
-    (format log-port (N_ "sending ~a store item (~h MiB) to '~a'...~%"
-                         "sending ~a store items (~h MiB) to '~a'...~%" count)
-            count
-            (inexact->exact (round (/ (reduce + 0 sizes) (expt 2. 20))))
-            (session-get session 'host))
-
     ;; Send MISSING in topological order.
-    (export-paths local missing port)
+    (let ((tty? (isatty? log-port)))
+      (export-paths local missing port
+                    #:start (cut prepare-to-send local host log-port <>)
+                    #:progress (if tty? notify-transfer-progress (const #f))
+                    #:finish (if tty? notify-transfer-completion (const #f))))
 
     ;; Tell the remote process that we're done.  (In theory the end-of-archive
     ;; mark of 'export-paths' would be enough, but in practice it's not.)
@@ -513,8 +579,6 @@ REMOTE."
   (match sexp
     ((? eof-object?)
      (report-guile-error (remote-store-host remote)))
-    (('module-error . _)
-     (report-module-error (remote-store-host remote)))
     (('connection-error file code . _)
      (raise-error (G_ "failed to connect to '~A' on remote host '~A': ~a")
                   file (remote-store-host remote) (strerror code)))
@@ -576,15 +640,6 @@ LOCAL.  When RECURSIVE? is true, retrieve the closure of FILES."
 check.")
                    host)))
 
-(define (report-module-error host)
-  "Report an error about missing Guix modules on HOST."
-  ;; TRANSLATORS: Leave "Guile" untranslated.
-  (raise-error (G_ "Guile modules not found on remote host '~A'") host
-               (=> (G_ "Make sure @code{GUILE_LOAD_PATH} includes Guix'
-own module directory.  Run @command{ssh ~A env | grep GUILE_LOAD_PATH} to
-check.")
-                   host)))
-
 (define (report-inferior-exception exception host)
   "Report EXCEPTION, an &inferior-exception that occurred on HOST."
   (raise-error (G_ "exception occurred on remote host '~A': ~s")
diff --git a/guix/status.scm b/guix/status.scm
index f40d5d59b9..9ca6d92470 100644
--- a/guix/status.scm
+++ b/guix/status.scm
@@ -423,6 +423,9 @@ addition to build events."
         (cute colorize-string <> (color RED BOLD))
         identity))
 
+  (define tty?
+    (isatty?* port))
+
   (define (report-build-progress phase %)
     (let ((% (min (max % 0) 100)))                ;sanitize
       (erase-current-line port)
@@ -542,6 +545,7 @@ addition to build events."
                          (nar-uri-abbreviation uri)
                          (basename uri))))
             (display-download-progress uri size
+                                       #:tty? tty?
                                        #:start-time
                                        (download-start download)
                                        #:transferred transferred))))))
diff --git a/guix/store.scm b/guix/store.scm
index 683e125b20..e0b15abce3 100644
--- a/guix/store.scm
+++ b/guix/store.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2018 Jan Nieuwenhuizen <janneke@gnu.org>
 ;;; Copyright © 2019, 2020 Mathieu Othacehe <m.othacehe@gmail.com>
 ;;; Copyright © 2020 Florian Pelz <pelzflorian@pelzflorian.de>
@@ -113,6 +113,8 @@
             build
             query-failed-paths
             clear-failed-paths
+            ensure-path
+            find-roots
             add-temp-root
             add-indirect-root
             add-permanent-root
@@ -339,7 +341,8 @@
      (write-string (bytevector->base16-string arg) p))))
 
 (define-syntax read-arg
-  (syntax-rules (integer boolean string store-path store-path-list string-list
+  (syntax-rules (integer boolean string store-path
+                 store-path-list string-list string-pairs
                  substitutable-path-list path-info base16)
     ((_ integer p)
      (read-int p))
@@ -353,6 +356,8 @@
      (read-store-path-list p))
     ((_ string-list p)
      (read-string-list p))
+    ((_ string-pairs p)
+     (read-string-pairs p))
     ((_ substitutable-path-list p)
      (read-substitutable-path-list p))
     ((_ path-info p)
@@ -628,9 +633,10 @@ connection.  Use with care."
     (define (thunk)
       (parameterize ((current-store-protocol-version
                       (store-connection-version store)))
-        (let ((result (proc store)))
-          (close-connection store)
-          result)))
+        (call-with-values (lambda () (proc store))
+          (lambda results
+            (close-connection store)
+            (apply values results)))))
 
     (cond-expand
       (guile-3
@@ -819,7 +825,7 @@ encoding conversion errors."
                             (terminal-columns (terminal-columns))
 
                             ;; Locale of the client.
-                            (locale (false-if-exception (setlocale LC_ALL))))
+                            (locale (false-if-exception (setlocale LC_MESSAGES))))
   ;; Must be called after `open-connection'.
 
   (define buffered
@@ -1396,6 +1402,21 @@ When a handler is installed with 'with-build-handler', it is called any time
                                          (message "unsupported build mode")
                                          (status  1))))))))))))
 
+(define-operation (ensure-path (store-path path))
+  "Ensure that a path is valid.  If it is not valid, it may be made valid by
+running a substitute.  As a GC root is not created by the daemon, you may want
+to call ADD-TEMP-ROOT on that store path."
+  boolean)
+
+(define-operation (find-roots)
+  "Return a list of root/target pairs: for each pair, the first element is the
+GC root file name and the second element is its target in the store.
+
+When talking to a local daemon, this operation is equivalent to the 'gc-roots'
+procedure in (guix store roots), except that the 'find-roots' excludes
+potential roots that do not point to store items."
+  string-pairs)
+
 (define-operation (add-temp-root (store-path path))
   "Make PATH a temporary root for the duration of the current session.
 Return #t."
@@ -1727,10 +1748,20 @@ is raised if the set of paths read from PORT is not signed (as per
       (or done? (loop (process-stderr server port))))
     (= 1 (read-int s))))
 
-(define* (export-paths server paths port #:key (sign? #t) recursive?)
+(define* (export-paths server paths port #:key (sign? #t) recursive?
+                       (start (const #f))
+                       (progress (const #f))
+                       (finish (const #f)))
   "Export the store paths listed in PATHS to PORT, in topological order,
 signing them if SIGN? is true.  When RECURSIVE? is true, export the closure of
-PATHS---i.e., PATHS and all their dependencies."
+PATHS---i.e., PATHS and all their dependencies.
+
+START, PROGRESS, and FINISH are used to track progress of the data transfer.
+START is a one-argument that is passed the list of store items that will be
+transferred; it returns values that are then used as the initial state
+threaded through PROGRESS calls.  PROGRESS is passed the store item about to
+be sent, along with the values previously return by START or by PROGRESS
+itself.  FINISH is called when the last store item has been called."
   (define ordered
     (let ((sorted (topologically-sorted server paths)))
       ;; When RECURSIVE? is #f, filter out the references of PATHS.
@@ -1738,14 +1769,20 @@ PATHS---i.e., PATHS and all their dependencies."
           sorted
           (filter (cut member <> paths) sorted))))
 
-  (let loop ((paths ordered))
+  (let loop ((paths ordered)
+             (state (call-with-values (lambda () (start ordered))
+                      list)))
     (match paths
       (()
+       (apply finish state)
        (write-int 0 port))
       ((head tail ...)
        (write-int 1 port)
        (and (export-path server head port #:sign? sign?)
-            (loop tail))))))
+            (loop tail
+                  (call-with-values
+                      (lambda () (apply progress head state))
+                    list)))))))
 
 (define-operation (query-failed-paths)
   "Return the list of store items for which a build failure is cached.
diff --git a/guix/store/database.scm b/guix/store/database.scm
index 50b66ce282..0a84bbddb9 100644
--- a/guix/store/database.scm
+++ b/guix/store/database.scm
@@ -21,7 +21,6 @@
 (define-module (guix store database)
   #:use-module (sqlite3)
   #:use-module (guix config)
-  #:use-module (guix gexp)
   #:use-module (guix serialization)
   #:use-module (guix store deduplication)
   #:use-module (guix base16)
@@ -29,7 +28,6 @@
   #:use-module (guix build syscalls)
   #:use-module ((guix build utils)
                 #:select (mkdir-p executable-file?))
-  #:use-module (guix utils)
   #:use-module (guix build store-copy)
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-11)
@@ -41,10 +39,10 @@
   #:export (sql-schema
             %default-database-file
             store-database-file
+            call-with-database
             with-database
             path-id
             sqlite-register
-            register-path
             register-items
             %epoch
             reset-timestamps))
@@ -325,8 +323,19 @@ ids of items referred to."
                 (sqlite-fold cons '() stmt))
               references)))
 
+(define (timestamp)
+  "Return a timestamp, either the current time of SOURCE_DATE_EPOCH."
+  (match (getenv "SOURCE_DATE_EPOCH")
+    (#f
+     (current-time time-utc))
+    ((= string->number seconds)
+     (if seconds
+         (make-time time-utc 0 seconds)
+         (current-time time-utc)))))
+
 (define* (sqlite-register db #:key path (references '())
-                          deriver hash nar-size time)
+                          deriver hash nar-size
+                          (time (timestamp)))
   "Registers this stuff in DB.  PATH is the store item to register and
 REFERENCES is the list of store items PATH refers to; DERIVER is the '.drv'
 that produced PATH, HASH is the base16-encoded Nix sha256 hash of
@@ -339,9 +348,7 @@ Every store item in REFERENCES must already be registered."
                               #:deriver deriver
                               #:hash hash
                               #:nar-size nar-size
-                              #:time (time-second
-                                      (or time
-                                          (current-time time-utc))))))
+                              #:time (time-second time))))
     ;; Call 'path-id' on each of REFERENCES.  This ensures we get a
     ;; "non-NULL constraint" failure if one of REFERENCES is unregistered.
     (add-references db id
@@ -384,46 +391,20 @@ is true."
          (chmod file (if (executable-file? file) #o555 #o444)))
        (utime file 1 1 0 0)))))
 
-(define* (register-path path
-                        #:key (references '()) deriver prefix
-                        state-directory (deduplicate? #t)
-                        (reset-timestamps? #t)
-                        (schema (sql-schema)))
-  "Register PATH as a valid store file, with REFERENCES as its list of
-references, and DERIVER as its deriver (.drv that led to it.)  If PREFIX is
-given, it must be the name of the directory containing the new store to
-initialize; if STATE-DIRECTORY is given, it must be a string containing the
-absolute file name to the state directory of the store being initialized.
-Return #t on success.
-
-Use with care as it directly modifies the store!  This is primarily meant to
-be used internally by the daemon's build hook."
-  (define db-file
-    (store-database-file #:prefix prefix
-                         #:state-directory state-directory))
-
-  (parameterize ((sql-schema schema))
-    (with-database db-file db
-      (register-items db (list (store-info path deriver references))
-                      #:prefix prefix
-                      #:deduplicate? deduplicate?
-                      #:reset-timestamps? reset-timestamps?
-                      #:log-port (%make-void-port "w")))))
-
 (define %epoch
   ;; When it all began.
   (make-time time-utc 0 1))
 
 (define* (register-items db items
                          #:key prefix
-                         (deduplicate? #t)
-                         (reset-timestamps? #t)
-                         registration-time
+                         (registration-time (timestamp))
                          (log-port (current-error-port)))
   "Register all of ITEMS, a list of <store-info> records as returned by
 'read-reference-graph', in DB.  ITEMS must be in topological order (with
 leaves first.)  REGISTRATION-TIME must be the registration time to be recorded
-in the database; #f means \"now\".  Write a progress report to LOG-PORT."
+in the database; #f means \"now\".  Write a progress report to LOG-PORT.  All
+of ITEMS must be protected from GC and locked during execution of this,
+typically by adding them as temp-roots."
   (define store-dir
     (if prefix
         (string-append prefix %storedir)
@@ -449,27 +430,24 @@ in the database; #f means \"now\".  Write a progress report to LOG-PORT."
     ;; significant differences when 'register-closures' is called
     ;; consecutively for overlapping closures such as 'system' and 'bootcfg'.
     (unless (path-id db to-register)
-      (when reset-timestamps?
-        (reset-timestamps real-file-name))
       (let-values (((hash nar-size) (nar-sha256 real-file-name)))
-        (sqlite-register db #:path to-register
-                         #:references (store-info-references item)
-                         #:deriver (store-info-deriver item)
-                         #:hash (string-append "sha256:"
-                                               (bytevector->base16-string hash))
-                         #:nar-size nar-size
-                         #:time registration-time)
-        (when deduplicate?
-          (deduplicate real-file-name hash #:store store-dir)))))
-
-  (call-with-retrying-transaction db
-      (lambda ()
-        (let* ((prefix   (format #f "registering ~a items" (length items)))
-               (progress (progress-reporter/bar (length items)
-                                                prefix log-port)))
-          (call-with-progress-reporter progress
-            (lambda (report)
-              (for-each (lambda (item)
-                          (register db item)
-                          (report))
-                        items)))))))
+        (call-with-retrying-transaction db
+          (lambda ()
+            (sqlite-register db #:path to-register
+                             #:references (store-info-references item)
+                             #:deriver (store-info-deriver item)
+                             #:hash (string-append
+                                     "sha256:"
+                                     (bytevector->base16-string hash))
+                             #:nar-size nar-size
+                             #:time registration-time))))))
+
+  (let* ((prefix   (format #f "registering ~a items" (length items)))
+         (progress (progress-reporter/bar (length items)
+                                          prefix log-port)))
+    (call-with-progress-reporter progress
+      (lambda (report)
+        (for-each (lambda (item)
+                    (register db item)
+                    (report))
+                  items)))))
diff --git a/guix/store/deduplication.scm b/guix/store/deduplication.scm
index df959bdd06..cd9660174c 100644
--- a/guix/store/deduplication.scm
+++ b/guix/store/deduplication.scm
@@ -26,45 +26,25 @@
   #:use-module (guix build syscalls)
   #:use-module (guix base32)
   #:use-module (srfi srfi-11)
+  #:use-module (srfi srfi-34)
+  #:use-module (srfi srfi-35)
   #:use-module (rnrs io ports)
   #:use-module (ice-9 ftw)
   #:use-module (ice-9 match)
   #:use-module (guix serialization)
   #:export (nar-sha256
-            deduplicate))
-
-;; XXX: This port is used as a workaround on Guile <= 2.2.4 where
-;; 'port-position' throws to 'out-of-range' when the offset is great than or
-;; equal to 2^32: <https://bugs.gnu.org/32161>.
-(define (counting-wrapper-port output-port)
-  "Return two values: an output port that wraps OUTPUT-PORT, and a thunk to
-retrieve the number of bytes written to OUTPUT-PORT."
-  (let ((byte-count 0))
-    (values (make-custom-binary-output-port "counting-wrapper"
-                                            (lambda (bytes offset count)
-                                              (put-bytevector output-port bytes
-                                                              offset count)
-                                              (set! byte-count
-                                                (+ byte-count count))
-                                              count)
-                                            (lambda ()
-                                              byte-count)
-                                            #f
-                                            (lambda ()
-                                              (close-port output-port)))
-            (lambda ()
-              byte-count))))
+            deduplicate
+            dump-file/deduplicate
+            copy-file/deduplicate))
 
 (define (nar-sha256 file)
   "Gives the sha256 hash of a file and the size of the file in nar form."
-  (let*-values (((port get-hash) (open-sha256-port))
-                ((wrapper get-size) (counting-wrapper-port port)))
-    (write-file file wrapper)
-    (force-output wrapper)
+  (let-values (((port get-hash) (open-sha256-port)))
+    (write-file file port)
     (force-output port)
     (let ((hash (get-hash))
-          (size (get-size)))
-      (close-port wrapper)
+          (size (port-position port)))
+      (close-port port)
       (values hash size))))
 
 (define (tempname-in directory)
@@ -94,8 +74,8 @@ LINK-PREFIX."
             (try (tempname-in link-prefix))
             (apply throw args))))))
 
-(define (call-with-writable-file file thunk)
-  (if (string=? file (%store-directory))
+(define (call-with-writable-file file store thunk)
+  (if (string=? file store)
       (thunk)                       ;don't meddle with the store's permissions
       (let ((stat (lstat file)))
         (dynamic-wind
@@ -106,17 +86,18 @@ LINK-PREFIX."
             (set-file-time file stat)
             (chmod file (stat:mode stat)))))))
 
-(define-syntax-rule (with-writable-file file exp ...)
+(define-syntax-rule (with-writable-file file store exp ...)
   "Make FILE writable for the dynamic extent of EXP..., except if FILE is the
 store."
-  (call-with-writable-file file (lambda () exp ...)))
+  (call-with-writable-file file store (lambda () exp ...)))
 
 ;; There are 3 main kinds of errors we can get from hardlinking: "Too many
 ;; things link to this" (EMLINK), "this link already exists" (EEXIST), and
 ;; "can't fit more stuff in this directory" (ENOSPC).
 
 (define* (replace-with-link target to-replace
-                            #:key (swap-directory (dirname target)))
+                            #:key (swap-directory (dirname target))
+                            (store (%store-directory)))
   "Atomically replace the file TO-REPLACE with a link to TARGET.  Use
 SWAP-DIRECTORY as the directory to store temporary hard links.  Upon ENOSPC
 and EMLINK, TO-REPLACE is left unchanged.
@@ -137,7 +118,7 @@ Note: TARGET, TO-REPLACE, and SWAP-DIRECTORY must be on the same file system."
   ;; If we couldn't create TEMP-LINK, that's OK: just don't do the
   ;; replacement, which means TO-REPLACE won't be deduplicated.
   (when temp-link
-    (with-writable-file (dirname to-replace)
+    (with-writable-file (dirname to-replace) store
       (catch 'system-error
         (lambda ()
           (rename-file temp-link to-replace))
@@ -154,7 +135,6 @@ under STORE."
   (define links-directory
     (string-append store "/.links"))
 
-  (mkdir-p links-directory)
   (let loop ((path path)
              (type (stat:type (lstat path)))
              (hash hash))
@@ -176,7 +156,8 @@ under STORE."
                                         (bytevector->nix-base32-string hash))))
           (if (file-exists? link-file)
               (replace-with-link link-file path
-                                 #:swap-directory links-directory)
+                                 #:swap-directory links-directory
+                                 #:store store)
               (catch 'system-error
                 (lambda ()
                   (link path link-file))
@@ -186,7 +167,14 @@ under STORE."
                            ;; Someone else put an entry for PATH in
                            ;; LINKS-DIRECTORY before we could.  Let's use it.
                            (replace-with-link path link-file
-                                              #:swap-directory links-directory))
+                                              #:swap-directory
+                                              links-directory
+                                              #:store store))
+                          ((= errno ENOENT)
+                           ;; This most likely means that LINKS-DIRECTORY does
+                           ;; not exist.  Attempt to create it and try again.
+                           (mkdir-p links-directory)
+                           (loop path type hash))
                           ((= errno ENOSPC)
                            ;; There's not enough room in the directory index for
                            ;; more entries in .links, but that's fine: we can
@@ -197,3 +185,68 @@ under STORE."
                            ;; that's OK: we just can't deduplicate it more.
                            #f)
                           (else (apply throw args)))))))))))
+
+(define (tee input len output)
+  "Return a port that reads up to LEN bytes from INPUT and writes them to
+OUTPUT as it goes."
+  (define bytes-read 0)
+
+  (define (fail)
+    ;; Reached EOF before we had read LEN bytes from INPUT.
+    (raise (condition
+            (&nar-error (port input)
+                        (file (port-filename output))))))
+
+  (define (read! bv start count)
+    ;; Read at most LEN bytes in total.
+    (let ((count (min count (- len bytes-read))))
+      (let loop ((ret (get-bytevector-n! input bv start count)))
+        (cond ((eof-object? ret)
+               (if (= bytes-read len)
+                   0                              ; EOF
+                   (fail)))
+              ((and (zero? ret) (> count 0))
+               ;; Do not return zero since zero means EOF, so try again.
+               (loop (get-bytevector-n! input bv start count)))
+              (else
+               (put-bytevector output bv start ret)
+               (set! bytes-read (+ bytes-read ret))
+               ret)))))
+
+  (make-custom-binary-input-port "tee input port" read! #f #f #f))
+
+(define* (dump-file/deduplicate file input size type
+                                #:key (store (%store-directory)))
+  "Write SIZE bytes read from INPUT to FILE.  TYPE is a symbol, either
+'regular or 'executable.
+
+This procedure is suitable as a #:dump-file argument to 'restore-file'.  When
+used that way, it deduplicates files on the fly as they are restored, thereby
+removing the need to a deduplication pass that would re-read all the files
+down the road."
+  (define hash
+    (call-with-output-file file
+      (lambda (output)
+        (let-values (((hash-port get-hash)
+                      (open-hash-port (hash-algorithm sha256))))
+          (write-file-tree file hash-port
+                           #:file-type+size (lambda (_) (values type size))
+                           #:file-port
+                           (const (tee input size output)))
+          (close-port hash-port)
+          (get-hash)))))
+
+  (deduplicate file hash #:store store))
+
+(define* (copy-file/deduplicate source target
+                                #:key (store (%store-directory)))
+  "Like 'copy-file', but additionally deduplicate TARGET in STORE."
+  (call-with-input-file source
+    (lambda (input)
+      (let ((stat (stat input)))
+        (dump-file/deduplicate target input (stat:size stat)
+                               (if (zero? (logand (stat:mode stat)
+                                                  #o100))
+                                   'regular
+                                   'executable)
+                               #:store store)))))
diff --git a/guix/svn-download.scm b/guix/svn-download.scm
index 59e2eb8d07..b96151234c 100644
--- a/guix/svn-download.scm
+++ b/guix/svn-download.scm
@@ -159,10 +159,11 @@ reports to LOG."
             (parameterize ((current-output-port log))
               (build:svn-fetch (svn-reference-url ref)
                                (svn-reference-revision ref)
-                               temp
+                               (string-append temp "/svn")
                                #:user-name (svn-reference-user-name ref)
                                #:password (svn-reference-password ref)))))
        (and result
-            (add-to-store store name #t "sha256" temp))))))
+            (add-to-store store name #t "sha256"
+                          (string-append temp "/svn")))))))
 
 ;;; svn-download.scm ends here
diff --git a/guix/swh.scm b/guix/swh.scm
index a343ccfdd7..f11b7ea2d5 100644
--- a/guix/swh.scm
+++ b/guix/swh.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -22,7 +22,6 @@
   #:use-module (guix build utils)
   #:use-module ((guix build syscalls) #:select (mkdtemp!))
   #:use-module (web uri)
-  #:use-module (guix json)
   #:use-module (web client)
   #:use-module (web response)
   #:use-module (json)
@@ -349,6 +348,7 @@ FALSE-IF-404? is true, return #f upon 404 responses."
   (checksums     directory-entry-checksums "checksums"
                  (match-lambda
                    (#f  #f)
+                   ((? unspecified?) #f)
                    (lst (json->checksums lst))))
   (id            directory-entry-id "dir_id")
   (length        directory-entry-length)
diff --git a/guix/tests.scm b/guix/tests.scm
index 3ccf049a7d..fc3d521163 100644
--- a/guix/tests.scm
+++ b/guix/tests.scm
@@ -160,15 +160,17 @@ too expensive to build entirely in the test store."
              number->string)
       (logxor (getpid) (car (gettimeofday)))))
 
-(define %seed
+(define (%seed)
   (let ((seed (random-seed)))
     (format (current-error-port) "random seed for tests: ~a~%"
             seed)
-    (seed->random-state seed)))
+    (let ((result (seed->random-state seed)))
+      (set! %seed (lambda () result))
+      result)))
 
 (define (random-text)
   "Return the hexadecimal representation of a random number."
-  (number->string (random (expt 2 256) %seed) 16))
+  (number->string (random (expt 2 256) (%seed)) 16))
 
 (define (random-bytevector n)
   "Return a random bytevector of N bytes."
@@ -176,7 +178,7 @@ too expensive to build entirely in the test store."
     (let loop ((i 0))
       (if (< i n)
           (begin
-            (bytevector-u8-set! bv i (random 256 %seed))
+            (bytevector-u8-set! bv i (random 256 (%seed)))
             (loop (1+ i)))
           bv))))
 
diff --git a/guix/transformations.scm b/guix/transformations.scm
new file mode 100644
index 0000000000..4e9260350c
--- /dev/null
+++ b/guix/transformations.scm
@@ -0,0 +1,738 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (guix transformations)
+  #:use-module (guix i18n)
+  #:use-module (guix store)
+  #:use-module (guix packages)
+  #:use-module (guix profiles)
+  #:use-module (guix diagnostics)
+  #:autoload   (guix download) (download-to-store)
+  #:autoload   (guix git-download) (git-reference? git-reference-url)
+  #:autoload   (guix git) (git-checkout git-checkout? git-checkout-url)
+  #:autoload   (guix upstream) (package-latest-release*
+                                upstream-source-version
+                                upstream-source-signature-urls)
+  #:use-module (guix utils)
+  #:use-module (guix memoization)
+  #:use-module (guix gexp)
+
+  ;; Use the procedure that destructures "NAME-VERSION" forms.
+  #:use-module ((guix build utils)
+                #:select ((package-name->name+version
+                           . hyphen-package-name->name+version)))
+
+  #:use-module (srfi srfi-1)
+  #:use-module (srfi srfi-9)
+  #:use-module (srfi srfi-11)
+  #:use-module (srfi srfi-26)
+  #:use-module (srfi srfi-34)
+  #:use-module (srfi srfi-37)
+  #:use-module (ice-9 match)
+  #:use-module (ice-9 vlist)
+  #:export (options->transformation
+            manifest-entry-with-transformations
+
+            show-transformation-options-help
+            %transformation-options))
+
+;;; Commentary:
+;;;
+;;; This module implements "package transformation options"---tools for
+;;; package graph rewriting.  It contains the graph rewriting logic, but also
+;;; the tip of its user interface: command-line option handling.
+;;;
+;;; Code:
+
+(module-autoload! (current-module) '(gnu packages)
+                  '(specification->package))
+
+(define (numeric-extension? file-name)
+  "Return true if FILE-NAME ends with digits."
+  (string-every char-set:hex-digit (file-extension file-name)))
+
+(define (tarball-base-name file-name)
+  "Return the \"base\" of FILE-NAME, removing '.tar.gz' or similar
+extensions."
+  ;; TODO: Factorize.
+  (cond ((not (file-extension file-name))
+         file-name)
+        ((numeric-extension? file-name)
+         file-name)
+        ((string=? (file-extension file-name) "tar")
+         (file-sans-extension file-name))
+        ((file-extension file-name)
+         =>
+         (match-lambda
+           ("scm" file-name)
+           (_     (tarball-base-name (file-sans-extension file-name)))))
+        (else
+         file-name)))
+
+
+;; Files to be downloaded.
+(define-record-type <downloaded-file>
+  (downloaded-file uri recursive?)
+  downloaded-file?
+  (uri        downloaded-file-uri)
+  (recursive? downloaded-file-recursive?))
+
+(define download-to-store*
+  (store-lift download-to-store))
+
+(define-gexp-compiler (compile-downloaded-file (file <downloaded-file>)
+                                               system target)
+  "Download FILE and return the result as a store item."
+  (match file
+    (($ <downloaded-file> uri recursive?)
+     (download-to-store* uri #:recursive? recursive?))))
+
+(define* (package-with-source p uri #:optional version)
+  "Return a package based on P but with its source taken from URI.  Extract
+the new package's version number from URI."
+  (let ((base (tarball-base-name (basename uri))))
+    (let-values (((_ version*)
+                  (hyphen-package-name->name+version base)))
+      (package (inherit p)
+               (version (or version version*
+                            (package-version p)))
+
+               ;; Use #:recursive? #t to allow for directories.
+               (source (downloaded-file uri #t))))))
+
+
+;;;
+;;; Transformations.
+;;;
+
+(define (transform-package-source sources)
+  "Return a transformation procedure that replaces package sources with the
+matching URIs given in SOURCES."
+  (define new-sources
+    (map (lambda (uri)
+           (match (string-index uri #\=)
+             (#f
+              ;; Determine the package name and version from URI.
+              (call-with-values
+                  (lambda ()
+                    (hyphen-package-name->name+version
+                     (tarball-base-name (basename uri))))
+                (lambda (name version)
+                  (list name version uri))))
+             (index
+              ;; What's before INDEX is a "PKG@VER" or "PKG" spec.
+              (call-with-values
+                  (lambda ()
+                    (package-name->name+version (string-take uri index)))
+                (lambda (name version)
+                  (list name version
+                        (string-drop uri (+ 1 index))))))))
+         sources))
+
+  (lambda (obj)
+    (let loop ((sources  new-sources)
+               (result   '()))
+      (match obj
+        ((? package? p)
+         (match (assoc-ref sources (package-name p))
+           ((version source)
+            (package-with-source p source version))
+           (#f
+            p)))
+        (_
+         obj)))))
+
+(define (evaluate-replacement-specs specs proc)
+  "Parse SPECS, a list of strings like \"guile=guile@2.1\" and return a list
+of package spec/procedure pairs as expected by 'package-input-rewriting/spec'.
+PROC is called with the package to be replaced and its replacement according
+to SPECS.  Raise an error if an element of SPECS uses invalid syntax, or if a
+package it refers to could not be found."
+  (define not-equal
+    (char-set-complement (char-set #\=)))
+
+  (map (lambda (spec)
+         (match (string-tokenize spec not-equal)
+           ((spec new)
+            (cons spec
+                  (let ((new (specification->package new)))
+                    (lambda (old)
+                      (proc old new)))))
+           (x
+            (raise (formatted-message
+                    (G_ "invalid replacement specification: ~s")
+                    spec)))))
+       specs))
+
+(define (transform-package-inputs replacement-specs)
+  "Return a procedure that, when passed a package, replaces its direct
+dependencies according to REPLACEMENT-SPECS.  REPLACEMENT-SPECS is a list of
+strings like \"guile=guile@2.1\" meaning that, any dependency on a package
+called \"guile\" must be replaced with a dependency on a version 2.1 of
+\"guile\"."
+  (let* ((replacements (evaluate-replacement-specs replacement-specs
+                                                   (lambda (old new)
+                                                     new)))
+         (rewrite      (package-input-rewriting/spec replacements)))
+    (lambda (obj)
+      (if (package? obj)
+          (rewrite obj)
+          obj))))
+
+(define (transform-package-inputs/graft replacement-specs)
+  "Return a procedure that, when passed a package, replaces its direct
+dependencies according to REPLACEMENT-SPECS.  REPLACEMENT-SPECS is a list of
+strings like \"gnutls=gnutls@3.5.4\" meaning that packages are built using the
+current 'gnutls' package, after which version 3.5.4 is grafted onto them."
+  (define (set-replacement old new)
+    (package (inherit old) (replacement new)))
+
+  (let* ((replacements (evaluate-replacement-specs replacement-specs
+                                                   set-replacement))
+         (rewrite      (package-input-rewriting/spec replacements)))
+    (lambda (obj)
+      (if (package? obj)
+          (rewrite obj)
+          obj))))
+
+(define %not-equal
+  (char-set-complement (char-set #\=)))
+
+(define (package-git-url package)
+  "Return the URL of the Git repository for package, or raise an error if
+the source of PACKAGE is not fetched from a Git repository."
+  (let ((source (package-source package)))
+    (cond ((and (origin? source)
+                (git-reference? (origin-uri source)))
+           (git-reference-url (origin-uri source)))
+          ((git-checkout? source)
+           (git-checkout-url source))
+          (else
+           (raise
+            (formatted-message (G_ "the source of ~a is not a Git reference")
+                               (package-full-name package)))))))
+
+(define (evaluate-git-replacement-specs specs proc)
+  "Parse SPECS, a list of strings like \"guile=stable-2.2\", and return a list
+of package pairs, where (PROC PACKAGE URL BRANCH-OR-COMMIT) returns the
+replacement package.  Raise an error if an element of SPECS uses invalid
+syntax, or if a package it refers to could not be found."
+  (map (lambda (spec)
+         (match (string-tokenize spec %not-equal)
+           ((spec branch-or-commit)
+            (define (replace old)
+              (let* ((source (package-source old))
+                     (url    (package-git-url old)))
+                (proc old url branch-or-commit)))
+
+            (cons spec replace))
+           (_
+            (raise
+             (formatted-message (G_ "invalid replacement specification: ~s")
+                                spec)))))
+       specs))
+
+(define (transform-package-source-branch replacement-specs)
+  "Return a procedure that, when passed a package, replaces its direct
+dependencies according to REPLACEMENT-SPECS.  REPLACEMENT-SPECS is a list of
+strings like \"guile-next=stable-3.0\" meaning that packages are built using
+'guile-next' from the latest commit on its 'stable-3.0' branch."
+  (define (replace old url branch)
+    (package
+      (inherit old)
+      (version (string-append "git." (string-map (match-lambda
+                                                   (#\/ #\-)
+                                                   (chr chr))
+                                                 branch)))
+      (source (git-checkout (url url) (branch branch)
+                            (recursive? #t)))))
+
+  (let* ((replacements (evaluate-git-replacement-specs replacement-specs
+                                                       replace))
+         (rewrite      (package-input-rewriting/spec replacements)))
+    (lambda (obj)
+      (if (package? obj)
+          (rewrite obj)
+          obj))))
+
+(define (transform-package-source-commit replacement-specs)
+  "Return a procedure that, when passed a package, replaces its direct
+dependencies according to REPLACEMENT-SPECS.  REPLACEMENT-SPECS is a list of
+strings like \"guile-next=cabba9e\" meaning that packages are built using
+'guile-next' from commit 'cabba9e'."
+  (define (replace old url commit)
+    (package
+      (inherit old)
+      (version (if (and (> (string-length commit) 1)
+                        (string-prefix? "v" commit)
+                        (char-set-contains? char-set:digit
+                                            (string-ref commit 1)))
+                   (string-drop commit 1)        ;looks like a tag like "v1.0"
+                   (string-append "git."
+                                  (if (< (string-length commit) 7)
+                                      commit
+                                      (string-take commit 7)))))
+      (source (git-checkout (url url) (commit commit)
+                            (recursive? #t)))))
+
+  (let* ((replacements (evaluate-git-replacement-specs replacement-specs
+                                                       replace))
+         (rewrite      (package-input-rewriting/spec replacements)))
+    (lambda (obj)
+      (if (package? obj)
+          (rewrite obj)
+          obj))))
+
+(define (transform-package-source-git-url replacement-specs)
+  "Return a procedure that, when passed a package, replaces its dependencies
+according to REPLACEMENT-SPECS.  REPLACEMENT-SPECS is a list of strings like
+\"guile-json=https://gitthing.com/…\" meaning that packages are built using
+a checkout of the Git repository at the given URL."
+  (define replacements
+    (map (lambda (spec)
+           (match (string-tokenize spec %not-equal)
+             ((spec url)
+              (cons spec
+                    (lambda (old)
+                      (package
+                        (inherit old)
+                        (source (git-checkout (url url)
+                                              (recursive? #t)))))))
+             (_
+              (raise
+               (formatted-message
+                (G_ "~a: invalid Git URL replacement specification")
+                spec)))))
+         replacement-specs))
+
+  (define rewrite
+    (package-input-rewriting/spec replacements))
+
+  (lambda (obj)
+    (if (package? obj)
+        (rewrite obj)
+        obj)))
+
+(define (package-dependents/spec top bottom)
+  "Return the list of dependents of BOTTOM, a spec string, that are also
+dependencies of TOP, a package."
+  (define-values (name version)
+    (package-name->name+version bottom))
+
+  (define dependent?
+    (mlambda (p)
+      (and (package? p)
+           (or (and (string=? name (package-name p))
+                    (or (not version)
+                        (version-prefix? version (package-version p))))
+               (match (bag-direct-inputs (package->bag p))
+                 (((labels dependencies . _) ...)
+                  (any dependent? dependencies)))))))
+
+  (filter dependent? (package-closure (list top))))
+
+(define (package-toolchain-rewriting p bottom toolchain)
+  "Return a procedure that, when passed a package that's either BOTTOM or one
+of its dependents up to P so, changes it so it is built with TOOLCHAIN.
+TOOLCHAIN must be an input list."
+  (define rewriting-property
+    (gensym " package-toolchain-rewriting"))
+
+  (match (package-dependents/spec p bottom)
+    (()                                           ;P does not depend on BOTTOM
+     identity)
+    (set
+     ;; SET is the list of packages "between" P and BOTTOM (included) whose
+     ;; toolchain needs to be changed.
+     (package-mapping (lambda (p)
+                        (if (or (assq rewriting-property
+                                      (package-properties p))
+                                (not (memq p set)))
+                            p
+                            (let ((p (package-with-c-toolchain p toolchain)))
+                              (package/inherit p
+                                (properties `((,rewriting-property . #t)
+                                              ,@(package-properties p)))))))
+                      (lambda (p)
+                        (or (assq rewriting-property (package-properties p))
+                            (not (memq p set))))
+                      #:deep? #t))))
+
+(define (transform-package-toolchain replacement-specs)
+  "Return a procedure that, when passed a package, changes its toolchain or
+that of its dependencies according to REPLACEMENT-SPECS.  REPLACEMENT-SPECS is
+a list of strings like \"fftw=gcc-toolchain@10\" meaning that the package to
+the left of the equal sign must be built with the toolchain to the right of
+the equal sign."
+  (define split-on-commas
+    (cute string-tokenize <> (char-set-complement (char-set #\,))))
+
+  (define (specification->input spec)
+    (let ((package (specification->package spec)))
+      (list (package-name package) package)))
+
+  (define replacements
+    (map (lambda (spec)
+           (match (string-tokenize spec %not-equal)
+             ((spec (= split-on-commas toolchain))
+              (cons spec (map specification->input toolchain)))
+             (_
+              (raise
+               (formatted-message
+                (G_ "~a: invalid toolchain replacement specification")
+                spec)))))
+         replacement-specs))
+
+  (lambda (obj)
+    (if (package? obj)
+        (or (any (match-lambda
+                   ((bottom . toolchain)
+                    ((package-toolchain-rewriting obj bottom toolchain) obj)))
+                 replacements)
+            obj)
+        obj)))
+
+(define (transform-package-with-debug-info specs)
+  "Return a procedure that, when passed a package, set its 'replacement' field
+to the same package but with #:strip-binaries? #f in its 'arguments' field."
+  (define (non-stripped p)
+    (package
+      (inherit p)
+      (arguments
+       (substitute-keyword-arguments (package-arguments p)
+         ((#:strip-binaries? _ #f) #f)))))
+
+  (define (package-with-debug-info p)
+    (if (member "debug" (package-outputs p))
+        p
+        (let loop ((p p))
+          (match (package-replacement p)
+            (#f
+             (package
+               (inherit p)
+               (replacement (non-stripped p))))
+            (next
+             (package
+               (inherit p)
+               (replacement (loop next))))))))
+
+  (define rewrite
+    (package-input-rewriting/spec (map (lambda (spec)
+                                         (cons spec package-with-debug-info))
+                                       specs)))
+
+  (lambda (obj)
+    (if (package? obj)
+        (rewrite obj)
+        obj)))
+
+(define (transform-package-tests specs)
+  "Return a procedure that, when passed a package, sets #:tests? #f in its
+'arguments' field."
+  (define (package-without-tests p)
+    (package/inherit p
+      (arguments
+       (substitute-keyword-arguments (package-arguments p)
+         ((#:tests? _ #f) #f)))))
+
+  (define rewrite
+    (package-input-rewriting/spec (map (lambda (spec)
+                                         (cons spec package-without-tests))
+                                       specs)))
+
+  (lambda (obj)
+    (if (package? obj)
+        (rewrite obj)
+        obj)))
+
+(define (transform-package-patches specs)
+  "Return a procedure that, when passed a package, returns a package with
+additional patches."
+  (define (package-with-extra-patches p patches)
+    (if (origin? (package-source p))
+        (package/inherit p
+          (source (origin
+                    (inherit (package-source p))
+                    (patches (append (map (lambda (file)
+                                            (local-file file))
+                                          patches)
+                                     (origin-patches (package-source p)))))))
+        p))
+
+  (define (coalesce-alist alist)
+    ;; Coalesce multiple occurrences of the same key in ALIST.
+    (let loop ((alist alist)
+               (keys '())
+               (mapping vlist-null))
+      (match alist
+        (()
+         (map (lambda (key)
+                (cons key (vhash-fold* cons '() key mapping)))
+              (delete-duplicates (reverse keys))))
+        (((key . value) . rest)
+         (loop rest
+               (cons key keys)
+               (vhash-cons key value mapping))))))
+
+  (define patches
+    ;; Spec/patch alist.
+    (coalesce-alist
+     (map (lambda (spec)
+            (match (string-tokenize spec %not-equal)
+              ((spec patch)
+               (cons spec (canonicalize-path patch)))
+              (_
+               (raise (formatted-message
+                       (G_ "~a: invalid package patch specification")
+                       spec)))))
+          specs)))
+
+  (define rewrite
+    (package-input-rewriting/spec
+     (map (match-lambda
+            ((spec . patches)
+             (cons spec (cut package-with-extra-patches <> patches))))
+          patches)))
+
+  (lambda (obj)
+    (if (package? obj)
+        (rewrite obj)
+        obj)))
+
+(define (transform-package-latest specs)
+  "Return a procedure that rewrites package graphs such that those in SPECS
+are replaced by their latest upstream version."
+  (define (package-with-latest-upstream p)
+    (let ((source (package-latest-release* p)))
+      (cond ((not source)
+             (warning
+              (G_ "could not determine latest upstream release of '~a'~%")
+              (package-name p))
+             p)
+            ((string=? (upstream-source-version source)
+                       (package-version p))
+             p)
+            (else
+             (unless (pair? (upstream-source-signature-urls source))
+               (warning (G_ "cannot authenticate source of '~a', version ~a~%")
+                        (package-name p)
+                        (upstream-source-version source)))
+
+             ;; TODO: Take 'upstream-source-input-changes' into account.
+             (package
+               (inherit p)
+               (version (upstream-source-version source))
+               (source source))))))
+
+  (define rewrite
+    (package-input-rewriting/spec
+     (map (lambda (spec)
+            (cons spec package-with-latest-upstream))
+          specs)))
+
+  (lambda (obj)
+    (if (package? obj)
+        (rewrite obj)
+        obj)))
+
+(define %transformations
+  ;; Transformations that can be applied to things to build.  The car is the
+  ;; key used in the option alist, and the cdr is the transformation
+  ;; procedure; it is called with two arguments: the store, and a list of
+  ;; things to build.
+  `((with-source . ,transform-package-source)
+    (with-input  . ,transform-package-inputs)
+    (with-graft  . ,transform-package-inputs/graft)
+    (with-branch . ,transform-package-source-branch)
+    (with-commit . ,transform-package-source-commit)
+    (with-git-url . ,transform-package-source-git-url)
+    (with-c-toolchain . ,transform-package-toolchain)
+    (with-debug-info . ,transform-package-with-debug-info)
+    (without-tests . ,transform-package-tests)
+    (with-patch  . ,transform-package-patches)
+    (with-latest . ,transform-package-latest)))
+
+(define (transformation-procedure key)
+  "Return the transformation procedure associated with KEY, a symbol such as
+'with-source', or #f if there is none."
+  (any (match-lambda
+         ((k . proc)
+          (and (eq? k key) proc)))
+       %transformations))
+
+
+;;;
+;;; Command-line handling.
+;;;
+
+(define %transformation-options
+  ;; The command-line interface to the above transformations.
+  (let ((parser (lambda (symbol)
+                  (lambda (opt name arg result . rest)
+                    (apply values
+                           (alist-cons symbol arg result)
+                           rest)))))
+    (list (option '("with-source") #t #f
+                  (parser 'with-source))
+          (option '("with-input") #t #f
+                  (parser 'with-input))
+          (option '("with-graft") #t #f
+                  (parser 'with-graft))
+          (option '("with-branch") #t #f
+                  (parser 'with-branch))
+          (option '("with-commit") #t #f
+                  (parser 'with-commit))
+          (option '("with-git-url") #t #f
+                  (parser 'with-git-url))
+          (option '("with-c-toolchain") #t #f
+                  (parser 'with-c-toolchain))
+          (option '("with-debug-info") #t #f
+                  (parser 'with-debug-info))
+          (option '("without-tests") #t #f
+                  (parser 'without-tests))
+          (option '("with-patch") #t #f
+                  (parser 'with-patch))
+          (option '("with-latest") #t #f
+                  (parser 'with-latest))
+
+          (option '("help-transform") #f #f
+                  (lambda _
+                    (format #t
+                            (G_ "Available package transformation options:~%"))
+                    (show-transformation-options-help/detailed)
+                    (newline)
+                    (exit 0))))))
+
+(define (show-transformation-options-help/detailed)
+  (display (G_ "
+      --with-source=[PACKAGE=]SOURCE
+                         use SOURCE when building the corresponding package"))
+  (display (G_ "
+      --with-input=PACKAGE=REPLACEMENT
+                         replace dependency PACKAGE by REPLACEMENT"))
+  (display (G_ "
+      --with-graft=PACKAGE=REPLACEMENT
+                         graft REPLACEMENT on packages that refer to PACKAGE"))
+  (display (G_ "
+      --with-branch=PACKAGE=BRANCH
+                         build PACKAGE from the latest commit of BRANCH"))
+  (display (G_ "
+      --with-commit=PACKAGE=COMMIT
+                         build PACKAGE from COMMIT"))
+  (display (G_ "
+      --with-git-url=PACKAGE=URL
+                         build PACKAGE from the repository at URL"))
+  (display (G_ "
+      --with-patch=PACKAGE=FILE
+                         add FILE to the list of patches of PACKAGE"))
+  (display (G_ "
+      --with-latest=PACKAGE
+                         use the latest upstream release of PACKAGE"))
+  (display (G_ "
+      --with-c-toolchain=PACKAGE=TOOLCHAIN
+                         build PACKAGE and its dependents with TOOLCHAIN"))
+  (display (G_ "
+      --with-debug-info=PACKAGE
+                         build PACKAGE and preserve its debug info"))
+  (display (G_ "
+      --without-tests=PACKAGE
+                         build PACKAGE without running its tests")))
+
+(define (show-transformation-options-help)
+  "Show basic help for package transformation options."
+  (display (G_ "
+      --help-transform   list package transformation options not shown here")))
+
+(define (options->transformation opts)
+  "Return a procedure that, when passed an object to build (package,
+derivation, etc.), applies the transformations specified by OPTS and returns
+the resulting objects.  OPTS must be a list of symbol/string pairs such as:
+
+  ((with-branch . \"guile-gcrypt=master\")
+   (without-tests . \"libgcrypt\"))
+
+Each symbol names a transformation and the corresponding string is an argument
+to that transformation."
+  (define applicable
+    ;; List of applicable transformations as symbol/procedure pairs in the
+    ;; order in which they appear on the command line.
+    (filter-map (match-lambda
+                  ((key . value)
+                   (match (transformation-procedure key)
+                     (#f
+                      #f)
+                     (transform
+                      ;; XXX: We used to pass TRANSFORM a list of several
+                      ;; arguments, but we now pass only one, assuming that
+                      ;; transform composes well.
+                      (list key value (transform (list value)))))))
+                (reverse opts)))
+
+  (define (package-with-transformation-properties p)
+    (package/inherit p
+      (properties `((transformations
+                     . ,(map (match-lambda
+                               ((key value _)
+                                (cons key value)))
+                             applicable))
+                    ,@(package-properties p)))))
+
+  (lambda (obj)
+    (define (tagged-object new)
+      (if (and (not (eq? obj new))
+               (package? new) (not (null? applicable)))
+          (package-with-transformation-properties new)
+          new))
+
+    (tagged-object
+     (fold (match-lambda*
+             (((name value transform) obj)
+              (let ((new (transform obj)))
+                (when (eq? new obj)
+                  (warning (G_ "transformation '~a' had no effect on ~a~%")
+                           name
+                           (if (package? obj)
+                               (package-full-name obj)
+                               obj)))
+                new)))
+           obj
+           applicable))))
+
+(define (package-transformations package)
+  "Return the transformations applied to PACKAGE according to its properties."
+  (match (assq-ref (package-properties package) 'transformations)
+    (#f '())
+    (transformations transformations)))
+
+(define (manifest-entry-with-transformations entry)
+  "Return ENTRY with an additional 'transformations' property if it's not
+already there."
+  (let ((properties (manifest-entry-properties entry)))
+    (if (assq 'transformations properties)
+        entry
+        (let ((item (manifest-entry-item entry)))
+          (manifest-entry
+            (inherit entry)
+            (properties
+             (match (and (package? item)
+                         (package-transformations item))
+               ((or #f '())
+                properties)
+               (transformations
+                `((transformations . ,transformations)
+                  ,@properties)))))))))
diff --git a/guix/ui.scm b/guix/ui.scm
index efc3f39186..bd504c68da 100644
--- a/guix/ui.scm
+++ b/guix/ui.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2013, 2018 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
 ;;; Copyright © 2014 Cyril Roelandt <tipecaml@gmail.com>
@@ -12,9 +12,10 @@
 ;;; Copyright © 2018 Kyle Meyer <kyle@kyleam.com>
 ;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2019 Chris Marusich <cmmarusich@gmail.com>
-;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
-;;; Copyright © 2019 Simon Tournier <zimon.toutoune@gmail.com>
+;;; Copyright © 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2019, 2021 Simon Tournier <zimon.toutoune@gmail.com>
 ;;; Copyright © 2020 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -60,6 +61,7 @@
                         ;; Avoid "overrides core binding" warning.
                         delete))
   #:use-module (srfi srfi-1)
+  #:use-module (srfi srfi-9 gnu)
   #:use-module (srfi srfi-11)
   #:use-module (srfi srfi-19)
   #:use-module (srfi srfi-26)
@@ -99,6 +101,7 @@
             show-what-to-build
             show-what-to-build*
             show-manifest-transaction
+            guard*
             call-with-error-handling
             with-error-handling
             with-unbound-variable-handling
@@ -295,7 +298,8 @@ VARIABLE and return it, or #f if none was found."
                                   (hash-map->list (lambda (name module)
                                                     module)
                                                   (module-submodules head)))))
-             (match (module-local-variable head variable)
+             (match (and=> (module-public-interface head)
+                           (cut module-local-variable <> variable))
                (#f (loop next suggestions visited))
                (_
                 (match (module-name head)
@@ -432,6 +436,7 @@ exiting.  ARGS is the list of arguments received by the 'throw' handler."
                      (gettext (condition-message obj) %gettext-domain)))
            ((formatted-message? obj)
             (warning (G_ "failed to load '~a': ~a~%")
+                     file
                      (apply format #f
                             (gettext (formatted-message-string obj)
                                      %gettext-domain)
@@ -490,11 +495,15 @@ part."
 lines:
 
 @example
-guix package -i glibc-utf8-locales
+guix install glibc-utf8-locales
 export GUIX_LOCPATH=\"$HOME/.guix-profile/lib/locale\"
 @end example
 
-See the \"Application Setup\" section in the manual, for more info.\n")))))
+See the \"Application Setup\" section in the manual, for more info.\n"))
+      ;; We're now running in the "C" locale.  Try to install a UTF-8 locale
+      ;; instead.  This one is guaranteed to be available in 'guix' from 'guix
+      ;; pull'.
+      (false-if-exception (setlocale LC_ALL "en_US.utf8")))))
 
 (define (initialize-guix)
   "Perform the usual initialization for stand-alone Guix commands."
@@ -519,7 +528,7 @@ See the \"Application Setup\" section in the manual, for more info.\n")))))
   "Display version information for COMMAND and `(exit 0)'."
   (simple-format #t "~a (~a) ~a~%"
                  command %guix-package-name %guix-version)
-  (format #t "Copyright ~a 2020 ~a"
+  (format #t "Copyright ~a 2021 ~a"
           ;; TRANSLATORS: Translate "(C)" to the copyright symbol
           ;; (C-in-a-circle), if this symbol is available in the user's
           ;; locale.  Otherwise, do not translate "(C)"; leave it as-is.  */
@@ -541,8 +550,9 @@ There is NO WARRANTY, to the extent permitted by law.
 Report bugs to: ~a.") %guix-bug-report-address)
   (format #t (G_ "
 ~a home page: <~a>") %guix-package-name %guix-home-page-url)
-  (display (G_ "
-General help using GNU software: <http://www.gnu.org/gethelp/>"))
+  (format #t (G_ "
+General help using Guix and GNU software: <~a>")
+           "https://guix.gnu.org/help/")
   (newline))
 
 (define (augmented-system-error-handler file)
@@ -709,7 +719,7 @@ evaluating the tests and bodies of CLAUSES."
                        (package-full-name package)
                        (build-system-name system))))
              ((gexp-input-error? c)
-              (let ((input (package-error-invalid-input c)))
+              (let ((input (gexp-error-invalid-input c)))
                 (leave (G_ "~s: invalid G-expression input~%")
                        (gexp-error-invalid-input c))))
              ((profile-not-found-error? c)
@@ -1068,16 +1078,19 @@ summary, and level 0 shows nothing."
                          (null? hook) (map colorized-store-item hook)))
                 ((= verbosity 1)
                  ;; Display the bare minimum; don't mention grafts and hooks.
+                 (unless (null? build)
+                   (newline (current-error-port)))
                  (if display-download-size?
                      (format (current-error-port)
                              ;; TRANSLATORS: "MB" is for "megabyte"; it should be
                              ;; translated to the corresponding abbreviation.
-                             (G_ "~:[~,1h MB would be downloaded~%~;~]")
+                             (highlight (G_ "~:[~,1h MB would be downloaded~%~;~]"))
                              (null? download) download-size)
                      (format (current-error-port)
-                             (N_ "~:[~h item would be downloaded~%~;~]"
-                                 "~:[~h items would be downloaded~%~;~]"
-                                 (length download))
+                             (highlight
+                              (N_ "~:[~h item would be downloaded~%~;~]"
+                                  "~:[~h items would be downloaded~%~;~]"
+                                  (length download)))
                              (null? download) (length download))))))
 
         (begin
@@ -1116,16 +1129,19 @@ summary, and level 0 shows nothing."
                          (null? hook) (map colorized-store-item hook)))
                 ((= verbosity 1)
                  ;; Display the bare minimum; don't mention grafts and hooks.
+                 (unless (null? build)
+                   (newline (current-error-port)))
                  (if display-download-size?
                      (format (current-error-port)
                              ;; TRANSLATORS: "MB" is for "megabyte"; it should be
                              ;; translated to the corresponding abbreviation.
-                             (G_ "~:[~,1h MB will be downloaded~%~;~]")
+                             (highlight (G_ "~:[~,1h MB will be downloaded~%~;~]"))
                              (null? download) download-size)
                      (format (current-error-port)
-                             (N_ "~:[~h item will be downloaded~%~;~]"
-                                 "~:[~h items will be downloaded~%~;~]"
-                                 (length download))
+                             (highlight
+                              (N_ "~:[~h item will be downloaded~%~;~]"
+                                  "~:[~h items will be downloaded~%~;~]"
+                                  (length download)))
                              (null? download) (length download)))))))
 
     (check-available-space installed-size)
@@ -1232,31 +1248,27 @@ separator between subsequent columns."
 (define* (show-manifest-transaction store manifest transaction
                                     #:key dry-run?)
   "Display what will/would be installed/removed from MANIFEST by TRANSACTION."
-  (define (package-strings names versions outputs)
-    (tabulate (zip (map (lambda (name output)
-                          (if (string=? output "out")
-                              name
-                              (string-append name ":" output)))
-                        names outputs)
-                   versions)
+  (define* (package-strings names versions outputs #:key old-versions)
+    (tabulate (stable-sort
+               (zip (map (lambda (name output)
+                           (if (string=? output "out")
+                               name
+                               (string-append name ":" output)))
+                         names outputs)
+                    (if old-versions
+                        (map (lambda (old new)
+                               (if (string=? old new)
+                                   (G_ "(dependencies or package changed)")
+                                   (string-append old " " → " " new)))
+                             old-versions versions)
+                        versions))
+               (lambda (x y)
+                 (string<? (first x) (first y))))
               #:initial-indent 3))
 
   (define →                        ;an arrow that can be represented on stderr
     (right-arrow (current-error-port)))
 
-  (define (upgrade-string names old-version new-version outputs)
-    (tabulate (zip (map (lambda (name output)
-                          (if (string=? output "out")
-                              name
-                              (string-append name ":" output)))
-                        names outputs)
-                   (map (lambda (old new)
-                          (if (string=? old new)
-                              (G_ "(dependencies or package changed)")
-                              (string-append old " " → " " new)))
-                        old-version new-version))
-              #:initial-indent 3))
-
   (let-values (((remove install upgrade downgrade)
                 (manifest-transaction-effects manifest transaction)))
     (match remove
@@ -1279,8 +1291,8 @@ separator between subsequent columns."
       (((($ <manifest-entry> name old-version)
          . ($ <manifest-entry> _ new-version output item)) ..1)
        (let ((len       (length name))
-             (downgrade (upgrade-string name old-version new-version
-                                        output)))
+             (downgrade (package-strings name new-version output
+                                         #:old-versions old-version)))
          (if dry-run?
              (format (current-error-port)
                      (N_ "The following package would be downgraded:~%~{~a~%~}~%"
@@ -1297,9 +1309,8 @@ separator between subsequent columns."
       (((($ <manifest-entry> name old-version)
          . ($ <manifest-entry> _ new-version output item)) ..1)
        (let ((len     (length name))
-             (upgrade (upgrade-string name
-                                      old-version new-version
-                                      output)))
+             (upgrade (package-strings name new-version output
+                                       #:old-versions old-version)))
          (if dry-run?
              (format (current-error-port)
                      (N_ "The following package would be upgraded:~%~{~a~%~}~%"
@@ -1653,24 +1664,33 @@ zero means that PACKAGE does not match any of REGEXPS."
 
 (define* (call-with-paginated-output-port proc
                                           #:key (less-options "FrX"))
-  (if (isatty?* (current-output-port))
-      ;; Set 'LESS' so that 'less' exits if everything fits on the screen (F),
-      ;; lets ANSI escapes through (r), does not send the termcap
-      ;; initialization string (X).  Set it unconditionally because some
-      ;; distros set it to something that doesn't work here.
-      ;;
-      ;; For things that produce long lines, such as 'guix processes', use 'R'
-      ;; instead of 'r': this strips hyperlinks but allows 'less' to make a
-      ;; good estimate of the line length.
-      (let ((pager (with-environment-variables `(("LESS" ,less-options))
-                     (open-pipe* OPEN_WRITE
-                                 (or (getenv "GUIX_PAGER") (getenv "PAGER")
-                                     "less")))))
-        (dynamic-wind
-          (const #t)
-          (lambda () (proc pager))
-          (lambda () (close-pipe pager))))
-      (proc (current-output-port))))
+  (let ((pager-command-line (or (getenv "GUIX_PAGER")
+                                (getenv "PAGER")
+                                "less")))
+    ;; Setting PAGER to the empty string conventionally disables paging.
+    (if (and (not (string-null? pager-command-line))
+             (isatty?* (current-output-port)))
+        ;; Set 'LESS' so that 'less' exits if everything fits on the screen
+        ;; (F), lets ANSI escapes through (r), does not send the termcap
+        ;; initialization string (X).  Set it unconditionally because some
+        ;; distros set it to something that doesn't work here.
+        ;;
+        ;; For things that produce long lines, such as 'guix processes', use
+        ;; 'R' instead of 'r': this strips hyperlinks but allows 'less' to
+        ;; make a good estimate of the line length.
+        (let* ((pager (with-environment-variables `(("LESS" ,less-options))
+                        (apply open-pipe* OPEN_WRITE
+                               ;; Split into arguments.  Treat runs of multiple
+                               ;; whitespace characters as one.  libpipeline-
+                               ;; style "cmd one\ arg" escaping is unsupported.
+                               (remove (lambda (s) (string-null? s))
+                                       (string-split pager-command-line
+                                                     char-set:whitespace))))))
+          (dynamic-wind
+            (const #t)
+            (lambda () (proc pager))
+            (lambda () (close-pipe pager))))
+        (proc (current-output-port)))))
 
 (define-syntax with-paginated-output-port
   (syntax-rules ()
@@ -1988,39 +2008,116 @@ optionally contain a version number and an output name, as in these examples:
           (G_ "Try `guix --help' for more information.~%"))
   (exit 1))
 
-(define (command-files)
+;; Representation of a 'guix' command.
+(define-immutable-record-type <command>
+  (command name synopsis category)
+  command?
+  (name     command-name)
+  (synopsis command-synopsis)
+  (category command-category))
+
+(define (source-file-command file)
+  "Read FILE, a Scheme source file, and return either a <command> object based
+on the 'define-command' top-level form found therein, or #f if FILE does not
+contain a 'define-command' form."
+  (define command-name
+    (match (filter (negate string-null?)
+                   (string-split file #\/))
+      ((_ ... "guix" (or "scripts" "extensions") name)
+       (list (file-sans-extension name)))
+      ((_ ... "guix" (or "scripts" "extensions") first second)
+       (list first (file-sans-extension second)))))
+
+  ;; The strategy here is to parse FILE.  This is much cheaper than a
+  ;; technique based on run-time introspection where we'd load FILE and all
+  ;; the modules it depends on.
+  (call-with-input-file file
+    (lambda (port)
+      (let loop ()
+        (match (read port)
+          (('define-command _ ('synopsis synopsis)
+             _ ...)
+           (command command-name synopsis 'main))
+          (('define-command _
+             ('category category) ('synopsis synopsis)
+             _ ...)
+           (command command-name synopsis category))
+          ((? eof-object?)
+           #f)
+          (_
+           (loop)))))))
+
+(define* (command-files #:optional directory)
   "Return the list of source files that define Guix sub-commands."
-  (define directory
-    (and=> (search-path %load-path "guix.scm")
-           (compose (cut string-append <> "/guix/scripts")
-                    dirname)))
+  (define directory*
+    (or directory
+        (and=> (search-path %load-path "guix.scm")
+               (compose (cut string-append <> "/guix/scripts")
+                        dirname))))
 
   (define dot-scm?
     (cut string-suffix? ".scm" <>))
 
-  (if directory
-      (scandir directory dot-scm?)
+  (if directory*
+      (map (cut string-append directory* "/" <>)
+           (scandir directory* dot-scm?))
       '()))
 
+(define (extension-directories)
+  "Return the list of directories containing Guix extensions."
+  (filter file-exists?
+          (parse-path
+           (getenv "GUIX_EXTENSIONS_PATH"))))
+
 (define (commands)
-  "Return the list of Guix command names."
-  (map (compose (cut string-drop-right <> 4)
-                basename)
-       (command-files)))
+  "Return the list of commands, alphabetically sorted."
+  (filter-map source-file-command
+              (append (command-files)
+                      (append-map command-files
+                                  (extension-directories)))))
 
 (define (show-guix-help)
   (define (internal? command)
     (member command '("substitute" "authenticate" "offload"
                       "perform-download")))
 
+  (define (display-commands commands)
+    (let* ((names     (map (lambda (command)
+                             (string-join (command-name command)))
+                           commands))
+           (max-width (reduce max 0 (map string-length names))))
+      (for-each (lambda (name command)
+                  (format #t "    ~a  ~a~%"
+                          (string-pad-right name max-width)
+                          (G_ (command-synopsis command))))
+                names
+                commands)))
+
+  (define (category-predicate category)
+    (lambda (command)
+      (eq? category (command-category command))))
+
   (format #t (G_ "Usage: guix COMMAND ARGS...
 Run COMMAND with ARGS.\n"))
   (newline)
   (format #t (G_ "COMMAND must be one of the sub-commands listed below:\n"))
-  (newline)
-  ;; TODO: Display a synopsis of each command.
-  (format #t "~{   ~a~%~}" (sort (remove internal? (commands))
-                                 string<?))
+
+  (let ((commands   (commands))
+        (categories (module-ref (resolve-interface '(guix scripts))
+                                '%command-categories)))
+    (for-each (match-lambda
+                (('internal . _)
+                 #t)                              ;hide internal commands
+                ((category . synopsis)
+                 (let ((relevant-commands (filter (category-predicate category)
+                                                  commands)))
+                   ;; Only print categories that contain commands.
+                   (match relevant-commands
+                     ((one . more)
+                      (format #t "~%  ~a~%" (G_ synopsis))
+                      (display-commands relevant-commands))
+                     (_ #f)))))
+              categories))
   (show-bug-report-information))
 
 (define (run-guix-command command . args)
@@ -2030,10 +2127,21 @@ found."
     (catch 'misc-error
       (lambda ()
         (resolve-interface `(guix scripts ,command)))
-      (lambda -
-        (format (current-error-port)
-                (G_ "guix: ~a: command not found~%") command)
-        (show-guix-usage))))
+      (lambda _
+        ;; Check if there is a matching extension.
+        (catch 'misc-error
+          (lambda ()
+            (match (search-path (extension-directories)
+                                (format #f "~a.scm" command))
+              (#f
+               (throw 'misc-error))
+              (file
+                (load file)
+                (resolve-interface `(guix extensions ,command)))))
+          (lambda _
+            (format (current-error-port)
+                    (G_ "guix: ~a: command not found~%") command)
+            (show-guix-usage))))))
 
   (let ((command-main (module-ref module
                                   (symbol-append 'guix- command))))
@@ -2065,7 +2173,7 @@ and signal handling have already been set up."
              (G_ "guix: missing command name~%"))
      (show-guix-usage))
     ((or ("-h") ("--help"))
-     (show-guix-help))
+     (leave-on-EPIPE (show-guix-help)))
     ((or ("-V") ("--version"))
      (show-version-and-exit "guix"))
     (((? option? o) args ...)
@@ -2076,7 +2184,7 @@ and signal handling have already been set up."
      (apply run-guix-command (string->symbol command)
             '("--help")))
     (("help" args ...)
-     (show-guix-help))
+     (leave-on-EPIPE (show-guix-help)))
     ((command args ...)
      (apply run-guix-command
             (string->symbol command)
diff --git a/guix/upstream.scm b/guix/upstream.scm
index 6584d5e4c4..accd8967d8 100644
--- a/guix/upstream.scm
+++ b/guix/upstream.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2015 Alex Kost <alezost@gmail.com>
 ;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net>
 ;;;
@@ -31,8 +31,8 @@
   #:use-module (guix base32)
   #:use-module (guix gexp)
   #:use-module (guix store)
-  #:use-module ((guix derivations)
-                #:select (built-derivations derivation->output-path))
+  #:use-module ((guix derivations) #:select (built-derivations derivation->output-path))
+  #:autoload   (gcrypt hash) (port-sha256)
   #:use-module (guix monads)
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-9)
@@ -248,7 +248,11 @@ correspond to the same version."
                                        '()
                                        (importer-modules))))
 
-(define (lookup-updater package updaters)
+;; Tests need to mock this variable so mark it as "non-declarative".
+(set! %updaters %updaters)
+
+(define* (lookup-updater package
+                         #:optional (updaters (force %updaters)))
   "Return an updater among UPDATERS that matches PACKAGE, or #f if none of
 them matches."
   (find (match-lambda
@@ -256,7 +260,9 @@ them matches."
            (pred package)))
         updaters))
 
-(define (package-latest-release package updaters)
+(define* (package-latest-release package
+                                 #:optional
+                                 (updaters (force %updaters)))
   "Return an upstream source to update PACKAGE, a <package> object, or #f if
 none of UPDATERS matches PACKAGE.  It is the caller's responsibility to ensure
 that the returned source is newer than the current one."
@@ -265,7 +271,9 @@ that the returned source is newer than the current one."
      ((upstream-updater-latest updater) package))
     (_ #f)))
 
-(define (package-latest-release* package updaters)
+(define* (package-latest-release* package
+                                  #:optional
+                                  (updaters (force %updaters)))
   "Like 'package-latest-release', but ensure that the return source is newer
 than that of PACKAGE."
   (match (package-latest-release package updaters)
@@ -346,6 +354,27 @@ values: 'interactive' (default), 'always', and 'never'."
                         data url)
                #f)))))))
 
+(define-gexp-compiler (upstream-source-compiler (source <upstream-source>)
+                                                system target)
+  "Download SOURCE from its first URL and lower it as a fixed-output
+derivation that would fetch it."
+  (mlet* %store-monad ((url -> (first (upstream-source-urls source)))
+                       (signature
+                        -> (and=> (upstream-source-signature-urls source)
+                                  first))
+                       (tarball ((store-lift download-tarball) url signature)))
+    (unless tarball
+      (raise (formatted-message (G_ "failed to fetch source from '~a'")
+                                url)))
+
+    ;; Instead of returning TARBALL, return a fixed-output derivation that
+    ;; would be able to re-download it.  In practice, since TARBALL is already
+    ;; in the store, no extra download will happen, but having the derivation
+    ;; in store improves provenance tracking.
+    (let ((hash (call-with-input-file tarball port-sha256)))
+      (url-fetch url 'sha256 hash (store-path-package-name tarball)
+                 #:system system))))
+
 (define (find2 pred lst1 lst2)
   "Like 'find', but operate on items from both LST1 and LST2.  Return two
 values: the item from LST1 and the item from LST2 that match PRED."
@@ -402,7 +431,8 @@ SOURCE, an <upstream-source>."
   ;; Mapping of origin methods to source update procedures.
   `((,url-fetch . ,package-update/url-fetch)))
 
-(define* (package-update store package updaters
+(define* (package-update store package
+                         #:optional (updaters (force %updaters))
                          #:key (key-download 'interactive))
   "Return the new version, the file name of the new version tarball, and input
 changes for PACKAGE; return #f (three values) when PACKAGE is up-to-date.
diff --git a/guix/utils.scm b/guix/utils.scm
index 436c5cd093..f8b05e7e80 100644
--- a/guix/utils.scm
+++ b/guix/utils.scm
@@ -7,6 +7,7 @@
 ;;; Copyright © 2015 David Thompson <davet@gnu.org>
 ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
 ;;; Copyright © 2018, 2020 Marius Bakke <marius@gnu.org>
+;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -77,11 +78,14 @@
             target-arm?
             target-64bit?
             cc-for-target
+            cxx-for-target
+            pkg-config-for-target
 
             version-compare
             version>?
             version>=?
             version-prefix
+            version-major+minor+point
             version-major+minor
             version-major
             guile-version>?
@@ -106,7 +110,6 @@
             edit-expression
 
             filtered-port
-            compressed-port
             decompressed-port
             call-with-decompressed-port
             compressed-output-port
@@ -206,13 +209,14 @@ buffered data is lost."
 (define (lzip-port proc port . args)
   "Return the lzip port produced by calling PROC (a symbol) on PORT and ARGS.
 Raise an error if lzlib support is missing."
-  (let* ((lzlib       (false-if-exception (resolve-interface '(guix lzlib))))
-         (supported?  (and lzlib
-                           ((module-ref lzlib 'lzlib-available?)))))
-    (if supported?
-        (let ((make-port (module-ref lzlib proc)))
-          (values (make-port port) '()))
-        (error "lzip compression not supported" lzlib))))
+  (let ((make-port (module-ref (resolve-interface '(lzlib)) proc)))
+    (make-port port)))
+
+(define (zstd-port proc port . args)
+  "Return the zstd port produced by calling PROC (a symbol) on PORT and ARGS.
+Raise an error if zstd support is missing."
+  (let ((make-port (module-ref (resolve-interface '(zstd)) proc)))
+    (make-port port)))
 
 (define (decompressed-port compression input)
   "Return an input port where INPUT is decompressed according to COMPRESSION,
@@ -224,17 +228,7 @@ a symbol such as 'xz."
     ('gzip         (filtered-port `(,%gzip "-dc") input))
     ('lzip         (values (lzip-port 'make-lzip-input-port input)
                            '()))
-    (_             (error "unsupported compression scheme" compression))))
-
-(define (compressed-port compression input)
-  "Return an input port where INPUT is compressed according to COMPRESSION,
-a symbol such as 'xz."
-  (match compression
-    ((or #f 'none) (values input '()))
-    ('bzip2        (filtered-port `(,%bzip2 "-c") input))
-    ('xz           (filtered-port `(,%xz "-c") input))
-    ('gzip         (filtered-port `(,%gzip "-c") input))
-    ('lzip         (values (lzip-port 'make-lzip-input-port/compressed input)
+    ('zstd         (values (zstd-port 'make-zstd-input-port input)
                            '()))
     (_             (error "unsupported compression scheme" compression))))
 
@@ -295,6 +289,8 @@ program--e.g., '(\"--fast\")."
     ('gzip         (filtered-output-port `(,%gzip "-c" ,@options) output))
     ('lzip         (values (lzip-port 'make-lzip-output-port output)
                            '()))
+    ('zstd         (values (zstd-port 'make-zstd-output-port output)
+                           '()))
     (_             (error "unsupported compression scheme" compression))))
 
 (define* (call-with-compressed-output-port compression port proc
@@ -545,6 +541,16 @@ a character other than '@'."
       (string-append target "-gcc")
       "gcc"))
 
+(define* (cxx-for-target #:optional (target (%current-target-system)))
+  (if target
+      (string-append target "-g++")
+      "g++"))
+
+(define* (pkg-config-for-target #:optional (target (%current-target-system)))
+  (if target
+      (string-append target "-pkg-config")
+      "pkg-config"))
+
 (define version-compare
   (let ((strverscmp
          (let ((sym (or (dynamic-func "strverscmp" (dynamic-link))
@@ -564,6 +570,15 @@ or '= when they denote equal versions."
 For example, (version-prefix \"2.1.47.4.23\" 3) returns \"2.1.47\""
   (string-join (take (string-split version-string #\.) num-parts) "."))
 
+(define (version-major+minor+point version-string)
+  "Return \"major>.<minor>.<point>\", where major, minor and point are the
+major, minor and point version numbers from the version-string.  For example,
+(version-major+minor+point \"6.4.5.2\") returns \"6.4.5\" or
+(version-major+minor+point \"1.19.2-2581-324ca14c3003\") returns \"1.19.2\"."
+  (let* ((3-dot (version-prefix version-string 3))
+         (index (string-index 3-dot #\-)))
+    (or (false-if-exception (substring 3-dot 0 index))
+        3-dot)))
 
 (define (version-major+minor version-string)
   "Return \"<major>.<minor>\", where major and minor are the major and
diff --git a/guix/zlib.scm b/guix/zlib.scm
deleted file mode 100644
index 3bd0ad86c9..0000000000
--- a/guix/zlib.scm
+++ /dev/null
@@ -1,241 +0,0 @@
-;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2016, 2017 Ludovic Courtès <ludo@gnu.org>
-;;;
-;;; This file is part of GNU Guix.
-;;;
-;;; GNU Guix is free software; you can redistribute it and/or modify it
-;;; under the terms of the GNU General Public License as published by
-;;; the Free Software Foundation; either version 3 of the License, or (at
-;;; your option) any later version.
-;;;
-;;; GNU Guix is distributed in the hope that it will be useful, but
-;;; WITHOUT ANY WARRANTY; without even the implied warranty of
-;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-;;; GNU General Public License for more details.
-;;;
-;;; You should have received a copy of the GNU General Public License
-;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
-
-(define-module (guix zlib)
-  #:use-module (rnrs bytevectors)
-  #:use-module (ice-9 binary-ports)
-  #:use-module (ice-9 match)
-  #:use-module (system foreign)
-  #:use-module (guix config)
-  #:export (zlib-available?
-            make-gzip-input-port
-            make-gzip-output-port
-            call-with-gzip-input-port
-            call-with-gzip-output-port
-            %default-buffer-size
-            %default-compression-level))
-
-;;; Commentary:
-;;;
-;;; Bindings to the gzip-related part of zlib's API.  The main limitation of
-;;; this API is that it requires a file descriptor as the source or sink.
-;;;
-;;; Code:
-
-(define %zlib
-  ;; File name of zlib's shared library.  When updating via 'guix pull',
-  ;; '%libz' might be undefined so protect against it.
-  (delay (dynamic-link (if (defined? '%libz)
-                           %libz
-                           "libz"))))
-
-(define (zlib-available?)
-  "Return true if zlib is available, #f otherwise."
-  (false-if-exception (force %zlib)))
-
-(define (zlib-procedure ret name parameters)
-  "Return a procedure corresponding to C function NAME in libz, or #f if
-either zlib or the function could not be found."
-  (match (false-if-exception (dynamic-func name (force %zlib)))
-    ((? pointer? ptr)
-     (pointer->procedure ret ptr parameters))
-    (#f
-     #f)))
-
-(define-wrapped-pointer-type <gzip-file>
-  ;; Scheme counterpart of the 'gzFile' opaque type.
-  gzip-file?
-  pointer->gzip-file
-  gzip-file->pointer
-  (lambda (obj port)
-    (format port "#<gzip-file ~a>"
-            (number->string (object-address obj) 16))))
-
-(define gzerror
-  (let ((proc (zlib-procedure '* "gzerror" '(* *))))
-    (lambda (gzfile)
-      (let* ((errnum* (make-bytevector (sizeof int)))
-             (ptr     (proc (gzip-file->pointer gzfile)
-                            (bytevector->pointer errnum*))))
-        (values (bytevector-sint-ref errnum* 0
-                                     (native-endianness) (sizeof int))
-                (pointer->string ptr))))))
-
-(define gzdopen
-  (let ((proc (zlib-procedure '* "gzdopen" (list int '*))))
-    (lambda (fd mode)
-      "Open file descriptor FD as a gzip stream with the given MODE.  MODE must
-be a string denoting the how FD is to be opened, such as \"r\" for reading or
-\"w9\" for writing data compressed at level 9 to FD.  Calling 'gzclose' also
-closes FD."
-      (let ((result (proc fd (string->pointer mode))))
-        (if (null-pointer? result)
-            (throw 'zlib-error 'gzdopen)
-            (pointer->gzip-file result))))))
-
-(define gzread!
-  (let ((proc (zlib-procedure int "gzread" (list '* '* unsigned-int))))
-    (lambda* (gzfile bv #:optional (start 0) (count (bytevector-length bv)))
-      "Read up to COUNT bytes from GZFILE into BV at offset START.  Return the
-number of uncompressed bytes actually read; it is zero if COUNT is zero or if
-the end-of-stream has been reached."
-      (let ((ret (proc (gzip-file->pointer gzfile)
-                       (bytevector->pointer bv start)
-                       count)))
-        (if (< ret 0)
-            (throw 'zlib-error 'gzread! ret)
-            ret)))))
-
-(define gzwrite
-  (let ((proc (zlib-procedure int "gzwrite" (list '* '* unsigned-int))))
-    (lambda* (gzfile bv #:optional (start 0) (count (bytevector-length bv)))
-      "Write up to COUNT bytes from BV at offset START into GZFILE.  Return
-the number of uncompressed bytes written, a strictly positive integer."
-      (let ((ret (proc (gzip-file->pointer gzfile)
-                       (bytevector->pointer bv start)
-                       count)))
-        (if (<= ret 0)
-            (throw 'zlib-error 'gzwrite ret)
-            ret)))))
-
-(define gzbuffer!
-  (let ((proc (zlib-procedure int "gzbuffer" (list '* unsigned-int))))
-    (lambda (gzfile size)
-      "Change the internal buffer size of GZFILE to SIZE bytes."
-      (let ((ret (proc (gzip-file->pointer gzfile) size)))
-        (unless (zero? ret)
-          (throw 'zlib-error 'gzbuffer! ret))))))
-
-(define gzeof?
-  (let ((proc (zlib-procedure int "gzeof" '(*))))
-    (lambda (gzfile)
-      "Return true if the end-of-file has been reached on GZFILE."
-      (not (zero? (proc (gzip-file->pointer gzfile)))))))
-
-(define gzclose
-  (let ((proc (zlib-procedure int "gzclose" '(*))))
-    (lambda (gzfile)
-      "Close GZFILE."
-      (let ((ret (proc (gzip-file->pointer gzfile))))
-        (unless (zero? ret)
-          (throw 'zlib-error 'gzclose ret (gzerror gzfile)))))))
-
-
-
-;;;
-;;; Port interface.
-;;;
-
-(define %default-buffer-size
-  ;; Default buffer size, as documented in <zlib.h>.
-  8192)
-
-(define %default-compression-level
-  ;; Z_DEFAULT_COMPRESSION.
-  -1)
-
-(define* (make-gzip-input-port port #:key (buffer-size %default-buffer-size))
-  "Return an input port that decompresses data read from PORT, a file port.
-PORT is automatically closed when the resulting port is closed.  BUFFER-SIZE
-is the size in bytes of the internal buffer, 8 KiB by default; using a larger
-buffer increases decompression speed.  An error is thrown if PORT contains
-buffered input, which would be lost (and is lost anyway)."
-  (define gzfile
-    (match (drain-input port)
-      (""                                         ;PORT's buffer is empty
-       ;; 'gzclose' will eventually close the file descriptor beneath PORT.
-       ;; 'close-port' on PORT would get EBADF if 'gzclose' already closed it,
-       ;; so that's no good; revealed ports are no good either because they
-       ;; leak (see <https://bugs.gnu.org/28784>); calling 'close-port' after
-       ;; 'gzclose' doesn't work either because it leads to a race condition
-       ;; (see <https://bugs.gnu.org/29335>).  So we dup and close PORT right
-       ;; away.
-       (gzdopen (dup (fileno port)) "r"))
-      (_
-       ;; This is unrecoverable but it's better than having the buffered input
-       ;; be lost, leading to unclear end-of-file or corrupt-data errors down
-       ;; the path.
-       (throw 'zlib-error 'make-gzip-input-port
-              "port contains buffered input" port))))
-
-  (define (read! bv start count)
-    (gzread! gzfile bv start count))
-
-  (unless (= buffer-size %default-buffer-size)
-    (gzbuffer! gzfile buffer-size))
-
-  (close-port port)                               ;we no longer need it
-  (make-custom-binary-input-port "gzip-input" read! #f #f
-                                 (lambda ()
-                                   (gzclose gzfile))))
-
-(define* (make-gzip-output-port port
-                                #:key
-                                (level %default-compression-level)
-                                (buffer-size %default-buffer-size))
-  "Return an output port that compresses data at the given LEVEL, using PORT,
-a file port, as its sink.  PORT is automatically closed when the resulting
-port is closed."
-  (define gzfile
-    (begin
-      (force-output port)                         ;empty PORT's buffer
-      (gzdopen (dup (fileno port))
-               (string-append "w" (number->string level)))))
-
-  (define (write! bv start count)
-    (gzwrite gzfile bv start count))
-
-  (unless (= buffer-size %default-buffer-size)
-    (gzbuffer! gzfile buffer-size))
-
-  (close-port port)
-  (make-custom-binary-output-port "gzip-output" write! #f #f
-                                  (lambda ()
-                                    (gzclose gzfile))))
-
-(define* (call-with-gzip-input-port port proc
-                                    #:key (buffer-size %default-buffer-size))
-  "Call PROC with a port that wraps PORT and decompresses data read from it.
-PORT is closed upon completion.  The gzip internal buffer size is set to
-BUFFER-SIZE bytes."
-  (let ((gzip (make-gzip-input-port port #:buffer-size buffer-size)))
-    (dynamic-wind
-      (const #t)
-      (lambda ()
-        (proc gzip))
-      (lambda ()
-        (close-port gzip)))))
-
-(define* (call-with-gzip-output-port port proc
-                                     #:key
-                                     (level %default-compression-level)
-                                     (buffer-size %default-buffer-size))
-  "Call PROC with an output port that wraps PORT and compresses data.  PORT is
-close upon completion.  The gzip internal buffer size is set to BUFFER-SIZE
-bytes."
-  (let ((gzip (make-gzip-output-port port
-                                     #:level level
-                                     #:buffer-size buffer-size)))
-    (dynamic-wind
-      (const #t)
-      (lambda ()
-        (proc gzip))
-      (lambda ()
-        (close-port gzip)))))
-
-;;; zlib.scm ends here
diff --git a/m4/guix.m4 b/m4/guix.m4
index cce03045db..f8eb5aaf51 100644
--- a/m4/guix.m4
+++ b/m4/guix.m4
@@ -26,7 +26,7 @@ AC_DEFUN([GUIX_SYSTEM_TYPE], [
   AC_REQUIRE([AC_CANONICAL_HOST])
   AC_PATH_PROG([SED], [sed])
 
-  AC_ARG_WITH(system, AC_HELP_STRING([--with-system=SYSTEM],
+  AC_ARG_WITH(system, AS_HELP_STRING([--with-system=SYSTEM],
     [Platform identifier (e.g., `i686-linux').]),
     [guix_system="$withval"],
     [case "$host_cpu" in
@@ -78,7 +78,7 @@ dnl Assert that this is a system to which the distro is ported.
 AC_DEFUN([GUIX_ASSERT_SUPPORTED_SYSTEM], [
   AC_REQUIRE([GUIX_SYSTEM_TYPE])
 
-  AC_ARG_WITH([courage], [AC_HELP_STRING([--with-courage],
+  AC_ARG_WITH([courage], [AS_HELP_STRING([--with-courage],
     [Assert that even if this platform is unsupported, you will be
 courageous and port the GNU System distribution to it (see
 "GNU Distribution" in the manual.)])],
@@ -118,26 +118,6 @@ AC_DEFUN([GUIX_ASSERT_GUILE_FEATURES], [
   done
 ])
 
-dnl GUIX_ASSERT_SYNTAX_OBJECT_EQUAL
-dnl
-dnl Guile 2.2.1 was a brown-paper-bag release where 'equal?' wouldn't work
-dnl for syntax objects, which broke gexps.  Unfortunately Fedora 25 provides it.
-dnl Reject it.
-AC_DEFUN([GUIX_ASSERT_SYNTAX_OBJECT_EQUAL], [
-  AC_CACHE_CHECK([whether 'equal?' works for syntax objects],
-    [ac_cv_guix_syntax_object_equal],
-    [if "$GUILE" -c '(exit (equal? (syntax x) (syntax x)))'
-     then
-       ac_cv_guix_syntax_object_equal=yes
-     else
-       ac_cv_guix_syntax_object_equal=no
-     fi])
-  if test "x$ac_cv_guix_syntax_object_equal" != xyes; then
-    # This bug was present in Guile 2.2.1 only.
-    AC_MSG_ERROR(['equal?' does not work for syntax object; upgrade to Guile 2.2.2 or later.])
-  fi
-])
-
 dnl GUIX_CHECK_GUILE_SSH
 dnl
 dnl Check whether a recent-enough Guile-SSH is available.
@@ -181,14 +161,23 @@ dnl GUIX_CHECK_GUILE_JSON
 dnl
 dnl Check whether a recent-enough Guile-JSON is available.
 AC_DEFUN([GUIX_CHECK_GUILE_JSON], [
-  dnl Check whether we're using Guile-JSON 3.x, which uses a JSON-to-Scheme
-  dnl mapping different from that of earlier versions.
+  dnl Check whether we're using Guile-JSON 4.3+, which provides
+  dnl 'define-json-mapping'.
   AC_CACHE_CHECK([whether Guile-JSON is available and recent enough],
     [guix_cv_have_recent_guile_json],
     [GUILE_CHECK([retval],
-      [(use-modules (json) (ice-9 match))
-       (match (json-string->scm \"[[ { \\\"a\\\": 42 } ]]\")
-         (#((("a" . 42))) #t))])
+      [(use-modules (json))
+
+       (define-json-mapping <frob> make-frob
+         frob?
+	 json->frob
+	 (a frob-a)
+	 (b frob-b \"bee\"))
+
+       (exit
+        (equal? (json->frob
+                 (open-input-string \"{ \\\"a\\\": 1, \\\"bee\\\": 2 }\"))
+                (make-frob 1 2)))])
      if test "$retval" = 0; then
        guix_cv_have_recent_guile_json="yes"
      else
@@ -215,6 +204,28 @@ AC_DEFUN([GUIX_CHECK_GUILE_GCRYPT], [
      fi])
 ])
 
+dnl GUIX_CHECK_GUILE_GIT
+dnl
+dnl Check whether a recent-enough Guile-Git is available.
+AC_DEFUN([GUIX_CHECK_GUILE_GIT], [
+  dnl Check whether we're using Guile-Git 0.3.0 or later.  0.3.0
+  dnl introduced SSH authentication support and more.
+  AC_CACHE_CHECK([whether Guile-Git is available and recent enough],
+    [guix_cv_have_recent_guile_git],
+    [GUILE_CHECK([retval],
+      [(use-modules (git) (git auth) (git submodule))
+       (let ((auth (%make-auth-ssh-agent)))
+         repository-close!
+	 object-lookup-prefix
+         (make-clone-options
+          #:fetch-options (make-fetch-options auth)))])
+     if test "$retval" = 0; then
+       guix_cv_have_recent_guile_git="yes"
+     else
+       guix_cv_have_recent_guile_git="no"
+     fi])
+])
+
 dnl GUIX_TEST_ROOT_DIRECTORY
 AC_DEFUN([GUIX_TEST_ROOT_DIRECTORY], [
   AC_CACHE_CHECK([for unit test root directory],
@@ -342,32 +353,6 @@ AC_DEFUN([GUIX_LIBGCRYPT_LIBDIR], [
   $1="$guix_cv_libgcrypt_libdir"
 ])
 
-dnl GUIX_LIBZ_LIBDIR VAR
-dnl
-dnl Attempt to determine libz's LIBDIR; store the result in VAR.
-AC_DEFUN([GUIX_LIBZ_LIBDIR], [
-  AC_REQUIRE([PKG_PROG_PKG_CONFIG])
-  AC_CACHE_CHECK([zlib's library directory],
-    [guix_cv_libz_libdir],
-    [guix_cv_libz_libdir="`$PKG_CONFIG zlib --variable=libdir 2> /dev/null`"])
-  $1="$guix_cv_libz_libdir"
-])
-
-dnl GUIX_LIBLZ_FILE_NAME VAR
-dnl
-dnl Attempt to determine liblz's absolute file name; store the result in VAR.
-AC_DEFUN([GUIX_LIBLZ_FILE_NAME], [
-  AC_REQUIRE([PKG_PROG_PKG_CONFIG])
-  AC_CACHE_CHECK([lzlib's file name],
-    [guix_cv_liblz_libdir],
-    [old_LIBS="$LIBS"
-     LIBS="-llz"
-     AC_LINK_IFELSE([AC_LANG_SOURCE([int main () { return LZ_decompress_open(); }])],
-       [guix_cv_liblz_libdir="`ldd conftest$EXEEXT | grep liblz | sed '-es/.*=> \(.*\) .*$/\1/g'`"])
-     LIBS="$old_LIBS"])
-  $1="$guix_cv_liblz_libdir"
-])
-
 dnl GUIX_CURRENT_LOCALSTATEDIR
 dnl
 dnl Determine the localstatedir of an existing Guix installation and set
diff --git a/nix/libstore/build.cc b/nix/libstore/build.cc
index 29266f1dd6..20d83fea4a 100644
--- a/nix/libstore/build.cc
+++ b/nix/libstore/build.cc
@@ -80,12 +80,8 @@ namespace nix {
 using std::map;
 
 
-static string pathNullDevice = "/dev/null";
-
-
 /* Forward definition. */
 class Worker;
-struct HookInstance;
 
 
 /* A pointer to a goal. */
@@ -265,7 +261,8 @@ public:
 
     LocalStore & store;
 
-    std::shared_ptr<HookInstance> hook;
+    std::shared_ptr<Agent> hook;
+    std::shared_ptr<Agent> substituter;
 
     Worker(LocalStore & store);
     ~Worker();
@@ -397,33 +394,6 @@ void Goal::trace(const format & f)
 //////////////////////////////////////////////////////////////////////
 
 
-/* Common initialisation performed in child processes. */
-static void commonChildInit(Pipe & logPipe)
-{
-    /* Put the child in a separate session (and thus a separate
-       process group) so that it has no controlling terminal (meaning
-       that e.g. ssh cannot open /dev/tty) and it doesn't receive
-       terminal signals. */
-    if (setsid() == -1)
-        throw SysError(format("creating a new session"));
-
-    /* Dup the write side of the logger pipe into stderr. */
-    if (dup2(logPipe.writeSide, STDERR_FILENO) == -1)
-        throw SysError("cannot pipe standard error into log file");
-
-    /* Dup stderr to stdout. */
-    if (dup2(STDERR_FILENO, STDOUT_FILENO) == -1)
-        throw SysError("cannot dup stderr into stdout");
-
-    /* Reroute stdin to /dev/null. */
-    int fdDevNull = open(pathNullDevice.c_str(), O_RDWR);
-    if (fdDevNull == -1)
-        throw SysError(format("cannot open `%1%'") % pathNullDevice);
-    if (dup2(fdDevNull, STDIN_FILENO) == -1)
-        throw SysError("cannot dup null device into stdin");
-    close(fdDevNull);
-}
-
 /* Restore default handling of SIGPIPE, otherwise some programs will
    randomly say "Broken pipe". */
 static void restoreSIGPIPE()
@@ -586,87 +556,6 @@ void UserLock::kill()
     killUser(uid);
 }
 
-
-//////////////////////////////////////////////////////////////////////
-
-
-struct HookInstance
-{
-    /* Pipes for talking to the build hook. */
-    Pipe toHook;
-
-    /* Pipe for the hook's standard output/error. */
-    Pipe fromHook;
-
-    /* Pipe for the builder's standard output/error. */
-    Pipe builderOut;
-
-    /* The process ID of the hook. */
-    Pid pid;
-
-    HookInstance();
-
-    ~HookInstance();
-};
-
-
-HookInstance::HookInstance()
-{
-    debug("starting build hook");
-
-    const Path &buildHook = settings.guixProgram;
-
-    /* Create a pipe to get the output of the child. */
-    fromHook.create();
-
-    /* Create the communication pipes. */
-    toHook.create();
-
-    /* Create a pipe to get the output of the builder. */
-    builderOut.create();
-
-    /* Fork the hook. */
-    pid = startProcess([&]() {
-
-        commonChildInit(fromHook);
-
-        if (chdir("/") == -1) throw SysError("changing into `/");
-
-        /* Dup the communication pipes. */
-        if (dup2(toHook.readSide, STDIN_FILENO) == -1)
-            throw SysError("dupping to-hook read side");
-
-        /* Use fd 4 for the builder's stdout/stderr. */
-        if (dup2(builderOut.writeSide, 4) == -1)
-            throw SysError("dupping builder's stdout/stderr");
-
-        execl(buildHook.c_str(), buildHook.c_str(), "offload",
-	    settings.thisSystem.c_str(),
-            (format("%1%") % settings.maxSilentTime).str().c_str(),
-            (format("%1%") % settings.printBuildTrace).str().c_str(),
-            (format("%1%") % settings.buildTimeout).str().c_str(),
-            NULL);
-
-        throw SysError(format("executing `%1% offload'") % buildHook);
-    });
-
-    pid.setSeparatePG(true);
-    fromHook.writeSide.close();
-    toHook.readSide.close();
-}
-
-
-HookInstance::~HookInstance()
-{
-    try {
-        toHook.writeSide.close();
-        pid.kill(true);
-    } catch (...) {
-        ignoreException();
-    }
-}
-
-
 //////////////////////////////////////////////////////////////////////
 
 
@@ -760,7 +649,7 @@ private:
     Pipe builderOut;
 
     /* The build hook. */
-    std::shared_ptr<HookInstance> hook;
+    std::shared_ptr<Agent> hook;
 
     /* Whether we're currently doing a chroot build. */
     bool useChroot;
@@ -1440,7 +1329,7 @@ void DerivationGoal::buildDone()
     /* Close the read side of the logger pipe. */
     if (hook) {
         hook->builderOut.readSide.close();
-        hook->fromHook.readSide.close();
+        hook->fromAgent.readSide.close();
     }
     else builderOut.readSide.close();
 
@@ -1497,11 +1386,6 @@ void DerivationGoal::buildDone()
            being valid. */
         registerOutputs();
 
-        if (buildMode == bmCheck) {
-            done(BuildResult::Built);
-            return;
-        }
-
         /* Delete unused redirected outputs (when doing hash rewriting). */
         foreach (RedirectedOutputs::iterator, i, redirectedOutputs)
             if (pathExists(i->second)) deletePath(i->second);
@@ -1587,8 +1471,17 @@ HookReply DerivationGoal::tryBuildHook()
 {
     if (!settings.useBuildHook) return rpDecline;
 
-    if (!worker.hook)
-        worker.hook = std::shared_ptr<HookInstance>(new HookInstance);
+    if (!worker.hook) {
+	Strings args = {
+	    "offload",
+	    settings.thisSystem.c_str(),
+            (format("%1%") % settings.maxSilentTime).str().c_str(),
+            (format("%1%") % settings.printBuildTrace).str().c_str(),
+            (format("%1%") % settings.buildTimeout).str().c_str()
+	};
+
+        worker.hook = std::make_shared<Agent>(settings.guixProgram, args);
+    }
 
     /* Tell the hook about system features (beyond the system type)
        required from the build machine.  (The hook could parse the
@@ -1597,7 +1490,7 @@ HookReply DerivationGoal::tryBuildHook()
     foreach (Strings::iterator, i, features) checkStoreName(*i); /* !!! abuse */
 
     /* Send the request to the hook. */
-    writeLine(worker.hook->toHook.writeSide, (format("%1% %2% %3% %4%")
+    writeLine(worker.hook->toAgent.writeSide, (format("%1% %2% %3% %4%")
         % (worker.getNrLocalBuilds() < settings.maxBuildJobs ? "1" : "0")
         % drv.platform % drvPath % concatStringsSep(",", features)).str());
 
@@ -1605,7 +1498,7 @@ HookReply DerivationGoal::tryBuildHook()
        whether the hook wishes to perform the build. */
     string reply;
     while (true) {
-        string s = readLine(worker.hook->fromHook.readSide);
+        string s = readLine(worker.hook->fromAgent.readSide);
         if (string(s, 0, 2) == "# ") {
             reply = string(s, 2);
             break;
@@ -1637,21 +1530,21 @@ HookReply DerivationGoal::tryBuildHook()
 
     string s;
     foreach (PathSet::iterator, i, allInputs) { s += *i; s += ' '; }
-    writeLine(hook->toHook.writeSide, s);
+    writeLine(hook->toAgent.writeSide, s);
 
     /* Tell the hooks the missing outputs that have to be copied back
        from the remote system. */
     s = "";
     foreach (PathSet::iterator, i, missingPaths) { s += *i; s += ' '; }
-    writeLine(hook->toHook.writeSide, s);
+    writeLine(hook->toAgent.writeSide, s);
 
-    hook->toHook.writeSide.close();
+    hook->toAgent.writeSide.close();
 
     /* Create the log file and pipe. */
     Path logFile = openLogFile();
 
     set<int> fds;
-    fds.insert(hook->fromHook.readSide);
+    fds.insert(hook->fromAgent.readSide);
     fds.insert(hook->builderOut.readSide);
     worker.childStarted(shared_from_this(), hook->pid, fds, false, true);
 
@@ -1745,12 +1638,6 @@ void DerivationGoal::startBuilder()
        getdents returns the inode of the mount point). */
     env["PWD"] = tmpDirInSandbox;
 
-    /* Compatibility hack with Nix <= 0.7: if this is a fixed-output
-       derivation, tell the builder, so that for instance `fetchurl'
-       can skip checking the output.  On older Nixes, this environment
-       variable won't be set, so `fetchurl' will do the check. */
-    if (fixedOutput) env["NIX_OUTPUT_CHECKED"] = "1";
-
     /* *Only* if this is a fixed-output derivation, propagate the
        values of the environment variables specified in the
        `impureEnvVars' attribute to the builder.  This allows for
@@ -2048,6 +1935,15 @@ void DerivationGoal::startBuilder()
 
 }
 
+/* Return true if the operating system kernel part of SYSTEM1 and SYSTEM2 (the
+   bit that comes after the hyphen in system types such as "i686-linux") is
+   the same.  */
+static bool sameOperatingSystemKernel(const std::string& system1, const std::string& system2)
+{
+    auto os1 = system1.substr(system1.find("-"));
+    auto os2 = system2.substr(system2.find("-"));
+    return os1 == os2;
+}
 
 void DerivationGoal::runChild()
 {
@@ -2310,9 +2206,20 @@ void DerivationGoal::runChild()
         foreach (Strings::iterator, i, drv.args)
             args.push_back(rewriteHashes(*i, rewritesToTmp));
 
-        execve(drv.builder.c_str(), stringsToCharPtrs(args).data(), stringsToCharPtrs(envStrs).data());
-
-	int error = errno;
+	/* If DRV targets the same operating system kernel, try to execute it:
+	   there might be binfmt_misc set up for user-land emulation of other
+	   architectures.  However, if it targets a different operating
+	   system--e.g., "i586-gnu" vs. "x86_64-linux"--do not try executing
+	   it: the ELF file for that OS is likely indistinguishable from a
+	   native ELF binary and it would just crash at run time.  */
+	int error;
+	if (sameOperatingSystemKernel(drv.platform, settings.thisSystem)) {
+	    execve(drv.builder.c_str(), stringsToCharPtrs(args).data(),
+		   stringsToCharPtrs(envStrs).data());
+	    error = errno;
+	} else {
+	    error = ENOEXEC;
+	}
 
 	/* Right platform?  Check this after we've tried 'execve' to allow for
 	   transparent emulation of different platforms with binfmt_misc
@@ -2567,8 +2474,6 @@ void DerivationGoal::registerOutputs()
         infos.push_back(info);
     }
 
-    if (buildMode == bmCheck) return;
-
     /* Compare the result with the previous round, and report which
        path is different, if any.*/
     if (curRound > 1 && prevInfos != infos) {
@@ -2785,7 +2690,7 @@ void DerivationGoal::handleChildOutput(int fd, const string & data)
             writeFull(fdLogFile, data);
     }
 
-    if (hook && fd == hook->fromHook.readSide)
+    if (hook && fd == hook->fromAgent.readSide)
         writeToStderr(prefix + data);
 }
 
@@ -2869,15 +2774,6 @@ private:
     /* Path info returned by the substituter's query info operation. */
     SubstitutablePathInfo info;
 
-    /* Pipe for the substituter's standard output. */
-    Pipe outPipe;
-
-    /* Pipe for the substituter's standard error. */
-    Pipe logPipe;
-
-    /* The process ID of the builder. */
-    Pid pid;
-
     /* Lock on the store path. */
     std::shared_ptr<PathLocks> outputLock;
 
@@ -2891,6 +2787,13 @@ private:
     typedef void (SubstitutionGoal::*GoalState)();
     GoalState state;
 
+    /* The substituter. */
+    std::shared_ptr<Agent> substituter;
+
+    /* Either the empty string, or the status phrase returned by the
+       substituter.  */
+    string status;
+
     void tryNext();
 
 public:
@@ -2936,7 +2839,7 @@ SubstitutionGoal::SubstitutionGoal(const Path & storePath, Worker & worker, bool
 
 SubstitutionGoal::~SubstitutionGoal()
 {
-    if (pid != -1) worker.childTerminated(pid);
+    if (substituter) worker.childTerminated(substituter->pid);
 }
 
 
@@ -2944,9 +2847,9 @@ void SubstitutionGoal::timedOut()
 {
     if (settings.printBuildTrace)
         printMsg(lvlError, format("@ substituter-failed %1% timeout") % storePath);
-    if (pid != -1) {
-        pid_t savedPid = pid;
-        pid.kill();
+    if (substituter) {
+        pid_t savedPid = substituter->pid;
+	substituter.reset();
         worker.childTerminated(savedPid);
     }
     amDone(ecFailed);
@@ -3073,44 +2976,34 @@ void SubstitutionGoal::tryToRun()
 
     printMsg(lvlInfo, format("fetching path `%1%'...") % storePath);
 
-    outPipe.create();
-    logPipe.create();
-
     destPath = repair ? storePath + ".tmp" : storePath;
 
     /* Remove the (stale) output path if it exists. */
     if (pathExists(destPath))
         deletePath(destPath);
 
-    worker.store.setSubstituterEnv();
-
-    /* Fill in the arguments. */
-    Strings args;
-    args.push_back("guix");
-    args.push_back("substitute");
-    args.push_back("--substitute");
-    args.push_back(storePath);
-    args.push_back(destPath);
-
-    /* Fork the substitute program. */
-    pid = startProcess([&]() {
-
-        commonChildInit(logPipe);
-
-        if (dup2(outPipe.writeSide, STDOUT_FILENO) == -1)
-            throw SysError("cannot dup output pipe into stdout");
+    if (!worker.substituter) {
+	const Strings args = { "substitute", "--substitute" };
+	const std::map<string, string> env = {
+	    { "_NIX_OPTIONS",
+	      settings.pack() + "deduplicate="
+	      + (settings.autoOptimiseStore ? "yes" : "no")
+	    }
+	};
+	worker.substituter = std::make_shared<Agent>(settings.guixProgram, args, env);
+    }
 
-        execv(settings.guixProgram.c_str(), stringsToCharPtrs(args).data());
+    /* Borrow the worker's substituter.  */
+    if (!substituter) substituter.swap(worker.substituter);
 
-        throw SysError(format("executing `%1% substitute'") % settings.guixProgram);
-    });
+    /* Send the request to the substituter.  */
+    writeLine(substituter->toAgent.writeSide,
+	      (format("substitute %1% %2%") % storePath % destPath).str());
 
-    pid.setSeparatePG(true);
-    pid.setKillSignal(SIGTERM);
-    outPipe.writeSide.close();
-    logPipe.writeSide.close();
-    worker.childStarted(shared_from_this(),
-        pid, singleton<set<int> >(logPipe.readSide), true, true);
+    set<int> fds;
+    fds.insert(substituter->fromAgent.readSide);
+    fds.insert(substituter->builderOut.readSide);
+    worker.childStarted(shared_from_this(), substituter->pid, fds, true, true);
 
     state = &SubstitutionGoal::finished;
 
@@ -3125,54 +3018,62 @@ void SubstitutionGoal::finished()
 {
     trace("substitute finished");
 
-    /* Since we got an EOF on the logger pipe, the substitute is
-       presumed to have terminated.  */
-    pid_t savedPid = pid;
-    int status = pid.wait(true);
+    /* Remove the 'guix substitute' process from the list of children.  */
+    worker.childTerminated(substituter->pid);
 
-    /* So the child is gone now. */
-    worker.childTerminated(savedPid);
-
-    /* Close the read side of the logger pipe. */
-    logPipe.readSide.close();
-
-    /* Get the hash info from stdout. */
-    string dummy = readLine(outPipe.readSide);
-    string expectedHashStr = statusOk(status) ? readLine(outPipe.readSide) : "";
-    outPipe.readSide.close();
+    /* If max-jobs > 1, the worker might have created a new 'substitute'
+       process in the meantime.  If that is the case, terminate ours;
+       otherwise, give it back to the worker.  */
+    if (worker.substituter) {
+	substituter.reset ();
+    } else {
+	worker.substituter.swap(substituter);
+    }
 
     /* Check the exit status and the build result. */
     HashResult hash;
     try {
-
-        if (!statusOk(status))
-            throw SubstError(format("fetching path `%1%' %2%")
-                % storePath % statusToString(status));
-
-        if (!pathExists(destPath))
-            throw SubstError(format("substitute did not produce path `%1%'") % destPath);
-
-        hash = hashPath(htSHA256, destPath);
-
-        /* Verify the expected hash we got from the substituer. */
-        if (expectedHashStr != "") {
-            size_t n = expectedHashStr.find(':');
-            if (n == string::npos)
-                throw Error(format("bad hash from substituter: %1%") % expectedHashStr);
-            HashType hashType = parseHashType(string(expectedHashStr, 0, n));
-            if (hashType == htUnknown)
-                throw Error(format("unknown hash algorithm in `%1%'") % expectedHashStr);
-            Hash expectedHash = parseHash16or32(hashType, string(expectedHashStr, n + 1));
-            Hash actualHash = hashType == htSHA256 ? hash.first : hashPath(hashType, destPath).first;
-            if (expectedHash != actualHash) {
-		if (settings.printBuildTrace)
-		    printMsg(lvlError, format("@ hash-mismatch %1% %2% %3% %4%")
-			     % storePath % "sha256"
-			     % printHash16or32(expectedHash)
-			     % printHash16or32(actualHash));
-                throw SubstError(format("hash mismatch for substituted item `%1%'") % storePath);
+	auto statusList = tokenizeString<vector<string> >(status);
+
+	if (statusList.empty()) {
+            throw SubstError(format("fetching path `%1%' (empty status: '%2%')")
+			     % storePath % status);
+	} else if (statusList[0] == "hash-mismatch") {
+	    if (settings.printBuildTrace) {
+		auto hashType = statusList[1];
+		auto expectedHash = statusList[2];
+		auto actualHash = statusList[3];
+		printMsg(lvlError, format("@ hash-mismatch %1% %2% %3% %4%")
+			 % storePath
+			 % hashType % expectedHash % actualHash);
 	    }
-        }
+	    throw SubstError(format("hash mismatch for substituted item `%1%'") % storePath);
+	} else if (statusList[0] == "success") {
+	    if (!pathExists(destPath))
+		throw SubstError(format("substitute did not produce path `%1%'") % destPath);
+
+	    std::string hashStr = statusList[1];
+	    size_t n = hashStr.find(':');
+	    if (n == string::npos)
+		throw Error(format("bad hash from substituter: %1%") % hashStr);
+
+	    HashType hashType = parseHashType(string(hashStr, 0, n));
+	    switch (hashType) {
+	    case htUnknown:
+		throw Error(format("unknown hash algorithm in `%1%'") % hashStr);
+	    case htSHA256:
+		hash.first = parseHash16or32(hashType, string(hashStr, n + 1));
+		hash.second = std::atoi(statusList[2].c_str());
+		break;
+	    default:
+		/* The database only stores SHA256 hashes, so compute it.  */
+		hash = hashPath(htSHA256, destPath);
+		break;
+	    }
+	}
+	else
+            throw SubstError(format("fetching path `%1%' (status: '%2%')")
+                % storePath % status);
 
     } catch (SubstError & e) {
 
@@ -3189,9 +3090,8 @@ void SubstitutionGoal::finished()
 
     if (repair) replaceValidPath(storePath, destPath);
 
-    canonicalisePathMetaData(storePath, -1);
-
-    worker.store.optimisePath(storePath); // FIXME: combine with hashPath()
+    /* Note: 'guix substitute' takes care of resetting timestamps and of
+       deduplicating 'destPath', so no need to do it here.  */
 
     ValidPathInfo info2;
     info2.path = storePath;
@@ -3218,16 +3118,38 @@ void SubstitutionGoal::finished()
 
 void SubstitutionGoal::handleChildOutput(int fd, const string & data)
 {
-    assert(fd == logPipe.readSide);
-    if (verbosity >= settings.buildVerbosity) writeToStderr(data);
-    /* Don't write substitution output to a log file for now.  We
-       probably should, though. */
+    if (verbosity >= settings.buildVerbosity
+	&& fd == substituter->builderOut.readSide) {
+	writeToStderr(data);
+	/* Don't write substitution output to a log file for now.  We
+	   probably should, though. */
+    }
+
+    if (fd == substituter->fromAgent.readSide) {
+	/* DATA may consist of several lines.  Process them one by one.  */
+	string input = data;
+	while (!input.empty()) {
+	    /* Process up to the first newline.  */
+	    size_t end = input.find_first_of("\n");
+	    string trimmed = (end != string::npos) ? input.substr(0, end) : input;
+
+	    /* Update the goal's state accordingly.  */
+	    if (status == "") {
+		status = trimmed;
+		worker.wakeUp(shared_from_this());
+	    } else {
+		printMsg(lvlError, format("unexpected substituter message '%1%'") % input);
+	    }
+
+	    input = (end != string::npos) ? input.substr(end + 1) : "";
+	}
+    }
 }
 
 
 void SubstitutionGoal::handleEOF(int fd)
 {
-    if (fd == logPipe.readSide) worker.wakeUp(shared_from_this());
+    worker.wakeUp(shared_from_this());
 }
 
 
diff --git a/nix/libstore/local-store.cc b/nix/libstore/local-store.cc
index 7a520925e5..c304e2ddd1 100644
--- a/nix/libstore/local-store.cc
+++ b/nix/libstore/local-store.cc
@@ -21,6 +21,7 @@
 #include <stdio.h>
 #include <time.h>
 #include <grp.h>
+#include <ctype.h>
 
 #if HAVE_UNSHARE && HAVE_STATVFS && HAVE_SYS_MOUNT_H
 #include <sched.h>
@@ -56,7 +57,6 @@ void checkStoreNotSymlink()
 
 
 LocalStore::LocalStore(bool reserveSpace)
-    : didSetSubstituterEnv(false)
 {
     schemaPath = settings.nixDBPath + "/schema";
 
@@ -182,21 +182,6 @@ LocalStore::LocalStore(bool reserveSpace)
 LocalStore::~LocalStore()
 {
     try {
-	if (runningSubstituter) {
-	    RunningSubstituter &i = *runningSubstituter;
-            if (!i.disabled) {
-		i.to.close();
-		i.from.close();
-		i.error.close();
-		if (i.pid != -1)
-		    i.pid.wait(true);
-	    }
-        }
-    } catch (...) {
-        ignoreException();
-    }
-
-    try {
         if (fdTempRoots != -1) {
             fdTempRoots.close();
             unlink(fnTempRoots.c_str());
@@ -795,96 +780,31 @@ Path LocalStore::queryPathFromHashPart(const string & hashPart)
     });
 }
 
-
-void LocalStore::setSubstituterEnv()
-{
-    if (didSetSubstituterEnv) return;
-
-    /* Pass configuration options (including those overridden with
-       --option) to substituters. */
-    setenv("_NIX_OPTIONS", settings.pack().c_str(), 1);
-
-    didSetSubstituterEnv = true;
-}
-
-
-void LocalStore::startSubstituter(RunningSubstituter & run)
-{
-    if (run.disabled || run.pid != -1) return;
-
-    debug(format("starting substituter program `%1% substitute'")
-	  % settings.guixProgram);
-
-    Pipe toPipe, fromPipe, errorPipe;
-
-    toPipe.create();
-    fromPipe.create();
-    errorPipe.create();
-
-    setSubstituterEnv();
-
-    run.pid = startProcess([&]() {
-        if (dup2(toPipe.readSide, STDIN_FILENO) == -1)
-            throw SysError("dupping stdin");
-        if (dup2(fromPipe.writeSide, STDOUT_FILENO) == -1)
-            throw SysError("dupping stdout");
-        if (dup2(errorPipe.writeSide, STDERR_FILENO) == -1)
-            throw SysError("dupping stderr");
-        execl(settings.guixProgram.c_str(), "guix", "substitute", "--query", NULL);
-        throw SysError(format("executing `%1%'") % settings.guixProgram);
-    });
-
-    run.to = toPipe.writeSide.borrow();
-    run.from = run.fromBuf.fd = fromPipe.readSide.borrow();
-    run.error = errorPipe.readSide.borrow();
-
-    toPipe.readSide.close();
-    fromPipe.writeSide.close();
-    errorPipe.writeSide.close();
-
-    /* The substituter may exit right away if it's disabled in any way
-       (e.g. copy-from-other-stores.pl will exit if no other stores
-       are configured). */
-    try {
-        getLineFromSubstituter(run);
-    } catch (EndOfFile & e) {
-        run.to.close();
-        run.from.close();
-        run.error.close();
-        run.disabled = true;
-        if (run.pid.wait(true) != 0) throw;
-    }
-}
-
-
 /* Read a line from the substituter's stdout, while also processing
    its stderr. */
-string LocalStore::getLineFromSubstituter(RunningSubstituter & run)
+string LocalStore::getLineFromSubstituter(Agent & run)
 {
     string res, err;
 
-    /* We might have stdout data left over from the last time. */
-    if (run.fromBuf.hasData()) goto haveData;
-
     while (1) {
         checkInterrupt();
 
         fd_set fds;
         FD_ZERO(&fds);
-        FD_SET(run.from, &fds);
-        FD_SET(run.error, &fds);
+        FD_SET(run.fromAgent.readSide, &fds);
+        FD_SET(run.builderOut.readSide, &fds);
 
         /* Wait for data to appear on the substituter's stdout or
            stderr. */
-        if (select(run.from > run.error ? run.from + 1 : run.error + 1, &fds, 0, 0, 0) == -1) {
+        if (select(std::max(run.fromAgent.readSide, run.builderOut.readSide) + 1, &fds, 0, 0, 0) == -1) {
             if (errno == EINTR) continue;
             throw SysError("waiting for input from the substituter");
         }
 
         /* Completely drain stderr before dealing with stdout. */
-        if (FD_ISSET(run.error, &fds)) {
+        if (FD_ISSET(run.builderOut.readSide, &fds)) {
             char buf[4096];
-            ssize_t n = read(run.error, (unsigned char *) buf, sizeof(buf));
+            ssize_t n = read(run.builderOut.readSide, (unsigned char *) buf, sizeof(buf));
             if (n == -1) {
                 if (errno == EINTR) continue;
                 throw SysError("reading from substituter's stderr");
@@ -902,23 +822,20 @@ string LocalStore::getLineFromSubstituter(RunningSubstituter & run)
         }
 
         /* Read from stdout until we get a newline or the buffer is empty. */
-        else if (run.fromBuf.hasData() || FD_ISSET(run.from, &fds)) {
-        haveData:
-            do {
-                unsigned char c;
-                run.fromBuf(&c, 1);
-                if (c == '\n') {
-                    if (!err.empty()) printMsg(lvlError, "substitute: " + err);
-                    return res;
-                }
-                res += c;
-            } while (run.fromBuf.hasData());
+        else if (FD_ISSET(run.fromAgent.readSide, &fds)) {
+	    unsigned char c;
+	    readFull(run.fromAgent.readSide, (unsigned char *) &c, 1);
+	    if (c == '\n') {
+		if (!err.empty()) printMsg(lvlError, "substitute: " + err);
+		return res;
+	    }
+	    res += c;
         }
     }
 }
 
 
-template<class T> T LocalStore::getIntLineFromSubstituter(RunningSubstituter & run)
+template<class T> T LocalStore::getIntLineFromSubstituter(Agent & run)
 {
     string s = getLineFromSubstituter(run);
     T res;
@@ -933,51 +850,47 @@ PathSet LocalStore::querySubstitutablePaths(const PathSet & paths)
 
     if (!settings.useSubstitutes || paths.empty()) return res;
 
-    if (!runningSubstituter) {
-	std::unique_ptr<RunningSubstituter>fresh(new RunningSubstituter);
-	runningSubstituter.swap(fresh);
-    }
+    Agent & run = *substituter();
 
-    RunningSubstituter & run = *runningSubstituter;
-    startSubstituter(run);
-
-    if (!run.disabled) {
-	string s = "have ";
-	foreach (PathSet::const_iterator, j, paths)
-	    if (res.find(*j) == res.end()) { s += *j; s += " "; }
-	writeLine(run.to, s);
-	while (true) {
-	    /* FIXME: we only read stderr when an error occurs, so
-	       substituters should only write (short) messages to
-	       stderr when they fail.  I.e. they shouldn't write debug
-	       output. */
-	    Path path = getLineFromSubstituter(run);
-	    if (path == "") break;
-	    res.insert(path);
-	}
+    string s = "have ";
+    foreach (PathSet::const_iterator, j, paths)
+	if (res.find(*j) == res.end()) { s += *j; s += " "; }
+    writeLine(run.toAgent.writeSide, s);
+    while (true) {
+	/* FIXME: we only read stderr when an error occurs, so
+	   substituters should only write (short) messages to
+	   stderr when they fail.  I.e. they shouldn't write debug
+	   output. */
+	Path path = getLineFromSubstituter(run);
+	if (path == "") break;
+	res.insert(path);
     }
 
     return res;
 }
 
 
-void LocalStore::querySubstitutablePathInfos(PathSet & paths, SubstitutablePathInfos & infos)
+std::shared_ptr<Agent> LocalStore::substituter()
 {
-    if (!settings.useSubstitutes) return;
-
     if (!runningSubstituter) {
-	std::unique_ptr<RunningSubstituter>fresh(new RunningSubstituter);
-	runningSubstituter.swap(fresh);
+	const Strings args = { "substitute", "--query" };
+	const std::map<string, string> env = { { "_NIX_OPTIONS", settings.pack() } };
+	runningSubstituter = std::make_shared<Agent>(settings.guixProgram, args, env);
     }
 
-    RunningSubstituter & run = *runningSubstituter;
-    startSubstituter(run);
-    if (run.disabled) return;
+    return runningSubstituter;
+}
+
+void LocalStore::querySubstitutablePathInfos(PathSet & paths, SubstitutablePathInfos & infos)
+{
+    if (!settings.useSubstitutes) return;
+
+    Agent & run = *substituter();
 
     string s = "info ";
     foreach (PathSet::const_iterator, i, paths)
         if (infos.find(*i) == infos.end()) { s += *i; s += " "; }
-    writeLine(run.to, s);
+    writeLine(run.toAgent.writeSide, s);
 
     while (true) {
         Path path = getLineFromSubstituter(run);
@@ -1231,11 +1144,91 @@ static void checkSecrecy(const Path & path)
 }
 
 
-static std::string runAuthenticationProgram(const Strings & args)
+/* Return the authentication agent, a "guix authenticate" process started
+   lazily.  */
+static std::shared_ptr<Agent> authenticationAgent()
 {
-    Strings fullArgs = { "authenticate" };
-    fullArgs.insert(fullArgs.end(), args.begin(), args.end()); // append
-    return runProgram(settings.guixProgram, false, fullArgs);
+    static std::shared_ptr<Agent> agent;
+
+    if (!agent) {
+	Strings args = { "authenticate" };
+	agent = std::make_shared<Agent>(settings.guixProgram, args);
+    }
+
+    return agent;
+}
+
+/* Read an integer and the byte that immediately follows it from FD.  Return
+   the integer.  */
+static int readInteger(int fd)
+{
+    string str;
+
+    while (1) {
+        char ch;
+        ssize_t rd = read(fd, &ch, 1);
+        if (rd == -1) {
+            if (errno != EINTR)
+                throw SysError("reading an integer");
+        } else if (rd == 0)
+            throw EndOfFile("unexpected EOF reading an integer");
+        else {
+	    if (isdigit(ch)) {
+		str += ch;
+	    } else {
+		break;
+	    }
+        }
+    }
+
+    return stoi(str);
+}
+
+/* Read from FD a reply coming from 'guix authenticate'.  The reply has the
+   form "CODE LEN:STR".  CODE is an integer, where zero indicates success.
+   LEN specifies the length in bytes of the string that immediately
+   follows.  */
+static std::string readAuthenticateReply(int fd)
+{
+    int code = readInteger(fd);
+    int len = readInteger(fd);
+
+    string str;
+    str.resize(len);
+    readFull(fd, (unsigned char *) &str[0], len);
+
+    if (code == 0)
+	return str;
+    else
+	throw Error(str);
+}
+
+/* Sign HASH with the key stored in file SECRETKEY.  Return the signature as a
+   string, or raise an exception upon error.  */
+static std::string signHash(const string &secretKey, const Hash &hash)
+{
+    auto agent = authenticationAgent();
+    auto hexHash = printHash(hash);
+
+    writeLine(agent->toAgent.writeSide,
+	      (format("sign %1%:%2% %3%:%4%")
+	       % secretKey.size() % secretKey
+	       % hexHash.size() % hexHash).str());
+
+    return readAuthenticateReply(agent->fromAgent.readSide);
+}
+
+/* Verify SIGNATURE and return the base16-encoded hash over which it was
+   computed.  */
+static std::string verifySignature(const string &signature)
+{
+    auto agent = authenticationAgent();
+
+    writeLine(agent->toAgent.writeSide,
+	      (format("verify %1%:%2%")
+	       % signature.size() % signature).str());
+
+    return readAuthenticateReply(agent->fromAgent.readSide);
 }
 
 void LocalStore::exportPath(const Path & path, bool sign,
@@ -1277,23 +1270,10 @@ void LocalStore::exportPath(const Path & path, bool sign,
 
         writeInt(1, hashAndWriteSink);
 
-        Path tmpDir = createTempDir();
-        AutoDelete delTmp(tmpDir);
-        Path hashFile = tmpDir + "/hash";
-        writeFile(hashFile, printHash(hash));
-
         Path secretKey = settings.nixConfDir + "/signing-key.sec";
         checkSecrecy(secretKey);
 
-        Strings args;
-        args.push_back("rsautl");
-        args.push_back("-sign");
-        args.push_back("-inkey");
-        args.push_back(secretKey);
-        args.push_back("-in");
-        args.push_back(hashFile);
-
-        string signature = runAuthenticationProgram(args);
+	string signature = signHash(secretKey, hash);
 
         writeString(signature, hashAndWriteSink);
 
@@ -1372,18 +1352,7 @@ Path LocalStore::importPath(bool requireSignature, Source & source)
         string signature = readString(hashAndReadSource);
 
         if (requireSignature) {
-            Path sigFile = tmpDir + "/sig";
-            writeFile(sigFile, signature);
-
-            Strings args;
-            args.push_back("rsautl");
-            args.push_back("-verify");
-            args.push_back("-inkey");
-            args.push_back(settings.nixConfDir + "/signing-key.pub");
-            args.push_back("-pubin");
-            args.push_back("-in");
-            args.push_back(sigFile);
-            string hash2 = runAuthenticationProgram(args);
+	    string hash2 = verifySignature(signature);
 
             /* Note: runProgram() throws an exception if the signature
                is invalid. */
diff --git a/nix/libstore/local-store.hh b/nix/libstore/local-store.hh
index 2e48cf03e6..9ba37219da 100644
--- a/nix/libstore/local-store.hh
+++ b/nix/libstore/local-store.hh
@@ -38,21 +38,14 @@ struct OptimiseStats
 };
 
 
-struct RunningSubstituter
-{
-    Pid pid;
-    AutoCloseFD to, from, error;
-    FdSource fromBuf;
-    bool disabled;
-    RunningSubstituter() : disabled(false) { };
-};
-
-
 class LocalStore : public StoreAPI
 {
 private:
     /* The currently running substituter or empty.  */
-    std::unique_ptr<RunningSubstituter> runningSubstituter;
+    std::shared_ptr<Agent> runningSubstituter;
+
+    /* Ensure the substituter is running and return it.  */
+    std::shared_ptr<Agent> substituter();
 
     Path linksDir;
 
@@ -178,8 +171,6 @@ public:
 
     void markContentsGood(const Path & path);
 
-    void setSubstituterEnv();
-
     void createUser(const std::string & userName, uid_t userId);
 
 private:
@@ -213,8 +204,6 @@ private:
     /* Cache for pathContentsGood(). */
     std::map<Path, bool> pathContentsGoodCache;
 
-    bool didSetSubstituterEnv;
-
     /* The file to which we write our temporary roots. */
     Path fnTempRoots;
     AutoCloseFD fdTempRoots;
@@ -262,11 +251,9 @@ private:
 
     void removeUnusedLinks(const GCState & state);
 
-    void startSubstituter(RunningSubstituter & runningSubstituter);
-
-    string getLineFromSubstituter(RunningSubstituter & run);
+    string getLineFromSubstituter(Agent & run);
 
-    template<class T> T getIntLineFromSubstituter(RunningSubstituter & run);
+    template<class T> T getIntLineFromSubstituter(Agent & run);
 
     Path createTempDirInStore();
 
diff --git a/nix/libutil/util.cc b/nix/libutil/util.cc
index 17d145b4c6..69f1c634a9 100644
--- a/nix/libutil/util.cc
+++ b/nix/libutil/util.cc
@@ -1142,5 +1142,93 @@ void ignoreException()
     }
 }
 
+static const string pathNullDevice = "/dev/null";
+
+/* Common initialisation performed in child processes. */
+void commonChildInit(Pipe & logPipe)
+{
+    /* Put the child in a separate session (and thus a separate
+       process group) so that it has no controlling terminal (meaning
+       that e.g. ssh cannot open /dev/tty) and it doesn't receive
+       terminal signals. */
+    if (setsid() == -1)
+        throw SysError(format("creating a new session"));
+
+    /* Dup the write side of the logger pipe into stderr. */
+    if (dup2(logPipe.writeSide, STDERR_FILENO) == -1)
+        throw SysError("cannot pipe standard error into log file");
+
+    /* Dup stderr to stdout. */
+    if (dup2(STDERR_FILENO, STDOUT_FILENO) == -1)
+        throw SysError("cannot dup stderr into stdout");
+
+    /* Reroute stdin to /dev/null. */
+    int fdDevNull = open(pathNullDevice.c_str(), O_RDWR);
+    if (fdDevNull == -1)
+        throw SysError(format("cannot open `%1%'") % pathNullDevice);
+    if (dup2(fdDevNull, STDIN_FILENO) == -1)
+        throw SysError("cannot dup null device into stdin");
+    close(fdDevNull);
+}
+
+//////////////////////////////////////////////////////////////////////
+
+Agent::Agent(const string &command, const Strings &args, const std::map<string, string> &env)
+{
+    debug(format("starting agent '%1%'") % command);
+
+    /* Create a pipe to get the output of the child. */
+    fromAgent.create();
+
+    /* Create the communication pipes. */
+    toAgent.create();
+
+    /* Create a pipe to get the output of the builder. */
+    builderOut.create();
+
+    /* Fork the hook. */
+    pid = startProcess([&]() {
+
+        commonChildInit(fromAgent);
+
+	for (auto pair: env) {
+	    setenv(pair.first.c_str(), pair.second.c_str(), 1);
+	}
+
+        if (chdir("/") == -1) throw SysError("changing into `/");
+
+        /* Dup the communication pipes. */
+        if (dup2(toAgent.readSide, STDIN_FILENO) == -1)
+            throw SysError("dupping to-hook read side");
+
+        /* Use fd 4 for the builder's stdout/stderr. */
+        if (dup2(builderOut.writeSide, 4) == -1)
+            throw SysError("dupping builder's stdout/stderr");
+
+	Strings allArgs;
+	allArgs.push_back(command);
+	allArgs.insert(allArgs.end(), args.begin(), args.end()); // append
+
+        execv(command.c_str(), stringsToCharPtrs(allArgs).data());
+
+        throw SysError(format("executing `%1%'") % command);
+    });
+
+    pid.setSeparatePG(true);
+    fromAgent.writeSide.close();
+    toAgent.readSide.close();
+}
+
+
+Agent::~Agent()
+{
+    try {
+        toAgent.writeSide.close();
+        pid.kill(true);
+    } catch (...) {
+        ignoreException();
+    }
+}
+
 
 }
diff --git a/nix/libutil/util.hh b/nix/libutil/util.hh
index 9e3c14bdd4..880b0e93b2 100644
--- a/nix/libutil/util.hh
+++ b/nix/libutil/util.hh
@@ -7,6 +7,7 @@
 #include <dirent.h>
 #include <unistd.h>
 #include <signal.h>
+#include <map>
 #include <functional>
 
 #include <cstdio>
@@ -264,6 +265,31 @@ public:
     void setKillSignal(int signal);
 };
 
+/* An "agent" is a helper program that runs in the background and that we talk
+   to over pipes, such as the "guix offload" program.  */
+struct Agent
+{
+    /* Pipes for talking to the agent. */
+    Pipe toAgent;
+
+    /* Pipe for the agent's standard output/error. */
+    Pipe fromAgent;
+
+    /* Pipe for build standard output/error--e.g., for build processes started
+       by "guix offload".  */
+    Pipe builderOut;
+
+    /* The process ID of the agent. */
+    Pid pid;
+
+    /* The command and arguments passed to the agent along with a list of
+       environment variable name/value pairs.  */
+    Agent(const string &command, const Strings &args,
+	  const std::map<string, string> &env = std::map<string, string>());
+
+    ~Agent();
+};
+
 
 /* Kill all processes running under the specified uid by sending them
    a SIGKILL. */
@@ -295,6 +321,8 @@ void closeMostFDs(const set<int> & exceptions);
 /* Set the close-on-exec flag for the given file descriptor. */
 void closeOnExec(int fd);
 
+/* Common initialisation performed in child processes. */
+void commonChildInit(Pipe & logPipe);
 
 /* User interruption. */
 
diff --git a/nix/local.mk b/nix/local.mk
index 005cde5563..d2ce349d9c 100644
--- a/nix/local.mk
+++ b/nix/local.mk
@@ -180,6 +180,17 @@ etc/init.d/guix-daemon: etc/init.d/guix-daemon.in	\
 	       "$<" > "$@.tmp";		\
 	mv "$@.tmp" "$@"
 
+# The service script for openrc.
+openrcservicedir = $(sysconfdir)/init.d
+nodist_openrcservice_DATA = etc/openrc/guix-daemon
+
+etc/openrc/guix-daemon: etc/openrc/guix-daemon.in	\
+			 $(top_builddir)/config.status
+	$(AM_V_GEN)$(MKDIR_P) "`dirname $@`";	\
+	$(SED) -e 's|@''localstatedir''@|$(localstatedir)|' <	\
+	       "$<" > "$@.tmp";		\
+	mv "$@.tmp" "$@"
+
 # The '.conf' jobs for Upstart.
 upstartjobdir = $(libdir)/upstart/system
 nodist_upstartjob_DATA = etc/guix-daemon.conf etc/guix-publish.conf
@@ -194,16 +205,19 @@ etc/guix-%.conf: etc/guix-%.conf.in	\
 CLEANFILES +=					\
   $(nodist_systemdservice_DATA)			\
   $(nodist_upstartjob_DATA)			\
-  $(nodist_sysvinitservice_DATA)
+  $(nodist_sysvinitservice_DATA)		\
+  $(nodist_openrcservice_DATA)
 
 EXTRA_DIST +=					\
   %D%/AUTHORS					\
   %D%/COPYING					\
+  etc/gnu-store.mount.in			\
   etc/guix-daemon.service.in			\
   etc/guix-daemon.conf.in			\
   etc/guix-publish.service.in			\
   etc/guix-publish.conf.in			\
-  etc/init.d/guix-daemon.in
+  etc/init.d/guix-daemon.in			\
+  etc/openrc/guix-daemon.in
 
 if CAN_RUN_TESTS
 
diff --git a/nix/nix-daemon/guix-daemon.cc b/nix/nix-daemon/guix-daemon.cc
index cd949aca67..30d0e5d11d 100644
--- a/nix/nix-daemon/guix-daemon.cc
+++ b/nix/nix-daemon/guix-daemon.cc
@@ -89,6 +89,7 @@ builds derivations on behalf of its clients.");
 #define GUIX_OPT_TIMEOUT 18
 #define GUIX_OPT_MAX_SILENT_TIME 19
 #define GUIX_OPT_LOG_COMPRESSION 20
+#define GUIX_OPT_DISCOVER 21
 
 static const struct argp_option options[] =
   {
@@ -129,6 +130,8 @@ static const struct argp_option options[] =
       n_("disable compression of the build logs") },
     { "log-compression", GUIX_OPT_LOG_COMPRESSION, "TYPE", 0,
       n_("use the specified compression type for build logs") },
+    { "discover", GUIX_OPT_DISCOVER, "yes/no", OPTION_ARG_OPTIONAL,
+      n_("use substitute servers discovered on the local network") },
 
     /* '--disable-deduplication' was known as '--disable-store-optimization'
        up to Guix 0.7 included, so keep the alias around.  */
@@ -167,6 +170,8 @@ to live outputs") },
 /* List of '--listen' options.  */
 static std::list<std::string> listen_options;
 
+static bool useDiscover = false;
+
 /* Convert ARG to a Boolean value, or throw an error if it does not denote a
    Boolean.  */
 static bool
@@ -261,6 +266,10 @@ parse_opt (int key, char *arg, struct argp_state *state)
     case GUIX_OPT_NO_BUILD_HOOK:
       settings.useBuildHook = false;
       break;
+    case GUIX_OPT_DISCOVER:
+      useDiscover = string_to_bool (arg);
+      settings.set("discover", arg);
+      break;
     case GUIX_OPT_DEBUG:
       verbosity = lvlDebug;
       break;
@@ -506,6 +515,18 @@ using `--build-users-group' is highly recommended\n"));
 		    format ("extra chroot directories: '%1%'") % chroot_dirs);
 	}
 
+      if (useDiscover)
+      {
+        Strings args;
+
+        args.push_back("guix");
+        args.push_back("discover");
+
+        startProcess([&]() {
+          execv(settings.guixProgram.c_str(), stringsToCharPtrs(args).data());
+        });
+      }
+
       printMsg (lvlDebug,
 		format ("automatic deduplication set to %1%")
 		% settings.autoOptimiseStore);
diff --git a/po/doc/guix-cookbook.de.po b/po/doc/guix-cookbook.de.po
index 4bb57d980c..2996dd474d 100644
--- a/po/doc/guix-cookbook.de.po
+++ b/po/doc/guix-cookbook.de.po
@@ -1,14 +1,14 @@
 # German translations for the Guix Cookbook.
-# Copyright (C) 2020 Ludovic Courtès
+# Copyright (C) 2019, 2020 the authors of Guix (msgids)
 # This file is distributed under the same license as the guix package.
 # Florian Pelz <pelzflorian@pelzflorian.de>, 2020.
 #
 msgid ""
 msgstr ""
 "Project-Id-Version: guix 1.0.1.4876-09145-dirty\n"
-"Report-Msgid-Bugs-To: ludo@gnu.org\n"
-"POT-Creation-Date: 2020-02-14 08:04+0100\n"
-"PO-Revision-Date: 2020-02-17 06:51+0000\n"
+"Report-Msgid-Bugs-To: bug-guix@gnu.org\n"
+"POT-Creation-Date: 2020-10-20 10:00+0200\n"
+"PO-Revision-Date: 2020-11-01 13:45+0100\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: none\n"
 "Language: de\n"
@@ -26,239 +26,251 @@ msgstr ""
 "@frenchspacing on"
 
 #. type: top
-#: doc/guix-cookbook.texi:7 doc/guix-cookbook.texi:29 doc/guix-cookbook.texi:43
+#: doc/guix-cookbook.texi:7 doc/guix-cookbook.texi:35 doc/guix-cookbook.texi:49
 #, no-wrap
 msgid "GNU Guix Cookbook"
 msgstr "GNU-Guix-Kochbuch"
 
 #. type: copying
-#: doc/guix-cookbook.texi:14
-msgid "Copyright @copyright{} 2019 Ricardo Wurmus@* Copyright @copyright{} 2019 Efraim Flashner@* Copyright @copyright{} 2019 Pierre Neidhardt@*"
-msgstr "Copyright @copyright{} 2019 Ricardo Wurmus@* Copyright @copyright{} 2019 Efraim Flashner@* Copyright @copyright{} 2019 Pierre Neidhardt@*"
+#: doc/guix-cookbook.texi:20
+msgid "Copyright @copyright{} 2019 Ricardo Wurmus@* Copyright @copyright{} 2019 Efraim Flashner@* Copyright @copyright{} 2019 Pierre Neidhardt@* Copyright @copyright{} 2020 Oleg Pykhalov@* Copyright @copyright{} 2020 Matthew Brooks@* Copyright @copyright{} 2020 Marcin Karpezo@* Copyright @copyright{} 2020 Brice Waegeneire@* Copyright @copyright{} 2020 André Batista@* Copyright @copyright{} 2020 Christopher Lemmer Webber"
+msgstr "Copyright @copyright{} 2019 Ricardo Wurmus@* Copyright @copyright{} 2019 Efraim Flashner@* Copyright @copyright{} 2019 Pierre Neidhardt@* Copyright @copyright{} 2020 Oleg Pykhalov@* Copyright @copyright{} 2020 Matthew Brooks@* Copyright @copyright{} 2020 Marcin Karpezo@* Copyright @copyright{} 2020 Brice Waegeneire@* Copyright @copyright{} 2020 André Batista@* Copyright @copyright{} 2020 Christopher Lemmer Webber"
 
 #. type: copying
-#: doc/guix-cookbook.texi:21
+#: doc/guix-cookbook.texi:27
 msgid "Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.  A copy of the license is included in the section entitled ``GNU Free Documentation License''."
 msgstr "Es ist Ihnen gestattet, dieses Dokument zu vervielfältigen, weiterzugeben und/oder zu verändern, unter den Bedingungen der GNU Free Documentation License, entweder gemäß Version 1.3 der Lizenz oder (nach Ihrer Option) einer späteren Version, die von der Free Software Foundation veröffentlicht wurde, ohne unveränderliche Abschnitte, ohne vorderen Umschlagtext und ohne hinteren Umschlagtext. Eine Kopie der Lizenz finden Sie im Abschnitt mit dem Titel „GNU Free Documentation License“."
 
 #. type: dircategory
-#: doc/guix-cookbook.texi:23
+#: doc/guix-cookbook.texi:29
 #, no-wrap
 msgid "System administration"
 msgstr "Systemadministration"
 
 #. type: menuentry
-#: doc/guix-cookbook.texi:26
+#: doc/guix-cookbook.texi:32
 msgid "Guix cookbook: (guix-cookbook)"
 msgstr "Guix-Kochbuch: (guix-cookbook.de)"
 
 #. type: menuentry
-#: doc/guix-cookbook.texi:26
+#: doc/guix-cookbook.texi:32
 msgid "Tutorials and examples for GNU Guix."
 msgstr "Anleitungen und Beispiele für GNU Guix."
 
 #. type: subtitle
-#: doc/guix-cookbook.texi:30
+#: doc/guix-cookbook.texi:36
 #, no-wrap
 msgid "Tutorials and examples for using the GNU Guix Functional Package Manager"
 msgstr "Anleitungen und Beispiele, wie man den funktionalen Paketmanager GNU Guix benutzt"
 
 #. type: author
-#: doc/guix-cookbook.texi:31
+#: doc/guix-cookbook.texi:37
 #, no-wrap
 msgid "The GNU Guix Developers"
 msgstr "Die Entwickler von GNU Guix"
 
 #. type: node
-#: doc/guix-cookbook.texi:42
+#: doc/guix-cookbook.texi:48
 #, no-wrap
 msgid "Top"
 msgstr "Top"
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:49
+#: doc/guix-cookbook.texi:55
 msgid "This document presents tutorials and detailed examples for GNU@tie{}Guix, a functional package management tool written for the GNU system.  Please @pxref{Top,,, guix, GNU Guix reference manual} for details about the system, its API, and related concepts."
 msgstr "Dieses Dokument stellt Anleitungen und detaillierte Beispiele vor, wie man GNU@tie{}Guix benutzt, ein Werkzeug zur funktionalen Paketverwaltung, das für das GNU-System geschrieben wurde. Bitte lesen Sie Details zum System, seinen Programmierschnittstellen und ähnlichen Konzepten im @ref{Top,,, guix.de, Referenzhandbuch zu GNU Guix} nach."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:56
+#: doc/guix-cookbook.texi:62
 msgid "If you would like to translate this document in your native language, consider joining the @uref{https://translationproject.org/domain/guix-cookbook.html, Translation Project}."
 msgstr "Wenn Sie dieses Dokument in Ihre eigene Sprache übersetzen möchten, dann sind Sie beim @uref{https://translationproject.org/domain/guix-cookbook.html, Translation Project} herzlich willkommen."
 
 #. type: chapter
-#: doc/guix-cookbook.texi:62 doc/guix-cookbook.texi:71
-#: doc/guix-cookbook.texi:87 doc/guix-cookbook.texi:88
+#: doc/guix-cookbook.texi:69 doc/guix-cookbook.texi:78
+#: doc/guix-cookbook.texi:94 doc/guix-cookbook.texi:95
 #, no-wrap
 msgid "Scheme tutorials"
 msgstr "Anleitungen zu Scheme"
 
 #. type: menuentry
-#: doc/guix-cookbook.texi:62
+#: doc/guix-cookbook.texi:69
 msgid "Meet your new favorite language!"
 msgstr "Lernen Sie Ihre neue Lieblingssprache kennen!"
 
 #. type: chapter
-#: doc/guix-cookbook.texi:62 doc/guix-cookbook.texi:75
-#: doc/guix-cookbook.texi:291 doc/guix-cookbook.texi:292
+#: doc/guix-cookbook.texi:69 doc/guix-cookbook.texi:82
+#: doc/guix-cookbook.texi:301 doc/guix-cookbook.texi:302
 #, no-wrap
 msgid "Packaging"
 msgstr "Paketerstellung"
 
 #. type: menuentry
-#: doc/guix-cookbook.texi:62
+#: doc/guix-cookbook.texi:69
 msgid "Packaging tutorials"
 msgstr "Anleitungen, wie man Pakete erstellt."
 
 #. type: chapter
-#: doc/guix-cookbook.texi:62 doc/guix-cookbook.texi:79
-#: doc/guix-cookbook.texi:1311 doc/guix-cookbook.texi:1312
+#: doc/guix-cookbook.texi:69 doc/guix-cookbook.texi:86
+#: doc/guix-cookbook.texi:1344 doc/guix-cookbook.texi:1345
 #, no-wrap
 msgid "System Configuration"
 msgstr "Systemkonfiguration"
 
 #. type: menuentry
-#: doc/guix-cookbook.texi:62
+#: doc/guix-cookbook.texi:69
 msgid "Customizing the GNU System"
 msgstr "Das GNU-System anpassen."
 
 #. type: chapter
-#: doc/guix-cookbook.texi:62 doc/guix-cookbook.texi:1566
-#: doc/guix-cookbook.texi:1567
+#: doc/guix-cookbook.texi:69 doc/guix-cookbook.texi:2181
+#: doc/guix-cookbook.texi:2182
 #, no-wrap
 msgid "Advanced package management"
 msgstr "Fortgeschrittene Paketverwaltung"
 
 # angelehnt an Alle Macht dem Volke in Übersetzung von Die Mutter
 #. type: menuentry
-#: doc/guix-cookbook.texi:62
+#: doc/guix-cookbook.texi:69
 msgid "Power to the users!"
 msgstr "Alle Macht den Nutzern!"
 
 #. type: chapter
-#: doc/guix-cookbook.texi:66 doc/guix-cookbook.texi:1964
-#: doc/guix-cookbook.texi:1965
+#: doc/guix-cookbook.texi:69 doc/guix-cookbook.texi:2579
+#: doc/guix-cookbook.texi:2580
+#, no-wrap
+msgid "Environment management"
+msgstr "Umgebungen verwalten"
+
+#. type: menuentry
+#: doc/guix-cookbook.texi:69
+msgid "Control environment"
+msgstr "Umgebungen festlegen."
+
+#. type: chapter
+#: doc/guix-cookbook.texi:73 doc/guix-cookbook.texi:2703
+#: doc/guix-cookbook.texi:2704
 #, no-wrap
 msgid "Acknowledgments"
 msgstr "Danksagungen"
 
 #. type: menuentry
-#: doc/guix-cookbook.texi:66
+#: doc/guix-cookbook.texi:73
 msgid "Thanks!"
 msgstr "Danke!"
 
 #. type: appendix
-#: doc/guix-cookbook.texi:66 doc/guix-cookbook.texi:1989
-#: doc/guix-cookbook.texi:1990
+#: doc/guix-cookbook.texi:73 doc/guix-cookbook.texi:2728
+#: doc/guix-cookbook.texi:2729
 #, no-wrap
 msgid "GNU Free Documentation License"
 msgstr "GNU-Lizenz für freie Dokumentation"
 
 #. type: menuentry
-#: doc/guix-cookbook.texi:66
+#: doc/guix-cookbook.texi:73
 msgid "The license of this document."
 msgstr "Die Lizenz dieses Dokuments."
 
 #. type: unnumbered
-#: doc/guix-cookbook.texi:66 doc/guix-cookbook.texi:1995
-#: doc/guix-cookbook.texi:1996
+#: doc/guix-cookbook.texi:73 doc/guix-cookbook.texi:2734
+#: doc/guix-cookbook.texi:2735
 #, no-wrap
 msgid "Concept Index"
 msgstr "Konzeptverzeichnis"
 
 #. type: menuentry
-#: doc/guix-cookbook.texi:66
+#: doc/guix-cookbook.texi:73
 msgid "Concepts."
 msgstr "Konzepte."
 
 #. type: menuentry
-#: doc/guix-cookbook.texi:69
+#: doc/guix-cookbook.texi:76
 msgid "--- The Detailed Node Listing ---"
 msgstr "--- Detaillierte Liste der Knoten ---"
 
 #. type: section
-#: doc/guix-cookbook.texi:73 doc/guix-cookbook.texi:101
-#: doc/guix-cookbook.texi:102
+#: doc/guix-cookbook.texi:80 doc/guix-cookbook.texi:108
+#: doc/guix-cookbook.texi:109
 #, no-wrap
 msgid "A Scheme Crash Course"
 msgstr "Ein Schnellkurs in Scheme"
 
 #. type: menuentry
-#: doc/guix-cookbook.texi:73
+#: doc/guix-cookbook.texi:80
 msgid "Learn the basics of Scheme"
 msgstr "Die Grundzüge von Scheme erlernen."
 
 #. type: section
-#: doc/guix-cookbook.texi:77 doc/guix-cookbook.texi:303
-#: doc/guix-cookbook.texi:305 doc/guix-cookbook.texi:306
+#: doc/guix-cookbook.texi:84 doc/guix-cookbook.texi:313
+#: doc/guix-cookbook.texi:315 doc/guix-cookbook.texi:316
 #, no-wrap
 msgid "Packaging Tutorial"
 msgstr "Anleitung zum Paketeschreiben"
 
 #. type: menuentry
-#: doc/guix-cookbook.texi:77
+#: doc/guix-cookbook.texi:84
 msgid "Let's add a package to Guix!"
 msgstr "Lasst uns ein Paket zu Guix beitragen!"
 
 #. type: section
-#: doc/guix-cookbook.texi:81 doc/guix-cookbook.texi:1323
-#: doc/guix-cookbook.texi:1325 doc/guix-cookbook.texi:1326
+#: doc/guix-cookbook.texi:88 doc/guix-cookbook.texi:1362
+#: doc/guix-cookbook.texi:1364 doc/guix-cookbook.texi:1365
 #, no-wrap
 msgid "Customizing the Kernel"
 msgstr "Den Kernel anpassen"
 
 #. type: menuentry
-#: doc/guix-cookbook.texi:81
+#: doc/guix-cookbook.texi:88
 msgid "Creating and using a custom Linux kernel"
 msgstr "Einen eigenen Linux-Kernel benutzen"
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:94
+#: doc/guix-cookbook.texi:101
 msgid "GNU@tie{}Guix is written in the general purpose programming language Scheme, and many of its features can be accessed and manipulated programmatically.  You can use Scheme to generate package definitions, to modify them, to build them, to deploy whole operating systems, etc."
 msgstr "GNU@tie{}Guix ist in Scheme geschrieben, einer für alle Anwendungszwecke geeigneten Programmiersprache, und viele Funktionalitäten von Guix können programmatisch angesteuert und verändert werden. Sie können Scheme benutzen, um Paketdefinitionen zu erzeugen, abzuändern, ganze Betriebssysteme einzuspielen etc."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:98
+#: doc/guix-cookbook.texi:105
 msgid "Knowing the basics of how to program in Scheme will unlock many of the advanced features Guix provides --- and you don't even need to be an experienced programmer to use them!"
 msgstr "Wenn man die Grundzüge kennt, wie man in Scheme programmiert, bekommt man Zugang zu vielen der fortgeschrittenen Funktionen von Guix — und Sie müssen dazu nicht einmal ein erfahrener Programmierer sein!"
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:100
+#: doc/guix-cookbook.texi:107
 msgid "Let's get started!"
 msgstr "Legen wir los!"
 
 #. type: cindex
-#: doc/guix-cookbook.texi:104
+#: doc/guix-cookbook.texi:111
 #, no-wrap
 msgid "Scheme, crash course"
 msgstr "Scheme, Schnellkurs"
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:110
-msgid "Guix uses the Guile implementation of Scheme.  To start playing with the language, install it with @code{guix install guile} and start a @uref{https://en.wikipedia.org/wiki/Read%E2%80%93eval%E2%80%93print_loop, REPL} by running @code{guile} from the command line."
-msgstr "Die von Guix benutzte Scheme-Implementierung nennt sich Guile. Um mit der Sprache herumspielen zu können, installieren Sie Guile mit @code{guix install guile} und starten eine interaktive Programmierumgebung (englisch @uref{https://en.wikipedia.org/wiki/Read%E2%80%93eval%E2%80%93print_loop, REPL}), indem Sie @code{guile} auf der Befehlszeile ausführen."
+#: doc/guix-cookbook.texi:117
+msgid "Guix uses the Guile implementation of Scheme.  To start playing with the language, install it with @code{guix install guile} and start a @dfn{REPL}---short for @uref{https://en.wikipedia.org/wiki/Read%E2%80%93eval%E2%80%93print_loop, @dfn{read-eval-print loop}}---by running @code{guile} from the command line."
+msgstr "Die von Guix benutzte Scheme-Implementierung nennt sich Guile. Um mit der Sprache herumspielen zu können, installieren Sie Guile mit @code{guix install guile} und starten eine interaktive Programmierumgebung (englisch @uref{https://en.wikipedia.org/wiki/Read%E2%80%93eval%E2%80%93print_loop, Read-Eval-Print-Loop}, kurz REPL), indem Sie @code{guile} auf der Befehlszeile ausführen."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:113
+#: doc/guix-cookbook.texi:120
 msgid "Alternatively you can also run @code{guix environment --ad-hoc guile -- guile} if you'd rather not have Guile installed in your user profile."
 msgstr "Alternativ können Sie auch den Befehl @code{guix environment --ad-hoc guile -- guile} ausführen, wenn Sie Guile lieber @emph{nicht} in Ihr Nutzerprofil installieren wollen."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:119
-msgid "In the following examples, lines show what you would type at the REPL; lines starting with ``@result{}'' show evaluation results, while lines starting with ``@print{}'' show things that get printed.  @xref{Using Guile Interactively,,, guile, GNU Guile Reference Manual}), for more details on the REPL."
+#: doc/guix-cookbook.texi:126
+msgid "In the following examples, lines show what you would type at the REPL; lines starting with ``@result{}'' show evaluation results, while lines starting with ``@print{}'' show things that get printed.  @xref{Using Guile Interactively,,, guile, GNU Guile Reference Manual}, for more details on the REPL."
 msgstr "In den folgenden Beispielen stehen die Zeilen dafür, was Sie auf der REPL eintippen; wenn eine Zeile mit „@result{}“ beginnt, zeigt sie das Ergebnis einer Auswertung, während Zeilen, die mit „@print{}“ beginnen, für eine angezeigte Ausgabe stehen. Siehe @ref{Using Guile Interactively,,, guile, GNU Guile Reference Manual} für mehr Details zur REPL."
 
 #. type: itemize
-#: doc/guix-cookbook.texi:126
-msgid "Scheme syntax boils down to a tree of expressions (or @emph{s-expression} in Lisp lingo).  An expression can be a literal such as numbers and strings, or a compound which is a parenthesized list of compounds and literals.  @code{#t} and @code{#f} stand for the Booleans ``true'' and ``false'', respectively."
-msgstr "Die Scheme-Syntax ist an sich ein Baum von Ausdrücken (Lisp-Programmierer nennen sie @emph{symbolische Ausdrücke}, kurz @emph{S-Ausdrücke} bzw.@: englisch @emph{s-expression}). Ein solcher Ausdruck kann ein Literal sein, wie z.B.@: Zahlen oder Zeichenketten, oder er kann ein zusammengesetzter Ausdruck sein, d.h.@: eine geklammerte Liste von zusammengesetzten und literalen Ausdrücken. Dabei stehen @code{#t} und @code{#f} jeweils für die Booleschen Werte „wahr“ und „falsch“."
+#: doc/guix-cookbook.texi:134
+msgid "Scheme syntax boils down to a tree of expressions (or @emph{s-expression} in Lisp lingo).  An expression can be a literal such as numbers and strings, or a compound which is a parenthesized list of compounds and literals.  @code{#true} and @code{#false} (abbreviated @code{#t} and @code{#f}) stand for the Booleans ``true'' and ``false'', respectively."
+msgstr "Die Scheme-Syntax ist an sich ein Baum von Ausdrücken (Lisp-Programmierer nennen sie @emph{symbolische Ausdrücke}, kurz @emph{S-Ausdrücke} bzw.@: englisch @emph{s-expression}). Ein solcher Ausdruck kann ein Literal sein, wie z.B.@: Zahlen oder Zeichenketten, oder er kann ein zusammengesetzter Ausdruck sein, d.h.@: eine geklammerte Liste von zusammengesetzten und literalen Ausdrücken. Dabei stehen @code{#true} und @code{#false} (abgekürzt auch @code{#t} und @code{#f}) jeweils für die Booleschen Werte „wahr“ und „falsch“."
 
 #. type: itemize
-#: doc/guix-cookbook.texi:128
+#: doc/guix-cookbook.texi:136
 msgid "Examples of valid expressions:"
 msgstr "Beispiele für gültige Ausdrücke"
 
 #. type: lisp
-#: doc/guix-cookbook.texi:132
+#: doc/guix-cookbook.texi:140
 #, no-wrap
 msgid ""
 "\"Hello World!\"\n"
@@ -270,7 +282,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix-cookbook.texi:135
+#: doc/guix-cookbook.texi:143
 #, no-wrap
 msgid ""
 "17\n"
@@ -282,7 +294,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix-cookbook.texi:139
+#: doc/guix-cookbook.texi:147
 #, no-wrap
 msgid ""
 "(display (string-append \"Hello \" \"Guix\" \"\\n\"))\n"
@@ -294,17 +306,17 @@ msgstr ""
 "@result{} #<unspecified>\n"
 
 #. type: itemize
-#: doc/guix-cookbook.texi:146
+#: doc/guix-cookbook.texi:154
 msgid "This last example is a function call nested in another function call.  When a parenthesized expression is evaluated, the first term is the function and the rest are the arguments passed to the function.  Every function returns the last evaluated expression as its return value."
 msgstr "Das letzte Beispiel eben ist der Aufruf einer Funktion innerhalb eines anderen Funktionsaufrufs. Wenn ein geklammerter Ausdruck ausgewertet wird, ist der erste Term die Funktion und der Rest sind die Argumente, die an die Funktion übergeben werden. Jede Funktion liefert ihren zuletzt ausgewerteten Ausdruck als ihren Rückgabewert."
 
 #. type: itemize
-#: doc/guix-cookbook.texi:149
+#: doc/guix-cookbook.texi:157
 msgid "Anonymous functions are declared with the @code{lambda} term:"
 msgstr "Anonyme Funktionen werden mit dem @code{lambda}-Term deklariert:"
 
 #. type: lisp
-#: doc/guix-cookbook.texi:153
+#: doc/guix-cookbook.texi:161
 #, no-wrap
 msgid ""
 "(lambda (x) (* x x))\n"
@@ -314,12 +326,12 @@ msgstr ""
 "@result{} #<procedure 120e348 at <unknown port>:24:0 (x)>\n"
 
 #. type: itemize
-#: doc/guix-cookbook.texi:158
+#: doc/guix-cookbook.texi:166
 msgid "The above procedure returns the square of its argument.  Since everything is an expression, the @code{lambda} expression returns an anonymous procedure, which can in turn be applied to an argument:"
 msgstr "Die obige Prozedur liefert das Quadrat ihres Arguments. Weil alles ein Ausdruck ist, liefert der Ausdruck @code{lambda} eine anonyme Prozedur, die wiederum auf ein Argument angewandt werden kann:"
 
 #. type: lisp
-#: doc/guix-cookbook.texi:162
+#: doc/guix-cookbook.texi:170
 #, no-wrap
 msgid ""
 "((lambda (x) (* x x)) 3)\n"
@@ -329,12 +341,12 @@ msgstr ""
 "@result{} 9\n"
 
 #. type: itemize
-#: doc/guix-cookbook.texi:166
+#: doc/guix-cookbook.texi:174
 msgid "Anything can be assigned a global name with @code{define}:"
 msgstr "Allem kann mit @code{define} ein globaler Name zugewiesen werden:"
 
 #. type: lisp
-#: doc/guix-cookbook.texi:172
+#: doc/guix-cookbook.texi:180
 #, no-wrap
 msgid ""
 "(define a 3)\n"
@@ -348,23 +360,23 @@ msgstr ""
 "@result{} 9\n"
 
 #. type: itemize
-#: doc/guix-cookbook.texi:176
+#: doc/guix-cookbook.texi:184
 msgid "Procedures can be defined more concisely with the following syntax:"
 msgstr "Prozeduren können auch kürzer mit der folgenden Syntax definiert werden:"
 
 #. type: lisp
-#: doc/guix-cookbook.texi:179
+#: doc/guix-cookbook.texi:187
 #, no-wrap
 msgid "(define (square x) (* x x))\n"
 msgstr "(define (quadrat x) (* x x))\n"
 
 #. type: itemize
-#: doc/guix-cookbook.texi:183
+#: doc/guix-cookbook.texi:191
 msgid "A list structure can be created with the @code{list} procedure:"
 msgstr "Eine Listenstruktur kann mit der @code{list}-Prozedur erzeugt werden:"
 
 #. type: lisp
-#: doc/guix-cookbook.texi:187
+#: doc/guix-cookbook.texi:195
 #, no-wrap
 msgid ""
 "(list 2 a 5 7)\n"
@@ -374,12 +386,12 @@ msgstr ""
 "@result{} (2 3 5 7)\n"
 
 #. type: itemize
-#: doc/guix-cookbook.texi:194
+#: doc/guix-cookbook.texi:202
 msgid "The @dfn{quote} disables evaluation of a parenthesized expression: the first term is not called over the other terms (@pxref{Expression Syntax, quote,, guile, GNU Guile Reference Manual}).  Thus it effectively returns a list of terms."
 msgstr "Mit dem @dfn{quote}-Zeichen wird das Auswerten eines geklammerten Ausdrucks abgeschaltet: Der erste Term wird @emph{nicht} auf den anderen Termen aufgerufen (siehe @ref{Expression Syntax, quote,, guile, GNU Guile Reference Manual}). Folglich liefert es quasi eine Liste von Termen."
 
 #. type: lisp
-#: doc/guix-cookbook.texi:198
+#: doc/guix-cookbook.texi:206
 #, no-wrap
 msgid ""
 "'(display (string-append \"Hello \" \"Guix\" \"\\n\"))\n"
@@ -391,7 +403,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix-cookbook.texi:201
+#: doc/guix-cookbook.texi:209
 #, no-wrap
 msgid ""
 "'(2 a 5 7)\n"
@@ -401,12 +413,12 @@ msgstr ""
 "@result{} (2 a 5 7)\n"
 
 #. type: itemize
-#: doc/guix-cookbook.texi:207
+#: doc/guix-cookbook.texi:215
 msgid "The @dfn{quasiquote} disables evaluation of a parenthesized expression until @dfn{unquote} (a comma) re-enables it.  Thus it provides us with fine-grained control over what is evaluated and what is not."
 msgstr "Mit einem @dfn{quasiquote}-Zeichen wird die Auswertung eines geklammerten Ausdrucks so lange abgeschaltet, bis ein @dfn{unquote} (ein Komma) sie wieder aktiviert. Wir können damit genau steuern, was ausgewertet wird und was nicht."
 
 #. type: lisp
-#: doc/guix-cookbook.texi:211
+#: doc/guix-cookbook.texi:219
 #, no-wrap
 msgid ""
 "`(2 a 5 7 (2 ,a 5 ,(+ a 4)))\n"
@@ -416,17 +428,17 @@ msgstr ""
 "@result{} (2 a 5 7 (2 3 5 7))\n"
 
 #. type: itemize
-#: doc/guix-cookbook.texi:215
+#: doc/guix-cookbook.texi:223
 msgid "Note that the above result is a list of mixed elements: numbers, symbols (here @code{a}) and the last element is a list itself."
 msgstr "Beachten Sie, dass obiges Ergenis eine Liste verschiedenartiger Elemente ist: Zahlen, Symbole (in diesem Fall @code{a}) und als letztes Element selbst wieder eine Liste."
 
 #. type: itemize
-#: doc/guix-cookbook.texi:219
+#: doc/guix-cookbook.texi:227
 msgid "Multiple variables can be named locally with @code{let} (@pxref{Local Bindings,,, guile, GNU Guile Reference Manual}):"
 msgstr "Mehrere Variable können in einer lokalen Umgebung mit Bezeichnern versehen werden, indem Sie @code{let} benutzen (siehe @ref{Local Bindings,,, guile, GNU Guile Reference Manual}):"
 
 #. type: lisp
-#: doc/guix-cookbook.texi:226
+#: doc/guix-cookbook.texi:234
 #, no-wrap
 msgid ""
 "(define x 10)\n"
@@ -444,7 +456,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix-cookbook.texi:229
+#: doc/guix-cookbook.texi:237
 #, no-wrap
 msgid ""
 "x\n"
@@ -456,7 +468,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix-cookbook.texi:232
+#: doc/guix-cookbook.texi:240
 #, no-wrap
 msgid ""
 "y\n"
@@ -466,12 +478,12 @@ msgstr ""
 "@error{} In procedure module-lookup: Unbound variable: y\n"
 
 #. type: itemize
-#: doc/guix-cookbook.texi:236
+#: doc/guix-cookbook.texi:244
 msgid "Use @code{let*} to allow later variable declarations to refer to earlier definitions."
 msgstr "Benutzen Sie @code{let*}, damit spätere Variablendeklarationen auf frühere verweisen können."
 
 #. type: lisp
-#: doc/guix-cookbook.texi:242
+#: doc/guix-cookbook.texi:250
 #, no-wrap
 msgid ""
 "(let* ((x 2)\n"
@@ -485,22 +497,22 @@ msgstr ""
 "@result{} (2 6)\n"
 
 #. type: itemize
-#: doc/guix-cookbook.texi:247
-msgid "The keyword syntax is @code{#:}; it is used to create unique identifiers.  @pxref{Keywords,,, guile, GNU Guile Reference Manual}."
-msgstr "Die Syntax für Schlüsselwörter ist @code{#:}. Wir benutzen sie, um eindeutige Bezeichnungen zu erzeugen. Siehe @ref{Keywords,,, guile, GNU Guile Reference Manual}."
+#: doc/guix-cookbook.texi:257
+msgid "@dfn{Keywords} are typically used to identify the named parameters of a procedure.  They are prefixed by @code{#:} (hash, colon) followed by alphanumeric characters: @code{#:like-this}.  @xref{Keywords,,, guile, GNU Guile Reference Manual}."
+msgstr "Mit @dfn{Schlüsselwörtern} bestimmen wir normalerweise diejenigen Parameter einer Prozedur, die einen Namen haben sollen. Ihnen wird @code{#:} (Doppelkreuz und Doppelpunkt) vorangestellt, gefolgt von alphanumerischen Zeichen: @code{#:etwa-so}. Siehe @ref{Keywords,,, guile, Referenzhandbuch zu GNU Guile}."
 
 #. type: itemize
-#: doc/guix-cookbook.texi:252
+#: doc/guix-cookbook.texi:262
 msgid "The percentage @code{%} is typically used for read-only global variables in the build stage.  Note that it is merely a convention, like @code{_} in C.  Scheme treats @code{%} exactly the same as any other letter."
 msgstr "Das Prozentzeichen @code{%} wird in der Regel für globale Variable auf Erstellungsebene benutzt, auf die nur lesend zugegriffen werden soll. Beachten Sie, dass es sich dabei nur um eine Konvention handelt, ähnlich wie @code{_} in C. Scheme behandelt @code{%} genau wie jedes andere Zeichen."
 
 #. type: itemize
-#: doc/guix-cookbook.texi:256
+#: doc/guix-cookbook.texi:266
 msgid "Modules are created with @code{define-module} (@pxref{Creating Guile Modules,,, guile, GNU Guile Reference Manual}).  For instance"
 msgstr "Module werden mit Hilfe von @code{define-module} erzeugt (siehe @ref{Creating Guile Modules,,, guile, GNU Guile Reference Manual}). Zum Beispiel definiert man mit"
 
 #. type: lisp
-#: doc/guix-cookbook.texi:262
+#: doc/guix-cookbook.texi:272
 #, no-wrap
 msgid ""
 "(define-module (guix build-system ruby)\n"
@@ -514,89 +526,89 @@ msgstr ""
 "            ruby-build-system))\n"
 
 #. type: itemize
-#: doc/guix-cookbook.texi:268
+#: doc/guix-cookbook.texi:278
 msgid "defines the module @code{guix build-system ruby} which must be located in @file{guix/build-system/ruby.scm} somewhere in the Guile load path.  It depends on the @code{(guix store)} module and it exports two variables, @code{ruby-build} and @code{ruby-build-system}."
 msgstr "das Modul @code{guix build-system ruby}, das sich unter dem Pfad @file{guix/build-system/ruby.scm} innerhalb irgendeines Verzeichnisses im Guile-Ladepfad befinden muss. Es hat eine Abhängigkeit auf das Modul @code{(guix store)} und exportiert zwei seiner Variablen, @code{ruby-build} und @code{ruby-build-system}."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:273
+#: doc/guix-cookbook.texi:283
 msgid "For a more detailed introduction, check out @uref{http://www.troubleshooters.com/codecorn/scheme_guile/hello.htm, Scheme at a Glance}, by Steve Litt."
 msgstr "Für eine detailliertere Einführung können Sie einen Blick auf Steve Litts @uref{http://www.troubleshooters.com/codecorn/scheme_guile/hello.htm, Scheme at a Glance} werfen."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:285
+#: doc/guix-cookbook.texi:295
 msgid "One of the reference Scheme books is the seminal ``Structure and Interpretation of Computer Programs'', by Harold Abelson and Gerald Jay Sussman, with Julie Sussman.  You'll find a @uref{https://mitpress.mit.edu/sites/default/files/sicp/index.html, free copy online}, together with @uref{https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-001-structure-and-interpretation-of-computer-programs-spring-2005/video-lectures/, videos of the lectures by the authors}.  The book is available in Texinfo format as the @code{sicp} Guix package.  Go ahead, run @code{guix install sicp} and start reading with @code{info sicp} (@pxref{,,, sicp, Structure and Interpretation of Computer Programs}).  An @uref{https://sarabander.github.io/sicp/, unofficial ebook is also available}."
 msgstr "Eines der Referenzbücher zu Scheme ist das einflussreiche „Structure and Interpretation of Computer Programs“, von Harold Abelson und Gerald Jay Sussman, mit Julie Sussman. Eine deutsche Übersetzung „Struktur und Interpretation von Computerprogrammen“ hat Susanne Daniels-Herold verfasst. Vom englischen Original finden Sie eine @uref{https://mitpress.mit.edu/sites/default/files/sicp/index.html, kostenlose Ausgabe online} zusammen mit @uref{https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-001-structure-and-interpretation-of-computer-programs-spring-2005/video-lectures/, Videos der von den Autoren gehaltenen Vorlesungen}. Das Buch können Sie im Texinfo-Format über das @code{sicp}-Guix-Paket beziehen. Probieren Sie es aus: Führen Sie @code{guix install sicp} aus und fangen Sie mit dem Lesen an, indem Sie @code{info sicp} eintippen (siehe @ref{,,, sicp, Structure and Interpretation of Computer Programs}). Es gibt auch ein @uref{https://sarabander.github.io/sicp/, inoffizielles E-Book}."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:288
+#: doc/guix-cookbook.texi:298
 msgid "You'll find more books, tutorials and other resources at @url{https://schemers.org/}."
 msgstr "Sie finden noch mehr Bücher, Anleitungen und andere Ressourcen auf @url{https://schemers.org/}."
 
 #. type: cindex
-#: doc/guix-cookbook.texi:294
+#: doc/guix-cookbook.texi:304
 #, no-wrap
 msgid "packaging"
 msgstr "Pakete schreiben"
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:300
+#: doc/guix-cookbook.texi:310
 msgid "This chapter is dedicated to teaching you how to add packages to the collection of packages that come with GNU Guix.  This involves writing package definitions in Guile Scheme, organizing them in package modules, and building them."
 msgstr "In diesem Kapitel bringen wir Ihnen bei, wie Sie Pakete zur mit GNU Guix ausgelieferten Paketsammlung beitragen. Dazu gehört, Paketdefinitionen in Guile Scheme zu schreiben, sie in Paketmodulen zu organisieren und sie zu erstellen."
 
 #. type: menuentry
-#: doc/guix-cookbook.texi:303
+#: doc/guix-cookbook.texi:313
 msgid "A tutorial on how to add packages to Guix."
 msgstr "Eine Anleitung, wie Sie Pakete zu Guix hinzufügen."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:314
+#: doc/guix-cookbook.texi:324
 msgid "GNU Guix stands out as the @emph{hackable} package manager, mostly because it uses @uref{https://www.gnu.org/software/guile/, GNU Guile}, a powerful high-level programming language, one of the @uref{https://en.wikipedia.org/wiki/Scheme_%28programming_language%29, Scheme} dialects from the @uref{https://en.wikipedia.org/wiki/Lisp_%28programming_language%29, Lisp family}."
 msgstr "GNU Guix zeichnet sich in erster Linie deswegen als das @emph{hackbare} Paketverwaltungswerkzeug aus, weil es mit @uref{https://www.gnu.org/software/guile/, GNU Guile} arbeitet, einer mächtigen, hochsprachlichen Programmiersprache, die einen der Dialekte von @uref{https://de.wikipedia.org/wiki/Scheme, Scheme} darstellt. Scheme wiederum gehört zur @uref{https://de.wikipedia.org/wiki/Lisp, Lisp-Familie von Programmiersprachen}."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:318
+#: doc/guix-cookbook.texi:328
 msgid "Package definitions are also written in Scheme, which empowers Guix in some very unique ways, unlike most other package managers that use shell scripts or simple languages."
 msgstr "Paketdefinitionen werden ebenso in Scheme geschrieben, wodurch Guix auf sehr einzigartige Weise mächtiger wird als die meisten anderen Paketverwaltungssysteme, die Shell-Skripte oder einfache Sprachen benutzen."
 
 #. type: itemize
-#: doc/guix-cookbook.texi:323
+#: doc/guix-cookbook.texi:333
 msgid "Use functions, structures, macros and all of Scheme expressiveness for your package definitions."
 msgstr "Sie können sich Funktionen, Strukturen, Makros und all die Ausdrucksstärke von Scheme für Ihre Paketdefinitionen zu Nutze machen."
 
 #. type: itemize
-#: doc/guix-cookbook.texi:327
+#: doc/guix-cookbook.texi:337
 msgid "Inheritance makes it easy to customize a package by inheriting from it and modifying only what is needed."
 msgstr "Durch Vererbung können Sie ohne viel Aufwand ein Paket anpassen, indem Sie von ihm erben lassen und nur das Nötige abändern."
 
 #. type: itemize
-#: doc/guix-cookbook.texi:337
+#: doc/guix-cookbook.texi:347
 msgid "Batch processing: the whole package collection can be parsed, filtered and processed.  Building a headless server with all graphical interfaces stripped out? It's possible.  Want to rebuild everything from source using specific compiler optimization flags? Pass the @code{#:make-flags \"...\"} argument to the list of packages.  It wouldn't be a stretch to think @uref{https://wiki.gentoo.org/wiki/USE_flag, Gentoo USE flags} here, but this goes even further: the changes don't have to be thought out beforehand by the packager, they can be @emph{programmed} by the user!"
 msgstr "Stapelverarbeitung („batch mode“) wird möglich; die ganze Paketsammlung kann analysiert, gefiltert und verarbeitet werden. Versuchen Sie, ein Serversystem ohne Bildschirm („headless“) auch tatsächlich von allen Grafikschnittstellen zu befreien? Das ist möglich. Möchten Sie alles von Neuem aus seinem Quellcode erstellen, aber mit eingeschalteten besonderen Compileroptimierungen? Übergeben Sie einfach das passende @code{#:make-flags \"...\"}-Argument an die Paketliste. Es wäre nicht übertrieben, hier an die @uref{https://wiki.gentoo.org/wiki/USE_flag, USE-Optionen von Gentoo} zu denken, aber das hier übertrifft sie: Der Paketautor muss vorher gar nicht darüber nachgedacht haben, der Nutzer kann sie selbst @emph{programmieren}!"
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:343
+#: doc/guix-cookbook.texi:353
 msgid "The following tutorial covers all the basics around package creation with Guix.  It does not assume much knowledge of the Guix system nor of the Lisp language.  The reader is only expected to be familiar with the command line and to have some basic programming knowledge."
 msgstr "Die folgende Anleitung erklärt alles Grundlegende über das Schreiben von Paketen mit Guix. Dabei setzen wir kein großes Wissen über das Guix-System oder die Lisp-Sprache voraus. Vom Leser wird nur erwartet, dass er mit der Befehlszeile vertraut ist und über grundlegende Programmierkenntnisse verfügt."
 
 #. type: subsection
-#: doc/guix-cookbook.texi:344 doc/guix-cookbook.texi:345
+#: doc/guix-cookbook.texi:354 doc/guix-cookbook.texi:355
 #, no-wrap
 msgid "A ``Hello World'' package"
 msgstr "Ein Hallo-Welt-Paket"
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:350
+#: doc/guix-cookbook.texi:360
 msgid "The ``Defining Packages'' section of the manual introduces the basics of Guix packaging (@pxref{Defining Packages,,, guix, GNU Guix Reference Manual}).  In the following section, we will partly go over those basics again."
 msgstr "Der Abschnitt „Pakete definieren“ im Handbuch führt in die Grundlagen des Paketschreibens für Guix ein (siehe @ref{Pakete definieren,,, guix.de, Referenzhandbuch zu GNU Guix}). Im folgenden Abschnitt werden wir diese Grundlagen teilweise rekapitulieren."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:356
+#: doc/guix-cookbook.texi:366
 msgid "GNU@tie{}Hello is a dummy project that serves as an idiomatic example for packaging.  It uses the GNU build system (@code{./configure && make && make install}).  Guix already provides a package definition which is a perfect example to start with.  You can look up its declaration with @code{guix edit hello} from the command line.  Let's see how it looks:"
 msgstr "GNU@tie{}Hello ist ein Projekt, das uns als Stellvertreter für „richtige“ Projekte und allgemeines Beispiel für das Schreiben von Paketen dient. Es verwendet das GNU-Erstellungssystem (@code{./configure && make && make install}). Guix stellt uns schon eine Paketdefinition zur Verfügung, die uns einen perfekten Ausgangspunkt bietet. Sie können sich ihre Deklaration anschauen, indem Sie @code{guix edit hello} von der Befehlszeile ausführen. Schauen wir sie uns an:"
 
 #. type: lisp
-#: doc/guix-cookbook.texi:377
+#: doc/guix-cookbook.texi:387
 #, no-wrap
 msgid ""
 "(define-public hello\n"
@@ -640,137 +652,137 @@ msgstr ""
 "    (license gpl3+)))\n"
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:381
+#: doc/guix-cookbook.texi:391
 msgid "As you can see, most of it is rather straightforward.  But let's review the fields together:"
 msgstr "Wie Sie sehen können, ist das meiste klar strukturiert. Aber sehen wir uns die Felder zusammen an:"
 
 #. type: item
-#: doc/guix-cookbook.texi:383
+#: doc/guix-cookbook.texi:393
 #, no-wrap
 msgid "name"
 msgstr "name"
 
 #. type: table
-#: doc/guix-cookbook.texi:386
+#: doc/guix-cookbook.texi:396
 msgid "The project name.  Using Scheme conventions, we prefer to keep it lower case, without underscore and using dash-separated words."
 msgstr "Der Name des Projekts. Wir halten uns an die Konventionen von Scheme und bevorzugen deshalb Kleinschreibung ohne Unterstriche, sondern mit Bindestrichen zwischen den Wörtern."
 
 #. type: item
-#: doc/guix-cookbook.texi:387
+#: doc/guix-cookbook.texi:397
 #, no-wrap
 msgid "source"
 msgstr "source"
 
 #. type: table
-#: doc/guix-cookbook.texi:390
+#: doc/guix-cookbook.texi:400
 msgid "This field contains a description of the source code origin.  The @code{origin} record contains these fields:"
 msgstr "Dieses Feld enthält eine Beschreibung, was der Ursprung des Quellcodes ist. Das @code{origin}-Verbundsobjekt enthält diese Felder:"
 
 #. type: item
-#: doc/guix-cookbook.texi:392
+#: doc/guix-cookbook.texi:402
 #, no-wrap
 msgid "The method, here @code{url-fetch} to download via HTTP/FTP, but other methods"
 msgstr "Die Methode. Wir verwenden hier @code{url-fetch}, um über HTTP/FTP herunterzuladen,"
 
 #. type: enumerate
-#: doc/guix-cookbook.texi:394
+#: doc/guix-cookbook.texi:404
 msgid "exist, such as @code{git-fetch} for Git repositories."
 msgstr "aber es gibt auch andere Methoden wie @code{git-fetch} für Git-Repositorys."
 
 #. type: item
-#: doc/guix-cookbook.texi:394
+#: doc/guix-cookbook.texi:404
 #, no-wrap
 msgid "The URI, which is typically some @code{https://} location for @code{url-fetch}.  Here"
 msgstr "Die URI, welche bei @code{url-fetch} normalerweise eine Ortsangabe mit @code{https://} ist."
 
 #. type: enumerate
-#: doc/guix-cookbook.texi:397
+#: doc/guix-cookbook.texi:407
 msgid "the special `mirror://gnu` refers to a set of well known locations, all of which can be used by Guix to fetch the source, should some of them fail."
 msgstr "In diesem Fall verweist die besondere URI ‚mirror://gnu‘ auf eine von mehreren wohlbekannten Ortsangaben, von denen Guix jede durchprobieren kann, um den Quellcode herunterzuladen, wenn es bei manchen davon nicht klappt."
 
 #. type: item
-#: doc/guix-cookbook.texi:397
+#: doc/guix-cookbook.texi:407
 #, no-wrap
 msgid "The @code{sha256} checksum of the requested file.  This is essential to ensure"
 msgstr "Die @code{sha256}-Prüfsumme der angefragten Datei."
 
 #. type: enumerate
-#: doc/guix-cookbook.texi:400
+#: doc/guix-cookbook.texi:410
 msgid "the source is not corrupted.  Note that Guix works with base32 strings, hence the call to the @code{base32} function."
 msgstr "Sie ist notwendig, damit sichergestellt werden kann, dass der Quellcode nicht beschädigt ist. Beachten Sie, dass Guix mit Zeichenketten in Base32-Kodierung arbeitet, weshalb wir die @code{base32}-Funktion aufrufen."
 
 #. type: item
-#: doc/guix-cookbook.texi:402
+#: doc/guix-cookbook.texi:412
 #, no-wrap
 msgid "build-system"
 msgstr "build-system"
 
 #. type: table
-#: doc/guix-cookbook.texi:411
+#: doc/guix-cookbook.texi:421
 msgid "This is where the power of abstraction provided by the Scheme language really shines: in this case, the @code{gnu-build-system} abstracts away the famous @code{./configure && make && make install} shell invocations.  Other build systems include the @code{trivial-build-system} which does not do anything and requires from the packager to program all the build steps, the @code{python-build-system}, the @code{emacs-build-system}, and many more (@pxref{Build Systems,,, guix, GNU Guix Reference Manual})."
 msgstr "Hier glänzt Schemes Fähigkeit zur Abstraktion: In diesem Fall abstrahiert @code{gnu-build-system} die berühmten Schritte @code{./configure && make && make install}, die sonst in der Shell aufgerufen würden. Zu den anderen Erstellungssystemen gehören das @code{trivial-build-system}, das nichts tut und dem Paketautoren das Schreiben sämtlicher Erstellungsschritte abverlangt, das @code{python-build-system}, das @code{emacs-build-system}, und viele mehr (siehe @ref{Erstellungssysteme,,, guix.de, Referenzhandbuch zu GNU Guix})."
 
 #. type: item
-#: doc/guix-cookbook.texi:412
+#: doc/guix-cookbook.texi:422
 #, no-wrap
 msgid "synopsis"
 msgstr "synopsis"
 
 #. type: table
-#: doc/guix-cookbook.texi:415
+#: doc/guix-cookbook.texi:425
 msgid "It should be a concise summary of what the package does.  For many packages a tagline from the project's home page can be used as the synopsis."
 msgstr "Die Zusammenfassung. Sie sollte eine knappe Beschreibung sein, was das Paket tut. Für viele Pakete findet sich auf der Homepage ein Einzeiler, der als Zusammenfassung benutzt werden kann."
 
 #. type: item
-#: doc/guix-cookbook.texi:416
+#: doc/guix-cookbook.texi:426
 #, no-wrap
 msgid "description"
 msgstr "description"
 
 #. type: table
-#: doc/guix-cookbook.texi:419
+#: doc/guix-cookbook.texi:429
 msgid "Same as for the synopsis, it's fine to re-use the project description from the homepage.  Note that Guix uses Texinfo syntax."
 msgstr "Genau wie bei der Zusammenfassung ist es in Ordnung, die Beschreibung des Projekts für das Paket wiederzuverwenden. Beachten Sie, dass Guix dafür Texinfo-Syntax verlangt."
 
 #. type: item
-#: doc/guix-cookbook.texi:420
+#: doc/guix-cookbook.texi:430
 #, no-wrap
 msgid "home-page"
 msgstr "home-page"
 
 #. type: table
-#: doc/guix-cookbook.texi:422
+#: doc/guix-cookbook.texi:432
 msgid "Use HTTPS if available."
 msgstr "Hier soll möglichst HTTPS benutzt werden."
 
 #. type: item
-#: doc/guix-cookbook.texi:423
+#: doc/guix-cookbook.texi:433
 #, no-wrap
 msgid "license"
 msgstr "license"
 
 #. type: table
-#: doc/guix-cookbook.texi:426
+#: doc/guix-cookbook.texi:436
 msgid "See @code{guix/licenses.scm} in the project source for a full list of available licenses."
 msgstr "Siehe die vollständige Liste verfügbarer Lizenzen in @code{guix/licenses.scm} im Guix-Quellcode."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:430
+#: doc/guix-cookbook.texi:440
 msgid "Time to build our first package! Nothing fancy here for now: we will stick to a dummy @code{my-hello}, a copy of the above declaration."
 msgstr "Es wird Zeit, unser erstes Paket zu schreiben! Aber noch nichts tolles, wir bleiben bei einem Paket @code{my-hello} stelltvertretend für „richtige“ Software; es ist eine Kopie obiger Deklaration."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:434
+#: doc/guix-cookbook.texi:444
 msgid "As with the ritualistic ``Hello World'' taught with most programming languages, this will possibly be the most ``manual'' approach.  We will work out an ideal setup later; for now we will go the simplest route."
 msgstr "Genau wie beim Ritual, Neulinge in Programmiersprachen „Hallo Welt“ schreiben zu lassen, fangen wir mit der vielleicht „arbeitsintensivsten“ Herangehensweise ans Paketeschreiben an. Wir kümmern uns später darum, wie man am besten an Paketen arbeitet; erst einmal nehmen wir den einfachsten Weg."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:436
+#: doc/guix-cookbook.texi:446
 msgid "Save the following to a file @file{my-hello.scm}."
 msgstr "Speichern Sie den folgenden Code in eine Datei @file{my-hello.scm}."
 
 #. type: lisp
-#: doc/guix-cookbook.texi:442
+#: doc/guix-cookbook.texi:452
 #, no-wrap
 msgid ""
 "(use-modules (guix packages)\n"
@@ -786,7 +798,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix-cookbook.texi:461
+#: doc/guix-cookbook.texi:471
 #, no-wrap
 msgid ""
 "(package\n"
@@ -828,22 +840,22 @@ msgstr ""
 "  (license gpl3+))\n"
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:464
+#: doc/guix-cookbook.texi:474
 msgid "We will explain the extra code in a moment."
 msgstr "Wir erklären den zusätzlichen Code in Kürze."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:471
+#: doc/guix-cookbook.texi:481
 msgid "Feel free to play with the different values of the various fields.  If you change the source, you'll need to update the checksum.  Indeed, Guix refuses to build anything if the given checksum does not match the computed checksum of the source code.  To obtain the correct checksum of the package declaration, we need to download the source, compute the sha256 checksum and convert it to base32."
 msgstr "Spielen Sie ruhig mit unterschiedlichen Werten für die verschiedenen Felder herum. Wenn Sie den Quellort (die „source“) ändern, müssen Sie die Prüfsumme aktualisieren. Tatsächlich weigert sich Guix, etwas zu erstellen, wenn die angegebene Prüfsumme nicht zu der berechneten Prüfsumme des Quellcodes passt. Um die richtige Prüfsumme für die Paketdeklaration zu finden, müssen wir den Quellcode herunterladen, die SHA256-Summe davon berechnen und sie in Base32 umwandeln."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:474
+#: doc/guix-cookbook.texi:484
 msgid "Thankfully, Guix can automate this task for us; all we need is to provide the URI:"
 msgstr "Glücklicherweise kann Guix diese Aufgabe automatisieren; wir müssen lediglich die URI übergeben."
 
 #. type: example
-#: doc/guix-cookbook.texi:478
+#: doc/guix-cookbook.texi:488
 #, no-wrap
 msgid ""
 "$ guix download mirror://gnu/hello/hello-2.10.tar.gz\n"
@@ -853,7 +865,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix-cookbook.texi:485
+#: doc/guix-cookbook.texi:495
 #, no-wrap
 msgid ""
 "Starting download of /tmp/guix-file.JLYgL7\n"
@@ -871,17 +883,17 @@ msgstr ""
 "0ssi1wpaf7plaswqqjwigppsg5fyh99vdlb9kzl7c9lng89ndq1i\n"
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:490
+#: doc/guix-cookbook.texi:500
 msgid "In this specific case the output tells us which mirror was chosen.  If the result of the above command is not the same as in the above snippet, update your @code{my-hello} declaration accordingly."
 msgstr "In diesem speziellen Fall sagt uns die Ausgabe, welcher Spiegelserver ausgewählt wurde. Wenn das Ergebnis des obigen Befehls nicht dasselbe ist wie im Codeschnipsel, dann aktualisieren Sie Ihre @code{my-hello}-Deklaration entsprechend."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:494
+#: doc/guix-cookbook.texi:504
 msgid "Note that GNU package tarballs come with an OpenPGP signature, so you should definitely check the signature of this tarball with `gpg` to authenticate it before going further:"
 msgstr "Beachten Sie, dass Tarball-Archive von GNU-Paketen mit einer OpenPGP-Signatur ausgeliefert werden, deshalb sollten Sie mit Sicherheit die Signatur dieses Tarballs mit „gpg“ überprüfen, um ihn zu authentifizieren, bevor Sie weitermachen."
 
 #. type: example
-#: doc/guix-cookbook.texi:498
+#: doc/guix-cookbook.texi:508
 #, no-wrap
 msgid ""
 "$ guix download mirror://gnu/hello/hello-2.10.tar.gz.sig\n"
@@ -891,7 +903,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix-cookbook.texi:513
+#: doc/guix-cookbook.texi:523
 #, no-wrap
 msgid ""
 "Starting download of /tmp/guix-file.03tFfb\n"
@@ -924,23 +936,23 @@ msgstr ""
 "Haupt-Fingerabdruck  = 8ED3 96E3 7E38 D471 A005  30D3 A955 3245 FDE9 B739\n"
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:516
+#: doc/guix-cookbook.texi:526
 msgid "You can then happily run"
 msgstr "Sie können dann unbesorgt das hier ausführen:"
 
 #. type: example
-#: doc/guix-cookbook.texi:520
+#: doc/guix-cookbook.texi:530
 #, no-wrap
 msgid "$ guix package --install-from-file=my-hello.scm\n"
 msgstr "$ guix package --install-from-file=my-hello.scm\n"
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:523
+#: doc/guix-cookbook.texi:533
 msgid "You should now have @code{my-hello} in your profile!"
 msgstr "Nun sollte @code{my-hello} in Ihrem Profil enthalten sein!"
 
 #. type: example
-#: doc/guix-cookbook.texi:529
+#: doc/guix-cookbook.texi:539
 #, no-wrap
 msgid ""
 "$ guix package --list-installed=my-hello\n"
@@ -952,49 +964,49 @@ msgstr ""
 "/gnu/store/f1db2mfm8syb8qvc357c53slbvf1g9m9-my-hello-2.10\n"
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:534
+#: doc/guix-cookbook.texi:544
 msgid "We've gone as far as we could without any knowledge of Scheme.  Before moving on to more complex packages, now is the right time to brush up on your Scheme knowledge.  @pxref{A Scheme Crash Course} to get up to speed."
 msgstr "Wir sind so weit gekommen, wie es ohne Scheme-Kenntnisse möglich ist. Bevor wir mit komplexeren Paketen weitermachen, ist jetzt der Zeitpunkt gekommen, Ihr Wissen über Scheme zu entstauben. Siehe @ref{Ein Schnellkurs in Scheme} für eine Auffrischung."
 
 #. type: subsection
-#: doc/guix-cookbook.texi:535 doc/guix-cookbook.texi:536
+#: doc/guix-cookbook.texi:545 doc/guix-cookbook.texi:546
 #, no-wrap
 msgid "Setup"
 msgstr "Herangehensweisen"
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:541
+#: doc/guix-cookbook.texi:551
 msgid "In the rest of this chapter we will rely on some basic Scheme programming knowledge.  Now let's detail the different possible setups for working on Guix packages."
 msgstr "Im Rest dieses Kapitels setzen wir ein paar grundlegende Scheme-Programmierkenntnisse voraus. Wir wollen uns nun verschiedene mögliche Herangehensweisen anschauen, wie man an Guix-Paketen arbeiten kann."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:543
+#: doc/guix-cookbook.texi:553
 msgid "There are several ways to set up a Guix packaging environment."
 msgstr "Es gibt mehrere Arten, eine Umgebung zum Paketeschreiben aufzusetzen."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:546
+#: doc/guix-cookbook.texi:556
 msgid "We recommend you work directly on the Guix source checkout since it makes it easier for everyone to contribute to the project."
 msgstr "Unsere Empfehlung ist, dass Sie direkt am Checkout des Guix-Quellcodes arbeiten, weil es dann für alle einfacher ist, zu Guix beizutragen."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:548
+#: doc/guix-cookbook.texi:558
 msgid "But first, let's look at other possibilities."
 msgstr "Werfen wir aber zunächst einen Blick auf andere Möglichkeiten."
 
 #. type: subsubsection
-#: doc/guix-cookbook.texi:549 doc/guix-cookbook.texi:550
+#: doc/guix-cookbook.texi:559 doc/guix-cookbook.texi:560
 #, no-wrap
 msgid "Local file"
 msgstr "Lokale Datei"
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:555
+#: doc/guix-cookbook.texi:565
 msgid "This is what we previously did with @samp{my-hello}.  With the Scheme basics we've covered, we are now able to explain the leading chunks.  As stated in @code{guix package --help}:"
 msgstr "Diese Methode haben wir zuletzt für @samp{my-hello} benutzt. Jetzt nachdem wir uns mit den Scheme-Grundlagen befasst haben, können wir uns den Code am Anfang erklären. @code{guix package --help} sagt uns:"
 
 #. type: example
-#: doc/guix-cookbook.texi:560
+#: doc/guix-cookbook.texi:570
 #, no-wrap
 msgid ""
 "  -f, --install-from-file=FILE\n"
@@ -1006,49 +1018,49 @@ msgstr ""
 "                           ausgewertet wird\n"
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:564
+#: doc/guix-cookbook.texi:574
 msgid "Thus the last expression @emph{must} return a package, which is the case in our earlier example."
 msgstr "Daher @emph{muss} der letzte Ausdruck ein Paket liefern, was im vorherigen Beispiel der Fall ist."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:568
+#: doc/guix-cookbook.texi:578
 msgid "The @code{use-modules} expression tells which of the modules we need in the file.  Modules are a collection of values and procedures.  They are commonly called ``libraries'' or ``packages'' in other programming languages."
 msgstr "Der Ausdruck @code{use-modules} sagt aus, welche Module in der Datei gebraucht werden. Module sind eine Sammlung aus Werten und Prozeduren. In anderen Programmiersprachen werden sie oft „Bibliotheken“ oder „Pakete“ genannt."
 
 #. type: node
-#: doc/guix-cookbook.texi:569
+#: doc/guix-cookbook.texi:579
 #, no-wrap
 msgid "@samp{GUIX_PACKAGE_PATH}"
 msgstr "@samp{GUIX_PACKAGE_PATH}"
 
 #. type: samp{#1}
-#: doc/guix-cookbook.texi:570
+#: doc/guix-cookbook.texi:580
 #, no-wrap
 msgid "GUIX_PACKAGE_PATH"
 msgstr "GUIX_PACKAGE_PATH"
 
 #. type: emph{#1}
-#: doc/guix-cookbook.texi:574
+#: doc/guix-cookbook.texi:584
 msgid "Note: Starting from Guix 0.16, the more flexible Guix @dfn{channels} are the preferred way and supersede @samp{GUIX_PACKAGE_PATH}.  See next section."
 msgstr "Anmerkung: Seit Guix 0.16 sind die vielseitigeren @dfn{Kanäle} von Guix die bevorzugte Wahl und sie lösen den @samp{GUIX_PACKAGE_PATH} ab. Siehe den nächsten Abschnitt."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:578
+#: doc/guix-cookbook.texi:588
 msgid "It can be tedious to specify the file from the command line instead of simply calling @code{guix package --install my-hello} as you would do with the official packages."
 msgstr "Es kann mühsam sein, die Datei auf der Befehlszeile anzugeben, statt einfach @code{guix package --install my-hello} aufzurufen, wie man es bei den offiziellen Paketen tun würde."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:581
+#: doc/guix-cookbook.texi:591
 msgid "Guix makes it possible to streamline the process by adding as many ``package declaration directories'' as you want."
 msgstr "Guix ermöglicht es, den Prozess zu optimieren, indem man so viele „Paketdeklarationsverzeichnisse“, wie man will, hinzufügt."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:584
-msgid "Create a directory, say @samp{~./guix-packages} and add it to the @samp{GUIX_PACKAGE_PATH} environment variable:"
-msgstr "Erzeugen Sie ein Verzeichnis, beispielsweise @samp{~./guix-packages}, und fügen Sie es zur Umgebungsvariablen @samp{GUIX_PACKAGE_PATH} hinzu:"
+#: doc/guix-cookbook.texi:594
+msgid "Create a directory, say @file{~./guix-packages} and add it to the @samp{GUIX_PACKAGE_PATH} environment variable:"
+msgstr "Erzeugen Sie ein Verzeichnis, beispielsweise @file{~./guix-packages}, und fügen Sie es zur Umgebungsvariablen @env{GUIX_PACKAGE_PATH} hinzu:"
 
 #. type: example
-#: doc/guix-cookbook.texi:588
+#: doc/guix-cookbook.texi:598
 #, no-wrap
 msgid ""
 "$ mkdir ~/guix-packages\n"
@@ -1058,17 +1070,17 @@ msgstr ""
 "$ export GUIX_PACKAGE_PATH=~/guix-packages\n"
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:591
+#: doc/guix-cookbook.texi:601
 msgid "To add several directories, separate them with a colon (@code{:})."
 msgstr "Um mehrere Verzeichnisse hinzuzufügen, trennen Sie diese ab durch einen Doppelpunkt (@code{:})."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:593
+#: doc/guix-cookbook.texi:603
 msgid "Our previous @samp{my-hello} needs some adjustments though:"
 msgstr "Unser @samp{my-hello} von vorher braucht zudem ein paar Anpassungen:"
 
 #. type: lisp
-#: doc/guix-cookbook.texi:600
+#: doc/guix-cookbook.texi:610
 #, no-wrap
 msgid ""
 "(define-module (my-hello)\n"
@@ -1086,7 +1098,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix-cookbook.texi:620
+#: doc/guix-cookbook.texi:630
 #, no-wrap
 msgid ""
 "(define-public my-hello\n"
@@ -1130,17 +1142,17 @@ msgstr ""
 "    (license gpl3+)))\n"
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:626
+#: doc/guix-cookbook.texi:636
 msgid "Note that we have assigned the package value to an exported variable name with @code{define-public}.  This is effectively assigning the package to the @code{my-hello} variable so that it can be referenced, among other as dependency of other packages."
 msgstr "Beachten Sie, dass wir den Paketwert einer exportierten Variablen mit @code{define-public} zugewiesen haben. Das bedeutet, das Paket wird einer Variablen @code{my-hello} zugewiesen, damit darauf verwiesen werden kann. Unter anderem kann es dadurch als Abhängigkeit anderer Pakete verwendet werden."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:631
+#: doc/guix-cookbook.texi:641
 msgid "If you use @code{guix package --install-from-file=my-hello.scm} on the above file, it will fail because the last expression, @code{define-public}, does not return a package.  If you want to use @code{define-public} in this use-case nonetheless, make sure the file ends with an evaluation of @code{my-hello}:"
 msgstr "Wenn Sie @code{guix package --install-from-file=my-hello.scm} auf der obigen Datei aufrufen, geht es schief, weil der letzte Ausdruck, @code{define-public}, kein Paket zurückliefert. Wenn Sie trotzdem @code{define-public} für jene Herangehensweise verwenden möchten, stellen Sie sicher, dass am Ende der Datei eine Auswertung von @code{my-hello} steht:"
 
 #. type: lisp
-#: doc/guix-cookbook.texi:637
+#: doc/guix-cookbook.texi:647
 #, no-wrap
 msgid ""
 "; ...\n"
@@ -1156,102 +1168,102 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix-cookbook.texi:639
+#: doc/guix-cookbook.texi:649
 #, no-wrap
 msgid "my-hello\n"
 msgstr "my-hello\n"
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:642
+#: doc/guix-cookbook.texi:652
 msgid "This last example is not very typical."
 msgstr "Meistens tut man das aber nicht."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:645
+#: doc/guix-cookbook.texi:655
 msgid "Now @samp{my-hello} should be part of the package collection like all other official packages.  You can verify this with:"
 msgstr "@samp{my-hello} sollte nun Teil der Paketsammlung sein, genau wie all die anderen, offiziellen Pakete. Sie können das so ausprobieren:"
 
 #. type: example
-#: doc/guix-cookbook.texi:648
+#: doc/guix-cookbook.texi:658
 #, no-wrap
 msgid "$ guix package --show=my-hello\n"
 msgstr "$ guix package --show=my-hello\n"
 
 #. type: subsubsection
-#: doc/guix-cookbook.texi:650 doc/guix-cookbook.texi:651
+#: doc/guix-cookbook.texi:660 doc/guix-cookbook.texi:661
 #, no-wrap
 msgid "Guix channels"
 msgstr "Guix-Kanäle"
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:657
+#: doc/guix-cookbook.texi:667
 msgid "Guix 0.16 features channels, which is very similar to @samp{GUIX_PACKAGE_PATH} but provides better integration and provenance tracking.  Channels are not necessarily local, they can be maintained as a public Git repository for instance.  Of course, several channels can be used at the same time."
 msgstr "Guix 0.16 hat Kanäle eingeführt, die sehr ähnlich zu @samp{GUIX_PACKAGE_PATH} sind, sich aber besser integrieren und Provenienzverfolgung ermöglichen. Kanäle befinden sich nicht unbedingt auf einem lokalen Rechner, sie können zum Beispiel auch anderen als öffentliches Git-Repository angeboten werden. Natürlich können zur selben Zeit mehrere Kanäle benutzt werden."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:659
+#: doc/guix-cookbook.texi:669
 msgid "@xref{Channels,,, guix, GNU Guix Reference Manual} for setup details."
 msgstr "Siehe @ref{Kanäle,,, guix.de, Referenzhandbuch zu GNU Guix} für Details zu deren Einrichtung."
 
 #. type: subsubsection
-#: doc/guix-cookbook.texi:660 doc/guix-cookbook.texi:661
+#: doc/guix-cookbook.texi:670 doc/guix-cookbook.texi:671
 #, no-wrap
 msgid "Direct checkout hacking"
 msgstr "Direkt am Checkout hacken"
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:666
+#: doc/guix-cookbook.texi:676
 msgid "Working directly on the Guix project is recommended: it reduces the friction when the time comes to submit your changes upstream to let the community benefit from your hard work!"
 msgstr "Es wird empfohlen, direkt am Code des Guix-Projekts zu arbeiten, weil Ihre Änderungen dann später mit weniger Schwierigkeiten bei uns eingereicht werden können, damit Ihre harte Arbeit der Gemeinschaft nützt!"
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:672
+#: doc/guix-cookbook.texi:682
 msgid "Unlike most software distributions, the Guix repository holds in one place both the tooling (including the package manager) and the package definitions.  This choice was made so that it would give developers the flexibility to modify the API without breakage by updating all packages at the same time.  This reduces development inertia."
 msgstr "Anders als die meisten Software-Distributionen werden bei Guix sowohl Werkzeuge (einschließlich des Paketverwaltungsprogramms) als auch die Paketdefinitionen in einem Repository gespeichert. Der Grund für diese Entscheidung war, dass Entwickler die Freiheit haben sollten, die Programmierschnittstelle (API) zu ändern, ohne Inkompatibilitäten einzuführen, indem alle Pakete gleichzeitig mit der API aktualisiert werden. Dadurch wird die Entwicklung weniger träge."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:674
+#: doc/guix-cookbook.texi:684
 msgid "Check out the official @uref{https://git-scm.com/, Git} repository:"
 msgstr "Legen Sie ein Checkout des offiziellen @uref{https://git-scm.com/, Git-Repositorys} an:"
 
 #. type: example
-#: doc/guix-cookbook.texi:677
+#: doc/guix-cookbook.texi:687
 #, no-wrap
 msgid "$ git clone https://git.savannah.gnu.org/git/guix.git\n"
 msgstr "$ git clone https://git.savannah.gnu.org/git/guix.git\n"
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:681
+#: doc/guix-cookbook.texi:691
 msgid "In the rest of this article, we use @samp{$GUIX_CHECKOUT} to refer to the location of the checkout."
 msgstr "Im Rest dieses Artikels schreiben wir @samp{$GUIX_CHECKOUT}, wenn wir den Ort meinen, an dem das Checkout gespeichert ist."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:685
+#: doc/guix-cookbook.texi:695
 msgid "Follow the instructions in the manual (@pxref{Contributing,,, guix, GNU Guix Reference Manual}) to set up the repository environment."
 msgstr "Folgen Sie den Anweisungen im Handbuch (siehe (@ref{Mitwirken,,, guix.de, Referenzhandbuch zu GNU Guix}), um die nötige Umgebung für die Nutzung des Repositorys herzustellen."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:688
+#: doc/guix-cookbook.texi:698
 msgid "Once ready, you should be able to use the package definitions from the repository environment."
 msgstr "Sobald sie hergestellt wurde, sollten Sie die Paketdefinitionen aus der Repository-Umgebung benutzen können."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:690
+#: doc/guix-cookbook.texi:700
 msgid "Feel free to edit package definitions found in @samp{$GUIX_CHECKOUT/gnu/packages}."
 msgstr "Versuchen Sie sich ruhig daran, die Paketdefinitionen zu editieren, die Sie in @samp{$GUIX_CHECKOUT/gnu/packages} finden."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:694
+#: doc/guix-cookbook.texi:704
 msgid "The @samp{$GUIX_CHECKOUT/pre-inst-env} script lets you use @samp{guix} over the package collection of the repository (@pxref{Running Guix Before It Is Installed,,, guix, GNU Guix Reference Manual})."
 msgstr "Das Skript @samp{$GUIX_CHECKOUT/pre-inst-env} ermöglicht es Ihnen, @samp{guix} auf der Paketsammlung des Repositorys aufzurufen (siehe @ref{Guix vor der Installation ausführen,,, guix.de, Referenzhandbuch zu GNU Guix})."
 
 #. type: itemize
-#: doc/guix-cookbook.texi:698
+#: doc/guix-cookbook.texi:708
 msgid "Search packages, such as Ruby:"
 msgstr "So suchen Sie Pakete, z.B.@: Ruby:"
 
 #. type: example
-#: doc/guix-cookbook.texi:705
+#: doc/guix-cookbook.texi:715
 #, no-wrap
 msgid ""
 "  $ cd $GUIX_CHECKOUT\n"
@@ -1267,12 +1279,12 @@ msgstr ""
 "      ruby    2.2.2   out     gnu/packages/ruby.scm:39:2\n"
 
 #. type: itemize
-#: doc/guix-cookbook.texi:709
+#: doc/guix-cookbook.texi:719
 msgid "Build a package, here Ruby version 2.1:"
 msgstr "Erstellen Sie ein Paket, z.B.@: Ruby in Version 2.1:"
 
 #. type: example
-#: doc/guix-cookbook.texi:713
+#: doc/guix-cookbook.texi:723
 #, no-wrap
 msgid ""
 "  $ ./pre-inst-env guix build --keep-failed ruby@@2.1\n"
@@ -1282,65 +1294,65 @@ msgstr ""
 "  /gnu/store/c13v73jxmj2nir2xjqaz5259zywsa9zi-ruby-2.1.6\n"
 
 #. type: itemize
-#: doc/guix-cookbook.texi:717
+#: doc/guix-cookbook.texi:727
 msgid "Install it to your user profile:"
 msgstr "Installieren Sie es in Ihr Profil:"
 
 #. type: example
-#: doc/guix-cookbook.texi:720
+#: doc/guix-cookbook.texi:730
 #, no-wrap
 msgid "  $ ./pre-inst-env guix package --install ruby@@2.1\n"
 msgstr "  $ ./pre-inst-env guix package --install ruby@@2.1\n"
 
 #. type: itemize
-#: doc/guix-cookbook.texi:724
+#: doc/guix-cookbook.texi:734
 msgid "Check for common mistakes:"
 msgstr "Prüfen Sie auf häufige Fehler:"
 
 #. type: example
-#: doc/guix-cookbook.texi:727
+#: doc/guix-cookbook.texi:737
 #, no-wrap
 msgid "  $ ./pre-inst-env guix lint ruby@@2.1\n"
 msgstr "  $ ./pre-inst-env guix lint ruby@@2.1\n"
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:732
+#: doc/guix-cookbook.texi:742
 msgid "Guix strives at maintaining a high packaging standard; when contributing to the Guix project, remember to"
 msgstr "Guix ist bestrebt, einen hohen Standard an seine Pakete anzusetzen. Wenn Sie Beiträge zum Guix-Projekt leisten,"
 
 #. type: itemize
-#: doc/guix-cookbook.texi:736
+#: doc/guix-cookbook.texi:746
 msgid "follow the coding style (@pxref{Coding Style,,, guix, GNU Guix Reference Manual}),"
 msgstr "schreiben Sie Ihren Code im Stil von Guix (siehe @ref{Programmierstil,,, guix.de, Referenzhandbuch zu GNU Guix})"
 
 #. type: itemize
-#: doc/guix-cookbook.texi:738
+#: doc/guix-cookbook.texi:748
 msgid "and review the check list from the manual (@pxref{Submitting Patches,,, guix, GNU Guix Reference Manual})."
 msgstr "und schauen Sie sich die Kontrollliste aus dem Handbuch (siehe @ref{Einreichen von Patches,,, guix.de, Referenzhandbuch zu GNU Guix}) noch einmal an."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:742
+#: doc/guix-cookbook.texi:752
 msgid "Once you are happy with the result, you are welcome to send your contribution to make it part of Guix.  This process is also detailed in the manual.  (@pxref{Contributing,,, guix, GNU Guix Reference Manual})"
 msgstr "Sobald Sie mit dem Ergebnis zufrieden sind, freuen wir uns, wenn Sie Ihren Beitrag an uns schicken, damit wir ihn in Guix aufnehmen. Dieser Prozess wird auch im Handbuch beschrieben (siehe @ref{Mitwirken,,, guix.de, Referenzhandbuch zu GNU Guix})<."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:745
+#: doc/guix-cookbook.texi:755
 msgid "It's a community effort so the more join in, the better Guix becomes!"
 msgstr "Es handelt sich um eine gemeinschaftliche Arbeit, je mehr also mitmachen, desto besser wird Guix!"
 
 #. type: subsection
-#: doc/guix-cookbook.texi:746 doc/guix-cookbook.texi:747
+#: doc/guix-cookbook.texi:756 doc/guix-cookbook.texi:757
 #, no-wrap
 msgid "Extended example"
 msgstr "Erweitertes Beispiel"
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:752
+#: doc/guix-cookbook.texi:762
 msgid "The above ``Hello World'' example is as simple as it goes.  Packages can be more complex than that and Guix can handle more advanced scenarios.  Let's look at another, more sophisticated package (slightly modified from the source):"
 msgstr "Einfacher als obiges Hallo-Welt-Beispiel wird es nicht. Pakete können auch komplexer als das sein und Guix eignet sich für fortgeschrittenere Szenarien. Schauen wir uns ein anderes, umfangreicheres Paket an (leicht modifiziert gegenüber Guix’ Quellcode):"
 
 #. type: lisp
-#: doc/guix-cookbook.texi:766
+#: doc/guix-cookbook.texi:776
 #, no-wrap
 msgid ""
 "(define-module (gnu packages version-control)\n"
@@ -1372,7 +1384,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix-cookbook.texi:826
+#: doc/guix-cookbook.texi:836
 #, no-wrap
 msgid ""
 "(define-public my-libgit2\n"
@@ -1395,11 +1407,11 @@ msgid ""
 "                (snippet '(begin\n"
 "                            ;; Remove bundled software.\n"
 "                            (delete-file-recursively \"deps\")\n"
-"                            #t))))\n"
+"                            #true))))\n"
 "      (build-system cmake-build-system)\n"
 "      (outputs '(\"out\" \"debug\"))\n"
 "      (arguments\n"
-"       `(#:tests? #t                            ; Run the test suite (this is the default)\n"
+"       `(#:tests? #true                         ; Run the test suite (this is the default)\n"
 "         #:configure-flags '(\"-DUSE_SHA1DC=ON\") ; SHA-1 collision detection\n"
 "         #:phases\n"
 "         (modify-phases %standard-phases\n"
@@ -1410,12 +1422,12 @@ msgid ""
 "               (substitute* \"tests/clar/fs.h\"\n"
 "                 ((\"/bin/cp\") (which \"cp\"))\n"
 "                 ((\"/bin/rm\") (which \"rm\")))\n"
-"               #t))\n"
+"               #true))\n"
 "           ;; Run checks more verbosely.\n"
 "           (replace 'check\n"
 "             (lambda _ (invoke \"./libgit2_clar\" \"-v\" \"-Q\")))\n"
 "           (add-after 'unpack 'make-files-writable-for-tests\n"
-"               (lambda _ (for-each make-file-writable (find-files \".\" \".*\")))))))\n"
+"             (lambda _ (for-each make-file-writable (find-files \".\" \".*\")))))))\n"
 "      (inputs\n"
 "       `((\"libssh2\" ,libssh2)\n"
 "         (\"http-parser\" ,http-parser)\n"
@@ -1455,11 +1467,11 @@ msgstr ""
 "                (snippet '(begin\n"
 "                            ;; Remove bundled software.\n"
 "                            (delete-file-recursively \"deps\")\n"
-"                            #t))))\n"
+"                            #true))))\n"
 "      (build-system cmake-build-system)\n"
 "      (outputs '(\"out\" \"debug\"))\n"
 "      (arguments\n"
-"       `(#:tests? #t                            ; Run the test suite (this is the default)\n"
+"       `(#:tests? #true                         ; Run the test suite (this is the default)\n"
 "         #:configure-flags '(\"-DUSE_SHA1DC=ON\") ; SHA-1 collision detection\n"
 "         #:phases\n"
 "         (modify-phases %standard-phases\n"
@@ -1470,12 +1482,12 @@ msgstr ""
 "               (substitute* \"tests/clar/fs.h\"\n"
 "                 ((\"/bin/cp\") (which \"cp\"))\n"
 "                 ((\"/bin/rm\") (which \"rm\")))\n"
-"               #t))\n"
+"               #true))\n"
 "           ;; Run checks more verbosely.\n"
 "           (replace 'check\n"
 "             (lambda _ (invoke \"./libgit2_clar\" \"-v\" \"-Q\")))\n"
 "           (add-after 'unpack 'make-files-writable-for-tests\n"
-"               (lambda _ (for-each make-file-writable (find-files \".\" \".*\")))))))\n"
+"             (lambda _ (for-each make-file-writable (find-files \".\" \".*\")))))))\n"
 "      (inputs\n"
 "       `((\"libssh2\" ,libssh2)\n"
 "         (\"http-parser\" ,http-parser)\n"
@@ -1496,65 +1508,94 @@ msgstr ""
 "      (license license:gpl2))))\n"
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:831
+#: doc/guix-cookbook.texi:841
 msgid "(In those cases were you only want to tweak a few fields from a package definition, you should rely on inheritance instead of copy-pasting everything.  See below.)"
 msgstr "(In solchen Fällen, wo Sie nur ein paar wenige Felder einer Paketdefinition abändern wollen, wäre es wirklich besser, wenn Sie Vererbung einsetzen würden, statt alles abzuschreiben. Siehe unten.)"
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:833
+#: doc/guix-cookbook.texi:843
 msgid "Let's discuss those fields in depth."
 msgstr "Reden wir über diese Felder im Detail."
 
 #. type: subsubsection
-#: doc/guix-cookbook.texi:834
+#: doc/guix-cookbook.texi:844
 #, no-wrap
 msgid "@code{git-fetch} method"
 msgstr "@code{git-fetch}-Methode"
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:841
+#: doc/guix-cookbook.texi:851
 msgid "Unlike the @code{url-fetch} method, @code{git-fetch} expects a @code{git-reference} which takes a Git repository and a commit.  The commit can be any Git reference such as tags, so if the @code{version} is tagged, then it can be used directly.  Sometimes the tag is prefixed with a @code{v}, in which case you'd use @code{(commit (string-append \"v\" version))}."
 msgstr "Anders als die @code{url-fetch}-Methode erwartet @code{git-fetch} eine @code{git-reference}, welche ein Git-Repository und einen Commit entgegennimmt. Der Commit kann eine beliebige Art von Git-Referenz sein, z.B.@: ein Tag. Wenn die @code{version} also mit einem Tag versehen ist, kann sie einfach benutzt werden. Manchmal ist dem Tag ein Präfix @code{v} vorangestellt. In diesem Fall würden Sie @code{(commit (string-append \"v\" version))} schreiben."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:845
-msgid "To ensure that the source code from the Git repository is stored in a unique directory with a readable name we use @code{(file-name (git-file-name name version))}."
-msgstr "Um sicherzustellen, dass der Quellcode aus dem Git-Repository in einem nachvollziehbaren Verzeichnis mit lesbarem Namen landet, schreiben wir @code{(file-name (git-file-name name version))}."
+#: doc/guix-cookbook.texi:855
+msgid "To ensure that the source code from the Git repository is stored in a directory with a descriptive name, we use @code{(file-name (git-file-name name version))}."
+msgstr "Um sicherzustellen, dass der Quellcode aus dem Git-Repository in einem Verzeichnis mit nachvollziehbarem Namen landet, schreiben wir @code{(file-name (git-file-name name version))}."
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:860
+msgid "The @code{git-version} procedure can be used to derive the version when packaging programs for a specific commit, following the Guix contributor guidelines (@pxref{Version Numbers,,, guix, GNU Guix Reference Manual})."
+msgstr "Mit der Prozedur @code{git-version} kann die Version beim Paketieren eines bestimmten Commits eines Programms entsprechend den Richtlinien für Beiträge zu Guix (@pxref{Versionsnummern,,, guix.de, Referenzhandbuch zu GNU Guix}) abgeleitet werden."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:848
-msgid "Note that there is also a @code{git-version} procedure that can be used to derive the version when packaging programs for a specific commit."
-msgstr "Beachten Sie, dass auch eine Prozedur @code{git-version} existiert, mit der die Version beim Paketieren eines bestimmten Commits eines Programms abgeleitet werden kann."
+#: doc/guix-cookbook.texi:864
+msgid "How does one obtain the @code{sha256} hash that's in there, you ask? By invoking @command{guix hash} on a checkout of the desired commit, along these lines:"
+msgstr "Sie fragen, woher man den darin angegebenen @code{sha256}-Hash bekommt? Indem Sie @command{guix hash} auf einem Checkout des gewünschten Commits aufrufen, ungefähr so:"
+
+#. type: example
+#: doc/guix-cookbook.texi:870
+#, no-wrap
+msgid ""
+"git clone https://github.com/libgit2/libgit2/\n"
+"cd libgit2\n"
+"git checkout v0.26.6\n"
+"guix hash -rx .\n"
+msgstr ""
+"git clone https://github.com/libgit2/libgit2/\n"
+"cd libgit2\n"
+"git checkout v0.26.6\n"
+"guix hash -rx .\n"
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:875
+msgid "@command{guix hash -rx} computes a SHA256 hash over the whole directory, excluding the @file{.git} sub-directory (@pxref{Invoking guix hash,,, guix, GNU Guix Reference Manual})."
+msgstr "@command{guix hash -rx} berechnet einen SHA256-Hash des gesamten Verzeichnisses, abgesehen vom @file{.git}-Unterverzeichnis (siehe @ref{Aufruf von guix hash,,, guix.de, Referenzhandbuch zu GNU Guix})."
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:878
+msgid "In the future, @command{guix download} will hopefully be able to do these steps for you, just like it does for regular downloads."
+msgstr "In Zukunft wird @command{guix download} diese Schritte hoffentlich für Sie erledigen können, genau wie es das für normales Herunterladen macht."
 
 #. type: subsubsection
-#: doc/guix-cookbook.texi:849
+#: doc/guix-cookbook.texi:879
 #, no-wrap
 msgid "Snippets"
 msgstr "Schnipsel"
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:855
-msgid "Snippets are quoted (i.e. non-evaluated) Scheme code that are a means of patching the source.  They are a Guix-y alternative to the traditional @samp{.patch} files.  Because of the quote, the code in only evaluated when passed to the Guix daemon for building.  There can be as many snippets as needed."
-msgstr "„Snippets“, deutsch Schnipsel, sind mit z.B.@: @code{quote}-Zeichen maskierte, also nicht ausgewertete, Stücke Scheme-Code, mit denen der Quellcode gepatcht wird. Sie sind eine guixige Alternative zu traditionellen @samp{.patch}-Dateien. Wegen der Maskierung werden sie erst dann ausgewertet, wenn sie an den Guix-Daemon zum Erstellen übergeben werden. Es kann so viele Schnipsel geben wie nötig."
+#: doc/guix-cookbook.texi:885
+msgid "Snippets are quoted (i.e. non-evaluated) Scheme code that are a means of patching the source.  They are a Guix-y alternative to the traditional @file{.patch} files.  Because of the quote, the code in only evaluated when passed to the Guix daemon for building.  There can be as many snippets as needed."
+msgstr "„Snippets“, deutsch Schnipsel, sind mit z.B.@: @code{quote}-Zeichen maskierte, also nicht ausgewertete, Stücke Scheme-Code, mit denen der Quellcode gepatcht wird. Sie sind eine guixige Alternative zu traditionellen @file{.patch}-Dateien. Wegen der Maskierung werden sie erst dann ausgewertet, wenn sie an den Guix-Daemon zum Erstellen übergeben werden. Es kann so viele Schnipsel geben wie nötig."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:858
+#: doc/guix-cookbook.texi:888
 msgid "Snippets might need additional Guile modules which can be imported from the @code{modules} field."
 msgstr "In Schnipseln könnten zusätzliche Guile-Module benötigt werden. Diese können importiert werden, indem man sie im Feld @code{modules} angibt."
 
 #. type: subsubsection
-#: doc/guix-cookbook.texi:859
+#: doc/guix-cookbook.texi:889
 #, no-wrap
 msgid "Inputs"
 msgstr "Eingaben"
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:862
+#: doc/guix-cookbook.texi:892
 msgid "First, a syntactic comment: See the quasi-quote / comma syntax?"
 msgstr "Zunächst ein syntaktischer Kommentar: Sehen Sie die Syntax mit @code{quasiquote} und Komma?"
 
 #. type: lisp
-#: doc/guix-cookbook.texi:866
+#: doc/guix-cookbook.texi:896
 #, no-wrap
 msgid ""
 "    (native-inputs\n"
@@ -1564,12 +1605,12 @@ msgstr ""
 "     `((\"pkg-config\" ,pkg-config)))\n"
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:869
+#: doc/guix-cookbook.texi:899
 msgid "is equivalent to"
 msgstr "ist das Gleiche wie"
 
 #. type: lisp
-#: doc/guix-cookbook.texi:873
+#: doc/guix-cookbook.texi:903
 #, no-wrap
 msgid ""
 "    (native-inputs\n"
@@ -1579,127 +1620,127 @@ msgstr ""
 "     (list (list \"pkg-config\" pkg-config)))\n"
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:876
+#: doc/guix-cookbook.texi:906
 msgid "You'll mostly see the former because it's shorter."
 msgstr "Sie werden hauptsächlich erstere Variante sehen, weil sie kürzer ist."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:878
+#: doc/guix-cookbook.texi:908
 msgid "There are 3 different input types.  In short:"
 msgstr "Es gibt 3 verschiedene Arten von Eingaben. Kurz gefasst:"
 
 #. type: item
-#: doc/guix-cookbook.texi:880
+#: doc/guix-cookbook.texi:910
 #, no-wrap
 msgid "native-inputs"
 msgstr "native-inputs"
 
 #. type: table
-#: doc/guix-cookbook.texi:883
+#: doc/guix-cookbook.texi:913
 msgid "Required for building but not runtime -- installing a package through a substitute won't install these inputs."
 msgstr "Sie werden zum Erstellen gebraucht, aber @emph{nicht} zur Laufzeit — wenn Sie ein Paket als Substitut installieren, werden diese Eingaben nirgendwo installiert."
 
 #. type: item
-#: doc/guix-cookbook.texi:883
+#: doc/guix-cookbook.texi:913
 #, no-wrap
 msgid "inputs"
 msgstr "inputs"
 
 #. type: table
-#: doc/guix-cookbook.texi:886
+#: doc/guix-cookbook.texi:916
 msgid "Installed in the store but not in the profile, as well as being present at build time."
 msgstr "Sie werden in den Store installiert, aber nicht in das Profil, und sie stehen beim Erstellen zur Verfügung."
 
 #. type: item
-#: doc/guix-cookbook.texi:886
+#: doc/guix-cookbook.texi:916
 #, no-wrap
 msgid "propagated-inputs"
 msgstr "propagated-inputs"
 
 #. type: table
-#: doc/guix-cookbook.texi:889
+#: doc/guix-cookbook.texi:919
 msgid "Installed in the store and in the profile, as well as being present at build time."
 msgstr "Sie werden sowohl in den Store als auch ins Profil installiert und sind auch beim Erstellen verfügbar."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:892
+#: doc/guix-cookbook.texi:922
 msgid "@xref{Package Reference,,, guix, GNU Guix Reference Manual} for more details."
 msgstr "Siehe @ref{„package“-Referenz,,, guix.de, Referenzhandbuch zu GNU Guix} für mehr Details."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:896
+#: doc/guix-cookbook.texi:926
 msgid "The distinction between the various inputs is important: if a dependency can be handled as an @emph{input} instead of a @emph{propagated input}, it should be done so, or else it ``pollutes'' the user profile for no good reason."
 msgstr "Der Unterschied zwischen den verschiedenen Eingaben ist wichtig: Wenn eine Abhängigkeit als @code{input} statt als @code{propagated-input} ausreicht, dann sollte sie auch so eingeordnet werden, sonst „verschmutzt“ sie das Profil des Benutzers ohne guten Grund."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:903
+#: doc/guix-cookbook.texi:933
 msgid "For instance, a user installing a graphical program that depends on a command line tool might only be interested in the graphical part, so there is no need to force the command line tool into the user profile.  The dependency is a concern to the package, not to the user.  @emph{Inputs} make it possible to handle dependencies without bugging the user by adding undesired executable files (or libraries) to their profile."
 msgstr "Wenn eine Nutzerin beispielsweise ein grafisches Programm installiert, das von einem Befehlszeilenwerkzeug abhängt, sie sich aber nur für den grafischen Teil interessiert, dann sollten wir sie nicht zur Installation des Befehlszeilenwerkzeugs in ihr Benutzerprofil zwingen. Um die Abhängigkeit sollte sich das Paket kümmern, nicht seine Benutzerin. Mit @emph{Inputs} können wir Abhängigkeiten verwenden, wo sie gebraucht werden, ohne Nutzer zu belästigen, indem wir ausführbare Dateien (oder Bibliotheken) in deren Profil installieren."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:909
+#: doc/guix-cookbook.texi:939
 msgid "Same goes for @emph{native-inputs}: once the program is installed, build-time dependencies can be safely garbage-collected.  It also matters when a substitute is available, in which case only the @emph{inputs} and @emph{propagated inputs} will be fetched: the @emph{native inputs} are not required to install a package from a substitute."
 msgstr "Das Gleiche gilt für @emph{native-inputs}: Wenn das Programm einmal installiert ist, können Abhängigkeiten zur Erstellungszeit gefahrlos dem Müllsammler anvertraut werden. Sie sind auch besser, wenn ein Substitut verfügbar ist, so dass nur die @code{inputs} und @code{propagated-inputs} heruntergeladen werden; @code{native-inputs} braucht niemand, der das Paket aus einem Substitut heraus installiert."
 
 #. type: subsubsection
-#: doc/guix-cookbook.texi:910
+#: doc/guix-cookbook.texi:940
 #, no-wrap
 msgid "Outputs"
 msgstr "Ausgaben"
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:914
+#: doc/guix-cookbook.texi:944
 msgid "Just like how a package can have multiple inputs, it can also produce multiple outputs."
 msgstr "Genau wie ein Paket mehrere Eingaben haben kann, kann es auch mehrere Ausgaben haben."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:916
+#: doc/guix-cookbook.texi:946
 msgid "Each output corresponds to a separate directory in the store."
 msgstr "Jede Ausgabe entspricht einem anderen Verzeichnis im Store."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:919
+#: doc/guix-cookbook.texi:949
 msgid "The user can choose which output to install; this is useful to save space or to avoid polluting the user profile with unwanted executables or libraries."
 msgstr "Die Benutzerin kann sich entscheiden, welche Ausgabe sie installieren will; so spart sie Platz auf dem Datenträger und verschmutzt ihr Benutzerprofil nicht mit unerwünschten ausführbaren Dateien oder Bibliotheken."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:922
+#: doc/guix-cookbook.texi:952
 msgid "Output separation is optional.  When the @code{outputs} field is left out, the default and only output (the complete package) is referred to as @code{\"out\"}."
 msgstr "Nach Ausgaben zu trennen ist optional. Wenn Sie kein @code{outputs}-Feld schreiben, heißt die standardmäßige und einzige Ausgabe (also das ganze Paket) schlicht @code{\"out\"}."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:924
+#: doc/guix-cookbook.texi:954
 msgid "Typical separate output names include @code{debug} and @code{doc}."
 msgstr "Typische Namen für getrennte Ausgaben sind @code{debug} und @code{doc}."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:928
+#: doc/guix-cookbook.texi:958
 msgid "It's advised to separate outputs only when you've shown it's worth it: if the output size is significant (compare with @code{guix size}) or in case the package is modular."
 msgstr "Es wird empfohlen, getrennte Ausgaben nur dann anzubieten, wenn Sie gezeigt haben, dass es sich lohnt, d.h.@: wenn die Ausgabengröße signifikant ist (vergleichen Sie sie mittels @code{guix size}) oder das Paket modular aufgebaut ist."
 
 #. type: subsubsection
-#: doc/guix-cookbook.texi:929
+#: doc/guix-cookbook.texi:959
 #, no-wrap
 msgid "Build system arguments"
 msgstr "Argumente ans Erstellungssystem"
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:932
+#: doc/guix-cookbook.texi:962
 msgid "The @code{arguments} is a keyword-value list used to configure the build process."
 msgstr "@code{arguments} ist eine Liste aus Schlüsselwort-Wert-Paaren (eine „keyword-value list“), mit denen der Erstellungsprozess konfiguriert wird."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:937
+#: doc/guix-cookbook.texi:967
 msgid "The simplest argument @code{#:tests?} can be used to disable the test suite when building the package.  This is mostly useful when the package does not feature any test suite.  It's strongly recommended to keep the test suite on if there is one."
 msgstr "Das einfachste Argument @code{#:tests?} kann man benutzen, um den Testkatalog bei der Erstellung des Pakets nicht zu prüfen. Das braucht man meistens dann, wenn das Paket überhaupt keinen Testkatalog hat. Wir empfehlen sehr, den Testkatalog zu benutzen, wenn es einen gibt."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:941
+#: doc/guix-cookbook.texi:971
 msgid "Another common argument is @code{:make-flags}, which specifies a list of flags to append when running make, as you would from the command line.  For instance, the following flags"
 msgstr "Ein anderes häufiges Argument ist @code{:make-flags}, was eine Liste an den @code{make}-Aufruf anzuhängender Befehlszeilenargumente festlegt, so wie Sie sie auf der Befehlszeile angeben würden. Zum Beispiel werden die folgenden @code{:make-flags}"
 
 #. type: lisp
-#: doc/guix-cookbook.texi:945
+#: doc/guix-cookbook.texi:975
 #, no-wrap
 msgid ""
 "#:make-flags (list (string-append \"prefix=\" (assoc-ref %outputs \"out\"))\n"
@@ -1709,44 +1750,44 @@ msgstr ""
 "                   \"CC=gcc\")\n"
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:948
+#: doc/guix-cookbook.texi:978
 msgid "translate into"
 msgstr "übersetzt zu"
 
 #. type: example
-#: doc/guix-cookbook.texi:951
+#: doc/guix-cookbook.texi:981
 #, no-wrap
 msgid "$ make CC=gcc prefix=/gnu/store/...-<out>\n"
 msgstr "$ make CC=gcc prefix=/gnu/store/...-<out>\n"
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:957
-msgid "This sets the C compiler to @code{gcc} and the @code{prefix} variable (the installation directory in Make parlance) to @code{(assoc-ref %outputs \"out\")}, which is a build-stage global variable pointing to the destination directory in the store (something like @samp{/gnu/store/...-my-libgit2-20180408})."
-msgstr "Dadurch wird als C-Compiler @code{gcc} verwendet und als @code{prefix}-Variable (das Installationsverzeichnis in der Sprechweise von Make) wird @code{(assoc-ref %outputs \"out\")} verwendet, also eine globale Variable der Erstellungsschicht, die auf das Zielverzeichnis im Store verweist (so etwas wie @samp{/gnu/store/...-my-libgit2-20180408})."
+#: doc/guix-cookbook.texi:987
+msgid "This sets the C compiler to @code{gcc} and the @code{prefix} variable (the installation directory in Make parlance) to @code{(assoc-ref %outputs \"out\")}, which is a build-stage global variable pointing to the destination directory in the store (something like @file{/gnu/store/...-my-libgit2-20180408})."
+msgstr "Dadurch wird als C-Compiler @code{gcc} verwendet und als @code{prefix}-Variable (das Installationsverzeichnis in der Sprechweise von Make) wird @code{(assoc-ref %outputs \"out\")} verwendet, also eine globale Variable der Erstellungsschicht, die auf das Zielverzeichnis im Store verweist (so etwas wie @file{/gnu/store/…-my-libgit2-20180408})."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:959
+#: doc/guix-cookbook.texi:989
 msgid "Similarly, it's possible to set the configure flags:"
 msgstr "Auf gleiche Art kann man auch die Befehlszeilenoptionen für configure festlegen:"
 
 #. type: lisp
-#: doc/guix-cookbook.texi:962
+#: doc/guix-cookbook.texi:992
 #, no-wrap
 msgid "#:configure-flags '(\"-DUSE_SHA1DC=ON\")\n"
 msgstr "#:configure-flags '(\"-DUSE_SHA1DC=ON\")\n"
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:966
+#: doc/guix-cookbook.texi:996
 msgid "The @code{%build-inputs} variable is also generated in scope.  It's an association table that maps the input names to their store directories."
 msgstr "Die Variable @code{%build-inputs} wird auch in diesem Sichtbarkeitsbereich erzeugt. Es handelt sich um eine assoziative Liste, die von den Namen der Eingaben auf ihre Verzeichnisse im Store abbildet."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:971
+#: doc/guix-cookbook.texi:1001
 msgid "The @code{phases} keyword lists the sequential steps of the build system.  Typically phases include @code{unpack}, @code{configure}, @code{build}, @code{install} and @code{check}.  To know more about those phases, you need to work out the appropriate build system definition in @samp{$GUIX_CHECKOUT/guix/build/gnu-build-system.scm}:"
 msgstr "Das @code{phases}-Schlüsselwort listet der Reihe nach die vom Erstellungssystem durchgeführten Schritte auf. Zu den üblichen Phasen gehören @code{unpack}, @code{configure}, @code{build}, @code{install} und @code{check}. Um mehr über diese Phasen zu lernen, müssen Sie sich die Definition des zugehörigen Erstellungssystems in @samp{$GUIX_CHECKOUT/guix/build/gnu-build-system.scm} anschauen:"
 
 #. type: lisp
-#: doc/guix-cookbook.texi:990
+#: doc/guix-cookbook.texi:1020
 #, no-wrap
 msgid ""
 "(define %standard-phases\n"
@@ -1786,12 +1827,12 @@ msgstr ""
 "            compress-documentation)))\n"
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:993
+#: doc/guix-cookbook.texi:1023
 msgid "Or from the REPL:"
 msgstr "Alternativ auf einer REPL:"
 
 #. type: lisp
-#: doc/guix-cookbook.texi:999
+#: doc/guix-cookbook.texi:1029
 #, no-wrap
 msgid ""
 "(add-to-load-path \"/path/to/guix/checkout\")\n"
@@ -1805,17 +1846,17 @@ msgstr ""
 "@result{} (set-SOURCE-DATE-EPOCH set-paths install-locale unpack bootstrap patch-usr-bin-file patch-source-shebangs configure patch-generated-file-shebangs build check install patch-shebangs strip validate-runpath validate-documentation-location delete-info-dir-file patch-dot-desktop-files install-license-files reset-gzip-timestamps compress-documentation)\n"
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1003
+#: doc/guix-cookbook.texi:1033
 msgid "If you want to know more about what happens during those phases, consult the associated procedures."
 msgstr "Wenn Sie mehr darüber wissen wollen, was in diesen Phasen passiert, schauen Sie in den jeweiligen Prozeduren."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1006
-msgid "For instance, as of this writing the definition of @code{unpack} for the GNU build system is"
+#: doc/guix-cookbook.texi:1036
+msgid "For instance, as of this writing the definition of @code{unpack} for the GNU build system is:"
 msgstr "Beispielsweise sieht momentan, als dies hier geschrieben wurde, die Definition von @code{unpack} für das GNU-Erstellungssystem so aus:"
 
 #. type: lisp
-#: doc/guix-cookbook.texi:1016
+#: doc/guix-cookbook.texi:1046
 #, no-wrap
 msgid ""
 "(define* (unpack #:key source #:allow-other-keys)\n"
@@ -1839,286 +1880,291 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix-cookbook.texi:1027
+#: doc/guix-cookbook.texi:1057
 #, no-wrap
 msgid ""
 "        ;; Preserve timestamps (set to the Epoch) on the copied tree so that\n"
 "        ;; things work deterministically.\n"
 "        (copy-recursively source \".\"\n"
-"                          #:keep-mtime? #t))\n"
+"                          #:keep-mtime? #true))\n"
 "      (begin\n"
 "        (if (string-suffix? \".zip\" source)\n"
 "            (invoke \"unzip\" source)\n"
 "            (invoke \"tar\" \"xvf\" source))\n"
 "        (chdir (first-subdirectory \".\"))))\n"
-"  #t)\n"
+"  #true)\n"
 msgstr ""
 "        ;; Preserve timestamps (set to the Epoch) on the copied tree so that\n"
 "        ;; things work deterministically.\n"
 "        (copy-recursively source \".\"\n"
-"                          #:keep-mtime? #t))\n"
+"                          #:keep-mtime? #true))\n"
 "      (begin\n"
 "        (if (string-suffix? \".zip\" source)\n"
 "            (invoke \"unzip\" source)\n"
 "            (invoke \"tar\" \"xvf\" source))\n"
 "        (chdir (first-subdirectory \".\"))))\n"
-"  #t)\n"
+"  #true)\n"
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1035
+#: doc/guix-cookbook.texi:1065
 msgid "Note the @code{chdir} call: it changes the working directory to where the source was unpacked.  Thus every phase following the @code{unpack} will use the source as a working directory, which is why we can directly work on the source files.  That is to say, unless a later phase changes the working directory to something else."
 msgstr "Beachten Sie den Aufruf von @code{chdir}: Damit wird das Arbeitsverzeichnis zu demjenigen gewechselt, wohin die Quelldateien entpackt wurden. In jeder Phase nach @code{unpack} dient also das Verzeichnis mit den Quelldateien als Arbeitsverzeichnis. Deswegen können wir direkt mit den Quelldateien arbeiten, zumindest solange keine spätere Phase das Arbeitsverzeichnis woandershin wechselt."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1039
+#: doc/guix-cookbook.texi:1069
 msgid "We modify the list of @code{%standard-phases} of the build system with the @code{modify-phases} macro as per the list of specified modifications, which may have the following forms:"
 msgstr "Die Liste der @code{%standard-phases} des Erstellungssystems ändern wir mit Hilfe des @code{modify-phases}-Makros über eine Liste von Änderungen. Sie kann folgende Formen haben:"
 
 #. type: itemize
-#: doc/guix-cookbook.texi:1043
-msgid "@code{(add-before PHASE NEW-PHASE PROCEDURE)}: Run @code{PROCEDURE} named @code{NEW-PHASE} before @code{PHASE}."
-msgstr "@code{(add-before PHASE NEUE-PHASE PROZEDUR)}: Die @code{PROZEDUR} namens @code{NEUE-PHASE} vor @code{PHASE} ausführen."
+#: doc/guix-cookbook.texi:1073
+msgid "@code{(add-before @var{phase} @var{new-phase} @var{procedure})}: Run @var{procedure} named @var{new-phase} before @var{phase}."
+msgstr "@code{(add-before @var{Phase} @var{neue-Phase} @var{Prozedur})}: @var{Prozedur} unter dem Namen @var{neue-Phase} vor @var{Phase} ausführen."
 
 #. type: itemize
-#: doc/guix-cookbook.texi:1045
-msgid "@code{(add-after PHASE NEW-PHASE PROCEDURE)}: Same, but afterwards."
-msgstr "@code{(add-after PHASE NEUE-PHASE PROZEDUR)}: Genauso, aber danach."
+#: doc/guix-cookbook.texi:1075
+msgid "@code{(add-after @var{phase} @var{new-phase} @var{procedure})}: Same, but afterwards."
+msgstr "@code{(add-after @var{Phase} @var{neue-Phase} @var{Prozedur})}: Genauso, aber danach."
 
 #. type: itemize
-#: doc/guix-cookbook.texi:1047
-msgid "@code{(replace PHASE PROCEDURE)}."
-msgstr "@code{(replace PHASE PROZEDUR)}."
+#: doc/guix-cookbook.texi:1077
+msgid "@code{(replace @var{phase} @var{procedure})}."
+msgstr "@code{(replace @var{Phase} @var{Prozedur})}."
 
 #. type: itemize
-#: doc/guix-cookbook.texi:1049
-msgid "@code{(delete PHASE)}."
-msgstr "@code{(delete PHASE)}."
+#: doc/guix-cookbook.texi:1079
+msgid "@code{(delete @var{phase})}."
+msgstr "@code{(delete @var{Phase})}."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1056
-msgid "The @code{PROCEDURE} supports the keyword arguments @code{inputs} and @code{outputs}.  Each input (whether @emph{native}, @emph{propagated} or not) and output directory is referenced by their name in those variables.  Thus @code{(assoc-ref outputs \"out\")} is the store directory of the main output of the package.  A phase procedure may look like this:"
-msgstr "Die @code{PROZEDUR} unterstützt die Schlüsselwortargumente @code{inputs} und @code{outputs}. Jede Eingabe (ob sie @emph{native}, @emph{propagated} oder nichts davon ist) und jedes Ausgabeverzeichnis ist in diesen Variablen mit dem jeweiligen Namen assoziiert. @code{(assoc-ref outputs \"out\")} ist also das Store-Verzeichnis der Hauptausgabe des Pakets. Eine Phasenprozedur kann so aussehen:"
+#: doc/guix-cookbook.texi:1086
+msgid "The @var{procedure} supports the keyword arguments @code{inputs} and @code{outputs}.  Each input (whether @emph{native}, @emph{propagated} or not) and output directory is referenced by their name in those variables.  Thus @code{(assoc-ref outputs \"out\")} is the store directory of the main output of the package.  A phase procedure may look like this:"
+msgstr "Die @var{Prozedur} unterstützt die Schlüsselwortargumente @code{inputs} und @code{outputs}. Jede Eingabe (ob sie @emph{native}, @emph{propagated} oder nichts davon ist) und jedes Ausgabeverzeichnis ist in diesen Variablen mit dem jeweiligen Namen assoziiert. @code{(assoc-ref outputs \"out\")} ist also das Store-Verzeichnis der Hauptausgabe des Pakets. Eine Phasenprozedur kann so aussehen:"
 
 #. type: lisp
-#: doc/guix-cookbook.texi:1064
+#: doc/guix-cookbook.texi:1094
 #, no-wrap
 msgid ""
 "(lambda* (#:key inputs outputs #:allow-other-keys)\n"
-"  (let (((bash-directory (assoc-ref inputs \"bash\"))\n"
-"         (output-directory (assoc-ref outputs \"out\"))\n"
-"         (doc-directory (assoc-ref outputs \"doc\"))\n"
-"  ; ...\n"
-"  #t)\n"
+"  (let ((bash-directory (assoc-ref inputs \"bash\"))\n"
+"        (output-directory (assoc-ref outputs \"out\"))\n"
+"        (doc-directory (assoc-ref outputs \"doc\")))\n"
+"    ;; ...\n"
+"    #true))\n"
 msgstr ""
 "(lambda* (#:key inputs outputs #:allow-other-keys)\n"
-"  (let (((bash-directory (assoc-ref inputs \"bash\"))\n"
-"         (output-directory (assoc-ref outputs \"out\"))\n"
-"         (doc-directory (assoc-ref outputs \"doc\"))\n"
-"  ; ...\n"
-"  #t)\n"
+"  (let ((bash-directory (assoc-ref inputs \"bash\"))\n"
+"        (output-directory (assoc-ref outputs \"out\"))\n"
+"        (doc-directory (assoc-ref outputs \"doc\")))\n"
+"    ;; …\n"
+"    #true))\n"
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1070
-msgid "The procedure must return @code{#t} on success.  It's brittle to rely on the return value of the last expression used to tweak the phase because there is no guarantee it would be a @code{#t}.  Hence the trailing @code{#t} to ensure the right value is returned on success."
-msgstr "Die Prozedur muss bei Erfolg @code{#t} zurückliefern. Auf den Rückgabewert des letzten Ausdrucks, mit dem die Phase angepasst wurde, kann man sich nicht verlassen, weil es keine Garantie gibt, dass der Rückgabewert @code{#t} sein wird. Deswegen schreiben wir dahinter @code{#t}, damit bei erfolgreicher Ausführung der richtige Wert geliefert wird."
+#: doc/guix-cookbook.texi:1100
+msgid "The procedure must return @code{#true} on success.  It's brittle to rely on the return value of the last expression used to tweak the phase because there is no guarantee it would be a @code{#true}.  Hence the trailing @code{#true} to ensure the right value is returned on success."
+msgstr "Die Prozedur muss bei Erfolg @code{#true} zurückliefern. Auf den Rückgabewert des letzten Ausdrucks, mit dem die Phase angepasst wurde, kann man sich nicht verlassen, weil es keine Garantie gibt, dass der Rückgabewert @code{#true} sein wird. Deswegen schreiben wir dahinter @code{#true}, damit bei erfolgreicher Ausführung der richtige Wert geliefert wird."
 
 #. type: subsubsection
-#: doc/guix-cookbook.texi:1071
+#: doc/guix-cookbook.texi:1101
 #, no-wrap
 msgid "Code staging"
 msgstr "Code-Staging"
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1077
+#: doc/guix-cookbook.texi:1107
 msgid "The astute reader may have noticed the quasi-quote and comma syntax in the argument field.  Indeed, the build code in the package declaration should not be evaluated on the client side, but only when passed to the Guix daemon.  This mechanism of passing code around two running processes is called @uref{https://arxiv.org/abs/1709.00833, code staging}."
 msgstr "Aufmerksame Leser könnten die Syntax mit @code{quasiquote} und Komma im Argumentefeld bemerkt haben. Tatsächlich sollte der Erstellungscode in der Paketdeklaration @emph{nicht} auf Client-Seite ausgeführt werden, sondern erst, wenn er an den Guix-Daemon übergeben worden ist. Der Mechanismus, über den Code zwischen zwei laufenden Prozessen weitergegeben wird, nennen wir @uref{https://arxiv.org/abs/1709.00833, Code-Staging}."
 
 #. type: subsubsection
-#: doc/guix-cookbook.texi:1078
+#: doc/guix-cookbook.texi:1108
 #, no-wrap
 msgid "Utility functions"
 msgstr "Hilfsfunktionen"
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1083
-msgid "When customizing @code{phases}, we often need to write code that mimics the equivalent system invocations (@code{make}, @code{mkdir}, @code{cp}, etc.) commonly used during regular ``Unix-style'' installations."
+#: doc/guix-cookbook.texi:1113
+msgid "When customizing @code{phases}, we often need to write code that mimics the equivalent system invocations (@code{make}, @code{mkdir}, @code{cp}, etc.)@: commonly used during regular ``Unix-style'' installations."
 msgstr "Beim Anpassen der @code{phases} müssen wir oft Code schreiben, der analog zu den äquivalenten Systemaufrufen funktioniert (@code{make}, @code{mkdir}, @code{cp}, etc.), welche in regulären „Unix-artigen“ Installationen oft benutzt werden."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1086
+#: doc/guix-cookbook.texi:1116
 msgid "Some like @code{chmod} are native to Guile.  @xref{,,, guile, Guile reference manual} for a complete list."
 msgstr "Manche, wie @code{chmod}, sind Teil von Guile. Siehe das @ref{,,, guile, Referenzhandbuch zu Guile} für eine vollständige Liste."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1089
+#: doc/guix-cookbook.texi:1119
 msgid "Guix provides additional helper functions which prove especially handy in the context of package management."
 msgstr "Guix stellt zusätzliche Hilfsfunktionen zur Verfügung, die bei der Paketverwaltung besonders praktisch sind."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1093
+#: doc/guix-cookbook.texi:1123
 msgid "Some of those functions can be found in @samp{$GUIX_CHECKOUT/guix/guix/build/utils.scm}.  Most of them mirror the behaviour of the traditional Unix system commands:"
 msgstr "Manche dieser Funktionalitäten finden Sie in @samp{$GUIX_CHECKOUT/guix/guix/build/utils.scm}. Die meisten spiegeln das Verhalten traditioneller Unix-Systembefehle wider:"
 
 #. type: item
-#: doc/guix-cookbook.texi:1095
+#: doc/guix-cookbook.texi:1125
 #, no-wrap
 msgid "which"
 msgstr "which"
 
 #. type: table
-#: doc/guix-cookbook.texi:1097
+#: doc/guix-cookbook.texi:1127
 msgid "Like the @samp{which} system command."
 msgstr "Das Gleiche wie der @samp{which}-Systembefehl."
 
 #. type: item
-#: doc/guix-cookbook.texi:1097
+#: doc/guix-cookbook.texi:1127
 #, no-wrap
 msgid "find-files"
 msgstr "find-files"
 
 #. type: table
-#: doc/guix-cookbook.texi:1099
+#: doc/guix-cookbook.texi:1129
 msgid "Akin to the @samp{find} system command."
 msgstr "Wie der @samp{find} Systembefehl."
 
 #. type: item
-#: doc/guix-cookbook.texi:1099
+#: doc/guix-cookbook.texi:1129
 #, no-wrap
 msgid "mkdir-p"
 msgstr "mkdir-p"
 
 #. type: table
-#: doc/guix-cookbook.texi:1101
+#: doc/guix-cookbook.texi:1131
 msgid "Like @samp{mkdir -p}, which creates all parents as needed."
 msgstr "Wie @samp{mkdir -p}, das Elternverzeichnisse erzeugt, wenn nötig."
 
 #. type: item
-#: doc/guix-cookbook.texi:1101
+#: doc/guix-cookbook.texi:1131
 #, no-wrap
 msgid "install-file"
 msgstr "install-file"
 
 #. type: table
-#: doc/guix-cookbook.texi:1105
+#: doc/guix-cookbook.texi:1135
 msgid "Similar to @samp{install} when installing a file to a (possibly non-existing) directory.  Guile has @code{copy-file} which works like @samp{cp}."
 msgstr "Ähnlich wie @samp{install} beim Installieren einer Datei in ein (nicht unbedingt existierendes) Verzeichnis. Guile kennt @code{copy-file}, das wie @samp{cp} funktioniert."
 
 #. type: item
-#: doc/guix-cookbook.texi:1105
+#: doc/guix-cookbook.texi:1135
 #, no-wrap
 msgid "copy-recursively"
 msgstr "copy-recursively"
 
 #. type: table
-#: doc/guix-cookbook.texi:1107
+#: doc/guix-cookbook.texi:1137
 msgid "Like @samp{cp -r}."
 msgstr "Wie @samp{cp -r}."
 
 #. type: item
-#: doc/guix-cookbook.texi:1107
+#: doc/guix-cookbook.texi:1137
 #, no-wrap
 msgid "delete-file-recursively"
 msgstr "delete-file-recursively"
 
 #. type: table
-#: doc/guix-cookbook.texi:1109
+#: doc/guix-cookbook.texi:1139
 msgid "Like @samp{rm -rf}."
 msgstr "Wie @samp{rm -rf}."
 
 #. type: item
-#: doc/guix-cookbook.texi:1109
+#: doc/guix-cookbook.texi:1139
 #, no-wrap
 msgid "invoke"
 msgstr "invoke"
 
 #. type: table
-#: doc/guix-cookbook.texi:1111
+#: doc/guix-cookbook.texi:1141
 msgid "Run an executable.  This should be used instead of @code{system*}."
 msgstr "Eine ausführbare Datei ausführen. Man sollte es benutzen und nicht @code{system*}."
 
 #. type: item
-#: doc/guix-cookbook.texi:1111
+#: doc/guix-cookbook.texi:1141
 #, no-wrap
 msgid "with-directory-excursion"
 msgstr "with-directory-excursion"
 
 #. type: table
-#: doc/guix-cookbook.texi:1114
+#: doc/guix-cookbook.texi:1144
 msgid "Run the body in a different working directory, then restore the previous working directory."
 msgstr "Den Rumpf in einem anderen Arbeitsverzeichnis ausführen und danach wieder in das vorherige Arbeitsverzeichnis wechseln."
 
 #. type: item
-#: doc/guix-cookbook.texi:1114
+#: doc/guix-cookbook.texi:1144
 #, no-wrap
 msgid "substitute*"
 msgstr "substitute*"
 
 #. type: table
-#: doc/guix-cookbook.texi:1116
+#: doc/guix-cookbook.texi:1146
 msgid "A ``@command{sed}-like'' function."
 msgstr "Eine „@command{sed}-artige“ Funktion."
 
+#. type: Plain text
+#: doc/guix-cookbook.texi:1150
+msgid "@xref{Build Utilities,,, guix, GNU Guix Reference Manual}, for more information on these utilities."
+msgstr "Siehe @ref{Werkzeuge zur Erstellung,,, guix.de, Referenzhandbuch zu GNU Guix} für mehr Informationen zu diesen Werkzeugen."
+
 #. type: subsubsection
-#: doc/guix-cookbook.texi:1118
+#: doc/guix-cookbook.texi:1151
 #, no-wrap
 msgid "Module prefix"
 msgstr "Modulpräfix"
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1128
+#: doc/guix-cookbook.texi:1161
 msgid "The license in our last example needs a prefix: this is because of how the @code{license} module was imported in the package, as @code{#:use-module ((guix licenses)  #:prefix license:)}.  The Guile module import mechanism (@pxref{Using Guile Modules,,, guile, Guile reference manual})  gives the user full control over namespacing: this is needed to avoid clashes between, say, the @samp{zlib} variable from @samp{licenses.scm} (a @emph{license} value) and the @samp{zlib} variable from @samp{compression.scm} (a @emph{package} value)."
 msgstr "Die Lizenz in unserem letzten Beispiel braucht ein Präfix. Der Grund liegt darin, wie das @code{license}-Modul importiert worden ist, nämlich @code{#:use-module ((guix licenses)  #:prefix license:)}. Der Importmechanismus von Guile-Modulen (siehe @ref{Using Guile Modules,,, guile, Referenzhandbuch zu Guile}) gibt Benutzern die volle Kontrolle über Namensräume. Man braucht sie, um Konflikte zu lösen, z.B.@ zwischen der @samp{zlib}-Variablen aus @samp{licenses.scm} (dieser Wert repräsentiert eine @emph{Softwarelizenz}) und der @samp{zlib}-Variablen aus @samp{compression.scm} (ein Wert, der für ein @emph{Paket} steht)."
 
 #. type: subsection
-#: doc/guix-cookbook.texi:1129 doc/guix-cookbook.texi:1130
+#: doc/guix-cookbook.texi:1162 doc/guix-cookbook.texi:1163
 #, no-wrap
 msgid "Other build systems"
 msgstr "Andere Erstellungssysteme"
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1137
+#: doc/guix-cookbook.texi:1170
 msgid "What we've seen so far covers the majority of packages using a build system other than the @code{trivial-build-system}.  The latter does not automate anything and leaves you to build everything manually.  This can be more demanding and we won't cover it here for now, but thankfully it is rarely necessary to fall back on this system."
-msgstr "Was wir bisher gesehen haben reicht für die meisten Pakete aus, die als Erstellungssystem etwas anderes als @code{trivial-build-system} verwenden. Letzteres automatisiert gar nichts und überlässt es Ihnen, alles zur Erstellung manuell festzulegen. Das kann einen noch mehr beanspruchen und wir beschreiben es hier zur Zeit nicht, aber glücklicherweise braucht man dieses System auch nur in seltenen Fällen."
+msgstr "Was wir bisher gesehen haben reicht für die meisten Pakete aus, die als Erstellungssystem etwas anderes als @code{trivial-build-system} verwenden. Letzteres automatisiert gar nichts und überlässt es Ihnen, alles zur Erstellung manuell festzulegen. Das kann einen noch mehr beanspruchen und wir beschreiben es hier zurzeit nicht, aber glücklicherweise braucht man dieses System auch nur in seltenen Fällen."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1141
+#: doc/guix-cookbook.texi:1174
 msgid "For the other build systems, such as ASDF, Emacs, Perl, Ruby and many more, the process is very similar to the GNU build system except for a few specialized arguments."
 msgstr "Bei anderen Erstellungssystemen wie ASDF, Emacs, Perl, Ruby und vielen anderen ist der Prozess sehr ähnlich zum GNU-Erstellungssystem abgesehen von ein paar speziellen Argumenten."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1146
+#: doc/guix-cookbook.texi:1179
 msgid "@xref{Build Systems,,, guix, GNU Guix Reference Manual}, for more information on build systems, or check the source code in the @samp{$GUIX_CHECKOUT/guix/build} and @samp{$GUIX_CHECKOUT/guix/build-system} directories."
 msgstr "Siehe @ref{Erstellungssysteme,,, guix.de, Referenzhandbuch zu GNU Guix}, für mehr Informationen über Erstellungssysteme, oder den Quellcode in den Verzeichnissen @samp{$GUIX_CHECKOUT/guix/build} und @samp{$GUIX_CHECKOUT/guix/build-system}."
 
 #. type: subsection
-#: doc/guix-cookbook.texi:1147 doc/guix-cookbook.texi:1148
+#: doc/guix-cookbook.texi:1180 doc/guix-cookbook.texi:1181
 #, no-wrap
 msgid "Programmable and automated package definition"
 msgstr "Programmierbare und automatisierte Paketdefinition"
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1152
+#: doc/guix-cookbook.texi:1185
 msgid "We can't repeat it enough: having a full-fledged programming language at hand empowers us in ways that reach far beyond traditional package management."
 msgstr "Wir können es nicht oft genug wiederholen: Eine Allzweck-Programmiersprache zur Hand zu haben macht Dinge möglich, die traditionelle Paketverwaltung weit übersteigen."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1154
+#: doc/guix-cookbook.texi:1187
 msgid "Let's illustrate this with some awesome features of Guix!"
 msgstr "Wir können uns das anhand Guix’ großartiger Funktionalitäten klarmachen!"
 
 #. type: subsubsection
-#: doc/guix-cookbook.texi:1155 doc/guix-cookbook.texi:1156
+#: doc/guix-cookbook.texi:1188 doc/guix-cookbook.texi:1189
 #, no-wrap
 msgid "Recursive importers"
 msgstr "Rekursive Importer"
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1163
+#: doc/guix-cookbook.texi:1196
 msgid "You might find some build systems good enough that there is little to do at all to write a package, to the point that it becomes repetitive and tedious after a while.  A @emph{raison d'être} of computers is to replace human beings at those boring tasks.  So let's tell Guix to do this for us and create the package definition of an R package from CRAN (the output is trimmed for conciseness):"
 msgstr "Sie könnten feststellen, dass manche Erstellungssysteme gut genug sind und nichts weiter zu tun bleibt, um ein Paket zu verfassen. Das Paketeschreiben kann so monoton werden und man wird dessen bald überdrüssig. Eine Daseinsberechtigung von Rechnern ist, Menschen bei solch langweiligen Aufgaben zu ersetzen. Lasst uns also Guix die Sache erledigen: Wir lassen uns die Paketdefinition eines R-Pakets mit den Informationen aus CRAN holen (was zu anderen ausgegeben wird, haben wir im Folgenden weggelassen):"
 
 #. type: example
-#: doc/guix-cookbook.texi:1166
+#: doc/guix-cookbook.texi:1199
 #, no-wrap
 msgid ""
 "$ guix import cran --recursive walrus\n"
@@ -2128,7 +2174,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix-cookbook.texi:1170
+#: doc/guix-cookbook.texi:1203
 #, no-wrap
 msgid ""
 "(define-public r-mc2d\n"
@@ -2142,7 +2188,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix-cookbook.texi:1174
+#: doc/guix-cookbook.texi:1207
 #, no-wrap
 msgid ""
 "(define-public r-jmvcore\n"
@@ -2156,7 +2202,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix-cookbook.texi:1178
+#: doc/guix-cookbook.texi:1211
 #, no-wrap
 msgid ""
 "(define-public r-wrs2\n"
@@ -2170,7 +2216,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix-cookbook.texi:1207
+#: doc/guix-cookbook.texi:1240
 #, no-wrap
 msgid ""
 "(define-public r-walrus\n"
@@ -2232,56 +2278,56 @@ msgstr ""
 "    (license gpl3)))\n"
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1211
+#: doc/guix-cookbook.texi:1244
 msgid "The recursive importer won't import packages for which Guix already has package definitions, except for the very first."
 msgstr "Der rekursive Importer wird keine Pakete importieren, für die es in Guix bereits eine Paketdefinition gibt, außer dem Paket, mit dem er anfängt."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1216
+#: doc/guix-cookbook.texi:1249
 msgid "Not all applications can be packaged this way, only those relying on a select number of supported systems.  Read about the full list of importers in the guix import section of the manual (@pxref{Invoking guix import,,, guix, GNU Guix Reference Manual})."
 msgstr "Nicht für alle Anwendungen können auf diesem Weg Pakete erzeugt werden, nur für jene, die auf ausgewählten Systemen aufbauen. Im Handbuch können Sie Informationen über die vollständige Liste aller Importer bekommen (siehe @ref{Aufruf von guix import,,, guix.de, Referenzhandbuch zu GNU Guix})."
 
 #. type: subsubsection
-#: doc/guix-cookbook.texi:1217 doc/guix-cookbook.texi:1218
+#: doc/guix-cookbook.texi:1250 doc/guix-cookbook.texi:1251
 #, no-wrap
 msgid "Automatic update"
 msgstr "Automatisch aktualisieren"
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1222
+#: doc/guix-cookbook.texi:1255
 msgid "Guix can be smart enough to check for updates on systems it knows.  It can report outdated package definitions with"
 msgstr "Guix ist klug genug, um verfügbare Aktualisierungen auf bekannten Systemen zu erkennen. Es kann über veraltete Paketdefinitionen Bericht erstatten, wenn man dies eingibt:"
 
 #. type: example
-#: doc/guix-cookbook.texi:1225
+#: doc/guix-cookbook.texi:1258
 #, no-wrap
 msgid "$ guix refresh hello\n"
 msgstr "$ guix refresh hello\n"
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1230
+#: doc/guix-cookbook.texi:1263
 msgid "In most cases, updating a package to a newer version requires little more than changing the version number and the checksum.  Guix can do that automatically as well:"
 msgstr "In den meisten Fällen muss man zur Aktualisierung auf eine neuere Version wenig mehr tun, als die Versionsnummer und die Prüfsumme ändern. Auch das kann mit Guix automatisiert werden:"
 
 #. type: example
-#: doc/guix-cookbook.texi:1233
+#: doc/guix-cookbook.texi:1266
 #, no-wrap
 msgid "$ guix refresh hello --update\n"
 msgstr "$ guix refresh hello --update\n"
 
 #. type: subsubsection
-#: doc/guix-cookbook.texi:1235 doc/guix-cookbook.texi:1236
+#: doc/guix-cookbook.texi:1268 doc/guix-cookbook.texi:1269
 #, no-wrap
 msgid "Inheritance"
 msgstr "Vererbung"
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1240
+#: doc/guix-cookbook.texi:1273
 msgid "If you've started browsing the existing package definitions, you might have noticed that a significant number of them have a @code{inherit} field:"
 msgstr "Wenn Sie anfangen, bestehende Paketdefinitionen anzuschauen, könnte es Ihnen auffallen, dass viele von ihnen über ein @code{inherit}-Feld verfügen."
 
 #. type: lisp
-#: doc/guix-cookbook.texi:1256
+#: doc/guix-cookbook.texi:1289
 #, no-wrap
 msgid ""
 "(define-public adwaita-icon-theme\n"
@@ -2315,123 +2361,190 @@ msgstr ""
 "     `((\"gtk-encode-symbolic-svg\" ,gtk+ \"bin\")))))\n"
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1261
+#: doc/guix-cookbook.texi:1294
 msgid "All unspecified fields are inherited from the parent package.  This is very convenient to create alternative packages, for instance with different source, version or compilation options."
 msgstr "Alle @emph{nicht} aufgeführten Felder werden vom Elternpaket geerbt. Das ist ziemlich praktisch, um alternative Pakete zu erzeugen, zum Beispiel solche mit geänderten Quellorten, Versionen oder Kompilierungsoptionen."
 
 #. type: subsection
-#: doc/guix-cookbook.texi:1262 doc/guix-cookbook.texi:1263
+#: doc/guix-cookbook.texi:1295 doc/guix-cookbook.texi:1296
 #, no-wrap
 msgid "Getting help"
 msgstr "Hilfe bekommen"
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1269
-msgid "Sadly, some applications can be tough to package.  Sometimes they need a patch to work with the non-standard filesystem hierarchy enforced by the store.  Sometimes the tests won't run properly.  (They can be skipped but this is not recommended.)  Other times the resulting package won't be reproducible."
+#: doc/guix-cookbook.texi:1302
+msgid "Sadly, some applications can be tough to package.  Sometimes they need a patch to work with the non-standard file system hierarchy enforced by the store.  Sometimes the tests won't run properly.  (They can be skipped but this is not recommended.)  Other times the resulting package won't be reproducible."
 msgstr "Leider ist es für manche Anwendungen schwierig, Pakete zu schreiben. Manchmal brauchen sie einen Patch, um mit vom Standard abweichenden Dateisystemhierarchien klarzukommen, wie sie der Store erforderlich macht. Manchmal funktionieren die Tests nicht richtig. (Man kann sie überspringen, aber man sollte nicht.) Ein andermal ist das sich ergebende Paket nicht reproduzierbar."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1272
+#: doc/guix-cookbook.texi:1305
 msgid "Should you be stuck, unable to figure out how to fix any sort of packaging issue, don't hesitate to ask the community for help."
 msgstr "Wenn Sie nicht weiterkommen, weil Sie nicht wissen, wie Sie ein Problem beim Paketschreiben lösen können, dann zögern Sie nicht, die Gemeinde um Hilfe zu bitten."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1274
+#: doc/guix-cookbook.texi:1307
 msgid "See the @uref{https://www.gnu.org/software/guix/contact/, Guix homepage} for information on the mailing lists, IRC, etc."
 msgstr "Siehe die @uref{https://www.gnu.org/software/guix/contact/, Homepage von Guix} für Informationen, welche Mailing-Listen, IRC-Kanäle etc.@: bereitstehen."
 
 #. type: subsection
-#: doc/guix-cookbook.texi:1275 doc/guix-cookbook.texi:1276
+#: doc/guix-cookbook.texi:1308 doc/guix-cookbook.texi:1309
 #, no-wrap
 msgid "Conclusion"
 msgstr "Schlusswort"
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1282
+#: doc/guix-cookbook.texi:1315
 msgid "This tutorial was a showcase of the sophisticated package management that Guix boasts.  At this point we have mostly restricted this introduction to the @code{gnu-build-system} which is a core abstraction layer on which more advanced abstractions are based."
 msgstr "Diese Anleitung hat einen Überblick über die fortgeschrittene Paketverwaltung gegeben, die Guix vorweist. Zu diesem Zeitpunkt haben wir diese Einführung größtenteils auf das @code{gnu-build-system} eingeschränkt, was eine zentrale Abstraktionsschicht darstellt, auf der weitere Abstraktionen aufbauen."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1287
+#: doc/guix-cookbook.texi:1320
 msgid "Where do we go from here? Next we ought to dissect the innards of the build system by removing all abstractions, using the @code{trivial-build-system}: this should give us a thorough understanding of the process before investigating some more advanced packaging techniques and edge cases."
 msgstr "Wie geht es nun weiter? Als Nächstes müssten wir das Erstellungssystem in seine Bestandteile zerlegen, um einen Einblick ganz ohne Abstraktionen zu bekommen. Das bedeutet, wir müssten das @code{trivial-build-system} analysieren. Dadurch sollte ein gründliches Verständnis des Prozesses vermittelt werden, bevor wir höher entwickelte Paketierungstechniken und Randfälle untersuchen."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1290
+#: doc/guix-cookbook.texi:1323
 msgid "Other features worth exploring are the interactive editing and debugging capabilities of Guix provided by the Guile REPL@."
 msgstr "Andere Funktionalitäten, die es wert sind, erkundet zu werden, sind Guix’ Funktionalitäten zum interaktiven Editieren und zur Fehlersuche, die die REPL von Guile darbietet."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1295
+#: doc/guix-cookbook.texi:1328
 msgid "Those fancy features are completely optional and can wait; now is a good time to take a well-deserved break.  With what we've introduced here you should be well armed to package lots of programs.  You can get started right away and hopefully we will see your contributions soon!"
 msgstr "Diese eindrucksvollen Funktionalitäten sind völlig optional und können warten; jetzt ist die Zeit für eine wohlverdiente Pause. Mit dem Wissen, in das wir hier eingeführt haben, sollten Sie für das Paketieren vieler Programme gut gerüstet sein. Sie können gleich anfangen und hoffentlich bekommen wir bald Ihre Beiträge zu sehen!"
 
 #. type: subsection
-#: doc/guix-cookbook.texi:1296 doc/guix-cookbook.texi:1297
+#: doc/guix-cookbook.texi:1329 doc/guix-cookbook.texi:1330
 #, no-wrap
 msgid "References"
 msgstr "Literaturverzeichnis"
 
 #. type: itemize
-#: doc/guix-cookbook.texi:1302
+#: doc/guix-cookbook.texi:1335
 msgid "The @uref{https://www.gnu.org/software/guix/manual/en/html_node/Defining-Packages.html, package reference in the manual}"
 msgstr "Die @uref{https://guix.gnu.org/manual/de/html_node/Pakete-definieren.html, Paketreferenz im Handbuch}"
 
 #. type: itemize
-#: doc/guix-cookbook.texi:1305
+#: doc/guix-cookbook.texi:1338
 msgid "@uref{https://gitlab.com/pjotrp/guix-notes/blob/master/HACKING.org, Pjotr’s hacking guide to GNU Guix}"
 msgstr "@uref{https://gitlab.com/pjotrp/guix-notes/blob/master/HACKING.org, Pjotr’s Hacking-Leitfaden für GNU Guix}"
 
 #. type: itemize
-#: doc/guix-cookbook.texi:1308
+#: doc/guix-cookbook.texi:1341
 msgid "@uref{https://www.gnu.org/software/guix/guix-ghm-andreas-20130823.pdf, ``GNU Guix: Package without a scheme!''}, by Andreas Enge"
 msgstr "@uref{https://www.gnu.org/software/guix/guix-ghm-andreas-20130823.pdf, „GNU Guix: Package without a scheme!“} von Andreas Enge"
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1317
+#: doc/guix-cookbook.texi:1350
 msgid "Guix offers a flexible language for declaratively configuring your Guix System.  This flexibility can at times be overwhelming.  The purpose of this chapter is to demonstrate some advanced configuration concepts."
 msgstr "Guix stellt eine flexible Sprache bereit, um Ihr „Guix System“ auf deklarative Weise zu konfigurieren. Diese Flexibilität kann einen manchmal überwältigen. Dieses Kapitel hat den Zweck, einige fortgeschrittene Konfigurationskonzepte vorzuzeigen."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1320
+#: doc/guix-cookbook.texi:1353
 msgid "@pxref{System Configuration,,, guix, GNU Guix Reference Manual} for a complete reference."
 msgstr "Siehe @ref{Systemkonfiguration,,, guix.de, Referenzhandbuch zu GNU Guix} für eine vollständige Referenz."
 
 #. type: menuentry
-#: doc/guix-cookbook.texi:1323
+#: doc/guix-cookbook.texi:1362
 msgid "Creating and using a custom Linux kernel on Guix System."
 msgstr "Einen eigenen Linux-Kernel auf Guix System erzeugen und benutzen."
 
+#. type: section
+#: doc/guix-cookbook.texi:1362 doc/guix-cookbook.texi:1604
+#: doc/guix-cookbook.texi:1605
+#, no-wrap
+msgid "Connecting to Wireguard VPN"
+msgstr "Verbinden mit Wireguard VPN"
+
+#. type: menuentry
+#: doc/guix-cookbook.texi:1362
+msgid "Connecting to a Wireguard VPN."
+msgstr "Wie man sich mit einem Wireguard-VPN verbindet."
+
+#. type: section
+#: doc/guix-cookbook.texi:1362 doc/guix-cookbook.texi:1681
+#: doc/guix-cookbook.texi:1682
+#, no-wrap
+msgid "Customizing a Window Manager"
+msgstr "Fensterverwalter (Window Manager) anpassen"
+
+#. type: menuentry
+#: doc/guix-cookbook.texi:1362
+msgid "Handle customization of a Window manager on Guix System."
+msgstr "Wie man einen Fensterverwalter auf Guix System anpassen kann."
+
+#. type: section
+#: doc/guix-cookbook.texi:1362 doc/guix-cookbook.texi:1772
+#: doc/guix-cookbook.texi:1773
+#, no-wrap
+msgid "Running Guix on a Linode Server"
+msgstr "Guix auf einem Linode-Server nutzen"
+
+#. type: section
+#: doc/guix-cookbook.texi:1362 doc/guix-cookbook.texi:2012
+#: doc/guix-cookbook.texi:2013
+#, no-wrap
+msgid "Setting up a bind mount"
+msgstr "Bind-Mounts anlegen"
+
+#. type: menuentry
+#: doc/guix-cookbook.texi:1362
+msgid "Setting up a bind mount in the file-systems definition."
+msgstr "Bind-Mounts als Dateisystemdefinition einrichten."
+
+#. type: section
+#: doc/guix-cookbook.texi:1362 doc/guix-cookbook.texi:2061
+#: doc/guix-cookbook.texi:2062
+#, no-wrap
+msgid "Getting substitutes from Tor"
+msgstr "Substitute über Tor beziehen"
+
+#. type: menuentry
+#: doc/guix-cookbook.texi:1362
+msgid "Configuring Guix daemon to get substitutes through Tor."
+msgstr "Den Guix-Daemon konfigurieren, damit er Substitute über Tor lädt."
+
+#. type: section
+#: doc/guix-cookbook.texi:1362 doc/guix-cookbook.texi:2123
+#: doc/guix-cookbook.texi:2124
+#, no-wrap
+msgid "Setting up NGINX with Lua"
+msgstr "NGINX mit Lua konfigurieren"
+
+#. type: menuentry
+#: doc/guix-cookbook.texi:1362
+msgid "Configuring NGINX web-server to load Lua modules."
+msgstr "Den NGINX-Web-Server so einrichten, dass Lua-Module geladen werden."
+
 #. type: Plain text
-#: doc/guix-cookbook.texi:1335
+#: doc/guix-cookbook.texi:1374
 msgid "Guix is, at its core, a source based distribution with substitutes (@pxref{Substitutes,,, guix, GNU Guix Reference Manual}), and as such building packages from their source code is an expected part of regular package installations and upgrades.  Given this starting point, it makes sense that efforts are made to reduce the amount of time spent compiling packages, and recent changes and upgrades to the building and distribution of substitutes continues to be a topic of discussion within Guix."
 msgstr "Im Kern ist Guix eine quellcodebasierte Distribution mit Substituten (siehe @ref{Substitute,,, guix.de, Referenzhandbuch zu GNU Guix}), daher ist das Erstellen von Paketen aus ihrem Quellcode heraus genauso vorgesehen wie die normale Installation und Aktualisierung von Paketen. Von diesem Standpunkt ist es sinnvoll, zu versuchen, den Zeitaufwand für das Kompilieren von Paketen zu senken, und kürzliche Neuerungen sowie Verbesserungen beim Erstellen und Verteilen von Substituten bleiben ein Diskussionsthema innerhalb von Guix."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1341
+#: doc/guix-cookbook.texi:1380
 msgid "The kernel, while not requiring an overabundance of RAM to build, does take a rather long time on an average machine.  The official kernel configuration, as is the case with many GNU/Linux distributions, errs on the side of inclusiveness, and this is really what causes the build to take such a long time when the kernel is built from source."
 msgstr "Der Kernel braucht zwar keine übermäßigen Mengen an Arbeitsspeicher beim Erstellen, jedoch jede Menge Zeit auf einer durchschnittlichen Maschine. Die offizielle Konfiguration des Kernels umfasst, wie bei anderen GNU/Linux-Distributionen auch, besser zu viel als zu wenig. Das ist der eigentliche Grund, warum seine Erstellung so lange dauert, wenn man den Kernel aus dem Quellcode heraus erstellt."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1346
+#: doc/guix-cookbook.texi:1385
 msgid "The Linux kernel, however, can also just be described as a regular old package, and as such can be customized just like any other package.  The procedure is a little bit different, although this is primarily due to the nature of how the package definition is written."
 msgstr "Man kann den Linux-Kernel jedoch auch als ganz normales Paket beschreiben, das genau wie jedes andere Paket angepasst werden kann. Der Vorgang ist ein klein wenig anders, aber das liegt hauptsächlich an der Art, wie die Paketdefinition geschrieben ist."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1349
+#: doc/guix-cookbook.texi:1388
 msgid "The @code{linux-libre} kernel package definition is actually a procedure which creates a package."
 msgstr "Die @code{linux-libre}-Kernelpaketdefinition ist tatsächlich eine Prozedur, die ein Paket liefert."
 
 #. type: lisp
-#: doc/guix-cookbook.texi:1361
+#: doc/guix-cookbook.texi:1400
 #, no-wrap
 msgid ""
 "(define* (make-linux-libre version hash supported-systems\n"
 "                           #:key\n"
 "                           ;; A function that takes an arch and a variant.\n"
 "                           ;; See kernel-config for an example.\n"
-"                           (extra-version #f)\n"
-"                           (configuration-file #f)\n"
+"                           (extra-version #false)\n"
+"                           (configuration-file #false)\n"
 "                           (defconfig \"defconfig\")\n"
 "                           (extra-options %default-extra-linux-options)\n"
 "                           (patches (list %boot-logo-patch)))\n"
@@ -2441,20 +2554,20 @@ msgstr ""
 "                           #:key\n"
 "                           ;; A function that takes an arch and a variant.\n"
 "                           ;; See kernel-config for an example.\n"
-"                           (extra-version #f)\n"
-"                           (configuration-file #f)\n"
+"                           (extra-version #false)\n"
+"                           (configuration-file #false)\n"
 "                           (defconfig \"defconfig\")\n"
 "                           (extra-options %default-extra-linux-options)\n"
 "                           (patches (list %boot-logo-patch)))\n"
 "  ...)\n"
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1365
+#: doc/guix-cookbook.texi:1404
 msgid "The current @code{linux-libre} package is for the 5.1.x series, and is declared like this:"
 msgstr "Das momentane @code{linux-libre}-Paket zielt ab auf die 5.1.x-Serie und ist wie folgt deklariert:"
 
 #. type: lisp
-#: doc/guix-cookbook.texi:1373
+#: doc/guix-cookbook.texi:1412
 #, no-wrap
 msgid ""
 "(define-public linux-libre\n"
@@ -2472,17 +2585,17 @@ msgstr ""
 "                    #:configuration-file kernel-config))\n"
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1382
+#: doc/guix-cookbook.texi:1421
 msgid "Any keys which are not assigned values inherit their default value from the @code{make-linux-libre} definition.  When comparing the two snippets above, you may notice that the code comment in the first doesn't actually refer to the @code{#:extra-version} keyword; it is actually for @code{#:configuration-file}.  Because of this, it is not actually easy to include a custom kernel configuration from the definition, but don't worry, there are other ways to work with what we do have."
 msgstr "Alle Schlüssel, denen kein Wert zugewiesen wird, erben ihren Vorgabewert von der Definition von @code{make-linux-libre}. Wenn Sie die beiden Schnipsel oben vergleichen, könnte Ihnen auffallen, dass sich der Code-Kommentar in ersterem tatsächlich @emph{nicht} auf das @code{#:extra-version}-Schlüsselwort bezieht, sondern auf @code{#:configuration-file}. Deswegen ist es nicht so leicht, aus der Definition heraus eine eigene Kernel-Konfiguration anhand der Definition zu schreiben, aber keine Sorge, es gibt andere Möglichkeiten, um mit dem zu arbeiten, was uns gegeben wurde."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1388
+#: doc/guix-cookbook.texi:1427
 msgid "There are two ways to create a kernel with a custom kernel configuration.  The first is to provide a standard @file{.config} file during the build process by including an actual @file{.config} file as a native input to our custom kernel.  The following is a snippet from the custom @code{'configure} phase of the @code{make-linux-libre} package definition:"
 msgstr "Es gibt zwei Möglichkeiten, einen Kernel mit eigener Kernel-Konfiguration zu erzeugen. Die erste ist, eine normale @file{.config}-Datei als native Eingabe zu unserem angepassten Kernel hinzuzufügen. Im Folgenden sehen Sie ein Schnipsel aus der angepassten @code{'configure}-Phase der @code{make-linux-libre}-Paketdefinition:"
 
 #. type: lisp
-#: doc/guix-cookbook.texi:1392
+#: doc/guix-cookbook.texi:1431
 #, no-wrap
 msgid ""
 "(let ((build  (assoc-ref %standard-phases 'build))\n"
@@ -2494,7 +2607,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix-cookbook.texi:1400
+#: doc/guix-cookbook.texi:1439
 #, no-wrap
 msgid ""
 "  ;; Use a custom kernel configuration file or a default\n"
@@ -2503,7 +2616,7 @@ msgid ""
 "      (begin\n"
 "        (copy-file config \".config\")\n"
 "        (chmod \".config\" #o666))\n"
-"      (invoke \"make\" ,defconfig))\n"
+"      (invoke \"make\" ,defconfig)))\n"
 msgstr ""
 "  ;; Use a custom kernel configuration file or a default\n"
 "  ;; configuration file.\n"
@@ -2511,15 +2624,15 @@ msgstr ""
 "      (begin\n"
 "        (copy-file config \".config\")\n"
 "        (chmod \".config\" #o666))\n"
-"      (invoke \"make\" ,defconfig))\n"
+"      (invoke \"make\" ,defconfig)))\n"
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1405
+#: doc/guix-cookbook.texi:1444
 msgid "Below is a sample kernel package.  The @code{linux-libre} package is nothing special and can be inherited from and have its fields overridden like any other package:"
 msgstr "Nun folgt ein Beispiel-Kernel-Paket. Das @code{linux-libre}-Paket ist nicht anders als andere Pakete und man kann von ihm erben und seine Felder ersetzen wie bei jedem anderen Paket."
 
 #. type: lisp
-#: doc/guix-cookbook.texi:1414
+#: doc/guix-cookbook.texi:1453
 #, no-wrap
 msgid ""
 "(define-public linux-libre/E2140\n"
@@ -2539,22 +2652,22 @@ msgstr ""
 "                      (package-native-inputs linux-libre))))))\n"
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1421
+#: doc/guix-cookbook.texi:1460
 msgid "In the same directory as the file defining @code{linux-libre-E2140} is a file named @file{E2140.config}, which is an actual kernel configuration file.  The @code{defconfig} keyword of @code{make-linux-libre} is left blank here, so the only kernel configuration in the package is the one which was included in the @code{native-inputs} field."
 msgstr "Im selben Verzeichnis wie die Datei, die @code{linux-libre-E2140} definiert, befindet sich noch eine Datei namens @file{E2140.config}, bei der es sich um eine richtige Kernel-Konfigurationsdatei handelt. Das Schlüsselwort @code{defconfig} von @code{make-linux-libre} wird hier leer gelassen, so dass die einzige Kernel-Konfiguration im Paket die im @code{native-inputs}-Feld ist."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1426
+#: doc/guix-cookbook.texi:1465
 msgid "The second way to create a custom kernel is to pass a new value to the @code{extra-options} keyword of the @code{make-linux-libre} procedure.  The @code{extra-options} keyword works with another function defined right below it:"
 msgstr "Die zweite Möglichkeit, einen eigenen Kernel zu erzeugen, ist, einen neuen Wert an das @code{extra-options}-Schlüsselwort der @code{make-linux-libre}-Prozedur zu übergeben. Das @code{extra-options}-Schlüsselwort wird zusammen mit einer anderen, direkt darunter definierten Funktion benutzt:"
 
 #. type: lisp
-#: doc/guix-cookbook.texi:1442
+#: doc/guix-cookbook.texi:1481
 #, no-wrap
 msgid ""
 "(define %default-extra-linux-options\n"
 "  `(;; https://lists.gnu.org/archive/html/guix-devel/2014-04/msg00039.html\n"
-"   (\"CONFIG_DEVPTS_MULTIPLE_INSTANCES\" . #t)\n"
+"   (\"CONFIG_DEVPTS_MULTIPLE_INSTANCES\" . #true)\n"
 "   ;; Modules required for initrd:\n"
 "   (\"CONFIG_NET_9P\" . m)\n"
 "   (\"CONFIG_NET_9P_VIRTIO\" . m)\n"
@@ -2570,7 +2683,7 @@ msgid ""
 msgstr ""
 "(define %default-extra-linux-options\n"
 "  `(;; https://lists.gnu.org/archive/html/guix-devel/2014-04/msg00039.html\n"
-"   (\"CONFIG_DEVPTS_MULTIPLE_INSTANCES\" . #t)\n"
+"   (\"CONFIG_DEVPTS_MULTIPLE_INSTANCES\" . #true)\n"
 "   ;; Modules required for initrd:\n"
 "   (\"CONFIG_NET_9P\" . m)\n"
 "   (\"CONFIG_NET_9P_VIRTIO\" . m)\n"
@@ -2585,16 +2698,16 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix-cookbook.texi:1453
+#: doc/guix-cookbook.texi:1492
 #, no-wrap
 msgid ""
 "(define (config->string options)\n"
 "  (string-join (map (match-lambda\n"
 "                      ((option . 'm)\n"
 "                       (string-append option \"=m\"))\n"
-"                      ((option . #t)\n"
+"                      ((option . #true)\n"
 "                       (string-append option \"=y\"))\n"
-"                      ((option . #f)\n"
+"                      ((option . #false)\n"
 "                       (string-append option \"=n\")))\n"
 "                    options)\n"
 "               \"\\n\"))\n"
@@ -2603,20 +2716,20 @@ msgstr ""
 "  (string-join (map (match-lambda\n"
 "                      ((option . 'm)\n"
 "                       (string-append option \"=m\"))\n"
-"                      ((option . #t)\n"
+"                      ((option . #true)\n"
 "                       (string-append option \"=y\"))\n"
-"                      ((option . #f)\n"
+"                      ((option . #false)\n"
 "                       (string-append option \"=n\")))\n"
 "                    options)\n"
 "               \"\\n\"))\n"
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1456
+#: doc/guix-cookbook.texi:1495
 msgid "And in the custom configure script from the `make-linux-libre` package:"
 msgstr "Und im eigenen configure-Skript des „make-linux-libre“-Pakets:"
 
 #. type: lisp
-#: doc/guix-cookbook.texi:1464
+#: doc/guix-cookbook.texi:1503
 #, no-wrap
 msgid ""
 ";; Appending works even when the option wasn't in the\n"
@@ -2636,23 +2749,23 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix-cookbook.texi:1466
+#: doc/guix-cookbook.texi:1505
 #, no-wrap
-msgid "(invoke \"make\" \"oldconfig\"))))\n"
-msgstr "(invoke \"make\" \"oldconfig\"))))\n"
+msgid "(invoke \"make\" \"oldconfig\")\n"
+msgstr "(invoke \"make\" \"oldconfig\")\n"
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1471
+#: doc/guix-cookbook.texi:1510
 msgid "So by not providing a configuration-file the @file{.config} starts blank, and then we write into it the collection of flags that we want.  Here's another custom kernel:"
 msgstr "Indem wir also kein „configuration-file“ mitgeben, ist @file{.config} anfangs leer und danach schreiben wir dort die Sammlung der gewünschten Optionen („Flags“) hinein. Hier ist noch ein eigener Kernel:"
 
 #. type: lisp
-#: doc/guix-cookbook.texi:1479
+#: doc/guix-cookbook.texi:1518
 #, no-wrap
 msgid ""
 "(define %macbook41-full-config\n"
 "  (append %macbook41-config-options\n"
-"          %filesystems\n"
+"          %file-systems\n"
 "          %efi-support\n"
 "          %emulation\n"
 "          (@@@@ (gnu packages linux) %default-extra-linux-options)))\n"
@@ -2660,14 +2773,14 @@ msgid ""
 msgstr ""
 "(define %macbook41-full-config\n"
 "  (append %macbook41-config-options\n"
-"          %filesystems\n"
+"          %file-systems\n"
 "          %efi-support\n"
 "          %emulation\n"
 "          (@@@@ (gnu packages linux) %default-extra-linux-options)))\n"
 "\n"
 
 #. type: lisp
-#: doc/guix-cookbook.texi:1489
+#: doc/guix-cookbook.texi:1528
 #, no-wrap
 msgid ""
 "(define-public linux-libre-macbook41\n"
@@ -2691,55 +2804,55 @@ msgstr ""
 "                      #:extra-options %macbook41-config-options))\n"
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1496
-msgid "In the above example @code{%filesystems} is a collection of flags enabling different filesystem support, @code{%efi-support} enables EFI support and @code{%emulation} enables a x86_64-linux machine to act in 32-bit mode also.  @code{%default-extra-linux-options} are the ones quoted above, which had to be added in since they were replaced in the @code{extra-options} keyword."
-msgstr "Im obigen Beispiel ist @code{%filesystems} eine Sammlung solcher „Flags“, mit denen Unterstützung für verschiedene Dateisysteme aktiviert wird, @code{%efi-support} aktiviert Unterstützung für EFI und @code{%emulation} ermöglicht es einer x86_64-linux-Maschine, auch im 32-Bit-Modus zu arbeiten. Die @code{%default-extra-linux-options} sind die oben zitierten, die wieder hinzugefügt werden mussten, weil sie durch das @code{extra-options}-Schlüsselwort ersetzt worden waren."
+#: doc/guix-cookbook.texi:1535
+msgid "In the above example @code{%file-systems} is a collection of flags enabling different file system support, @code{%efi-support} enables EFI support and @code{%emulation} enables a x86_64-linux machine to act in 32-bit mode also.  @code{%default-extra-linux-options} are the ones quoted above, which had to be added in since they were replaced in the @code{extra-options} keyword."
+msgstr "Im obigen Beispiel ist @code{%file-systems} eine Sammlung solcher „Flags“, mit denen Unterstützung für verschiedene Dateisysteme aktiviert wird, @code{%efi-support} aktiviert Unterstützung für EFI und @code{%emulation} ermöglicht es einer x86_64-linux-Maschine, auch im 32-Bit-Modus zu arbeiten. Die @code{%default-extra-linux-options} sind die oben zitierten, die wieder hinzugefügt werden mussten, weil sie durch das @code{extra-options}-Schlüsselwort ersetzt worden waren."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1505
+#: doc/guix-cookbook.texi:1544
 msgid "This all sounds like it should be doable, but how does one even know which modules are required for a particular system? Two places that can be helpful in trying to answer this question is the @uref{https://wiki.gentoo.org/wiki/Handbook:AMD64/Installation/Kernel, Gentoo Handbook} and the @uref{https://www.kernel.org/doc/html/latest/admin-guide/README.html?highlight=localmodconfig, documentation from the kernel itself}.  From the kernel documentation, it seems that @code{make localmodconfig} is the command we want."
 msgstr "All das klingt machbar, aber woher weiß man überhaupt, welche Module für ein bestimmtes System nötig sind? Es gibt zwei hilfreiche Anlaufstellen, zum einen das @uref{https://wiki.gentoo.org/wiki/Handbook:AMD64/Installation/Kernel, Gentoo-Handbuch}, zum anderen die @uref{https://www.kernel.org/doc/html/latest/admin-guide/README.html?highlight=localmodconfig, Dokumentation des Kernels selbst}. Aus der Kernel-Dokumentation erfahren wir, dass @code{make localmodconfig} der Befehl sein könnte, den wir wollen."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1508
+#: doc/guix-cookbook.texi:1547
 msgid "In order to actually run @code{make localmodconfig} we first need to get and unpack the kernel source code:"
 msgstr "Um @code{make localmodconfig} auch tatsächlich ausführen zu können, müssen wir zunächst den Quellcode des Kernels holen und entpacken:"
 
 #. type: example
-#: doc/guix-cookbook.texi:1511
+#: doc/guix-cookbook.texi:1550
 #, no-wrap
 msgid "tar xf $(guix build linux-libre --source)\n"
 msgstr "tar xf $(guix build linux-libre --source)\n"
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1518
+#: doc/guix-cookbook.texi:1557
 msgid "Once inside the directory containing the source code run @code{touch .config} to create an initial, empty @file{.config} to start with.  @code{make localmodconfig} works by seeing what you already have in @file{.config} and letting you know what you're missing.  If the file is blank then you're missing everything.  The next step is to run:"
 msgstr "Sobald wir im Verzeichnis mit dem Quellcode sind, führen Sie @code{touch .config} aus, um mit einer ersten, leeren @file{.config} anzufangen. @code{make localmodconfig} funktioniert so, dass angeschaut wird, was bereits in Ihrer @file{.config} steht, und Ihnen mitgeteilt wird, was Ihnen noch fehlt. Wenn die Datei leer bleibt, fehlt eben alles. Der nächste Schritt ist, das hier auszuführen:"
 
 #. type: example
-#: doc/guix-cookbook.texi:1521
+#: doc/guix-cookbook.texi:1560
 #, no-wrap
 msgid "guix environment linux-libre -- make localmodconfig\n"
 msgstr "guix environment linux-libre -- make localmodconfig\n"
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1526
+#: doc/guix-cookbook.texi:1565
 msgid "and note the output.  Do note that the @file{.config} file is still empty.  The output generally contains two types of warnings.  The first start with \"WARNING\" and can actually be ignored in our case.  The second read:"
 msgstr "und uns die Ausgabe davon anzuschauen. Beachten Sie, dass die @file{.config}-Datei noch immer leer ist. Die Ausgabe enthält im Allgemeinen zwei Arten von Warnungen. Am Anfang der ersten steht „WARNING“ und in unserem Fall können wir sie tatsächlich ignorieren. Bei der zweiten heißt es:"
 
 #. type: example
-#: doc/guix-cookbook.texi:1529
+#: doc/guix-cookbook.texi:1568
 #, no-wrap
 msgid "module pcspkr did not have configs CONFIG_INPUT_PCSPKR\n"
 msgstr "module pcspkr did not have configs CONFIG_INPUT_PCSPKR\n"
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1534
+#: doc/guix-cookbook.texi:1573
 msgid "For each of these lines, copy the @code{CONFIG_XXXX_XXXX} portion into the @file{.config} in the directory, and append @code{=m}, so in the end it looks like this:"
 msgstr "Für jede solche Zeile kopieren Sie den @code{CONFIG_XXXX_XXXX}-Teil in die @file{.config} im selben Verzeichnis und hängen @code{=m} an, damit es am Ende so aussieht:"
 
 #. type: example
-#: doc/guix-cookbook.texi:1538
+#: doc/guix-cookbook.texi:1577
 #, no-wrap
 msgid ""
 "CONFIG_INPUT_PCSPKR=m\n"
@@ -2749,150 +2862,1233 @@ msgstr ""
 "CONFIG_VIRTIO=m\n"
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1547
+#: doc/guix-cookbook.texi:1586
 msgid "After copying all the configuration options, run @code{make localmodconfig} again to make sure that you don't have any output starting with ``module''.  After all of these machine specific modules there are a couple more left that are also needed.  @code{CONFIG_MODULES} is necessary so that you can build and load modules separately and not have everything built into the kernel.  @code{CONFIG_BLK_DEV_SD} is required for reading from hard drives.  It is possible that there are other modules which you will need."
 msgstr "Nachdem Sie alle Konfigurationsoptionen kopiert haben, führen Sie noch einmal @code{make localmodconfig} aus, um sicherzugehen, dass es keine Ausgaben mehr gibt, deren erstes Wort „module“ ist. Zusätzlich zu diesen maschinenspezifischen Modulen gibt es noch ein paar mehr, die Sie auch brauchen. @code{CONFIG_MODULES} brauchen Sie, damit Sie Module getrennt erstellen und laden können und nicht alles im Kernel eingebaut sein muss. Sie brauchen auch @code{CONFIG_BLK_DEV_SD}, um von Festplatten lesen zu können. Möglicherweise gibt es auch sonst noch Module, die Sie brauchen werden."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1551
+#: doc/guix-cookbook.texi:1590
 msgid "This post does not aim to be a guide to configuring your own kernel however, so if you do decide to build a custom kernel you'll have to seek out other guides to create a kernel which is just right for your needs."
 msgstr "Die Absicht hinter dem hier Niedergeschriebenen ist @emph{nicht}, eine Anleitung zum Konfigurieren eines eigenen Kernels zu sein. Wenn Sie also vorhaben, den Kernel an Ihre ganz eigenen Bedürfnisse anzupassen, werden Sie in anderen Anleitungen fündig."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1559
-msgid "The second way to setup the kernel configuration makes more use of Guix's features and allows you to share configuration segments between different kernels.  For example, all machines using EFI to boot have a number of EFI configuration flags that they need.  It is likely that all the kernels will share a list of filesystems to support.  By using variables it is easier to see at a glance what features are enabled and to make sure you don't have features in one kernel but missing in another."
-msgstr "Die zweite Möglichkeit, die Kernel-Konfiguration einzurichten, benutzt mehr von Guix’ Funktionalitäten und sie ermöglicht es Ihnen, Gemeinsamkeiten von Konfigurationen zwischen verschiedenen Kernels zu teilen. Zum Beispiel wird eine Reihe von EFI-Konfigurationsoptionen von allen Maschinen, die EFI benutzen, benötigt. Wahrscheinlich haben all diese Kernel eine Schnittmenge zu unterstützender Dateisysteme. Indem Sie Variable benutzen, können Sie leicht auf einen Schlag sehen, welche Funktionalitäten aktiviert sind, und gleichzeitig sicherstellen, dass Ihnen nicht Funktionalitäten des einen Kernels im anderen fehlen."
+#: doc/guix-cookbook.texi:1598
+msgid "The second way to setup the kernel configuration makes more use of Guix's features and allows you to share configuration segments between different kernels.  For example, all machines using EFI to boot have a number of EFI configuration flags that they need.  It is likely that all the kernels will share a list of file systems to support.  By using variables it is easier to see at a glance what features are enabled and to make sure you don't have features in one kernel but missing in another."
+msgstr "Die zweite Möglichkeit, die Kernel-Konfiguration einzurichten, benutzt mehr von Guix’ Funktionalitäten und sie ermöglicht es Ihnen, Gemeinsamkeiten von Konfigurationen zwischen verschiedenen Kernels zu teilen. Zum Beispiel wird eine Reihe von EFI-Konfigurationsoptionen von allen Maschinen, die EFI benutzen, benötigt. Wahrscheinlich haben all diese Kernels eine Schnittmenge zu unterstützender Dateisysteme. Indem Sie Variable benutzen, können Sie leicht auf einen Schlag sehen, welche Funktionalitäten aktiviert sind, und gleichzeitig sicherstellen, dass Ihnen nicht Funktionalitäten des einen Kernels im anderen fehlen."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1564
+#: doc/guix-cookbook.texi:1603
 msgid "Left undiscussed however, is Guix's initrd and its customization.  It is likely that you'll need to modify the initrd on a machine using a custom kernel, since certain modules which are expected to be built may not be available for inclusion into the initrd."
 msgstr "Was wir hierbei nicht erläutert haben, ist, wie Guix’ initrd und dessen Anpassung funktioniert. Wahrscheinlich werden Sie auf einer Maschine mit eigenem Kernel die initrd verändern müssen, weil sonst versucht wird, bestimmte Module in die initrd einzubinden, die Sie gar nicht erstellen haben lassen."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1574
+#: doc/guix-cookbook.texi:1610
+msgid "To connect to a Wireguard VPN server you need the kernel module to be loaded in memory and a package providing networking tools that support it (e.g.  @code{wireguard-tools} or @code{network-manager})."
+msgstr "Damit Sie sich mit einem Wireguard-VPN-Server verbinden können, müssen Sie dafür sorgen, dass die dafür nötigen Kernel-Module in den Speicher eingeladen werden und ein Paket bereitsteht, dass die unterstützenden Netzwerkwerkzeuge dazu enthält (z.B.@: @code{wireguard-tools} oder @code{network-manager})."
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:1614
+msgid "Here is a configuration example for Linux-Libre < 5.6, where the module is out of tree and need to be loaded manually---following revisions of the kernel have it built-in and so don't need such configuration:"
+msgstr "Hier ist ein Beispiel für eine Konfiguration für Linux-Libre < 5.6, wo sich das Modul noch nicht im Kernel-Quellbaum befindet („out of tree“) und daher von Hand geladen werden muss — in nachfolgenden Kernelversionen ist das Modul bereits eingebaut und @emph{keine} derartige Konfiguration ist nötig."
+
+#. type: lisp
+#: doc/guix-cookbook.texi:1619
+#, no-wrap
+msgid ""
+"(use-modules (gnu))\n"
+"(use-service-modules desktop)\n"
+"(use-package-modules vpn)\n"
+"\n"
+msgstr ""
+"(use-modules (gnu))\n"
+"(use-service-modules desktop)\n"
+"(use-package-modules vpn)\n"
+"\n"
+
+#. type: lisp
+#: doc/guix-cookbook.texi:1628
+#, no-wrap
+msgid ""
+"(operating-system\n"
+"  ;; …\n"
+"  (services (cons (simple-service 'wireguard-module\n"
+"                                  kernel-module-loader-service-type\n"
+"                                  '(\"wireguard\"))\n"
+"                  %desktop-services))\n"
+"  (packages (cons wireguard-tools %base-packages))\n"
+"  (kernel-loadable-modules (list wireguard-linux-compat)))\n"
+msgstr ""
+"(operating-system\n"
+"  ;; …\n"
+"  (services (cons (simple-service 'wireguard-module\n"
+"                                  kernel-module-loader-service-type\n"
+"                                  '(\"wireguard\"))\n"
+"                  %desktop-services))\n"
+"  (packages (cons wireguard-tools %base-packages))\n"
+"  (kernel-loadable-modules (list wireguard-linux-compat)))\n"
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:1632
+msgid "After reconfiguring and restarting your system you can either use Wireguard tools or NetworkManager to connect to a VPN server."
+msgstr "Nachdem Sie Ihr System rekonfiguriert haben, können Sie dann entweder die Wireguard-Werkzeuge („Wireguard Tools“) oder NetworkManager benutzen, um sich mit einem VPN-Server zu verbinden."
+
+#. type: subsection
+#: doc/guix-cookbook.texi:1633
+#, no-wrap
+msgid "Using Wireguard tools"
+msgstr "Die Wireguard Tools benutzen"
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:1639
+msgid "To test your Wireguard setup it is convenient to use @command{wg-quick}.  Just give it a configuration file @command{wg-quick up ./wg0.conf}; or put that file in @file{/etc/wireguard} and run @command{wg-quick up wg0} instead."
+msgstr "Um Ihre Wireguard-Konfiguration zu testen, bietet es sich an, @command{wg-quick} zu benutzen. Übergeben Sie einfach eine Konfigurationsdatei @command{wg-quick up ./wg0.conf}. Sie können auch die Konfigurationsdatei in @file{/etc/wireguard} platzieren und dann stattdessen @command{wg-quick up wg0} ausführen."
+
+#. type: quotation
+#: doc/guix-cookbook.texi:1640
+#, no-wrap
+msgid "Note"
+msgstr "Anmerkung"
+
+#. type: quotation
+#: doc/guix-cookbook.texi:1643
+msgid "Be warned that the author described this command as a: “[…] very quick and dirty bash script […]”."
+msgstr "Seien Sie gewarnt, dass sein Autor diesen Befehl als ein schnell und unsauber geschriebenes Bash-Skript bezeichnet hat."
+
+#. type: subsection
+#: doc/guix-cookbook.texi:1645
+#, no-wrap
+msgid "Using NetworkManager"
+msgstr "NetworkManager benutzen"
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:1653
+msgid "Thanks to NetworkManager support for Wireguard we can connect to our VPN using @command{nmcli} command.  Up to this point this guide assumes that you're using Network Manager service provided by @code{%desktop-services}.  Ortherwise you need to adjust your services list to load @code{network-manager-service-type} and reconfigure your Guix system."
+msgstr "Dank der Unterstützung für Wireguard durch den NetworkManager können wir über den Befehl @command{nmcli} eine Verbindung mit unserem VPN herstellen. Bislang treffen wir in dieser Anleitung die Annahme, dass Sie den Network-Manager-Dienst aus den @code{%desktop-services} benutzen. Wenn Sie eine abweichende Konfiguration verwenden, müssen Sie unter Umständen Ihre @code{services}-Liste abändern, damit ein @code{network-manager-service-type} geladen wird, und Ihr Guix-System rekonfigurieren."
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:1655
+msgid "To import your VPN configuration execute nmcli import command:"
+msgstr "Benutzen Sie den nmcli-Import-Befehl, um Ihre VPN-Konfiguration zu importieren."
+
+#. type: example
+#: doc/guix-cookbook.texi:1659
+#, no-wrap
+msgid ""
+"# nmcli connection import type wireguard file wg0.conf\n"
+"Connection 'wg0' (edbee261-aa5a-42db-b032-6c7757c60fde) successfully added\n"
+msgstr ""
+"# nmcli connection import type wireguard file wg0.conf\n"
+"Verbindung »wg0« (edbee261-aa5a-42db-b032-6c7757c60fde) erfolgreich hinzugefügt.\n"
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:1664
+msgid "This will create a configuration file in @file{/etc/NetworkManager/wg0.nmconnection}.  Next connect to the Wireguard server:"
+msgstr "Dadurch wird eine Konfigurationsdatei in @file{/etc/NetworkManager/wg0.nmconnection} angelegt. Anschließend können Sie sich mit dem Wireguard-Server verbinden:"
+
+#. type: example
+#: doc/guix-cookbook.texi:1668
+#, no-wrap
+msgid ""
+"$ nmcli connection up wg0\n"
+"Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/6)\n"
+msgstr ""
+"$ nmcli connection up wg0\n"
+"Verbindung wurde erfolgreich aktiviert (aktiver D-Bus-Pfad: /org/freedesktop/NetworkManager/ActiveConnection/6)\n"
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:1672
+msgid "By default NetworkManager will connect automatically on system boot.  To change that behaviour you need to edit your config:"
+msgstr "Nach Voreinstellung wird sich NetworkManager automatisch beim Systemstart verbinden. Um dieses Verhalten zu ändern, müssen Sie Ihre Konfiguration bearbeiten:"
+
+#. type: example
+#: doc/guix-cookbook.texi:1675
+#, no-wrap
+msgid "# nmcli connection modify wg0 connection.autoconnect no\n"
+msgstr "# nmcli connection modify wg0 connection.autoconnect no\n"
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:1680
+msgid "For more specific information about NetworkManager and wireguard @uref{https://blogs.gnome.org/thaller/2019/03/15/wireguard-in-networkmanager/,see this post by thaller}."
+msgstr "Für Informationen speziell zu NetworkManager und Wireguard @uref{https://blogs.gnome.org/thaller/2019/03/15/wireguard-in-networkmanager/,siehe diesen Blogeintrag von thaller}."
+
+#. type: cindex
+#: doc/guix-cookbook.texi:1683
+#, no-wrap
+msgid "wm"
+msgstr "Fensterverwaltung (Window Manager, WM)"
+
+#. type: subsection
+#: doc/guix-cookbook.texi:1685 doc/guix-cookbook.texi:1686
+#, no-wrap
+msgid "StumpWM"
+msgstr "StumpWM"
+
+#. type: cindex
+#: doc/guix-cookbook.texi:1687
+#, no-wrap
+msgid "stumpwm"
+msgstr "stumpwm"
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:1692
+msgid "You could install StumpWM with a Guix system by adding @code{stumpwm} and optionally @code{`(,stumpwm \"lib\")} packages to a system configuration file, e.g.@: @file{/etc/config.scm}."
+msgstr "Sie können StumpWM mit einem Guix-System installieren, indem Sie die Pakete @code{stumpwm} und optional auch @code{`(,stumpwm \"lib\")} in eine Systemkonfigurationsdatei, z.B.@: @file{/etc/config.scm}, eintragen."
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:1694
+msgid "An example configuration can look like this:"
+msgstr "Eine Beispielkonfiguration kann so aussehen:"
+
+#. type: lisp
+#: doc/guix-cookbook.texi:1698
+#, no-wrap
+msgid ""
+"(use-modules (gnu))\n"
+"(use-package-modules wm)\n"
+"\n"
+msgstr ""
+"(use-modules (gnu))\n"
+"(use-package-modules wm)\n"
+"\n"
+
+#. type: lisp
+#: doc/guix-cookbook.texi:1703
+#, no-wrap
+msgid ""
+"(operating-system\n"
+"  ;; …\n"
+"  (packages (append (list sbcl stumpwm `(,stumpwm \"lib\"))\n"
+"                    %base-packages)))\n"
+msgstr ""
+"(operating-system\n"
+"  ;; …\n"
+"  (packages (append (list sbcl stumpwm `(,stumpwm \"lib\"))\n"
+"                    %base-packages)))\n"
+
+#. type: cindex
+#: doc/guix-cookbook.texi:1705
+#, no-wrap
+msgid "stumpwm fonts"
+msgstr "StumpWM-Schriftarten"
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:1709
+msgid "By default StumpWM uses X11 fonts, which could be small or pixelated on your system.  You could fix this by installing StumpWM contrib Lisp module @code{sbcl-ttf-fonts}, adding it to Guix system packages:"
+msgstr "Nach Voreinstellung benutzt StumpWM die Schriftarten von X11, die auf Ihrem System klein oder verpixelt erscheinen mögen. Sie können das Problem beheben, indem Sie das Lisp-Modul @code{sbcl-ttf-fonts} aus den Beiträgen zu StumpWM („StumpWM Contrib“) als Systempaket installieren:"
+
+#. type: lisp
+#: doc/guix-cookbook.texi:1713
+#, no-wrap
+msgid ""
+"(use-modules (gnu))\n"
+"(use-package-modules fonts wm)\n"
+"\n"
+msgstr ""
+"(use-modules (gnu))\n"
+"(use-package-modules fonts wm)\n"
+"\n"
+
+#. type: lisp
+#: doc/guix-cookbook.texi:1718
+#, no-wrap
+msgid ""
+"(operating-system\n"
+"  ;; …\n"
+"  (packages (append (list sbcl stumpwm `(,stumpwm \"lib\"))\n"
+"                    sbcl-ttf-fonts font-dejavu %base-packages)))\n"
+msgstr ""
+"(operating-system\n"
+"  ;; …\n"
+"  (packages (append (list sbcl stumpwm `(,stumpwm \"lib\"))\n"
+"                    sbcl-ttf-fonts font-dejavu %base-packages)))\n"
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:1722
+msgid "Then you need to add the following code to a StumpWM configuration file @file{~/.stumpwm.d/init.lisp}:"
+msgstr "Den folgenden Code fügen Sie in die Konfigurationsdatei von StumpWM @file{~/.stumpwm.d/init.lisp} ein:"
+
+#. type: lisp
+#: doc/guix-cookbook.texi:1729
+#, no-wrap
+msgid ""
+"(require :ttf-fonts)\n"
+"(setf xft:*font-dirs* '(\"/run/current-system/profile/share/fonts/\"))\n"
+"(setf clx-truetype:+font-cache-filename+ (concat (getenv \"HOME\") \"/.fonts/font-cache.sexp\"))\n"
+"(xft:cache-fonts)\n"
+"(set-font (make-instance 'xft:font :family \"DejaVu Sans Mono\" :subfamily \"Book\" :size 11))\n"
+msgstr ""
+"(require :ttf-fonts)\n"
+"(setf xft:*font-dirs* '(\"/run/current-system/profile/share/fonts/\"))\n"
+"(setf clx-truetype:+font-cache-filename+ (concat (getenv \"HOME\") \"/.fonts/font-cache.sexp\"))\n"
+"(xft:cache-fonts)\n"
+"(set-font (make-instance 'xft:font :family \"DejaVu Sans Mono\" :subfamily \"Book\" :size 11))\n"
+
+#. type: subsection
+#: doc/guix-cookbook.texi:1731 doc/guix-cookbook.texi:1732
+#, no-wrap
+msgid "Session lock"
+msgstr "Sitzungen sperren"
+
+#. type: cindex
+#: doc/guix-cookbook.texi:1733
+#, no-wrap
+msgid "sessionlock"
+msgstr "Sitzungssperre"
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:1739
+msgid "Depending on your environment, locking the screen of your session might come built in or it might be something you have to set up yourself. If you use a desktop environment like GNOME or KDE, it's usually built in. If you use a plain window manager like StumpWM or EXWM, you might have to set it up yourself."
+msgstr "Abhängig von Ihrer Arbeitsumgebung ist das Sperren Ihres Bildschirms vielleicht bereits eingebaut. Wenn nicht, müssen Sie es selbst einrichten. Wenn Sie eine Arbeitsumgebung wie GNOME oder KDE benutzen, ist Sperren normalerweise bereits möglich. Wenn Sie einen einfachen Fensterverwalter („Window Manager“) wie StumpWM oder EXWM benutzen, müssen Sie es vielleicht selbst einrichten."
+
+#. type: subsubsection
+#: doc/guix-cookbook.texi:1740 doc/guix-cookbook.texi:1741
+#, no-wrap
+msgid "Xorg"
+msgstr "Xorg"
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:1747
+msgid "If you use Xorg, you can use the utility @uref{https://www.mankier.com/1/xss-lock, xss-lock} to lock the screen of your session.  xss-lock is triggered by DPMS which since Xorg 1.8 is auto-detected and enabled if ACPI is also enabled at kernel runtime."
+msgstr "Sofern Sie Xorg benutzen, können Sie mit dem Programm @uref{https://www.mankier.com/1/xss-lock, xss-lock} den Bildschirm für Ihre Sitzung sperren. xss-lock wird durch DPMS ausgelöst, was seit Xorg 1.8 automatisch aktiv ist, wenn zur Laufzeit des Kernels ACPI verfügbar ist."
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:1750
+msgid "To use xss-lock, you can simple execute it and put it into the background before you start your window manager from e.g. your @file{~/.xsession}:"
+msgstr "Um xss-lock zu benutzen, können Sie es einfach ausführen und in den Hintergrund versetzen, bevor Sie Ihren Fensterverwalter z.B.@: aus Ihrer @file{~/.xsession} heraus starten:"
+
+#. type: example
+#: doc/guix-cookbook.texi:1754
+#, no-wrap
+msgid ""
+"xss-lock -- slock &\n"
+"exec stumpwm\n"
+msgstr ""
+"xss-lock -- slock &\n"
+"exec stumpwm\n"
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:1758
+msgid "In this example, xss-lock uses @code{slock} to do the actual locking of the screen when it determines it's appropriate, like when you suspend your device."
+msgstr "In diesem Beispiel benutzt xss-lock das Programm @code{slock}, um die eigentliche Sperrung des Bildschirms durchzuführen, wenn es den Zeitpunkt dafür gekommen sieht, weil Sie z.B.@: Ihr Gerät in den Energiesparmodus versetzen."
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:1762
+msgid "For slock to be allowed to be a screen locker for the graphical session, it needs to be made setuid-root so it can authenticate users, and it needs a PAM service. This can be achieved by adding the following service to your @file{config.scm}:"
+msgstr "Damit slock aber überhaupt die Berechtigung dafür erteilt bekommt, Bildschirme grafischer Sitzungen zu sperren, muss es als setuid-root eingestellt sein, wodurch es Benutzer authentifizieren kann, außerdem braucht es Einstellungen im PAM-Dienst. Um das bereitzustellen, tragen Sie den folgenden Dienst in Ihre @file{config.scm} ein:"
+
+#. type: lisp
+#: doc/guix-cookbook.texi:1765
+#, no-wrap
+msgid "(screen-locker-service slock)\n"
+msgstr "(screen-locker-service slock)\n"
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:1771
+msgid "If you manually lock your screen, e.g. by directly calling slock when you want to lock your screen but not suspend it, it's a good idea to notify xss-lock about this so no confusion occurs. This can be done by executing @code{xset s activate} immediately before you execute slock."
+msgstr "Wenn Sie Ihren Bildschirm manuell sperren, z.B.@: indem Sie slock direkt aufrufen, wenn Sie Ihren Bildschirm sperren wollen, ohne in den Energiesparmodus zu wechseln, dann ist es eine gute Idee, das auch xss-lock mitzuteilen, indem Sie @code{xset s activate} direkt vor slock ausführen."
+
+#. type: cindex
+#: doc/guix-cookbook.texi:1774
+#, no-wrap
+msgid "linode, Linode"
+msgstr "linode, Linode"
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:1779
+msgid "To run Guix on a server hosted by @uref{https://www.linode.com, Linode}, start with a recommended Debian server.  We recommend using the default distro as a way to bootstrap Guix. Create your SSH keys."
+msgstr "Um Guix auf einem durch @uref{https://www.linode.com, Linode} bereitgestellten, „gehosteten“ Server zu benutzen, richten Sie zunächst einen dort empfohlenen Debian-Server ein. Unsere Empfehlung ist, zum Wechsel auf Guix mit der voreingestellten Distribution anzufangen. Erzeugen Sie Ihre SSH-Schlüssel."
+
+#. type: example
+#: doc/guix-cookbook.texi:1782
+#, no-wrap
+msgid "ssh-keygen\n"
+msgstr "ssh-keygen\n"
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:1788
+msgid "Be sure to add your SSH key for easy login to the remote server.  This is trivially done via Linode's graphical interface for adding SSH keys.  Go to your profile and click add SSH Key.  Copy into it the output of:"
+msgstr "Stellen Sie sicher, dass Ihr SSH-Schlüssel zur leichten Anmeldung auf dem entfernten Server eingerichtet ist. Das können Sie leicht mit Linodes grafischer Oberfläche zum Hinzufügen von SSH-Schlüsseln bewerkstelligen. Gehen Sie dazu in Ihr Profil und klicken Sie auf die Funktion zum Hinzufügen eines SSH-Schlüssels. Kopieren Sie dort hinein die Ausgabe von:"
+
+#. type: example
+#: doc/guix-cookbook.texi:1791
+#, no-wrap
+msgid "cat ~/.ssh/<username>_rsa.pub\n"
+msgstr "cat ~/.ssh/<benutzername>_rsa.pub\n"
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:1795
+msgid "Power the Linode down. In the Linode's Disks/Configurations tab, resize the Debian disk to be smaller. 30 GB is recommended."
+msgstr "Fahren Sie den Linode-Knoten herunter. Im Karteireiter für „Disks/Configurations“ bei Linode verkleinern Sie das Laufwerk für Debian. Empfohlen werden 30@tie{}GB."
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:1797
+msgid "In the Linode settings, \"Add a disk\", with the following:"
+msgstr "In den Linode-Einstellungen fügen Sie ein Laufwerk mit folgenden Eigenschaften hinzu („Add a disk“):"
+
+#. type: itemize
+#: doc/guix-cookbook.texi:1800
+msgid "Label: \"Guix\""
+msgstr "Label: \"Guix\""
+
+#. type: itemize
+#: doc/guix-cookbook.texi:1803
+msgid "Filesystem: ext4"
+msgstr "Filesystem: ext4"
+
+#. type: itemize
+#: doc/guix-cookbook.texi:1806
+msgid "Set it to the remaining size"
+msgstr "Wählen Sie als Größe den übrigen Speicherplatz."
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:1811
+msgid "On the \"configuration\" field that comes with the default image, press \"...\" and select \"Edit\", then on that menu add to @file{/dev/sdc} the \"Guix\" label."
+msgstr "Drücken Sie im „configuration“-Feld des voreingestellten Abbilds auf „...“ und wählen Sie „Edit“. Tragen Sie in diesem Menü anschließend bei @file{/dev/sdc} „Guix“ als Bezeichnung („Label“) ein."
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:1813
+msgid "Now \"Add a Configuration\", with the following:"
+msgstr "Fügen Sie eine Konfiguration hinzu („Add a Configuration“) mit folgenden Eigenschaften:"
+
+#. type: itemize
+#: doc/guix-cookbook.texi:1816
+msgid "Label: Guix"
+msgstr "Label: Guix"
+
+#. type: itemize
+#: doc/guix-cookbook.texi:1819
+msgid "Kernel:GRUB 2 (it's at the bottom! This step is @b{IMPORTANT!})"
+msgstr "Kernel: GRUB 2 (Das steht ganz unten! Dieser Schritt ist @b{WICHTIG!})"
+
+#. type: itemize
+#: doc/guix-cookbook.texi:1822
+msgid "Block device assignment:"
+msgstr "Block device assignment:"
+
+#. type: itemize
+#: doc/guix-cookbook.texi:1825
+msgid "@file{/dev/sda}: Guix"
+msgstr "@file{/dev/sda}: Guix"
+
+#. type: itemize
+#: doc/guix-cookbook.texi:1828
+msgid "@file{/dev/sdb}: swap"
+msgstr "@file{/dev/sdb}: swap"
+
+#. type: itemize
+#: doc/guix-cookbook.texi:1831
+msgid "Root device: @file{/dev/sda}"
+msgstr "Root device: @file{/dev/sda}"
+
+#. type: itemize
+#: doc/guix-cookbook.texi:1834
+msgid "Turn off all the filesystem/boot helpers"
+msgstr "Schalten Sie alle Dateisystem-/Boot-Helfer ab."
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:1841
+msgid "Now power it back up, picking the Debian configuration.  Once it's booted up, ssh in your server via @code{ssh root@@@var{<your-server-IP-here>}}. (You can find your server IP address in your Linode Summary section.) Now you can run the \"install guix from @pxref{Binary Installation,,, guix, GNU Guix}\" steps:"
+msgstr "Starten Sie den Knoten jetzt wieder mit der Debian-Konfiguration. Sobald er wieder läuft, verbinden Sie sich mittels SSH zu Ihrem Server über @code{ssh root@@@var{<IP-Adresse-Ihres-Servers>}}. (Die IP-Adresse Ihres Servers finden Sie in Linodes Übersichtsseite bei „Summary“.) Nun können Sie mit den Schritten aus dem @ref{Aus Binärdatei installieren,,, guix.de, Referenzhandbuch zu GNU Guix} weitermachen:"
+
+#. type: example
+#: doc/guix-cookbook.texi:1849
+#, no-wrap
+msgid ""
+"sudo apt-get install gpg\n"
+"wget https://sv.gnu.org/people/viewgpg.php?user_id=15145 -qO - | gpg --import -\n"
+"wget https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh\n"
+"chmod +x guix-install.sh\n"
+"./guix-install.sh\n"
+"guix pull\n"
+msgstr ""
+"sudo apt-get install gpg\n"
+"wget https://sv.gnu.org/people/viewgpg.php?user_id=15145 -qO - | gpg --import -\n"
+"wget https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh\n"
+"chmod +x guix-install.sh\n"
+"./guix-install.sh\n"
+"guix pull\n"
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:1853
+msgid "Now it's time to write out a config for the server.  The key information is below. Save the resulting file as @file{guix-config.scm}."
+msgstr "Nun wird es Zeit, eine Konfiguration für den Server anzulegen. Die wichtigsten Informationen finden Sie hierunter. Speichern Sie die Konfiguration als @file{guix-config.scm}."
+
+#. type: lisp
+#: doc/guix-cookbook.texi:1864
+#, no-wrap
+msgid ""
+"(use-modules (gnu)\n"
+"             (guix modules))\n"
+"(use-service-modules networking\n"
+"                     ssh)\n"
+"(use-package-modules admin\n"
+"                     certs\n"
+"                     package-management\n"
+"                     ssh\n"
+"                     tls)\n"
+"\n"
+msgstr ""
+"(use-modules (gnu)\n"
+"             (guix modules))\n"
+"(use-service-modules networking\n"
+"                     ssh)\n"
+"(use-package-modules admin\n"
+"                     certs\n"
+"                     package-management\n"
+"                     ssh\n"
+"                     tls)\n"
+"\n"
+
+#. type: lisp
+#: doc/guix-cookbook.texi:1881
+#, no-wrap
+msgid ""
+"(operating-system\n"
+"  (host-name \"my-server\")\n"
+"  (timezone \"America/New_York\")\n"
+"  (locale \"en_US.UTF-8\")\n"
+"  ;; This goofy code will generate the grub.cfg\n"
+"  ;; without installing the grub bootloader on disk.\n"
+"  (bootloader (bootloader-configuration\n"
+"               (bootloader\n"
+"                (bootloader\n"
+"                 (inherit grub-bootloader)\n"
+"                 (installer #~(const #true))))))\n"
+"  (file-systems (cons (file-system\n"
+"                        (device \"/dev/sda\")\n"
+"                        (mount-point \"/\")\n"
+"                        (type \"ext4\"))\n"
+"                      %base-file-systems))\n"
+"\n"
+msgstr ""
+"(operating-system\n"
+"  (host-name \"my-server\")\n"
+"  (timezone \"America/New_York\")\n"
+"  (locale \"en_US.UTF-8\")\n"
+"  ;; Dieser komisch aussehende Code wird eine grub.cfg\n"
+"  ;; anlegen ohne den GRUB-Bootloader auf die\n"
+"  ;; Platte zu installieren.\n"
+"  (bootloader (bootloader-configuration\n"
+"               (bootloader\n"
+"                (bootloader\n"
+"                 (inherit grub-bootloader)\n"
+"                 (installer #~(const #true))))))\n"
+"  (file-systems (cons (file-system\n"
+"                        (device \"/dev/sda\")\n"
+"                        (mount-point \"/\")\n"
+"                        (type \"ext4\"))\n"
+"                      %base-file-systems))\n"
+"\n"
+
+#. type: lisp
+#: doc/guix-cookbook.texi:1884
+#, no-wrap
+msgid ""
+"  (swap-devices (list \"/dev/sdb\"))\n"
+"\n"
+msgstr ""
+"  (swap-devices (list \"/dev/sdb\"))\n"
+"\n"
+
+#. type: lisp
+#: doc/guix-cookbook.texi:1888
+#, no-wrap
+msgid ""
+"  (initrd-modules (cons \"virtio_scsi\"    ; Needed to find the disk\n"
+"                        %base-initrd-modules))\n"
+"\n"
+msgstr ""
+"  (initrd-modules (cons \"virtio_scsi\"    ; Um die Platte zu finden\n"
+"                        %base-initrd-modules))\n"
+"\n"
+
+#. type: lisp
+#: doc/guix-cookbook.texi:1897
+#, no-wrap
+msgid ""
+"  (users (cons (user-account\n"
+"                (name \"janedoe\")\n"
+"                (group \"users\")\n"
+"                ;; Adding the account to the \"wheel\" group\n"
+"                ;; makes it a sudoer.\n"
+"                (supplementary-groups '(\"wheel\"))\n"
+"                (home-directory \"/home/janedoe\"))\n"
+"               %base-user-accounts))\n"
+"\n"
+msgstr ""
+"  (users (cons (user-account\n"
+"                (name \"janedoe\")\n"
+"                (group \"users\")\n"
+"                ;; Durch Hinzufügen zur \"wheel\"-Gruppe\n"
+"                ;; wird das Konto zum Sudoer.\n"
+"                (supplementary-groups '(\"wheel\"))\n"
+"                (home-directory \"/home/janedoe\"))\n"
+"               %base-user-accounts))\n"
+"\n"
+
+#. type: lisp
+#: doc/guix-cookbook.texi:1901
+#, no-wrap
+msgid ""
+"  (packages (cons* nss-certs            ;for HTTPS access\n"
+"                   openssh-sans-x\n"
+"                   %base-packages))\n"
+"\n"
+msgstr ""
+"  (packages (cons* nss-certs            ;für HTTPS-Zugriff\n"
+"                   openssh-sans-x\n"
+"                   %base-packages))\n"
+"\n"
+
+#. type: lisp
+#: doc/guix-cookbook.texi:1912
+#, no-wrap
+msgid ""
+"  (services (cons*\n"
+"             (service dhcp-client-service-type)\n"
+"             (service openssh-service-type\n"
+"                      (openssh-configuration\n"
+"                       (openssh openssh-sans-x)\n"
+"                       (password-authentication? #false)\n"
+"                       (authorized-keys\n"
+"                        `((\"janedoe\" ,(local-file \"janedoe_rsa.pub\"))\n"
+"                          (\"root\" ,(local-file \"janedoe_rsa.pub\"))))))\n"
+"             %base-services)))\n"
+msgstr ""
+"  (services (cons*\n"
+"             (service dhcp-client-service-type)\n"
+"             (service openssh-service-type\n"
+"                      (openssh-configuration\n"
+"                       (openssh openssh-sans-x)\n"
+"                       (password-authentication? #false)\n"
+"                       (authorized-keys\n"
+"                        `((\"janedoe\" ,(local-file \"janedoe_rsa.pub\"))\n"
+"                          (\"root\" ,(local-file \"janedoe_rsa.pub\"))))))\n"
+"             %base-services)))\n"
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:1915
+msgid "Replace the following fields in the above configuration:"
+msgstr "Ersetzen Sie in der obigen Konfiguration aber folgende Felder:"
+
+#. type: lisp
+#: doc/guix-cookbook.texi:1923
+#, no-wrap
+msgid ""
+"(host-name \"my-server\")       ; replace with your server name\n"
+"; if you chose a linode server outside the U.S., then\n"
+"; use tzselect to find a correct timezone string\n"
+"(timezone \"America/New_York\") ; if needed replace timezone\n"
+"(name \"janedoe\")              ; replace with your username\n"
+"(\"janedoe\" ,(local-file \"janedoe_rsa.pub\")) ; replace with your ssh key\n"
+"(\"root\" ,(local-file \"janedoe_rsa.pub\")) ; replace with your ssh key\n"
+msgstr ""
+"(host-name \"my-server\")       ; hier sollte Ihr Servername stehen\n"
+"; Wenn Sie sich einen Linode-Server außerhalb der USA ausgesucht\n"
+"; haben, finden Sie mit tzselect die richtige Zeitzonenangabe.\n"
+"(timezone \"America/New_York\") ; Zeitzone ersetzen wenn nötig\n"
+"(name \"janedoe\")              ; Ersetzen durch Ihren Benutzernamen\n"
+"(\"janedoe\" ,(local-file \"janedoe_rsa.pub\")) ; Ersetzen durch Ihren SSH-Schlüssel\n"
+"(\"root\" ,(local-file \"janedoe_rsa.pub\")) ; Ersetzen durch Ihren SSH-Schlüssel\n"
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:1929
+msgid "The last line in the above example lets you log into the server as root and set the initial root password.  After you have done this, you may delete that line from your configuration and reconfigure to prevent root login."
+msgstr "Durch die letzte Zeile im obigen Beispiel können Sie sich als Administratornutzer root auf dem Server anmelden und das anfängliche Passwort für root festlegen. Nachdem das erledigt ist, können Sie die Zeile aus Ihrer Konfiguration löschen und Ihr System rekonfigurieren, damit eine Anmeldung als root nicht mehr möglich ist."
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:1934
+msgid "Save your ssh public key (eg: @file{~/.ssh/id_rsa.pub}) as @file{@var{<your-username-here>}_rsa.pub} and your @file{guix-config.scm} in the same directory.  In a new terminal run these commands."
+msgstr "Speichern Sie Ihren öffentlichen SSH-Schlüssel (z.B.@: @file{~/.ssh/id_rsa.pub}) als @file{@var{<Ihr-Benutzername>}_rsa.pub} und Ihre @file{guix-config.scm} im selben Verzeichnis. Führen Sie dann diese Befehle in einem neuen Terminal aus:"
+
+#. type: example
+#: doc/guix-cookbook.texi:1939
+#, no-wrap
+msgid ""
+"sftp root@@<remote server ip address>\n"
+"put /home/<username>/ssh/id_rsa.pub .\n"
+"put /path/to/linode/guix-config.scm .\n"
+msgstr ""
+"sftp root@@<IP-Adresse-des-entfernten-Servers>\n"
+"put /home/<Benutzername>/ssh/id_rsa.pub .\n"
+"put /pfad/zu/linode/guix-config.scm .\n"
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:1942
+msgid "In your first terminal, mount the guix drive:"
+msgstr "Binden Sie mit Ihrem ersten Terminal das Guix-Laufwerk ein:"
+
+#. type: example
+#: doc/guix-cookbook.texi:1946
+#, no-wrap
+msgid ""
+"mkdir /mnt/guix\n"
+"mount /dev/sdc /mnt/guix\n"
+msgstr ""
+"mkdir /mnt/guix\n"
+"mount /dev/sdc /mnt/guix\n"
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:1951
+msgid "Due to the way we set things up above, we do not install GRUB completely.  Instead we install only our grub configuration file.  So we need to copy over some of the other GRUB stuff that is already there:"
+msgstr "Aufgrund der Art und Weise, wie alles oben eingerichtet haben, installieren wir GRUB nicht vollständig. Stattdessen installieren wir nur unsere GRUB-Konfigurationsdatei. Daher müssen wir ein bisschen von den anderen GRUB-Einstellungen von dort kopieren:"
+
+#. type: example
+#: doc/guix-cookbook.texi:1955
+#, no-wrap
+msgid ""
+"mkdir -p /mnt/guix/boot/grub\n"
+"cp -r /boot/grub/* /mnt/guix/boot/grub/\n"
+msgstr ""
+"mkdir -p /mnt/guix/boot/grub\n"
+"cp -r /boot/grub/* /mnt/guix/boot/grub/\n"
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:1958
+msgid "Now initialize the Guix installation:"
+msgstr "Initialisieren Sie nun die Guix-Installation:"
+
+#. type: example
+#: doc/guix-cookbook.texi:1961
+#, no-wrap
+msgid "guix system init guix-config.scm /mnt/guix\n"
+msgstr "guix system init guix-config.scm /mnt/guix\n"
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:1965
+msgid "Ok, power it down! Now from the Linode console, select boot and select \"Guix\"."
+msgstr "OK, fahren Sie Ihn jetzt herunter! Von der Linode-Konsole wählen Sie Booten aus und wählen „Guix“."
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:1968
+msgid "Once it boots, you should be able to log in via SSH! (The server config will have changed though.)  You may encounter an error like:"
+msgstr "Sobald es gestartet ist, sollten Sie sich über SSH anmelden können! (Allerdings wird sich die Serverkonfiguration geändert haben.) Ihnen könnte eine Fehlermeldung wie diese hier gezeigt werden:"
+
+#. type: example
+#: doc/guix-cookbook.texi:1984
+#, no-wrap
+msgid ""
+"$ ssh root@@<server ip address>\n"
+"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n"
+"@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @\n"
+"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n"
+"IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!\n"
+"Someone could be eavesdropping on you right now (man-in-the-middle attack)!\n"
+"It is also possible that a host key has just been changed.\n"
+"The fingerprint for the ECDSA key sent by the remote host is\n"
+"SHA256:0B+wp33w57AnKQuHCvQP0+ZdKaqYrI/kyU7CfVbS7R4.\n"
+"Please contact your system administrator.\n"
+"Add correct host key in /home/joshua/.ssh/known_hosts to get rid of this message.\n"
+"Offending ECDSA key in /home/joshua/.ssh/known_hosts:3\n"
+"ECDSA host key for 198.58.98.76 has changed and you have requested strict checking.\n"
+"Host key verification failed.\n"
+msgstr ""
+"$ ssh root@@<server ip address>\n"
+"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n"
+"@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @\n"
+"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n"
+"IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!\n"
+"Someone could be eavesdropping on you right now (man-in-the-middle attack)!\n"
+"It is also possible that a host key has just been changed.\n"
+"The fingerprint for the ECDSA key sent by the remote host is\n"
+"SHA256:0B+wp33w57AnKQuHCvQP0+ZdKaqYrI/kyU7CfVbS7R4.\n"
+"Please contact your system administrator.\n"
+"Add correct host key in /home/joshua/.ssh/known_hosts to get rid of this message.\n"
+"Offending ECDSA key in /home/joshua/.ssh/known_hosts:3\n"
+"ECDSA host key for 198.58.98.76 has changed and you have requested strict checking.\n"
+"Host key verification failed.\n"
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:1988
+msgid "Either delete @file{~/.ssh/known_hosts} file, or delete the offending line starting with your server IP address."
+msgstr "Löschen Sie entweder die ganze Datei @file{~/.ssh/known_hosts} oder nur die ungültig gewordene Zeile, die mit der IP-Adresse Ihres Servers beginnt."
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:1990
+msgid "Be sure to set your password and root's password."
+msgstr "Denken Sie daran, Ihr Passwort und das Passwort des Administratornutzers root festzulegen."
+
+#. type: example
+#: doc/guix-cookbook.texi:1995
+#, no-wrap
+msgid ""
+"ssh root@@<remote ip address>\n"
+"passwd  ; for the root password\n"
+"passwd <username> ; for the user password\n"
+msgstr ""
+"ssh root@@<IP-Adresse-des-entfernten-Servers>\n"
+"passwd  ; für das root-Passswort\n"
+"passwd <benutzername> ; für das Passwort des normalen Benutzers\n"
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:2002
+msgid "You may not be able to run the above commands at this point.  If you have issues remotely logging into your linode box via SSH, then you may still need to set your root and user password initially by clicking on the ``Launch Console'' option in your linode.  Choose the ``Glish'' instead of ``Weblish''.  Now you should be able to ssh into the machine."
+msgstr "Es kann sein, dass die obigen Befehle noch nicht funktionieren. Wenn Sie Probleme haben, sich aus der Ferne über SSH bei Ihrer Linode-Kiste anzumelden, dann müssen Sie vielleicht Ihr anfängliches Passwort für root und das normale Benutzerkonto festlegen, indem Sie auf die „Launch Console“-Option in Ihrer Linode klicken. Wählen Sie „Glish“ statt „Weblish“. Jetzt sollten Sie über SSH in Ihre Maschine ’reinkommen."
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:2006
+msgid "Horray! At this point you can shut down the server, delete the Debian disk, and resize the Guix to the rest of the size.  Congratulations!"
+msgstr "Hurra! Nun können Sie den Server herunterfahren, die Debian-Platte löschen und Guix auf den gesamten verfügbaren Speicher erweitern. Herzlichen Glückwunsch!"
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:2011
+msgid "By the way, if you save it as a disk image right at this point, you'll have an easy time spinning up new Guix images! You may need to down-size the Guix image to 6144MB, to save it as an image.  Then you can resize it again to the max size."
+msgstr "Übrigens, wenn Sie das Ergebnis jetzt als „Disk Image“ speichern, können Sie neue Guix-Abbilder von da an leicht einrichten! Vielleicht müssen Sie die Größe des Guix-Abbilds auf 6144MB verkleinern, um es als Abbild speichern zu können. Danach können Sie es wieder auf die Maximalgröße vergrößern."
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:2020
+msgid "To bind mount a file system, one must first set up some definitions before the @code{operating-system} section of the system definition.  In this example we will bind mount a folder from a spinning disk drive to @file{/tmp}, to save wear and tear on the primary SSD, without dedicating an entire partition to be mounted as @file{/tmp}."
+msgstr "Um ein Dateisystem per „bind mount“ einzubinden, braucht man zunächst ein paar Definitionen. Fügen Sie diese noch vor dem @code{operating-system}-Abschnitt Ihrer Systemdefinition ein. In diesem Beispiel binden wir ein Verzeichnis auf einem Magnetfestplattenlaufwerk an @file{/tmp}, um die primäre SSD weniger abzunutzen, ohne dass wir extra eine ganze Partition für @file{/tmp} erzeugen müssen."
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:2023
+msgid "First, the source drive that hosts the folder we wish to bind mount should be defined, so that the bind mount can depend on it."
+msgstr "Als Erstes sollten wir das Quelllaufwerk definieren, wo wir das Verzeichnis für den Bind-Mount unterbringen. Dann kann der Bind-Mount es als Abhängigkeit benutzen."
+
+#. type: lisp
+#: doc/guix-cookbook.texi:2030
+#, no-wrap
+msgid ""
+"(define source-drive ;; \"source-drive\" can be named anything you want.\n"
+"   (file-system\n"
+"    (device (uuid \"UUID goes here\"))\n"
+"    (mount-point \"/path-to-spinning-disk-goes-here\")\n"
+"    (type \"ext4\"))) ;; Make sure to set this to the appropriate type for your drive.\n"
+msgstr ""
+"(define quelllaufwerk ;; \"quelllaufwerk\" kann man nennen, wie man will\n"
+"   (file-system\n"
+"    (device (uuid \"hier kommt die UUID hin\"))\n"
+"    (mount-point \"/hier-der-pfad-zur-magnetfestplatte\")\n"
+"    (type \"ext4\"))) ;; Legen Sie den dazu passenden Typ fest.\n"
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:2034
+msgid "The source folder must also be defined, so that guix will know it's not a regular block device, but a folder."
+msgstr "Auch das Quellverzeichnis muss so definiert werden, dass Guix es nicht für ein reguläres blockorientiertes Gerät hält, sondern es als Verzeichnis erkennt."
+
+#. type: lisp
+#: doc/guix-cookbook.texi:2036
+#, no-wrap
+msgid "(define (%source-directory) \"/path-to-spinning-disk-goes-here/tmp\") ;; \"source-directory\" can be named any valid variable name.\n"
+msgstr "(define (%quellverzeichnis) \"/hier-der-pfad-zur-magnetfestplatte/tmp\") ;; Dem \"quellverzeichnis\" kann man einen beliebigen gültigen Variablennamen geben.\n"
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:2040
+msgid "Finally, inside the @code{file-systems} definition, we must add the mount itself."
+msgstr "In der Definition des @code{file-systems}-Felds müssen wir die Einbindung einfügen."
+
+#. type: lisp
+#: doc/guix-cookbook.texi:2043
+#, no-wrap
+msgid ""
+"(file-systems (cons*\n"
+"\n"
+msgstr ""
+"(file-systems (cons*\n"
+"\n"
+
+#. type: lisp
+#: doc/guix-cookbook.texi:2045
+#, no-wrap
+msgid ""
+"                ...<other drives omitted for clarity>...\n"
+"\n"
+msgstr ""
+"                …<hier würden andere Laufwerke stehen>…\n"
+"\n"
+
+#. type: lisp
+#: doc/guix-cookbook.texi:2047
+#, no-wrap
+msgid ""
+"                source-drive ;; Must match the name you gave the source drive in the earlier definition.\n"
+"\n"
+msgstr ""
+"                quelllaufwerk ;; Muss dem Namen entsprechen, den Sie vorher ans Quelllaufwerk vergeben haben.\n"
+"\n"
+
+#. type: lisp
+#: doc/guix-cookbook.texi:2055
+#, no-wrap
+msgid ""
+"                (file-system\n"
+"                 (device (%source-directory)) ;; Make sure \"source-directory\" matches your earlier definition.\n"
+"                 (mount-point \"/tmp\")\n"
+"                 (type \"none\") ;; We are mounting a folder, not a partition, so this type needs to be \"none\"\n"
+"                 (flags '(bind-mount))\n"
+"                 (dependencies (list source-drive)) ;; Ensure \"source-drive\" matches what you've named the variable for the drive.\n"
+"                 )\n"
+"\n"
+msgstr ""
+"                (file-system\n"
+"                 (device (%quellverzeichnis)) ;; Geben Sie Acht, dass das \"quellverzeichnis\" so heißt wie in der Definition vorher.\n"
+"                 (mount-point \"/tmp\")\n"
+"                 (type \"none\") ;; Wir binden ein Verzeichnis und keine Partition ein, daher muss dieser Typ \"none\" sein.\n"
+"                 (flags '(bind-mount))\n"
+"                 (dependencies (list quelllaufwerk)) ;; Geben Sie Acht, dass \"quelllaufwerk\" dem Namen entspricht, den Sie der Variablen für das Laufwerk gegeben haben.\n"
+"                 )\n"
+"\n"
+
+#. type: lisp
+#: doc/guix-cookbook.texi:2057
+#, no-wrap
+msgid ""
+"                 ...<other drives omitted for clarity>...\n"
+"\n"
+msgstr ""
+"                 …<hier würden andere Laufwerke stehen>…\n"
+"\n"
+
+#. type: lisp
+#: doc/guix-cookbook.texi:2059
+#, no-wrap
+msgid "                ))\n"
+msgstr "                ))\n"
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:2066
+msgid "Guix daemon can use a HTTP proxy to get substitutes, here we are configuring it to get them via Tor."
+msgstr "Der Guix-Daemon kann einen HTTP-Proxy benutzen, wenn er Substitute herunterlädt. Wir wollen ihn hier so konfigurieren, dass Substitute über Tor bezogen werden."
+
+#. type: quotation
+#: doc/guix-cookbook.texi:2067
+#, no-wrap
+msgid "Warning"
+msgstr "Warnung"
+
+#. type: quotation
+#: doc/guix-cookbook.texi:2073
+msgid "@emph{Not all} Guix daemon's traffic will go through Tor! Only HTTP/HTTPS will get proxied; FTP, Git protocol, SSH, etc connections will still go through the clearnet.  Again, this configuration isn't foolproof some of your traffic won't get routed by Tor at all.  Use it at your own risk."
+msgstr "@emph{Nicht aller} Datenverkehr des Guix-Daemons wird dadurch über Tor laufen! Nur HTTP und HTTPS durchläuft den Proxy, @emph{nicht} so ist es bei FTP, dem Git-Protokokl, SSH etc.@:, diese laufen weiterhin durch’s „Clearnet“. Die Konfiguration ist also @emph{nicht} narrensicher; ein Teil Ihres Datenverkehrs wird gar nicht über Tor geleitet. Verwenden Sie sie nur auf Ihr eigenes Risiko!"
+
+#. type: quotation
+#: doc/guix-cookbook.texi:2079
+msgid "Also note that the procedure described here applies only to package substitution. When you update your guix distribution with @command{guix pull}, you still need to use @command{torsocks} if you want to route the connection to guix's git repository servers through Tor."
+msgstr "Beachten Sie außerdem, dass sich die hier beschriebene Prozedur nur auf Paketsubstitute bezieht. Wenn Sie Ihre Guix-Distribution mit @command{guix pull} aktualisieren, müssen Sie noch immer @command{torsocks} benutzen, wenn Sie die Verbindung zu Guix’ Git-Repository über Tor leiten wollen."
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:2084
+msgid "Guix's substitute server is available as a Onion service, if you want to use it to get your substitutes through Tor configure your system as follow:"
+msgstr "Der Substitutserver von Guix ist als Onion-Dienst verfügbar, wenn Sie ihn benutzen möchten, um Ihre Substitute über Tor zu laden, dann konfigurieren Sie Ihr System wie folgt:"
+
+#. type: lisp
+#: doc/guix-cookbook.texi:2088
+#, no-wrap
+msgid ""
+"(use-modules (gnu))\n"
+"(use-service-module base networking)\n"
+"\n"
+msgstr ""
+"(use-modules (gnu))\n"
+"(use-service-module base networking)\n"
+"\n"
+
+#. type: lisp
+#: doc/guix-cookbook.texi:2104
+#, no-wrap
+msgid ""
+"(operating-system\n"
+"  …\n"
+"  (services\n"
+"    (cons\n"
+"      (service tor-service-type\n"
+"              (tor-configuration\n"
+"                (config-file (plain-file \"tor-config\"\n"
+"                                         \"HTTPTunnelPort 127.0.0.1:9250\"))))\n"
+"      (modify-services %base-services\n"
+"        (guix-service-type\n"
+"          config => (guix-configuration\n"
+"                      (inherit config)\n"
+"                      ;; ci.guix.gnu.org's Onion service\n"
+"                      (substitute-urls \"https://bp7o7ckwlewr4slm.onion\")\n"
+"                      (http-proxy \"http://localhost:9250\")))))))\n"
+msgstr ""
+"(operating-system\n"
+"  …\n"
+"  (services\n"
+"    (cons\n"
+"      (service tor-service-type\n"
+"              (tor-configuration\n"
+"                (config-file (plain-file \"tor-config\"\n"
+"                                         \"HTTPTunnelPort 127.0.0.1:9250\"))))\n"
+"      (modify-services %base-services\n"
+"        (guix-service-type\n"
+"          config => (guix-configuration\n"
+"                      (inherit config)\n"
+"                      ;; Onion-Dienst von ci.guix.gnu.org\n"
+"                      (substitute-urls \"https://bp7o7ckwlewr4slm.onion\")\n"
+"                      (http-proxy \"http://localhost:9250\")))))))\n"
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:2113
+msgid "This will keep a tor process running that provides a HTTP CONNECT tunnel which will be used by @command{guix-daemon}.  The daemon can use other protocols than HTTP(S) to get remote resources, request using those protocols won't go through Tor since we are only setting a HTTP tunnel here.  Note that @code{substitutes-urls} is using HTTPS and not HTTP or it won't work, that's a limitation of Tor's tunnel; you may want to use @command{privoxy} instead to avoid such limitations."
+msgstr "Dadurch wird ständig ein Tor-Prozess laufen, der einen HTTP-CONNECT-Tunnel für die Nutzung durch den @command{guix-daemon} bereitstellt. Der Daemon kann andere Protokolle als HTTP(S) benutzen, um entfernte Ressourcen abzurufen, und Anfragen über solche Protokolle werden Tor @emph{nicht} durchlaufen, weil wir hier nur einen HTTP-Tunnel festlegen. Beachten Sie, dass wir für @code{substitutes-urls} HTTPS statt HTTP benutzen, sonst würde es nicht funktionieren. Dabei handelt es sich um eine Einschränkung von Tors Tunnel; vielleicht möchten Sie stattdessen @command{privoxy} benutzen, um dieser Einschränkung nicht zu unterliegen."
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:2117
+msgid "If you don't want to always get substitutes through Tor but using it just some of the times, then skip the @code{guix-configuration}.  When you want to get a substitute from the Tor tunnel run:"
+msgstr "Wenn Sie Substitute nicht immer, sondern nur manchmal über Tor beziehen wollen, dann überspringen Sie das mit der @code{guix-configuration}. Führen Sie einfach das hier aus, wenn Sie ein Substitut über den Tor-Tunnel laden möchten:"
+
+#. type: example
+#: doc/guix-cookbook.texi:2121
+#, no-wrap
+msgid ""
+"sudo herd set-http-proxy guix-daemon http://localhost:9250\n"
+"guix build --substitute-urls=https://bp7o7ckwlewr4slm.onion …\n"
+msgstr ""
+"sudo herd set-http-proxy guix-daemon http://localhost:9250\n"
+"guix build --substitute-urls=https://bp7o7ckwlewr4slm.onion …\n"
+
+#. type: cindex
+#: doc/guix-cookbook.texi:2125
+#, no-wrap
+msgid "nginx, lua, openresty, resty"
+msgstr "nginx, lua, openresty, resty"
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:2128
+msgid "NGINX could be extended with Lua scripts."
+msgstr "NGINX lässt sich mit Lua-Skripts erweitern."
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:2131
+msgid "Guix provides NGINX service with ability to load Lua module and specific Lua packages, and reply to requests by evaluating Lua scripts."
+msgstr "Guix stellt einen NGINX-Dienst bereit, mit dem das Lua-Modul und bestimmte Lua-Pakete geladen werden können, so dass Anfragen beantwortet werden, indem Lua-Skripte ausgewertet werden."
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:2135
+msgid "The following example demonstrates system definition with configuration to evaluate @file{index.lua} Lua script on HTTP request to @uref{http://localhost/hello} endpoint:"
+msgstr "Folgendes Beispiel zeigt eine Systemdefinition mit Einstellungen, um das Lua-Skript @file{index.lua} bei HTTP-Anfragen an den Endpunkt @uref{http://localhost/hello} auszuwerten:"
+
+#. type: example
+#: doc/guix-cookbook.texi:2138
+#, no-wrap
+msgid ""
+"local shell = require \"resty.shell\"\n"
+"\n"
+msgstr ""
+"local shell = require \"resty.shell\"\n"
+"\n"
+
+#. type: example
+#: doc/guix-cookbook.texi:2142
+#, no-wrap
+msgid ""
+"local stdin = \"\"\n"
+"local timeout = 1000  -- ms\n"
+"local max_size = 4096  -- byte\n"
+"\n"
+msgstr ""
+"local stdin = \"\"\n"
+"local timeout = 1000  -- ms\n"
+"local max_size = 4096  -- byte\n"
+"\n"
+
+#. type: example
+#: doc/guix-cookbook.texi:2145
+#, no-wrap
+msgid ""
+"local ok, stdout, stderr, reason, status =\n"
+"   shell.run([[/run/current-system/profile/bin/ls /tmp]], stdin, timeout, max_size)\n"
+"\n"
+msgstr ""
+"local ok, stdout, stderr, reason, status =\n"
+"   shell.run([[/run/current-system/profile/bin/ls /tmp]], stdin, timeout, max_size)\n"
+"\n"
+
+#. type: example
+#: doc/guix-cookbook.texi:2147
+#, no-wrap
+msgid "ngx.say(stdout)\n"
+msgstr "ngx.say(stdout)\n"
+
+#. type: lisp
+#: doc/guix-cookbook.texi:2178
+#, no-wrap
+msgid ""
+"(use-modules (gnu))\n"
+"(use-service-modules #;… web)\n"
+"(use-package-modules #;… lua)\n"
+"(operating-system\n"
+"  ;; …\n"
+"  (services\n"
+"   ;; …\n"
+"   (service nginx-service-type\n"
+"            (nginx-configuration\n"
+"             (modules\n"
+"              (list\n"
+"               (file-append nginx-lua-module \"/etc/nginx/modules/ngx_http_lua_module.so\")))\n"
+"             (lua-package-path (list lua-resty-core\n"
+"                                     lua-resty-lrucache\n"
+"                                     lua-resty-signal\n"
+"                                     lua-tablepool\n"
+"                                     lua-resty-shell))\n"
+"             (lua-package-cpath (list lua-resty-signal))\n"
+"             (server-blocks\n"
+"              (list (nginx-server-configuration\n"
+"                     (server-name '(\"localhost\"))\n"
+"                     (listen '(\"80\"))\n"
+"                     (root \"/etc\")\n"
+"                     (locations (list\n"
+"                                 (nginx-location-configuration\n"
+"                                  (uri \"/hello\")\n"
+"                                  (body (list #~(format #f \"content_by_lua_file ~s;\"\n"
+"                                                        #$(local-file \"index.lua\"))))))))))))))\n"
+msgstr ""
+"(use-modules (gnu))\n"
+"(use-service-modules #;… web)\n"
+"(use-package-modules #;… lua)\n"
+"(operating-system\n"
+"  ;; …\n"
+"  (services\n"
+"   ;; …\n"
+"   (service nginx-service-type\n"
+"            (nginx-configuration\n"
+"             (modules\n"
+"              (list\n"
+"               (file-append nginx-lua-module \"/etc/nginx/modules/ngx_http_lua_module.so\")))\n"
+"             (lua-package-path (list lua-resty-core\n"
+"                                     lua-resty-lrucache\n"
+"                                     lua-resty-signal\n"
+"                                     lua-tablepool\n"
+"                                     lua-resty-shell))\n"
+"             (lua-package-cpath (list lua-resty-signal))\n"
+"             (server-blocks\n"
+"              (list (nginx-server-configuration\n"
+"                     (server-name '(\"localhost\"))\n"
+"                     (listen '(\"80\"))\n"
+"                     (root \"/etc\")\n"
+"                     (locations (list\n"
+"                                 (nginx-location-configuration\n"
+"                                  (uri \"/hello\")\n"
+"                                  (body (list #~(format #f \"content_by_lua_file ~s;\"\n"
+"                                                        #$(local-file \"index.lua\"))))))))))))))\n"
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:2189
 msgid "Guix is a functional package manager that offers many features beyond what more traditional package managers can do.  To the uninitiated, those features might not have obvious use cases at first.  The purpose of this chapter is to demonstrate some advanced package management concepts."
 msgstr "Guix ist ein funktionales Paketverwaltungsprogramm, das weit mehr Funktionalitäten als traditionelle Paketverwalter anbietet. Für nicht Eingeweihte sind deren Anwendungsfälle nicht sofort ersichtlich. Dieses Kapitel ist dazu da, manche fortgeschrittenen Paketverwaltungskonzepte zu demonstrieren."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1577
+#: doc/guix-cookbook.texi:2192
 msgid "@pxref{Package Management,,, guix, GNU Guix Reference Manual} for a complete reference."
 msgstr "Siehe @ref{Paketverwaltung,,, guix.de, Referenzhandbuch zu GNU Guix} für eine vollständige Referenz."
 
 #. type: section
-#: doc/guix-cookbook.texi:1580 doc/guix-cookbook.texi:1582
-#: doc/guix-cookbook.texi:1583
+#: doc/guix-cookbook.texi:2195 doc/guix-cookbook.texi:2197
+#: doc/guix-cookbook.texi:2198
 #, no-wrap
 msgid "Guix Profiles in Practice"
 msgstr "Guix-Profile in der Praxis"
 
 #. type: menuentry
-#: doc/guix-cookbook.texi:1580
+#: doc/guix-cookbook.texi:2195
 msgid "Strategies for multiple profiles and manifests."
 msgstr "Strategien für mehrere Profile und Manifeste."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1588
+#: doc/guix-cookbook.texi:2203
 msgid "Guix provides a very useful feature that may be quite foreign to newcomers: @emph{profiles}.  They are a way to group package installations together and all users on the same system are free to use as many profiles as they want."
 msgstr "Guix gibt uns eine sehr nützliche Funktionalität, die Neuankömmlingen sehr fremd sein dürfte: @emph{Profile}. Mit ihnen kann man Paketinstallationen zusammenfassen und jeder Benutzer desselben Systems kann so viele davon anlegen, wie sie oder er möchte."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1593
+#: doc/guix-cookbook.texi:2208
 msgid "Whether you're a developer or not, you may find that multiple profiles bring you great power and flexibility.  While they shift the paradigm somewhat compared to @emph{traditional package managers}, they are very convenient to use once you've understood how to set them up."
 msgstr "Ob Sie ein Entwickler sind oder nicht, Sie dürften feststellen, dass mehrere Profile ein mächtiges Werkzeug sind, das Sie flexibler macht. Zwar ist es ein gewisser Paradigmenwechsel verglichen mit @emph{traditioneller Paketverwaltung}, doch sind sie sehr praktisch, sobald man im Umgang mit ihnen den Dreh ’raushat."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1599
+#: doc/guix-cookbook.texi:2214
 msgid "If you are familiar with Python's @samp{virtualenv}, you can think of a profile as a kind of universal @samp{virtualenv} that can hold any kind of software whatsoever, not just Python software.  Furthermore, profiles are self-sufficient: they capture all the runtime dependencies which guarantees that all programs within a profile will always work at any point in time."
 msgstr "Wenn Ihnen Pythons @samp{virtualenv} vertraut ist, können Sie sich ein Profil als eine Art universelles @samp{virtualenv} vorstellen, das jede Art von Software enthalten kann und nicht nur Python-Software. Desweiteren sind Profile selbstversorgend: Sie schließen alle Laufzeitabhängigkeiten ein und garantieren somit, dass alle Programme innerhalb eines Profils stets zu jeder Zeit funktionieren werden."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1601
+#: doc/guix-cookbook.texi:2216
 msgid "Multiple profiles have many benefits:"
 msgstr "Mehrere Profile bieten viele Vorteile:"
 
 #. type: itemize
-#: doc/guix-cookbook.texi:1605
+#: doc/guix-cookbook.texi:2220
 msgid "Clean semantic separation of the various packages a user needs for different contexts."
 msgstr "Klare semantische Trennung der verschiedenen Pakete, die ein Nutzer für verschiedene Kontexte braucht."
 
 #. type: itemize
-#: doc/guix-cookbook.texi:1609
+#: doc/guix-cookbook.texi:2224
 msgid "Multiple profiles can be made available into the environment either on login or within a dedicated shell."
 msgstr "Mehrere Profile können in der Umgebung verfügbar gemacht werden, entweder beim Anmelden oder in einer eigenen Shell."
 
 #. type: itemize
-#: doc/guix-cookbook.texi:1613
+#: doc/guix-cookbook.texi:2228
 msgid "Profiles can be loaded on demand.  For instance, the user can use multiple shells, each of them running different profiles."
 msgstr "Profile können bei Bedarf geladen werden. Zum Beispiel kann der Nutzer mehrere Unter-Shells benutzen, von denen jede ein anderes Profil ausführt."
 
 #. type: itemize
-#: doc/guix-cookbook.texi:1618
+#: doc/guix-cookbook.texi:2233
 msgid "Isolation: Programs from one profile will not use programs from the other, and the user can even install different versions of the same programs to the two profiles without conflict."
 msgstr "Isolierung: Programme aus dem einen Profil werden keine Programme aus dem anderen benutzen, und der Nutzer kann sogar verschiedene Versionen desselben Programms in die zwei Profile installieren, ohne dass es zu Konflikten kommt."
 
 #. type: itemize
-#: doc/guix-cookbook.texi:1622
+#: doc/guix-cookbook.texi:2237
 msgid "Deduplication: Profiles share dependencies that happens to be the exact same.  This makes multiple profiles storage-efficient."
 msgstr "Deduplizierung: Profile teilen sich Abhängigkeiten, wenn sie genau gleich sind. Dadurch sind mehrere Profile speichereffizient."
 
 #. type: itemize
-#: doc/guix-cookbook.texi:1630
+#: doc/guix-cookbook.texi:2245
 msgid "Reproducible: when used with declarative manifests, a profile can be fully specified by the Guix commit that was active when it was set up.  This means that the exact same profile can be @uref{https://guix.gnu.org/blog/2018/multi-dimensional-transactions-and-rollbacks-oh-my/, set up anywhere and anytime}, with just the commit information.  See the section on @ref{Reproducible profiles}."
 msgstr "Reproduzierbar: Wenn man dafür deklarative Manifeste benutzt, kann ein Profil allein durch den bei dessen Einrichtung aktiven Guix-Commit eindeutig spezifiziert werden. Das bedeutet, dass man genau dasselbe Profil @uref{https://guix.gnu.org/blog/2018/multi-dimensional-transactions-and-rollbacks-oh-my/, jederzeit und überall einrichten kann} und man dafür nur die Commit-Informationen braucht. Siehe den Abschnitt über @ref{Reproduzierbare Profile}."
 
 #. type: itemize
-#: doc/guix-cookbook.texi:1634
+#: doc/guix-cookbook.texi:2249
 msgid "Easier upgrades and maintenance: Multiple profiles make it easy to keep package listings at hand and make upgrades completely friction-less."
 msgstr "Leichtere Aktualisierung und Wartung: Mit mehreren Profilen ist es ein Leichtes, eine Liste von Paketen zur Hand zu haben und Aktualisierungen völlig reibungslos ablaufen zu lassen."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1637
+#: doc/guix-cookbook.texi:2252
 msgid "Concretely, here follows some typical profiles:"
 msgstr "Konkret wären diese hier typische Profile:"
 
 #. type: itemize
-#: doc/guix-cookbook.texi:1641
+#: doc/guix-cookbook.texi:2256
 msgid "The dependencies of a project you are working on."
 msgstr "Die Abhängigkeiten des Projekts, an dem Sie arbeiten."
 
 #. type: itemize
-#: doc/guix-cookbook.texi:1644
+#: doc/guix-cookbook.texi:2259
 msgid "Your favourite programming language libraries."
 msgstr "Die Bibliotheken Ihrer Lieblingsprogrammiersprache."
 
 #. type: itemize
-#: doc/guix-cookbook.texi:1647
+#: doc/guix-cookbook.texi:2262
 msgid "Laptop-specific programs (like @samp{powertop}) that you don't need on a desktop."
 msgstr "Programme nur für Laptops (wie @samp{powertop}), für die Sie auf einem „Desktop“-Rechner keine Verwendung haben."
 
 #. type: itemize
-#: doc/guix-cookbook.texi:1651
+#: doc/guix-cookbook.texi:2266
 msgid "@TeX{}live (this one can be really useful when you need to install just one package for this one document you've just received over email)."
 msgstr "@TeX{}live (das kann wirklich praktisch sein, wenn Sie nur ein einziges Paket für dieses eine Dokument installieren müssen, das Ihnen jemand in einer E-Mail geschickt hat)."
 
 #. type: itemize
-#: doc/guix-cookbook.texi:1654
+#: doc/guix-cookbook.texi:2269
 msgid "Games."
 msgstr "Spiele."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1657
+#: doc/guix-cookbook.texi:2272
 msgid "Let's dive in the set up!"
 msgstr "Tauchen wir ein in deren Einrichtung!"
 
 #. type: subsection
-#: doc/guix-cookbook.texi:1658 doc/guix-cookbook.texi:1659
+#: doc/guix-cookbook.texi:2273 doc/guix-cookbook.texi:2274
 #, no-wrap
 msgid "Basic setup with manifests"
 msgstr "Grundlegende Einrichtung über Manifeste"
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1663
+#: doc/guix-cookbook.texi:2278
 msgid "A Guix profile can be set up @emph{via} a so-called @emph{manifest specification} that looks like this:"
 msgstr "Ein Guix-Profil kann über eine sogenannte @emph{Manifest-Spezifikation} eingerichtet werden. Das sieht etwa so aus:"
 
 #. type: lisp
-#: doc/guix-cookbook.texi:1673
+#: doc/guix-cookbook.texi:2288
 #, no-wrap
 msgid ""
 "(specifications->manifest\n"
@@ -2914,17 +4110,17 @@ msgstr ""
 "    \"paket-N\"))\n"
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1677
+#: doc/guix-cookbook.texi:2292
 msgid "@pxref{Invoking guix package,,, guix, GNU Guix Reference Manual}, for the syntax details."
 msgstr "Siehe @ref{Aufruf von guix package,,, guix.de, Referenzhandbuch zu GNU Guix}, für Details zur Syntax."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1679
+#: doc/guix-cookbook.texi:2294
 msgid "We can create a manifest specification per profile and install them this way:"
 msgstr "Wir können eine Manifestspezifikation für jedes Profil schreiben und es auf diese Weise installieren:"
 
 #. type: example
-#: doc/guix-cookbook.texi:1684
+#: doc/guix-cookbook.texi:2299
 #, no-wrap
 msgid ""
 "GUIX_EXTRA_PROFILES=$HOME/.guix-extra-profiles\n"
@@ -2936,38 +4132,38 @@ msgstr ""
 "guix package --manifest=/pfad/zu/guix-my-project-manifest.scm --profile=\"$GUIX_EXTRA_PROFILES\"/my-project/my-project\n"
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1688
+#: doc/guix-cookbook.texi:2303
 msgid "Here we set an arbitrary variable @samp{GUIX_EXTRA_PROFILES} to point to the directory where we will store our profiles in the rest of this article."
 msgstr "Hierbei haben wir eine beliebig benannte Variable @samp{GUIX_EXTRA_PROFILES} eingerichtet, die auf das Verzeichnis verweist, wo wir unsere Profile für den Rest dieses Artikels speichern wollen."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1694
-msgid "Placing all your profiles in a single directory, with each profile getting its own sub-directory, is somewhat cleaner.  This way, each sub-directory will contain all the symlinks for precisely one profile.  Besides, \"looping over profiles\" becomes obvious from any programming language (e.g. a shell script) by simply looping over the sub-directories of @samp{$GUIX_EXTRA_PROFILES}."
+#: doc/guix-cookbook.texi:2309
+msgid "Placing all your profiles in a single directory, with each profile getting its own sub-directory, is somewhat cleaner.  This way, each sub-directory will contain all the symlinks for precisely one profile.  Besides, ``looping over profiles'' becomes obvious from any programming language (e.g.@: a shell script) by simply looping over the sub-directories of @samp{$GUIX_EXTRA_PROFILES}."
 msgstr "Wenn Sie all Ihre Profile in ein einzelnes Verzeichnis legen und jedes Profil ein Unterverzeichnis darin bekommt, ist die Organisation etwas verständlicher. Dadurch wird jedes Unterverzeichnis all die symbolischen Verknüpfungen für genau ein Profil enthalten. Außerdem wird es von jeder Programmiersprache aus einfach, eine „Schleife über die Profile“ zu schreiben (z.B.@: in einem Shell-Skript), indem Sie es einfach die Unterverzeichnisse von @samp{$GUIX_EXTRA_PROFILES} in einer Schleife durchlaufen lassen."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1696
+#: doc/guix-cookbook.texi:2311
 msgid "Note that it's also possible to loop over the output of"
 msgstr "Beachten Sie, dass man auch eine Schleife über die Ausgabe von"
 
 #. type: example
-#: doc/guix-cookbook.texi:1699
+#: doc/guix-cookbook.texi:2314
 #, no-wrap
 msgid "guix package --list-profiles\n"
 msgstr "guix package --list-profiles\n"
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1702
-msgid "although you'll probably have to filter out @samp{~/.config/guix/current}."
-msgstr "schreiben kann, obwohl Sie dabei wahrscheinlich @samp{~/.config/guix/current} herausfiltern wollen würden."
+#: doc/guix-cookbook.texi:2317
+msgid "although you'll probably have to filter out @file{~/.config/guix/current}."
+msgstr "schreiben kann, obwohl Sie dabei wahrscheinlich @file{~/.config/guix/current} herausfiltern wollen würden."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1704
-msgid "To enable all profiles on login, add this to your @samp{~/.bash_profile} (or similar):"
-msgstr "Um bei der Anmeldung alle Profile zu aktivieren, fügen Sie dies in Ihre @samp{~/.bash_profile} ein (oder etwas Entsprechendes):"
+#: doc/guix-cookbook.texi:2319
+msgid "To enable all profiles on login, add this to your @file{~/.bash_profile} (or similar):"
+msgstr "Um bei der Anmeldung alle Profile zu aktivieren, fügen Sie dies in Ihre @file{~/.bash_profile} ein (oder etwas Entsprechendes):"
 
 #. type: example
-#: doc/guix-cookbook.texi:1714
+#: doc/guix-cookbook.texi:2329
 #, no-wrap
 msgid ""
 "for i in $GUIX_EXTRA_PROFILES/*; do\n"
@@ -2989,17 +4185,17 @@ msgstr ""
 "done\n"
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1719
-msgid "Note to Guix System users: the above reflects how your default profile @samp{~/.guix-profile} is activated from @samp{/etc/profile}, that latter being loaded by @samp{~/.bashrc} by default."
-msgstr "Eine Anmerkung für Nutzer von „Guix System“: Obiger Code entspricht dem, wie Ihr voreingestelltes Profil @samp{~/.guix-profile} durch @samp{/etc/profile} aktiviert wird, was nach Vorgabe durch @samp{~/.bashrc} geladen wird."
+#: doc/guix-cookbook.texi:2334
+msgid "Note to Guix System users: the above reflects how your default profile @file{~/.guix-profile} is activated from @file{/etc/profile}, that latter being loaded by @file{~/.bashrc} by default."
+msgstr "Eine Anmerkung für Nutzer von „Guix System“: Obiger Code entspricht dem, wie Ihr voreingestelltes Profil @file{~/.guix-profile} durch @file{/etc/profile} aktiviert wird, was nach Vorgabe durch @file{~/.bashrc} geladen wird."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1721
+#: doc/guix-cookbook.texi:2336
 msgid "You can obviously choose to only enable a subset of them:"
 msgstr "Selbstverständlich können Sie sich auch dafür entscheiden, nur eine Teilmenge zu aktivieren:"
 
 #. type: example
-#: doc/guix-cookbook.texi:1731
+#: doc/guix-cookbook.texi:2346
 #, no-wrap
 msgid ""
 "for i in \"$GUIX_EXTRA_PROFILES\"/my-project-1 \"$GUIX_EXTRA_PROFILES\"/my-project-2; do\n"
@@ -3021,50 +4217,50 @@ msgstr ""
 "done\n"
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1735
+#: doc/guix-cookbook.texi:2350
 msgid "When a profile is off, it's straightforward to enable it for an individual shell without \"polluting\" the rest of the user session:"
 msgstr "Wenn ein Profil abgeschaltet ist, lässt es sich mit Leichtigkeit für eine bestimmte Shell aktivieren, ohne die restliche Benutzersitzung zu „verschmutzen“:"
 
 #. type: example
-#: doc/guix-cookbook.texi:1738
+#: doc/guix-cookbook.texi:2353
 #, no-wrap
 msgid "GUIX_PROFILE=\"path/to/my-project\" ; . \"$GUIX_PROFILE\"/etc/profile\n"
 msgstr "GUIX_PROFILE=\"pfad/zu/my-project\" ; . \"$GUIX_PROFILE\"/etc/profile\n"
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1745
+#: doc/guix-cookbook.texi:2360
 msgid "The key to enabling a profile is to @emph{source} its @samp{etc/profile} file.  This file contains shell code that exports the right environment variables necessary to activate the software contained in the profile.  It is built automatically by Guix and meant to be sourced.  It contains the same variables you would get if you ran:"
 msgstr "Der Schlüssel dazu, wie man ein Profil aktiviert, ist dessen @samp{etc/profile}-Datei mit @command{source} zu laden. Diese Datei enthält einige Shell-Befehle, um die für das Aktivieren der Software im Profil nötigen Umgebungsvariablen zu exportieren. Die Datei wird durch Guix automatisch erzeugt, um mit @command{source} eingelesen zu werden. Sie enthält dieselben Variablen, die Sie nach Ausführung dieses Befehls bekämen:"
 
 #. type: example
-#: doc/guix-cookbook.texi:1748
+#: doc/guix-cookbook.texi:2363
 #, no-wrap
 msgid "guix package --search-paths=prefix --profile=$my_profile\"\n"
 msgstr "guix package --search-paths=prefix --profile=$my_profile\"\n"
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1752
+#: doc/guix-cookbook.texi:2367
 msgid "Once again, see (@pxref{Invoking guix package,,, guix, GNU Guix Reference Manual})  for the command line options."
 msgstr "Siehe auch hier das @ref{Aufruf von guix package,,, guix.de, Referenzhandbuch zu GNU Guix} für die Befehlszeilenoptionen."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1754
+#: doc/guix-cookbook.texi:2369
 msgid "To upgrade a profile, simply install the manifest again:"
 msgstr "Um ein Profil zu aktualisieren, installieren Sie das Manifest einfach nochmal:"
 
 #. type: example
-#: doc/guix-cookbook.texi:1757
+#: doc/guix-cookbook.texi:2372
 #, no-wrap
 msgid "guix package -m /path/to/guix-my-project-manifest.scm -p \"$GUIX_EXTRA_PROFILES\"/my-project/my-project\n"
 msgstr "guix package -m /pfad/zu/guix-my-project-manifest.scm -p \"$GUIX_EXTRA_PROFILES\"/my-project/my-project\n"
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1763
-msgid "To upgrade all profiles, it's easy enough to loop over them.  For instance, assuming your manifest specifications are stored in @samp{~/.guix-manifests/guix-$profile-manifest.scm}, with @samp{$profile} being the name of the profile (e.g. \"project1\"), you could do the following in Bourne shell:"
-msgstr "Um alle Profile zu aktualisieren, genügt es, sie in einer Schleife durchlaufen zu lassen. Nehmen wir zum Beispiel an, Ihre Manifestspezifikationen befinden sich in @samp{~/.guix-manifests/guix-$profile-manifest.scm}, wobei @samp{$profile} der Name des Profils ist (z.B.@: „projekt1“), dann könnten Sie in der Bourne-Shell Folgendes tun:"
+#: doc/guix-cookbook.texi:2378
+msgid "To upgrade all profiles, it's easy enough to loop over them.  For instance, assuming your manifest specifications are stored in @file{~/.guix-manifests/guix-$profile-manifest.scm}, with @samp{$profile} being the name of the profile (e.g.@: \"project1\"), you could do the following in Bourne shell:"
+msgstr "Um alle Profile zu aktualisieren, genügt es, sie in einer Schleife durchlaufen zu lassen. Nehmen wir zum Beispiel an, Ihre Manifestspezifikationen befinden sich in @file{~/.guix-manifests/guix-$profile-manifest.scm}, wobei @samp{$profile} der Name des Profils ist (z.B.@: „projekt1“), dann könnten Sie in der Bourne-Shell Folgendes tun:"
 
 #. type: example
-#: doc/guix-cookbook.texi:1768
+#: doc/guix-cookbook.texi:2383
 #, no-wrap
 msgid ""
 "for profile in \"$GUIX_EXTRA_PROFILES\"/*; do\n"
@@ -3076,34 +4272,34 @@ msgstr ""
 "done\n"
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1771
+#: doc/guix-cookbook.texi:2386
 msgid "Each profile has its own generations:"
 msgstr "Jedes Profil verfügt über seine eigenen Generationen:"
 
 #. type: example
-#: doc/guix-cookbook.texi:1774
+#: doc/guix-cookbook.texi:2389
 #, no-wrap
 msgid "guix package -p \"$GUIX_EXTRA_PROFILES\"/my-project/my-project --list-generations\n"
 msgstr "guix package -p \"$GUIX_EXTRA_PROFILES\"/my-project/my-project --list-generations\n"
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1777
+#: doc/guix-cookbook.texi:2392
 msgid "You can roll-back to any generation of a given profile:"
 msgstr "Sie können es auf jede Generation zurücksetzen:"
 
 #. type: example
-#: doc/guix-cookbook.texi:1780
+#: doc/guix-cookbook.texi:2395
 #, no-wrap
 msgid "guix package -p \"$GUIX_EXTRA_PROFILES\"/my-project/my-project --switch-generations=17\n"
 msgstr "guix package -p \"$GUIX_EXTRA_PROFILES\"/my-project/my-project --switch-generations=17\n"
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1784
+#: doc/guix-cookbook.texi:2399
 msgid "Finally, if you want to switch to a profile without inheriting from the current environment, you can activate it from an empty shell:"
 msgstr "Zu guter Letzt ist es möglich, zu einem Profil zu wechseln ohne die aktuelle Umgebung zu erben, indem Sie es aus einer leeren Shell heraus aktivieren:"
 
 #. type: example
-#: doc/guix-cookbook.texi:1788
+#: doc/guix-cookbook.texi:2403
 #, no-wrap
 msgid ""
 "env -i $(which bash) --login --noprofile --norc\n"
@@ -3113,70 +4309,70 @@ msgstr ""
 ". my-project/etc/profile\n"
 
 #. type: subsection
-#: doc/guix-cookbook.texi:1790 doc/guix-cookbook.texi:1791
+#: doc/guix-cookbook.texi:2405 doc/guix-cookbook.texi:2406
 #, no-wrap
 msgid "Required packages"
 msgstr "Die nötigen Pakete"
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1796
+#: doc/guix-cookbook.texi:2411
 msgid "Activating a profile essentially boils down to exporting a bunch of environmental variables.  This is the role of the @samp{etc/profile} within the profile."
 msgstr "Das Aktivieren eines Profils bedeutet im Grunde, dass eine Menge Umgebungsvariabler exportiert wird. Diese Rolle fällt der @samp{etc/profile}-Datei innerhalb des Profils zu."
 
 #. type: emph{#1}
-#: doc/guix-cookbook.texi:1799
+#: doc/guix-cookbook.texi:2414
 msgid "Note: Only the environmental variables of the packages that consume them will be set."
 msgstr "Anmerkung: Nur diejenigen Umgebungsvariablen der sie gebrauchenden Pakete werden gesetzt."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1803
+#: doc/guix-cookbook.texi:2418
 msgid "For instance, @samp{MANPATH} won't be set if there is no consumer application for man pages within the profile.  So if you need to transparently access man pages once the profile is loaded, you've got two options:"
 msgstr "Zum Beispiel wird kein @samp{MANPATH} gesetzt sein, wenn keine Anwendung im Profil diese „Man-Pages“ (Handbuchseiten) gebraucht. Wenn Sie also transparenten Zugriff auf Handbuchseiten brauchen, nachdem das Profil geladen wurde, dann gibt es zwei Möglichkeiten:"
 
 #. type: itemize
-#: doc/guix-cookbook.texi:1807
+#: doc/guix-cookbook.texi:2422
 msgid "Either export the variable manually, e.g."
 msgstr "Entweder Sie exportieren die Variablen von Hand, z.B."
 
 #. type: example
-#: doc/guix-cookbook.texi:1809
+#: doc/guix-cookbook.texi:2424
 #, no-wrap
 msgid "export MANPATH=/path/to/profile$@{MANPATH:+:@}$MANPATH\n"
 msgstr "export MANPATH=/path/to/profile$@{MANPATH:+:@}$MANPATH\n"
 
 #. type: itemize
-#: doc/guix-cookbook.texi:1813
+#: doc/guix-cookbook.texi:2428
 msgid "Or include @samp{man-db} to the profile manifest."
 msgstr "Oder Sie schreiben @samp{man-db} in das Profilmanifest hinein."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1817
+#: doc/guix-cookbook.texi:2432
 msgid "The same is true for @samp{INFOPATH} (you can install @samp{info-reader}), @samp{PKG_CONFIG_PATH} (install @samp{pkg-config}), etc."
 msgstr "Das Gleiche gilt für @samp{INFOPATH} (Sie können @samp{info-reader} installieren), @samp{PKG_CONFIG_PATH} (installieren Sie @samp{pkg-config}), etc."
 
 #. type: subsection
-#: doc/guix-cookbook.texi:1818 doc/guix-cookbook.texi:1819
+#: doc/guix-cookbook.texi:2433 doc/guix-cookbook.texi:2434
 #, no-wrap
 msgid "Default profile"
 msgstr "Vorgabeprofil"
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1822
-msgid "What about the default profile that Guix keeps in @samp{~/.guix-profile}?"
-msgstr "Was ist mit dem Standardprofil, das Guix in @samp{~/.guix-profile} aufbewahrt?"
+#: doc/guix-cookbook.texi:2437
+msgid "What about the default profile that Guix keeps in @file{~/.guix-profile}?"
+msgstr "Was ist mit dem Standardprofil, das Guix in @file{~/.guix-profile} aufbewahrt?"
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1825
+#: doc/guix-cookbook.texi:2440
 msgid "You can assign it the role you want.  Typically you would install the manifest of the packages you want to use all the time."
 msgstr "Sie können ihm die Rolle zuweisen, die Sie wollen. Normalerweise würden Sie das Manifest derjenigen Pakete installieren, die Sie ständig benutzen möchten."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1829
-msgid "Alternatively, you could keep it \"manifest-less\" for throw-away packages that you would just use for a couple of days.  This way makes it convenient to run"
+#: doc/guix-cookbook.texi:2444
+msgid "Alternatively, you could keep it ``manifest-less'' for throw-away packages that you would just use for a couple of days.  This way makes it convenient to run"
 msgstr "Alternativ können Sie es ohne Manifest für Wegwerfpakete benutzen, die Sie nur ein paar Tage lang benutzen wollen. Das macht es leicht,"
 
 #. type: example
-#: doc/guix-cookbook.texi:1833
+#: doc/guix-cookbook.texi:2448
 #, no-wrap
 msgid ""
 "guix install package-foo\n"
@@ -3186,139 +4382,139 @@ msgstr ""
 "guix upgrade paket-bar\n"
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1836
+#: doc/guix-cookbook.texi:2451
 msgid "without having to specify the path to a profile."
 msgstr "auszuführen ohne den Pfad zu einem Profil festzulegen."
 
 #. type: subsection
-#: doc/guix-cookbook.texi:1837 doc/guix-cookbook.texi:1838
+#: doc/guix-cookbook.texi:2452 doc/guix-cookbook.texi:2453
 #, no-wrap
 msgid "The benefits of manifests"
 msgstr "Der Vorteil von Manifesten"
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1842
+#: doc/guix-cookbook.texi:2457
 msgid "Manifests are a convenient way to keep your package lists around and, say, to synchronize them across multiple machines using a version control system."
 msgstr "Manifeste sind eine bequeme Art, Ihre Paketlisten zur Hand zu haben und diese z.B.@: über mehrere Maschinen hinweg in einem Versionskontrollsystem zu synchronisieren."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1846
+#: doc/guix-cookbook.texi:2461
 msgid "A common complaint about manifests is that they can be slow to install when they contain large number of packages.  This is especially cumbersome when you just want get an upgrade for one package within a big manifest."
 msgstr "Eine oft gehörte Beschwerde über Manifeste ist, dass es lange dauert, sie zu installieren, wenn sie viele Pakete enthalten. Das ist besonders hinderlich, wenn Sie nur ein einziges Paket in ein großes Manifest installieren möchten."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1851
+#: doc/guix-cookbook.texi:2466
 msgid "This is one more reason to use multiple profiles, which happen to be just perfect to break down manifests into multiple sets of semantically connected packages.  Using multiple, small profiles provides more flexibility and usability."
 msgstr "Das ist ein weiteres Argument dafür, mehrere Profile zu benutzen, denn es stellt sich heraus, dass dieses Vorgehen perfekt für das Aufbrechen von Manifesten in mehrere Mengen semantisch verbundener Pakete geeignet ist. Mit mehreren, kleinen Profilen haben Sie mehr Flexibilität und Benutzerfreundlichkeit."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1853
+#: doc/guix-cookbook.texi:2468
 msgid "Manifests come with multiple benefits.  In particular, they ease maintenance:"
 msgstr "Manifeste haben mehrere Vorteile. Insbesondere erleichtern sie die Wartung."
 
 #. type: itemize
-#: doc/guix-cookbook.texi:1861
-msgid "When a profile is set up from a manifest, the manifest itself is self-sufficient to keep a \"package listing\" around and reinstall the profile later or on a different system.  For ad-hoc profiles, we would need to generate a manifest specification manually and maintain the package versions for the packages that don't use the default version."
+#: doc/guix-cookbook.texi:2476
+msgid "When a profile is set up from a manifest, the manifest itself is self-sufficient to keep a ``package listing'' around and reinstall the profile later or on a different system.  For ad-hoc profiles, we would need to generate a manifest specification manually and maintain the package versions for the packages that don't use the default version."
 msgstr "Wenn ein Profil aus einem Manifest heraus eingerichtet wird, ist das Manifest selbst genug, um eine Liste der Pakete zur Verfügung zu haben und das Profil später auf einem anderen System zu installieren. Bei @i{ad-hoc}-Profilen müssten wir hingegen eine Manifestspezifikation von Hand schreiben und uns um die Paketversionen derjenigen Pakete kümmern, die nicht die vorgegebene Version verwenden."
 
 #. type: itemize
-#: doc/guix-cookbook.texi:1866
+#: doc/guix-cookbook.texi:2481
 msgid "@code{guix package --upgrade} always tries to update the packages that have propagated inputs, even if there is nothing to do.  Guix manifests remove this problem."
 msgstr "Bei @code{guix package --upgrade} wird immer versucht, die Pakete zu aktualisieren, die propagierte Eingaben haben, selbst wenn es nichts zu tun gibt. Mit Guix-Manifesten fällt dieses Problem weg."
 
 #. type: itemize
-#: doc/guix-cookbook.texi:1872
+#: doc/guix-cookbook.texi:2487
 msgid "When partially upgrading a profile, conflicts may arise (due to diverging dependencies between the updated and the non-updated packages) and they can be annoying to resolve manually.  Manifests remove this problem altogether since all packages are always upgraded at once."
 msgstr "Wenn man nur Teile eines Profils aktualisiert, kann es zu Konflikten kommen (weil die Abhängigkeiten zwischen aktualisierten und nicht aktualisierten Paketen voneinander abweichen), und es kann mühsam sein, diese Konflikte von Hand aufzulösen. Manifeste haben kein solches Problem, weil alle Pakete immer gleichzeitig aktualisiert werden."
 
 #. type: itemize
-#: doc/guix-cookbook.texi:1878
+#: doc/guix-cookbook.texi:2493
 msgid "As mentioned above, manifests allow for reproducible profiles, while the imperative @code{guix install}, @code{guix upgrade}, etc. do not, since they produce different profiles every time even when they hold the same packages.  See @uref{https://issues.guix.gnu.org/issue/33285, the related discussion on the matter}."
 msgstr "Wie zuvor erwähnt, gewähren einem Manifeste reproduzierbare Profile, während die imperativen @code{guix install}, @code{guix upgrade}, etc.@: das nicht tun, weil sie jedes Mal ein anderes Profil ergeben, obwohl sie dieselben Pakete enthalten. Siehe die @uref{https://issues.guix.gnu.org/issue/33285, dieses Thema betreffende Diskussion}."
 
 #. type: itemize
-#: doc/guix-cookbook.texi:1886
+#: doc/guix-cookbook.texi:2501
 msgid "Manifest specifications are usable by other @samp{guix} commands.  For example, you can run @code{guix weather -m manifest.scm} to see how many substitutes are available, which can help you decide whether you want to try upgrading today or wait a while.  Another example: you can run @code{guix pack -m manifest.scm} to create a pack containing all the packages in the manifest (and their transitive references)."
-msgstr "Manifestspezifikationen können von anderen @samp{guix}-Befehlen benutzt werden. Zum Beispiel können Sie @code{guix weather -m manifest.scm} ausführen, um zu sehen, wieviele Substitute verfügbar sind, was Ihnen bei der Entscheidung helfen kann, ob Sie heute schon eine Aktualisierung durchführen oder lieber noch eine Weile warten möchten. Ein anderes Beispiel: Sie können mit @code{guix pack -m manifest.scm} ein Bündel erzeugen, das alle Pakete im Manifest enthält (mitsamt derer transitiven Referenzen)."
+msgstr "Manifestspezifikationen können von anderen @samp{guix}-Befehlen benutzt werden. Zum Beispiel können Sie @code{guix weather -m manifest.scm} ausführen, um zu sehen, wie viele Substitute verfügbar sind, was Ihnen bei der Entscheidung helfen kann, ob Sie heute schon eine Aktualisierung durchführen oder lieber noch eine Weile warten möchten. Ein anderes Beispiel: Sie können mit @code{guix pack -m manifest.scm} ein Bündel erzeugen, das alle Pakete im Manifest enthält (mitsamt derer transitiven Referenzen)."
 
 #. type: itemize
-#: doc/guix-cookbook.texi:1890
+#: doc/guix-cookbook.texi:2505
 msgid "Finally, manifests have a Scheme representation, the @samp{<manifest>} record type.  They can be manipulated in Scheme and passed to the various Guix @uref{https://en.wikipedia.org/wiki/Api, APIs}."
 msgstr "Zuletzt haben Manifeste auch eine Repräsentation in Scheme, nämlich den @samp{<manifest>}-Verbundstyp. Sie können in Scheme verarbeitet werden und an die verschiedenen @uref{https://de.wikipedia.org/wiki/Programmierschnittstelle, Guix-Programmierschnittstellen (APIs)} übergeben werden."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1898
-msgid "It's important to understand that while manifests can be used to declare profiles, they are not strictly equivalent: profiles have the side effect that they \"pin\" packages in the store, which prevents them from being garbage-collected (@pxref{Invoking guix gc,,, guix, GNU Guix Reference Manual})  and ensures that they will still be available at any point in the future."
+#: doc/guix-cookbook.texi:2513
+msgid "It's important to understand that while manifests can be used to declare profiles, they are not strictly equivalent: profiles have the side effect that they ``pin'' packages in the store, which prevents them from being garbage-collected (@pxref{Invoking guix gc,,, guix, GNU Guix Reference Manual})  and ensures that they will still be available at any point in the future."
 msgstr "Es ist wichtig, dass Sie verstehen, dass Manifeste zwar benutzt werden können, um Profile zu deklarieren, sie aber nicht ganz dasselbe wie Profile sind: Profile haben Nebenwirkungen. Sie setzen Pakete im Store fest, so dass sie nicht vom Müllsammler geholt werden (siehe @ref{Aufruf von guix gc,,, guix.de, Referenzhandbuch zu GNU Guix}) und stellen sicher, dass sie auch in Zukunft jederzeit verfügbar sein werden."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1900
+#: doc/guix-cookbook.texi:2515
 msgid "Let's take an example:"
 msgstr "Schauen wir uns ein Beispiel an:"
 
 #. type: enumerate
-#: doc/guix-cookbook.texi:1906
+#: doc/guix-cookbook.texi:2521
 msgid "We have an environment for hacking on a project for which there isn't a Guix package yet.  We build the environment using a manifest, and then run @code{guix environment -m manifest.scm}.  So far so good."
 msgstr "Wir haben eine Umgebung, in der wir an einem Projekt hacken können, für das es noch kein Guix-Paket gibt. Wir richten die Umgebung mit einem Manifest ein und führen dann @code{guix environment -m manifest.scm} aus. So weit so gut."
 
 #. type: enumerate
-#: doc/guix-cookbook.texi:1912
+#: doc/guix-cookbook.texi:2527
 msgid "Many weeks pass and we have run a couple of @code{guix pull} in the mean time.  Maybe a dependency from our manifest has been updated; or we may have run @code{guix gc} and some packages needed by our manifest have been garbage-collected."
 msgstr "Nach vielen Wochen haben wir in der Zwischenzeit schon ein paarmal @code{guix pull} laufen lassen. Vielleicht wurde eine Abhängigkeit aus unserem Manifest aktualisiert oder wir könnten @code{guix gc} ausgeführt haben, so dass manche Pakete, die von unserem Manifest gebraucht würden, vom Müllsammler geholt worden sind."
 
 #. type: enumerate
-#: doc/guix-cookbook.texi:1917
+#: doc/guix-cookbook.texi:2532
 msgid "Eventually, we set to work on that project again, so we run @code{guix environment -m manifest.scm}.  But now we have to wait for Guix to build and install stuff!"
 msgstr "Schließlich fangen wir wieder an, an dem Projekt zu arbeiten, also fÜhren wir @code{guix environment -m manifest.scm} aus. Aber jetzt müssen wir warten, bis Guix lauter Dinge erstellt und installiert hat!"
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1923
+#: doc/guix-cookbook.texi:2538
 msgid "Ideally, we could spare the rebuild time.  And indeed we can, all we need is to install the manifest to a profile and use @code{GUIX_PROFILE=/the/profile; . \"$GUIX_PROFILE\"/etc/profile} as explained above: this guarantees that our hacking environment will be available at all times."
 msgstr "Ideal wäre es, wenn wir uns die Zeit für die Neuerstellung sparen könnten. Und das können wir auch: Alles, was wir brauchen, ist, das Manifest in ein Profil zu installieren und @code{GUIX_PROFILE=/das/profil; . \"$GUIX_PROFILE\"/etc/profile} aufzurufen, wie oben erklärt. Dadurch haben wir die Garantie, dass unsere Hacking-Umgebung jederzeit zur Verfügung steht."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1926
+#: doc/guix-cookbook.texi:2541
 msgid "@emph{Security warning:} While keeping old profiles around can be convenient, keep in mind that outdated packages may not have received the latest security fixes."
 msgstr "@emph{Sicherheitswarnung:} Obwohl es angenehm sein kann, alte Profile zu behalten, sollten Sie daran denken, dass veraltete Pakete @emph{nicht} über die neuesten Sicherheitsbehebungen verfügen."
 
 #. type: subsection
-#: doc/guix-cookbook.texi:1927 doc/guix-cookbook.texi:1928
+#: doc/guix-cookbook.texi:2542 doc/guix-cookbook.texi:2543
 #, no-wrap
 msgid "Reproducible profiles"
 msgstr "Reproduzierbare Profile"
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1931
+#: doc/guix-cookbook.texi:2546
 msgid "To reproduce a profile bit-for-bit, we need two pieces of information:"
 msgstr "Um ein Profil Bit für Bit nachzubilden, brauchen wir zweierlei Informationen:"
 
 #. type: itemize
-#: doc/guix-cookbook.texi:1935
+#: doc/guix-cookbook.texi:2550
 msgid "a manifest,"
 msgstr "ein Manifest und"
 
 #. type: itemize
-#: doc/guix-cookbook.texi:1937
+#: doc/guix-cookbook.texi:2552
 msgid "a Guix channel specification."
 msgstr "eine Kanalspezifikation für Guix."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1941
+#: doc/guix-cookbook.texi:2556
 msgid "Indeed, manifests alone might not be enough: different Guix versions (or different channels) can produce different outputs for a given manifest."
 msgstr "Tatsächlich kann es vorkommen, dass ein Manifest allein nicht genug ist: Verschiedene Versionen von Guix (oder andere Kanäle) können beim selben Manifest zu verschiedenen Ausgaben führen."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1945
+#: doc/guix-cookbook.texi:2560
 msgid "You can output the Guix channel specification with @samp{guix describe --format=channels}.  Save this to a file, say @samp{channel-specs.scm}."
 msgstr "Sie können sich die Guix-Kanalspezifikationen mit @samp{guix describe --format=channels} ausgeben lassen. Speichern Sie sie in eine Datei ab, sagen wir @samp{channel-specs.scm}."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1948
+#: doc/guix-cookbook.texi:2563
 msgid "On another computer, you can use the channel specification file and the manifest to reproduce the exact same profile:"
 msgstr "Auf einem anderen Rechner können Sie die Kanalspezifikationsdatei und das Manifest benutzen, um genau dasselbe Profil zu reproduzieren:"
 
 #. type: example
-#: doc/guix-cookbook.texi:1952
+#: doc/guix-cookbook.texi:2567
 #, no-wrap
 msgid ""
 "GUIX_EXTRA_PROFILES=$HOME/.guix-extra-profiles\n"
@@ -3330,7 +4526,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix-cookbook.texi:1955
+#: doc/guix-cookbook.texi:2570
 #, no-wrap
 msgid ""
 "mkdir \"$GUIX_EXTRA\"/my-project\n"
@@ -3342,7 +4538,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix-cookbook.texi:1958
+#: doc/guix-cookbook.texi:2573
 #, no-wrap
 msgid ""
 "mkdir -p \"$GUIX_EXTRA_PROFILES/my-project\"\n"
@@ -3352,42 +4548,348 @@ msgstr ""
 "\"$GUIX_EXTRA\"/my-project/guix/bin/guix package --manifest=/path/to/guix-my-project-manifest.scm --profile=\"$GUIX_EXTRA_PROFILES\"/my-project/my-project\n"
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1962
+#: doc/guix-cookbook.texi:2577
 msgid "It's safe to delete the Guix channel profile you've just installed with the channel specification, the project profile does not depend on it."
 msgstr "Es kann nichts Schlimmes passieren, wenn Sie das Guix-Kanalprofil, das Sie eben aus der Kanalspezifikation erstellt haben, löschen, denn das Projektprofil hängt davon nicht ab."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1974
+#: doc/guix-cookbook.texi:2584
+msgid "Guix provides multiple tools to manage environment.  This chapter demonstrate such utilities."
+msgstr "Guix liefert mehrere Werkzeuge mit, um die Umgebung zu verwalten. Dieses Kapitel zeigt solche Werkzeuge."
+
+#. type: section
+#: doc/guix-cookbook.texi:2587 doc/guix-cookbook.texi:2589
+#: doc/guix-cookbook.texi:2590
+#, no-wrap
+msgid "Guix environment via direnv"
+msgstr "Guix-Umgebung mit direnv"
+
+#. type: menuentry
+#: doc/guix-cookbook.texi:2587
+msgid "Setup Guix environment with direnv"
+msgstr "Mit direnv Guix-Umgebungen einrichten."
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:2595
+msgid "Guix provides a @samp{direnv} package, which could extend shell after directory change.  This tool could be used to prepare a pure Guix environment."
+msgstr "Guix stellt ein @samp{direnv}-Paket zur Verfügung, mit der die Shell nach einem Verzeichniswechsel erweitert werden kann. Dieses Werkzeug kann benutzt werden, um eine reine, „pure“ Guix-Umgebung vorzubereiten."
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:2601
+msgid "The following example provides a shell function for @file{~/.direnvrc} file, which could be used from Guix Git repository in @file{~/src/guix/.envrc} file to setup a build environment similar to described in @pxref{Building from Git,,, guix, GNU Guix Reference Manual}."
+msgstr "Das folgende Beispiel zeigt eine Shell-Funktion für die @file{~/.direnvrc}-Datei, die in einer Datei @file{~/src/guix/.envrc} in Guix’ Git-Repository benutzt werden kann, um eine zur Beschreibung im @ref{Erstellung aus dem Git,,, guix.de, Referenzhandbuch zu GNU Guix} ähnliche Erstellungsumgebung herzustellen."
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:2603
+msgid "Create a @file{~/.direnvrc} with a Bash code:"
+msgstr "Erstellen Sie eine @file{~/.direnvrc} mit einem Bash-Code darin:"
+
+#. type: example
+#: doc/guix-cookbook.texi:2621
+#, no-wrap
+msgid ""
+"# Thanks <https://github.com/direnv/direnv/issues/73#issuecomment-152284914>\n"
+"export_function()\n"
+"@{\n"
+"  local name=$1\n"
+"  local alias_dir=$PWD/.direnv/aliases\n"
+"  mkdir -p \"$alias_dir\"\n"
+"  PATH_add \"$alias_dir\"\n"
+"  local target=\"$alias_dir/$name\"\n"
+"  if declare -f \"$name\" >/dev/null; then\n"
+"    echo \"#!$SHELL\" > \"$target\"\n"
+"    declare -f \"$name\" >> \"$target\" 2>/dev/null\n"
+"    # Notice that we add shell variables to the function trigger.\n"
+"    echo \"$name \\$*\" >> \"$target\"\n"
+"    chmod +x \"$target\"\n"
+"  fi\n"
+"@}\n"
+"\n"
+msgstr ""
+"# Dank an <https://github.com/direnv/direnv/issues/73#issuecomment-152284914>\n"
+"export_function()\n"
+"@{\n"
+"  local name=$1\n"
+"  local alias_dir=$PWD/.direnv/aliases\n"
+"  mkdir -p \"$alias_dir\"\n"
+"  PATH_add \"$alias_dir\"\n"
+"  local target=\"$alias_dir/$name\"\n"
+"  if declare -f \"$name\" >/dev/null; then\n"
+"    echo \"#!$SHELL\" > \"$target\"\n"
+"    declare -f \"$name\" >> \"$target\" 2>/dev/null\n"
+"    # Beachten Sie, wir fügen Shell-Variable in den Funktionsauslöser ein.\n"
+"    echo \"$name \\$*\" >> \"$target\"\n"
+"    chmod +x \"$target\"\n"
+"  fi\n"
+"@}\n"
+"\n"
+
+#. type: example
+#: doc/guix-cookbook.texi:2626
+#, no-wrap
+msgid ""
+"use_guix()\n"
+"@{\n"
+"    # Set GitHub token.\n"
+"    export GUIX_GITHUB_TOKEN=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"\n"
+"\n"
+msgstr ""
+"use_guix()\n"
+"@{\n"
+"    # GitHub-Token festlegen.\n"
+"    export GUIX_GITHUB_TOKEN=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"\n"
+"\n"
+
+#. type: example
+#: doc/guix-cookbook.texi:2629
+#, no-wrap
+msgid ""
+"    # Unset 'GUIX_PACKAGE_PATH'.\n"
+"    export GUIX_PACKAGE_PATH=\"\"\n"
+"\n"
+msgstr ""
+"    # Deaktivieren von 'GUIX_PACKAGE_PATH'.\n"
+"    export GUIX_PACKAGE_PATH=\"\"\n"
+"\n"
+
+#. type: example
+#: doc/guix-cookbook.texi:2638
+#, no-wrap
+msgid ""
+"    # Recreate a garbage collector root.\n"
+"    gcroots=\"$HOME/.config/guix/gcroots\"\n"
+"    mkdir -p \"$gcroots\"\n"
+"    gcroot=\"$gcroots/guix\"\n"
+"    if [ -L \"$gcroot\" ]\n"
+"    then\n"
+"        rm -v \"$gcroot\"\n"
+"    fi\n"
+"\n"
+msgstr ""
+"    # Müllsammlerwurzel neu erzeugen.\n"
+"    gcroots=\"$HOME/.config/guix/gcroots\"\n"
+"    mkdir -p \"$gcroots\"\n"
+"    gcroot=\"$gcroots/guix\"\n"
+"    if [ -L \"$gcroot\" ]\n"
+"    then\n"
+"        rm -v \"$gcroot\"\n"
+"    fi\n"
+"\n"
+
+#. type: example
+#: doc/guix-cookbook.texi:2653
+#, no-wrap
+msgid ""
+"    # Miscellaneous packages.\n"
+"    PACKAGES_MAINTENANCE=(\n"
+"        direnv\n"
+"        git\n"
+"        git:send-email\n"
+"        git-cal\n"
+"        gnupg\n"
+"        guile-colorized\n"
+"        guile-readline\n"
+"        less\n"
+"        ncurses\n"
+"        openssh\n"
+"        xdot\n"
+"    )\n"
+"\n"
+msgstr ""
+"    # Verschiedene Pakete.\n"
+"    PACKAGES_MAINTENANCE=(\n"
+"        direnv\n"
+"        git\n"
+"        git:send-email\n"
+"        git-cal\n"
+"        gnupg\n"
+"        guile-colorized\n"
+"        guile-readline\n"
+"        less\n"
+"        ncurses\n"
+"        openssh\n"
+"        xdot\n"
+"    )\n"
+"\n"
+
+#. type: example
+#: doc/guix-cookbook.texi:2656
+#, no-wrap
+msgid ""
+"    # Environment packages.\n"
+"    PACKAGES=(help2man guile-sqlite3 guile-gcrypt)\n"
+"\n"
+msgstr ""
+"    # In die Umgebung aufzunehmende Pakete.\n"
+"    PACKAGES=(help2man guile-sqlite3 guile-gcrypt)\n"
+"\n"
+
+#. type: example
+#: doc/guix-cookbook.texi:2659
+#, no-wrap
+msgid ""
+"    # Thanks <https://lists.gnu.org/archive/html/guix-devel/2016-09/msg00859.html>\n"
+"    eval \"$(guix environment --search-paths --root=\"$gcroot\" --pure guix --ad-hoc $@{PACKAGES[@@]@} $@{PACKAGES_MAINTENANCE[@@]@} \"$@@\")\"\n"
+"\n"
+msgstr ""
+"    # Dank an <https://lists.gnu.org/archive/html/guix-devel/2016-09/msg00859.html>\n"
+"    eval \"$(guix environment --search-paths --root=\"$gcroot\" --pure guix --ad-hoc $@{PACKAGES[@@]@} $@{PACKAGES_MAINTENANCE[@@]@} \"$@@\")\"\n"
+"\n"
+
+#. type: example
+#: doc/guix-cookbook.texi:2666
+#, no-wrap
+msgid ""
+"    # Predefine configure flags.\n"
+"    configure()\n"
+"    @{\n"
+"        ./configure --localstatedir=/var --prefix=\n"
+"    @}\n"
+"    export_function configure\n"
+"\n"
+msgstr ""
+"    # configure-Optionen vordefinieren.\n"
+"    configure()\n"
+"    @{\n"
+"        ./configure --localstatedir=/var --prefix=\n"
+"    @}\n"
+"    export_function configure\n"
+"\n"
+
+#. type: example
+#: doc/guix-cookbook.texi:2677
+#, no-wrap
+msgid ""
+"    # Run make and optionally build something.\n"
+"    build()\n"
+"    @{\n"
+"        make -j 2\n"
+"        if [ $# -gt 0 ]\n"
+"        then\n"
+"            ./pre-inst-env guix build \"$@@\"\n"
+"        fi\n"
+"    @}\n"
+"    export_function build\n"
+"\n"
+msgstr ""
+"    # make ausführen und optional etwas erstellen.\n"
+"    build()\n"
+"    @{\n"
+"        make -j 2\n"
+"        if [ $# -gt 0 ]\n"
+"        then\n"
+"            ./pre-inst-env guix build \"$@@\"\n"
+"        fi\n"
+"    @}\n"
+"    export_function build\n"
+"\n"
+
+#. type: example
+#: doc/guix-cookbook.texi:2684
+#, no-wrap
+msgid ""
+"    # Predefine push Git command.\n"
+"    push()\n"
+"    @{\n"
+"        git push --set-upstream origin\n"
+"    @}\n"
+"    export_function push\n"
+"\n"
+msgstr ""
+"    # Git-Befehl zum Pushen vordefinieren.\n"
+"    push()\n"
+"    @{\n"
+"        git push --set-upstream origin\n"
+"    @}\n"
+"    export_function push\n"
+"\n"
+
+#. type: example
+#: doc/guix-cookbook.texi:2687
+#, no-wrap
+msgid ""
+"    clear                        # Clean up the screen.\n"
+"    git-cal --author='Your Name' # Show contributions calendar.\n"
+"\n"
+msgstr ""
+"    clear                        # Den Bildschirm löschen.\n"
+"    git-cal --author='Ihr Name'  # Kalender bisheriger Beiträge zeigen.\n"
+"\n"
+
+#. type: example
+#: doc/guix-cookbook.texi:2695
+#, no-wrap
+msgid ""
+"    # Show commands help.\n"
+"    echo \"\n"
+"build          build a package or just a project if no argument provided\n"
+"configure      run ./configure with predefined parameters\n"
+"push           push to upstream Git repository\n"
+"\"\n"
+"@}\n"
+msgstr ""
+"    # Befehlsübersicht anzeigen.\n"
+"    echo \"\n"
+"build          ein Paket oder, ohne Argumente, ein Projekt erstellen\n"
+"configure      ./configure mit vordefinierten Parametern\n"
+"push           ins Upstream-Git-Repository pushen\n"
+"\"\n"
+"@}\n"
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:2699
+msgid "Every project containing @file{.envrc} with a string @code{use guix} will have predefined environment variables and procedures."
+msgstr "Jedes Projekt, das eine @file{.envrc} mit einer Zeichenkette @code{use guix} enthält, wird vordefinierte Umgebungsvariable und Prozeduren verwenden."
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:2701
+msgid "Run @command{direnv allow} to setup the environment for the first time."
+msgstr "Führen Sie @command{direnv allow} aus, um die Umgebung bei der ersten Nutzung einzurichten."
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:2713
 msgid "Guix is based on the @uref{https://nixos.org/nix/, Nix package manager}, which was designed and implemented by Eelco Dolstra, with contributions from other people (see the @file{nix/AUTHORS} file in Guix.)  Nix pioneered functional package management, and promoted unprecedented features, such as transactional package upgrades and rollbacks, per-user profiles, and referentially transparent build processes.  Without this work, Guix would not exist."
 msgstr "Guix baut auf dem @uref{https://nixos.org/nix/, Nix-Paketverwaltungsprogramm} auf, das von Eelco Dolstra entworfen und entwickelt wurde, mit Beiträgen von anderen Leuten (siehe die Datei @file{nix/AUTHORS} in Guix). Nix hat für die funktionale Paketverwaltung die Pionierarbeit geleistet und noch nie dagewesene Funktionalitäten vorangetrieben wie transaktionsbasierte Paketaktualisierungen und die Rücksetzbarkeit selbiger, eigene Paketprofile für jeden Nutzer und referenziell transparente Erstellungsprozesse. Ohne diese Arbeit gäbe es Guix nicht.<"
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1977
+#: doc/guix-cookbook.texi:2716
 msgid "The Nix-based software distributions, Nixpkgs and NixOS, have also been an inspiration for Guix."
 msgstr "Die Nix-basierten Software-Distributionen Nixpkgs und NixOS waren auch eine Inspiration für Guix."
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1983
+#: doc/guix-cookbook.texi:2722
 msgid "GNU@tie{}Guix itself is a collective work with contributions from a number of people.  See the @file{AUTHORS} file in Guix for more information on these fine people.  The @file{THANKS} file lists people who have helped by reporting bugs, taking care of the infrastructure, providing artwork and themes, making suggestions, and more---thank you!"
 msgstr "GNU@tie{}Guix ist selbst das Produkt kollektiver Arbeit mit Beiträgen durch eine Vielzahl von Leuten. Siehe die Datei @file{AUTHORS} in Guix für mehr Informationen, wer diese wunderbaren Menschen sind. In der Datei @file{THANKS} finden Sie eine Liste der Leute, die uns geholfen haben, indem Sie Fehler gemeldet, sich um unsere Infrastruktur gekümmert, künstlerische Arbeit und schön gestaltete Themen beigesteuert, Vorschläge gemacht und noch vieles mehr getan haben — vielen Dank!"
 
 #. type: Plain text
-#: doc/guix-cookbook.texi:1986
+#: doc/guix-cookbook.texi:2725
 msgid "This document includes adapted sections from articles that have previously been published on the Guix blog at @uref{https://guix.gnu.org/blog}."
 msgstr "Dieses Dokument enthält angepasste Abschnitte aus Einträgen, die zuvor auf dem Blog von Guix unter @uref{https://guix.gnu.org/blog} veröffentlicht wurden."
 
 #. type: cindex
-#: doc/guix-cookbook.texi:1991
+#: doc/guix-cookbook.texi:2730
 #, no-wrap
 msgid "license, GNU Free Documentation License"
 msgstr "Lizenz, GNU-Lizenz für freie Dokumentation"
 
 #. type: include
-#: doc/guix-cookbook.texi:1992
+#: doc/guix-cookbook.texi:2731
 #, no-wrap
 msgid "fdl-1.3.texi"
 msgstr "fdl-1.3.texi"
 
+#~ msgid "The keyword syntax is @code{#:}; it is used to create unique identifiers.  @pxref{Keywords,,, guile, GNU Guile Reference Manual}."
+#~ msgstr "Die Syntax für Schlüsselwörter ist @code{#:}. Wir benutzen sie, um eindeutige Bezeichnungen zu erzeugen. Siehe @ref{Keywords,,, guile, GNU Guile Reference Manual}."
+
+#~ msgid "@code{(add-before PHASE NEW-PHASE PROCEDURE)}: Run @code{PROCEDURE} named @code{NEW-PHASE} before @code{PHASE}."
+#~ msgstr "@code{(add-before PHASE NEUE-PHASE PROZEDUR)}: Die @code{PROZEDUR} namens @code{NEUE-PHASE} vor @code{PHASE} ausführen."
+
+#~ msgid "@code{(add-after PHASE NEW-PHASE PROCEDURE)}: Same, but afterwards."
+#~ msgstr "@code{(add-after PHASE NEUE-PHASE PROZEDUR)}: Genauso, aber danach."
+
+#~ msgid "@code{(replace PHASE PROCEDURE)}."
+#~ msgstr "@code{(replace PHASE PROZEDUR)}."
+
 #~ msgid "Learn more about build systems in"
 #~ msgstr "Sie erfahren mehr über Erstellungssysteme in"
 
diff --git a/po/doc/guix-manual.de.po b/po/doc/guix-manual.de.po
index 2b20823ec2..38d64fad76 100644
--- a/po/doc/guix-manual.de.po
+++ b/po/doc/guix-manual.de.po
@@ -1,5 +1,5 @@
 # German translation of the Guix user manual.
-# Copyright (C) 2018-2020 the authors of Guix (msgids)
+# Copyright (C) 2012-2020 the authors of Guix (msgids)
 # This file is distributed under the same license as the guix package.
 # Mario Blättermann <mario.blaettermann@gmail.com>, 2018.
 # Florian Pelz <pelzflorian@pelzflorian.de>, 2018, 2019, 2020.
@@ -7,10 +7,10 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: guix-manual 1.1.0-pre2\n"
-"Report-Msgid-Bugs-To: ludo@gnu.org\n"
-"POT-Creation-Date: 2020-04-09 18:27+0200\n"
-"PO-Revision-Date: 2020-04-11 20:28+0200\n"
+"Project-Id-Version: guix-manual 1.2.0-pre3\n"
+"Report-Msgid-Bugs-To: bug-guix@gnu.org\n"
+"POT-Creation-Date: 2020-11-05 17:27+0100\n"
+"PO-Revision-Date: 2020-11-09 01:20+0100\n"
 "Last-Translator: Florian Pelz <pelzflorian@pelzflorian.de>\n"
 "Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
 "Language: de\n"
@@ -19,11 +19,11 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "X-Bugs: Report translation errors to the Language-Team address.\n"
 
-#. #-#-#-#-#  contributing.pot (guix 1.1.0-pre2)  #-#-#-#-#
+#. #-#-#-#-#  contributing.pot (guix manual 1.2.0-pre3)  #-#-#-#-#
 #. type: chapter
-#. #-#-#-#-#  guix.pot (guix 1.1.0-pre2)  #-#-#-#-#
+#. #-#-#-#-#  guix.pot (guix manual 1.2.0-pre3)  #-#-#-#-#
 #. type: menuentry
-#: doc/contributing.texi:1 doc/contributing.texi:2 doc/guix.texi:155
+#: doc/contributing.texi:1 doc/contributing.texi:2 doc/guix.texi:162
 #, no-wrap
 msgid "Contributing"
 msgstr "Mitwirken"
@@ -56,323 +56,333 @@ msgid "Contributors are not required to use their legal name in patches and on-l
 msgstr "Von Mitwirkenden wird nicht erwartet, dass sie in Patches oder in der Online-Kommunikation ihre echten Namen preisgeben. Sie können einen beliebigen Namen oder ein Pseudonym ihrer Wahl verwenden."
 
 #. type: section
-#: doc/contributing.texi:31 doc/contributing.texi:33 doc/contributing.texi:34
+#: doc/contributing.texi:32 doc/contributing.texi:34 doc/contributing.texi:35
 #, no-wrap
 msgid "Building from Git"
 msgstr "Erstellung aus dem Git"
 
 #. type: menuentry
-#: doc/contributing.texi:31
+#: doc/contributing.texi:32
 msgid "The latest and greatest."
 msgstr "Das Neueste und Beste."
 
 #. type: section
-#: doc/contributing.texi:31 doc/contributing.texi:150
-#: doc/contributing.texi:151
+#: doc/contributing.texi:32 doc/contributing.texi:160
+#: doc/contributing.texi:161
 #, no-wrap
 msgid "Running Guix Before It Is Installed"
 msgstr "Guix vor der Installation ausführen"
 
 #. type: menuentry
-#: doc/contributing.texi:31
+#: doc/contributing.texi:32
 msgid "Hacker tricks."
 msgstr "Hacker-Tricks."
 
 #. type: section
-#: doc/contributing.texi:31 doc/contributing.texi:214
-#: doc/contributing.texi:215
+#: doc/contributing.texi:32 doc/contributing.texi:233
+#: doc/contributing.texi:234
 #, no-wrap
 msgid "The Perfect Setup"
 msgstr "Perfekt eingerichtet"
 
 #. type: menuentry
-#: doc/contributing.texi:31
+#: doc/contributing.texi:32
 msgid "The right tools."
 msgstr "Die richtigen Werkzeuge."
 
 #. type: section
-#: doc/contributing.texi:31 doc/contributing.texi:305
-#: doc/contributing.texi:306
+#: doc/contributing.texi:32 doc/contributing.texi:324
+#: doc/contributing.texi:325
 #, no-wrap
 msgid "Packaging Guidelines"
 msgstr "Paketrichtlinien"
 
 #. type: menuentry
-#: doc/contributing.texi:31
+#: doc/contributing.texi:32
 msgid "Growing the distribution."
 msgstr "Die Distribution wachsen lassen."
 
 #. type: section
-#: doc/contributing.texi:31 doc/contributing.texi:789
-#: doc/contributing.texi:790
+#: doc/contributing.texi:32 doc/contributing.texi:823
+#: doc/contributing.texi:824
 #, no-wrap
 msgid "Coding Style"
 msgstr "Programmierstil"
 
 #. type: menuentry
-#: doc/contributing.texi:31
+#: doc/contributing.texi:32
 msgid "Hygiene of the contributor."
 msgstr "Wie Mitwirkende hygienisch arbeiten."
 
 #. type: section
-#: doc/contributing.texi:31 doc/contributing.texi:887
-#: doc/contributing.texi:888
+#: doc/contributing.texi:32 doc/contributing.texi:921
+#: doc/contributing.texi:922
 #, no-wrap
 msgid "Submitting Patches"
 msgstr "Einreichen von Patches"
 
 #. type: menuentry
-#: doc/contributing.texi:31
+#: doc/contributing.texi:32
 msgid "Share your work."
 msgstr "Teilen Sie Ihre Arbeit."
 
 #. type: section
-#: doc/contributing.texi:31 doc/contributing.texi:1111
-#: doc/contributing.texi:1112
+#: doc/contributing.texi:32 doc/contributing.texi:1146
+#: doc/contributing.texi:1147
 #, no-wrap
 msgid "Tracking Bugs and Patches"
 msgstr "Überblick über gemeldete Fehler und Patches"
 
 #. type: menuentry
-#: doc/contributing.texi:31
+#: doc/contributing.texi:32
 msgid "Using Debbugs."
 msgstr "Debbugs benutzen."
 
 #. type: section
-#: doc/contributing.texi:31 doc/contributing.texi:1160
-#: doc/contributing.texi:1161
+#: doc/contributing.texi:32 doc/contributing.texi:1197
+#: doc/contributing.texi:1198
 #, no-wrap
 msgid "Commit Access"
 msgstr "Commit-Zugriff"
 
 #. type: menuentry
-#: doc/contributing.texi:31
+#: doc/contributing.texi:32
 msgid "Pushing to the official repository."
 msgstr "Auf die offiziellen Repositorys pushen."
 
+#. type: section
+#: doc/contributing.texi:32 doc/contributing.texi:1338
+#: doc/contributing.texi:1339
+#, no-wrap
+msgid "Updating the Guix Package"
+msgstr "Das Guix-Paket aktualisieren"
+
+#. type: menuentry
+#: doc/contributing.texi:32
+msgid "Updating the Guix package definition."
+msgstr "Die Paketdefinition für Guix erneuern."
+
 #. type: Plain text
-#: doc/contributing.texi:38
+#: doc/contributing.texi:39
 msgid "If you want to hack Guix itself, it is recommended to use the latest version from the Git repository:"
 msgstr "Wenn Sie an Guix selbst hacken wollen, ist es empfehlenswert, dass Sie die neueste Version aus dem Git-Softwarebestand verwenden:"
 
 #. type: example
-#: doc/contributing.texi:41
+#: doc/contributing.texi:42
 #, no-wrap
 msgid "git clone https://git.savannah.gnu.org/git/guix.git\n"
 msgstr "git clone https://git.savannah.gnu.org/git/guix.git\n"
 
 #. type: cindex
-#: doc/contributing.texi:43
+#: doc/contributing.texi:44
 #, no-wrap
 msgid "authentication, of a Guix checkout"
 msgstr "Authentifizieren, eines Guix-Checkouts"
 
 #. type: Plain text
-#: doc/contributing.texi:48
-msgid "How do you ensure that you obtained a genuine copy of the repository? Guix itself provides a tool to @dfn{authenticate} your checkout, but you must first make sure this tool is genuine in order to ``bootstrap'' the trust chain.  To do that, run:"
-msgstr "Wie stellen Sie sicher, dass Sie eine echte Kopie des Repositorys heruntergeladen haben? Guix liefert ein Werkzeug mit, mit dem Sie Ihr Checkout @dfn{authentifizieren} können, aber Sie müssen vorher sicherstellen, dass dieses Werkzeug überhaupt echt ist, wenn Sie Ihre Vertrauenskette („Trust Chain“) bootstrappen wollen. Führen Sie dazu dies aus:"
+#: doc/contributing.texi:49
+msgid "How do you ensure that you obtained a genuine copy of the repository? To do that, run @command{guix git authenticate}, passing it the commit and OpenPGP fingerprint of the @dfn{channel introduction} (@pxref{Invoking guix git authenticate}):"
+msgstr "Doch wie können Sie sichergehen, dass sie eine unverfälschte Kopie des Repositorys erhalten haben? Dazu müssen Sie @command{guix git authenticate} ausführen, wobei Sie den Commit und den OpenPGP-Fingerabdruck der @dfn{Kanaleinführung} angeben (siehe @ref{Invoking guix git authenticate}):"
 
 #. type: example
-#: doc/contributing.texi:52
-#, no-wrap
-msgid "git verify-commit `git log --format=%H build-aux/git-authenticate.scm`\n"
-msgstr "git verify-commit `git log --format=%H build-aux/git-authenticate.scm`\n"
-
-#. type: Plain text
-#: doc/contributing.texi:55
-msgid "The output must look something like:"
-msgstr "Die Ausgabe sollte etwa so aussehen:"
-
-#. type: example
-#: doc/contributing.texi:63
+#: doc/contributing.texi:56
 #, no-wrap
 msgid ""
-"gpg: Signature made Fri 27 Dec 2019 01:27:41 PM CET\n"
-"gpg:                using RSA key 3CE464558A84FDC69DB40CFB090B11993D9AEBB5\n"
-"@dots{}\n"
-"gpg: Signature made Fri 27 Dec 2019 01:25:22 PM CET\n"
-"gpg:                using RSA key 3CE464558A84FDC69DB40CFB090B11993D9AEBB5\n"
-"@dots{}\n"
+"git fetch origin keyring:keyring\n"
+"guix git authenticate 9edb3f66fd807b096b48283debdcddccfea34bad \\\n"
+"  \"BBB0 2DDF 2CEA F6A8 0D1D  E643 A2A0 6DF2 A33A 54FA\"\n"
 msgstr ""
-"gpg: Signatur vom Fr 27 Dez 2019 13:27:41 CET\n"
-"gpg:                mittels RSA-Schlüssel 3CE464558A84FDC69DB40CFB090B11993D9AEBB5\n"
-"…\n"
-"gpg: Signatur vom Fr 27 Dez 2019 13:25:22 CET\n"
-"gpg:                mittels RSA-Schlüssel 3CE464558A84FDC69DB40CFB090B11993D9AEBB5\n"
-"…\n"
+"git fetch origin keyring:keyring\n"
+"guix git authenticate 9edb3f66fd807b096b48283debdcddccfea34bad \\\n"
+"  \"BBB0 2DDF 2CEA F6A8 0D1D  E643 A2A0 6DF2 A33A 54FA\"\n"
 
 #. type: Plain text
-#: doc/contributing.texi:69
-msgid "... meaning that changes to this file are all signed with key @code{3CE464558A84FDC69DB40CFB090B11993D9AEBB5} (you may need to fetch this key from a key server, if you have not done it yet)."
-msgstr "Das bedeutet, dass Änderungen an dieser Datei alle mit dem Schlüssel @code{3CE464558A84FDC69DB40CFB090B11993D9AEBB5} signiert wurden (eventuell müssen Sie diesen Schlüssel erst von einem Server beziehen, wenn Sie es noch nicht getan haben)."
+#: doc/contributing.texi:61
+msgid "This command completes with exit code zero on success; it prints an error message and exits with a non-zero code otherwise."
+msgstr "Dieser Befehl gibt bei Erfolg am Ende null als Exit-Status zurück, ansonsten wird eine Fehlermeldung ausgegeben und ein anderer Exit-Status zurückgegeben."
 
 #. type: Plain text
-#: doc/contributing.texi:72
-msgid "From there on, you can authenticate all the commits included in your checkout by running:"
-msgstr "Von da an können Sie alle Commits in Ihrem Checkout authentifizieren, indem Sie dies ausführen:"
-
-#. type: example
-#: doc/contributing.texi:75
-#, no-wrap
-msgid "make authenticate\n"
-msgstr "make authenticate\n"
-
-#. type: Plain text
-#: doc/contributing.texi:78
-msgid "The first run takes a couple of minutes, but subsequent runs are faster."
-msgstr "Die erste Ausführung dauert ein paar Minuten, aber nachfolgende Ausführungen gehen schneller."
-
-#. type: quotation
-#: doc/contributing.texi:79 doc/contributing.texi:1207 doc/guix.texi:496
-#: doc/guix.texi:545 doc/guix.texi:1562 doc/guix.texi:1827 doc/guix.texi:2038
-#: doc/guix.texi:2259 doc/guix.texi:2454 doc/guix.texi:4265 doc/guix.texi:4481
-#: doc/guix.texi:4782 doc/guix.texi:5012 doc/guix.texi:5133 doc/guix.texi:5185
-#: doc/guix.texi:6839 doc/guix.texi:6909 doc/guix.texi:8642 doc/guix.texi:8654
-#: doc/guix.texi:10708 doc/guix.texi:11267 doc/guix.texi:11819
-#: doc/guix.texi:14564 doc/guix.texi:21036 doc/guix.texi:26359
-#: doc/guix.texi:26570 doc/guix.texi:26729 doc/guix.texi:26850
-#: doc/guix.texi:27032
-#, no-wrap
-msgid "Note"
-msgstr "Anmerkung"
-
-#. type: quotation
-#: doc/contributing.texi:83
-msgid "You are advised to run @command{make authenticate} after every @command{git pull} invocation.  This ensures you keep receiving valid changes to the repository"
-msgstr "Wir raten Ihnen dazu, nach jedem Aufruf von @command{git pull} auch @command{make authenticate} auszuführen. Das stellt sicher, dass Sie weiterhin nur gültige Änderungen in Ihr Repository übernehmen."
+#: doc/contributing.texi:68
+msgid "As you can see, there is a chicken-and-egg problem: you first need to have Guix installed.  Typically you would install Guix System (@pxref{System Installation}) or Guix on top of another distro (@pxref{Binary Installation}); in either case, you would verify the OpenPGP signature on the installation medium.  This ``bootstraps'' the trust chain."
+msgstr "Wie Sie sehen können, liegt hier ein Henne-Ei-Problem vor: Sie müssen Guix zuvor bereits installiert haben. Üblicherweise würden Sie Guix System erst auf einem anderen System installieren (siehe @ref{System Installation}) oder Guix auf einer anderen Distribution installieren (siehe @ref{Binary Installation}); in beiden Fällen würden Sie die OpenPGP-Signatur auf dem Installationsmedium prüfen. Damit haben Sie ein „Bootstrapping“ der Vertrauenskette durchgeführt."
 
 #. type: Plain text
-#: doc/contributing.texi:89
+#: doc/contributing.texi:73
 msgid "The easiest way to set up a development environment for Guix is, of course, by using Guix! The following command starts a new shell where all the dependencies and appropriate environment variables are set up to hack on Guix:"
 msgstr "Der einfachste Weg, eine Entwicklungsumgebung für Guix einzurichten, ist natürlich, Guix zu benutzen! Der folgende Befehl startet eine neue Shell, in der alle Abhängigkeiten und Umgebungsvariablen bereits eingerichtet sind, um an Guix zu arbeiten:"
 
 #. type: example
-#: doc/contributing.texi:92
+#: doc/contributing.texi:76
 #, no-wrap
 msgid "guix environment guix --pure\n"
 msgstr "guix environment guix --pure\n"
 
 #. type: Plain text
-#: doc/contributing.texi:95
+#: doc/contributing.texi:79
 msgid "@xref{Invoking guix environment}, for more information on that command."
 msgstr "Siehe @ref{Invoking guix environment} für weitere Informationen zu diesem Befehl."
 
 #. type: Plain text
-#: doc/contributing.texi:99
+#: doc/contributing.texi:83
 msgid "If you are unable to use Guix when building Guix from a checkout, the following are the required packages in addition to those mentioned in the installation instructions (@pxref{Requirements})."
 msgstr "Wenn Sie Guix nicht benutzen können, wenn Sie es aus einem Checkout erstellen, werden die folgenden Pakete zusätzlich zu denen benötigt, die in den Installationsanweisungen angegeben sind (siehe @ref{Requirements})."
 
 #. type: item
-#: doc/contributing.texi:101
+#: doc/contributing.texi:85
 #, no-wrap
 msgid "@url{https://gnu.org/software/autoconf/, GNU Autoconf};"
 msgstr "@url{https://gnu.org/software/autoconf/, GNU Autoconf},"
 
 #. type: item
-#: doc/contributing.texi:102
+#: doc/contributing.texi:86
 #, no-wrap
 msgid "@url{https://gnu.org/software/automake/, GNU Automake};"
 msgstr "@url{https://gnu.org/software/automake/, GNU Automake},"
 
 #. type: item
-#: doc/contributing.texi:103
+#: doc/contributing.texi:87
 #, no-wrap
 msgid "@url{https://gnu.org/software/gettext/, GNU Gettext};"
 msgstr "@url{https://gnu.org/software/gettext/, GNU Gettext},"
 
 #. type: item
-#: doc/contributing.texi:104
+#: doc/contributing.texi:88
 #, no-wrap
 msgid "@url{https://gnu.org/software/texinfo/, GNU Texinfo};"
 msgstr "@url{https://gnu.org/software/texinfo/, GNU Texinfo},"
 
 #. type: item
-#: doc/contributing.texi:105
+#: doc/contributing.texi:89
 #, no-wrap
 msgid "@url{https://www.graphviz.org/, Graphviz};"
 msgstr "@url{https://www.graphviz.org/, Graphviz},"
 
 #. type: item
-#: doc/contributing.texi:106
+#: doc/contributing.texi:90
 #, no-wrap
 msgid "@url{https://www.gnu.org/software/help2man/, GNU Help2man (optional)}."
 msgstr "@url{https://www.gnu.org/software/help2man/, GNU Help2man (optional)}."
 
 #. type: Plain text
-#: doc/contributing.texi:111
+#: doc/contributing.texi:95
 msgid "On Guix, extra dependencies can be added by instead running @command{guix environment} with @option{--ad-hoc}:"
 msgstr "Auf Guix können zusätzliche Abhängigkeiten hinzugefügt werden, indem Sie stattdessen @command{guix environment} mit @option{--ad-hoc} ausführen:"
 
 #. type: example
-#: doc/contributing.texi:114
+#: doc/contributing.texi:98
 #, no-wrap
 msgid "guix environment guix --pure --ad-hoc help2man git strace\n"
 msgstr "guix environment guix --pure --ad-hoc help2man git strace\n"
 
 #. type: Plain text
-#: doc/contributing.texi:118
+#: doc/contributing.texi:102
 msgid "Run @command{./bootstrap} to generate the build system infrastructure using Autoconf and Automake.  If you get an error like this one:"
 msgstr "Führen Sie @command{./bootstrap} aus, um die Infrastruktur des Erstellungssystems mit Autoconf und Automake zu erzeugen. Möglicherweise erhalten Sie eine Fehlermeldung wie diese:"
 
 #. type: example
-#: doc/contributing.texi:121
+#: doc/contributing.texi:105
 #, no-wrap
 msgid "configure.ac:46: error: possibly undefined macro: PKG_CHECK_MODULES\n"
 msgstr "configure.ac:46: error: possibly undefined macro: PKG_CHECK_MODULES\n"
 
 #. type: Plain text
-#: doc/contributing.texi:130
+#: doc/contributing.texi:114
 msgid "it probably means that Autoconf couldn’t find @file{pkg.m4}, which is provided by pkg-config.  Make sure that @file{pkg.m4} is available.  The same holds for the @file{guile.m4} set of macros provided by Guile.  For instance, if you installed Automake in @file{/usr/local}, it wouldn’t look for @file{.m4} files in @file{/usr/share}.  In that case, you have to invoke the following command:"
 msgstr "Das bedeutet wahrscheinlich, dass Autoconf @file{pkg.m4} nicht finden konnte, welches von pkg-config bereitgestellt wird. Stellen Sie sicher, dass @file{pkg.m4} verfügbar ist. Gleiches gilt für den von Guile bereitgestellten Makrosatz @file{guile.m4}. Wenn Sie beispielsweise Automake in @file{/usr/local} installiert haben, würde in @file{/usr/share} nicht nach @file{.m4}-Dateien geschaut. In einem solchen Fall müssen Sie folgenden Befehl aufrufen:"
 
 #. type: example
-#: doc/contributing.texi:133
+#: doc/contributing.texi:117
 #, no-wrap
 msgid "export ACLOCAL_PATH=/usr/share/aclocal\n"
 msgstr "export ACLOCAL_PATH=/usr/share/aclocal\n"
 
 #. type: Plain text
-#: doc/contributing.texi:137
+#: doc/contributing.texi:121
 msgid "@xref{Macro Search Path,,, automake, The GNU Automake Manual}, for more information."
 msgstr "In @ref{Macro Search Path,,, automake, The GNU Automake Manual} finden Sie weitere Informationen."
 
 #. type: Plain text
-#: doc/contributing.texi:143
-msgid "Then, run @command{./configure} as usual.  Make sure to pass @code{--localstatedir=@var{directory}} where @var{directory} is the @code{localstatedir} value used by your current installation (@pxref{The Store}, for information about this).  We recommend to use the value @code{/var}."
-msgstr "Dann führen Sie wie gewohnt @command{./configure} aus. Achten Sie darauf, @code{--localstatedir=@var{Verzeichnis}} zu übergeben, wobei @var{Verzeichnis} der von Ihrer aktuellen Installation verwendete @code{localstatedir}-Wert ist (weitere Informationen siehe @ref{The Store}). Unsere Empfehlung ist, dass Sie als Wert immer @code{/var} verwenden."
+#: doc/contributing.texi:128
+msgid "Then, run @command{./configure} as usual.  Make sure to pass @code{--localstatedir=@var{directory}} where @var{directory} is the @code{localstatedir} value used by your current installation (@pxref{The Store}, for information about this), usually @file{/var}.  Note that you will probably not run @command{make install} at the end (you don't have to) but it's still important to pass the right @code{localstatedir}."
+msgstr "Dann führen Sie wie gewohnt @command{./configure} aus. Achten Sie darauf, @code{--localstatedir=@var{Verzeichnis}} zu übergeben, wobei @var{Verzeichnis} der von Ihrer aktuellen Installation verwendete @code{localstatedir}-Wert ist (weitere Informationen siehe @ref{The Store}), im Normalfall geben Sie @file{/var} an. Denken Sie daran, dass Sie am Ende wahrscheinlich @emph{nicht} @command{make install} ausführen möchten (müssen Sie auch nicht), aber es ist dennoch wichtig, die richtige @code{localstatedir} zu übergeben."
 
 #. type: Plain text
-#: doc/contributing.texi:148
+#: doc/contributing.texi:133
 msgid "Finally, you have to invoke @code{make check} to run tests (@pxref{Running the Test Suite}).  If anything fails, take a look at installation instructions (@pxref{Installation})  or send a message to the @email{guix-devel@@gnu.org, mailing list}."
 msgstr "Zum Schluss müssen Sie @code{make check} aufrufen, um die Tests auszuführen (siehe @ref{Running the Test Suite}). Falls etwas fehlschlägt, werfen Sie einen Blick auf die Installationsanweisungen (siehe @ref{Installation}) oder senden Sie eine E-Mail an die @email{guix-devel@@gnu.org, Mailingliste}."
 
 #. type: Plain text
+#: doc/contributing.texi:136
+msgid "From there on, you can authenticate all the commits included in your checkout by running:"
+msgstr "Von da an können Sie alle Commits in Ihrem Checkout authentifizieren, indem Sie dies ausführen:"
+
+#. type: example
+#: doc/contributing.texi:139
+#, no-wrap
+msgid "make authenticate\n"
+msgstr "make authenticate\n"
+
+#. type: Plain text
+#: doc/contributing.texi:142
+msgid "The first run takes a couple of minutes, but subsequent runs are faster."
+msgstr "Die erste Ausführung dauert ein paar Minuten, aber nachfolgende Ausführungen gehen schneller."
+
+#. type: Plain text
+#: doc/contributing.texi:148
+msgid "Or, when your configuration for your local Git repository doesn't match the default one, you can provide the reference for the @code{keyring} branch through the variable @code{GUIX_GIT_KEYRING}.  The following example assumes that you have a Git remote called @samp{myremote} pointing to the official repository:"
+msgstr "Für den Fall, dass die Konfiguration Ihres lokal verfügbaren Git-Repositorys nicht der voreingestellten entspricht, können Sie die Referenz für den @code{keyring}-Branch über die Variable @code{GUIX_GIT_KEYRING} angeben. Im folgenden Beispiel nehmen wir an, Sie haben ein Remote-Repository namens @samp{myremote} eingerichtet, das auf das offizielle Guix-Repository verweist:"
+
+#. type: example
+#: doc/contributing.texi:151
+#, no-wrap
+msgid "make authenticate GUIX_GIT_KEYRING=myremote/keyring\n"
+msgstr "make authenticate GUIX_GIT_KEYRING=myremote/keyring\n"
+
+#. type: quotation
+#: doc/contributing.texi:153 doc/contributing.texi:1264 doc/guix.texi:547
+#: doc/guix.texi:596 doc/guix.texi:1667 doc/guix.texi:1914 doc/guix.texi:2125
+#: doc/guix.texi:2346 doc/guix.texi:2547 doc/guix.texi:3613 doc/guix.texi:4349
+#: doc/guix.texi:4363 doc/guix.texi:4445 doc/guix.texi:4675 doc/guix.texi:5494
+#: doc/guix.texi:5740 doc/guix.texi:5861 doc/guix.texi:5913 doc/guix.texi:8459
+#: doc/guix.texi:8529 doc/guix.texi:10193 doc/guix.texi:10233
+#: doc/guix.texi:10450 doc/guix.texi:10462 doc/guix.texi:12627
+#: doc/guix.texi:13202 doc/guix.texi:13958 doc/guix.texi:14923
+#: doc/guix.texi:16967 doc/guix.texi:17117 doc/guix.texi:23774
+#: doc/guix.texi:27081 doc/guix.texi:29038 doc/guix.texi:30452
+#: doc/guix.texi:30686 doc/guix.texi:30856 doc/guix.texi:30987
+#: doc/guix.texi:31089 doc/guix.texi:31185
+#, no-wrap
+msgid "Note"
+msgstr "Anmerkung"
+
+#. type: quotation
 #: doc/contributing.texi:157
+msgid "You are advised to run @command{make authenticate} after every @command{git pull} invocation.  This ensures you keep receiving valid changes to the repository."
+msgstr "Wir raten Ihnen dazu, nach jedem Aufruf von @command{git pull} auch @command{make authenticate} auszuführen. Das stellt sicher, dass Sie weiterhin nur gültige Änderungen in Ihr Repository übernehmen."
+
+#. type: Plain text
+#: doc/contributing.texi:167
 msgid "In order to keep a sane working environment, you will find it useful to test the changes made in your local source tree checkout without actually installing them.  So that you can distinguish between your ``end-user'' hat and your ``motley'' costume."
 msgstr "Um eine gesunde Arbeitsumgebung zu erhalten, ist es hilfreich, die im lokalen Quellbaum vorgenommenen Änderungen zunächst zu testen, ohne sie tatsächlich zu installieren. So können Sie zwischen Ihrem Endnutzer-„Straßenanzug“ und Ihrem „Faschingskostüm“ unterscheiden."
 
 #. type: Plain text
-#: doc/contributing.texi:168
-msgid "To that end, all the command-line tools can be used even if you have not run @code{make install}.  To do that, you first need to have an environment with all the dependencies available (@pxref{Building from Git}), and then simply prefix each command with @command{./pre-inst-env} (the @file{pre-inst-env} script lives in the top build tree of Guix; it is generated by @command{./configure}).  An example@footnote{The @option{-E} flag to @command{sudo} guarantees that @code{GUILE_LOAD_PATH} is correctly set such that @command{guix-daemon} and the tools it uses can find the Guile modules they need.}:"
-msgstr "Zu diesem Zweck können alle Befehlszeilenwerkzeuge auch schon benutzt werden, ohne dass Sie @code{make install} laufen lassen.  Dazu müssen Sie sich in einer Umgebung befinden, in der alle Abhängigkeiten von Guix verfügbar sind (siehe @ref{Building from Git}) und darin einfach vor jeden Befehl @command{./pre-inst-env} schreiben (das Skript @file{pre-inst-env} befindet sich auf oberster Ebene im Verzeichnis, wo Guix erstellt wird, wo es durch @command{./configure} erzeugt wird). Zum Beispiel so@footnote{Die Befehlszeilenoption @option{-E} von @command{sudo} stellt sicher, dass @code{GUILE_LOAD_PATH} richtig gesetzt wird, damit @command{guix-daemon} und die davon benutzten Werkzeuge die von ihnen benötigten Guile-Module finden können.}:"
+#: doc/contributing.texi:177
+msgid "To that end, all the command-line tools can be used even if you have not run @code{make install}.  To do that, you first need to have an environment with all the dependencies available (@pxref{Building from Git}), and then simply prefix each command with @command{./pre-inst-env} (the @file{pre-inst-env} script lives in the top build tree of Guix; it is generated by @command{./configure}).  As an example, here is how you would build the @code{hello} package as defined in your working tree (this assumes @command{guix-daemon} is already running on your system; it's OK if it's a different version):"
+msgstr "Zu diesem Zweck können alle Befehlszeilenwerkzeuge auch schon benutzt werden, ohne dass Sie @code{make install} laufen lassen.  Dazu müssen Sie sich in einer Umgebung befinden, in der alle Abhängigkeiten von Guix verfügbar sind (siehe @ref{Building from Git}) und darin einfach vor jeden Befehl @command{./pre-inst-env} schreiben (das Skript @file{pre-inst-env} befindet sich auf oberster Ebene im Verzeichnis, wo Guix erstellt wird, wo es durch @command{./configure} erzeugt wird). Zum Beispiel würden Sie so das Paket @code{hello} erstellen lassen, so wie es in der gegenwärtigen Kopie des Guix-Quellbaums definiert wurde (es wird angenommen, dass @command{guix-daemon} auf Ihrem System bereits läuft, auch wenn es eine andere Version ist):"
 
 #. type: example
-#: doc/contributing.texi:172
+#: doc/contributing.texi:180
 #, no-wrap
-msgid ""
-"$ sudo -E ./pre-inst-env guix-daemon --build-users-group=guixbuild\n"
-"$ ./pre-inst-env guix build hello\n"
-msgstr ""
-"$ sudo -E ./pre-inst-env guix-daemon --build-users-group=guixbuild\n"
-"$ ./pre-inst-env guix build hello\n"
+msgid "$ ./pre-inst-env guix build hello\n"
+msgstr "$ ./pre-inst-env guix build hello\n"
 
 #. type: Plain text
-#: doc/contributing.texi:176
+#: doc/contributing.texi:184
 msgid "Similarly, an example for a Guile session using the Guix modules:"
 msgstr "Entsprechend würden Sie dies eingeben, um eine Guile-Sitzung zu öffnen, die die Guix-Module benutzt:"
 
 #. type: example
-#: doc/contributing.texi:179
+#: doc/contributing.texi:187
 #, no-wrap
 msgid ""
 "$ ./pre-inst-env guile -c '(use-modules (guix utils)) (pk (%current-system))'\n"
@@ -382,30 +392,30 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/contributing.texi:181
+#: doc/contributing.texi:189
 #, no-wrap
 msgid ";;; (\"x86_64-linux\")\n"
 msgstr ";;; (\"x86_64-linux\")\n"
 
 #. type: cindex
-#: doc/contributing.texi:184
+#: doc/contributing.texi:192
 #, no-wrap
 msgid "REPL"
 msgstr "REPL"
 
 #. type: cindex
-#: doc/contributing.texi:185
+#: doc/contributing.texi:193
 #, no-wrap
 msgid "read-eval-print loop"
 msgstr "Lese-Auswerten-Schreiben-Schleife"
 
 #. type: Plain text
-#: doc/contributing.texi:188
+#: doc/contributing.texi:196
 msgid "@dots{} and for a REPL (@pxref{Using Guile Interactively,,, guile, Guile Reference Manual}):"
-msgstr "…@: und auf einer REPL (siehe @ref{Using Guile Interactively,,, guile, Guile Reference Manual}):"
+msgstr "…@: und auf einer REPL (siehe @ref{Using Guile Interactively,,, guile, Guile-Referenzhandbuch}):"
 
 #. type: example
-#: doc/contributing.texi:203
+#: doc/contributing.texi:211
 #, no-wrap
 msgid ""
 "$ ./pre-inst-env guile\n"
@@ -437,33 +447,44 @@ msgstr ""
 "$1 = 361\n"
 
 #. type: Plain text
-#: doc/contributing.texi:207
+#: doc/contributing.texi:219
+msgid "If you are hacking on the daemon and its supporting code or if @command{guix-daemon} is not already running on your system, you can launch it straight from the build tree@footnote{The @option{-E} flag to @command{sudo} guarantees that @code{GUILE_LOAD_PATH} is correctly set such that @command{guix-daemon} and the tools it uses can find the Guile modules they need.}:"
+msgstr "Wenn Sie am Daemon und damit zu tun habendem Code hacken oder wenn @command{guix-daemon} nicht bereits auf Ihrem System läuft, können Sie ihn direkt aus dem Verzeichnis heraus starten, wo Sie Guix erstellen lassen@footnote{Die Befehlszeilenoption @option{-E} von @command{sudo} stellt sicher, dass @code{GUILE_LOAD_PATH} richtig gesetzt wird, damit @command{guix-daemon} und die davon benutzten Werkzeuge die von ihnen benötigten Guile-Module finden können.}:"
+
+#. type: example
+#: doc/contributing.texi:222
+#, no-wrap
+msgid "$ sudo -E ./pre-inst-env guix-daemon --build-users-group=guixbuild\n"
+msgstr "$ sudo -E ./pre-inst-env guix-daemon --build-users-group=guixbuild\n"
+
+#. type: Plain text
+#: doc/contributing.texi:226
 msgid "The @command{pre-inst-env} script sets up all the environment variables necessary to support this, including @env{PATH} and @env{GUILE_LOAD_PATH}."
 msgstr "Das @command{pre-inst-env}-Skript richtet alle Umgebungsvariablen ein, die nötig sind, um dies zu ermöglichen, einschließlich @env{PATH} und @env{GUILE_LOAD_PATH}."
 
 #. type: Plain text
-#: doc/contributing.texi:212
+#: doc/contributing.texi:231
 msgid "Note that @command{./pre-inst-env guix pull} does @emph{not} upgrade the local source tree; it simply updates the @file{~/.config/guix/current} symlink (@pxref{Invoking guix pull}).  Run @command{git pull} instead if you want to upgrade your local source tree."
 msgstr "Beachten Sie, dass @command{./pre-inst-env guix pull} den lokalen Quellbaum @emph{nicht} aktualisiert; es aktualisiert lediglich die symbolische Verknüpfung @file{~/.config/guix/current} (siehe @ref{Invoking guix pull}). Um Ihren lokalen Quellbaum zu aktualisieren, müssen Sie stattdessen @command{git pull} benutzen."
 
 #. type: Plain text
-#: doc/contributing.texi:222
+#: doc/contributing.texi:241
 msgid "The Perfect Setup to hack on Guix is basically the perfect setup used for Guile hacking (@pxref{Using Guile in Emacs,,, guile, Guile Reference Manual}).  First, you need more than an editor, you need @url{https://www.gnu.org/software/emacs, Emacs}, empowered by the wonderful @url{https://nongnu.org/geiser/, Geiser}.  To set that up, run:"
-msgstr "Um perfekt für das Hacken an Guix eingerichtet zu sein, brauchen Sie an sich dasselbe wie um perfekt für das Hacken mit Guile (siehe @ref{Using Guile in Emacs,,, guile, Guile Reference Manual}). Zunächst brauchen Sie mehr als ein Textverarbeitungsprogramm, Sie brauchen @url{https://www.gnu.org/software/emacs, Emacs} zusammen mit den vom wunderbaren @url{https://nongnu.org/geiser/, Geiser} verliehenen Kräften. Um diese zu installieren, können Sie Folgendes ausführen:"
+msgstr "Um perfekt für das Hacken an Guix eingerichtet zu sein, brauchen Sie an sich dasselbe wie um perfekt für das Hacken mit Guile (siehe @ref{Using Guile in Emacs,,, guile, Guile-Referenzhandbuch}). Zunächst brauchen Sie mehr als ein Textverarbeitungsprogramm, Sie brauchen @url{https://www.gnu.org/software/emacs, Emacs} zusammen mit den vom wunderbaren @url{https://nongnu.org/geiser/, Geiser} verliehenen Kräften. Um diese zu installieren, können Sie Folgendes ausführen:"
 
 #. type: example
-#: doc/contributing.texi:225
+#: doc/contributing.texi:244
 #, no-wrap
 msgid "guix package -i emacs guile emacs-geiser\n"
 msgstr "guix package -i emacs guile emacs-geiser\n"
 
 #. type: Plain text
-#: doc/contributing.texi:234
+#: doc/contributing.texi:253
 msgid "Geiser allows for interactive and incremental development from within Emacs: code compilation and evaluation from within buffers, access to on-line documentation (docstrings), context-sensitive completion, @kbd{M-.} to jump to an object definition, a REPL to try out your code, and more (@pxref{Introduction,,, geiser, Geiser User Manual}).  For convenient Guix development, make sure to augment Guile’s load path so that it finds source files from your checkout:"
 msgstr "Geiser ermöglicht interaktive und inkrementelle Entwicklung aus Emacs heraus: Code kann in Puffern kompiliert und ausgewertet werden. Zugang zu Online-Dokumentation (Docstrings) steht ebenso zur Verfügung wie kontextabhängige Vervollständigung, @kbd{M-.} um zu einer Objektdefinition zu springen, eine REPL, um Ihren Code auszuprobieren, und mehr (siehe @ref{Introduction,,, geiser, Geiser User Manual}). Zur bequemen Guix-Entwicklung sollten Sie Guiles Ladepfad so ergänzen, dass die Quelldateien in Ihrem Checkout gefunden werden."
 
 #. type: lisp
-#: doc/contributing.texi:239
+#: doc/contributing.texi:258
 #, no-wrap
 msgid ""
 ";; @r{Assuming the Guix checkout is in ~/src/guix.}\n"
@@ -475,35 +496,35 @@ msgstr ""
 "  (add-to-list 'geiser-guile-load-path \"~/src/guix\"))\n"
 
 #. type: Plain text
-#: doc/contributing.texi:247
+#: doc/contributing.texi:266
 msgid "To actually edit the code, Emacs already has a neat Scheme mode.  But in addition to that, you must not miss @url{https://www.emacswiki.org/emacs/ParEdit, Paredit}.  It provides facilities to directly operate on the syntax tree, such as raising an s-expression or wrapping it, swallowing or rejecting the following s-expression, etc."
 msgstr "Um den Code tatsächlich zu bearbeiten, bietet Emacs schon einen netten Scheme-Modus. Aber Sie dürfen auch @url{https://www.emacswiki.org/emacs/ParEdit, Paredit} nicht verpassen. Es bietet Hilfsmittel, um direkt mit dem Syntaxbaum zu arbeiten, und kann so zum Beispiel einen S-Ausdruck hochheben oder ihn umhüllen, ihn verschlucken oder den nachfolgenden S-Ausdruck verwerfen, etc."
 
 #. type: cindex
-#: doc/contributing.texi:248
+#: doc/contributing.texi:267
 #, no-wrap
 msgid "code snippets"
 msgstr "Code-Schnipsel"
 
 #. type: cindex
-#: doc/contributing.texi:249
+#: doc/contributing.texi:268
 #, no-wrap
 msgid "templates"
 msgstr "Vorlagen"
 
 #. type: cindex
-#: doc/contributing.texi:250
+#: doc/contributing.texi:269
 #, no-wrap
 msgid "reducing boilerplate"
 msgstr "Tipparbeit sparen"
 
 #. type: Plain text
-#: doc/contributing.texi:257
+#: doc/contributing.texi:276
 msgid "We also provide templates for common git commit messages and package definitions in the @file{etc/snippets} directory.  These templates can be used with @url{https://joaotavora.github.io/yasnippet/, YASnippet} to expand short trigger strings to interactive text snippets.  You may want to add the snippets directory to the @var{yas-snippet-dirs} variable in Emacs."
 msgstr "Wir bieten auch Vorlagen für häufige Git-Commit-Nachrichten und Paketdefinitionen im Verzeichnis @file{etc/snippets}. Diese Vorlagen können mit @url{https://joaotavora.github.io/yasnippet/, YASnippet} zusammen benutzt werden, um kurze Auslöse-Zeichenketten zu interaktiven Textschnipseln umzuschreiben. Vielleicht möchten Sie das Schnipselverzeichnis zu Ihrer @var{yas-snippet-dirs}-Variablen in Emacs hinzufügen."
 
 #. type: lisp
-#: doc/contributing.texi:262
+#: doc/contributing.texi:281
 #, no-wrap
 msgid ""
 ";; @r{Assuming the Guix checkout is in ~/src/guix.}\n"
@@ -515,40 +536,40 @@ msgstr ""
 "  (add-to-list 'yas-snippet-dirs \"~/src/guix/etc/snippets\"))\n"
 
 #. type: Plain text
-#: doc/contributing.texi:270
+#: doc/contributing.texi:289
 msgid "The commit message snippets depend on @url{https://magit.vc/, Magit} to display staged files.  When editing a commit message type @code{add} followed by @kbd{TAB} to insert a commit message template for adding a package; type @code{update} followed by @kbd{TAB} to insert a template for updating a package; type @code{https} followed by @kbd{TAB} to insert a template for changing the home page URI of a package to HTTPS."
 msgstr "Die Schnipsel für Commit-Nachrichten setzen @url{https://magit.vc/, Magit} voraus, um zum Commit vorgemerkte Dateien anzuzeigen. Wenn Sie eine Commit-Nachricht bearbeiten, können Sie @code{add} gefolgt von @kbd{TAB} eintippen, um eine Commit-Nachrichten-Vorlage für das Hinzufügen eines Pakets zu erhalten; tippen Sie @code{update} gefolgt von @kbd{TAB} ein, um eine Vorlage zum Aktualisieren eines Pakets zu bekommen; tippen Sie @code{https} gefolgt von @kbd{TAB} ein, um eine Vorlage zum Ändern der Homepage-URI eines Pakets auf HTTPS einzufügen."
 
 #. type: Plain text
-#: doc/contributing.texi:276
+#: doc/contributing.texi:295
 msgid "The main snippet for @code{scheme-mode} is triggered by typing @code{package...} followed by @kbd{TAB}.  This snippet also inserts the trigger string @code{origin...}, which can be expanded further.  The @code{origin} snippet in turn may insert other trigger strings ending on @code{...}, which also can be expanded further."
 msgstr "Das Hauptschnipsel für @code{scheme-mode} wird ausgelöst, indem Sie @code{package...} gefolgt von @kbd{TAB} eintippen. Dieses Snippet fügt auch die Auslöse-Zeichenkette @code{origin...} ein, die danach weiter umgeschrieben werden kann. Das @code{origin}-Schnipsel kann wiederum andere Auslöse-Zeichenketten einfügen, die alle auf @code{...} enden, was selbst wieder weiter umgeschrieben werden kann."
 
 #. type: cindex
-#: doc/contributing.texi:277
+#: doc/contributing.texi:296
 #, no-wrap
 msgid "insert or update copyright"
 msgstr "Copyright einfügen oder aktualisieren"
 
 #. type: code{#1}
-#: doc/contributing.texi:278
+#: doc/contributing.texi:297
 #, no-wrap
 msgid "M-x guix-copyright"
 msgstr "M-x guix-copyright"
 
 #. type: code{#1}
-#: doc/contributing.texi:279
+#: doc/contributing.texi:298
 #, no-wrap
 msgid "M-x copyright-update"
 msgstr "M-x copyright-update"
 
 #. type: Plain text
-#: doc/contributing.texi:283
-msgid "Additionaly we provide insertion and automatic update of a copyright in @file{etc/copyright.el}.  You may want to set your full name, mail, and load a file."
+#: doc/contributing.texi:302
+msgid "We additionally provide insertion and automatic update of a copyright in @file{etc/copyright.el}.  You may want to set your full name, mail, and load a file."
 msgstr "Außerden stellen wir automatisches Einfügen und Aktualisieren von Urheberrechtsinformationen („Copyright“) über @file{etc/copyright.el} zur Verfügung. Dazu müssten Sie Ihren vollständigen Namen mit E-Mail-Adresse festlegen und eine Datei laden."
 
 #. type: lisp
-#: doc/contributing.texi:289
+#: doc/contributing.texi:308
 #, no-wrap
 msgid ""
 "(setq user-full-name \"Alice Doe\")\n"
@@ -562,17 +583,17 @@ msgstr ""
 "(load-file \"~/src/guix/etc/copyright.el\")\n"
 
 #. type: Plain text
-#: doc/contributing.texi:292
+#: doc/contributing.texi:311
 msgid "To insert a copyright at the current line invoke @code{M-x guix-copyright}."
 msgstr "Um an der aktuellen Zeile Copyright-Informationen einzufügen, rufen Sie @code{M-x guix-copyright} auf."
 
 #. type: Plain text
-#: doc/contributing.texi:294
+#: doc/contributing.texi:313
 msgid "To update a copyright you need to specify a @code{copyright-names-regexp}."
 msgstr "Um Copyright-Informationen aktualisieren zu können, müssen Sie einen regulären Ausdruck @code{copyright-names-regexp} angeben."
 
 #. type: lisp
-#: doc/contributing.texi:298
+#: doc/contributing.texi:317
 #, no-wrap
 msgid ""
 "(setq copyright-names-regexp\n"
@@ -582,252 +603,264 @@ msgstr ""
 "      (format \"%s <%s>\" user-full-name user-mail-address))\n"
 
 #. type: Plain text
-#: doc/contributing.texi:304
+#: doc/contributing.texi:323
 msgid "You can check if your copyright is up to date by evaluating @code{M-x copyright-update}.  If you want to do it automatically after each buffer save then add @code{(add-hook 'after-save-hook 'copyright-update)} in Emacs."
 msgstr "Sie können prüfen, ob Ihre Urheberrechtsinformationen aktuell sind, indem Sie @code{M-x copyright-update} auswerten. Wenn Sie möchten, dass dies automatisch nach jedem Speichern des Puffers geschieht, fügen Sie @code{(add-hook 'after-save-hook 'copyright-update)} in Emacs hinzu."
 
 #. type: cindex
-#: doc/contributing.texi:308
+#: doc/contributing.texi:327
 #, no-wrap
 msgid "packages, creating"
 msgstr "Pakete definieren"
 
 #. type: Plain text
-#: doc/contributing.texi:312
+#: doc/contributing.texi:331
 msgid "The GNU distribution is nascent and may well lack some of your favorite packages.  This section describes how you can help make the distribution grow."
 msgstr "Die GNU-Distribution ist noch sehr jung und einige Ihrer Lieblingspakete könnten noch fehlen. Dieser Abschnitt beschreibt, wie Sie dabei helfen können, die Distribution wachsen zu lassen."
 
 #. type: Plain text
-#: doc/contributing.texi:320
+#: doc/contributing.texi:339
 msgid "Free software packages are usually distributed in the form of @dfn{source code tarballs}---typically @file{tar.gz} files that contain all the source files.  Adding a package to the distribution means essentially two things: adding a @dfn{recipe} that describes how to build the package, including a list of other packages required to build it, and adding @dfn{package metadata} along with that recipe, such as a description and licensing information."
 msgstr "Pakete mit freier Software werden normalerweise in Form von @dfn{Tarballs mit dem Quellcode} angeboten — typischerweise in @file{tar.gz}-Archivdateien, in denen alle Quelldateien enthalten sind. Ein Paket zur Distribution hinzuzufügen, bedeutet also zweierlei Dinge: Zum einen fügt man ein @dfn{Rezept} ein, das beschreibt, wie das Paket erstellt werden kann, einschließlich einer Liste von anderen Paketen, die für diese Erstellung gebraucht werden, zum anderen fügt man @dfn{Paketmetadaten} zum Rezept hinzu, wie zum Beispiel eine Beschreibung und Lizenzinformationen."
 
 #. type: Plain text
-#: doc/contributing.texi:329
+#: doc/contributing.texi:348
 msgid "In Guix all this information is embodied in @dfn{package definitions}.  Package definitions provide a high-level view of the package.  They are written using the syntax of the Scheme programming language; in fact, for each package we define a variable bound to the package definition, and export that variable from a module (@pxref{Package Modules}).  However, in-depth Scheme knowledge is @emph{not} a prerequisite for creating packages.  For more information on package definitions, @pxref{Defining Packages}."
 msgstr "In Guix sind all diese Informationen ein Teil der @dfn{Paketdefinitionen}. In Paketdefinitionen hat man eine abstrahierte, hochsprachliche Sicht auf das Paket. Sie werden in der Syntax der Scheme-Programmiersprache verfasst; tatsächlich definieren wir für jedes Paket eine Variable und binden diese an dessen Definition, um die Variable anschließend aus einem Modul heraus zu exportieren (siehe @ref{Package Modules}). Allerdings ist @emph{kein} tiefgehendes Wissen über Scheme erforderlich, um Pakete zu erstellen. Mehr Informationen über Paketdefinitionen finden Sie im Abschnitt @ref{Defining Packages}."
 
 #. type: Plain text
-#: doc/contributing.texi:335
+#: doc/contributing.texi:354
 msgid "Once a package definition is in place, stored in a file in the Guix source tree, it can be tested using the @command{guix build} command (@pxref{Invoking guix build}).  For example, assuming the new package is called @code{gnew}, you may run this command from the Guix build tree (@pxref{Running Guix Before It Is Installed}):"
 msgstr "Eine fertige Paketdefinition kann, nachdem sie in eine Datei im Quell-Verzeichnisbaum von Guix eingesetzt wurde, mit Hilfe des Befehls @command{guix build} getestet werden (siehe @ref{Invoking guix build}). Wenn das Paket zum Beispiel den Namen @code{gnew} trägt, können Sie folgenden Befehl aus dem Erstellungs-Verzeichnisbaum von Guix heraus ausführen (siehe @ref{Running Guix Before It Is Installed}):"
 
 #. type: example
-#: doc/contributing.texi:338
+#: doc/contributing.texi:357
 #, no-wrap
 msgid "./pre-inst-env guix build gnew --keep-failed\n"
 msgstr "./pre-inst-env guix build gnew --keep-failed\n"
 
 #. type: Plain text
-#: doc/contributing.texi:344
+#: doc/contributing.texi:363
 msgid "Using @code{--keep-failed} makes it easier to debug build failures since it provides access to the failed build tree.  Another useful command-line option when debugging is @code{--log-file}, to access the build log."
 msgstr "Wenn Sie @code{--keep-failed} benutzen, ist es leichter, fehlgeschlagene Erstellungen zu untersuchen, weil dann der Verzeichnisbaum der fehlgeschlagenen Erstellung zugänglich bleibt. Eine andere nützliche Befehlszeilenoption bei der Fehlersuche ist @code{--log-file}, womit das Erstellungsprotokoll eingesehen werden kann."
 
 #. type: Plain text
-#: doc/contributing.texi:349
+#: doc/contributing.texi:368
 msgid "If the package is unknown to the @command{guix} command, it may be that the source file contains a syntax error, or lacks a @code{define-public} clause to export the package variable.  To figure it out, you may load the module from Guile to get more information about the actual error:"
 msgstr "Wenn der @command{guix}-Befehl das Paket nicht erkennt, kann es daran liegen, dass die Quelldatei einen Syntaxfehler hat oder ihr eine @code{define-public}-Klausel fehlt, die die Paketvariable exportiert. Um das herauszufinden, können Sie das Modul aus Guile heraus laden, um mehr Informationen über den tatsächlichen Fehler zu bekommen:"
 
 #. type: example
-#: doc/contributing.texi:352
+#: doc/contributing.texi:371
 #, no-wrap
 msgid "./pre-inst-env guile -c '(use-modules (gnu packages gnew))'\n"
 msgstr "./pre-inst-env guile -c '(use-modules (gnu packages gnew))'\n"
 
 #. type: Plain text
-#: doc/contributing.texi:359
-msgid "Once your package builds correctly, please send us a patch (@pxref{Submitting Patches}).  Well, if you need help, we will be happy to help you too.  Once the patch is committed in the Guix repository, the new package automatically gets built on the supported platforms by @url{@value{SUBSTITUTE-SERVER}, our continuous integration system}."
-msgstr "Sobald Ihr Paket erfolgreich erstellt werden kann, schicken Sie uns bitte einen Patch (siehe @ref{Submitting Patches}). Wenn Sie dabei Hilfe brauchen sollten, helfen wir gerne. Ab dem Zeitpunkt, zu dem der Patch als Commit ins Guix-Repository eingepflegt wurde, wird das neue Paket automatisch durch @url{@value{SUBSTITUTE-SERVER}, unser System zur Kontinuierlichen Integration} auf allen unterstützten Plattformen erstellt."
+#: doc/contributing.texi:378
+msgid "Once your package builds correctly, please send us a patch (@pxref{Submitting Patches}).  Well, if you need help, we will be happy to help you too.  Once the patch is committed in the Guix repository, the new package automatically gets built on the supported platforms by @url{@value{SUBSTITUTE-URL}, our continuous integration system}."
+msgstr "Sobald Ihr Paket erfolgreich erstellt werden kann, schicken Sie uns bitte einen Patch (siehe @ref{Submitting Patches}). Wenn Sie dabei Hilfe brauchen sollten, helfen wir gerne. Ab dem Zeitpunkt, zu dem der Patch als Commit ins Guix-Repository eingepflegt wurde, wird das neue Paket automatisch durch @url{@value{SUBSTITUTE-URL}, unser System zur Kontinuierlichen Integration} auf allen unterstützten Plattformen erstellt."
 
 #. type: cindex
-#: doc/contributing.texi:360
+#: doc/contributing.texi:379
 #, no-wrap
 msgid "substituter"
 msgstr "Substituierer"
 
 #. type: Plain text
-#: doc/contributing.texi:367
+#: doc/contributing.texi:386
 msgid "Users can obtain the new package definition simply by running @command{guix pull} (@pxref{Invoking guix pull}).  When @code{@value{SUBSTITUTE-SERVER}} is done building the package, installing the package automatically downloads binaries from there (@pxref{Substitutes}).  The only place where human intervention is needed is to review and apply the patch."
 msgstr "Benutzern steht die neue Paketdefinition zur Verfügung, nachdem sie das nächste Mal @command{guix pull} ausgeführt haben (siehe @ref{Invoking guix pull}). Wenn @code{@value{SUBSTITUTE-SERVER}} selbst damit fertig ist, das Paket zu erstellen, werden bei der Installation automatisch Binärdateien von dort heruntergeladen (siehe @ref{Substitutes}). Menschliches Eingreifen muss nur stattfinden, um den Patch zu überprüfen und anzuwenden."
 
 #. type: subsection
-#: doc/contributing.texi:379 doc/contributing.texi:381
-#: doc/contributing.texi:382
+#: doc/contributing.texi:399 doc/contributing.texi:401
+#: doc/contributing.texi:402
 #, no-wrap
 msgid "Software Freedom"
 msgstr "Software-Freiheit"
 
 #. type: menuentry
-#: doc/contributing.texi:379
+#: doc/contributing.texi:399
 msgid "What may go into the distribution."
 msgstr "Was in die Distribution aufgenommen werden darf."
 
 #. type: subsection
-#: doc/contributing.texi:379 doc/contributing.texi:409
-#: doc/contributing.texi:410
+#: doc/contributing.texi:399 doc/contributing.texi:429
+#: doc/contributing.texi:430
 #, no-wrap
 msgid "Package Naming"
 msgstr "Paketbenennung"
 
 #. type: menuentry
-#: doc/contributing.texi:379
+#: doc/contributing.texi:399
 msgid "What's in a name?"
 msgstr "Was macht einen Namen aus?"
 
 #. type: subsection
-#: doc/contributing.texi:379 doc/contributing.texi:434
-#: doc/contributing.texi:435
+#: doc/contributing.texi:399 doc/contributing.texi:454
+#: doc/contributing.texi:455
 #, no-wrap
 msgid "Version Numbers"
 msgstr "Versionsnummern"
 
 #. type: menuentry
-#: doc/contributing.texi:379
+#: doc/contributing.texi:399
 msgid "When the name is not enough."
 msgstr "Wenn der Name noch nicht genug ist."
 
 #. type: subsection
-#: doc/contributing.texi:379 doc/contributing.texi:525
-#: doc/contributing.texi:526
+#: doc/contributing.texi:399 doc/contributing.texi:545
+#: doc/contributing.texi:546
 #, no-wrap
 msgid "Synopses and Descriptions"
 msgstr "Zusammenfassungen und Beschreibungen"
 
 #. type: menuentry
-#: doc/contributing.texi:379
+#: doc/contributing.texi:399
 msgid "Helping users find the right package."
 msgstr "Den Nutzern helfen, das richtige Paket zu finden."
 
 #. type: subsection
-#: doc/contributing.texi:379 doc/contributing.texi:605
-#: doc/contributing.texi:606
+#: doc/contributing.texi:399 doc/contributing.texi:624
+#: doc/contributing.texi:625
+#, no-wrap
+msgid "Snippets versus Phases"
+msgstr "„Snippets“ oder Phasen"
+
+#. type: menuentry
+#: doc/contributing.texi:399
+msgid "Whether to use a snippet, or a build phase."
+msgstr "Benutzt man Code-Schnipsel oder eine Erstellungsphase?"
+
+#. type: subsection
+#: doc/contributing.texi:399 doc/contributing.texi:639
+#: doc/contributing.texi:640
 #, no-wrap
 msgid "Python Modules"
 msgstr "Python-Module"
 
 #. type: menuentry
-#: doc/contributing.texi:379
+#: doc/contributing.texi:399
 msgid "A touch of British comedy."
 msgstr "Ein Touch britischer Comedy."
 
 #. type: subsection
-#: doc/contributing.texi:379 doc/contributing.texi:681
-#: doc/contributing.texi:682
+#: doc/contributing.texi:399 doc/contributing.texi:715
+#: doc/contributing.texi:716
 #, no-wrap
 msgid "Perl Modules"
 msgstr "Perl-Module"
 
 #. type: menuentry
-#: doc/contributing.texi:379
+#: doc/contributing.texi:399
 msgid "Little pearls."
 msgstr "Kleine Perlen."
 
 #. type: subsection
-#: doc/contributing.texi:379 doc/contributing.texi:697
-#: doc/contributing.texi:698
+#: doc/contributing.texi:399 doc/contributing.texi:731
+#: doc/contributing.texi:732
 #, no-wrap
 msgid "Java Packages"
 msgstr "Java-Pakete"
 
 #. type: menuentry
-#: doc/contributing.texi:379
+#: doc/contributing.texi:399
 msgid "Coffee break."
 msgstr "Kaffeepause."
 
 #. type: subsection
-#: doc/contributing.texi:379 doc/contributing.texi:717
-#: doc/contributing.texi:718
+#: doc/contributing.texi:399 doc/contributing.texi:751
+#: doc/contributing.texi:752
 #, no-wrap
 msgid "Rust Crates"
 msgstr "Rust-Crates"
 
 #. type: menuentry
-#: doc/contributing.texi:379
+#: doc/contributing.texi:399
 msgid "Beware of oxidation."
 msgstr "Umgang mit Oxidation."
 
 #. type: subsection
-#: doc/contributing.texi:379 doc/contributing.texi:751
-#: doc/contributing.texi:752
+#: doc/contributing.texi:399 doc/contributing.texi:785
+#: doc/contributing.texi:786
 #, no-wrap
 msgid "Fonts"
 msgstr "Schriftarten"
 
 #. type: menuentry
-#: doc/contributing.texi:379
+#: doc/contributing.texi:399
 msgid "Fond of fonts."
 msgstr "Schriften verschriftlicht."
 
 #. type: cindex
-#: doc/contributing.texi:385
+#: doc/contributing.texi:405
 #, no-wrap
 msgid "free software"
 msgstr "freie Software"
 
 #. type: Plain text
-#: doc/contributing.texi:393
+#: doc/contributing.texi:413
 msgid "The GNU operating system has been developed so that users can have freedom in their computing.  GNU is @dfn{free software}, meaning that users have the @url{https://www.gnu.org/philosophy/free-sw.html,four essential freedoms}: to run the program, to study and change the program in source code form, to redistribute exact copies, and to distribute modified versions.  Packages found in the GNU distribution provide only software that conveys these four freedoms."
 msgstr "Das GNU-Betriebssystem wurde entwickelt, um Menschen Freiheit zu ermöglichen, wie sie ihre Rechengeräte benutzen. GNU ist @dfn{freie Software}, was bedeutet, dass Benutzer die @url{https://www.gnu.org/philosophy/free-sw.de.html,vier wesentlichen Freiheiten} haben: das Programm auszuführen, es zu untersuchen, das Programm in Form seines Quellcodes anzupassen und exakte Kopien ebenso wie modifizierte Versionen davon an andere weiterzugeben. Die Pakete, die Sie in der GNU-Distribution finden, stellen ausschließlich solche Software zur Verfügung, die Ihnen diese vier Freiheiten gewährt."
 
 #. type: Plain text
-#: doc/contributing.texi:399
+#: doc/contributing.texi:419
 msgid "In addition, the GNU distribution follow the @url{https://www.gnu.org/distros/free-system-distribution-guidelines.html,free software distribution guidelines}.  Among other things, these guidelines reject non-free firmware, recommendations of non-free software, and discuss ways to deal with trademarks and patents."
 msgstr "Außerdem befolgt die GNU-Distribution die @url{https://www.gnu.org/distros/free-system-distribution-guidelines.de.html,Richtlinien für freie Systemverteilungen}. Unter anderem werden unfreie Firmware sowie Empfehlungen von unfreier Software abgelehnt und Möglichkeiten zum Umgang mit Markenzeichen und Patenten werden diskutiert."
 
 #. type: Plain text
-#: doc/contributing.texi:407
+#: doc/contributing.texi:427
 msgid "Some otherwise free upstream package sources contain a small and optional subset that violates the above guidelines, for instance because this subset is itself non-free code.  When that happens, the offending items are removed with appropriate patches or code snippets in the @code{origin} form of the package (@pxref{Defining Packages}).  This way, @code{guix build --source} returns the ``freed'' source rather than the unmodified upstream source."
 msgstr "Ansonsten freier Paketquellcode von manchen Anbietern enthält einen kleinen und optionalen Teil, der diese Richtlinien verletzt. Zum Beispiel kann dieser Teil selbst unfreier Code sein. Wenn das vorkommt, wird der sie verletzende Teil mit angemessenen Patches oder Code-Schnipseln innerhalb der @code{origin}-Form des Pakets entfernt (siehe @ref{Defining Packages}). Dadurch liefert Ihnen @code{guix build --source} nur den „befreiten“ Quellcode und nicht den unmodifizierten Quellcode des Anbieters."
 
 #. type: cindex
-#: doc/contributing.texi:412
+#: doc/contributing.texi:432
 #, no-wrap
 msgid "package name"
 msgstr "Paketname"
 
 #. type: Plain text
-#: doc/contributing.texi:420
+#: doc/contributing.texi:440
 msgid "A package has actually two names associated with it: First, there is the name of the @emph{Scheme variable}, the one following @code{define-public}.  By this name, the package can be made known in the Scheme code, for instance as input to another package.  Second, there is the string in the @code{name} field of a package definition.  This name is used by package management commands such as @command{guix package} and @command{guix build}."
 msgstr "Tatsächlich sind mit jedem Paket zwei Namen assoziiert: Zum einen gibt es den Namen der @emph{Scheme-Variablen}, der direkt nach @code{define-public} im Code steht. Mit diesem Namen kann das Paket im Scheme-Code nutzbar gemacht und zum Beispiel als Eingabe eines anderen Pakets benannt werden. Zum anderen gibt es die Zeichenkette im @code{name}-Feld einer Paketdefinition. Dieser Name wird von Paketverwaltungsbefehlen wie @command{guix package} und @command{guix build} benutzt."
 
 #. type: Plain text
-#: doc/contributing.texi:425
+#: doc/contributing.texi:445
 msgid "Both are usually the same and correspond to the lowercase conversion of the project name chosen upstream, with underscores replaced with hyphens.  For instance, GNUnet is available as @code{gnunet}, and SDL_net as @code{sdl-net}."
 msgstr "Meistens sind die beiden identisch und ergeben sich aus einer Umwandlung des vom Anbieter verwendeten Projektnamens in Kleinbuchstaben, bei der Unterstriche durch Bindestriche ersetzt werden. Zum Beispiel wird GNUnet unter dem Paketnamen @code{gnunet} angeboten und SDL_net als @code{sdl-net}."
 
 #. type: Plain text
-#: doc/contributing.texi:430
+#: doc/contributing.texi:450
 msgid "We do not add @code{lib} prefixes for library packages, unless these are already part of the official project name.  But @pxref{Python Modules} and @ref{Perl Modules} for special rules concerning modules for the Python and Perl languages."
 msgstr "An Bibliothekspakete hängen wir vorne kein @code{lib} als Präfix an, solange es nicht Teil des offiziellen Projektnamens ist. Beachten Sie aber die Abschnitte @ref{Python Modules} und @ref{Perl Modules}, in denen Sonderregeln für Module der Programmiersprachen Python und Perl beschrieben sind."
 
 #. type: Plain text
-#: doc/contributing.texi:432
+#: doc/contributing.texi:452
 msgid "Font package names are handled differently, @pxref{Fonts}."
 msgstr "Auch Pakete mit Schriftarten werden anders behandelt, siehe @ref{Fonts}."
 
 #. type: cindex
-#: doc/contributing.texi:437
+#: doc/contributing.texi:457
 #, no-wrap
 msgid "package version"
 msgstr "Paketversion"
 
 #. type: Plain text
-#: doc/contributing.texi:446
+#: doc/contributing.texi:466
 msgid "We usually package only the latest version of a given free software project.  But sometimes, for instance for incompatible library versions, two (or more) versions of the same package are needed.  These require different Scheme variable names.  We use the name as defined in @ref{Package Naming} for the most recent version; previous versions use the same name, suffixed by @code{-} and the smallest prefix of the version number that may distinguish the two versions."
 msgstr "Normalerweise stellen wir nur für die neueste Version eines Freie-Software-Projekts ein Paket bereit. Manchmal gibt es allerdings Fälle wie zum Beispiel untereinander inkompatible Bibliotheksversionen, so dass zwei (oder mehr) Versionen desselben Pakets angeboten werden müssen. In diesem Fall müssen wir verschiedene Scheme-Variablennamen benutzen. Wir benutzen dann für die neueste Version den Namen, wie er im Abschnitt @ref{Package Naming} festgelegt wird, und geben vorherigen Versionen denselben Namen mit einem zusätzlichen Suffix aus @code{-} gefolgt vom kürzesten Präfix der Versionsnummer, mit dem noch immer zwei Versionen unterschieden werden können."
 
 #. type: Plain text
-#: doc/contributing.texi:449
+#: doc/contributing.texi:469
 msgid "The name inside the package definition is the same for all versions of a package and does not contain any version number."
 msgstr "Der Name innerhalb der Paketdefinition ist hingegen derselbe für alle Versionen eines Pakets und enthält keine Versionsnummer."
 
 #. type: Plain text
-#: doc/contributing.texi:451
+#: doc/contributing.texi:471
 msgid "For instance, the versions 2.24.20 and 3.9.12 of GTK+ may be packaged as follows:"
 msgstr "Zum Beispiel können für GTK in den Versionen 2.24.20 und 3.9.12 Pakete wie folgt geschrieben werden:"
 
 #. type: lisp
-#: doc/contributing.texi:463
+#: doc/contributing.texi:483
 #, no-wrap
 msgid ""
 "(define-public gtk+\n"
@@ -853,12 +886,12 @@ msgstr ""
 "    …))\n"
 
 #. type: Plain text
-#: doc/contributing.texi:465
+#: doc/contributing.texi:485
 msgid "If we also wanted GTK+ 3.8.2, this would be packaged as"
 msgstr "Wenn wir auch GTK 3.8.2 wollten, würden wir das Paket schreiben als"
 
 #. type: lisp
-#: doc/contributing.texi:471
+#: doc/contributing.texi:491
 #, no-wrap
 msgid ""
 "(define-public gtk+-3.8\n"
@@ -874,23 +907,23 @@ msgstr ""
 "    …))\n"
 
 #. type: cindex
-#: doc/contributing.texi:475
+#: doc/contributing.texi:495
 #, no-wrap
 msgid "version number, for VCS snapshots"
 msgstr "Versionsnummer, bei Snapshots aus Versionskontrolle"
 
 #. type: Plain text
-#: doc/contributing.texi:481
+#: doc/contributing.texi:501
 msgid "Occasionally, we package snapshots of upstream's version control system (VCS) instead of formal releases.  This should remain exceptional, because it is up to upstream developers to clarify what the stable release is.  Yet, it is sometimes necessary.  So, what should we put in the @code{version} field?"
 msgstr "Gelegentlich fügen wir auch Pakete für Snapshots aus dem Versionskontrollsystem des Anbieters statt formaler Veröffentlichungen zur Distribution hinzu. Das sollte die Ausnahme bleiben, weil die Entwickler selbst klarstellen sollten, welche Version als die stabile Veröffentlichung gelten sollte, ab und zu ist es jedoch notwendig. Was also sollten wir dann im @code{version}-Feld eintragen?"
 
 #. type: Plain text
-#: doc/contributing.texi:489
+#: doc/contributing.texi:509
 msgid "Clearly, we need to make the commit identifier of the VCS snapshot visible in the version string, but we also need to make sure that the version string is monotonically increasing so that @command{guix package --upgrade} can determine which version is newer.  Since commit identifiers, notably with Git, are not monotonically increasing, we add a revision number that we increase each time we upgrade to a newer snapshot.  The resulting version string looks like this:"
 msgstr "Offensichtlich muss der Bezeichner des Commits, den wir als Snapshot aus dem Versionskontrollsystem nehmen, in der Versionszeichenkette zu erkennen sein, aber wir müssen auch sicherstellen, dass die Version monoton steigend ist, damit @command{guix package --upgrade} feststellen kann, welche Version die neuere ist. Weil Commit-Bezeichner, insbesondere bei Git, nicht monoton steigen, müssen wir eine Revisionsnummer hinzufügen, die wir jedes Mal erhöhen, wenn wir das Paket auf einen neueren Snapshot aktualisieren. Die sich ergebende Versionszeichenkette sieht dann so aus:"
 
 #. type: example
-#: doc/contributing.texi:498
+#: doc/contributing.texi:518
 #, no-wrap
 msgid ""
 "2.0.11-3.cabba9e\n"
@@ -910,12 +943,12 @@ msgstr ""
 "die neueste Version, die der Anbieter veröffentlicht hat\n"
 
 #. type: Plain text
-#: doc/contributing.texi:507
-msgid "It is a good idea to strip commit identifiers in the @code{version} field to, say, 7 digits.  It avoids an aesthetic annoyance (assuming aesthetics have a role to play here) as well as problems related to OS limits such as the maximum shebang length (127 bytes for the Linux kernel.)  It is best to use the full commit identifiers in @code{origin}s, though, to avoid ambiguities.  A typical package definition may look like this:"
-msgstr "Es ist eine gute Idee, die Commit-Bezeichner im @code{version}-Feld auf, sagen wir, 7 Ziffern zu beschränken. Das sieht besser aus (angenommen, das sollte hier eine Rolle spielen) und vermeidet Probleme, die mit der maximalen Länge von Shebangs zu tun haben (127 Bytes beim Linux-Kernel). Am besten benutzt man jedoch den vollständigen Commit-Bezeichner in @code{origin}s, um Mehrdeutigkeiten zu vermeiden. Eine typische Paketdefinition könnte so aussehen:"
+#: doc/contributing.texi:527
+msgid "It is a good idea to strip commit identifiers in the @code{version} field to, say, 7 digits.  It avoids an aesthetic annoyance (assuming aesthetics have a role to play here) as well as problems related to OS limits such as the maximum shebang length (127 bytes for the Linux kernel).  It is best to use the full commit identifiers in @code{origin}s, though, to avoid ambiguities.  A typical package definition may look like this:"
+msgstr "Es ist eine gute Idee, die Commit-Bezeichner im @code{version}-Feld auf, sagen wir, 7 Ziffern zu beschränken. Das sieht besser aus (angenommen, das sollte hier eine Rolle spielen) und vermeidet Probleme, die mit der maximalen Länge von Shebangs zu tun haben (127 Bytes beim Linux-Kernel). Am besten benutzen Sie jedoch den vollständigen Commit-Bezeichner in @code{origin}s, um Mehrdeutigkeiten zu vermeiden. Eine typische Paketdefinition könnte so aussehen:"
 
 #. type: lisp
-#: doc/contributing.texi:523
+#: doc/contributing.texi:543
 #, no-wrap
 msgid ""
 "(define my-package\n"
@@ -949,60 +982,60 @@ msgstr ""
 "      )))\n"
 
 #. type: cindex
-#: doc/contributing.texi:528
+#: doc/contributing.texi:548
 #, no-wrap
 msgid "package description"
 msgstr "Paketbeschreibung"
 
 #. type: cindex
-#: doc/contributing.texi:529
+#: doc/contributing.texi:549
 #, no-wrap
 msgid "package synopsis"
 msgstr "Paketzusammenfassung"
 
 #. type: Plain text
-#: doc/contributing.texi:536
+#: doc/contributing.texi:556
 msgid "As we have seen before, each package in GNU@tie{}Guix includes a synopsis and a description (@pxref{Defining Packages}).  Synopses and descriptions are important: They are what @command{guix package --search} searches, and a crucial piece of information to help users determine whether a given package suits their needs.  Consequently, packagers should pay attention to what goes into them."
 msgstr "Wie wir bereits gesehen haben, enthält jedes Paket in GNU@tie{}Guix eine (im Code englischsprachige) Zusammenfassung (englisch: Synopsis) und eine Beschreibung (englisch: Description; siehe @ref{Defining Packages}). Zusammenfassungen und Beschreibungen sind wichtig: Sie werden mit @command{guix package --search} durchsucht und stellen eine entscheidende Informationsquelle für Nutzer dar, die entscheiden wollen, ob das Paket Ihren Bedürfnissen entspricht, daher sollten Paketentwickler Acht geben, was sie dort eintragen."
 
 #. type: Plain text
-#: doc/contributing.texi:544
+#: doc/contributing.texi:564
 msgid "Synopses must start with a capital letter and must not end with a period.  They must not start with ``a'' or ``the'', which usually does not bring anything; for instance, prefer ``File-frobbing tool'' over ``A tool that frobs files''.  The synopsis should say what the package is---e.g., ``Core GNU utilities (file, text, shell)''---or what it is used for---e.g., the synopsis for GNU@tie{}grep is ``Print lines matching a pattern''."
 msgstr "Zusammenfassungen müssen mit einem Großbuchstaben beginnen und dürfen nicht mit einem Punkt enden. Sie dürfen nicht mit den Artikeln „a“ oder „the“ beginnen, die meistens ohnehin nichts zum Verständnis beitragen. Zum Beispiel sollte „File-frobbing tool“ gegenüber „A tool that frobs files“ vorgezogen werden. Die Zusammenfassung sollte aussagen, um was es sich beim Paket handelt — z.B.@: „Core GNU utilities (file, text, shell)“ —, oder aussagen, wofür es benutzt wird — z.B.@: ist die Zusammenfassung für GNU@tie{}grep „Print lines matching a pattern“."
 
 #. type: Plain text
-#: doc/contributing.texi:554
+#: doc/contributing.texi:574
 msgid "Keep in mind that the synopsis must be meaningful for a very wide audience.  For example, ``Manipulate alignments in the SAM format'' might make sense for a seasoned bioinformatics researcher, but might be fairly unhelpful or even misleading to a non-specialized audience.  It is a good idea to come up with a synopsis that gives an idea of the application domain of the package.  In this example, this might give something like ``Manipulate nucleotide sequence alignments'', which hopefully gives the user a better idea of whether this is what they are looking for."
 msgstr "Beachten Sie, dass die Zusammenfassung für eine sehr große Leserschaft einen Sinn ergeben muss. Zum Beispiel würde „Manipulate alignments in the SAM format“ vielleicht von einem erfahrenen Forscher in der Bioinformatik verstanden, könnte für die Nicht-Spezialisten in Guix’ Zielgruppe aber wenig hilfreich sein oder würde diesen sogar eine falsche Vorstellung geben. Es ist eine gute Idee, sich eine Zusammenfassung zu überlegen, die eine Vorstellung von der Anwendungsdomäne des Pakets vermittelt. Im Beispiel hier würden sich die Nutzer mit „Manipulate nucleotide sequence alignments“ hoffentlich ein besseres Bild davon machen können, ob das Paket ist, wonach sie suchen."
 
 #. type: Plain text
-#: doc/contributing.texi:562
+#: doc/contributing.texi:582
 msgid "Descriptions should take between five and ten lines.  Use full sentences, and avoid using acronyms without first introducing them.  Please avoid marketing phrases such as ``world-leading'', ``industrial-strength'', and ``next-generation'', and avoid superlatives like ``the most advanced''---they are not helpful to users looking for a package and may even sound suspicious.  Instead, try to be factual, mentioning use cases and features."
 msgstr "Beschreibungen sollten zwischen fünf und zehn Zeilen lang sein. Benutzen Sie vollständige Sätze und vermeiden Sie Abkürzungen, die Sie nicht zuvor eingeführt haben. Vermeiden Sie bitte Marketing-Phrasen wie „world-leading“ („weltweit führend“), „industrial-strength“ („industrietauglich“) und „next-generation“ („der nächsten Generation“) ebenso wie Superlative wie „the most advanced“ („das fortgeschrittenste“) — davon haben Nutzer nichts, wenn sie ein Paket suchen, und es könnte sogar verdächtig klingen. Versuchen Sie stattdessen, bei den Fakten zu bleiben und dabei Anwendungszwecke und Funktionalitäten zu erwähnen."
 
 #. type: cindex
-#: doc/contributing.texi:563
+#: doc/contributing.texi:583
 #, no-wrap
 msgid "Texinfo markup, in package descriptions"
 msgstr "Texinfo-Auszeichnungen, in Paketbeschreibungen"
 
 #. type: Plain text
-#: doc/contributing.texi:572
+#: doc/contributing.texi:592
 msgid "Descriptions can include Texinfo markup, which is useful to introduce ornaments such as @code{@@code} or @code{@@dfn}, bullet lists, or hyperlinks (@pxref{Overview,,, texinfo, GNU Texinfo}).  However you should be careful when using some characters for example @samp{@@} and curly braces which are the basic special characters in Texinfo (@pxref{Special Characters,,, texinfo, GNU Texinfo}).  User interfaces such as @command{guix package --show} take care of rendering it appropriately."
 msgstr "Beschreibungen können wie bei Texinfo ausgezeichneten Text enthalten. Das bedeutet, Text kann Verzierungen wie @code{@@code} oder @code{@@dfn}, Auflistungen oder Hyperlinks enthalten (siehe @ref{Overview,,, texinfo, GNU Texinfo}). Sie sollten allerdings vorsichtig sein, wenn Sie bestimmte Zeichen wie @samp{@@} und geschweifte Klammern schreiben, weil es sich dabei um die grundlegenden Sonderzeichen in Texinfo handelt (siehe @ref{Special Characters,,, texinfo, GNU Texinfo}). Benutzungsschnittstellen wie @command{guix package --show} kümmern sich darum, solche Auszeichnungen angemessen darzustellen."
 
 #. type: Plain text
-#: doc/contributing.texi:578
+#: doc/contributing.texi:598
 msgid "Synopses and descriptions are translated by volunteers @uref{https://translationproject.org/domain/guix-packages.html, at the Translation Project} so that as many users as possible can read them in their native language.  User interfaces search them and display them in the language specified by the current locale."
 msgstr "Zusammenfassungen und Beschreibungen werden von Freiwilligen @uref{https://translationproject.org/domain/guix-packages.html, beim Translation Project} übersetzt, damit so viele Nutzer wie möglich sie in ihrer Muttersprache lesen können. Mit Schnittstellen für Benutzer können sie in der von der aktuell eingestellten Locale festgelegten Sprache durchsucht und angezeigt werden."
 
 #. type: Plain text
-#: doc/contributing.texi:583
+#: doc/contributing.texi:603
 msgid "To allow @command{xgettext} to extract them as translatable strings, synopses and descriptions @emph{must be literal strings}.  This means that you cannot use @code{string-append} or @code{format} to construct these strings:"
 msgstr "Damit @command{xgettext} sie als übersetzbare Zeichenketten extrahieren kann, @emph{müssen} Zusammenfassungen und Beschreibungen einfache Zeichenketten-Literale sein. Das bedeutet, dass Sie diese Zeichenketten nicht mit Prozeduren wie @code{string-append} oder @code{format} konstruieren können:"
 
 #. type: lisp
-#: doc/contributing.texi:589
+#: doc/contributing.texi:609
 #, no-wrap
 msgid ""
 "(package\n"
@@ -1016,12 +1049,12 @@ msgstr ""
 "  (description (string-append \"This is \" \"*not*\" \" translatable.\")))\n"
 
 #. type: Plain text
-#: doc/contributing.texi:597
+#: doc/contributing.texi:617
 msgid "Translation is a lot of work so, as a packager, please pay even more attention to your synopses and descriptions as every change may entail additional work for translators.  In order to help them, it is possible to make recommendations or instructions visible to them by inserting special comments like this (@pxref{xgettext Invocation,,, gettext, GNU Gettext}):"
 msgstr "Übersetzen ist viel Arbeit, also passen Sie als Paketentwickler bitte umso mehr auf, wenn Sie Ihre Zusammenfassungen und Beschreibungen formulieren, weil jede Änderung zusätzliche Arbeit für Übersetzer bedeutet. Um den Übersetzern zu helfen, können Sie Empfehlungen und Anweisungen für diese sichtbar machen, indem Sie spezielle Kommentare wie in diesem Beispiel einfügen (siehe @ref{xgettext Invocation,,, gettext, GNU Gettext}):"
 
-#. type: example
-#: doc/contributing.texi:602
+#. type: lisp
+#: doc/contributing.texi:622
 #, no-wrap
 msgid ""
 ";; TRANSLATORS: \"X11 resize-and-rotate\" should not be translated.\n"
@@ -1033,762 +1066,814 @@ msgstr ""
 "for the X11 resize-and-rotate (RandR) extension. …\")\n"
 
 #. type: cindex
-#: doc/contributing.texi:608
+#: doc/contributing.texi:627
+#, no-wrap
+msgid "snippets, when to use"
+msgstr "snippet-Feld, wann man es benutzt"
+
+#. type: Plain text
+#: doc/contributing.texi:638
+msgid "The boundary between using an origin snippet versus a build phase to modify the sources of a package can be elusive.  Origin snippets are typically used to remove unwanted files such as bundled libraries, nonfree sources, or to apply simple substitutions.  The source derived from an origin should produce a source that can be used to build the package on any system that the upstream package supports (i.e., act as the corresponding source).  In particular, origin snippets must not embed store items in the sources; such patching should rather be done using build phases.  Refer to the @code{origin} record documentation for more information (@pxref{origin Reference})."
+msgstr "Die Grenze, wann man Code-Schnipsel im @code{origin}-„@code{snippet}“-Feld gegenüber einer Erstellungsphase für Änderungen an den Quelldateien eines Pakets bevorzugen sollte, ist fließend. Schnipsel im Paketursprung werden meistens dazu benutzt, unerwünschte Dateien wie z.B.@: gebündelte Bibliotheken oder unfreie Quelldateien zu entfernen, oder um einfache Textersetzungen durchzuführen. Die Quelle, die sich aus einem Paketursprung ableitet, sollte Quellcode erzeugen, um das Paket auf jedem vom Anbieter unterstützten System zu erstellen (d.h.@: um als dessen „corresponding source“, „korrespondierender Quelltext“, herzuhalten). Insbesondere dürfen Snippets im Paketursprung keine Store-Objekte in den Quelldateien einbetten; solche Anpassungen sollten besser in Erstellungsphasen stattfinden. Schauen Sie in die Dokumentation des @code{origin}-Verbundsobjekts für weitere Informationen (siehe @ref{origin Reference})."
+
+#. type: cindex
+#: doc/contributing.texi:642
 #, no-wrap
 msgid "python"
 msgstr "python"
 
 #. type: Plain text
-#: doc/contributing.texi:614
+#: doc/contributing.texi:648
 msgid "We currently package Python 2 and Python 3, under the Scheme variable names @code{python-2} and @code{python} as explained in @ref{Version Numbers}.  To avoid confusion and naming clashes with other programming languages, it seems desirable that the name of a package for a Python module contains the word @code{python}."
-msgstr "Zur Zeit stellen wir ein Paket für Python 2 und eines für Python 3 jeweils über die Scheme-Variablen mit den Namen @code{python-2} und @code{python} zur Verfügung, entsprechend der Erklärungen im Abschnitt @ref{Version Numbers}. Um Verwirrungen und Namenskollisionen mit anderen Programmiersprachen zu vermeiden, erscheint es als wünschenswert, dass der Name eines Pakets für ein Python-Modul auch das Wort @code{python} enthält."
+msgstr "Zurzeit stellen wir ein Paket für Python 2 und eines für Python 3 jeweils über die Scheme-Variablen mit den Namen @code{python-2} und @code{python} zur Verfügung, entsprechend der Erklärungen im Abschnitt @ref{Version Numbers}. Um Verwirrungen und Namenskollisionen mit anderen Programmiersprachen zu vermeiden, erscheint es als wünschenswert, dass der Name eines Pakets für ein Python-Modul auch das Wort @code{python} enthält."
 
 #. type: Plain text
-#: doc/contributing.texi:621
+#: doc/contributing.texi:655
 msgid "Some modules are compatible with only one version of Python, others with both.  If the package Foo is compiled with Python 3, we name it @code{python-foo}.  If it is compiled with Python 2, we name it @code{python2-foo}.  Packages should be added when they are necessary; we don't add Python 2 variants of the package unless we are going to use them."
 msgstr "Manche Module sind nur mit einer Version von Python kompatibel, andere mit beiden. Wenn das Paket Foo mit Python 3 kompiliert wird, geben wir ihm den Namen @code{python-foo}. Wenn es mit Python 2 kompiliert wird, wählen wir den Namen @code{python2-foo}. Pakete sollten dann hinzugefügt werden, wenn sie gebraucht werden. Wir erstellen keine Python-2-Varianten von Paketen, wenn wir sie nicht benutzen wollen."
 
 #. type: Plain text
-#: doc/contributing.texi:627
+#: doc/contributing.texi:661
 msgid "If a project already contains the word @code{python}, we drop this; for instance, the module python-dateutil is packaged under the names @code{python-dateutil} and @code{python2-dateutil}.  If the project name starts with @code{py} (e.g.@: @code{pytz}), we keep it and prefix it as described above."
 msgstr "Wenn ein Projekt bereits das Wort @code{python} im Namen hat, lassen wir es weg; zum Beispiel ist das Modul python-dateutil unter den Namen @code{python-dateutil} und @code{python2-dateutil} verfügbar. Wenn der Projektname mit @code{py} beginnt (z.B.@: @code{pytz}), behalten wir ihn bei und stellen das oben beschriebene Präfix voran."
 
 #. type: subsubsection
-#: doc/contributing.texi:628
+#: doc/contributing.texi:662
 #, no-wrap
 msgid "Specifying Dependencies"
 msgstr "Abhängigkeiten angeben"
 
 #. type: cindex
-#: doc/contributing.texi:629
+#: doc/contributing.texi:663
 #, no-wrap
 msgid "inputs, for Python packages"
 msgstr "Eingaben, für Python-Pakete"
 
 #. type: Plain text
-#: doc/contributing.texi:634
+#: doc/contributing.texi:668
 msgid "Dependency information for Python packages is usually available in the package source tree, with varying degrees of accuracy: in the @file{setup.py} file, in @file{requirements.txt}, or in @file{tox.ini}."
 msgstr "Informationen über Abhängigkeiten von Python-Paketen, welche mal mehr und mal weniger stimmen, finden sich normalerweise im Verzeichnisbaum des Paketquellcodes: in der Datei @file{setup.py}, in @file{requirements.txt} oder in @file{tox.ini}."
 
 #. type: Plain text
-#: doc/contributing.texi:640
+#: doc/contributing.texi:674
 msgid "Your mission, when writing a recipe for a Python package, is to map these dependencies to the appropriate type of ``input'' (@pxref{package Reference, inputs}).  Although the @code{pypi} importer normally does a good job (@pxref{Invoking guix import}), you may want to check the following check list to determine which dependency goes where."
-msgstr "Wenn Sie ein Rezept für ein Python-Paket schreiben, lautet Ihr Auftrag, diese Abhängigkeiten auf angemessene Arten von „Eingaben“ abzubilden (siehe @ref{package Reference, inputs}). Obwohl der @code{pypi}-Importer hier normalerweise eine gute Arbeit leistet (siehe @ref{Invoking guix import}), könnten Sie die folgende Prüfliste durchgehen wollen, um zu bestimmen, wo welche Abhängigkeit eingeordnet werden sollte."
+msgstr "Wenn Sie ein Rezept für ein Python-Paket schreiben, lautet Ihr Auftrag, diese Abhängigkeiten auf angemessene Arten von „Eingaben“ abzubilden (siehe @ref{package Reference, Eingaben}). Obwohl der @code{pypi}-Importer hier normalerweise eine gute Arbeit leistet (siehe @ref{Invoking guix import}), könnten Sie die folgende Prüfliste durchgehen wollen, um zu bestimmen, wo welche Abhängigkeit eingeordnet werden sollte."
 
 #. type: itemize
-#: doc/contributing.texi:648
+#: doc/contributing.texi:682
 msgid "We currently package Python 2 with @code{setuptools} and @code{pip} installed like Python 3.4 has per default.  Thus you don't need to specify either of these as an input.  @command{guix lint} will warn you if you do."
 msgstr "Derzeit ist unser Python-2-Paket so geschrieben, dass es @code{setuptools} und @code{pip} installiert, wie es auch in den Vorgaben zu Python 3.4 gemacht wird. Sie müssen also keines der beiden als Eingabe angeben. Wenn Sie es doch tun, wird @command{guix lint} Sie darauf mit einer Warnung aufmerksam machen."
 
 #. type: itemize
-#: doc/contributing.texi:654
+#: doc/contributing.texi:688
 msgid "Python dependencies required at run time go into @code{propagated-inputs}.  They are typically defined with the @code{install_requires} keyword in @file{setup.py}, or in the @file{requirements.txt} file."
 msgstr "Python-Abhängigkeiten, die zur Laufzeit gebraucht werden, stehen im @code{propagated-inputs}-Feld. Solche werden typischerweise mit dem Schlüsselwort @code{install_requires} in @file{setup.py} oder in der Datei @file{requirements.txt} definiert."
 
 #. type: itemize
-#: doc/contributing.texi:662
+#: doc/contributing.texi:696
 msgid "Python packages required only at build time---e.g., those listed with the @code{setup_requires} keyword in @file{setup.py}---or only for testing---e.g., those in @code{tests_require}---go into @code{native-inputs}.  The rationale is that (1) they do not need to be propagated because they are not needed at run time, and (2) in a cross-compilation context, it's the ``native'' input that we'd want."
 msgstr "Python-Pakete, die nur zur Erstellungszeit gebraucht werden — z.B.@: jene, die mit dem Schlüsselwort @code{setup_requires} in @file{setup.py} aufgeführt sind — oder die nur zum Testen gebraucht werden — also die in @code{tests_require} —, stehen in @code{native-inputs}. Die Begründung ist, dass (1) sie nicht propagiert werden müssen, weil sie zur Laufzeit nicht gebraucht werden, und (2) wir beim Cross-Kompilieren die „native“ Eingabe des Wirtssystems wollen."
 
 #. type: itemize
-#: doc/contributing.texi:666
+#: doc/contributing.texi:700
 msgid "Examples are the @code{pytest}, @code{mock}, and @code{nose} test frameworks.  Of course if any of these packages is also required at run-time, it needs to go to @code{propagated-inputs}."
 msgstr "Beispiele sind die Testrahmen @code{pytest}, @code{mock} und @code{nose}. Wenn natürlich irgendeines dieser Pakete auch zur Laufzeit benötigt wird, muss es doch in @code{propagated-inputs} stehen."
 
 #. type: itemize
-#: doc/contributing.texi:671
+#: doc/contributing.texi:705
 msgid "Anything that does not fall in the previous categories goes to @code{inputs}, for example programs or C libraries required for building Python packages containing C extensions."
 msgstr "Alles, was nicht in die bisher genannten Kategorien fällt, steht in @code{inputs}, zum Beispiel Programme oder C-Bibliotheken, die zur Erstellung von Python-Paketen mit enthaltenen C-Erweiterungen gebraucht werden."
 
 #. type: itemize
-#: doc/contributing.texi:677
+#: doc/contributing.texi:711
 msgid "If a Python package has optional dependencies (@code{extras_require}), it is up to you to decide whether to add them or not, based on their usefulness/overhead ratio (@pxref{Submitting Patches, @command{guix size}})."
 msgstr "Wenn ein Python-Paket optionale Abhängigkeiten hat (@code{extras_require}), ist es Ihnen überlassen, sie hinzuzufügen oder nicht hinzuzufügen, je nachdem wie es um deren Verhältnis von Nützlichkeit zu anderen Nachteilen steht (siehe @ref{Submitting Patches, @command{guix size}})."
 
 #. type: cindex
-#: doc/contributing.texi:684
+#: doc/contributing.texi:718
 #, no-wrap
 msgid "perl"
 msgstr "perl"
 
 #. type: Plain text
-#: doc/contributing.texi:695
+#: doc/contributing.texi:729
 msgid "Perl programs standing for themselves are named as any other package, using the lowercase upstream name.  For Perl packages containing a single class, we use the lowercase class name, replace all occurrences of @code{::} by dashes and prepend the prefix @code{perl-}.  So the class @code{XML::Parser} becomes @code{perl-xml-parser}.  Modules containing several classes keep their lowercase upstream name and are also prepended by @code{perl-}.  Such modules tend to have the word @code{perl} somewhere in their name, which gets dropped in favor of the prefix.  For instance, @code{libwww-perl} becomes @code{perl-libwww}."
 msgstr "Eigenständige Perl-Programme bekommen einen Namen wie jedes andere Paket, unter Nutzung des Namens beim Anbieter in Kleinbuchstaben. Für Perl-Pakete, die eine einzelne Klasse enthalten, ersetzen wir alle Vorkommen von @code{::} durch Striche und hängen davor das Präfix @code{perl-} an. Die Klasse @code{XML::Parser} wird also zu @code{perl-xml-parser}. Module, die mehrere Klassen beinhalten, behalten ihren Namen beim Anbieter, in Kleinbuchstaben gesetzt, und auch an sie wird vorne das Präfix @code{perl-} angehängt. Es gibt die Tendenz, solche Module mit dem Wort @code{perl} irgendwo im Namen zu versehen, das wird zu Gunsten des Präfixes weggelassen. Zum Beispiel wird aus @code{libwww-perl} bei uns @code{perl-libwww}."
 
 #. type: cindex
-#: doc/contributing.texi:700
+#: doc/contributing.texi:734
 #, no-wrap
 msgid "java"
 msgstr "java"
 
 #. type: Plain text
-#: doc/contributing.texi:703
+#: doc/contributing.texi:737
 msgid "Java programs standing for themselves are named as any other package, using the lowercase upstream name."
 msgstr "Eigenständige Java-Programme werden wie jedes andere Paket benannt, d.h.@: mit ihrem in Kleinbuchstaben geschriebenen Namen beim Anbieter."
 
 #. type: Plain text
-#: doc/contributing.texi:709
+#: doc/contributing.texi:743
 msgid "To avoid confusion and naming clashes with other programming languages, it is desirable that the name of a package for a Java package is prefixed with @code{java-}.  If a project already contains the word @code{java}, we drop this; for instance, the package @code{ngsjava} is packaged under the name @code{java-ngs}."
 msgstr "Um Verwirrungen und Namenskollisionen mit anderen Programmiersprachen zu vermeiden, ist es wünschenswert, dass dem Namem eines Pakets zu einem Java-Paket das Präfix @code{java-} vorangestellt wird. Wenn ein Projekt bereits das Wort @code{java} im Namen trägt, lassen wir es weg; zum Beispiel befindet sich das Java-Paket @code{ngsjava} in einem Paket namens @code{java-ngs}."
 
 #. type: Plain text
-#: doc/contributing.texi:715
+#: doc/contributing.texi:749
 msgid "For Java packages containing a single class or a small class hierarchy, we use the lowercase class name, replace all occurrences of @code{.} by dashes and prepend the prefix @code{java-}.  So the class @code{apache.commons.cli} becomes package @code{java-apache-commons-cli}."
 msgstr "Bei Java-Paketen, die eine einzelne Klasse oder eine kleine Klassenhierarchie enthalten, benutzen wir den Klassennamen in Kleinbuchstaben und ersetzen dabei alle Vorkommen von @code{.} durch Striche und setzen das Präfix @code{java-} davor. Die Klasse @code{apache.commons.cli} wird also zum Paket @code{java-apache-commons-cli}."
 
 #. type: cindex
-#: doc/contributing.texi:720
+#: doc/contributing.texi:754
 #, no-wrap
 msgid "rust"
 msgstr "rust"
 
 #. type: Plain text
-#: doc/contributing.texi:723
+#: doc/contributing.texi:757
 msgid "Rust programs standing for themselves are named as any other package, using the lowercase upstream name."
 msgstr "Eigenständige Rust-Programme werden wie jedes andere Paket benannt, d.h.@: mit ihrem in Kleinbuchstaben geschriebenen Namen beim Anbieter."
 
 #. type: Plain text
-#: doc/contributing.texi:727
+#: doc/contributing.texi:761
 msgid "To prevent namespace collisions we prefix all other Rust packages with the @code{rust-} prefix.  The name should be changed to lowercase as appropriate and dashes should remain in place."
 msgstr "Um Namensraumkollisionen vorzubeugen, versehen wir alle anderen Rust-Pakete mit dem Präfix @code{rust-}. Der Name sollte wie sonst in Kleinbuchstaben geschrieben werden und Bindestriche dort bleiben, wo sie sind."
 
 #. type: Plain text
-#: doc/contributing.texi:733
+#: doc/contributing.texi:767
 msgid "In the rust ecosystem it is common for multiple incompatible versions of a package to be used at any given time, so all packages should have a versioned suffix.  If a package has passed version 1.0.0 then just the major version number is sufficient (e.g.@: @code{rust-clap-2}), otherwise the version suffix should contain both the major and minor version (e.g.@: @code{rust-rand-0.6})."
 msgstr "Im Rust-Ökosystem werden oft mehrere inkompatible Versionen desselben Pakets gleichzeitig benutzt, daher sollte allen Paketen ein die Version angebendes Suffix gegeben werden. Wenn ein Paket die Version 1.0.0 überschritten hat, genügt die Hauptversionsnummer (etwa @code{rust-clap-2}), ansonsten sollte das Versionssuffix sowohl Haupt- als auch Nebenversionsnummer angeben (z.B.@: @code{rust-rand-0.6})."
 
 #. type: Plain text
-#: doc/contributing.texi:743
+#: doc/contributing.texi:777
 msgid "Because of the difficulty in reusing rust packages as pre-compiled inputs for other packages the Cargo build system (@pxref{Build Systems, @code{cargo-build-system}}) presents the @code{#:cargo-inputs} and @code{cargo-development-inputs} keywords as build system arguments.  It would be helpful to think of these as similar to @code{propagated-inputs} and @code{native-inputs}.  Rust @code{dependencies} and @code{build-dependencies} should go in @code{#:cargo-inputs}, and @code{dev-dependencies} should go in @code{#:cargo-development-inputs}.  If a Rust package links to other libraries then the standard placement in @code{inputs} and the like should be used."
 msgstr "Weil die Verwendung von Rust-Paketen als vorab kompilierte Eingaben für andere Pakete besondere Schwierigkeiten macht, gibt es im Cargo-Erstellungssystem (siehe @ref{Build Systems, @code{cargo-build-system}}) die Schlüsselwörter @code{#:cargo-inputs} und @code{#:cargo-development-inputs} als Argumente an das Erstellungssystem. Es ist hilfreich, sie sich ähnlich wie @code{propagated-inputs} und @code{native-inputs} vorzustellen. Was in Rust @code{dependencies} und @code{build-dependencies} sind, sollte unter @code{#:cargo-inputs} aufgeführt werden, während @code{dev-dependencies} zu den @code{#:cargo-development-inputs} gehören. Wenn ein Rust-Paket andere Bibliotheken einbindet, gilt die normale Einordnung in @code{inputs} usw.@: wie anderswo auch."
 
 #. type: Plain text
-#: doc/contributing.texi:749
+#: doc/contributing.texi:783
 msgid "Care should be taken to ensure the correct version of dependencies are used; to this end we try to refrain from skipping the tests or using @code{#:skip-build?} when possible.  Of course this is not always possible, as the package may be developed for a different Operating System, depend on features from the Nightly Rust compiler, or the test suite may have atrophied since it was released."
 msgstr "Man sollte aufpassen, dass man die richtige Version von Abhängigkeiten benutzt. Deswegen versuchen wir, Tests nicht mit @code{#:skip-build?} zu überspringen, wenn es möglich ist. Natürlich geht das nicht immer, vielleicht weil das Paket für ein anderes Betriebssystem entwickelt wurde, Funktionalitäten der allerneuesten „Nightly“-Version des Rust-Compilers voraussetzt oder weil der Testkatalog seit seiner Veröffentlichung verkümmert ist."
 
 #. type: cindex
-#: doc/contributing.texi:754 doc/guix.texi:1679
+#: doc/contributing.texi:788 doc/guix.texi:1784
 #, no-wrap
 msgid "fonts"
 msgstr "Schriftarten"
 
 #. type: Plain text
-#: doc/contributing.texi:760
+#: doc/contributing.texi:794
 msgid "For fonts that are in general not installed by a user for typesetting purposes, or that are distributed as part of a larger software package, we rely on the general packaging rules for software; for instance, this applies to the fonts delivered as part of the X.Org system or fonts that are part of TeX Live."
 msgstr "Wenn Schriftarten in der Regel nicht von Nutzern zur Textbearbeitung installiert werden oder als Teil eines größeren Software-Pakets mitgeliefert werden, gelten dafür die allgemeinen Paketrichtlinien für Software. Zum Beispiel trifft das auf als Teil des X.Org-Systems ausgelieferte Schriftarten zu, oder auf Schriftarten, die ein Teil von TeX Live sind."
 
 #. type: Plain text
-#: doc/contributing.texi:764
+#: doc/contributing.texi:798
 msgid "To make it easier for a user to search for fonts, names for other packages containing only fonts are constructed as follows, independently of the upstream package name."
 msgstr "Damit es Nutzer leichter haben, nach Schriftarten zu suchen, konstruieren wir die Namen von anderen Paketen, die nur Schriftarten enthalten, nach dem folgenden Schema, egal was der Paketname beim Anbieter ist."
 
 #. type: Plain text
-#: doc/contributing.texi:772
+#: doc/contributing.texi:806
 msgid "The name of a package containing only one font family starts with @code{font-}; it is followed by the foundry name and a dash @code{-} if the foundry is known, and the font family name, in which spaces are replaced by dashes (and as usual, all upper case letters are transformed to lower case).  For example, the Gentium font family by SIL is packaged under the name @code{font-sil-gentium}."
 msgstr "Der Name eines Pakets, das nur eine Schriftfamilie enthält, beginnt mit @code{font-}. Darauf folgt der Name des Schriftenherstellers und ein Strich @code{-}, sofern bekannt ist, wer der Schriftenhersteller ist, und dann der Name der Schriftfamilie, in dem Leerzeichen durch Striche ersetzt werden (und wie immer mit Großbuchstaben statt Kleinbuchstaben). Zum Beispiel befindet sich die von SIL hergestellte Gentium-Schriftfamilie im Paket mit dem Namen @code{font-sil-gentium}."
 
 #. type: Plain text
-#: doc/contributing.texi:781
+#: doc/contributing.texi:815
 msgid "For a package containing several font families, the name of the collection is used in the place of the font family name.  For instance, the Liberation fonts consist of three families, Liberation Sans, Liberation Serif and Liberation Mono.  These could be packaged separately under the names @code{font-liberation-sans} and so on; but as they are distributed together under a common name, we prefer to package them together as @code{font-liberation}."
-msgstr "Wenn ein Paket mehrere Schriftfamilien enthält, wird der Name der Sammlung anstelle des Schriftfamiliennamens benutzt. Zum Beispiel umfassen die Liberation-Schriftarten drei Familien: Liberation Sans, Liberation Serif und Liberation Mono. Man könnte sie getrennt voneinander mit den Namen @code{font-liberation-sans} und so weiter in Pakete einteilen, da sie aber unter einem gemeinsamen Namen angeboten werden, packen wir sie lieber zusammen in ein Paket mit dem Namen @code{font-liberation}."
+msgstr "Wenn ein Paket mehrere Schriftfamilien enthält, wird der Name der Sammlung anstelle des Schriftfamiliennamens benutzt. Zum Beispiel umfassen die Liberation-Schriftarten drei Familien: Liberation Sans, Liberation Serif und Liberation Mono. Man könnte sie getrennt voneinander mit den Namen @code{font-liberation-sans} und so weiter in Pakete einteilen. Da sie aber unter einem gemeinsamen Namen angeboten werden, packen wir sie lieber zusammen in ein Paket mit dem Namen @code{font-liberation}."
 
 #. type: Plain text
-#: doc/contributing.texi:787
+#: doc/contributing.texi:821
 msgid "In the case where several formats of the same font family or font collection are packaged separately, a short form of the format, prepended by a dash, is added to the package name.  We use @code{-ttf} for TrueType fonts, @code{-otf} for OpenType fonts and @code{-type1} for PostScript Type 1 fonts."
 msgstr "Für den Fall, dass mehrere Formate derselben Schriftfamilie oder Schriftartensammlung in separate Pakete kommen, wird ein Kurzname für das Format mit einem Strich vorne zum Paketnamen hinzugefügt. Wir benutzen @code{-ttf} für TrueType-Schriftarten, @code{-otf} für OpenType-Schriftarten und @code{-type1} für PostScript-Typ-1-Schriftarten."
 
 #. type: Plain text
-#: doc/contributing.texi:795
+#: doc/contributing.texi:829
 msgid "In general our code follows the GNU Coding Standards (@pxref{Top,,, standards, GNU Coding Standards}).  However, they do not say much about Scheme, so here are some additional rules."
 msgstr "Im Allgemeinen folgt unser Code den GNU Coding Standards (siehe @ref{Top,,, standards, GNU Coding Standards}). Da diese aber nicht viel über Scheme zu sagen haben, folgen hier einige zusätzliche Regeln."
 
 #. type: subsection
-#: doc/contributing.texi:801 doc/contributing.texi:803
-#: doc/contributing.texi:804
+#: doc/contributing.texi:835 doc/contributing.texi:837
+#: doc/contributing.texi:838
 #, no-wrap
 msgid "Programming Paradigm"
 msgstr "Programmierparadigmen"
 
 #. type: menuentry
-#: doc/contributing.texi:801
+#: doc/contributing.texi:835
 msgid "How to compose your elements."
 msgstr "Wie Sie Ihre Elemente zusammenstellen."
 
 #. type: subsection
-#: doc/contributing.texi:801 doc/contributing.texi:810
-#: doc/contributing.texi:811
+#: doc/contributing.texi:835 doc/contributing.texi:844
+#: doc/contributing.texi:845
 #, no-wrap
 msgid "Modules"
 msgstr "Module"
 
 #. type: menuentry
-#: doc/contributing.texi:801
+#: doc/contributing.texi:835
 msgid "Where to store your code?"
 msgstr "Wo Sie Ihren Code unterbringen."
 
 #. type: subsection
-#: doc/contributing.texi:801 doc/contributing.texi:821
-#: doc/contributing.texi:822
+#: doc/contributing.texi:835 doc/contributing.texi:855
+#: doc/contributing.texi:856
 #, no-wrap
 msgid "Data Types and Pattern Matching"
 msgstr "Datentypen und Mustervergleich"
 
 #. type: menuentry
-#: doc/contributing.texi:801
+#: doc/contributing.texi:835
 msgid "Implementing data structures."
 msgstr "Implementierung von Datenstrukturen."
 
 #. type: subsection
-#: doc/contributing.texi:801 doc/contributing.texi:835
-#: doc/contributing.texi:836
+#: doc/contributing.texi:835 doc/contributing.texi:869
+#: doc/contributing.texi:870
 #, no-wrap
 msgid "Formatting Code"
 msgstr "Formatierung von Code"
 
 #. type: menuentry
-#: doc/contributing.texi:801
+#: doc/contributing.texi:835
 msgid "Writing conventions."
 msgstr "Schreibkonventionen."
 
 #. type: Plain text
-#: doc/contributing.texi:809
+#: doc/contributing.texi:843
 msgid "Scheme code in Guix is written in a purely functional style.  One exception is code that involves input/output, and procedures that implement low-level concepts, such as the @code{memoize} procedure."
 msgstr "Scheme-Code wird in Guix auf rein funktionale Weise geschrieben. Eine Ausnahme ist Code, der mit Ein- und Ausgabe zu tun hat, und Prozeduren, die grundlegende Konzepte implementieren, wie zum Beispiel die Prozedur @code{memoize}."
 
 #. type: Plain text
-#: doc/contributing.texi:817
+#: doc/contributing.texi:851
 msgid "Guile modules that are meant to be used on the builder side must live in the @code{(guix build @dots{})} name space.  They must not refer to other Guix or GNU modules.  However, it is OK for a ``host-side'' module to use a build-side module."
 msgstr "Guile-Module, die beim Erstellen nutzbar sein sollen, müssen im Namensraum @code{(guix build …)} leben. Sie dürfen auf keine anderen Guix- oder GNU-Module Bezug nehmen. Jedoch ist es in Ordnung, wenn ein „wirtsseitiges“ Modul ein erstellungsseitiges Modul benutzt."
 
 #. type: Plain text
-#: doc/contributing.texi:820
+#: doc/contributing.texi:854
 msgid "Modules that deal with the broader GNU system should be in the @code{(gnu @dots{})} name space rather than @code{(guix @dots{})}."
 msgstr "Module, die mit dem weiteren GNU-System zu tun haben, sollten im Namensraum @code{(gnu …)} und nicht in @code{(guix …)} stehen."
 
 #. type: Plain text
-#: doc/contributing.texi:829
+#: doc/contributing.texi:863
 msgid "The tendency in classical Lisp is to use lists to represent everything, and then to browse them ``by hand'' using @code{car}, @code{cdr}, @code{cadr}, and co.  There are several problems with that style, notably the fact that it is hard to read, error-prone, and a hindrance to proper type error reports."
 msgstr "Im klassischen Lisp gibt es die Tendenz, Listen zur Darstellung von allem zu benutzen, und diese dann „händisch“ zu durchlaufen mit @code{car}, @code{cdr}, @code{cadr} und so weiter. Dieser Stil ist aus verschiedenen Gründen problematisch, insbesondere wegen der Tatsache, dass er schwer zu lesen, schnell fehlerbehaftet und ein Hindernis beim Melden von Typfehlern ist."
 
 #. type: Plain text
-#: doc/contributing.texi:834
+#: doc/contributing.texi:868
 msgid "Guix code should define appropriate data types (for instance, using @code{define-record-type*}) rather than abuse lists.  In addition, it should use pattern matching, via Guile’s @code{(ice-9 match)} module, especially when matching lists."
 msgstr "Guix-Code sollte angemessene Datentypen definieren (zum Beispiel mit @code{define-record-type*}) statt Listen zu missbrauchen. Außerdem sollte er das @code{(ice-9 match)}-Modul von Guile zum Mustervergleich benutzen, besonders mit Listen."
 
 #. type: cindex
-#: doc/contributing.texi:838
+#: doc/contributing.texi:872
 #, no-wrap
 msgid "formatting code"
 msgstr "Formatierung von Code"
 
 #. type: cindex
-#: doc/contributing.texi:839
+#: doc/contributing.texi:873
 #, no-wrap
 msgid "coding style"
 msgstr "Code-Stil"
 
 #. type: Plain text
-#: doc/contributing.texi:846
+#: doc/contributing.texi:880
 msgid "When writing Scheme code, we follow common wisdom among Scheme programmers.  In general, we follow the @url{https://mumble.net/~campbell/scheme/style.txt, Riastradh's Lisp Style Rules}.  This document happens to describe the conventions mostly used in Guile’s code too.  It is very thoughtful and well written, so please do read it."
 msgstr "Beim Schreiben von Scheme-Code halten wir uns an die üblichen Gepflogenheiten unter Scheme-Programmierern. Im Allgemeinen bedeutet das, dass wir uns an @url{https://mumble.net/~campbell/scheme/style.txt, Riastradh's Lisp Style Rules} halten. Es hat sich ergeben, dass dieses Dokument auch die Konventionen beschreibt, die im Code von Guile hauptsächlich verwendet werden. Es ist gut durchdacht und schön geschrieben, also lesen Sie es bitte."
 
 #. type: Plain text
-#: doc/contributing.texi:853
+#: doc/contributing.texi:887
 msgid "Some special forms introduced in Guix, such as the @code{substitute*} macro, have special indentation rules.  These are defined in the @file{.dir-locals.el} file, which Emacs automatically uses.  Also note that Emacs-Guix provides @code{guix-devel-mode} mode that indents and highlights Guix code properly (@pxref{Development,,, emacs-guix, The Emacs-Guix Reference Manual})."
-msgstr "Ein paar in Guix eingeführte Sonderformen, wie zum Beispiel das @code{substitute*}-Makro, haben abweichende Regeln für die Einrückung. Diese sind in der Datei @file{.dir-locals.el} definiert, die Emacs automatisch benutzt. Beachten Sie auch, dass Emacs-Guix einen Modus namens @code{guix-devel-mode} bereitstellt, der Guix-Code richtig einrückt und hervorhebt (siehe @ref{Development,,, emacs-guix, The Emacs-Guix Reference Manual})."
+msgstr "Ein paar in Guix eingeführte Sonderformen, wie zum Beispiel das @code{substitute*}-Makro, haben abweichende Regeln für die Einrückung. Diese sind in der Datei @file{.dir-locals.el} definiert, die Emacs automatisch benutzt. Beachten Sie auch, dass Emacs-Guix einen Modus namens @code{guix-devel-mode} bereitstellt, der Guix-Code richtig einrückt und hervorhebt (siehe @ref{Development,,, emacs-guix, Referenzhandbuch von Emacs-Guix})."
 
 #. type: cindex
-#: doc/contributing.texi:854
+#: doc/contributing.texi:888
 #, no-wrap
 msgid "indentation, of code"
 msgstr "Einrückung, Code-"
 
 #. type: cindex
-#: doc/contributing.texi:855
+#: doc/contributing.texi:889
 #, no-wrap
 msgid "formatting, of code"
 msgstr "Formatierung, Code-"
 
 #. type: Plain text
-#: doc/contributing.texi:858
+#: doc/contributing.texi:892
 msgid "If you do not use Emacs, please make sure to let your editor knows these rules.  To automatically indent a package definition, you can also run:"
 msgstr "Falls Sie nicht Emacs verwenden, sollten Sie sicherstellen, dass Ihr Editor diese Regeln kennt. Um eine Paketdefinition automatisch einzurücken, können Sie auch Folgendes ausführen:"
 
 #. type: example
-#: doc/contributing.texi:861
+#: doc/contributing.texi:895
 #, no-wrap
 msgid "./etc/indent-code.el gnu/packages/@var{file}.scm @var{package}\n"
 msgstr "./etc/indent-code.el gnu/packages/@var{Datei}.scm @var{Paket}\n"
 
 #. type: Plain text
-#: doc/contributing.texi:867
+#: doc/contributing.texi:901
 msgid "This automatically indents the definition of @var{package} in @file{gnu/packages/@var{file}.scm} by running Emacs in batch mode.  To indent a whole file, omit the second argument:"
 msgstr "Dadurch wird die Definition von @var{Paket} in @file{gnu/packages/@var{Datei}.scm} automatisch eingerückt, indem Emacs im Batch-Modus läuft. Um die Einrückung in einer gesamten Datei vorzunehmen, lassen Sie das zweite Argument weg:"
 
 #. type: example
-#: doc/contributing.texi:870
+#: doc/contributing.texi:904
 #, no-wrap
 msgid "./etc/indent-code.el gnu/services/@var{file}.scm\n"
 msgstr "./etc/indent-code.el gnu/services/@var{Datei}.scm\n"
 
 #. type: cindex
-#: doc/contributing.texi:872
+#: doc/contributing.texi:906
 #, no-wrap
 msgid "Vim, Scheme code editing"
 msgstr "Vim, zum Editieren von Scheme-Code"
 
 #. type: Plain text
-#: doc/contributing.texi:878
+#: doc/contributing.texi:912
 msgid "If you are editing code with Vim, we recommend that you run @code{:set autoindent} so that your code is automatically indented as you type.  Additionally, @uref{https://www.vim.org/scripts/script.php?script_id=3998, @code{paredit.vim}} may help you deal with all these parentheses."
 msgstr "Wenn Sie Code mit Vim bearbeiten, empfehlen wir, dass Sie @code{:set autoindent} ausführen, damit Ihr Code automatisch eingerückt wird, während Sie ihn schreiben. Außerdem könnte Ihnen @uref{https://www.vim.org/scripts/script.php?script_id=3998, @code{paredit.vim}} dabei helfen, mit all diesen Klammern fertigzuwerden."
 
 #. type: Plain text
-#: doc/contributing.texi:882
+#: doc/contributing.texi:916
 msgid "We require all top-level procedures to carry a docstring.  This requirement can be relaxed for simple private procedures in the @code{(guix build @dots{})} name space, though."
 msgstr "Wir fordern von allen Prozeduren auf oberster Ebene, dass sie über einen Docstring verfügen. Diese Voraussetzung kann jedoch bei einfachen, privaten Prozeduren im Namensraum @code{(guix build …)} aufgeweicht werden."
 
 #. type: Plain text
-#: doc/contributing.texi:885
+#: doc/contributing.texi:919
 msgid "Procedures should not have more than four positional parameters.  Use keyword parameters for procedures that take more than four parameters."
 msgstr "Prozeduren sollten nicht mehr als vier positionsbestimmte Parameter haben. Benutzen Sie Schlüsselwort-Parameter für Prozeduren, die mehr als vier Parameter entgegennehmen."
 
 #. type: Plain text
-#: doc/contributing.texi:896
+#: doc/contributing.texi:930
 msgid "Development is done using the Git distributed version control system.  Thus, access to the repository is not strictly necessary.  We welcome contributions in the form of patches as produced by @code{git format-patch} sent to the @email{guix-patches@@gnu.org} mailing list.  Seasoned Guix developers may also want to look at the section on commit access (@pxref{Commit Access})."
 msgstr "Die Entwicklung wird mit Hilfe des verteilten Versionskontrollsystems Git durchgeführt. Daher ist eine ständige Verbindung zum Repository nicht unbedingt erforderlich. Wir begrüßen Beiträge in Form von Patches, die mittels @code{git format-patch} erstellt und an die Mailingliste @email{guix-patches@@gnu.org} geschickt werden. Erfahrene Guix-Entwickler möchten vielleicht auch einen Blick auf den Abschnitt über Commit-Zugriff werfen (siehe @ref{Commit Access})."
 
 #. type: Plain text
-#: doc/contributing.texi:903
+#: doc/contributing.texi:937
 msgid "This mailing list is backed by a Debbugs instance, which allows us to keep track of submissions (@pxref{Tracking Bugs and Patches}).  Each message sent to that mailing list gets a new tracking number assigned; people can then follow up on the submission by sending email to @code{@var{NNN}@@debbugs.gnu.org}, where @var{NNN} is the tracking number (@pxref{Sending a Patch Series})."
 msgstr "Diese Mailing-Liste setzt auf einer Debbugs-Instanz auf, wodurch wir den Überblick über Eingereichtes behalten können (siehe @ref{Tracking Bugs and Patches}). Jede an diese Mailing-Liste gesendete Nachricht bekommt eine neue Folgenummer zugewiesen, so dass man eine Folge-E-Mail zur Einreichung an @code{@var{NNN}@@debbugs.gnu.org} senden kann, wobei @var{NNN} für die Folgenummer steht (siehe @ref{Sending a Patch Series})."
 
 #. type: Plain text
-#: doc/contributing.texi:907
+#: doc/contributing.texi:941
 msgid "Please write commit logs in the ChangeLog format (@pxref{Change Logs,,, standards, GNU Coding Standards}); you can check the commit history for examples."
 msgstr "Bitte schreiben Sie Commit-Logs im ChangeLog-Format (siehe @ref{Change Logs,,, standards, GNU Coding Standards}); dazu finden Sie Beispiele unter den bisherigen Commits."
 
 #. type: Plain text
-#: doc/contributing.texi:910
+#: doc/contributing.texi:944
 msgid "Before submitting a patch that adds or modifies a package definition, please run through this check list:"
 msgstr "Bevor Sie einen Patch einreichen, der eine Paketdefinition hinzufügt oder verändert, gehen Sie bitte diese Prüfliste durch:"
 
 #. type: enumerate
-#: doc/contributing.texi:917
+#: doc/contributing.texi:951
 msgid "If the authors of the packaged software provide a cryptographic signature for the release tarball, make an effort to verify the authenticity of the archive.  For a detached GPG signature file this would be done with the @code{gpg --verify} command."
 msgstr "Wenn die Autoren der verpackten Software eine kryptografische Signatur bzw. Beglaubigung für den Tarball der Veröffentlichung anbieten, so machen Sie sich bitte die Mühe, die Echtheit des Archivs zu überprüfen. Für eine abgetrennte GPG-Signaturdatei würden Sie das mit dem Befehl @code{gpg --verify} tun."
 
 #. type: enumerate
-#: doc/contributing.texi:921
+#: doc/contributing.texi:955
 msgid "Take some time to provide an adequate synopsis and description for the package.  @xref{Synopses and Descriptions}, for some guidelines."
 msgstr "Nehmen Sie sich die Zeit, eine passende Zusammenfassung und Beschreibung für das Paket zu verfassen. Unter @ref{Synopses and Descriptions} finden Sie dazu einige Richtlinien."
 
 #. type: enumerate
-#: doc/contributing.texi:926
+#: doc/contributing.texi:960
 msgid "Run @code{guix lint @var{package}}, where @var{package} is the name of the new or modified package, and fix any errors it reports (@pxref{Invoking guix lint})."
 msgstr "Verwenden Sie @code{guix lint @var{Paket}}, wobei @var{Paket} das neue oder geänderte Paket bezeichnet, und beheben Sie alle gemeldeten Fehler (siehe @ref{Invoking guix lint})."
 
 #. type: enumerate
-#: doc/contributing.texi:930
+#: doc/contributing.texi:964
 msgid "Make sure the package builds on your platform, using @code{guix build @var{package}}."
 msgstr "Stellen Sie sicher, dass das Paket auf Ihrer Plattform erstellt werden kann, indem Sie @code{guix build @var{Paket}} ausführen."
 
 #. type: enumerate
-#: doc/contributing.texi:937
+#: doc/contributing.texi:971
 msgid "We recommend you also try building the package on other supported platforms.  As you may not have access to actual hardware platforms, we recommend using the @code{qemu-binfmt-service-type} to emulate them.  In order to enable it, add the following service to the list of services in your @code{operating-system} configuration:"
 msgstr "Wir empfehlen, dass Sie auch versuchen, das Paket auf anderen unterstützten Plattformen zu erstellen. Da Sie vielleicht keinen Zugang zu echter Hardware für diese Plattformen haben, empfehlen wir, den @code{qemu-binfmt-service-type} zu benutzen, um sie zu emulieren. Um ihn zu aktivieren, fügen Sie den folgenden Dienst in die Liste der Dienste („services“) in Ihrer @code{operating-system}-Konfiguration ein:"
 
 #. type: lisp
-#: doc/contributing.texi:943
+#: doc/contributing.texi:977
 #, no-wrap
 msgid ""
 "(service qemu-binfmt-service-type\n"
 " (qemu-binfmt-configuration\n"
-"   (platforms (lookup-qemu-platforms \"arm\" \"aarch64\" \"mips64el\"))\n"
+"   (platforms (lookup-qemu-platforms \"arm\" \"aarch64\"))\n"
 "   (guix-support? #t)))\n"
 msgstr ""
 "(service qemu-binfmt-service-type\n"
 " (qemu-binfmt-configuration\n"
-"   (platforms (lookup-qemu-platforms \"arm\" \"aarch64\" \"mips64el\"))\n"
+"   (platforms (lookup-qemu-platforms \"arm\" \"aarch64\"))\n"
 "   (guix-support? #t)))\n"
 
 #. type: enumerate
-#: doc/contributing.texi:946
+#: doc/contributing.texi:980
 msgid "Then reconfigure your system."
 msgstr "Rekonfigurieren Sie anschließend Ihr System."
 
 #. type: enumerate
-#: doc/contributing.texi:951
+#: doc/contributing.texi:985
 msgid "You can then build packages for different platforms by specifying the @code{--system} option.  For example, to build the \"hello\" package for the armhf, aarch64, or mips64 architectures, you would run the following commands, respectively:"
 msgstr "Sie können Pakete für andere Plattformen erstellen lassen, indem Sie die Befehlszeilenoption @code{--system} angeben. Um zum Beispiel das Paket „hello“ für die Architekturen armhf, aarch64 oder mips64 erstellen zu lassen, würden Sie jeweils die folgenden Befehle angeben:"
 
 #. type: example
-#: doc/contributing.texi:955
+#: doc/contributing.texi:988
 #, no-wrap
 msgid ""
 "guix build --system=armhf-linux --rounds=2 hello\n"
 "guix build --system=aarch64-linux --rounds=2 hello\n"
-"guix build --system=mips64el-linux --rounds=2 hello\n"
 msgstr ""
 "guix build --system=armhf-linux --rounds=2 hello\n"
 "guix build --system=aarch64-linux --rounds=2 hello\n"
-"guix build --system=mips64el-linux --rounds=2 hello\n"
 
 #. type: cindex
-#: doc/contributing.texi:958
+#: doc/contributing.texi:991
 #, no-wrap
 msgid "bundling"
 msgstr "gebündelt"
 
 #. type: enumerate
-#: doc/contributing.texi:961
+#: doc/contributing.texi:994
 msgid "Make sure the package does not use bundled copies of software already available as separate packages."
 msgstr "Achten Sie darauf, dass im Paket keine Software gebündelt mitgeliefert wird, die bereits in separaten Paketen zur Verfügung steht."
 
 #. type: enumerate
-#: doc/contributing.texi:970
+#: doc/contributing.texi:1003
 msgid "Sometimes, packages include copies of the source code of their dependencies as a convenience for users.  However, as a distribution, we want to make sure that such packages end up using the copy we already have in the distribution, if there is one.  This improves resource usage (the dependency is built and stored only once), and allows the distribution to make transverse changes such as applying security updates for a given software package in a single place and have them affect the whole system---something that bundled copies prevent."
 msgstr "Manchmal enthalten Pakete Kopien des Quellcodes ihrer Abhängigkeiten, um Nutzern die Installation zu erleichtern. Als eine Distribution wollen wir jedoch sicherstellen, dass solche Pakete die schon in der Distribution verfügbare Fassung benutzen, sofern es eine gibt. Dadurch wird sowohl der Ressourcenverbrauch optimiert (die Abhängigkeit wird so nur einmal erstellt und gespeichert) als auch der Distribution die Möglichkeit gegeben, ergänzende Änderungen durchzuführen, um beispielsweise Sicherheitsaktualisierungen für ein bestimmtes Paket an nur einem Ort einzuspielen, die aber das gesamte System betreffen — gebündelt mitgelieferte Kopien würden dies verhindern."
 
 #. type: enumerate
-#: doc/contributing.texi:979
+#: doc/contributing.texi:1012
 msgid "Take a look at the profile reported by @command{guix size} (@pxref{Invoking guix size}).  This will allow you to notice references to other packages unwillingly retained.  It may also help determine whether to split the package (@pxref{Packages with Multiple Outputs}), and which optional dependencies should be used.  In particular, avoid adding @code{texlive} as a dependency: because of its extreme size, use @code{texlive-tiny} or @code{texlive-union} instead."
 msgstr "Schauen Sie sich das von @command{guix size} ausgegebene Profil an (siehe @ref{Invoking guix size}). Dadurch können Sie Referenzen auf andere Pakete finden, die ungewollt vorhanden sind. Dies kann auch dabei helfen, zu entscheiden, ob das Paket aufgespalten werden sollte (siehe @ref{Packages with Multiple Outputs}) und welche optionalen Abhängigkeiten verwendet werden sollten. Dabei sollten Sie es wegen seiner enormen Größe insbesondere vermeiden, @code{texlive} als eine Abhängigkeit hinzuzufügen; benutzen Sie stattdessen @code{texlive-tiny} oder @code{texlive-union}."
 
 #. type: enumerate
-#: doc/contributing.texi:984
+#: doc/contributing.texi:1017
 msgid "For important changes, check that dependent package (if applicable) are not affected by the change; @code{guix refresh --list-dependent @var{package}} will help you do that (@pxref{Invoking guix refresh})."
 msgstr "Achten Sie bei wichtigen Änderungen darauf, dass abhängige Pakete (falls vorhanden) nicht von der Änderung beeinträchtigt werden; @code{guix refresh --list-dependent @var{Paket}} hilft Ihnen dabei (siehe @ref{Invoking guix refresh})."
 
 #. type: cindex
-#: doc/contributing.texi:986
+#: doc/contributing.texi:1019
 #, no-wrap
 msgid "branching strategy"
 msgstr "Branching-Strategie"
 
 #. type: cindex
-#: doc/contributing.texi:987
+#: doc/contributing.texi:1020
 #, no-wrap
 msgid "rebuild scheduling strategy"
 msgstr "Neuerstellungs-Zeitplan"
 
 #. type: enumerate
-#: doc/contributing.texi:990
+#: doc/contributing.texi:1023
 msgid "Depending on the number of dependent packages and thus the amount of rebuilding induced, commits go to different branches, along these lines:"
-msgstr "Je nachdem, wieviele abhängige Pakete es gibt, und entsprechend wieviele Neuerstellungen dadurch nötig würden, finden Commits auf anderen Branches statt, nach ungefähr diesen Regeln:"
+msgstr "Je nachdem, wie viele abhängige Pakete es gibt, und entsprechend wie viele Neuerstellungen dadurch nötig würden, finden Commits auf anderen Branches statt, nach ungefähr diesen Regeln:"
 
 #. type: item
-#: doc/contributing.texi:992
+#: doc/contributing.texi:1025
 #, no-wrap
 msgid "300 dependent packages or less"
 msgstr "300 abhängige Pakete oder weniger"
 
 #. type: table
-#: doc/contributing.texi:994
+#: doc/contributing.texi:1027
 msgid "@code{master} branch (non-disruptive changes)."
 msgstr "@code{master}-Branch (störfreie Änderungen)."
 
 #. type: item
-#: doc/contributing.texi:995
+#: doc/contributing.texi:1028
 #, no-wrap
-msgid "between 300 and 1,200 dependent packages"
-msgstr "zwischen 300 und 1200 abhängige Pakete"
+msgid "between 300 and 1,800 dependent packages"
+msgstr "zwischen 300 und 1.800 abhängige Pakete"
 
 #. type: table
-#: doc/contributing.texi:1000
-msgid "@code{staging} branch (non-disruptive changes).  This branch is intended to be merged in @code{master} every 3 weeks or so.  Topical changes (e.g., an update of the GNOME stack) can instead go to a specific branch (say, @code{gnome-updates})."
-msgstr "@code{staging}-Branch (störfreie Änderungen). Dieser Branch wird circa alle 3 Wochen mit @code{master} zusammengeführt. Themenbezogene Änderungen (z.B.@: eine Aktualisierung der GNOME-Plattform) können stattdessen auch auf einem eigenen Branch umgesetzt werden (wie @code{gnome-updates})."
+#: doc/contributing.texi:1033
+msgid "@code{staging} branch (non-disruptive changes).  This branch is intended to be merged in @code{master} every 6 weeks or so.  Topical changes (e.g., an update of the GNOME stack) can instead go to a specific branch (say, @code{gnome-updates})."
+msgstr "@code{staging}-Branch (störfreie Änderungen). Dieser Branch wird circa alle 6@tie{}Wochen mit @code{master} zusammengeführt. Themenbezogene Änderungen (z.B.@: eine Aktualisierung der GNOME-Plattform) können stattdessen auch auf einem eigenen Branch umgesetzt werden (wie @code{gnome-updates})."
 
 #. type: item
-#: doc/contributing.texi:1001
+#: doc/contributing.texi:1034
 #, no-wrap
-msgid "more than 1,200 dependent packages"
-msgstr "mehr als 1200 abhängige Pakete"
+msgid "more than 1,800 dependent packages"
+msgstr "mehr als 1.800 abhängige Pakete"
 
 #. type: table
-#: doc/contributing.texi:1005
-msgid "@code{core-updates} branch (may include major and potentially disruptive changes).  This branch is intended to be merged in @code{master} every 2.5 months or so."
-msgstr "@code{core-updates}-Branch (kann auch größere und womöglich andere Software beeinträchtigende Änderungen umfassen). Dieser Branch wird planmäßig in @code{master} alle 2,5 Monate oder so gemerget."
+#: doc/contributing.texi:1038
+msgid "@code{core-updates} branch (may include major and potentially disruptive changes).  This branch is intended to be merged in @code{master} every 6 months or so."
+msgstr "@code{core-updates}-Branch (kann auch größere und womöglich andere Software beeinträchtigende Änderungen umfassen). Dieser Branch wird planmäßig in @code{master} alle 6 Monate oder so gemerget."
 
 #. type: enumerate
-#: doc/contributing.texi:1012
-msgid "All these branches are @uref{@value{SUBSTITUTE-SERVER}, tracked by our build farm} and merged into @code{master} once everything has been successfully built.  This allows us to fix issues before they hit users, and to reduce the window during which pre-built binaries are not available."
-msgstr "All diese Branches werden kontinuierlich @uref{@value{SUBSTITUTE-SERVER}, auf unserer Erstellungsfarm} erstellt und in @code{master} gemerget, sobald alles erfolgreich erstellt worden ist. Dadurch können wir Probleme beheben, bevor sie bei Nutzern auftreten, und zudem das Zeitfenster, während dessen noch keine vorerstellten Binärdateien verfügbar sind, verkürzen."
+#: doc/contributing.texi:1045
+msgid "All these branches are @uref{@value{SUBSTITUTE-URL}, tracked by our build farm} and merged into @code{master} once everything has been successfully built.  This allows us to fix issues before they hit users, and to reduce the window during which pre-built binaries are not available."
+msgstr "All diese Branches werden kontinuierlich @uref{@value{SUBSTITUTE-URL}, auf unserer Erstellungsfarm} erstellt und in @code{master} gemerget, sobald alles erfolgreich erstellt worden ist. Dadurch können wir Probleme beheben, bevor sie bei Nutzern auftreten, und zudem das Zeitfenster, während dessen noch keine vorerstellten Binärdateien verfügbar sind, verkürzen."
 
 #. type: enumerate
-#: doc/contributing.texi:1019
+#: doc/contributing.texi:1052
 msgid "Generally, branches other than @code{master} are considered @emph{frozen} if there has been a recent evaluation, or there is a corresponding @code{-next} branch.  Please ask on the mailing list or IRC if unsure where to place a patch."
 msgstr "Im Allgemeinen werden Branches außer @code{master} als @emph{unveränderlich} angesehen, wenn sie kürzlich ausgewertet wurden oder ein entsprechender @code{-next}-Branch existiert. Bitte fragen Sie auf der Mailing-Liste oder IRC, wenn Sie sich nicht sicher sind, wo ein Patch eingespielt werden sollte."
 
 #. type: cindex
-#: doc/contributing.texi:1021
+#: doc/contributing.texi:1054
 #, no-wrap
 msgid "determinism, of build processes"
 msgstr "Determinismus, von Erstellungsprozessen"
 
 #. type: cindex
-#: doc/contributing.texi:1022
+#: doc/contributing.texi:1055
 #, no-wrap
 msgid "reproducible builds, checking"
 msgstr "Reproduzierbare Erstellungen, Überprüfung"
 
 #. type: enumerate
-#: doc/contributing.texi:1026
+#: doc/contributing.texi:1059
 msgid "Check whether the package's build process is deterministic.  This typically means checking whether an independent build of the package yields the exact same result that you obtained, bit for bit."
 msgstr "Überprüfen Sie, ob der Erstellungsprozess deterministisch ist. Dazu prüfen Sie typischerweise, ob eine unabhängige Erstellung des Pakets genau dasselbe Ergebnis wie Ihre Erstellung hat, Bit für Bit."
 
 #. type: enumerate
-#: doc/contributing.texi:1029
+#: doc/contributing.texi:1062
 msgid "A simple way to do that is by building the same package several times in a row on your machine (@pxref{Invoking guix build}):"
 msgstr "Dies können Sie leicht tun, indem Sie dasselbe Paket mehrere Male hintereinander auf Ihrer Maschine erstellen (siehe @ref{Invoking guix build}):"
 
 #. type: example
-#: doc/contributing.texi:1032
+#: doc/contributing.texi:1065
 #, no-wrap
 msgid "guix build --rounds=2 my-package\n"
 msgstr "guix build --rounds=2 mein-paket\n"
 
 #. type: enumerate
-#: doc/contributing.texi:1036
+#: doc/contributing.texi:1069
 msgid "This is enough to catch a class of common non-determinism issues, such as timestamps or randomly-generated output in the build result."
 msgstr "Dies reicht aus, um eine ganze Klasse häufiger Ursachen von Nichtdeterminismus zu finden, wie zum Beispiel Zeitstempel oder zufallsgenerierte Ausgaben im Ergebnis der Erstellung."
 
 #. type: enumerate
-#: doc/contributing.texi:1046
+#: doc/contributing.texi:1079
 msgid "Another option is to use @command{guix challenge} (@pxref{Invoking guix challenge}).  You may run it once the package has been committed and built by @code{@value{SUBSTITUTE-SERVER}} to check whether it obtains the same result as you did.  Better yet: Find another machine that can build it and run @command{guix publish}.  Since the remote build machine is likely different from yours, this can catch non-determinism issues related to the hardware---e.g., use of different instruction set extensions---or to the operating system kernel---e.g., reliance on @code{uname} or @file{/proc} files."
 msgstr "Eine weitere Möglichkeit ist, @command{guix challenge} (siehe @ref{Invoking guix challenge}) zu benutzen. Sie können es ausführen, sobald ein Paket commitet und von @code{@value{SUBSTITUTE-SERVER}} erstellt wurde, um zu sehen, ob dort dasselbe Ergebnis wie bei Ihnen geliefert wurde. Noch besser: Finden Sie eine andere Maschine, die das Paket erstellen kann, und führen Sie @command{guix publish} aus. Da sich die entfernte Erstellungsmaschine wahrscheinlich von Ihrer unterscheidet, können Sie auf diese Weise Probleme durch Nichtdeterminismus erkennen, die mit der Hardware zu tun haben — zum Beispiel die Nutzung anderer Befehlssatzerweiterungen — oder mit dem Betriebssystem-Kernel — zum Beispiel, indem @code{uname} oder @file{/proc}-Dateien verwendet werden."
 
 # Hier gehe ich mal davon aus, dass Dokumentation generell zuerst in Englisch geschrieben wird, daher, werden solche Begriffe auch hier nicht übersetzt.
 #. type: enumerate
-#: doc/contributing.texi:1052
+#: doc/contributing.texi:1085
 msgid "When writing documentation, please use gender-neutral wording when referring to people, such as @uref{https://en.wikipedia.org/wiki/Singular_they, singular ``they''@comma{} ``their''@comma{} ``them''}, and so forth."
 msgstr "Beim Schreiben von Dokumentation achten Sie bitte auf eine geschlechtsneutrale Wortwahl, wenn Sie sich auf Personen beziehen, wie @uref{https://en.wikipedia.org/wiki/Singular_they, „they“@comma{} „their“@comma{} „them“ im Singular} und so weiter."
 
 #. type: enumerate
-#: doc/contributing.texi:1056
+#: doc/contributing.texi:1089
 msgid "Verify that your patch contains only one set of related changes.  Bundling unrelated changes together makes reviewing harder and slower."
 msgstr "Stellen Sie sicher, dass Ihr Patch nur einen Satz zusammengehöriger Änderungen umfasst. Das Zusammenfassen nicht zusammengehöriger Änderungen erschwert und bremst das Durchsehen Ihres Patches."
 
 #. type: enumerate
-#: doc/contributing.texi:1059
+#: doc/contributing.texi:1092
 msgid "Examples of unrelated changes include the addition of several packages, or a package update along with fixes to that package."
 msgstr "Beispiele für nicht zusammengehörige Änderungen sind das Hinzufügen mehrerer Pakete auf einmal, oder das Aktualisieren eines Pakets auf eine neue Version zusammen mit Fehlerbehebungen für das Paket."
 
 #. type: enumerate
-#: doc/contributing.texi:1064
+#: doc/contributing.texi:1097
 msgid "Please follow our code formatting rules, possibly running the @command{etc/indent-code.el} script to do that automatically for you (@pxref{Formatting Code})."
 msgstr "Bitte befolgen Sie unsere Richtlinien für die Code-Formatierung, womöglich wollen Sie dies automatisch tun lassen durch das Skript @command{etc/indent-code.el} (siehe @ref{Formatting Code})."
 
 #. type: enumerate
-#: doc/contributing.texi:1072
+#: doc/contributing.texi:1105
 msgid "When possible, use mirrors in the source URL (@pxref{Invoking guix download}).  Use reliable URLs, not generated ones.  For instance, GitHub archives are not necessarily identical from one generation to the next, so in this case it's often better to clone the repository.  Don't use the @command{name} field in the URL: it is not very useful and if the name changes, the URL will probably be wrong."
 msgstr "Benutzen Sie, wenn möglich, Spiegelserver (Mirrors) in der Quell-URL (siehe @ref{Invoking guix download}). Verwenden Sie verlässliche URLs, keine automatisch generierten. Zum Beispiel sind Archive von GitHub nicht immer identisch von einer Generation auf die nächste, daher ist es in diesem Fall besser, als Quelle einen Klon des Repositorys zu verwenden. Benutzen Sie @emph{nicht} das @command{name}-Feld beim Angeben der URL; er hilft nicht wirklich und wenn sich der Name ändert, stimmt die URL nicht mehr."
 
 #. type: enumerate
-#: doc/contributing.texi:1076
+#: doc/contributing.texi:1109
 msgid "Check if Guix builds (@pxref{Building from Git}) and address the warnings, especially those about use of undefined symbols."
 msgstr "Überprüfen Sie, ob Guix erstellt werden kann (siehe @ref{Building from Git}) und kümmern Sie sich um die Warnungen, besonders um solche über nicht definierte Symbole."
 
 #. type: enumerate
-#: doc/contributing.texi:1079
+#: doc/contributing.texi:1112
 msgid "Make sure your changes do not break Guix and simulate a @code{guix pull} with:"
 msgstr "Stellen Sie sicher, dass Ihre Änderungen Guix nicht beeinträchtigen, und simulieren Sie eine Ausführung von @code{guix pull} über den Befehl:"
 
 #. type: example
-#: doc/contributing.texi:1081
+#: doc/contributing.texi:1114
 #, no-wrap
 msgid "guix pull --url=/path/to/your/checkout --profile=/tmp/guix.master\n"
 msgstr "guix pull --url=/pfad/zu/ihrem/checkout --profile=/tmp/guix.master\n"
 
 #. type: Plain text
-#: doc/contributing.texi:1092
-msgid "When posting a patch to the mailing list, use @samp{[PATCH] @dots{}} as a subject.  You may use your email client or the @command{git send-email} command (@pxref{Sending a Patch Series}).  We prefer to get patches in plain text messages, either inline or as MIME attachments.  You are advised to pay attention if your email client changes anything like line breaks or indentation which could potentially break the patches."
-msgstr "Bitte benutzen Sie @samp{[PATCH] …} als Betreff, wenn Sie einen Patch an die Mailing-Liste schicken. Sie können dazu Ihr E-Mail-Programm oder den Befehl @command{git send-email} benutzen (siehe @ref{Sending a Patch Series}). Wir bevorzugen es, Patches als reine Textnachrichten zu erhalten, entweder eingebettet (inline) oder als MIME-Anhänge. Sie sind dazu angehalten, zu überprüfen, ob Ihr Mail-Programm solche Dinge wie Zeilenumbrüche oder die Einrückung verändert, wodurch die Patches womöglich nicht mehr funktionieren."
+#: doc/contributing.texi:1127
+msgid "When posting a patch to the mailing list, use @samp{[PATCH] @dots{}} as a subject, if your patch is to be applied on a branch other than @code{master}, say @code{core-updates}, specify it in the subject like @samp{[PATCH core-updates] @dots{}}.  You may use your email client or the @command{git send-email} command (@pxref{Sending a Patch Series}).  We prefer to get patches in plain text messages, either inline or as MIME attachments.  You are advised to pay attention if your email client changes anything like line breaks or indentation which could potentially break the patches."
+msgstr "Bitte benutzen Sie @samp{[PATCH] …} als Betreff, wenn Sie einen Patch an die Mailing-Liste schicken. Soll Ihr Patch auf einen anderen Branch als @code{master} angewandt werden, z.B.@: @code{core-updates}, geben Sie dies im Betreff an als @samp{[PATCH core-updates] …}. Sie können dazu Ihr E-Mail-Programm oder den Befehl @command{git send-email} benutzen (siehe @ref{Sending a Patch Series}). Wir bevorzugen es, Patches als reine Textnachrichten zu erhalten, entweder eingebettet (inline) oder als MIME-Anhänge. Sie sind dazu angehalten, zu überprüfen, ob Ihr Mail-Programm solche Dinge wie Zeilenumbrüche oder die Einrückung verändert, wodurch die Patches womöglich nicht mehr funktionieren."
 
 #. type: Plain text
-#: doc/contributing.texi:1095
+#: doc/contributing.texi:1130
 msgid "When a bug is resolved, please close the thread by sending an email to @email{@var{NNN}-done@@debbugs.gnu.org}."
 msgstr "Wenn dadurch ein Fehler behoben wurde, schließen Sie bitte den Thread, indem Sie eine E-Mail an @email{@var{NNN}-done@@debbugs.gnu.org} senden."
 
 #. type: anchor{#1}
-#: doc/contributing.texi:1096 doc/contributing.texi:1098
+#: doc/contributing.texi:1131 doc/contributing.texi:1133
 #, no-wrap
 msgid "Sending a Patch Series"
 msgstr "Senden einer Patch-Reihe"
 
 #. type: cindex
-#: doc/contributing.texi:1098
+#: doc/contributing.texi:1133
 #, no-wrap
 msgid "patch series"
 msgstr "Patch-Reihe"
 
 #. type: code{#1}
-#: doc/contributing.texi:1099
+#: doc/contributing.texi:1134
 #, no-wrap
 msgid "git send-email"
 msgstr "git send-email"
 
 #. type: code{#1}
-#: doc/contributing.texi:1100
+#: doc/contributing.texi:1135
 #, no-wrap
 msgid "git-send-email"
 msgstr "git-send-email"
 
 #. type: Plain text
-#: doc/contributing.texi:1110
+#: doc/contributing.texi:1145
 msgid "When sending a patch series (e.g., using @code{git send-email}), please first send one message to @email{guix-patches@@gnu.org}, and then send subsequent patches to @email{@var{NNN}@@debbugs.gnu.org} to make sure they are kept together.  See @uref{https://debbugs.gnu.org/Advanced.html, the Debbugs documentation} for more information.  You can install @command{git send-email} with @command{guix install git:send-email}."
 msgstr "Wenn Sie eine Patch-Reihe senden (z.B.@: mit @code{git send-email}), schicken Sie bitte als Erstes eine Nachricht an @email{guix-patches@@gnu.org} und dann nachfolgende Patches an @email{@var{NNN}@@debbugs.gnu.org}, um sicherzustellen, dass sie zusammen bearbeitet werden. Siehe @uref{https://debbugs.gnu.org/Advanced.html, die Debbugs-Dokumentation} für weitere Informationen. Sie können @command{git send-email} mit dem Befehl @command{guix install git:send-email} installieren."
 
 #. type: cindex
-#: doc/contributing.texi:1114
+#: doc/contributing.texi:1149
 #, no-wrap
 msgid "bug reports, tracking"
 msgstr "Bug-Meldungen, Überblick"
 
 #. type: cindex
-#: doc/contributing.texi:1115
+#: doc/contributing.texi:1150
 #, no-wrap
 msgid "patch submissions, tracking"
 msgstr "Patch-Einreichungen, Überblick"
 
 #. type: cindex
-#: doc/contributing.texi:1116
+#: doc/contributing.texi:1151
 #, no-wrap
 msgid "issue tracking"
 msgstr "gemeldete Fehler überblicken"
 
 #. type: cindex
-#: doc/contributing.texi:1117
+#: doc/contributing.texi:1152
 #, no-wrap
 msgid "Debbugs, issue tracking system"
 msgstr "Debbugs, System zum Überblicken gemeldeter Fehler"
 
 #. type: Plain text
-#: doc/contributing.texi:1124
+#: doc/contributing.texi:1159
 msgid "Bug reports and patch submissions are currently tracked using the Debbugs instance at @uref{https://bugs.gnu.org}.  Bug reports are filed against the @code{guix} ``package'' (in Debbugs parlance), by sending email to @email{bug-guix@@gnu.org}, while patch submissions are filed against the @code{guix-patches} package by sending email to @email{guix-patches@@gnu.org} (@pxref{Submitting Patches})."
 msgstr "Einen Überblick über gemeldete Fehler („Bugs“) und eingereichte Patches finden Sie derzeit auf der Debbugs-Instanz unter @uref{https://bugs.gnu.org}. Fehler werden für das „Paket“ (so sagt man im Sprachgebrauch von Debbugs) namens @code{guix} gemeldet, indem Sie eine E-Mail an @email{bug-guix@@gnu.org} schicken. Dagegen werden Patches für das Paket @code{guix-patches} eingereicht, indem Sie eine E-Mail an @email{guix-patches@@gnu.org} schicken (siehe @ref{Submitting Patches})."
 
 #. type: Plain text
-#: doc/contributing.texi:1127
+#: doc/contributing.texi:1162
 msgid "A web interface (actually @emph{two} web interfaces!) are available to browse issues:"
 msgstr "Ihnen steht eine Weboberfläche (tatsächlich sogar @emph{zwei} Weboberflächen!) zur Verfügung, um die Fehlerdatenbank zu durchsuchen:"
 
 #. type: itemize
-#: doc/contributing.texi:1131
+#: doc/contributing.texi:1171
+msgid "@url{https://issues.guix.gnu.org} provides a pleasant interface@footnote{The web interface at @url{https://issues.guix.gnu.org} is powered by Mumi, a nice piece of software written in Guile, and you can help! See @url{https://git.elephly.net/gitweb.cgi?p=software/mumi.git}.} to browse bug reports and patches, and to participate in discussions;"
+msgstr "@url{https://issues.guix.gnu.org} erlaubt es Ihnen, über eine hübsche Schnittstelle @footnote{Die Weboberfläche unter @url{https://issues.guix.gnu.org} läuft über das Programm Mumi, ein schönes Stück in Guile geschriebene Software, bei der Sie uns helfen können! Siehe @url{https://git.elephly.net/gitweb.cgi?p=software/mumi.git}.} eingesendete Fehlerberichte („Bug Reports“) und Patches einzusehen und an Diskussionen teilzunehmen."
+
+#. type: itemize
+#: doc/contributing.texi:1173
 msgid "@url{https://bugs.gnu.org/guix} lists bug reports;"
 msgstr "Auf @url{https://bugs.gnu.org/guix} werden gemeldete Fehler aufgeführt,"
 
 #. type: itemize
-#: doc/contributing.texi:1133
+#: doc/contributing.texi:1175
 msgid "@url{https://bugs.gnu.org/guix-patches} lists patch submissions."
 msgstr "auf @url{https://bugs.gnu.org/guix-patches} eingereichte Patches."
 
 #. type: Plain text
-#: doc/contributing.texi:1143
-msgid "You can also access both of these @i{via} the (nicer)  @url{https://issues.guix.gnu.org} interface@footnote{The web interface at @url{https://issues.guix.gnu.org} is powered by Mumi, a nice piece of software written in Guile, and you can help! See @url{https://git.elephly.net/gitweb.cgi?p=software/mumi.git}.}.  To view discussions related to issue number @var{n}, go to @indicateurl{https://issues.guix.gnu.org/issue/@var{n}} or @indicateurl{https://bugs.gnu.org/@var{n}}."
-msgstr "Sie können auf beides auch über die (hübschere) Schnittstelle unter @url{https://issues.guix.gnu.org} zugreifen@footnote{Die Weboberfläche unter @url{https://issues.guix.gnu.org} läuft über das Programm Mumi, ein schönes Stück in Guile geschriebene Software, bei der Sie uns helfen können! Siehe @url{https://git.elephly.net/gitweb.cgi?p=software/mumi.git}.}. Um Diskussionen zum Fehler mit Fehlernummer @var{n} einzusehen, schauen Sie auf @indicateurl{https://issues.guix.gnu.org/issue/@var{n}} oder @indicateurl{https://bugs.gnu.org/@var{n}}."
+#: doc/contributing.texi:1180
+msgid "To view discussions related to issue number @var{n}, go to @indicateurl{https://issues.guix.gnu.org/@var{n}} or @indicateurl{https://bugs.gnu.org/@var{n}}."
+msgstr "Um Diskussionen zum Fehler mit Fehlernummer @var{n} einzusehen, schauen Sie auf @indicateurl{https://issues.guix.gnu.org/@var{n}} oder @indicateurl{https://bugs.gnu.org/@var{n}}."
 
 #. type: Plain text
-#: doc/contributing.texi:1146
+#: doc/contributing.texi:1183
 msgid "If you use Emacs, you may find it more convenient to interact with issues using @file{debbugs.el}, which you can install with:"
 msgstr "Wenn Sie Emacs benutzen, finden Sie es vielleicht bequemer, sich durch Nutzung von @file{debbugs.el} mit Fehlern zu befassen, was Sie mit folgendem Befehl installieren können:"
 
 #. type: example
-#: doc/contributing.texi:1149
+#: doc/contributing.texi:1186
 #, no-wrap
 msgid "guix install emacs-debbugs\n"
 msgstr "guix install emacs-debbugs\n"
 
 #. type: Plain text
-#: doc/contributing.texi:1152
+#: doc/contributing.texi:1189
 msgid "For example, to list all open issues on @code{guix-patches}, hit:"
 msgstr "Um zum Beispiel alle noch ausstehenden, „offenen“ Fehler bezüglich @code{guix-patches} anzusehen, geben Sie dies ein:"
 
 #. type: example
-#: doc/contributing.texi:1155
+#: doc/contributing.texi:1192
 #, no-wrap
 msgid "@kbd{C-u} @kbd{M-x} debbugs-gnu @kbd{RET} @kbd{RET} guix-patches @kbd{RET} n y\n"
 msgstr "@kbd{C-u} @kbd{M-x} debbugs-gnu @kbd{RET} @kbd{RET} guix-patches @kbd{RET} n y\n"
 
 #. type: Plain text
-#: doc/contributing.texi:1159
+#: doc/contributing.texi:1196
 msgid "@xref{Top,,, debbugs-ug, Debbugs User Guide}, for more information on this nifty tool!"
 msgstr "Siehe @ref{Top,,, debbugs-ug, Debbugs User Guide} für weitere Informationen zu diesem raffinierten Werkzeug."
 
 #. type: cindex
-#: doc/contributing.texi:1163
+#: doc/contributing.texi:1200
 #, no-wrap
 msgid "commit access, for developers"
 msgstr "Commit-Zugriff, für Entwickler"
 
 #. type: Plain text
-#: doc/contributing.texi:1167
+#: doc/contributing.texi:1204
 msgid "For frequent contributors, having write access to the repository is convenient.  When you deem it necessary, consider applying for commit access by following these steps:"
 msgstr "Für Leute, die häufig zu Guix beitragen, ist es praktischer, Schreibzugriff auf das Repository zu haben. Wenn Sie es für angemessen halten, dann sollten Sie in Erwägung ziehen, sich wie folgt um Commit-Zugriff zu bewerben:"
 
 #. type: enumerate
-#: doc/contributing.texi:1176
+#: doc/contributing.texi:1213
 msgid "Find three committers who would vouch for you.  You can view the list of committers at @url{https://savannah.gnu.org/project/memberlist.php?group=guix}.  Each of them should email a statement to @email{guix-maintainers@@gnu.org} (a private alias for the collective of maintainers), signed with their OpenPGP key."
 msgstr "Finden Sie drei Commiter, die für Sie eintreten. Sie können die Liste der Commiter unter @url{https://savannah.gnu.org/project/memberlist.php?group=guix} finden. Jeder von ihnen sollte eine entsprechende Erklärung per E-Mail an @email{guix-maintainers@@gnu.org} schicken (eine private Alias-Adresse für das Kollektiv aus allen Betreuern bzw.@: Maintainern), die jeweils mit ihrem OpenPGP-Schlüssel signiert wurde."
 
 #. type: enumerate
-#: doc/contributing.texi:1182
+#: doc/contributing.texi:1219
 msgid "Committers are expected to have had some interactions with you as a contributor and to be able to judge whether you are sufficiently familiar with the project's practices.  It is @emph{not} a judgment on the value of your work, so a refusal should rather be interpreted as ``let's try again later''."
 msgstr "Von den Commitern wird erwartet, dass sie bereits mit Ihnen als Mitwirkendem zu tun hatten und beurteilen können, ob Sie mit den Richtlinien des Projekts hinreichend vertraut sind. Dabei geht es @emph{nicht} darum, wie wertvoll Ihre Beiträge sind, daher sollte eine Ablehnung mehr als „schauen wir später nochmal“ verstanden werden."
 
 #. type: enumerate
-#: doc/contributing.texi:1189
+#: doc/contributing.texi:1226
 msgid "Send @email{guix-maintainers@@gnu.org} a message stating your intent, listing the three committers who support your application, signed with the OpenPGP key you will use to sign commits, and giving its fingerprint (see below).  See @uref{https://emailselfdefense.fsf.org/en/}, for an introduction to public-key cryptography with GnuPG."
 msgstr "Senden Sie eine Nachricht an @email{guix-maintainers@@gnu.org}, in der Sie Ihre Bereitschaft darlegen und die Namen der drei Commiter nennen, die Ihre Bewerbung unterstützen. Die Nachricht sollte mit dem OpenPGP-Schlüssel signiert sein, mit dem Sie später auch Ihre Commits signieren, und Sie sollten den Fingerabdruck hinterlegen (siehe unten). Siehe @uref{https://emailselfdefense.fsf.org/de/} für eine Einführung in asymmetrische Kryptografie („Public-Key“) mit GnuPG."
 
 #. type: enumerate
-#: doc/contributing.texi:1193
+#: doc/contributing.texi:1232
+msgid "Set up GnuPG such that it never uses the SHA1 hash algorithm for digital signatures, which is known to be unsafe since 2019, for instance by adding the following line to @file{~/.gnupg/gpg.conf} (@pxref{GPG Esoteric Options,,, gnupg, The GNU Privacy Guard Manual}):"
+msgstr "Richten Sie GnuPG so ein, dass es niemals den SHA1-Hashalgorithmus für digitale Signaturen verwendet, der seit 2019 bekanntlich unsicher ist. Fügen Sie dazu zum Beispiel folgende Zeile in @file{~/.gnupg/gpg.conf} ein (siehe @ref{GPG Esoteric Options,,, gnupg, The GNU Privacy Guard Manual}):"
+
+#. type: example
+#: doc/contributing.texi:1235
+#, no-wrap
+msgid "digest-algo sha512\n"
+msgstr "digest-algo sha512\n"
+
+#. type: enumerate
+#: doc/contributing.texi:1240
 msgid "Maintainers ultimately decide whether to grant you commit access, usually following your referrals' recommendation."
 msgstr "Betreuer entscheiden letztendlich darüber, ob Ihnen Commit-Zugriff gegeben wird, folgen dabei aber normalerweise der Empfehlung Ihrer Fürsprecher."
 
+#. type: cindex
+#: doc/contributing.texi:1242
+#, no-wrap
+msgid "OpenPGP, signed commits"
+msgstr "OpenPGP, signierte Commits"
+
 #. type: enumerate
-#: doc/contributing.texi:1199
+#: doc/contributing.texi:1247
 msgid "If and once you've been given access, please send a message to @email{guix-devel@@gnu.org} to say so, again signed with the OpenPGP key you will use to sign commits (do that before pushing your first commit).  That way, everyone can notice and ensure you control that OpenPGP key."
 msgstr "Wenn und sobald Ihnen Zugriff gewährt wurde, senden Sie bitte eine Nachricht an @email{guix-devel@@gnu.org}, um dies bekanntzugeben, die Sie erneut mit dem OpenPGP-Schlüssel signiert haben, mit dem Sie Commits signieren (tun Sie das, bevor Sie Ihren ersten Commit pushen). Auf diese Weise kann jeder Ihren Beitritt mitbekommen und nachprüfen, dass dieser OpenPGP-Schlüssel wirklich Ihnen gehört."
 
+#. type: quotation
+#: doc/contributing.texi:1248
+#, no-wrap
+msgid "Important"
+msgstr "Wichtig"
+
+#. type: quotation
+#: doc/contributing.texi:1250
+msgid "Before you can push for the first time, maintainers must:"
+msgstr "Bevor Sie zum ersten Mal pushen dürfen, müssen die Betreuer:"
+
+#. type: enumerate
+#: doc/contributing.texi:1254
+msgid "add your OpenPGP key to the @code{keyring} branch;"
+msgstr "Ihren OpenPGP-Schlüssel zum @code{keyring}-Branch hinzugefügt haben,"
+
 #. type: enumerate
-#: doc/contributing.texi:1205
+#: doc/contributing.texi:1257
+msgid "add your OpenPGP fingerprint to the @file{.guix-authorizations} file of the branch(es) you will commit to."
+msgstr "Ihren OpenPGP-Fingerabdruck in die Datei @file{.guix-authorizations} derjenigen Branches eingetragen haben, auf die Sie commiten möchten."
+
+#. type: enumerate
+#: doc/contributing.texi:1262
 msgid "Make sure to read the rest of this section and... profit!"
 msgstr "Wenn Sie den Rest dieses Abschnitts jetzt auch noch lesen, steht Ihrer Karriere nichts mehr im Weg!"
 
 #. type: quotation
-#: doc/contributing.texi:1211
+#: doc/contributing.texi:1268
 msgid "Maintainers are happy to give commit access to people who have been contributing for some time and have a track record---don't be shy and don't underestimate your work!"
 msgstr "Betreuer geben gerne anderen Leuten Commit-Zugriff, die schon einige Zeit dabei waren und ihre Eignung unter Beweis gestellt haben. Seien Sie nicht schüchtern und unterschätzen Sie Ihre Arbeit nicht!"
 
 #. type: quotation
-#: doc/contributing.texi:1215
+#: doc/contributing.texi:1272
 msgid "However, note that the project is working towards a more automated patch review and merging system, which, as a consequence, may lead us to have fewer people with commit access to the main repository.  Stay tuned!"
 msgstr "Sie sollten sich bewusst sein, dass unser Projekt auf ein besser automatisiertes System hinarbeitet, um Patches zu überprüfen und zu mergen. Als Folge davon werden wir vielleicht weniger Leuten Commit-Zugriff auf das Haupt-Repository geben. Bleiben Sie auf dem Laufenden!"
 
 #. type: Plain text
-#: doc/contributing.texi:1220
+#: doc/contributing.texi:1277
 msgid "If you get commit access, please make sure to follow the policy below (discussions of the policy can take place on @email{guix-devel@@gnu.org})."
 msgstr "Wenn Sie Commit-Zugriff erhalten, passen Sie bitte auf, dass Sie der folgenden Richtlinie folgen (Diskussionen über die Richtlinie können wir auf @email{guix-devel@@gnu.org} führen)."
 
 #. type: Plain text
-#: doc/contributing.texi:1225
+#: doc/contributing.texi:1282
 msgid "Non-trivial patches should always be posted to @email{guix-patches@@gnu.org} (trivial patches include fixing typos, etc.).  This mailing list fills the patch-tracking database (@pxref{Tracking Bugs and Patches})."
 msgstr "Nichttriviale Patches sollten immer zuerst an @email{guix-patches@@gnu.org} geschickt werden (zu den trivialen Patches gehört zum Beispiel das Beheben von Schreibfehlern usw.). Was an diese Mailing-Liste geschickt wird, steht danach in der Patch-Datenbank (siehe @ref{Tracking Bugs and Patches})."
 
 #. type: Plain text
-#: doc/contributing.texi:1234
+#: doc/contributing.texi:1291
 msgid "For patches that just add a new package, and a simple one, it's OK to commit, if you're confident (which means you successfully built it in a chroot setup, and have done a reasonable copyright and license auditing).  Likewise for package upgrades, except upgrades that trigger a lot of rebuilds (for example, upgrading GnuTLS or GLib).  We have a mailing list for commit notifications (@email{guix-commits@@gnu.org}), so people can notice.  Before pushing your changes, make sure to run @code{git pull --rebase}."
 msgstr "Bei Patches, die nur ein einziges neues Paket hinzufügen, das auch noch einfach ist, ist es in Ordnung, sie zu commiten, wenn Sie von von ihnen überzeugt sind (das bedeutet, Sie sollten es in einer chroot-Umgebung erstellt haben und Urheberrecht und Lizenzen mit angemessener Gründlichkeit geprüft haben). Für Paketaktualisierungen gilt dasselbe, außer die Aktualisierung hat viele Neuerstellungen zur Folge (wenn Sie zum Beispiel GnuTLS oder GLib aktualisieren). Wir haben eine Mailing-Liste für Commit-Benachrichtigungen (@email{guix-commits@@gnu.org}), damit andere sie bemerken. Bevor Sie Ihre Änderungen pushen, führen Sie @code{git pull --rebase} aus."
 
 #. type: Plain text
-#: doc/contributing.texi:1240
+#: doc/contributing.texi:1297
 msgid "All commits that are pushed to the central repository on Savannah must be signed with an OpenPGP key, and the public key should be uploaded to your user account on Savannah and to public key servers, such as @code{keys.openpgp.org}.  To configure Git to automatically sign commits, run:"
 msgstr "Alle Commits, die auf das zentrale Repository auf Savannah gepusht werden, müssen mit einem OpenPGP-Schlüssel signiert worden sein, und diesen öffentlichen Schlüssel sollten Sie auf Ihr Benutzerkonto auf Savannah und auf öffentliche Schlüsselserver wie @code{keys.openpgp.org} hochladen. Um Git so zu konfigurieren, dass es Commits automatisch signiert, führen Sie diese Befehle aus:"
 
 #. type: example
-#: doc/contributing.texi:1244
+#: doc/contributing.texi:1301
 #, no-wrap
 msgid ""
 "git config commit.gpgsign true\n"
@@ -1798,36 +1883,101 @@ msgstr ""
 "git config user.signingkey CABBA6EA1DC0FF33\n"
 
 #. type: Plain text
-#: doc/contributing.texi:1249
+#: doc/contributing.texi:1306
 msgid "You can prevent yourself from accidentally pushing unsigned commits to Savannah by using the pre-push Git hook called located at @file{etc/git/pre-push}:"
 msgstr "Sie können als Vorsichtsmaßnahme, um @emph{nicht} versehentlich unsignierte Commits auf Savannah zu pushen, den Pre-Push-Git-Hook benutzen, der sich unter @file{etc/git/pre-push} befindet:"
 
 #. type: example
-#: doc/contributing.texi:1252
+#: doc/contributing.texi:1309
 #, no-wrap
 msgid "cp etc/git/pre-push .git/hooks/pre-push\n"
 msgstr "cp etc/git/pre-push .git/hooks/pre-push\n"
 
 #. type: Plain text
-#: doc/contributing.texi:1258
+#: doc/contributing.texi:1315
 msgid "When pushing a commit on behalf of somebody else, please add a @code{Signed-off-by} line at the end of the commit log message---e.g., with @command{git am --signoff}.  This improves tracking of who did what."
 msgstr "Wenn Sie einen Commit für jemand anderen pushen, fügen Sie bitte eine @code{Signed-off-by}-Zeile am Ende der Commit-Log-Nachricht hinzu — z.B.@: mit @command{git am --signoff}. Dadurch lässt es sich leichter überblicken, wer was getan hat."
 
 #. type: Plain text
-#: doc/contributing.texi:1263
+#: doc/contributing.texi:1319
+msgid "When adding channel news entries (@pxref{Channels, Writing Channel News}), make sure they are well-formed by running the following command right before pushing:"
+msgstr "Wenn Sie Kanalneuigkeiten hinzufügen (siehe @ref{Channels, Kanalneuigkeiten verfassen}), dann sollten Sie prüfen, dass diese wohlgeformt sind, indem Sie den folgenden Befehl direkt vor dem Pushen ausführen:"
+
+#. type: example
+#: doc/contributing.texi:1322
+#, no-wrap
+msgid "make check-channel-news\n"
+msgstr "make check-channel-news\n"
+
+#. type: Plain text
+#: doc/contributing.texi:1328
 msgid "For anything else, please post to @email{guix-patches@@gnu.org} and leave time for a review, without committing anything (@pxref{Submitting Patches}).  If you didn’t receive any reply after two weeks, and if you're confident, it's OK to commit."
 msgstr "Alles andere schicken Sie bitte an @email{guix-patches@@gnu.org} und warten eine Weile, ohne etwas zu commiten, damit andere Zeit haben, sich die Änderungen anzuschauen (siehe @ref{Submitting Patches}). Wenn Sie nach zwei Wochen keine Antwort erhalten haben und von den Änderungen überzeugt sind, ist es in Ordnung, sie zu commiten."
 
 #. type: Plain text
-#: doc/contributing.texi:1266
+#: doc/contributing.texi:1331
 msgid "That last part is subject to being adjusted, allowing individuals to commit directly on non-controversial changes on parts they’re familiar with."
 msgstr "Die letzten Anweisungen werden wir vielleicht noch ändern, damit man unstrittige Änderungen direkt commiten kann, wenn man mit von Änderungen betroffenen Teilen vertraut ist."
 
 #. type: Plain text
-#: doc/contributing.texi:1271
+#: doc/contributing.texi:1337
 msgid "One last thing: the project keeps moving forward because committers not only push their own awesome changes, but also offer some of their time @emph{reviewing} and pushing other people's changes.  As a committer, you're welcome to use your expertise and commit rights to help other contributors, too!"
 msgstr "Eine Sache noch: Das Projekt entwickelt sich nicht nur deswegen schnell, weil Commiter ihre eigenen tollen Änderungen pushen, sondern auch, weil sie sich Zeit nehmen, die Änderungen anderer Leute in „Reviews“ zu @emph{überprüfen} und zu pushen. Als Commiter begrüßen wir es, wenn Sie Ihre Expertise und Commit-Rechte dafür einsetzen, auch anderen Mitwirkenden zu helfen!"
 
+#. type: cindex
+#: doc/contributing.texi:1341
+#, no-wrap
+msgid "update-guix-package, updating the guix package"
+msgstr "update-guix-package, Guix-Paket aktualisieren"
+
+#. type: Plain text
+#: doc/contributing.texi:1347
+msgid "It is sometimes desirable to update the @code{guix} package itself (the package defined in @code{(gnu packages package-management)}), for example to make new daemon features available for use by the @code{guix-service-type} service type.  In order to simplify this task, the following command can be used:"
+msgstr "Manchmal möchte man die für das Paket @code{guix} (wie es in @code{(gnu packages package-management)} definiert ist) verwendete Version auf eine neuere Version aktualisieren, zum Beispiel um neue Funktionalitäten des Daemons dem Diensttyp @code{guix-service-type} zugänglich zu machen. Um diese Arbeit zu erleichtern, kann folgender Befehl benutzt werden:"
+
+#. type: example
+#: doc/contributing.texi:1350
+#, no-wrap
+msgid "make update-guix-package\n"
+msgstr "make update-guix-package\n"
+
+#. type: Plain text
+#: doc/contributing.texi:1357
+msgid "The @code{update-guix-package} make target will use the last known @emph{commit} corresponding to @code{HEAD} in your Guix checkout, compute the hash of the Guix sources corresponding to that commit and update the @code{commit}, @code{revision} and hash of the @code{guix} package definition."
+msgstr "Das make-Ziel @code{update-guix-package} wird den neuesten bekannten @emph{Commit}, also den, der @code{HEAD} in Ihrem Guix-Checkout entspricht, verwenden, den Hash des zugehörigen Quellbaums berechnen und die Einträge für @code{commit}, @code{revision} und den Hash in der Paketdefinition von @code{guix} anpassen."
+
+#. type: Plain text
+#: doc/contributing.texi:1361
+msgid "To validate that the updated @code{guix} package hashes are correct and that it can be built successfully, the following command can be run from the directory of your Guix checkout:"
+msgstr "Um zu prüfen, dass das aktualisierte @code{guix}-Paket die richtigen Hashes benutzt und erfolgreich erstellt werden kann, können Sie den folgenden Befehl aus dem Verzeichnis Ihres Guix-Checkouts heraus ausführen:"
+
+#. type: example
+#: doc/contributing.texi:1364
+#, no-wrap
+msgid "./pre-inst-env guix build guix\n"
+msgstr "./pre-inst-env guix build guix\n"
+
+#. type: Plain text
+#: doc/contributing.texi:1369
+msgid "To guard against accidentally updating the @code{guix} package to a commit that others can't refer to, a check is made that the commit used has already been pushed to the Savannah-hosted Guix git repository."
+msgstr "Als Schutz vor einer versehentlichen Aktualisierung des @code{guix}-Pakets auf einen Commit, den andere Leute gar nicht haben, wird dabei geprüft, ob der benutzte Commit bereits im bei Savannah angebotenen Guix-Git-Repository vorliegt."
+
+#. type: Plain text
+#: doc/contributing.texi:1372
+msgid "This check can be disabled, @emph{at your own peril}, by setting the @code{GUIX_ALLOW_ME_TO_USE_PRIVATE_COMMIT} environment variable."
+msgstr "Diese Prüfung können Sie @emph{auf eigene Gefahr hin} abschalten, indem Sie die Umgebungsvariable @code{GUIX_ALLOW_ME_TO_USE_PRIVATE_COMMIT} setzen."
+
+#. type: Plain text
+#: doc/contributing.texi:1375
+msgid "To build the resulting 'guix' package when using a private commit, the following command can be used:"
+msgstr "Um das resultierende @code{guix}-Paket erstellen zu können, obwohl Sie einen privaten Commit verwenden, kann der folgende Befehl benutzt werden:"
+
+#. type: example
+#: doc/contributing.texi:1378
+#, no-wrap
+msgid "./pre-inst-env guix build guix --with-git-url=guix=$PWD\n"
+msgstr "./pre-inst-env guix build guix --with-git-url=guix=$PWD\n"
+
 #. type: Plain text
 #: doc/guix.texi:7
 msgid "@documentencoding UTF-8"
@@ -1837,7 +1987,7 @@ msgstr ""
 "@frenchspacing on"
 
 #. type: title
-#: doc/guix.texi:7 doc/guix.texi:107
+#: doc/guix.texi:7 doc/guix.texi:112
 #, no-wrap
 msgid "GNU Guix Reference Manual"
 msgstr "Referenzhandbuch zu GNU Guix"
@@ -1849,2034 +1999,2357 @@ msgid "version.texi"
 msgstr "version-de.texi"
 
 #. type: copying
-#: doc/guix.texi:80
-msgid "Copyright @copyright{} 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès@* Copyright @copyright{} 2013, 2014, 2016 Andreas Enge@* Copyright @copyright{} 2013 Nikita Karetnikov@* Copyright @copyright{} 2014, 2015, 2016 Alex Kost@* Copyright @copyright{} 2015, 2016 Mathieu Lirzin@* Copyright @copyright{} 2014 Pierre-Antoine Rault@* Copyright @copyright{} 2015 Taylan Ulrich Bayırlı/Kammer@* Copyright @copyright{} 2015, 2016, 2017, 2019, 2020 Leo Famulari@* Copyright @copyright{} 2015, 2016, 2017, 2018, 2019, 2020 Ricardo Wurmus@* Copyright @copyright{} 2016 Ben Woodcroft@* Copyright @copyright{} 2016, 2017, 2018 Chris Marusich@* Copyright @copyright{} 2016, 2017, 2018, 2019, 2020 Efraim Flashner@* Copyright @copyright{} 2016 John Darrington@* Copyright @copyright{} 2016, 2017 ng0@* Copyright @copyright{} 2016, 2017, 2018, 2019 Jan Nieuwenhuizen@* Copyright @copyright{} 2016 Julien Lepiller@* Copyright @copyright{} 2016 Alex ter Weele@* Copyright @copyright{} 2016, 2017, 2018, 2019 Christopher Baines@* Copyright @copyright{} 2017, 2018, 2019 Clément Lassieur@* Copyright @copyright{} 2017, 2018 Mathieu Othacehe@* Copyright @copyright{} 2017 Federico Beffa@* Copyright @copyright{} 2017, 2018 Carlo Zancanaro@* Copyright @copyright{} 2017 Thomas Danckaert@* Copyright @copyright{} 2017 humanitiesNerd@* Copyright @copyright{} 2017 Christopher Allan Webber@* Copyright @copyright{} 2017, 2018, 2019, 2020 Marius Bakke@* Copyright @copyright{} 2017, 2019, 2020 Hartmut Goebel@* Copyright @copyright{} 2017, 2019, 2020 Maxim Cournoyer@* Copyright @copyright{} 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice@* Copyright @copyright{} 2017 George Clemmer@* Copyright @copyright{} 2017 Andy Wingo@* Copyright @copyright{} 2017, 2018, 2019 Arun Isaac@* Copyright @copyright{} 2017 nee@* Copyright @copyright{} 2018 Rutger Helling@* Copyright @copyright{} 2018 Oleg Pykhalov@* Copyright @copyright{} 2018 Mike Gerwitz@* Copyright @copyright{} 2018 Pierre-Antoine Rouby@* Copyright @copyright{} 2018, 2019 Gábor Boskovits@* Copyright @copyright{} 2018, 2019 Florian Pelz@* Copyright @copyright{} 2018 Laura Lazzati@* Copyright @copyright{} 2018 Alex Vong@* Copyright @copyright{} 2019 Josh Holland@* Copyright @copyright{} 2019 Diego Nicola Barbato@* Copyright @copyright{} 2019 Ivan Petkov@* Copyright @copyright{} 2019 Jakob L. Kreuze@* Copyright @copyright{} 2019 Kyle Andrews@* Copyright @copyright{} 2019 Alex Griffin@* Copyright @copyright{} 2019 Guillaume Le Vaillant@* Copyright @copyright{} 2020 Leo Prikler@* Copyright @copyright{} 2019, 2020 Simon Tournier@* Copyright @copyright{} 2020 Wiktor Żelazny@* Copyright @copyright{} 2020 Damien Cassou@* Copyright @copyright{} 2020 Jakub Kądziołka@* Copyright @copyright{} 2020 Jack Hill@* Copyright @copyright{} 2020 Naga Malleswari@* Copyright @copyright{} 2020 Brice Waegeneire@*"
-msgstr "Copyright @copyright{} 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès@* Copyright @copyright{} 2013, 2014, 2016 Andreas Enge@* Copyright @copyright{} 2013 Nikita Karetnikov@* Copyright @copyright{} 2014, 2015, 2016 Alex Kost@* Copyright @copyright{} 2015, 2016 Mathieu Lirzin@* Copyright @copyright{} 2014 Pierre-Antoine Rault@* Copyright @copyright{} 2015 Taylan Ulrich Bayırlı/Kammer@* Copyright @copyright{} 2015, 2016, 2017, 2019, 2020 Leo Famulari@* Copyright @copyright{} 2015, 2016, 2017, 2018, 2019, 2020 Ricardo Wurmus@* Copyright @copyright{} 2016 Ben Woodcroft@* Copyright @copyright{} 2016, 2017, 2018 Chris Marusich@* Copyright @copyright{} 2016, 2017, 2018, 2019, 2020 Efraim Flashner@* Copyright @copyright{} 2016 John Darrington@* Copyright @copyright{} 2016, 2017 ng0@* Copyright @copyright{} 2016, 2017, 2018, 2019 Jan Nieuwenhuizen@* Copyright @copyright{} 2016 Julien Lepiller@* Copyright @copyright{} 2016 Alex ter Weele@* Copyright @copyright{} 2016, 2017, 2018, 2019 Christopher Baines@* Copyright @copyright{} 2017, 2018, 2019 Clément Lassieur@* Copyright @copyright{} 2017, 2018 Mathieu Othacehe@* Copyright @copyright{} 2017 Federico Beffa@* Copyright @copyright{} 2017, 2018 Carlo Zancanaro@* Copyright @copyright{} 2017 Thomas Danckaert@* Copyright @copyright{} 2017 humanitiesNerd@* Copyright @copyright{} 2017 Christopher Allan Webber@* Copyright @copyright{} 2017, 2018, 2019, 2020 Marius Bakke@* Copyright @copyright{} 2017, 2019, 2020 Hartmut Goebel@* Copyright @copyright{} 2017, 2019, 2020 Maxim Cournoyer@* Copyright @copyright{} 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice@* Copyright @copyright{} 2017 George Clemmer@* Copyright @copyright{} 2017 Andy Wingo@* Copyright @copyright{} 2017, 2018, 2019 Arun Isaac@* Copyright @copyright{} 2017 nee@* Copyright @copyright{} 2018 Rutger Helling@* Copyright @copyright{} 2018 Oleg Pykhalov@* Copyright @copyright{} 2018 Mike Gerwitz@* Copyright @copyright{} 2018 Pierre-Antoine Rouby@* Copyright @copyright{} 2018, 2019 Gábor Boskovits@* Copyright @copyright{} 2018, 2019 Florian Pelz@* Copyright @copyright{} 2018 Laura Lazzati@* Copyright @copyright{} 2018 Alex Vong@* Copyright @copyright{} 2019 Josh Holland@* Copyright @copyright{} 2019 Diego Nicola Barbato@* Copyright @copyright{} 2019 Ivan Petkov@* Copyright @copyright{} 2019 Jakob L. Kreuze@* Copyright @copyright{} 2019 Kyle Andrews@* Copyright @copyright{} 2019 Alex Griffin@* Copyright @copyright{} 2019 Guillaume Le Vaillant@* Copyright @copyright{} 2020 Leo Prikler@* Copyright @copyright{} 2019, 2020 Simon Tournier@* Copyright @copyright{} 2020 Wiktor Żelazny@* Copyright @copyright{} 2020 Damien Cassou@* Copyright @copyright{} 2020 Jakub Kądziołka@* Copyright @copyright{} 2020 Jack Hill@* Copyright @copyright{} 2020 Naga Malleswari@* Copyright @copyright{} 2020 Brice Waegeneire@*"
+#: doc/guix.texi:85
+msgid "Copyright @copyright{} 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès@* Copyright @copyright{} 2013, 2014, 2016 Andreas Enge@* Copyright @copyright{} 2013 Nikita Karetnikov@* Copyright @copyright{} 2014, 2015, 2016 Alex Kost@* Copyright @copyright{} 2015, 2016 Mathieu Lirzin@* Copyright @copyright{} 2014 Pierre-Antoine Rault@* Copyright @copyright{} 2015 Taylan Ulrich Bayırlı/Kammer@* Copyright @copyright{} 2015, 2016, 2017, 2019, 2020 Leo Famulari@* Copyright @copyright{} 2015, 2016, 2017, 2018, 2019, 2020 Ricardo Wurmus@* Copyright @copyright{} 2016 Ben Woodcroft@* Copyright @copyright{} 2016, 2017, 2018 Chris Marusich@* Copyright @copyright{} 2016, 2017, 2018, 2019, 2020 Efraim Flashner@* Copyright @copyright{} 2016 John Darrington@* Copyright @copyright{} 2016, 2017 Nikita Gillmann@* Copyright @copyright{} 2016, 2017, 2018, 2019, 2020 Jan Nieuwenhuizen@* Copyright @copyright{} 2016, 2017, 2018, 2019, 2020 Julien Lepiller@* Copyright @copyright{} 2016 Alex ter Weele@* Copyright @copyright{} 2016, 2017, 2018, 2019 Christopher Baines@* Copyright @copyright{} 2017, 2018, 2019 Clément Lassieur@* Copyright @copyright{} 2017, 2018, 2020 Mathieu Othacehe@* Copyright @copyright{} 2017 Federico Beffa@* Copyright @copyright{} 2017, 2018 Carlo Zancanaro@* Copyright @copyright{} 2017 Thomas Danckaert@* Copyright @copyright{} 2017 humanitiesNerd@* Copyright @copyright{} 2017 Christopher Allan Webber@* Copyright @copyright{} 2017, 2018, 2019, 2020 Marius Bakke@* Copyright @copyright{} 2017, 2019, 2020 Hartmut Goebel@* Copyright @copyright{} 2017, 2019, 2020 Maxim Cournoyer@* Copyright @copyright{} 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice@* Copyright @copyright{} 2017 George Clemmer@* Copyright @copyright{} 2017 Andy Wingo@* Copyright @copyright{} 2017, 2018, 2019, 2020 Arun Isaac@* Copyright @copyright{} 2017 nee@* Copyright @copyright{} 2018 Rutger Helling@* Copyright @copyright{} 2018 Oleg Pykhalov@* Copyright @copyright{} 2018 Mike Gerwitz@* Copyright @copyright{} 2018 Pierre-Antoine Rouby@* Copyright @copyright{} 2018, 2019 Gábor Boskovits@* Copyright @copyright{} 2018, 2019, 2020 Florian Pelz@* Copyright @copyright{} 2018 Laura Lazzati@* Copyright @copyright{} 2018 Alex Vong@* Copyright @copyright{} 2019 Josh Holland@* Copyright @copyright{} 2019, 2020 Diego Nicola Barbato@* Copyright @copyright{} 2019 Ivan Petkov@* Copyright @copyright{} 2019 Jakob L. Kreuze@* Copyright @copyright{} 2019 Kyle Andrews@* Copyright @copyright{} 2019 Alex Griffin@* Copyright @copyright{} 2019 Guillaume Le Vaillant@* Copyright @copyright{} 2020 Leo Prikler@* Copyright @copyright{} 2019, 2020 Simon Tournier@* Copyright @copyright{} 2020 Wiktor Żelazny@* Copyright @copyright{} 2020 Damien Cassou@* Copyright @copyright{} 2020 Jakub Kądziołka@* Copyright @copyright{} 2020 Jack Hill@* Copyright @copyright{} 2020 Naga Malleswari@* Copyright @copyright{} 2020 Brice Waegeneire@* Copyright @copyright{} 2020 R Veera Kumar@* Copyright @copyright{} 2020 Pierre Langlois@* Copyright @copyright{} 2020 pinoaffe@* Copyright @copyright{} 2020 André Batista@* Copyright @copyright{} 2020 Alexandru-Sergiu Marton@*"
+msgstr "Copyright @copyright{} 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès@* Copyright @copyright{} 2013, 2014, 2016 Andreas Enge@* Copyright @copyright{} 2013 Nikita Karetnikov@* Copyright @copyright{} 2014, 2015, 2016 Alex Kost@* Copyright @copyright{} 2015, 2016 Mathieu Lirzin@* Copyright @copyright{} 2014 Pierre-Antoine Rault@* Copyright @copyright{} 2015 Taylan Ulrich Bayırlı/Kammer@* Copyright @copyright{} 2015, 2016, 2017, 2019, 2020 Leo Famulari@* Copyright @copyright{} 2015, 2016, 2017, 2018, 2019, 2020 Ricardo Wurmus@* Copyright @copyright{} 2016 Ben Woodcroft@* Copyright @copyright{} 2016, 2017, 2018 Chris Marusich@* Copyright @copyright{} 2016, 2017, 2018, 2019, 2020 Efraim Flashner@* Copyright @copyright{} 2016 John Darrington@* Copyright @copyright{} 2016, 2017 Nikita Gillmann@* Copyright @copyright{} 2016, 2017, 2018, 2019, 2020 Jan Nieuwenhuizen@* Copyright @copyright{} 2016, 2017, 2018, 2019, 2020 Julien Lepiller@* Copyright @copyright{} 2016 Alex ter Weele@* Copyright @copyright{} 2016, 2017, 2018, 2019 Christopher Baines@* Copyright @copyright{} 2017, 2018, 2019 Clément Lassieur@* Copyright @copyright{} 2017, 2018, 2020 Mathieu Othacehe@* Copyright @copyright{} 2017 Federico Beffa@* Copyright @copyright{} 2017, 2018 Carlo Zancanaro@* Copyright @copyright{} 2017 Thomas Danckaert@* Copyright @copyright{} 2017 humanitiesNerd@* Copyright @copyright{} 2017 Christopher Allan Webber@* Copyright @copyright{} 2017, 2018, 2019, 2020 Marius Bakke@* Copyright @copyright{} 2017, 2019, 2020 Hartmut Goebel@* Copyright @copyright{} 2017, 2019, 2020 Maxim Cournoyer@* Copyright @copyright{} 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice@* Copyright @copyright{} 2017 George Clemmer@* Copyright @copyright{} 2017 Andy Wingo@* Copyright @copyright{} 2017, 2018, 2019, 2020 Arun Isaac@* Copyright @copyright{} 2017 nee@* Copyright @copyright{} 2018 Rutger Helling@* Copyright @copyright{} 2018 Oleg Pykhalov@* Copyright @copyright{} 2018 Mike Gerwitz@* Copyright @copyright{} 2018 Pierre-Antoine Rouby@* Copyright @copyright{} 2018, 2019 Gábor Boskovits@* Copyright @copyright{} 2018, 2019, 2020 Florian Pelz@* Copyright @copyright{} 2018 Laura Lazzati@* Copyright @copyright{} 2018 Alex Vong@* Copyright @copyright{} 2019 Josh Holland@* Copyright @copyright{} 2019, 2020 Diego Nicola Barbato@* Copyright @copyright{} 2019 Ivan Petkov@* Copyright @copyright{} 2019 Jakob L. Kreuze@* Copyright @copyright{} 2019 Kyle Andrews@* Copyright @copyright{} 2019 Alex Griffin@* Copyright @copyright{} 2019 Guillaume Le Vaillant@* Copyright @copyright{} 2020 Leo Prikler@* Copyright @copyright{} 2019, 2020 Simon Tournier@* Copyright @copyright{} 2020 Wiktor Żelazny@* Copyright @copyright{} 2020 Damien Cassou@* Copyright @copyright{} 2020 Jakub Kądziołka@* Copyright @copyright{} 2020 Jack Hill@* Copyright @copyright{} 2020 Naga Malleswari@* Copyright @copyright{} 2020 Brice Waegeneire@* Copyright @copyright{} 2020 R Veera Kumar@* Copyright @copyright{} 2020 Pierre Langlois@* Copyright @copyright{} 2020 pinoaffe@* Copyright @copyright{} 2020 André Batista@* Copyright @copyright{} 2020 Alexandru-Sergiu Marton@*"
 
 #. type: copying
-#: doc/guix.texi:87
+#: doc/guix.texi:92
 msgid "Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.  A copy of the license is included in the section entitled ``GNU Free Documentation License''."
 msgstr "Es ist Ihnen gestattet, dieses Dokument zu vervielfältigen, weiterzugeben und/oder zu verändern, unter den Bedingungen der GNU Free Documentation License, entweder gemäß Version 1.3 der Lizenz oder (nach Ihrer Option) einer späteren Version, die von der Free Software Foundation veröffentlicht wurde, ohne unveränderliche Abschnitte, ohne vorderen Umschlagtext und ohne hinteren Umschlagtext. Eine Kopie der Lizenz finden Sie im Abschnitt mit dem Titel „GNU Free Documentation License“."
 
 #. type: dircategory
-#: doc/guix.texi:89
+#: doc/guix.texi:94
 #, no-wrap
 msgid "System administration"
 msgstr "Systemadministration"
 
 #. type: menuentry
-#: doc/guix.texi:97
+#: doc/guix.texi:102
 msgid "Guix: (guix)"
 msgstr "Guix: (guix.de)"
 
 #. type: menuentry
-#: doc/guix.texi:97
+#: doc/guix.texi:102
 msgid "Manage installed software and system configuration."
 msgstr "Installierte Software und Systemkonfigurationen verwalten."
 
 #. type: menuentry
-#: doc/guix.texi:97
+#: doc/guix.texi:102
 msgid "guix package: (guix)Invoking guix package"
 msgstr "guix package: (guix.de)guix package aufrufen"
 
 #. type: menuentry
-#: doc/guix.texi:97
+#: doc/guix.texi:102
 msgid "Installing, removing, and upgrading packages."
 msgstr "Pakete installieren, entfernen und aktualisieren."
 
 #. type: menuentry
-#: doc/guix.texi:97
+#: doc/guix.texi:102
 msgid "guix gc: (guix)Invoking guix gc"
 msgstr "guix gc: (guix.de)guix gc aufrufen"
 
 #. type: menuentry
-#: doc/guix.texi:97
+#: doc/guix.texi:102
 msgid "Reclaiming unused disk space."
 msgstr "Unbenutzten Plattenspeicher wieder freigeben."
 
 #. type: menuentry
-#: doc/guix.texi:97
+#: doc/guix.texi:102
 msgid "guix pull: (guix)Invoking guix pull"
 msgstr "guix pull: (guix.de)guix pull aufrufen"
 
 #. type: menuentry
-#: doc/guix.texi:97
+#: doc/guix.texi:102
 msgid "Update the list of available packages."
 msgstr "Die Liste verfügbarer Pakete aktualisieren."
 
 #. type: menuentry
-#: doc/guix.texi:97
+#: doc/guix.texi:102
 msgid "guix system: (guix)Invoking guix system"
 msgstr "guix system: (guix.de)guix system aufrufen"
 
 #. type: menuentry
-#: doc/guix.texi:97
+#: doc/guix.texi:102
 msgid "Manage the operating system configuration."
 msgstr "Die Betriebssystemkonfiguration verwalten."
 
 #. type: menuentry
-#: doc/guix.texi:97
+#: doc/guix.texi:102
 msgid "guix deploy: (guix)Invoking guix deploy"
 msgstr "guix deploy: (guix.de)guix deploy aufrufen"
 
 #. type: menuentry
-#: doc/guix.texi:97
+#: doc/guix.texi:102
 msgid "Manage operating system configurations for remote hosts."
 msgstr "Betriebssystemkonfigurationen entfernter Rechner verwalten."
 
 #. type: dircategory
-#: doc/guix.texi:99
+#: doc/guix.texi:104
 #, no-wrap
 msgid "Software development"
 msgstr "Softwareentwicklung"
 
 #. type: menuentry
-#: doc/guix.texi:104
+#: doc/guix.texi:109
 msgid "guix environment: (guix)Invoking guix environment"
 msgstr "guix environment: (guix.de)guix environment aufrufen"
 
 #. type: menuentry
-#: doc/guix.texi:104
+#: doc/guix.texi:109
 msgid "Building development environments with Guix."
 msgstr "Umgebungen für Entwickler erstellen"
 
 #. type: menuentry
-#: doc/guix.texi:104
+#: doc/guix.texi:109
 msgid "guix build: (guix)Invoking guix build"
 msgstr "guix build: (guix.de)guix build aufrufen"
 
 #. type: menuentry
-#: doc/guix.texi:104
+#: doc/guix.texi:109
 msgid "Building packages."
 msgstr "Erstellen von Paketen."
 
 #. type: menuentry
-#: doc/guix.texi:104
+#: doc/guix.texi:109
 msgid "guix pack: (guix)Invoking guix pack"
 msgstr "guix pack: (guix.de)guix pack aufrufen"
 
 #. type: menuentry
-#: doc/guix.texi:104
+#: doc/guix.texi:109
 msgid "Creating binary bundles."
 msgstr "Bündel aus Binärdateien erstellen."
 
 #. type: subtitle
-#: doc/guix.texi:108
+#: doc/guix.texi:113
 #, no-wrap
 msgid "Using the GNU Guix Functional Package Manager"
 msgstr "Den funktionalen Paketmanager GNU Guix benutzen"
 
 #. type: author
-#: doc/guix.texi:109
+#: doc/guix.texi:114
 #, no-wrap
 msgid "The GNU Guix Developers"
 msgstr "Die Entwickler von GNU Guix"
 
 #. type: titlepage
-#: doc/guix.texi:115
+#: doc/guix.texi:120
 msgid "Edition @value{EDITION} @* @value{UPDATED} @*"
 msgstr "Edition @value{EDITION} @* @value{UPDATED} @*"
 
 #. type: node
-#: doc/guix.texi:122
+#: doc/guix.texi:127
 #, no-wrap
 msgid "Top"
 msgstr "Top"
 
 #. type: top
-#: doc/guix.texi:123
+#: doc/guix.texi:128
 #, no-wrap
 msgid "GNU Guix"
 msgstr "GNU Guix"
 
 #. type: Plain text
-#: doc/guix.texi:127
+#: doc/guix.texi:132
 msgid "This document describes GNU Guix version @value{VERSION}, a functional package management tool written for the GNU system."
 msgstr "Dieses Dokument beschreibt GNU Guix, Version @value{VERSION}, ein Werkzeug zur funktionalen Verwaltung von Softwarepaketen, das für das GNU-System geschrieben wurde."
 
 #. type: Plain text
-#: doc/guix.texi:139
+#: doc/guix.texi:144
 msgid "This manual is also available in Simplified Chinese (@pxref{Top,,, guix.zh_CN, GNU Guix参考手册}), French (@pxref{Top,,, guix.fr, Manuel de référence de GNU Guix}), German (@pxref{Top,,, guix.de, Referenzhandbuch zu GNU Guix}), Spanish (@pxref{Top,,, guix.es, Manual de referencia de GNU Guix}), and Russian (@pxref{Top,,, guix.ru, Руководство GNU Guix}).  If you would like to translate it in your native language, consider joining the @uref{https://translationproject.org/domain/guix-manual.html, Translation Project}."
 msgstr "Dieses Handbuch ist auch auf Englisch (siehe @ref{Top,,, guix, GNU Guix Reference Manual}), in Vereinfachtem Chinesisch (siehe @ref{Top,,, guix.zh_CN, GNU Guix参考手册}), auf Französisch (siehe @ref{Top,,, guix.fr, Manuel de référence de GNU Guix}), auf Spanisch (siehe @ref{Top,,, guix.es, Manual de referencia de GNU Guix}) und auf Russisch verfügbar (siehe @ref{Top,,, guix.ru, Руководство GNU Guix}). Wenn Sie es in Ihre eigene Sprache übersetzen möchten, dann sind Sie beim @uref{https://translationproject.org/domain/guix-manual.html, Translation Project} herzlich willkommen."
 
 #. type: chapter
-#: doc/guix.texi:155 doc/guix.texi:165 doc/guix.texi:332 doc/guix.texi:333
+#: doc/guix.texi:162 doc/guix.texi:172 doc/guix.texi:372 doc/guix.texi:373
 #, no-wrap
 msgid "Introduction"
 msgstr "Einführung"
 
 #. type: menuentry
-#: doc/guix.texi:155
+#: doc/guix.texi:162
 msgid "What is Guix about?"
 msgstr "Was ist Guix überhaupt?"
 
 #. type: chapter
-#: doc/guix.texi:155 doc/guix.texi:170 doc/guix.texi:491 doc/guix.texi:492
+#: doc/guix.texi:162 doc/guix.texi:177 doc/guix.texi:542 doc/guix.texi:543
 #, no-wrap
 msgid "Installation"
 msgstr "Installation"
 
 #. type: menuentry
-#: doc/guix.texi:155
+#: doc/guix.texi:162
 msgid "Installing Guix."
 msgstr "Guix installieren."
 
 #. type: chapter
-#: doc/guix.texi:155 doc/guix.texi:185 doc/guix.texi:1816 doc/guix.texi:1817
+#: doc/guix.texi:162 doc/guix.texi:193 doc/guix.texi:1903 doc/guix.texi:1904
 #, no-wrap
 msgid "System Installation"
 msgstr "Systeminstallation"
 
 #. type: menuentry
-#: doc/guix.texi:155
+#: doc/guix.texi:162
 msgid "Installing the whole operating system."
 msgstr "Das ganze Betriebssystem installieren."
 
 #. type: chapter
-#: doc/guix.texi:155 doc/guix.texi:202 doc/guix.texi:2554 doc/guix.texi:2555
+#: doc/guix.texi:162 doc/guix.texi:2647 doc/guix.texi:2648
+#, no-wrap
+msgid "Getting Started"
+msgstr "Einstieg in Guix"
+
+#. type: menuentry
+#: doc/guix.texi:162
+msgid "Your first steps."
+msgstr "Ihre ersten Schritte."
+
+#. type: chapter
+#: doc/guix.texi:162 doc/guix.texi:210 doc/guix.texi:2851 doc/guix.texi:2852
 #, no-wrap
 msgid "Package Management"
 msgstr "Paketverwaltung"
 
 #. type: menuentry
-#: doc/guix.texi:155
+#: doc/guix.texi:162
 msgid "Package installation, upgrade, etc."
 msgstr "Pakete installieren, aktualisieren usw."
 
 #. type: chapter
-#: doc/guix.texi:155 doc/guix.texi:225 doc/guix.texi:4648 doc/guix.texi:4649
+#: doc/guix.texi:162 doc/guix.texi:233 doc/guix.texi:4854 doc/guix.texi:4855
+#, no-wrap
+msgid "Channels"
+msgstr "Kanäle"
+
+#. type: menuentry
+#: doc/guix.texi:162
+msgid "Customizing the package collection."
+msgstr "Die Paketsammlung anpassen."
+
+#. type: chapter
+#: doc/guix.texi:162 doc/guix.texi:246 doc/guix.texi:5357 doc/guix.texi:5358
 #, no-wrap
 msgid "Development"
 msgstr "Entwicklung"
 
 #. type: menuentry
-#: doc/guix.texi:155
+#: doc/guix.texi:162
 msgid "Guix-aided software development."
 msgstr "Von Guix unterstützte Softwareentwicklung."
 
 #. type: chapter
-#: doc/guix.texi:155 doc/guix.texi:230 doc/guix.texi:5330 doc/guix.texi:5331
+#: doc/guix.texi:162 doc/guix.texi:253 doc/guix.texi:6177 doc/guix.texi:6178
 #, no-wrap
 msgid "Programming Interface"
 msgstr "Programmierschnittstelle"
 
 #. type: menuentry
-#: doc/guix.texi:155
+#: doc/guix.texi:162
 msgid "Using Guix in Scheme."
 msgstr "Guix in Scheme verwenden."
 
 #. type: chapter
-#: doc/guix.texi:155 doc/guix.texi:246 doc/guix.texi:8142 doc/guix.texi:8143
+#: doc/guix.texi:162 doc/guix.texi:272 doc/guix.texi:9832 doc/guix.texi:9833
 #, no-wrap
 msgid "Utilities"
 msgstr "Zubehör"
 
 #. type: menuentry
-#: doc/guix.texi:155
+#: doc/guix.texi:162
 msgid "Package management commands."
 msgstr "Befehle zur Paketverwaltung."
 
 #. type: chapter
-#: doc/guix.texi:155 doc/guix.texi:271 doc/guix.texi:10943 doc/guix.texi:10944
+#: doc/guix.texi:162 doc/guix.texi:297 doc/guix.texi:12862 doc/guix.texi:12863
 #, no-wrap
 msgid "System Configuration"
 msgstr "Systemkonfiguration"
 
 #. type: menuentry
-#: doc/guix.texi:155
+#: doc/guix.texi:162
 msgid "Configuring the operating system."
 msgstr "Das Betriebssystem konfigurieren."
 
 #. type: chapter
-#: doc/guix.texi:155 doc/guix.texi:27979 doc/guix.texi:27980
+#: doc/guix.texi:162 doc/guix.texi:32163 doc/guix.texi:32164
 #, no-wrap
 msgid "Documentation"
 msgstr "Dokumentation"
 
 #. type: menuentry
-#: doc/guix.texi:155
+#: doc/guix.texi:162
 msgid "Browsing software user manuals."
 msgstr "Wie man Nutzerhandbücher von Software liest."
 
 #. type: chapter
-#: doc/guix.texi:155 doc/guix.texi:28043 doc/guix.texi:28044
+#: doc/guix.texi:162 doc/guix.texi:359 doc/guix.texi:32227 doc/guix.texi:32228
 #, no-wrap
 msgid "Installing Debugging Files"
 msgstr "Dateien zur Fehlersuche installieren"
 
 #. type: menuentry
-#: doc/guix.texi:155
+#: doc/guix.texi:162
 msgid "Feeding the debugger."
-msgstr "Womit man seinen Debugger füttert."
+msgstr "Den Debugger füttern."
 
 #. type: chapter
-#: doc/guix.texi:155 doc/guix.texi:28109 doc/guix.texi:28110
+#: doc/guix.texi:162 doc/guix.texi:32368 doc/guix.texi:32369
 #, no-wrap
 msgid "Security Updates"
 msgstr "Sicherheitsaktualisierungen"
 
 #. type: menuentry
-#: doc/guix.texi:155
+#: doc/guix.texi:162
 msgid "Deploying security fixes quickly."
 msgstr "Sicherheits-Patches schnell einspielen."
 
 #. type: chapter
-#: doc/guix.texi:155 doc/guix.texi:28224 doc/guix.texi:28225
+#: doc/guix.texi:162 doc/guix.texi:364 doc/guix.texi:32483 doc/guix.texi:32484
 #, no-wrap
 msgid "Bootstrapping"
 msgstr "Bootstrapping"
 
 #. type: menuentry
-#: doc/guix.texi:155
+#: doc/guix.texi:162
 msgid "GNU/Linux built from scratch."
 msgstr "GNU/Linux von Grund auf selbst erstellen."
 
 #. type: node
-#: doc/guix.texi:155 doc/guix.texi:28502
+#: doc/guix.texi:162 doc/guix.texi:32770
 #, no-wrap
 msgid "Porting"
 msgstr "Portierung"
 
 #. type: menuentry
-#: doc/guix.texi:155
+#: doc/guix.texi:162
 msgid "Targeting another platform or kernel."
 msgstr "Guix auf andere Plattformen und Kernels bringen."
 
 #. type: menuentry
-#: doc/guix.texi:155
+#: doc/guix.texi:162
 msgid "Your help needed!"
 msgstr "Ihre Hilfe ist nötig!"
 
 #. type: chapter
-#: doc/guix.texi:160 doc/guix.texi:28550 doc/guix.texi:28551
+#: doc/guix.texi:167 doc/guix.texi:32818 doc/guix.texi:32819
 #, no-wrap
 msgid "Acknowledgments"
 msgstr "Danksagungen"
 
 #. type: menuentry
-#: doc/guix.texi:160
+#: doc/guix.texi:167
 msgid "Thanks!"
 msgstr "Danke!"
 
 #. type: appendix
-#: doc/guix.texi:160 doc/guix.texi:28572 doc/guix.texi:28573
+#: doc/guix.texi:167 doc/guix.texi:32840 doc/guix.texi:32841
 #, no-wrap
 msgid "GNU Free Documentation License"
 msgstr "GNU-Lizenz für freie Dokumentation"
 
 #. type: menuentry
-#: doc/guix.texi:160
+#: doc/guix.texi:167
 msgid "The license of this manual."
 msgstr "Die Lizenz dieses Handbuchs."
 
 #. type: unnumbered
-#: doc/guix.texi:160 doc/guix.texi:28578 doc/guix.texi:28579
+#: doc/guix.texi:167 doc/guix.texi:32846 doc/guix.texi:32847
 #, no-wrap
 msgid "Concept Index"
 msgstr "Konzeptverzeichnis"
 
 #. type: menuentry
-#: doc/guix.texi:160
+#: doc/guix.texi:167
 msgid "Concepts."
 msgstr "Konzepte."
 
 #. type: unnumbered
-#: doc/guix.texi:160 doc/guix.texi:28582 doc/guix.texi:28583
+#: doc/guix.texi:167 doc/guix.texi:32850 doc/guix.texi:32851
 #, no-wrap
 msgid "Programming Index"
 msgstr "Programmierverzeichnis"
 
 #. type: menuentry
-#: doc/guix.texi:160
+#: doc/guix.texi:167
 msgid "Data types, functions, and variables."
 msgstr "Datentypen, Funktionen und Variable."
 
 #. type: menuentry
-#: doc/guix.texi:163
+#: doc/guix.texi:170
 msgid "--- The Detailed Node Listing ---"
 msgstr "--- Detaillierte Liste der Knoten ---"
 
 #. type: section
-#: doc/guix.texi:168 doc/guix.texi:359 doc/guix.texi:361 doc/guix.texi:362
+#: doc/guix.texi:175 doc/guix.texi:399 doc/guix.texi:401 doc/guix.texi:402
 #, no-wrap
 msgid "Managing Software the Guix Way"
 msgstr "Auf Guix-Art Software verwalten"
 
 #. type: menuentry
-#: doc/guix.texi:168 doc/guix.texi:359
+#: doc/guix.texi:175 doc/guix.texi:399
 msgid "What's special."
 msgstr "Was Guix besonders macht."
 
 #. type: section
-#: doc/guix.texi:168 doc/guix.texi:359 doc/guix.texi:416 doc/guix.texi:417
+#: doc/guix.texi:175 doc/guix.texi:399 doc/guix.texi:456 doc/guix.texi:457
 #, no-wrap
 msgid "GNU Distribution"
 msgstr "GNU-Distribution"
 
 #. type: menuentry
-#: doc/guix.texi:168 doc/guix.texi:359
+#: doc/guix.texi:175 doc/guix.texi:399
 msgid "The packages and tools."
 msgstr "Die Pakete und Werkzeuge."
 
 #. type: section
-#: doc/guix.texi:177 doc/guix.texi:531 doc/guix.texi:533 doc/guix.texi:534
+#: doc/guix.texi:185 doc/guix.texi:582 doc/guix.texi:584 doc/guix.texi:585
 #, no-wrap
 msgid "Binary Installation"
 msgstr "Aus Binärdatei installieren"
 
 #. type: menuentry
-#: doc/guix.texi:177 doc/guix.texi:531
+#: doc/guix.texi:185 doc/guix.texi:582
 msgid "Getting Guix running in no time!"
-msgstr "Guix installieren, ohne Zeit zu verlieren!"
+msgstr "Guix installieren ohne Zeit zu verlieren!"
 
 #. type: section
-#: doc/guix.texi:177 doc/guix.texi:531 doc/guix.texi:739 doc/guix.texi:740
+#: doc/guix.texi:185 doc/guix.texi:582 doc/guix.texi:802 doc/guix.texi:803
 #, no-wrap
 msgid "Requirements"
 msgstr "Voraussetzungen"
 
 #. type: menuentry
-#: doc/guix.texi:177 doc/guix.texi:531
+#: doc/guix.texi:185 doc/guix.texi:582
 msgid "Software needed to build and run Guix."
 msgstr "Zum Erstellen und Benutzen von Guix nötige Software."
 
 #. type: section
-#: doc/guix.texi:177 doc/guix.texi:531 doc/guix.texi:814 doc/guix.texi:815
+#: doc/guix.texi:185 doc/guix.texi:582 doc/guix.texi:879 doc/guix.texi:880
 #, no-wrap
 msgid "Running the Test Suite"
 msgstr "Den Testkatalog laufen lassen"
 
 #. type: menuentry
-#: doc/guix.texi:177 doc/guix.texi:531
+#: doc/guix.texi:185 doc/guix.texi:582
 msgid "Testing Guix."
 msgstr "Guix testen."
 
 #. type: section
-#: doc/guix.texi:177 doc/guix.texi:179 doc/guix.texi:531 doc/guix.texi:879
-#: doc/guix.texi:880
+#: doc/guix.texi:185 doc/guix.texi:187 doc/guix.texi:582 doc/guix.texi:944
+#: doc/guix.texi:945
 #, no-wrap
 msgid "Setting Up the Daemon"
 msgstr "Den Daemon einrichten"
 
 #. type: menuentry
-#: doc/guix.texi:177 doc/guix.texi:531
+#: doc/guix.texi:185 doc/guix.texi:582
 msgid "Preparing the build daemon's environment."
-msgstr "Wie man die Umgebung des Erstellungs-Daemons einrichtet."
+msgstr "Die Umgebung des Erstellungs-Daemons vorbereiten."
 
 #. type: node
-#: doc/guix.texi:177 doc/guix.texi:531 doc/guix.texi:1310
+#: doc/guix.texi:185 doc/guix.texi:582 doc/guix.texi:1409
 #, no-wrap
 msgid "Invoking guix-daemon"
 msgstr "Aufruf des guix-daemon"
 
 #. type: menuentry
-#: doc/guix.texi:177 doc/guix.texi:531
+#: doc/guix.texi:185 doc/guix.texi:582
 msgid "Running the build daemon."
 msgstr "Den Erstellungs-Daemon laufen lassen."
 
 #. type: section
-#: doc/guix.texi:177 doc/guix.texi:531 doc/guix.texi:1576 doc/guix.texi:1577
+#: doc/guix.texi:185 doc/guix.texi:582 doc/guix.texi:1681 doc/guix.texi:1682
 #, no-wrap
 msgid "Application Setup"
 msgstr "Anwendungen einrichten"
 
 #. type: menuentry
-#: doc/guix.texi:177 doc/guix.texi:531
+#: doc/guix.texi:185 doc/guix.texi:582
 msgid "Application-specific setup."
 msgstr "Anwendungsspezifische Einstellungen."
 
+#. type: section
+#: doc/guix.texi:185 doc/guix.texi:582 doc/guix.texi:1866 doc/guix.texi:1867
+#, no-wrap
+msgid "Upgrading Guix"
+msgstr "Aktualisieren von Guix"
+
+#. type: menuentry
+#: doc/guix.texi:185 doc/guix.texi:582
+msgid "Upgrading Guix and its build daemon."
+msgstr "Guix und seinen Erstellungs-Daemon aktualisieren."
+
 #. type: subsection
-#: doc/guix.texi:183 doc/guix.texi:899 doc/guix.texi:901 doc/guix.texi:902
+#: doc/guix.texi:191 doc/guix.texi:964 doc/guix.texi:966 doc/guix.texi:967
 #, no-wrap
 msgid "Build Environment Setup"
 msgstr "Einrichten der Erstellungsumgebung"
 
 #. type: menuentry
-#: doc/guix.texi:183 doc/guix.texi:899
+#: doc/guix.texi:191 doc/guix.texi:964
 msgid "Preparing the isolated build environment."
-msgstr "Die isolierte Umgebung zum Erstellen vorbereiten."
+msgstr "Die isolierte Umgebung zum Erstellen herrichten."
 
 #. type: node
-#: doc/guix.texi:183 doc/guix.texi:899 doc/guix.texi:1018
+#: doc/guix.texi:191 doc/guix.texi:964 doc/guix.texi:1085
 #, no-wrap
 msgid "Daemon Offload Setup"
 msgstr "Auslagern des Daemons einrichten"
 
 #. type: menuentry
-#: doc/guix.texi:183 doc/guix.texi:899
+#: doc/guix.texi:191 doc/guix.texi:964
 msgid "Offloading builds to remote machines."
 msgstr "Erstellungen auf entfernte Maschinen auslagern."
 
 #. type: subsection
-#: doc/guix.texi:183 doc/guix.texi:899 doc/guix.texi:1224 doc/guix.texi:1225
+#: doc/guix.texi:191 doc/guix.texi:964 doc/guix.texi:1323 doc/guix.texi:1324
 #, no-wrap
 msgid "SELinux Support"
 msgstr "SELinux-Unterstützung"
 
 #. type: menuentry
-#: doc/guix.texi:183 doc/guix.texi:899
+#: doc/guix.texi:191 doc/guix.texi:964
 msgid "Using an SELinux policy for the daemon."
 msgstr "Wie man eine SELinux-Richtlinie für den Daemon einrichtet."
 
 #. type: section
-#: doc/guix.texi:195 doc/guix.texi:1260 doc/guix.texi:1850 doc/guix.texi:1852
-#: doc/guix.texi:1853
+#: doc/guix.texi:203 doc/guix.texi:1359 doc/guix.texi:1937 doc/guix.texi:1939
+#: doc/guix.texi:1940
 #, no-wrap
 msgid "Limitations"
 msgstr "Einschränkungen"
 
 #. type: menuentry
-#: doc/guix.texi:195 doc/guix.texi:1850
+#: doc/guix.texi:203 doc/guix.texi:1937
 msgid "What you can expect."
 msgstr "Was Sie erwarten dürfen."
 
 #. type: section
-#: doc/guix.texi:195 doc/guix.texi:1850 doc/guix.texi:1881 doc/guix.texi:1882
+#: doc/guix.texi:203 doc/guix.texi:1937 doc/guix.texi:1968 doc/guix.texi:1969
 #, no-wrap
 msgid "Hardware Considerations"
 msgstr "Hardware-Überlegungen"
 
 #. type: menuentry
-#: doc/guix.texi:195 doc/guix.texi:1850
+#: doc/guix.texi:203 doc/guix.texi:1937
 msgid "Supported hardware."
 msgstr "Unterstützte Hardware."
 
 #. type: section
-#: doc/guix.texi:195 doc/guix.texi:1850 doc/guix.texi:1916 doc/guix.texi:1917
+#: doc/guix.texi:203 doc/guix.texi:1937 doc/guix.texi:2003 doc/guix.texi:2004
 #, no-wrap
 msgid "USB Stick and DVD Installation"
 msgstr "Installation von USB-Stick oder DVD"
 
 #. type: menuentry
-#: doc/guix.texi:195 doc/guix.texi:1850
+#: doc/guix.texi:203 doc/guix.texi:1937
 msgid "Preparing the installation medium."
 msgstr "Das Installationsmedium vorbereiten."
 
 #. type: section
-#: doc/guix.texi:195 doc/guix.texi:1850 doc/guix.texi:2021 doc/guix.texi:2022
+#: doc/guix.texi:203 doc/guix.texi:1937 doc/guix.texi:2108 doc/guix.texi:2109
 #, no-wrap
 msgid "Preparing for Installation"
 msgstr "Vor der Installation"
 
 #. type: menuentry
-#: doc/guix.texi:195 doc/guix.texi:1850
+#: doc/guix.texi:203 doc/guix.texi:1937
 msgid "Networking, partitioning, etc."
-msgstr "Netzwerkanbindung, Partitionierung etc."
+msgstr "Netzwerkanbindung, Partitionierung usw."
 
 #. type: section
-#: doc/guix.texi:195 doc/guix.texi:1850 doc/guix.texi:2044 doc/guix.texi:2045
+#: doc/guix.texi:203 doc/guix.texi:1937 doc/guix.texi:2131 doc/guix.texi:2132
 #, no-wrap
 msgid "Guided Graphical Installation"
 msgstr "Geführte grafische Installation"
 
 #. type: menuentry
-#: doc/guix.texi:195 doc/guix.texi:1850
+#: doc/guix.texi:203 doc/guix.texi:1937
 msgid "Easy graphical installation."
 msgstr "Leichte grafische Installation."
 
 #. type: section
-#: doc/guix.texi:195 doc/guix.texi:197 doc/guix.texi:1850 doc/guix.texi:2075
-#: doc/guix.texi:2076
+#: doc/guix.texi:203 doc/guix.texi:205 doc/guix.texi:1937 doc/guix.texi:2162
+#: doc/guix.texi:2163
 #, no-wrap
 msgid "Manual Installation"
 msgstr "Manuelle Installation"
 
 #. type: menuentry
-#: doc/guix.texi:195 doc/guix.texi:1850
+#: doc/guix.texi:203 doc/guix.texi:1937
 msgid "Manual installation for wizards."
 msgstr "Manuelle Installation für Zauberer."
 
 #. type: section
-#: doc/guix.texi:195 doc/guix.texi:1850 doc/guix.texi:2437 doc/guix.texi:2438
+#: doc/guix.texi:203 doc/guix.texi:1937 doc/guix.texi:2530 doc/guix.texi:2531
 #, no-wrap
 msgid "After System Installation"
 msgstr "Nach der Systeminstallation"
 
 #. type: menuentry
-#: doc/guix.texi:195 doc/guix.texi:1850
+#: doc/guix.texi:203 doc/guix.texi:1937
 msgid "When installation succeeded."
 msgstr "Wenn die Installation erfolgreich war."
 
 #. type: node
-#: doc/guix.texi:195 doc/guix.texi:1850 doc/guix.texi:2470
+#: doc/guix.texi:203 doc/guix.texi:1937 doc/guix.texi:2564
 #, no-wrap
 msgid "Installing Guix in a VM"
 msgstr "Guix in einer VM installieren"
 
 #. type: menuentry
-#: doc/guix.texi:195 doc/guix.texi:1850
+#: doc/guix.texi:203 doc/guix.texi:1937
 msgid "Guix System playground."
 msgstr "Ein „Guix System“-Spielplatz."
 
 #. type: section
-#: doc/guix.texi:195 doc/guix.texi:1850 doc/guix.texi:2521 doc/guix.texi:2522
+#: doc/guix.texi:203 doc/guix.texi:1937 doc/guix.texi:2615 doc/guix.texi:2616
 #, no-wrap
 msgid "Building the Installation Image"
 msgstr "Ein Abbild zur Installation erstellen"
 
 #. type: menuentry
-#: doc/guix.texi:195 doc/guix.texi:1850
+#: doc/guix.texi:203 doc/guix.texi:1937
 msgid "How this comes to be."
 msgstr "Wie ein solches entsteht."
 
 # Commas in node names would prevent the terminal info viewer from following links.
 #. type: node
-#: doc/guix.texi:200 doc/guix.texi:2093 doc/guix.texi:2095
+#: doc/guix.texi:208 doc/guix.texi:2180 doc/guix.texi:2182
 #, no-wrap
 msgid "Keyboard Layout and Networking and Partitioning"
 msgstr "Tastaturbelegung und Netzwerkanbindung und Partitionierung"
 
 #. type: menuentry
-#: doc/guix.texi:200 doc/guix.texi:2093
+#: doc/guix.texi:208 doc/guix.texi:2180
 msgid "Initial setup."
-msgstr "Erstes Einrichten."
+msgstr "Vorab."
 
 #. type: subsection
-#: doc/guix.texi:200 doc/guix.texi:2093 doc/guix.texi:2349 doc/guix.texi:2350
+#: doc/guix.texi:208 doc/guix.texi:2180 doc/guix.texi:2442 doc/guix.texi:2443
 #, no-wrap
 msgid "Proceeding with the Installation"
 msgstr "Fortfahren mit der Installation"
 
 #. type: menuentry
-#: doc/guix.texi:200 doc/guix.texi:2093
+#: doc/guix.texi:208 doc/guix.texi:2180
 msgid "Installing."
 msgstr "Installieren."
 
 #. type: section
-#: doc/guix.texi:214 doc/guix.texi:2587 doc/guix.texi:2589 doc/guix.texi:2590
+#: doc/guix.texi:221 doc/guix.texi:2883 doc/guix.texi:2885 doc/guix.texi:2886
 #, no-wrap
 msgid "Features"
 msgstr "Funktionalitäten"
 
 #. type: menuentry
-#: doc/guix.texi:214 doc/guix.texi:2587
+#: doc/guix.texi:221 doc/guix.texi:2883
 msgid "How Guix will make your life brighter."
 msgstr "Wie Guix Ihr Leben schöner machen wird."
 
 #. type: node
-#: doc/guix.texi:214 doc/guix.texi:2587 doc/guix.texi:2675
+#: doc/guix.texi:221 doc/guix.texi:2883 doc/guix.texi:2975
 #, no-wrap
 msgid "Invoking guix package"
 msgstr "Aufruf von guix package"
 
 #. type: menuentry
-#: doc/guix.texi:214 doc/guix.texi:2587
+#: doc/guix.texi:221 doc/guix.texi:2883
 msgid "Package installation, removal, etc."
 msgstr "Pakete installieren, entfernen usw."
 
 #. type: section
-#: doc/guix.texi:214 doc/guix.texi:216 doc/guix.texi:2587 doc/guix.texi:3211
-#: doc/guix.texi:3212
+#: doc/guix.texi:221 doc/guix.texi:223 doc/guix.texi:2883 doc/guix.texi:3544
+#: doc/guix.texi:3545
 #, no-wrap
 msgid "Substitutes"
 msgstr "Substitute"
 
 #. type: menuentry
-#: doc/guix.texi:214 doc/guix.texi:2587
+#: doc/guix.texi:221 doc/guix.texi:2883
 msgid "Downloading pre-built binaries."
 msgstr "Vorerstelle Binärdateien herunterladen."
 
 #. type: section
-#: doc/guix.texi:214 doc/guix.texi:2587 doc/guix.texi:3434 doc/guix.texi:3435
+#: doc/guix.texi:221 doc/guix.texi:2883 doc/guix.texi:3875 doc/guix.texi:3876
 #, no-wrap
 msgid "Packages with Multiple Outputs"
 msgstr "Pakete mit mehreren Ausgaben."
 
 #. type: menuentry
-#: doc/guix.texi:214 doc/guix.texi:2587
+#: doc/guix.texi:221 doc/guix.texi:2883
 msgid "Single source package, multiple outputs."
 msgstr "Ein Quellpaket, mehrere Ausgaben."
 
 #. type: node
-#: doc/guix.texi:214 doc/guix.texi:2587 doc/guix.texi:3488
+#: doc/guix.texi:221 doc/guix.texi:2883 doc/guix.texi:3929
 #, no-wrap
 msgid "Invoking guix gc"
 msgstr "Aufruf von guix gc"
 
 #. type: menuentry
-#: doc/guix.texi:214 doc/guix.texi:2587
+#: doc/guix.texi:221 doc/guix.texi:2883
 msgid "Running the garbage collector."
 msgstr "Den Müllsammler laufen lassen."
 
 #. type: node
-#: doc/guix.texi:214 doc/guix.texi:2587 doc/guix.texi:3698
+#: doc/guix.texi:221 doc/guix.texi:2883 doc/guix.texi:4139
 #, no-wrap
 msgid "Invoking guix pull"
 msgstr "Aufruf von guix pull"
 
 #. type: menuentry
-#: doc/guix.texi:214 doc/guix.texi:2587
+#: doc/guix.texi:221 doc/guix.texi:2883
 msgid "Fetching the latest Guix and distribution."
 msgstr "Das neueste Guix samt Distribution laden."
 
-#. type: section
-#: doc/guix.texi:214 doc/guix.texi:2587 doc/guix.texi:3915 doc/guix.texi:3916
-#, no-wrap
-msgid "Channels"
-msgstr "Kanäle"
-
-#. type: menuentry
-#: doc/guix.texi:214 doc/guix.texi:2587
-msgid "Customizing the package collection."
-msgstr "Die Paketsammlung anpassen."
-
 #. type: node
-#: doc/guix.texi:214 doc/guix.texi:2587 doc/guix.texi:4206
+#: doc/guix.texi:221 doc/guix.texi:2883 doc/guix.texi:4386
 #, no-wrap
 msgid "Invoking guix time-machine"
 msgstr "Aufruf von time-machine"
 
 #. type: menuentry
-#: doc/guix.texi:214 doc/guix.texi:2587
+#: doc/guix.texi:221 doc/guix.texi:2883
 msgid "Running an older revision of Guix."
 msgstr "Alte Guix-Versionen verwenden."
 
 #. type: section
-#: doc/guix.texi:214 doc/guix.texi:2587 doc/guix.texi:4261 doc/guix.texi:4262
+#: doc/guix.texi:221 doc/guix.texi:2883 doc/guix.texi:4441 doc/guix.texi:4442
 #, no-wrap
 msgid "Inferiors"
 msgstr "Untergeordnete"
 
 #. type: menuentry
-#: doc/guix.texi:214 doc/guix.texi:2587
+#: doc/guix.texi:221 doc/guix.texi:2883
 msgid "Interacting with another revision of Guix."
 msgstr "Mit einer anderen Version von Guix interagieren."
 
 #. type: node
-#: doc/guix.texi:214 doc/guix.texi:2587 doc/guix.texi:4389
+#: doc/guix.texi:221 doc/guix.texi:2883 doc/guix.texi:4569
 #, no-wrap
 msgid "Invoking guix describe"
 msgstr "Aufruf von guix describe"
 
 #. type: menuentry
-#: doc/guix.texi:214 doc/guix.texi:2587
+#: doc/guix.texi:221 doc/guix.texi:2883
 msgid "Display information about your Guix revision."
 msgstr "Informationen über Ihre Guix-Version anzeigen."
 
 #. type: node
-#: doc/guix.texi:214 doc/guix.texi:2587 doc/guix.texi:4470
+#: doc/guix.texi:221 doc/guix.texi:2883 doc/guix.texi:4664
 #, no-wrap
 msgid "Invoking guix archive"
 msgstr "Aufruf von guix archive"
 
 #. type: menuentry
-#: doc/guix.texi:214 doc/guix.texi:2587
+#: doc/guix.texi:221 doc/guix.texi:2883
 msgid "Exporting and importing store files."
 msgstr "Import und Export von Store-Dateien."
 
 #. type: subsection
-#: doc/guix.texi:223 doc/guix.texi:3234 doc/guix.texi:3236 doc/guix.texi:3237
+#: doc/guix.texi:231 doc/guix.texi:3568 doc/guix.texi:3570 doc/guix.texi:3571
 #, no-wrap
 msgid "Official Substitute Server"
 msgstr "Offizieller Substitut-Server"
 
 #. type: menuentry
-#: doc/guix.texi:223 doc/guix.texi:3234
+#: doc/guix.texi:231 doc/guix.texi:3568
 msgid "One particular source of substitutes."
 msgstr "Eine besondere Quelle von Substituten."
 
 #. type: subsection
-#: doc/guix.texi:223 doc/guix.texi:3234 doc/guix.texi:3265 doc/guix.texi:3266
+#: doc/guix.texi:231 doc/guix.texi:3568 doc/guix.texi:3599 doc/guix.texi:3600
 #, no-wrap
 msgid "Substitute Server Authorization"
 msgstr "Substitut-Server autorisieren"
 
 #. type: menuentry
-#: doc/guix.texi:223 doc/guix.texi:3234
+#: doc/guix.texi:231 doc/guix.texi:3568
 msgid "How to enable or disable substitutes."
 msgstr "Wie man Substitute an- und abschaltet."
 
 #. type: subsection
-#: doc/guix.texi:223 doc/guix.texi:3234 doc/guix.texi:3329 doc/guix.texi:3330
+#: doc/guix.texi:231 doc/guix.texi:3568 doc/guix.texi:3668 doc/guix.texi:3669
+#, no-wrap
+msgid "Getting Substitutes from Other Servers"
+msgstr "Substitute von anderen Servern holen"
+
+#. type: menuentry
+#: doc/guix.texi:231 doc/guix.texi:3568
+msgid "Substitute diversity."
+msgstr "Substitutevielfalt."
+
+#. type: subsection
+#: doc/guix.texi:231 doc/guix.texi:3568 doc/guix.texi:3770 doc/guix.texi:3771
 #, no-wrap
 msgid "Substitute Authentication"
 msgstr "Substitutauthentifizierung"
 
 #. type: menuentry
-#: doc/guix.texi:223 doc/guix.texi:3234
+#: doc/guix.texi:231 doc/guix.texi:3568
 msgid "How Guix verifies substitutes."
 msgstr "Wie Guix Substitute verifiziert."
 
 #. type: subsection
-#: doc/guix.texi:223 doc/guix.texi:3234 doc/guix.texi:3364 doc/guix.texi:3365
+#: doc/guix.texi:231 doc/guix.texi:3568 doc/guix.texi:3805 doc/guix.texi:3806
 #, no-wrap
 msgid "Proxy Settings"
 msgstr "Proxy-Einstellungen"
 
 #. type: menuentry
-#: doc/guix.texi:223 doc/guix.texi:3234
+#: doc/guix.texi:231 doc/guix.texi:3568
 msgid "How to get substitutes via proxy."
 msgstr "Wie Sie Substitute über einen Proxy beziehen."
 
 #. type: subsection
-#: doc/guix.texi:223 doc/guix.texi:3234 doc/guix.texi:3376 doc/guix.texi:3377
+#: doc/guix.texi:231 doc/guix.texi:3568 doc/guix.texi:3817 doc/guix.texi:3818
 #, no-wrap
 msgid "Substitution Failure"
 msgstr "Fehler bei der Substitution"
 
 #. type: menuentry
-#: doc/guix.texi:223 doc/guix.texi:3234
+#: doc/guix.texi:231 doc/guix.texi:3568
 msgid "What happens when substitution fails."
 msgstr "Was passiert, wenn die Substitution fehlschlägt."
 
 #. type: subsection
-#: doc/guix.texi:223 doc/guix.texi:3234 doc/guix.texi:3404 doc/guix.texi:3405
+#: doc/guix.texi:231 doc/guix.texi:3568 doc/guix.texi:3845 doc/guix.texi:3846
 #, no-wrap
 msgid "On Trusting Binaries"
 msgstr "Vom Vertrauen gegenüber Binärdateien"
 
 #. type: menuentry
-#: doc/guix.texi:223 doc/guix.texi:3234
+#: doc/guix.texi:231 doc/guix.texi:3568
 msgid "How can you trust that binary blob?"
 msgstr "Wie können Sie diesem binären Blob trauen?"
 
+#. type: section
+#: doc/guix.texi:244 doc/guix.texi:4884 doc/guix.texi:4886 doc/guix.texi:4887
+#, no-wrap
+msgid "Specifying Additional Channels"
+msgstr "Weitere Kanäle angeben"
+
+#. type: menuentry
+#: doc/guix.texi:244 doc/guix.texi:4884
+msgid "Extending the package collection."
+msgstr "Die Paketsammlung erweitern."
+
+#. type: section
+#: doc/guix.texi:244 doc/guix.texi:4884 doc/guix.texi:4936 doc/guix.texi:4937
+#, no-wrap
+msgid "Using a Custom Guix Channel"
+msgstr "Eigenen Guix-Kanal benutzen"
+
+#. type: menuentry
+#: doc/guix.texi:244 doc/guix.texi:4884
+msgid "Using a customized Guix."
+msgstr "Ein angepasstes Guix benutzen."
+
+#. type: section
+#: doc/guix.texi:244 doc/guix.texi:4884 doc/guix.texi:4958 doc/guix.texi:4959
+#, no-wrap
+msgid "Replicating Guix"
+msgstr "Guix nachbilden"
+
+#. type: menuentry
+#: doc/guix.texi:244 doc/guix.texi:4884
+msgid "Running the @emph{exact same} Guix."
+msgstr "Haargenau dasselbe Guix bekommen."
+
+#. type: section
+#: doc/guix.texi:244 doc/guix.texi:4884 doc/guix.texi:4999 doc/guix.texi:5000
+#, no-wrap
+msgid "Channel Authentication"
+msgstr "Kanalauthentifizierung"
+
+#. type: menuentry
+#: doc/guix.texi:244 doc/guix.texi:4884
+msgid "How Guix verifies what it fetches."
+msgstr "Wie Guix seine Aktualisierung verifiziert."
+
+#. type: section
+#: doc/guix.texi:244 doc/guix.texi:4884 doc/guix.texi:5039 doc/guix.texi:5040
+#, no-wrap
+msgid "Creating a Channel"
+msgstr "Einen Kanal erstellen"
+
+#. type: menuentry
+#: doc/guix.texi:244 doc/guix.texi:4884
+msgid "How to write your custom channel."
+msgstr "Wie Sie Ihren eigenen Kanal schreiben."
+
+#. type: section
+#: doc/guix.texi:244 doc/guix.texi:4884 doc/guix.texi:5106 doc/guix.texi:5107
+#, no-wrap
+msgid "Package Modules in a Sub-directory"
+msgstr "Paketmodule in einem Unterverzeichnis"
+
+#. type: menuentry
+#: doc/guix.texi:244 doc/guix.texi:4884
+msgid "Specifying the channel's package modules location."
+msgstr "Den Ort der Paketmodule des Kanals angeben."
+
+#. type: section
+#: doc/guix.texi:244 doc/guix.texi:4884 doc/guix.texi:5120 doc/guix.texi:5121
+#, no-wrap
+msgid "Declaring Channel Dependencies"
+msgstr "Kanalabhängigkeiten deklarieren"
+
+#. type: menuentry
+#: doc/guix.texi:244 doc/guix.texi:4884
+msgid "How to depend on other channels."
+msgstr "Abhängigkeiten von anderen Kanälen festlegen."
+
+#. type: section
+#: doc/guix.texi:244 doc/guix.texi:4884 doc/guix.texi:5162 doc/guix.texi:5163
+#, no-wrap
+msgid "Specifying Channel Authorizations"
+msgstr "Weitere Kanalautorisierungen angeben"
+
+#. type: menuentry
+#: doc/guix.texi:244 doc/guix.texi:4884
+msgid "Defining channel authors authorizations."
+msgstr "Autorisierungen von Kanalautoren definieren."
+
+#. type: section
+#: doc/guix.texi:244 doc/guix.texi:4884 doc/guix.texi:5263 doc/guix.texi:5264
+#, no-wrap
+msgid "Primary URL"
+msgstr "Primäre URL"
+
+#. type: menuentry
+#: doc/guix.texi:244 doc/guix.texi:4884
+msgid "Distinguishing mirror to original."
+msgstr "Spiegelserver vom Original unterscheiden."
+
+#. type: section
+#: doc/guix.texi:244 doc/guix.texi:4884 doc/guix.texi:5286 doc/guix.texi:5287
+#, no-wrap
+msgid "Writing Channel News"
+msgstr "Kanalneuigkeiten verfassen"
+
+#. type: menuentry
+#: doc/guix.texi:244 doc/guix.texi:4884
+msgid "Communicating information to channel's users."
+msgstr "Den Kanalnutzern Informationen mitteilen."
+
 #. type: node
-#: doc/guix.texi:228 doc/guix.texi:4665 doc/guix.texi:4667
+#: doc/guix.texi:251 doc/guix.texi:5376 doc/guix.texi:5378
 #, no-wrap
 msgid "Invoking guix environment"
 msgstr "Aufruf von guix environment"
 
 #. type: menuentry
-#: doc/guix.texi:228 doc/guix.texi:4665
+#: doc/guix.texi:251 doc/guix.texi:5376
 msgid "Setting up development environments."
 msgstr "Entwicklungsumgebungen einrichten."
 
 #. type: node
-#: doc/guix.texi:228 doc/guix.texi:4665 doc/guix.texi:5004
+#: doc/guix.texi:251 doc/guix.texi:5376 doc/guix.texi:5732
 #, no-wrap
 msgid "Invoking guix pack"
 msgstr "Aufruf von guix pack"
 
 #. type: menuentry
-#: doc/guix.texi:228 doc/guix.texi:4665
+#: doc/guix.texi:251 doc/guix.texi:5376
 msgid "Creating software bundles."
 msgstr "Software-Bündel erstellen."
 
 #. type: section
-#: doc/guix.texi:239 doc/guix.texi:5367 doc/guix.texi:5369 doc/guix.texi:5370
+#: doc/guix.texi:251 doc/guix.texi:5376 doc/guix.texi:6089 doc/guix.texi:6090
+#, no-wrap
+msgid "The GCC toolchain"
+msgstr "GCC-Toolchain"
+
+#. type: menuentry
+#: doc/guix.texi:251 doc/guix.texi:5376
+msgid "Working with languages supported by GCC."
+msgstr "Arbeiten mit vom GCC unterstützten Sprachen."
+
+#. type: node
+#: doc/guix.texi:251 doc/guix.texi:5376 doc/guix.texi:6115
+#, no-wrap
+msgid "Invoking guix git authenticate"
+msgstr "Aufruf von guix git authenticate"
+
+#. type: menuentry
+#: doc/guix.texi:251 doc/guix.texi:5376
+msgid "Authenticating Git repositories."
+msgstr "Git-Repositorys authentifizieren."
+
+#. type: section
+#: doc/guix.texi:265 doc/guix.texi:6217 doc/guix.texi:6219 doc/guix.texi:6220
 #, no-wrap
 msgid "Package Modules"
 msgstr "Paketmodule"
 
 #. type: menuentry
-#: doc/guix.texi:239 doc/guix.texi:5367
+#: doc/guix.texi:265 doc/guix.texi:6217
 msgid "Packages from the programmer's viewpoint."
 msgstr "Pakete aus Sicht des Programmierers."
 
 #. type: section
-#: doc/guix.texi:239 doc/guix.texi:241 doc/guix.texi:5367 doc/guix.texi:5431
-#: doc/guix.texi:5432
+#: doc/guix.texi:265 doc/guix.texi:267 doc/guix.texi:6217 doc/guix.texi:6281
+#: doc/guix.texi:6282
 #, no-wrap
 msgid "Defining Packages"
 msgstr "Pakete definieren"
 
 #. type: menuentry
-#: doc/guix.texi:239 doc/guix.texi:5367
+#: doc/guix.texi:265 doc/guix.texi:6217
 msgid "Defining new packages."
 msgstr "Wie Sie neue Pakete definieren."
 
 #. type: section
-#: doc/guix.texi:239 doc/guix.texi:5367 doc/guix.texi:5931 doc/guix.texi:5932
+#: doc/guix.texi:265 doc/guix.texi:6217 doc/guix.texi:6837 doc/guix.texi:6838
+#, no-wrap
+msgid "Defining Package Variants"
+msgstr "Paketvarianten definieren"
+
+#. type: menuentry
+#: doc/guix.texi:265 doc/guix.texi:6217
+msgid "Customizing packages."
+msgstr "Pakete anpassen."
+
+#. type: section
+#: doc/guix.texi:265 doc/guix.texi:6217 doc/guix.texi:7069 doc/guix.texi:7070
 #, no-wrap
 msgid "Build Systems"
 msgstr "Erstellungssysteme"
 
 #. type: menuentry
-#: doc/guix.texi:239 doc/guix.texi:5367
+#: doc/guix.texi:265 doc/guix.texi:6217
 msgid "Specifying how packages are built."
 msgstr "Angeben, wie Pakete erstellt werden."
 
+#. type: subsection
+#: doc/guix.texi:265 doc/guix.texi:6217 doc/guix.texi:7994 doc/guix.texi:7995
+#: doc/guix.texi:8360
+#, no-wrap
+msgid "Build Phases"
+msgstr "Erstellungsphasen"
+
+#. type: menuentry
+#: doc/guix.texi:265 doc/guix.texi:6217
+msgid "Phases of the build process of a package."
+msgstr "Die Phasen im Erstellungsprozess eines Pakets."
+
+#. type: section
+#: doc/guix.texi:265 doc/guix.texi:6217 doc/guix.texi:8150 doc/guix.texi:8151
+#, no-wrap
+msgid "Build Utilities"
+msgstr "Werkzeuge zur Erstellung"
+
+#. type: menuentry
+#: doc/guix.texi:265 doc/guix.texi:6217
+msgid "Helpers for your package definitions and more."
+msgstr "Helferlein für Ihre Paketdefinitionen und anderes."
+
 #. type: section
-#: doc/guix.texi:239 doc/guix.texi:5367 doc/guix.texi:6817 doc/guix.texi:6818
+#: doc/guix.texi:265 doc/guix.texi:6217 doc/guix.texi:8437 doc/guix.texi:8438
 #, no-wrap
 msgid "The Store"
 msgstr "Der Store"
 
 #. type: menuentry
-#: doc/guix.texi:239 doc/guix.texi:5367
+#: doc/guix.texi:265 doc/guix.texi:6217
 msgid "Manipulating the package store."
 msgstr "Den Paket-Store verändern."
 
 #. type: section
-#: doc/guix.texi:239 doc/guix.texi:5367 doc/guix.texi:6970 doc/guix.texi:6971
+#: doc/guix.texi:265 doc/guix.texi:6217 doc/guix.texi:8590 doc/guix.texi:8591
 #, no-wrap
 msgid "Derivations"
 msgstr "Ableitungen"
 
 #. type: menuentry
-#: doc/guix.texi:239 doc/guix.texi:5367
+#: doc/guix.texi:265 doc/guix.texi:6217
 msgid "Low-level interface to package derivations."
 msgstr "Systemnahe Schnittstelle für Paketableitungen."
 
 #. type: section
-#: doc/guix.texi:239 doc/guix.texi:5367 doc/guix.texi:7164 doc/guix.texi:7165
+#: doc/guix.texi:265 doc/guix.texi:6217 doc/guix.texi:8784 doc/guix.texi:8785
 #, no-wrap
 msgid "The Store Monad"
 msgstr "Die Store-Monade"
 
 #. type: menuentry
-#: doc/guix.texi:239 doc/guix.texi:5367
+#: doc/guix.texi:265 doc/guix.texi:6217
 msgid "Purely functional interface to the store."
 msgstr "Rein funktionale Schnittstelle zum Store."
 
 #. type: section
-#: doc/guix.texi:239 doc/guix.texi:5367 doc/guix.texi:7479 doc/guix.texi:7480
+#: doc/guix.texi:265 doc/guix.texi:6217 doc/guix.texi:9103 doc/guix.texi:9104
 #, no-wrap
 msgid "G-Expressions"
 msgstr "G-Ausdrücke"
 
 #. type: menuentry
-#: doc/guix.texi:239 doc/guix.texi:5367
+#: doc/guix.texi:265 doc/guix.texi:6217
 msgid "Manipulating build expressions."
 msgstr "Erstellungsausdrücke verarbeiten."
 
 #. type: node
-#: doc/guix.texi:239 doc/guix.texi:5367 doc/guix.texi:8077
+#: doc/guix.texi:265 doc/guix.texi:6217 doc/guix.texi:9732
 #, no-wrap
 msgid "Invoking guix repl"
 msgstr "Aufruf von guix repl"
 
 #. type: menuentry
-#: doc/guix.texi:239 doc/guix.texi:5367
-msgid "Fiddling with Guix interactively."
-msgstr "Interaktiv an Guix herumbasteln."
+#: doc/guix.texi:265
+msgid "Programming Guix in Guile."
+msgstr "Guix in Guile programmieren."
 
 #. type: node
-#: doc/guix.texi:244 doc/guix.texi:5699 doc/guix.texi:5702
+#: doc/guix.texi:270 doc/guix.texi:6484 doc/guix.texi:6487
 #, no-wrap
 msgid "package Reference"
 msgstr "„package“-Referenz"
 
 #. type: menuentry
-#: doc/guix.texi:244 doc/guix.texi:5699
+#: doc/guix.texi:270 doc/guix.texi:6484
 msgid "The package data type."
 msgstr "Der Datentyp für Pakete."
 
 #. type: node
-#: doc/guix.texi:244 doc/guix.texi:5699 doc/guix.texi:5843
+#: doc/guix.texi:270 doc/guix.texi:6484 doc/guix.texi:6658
 #, no-wrap
 msgid "origin Reference"
 msgstr "„origin“-Referenz"
 
 #. type: menuentry
-#: doc/guix.texi:244 doc/guix.texi:5699
+#: doc/guix.texi:270 doc/guix.texi:6484
 msgid "The origin data type."
 msgstr "Datentyp für Paketursprünge."
 
 #. type: node
-#: doc/guix.texi:262 doc/guix.texi:8166 doc/guix.texi:8168
+#: doc/guix.texi:288 doc/guix.texi:9856 doc/guix.texi:9858
 #, no-wrap
 msgid "Invoking guix build"
 msgstr "Aufruf von guix build"
 
 #. type: menuentry
-#: doc/guix.texi:262 doc/guix.texi:8166
+#: doc/guix.texi:288 doc/guix.texi:9856
 msgid "Building packages from the command line."
 msgstr "Pakete aus der Befehlszeile heraus erstellen."
 
 #. type: node
-#: doc/guix.texi:262 doc/guix.texi:8166 doc/guix.texi:8829
+#: doc/guix.texi:288 doc/guix.texi:9856 doc/guix.texi:10637
 #, no-wrap
 msgid "Invoking guix edit"
 msgstr "Aufruf von guix edit"
 
 #. type: menuentry
-#: doc/guix.texi:262 doc/guix.texi:8166
+#: doc/guix.texi:288 doc/guix.texi:9856
 msgid "Editing package definitions."
 msgstr "Paketdefinitionen bearbeiten."
 
 #. type: node
-#: doc/guix.texi:262 doc/guix.texi:8166 doc/guix.texi:8859
+#: doc/guix.texi:288 doc/guix.texi:9856 doc/guix.texi:10667
 #, no-wrap
 msgid "Invoking guix download"
 msgstr "Aufruf von guix download"
 
 #. type: menuentry
-#: doc/guix.texi:262 doc/guix.texi:8166
+#: doc/guix.texi:288 doc/guix.texi:9856
 msgid "Downloading a file and printing its hash."
-msgstr "Herunterladen einer Datei und Ausgabe ihres Hashes."
+msgstr "Eine Datei herunterladen und ihre Hash-Prüfsumme ausgeben."
 
 #. type: node
-#: doc/guix.texi:262 doc/guix.texi:8166 doc/guix.texi:8912
+#: doc/guix.texi:288 doc/guix.texi:9856 doc/guix.texi:10725
 #, no-wrap
 msgid "Invoking guix hash"
 msgstr "Aufruf von guix hash"
 
 #. type: menuentry
-#: doc/guix.texi:262 doc/guix.texi:8166
+#: doc/guix.texi:288 doc/guix.texi:9856
 msgid "Computing the cryptographic hash of a file."
-msgstr "Den kryptografischen Hash einer Datei berechnen."
+msgstr "Die kryptografische Prüfsumme einer Datei berechnen."
 
 #. type: node
-#: doc/guix.texi:262 doc/guix.texi:8166 doc/guix.texi:8974
+#: doc/guix.texi:288 doc/guix.texi:9856 doc/guix.texi:10797
 #, no-wrap
 msgid "Invoking guix import"
 msgstr "Aufruf von guix import"
 
 #. type: menuentry
-#: doc/guix.texi:262 doc/guix.texi:8166
+#: doc/guix.texi:288 doc/guix.texi:9856
 msgid "Importing package definitions."
 msgstr "Paketdefinitionen importieren."
 
 #. type: node
-#: doc/guix.texi:262 doc/guix.texi:8166 doc/guix.texi:9405
+#: doc/guix.texi:288 doc/guix.texi:9856 doc/guix.texi:11226
 #, no-wrap
 msgid "Invoking guix refresh"
 msgstr "Aufruf von guix refresh"
 
 #. type: menuentry
-#: doc/guix.texi:262 doc/guix.texi:8166
+#: doc/guix.texi:288 doc/guix.texi:9856
 msgid "Updating package definitions."
 msgstr "Paketdefinitionen aktualisieren."
 
 #. type: node
-#: doc/guix.texi:262 doc/guix.texi:8166 doc/guix.texi:9726
+#: doc/guix.texi:288 doc/guix.texi:9856 doc/guix.texi:11549
 #, no-wrap
 msgid "Invoking guix lint"
 msgstr "Aufruf von guix lint"
 
 #. type: menuentry
-#: doc/guix.texi:262 doc/guix.texi:8166
+#: doc/guix.texi:288 doc/guix.texi:9856
 msgid "Finding errors in package definitions."
 msgstr "Fehler in Paketdefinitionen finden."
 
 #. type: node
-#: doc/guix.texi:262 doc/guix.texi:8166 doc/guix.texi:9875
+#: doc/guix.texi:288 doc/guix.texi:9856 doc/guix.texi:11718
 #, no-wrap
 msgid "Invoking guix size"
 msgstr "Aufruf von guix size"
 
 #. type: menuentry
-#: doc/guix.texi:262 doc/guix.texi:8166
+#: doc/guix.texi:288 doc/guix.texi:9856
 msgid "Profiling disk usage."
 msgstr "Plattenplatzverbrauch profilieren."
 
 #. type: node
-#: doc/guix.texi:262 doc/guix.texi:8166 doc/guix.texi:10006
+#: doc/guix.texi:288 doc/guix.texi:9856 doc/guix.texi:11862
 #, no-wrap
 msgid "Invoking guix graph"
 msgstr "Aufruf von guix graph"
 
 #. type: menuentry
-#: doc/guix.texi:262 doc/guix.texi:8166
+#: doc/guix.texi:288 doc/guix.texi:9856
 msgid "Visualizing the graph of packages."
 msgstr "Den Paketgraphen visualisieren."
 
 #. type: node
-#: doc/guix.texi:262 doc/guix.texi:8166 doc/guix.texi:10228
+#: doc/guix.texi:288 doc/guix.texi:9856 doc/guix.texi:12129
 #, no-wrap
 msgid "Invoking guix publish"
 msgstr "Aufruf von guix publish"
 
 #. type: menuentry
-#: doc/guix.texi:262 doc/guix.texi:8166
+#: doc/guix.texi:288 doc/guix.texi:9856
 msgid "Sharing substitutes."
 msgstr "Substitute teilen."
 
 #. type: node
-#: doc/guix.texi:262 doc/guix.texi:8166 doc/guix.texi:10458
+#: doc/guix.texi:288 doc/guix.texi:9856 doc/guix.texi:12377
 #, no-wrap
 msgid "Invoking guix challenge"
 msgstr "Aufruf von guix challenge"
 
 #. type: menuentry
-#: doc/guix.texi:262 doc/guix.texi:8166
+#: doc/guix.texi:288 doc/guix.texi:9856
 msgid "Challenging substitute servers."
 msgstr "Die Substitut-Server anfechten."
 
 #. type: node
-#: doc/guix.texi:262 doc/guix.texi:8166 doc/guix.texi:10641
+#: doc/guix.texi:288 doc/guix.texi:9856 doc/guix.texi:12560
 #, no-wrap
 msgid "Invoking guix copy"
 msgstr "Aufruf von guix copy"
 
 #. type: menuentry
-#: doc/guix.texi:262 doc/guix.texi:8166
+#: doc/guix.texi:288 doc/guix.texi:9856
 msgid "Copying to and from a remote store."
 msgstr "Mit einem entfernten Store Dateien austauschen."
 
 #. type: node
-#: doc/guix.texi:262 doc/guix.texi:8166 doc/guix.texi:10704
+#: doc/guix.texi:288 doc/guix.texi:9856 doc/guix.texi:12623
 #, no-wrap
 msgid "Invoking guix container"
 msgstr "Aufruf von guix container"
 
 #. type: menuentry
-#: doc/guix.texi:262 doc/guix.texi:8166
+#: doc/guix.texi:288 doc/guix.texi:9856
 msgid "Process isolation."
 msgstr "Prozesse isolieren."
 
 #. type: node
-#: doc/guix.texi:262 doc/guix.texi:8166 doc/guix.texi:10758
+#: doc/guix.texi:288 doc/guix.texi:9856 doc/guix.texi:12677
 #, no-wrap
 msgid "Invoking guix weather"
 msgstr "Aufruf von guix weather"
 
 #. type: menuentry
-#: doc/guix.texi:262 doc/guix.texi:8166
+#: doc/guix.texi:288 doc/guix.texi:9856
 msgid "Assessing substitute availability."
 msgstr "Die Verfügbarkeit von Substituten einschätzen."
 
 #. type: node
-#: doc/guix.texi:262 doc/guix.texi:8166 doc/guix.texi:10887
+#: doc/guix.texi:288 doc/guix.texi:9856 doc/guix.texi:12806
 #, no-wrap
 msgid "Invoking guix processes"
 msgstr "Aufruf von guix processes"
 
 #. type: menuentry
-#: doc/guix.texi:262 doc/guix.texi:8166
+#: doc/guix.texi:288 doc/guix.texi:9856
 msgid "Listing client processes."
 msgstr "Auflisten der Client-Prozesse"
 
 #. type: section
-#: doc/guix.texi:264 doc/guix.texi:8169
+#: doc/guix.texi:290 doc/guix.texi:9859
 #, no-wrap
 msgid "Invoking @command{guix build}"
 msgstr "Aufruf von @command{guix build}"
 
 #. type: subsection
-#: doc/guix.texi:269 doc/guix.texi:8220 doc/guix.texi:8222 doc/guix.texi:8223
+#: doc/guix.texi:295 doc/guix.texi:9910 doc/guix.texi:9912 doc/guix.texi:9913
 #, no-wrap
 msgid "Common Build Options"
 msgstr "Gemeinsame Erstellungsoptionen"
 
 #. type: menuentry
-#: doc/guix.texi:269 doc/guix.texi:8220
+#: doc/guix.texi:295 doc/guix.texi:9910
 msgid "Build options for most commands."
 msgstr "Erstellungsoptionen für die meisten Befehle."
 
 #. type: subsection
-#: doc/guix.texi:269 doc/guix.texi:8220 doc/guix.texi:8378 doc/guix.texi:8379
+#: doc/guix.texi:295 doc/guix.texi:9910 doc/guix.texi:10066
+#: doc/guix.texi:10067
 #, no-wrap
 msgid "Package Transformation Options"
 msgstr "Paketumwandlungsoptionen"
 
 #. type: menuentry
-#: doc/guix.texi:269 doc/guix.texi:8220
+#: doc/guix.texi:295 doc/guix.texi:9910
 msgid "Creating variants of packages."
 msgstr "Varianten von Paketen erzeugen."
 
 #. type: subsection
-#: doc/guix.texi:269 doc/guix.texi:8220 doc/guix.texi:8527 doc/guix.texi:8528
+#: doc/guix.texi:295 doc/guix.texi:9910 doc/guix.texi:10326
+#: doc/guix.texi:10327
 #, no-wrap
 msgid "Additional Build Options"
 msgstr "Zusätzliche Erstellungsoptionen"
 
 #. type: menuentry
-#: doc/guix.texi:269 doc/guix.texi:8220
+#: doc/guix.texi:295 doc/guix.texi:9910
 msgid "Options specific to 'guix build'."
 msgstr "Optionen spezifisch für „guix build“."
 
 #. type: subsection
-#: doc/guix.texi:269 doc/guix.texi:8220 doc/guix.texi:8749 doc/guix.texi:8750
+#: doc/guix.texi:295 doc/guix.texi:9910 doc/guix.texi:10557
+#: doc/guix.texi:10558
 #, no-wrap
 msgid "Debugging Build Failures"
 msgstr "Fehlschläge beim Erstellen untersuchen"
 
 #. type: menuentry
-#: doc/guix.texi:269 doc/guix.texi:8220
+#: doc/guix.texi:295 doc/guix.texi:9910
 msgid "Real life packaging experience."
 msgstr "Praxiserfahrung bei der Paketerstellung."
 
 #. type: section
-#: doc/guix.texi:289 doc/guix.texi:10986 doc/guix.texi:10988
-#: doc/guix.texi:10989
+#: doc/guix.texi:315 doc/guix.texi:12905 doc/guix.texi:12907
+#: doc/guix.texi:12908
 #, no-wrap
 msgid "Using the Configuration System"
 msgstr "Das Konfigurationssystem nutzen"
 
 #. type: menuentry
-#: doc/guix.texi:289 doc/guix.texi:10986
+#: doc/guix.texi:315 doc/guix.texi:12905
 msgid "Customizing your GNU system."
 msgstr "Ihr GNU-System anpassen."
 
 #. type: node
-#: doc/guix.texi:289 doc/guix.texi:10986 doc/guix.texi:11224
+#: doc/guix.texi:315 doc/guix.texi:12905 doc/guix.texi:13147
 #, no-wrap
 msgid "operating-system Reference"
 msgstr "„operating-system“-Referenz"
 
 #. type: menuentry
-#: doc/guix.texi:289 doc/guix.texi:10986
+#: doc/guix.texi:315 doc/guix.texi:12905
 msgid "Detail of operating-system declarations."
 msgstr "Details der Betriebssystem-Deklarationen."
 
 #. type: section
-#: doc/guix.texi:289 doc/guix.texi:10986 doc/guix.texi:11432
-#: doc/guix.texi:11433
+#: doc/guix.texi:315 doc/guix.texi:12905 doc/guix.texi:13398
+#: doc/guix.texi:13399
 #, no-wrap
 msgid "File Systems"
 msgstr "Dateisysteme"
 
 #. type: menuentry
-#: doc/guix.texi:289 doc/guix.texi:10986
+#: doc/guix.texi:315 doc/guix.texi:12905
 msgid "Configuring file system mounts."
 msgstr "Die Dateisystemeinbindungen konfigurieren."
 
 #. type: section
-#: doc/guix.texi:289 doc/guix.texi:10986 doc/guix.texi:11605
-#: doc/guix.texi:11606
+#: doc/guix.texi:315 doc/guix.texi:12905 doc/guix.texi:13721
+#: doc/guix.texi:13722
 #, no-wrap
 msgid "Mapped Devices"
 msgstr "Zugeordnete Geräte"
 
 #. type: menuentry
-#: doc/guix.texi:289 doc/guix.texi:10986
+#: doc/guix.texi:315 doc/guix.texi:12905
 msgid "Block device extra processing."
 msgstr "Näheres zu blockorientierten Speichermedien."
 
 #. type: section
-#: doc/guix.texi:289 doc/guix.texi:10986 doc/guix.texi:11726
-#: doc/guix.texi:11727
+#: doc/guix.texi:315 doc/guix.texi:12905 doc/guix.texi:13842
+#: doc/guix.texi:13843
 #, no-wrap
 msgid "User Accounts"
 msgstr "Benutzerkonten"
 
 #. type: menuentry
-#: doc/guix.texi:289 doc/guix.texi:10986
+#: doc/guix.texi:315 doc/guix.texi:12905
 msgid "Specifying user accounts."
 msgstr "Benutzerkonten festlegen."
 
 #. type: section
-#: doc/guix.texi:289 doc/guix.texi:2102 doc/guix.texi:10986
-#: doc/guix.texi:11879 doc/guix.texi:11880
+#: doc/guix.texi:315 doc/guix.texi:2189 doc/guix.texi:12905
+#: doc/guix.texi:14018 doc/guix.texi:14019
 #, no-wrap
 msgid "Keyboard Layout"
 msgstr "Tastaturbelegung"
 
 #. type: menuentry
-#: doc/guix.texi:289 doc/guix.texi:10986
+#: doc/guix.texi:315 doc/guix.texi:12905
 msgid "How the system interprets key strokes."
 msgstr "Wie das System Tastendrücke interpretiert."
 
 #. type: section
-#: doc/guix.texi:289 doc/guix.texi:1584 doc/guix.texi:10986
-#: doc/guix.texi:12014 doc/guix.texi:12015
+#: doc/guix.texi:315 doc/guix.texi:1689 doc/guix.texi:12905
+#: doc/guix.texi:14164 doc/guix.texi:14165
 #, no-wrap
 msgid "Locales"
 msgstr "Locales"
 
 #. type: menuentry
-#: doc/guix.texi:289 doc/guix.texi:10986
+#: doc/guix.texi:315 doc/guix.texi:12905
 msgid "Language and cultural convention settings."
 msgstr "Sprache und kulturelle Konventionen."
 
 #. type: section
-#: doc/guix.texi:289 doc/guix.texi:291 doc/guix.texi:10986 doc/guix.texi:12154
-#: doc/guix.texi:12155
+#: doc/guix.texi:315 doc/guix.texi:317 doc/guix.texi:12905 doc/guix.texi:14304
+#: doc/guix.texi:14305
 #, no-wrap
 msgid "Services"
 msgstr "Dienste"
 
 #. type: menuentry
-#: doc/guix.texi:289 doc/guix.texi:10986
+#: doc/guix.texi:315 doc/guix.texi:12905
 msgid "Specifying system services."
 msgstr "Systemdienste festlegen."
 
 #. type: section
-#: doc/guix.texi:289 doc/guix.texi:10986 doc/guix.texi:25859
-#: doc/guix.texi:25860
+#: doc/guix.texi:315 doc/guix.texi:12905 doc/guix.texi:29901
+#: doc/guix.texi:29902
 #, no-wrap
 msgid "Setuid Programs"
 msgstr "Setuid-Programme"
 
 #. type: menuentry
-#: doc/guix.texi:289 doc/guix.texi:10986
+#: doc/guix.texi:315 doc/guix.texi:12905
 msgid "Programs running with root privileges."
 msgstr "Mit Administratorrechten startende Programme."
 
 #. type: section
-#: doc/guix.texi:289 doc/guix.texi:1733 doc/guix.texi:10986
-#: doc/guix.texi:25905 doc/guix.texi:25906
+#: doc/guix.texi:315 doc/guix.texi:1838 doc/guix.texi:12905
+#: doc/guix.texi:29947 doc/guix.texi:29948
 #, no-wrap
 msgid "X.509 Certificates"
 msgstr "X.509-Zertifikate"
 
 #. type: menuentry
-#: doc/guix.texi:289 doc/guix.texi:10986
+#: doc/guix.texi:315 doc/guix.texi:12905
 msgid "Authenticating HTTPS servers."
 msgstr "HTTPS-Server authentifizieren."
 
 #. type: section
-#: doc/guix.texi:289 doc/guix.texi:1627 doc/guix.texi:10986
-#: doc/guix.texi:25968 doc/guix.texi:25969
+#: doc/guix.texi:315 doc/guix.texi:1732 doc/guix.texi:12905
+#: doc/guix.texi:30010 doc/guix.texi:30011
 #, no-wrap
 msgid "Name Service Switch"
 msgstr "Name Service Switch"
 
 #. type: menuentry
-#: doc/guix.texi:289 doc/guix.texi:10986
+#: doc/guix.texi:315 doc/guix.texi:12905
 msgid "Configuring libc's name service switch."
 msgstr "Den Name Service Switch von libc konfigurieren."
 
 #. type: section
-#: doc/guix.texi:289 doc/guix.texi:10986 doc/guix.texi:26106
-#: doc/guix.texi:26107
+#: doc/guix.texi:315 doc/guix.texi:12905 doc/guix.texi:30148
+#: doc/guix.texi:30149
 #, no-wrap
 msgid "Initial RAM Disk"
 msgstr "Initiale RAM-Disk"
 
 #. type: menuentry
-#: doc/guix.texi:289 doc/guix.texi:10986
+#: doc/guix.texi:315 doc/guix.texi:12905
 msgid "Linux-Libre bootstrapping."
 msgstr "Linux-libre hochfahren."
 
 #. type: section
-#: doc/guix.texi:289 doc/guix.texi:10986 doc/guix.texi:26280
-#: doc/guix.texi:26281
+#: doc/guix.texi:315 doc/guix.texi:12905 doc/guix.texi:30323
+#: doc/guix.texi:30324
 #, no-wrap
 msgid "Bootloader Configuration"
 msgstr "Bootloader-Konfiguration"
 
 #. type: menuentry
-#: doc/guix.texi:289 doc/guix.texi:10986
+#: doc/guix.texi:315 doc/guix.texi:12905
 msgid "Configuring the boot loader."
 msgstr "Den Bootloader konfigurieren."
 
 #. type: node
-#: doc/guix.texi:289 doc/guix.texi:10986 doc/guix.texi:26501
+#: doc/guix.texi:315 doc/guix.texi:12905 doc/guix.texi:30617
 #, no-wrap
 msgid "Invoking guix system"
 msgstr "Aufruf von guix system"
 
 #. type: menuentry
-#: doc/guix.texi:289 doc/guix.texi:10986
+#: doc/guix.texi:315 doc/guix.texi:12905
 msgid "Instantiating a system configuration."
 msgstr "Instanziierung einer Systemkonfiguration."
 
 #. type: node
-#: doc/guix.texi:289 doc/guix.texi:10986 doc/guix.texi:27022
+#: doc/guix.texi:315 doc/guix.texi:12905 doc/guix.texi:31175
 #, no-wrap
 msgid "Invoking guix deploy"
 msgstr "Aufruf von guix deploy"
 
 #. type: menuentry
-#: doc/guix.texi:289 doc/guix.texi:10986
+#: doc/guix.texi:315 doc/guix.texi:12905
 msgid "Deploying a system configuration to a remote host."
 msgstr "Eine Systemkonfiguration auf einen entfernten Rechner aufspielen."
 
 #. type: node
-#: doc/guix.texi:289 doc/guix.texi:10986 doc/guix.texi:27217
+#: doc/guix.texi:315 doc/guix.texi:12905 doc/guix.texi:31381
 #, no-wrap
 msgid "Running Guix in a VM"
 msgstr "Guix in einer VM starten"
 
 #. type: menuentry
-#: doc/guix.texi:289 doc/guix.texi:10986
+#: doc/guix.texi:315 doc/guix.texi:12905
 msgid "How to run Guix System in a virtual machine."
 msgstr "Wie man „Guix System“ in einer virtuellen Maschine startet."
 
 #. type: section
-#: doc/guix.texi:289 doc/guix.texi:322 doc/guix.texi:10986 doc/guix.texi:27345
-#: doc/guix.texi:27346
+#: doc/guix.texi:315 doc/guix.texi:352 doc/guix.texi:12905 doc/guix.texi:31511
+#: doc/guix.texi:31512
 #, no-wrap
 msgid "Defining Services"
 msgstr "Dienste definieren"
 
 #. type: menuentry
-#: doc/guix.texi:289 doc/guix.texi:10986
+#: doc/guix.texi:315 doc/guix.texi:12905
 msgid "Adding new service definitions."
 msgstr "Neue Dienstdefinitionen hinzufügen."
 
 #. type: subsection
-#: doc/guix.texi:320 doc/guix.texi:12234 doc/guix.texi:12236
-#: doc/guix.texi:12237
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:14388
+#: doc/guix.texi:14389
 #, no-wrap
 msgid "Base Services"
 msgstr "Basisdienste"
 
 #. type: menuentry
-#: doc/guix.texi:320 doc/guix.texi:12234
+#: doc/guix.texi:350 doc/guix.texi:14386
 msgid "Essential system services."
 msgstr "Essenzielle Systemdienste."
 
 #. type: subsection
-#: doc/guix.texi:320 doc/guix.texi:12234 doc/guix.texi:13069
-#: doc/guix.texi:13070
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:15263
+#: doc/guix.texi:15264
 #, no-wrap
 msgid "Scheduled Job Execution"
 msgstr "Geplante Auftragsausführung"
 
 #. type: menuentry
-#: doc/guix.texi:320 doc/guix.texi:12234
+#: doc/guix.texi:350 doc/guix.texi:14386
 msgid "The mcron service."
 msgstr "Der mcron-Dienst."
 
 #. type: subsection
-#: doc/guix.texi:320 doc/guix.texi:12234 doc/guix.texi:13204
-#: doc/guix.texi:13205
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:15400
+#: doc/guix.texi:15401
 #, no-wrap
 msgid "Log Rotation"
 msgstr "Log-Rotation"
 
 #. type: menuentry
-#: doc/guix.texi:320 doc/guix.texi:12234
+#: doc/guix.texi:350 doc/guix.texi:14386
 msgid "The rottlog service."
 msgstr "Der rottlog-Dienst."
 
 #. type: subsection
-#: doc/guix.texi:320 doc/guix.texi:12234 doc/guix.texi:13317
-#: doc/guix.texi:13318
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:15513
+#: doc/guix.texi:15514
 #, no-wrap
 msgid "Networking Services"
 msgstr "Netzwerkdienste"
 
 #. type: menuentry
-#: doc/guix.texi:320 doc/guix.texi:12234
+#: doc/guix.texi:350 doc/guix.texi:14386
 msgid "Network setup, SSH daemon, etc."
 msgstr "Netzwerkeinrichtung, SSH-Daemon etc."
 
 #. type: subsection
-#: doc/guix.texi:320 doc/guix.texi:12234 doc/guix.texi:14432
-#: doc/guix.texi:14433
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:16851
+#: doc/guix.texi:16852
+#, no-wrap
+msgid "Unattended Upgrades"
+msgstr "Unbeaufsichtigte Aktualisierungen"
+
+#. type: menuentry
+#: doc/guix.texi:350 doc/guix.texi:14386
+msgid "Automated system upgrades."
+msgstr "Automatische Systemaktualisierungen."
+
+#. type: subsection
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:16985
+#: doc/guix.texi:16986
 #, no-wrap
 msgid "X Window"
 msgstr "X Window"
 
 #. type: menuentry
-#: doc/guix.texi:320 doc/guix.texi:12234
+#: doc/guix.texi:350 doc/guix.texi:14386
 msgid "Graphical display."
 msgstr "Grafische Anzeige."
 
 #. type: subsection
-#: doc/guix.texi:320 doc/guix.texi:12234 doc/guix.texi:14809
-#: doc/guix.texi:14810
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:17363
+#: doc/guix.texi:17364
 #, no-wrap
 msgid "Printing Services"
 msgstr "Druckdienste"
 
 #. type: menuentry
-#: doc/guix.texi:320 doc/guix.texi:12234
+#: doc/guix.texi:350 doc/guix.texi:14386
 msgid "Local and remote printer support."
 msgstr "Unterstützung für lokale und entfernte Drucker."
 
 #. type: subsection
-#: doc/guix.texi:320 doc/guix.texi:12234 doc/guix.texi:15661
-#: doc/guix.texi:15662
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:18215
+#: doc/guix.texi:18216
 #, no-wrap
 msgid "Desktop Services"
 msgstr "Desktop-Dienste"
 
 #. type: menuentry
-#: doc/guix.texi:320 doc/guix.texi:12234
+#: doc/guix.texi:350 doc/guix.texi:14386
 msgid "D-Bus and desktop services."
 msgstr "D-Bus- und Desktop-Dienste."
 
 #. type: subsection
-#: doc/guix.texi:320 doc/guix.texi:12234 doc/guix.texi:16113
-#: doc/guix.texi:16114
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:18692
+#: doc/guix.texi:18693
 #, no-wrap
 msgid "Sound Services"
 msgstr "Tondienste"
 
 #. type: menuentry
-#: doc/guix.texi:320 doc/guix.texi:12234
+#: doc/guix.texi:350 doc/guix.texi:14386
 msgid "ALSA and Pulseaudio services."
 msgstr "Dienste für ALSA und Pulseaudio."
 
 #. type: subsection
-#: doc/guix.texi:320 doc/guix.texi:12234 doc/guix.texi:16246
-#: doc/guix.texi:16247
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:18832
+#: doc/guix.texi:18833
 #, no-wrap
 msgid "Database Services"
 msgstr "Datenbankdienste"
 
 #. type: menuentry
-#: doc/guix.texi:320 doc/guix.texi:12234
+#: doc/guix.texi:350 doc/guix.texi:14386
 msgid "SQL databases, key-value stores, etc."
 msgstr "SQL-Datenbanken, Schlüssel-Wert-Speicher etc."
 
 #. type: subsection
-#: doc/guix.texi:320 doc/guix.texi:12234 doc/guix.texi:16406
-#: doc/guix.texi:16407
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:19095
+#: doc/guix.texi:19096
 #, no-wrap
 msgid "Mail Services"
 msgstr "Mail-Dienste"
 
 #. type: menuentry
-#: doc/guix.texi:320 doc/guix.texi:12234
+#: doc/guix.texi:350 doc/guix.texi:14386
 msgid "IMAP, POP3, SMTP, and all that."
 msgstr "IMAP, POP3, SMTP und so weiter."
 
 #. type: subsection
-#: doc/guix.texi:320 doc/guix.texi:12234 doc/guix.texi:18198
-#: doc/guix.texi:18199
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:20887
+#: doc/guix.texi:20888
 #, no-wrap
 msgid "Messaging Services"
 msgstr "Kurznachrichtendienste"
 
 #. type: menuentry
-#: doc/guix.texi:320 doc/guix.texi:12234
+#: doc/guix.texi:350 doc/guix.texi:14386
 msgid "Messaging services."
 msgstr "Dienste für Kurznachrichten."
 
 #. type: subsection
-#: doc/guix.texi:320 doc/guix.texi:12234 doc/guix.texi:18700
-#: doc/guix.texi:18701
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:21390
+#: doc/guix.texi:21391
 #, no-wrap
 msgid "Telephony Services"
 msgstr "Telefondienste"
 
 #. type: menuentry
-#: doc/guix.texi:320 doc/guix.texi:12234
+#: doc/guix.texi:350 doc/guix.texi:14386
 msgid "Telephony services."
 msgstr "Telefoniedienste."
 
 #. type: subsection
-#: doc/guix.texi:320 doc/guix.texi:12234 doc/guix.texi:18905
-#: doc/guix.texi:18906
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:21595
+#: doc/guix.texi:21596
 #, no-wrap
 msgid "Monitoring Services"
 msgstr "Systemüberwachungsdienste"
 
 #. type: menuentry
-#: doc/guix.texi:320 doc/guix.texi:12234
+#: doc/guix.texi:350 doc/guix.texi:14386
 msgid "Monitoring services."
 msgstr "Dienste zur Systemüberwachung."
 
 #. type: subsection
-#: doc/guix.texi:320 doc/guix.texi:12234 doc/guix.texi:19410
-#: doc/guix.texi:19411
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:22100
+#: doc/guix.texi:22101
 #, no-wrap
 msgid "Kerberos Services"
 msgstr "Kerberos-Dienste"
 
 #. type: menuentry
-#: doc/guix.texi:320 doc/guix.texi:12234
+#: doc/guix.texi:350 doc/guix.texi:14386
 msgid "Kerberos services."
 msgstr "Kerberos-Dienste."
 
 #. type: subsection
-#: doc/guix.texi:320 doc/guix.texi:12234 doc/guix.texi:20014
-#: doc/guix.texi:20015
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:22226
+#: doc/guix.texi:22227
+#, no-wrap
+msgid "LDAP Services"
+msgstr "LDAP-Dienste"
+
+#. type: menuentry
+#: doc/guix.texi:350 doc/guix.texi:14386
+msgid "LDAP services."
+msgstr "LDAP-Dienste."
+
+#. type: subsection
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:22705
+#: doc/guix.texi:22706
 #, no-wrap
 msgid "Web Services"
 msgstr "Web-Dienste"
 
 #. type: menuentry
-#: doc/guix.texi:320 doc/guix.texi:12234
+#: doc/guix.texi:350 doc/guix.texi:14386
 msgid "Web servers."
 msgstr "Web-Server."
 
 #. type: subsection
-#: doc/guix.texi:320 doc/guix.texi:12234 doc/guix.texi:21047
-#: doc/guix.texi:21048
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:23819
+#: doc/guix.texi:23820
 #, no-wrap
 msgid "Certificate Services"
 msgstr "Zertifikatsdienste"
 
 #. type: menuentry
-#: doc/guix.texi:320 doc/guix.texi:12234
+#: doc/guix.texi:350 doc/guix.texi:14386
 msgid "TLS certificates via Let's Encrypt."
 msgstr "TLS-Zertifikate via Let’s Encrypt."
 
 #. type: subsection
-#: doc/guix.texi:320 doc/guix.texi:12234 doc/guix.texi:21219
-#: doc/guix.texi:21220
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:23992
+#: doc/guix.texi:23993
 #, no-wrap
 msgid "DNS Services"
 msgstr "DNS-Dienste"
 
 #. type: menuentry
-#: doc/guix.texi:320 doc/guix.texi:12234
+#: doc/guix.texi:350 doc/guix.texi:14386
 msgid "DNS daemons."
 msgstr "DNS-Daemons."
 
 #. type: subsection
-#: doc/guix.texi:320 doc/guix.texi:12234 doc/guix.texi:21893
-#: doc/guix.texi:21894
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:24739
+#: doc/guix.texi:24740
 #, no-wrap
 msgid "VPN Services"
 msgstr "VPN-Dienste"
 
 #. type: menuentry
-#: doc/guix.texi:320 doc/guix.texi:12234
+#: doc/guix.texi:350 doc/guix.texi:14386
 msgid "VPN daemons."
 msgstr "VPN-Daemons."
 
 #. type: subsection
-#: doc/guix.texi:320 doc/guix.texi:12234 doc/guix.texi:22273
-#: doc/guix.texi:22274
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:25119
+#: doc/guix.texi:25120
 #, no-wrap
 msgid "Network File System"
 msgstr "Network File System"
 
 #. type: menuentry
-#: doc/guix.texi:320 doc/guix.texi:12234
+#: doc/guix.texi:350 doc/guix.texi:14386
 msgid "NFS related services."
 msgstr "Dienste mit Bezug zum Netzwerkdateisystem."
 
 #. type: subsection
-#: doc/guix.texi:320 doc/guix.texi:12234 doc/guix.texi:22463
-#: doc/guix.texi:22464
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:25315
+#: doc/guix.texi:25316
 #, no-wrap
 msgid "Continuous Integration"
 msgstr "Kontinuierliche Integration"
 
 #. type: menuentry
-#: doc/guix.texi:320 doc/guix.texi:12234
+#: doc/guix.texi:350 doc/guix.texi:14386
 msgid "The Cuirass service."
 msgstr "Der Cuirass-Dienst."
 
 #. type: subsection
-#: doc/guix.texi:320 doc/guix.texi:12234 doc/guix.texi:22586
-#: doc/guix.texi:22587
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:25446
+#: doc/guix.texi:25447
 #, no-wrap
 msgid "Power Management Services"
 msgstr "Dienste zur Stromverbrauchsverwaltung"
 
 #. type: menuentry
-#: doc/guix.texi:320 doc/guix.texi:12234
+#: doc/guix.texi:350 doc/guix.texi:14386
 msgid "Extending battery life."
 msgstr "Den Akku schonen."
 
 #. type: subsection
-#: doc/guix.texi:320 doc/guix.texi:12234 doc/guix.texi:23120
-#: doc/guix.texi:23121
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:25980
+#: doc/guix.texi:25981
 #, no-wrap
 msgid "Audio Services"
 msgstr "Audio-Dienste"
 
 #. type: menuentry
-#: doc/guix.texi:320 doc/guix.texi:12234
+#: doc/guix.texi:350 doc/guix.texi:14386
 msgid "The MPD."
 msgstr "Der MPD."
 
-#. type: node
-#: doc/guix.texi:320 doc/guix.texi:12234 doc/guix.texi:23239
+#. type: subsection
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:26099
+#: doc/guix.texi:26100
 #, no-wrap
 msgid "Virtualization Services"
 msgstr "Virtualisierungsdienste"
 
 #. type: menuentry
-#: doc/guix.texi:320 doc/guix.texi:12234
+#: doc/guix.texi:350 doc/guix.texi:14386
 msgid "Virtualization services."
 msgstr "Dienste für virtuelle Maschinen."
 
 #. type: subsection
-#: doc/guix.texi:320 doc/guix.texi:12234 doc/guix.texi:24032
-#: doc/guix.texi:24033
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:27721
+#: doc/guix.texi:27722
 #, no-wrap
 msgid "Version Control Services"
 msgstr "Versionskontrolldienste"
 
 #. type: menuentry
-#: doc/guix.texi:320 doc/guix.texi:12234
+#: doc/guix.texi:350 doc/guix.texi:14386
 msgid "Providing remote access to Git repositories."
 msgstr "Entfernten Zugang zu Git-Repositorys bieten."
 
 #. type: subsection
-#: doc/guix.texi:320 doc/guix.texi:12234 doc/guix.texi:25220
-#: doc/guix.texi:25221
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:28913
+#: doc/guix.texi:28914
 #, no-wrap
 msgid "Game Services"
 msgstr "Spieldienste"
 
 #. type: menuentry
-#: doc/guix.texi:320 doc/guix.texi:12234
+#: doc/guix.texi:350 doc/guix.texi:14386
 msgid "Game servers."
 msgstr "Spielserver."
 
 #. type: subsection
-#: doc/guix.texi:320 doc/guix.texi:12234 doc/guix.texi:25252
-#: doc/guix.texi:25253
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:28945
+#: doc/guix.texi:28946
 #, no-wrap
 msgid "PAM Mount Service"
 msgstr "PAM-Einbindedienst"
 
 #. type: menuentry
-#: doc/guix.texi:320 doc/guix.texi:12234
+#: doc/guix.texi:350 doc/guix.texi:14386
 msgid "Service to mount volumes when logging in."
 msgstr "Dienst, um Datenträger beim Anmelden einzubinden."
 
-#. type: subsubheading
-#: doc/guix.texi:320 doc/guix.texi:12234 doc/guix.texi:25390
-#: doc/guix.texi:25391
+#. type: subsection
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:29028
+#: doc/guix.texi:29029
+#, no-wrap
+msgid "Guix Services"
+msgstr "Guix-Dienste"
+
+#. type: menuentry
+#: doc/guix.texi:350 doc/guix.texi:14386
+msgid "Services relating specifically to Guix."
+msgstr "Dienste, die speziell mit Guix zu tun haben."
+
+#. type: subsection
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:29245
+#: doc/guix.texi:29246
 #, no-wrap
 msgid "Linux Services"
 msgstr "Linux-Dienste"
 
 #. type: menuentry
-#: doc/guix.texi:320 doc/guix.texi:12234
+#: doc/guix.texi:350 doc/guix.texi:14386
 msgid "Services tied to the Linux kernel."
 msgstr "Dienste nur für Systeme mit Linux-Kernel."
 
 #. type: subsection
-#: doc/guix.texi:320 doc/guix.texi:12234 doc/guix.texi:25492
-#: doc/guix.texi:25493
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:29392
+#: doc/guix.texi:29393
+#, no-wrap
+msgid "Hurd Services"
+msgstr "Hurd-Dienste"
+
+#. type: menuentry
+#: doc/guix.texi:350 doc/guix.texi:14386
+msgid "Services specific for a Hurd System."
+msgstr "Dienste, die nur Hurd-Systeme betreffen."
+
+#. type: subsection
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:29434
+#: doc/guix.texi:29435
 #, no-wrap
 msgid "Miscellaneous Services"
 msgstr "Verschiedene Dienste"
 
 #. type: menuentry
-#: doc/guix.texi:320 doc/guix.texi:12234
+#: doc/guix.texi:350 doc/guix.texi:14386
 msgid "Other services."
 msgstr "Andere Dienste."
 
 #. type: subsection
-#: doc/guix.texi:327 doc/guix.texi:27357 doc/guix.texi:27359
-#: doc/guix.texi:27360
+#: doc/guix.texi:357 doc/guix.texi:31523 doc/guix.texi:31525
+#: doc/guix.texi:31526
 #, no-wrap
 msgid "Service Composition"
 msgstr "Dienstkompositionen"
 
 #. type: menuentry
-#: doc/guix.texi:327 doc/guix.texi:27357
+#: doc/guix.texi:357 doc/guix.texi:31523
 msgid "The model for composing services."
 msgstr "Wie Dienste zusammengestellt werden."
 
 #. type: subsection
-#: doc/guix.texi:327 doc/guix.texi:27357 doc/guix.texi:27415
-#: doc/guix.texi:27416
+#: doc/guix.texi:357 doc/guix.texi:31523 doc/guix.texi:31581
+#: doc/guix.texi:31582
 #, no-wrap
 msgid "Service Types and Services"
 msgstr "Diensttypen und Dienste"
 
 #. type: menuentry
-#: doc/guix.texi:327 doc/guix.texi:27357
+#: doc/guix.texi:357 doc/guix.texi:31523
 msgid "Types and services."
 msgstr "Typen und Dienste."
 
 #. type: subsection
-#: doc/guix.texi:327 doc/guix.texi:27357 doc/guix.texi:27552
-#: doc/guix.texi:27553
+#: doc/guix.texi:357 doc/guix.texi:31523 doc/guix.texi:31718
+#: doc/guix.texi:31719
 #, no-wrap
 msgid "Service Reference"
 msgstr "Service-Referenz"
 
 #. type: menuentry
-#: doc/guix.texi:327 doc/guix.texi:27357
+#: doc/guix.texi:357 doc/guix.texi:31523
 msgid "API reference."
 msgstr "Referenz zur Programmierschnittstelle."
 
 #. type: subsection
-#: doc/guix.texi:327 doc/guix.texi:27357 doc/guix.texi:27825
-#: doc/guix.texi:27826
+#: doc/guix.texi:357 doc/guix.texi:31523 doc/guix.texi:32009
+#: doc/guix.texi:32010
 #, no-wrap
 msgid "Shepherd Services"
 msgstr "Shepherd-Dienste"
 
 #. type: menuentry
-#: doc/guix.texi:327 doc/guix.texi:27357
+#: doc/guix.texi:357 doc/guix.texi:31523
 msgid "A particular type of service."
 msgstr "Eine spezielle Art von Dienst."
 
+#. type: section
+#: doc/guix.texi:362 doc/guix.texi:32244 doc/guix.texi:32246
+#: doc/guix.texi:32247
+#, no-wrap
+msgid "Separate Debug Info"
+msgstr "Fehlersuchinformationen abtrennen"
+
+#. type: menuentry
+#: doc/guix.texi:362 doc/guix.texi:32244
+msgid "Installing 'debug' outputs."
+msgstr "‚debug‘-Ausgaben installieren."
+
+#. type: section
+#: doc/guix.texi:362 doc/guix.texi:32244 doc/guix.texi:32305
+#: doc/guix.texi:32306
+#, no-wrap
+msgid "Rebuilding Debug Info"
+msgstr "Fehlersuchinformationen erneuern"
+
+#. type: menuentry
+#: doc/guix.texi:362 doc/guix.texi:32244
+msgid "Building missing debug info."
+msgstr "Fehlende Informationen zur Fehlersuche erstellen."
+
+#. type: node
+#: doc/guix.texi:367 doc/guix.texi:32517 doc/guix.texi:32519
+#, no-wrap
+msgid "Reduced Binary Seed Bootstrap"
+msgstr "Bootstrapping mit kleinerem Seed"
+
+#. type: menuentry
+#: doc/guix.texi:367 doc/guix.texi:32517
+msgid "A Bootstrap worthy of GNU."
+msgstr "Ein Bootstrapping, wie GNU es verdient."
+
+# Commas in node names would prevent the terminal info viewer from following links.
+#. type: section
+#: doc/guix.texi:367 doc/guix.texi:32517 doc/guix.texi:32594
+#: doc/guix.texi:32595
+#, no-wrap
+msgid "Preparing to Use the Bootstrap Binaries"
+msgstr "Vorbereitung zur Verwendung der Bootstrap-Binärdateien"
+
+#. type: menuentry
+#: doc/guix.texi:367 doc/guix.texi:32517
+msgid "Building that what matters most."
+msgstr "Das Allerwichtigste erstellen."
+
 #. type: cindex
-#: doc/guix.texi:335
+#: doc/guix.texi:375
 #, no-wrap
 msgid "purpose"
 msgstr "Zweck"
 
 #. type: Plain text
-#: doc/guix.texi:343
+#: doc/guix.texi:383
 msgid "GNU Guix@footnote{``Guix'' is pronounced like ``geeks'', or ``ɡiːks'' using the international phonetic alphabet (IPA).} is a package management tool for and distribution of the GNU system.  Guix makes it easy for unprivileged users to install, upgrade, or remove software packages, to roll back to a previous package set, to build packages from source, and generally assists with the creation and maintenance of software environments."
 msgstr "GNU Guix@footnote{„Guix“ wird wie „geeks“ ausgesprochen, also als „ɡiːks“ in der Notation des Internationalen Phonetischen Alphabets (IPA).} ist ein Werkzeug zur Verwaltung von Softwarepaketen für das GNU-System und eine Distribution (eine „Verteilung“) desselbigen GNU-Systems. Guix macht es @emph{nicht} mit besonderen Berechtigungen ausgestatteten, „unprivilegierten“ Nutzern leicht, Softwarepakete zu installieren, zu aktualisieren oder zu entfernen, zu einem vorherigen Satz von Paketen zurückzuwechseln, Pakete aus ihrem Quellcode heraus zu erstellen und hilft allgemein bei der Erzeugung und Wartung von Software-Umgebungen."
 
 #. type: cindex
-#: doc/guix.texi:344 doc/guix.texi:419
+#: doc/guix.texi:384 doc/guix.texi:459
 #, no-wrap
 msgid "Guix System"
 msgstr "Guix System"
 
 #. type: cindex
-#: doc/guix.texi:345
+#: doc/guix.texi:385
 #, no-wrap
 msgid "GuixSD, now Guix System"
 msgstr "GuixSD, was jetzt Guix System heißt"
 
 #. type: cindex
-#: doc/guix.texi:346
+#: doc/guix.texi:386
 #, no-wrap
 msgid "Guix System Distribution, now Guix System"
 msgstr "Guix System Distribution, welche jetzt Guix System heißt"
 
 #. type: Plain text
-#: doc/guix.texi:355
+#: doc/guix.texi:395
 msgid "You can install GNU@tie{}Guix on top of an existing GNU/Linux system where it complements the available tools without interference (@pxref{Installation}), or you can use it as a standalone operating system distribution, @dfn{Guix@tie{}System}@footnote{We used to refer to Guix System as ``Guix System Distribution'' or ``GuixSD''.  We now consider it makes more sense to group everything under the ``Guix'' banner since, after all, Guix System is readily available through the @command{guix system} command, even if you're using a different distro underneath!}.  @xref{GNU Distribution}."
 msgstr "Sie können GNU@tie{}Guix auf ein bestehendes GNU/Linux-System aufsetzen, wo es die bereits verfügbaren Werkzeuge ergänzt, ohne zu stören (siehe @ref{Installation}), oder Sie können es als eine eigenständige Betriebssystem-Distribution namens @dfn{Guix@tie{}System} verwenden@footnote{Der Name @dfn{Guix@tie{}System} wird auf englische Weise ausgesprochen. Früher hatten wir „Guix System“ als „Guix System Distribution“ bezeichnet und mit „GuixSD“ abgekürzt. Wir denken mittlerweile aber, dass es sinnvoller ist, alles unter der Fahne von Guix zu gruppieren, weil schließlich „Guix System“ auch über den Befehl @command{guix system} verfügbar ist, selbst wenn Sie Guix auf einer fremden Distribution benutzen!}. Siehe @ref{GNU Distribution}."
 
 #. type: cindex
-#: doc/guix.texi:364
+#: doc/guix.texi:404
 #, no-wrap
 msgid "user interfaces"
 msgstr "Benutzeroberflächen"
 
 #. type: Plain text
-#: doc/guix.texi:370
+#: doc/guix.texi:410
 msgid "Guix provides a command-line package management interface (@pxref{Package Management}), tools to help with software development (@pxref{Development}), command-line utilities for more advanced usage, (@pxref{Utilities}), as well as Scheme programming interfaces (@pxref{Programming Interface})."
 msgstr "Guix bietet eine befehlszeilenbasierte Paketverwaltungsschnittstelle (siehe @ref{Invoking guix package}), Werkzeuge als Hilfestellung bei der Software-Entwicklung (siehe @ref{Development}), Befehlszeilenwerkzeuge für fortgeschrittenere Nutzung (siehe @ref{Utilities}) sowie Schnittstellen zur Programmierung in Scheme (siehe @ref{Programming Interface})."
 
 #. type: cindex
-#: doc/guix.texi:370
+#: doc/guix.texi:410
 #, no-wrap
 msgid "build daemon"
 msgstr "Erstellungs-Daemon"
 
 #. type: Plain text
-#: doc/guix.texi:374
+#: doc/guix.texi:414
 msgid "Its @dfn{build daemon} is responsible for building packages on behalf of users (@pxref{Setting Up the Daemon}) and for downloading pre-built binaries from authorized sources (@pxref{Substitutes})."
 msgstr "Der @dfn{Erstellungs-Daemon} ist für das Erstellen von Paketen im Auftrag von Nutzern verantwortlich (siehe @ref{Setting Up the Daemon}) und für das Herunterladen vorerstellter Binärdateien aus autorisierten Quellen (siehe @ref{Substitutes})."
 
 #. type: cindex
-#: doc/guix.texi:375
+#: doc/guix.texi:415
 #, no-wrap
 msgid "extensibility of the distribution"
 msgstr "Erweiterbarkeit der Distribution"
 
 #. type: cindex
-#: doc/guix.texi:376 doc/guix.texi:5391
+#: doc/guix.texi:416 doc/guix.texi:6241
 #, no-wrap
 msgid "customization, of packages"
 msgstr "Anpassung, von Paketen"
 
 #. type: Plain text
-#: doc/guix.texi:385
+#: doc/guix.texi:425
 msgid "Guix includes package definitions for many GNU and non-GNU packages, all of which @uref{https://www.gnu.org/philosophy/free-sw.html, respect the user's computing freedom}.  It is @emph{extensible}: users can write their own package definitions (@pxref{Defining Packages}) and make them available as independent package modules (@pxref{Package Modules}).  It is also @emph{customizable}: users can @emph{derive} specialized package definitions from existing ones, including from the command line (@pxref{Package Transformation Options})."
 msgstr "Guix enthält Paketdefinitionen für viele Pakete, manche aus GNU und andere nicht aus GNU, die alle @uref{https://www.gnu.org/philosophy/free-sw.html, die Freiheit des Computernutzers respektieren}. Es ist @emph{erweiterbar}: Nutzer können ihre eigenen Paketdefinitionen schreiben (siehe @ref{Defining Packages}) und sie als unabhängige Paketmodule verfügbar machen (siehe @ref{Package Modules}). Es ist auch @emph{anpassbar}: Nutzer können spezialisierte Paketdefinitionen aus bestehenden @emph{ableiten}, auch von der Befehlszeile (siehe @ref{Package Transformation Options})."
 
 #. type: cindex
-#: doc/guix.texi:386
+#: doc/guix.texi:426
 #, no-wrap
 msgid "functional package management"
 msgstr "funktionale Paketverwaltung"
 
 #. type: cindex
-#: doc/guix.texi:387
+#: doc/guix.texi:427
 #, no-wrap
 msgid "isolation"
 msgstr "Isolierung"
 
 #. type: Plain text
-#: doc/guix.texi:402
+#: doc/guix.texi:442
 msgid "Under the hood, Guix implements the @dfn{functional package management} discipline pioneered by Nix (@pxref{Acknowledgments}).  In Guix, the package build and installation process is seen as a @emph{function}, in the mathematical sense.  That function takes inputs, such as build scripts, a compiler, and libraries, and returns an installed package.  As a pure function, its result depends solely on its inputs---for instance, it cannot refer to software or scripts that were not explicitly passed as inputs.  A build function always produces the same result when passed a given set of inputs.  It cannot alter the environment of the running system in any way; for instance, it cannot create, modify, or delete files outside of its build and installation directories.  This is achieved by running build processes in isolated environments (or @dfn{containers}), where only their explicit inputs are visible."
 msgstr "Intern implementiert Guix die Disziplin der @dfn{funktionalen Paketverwaltung}, zu der Nix schon die Pionierarbeit geleistet hat (siehe @ref{Acknowledgments}). In Guix wird der Prozess, ein Paket zu erstellen und zu installieren, als eine @emph{Funktion} im mathematischen Sinn aufgefasst. Diese Funktion hat Eingaben, wie zum Beispiel Erstellungs-Skripts, einen Compiler und Bibliotheken, und liefert ein installiertes Paket. Als eine reine Funktion hängt sein Ergebnis allein von seinen Eingaben ab — zum Beispiel kann er nicht auf Software oder Skripts Bezug nehmen, die nicht ausdrücklich als Eingaben übergeben wurden. Eine Erstellungsfunktion führt immer zum selben Ergebnis, wenn ihr die gleiche Menge an Eingaben übergeben wurde. Sie kann die Umgebung des laufenden Systems auf keine Weise beeinflussen, zum Beispiel kann sie keine Dateien außerhalb ihrer Erstellungs- und Installationsverzeichnisse verändern. Um dies zu erreichen, laufen Erstellungsprozesse in isolieren Umgebungen (sogenannte @dfn{Container}), wo nur ausdrückliche Eingaben sichtbar sind."
 
 #. type: cindex
-#: doc/guix.texi:403 doc/guix.texi:6820
+#: doc/guix.texi:443 doc/guix.texi:8440
 #, no-wrap
 msgid "store"
 msgstr "Store"
 
 #. type: Plain text
-#: doc/guix.texi:410
+#: doc/guix.texi:450
 msgid "The result of package build functions is @dfn{cached} in the file system, in a special directory called @dfn{the store} (@pxref{The Store}).  Each package is installed in a directory of its own in the store---by default under @file{/gnu/store}.  The directory name contains a hash of all the inputs used to build that package; thus, changing an input yields a different directory name."
 msgstr "Das Ergebnis von Paketerstellungsfunktionen wird im Dateisystem @dfn{zwischengespeichert} in einem besonderen Verzeichnis, was als @dfn{der Store} bezeichnet wird (siehe @ref{The Store}). Jedes Paket wird in sein eigenes Verzeichnis im Store installiert — standardmäßig ist er unter @file{/gnu/store} zu finden. Der Verzeichnisname enthält einen Hash aller Eingaben, anhand derer das Paket erzeugt wurde, somit hat das Ändern einer Eingabe einen völlig anderen Verzeichnisnamen zur Folge."
 
 #. type: Plain text
-#: doc/guix.texi:414
+#: doc/guix.texi:454
 msgid "This approach is the foundation for the salient features of Guix: support for transactional package upgrade and rollback, per-user installation, and garbage collection of packages (@pxref{Features})."
 msgstr "Dieses Vorgehen ist die Grundlage für die Guix auszeichnenden Funktionalitäten: Unterstützung transaktionsbasierter Paketaktualisierungen und -rücksetzungen, Installation von Paketen für jeden Nutzer sowie Garbage Collection für Pakete (siehe @ref{Features})."
 
 #. type: Plain text
-#: doc/guix.texi:429
+#: doc/guix.texi:469
 msgid "Guix comes with a distribution of the GNU system consisting entirely of free software@footnote{The term ``free'' here refers to the @url{https://www.gnu.org/philosophy/free-sw.html,freedom provided to users of that software}.}.  The distribution can be installed on its own (@pxref{System Installation}), but it is also possible to install Guix as a package manager on top of an installed GNU/Linux system (@pxref{Installation}).  When we need to distinguish between the two, we refer to the standalone distribution as Guix@tie{}System."
 msgstr "Mit Guix kommt eine Distribution des GNU-Systems, die nur aus freier Software@footnote{Die Bezeichnung „frei“ steht hier für die @url{https://www.gnu.org/philosophy/free-sw.html,Freiheiten@comma{} die Nutzern der Software geboten werden}.} besteht. Die Distribution kann für sich allein installiert werden (siehe @ref{System Installation}), aber Guix kann auch auf einem bestehenden GNU/Linux-System installiert werden. Wenn wir die Anwendungsfälle unterscheiden möchten, bezeichnen wir die alleinstehende Distribution als „Guix@tie{}System“ (mit englischer Aussprache)."
 
 #. type: Plain text
-#: doc/guix.texi:435
+#: doc/guix.texi:475
 msgid "The distribution provides core GNU packages such as GNU libc, GCC, and Binutils, as well as many GNU and non-GNU applications.  The complete list of available packages can be browsed @url{https://www.gnu.org/software/guix/packages,on-line} or by running @command{guix package} (@pxref{Invoking guix package}):"
 msgstr "Die Distribution stellt den Kern der GNU-Pakete, also insbesondere GNU libc, GCC und Binutils, sowie zahlreiche zum GNU-Projekt gehörende und nicht dazu gehörende Anwendungen zur Verfügung. Die vollständige Liste verfügbarer Pakete können Sie @url{https://www.gnu.org/software/guix/packages,online} einsehen, oder indem Sie @command{guix package} ausführen (siehe @ref{Invoking guix package}):"
 
 #. type: example
-#: doc/guix.texi:438
+#: doc/guix.texi:478
 #, no-wrap
 msgid "guix package --list-available\n"
 msgstr "guix package --list-available\n"
 
 #. type: Plain text
-#: doc/guix.texi:444
+#: doc/guix.texi:484
 msgid "Our goal is to provide a practical 100% free software distribution of Linux-based and other variants of GNU, with a focus on the promotion and tight integration of GNU components, and an emphasis on programs and tools that help users exert that freedom."
 msgstr "Unser Ziel ist, eine zu 100% freie Software-Distribution von Linux-basierten und von anderen GNU-Varianten anzubieten, mit dem Fokus darauf, das GNU-Projekt und die enge Zusammenarbeit seiner Bestandteile zu befördern, sowie die Programme und Werkzeuge hervorzuheben, die die Nutzer dabei unterstützen, von dieser Freiheit Gebrauch zu machen."
 
 #. type: Plain text
-#: doc/guix.texi:446
+#: doc/guix.texi:486
 msgid "Packages are currently available on the following platforms:"
-msgstr "Pakete sind zur Zeit auf folgenden Plattformen verfügbar:"
+msgstr "Pakete sind zurzeit auf folgenden Plattformen verfügbar:"
 
 #. type: item
-#: doc/guix.texi:449 doc/guix.texi:1925
+#: doc/guix.texi:489 doc/guix.texi:2012
 #, no-wrap
 msgid "x86_64-linux"
 msgstr "x86_64-linux"
 
 #. type: table
-#: doc/guix.texi:451
-msgid "Intel/AMD @code{x86_64} architecture, Linux-Libre kernel;"
-msgstr "Intel/AMD-@code{x86_64}-Architektur, Linux-Libre als Kernel,"
+#: doc/guix.texi:491
+msgid "Intel/AMD @code{x86_64} architecture, Linux-Libre kernel."
+msgstr "Intel/AMD-@code{x86_64}-Architektur, Linux-Libre als Kernel."
 
 #. type: item
-#: doc/guix.texi:452 doc/guix.texi:1928
+#: doc/guix.texi:492 doc/guix.texi:2015
 #, no-wrap
 msgid "i686-linux"
 msgstr "i686-linux"
 
 #. type: table
-#: doc/guix.texi:454
-msgid "Intel 32-bit architecture (IA32), Linux-Libre kernel;"
-msgstr "Intel-32-Bit-Architektur (IA-32), Linux-Libre als Kernel,"
+#: doc/guix.texi:494
+msgid "Intel 32-bit architecture (IA32), Linux-Libre kernel."
+msgstr "Intel-32-Bit-Architektur (IA-32), Linux-Libre als Kernel."
 
 #. type: item
-#: doc/guix.texi:455
+#: doc/guix.texi:495
 #, no-wrap
 msgid "armhf-linux"
 msgstr "armhf-linux"
 
 #. type: table
-#: doc/guix.texi:459
+#: doc/guix.texi:499
 msgid "ARMv7-A architecture with hard float, Thumb-2 and NEON, using the EABI hard-float application binary interface (ABI), and Linux-Libre kernel."
-msgstr "ARMv7-A-Architektur mit „hard float“, Thumb-2 und NEON, für die EABI „hard-float application binary interface“, mit Linux-Libre als Kernel,"
+msgstr "ARMv7-A-Architektur mit „hard float“, Thumb-2 und NEON, für die EABI „hard-float application binary interface“, mit Linux-Libre als Kernel."
 
 #. type: item
-#: doc/guix.texi:460
+#: doc/guix.texi:500
 #, no-wrap
 msgid "aarch64-linux"
 msgstr "aarch64-linux"
 
 #. type: table
-#: doc/guix.texi:462
+#: doc/guix.texi:502
 msgid "little-endian 64-bit ARMv8-A processors, Linux-Libre kernel."
-msgstr "64-Bit-ARMv8-A-Prozessoren, little-endian, mit Linux-Libre als Kernel,"
+msgstr "64-Bit-ARMv8-A-Prozessoren, little-endian, mit Linux-Libre als Kernel."
+
+#. type: item
+#: doc/guix.texi:503
+#, no-wrap
+msgid "i586-gnu"
+msgstr "i586-gnu"
+
+#. type: table
+#: doc/guix.texi:506
+msgid "@uref{https://hurd.gnu.org, GNU/Hurd} on the Intel 32-bit architecture (IA32)."
+msgstr "@uref{https://hurd.gnu.org, GNU/Hurd} auf der Intel-32-Bit-Architektur (IA32)."
+
+#. type: table
+#: doc/guix.texi:512
+msgid "This configuration is experimental and under development.  The easiest way for you to give it a try is by setting up an instance of @code{hurd-vm-service-type} on your GNU/Linux machine (@pxref{transparent-emulation-qemu, @code{hurd-vm-service-type}}).  @xref{Contributing}, on how to help!"
+msgstr "Diese Konfiguration ist experimentell und befindet sich noch in der Entwicklung. Wenn Sie sie ausprobieren möchten, ist es am einfachsten, eine Instanz des Diensttyps @code{hurd-vm-service-type} auf Ihrer GNU/Linux-Maschine einzurichten (siehe @ref{transparent-emulation-qemu, @code{hurd-vm-service-type}}). Siehe auch @ref{Contributing} für Informationen, wie Sie helfen können!"
 
 #. type: item
-#: doc/guix.texi:463
+#: doc/guix.texi:513
 #, no-wrap
-msgid "mips64el-linux"
-msgstr "mips64el-linux"
+msgid "mips64el-linux (deprecated)"
+msgstr "mips64el-linux („deprecated“, eingeschränkte Unterstützung)"
 
 #. type: table
-#: doc/guix.texi:468
-msgid "little-endian 64-bit MIPS processors, specifically the Loongson series, n32 ABI, and Linux-Libre kernel.  This configuration is no longer fully supported; in particular, the project's build farms no longer provide substitutes for this architecture."
-msgstr "64-Bit-MIPS-Prozessoren, little-endian, speziell die Loongson-Reihe, n32-ABI, mit Linux-Libre als Kernel.  Diese Konfiguration wird nicht länger in vollem Umfang unterstützt; insbesondere werden von der Erstellungsfarm des Guix-Projekts keine Substitute mehr für diese Architektur angeboten."
+#: doc/guix.texi:519
+msgid "little-endian 64-bit MIPS processors, specifically the Loongson series, n32 ABI, and Linux-Libre kernel.  This configuration is no longer fully supported; in particular, there is no ongoing work to ensure that this architecture still works. Should someone decide they wish to revive this architecture then the code is still available."
+msgstr "64-Bit-MIPS-Prozessoren, little-endian, speziell die Loongson-Reihe, n32-ABI, mit Linux-Libre als Kernel.  Diese Konfiguration wird nicht länger in vollem Umfang unterstützt; insbesondere gibt es @emph{keine} laufenden Bemühungen, die Funktionsfähigkeit dieser Architektur sicherzustellen. Wenn sich jemand findet, der diese Architektur wiederbeleben will, dann ist der Code dafür noch verfügbar."
 
 #. type: Plain text
-#: doc/guix.texi:478
+#: doc/guix.texi:529
 msgid "With Guix@tie{}System, you @emph{declare} all aspects of the operating system configuration and Guix takes care of instantiating the configuration in a transactional, reproducible, and stateless fashion (@pxref{System Configuration}).  Guix System uses the Linux-libre kernel, the Shepherd initialization system (@pxref{Introduction,,, shepherd, The GNU Shepherd Manual}), the well-known GNU utilities and tool chain, as well as the graphical environment or system services of your choice."
 msgstr "Mit Guix@tie{}System @emph{deklarieren} Sie alle Aspekte der Betriebssystemkonfiguration und Guix kümmert sich darum, die Konfiguration auf transaktionsbasierte, reproduzierbare und zustandslose Weise zu instanziieren (siehe @ref{System Configuration}). Guix System benutzt den Kernel Linux-libre, das Shepherd-Initialisierungssystem (siehe @ref{Introduction,,, shepherd, The GNU Shepherd Manual}), die wohlbekannten GNU-Werkzeuge mit der zugehörigen Werkzeugkette sowie die grafische Umgebung und Systemdienste Ihrer Wahl."
 
 #. type: Plain text
-#: doc/guix.texi:481
+#: doc/guix.texi:532
 msgid "Guix System is available on all the above platforms except @code{mips64el-linux}."
 msgstr "Guix System ist auf allen oben genannten Plattformen außer @code{mips64el-linux} verfügbar."
 
 #. type: Plain text
-#: doc/guix.texi:485
+#: doc/guix.texi:536
 msgid "For information on porting to other architectures or kernels, @pxref{Porting}."
 msgstr "Informationen, wie auf andere Architekturen oder Kernels portiert werden kann, finden Sie im Abschnitt @ref{Porting}."
 
 #. type: Plain text
-#: doc/guix.texi:488
+#: doc/guix.texi:539
 msgid "Building this distribution is a cooperative effort, and you are invited to join! @xref{Contributing}, for information about how you can help."
 msgstr "Diese Distribution aufzubauen basiert auf Kooperation, und Sie sind herzlich eingeladen, dabei mitzumachen! Im Abschnitt @ref{Contributing} stehen weitere Informationen, wie Sie uns helfen können."
 
 #. type: cindex
-#: doc/guix.texi:494
+#: doc/guix.texi:545
 #, no-wrap
 msgid "installing Guix"
 msgstr "Guix installieren"
 
 #. type: quotation
-#: doc/guix.texi:506
+#: doc/guix.texi:557
 msgid "We recommend the use of this @uref{https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh, shell installer script} to install Guix on top of a running GNU/Linux system, thereafter called a @dfn{foreign distro}.@footnote{This section is concerned with the installation of the package manager, which can be done on top of a running GNU/Linux system.  If, instead, you want to install the complete GNU operating system, @pxref{System Installation}.} The script automates the download, installation, and initial configuration of Guix.  It should be run as the root user."
 msgstr "Wir empfehlen, dieses @uref{https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh, Shell-basierte Installationsskript} zu benutzen, um Guix auf ein bestehendes GNU/Linux-System zu installieren — im Folgenden als @dfn{Fremddistribution} bezeichnet.@footnote{Dieser Abschnitt bezieht sich auf die Installation des Paketverwaltungswerkzeugs, das auf ein bestehendes GNU/Linux-System aufsetzend installiert werden kann. Wenn Sie stattdessen das vollständige GNU-Betriebssystem installieren möchten, lesen Sie @ref{System Installation}.} Das Skript automatisiert das Herunterladen, das Installieren und die anfängliche Konfiguration von Guix. Es sollte als der Administratornutzer „root“ ausgeführt werden."
 
 #. type: cindex
-#: doc/guix.texi:508 doc/guix.texi:1579
+#: doc/guix.texi:559 doc/guix.texi:1684
 #, no-wrap
 msgid "foreign distro"
 msgstr "Fremddistribution"
 
 #. type: cindex
-#: doc/guix.texi:509
+#: doc/guix.texi:560
 #, no-wrap
 msgid "directories related to foreign distro"
 msgstr "Verzeichnisse auf einer Fremddistribution"
 
 #. type: Plain text
-#: doc/guix.texi:514
+#: doc/guix.texi:565
 msgid "When installed on a foreign distro, GNU@tie{}Guix complements the available tools without interference.  Its data lives exclusively in two directories, usually @file{/gnu/store} and @file{/var/guix}; other files on your system, such as @file{/etc}, are left untouched."
 msgstr "Wenn es auf einer Fremddistribution installiert wird, ergänzt GNU@tie{}Guix die verfügbaren Werkzeuge, ohne dass sie sich gegenseitig stören. Guix’ Daten befinden sich ausschließlich in zwei Verzeichnissen, üblicherweise @file{/gnu/store} und @file{/var/guix}; andere Dateien auf Ihrem System wie @file{/etc} bleiben unberührt."
 
 #. type: Plain text
-#: doc/guix.texi:517
+#: doc/guix.texi:568
 msgid "Once installed, Guix can be updated by running @command{guix pull} (@pxref{Invoking guix pull})."
 msgstr "Sobald es installiert ist, kann Guix durch Ausführen von @command{guix pull} aktualisiert werden (siehe @ref{Invoking guix pull})."
 
 #. type: Plain text
-#: doc/guix.texi:522
+#: doc/guix.texi:573
 msgid "If you prefer to perform the installation steps manually or want to tweak them, you may find the following subsections useful.  They describe the software requirements of Guix, as well as how to install it manually and get ready to use it."
 msgstr "Sollten Sie es vorziehen, die Installationsschritte manuell durchzuführen, oder falls Sie Anpassungen daran vornehmen möchten, könnten sich die folgenden Unterabschnitte als nützlich erweisen. Diese beschreiben die Software-Voraussetzungen von Guix und wie man es manuell installiert, so dass man es benutzen kann."
 
-#. type: section
-#: doc/guix.texi:531 doc/guix.texi:1779 doc/guix.texi:1780
-#, no-wrap
-msgid "Upgrading Guix"
-msgstr "Aktualisieren von Guix"
-
-#. type: menuentry
-#: doc/guix.texi:531
-msgid "Upgrading Guix and its build daemon."
-msgstr "Guix und seinen Erstellungs-Daemon aktualisieren."
-
 #. type: cindex
-#: doc/guix.texi:536
+#: doc/guix.texi:587
 #, no-wrap
 msgid "installing Guix from binaries"
 msgstr "Guix aus Binärdateien installieren"
 
 #. type: cindex
-#: doc/guix.texi:537
+#: doc/guix.texi:588
 #, no-wrap
 msgid "installer script"
 msgstr "Installations-Skript"
 
 #. type: Plain text
-#: doc/guix.texi:543
+#: doc/guix.texi:594
 msgid "This section describes how to install Guix on an arbitrary system from a self-contained tarball providing binaries for Guix and for all its dependencies.  This is often quicker than installing from source, which is described in the next sections.  The only requirement is to have GNU@tie{}tar and Xz."
 msgstr "Dieser Abschnitt beschreibt, wie sich Guix auf einem beliebigen System aus einem alle Komponenten umfassenden Tarball installieren lässt, der Binärdateien für Guix und all seine Abhängigkeiten liefert. Dies geht in der Regel schneller, als Guix aus seinen Quelldateien zu installieren, was in den nächsten Abschnitten beschrieben wird. Vorausgesetzt wird hier lediglich, dass GNU@tie{}tar und Xz verfügbar sind."
 
 #. type: quotation
-#: doc/guix.texi:551
-msgid "We recommend the use of this @uref{https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh, shell installer script}.  The script automates the download, installation, and initial configuration steps described below.  It should be run as the root user."
+#: doc/guix.texi:602
+msgid "We recommend the use of this @uref{https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh, shell installer script}.  The script automates the download, installation, and initial configuration steps described below.  It should be run as the root user.  As root, you can thus run this:"
 msgstr "Wir empfehlen, dass Sie dieses @uref{https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh, Installations-Skript für die Shell} verwenden, welches Guix automatisch herunterlädt, installiert und eine erste Konfiguration von Guix mit sich bringt. Es sollte als der Administratornutzer (als „root“) ausgeführt werden."
 
+#. type: example
+#: doc/guix.texi:608
+#, no-wrap
+msgid ""
+"cd /tmp\n"
+"wget https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh\n"
+"chmod +x guix-install.sh\n"
+"./guix-install.sh\n"
+msgstr ""
+"cd /tmp\n"
+"wget https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh\n"
+"chmod +x guix-install.sh\n"
+"./guix-install.sh\n"
+
+#. type: quotation
+#: doc/guix.texi:612
+msgid "When you're done, @pxref{Application Setup} for extra configuration you might need, and @ref{Getting Started} for your first steps!"
+msgstr "Wenn Sie das erledigt haben, werfen Sie einen Blick auf @ref{Application Setup} für weitere Einstellungen, die Sie vielleicht vornehmen möchten, und lesen Sie die ersten Schritte im @ref{Getting Started}, um loszulegen!"
+
 #. type: Plain text
-#: doc/guix.texi:554
+#: doc/guix.texi:615
 msgid "Installing goes along these lines:"
 msgstr "Die Installation läuft so ab:"
 
 #. type: cindex
-#: doc/guix.texi:557
+#: doc/guix.texi:618
 #, no-wrap
 msgid "downloading Guix binary"
 msgstr "Guix-Binärdatei herunterladen"
 
 #. type: enumerate
-#: doc/guix.texi:562
-msgid "Download the binary tarball from @indicateurl{@value{BASE-URL}/guix-binary-@value{VERSION}.@var{system}.tar.xz}, where @var{system} is @code{x86_64-linux} for an @code{x86_64} machine already running the kernel Linux, and so on."
-msgstr "Laden Sie den binären Tarball von @indicateurl{@value{BASE-URL}/guix-binary-@value{VERSION}.@var{System}.tar.xz} herunter, wobei @var{System} für @code{x86_64-linux} steht, falls Sie es auf einer Maschine mit @code{x86_64}-Architektur einrichten, auf der bereits der Linux-Kernel läuft, oder entsprechend für andere Maschinen."
+#: doc/guix.texi:624
+msgid "Download the binary tarball from @indicateurl{@value{BASE-URL}/guix-binary-@value{VERSION}.x86_64-linux.tar.xz}, where @code{x86_64-linux} can be replaced with @code{i686-linux} for an @code{i686} (32-bits) machine already running the kernel Linux, and so on (@pxref{GNU Distribution})."
+msgstr "Laden Sie den binären Tarball von @indicateurl{@value{BASE-URL}/guix-binary-@value{VERSION}.x86_64-linux.tar.xz} herunte. Falls Sie Guix auf einer Maschine mit @code{i686}-Architektur (32@tie{}Bit) einrichten, auf der bereits der Linux-Kernel läuft, ersetzen Sie @code{x86_64-linux} durch @code{i686-linux} oder entsprechend für andere Maschinen (siehe @ref{GNU Distribution})."
 
 #. type: enumerate
-#: doc/guix.texi:566
+#: doc/guix.texi:628
 msgid "Make sure to download the associated @file{.sig} file and to verify the authenticity of the tarball against it, along these lines:"
 msgstr "Achten Sie darauf, auch die zugehörige @file{.sig}-Datei herunterzuladen und verifizieren Sie damit die Authentizität des Tarballs, ungefähr so:"
 
 #. type: example
-#: doc/guix.texi:570
+#: doc/guix.texi:632
 #, no-wrap
 msgid ""
-"$ wget @value{BASE-URL}/guix-binary-@value{VERSION}.@var{system}.tar.xz.sig\n"
-"$ gpg --verify guix-binary-@value{VERSION}.@var{system}.tar.xz.sig\n"
+"$ wget @value{BASE-URL}/guix-binary-@value{VERSION}.x86_64-linux.tar.xz.sig\n"
+"$ gpg --verify guix-binary-@value{VERSION}.x86_64-linux.tar.xz.sig\n"
 msgstr ""
-"$ wget @value{BASE-URL}/guix-binary-@value{VERSION}.@var{System}.tar.xz.sig\n"
-"$ gpg --verify guix-binary-@value{VERSION}.@var{System}.tar.xz.sig\n"
+"$ wget @value{BASE-URL}/guix-binary-@value{VERSION}.x86_64-linux.tar.xz.sig\n"
+"$ gpg --verify guix-binary-@value{VERSION}.x86_64-linux.tar.xz.sig\n"
 
 #. type: Plain text
-#: doc/guix.texi:574 doc/guix.texi:1943
+#: doc/guix.texi:636 doc/guix.texi:2030
 msgid "If that command fails because you do not have the required public key, then run this command to import it:"
 msgstr "Falls dieser Befehl fehlschlägt, weil Sie nicht über den nötigen öffentlichen Schlüssel verfügen, können Sie ihn mit diesem Befehl importieren:"
 
 #. type: example
-#: doc/guix.texi:578 doc/guix.texi:1947
+#: doc/guix.texi:640 doc/guix.texi:2034
 #, no-wrap
 msgid ""
 "$ wget @value{OPENPGP-SIGNING-KEY-URL} \\\n"
@@ -3886,56 +4359,56 @@ msgstr ""
 "      -qO - | gpg --import -\n"
 
 #. type: Plain text
-#: doc/guix.texi:582 doc/guix.texi:1951
+#: doc/guix.texi:644 doc/guix.texi:2038
 msgid "and rerun the @code{gpg --verify} command."
 msgstr "und den Befehl @code{gpg --verify} erneut ausführen."
 
 #. type: Plain text
-#: doc/guix.texi:585 doc/guix.texi:1954
+#: doc/guix.texi:647 doc/guix.texi:2041
 msgid "Take note that a warning like ``This key is not certified with a trusted signature!'' is normal."
 msgstr "Beachten Sie, dass eine Warnung wie „Dieser Schlüssel trägt keine vertrauenswürdige Signatur!“ normal ist."
 
 #. type: enumerate
-#: doc/guix.texi:591
+#: doc/guix.texi:653
 msgid "Now, you need to become the @code{root} user.  Depending on your distribution, you may have to run @code{su -} or @code{sudo -i}.  As @code{root}, run:"
 msgstr "Nun müssen Sie zum Administratornutzer @code{root} wechseln. Abhängig von Ihrer Distribution müssen Sie dazu etwa @code{su -} oder @code{sudo -i} ausführen. Danach führen Sie als @code{root}-Nutzer aus:"
 
 #. type: example
-#: doc/guix.texi:597
+#: doc/guix.texi:659
 #, no-wrap
 msgid ""
 "# cd /tmp\n"
 "# tar --warning=no-timestamp -xf \\\n"
-"     /path/to/guix-binary-@value{VERSION}.@var{system}.tar.xz\n"
+"     /path/to/guix-binary-@value{VERSION}.x86_64-linux.tar.xz\n"
 "# mv var/guix /var/ && mv gnu /\n"
 msgstr ""
 "# cd /tmp\n"
 "# tar --warning=no-timestamp -xf \\\n"
-"     /pfad/zur/guix-binary-@value{VERSION}.@var{System}.tar.xz\n"
+"     /pfad/zur/guix-binary-@value{VERSION}.x86_64-linux.tar.xz\n"
 "# mv var/guix /var/ && mv gnu /\n"
 
 #. type: enumerate
-#: doc/guix.texi:602
-msgid "This creates @file{/gnu/store} (@pxref{The Store}) and @file{/var/guix}.  The latter contains a ready-to-use profile for @code{root} (see next step.)"
+#: doc/guix.texi:664
+msgid "This creates @file{/gnu/store} (@pxref{The Store}) and @file{/var/guix}.  The latter contains a ready-to-use profile for @code{root} (see next step)."
 msgstr "Dadurch wird @file{/gnu/store} (siehe @ref{The Store}) und @file{/var/guix} erzeugt. Letzteres enthält ein fertiges Guix-Profil für den Administratornutzer @code{root} (wie im nächsten Schritt beschrieben)."
 
 #. type: enumerate
-#: doc/guix.texi:605
+#: doc/guix.texi:667
 msgid "Do @emph{not} unpack the tarball on a working Guix system since that would overwrite its own essential files."
 msgstr "Entpacken Sie den Tarball @emph{nicht} auf einem schon funktionierenden Guix-System, denn es würde seine eigenen essenziellen Dateien überschreiben."
 
 #. type: enumerate
-#: doc/guix.texi:615
-msgid "The @code{--warning=no-timestamp} option makes sure GNU@tie{}tar does not emit warnings about ``implausibly old time stamps'' (such warnings were triggered by GNU@tie{}tar 1.26 and older; recent versions are fine.)  They stem from the fact that all the files in the archive have their modification time set to zero (which means January 1st, 1970.)  This is done on purpose to make sure the archive content is independent of its creation time, thus making it reproducible."
-msgstr "Die Befehlszeilenoption @code{--warning=no-timestamp} stellt sicher, dass GNU@tie{}tar nicht vor „unplausibel alten Zeitstempeln“ warnt (solche Warnungen traten bei GNU@tie{}tar 1.26 und älter auf, neue Versionen machen keine Probleme). Sie treten auf, weil alle Dateien im Archiv als Änderungszeitpunkt null eingetragen bekommen haben (das bezeichnet den 1. Januar 1970). Das ist Absicht, damit der Inhalt des Archivs nicht davon abhängt, wann es erstellt wurde, und es somit reproduzierbar wird."
+#: doc/guix.texi:677
+msgid "The @option{--warning=no-timestamp} option makes sure GNU@tie{}tar does not emit warnings about ``implausibly old time stamps'' (such warnings were triggered by GNU@tie{}tar 1.26 and older; recent versions are fine).  They stem from the fact that all the files in the archive have their modification time set to 1 (which means January 1st, 1970).  This is done on purpose to make sure the archive content is independent of its creation time, thus making it reproducible."
+msgstr "Die Befehlszeilenoption @option{--warning=no-timestamp} stellt sicher, dass GNU@tie{}tar nicht vor „unplausibel alten Zeitstempeln“ warnt (solche Warnungen traten bei GNU@tie{}tar 1.26 und älter auf, neue Versionen machen keine Probleme). Sie treten auf, weil alle Dateien im Archiv als Änderungszeitpunkt 1 eingetragen bekommen haben (das bezeichnet den 1. Januar 1970). Das ist Absicht, damit der Inhalt des Archivs nicht davon abhängt, wann es erstellt wurde, und es somit reproduzierbar wird."
 
 #. type: enumerate
-#: doc/guix.texi:619
+#: doc/guix.texi:681
 msgid "Make the profile available under @file{~root/.config/guix/current}, which is where @command{guix pull} will install updates (@pxref{Invoking guix pull}):"
 msgstr "Machen Sie das Profil als @file{~root/.config/guix/current} verfügbar, wo @command{guix pull} es aktualisieren kann (siehe @ref{Invoking guix pull}):"
 
 #. type: example
-#: doc/guix.texi:624
+#: doc/guix.texi:686
 #, no-wrap
 msgid ""
 "# mkdir -p ~root/.config/guix\n"
@@ -3947,12 +4420,12 @@ msgstr ""
 "         ~root/.config/guix/current\n"
 
 #. type: enumerate
-#: doc/guix.texi:628
-msgid "Source @file{etc/profile} to augment @code{PATH} and other relevant environment variables:"
-msgstr "„Sourcen“ Sie @file{etc/profile}, um @code{PATH} und andere relevante Umgebungsvariable zu ergänzen:"
+#: doc/guix.texi:690
+msgid "Source @file{etc/profile} to augment @env{PATH} and other relevant environment variables:"
+msgstr "„Sourcen“ Sie @file{etc/profile}, um @env{PATH} und andere relevante Umgebungsvariable zu ergänzen:"
 
 #. type: example
-#: doc/guix.texi:632
+#: doc/guix.texi:694
 #, no-wrap
 msgid ""
 "# GUIX_PROFILE=\"`echo ~root`/.config/guix/current\" ; \\\n"
@@ -3962,39 +4435,41 @@ msgstr ""
 "  source $GUIX_PROFILE/etc/profile\n"
 
 #. type: enumerate
-#: doc/guix.texi:637
+#: doc/guix.texi:699
 msgid "Create the group and user accounts for build users as explained below (@pxref{Build Environment Setup})."
 msgstr "Erzeugen Sie Nutzergruppe und Nutzerkonten für die Erstellungs-Benutzer wie folgt (siehe @ref{Build Environment Setup})."
 
 #. type: enumerate
-#: doc/guix.texi:640
+#: doc/guix.texi:702
 msgid "Run the daemon, and set it to automatically start on boot."
 msgstr "Führen Sie den Daemon aus, und lassen Sie ihn automatisch bei jedem Hochfahren starten."
 
 #. type: enumerate
-#: doc/guix.texi:643
+#: doc/guix.texi:705
 msgid "If your host distro uses the systemd init system, this can be achieved with these commands:"
 msgstr "Wenn Ihre Wirts-Distribution systemd als „init“-System verwendet, können Sie das mit folgenden Befehlen veranlassen:"
 
 #. type: example
-#: doc/guix.texi:655
+#: doc/guix.texi:718
 #, no-wrap
 msgid ""
-"# cp ~root/.config/guix/current/lib/systemd/system/guix-daemon.service \\\n"
+"# cp ~root/.config/guix/current/lib/systemd/system/gnu-store.mount \\\n"
+"     ~root/.config/guix/current/lib/systemd/system/guix-daemon.service \\\n"
 "     /etc/systemd/system/\n"
-"# systemctl start guix-daemon && systemctl enable guix-daemon\n"
+"# systemctl enable --now gnu-store.mount guix-daemon\n"
 msgstr ""
-"# cp ~root/.config/guix/current/lib/systemd/system/guix-daemon.service \\\n"
+"# cp ~root/.config/guix/current/lib/systemd/system/gnu-store.mount \\\n"
+"     ~root/.config/guix/current/lib/systemd/system/guix-daemon.service \\\n"
 "     /etc/systemd/system/\n"
-"# systemctl start guix-daemon && systemctl enable guix-daemon\n"
+"# systemctl enable --now gnu-store.mount guix-daemon\n"
 
 #. type: itemize
-#: doc/guix.texi:658 doc/guix.texi:10448
+#: doc/guix.texi:721 doc/guix.texi:12367
 msgid "If your host distro uses the Upstart init system:"
 msgstr "Wenn Ihre Wirts-Distribution als „init“-System Upstart verwendet:"
 
 #. type: example
-#: doc/guix.texi:664
+#: doc/guix.texi:727
 #, no-wrap
 msgid ""
 "# initctl reload-configuration\n"
@@ -4008,12 +4483,12 @@ msgstr ""
 "# start guix-daemon\n"
 
 #. type: enumerate
-#: doc/guix.texi:667
+#: doc/guix.texi:730
 msgid "Otherwise, you can still start the daemon manually with:"
 msgstr "Andernfalls können Sie den Daemon immer noch manuell starten, mit:"
 
 #. type: example
-#: doc/guix.texi:671
+#: doc/guix.texi:734
 #, no-wrap
 msgid ""
 "# ~root/.config/guix/current/bin/guix-daemon \\\n"
@@ -4023,12 +4498,12 @@ msgstr ""
 "       --build-users-group=guixbuild\n"
 
 #. type: enumerate
-#: doc/guix.texi:676
+#: doc/guix.texi:739
 msgid "Make the @command{guix} command available to other users on the machine, for instance with:"
 msgstr "Stellen Sie den @command{guix}-Befehl auch anderen Nutzern Ihrer Maschine zur Verfügung, zum Beispiel so:"
 
 #. type: example
-#: doc/guix.texi:681
+#: doc/guix.texi:744
 #, no-wrap
 msgid ""
 "# mkdir -p /usr/local/bin\n"
@@ -4040,12 +4515,12 @@ msgstr ""
 "# ln -s /var/guix/profiles/per-user/root/current-guix/bin/guix\n"
 
 #. type: enumerate
-#: doc/guix.texi:685
+#: doc/guix.texi:748
 msgid "It is also a good idea to make the Info version of this manual available there:"
 msgstr "Es ist auch eine gute Idee, die Info-Version dieses Handbuchs ebenso verfügbar zu machen:"
 
 #. type: example
-#: doc/guix.texi:691
+#: doc/guix.texi:754
 #, no-wrap
 msgid ""
 "# mkdir -p /usr/local/share/info\n"
@@ -4059,23 +4534,23 @@ msgstr ""
 "  do ln -s $i ; done\n"
 
 #. type: enumerate
-#: doc/guix.texi:697
-msgid "That way, assuming @file{/usr/local/share/info} is in the search path, running @command{info guix} will open this manual (@pxref{Other Info Directories,,, texinfo, GNU Texinfo}, for more details on changing the Info search path.)"
+#: doc/guix.texi:760
+msgid "That way, assuming @file{/usr/local/share/info} is in the search path, running @command{info guix} will open this manual (@pxref{Other Info Directories,,, texinfo, GNU Texinfo}, for more details on changing the Info search path)."
 msgstr "Auf diese Art wird, unter der Annahme, dass bei Ihnen @file{/usr/local/share/info} im Suchpfad eingetragen ist, das Ausführen von @command{info guix.de} dieses Handbuch öffnen (siehe @ref{Other Info Directories,,, texinfo, GNU Texinfo} hat weitere Details, wie Sie den Info-Suchpfad ändern können)."
 
 #. type: cindex
-#: doc/guix.texi:699 doc/guix.texi:3269 doc/guix.texi:12760
+#: doc/guix.texi:762 doc/guix.texi:3603 doc/guix.texi:14912
 #, no-wrap
 msgid "substitutes, authorization thereof"
 msgstr "Substitute, deren Autorisierung"
 
 #. type: enumerate
-#: doc/guix.texi:702
+#: doc/guix.texi:765
 msgid "To use substitutes from @code{@value{SUBSTITUTE-SERVER}} or one of its mirrors (@pxref{Substitutes}), authorize them:"
 msgstr "Um Substitute von @code{@value{SUBSTITUTE-SERVER}} oder einem Spiegelserver davon zu benutzen (siehe @ref{Substitutes}), müssen sie erst autorisiert werden:"
 
 #. type: example
-#: doc/guix.texi:706
+#: doc/guix.texi:769
 #, no-wrap
 msgid ""
 "# guix archive --authorize < \\\n"
@@ -4085,44 +4560,44 @@ msgstr ""
 "     ~root/.config/guix/current/share/guix/@value{SUBSTITUTE-SERVER}.pub\n"
 
 #. type: enumerate
-#: doc/guix.texi:711
+#: doc/guix.texi:774
 msgid "Each user may need to perform a few additional steps to make their Guix environment ready for use, @pxref{Application Setup}."
 msgstr "Alle Nutzer müssen womöglich ein paar zusätzliche Schritte ausführen, damit ihre Guix-Umgebung genutzt werden kann, siehe @ref{Application Setup}."
 
 #. type: Plain text
-#: doc/guix.texi:714
+#: doc/guix.texi:777
 msgid "Voilà, the installation is complete!"
 msgstr "Voilà, die Installation ist fertig!"
 
 #. type: Plain text
-#: doc/guix.texi:717
+#: doc/guix.texi:780
 msgid "You can confirm that Guix is working by installing a sample package into the root profile:"
 msgstr "Sie können nachprüfen, dass Guix funktioniert, indem Sie ein Beispielpaket in das root-Profil installieren:"
 
 #. type: example
-#: doc/guix.texi:720
+#: doc/guix.texi:783
 #, no-wrap
 msgid "# guix install hello\n"
 msgstr "# guix install hello\n"
 
 #. type: Plain text
-#: doc/guix.texi:724
+#: doc/guix.texi:787
 msgid "The binary installation tarball can be (re)produced and verified simply by running the following command in the Guix source tree:"
 msgstr "Der Tarball zur Installation aus einer Binärdatei kann einfach durch Ausführung des folgenden Befehls im Guix-Quellbaum (re-)produziert und verifiziert werden:"
 
 #. type: example
-#: doc/guix.texi:727
+#: doc/guix.texi:790
 #, no-wrap
 msgid "make guix-binary.@var{system}.tar.xz\n"
 msgstr "make guix-binary.@var{System}.tar.xz\n"
 
 #. type: Plain text
-#: doc/guix.texi:731
+#: doc/guix.texi:794
 msgid "...@: which, in turn, runs:"
 msgstr "…@: was wiederum dies ausführt:"
 
 #. type: example
-#: doc/guix.texi:735
+#: doc/guix.texi:798
 #, no-wrap
 msgid ""
 "guix pack -s @var{system} --localstatedir \\\n"
@@ -4132,271 +4607,282 @@ msgstr ""
 "  --profile-name=current-guix guix\n"
 
 #. type: Plain text
-#: doc/guix.texi:738
+#: doc/guix.texi:801
 msgid "@xref{Invoking guix pack}, for more info on this handy tool."
 msgstr "Siehe @ref{Invoking guix pack} für weitere Informationen zu diesem praktischen Werkzeug."
 
 #. type: Plain text
-#: doc/guix.texi:746
+#: doc/guix.texi:809
 msgid "This section lists requirements when building Guix from source.  The build procedure for Guix is the same as for other GNU software, and is not covered here.  Please see the files @file{README} and @file{INSTALL} in the Guix source tree for additional details."
 msgstr "Dieser Abschnitt listet Voraussetzungen auf, um Guix aus seinem Quellcode zu erstellen. Der Erstellungsprozess für Guix ist derselbe wie für andere GNU-Software und wird hier nicht beschrieben. Bitte lesen Sie die Dateien @file{README} und @file{INSTALL} im Guix-Quellbaum, um weitere Details zu erfahren."
 
 #. type: cindex
-#: doc/guix.texi:747
+#: doc/guix.texi:810
 #, no-wrap
 msgid "official website"
 msgstr "Offizieller Webauftritt"
 
 #. type: Plain text
-#: doc/guix.texi:750
+#: doc/guix.texi:813
 msgid "GNU Guix is available for download from its website at @url{https://www.gnu.org/software/guix/}."
 msgstr "GNU Guix kann von seinem Webauftritt unter @url{http://www.gnu.org/software/guix/} heruntergeladen werden."
 
 #. type: Plain text
-#: doc/guix.texi:752
+#: doc/guix.texi:815
 msgid "GNU Guix depends on the following packages:"
 msgstr "GNU Guix hat folgende Pakete als Abhängigkeiten:"
 
 #. type: item
-#: doc/guix.texi:754
+#: doc/guix.texi:817
 #, no-wrap
 msgid "@url{https://gnu.org/software/guile/, GNU Guile}, version 3.0.x or"
 msgstr "@url{https://gnu.org/software/guile/, GNU Guile}, Version 3.0.x oder"
 
 #. type: itemize
-#: doc/guix.texi:756
+#: doc/guix.texi:819
 msgid "2.2.x;"
 msgstr "2.2.x,"
 
 #. type: item
-#: doc/guix.texi:756
+#: doc/guix.texi:819
 #, no-wrap
 msgid "@url{https://notabug.org/cwebber/guile-gcrypt, Guile-Gcrypt}, version"
 msgstr "@url{https://notabug.org/cwebber/guile-gcrypt, Guile-Gcrypt}, Version"
 
 #. type: itemize
-#: doc/guix.texi:758
+#: doc/guix.texi:821
 msgid "0.1.0 or later;"
 msgstr "0.1.0 oder neuer,"
 
 #. type: itemize
-#: doc/guix.texi:762
+#: doc/guix.texi:825
 msgid "@uref{https://gnutls.org/, GnuTLS}, specifically its Guile bindings (@pxref{Guile Preparations, how to install the GnuTLS bindings for Guile,, gnutls-guile, GnuTLS-Guile});"
 msgstr "@uref{https://gnutls.org/, GnuTLS}, im Speziellen dessen Anbindungen für Guile (siehe @ref{Guile Preparations, how to install the GnuTLS bindings for Guile,, gnutls-guile, GnuTLS-Guile}),"
 
 #. type: itemize
-#: doc/guix.texi:765
+#: doc/guix.texi:828
 msgid "@uref{https://notabug.org/guile-sqlite3/guile-sqlite3, Guile-SQLite3}, version 0.1.0 or later;"
 msgstr "@uref{https://notabug.org/guile-sqlite3/guile-sqlite3, Guile-SQLite3}, Version 0.1.0 oder neuer,"
 
-#. type: itemize
-#: doc/guix.texi:769
-msgid "@uref{https://gitlab.com/guile-git/guile-git, Guile-Git}, from August 2017 or later;"
-msgstr "@uref{https://gitlab.com/guile-git/guile-git, Guile-Git}, vom August 2017 oder neuer,"
+#. type: item
+#: doc/guix.texi:828
+#, no-wrap
+msgid "@uref{https://notabug.org/guile-zlib/guile-zlib, Guile-zlib};"
+msgstr "@uref{https://notabug.org/guile-zlib/guile-zlib, Guile-zlib},"
 
 #. type: item
-#: doc/guix.texi:769
+#: doc/guix.texi:829
 #, no-wrap
-msgid "@uref{https://savannah.nongnu.org/projects/guile-json/, Guile-JSON} 3.x;"
-msgstr "@uref{https://savannah.nongnu.org/projects/guile-json/, Guile-JSON} 3.x,"
+msgid "@uref{https://notabug.org/guile-lzlib/guile-lzlib, Guile-lzlib};"
+msgstr "@uref{https://notabug.org/guile-lzlib/guile-lzlib, Guile-lzlib},"
+
+#. type: itemize
+#: doc/guix.texi:834
+msgid "@uref{https://gitlab.com/guile-git/guile-git, Guile-Git}, version 0.3.0 or later;"
+msgstr "@uref{https://gitlab.com/guile-git/guile-git, Guile-Git}, Version 0.3.0 oder neuer,"
 
 #. type: item
-#: doc/guix.texi:770
+#: doc/guix.texi:834
 #, no-wrap
-msgid "@url{https://zlib.net, zlib};"
-msgstr "@url{https://zlib.net, zlib},"
+msgid "@uref{https://savannah.nongnu.org/projects/guile-json/, Guile-JSON}"
+msgstr "@uref{https://savannah.nongnu.org/projects/guile-json/, Guile-JSON}"
+
+#. type: itemize
+#: doc/guix.texi:836
+msgid "4.3.0 or later;"
+msgstr "4.3.0 oder später,"
 
 #. type: item
-#: doc/guix.texi:771
+#: doc/guix.texi:836
 #, no-wrap
 msgid "@url{https://www.gnu.org/software/make/, GNU Make}."
 msgstr "@url{https://www.gnu.org/software/make/, GNU Make}."
 
 #. type: Plain text
-#: doc/guix.texi:775
+#: doc/guix.texi:840
 msgid "The following dependencies are optional:"
 msgstr "Folgende Abhängigkeiten sind optional:"
 
 #. type: itemize
-#: doc/guix.texi:783
-msgid "Support for build offloading (@pxref{Daemon Offload Setup}) and @command{guix copy} (@pxref{Invoking guix copy}) depends on @uref{https://github.com/artyom-poptsov/guile-ssh, Guile-SSH}, version 0.12.0 or later."
-msgstr "Unterstützung für das Auslagern von Erstellungen (siehe @ref{Daemon Offload Setup}) und @command{guix copy} (siehe @ref{Invoking guix copy}) hängt von @uref{https://github.com/artyom-poptsov/guile-ssh, Guile-SSH}, Version 0.12.0 oder neuer, ab."
+#: doc/guix.texi:848
+msgid "Support for build offloading (@pxref{Daemon Offload Setup}) and @command{guix copy} (@pxref{Invoking guix copy}) depends on @uref{https://github.com/artyom-poptsov/guile-ssh, Guile-SSH}, version 0.13.0 or later."
+msgstr "Unterstützung für das Auslagern von Erstellungen (siehe @ref{Daemon Offload Setup}) und @command{guix copy} (siehe @ref{Invoking guix copy}) hängt von @uref{https://github.com/artyom-poptsov/guile-ssh, Guile-SSH}, Version 0.13.0 oder neuer, ab."
 
 #. type: itemize
-#: doc/guix.texi:788
+#: doc/guix.texi:853
 msgid "When @url{https://www.nongnu.org/lzip/lzlib.html, lzlib} is available, lzlib substitutes can be used and @command{guix publish} can compress substitutes with lzlib."
 msgstr "Wenn @url{https://www.nongnu.org/lzip/lzlib.html, lzlib} verfügbar ist, können lzlib-Substitute benutzt werden und @command{guix publish} kann Substitute mit lzlib komprimieren."
 
 #. type: itemize
-#: doc/guix.texi:792
+#: doc/guix.texi:857
 msgid "When @url{http://www.bzip.org, libbz2} is available, @command{guix-daemon} can use it to compress build logs."
 msgstr "Wenn @url{http://www.bzip.org, libbz2} verfügbar ist, kann @command{guix-daemon} damit Erstellungsprotokolle komprimieren."
 
 #. type: Plain text
-#: doc/guix.texi:796
-msgid "Unless @code{--disable-daemon} was passed to @command{configure}, the following packages are also needed:"
-msgstr "Sofern nicht @code{--disable-daemon} beim Aufruf von @command{configure} übergeben wurde, benötigen Sie auch folgende Pakete:"
+#: doc/guix.texi:861
+msgid "Unless @option{--disable-daemon} was passed to @command{configure}, the following packages are also needed:"
+msgstr "Sofern nicht @option{--disable-daemon} beim Aufruf von @command{configure} übergeben wurde, benötigen Sie auch folgende Pakete:"
 
 #. type: item
-#: doc/guix.texi:798
+#: doc/guix.texi:863
 #, no-wrap
 msgid "@url{https://gnupg.org/, GNU libgcrypt};"
 msgstr "@url{https://gnupg.org/, GNU libgcrypt},"
 
 #. type: item
-#: doc/guix.texi:799
+#: doc/guix.texi:864
 #, no-wrap
 msgid "@url{https://sqlite.org, SQLite 3};"
 msgstr "@url{https://sqlite.org, SQLite 3},"
 
 #. type: item
-#: doc/guix.texi:800
+#: doc/guix.texi:865
 #, no-wrap
 msgid "@url{https://gcc.gnu.org, GCC's g++}, with support for the"
 msgstr "@url{https://gcc.gnu.org, GCC's g++} mit Unterstützung für den"
 
 #. type: itemize
-#: doc/guix.texi:802
+#: doc/guix.texi:867
 msgid "C++11 standard."
 msgstr "C++11-Standard."
 
 #. type: cindex
-#: doc/guix.texi:804
+#: doc/guix.texi:869
 #, no-wrap
 msgid "state directory"
 msgstr "Zustandsverzeichnis"
 
 #. type: Plain text
-#: doc/guix.texi:813
-msgid "When configuring Guix on a system that already has a Guix installation, be sure to specify the same state directory as the existing installation using the @code{--localstatedir} option of the @command{configure} script (@pxref{Directory Variables, @code{localstatedir},, standards, GNU Coding Standards}).  Usually, this @var{localstatedir} option is set to the value @file{/var}.  The @command{configure} script protects against unintended misconfiguration of @var{localstatedir} so you do not inadvertently corrupt your store (@pxref{The Store})."
-msgstr "Sollten Sie Guix auf einem System konfigurieren, auf dem Guix bereits installiert ist, dann stellen Sie sicher, dasselbe Zustandsverzeichnis wie für die bestehende Installation zu verwenden. Benutzen Sie dazu die Befehlszeilenoption @code{--localstatedir} des @command{configure}-Skripts (siehe @ref{Directory Variables, @code{localstatedir},, standards, GNU Coding Standards}). Die @var{localstatedir}-Option wird normalerweise auf den Wert @file{/var} festgelegt. Das @command{configure}-Skript schützt vor ungewollter Fehlkonfiguration der @var{localstatedir}, damit Sie nicht versehentlich Ihren Store verfälschen (siehe @ref{The Store})."
+#: doc/guix.texi:878
+msgid "When configuring Guix on a system that already has a Guix installation, be sure to specify the same state directory as the existing installation using the @option{--localstatedir} option of the @command{configure} script (@pxref{Directory Variables, @code{localstatedir},, standards, GNU Coding Standards}).  Usually, this @var{localstatedir} option is set to the value @file{/var}.  The @command{configure} script protects against unintended misconfiguration of @var{localstatedir} so you do not inadvertently corrupt your store (@pxref{The Store})."
+msgstr "Sollten Sie Guix auf einem System konfigurieren, auf dem Guix bereits installiert ist, dann stellen Sie sicher, dasselbe Zustandsverzeichnis wie für die bestehende Installation zu verwenden. Benutzen Sie dazu die Befehlszeilenoption @option{--localstatedir} des @command{configure}-Skripts (siehe @ref{Directory Variables, @code{localstatedir},, standards, GNU Coding Standards}). Die @var{localstatedir}-Option wird normalerweise auf den Wert @file{/var} festgelegt. Das @command{configure}-Skript schützt vor ungewollter Fehlkonfiguration der @var{localstatedir}, damit Sie nicht versehentlich Ihren Store verfälschen (siehe @ref{The Store})."
 
 #. type: cindex
-#: doc/guix.texi:817
+#: doc/guix.texi:882
 #, no-wrap
 msgid "test suite"
 msgstr "Testkatalog"
 
 #. type: Plain text
-#: doc/guix.texi:823
+#: doc/guix.texi:888
 msgid "After a successful @command{configure} and @code{make} run, it is a good idea to run the test suite.  It can help catch issues with the setup or environment, or bugs in Guix itself---and really, reporting test failures is a good way to help improve the software.  To run the test suite, type:"
 msgstr "Nachdem @command{configure} und @code{make} erfolgreich durchgelaufen sind, ist es ratsam, den Testkatalog auszuführen. Er kann dabei helfen, Probleme mit der Einrichtung oder Systemumgebung zu finden, oder auch Probleme in Guix selbst — und Testfehler zu melden ist eine wirklich gute Art und Weise, bei der Verbesserung von Guix mitzuhelfen. Um den Testkatalog auszuführen, geben Sie Folgendes ein:"
 
 #. type: example
-#: doc/guix.texi:826
+#: doc/guix.texi:891
 #, no-wrap
 msgid "make check\n"
 msgstr "make check\n"
 
 #. type: Plain text
-#: doc/guix.texi:833
+#: doc/guix.texi:898
 msgid "Test cases can run in parallel: you can use the @code{-j} option of GNU@tie{}make to speed things up.  The first run may take a few minutes on a recent machine; subsequent runs will be faster because the store that is created for test purposes will already have various things in cache."
 msgstr "Testfälle können parallel ausgeführt werden. Sie können die Befehlszeiltenoption @code{-j} von GNU@tie{}make benutzen, damit es schneller geht. Der erste Durchlauf kann auf neuen Maschinen ein paar Minuten dauern, nachfolgende Ausführungen werden schneller sein, weil der für die Tests erstellte Store schon einige Dinge zwischengespeichert haben wird."
 
 #. type: Plain text
-#: doc/guix.texi:836
+#: doc/guix.texi:901
 msgid "It is also possible to run a subset of the tests by defining the @code{TESTS} makefile variable as in this example:"
 msgstr "Es ist auch möglich, eine Teilmenge der Tests laufen zu lassen, indem Sie die @code{TESTS}-Variable des Makefiles ähnlich wie in diesem Beispiel definieren:"
 
 #. type: example
-#: doc/guix.texi:839
+#: doc/guix.texi:904
 #, no-wrap
 msgid "make check TESTS=\"tests/store.scm tests/cpio.scm\"\n"
 msgstr "make check TESTS=\"tests/store.scm tests/cpio.scm\"\n"
 
 #. type: Plain text
-#: doc/guix.texi:844
+#: doc/guix.texi:909
 msgid "By default, tests results are displayed at a file level.  In order to see the details of every individual test cases, it is possible to define the @code{SCM_LOG_DRIVER_FLAGS} makefile variable as in this example:"
 msgstr "Standardmäßig werden Testergebnisse pro Datei angezeigt. Um die Details jedes einzelnen Testfalls zu sehen, können Sie wie in diesem Beispiel die @code{SCM_LOG_DRIVER_FLAGS}-Variable des Makefiles definieren:"
 
 #. type: example
-#: doc/guix.texi:847
+#: doc/guix.texi:912
 #, no-wrap
 msgid "make check TESTS=\"tests/base64.scm\" SCM_LOG_DRIVER_FLAGS=\"--brief=no\"\n"
 msgstr "make check TESTS=\"tests/base64.scm\" SCM_LOG_DRIVER_FLAGS=\"--brief=no\"\n"
 
 #. type: Plain text
-#: doc/guix.texi:853
+#: doc/guix.texi:918
 msgid "Upon failure, please email @email{bug-guix@@gnu.org} and attach the @file{test-suite.log} file.  Please specify the Guix version being used as well as version numbers of the dependencies (@pxref{Requirements}) in your message."
 msgstr "Kommt es zum Fehlschlag, senden Sie bitte eine E-Mail an @email{bug-guix@@gnu.org} und fügen Sie die Datei @file{test-suite.log} als Anhang bei. Bitte geben Sie dabei in Ihrer Nachricht die benutzte Version von Guix an sowie die Versionsnummern der Abhängigkeiten (siehe @ref{Requirements})."
 
 #. type: Plain text
-#: doc/guix.texi:857
+#: doc/guix.texi:922
 msgid "Guix also comes with a whole-system test suite that tests complete Guix System instances.  It can only run on systems where Guix is already installed, using:"
 msgstr "Guix wird auch mit einem Testkatalog für das ganze System ausgeliefert, der vollständige Instanzen des „Guix System“-Betriebssystems testet. Er kann nur auf Systemen benutzt werden, auf denen Guix bereits installiert ist, mit folgendem Befehl:"
 
 #. type: example
-#: doc/guix.texi:860
+#: doc/guix.texi:925
 #, no-wrap
 msgid "make check-system\n"
 msgstr "make check-system\n"
 
 #. type: Plain text
-#: doc/guix.texi:864
+#: doc/guix.texi:929
 msgid "or, again, by defining @code{TESTS} to select a subset of tests to run:"
 msgstr "Oder, auch hier, indem Sie @code{TESTS} definieren, um eine Teilmenge der auszuführenden Tests anzugeben:"
 
 #. type: example
-#: doc/guix.texi:867
+#: doc/guix.texi:932
 #, no-wrap
 msgid "make check-system TESTS=\"basic mcron\"\n"
 msgstr "make check-system TESTS=\"basic mcron\"\n"
 
 #. type: Plain text
-#: doc/guix.texi:875
+#: doc/guix.texi:940
 msgid "These system tests are defined in the @code{(gnu tests @dots{})} modules.  They work by running the operating systems under test with lightweight instrumentation in a virtual machine (VM).  They can be computationally intensive or rather cheap, depending on whether substitutes are available for their dependencies (@pxref{Substitutes}).  Some of them require a lot of storage space to hold VM images."
 msgstr "Diese Systemtests sind in den @code{(gnu tests …)}-Modulen definiert. Sie funktionieren, indem Sie das getestete Betriebssystem mitsamt schlichter Instrumentierung in einer virtuellen Maschine (VM) ausführen. Die Tests können aufwendige Berechnungen durchführen oder sie günstig umgehen, je nachdem, ob für ihre Abhängigkeiten Substitute zur Verfügung stehen (siehe @ref{Substitutes}). Manche von ihnen nehmen viel Speicherplatz in Anspruch, um die VM-Abbilder zu speichern."
 
 #. type: Plain text
-#: doc/guix.texi:878
+#: doc/guix.texi:943
 msgid "Again in case of test failures, please send @email{bug-guix@@gnu.org} all the details."
 msgstr "Auch hier gilt: Falls Testfehler auftreten, senden Sie bitte alle Details an @email{bug-guix@@gnu.org}."
 
 #. type: cindex
-#: doc/guix.texi:882
+#: doc/guix.texi:947
 #, no-wrap
 msgid "daemon"
 msgstr "Daemon"
 
 #. type: Plain text
-#: doc/guix.texi:890
+#: doc/guix.texi:955
 msgid "Operations such as building a package or running the garbage collector are all performed by a specialized process, the @dfn{build daemon}, on behalf of clients.  Only the daemon may access the store and its associated database.  Thus, any operation that manipulates the store goes through the daemon.  For instance, command-line tools such as @command{guix package} and @command{guix build} communicate with the daemon (@i{via} remote procedure calls) to instruct it what to do."
 msgstr "Operationen wie das Erstellen eines Pakets oder Laufenlassen des Müllsammlers werden alle durch einen spezialisierten Prozess durchgeführt, den @dfn{Erstellungs-Daemon}, im Auftrag seiner Kunden (den Clients). Nur der Daemon darf auf den Store und seine zugehörige Datenbank zugreifen. Daher wird jede den Store verändernde Operation durch den Daemon durchgeführt. Zum Beispiel kommunizieren Befehlszeilenwerkzeuge wie @command{guix package} und @command{guix build} mit dem Daemon (mittels entfernter Prozeduraufrufe), um ihm Anweisungen zu geben, was er tun soll."
 
 #. type: Plain text
-#: doc/guix.texi:894
+#: doc/guix.texi:959
 msgid "The following sections explain how to prepare the build daemon's environment.  See also @ref{Substitutes}, for information on how to allow the daemon to download pre-built binaries."
 msgstr "Folgende Abschnitte beschreiben, wie Sie die Umgebung des Erstellungs-Daemons ausstatten sollten. Siehe auch @ref{Substitutes} für Informationen darüber, wie Sie es dem Daemon ermöglichen, vorerstellte Binärdateien herunterzuladen."
 
 #. type: cindex
-#: doc/guix.texi:904 doc/guix.texi:1327
+#: doc/guix.texi:969 doc/guix.texi:1426
 #, no-wrap
 msgid "build environment"
 msgstr "Erstellungsumgebung"
 
 #. type: Plain text
-#: doc/guix.texi:912
+#: doc/guix.texi:977
 msgid "In a standard multi-user setup, Guix and its daemon---the @command{guix-daemon} program---are installed by the system administrator; @file{/gnu/store} is owned by @code{root} and @command{guix-daemon} runs as @code{root}.  Unprivileged users may use Guix tools to build packages or otherwise access the store, and the daemon will do it on their behalf, ensuring that the store is kept in a consistent state, and allowing built packages to be shared among users."
 msgstr "In einem normalen Mehrbenutzersystem werden Guix und sein Daemon — das Programm @command{guix-daemon} — vom Systemadministrator installiert; @file{/gnu/store} gehört @code{root} und @command{guix-daemon} läuft als @code{root}. Nicht mit erweiterten Rechten ausgestattete Nutzer können Guix-Werkzeuge benutzen, um Pakete zu erstellen oder anderweitig auf den Store zuzugreifen, und der Daemon wird dies für sie erledigen und dabei sicherstellen, dass der Store in einem konsistenten Zustand verbleibt und sich die Nutzer erstellte Pakete teilen."
 
 #. type: cindex
-#: doc/guix.texi:913
+#: doc/guix.texi:978
 #, no-wrap
 msgid "build users"
 msgstr "Erstellungsbenutzer"
 
 #. type: Plain text
-#: doc/guix.texi:924
+#: doc/guix.texi:989
 msgid "When @command{guix-daemon} runs as @code{root}, you may not want package build processes themselves to run as @code{root} too, for obvious security reasons.  To avoid that, a special pool of @dfn{build users} should be created for use by build processes started by the daemon.  These build users need not have a shell and a home directory: they will just be used when the daemon drops @code{root} privileges in build processes.  Having several such users allows the daemon to launch distinct build processes under separate UIDs, which guarantees that they do not interfere with each other---an essential feature since builds are regarded as pure functions (@pxref{Introduction})."
 msgstr "Wenn @command{guix-daemon} als Administratornutzer @code{root} läuft, wollen Sie aber vielleicht dennoch nicht, dass Paketerstellungsprozesse auch als @code{root} ablaufen, aus offensichtlichen Sicherheitsgründen. Um dies zu vermeiden, sollte ein besonderer Pool aus @dfn{Erstellungsbenutzern} geschaffen werden, damit vom Daemon gestartete Erstellungsprozesse ihn benutzen. Diese Erstellungsbenutzer müssen weder eine Shell noch ein Persönliches Verzeichnis zugewiesen bekommen, sie werden lediglich benutzt, wenn der Daemon @code{root}-Rechte in Erstellungsprozessen ablegt. Mehrere solche Benutzer zu haben, ermöglicht es dem Daemon, verschiedene Erstellungsprozessen unter verschiedenen Benutzeridentifikatoren (UIDs) zu starten, was garantiert, dass sie einander nicht stören — eine essenzielle Funktionalität, da Erstellungen als reine Funktionen angesehen werden (siehe @ref{Introduction})."
 
 #. type: Plain text
-#: doc/guix.texi:927
+#: doc/guix.texi:992
 msgid "On a GNU/Linux system, a build user pool may be created like this (using Bash syntax and the @code{shadow} commands):"
 msgstr "Auf einem GNU/Linux-System kann ein Pool von Erstellungsbenutzern wie folgt erzeugt werden (mit Bash-Syntax und den Befehlen von @code{shadow}):"
 
 #. type: example
-#: doc/guix.texi:939
+#: doc/guix.texi:1004
 #, no-wrap
 msgid ""
 "# groupadd --system guixbuild\n"
@@ -4418,118 +4904,144 @@ msgstr ""
 "  done\n"
 
 #. type: Plain text
-#: doc/guix.texi:949
+#: doc/guix.texi:1014
 msgid "The number of build users determines how many build jobs may run in parallel, as specified by the @option{--max-jobs} option (@pxref{Invoking guix-daemon, @option{--max-jobs}}).  To use @command{guix system vm} and related commands, you may need to add the build users to the @code{kvm} group so they can access @file{/dev/kvm}, using @code{-G guixbuild,kvm} instead of @code{-G guixbuild} (@pxref{Invoking guix system})."
-msgstr "Die Anzahl der Erstellungsbenutzer entscheidet, wieviele Erstellungsaufträge parallel ausgeführt werden können, wie es mit der Befehlszeilenoption @option{--max-jobs} vorgegeben werden kann (siehe @ref{Invoking guix-daemon, @option{--max-jobs}}). Um @command{guix system vm} und ähnliche Befehle nutzen zu können, müssen Sie die Erstellungsbenutzer unter Umständen zur @code{kvm}-Benutzergruppe hinzufügen, damit sie Zugriff auf @file{/dev/kvm} haben, mit @code{-G guixbuild,kvm} statt @code{-G guixbuild} (siehe @ref{Invoking guix system})."
+msgstr "Die Anzahl der Erstellungsbenutzer entscheidet, wie viele Erstellungsaufträge parallel ausgeführt werden können, wie es mit der Befehlszeilenoption @option{--max-jobs} vorgegeben werden kann (siehe @ref{Invoking guix-daemon, @option{--max-jobs}}). Um @command{guix system vm} und ähnliche Befehle nutzen zu können, müssen Sie die Erstellungsbenutzer unter Umständen zur @code{kvm}-Benutzergruppe hinzufügen, damit sie Zugriff auf @file{/dev/kvm} haben, mit @code{-G guixbuild,kvm} statt @code{-G guixbuild} (siehe @ref{Invoking guix system})."
 
 #. type: Plain text
-#: doc/guix.texi:958
+#: doc/guix.texi:1023
 msgid "The @code{guix-daemon} program may then be run as @code{root} with the following command@footnote{If your machine uses the systemd init system, dropping the @file{@var{prefix}/lib/systemd/system/guix-daemon.service} file in @file{/etc/systemd/system} will ensure that @command{guix-daemon} is automatically started.  Similarly, if your machine uses the Upstart init system, drop the @file{@var{prefix}/lib/upstart/system/guix-daemon.conf} file in @file{/etc/init}.}:"
 msgstr "Das Programm @code{guix-daemon} kann mit dem folgenden Befehl als @code{root} gestartet werden@footnote{Wenn Ihre Maschine systemd als „init“-System verwendet, genügt es, die Datei @file{@var{prefix}/lib/systemd/system/guix-daemon.service} in @file{/etc/systemd/system} zu platzieren, damit @command{guix-daemon} automatisch gestartet wird. Ebenso können Sie, wenn Ihre Maschine Upstart als „init“-System benutzt, die Datei @file{@var{prefix}/lib/upstart/system/guix-daemon.conf} in @file{/etc/init} platzieren.}:"
 
 #. type: example
-#: doc/guix.texi:961 doc/guix.texi:1320
+#: doc/guix.texi:1026 doc/guix.texi:1419
 #, no-wrap
 msgid "# guix-daemon --build-users-group=guixbuild\n"
 msgstr "# guix-daemon --build-users-group=guixbuild\n"
 
 #. type: cindex
-#: doc/guix.texi:963 doc/guix.texi:1325
+#: doc/guix.texi:1028 doc/guix.texi:1424
 #, no-wrap
 msgid "chroot"
 msgstr "chroot"
 
 #. type: Plain text
-#: doc/guix.texi:968
+#: doc/guix.texi:1033
 msgid "This way, the daemon starts build processes in a chroot, under one of the @code{guixbuilder} users.  On GNU/Linux, by default, the chroot environment contains nothing but:"
 msgstr "Auf diese Weise startet der Daemon Erstellungsprozesse in einem chroot als einer der @code{guixbuilder}-Benutzer. Auf GNU/Linux enthält die chroot-Umgebung standardmäßig nichts außer:"
 
 #. type: itemize
-#: doc/guix.texi:976
+#: doc/guix.texi:1041
 msgid "a minimal @code{/dev} directory, created mostly independently from the host @code{/dev}@footnote{``Mostly'', because while the set of files that appear in the chroot's @code{/dev} is fixed, most of these files can only be created if the host has them.};"
 msgstr "einem minimalen @code{/dev}-Verzeichnis, was größtenteils vom @code{/dev} des Wirtssystems unabhängig erstellt wurde@footnote{„Größtenteils“, denn obwohl die Menge an Dateien, die im @code{/dev} des chroots vorkommen, fest ist, können die meisten dieser Dateien nur dann erstellt werden, wenn das Wirtssystem sie auch hat.},"
 
 #. type: itemize
-#: doc/guix.texi:980
+#: doc/guix.texi:1045
 msgid "the @code{/proc} directory; it only shows the processes of the container since a separate PID name space is used;"
 msgstr "dem @code{/proc}-Verzeichnis, es zeigt nur die Prozesse des Containers, weil ein separater Namensraum für Prozess-IDs (PIDs) benutzt wird,"
 
 #. type: itemize
-#: doc/guix.texi:984
+#: doc/guix.texi:1049
 msgid "@file{/etc/passwd} with an entry for the current user and an entry for user @file{nobody};"
 msgstr "@file{/etc/passwd} mit einem Eintrag für den aktuellen Benutzer und einem Eintrag für den Benutzer @file{nobody},"
 
 #. type: itemize
-#: doc/guix.texi:987
+#: doc/guix.texi:1052
 msgid "@file{/etc/group} with an entry for the user's group;"
 msgstr "@file{/etc/group} mit einem Eintrag für die Gruppe des Benutzers,"
 
 #. type: itemize
-#: doc/guix.texi:991
+#: doc/guix.texi:1056
 msgid "@file{/etc/hosts} with an entry that maps @code{localhost} to @code{127.0.0.1};"
 msgstr "@file{/etc/hosts} mit einem Eintrag, der @code{localhost} auf @code{127.0.0.1} abbildet,"
 
 #. type: itemize
-#: doc/guix.texi:994
+#: doc/guix.texi:1059
 msgid "a writable @file{/tmp} directory."
 msgstr "einem @file{/tmp}-Verzeichnis mit Schreibrechten."
 
 #. type: Plain text
-#: doc/guix.texi:1003
-msgid "You can influence the directory where the daemon stores build trees @i{via} the @code{TMPDIR} environment variable.  However, the build tree within the chroot is always called @file{/tmp/guix-build-@var{name}.drv-0}, where @var{name} is the derivation name---e.g., @code{coreutils-8.24}.  This way, the value of @code{TMPDIR} does not leak inside build environments, which avoids discrepancies in cases where build processes capture the name of their build tree."
-msgstr "Sie können beeinflussen, in welchem Verzeichnis der Daemon Verzeichnisbäume zur Erstellung unterbringt, indem sie den Wert der Umgebungsvariablen @code{TMPDIR} ändern. Allerdings heißt innerhalb des chroots der Erstellungsbaum immer @file{/tmp/guix-build-@var{Name}.drv-0}, wobei @var{Name} der Ableitungsname ist — z.B.@: @code{coreutils-8.24}. Dadurch hat der Wert von @code{TMPDIR} keinen Einfluss auf die Erstellungsumgebung, wodurch Unterschiede vermieden werden, falls Erstellungsprozesse den Namen ihres Erstellungsbaumes einfangen."
+#: doc/guix.texi:1068
+msgid "You can influence the directory where the daemon stores build trees @i{via} the @env{TMPDIR} environment variable.  However, the build tree within the chroot is always called @file{/tmp/guix-build-@var{name}.drv-0}, where @var{name} is the derivation name---e.g., @code{coreutils-8.24}.  This way, the value of @env{TMPDIR} does not leak inside build environments, which avoids discrepancies in cases where build processes capture the name of their build tree."
+msgstr "Sie können beeinflussen, in welchem Verzeichnis der Daemon Verzeichnisbäume zur Erstellung unterbringt, indem sie den Wert der Umgebungsvariablen @env{TMPDIR} ändern. Allerdings heißt innerhalb des chroots der Erstellungsbaum immer @file{/tmp/guix-build-@var{Name}.drv-0}, wobei @var{Name} der Ableitungsname ist — z.B.@: @code{coreutils-8.24}. Dadurch hat der Wert von @env{TMPDIR} keinen Einfluss auf die Erstellungsumgebung, wodurch Unterschiede vermieden werden, falls Erstellungsprozesse den Namen ihres Erstellungsbaumes einfangen."
 
 #. type: vindex
-#: doc/guix.texi:1004 doc/guix.texi:3367
+#: doc/guix.texi:1069 doc/guix.texi:3808
 #, no-wrap
 msgid "http_proxy"
 msgstr "http_proxy"
 
+#. type: vindex
+#: doc/guix.texi:1070 doc/guix.texi:3809
+#, no-wrap
+msgid "https_proxy"
+msgstr "https_proxy"
+
 #. type: Plain text
-#: doc/guix.texi:1008
-msgid "The daemon also honors the @code{http_proxy} environment variable for HTTP downloads it performs, be it for fixed-output derivations (@pxref{Derivations}) or for substitutes (@pxref{Substitutes})."
-msgstr "Der Daemon befolgt außerdem den Wert der Umgebungsvariablen @code{http_proxy} für von ihm durchgeführte HTTP-Downloads, sei es für Ableitungen mit fester Ausgabe (siehe @ref{Derivations}) oder für Substitute (siehe @ref{Substitutes})."
+#: doc/guix.texi:1075
+msgid "The daemon also honors the @env{http_proxy} and @env{https_proxy} environment variables for HTTP and HTTPS downloads it performs, be it for fixed-output derivations (@pxref{Derivations}) or for substitutes (@pxref{Substitutes})."
+msgstr "Der Daemon befolgt außerdem den Wert der Umgebungsvariablen @env{http_proxy} und @env{https_proxy} für von ihm durchgeführte HTTP- und HTTPS-Downloads, sei es für Ableitungen mit fester Ausgabe (siehe @ref{Derivations}) oder für Substitute (siehe @ref{Substitutes})."
 
 #. type: Plain text
-#: doc/guix.texi:1016
-msgid "If you are installing Guix as an unprivileged user, it is still possible to run @command{guix-daemon} provided you pass @code{--disable-chroot}.  However, build processes will not be isolated from one another, and not from the rest of the system.  Thus, build processes may interfere with each other, and may access programs, libraries, and other files available on the system---making it much harder to view them as @emph{pure} functions."
-msgstr "Wenn Sie Guix als ein Benutzer ohne erweiterte Rechte installieren, ist es dennoch möglich, @command{guix-daemon} auszuführen, sofern Sie @code{--disable-chroot} übergeben. Allerdings können Erstellungsprozesse dann nicht voneinander und vom Rest des Systems isoliert werden. Daher können sich Erstellungsprozesse gegenseitig stören und auf Programme, Bibliotheken und andere Dateien zugreifen, die dem restlichen System zur Verfügung stehen — was es deutlich schwerer macht, sie als @emph{reine} Funktionen aufzufassen."
+#: doc/guix.texi:1083
+msgid "If you are installing Guix as an unprivileged user, it is still possible to run @command{guix-daemon} provided you pass @option{--disable-chroot}.  However, build processes will not be isolated from one another, and not from the rest of the system.  Thus, build processes may interfere with each other, and may access programs, libraries, and other files available on the system---making it much harder to view them as @emph{pure} functions."
+msgstr "Wenn Sie Guix als ein Benutzer ohne erweiterte Rechte installieren, ist es dennoch möglich, @command{guix-daemon} auszuführen, sofern Sie @option{--disable-chroot} übergeben. Allerdings können Erstellungsprozesse dann nicht voneinander und vom Rest des Systems isoliert werden. Daher können sich Erstellungsprozesse gegenseitig stören und auf Programme, Bibliotheken und andere Dateien zugreifen, die dem restlichen System zur Verfügung stehen — was es deutlich schwerer macht, sie als @emph{reine} Funktionen aufzufassen."
 
 #. type: subsection
-#: doc/guix.texi:1019
+#: doc/guix.texi:1086
 #, no-wrap
 msgid "Using the Offload Facility"
 msgstr "Nutzung der Auslagerungsfunktionalität"
 
 #. type: cindex
-#: doc/guix.texi:1021 doc/guix.texi:1383
+#: doc/guix.texi:1088 doc/guix.texi:1485
 #, no-wrap
 msgid "offloading"
 msgstr "auslagern"
 
 #. type: cindex
-#: doc/guix.texi:1022
+#: doc/guix.texi:1089
 #, no-wrap
 msgid "build hook"
 msgstr "Build-Hook"
 
 #. type: Plain text
-#: doc/guix.texi:1036
-msgid "When desired, the build daemon can @dfn{offload} derivation builds to other machines running Guix, using the @code{offload} @dfn{build hook}@footnote{This feature is available only when @uref{https://github.com/artyom-poptsov/guile-ssh, Guile-SSH} is present.}.  When that feature is enabled, a list of user-specified build machines is read from @file{/etc/guix/machines.scm}; every time a build is requested, for instance via @code{guix build}, the daemon attempts to offload it to one of the machines that satisfy the constraints of the derivation, in particular its system type---e.g., @file{x86_64-linux}.  Missing prerequisites for the build are copied over SSH to the target machine, which then proceeds with the build; upon success the output(s) of the build are copied back to the initial machine."
-msgstr "Wenn erwünscht, kann der Erstellungs-Daemon Ableitungserstellungen auf andere Maschinen @dfn{auslagern}, auf denen Guix läuft, mit Hilfe des @code{offload}-@dfn{Build-Hooks}@footnote{Diese Funktionalität ist nur verfügbar, wenn @uref{https://github.com/artyom-poptsov/guile-ssh, Guile-SSH} vorhanden ist.}. Wenn diese Funktionalität aktiviert ist, wird eine nutzerspezifizierte Liste von Erstellungsmaschinen aus @file{/etc/guix/machines.scm} gelesen. Wann immer eine Erstellung angefragt wird, zum Beispiel durch @code{guix build}, versucht der Daemon, sie an eine der Erstellungsmaschinen auszulagern, die die Einschränkungen der Ableitung erfüllen, insbesondere ihren Systemtyp — z.B.@: @file{x86_64-linux}. Fehlende Voraussetzungen für die Erstellung werden über SSH auf die Zielmaschine kopiert, welche dann mit der Erstellung weitermacht. Hat sie Erfolg damit, so werden die Ausgabe oder Ausgaben der Erstellung zurück auf die ursprüngliche Maschine kopiert."
+#: doc/guix.texi:1108
+msgid "When desired, the build daemon can @dfn{offload} derivation builds to other machines running Guix, using the @code{offload} @dfn{build hook}@footnote{This feature is available only when @uref{https://github.com/artyom-poptsov/guile-ssh, Guile-SSH} is present.}.  When that feature is enabled, a list of user-specified build machines is read from @file{/etc/guix/machines.scm}; every time a build is requested, for instance via @code{guix build}, the daemon attempts to offload it to one of the machines that satisfy the constraints of the derivation, in particular its system types---e.g., @code{x86_64-linux}.  A single machine can have multiple system types, either because its architecture natively supports it, via emulation (@pxref{transparent-emulation-qemu, Transparent Emulation with QEMU}), or both.  Missing prerequisites for the build are copied over SSH to the target machine, which then proceeds with the build; upon success the output(s) of the build are copied back to the initial machine.  The offload facility comes with a basic scheduler that attempts to select the best machine.  The best machine is chosen among the available machines based on criteria such as:"
+msgstr "Wenn erwünscht, kann der Erstellungs-Daemon Ableitungserstellungen auf andere Maschinen @dfn{auslagern}, auf denen Guix läuft, mit Hilfe des @code{offload}-@dfn{Build-Hooks}@footnote{Diese Funktionalität ist nur verfügbar, wenn @uref{https://github.com/artyom-poptsov/guile-ssh, Guile-SSH} vorhanden ist.}. Wenn diese Funktionalität aktiviert ist, wird eine nutzerspezifizierte Liste von Erstellungsmaschinen aus @file{/etc/guix/machines.scm} gelesen. Wann immer eine Erstellung angefragt wird, zum Beispiel durch @code{guix build}, versucht der Daemon, sie an eine der Erstellungsmaschinen auszulagern, die die Einschränkungen der Ableitung erfüllen, insbesondere ihre Systemtypen — z.B.@: @code{x86_64-linux}. Eine einzelne Maschine kann mehrere Systemtypen haben, entweder weil ihre Architektur eine native Unterstützung vorsieht, weil Emulation eingerichtet wurde (siehe @ref{transparent-emulation-qemu, Transparente Emulation mit QEMU}) oder beides. Fehlende Voraussetzungen für die Erstellung werden über SSH auf die Zielmaschine kopiert, welche dann mit der Erstellung weitermacht. Hat sie Erfolg damit, so werden die Ausgabe oder Ausgaben der Erstellung zurück auf die ursprüngliche Maschine kopiert. Die Auslagerungsfunktion verfügt über einen einfachen Planungsalgorithmus (einen Scheduler), mit dem versucht wird, die jeweils beste Maschine auszuwählen. Unter den verfügbaren wird die beste Maschine nach Kriterien wie diesen ausgewählt:"
+
+#. type: enumerate
+#: doc/guix.texi:1114
+msgid "The availability of a build slot.  A build machine can have as many build slots (connections) as the value of the @code{parallel-builds} field of its @code{build-machine} object."
+msgstr "Ob Zeitfenster für Erstellungen frei sind („build slots“). Eine Erstellungsmaschine kann so viele Erstellungszeitfenster (Verbindungen) unterhalten wie es dem Wert des @code{parallel-builds}-Feldes des @code{build-machine}-Objekts entspricht."
+
+#. type: enumerate
+#: doc/guix.texi:1118
+msgid "Its relative speed, as defined via the @code{speed} field of its @code{build-machine} object."
+msgstr "Was ihre relative Geschwindigkeit ist, gemäß ihrer Definition im @code{speed}-Feld ihres @code{build-machine}-Objekts."
+
+#. type: enumerate
+#: doc/guix.texi:1123
+msgid "Its load.  The normalized machine load must be lower than a threshold value, configurable via the @code{overload-threshold} field of its @code{build-machine} object."
+msgstr "Ihrer Auslastung („load“). Die normalisierte Auslastung der Maschine darf einen Schwellwert nicht überschreiten. Dieser ist über das @code{overload-threshold}-Feld ihres @code{build-machine}-Objekts einstellbar."
+
+#. type: enumerate
+#: doc/guix.texi:1126
+msgid "Disk space availability.  More than a 100 MiB must be available."
+msgstr "Verfügbarem Speicherplatz auf ihrem Datenträger. Es müssen mehr als 100 MiB verfügbar sein."
 
 #. type: Plain text
-#: doc/guix.texi:1038
+#: doc/guix.texi:1129
 msgid "The @file{/etc/guix/machines.scm} file typically looks like this:"
 msgstr "Die Datei @file{/etc/guix/machines.scm} sieht normalerweise so aus:"
 
 #. type: lisp
-#: doc/guix.texi:1046
+#: doc/guix.texi:1137
 #, no-wrap
 msgid ""
 "(list (build-machine\n"
 "        (name \"eightysix.example.org\")\n"
-"        (system \"x86_64-linux\")\n"
+"        (systems (list \"x86_64-linux\" \"i686-linux\"))\n"
 "        (host-key \"ssh-ed25519 AAAAC3Nza@dots{}\")\n"
 "        (user \"bob\")\n"
 "        (speed 2.))     ;incredibly fast!\n"
@@ -4537,19 +5049,19 @@ msgid ""
 msgstr ""
 "(list (build-machine\n"
 "        (name \"eightysix.example.org\")\n"
-"        (system \"x86_64-linux\")\n"
+"        (systems (list \"x86_64-linux\" \"i686-linux\"))\n"
 "        (host-key \"ssh-ed25519 AAAAC3Nza…\")\n"
 "        (user \"bob\")\n"
 "        (speed 2.))     ;unglaublich schnell!\n"
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:1055
+#: doc/guix.texi:1146
 #, no-wrap
 msgid ""
 "      (build-machine\n"
-"        (name \"meeps.example.org\")\n"
-"        (system \"mips64el-linux\")\n"
+"        (name \"armeight.example.org\")\n"
+"        (systems (list \"aarch64-linux\"))\n"
 "        (host-key \"ssh-rsa AAAAB3Nza@dots{}\")\n"
 "        (user \"alice\")\n"
 "        (private-key\n"
@@ -4557,8 +5069,8 @@ msgid ""
 "                        \"/.ssh/identity-for-guix\"))))\n"
 msgstr ""
 "      (build-machine\n"
-"        (name \"meeps.example.org\")\n"
-"        (system \"mips64el-linux\")\n"
+"        (name \"armeight.example.org\")\n"
+"        (systems (list \"aarch64-linux\"))\n"
 "        (host-key \"ssh-rsa AAAAB3Nza…\")\n"
 "        (user \"alice\")\n"
 "        (private-key\n"
@@ -4566,93 +5078,93 @@ msgstr ""
 "                        \"/.ssh/identität-für-guix\"))))\n"
 
 #. type: Plain text
-#: doc/guix.texi:1061
-msgid "In the example above we specify a list of two build machines, one for the @code{x86_64} architecture and one for the @code{mips64el} architecture."
-msgstr "Im obigen Beispiel geben wir eine Liste mit zwei Erstellungsmaschinen vor, eine für die @code{x86_64}-Architektur und eine für die @code{mips64el}-Architektur."
+#: doc/guix.texi:1152
+msgid "In the example above we specify a list of two build machines, one for the @code{x86_64} and @code{i686} architectures and one for the @code{aarch64} architecture."
+msgstr "Im obigen Beispiel geben wir eine Liste mit zwei Erstellungsmaschinen vor, eine für die @code{x86_64}- und @code{i686}-Architektur und eine für die @code{aarch64}-Architektur."
 
 #. type: Plain text
-#: doc/guix.texi:1070
+#: doc/guix.texi:1161
 msgid "In fact, this file is---not surprisingly!---a Scheme file that is evaluated when the @code{offload} hook is started.  Its return value must be a list of @code{build-machine} objects.  While this example shows a fixed list of build machines, one could imagine, say, using DNS-SD to return a list of potential build machines discovered in the local network (@pxref{Introduction, Guile-Avahi,, guile-avahi, Using Avahi in Guile Scheme Programs}).  The @code{build-machine} data type is detailed below."
 msgstr "Tatsächlich ist diese Datei — wenig überraschend! — eine Scheme-Datei, die ausgewertet wird, wenn der @code{offload}-Hook gestartet wird. Der Wert, den sie zurückliefert, muss eine Liste von @code{build-machine}-Objekten sein. Obwohl dieses Beispiel eine feste Liste von Erstellungsmaschinen zeigt, könnte man auch auf die Idee kommen, etwa mit DNS-SD eine Liste möglicher im lokalen Netzwerk entdeckter Erstellungsmaschinen zu liefern (siehe @ref{Introduction, Guile-Avahi,, guile-avahi, Using Avahi in Guile Scheme Programs}). Der Datentyp @code{build-machine} wird im Folgenden weiter ausgeführt."
 
 #. type: deftp
-#: doc/guix.texi:1071
+#: doc/guix.texi:1162
 #, no-wrap
 msgid "{Data Type} build-machine"
 msgstr "{Datentyp} build-machine"
 
 #. type: deftp
-#: doc/guix.texi:1074
+#: doc/guix.texi:1165
 msgid "This data type represents build machines to which the daemon may offload builds.  The important fields are:"
 msgstr "Dieser Datentyp repräsentiert Erstellungsmaschinen, an die der Daemon Erstellungen auslagern darf. Die wichtigen Felder sind:"
 
 #. type: item
-#: doc/guix.texi:1077 doc/guix.texi:5712 doc/guix.texi:11761
-#: doc/guix.texi:11843 doc/guix.texi:12073 doc/guix.texi:13868
-#: doc/guix.texi:18886 doc/guix.texi:19471 doc/guix.texi:20082
-#: doc/guix.texi:20412 doc/guix.texi:20453 doc/guix.texi:25674
-#: doc/guix.texi:25691 doc/guix.texi:26085 doc/guix.texi:27665
-#: doc/guix.texi:27923
+#: doc/guix.texi:1168 doc/guix.texi:6497 doc/guix.texi:13888
+#: doc/guix.texi:13982 doc/guix.texi:14223 doc/guix.texi:16129
+#: doc/guix.texi:21576 doc/guix.texi:22161 doc/guix.texi:22773
+#: doc/guix.texi:23125 doc/guix.texi:23166 doc/guix.texi:27232
+#: doc/guix.texi:27252 doc/guix.texi:29621 doc/guix.texi:29638
+#: doc/guix.texi:30127 doc/guix.texi:31831 doc/guix.texi:32107
 #, no-wrap
 msgid "name"
 msgstr "name"
 
 #. type: table
-#: doc/guix.texi:1079
+#: doc/guix.texi:1170
 msgid "The host name of the remote machine."
-msgstr "Der Hostname (d.h.@: der Rechnername) der entfernten Maschine."
+msgstr "Der Rechnername (d.h.@: der Hostname) der entfernten Maschine."
 
-#. type: code{#1}
-#: doc/guix.texi:1080 doc/guix.texi:27171
+#. type: item
+#: doc/guix.texi:1171
 #, no-wrap
-msgid "system"
-msgstr "system"
+msgid "systems"
+msgstr "systems"
 
 #. type: table
-#: doc/guix.texi:1082
-msgid "The system type of the remote machine---e.g., @code{\"x86_64-linux\"}."
-msgstr "Der Systemtyp der entfernten Maschine — z.B.@: @code{\"x86_64-linux\"}."
+#: doc/guix.texi:1174
+msgid "The system types the remote machine supports---e.g., @code{(list \"x86_64-linux\" \"i686-linux\")}."
+msgstr "Die Systemtypen, die die entfernte Maschine unterstützt — z.B.@: @code{(list \"x86_64-linux\" \"i686-linux\")}."
 
 #. type: code{#1}
-#: doc/guix.texi:1083 doc/guix.texi:13878
+#: doc/guix.texi:1175 doc/guix.texi:16139
 #, no-wrap
 msgid "user"
 msgstr "user"
 
 #. type: table
-#: doc/guix.texi:1087
+#: doc/guix.texi:1179
 msgid "The user account to use when connecting to the remote machine over SSH.  Note that the SSH key pair must @emph{not} be passphrase-protected, to allow non-interactive logins."
 msgstr "Das Benutzerkonto, mit dem eine Verbindung zur entfernten Maschine über SSH aufgebaut werden soll. Beachten Sie, dass das SSH-Schlüsselpaar @emph{nicht} durch eine Passphrase geschützt sein darf, damit nicht-interaktive Anmeldungen möglich sind."
 
 #. type: item
-#: doc/guix.texi:1088
+#: doc/guix.texi:1180
 #, no-wrap
 msgid "host-key"
 msgstr "host-key"
 
 #. type: table
-#: doc/guix.texi:1092
+#: doc/guix.texi:1184
 msgid "This must be the machine's SSH @dfn{public host key} in OpenSSH format.  This is used to authenticate the machine when we connect to it.  It is a long string that looks like this:"
 msgstr "Dies muss der @dfn{öffentliche SSH-Host-Schlüssel} der Maschine im OpenSSH-Format sein. Er wird benutzt, um die Identität der Maschine zu prüfen, wenn wir uns mit ihr verbinden. Er ist eine lange Zeichenkette, die ungefähr so aussieht:"
 
 #. type: example
-#: doc/guix.texi:1095
+#: doc/guix.texi:1187
 #, no-wrap
 msgid "ssh-ed25519 AAAAC3NzaC@dots{}mde+UhL hint@@example.org\n"
 msgstr "ssh-ed25519 AAAAC3NzaC…mde+UhL hint@@example.org\n"
 
 #. type: table
-#: doc/guix.texi:1100
+#: doc/guix.texi:1192
 msgid "If the machine is running the OpenSSH daemon, @command{sshd}, the host key can be found in a file such as @file{/etc/ssh/ssh_host_ed25519_key.pub}."
 msgstr "Wenn auf der Maschine der OpenSSH-Daemon, @command{sshd}, läuft, ist der Host-Schlüssel in einer Datei wie @file{/etc/ssh/ssh_host_ed25519_key.pub} zu finden."
 
 #. type: table
-#: doc/guix.texi:1105
+#: doc/guix.texi:1197
 msgid "If the machine is running the SSH daemon of GNU@tie{}lsh, @command{lshd}, the host key is in @file{/etc/lsh/host-key.pub} or a similar file.  It can be converted to the OpenSSH format using @command{lsh-export-key} (@pxref{Converting keys,,, lsh, LSH Manual}):"
 msgstr "Wenn auf der Maschine der SSH-Daemon von GNU@tie{}lsh, nämlich @command{lshd}, läuft, befindet sich der Host-Schlüssel in @file{/etc/lsh/host-key.pub} oder einer ähnlichen Datei. Er kann ins OpenSSH-Format umgewandelt werden durch @command{lsh-export-key} (siehe @ref{Converting keys,,, lsh, LSH Manual}):"
 
 #. type: example
-#: doc/guix.texi:1109
+#: doc/guix.texi:1201
 #, no-wrap
 msgid ""
 "$ lsh-export-key --openssh < /etc/lsh/host-key.pub\n"
@@ -4662,836 +5174,852 @@ msgstr ""
 "ssh-rsa AAAAB3NzaC1yc2EAAAAEOp8FoQAAAQEAs1eB46LV…\n"
 
 #. type: deftp
-#: doc/guix.texi:1114
+#: doc/guix.texi:1206
 msgid "A number of optional fields may be specified:"
 msgstr "Eine Reihe optionaler Felder kann festgelegt werden:"
 
 #. type: item
-#: doc/guix.texi:1117 doc/guix.texi:27177
+#: doc/guix.texi:1209 doc/guix.texi:31331
 #, no-wrap
 msgid "@code{port} (default: @code{22})"
 msgstr "@code{port} (Vorgabe: @code{22})"
 
 #. type: table
-#: doc/guix.texi:1119
+#: doc/guix.texi:1211
 msgid "Port number of SSH server on the machine."
 msgstr "Portnummer des SSH-Servers auf der Maschine."
 
 #. type: item
-#: doc/guix.texi:1120
+#: doc/guix.texi:1212
 #, no-wrap
 msgid "@code{private-key} (default: @file{~root/.ssh/id_rsa})"
 msgstr "@code{private-key} (Vorgabe: @file{~root/.ssh/id_rsa})"
 
 #. type: table
-#: doc/guix.texi:1123
+#: doc/guix.texi:1215
 msgid "The SSH private key file to use when connecting to the machine, in OpenSSH format.  This key must not be protected with a passphrase."
 msgstr "Die Datei mit dem privaten SSH-Schlüssel, der beim Verbinden zur Maschine genutzt werden soll, im OpenSSH-Format. Dieser Schlüssel darf nicht mit einer Passphrase geschützt sein."
 
 #. type: table
-#: doc/guix.texi:1126
+#: doc/guix.texi:1218
 msgid "Note that the default value is the private key @emph{of the root account}.  Make sure it exists if you use the default."
 msgstr "Beachten Sie, dass als Vorgabewert der private Schlüssel @emph{des root-Benutzers} genommen wird. Vergewissern Sie sich, dass er existiert, wenn Sie die Standardeinstellung verwenden."
 
 #. type: item
-#: doc/guix.texi:1127
+#: doc/guix.texi:1219
 #, no-wrap
 msgid "@code{compression} (default: @code{\"zlib@@openssh.com,zlib\"})"
 msgstr "@code{compression} (Vorgabe: @code{\"zlib@@openssh.com,zlib\"})"
 
 #. type: itemx
-#: doc/guix.texi:1128
+#: doc/guix.texi:1220
 #, no-wrap
 msgid "@code{compression-level} (default: @code{3})"
 msgstr "@code{compression-level} (Vorgabe: @code{3})"
 
 #. type: table
-#: doc/guix.texi:1130
+#: doc/guix.texi:1222
 msgid "The SSH-level compression methods and compression level requested."
 msgstr "Die Kompressionsmethoden auf SSH-Ebene und das angefragte Kompressionsniveau."
 
 #. type: table
-#: doc/guix.texi:1133
+#: doc/guix.texi:1225
 msgid "Note that offloading relies on SSH compression to reduce bandwidth usage when transferring files to and from build machines."
 msgstr "Beachten Sie, dass Auslagerungen SSH-Kompression benötigen, um beim Übertragen von Dateien an Erstellungsmaschinen und zurück weniger Bandbreite zu benutzen."
 
 #. type: item
-#: doc/guix.texi:1134
+#: doc/guix.texi:1226
 #, no-wrap
 msgid "@code{daemon-socket} (default: @code{\"/var/guix/daemon-socket/socket\"})"
 msgstr "@code{daemon-socket} (Vorgabe: @code{\"/var/guix/daemon-socket/socket\"})"
 
 #. type: table
-#: doc/guix.texi:1137
+#: doc/guix.texi:1229
 msgid "File name of the Unix-domain socket @command{guix-daemon} is listening to on that machine."
 msgstr "Dateiname des Unix-Sockets, auf dem @command{guix-daemon} auf der Maschine lauscht."
 
 #. type: item
-#: doc/guix.texi:1138
+#: doc/guix.texi:1230
+#, no-wrap
+msgid "@code{overload-threshold} (default: @code{0.6})"
+msgstr "@code{overload-threshold} (Vorgabe: @code{0.6})"
+
+#. type: table
+#: doc/guix.texi:1236
+msgid "The load threshold above which a potential offload machine is disregarded by the offload scheduler.  The value roughly translates to the total processor usage of the build machine, ranging from 0.0 (0%) to 1.0 (100%).  It can also be disabled by setting @code{overload-threshold} to @code{#f}."
+msgstr "Der Schwellwert für die Auslastung (englisch „load“), ab der eine potentielle Auslagerungsmaschine für den Auslagerungsplaner nicht mehr in Betracht kommt. Der Wert entspricht grob der gesamten Prozessornutzung der Erstellungsmaschine. Er reicht von 0.0 (0%) bis 1.0 (100%). Wenn er ignoriert werden soll, dann setzen Sie @code{overload-threshold} auf @code{#f}."
+
+#. type: item
+#: doc/guix.texi:1237
 #, no-wrap
 msgid "@code{parallel-builds} (default: @code{1})"
 msgstr "@code{parallel-builds} (Vorgabe: @code{1})"
 
 #. type: table
-#: doc/guix.texi:1140
+#: doc/guix.texi:1239
 msgid "The number of builds that may run in parallel on the machine."
 msgstr "Die Anzahl der Erstellungen, die auf der Maschine parallel ausgeführt werden können."
 
 #. type: item
-#: doc/guix.texi:1141
+#: doc/guix.texi:1240
 #, no-wrap
 msgid "@code{speed} (default: @code{1.0})"
 msgstr "@code{speed} (Vorgabe: @code{1.0})"
 
 #. type: table
-#: doc/guix.texi:1144
+#: doc/guix.texi:1243
 msgid "A ``relative speed factor''.  The offload scheduler will tend to prefer machines with a higher speed factor."
 msgstr "Ein „relativer Geschwindigkeitsfaktor“. Der Auslagerungsplaner gibt tendenziell Maschinen mit höherem Geschwindigkeitsfaktor den Vorrang."
 
 #. type: item
-#: doc/guix.texi:1145
+#: doc/guix.texi:1244
 #, no-wrap
 msgid "@code{features} (default: @code{'()})"
 msgstr "@code{features} (Vorgabe: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:1150
+#: doc/guix.texi:1249
 msgid "A list of strings denoting specific features supported by the machine.  An example is @code{\"kvm\"} for machines that have the KVM Linux modules and corresponding hardware support.  Derivations can request features by name, and they will be scheduled on matching build machines."
 msgstr "Eine Liste von Zeichenketten, die besondere von der Maschine unterstützte Funktionalitäten bezeichnen. Ein Beispiel ist @code{\"kvm\"} für Maschinen, die über die KVM-Linux-Module zusammen mit entsprechender Hardware-Unterstützung verfügen. Ableitungen können Funktionalitäten dem Namen nach anfragen und werden dann auf passenden Erstellungsmaschinen eingeplant."
 
 #. type: Plain text
-#: doc/guix.texi:1156
+#: doc/guix.texi:1255
 msgid "The @command{guix} command must be in the search path on the build machines.  You can check whether this is the case by running:"
 msgstr "Der Befehl @code{guix} muss sich im Suchpfad der Erstellungsmaschinen befinden. Um dies nachzuprüfen, können Sie Folgendes ausführen:"
 
 #. type: example
-#: doc/guix.texi:1159
+#: doc/guix.texi:1258
 #, no-wrap
 msgid "ssh build-machine guix repl --version\n"
 msgstr "ssh build-machine guix repl --version\n"
 
 #. type: Plain text
-#: doc/guix.texi:1166
+#: doc/guix.texi:1265
 msgid "There is one last thing to do once @file{machines.scm} is in place.  As explained above, when offloading, files are transferred back and forth between the machine stores.  For this to work, you first need to generate a key pair on each machine to allow the daemon to export signed archives of files from the store (@pxref{Invoking guix archive}):"
 msgstr "Es gibt noch eine weitere Sache zu tun, sobald @file{machines.scm} eingerichtet ist. Wie zuvor erklärt, werden beim Auslagern Dateien zwischen den Stores der Maschinen hin- und hergeschickt. Damit das funktioniert, müssen Sie als Erstes ein Schlüsselpaar auf jeder Maschine erzeugen, damit der Daemon signierte Archive mit den Dateien aus dem Store versenden kann (siehe @ref{Invoking guix archive}):"
 
 #. type: example
-#: doc/guix.texi:1169 doc/guix.texi:27105
+#: doc/guix.texi:1268 doc/guix.texi:31259
 #, no-wrap
 msgid "# guix archive --generate-key\n"
 msgstr "# guix archive --generate-key\n"
 
 #. type: Plain text
-#: doc/guix.texi:1174
+#: doc/guix.texi:1273
 msgid "Each build machine must authorize the key of the master machine so that it accepts store items it receives from the master:"
 msgstr "Jede Erstellungsmaschine muss den Schlüssel der Hauptmaschine autorisieren, damit diese Store-Objekte von der Hauptmaschine empfangen kann:"
 
 #. type: example
-#: doc/guix.texi:1177
+#: doc/guix.texi:1276
 #, no-wrap
 msgid "# guix archive --authorize < master-public-key.txt\n"
 msgstr "# guix archive --authorize < öffentlicher-schlüssel-hauptmaschine.txt\n"
 
 #. type: Plain text
-#: doc/guix.texi:1181
+#: doc/guix.texi:1280
 msgid "Likewise, the master machine must authorize the key of each build machine."
 msgstr "Andersherum muss auch die Hauptmaschine den jeweiligen Schlüssel jeder Erstellungsmaschine autorisieren."
 
 #. type: Plain text
-#: doc/guix.texi:1187
+#: doc/guix.texi:1286
 msgid "All the fuss with keys is here to express pairwise mutual trust relations between the master and the build machines.  Concretely, when the master receives files from a build machine (and @i{vice versa}), its build daemon can make sure they are genuine, have not been tampered with, and that they are signed by an authorized key."
-msgstr "Der ganze Umstand mit den Schlüsseln soll ausdrücken, dass sich Haupt- und Erstellungsmaschinen paarweise gegenseitig vertrauen. Konkret kann der Erstellungs-Daemon auf der Hauptmaschine die Echtheit von den Erstellungsmaschinen empfangener Dateien gewährleisten (und umgekehrt), und auch dass sie nicht sabotiert wurden und mit einem autorisierten Schlüssel signiert wurden."
+msgstr "Der ganze Umstand mit den Schlüsseln soll ausdrücken, dass sich Haupt- und Erstellungsmaschinen paarweise gegenseitig vertrauen. Konkret kann der Erstellungs-Daemon auf der Hauptmaschine die Unverfälschtheit von den Erstellungsmaschinen empfangener Dateien gewährleisten (und umgekehrt), und auch dass sie nicht sabotiert wurden und mit einem autorisierten Schlüssel signiert wurden."
 
 #. type: cindex
-#: doc/guix.texi:1188
+#: doc/guix.texi:1287
 #, no-wrap
 msgid "offload test"
 msgstr "Auslagerung testen"
 
 #. type: Plain text
-#: doc/guix.texi:1191
+#: doc/guix.texi:1290
 msgid "To test whether your setup is operational, run this command on the master node:"
 msgstr "Um zu testen, ob Ihr System funktioniert, führen Sie diesen Befehl auf der Hauptmaschine aus:"
 
 #. type: example
-#: doc/guix.texi:1194
+#: doc/guix.texi:1293
 #, no-wrap
 msgid "# guix offload test\n"
 msgstr "# guix offload test\n"
 
 #. type: Plain text
-#: doc/guix.texi:1200
+#: doc/guix.texi:1299
 msgid "This will attempt to connect to each of the build machines specified in @file{/etc/guix/machines.scm}, make sure Guile and the Guix modules are available on each machine, attempt to export to the machine and import from it, and report any error in the process."
 msgstr "Dadurch wird versucht, zu jeder Erstellungsmaschine eine Verbindung herzustellen, die in @file{/etc/guix/machines.scm} angegeben wurde, sichergestellt, dass auf jeder Guile und die Guix-Module nutzbar sind, und jeweils versucht, etwas auf die Erstellungsmaschine zu exportieren und von dort zu imporieren. Dabei auftretende Fehler werden gemeldet."
 
 #. type: Plain text
-#: doc/guix.texi:1203
+#: doc/guix.texi:1302
 msgid "If you want to test a different machine file, just specify it on the command line:"
 msgstr "Wenn Sie stattdessen eine andere Maschinendatei verwenden möchten, geben Sie diese einfach auf der Befehlszeile an:"
 
 #. type: example
-#: doc/guix.texi:1206
+#: doc/guix.texi:1305
 #, no-wrap
 msgid "# guix offload test machines-qualif.scm\n"
 msgstr "# guix offload test maschinen-qualif.scm\n"
 
 #. type: Plain text
-#: doc/guix.texi:1210
+#: doc/guix.texi:1309
 msgid "Last, you can test the subset of the machines whose name matches a regular expression like this:"
 msgstr "Letztendlich können Sie hiermit nur die Teilmenge der Maschinen testen, deren Name zu einem regulären Ausdruck passt:"
 
 #. type: example
-#: doc/guix.texi:1213
+#: doc/guix.texi:1312
 #, no-wrap
 msgid "# guix offload test machines.scm '\\.gnu\\.org$'\n"
 msgstr "# guix offload test maschinen.scm '\\.gnu\\.org$'\n"
 
 #. type: cindex
-#: doc/guix.texi:1215
+#: doc/guix.texi:1314
 #, no-wrap
 msgid "offload status"
 msgstr "Auslagerungs-Lagebericht"
 
 #. type: Plain text
-#: doc/guix.texi:1218
+#: doc/guix.texi:1317
 msgid "To display the current load of all build hosts, run this command on the main node:"
-msgstr "Um die momentane Auslastung aller Erstellungs-Hosts anzuzeigen, führen Sie diesen Befehl auf dem Hauptknoten aus:"
+msgstr "Um die momentane Auslastung aller Erstellungsrechner anzuzeigen, führen Sie diesen Befehl auf dem Hauptknoten aus:"
 
 #. type: example
-#: doc/guix.texi:1221
+#: doc/guix.texi:1320
 #, no-wrap
 msgid "# guix offload status\n"
 msgstr "# guix offload status\n"
 
 #. type: cindex
-#: doc/guix.texi:1227
+#: doc/guix.texi:1326
 #, no-wrap
 msgid "SELinux, daemon policy"
 msgstr "SELinux, Policy für den Daemon"
 
 #. type: cindex
-#: doc/guix.texi:1228
+#: doc/guix.texi:1327
 #, no-wrap
 msgid "mandatory access control, SELinux"
 msgstr "Mandatory Access Control, SELinux"
 
 #. type: cindex
-#: doc/guix.texi:1229
+#: doc/guix.texi:1328
 #, no-wrap
 msgid "security, guix-daemon"
 msgstr "Sicherheit, des guix-daemon"
 
 #. type: Plain text
-#: doc/guix.texi:1235
+#: doc/guix.texi:1334
 msgid "Guix includes an SELinux policy file at @file{etc/guix-daemon.cil} that can be installed on a system where SELinux is enabled, in order to label Guix files and to specify the expected behavior of the daemon.  Since Guix System does not provide an SELinux base policy, the daemon policy cannot be used on Guix System."
 msgstr "Guix enthält eine SELinux-Richtliniendatei („Policy“) unter @file{etc/guix-daemon.cil}, die auf einem System installiert werden kann, auf dem SELinux aktiviert ist, damit Guix-Dateien gekennzeichnet sind und um das erwartete Verhalten des Daemons anzugeben. Da Guix System keine Grundrichtlinie („Base Policy“) für SELinux bietet, kann diese Richtlinie für den Daemon auf Guix System nicht benutzt werden."
 
 #. type: subsubsection
-#: doc/guix.texi:1236
+#: doc/guix.texi:1335
 #, no-wrap
 msgid "Installing the SELinux policy"
 msgstr "Installieren der SELinux-Policy"
 
 #. type: cindex
-#: doc/guix.texi:1237
+#: doc/guix.texi:1336
 #, no-wrap
 msgid "SELinux, policy installation"
 msgstr "SELinux, Policy installieren"
 
 #. type: Plain text
-#: doc/guix.texi:1239
+#: doc/guix.texi:1338
 msgid "To install the policy run this command as root:"
 msgstr "Um die Richtlinie (Policy) zu installieren, führen Sie folgenden Befehl mit Administratorrechten aus:"
 
 #. type: example
-#: doc/guix.texi:1242
+#: doc/guix.texi:1341
 #, no-wrap
 msgid "semodule -i etc/guix-daemon.cil\n"
 msgstr "semodule -i etc/guix-daemon.cil\n"
 
 #. type: Plain text
-#: doc/guix.texi:1246
+#: doc/guix.texi:1345
 msgid "Then relabel the file system with @code{restorecon} or by a different mechanism provided by your system."
 msgstr "Kennzeichnen Sie dann das Dateisystem neu mit @code{restorecon} oder einem anderen, von Ihrem System angebotenen Mechanismus."
 
 #. type: Plain text
-#: doc/guix.texi:1251
+#: doc/guix.texi:1350
 msgid "Once the policy is installed, the file system has been relabeled, and the daemon has been restarted, it should be running in the @code{guix_daemon_t} context.  You can confirm this with the following command:"
 msgstr "Sobald die Richtlinie installiert ist, das Dateisystem neu gekennzeichnet wurde und der Daemon neugestartet wurde, sollte er im Kontext @code{guix_daemon_t} laufen. Sie können dies mit dem folgenden Befehl nachprüfen:"
 
 #. type: example
-#: doc/guix.texi:1254
+#: doc/guix.texi:1353
 #, no-wrap
 msgid "ps -Zax | grep guix-daemon\n"
 msgstr "ps -Zax | grep guix-daemon\n"
 
 #. type: Plain text
-#: doc/guix.texi:1259
+#: doc/guix.texi:1358
 msgid "Monitor the SELinux log files as you run a command like @code{guix build hello} to convince yourself that SELinux permits all necessary operations."
 msgstr "Beobachten Sie die Protokolldateien von SELinux, wenn Sie einen Befehl wie @code{guix build hello} ausführen, um sich zu überzeugen, dass SELinux alle notwendigen Operationen gestattet."
 
 #. type: cindex
-#: doc/guix.texi:1261
+#: doc/guix.texi:1360
 #, no-wrap
 msgid "SELinux, limitations"
 msgstr "SELinux, Einschränkungen"
 
 #. type: Plain text
-#: doc/guix.texi:1266
+#: doc/guix.texi:1365
 msgid "This policy is not perfect.  Here is a list of limitations or quirks that should be considered when deploying the provided SELinux policy for the Guix daemon."
 msgstr "Diese Richtlinie ist nicht perfekt. Im Folgenden finden Sie eine Liste von Einschränkungen oder merkwürdigen Verhaltensweisen, die bedacht werden sollten, wenn man die mitgelieferte SELinux-Richtlinie für den Guix-Daemon einspielt."
 
 #. type: enumerate
-#: doc/guix.texi:1273
+#: doc/guix.texi:1372
 msgid "@code{guix_daemon_socket_t} isn’t actually used.  None of the socket operations involve contexts that have anything to do with @code{guix_daemon_socket_t}.  It doesn’t hurt to have this unused label, but it would be preferrable to define socket rules for only this label."
 msgstr "@code{guix_daemon_socket_t} wird nicht wirklich benutzt. Keine der Socket-Operationen benutzt Kontexte, die irgendetwas mit @code{guix_daemon_socket_t} zu tun haben. Es schadet nicht, diese ungenutzte Kennzeichnung zu haben, aber es wäre besser, für die Kennzeichnung auch Socket-Regeln festzulegen."
 
 #. type: enumerate
-#: doc/guix.texi:1284
+#: doc/guix.texi:1383
 msgid "@code{guix gc} cannot access arbitrary links to profiles.  By design, the file label of the destination of a symlink is independent of the file label of the link itself.  Although all profiles under $localstatedir are labelled, the links to these profiles inherit the label of the directory they are in.  For links in the user’s home directory this will be @code{user_home_t}.  But for links from the root user’s home directory, or @file{/tmp}, or the HTTP server’s working directory, etc, this won’t work.  @code{guix gc} would be prevented from reading and following these links."
 msgstr "@code{guix gc} kann nicht auf beliebige Verknüpfungen zu Profilen zugreifen. Die Kennzeichnung des Ziels einer symbolischen Verknüpfung ist notwendigerweise unabhängig von der Dateikennzeichnung der Verknüpfung. Obwohl alle Profile unter $localstatedir gekennzeichnet sind, erben die Verknüpfungen auf diese Profile die Kennzeichnung desjenigen Verzeichnisses, in dem sie sich befinden. Für Verknüpfungen im Persönlichen Verzeichnis des Benutzers ist das @code{user_home_t}, aber Verknüpfungen aus dem Persönlichen Verzeichnis des Administratornutzers, oder @file{/tmp}, oder das Arbeitsverzeichnis des HTTP-Servers, etc., funktioniert das nicht. @code{guix gc} würde es nicht gestattet, diese Verknüpfungen auszulesen oder zu verfolgen."
 
 #. type: enumerate
-#: doc/guix.texi:1289
+#: doc/guix.texi:1388
 msgid "The daemon’s feature to listen for TCP connections might no longer work.  This might require extra rules, because SELinux treats network sockets differently from files."
 msgstr "Die vom Daemon gebotene Funktionalität, auf TCP-Verbindungen zu lauschen, könnte nicht mehr funktionieren. Dies könnte zusätzliche Regeln brauchen, weil SELinux Netzwerk-Sockets anders behandelt als Dateien."
 
 #. type: enumerate
-#: doc/guix.texi:1300
+#: doc/guix.texi:1399
 msgid "Currently all files with a name matching the regular expression @code{/gnu/store/.+-(guix-.+|profile)/bin/guix-daemon} are assigned the label @code{guix_daemon_exec_t}; this means that @emph{any} file with that name in any profile would be permitted to run in the @code{guix_daemon_t} domain.  This is not ideal.  An attacker could build a package that provides this executable and convince a user to install and run it, which lifts it into the @code{guix_daemon_t} domain.  At that point SELinux could not prevent it from accessing files that are allowed for processes in that domain."
 msgstr "Derzeit wird allen Dateien mit einem Namen, der zum regulären Ausdruck @code{/gnu/store/.+-(guix-.+|profile)/bin/guix-daemon} passt, die Kennzeichnung @code{guix_daemon_exec_t} zugewiesen, wodurch @emph{jede beliebige} Datei mit diesem Namen in irgendeinem Profil gestattet wäre, in der Domäne @code{guix_daemon_t} ausgeführt zu werden. Das ist nicht ideal. Ein Angreifer könnte ein Paket erstellen, dass solch eine ausführbare Datei enthält, und den Nutzer überzeugen, es zu installieren und auszuführen. Dadurch käme es in die Domäne @code{guix_daemon_t}. Ab diesem Punkt könnte SELinux nicht mehr verhindern, dass es auf Dateien zugreift, auf die Prozesse in dieser Domäne zugreifen dürfen."
 
 #. type: enumerate
-#: doc/guix.texi:1308
+#: doc/guix.texi:1407
 msgid "We could generate a much more restrictive policy at installation time, so that only the @emph{exact} file name of the currently installed @code{guix-daemon} executable would be labelled with @code{guix_daemon_exec_t}, instead of using a broad regular expression.  The downside is that root would have to install or upgrade the policy at installation time whenever the Guix package that provides the effectively running @code{guix-daemon} executable is upgraded."
 msgstr "Wir könnten zum Zeitpunkt der Installation eine wesentlich restriktivere Richtlinie generieren, für die nur @emph{genau derselbe} Dateiname des gerade installierten @code{guix-daemon}-Programms als @code{guix_daemon_exec_t} gekennzeichnet würde, statt einen vieles umfassenden regulären Ausdruck zu benutzen. Aber dann müsste der Administratornutzer zum Zeitpunkt der Installation jedes Mal die Richtlinie installieren oder aktualisieren müssen, sobald das Guix-Paket aktualisiert wird, dass das tatsächlich in Benutzung befindliche @code{guix-daemon}-Programm enthält."
 
 #. type: section
-#: doc/guix.texi:1311
+#: doc/guix.texi:1410
 #, no-wrap
 msgid "Invoking @command{guix-daemon}"
 msgstr "Aufruf von @command{guix-daemon}"
 
 #. type: Plain text
-#: doc/guix.texi:1317
+#: doc/guix.texi:1416
 msgid "The @command{guix-daemon} program implements all the functionality to access the store.  This includes launching build processes, running the garbage collector, querying the availability of a build result, etc.  It is normally run as @code{root} like this:"
 msgstr "Das Programm @command{guix-daemon} implementiert alle Funktionalitäten, um auf den Store zuzugreifen. Dazu gehört das Starten von Erstellungsprozessen, das Ausführen des Müllsammlers, das Abfragen, ob ein Erstellungsergebnis verfügbar ist, etc. Normalerweise wird er so als Administratornutzer (@code{root}) gestartet:"
 
 #. type: Plain text
-#: doc/guix.texi:1324
+#: doc/guix.texi:1423
 msgid "For details on how to set it up, @pxref{Setting Up the Daemon}."
 msgstr "Details, wie Sie ihn einrichten, finden Sie im Abschnitt @ref{Setting Up the Daemon}."
 
 #. type: cindex
-#: doc/guix.texi:1326
+#: doc/guix.texi:1425
 #, no-wrap
 msgid "container, build environment"
 msgstr "Container, Erstellungsumgebung"
 
 #. type: cindex
-#: doc/guix.texi:1328 doc/guix.texi:2637 doc/guix.texi:3348
-#: doc/guix.texi:10461
+#: doc/guix.texi:1427 doc/guix.texi:2937 doc/guix.texi:3789
+#: doc/guix.texi:12380
 #, no-wrap
 msgid "reproducible builds"
 msgstr "Reproduzierbare Erstellungen"
 
 #. type: Plain text
-#: doc/guix.texi:1340
-msgid "By default, @command{guix-daemon} launches build processes under different UIDs, taken from the build group specified with @code{--build-users-group}.  In addition, each build process is run in a chroot environment that only contains the subset of the store that the build process depends on, as specified by its derivation (@pxref{Programming Interface, derivation}), plus a set of specific system directories.  By default, the latter contains @file{/dev} and @file{/dev/pts}.  Furthermore, on GNU/Linux, the build environment is a @dfn{container}: in addition to having its own file system tree, it has a separate mount name space, its own PID name space, network name space, etc.  This helps achieve reproducible builds (@pxref{Features})."
-msgstr "Standardmäßig führt @command{guix-daemon} Erstellungsprozesse mit unterschiedlichen UIDs aus, die aus der Erstellungsgruppe stammen, deren Name mit @code{--build-users-group} übergeben wurde. Außerdem läuft jeder Erstellungsprozess in einer chroot-Umgebung, die nur die Teilmenge des Stores enthält, von der der Erstellungsprozess abhängt, entsprechend seiner Ableitung (siehe @ref{Programming Interface, derivation}), und ein paar bestimmte Systemverzeichnisse, darunter standardmäßig auch @file{/dev} und @file{/dev/pts}. Zudem ist die Erstellungsumgebung auf GNU/Linux ein @dfn{Container}: Nicht nur hat er seinen eigenen Dateisystembaum, er hat auch einen separaten Namensraum zum Einhängen von Dateisystemen, seinen eigenen Namensraum für PIDs, für Netzwerke, etc. Dies hilft dabei, reproduzierbare Erstellungen zu garantieren (siehe @ref{Features})."
+#: doc/guix.texi:1439
+msgid "By default, @command{guix-daemon} launches build processes under different UIDs, taken from the build group specified with @option{--build-users-group}.  In addition, each build process is run in a chroot environment that only contains the subset of the store that the build process depends on, as specified by its derivation (@pxref{Programming Interface, derivation}), plus a set of specific system directories.  By default, the latter contains @file{/dev} and @file{/dev/pts}.  Furthermore, on GNU/Linux, the build environment is a @dfn{container}: in addition to having its own file system tree, it has a separate mount name space, its own PID name space, network name space, etc.  This helps achieve reproducible builds (@pxref{Features})."
+msgstr "Standardmäßig führt @command{guix-daemon} Erstellungsprozesse mit unterschiedlichen UIDs aus, die aus der Erstellungsgruppe stammen, deren Name mit @option{--build-users-group} übergeben wurde. Außerdem läuft jeder Erstellungsprozess in einer chroot-Umgebung, die nur die Teilmenge des Stores enthält, von der der Erstellungsprozess abhängt, entsprechend seiner Ableitung (siehe @ref{Programming Interface, Ableitungen}), und ein paar bestimmte Systemverzeichnisse, darunter standardmäßig auch @file{/dev} und @file{/dev/pts}. Zudem ist die Erstellungsumgebung auf GNU/Linux eine isolierte Umgebung, d.h.@: ein @dfn{Container}: Nicht nur hat sie ihren eigenen Dateisystembaum, sie hat auch einen separaten Namensraum zum Einhängen von Dateisystemen, ihren eigenen Namensraum für PIDs, für Netzwerke, etc. Dies hilft dabei, reproduzierbare Erstellungen zu garantieren (siehe @ref{Features})."
 
 #. type: Plain text
-#: doc/guix.texi:1346
-msgid "When the daemon performs a build on behalf of the user, it creates a build directory under @file{/tmp} or under the directory specified by its @code{TMPDIR} environment variable.  This directory is shared with the container for the duration of the build, though within the container, the build tree is always called @file{/tmp/guix-build-@var{name}.drv-0}."
-msgstr "Wenn der Daemon im Auftrag des Nutzers eine Erstellung durchführt, erzeugt er ein Erstellungsverzeichnis, entweder in @file{/tmp} oder im Verzeichnis, das durch die Umgebungsvariable @code{TMPDIR} angegeben wurde. Dieses Verzeichnis wird mit dem Container geteilt, solange die Erstellung noch läuft, allerdings trägt es im Container stattdessen immer den Namen „/tmp/guix-build-NAME.drv-0“."
+#: doc/guix.texi:1445
+msgid "When the daemon performs a build on behalf of the user, it creates a build directory under @file{/tmp} or under the directory specified by its @env{TMPDIR} environment variable.  This directory is shared with the container for the duration of the build, though within the container, the build tree is always called @file{/tmp/guix-build-@var{name}.drv-0}."
+msgstr "Wenn der Daemon im Auftrag des Nutzers eine Erstellung durchführt, erzeugt er ein Erstellungsverzeichnis, entweder in @file{/tmp} oder im Verzeichnis, das durch die Umgebungsvariable @env{TMPDIR} angegeben wurde. Dieses Verzeichnis wird mit dem Container geteilt, solange die Erstellung noch läuft, allerdings trägt es im Container stattdessen immer den Namen „/tmp/guix-build-NAME.drv-0“."
 
 #. type: Plain text
-#: doc/guix.texi:1350
+#: doc/guix.texi:1449
 msgid "The build directory is automatically deleted upon completion, unless the build failed and the client specified @option{--keep-failed} (@pxref{Invoking guix build, @option{--keep-failed}})."
 msgstr "Nach Abschluss der Erstellung wird das Erstellungsverzeichnis automatisch entfernt, außer wenn die Erstellung fehlgeschlagen ist und der Client @option{--keep-failed} angegeben hat (siehe @ref{Invoking guix build, @option{--keep-failed}})."
 
 #. type: Plain text
-#: doc/guix.texi:1356
-msgid "The daemon listens for connections and spawns one sub-process for each session started by a client (one of the @command{guix} sub-commands.)  The @command{guix processes} command allows you to get an overview of the activity on your system by viewing each of the active sessions and clients.  @xref{Invoking guix processes}, for more information."
+#: doc/guix.texi:1455
+msgid "The daemon listens for connections and spawns one sub-process for each session started by a client (one of the @command{guix} sub-commands).  The @command{guix processes} command allows you to get an overview of the activity on your system by viewing each of the active sessions and clients.  @xref{Invoking guix processes}, for more information."
 msgstr "Der Daemon lauscht auf Verbindungen und erstellt jeweils einen Unterprozess für jede von einem Client begonnene Sitzung (d.h.@: von einem der @command{guix}-Unterbefehle). Der Befehl @command{guix processes} zeigt Ihnen eine Übersicht solcher Systemaktivitäten; damit werden Ihnen alle aktiven Sitzungen und Clients gezeigt. Weitere Informationen finden Sie unter @ref{Invoking guix processes}."
 
 #. type: Plain text
-#: doc/guix.texi:1358
+#: doc/guix.texi:1457
 msgid "The following command-line options are supported:"
 msgstr "Die folgenden Befehlszeilenoptionen werden unterstützt:"
 
 #. type: item
-#: doc/guix.texi:1360
+#: doc/guix.texi:1459
 #, no-wrap
 msgid "--build-users-group=@var{group}"
 msgstr "--build-users-group=@var{Gruppe}"
 
 #. type: table
-#: doc/guix.texi:1363
+#: doc/guix.texi:1462
 msgid "Take users from @var{group} to run build processes (@pxref{Setting Up the Daemon, build users})."
-msgstr "Verwende die Benutzerkonten aus der @var{Gruppe}, um Erstellungsprozesse auszuführen (siehe @ref{Setting Up the Daemon, build users})."
+msgstr "Verwende die Benutzerkonten aus der @var{Gruppe}, um Erstellungsprozesse auszuführen (siehe @ref{Setting Up the Daemon, Erstellungsbenutzer})."
 
 #. type: item
-#: doc/guix.texi:1364 doc/guix.texi:8282
+#: doc/guix.texi:1463 doc/guix.texi:9972
 #, no-wrap
 msgid "--no-substitutes"
 msgstr "--no-substitutes"
 
 #. type: cindex
-#: doc/guix.texi:1365 doc/guix.texi:2649 doc/guix.texi:3214
+#: doc/guix.texi:1464 doc/guix.texi:2949 doc/guix.texi:3547
 #, no-wrap
 msgid "substitutes"
 msgstr "Substitute"
 
 #. type: table
-#: doc/guix.texi:1369 doc/guix.texi:8286
+#: doc/guix.texi:1468 doc/guix.texi:9976
 msgid "Do not use substitutes for build products.  That is, always build things locally instead of allowing downloads of pre-built binaries (@pxref{Substitutes})."
 msgstr "Benutze keine Substitute für Erstellungsergebnisse. Das heißt, dass alle Objekte lokal erstellt werden müssen, und kein Herunterladen von vorab erstellten Binärdateien erlaubt ist (siehe @ref{Substitutes})."
 
 #. type: table
-#: doc/guix.texi:1373
-msgid "When the daemon runs with @code{--no-substitutes}, clients can still explicitly enable substitution @i{via} the @code{set-build-options} remote procedure call (@pxref{The Store})."
-msgstr "Wenn der Daemon mit @code{--no-substitutes} ausgeführt wird, können Clients trotzdem Substitute explizit aktivieren über den entfernten Prozeduraufruf @code{set-build-options} (siehe @ref{The Store})."
+#: doc/guix.texi:1472
+msgid "When the daemon runs with @option{--no-substitutes}, clients can still explicitly enable substitution @i{via} the @code{set-build-options} remote procedure call (@pxref{The Store})."
+msgstr "Wenn der Daemon mit @option{--no-substitutes} ausgeführt wird, können Clients trotzdem Substitute explizit aktivieren über den entfernten Prozeduraufruf @code{set-build-options} (siehe @ref{The Store})."
+
+#. type: anchor{#1}
+#: doc/guix.texi:1474
+msgid "daemon-substitute-urls"
+msgstr "daemon-substitute-urls"
 
 #. type: item
-#: doc/guix.texi:1374 doc/guix.texi:8269 doc/guix.texi:9966
-#: doc/guix.texi:10607 doc/guix.texi:10832
+#: doc/guix.texi:1474 doc/guix.texi:9959 doc/guix.texi:11822
+#: doc/guix.texi:12526 doc/guix.texi:12751
 #, no-wrap
 msgid "--substitute-urls=@var{urls}"
 msgstr "--substitute-urls=@var{URLs}"
 
-#. type: anchor{#1}
-#: doc/guix.texi:1379
-msgid "daemon-substitute-urls"
-msgstr "daemon-substitute-urls"
-
 #. type: table
-#: doc/guix.texi:1379
+#: doc/guix.texi:1478
 msgid "Consider @var{urls} the default whitespace-separated list of substitute source URLs.  When this option is omitted, @indicateurl{https://@value{SUBSTITUTE-SERVER}} is used."
 msgstr "@var{URLs} als standardmäßige, leerzeichengetrennte Liste der Quell-URLs für Substitute benutzen. Wenn diese Befehlszeilenoption @emph{nicht} angegeben wird, wird @indicateurl{https://@value{SUBSTITUTE-SERVER}} verwendet."
 
 #. type: table
-#: doc/guix.texi:1382
+#: doc/guix.texi:1481
 msgid "This means that substitutes may be downloaded from @var{urls}, as long as they are signed by a trusted signature (@pxref{Substitutes})."
 msgstr "Das hat zur Folge, dass Substitute von den @var{URLs} heruntergeladen werden können, solange sie mit einer Signatur versehen sind, der vertraut wird (siehe @ref{Substitutes})."
 
+#. type: table
+#: doc/guix.texi:1484
+msgid "@xref{Getting Substitutes from Other Servers}, for more information on how to configure the daemon to get substitutes from other servers."
+msgstr "Siehe @ref{Getting Substitutes from Other Servers} für weitere Informationen, wie der Daemon konfiguriert werden kann, um Substitute von anderen Servern zu beziehen."
+
 #. type: item
-#: doc/guix.texi:1384 doc/guix.texi:8307
+#: doc/guix.texi:1486 doc/guix.texi:9995
 #, no-wrap
 msgid "--no-offload"
 msgstr "--no-offload"
 
 #. type: table
-#: doc/guix.texi:1388 doc/guix.texi:8311
+#: doc/guix.texi:1490 doc/guix.texi:9999
 msgid "Do not use offload builds to other machines (@pxref{Daemon Offload Setup}).  That is, always build things locally instead of offloading builds to remote machines."
 msgstr "Nicht versuchen, an andere Maschinen ausgelagerte Erstellungen zu benutzen (siehe @ref{Daemon Offload Setup}). Somit wird lokal erstellt, statt Erstellungen auf entfernte Maschinen auszulagern."
 
 #. type: item
-#: doc/guix.texi:1389
+#: doc/guix.texi:1491
 #, no-wrap
 msgid "--cache-failures"
 msgstr "--cache-failures"
 
 #. type: table
-#: doc/guix.texi:1391
+#: doc/guix.texi:1493
 msgid "Cache build failures.  By default, only successful builds are cached."
 msgstr "Fehler bei der Erstellung zwischenspeichern. Normalerweise werden nur erfolgreiche Erstellungen gespeichert."
 
 #. type: table
-#: doc/guix.texi:1396
+#: doc/guix.texi:1498
 msgid "When this option is used, @command{guix gc --list-failures} can be used to query the set of store items marked as failed; @command{guix gc --clear-failures} removes store items from the set of cached failures.  @xref{Invoking guix gc}."
 msgstr "Wenn diese Befehlszeilenoption benutzt wird, kann @command{guix gc --list-failures} benutzt werden, um die Menge an Store-Objekten abzufragen, die als Fehlschläge markiert sind; @command{guix gc --clear-failures} entfernt Store-Objekte aus der Menge zwischengespeicherter Fehlschläge. Siehe @ref{Invoking guix gc}."
 
 #. type: item
-#: doc/guix.texi:1397 doc/guix.texi:8336
+#: doc/guix.texi:1499 doc/guix.texi:10024
 #, no-wrap
 msgid "--cores=@var{n}"
 msgstr "--cores=@var{n}"
 
 #. type: itemx
-#: doc/guix.texi:1398 doc/guix.texi:8337
+#: doc/guix.texi:1500 doc/guix.texi:10025
 #, no-wrap
 msgid "-c @var{n}"
 msgstr "-c @var{n}"
 
 #. type: table
-#: doc/guix.texi:1401
+#: doc/guix.texi:1503
 msgid "Use @var{n} CPU cores to build each derivation; @code{0} means as many as available."
 msgstr "@var{n} CPU-Kerne zum Erstellen jeder Ableitung benutzen; @code{0} heißt, so viele wie verfügbar sind."
 
 #. type: table
-#: doc/guix.texi:1405
-msgid "The default value is @code{0}, but it may be overridden by clients, such as the @code{--cores} option of @command{guix build} (@pxref{Invoking guix build})."
-msgstr "Der Vorgabewert ist @code{0}, jeder Client kann jedoch eine abweichende Anzahl vorgeben, zum Beispiel mit der Befehlszeilenoption @code{--cores} von @command{guix build} (siehe @ref{Invoking guix build})."
+#: doc/guix.texi:1507
+msgid "The default value is @code{0}, but it may be overridden by clients, such as the @option{--cores} option of @command{guix build} (@pxref{Invoking guix build})."
+msgstr "Der Vorgabewert ist @code{0}, jeder Client kann jedoch eine abweichende Anzahl vorgeben, zum Beispiel mit der Befehlszeilenoption @option{--cores} von @command{guix build} (siehe @ref{Invoking guix build})."
 
 #. type: table
-#: doc/guix.texi:1409
-msgid "The effect is to define the @code{NIX_BUILD_CORES} environment variable in the build process, which can then use it to exploit internal parallelism---for instance, by running @code{make -j$NIX_BUILD_CORES}."
-msgstr "Dadurch wird die Umgebungsvariable @code{NIX_BUILD_CORES} im Erstellungsprozess definiert, welcher sie benutzen kann, um intern parallele Ausführungen zuzulassen — zum Beispiel durch Nutzung von @code{make -j$NIX_BUILD_CORES}."
+#: doc/guix.texi:1511
+msgid "The effect is to define the @env{NIX_BUILD_CORES} environment variable in the build process, which can then use it to exploit internal parallelism---for instance, by running @code{make -j$NIX_BUILD_CORES}."
+msgstr "Dadurch wird die Umgebungsvariable @env{NIX_BUILD_CORES} im Erstellungsprozess definiert, welcher sie benutzen kann, um intern parallele Ausführungen zuzulassen — zum Beispiel durch Nutzung von @code{make -j$NIX_BUILD_CORES}."
 
 #. type: item
-#: doc/guix.texi:1410 doc/guix.texi:8341
+#: doc/guix.texi:1512 doc/guix.texi:10029
 #, no-wrap
 msgid "--max-jobs=@var{n}"
 msgstr "--max-jobs=@var{n}"
 
 #. type: itemx
-#: doc/guix.texi:1411 doc/guix.texi:8342
+#: doc/guix.texi:1513 doc/guix.texi:10030
 #, no-wrap
 msgid "-M @var{n}"
 msgstr "-M @var{n}"
 
 #. type: table
-#: doc/guix.texi:1416
+#: doc/guix.texi:1518
 msgid "Allow at most @var{n} build jobs in parallel.  The default value is @code{1}.  Setting it to @code{0} means that no builds will be performed locally; instead, the daemon will offload builds (@pxref{Daemon Offload Setup}), or simply fail."
 msgstr "Höchstenss @var{n} Erstellungsaufträge parallel bearbeiten. Der Vorgabewert liegt bei @code{1}. Wird er auf @code{0} gesetzt, werden keine Erstellungen lokal durchgeführt, stattdessen lagert der Daemon sie nur aus (siehe @ref{Daemon Offload Setup}) oder sie schlagen einfach fehl."
 
 #. type: item
-#: doc/guix.texi:1417 doc/guix.texi:8312
+#: doc/guix.texi:1519 doc/guix.texi:10000
 #, no-wrap
 msgid "--max-silent-time=@var{seconds}"
 msgstr "--max-silent-time=@var{Sekunden}"
 
 #. type: table
-#: doc/guix.texi:1420 doc/guix.texi:8315
+#: doc/guix.texi:1522 doc/guix.texi:10003
 msgid "When the build or substitution process remains silent for more than @var{seconds}, terminate it and report a build failure."
 msgstr "Wenn der Erstellungs- oder Substitutionsprozess länger als @var{Sekunden}-lang keine Ausgabe erzeugt, wird er abgebrochen und ein Fehler beim Erstellen gemeldet."
 
 #. type: table
-#: doc/guix.texi:1422 doc/guix.texi:1431
+#: doc/guix.texi:1524 doc/guix.texi:1533
 msgid "The default value is @code{0}, which disables the timeout."
 msgstr "Der Vorgabewert ist @code{0}, was bedeutet, dass es keine Zeitbeschränkung gibt."
 
 #. type: table
-#: doc/guix.texi:1425
-msgid "The value specified here can be overridden by clients (@pxref{Common Build Options, @code{--max-silent-time}})."
-msgstr "Clients können einen anderen Wert als den hier angegebenen verwenden lassen (siehe @ref{Common Build Options, @code{--max-silent-time}})."
+#: doc/guix.texi:1527
+msgid "The value specified here can be overridden by clients (@pxref{Common Build Options, @option{--max-silent-time}})."
+msgstr "Clients können einen anderen Wert als den hier angegebenen verwenden lassen (siehe @ref{Common Build Options, @option{--max-silent-time}})."
 
 #. type: item
-#: doc/guix.texi:1426 doc/guix.texi:8319
+#: doc/guix.texi:1528 doc/guix.texi:10007
 #, no-wrap
 msgid "--timeout=@var{seconds}"
 msgstr "--timeout=@var{Sekunden}"
 
 #. type: table
-#: doc/guix.texi:1429 doc/guix.texi:8322
+#: doc/guix.texi:1531 doc/guix.texi:10010
 msgid "Likewise, when the build or substitution process lasts for more than @var{seconds}, terminate it and report a build failure."
 msgstr "Entsprechend wird hier der Erstellungs- oder Substitutionsprozess abgebrochen und als Fehlschlag gemeldet, wenn er mehr als @var{Sekunden}-lang dauert."
 
 #. type: table
-#: doc/guix.texi:1434
-msgid "The value specified here can be overridden by clients (@pxref{Common Build Options, @code{--timeout}})."
-msgstr "Clients können einen anderen Wert verwenden lassen (siehe @ref{Common Build Options, @code{--timeout}})."
+#: doc/guix.texi:1536
+msgid "The value specified here can be overridden by clients (@pxref{Common Build Options, @option{--timeout}})."
+msgstr "Clients können einen anderen Wert verwenden lassen (siehe @ref{Common Build Options, @option{--timeout}})."
 
 #. type: item
-#: doc/guix.texi:1435
+#: doc/guix.texi:1537
 #, no-wrap
 msgid "--rounds=@var{N}"
 msgstr "--rounds=@var{N}"
 
 #. type: table
-#: doc/guix.texi:1440
+#: doc/guix.texi:1542
 msgid "Build each derivation @var{n} times in a row, and raise an error if consecutive build results are not bit-for-bit identical.  Note that this setting can be overridden by clients such as @command{guix build} (@pxref{Invoking guix build})."
 msgstr "Jede Ableitung @var{n}-mal hintereinander erstellen und einen Fehler melden, wenn nacheinander ausgewertete Erstellungsergebnisse nicht Bit für Bit identisch sind. Beachten Sie, dass Clients wie @command{guix build} einen anderen Wert verwenden lassen können (siehe @ref{Invoking guix build})."
 
 #. type: table
-#: doc/guix.texi:1444 doc/guix.texi:8691
+#: doc/guix.texi:1546 doc/guix.texi:9994 doc/guix.texi:10499
 msgid "When used in conjunction with @option{--keep-failed}, the differing output is kept in the store, under @file{/gnu/store/@dots{}-check}.  This makes it easy to look for differences between the two results."
 msgstr "Wenn dies zusammen mit @option{--keep-failed} benutzt wird, bleiben die sich unterscheidenden Ausgaben im Store unter dem Namen @file{/gnu/store/…-check}. Dadurch können Unterschiede zwischen den beiden Ergebnissen leicht erkannt werden."
 
 #. type: item
-#: doc/guix.texi:1445
+#: doc/guix.texi:1547
 #, no-wrap
 msgid "--debug"
 msgstr "--debug"
 
 #. type: table
-#: doc/guix.texi:1447
+#: doc/guix.texi:1549
 msgid "Produce debugging output."
 msgstr "Informationen zur Fehlersuche ausgeben."
 
 #. type: table
-#: doc/guix.texi:1451
-msgid "This is useful to debug daemon start-up issues, but then it may be overridden by clients, for example the @code{--verbosity} option of @command{guix build} (@pxref{Invoking guix build})."
-msgstr "Dies ist nützlich, um Probleme beim Starten des Daemons nachzuvollziehen; Clients könn aber auch ein abweichenden Wert verwenden lassen, zum Beispiel mit der Befehlszeilenoption @code{--verbosity} von @command{guix build} (siehe @ref{Invoking guix build})."
+#: doc/guix.texi:1553
+msgid "This is useful to debug daemon start-up issues, but then it may be overridden by clients, for example the @option{--verbosity} option of @command{guix build} (@pxref{Invoking guix build})."
+msgstr "Dies ist nützlich, um Probleme beim Starten des Daemons nachzuvollziehen; Clients könn aber auch ein abweichenden Wert verwenden lassen, zum Beispiel mit der Befehlszeilenoption @option{--verbosity} von @command{guix build} (siehe @ref{Invoking guix build})."
 
 #. type: item
-#: doc/guix.texi:1452
+#: doc/guix.texi:1554
 #, no-wrap
 msgid "--chroot-directory=@var{dir}"
 msgstr "--chroot-directory=@var{Verzeichnis}"
 
 #. type: table
-#: doc/guix.texi:1454
+#: doc/guix.texi:1556
 msgid "Add @var{dir} to the build chroot."
 msgstr "Füge das @var{Verzeichnis} zum chroot von Erstellungen hinzu."
 
 #. type: table
-#: doc/guix.texi:1460
+#: doc/guix.texi:1562
 msgid "Doing this may change the result of build processes---for instance if they use optional dependencies found in @var{dir} when it is available, and not otherwise.  For that reason, it is not recommended to do so.  Instead, make sure that each derivation declares all the inputs that it needs."
 msgstr "Dadurch kann sich das Ergebnis von Erstellungsprozessen ändern — zum Beispiel, wenn diese optionale Abhängigkeiten aus dem @var{Verzeichnis} verwenden, wenn sie verfügbar sind, und nicht, wenn es fehlt. Deshalb ist es nicht empfohlen, dass Sie diese Befehlszeilenoption verwenden, besser sollten Sie dafür sorgen, dass jede Ableitung alle von ihr benötigten Eingabgen deklariert."
 
 #. type: item
-#: doc/guix.texi:1461
+#: doc/guix.texi:1563
 #, no-wrap
 msgid "--disable-chroot"
 msgstr "--disable-chroot"
 
 #. type: table
-#: doc/guix.texi:1463
+#: doc/guix.texi:1565
 msgid "Disable chroot builds."
 msgstr "Erstellungen ohne chroot durchführen."
 
 #. type: table
-#: doc/guix.texi:1468
+#: doc/guix.texi:1570
 msgid "Using this option is not recommended since, again, it would allow build processes to gain access to undeclared dependencies.  It is necessary, though, when @command{guix-daemon} is running under an unprivileged user account."
 msgstr "Diese Befehlszeilenoption zu benutzen, wird nicht empfohlen, denn auch dadurch bekämen Erstellungsprozesse Zugriff auf nicht deklarierte Abhängigkeiten. Sie ist allerdings unvermeidlich, wenn @command{guix-daemon} auf einem Benutzerkonto ohne ausreichende Berechtigungen ausgeführt wird."
 
 #. type: item
-#: doc/guix.texi:1469
+#: doc/guix.texi:1571
 #, no-wrap
 msgid "--log-compression=@var{type}"
 msgstr "--log-compression=@var{Typ}"
 
 #. type: table
-#: doc/guix.texi:1472
+#: doc/guix.texi:1574
 msgid "Compress build logs according to @var{type}, one of @code{gzip}, @code{bzip2}, or @code{none}."
 msgstr "Erstellungsprotokolle werden entsprechend dem @var{Typ} komprimiert, der entweder @code{gzip}, @code{bzip2} oder @code{none} (für keine Kompression) sein muss."
 
 #. type: table
-#: doc/guix.texi:1476
-msgid "Unless @code{--lose-logs} is used, all the build logs are kept in the @var{localstatedir}.  To save space, the daemon automatically compresses them with bzip2 by default."
-msgstr "Sofern nicht @code{--lose-logs} angegeben wurde, werden alle Erstellungsprotokolle in der @var{localstatedir} gespeichert. Um Platz zu sparen, komprimiert sie der Daemon standardmäßig automatisch mit bzip2."
+#: doc/guix.texi:1578
+msgid "Unless @option{--lose-logs} is used, all the build logs are kept in the @var{localstatedir}.  To save space, the daemon automatically compresses them with Bzip2 by default."
+msgstr "Sofern nicht @option{--lose-logs} angegeben wurde, werden alle Erstellungsprotokolle in der @var{localstatedir} gespeichert. Um Platz zu sparen, komprimiert sie der Daemon standardmäßig automatisch mit Bzip2."
 
 #. type: item
-#: doc/guix.texi:1477
+#: doc/guix.texi:1579
 #, no-wrap
 msgid "--disable-deduplication"
 msgstr "--disable-deduplication"
 
 #. type: cindex
-#: doc/guix.texi:1478 doc/guix.texi:3686
+#: doc/guix.texi:1580 doc/guix.texi:4127
 #, no-wrap
 msgid "deduplication"
 msgstr "Deduplizieren"
 
 #. type: table
-#: doc/guix.texi:1480
+#: doc/guix.texi:1582
 msgid "Disable automatic file ``deduplication'' in the store."
 msgstr "Automatische Dateien-„Deduplizierung“ im Store ausschalten."
 
 #. type: table
-#: doc/guix.texi:1487
+#: doc/guix.texi:1589
 msgid "By default, files added to the store are automatically ``deduplicated'': if a newly added file is identical to another one found in the store, the daemon makes the new file a hard link to the other file.  This can noticeably reduce disk usage, at the expense of slightly increased input/output load at the end of a build process.  This option disables this optimization."
 msgstr "Standardmäßig werden zum Store hinzugefügte Objekte automatisch „dedupliziert“: Wenn eine neue Datei mit einer anderen im Store übereinstimmt, wird die neue Datei stattdessen als harte Verknüpfung auf die andere Datei angelegt. Dies reduziert den Speicherverbrauch auf der Platte merklich, jedoch steigt andererseits die Auslastung bei der Ein-/Ausgabe im Erstellungsprozess geringfügig. Durch diese Option wird keine solche Optimierung durchgeführt."
 
 #. type: item
-#: doc/guix.texi:1488
+#: doc/guix.texi:1590
 #, no-wrap
 msgid "--gc-keep-outputs[=yes|no]"
 msgstr "--gc-keep-outputs[=yes|no]"
 
 #. type: table
-#: doc/guix.texi:1491
+#: doc/guix.texi:1593
 msgid "Tell whether the garbage collector (GC) must keep outputs of live derivations."
 msgstr "Gibt an, ob der Müllsammler (Garbage Collector, GC) die Ausgaben lebendiger Ableitungen behalten muss („yes“) oder nicht („no“)."
 
 #. type: cindex
-#: doc/guix.texi:1492 doc/guix.texi:3499
+#: doc/guix.texi:1594 doc/guix.texi:3940
 #, no-wrap
 msgid "GC roots"
 msgstr "GC-Wurzeln"
 
 #. type: cindex
-#: doc/guix.texi:1493 doc/guix.texi:3500
+#: doc/guix.texi:1595 doc/guix.texi:3941
 #, no-wrap
 msgid "garbage collector roots"
 msgstr "Müllsammlerwurzeln"
 
 #. type: table
-#: doc/guix.texi:1498
-msgid "When set to ``yes'', the GC will keep the outputs of any live derivation available in the store---the @code{.drv} files.  The default is ``no'', meaning that derivation outputs are kept only if they are reachable from a GC root.  @xref{Invoking guix gc}, for more on GC roots."
-msgstr "Für „yes“ behält der Müllsammler die Ausgaben aller lebendigen Ableitungen im Store — die @code{.drv}-Dateien. Der Vorgabewert ist aber „no“, so dass Ableitungsausgaben nur vorgehalten werden, wenn sie von einer Müllsammlerwurzel aus erreichbar sind. Siehe den Abschnitt @ref{Invoking guix gc} für weitere Informationen zu Müllsammlerwurzeln."
+#: doc/guix.texi:1601
+msgid "When set to @code{yes}, the GC will keep the outputs of any live derivation available in the store---the @file{.drv} files.  The default is @code{no}, meaning that derivation outputs are kept only if they are reachable from a GC root.  @xref{Invoking guix gc}, for more on GC roots."
+msgstr "Für @code{yes} behält der Müllsammler die Ausgaben aller lebendigen Ableitungen im Store — die @file{.drv}-Dateien. Der Vorgabewert ist aber @code{no}, so dass Ableitungsausgaben nur vorgehalten werden, wenn sie von einer Müllsammlerwurzel aus erreichbar sind. Siehe den Abschnitt @ref{Invoking guix gc} für weitere Informationen zu Müllsammlerwurzeln."
 
 #. type: item
-#: doc/guix.texi:1499
+#: doc/guix.texi:1602
 #, no-wrap
 msgid "--gc-keep-derivations[=yes|no]"
 msgstr "--gc-keep-derivations[=yes|no]"
 
 #. type: table
-#: doc/guix.texi:1502
+#: doc/guix.texi:1605
 msgid "Tell whether the garbage collector (GC) must keep derivations corresponding to live outputs."
 msgstr "Gibt an, ob der Müllsammler (GC) Ableitungen behalten muss („yes“), wenn sie lebendige Ausgaben haben, oder nicht („no“)."
 
 #. type: table
-#: doc/guix.texi:1507
-msgid "When set to ``yes'', as is the case by default, the GC keeps derivations---i.e., @code{.drv} files---as long as at least one of their outputs is live.  This allows users to keep track of the origins of items in their store.  Setting it to ``no'' saves a bit of disk space."
-msgstr "Für „yes“, den Vorgabewert, behält der Müllsammler Ableitungen — z.B.@: @code{.drv}-Dateien —, solange zumindest eine ihrer Ausgaben lebendig ist. Dadurch können Nutzer den Ursprung der Dateien in ihrem Store nachvollziehen. Setzt man den Wert auf „no“, wird ein bisschen weniger Speicher auf der Platte verbraucht."
+#: doc/guix.texi:1611
+msgid "When set to @code{yes}, as is the case by default, the GC keeps derivations---i.e., @file{.drv} files---as long as at least one of their outputs is live.  This allows users to keep track of the origins of items in their store.  Setting it to @code{no} saves a bit of disk space."
+msgstr "Für @code{yes}, den Vorgabewert, behält der Müllsammler Ableitungen — z.B.@: @file{.drv}-Dateien —, solange zumindest eine ihrer Ausgaben lebendig ist. Dadurch können Nutzer den Ursprung der Dateien in ihrem Store nachvollziehen. Setzt man den Wert auf @code{no}, wird ein bisschen weniger Speicher auf der Platte verbraucht."
 
 #. type: table
-#: doc/guix.texi:1515
-msgid "In this way, setting @code{--gc-keep-derivations} to ``yes'' causes liveness to flow from outputs to derivations, and setting @code{--gc-keep-outputs} to ``yes'' causes liveness to flow from derivations to outputs.  When both are set to ``yes'', the effect is to keep all the build prerequisites (the sources, compiler, libraries, and other build-time tools) of live objects in the store, regardless of whether these prerequisites are reachable from a GC root.  This is convenient for developers since it saves rebuilds or downloads."
-msgstr "Auf diese Weise überträgt sich, wenn @code{--gc-keep-derivations} auf „yes“ steht, die Lebendigkeit von Ausgaben auf Ableitungen, und wenn @code{--gc-keep-outputs} auf „yes“ steht, die Lebendigkeit von Ableitungen auf Ausgaben. Stehen beide auf „yes“, bleiben so alle Erstellungsvoraussetzungen wie Quelldateien, Compiler, Bibliotheken und andere Erstellungswerkzeuge lebendiger Objekte im Store erhalten, ob sie von einer Müllsammlerwurzel aus erreichbar sind oder nicht. Entwickler können sich so erneute Erstellungen oder erneutes Herunterladen sparen."
+#: doc/guix.texi:1620
+msgid "In this way, setting @option{--gc-keep-derivations} to @code{yes} causes liveness to flow from outputs to derivations, and setting @option{--gc-keep-outputs} to @code{yes} causes liveness to flow from derivations to outputs.  When both are set to @code{yes}, the effect is to keep all the build prerequisites (the sources, compiler, libraries, and other build-time tools) of live objects in the store, regardless of whether these prerequisites are reachable from a GC root.  This is convenient for developers since it saves rebuilds or downloads."
+msgstr "Auf diese Weise überträgt sich, wenn @option{--gc-keep-derivations} auf @code{yes} steht, die Lebendigkeit von Ausgaben auf Ableitungen, und wenn @option{--gc-keep-outputs} auf @code{yes} steht, die Lebendigkeit von Ableitungen auf Ausgaben. Stehen beide auf @code{yes}, bleiben so alle Erstellungsvoraussetzungen wie Quelldateien, Compiler, Bibliotheken und andere Erstellungswerkzeuge lebendiger Objekte im Store erhalten, ob sie von einer Müllsammlerwurzel aus erreichbar sind oder nicht. Entwickler können sich so erneute Erstellungen oder erneutes Herunterladen sparen."
 
 #. type: item
-#: doc/guix.texi:1516
+#: doc/guix.texi:1621
 #, no-wrap
 msgid "--impersonate-linux-2.6"
 msgstr "--impersonate-linux-2.6"
 
 #. type: table
-#: doc/guix.texi:1519
-msgid "On Linux-based systems, impersonate Linux 2.6.  This means that the kernel's @code{uname} system call will report 2.6 as the release number."
-msgstr "Auf Linux-basierten Systemen wird hiermit vorgetäuscht, dass es sich um Linux 2.6 handeln würde, indem der Kernel für einen @code{uname}-Systemaufruf als Version der Veröffentlichung mit 2.6 antwortet."
+#: doc/guix.texi:1624
+msgid "On Linux-based systems, impersonate Linux 2.6.  This means that the kernel's @command{uname} system call will report 2.6 as the release number."
+msgstr "Auf Linux-basierten Systemen wird hiermit vorgetäuscht, dass es sich um Linux 2.6 handeln würde, indem der Kernel für einen @command{uname}-Systemaufruf als Version der Veröffentlichung mit 2.6 antwortet."
 
 #. type: table
-#: doc/guix.texi:1522
+#: doc/guix.texi:1627
 msgid "This might be helpful to build programs that (usually wrongfully) depend on the kernel version number."
 msgstr "Dies kann hilfreich sein, um Programme zu erstellen, die (normalerweise zu Unrecht) von der Kernel-Versionsnummer abhängen."
 
 #. type: item
-#: doc/guix.texi:1523
+#: doc/guix.texi:1628
 #, no-wrap
 msgid "--lose-logs"
 msgstr "--lose-logs"
 
 #. type: table
-#: doc/guix.texi:1526
-msgid "Do not keep build logs.  By default they are kept under @code{@var{localstatedir}/guix/log}."
-msgstr "Keine Protokolle der Erstellungen vorhalten. Normalerweise würden solche in @code{@var{localstatedir}/guix/log} gespeichert."
+#: doc/guix.texi:1631
+msgid "Do not keep build logs.  By default they are kept under @file{@var{localstatedir}/guix/log}."
+msgstr "Keine Protokolle der Erstellungen vorhalten. Normalerweise würden solche in @file{@var{localstatedir}/guix/log} gespeichert."
 
 #. type: item
-#: doc/guix.texi:1527 doc/guix.texi:3894 doc/guix.texi:4908 doc/guix.texi:5248
-#: doc/guix.texi:8635 doc/guix.texi:9993 doc/guix.texi:10199
-#: doc/guix.texi:10837 doc/guix.texi:26187 doc/guix.texi:26869
+#: doc/guix.texi:1632 doc/guix.texi:4368 doc/guix.texi:5636 doc/guix.texi:6007
+#: doc/guix.texi:10443 doc/guix.texi:11849 doc/guix.texi:12100
+#: doc/guix.texi:12756 doc/guix.texi:30230 doc/guix.texi:31006
 #, no-wrap
 msgid "--system=@var{system}"
 msgstr "--system=@var{System}"
 
 #. type: table
-#: doc/guix.texi:1531
+#: doc/guix.texi:1636
 msgid "Assume @var{system} as the current system type.  By default it is the architecture/kernel pair found at configure time, such as @code{x86_64-linux}."
 msgstr "Verwende @var{System} als aktuellen Systemtyp. Standardmäßig ist dies das Paar aus Befehlssatz und Kernel, welches beim Aufruf von @code{configure} erkannt wurde, wie zum Beispiel @code{x86_64-linux}."
 
 #. type: item
-#: doc/guix.texi:1532 doc/guix.texi:8115
+#: doc/guix.texi:1637 doc/guix.texi:9805
 #, no-wrap
 msgid "--listen=@var{endpoint}"
 msgstr "--listen=@var{Endpunkt}"
 
 #. type: table
-#: doc/guix.texi:1537
+#: doc/guix.texi:1642
 msgid "Listen for connections on @var{endpoint}.  @var{endpoint} is interpreted as the file name of a Unix-domain socket if it starts with @code{/} (slash sign).  Otherwise, @var{endpoint} is interpreted as a host name or host name and port to listen to.  Here are a few examples:"
-msgstr "Lausche am @var{Endpunkt} auf Verbindungen. Dabei wird der @var{Endpunkt} als Dateiname eines Unix-Sockets verstanden, wenn er mit einem @code{/} (Schrägstrich) beginnt. Andernfalls wird der @var{Endpunkt} als Hostname (d.h.@: Rechnername) oder als Hostname-Port-Paar verstanden, auf dem gelauscht wird. Hier sind ein paar Beispiele:"
+msgstr "Lausche am @var{Endpunkt} auf Verbindungen. Dabei wird der @var{Endpunkt} als Dateiname eines Unix-Sockets verstanden, wenn er mit einem @code{/} (Schrägstrich) beginnt. Andernfalls wird der @var{Endpunkt} als Rechnername (d.h.@: Hostname) oder als Rechnername-Port-Paar verstanden, auf dem gelauscht wird. Hier sind ein paar Beispiele:"
 
 #. type: item
-#: doc/guix.texi:1539
+#: doc/guix.texi:1644
 #, no-wrap
 msgid "--listen=/gnu/var/daemon"
 msgstr "--listen=/gnu/var/daemon"
 
 #. type: table
-#: doc/guix.texi:1542
+#: doc/guix.texi:1647
 msgid "Listen for connections on the @file{/gnu/var/daemon} Unix-domain socket, creating it if needed."
 msgstr "Lausche auf Verbindungen am Unix-Socket @file{/gnu/var/daemon}, falls nötig wird er dazu erstellt."
 
 #. type: item
-#: doc/guix.texi:1543
+#: doc/guix.texi:1648
 #, no-wrap
 msgid "--listen=localhost"
 msgstr "--listen=localhost"
 
 #. type: cindex
-#: doc/guix.texi:1544 doc/guix.texi:6869
+#: doc/guix.texi:1649 doc/guix.texi:8489
 #, no-wrap
 msgid "daemon, remote access"
 msgstr "Daemon, Fernzugriff"
 
 #. type: cindex
-#: doc/guix.texi:1545 doc/guix.texi:6870
+#: doc/guix.texi:1650 doc/guix.texi:8490
 #, no-wrap
 msgid "remote access to the daemon"
 msgstr "Fernzugriff auf den Daemon"
 
 #. type: cindex
-#: doc/guix.texi:1546 doc/guix.texi:6871
+#: doc/guix.texi:1651 doc/guix.texi:8491
 #, no-wrap
 msgid "daemon, cluster setup"
 msgstr "Daemon, Einrichten auf Clustern"
 
 #. type: cindex
-#: doc/guix.texi:1547 doc/guix.texi:6872
+#: doc/guix.texi:1652 doc/guix.texi:8492
 #, no-wrap
 msgid "clusters, daemon setup"
 msgstr "Cluster, Einrichtung des Daemons"
 
 #. type: table
-#: doc/guix.texi:1550
+#: doc/guix.texi:1655
 msgid "Listen for TCP connections on the network interface corresponding to @code{localhost}, on port 44146."
 msgstr "Lausche auf TCP-Verbindungen an der Netzwerkschnittstelle, die @code{localhost} entspricht, auf Port 44146."
 
 #. type: item
-#: doc/guix.texi:1551
+#: doc/guix.texi:1656
 #, no-wrap
 msgid "--listen=128.0.0.42:1234"
 msgstr "--listen=128.0.0.42:1234"
 
 #. type: table
-#: doc/guix.texi:1554
+#: doc/guix.texi:1659
 msgid "Listen for TCP connections on the network interface corresponding to @code{128.0.0.42}, on port 1234."
 msgstr "Lausche auf TCP-Verbindungen an der Netzwerkschnittstelle, die @code{128.0.0.42} entspricht, auf Port 1234."
 
 #. type: table
-#: doc/guix.texi:1561
-msgid "This option can be repeated multiple times, in which case @command{guix-daemon} accepts connections on all the specified endpoints.  Users can tell client commands what endpoint to connect to by setting the @code{GUIX_DAEMON_SOCKET} environment variable (@pxref{The Store, @code{GUIX_DAEMON_SOCKET}})."
-msgstr "Diese Befehlszeilenoption kann mehrmals wiederholt werden. In diesem Fall akzeptiert @command{guix-daemon} Verbindungen auf allen angegebenen Endpunkten. Benutzer können bei Client-Befehlen angeben, mit welchem Endpunkt sie sich verbinden möchten, indem sie die Umgebungsvariable @code{GUIX_DAEMON_SOCKET} festlegen (siehe @ref{The Store, @code{GUIX_DAEMON_SOCKET}})."
+#: doc/guix.texi:1666
+msgid "This option can be repeated multiple times, in which case @command{guix-daemon} accepts connections on all the specified endpoints.  Users can tell client commands what endpoint to connect to by setting the @env{GUIX_DAEMON_SOCKET} environment variable (@pxref{The Store, @env{GUIX_DAEMON_SOCKET}})."
+msgstr "Diese Befehlszeilenoption kann mehrmals wiederholt werden. In diesem Fall akzeptiert @command{guix-daemon} Verbindungen auf allen angegebenen Endpunkten. Benutzer können bei Client-Befehlen angeben, mit welchem Endpunkt sie sich verbinden möchten, indem sie die Umgebungsvariable @env{GUIX_DAEMON_SOCKET} festlegen (siehe @ref{The Store, @env{GUIX_DAEMON_SOCKET}})."
 
 #. type: quotation
-#: doc/guix.texi:1568
-msgid "The daemon protocol is @emph{unauthenticated and unencrypted}.  Using @code{--listen=@var{host}} is suitable on local networks, such as clusters, where only trusted nodes may connect to the build daemon.  In other cases where remote access to the daemon is needed, we recommend using Unix-domain sockets along with SSH."
-msgstr "Das Daemon-Protokoll ist @emph{weder authentifiziert noch verschlüsselt}. Die Benutzung von @code{--listen=@var{Host}} eignet sich für lokale Netzwerke, wie z.B.@: in Rechen-Clustern, wo sich nur solche Knoten mit dem Daemon verbinden, denen man vertraut. In Situationen, wo ein Fernzugriff auf den Daemon durchgeführt wird, empfehlen wir, über Unix-Sockets in Verbindung mit SSH zuzugreifen."
+#: doc/guix.texi:1673
+msgid "The daemon protocol is @emph{unauthenticated and unencrypted}.  Using @option{--listen=@var{host}} is suitable on local networks, such as clusters, where only trusted nodes may connect to the build daemon.  In other cases where remote access to the daemon is needed, we recommend using Unix-domain sockets along with SSH."
+msgstr "Das Daemon-Protokoll ist @emph{weder authentifiziert noch verschlüsselt}. Die Benutzung von @option{--listen=@var{Rechner}} eignet sich für lokale Netzwerke, wie z.B.@: in Rechen-Clustern, wo sich nur solche Knoten mit dem Daemon verbinden, denen man vertraut. In Situationen, wo ein Fernzugriff auf den Daemon durchgeführt wird, empfehlen wir, über Unix-Sockets in Verbindung mit SSH zuzugreifen."
 
 #. type: table
-#: doc/guix.texi:1573
-msgid "When @code{--listen} is omitted, @command{guix-daemon} listens for connections on the Unix-domain socket located at @file{@var{localstatedir}/guix/daemon-socket/socket}."
-msgstr "Wird @code{--listen} nicht angegeben, lauscht @command{guix-daemon} auf Verbindungen auf dem Unix-Socket, der sich unter @file{@var{localstatedir}/guix/daemon-socket/socket} befindet."
+#: doc/guix.texi:1678
+msgid "When @option{--listen} is omitted, @command{guix-daemon} listens for connections on the Unix-domain socket located at @file{@var{localstatedir}/guix/daemon-socket/socket}."
+msgstr "Wird @option{--listen} nicht angegeben, lauscht @command{guix-daemon} auf Verbindungen auf dem Unix-Socket, der sich unter @file{@var{localstatedir}/guix/daemon-socket/socket} befindet."
 
 #. type: Plain text
-#: doc/guix.texi:1583
+#: doc/guix.texi:1688
 msgid "When using Guix on top of GNU/Linux distribution other than Guix System---a so-called @dfn{foreign distro}---a few additional steps are needed to get everything in place.  Here are some of them."
 msgstr "Läuft Guix aufgesetzt auf einer GNU/Linux-Distribution außer Guix System — einer sogenannten @dfn{Fremddistribution} —, so sind ein paar zusätzliche Schritte bei der Einrichtung nötig. Hier finden Sie manche davon."
 
 #. type: anchor{#1}
-#: doc/guix.texi:1587
+#: doc/guix.texi:1692
 msgid "locales-and-locpath"
 msgstr "locales-and-locpath"
 
 #. type: cindex
-#: doc/guix.texi:1587
+#: doc/guix.texi:1692
 #, no-wrap
 msgid "locales, when not on Guix System"
 msgstr "Locales, nicht auf Guix System"
 
 #. type: vindex
-#: doc/guix.texi:1588 doc/guix.texi:12057
+#: doc/guix.texi:1693 doc/guix.texi:14207
 #, no-wrap
 msgid "LOCPATH"
 msgstr "LOCPATH"
 
 #. type: vindex
-#: doc/guix.texi:1589
+#: doc/guix.texi:1694
 #, no-wrap
 msgid "GUIX_LOCPATH"
 msgstr "GUIX_LOCPATH"
 
 #. type: Plain text
-#: doc/guix.texi:1594
-msgid "Packages installed @i{via} Guix will not use the locale data of the host system.  Instead, you must first install one of the locale packages available with Guix and then define the @code{GUIX_LOCPATH} environment variable:"
-msgstr "Über Guix installierte Pakete benutzen nicht die Daten zu Regions- und Spracheinstellungen (Locales) des Wirtssystems. Stattdessen müssen Sie erst eines der Locale-Pakete installieren, die für Guix verfügbar sind, und dann den Wert Ihrer Umgebungsvariablen @code{GUIX_LOCPATH} passend festlegen:"
+#: doc/guix.texi:1699
+msgid "Packages installed @i{via} Guix will not use the locale data of the host system.  Instead, you must first install one of the locale packages available with Guix and then define the @env{GUIX_LOCPATH} environment variable:"
+msgstr "Über Guix installierte Pakete benutzen nicht die Daten zu Regions- und Spracheinstellungen (Locales) des Wirtssystems. Stattdessen müssen Sie erst eines der Locale-Pakete installieren, die für Guix verfügbar sind, und dann den Wert Ihrer Umgebungsvariablen @env{GUIX_LOCPATH} passend festlegen:"
 
 #. type: example
-#: doc/guix.texi:1598
+#: doc/guix.texi:1703
 #, no-wrap
 msgid ""
 "$ guix install glibc-locales\n"
@@ -5501,132 +6029,132 @@ msgstr ""
 "$ export GUIX_LOCPATH=$HOME/.guix-profile/lib/locale\n"
 
 #. type: Plain text
-#: doc/guix.texi:1604
+#: doc/guix.texi:1709
 msgid "Note that the @code{glibc-locales} package contains data for all the locales supported by the GNU@tie{}libc and weighs in at around 917@tie{}MiB.  Alternatively, the @code{glibc-utf8-locales} is smaller but limited to a few UTF-8 locales."
 msgstr "Beachten Sie, dass das Paket @code{glibc-locales} Daten für alle von GNU@tie{}libc unterstützten Locales enthält und deswegen um die 917@tie{}MiB wiegt. Alternativ gibt es auch @code{glibc-utf8-locales}, was kleiner, aber auf ein paar UTF-8-Locales beschränkt ist."
 
 #. type: Plain text
-#: doc/guix.texi:1608
-msgid "The @code{GUIX_LOCPATH} variable plays a role similar to @code{LOCPATH} (@pxref{Locale Names, @code{LOCPATH},, libc, The GNU C Library Reference Manual}).  There are two important differences though:"
-msgstr "Die Variable @code{GUIX_LOCPATH} spielt eine ähnliche Rolle wie @code{LOCPATH} (siehe @ref{Locale Names, @code{LOCPATH},, libc, The GNU C Library Reference Manual}). Es gibt jedoch zwei wichtige Unterschiede:"
+#: doc/guix.texi:1713
+msgid "The @env{GUIX_LOCPATH} variable plays a role similar to @env{LOCPATH} (@pxref{Locale Names, @env{LOCPATH},, libc, The GNU C Library Reference Manual}).  There are two important differences though:"
+msgstr "Die Variable @env{GUIX_LOCPATH} spielt eine ähnliche Rolle wie @env{LOCPATH} (siehe @ref{Locale Names, @env{LOCPATH},, libc, Referenzhandbuch der GNU-C-Bibliothek}). Es gibt jedoch zwei wichtige Unterschiede:"
 
 #. type: enumerate
-#: doc/guix.texi:1615
-msgid "@code{GUIX_LOCPATH} is honored only by the libc in Guix, and not by the libc provided by foreign distros.  Thus, using @code{GUIX_LOCPATH} allows you to make sure the programs of the foreign distro will not end up loading incompatible locale data."
-msgstr "@code{GUIX_LOCPATH} wird nur von der libc in Guix beachtet und nicht der von Fremddistributionen bereitgestellten libc. Mit @code{GUIX_LOCPATH} können Sie daher sicherstellen, dass die Programme der Fremddistribution keine inkompatiblen Locale-Daten von Guix laden."
+#: doc/guix.texi:1720
+msgid "@env{GUIX_LOCPATH} is honored only by the libc in Guix, and not by the libc provided by foreign distros.  Thus, using @env{GUIX_LOCPATH} allows you to make sure the programs of the foreign distro will not end up loading incompatible locale data."
+msgstr "@env{GUIX_LOCPATH} wird nur von der libc in Guix beachtet und nicht der von Fremddistributionen bereitgestellten libc. Mit @env{GUIX_LOCPATH} können Sie daher sicherstellen, dass die Programme der Fremddistribution keine inkompatiblen Locale-Daten von Guix laden."
 
 #. type: enumerate
-#: doc/guix.texi:1622
-msgid "libc suffixes each entry of @code{GUIX_LOCPATH} with @code{/X.Y}, where @code{X.Y} is the libc version---e.g., @code{2.22}.  This means that, should your Guix profile contain a mixture of programs linked against different libc version, each libc version will only try to load locale data in the right format."
-msgstr "libc hängt an jeden @code{GUIX_LOCPATH}-Eintrag @code{/X.Y} an, wobei @code{X.Y} die Version von libc ist — z.B.@: @code{2.22}. Sollte Ihr Guix-Profil eine Mischung aus Programmen enthalten, die an verschiedene libc-Versionen gebunden sind, wird jede nur die Locale-Daten im richtigen Format zu laden versuchen."
+#: doc/guix.texi:1727
+msgid "libc suffixes each entry of @env{GUIX_LOCPATH} with @code{/X.Y}, where @code{X.Y} is the libc version---e.g., @code{2.22}.  This means that, should your Guix profile contain a mixture of programs linked against different libc version, each libc version will only try to load locale data in the right format."
+msgstr "libc hängt an jeden @env{GUIX_LOCPATH}-Eintrag @code{/X.Y} an, wobei @code{X.Y} die Version von libc ist — z.B.@: @code{2.22}. Sollte Ihr Guix-Profil eine Mischung aus Programmen enthalten, die an verschiedene libc-Versionen gebunden sind, wird jede nur die Locale-Daten im richtigen Format zu laden versuchen."
 
 #. type: Plain text
-#: doc/guix.texi:1626
+#: doc/guix.texi:1731
 msgid "This is important because the locale data format used by different libc versions may be incompatible."
 msgstr "Das ist wichtig, weil das Locale-Datenformat verschiedener libc-Versionen inkompatibel sein könnte."
 
 #. type: cindex
-#: doc/guix.texi:1629
+#: doc/guix.texi:1734
 #, no-wrap
 msgid "name service switch, glibc"
 msgstr "Name Service Switch, glibc"
 
 #. type: cindex
-#: doc/guix.texi:1630
+#: doc/guix.texi:1735
 #, no-wrap
 msgid "NSS (name service switch), glibc"
 msgstr "NSS (Name Service Switch), glibc"
 
 #. type: cindex
-#: doc/guix.texi:1631
+#: doc/guix.texi:1736
 #, no-wrap
 msgid "nscd (name service caching daemon)"
 msgstr "nscd (Name Service Caching Daemon)"
 
 #. type: cindex
-#: doc/guix.texi:1632
+#: doc/guix.texi:1737
 #, no-wrap
 msgid "name service caching daemon (nscd)"
 msgstr "Name Service Caching Daemon (nscd)"
 
 #. type: Plain text
-#: doc/guix.texi:1639
+#: doc/guix.texi:1744
 msgid "When using Guix on a foreign distro, we @emph{strongly recommend} that the system run the GNU C library's @dfn{name service cache daemon}, @command{nscd}, which should be listening on the @file{/var/run/nscd/socket} socket.  Failing to do that, applications installed with Guix may fail to look up host names or user accounts, or may even crash.  The next paragraphs explain why."
 msgstr "Wenn Sie Guix auf einer Fremddistribution verwenden, @emph{empfehlen wir stärkstens}, dass Sie den @dfn{Name Service Cache Daemon} der GNU-C-Bibliothek, @command{nscd}, laufen lassen, welcher auf dem Socket @file{/var/run/nscd/socket} lauschen sollte. Wenn Sie das nicht tun, könnten mit Guix installierte Anwendungen Probleme beim Auflösen von Hostnamen (d.h.@: Rechnernamen) oder Benutzerkonten haben, oder sogar abstürzen. Die nächsten Absätze erklären warum."
 
 #. type: file{#1}
-#: doc/guix.texi:1640
+#: doc/guix.texi:1745
 #, no-wrap
 msgid "nsswitch.conf"
 msgstr "nsswitch.conf"
 
 #. type: Plain text
-#: doc/guix.texi:1645
+#: doc/guix.texi:1750
 msgid "The GNU C library implements a @dfn{name service switch} (NSS), which is an extensible mechanism for ``name lookups'' in general: host name resolution, user accounts, and more (@pxref{Name Service Switch,,, libc, The GNU C Library Reference Manual})."
-msgstr "Die GNU-C-Bibliothek implementiert einen @dfn{Name Service Switch} (NSS), welcher einen erweiterbaren Mechanismus zur allgemeinen „Namensauflösung“ darstellt: Hostnamensauflösung, Benutzerkonten und weiteres (siehe @ref{Name Service Switch,,, libc, The GNU C Library Reference Manual})."
+msgstr "Die GNU-C-Bibliothek implementiert einen @dfn{Name Service Switch} (NSS), welcher einen erweiterbaren Mechanismus zur allgemeinen „Namensauflösung“ darstellt: Hostnamensauflösung, Benutzerkonten und weiteres (siehe @ref{Name Service Switch,,, libc, Referenzhandbuch der GNU-C-Bibliothek})."
 
 #. type: cindex
-#: doc/guix.texi:1646
+#: doc/guix.texi:1751
 #, no-wrap
 msgid "Network information service (NIS)"
 msgstr "Network Information Service (NIS)"
 
 #. type: cindex
-#: doc/guix.texi:1647
+#: doc/guix.texi:1752
 #, no-wrap
 msgid "NIS (Network information service)"
 msgstr "NIS (Network Information Service)"
 
 #. type: Plain text
-#: doc/guix.texi:1656
+#: doc/guix.texi:1761
 msgid "Being extensible, the NSS supports @dfn{plugins}, which provide new name lookup implementations: for example, the @code{nss-mdns} plugin allow resolution of @code{.local} host names, the @code{nis} plugin allows user account lookup using the Network information service (NIS), and so on.  These extra ``lookup services'' are configured system-wide in @file{/etc/nsswitch.conf}, and all the programs running on the system honor those settings (@pxref{NSS Configuration File,,, libc, The GNU C Reference Manual})."
-msgstr "Für die Erweiterbarkeit unterstützt der NSS @dfn{Plugins}, welche neue Implementierungen zur Namensauflösung bieten: Zum Beispiel ermöglicht das Plugin @code{nss-mdns} die Namensauflösung für @code{.local}-Hostnamen, das Plugin @code{nis} gestattet die Auflösung von Benutzerkonten über den Network Information Service (NIS) und so weiter. Diese zusätzlichen „Auflösungsdienste“ werden systemweit konfiguriert in @file{/etc/nsswitch.conf} und alle auf dem System laufenden Programme halten sich an diese Einstellungen (siehe @ref{NSS Configuration File,,, libc, The GNU C Reference Manual})."
+msgstr "Für die Erweiterbarkeit unterstützt der NSS @dfn{Plugins}, welche neue Implementierungen zur Namensauflösung bieten: Zum Beispiel ermöglicht das Plugin @code{nss-mdns} die Namensauflösung für @code{.local}-Hostnamen, das Plugin @code{nis} gestattet die Auflösung von Benutzerkonten über den Network Information Service (NIS) und so weiter. Diese zusätzlichen „Auflösungsdienste“ werden systemweit konfiguriert in @file{/etc/nsswitch.conf} und alle auf dem System laufenden Programme halten sich an diese Einstellungen (siehe @ref{NSS Configuration File,,, libc, GNU-C-Referenzhandbuch})."
 
 #. type: Plain text
-#: doc/guix.texi:1666
+#: doc/guix.texi:1771
 msgid "When they perform a name lookup---for instance by calling the @code{getaddrinfo} function in C---applications first try to connect to the nscd; on success, nscd performs name lookups on their behalf.  If the nscd is not running, then they perform the name lookup by themselves, by loading the name lookup services into their own address space and running it.  These name lookup services---the @file{libnss_*.so} files---are @code{dlopen}'d, but they may come from the host system's C library, rather than from the C library the application is linked against (the C library coming from Guix)."
-msgstr "Wenn sie eine Namensauflösung durchführen — zum Beispiel, indem sie die @code{getaddrinfo}-Funktion in C aufrufen — versuchen die Anwendungen als Erstes, sich mit dem nscd zu verbinden; ist dies erfolgreich, führt nscd für sie die weiteren Namensauflösungen durch. Falls nscd nicht läuft, führen sie selbst die Namensauflösungen durch, indem sie die Namensauflösungsdienste in ihren eigenen Adressraum laden und ausführen. Diese Namensauflösungsdienste — die @file{libnss_*.so}-Dateien — werden mit @code{dlopen} geladen, aber sie kommen von der C-Bibliothek des Wirtssystems und nicht von der C-Bibliothek, an die die Anwendung gebunden wurde (also der C-Bibliothek von Guix)."
+msgstr "Wenn sie eine Namensauflösung durchführen — zum Beispiel, indem sie die @code{getaddrinfo}-Funktion in C aufrufen —, versuchen die Anwendungen als Erstes, sich mit dem nscd zu verbinden; ist dies erfolgreich, führt nscd für sie die weiteren Namensauflösungen durch. Falls nscd nicht läuft, führen sie selbst die Namensauflösungen durch, indem sie die Namensauflösungsdienste in ihren eigenen Adressraum laden und ausführen. Diese Namensauflösungsdienste — die @file{libnss_*.so}-Dateien — werden mit @code{dlopen} geladen, aber sie kommen von der C-Bibliothek des Wirtssystems und nicht von der C-Bibliothek, an die die Anwendung gebunden wurde (also der C-Bibliothek von Guix)."
 
 #. type: Plain text
-#: doc/guix.texi:1671
+#: doc/guix.texi:1776
 msgid "And this is where the problem is: if your application is linked against Guix's C library (say, glibc 2.24) and tries to load NSS plugins from another C library (say, @code{libnss_mdns.so} for glibc 2.22), it will likely crash or have its name lookups fail unexpectedly."
 msgstr "Und hier kommt es zum Problem: Wenn die Anwendung an die C-Bibliothek von Guix (etwa glibc 2.24) gebunden wurde und die NSS-Plugins von einer anderen C-Bibliothek (etwa @code{libnss_mdns.so} für glibc 2.22) zu laden versucht, wird sie vermutlich abstürzen oder die Namensauflösungen werden unerwartet fehlschlagen."
 
 #. type: Plain text
-#: doc/guix.texi:1676
+#: doc/guix.texi:1781
 msgid "Running @command{nscd} on the system, among other advantages, eliminates this binary incompatibility problem because those @code{libnss_*.so} files are loaded in the @command{nscd} process, not in applications themselves."
 msgstr "Durch das Ausführen von @command{nscd} auf dem System wird, neben anderen Vorteilen, dieses Problem der binären Inkompatibilität vermieden, weil diese @code{libnss_*.so}-Dateien vom @command{nscd}-Prozess geladen werden, nicht in den Anwendungen selbst."
 
 #. type: subsection
-#: doc/guix.texi:1677
+#: doc/guix.texi:1782
 #, no-wrap
 msgid "X11 Fonts"
 msgstr "X11-Schriftarten"
 
 #. type: Plain text
-#: doc/guix.texi:1687
-msgid "The majority of graphical applications use Fontconfig to locate and load fonts and perform X11-client-side rendering.  The @code{fontconfig} package in Guix looks for fonts in @file{$HOME/.guix-profile} by default.  Thus, to allow graphical applications installed with Guix to display fonts, you have to install fonts with Guix as well.  Essential font packages include @code{gs-fonts}, @code{font-dejavu}, and @code{font-gnu-freefont-ttf}."
-msgstr "Die Mehrheit der grafischen Anwendungen benutzen Fontconfig zum Finden und Laden von Schriftarten und für die Darstellung im X11-Client. Im Paket @code{fontconfig} in Guix werden Schriftarten standardmäßig in @file{$HOME/.guix-profile} gesucht. Um es grafischen Anwendungen, die mit Guix installiert wurden, zu ermöglichen, Schriftarten anzuzeigen, müssen Sie die Schriftarten auch mit Guix installieren. Essenzielle Pakete für Schriftarten sind unter anderem @code{gs-fonts}, @code{font-dejavu} und @code{font-gnu-freefont-ttf}."
+#: doc/guix.texi:1792
+msgid "The majority of graphical applications use Fontconfig to locate and load fonts and perform X11-client-side rendering.  The @code{fontconfig} package in Guix looks for fonts in @file{$HOME/.guix-profile} by default.  Thus, to allow graphical applications installed with Guix to display fonts, you have to install fonts with Guix as well.  Essential font packages include @code{gs-fonts}, @code{font-dejavu}, and @code{font-gnu-freefont}."
+msgstr "Die Mehrheit der grafischen Anwendungen benutzen Fontconfig zum Finden und Laden von Schriftarten und für die Darstellung im X11-Client. Im Paket @code{fontconfig} in Guix werden Schriftarten standardmäßig in @file{$HOME/.guix-profile} gesucht. Um es grafischen Anwendungen, die mit Guix installiert wurden, zu ermöglichen, Schriftarten anzuzeigen, müssen Sie die Schriftarten auch mit Guix installieren. Essenzielle Pakete für Schriftarten sind unter anderem @code{gs-fonts}, @code{font-dejavu} und @code{font-gnu-freefont}."
 
 #. type: code{#1}
-#: doc/guix.texi:1688
+#: doc/guix.texi:1793
 #, no-wrap
 msgid "fc-cache"
 msgstr "fc-cache"
 
 #. type: cindex
-#: doc/guix.texi:1689
+#: doc/guix.texi:1794
 #, no-wrap
 msgid "font cache"
 msgstr "Font-Cache"
 
 #. type: Plain text
-#: doc/guix.texi:1693
+#: doc/guix.texi:1798
 msgid "Once you have installed or removed fonts, or when you notice an application that does not find fonts, you may need to install Fontconfig and to force an update of its font cache by running:"
 msgstr "Sobald Sie Schriftarten installiert oder wieder entfernt haben oder wenn Ihnen auffällt, dass eine Anwendung Schriftarten nicht finden kann, dann müssen Sie vielleicht Fontconfig installieren und den folgenden Befehl ausführen, damit dessen Zwischenspeicher für Schriftarten aktualisiert wird:"
 
 #. type: example
-#: doc/guix.texi:1697
+#: doc/guix.texi:1802
 #, no-wrap
 msgid ""
 "guix install fontconfig\n"
@@ -5636,593 +6164,565 @@ msgstr ""
 "fc-cache -rv\n"
 
 #. type: Plain text
-#: doc/guix.texi:1705
+#: doc/guix.texi:1810
 msgid "To display text written in Chinese languages, Japanese, or Korean in graphical applications, consider installing @code{font-adobe-source-han-sans} or @code{font-wqy-zenhei}.  The former has multiple outputs, one per language family (@pxref{Packages with Multiple Outputs}).  For instance, the following command installs fonts for Chinese languages:"
 msgstr "Um auf Chinesisch, Japanisch oder Koreanisch verfassten Text in grafischen Anwendungen anzeigen zu können, möchten Sie vielleicht @code{font-adobe-source-han-sans} oder @code{font-wqy-zenhei} installieren. Ersteres hat mehrere Ausgaben, für jede Sprachfamilie eine (siehe @ref{Packages with Multiple Outputs}). Zum Beispiel installiert folgender Befehl Schriftarten für chinesische Sprachen:"
 
 #. type: example
-#: doc/guix.texi:1708
+#: doc/guix.texi:1813
 #, no-wrap
 msgid "guix install font-adobe-source-han-sans:cn\n"
 msgstr "guix install font-adobe-source-han-sans:cn\n"
 
 #. type: code{#1}
-#: doc/guix.texi:1710
+#: doc/guix.texi:1815
 #, no-wrap
 msgid "xterm"
 msgstr "xterm"
 
 #. type: Plain text
-#: doc/guix.texi:1714
+#: doc/guix.texi:1819
 msgid "Older programs such as @command{xterm} do not use Fontconfig and instead rely on server-side font rendering.  Such programs require to specify a full name of a font using XLFD (X Logical Font Description), like this:"
 msgstr "Ältere Programme wie @command{xterm} benutzen kein Fontconfig, sondern X-Server-seitige Schriftartendarstellung. Solche Programme setzen voraus, dass der volle Name einer Schriftart mit XLFD (X Logical Font Description) angegeben wird, z.B.@: so:"
 
 #. type: example
-#: doc/guix.texi:1717
+#: doc/guix.texi:1822
 #, no-wrap
 msgid "-*-dejavu sans-medium-r-normal-*-*-100-*-*-*-*-*-1\n"
 msgstr "-*-dejavu sans-medium-r-normal-*-*-100-*-*-*-*-*-1\n"
 
 #. type: Plain text
-#: doc/guix.texi:1721
+#: doc/guix.texi:1826
 msgid "To be able to use such full names for the TrueType fonts installed in your Guix profile, you need to extend the font path of the X server:"
 msgstr "Um solche vollen Namen für die in Ihrem Guix-Profil installierten TrueType-Schriftarten zu verwenden, müssen Sie den Pfad für Schriftarten (Font Path) des X-Servers anpassen:"
 
 #. type: example
-#: doc/guix.texi:1726
+#: doc/guix.texi:1831
 #, no-wrap
 msgid "xset +fp $(dirname $(readlink -f ~/.guix-profile/share/fonts/truetype/fonts.dir))\n"
 msgstr "xset +fp $(dirname $(readlink -f ~/.guix-profile/share/fonts/truetype/fonts.dir))\n"
 
 #. type: code{#1}
-#: doc/guix.texi:1728
+#: doc/guix.texi:1833
 #, no-wrap
 msgid "xlsfonts"
 msgstr "xlsfonts"
 
 #. type: Plain text
-#: doc/guix.texi:1731
+#: doc/guix.texi:1836
 msgid "After that, you can run @code{xlsfonts} (from @code{xlsfonts} package)  to make sure your TrueType fonts are listed there."
 msgstr "Danach können Sie den Befehl @code{xlsfonts} ausführen (aus dem Paket @code{xlsfonts}), um sicherzustellen, dass dort Ihre TrueType-Schriftarten aufgeführt sind."
 
 #. type: code{#1}
-#: doc/guix.texi:1735 doc/guix.texi:25926
+#: doc/guix.texi:1840 doc/guix.texi:29968
 #, no-wrap
 msgid "nss-certs"
 msgstr "nss-certs"
 
 #. type: Plain text
-#: doc/guix.texi:1738
+#: doc/guix.texi:1843
 msgid "The @code{nss-certs} package provides X.509 certificates, which allow programs to authenticate Web servers accessed over HTTPS."
 msgstr "Das Paket @code{nss-certs} bietet X.509-Zertifikate, womit Programme die Identität von Web-Servern authentifizieren können, auf die über HTTPS zugegriffen wird."
 
 #. type: Plain text
-#: doc/guix.texi:1743
+#: doc/guix.texi:1848
 msgid "When using Guix on a foreign distro, you can install this package and define the relevant environment variables so that packages know where to look for certificates.  @xref{X.509 Certificates}, for detailed information."
 msgstr "Wenn Sie Guix auf einer Fremddistribution verwenden, können Sie dieses Paket installieren und die relevanten Umgebungsvariablen festlegen, damit Pakete wissen, wo sie Zertifikate finden. Unter @ref{X.509 Certificates} stehen genaue Informationen."
 
 #. type: subsection
-#: doc/guix.texi:1744
+#: doc/guix.texi:1849
 #, no-wrap
 msgid "Emacs Packages"
 msgstr "Emacs-Pakete"
 
 #. type: code{#1}
-#: doc/guix.texi:1746
+#: doc/guix.texi:1851
 #, no-wrap
 msgid "emacs"
 msgstr "emacs"
 
 #. type: Plain text
-#: doc/guix.texi:1752
-msgid "When you install Emacs packages with Guix, the Elisp files are placed under the @file{share/emacs/site-lisp/} directory of the profile in which they are installed.  The Elisp libraries are made available to Emacs through the @code{EMACSLOADPATH} environment variable, which is set when installing Emacs itself."
-msgstr "Wenn Sie Emacs-Pakete mit Guix installieren, werden die Elisp-Dateien innerhalb des Verzeichnisses @file{share/emacs/site-lisp/} in demjenigen Profil platziert, wohin sie installiert werden. Die Elisp-Bibliotheken werden in Emacs über die @code{EMACSLOADPATH}-Umgebungsvariable verfügbar gemacht, die durch die Installation von Emacs eingerichtet wird."
-
-#. type: Plain text
-#: doc/guix.texi:1759
-msgid "Additionally, autoload definitions are automatically evaluated at the initialization of Emacs, by the Guix-specific @code{guix-emacs-autoload-packages} procedure.  If, for some reason, you want to avoid auto-loading the Emacs packages installed with Guix, you can do so by running Emacs with the @code{--no-site-file} option (@pxref{Init File,,, emacs, The GNU Emacs Manual})."
-msgstr "Bei der Initialisierung von Emacs werden „Autoload“-Definitionen automatisch über die Guix-spezifische Prozedur @code{guix-emacs-autoload-packages} ausgewertet. Wenn Sie aber aus irgendeinem Grund die mit Guix installierten Pakete nicht automatisch laden lassen möchten, können Sie Emacs mit der Befehlszeilenoption @code{--no-site-file} starten (siehe @ref{Init File,,, emacs, The GNU Emacs Manual})."
-
-#. type: subsection
-#: doc/guix.texi:1760
-#, no-wrap
-msgid "The GCC toolchain"
-msgstr "GCC-Toolchain"
-
-#. type: cindex
-#: doc/guix.texi:1762
-#, no-wrap
-msgid "GCC"
-msgstr "GCC"
-
-#. type: cindex
-#: doc/guix.texi:1763
-#, no-wrap
-msgid "ld-wrapper"
-msgstr "ld-wrapper"
-
-#. type: Plain text
-#: doc/guix.texi:1772
-msgid "Guix offers individual compiler packages such as @code{gcc} but if you are in need of a complete toolchain for compiling and linking source code what you really want is the @code{gcc-toolchain} package.  This package provides a complete GCC toolchain for C/C++ development, including GCC itself, the GNU C Library (headers and binaries, plus debugging symbols in the @code{debug} output), Binutils, and a linker wrapper."
-msgstr "Guix bietet individuelle Compiler-Pakete wie etwa @code{gcc}, aber wenn Sie einen vollständigen Satz an Werkzeugen zum Kompilieren und Binden von Quellcode brauchen, werden Sie eigentlich das Paket @code{gcc-toolchain} haben wollen. Das Paket bietet eine vollständige GCC-Toolchain für die Entwicklung mit C/C++, einschließlich GCC selbst, der GNU-C-Bibliothek (Header-Dateien und Binärdateien samt Symbolen zur Fehlersuche/Debugging in der @code{debug}-Ausgabe), Binutils und einen Wrapper für den Binder/Linker."
+#: doc/guix.texi:1857
+msgid "When you install Emacs packages with Guix, the Elisp files are placed under the @file{share/emacs/site-lisp/} directory of the profile in which they are installed.  The Elisp libraries are made available to Emacs through the @env{EMACSLOADPATH} environment variable, which is set when installing Emacs itself."
+msgstr "Wenn Sie Emacs-Pakete mit Guix installieren, werden die Elisp-Dateien innerhalb des Verzeichnisses @file{share/emacs/site-lisp/} in demjenigen Profil platziert, wohin sie installiert werden. Die Elisp-Bibliotheken werden in Emacs über die @env{EMACSLOADPATH}-Umgebungsvariable verfügbar gemacht, die durch die Installation von Emacs eingerichtet wird."
 
 #. type: Plain text
-#: doc/guix.texi:1778
-msgid "The wrapper's purpose is to inspect the @code{-L} and @code{-l} switches passed to the linker, add corresponding @code{-rpath} arguments, and invoke the actual linker with this new set of arguments.  You can instruct the wrapper to refuse to link against libraries not in the store by setting the @code{GUIX_LD_WRAPPER_ALLOW_IMPURITIES} environment variable to @code{no}."
-msgstr "Der Zweck des Wrappers ist, die an den Binder übergebenen Befehlszeilenoptionen mit @code{-L} und @code{-l} zu überprüfen und jeweils passende Argumente mit @code{-rpath} anzufügen, womit dann der echte Binder aufgerufen wird. Standardmäßig weigert sich der Binder-Wrapper, mit Bibliotheken außerhalb des Stores zu binden, um „Reinheit“ zu gewährleisten. Das kann aber stören, wenn man die Toolchain benutzt, um mit lokalen Bibliotheken zu binden. Um Referenzen auf Bibliotheken außerhalb des Stores zu erlauben, müssen Sie die Umgebungsvariable @code{GUIX_LD_WRAPPER_ALLOW_IMPURITIES} setzen."
+#: doc/guix.texi:1864
+msgid "Additionally, autoload definitions are automatically evaluated at the initialization of Emacs, by the Guix-specific @code{guix-emacs-autoload-packages} procedure.  If, for some reason, you want to avoid auto-loading the Emacs packages installed with Guix, you can do so by running Emacs with the @option{--no-site-file} option (@pxref{Init File,,, emacs, The GNU Emacs Manual})."
+msgstr "Bei der Initialisierung von Emacs werden „Autoload“-Definitionen automatisch über die Guix-spezifische Prozedur @code{guix-emacs-autoload-packages} ausgewertet. Wenn Sie aber aus irgendeinem Grund die mit Guix installierten Pakete nicht automatisch laden lassen möchten, können Sie Emacs mit der Befehlszeilenoption @option{--no-site-file} starten (siehe @ref{Init File,,, emacs, The GNU Emacs Manual})."
 
 #. type: cindex
-#: doc/guix.texi:1782
+#: doc/guix.texi:1869
 #, no-wrap
 msgid "Upgrading Guix, on a foreign distro"
 msgstr "Aktualisieren von Guix, auf einer Fremddistribution"
 
 #. type: Plain text
-#: doc/guix.texi:1785
+#: doc/guix.texi:1872
 msgid "To upgrade Guix, run:"
 msgstr "Um Guix zu aktualisieren, führen Sie aus:"
 
 #. type: example
-#: doc/guix.texi:1788
+#: doc/guix.texi:1875 doc/guix.texi:2745
 #, no-wrap
 msgid "guix pull\n"
 msgstr "guix pull\n"
 
 #. type: Plain text
-#: doc/guix.texi:1791
+#: doc/guix.texi:1878
 msgid "@xref{Invoking guix pull}, for more information."
 msgstr "Siehe @ref{Invoking guix pull} für weitere Informationen."
 
 #. type: cindex
-#: doc/guix.texi:1792
+#: doc/guix.texi:1879
 #, no-wrap
 msgid "upgrading Guix for the root user, on a foreign distro"
 msgstr "Aktualisieren von Guix für den root-Administratornutzer, auf einer Fremddistribution"
 
 #. type: cindex
-#: doc/guix.texi:1793
+#: doc/guix.texi:1880
 #, no-wrap
 msgid "upgrading the Guix daemon, on a foreign distro"
 msgstr "Aktualisieren des Guix-Daemon, auf einer Fremddistribution"
 
 #. type: cindex
-#: doc/guix.texi:1794
+#: doc/guix.texi:1881
 #, no-wrap
 msgid "@command{guix pull} for the root user, on a foreign distro"
 msgstr "@command{guix pull} für den root-Administratornutzer, auf einer Fremddistribution"
 
 #. type: Plain text
-#: doc/guix.texi:1797
+#: doc/guix.texi:1884
 msgid "On a foreign distro, you can upgrade the build daemon by running:"
 msgstr "Auf einer Fremddistribution können Sie den Erstellungsdaemon aktualisieren, indem Sie diesen Befehl:"
 
 #. type: example
-#: doc/guix.texi:1800
+#: doc/guix.texi:1887
 #, no-wrap
 msgid "sudo -i guix pull\n"
 msgstr "sudo -i guix pull\n"
 
 #. type: Plain text
-#: doc/guix.texi:1805
+#: doc/guix.texi:1892
 msgid "followed by (assuming your distro uses the systemd service management tool):"
 msgstr "gefolgt von diesem  ausführen (unter der Annahme, dass Ihre Distribution zur Dienstverwaltung das systemd-Werkzeug benutzt):"
 
 #. type: example
-#: doc/guix.texi:1808
+#: doc/guix.texi:1895
 #, no-wrap
 msgid "systemctl restart guix-daemon.service\n"
 msgstr "systemctl restart guix-daemon.service\n"
 
 #. type: Plain text
-#: doc/guix.texi:1812
+#: doc/guix.texi:1899
 msgid "On Guix System, upgrading the daemon is achieved by reconfiguring the system (@pxref{Invoking guix system, @code{guix system reconfigure}})."
 msgstr "Auf Guix System wird der Daemon aktualisiert, indem Sie das System rekonfigurieren (siehe @ref{Invoking guix system, @code{guix system reconfigure}})."
 
 #. type: cindex
-#: doc/guix.texi:1819
+#: doc/guix.texi:1906
 #, no-wrap
 msgid "installing Guix System"
 msgstr "Installieren von Guix System"
 
 #. type: cindex
-#: doc/guix.texi:1820
+#: doc/guix.texi:1907
 #, no-wrap
 msgid "Guix System, installation"
 msgstr "Guix System, Installation"
 
 #. type: Plain text
-#: doc/guix.texi:1825
+#: doc/guix.texi:1912
 msgid "This section explains how to install Guix System on a machine.  Guix, as a package manager, can also be installed on top of a running GNU/Linux system, @pxref{Installation}."
 msgstr "Dieser Abschnitt beschreibt, wie Sie „Guix System“ auf einer Maschine installieren. Guix kann auch als Paketverwaltungswerkzeug ein bestehendes GNU/Linux-System ergänzen, mehr dazu finden Sie im Abschnitt @ref{Installation}."
 
 #. type: quotation
-#: doc/guix.texi:1834
+#: doc/guix.texi:1921
 msgid "You are reading this documentation with an Info reader.  For details on how to use it, hit the @key{RET} key (``return'' or ``enter'') on the link that follows: @pxref{Top, Info reader,, info-stnd, Stand-alone GNU Info}.  Hit @kbd{l} afterwards to come back here."
-msgstr "Sie lesen diese Dokumentation mit einem Info-Betrachter. Details, wie Sie ihn bedienen, erfahren Sie, indem Sie die Eingabetaste (auch „Return“ oder „Enter“ genannt) auf folgender Verknüpfung drücken: @ref{Top, Info reader,, info-stnd, Stand-alone GNU Info}. Drücken Sie danach @kbd{l}, um hierher zurückzukommen."
+msgstr "Sie lesen diese Dokumentation mit einem Info-Betrachter. Details, wie Sie ihn bedienen, erfahren Sie, indem Sie die Eingabetaste (auch „Return“ oder „Enter“ genannt) auf folgender Verknüpfung drücken: @ref{Top, Info-Betrachter,, info-stnd, Stand-alone GNU Info}. Drücken Sie danach @kbd{l}, um hierher zurückzukommen."
 
 #. type: quotation
-#: doc/guix.texi:1837
-msgid "Alternately, run @command{info info} in another tty to keep the manual available."
+#: doc/guix.texi:1924
+msgid "Alternatively, run @command{info info} in another tty to keep the manual available."
 msgstr "Führen Sie alternativ @command{info info} auf einer anderen Konsole (tty) aus, um dieses Handbuch offen zu lassen."
 
 #. type: Plain text
-#: doc/guix.texi:1858
+#: doc/guix.texi:1945
 msgid "We consider Guix System to be ready for a wide range of ``desktop'' and server use cases.  The reliability guarantees it provides---transactional upgrades and rollbacks, reproducibility---make it a solid foundation."
 msgstr "Wir denken, dass Guix System für viele Anwendungszwecke von Heim- und Bürorechnern bis hin zu Servern geeignet ist. Die Verlässlichkeitsgarantien, die es einem bietet — transaktionelle Aktualisierungen und Rücksetzungen, Reproduzierbarkeit — machen es zu einer soliden Grundlage."
 
 #. type: Plain text
-#: doc/guix.texi:1861
+#: doc/guix.texi:1948
 msgid "Nevertheless, before you proceed with the installation, be aware of the following noteworthy limitations applicable to version @value{VERSION}:"
 msgstr "Bevor Sie mit der Installation fortfahren, sollten Sie dennoch die folgenden merklichen Einschränkungen der Version @value{VERSION} beachten:"
 
 #. type: itemize
-#: doc/guix.texi:1865
+#: doc/guix.texi:1952
 msgid "Support for the Logical Volume Manager (LVM) is missing."
 msgstr "Der Logical Volume Manager (LVM) wird nicht unterstützt."
 
 #. type: itemize
-#: doc/guix.texi:1869
+#: doc/guix.texi:1956
 msgid "More and more system services are provided (@pxref{Services}), but some may be missing."
 msgstr "Immer mehr Systemdienste sind verfügbar (siehe @ref{Services}), aber manche könnten noch fehlen."
 
 #. type: itemize
-#: doc/guix.texi:1874
+#: doc/guix.texi:1961
 msgid "GNOME, Xfce, LXDE, and Enlightenment are available (@pxref{Desktop Services}), as well as a number of X11 window managers.  However, KDE is currently missing."
-msgstr "GNOME, Xfce, LXDE und Enlightenment stehen zur Verfügung (siehe @ref{Desktop Services}), ebenso eine Reihe von X11-Fensterverwaltungsprogrammen, allerdings fehlt KDE zur Zeit noch."
+msgstr "GNOME, Xfce, LXDE und Enlightenment stehen zur Verfügung (siehe @ref{Desktop Services}), ebenso eine Reihe von X11-Fensterverwaltungsprogrammen, allerdings fehlt KDE zurzeit noch."
 
 #. type: Plain text
-#: doc/guix.texi:1879
+#: doc/guix.texi:1966
 msgid "More than a disclaimer, this is an invitation to report issues (and success stories!), and to join us in improving it.  @xref{Contributing}, for more info."
 msgstr "Dies soll allerdings nicht nur ein Hinweis sein, sondern auch als Einladung aufgefasst werden, uns Fehler (und Erfolgsgeschichten!) zu melden und bei uns mitzumachen, um Guix zu verbessern. Siehe den Abschnitt @ref{Contributing}."
 
 #. type: cindex
-#: doc/guix.texi:1884
+#: doc/guix.texi:1971
 #, no-wrap
 msgid "hardware support on Guix System"
 msgstr "Hardwareunterstützung von Guix System"
 
 #. type: Plain text
-#: doc/guix.texi:1893
+#: doc/guix.texi:1980
 msgid "GNU@tie{}Guix focuses on respecting the user's computing freedom.  It builds around the kernel Linux-libre, which means that only hardware for which free software drivers and firmware exist is supported.  Nowadays, a wide range of off-the-shelf hardware is supported on GNU/Linux-libre---from keyboards to graphics cards to scanners and Ethernet controllers.  Unfortunately, there are still areas where hardware vendors deny users control over their own computing, and such hardware is not supported on Guix System."
 msgstr "GNU@tie{}Guix legt den Fokus darauf, die Freiheit des Nutzers auf seinem Rechner zu respektieren. Es baut auf Linux-libre als Kernel auf, wodurch nur Hardware unterstützt wird, für die Treiber und Firmware existieren, die freie Software sind. Heutzutage wird ein großer Teil der handelsüblichen Hardware von GNU/Linux-libre unterstützt — von Tastaturen bis hin zu Grafikkarten, Scannern und Ethernet-Adaptern. Leider gibt es noch Bereiche, wo die Hardwareanbieter ihren Nutzern die Kontrolle über ihren eigenen Rechner verweigern. Solche Hardware wird von Guix System nicht unterstützt."
 
 #. type: cindex
-#: doc/guix.texi:1894
+#: doc/guix.texi:1981
 #, no-wrap
 msgid "WiFi, hardware support"
 msgstr "WLAN, Hardware-Unterstützung"
 
 #. type: Plain text
-#: doc/guix.texi:1903
+#: doc/guix.texi:1990
 msgid "One of the main areas where free drivers or firmware are lacking is WiFi devices.  WiFi devices known to work include those using Atheros chips (AR9271 and AR7010), which corresponds to the @code{ath9k} Linux-libre driver, and those using Broadcom/AirForce chips (BCM43xx with Wireless-Core Revision 5), which corresponds to the @code{b43-open} Linux-libre driver.  Free firmware exists for both and is available out-of-the-box on Guix System, as part of @code{%base-firmware} (@pxref{operating-system Reference, @code{firmware}})."
 msgstr "Einer der wichtigsten Bereiche, wo es an freien Treibern und freier Firmware mangelt, sind WLAN-Geräte. WLAN-Geräte, von denen wir wissen, dass sie funktionieren, sind unter anderem solche, die die Atheros-Chips AR9271 und AR7010 verbauen, welche der Linux-libre-Treiber @code{ath9k} unterstützt, und die, die Broadcom/AirForce-Chips BCM43xx (mit Wireless-Core Revision 5) verbauen, welche der Linux-libre-Treiber @code{b43-open} unterstützt. Freie Firmware gibt es für beide und sie wird von Haus aus mit Guix System als ein Teil von @code{%base-firmware} mitgeliefert (siehe @ref{operating-system Reference, @code{firmware}})."
 
 #. type: cindex
-#: doc/guix.texi:1904
+#: doc/guix.texi:1991
 #, no-wrap
 msgid "RYF, Respects Your Freedom"
 msgstr "RYF, Respects Your Freedom"
 
 #. type: Plain text
-#: doc/guix.texi:1910
+#: doc/guix.texi:1997
 msgid "The @uref{https://www.fsf.org/, Free Software Foundation} runs @uref{https://www.fsf.org/ryf, @dfn{Respects Your Freedom}} (RYF), a certification program for hardware products that respect your freedom and your privacy and ensure that you have control over your device.  We encourage you to check the list of RYF-certified devices."
 msgstr "Die @uref{https://www.fsf.org/, Free Software Foundation} betreibt @uref{https://www.fsf.org/ryf, @dfn{Respects Your Freedom}} (RYF), ein Zertifizierungsprogramm für Hardware-Produkte, die Ihre Freiheit respektieren, Datenschutz gewährleisten und sicherstellen, dass Sie die Kontrolle über Ihr Gerät haben. Wir ermutigen Sie dazu, die Liste RYF-zertifizierter Geräte zu beachten."
 
 #. type: Plain text
-#: doc/guix.texi:1914
+#: doc/guix.texi:2001
 msgid "Another useful resource is the @uref{https://www.h-node.org/, H-Node} web site.  It contains a catalog of hardware devices with information about their support in GNU/Linux."
 msgstr "Eine weitere nützliche Ressource ist die Website @uref{https://h-node.org/home/index/de, H-Node}. Dort steht ein Katalog von Hardware-Geräten mit Informationen darüber, wie gut sie von GNU/Linux unterstützt werden."
 
 #. type: Plain text
-#: doc/guix.texi:1923
-msgid "An ISO-9660 installation image that can be written to a USB stick or burnt to a DVD can be downloaded from @indicateurl{@value{BASE-URL}/guix-system-install-@value{VERSION}.@var{system}.iso.xz}, where @var{system} is one of:"
-msgstr "Sie können ein ISO-9660-Installationsabbild von @indicateurl{@value{BASE-URL}/guix-system-install-@value{VERSION}.@var{System}.iso.xz} herunterladen, dass Sie auf einen USB-Stick aufspielen oder auf eine DVD brennen können, wobei Sie für @var{System} eines der folgenden schreiben müssen:"
+#: doc/guix.texi:2010
+msgid "An ISO-9660 installation image that can be written to a USB stick or burnt to a DVD can be downloaded from @indicateurl{@value{BASE-URL}/guix-system-install-@value{VERSION}.x86_64-linux.iso.xz}, where you can replace @code{x86_64-linux} with one of:"
+msgstr "Sie können ein ISO-9660-Installationsabbild von @indicateurl{@value{BASE-URL}/guix-system-install-@value{VERSION}.x86_64-linux.iso.xz} herunterladen, dass Sie auf einen USB-Stick aufspielen oder auf eine DVD brennen können, wobei Sie an Stelle von @code{x86_64-linux} eines der folgenden schreiben können:"
 
 #. type: table
-#: doc/guix.texi:1927
+#: doc/guix.texi:2014
 msgid "for a GNU/Linux system on Intel/AMD-compatible 64-bit CPUs;"
 msgstr "für ein GNU/Linux-System auf Intel/AMD-kompatiblen 64-Bit-Prozessoren,"
 
 #. type: table
-#: doc/guix.texi:1930
+#: doc/guix.texi:2017
 msgid "for a 32-bit GNU/Linux system on Intel-compatible CPUs."
 msgstr "für ein 32-Bit-GNU/Linux-System auf Intel-kompatiblen Prozessoren."
 
 #. type: Plain text
-#: doc/guix.texi:1935
+#: doc/guix.texi:2022
 msgid "Make sure to download the associated @file{.sig} file and to verify the authenticity of the image against it, along these lines:"
 msgstr "Laden Sie auch die entsprechende @file{.sig}-Datei herunter und verifizieren Sie damit die Authentizität Ihres Abbilds, indem Sie diese Befehle eingeben:"
 
 #. type: example
-#: doc/guix.texi:1939
+#: doc/guix.texi:2026
 #, no-wrap
 msgid ""
-"$ wget @value{BASE-URL}/guix-system-install-@value{VERSION}.@var{system}.iso.xz.sig\n"
-"$ gpg --verify guix-system-install-@value{VERSION}.@var{system}.iso.xz.sig\n"
+"$ wget @value{BASE-URL}/guix-system-install-@value{VERSION}.x86_64-linux.iso.xz.sig\n"
+"$ gpg --verify guix-system-install-@value{VERSION}.x86_64-linux.iso.xz.sig\n"
 msgstr ""
-"$ wget @value{BASE-URL}/guix-system-install-@value{VERSION}.@var{System}.iso.xz.sig\n"
-"$ gpg --verify guix-system-install-@value{VERSION}.@var{System}.iso.xz.sig\n"
+"$ wget @value{BASE-URL}/guix-system-install-@value{VERSION}.x86_64-linux.iso.xz.sig\n"
+"$ gpg --verify guix-system-install-@value{VERSION}.x86_64-linux.iso.xz.sig\n"
 
 #. type: Plain text
-#: doc/guix.texi:1959
+#: doc/guix.texi:2046
 msgid "This image contains the tools necessary for an installation.  It is meant to be copied @emph{as is} to a large-enough USB stick or DVD."
 msgstr "Dieses Abbild enthält die Werkzeuge, die Sie zur Installation brauchen. Es ist dafür gedacht,  @emph{so wie es ist} auf einen hinreichend großen USB-Stick oder eine DVD kopiert zu werden."
 
 #. type: unnumberedsubsec
-#: doc/guix.texi:1960
+#: doc/guix.texi:2047
 #, no-wrap
 msgid "Copying to a USB Stick"
 msgstr "Kopieren auf einen USB-Stick"
 
 #. type: Plain text
-#: doc/guix.texi:1963
+#: doc/guix.texi:2050
 msgid "To copy the image to a USB stick, follow these steps:"
 msgstr "Um das Abbild auf einen USB-Stick zu kopieren, führen Sie folgende Schritte durch:"
 
 #. type: enumerate
-#: doc/guix.texi:1967 doc/guix.texi:1992
+#: doc/guix.texi:2054 doc/guix.texi:2079
 msgid "Decompress the image using the @command{xz} command:"
 msgstr "Entpacken Sie das Abbild mit dem @command{xz}-Befehl:"
 
 #. type: example
-#: doc/guix.texi:1970 doc/guix.texi:1995
+#: doc/guix.texi:2057 doc/guix.texi:2082
 #, no-wrap
-msgid "xz -d guix-system-install-@value{VERSION}.@var{system}.iso.xz\n"
-msgstr "xz -d guix-system-install-@value{VERSION}.@var{System}.iso.xz\n"
+msgid "xz -d guix-system-install-@value{VERSION}.x86_64-linux.iso.xz\n"
+msgstr "xz -d guix-system-install-@value{VERSION}.x86_64-linux.iso.xz\n"
 
 #. type: enumerate
-#: doc/guix.texi:1976
+#: doc/guix.texi:2063
 msgid "Insert a USB stick of 1@tie{}GiB or more into your machine, and determine its device name.  Assuming that the USB stick is known as @file{/dev/sdX}, copy the image with:"
 msgstr "Stecken Sie einen USB-Stick in Ihren Rechner ein, der mindestens 1@tie{}GiB groß ist, und bestimmen Sie seinen Gerätenamen. Ist der Gerätename des USB-Sticks @file{/dev/sdX}, dann kopieren Sie das Abbild mit dem Befehl:"
 
 #. type: example
-#: doc/guix.texi:1980
+#: doc/guix.texi:2067
 #, no-wrap
 msgid ""
-"dd if=guix-system-install-@value{VERSION}.@var{system}.iso of=/dev/sdX\n"
+"dd if=guix-system-install-@value{VERSION}.x86_64-linux.iso of=/dev/sdX status=progress\n"
 "sync\n"
 msgstr ""
-"dd if=guix-system-install-@value{VERSION}.@var{System}.iso of=/dev/sdX\n"
+"dd if=guix-system-install-@value{VERSION}.x86_64-linux.iso of=/dev/sdX status=progress\n"
 "sync\n"
 
 #. type: enumerate
-#: doc/guix.texi:1983
+#: doc/guix.texi:2070
 msgid "Access to @file{/dev/sdX} usually requires root privileges."
 msgstr "Sie benötigen in der Regel Administratorrechte, um auf @file{/dev/sdX} zuzugreifen."
 
 #. type: unnumberedsubsec
-#: doc/guix.texi:1985
+#: doc/guix.texi:2072
 #, no-wrap
 msgid "Burning on a DVD"
 msgstr "Auf eine DVD brennen"
 
 #. type: Plain text
-#: doc/guix.texi:1988
+#: doc/guix.texi:2075
 msgid "To copy the image to a DVD, follow these steps:"
 msgstr "Um das Abbild auf eine DVD zu kopieren, führen Sie diese Schritte durch:"
 
 #. type: enumerate
-#: doc/guix.texi:2001
+#: doc/guix.texi:2088
 msgid "Insert a blank DVD into your machine, and determine its device name.  Assuming that the DVD drive is known as @file{/dev/srX}, copy the image with:"
 msgstr "Legen Sie eine unbespielte DVD in Ihren Rechner ein und bestimmen Sie ihren Gerätenamen. Angenommen der Name des DVD-Laufwerks ist @file{/dev/srX}, kopieren Sie das Abbild mit:"
 
 #. type: example
-#: doc/guix.texi:2004
+#: doc/guix.texi:2091
 #, no-wrap
-msgid "growisofs -dvd-compat -Z /dev/srX=guix-system-install-@value{VERSION}.@var{system}.iso\n"
-msgstr "growisofs -dvd-compat -Z /dev/srX=guix-system-install-@value{VERSION}.@var{System}.iso\n"
+msgid "growisofs -dvd-compat -Z /dev/srX=guix-system-install-@value{VERSION}.x86_64-linux.iso\n"
+msgstr "growisofs -dvd-compat -Z /dev/srX=guix-system-install-@value{VERSION}.x86_64-linux.iso\n"
 
 #. type: enumerate
-#: doc/guix.texi:2007
+#: doc/guix.texi:2094
 msgid "Access to @file{/dev/srX} usually requires root privileges."
 msgstr "Der Zugriff auf @file{/dev/srX} setzt in der Regel Administratorrechte voraus."
 
 #. type: unnumberedsubsec
-#: doc/guix.texi:2009
+#: doc/guix.texi:2096
 #, no-wrap
 msgid "Booting"
 msgstr "Das System starten"
 
 #. type: Plain text
-#: doc/guix.texi:2016
+#: doc/guix.texi:2103
 msgid "Once this is done, you should be able to reboot the system and boot from the USB stick or DVD.  The latter usually requires you to get in the BIOS or UEFI boot menu, where you can choose to boot from the USB stick.  In order to boot from Libreboot, switch to the command mode by pressing the @kbd{c} key and type @command{search_grub usb}."
 msgstr "Sobald das erledigt ist, sollten Sie Ihr System neu starten und es vom USB-Stick oder der DVD hochfahren („booten“) können. Dazu müssen Sie wahrscheinlich beim Starten des Rechners in das BIOS- oder UEFI-Boot-Menü gehen, von wo aus Sie auswählen können, dass vom USB-Stick gebootet werden soll. Um aus Libreboot heraus zu booten, wechseln Sie in den Befehlsmodus, indem Sie die @kbd{c}-Taste drücken, und geben Sie @command{search_grub usb} ein."
 
 #. type: Plain text
-#: doc/guix.texi:2019
+#: doc/guix.texi:2106
 msgid "@xref{Installing Guix in a VM}, if, instead, you would like to install Guix System in a virtual machine (VM)."
 msgstr "Lesen Sie den Abschnitt @ref{Installing Guix in a VM}, wenn Sie Guix System stattdessen in einer virtuellen Maschine (VM) installieren möchten."
 
 #. type: Plain text
-#: doc/guix.texi:2029
-msgid "Once you have booted, you can use the guided graphical installer, which makes it easy to get started (@pxref{Guided Graphical Installation}).  Alternately, if you are already familiar with GNU/Linux and if you want more control than what the graphical installer provides, you can choose the ``manual'' installation process (@pxref{Manual Installation})."
+#: doc/guix.texi:2116
+msgid "Once you have booted, you can use the guided graphical installer, which makes it easy to get started (@pxref{Guided Graphical Installation}).  Alternatively, if you are already familiar with GNU/Linux and if you want more control than what the graphical installer provides, you can choose the ``manual'' installation process (@pxref{Manual Installation})."
 msgstr "Wenn Sie Ihren Rechner gebootet haben, können Sie sich vom grafischen Installationsprogramm durch den Installationsvorgang führen lassen, was den Einstieg leicht macht (siehe @ref{Guided Graphical Installation}). Alternativ können Sie sich auch für einen „manuellen“ Installationsvorgang entscheiden, wenn Sie bereits mit GNU/Linux vertraut sind und mehr Kontrolle haben möchten, als sie das grafische Installationsprogramm bietet (siehe @ref{Manual Installation})."
 
 #. type: Plain text
-#: doc/guix.texi:2037
+#: doc/guix.texi:2124
 msgid "The graphical installer is available on TTY1.  You can obtain root shells on TTYs 3 to 6 by hitting @kbd{ctrl-alt-f3}, @kbd{ctrl-alt-f4}, etc.  TTY2 shows this documentation and you can reach it with @kbd{ctrl-alt-f2}.  Documentation is browsable using the Info reader commands (@pxref{Top,,, info-stnd, Stand-alone GNU Info}).  The installation system runs the GPM mouse daemon, which allows you to select text with the left mouse button and to paste it with the middle button."
 msgstr "Das grafische Installationsprogramm steht Ihnen auf TTY1 zur Verfügung. Auf den TTYs 3 bis 6 können Sie vor sich eine Eingabeaufforderung für den Administratornutzer „root“ sehen, nachdem Sie @kbd{strg-alt-f3}, @kbd{strg-alt-f4} usw.@: gedrückt haben. TTY2 zeigt Ihnen dieses Handbuch, das Sie über die Tastenkombination @kbd{strg-alt-f2} erreichen. In dieser Dokumentation können Sie mit den Steuerungsbefehlen Ihres Info-Betrachters blättern (siehe @ref{Top,,, info-stnd, Stand-alone GNU Info}). Auf dem Installationssystem läuft der GPM-Maus-Daemon, wodurch Sie Text mit der linken Maustaste markieren und ihn mit der mittleren Maustaste einfügen können."
 
 #. type: quotation
-#: doc/guix.texi:2042
+#: doc/guix.texi:2129
 msgid "Installation requires access to the Internet so that any missing dependencies of your system configuration can be downloaded.  See the ``Networking'' section below."
 msgstr "Für die Installation benötigen Sie Zugang zum Internet, damit fehlende Abhängigkeiten Ihrer Systemkonfiguration heruntergeladen werden können. Im Abschnitt „Netzwerkkonfiguration“ weiter unten finden Sie mehr Informationen dazu."
 
 #. type: Plain text
-#: doc/guix.texi:2049
+#: doc/guix.texi:2136
 msgid "The graphical installer is a text-based user interface.  It will guide you, with dialog boxes, through the steps needed to install GNU@tie{}Guix System."
 msgstr "Das grafische Installationsprogramm ist mit einer textbasierten Benutzeroberfläche ausgestattet. Es kann Sie mit Dialogfeldern durch die Schritte führen, mit denen Sie GNU@tie{}Guix System installieren."
 
 #. type: Plain text
-#: doc/guix.texi:2054
+#: doc/guix.texi:2141
 msgid "The first dialog boxes allow you to set up the system as you use it during the installation: you can choose the language, keyboard layout, and set up networking, which will be used during the installation.  The image below shows the networking dialog."
 msgstr "Die ersten Dialogfelder ermöglichen es Ihnen, das System aufzusetzen, wie Sie es bei der Installation benutzen: Sie können die Sprache und Tastaturbelegung festlegen und die Netzwerkanbindung einrichten, die während der Installation benutzt wird. Das folgende Bild zeigt den Dialog zur Einrichtung der Netzwerkanbindung."
 
 #. type: Plain text
-#: doc/guix.texi:2056
+#: doc/guix.texi:2143
 msgid "@image{images/installer-network,5in,, networking setup with the graphical installer}"
 msgstr "@image{images/installer-network,5in,, Netzwerkanbindung einrichten mit dem grafischen Installationsprogramm}"
 
 #. type: Plain text
-#: doc/guix.texi:2061
+#: doc/guix.texi:2148
 msgid "Later steps allow you to partition your hard disk, as shown in the image below, to choose whether or not to use encrypted file systems, to enter the host name and root password, and to create an additional account, among other things."
 msgstr "Mit den danach kommenden Schritten können Sie Ihre Festplatte partitionieren, wie im folgenden Bild gezeigt, und auswählen, ob Ihre Dateisysteme verschlüsselt werden sollen oder nicht. Sie können Ihren Rechnernamen und das Administratorpasswort (das „root“-Passwort) festlegen und ein Benutzerkonto einrichten, und noch mehr."
 
 #. type: Plain text
-#: doc/guix.texi:2063
+#: doc/guix.texi:2150
 msgid "@image{images/installer-partitions,5in,, partitioning with the graphical installer}"
 msgstr "@image{images/installer-partitions,5in,, Partitionieren mit dem grafischen Installationsprogramm}"
 
 #. type: Plain text
-#: doc/guix.texi:2066
+#: doc/guix.texi:2153
 msgid "Note that, at any time, the installer allows you to exit the current installation step and resume at a previous step, as show in the image below."
 msgstr "Beachten Sie, dass Sie mit dem Installationsprogramm jederzeit den aktuellen Installationsschritt verlassen und zu einem vorherigen Schritt zurückkehren können, wie Sie im folgenden Bild sehen können."
 
 #. type: Plain text
-#: doc/guix.texi:2068
+#: doc/guix.texi:2155
 msgid "@image{images/installer-resume,5in,, resuming the installation process}"
 msgstr "@image{images/installer-resume,5in,, Mit einem Installationsschritt fortfahren}"
 
 #. type: Plain text
-#: doc/guix.texi:2073
+#: doc/guix.texi:2160
 msgid "Once you're done, the installer produces an operating system configuration and displays it (@pxref{Using the Configuration System}).  At that point you can hit ``OK'' and installation will proceed.  On success, you can reboot into the new system and enjoy.  @xref{After System Installation}, for what's next!"
 msgstr "Sobald Sie fertig sind, erzeugt das Installationsprogramm eine Betriebssystemkonfiguration und zeigt sie an (siehe @ref{Using the Configuration System}). Zu diesem Zeitpunkt können Sie auf „OK“ drücken und die Installation wird losgehen. Ist sie erfolgreich, können Sie neu starten und Ihr neues System genießen. Siehe @ref{After System Installation} für Informationen, wie es weitergeht!"
 
 #. type: Plain text
-#: doc/guix.texi:2083
+#: doc/guix.texi:2170
 msgid "This section describes how you would ``manually'' install GNU@tie{}Guix System on your machine.  This option requires familiarity with GNU/Linux, with the shell, and with common administration tools.  If you think this is not for you, consider using the guided graphical installer (@pxref{Guided Graphical Installation})."
 msgstr "Dieser Abschnitt beschreibt, wie Sie GNU@tie{}Guix System auf manuelle Weise auf Ihrer Maschine installieren. Diese Alternative setzt voraus, dass Sie bereits mit GNU/Linux, der Shell und üblichen Administrationswerkzeugen vertraut sind. Wenn Sie glauben, dass das nichts für Sie ist, dann möchten Sie vielleicht das geführte grafische Installationsprogramm benutzen (siehe @ref{Guided Graphical Installation})."
 
 #. type: Plain text
-#: doc/guix.texi:2089
+#: doc/guix.texi:2176
 msgid "The installation system provides root shells on TTYs 3 to 6; press @kbd{ctrl-alt-f3}, @kbd{ctrl-alt-f4}, and so on to reach them.  It includes many common tools needed to install the system.  But it is also a full-blown Guix System, which means that you can install additional packages, should you need it, using @command{guix package} (@pxref{Invoking guix package})."
 msgstr "Das Installationssystem macht Eingabeaufforderungen auf den TTYs 3 bis 6 zugänglich, auf denen Sie als Administratornutzer Befehle eingeben können; Sie erreichen diese, indem Sie die Tastenkombinationen @kbd{strg-alt-f3}, @kbd{strg-alt-f4} und so weiter benutzen. Es enthält viele übliche Werkzeuge, mit denen Sie diese Aufgabe bewältigen können. Da es sich auch um ein vollständiges „Guix System“-System handelt, können Sie aber auch andere Pakete mit dem Befehl @command{guix package} nachinstallieren, wenn Sie sie brauchen (siehe @ref{Invoking guix package})."
 
 #. type: subsection
-#: doc/guix.texi:2096
+#: doc/guix.texi:2183
 #, no-wrap
 msgid "Keyboard Layout, Networking, and Partitioning"
 msgstr "Tastaturbelegung, Netzwerkanbindung und Partitionierung"
 
 #. type: Plain text
-#: doc/guix.texi:2101
+#: doc/guix.texi:2188
 msgid "Before you can install the system, you may want to adjust the keyboard layout, set up networking, and partition your target hard disk.  This section will guide you through this."
 msgstr "Bevor Sie das System installieren können, wollen Sie vielleicht die Tastaturbelegung ändern, eine Netzwerkverbindung herstellen und die Zielfestplatte partitionieren. Dieser Abschnitt wird Sie durch diese Schritte führen."
 
 #. type: cindex
-#: doc/guix.texi:2104 doc/guix.texi:11882
+#: doc/guix.texi:2191 doc/guix.texi:14021
 #, no-wrap
 msgid "keyboard layout"
 msgstr "Tastaturbelegung"
 
 #. type: Plain text
-#: doc/guix.texi:2108
+#: doc/guix.texi:2195
 msgid "The installation image uses the US qwerty keyboard layout.  If you want to change it, you can use the @command{loadkeys} command.  For example, the following command selects the Dvorak keyboard layout:"
 msgstr "Das Installationsabbild verwendet die US-amerikanische QWERTY-Tastaturbelegung. Wenn Sie dies ändern möchten, können Sie den @command{loadkeys}-Befehl benutzen. Mit folgendem Befehl würden Sie zum Beispiel die Dvorak-Tastaturbelegung auswählen:"
 
 #. type: example
-#: doc/guix.texi:2111
+#: doc/guix.texi:2198
 #, no-wrap
 msgid "loadkeys dvorak\n"
 msgstr "loadkeys dvorak\n"
 
 #. type: Plain text
-#: doc/guix.texi:2116
+#: doc/guix.texi:2203
 msgid "See the files under @file{/run/current-system/profile/share/keymaps} for a list of available keyboard layouts.  Run @command{man loadkeys} for more information."
 msgstr "Schauen Sie sich an, welche Dateien im Verzeichnis @file{/run/current-system/profile/share/keymaps} stehen, um eine Liste verfügbarer Tastaturbelegungen zu sehen. Wenn Sie mehr Informationen brauchen, führen Sie @command{man loadkeys} aus."
 
 #. type: subsubsection
-#: doc/guix.texi:2117
+#: doc/guix.texi:2204
 #, no-wrap
 msgid "Networking"
 msgstr "Netzwerkkonfiguration"
 
 #. type: Plain text
-#: doc/guix.texi:2120
+#: doc/guix.texi:2207
 msgid "Run the following command to see what your network interfaces are called:"
 msgstr "Führen Sie folgenden Befehl aus, um zu sehen, wie Ihre Netzwerkschnittstellen benannt sind:"
 
 #. type: example
-#: doc/guix.texi:2123
+#: doc/guix.texi:2210
 #, no-wrap
 msgid "ifconfig -a\n"
 msgstr "ifconfig -a\n"
 
 #. type: table
-#: doc/guix.texi:2127 doc/guix.texi:2149
+#: doc/guix.texi:2214 doc/guix.texi:2236
 msgid "@dots{} or, using the GNU/Linux-specific @command{ip} command:"
 msgstr "…@: oder mit dem GNU/Linux-eigenen @command{ip}-Befehl:"
 
 #. type: example
-#: doc/guix.texi:2130
+#: doc/guix.texi:2217
 #, no-wrap
 msgid "ip address\n"
 msgstr "ip address\n"
 
 #. type: Plain text
-#: doc/guix.texi:2137
+#: doc/guix.texi:2224
 msgid "Wired interfaces have a name starting with @samp{e}; for example, the interface corresponding to the first on-board Ethernet controller is called @samp{eno1}.  Wireless interfaces have a name starting with @samp{w}, like @samp{w1p2s0}."
 msgstr "Der Name kabelgebundener Schnittstellen (engl. Interfaces) beginnt mit dem Buchstaben @samp{e}, zum Beispiel heißt die dem ersten fest eingebauten Ethernet-Adapter entsprechende Schnittstelle @samp{eno1}. Drahtlose Schnittstellen werden mit einem Namen bezeichnet, der mit dem Buchstaben @samp{w} beginnt, etwa @samp{w1p2s0}."
 
 #. type: item
-#: doc/guix.texi:2139
+#: doc/guix.texi:2226
 #, no-wrap
 msgid "Wired connection"
 msgstr "Kabelverbindung"
 
 #. type: table
-#: doc/guix.texi:2142
+#: doc/guix.texi:2229
 msgid "To configure a wired network run the following command, substituting @var{interface} with the name of the wired interface you want to use."
 msgstr "Um ein kabelgebundenes Netzwerk einzurichten, führen Sie den folgenden Befehl aus, wobei Sie statt @var{Schnittstelle} den Namen der kabelgebundenen Schnittstelle eintippen, die Sie benutzen möchten."
 
 #. type: example
-#: doc/guix.texi:2145
+#: doc/guix.texi:2232
 #, no-wrap
 msgid "ifconfig @var{interface} up\n"
 msgstr "ifconfig @var{Schnittstelle} up\n"
 
 #. type: example
-#: doc/guix.texi:2152
+#: doc/guix.texi:2239
 #, no-wrap
 msgid "ip link set @var{interface} up\n"
 msgstr "ip link set @var{Schnittstelle} up\n"
 
 #. type: item
-#: doc/guix.texi:2154
+#: doc/guix.texi:2241
 #, no-wrap
 msgid "Wireless connection"
 msgstr "Drahtlose Verbindung"
 
 #. type: cindex
-#: doc/guix.texi:2155 doc/guix.texi:13404
+#: doc/guix.texi:2242 doc/guix.texi:15600
 #, no-wrap
 msgid "wireless"
 msgstr "WLAN"
 
 #. type: cindex
-#: doc/guix.texi:2156 doc/guix.texi:13405
+#: doc/guix.texi:2243 doc/guix.texi:15601
 #, no-wrap
 msgid "WiFi"
 msgstr "WiFi"
 
 #. type: table
-#: doc/guix.texi:2161
+#: doc/guix.texi:2248
 msgid "To configure wireless networking, you can create a configuration file for the @command{wpa_supplicant} configuration tool (its location is not important) using one of the available text editors such as @command{nano}:"
 msgstr "Um Drahtlosnetzwerke einzurichten, können Sie eine Konfigurationsdatei für das Konfigurationswerkzeug des @command{wpa_supplicant} schreiben (wo Sie sie speichern, ist nicht wichtig), indem Sie eines der verfügbaren Textbearbeitungsprogramme wie etwa @command{nano} benutzen:"
 
 #. type: example
-#: doc/guix.texi:2164
+#: doc/guix.texi:2251
 #, no-wrap
 msgid "nano wpa_supplicant.conf\n"
 msgstr "nano wpa_supplicant.conf\n"
 
 #. type: table
-#: doc/guix.texi:2169
+#: doc/guix.texi:2256
 msgid "As an example, the following stanza can go to this file and will work for many wireless networks, provided you give the actual SSID and passphrase for the network you are connecting to:"
 msgstr "Zum Beispiel können Sie die folgende Formulierung in der Datei speichern, die für viele Drahtlosnetzwerke funktioniert, sofern Sie die richtige SSID und Passphrase für das Netzwerk eingeben, mit dem Sie sich verbinden möchten:"
 
 #. type: example
-#: doc/guix.texi:2176
+#: doc/guix.texi:2263
 #, no-wrap
 msgid ""
 "network=@{\n"
@@ -6238,206 +6738,211 @@ msgstr ""
 "@}\n"
 
 #. type: table
-#: doc/guix.texi:2181
+#: doc/guix.texi:2268
 msgid "Start the wireless service and run it in the background with the following command (substitute @var{interface} with the name of the network interface you want to use):"
 msgstr "Starten Sie den Dienst für Drahtlosnetzwerke und lassen Sie ihn im Hintergrund laufen, indem Sie folgenden Befehl eintippen (ersetzen Sie dabei @var{Schnittstelle} durch den Namen der Netzwerkschnittstelle, die Sie benutzen möchten):"
 
 #. type: example
-#: doc/guix.texi:2184
+#: doc/guix.texi:2271
 #, no-wrap
 msgid "wpa_supplicant -c wpa_supplicant.conf -i @var{interface} -B\n"
 msgstr "wpa_supplicant -c wpa_supplicant.conf -i @var{Schnittstelle} -B\n"
 
 #. type: table
-#: doc/guix.texi:2187
+#: doc/guix.texi:2274
 msgid "Run @command{man wpa_supplicant} for more information."
 msgstr "Führen Sie @command{man wpa_supplicant} aus, um mehr Informationen zu erhalten."
 
 #. type: cindex
-#: doc/guix.texi:2189
+#: doc/guix.texi:2276
 #, no-wrap
 msgid "DHCP"
 msgstr "DHCP"
 
 #. type: Plain text
-#: doc/guix.texi:2192
+#: doc/guix.texi:2279
 msgid "At this point, you need to acquire an IP address.  On a network where IP addresses are automatically assigned @i{via} DHCP, you can run:"
 msgstr "Zu diesem Zeitpunkt müssen Sie sich eine IP-Adresse beschaffen. Auf einem Netzwerk, wo IP-Adressen automatisch @i{via} DHCP zugewiesen werden, können Sie das hier ausführen:"
 
 #. type: example
-#: doc/guix.texi:2195
+#: doc/guix.texi:2282
 #, no-wrap
 msgid "dhclient -v @var{interface}\n"
 msgstr "dhclient -v @var{Schnittstelle}\n"
 
 #. type: Plain text
-#: doc/guix.texi:2198
+#: doc/guix.texi:2285
 msgid "Try to ping a server to see if networking is up and running:"
 msgstr "Versuchen Sie, einen Server zu pingen, um zu prüfen, ob sie mit dem Internet verbunden sind und alles richtig funktioniert:"
 
 #. type: example
-#: doc/guix.texi:2201
+#: doc/guix.texi:2288
 #, no-wrap
 msgid "ping -c 3 gnu.org\n"
 msgstr "ping -c 3 gnu.org\n"
 
 #. type: Plain text
-#: doc/guix.texi:2205
+#: doc/guix.texi:2292
 msgid "Setting up network access is almost always a requirement because the image does not contain all the software and tools that may be needed."
 msgstr "Einen Internetzugang herzustellen, ist in jedem Fall nötig, weil das Abbild nicht alle Software und Werkzeuge enthält, die nötig sein könnten."
 
 #. type: cindex
-#: doc/guix.texi:2206
+#: doc/guix.texi:2293
 #, no-wrap
 msgid "proxy, during system installation"
 msgstr "Proxy, bei der Systeminstallation"
 
 #. type: Plain text
-#: doc/guix.texi:2209
+#: doc/guix.texi:2296
 msgid "If you need HTTP and HTTPS access to go through a proxy, run the following command:"
 msgstr "Wenn HTTP- und HTTPS-Zugriffe bei Ihnen über einen Proxy laufen sollen, führen Sie folgenden Befehl aus:"
 
 #. type: example
-#: doc/guix.texi:2212
+#: doc/guix.texi:2299
 #, no-wrap
 msgid "herd set-http-proxy guix-daemon @var{URL}\n"
 msgstr "herd set-http-proxy guix-daemon @var{URL}\n"
 
 #. type: Plain text
-#: doc/guix.texi:2217
+#: doc/guix.texi:2304
 msgid "where @var{URL} is the proxy URL, for example @code{http://example.org:8118}."
 msgstr "Dabei ist @var{URL} die URL des Proxys, zum Beispiel @code{http://example.org:8118}."
 
 #. type: cindex
-#: doc/guix.texi:2218
+#: doc/guix.texi:2305
 #, no-wrap
 msgid "installing over SSH"
 msgstr "Über SSH installieren"
 
 #. type: Plain text
-#: doc/guix.texi:2221
+#: doc/guix.texi:2308
 msgid "If you want to, you can continue the installation remotely by starting an SSH server:"
 msgstr "Wenn Sie möchten, können Sie die weitere Installation auch per Fernwartung durchführen, indem Sie einen SSH-Server starten:"
 
 #. type: example
-#: doc/guix.texi:2224
+#: doc/guix.texi:2311
 #, no-wrap
 msgid "herd start ssh-daemon\n"
 msgstr "herd start ssh-daemon\n"
 
 #. type: Plain text
-#: doc/guix.texi:2228
+#: doc/guix.texi:2315
 msgid "Make sure to either set a password with @command{passwd}, or configure OpenSSH public key authentication before logging in."
 msgstr "Vergewissern Sie sich vorher, dass Sie entweder ein Passwort mit @command{passwd} festgelegt haben, oder dass Sie für OpenSSH eine Authentifizierung über öffentliche Schlüssel eingerichtet haben, bevor Sie sich anmelden."
 
 #. type: subsubsection
-#: doc/guix.texi:2229
+#: doc/guix.texi:2316
 #, no-wrap
 msgid "Disk Partitioning"
 msgstr "Plattenpartitionierung"
 
 #. type: Plain text
-#: doc/guix.texi:2233
+#: doc/guix.texi:2320
 msgid "Unless this has already been done, the next step is to partition, and then format the target partition(s)."
 msgstr "Sofern nicht bereits geschehen, ist der nächste Schritt, zu partitionieren und dann die Zielpartition zu formatieren."
 
 #. type: Plain text
-#: doc/guix.texi:2238
+#: doc/guix.texi:2325
 msgid "The installation image includes several partitioning tools, including Parted (@pxref{Overview,,, parted, GNU Parted User Manual}), @command{fdisk}, and @command{cfdisk}.  Run it and set up your disk with the partition layout you want:"
 msgstr "Auf dem Installationsabbild sind mehrere Partitionierungswerkzeuge zu finden, einschließlich (siehe @ref{Overview,,, parted, GNU Parted User Manual}), @command{fdisk} und @command{cfdisk}. Starten Sie eines davon und partitionieren Sie Ihre Festplatte oder sonstigen Massenspeicher, wie Sie möchten:"
 
 #. type: example
-#: doc/guix.texi:2241
+#: doc/guix.texi:2328
 #, no-wrap
 msgid "cfdisk\n"
 msgstr "cfdisk\n"
 
 #. type: Plain text
-#: doc/guix.texi:2247
+#: doc/guix.texi:2334
 msgid "If your disk uses the GUID Partition Table (GPT) format and you plan to install BIOS-based GRUB (which is the default), make sure a BIOS Boot Partition is available (@pxref{BIOS installation,,, grub, GNU GRUB manual})."
 msgstr "Wenn Ihre Platte mit einer „GUID Partition Table“ (GPT) formatiert ist, und Sie vorhaben, die BIOS-basierte Variante des GRUB-Bootloaders  zu installieren (was der Vorgabe entspricht), stellen Sie sicher, dass eine Partition als BIOS-Boot-Partition ausgewiesen ist (siehe @ref{BIOS installation,,, grub, GNU GRUB manual})."
 
 #. type: cindex
-#: doc/guix.texi:2248
+#: doc/guix.texi:2335
 #, no-wrap
 msgid "EFI, installation"
 msgstr "EFI, Installation"
 
 #. type: cindex
-#: doc/guix.texi:2249
+#: doc/guix.texi:2336
 #, no-wrap
 msgid "UEFI, installation"
 msgstr "UEFI, Installation"
 
 #. type: cindex
-#: doc/guix.texi:2250
+#: doc/guix.texi:2337
 #, no-wrap
 msgid "ESP, EFI system partition"
 msgstr "ESP, EFI-Systempartition"
 
 #. type: Plain text
-#: doc/guix.texi:2254
+#: doc/guix.texi:2341
 msgid "If you instead wish to use EFI-based GRUB, a FAT32 @dfn{EFI System Partition} (ESP) is required.  This partition can be mounted at @file{/boot/efi} for instance and must have the @code{esp} flag set.  E.g., for @command{parted}:"
 msgstr "Falls Sie stattdessen einen EFI-basierten GRUB installieren möchten, muss auf der Platte eine FAT32-formatierte @dfn{EFI-Systempartition} (ESP) vorhanden sein. Diese Partition kann unter dem Pfad @file{/boot/efi} eingebunden („gemountet“) werden und die @code{esp}-Flag der Partition muss gesetzt sein. Dazu würden Sie beispielsweise in @command{parted} eintippen:"
 
 #. type: example
-#: doc/guix.texi:2257
+#: doc/guix.texi:2344
 #, no-wrap
 msgid "parted /dev/sda set 1 esp on\n"
 msgstr "parted /dev/sda set 1 esp on\n"
 
 #. type: vindex
-#: doc/guix.texi:2260 doc/guix.texi:26316
+#: doc/guix.texi:2347 doc/guix.texi:30367
 #, no-wrap
 msgid "grub-bootloader"
 msgstr "grub-bootloader"
 
 #. type: vindex
-#: doc/guix.texi:2261 doc/guix.texi:26310
+#: doc/guix.texi:2348 doc/guix.texi:30361
 #, no-wrap
 msgid "grub-efi-bootloader"
 msgstr "grub-efi-bootloader"
 
 #. type: quotation
-#: doc/guix.texi:2268
+#: doc/guix.texi:2355
 msgid "Unsure whether to use EFI- or BIOS-based GRUB? If the directory @file{/sys/firmware/efi} exists in the installation image, then you should probably perform an EFI installation, using @code{grub-efi-bootloader}.  Otherwise you should use the BIOS-based GRUB, known as @code{grub-bootloader}.  @xref{Bootloader Configuration}, for more info on bootloaders."
 msgstr "Falls Sie nicht wissen, ob Sie einen EFI- oder BIOS-basierten GRUB installieren möchten: Wenn bei Ihnen das Verzeichnis @file{/sys/firmware/efi} im Dateisystem existiert, möchten Sie vermutlich eine EFI-Installation durchführen, wozu Sie in Ihrer Konfiguration @code{grub-efi-bootloader} benutzen. Ansonsten sollten Sie den BIOS-basierten GRUB benutzen, der mit @code{grub-bootloader} bezeichnet wird.  Siehe @ref{Bootloader Configuration}, wenn Sie mehr Informationen über Bootloader brauchen."
 
 #. type: Plain text
-#: doc/guix.texi:2276
+#: doc/guix.texi:2363
 msgid "Once you are done partitioning the target hard disk drive, you have to create a file system on the relevant partition(s)@footnote{Currently Guix System only supports ext4, btrfs, and JFS file systems.  In particular, code that reads file system UUIDs and labels only works for these file system types.}.  For the ESP, if you have one and assuming it is @file{/dev/sda1}, run:"
-msgstr "Sobald Sie die Platte fertig partitioniert haben, auf die Sie installieren möchten, müssen Sie ein Dateisystem auf Ihrer oder Ihren für Guix System vorgesehenen Partition(en) erzeugen@footnote{Derzeit unterstützt Guix System nur die Dateisystemtypen ext4, btrfs und JFS. Insbesondere funktioniert Guix-Code, der Dateisystem-UUIDs und -Labels ausliest, nur auf diesen Dateisystemtypen.}. Wenn Sie eine ESP brauchen und dafür die Partition @file{/dev/sda1} vorgesehen haben, müssen Sie diesen Befehl ausführen:"
+msgstr "Sobald Sie die Platte fertig partitioniert haben, auf die Sie installieren möchten, müssen Sie ein Dateisystem auf Ihrer oder Ihren für Guix System vorgesehenen Partition(en) erzeugen@footnote{Derzeit unterstützt Guix System nur die Dateisystemtypen ext4, btrfs und JFS. Insbesondere funktioniert Guix-Code, der Dateisystem-UUIDs und -Bezeichnungen ausliest, nur auf diesen Dateisystemtypen.}. Wenn Sie eine ESP brauchen und dafür die Partition @file{/dev/sda1} vorgesehen haben, müssen Sie diesen Befehl ausführen:"
 
 #. type: example
-#: doc/guix.texi:2279
+#: doc/guix.texi:2366
 #, no-wrap
 msgid "mkfs.fat -F32 /dev/sda1\n"
 msgstr "mkfs.fat -F32 /dev/sda1\n"
 
 #. type: Plain text
-#: doc/guix.texi:2287
+#: doc/guix.texi:2373
+msgid "For the root file system, ext4 is the most widely used format.  Other file systems, such as Btrfs, support compression, which is reported to nicely complement file deduplication that the daemon performs independently of the file system (@pxref{Invoking guix-daemon, deduplication})."
+msgstr "Für das Wurzeldateisystem ist ext4 das am häufigsten genutzte Format. Andere Dateisysteme, wie Btrfs, unterstützen Kompression, wovon berichtet wird, es habe sich als sinnvolle Ergänzung zur Dateideduplikation erwiesen, die der Daemon unabhängig vom Dateisystem bietet (siehe @ref{Invoking guix-daemon, Deduplizieren})."
+
+#. type: Plain text
+#: doc/guix.texi:2380
 msgid "Preferably, assign file systems a label so that you can easily and reliably refer to them in @code{file-system} declarations (@pxref{File Systems}).  This is typically done using the @code{-L} option of @command{mkfs.ext4} and related commands.  So, assuming the target root partition lives at @file{/dev/sda2}, a file system with the label @code{my-root} can be created with:"
 msgstr "Geben Sie Ihren Dateisystemen auch besser eine Bezeichnung („Label“), damit Sie sie zuverlässig wiedererkennen und später in den @code{file-system}-Deklarationen darauf Bezug nehmen können (siehe @ref{File Systems}). Dazu benutzen Sie typischerweise die Befehlszeilenoption @code{-L} des Befehls @command{mkfs.ext4} oder entsprechende Optionen für andere Befehle. Wenn wir also annehmen, dass @file{/dev/sda2} die Partition ist, auf der Ihr Wurzeldateisystem (englisch „root“) wohnen soll, können Sie dort mit diesem Befehl ein Dateisystem mit der Bezeichnung @code{my-root} erstellen:"
 
 #. type: example
-#: doc/guix.texi:2290
+#: doc/guix.texi:2383
 #, no-wrap
 msgid "mkfs.ext4 -L my-root /dev/sda2\n"
 msgstr "mkfs.ext4 -L my-root /dev/sda2\n"
 
 #. type: cindex
-#: doc/guix.texi:2292 doc/guix.texi:11132
+#: doc/guix.texi:2385 doc/guix.texi:13055
 #, no-wrap
 msgid "encrypted disk"
 msgstr "verschlüsselte Partition"
 
 #. type: Plain text
-#: doc/guix.texi:2299
-msgid "If you are instead planning to encrypt the root partition, you can use the Cryptsetup/LUKS utilities to do that (see @inlinefmtifelse{html, @uref{https://linux.die.net/man/8/cryptsetup, @code{man cryptsetup}}, @code{man cryptsetup}} for more information.)  Assuming you want to store the root partition on @file{/dev/sda2}, the command sequence would be along these lines:"
+#: doc/guix.texi:2392
+msgid "If you are instead planning to encrypt the root partition, you can use the Cryptsetup/LUKS utilities to do that (see @inlinefmtifelse{html, @uref{https://linux.die.net/man/8/cryptsetup, @code{man cryptsetup}}, @code{man cryptsetup}} for more information).  Assuming you want to store the root partition on @file{/dev/sda2}, the command sequence would be along these lines:"
 msgstr "Falls Sie aber vorhaben, die Partition mit dem Wurzeldateisystem zu verschlüsseln, können Sie dazu die Cryptsetup-/LUKS-Werkzeuge verwenden (siehe @inlinefmtifelse{html, @uref{https://linux.die.net/man/8/cryptsetup, @code{man cryptsetup}}, @code{man cryptsetup}}, um mehr darüber zu erfahren). Angenommen Sie wollen die Partition für das Wurzeldateisystem verschlüsselt auf @file{/dev/sda2} installieren, dann brauchen Sie eine Befehlsfolge ähnlich wie diese:"
 
 #. type: example
-#: doc/guix.texi:2304
+#: doc/guix.texi:2397
 #, no-wrap
 msgid ""
 "cryptsetup luksFormat /dev/sda2\n"
@@ -6449,28 +6954,28 @@ msgstr ""
 "mkfs.ext4 -L my-root /dev/mapper/my-partition\n"
 
 #. type: Plain text
-#: doc/guix.texi:2309
+#: doc/guix.texi:2402
 msgid "Once that is done, mount the target file system under @file{/mnt} with a command like (again, assuming @code{my-root} is the label of the root file system):"
 msgstr "Sobald das erledigt ist, binden Sie dieses Dateisystem als Installationsziel mit dem Einhängepunkt @file{/mnt} ein, wozu Sie einen Befehl wie hier eintippen (auch hier unter der Annahme, dass @code{my-root} die Bezeichnung des künftigen Wurzeldateisystems ist):"
 
 #. type: example
-#: doc/guix.texi:2312
+#: doc/guix.texi:2405
 #, no-wrap
 msgid "mount LABEL=my-root /mnt\n"
 msgstr "mount LABEL=my-root /mnt\n"
 
 #. type: Plain text
-#: doc/guix.texi:2318
+#: doc/guix.texi:2411
 msgid "Also mount any other file systems you would like to use on the target system relative to this path.  If you have opted for @file{/boot/efi} as an EFI mount point for example, mount it at @file{/mnt/boot/efi} now so it is found by @code{guix system init} afterwards."
 msgstr "Binden Sie auch alle anderen Dateisysteme ein, die Sie auf dem Zielsystem benutzen möchten, mit Einhängepunkten relativ zu diesem Pfad. Wenn Sie sich zum Beispiel für einen Einhängepunkt @file{/boot/efi} für die EFI-Systempartition entschieden haben, binden Sie sie jetzt als @file{/mnt/boot/efi} ein, damit @code{guix system init} sie später findet."
 
 #. type: Plain text
-#: doc/guix.texi:2323
+#: doc/guix.texi:2416
 msgid "Finally, if you plan to use one or more swap partitions (@pxref{Memory Concepts, swap space,, libc, The GNU C Library Reference Manual}), make sure to initialize them with @command{mkswap}.  Assuming you have one swap partition on @file{/dev/sda3}, you would run:"
-msgstr "Wenn Sie zudem auch vorhaben, eine oder mehrere Swap-Partitionen zu benutzen (siehe @ref{Memory Concepts, swap space,, libc, The GNU C Library Reference Manual}), initialisieren Sie diese nun mit @command{mkswap}. Angenommen Sie haben eine Swap-Partition auf @file{/dev/sda3}, dann würde der Befehl so lauten:"
+msgstr "Wenn Sie zudem auch vorhaben, eine oder mehrere Swap-Partitionen zu benutzen (siehe @ref{Memory Concepts, Swap-Speicher,, libc, Referenzhandbuch der GNU-C-Bibliothek}), initialisieren Sie diese nun mit @command{mkswap}. Angenommen Sie haben eine Swap-Partition auf @file{/dev/sda3}, dann würde der Befehl so lauten:"
 
 #. type: example
-#: doc/guix.texi:2327
+#: doc/guix.texi:2420
 #, no-wrap
 msgid ""
 "mkswap /dev/sda3\n"
@@ -6480,12 +6985,12 @@ msgstr ""
 "swapon /dev/sda3\n"
 
 #. type: Plain text
-#: doc/guix.texi:2335
+#: doc/guix.texi:2428
 msgid "Alternatively, you may use a swap file.  For example, assuming that in the new system you want to use the file @file{/swapfile} as a swap file, you would run@footnote{This example will work for many types of file systems (e.g., ext4).  However, for copy-on-write file systems (e.g., btrfs), the required steps may be different.  For details, see the manual pages for @command{mkswap} and @command{swapon}.}:"
 msgstr "Alternativ können Sie eine Swap-Datei benutzen. Angenommen, Sie wollten die Datei @file{/swapdatei} im neuen System als eine Swapdatei benutzen, dann müssten Sie Folgendes ausführen@footnote{Dieses Beispiel wird auf vielen Arten von Dateisystemen funktionieren (z.B.@: auf ext4). Auf Dateisystemen mit Copy-on-Write (wie z.B.@: btrfs) können sich die nötigen Schritte unterscheiden. Details finden Sie in der Dokumentation auf den Handbuchseiten von @command{mkswap} und @command{swapon}.}:"
 
 #. type: example
-#: doc/guix.texi:2343
+#: doc/guix.texi:2436
 #, no-wrap
 msgid ""
 "# This is 10 GiB of swap space.  Adjust \"count\" to change the size.\n"
@@ -6503,38 +7008,38 @@ msgstr ""
 "swapon /mnt/swapfile\n"
 
 #. type: Plain text
-#: doc/guix.texi:2348
+#: doc/guix.texi:2441
 msgid "Note that if you have encrypted the root partition and created a swap file in its file system as described above, then the encryption also protects the swap file, just like any other file in that file system."
 msgstr "Bedenken Sie, dass, wenn Sie die Partition für das Wurzeldateisystem („root“) verschlüsselt und eine Swap-Datei in diesem Dateisystem wie oben beschrieben erstellt haben, die Verschlüsselung auch die Swap-Datei schützt, genau wie jede andere Datei in dem Dateisystem."
 
 #. type: Plain text
-#: doc/guix.texi:2354
+#: doc/guix.texi:2447
 msgid "With the target partitions ready and the target root mounted on @file{/mnt}, we're ready to go.  First, run:"
 msgstr "Wenn die Partitionen des Installationsziels bereit sind und dessen Wurzeldateisystem unter @file{/mnt} eingebunden wurde, kann es losgehen mit der Installation. Führen Sie zuerst aus:"
 
 #. type: example
-#: doc/guix.texi:2357
+#: doc/guix.texi:2450
 #, no-wrap
 msgid "herd start cow-store /mnt\n"
 msgstr "herd start cow-store /mnt\n"
 
 #. type: Plain text
-#: doc/guix.texi:2364
+#: doc/guix.texi:2457
 msgid "This makes @file{/gnu/store} copy-on-write, such that packages added to it during the installation phase are written to the target disk on @file{/mnt} rather than kept in memory.  This is necessary because the first phase of the @command{guix system init} command (see below) entails downloads or builds to @file{/gnu/store} which, initially, is an in-memory file system."
 msgstr "Dadurch wird @file{/gnu/store} copy-on-write, d.h.@: dorthin von Guix erstellte Pakete werden in ihrer Installationsphase auf dem unter @file{/mnt} befindlichen Zieldateisystem gespeichert, statt den Arbeitsspeicher auszulasten. Das ist nötig, weil die erste Phase des Befehls @command{guix system init} (siehe unten) viele Dateien nach @file{/gnu/store} herunterlädt oder sie erstellt, Änderungen am @file{/gnu/store} aber bis dahin wie das übrige Installationssystem nur im Arbeitsspeicher gelagert werden konnten."
 
 #. type: Plain text
-#: doc/guix.texi:2375
+#: doc/guix.texi:2468
 msgid "Next, you have to edit a file and provide the declaration of the operating system to be installed.  To that end, the installation system comes with three text editors.  We recommend GNU nano (@pxref{Top,,, nano, GNU nano Manual}), which supports syntax highlighting and parentheses matching; other editors include GNU Zile (an Emacs clone), and nvi (a clone of the original BSD @command{vi} editor).  We strongly recommend storing that file on the target root file system, say, as @file{/mnt/etc/config.scm}.  Failing to do that, you will have lost your configuration file once you have rebooted into the newly-installed system."
 msgstr "Als Nächstes müssen Sie eine Datei bearbeiten und dort eine Deklaration des Betriebssystems, das Sie installieren möchten, hineinschreiben. Zu diesem Zweck sind im Installationssystem drei Texteditoren enthalten. Wir empfehlen, dass Sie GNU nano benutzen (siehe @ref{Top,,, nano, GNU nano Manual}), welcher Syntax und zueinander gehörende Klammern hervorheben kann. Andere mitgelieferte Texteditoren, die Sie benutzen können, sind GNU Zile (ein Emacs-Klon) und nvi (ein Klon des ursprünglichen @command{vi}-Editors von BSD). Wir empfehlen sehr, dass Sie diese Datei im Zieldateisystem der Installation speichern, etwa als @file{/mnt/etc/config.scm}, weil Sie Ihre Konfigurationsdatei im frisch installierten System noch brauchen werden."
 
 #. type: Plain text
-#: doc/guix.texi:2382
+#: doc/guix.texi:2475
 msgid "@xref{Using the Configuration System}, for an overview of the configuration file.  The example configurations discussed in that section are available under @file{/etc/configuration} in the installation image.  Thus, to get started with a system configuration providing a graphical display server (a ``desktop'' system), you can run something along these lines:"
 msgstr "Der Abschnitt @ref{Using the Configuration System} gibt einen Überblick über die Konfigurationsdatei. Die in dem Abschnitt diskutierten Beispielkonfigurationen sind im Installationsabbild im Verzeichnis @file{/etc/configuration} zu finden. Um also mit einer Systemkonfiguration anzufangen, die einen grafischen Anzeigeserver (einen „Display-Server“ zum Darstellen einer „Desktop“-Arbeitsumgebung) bietet, könnten Sie so etwas ausführen:"
 
 #. type: example
-#: doc/guix.texi:2387
+#: doc/guix.texi:2480
 #, no-wrap
 msgid ""
 "# mkdir /mnt/etc\n"
@@ -6546,53 +7051,53 @@ msgstr ""
 "# nano /mnt/etc/config.scm\n"
 
 #. type: Plain text
-#: doc/guix.texi:2391
+#: doc/guix.texi:2484
 msgid "You should pay attention to what your configuration file contains, and in particular:"
 msgstr "Achten Sie darauf, was in Ihrer Konfigurationsdatei steht, und besonders auf Folgendes:"
 
 #. type: itemize
-#: doc/guix.texi:2402
+#: doc/guix.texi:2495
 msgid "Make sure the @code{bootloader-configuration} form refers to the target you want to install GRUB on.  It should mention @code{grub-bootloader} if you are installing GRUB in the legacy way, or @code{grub-efi-bootloader} for newer UEFI systems.  For legacy systems, the @code{target} field names a device, like @code{/dev/sda}; for UEFI systems it names a path to a mounted EFI partition, like @code{/boot/efi}; do make sure the path is currently mounted and a @code{file-system} entry is specified in your configuration."
 msgstr "Ihre @code{bootloader-configuration}-Form muss sich auf dasjenige Ziel beziehen, auf das Sie GRUB installieren möchten. Sie sollte genau dann @code{grub-bootloader} nennen, wenn Sie GRUB im alten BIOS-Modus installieren, und für neuere UEFI-Systeme sollten Sie @code{grub-efi-bootloader} nennen. Bei Altsystemen bezeichnet das @code{target}-Feld ein Gerät wie @code{/dev/sda}, bei UEFI-Systemen bezeichnet es den Pfad zu einer eingebundenen EFI-Partition wie @code{/boot/efi}; stellen Sie sicher, dass die ESP tatsächlich dort eingebunden ist und ein @code{file-system}-Eintrag dafür in Ihrer Konfiguration festgelegt wurde."
 
 #. type: itemize
-#: doc/guix.texi:2408
+#: doc/guix.texi:2501
 msgid "Be sure that your file system labels match the value of their respective @code{device} fields in your @code{file-system} configuration, assuming your @code{file-system} configuration uses the @code{file-system-label} procedure in its @code{device} field."
 msgstr "Dateisystembezeichnungen müssen mit den jeweiligen @code{device}-Feldern in Ihrer @code{file-system}-Konfiguration übereinstimmen, sofern Sie in Ihrer @code{file-system}-Konfiguration die Prozedur @code{file-system-label} für ihre @code{device}-Felder benutzen."
 
 #. type: itemize
-#: doc/guix.texi:2412
+#: doc/guix.texi:2505
 msgid "If there are encrypted or RAID partitions, make sure to add a @code{mapped-devices} field to describe them (@pxref{Mapped Devices})."
 msgstr "Gibt es verschlüsselte Partitionen oder RAID-Partitionen, dann müssen sie im @code{mapped-devices}-Feld genannt werden (siehe @ref{Mapped Devices})."
 
 #. type: Plain text
-#: doc/guix.texi:2417
+#: doc/guix.texi:2510
 msgid "Once you are done preparing the configuration file, the new system must be initialized (remember that the target root file system is mounted under @file{/mnt}):"
 msgstr "Wenn Sie damit fertig sind, Ihre Konfigurationsdatei vorzubereiten, können Sie das neue System initialisieren (denken Sie daran, dass zukünftige Wurzeldateisystem muss unter @file{/mnt} wie bereits beschrieben eingebunden sein):"
 
 #. type: example
-#: doc/guix.texi:2420
+#: doc/guix.texi:2513
 #, no-wrap
 msgid "guix system init /mnt/etc/config.scm /mnt\n"
 msgstr "guix system init /mnt/etc/config.scm /mnt\n"
 
 #. type: Plain text
-#: doc/guix.texi:2427
+#: doc/guix.texi:2520
 msgid "This copies all the necessary files and installs GRUB on @file{/dev/sdX}, unless you pass the @option{--no-bootloader} option.  For more information, @pxref{Invoking guix system}.  This command may trigger downloads or builds of missing packages, which can take some time."
 msgstr "Dies kopiert alle notwendigen Dateien und installiert GRUB auf @file{/dev/sdX}, sofern Sie nicht noch die Befehlszeilenoption @option{--no-bootloader} benutzen. Weitere Informationen finden Sie im Abschnitt @ref{Invoking guix system}. Der Befehl kann das Herunterladen oder Erstellen fehlender Softwarepakete auslösen, was einige Zeit in Anspruch nehmen kann."
 
 #. type: Plain text
-#: doc/guix.texi:2435
+#: doc/guix.texi:2528
 msgid "Once that command has completed---and hopefully succeeded!---you can run @command{reboot} and boot into the new system.  The @code{root} password in the new system is initially empty; other users' passwords need to be initialized by running the @command{passwd} command as @code{root}, unless your configuration specifies otherwise (@pxref{user-account-password, user account passwords}).  @xref{After System Installation}, for what's next!"
 msgstr "Sobald der Befehl erfolgreich — hoffentlich! — durchgelaufen ist, können Sie mit dem Befehl @command{reboot} das neue System booten lassen. Der Administratornutzer @code{root} hat im neuen System zunächst ein leeres Passwort, und Passwörter der anderen Nutzer müssen Sie später setzen, indem Sie den Befehl @command{passwd} als @code{root} ausführen, außer Ihre Konfiguration enthält schon Passwörter (siehe @ref{user-account-password, Passwörter für Benutzerkonten}). Siehe @ref{After System Installation} für Informationen, wie es weiter geht!"
 
 #. type: Plain text
-#: doc/guix.texi:2442
+#: doc/guix.texi:2535
 msgid "Success, you've now booted into Guix System! From then on, you can update the system whenever you want by running, say:"
 msgstr "Sie haben es geschafft: Sie haben Guix System erfolgreich gebootet! Von jetzt an können Sie Guix System aktualisieren, wann Sie möchten, indem Sie zum Beispiel das hier ausführen:"
 
 #. type: example
-#: doc/guix.texi:2446
+#: doc/guix.texi:2539
 #, no-wrap
 msgid ""
 "guix pull\n"
@@ -6602,93 +7107,93 @@ msgstr ""
 "sudo guix system reconfigure /etc/config.scm\n"
 
 #. type: Plain text
-#: doc/guix.texi:2452
+#: doc/guix.texi:2545
 msgid "This builds a new system generation with the latest packages and services (@pxref{Invoking guix system}).  We recommend doing that regularly so that your system includes the latest security updates (@pxref{Security Updates})."
 msgstr "Dadurch wird eine neue Systemgeneration aus den neuesten Paketen und Diensten erstellt (siehe @ref{Invoking guix system}). Wir empfehlen, diese Schritte regelmäßig zu wiederholen, damit Ihr System die aktuellen Sicherheitsaktualisierungen benutzt (siehe @ref{Security Updates})."
 
 #. type: cindex
-#: doc/guix.texi:2455
+#: doc/guix.texi:2548
 #, no-wrap
 msgid "sudo vs. @command{guix pull}"
 msgstr "sudo, Wirkung auf @command{guix pull}"
 
 #. type: quotation
-#: doc/guix.texi:2459
-msgid "Note that @command{sudo guix} runs your user's @command{guix} command and @emph{not} root's, because @command{sudo} leaves @code{PATH} unchanged.  To explicitly run root's @command{guix}, type @command{sudo -i guix @dots{}}."
-msgstr "Beachten Sie, dass bei Nutzung von @command{sudo guix} der @command{guix}-Befehl des aktiven Benutzers ausgeführt wird und @emph{nicht} der des Administratornutzers „root“, weil @command{sudo} die Umgebungsvariable @code{PATH} unverändert lässt. Um ausdrücklich das @command{guix}-Programm des Administrators aufzurufen, müssen Sie @command{sudo -i guix …} eintippen."
+#: doc/guix.texi:2552
+msgid "Note that @command{sudo guix} runs your user's @command{guix} command and @emph{not} root's, because @command{sudo} leaves @env{PATH} unchanged.  To explicitly run root's @command{guix}, type @command{sudo -i guix @dots{}}."
+msgstr "Beachten Sie, dass bei Nutzung von @command{sudo guix} der @command{guix}-Befehl des aktiven Benutzers ausgeführt wird und @emph{nicht} der des Administratornutzers „root“, weil @command{sudo} die Umgebungsvariable @env{PATH} unverändert lässt. Um ausdrücklich das @command{guix}-Programm des Administrators aufzurufen, müssen Sie @command{sudo -i guix …} eintippen."
 
 #. type: quotation
-#: doc/guix.texi:2464
+#: doc/guix.texi:2557
 msgid "The difference matters here, because @command{guix pull} updates the @command{guix} command and package definitions only for the user it is ran as.  This means that if you choose to use @command{guix system reconfigure} in root's login shell, you'll need to @command{guix pull} separately."
 msgstr "Das macht hier einen Unterschied, weil @command{guix pull} den @command{guix}-Befehl und Paketdefinitionen nur für dasjenige Benutzerkonto aktualisiert, mit dem es ausgeführt wird. Würden Sie stattdessen in der Anmelde-Shell des „root“-Nutzers @command{guix system reconfigure} ausführen, müssten Sie auch für ihn @command{guix pull} ausführen."
 
 #. type: Plain text
-#: doc/guix.texi:2468
-msgid "Join us on @code{#guix} on the Freenode IRC network or on @email{guix-devel@@gnu.org} to share your experience!"
-msgstr "Besuchen Sie uns auf @code{#guix} auf dem Freenode-IRC-Netzwerk oder auf der Mailing-Liste @file{guix-devel@@gnu.org}, um uns Rückmeldung zu geben!"
+#: doc/guix.texi:2562
+msgid "Now, @pxref{Getting Started}, and join us on @code{#guix} on the Freenode IRC network or on @email{guix-devel@@gnu.org} to share your experience!"
+msgstr "Werfen Sie nun einen Blick auf @ref{Getting Started} und besuchen Sie uns auf @code{#guix} auf dem Freenode-IRC-Netzwerk oder auf der Mailing-Liste @file{guix-devel@@gnu.org}, um uns Rückmeldung zu geben!"
 
 #. type: section
-#: doc/guix.texi:2471
+#: doc/guix.texi:2565
 #, no-wrap
 msgid "Installing Guix in a Virtual Machine"
 msgstr "Guix in einer virtuellen Maschine installieren"
 
 #. type: cindex
-#: doc/guix.texi:2473
+#: doc/guix.texi:2567
 #, no-wrap
 msgid "virtual machine, Guix System installation"
 msgstr "virtuelle Maschine, Guix System installieren"
 
 #. type: cindex
-#: doc/guix.texi:2474
+#: doc/guix.texi:2568
 #, no-wrap
 msgid "virtual private server (VPS)"
 msgstr "Virtual Private Server (VPS)"
 
 #. type: cindex
-#: doc/guix.texi:2475
+#: doc/guix.texi:2569
 #, no-wrap
 msgid "VPS (virtual private server)"
 msgstr "VPS (Virtual Private Server)"
 
 #. type: Plain text
-#: doc/guix.texi:2479
+#: doc/guix.texi:2573
 msgid "If you'd like to install Guix System in a virtual machine (VM) or on a virtual private server (VPS) rather than on your beloved machine, this section is for you."
 msgstr "Wenn Sie Guix System auf einer virtuellen Maschine (VM) oder einem „Virtual Private Server“ (VPS) statt auf Ihrer echten Maschine installieren möchten, ist dieser Abschnitt hier richtig für Sie."
 
 #. type: Plain text
-#: doc/guix.texi:2482
+#: doc/guix.texi:2576
 msgid "To boot a @uref{https://qemu.org/,QEMU} VM for installing Guix System in a disk image, follow these steps:"
 msgstr "Um eine virtuelle Maschine für @uref{https://qemu.org/,QEMU} aufzusetzen, mit der Sie Guix System in ein „Disk-Image“ installieren können (also in eine Datei mit einem Abbild eines Plattenspeichers), gehen Sie so vor:"
 
 #. type: enumerate
-#: doc/guix.texi:2487
+#: doc/guix.texi:2581
 msgid "First, retrieve and decompress the Guix system installation image as described previously (@pxref{USB Stick and DVD Installation})."
 msgstr "Zunächst laden Sie das Installationsabbild des Guix-Systems wie zuvor beschrieben herunter und entpacken es (siehe @ref{USB Stick and DVD Installation})."
 
 #. type: enumerate
-#: doc/guix.texi:2491
+#: doc/guix.texi:2585
 msgid "Create a disk image that will hold the installed system.  To make a qcow2-formatted disk image, use the @command{qemu-img} command:"
 msgstr "Legen Sie nun ein Disk-Image an, das das System nach der Installation enthalten soll. Um ein qcow2-formatiertes Disk-Image zu erstellen, benutzen Sie den Befehl @command{qemu-img}:"
 
 #. type: example
-#: doc/guix.texi:2494
+#: doc/guix.texi:2588
 #, no-wrap
 msgid "qemu-img create -f qcow2 guix-system.img 50G\n"
 msgstr "qemu-img create -f qcow2 guix-system.img 50G\n"
 
 #. type: enumerate
-#: doc/guix.texi:2498
+#: doc/guix.texi:2592
 msgid "The resulting file will be much smaller than 50 GB (typically less than 1 MB), but it will grow as the virtualized storage device is filled up."
 msgstr "Die Datei, die Sie herausbekommen, wird wesentlich kleiner als 50 GB sein (typischerweise kleiner als 1 MB), vergrößert sich aber, wenn der virtualisierte Speicher gefüllt wird."
 
 #. type: enumerate
-#: doc/guix.texi:2501
+#: doc/guix.texi:2595
 msgid "Boot the USB installation image in an VM:"
 msgstr "Starten Sie das USB-Installationsabbild auf einer virtuellen Maschine:"
 
 #. type: example
-#: doc/guix.texi:2507
+#: doc/guix.texi:2601
 #, no-wrap
 msgid ""
 "qemu-system-x86_64 -m 1024 -smp 1 -enable-kvm \\\n"
@@ -6702,301 +7207,558 @@ msgstr ""
 "  -drive media=cdrom,file=guix-system-install-@value{VERSION}.@var{System}.iso\n"
 
 #. type: enumerate
-#: doc/guix.texi:2511
+#: doc/guix.texi:2605
 msgid "@code{-enable-kvm} is optional, but significantly improves performance, @pxref{Running Guix in a VM}."
 msgstr "@code{-enable-kvm} ist optional, verbessert die Rechenleistung aber erheblich, siehe @ref{Running Guix in a VM}."
 
 #. type: enumerate
-#: doc/guix.texi:2515
+#: doc/guix.texi:2609
 msgid "You're now root in the VM, proceed with the installation process.  @xref{Preparing for Installation}, and follow the instructions."
 msgstr "Sie sind nun in der virtuellen Maschine als Administratornutzer @code{root} angemeldet und können mit der Installation wie gewohnt fortfahren. Folgen Sie der Anleitung im Abschnitt @ref{Preparing for Installation}."
 
 #. type: Plain text
-#: doc/guix.texi:2520
+#: doc/guix.texi:2614
 msgid "Once installation is complete, you can boot the system that's on your @file{guix-system.img} image.  @xref{Running Guix in a VM}, for how to do that."
 msgstr "Wurde die Installation abgeschlossen, können Sie das System starten, das sich nun als Abbild in der Datei @file{guix-system.img} befindet. Der Abschnitt @ref{Running Guix in a VM} erklärt, wie Sie das tun können."
 
 #. type: cindex
-#: doc/guix.texi:2524
+#: doc/guix.texi:2618
 #, no-wrap
 msgid "installation image"
 msgstr "Installationsabbild"
 
 #. type: Plain text
-#: doc/guix.texi:2527
+#: doc/guix.texi:2621
 msgid "The installation image described above was built using the @command{guix system} command, specifically:"
 msgstr "Das oben beschriebene Installationsabbild wurde mit dem Befehl @command{guix system} erstellt, genauer gesagt mit:"
 
 #. type: example
-#: doc/guix.texi:2531
+#: doc/guix.texi:2624
 #, no-wrap
-msgid ""
-"guix system disk-image --file-system-type=iso9660 \\\n"
-"  gnu/system/install.scm\n"
-msgstr ""
-"guix system disk-image --file-system-type=iso9660 \\\n"
-"  gnu/system/install.scm\n"
+msgid "guix system disk-image -t iso9660 gnu/system/install.scm\n"
+msgstr "guix system disk-image -t iso9660 gnu/system/install.scm\n"
 
 #. type: Plain text
-#: doc/guix.texi:2536
+#: doc/guix.texi:2629
 msgid "Have a look at @file{gnu/system/install.scm} in the source tree, and see also @ref{Invoking guix system} for more information about the installation image."
 msgstr "Die Datei @file{gnu/system/install.scm} finden Sie im Quellbaum von Guix. Schauen Sie sich die Datei und auch den Abschnitt @ref{Invoking guix system} an, um mehr Informationen über das Installationsabbild zu erhalten."
 
 #. type: section
-#: doc/guix.texi:2537
+#: doc/guix.texi:2630
 #, no-wrap
 msgid "Building the Installation Image for ARM Boards"
 msgstr "Abbild zur Installation für ARM-Rechner erstellen"
 
 #. type: Plain text
-#: doc/guix.texi:2541
+#: doc/guix.texi:2634
 msgid "Many ARM boards require a specific variant of the @uref{https://www.denx.de/wiki/U-Boot/, U-Boot} bootloader."
 msgstr "Viele ARM-Chips funktionieren nur mit ihrer eigenen speziellen Variante des @uref{https://www.denx.de/wiki/U-Boot/, U-Boot-Bootloaders}."
 
 #. type: Plain text
-#: doc/guix.texi:2545
+#: doc/guix.texi:2638
 msgid "If you build a disk image and the bootloader is not available otherwise (on another boot drive etc), it's advisable to build an image that includes the bootloader, specifically:"
 msgstr "Wenn Sie ein Disk-Image erstellen und der Bootloader nicht anderweitig schon installiert ist (auf einem anderen Laufwerk), ist es ratsam, ein Disk-Image zu erstellen, was den Bootloader enthält, mit dem Befehl:"
 
 #. type: example
-#: doc/guix.texi:2548
+#: doc/guix.texi:2641
 #, no-wrap
 msgid "guix system disk-image --system=armhf-linux -e '((@@ (gnu system install) os-with-u-boot) (@@ (gnu system install) installation-os) \"A20-OLinuXino-Lime2\")'\n"
 msgstr "guix system disk-image --system=armhf-linux -e '((@@ (gnu system install) os-with-u-boot) (@@ (gnu system install) installation-os) \"A20-OLinuXino-Lime2\")'\n"
 
 #. type: Plain text
-#: doc/guix.texi:2552
+#: doc/guix.texi:2645
 msgid "@code{A20-OLinuXino-Lime2} is the name of the board.  If you specify an invalid board, a list of possible boards will be printed."
 msgstr "@code{A20-OLinuXino-Lime2} ist der Name des Chips. Wenn Sie einen ungültigen Namen eingeben, wird eine Liste möglicher Chip-Namen ausgegeben."
 
+#. type: Plain text
+#: doc/guix.texi:2655
+msgid "Presumably, you've reached this section because either you have installed Guix on top of another distribution (@pxref{Installation}), or you've installed the standalone Guix System (@pxref{System Installation}).  It's time for you to get started using Guix and this section aims to help you do that and give you a feel of what it's like."
+msgstr "Wenn Sie in diesem Abschnitt angekommen sind, haben Sie vermutlich zuvor entweder Guix auf einer fremden Distribution installiert (siehe @ref{Installation}) oder Sie haben das eigenständige „Guix System“ installiert (siehe @ref{System Installation}). Nun wird es Zeit für Sie, Guix kennenzulernen. Darum soll es in diesem Abschnitt gehen. Wir möchten Ihnen ein Gefühl vermitteln, wie sich Guix anfühlt."
+
+#. type: Plain text
+#: doc/guix.texi:2659
+msgid "Guix is about installing software, so probably the first thing you'll want to do is to actually look for software.  Let's say you're looking for a text editor, you can run:"
+msgstr "Bei Guix geht es darum, Software zu installieren, also wollen Sie vermutlich zunächst Software finden, die Sie haben möchten. Sagen wir, Sie suchen ein Programm zur Textverarbeitung. Dann führen Sie diesen Befehl aus:"
+
+#. type: example
+#: doc/guix.texi:2662
+#, no-wrap
+msgid "guix search text editor\n"
+msgstr "guix search text editor\n"
+
+#. type: Plain text
+#: doc/guix.texi:2669
+msgid "This command shows you a number of matching @dfn{packages}, each time showing the package's name, version, a description, and additional info.  Once you've found out the one you want to use, let's say Emacs (ah ha!), you can go ahead and install it (run this command as a regular user, @emph{no need for root privileges}!):"
+msgstr "Durch diesen Befehl stoßen Sie auf eine Reihe passender @dfn{Pakete}. Für jedes werden Ihnen der Name des Pakets, seine Version, eine Beschreibung und weitere Informationen angezeigt. Sobald Sie das Paket gefunden haben, dass Sie benutzen möchten, sagen wir mal Emacs (aha!), dann können Sie weitermachen und es installieren (führen Sie diesen Befehl als normaler Benutzer aus, @emph{Guix braucht hierfür keine Administratorrechte}!):"
+
+#. type: example
+#: doc/guix.texi:2672
+#, no-wrap
+msgid "guix install emacs\n"
+msgstr "guix install emacs\n"
+
+#. type: Plain text
+#: doc/guix.texi:2678
+msgid "You've installed your first package, congrats! In the process, you've probably noticed that Guix downloaded pre-built binaries; or, if you explicitly chose to @emph{not} use pre-built binaries, then probably Guix is still building software (@pxref{Substitutes}, for more info)."
+msgstr "Sie haben soeben Ihr erstes Paket installiert, Glückwunsch! Während Sie das getan haben, ist Ihnen wahrscheinlich aufgefallen, dass Guix vorerstellte Programmbinärdateien herunterlädt, statt sie auf Ihrem Rechner zu kompilieren, außer wenn Sie diese Funktionalität vorher ausdrücklich @emph{abgeschaltet} haben. In diesem Fall ist Guix wahrscheinlich noch immer mit der Erstellung beschäftigt. Siehe @ref{Substitutes} für mehr Informationen."
+
+#. type: Plain text
+#: doc/guix.texi:2681
+msgid "Unless you're using Guix System, the @command{guix install} command must have printed this hint:"
+msgstr "Wenn Sie @emph{nicht} Guix System benutzen, wird der Befehl @command{guix install} diesen Hinweis ausgegeben haben:"
+
+#. type: example
+#: doc/guix.texi:2684
+#, no-wrap
+msgid ""
+"hint: Consider setting the necessary environment variables by running:\n"
+"\n"
+msgstr ""
+"Hinweis: Vielleicht möchten Sie die nötigen Umgebungsvariablen\n"
+"festlegen, indem Sie dies ausführen:\n"
+"\n"
+
+#. type: example
+#: doc/guix.texi:2687
+#, no-wrap
+msgid ""
+"     GUIX_PROFILE=\"$HOME/.guix-profile\"\n"
+"     . \"$GUIX_PROFILE/etc/profile\"\n"
+"\n"
+msgstr ""
+"     GUIX_PROFILE=\"$HOME/.guix-profile\"\n"
+"     . \"$GUIX_PROFILE/etc/profile\"\n"
+"\n"
+
+#. type: example
+#: doc/guix.texi:2689
+#, no-wrap
+msgid "Alternately, see `guix package --search-paths -p \"$HOME/.guix-profile\"'.\n"
+msgstr "Sie können sie auch mit `guix package --search-paths -p \"$HOME/.guix-profile\"' nachlesen.\n"
+
+#. type: Plain text
+#: doc/guix.texi:2703
+msgid "Indeed, you must now tell your shell where @command{emacs} and other programs installed with Guix are to be found.  Pasting the two lines above will do just that: it will add @code{$HOME/.guix-profile/bin}---which is where the installed package is---to the @code{PATH} environment variable.  You can paste these two lines in your shell so they take effect right away, but more importantly you should add them to @file{~/.bash_profile} (or equivalent file if you do not use Bash) so that environment variables are set next time you spawn a shell.  You only need to do this once and other search paths environment variables will be taken care of similarly---e.g., if you eventually install @code{python} and Python libraries, @code{PYTHONPATH} will be defined."
+msgstr "Tatsächlich ist es erforderlich, dass Sie Ihrer Shell erst einmal mitteilen, wo sich @command{emacs} und andere mit Guix installierte Programme befinden. Wenn Sie die obigen zwei Zeilen in die Shell einfügen, wird genau das bewerkstelligt: @code{$HOME/.guix-profile/bin} — wo sich das installierte Paket befindet — wird in die @code{PATH}-Umgebungsvariable eingefügt. Sie können diese zwei Zeilen in Ihre Shell hineinkopieren, damit sie sich sofort auswirken, aber wichtiger ist, dass Sie sie in @file{~/.bash_profile} kopieren (oder eine äquivalente Datei, wenn Sie @emph{nicht} Bash benutzen), damit die Umgebungsvariablen nächstes Mal gesetzt sind, wenn Sie wieder eine Shell öffnen. Das müssen Sie nur einmal machen und es sorgt auch bei anderen Umgebungsvariablen mit Suchpfaden dafür, dass die installierte Software gefunden wird. Wenn Sie zum Beispiel @code{python} und Bibliotheken für Python installieren, wird @code{PYTHONPATH} definiert."
+
+#. type: Plain text
+#: doc/guix.texi:2706
+msgid "You can go on installing packages at your will.  To list installed packages, run:"
+msgstr "Sie können nun weitere Pakete installieren, wann immer Sie möchten. Um die installierten Pakete aufzulisten, führen Sie dies aus:"
+
+#. type: example
+#: doc/guix.texi:2709
+#, no-wrap
+msgid "guix package --list-installed\n"
+msgstr "guix package --list-installed\n"
+
+#. type: Plain text
+#: doc/guix.texi:2714
+msgid "To remove a package, you would unsurprisingly run @command{guix remove}.  A distinguishing feature is the ability to @dfn{roll back} any operation you made---installation, removal, upgrade---by simply typing:"
+msgstr "Um ein Paket wieder zu entfernen, benutzen Sie wenig überraschend @command{guix remove}. Guix hebt sich von anderen Paketverwaltern darin ab, dass Sie jede Operation, die Sie durchgeführt haben, auch wieder @dfn{zurücksetzen} können, egal ob @code{install}, @code{remove} oder @code{upgrade}, indem Sie dies ausführen:"
+
+#. type: example
+#: doc/guix.texi:2717
+#, no-wrap
+msgid "guix package --roll-back\n"
+msgstr "guix package --roll-back\n"
+
+#. type: Plain text
+#: doc/guix.texi:2722
+msgid "This is because each operation is in fact a @dfn{transaction} that creates a new @dfn{generation}.  These generations and the difference between them can be displayed by running:"
+msgstr "Das geht deshalb, weil jede Operation eigentlich als @dfn{Transaktion} durchgeführt wird, die eine neue @dfn{Generation} erstellt. Über folgenden Befehl bekommen Sie diese Generationen und den Unterschied zwischen ihnen angezeigt:"
+
+#. type: example
+#: doc/guix.texi:2725
+#, no-wrap
+msgid "guix package --list-generations\n"
+msgstr "guix package --list-generations\n"
+
+#. type: Plain text
+#: doc/guix.texi:2728
+msgid "Now you know the basics of package management!"
+msgstr "Jetzt kennen Sie die Grundlagen der Paketverwaltung!"
+
+#. type: quotation
+#: doc/guix.texi:2729 doc/guix.texi:2788
+#, no-wrap
+msgid "Going further"
+msgstr "Vertiefung"
+
+#. type: quotation
+#: doc/guix.texi:2737
+msgid "@xref{Package Management}, for more about package management.  You may like @dfn{declarative} package management with @command{guix package --manifest}, managing separate @dfn{profiles} with @option{--profile}, deleting old generations, collecting garbage, and other nifty features that will come in handy as you become more familiar with Guix.  If you are a developer, @pxref{Development} for additional tools.  And if you're curious, @pxref{Features}, to peek under the hood."
+msgstr "Lesen Sie den Abschnitt zur @ref{Package Management} für mehr Informationen dazu. Vielleicht gefällt Ihnen @dfn{deklarative} Paketverwaltung mit @command{guix package --manifest}, die Verwaltung separater @dfn{Profile} mit @option{--profile}, das Löschen alter Generationen und das „Müllsammeln“ (Garbage Collection) sowie andere raffinierte Funktionalitäten, die sich als nützlich erweisen werden, wenn Sie sich länger mit Guix befassen. Wenn Sie Software entwickeln, lernen Sie im Abschnitt @ref{Development} hilfreiche Werkzeuge kennen. Und wenn Sie neugierig sind, wird Ihnen im Abschnitt @ref{Features} ein Überblick gegeben, wie und nach welchen Prinzipien Guix aufgebaut ist."
+
+#. type: Plain text
+#: doc/guix.texi:2742
+msgid "Once you've installed a set of packages, you will want to periodically @emph{upgrade} them to the latest and greatest version.  To do that, you will first pull the latest revision of Guix and its package collection:"
+msgstr "Sobald Sie eine Reihe von Paketen installiert haben, werden Sie diese regelmäßig auf deren neueste und beste Version @emph{aktualisieren} wollen. Dazu ist es erforderlich, dass Sie zunächst die neueste Version von Guix und seiner Paketsammlung mit einem „Pull“ laden:"
+
+#. type: Plain text
+#: doc/guix.texi:2752
+msgid "The end result is a new @command{guix} command, under @file{~/.config/guix/current/bin}.  Unless you're on Guix System, the first time you run @command{guix pull}, be sure to follow the hint that the command prints and, similar to what we saw above, paste these two lines in your terminal and @file{.bash_profile}:"
+msgstr "Das Endergebnis ist ein neuer @command{guix}-Befehl innerhalb von @file{~/.config/guix/current/bin}. Sofern Sie nicht Guix System benutzen, sollten Sie dem Hinweis Folge leisten, den Sie bei der ersten Ausführung von @command{guix pull} angezeigt bekommen, d.h.@: ähnlich wie oben beschrieben, fügen Sie diese zwei Zeilen in Ihr Terminal und Ihre @file{.bash_profile} ein:"
+
+#. type: example
+#: doc/guix.texi:2756
+#, no-wrap
+msgid ""
+"GUIX_PROFILE=\"$HOME/.config/guix/current/etc/profile\"\n"
+". \"$GUIX_PROFILE/etc/profile\"\n"
+msgstr ""
+"GUIX_PROFILE=\"$HOME/.config/guix/current/etc/profile\"\n"
+". \"$GUIX_PROFILE/etc/profile\"\n"
+
+#. type: Plain text
+#: doc/guix.texi:2760
+msgid "You must also instruct your shell to point to this new @command{guix}:"
+msgstr "Ebenso müssen Sie Ihre Shell auf diesen neuen @command{guix}-Befehl hinweisen:"
+
+#. type: example
+#: doc/guix.texi:2763
+#, no-wrap
+msgid "hash guix\n"
+msgstr "hash guix\n"
+
+#. type: Plain text
+#: doc/guix.texi:2767
+msgid "At this point, you're running a brand new Guix.  You can thus go ahead and actually upgrade all the packages you previously installed:"
+msgstr "Wenn das geschafft ist, benutzen Sie ein brandneues Guix. Jetzt können Sie damit fortfahren, alle zuvor installierten Pakete zu aktualisieren:"
+
+#. type: example
+#: doc/guix.texi:2770
+#, no-wrap
+msgid "guix upgrade\n"
+msgstr "guix upgrade\n"
+
+#. type: Plain text
+#: doc/guix.texi:2776
+msgid "As you run this command, you will see that binaries are downloaded (or perhaps some packages are built), and eventually you end up with the upgraded packages.  Should one of these upgraded packages not be to your liking, remember you can always roll back!"
+msgstr "Während dieser Befehl ausgeführt wird, werden Sie sehen, dass Binärdateien heruntergeladen werden (vielleicht müssen manche Pakete auch auf Ihrem Rechner erstellt werden). Letztendlich stehen Ihnen die aktualisierten Pakete zur Verfügung. Falls eine der Aktualisierungen nicht Ihren Wünschen entspricht, haben Sie immer auch die Möglichkeit, sie auf den alten Stand zurückzusetzen!"
+
+#. type: Plain text
+#: doc/guix.texi:2779
+msgid "You can display the exact revision of Guix you're currently using by running:"
+msgstr "Sie können sich anzeigen lassen, welche Version von Guix Sie genau verwenden, indem Sie dies ausführen:"
+
+#. type: example
+#: doc/guix.texi:2782
+#, no-wrap
+msgid "guix describe\n"
+msgstr "guix describe\n"
+
+#. type: Plain text
+#: doc/guix.texi:2787
+msgid "The information it displays is @emph{all it takes to reproduce the exact same Guix}, be it at a different point in time or on a different machine."
+msgstr "Die angezeigten Informationen sind @emph{alles, was nötig ist, um genau dasselbe Guix zu installieren}. Damit können Sie zu einem anderen Zeitpunkt oder auf einer anderen Maschine genau dieselbe Software nachbilden."
+
+#. type: quotation
+#: doc/guix.texi:2793
+msgid "@xref{Invoking guix pull}, for more information.  @xref{Channels}, on how to specify additional @dfn{channels} to pull packages from, how to replicate Guix, and more.  You may also find @command{time-machine} handy (@pxref{Invoking guix time-machine})."
+msgstr "Siehe @ref{Invoking guix pull} für weitere Informationen. Siehe @ref{Channels} für Erklärungen, wie man zusätzliche @dfn{Kanäle} als Paketquellen angibt, wie man Guix nachbilden kann, und mehr. Vielleicht hilft Ihnen auch die @command{time-machine}-Funktion (siehe @ref{Invoking guix time-machine})."
+
+#. type: Plain text
+#: doc/guix.texi:2798
+msgid "If you installed Guix System, one of the first things you'll want to do is to upgrade your system.  Once you've run @command{guix pull} to get the latest Guix, you can upgrade the system like this:"
+msgstr "Wenn Sie Guix System installieren, dürfte eines der ersten Dinge, das Sie tun wollen, eine Aktualisierung Ihres Systems sein. Sobald Sie @command{guix pull} ausgeführt haben, können Sie mit diesem Befehl das System aktualisieren:"
+
+#. type: example
+#: doc/guix.texi:2801
+#, no-wrap
+msgid "sudo guix system reconfigure /etc/config.scm\n"
+msgstr "sudo guix system reconfigure /etc/config.scm\n"
+
+#. type: Plain text
+#: doc/guix.texi:2810
+msgid "Upon completion, the system runs the latest versions of its software packages.  When you eventually reboot, you'll notice a sub-menu in the bootloader that reads ``Old system generations'': it's what allows you to boot @emph{an older generation of your system}, should the latest generation be ``broken'' or otherwise unsatisfying.  Just like for packages, you can always @emph{roll back} to a previous generation @emph{of the whole system}:"
+msgstr "Nach Abschluss läuft auf dem System die neueste Version seiner Software-Pakete. Sobald Sie den Rechner neu starten, wird Ihnen ein Untermenü im Bootloader auffallen, das mit „Old system generations“ bezeichnet wird. Über dieses können Sie @emph{eine ältere Generation Ihres Systems} starten, falls die neueste Generation auf irgendeine Weise „kaputt“ ist oder auf andere Weise nicht Ihren Wünschen entspricht. Genau wie bei Paketen können Sie jederzeit @emph{das gesamte System} auf eine vorherige Generation @emph{zurücksetzen}:"
+
+#. type: example
+#: doc/guix.texi:2813
+#, no-wrap
+msgid "sudo guix system roll-back\n"
+msgstr "sudo guix system roll-back\n"
+
+#. type: Plain text
+#: doc/guix.texi:2820
+msgid "There are many things you'll probably want to tweak on your system: adding new user accounts, adding new system services, fiddling with the configuration of those services, etc.  The system configuration is @emph{entirely} described in the @file{/etc/config.scm} file.  @xref{Using the Configuration System}, to learn how to change it."
+msgstr "Es gibt viele Feineinstellungen, die Sie an Ihrem System wahrscheinlich vornehmen möchten. Vielleicht möchten Sie neue Benutzerkonten oder neue Systemdienste hinzufügen, mit anderen Konfigurationen solcher Dienste experimentieren oder Ähnliches. Die @emph{gesamte} Systemkonfiguration wird durch die Datei @file{/etc/config.scm} beschrieben. Siehe @ref{Using the Configuration System}, wo erklärt wird, wie man sie ändert."
+
+#. type: Plain text
+#: doc/guix.texi:2822
+msgid "Now you know enough to get started!"
+msgstr "Jetzt wissen Sie genug, um anzufangen!"
+
+#. type: quotation
+#: doc/guix.texi:2823
+#, no-wrap
+msgid "Resources"
+msgstr "Weitere Ressourcen"
+
+#. type: quotation
+#: doc/guix.texi:2826
+msgid "The rest of this manual provides a reference for all things Guix.  Here are some additional resources you may find useful:"
+msgstr "Der Rest dieses Handbuchs stellt eine Referenz für alles rund um Guix dar. Hier sind ein paar andere Ressourcen, die sich als nützlich erweisen könnten:"
+
+#. type: itemize
+#: doc/guix.texi:2831
+msgid "@xref{Top,,, guix-cookbook, The GNU Guix Cookbook}, for a list of ``how-to'' style of recipes for a variety of applications."
+msgstr "Siehe @ref{Top,,, guix-cookbook, das GNU-Guix-Kochbuch} für eine Liste von anleitungsartigen Rezepten zu einer Vielzahl von Anwendungszwecken."
+
+#. type: itemize
+#: doc/guix.texi:2836
+msgid "The @uref{https://guix.gnu.org/guix-refcard.pdf, GNU Guix Reference Card} lists in two pages most of the commands and options you'll ever need."
+msgstr "In der @uref{https://guix.gnu.org/guix-refcard.pdf, GNU Guix Reference Card} sind in zwei Seiten die meisten Befehle und Befehlszeilenoptionen aufgeführt, die Sie jemals brauchen werden."
+
+#. type: itemize
+#: doc/guix.texi:2841
+msgid "The web site contains @uref{https://guix.gnu.org/en/videos/, instructional videos} covering topics such as everyday use of Guix, how to get help, and how to become a contributor."
+msgstr "Auf dem Webauftritt gibt es @uref{https://guix.gnu.org/de/videos/, Lehrvideos} zu Themen wie der alltäglichen Nutzung von Guix, wo man Hilfe bekommt und wie man mitmachen kann."
+
+#. type: itemize
+#: doc/guix.texi:2845
+msgid "@xref{Documentation}, to learn how to access documentation on your computer."
+msgstr "Siehe @ref{Documentation}, um zu erfahren, wie Sie von Ihrem Rechner aus auf Dokumentation von Software zugreifen können."
+
+#. type: quotation
+#: doc/guix.texi:2848
+msgid "We hope you will enjoy Guix as much as the community enjoys building it!"
+msgstr "Wir hoffen, dass Ihnen Guix genauso viel Spaß bereitet wie der Guix-Gemeinde bei seiner Entwicklung!"
+
 #. type: cindex
-#: doc/guix.texi:2557
+#: doc/guix.texi:2854
 #, no-wrap
 msgid "packages"
 msgstr "Pakete"
 
 #. type: Plain text
-#: doc/guix.texi:2562
+#: doc/guix.texi:2859
 msgid "The purpose of GNU Guix is to allow users to easily install, upgrade, and remove software packages, without having to know about their build procedures or dependencies.  Guix also goes beyond this obvious set of features."
 msgstr "Der Zweck von GNU Guix ist, Benutzern die leichte Installation, Aktualisierung und Entfernung von Software-Paketen zu ermöglichen, ohne dass sie ihre Erstellungsprozeduren oder Abhängigkeiten kennen müssen. Guix kann natürlich noch mehr als diese offensichtlichen Funktionalitäten."
 
 #. type: Plain text
-#: doc/guix.texi:2570
+#: doc/guix.texi:2867
 msgid "This chapter describes the main features of Guix, as well as the package management tools it provides.  Along with the command-line interface described below (@pxref{Invoking guix package, @code{guix package}}), you may also use the Emacs-Guix interface (@pxref{Top,,, emacs-guix, The Emacs-Guix Reference Manual}), after installing @code{emacs-guix} package (run @kbd{M-x guix-help} command to start with it):"
-msgstr "Dieses Kapitel beschreibt die Hauptfunktionalitäten von Guix, sowie die von Guix angebotenen Paketverwaltungswerkzeuge. Zusätzlich zu den im Folgenden beschriebenen Befehlszeilen-Benutzerschnittstellen (siehe @ref{Invoking guix package, @code{guix package}}) können Sie auch mit der Emacs-Guix-Schnittstelle (siehe @ref{Top,,, emacs-guix, The Emacs-Guix Reference Manual}) arbeiten, nachdem Sie das Paket @code{emacs-guix} installiert haben (führen Sie zum Einstieg in Emacs-Guix den Emacs-Befehl @kbd{M-x guix-help} aus):"
+msgstr "Dieses Kapitel beschreibt die Hauptfunktionalitäten von Guix, sowie die von Guix angebotenen Paketverwaltungswerkzeuge. Zusätzlich zu den im Folgenden beschriebenen Befehlszeilen-Benutzerschnittstellen (siehe @ref{Invoking guix package, @code{guix package}}) können Sie auch mit der Emacs-Guix-Schnittstelle (siehe @ref{Top,,, emacs-guix, Referenzhandbuch von Emacs-Guix}) arbeiten, nachdem Sie das Paket @code{emacs-guix} installiert haben (führen Sie zum Einstieg in Emacs-Guix den Emacs-Befehl @kbd{M-x guix-help} aus):"
 
 #. type: example
-#: doc/guix.texi:2573
+#: doc/guix.texi:2870
 #, no-wrap
 msgid "guix install emacs-guix\n"
 msgstr "guix install emacs-guix\n"
 
 #. type: Plain text
-#: doc/guix.texi:2595
+#: doc/guix.texi:2891
+msgid "Here we assume you've already made your first steps with Guix (@pxref{Getting Started}) and would like to get an overview about what's going on under the hood."
+msgstr "Wir nehmen hier an, dass Sie schon Ihre ersten Erfahrungen mit Guix gemacht haben (siehe @ref{Getting Started}) und gerne einen Überblick darüber bekommen würden, wie Guix im Detail funktioniert."
+
+#. type: Plain text
+#: doc/guix.texi:2895
 msgid "When using Guix, each package ends up in the @dfn{package store}, in its own directory---something that resembles @file{/gnu/store/xxx-package-1.2}, where @code{xxx} is a base32 string."
 msgstr "Wenn Sie Guix benutzen, landet jedes Paket schließlich im @dfn{Paket-Store} in seinem eigenen Verzeichnis — der Name ist ähnlich wie @file{/gnu/store/xxx-package-1.2}, wobei @code{xxx} eine Zeichenkette in Base32-Darstellung ist."
 
 #. type: Plain text
-#: doc/guix.texi:2600
+#: doc/guix.texi:2900
 msgid "Instead of referring to these directories, users have their own @dfn{profile}, which points to the packages that they actually want to use.  These profiles are stored within each user's home directory, at @code{$HOME/.guix-profile}."
 msgstr "Statt diese Verzeichnisse direkt anzugeben, haben Nutzer ihr eigenes @dfn{Profil}, welches auf diejenigen Pakete zeigt, die sie tatsächlich benutzen wollen. Diese Profile sind im Persönlichen Verzeichnis des jeweiligen Nutzers gespeichert als @code{$HOME/.guix-profile}."
 
 #. type: Plain text
-#: doc/guix.texi:2608
+#: doc/guix.texi:2908
 msgid "For example, @code{alice} installs GCC 4.7.2.  As a result, @file{/home/alice/.guix-profile/bin/gcc} points to @file{/gnu/store/@dots{}-gcc-4.7.2/bin/gcc}.  Now, on the same machine, @code{bob} had already installed GCC 4.8.0.  The profile of @code{bob} simply continues to point to @file{/gnu/store/@dots{}-gcc-4.8.0/bin/gcc}---i.e., both versions of GCC coexist on the same system without any interference."
 msgstr "Zum Beispiel installiert @code{alice} GCC 4.7.2. Dadurch zeigt dann @file{/home/alice/.guix-profile/bin/gcc} auf @file{/gnu/store/…-gcc-4.7.2/bin/gcc}. Auf demselben Rechner hat @code{bob} bereits GCC 4.8.0 installiert. Das Profil von @code{bob} zeigt dann einfach weiterhin auf @file{/gnu/store/…-gcc-4.8.0/bin/gcc} — d.h.@: beide Versionen von GCC koexistieren auf demselben System, ohne sich zu stören."
 
 #. type: Plain text
-#: doc/guix.texi:2612
+#: doc/guix.texi:2912
 msgid "The @command{guix package} command is the central tool to manage packages (@pxref{Invoking guix package}).  It operates on the per-user profiles, and can be used @emph{with normal user privileges}."
 msgstr "Der Befehl @command{guix package} ist das zentrale Werkzeug, um Pakete zu verwalten (siehe @ref{Invoking guix package}). Es arbeitet auf dem eigenen Profil jedes Nutzers und kann @emph{mit normalen Benutzerrechten} ausgeführt werden."
 
 #. type: cindex
-#: doc/guix.texi:2613 doc/guix.texi:2692
+#: doc/guix.texi:2913 doc/guix.texi:2992
 #, no-wrap
 msgid "transactions"
 msgstr "Transaktionen"
 
 #. type: Plain text
-#: doc/guix.texi:2620
+#: doc/guix.texi:2920
 msgid "The command provides the obvious install, remove, and upgrade operations.  Each invocation is actually a @emph{transaction}: either the specified operation succeeds, or nothing happens.  Thus, if the @command{guix package} process is terminated during the transaction, or if a power outage occurs during the transaction, then the user's profile remains in its previous state, and remains usable."
 msgstr "Der Befehl stellt die offensichtlichen Installations-, Entfernungs- und Aktualisierungsoperationen zur Verfügung. Jeder Aufruf ist tatsächlich eine eigene @emph{Transaktion}: Entweder die angegebene Operation wird erfolgreich durchgeführt, oder gar nichts passiert. Wenn also der Prozess von @command{guix package} während der Transaktion beendet wird, oder es zum Stromausfall während der Transaktion kommt, dann bleibt der alte, nutzbare Zustands des Nutzerprofils erhalten."
 
 #. type: Plain text
-#: doc/guix.texi:2628
+#: doc/guix.texi:2928
 msgid "In addition, any package transaction may be @emph{rolled back}.  So, if, for example, an upgrade installs a new version of a package that turns out to have a serious bug, users may roll back to the previous instance of their profile, which was known to work well.  Similarly, the global system configuration on Guix is subject to transactional upgrades and roll-back (@pxref{Using the Configuration System})."
 msgstr "Zudem kann jede Pakettransaktion @emph{zurückgesetzt} werden (Rollback). Wird also zum Beispiel durch eine Aktualisierung eine neue Version eines Pakets installiert, die einen schwerwiegenden Fehler zur Folge hat, können Nutzer ihr Profil einfach auf die vorherige Profilinstanz zurücksetzen, von der sie wissen, dass sie gut lief. Ebenso unterliegt bei Guix auch die globale Systemkonfiguration transaktionellen Aktualisierungen und Rücksetzungen (siehe @ref{Using the Configuration System})."
 
 #. type: Plain text
-#: doc/guix.texi:2635
+#: doc/guix.texi:2935
 msgid "All packages in the package store may be @emph{garbage-collected}.  Guix can determine which packages are still referenced by user profiles, and remove those that are provably no longer referenced (@pxref{Invoking guix gc}).  Users may also explicitly remove old generations of their profile so that the packages they refer to can be collected."
 msgstr "Alle Pakete im Paket-Store können vom @emph{Müllsammler} (Garbage Collector) gelöscht werden. Guix ist in der Lage, festzustellen, welche Pakete noch durch Benutzerprofile referenziert werden, und entfernt nur diese, die nachweislich nicht mehr referenziert werden (siehe @ref{Invoking guix gc}). Benutzer können auch ausdrücklich alte Generationen ihres Profils löschen, damit die zugehörigen Pakete vom Müllsammler gelöscht werden können."
 
 #. type: cindex
-#: doc/guix.texi:2636 doc/guix.texi:4392
+#: doc/guix.texi:2936 doc/guix.texi:4572
 #, no-wrap
 msgid "reproducibility"
 msgstr "Reproduzierbarkeit"
 
 #. type: Plain text
-#: doc/guix.texi:2648
+#: doc/guix.texi:2948
 msgid "Guix takes a @dfn{purely functional} approach to package management, as described in the introduction (@pxref{Introduction}).  Each @file{/gnu/store} package directory name contains a hash of all the inputs that were used to build that package---compiler, libraries, build scripts, etc.  This direct correspondence allows users to make sure a given package installation matches the current state of their distribution.  It also helps maximize @dfn{build reproducibility}: thanks to the isolated build environments that are used, a given build is likely to yield bit-identical files when performed on different machines (@pxref{Invoking guix-daemon, container})."
-msgstr "Guix verfolgt einen @dfn{rein funktionalen} Ansatz bei der Paketverwaltung, wie er in der Einleitung beschrieben wurde (siehe @ref{Introduction}). Jedes Paketverzeichnis im @file{/gnu/store} hat einen Hash all seiner bei der Erstellung benutzten Eingaben im Namen — Compiler, Bibliotheken, Erstellungs-Skripts etc. Diese direkte Entsprechung ermöglicht es Benutzern, eine Paketinstallation zu benutzen, die sicher dem aktuellen Stand ihrer Distribution entspricht. Sie maximiert auch die @dfn{Reproduzierbarkeit der Erstellungen} zu maximieren: Dank der isolierten Erstellungsumgebungen, die benutzt werden, resultiert eine Erstellung wahrscheinlich in bitweise identischen Dateien, auch wenn sie auf unterschiedlichen Maschinen durchgeführt wird (siehe @ref{Invoking guix-daemon, container})."
+msgstr "Guix verfolgt einen @dfn{rein funktionalen} Ansatz bei der Paketverwaltung, wie er in der Einleitung beschrieben wurde (siehe @ref{Introduction}). Jedes Paketverzeichnis im @file{/gnu/store} hat einen Hash all seiner bei der Erstellung benutzten Eingaben im Namen — Compiler, Bibliotheken, Erstellungs-Skripts etc. Diese direkte Entsprechung ermöglicht es Benutzern, eine Paketinstallation zu benutzen, die sicher dem aktuellen Stand ihrer Distribution entspricht. Sie hilft auch dabei, die @dfn{Reproduzierbarkeit der Erstellungen} zu maximieren: Dank der isolierten Erstellungsumgebungen, die benutzt werden, resultiert eine Erstellung wahrscheinlich in bitweise identischen Dateien, auch wenn sie auf unterschiedlichen Maschinen durchgeführt wird (siehe @ref{Invoking guix-daemon, Container})."
 
 #. type: Plain text
-#: doc/guix.texi:2659
+#: doc/guix.texi:2959
 msgid "This foundation allows Guix to support @dfn{transparent binary/source deployment}.  When a pre-built binary for a @file{/gnu/store} item is available from an external source---a @dfn{substitute}, Guix just downloads it and unpacks it; otherwise, it builds the package from source, locally (@pxref{Substitutes}).  Because build results are usually bit-for-bit reproducible, users do not have to trust servers that provide substitutes: they can force a local build and @emph{challenge} providers (@pxref{Invoking guix challenge})."
 msgstr "Auf dieser Grundlage kann Guix @dfn{transparent Binär- oder Quelldateien ausliefern}. Wenn eine vorerstellte Binärdatei für ein @file{/gnu/store}-Objekt von einer externen Quelle verfügbar ist — ein @dfn{Substitut} —, lädt Guix sie einfach herunter und entpackt sie, andernfalls erstellt Guix das Paket lokal aus seinem Quellcode (siehe @ref{Substitutes}). Weil Erstellungsergebnisse normalerweise Bit für Bit reproduzierbar sind, müssen die Nutzer den Servern, die Substitute anbieten, nicht blind vertrauen; sie können eine lokale Erstellung erzwingen und Substitute @emph{anfechten} (siehe @ref{Invoking guix challenge})."
 
 #. type: Plain text
-#: doc/guix.texi:2665
+#: doc/guix.texi:2965
 msgid "Control over the build environment is a feature that is also useful for developers.  The @command{guix environment} command allows developers of a package to quickly set up the right development environment for their package, without having to manually install the dependencies of the package into their profile (@pxref{Invoking guix environment})."
 msgstr "Kontrolle über die Erstellungsumgebung ist eine auch für Entwickler nützliche Funktionalität. Der Befehl @command{guix environment} ermöglicht es Entwicklern eines Pakets, schnell die richtige Entwicklungsumgebung für ihr Paket einzurichten, ohne manuell die Abhängigkeiten des Pakets in ihr Profil installieren zu müssen (siehe @ref{Invoking guix environment})."
 
 #. type: cindex
-#: doc/guix.texi:2666
+#: doc/guix.texi:2966
 #, no-wrap
 msgid "replication, of software environments"
 msgstr "Nachbildung, von Software-Umgebungen"
 
 #. type: cindex
-#: doc/guix.texi:2667
+#: doc/guix.texi:2967
 #, no-wrap
 msgid "provenance tracking, of software artifacts"
 msgstr "Provenienzverfolgung, von Software-Artefakten"
 
 #. type: Plain text
-#: doc/guix.texi:2674
+#: doc/guix.texi:2974
 msgid "All of Guix and its package definitions is version-controlled, and @command{guix pull} allows you to ``travel in time'' on the history of Guix itself (@pxref{Invoking guix pull}).  This makes it possible to replicate a Guix instance on a different machine or at a later point in time, which in turn allows you to @emph{replicate complete software environments}, while retaining precise @dfn{provenance tracking} of the software."
 msgstr "Ganz Guix und all seine Paketdefinitionen stehen unter Versionskontrolle und @command{guix pull} macht es möglich, auf dem Verlauf der Entwicklung von Guix selbst „in der Zeit zu reisen“ (siehe @ref{Invoking guix pull}). Dadurch kann eine Instanz von Guix auf einer anderen Maschine oder zu einem späteren Zeitpunkt genau nachgebildet werden, wodurch auch @emph{vollständige Software-Umgebungen gänzlich nachgebildet} werden können, mit genauer @dfn{Provenienzverfolgung}, wo diese Software herkommt."
 
 #. type: section
-#: doc/guix.texi:2676
+#: doc/guix.texi:2976
 #, no-wrap
 msgid "Invoking @command{guix package}"
 msgstr "@command{guix package} aufrufen"
 
 #. type: cindex
-#: doc/guix.texi:2678
+#: doc/guix.texi:2978
 #, no-wrap
 msgid "installing packages"
 msgstr "Installieren von Paketen"
 
 #. type: cindex
-#: doc/guix.texi:2679
+#: doc/guix.texi:2979
 #, no-wrap
 msgid "removing packages"
 msgstr "Entfernen von Paketen"
 
 #. type: cindex
-#: doc/guix.texi:2680
+#: doc/guix.texi:2980
 #, no-wrap
 msgid "package installation"
 msgstr "Paketinstallation"
 
 #. type: cindex
-#: doc/guix.texi:2681
+#: doc/guix.texi:2981
 #, no-wrap
 msgid "package removal"
 msgstr "Paketentfernung"
 
 #. type: Plain text
-#: doc/guix.texi:2687
+#: doc/guix.texi:2987
 msgid "The @command{guix package} command is the tool that allows users to install, upgrade, and remove packages, as well as rolling back to previous configurations.  It operates only on the user's own profile, and works with normal user privileges (@pxref{Features}).  Its syntax is:"
 msgstr "Der Befehl @command{guix package} ist ein Werkzeug, womit Nutzer Pakete installieren, aktualisieren, entfernen und auf vorherige Konfigurationen zurücksetzen können. Dabei wird nur das eigene Profil des Nutzers verwendet, und es funktioniert mit normalen Benutzerrechten, ohne Administratorrechte (siehe @ref{Funktionalitäten}). Die Syntax ist:"
 
 #. type: example
-#: doc/guix.texi:2690
+#: doc/guix.texi:2990
 #, no-wrap
 msgid "guix package @var{options}\n"
 msgstr "guix package @var{Optionen}\n"
 
 #. type: Plain text
-#: doc/guix.texi:2697
+#: doc/guix.texi:2997
 msgid "Primarily, @var{options} specifies the operations to be performed during the transaction.  Upon completion, a new profile is created, but previous @dfn{generations} of the profile remain available, should the user want to roll back."
 msgstr "In erster Linie geben die @var{Optionen} an, welche Operationen in der Transaktion durchgeführt werden sollen. Nach Abschluss wird ein neues Profil erzeugt, aber vorherige @dfn{Generationen} des Profils bleiben verfügbar, falls der Benutzer auf sie zurückwechseln will."
 
 #. type: Plain text
-#: doc/guix.texi:2700
+#: doc/guix.texi:3000
 msgid "For example, to remove @code{lua} and install @code{guile} and @code{guile-cairo} in a single transaction:"
 msgstr "Um zum Beispiel @code{lua} zu entfernen und @code{guile} und @code{guile-cairo} in einer einzigen Transaktion zu installieren:"
 
 #. type: example
-#: doc/guix.texi:2703
+#: doc/guix.texi:3003
 #, no-wrap
 msgid "guix package -r lua -i guile guile-cairo\n"
 msgstr "guix package -r lua -i guile guile-cairo\n"
 
 #. type: cindex
-#: doc/guix.texi:2705
+#: doc/guix.texi:3005
 #, no-wrap
 msgid "aliases, for @command{guix package}"
 msgstr "Alias-Namen für @command{guix package}"
 
 #. type: Plain text
-#: doc/guix.texi:2707
+#: doc/guix.texi:3007
 msgid "For your convenience, we also provide the following aliases:"
 msgstr "Um es Ihnen einfacher zu machen, bieten wir auch die folgenden Alias-Namen an:"
 
 #. type: itemize
-#: doc/guix.texi:2711
+#: doc/guix.texi:3011
 msgid "@command{guix search} is an alias for @command{guix package -s},"
 msgstr "@command{guix search} ist eine andere Schreibweise für @command{guix package -s},"
 
 #. type: itemize
-#: doc/guix.texi:2713
+#: doc/guix.texi:3013
 msgid "@command{guix install} is an alias for @command{guix package -i},"
 msgstr "@command{guix install} ist eine andere Schreibweise für @command{guix package -i},"
 
 #. type: itemize
-#: doc/guix.texi:2715
+#: doc/guix.texi:3015
 msgid "@command{guix remove} is an alias for @command{guix package -r},"
 msgstr "@command{guix remove} ist eine andere Schreibweise für @command{guix package -r},"
 
 #. type: itemize
-#: doc/guix.texi:2717
+#: doc/guix.texi:3017
 msgid "@command{guix upgrade} is an alias for @command{guix package -u},"
 msgstr "@command{guix upgrade} ist eine andere Schreibweise für @command{guix package -u}"
 
 #. type: itemize
-#: doc/guix.texi:2719
+#: doc/guix.texi:3019
 msgid "and @command{guix show} is an alias for @command{guix package --show=}."
 msgstr "und @command{guix show} ist eine andere Schreibweise für @command{guix package --show=}."
 
 #. type: Plain text
-#: doc/guix.texi:2724
+#: doc/guix.texi:3024
 msgid "These aliases are less expressive than @command{guix package} and provide fewer options, so in some cases you'll probably want to use @command{guix package} directly."
 msgstr "Diese Alias-Namen sind weniger ausdrucksstark als @command{guix package} und stellen weniger Befehlszeilenoptionen bereit, deswegen werden Sie vermutlich manchmal @command{guix package} direkt benutzen wollen."
 
 #. type: Plain text
-#: doc/guix.texi:2729
+#: doc/guix.texi:3029
 msgid "@command{guix package} also supports a @dfn{declarative approach} whereby the user specifies the exact set of packages to be available and passes it @i{via} the @option{--manifest} option (@pxref{profile-manifest, @option{--manifest}})."
 msgstr "@command{guix package} unterstützt auch ein @dfn{deklaratives Vorgehen}, wobei der Nutzer die genaue Menge an Paketen, die verfügbar sein sollen, festlegt und über die Befehlszeilenoption @option{--manifest} übergibt (siehe @ref{profile-manifest, @option{--manifest}})."
 
 #. type: cindex
-#: doc/guix.texi:2730
+#: doc/guix.texi:3030
 #, no-wrap
 msgid "profile"
 msgstr "Profil"
 
 #. type: Plain text
-#: doc/guix.texi:2736
-msgid "For each user, a symlink to the user's default profile is automatically created in @file{$HOME/.guix-profile}.  This symlink always points to the current generation of the user's default profile.  Thus, users can add @file{$HOME/.guix-profile/bin} to their @code{PATH} environment variable, and so on."
-msgstr "Für jeden Benutzer wird automatisch eine symbolische Verknüpfung zu seinem Standardprofil angelegt als @file{$HOME/.guix-profile}. Diese symbolische Verknüpfung zeigt immer auf die aktuelle Generation des Standardprofils des Benutzers. Somit können Nutzer @file{$HOME/.guix-profile/bin} z.B.@: zu ihrer Umgebungsvariablen @code{PATH} hinzufügen."
+#: doc/guix.texi:3036
+msgid "For each user, a symlink to the user's default profile is automatically created in @file{$HOME/.guix-profile}.  This symlink always points to the current generation of the user's default profile.  Thus, users can add @file{$HOME/.guix-profile/bin} to their @env{PATH} environment variable, and so on."
+msgstr "Für jeden Benutzer wird automatisch eine symbolische Verknüpfung zu seinem Standardprofil angelegt als @file{$HOME/.guix-profile}. Diese symbolische Verknüpfung zeigt immer auf die aktuelle Generation des Standardprofils des Benutzers. Somit können Nutzer @file{$HOME/.guix-profile/bin} z.B.@: zu ihrer Umgebungsvariablen @env{PATH} hinzufügen."
 
 #. type: cindex
-#: doc/guix.texi:2736 doc/guix.texi:2934
+#: doc/guix.texi:3036 doc/guix.texi:3266
 #, no-wrap
 msgid "search paths"
 msgstr "Suchpfade"
 
 #. type: Plain text
-#: doc/guix.texi:2741
+#: doc/guix.texi:3041
 msgid "If you are not using Guix System, consider adding the following lines to your @file{~/.bash_profile} (@pxref{Bash Startup Files,,, bash, The GNU Bash Reference Manual}) so that newly-spawned shells get all the right environment variable definitions:"
-msgstr "Wenn Sie @emph{nicht} Guix System benutzen, sollten Sie in Betracht ziehen, folgende Zeilen zu Ihrem @file{~/.bash_profile} hinzuzufügen (siehe @ref{Bash Startup Files,,, bash, The GNU Bash Reference Manual}), damit in neu erzeugten Shells alle Umgebungsvariablen richtig definiert werden:"
+msgstr "Wenn Sie @emph{nicht} Guix System benutzen, sollten Sie in Betracht ziehen, folgende Zeilen zu Ihrem @file{~/.bash_profile} hinzuzufügen (siehe @ref{Bash Startup Files,,, bash, Referenzhandbuch von GNU Bash}), damit in neu erzeugten Shells alle Umgebungsvariablen richtig definiert werden:"
 
 #. type: example
-#: doc/guix.texi:2745
+#: doc/guix.texi:3045
 #, no-wrap
 msgid ""
 "GUIX_PROFILE=\"$HOME/.guix-profile\" ; \\\n"
@@ -7006,249 +7768,294 @@ msgstr ""
 "source \"$HOME/.guix-profile/etc/profile\"\n"
 
 #. type: Plain text
-#: doc/guix.texi:2756
-msgid "In a multi-user setup, user profiles are stored in a place registered as a @dfn{garbage-collector root}, which @file{$HOME/.guix-profile} points to (@pxref{Invoking guix gc}).  That directory is normally @code{@var{localstatedir}/guix/profiles/per-user/@var{user}}, where @var{localstatedir} is the value passed to @code{configure} as @code{--localstatedir}, and @var{user} is the user name.  The @file{per-user} directory is created when @command{guix-daemon} is started, and the @var{user} sub-directory is created by @command{guix package}."
-msgstr "Ist Ihr System für mehrere Nutzer eingerichtet, werden Nutzerprofile an einem Ort gespeichert, der als @dfn{Müllsammlerwurzel} registriert ist, auf die @file{$HOME/.guix-profile} zeigt (siehe @ref{Invoking guix gc}). Dieses Verzeichnis ist normalerweise @code{@var{localstatedir}/guix/profiles/per-user/@var{Benutzer}}, wobei @var{localstatedir} der an @code{configure} als @code{--localstatedir} übergebene Wert ist und @var{Benutzer} für den jeweiligen Benutzernamen steht. Das @file{per-user}-Verzeichnis wird erstellt, wenn @command{guix-daemon} gestartet wird, und das Unterverzeichnis @var{Benutzer} wird durch @command{guix package} erstellt."
+#: doc/guix.texi:3056
+msgid "In a multi-user setup, user profiles are stored in a place registered as a @dfn{garbage-collector root}, which @file{$HOME/.guix-profile} points to (@pxref{Invoking guix gc}).  That directory is normally @code{@var{localstatedir}/guix/profiles/per-user/@var{user}}, where @var{localstatedir} is the value passed to @code{configure} as @option{--localstatedir}, and @var{user} is the user name.  The @file{per-user} directory is created when @command{guix-daemon} is started, and the @var{user} sub-directory is created by @command{guix package}."
+msgstr "Ist Ihr System für mehrere Nutzer eingerichtet, werden Nutzerprofile an einem Ort gespeichert, der als @dfn{Müllsammlerwurzel} registriert ist, auf die @file{$HOME/.guix-profile} zeigt (siehe @ref{Invoking guix gc}). Dieses Verzeichnis ist normalerweise @code{@var{localstatedir}/guix/profiles/per-user/@var{Benutzer}}, wobei @var{localstatedir} der an @code{configure} als @option{--localstatedir} übergebene Wert ist und @var{Benutzer} für den jeweiligen Benutzernamen steht. Das @file{per-user}-Verzeichnis wird erstellt, wenn @command{guix-daemon} gestartet wird, und das Unterverzeichnis @var{Benutzer} wird durch @command{guix package} erstellt."
 
 #. type: Plain text
-#: doc/guix.texi:2758
+#: doc/guix.texi:3058
 msgid "The @var{options} can be among the following:"
 msgstr "Als @var{Optionen} kann vorkommen:"
 
 #. type: item
-#: doc/guix.texi:2761
+#: doc/guix.texi:3061
 #, no-wrap
 msgid "--install=@var{package} @dots{}"
 msgstr "--install=@var{Paket} …"
 
 #. type: itemx
-#: doc/guix.texi:2762
+#: doc/guix.texi:3062
 #, no-wrap
 msgid "-i @var{package} @dots{}"
 msgstr "-i @var{Paket} …"
 
 #. type: table
-#: doc/guix.texi:2764
+#: doc/guix.texi:3064
 msgid "Install the specified @var{package}s."
 msgstr "Die angegebenen @var{Paket}e installieren."
 
 #. type: table
-#: doc/guix.texi:2769
-msgid "Each @var{package} may specify either a simple package name, such as @code{guile}, or a package name followed by an at-sign and version number, such as @code{guile@@1.8.8} or simply @code{guile@@1.8} (in the latter case, the newest version prefixed by @code{1.8} is selected.)"
+#: doc/guix.texi:3069
+msgid "Each @var{package} may specify either a simple package name, such as @code{guile}, or a package name followed by an at-sign and version number, such as @code{guile@@1.8.8} or simply @code{guile@@1.8} (in the latter case, the newest version prefixed by @code{1.8} is selected)."
 msgstr "Jedes @var{Paket} kann entweder einfach durch seinen Paketnamen aufgeführt werden, wie @code{guile}, oder als Paketname gefolgt von einem At-Zeichen @@ und einer Versionsnummer, wie @code{guile@@1.8.8} oder auch nur @code{guile@@1.8} (in letzterem Fall wird die neueste Version mit Präfix @code{1.8} ausgewählt.)"
 
 #. type: table
-#: doc/guix.texi:2777
+#: doc/guix.texi:3077
 msgid "If no version number is specified, the newest available version will be selected.  In addition, @var{package} may contain a colon, followed by the name of one of the outputs of the package, as in @code{gcc:doc} or @code{binutils@@2.22:lib} (@pxref{Packages with Multiple Outputs}).  Packages with a corresponding name (and optionally version) are searched for among the GNU distribution modules (@pxref{Package Modules})."
 msgstr "Wird keine Versionsnummer angegeben, wird die neueste verfügbare Version ausgewählt. Zudem kann im @var{Paket} ein Doppelpunkt auftauchen, gefolgt vom Namen einer der Ausgaben des Pakets, wie @code{gcc:doc} oder @code{binutils@@2.22:lib} (siehe @ref{Packages with Multiple Outputs}). Pakete mit zugehörigem Namen (und optional der Version) werden unter den Modulen der GNU-Distribution gesucht (siehe @ref{Package Modules})."
 
 #. type: cindex
-#: doc/guix.texi:2778
+#: doc/guix.texi:3078
 #, no-wrap
 msgid "propagated inputs"
 msgstr "propagierte Eingaben"
 
 #. type: table
-#: doc/guix.texi:2784
+#: doc/guix.texi:3084
 msgid "Sometimes packages have @dfn{propagated inputs}: these are dependencies that automatically get installed along with the required package (@pxref{package-propagated-inputs, @code{propagated-inputs} in @code{package} objects}, for information about propagated inputs in package definitions)."
-msgstr "Manchmal haben Pakete @dfn{propagierte Eingaben}: Als solche werden Abhängigkeiten bezeichnet, die automatisch zusammen mit dem angeforderten Paket installiert werden (im Abschnitt @ref{package-propagated-inputs, @code{propagated-inputs} in @code{package} objects} sind weitere Informationen über propagierte Eingaben in Paketdefinitionen zu finden)."
+msgstr "Manchmal haben Pakete @dfn{propagierte Eingaben}: Als solche werden Abhängigkeiten bezeichnet, die automatisch zusammen mit dem angeforderten Paket installiert werden (im Abschnitt @ref{package-propagated-inputs, @code{propagated-inputs} in @code{package}-Objekten} sind weitere Informationen über propagierte Eingaben in Paketdefinitionen zu finden)."
 
 #. type: anchor{#1}
-#: doc/guix.texi:2791
+#: doc/guix.texi:3091
 msgid "package-cmd-propagated-inputs"
 msgstr "package-cmd-propagated-inputs"
 
 #. type: table
-#: doc/guix.texi:2791
+#: doc/guix.texi:3091
 msgid "An example is the GNU MPC library: its C header files refer to those of the GNU MPFR library, which in turn refer to those of the GMP library.  Thus, when installing MPC, the MPFR and GMP libraries also get installed in the profile; removing MPC also removes MPFR and GMP---unless they had also been explicitly installed by the user."
 msgstr "Ein Beispiel ist die GNU-MPC-Bibliothek: Ihre C-Headerdateien verweisen auf die der GNU-MPFR-Bibliothek, welche wiederum auf die der GMP-Bibliothek verweisen. Wenn also MPC installiert wird, werden auch die MPFR- und GMP-Bibliotheken in das Profil installiert; entfernt man MPC, werden auch MPFR und GMP entfernt — außer sie wurden noch auf andere Art ausdrücklich vom Nutzer installiert."
 
 #. type: table
-#: doc/guix.texi:2796
-msgid "Besides, packages sometimes rely on the definition of environment variables for their search paths (see explanation of @code{--search-paths} below).  Any missing or possibly incorrect environment variable definitions are reported here."
-msgstr "Abgesehen davon setzen Pakete manchmal die Definition von Umgebungsvariablen für ihre Suchpfade voraus (siehe die Erklärung von @code{--search-paths} weiter unten). Alle fehlenden oder womöglich falschen Definitionen von Umgebungsvariablen werden hierbei gemeldet."
+#: doc/guix.texi:3096
+msgid "Besides, packages sometimes rely on the definition of environment variables for their search paths (see explanation of @option{--search-paths} below).  Any missing or possibly incorrect environment variable definitions are reported here."
+msgstr "Abgesehen davon setzen Pakete manchmal die Definition von Umgebungsvariablen für ihre Suchpfade voraus (siehe die Erklärung von @option{--search-paths} weiter unten). Alle fehlenden oder womöglich falschen Definitionen von Umgebungsvariablen werden hierbei gemeldet."
 
 #. type: item
-#: doc/guix.texi:2797
+#: doc/guix.texi:3097
 #, no-wrap
 msgid "--install-from-expression=@var{exp}"
 msgstr "--install-from-expression=@var{Ausdruck}"
 
 #. type: itemx
-#: doc/guix.texi:2798
+#: doc/guix.texi:3098
 #, no-wrap
 msgid "-e @var{exp}"
 msgstr "-e @var{Ausdruck}"
 
 #. type: table
-#: doc/guix.texi:2800
+#: doc/guix.texi:3100
 msgid "Install the package @var{exp} evaluates to."
 msgstr "Das Paket installieren, zu dem der @var{Ausdruck} ausgewertet wird."
 
 #. type: table
-#: doc/guix.texi:2805
+#: doc/guix.texi:3105
 msgid "@var{exp} must be a Scheme expression that evaluates to a @code{<package>} object.  This option is notably useful to disambiguate between same-named variants of a package, with expressions such as @code{(@@ (gnu packages base) guile-final)}."
 msgstr "Beim @var{Ausdruck} muss es sich um einen Scheme-Ausdruck handeln, der zu einem @code{<package>}-Objekt ausgewertet wird. Diese Option ist besonders nützlich, um zwischen gleichnamigen Varianten eines Pakets zu unterscheiden, durch Ausdrücke wie @code{(@@ (gnu packages base) guile-final)}."
 
 #. type: table
-#: doc/guix.texi:2809
+#: doc/guix.texi:3109
 msgid "Note that this option installs the first output of the specified package, which may be insufficient when needing a specific output of a multiple-output package."
 msgstr "Beachten Sie, dass mit dieser Option die erste Ausgabe des angegebenen Pakets installiert wird, was unzureichend sein kann, wenn eine bestimmte Ausgabe eines Pakets mit mehreren Ausgaben gewünscht ist."
 
 #. type: item
-#: doc/guix.texi:2810
+#: doc/guix.texi:3110
 #, no-wrap
 msgid "--install-from-file=@var{file}"
 msgstr "--install-from-file=@var{Datei}"
 
 #. type: itemx
-#: doc/guix.texi:2811 doc/guix.texi:8542
+#: doc/guix.texi:3111 doc/guix.texi:10341
 #, no-wrap
 msgid "-f @var{file}"
 msgstr "-f @var{Datei}"
 
 #. type: table
-#: doc/guix.texi:2813
+#: doc/guix.texi:3113
 msgid "Install the package that the code within @var{file} evaluates to."
 msgstr "Das Paket installieren, zu dem der Code in der @var{Datei} ausgewertet wird."
 
 #. type: table
-#: doc/guix.texi:2816 doc/guix.texi:4841
+#: doc/guix.texi:3116 doc/guix.texi:5569
 msgid "As an example, @var{file} might contain a definition like this (@pxref{Defining Packages}):"
 msgstr "Zum Beispiel könnte die @var{Datei} eine Definition wie diese enthalten (siehe @ref{Defining Packages}):"
 
 #. type: include
-#: doc/guix.texi:2818 doc/guix.texi:8550
+#: doc/guix.texi:3118 doc/guix.texi:10349
 #, no-wrap
 msgid "package-hello.scm"
 msgstr "package-hello.scm"
 
 #. type: table
-#: doc/guix.texi:2825
+#: doc/guix.texi:3125
 msgid "Developers may find it useful to include such a @file{guix.scm} file in the root of their project source tree that can be used to test development snapshots and create reproducible development environments (@pxref{Invoking guix environment})."
 msgstr "Entwickler könnten es für nützlich erachten, eine solche @file{guix.scm}-Datei im Quellbaum ihres Projekts abzulegen, mit der Zwischenstände der Entwicklung getestet und reproduzierbare Erstellungsumgebungen aufgebaut werden können (siehe @ref{Invoking guix environment})."
 
+#. type: table
+#: doc/guix.texi:3130
+msgid "The @var{file} may also contain a JSON representation of one or more package definitions.  Running @code{guix package -f} on @file{hello.json} with the following contents would result in installing the package @code{greeter} after building @code{myhello}:"
+msgstr "Es ist auch möglich, eine @var{Datei} mit einer JSON-Repräsentation von einer oder mehr Paketdefinitionen anzugeben. Wenn Sie @code{guix package -f} auf @file{hello.json} mit folgendem Inhalt ausführen würden, würde das Paket @code{greeter} installiert, nachdem @code{myhello} erstellt wurde:"
+
+#. type: example
+#: doc/guix.texi:3133 doc/guix.texi:10359
+#, no-wrap
+msgid "@verbatiminclude package-hello.json\n"
+msgstr "@verbatiminclude package-hello.json\n"
+
 #. type: item
-#: doc/guix.texi:2826
+#: doc/guix.texi:3135
 #, no-wrap
 msgid "--remove=@var{package} @dots{}"
 msgstr "--remove=@var{Paket} …"
 
 #. type: itemx
-#: doc/guix.texi:2827
+#: doc/guix.texi:3136
 #, no-wrap
 msgid "-r @var{package} @dots{}"
 msgstr "-r @var{Paket} …"
 
 #. type: table
-#: doc/guix.texi:2829
+#: doc/guix.texi:3138
 msgid "Remove the specified @var{package}s."
 msgstr "Die angegebenen @var{Paket}e entfernen."
 
 #. type: table
-#: doc/guix.texi:2834
-msgid "As for @code{--install}, each @var{package} may specify a version number and/or output name in addition to the package name.  For instance, @code{-r glibc:debug} would remove the @code{debug} output of @code{glibc}."
-msgstr "Wie auch bei @code{--install} kann jedes @var{Paket} neben dem Paketnamen auch eine Versionsnummer und/oder eine Ausgabe benennen. Zum Beispiel würde @code{-r glibc:debug} die @code{debug}-Ausgabe von @code{glibc} aus dem Profil entfernen."
+#: doc/guix.texi:3143
+msgid "As for @option{--install}, each @var{package} may specify a version number and/or output name in addition to the package name.  For instance, @samp{-r glibc:debug} would remove the @code{debug} output of @code{glibc}."
+msgstr "Wie auch bei @option{--install} kann jedes @var{Paket} neben dem Paketnamen auch eine Versionsnummer und/oder eine Ausgabe benennen. Zum Beispiel würde @samp{-r glibc:debug} die @code{debug}-Ausgabe von @code{glibc} aus dem Profil entfernen."
 
 #. type: item
-#: doc/guix.texi:2835
+#: doc/guix.texi:3144
 #, no-wrap
 msgid "--upgrade[=@var{regexp} @dots{}]"
 msgstr "--upgrade[=@var{Regexp} …]"
 
 #. type: itemx
-#: doc/guix.texi:2836
+#: doc/guix.texi:3145
 #, no-wrap
 msgid "-u [@var{regexp} @dots{}]"
 msgstr "-u [@var{Regexp} …]"
 
 #. type: cindex
-#: doc/guix.texi:2837
+#: doc/guix.texi:3146
 #, no-wrap
 msgid "upgrading packages"
 msgstr "Pakete aktualisieren"
 
 #. type: table
-#: doc/guix.texi:2841
-msgid "Upgrade all the installed packages.  If one or more @var{regexp}s are specified, upgrade only installed packages whose name matches a @var{regexp}.  Also see the @code{--do-not-upgrade} option below."
-msgstr "Alle installierten Pakete aktualisieren. Wenn einer oder mehr reguläre Ausdrücke (Regexps) angegeben wurden, werden nur diejenigen installierten Pakete aktualisiert, deren Name zu einer der @var{Regexp}s passt. Siehe auch weiter unten die Befehlszeilenoption @code{--do-not-upgrade}."
+#: doc/guix.texi:3150
+msgid "Upgrade all the installed packages.  If one or more @var{regexp}s are specified, upgrade only installed packages whose name matches a @var{regexp}.  Also see the @option{--do-not-upgrade} option below."
+msgstr "Alle installierten Pakete aktualisieren. Wenn einer oder mehr reguläre Ausdrücke (Regexps) angegeben wurden, werden nur diejenigen installierten Pakete aktualisiert, deren Name zu einer der @var{Regexp}s passt. Siehe auch weiter unten die Befehlszeilenoption @option{--do-not-upgrade}."
 
 #. type: table
-#: doc/guix.texi:2846
+#: doc/guix.texi:3155
 msgid "Note that this upgrades package to the latest version of packages found in the distribution currently installed.  To update your distribution, you should regularly run @command{guix pull} (@pxref{Invoking guix pull})."
 msgstr "Beachten Sie, dass das Paket so auf die neueste Version unter den Paketen gebracht wird, die in der aktuell installierten Distribution vorliegen. Um jedoch Ihre Distribution zu aktualisieren, sollten Sie regelmäßig @command{guix pull} ausführen (siehe @ref{Invoking guix pull})."
 
+#. type: cindex
+#: doc/guix.texi:3156
+#, no-wrap
+msgid "package transformations, upgrades"
+msgstr "Paketumwandlungen, Aktualisierung"
+
+#. type: table
+#: doc/guix.texi:3161
+msgid "When upgrading, package transformations that were originally applied when creating the profile are automatically re-applied (@pxref{Package Transformation Options}).  For example, assume you first installed Emacs from the tip of its development branch with:"
+msgstr "Wenn Sie Ihre Pakete aktualisieren, werden die bei der Erstellung des vorherigen Profils angewandten Paketumwandlungen automatisch erneut angwandt (siehe @ref{Package Transformation Options}). Nehmen wir zum Beispiel an, Sie haben zuerst Emacs von der Spitze seines Entwicklungs-Branches installiert:"
+
+#. type: example
+#: doc/guix.texi:3164
+#, no-wrap
+msgid "guix install emacs-next --with-branch=emacs-next=master\n"
+msgstr "guix install emacs-next --with-branch=emacs-next=master\n"
+
+#. type: table
+#: doc/guix.texi:3169
+msgid "Next time you run @command{guix upgrade}, Guix will again pull the tip of the Emacs development branch and build @code{emacs-next} from that checkout."
+msgstr "Wenn Sie das nächste Mal @command{guix upgrade} ausführen, lädt Guix von neuem die Spitze des Emacs-Entwicklungsbranches, um aus diesem Checkout @code{emacs-next} zu erstellen."
+
+#. type: table
+#: doc/guix.texi:3174
+msgid "Note that transformation options such as @option{--with-branch} and @option{--with-source} depend on external state; it is up to you to ensure that they work as expected.  You can also discard a transformations that apply to a package by running:"
+msgstr "Beachten Sie, dass Umwandlungsoptionen wie @option{--with-branch} und @option{--with-source} von externem Zustand abhängen. Es liegt an Ihnen, sicherzustellen, dass sie wie erwartet funktionieren. Sie können auf Pakete angewandte Umwandlungen auch weglassen, indem Sie das ausführen:"
+
+#. type: example
+#: doc/guix.texi:3177
+#, no-wrap
+msgid "guix install @var{package}\n"
+msgstr "guix install @var{Paket}\n"
+
 #. type: item
-#: doc/guix.texi:2847
+#: doc/guix.texi:3179
 #, no-wrap
 msgid "--do-not-upgrade[=@var{regexp} @dots{}]"
 msgstr "--do-not-upgrade[=@var{Regexp} …]"
 
 #. type: table
-#: doc/guix.texi:2852
-msgid "When used together with the @code{--upgrade} option, do @emph{not} upgrade any packages whose name matches a @var{regexp}.  For example, to upgrade all packages in the current profile except those containing the substring ``emacs'':"
-msgstr "In Verbindung mit der Befehlszeilenoption @code{--upgrade}, führe @emph{keine} Aktualisierung von Paketen durch, deren Name zum regulären Ausdruck @var{Regexp} passt. Um zum Beispiel alle Pakete im aktuellen Profil zu aktualisieren mit Ausnahme derer, die „emacs“ im Namen haben:"
+#: doc/guix.texi:3184
+msgid "When used together with the @option{--upgrade} option, do @emph{not} upgrade any packages whose name matches a @var{regexp}.  For example, to upgrade all packages in the current profile except those containing the substring ``emacs'':"
+msgstr "In Verbindung mit der Befehlszeilenoption @option{--upgrade}, führe @emph{keine} Aktualisierung von Paketen durch, deren Name zum regulären Ausdruck @var{Regexp} passt. Um zum Beispiel alle Pakete im aktuellen Profil zu aktualisieren mit Ausnahme derer, die „emacs“ im Namen haben:"
 
 #. type: example
-#: doc/guix.texi:2855
+#: doc/guix.texi:3187
 #, no-wrap
 msgid "$ guix package --upgrade . --do-not-upgrade emacs\n"
 msgstr "$ guix package --upgrade . --do-not-upgrade emacs\n"
 
 #. type: anchor{#1}
-#: doc/guix.texi:2857
+#: doc/guix.texi:3189
 #, no-wrap
 msgid "profile-manifest"
 msgstr "profile-manifest"
 
 #. type: item
-#: doc/guix.texi:2857 doc/guix.texi:4846 doc/guix.texi:5234 doc/guix.texi:9525
-#: doc/guix.texi:10843
+#: doc/guix.texi:3189 doc/guix.texi:5574 doc/guix.texi:5993
+#: doc/guix.texi:11346 doc/guix.texi:12762
 #, no-wrap
 msgid "--manifest=@var{file}"
 msgstr "--manifest=@var{Datei}"
 
 #. type: itemx
-#: doc/guix.texi:2858 doc/guix.texi:4847 doc/guix.texi:5235 doc/guix.texi:9526
+#: doc/guix.texi:3190 doc/guix.texi:5575 doc/guix.texi:5994
+#: doc/guix.texi:11347
 #, no-wrap
 msgid "-m @var{file}"
 msgstr "-m @var{Datei}"
 
 #. type: cindex
-#: doc/guix.texi:2859
+#: doc/guix.texi:3191
 #, no-wrap
 msgid "profile declaration"
 msgstr "Profildeklaration"
 
 #. type: cindex
-#: doc/guix.texi:2860
+#: doc/guix.texi:3192
 #, no-wrap
 msgid "profile manifest"
 msgstr "Profilmanifest"
 
 #. type: table
-#: doc/guix.texi:2864
+#: doc/guix.texi:3196
 msgid "Create a new generation of the profile from the manifest object returned by the Scheme code in @var{file}.  This option can be repeated several times, in which case the manifests are concatenated."
 msgstr "Erstellt eine neue Generation des Profils aus dem vom Scheme-Code in @var{Datei} gelieferten Manifest-Objekt. Wenn diese Befehlszeilenoption mehrmals wiederholt angegeben wird, werden die Manifeste aneinandergehängt."
 
 #. type: table
-#: doc/guix.texi:2870
-msgid "This allows you to @emph{declare} the profile's contents rather than constructing it through a sequence of @code{--install} and similar commands.  The advantage is that @var{file} can be put under version control, copied to different machines to reproduce the same profile, and so on."
-msgstr "Dadurch könnrn Sie den Inhalt des Profils @emph{deklarieren}, statt ihn durch eine Folge von Befehlen wie @code{--install} u.Ä. zu generieren. Der Vorteil ist, dass die @var{Datei} unter Versionskontrolle gestellt werden kann, auf andere Maschinen zum Reproduzieren desselben Profils kopiert werden kann und Ähnliches."
+#: doc/guix.texi:3202
+msgid "This allows you to @emph{declare} the profile's contents rather than constructing it through a sequence of @option{--install} and similar commands.  The advantage is that @var{file} can be put under version control, copied to different machines to reproduce the same profile, and so on."
+msgstr "Dadurch könnrn Sie den Inhalt des Profils @emph{deklarieren}, statt ihn durch eine Folge von Befehlen wie @option{--install} u.Ä. zu generieren. Der Vorteil ist, dass die @var{Datei} unter Versionskontrolle gestellt werden kann, auf andere Maschinen zum Reproduzieren desselben Profils kopiert werden kann und Ähnliches."
 
 #. type: table
-#: doc/guix.texi:2874
+#: doc/guix.texi:3206
 msgid "@var{file} must return a @dfn{manifest} object, which is roughly a list of packages:"
 msgstr "Der Code in der @var{Datei} muss ein @dfn{Manifest}-Objekt liefern, was ungefähr einer Liste von Paketen entspricht:"
 
 #. type: findex
-#: doc/guix.texi:2875
+#: doc/guix.texi:3207
 #, no-wrap
 msgid "packages->manifest"
 msgstr "packages->manifest"
 
 #. type: lisp
-#: doc/guix.texi:2878
+#: doc/guix.texi:3210
 #, no-wrap
 msgid ""
 "(use-package-modules guile emacs)\n"
@@ -7258,7 +8065,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:2884
+#: doc/guix.texi:3216
 #, no-wrap
 msgid ""
 "(packages->manifest\n"
@@ -7274,18 +8081,18 @@ msgstr ""
 "       (list guile-2.0 \"debug\")))\n"
 
 #. type: findex
-#: doc/guix.texi:2886
+#: doc/guix.texi:3218
 #, no-wrap
 msgid "specifications->manifest"
 msgstr "specifications->manifest"
 
 #. type: table
-#: doc/guix.texi:2893
+#: doc/guix.texi:3225
 msgid "In this example we have to know which modules define the @code{emacs} and @code{guile-2.0} variables to provide the right @code{use-package-modules} line, which can be cumbersome.  We can instead provide regular package specifications and let @code{specifications->manifest} look up the corresponding package objects, like this:"
 msgstr "In diesem Beispiel müssen wir wissen, welche Module die Variablen @code{emacs} und @code{guile-2.0} definieren, um die richtige Angabe mit @code{use-package-modules} machen zu können, was umständlich sein kann. Wir können auch normale Paketnamen angeben und sie durch @code{specifications->manifest} zu den entsprechenden Paketobjekten auflösen, zum Beispiel so:"
 
 #. type: lisp
-#: doc/guix.texi:2897
+#: doc/guix.texi:3229
 #, no-wrap
 msgid ""
 "(specifications->manifest\n"
@@ -7295,122 +8102,122 @@ msgstr ""
 " '(\"emacs\" \"guile@@2.2\" \"guile@@2.2:debug\"))\n"
 
 #. type: item
-#: doc/guix.texi:2899 doc/guix.texi:3848
+#: doc/guix.texi:3231 doc/guix.texi:4293
 #, no-wrap
 msgid "--roll-back"
 msgstr "--roll-back"
 
 #. type: cindex
-#: doc/guix.texi:2900 doc/guix.texi:3849 doc/guix.texi:26662
+#: doc/guix.texi:3232 doc/guix.texi:4294 doc/guix.texi:30789
 #, no-wrap
 msgid "rolling back"
 msgstr "rücksetzen"
 
 #. type: cindex
-#: doc/guix.texi:2901 doc/guix.texi:3850
+#: doc/guix.texi:3233 doc/guix.texi:4295
 #, no-wrap
 msgid "undoing transactions"
 msgstr "Zurücksetzen von Transaktionen"
 
 #. type: cindex
-#: doc/guix.texi:2902 doc/guix.texi:3851
+#: doc/guix.texi:3234 doc/guix.texi:4296
 #, no-wrap
 msgid "transactions, undoing"
 msgstr "Transaktionen, zurücksetzen"
 
 #. type: table
-#: doc/guix.texi:2905
+#: doc/guix.texi:3237
 msgid "Roll back to the previous @dfn{generation} of the profile---i.e., undo the last transaction."
 msgstr "Wechselt zur vorherigen @dfn{Generation} des Profils zurück — d.h.@: macht die letzte Transaktion rückgängig."
 
 #. type: table
-#: doc/guix.texi:2908
-msgid "When combined with options such as @code{--install}, roll back occurs before any other actions."
-msgstr "In Verbindung mit Befehlszeilenoptionen wie @code{--install} wird zuerst zurückgesetzt, bevor andere Aktionen durchgeführt werden."
+#: doc/guix.texi:3240
+msgid "When combined with options such as @option{--install}, roll back occurs before any other actions."
+msgstr "In Verbindung mit Befehlszeilenoptionen wie @option{--install} wird zuerst zurückgesetzt, bevor andere Aktionen durchgeführt werden."
 
 #. type: table
-#: doc/guix.texi:2912
+#: doc/guix.texi:3244
 msgid "When rolling back from the first generation that actually contains installed packages, the profile is made to point to the @dfn{zeroth generation}, which contains no files apart from its own metadata."
 msgstr "Ein Rücksetzen der ersten Generation, die installierte Pakete enthält, wechselt das Profil zur @dfn{nullten Generation}, die keinerlei Dateien enthält, abgesehen von Metadaten über sich selbst."
 
 #. type: table
-#: doc/guix.texi:2916
+#: doc/guix.texi:3248
 msgid "After having rolled back, installing, removing, or upgrading packages overwrites previous future generations.  Thus, the history of the generations in a profile is always linear."
 msgstr "Nach dem Zurücksetzen überschreibt das Installieren, Entfernen oder Aktualisieren von Paketen vormals zukünftige Generationen, d.h.@: der Verlauf der Generationen eines Profils ist immer linear."
 
 #. type: item
-#: doc/guix.texi:2917 doc/guix.texi:3855
+#: doc/guix.texi:3249 doc/guix.texi:4300
 #, no-wrap
 msgid "--switch-generation=@var{pattern}"
 msgstr "--switch-generation=@var{Muster}"
 
 #. type: itemx
-#: doc/guix.texi:2918 doc/guix.texi:3856
+#: doc/guix.texi:3250 doc/guix.texi:4301
 #, no-wrap
 msgid "-S @var{pattern}"
 msgstr "-S @var{Muster}"
 
 #. type: cindex
-#: doc/guix.texi:2919 doc/guix.texi:3147 doc/guix.texi:3857
-#: doc/guix.texi:26620
+#: doc/guix.texi:3251 doc/guix.texi:3480 doc/guix.texi:4302
+#: doc/guix.texi:30747
 #, no-wrap
 msgid "generations"
 msgstr "Generationen"
 
 #. type: table
-#: doc/guix.texi:2921 doc/guix.texi:3859
+#: doc/guix.texi:3253 doc/guix.texi:4304
 msgid "Switch to a particular generation defined by @var{pattern}."
 msgstr "Wechselt zu der bestimmten Generation, die durch das @var{Muster} bezeichnet wird."
 
 #. type: table
-#: doc/guix.texi:2927 doc/guix.texi:3865
-msgid "@var{pattern} may be either a generation number or a number prefixed with ``+'' or ``-''.  The latter means: move forward/backward by a specified number of generations.  For example, if you want to return to the latest generation after @code{--roll-back}, use @code{--switch-generation=+1}."
-msgstr "Als @var{Muster} kann entweder die Nummer einer Generation oder eine Nummer mit vorangestelltem „+“ oder „-“ dienen. Letzteres springt die angegebene Anzahl an Generationen vor oder zurück. Zum Beispiel kehrt @code{--switch-generation=+1} nach einem Zurücksetzen wieder zur neueren Generation zurück."
+#: doc/guix.texi:3259 doc/guix.texi:4310
+msgid "@var{pattern} may be either a generation number or a number prefixed with ``+'' or ``-''.  The latter means: move forward/backward by a specified number of generations.  For example, if you want to return to the latest generation after @option{--roll-back}, use @option{--switch-generation=+1}."
+msgstr "Als @var{Muster} kann entweder die Nummer einer Generation oder eine Nummer mit vorangestelltem „+“ oder „-“ dienen. Letzteres springt die angegebene Anzahl an Generationen vor oder zurück. Zum Beispiel kehrt @option{--switch-generation=+1} nach einem Zurücksetzen wieder zur neueren Generation zurück."
 
 #. type: table
-#: doc/guix.texi:2932
-msgid "The difference between @code{--roll-back} and @code{--switch-generation=-1} is that @code{--switch-generation} will not make a zeroth generation, so if a specified generation does not exist, the current generation will not be changed."
-msgstr "Der Unterschied zwischen @code{--roll-back} und @code{--switch-generation=-1} ist, dass @code{--switch-generation} keine nullte Generation erzeugen wird; existiert die angegebene Generation nicht, bleibt schlicht die aktuelle Generation erhalten."
+#: doc/guix.texi:3264
+msgid "The difference between @option{--roll-back} and @option{--switch-generation=-1} is that @option{--switch-generation} will not make a zeroth generation, so if a specified generation does not exist, the current generation will not be changed."
+msgstr "Der Unterschied zwischen @option{--roll-back} und @option{--switch-generation=-1} ist, dass @option{--switch-generation} keine nullte Generation erzeugen wird; existiert die angegebene Generation nicht, bleibt schlicht die aktuelle Generation erhalten."
 
 #. type: item
-#: doc/guix.texi:2933
+#: doc/guix.texi:3265
 #, no-wrap
 msgid "--search-paths[=@var{kind}]"
 msgstr "--search-paths[=@var{Art}]"
 
 #. type: table
-#: doc/guix.texi:2939
+#: doc/guix.texi:3271
 msgid "Report environment variable definitions, in Bash syntax, that may be needed in order to use the set of installed packages.  These environment variables are used to specify @dfn{search paths} for files used by some of the installed packages."
 msgstr "Führe die Definitionen von Umgebungsvariablen auf, in Bash-Syntax, die nötig sein könnten, um alle installierten Pakete nutzen zu können. Diese Umgebungsvariablen werden benutzt, um die @dfn{Suchpfade} für Dateien festzulegen, die von einigen installierten Paketen benutzt werden."
 
 #. type: table
-#: doc/guix.texi:2947
-msgid "For example, GCC needs the @code{CPATH} and @code{LIBRARY_PATH} environment variables to be defined so it can look for headers and libraries in the user's profile (@pxref{Environment Variables,,, gcc, Using the GNU Compiler Collection (GCC)}).  If GCC and, say, the C library are installed in the profile, then @code{--search-paths} will suggest setting these variables to @code{@var{profile}/include} and @code{@var{profile}/lib}, respectively."
-msgstr "Zum Beispiel braucht GCC die Umgebungsvariablen @code{CPATH} und @code{LIBRARY_PATH}, um zu wissen, wo sich im Benutzerprofil Header und Bibliotheken befinden (siehe @ref{Environment Variables,,, gcc, Using the GNU Compiler Collection (GCC)}). Wenn GCC und, sagen wir, die C-Bibliothek im Profil installiert sind, schlägt @code{--search-paths} also vor, diese Variablen jeweils auf @code{@var{profile}/include} und @code{@var{profile}/lib} verweisen zu lassen."
+#: doc/guix.texi:3279
+msgid "For example, GCC needs the @env{CPATH} and @env{LIBRARY_PATH} environment variables to be defined so it can look for headers and libraries in the user's profile (@pxref{Environment Variables,,, gcc, Using the GNU Compiler Collection (GCC)}).  If GCC and, say, the C library are installed in the profile, then @option{--search-paths} will suggest setting these variables to @file{@var{profile}/include} and @file{@var{profile}/lib}, respectively."
+msgstr "Zum Beispiel braucht GCC die Umgebungsvariablen @env{CPATH} und @env{LIBRARY_PATH}, um zu wissen, wo sich im Benutzerprofil Header und Bibliotheken befinden (siehe @ref{Environment Variables,,, gcc, Using the GNU Compiler Collection (GCC)}). Wenn GCC und, sagen wir, die C-Bibliothek im Profil installiert sind, schlägt @option{--search-paths} also vor, diese Variablen jeweils auf @file{@var{profile}/include} und @file{@var{profile}/lib} verweisen zu lassen."
 
 #. type: table
-#: doc/guix.texi:2950
+#: doc/guix.texi:3282
 msgid "The typical use case is to define these environment variables in the shell:"
 msgstr "Die typische Nutzung ist, in der Shell diese Variablen zu definieren:"
 
 #. type: example
-#: doc/guix.texi:2953
+#: doc/guix.texi:3285
 #, no-wrap
 msgid "$ eval `guix package --search-paths`\n"
 msgstr "$ eval `guix package --search-paths`\n"
 
 #. type: table
-#: doc/guix.texi:2959
+#: doc/guix.texi:3291
 msgid "@var{kind} may be one of @code{exact}, @code{prefix}, or @code{suffix}, meaning that the returned environment variable definitions will either be exact settings, or prefixes or suffixes of the current value of these variables.  When omitted, @var{kind} defaults to @code{exact}."
 msgstr "Als @var{Art} kann entweder @code{exact}, @code{prefix} oder @code{suffix} gewählt werden, wodurch die gelieferten Definitionen der Umgebungsvariablen entweder exakt die Einstellungen für Guix meldet, oder sie als Präfix oder Suffix an den aktuellen Wert dieser Variablen anhängt. Gibt man keine @var{Art} an, wird der Vorgabewert @code{exact} verwendet."
 
 #. type: table
-#: doc/guix.texi:2962
+#: doc/guix.texi:3294
 msgid "This option can also be used to compute the @emph{combined} search paths of several profiles.  Consider this example:"
 msgstr "Diese Befehlszeilenoption kann auch benutzt werden, um die @emph{kombinierten} Suchpfade mehrerer Profile zu berechnen. Betrachten Sie dieses Beispiel:"
 
 #. type: example
-#: doc/guix.texi:2967
+#: doc/guix.texi:3299
 #, no-wrap
 msgid ""
 "$ guix package -p foo -i guile\n"
@@ -7422,34 +8229,34 @@ msgstr ""
 "$ guix package -p foo -p bar --search-paths\n"
 
 #. type: table
-#: doc/guix.texi:2972
-msgid "The last command above reports about the @code{GUILE_LOAD_PATH} variable, even though, taken individually, neither @file{foo} nor @file{bar} would lead to that recommendation."
-msgstr "Der letzte Befehl oben meldet auch die Definition der Umgebungsvariablen @code{GUILE_LOAD_PATH}, obwohl für sich genommen weder @file{foo} noch @file{bar} zu dieser Empfehlung führen würden."
+#: doc/guix.texi:3304
+msgid "The last command above reports about the @env{GUILE_LOAD_PATH} variable, even though, taken individually, neither @file{foo} nor @file{bar} would lead to that recommendation."
+msgstr "Der letzte Befehl oben meldet auch die Definition der Umgebungsvariablen @env{GUILE_LOAD_PATH}, obwohl für sich genommen weder @file{foo} noch @file{bar} zu dieser Empfehlung führen würden."
 
 #. type: item
-#: doc/guix.texi:2974 doc/guix.texi:3885 doc/guix.texi:4465
+#: doc/guix.texi:3306 doc/guix.texi:4330 doc/guix.texi:4659
 #, no-wrap
 msgid "--profile=@var{profile}"
 msgstr "--profile=@var{Profil}"
 
 #. type: itemx
-#: doc/guix.texi:2975 doc/guix.texi:3886 doc/guix.texi:4466
+#: doc/guix.texi:3307 doc/guix.texi:4331 doc/guix.texi:4660
 #, no-wrap
 msgid "-p @var{profile}"
 msgstr "-p @var{Profil}"
 
 #. type: table
-#: doc/guix.texi:2977
+#: doc/guix.texi:3309
 msgid "Use @var{profile} instead of the user's default profile."
 msgstr "Auf @var{Profil} anstelle des Standardprofils des Benutzers arbeiten."
 
 #. type: table
-#: doc/guix.texi:2982
+#: doc/guix.texi:3314
 msgid "@var{profile} must be the name of a file that will be created upon completion.  Concretely, @var{profile} will be a mere symbolic link (``symlink'') pointing to the actual profile where packages are installed:"
 msgstr "Als @var{Profil} muss der Name einer Datei angegeben werden, die dann nach Abschluss der Transaktion erzeugt wird. Konkret wird @var{Profil} nur zu einer symbolischen Verknüpfung („Symlink“) auf das eigentliche Profil gemacht, in das Pakete installiert werden."
 
 #. type: example
-#: doc/guix.texi:2988
+#: doc/guix.texi:3320
 #, no-wrap
 msgid ""
 "$ guix install hello -p ~/code/my-profile\n"
@@ -7463,29 +8270,29 @@ msgstr ""
 "Hallo, Welt!\n"
 
 #. type: table
-#: doc/guix.texi:2992
+#: doc/guix.texi:3324
 msgid "All it takes to get rid of the profile is to remove this symlink and its siblings that point to specific generations:"
 msgstr "Um das Profil loszuwerden, genügt es, die symbolische Verknüpfung und damit einhergehende Verknüpfungen, die auf bestimmte Generationen verweisen, zu entfernen:"
 
 #. type: example
-#: doc/guix.texi:2995
+#: doc/guix.texi:3327
 #, no-wrap
 msgid "$ rm ~/code/my-profile ~/code/my-profile-*-link\n"
 msgstr "$ rm ~/code/mein-profil ~/code/mein-profil-*-link\n"
 
 #. type: item
-#: doc/guix.texi:2997
+#: doc/guix.texi:3329
 #, no-wrap
 msgid "--list-profiles"
 msgstr "--list-profiles"
 
 #. type: table
-#: doc/guix.texi:2999
+#: doc/guix.texi:3331
 msgid "List all the user's profiles:"
 msgstr "Alle Profile des Benutzers auflisten:"
 
 #. type: example
-#: doc/guix.texi:3006
+#: doc/guix.texi:3338
 #, no-wrap
 msgid ""
 "$ guix package --list-profiles\n"
@@ -7501,90 +8308,95 @@ msgstr ""
 "/home/charlie/tmp/test\n"
 
 #. type: table
-#: doc/guix.texi:3009
+#: doc/guix.texi:3341
 msgid "When running as root, list all the profiles of all the users."
 msgstr "Wird es als Administratornutzer „root“ ausgeführt, werden die Profile aller Benutzer aufgelistet."
 
 #. type: cindex
-#: doc/guix.texi:3010
+#: doc/guix.texi:3342
 #, no-wrap
 msgid "collisions, in a profile"
 msgstr "Kollisionen, in einem Profil"
 
 #. type: cindex
-#: doc/guix.texi:3011
+#: doc/guix.texi:3343
 #, no-wrap
 msgid "colliding packages in profiles"
 msgstr "Paketkollisionen in Profilen"
 
 #. type: cindex
-#: doc/guix.texi:3012
+#: doc/guix.texi:3344
 #, no-wrap
 msgid "profile collisions"
 msgstr "Profilkollisionen"
 
 #. type: item
-#: doc/guix.texi:3013
+#: doc/guix.texi:3345
 #, no-wrap
 msgid "--allow-collisions"
 msgstr "--allow-collisions"
 
 #. type: table
-#: doc/guix.texi:3015
+#: doc/guix.texi:3347
 msgid "Allow colliding packages in the new profile.  Use at your own risk!"
 msgstr "Kollidierende Pakete im neuen Profil zulassen. Benutzung auf eigene Gefahr!"
 
 #. type: table
-#: doc/guix.texi:3019
+#: doc/guix.texi:3351
 msgid "By default, @command{guix package} reports as an error @dfn{collisions} in the profile.  Collisions happen when two or more different versions or variants of a given package end up in the profile."
 msgstr "Standardmäßig wird @command{guix package} @dfn{Kollisionen} als Fehler auffassen und melden. Zu Kollisionen kommt es, wenn zwei oder mehr verschiedene Versionen oder Varianten desselben Pakets im Profil landen."
 
 #. type: item
-#: doc/guix.texi:3020 doc/guix.texi:3902 doc/guix.texi:5319
+#: doc/guix.texi:3352 doc/guix.texi:4373 doc/guix.texi:6079
 #, no-wrap
 msgid "--bootstrap"
 msgstr "--bootstrap"
 
 #. type: table
-#: doc/guix.texi:3023
+#: doc/guix.texi:3355
 msgid "Use the bootstrap Guile to build the profile.  This option is only useful to distribution developers."
 msgstr "Erstellt das Profil mit dem Bootstrap-Guile. Diese Option ist nur für Entwickler der Distribution nützlich."
 
 #. type: Plain text
-#: doc/guix.texi:3029
+#: doc/guix.texi:3361
 msgid "In addition to these actions, @command{guix package} supports the following options to query the current state of a profile, or the availability of packages:"
 msgstr "Zusätzlich zu diesen Aktionen unterstützt @command{guix package} folgende Befehlszeilenoptionen, um den momentanen Zustand eines Profils oder die Verfügbarkeit von Paketen nachzulesen:"
 
 #. type: item
-#: doc/guix.texi:3032
+#: doc/guix.texi:3364
 #, no-wrap
 msgid "--search=@var{regexp}"
 msgstr "--search=@var{Regexp}"
 
 #. type: itemx
-#: doc/guix.texi:3033
+#: doc/guix.texi:3365
 #, no-wrap
 msgid "-s @var{regexp}"
 msgstr "-s @var{Regexp}"
 
+#. type: anchor{#1}
+#: doc/guix.texi:3367
+msgid "guix-search"
+msgstr "guix-search"
+
 #. type: cindex
-#: doc/guix.texi:3034
+#: doc/guix.texi:3367
 #, no-wrap
 msgid "searching for packages"
 msgstr "Suche nach Paketen"
 
 #. type: table
-#: doc/guix.texi:3040
+#: doc/guix.texi:3373
 msgid "List the available packages whose name, synopsis, or description matches @var{regexp} (in a case-insensitive fashion), sorted by relevance.  Print all the metadata of matching packages in @code{recutils} format (@pxref{Top, GNU recutils databases,, recutils, GNU recutils manual})."
-msgstr "Führt alle verfügbaren Pakete auf, deren Name, Zusammenfassung oder Beschreibung zum regulären Ausdruck @var{Regexp} passt, ohne Groß- und Kleinschreibung zu unterscheiden und sortiert nach ihrer Relevanz. Alle Metadaten passender Pakete werden im @code{recutils}-Format geliefert (siehe @ref{Top, GNU recutils databases,, recutils, GNU recutils manual})."
+msgstr "Führt alle verfügbaren Pakete auf, deren Name, Zusammenfassung oder Beschreibung zum regulären Ausdruck @var{Regexp} passt, ohne Groß- und Kleinschreibung zu unterscheiden und sortiert nach ihrer Relevanz. Alle Metadaten passender Pakete werden im @code{recutils}-Format geliefert (siehe @ref{Top, GNU-recutils-Datenbanken,, recutils, GNU recutils manual})."
 
 #. type: table
-#: doc/guix.texi:3043
+#: doc/guix.texi:3376
 msgid "This allows specific fields to be extracted using the @command{recsel} command, for instance:"
 msgstr "So können bestimmte Felder mit dem Befehl @command{recsel} extrahiert werden, zum Beispiel:"
 
 #. type: example
-#: doc/guix.texi:3049
+#: doc/guix.texi:3382
 #, no-wrap
 msgid ""
 "$ guix package -s malloc | recsel -p name,version,relevance\n"
@@ -7600,7 +8412,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:3053
+#: doc/guix.texi:3386
 #, no-wrap
 msgid ""
 "name: glibc\n"
@@ -7614,7 +8426,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:3057
+#: doc/guix.texi:3390
 #, no-wrap
 msgid ""
 "name: libgc\n"
@@ -7626,12 +8438,12 @@ msgstr ""
 "relevance: 1\n"
 
 #. type: table
-#: doc/guix.texi:3061
+#: doc/guix.texi:3394
 msgid "Similarly, to show the name of all the packages available under the terms of the GNU@tie{}LGPL version 3:"
 msgstr "Ebenso kann der Name aller zu den Bedingungen der GNU@tie{}LGPL, Version 3, verfügbaren Pakete ermittelt werden:"
 
 #. type: example
-#: doc/guix.texi:3065
+#: doc/guix.texi:3398
 #, no-wrap
 msgid ""
 "$ guix package -s \"\" | recsel -p name -e 'license ~ \"LGPL 3\"'\n"
@@ -7643,7 +8455,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:3068
+#: doc/guix.texi:3401
 #, no-wrap
 msgid ""
 "name: gmp\n"
@@ -7653,12 +8465,12 @@ msgstr ""
 "…\n"
 
 #. type: table
-#: doc/guix.texi:3074
+#: doc/guix.texi:3407
 msgid "It is also possible to refine search results using several @code{-s} flags to @command{guix package}, or several arguments to @command{guix search}.  For example, the following command returns a list of board games (this time using the @command{guix search} alias):"
 msgstr "Es ist auch möglich, Suchergebnisse näher einzuschränken, indem Sie @code{-s} mehrmals an @command{guix package} übergeben, oder mehrere Argumente an @command{guix search} übergeben. Zum Beispiel liefert folgender Befehl eines Liste von Brettspielen:"
 
 #. type: example
-#: doc/guix.texi:3079
+#: doc/guix.texi:3412
 #, no-wrap
 msgid ""
 "$ guix search '\\<board\\>' game | recsel -p name\n"
@@ -7670,17 +8482,17 @@ msgstr ""
 "…\n"
 
 #. type: table
-#: doc/guix.texi:3085
+#: doc/guix.texi:3418
 msgid "If we were to omit @code{-s game}, we would also get software packages that deal with printed circuit boards; removing the angle brackets around @code{board} would further add packages that have to do with keyboards."
 msgstr "Würden wir @code{-s game} weglassen, bekämen wir auch Software-Pakete aufgelistet, die mit „printed circuit boards“ (elektronischen Leiterplatten) zu tun haben; ohne die spitzen Klammern um @code{board} bekämen wir auch Pakete, die mit „keyboards“ (Tastaturen, oder musikalischen Keyboard) zu tun haben."
 
 #. type: table
-#: doc/guix.texi:3089
+#: doc/guix.texi:3422
 msgid "And now for a more elaborate example.  The following command searches for cryptographic libraries, filters out Haskell, Perl, Python, and Ruby libraries, and prints the name and synopsis of the matching packages:"
 msgstr "Es ist Zeit für ein komplexeres Beispiel. Folgender Befehl sucht kryptografische Bibliotheken, filtert Haskell-, Perl-, Python- und Ruby-Bibliotheken heraus und gibt Namen und Zusammenfassung passender Pakete aus:"
 
 #. type: example
-#: doc/guix.texi:3093
+#: doc/guix.texi:3426
 #, no-wrap
 msgid ""
 "$ guix search crypto library | \\\n"
@@ -7690,23 +8502,23 @@ msgstr ""
 "    recsel -e '! (name ~ \"^(ghc|perl|python|ruby)\")' -p name,synopsis\n"
 
 #. type: table
-#: doc/guix.texi:3098
+#: doc/guix.texi:3431
 msgid "@xref{Selection Expressions,,, recutils, GNU recutils manual}, for more information on @dfn{selection expressions} for @code{recsel -e}."
 msgstr "Siehe @ref{Selection Expressions,,, recutils, GNU recutils manual}, es enthält weitere Informationen über @dfn{Auswahlausdrücke} mit @code{recsel -e}."
 
 #. type: item
-#: doc/guix.texi:3099
+#: doc/guix.texi:3432
 #, no-wrap
 msgid "--show=@var{package}"
 msgstr "--show=@var{Paket}"
 
 #. type: table
-#: doc/guix.texi:3103
+#: doc/guix.texi:3436
 msgid "Show details about @var{package}, taken from the list of available packages, in @code{recutils} format (@pxref{Top, GNU recutils databases,, recutils, GNU recutils manual})."
-msgstr "Zeigt Details über das @var{Paket} aus der Liste verfügbarer Pakete, im @code{recutils}-Format (siehe @ref{Top, GNU recutils databases,, recutils, GNU recutils manual})."
+msgstr "Zeigt Details über das @var{Paket} aus der Liste verfügbarer Pakete, im @code{recutils}-Format (siehe @ref{Top, GNU-recutils-Datenbanken,, recutils, GNU recutils manual})."
 
 #. type: example
-#: doc/guix.texi:3108
+#: doc/guix.texi:3441
 #, no-wrap
 msgid ""
 "$ guix package --show=python | recsel -p name,version\n"
@@ -7720,7 +8532,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:3111
+#: doc/guix.texi:3444
 #, no-wrap
 msgid ""
 "name: python\n"
@@ -7730,12 +8542,12 @@ msgstr ""
 "version: 3.3.5\n"
 
 #. type: table
-#: doc/guix.texi:3115
+#: doc/guix.texi:3448
 msgid "You may also specify the full name of a package to only get details about a specific version of it (this time using the @command{guix show} alias):"
 msgstr "Sie können auch den vollständigen Namen eines Pakets angeben, um Details nur über diese Version angezeigt zu bekommen (diesmal benutzen wir die andere Schreibweise @command{guix show}):"
 
 #. type: example
-#: doc/guix.texi:3119
+#: doc/guix.texi:3452
 #, no-wrap
 msgid ""
 "$ guix show python@@3.4 | recsel -p name,version\n"
@@ -7747,234 +8559,239 @@ msgstr ""
 "version: 3.4.3\n"
 
 #. type: item
-#: doc/guix.texi:3123
+#: doc/guix.texi:3456
 #, no-wrap
 msgid "--list-installed[=@var{regexp}]"
 msgstr "--list-installed[=@var{Regexp}]"
 
 #. type: itemx
-#: doc/guix.texi:3124
+#: doc/guix.texi:3457
 #, no-wrap
 msgid "-I [@var{regexp}]"
 msgstr "-I [@var{Regexp}]"
 
 #. type: table
-#: doc/guix.texi:3128
+#: doc/guix.texi:3461
 msgid "List the currently installed packages in the specified profile, with the most recently installed packages shown last.  When @var{regexp} is specified, list only installed packages whose name matches @var{regexp}."
 msgstr "Listet die derzeit installierten Pakete im angegebenen Profil auf, die zuletzt installierten Pakete zuletzt. Wenn ein regulärer Ausdruck @var{Regexp} angegeben wird, werden nur installierte Pakete aufgeführt, deren Name zu @var{Regexp} passt."
 
 #. type: table
-#: doc/guix.texi:3134
+#: doc/guix.texi:3467
 msgid "For each installed package, print the following items, separated by tabs: the package name, its version string, the part of the package that is installed (for instance, @code{out} for the default output, @code{include} for its headers, etc.), and the path of this package in the store."
 msgstr "Zu jedem installierten Paket werden folgende Informationen angezeigt, durch Tabulatorzeichen getrennt: der Paketname, die Version als Zeichenkette, welche Teile des Pakets installiert sind (zum Beispiel @code{out}, wenn die Standard-Paketausgabe installiert ist, @code{include}, wenn seine Header installiert sind, usw.)@: und an welchem Pfad das Paket im Store zu finden ist."
 
 #. type: item
-#: doc/guix.texi:3135
+#: doc/guix.texi:3468
 #, no-wrap
 msgid "--list-available[=@var{regexp}]"
 msgstr "--list-available[=@var{Regexp}]"
 
 #. type: itemx
-#: doc/guix.texi:3136
+#: doc/guix.texi:3469
 #, no-wrap
 msgid "-A [@var{regexp}]"
 msgstr "-A [@var{Regexp}]"
 
 #. type: table
-#: doc/guix.texi:3140
+#: doc/guix.texi:3473
 msgid "List packages currently available in the distribution for this system (@pxref{GNU Distribution}).  When @var{regexp} is specified, list only available packages whose name matches @var{regexp}."
 msgstr "Listet Pakete auf, die in der aktuell installierten Distribution dieses Systems verfügbar sind (siehe @ref{GNU Distribution}). Wenn ein regulärer Ausdruck @var{Regexp} angegeben wird, werden nur Pakete aufgeführt, deren Name zum regulären Ausdruck @var{Regexp} passt."
 
 #. type: table
-#: doc/guix.texi:3144
+#: doc/guix.texi:3477
 msgid "For each package, print the following items separated by tabs: its name, its version string, the parts of the package (@pxref{Packages with Multiple Outputs}), and the source location of its definition."
 msgstr "Zu jedem Paket werden folgende Informationen getrennt durch Tabulatorzeichen ausgegeben: der Name, die Version als Zeichenkette, die Teile des Programms (siehe @ref{Packages with Multiple Outputs}) und die Stelle im Quellcode, an der das Paket definiert ist."
 
 #. type: item
-#: doc/guix.texi:3145 doc/guix.texi:3841
+#: doc/guix.texi:3478 doc/guix.texi:4286
 #, no-wrap
 msgid "--list-generations[=@var{pattern}]"
 msgstr "--list-generations[=@var{Muster}]"
 
 #. type: itemx
-#: doc/guix.texi:3146 doc/guix.texi:3842
+#: doc/guix.texi:3479 doc/guix.texi:4287
 #, no-wrap
 msgid "-l [@var{pattern}]"
 msgstr "-l [@var{Muster}]"
 
 #. type: table
-#: doc/guix.texi:3152
+#: doc/guix.texi:3485
 msgid "Return a list of generations along with their creation dates; for each generation, show the installed packages, with the most recently installed packages shown last.  Note that the zeroth generation is never shown."
 msgstr "Liefert eine Liste der Generationen zusammen mit dem Datum, an dem sie erzeugt wurden; zu jeder Generation werden zudem die installierten Pakete angezeigt, zuletzt installierte Pakete zuletzt. Beachten Sie, dass die nullte Generation niemals angezeigt wird."
 
 #. type: table
-#: doc/guix.texi:3157
+#: doc/guix.texi:3490
 msgid "For each installed package, print the following items, separated by tabs: the name of a package, its version string, the part of the package that is installed (@pxref{Packages with Multiple Outputs}), and the location of this package in the store."
 msgstr "Zu jedem installierten Paket werden folgende Informationen durch Tabulatorzeichen getrennt angezeigt: der Name des Pakets, die Version als Zeichenkette, welcher Teil des Pakets installiert ist (siehe @ref{Packages with Multiple Outputs}) und an welcher Stelle sich das Paket im Store befindet."
 
 #. type: table
-#: doc/guix.texi:3160
+#: doc/guix.texi:3493
 msgid "When @var{pattern} is used, the command returns only matching generations.  Valid patterns include:"
 msgstr "Wenn ein @var{Muster} angegeben wird, liefert der Befehl nur dazu passende Generationen. Gültige Muster sind zum Beispiel:"
 
 #. type: item
-#: doc/guix.texi:3162
+#: doc/guix.texi:3495
 #, no-wrap
 msgid "@emph{Integers and comma-separated integers}.  Both patterns denote"
 msgstr "@emph{Ganze Zahlen und kommagetrennte ganze Zahlen}. Beide Muster bezeichnen"
 
 #. type: itemize
-#: doc/guix.texi:3165
-msgid "generation numbers.  For instance, @code{--list-generations=1} returns the first one."
-msgstr "Generationsnummern. Zum Beispiel liefert @code{--list-generations=1} die erste Generation."
+#: doc/guix.texi:3498
+msgid "generation numbers.  For instance, @option{--list-generations=1} returns the first one."
+msgstr "Generationsnummern. Zum Beispiel liefert @option{--list-generations=1} die erste Generation."
 
 #. type: itemize
-#: doc/guix.texi:3168
-msgid "And @code{--list-generations=1,8,2} outputs three generations in the specified order.  Neither spaces nor trailing commas are allowed."
-msgstr "Durch @code{--list-generations=1,8,2} werden drei Generationen in der angegebenen Reihenfolge angezeigt. Weder Leerzeichen noch ein Komma am Schluss der Liste ist erlaubt."
+#: doc/guix.texi:3501
+msgid "And @option{--list-generations=1,8,2} outputs three generations in the specified order.  Neither spaces nor trailing commas are allowed."
+msgstr "Durch @option{--list-generations=1,8,2} werden drei Generationen in der angegebenen Reihenfolge angezeigt. Weder Leerzeichen noch ein Komma am Schluss der Liste ist erlaubt."
 
 #. type: item
-#: doc/guix.texi:3169
+#: doc/guix.texi:3502
 #, no-wrap
-msgid "@emph{Ranges}.  @code{--list-generations=2..9} prints the"
-msgstr "@emph{Bereiche}. @code{--list-generations=2..9} gibt die"
+msgid "@emph{Ranges}.  @option{--list-generations=2..9} prints the"
+msgstr "@emph{Bereiche}. @option{--list-generations=2..9} gibt die"
 
 #. type: itemize
-#: doc/guix.texi:3172
+#: doc/guix.texi:3505
 msgid "specified generations and everything in between.  Note that the start of a range must be smaller than its end."
 msgstr "angegebenen Generationen und alles dazwischen aus. Beachten Sie, dass der Bereichsanfang eine kleinere Zahl als das Bereichsende sein muss."
 
 #. type: itemize
-#: doc/guix.texi:3176
-msgid "It is also possible to omit the endpoint.  For example, @code{--list-generations=2..}, returns all generations starting from the second one."
-msgstr "Sie können auch kein Bereichsende angeben, zum Beispiel liefert @code{--list-generations=2..} alle Generationen ab der zweiten."
+#: doc/guix.texi:3509
+msgid "It is also possible to omit the endpoint.  For example, @option{--list-generations=2..}, returns all generations starting from the second one."
+msgstr "Sie können auch kein Bereichsende angeben, zum Beispiel liefert @option{--list-generations=2..} alle Generationen ab der zweiten."
 
 #. type: item
-#: doc/guix.texi:3177
+#: doc/guix.texi:3510
 #, no-wrap
 msgid "@emph{Durations}.  You can also get the last @emph{N}@tie{}days, weeks,"
 msgstr "@emph{Zeitdauern}. Sie können auch die letzten @emph{N}@tie{}Tage, Wochen"
 
 #. type: itemize
-#: doc/guix.texi:3181
-msgid "or months by passing an integer along with the first letter of the duration.  For example, @code{--list-generations=20d} lists generations that are up to 20 days old."
-msgstr "oder Monate angeben, indem Sie eine ganze Zahl gefolgt von jeweils „d“, „w“ oder „m“ angeben (dem ersten Buchstaben der Maßeinheit der Dauer im Englischen). Zum Beispiel listet @code{--list-generations=20d} die Generationen auf, die höchstens 20 Tage alt sind."
+#: doc/guix.texi:3514
+msgid "or months by passing an integer along with the first letter of the duration.  For example, @option{--list-generations=20d} lists generations that are up to 20 days old."
+msgstr "oder Monate angeben, indem Sie eine ganze Zahl gefolgt von jeweils „d“, „w“ oder „m“ angeben (dem ersten Buchstaben der Maßeinheit der Dauer im Englischen). Zum Beispiel listet @option{--list-generations=20d} die Generationen auf, die höchstens 20 Tage alt sind."
 
 #. type: item
-#: doc/guix.texi:3183 doc/guix.texi:3866
+#: doc/guix.texi:3516 doc/guix.texi:4311
 #, no-wrap
 msgid "--delete-generations[=@var{pattern}]"
 msgstr "--delete-generations[=@var{Muster}]"
 
 #. type: itemx
-#: doc/guix.texi:3184 doc/guix.texi:3867
+#: doc/guix.texi:3517 doc/guix.texi:4312
 #, no-wrap
 msgid "-d [@var{pattern}]"
 msgstr "-d [@var{Muster}]"
 
 #. type: table
-#: doc/guix.texi:3187 doc/guix.texi:3870
+#: doc/guix.texi:3520 doc/guix.texi:4315
 msgid "When @var{pattern} is omitted, delete all generations except the current one."
 msgstr "Wird kein @var{Muster} angegeben, werden alle Generationen außer der aktuellen entfernt."
 
 #. type: table
-#: doc/guix.texi:3193 doc/guix.texi:3876
-msgid "This command accepts the same patterns as @option{--list-generations}.  When @var{pattern} is specified, delete the matching generations.  When @var{pattern} specifies a duration, generations @emph{older} than the specified duration match.  For instance, @code{--delete-generations=1m} deletes generations that are more than one month old."
-msgstr "Dieser Befehl akzeptiert dieselben Muster wie @option{--list-generations}. Wenn ein @var{Muster} angegeben wird, werden die passenden Generationen gelöscht. Wenn das @var{Muster} für eine Zeitdauer steht, werden diejenigen Generationen gelöscht, die @emph{älter} als die angegebene Dauer sind. Zum Beispiel löscht @code{--delete-generations=1m} die Generationen, die mehr als einen Monat alt sind."
+#: doc/guix.texi:3526 doc/guix.texi:4321
+msgid "This command accepts the same patterns as @option{--list-generations}.  When @var{pattern} is specified, delete the matching generations.  When @var{pattern} specifies a duration, generations @emph{older} than the specified duration match.  For instance, @option{--delete-generations=1m} deletes generations that are more than one month old."
+msgstr "Dieser Befehl akzeptiert dieselben Muster wie @option{--list-generations}. Wenn ein @var{Muster} angegeben wird, werden die passenden Generationen gelöscht. Wenn das @var{Muster} für eine Zeitdauer steht, werden diejenigen Generationen gelöscht, die @emph{älter} als die angegebene Dauer sind. Zum Beispiel löscht @option{--delete-generations=1m} die Generationen, die mehr als einen Monat alt sind."
 
 #. type: table
-#: doc/guix.texi:3196
+#: doc/guix.texi:3529
 msgid "If the current generation matches, it is @emph{not} deleted.  Also, the zeroth generation is never deleted."
 msgstr "Falls die aktuelle Generation zum Muster passt, wird sie @emph{nicht} gelöscht. Auch die nullte Generation wird niemals gelöscht."
 
 #. type: table
-#: doc/guix.texi:3199 doc/guix.texi:3881
+#: doc/guix.texi:3532 doc/guix.texi:4326
 msgid "Note that deleting generations prevents rolling back to them.  Consequently, this command must be used with care."
 msgstr "Beachten Sie, dass Sie auf gelöschte Generationen nicht zurückwechseln können. Dieser Befehl sollte also nur mit Vorsicht benutzt werden."
 
 #. type: Plain text
-#: doc/guix.texi:3210
-msgid "Finally, since @command{guix package} may actually start build processes, it supports all the common build options (@pxref{Common Build Options}).  It also supports package transformation options, such as @option{--with-source} (@pxref{Package Transformation Options}).  However, note that package transformations are lost when upgrading; to preserve transformations across upgrades, you should define your own package variant in a Guile module and add it to @code{GUIX_PACKAGE_PATH} (@pxref{Defining Packages})."
-msgstr "Zu guter Letzt können Sie, da @command{guix package} Erstellungsprozesse zu starten vermag, auch alle gemeinsamen Erstellungsoptionen (siehe @ref{Common Build Options}) verwenden. Auch Paketumwandlungsoptionen wie @option{--with-source} sind möglich (siehe @ref{Package Transformation Options}). Beachten Sie jedoch, dass die verwendeten Paketumwandlungsoptionen verloren gehen, nachdem Sie die Pakete aktualisiert haben. Damit Paketumwandlungen über Aktualisierungen hinweg erhalten bleiben, sollten Sie Ihre eigene Paketvariante in einem Guile-Modul definieren und zur Umgebungsvariablen @code{GUIX_PACKAGE_PATH} hinzufügen (siehe @ref{Defining Packages})."
+#: doc/guix.texi:3543
+msgid "Finally, since @command{guix package} may actually start build processes, it supports all the common build options (@pxref{Common Build Options}).  It also supports package transformation options, such as @option{--with-source} (@pxref{Package Transformation Options}).  However, note that package transformations are lost when upgrading; to preserve transformations across upgrades, you should define your own package variant in a Guile module and add it to @env{GUIX_PACKAGE_PATH} (@pxref{Defining Packages})."
+msgstr "Zu guter Letzt können Sie, da @command{guix package} Erstellungsprozesse zu starten vermag, auch alle gemeinsamen Erstellungsoptionen (siehe @ref{Common Build Options}) verwenden. Auch Paketumwandlungsoptionen wie @option{--with-source} sind möglich (siehe @ref{Package Transformation Options}). Beachten Sie jedoch, dass die verwendeten Paketumwandlungsoptionen verloren gehen, nachdem Sie die Pakete aktualisiert haben. Damit Paketumwandlungen über Aktualisierungen hinweg erhalten bleiben, sollten Sie Ihre eigene Paketvariante in einem Guile-Modul definieren und zur Umgebungsvariablen @env{GUIX_PACKAGE_PATH} hinzufügen (siehe @ref{Defining Packages})."
 
 #. type: cindex
-#: doc/guix.texi:3215
+#: doc/guix.texi:3548
 #, no-wrap
 msgid "pre-built binaries"
 msgstr "vorerstellte Binärdateien"
 
 #. type: Plain text
-#: doc/guix.texi:3221
+#: doc/guix.texi:3554
 msgid "Guix supports transparent source/binary deployment, which means that it can either build things locally, or download pre-built items from a server, or both.  We call these pre-built items @dfn{substitutes}---they are substitutes for local build results.  In many cases, downloading a substitute is much faster than building things locally."
 msgstr "Guix kann transparent Binär- oder Quelldateien ausliefern. Das heißt, Dinge können sowohl lokal erstellt, als auch als vorerstellte Objekte von einem Server heruntergeladen werden, oder beides gemischt. Wir bezeichnen diese vorerstellten Objekte als @dfn{Substitute} — sie substituieren lokale Erstellungsergebnisse. In vielen Fällen geht das Herunterladen eines Substituts wesentlich schneller, als Dinge lokal zu erstellen."
 
 #. type: Plain text
-#: doc/guix.texi:3226
+#: doc/guix.texi:3559
 msgid "Substitutes can be anything resulting from a derivation build (@pxref{Derivations}).  Of course, in the common case, they are pre-built package binaries, but source tarballs, for instance, which also result from derivation builds, can be available as substitutes."
 msgstr "Substitute können alles sein, was das Ergebnis einer Ableitungserstellung ist (siehe @ref{Derivations}). Natürlich sind sie üblicherweise vorerstellte Paket-Binärdateien, aber wenn zum Beispiel ein Quell-Tarball das Ergebnis einer Ableitungserstellung ist, kann auch er als Substitut verfügbar sein."
 
 #. type: cindex
-#: doc/guix.texi:3239
+#: doc/guix.texi:3573
 #, no-wrap
 msgid "build farm"
 msgstr "Erstellungsfarm"
 
 #. type: Plain text
-#: doc/guix.texi:3249
+#: doc/guix.texi:3583
 msgid "The @code{@value{SUBSTITUTE-SERVER}} server is a front-end to an official build farm that builds packages from Guix continuously for some architectures, and makes them available as substitutes.  This is the default source of substitutes; it can be overridden by passing the @option{--substitute-urls} option either to @command{guix-daemon} (@pxref{daemon-substitute-urls,, @code{guix-daemon --substitute-urls}})  or to client tools such as @command{guix package} (@pxref{client-substitute-urls,, client @option{--substitute-urls} option})."
 msgstr "Der Server @code{@value{SUBSTITUTE-SERVER}} ist die Fassade für eine offizielle Erstellungsfarm („Build-Farm“), die kontinuierlich Guix-Pakete für einige Prozessorarchitekturen erstellt und sie als Substitute zur Verfügung stellt. Dies ist die standardmäßige Quelle von Substituten; durch Übergeben der Befehlszeilenoption @option{--substitute-urls} an entweder den @command{guix-daemon} (siehe @ref{daemon-substitute-urls,, @code{guix-daemon --substitute-urls}}) oder Client-Werkzeuge wie @command{guix package} (siehe @ref{client-substitute-urls,, die Befehlszeilenoption @option{--substitute-urls} beim Client}) kann eine abweichende Einstellung benutzt werden."
 
 #. type: Plain text
-#: doc/guix.texi:3255
+#: doc/guix.texi:3589
 msgid "Substitute URLs can be either HTTP or HTTPS.  HTTPS is recommended because communications are encrypted; conversely, using HTTP makes all communications visible to an eavesdropper, who could use the information gathered to determine, for instance, whether your system has unpatched security vulnerabilities."
 msgstr "Substitut-URLs können entweder HTTP oder HTTPS sein. HTTPS wird empfohlen, weil die Kommunikation verschlüsselt ist; umgekehrt kann bei HTTP die Kommunikation belauscht werden, wodurch der Angreifer zum Beispiel erfahren könnte, ob Ihr System über noch nicht behobene Sicherheitsschwachstellen verfügt."
 
 #. type: Plain text
-#: doc/guix.texi:3264
+#: doc/guix.texi:3598
 msgid "Substitutes from the official build farm are enabled by default when using Guix System (@pxref{GNU Distribution}).  However, they are disabled by default when using Guix on a foreign distribution, unless you have explicitly enabled them via one of the recommended installation steps (@pxref{Installation}).  The following paragraphs describe how to enable or disable substitutes for the official build farm; the same procedure can also be used to enable substitutes for any other substitute server."
 msgstr "Substitute von der offiziellen Erstellungsfarm sind standardmäßig erlaubt, wenn Sie Guix System verwenden (siehe @ref{GNU Distribution}). Auf Fremddistributionen sind sie allerdings standardmäßig ausgeschaltet, solange Sie sie nicht ausdrücklich in einem der empfohlenen Installationsschritte erlaubt haben (siehe @ref{Installation}). Die folgenden Absätze beschreiben, wie Sie Substitute für die offizielle Erstellungsfarm an- oder ausschalten; dieselbe Prozedur kann auch benutzt werden, um Substitute für einen beliebigen anderen Substitutserver zu erlauben."
 
 #. type: cindex
-#: doc/guix.texi:3268
+#: doc/guix.texi:3602
 #, no-wrap
 msgid "security"
 msgstr "Sicherheit"
 
 #. type: cindex
-#: doc/guix.texi:3270
+#: doc/guix.texi:3604
 #, no-wrap
 msgid "access control list (ACL), for substitutes"
 msgstr "Access Control List (ACL), für Substitute"
 
 #. type: cindex
-#: doc/guix.texi:3271
+#: doc/guix.texi:3605
 #, no-wrap
 msgid "ACL (access control list), for substitutes"
 msgstr "ACL (Access Control List), für Substitute"
 
 #. type: Plain text
-#: doc/guix.texi:3278
+#: doc/guix.texi:3612
 msgid "To allow Guix to download substitutes from @code{@value{SUBSTITUTE-SERVER}} or a mirror thereof, you must add its public key to the access control list (ACL) of archive imports, using the @command{guix archive} command (@pxref{Invoking guix archive}).  Doing so implies that you trust @code{@value{SUBSTITUTE-SERVER}} to not be compromised and to serve genuine substitutes."
-msgstr "Um es Guix zu gestatten, Substitute von @code{@value{SUBSTITUTE-SERVER}} oder einem Spiegelserver davon herunterzuladen, müssen Sie den zugehörigen öffentlichen Schlüssel zur Access Control List (ACL, Zugriffssteuerungsliste) für Archivimporte hinzufügen, mit Hilfe des Befehls @command{guix archive} (siehe @ref{Invoking guix archive}). Dies impliziert, dass Sie darauf vertrauen, dass @code{@value{SUBSTITUTE-SERVER}} nicht kompromittiert wurde und echte Substitute liefert."
+msgstr "Um es Guix zu gestatten, Substitute von @code{@value{SUBSTITUTE-SERVER}} oder einem Spiegelserver davon herunterzuladen, müssen Sie den zugehörigen öffentlichen Schlüssel zur Access Control List (ACL, Zugriffssteuerungsliste) für Archivimporte hinzufügen, mit Hilfe des Befehls @command{guix archive} (siehe @ref{Invoking guix archive}). Dies impliziert, dass Sie darauf vertrauen, dass @code{@value{SUBSTITUTE-SERVER}} nicht kompromittiert wurde und unverfälschte Substitute liefert."
+
+#. type: quotation
+#: doc/guix.texi:3616
+msgid "If you are using Guix System, you can skip this section: Guix System authorizes substitutes from @code{@value{SUBSTITUTE-SERVER}} by default."
+msgstr "Wenn Sie Guix System benutzen, können Sie diesen Abschnitt hier überspringen, denn Guix System ist so voreingestellt, Substitute von @code{@value{SUBSTITUTE-SERVER}} zu autorisieren."
 
 #. type: Plain text
-#: doc/guix.texi:3285
+#: doc/guix.texi:3624
 msgid "The public key for @code{@value{SUBSTITUTE-SERVER}} is installed along with Guix, in @code{@var{prefix}/share/guix/@value{SUBSTITUTE-SERVER}.pub}, where @var{prefix} is the installation prefix of Guix.  If you installed Guix from source, make sure you checked the GPG signature of @file{guix-@value{VERSION}.tar.gz}, which contains this public key file.  Then, you can run something like this:"
 msgstr "Der öffentliche Schlüssel für @code{@value{SUBSTITUTE-SERVER}} wird zusammen mit Guix installiert, in das Verzeichnis @code{@var{prefix}/share/guix/hydra.gnu.org.pub}, wobei @var{prefix} das bei der Installation angegebene Präfix von Guix ist. Wenn Sie Guix aus seinem Quellcode heraus installieren, sollten Sie sichergehen, dass Sie die GPG-Signatur (auch „Beglaubigung“ genannt) von @file{guix-@value{VERSION}.tar.gz} prüfen, worin sich dieser öffentliche Schlüssel befindet. Dann können Sie so etwas wie hier ausführen:"
 
 #. type: example
-#: doc/guix.texi:3288
+#: doc/guix.texi:3627
 #, no-wrap
 msgid "# guix archive --authorize < @var{prefix}/share/guix/@value{SUBSTITUTE-SERVER}.pub\n"
 msgstr "# guix archive --authorize < @var{prefix}/share/guix/@value{SUBSTITUTE-SERVER}.pub\n"
 
 #. type: Plain text
-#: doc/guix.texi:3292
+#: doc/guix.texi:3631
 msgid "Once this is in place, the output of a command like @code{guix build} should change from something like:"
 msgstr "Sobald es eingerichtet wurde, sollte sich die Ausgabe eines Befehls wie @code{guix build} von so etwas:"
 
 #. type: example
-#: doc/guix.texi:3301
+#: doc/guix.texi:3640
 #, no-wrap
 msgid ""
 "$ guix build emacs --dry-run\n"
@@ -7994,12 +8811,12 @@ msgstr ""
 "…\n"
 
 #. type: Plain text
-#: doc/guix.texi:3305
+#: doc/guix.texi:3644
 msgid "to something like:"
 msgstr "in so etwas verwandeln:"
 
 #. type: example
-#: doc/guix.texi:3314
+#: doc/guix.texi:3653
 #, no-wrap
 msgid ""
 "$ guix build emacs --dry-run\n"
@@ -8019,626 +8836,774 @@ msgstr ""
 "…\n"
 
 #. type: Plain text
-#: doc/guix.texi:3321
+#: doc/guix.texi:3660
 msgid "The text changed from ``The following derivations would be built'' to ``112.3 MB would be downloaded''.  This indicates that substitutes from @code{@value{SUBSTITUTE-SERVER}} are usable and will be downloaded, when possible, for future builds."
 msgstr "Der Text hat sich von „Folgende Ableitungen würden erstellt“ zu „112.3 MB würden heruntergeladen“ geändert. Das zeigt an, dass Substitute von @code{@value{SUBSTITUTE-SERVER}} nutzbar sind und für zukünftige Erstellungen heruntergeladen werden, wann immer es möglich ist."
 
 #. type: cindex
-#: doc/guix.texi:3322
+#: doc/guix.texi:3661
 #, no-wrap
 msgid "substitutes, how to disable"
 msgstr "Substitute, wie man sie ausschaltet"
 
 #. type: Plain text
-#: doc/guix.texi:3328
-msgid "The substitute mechanism can be disabled globally by running @code{guix-daemon} with @code{--no-substitutes} (@pxref{Invoking guix-daemon}).  It can also be disabled temporarily by passing the @code{--no-substitutes} option to @command{guix package}, @command{guix build}, and other command-line tools."
-msgstr "Der Substitutsmechanismus kann global ausgeschaltet werden, indem Sie dem @code{guix-daemon} beim Starten die Befehlszeilenoption @code{--no-substitutes} übergeben (siehe @ref{Invoking guix-daemon}). Er kann auch temporär ausgeschaltet werden, indem Sie @code{--no-substitutes} an @command{guix package}, @command{guix build} und andere Befehlszeilenwerkzeuge übergeben."
+#: doc/guix.texi:3667
+msgid "The substitute mechanism can be disabled globally by running @code{guix-daemon} with @option{--no-substitutes} (@pxref{Invoking guix-daemon}).  It can also be disabled temporarily by passing the @option{--no-substitutes} option to @command{guix package}, @command{guix build}, and other command-line tools."
+msgstr "Der Substitutsmechanismus kann global ausgeschaltet werden, indem Sie dem @code{guix-daemon} beim Starten die Befehlszeilenoption @option{--no-substitutes} übergeben (siehe @ref{Invoking guix-daemon}). Er kann auch temporär ausgeschaltet werden, indem Sie @option{--no-substitutes} an @command{guix package}, @command{guix build} und andere Befehlszeilenwerkzeuge übergeben."
+
+#. type: cindex
+#: doc/guix.texi:3671
+#, no-wrap
+msgid "substitute servers, adding more"
+msgstr "Substitut-Server, weitere hinzufügen"
+
+#. type: Plain text
+#: doc/guix.texi:3678
+msgid "Guix can look up and fetch substitutes from several servers.  This is useful when you are using packages from additional channels for which the official server does not have substitutes but another server provides them.  Another situation where this is useful is when you would prefer to download from your organization's substitute server, resorting to the official server only as a fallback or dismissing it altogether."
+msgstr "Guix kann auf unterschiedlichen Servern nach Substituten schauen und sie von dort laden. Das lohnt sich, wenn Sie Pakete von zusätzlichen Kanälen laden, für die es auf dem offiziellen Server keine Substitute gibt, auf einem anderen aber schon. Eine andere Situation, wo es sich anbietet, ist, wenn Sie Substitute lieber vom Substitutserver beziehen, der zu Ihrer Organisation gehört, und den offiziellen Server nur im Ausnahmefall einsetzen oder ganz weglassen möchten."
+
+#. type: Plain text
+#: doc/guix.texi:3683
+msgid "You can give Guix a list of substitute server URLs and it will check them in the specified order.  You also need to explicitly authorize the public keys of substitute servers to instruct Guix to accept the substitutes they sign."
+msgstr "Sie können Guix eine Liste von URLs der Substitutserver mitgeben, damit es sie in der angegebenen Reihenfolge anfragt. Außerdem müssen Sie die öffentlichen Schlüssel der Substitutserver ausdrücklich autorisieren, damit Guix von ihnen signierte Substitute annimmt."
+
+#. type: Plain text
+#: doc/guix.texi:3690
+msgid "On Guix System, this is achieved by modifying the configuration of the @code{guix} service.  Since the @code{guix} service is part of the default lists of services, @code{%base-services} and @code{%desktop-services}, you can use @code{modify-services} to change its configuration and add the URLs and substitute keys that you want (@pxref{Service Reference, @code{modify-services}})."
+msgstr "Auf Guix System ginge dies vonstatten, indem Sie die Konfiguration des @code{guix}-Dienstes modifizieren. Weil der @code{guix}-Dienst zu der Liste der vorgegebenen Dienste gehört, sowohl für @code{%base-services} als auch für @code{%desktop-services}, können Sie dessen Konfiguration mit @code{modify-services} ändern und dort die URLs und Substitutschlüssel eintragen, die Sie möchten (siehe @ref{Service Reference, @code{modify-services}})."
+
+#. type: Plain text
+#: doc/guix.texi:3695
+msgid "As an example, suppose you want to fetch substitutes from @code{guix.example.org} and to authorize the signing key of that server, in addition to the default @code{@value{SUBSTITUTE-SERVER}}.  The resulting operating system configuration will look something like:"
+msgstr "Ein Beispiel: Nehmen wir an, Sie möchten Substitute zusätzlich zum vorgegebenen @code{@value{SUBSTITUTE-SERVER}} von @code{guix.example.org} beziehen und den Signierschlüssel dieses Servers autorisieren. Die Betriebssystemkonfiguration, die sich damit ergibt, wird ungefähr so aussehen:"
+
+#. type: lisp
+#: doc/guix.texi:3712
+#, no-wrap
+msgid ""
+"(operating-system\n"
+"  ;; @dots{}\n"
+"  (services\n"
+"    ;; Assume we're starting from '%desktop-services'.  Replace it\n"
+"    ;; with the list of services you're actually using.\n"
+"    (modify-services %desktop-services\n"
+"      (guix-service-type config =>\n"
+"                        (guix-configuration\n"
+"                          (inherit config)\n"
+"                          (substitute-urls\n"
+"                            (append (list \"https://guix.example.org\")\n"
+"                                    %default-substitute-urls))\n"
+"                          (authorized-keys\n"
+"                            (append (list (local-file \"./key.pub\"))\n"
+"                                    %default-authorized-guix-keys)))))))\n"
+msgstr ""
+"(operating-system\n"
+"  ;; …\n"
+"  (services\n"
+"    ;; Wir nehmen hier '%desktop-services' als Grundlage; geben Sie\n"
+"    ;; an deren Stelle die Liste der bei Ihnen benutzten Dienste an.\n"
+"    (modify-services %desktop-services\n"
+"      (guix-service-type config =>\n"
+"                        (guix-configuration\n"
+"                          (inherit config)\n"
+"                          (substitute-urls\n"
+"                            (append (list \"https://guix.example.org\")\n"
+"                                    %default-substitute-urls))\n"
+"                          (authorized-keys\n"
+"                            (append (list (local-file \"./key.pub\"))\n"
+"                                    %default-authorized-guix-keys)))))))\n"
+
+#. type: Plain text
+#: doc/guix.texi:3719
+msgid "This assumes that the file @file{key.pub} contains the signing key of @code{guix.example.org}.  With this change in place in your operating system configuration file (say @file{/etc/config.scm}), you can reconfigure and restart the @code{guix-daemon} service or reboot so the changes take effect:"
+msgstr "Dabei gehen wir davon aus, dass der Signierschlüssel von @code{guix.example.org} in der Datei @file{key.pub} steht. Sobald Sie diese Änderung an der Datei mit Ihrer Betriebssystemkonfiguration vorgenommen haben (etwa @file{/etc/config.scm}), können Sie rekonfigurieren und den @code{guix-daemon}-Dienst (oder den ganzen Rechner) neu starten, damit die Änderung in Kraft tritt:"
+
+#. type: example
+#: doc/guix.texi:3723
+#, no-wrap
+msgid ""
+"$ sudo guix system reconfigure /etc/config.scm\n"
+"$ sudo herd restart guix-daemon\n"
+msgstr ""
+"$ sudo guix system reconfigure /etc/config.scm\n"
+"$ sudo herd restart guix-daemon\n"
+
+#. type: Plain text
+#: doc/guix.texi:3727
+msgid "If you're running Guix on a ``foreign distro'', you would instead take the following steps to get substitutes from additional servers:"
+msgstr "Wenn Sie Guix auf einer „Fremddistribution“ laufen lassen, würden Sie stattdessen nach den folgenden Schritten vorgehen, um Substitute von zusätzlichen Servern zu bekommen:"
+
+#. type: enumerate
+#: doc/guix.texi:3736
+msgid "Edit the service configuration file for @code{guix-daemon}; when using systemd, this is normally @file{/etc/systemd/system/guix-daemon.service}.  Add the @option{--substitute-urls} option on the @command{guix-daemon} command line and list the URLs of interest (@pxref{daemon-substitute-urls, @code{guix-daemon --substitute-urls}}):"
+msgstr "Bearbeiten Sie die Konfigurationsdatei für den @code{guix-daemon}; wenn Sie systemd benutzen, wäre das normalerweise @file{/etc/systemd/system/guix-daemon.service}. Schreiben Sie in die Konfigurationsdatei die Option @option{--substitute-urls} zur @command{guix-daemon}-Befehlszeile dazu und listen Sie dabei die gewünschten URLs auf (siehe @ref{daemon-substitute-urls, @code{guix-daemon --substitute-urls}}):"
+
+#. type: example
+#: doc/guix.texi:3739
+#, no-wrap
+msgid "@dots{} --substitute-urls='https://guix.example.org https://@value{SUBSTITUTE-SERVER}'\n"
+msgstr "… --substitute-urls='https://guix.example.org https://@value{SUBSTITUTE-SERVER}'\n"
+
+#. type: enumerate
+#: doc/guix.texi:3743
+msgid "Restart the daemon.  For systemd, it goes like this:"
+msgstr "Starten Sie den Daemon neu. Bei systemd geht das so:"
+
+#. type: example
+#: doc/guix.texi:3747
+#, no-wrap
+msgid ""
+"systemctl daemon-reload\n"
+"systemctl restart guix-daemon.service\n"
+msgstr ""
+"systemctl daemon-reload\n"
+"systemctl restart guix-daemon.service\n"
+
+#. type: enumerate
+#: doc/guix.texi:3751
+msgid "Authorize the key of the new server (@pxref{Invoking guix archive}):"
+msgstr "Autorisieren Sie den Schlüssel des neuen Servers (siehe @ref{Invoking guix archive}):"
+
+#. type: example
+#: doc/guix.texi:3754
+#, no-wrap
+msgid "guix archive --authorize < key.pub\n"
+msgstr "guix archive --authorize < key.pub\n"
+
+#. type: enumerate
+#: doc/guix.texi:3758
+msgid "Again this assumes @file{key.pub} contains the public key that @code{guix.example.org} uses to sign substitutes."
+msgstr "Wir nehmen auch hier an, dass @file{key.pub} den öffentlichen Schlüssel enthält, mit dem @code{guix.example.org} Substitute signiert."
+
+#. type: Plain text
+#: doc/guix.texi:3765
+msgid "Now you're all set! Substitutes will be preferably taken from @code{https://guix.example.org}, using @code{@value{SUBSTITUTE-SERVER}} as a fallback.  Of course you can list as many substitute servers as you like, with the caveat that substitute lookup can be slowed down if too many servers need to be contacted."
+msgstr "Und wir sind fertig! Substitute werden bevorzugt von @code{https://guix.example.org} bezogen und @code{@value{SUBSTITUTE-SERVER}} bleibt notfalls als Reserve. Natürlich können Sie so viele Substitutserver auflisten, wie Sie wollen, allerdings kann das Erfragen von Substituten etwas länger dauern, wenn zu viele Server kontaktiert werden müssen."
+
+#. type: Plain text
+#: doc/guix.texi:3769
+msgid "Note that there are also situations where one may want to add the URL of a substitute server @emph{without} authorizing its key.  @xref{Substitute Authentication}, to understand this fine point."
+msgstr "Aber bedenken Sie, es gibt auch Situationen, wo man nur die URL eines Substitutservers hinzufügen will, @emph{ohne} den Schlüssel zu autorisieren. Siehe @ref{Substitute Authentication}, um diese bestimmten Gründe zu verstehen."
 
 #. type: cindex
-#: doc/guix.texi:3332
+#: doc/guix.texi:3773
 #, no-wrap
 msgid "digital signatures"
 msgstr "digitale Signaturen"
 
 #. type: Plain text
-#: doc/guix.texi:3336
+#: doc/guix.texi:3777
 msgid "Guix detects and raises an error when attempting to use a substitute that has been tampered with.  Likewise, it ignores substitutes that are not signed, or that are not signed by one of the keys listed in the ACL."
 msgstr "Guix erkennt, wenn ein verfälschtes Substitut benutzt würde, und meldet einen Fehler. Ebenso werden Substitute ignoriert, die nich signiert sind, oder nicht mit einem in der ACL aufgelisteten Schlüssel signiert sind."
 
 #. type: Plain text
-#: doc/guix.texi:3342
+#: doc/guix.texi:3783
 msgid "There is one exception though: if an unauthorized server provides substitutes that are @emph{bit-for-bit identical} to those provided by an authorized server, then the unauthorized server becomes eligible for downloads.  For example, assume we have chosen two substitute servers with this option:"
 msgstr "Es gibt nur eine Ausnahme: Wenn ein unautorisierter Server Substitute anbietet, die @emph{Bit für Bit identisch} mit denen von einem autorisierten Server sind, können sie auch vom unautorisierten Server heruntergeladen werden. Zum Beispiel, angenommen wir haben zwei Substitutserver mit dieser Befehlszeilenoption ausgewählt:"
 
 #. type: example
-#: doc/guix.texi:3345
+#: doc/guix.texi:3786
 #, no-wrap
 msgid "--substitute-urls=\"https://a.example.org https://b.example.org\"\n"
 msgstr "--substitute-urls=\"https://a.example.org https://b.example.org\"\n"
 
 #. type: Plain text
-#: doc/guix.texi:3356
-msgid "If the ACL contains only the key for @code{b.example.org}, and if @code{a.example.org} happens to serve the @emph{exact same} substitutes, then Guix will download substitutes from @code{a.example.org} because it comes first in the list and can be considered a mirror of @code{b.example.org}.  In practice, independent build machines usually produce the same binaries, thanks to bit-reproducible builds (see below)."
-msgstr "Wenn in der ACL nur der Schlüssel für @code{b.example.org} aufgeführt wurde, aber @code{a.example.org} @emph{exakt dieselben} Substitute anbietet, wird Guix auch Substitute von @code{a.example.org} herunterladen, weil es in der Liste zuerst kommt und als Spiegelserver für @code{b.example.org} aufgefasst werden kann. In der Praxis haben unabhängige Maschinen bei der Erstellung normalerweise dieselben Binärdateien als Ergebnis, dank bit-reproduzierbarer Erstellungen (siehe unten)."
+#: doc/guix.texi:3797
+msgid "If the ACL contains only the key for @samp{b.example.org}, and if @samp{a.example.org} happens to serve the @emph{exact same} substitutes, then Guix will download substitutes from @samp{a.example.org} because it comes first in the list and can be considered a mirror of @samp{b.example.org}.  In practice, independent build machines usually produce the same binaries, thanks to bit-reproducible builds (see below)."
+msgstr "Wenn in der ACL nur der Schlüssel für @samp{b.example.org} aufgeführt wurde, aber @samp{a.example.org} @emph{exakt dieselben} Substitute anbietet, wird Guix auch Substitute von @samp{a.example.org} herunterladen, weil es in der Liste zuerst kommt und als Spiegelserver für @samp{b.example.org} aufgefasst werden kann. In der Praxis haben unabhängige Maschinen bei der Erstellung normalerweise dieselben Binärdateien als Ergebnis, dank bit-reproduzierbarer Erstellungen (siehe unten)."
 
 #. type: Plain text
-#: doc/guix.texi:3363
-msgid "When using HTTPS, the server's X.509 certificate is @emph{not} validated (in other words, the server is not authenticated), contrary to what HTTPS clients such as Web browsers usually do.  This is because Guix authenticates substitute information itself, as explained above, which is what we care about (whereas X.509 certificates are about authenticating bindings between domain names and public keys.)"
+#: doc/guix.texi:3804
+msgid "When using HTTPS, the server's X.509 certificate is @emph{not} validated (in other words, the server is not authenticated), contrary to what HTTPS clients such as Web browsers usually do.  This is because Guix authenticates substitute information itself, as explained above, which is what we care about (whereas X.509 certificates are about authenticating bindings between domain names and public keys)."
 msgstr "Wenn Sie HTTPS benutzen, wird das X.509-Zertifikat des Servers @emph{nicht} validiert (mit anderen Worten, die Identität des Servers wird nicht authentifiziert), entgegen dem, was HTTPS-Clients wie Web-Browser normalerweise tun. Da Guix Substitutinformationen selbst überprüft, wie oben erklärt, wäre es unnötig (wohingegen mit X.509-Zertifikaten geprüft wird, ob ein Domain-Name zu öffentlichen Schlüsseln passt)."
 
 #. type: Plain text
-#: doc/guix.texi:3375
-msgid "Substitutes are downloaded over HTTP or HTTPS.  The @code{http_proxy} environment variable can be set in the environment of @command{guix-daemon} and is honored for downloads of substitutes.  Note that the value of @code{http_proxy} in the environment where @command{guix build}, @command{guix package}, and other client commands are run has @emph{absolutely no effect}."
-msgstr "Substitute werden über HTTP oder HTTPS heruntergeladen. Die Umgebungsvariable @code{http_proxy} kann in der Umgebung von @command{guix-daemon} definiert werden und wirkt sich dann auf das Herunterladen von Substituten aus. Beachten Sie, dass der Wert von @code{http_proxy} in der Umgebung, in der @command{guix build}, @command{guix package} und andere Client-Befehle ausgeführt werden, @emph{keine Rolle spielt}."
+#: doc/guix.texi:3816
+msgid "Substitutes are downloaded over HTTP or HTTPS.  The @env{http_proxy} and @env{https_proxy} environment variables can be set in the environment of @command{guix-daemon} and are honored for downloads of substitutes.  Note that the value of those environment variables in the environment where @command{guix build}, @command{guix package}, and other client commands are run has @emph{absolutely no effect}."
+msgstr "Substitute werden über HTTP oder HTTPS heruntergeladen. Die Umgebungsvariablen @env{http_proxy} und @env{https_proxy} können in der Umgebung von @command{guix-daemon} definiert werden und wirken sich dann auf das Herunterladen von Substituten aus. Beachten Sie, dass der Wert dieser Variablen in der Umgebung, in der @command{guix build}, @command{guix package} und andere Client-Befehle ausgeführt werden, @emph{keine Rolle spielt}."
 
 #. type: Plain text
-#: doc/guix.texi:3384
+#: doc/guix.texi:3825
 msgid "Even when a substitute for a derivation is available, sometimes the substitution attempt will fail.  This can happen for a variety of reasons: the substitute server might be offline, the substitute may recently have been deleted, the connection might have been interrupted, etc."
 msgstr "Selbst wenn ein Substitut für eine Ableitung verfügbar ist, schlägt die versuchte Substitution manchmal fehl. Das kann aus vielen Gründen geschehen: die Substitutsserver könnten offline sein, das Substitut könnte kürzlich gelöscht worden sein, die Netzwerkverbindunge könnte unterbrochen worden sein, usw."
 
 #. type: Plain text
-#: doc/guix.texi:3398
-msgid "When substitutes are enabled and a substitute for a derivation is available, but the substitution attempt fails, Guix will attempt to build the derivation locally depending on whether or not @code{--fallback} was given (@pxref{fallback-option,, common build option @code{--fallback}}).  Specifically, if @code{--fallback} was omitted, then no local build will be performed, and the derivation is considered to have failed.  However, if @code{--fallback} was given, then Guix will attempt to build the derivation locally, and the success or failure of the derivation depends on the success or failure of the local build.  Note that when substitutes are disabled or no substitute is available for the derivation in question, a local build will @emph{always} be performed, regardless of whether or not @code{--fallback} was given."
-msgstr "Wenn Substitute aktiviert sind und ein Substitut für eine Ableitung zwar verfügbar ist, aber die versuchte Substitution fehlschlägt, kann Guix versuchen, die Ableitung lokal zu erstellen, je nachdem, ob @code{--fallback} übergeben wurde (siehe @ref{fallback-option,, common build option @code{--fallback}}). Genauer gesagt, wird keine lokale Erstellung durchgeführt, solange kein @code{--fallback} angegeben wurde, und die Ableitung wird als Fehlschlag angesehen. Wenn @code{--fallback} übergeben wurde, wird Guix versuchen, die Ableitung lokal zu erstellen, und ob die Ableitung erfolgreich ist oder nicht, hängt davon ab, ob die lokale Erstellung erfolgreich ist oder nicht. Beachten Sie, dass, falls Substitute ausgeschaltet oder erst gar kein Substitut verfügbar ist, @emph{immer} eine lokale Erstellung durchgeführt wird, egal ob @code{--fallback} übergeben wurde oder nicht."
+#: doc/guix.texi:3839
+msgid "When substitutes are enabled and a substitute for a derivation is available, but the substitution attempt fails, Guix will attempt to build the derivation locally depending on whether or not @option{--fallback} was given (@pxref{fallback-option,, common build option @option{--fallback}}).  Specifically, if @option{--fallback} was omitted, then no local build will be performed, and the derivation is considered to have failed.  However, if @option{--fallback} was given, then Guix will attempt to build the derivation locally, and the success or failure of the derivation depends on the success or failure of the local build.  Note that when substitutes are disabled or no substitute is available for the derivation in question, a local build will @emph{always} be performed, regardless of whether or not @option{--fallback} was given."
+msgstr "Wenn Substitute aktiviert sind und ein Substitut für eine Ableitung zwar verfügbar ist, aber die versuchte Substitution fehlschlägt, kann Guix versuchen, die Ableitung lokal zu erstellen, je nachdem, ob @option{--fallback} übergeben wurde (siehe @ref{fallback-option,, common build option @option{--fallback}}). Genauer gesagt, wird keine lokale Erstellung durchgeführt, solange kein @option{--fallback} angegeben wurde, und die Ableitung wird als Fehlschlag angesehen. Wenn @option{--fallback} übergeben wurde, wird Guix versuchen, die Ableitung lokal zu erstellen, und ob die Ableitung erfolgreich ist oder nicht, hängt davon ab, ob die lokale Erstellung erfolgreich ist oder nicht. Beachten Sie, dass, falls Substitute ausgeschaltet oder erst gar kein Substitut verfügbar ist, @emph{immer} eine lokale Erstellung durchgeführt wird, egal ob @option{--fallback} übergeben wurde oder nicht."
 
 #. type: Plain text
-#: doc/guix.texi:3403
+#: doc/guix.texi:3844
 msgid "To get an idea of how many substitutes are available right now, you can try running the @command{guix weather} command (@pxref{Invoking guix weather}).  This command provides statistics on the substitutes provided by a server."
-msgstr "Um eine Vorstellung zu bekommen, wieviele Substitute gerade verfügbar sind, können Sie den Befehl @command{guix weather} benutzen (siehe @ref{Invoking guix weather}). Dieser Befehl zeigt Statistiken darüber an, wie es um die von einem Server verfügbaren Substitute steht."
+msgstr "Um eine Vorstellung zu bekommen, wie viele Substitute gerade verfügbar sind, können Sie den Befehl @command{guix weather} benutzen (siehe @ref{Invoking guix weather}). Dieser Befehl zeigt Statistiken darüber an, wie es um die von einem Server verfügbaren Substitute steht."
 
 #. type: cindex
-#: doc/guix.texi:3407
+#: doc/guix.texi:3848
 #, no-wrap
 msgid "trust, of pre-built binaries"
 msgstr "Vertrauen, gegenüber vorerstellten Binärdateien"
 
 #. type: Plain text
-#: doc/guix.texi:3417
+#: doc/guix.texi:3858
 msgid "Today, each individual's control over their own computing is at the mercy of institutions, corporations, and groups with enough power and determination to subvert the computing infrastructure and exploit its weaknesses.  While using @code{@value{SUBSTITUTE-SERVER}} substitutes can be convenient, we encourage users to also build on their own, or even run their own build farm, such that @code{@value{SUBSTITUTE-SERVER}} is less of an interesting target.  One way to help is by publishing the software you build using @command{guix publish} so that others have one more choice of server to download substitutes from (@pxref{Invoking guix publish})."
 msgstr "Derzeit hängt die Kontrolle jedes Individuums über seine Rechner von Institutionen, Unternehmen und solchen Gruppierungen ab, die über genug Macht und Entschlusskraft verfügen, die Rechnerinfrastruktur zu sabotieren und ihre Schwachstellen auszunutzen. Auch wenn es bequem ist, Substitute von @code{@value{SUBSTITUTE-SERVER}} zu benutzen, ermuntern wir Nutzer, auch selbst Erstellungen durchzuführen oder gar ihre eigene Erstellungsfarm zu betreiben, damit @code{@value{SUBSTITUTE-SERVER}} ein weniger interessantes Ziel wird. Eine Art, uns zu helfen, ist, die von Ihnen erstellte Software mit dem Befehl @command{guix publish} zu veröffentlichen, damit andere eine größere Auswahl haben, von welchem Server sie Substitute beziehen möchten (siehe @ref{Invoking guix publish})."
 
 #. type: Plain text
-#: doc/guix.texi:3429
+#: doc/guix.texi:3870
 msgid "Guix has the foundations to maximize build reproducibility (@pxref{Features}).  In most cases, independent builds of a given package or derivation should yield bit-identical results.  Thus, through a diverse set of independent package builds, we can strengthen the integrity of our systems.  The @command{guix challenge} command aims to help users assess substitute servers, and to assist developers in finding out about non-deterministic package builds (@pxref{Invoking guix challenge}).  Similarly, the @option{--check} option of @command{guix build} allows users to check whether previously-installed substitutes are genuine by rebuilding them locally (@pxref{build-check, @command{guix build --check}})."
-msgstr "Guix hat die richtigen Grundlagen, um die Reproduzierbarkeit von Erstellungen zu maximieren (siehe @ref{Features}). In den meisten Fällen sollten unabhängige Erstellungen eines bestimmten Pakets zu bitweise identischen Ergebnissen führen. Wir können also mit Hilfe einer vielschichtigen Menge an unabhängigen Paketerstellungen die Integrität unseres Systems besser gewährleisten. Der Befehl @command{guix challenge} hat das Ziel, Nutzern zu ermöglichen, Substitutserver zu beurteilen, und Entwickler dabei zu unterstützen, nichtdeterministische Paketerstellungen zu finden (siehe @ref{Invoking guix challenge}). Ebenso ermöglicht es die Befehlszeilenoption @option{--check} von @command{guix build}, dass Nutzer bereits installierte Substitute auf Echtheit zu prüfen, indem sie lokal nachgebaut werden (siehe @ref{build-check, @command{guix build --check}})."
+msgstr "Guix hat die richtigen Grundlagen, um die Reproduzierbarkeit von Erstellungen zu maximieren (siehe @ref{Features}). In den meisten Fällen sollten unabhängige Erstellungen eines bestimmten Pakets zu bitweise identischen Ergebnissen führen. Wir können also mit Hilfe einer vielschichtigen Menge an unabhängigen Paketerstellungen die Integrität unseres Systems besser gewährleisten. Der Befehl @command{guix challenge} hat das Ziel, Nutzern zu ermöglichen, Substitutserver zu beurteilen, und Entwickler dabei zu unterstützen, nichtdeterministische Paketerstellungen zu finden (siehe @ref{Invoking guix challenge}). Ebenso ermöglicht es die Befehlszeilenoption @option{--check} von @command{guix build}, dass Nutzer bereits installierte Substitute auf Unverfälschtheit zu prüfen, indem sie durch lokales Erstellen nachgebildet werden (siehe @ref{build-check, @command{guix build --check}})."
 
 #. type: Plain text
-#: doc/guix.texi:3433
+#: doc/guix.texi:3874
 msgid "In the future, we want Guix to have support to publish and retrieve binaries to/from other users, in a peer-to-peer fashion.  If you would like to discuss this project, join us on @email{guix-devel@@gnu.org}."
 msgstr "In Zukunft wollen wir, dass Sie mit Guix Binärdateien von Netzwerkteilnehmer zu Netzwerkteilnehmer („peer-to-peer“) veröffentlichen und empfangen können. Wenn Sie mit uns dieses Projekt diskutieren möchten, kommen Sie auf unsere Mailing-Liste @email{guix-devel@@gnu.org}."
 
 #. type: cindex
-#: doc/guix.texi:3437
+#: doc/guix.texi:3878
 #, no-wrap
 msgid "multiple-output packages"
 msgstr "mehrere Ausgaben, bei Paketen"
 
 #. type: cindex
-#: doc/guix.texi:3438
+#: doc/guix.texi:3879
 #, no-wrap
 msgid "package outputs"
 msgstr "Paketausgaben"
 
 #. type: cindex
-#: doc/guix.texi:3439
+#: doc/guix.texi:3880
 #, no-wrap
 msgid "outputs"
 msgstr "Ausgaben"
 
 #. type: Plain text
-#: doc/guix.texi:3449
+#: doc/guix.texi:3890
 msgid "Often, packages defined in Guix have a single @dfn{output}---i.e., the source package leads to exactly one directory in the store.  When running @command{guix install glibc}, one installs the default output of the GNU libc package; the default output is called @code{out}, but its name can be omitted as shown in this command.  In this particular case, the default output of @code{glibc} contains all the C header files, shared libraries, static libraries, Info documentation, and other supporting files."
 msgstr "Oft haben in Guix definierte Pakete eine einzige @dfn{Ausgabe} — d.h.@: aus dem Quellpaket entsteht genau ein Verzeichnis im Store. Wenn Sie @command{guix install glibc} ausführen, wird die Standard-Paketausgabe des GNU-libc-Pakets installiert; die Standardausgabe wird @code{out} genannt, aber ihr Name kann weggelassen werden, wie Sie am obigen Befehl sehen. In diesem speziellen Fall enthält die Standard-Paketausgabe von @code{glibc} alle C-Headerdateien, gemeinsamen Bibliotheken („Shared Libraries“), statischen Bibliotheken („Static Libraries“), Dokumentation für Info sowie andere zusätzliche Dateien."
 
 #. type: Plain text
-#: doc/guix.texi:3457
+#: doc/guix.texi:3898
 msgid "Sometimes it is more appropriate to separate the various types of files produced from a single source package into separate outputs.  For instance, the GLib C library (used by GTK+ and related packages)  installs more than 20 MiB of reference documentation as HTML pages.  To save space for users who do not need it, the documentation goes to a separate output, called @code{doc}.  To install the main GLib output, which contains everything but the documentation, one would run:"
 msgstr "Manchmal ist es besser, die verschiedenen Arten von Dateien, die aus einem einzelnen Quellpaket hervorgehen, in getrennte Ausgaben zu unterteilen. Zum Beispiel installiert die GLib-C-Bibliothek (die von GTK und damit zusammenhängenden Paketen benutzt wird) mehr als 20 MiB an HTML-Seiten mit Referenzdokumentation. Um den Nutzern, die das nicht brauchen, Platz zu sparen, wird die Dokumentation in einer separaten Ausgabe abgelegt, genannt @code{doc}. Um also die Hauptausgabe von GLib zu installieren, zu der alles außer der Dokumentation gehört, ist der Befehl:"
 
 #. type: example
-#: doc/guix.texi:3460
+#: doc/guix.texi:3901
 #, no-wrap
 msgid "guix install glib\n"
 msgstr "guix install glib\n"
 
 #. type: item
-#: doc/guix.texi:3462 doc/guix.texi:27901 doc/guix.texi:27926
+#: doc/guix.texi:3903 doc/guix.texi:32085 doc/guix.texi:32110
 #, no-wrap
 msgid "documentation"
 msgstr "documentation"
 
 #. type: Plain text
-#: doc/guix.texi:3464
+#: doc/guix.texi:3905
 msgid "The command to install its documentation is:"
 msgstr "Der Befehl, um die Dokumentation zu installieren, ist:"
 
 #. type: example
-#: doc/guix.texi:3467
+#: doc/guix.texi:3908
 #, no-wrap
 msgid "guix install glib:doc\n"
 msgstr "guix install glib:doc\n"
 
 #. type: Plain text
-#: doc/guix.texi:3478
+#: doc/guix.texi:3919
 msgid "Some packages install programs with different ``dependency footprints''.  For instance, the WordNet package installs both command-line tools and graphical user interfaces (GUIs).  The former depend solely on the C library, whereas the latter depend on Tcl/Tk and the underlying X libraries.  In this case, we leave the command-line tools in the default output, whereas the GUIs are in a separate output.  This allows users who do not need the GUIs to save space.  The @command{guix size} command can help find out about such situations (@pxref{Invoking guix size}).  @command{guix graph} can also be helpful (@pxref{Invoking guix graph})."
 msgstr "Manche Pakete installieren Programme mit unterschiedlich großem „Abhängigkeiten-Fußabdruck“. Zum Beispiel installiert das Paket WordNet sowohl Befehlszeilenwerkzeuge als auch grafische Benutzerschnittstellen (GUIs). Erstere hängen nur von der C-Bibliothek ab, während Letztere auch von Tcl/Tk und den zu Grunde liegenden X-Bibliotheken abhängen. Jedenfalls belassen wir deshalb die Befehlszeilenwerkzeuge in der Standard-Paketausgabe, während sich die GUIs in einer separaten Ausgabe befinden. So können Benutzer, die die GUIs nicht brauchen, Platz sparen. Der Befehl @command{guix size} kann dabei helfen, solche Situationen zu erkennen (siehe @ref{Invoking guix size}). @command{guix graph} kann auch helfen (siehe @ref{Invoking guix graph})."
 
 #. type: Plain text
-#: doc/guix.texi:3486
+#: doc/guix.texi:3927
 msgid "There are several such multiple-output packages in the GNU distribution.  Other conventional output names include @code{lib} for libraries and possibly header files, @code{bin} for stand-alone programs, and @code{debug} for debugging information (@pxref{Installing Debugging Files}).  The outputs of a packages are listed in the third column of the output of @command{guix package --list-available} (@pxref{Invoking guix package})."
 msgstr "In der GNU-Distribution gibt es viele solche Pakete mit mehreren Ausgaben. Andere Konventionen für Ausgabenamen sind zum Beispiel @code{lib} für Bibliotheken und eventuell auch ihre Header-Dateien,, @code{bin} für eigenständige Programme und @code{debug} für Informationen zur Fehlerbehandlung (siehe @ref{Installing Debugging Files}). Die Ausgaben eines Pakets stehen in der dritten Spalte der Anzeige von @command{guix package --list-available} (siehe @ref{Invoking guix package})."
 
 #. type: section
-#: doc/guix.texi:3489
+#: doc/guix.texi:3930
 #, no-wrap
 msgid "Invoking @command{guix gc}"
 msgstr "@command{guix gc} aufrufen"
 
 #. type: cindex
-#: doc/guix.texi:3491
+#: doc/guix.texi:3932
 #, no-wrap
 msgid "garbage collector"
 msgstr "Müllsammler"
 
 #. type: cindex
-#: doc/guix.texi:3492
+#: doc/guix.texi:3933
 #, no-wrap
 msgid "disk space"
 msgstr "Plattenspeicher"
 
 #. type: Plain text
-#: doc/guix.texi:3498
+#: doc/guix.texi:3939
 msgid "Packages that are installed, but not used, may be @dfn{garbage-collected}.  The @command{guix gc} command allows users to explicitly run the garbage collector to reclaim space from the @file{/gnu/store} directory.  It is the @emph{only} way to remove files from @file{/gnu/store}---removing files or directories manually may break it beyond repair!"
 msgstr "Pakete, die zwar installiert sind, aber nicht benutzt werden, können vom @dfn{Müllsammler} entfernt werden. Mit dem Befehl @command{guix gc} können Benutzer den Müllsammler ausdrücklich aufrufen, um Speicher im Verzeichnis @file{/gnu/store} freizugeben. Dies ist der @emph{einzige} Weg, Dateien aus @file{/gnu/store} zu entfernen — das manuelle Entfernen von Dateien kann den Store irreparabel beschädigen!"
 
 #. type: Plain text
-#: doc/guix.texi:3509
+#: doc/guix.texi:3950
 msgid "The garbage collector has a set of known @dfn{roots}: any file under @file{/gnu/store} reachable from a root is considered @dfn{live} and cannot be deleted; any other file is considered @dfn{dead} and may be deleted.  The set of garbage collector roots (``GC roots'' for short)  includes default user profiles; by default, the symlinks under @file{/var/guix/gcroots} represent these GC roots.  New GC roots can be added with @command{guix build --root}, for example (@pxref{Invoking guix build}).  The @command{guix gc --list-roots} command lists them."
 msgstr "Der Müllsammler kennt eine Reihe von @dfn{Wurzeln}: Jede Datei in @file{/gnu/store}, die von einer Wurzel aus erreichbar ist, gilt als @dfn{lebendig} und kann nicht entfernt werden; jede andere Datei gilt als @dfn{tot} und ist ein Kandidat, gelöscht zu werden. Die Menge der Müllsammlerwurzeln (kurz auch „GC-Wurzeln“, von englisch „Garbage Collector“) umfasst Standard-Benutzerprofile; standardmäßig werden diese Müllsammlerwurzeln durch symbolische Verknüpfungen in @file{/var/guix/gcroots} dargestellt. Neue Müllsammlerwurzeln können zum Beispiel mit @command{guix build --root} festgelegt werden (siehe @ref{Invoking guix build}). Der Befehl @command{guix gc --list-roots} listet sie auf."
 
 #. type: Plain text
-#: doc/guix.texi:3515
+#: doc/guix.texi:3956
 msgid "Prior to running @code{guix gc --collect-garbage} to make space, it is often useful to remove old generations from user profiles; that way, old package builds referenced by those generations can be reclaimed.  This is achieved by running @code{guix package --delete-generations} (@pxref{Invoking guix package})."
 msgstr "Bevor Sie mit @code{guix gc --collect-garbage} Speicher freimachen, wollen Sie vielleicht alte Generationen von Benutzerprofilen löschen, damit alte Paketerstellungen von diesen Generationen entfernt werden können. Führen Sie dazu @code{guix package --delete-generations} aus (siehe @ref{Invoking guix package})."
 
 #. type: Plain text
-#: doc/guix.texi:3519
+#: doc/guix.texi:3960
 msgid "Our recommendation is to run a garbage collection periodically, or when you are short on disk space.  For instance, to guarantee that at least 5@tie{}GB are available on your disk, simply run:"
 msgstr "Unsere Empfehlung ist, dass Sie den Müllsammler regelmäßig laufen lassen und wenn Sie wenig freien Speicherplatz zur Verfügung haben. Um zum Beispiel sicherzustellen, dass Sie mindestens 5@tie{}GB auf Ihrer Platte zur Verfügung haben, benutzen Sie einfach:"
 
 #. type: example
-#: doc/guix.texi:3522
+#: doc/guix.texi:3963
 #, no-wrap
 msgid "guix gc -F 5G\n"
 msgstr "guix gc -F 5G\n"
 
 #. type: Plain text
-#: doc/guix.texi:3531
+#: doc/guix.texi:3972
 msgid "It is perfectly safe to run as a non-interactive periodic job (@pxref{Scheduled Job Execution}, for how to set up such a job).  Running @command{guix gc} with no arguments will collect as much garbage as it can, but that is often inconvenient: you may find yourself having to rebuild or re-download software that is ``dead'' from the GC viewpoint but that is necessary to build other pieces of software---e.g., the compiler tool chain."
 msgstr "Es ist völlig sicher, dafür eine nicht interaktive, regelmäßige Auftragsausführung vorzugeben (siehe @ref{Scheduled Job Execution} für eine Erklärung, wie man das tun kann). @command{guix gc} ohne Befehlszeilenargumente auszuführen, lässt so viel Müll wie möglich sammeln, aber das ist oft nicht, was man will, denn so muss man unter Umständen Software erneut erstellen oder erneut herunterladen, weil der Müllsammler sie als „tot“ ansieht, sie aber zur Erstellung anderer Software wieder gebraucht wird — das trifft zum Beispiel auf die Compiler-Toolchain zu."
 
 #. type: Plain text
-#: doc/guix.texi:3537
-msgid "The @command{guix gc} command has three modes of operation: it can be used to garbage-collect any dead files (the default), to delete specific files (the @code{--delete} option), to print garbage-collector information, or for more advanced queries.  The garbage collection options are as follows:"
-msgstr "Der Befehl @command{guix gc} hat drei Arbeitsmodi: Er kann benutzt werden, um als Müllsammler tote Dateien zu entfernen (das Standardverhalten), um ganz bestimmte, angegebene Datein zu löschen (mit der Befehlszeilenoption @code{--delete}), um Müllsammlerinformationen auszugeben oder fortgeschrittenere Anfragen zu verarbeiten. Die Müllsammler-Befehlszeilenoptionen sind wie folgt:"
+#: doc/guix.texi:3978
+msgid "The @command{guix gc} command has three modes of operation: it can be used to garbage-collect any dead files (the default), to delete specific files (the @option{--delete} option), to print garbage-collector information, or for more advanced queries.  The garbage collection options are as follows:"
+msgstr "Der Befehl @command{guix gc} hat drei Arbeitsmodi: Er kann benutzt werden, um als Müllsammler tote Dateien zu entfernen (das Standardverhalten), um ganz bestimmte, angegebene Datein zu löschen (mit der Befehlszeilenoption @option{--delete}), um Müllsammlerinformationen auszugeben oder fortgeschrittenere Anfragen zu verarbeiten. Die Müllsammler-Befehlszeilenoptionen sind wie folgt:"
 
 #. type: item
-#: doc/guix.texi:3539
+#: doc/guix.texi:3980
 #, no-wrap
 msgid "--collect-garbage[=@var{min}]"
 msgstr "--collect-garbage[=@var{Minimum}]"
 
 #. type: itemx
-#: doc/guix.texi:3540
+#: doc/guix.texi:3981
 #, no-wrap
 msgid "-C [@var{min}]"
 msgstr "-C [@var{Minimum}]"
 
 #. type: table
-#: doc/guix.texi:3544
+#: doc/guix.texi:3985
 msgid "Collect garbage---i.e., unreachable @file{/gnu/store} files and sub-directories.  This is the default operation when no option is specified."
 msgstr "Lässt Müll sammeln — z.B.@: nicht erreichbare Dateien in @file{/gnu/store} und seinen Unterverzeichnissen. Wird keine andere Befehlszeilenoption angegeben, wird standardmäßig diese durchgeführt."
 
 #. type: table
-#: doc/guix.texi:3549
+#: doc/guix.texi:3990
 msgid "When @var{min} is given, stop once @var{min} bytes have been collected.  @var{min} may be a number of bytes, or it may include a unit as a suffix, such as @code{MiB} for mebibytes and @code{GB} for gigabytes (@pxref{Block size, size specifications,, coreutils, GNU Coreutils})."
-msgstr "Wenn ein @var{Minimum} angegeben wurde, hört der Müllsammler auf, sobald @var{Minimum} Bytes gesammelt wurden. Das @var{Minimum} kann die Anzahl der Bytes bezeichnen oder mit einer Einheit als Suffix versehen sein, wie etwa @code{MiB} für Mebibytes und @code{GB} für Gigabytes (siehe @ref{Block size, size specifications,, coreutils, GNU Coreutils})."
+msgstr "Wenn ein @var{Minimum} angegeben wurde, hört der Müllsammler auf, sobald @var{Minimum} Bytes gesammelt wurden. Das @var{Minimum} kann die Anzahl der Bytes bezeichnen oder mit einer Einheit als Suffix versehen sein, wie etwa @code{MiB} für Mebibytes und @code{GB} für Gigabytes (siehe @ref{Block size, Größenangaben,, coreutils, GNU Coreutils})."
 
 #. type: table
-#: doc/guix.texi:3551
+#: doc/guix.texi:3992
 msgid "When @var{min} is omitted, collect all the garbage."
 msgstr "Wird kein @var{Minimum} angegeben, sammelt der Müllsammler allen Müll."
 
 #. type: item
-#: doc/guix.texi:3552
+#: doc/guix.texi:3993
 #, no-wrap
 msgid "--free-space=@var{free}"
 msgstr "--free-space=@var{Menge}"
 
 #. type: itemx
-#: doc/guix.texi:3553
+#: doc/guix.texi:3994
 #, no-wrap
 msgid "-F @var{free}"
 msgstr "-F @var{Menge}"
 
 #. type: table
-#: doc/guix.texi:3557
+#: doc/guix.texi:3998
 msgid "Collect garbage until @var{free} space is available under @file{/gnu/store}, if possible; @var{free} denotes storage space, such as @code{500MiB}, as described above."
 msgstr "Sammelt Müll, bis die angegebene @var{Menge} an freiem Speicher in @file{/gnu/store} zur Verfügung steht, falls möglich; die @var{Menge} ist eine Speichergröße wie @code{500MiB}, wie oben beschrieben."
 
 #. type: table
-#: doc/guix.texi:3560
+#: doc/guix.texi:4001
 msgid "When @var{free} or more is already available in @file{/gnu/store}, do nothing and exit immediately."
 msgstr "Wenn die angegebene  @var{Menge} oder mehr bereits in @file{/gnu/store} frei verfügbar ist, passiert nichts."
 
 #. type: item
-#: doc/guix.texi:3561
+#: doc/guix.texi:4002
 #, no-wrap
 msgid "--delete-generations[=@var{duration}]"
 msgstr "--delete-generations[=@var{Dauer}]"
 
 #. type: itemx
-#: doc/guix.texi:3562
+#: doc/guix.texi:4003
 #, no-wrap
 msgid "-d [@var{duration}]"
 msgstr "-d [@var{Dauer}]"
 
 #. type: table
-#: doc/guix.texi:3566
+#: doc/guix.texi:4007
 msgid "Before starting the garbage collection process, delete all the generations older than @var{duration}, for all the user profiles; when run as root, this applies to all the profiles @emph{of all the users}."
 msgstr "Bevor der Müllsammelvorgang beginnt, werden hiermit alle Generationen von allen Benutzerprofilen gelöscht, die älter sind als die angegebene @var{Dauer}; wird es als Administratornutzer „root“ ausgeführt, geschieht dies mit den Profilen @emph{von allen Benutzern}."
 
 #. type: table
-#: doc/guix.texi:3570
+#: doc/guix.texi:4011
 msgid "For example, this command deletes all the generations of all your profiles that are older than 2 months (except generations that are current), and then proceeds to free space until at least 10 GiB are available:"
 msgstr "Zum Beispiel löscht der folgende Befehl alle Generationen Ihrer Profile, die älter als zwei Monate sind (ausgenommen die momentanen Generationen), und schmeißt dann den Müllsammler an, um Platz freizuräumen, bis mindestens 10 GiB verfügbar sind:"
 
 #. type: example
-#: doc/guix.texi:3573
+#: doc/guix.texi:4014
 #, no-wrap
 msgid "guix gc -d 2m -F 10G\n"
 msgstr "guix gc -d 2m -F 10G\n"
 
 #. type: item
-#: doc/guix.texi:3575
+#: doc/guix.texi:4016
 #, no-wrap
 msgid "--delete"
 msgstr "--delete"
 
 #. type: itemx
-#: doc/guix.texi:3576
+#: doc/guix.texi:4017
 #, no-wrap
 msgid "-D"
 msgstr "-D"
 
 #. type: table
-#: doc/guix.texi:3580
+#: doc/guix.texi:4021
 msgid "Attempt to delete all the store files and directories specified as arguments.  This fails if some of the files are not in the store, or if they are still live."
 msgstr "Versucht, alle als Argumente angegebenen Dateien oder Verzeichnisse im Store zu löschen. Dies schlägt fehl, wenn manche der Dateien oder Verzeichnisse nicht im Store oder noch immer lebendig sind."
 
 #. type: item
-#: doc/guix.texi:3581
+#: doc/guix.texi:4022
 #, no-wrap
 msgid "--list-failures"
 msgstr "--list-failures"
 
 #. type: table
-#: doc/guix.texi:3583
+#: doc/guix.texi:4024
 msgid "List store items corresponding to cached build failures."
 msgstr "Store-Objekte auflisten, die zwischengespeicherten Erstellungsfehlern entsprechen."
 
 #. type: table
-#: doc/guix.texi:3587
+#: doc/guix.texi:4028
 msgid "This prints nothing unless the daemon was started with @option{--cache-failures} (@pxref{Invoking guix-daemon, @option{--cache-failures}})."
 msgstr "Hierbei wird nichts ausgegeben, sofern der Daemon nicht mit @option{--cache-failures} gestartet wurde (siehe @ref{Invoking guix-daemon, @option{--cache-failures}})."
 
 #. type: item
-#: doc/guix.texi:3588
+#: doc/guix.texi:4029
 #, no-wrap
 msgid "--list-roots"
 msgstr "--list-roots"
 
 #. type: table
-#: doc/guix.texi:3591
+#: doc/guix.texi:4032
 msgid "List the GC roots owned by the user; when run as root, list @emph{all} the GC roots."
 msgstr "Die Müllsammlerwurzeln auflisten, die dem Nutzer gehören. Wird der Befehl als Administratornutzer ausgeführt, werden @emph{alle} Müllsammlerwurzeln aufgelistet."
 
 #. type: item
-#: doc/guix.texi:3592
+#: doc/guix.texi:4033
 #, no-wrap
 msgid "--list-busy"
 msgstr "--list-busy"
 
 #. type: table
-#: doc/guix.texi:3595
+#: doc/guix.texi:4036
 msgid "List store items in use by currently running processes.  These store items are effectively considered GC roots: they cannot be deleted."
 msgstr "Solche Store-Objekte auflisten, die von aktuell laufenden Prozessen benutzt werden. Diese Store-Objekte werden praktisch wie Müllsammlerwurzeln behandelt; sie können nicht gelöscht werden."
 
 #. type: item
-#: doc/guix.texi:3596
+#: doc/guix.texi:4037
 #, no-wrap
 msgid "--clear-failures"
 msgstr "--clear-failures"
 
 #. type: table
-#: doc/guix.texi:3598
+#: doc/guix.texi:4039
 msgid "Remove the specified store items from the failed-build cache."
 msgstr "Die angegebenen Store-Objekte aus dem Zwischenspeicher für fehlgeschlagene Erstellungen entfernen."
 
 #. type: table
-#: doc/guix.texi:3601
+#: doc/guix.texi:4042
 msgid "Again, this option only makes sense when the daemon is started with @option{--cache-failures}.  Otherwise, it does nothing."
 msgstr "Auch diese Option macht nur Sinn, wenn der Daemon mit @option{--cache-failures} gestartet wurde. Andernfalls passiert nichts."
 
 #. type: item
-#: doc/guix.texi:3602
+#: doc/guix.texi:4043
 #, no-wrap
 msgid "--list-dead"
 msgstr "--list-dead"
 
 #. type: table
-#: doc/guix.texi:3605
+#: doc/guix.texi:4046
 msgid "Show the list of dead files and directories still present in the store---i.e., files and directories no longer reachable from any root."
 msgstr "Zeigt die Liste toter Dateien und Verzeichnisse an, die sich noch im Store befinden — das heißt, Dateien, die von keiner Wurzel mehr erreichbar sind."
 
 #. type: item
-#: doc/guix.texi:3606
+#: doc/guix.texi:4047
 #, no-wrap
 msgid "--list-live"
 msgstr "--list-live"
 
 #. type: table
-#: doc/guix.texi:3608
+#: doc/guix.texi:4049
 msgid "Show the list of live store files and directories."
 msgstr "Zeige die Liste lebendiger Store-Dateien und -Verzeichnisse."
 
 #. type: Plain text
-#: doc/guix.texi:3612
+#: doc/guix.texi:4053
 msgid "In addition, the references among existing store files can be queried:"
 msgstr "Außerdem können Referenzen unter bestehenden Store-Dateien gefunden werden:"
 
 #. type: item
-#: doc/guix.texi:3615
+#: doc/guix.texi:4056
 #, no-wrap
 msgid "--references"
 msgstr "--references"
 
 #. type: itemx
-#: doc/guix.texi:3616
+#: doc/guix.texi:4057
 #, no-wrap
 msgid "--referrers"
 msgstr "--referrers"
 
 #. type: cindex
-#: doc/guix.texi:3617 doc/guix.texi:10011
+#: doc/guix.texi:4058 doc/guix.texi:11867
 #, no-wrap
 msgid "package dependencies"
 msgstr "Paketabhängigkeiten"
 
 #. type: table
-#: doc/guix.texi:3620
+#: doc/guix.texi:4061
 msgid "List the references (respectively, the referrers) of store files given as arguments."
 msgstr "Listet die referenzierten bzw. sie referenzierenden Objekte der angegebenen Store-Dateien auf."
 
 #. type: item
-#: doc/guix.texi:3621
+#: doc/guix.texi:4062
 #, no-wrap
 msgid "--requisites"
 msgstr "--requisites"
 
 #. type: itemx
-#: doc/guix.texi:3622 doc/guix.texi:5151
+#: doc/guix.texi:4063 doc/guix.texi:5879
 #, no-wrap
 msgid "-R"
 msgstr "-R"
 
 #. type: item
-#: doc/guix.texi:3623 doc/guix.texi:9880 doc/guix.texi:9908 doc/guix.texi:9976
+#: doc/guix.texi:4064 doc/guix.texi:11723 doc/guix.texi:11751
+#: doc/guix.texi:11832
 #, no-wrap
 msgid "closure"
 msgstr "Abschluss"
 
 #. type: table
-#: doc/guix.texi:3628
+#: doc/guix.texi:4069
 msgid "List the requisites of the store files passed as arguments.  Requisites include the store files themselves, their references, and the references of these, recursively.  In other words, the returned list is the @dfn{transitive closure} of the store files."
 msgstr "Listet alle Voraussetzungen der als Argumente übergebenen Store-Dateien auf. Voraussetzungen sind die Store-Dateien selbst, ihre Referenzen sowie die Referenzen davon, rekursiv. Mit anderen Worten, die zurückgelieferte Liste ist der @dfn{transitive Abschluss} dieser Store-Dateien."
 
 #. type: table
-#: doc/guix.texi:3632
+#: doc/guix.texi:4073
 msgid "@xref{Invoking guix size}, for a tool to profile the size of the closure of an element.  @xref{Invoking guix graph}, for a tool to visualize the graph of references."
 msgstr "Der Abschnitt @ref{Invoking guix size} erklärt ein Werkzeug, um den Speicherbedarf des Abschlusses eines Elements zu ermitteln. Siehe @ref{Invoking guix graph} für ein Werkzeug, um den Referenzgraphen zu veranschaulichen."
 
 #. type: item
-#: doc/guix.texi:3633
+#: doc/guix.texi:4074
 #, no-wrap
 msgid "--derivers"
 msgstr "--derivers"
 
 #. type: item
-#: doc/guix.texi:3634 doc/guix.texi:5346 doc/guix.texi:10112
+#: doc/guix.texi:4075 doc/guix.texi:6193 doc/guix.texi:11586
+#: doc/guix.texi:11976
 #, no-wrap
 msgid "derivation"
 msgstr "Ableitung"
 
 #. type: table
-#: doc/guix.texi:3637
+#: doc/guix.texi:4078
 msgid "Return the derivation(s) leading to the given store items (@pxref{Derivations})."
 msgstr "Liefert die Ableitung(en), die zu den angegebenen Store-Objekten führen (siehe @ref{Derivations})."
 
 #. type: table
-#: doc/guix.texi:3639
+#: doc/guix.texi:4080
 msgid "For example, this command:"
 msgstr "Zum Beispiel liefert dieser Befehl:"
 
 #. type: example
-#: doc/guix.texi:3642
+#: doc/guix.texi:4083
 #, no-wrap
 msgid "guix gc --derivers `guix package -I ^emacs$ | cut -f4`\n"
 msgstr "guix gc --derivers `guix package -I ^emacs$ | cut -f4`\n"
 
 #. type: table
-#: doc/guix.texi:3647
+#: doc/guix.texi:4088
 msgid "returns the @file{.drv} file(s) leading to the @code{emacs} package installed in your profile."
 msgstr "die @file{.drv}-Datei(en), die zum in Ihrem Profil installierten @code{emacs}-Paket führen."
 
 #. type: table
-#: doc/guix.texi:3651
+#: doc/guix.texi:4092
 msgid "Note that there may be zero matching @file{.drv} files, for instance because these files have been garbage-collected.  There can also be more than one matching @file{.drv} due to fixed-output derivations."
 msgstr "Beachten Sie, dass es auch sein kann, dass keine passenden @file{.drv}-Dateien existieren, zum Beispiel wenn diese Dateien bereits dem Müllsammler zum Opfer gefallen sind. Es kann auch passieren, dass es mehr als eine passende @file{.drv} gibt, bei Ableitungen mit fester Ausgabe."
 
 #. type: Plain text
-#: doc/guix.texi:3655
+#: doc/guix.texi:4096
 msgid "Lastly, the following options allow you to check the integrity of the store and to control disk usage."
 msgstr "Zuletzt können Sie mit folgenden Befehlszeilenoptionen die Integrität des Stores prüfen und den Plattenspeicherverbrauch im Zaum halten."
 
 #. type: item
-#: doc/guix.texi:3658
+#: doc/guix.texi:4099
 #, no-wrap
 msgid "--verify[=@var{options}]"
 msgstr "--verify[=@var{Optionen}]"
 
 #. type: cindex
-#: doc/guix.texi:3659
+#: doc/guix.texi:4100
 #, no-wrap
 msgid "integrity, of the store"
 msgstr "Integrität, des Stores"
 
 #. type: cindex
-#: doc/guix.texi:3660
+#: doc/guix.texi:4101
 #, no-wrap
 msgid "integrity checking"
 msgstr "Integritätsprüfung"
 
 #. type: table
-#: doc/guix.texi:3662
+#: doc/guix.texi:4103
 msgid "Verify the integrity of the store."
 msgstr "Die Integrität des Stores verifizieren"
 
 #. type: table
-#: doc/guix.texi:3665
+#: doc/guix.texi:4106
 msgid "By default, make sure that all the store items marked as valid in the database of the daemon actually exist in @file{/gnu/store}."
 msgstr "Standardmäßig wird sichergestellt, dass alle Store-Objekte, die in der Datenbank des Daemons als gültig markiert wurden, auch tatsächlich in @file{/gnu/store} existieren."
 
 #. type: table
-#: doc/guix.texi:3668
+#: doc/guix.texi:4109
 msgid "When provided, @var{options} must be a comma-separated list containing one or more of @code{contents} and @code{repair}."
 msgstr "Wenn angegeben, müssen die @var{Optionen} eine kommagetrennte Liste aus mindestens einem der Worte @code{contents} und @code{repair} sein."
 
 #. type: table
-#: doc/guix.texi:3674
+#: doc/guix.texi:4115
 msgid "When passing @option{--verify=contents}, the daemon computes the content hash of each store item and compares it against its hash in the database.  Hash mismatches are reported as data corruptions.  Because it traverses @emph{all the files in the store}, this command can take a long time, especially on systems with a slow disk drive."
 msgstr "Wenn Sie @option{--verify=contents} übergeben, berechnet der Daemon den Hash des Inhalts jedes Store-Objekts und vergleicht ihn mit dem Hash in der Datenbank. Sind die Hashes ungleich, wird eine Datenbeschädigung gemeldet. Weil dabei @emph{alle Dateien im Store} durchlaufen werden, kann der Befehl viel Zeit brauchen, besonders auf Systemen mit langsamer Platte."
 
 #. type: cindex
-#: doc/guix.texi:3675
+#: doc/guix.texi:4116
 #, no-wrap
 msgid "repairing the store"
 msgstr "Store, reparieren"
 
 #. type: cindex
-#: doc/guix.texi:3676 doc/guix.texi:8694
+#: doc/guix.texi:4117 doc/guix.texi:10502
 #, no-wrap
 msgid "corruption, recovering from"
 msgstr "Datenbeschädigung, Behebung"
 
 #. type: table
-#: doc/guix.texi:3684
+#: doc/guix.texi:4125
 msgid "Using @option{--verify=repair} or @option{--verify=contents,repair} causes the daemon to try to repair corrupt store items by fetching substitutes for them (@pxref{Substitutes}).  Because repairing is not atomic, and thus potentially dangerous, it is available only to the system administrator.  A lightweight alternative, when you know exactly which items in the store are corrupt, is @command{guix build --repair} (@pxref{Invoking guix build})."
 msgstr "Mit @option{--verify=repair} oder @option{--verify=contents,repair} versucht der Daemon, beschädigte Store-Objekte zu reparieren, indem er Substitute für selbige herunterlädt (siehe @ref{Substitutes}). Weil die Reparatur nicht atomar und daher womöglich riskant ist, kann nur der Systemadministrator den Befehl benutzen. Eine weniger aufwendige Alternative, wenn Sie wissen, welches Objekt beschädigt ist, ist, @command{guix build --repair} zu benutzen (siehe @ref{Invoking guix build})."
 
 #. type: item
-#: doc/guix.texi:3685
+#: doc/guix.texi:4126
 #, no-wrap
 msgid "--optimize"
 msgstr "--optimize"
 
 #. type: table
-#: doc/guix.texi:3689
+#: doc/guix.texi:4130
 msgid "Optimize the store by hard-linking identical files---this is @dfn{deduplication}."
 msgstr "Den Store durch Nutzung harter Verknüpfungen für identische Dateien optimieren — mit anderen Worten wird der Store @dfn{dedupliziert}."
 
 #. type: table
-#: doc/guix.texi:3695
-msgid "The daemon performs deduplication after each successful build or archive import, unless it was started with @code{--disable-deduplication} (@pxref{Invoking guix-daemon, @code{--disable-deduplication}}).  Thus, this option is primarily useful when the daemon was running with @code{--disable-deduplication}."
-msgstr "Der Daemon führt Deduplizierung automatisch nach jeder erfolgreichen Erstellung und jedem Importieren eines Archivs durch, sofern er nicht mit @code{--disable-deduplication} (siehe @ref{Invoking guix-daemon, @code{--disable-deduplication}}) gestartet wurde. Diese Befehlszeilenoption brauchen Sie also in erster Linie dann, wenn der Daemon zuvor mit @code{--disable-deduplication} gestartet worden ist."
+#: doc/guix.texi:4136
+msgid "The daemon performs deduplication after each successful build or archive import, unless it was started with @option{--disable-deduplication} (@pxref{Invoking guix-daemon, @option{--disable-deduplication}}).  Thus, this option is primarily useful when the daemon was running with @option{--disable-deduplication}."
+msgstr "Der Daemon führt Deduplizierung automatisch nach jeder erfolgreichen Erstellung und jedem Importieren eines Archivs durch, sofern er nicht mit @option{--disable-deduplication} (siehe @ref{Invoking guix-daemon, @option{--disable-deduplication}}) gestartet wurde. Diese Befehlszeilenoption brauchen Sie also in erster Linie dann, wenn der Daemon zuvor mit @option{--disable-deduplication} gestartet worden ist."
 
 #. type: section
-#: doc/guix.texi:3699
+#: doc/guix.texi:4140
 #, no-wrap
 msgid "Invoking @command{guix pull}"
 msgstr "@command{guix pull} aufrufen"
 
 #. type: cindex
-#: doc/guix.texi:3701
+#: doc/guix.texi:4142
 #, no-wrap
 msgid "upgrading Guix"
 msgstr "Aktualisieren von Guix"
 
 #. type: cindex
-#: doc/guix.texi:3702
+#: doc/guix.texi:4143
 #, no-wrap
 msgid "updating Guix"
 msgstr "Updaten von Guix"
 
 #. type: command{#1}
-#: doc/guix.texi:3703
+#: doc/guix.texi:4144
 #, no-wrap
 msgid "guix pull"
 msgstr "guix pull"
 
 #. type: cindex
-#: doc/guix.texi:3704
+#: doc/guix.texi:4145
 #, no-wrap
 msgid "pull"
 msgstr "pull"
 
+#. type: cindex
+#: doc/guix.texi:4146
+#, no-wrap
+msgid "security, @command{guix pull}"
+msgstr "Sicherheit, bei @command{guix pull}"
+
+#. type: cindex
+#: doc/guix.texi:4147
+#, no-wrap
+msgid "authenticity, of code obtained with @command{guix pull}"
+msgstr "Authentizität, bei mit @command{guix pull} bezogenem Code"
+
 #. type: Plain text
-#: doc/guix.texi:3712
-msgid "Packages are installed or upgraded to the latest version available in the distribution currently available on your local machine.  To update that distribution, along with the Guix tools, you must run @command{guix pull}: the command downloads the latest Guix source code and package descriptions, and deploys it.  Source code is downloaded from a @uref{https://git-scm.com, Git} repository, by default the official GNU@tie{}Guix repository, though this can be customized."
-msgstr "Nach der Installation oder Aktualisierung wird stets die neueste Version von Paketen verwendet, die in der aktuell installierten Distribution verfügbar ist. Um die Distribution und die Guix-Werkzeuge zu aktualisieren, führen Sie @command{guix pull} aus. Der Befehl lädt den neuesten Guix-Quellcode einschließlich Paketbeschreibungen herunter und installiert ihn. Quellcode wird aus einem @uref{https://git-scm.com, Git-Repository} geladen, standardmäßig dem offiziellen Repository von GNU@tie{}Guix, was Sie aber auch ändern können."
+#: doc/guix.texi:4157
+msgid "Packages are installed or upgraded to the latest version available in the distribution currently available on your local machine.  To update that distribution, along with the Guix tools, you must run @command{guix pull}: the command downloads the latest Guix source code and package descriptions, and deploys it.  Source code is downloaded from a @uref{https://git-scm.com, Git} repository, by default the official GNU@tie{}Guix repository, though this can be customized.  @command{guix pull} ensures that the code it downloads is @emph{authentic} by verifying that commits are signed by Guix developers."
+msgstr "Nach der Installation oder Aktualisierung wird stets die neueste Version von Paketen verwendet, die in der aktuell installierten Distribution verfügbar ist. Um die Distribution und die Guix-Werkzeuge zu aktualisieren, führen Sie @command{guix pull} aus. Der Befehl lädt den neuesten Guix-Quellcode einschließlich Paketbeschreibungen herunter und installiert ihn. Quellcode wird aus einem @uref{https://git-scm.com, Git-Repository} geladen, standardmäßig dem offiziellen Repository von GNU@tie{}Guix, was Sie aber auch ändern können. @command{guix pull} stellt sicher, dass der heruntergeladene Code @emph{authentisch} ist, indem es überprüft, dass die Commits durch Guix-Entwickler signiert worden sind."
 
 #. type: Plain text
-#: doc/guix.texi:3715
+#: doc/guix.texi:4160
 msgid "Specifically, @command{guix pull} downloads code from the @dfn{channels} (@pxref{Channels}) specified by one of the followings, in this order:"
 msgstr "Genauer gesagt lädt @command{guix pull} Code von den @dfn{Kanälen} herunter (siehe @ref{Channels}), die an einer der folgenden Stellen, in dieser Reihenfolge, angegeben wurden:"
 
 #. type: enumerate
-#: doc/guix.texi:3719
+#: doc/guix.texi:4164
 msgid "the @option{--channels} option;"
 msgstr "die Befehlszeilenoption @option{--channels},"
 
 #. type: enumerate
-#: doc/guix.texi:3721
+#: doc/guix.texi:4166
 msgid "the user's @file{~/.config/guix/channels.scm} file;"
 msgstr "die Datei @file{~/.config/guix/channels.scm} des Benutzers,"
 
 #. type: enumerate
-#: doc/guix.texi:3723
+#: doc/guix.texi:4168
 msgid "the system-wide @file{/etc/guix/channels.scm} file;"
 msgstr "die systemweite @file{/etc/guix/channels.scm}-Datei,"
 
 #. type: enumerate
-#: doc/guix.texi:3726
+#: doc/guix.texi:4171
 msgid "the built-in default channels specified in the @code{%default-channels} variable."
 msgstr "die eingebauten vorgegebenen Kanäle, wie sie in der Variablen @code{%default-channels} festgelegt sind."
 
 #. type: Plain text
-#: doc/guix.texi:3733
+#: doc/guix.texi:4178
 msgid "On completion, @command{guix package} will use packages and package versions from this just-retrieved copy of Guix.  Not only that, but all the Guix commands and Scheme modules will also be taken from that latest version.  New @command{guix} sub-commands added by the update also become available."
 msgstr "Danach wird @command{guix package} Pakete und ihre Versionen entsprechend der gerade heruntergeladenen Kopie von Guix benutzen. Nicht nur das, auch alle Guix-Befehle und Scheme-Module werden aus der neuesten Version von Guix kommen. Neue @command{guix}-Unterbefehle, die durch die Aktualisierung hinzugekommen sind, werden also auch verfügbar."
 
 #. type: Plain text
-#: doc/guix.texi:3739
+#: doc/guix.texi:4184
 msgid "Any user can update their Guix copy using @command{guix pull}, and the effect is limited to the user who ran @command{guix pull}.  For instance, when user @code{root} runs @command{guix pull}, this has no effect on the version of Guix that user @code{alice} sees, and vice versa."
 msgstr "Jeder Nutzer kann seine Kopie von Guix mittels @command{guix pull} aktualisieren, wodurch sich nur für den Nutzer etwas verändert, der @command{guix pull} ausgeführt hat. Wenn also zum Beispiel der Administratornutzer @code{root} den Befehl @command{guix pull} ausführt, hat das keine Auswirkungen auf die für den Benutzer @code{alice} sichtbare Guix-Version, und umgekehrt."
 
 #. type: Plain text
-#: doc/guix.texi:3745
+#: doc/guix.texi:4190
 msgid "The result of running @command{guix pull} is a @dfn{profile} available under @file{~/.config/guix/current} containing the latest Guix.  Thus, make sure to add it to the beginning of your search path so that you use the latest version, and similarly for the Info manual (@pxref{Documentation}):"
 msgstr "Das Ergebnis von @command{guix pull} ist ein als @file{~/.config/guix/current} verfügbares @dfn{Profil} mit dem neuesten Guix. Stellen Sie sicher, dass es am Anfang Ihres Suchpfades steht, damit Sie auch wirklich das neueste Guix und sein Info-Handbuch sehen (siehe @ref{Documentation}):"
 
 #. type: example
-#: doc/guix.texi:3749
+#: doc/guix.texi:4194
 #, no-wrap
 msgid ""
 "export PATH=\"$HOME/.config/guix/current/bin:$PATH\"\n"
@@ -8648,12 +9613,12 @@ msgstr ""
 "export INFOPATH=\"$HOME/.config/guix/current/share/info:$INFOPATH\"\n"
 
 #. type: Plain text
-#: doc/guix.texi:3753
-msgid "The @code{--list-generations} or @code{-l} option lists past generations produced by @command{guix pull}, along with details about their provenance:"
-msgstr "Die Befehlszeilenoption @code{--list-generations} oder kurz @code{-l} listet ältere von @command{guix pull} erzeugte Generationen auf, zusammen mit Informationen zu deren Provenienz."
+#: doc/guix.texi:4198
+msgid "The @option{--list-generations} or @option{-l} option lists past generations produced by @command{guix pull}, along with details about their provenance:"
+msgstr "Die Befehlszeilenoption @option{--list-generations} oder kurz @option{-l} listet ältere von @command{guix pull} erzeugte Generationen auf, zusammen mit Informationen zu deren Provenienz."
 
 #. type: example
-#: doc/guix.texi:3761
+#: doc/guix.texi:4206
 #, no-wrap
 msgid ""
 "$ guix pull -l\n"
@@ -8673,7 +9638,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:3771
+#: doc/guix.texi:4216
 #, no-wrap
 msgid ""
 "Generation 2\tJun 11 2018 11:02:49\n"
@@ -8699,7 +9664,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:3779
+#: doc/guix.texi:4224
 #, no-wrap
 msgid ""
 "Generation 3\tJun 13 2018 23:31:07\t(current)\n"
@@ -8719,17 +9684,17 @@ msgstr ""
 "  69 packages upgraded: borg@@1.1.6, cheese@@3.28.0, …\n"
 
 #. type: Plain text
-#: doc/guix.texi:3783
+#: doc/guix.texi:4228
 msgid "@xref{Invoking guix describe, @command{guix describe}}, for other ways to describe the current status of Guix."
 msgstr "Im Abschnitt @ref{Invoking guix describe, @command{guix describe}} werden andere Möglichkeiten erklärt, sich den momentanen Zustand von Guix beschreiben zu lassen."
 
 #. type: Plain text
-#: doc/guix.texi:3788
+#: doc/guix.texi:4233
 msgid "This @code{~/.config/guix/current} profile works exactly like the profiles created by @command{guix package} (@pxref{Invoking guix package}). That is, you can list generations, roll back to the previous generation---i.e., the previous Guix---and so on:"
 msgstr "Das Profil @code{~/.config/guix/current} verhält sich genau wie die durch @command{guix package} erzeugten Profile (siehe @ref{Invoking guix package}). Das bedeutet, Sie können seine Generationen auflisten und es auf die vorherige Generation — also das vorherige Guix — zurücksetzen und so weiter:"
 
 #. type: example
-#: doc/guix.texi:3794
+#: doc/guix.texi:4239
 #, no-wrap
 msgid ""
 "$ guix pull --roll-back\n"
@@ -8743,12 +9708,12 @@ msgstr ""
 "/var/guix/profiles/per-user/charlie/current-guix-1-link wird gelöscht\n"
 
 #. type: Plain text
-#: doc/guix.texi:3798
+#: doc/guix.texi:4243
 msgid "You can also use @command{guix package} (@pxref{Invoking guix package})  to manage the profile by naming it explicitly:"
 msgstr "Sie können auch @command{guix package} benutzen (siehe @ref{Invoking guix package}), um das Profil zu verwalten, indem Sie es explizit angeben.:"
 
 #. type: example
-#: doc/guix.texi:3803
+#: doc/guix.texi:4248
 #, no-wrap
 msgid ""
 "$ guix package -p ~/.config/guix/current --roll-back\n"
@@ -8762,731 +9727,344 @@ msgstr ""
 "deleting /var/guix/profiles/per-user/charlie/current-guix-1-link\n"
 
 #. type: Plain text
-#: doc/guix.texi:3807
+#: doc/guix.texi:4252
 msgid "The @command{guix pull} command is usually invoked with no arguments, but it supports the following options:"
 msgstr "Der Befehl @command{guix pull} wird in der Regel ohne Befehlszeilenargumente aufgerufen, aber er versteht auch folgende Befehlszeilenoptionen:"
 
 #. type: item
-#: doc/guix.texi:3809 doc/guix.texi:4232
+#: doc/guix.texi:4254 doc/guix.texi:4412
 #, no-wrap
 msgid "--url=@var{url}"
 msgstr "--url=@var{URL}"
 
 #. type: itemx
-#: doc/guix.texi:3810 doc/guix.texi:4233
+#: doc/guix.texi:4255 doc/guix.texi:4413
 #, no-wrap
 msgid "--commit=@var{commit}"
 msgstr "--commit=@var{Commit}"
 
 #. type: itemx
-#: doc/guix.texi:3811 doc/guix.texi:4234
+#: doc/guix.texi:4256 doc/guix.texi:4414
 #, no-wrap
 msgid "--branch=@var{branch}"
 msgstr "--branch=@var{Branch}"
 
 #. type: table
-#: doc/guix.texi:3815
+#: doc/guix.texi:4260
 msgid "Download code for the @code{guix} channel from the specified @var{url}, at the given @var{commit} (a valid Git commit ID represented as a hexadecimal string), or @var{branch}."
 msgstr "Code wird für den @code{guix}-Kanal von der angegebenen @var{URL} für den angegebenen @var{Commit} (eine gültige Commit-ID, dargestellt als hexadezimale Zeichenkette) oder @var{Branch} heruntergeladen."
 
 #. type: cindex
-#: doc/guix.texi:3816 doc/guix.texi:3919
+#: doc/guix.texi:4261 doc/guix.texi:4858
 #, no-wrap
 msgid "@file{channels.scm}, configuration file"
 msgstr "@file{channels.scm}, Konfigurationsdatei"
 
 #. type: cindex
-#: doc/guix.texi:3817 doc/guix.texi:3920
+#: doc/guix.texi:4262 doc/guix.texi:4859
 #, no-wrap
 msgid "configuration file for channels"
 msgstr "Konfigurationsdatei für Kanäle"
 
 #. type: table
-#: doc/guix.texi:3821
+#: doc/guix.texi:4266
 msgid "These options are provided for convenience, but you can also specify your configuration in the @file{~/.config/guix/channels.scm} file or using the @option{--channels} option (see below)."
 msgstr "Diese Befehlszeilenoptionen sind manchmal bequemer, aber Sie können Ihre Konfiguration auch in der Datei @file{~/.config/guix/channels.scm} oder über die Option @option{--channels} angeben (siehe unten)."
 
 #. type: item
-#: doc/guix.texi:3822 doc/guix.texi:4239
+#: doc/guix.texi:4267 doc/guix.texi:4419
 #, no-wrap
 msgid "--channels=@var{file}"
 msgstr "--channels=@var{Datei}"
 
 #. type: itemx
-#: doc/guix.texi:3823 doc/guix.texi:4240
+#: doc/guix.texi:4268 doc/guix.texi:4420
 #, no-wrap
 msgid "-C @var{file}"
 msgstr "-C @var{Datei}"
 
 #. type: table
-#: doc/guix.texi:3829
+#: doc/guix.texi:4274
 msgid "Read the list of channels from @var{file} instead of @file{~/.config/guix/channels.scm} or @file{/etc/guix/channels.scm}.  @var{file} must contain Scheme code that evaluates to a list of channel objects.  @xref{Channels}, for more information."
 msgstr "Die Liste der Kanäle aus der angegebenen @var{Datei} statt aus @file{~/.config/guix/channels.scm} oder aus @file{/etc/guix/channels.scm} auslesen. Die @var{Datei} muss Scheme-Code enthalten, der zu einer Liste von Kanalobjekten ausgewertet wird. Siehe @ref{Channels} für nähere Informationen."
 
 #. type: cindex
-#: doc/guix.texi:3830
+#: doc/guix.texi:4275
 #, no-wrap
 msgid "channel news"
 msgstr "Neuigkeiten über Kanäle"
 
 #. type: item
-#: doc/guix.texi:3831
+#: doc/guix.texi:4276
 #, no-wrap
 msgid "--news"
 msgstr "--news"
 
 #. type: itemx
-#: doc/guix.texi:3832 doc/guix.texi:4926 doc/guix.texi:26922
+#: doc/guix.texi:4277 doc/guix.texi:5654 doc/guix.texi:31059
 #, no-wrap
 msgid "-N"
 msgstr "-N"
 
 #. type: table
-#: doc/guix.texi:3836
+#: doc/guix.texi:4281
 msgid "Display the list of packages added or upgraded since the previous generation, as well as, occasionally, news written by channel authors for their users (@pxref{Channels, Writing Channel News})."
-msgstr "Die Liste anzeigen, welche Pakete seit der vorherigen Generation hinzugefügt oder aktualisiert wurden, und gelegentlich auch, welche Neuigkeiten die Kanalautoren für ihre Nutzer geschrieben haben (siehe @ref{Channels, Writing Channel News})."
+msgstr "Die Liste anzeigen, welche Pakete seit der vorherigen Generation hinzugefügt oder aktualisiert wurden, und gelegentlich auch, welche Neuigkeiten die Kanalautoren für ihre Nutzer geschrieben haben (siehe @ref{Channels, Kanalneuigkeiten verfassen})."
 
 #. type: table
-#: doc/guix.texi:3840
+#: doc/guix.texi:4285
 msgid "The package information is the same as displayed upon @command{guix pull} completion, but without ellipses; it is also similar to the output of @command{guix pull -l} for the last generation (see below)."
 msgstr "Die Paketinformationen sind dieselben, die auch nach Abschluss von @command{guix pull} angezeigt werden, aber ohne Auslassungen; sie ähnelt auch der Ausgabe von @command{guix pull -l} für die neueste Generation (siehe unten)."
 
 #. type: table
-#: doc/guix.texi:3847
+#: doc/guix.texi:4292
 msgid "List all the generations of @file{~/.config/guix/current} or, if @var{pattern} is provided, the subset of generations that match @var{pattern}.  The syntax of @var{pattern} is the same as with @code{guix package --list-generations} (@pxref{Invoking guix package})."
 msgstr "Alle Generationen von @file{~/.config/guix/current} bzw., wenn ein @var{Muster} angegeben wird, die dazu passenden Generationen auflisten. Die Syntax für das @var{Muster} ist dieselbe wie bei @code{guix package --list-generations} (siehe @ref{Invoking guix package})."
 
 #. type: table
-#: doc/guix.texi:3854
+#: doc/guix.texi:4299
 msgid "Roll back to the previous @dfn{generation} of @file{~/.config/guix/current}---i.e., undo the last transaction."
 msgstr "Zur vorherigen @dfn{Generation} von @file{~/.config/guix/current} zurückwechseln — d.h.@: die letzte Transaktion rückgängig machen."
 
 #. type: table
-#: doc/guix.texi:3878
+#: doc/guix.texi:4323
 msgid "If the current generation matches, it is @emph{not} deleted."
 msgstr "Falls die aktuelle Generation zum Muster passt, wird sie @emph{nicht} gelöscht."
 
 #. type: table
-#: doc/guix.texi:3884
+#: doc/guix.texi:4329
 msgid "@xref{Invoking guix describe}, for a way to display information about the current generation only."
 msgstr "Im Abschnitt @ref{Invoking guix describe, @command{guix describe}} wird eine Möglichkeit erklärt, sich Informationen nur über die aktuelle Generation anzeigen zu lassen."
 
 #. type: table
-#: doc/guix.texi:3888
+#: doc/guix.texi:4333
 msgid "Use @var{profile} instead of @file{~/.config/guix/current}."
 msgstr "Auf @var{Profil} anstelle von @file{~/.config/guix/current} arbeiten."
 
 #. type: item
-#: doc/guix.texi:3889 doc/guix.texi:8260
+#: doc/guix.texi:4334 doc/guix.texi:9950
 #, no-wrap
 msgid "--dry-run"
 msgstr "--dry-run"
 
 #. type: itemx
-#: doc/guix.texi:3890 doc/guix.texi:8261
+#: doc/guix.texi:4335 doc/guix.texi:9951 doc/guix.texi:11705
 #, no-wrap
 msgid "-n"
 msgstr "-n"
 
 #. type: table
-#: doc/guix.texi:3893
+#: doc/guix.texi:4338
 msgid "Show which channel commit(s) would be used and what would be built or substituted but do not actually do it."
 msgstr "Anzeigen, welche(r) Commit(s) für die Kanäle benutzt würde(n) und was jeweils erstellt oder substituiert würde, ohne es tatsächlich durchzuführen."
 
-#. type: itemx
-#: doc/guix.texi:3895 doc/guix.texi:4909 doc/guix.texi:5249 doc/guix.texi:8636
-#: doc/guix.texi:9994 doc/guix.texi:10200 doc/guix.texi:10838
-#: doc/guix.texi:26870
-#, no-wrap
-msgid "-s @var{system}"
-msgstr "-s @var{System}"
-
-#. type: table
-#: doc/guix.texi:3898 doc/guix.texi:5252
-msgid "Attempt to build for @var{system}---e.g., @code{i686-linux}---instead of the system type of the build host."
-msgstr "Versuchen, für die angegebene Art von @var{System} geeignete Binärdateien zu erstellen — z.B.@: @code{i686-linux} — statt für die Art von System, das die Erstellung durchführt."
-
 #. type: item
-#: doc/guix.texi:3899 doc/guix.texi:10634
+#: doc/guix.texi:4339 doc/guix.texi:31078
 #, no-wrap
-msgid "--verbose"
-msgstr "--verbose"
-
-#. type: table
-#: doc/guix.texi:3901
-msgid "Produce verbose output, writing build logs to the standard error output."
-msgstr "Ausführliche Informationen ausgeben und Erstellungsprotokolle auf der Standardfehlerausgabe ausgeben."
+msgid "--allow-downgrades"
+msgstr "--allow-downgrades"
 
 #. type: table
-#: doc/guix.texi:3905
-msgid "Use the bootstrap Guile to build the latest Guix.  This option is only useful to Guix developers."
-msgstr "Das neueste Guix mit dem Bootstrap-Guile erstellen. Diese Befehlszeilenoption ist nur für Guix-Entwickler von Nutzen."
-
-#. type: Plain text
-#: doc/guix.texi:3911
-msgid "The @dfn{channel} mechanism allows you to instruct @command{guix pull} which repository and branch to pull from, as well as @emph{additional} repositories containing package modules that should be deployed.  @xref{Channels}, for more information."
-msgstr "Mit Hilfe von @dfn{Kanälen} können Sie @command{guix pull} anweisen, von welchem Repository und welchem Branch Guix aktualisiert werden soll, sowie von welchen @emph{weiteren} Repositorys Paketmodule bezogen werden sollen. Im Abschnitt @ref{Channels} finden Sie nähere Informationen."
-
-#. type: Plain text
-#: doc/guix.texi:3914
-msgid "In addition, @command{guix pull} supports all the common build options (@pxref{Common Build Options})."
-msgstr "Außerdem unterstützt @command{guix pull} alle gemeinsamen Erstellungsoptionen (siehe @ref{Common Build Options})."
-
-#. type: item
-#: doc/guix.texi:3918 doc/guix.texi:4454
-#, no-wrap
-msgid "channels"
-msgstr "Kanäle"
+#: doc/guix.texi:4342
+msgid "Allow pulling older or unrelated revisions of channels than those currently in use."
+msgstr "Beziehen einer älteren oder mit der bisheriger Version eines Kanals @emph{nicht} zusammenhängenden Version zulassen."
 
 #. type: cindex
-#: doc/guix.texi:3921
+#: doc/guix.texi:4343
 #, no-wrap
-msgid "@command{guix pull}, configuration file"
-msgstr "@command{guix pull}, Konfigurationsdatei"
-
-#. type: cindex
-#: doc/guix.texi:3922
-#, no-wrap
-msgid "configuration of @command{guix pull}"
-msgstr "Konfiguration von @command{guix pull}"
-
-#. type: Plain text
-#: doc/guix.texi:3931
-msgid "Guix and its package collection are updated by running @command{guix pull} (@pxref{Invoking guix pull}).  By default @command{guix pull} downloads and deploys Guix itself from the official GNU@tie{}Guix repository.  This can be customized by defining @dfn{channels} in the @file{~/.config/guix/channels.scm} file.  A channel specifies a URL and branch of a Git repository to be deployed, and @command{guix pull} can be instructed to pull from one or more channels.  In other words, channels can be used to @emph{customize} and to @emph{extend} Guix, as we will see below."
-msgstr "Guix und die Sammlung darin verfügbarer Pakete können Sie durch Ausführen von @command{guix pull} aktualisieren (siehe @ref{Invoking guix pull}). Standardmäßig lädt @command{guix pull} Guix selbst vom offiziellen Repository von GNU@tie{}Guix herunter und installiert es. Diesen Vorgang können Sie anpassen, indem Sie @dfn{Kanäle} in der Datei @file{~/.config/guix/channels.scm} angeben. Ein Kanal enthält eine Angabe einer URL und eines Branches eines zu installierenden Git-Repositorys und Sie können @command{guix pull} veranlassen, die Aktualisierungen von einem oder mehreren Kanälen zu beziehen. Mit anderen Worten können Kanäle benutzt werden, um Guix @emph{anzupassen} und zu @emph{erweitern}, wie wir im Folgenden sehen werden."
-
-#. type: subsection
-#: doc/guix.texi:3932
-#, no-wrap
-msgid "Using a Custom Guix Channel"
-msgstr "Einen eigenen Guix-Kanal benutzen"
-
-#. type: Plain text
-#: doc/guix.texi:3939
-msgid "The channel called @code{guix} specifies where Guix itself---its command-line tools as well as its package collection---should be downloaded.  For instance, suppose you want to update from your own copy of the Guix repository at @code{example.org}, and specifically the @code{super-hacks} branch, you can write in @code{~/.config/guix/channels.scm} this specification:"
-msgstr "Der Kanal namens @code{guix} gibt an, wovon Guix selbst — seine Befehlszeilenwerkzeuge und seine Paketsammlung — heruntergeladen werden sollen. Wenn Sie zum Beispiel mit Ihrer eigenen Kopie des Guix-Repositorys arbeiten möchten und diese auf @code{example.org} zu finden ist, und zwar im Branch namens @code{super-hacks}, dann schreiben Sie folgende Spezifikation in @code{~/.config/guix/channels.scm}:"
-
-#. type: lisp
-#: doc/guix.texi:3946
-#, no-wrap
-msgid ""
-";; Tell 'guix pull' to use my own repo.\n"
-"(list (channel\n"
-"        (name 'guix)\n"
-"        (url \"https://example.org/my-guix.git\")\n"
-"        (branch \"super-hacks\")))\n"
-msgstr ""
-";; 'guix pull' mein eigenes Repository benutzen lassen.\n"
-"(list (channel\n"
-"        (name 'guix)\n"
-"        (url \"https://example.org/my-guix.git\")\n"
-"        (branch \"super-hacks\")))\n"
-
-#. type: Plain text
-#: doc/guix.texi:3951
-msgid "From there on, @command{guix pull} will fetch code from the @code{super-hacks} branch of the repository at @code{example.org}."
-msgstr "Ab dann wird @command{guix pull} seinen Code vom Branch @code{super-hacks} des Repositorys auf @code{example.org} beziehen."
+msgid "downgrade attacks, protection against"
+msgstr "Downgrade Attacks, Schutz davor"
 
-#. type: subsection
-#: doc/guix.texi:3952
-#, no-wrap
-msgid "Specifying Additional Channels"
-msgstr "Weitere Kanäle angeben"
-
-#. type: cindex
-#: doc/guix.texi:3954
-#, no-wrap
-msgid "extending the package collection (channels)"
-msgstr "Paketsammlung erweitern (Kanäle)"
-
-#. type: cindex
-#: doc/guix.texi:3955
-#, no-wrap
-msgid "personal packages (channels)"
-msgstr "Eigene Pakete (Kanäle)"
-
-#. type: cindex
-#: doc/guix.texi:3956
-#, no-wrap
-msgid "channels, for personal packages"
-msgstr "Kanäle, für eigene Pakete"
-
-#. type: Plain text
-#: doc/guix.texi:3964
-msgid "You can also specify @emph{additional channels} to pull from.  Let's say you have a bunch of custom package variants or personal packages that you think would make little sense to contribute to the Guix project, but would like to have these packages transparently available to you at the command line.  You would first write modules containing those package definitions (@pxref{Package Modules}), maintain them in a Git repository, and then you and anyone else can use it as an additional channel to get packages from.  Neat, no?"
-msgstr "Sie können auch @emph{weitere Kanäle} als Bezugsquelle angeben. Sagen wir, Sie haben ein paar eigene Paketvarianten oder persönliche Pakete, von denen Sie meinen, dass sie @emph{nicht} geeignet sind, ins Guix-Projekt selbst aufgenommen zu werden, die Ihnen aber dennoch wie andere Pakete auf der Befehlszeile zur Verfügung stehen sollen. Dann würden Sie zunächst Module mit diesen Paketdefinitionen schreiben (siehe @ref{Package Modules}) und diese dann in einem Git-Repository verwalten, welches Sie selbst oder jeder andere dann als zusätzlichen Kanal eintragen können, von dem Pakete geladen werden. Klingt gut, oder?"
-
-#. type: quotation
-#: doc/guix.texi:3968 doc/guix.texi:16198
-#, no-wrap
-msgid "Warning"
-msgstr "Warnung"
-
-#. type: quotation
-#: doc/guix.texi:3972
-msgid "Before you, dear user, shout---``woow this is @emph{soooo coool}!''---and publish your personal channel to the world, we would like to share a few words of caution:"
-msgstr "Bevor Sie, verehrter Nutzer, ausrufen: „Wow, das ist @emph{soooo coool}!“, und Ihren eigenen Kanal der Welt zur Verfügung stellen, möchten wir Ihnen auch ein paar Worte der Warnung mit auf den Weg geben:"
-
-#. type: itemize
-#: doc/guix.texi:3980
-msgid "Before publishing a channel, please consider contributing your package definitions to Guix proper (@pxref{Contributing}).  Guix as a project is open to free software of all sorts, and packages in Guix proper are readily available to all Guix users and benefit from the project's quality assurance process."
-msgstr "Bevor Sie einen Kanal veröffentlichen, überlegen Sie sich bitte erst, ob Sie die Pakete nicht besser zum eigentlichen Guix-Projekt beisteuern (siehe @ref{Contributing}). Das Guix-Projekt ist gegenüber allen Arten freier Software offen und zum eigentlichen Guix gehörende Pakete stehen allen Guix-Nutzern zur Verfügung, außerdem profitieren sie von Guix’ Qualitätssicherungsprozess."
-
-#. type: itemize
-#: doc/guix.texi:3989
-msgid "When you maintain package definitions outside Guix, we, Guix developers, consider that @emph{the compatibility burden is on you}.  Remember that package modules and package definitions are just Scheme code that uses various programming interfaces (APIs).  We want to remain free to change these APIs to keep improving Guix, possibly in ways that break your channel.  We never change APIs gratuitously, but we will @emph{not} commit to freezing APIs either."
-msgstr "Wenn Sie Paketdefinitionen außerhalb von Guix betreuen, sehen wir Guix-Entwickler es als @emph{Ihre Aufgabe an, deren Kompatibilität sicherzstellen}. Bedenken Sie, dass Paketmodule und Paketdefinitionen nur Scheme-Code sind, der verschiedene Programmierschnittstellen (APIs) benutzt. Wir nehmen uns das Recht heraus, diese APIs jederzeit zu ändern, damit wir Guix besser machen können, womöglich auf eine Art, wodurch Ihr Kanal nicht mehr funktioniert. Wir ändern APIs nie einfach so, werden aber auch @emph{nicht} versprechen, APIs nicht zu verändern."
-
-#. type: itemize
-#: doc/guix.texi:3993
-msgid "Corollary: if you're using an external channel and that channel breaks, please @emph{report the issue to the channel authors}, not to the Guix project."
-msgstr "Das bedeutet auch, dass Sie, wenn Sie einen externen Kanal verwenden und dieser kaputt geht, Sie dies bitte @emph{den Autoren des Kanals} und nicht dem Guix-Projekt melden."
+#. type: table
+#: doc/guix.texi:4348
+msgid "By default, @command{guix pull} protects against so-called ``downgrade attacks'' whereby the Git repository of a channel would be reset to an earlier or unrelated revision of itself, potentially leading you to install older, known-vulnerable versions of software packages."
+msgstr "Nach Voreinstellung schützt @command{guix pull} den Nutzer vor Herabstufungsangriffen („Downgrade Attacks“). Damit werden Versuche bezeichnet, jemanden eine frühere oder unzusammenhängende Version des Git-Repositorys eines Kanals benutzen zu lassen, wodurch diese Person dazu gebracht werden kann, ältere Versionen von Softwarepaketen mit bekannten Schwachstellen zu installieren."
 
 #. type: quotation
-#: doc/guix.texi:4000
-msgid "You've been warned! Having said this, we believe external channels are a practical way to exert your freedom to augment Guix' package collection and to share your improvements, which are basic tenets of @uref{https://www.gnu.org/philosophy/free-sw.html, free software}.  Please email us at @email{guix-devel@@gnu.org} if you'd like to discuss this."
-msgstr "Wir haben Sie gewarnt! Allerdings denken wir auch, dass externe Kanäle eine praktische Möglichkeit sind, die Paketsammlung von Guix zu ergänzen und Ihre Verbesserungen mit anderen zu teilen, wie es dem Grundgedanken @uref{https://www.gnu.org/philosophy/free-sw.html, freier Software} entspricht. Bitte schicken Sie eine E-Mail an @email{guix-devel@@gnu.org}, wenn Sie dies diskutieren möchten."
-
-#. type: Plain text
-#: doc/guix.texi:4005
-msgid "To use a channel, write @code{~/.config/guix/channels.scm} to instruct @command{guix pull} to pull from it @emph{in addition} to the default Guix channel(s):"
-msgstr "Um einen Kanal zu benutzen, tragen Sie ihn in @code{~/.config/guix/channels.scm} ein, damit @command{guix pull} diesen Kanal @emph{zusätzlich} zu den standardmäßigen Guix-Kanälen als Paketquelle verwendet:"
-
-#. type: vindex
-#: doc/guix.texi:4006
-#, no-wrap
-msgid "%default-channels"
-msgstr "%default-channels"
-
-#. type: lisp
-#: doc/guix.texi:4013
-#, no-wrap
-msgid ""
-";; Add my personal packages to those Guix provides.\n"
-"(cons (channel\n"
-"        (name 'my-personal-packages)\n"
-"        (url \"https://example.org/personal-packages.git\"))\n"
-"      %default-channels)\n"
-msgstr ""
-";; Meine persönlichen Pakete zu denen von Guix dazunehmen.\n"
-"(cons (channel\n"
-"        (name 'meine-persönlichen-pakete)\n"
-"        (url \"https://example.org/personal-packages.git\"))\n"
-"      %default-channels)\n"
-
-#. type: Plain text
-#: doc/guix.texi:4023
-msgid "Note that the snippet above is (as always!)@: Scheme code; we use @code{cons} to add a channel the list of channels that the variable @code{%default-channels} is bound to (@pxref{Pairs, @code{cons} and lists,, guile, GNU Guile Reference Manual}).  With this file in place, @command{guix pull} builds not only Guix but also the package modules from your own repository.  The result in @file{~/.config/guix/current} is the union of Guix with your own package modules:"
-msgstr "Beachten Sie, dass der obige Schnipsel (wie immer!)@: Scheme-Code ist; mit @code{cons} fügen wir einen Kanal zur Liste der Kanäle hinzu, an die die Variable @code{%default-channels} gebunden ist (siehe @ref{Pairs, @code{cons} and lists,, guile, GNU Guile Reference Manual}). Mit diesem Dateiinhalt wird @command{guix pull} nun nicht mehr nur Guix, sondern auch die Paketmodule aus Ihrem Repository erstellen. Das Ergebnis in @file{~/.config/guix/current} ist so die Vereinigung von Guix und Ihren eigenen Paketmodulen."
-
-#. type: example
-#: doc/guix.texi:4038
-#, no-wrap
-msgid ""
-"$ guix pull --list-generations\n"
-"@dots{}\n"
-"Generation 19\tAug 27 2018 16:20:48\n"
-"  guix d894ab8\n"
-"    repository URL: https://git.savannah.gnu.org/git/guix.git\n"
-"    branch: master\n"
-"    commit: d894ab8e9bfabcefa6c49d9ba2e834dd5a73a300\n"
-"  my-personal-packages dd3df5e\n"
-"    repository URL: https://example.org/personal-packages.git\n"
-"    branch: master\n"
-"    commit: dd3df5e2c8818760a8fc0bd699e55d3b69fef2bb\n"
-"  11 new packages: my-gimp, my-emacs-with-cool-features, @dots{}\n"
-"  4 packages upgraded: emacs-racket-mode@@0.0.2-2.1b78827, @dots{}\n"
-msgstr ""
-"$ guix pull --list-generations\n"
-"…\n"
-"Generation 19\tAug 27 2018 16:20:48\n"
-"  guix d894ab8\n"
-"    repository URL: https://git.savannah.gnu.org/git/guix.git\n"
-"    branch: master\n"
-"    commit: d894ab8e9bfabcefa6c49d9ba2e834dd5a73a300\n"
-"  meine-persönlichen-pakete dd3df5e\n"
-"    repository URL: https://example.org/personal-packages.git\n"
-"    branch: master\n"
-"    commit: dd3df5e2c8818760a8fc0bd699e55d3b69fef2bb\n"
-"  11 new packages: mein-gimp, mein-emacs-mit-coolen-features, …\n"
-"  4 packages upgraded: emacs-racket-mode@@0.0.2-2.1b78827, …\n"
-
-#. type: Plain text
-#: doc/guix.texi:4046
-msgid "The output of @command{guix pull} above shows that Generation@tie{}19 includes both Guix and packages from the @code{my-personal-packages} channel.  Among the new and upgraded packages that are listed, some like @code{my-gimp} and @code{my-emacs-with-cool-features} might come from @code{my-personal-packages}, while others come from the Guix default channel."
-msgstr "Obige Ausgabe von @command{guix pull} zeigt an, dass Generation@tie{}19 sowohl Guix als auch Pakete aus dem Kanal @code{meine-persönlichen-pakete} enthält. Unter den aufgeführten neuen und aktualisierten Paketen kommen vielleicht manche wie @code{mein-gimp} und @code{mein-emacs-mit-coolen-features} aus @code{meine-persönlichen-pakete}, während andere aus dem Standard-Guix-Kanal kommen."
-
-#. type: Plain text
-#: doc/guix.texi:4057
-msgid "To create a channel, create a Git repository containing your own package modules and make it available.  The repository can contain anything, but a useful channel will contain Guile modules that export packages.  Once you start using a channel, Guix will behave as if the root directory of that channel's Git repository has been added to the Guile load path (@pxref{Load Paths,,, guile, GNU Guile Reference Manual}).  For example, if your channel contains a file at @file{my-packages/my-tools.scm} that defines a Guile module, then the module will be available under the name @code{(my-packages my-tools)}, and you will be able to use it like any other module (@pxref{Modules,,, guile, GNU Guile Reference Manual})."
-msgstr "Um einen Kanal zu erzeugen, müssen Sie ein Git-Repository mit Ihren eigenen Paketmodulen erzeugen und den Zugriff darauf ermöglichen. Das Repository kann beliebigen Inhalt haben, aber wenn es ein nützlicher Kanal sein soll, muss es Guile-Module enthalten, die Pakete exportieren. Sobald Sie anfangen, einen Kanal zu benutzen, verhält sich Guix, als wäre das Wurzelverzeichnis des Git-Repositorys des Kanals in Guiles Ladepfad enthalten (siehe @ref{Load Paths,,, guile, GNU Guile Reference Manual}). Wenn Ihr Kanal also zum Beispiel eine Datei als @file{my-packages/my-tools.scm} enthält, die ein Guile-Modul definiert, dann wird das Modul unter dem Namen @code{(my-packages my-tools)} verfügbar sein und Sie werden es wie jedes andere Modul benutzen können (siehe @ref{Modules,,, guile, GNU Guile Reference Manual})."
-
-#. type: cindex
-#: doc/guix.texi:4058
-#, no-wrap
-msgid "dependencies, channels"
-msgstr "Abhängigkeiten, bei Kanälen"
-
-#. type: cindex
-#: doc/guix.texi:4059
-#, no-wrap
-msgid "meta-data, channels"
-msgstr "Metadaten, bei Kanälen"
-
-#. type: subsection
-#: doc/guix.texi:4060
-#, no-wrap
-msgid "Declaring Channel Dependencies"
-msgstr "Kanalabhängigkeiten deklarieren"
-
-#. type: Plain text
-#: doc/guix.texi:4066
-msgid "Channel authors may decide to augment a package collection provided by other channels.  They can declare their channel to be dependent on other channels in a meta-data file @file{.guix-channel}, which is to be placed in the root of the channel repository."
-msgstr "Kanalautoren können auch beschließen, die Paketsammlung von anderen Kanälen zu erweitern. Dazu können sie in einer Metadatendatei @file{.guix-channel} deklarieren, dass ihr Kanal von anderen Kanälen abhängt. Diese Datei muss im Wurzelverzeichnis des Kanal-Repositorys platziert werden."
-
-#. type: Plain text
-#: doc/guix.texi:4068
-msgid "The meta-data file should contain a simple S-expression like this:"
-msgstr "Die Metadatendatei sollte einen einfachen S-Ausdruck wie diesen enthalten:"
-
-#. type: lisp
-#: doc/guix.texi:4080
-#, no-wrap
-msgid ""
-"(channel\n"
-" (version 0)\n"
-" (dependencies\n"
-"  (channel\n"
-"   (name some-collection)\n"
-"   (url \"https://example.org/first-collection.git\"))\n"
-"  (channel\n"
-"   (name some-other-collection)\n"
-"   (url \"https://example.org/second-collection.git\")\n"
-"   (branch \"testing\"))))\n"
-msgstr ""
-"(channel\n"
-" (version 0)\n"
-" (dependencies\n"
-"  (channel\n"
-"   (name irgendeine-sammlung)\n"
-"   (url \"https://example.org/erste-sammlung.git\"))\n"
-"  (channel\n"
-"   (name eine-andere-sammlung)\n"
-"   (url \"https://example.org/zweite-sammlung.git\")\n"
-"   (branch \"testing\"))))\n"
+#: doc/guix.texi:4352 doc/guix.texi:31092
+msgid "Make sure you understand its security implications before using @option{--allow-downgrades}."
+msgstr "Sie sollten verstehen, was es für die Sicherheit Ihres Rechners bedeutet, ehe Sie @option{--allow-downgrades} benutzen."
 
-#. type: Plain text
-#: doc/guix.texi:4086
-msgid "In the above example this channel is declared to depend on two other channels, which will both be fetched automatically.  The modules provided by the channel will be compiled in an environment where the modules of all these declared channels are available."
-msgstr "Im Beispiel oben wird deklariert, dass dieser Kanal von zwei anderen Kanälen abhängt, die beide automatisch geladen werden. Die vom Kanal angebotenen Module werden in einer Umgebung kompiliert, in der die Module all dieser deklarierten Kanäle verfügbar sind."
-
-#. type: Plain text
-#: doc/guix.texi:4090
-msgid "For the sake of reliability and maintainability, you should avoid dependencies on channels that you don't control, and you should aim to keep the number of dependencies to a minimum."
-msgstr "Um Verlässlichkeit und Wartbarkeit zu gewährleisten, sollten Sie darauf verzichten, eine Abhängigkeit von Kanälen herzustellen, die Sie nicht kontrollieren, außerdem sollten Sie sich auf eine möglichst kleine Anzahl von Abhängigkeiten beschränken."
-
-#. type: cindex
-#: doc/guix.texi:4091
-#, no-wrap
-msgid "subdirectory, channels"
-msgstr "Unterverzeichnis, Kanäle"
-
-#. type: subsection
-#: doc/guix.texi:4092
+#. type: item
+#: doc/guix.texi:4354
 #, no-wrap
-msgid "Package Modules in a Sub-directory"
-msgstr "Paketmodule in einem Unterverzeichnis"
+msgid "--disable-authentication"
+msgstr "--disable-authentication"
 
-#. type: Plain text
-#: doc/guix.texi:4097
-msgid "As a channel author, you may want to keep your channel modules in a sub-directory.  If your modules are in the sub-directory @file{guix}, you must add a meta-data file @file{.guix-channel} that contains:"
-msgstr "Als Kanalautor möchten Sie vielleicht Ihre Kanalmodule in einem Unterverzeichnis anlegen. Wenn sich Ihre Module im Unterverzeichnis @file{guix} befinden, müssen Sie eine Datei @file{.guix-channel} mit Metadaten einfügen:"
-
-#. type: lisp
-#: doc/guix.texi:4102
-#, no-wrap
-msgid ""
-"(channel\n"
-"  (version 0)\n"
-"  (directory \"guix\"))\n"
-msgstr ""
-"(channel\n"
-"  (version 0)\n"
-"  (directory \"guix\"))\n"
+#. type: table
+#: doc/guix.texi:4356
+msgid "Allow pulling channel code without authenticating it."
+msgstr "Beziehen von Kanalcode ohne Authentifizierung zulassen."
 
 #. type: cindex
-#: doc/guix.texi:4104
+#: doc/guix.texi:4357 doc/guix.texi:5003
 #, no-wrap
-msgid "news, for channels"
-msgstr "Neuigkeiten, bei Kanälen"
+msgid "authentication, of channel code"
+msgstr "Authentifizieren, des Codes eines Kanals"
 
-#. type: subsection
-#: doc/guix.texi:4105
-#, no-wrap
-msgid "Writing Channel News"
-msgstr "Kanalneuigkeiten verfassen"
-
-#. type: Plain text
-#: doc/guix.texi:4110
-msgid "Channel authors may occasionally want to communicate to their users information about important changes in the channel.  You'd send them all an email, but that's not convenient."
-msgstr "Kanalautoren möchten ihren Nutzern vielleicht manchmal Informationen über wichtige Änderungen im Kanal zukommen lassen. Man könnte allen eine E-Mail schicken, aber das wäre unbequem."
-
-#. type: Plain text
-#: doc/guix.texi:4115
-msgid "Instead, channels can provide a @dfn{news file}; when the channel users run @command{guix pull}, that news file is automatically read and @command{guix pull --news} can display the announcements that correspond to the new commits that have been pulled, if any."
-msgstr "Stattdessen können Kanäle eine Datei mit Neuigkeiten („News File“) anbieten: Wenn die Kanalnutzer @command{guix pull} ausführen, wird diese Datei automatisch ausgelesen. Mit @command{guix pull --news} kann man sich die Ankündigungen anzeigen lassen, die den neu gepullten Commits entsprechen, falls es welche gibt."
+#. type: table
+#: doc/guix.texi:4362
+msgid "By default, @command{guix pull} authenticates code downloaded from channels by verifying that its commits are signed by authorized developers, and raises an error if this is not the case.  This option instructs it to not perform any such verification."
+msgstr "Nach Voreinstellung wird durch @command{guix pull} von Kanälen heruntergeladener Code darauf überprüft, dass deren Commits durch autorisierte Entwickler signiert worden sind; andernfalls wird ein Fehler gemeldet. Mit dieser Befehlszeilenoption können Sie anweisen, keine solche Verifikation durchzuführen."
 
-#. type: Plain text
-#: doc/guix.texi:4118
-msgid "To do that, channel authors must first declare the name of the news file in their @file{.guix-channel} file:"
-msgstr "Dazu müssen Kanalautoren zunächst den Namen der Datei mit Neuigkeiten in der Datei @file{.guix-channel} nennen:"
+#. type: quotation
+#: doc/guix.texi:4366
+msgid "Make sure you understand its security implications before using @option{--disable-authentication}."
+msgstr "Sie sollten verstehen, was es für die Sicherheit Ihres Rechners bedeutet, ehe Sie @option{--disable-authentication} benutzen."
 
-#. type: lisp
-#: doc/guix.texi:4123
+#. type: itemx
+#: doc/guix.texi:4369 doc/guix.texi:5637 doc/guix.texi:6008
+#: doc/guix.texi:10444 doc/guix.texi:11850 doc/guix.texi:12101
+#: doc/guix.texi:12757 doc/guix.texi:31007
 #, no-wrap
-msgid ""
-"(channel\n"
-"  (version 0)\n"
-"  (news-file \"etc/news.txt\"))\n"
-msgstr ""
-"(channel\n"
-"  (version 0)\n"
-"  (news-file \"etc/news.txt\"))\n"
-
-#. type: Plain text
-#: doc/guix.texi:4127
-msgid "The news file itself, @file{etc/news.txt} in this example, must look something like this:"
-msgstr "Die Datei mit Neuigkeiten, @file{etc/news.txt} in diesem Beispiel, muss selbst etwa so aussehen:"
+msgid "-s @var{system}"
+msgstr "-s @var{System}"
 
-#. type: lisp
-#: doc/guix.texi:4140
-#, no-wrap
-msgid ""
-"(channel-news\n"
-"  (version 0)\n"
-"  (entry (tag \"the-bug-fix\")\n"
-"         (title (en \"Fixed terrible bug\")\n"
-"                (fr \"Oh la la\"))\n"
-"         (body (en \"@@emph@{Good news@}!  It's fixed!\")\n"
-"               (eo \"Certe ĝi pli bone funkcias nun!\")))\n"
-"  (entry (commit \"bdcabe815cd28144a2d2b4bc3c5057b051fa9906\")\n"
-"         (title (en \"Added a great package\")\n"
-"                (ca \"Què vol dir guix?\"))\n"
-"         (body (en \"Don't miss the @@code@{hello@} package!\"))))\n"
-msgstr ""
-"(channel-news\n"
-"  (version 0)\n"
-"  (entry (tag \"the-bug-fix\")\n"
-"         (title (en \"Fixed terrible bug\")\n"
-"                (fr \"Oh la la\"))\n"
-"         (body (en \"@@emph@{Good news@}!  It's fixed!\")\n"
-"               (eo \"Certe ĝi pli bone funkcias nun!\")))\n"
-"  (entry (commit \"bdcabe815cd28144a2d2b4bc3c5057b051fa9906\")\n"
-"         (title (en \"Added a great package\")\n"
-"                (ca \"Què vol dir guix?\"))\n"
-"         (body (en \"Don't miss the @@code@{hello@} package!\"))))\n"
+#. type: table
+#: doc/guix.texi:4372 doc/guix.texi:6011
+msgid "Attempt to build for @var{system}---e.g., @code{i686-linux}---instead of the system type of the build host."
+msgstr "Versuchen, für die angegebene Art von @var{System} geeignete Binärdateien zu erstellen — z.B.@: @code{i686-linux} — statt für die Art von System, das die Erstellung durchführt."
 
-#. type: Plain text
-#: doc/guix.texi:4146
-msgid "The file consists of a list of @dfn{news entries}.  Each entry is associated with a commit or tag: it describes changes made in this commit, possibly in preceding commits as well.  Users see entries only the first time they obtain the commit the entry refers to."
-msgstr "Die Datei setzt sich aus einer Liste von Einträgen mit Neuigkeiten („News Entries“) zusammen. Jeder Eintrag ist mit einem Commit oder einem Tag assoziiert und beschreibt die Änderungen, die in diesem oder auch vorangehenden Commits gemacht wurden. Benutzer sehen die Einträge nur beim erstmaligen Übernehmen des Commits, auf den sich der jeweilige Eintrag bezieht."
+#. type: table
+#: doc/guix.texi:4376
+msgid "Use the bootstrap Guile to build the latest Guix.  This option is only useful to Guix developers."
+msgstr "Das neueste Guix mit dem Bootstrap-Guile erstellen. Diese Befehlszeilenoption ist nur für Guix-Entwickler von Nutzen."
 
 #. type: Plain text
-#: doc/guix.texi:4152
-msgid "The @code{title} field should be a one-line summary while @code{body} can be arbitrarily long, and both can contain Texinfo markup (@pxref{Overview,,, texinfo, GNU Texinfo}).  Both the title and body are a list of language tag/message tuples, which allows @command{guix pull} to display news in the language that corresponds to the user's locale."
-msgstr "Das @code{title}-Feld sollte eine einzeilige Zusammenfassung sein, während @code{body} beliebig lang sein kann. Beide können Texinfo-Auszeichnungen enthalten (siehe @ref{Overview,,, texinfo, GNU Texinfo}). Sowohl @code{title} als auch @code{body} sind dabei eine Liste aus Tupeln mit jeweils Sprachcode und Mitteilung, wodurch @command{guix pull} Neuigkeiten in derjenigen Sprache anzeigen kann, die der vom Nutzer eingestellten Locale entspricht."
+#: doc/guix.texi:4382
+msgid "The @dfn{channel} mechanism allows you to instruct @command{guix pull} which repository and branch to pull from, as well as @emph{additional} repositories containing package modules that should be deployed.  @xref{Channels}, for more information."
+msgstr "Mit Hilfe von @dfn{Kanälen} können Sie @command{guix pull} anweisen, von welchem Repository und welchem Branch Guix aktualisiert werden soll, sowie von welchen @emph{weiteren} Repositorys Paketmodule bezogen werden sollen. Im Abschnitt @ref{Channels} finden Sie nähere Informationen."
 
 #. type: Plain text
-#: doc/guix.texi:4158
-msgid "If you want to translate news using a gettext-based workflow, you can extract translatable strings with @command{xgettext} (@pxref{xgettext Invocation,,, gettext, GNU Gettext Utilities}).  For example, assuming you write news entries in English first, the command below creates a PO file containing the strings to translate:"
-msgstr "Wenn Sie Neuigkeiten mit einem gettext-basierten Arbeitsablauf übersetzen möchten, können Sie übersetzbare Zeichenketten mit @command{xgettext} extrahieren (siehe @ref{xgettext Invocation,,, gettext, GNU Gettext Utilities}). Unter der Annahme, dass Sie Einträge zu Neuigkeiten zunächst auf Englisch verfassen, können Sie mit diesem Befehl eine PO-Datei erzeugen, die die zu übersetzenden Zeichenketten enthält:"
+#: doc/guix.texi:4385
+msgid "In addition, @command{guix pull} supports all the common build options (@pxref{Common Build Options})."
+msgstr "Außerdem unterstützt @command{guix pull} alle gemeinsamen Erstellungsoptionen (siehe @ref{Common Build Options})."
 
-#. type: example
-#: doc/guix.texi:4161
+#. type: section
+#: doc/guix.texi:4387
 #, no-wrap
-msgid "xgettext -o news.po -l scheme -ken etc/news.scm\n"
-msgstr "xgettext -o news.po -l scheme -ken etc/news.scm\n"
-
-#. type: Plain text
-#: doc/guix.texi:4165
-msgid "To sum up, yes, you could use your channel as a blog.  But beware, this is @emph{not quite} what your users might expect."
-msgstr "Kurz gesagt, ja, Sie können Ihren Kanal sogar als Blog missbrauchen. Aber das ist @emph{nicht ganz}, was Ihre Nutzer erwarten dürften."
+msgid "Invoking @command{guix time-machine}"
+msgstr "@command{guix time-machine} aufrufen"
 
-#. type: subsection
-#: doc/guix.texi:4166
+#. type: command{#1}
+#: doc/guix.texi:4389
 #, no-wrap
-msgid "Replicating Guix"
-msgstr "Guix nachbilden"
+msgid "guix time-machine"
+msgstr "guix time-machine"
 
 #. type: cindex
-#: doc/guix.texi:4168 doc/guix.texi:4210
+#: doc/guix.texi:4390 doc/guix.texi:4961
 #, no-wrap
 msgid "pinning, channels"
 msgstr "Festsetzen, bei Kanälen"
 
 #. type: cindex
-#: doc/guix.texi:4169 doc/guix.texi:4211 doc/guix.texi:4393
+#: doc/guix.texi:4391 doc/guix.texi:4573 doc/guix.texi:4962
 #, no-wrap
 msgid "replicating Guix"
 msgstr "Nachbilden von Guix"
 
 #. type: cindex
-#: doc/guix.texi:4170 doc/guix.texi:4212
+#: doc/guix.texi:4392 doc/guix.texi:4963
 #, no-wrap
 msgid "reproducibility, of Guix"
 msgstr "Reproduzierbarkeit von Guix"
 
 #. type: Plain text
-#: doc/guix.texi:4175
-msgid "The @command{guix pull --list-generations} output above shows precisely which commits were used to build this instance of Guix.  We can thus replicate it, say, on another machine, by providing a channel specification in @file{~/.config/guix/channels.scm} that is ``pinned'' to these commits:"
-msgstr "Die Ausgabe von @command{guix pull --list-generations} oben zeigt genau, aus welchen Commits diese Guix-Instanz erstellt wurde. Wir können Guix so zum Beispiel auf einer anderen Maschine nachbilden, indem wir eine Kanalspezifikation in @file{~/.config/guix/channels.scm} angeben, die auf diese Commits „festgesetzt“ ist."
-
-#. type: lisp
-#: doc/guix.texi:4186
-#, no-wrap
-msgid ""
-";; Deploy specific commits of my channels of interest.\n"
-"(list (channel\n"
-"       (name 'guix)\n"
-"       (url \"https://git.savannah.gnu.org/git/guix.git\")\n"
-"       (commit \"d894ab8e9bfabcefa6c49d9ba2e834dd5a73a300\"))\n"
-"      (channel\n"
-"       (name 'my-personal-packages)\n"
-"       (url \"https://example.org/personal-packages.git\")\n"
-"       (commit \"dd3df5e2c8818760a8fc0bd699e55d3b69fef2bb\")))\n"
-msgstr ""
-";; Ganz bestimmte Commits der relevanten Kanäle installieren.\n"
-"(list (channel\n"
-"       (name 'guix)\n"
-"       (url \"https://git.savannah.gnu.org/git/guix.git\")\n"
-"       (commit \"d894ab8e9bfabcefa6c49d9ba2e834dd5a73a300\"))\n"
-"      (channel\n"
-"       (name 'meine-persönlichen-pakete)\n"
-"       (url \"https://example.org/personal-packages.git\")\n"
-"       (commit \"dd3df5e2c8818760a8fc0bd699e55d3b69fef2bb\")))\n"
-
-#. type: Plain text
-#: doc/guix.texi:4193
-msgid "The @command{guix describe --format=channels} command can even generate this list of channels directly (@pxref{Invoking guix describe}).  The resulting file can be used with the -C options of @command{guix pull} (@pxref{Invoking guix pull}) or @command{guix time-machine} (@pxref{Invoking guix time-machine})."
-msgstr "Der Befehl @command{guix describe --format=channels} kann diese Kanalliste sogar direkt erzeugen (siehe @ref{Invoking guix describe}). Die erzeugte Datei kann mit den @code{-C} genannten Befehlszeilenoptionen von @command{guix pull} (siehe @ref{Invoking guix pull}) oder von @command{guix time-machine} (siehe @ref{Invoking guix time-machine}) benutzt werden."
-
-#. type: Plain text
-#: doc/guix.texi:4200
-msgid "At this point the two machines run the @emph{exact same Guix}, with access to the @emph{exact same packages}.  The output of @command{guix build gimp} on one machine will be exactly the same, bit for bit, as the output of the same command on the other machine.  It also means both machines have access to all the source code of Guix and, transitively, to all the source code of every package it defines."
-msgstr "Somit läuft auf beiden Maschinen @emph{genau dasselbe Guix} und es hat Zugang zu @emph{genau denselben Paketen}. Die Ausgabe von @command{guix build gimp} auf der einen Maschine wird Bit für Bit genau dieselbe wie die desselben Befehls auf der anderen Maschine sein. Das bedeutet auch, dass beide Maschinen Zugang zum gesamten Quellcode von Guix und daher auch transitiv Zugang zum Quellcode jedes davon definierten Pakets haben."
-
-#. type: Plain text
-#: doc/guix.texi:4205
-msgid "This gives you super powers, allowing you to track the provenance of binary artifacts with very fine grain, and to reproduce software environments at will---some sort of ``meta reproducibility'' capabilities, if you will.  @xref{Inferiors}, for another way to take advantage of these super powers."
-msgstr "Das verleiht Ihnen Superkräfte, mit denen Sie die Provenienz binärer Artefakte sehr feinkörnig nachverfolgen können und Software-Umgebungen nach Belieben nachbilden können. Sie können es als eine Art Fähigkeit zur „Meta-Reproduzierbarkeit“ auffassen, wenn Sie möchten. Der Abschnitt @ref{Inferiors} beschreibt eine weitere Möglichkeit, diese Superkräfte zu nutzen."
-
-#. type: section
-#: doc/guix.texi:4207
-#, no-wrap
-msgid "Invoking @command{guix time-machine}"
-msgstr "@command{guix time-machine} aufrufen"
-
-#. type: command{#1}
-#: doc/guix.texi:4209
-#, no-wrap
-msgid "guix time-machine"
-msgstr "guix time-machine"
-
-#. type: Plain text
-#: doc/guix.texi:4220
+#: doc/guix.texi:4400
 msgid "The @command{guix time-machine} command provides access to other revisions of Guix, for example to install older versions of packages, or to reproduce a computation in an identical environment.  The revision of Guix to be used is defined by a commit or by a channel description file created by @command{guix describe} (@pxref{Invoking guix describe})."
 msgstr "Der Befehl @command{guix time-machine} erleichtert den Zugang zu anderen Versionen von Guix. Damit können ältere Versionen von Paketen installiert werden oder eine Berechnung in einer identischen Umgebung reproduziert werden. Die zu benutzende Guix-Version wird über eine Commit-Angabe oder eine Kanalbeschreibungsdatei, wie sie durch @command{guix describe} erzeugt werden kann, festgelegt (siehe @ref{Invoking guix describe})."
 
 #. type: Plain text
-#: doc/guix.texi:4222 doc/guix.texi:4681 doc/guix.texi:8180 doc/guix.texi:8922
-#: doc/guix.texi:8989 doc/guix.texi:9846 doc/guix.texi:10253
-#: doc/guix.texi:10592 doc/guix.texi:10681 doc/guix.texi:10720
-#: doc/guix.texi:10817
+#: doc/guix.texi:4402 doc/guix.texi:5392 doc/guix.texi:6131 doc/guix.texi:9747
+#: doc/guix.texi:9870 doc/guix.texi:10735 doc/guix.texi:10812
+#: doc/guix.texi:11680 doc/guix.texi:12154 doc/guix.texi:12511
+#: doc/guix.texi:12600 doc/guix.texi:12639 doc/guix.texi:12736
 msgid "The general syntax is:"
 msgstr "Die allgemeine Syntax lautet:"
 
 #. type: example
-#: doc/guix.texi:4225
+#: doc/guix.texi:4405
 #, no-wrap
 msgid "guix time-machine @var{options}@dots{} -- @var{command} @var {arg}@dots{}\n"
-msgstr "guix time-machine @var{Optionen}… -- @var{Befehl} @var {Argument}…\n"
+msgstr "guix time-machine @var{Optionen}…@: -- @var{Befehl} @var {Argument}…\n"
 
 #. type: Plain text
-#: doc/guix.texi:4230
+#: doc/guix.texi:4410
 msgid "where @var{command} and @var{arg}@dots{} are passed unmodified to the @command{guix} command of the specified revision.  The @var{options} that define this revision are the same as for @command{guix pull} (@pxref{Invoking guix pull}):"
-msgstr "Dabei werden der @var{Befehl} und jedes @var{Argument}… unverändert an den @command{guix}-Befehl der angegebenen Version übergeben. Die @var{Optionen}, die die Version definieren, sind dieselben wie bei @command{guix pull} (siehe @ref{Invoking guix pull}):"
+msgstr "Dabei werden der @var{Befehl} und jedes @var{Argument}…@: unverändert an den @command{guix}-Befehl der angegebenen Version übergeben. Die @var{Optionen}, die die Version definieren, sind dieselben wie bei @command{guix pull} (siehe @ref{Invoking guix pull}):"
 
 #. type: table
-#: doc/guix.texi:4238
+#: doc/guix.texi:4418
 msgid "Use the @code{guix} channel from the specified @var{url}, at the given @var{commit} (a valid Git commit ID represented as a hexadecimal string), or @var{branch}."
 msgstr "Den @code{guix}-Kanal von der angegebenen @var{URL} benutzen, für den angegebenen @var{Commit} (eine gültige Commit-ID, dargestellt als hexadezimale Zeichenkette) oder @var{Branch}."
 
 #. type: table
-#: doc/guix.texi:4244
+#: doc/guix.texi:4424
 msgid "Read the list of channels from @var{file}.  @var{file} must contain Scheme code that evaluates to a list of channel objects.  @xref{Channels} for more information."
 msgstr "Die Liste der Kanäle aus der angegebenen @var{Datei} auslesen. Die @var{Datei} muss Scheme-Code enthalten, der zu einer Liste von Kanalobjekten ausgewertet wird. Siehe @ref{Channels} für nähere Informationen."
 
 #. type: Plain text
-#: doc/guix.texi:4248
-msgid "As for @command{guix pull}, the absence of any options means that the the latest commit on the master branch will be used. The command"
+#: doc/guix.texi:4428
+msgid "As for @command{guix pull}, the absence of any options means that the latest commit on the master branch will be used. The command"
 msgstr "Wie bei @command{guix pull} wird in Ermangelung anderer Optionen der letzte Commit auf dem master-Branch benutzt. Mit dem Befehl"
 
 #. type: example
-#: doc/guix.texi:4251
+#: doc/guix.texi:4431
 #, no-wrap
 msgid "guix time-machine -- build hello\n"
 msgstr "guix time-machine -- build hello\n"
 
 #. type: Plain text
-#: doc/guix.texi:4256
+#: doc/guix.texi:4436
 msgid "will thus build the package @code{hello} as defined in the master branch, which is in general a newer revision of Guix than you have installed.  Time travel works in both directions!"
 msgstr "wird dementsprechend das Paket @code{hello} erstellt, so wie es auf dem master-Branch definiert ist, was in der Regel einer neueren Guix-Version entspricht als der, die Sie installiert haben. Zeitreisen funktionieren also in beide Richtungen!"
 
 #. type: Plain text
-#: doc/guix.texi:4260
+#: doc/guix.texi:4440
 msgid "Note that @command{guix time-machine} can trigger builds of channels and their dependencies, and these are controlled by the standard build options (@pxref{Common Build Options})."
 msgstr "Beachten Sie, dass durch @command{guix time-machine} Erstellungen von Kanälen und deren Abhängigkeiten ausgelöst werden können, welche durch die gemeinsamen Erstellungsoptionen gesteuert werden können (siehe @ref{Common Build Options})."
 
 #. type: quotation
-#: doc/guix.texi:4268
+#: doc/guix.texi:4448
 msgid "The functionality described here is a ``technology preview'' as of version @value{VERSION}.  As such, the interface is subject to change."
 msgstr "Die hier beschriebenen Funktionalitäten sind in der Version @value{VERSION} bloß eine „Technologie-Vorschau“, daher kann sich die Schnittstelle in Zukunft noch ändern."
 
 #. type: cindex
-#: doc/guix.texi:4270 doc/guix.texi:8094
+#: doc/guix.texi:4450 doc/guix.texi:9784
 #, no-wrap
 msgid "inferiors"
 msgstr "Untergeordnete"
 
 #. type: cindex
-#: doc/guix.texi:4271
+#: doc/guix.texi:4451
 #, no-wrap
 msgid "composition of Guix revisions"
 msgstr "Mischen von Guix-Versionen"
 
 #. type: Plain text
-#: doc/guix.texi:4276
+#: doc/guix.texi:4456
 msgid "Sometimes you might need to mix packages from the revision of Guix you're currently running with packages available in a different revision of Guix.  Guix @dfn{inferiors} allow you to achieve that by composing different Guix revisions in arbitrary ways."
 msgstr "Manchmal könnten Sie Pakete aus der gerade laufenden Fassung von Guix mit denen mischen wollen, die in einer anderen Guix-Version verfügbar sind.  Guix-@dfn{Untergeordnete} ermöglichen dies, indem Sie verschiedene Guix-Versionen beliebig mischen können."
 
 #. type: cindex
-#: doc/guix.texi:4277 doc/guix.texi:4342
+#: doc/guix.texi:4457 doc/guix.texi:4522
 #, no-wrap
 msgid "inferior packages"
 msgstr "untergeordnete Pakete"
 
 #. type: Plain text
-#: doc/guix.texi:4283
+#: doc/guix.texi:4463
 msgid "Technically, an ``inferior'' is essentially a separate Guix process connected to your main Guix process through a REPL (@pxref{Invoking guix repl}).  The @code{(guix inferior)} module allows you to create inferiors and to communicate with them.  It also provides a high-level interface to browse and manipulate the packages that an inferior provides---@dfn{inferior packages}."
 msgstr "Aus technischer Sicht ist ein „Untergeordneter“ im Kern ein separater Guix-Prozess, der über eine REPL (siehe @ref{Invoking guix repl}) mit Ihrem Haupt-Guix-Prozess verbunden ist. Das Modul @code{(guix inferior)} ermöglicht es Ihnen, Untergeordnete zu erstellen und mit ihnen zu kommunizieren. Dadurch steht Ihnen auch eine hochsprachliche Schnittstelle zur Verfügung, um die von einem Untergeordneten angebotenen Pakete zu durchsuchen und zu verändern — @dfn{untergeordnete Pakete}."
 
 #. type: Plain text
-#: doc/guix.texi:4293
+#: doc/guix.texi:4473
 msgid "When combined with channels (@pxref{Channels}), inferiors provide a simple way to interact with a separate revision of Guix.  For example, let's assume you want to install in your profile the current @code{guile} package, along with the @code{guile-json} as it existed in an older revision of Guix---perhaps because the newer @code{guile-json} has an incompatible API and you want to run your code against the old API@.  To do that, you could write a manifest for use by @code{guix package --manifest} (@pxref{Invoking guix package}); in that manifest, you would create an inferior for that old Guix revision you care about, and you would look up the @code{guile-json} package in the inferior:"
 msgstr "In Kombination mit Kanälen (siehe @ref{Channels}) bieten Untergeordnete eine einfache Möglichkeit, mit einer anderen Version von Guix zu interagieren. Nehmen wir zum Beispiel an, Sie wollen das aktuelle @code{guile}-Paket in Ihr Profil installieren, zusammen mit dem @code{guile-json}, wie es in einer früheren Guix-Version existiert hat — vielleicht weil das neuere @code{guile-json} eine inkompatible API hat und Sie daher Ihren Code mit der alten API benutzen möchten. Dazu könnten Sie ein Manifest für @code{guix package --manifest} schreiben (siehe @ref{Invoking guix package}); in diesem Manifest würden Sie einen Untergeordneten für diese alte Guix-Version erzeugen, für die Sie sich interessieren, und aus diesem Untergeordneten das @code{guile-json}-Paket holen:"
 
 #. type: lisp
-#: doc/guix.texi:4297
+#: doc/guix.texi:4477
 #, no-wrap
 msgid ""
 "(use-modules (guix inferior) (guix channels)\n"
@@ -9498,7 +10076,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:4306
+#: doc/guix.texi:4486
 #, no-wrap
 msgid ""
 "(define channels\n"
@@ -9522,7 +10100,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:4310
+#: doc/guix.texi:4490
 #, no-wrap
 msgid ""
 "(define inferior\n"
@@ -9536,7 +10114,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:4316
+#: doc/guix.texi:4496
 #, no-wrap
 msgid ""
 ";; Now create a manifest with the current \"guile\" package\n"
@@ -9552,186 +10130,186 @@ msgstr ""
 "       (specification->package \"guile\")))\n"
 
 #. type: Plain text
-#: doc/guix.texi:4321
+#: doc/guix.texi:4501
 msgid "On its first run, @command{guix package --manifest} might have to build the channel you specified before it can create the inferior; subsequent runs will be much faster because the Guix revision will be cached."
 msgstr "Bei seiner ersten Ausführung könnte für @command{guix package --manifest} erst der angegebene Kanal erstellt werden müssen, bevor der Untergeordnete erstellt werden kann; nachfolgende Durchläufe sind wesentlich schneller, weil diese Guix-Version bereits zwischengespeichert ist."
 
 #. type: Plain text
-#: doc/guix.texi:4324
+#: doc/guix.texi:4504
 msgid "The @code{(guix inferior)} module provides the following procedures to open an inferior:"
 msgstr "Folgende Prozeduren werden im Modul @code{(guix inferior)} angeboten, um einen Untergeordneten zu öffnen:"
 
 #. type: deffn
-#: doc/guix.texi:4325
+#: doc/guix.texi:4505
 #, no-wrap
 msgid "{Scheme Procedure} inferior-for-channels @var{channels} @"
 msgstr "{Scheme-Prozedur} inferior-for-channels @var{Kanäle} @"
 
 #. type: deffn
-#: doc/guix.texi:4330
+#: doc/guix.texi:4510
 msgid "[#:cache-directory] [#:ttl] Return an inferior for @var{channels}, a list of channels.  Use the cache at @var{cache-directory}, where entries can be reclaimed after @var{ttl} seconds.  This procedure opens a new connection to the build daemon."
 msgstr "[#:cache-directory] [#:ttl] Liefert einen Untergeordneten für die @var{Kanäle}, einer Liste von Kanälen. Dazu wird der Zwischenspeicher im Verzeichnis @var{cache-directory} benutzt, dessen Einträge nach @var{ttl} Sekunden gesammelt werden dürfen. Mit dieser Prozedur wird eine neue Verbindung zum Erstellungs-Daemon geöffnet."
 
 #. type: deffn
-#: doc/guix.texi:4333
+#: doc/guix.texi:4513
 msgid "As a side effect, this procedure may build or substitute binaries for @var{channels}, which can take time."
 msgstr "Als Nebenwirkung erstellt oder substituiert diese Prozedur unter Umständen Binärdateien für die @var{Kanäle}, was einige Zeit in Anspruch nehmen kann."
 
 #. type: deffn
-#: doc/guix.texi:4335
+#: doc/guix.texi:4515
 #, no-wrap
 msgid "{Scheme Procedure} open-inferior @var{directory} @"
 msgstr "{Scheme-Prozedur} open-inferior @var{Verzeichnis} @"
 
 #. type: deffn
-#: doc/guix.texi:4340
+#: doc/guix.texi:4520
 msgid "[#:command \"bin/guix\"] Open the inferior Guix in @var{directory}, running @code{@var{directory}/@var{command} repl} or equivalent.  Return @code{#f} if the inferior could not be launched."
 msgstr "[#:command \"bin/guix\"] Öffnet das untergeordnete Guix mit dem Befehl @var{command} im angegebenen @var{Verzeichnis} durch Ausführung von @code{@var{Verzeichnis}/@var{command} repl} oder entsprechend. Liefert @code{#f}, wenn der Untergeordnete nicht gestartet werden konnte."
 
 #. type: Plain text
-#: doc/guix.texi:4345
+#: doc/guix.texi:4525
 msgid "The procedures listed below allow you to obtain and manipulate inferior packages."
 msgstr "Die im Folgenden aufgeführten Prozeduren ermöglichen es Ihnen, untergeordnete Pakete abzurufen und zu verändern."
 
 #. type: deffn
-#: doc/guix.texi:4346
+#: doc/guix.texi:4526
 #, no-wrap
 msgid "{Scheme Procedure} inferior-packages @var{inferior}"
 msgstr "{Scheme-Prozedur} inferior-packages @var{Untergeordneter}"
 
 #. type: deffn
-#: doc/guix.texi:4348
+#: doc/guix.texi:4528
 msgid "Return the list of packages known to @var{inferior}."
 msgstr "Liefert die Liste der Pakete in @var{Untergeordneter}."
 
 #. type: deffn
-#: doc/guix.texi:4350
+#: doc/guix.texi:4530
 #, no-wrap
 msgid "{Scheme Procedure} lookup-inferior-packages @var{inferior} @var{name} @"
 msgstr "{Scheme-Prozedur} lookup-inferior-packages @var{Untergeordneter} @var{Name} @"
 
 #. type: deffn
-#: doc/guix.texi:4355
+#: doc/guix.texi:4535
 msgid "[@var{version}] Return the sorted list of inferior packages matching @var{name} in @var{inferior}, with highest version numbers first.  If @var{version} is true, return only packages with a version number prefixed by @var{version}."
 msgstr "[@var{Version}] Liefert die sortierte Liste der untergeordneten Pakete in @var{Untergeordneter}, die zum Muster @var{Name} in @var{Untergeordneter} passen, dabei kommen höhere Versionsnummern zuerst. Wenn @var{Version} auf wahr gesetzt ist, werden nur Pakete geliefert, deren Versionsnummer mit dem Präfix @var{Version} beginnt."
 
 #. type: deffn
-#: doc/guix.texi:4357
+#: doc/guix.texi:4537
 #, no-wrap
 msgid "{Scheme Procedure} inferior-package? @var{obj}"
 msgstr "{Scheme-Prozedur} inferior-package? @var{Objekt}"
 
 #. type: deffn
-#: doc/guix.texi:4359
+#: doc/guix.texi:4539
 msgid "Return true if @var{obj} is an inferior package."
 msgstr "Liefert wahr, wenn das @var{obj} ein Untergeordneter ist."
 
 #. type: deffn
-#: doc/guix.texi:4361
+#: doc/guix.texi:4541
 #, no-wrap
 msgid "{Scheme Procedure} inferior-package-name @var{package}"
 msgstr "{Scheme-Prozedur} inferior-package-name @var{Paket}"
 
 #. type: deffnx
-#: doc/guix.texi:4362
+#: doc/guix.texi:4542
 #, no-wrap
 msgid "{Scheme Procedure} inferior-package-version @var{package}"
 msgstr "{Scheme-Prozedur} inferior-package-version @var{Paket}"
 
 #. type: deffnx
-#: doc/guix.texi:4363
+#: doc/guix.texi:4543
 #, no-wrap
 msgid "{Scheme Procedure} inferior-package-synopsis @var{package}"
 msgstr "{Scheme-Prozedur} inferior-package-synopsis @var{Paket}"
 
 #. type: deffnx
-#: doc/guix.texi:4364
+#: doc/guix.texi:4544
 #, no-wrap
 msgid "{Scheme Procedure} inferior-package-description @var{package}"
 msgstr "{Scheme-Prozedur} inferior-package-description @var{Paket}"
 
 #. type: deffnx
-#: doc/guix.texi:4365
+#: doc/guix.texi:4545
 #, no-wrap
 msgid "{Scheme Procedure} inferior-package-home-page @var{package}"
 msgstr "{Scheme-Prozedur} inferior-package-home-page @var{Paket}"
 
 #. type: deffnx
-#: doc/guix.texi:4366
+#: doc/guix.texi:4546
 #, no-wrap
 msgid "{Scheme Procedure} inferior-package-location @var{package}"
 msgstr "{Scheme-Prozedur} inferior-package-location @var{Paket}"
 
 #. type: deffnx
-#: doc/guix.texi:4367
+#: doc/guix.texi:4547
 #, no-wrap
 msgid "{Scheme Procedure} inferior-package-inputs @var{package}"
 msgstr "{Scheme-Prozedur} inferior-package-inputs @var{Paket}"
 
 #. type: deffnx
-#: doc/guix.texi:4368
+#: doc/guix.texi:4548
 #, no-wrap
 msgid "{Scheme Procedure} inferior-package-native-inputs @var{package}"
 msgstr "{Scheme-Prozedur} inferior-package-native-inputs @var{Paket}"
 
 #. type: deffnx
-#: doc/guix.texi:4369
+#: doc/guix.texi:4549
 #, no-wrap
 msgid "{Scheme Procedure} inferior-package-propagated-inputs @var{package}"
 msgstr "{Scheme-Prozedur} inferior-package-propagated-inputs @var{Paket}"
 
 #. type: deffnx
-#: doc/guix.texi:4370
+#: doc/guix.texi:4550
 #, no-wrap
 msgid "{Scheme Procedure} inferior-package-transitive-propagated-inputs @var{package}"
 msgstr "{Scheme-Prozedur} inferior-package-transitive-propagated-inputs @var{Paket}"
 
 #. type: deffnx
-#: doc/guix.texi:4371
+#: doc/guix.texi:4551
 #, no-wrap
 msgid "{Scheme Procedure} inferior-package-native-search-paths @var{package}"
 msgstr "{Scheme-Prozedur} inferior-package-native-search-paths @var{Paket}"
 
 #. type: deffnx
-#: doc/guix.texi:4372
+#: doc/guix.texi:4552
 #, no-wrap
 msgid "{Scheme Procedure} inferior-package-transitive-native-search-paths @var{package}"
 msgstr "{Scheme-Prozedur} inferior-package-transitive-native-search-paths @var{Paket}"
 
 #. type: deffnx
-#: doc/guix.texi:4373
+#: doc/guix.texi:4553
 #, no-wrap
 msgid "{Scheme Procedure} inferior-package-search-paths @var{package}"
 msgstr "{Scheme-Prozedur} inferior-package-search-paths @var{Paket}"
 
 #. type: deffn
-#: doc/guix.texi:4378
+#: doc/guix.texi:4558
 msgid "These procedures are the counterpart of package record accessors (@pxref{package Reference}).  Most of them work by querying the inferior @var{package} comes from, so the inferior must still be live when you call these procedures."
 msgstr "Diese Prozeduren sind das Gegenstück zu den Zugriffsmethoden des Verbunds „package“ für Pakete (siehe @ref{package Reference}). Die meisten davon funktionieren durch eine Abfrage auf dem Untergeordneten, von dem das @var{Paket} kommt, weshalb der Untergeordnete noch lebendig sein muss, wenn Sie diese Prozeduren aufrufen."
 
 #. type: Plain text
-#: doc/guix.texi:4388
+#: doc/guix.texi:4568
 msgid "Inferior packages can be used transparently like any other package or file-like object in G-expressions (@pxref{G-Expressions}).  They are also transparently handled by the @code{packages->manifest} procedure, which is commonly use in manifests (@pxref{Invoking guix package, the @option{--manifest} option of @command{guix package}}).  Thus you can insert an inferior package pretty much anywhere you would insert a regular package: in manifests, in the @code{packages} field of your @code{operating-system} declaration, and so on."
-msgstr "Untergeordnete Pakete können transparent wie jedes andere Paket oder dateiartige Objekt in G-Ausdrücken verwendet werden (siehe @ref{G-Expressions}). Sie werden auch transparent wie reguläre Pakete von der Prozedur @code{packages->manifest} behandelt, welche oft in Manifesten benutzt wird (siehe @ref{Invoking guix package, siehe die Befehlszeilenoption @option{--manifest} von @command{guix package}}). Somit können Sie ein untergeordnetes Paket ziemlich überall dort verwenden, wo Sie ein reguläres Paket einfügen würden: in Manifesten, im Feld @code{packages} Ihrer @code{operating-system}-Deklaration und so weiter."
+msgstr "Untergeordnete Pakete können transparent wie jedes andere Paket oder dateiartige Objekt in G-Ausdrücken verwendet werden (siehe @ref{G-Expressions}). Sie werden auch transparent wie reguläre Pakete von der Prozedur @code{packages->manifest} behandelt, welche oft in Manifesten benutzt wird (siehe @ref{Invoking guix package, die Befehlszeilenoption @option{--manifest} von @command{guix package}}). Somit können Sie ein untergeordnetes Paket ziemlich überall dort verwenden, wo Sie ein reguläres Paket einfügen würden: in Manifesten, im Feld @code{packages} Ihrer @code{operating-system}-Deklaration und so weiter."
 
 #. type: section
-#: doc/guix.texi:4390
+#: doc/guix.texi:4570
 #, no-wrap
 msgid "Invoking @command{guix describe}"
 msgstr "@command{guix describe} aufrufen"
 
 #. type: Plain text
-#: doc/guix.texi:4401
+#: doc/guix.texi:4581
 msgid "Often you may want to answer questions like: ``Which revision of Guix am I using?'' or ``Which channels am I using?'' This is useful information in many situations: if you want to @emph{replicate} an environment on a different machine or user account, if you want to report a bug or to determine what change in the channels you are using caused it, or if you want to record your system state for reproducibility purposes.  The @command{guix describe} command answers these questions."
 msgstr "Sie könnten sich des Öfteren Fragen stellen wie: „Welche Version von Guix benutze ich gerade?“ oder „Welche Kanäle benutze ich?“ Diese Informationen sind in vielen Situationen nützlich: wenn Sie eine Umgebung auf einer anderen Maschine oder mit einem anderen Benutzerkonto @emph{nachbilden} möchten, wenn Sie einen Fehler melden möchten, wenn Sie festzustellen versuchen, welche Änderung an den von Ihnen verwendeten Kanälen diesen Fehler verursacht hat, oder wenn Sie Ihren Systemzustand zum Zweck der Reproduzierbarkeit festhalten möchten. Der Befehl @command{guix describe} gibt Ihnen Antwort auf diese Fragen."
 
 #. type: Plain text
-#: doc/guix.texi:4405
+#: doc/guix.texi:4585
 msgid "When run from a @command{guix pull}ed @command{guix}, @command{guix describe} displays the channel(s) that it was built from, including their repository URL and commit IDs (@pxref{Channels}):"
 msgstr "Wenn Sie ihn aus einem mit @command{guix pull} bezogenen @command{guix} heraus ausführen, zeigt Ihnen @command{guix describe} die Kanäle an, aus denen es erstellt wurde, jeweils mitsamt ihrer Repository-URL und Commit-ID (siehe @ref{Channels}):"
 
 #. type: example
-#: doc/guix.texi:4413
+#: doc/guix.texi:4593
 #, no-wrap
 msgid ""
 "$ guix describe\n"
@@ -9749,17 +10327,17 @@ msgstr ""
 "    commit: e0fa68c7718fffd33d81af415279d6ddb518f727\n"
 
 #. type: Plain text
-#: doc/guix.texi:4422
+#: doc/guix.texi:4602
 msgid "If you're familiar with the Git version control system, this is similar in spirit to @command{git describe}; the output is also similar to that of @command{guix pull --list-generations}, but limited to the current generation (@pxref{Invoking guix pull, the @option{--list-generations} option}).  Because the Git commit ID shown above unambiguously refers to a snapshot of Guix, this information is all it takes to describe the revision of Guix you're using, and also to replicate it."
 msgstr "Wenn Sie mit dem Versionskontrollsystem Git vertraut sind, erkennen Sie vielleicht die Ähnlichkeit zu @command{git describe}; die Ausgabe ähnelt auch der von @command{guix pull --list-generations} eingeschränkt auf die aktuelle Generation (siehe @ref{Invoking guix pull, die Befehlszeilenoption @option{--list-generations}}). Weil die oben gezeigte Git-Commit-ID eindeutig eine bestimmte Version von Guix bezeichnet, genügt diese Information, um die von Ihnen benutzte Version von Guix zu beschreiben, und auch, um sie nachzubilden."
 
 #. type: Plain text
-#: doc/guix.texi:4425
+#: doc/guix.texi:4605
 msgid "To make it easier to replicate Guix, @command{guix describe} can also be asked to return a list of channels instead of the human-readable description above:"
 msgstr "Damit es leichter ist, Guix nachzubilden, kann Ihnen @command{guix describe} auch eine Liste der Kanäle statt einer menschenlesbaren Beschreibung wie oben liefern:"
 
 #. type: example
-#: doc/guix.texi:4433
+#: doc/guix.texi:4618
 #, no-wrap
 msgid ""
 "$ guix describe -f channels\n"
@@ -9767,170 +10345,208 @@ msgid ""
 "        (name 'guix)\n"
 "        (url \"https://git.savannah.gnu.org/git/guix.git\")\n"
 "        (commit\n"
-"          \"e0fa68c7718fffd33d81af415279d6ddb518f727\")))\n"
+"          \"e0fa68c7718fffd33d81af415279d6ddb518f727\")\n"
+"        (introduction\n"
+"          (make-channel-introduction\n"
+"            \"9edb3f66fd807b096b48283debdcddccfea34bad\"\n"
+"            (openpgp-fingerprint\n"
+"              \"BBB0 2DDF 2CEA F6A8 0D1D  E643 A2A0 6DF2 A33A 54FA\")))))\n"
 msgstr ""
 "$ guix describe -f channels\n"
 "(list (channel\n"
 "        (name 'guix)\n"
 "        (url \"https://git.savannah.gnu.org/git/guix.git\")\n"
 "        (commit\n"
-"          \"e0fa68c7718fffd33d81af415279d6ddb518f727\")))\n"
+"          \"e0fa68c7718fffd33d81af415279d6ddb518f727\")\n"
+"        (introduction\n"
+"          (make-channel-introduction\n"
+"            \"9edb3f66fd807b096b48283debdcddccfea34bad\"\n"
+"            (openpgp-fingerprint\n"
+"              \"BBB0 2DDF 2CEA F6A8 0D1D  E643 A2A0 6DF2 A33A 54FA\")))))\n"
 
 #. type: Plain text
-#: doc/guix.texi:4442
+#: doc/guix.texi:4627
 msgid "You can save this to a file and feed it to @command{guix pull -C} on some other machine or at a later point in time, which will instantiate @emph{this exact Guix revision} (@pxref{Invoking guix pull, the @option{-C} option}).  From there on, since you're able to deploy the same revision of Guix, you can just as well @emph{replicate a complete software environment}.  We humbly think that this is @emph{awesome}, and we hope you'll like it too!"
 msgstr "Sie können die Ausgabe in einer Datei speichern, die Sie an @command{guix pull -C} auf einer anderen Maschine oder zu einem späteren Zeitpunkt übergeben, wodurch dann eine Instanz @emph{von genau derselben Guix-Version} installiert wird (siehe @ref{Invoking guix pull, die Befehlszeilenoption @option{-C}}). Daraufhin können Sie, weil Sie jederzeit dieselbe Version von Guix installieren können, auch gleich @emph{eine vollständige Softwareumgebung genau nachbilden}. Wir halten das trotz aller Bescheidenheit für @emph{klasse} und hoffen, dass Ihnen das auch gefällt!"
 
 #. type: Plain text
-#: doc/guix.texi:4445
+#: doc/guix.texi:4630
 msgid "The details of the options supported by @command{guix describe} are as follows:"
 msgstr "Die genauen Befehlszeilenoptionen, die @command{guix describe} unterstützt, lauten wie folgt:"
 
 #. type: item
-#: doc/guix.texi:4447 doc/guix.texi:5110
+#: doc/guix.texi:4632 doc/guix.texi:5838
 #, no-wrap
 msgid "--format=@var{format}"
 msgstr "--format=@var{Format}"
 
 #. type: itemx
-#: doc/guix.texi:4448 doc/guix.texi:5111
+#: doc/guix.texi:4633 doc/guix.texi:5839
 #, no-wrap
 msgid "-f @var{format}"
 msgstr "-f @var{Format}"
 
 #. type: table
-#: doc/guix.texi:4450
+#: doc/guix.texi:4635
 msgid "Produce output in the specified @var{format}, one of:"
 msgstr "Die Ausgabe im angegebenen @var{Format} generieren, was eines der Folgenden sein muss:"
 
 #. type: item
-#: doc/guix.texi:4452
+#: doc/guix.texi:4637
 #, no-wrap
 msgid "human"
 msgstr "human"
 
 #. type: table
-#: doc/guix.texi:4454
+#: doc/guix.texi:4639
 msgid "produce human-readable output;"
 msgstr "für menschenlesbare Ausgabe,"
 
+#. type: cindex
+#: doc/guix.texi:4639 doc/guix.texi:4857
+#, no-wrap
+msgid "channels"
+msgstr "Kanäle"
+
 #. type: table
-#: doc/guix.texi:4458
+#: doc/guix.texi:4643
 msgid "produce a list of channel specifications that can be passed to @command{guix pull -C} or installed as @file{~/.config/guix/channels.scm} (@pxref{Invoking guix pull});"
 msgstr "eine Liste von Kanalspezifikationen erzeugen, die an @command{guix pull -C} übergeben werden oder als @file{~/.config/guix/channels.scm} eingesetzt werden können (siehe @ref{Invoking guix pull}),"
 
 #. type: item
-#: doc/guix.texi:4458 doc/guix.texi:9170
+#: doc/guix.texi:4643
+#, no-wrap
+msgid "channels-sans-intro"
+msgstr "channels-sans-intro"
+
+#. type: table
+#: doc/guix.texi:4649
+msgid "like @code{channels}, but omit the @code{introduction} field; use it to produce a channel specification suitable for Guix version 1.1.0 or earlier---the @code{introduction} field has to do with channel authentication (@pxref{Channels, Channel Authentication}) and is not supported by these older versions;"
+msgstr "verhält sich wie @code{channels}, aber ohne das @code{introduction}-Feld; benutzen Sie es, um eine Kanalspezifikation zu erzeugen, die für die Guix-Version 1.1.0 oder früher geeignet ist — das @code{introduction}-Feld ist für Kanalauthentifizierung gedacht (siehe @ref{Channels, Kanalauthentifizierung}), die von diesen älteren Versionen nicht unterstützt wird,"
+
+#. type: item
+#: doc/guix.texi:4649 doc/guix.texi:10991
 #, no-wrap
 msgid "json"
 msgstr "json"
 
 #. type: cindex
-#: doc/guix.texi:4459
+#: doc/guix.texi:4650
 #, no-wrap
 msgid "JSON"
 msgstr "JSON"
 
 #. type: table
-#: doc/guix.texi:4461
+#: doc/guix.texi:4652
 msgid "produce a list of channel specifications in JSON format;"
 msgstr "generiert eine Liste von Kanalspezifikationen im JSON-Format,"
 
 #. type: item
-#: doc/guix.texi:4461
+#: doc/guix.texi:4652
 #, no-wrap
 msgid "recutils"
 msgstr "recutils"
 
 #. type: table
-#: doc/guix.texi:4463
+#: doc/guix.texi:4654
 msgid "produce a list of channel specifications in Recutils format."
 msgstr "generiert eine Liste von Kanalspezifikationen im Recutils-Format."
 
+#. type: item
+#: doc/guix.texi:4656
+#, no-wrap
+msgid "--list-formats"
+msgstr "--list-formats"
+
 #. type: table
-#: doc/guix.texi:4468
+#: doc/guix.texi:4658
+msgid "Display available formats for @option{--format} option."
+msgstr "Verfügbare Formate für die Befehlszeilenoption @option{--format} anzeigen."
+
+#. type: table
+#: doc/guix.texi:4662
 msgid "Display information about @var{profile}."
 msgstr "Informationen über das @var{Profil} anzeigen."
 
 #. type: section
-#: doc/guix.texi:4471
+#: doc/guix.texi:4665
 #, no-wrap
 msgid "Invoking @command{guix archive}"
 msgstr "@command{guix archive} aufrufen"
 
 #. type: command{#1}
-#: doc/guix.texi:4473
+#: doc/guix.texi:4667
 #, no-wrap
 msgid "guix archive"
 msgstr "guix archive"
 
 #. type: cindex
-#: doc/guix.texi:4474
+#: doc/guix.texi:4668
 #, no-wrap
 msgid "archive"
 msgstr "Archivdateien"
 
 #. type: Plain text
-#: doc/guix.texi:4480
+#: doc/guix.texi:4674
 msgid "The @command{guix archive} command allows users to @dfn{export} files from the store into a single archive, and to later @dfn{import} them on a machine that runs Guix.  In particular, it allows store files to be transferred from one machine to the store on another machine."
 msgstr "Der Befehl @command{guix archive} ermöglicht es Nutzern, Dateien im Store in eine einzelne Archivdatei zu @dfn{exportieren} und diese später auf einer Maschine, auf der Guix läuft, zu @dfn{importieren}. Insbesondere können so Store-Objekte von einer Maschine in den Store einer anderen Maschine übertragen werden."
 
 #. type: quotation
-#: doc/guix.texi:4484
+#: doc/guix.texi:4678
 msgid "If you're looking for a way to produce archives in a format suitable for tools other than Guix, @pxref{Invoking guix pack}."
 msgstr "Wenn Sie nach einer Möglichkeit suchen, Archivdateien für andere Werkzeuge als Guix zu erstellen, finden Sie Informationen dazu im Abschnitt @ref{Invoking guix pack}."
 
 #. type: cindex
-#: doc/guix.texi:4486
+#: doc/guix.texi:4680
 #, no-wrap
 msgid "exporting store items"
 msgstr "Store-Objekte exportieren"
 
 #. type: Plain text
-#: doc/guix.texi:4488
+#: doc/guix.texi:4682
 msgid "To export store files as an archive to standard output, run:"
 msgstr "Führen Sie Folgendes aus, um Store-Dateien als ein Archiv auf die Standardausgabe zu exportieren:"
 
 #. type: example
-#: doc/guix.texi:4491
+#: doc/guix.texi:4685
 #, no-wrap
 msgid "guix archive --export @var{options} @var{specifications}...\n"
 msgstr "guix archive --export @var{Optionen} @var{Spezifikationen}…\n"
 
 #. type: Plain text
-#: doc/guix.texi:4498
+#: doc/guix.texi:4692
 msgid "@var{specifications} may be either store file names or package specifications, as for @command{guix package} (@pxref{Invoking guix package}).  For instance, the following command creates an archive containing the @code{gui} output of the @code{git} package and the main output of @code{emacs}:"
 msgstr "@var{Spezifikationen} sind dabei entweder die Namen von Store-Dateien oder Paketspezifikationen wie bei @command{guix package} (siehe @ref{Invoking guix package}). Zum Beispiel erzeugt der folgende Befehl ein Archiv der @code{gui}-Ausgabe des Pakets @code{git} sowie die Hauptausgabe von @code{emacs}:"
 
 #. type: example
-#: doc/guix.texi:4501
+#: doc/guix.texi:4695
 #, no-wrap
 msgid "guix archive --export git:gui /gnu/store/...-emacs-24.3 > great.nar\n"
 msgstr "guix archive --export git:gui /gnu/store/…-emacs-24.3 > groß.nar\n"
 
 #. type: Plain text
-#: doc/guix.texi:4506
+#: doc/guix.texi:4700
 msgid "If the specified packages are not built yet, @command{guix archive} automatically builds them.  The build process may be controlled with the common build options (@pxref{Common Build Options})."
 msgstr "Wenn die angegebenen Pakete noch nicht erstellt worden sind, werden sie durch @command{guix archive} automatisch erstellt. Der Erstellungsprozess kann durch die gemeinsamen Erstellungsoptionen gesteuert werden (siehe @ref{Common Build Options})."
 
 #. type: Plain text
-#: doc/guix.texi:4509
+#: doc/guix.texi:4703
 msgid "To transfer the @code{emacs} package to a machine connected over SSH, one would run:"
 msgstr "Um das @code{emacs}-Paket auf eine über SSH verbundene Maschine zu übertragen, würde man dies ausführen:"
 
 #. type: example
-#: doc/guix.texi:4512
+#: doc/guix.texi:4706
 #, no-wrap
 msgid "guix archive --export -r emacs | ssh the-machine guix archive --import\n"
 msgstr "guix archive --export -r emacs | ssh die-maschine guix archive --import\n"
 
 #. type: Plain text
-#: doc/guix.texi:4517
+#: doc/guix.texi:4711
 msgid "Similarly, a complete user profile may be transferred from one machine to another like this:"
 msgstr "Auf gleiche Art kann auch ein vollständiges Benutzerprofil von einer Maschine auf eine andere übertragen werden:"
 
 #. type: example
-#: doc/guix.texi:4521
+#: doc/guix.texi:4715
 #, no-wrap
 msgid ""
 "guix archive --export -r $(readlink -f ~/.guix-profile) | \\\n"
@@ -9940,202 +10556,219 @@ msgstr ""
 "  ssh die-maschine guix archive --import\n"
 
 #. type: Plain text
-#: doc/guix.texi:4531
-msgid "However, note that, in both examples, all of @code{emacs} and the profile as well as all of their dependencies are transferred (due to @code{-r}), regardless of what is already available in the store on the target machine.  The @code{--missing} option can help figure out which items are missing from the target store.  The @command{guix copy} command simplifies and optimizes this whole process, so this is probably what you should use in this case (@pxref{Invoking guix copy})."
-msgstr "Jedoch sollten Sie in beiden Beispielen beachten, dass alles, was zu @code{emacs}, dem Profil oder deren Abhängigkeiten (wegen @code{-r}) gehört, übertragen wird, egal ob es schon im Store der Zielmaschine vorhanden ist oder nicht. Mit der Befehlszeilenoption @code{--missing} lässt sich herausfinden, welche Objekte im Ziel-Store noch fehlen. Der Befehl @command{guix copy} vereinfacht und optimiert diesen gesamten Prozess, ist also, was Sie in diesem Fall wahrscheinlich eher benutzen wollten (siehe @ref{Invoking guix copy})."
+#: doc/guix.texi:4725
+msgid "However, note that, in both examples, all of @code{emacs} and the profile as well as all of their dependencies are transferred (due to @option{-r}), regardless of what is already available in the store on the target machine.  The @option{--missing} option can help figure out which items are missing from the target store.  The @command{guix copy} command simplifies and optimizes this whole process, so this is probably what you should use in this case (@pxref{Invoking guix copy})."
+msgstr "Jedoch sollten Sie in beiden Beispielen beachten, dass alles, was zu @code{emacs}, dem Profil oder deren Abhängigkeiten (wegen @option{-r}) gehört, übertragen wird, egal ob es schon im Store der Zielmaschine vorhanden ist oder nicht. Mit der Befehlszeilenoption @option{--missing} lässt sich herausfinden, welche Objekte im Ziel-Store noch fehlen. Der Befehl @command{guix copy} vereinfacht und optimiert diesen gesamten Prozess, ist also, was Sie in diesem Fall wahrscheinlich eher benutzen wollten (siehe @ref{Invoking guix copy})."
 
 #. type: cindex
-#: doc/guix.texi:4532
+#: doc/guix.texi:4726
 #, no-wrap
 msgid "nar, archive format"
 msgstr "Nar, Archivformat"
 
 #. type: cindex
-#: doc/guix.texi:4533
+#: doc/guix.texi:4727
 #, no-wrap
 msgid "normalized archive (nar)"
 msgstr "Normalisiertes Archiv (Nar)"
 
+#. type: cindex
+#: doc/guix.texi:4728
+#, no-wrap
+msgid "nar bundle, archive format"
+msgstr "Nar-Bündel, Archivformat"
+
 #. type: Plain text
-#: doc/guix.texi:4543
-msgid "Archives are stored in the ``normalized archive'' or ``nar'' format, which is comparable in spirit to `tar', but with differences that make it more appropriate for our purposes.  First, rather than recording all Unix metadata for each file, the nar format only mentions the file type (regular, directory, or symbolic link); Unix permissions and owner/group are dismissed.  Second, the order in which directory entries are stored always follows the order of file names according to the C locale collation order.  This makes archive production fully deterministic."
-msgstr "Archive werden als „Normalisiertes Archiv“, kurz „Nar“, formatiert. Diese Technik folgt einem ähnlichen Gedanken wie beim „tar“-Format, unterscheidet sich aber auf eine für unsere Zwecke angemessene Art. Erstens werden im Nar-Format nicht sämtliche Unix-Metadaten aller Dateien aufgenommen, sondern nur der Dateityp (ob es sich um eine reguläre Datei, ein Verzeichnis oder eine symbolische Verknüpfung handelt). Unix-Dateiberechtigungen sowie Besitzer und Gruppe werden nicht gespeichert. Zweitens entspricht die Reihenfolge, in der der Inhalt von Verzeichnissen abgelegt wird, immer der Reihenfolge, in der die Dateinamen gemäß der C-Locale sortiert würden. Dadurch wird die Erstellung von Archivdateien völlig deterministisch."
+#: doc/guix.texi:4733
+msgid "Each store item is written in the @dfn{normalized archive} or @dfn{nar} format (described below), and the output of @command{guix archive --export} (and input of @command{guix archive --import}) is a @dfn{nar bundle}."
+msgstr "Dabei wird jedes Store-Objekt als „normalisiertes Archiv“, kurz „Nar“, formatiert (was im Folgenden beschrieben wird) und die Ausgabe von @command{guix archive --export} (bzw.@: die Eingabe von @command{guix archive --import}) ist ein @dfn{Nar-Bündel}."
 
 #. type: Plain text
-#: doc/guix.texi:4549
+#: doc/guix.texi:4743
+msgid "The nar format is comparable in spirit to `tar', but with differences that make it more appropriate for our purposes.  First, rather than recording all Unix metadata for each file, the nar format only mentions the file type (regular, directory, or symbolic link); Unix permissions and owner/group are dismissed.  Second, the order in which directory entries are stored always follows the order of file names according to the C locale collation order.  This makes archive production fully deterministic."
+msgstr "Das Nar-Format folgt einem ähnlichen Gedanken wie beim „tar“-Format, unterscheidet sich aber auf eine für unsere Zwecke geeignetere Weise. Erstens werden im Nar-Format nicht sämtliche Unix-Metadaten aller Dateien aufgenommen, sondern nur der Dateityp (ob es sich um eine reguläre Datei, ein Verzeichnis oder eine symbolische Verknüpfung handelt). Unix-Dateiberechtigungen sowie Besitzer und Gruppe werden nicht gespeichert. Zweitens entspricht die Reihenfolge, in der der Inhalt von Verzeichnissen abgelegt wird, immer der Reihenfolge, in der die Dateinamen gemäß der C-Locale sortiert würden. Dadurch wird die Erstellung von Archivdateien völlig deterministisch."
+
+#. type: Plain text
+#: doc/guix.texi:4747
+msgid "That nar bundle format is essentially the concatenation of zero or more nars along with metadata for each store item it contains: its file name, references, corresponding derivation, and a digital signature."
+msgstr "Das Nar-Bündel-Format setzt sich im Prinzip aus null oder mehr aneinandergehängten Nars zusammen mit Metadaten für jedes enthaltene Store-Objekt, nämlich dessen Dateinamen, Referenzen, der zugehörigen Ableitung sowie einer digitalen Signatur."
+
+#. type: Plain text
+#: doc/guix.texi:4753
 msgid "When exporting, the daemon digitally signs the contents of the archive, and that digital signature is appended.  When importing, the daemon verifies the signature and rejects the import in case of an invalid signature or if the signing key is not authorized."
-msgstr "Beim Exportieren versieht der Daemon den Inhalt des Archivs mit einer digitalen Signatur, auch Beglaubigung genannt. Diese digitale Signatur wird an das Archiv angehängt. Beim Importieren verifiziert der Daemon die Signatur und lehnt den Import ab, falls die Signatur ungültig oder der signierende Schlüssel nicht autorisiert ist."
+msgstr "Beim Exportieren versieht der Daemon den Inhalt des Archivs mit einer digitalen Signatur, auch Beglaubigung genannt. Diese digitale Signatur wird an das Archiv angehängt. Beim Importieren verifiziert der Daemon die Signatur und lehnt den Import ab, falls die Signatur ungültig oder der Signierschlüssel nicht autorisiert ist."
 
 #. type: Plain text
-#: doc/guix.texi:4551
+#: doc/guix.texi:4755
 msgid "The main options are:"
 msgstr "Die wichtigsten Befehlszeilenoptionen sind:"
 
 #. type: item
-#: doc/guix.texi:4553
+#: doc/guix.texi:4757
 #, no-wrap
 msgid "--export"
 msgstr "--export"
 
 #. type: table
-#: doc/guix.texi:4556
-msgid "Export the specified store files or packages (see below.)  Write the resulting archive to the standard output."
+#: doc/guix.texi:4760
+msgid "Export the specified store files or packages (see below).  Write the resulting archive to the standard output."
 msgstr "Exportiert die angegebenen Store-Dateien oder Pakete (siehe unten) und schreibt das resultierende Archiv auf die Standardausgabe."
 
 #. type: table
-#: doc/guix.texi:4559
-msgid "Dependencies are @emph{not} included in the output, unless @code{--recursive} is passed."
-msgstr "Abhängigkeiten @emph{fehlen} in der Ausgabe, außer wenn @code{--recursive} angegeben wurde."
+#: doc/guix.texi:4763
+msgid "Dependencies are @emph{not} included in the output, unless @option{--recursive} is passed."
+msgstr "Abhängigkeiten @emph{fehlen} in der Ausgabe, außer wenn @option{--recursive} angegeben wurde."
 
 #. type: itemx
-#: doc/guix.texi:4560 doc/guix.texi:8945 doc/guix.texi:9047 doc/guix.texi:9072
-#: doc/guix.texi:9275 doc/guix.texi:9316 doc/guix.texi:9363 doc/guix.texi:9388
+#: doc/guix.texi:4764 doc/guix.texi:10768 doc/guix.texi:10870
+#: doc/guix.texi:10895 doc/guix.texi:11096 doc/guix.texi:11137
+#: doc/guix.texi:11184 doc/guix.texi:11209
 #, no-wrap
 msgid "-r"
 msgstr "-r"
 
 #. type: item
-#: doc/guix.texi:4561 doc/guix.texi:8944 doc/guix.texi:9046 doc/guix.texi:9071
-#: doc/guix.texi:9274 doc/guix.texi:9315 doc/guix.texi:9362 doc/guix.texi:9387
-#: doc/guix.texi:9439
+#: doc/guix.texi:4765 doc/guix.texi:10767 doc/guix.texi:10869
+#: doc/guix.texi:10894 doc/guix.texi:11095 doc/guix.texi:11136
+#: doc/guix.texi:11183 doc/guix.texi:11208 doc/guix.texi:11260
 #, no-wrap
 msgid "--recursive"
 msgstr "--recursive"
 
 #. type: table
-#: doc/guix.texi:4566
-msgid "When combined with @code{--export}, this instructs @command{guix archive} to include dependencies of the given items in the archive.  Thus, the resulting archive is self-contained: it contains the closure of the exported store items."
-msgstr "Zusammen mit @code{--export} wird @command{guix archive} hiermit angewiesen, Abhängigkeiten der angegebenen Objekte auch ins Archiv aufzunehmen. Das resultierende Archiv ist somit eigenständig; es enthält den Abschluss der exportierten Store-Objekte."
+#: doc/guix.texi:4770
+msgid "When combined with @option{--export}, this instructs @command{guix archive} to include dependencies of the given items in the archive.  Thus, the resulting archive is self-contained: it contains the closure of the exported store items."
+msgstr "Zusammen mit @option{--export} wird @command{guix archive} hiermit angewiesen, Abhängigkeiten der angegebenen Objekte auch ins Archiv aufzunehmen. Das resultierende Archiv ist somit eigenständig; es enthält den Abschluss der exportierten Store-Objekte."
 
 #. type: item
-#: doc/guix.texi:4567
+#: doc/guix.texi:4771
 #, no-wrap
 msgid "--import"
 msgstr "--import"
 
 #. type: table
-#: doc/guix.texi:4572
-msgid "Read an archive from the standard input, and import the files listed therein into the store.  Abort if the archive has an invalid digital signature, or if it is signed by a public key not among the authorized keys (see @code{--authorize} below.)"
-msgstr "Ein Archiv von der Standardeingabe lesen und darin enthaltende Dateien in den Store importieren. Der Import bricht ab, wenn das Archiv keine gültige digitale Signatur hat oder wenn es von einem öffentlichen Schlüssel signiert wurde, der keiner der autorisierten Schlüssel ist (siehe @code{--authorize} weiter unten)."
+#: doc/guix.texi:4776
+msgid "Read an archive from the standard input, and import the files listed therein into the store.  Abort if the archive has an invalid digital signature, or if it is signed by a public key not among the authorized keys (see @option{--authorize} below)."
+msgstr "Ein Archiv von der Standardeingabe lesen und darin enthaltende Dateien in den Store importieren. Der Import bricht ab, wenn das Archiv keine gültige digitale Signatur hat oder wenn es von einem öffentlichen Schlüssel signiert wurde, der keiner der autorisierten Schlüssel ist (siehe @option{--authorize} weiter unten)."
 
 #. type: item
-#: doc/guix.texi:4573
+#: doc/guix.texi:4777
 #, no-wrap
 msgid "--missing"
 msgstr "--missing"
 
 #. type: table
-#: doc/guix.texi:4577
+#: doc/guix.texi:4781
 msgid "Read a list of store file names from the standard input, one per line, and write on the standard output the subset of these files missing from the store."
 msgstr "Eine Liste der Store-Dateinamen von der Standardeingabe lesen, je ein Name pro Zeile, und auf die Standardausgabe die Teilmenge dieser Dateien schreiben, die noch nicht im Store vorliegt."
 
 #. type: item
-#: doc/guix.texi:4578
+#: doc/guix.texi:4782
 #, no-wrap
 msgid "--generate-key[=@var{parameters}]"
 msgstr "--generate-key[=@var{Parameter}]"
 
 #. type: cindex
-#: doc/guix.texi:4579
+#: doc/guix.texi:4783
 #, no-wrap
 msgid "signing, archives"
 msgstr "Signieren, von Archiven"
 
 #. type: table
-#: doc/guix.texi:4584
-msgid "Generate a new key pair for the daemon.  This is a prerequisite before archives can be exported with @code{--export}.  Note that this operation usually takes time, because it needs to gather enough entropy to generate the key pair."
-msgstr "Ein neues Schlüsselpaar für den Daemon erzeugen. Dies ist erforderlich, damit Archive mit @code{--export} exportiert werden können. Beachten Sie, dass diese Option normalerweise einige Zeit in Anspruch nimmt, da erst Entropie für die Erzeugung des Schlüsselpaares gesammelt werden muss."
+#: doc/guix.texi:4790
+msgid "Generate a new key pair for the daemon.  This is a prerequisite before archives can be exported with @option{--export}.  This operation is usually instantaneous but it can take time if the system's entropy pool needs to be refilled.  On Guix System, @code{guix-service-type} takes care of generating this key pair the first boot."
+msgstr "Ein neues Schlüsselpaar für den Daemon erzeugen. Dies ist erforderlich, damit Archive mit @option{--export} exportiert werden können. Normalerweise wird diese Option sofort umgesetzt, jedoch kann sie, wenn erst der Entropie-Pool neu gefüllt werden muss, einige Zeit in Anspruch nehmen. Auf Guix System kümmert sich der @code{guix-service-type} darum, dass beim ersten Systemstart das Schlüsselpaar erzeugt wird."
 
 #. type: table
-#: doc/guix.texi:4594
-msgid "The generated key pair is typically stored under @file{/etc/guix}, in @file{signing-key.pub} (public key) and @file{signing-key.sec} (private key, which must be kept secret.)  When @var{parameters} is omitted, an ECDSA key using the Ed25519 curve is generated, or, for Libgcrypt versions before 1.6.0, it is a 4096-bit RSA key.  Alternatively, @var{parameters} can specify @code{genkey} parameters suitable for Libgcrypt (@pxref{General public-key related Functions, @code{gcry_pk_genkey},, gcrypt, The Libgcrypt Reference Manual})."
-msgstr "Das erzeugte Schlüsselpaar wird typischerweise unter @file{/etc/guix} gespeichert, in den Dateien @file{signing-key.pub} (für den öffentlichen Schlüssel) und @file{signing-key.sec} (für den privaten Schlüssel, der geheim gehalten werden muss). Wurden keine @var{Parameters} angegeben, wird ein ECDSA-Schlüssel unter Verwendung der Kurve Ed25519 erzeugt, oder, falls die Libgcrypt-Version älter als 1.6.0 ist, ein 4096-Bit-RSA-Schlüssel. Sonst geben die @var{Parameter} für Libgcrypt geeignete Parameter für @code{genkey} an (siehe @ref{General public-key related Functions, @code{gcry_pk_genkey},, gcrypt, The Libgcrypt Reference Manual})."
+#: doc/guix.texi:4800
+msgid "The generated key pair is typically stored under @file{/etc/guix}, in @file{signing-key.pub} (public key) and @file{signing-key.sec} (private key, which must be kept secret).  When @var{parameters} is omitted, an ECDSA key using the Ed25519 curve is generated, or, for Libgcrypt versions before 1.6.0, it is a 4096-bit RSA key.  Alternatively, @var{parameters} can specify @code{genkey} parameters suitable for Libgcrypt (@pxref{General public-key related Functions, @code{gcry_pk_genkey},, gcrypt, The Libgcrypt Reference Manual})."
+msgstr "Das erzeugte Schlüsselpaar wird typischerweise unter @file{/etc/guix} gespeichert, in den Dateien @file{signing-key.pub} (für den öffentlichen Schlüssel) und @file{signing-key.sec} (für den privaten Schlüssel, der geheim gehalten werden muss). Wurden keine @var{Parameters} angegeben, wird ein ECDSA-Schlüssel unter Verwendung der Kurve Ed25519 erzeugt, oder, falls die Libgcrypt-Version älter als 1.6.0 ist, ein 4096-Bit-RSA-Schlüssel. Sonst geben die @var{Parameter} für Libgcrypt geeignete Parameter für @code{genkey} an (siehe @ref{General public-key related Functions, @code{gcry_pk_genkey},, gcrypt, Referenzhandbuch von Libgcrypt})."
 
 #. type: item
-#: doc/guix.texi:4595
+#: doc/guix.texi:4801
 #, no-wrap
 msgid "--authorize"
 msgstr "--authorize"
 
 #. type: cindex
-#: doc/guix.texi:4596
+#: doc/guix.texi:4802
 #, no-wrap
 msgid "authorizing, archives"
 msgstr "Autorisieren, von Archiven"
 
 #. type: table
-#: doc/guix.texi:4600
+#: doc/guix.texi:4806
 msgid "Authorize imports signed by the public key passed on standard input.  The public key must be in ``s-expression advanced format''---i.e., the same format as the @file{signing-key.pub} file."
 msgstr "Mit dem auf der Standardeingabe übergebenen öffentlichen Schlüssel signierte Importe autorisieren. Der öffentliche Schlüssel muss als „advanced“-formatierter S-Ausdruck gespeichert sein, d.h.@: im selben Format wie die Datei @file{signing-key.pub}."
 
 #. type: table
-#: doc/guix.texi:4607
+#: doc/guix.texi:4813
 msgid "The list of authorized keys is kept in the human-editable file @file{/etc/guix/acl}.  The file contains @url{https://people.csail.mit.edu/rivest/Sexp.txt, ``advanced-format s-expressions''} and is structured as an access-control list in the @url{https://theworld.com/~cme/spki.txt, Simple Public-Key Infrastructure (SPKI)}."
 msgstr "Die Liste autorisierter Schlüssel wird in der Datei @file{/etc/guix/acl} gespeichert, die auch von Hand bearbeitet werden kann. Die Datei enthält @url{https://people.csail.mit.edu/rivest/Sexp.txt, „advanced“-formatierte S-Ausdrücke} und ist als eine Access Control List für die @url{https://theworld.com/~cme/spki.txt, Simple Public-Key Infrastructure (SPKI)} aufgebaut."
 
 #. type: item
-#: doc/guix.texi:4608
+#: doc/guix.texi:4814
 #, no-wrap
 msgid "--extract=@var{directory}"
 msgstr "--extract=@var{Verzeichnis}"
 
 #. type: itemx
-#: doc/guix.texi:4609
+#: doc/guix.texi:4815
 #, no-wrap
 msgid "-x @var{directory}"
 msgstr "-x @var{Verzeichnis}"
 
 #. type: table
-#: doc/guix.texi:4613
+#: doc/guix.texi:4819
 msgid "Read a single-item archive as served by substitute servers (@pxref{Substitutes}) and extract it to @var{directory}.  This is a low-level operation needed in only very narrow use cases; see below."
 msgstr "Ein Archiv mit einem einzelnen Objekt lesen, wie es von Substitutservern geliefert wird (siehe @ref{Substitutes}), und ins @var{Verzeichnis} entpacken. Dies ist eine systemnahe Operation, die man nur selten direkt benutzt; siehe unten."
 
 #. type: table
-#: doc/guix.texi:4616
+#: doc/guix.texi:4822
 msgid "For example, the following command extracts the substitute for Emacs served by @code{@value{SUBSTITUTE-SERVER}} to @file{/tmp/emacs}:"
 msgstr "Zum Beispiel entpackt folgender Befehl das Substitut für Emacs, wie es von @code{@value{SUBSTITUTE-SERVER}} geliefert wird, nach @file{/tmp/emacs}:"
 
 #. type: example
-#: doc/guix.texi:4621
+#: doc/guix.texi:4827
 #, no-wrap
 msgid ""
 "$ wget -O - \\\n"
-"  https://@value{SUBSTITUTE-SERVER}/nar/@dots{}-emacs-24.5 \\\n"
-"  | bunzip2 | guix archive -x /tmp/emacs\n"
+"  https://@value{SUBSTITUTE-SERVER}/nar/gzip/@dots{}-emacs-24.5 \\\n"
+"  | gunzip | guix archive -x /tmp/emacs\n"
 msgstr ""
 "$ wget -O - \\\n"
-"  https://@value{SUBSTITUTE-SERVER}/nar/…-emacs-24.5 \\\n"
-"  | bunzip2 | guix archive -x /tmp/emacs\n"
+"  https://@value{SUBSTITUTE-SERVER}/nar/gzip/…-emacs-24.5 \\\n"
+"  | gunzip | guix archive -x /tmp/emacs\n"
 
 #. type: table
-#: doc/guix.texi:4628
+#: doc/guix.texi:4834
 msgid "Single-item archives are different from multiple-item archives produced by @command{guix archive --export}; they contain a single store item, and they do @emph{not} embed a signature.  Thus this operation does @emph{no} signature verification and its output should be considered unsafe."
 msgstr "Archive mit nur einem einzelnen Objekt unterscheiden sich von Archiven für mehrere Dateien, wie sie @command{guix archive --export} erzeugt; sie enthalten nur ein einzelnes Store-Objekt und @emph{keine} eingebettete Signatur. Beim Entpacken findet also @emph{keine} Signaturprüfung statt und ihrer Ausgabe sollte so erst einmal nicht vertraut werden."
 
 #. type: table
-#: doc/guix.texi:4631
-msgid "The primary purpose of this operation is to facilitate inspection of archive contents coming from possibly untrusted substitute servers."
-msgstr "Der eigentliche Zweck dieser Operation ist, die Inspektion von Archivinhalten von Substitutservern möglich zu machen, auch wenn diesen unter Umständen nicht vertraut wird."
+#: doc/guix.texi:4838
+msgid "The primary purpose of this operation is to facilitate inspection of archive contents coming from possibly untrusted substitute servers (@pxref{Invoking guix challenge})."
+msgstr "Der eigentliche Zweck dieser Operation ist, die Inspektion von Archivinhalten von Substitutservern möglich zu machen, auch wenn diesen unter Umständen nicht vertraut wird (siehe @ref{Invoking guix challenge})."
 
 #. type: item
-#: doc/guix.texi:4632
+#: doc/guix.texi:4839
 #, no-wrap
 msgid "--list"
 msgstr "--list"
 
 #. type: itemx
-#: doc/guix.texi:4633 doc/guix.texi:9262 doc/guix.texi:9309
+#: doc/guix.texi:4840 doc/guix.texi:11083 doc/guix.texi:11130
 #, no-wrap
 msgid "-t"
 msgstr "-t"
 
 #. type: table
-#: doc/guix.texi:4637
+#: doc/guix.texi:4844
 msgid "Read a single-item archive as served by substitute servers (@pxref{Substitutes}) and print the list of files it contains, as in this example:"
 msgstr "Ein Archiv mit einem einzelnen Objekt lesen, wie es von Substitutservern geliefert wird (siehe @ref{Substitutes}), und die Dateien darin ausgeben, wie in diesem Beispiel:"
 
 #. type: example
-#: doc/guix.texi:4642
+#: doc/guix.texi:4849
 #, no-wrap
 msgid ""
 "$ wget -O - \\\n"
@@ -10147,91 +10780,738 @@ msgstr ""
 "  | lzip -d | guix archive -t\n"
 
 #. type: cindex
-#: doc/guix.texi:4651
+#: doc/guix.texi:4860
+#, no-wrap
+msgid "@command{guix pull}, configuration file"
+msgstr "@command{guix pull}, Konfigurationsdatei"
+
+#. type: cindex
+#: doc/guix.texi:4861
+#, no-wrap
+msgid "configuration of @command{guix pull}"
+msgstr "Konfiguration von @command{guix pull}"
+
+#. type: Plain text
+#: doc/guix.texi:4872
+msgid "Guix and its package collection are updated by running @command{guix pull} (@pxref{Invoking guix pull}).  By default @command{guix pull} downloads and deploys Guix itself from the official GNU@tie{}Guix repository.  This can be customized by defining @dfn{channels} in the @file{~/.config/guix/channels.scm} file.  A channel specifies a URL and branch of a Git repository to be deployed, and @command{guix pull} can be instructed to pull from one or more channels.  In other words, channels can be used to @emph{customize} and to @emph{extend} Guix, as we will see below.  Guix is able to take into account security concerns and deal with authenticated updates."
+msgstr "Guix und die Sammlung darin verfügbarer Pakete können Sie durch Ausführen von @command{guix pull} aktualisieren (siehe @ref{Invoking guix pull}). Standardmäßig lädt @command{guix pull} Guix selbst vom offiziellen Repository von GNU@tie{}Guix herunter und installiert es. Diesen Vorgang können Sie anpassen, indem Sie @dfn{Kanäle} in der Datei @file{~/.config/guix/channels.scm} angeben. Ein Kanal enthält eine Angabe einer URL und eines Branches eines zu installierenden Git-Repositorys. Sie können @command{guix pull} veranlassen, die Aktualisierungen von einem oder mehreren Kanälen zu beziehen. Mit anderen Worten können Kanäle benutzt werden, um Guix @emph{anzupassen} und zu @emph{erweitern}, wie wir im Folgenden sehen werden. Guix ist in der Lage, dabei Sicherheitsbedenken zu berücksichtigen und Aktualisierungen zu authentifizieren."
+
+#. type: cindex
+#: doc/guix.texi:4889
+#, no-wrap
+msgid "extending the package collection (channels)"
+msgstr "Paketsammlung erweitern (Kanäle)"
+
+#. type: cindex
+#: doc/guix.texi:4890
+#, no-wrap
+msgid "variant packages (channels)"
+msgstr "Paketvarianten (Kanäle)"
+
+#. type: Plain text
+#: doc/guix.texi:4894
+msgid "You can specify @emph{additional channels} to pull from. To use a channel, write @code{~/.config/guix/channels.scm} to instruct @command{guix pull} to pull from it @emph{in addition} to the default Guix channel(s):"
+msgstr "Sie können auch @emph{weitere Kanäle} als Bezugsquelle angeben. Um einen Kanal zu benutzen, tragen Sie ihn in @code{~/.config/guix/channels.scm} ein, damit @command{guix pull} diesen Kanal @emph{zusätzlich} zu den standardmäßigen Guix-Kanälen als Paketquelle verwendet:"
+
+#. type: vindex
+#: doc/guix.texi:4895
+#, no-wrap
+msgid "%default-channels"
+msgstr "%default-channels"
+
+#. type: lisp
+#: doc/guix.texi:4902
+#, no-wrap
+msgid ""
+";; Add variant packages to those Guix provides.\n"
+"(cons (channel\n"
+"        (name 'variant-packages)\n"
+"        (url \"https://example.org/variant-packages.git\"))\n"
+"      %default-channels)\n"
+msgstr ""
+";; Paketvarianten zu denen von Guix dazunehmen.\n"
+"(cons (channel\n"
+"        (name 'paketvarianten)\n"
+"        (url \"https://example.org/variant-packages.git\"))\n"
+"      %default-channels)\n"
+
+#. type: Plain text
+#: doc/guix.texi:4912
+msgid "Note that the snippet above is (as always!)@: Scheme code; we use @code{cons} to add a channel the list of channels that the variable @code{%default-channels} is bound to (@pxref{Pairs, @code{cons} and lists,, guile, GNU Guile Reference Manual}).  With this file in place, @command{guix pull} builds not only Guix but also the package modules from your own repository.  The result in @file{~/.config/guix/current} is the union of Guix with your own package modules:"
+msgstr "Beachten Sie, dass der obige Schnipsel (wie immer!)@: Scheme-Code ist; mit @code{cons} fügen wir einen Kanal zur Liste der Kanäle hinzu, an die die Variable @code{%default-channels} gebunden ist (siehe @ref{Pairs, @code{cons} and lists,, guile, Referenzhandbuch zu GNU Guile}). Mit diesem Dateiinhalt wird @command{guix pull} nun nicht mehr nur Guix, sondern auch die Paketmodule aus Ihrem Repository erstellen. Das Ergebnis in @file{~/.config/guix/current} ist so die Vereinigung von Guix und Ihren eigenen Paketmodulen."
+
+#. type: example
+#: doc/guix.texi:4927
+#, no-wrap
+msgid ""
+"$ guix pull --list-generations\n"
+"@dots{}\n"
+"Generation 19\tAug 27 2018 16:20:48\n"
+"  guix d894ab8\n"
+"    repository URL: https://git.savannah.gnu.org/git/guix.git\n"
+"    branch: master\n"
+"    commit: d894ab8e9bfabcefa6c49d9ba2e834dd5a73a300\n"
+"  variant-packages dd3df5e\n"
+"    repository URL: https://example.org/variant-packages.git\n"
+"    branch: master\n"
+"    commit: dd3df5e2c8818760a8fc0bd699e55d3b69fef2bb\n"
+"  11 new packages: variant-gimp, variant-emacs-with-cool-features, @dots{}\n"
+"  4 packages upgraded: emacs-racket-mode@@0.0.2-2.1b78827, @dots{}\n"
+msgstr ""
+"$ guix pull --list-generations\n"
+"…\n"
+"Generation 19\tAug 27 2018 16:20:48\n"
+"  guix d894ab8\n"
+"    repository URL: https://git.savannah.gnu.org/git/guix.git\n"
+"    branch: master\n"
+"    commit: d894ab8e9bfabcefa6c49d9ba2e834dd5a73a300\n"
+"  paketvarianten dd3df5e\n"
+"    repository URL: https://example.org/variant-packages.git\n"
+"    branch: master\n"
+"    commit: dd3df5e2c8818760a8fc0bd699e55d3b69fef2bb\n"
+"  11 new packages: gimp-variante, emacs-variante-mit-coolen-features, …\n"
+"  4 packages upgraded: emacs-racket-mode@@0.0.2-2.1b78827, …\n"
+
+#. type: Plain text
+#: doc/guix.texi:4935
+msgid "The output of @command{guix pull} above shows that Generation@tie{}19 includes both Guix and packages from the @code{variant-personal-packages} channel.  Among the new and upgraded packages that are listed, some like @code{variant-gimp} and @code{variant-emacs-with-cool-features} might come from @code{variant-packages}, while others come from the Guix default channel."
+msgstr "Obige Ausgabe von @command{guix pull} zeigt an, dass Generation@tie{}19 sowohl Guix als auch Pakete aus dem Kanal @code{paketvarianten} enthält. Unter den aufgeführten neuen und aktualisierten Paketen kommen vielleicht manche wie @code{gimp-variante} und @code{emacs-variante-mit-coolen-features} aus @code{paketvarianten}, während andere aus dem Standard-Guix-Kanal kommen."
+
+#. type: Plain text
+#: doc/guix.texi:4944
+msgid "The channel called @code{guix} specifies where Guix itself---its command-line tools as well as its package collection---should be downloaded.  For instance, suppose you want to update from another copy of the Guix repository at @code{example.org}, and specifically the @code{super-hacks} branch, you can write in @code{~/.config/guix/channels.scm} this specification:"
+msgstr "Der Kanal namens @code{guix} gibt an, wovon Guix selbst — seine Befehlszeilenwerkzeuge und seine Paketsammlung — heruntergeladen werden sollen. Wenn Sie zum Beispiel mit einer anderen Kopie des Guix-Repositorys arbeiten möchten und diese auf @code{example.org} zu finden ist, und zwar im Branch namens @code{super-hacks}, dann schreiben Sie folgende Spezifikation in @code{~/.config/guix/channels.scm}:"
+
+#. type: lisp
+#: doc/guix.texi:4951
+#, no-wrap
+msgid ""
+";; Tell 'guix pull' to use another repo.\n"
+"(list (channel\n"
+"        (name 'guix)\n"
+"        (url \"https://example.org/another-guix.git\")\n"
+"        (branch \"super-hacks\")))\n"
+msgstr ""
+";; 'guix pull' ein anderes Repository benutzen lassen.\n"
+"(list (channel\n"
+"        (name 'guix)\n"
+"        (url \"https://example.org/anderes-guix.git\")\n"
+"        (branch \"super-hacks\")))\n"
+
+#. type: Plain text
+#: doc/guix.texi:4957
+msgid "From there on, @command{guix pull} will fetch code from the @code{super-hacks} branch of the repository at @code{example.org}.  The authentication concern is addressed below ((@pxref{Channel Authentication})."
+msgstr "Ab dann wird @command{guix pull} seinen Code vom Branch @code{super-hacks} des Repositorys auf @code{example.org} beziehen. Wie man dessen Autorisierung bewerkstelligt, können Sie im Folgenden lesen (siehe @ref{Channel Authentication})."
+
+#. type: Plain text
+#: doc/guix.texi:4968
+msgid "The @command{guix pull --list-generations} output above shows precisely which commits were used to build this instance of Guix.  We can thus replicate it, say, on another machine, by providing a channel specification in @file{~/.config/guix/channels.scm} that is ``pinned'' to these commits:"
+msgstr "Die Ausgabe von @command{guix pull --list-generations} oben zeigt genau, aus welchen Commits diese Guix-Instanz erstellt wurde. Wir können Guix so zum Beispiel auf einer anderen Maschine nachbilden, indem wir eine Kanalspezifikation in @file{~/.config/guix/channels.scm} angeben, die auf diese Commits „festgesetzt“ ist."
+
+#. type: lisp
+#: doc/guix.texi:4979
+#, no-wrap
+msgid ""
+";; Deploy specific commits of my channels of interest.\n"
+"(list (channel\n"
+"       (name 'guix)\n"
+"       (url \"https://git.savannah.gnu.org/git/guix.git\")\n"
+"       (commit \"6298c3ffd9654d3231a6f25390b056483e8f407c\"))\n"
+"      (channel\n"
+"       (name 'variant-packages)\n"
+"       (url \"https://example.org/variant-packages.git\")\n"
+"       (commit \"dd3df5e2c8818760a8fc0bd699e55d3b69fef2bb\")))\n"
+msgstr ""
+";; Ganz bestimmte Commits der relevanten Kanäle installieren.\n"
+"(list (channel\n"
+"       (name 'guix)\n"
+"       (url \"https://git.savannah.gnu.org/git/guix.git\")\n"
+"       (commit \"6298c3ffd9654d3231a6f25390b056483e8f407c\"))\n"
+"      (channel\n"
+"       (name 'paketvarianten)\n"
+"       (url \"https://example.org/variant-packages.git\")\n"
+"       (commit \"dd3df5e2c8818760a8fc0bd699e55d3b69fef2bb\")))\n"
+
+#. type: Plain text
+#: doc/guix.texi:4986
+msgid "The @command{guix describe --format=channels} command can even generate this list of channels directly (@pxref{Invoking guix describe}).  The resulting file can be used with the -C options of @command{guix pull} (@pxref{Invoking guix pull}) or @command{guix time-machine} (@pxref{Invoking guix time-machine})."
+msgstr "Der Befehl @command{guix describe --format=channels} kann diese Kanalliste sogar direkt erzeugen (siehe @ref{Invoking guix describe}). Die erzeugte Datei kann mit den @code{-C} genannten Befehlszeilenoptionen von @command{guix pull} (siehe @ref{Invoking guix pull}) oder von @command{guix time-machine} (siehe @ref{Invoking guix time-machine}) benutzt werden."
+
+#. type: Plain text
+#: doc/guix.texi:4993
+msgid "At this point the two machines run the @emph{exact same Guix}, with access to the @emph{exact same packages}.  The output of @command{guix build gimp} on one machine will be exactly the same, bit for bit, as the output of the same command on the other machine.  It also means both machines have access to all the source code of Guix and, transitively, to all the source code of every package it defines."
+msgstr "Somit läuft auf beiden Maschinen @emph{genau dasselbe Guix} und es hat Zugang zu @emph{genau denselben Paketen}. Die Ausgabe von @command{guix build gimp} auf der einen Maschine wird Bit für Bit genau dieselbe wie die desselben Befehls auf der anderen Maschine sein. Das bedeutet auch, dass beide Maschinen Zugang zum gesamten Quellcode von Guix und daher auch transitiv Zugang zum Quellcode jedes davon definierten Pakets haben."
+
+#. type: Plain text
+#: doc/guix.texi:4998
+msgid "This gives you super powers, allowing you to track the provenance of binary artifacts with very fine grain, and to reproduce software environments at will---some sort of ``meta reproducibility'' capabilities, if you will.  @xref{Inferiors}, for another way to take advantage of these super powers."
+msgstr "Das verleiht Ihnen Superkräfte, mit denen Sie die Provenienz binärer Artefakte sehr feinkörnig nachverfolgen können und Software-Umgebungen nach Belieben nachbilden können. Sie können es als eine Art Fähigkeit zur „Meta-Reproduzierbarkeit“ auffassen, wenn Sie möchten. Der Abschnitt @ref{Inferiors} beschreibt eine weitere Möglichkeit, diese Superkräfte zu nutzen."
+
+#. type: anchor{#1}
+#: doc/guix.texi:5003
+msgid "channel-authentication"
+msgstr "channel-authentication"
+
+#. type: Plain text
+#: doc/guix.texi:5009
+msgid "The @command{guix pull} and @command{guix time-machine} commands @dfn{authenticate} the code retrieved from channels: they make sure each commit that is fetched is signed by an authorized developer.  The goal is to protect from unauthorized modifications to the channel that would lead users to run malicious code."
+msgstr "Die Befehle @command{guix pull} und @command{guix time-machine} @dfn{authentifizieren} den von Kanälen bezogenen Code. Es wird geprüft, dass jeder geladene Commit von einem autorisierten Entwickler signiert wurde. Das Ziel ist, Sie vor unautorisierten Änderungen am Kanal, die Nutzer bösartigen Code ausführen lassen, zu schützen."
+
+#. type: Plain text
+#: doc/guix.texi:5014
+msgid "As a user, you must provide a @dfn{channel introduction} in your channels file so that Guix knows how to authenticate its first commit.  A channel specification, including its introduction, looks something along these lines:"
+msgstr "Als Nutzer müssen Sie eine @dfn{Kanaleinführung} („Channel Introduction“) in Ihrer Kanaldatei angeben, damit Guix weiß, wie der erste Commit authentifiziert werden kann. Eine Kanalspezifikation, zusammen mit seiner Einführung, sieht in etwa so aus:"
+
+#. type: lisp
+#: doc/guix.texi:5024
+#, no-wrap
+msgid ""
+"(channel\n"
+"  (name 'some-channel)\n"
+"  (url \"https://example.org/some-channel.git\")\n"
+"  (introduction\n"
+"   (make-channel-introduction\n"
+"    \"6f0d8cc0d88abb59c324b2990bfee2876016bb86\"\n"
+"    (openpgp-fingerprint\n"
+"     \"CABB A931 C0FF EEC6 900D  0CFB 090B 1199 3D9A EBB5\"))))\n"
+msgstr ""
+"(channel\n"
+"  (name 'ein-kanal)\n"
+"  (url \"https://example.org/ein-kanal.git\")\n"
+"  (introduction\n"
+"   (make-channel-introduction\n"
+"    \"6f0d8cc0d88abb59c324b2990bfee2876016bb86\"\n"
+"    (openpgp-fingerprint\n"
+"     \"CABB A931 C0FF EEC6 900D  0CFB 090B 1199 3D9A EBB5\"))))\n"
+
+#. type: Plain text
+#: doc/guix.texi:5030
+msgid "The specification above shows the name and URL of the channel.  The call to @code{make-channel-introduction} above specifies that authentication of this channel starts at commit @code{6f0d8cc@dots{}}, which is signed by the OpenPGP key with fingerprint @code{CABB A931@dots{}}."
+msgstr "Obige Spezifikation zeigt den Namen und die URL des Kanals. Der Aufruf von @code{make-channel-introduction}, den Sie oben sehen, gibt an, dass die Authentifizierung dieses Kanals bei Commit @code{6f0d8cc…} beginnt, welcher mit dem OpenPGP-Schlüssel mit Fingerabdruck @code{CABB A931…} signiert ist."
+
+#. type: Plain text
+#: doc/guix.texi:5036
+msgid "For the main channel, called @code{guix}, you automatically get that information from your Guix installation.  For other channels, include the channel introduction provided by the channel authors in your @file{channels.scm} file.  Make sure you retrieve the channel introduction from a trusted source since that is the root of your trust."
+msgstr "Für den Hauptkanal mit Namen @code{guix} bekommen Sie diese Informationen automatisch mit Ihrer Guix-Installation. Für andere Kanäle tragen Sie die Kanaleinführung, die Ihnen die Kanalautoren mitteilen, in die Datei @file{channels.scm} ein. Achten Sie dabei darauf, die Kanaleinführung von einer vertrauenswürdigen Quelle zu bekommen, denn sie stellt die Wurzel all Ihren Vertrauens dar."
+
+#. type: Plain text
+#: doc/guix.texi:5038
+msgid "If you're curious about the authentication mechanics, read on!"
+msgstr "Wenn Sie neugierig sind, wie die Authentifizierung funktioniert, lesen Sie weiter!"
+
+#. type: cindex
+#: doc/guix.texi:5042
+#, no-wrap
+msgid "personal packages (channels)"
+msgstr "Eigene Pakete (Kanäle)"
+
+#. type: cindex
+#: doc/guix.texi:5043
+#, no-wrap
+msgid "channels, for personal packages"
+msgstr "Kanäle, für eigene Pakete"
+
+#. type: Plain text
+#: doc/guix.texi:5051
+msgid "Let's say you have a bunch of custom package variants or personal packages that you think would make little sense to contribute to the Guix project, but would like to have these packages transparently available to you at the command line.  You would first write modules containing those package definitions (@pxref{Package Modules}), maintain them in a Git repository, and then you and anyone else can use it as an additional channel to get packages from.  Neat, no?"
+msgstr "Sagen wir, Sie haben ein paar eigene Paketvarianten oder persönliche Pakete, von denen Sie meinen, dass sie @emph{nicht} geeignet sind, ins Guix-Projekt selbst aufgenommen zu werden, die Ihnen aber dennoch wie andere Pakete auf der Befehlszeile zur Verfügung stehen sollen. Dann würden Sie zunächst Module mit diesen Paketdefinitionen schreiben (siehe @ref{Package Modules}) und diese dann in einem Git-Repository verwalten, welches Sie selbst oder jeder andere dann als zusätzlichen Kanal eintragen können, von dem Pakete geladen werden. Klingt gut, oder?"
+
+#. type: quotation
+#: doc/guix.texi:5055 doc/guix.texi:13173 doc/guix.texi:18777
+#: doc/guix.texi:18784
+#, no-wrap
+msgid "Warning"
+msgstr "Warnung"
+
+#. type: quotation
+#: doc/guix.texi:5059
+msgid "Before you, dear user, shout---``woow this is @emph{soooo coool}!''---and publish your personal channel to the world, we would like to share a few words of caution:"
+msgstr "Bevor Sie, verehrter Nutzer, ausrufen: „Wow, das ist @emph{soooo coool}!“, und Ihren eigenen Kanal der Welt zur Verfügung stellen, möchten wir Ihnen auch ein paar Worte der Warnung mit auf den Weg geben:"
+
+#. type: itemize
+#: doc/guix.texi:5067
+msgid "Before publishing a channel, please consider contributing your package definitions to Guix proper (@pxref{Contributing}).  Guix as a project is open to free software of all sorts, and packages in Guix proper are readily available to all Guix users and benefit from the project's quality assurance process."
+msgstr "Bevor Sie einen Kanal veröffentlichen, überlegen Sie sich bitte erst, ob Sie die Pakete nicht besser zum eigentlichen Guix-Projekt beisteuern (siehe @ref{Contributing}). Das Guix-Projekt ist gegenüber allen Arten freier Software offen und zum eigentlichen Guix gehörende Pakete stehen allen Guix-Nutzern zur Verfügung, außerdem profitieren sie von Guix’ Qualitätssicherungsprozess."
+
+#. type: itemize
+#: doc/guix.texi:5076
+msgid "When you maintain package definitions outside Guix, we, Guix developers, consider that @emph{the compatibility burden is on you}.  Remember that package modules and package definitions are just Scheme code that uses various programming interfaces (APIs).  We want to remain free to change these APIs to keep improving Guix, possibly in ways that break your channel.  We never change APIs gratuitously, but we will @emph{not} commit to freezing APIs either."
+msgstr "Wenn Sie Paketdefinitionen außerhalb von Guix betreuen, sehen wir Guix-Entwickler es als @emph{Ihre Aufgabe an, deren Kompatibilität sicherzstellen}. Bedenken Sie, dass Paketmodule und Paketdefinitionen nur Scheme-Code sind, der verschiedene Programmierschnittstellen (APIs) benutzt. Wir nehmen uns das Recht heraus, diese APIs jederzeit zu ändern, damit wir Guix besser machen können, womöglich auf eine Art, wodurch Ihr Kanal nicht mehr funktioniert. Wir ändern APIs nie einfach so, werden aber auch @emph{nicht} versprechen, APIs nicht zu verändern."
+
+#. type: itemize
+#: doc/guix.texi:5080
+msgid "Corollary: if you're using an external channel and that channel breaks, please @emph{report the issue to the channel authors}, not to the Guix project."
+msgstr "Das bedeutet auch, dass Sie, wenn Sie einen externen Kanal verwenden und dieser kaputt geht, Sie dies bitte @emph{den Autoren des Kanals} und nicht dem Guix-Projekt melden."
+
+#. type: quotation
+#: doc/guix.texi:5087
+msgid "You've been warned! Having said this, we believe external channels are a practical way to exert your freedom to augment Guix' package collection and to share your improvements, which are basic tenets of @uref{https://www.gnu.org/philosophy/free-sw.html, free software}.  Please email us at @email{guix-devel@@gnu.org} if you'd like to discuss this."
+msgstr "Wir haben Sie gewarnt! Allerdings denken wir auch, dass externe Kanäle eine praktische Möglichkeit sind, die Paketsammlung von Guix zu ergänzen und Ihre Verbesserungen mit anderen zu teilen, wie es dem Grundgedanken @uref{https://www.gnu.org/philosophy/free-sw.html, freier Software} entspricht. Bitte schicken Sie eine E-Mail an @email{guix-devel@@gnu.org}, wenn Sie dies diskutieren möchten."
+
+#. type: Plain text
+#: doc/guix.texi:5099
+msgid "To create a channel, create a Git repository containing your own package modules and make it available.  The repository can contain anything, but a useful channel will contain Guile modules that export packages.  Once you start using a channel, Guix will behave as if the root directory of that channel's Git repository has been added to the Guile load path (@pxref{Load Paths,,, guile, GNU Guile Reference Manual}).  For example, if your channel contains a file at @file{my-packages/my-tools.scm} that defines a Guile module, then the module will be available under the name @code{(my-packages my-tools)}, and you will be able to use it like any other module (@pxref{Modules,,, guile, GNU Guile Reference Manual})."
+msgstr "Um einen Kanal zu erzeugen, müssen Sie ein Git-Repository mit Ihren eigenen Paketmodulen erzeugen und den Zugriff darauf ermöglichen. Das Repository kann beliebigen Inhalt haben, aber wenn es ein nützlicher Kanal sein soll, muss es Guile-Module enthalten, die Pakete exportieren. Sobald Sie anfangen, einen Kanal zu benutzen, verhält sich Guix, als wäre das Wurzelverzeichnis des Git-Repositorys des Kanals in Guiles Ladepfad enthalten (siehe @ref{Load Paths,,, guile, Referenzhandbuch zu GNU Guile}). Wenn Ihr Kanal also zum Beispiel eine Datei als @file{my-packages/my-tools.scm} enthält, die ein Guile-Modul definiert, dann wird das Modul unter dem Namen @code{(my-packages my-tools)} verfügbar sein und Sie werden es wie jedes andere Modul benutzen können (siehe @ref{Modules,,, guile, Referenzhandbuch zu GNU Guile})."
+
+#. type: Plain text
+#: doc/guix.texi:5104
+msgid "As a channel author, consider bundling authentication material with your channel so that users can authenticate it.  @xref{Channel Authentication}, and @ref{Specifying Channel Authorizations}, for info on how to do it."
+msgstr "Als Kanalautor möchten Sie vielleicht Materialien mitliefern, damit dessen Nutzer ihn authentifizieren können. Siehe @ref{Channel Authentication} und @ref{Specifying Channel Authorizations} für Informationen, wie das geht."
+
+#. type: cindex
+#: doc/guix.texi:5109
+#, no-wrap
+msgid "subdirectory, channels"
+msgstr "Unterverzeichnis, Kanäle"
+
+#. type: Plain text
+#: doc/guix.texi:5113
+msgid "As a channel author, you may want to keep your channel modules in a sub-directory.  If your modules are in the sub-directory @file{guix}, you must add a meta-data file @file{.guix-channel} that contains:"
+msgstr "Als Kanalautor möchten Sie vielleicht Ihre Kanalmodule in einem Unterverzeichnis anlegen. Wenn sich Ihre Module im Unterverzeichnis @file{guix} befinden, müssen Sie eine Datei @file{.guix-channel} mit Metadaten einfügen:"
+
+#. type: lisp
+#: doc/guix.texi:5118
+#, no-wrap
+msgid ""
+"(channel\n"
+"  (version 0)\n"
+"  (directory \"guix\"))\n"
+msgstr ""
+"(channel\n"
+"  (version 0)\n"
+"  (directory \"guix\"))\n"
+
+#. type: cindex
+#: doc/guix.texi:5123
+#, no-wrap
+msgid "dependencies, channels"
+msgstr "Abhängigkeiten, bei Kanälen"
+
+#. type: cindex
+#: doc/guix.texi:5124
+#, no-wrap
+msgid "meta-data, channels"
+msgstr "Metadaten, bei Kanälen"
+
+#. type: Plain text
+#: doc/guix.texi:5129
+msgid "Channel authors may decide to augment a package collection provided by other channels.  They can declare their channel to be dependent on other channels in a meta-data file @file{.guix-channel}, which is to be placed in the root of the channel repository."
+msgstr "Kanalautoren können auch beschließen, die Paketsammlung von anderen Kanälen zu erweitern. Dazu können sie in einer Metadatendatei @file{.guix-channel} deklarieren, dass ihr Kanal von anderen Kanälen abhängt. Diese Datei muss im Wurzelverzeichnis des Kanal-Repositorys platziert werden."
+
+#. type: Plain text
+#: doc/guix.texi:5131
+msgid "The meta-data file should contain a simple S-expression like this:"
+msgstr "Die Metadatendatei sollte einen einfachen S-Ausdruck wie diesen enthalten:"
+
+#. type: lisp
+#: doc/guix.texi:5139
+#, no-wrap
+msgid ""
+"(channel\n"
+" (version 0)\n"
+" (dependencies\n"
+"  (channel\n"
+"   (name 'some-collection)\n"
+"   (url \"https://example.org/first-collection.git\")\n"
+"\n"
+msgstr ""
+"(channel\n"
+" (version 0)\n"
+" (dependencies\n"
+"  (channel\n"
+"   (name 'irgendeine-sammlung)\n"
+"   (url \"https://example.org/erste-sammlung.git\")\n"
+
+#. type: lisp
+#: doc/guix.texi:5151
+#, no-wrap
+msgid ""
+"   ;; The 'introduction' bit below is optional: you would\n"
+"   ;; provide it for dependencies that can be authenticated.\n"
+"   (introduction\n"
+"    (channel-introduction\n"
+"      (version 0)\n"
+"      (commit \"a8883b58dc82e167c96506cf05095f37c2c2c6cd\")\n"
+"      (signer \"CABB A931 C0FF EEC6 900D  0CFB 090B 1199 3D9A EBB5\"))))\n"
+"  (channel\n"
+"   (name 'some-other-collection)\n"
+"   (url \"https://example.org/second-collection.git\")\n"
+"   (branch \"testing\"))))\n"
+msgstr ""
+"   ;; Der Teil mit der 'introduction' hier ist optional. Sie geben hier\n"
+"   ;; die Kanaleinführung an, wenn diese Abhängigkeiten authentifiziert\n"
+"   ;; werden können.\n"
+"   (introduction\n"
+"    (channel-introduction\n"
+"      (version 0)\n"
+"      (commit \"a8883b58dc82e167c96506cf05095f37c2c2c6cd\")\n"
+"      (signer \"CABB A931 C0FF EEC6 900D  0CFB 090B 1199 3D9A EBB5\"))))\n"
+"  (channel\n"
+"   (name 'eine-andere-sammlung)\n"
+"   (url \"https://example.org/zweite-sammlung.git\")\n"
+"   (branch \"testing\"))))\n"
+
+#. type: Plain text
+#: doc/guix.texi:5157
+msgid "In the above example this channel is declared to depend on two other channels, which will both be fetched automatically.  The modules provided by the channel will be compiled in an environment where the modules of all these declared channels are available."
+msgstr "Im Beispiel oben wird deklariert, dass dieser Kanal von zwei anderen Kanälen abhängt, die beide automatisch geladen werden. Die vom Kanal angebotenen Module werden in einer Umgebung kompiliert, in der die Module all dieser deklarierten Kanäle verfügbar sind."
+
+#. type: Plain text
+#: doc/guix.texi:5161
+msgid "For the sake of reliability and maintainability, you should avoid dependencies on channels that you don't control, and you should aim to keep the number of dependencies to a minimum."
+msgstr "Um Verlässlichkeit und Wartbarkeit zu gewährleisten, sollten Sie darauf verzichten, eine Abhängigkeit von Kanälen herzustellen, die Sie nicht kontrollieren, außerdem sollten Sie sich auf eine möglichst kleine Anzahl von Abhängigkeiten beschränken."
+
+#. type: cindex
+#: doc/guix.texi:5165
+#, no-wrap
+msgid "channel authorizations"
+msgstr "Kanalautorisierungen"
+
+#. type: anchor{#1}
+#: doc/guix.texi:5179
+msgid "channel-authorizations"
+msgstr "channel-authorizations"
+
+#. type: Plain text
+#: doc/guix.texi:5179
+msgid "As we saw above, Guix ensures the source code it pulls from channels comes from authorized developers.  As a channel author, you need to specify the list of authorized developers in the @file{.guix-authorizations} file in the channel's Git repository.  The authentication rule is simple: each commit must be signed by a key listed in the @file{.guix-authorizations} file of its parent commit(s)@footnote{Git commits form a @dfn{directed acyclic graph} (DAG).  Each commit can have zero or more parents; ``regular'' commits have one parent and merge commits have two parent commits.  Read @uref{https://eagain.net/articles/git-for-computer-scientists/, @i{Git for Computer Scientists}} for a great overview.} The @file{.guix-authorizations} file looks like this:"
+msgstr "Wie wir oben gesehen haben, wird durch Guix sichergestellt, dass von Kanälen geladener Code von autorisierten Entwicklern stammt. Als Kanalautor müssen Sie die Liste der autorisierten Entwickler in der Datei @file{.guix-authorizations} im Git-Repository des Kanals festlegen. Die Regeln für die Authentifizierung sind einfach: Jeder Commit muss mit einem Schlüssel signiert sein, der in der Datei @file{.guix-authorizations} seines bzw.@: seiner Elterncommits steht@footnote{Git-Commits bilden einen @dfn{gerichteten azyklischen Graphen} (englisch „directed acyclic graph“, kurz DAG). Jeder Commit kann null oder mehr Eltern haben; in der Regel haben Commits einen Elterncommit, Mergecommits haben zwei. Lesen Sie @uref{https://eagain.net/articles/git-for-computer-scientists/, @i{Git for Computer Scientists}} für eine gelungene Übersicht.} Die Datei @file{.guix-authorizations} sieht so aus:"
+
+#. type: lisp
+#: doc/guix.texi:5182
+#, no-wrap
+msgid ""
+";; Example '.guix-authorizations' file.\n"
+"\n"
+msgstr ""
+";; Beispiel für eine '.guix-authorizations'-Datei.\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:5185
+#, no-wrap
+msgid ""
+"(authorizations\n"
+" (version 0)               ;current file format version\n"
+"\n"
+msgstr ""
+"(authorizations\n"
+" (version 0)               ;aktuelle Version des Dateiformats\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:5192
+#, no-wrap
+msgid ""
+" ((\"AD17 A21E F8AE D8F1 CC02  DBD9 F8AE D8F1 765C 61E3\"\n"
+"   (name \"alice\"))\n"
+"  (\"2A39 3FFF 68F4 EF7A 3D29  12AF 68F4 EF7A 22FB B2D5\"\n"
+"   (name \"bob\"))\n"
+"  (\"CABB A931 C0FF EEC6 900D  0CFB 090B 1199 3D9A EBB5\"\n"
+"   (name \"charlie\"))))\n"
+msgstr ""
+" ((\"AD17 A21E F8AE D8F1 CC02  DBD9 F8AE D8F1 765C 61E3\"\n"
+"   (name \"alice\"))\n"
+"  (\"2A39 3FFF 68F4 EF7A 3D29  12AF 68F4 EF7A 22FB B2D5\"\n"
+"   (name \"bob\"))\n"
+"  (\"CABB A931 C0FF EEC6 900D  0CFB 090B 1199 3D9A EBB5\"\n"
+"   (name \"charlie\"))))\n"
+
+#. type: Plain text
+#: doc/guix.texi:5196
+msgid "Each fingerprint is followed by optional key/value pairs, as in the example above.  Currently these key/value pairs are ignored."
+msgstr "Auf jeden Fingerabdruck folgen optional Schlüssel-/Wert-Paare wie im obigen Beispiel. Derzeit werden diese Schlüssel-/Wert-Paare ignoriert."
+
+#. type: Plain text
+#: doc/guix.texi:5201
+msgid "This authentication rule creates a chicken-and-egg issue: how do we authenticate the first commit? Related to that: how do we deal with channels whose repository history contains unsigned commits and lack @file{.guix-authorizations}? And how do we fork existing channels?"
+msgstr "Diese Authentifizierungsregel hat ein Henne-Ei-Problem zur Folge: Wie authentifizieren wir den ersten Commit? Und damit zusammenhängend: Was tun wir, wenn die Historie eines Kanal-Repositorys @emph{nicht} signierte Commits enthält und eine @file{.guix-authorizations}-Datei fehlt? Und wie legen wir eine Abspaltung („Fork“) existierender Kanäle an?"
+
+#. type: cindex
+#: doc/guix.texi:5202
+#, no-wrap
+msgid "channel introduction"
+msgstr "Kanaleinführung"
+
+#. type: Plain text
+#: doc/guix.texi:5209
+msgid "Channel introductions answer these questions by describing the first commit of a channel that should be authenticated.  The first time a channel is fetched with @command{guix pull} or @command{guix time-machine}, the command looks up the introductory commit and verifies that it is signed by the specified OpenPGP key.  From then on, it authenticates commits according to the rule above."
+msgstr "Kanaleinführungen beantworten diese Fragen, indem sie den ersten Commit eines Kanals angeben, der authentifiziert werden soll. Das erste Mal, wenn ein Kanal durch @command{guix pull} oder @command{guix time-machine} geladen wird, wird nachgeschaut, was der einführende Commit ist und ob er mit dem angegebenen OpenPGP-Schlüssel signiert wurde. Von da an werden Commits gemäß obiger Regel authentifiziert."
+
+#. type: Plain text
+#: doc/guix.texi:5216
+msgid "Additionally, your channel must provide all the OpenPGP keys that were ever mentioned in @file{.guix-authorizations}, stored as @file{.key} files, which can be either binary or ``ASCII-armored''.  By default, those @file{.key} files are searched for in the branch named @code{keyring} but you can specify a different branch name in @code{.guix-channel} like so:"
+msgstr "Außerdem muss Ihr Kanal alle OpenPGP-Schlüssel zur Verfügung stellen, die jemals in @file{.guix-authorizations} erwähnt wurden, gespeichert in Form von @file{.key}-Dateien, entweder als Binärdateien oder mit „ASCII-Hülle“. Nach Vorgabe wird nach diesen @file{.key}-Dateien im Branch namens @code{keyring} gesucht, aber Sie können wie hier einen anderen Branchnamen in @code{.guix-channel} angeben:"
+
+#. type: lisp
+#: doc/guix.texi:5221
+#, no-wrap
+msgid ""
+"(channel\n"
+"  (version 0)\n"
+"  (keyring-reference \"my-keyring-branch\"))\n"
+msgstr ""
+"(channel\n"
+"  (version 0)\n"
+"  (keyring-reference \"my-keyring-branch\"))\n"
+
+#. type: Plain text
+#: doc/guix.texi:5225
+msgid "To summarize, as the author of a channel, there are three things you have to do to allow users to authenticate your code:"
+msgstr "Zusammenfassen haben Kanalautoren drei Dinge zu tun, damit Nutzer deren Code authentifizieren können:"
+
+#. type: enumerate
+#: doc/guix.texi:5231
+msgid "Export the OpenPGP keys of past and present committers with @command{gpg --export} and store them in @file{.key} files, by default in a branch named @code{keyring} (we recommend making it an @dfn{orphan branch})."
+msgstr "Exportieren Sie die OpenPGP-Schlüssel früherer und aktueller Commiter mittels @command{gpg --export} und speichern Sie sie in @file{.key}-Dateien, nach Vorgabe gespeichert in einem Branch namens @code{keyring} (wir empfehlen, dass Sie diesen als einen @dfn{verwaisten Branch}, d.h.@: einen „Orphan Branch“, anlegen)."
+
+#. type: enumerate
+#: doc/guix.texi:5236
+msgid "Introduce an initial @file{.guix-authorizations} in the channel's repository.  Do that in a signed commit (@pxref{Commit Access}, for information on how to sign Git commits.)"
+msgstr "Sie müssen eine anfängliche @file{.guix-authorizations}-Datei im Kanalrepository platzieren. Der Commit dazu muss signiert sein (siehe @ref{Commit Access} für Informationen, wie Sie Git-Commits signieren)."
+
+#. type: enumerate
+#: doc/guix.texi:5242
+msgid "Advertise the channel introduction, for instance on your channel's web page.  The channel introduction, as we saw above, is the commit/key pair---i.e., the commit that introduced @file{.guix-authorizations}, and the fingerprint of the OpenPGP used to sign it."
+msgstr "Sie müssen veröffentlichen, wie die Kanaleinführung aussieht, zum Beispiel auf der Webseite des Kanals. Die Kanaleinführung besteht, wie wir oben gesehen haben, aus einem Paar aus Commit und Schlüssel — für denjenigen Commit, der @file{.guix-authorizations} hinzugefügt hat, mit dem Fingerabdruck des OpenPGP-Schlüssels, mit dem er signiert wurde."
+
+#. type: Plain text
+#: doc/guix.texi:5247
+msgid "Before pushing to your public Git repository, you can run @command{guix git-authenticate} to verify that you did sign all the commits you are about to push with an authorized key:"
+msgstr "Bevor Sie auf Ihr öffentliches Git-Repository pushen, können Sie @command{guix git-authenticate} ausführen, um zu überprüfen, dass Sie alle Commits, die Sie pushen würden, mit einem autorisierten Schlüssel signiert haben:"
+
+#. type: example
+#: doc/guix.texi:5250
+#, no-wrap
+msgid "guix git authenticate @var{commit} @var{signer}\n"
+msgstr "guix git authenticate @var{Commit} @var{Unterzeichner}\n"
+
+#. type: Plain text
+#: doc/guix.texi:5255
+msgid "where @var{commit} and @var{signer} are your channel introduction.  @xref{Invoking guix git authenticate}, for details."
+msgstr "Dabei sind @var{Commit} und @var{Unterzeichner} Ihre Kanaleinführung. Siehe @ref{Invoking guix git authenticate} für die Details."
+
+#. type: Plain text
+#: doc/guix.texi:5262
+msgid "Publishing a signed channel requires discipline: any mistake, such as an unsigned commit or a commit signed by an unauthorized key, will prevent users from pulling from your channel---well, that's the whole point of authentication! Pay attention to merges in particular: merge commits are considered authentic if and only if they are signed by a key present in the @file{.guix-authorizations} file of @emph{both} branches."
+msgstr "Um einen signierten Kanal anzubieten, ist Disziplin vonnöten: Jeder Fehler, wie z.B.@: ein unsignierter Commit oder ein mit einem unautorisierten Schlüssel signierter Commit, verhindert, das Nutzer den Kanal benutzen können — naja, das ist ja auch der Zweck der Authentifizierung! Passen Sie besonders bei Merges auf: Merge-Commits werden dann und nur dann als authentisch angesehen, wenn sie mit einem Schlüssel aus der @file{.guix-authorizations}-Datei @emph{beider} Branches signiert wurden."
+
+#. type: cindex
+#: doc/guix.texi:5266
+#, no-wrap
+msgid "primary URL, channels"
+msgstr "primäre URL, bei Kanälen"
+
+#. type: Plain text
+#: doc/guix.texi:5269
+msgid "Channel authors can indicate the primary URL of their channel's Git repository in the @file{.guix-channel} file, like so:"
+msgstr "Kanalautoren können die primäre URL des Git-Repositorys ihres Kanals in der Datei @file{.guix-channel} hinterlegen, etwa so:"
+
+#. type: lisp
+#: doc/guix.texi:5274
+#, no-wrap
+msgid ""
+"(channel\n"
+"  (version 0)\n"
+"  (url \"https://example.org/guix.git\"))\n"
+msgstr ""
+"(channel\n"
+"  (version 0)\n"
+"  (url \"https://example.org/guix.git\"))\n"
+
+#. type: Plain text
+#: doc/guix.texi:5281
+msgid "This allows @command{guix pull} to determine whether it is pulling code from a mirror of the channel; when that is the case, it warns the user that the mirror might be stale and displays the primary URL.  That way, users cannot be tricked into fetching code from a stale mirror that does not receive security updates."
+msgstr "Dadurch kann der Befehl @command{guix pull} feststellen, ob er Code von einem Spiegelserver des Kanals lädt. In diesem Fall wird der Benutzer davor gewarnt, dass Spiegelserver veraltete Versionen anbieten könnten, und die eigentliche, primäre URL anzeigen. Auf diese Weise wird verhindert, dass Nutzer manipuliert werden, Code von einem veralteten Spiegelserver zu benutzen, der keine Sicherheitsaktualisierungen bekommt."
+
+#. type: Plain text
+#: doc/guix.texi:5285
+msgid "This feature only makes sense for authenticated repositories, such as the official @code{guix} channel, for which @command{guix pull} ensures the code it fetches is authentic."
+msgstr "Diese Funktionalität ergibt nur bei authentifizierbaren Repositorys Sinn, wie zum Beispiel dem offiziellen @code{guix}-Kanal, für den @command{guix pull} sicherstellt, dass geladener Code authentisch ist."
+
+#. type: cindex
+#: doc/guix.texi:5289
+#, no-wrap
+msgid "news, for channels"
+msgstr "Neuigkeiten, bei Kanälen"
+
+#. type: Plain text
+#: doc/guix.texi:5293
+msgid "Channel authors may occasionally want to communicate to their users information about important changes in the channel.  You'd send them all an email, but that's not convenient."
+msgstr "Kanalautoren möchten ihren Nutzern vielleicht manchmal Informationen über wichtige Änderungen im Kanal zukommen lassen. Man könnte allen eine E-Mail schicken, aber das wäre unbequem."
+
+#. type: Plain text
+#: doc/guix.texi:5298
+msgid "Instead, channels can provide a @dfn{news file}; when the channel users run @command{guix pull}, that news file is automatically read and @command{guix pull --news} can display the announcements that correspond to the new commits that have been pulled, if any."
+msgstr "Stattdessen können Kanäle eine Datei mit Neuigkeiten („News File“) anbieten: Wenn die Kanalnutzer @command{guix pull} ausführen, wird diese Datei automatisch ausgelesen. Mit @command{guix pull --news} kann man sich die Ankündigungen anzeigen lassen, die den neu gepullten Commits entsprechen, falls es welche gibt."
+
+#. type: Plain text
+#: doc/guix.texi:5301
+msgid "To do that, channel authors must first declare the name of the news file in their @file{.guix-channel} file:"
+msgstr "Dazu müssen Kanalautoren zunächst den Namen der Datei mit Neuigkeiten in der Datei @file{.guix-channel} nennen:"
+
+#. type: lisp
+#: doc/guix.texi:5306
+#, no-wrap
+msgid ""
+"(channel\n"
+"  (version 0)\n"
+"  (news-file \"etc/news.txt\"))\n"
+msgstr ""
+"(channel\n"
+"  (version 0)\n"
+"  (news-file \"etc/news.txt\"))\n"
+
+#. type: Plain text
+#: doc/guix.texi:5310
+msgid "The news file itself, @file{etc/news.txt} in this example, must look something like this:"
+msgstr "Die Datei mit Neuigkeiten, @file{etc/news.txt} in diesem Beispiel, muss selbst etwa so aussehen:"
+
+#. type: lisp
+#: doc/guix.texi:5323
+#, no-wrap
+msgid ""
+"(channel-news\n"
+"  (version 0)\n"
+"  (entry (tag \"the-bug-fix\")\n"
+"         (title (en \"Fixed terrible bug\")\n"
+"                (fr \"Oh la la\"))\n"
+"         (body (en \"@@emph@{Good news@}!  It's fixed!\")\n"
+"               (eo \"Certe ĝi pli bone funkcias nun!\")))\n"
+"  (entry (commit \"bdcabe815cd28144a2d2b4bc3c5057b051fa9906\")\n"
+"         (title (en \"Added a great package\")\n"
+"                (ca \"Què vol dir guix?\"))\n"
+"         (body (en \"Don't miss the @@code@{hello@} package!\"))))\n"
+msgstr ""
+"(channel-news\n"
+"  (version 0)\n"
+"  (entry (tag \"the-bug-fix\")\n"
+"         (title (en \"Fixed terrible bug\")\n"
+"                (fr \"Oh la la\"))\n"
+"         (body (en \"@@emph@{Good news@}!  It's fixed!\")\n"
+"               (eo \"Certe ĝi pli bone funkcias nun!\")))\n"
+"  (entry (commit \"bdcabe815cd28144a2d2b4bc3c5057b051fa9906\")\n"
+"         (title (en \"Added a great package\")\n"
+"                (ca \"Què vol dir guix?\"))\n"
+"         (body (en \"Don't miss the @@code@{hello@} package!\"))))\n"
+
+#. type: Plain text
+#: doc/guix.texi:5330
+msgid "While the news file is using the Scheme syntax, avoid naming it with a @file{.scm} extension or else it will get picked up when building the channel and yield an error since it is not a valid module.  Alternatively, you can move the channel module to a subdirectory and store the news file in another directory."
+msgstr "Obwohl die Datei für Neuigkeiten Scheme-Syntax verwendet, sollten Sie ihr keinen Dateinamen mit der Endung @file{.scm} geben, sonst wird sie bei der Erstellung des Kanals miteinbezogen und dann zu einem Fehler führen, weil es sich bei ihr um kein gültiges Modul handelt. Alternativ können Sie auch das Kanalmodul in einem Unterverzeichnis platzieren und die Datei für Neuigkeiten in einem Verzeichnis außerhalb platzieren."
+
+#. type: Plain text
+#: doc/guix.texi:5335
+msgid "The file consists of a list of @dfn{news entries}.  Each entry is associated with a commit or tag: it describes changes made in this commit, possibly in preceding commits as well.  Users see entries only the first time they obtain the commit the entry refers to."
+msgstr "Die Datei setzt sich aus einer Liste von Einträgen mit Neuigkeiten („News Entries“) zusammen. Jeder Eintrag ist mit einem Commit oder einem Tag assoziiert und beschreibt die Änderungen, die in diesem oder auch vorangehenden Commits gemacht wurden. Benutzer sehen die Einträge nur beim erstmaligen Übernehmen des Commits, auf den sich der jeweilige Eintrag bezieht."
+
+#. type: Plain text
+#: doc/guix.texi:5341
+msgid "The @code{title} field should be a one-line summary while @code{body} can be arbitrarily long, and both can contain Texinfo markup (@pxref{Overview,,, texinfo, GNU Texinfo}).  Both the title and body are a list of language tag/message tuples, which allows @command{guix pull} to display news in the language that corresponds to the user's locale."
+msgstr "Das @code{title}-Feld sollte eine einzeilige Zusammenfassung sein, während @code{body} beliebig lang sein kann. Beide können Texinfo-Auszeichnungen enthalten (siehe @ref{Overview,,, texinfo, GNU Texinfo}). Sowohl @code{title} als auch @code{body} sind dabei eine Liste aus Tupeln mit jeweils Sprachcode und Mitteilung, wodurch @command{guix pull} Neuigkeiten in derjenigen Sprache anzeigen kann, die der vom Nutzer eingestellten Locale entspricht."
+
+#. type: Plain text
+#: doc/guix.texi:5347
+msgid "If you want to translate news using a gettext-based workflow, you can extract translatable strings with @command{xgettext} (@pxref{xgettext Invocation,,, gettext, GNU Gettext Utilities}).  For example, assuming you write news entries in English first, the command below creates a PO file containing the strings to translate:"
+msgstr "Wenn Sie Neuigkeiten mit einem gettext-basierten Arbeitsablauf übersetzen möchten, können Sie übersetzbare Zeichenketten mit @command{xgettext} extrahieren (siehe @ref{xgettext Invocation,,, gettext, GNU Gettext Utilities}). Unter der Annahme, dass Sie Einträge zu Neuigkeiten zunächst auf Englisch verfassen, können Sie mit diesem Befehl eine PO-Datei erzeugen, die die zu übersetzenden Zeichenketten enthält:"
+
+#. type: example
+#: doc/guix.texi:5350
+#, no-wrap
+msgid "xgettext -o news.po -l scheme -ken etc/news.txt\n"
+msgstr "xgettext -o news.po -l scheme -ken etc/news.txt\n"
+
+#. type: Plain text
+#: doc/guix.texi:5354
+msgid "To sum up, yes, you could use your channel as a blog.  But beware, this is @emph{not quite} what your users might expect."
+msgstr "Kurz gesagt, ja, Sie können Ihren Kanal sogar als Blog missbrauchen. Aber das ist @emph{nicht ganz}, was Ihre Nutzer erwarten dürften."
+
+#. type: cindex
+#: doc/guix.texi:5360
 #, no-wrap
 msgid "software development"
 msgstr "Softwareentwicklung"
 
 #. type: Plain text
-#: doc/guix.texi:4655
+#: doc/guix.texi:5364
 msgid "If you are a software developer, Guix provides tools that you should find helpful---independently of the language you're developing in.  This is what this chapter is about."
 msgstr "Wenn Sie ein Software-Entwickler sind, gibt Ihnen Guix Werkzeuge an die Hand, die Sie für hilfreich erachten dürften — ganz unabhängig davon, in welcher Sprache Sie entwickeln. Darum soll es in diesem Kapitel gehen."
 
 #. type: Plain text
-#: doc/guix.texi:4661
+#: doc/guix.texi:5370
 msgid "The @command{guix environment} command provides a convenient way to set up @dfn{development environments} containing all the dependencies and tools necessary to work on the software package of your choice.  The @command{guix pack} command allows you to create @dfn{application bundles} that can be easily distributed to users who do not run Guix."
 msgstr "Der Befehl @command{guix environment} stellt eine bequeme Möglichkeit dar, wie Sie eine @dfn{Entwicklungsumgebung} aufsetzen können, in der all die Abhängigkeiten und Werkzeuge enthalten sind, die Sie brauchen, wenn Sie an Ihrem Lieblingssoftwarepaket arbeiten. Der Befehl @command{guix pack} macht es Ihnen möglich, @dfn{Anwendungsbündel} zu erstellen, die leicht an Nutzer verteilt werden können, die kein Guix benutzen."
 
 #. type: section
-#: doc/guix.texi:4668
+#: doc/guix.texi:5379
 #, no-wrap
 msgid "Invoking @command{guix environment}"
 msgstr "@command{guix environment} aufrufen"
 
 #. type: cindex
-#: doc/guix.texi:4670
+#: doc/guix.texi:5381
 #, no-wrap
 msgid "reproducible build environments"
 msgstr "reproduzierbare Erstellungsumgebungen"
 
 #. type: cindex
-#: doc/guix.texi:4671
+#: doc/guix.texi:5382
 #, no-wrap
 msgid "development environments"
 msgstr "Entwicklungsumgebungen"
 
 #. type: command{#1}
-#: doc/guix.texi:4672
+#: doc/guix.texi:5383
 #, no-wrap
 msgid "guix environment"
 msgstr "guix environment"
 
 #. type: cindex
-#: doc/guix.texi:4673
+#: doc/guix.texi:5384
 #, no-wrap
 msgid "environment, package build environment"
 msgstr "Umgebung, Paketerstellungsumgebung"
 
 #. type: Plain text
-#: doc/guix.texi:4679
+#: doc/guix.texi:5390
 msgid "The purpose of @command{guix environment} is to assist hackers in creating reproducible development environments without polluting their package profile.  The @command{guix environment} tool takes one or more packages, builds all of their inputs, and creates a shell environment to use them."
 msgstr "Der Zweck von @command{guix environment} ist es, Hacker beim Aufbau einer reproduzierbaren Entwicklungsumgebung zu unterstützen, ohne dass diese ihr Paketprofil verunreinigen müssen. Das Werkzeug @command{guix environment} nimmt eines oder mehrere Pakete entgegen und erstellt erst all ihre Eingaben, um dann eine Shell-Umgebung herzustellen, in der diese benutzt werden können."
 
 #. type: example
-#: doc/guix.texi:4684
+#: doc/guix.texi:5395
 #, no-wrap
 msgid "guix environment @var{options} @var{package}@dots{}\n"
 msgstr "guix environment @var{Optionen} @var{Paket}…\n"
 
 #. type: Plain text
-#: doc/guix.texi:4688
+#: doc/guix.texi:5399
 msgid "The following example spawns a new shell set up for the development of GNU@tie{}Guile:"
 msgstr "Folgendes Beispiel zeigt, wie eine neue Shell gestartet wird, auf der alles für die Entwicklung von GNU@tie{}Guile eingerichtet ist:"
 
 #. type: example
-#: doc/guix.texi:4691
+#: doc/guix.texi:5402
 #, no-wrap
 msgid "guix environment guile\n"
 msgstr "guix environment guile\n"
 
 #. type: Plain text
-#: doc/guix.texi:4708
-msgid "If the needed dependencies are not built yet, @command{guix environment} automatically builds them.  The environment of the new shell is an augmented version of the environment that @command{guix environment} was run in.  It contains the necessary search paths for building the given package added to the existing environment variables.  To create a ``pure'' environment, in which the original environment variables have been unset, use the @code{--pure} option@footnote{Users sometimes wrongfully augment environment variables such as @code{PATH} in their @file{~/.bashrc} file.  As a consequence, when @code{guix environment} launches it, Bash may read @file{~/.bashrc}, thereby introducing ``impurities'' in these environment variables.  It is an error to define such environment variables in @file{.bashrc}; instead, they should be defined in @file{.bash_profile}, which is sourced only by log-in shells.  @xref{Bash Startup Files,,, bash, The GNU Bash Reference Manual}, for details on Bash start-up files.}."
-msgstr "Wenn benötigte Abhängigkeiten noch nicht erstellt worden sind, wird @command{guix environment} sie automatisch erstellen lassen. Die Umgebung der neuen Shell ist eine ergänzte Version der Umgebung, in der @command{guix environment} ausgeführt wurde. Sie enthält neben den existierenden Umgebungsvariablen auch die nötigen Suchpfade, um das angegebene Paket erstellen zu können. Um eine „reine“ Umgebung zu erstellen, in der die ursprünglichen Umgebungsvariablen nicht mehr vorkommen, kann die Befehlszeilenoption @code{--pure} benutzt werden@footnote{Manchmal ergänzen Nutzer fälschlicherweise Umgebungsvariable wie @code{PATH} in ihrer @file{~/.bashrc}-Datei. Das hat zur Folge, dass wenn @code{guix environment} Bash startet, selbige @file{~/.bashrc} von Bash gelesen wird und die neuen Umgebungen somit „verunreinigt“. Es ist ein Fehler, solche Umgebungsvariable in @file{.bashrc} zu definieren, stattdessen sollten sie in @file{.bash_profile} geschrieben werden, was nur von Login-Shells mit „source“ geladen wird. Siehe @ref{Bash Startup Files,,, bash, The GNU Bash Reference Manual} für Details über beim Starten von Bash gelesene Dateien}."
+#: doc/guix.texi:5419
+msgid "If the needed dependencies are not built yet, @command{guix environment} automatically builds them.  The environment of the new shell is an augmented version of the environment that @command{guix environment} was run in.  It contains the necessary search paths for building the given package added to the existing environment variables.  To create a ``pure'' environment, in which the original environment variables have been unset, use the @option{--pure} option@footnote{Users sometimes wrongfully augment environment variables such as @env{PATH} in their @file{~/.bashrc} file.  As a consequence, when @command{guix environment} launches it, Bash may read @file{~/.bashrc}, thereby introducing ``impurities'' in these environment variables.  It is an error to define such environment variables in @file{.bashrc}; instead, they should be defined in @file{.bash_profile}, which is sourced only by log-in shells.  @xref{Bash Startup Files,,, bash, The GNU Bash Reference Manual}, for details on Bash start-up files.}."
+msgstr "Wenn benötigte Abhängigkeiten noch nicht erstellt worden sind, wird @command{guix environment} sie automatisch erstellen lassen. Die Umgebung der neuen Shell ist eine ergänzte Version der Umgebung, in der @command{guix environment} ausgeführt wurde. Sie enthält neben den existierenden Umgebungsvariablen auch die nötigen Suchpfade, um das angegebene Paket erstellen zu können. Um eine „reine“ Umgebung zu erstellen, in der die ursprünglichen Umgebungsvariablen nicht mehr vorkommen, kann die Befehlszeilenoption @option{--pure} benutzt werden@footnote{Manchmal ergänzen Nutzer fälschlicherweise Umgebungsvariable wie @env{PATH} in ihrer @file{~/.bashrc}-Datei. Das hat zur Folge, dass wenn @command{guix environment} Bash startet, selbige @file{~/.bashrc} von Bash gelesen wird und die neuen Umgebungen somit „verunreinigt“. Es ist ein Fehler, solche Umgebungsvariable in @file{.bashrc} zu definieren, stattdessen sollten sie in @file{.bash_profile} geschrieben werden, was nur von Login-Shells mit „source“ geladen wird. Siehe @ref{Bash Startup Files,,, bash, Referenzhandbuch zu GNU Bash} für Details über beim Starten von Bash gelesene Dateien}."
 
 #. type: vindex
-#: doc/guix.texi:4709
+#: doc/guix.texi:5420
 #, no-wrap
 msgid "GUIX_ENVIRONMENT"
 msgstr "GUIX_ENVIRONMENT"
 
 #. type: Plain text
-#: doc/guix.texi:4715
-msgid "@command{guix environment} defines the @code{GUIX_ENVIRONMENT} variable in the shell it spawns; its value is the file name of the profile of this environment.  This allows users to, say, define a specific prompt for development environments in their @file{.bashrc} (@pxref{Bash Startup Files,,, bash, The GNU Bash Reference Manual}):"
-msgstr "@command{guix environment} definiert die Variable @code{GUIX_ENVIRONMENT} in der neu erzeugten Shell. Ihr Wert ist der Dateiname des Profils dieser neuen Umgebung. Das könnten Nutzer verwenden, um zum Beispiel eine besondere Prompt als Eingabeaufforderung für Entwicklungsumgebungen in ihrer @file{.bashrc} festzulegen (siehe @ref{Bash Startup Files,,, bash, The GNU Bash Reference Manual}):"
+#: doc/guix.texi:5426
+msgid "@command{guix environment} defines the @env{GUIX_ENVIRONMENT} variable in the shell it spawns; its value is the file name of the profile of this environment.  This allows users to, say, define a specific prompt for development environments in their @file{.bashrc} (@pxref{Bash Startup Files,,, bash, The GNU Bash Reference Manual}):"
+msgstr "@command{guix environment} definiert die Variable @env{GUIX_ENVIRONMENT} in der neu erzeugten Shell. Ihr Wert ist der Dateiname des Profils dieser neuen Umgebung. Das könnten Nutzer verwenden, um zum Beispiel eine besondere Prompt als Eingabeaufforderung für Entwicklungsumgebungen in ihrer @file{.bashrc} festzulegen (siehe @ref{Bash Startup Files,,, bash, Referenzhandbuch von GNU Bash}):"
 
 #. type: example
-#: doc/guix.texi:4721
+#: doc/guix.texi:5432
 #, no-wrap
 msgid ""
 "if [ -n \"$GUIX_ENVIRONMENT\" ]\n"
@@ -10245,284 +11525,318 @@ msgstr ""
 "fi\n"
 
 #. type: Plain text
-#: doc/guix.texi:4725
+#: doc/guix.texi:5436
 msgid "...@: or to browse the profile:"
 msgstr "…@: oder um ihr Profil durchzusehen:"
 
 #. type: example
-#: doc/guix.texi:4728
+#: doc/guix.texi:5439
 #, no-wrap
 msgid "$ ls \"$GUIX_ENVIRONMENT/bin\"\n"
 msgstr "$ ls \"$GUIX_ENVIRONMENT/bin\"\n"
 
 #. type: Plain text
-#: doc/guix.texi:4734
+#: doc/guix.texi:5445
 msgid "Additionally, more than one package may be specified, in which case the union of the inputs for the given packages are used.  For example, the command below spawns a shell where all of the dependencies of both Guile and Emacs are available:"
 msgstr "Des Weiteren kann mehr als ein Paket angegeben werden. In diesem Fall wird die Vereinigung der Eingaben der jeweiligen Pakete zugänglich gemacht. Zum Beispiel erzeugt der folgende Befehl eine Shell, in der alle Abhängigkeiten von sowohl Guile als auch Emacs verfügbar sind:"
 
 #. type: example
-#: doc/guix.texi:4737
+#: doc/guix.texi:5448
 #, no-wrap
 msgid "guix environment guile emacs\n"
 msgstr "guix environment guile emacs\n"
 
 #. type: Plain text
-#: doc/guix.texi:4742
+#: doc/guix.texi:5453
 msgid "Sometimes an interactive shell session is not desired.  An arbitrary command may be invoked by placing the @code{--} token to separate the command from the rest of the arguments:"
-msgstr "Manchmal will man keine interaktive Shell-Sitzung. Ein beliebiger Befehl kann aufgerufen werden, indem man nach Angabe der Pakete noch @code{--} vor den gewünschten Befehl schreibt, um ihn von den übrigen Argumenten abzutrennen:"
+msgstr "Manchmal will man keine interaktive Shell-Sitzung. Ein beliebiger Befehl kann aufgerufen werden, indem Sie nach Angabe der Pakete noch @code{--} vor den gewünschten Befehl schreiben, um ihn von den übrigen Argumenten abzutrennen:"
 
 #. type: example
-#: doc/guix.texi:4745
+#: doc/guix.texi:5456
 #, no-wrap
 msgid "guix environment guile -- make -j4\n"
 msgstr "guix environment guile -- make -j4\n"
 
 #. type: Plain text
-#: doc/guix.texi:4751
+#: doc/guix.texi:5462
 msgid "In other situations, it is more convenient to specify the list of packages needed in the environment.  For example, the following command runs @command{python} from an environment containing Python@tie{}2.7 and NumPy:"
 msgstr "In anderen Situationen ist es bequemer, aufzulisten, welche Pakete in der Umgebung benötigt werden. Zum Beispiel führt der folgende Befehl @command{python} aus einer Umgebung heraus aus, in der Python@tie{}2.7 und NumPy enthalten sind:"
 
 #. type: example
-#: doc/guix.texi:4754
+#: doc/guix.texi:5465
 #, no-wrap
 msgid "guix environment --ad-hoc python2-numpy python-2.7 -- python\n"
 msgstr "guix environment --ad-hoc python2-numpy python-2.7 -- python\n"
 
 #. type: Plain text
-#: doc/guix.texi:4765
-msgid "Furthermore, one might want the dependencies of a package and also some additional packages that are not build-time or runtime dependencies, but are useful when developing nonetheless.  Because of this, the @code{--ad-hoc} flag is positional.  Packages appearing before @code{--ad-hoc} are interpreted as packages whose dependencies will be added to the environment.  Packages appearing after are interpreted as packages that will be added to the environment directly.  For example, the following command creates a Guix development environment that additionally includes Git and strace:"
-msgstr "Man kann auch sowohl die Abhängigkeiten eines Pakets haben wollen, als auch ein paar zusätzliche Pakete, die nicht Erstellungs- oder Laufzeitabhängigkeiten davon sind, aber trotzdem bei der Entwicklung nützlich sind. Deshalb hängt die Wirkung von der Position der Befehlszeilenoption @code{--ad-hoc} ab. Pakete, die links von @code{--ad-hoc} stehen, werden als Pakete interpretiert, deren Abhängigkeiten zur Umgebung hinzugefügt werden. Pakete, die rechts stehen, werden selbst zur Umgebung hinzugefügt. Zum Beispiel erzeugt der folgende Befehl eine Guix-Entwicklungsumgebung, die zusätzlich Git und strace umfasst:"
+#: doc/guix.texi:5476
+msgid "Furthermore, one might want the dependencies of a package and also some additional packages that are not build-time or runtime dependencies, but are useful when developing nonetheless.  Because of this, the @option{--ad-hoc} flag is positional.  Packages appearing before @option{--ad-hoc} are interpreted as packages whose dependencies will be added to the environment.  Packages appearing after are interpreted as packages that will be added to the environment directly.  For example, the following command creates a Guix development environment that additionally includes Git and strace:"
+msgstr "Man kann auch sowohl die Abhängigkeiten eines Pakets haben wollen, als auch ein paar zusätzliche Pakete, die nicht Erstellungs- oder Laufzeitabhängigkeiten davon sind, aber trotzdem bei der Entwicklung nützlich sind. Deshalb hängt die Wirkung von der Position der Befehlszeilenoption @option{--ad-hoc} ab. Pakete, die links von @option{--ad-hoc} stehen, werden als Pakete interpretiert, deren Abhängigkeiten zur Umgebung hinzugefügt werden. Pakete, die rechts stehen, werden selbst zur Umgebung hinzugefügt. Zum Beispiel erzeugt der folgende Befehl eine Guix-Entwicklungsumgebung, die zusätzlich Git und strace umfasst:"
 
 #. type: example
-#: doc/guix.texi:4768
+#: doc/guix.texi:5479
 #, no-wrap
 msgid "guix environment --pure guix --ad-hoc git strace\n"
 msgstr "guix environment --pure guix --ad-hoc git strace\n"
 
+#. type: item
+#: doc/guix.texi:5481 doc/guix.texi:5642 doc/guix.texi:12625
+#: doc/guix.texi:30966
+#, no-wrap
+msgid "container"
+msgstr "container"
+
 #. type: Plain text
-#: doc/guix.texi:4777
+#: doc/guix.texi:5489
 msgid "Sometimes it is desirable to isolate the environment as much as possible, for maximal purity and reproducibility.  In particular, when using Guix on a host distro that is not Guix System, it is desirable to prevent access to @file{/usr/bin} and other system-wide resources from the development environment.  For example, the following command spawns a Guile REPL in a ``container'' where only the store and the current working directory are mounted:"
 msgstr "Manchmal ist es wünschenswert, die Umgebung so viel wie möglich zu isolieren, um maximale Reinheit und Reproduzierbarkeit zu bekommen. Insbesondere ist es wünschenswert, den Zugriff auf @file{/usr/bin} und andere Systemressourcen aus der Entwicklungsumgebung heraus zu verhindern, wenn man Guix auf einer fremden Wirtsdistribution benutzt, die nicht Guix System ist. Zum Beispiel startet der folgende Befehl eine Guile-REPL in einer isolierten Umgebung, einem sogenannten „Container“, in der nur der Store und das aktuelle Arbeitsverzeichnis eingebunden sind:"
 
 #. type: example
-#: doc/guix.texi:4780
+#: doc/guix.texi:5492
 #, no-wrap
 msgid "guix environment --ad-hoc --container guile -- guile\n"
 msgstr "guix environment --ad-hoc --container guile -- guile\n"
 
 #. type: quotation
-#: doc/guix.texi:4784
-msgid "The @code{--container} option requires Linux-libre 3.19 or newer."
-msgstr "Die Befehlszeilenoption @code{--container} funktioniert nur mit Linux-libre 3.19 oder neuer."
+#: doc/guix.texi:5496
+msgid "The @option{--container} option requires Linux-libre 3.19 or newer."
+msgstr "Die Befehlszeilenoption @option{--container} funktioniert nur mit Linux-libre 3.19 oder neuer."
+
+#. type: cindex
+#: doc/guix.texi:5498
+#, no-wrap
+msgid "certificates"
+msgstr "Zertifikate"
+
+#. type: Plain text
+#: doc/guix.texi:5505
+msgid "Another typical use case for containers is to run security-sensitive applications such as a web browser.  To run Eolie, we must expose and share some files and directories; we include @code{nss-certs} and expose @file{/etc/ssl/certs/} for HTTPS authentication; finally we preserve the @env{DISPLAY} environment variable since containerized graphical applications won't display without it."
+msgstr "Ein weiterer typischer Anwendungsfall für Container ist, gegenüber Sicherheitslücken anfällige Anwendungen auszuführen, z.B.@: Webbrowser. Um Eolie auszuführen, müssen wir den Zugriff auf manche Dateien und Verzeichnisse über @option{--expose} und @option{--share} gewähren. Wir lassen @code{nss-certs} bereitstellen und machen @file{/etc/ssl/certs/} für die HTTPS-Authentifizierung sichtbar. Zu guter Letzt behalten wir die @env{DISPLAY}-Umgebungsvariable bei, weil isolierte grafische Anwendungen ohne sie nicht angezeigt werden können."
+
+#. type: example
+#: doc/guix.texi:5512
+#, no-wrap
+msgid ""
+"guix environment --preserve='^DISPLAY$' --container --network \\\n"
+"  --expose=/etc/machine-id \\\n"
+"  --expose=/etc/ssl/certs/ \\\n"
+"  --share=$HOME/.local/share/eolie/=$HOME/.local/share/eolie/ \\\n"
+"  --ad-hoc eolie nss-certs dbus --  eolie\n"
+msgstr ""
+"guix environment --preserve='^DISPLAY$' --container --network \\\n"
+"  --expose=/etc/machine-id \\\n"
+"  --expose=/etc/ssl/certs/ \\\n"
+"  --share=$HOME/.local/share/eolie/=$HOME/.local/share/eolie/ \\\n"
+"  --ad-hoc eolie nss-certs dbus --  eolie\n"
 
 #. type: Plain text
-#: doc/guix.texi:4787
+#: doc/guix.texi:5515
 msgid "The available options are summarized below."
 msgstr "Im Folgenden werden die verfügbaren Befehlszeilenoptionen zusammengefasst."
 
 #. type: item
-#: doc/guix.texi:4789 doc/guix.texi:5293 doc/guix.texi:8705
-#: doc/guix.texi:26926
+#: doc/guix.texi:5517 doc/guix.texi:6053 doc/guix.texi:10513
+#: doc/guix.texi:31063
 #, no-wrap
 msgid "--root=@var{file}"
 msgstr "--root=@var{Datei}"
 
 #. type: itemx
-#: doc/guix.texi:4790 doc/guix.texi:5294 doc/guix.texi:8706
-#: doc/guix.texi:26927
+#: doc/guix.texi:5518 doc/guix.texi:6054 doc/guix.texi:10514
+#: doc/guix.texi:31064
 #, no-wrap
 msgid "-r @var{file}"
 msgstr "-r @var{Datei}"
 
 #. type: cindex
-#: doc/guix.texi:4791
+#: doc/guix.texi:5519
 #, no-wrap
 msgid "persistent environment"
 msgstr "persistente Umgebung"
 
 #. type: cindex
-#: doc/guix.texi:4792
+#: doc/guix.texi:5520
 #, no-wrap
 msgid "garbage collector root, for environments"
 msgstr "Müllsammlerwurzel, für Umgebungen"
 
 #. type: table
-#: doc/guix.texi:4795
+#: doc/guix.texi:5523
 msgid "Make @var{file} a symlink to the profile for this environment, and register it as a garbage collector root."
 msgstr "Die @var{Datei} zu einer symbolischen Verknüpfung auf das Profil dieser Umgebung machen und als eine Müllsammlerwurzel registrieren."
 
 #. type: table
-#: doc/guix.texi:4798
+#: doc/guix.texi:5526
 msgid "This is useful if you want to protect your environment from garbage collection, to make it ``persistent''."
 msgstr "Das ist nützlich, um seine Umgebung vor dem Müllsammler zu schützen und sie „persistent“ zu machen."
 
 #. type: table
-#: doc/guix.texi:4804
+#: doc/guix.texi:5532
 msgid "When this option is omitted, the environment is protected from garbage collection only for the duration of the @command{guix environment} session.  This means that next time you recreate the same environment, you could have to rebuild or re-download packages.  @xref{Invoking guix gc}, for more on GC roots."
 msgstr "Wird diese Option weggelassen, ist die Umgebung nur, solange die Sitzung von @command{guix environment} besteht, vor dem Müllsammler sicher. Das bedeutet, wenn Sie das nächste Mal dieselbe Umgebung neu erzeugen, müssen Sie vielleicht Pakete neu erstellen oder neu herunterladen. @ref{Invoking guix gc} hat mehr Informationen über Müllsammlerwurzeln."
 
 #. type: item
-#: doc/guix.texi:4805 doc/guix.texi:5226 doc/guix.texi:8558 doc/guix.texi:9484
-#: doc/guix.texi:10189 doc/guix.texi:26861
+#: doc/guix.texi:5533 doc/guix.texi:5985 doc/guix.texi:10366
+#: doc/guix.texi:11305 doc/guix.texi:12090 doc/guix.texi:30998
 #, no-wrap
 msgid "--expression=@var{expr}"
 msgstr "--expression=@var{Ausdruck}"
 
 #. type: itemx
-#: doc/guix.texi:4806 doc/guix.texi:5227 doc/guix.texi:8559 doc/guix.texi:9485
-#: doc/guix.texi:10190 doc/guix.texi:26862
+#: doc/guix.texi:5534 doc/guix.texi:5986 doc/guix.texi:10367
+#: doc/guix.texi:11306 doc/guix.texi:12091 doc/guix.texi:30999
 #, no-wrap
 msgid "-e @var{expr}"
 msgstr "-e @var{Ausdruck}"
 
 #. type: table
-#: doc/guix.texi:4809
+#: doc/guix.texi:5537
 msgid "Create an environment for the package or list of packages that @var{expr} evaluates to."
 msgstr "Eine Umgebung für das Paket oder die Liste von Paketen erzeugen, zu der der @var{Ausdruck} ausgewertet wird."
 
 #. type: table
-#: doc/guix.texi:4811
+#: doc/guix.texi:5539
 msgid "For example, running:"
 msgstr "Zum Beispiel startet dies:"
 
 #. type: example
-#: doc/guix.texi:4814
+#: doc/guix.texi:5542
 #, no-wrap
 msgid "guix environment -e '(@@ (gnu packages maths) petsc-openmpi)'\n"
 msgstr "guix environment -e '(@@ (gnu packages maths) petsc-openmpi)'\n"
 
 #. type: table
-#: doc/guix.texi:4818
+#: doc/guix.texi:5546
 msgid "starts a shell with the environment for this specific variant of the PETSc package."
 msgstr "eine Shell mit der Umgebung für eben diese bestimmte Variante des Pakets PETSc."
 
 #. type: table
-#: doc/guix.texi:4820
+#: doc/guix.texi:5548
 msgid "Running:"
 msgstr "Wenn man dies ausführt:"
 
 #. type: example
-#: doc/guix.texi:4823
+#: doc/guix.texi:5551
 #, no-wrap
 msgid "guix environment --ad-hoc -e '(@@ (gnu) %base-packages)'\n"
 msgstr "guix environment --ad-hoc -e '(@@ (gnu) %base-packages)'\n"
 
 #. type: table
-#: doc/guix.texi:4826
+#: doc/guix.texi:5554
 msgid "starts a shell with all the base system packages available."
 msgstr "bekommt man eine Shell, in der alle Basis-Pakete verfügbar sind."
 
 #. type: table
-#: doc/guix.texi:4829
+#: doc/guix.texi:5557
 msgid "The above commands only use the default output of the given packages.  To select other outputs, two element tuples can be specified:"
 msgstr "Die obigen Befehle benutzen nur die Standard-Ausgabe des jeweiligen Pakets. Um andere Ausgaben auszuwählen, können zweielementige Tupel spezifiziert werden:"
 
 #. type: example
-#: doc/guix.texi:4832
+#: doc/guix.texi:5560
 #, no-wrap
 msgid "guix environment --ad-hoc -e '(list (@@ (gnu packages bash) bash) \"include\")'\n"
 msgstr "guix environment --ad-hoc -e '(list (@@ (gnu packages bash) bash) \"include\")'\n"
 
 #. type: item
-#: doc/guix.texi:4834
+#: doc/guix.texi:5562
 #, no-wrap
 msgid "--load=@var{file}"
 msgstr "--load=@var{Datei}"
 
 #. type: itemx
-#: doc/guix.texi:4835
+#: doc/guix.texi:5563
 #, no-wrap
 msgid "-l @var{file}"
 msgstr "-l @var{Datei}"
 
 #. type: table
-#: doc/guix.texi:4838
+#: doc/guix.texi:5566
 msgid "Create an environment for the package or list of packages that the code within @var{file} evaluates to."
 msgstr "Eine Umgebung erstellen für das Paket oder die Liste von Paketen, zu der der Code in der @var{Datei} ausgewertet wird."
 
 #. type: lisp
-#: doc/guix.texi:4844
+#: doc/guix.texi:5572
 #, no-wrap
 msgid "@verbatiminclude environment-gdb.scm\n"
 msgstr "@verbatiminclude environment-gdb.scm\n"
 
 #. type: table
-#: doc/guix.texi:4851
+#: doc/guix.texi:5579
 msgid "Create an environment for the packages contained in the manifest object returned by the Scheme code in @var{file}.  This option can be repeated several times, in which case the manifests are concatenated."
 msgstr "Eine Umgebung für die Pakete erzeugen, die im Manifest-Objekt enthalten sind, das vom Scheme-Code in der @var{Datei} geliefert wird. Wenn diese Befehlszeilenoption mehrmals wiederholt angegeben wird, werden die Manifeste aneinandergehängt."
 
 #. type: table
-#: doc/guix.texi:4855
+#: doc/guix.texi:5583
 msgid "This is similar to the same-named option in @command{guix package} (@pxref{profile-manifest, @option{--manifest}}) and uses the same manifest files."
 msgstr "Dies verhält sich ähnlich wie die gleichnamige Option des Befehls @command{guix package} (siehe @ref{profile-manifest, @option{--manifest}}) und benutzt auch dieselben Manifestdateien."
 
 #. type: item
-#: doc/guix.texi:4856
+#: doc/guix.texi:5584
 #, no-wrap
 msgid "--ad-hoc"
 msgstr "--ad-hoc"
 
 #. type: table
-#: doc/guix.texi:4861
+#: doc/guix.texi:5589
 msgid "Include all specified packages in the resulting environment, as if an @i{ad hoc} package were defined with them as inputs.  This option is useful for quickly creating an environment without having to write a package expression to contain the desired inputs."
 msgstr "Alle angegebenen Pakete in der resultierenden Umgebung einschließen, als wären sie Eingaben eines @i{ad hoc} definierten Pakets. Diese Befehlszeilenoption ist nützlich, um schnell Umgebungen aufzusetzen, ohne dafür einen Paketausdruck schreiben zu müssen, der die gewünschten Eingaben enthält."
 
 #. type: table
-#: doc/guix.texi:4863
+#: doc/guix.texi:5591
 msgid "For instance, the command:"
 msgstr "Zum Beispiel wird mit diesem Befehl:"
 
 #. type: example
-#: doc/guix.texi:4866
+#: doc/guix.texi:5594
 #, no-wrap
 msgid "guix environment --ad-hoc guile guile-sdl -- guile\n"
 msgstr "guix environment --ad-hoc guile guile-sdl -- guile\n"
 
 #. type: table
-#: doc/guix.texi:4870
+#: doc/guix.texi:5598
 msgid "runs @command{guile} in an environment where Guile and Guile-SDL are available."
 msgstr "@command{guile} in einer Umgebung ausgeführt, in der sowohl Guile als auch Guile-SDL zur Verfügung stehen."
 
 #. type: table
-#: doc/guix.texi:4875
+#: doc/guix.texi:5603
 msgid "Note that this example implicitly asks for the default output of @code{guile} and @code{guile-sdl}, but it is possible to ask for a specific output---e.g., @code{glib:bin} asks for the @code{bin} output of @code{glib} (@pxref{Packages with Multiple Outputs})."
 msgstr "Beachten Sie, dass in diesem Beispiel implizit die vorgegebene Ausgabe von @code{guile} und @code{guile-sdl} verwendet wird, es aber auch möglich ist, eine bestimmte Ausgabe auszuwählen — z.B.@: wird mit @code{glib:bin} die Ausgabe @code{bin} von @code{glib} gewählt (siehe @ref{Packages with Multiple Outputs})."
 
 #. type: table
-#: doc/guix.texi:4881
-msgid "This option may be composed with the default behavior of @command{guix environment}.  Packages appearing before @code{--ad-hoc} are interpreted as packages whose dependencies will be added to the environment, the default behavior.  Packages appearing after are interpreted as packages that will be added to the environment directly."
-msgstr "Diese Befehlszeilenoption kann mit dem standardmäßigen Verhalten von @command{guix environment} verbunden werden. Pakete, die vor @code{--ad-hoc} aufgeführt werden, werden als Pakete interpretiert, deren Abhängigkeiten zur Umgebung hinzugefügt werden, was dem standardmäßigen Verhalten entspricht. Pakete, die danach aufgeführt werden, werden selbst zur Umgebung hinzugefügt."
+#: doc/guix.texi:5609
+msgid "This option may be composed with the default behavior of @command{guix environment}.  Packages appearing before @option{--ad-hoc} are interpreted as packages whose dependencies will be added to the environment, the default behavior.  Packages appearing after are interpreted as packages that will be added to the environment directly."
+msgstr "Diese Befehlszeilenoption kann mit dem standardmäßigen Verhalten von @command{guix environment} verbunden werden. Pakete, die vor @option{--ad-hoc} aufgeführt werden, werden als Pakete interpretiert, deren Abhängigkeiten zur Umgebung hinzugefügt werden, was dem standardmäßigen Verhalten entspricht. Pakete, die danach aufgeführt werden, werden selbst zur Umgebung hinzugefügt."
 
 #. type: item
-#: doc/guix.texi:4882
+#: doc/guix.texi:5610
 #, no-wrap
 msgid "--pure"
 msgstr "--pure"
 
 #. type: table
-#: doc/guix.texi:4886
-msgid "Unset existing environment variables when building the new environment, except those specified with @option{--preserve} (see below.)  This has the effect of creating an environment in which search paths only contain package inputs."
+#: doc/guix.texi:5614
+msgid "Unset existing environment variables when building the new environment, except those specified with @option{--preserve} (see below).  This has the effect of creating an environment in which search paths only contain package inputs."
 msgstr "Bestehende Umgebungsvariable deaktivieren, wenn die neue Umgebung erzeugt wird, mit Ausnahme der mit @option{--preserve} angegebenen Variablen (siehe unten). Dies bewirkt, dass eine Umgebung erzeugt wird, in der die Suchpfade nur Paketeingaben nennen und sonst nichts."
 
 #. type: item
-#: doc/guix.texi:4887
+#: doc/guix.texi:5615
 #, no-wrap
 msgid "--preserve=@var{regexp}"
 msgstr "--preserve=@var{Regexp}"
 
 #. type: itemx
-#: doc/guix.texi:4888
+#: doc/guix.texi:5616
 #, no-wrap
 msgid "-E @var{regexp}"
 msgstr "-E @var{Regexp}"
 
 #. type: table
-#: doc/guix.texi:4893
+#: doc/guix.texi:5621
 msgid "When used alongside @option{--pure}, preserve the environment variables matching @var{regexp}---in other words, put them on a ``white list'' of environment variables that must be preserved.  This option can be repeated several times."
 msgstr "Wenn das hier zusammen mit @option{--pure} angegeben wird, bleiben die zum regulären Ausdruck @var{Regexp} passenden Umgebungsvariablen erhalten — mit anderen Worten werden sie auf eine „weiße Liste“ von Umgebungsvariablen gesetzt, die erhalten bleiben müssen. Diese Befehlszeilenoption kann mehrmals wiederholt werden."
 
 #. type: example
-#: doc/guix.texi:4897
+#: doc/guix.texi:5625
 #, no-wrap
 msgid ""
 "guix environment --pure --preserve=^SLURM --ad-hoc openmpi @dots{} \\\n"
@@ -10532,111 +11846,105 @@ msgstr ""
 "  -- mpirun …\n"
 
 #. type: table
-#: doc/guix.texi:4903
-msgid "This example runs @command{mpirun} in a context where the only environment variables defined are @code{PATH}, environment variables whose name starts with @code{SLURM}, as well as the usual ``precious'' variables (@code{HOME}, @code{USER}, etc.)"
-msgstr "In diesem Beispiel wird @command{mpirun} in einem Kontext ausgeführt, in dem die einzig definierten Umgebungsvariablen @code{PATH} und solche sind, deren Name mit @code{SLURM} beginnt, sowie die üblichen besonders „kostbaren“ Variablen (@code{HOME}, @code{USER}, etc.)."
+#: doc/guix.texi:5631
+msgid "This example runs @command{mpirun} in a context where the only environment variables defined are @env{PATH}, environment variables whose name starts with @samp{SLURM}, as well as the usual ``precious'' variables (@env{HOME}, @env{USER}, etc.)."
+msgstr "In diesem Beispiel wird @command{mpirun} in einem Kontext ausgeführt, in dem die einzig definierten Umgebungsvariablen @env{PATH} und solche sind, deren Name mit @samp{SLURM} beginnt, sowie die üblichen besonders „kostbaren“ Variablen (@env{HOME}, @env{USER}, etc.)."
 
 #. type: item
-#: doc/guix.texi:4904
+#: doc/guix.texi:5632
 #, no-wrap
 msgid "--search-paths"
 msgstr "--search-paths"
 
 #. type: table
-#: doc/guix.texi:4907
+#: doc/guix.texi:5635
 msgid "Display the environment variable definitions that make up the environment."
 msgstr "Die Umgebungsvariablendefinitionen anzeigen, aus denen die Umgebung besteht."
 
 #. type: table
-#: doc/guix.texi:4911
+#: doc/guix.texi:5639
 msgid "Attempt to build for @var{system}---e.g., @code{i686-linux}."
 msgstr "Versuchen, für das angegebene @var{System} zu erstellen — z.B.@: @code{i686-linux}."
 
 #. type: item
-#: doc/guix.texi:4912
+#: doc/guix.texi:5640
 #, no-wrap
 msgid "--container"
 msgstr "--container"
 
 #. type: itemx
-#: doc/guix.texi:4913
+#: doc/guix.texi:5641
 #, no-wrap
 msgid "-C"
 msgstr "-C"
 
-#. type: item
-#: doc/guix.texi:4914 doc/guix.texi:10706 doc/guix.texi:26829
-#, no-wrap
-msgid "container"
-msgstr "container"
-
 #. type: table
-#: doc/guix.texi:4920
-msgid "Run @var{command} within an isolated container.  The current working directory outside the container is mapped inside the container.  Additionally, unless overridden with @code{--user}, a dummy home directory is created that matches the current user's home directory, and @file{/etc/passwd} is configured accordingly."
-msgstr "Den @var{Befehl} in einer isolierten Umgebung (einem sogenannten „Container“) ausführen. Das aktuelle Arbeitsverzeichnis außerhalb des Containers wird in den Container zugeordnet. Zusätzlich wird, wenn es mit der Befehlszeilenoption @code{--user} nicht anders spezifiziert wurde, ein stellvertretendes persönliches Verzeichnis erzeugt, dessen Inhalt der des wirklichen persönlichen Verzeichnisses ist, sowie eine passend konfigurierte Datei @file{/etc/passwd}."
+#: doc/guix.texi:5648
+msgid "Run @var{command} within an isolated container.  The current working directory outside the container is mapped inside the container.  Additionally, unless overridden with @option{--user}, a dummy home directory is created that matches the current user's home directory, and @file{/etc/passwd} is configured accordingly."
+msgstr "Den @var{Befehl} in einer isolierten Umgebung (einem sogenannten „Container“) ausführen. Das aktuelle Arbeitsverzeichnis außerhalb des Containers wird in den Container zugeordnet. Zusätzlich wird, wenn es mit der Befehlszeilenoption @option{--user} nicht anders spezifiziert wurde, ein stellvertretendes persönliches Verzeichnis erzeugt, dessen Inhalt der des wirklichen persönlichen Verzeichnisses ist, sowie eine passend konfigurierte Datei @file{/etc/passwd}."
 
 #. type: table
-#: doc/guix.texi:4924
-msgid "The spawned process runs as the current user outside the container.  Inside the container, it has the same UID and GID as the current user, unless @option{--user} is passed (see below.)"
+#: doc/guix.texi:5652
+msgid "The spawned process runs as the current user outside the container.  Inside the container, it has the same UID and GID as the current user, unless @option{--user} is passed (see below)."
 msgstr "Der erzeugte Prozess läuft außerhalb des Containers als der momentane Nutzer. Innerhalb des Containers hat er dieselbe UID und GID wie der momentane Nutzer, außer die Befehlszeilenoption @option{--user} wird übergeben (siehe unten)."
 
 #. type: item
-#: doc/guix.texi:4925 doc/guix.texi:26921
+#: doc/guix.texi:5653 doc/guix.texi:31058
 #, no-wrap
 msgid "--network"
 msgstr "--network"
 
 #. type: table
-#: doc/guix.texi:4930
+#: doc/guix.texi:5658
 msgid "For containers, share the network namespace with the host system.  Containers created without this flag only have access to the loopback device."
 msgstr "Bei isolierten Umgebungen („Containern“) wird hiermit der Netzwerk-Namensraum mit dem des Wirtssystems geteilt. Container, die ohne diese Befehlszeilenoption erzeugt wurden, haben nur Zugriff auf das Loopback-Gerät."
 
 #. type: item
-#: doc/guix.texi:4931
+#: doc/guix.texi:5659
 #, no-wrap
 msgid "--link-profile"
 msgstr "--link-profile"
 
 #. type: itemx
-#: doc/guix.texi:4932
+#: doc/guix.texi:5660
 #, no-wrap
 msgid "-P"
 msgstr "-P"
 
 #. type: table
-#: doc/guix.texi:4939
-msgid "For containers, link the environment profile to @file{~/.guix-profile} within the container.  This is equivalent to running the command @command{ln -s $GUIX_ENVIRONMENT ~/.guix-profile} within the container.  Linking will fail and abort the environment if the directory already exists, which will certainly be the case if @command{guix environment} was invoked in the user's home directory."
-msgstr "Bei isolierten Umgebungen („Containern“) wird das Umgebungsprofil im Container als @file{~/.guix-profile} verknüpft. Das ist äquivalent dazu, den Befehl @command{ln -s $GUIX_ENVIRONMENT ~/.guix-profile} im Container auszuführen. Wenn das Verzeichnis bereits existiert, schlägt das Verknüpfen fehl und die Umgebung wird nicht hergestellt. Dieser Fehler wird immer eintreten, wenn @command{guix environment} im persönlichen Verzeichnis des Benutzers aufgerufen wurde."
+#: doc/guix.texi:5668
+msgid "For containers, link the environment profile to @file{~/.guix-profile} within the container and set @code{GUIX_ENVIRONMENT} to that.  This is equivalent to making @file{~/.guix-profile} a symlink to the actual profile within the container.  Linking will fail and abort the environment if the directory already exists, which will certainly be the case if @command{guix environment} was invoked in the user's home directory."
+msgstr "Bei isolierten Umgebungen („Containern“) wird das Umgebungsprofil im Container als @file{~/.guix-profile} verknüpft und @file{~/.guix-profile} dann in @code{GUIX_ENVIRONMENT} gespeichert. Das ist äquivalent dazu, @file{~/.guix-profile} im Container zu einer symbolischen Verknüpfung auf das tatsächliche Profil zu machen. Wenn das Verzeichnis bereits existiert, schlägt das Verknüpfen fehl und die Umgebung wird nicht hergestellt. Dieser Fehler wird immer eintreten, wenn @command{guix environment} im persönlichen Verzeichnis des Benutzers aufgerufen wurde."
 
 #. type: table
-#: doc/guix.texi:4946
-msgid "Certain packages are configured to look in @code{~/.guix-profile} for configuration files and data;@footnote{For example, the @code{fontconfig} package inspects @file{~/.guix-profile/share/fonts} for additional fonts.} @code{--link-profile} allows these programs to behave as expected within the environment."
-msgstr "Bestimmte Pakete sind so eingerichtet, dass sie in @code{~/.guix-profile} nach Konfigurationsdateien und Daten suchen,@footnote{Zum Beispiel inspiziert das Paket @code{fontconfig} das Verzeichnis @file{~/.guix-profile/share/fonts}, um zusätzliche Schriftarten zu finden.} weshalb @code{--link-profile} benutzt werden kann, damit sich diese Programme auch in der isolierten Umgebung wie erwartet verhalten."
+#: doc/guix.texi:5674
+msgid "Certain packages are configured to look in @file{~/.guix-profile} for configuration files and data;@footnote{For example, the @code{fontconfig} package inspects @file{~/.guix-profile/share/fonts} for additional fonts.} @option{--link-profile} allows these programs to behave as expected within the environment."
+msgstr "Bestimmte Pakete sind so eingerichtet, dass sie in @file{~/.guix-profile} nach Konfigurationsdateien und Daten suchen,@footnote{Zum Beispiel inspiziert das Paket @code{fontconfig} das Verzeichnis @file{~/.guix-profile/share/fonts}, um zusätzliche Schriftarten zu finden.} weshalb @option{--link-profile} benutzt werden kann, damit sich diese Programme auch in der isolierten Umgebung wie erwartet verhalten."
 
 #. type: item
-#: doc/guix.texi:4947 doc/guix.texi:10321
+#: doc/guix.texi:5675 doc/guix.texi:12218
 #, no-wrap
 msgid "--user=@var{user}"
 msgstr "--user=@var{Benutzer}"
 
 #. type: itemx
-#: doc/guix.texi:4948 doc/guix.texi:10322
+#: doc/guix.texi:5676 doc/guix.texi:12219
 #, no-wrap
 msgid "-u @var{user}"
 msgstr "-u @var{Benutzer}"
 
 #. type: table
-#: doc/guix.texi:4955
+#: doc/guix.texi:5683
 msgid "For containers, use the username @var{user} in place of the current user.  The generated @file{/etc/passwd} entry within the container will contain the name @var{user}, the home directory will be @file{/home/@var{user}}, and no user GECOS data will be copied.  Furthermore, the UID and GID inside the container are 1000.  @var{user} need not exist on the system."
 msgstr "Bei isolierten Umgebungen („Containern“) wird der Benutzername @var{Benutzer} anstelle des aktuellen Benutzers benutzt. Der erzeugte Eintrag in @file{/etc/passwd} im Container wird also den Namen @var{Benutzer} enthalten und das persönliche Verzeichnis wird den Namen @file{/home/BENUTZER} tragen; keine GECOS-Daten über den Nutzer werden in die Umgebung übernommen. Des Weiteren sind UID und GID innerhalb der isolierten Umgebung auf 1000 gesetzt. @var{Benutzer} muss auf dem System nicht existieren."
 
 #. type: table
-#: doc/guix.texi:4960
-msgid "Additionally, any shared or exposed path (see @code{--share} and @code{--expose} respectively) whose target is within the current user's home directory will be remapped relative to @file{/home/USER}; this includes the automatic mapping of the current working directory."
-msgstr "Zusätzlich werden alle geteilten oder exponierten Pfade (siehe jeweils @code{--share} und @code{--expose}), deren Ziel innerhalb des persönlichen Verzeichnisses des aktuellen Benutzers liegt, relativ zu @file{/home/BENUTZER} erscheinen, einschließlich der automatischen Zuordnung des aktuellen Arbeitsverzeichnisses."
+#: doc/guix.texi:5688
+msgid "Additionally, any shared or exposed path (see @option{--share} and @option{--expose} respectively) whose target is within the current user's home directory will be remapped relative to @file{/home/USER}; this includes the automatic mapping of the current working directory."
+msgstr "Zusätzlich werden alle geteilten oder exponierten Pfade (siehe jeweils @option{--share} und @option{--expose}), deren Ziel innerhalb des persönlichen Verzeichnisses des aktuellen Benutzers liegt, relativ zu @file{/home/BENUTZER} erscheinen, einschließlich der automatischen Zuordnung des aktuellen Arbeitsverzeichnisses."
 
 #. type: example
-#: doc/guix.texi:4967
+#: doc/guix.texi:5695
 #, no-wrap
 msgid ""
 "# will expose paths as /home/foo/wd, /home/foo/test, and /home/foo/target\n"
@@ -10652,106 +11960,106 @@ msgstr ""
 "     --expose=/tmp/target=$HOME/target\n"
 
 #. type: table
-#: doc/guix.texi:4972
+#: doc/guix.texi:5700
 msgid "While this will limit the leaking of user identity through home paths and each of the user fields, this is only one useful component of a broader privacy/anonymity solution---not one in and of itself."
 msgstr "Obwohl dies das Datenleck von Nutzerdaten durch Pfade im persönlichen Verzeichnis und die Benutzereinträge begrenzt, kann dies nur als Teil einer größeren Lösung für Datenschutz und Anonymität sinnvoll eingesetzt werden. Es sollte nicht für sich allein dazu eingesetzt werden."
 
 #. type: item
-#: doc/guix.texi:4973
+#: doc/guix.texi:5701
 #, no-wrap
 msgid "--no-cwd"
 msgstr "--no-cwd"
 
 #. type: table
-#: doc/guix.texi:4980
-msgid "For containers, the default behavior is to share the current working directory with the isolated container and immediately change to that directory within the container.  If this is undesirable, @code{--no-cwd} will cause the current working directory to @emph{not} be automatically shared and will change to the user's home directory within the container instead.  See also @code{--user}."
-msgstr "In isolierten Umgebungen („Containern“) ist das vorgegebene Verhalten, das aktuelle Arbeitsverzeichnis mit dem isolierten Container zu teilen und in der Umgebung sofort in dieses Verzeichnis zu wechseln. Wenn das nicht gewünscht wird, kann das Angeben von @code{--no-cwd} dafür sorgen, dass das Arbeitsverzeichnis @emph{nicht} automatisch geteilt wird und stattdessen in das Persönliche Verzeichnis („Home“-Verzeichnis) gewechselt wird. Siehe auch @code{--user}."
+#: doc/guix.texi:5708
+msgid "For containers, the default behavior is to share the current working directory with the isolated container and immediately change to that directory within the container.  If this is undesirable, @option{--no-cwd} will cause the current working directory to @emph{not} be automatically shared and will change to the user's home directory within the container instead.  See also @option{--user}."
+msgstr "In isolierten Umgebungen („Containern“) ist das vorgegebene Verhalten, das aktuelle Arbeitsverzeichnis mit dem isolierten Container zu teilen und in der Umgebung sofort in dieses Verzeichnis zu wechseln. Wenn das nicht gewünscht wird, kann das Angeben von @option{--no-cwd} dafür sorgen, dass das Arbeitsverzeichnis @emph{nicht} automatisch geteilt wird und stattdessen in das Persönliche Verzeichnis („Home“-Verzeichnis) gewechselt wird. Siehe auch @option{--user}."
 
 #. type: item
-#: doc/guix.texi:4981
+#: doc/guix.texi:5709
 #, no-wrap
 msgid "--expose=@var{source}[=@var{target}]"
 msgstr "--expose=@var{Quelle}[=@var{Ziel}]"
 
 #. type: itemx
-#: doc/guix.texi:4982
+#: doc/guix.texi:5710
 #, no-wrap
 msgid "--share=@var{source}[=@var{target}]"
 msgstr "--share=@var{Quelle}[=@var{Ziel}]"
 
 #. type: table
-#: doc/guix.texi:4988
-msgid "For containers, @code{--expose} (resp. @code{--share}) exposes the file system @var{source} from the host system as the read-only (resp. writable) file system @var{target} within the container.  If @var{target} is not specified, @var{source} is used as the target mount point in the container."
-msgstr "Bei isolierten Umgebungen („Containern“) wird das Dateisystem unter @var{Quelle} vom Wirtssystem als Nur-Lese-Dateisystem @var{Ziel} (bzw.@: für @code{--share} auch mit Schreibrechten) im Container zugänglich gemacht. Wenn kein @var{Ziel} angegeben wurde, wird die @var{Quelle} auch als Ziel-Einhängepunkt in der isolierten Umgebung benutzt."
+#: doc/guix.texi:5716
+msgid "For containers, @option{--expose} (resp. @option{--share}) exposes the file system @var{source} from the host system as the read-only (resp. writable) file system @var{target} within the container.  If @var{target} is not specified, @var{source} is used as the target mount point in the container."
+msgstr "Bei isolierten Umgebungen („Containern“) wird das Dateisystem unter @var{Quelle} vom Wirtssystem als Nur-Lese-Dateisystem @var{Ziel} (bzw.@: für @option{--share} auch mit Schreibrechten) im Container zugänglich gemacht. Wenn kein @var{Ziel} angegeben wurde, wird die @var{Quelle} auch als Ziel-Einhängepunkt in der isolierten Umgebung benutzt."
 
 #. type: table
-#: doc/guix.texi:4992
+#: doc/guix.texi:5720
 msgid "The example below spawns a Guile REPL in a container in which the user's home directory is accessible read-only via the @file{/exchange} directory:"
 msgstr "Im folgenden Beispiel wird eine Guile-REPL in einer isolierten Umgebung gestartet, in der das persönliche Verzeichnis des Benutzers als Verzeichnis @file{/austausch} nur für Lesezugriffe zugänglich gemacht wurde:"
 
 #. type: example
-#: doc/guix.texi:4995
+#: doc/guix.texi:5723
 #, no-wrap
 msgid "guix environment --container --expose=$HOME=/exchange --ad-hoc guile -- guile\n"
 msgstr "guix environment --container --expose=$HOME=/austausch --ad-hoc guile -- guile\n"
 
 #. type: Plain text
-#: doc/guix.texi:5003
+#: doc/guix.texi:5731
 msgid "@command{guix environment} also supports all of the common build options that @command{guix build} supports (@pxref{Common Build Options}) as well as package transformation options (@pxref{Package Transformation Options})."
 msgstr "@command{guix environment} unterstützt auch alle gemeinsamen Erstellungsoptionen, die von @command{guix build} unterstützt werden (siehe @ref{Common Build Options}), und die Paketumwandlungsoptionen (siehe @ref{Package Transformation Options})."
 
 #. type: section
-#: doc/guix.texi:5005
+#: doc/guix.texi:5733
 #, no-wrap
 msgid "Invoking @command{guix pack}"
 msgstr "@command{guix pack} aufrufen"
 
 #. type: Plain text
-#: doc/guix.texi:5011
+#: doc/guix.texi:5739
 msgid "Occasionally you want to pass software to people who are not (yet!)  lucky enough to be using Guix.  You'd tell them to run @command{guix package -i @var{something}}, but that's not possible in this case.  This is where @command{guix pack} comes in."
 msgstr "Manchmal möchten Sie Software an Leute weitergeben, die (noch!) nicht das Glück haben, Guix zu benutzen. Mit Guix würden sie nur @command{guix package -i @var{irgendetwas}} einzutippen brauchen, aber wenn sie kein Guix haben, muss es anders gehen. Hier kommt @command{guix pack} ins Spiel."
 
 #. type: quotation
-#: doc/guix.texi:5016
+#: doc/guix.texi:5744
 msgid "If you are looking for ways to exchange binaries among machines that already run Guix, @pxref{Invoking guix copy}, @ref{Invoking guix publish}, and @ref{Invoking guix archive}."
 msgstr "Wenn Sie aber nach einer Möglichkeit suchen, Binärdateien unter Maschinen auszutauschen, auf denen Guix bereits läuft, sollten Sie einen Blick auf die Abschnitte @ref{Invoking guix copy}, @ref{Invoking guix publish} und @ref{Invoking guix archive} werfen."
 
 #. type: cindex
-#: doc/guix.texi:5018
+#: doc/guix.texi:5746
 #, no-wrap
 msgid "pack"
 msgstr "Pack"
 
 #. type: cindex
-#: doc/guix.texi:5019
+#: doc/guix.texi:5747
 #, no-wrap
 msgid "bundle"
 msgstr "Bündel"
 
 #. type: cindex
-#: doc/guix.texi:5020
+#: doc/guix.texi:5748
 #, no-wrap
 msgid "application bundle"
 msgstr "Anwendungsbündel"
 
 #. type: cindex
-#: doc/guix.texi:5021
+#: doc/guix.texi:5749
 #, no-wrap
 msgid "software bundle"
 msgstr "Software-Bündel"
 
 #. type: Plain text
-#: doc/guix.texi:5030
+#: doc/guix.texi:5758
 msgid "The @command{guix pack} command creates a shrink-wrapped @dfn{pack} or @dfn{software bundle}: it creates a tarball or some other archive containing the binaries of the software you're interested in, and all its dependencies.  The resulting archive can be used on any machine that does not have Guix, and people can run the exact same binaries as those you have with Guix.  The pack itself is created in a bit-reproducible fashion, so anyone can verify that it really contains the build results that you pretend to be shipping."
 msgstr "Der Befehl @command{guix pack} erzeugt ein gut verpacktes @dfn{Software-Bündel}: Konkret wird dadurch ein Tarball oder eine andere Art von Archiv mit den Binärdateien der Software erzeugt, die Sie sich gewünscht haben, zusammen mit all ihren Abhängigkeiten. Der resultierende Archiv kann auch auf jeder Maschine genutzt werden, die kein Guix hat, und jeder kann damit genau dieselben Binärdateien benutzen, die Ihnen unter Guix zur Verfügung stehen. Das Bündel wird dabei auf eine Bit für Bit reproduzierbare Art erzeugt, damit auch jeder nachprüfen kann, dass darin wirklich diejenigen Binärdateien enthalten sind, von denen Sie es behaupten."
 
 #. type: Plain text
-#: doc/guix.texi:5033
+#: doc/guix.texi:5761
 msgid "For example, to create a bundle containing Guile, Emacs, Geiser, and all their dependencies, you can run:"
 msgstr "Um zum Beispiel ein Bündel mit Guile, Emacs, Geiser und all ihren Abhängigkeiten zu erzeugen, führen Sie diesen Befehl aus:"
 
 #. type: example
-#: doc/guix.texi:5038
+#: doc/guix.texi:5766
 #, no-wrap
 msgid ""
 "$ guix pack guile emacs geiser\n"
@@ -10763,61 +12071,61 @@ msgstr ""
 "/gnu/store/…-pack.tar.gz\n"
 
 #. type: Plain text
-#: doc/guix.texi:5046
+#: doc/guix.texi:5774
 msgid "The result here is a tarball containing a @file{/gnu/store} directory with all the relevant packages.  The resulting tarball contains a @dfn{profile} with the three packages of interest; the profile is the same as would be created by @command{guix package -i}.  It is this mechanism that is used to create Guix's own standalone binary tarball (@pxref{Binary Installation})."
 msgstr "Als Ergebnis erhalten Sie einen Tarball mit einem Verzeichnis @file{/gnu/store}, worin sich alles relevanten Pakete befinden. Der resultierende Tarball enthält auch ein @dfn{Profil} mit den drei angegebenen Paketen; es ist dieselbe Art von Profil, die auch @command{guix package -i} erzeugen würde. Mit diesem Mechanismus wird auch der binäre Tarball zur Installation von Guix erzeugt (siehe @ref{Binary Installation})."
 
 #. type: Plain text
-#: doc/guix.texi:5051
+#: doc/guix.texi:5779
 msgid "Users of this pack would have to run @file{/gnu/store/@dots{}-profile/bin/guile} to run Guile, which you may find inconvenient.  To work around it, you can create, say, a @file{/opt/gnu/bin} symlink to the profile:"
 msgstr "Benutzer des Bündels müssten dann aber zum Beispiel @file{/gnu/store/…-profile/bin/guile} eintippen, um Guile auszuführen, was Ihnen zu unbequem sein könnte. Ein Ausweg wäre, dass Sie etwa eine symbolische Verknüpfung @file{/opt/gnu/bin} auf das Profil anlegen:"
 
 #. type: example
-#: doc/guix.texi:5054
+#: doc/guix.texi:5782
 #, no-wrap
 msgid "guix pack -S /opt/gnu/bin=bin guile emacs geiser\n"
 msgstr "guix pack -S /opt/gnu/bin=bin guile emacs geiser\n"
 
 #. type: Plain text
-#: doc/guix.texi:5058
+#: doc/guix.texi:5786
 msgid "That way, users can happily type @file{/opt/gnu/bin/guile} and enjoy."
 msgstr "Benutzer müssten dann nur noch @file{/opt/gnu/bin/guile} eintippen, um Guile zu genießen."
 
 #. type: cindex
-#: doc/guix.texi:5059
+#: doc/guix.texi:5787
 #, no-wrap
 msgid "relocatable binaries, with @command{guix pack}"
 msgstr "verschiebliche Binärdateien, mit @command{guix pack}"
 
 #. type: Plain text
-#: doc/guix.texi:5067
-msgid "What if the recipient of your pack does not have root privileges on their machine, and thus cannot unpack it in the root file system? In that case, you will want to use the @code{--relocatable} option (see below).  This option produces @dfn{relocatable binaries}, meaning they they can be placed anywhere in the file system hierarchy: in the example above, users can unpack your tarball in their home directory and directly run @file{./opt/gnu/bin/guile}."
-msgstr "Doch was ist, wenn die Empfängerin Ihres Bündels keine Administratorrechte auf ihrer Maschine hat, das Bündel also nicht ins Wurzelverzeichnis ihres Dateisystems entpacken kann? Dann möchten Sie vielleicht die Befehlszeilenoption @code{--relocatable} benutzen (siehe weiter unten). Mit dieser Option werden @dfn{verschiebliche Binärdateien} erzeugt, die auch in einem beliebigen anderen Verzeichnis in der Dateisystemhierarchie abgelegt und von dort ausgeführt werden können. Man könnte sagen, sie sind pfad-agnostisch. In obigem Beispiel würden Benutzer Ihren Tarball in ihr Persönliches Verzeichnis (das „Home“-Verzeichnis) entpacken und von dort den Befehl @file{./opt/gnu/bin/guile} ausführen."
+#: doc/guix.texi:5795
+msgid "What if the recipient of your pack does not have root privileges on their machine, and thus cannot unpack it in the root file system? In that case, you will want to use the @option{--relocatable} option (see below).  This option produces @dfn{relocatable binaries}, meaning they they can be placed anywhere in the file system hierarchy: in the example above, users can unpack your tarball in their home directory and directly run @file{./opt/gnu/bin/guile}."
+msgstr "Doch was ist, wenn die Empfängerin Ihres Bündels keine Administratorrechte auf ihrer Maschine hat, das Bündel also nicht ins Wurzelverzeichnis ihres Dateisystems entpacken kann? Dann möchten Sie vielleicht die Befehlszeilenoption @option{--relocatable} benutzen (siehe weiter unten). Mit dieser Option werden @dfn{verschiebliche Binärdateien} erzeugt, die auch in einem beliebigen anderen Verzeichnis in der Dateisystemhierarchie abgelegt und von dort ausgeführt werden können. Man könnte sagen, sie sind pfad-agnostisch. In obigem Beispiel würden Benutzer Ihren Tarball in ihr Persönliches Verzeichnis (das „Home“-Verzeichnis) entpacken und von dort den Befehl @file{./opt/gnu/bin/guile} ausführen."
 
 #. type: cindex
-#: doc/guix.texi:5068
+#: doc/guix.texi:5796
 #, no-wrap
 msgid "Docker, build an image with guix pack"
 msgstr "Docker, ein Abbild erstellen mit guix pack"
 
 #. type: Plain text
-#: doc/guix.texi:5071
+#: doc/guix.texi:5799
 msgid "Alternatively, you can produce a pack in the Docker image format using the following command:"
 msgstr "Eine weitere Möglichkeit ist, das Bündel im Format eines Docker-Abbilds (englisch Docker-Image) zu erzeugen. Das geht mit dem folgenden Befehl:"
 
 #. type: example
-#: doc/guix.texi:5074
+#: doc/guix.texi:5802
 #, no-wrap
 msgid "guix pack -f docker -S /bin=bin guile guile-readline\n"
 msgstr "guix pack -f docker -S /bin=bin guile guile-readline\n"
 
 #. type: Plain text
-#: doc/guix.texi:5079
+#: doc/guix.texi:5807
 msgid "The result is a tarball that can be passed to the @command{docker load} command, followed by @code{docker run}:"
 msgstr "Das Ergebnis ist ein Tarball, der dem Befehl @command{docker load} übergeben werden kann, gefolgt von @code{docker run}:"
 
 #. type: example
-#: doc/guix.texi:5083
+#: doc/guix.texi:5811
 #, no-wrap
 msgid ""
 "docker load < @var{file}\n"
@@ -10827,142 +12135,142 @@ msgstr ""
 "docker run -ti guile-guile-readline /bin/guile\n"
 
 #. type: Plain text
-#: doc/guix.texi:5090
+#: doc/guix.texi:5818
 msgid "where @var{file} is the image returned by @var{guix pack}, and @code{guile-guile-readline} is its ``image tag''.  See the @uref{https://docs.docker.com/engine/reference/commandline/load/, Docker documentation} for more information."
 msgstr "Dabei steht @var{Datei} für das durch @var{guix pack} gelieferte Abbild und @code{guile-guile-readline} für den „Image-Tag“, der diesem zugewiesen wurde. In der @uref{https://docs.docker.com/engine/reference/commandline/load/, Dokumentation von Docker} finden Sie nähere Informationen."
 
 #. type: cindex
-#: doc/guix.texi:5091
+#: doc/guix.texi:5819
 #, no-wrap
 msgid "Singularity, build an image with guix pack"
 msgstr "Singularity, ein Abbild erstellen mit guix pack"
 
 #. type: cindex
-#: doc/guix.texi:5092
+#: doc/guix.texi:5820
 #, no-wrap
 msgid "SquashFS, build an image with guix pack"
 msgstr "SquashFS, ein Abbild erstellen mit guix pack"
 
 #. type: Plain text
-#: doc/guix.texi:5095
+#: doc/guix.texi:5823
 msgid "Yet another option is to produce a SquashFS image with the following command:"
 msgstr "Und noch eine weitere Möglichkeit ist, dass Sie ein SquashFS-Abbild mit folgendem Befehl erzeugen:"
 
 #. type: example
-#: doc/guix.texi:5098
+#: doc/guix.texi:5826
 #, no-wrap
 msgid "guix pack -f squashfs bash guile emacs geiser\n"
 msgstr "guix pack -f squashfs bash guile emacs geiser\n"
 
 #. type: Plain text
-#: doc/guix.texi:5106
-msgid "The result is a SquashFS file system image that can either be mounted or directly be used as a file system container image with the @uref{https://singularity.lbl.gov, Singularity container execution environment}, using commands like @command{singularity shell} or @command{singularity exec}."
-msgstr "Das Ergebnis ist ein SquashFS-Dateisystemabbild, dass entweder als Dateisystem eingebunden oder mit Hilfe der @uref{https://singularity.lbl.gov, Singularity-Container-Ausführungsumgebung} als Dateisystemcontainer benutzt werden kann, mit Befehlen wie @command{singularity shell} oder @command{singularity exec}."
+#: doc/guix.texi:5834
+msgid "The result is a SquashFS file system image that can either be mounted or directly be used as a file system container image with the @uref{https://www.sylabs.io/docs/, Singularity container execution environment}, using commands like @command{singularity shell} or @command{singularity exec}."
+msgstr "Das Ergebnis ist ein SquashFS-Dateisystemabbild, dass entweder als Dateisystem eingebunden oder mit Hilfe der @uref{https://www.sylabs.io/docs/, Singularity-Container-Ausführungsumgebung} als Dateisystemcontainer benutzt werden kann, mit Befehlen wie @command{singularity shell} oder @command{singularity exec}."
 
 #. type: Plain text
-#: doc/guix.texi:5108
+#: doc/guix.texi:5836
 msgid "Several command-line options allow you to customize your pack:"
 msgstr "Es gibt mehrere Befehlszeilenoptionen, mit denen Sie Ihr Bündel anpassen können:"
 
 #. type: table
-#: doc/guix.texi:5113
+#: doc/guix.texi:5841
 msgid "Produce a pack in the given @var{format}."
 msgstr "Generiert ein Bündel im angegebenen @var{Format}."
 
 #. type: table
-#: doc/guix.texi:5115
+#: doc/guix.texi:5843
 msgid "The available formats are:"
 msgstr "Die verfügbaren Formate sind:"
 
 #. type: item
-#: doc/guix.texi:5117
+#: doc/guix.texi:5845
 #, no-wrap
 msgid "tarball"
 msgstr "tarball"
 
 #. type: table
-#: doc/guix.texi:5120
+#: doc/guix.texi:5848
 msgid "This is the default format.  It produces a tarball containing all the specified binaries and symlinks."
 msgstr "Das standardmäßig benutzte Format. Damit wird ein Tarball generiert, der alle angegebenen Binärdateien und symbolischen Verknüpfungen enthält."
 
 #. type: item
-#: doc/guix.texi:5121
+#: doc/guix.texi:5849
 #, no-wrap
 msgid "docker"
 msgstr "docker"
 
 #. type: table
-#: doc/guix.texi:5127
+#: doc/guix.texi:5855
 msgid "This produces a tarball that follows the @uref{https://github.com/docker/docker/blob/master/image/spec/v1.2.md, Docker Image Specification}.  The ``repository name'' as it appears in the output of the @command{docker images} command is computed from package names passed on the command line or in the manifest file."
 msgstr "Generiert einen Tarball gemäß der @uref{https://github.com/docker/docker/blob/master/image/spec/v1.2.md, Spezifikation für Docker-Abbilder}. Der „Repository-Name“, wie er in der Ausgabe des Befehls @command{docker images} erscheint, wird anhand der Paketnamen berechnet, die auf der Befehlszeile oder in der Manifest-Datei angegeben wurden."
 
 #. type: item
-#: doc/guix.texi:5128
+#: doc/guix.texi:5856
 #, no-wrap
 msgid "squashfs"
 msgstr "squashfs"
 
 #. type: table
-#: doc/guix.texi:5132
+#: doc/guix.texi:5860
 msgid "This produces a SquashFS image containing all the specified binaries and symlinks, as well as empty mount points for virtual file systems like procfs."
 msgstr "Generiert ein SquashFS-Abbild, das alle angegebenen Binärdateien und symbolischen Verknüpfungen enthält, sowie leere Einhängepunkte für virtuelle Dateisysteme wie procfs."
 
 #. type: quotation
-#: doc/guix.texi:5138
+#: doc/guix.texi:5866
 msgid "Singularity @emph{requires} you to provide @file{/bin/sh} in the image.  For that reason, @command{guix pack -f squashfs} always implies @code{-S /bin=bin}.  Thus, your @command{guix pack} invocation must always start with something like:"
 msgstr "Für Singularity @emph{müssen} Sie eine @file{/bin/sh} in das Abbild aufnehmen. Aus diesem Grund gilt für @command{guix pack -f squashfs} implizit immer auch @code{-S /bin=bin}. Daher muss Ihr Aufruf von @command{guix pack} immer ungefähr so beginnen:"
 
 #. type: example
-#: doc/guix.texi:5141
+#: doc/guix.texi:5869
 #, no-wrap
 msgid "guix pack -f squashfs bash @dots{}\n"
 msgstr "guix pack -f squashfs bash …\n"
 
 #. type: quotation
-#: doc/guix.texi:5146
+#: doc/guix.texi:5874
 msgid "If you forget the @code{bash} (or similar) package, @command{singularity run} and @command{singularity exec} will fail with an unhelpful ``no such file or directory'' message."
 msgstr "Wenn Sie vergessen, das @code{bash}-Paket (oder etwas Ähnliches) zu bündeln, werden @command{singularity run} und @command{singularity exec} mit der wenig hilfreichen Meldung „Datei oder Verzeichnis nicht gefunden“ scheitern."
 
 #. type: cindex
-#: doc/guix.texi:5149
+#: doc/guix.texi:5877
 #, no-wrap
 msgid "relocatable binaries"
 msgstr "verschiebliche Binärdateien"
 
 #. type: item
-#: doc/guix.texi:5150
+#: doc/guix.texi:5878
 #, no-wrap
 msgid "--relocatable"
 msgstr "--relocatable"
 
 #. type: table
-#: doc/guix.texi:5154
+#: doc/guix.texi:5882
 msgid "Produce @dfn{relocatable binaries}---i.e., binaries that can be placed anywhere in the file system hierarchy and run from there."
 msgstr "Erzeugt @dfn{verschiebliche Binärdateien} — also pfad-agnostische, „portable“ Binärdateien, die an einer beliebigen Stelle in der Dateisystemhierarchie platziert und von dort ausgeführt werden können."
 
 #. type: table
-#: doc/guix.texi:5162
-msgid "When this option is passed once, the resulting binaries require support for @dfn{user namespaces} in the kernel Linux; when passed @emph{twice}@footnote{Here's a trick to memorize it: @code{-RR}, which adds PRoot support, can be thought of as the abbreviation of ``Really Relocatable''.  Neat, isn't it?}, relocatable binaries fall to back to PRoot if user namespaces are unavailable, and essentially work anywhere---see below for the implications."
-msgstr "Wenn diese Befehlszeilenoption einmal übergeben wird, funktionieren die erzeugten Binärdateien nur dann, wenn @dfn{Benutzernamensräume} des Linux-Kernels unterstützt werden. Wenn sie @emph{zweimal}@footnote{Es gibt einen Trick, wie Sie sich das merken können: @code{-RR}, womit PRoot-Unterstützung hinzugefügt wird, kann man sich als Abkürzung für „Rundum Relocatable“ oder englisch „Really Relocatable“ vorstellen. Ist das nicht prima?} übergeben wird, laufen die Binärdateien notfalls mit PRoot, wenn keine Benutzernamensräume zur Verfügung stehen, funktionieren also ziemlich überall — siehe unten für die Auswirkungen."
+#: doc/guix.texi:5890
+msgid "When this option is passed once, the resulting binaries require support for @dfn{user namespaces} in the kernel Linux; when passed @emph{twice}@footnote{Here's a trick to memorize it: @code{-RR}, which adds PRoot support, can be thought of as the abbreviation of ``Really Relocatable''.  Neat, isn't it?}, relocatable binaries fall to back to other techniques if user namespaces are unavailable, and essentially work anywhere---see below for the implications."
+msgstr "Wenn diese Befehlszeilenoption einmal übergeben wird, funktionieren die erzeugten Binärdateien nur dann, wenn @dfn{Benutzernamensräume} des Linux-Kernels unterstützt werden. Wenn sie @emph{zweimal}@footnote{Es gibt einen Trick, wie Sie sich das merken können: @code{-RR}, womit PRoot-Unterstützung hinzugefügt wird, kann man sich als Abkürzung für „Rundum Relocatable“ oder englisch „Really Relocatable“ vorstellen. Ist das nicht prima?} übergeben wird, laufen die Binärdateien notfalls mit anderen Methoden, wenn keine Benutzernamensräume zur Verfügung stehen, funktionieren also ziemlich überall — siehe unten für die Auswirkungen."
 
 #. type: table
-#: doc/guix.texi:5164
+#: doc/guix.texi:5892
 msgid "For example, if you create a pack containing Bash with:"
 msgstr "Zum Beispiel können Sie ein Bash enthalltendes Bündel erzeugen mit:"
 
 #. type: example
-#: doc/guix.texi:5167
+#: doc/guix.texi:5895
 #, no-wrap
 msgid "guix pack -RR -S /mybin=bin bash\n"
 msgstr "guix pack -RR -S /mybin=bin bash\n"
 
 #. type: table
-#: doc/guix.texi:5172
+#: doc/guix.texi:5900
 msgid "...@: you can copy that pack to a machine that lacks Guix, and from your home directory as a normal user, run:"
 msgstr "…@: Sie können dieses dann auf eine Maschine ohne Guix kopieren und als normaler Nutzer aus Ihrem Persönlichen Verzeichnis (auch „Home“-Verzeichnis genannt) dann ausführen mit:"
 
 #. type: example
-#: doc/guix.texi:5176
+#: doc/guix.texi:5904
 #, no-wrap
 msgid ""
 "tar xf pack.tar.gz\n"
@@ -10972,60 +12280,121 @@ msgstr ""
 "./meine-bin/sh\n"
 
 #. type: table
-#: doc/guix.texi:5184
+#: doc/guix.texi:5912
 msgid "In that shell, if you type @code{ls /gnu/store}, you'll notice that @file{/gnu/store} shows up and contains all the dependencies of @code{bash}, even though the machine actually lacks @file{/gnu/store} altogether! That is probably the simplest way to deploy Guix-built software on a non-Guix machine."
 msgstr "Wenn Sie in der so gestarteten Shell dann @code{ls /gnu/store} eintippen, sehen Sie, dass Ihnen angezeigt wird, in @file{/gnu/store} befänden sich alle Abhängigkeiten von @code{bash}, obwohl auf der Maschine überhaupt kein Verzeichnis @file{/gnu/store} existiert! Dies ist vermutlich die einfachste Art, mit Guix erstellte Software für eine Maschine ohne Guix auszuliefern."
 
 #. type: quotation
-#: doc/guix.texi:5190
+#: doc/guix.texi:5918
 msgid "By default, relocatable binaries rely on the @dfn{user namespace} feature of the kernel Linux, which allows unprivileged users to mount or change root.  Old versions of Linux did not support it, and some GNU/Linux distributions turn it off."
 msgstr "Wenn die Voreinstellung verwendet wird, funktionieren verschiebliche Binärdateien nur mit @dfn{Benutzernamensräumen} (englisch @dfn{User namespaces}), einer Funktionalität des Linux-Kernels, mit der Benutzer ohne besondere Berechtigungen Dateisysteme einbinden (englisch „mount“) oder die Wurzel des Dateisystems wechseln können („change root“, kurz „chroot“). Alte Versionen von Linux haben diese Funktionalität noch nicht unterstützt und manche Distributionen von GNU/Linux schalten sie ab."
 
 #. type: quotation
-#: doc/guix.texi:5195
-msgid "To produce relocatable binaries that work even in the absence of user namespaces, pass @option{--relocatable} or @option{-R} @emph{twice}.  In that case, binaries will try user namespace support and fall back to PRoot if user namespaces are not supported."
-msgstr "Um verschiebliche Binärdateien zu erzeugen, die auch ohne Benutzernamensräume funktionieren, können Sie die Befehlszeilenoption @option{--relocatable} oder @option{-R} @emph{zweimal} angeben. In diesem Fall werden die Binärdateien zuerst überprüfen, ob Benutzernamensräume unterstützt werden, und sonst notfalls PRoot benutzen, um das Programm auszuführen, wenn Benutzernamensräume nicht unterstützt werden."
+#: doc/guix.texi:5924
+msgid "To produce relocatable binaries that work even in the absence of user namespaces, pass @option{--relocatable} or @option{-R} @emph{twice}.  In that case, binaries will try user namespace support and fall back to another @dfn{execution engine} if user namespaces are not supported.  The following execution engines are supported:"
+msgstr "Um verschiebliche Binärdateien zu erzeugen, die auch ohne Benutzernamensräume funktionieren, können Sie die Befehlszeilenoption @option{--relocatable} oder @option{-R} @emph{zweimal} angeben. In diesem Fall werden die Binärdateien zuerst überprüfen, ob Benutzernamensräume unterstützt werden, und sonst notfalls einen anderen @dfn{Ausführungstreiber} benutzen, um das Programm auszuführen, wenn Benutzernamensräume nicht unterstützt werden. Folgende Ausführungstreiber werden unterstützt:"
+
+#. type: item
+#: doc/guix.texi:5926 doc/guix.texi:15697
+#, no-wrap
+msgid "default"
+msgstr "default"
+
+#. type: table
+#: doc/guix.texi:5929
+msgid "Try user namespaces and fall back to PRoot if user namespaces are not supported (see below)."
+msgstr "Es wird versucht, Benutzernamensräume zu verwenden. Sind Benutzernamensräume nicht verfügbar (siehe unten), wird auf PRoot zurückgegriffen."
+
+#. type: item
+#: doc/guix.texi:5930
+#, no-wrap
+msgid "performance"
+msgstr "performance"
+
+#. type: table
+#: doc/guix.texi:5933
+msgid "Try user namespaces and fall back to Fakechroot if user namespaces are not supported (see below)."
+msgstr "Es wird versucht, Benutzernamensräume zu verwenden. Sind Benutzernamensräume nicht verfügbar (siehe unten), wird auf Fakechroot zurückgegriffen."
+
+#. type: item
+#: doc/guix.texi:5934
+#, no-wrap
+msgid "userns"
+msgstr "userns"
+
+#. type: table
+#: doc/guix.texi:5937
+msgid "Run the program through user namespaces and abort if they are not supported."
+msgstr "Das Programm wird mit Hilfe von Benutzernamensräumen ausgeführt. Wenn sie nicht unterstützt werden, bricht das Programm ab."
+
+#. type: item
+#: doc/guix.texi:5938
+#, no-wrap
+msgid "proot"
+msgstr "proot"
+
+#. type: table
+#: doc/guix.texi:5945
+msgid "Run through PRoot.  The @uref{https://proot-me.github.io/, PRoot} program provides the necessary support for file system virtualization.  It achieves that by using the @code{ptrace} system call on the running program.  This approach has the advantage to work without requiring special kernel support, but it incurs run-time overhead every time a system call is made."
+msgstr "Durch PRoot ausführen. Das Programm @uref{https://proot-me.github.io/, PRoot} bietet auch Unterstützung für Dateisystemvirtualisierung, indem der Systemaufruf @code{ptrace} auf das laufende Programm angewendet wird. Dieser Ansatz funktioniert auch ohne besondere Kernel-Unterstützung, aber das Programm braucht mehr Zeit, um selbst Systemaufrufe durchzuführen."
+
+#. type: item
+#: doc/guix.texi:5946
+#, no-wrap
+msgid "fakechroot"
+msgstr "fakechroot"
+
+#. type: table
+#: doc/guix.texi:5954
+msgid "Run through Fakechroot.  @uref{https://github.com/dex4er/fakechroot/, Fakechroot} virtualizes file system accesses by intercepting calls to C library functions such as @code{open}, @code{stat}, @code{exec}, and so on.  Unlike PRoot, it incurs very little overhead.  However, it does not always work: for example, some file system accesses made from within the C library are not intercepted, and file system accesses made @i{via} direct syscalls are not intercepted either, leading to erratic behavior."
+msgstr "Durch Fakechroot laufen lassen. @uref{https://github.com/dex4er/fakechroot/, Fakechroot} virtualisiert Dateisystemzugriffe, indem Aufrufe von Funktionen der C-Bibliothek wie @code{open}, @code{stat}, @code{exec} und so weiter abgefangen werden. Anders als bei PRoot entsteht dabei kaum Mehraufwand. Jedoch funktioniert das nicht immer, zum Beispiel werden manche Dateisystemzugriffe aus der C-Bibliothek heraus @emph{nicht} abgefangen, ebenso wenig wie Dateisystemaufrufe über direkte Systemaufrufe, was zu fehlerbehaftetem Verhalten führt."
+
+#. type: vindex
+#: doc/guix.texi:5956
+#, no-wrap
+msgid "GUIX_EXECUTION_ENGINE"
+msgstr "GUIX_EXECUTION_ENGINE"
 
 #. type: quotation
-#: doc/guix.texi:5201
-msgid "The @uref{https://proot-me.github.io/, PRoot} program provides the necessary support for file system virtualization.  It achieves that by using the @code{ptrace} system call on the running program.  This approach has the advantage to work without requiring special kernel support, but it incurs run-time overhead every time a system call is made."
-msgstr "Das Programm @uref{https://proot-me.github.io/, PRoot} bietet auch Unterstützung für Dateisystemvirtualisierung, indem der Systemaufruf @code{ptrace} auf das laufende Programm angewendet wird. Dieser Ansatz funktioniert auch ohne besondere Kernel-Unterstützung, aber das Programm braucht mehr Zeit, um selbst Systemaufrufe durchzuführen."
+#: doc/guix.texi:5960
+msgid "When running a wrapped program, you can explicitly request one of the execution engines listed above by setting the @env{GUIX_EXECUTION_ENGINE} environment variable accordingly."
+msgstr "Wenn Sie ein verpacktes Programm ausführen, können Sie einen der oben angeführten Ausführungstreiber ausdrücklich anfordern, indem Sie die Umgebungsvariable @env{GUIX_EXECUTION_ENGINE} entsprechend festlegen."
 
 #. type: cindex
-#: doc/guix.texi:5203
+#: doc/guix.texi:5962
 #, no-wrap
 msgid "entry point, for Docker images"
 msgstr "Einsprungpunkt, für Docker-Abbilder"
 
 #. type: item
-#: doc/guix.texi:5204
+#: doc/guix.texi:5963
 #, no-wrap
 msgid "--entry-point=@var{command}"
 msgstr "--entry-point=@var{Befehl}"
 
 #. type: table
-#: doc/guix.texi:5209
+#: doc/guix.texi:5968
 msgid "Use @var{command} as the @dfn{entry point} of the resulting pack, if the pack format supports it---currently @code{docker} and @code{squashfs} (Singularity)  support it.  @var{command} must be relative to the profile contained in the pack."
 msgstr "Den @var{Befehl} als den @dfn{Einsprungpunkt} des erzeugten Bündels verwenden, wenn das Bündelformat einen solchen unterstützt — derzeit tun das @code{docker} und @code{squashfs} (Singularity). Der @var{Befehl} wird relativ zum Profil ausgeführt, das sich im Bündel befindet."
 
 #. type: table
-#: doc/guix.texi:5213
+#: doc/guix.texi:5972
 msgid "The entry point specifies the command that tools like @code{docker run} or @code{singularity run} automatically start by default.  For example, you can do:"
 msgstr "Der Einsprungpunkt gibt den Befehl an, der mit @code{docker run} oder @code{singularity run} beim Start nach Voreinstellung automatisch ausgeführt wird. Zum Beispiel können Sie das hier benutzen:"
 
 #. type: example
-#: doc/guix.texi:5216
+#: doc/guix.texi:5975
 #, no-wrap
 msgid "guix pack -f docker --entry-point=bin/guile guile\n"
 msgstr "guix pack -f docker --entry-point=bin/guile guile\n"
 
 #. type: table
-#: doc/guix.texi:5220
+#: doc/guix.texi:5979
 msgid "The resulting pack can easily be loaded and @code{docker run} with no extra arguments will spawn @code{bin/guile}:"
 msgstr "Dann kann das erzeugte Bündel mit z.B.@: @code{docker run} ohne weitere Befehlszeilenargumente einfach geladen und ausgeführt werden, um @code{bin/guile} zu starten:"
 
 #. type: example
-#: doc/guix.texi:5224
+#: doc/guix.texi:5983
 #, no-wrap
 msgid ""
 "docker load -i pack.tar.gz\n"
@@ -11035,251 +12404,395 @@ msgstr ""
 "docker run @var{Abbild-ID}\n"
 
 #. type: table
-#: doc/guix.texi:5229 doc/guix.texi:9487 doc/guix.texi:10192
+#: doc/guix.texi:5988 doc/guix.texi:11308 doc/guix.texi:12093
 msgid "Consider the package @var{expr} evaluates to."
 msgstr "Als Paket benutzen, wozu der @var{Ausdruck} ausgewertet wird."
 
 #. type: table
-#: doc/guix.texi:5233
-msgid "This has the same purpose as the same-named option in @command{guix build} (@pxref{Additional Build Options, @code{--expression} in @command{guix build}})."
-msgstr "Der Zweck hiervon ist derselbe wie bei der gleichnamigen Befehlszeilenoption in @command{guix build} (siehe @ref{Additional Build Options, @code{--expression} in @command{guix build}})."
+#: doc/guix.texi:5992
+msgid "This has the same purpose as the same-named option in @command{guix build} (@pxref{Additional Build Options, @option{--expression} in @command{guix build}})."
+msgstr "Der Zweck hiervon ist derselbe wie bei der gleichnamigen Befehlszeilenoption in @command{guix build} (siehe @ref{Additional Build Options, @option{--expression} in @command{guix build}})."
 
 #. type: table
-#: doc/guix.texi:5239
+#: doc/guix.texi:5998
 msgid "Use the packages contained in the manifest object returned by the Scheme code in @var{file}.  This option can be repeated several times, in which case the manifests are concatenated."
 msgstr "Die Pakete benutzen, die im Manifest-Objekt aufgeführt sind, das vom Scheme-Code in der angegebenen @var{Datei} geliefert wird. Wenn diese Befehlszeilenoption mehrmals wiederholt angegeben wird, werden die Manifeste aneinandergehängt."
 
 #. type: table
-#: doc/guix.texi:5247
+#: doc/guix.texi:6006
 msgid "This has a similar purpose as the same-named option in @command{guix package} (@pxref{profile-manifest, @option{--manifest}}) and uses the same manifest files.  It allows you to define a collection of packages once and use it both for creating profiles and for creating archives for use on machines that do not have Guix installed.  Note that you can specify @emph{either} a manifest file @emph{or} a list of packages, but not both."
 msgstr "Dies hat einen ähnlichen Zweck wie die gleichnamige Befehlszeilenoption in @command{guix package} (siehe @ref{profile-manifest, @option{--manifest}}) und benutzt dieselben Regeln für Manifest-Dateien. Damit können Sie eine Reihe von Paketen einmal definieren und dann sowohl zum Erzeugen von Profilesn als auch zum Erzeugen von Archiven benutzen, letztere für Maschinen, auf denen Guix nicht installiert ist. Beachten Sie, dass Sie @emph{entweder} eine Manifest-Datei @emph{oder} eine Liste von Paketen angeben können, aber nicht beides."
 
 #. type: item
-#: doc/guix.texi:5253 doc/guix.texi:8669
+#: doc/guix.texi:6012 doc/guix.texi:10477
 #, no-wrap
 msgid "--target=@var{triplet}"
 msgstr "--target=@var{Tripel}"
 
 #. type: cindex
-#: doc/guix.texi:5254 doc/guix.texi:5610 doc/guix.texi:8670
+#: doc/guix.texi:6013 doc/guix.texi:6464 doc/guix.texi:10478
 #, no-wrap
 msgid "cross-compilation"
 msgstr "Cross-Kompilieren"
 
 #. type: table
-#: doc/guix.texi:5258
-msgid "Cross-build for @var{triplet}, which must be a valid GNU triplet, such as @code{\"mips64el-linux-gnu\"} (@pxref{Specifying target triplets, GNU configuration triplets,, autoconf, Autoconf})."
-msgstr "Lässt für das angegebene @var{Tripel} cross-erstellen, dieses muss ein gültiges GNU-Tripel wie z.B.@: @code{\"mips64el-linux-gnu\"} sein (siehe @ref{Specifying target triplets, GNU configuration triplets,, autoconf, Autoconf})."
+#: doc/guix.texi:6017
+msgid "Cross-build for @var{triplet}, which must be a valid GNU triplet, such as @code{\"aarch64-linux-gnu\"} (@pxref{Specifying target triplets, GNU configuration triplets,, autoconf, Autoconf})."
+msgstr "Lässt für das angegebene @var{Tripel} cross-erstellen, dieses muss ein gültiges GNU-Tripel wie z.B.@: @code{\"aarch64-linux-gnu\"} sein (siehe @ref{Specifying target triplets, GNU-Konfigurationstripel,, autoconf, Autoconf})."
 
 #. type: item
-#: doc/guix.texi:5259
+#: doc/guix.texi:6018
 #, no-wrap
 msgid "--compression=@var{tool}"
 msgstr "--compression=@var{Werkzeug}"
 
 #. type: itemx
-#: doc/guix.texi:5260
+#: doc/guix.texi:6019
 #, no-wrap
 msgid "-C @var{tool}"
 msgstr "-C @var{Werkzeug}"
 
 #. type: table
-#: doc/guix.texi:5263
-msgid "Compress the resulting tarball using @var{tool}---one of @code{gzip}, @code{bzip2}, @code{xz}, @code{lzip}, or @code{none} for no compression."
-msgstr "Komprimiert den resultierenden Tarball mit dem angegebenen @var{Werkzeug} — dieses kann @code{gzip}, @code{bzip2}, @code{xz}, @code{lzip} oder @code{none} für keine Kompression sein."
+#: doc/guix.texi:6023
+msgid "Compress the resulting tarball using @var{tool}---one of @code{gzip}, @code{zstd}, @code{bzip2}, @code{xz}, @code{lzip}, or @code{none} for no compression."
+msgstr "Komprimiert den resultierenden Tarball mit dem angegebenen @var{Werkzeug} — dieses kann @code{gzip}, @code{zstd}, @code{bzip2}, @code{xz}, @code{lzip} oder @code{none} für keine Kompression sein."
 
 #. type: item
-#: doc/guix.texi:5264
+#: doc/guix.texi:6024
 #, no-wrap
 msgid "--symlink=@var{spec}"
 msgstr "--symlink=@var{Spezifikation}"
 
 #. type: itemx
-#: doc/guix.texi:5265
+#: doc/guix.texi:6025
 #, no-wrap
 msgid "-S @var{spec}"
 msgstr "-S @var{Spezifikation}"
 
 #. type: table
-#: doc/guix.texi:5268
+#: doc/guix.texi:6028
 msgid "Add the symlinks specified by @var{spec} to the pack.  This option can appear several times."
 msgstr "Fügt die in der @var{Spezifikation} festgelegten symbolischen Verknüpfungen zum Bündel hinzu.  Diese Befehlszeilenoption darf mehrmals vorkommen."
 
 #. type: table
-#: doc/guix.texi:5272
+#: doc/guix.texi:6032
 msgid "@var{spec} has the form @code{@var{source}=@var{target}}, where @var{source} is the symlink that will be created and @var{target} is the symlink target."
 msgstr "Die @var{Spezifikation} muss von der Form @code{@var{Quellort}=@var{Zielort}} sein, wobei der @var{Quellort} der Ort der symbolischen Verknüpfung, die erstellt wird, und @var{Zielort} das Ziel der symbolischen Verknüpfung ist."
 
 #. type: table
-#: doc/guix.texi:5275
+#: doc/guix.texi:6035
 msgid "For instance, @code{-S /opt/gnu/bin=bin} creates a @file{/opt/gnu/bin} symlink pointing to the @file{bin} sub-directory of the profile."
 msgstr "Zum Beispiel wird mit @code{-S /opt/gnu/bin=bin} eine symbolische Verknüpfung @file{/opt/gnu/bin} auf das Unterverzeichnis @file{bin} im Profil erzeugt."
 
 #. type: item
-#: doc/guix.texi:5276 doc/guix.texi:26880
+#: doc/guix.texi:6036 doc/guix.texi:31017
 #, no-wrap
 msgid "--save-provenance"
 msgstr "--save-provenance"
 
 #. type: table
-#: doc/guix.texi:5280
+#: doc/guix.texi:6040
 msgid "Save provenance information for the packages passed on the command line.  Provenance information includes the URL and commit of the channels in use (@pxref{Channels})."
 msgstr "Provenienzinformationen für die auf der Befehlszeile übergebenen Pakete speichern. Zu den Provenienzinformationen gehören die URL und der Commit jedes benutzten Kanals (siehe @ref{Channels})."
 
 #. type: table
-#: doc/guix.texi:5286
+#: doc/guix.texi:6046
 msgid "Provenance information is saved in the @file{/gnu/store/@dots{}-profile/manifest} file in the pack, along with the usual package metadata---the name and version of each package, their propagated inputs, and so on.  It is useful information to the recipient of the pack, who then knows how the pack was (supposedly) obtained."
 msgstr "Provenienzinformationen werden in der Datei @file{/gnu/store/…-profile/manifest} im Bündel zusammen mit den üblichen Paketmetadaten abgespeichert — also Name und Version jedes Pakets, welche Eingaben dabei propagiert werden und so weiter. Die Informationen nützen den Empfängern des Bündels, weil sie dann wissen, woraus das Bündel (angeblich) besteht."
 
 #. type: table
-#: doc/guix.texi:5292
+#: doc/guix.texi:6052
 msgid "This option is not enabled by default because, like timestamps, provenance information contributes nothing to the build process.  In other words, there is an infinity of channel URLs and commit IDs that can lead to the same pack.  Recording such ``silent'' metadata in the output thus potentially breaks the source-to-binary bitwise reproducibility property."
 msgstr "Der Vorgabe nach wird diese Befehlszeilenoption @emph{nicht} verwendet, weil Provenienzinformationen genau wie Zeitstempel nichts zum Erstellungsprozess beitragen. Mit anderen Worten gibt es unendlich viele Kanal-URLs und Commit-IDs, aus denen dasselbe Bündel stammen könnte. Wenn solche „stillen“ Metadaten Teil des Ausgabe sind, dann wird also die bitweise Reproduzierbarkeit von Quellcode zu Binärdateien eingeschränkt."
 
 #. type: cindex
-#: doc/guix.texi:5295
+#: doc/guix.texi:6055
 #, no-wrap
 msgid "garbage collector root, for packs"
 msgstr "Müllsammlerwurzel, für Bündel"
 
 #. type: table
-#: doc/guix.texi:5298
+#: doc/guix.texi:6058
 msgid "Make @var{file} a symlink to the resulting pack, and register it as a garbage collector root."
 msgstr "Die @var{Datei} zu einer symbolischen Verknüpfung auf das erzeugte Bündel machen und als Müllsammlerwurzel registrieren."
 
 #. type: item
-#: doc/guix.texi:5299
+#: doc/guix.texi:6059
 #, no-wrap
 msgid "--localstatedir"
 msgstr "--localstatedir"
 
 #. type: itemx
-#: doc/guix.texi:5300
+#: doc/guix.texi:6060
 #, no-wrap
 msgid "--profile-name=@var{name}"
 msgstr "--profile-name=@var{Name}"
 
 #. type: table
-#: doc/guix.texi:5305
+#: doc/guix.texi:6065
 msgid "Include the ``local state directory'', @file{/var/guix}, in the resulting pack, and notably the @file{/var/guix/profiles/per-user/root/@var{name}} profile---by default @var{name} is @code{guix-profile}, which corresponds to @file{~root/.guix-profile}."
 msgstr "Das „lokale Zustandsverzeichnis“ @file{/var/guix} ins resultierende Bündel aufnehmen, speziell auch das Profil @file{/var/guix/profiles/per-user/root/@var{Name}} — der vorgegebene @var{Name} ist @code{guix-profile}, was @file{~root/.guix-profile} entspricht."
 
 #. type: table
-#: doc/guix.texi:5311
+#: doc/guix.texi:6071
 msgid "@file{/var/guix} contains the store database (@pxref{The Store}) as well as garbage-collector roots (@pxref{Invoking guix gc}).  Providing it in the pack means that the store is ``complete'' and manageable by Guix; not providing it pack means that the store is ``dead'': items cannot be added to it or removed from it after extraction of the pack."
 msgstr "@file{/var/guix} enthält die Store-Datenbank (siehe @ref{The Store}) sowie die Müllsammlerwurzeln (siehe @ref{Invoking guix gc}). Es ins Bündel aufzunehmen, bedeutet, dass der enthaltene Store „vollständig“ ist und von Guix verwaltet werden kann, andernfalls wäre der Store im Bündel „tot“ und nach dem Auspacken des Bündels könnte Guix keine Objekte mehr dort hinzufügen oder entfernen."
 
 #. type: table
-#: doc/guix.texi:5314
+#: doc/guix.texi:6074
 msgid "One use case for this is the Guix self-contained binary tarball (@pxref{Binary Installation})."
 msgstr "Ein Anwendungsfall hierfür ist der eigenständige, alle Komponenten umfassende binäre Tarball von Guix (siehe @ref{Binary Installation})."
 
 #. type: item
-#: doc/guix.texi:5315 doc/guix.texi:26874
+#: doc/guix.texi:6075 doc/guix.texi:31011
 #, no-wrap
 msgid "--derivation"
 msgstr "--derivation"
 
 #. type: itemx
-#: doc/guix.texi:5316 doc/guix.texi:8701 doc/guix.texi:26875
+#: doc/guix.texi:6076 doc/guix.texi:10509 doc/guix.texi:31012
 #, no-wrap
 msgid "-d"
 msgstr "-d"
 
 #. type: table
-#: doc/guix.texi:5318
+#: doc/guix.texi:6078
 msgid "Print the name of the derivation that builds the pack."
 msgstr "Den Namen der Ableitung ausgeben, die das Bündel erstellt."
 
 #. type: table
-#: doc/guix.texi:5322
+#: doc/guix.texi:6082
 msgid "Use the bootstrap binaries to build the pack.  This option is only useful to Guix developers."
 msgstr "Mit den Bootstrap-Binärdateien das Bündel erstellen. Diese Option ist nur für Guix-Entwickler nützlich."
 
 #. type: Plain text
-#: doc/guix.texi:5327
+#: doc/guix.texi:6087
 msgid "In addition, @command{guix pack} supports all the common build options (@pxref{Common Build Options}) and all the package transformation options (@pxref{Package Transformation Options})."
 msgstr "Außerdem unterstützt @command{guix pack} alle gemeinsamen Erstellungsoptionen (siehe @ref{Common Build Options}) und alle Paketumwandlungsoptionen (siehe @ref{Package Transformation Options})."
 
+#. type: cindex
+#: doc/guix.texi:6092
+#, no-wrap
+msgid "GCC"
+msgstr "GCC"
+
+#. type: cindex
+#: doc/guix.texi:6093
+#, no-wrap
+msgid "ld-wrapper"
+msgstr "ld-wrapper"
+
+#. type: cindex
+#: doc/guix.texi:6094
+#, no-wrap
+msgid "linker wrapper"
+msgstr "Wrapper für den Binder/Linker"
+
+#. type: cindex
+#: doc/guix.texi:6095
+#, no-wrap
+msgid "toolchain, for C development"
+msgstr "Toolchain, für die Entwicklung mit C"
+
+#. type: cindex
+#: doc/guix.texi:6096
+#, no-wrap
+msgid "toolchain, for Fortran development"
+msgstr "Toolchain, für die Entwicklung mit Fortran"
+
+#. type: Plain text
+#: doc/guix.texi:6103
+msgid "If you need a complete toolchain for compiling and linking C or C++ source code, use the @code{gcc-toolchain} package.  This package provides a complete GCC toolchain for C/C++ development, including GCC itself, the GNU C Library (headers and binaries, plus debugging symbols in the @code{debug} output), Binutils, and a linker wrapper."
+msgstr "Wenn Sie einen vollständigen Werkzeugsatz zum Kompilieren und Binden von Quellcode in C oder C++ brauchen, werden Sie das Paket @code{gcc-toolchain} haben wollen. Das Paket bietet eine vollständige GCC-Toolchain für die Entwicklung mit C/C++, einschließlich GCC selbst, der GNU-C-Bibliothek (Header-Dateien und Binärdateien samt Symbolen zur Fehlersuche/Debugging in der @code{debug}-Ausgabe), Binutils und einen Wrapper für den Binder/Linker."
+
+#. type: Plain text
+#: doc/guix.texi:6109
+msgid "The wrapper's purpose is to inspect the @code{-L} and @code{-l} switches passed to the linker, add corresponding @code{-rpath} arguments, and invoke the actual linker with this new set of arguments.  You can instruct the wrapper to refuse to link against libraries not in the store by setting the @env{GUIX_LD_WRAPPER_ALLOW_IMPURITIES} environment variable to @code{no}."
+msgstr "Der Zweck des Wrappers ist, die an den Binder übergebenen Befehlszeilenoptionen mit @code{-L} und @code{-l} zu überprüfen und jeweils passende Argumente mit @code{-rpath} anzufügen, womit dann der echte Binder aufgerufen wird. Standardmäßig weigert sich der Binder-Wrapper, mit Bibliotheken außerhalb des Stores zu binden, um „Reinheit“ zu gewährleisten. Das kann aber stören, wenn man die Toolchain benutzt, um mit lokalen Bibliotheken zu binden. Um Referenzen auf Bibliotheken außerhalb des Stores zu erlauben, müssen Sie die Umgebungsvariable @env{GUIX_LD_WRAPPER_ALLOW_IMPURITIES} setzen."
+
+#. type: Plain text
+#: doc/guix.texi:6113
+msgid "The package @code{gfortran-toolchain} provides a complete GCC toolchain for Fortran development.  For other languages, please use @samp{guix search gcc toolchain} (@pxref{guix-search,, Invoking guix package})."
+msgstr "Das Paket @code{gfortran-toolchain} stellt eine vollständige GCC-Toolchain für die Entwicklung mit Fortran zur Verfügung. Pakete für die Entwicklung mit anderen Sprachen suchen Sie bitte mit @samp{guix search gcc toolchain} (siehe @ref{guix-search,, Invoking guix package})."
+
+#. type: section
+#: doc/guix.texi:6116
+#, no-wrap
+msgid "Invoking @command{guix git authenticate}"
+msgstr "@command{guix git authenticate} aufrufen"
+
 #. type: Plain text
-#: doc/guix.texi:5339
+#: doc/guix.texi:6124
+msgid "The @command{guix git authenticate} command authenticates a Git checkout following the same rule as for channels (@pxref{channel-authentication, channel authentication}).  That is, starting from a given commit, it ensures that all subsequent commits are signed by an OpenPGP key whose fingerprint appears in the @file{.guix-authorizations} file of its parent commit(s)."
+msgstr "Der Befehl @command{guix git authenticate} authentifiziert ein Git-Checkout nach derselben Regel wie für Kanäle (siehe @ref{channel-authentication, Kanalauthentifizierung}). Das bedeutet, dass angefangen beim angegebenen Commit sichergestellt wird, dass alle nachfolgenden Commits mit einem OpenPGP-Schlüssel signiert worden sind, dessen Fingerabdruck in der @file{.guix-authorizations}-Datei seines bzw.@: seiner jeweiligen Elterncommits aufgeführt ist."
+
+#. type: Plain text
+#: doc/guix.texi:6129
+msgid "You will find this command useful if you maintain a channel.  But in fact, this authentication mechanism is useful in a broader context, so you might want to use it for Git repositories that have nothing to do with Guix."
+msgstr "Sie werden diesen Befehl zu schätzen wissen, wenn Sie einen Kanal betreuen. Tatsächlich ist dieser Authentifizierungsmechanismus aber auch bei weiteren Dingen nützlich; vielleicht möchten Sie ihn für Git-Repositorys einsetzen, die gar nichts mit Guix zu tun haben?"
+
+#. type: example
+#: doc/guix.texi:6134
+#, no-wrap
+msgid "guix git authenticate @var{commit} @var{signer} [@var{options}@dots{}]\n"
+msgstr "guix git authenticate @var{Commit} @var{Unterzeichner} [@var{Optionen}…]\n"
+
+#. type: Plain text
+#: doc/guix.texi:6143
+msgid "By default, this command authenticates the Git checkout in the current directory; it outputs nothing and exits with exit code zero on success and non-zero on failure.  @var{commit} above denotes the first commit where authentication takes place, and @var{signer} is the OpenPGP fingerprint of public key used to sign @var{commit}.  Together, they form a ``channel introduction'' (@pxref{channel-authentication, channel introduction}).  The options below allow you to fine-tune the process."
+msgstr "Nach Vorgabe wird mit diesem Befehl das Git-Checkout im aktuellen Arbeitsverzeichnis authentifiziert. Es wird bei Erfolg nichts ausgegeben und der Exit-Status null zurückgeliefert; bei einem Fehler wird ein von null verschiedener Exit-Status zurückgeliefert. @var{Commit} gibt den ersten Commit an, der authentifiziert wird, und @var{Unterzeichner} ist der OpenPGP-Fingerabdruck des öffentlichen Schlüssels, mit dem der @var{Commit} signiert wurde. Zusammen bilden sie eine „Kanaleinführung“ (siehe @ref{channel-authentication, Kanaleinführung}). Mit den unten aufgeführten Befehlszeilenoptionen können Sie Feineinstellungen am Prozess vornehmen."
+
+#. type: item
+#: doc/guix.texi:6145
+#, no-wrap
+msgid "--repository=@var{directory}"
+msgstr "--repository=@var{Verzeichnis}"
+
+#. type: itemx
+#: doc/guix.texi:6146
+#, no-wrap
+msgid "-r @var{directory}"
+msgstr "-r @var{Verzeichnis}"
+
+#. type: table
+#: doc/guix.texi:6149
+msgid "Open the Git repository in @var{directory} instead of the current directory."
+msgstr "Das Git-Repository im @var{Verzeichnis} statt im aktuellen Verzeichnis öffnen."
+
+#. type: item
+#: doc/guix.texi:6150
+#, no-wrap
+msgid "--keyring=@var{reference}"
+msgstr "--keyring=@var{Referenz}"
+
+#. type: itemx
+#: doc/guix.texi:6151
+#, no-wrap
+msgid "-k @var{reference}"
+msgstr "-k @var{Referenz}"
+
+#. type: table
+#: doc/guix.texi:6157
+msgid "Load OpenPGP keyring from @var{reference}, the reference of a branch such as @code{origin/keyring} or @code{my-keyring}.  The branch must contain OpenPGP public keys in @file{.key} files, either in binary form or ``ASCII-armored''.  By default the keyring is loaded from the branch named @code{keyring}."
+msgstr "Den OpenPGP-Schlüsselbund („Keyring“) von der angegebenen @var{Referenz} laden, einem Verweis auf einen Branch wie @code{origin/keyring} oder @code{my-keyring}. Der Branch muss öffentliche Schlüssel im OpenPGP-Format in @file{.key}-Dateien enthalten, entweder als Binärdateien oder mit „ASCII-Hülle“. Nach Vorgabe wird der Schlüsselbund von einem Branch namens @code{keyring} geladen."
+
+#. type: item
+#: doc/guix.texi:6158
+#, no-wrap
+msgid "--stats"
+msgstr "--stats"
+
+#. type: table
+#: doc/guix.texi:6160
+msgid "Display commit signing statistics upon completion."
+msgstr "Nach Abschluss Statistiken über die signierten Commits anzeigen."
+
+#. type: item
+#: doc/guix.texi:6161
+#, no-wrap
+msgid "--cache-key=@var{key}"
+msgstr "--cache-key=@var{Schlüssel}"
+
+#. type: table
+#: doc/guix.texi:6165
+msgid "Previously-authenticated commits are cached in a file under @file{~/.cache/guix/authentication}.  This option forces the cache to be stored in file @var{key} in that directory."
+msgstr "Bereits authentifizierte Commits werden in einer Datei unter @file{~/.cache/guix/authentication} zwischengespeichert. Diese Option erzwingt, dass der Speicher innerhalb dieses Verzeichnisses in der Datei @var{Schlüssel} angelegt wird."
+
+#. type: item
+#: doc/guix.texi:6166
+#, no-wrap
+msgid "--historical-authorizations=@var{file}"
+msgstr "--historical-authorizations=@var{Datei}"
+
+#. type: table
+#: doc/guix.texi:6173
+msgid "By default, any commit whose parent commit(s) lack the @file{.guix-authorizations} file is considered inauthentic.  In contrast, this option considers the authorizations in @var{file} for any commit that lacks @file{.guix-authorizations}.  The format of @var{file} is the same as that of @file{.guix-authorizations} (@pxref{channel-authorizations, @file{.guix-authorizations} format})."
+msgstr "Nach Vorgabe wird jeder Commit, dessen Elterncommit(s) die Datei @file{.guix-authorizations} fehlt, als gefälscht angesehen. Mit dieser Option werden dagegen die Autorisierungen in der @var{Datei} für jeden Commit ohne @file{.guix-authorizations} verwendet. Das Format der @var{Datei} ist dasselbe wie bei @file{.guix-authorizations} (siehe @ref{channel-authorizations, Format von @file{.guix-authorizations}})."
+
+#. type: Plain text
+#: doc/guix.texi:6186
 msgid "GNU Guix provides several Scheme programming interfaces (APIs) to define, build, and query packages.  The first interface allows users to write high-level package definitions.  These definitions refer to familiar packaging concepts, such as the name and version of a package, its build system, and its dependencies.  These definitions can then be turned into concrete build actions."
 msgstr "GNU Guix bietet mehrere Programmierschnittstellen (APIs) in der Programmiersprache Scheme an, mit denen Software-Pakete definiert, erstellt und gesucht werden können. Die erste Schnittstelle erlaubt es Nutzern, ihre eigenen Paketdefinitionen in einer Hochsprache zu schreiben. Diese Definitionen nehmen Bezug auf geläufige Konzepte der Paketverwaltung, wie den Namen und die Version eines Pakets, sein Erstellungssystem (Build System) und seine Abhängigkeiten (Dependencies). Diese Definitionen können dann in konkrete Erstellungsaktionen umgewandelt werden."
 
 #. type: Plain text
-#: doc/guix.texi:5345
-msgid "Build actions are performed by the Guix daemon, on behalf of users.  In a standard setup, the daemon has write access to the store---the @file{/gnu/store} directory---whereas users do not.  The recommended setup also has the daemon perform builds in chroots, under a specific build users, to minimize interference with the rest of the system."
+#: doc/guix.texi:6192
+msgid "Build actions are performed by the Guix daemon, on behalf of users.  In a standard setup, the daemon has write access to the store---the @file{/gnu/store} directory---whereas users do not.  The recommended setup also has the daemon perform builds in chroots, under specific build users, to minimize interference with the rest of the system."
 msgstr "Erstellungsaktionen werden vom Guix-Daemon für dessen Nutzer durchgeführt. Bei einer normalen Konfiguration hat der Daemon Schreibzugriff auf den Store, also das Verzeichnis @file{/gnu/store}, Nutzer hingegen nicht. Die empfohlene Konfiguration lässt den Daemon die Erstellungen in chroot-Umgebungen durchführen, mit eigenen Benutzerkonten für „Erstellungsbenutzer“, um gegenseitige Beeinflussung der Erstellung und des übrigen Systems zu minimieren."
 
 #. type: Plain text
-#: doc/guix.texi:5354
+#: doc/guix.texi:6201
 msgid "Lower-level APIs are available to interact with the daemon and the store.  To instruct the daemon to perform a build action, users actually provide it with a @dfn{derivation}.  A derivation is a low-level representation of the build actions to be taken, and the environment in which they should occur---derivations are to package definitions what assembly is to C programs.  The term ``derivation'' comes from the fact that build results @emph{derive} from them."
 msgstr "Systemnahe APIs stehen zur Verfügung, um mit dem Daemon und dem Store zu interagieren. Um den Daemon anzuweisen, eine Erstellungsaktion durchzuführen, versorgen ihn Nutzer jeweils mit einer @dfn{Ableitung}. Eine Ableitung ist, wie durchzuführende Erstellungsaktionen, sowie die Umgebungen, in denen sie durchzuführen sind, in Guix eigentlich intern dargestellt werden. Ableitungen verhalten sich zu Paketdefinitionen vergleichbar mit Assembler-Code zu C-Programmen. Der Begriff „Ableitung“ kommt daher, dass Erstellungsergebnisse daraus @emph{abgeleitet} werden."
 
 #. type: Plain text
-#: doc/guix.texi:5357
+#: doc/guix.texi:6204
 msgid "This chapter describes all these APIs in turn, starting from high-level package definitions."
 msgstr "Dieses Kapitel beschreibt der Reihe nach all diese Programmierschnittstellen (APIs), angefangen mit hochsprachlichen Paketdefinitionen."
 
+#. type: menuentry
+#: doc/guix.texi:6217
+msgid "Programming Guix in Guile"
+msgstr "Guix in Guile programmieren."
+
 #. type: Plain text
-#: doc/guix.texi:5383
+#: doc/guix.texi:6233
 msgid "From a programming viewpoint, the package definitions of the GNU distribution are provided by Guile modules in the @code{(gnu packages @dots{})} name space@footnote{Note that packages under the @code{(gnu packages @dots{})} module name space are not necessarily ``GNU packages''.  This module naming scheme follows the usual Guile module naming convention: @code{gnu} means that these modules are distributed as part of the GNU system, and @code{packages} identifies modules that define packages.} (@pxref{Modules, Guile modules,, guile, GNU Guile Reference Manual}).  For instance, the @code{(gnu packages emacs)} module exports a variable named @code{emacs}, which is bound to a @code{<package>} object (@pxref{Defining Packages})."
-msgstr "Aus Programmierersicht werden die Paketdefinitionen der GNU-Distribution als Guile-Module in Namensräumen wie @code{(gnu packages …)} sichtbar gemacht@footnote{Beachten Sie, dass Pakete unter dem Modulnamensraum @code{(gnu packages …)} nicht notwendigerweise auch „GNU-Pakete“ sind. Dieses Schema für die Benennung von Modulen folgt lediglich den üblichen Guile-Konventionen: @code{gnu} bedeutet, dass die Module als Teil des GNU-Systems ausgeliefert werden, und @code{packages} gruppiert Module mit Paketdefinitionen.} (siehe @ref{Modules, Guile modules,, guile, GNU Guile Reference Manual}). Zum Beispiel exportiert das Modul @code{(gnu packages emacs)} eine Variable namens @code{emacs}, die an ein @code{<package>}-Objekt gebunden ist (siehe @ref{Defining Packages})."
+msgstr "Aus Programmierersicht werden die Paketdefinitionen der GNU-Distribution als Guile-Module in Namensräumen wie @code{(gnu packages …)} sichtbar gemacht@footnote{Beachten Sie, dass Pakete unter dem Modulnamensraum @code{(gnu packages …)} nicht notwendigerweise auch „GNU-Pakete“ sind. Dieses Schema für die Benennung von Modulen folgt lediglich den üblichen Guile-Konventionen: @code{gnu} bedeutet, dass die Module als Teil des GNU-Systems ausgeliefert werden, und @code{packages} gruppiert Module mit Paketdefinitionen.} (siehe @ref{Modules, Guile-Module,, guile, Referenzhandbuch zu GNU Guile}). Zum Beispiel exportiert das Modul @code{(gnu packages emacs)} eine Variable namens @code{emacs}, die an ein @code{<package>}-Objekt gebunden ist (siehe @ref{Defining Packages})."
 
 #. type: Plain text
-#: doc/guix.texi:5390
+#: doc/guix.texi:6240
 msgid "The @code{(gnu packages @dots{})} module name space is automatically scanned for packages by the command-line tools.  For instance, when running @code{guix install emacs}, all the @code{(gnu packages @dots{})} modules are scanned until one that exports a package object whose name is @code{emacs} is found.  This package search facility is implemented in the @code{(gnu packages)} module."
 msgstr "Der Modulnamensraum @code{(gnu packages …)} wird von Befehlszeilenwerkzeugen automatisch nach Paketen durchsucht. Wenn Sie zum Beispiel @code{guix install emacs} ausführen, werden alle @code{(gnu packages …)}-Module durchlaufen, bis eines gefunden wird, das ein Paketobjekt mit dem Namen @code{emacs} exportiert. Diese Paketsuchfunktion ist im Modul @code{(gnu packages)} implementiert."
 
 #. type: cindex
-#: doc/guix.texi:5392
+#: doc/guix.texi:6242
 #, no-wrap
 msgid "package module search path"
 msgstr "Paketmodulsuchpfad"
 
 #. type: Plain text
-#: doc/guix.texi:5401
-msgid "Users can store package definitions in modules with different names---e.g., @code{(my-packages emacs)}@footnote{Note that the file name and module name must match.  For instance, the @code{(my-packages emacs)} module must be stored in a @file{my-packages/emacs.scm} file relative to the load path specified with @option{--load-path} or @code{GUIX_PACKAGE_PATH}.  @xref{Modules and the File System,,, guile, GNU Guile Reference Manual}, for details.}.  There are two ways to make these package definitions visible to the user interfaces:"
-msgstr "Benutzer können Paketdefinitionen auch in Modulen mit anderen Namen unterbringen — z.B.@: @code{(my-packages emacs)}@footnote{Beachten Sie, dass Dateiname und Modulname übereinstimmen müssen. Zum Beispiel muss das Modul @code{(my-packages emacs)} in einer Datei @file{my-packages/emacs.scm} relativ zum mit @option{--load-path} oder @code{GUIX_PACKAGE_PATH} angegebenen Ladepfad stehen. Siehe @ref{Modules and the File System,,, guile, GNU Guile Reference Manual} für Details.}. Es gibt zwei Arten, solche Paketdefinitionen für die Benutzungsschnittstelle sichtbar zu machen:"
+#: doc/guix.texi:6251
+msgid "Users can store package definitions in modules with different names---e.g., @code{(my-packages emacs)}@footnote{Note that the file name and module name must match.  For instance, the @code{(my-packages emacs)} module must be stored in a @file{my-packages/emacs.scm} file relative to the load path specified with @option{--load-path} or @env{GUIX_PACKAGE_PATH}.  @xref{Modules and the File System,,, guile, GNU Guile Reference Manual}, for details.}.  There are two ways to make these package definitions visible to the user interfaces:"
+msgstr "Benutzer können Paketdefinitionen auch in Modulen mit anderen Namen unterbringen — z.B.@: @code{(my-packages emacs)}@footnote{Beachten Sie, dass Dateiname und Modulname übereinstimmen müssen. Zum Beispiel muss das Modul @code{(my-packages emacs)} in einer Datei @file{my-packages/emacs.scm} relativ zum mit @option{--load-path} oder @env{GUIX_PACKAGE_PATH} angegebenen Ladepfad stehen. Siehe @ref{Modules and the File System,,, guile, Referenzhandbuch zu GNU Guile} für Details.}. Es gibt zwei Arten, solche Paketdefinitionen für die Benutzungsschnittstelle sichtbar zu machen:"
 
 #. type: enumerate
-#: doc/guix.texi:5408
-msgid "By adding the directory containing your package modules to the search path with the @code{-L} flag of @command{guix package} and other commands (@pxref{Common Build Options}), or by setting the @code{GUIX_PACKAGE_PATH} environment variable described below."
-msgstr "Eine Möglichkeit ist, das Verzeichnis, in dem Ihre Paketmodule stehen, mit der Befehlszeilenoption @code{-L} von @command{guix package} und anderen Befehlen (siehe @ref{Common Build Options}) oder durch Setzen der unten beschriebenen Umgebungsvariablen @code{GUIX_PACKAGE_PATH} zum Suchpfad hinzuzufügen."
+#: doc/guix.texi:6258
+msgid "By adding the directory containing your package modules to the search path with the @code{-L} flag of @command{guix package} and other commands (@pxref{Common Build Options}), or by setting the @env{GUIX_PACKAGE_PATH} environment variable described below."
+msgstr "Eine Möglichkeit ist, das Verzeichnis, in dem Ihre Paketmodule stehen, mit der Befehlszeilenoption @code{-L} von @command{guix package} und anderen Befehlen (siehe @ref{Common Build Options}) oder durch Setzen der unten beschriebenen Umgebungsvariablen @env{GUIX_PACKAGE_PATH} zum Suchpfad hinzuzufügen."
 
 #. type: enumerate
-#: doc/guix.texi:5414
+#: doc/guix.texi:6264
 msgid "By defining a @dfn{channel} and configuring @command{guix pull} so that it pulls from it.  A channel is essentially a Git repository containing package modules.  @xref{Channels}, for more information on how to define and use channels."
 msgstr "Die andere Möglichkeit ist, einen @dfn{Kanal} zu definieren und @command{guix pull} so zu konfigurieren, dass es davon seine Module bezieht. Ein Kanal ist im Kern nur ein Git-Repository, in welchem Paketmodule liegen. Siehe @ref{Channels} für mehr Informationen, wie Kanäle definiert und benutzt werden."
 
 #. type: Plain text
-#: doc/guix.texi:5417
-msgid "@code{GUIX_PACKAGE_PATH} works similarly to other search path variables:"
-msgstr "@code{GUIX_PACKAGE_PATH} funktioniert ähnlich wie andere Variable mit Suchpfaden:"
+#: doc/guix.texi:6267
+msgid "@env{GUIX_PACKAGE_PATH} works similarly to other search path variables:"
+msgstr "@env{GUIX_PACKAGE_PATH} funktioniert ähnlich wie andere Variable mit Suchpfaden:"
 
 #. type: defvr
-#: doc/guix.texi:5418
+#: doc/guix.texi:6268
 #, no-wrap
 msgid "{Environment Variable} GUIX_PACKAGE_PATH"
 msgstr "{Umgebungsvariable} GUIX_PACKAGE_PATH"
 
 #. type: defvr
-#: doc/guix.texi:5422
+#: doc/guix.texi:6272
 msgid "This is a colon-separated list of directories to search for additional package modules.  Directories listed in this variable take precedence over the own modules of the distribution."
 msgstr "Dies ist eine doppelpunktgetrennte Liste von Verzeichnissen, die nach zusätzlichen Paketmodulen durchsucht werden. In dieser Variablen aufgelistete Verzeichnisse haben Vorrang vor den Modulen, die zur Distribution gehören."
 
 #. type: Plain text
-#: doc/guix.texi:5430
+#: doc/guix.texi:6280
 msgid "The distribution is fully @dfn{bootstrapped} and @dfn{self-contained}: each package is built based solely on other packages in the distribution.  The root of this dependency graph is a small set of @dfn{bootstrap binaries}, provided by the @code{(gnu packages bootstrap)} module.  For more information on bootstrapping, @pxref{Bootstrapping}."
 msgstr "Die Distribution wird komplett von Grund auf initialisiert — man sagt zur Initialisierung auch @dfn{Bootstrapping} — und sie ist @dfn{eigenständig} („self-contained“): Jedes Paket wird nur auf Basis von anderen Paketen in der Distribution erstellt. Die Wurzel dieses Abhängigkeitsgraphen ist ein kleiner Satz von Initialisierungsbinärdateien, den @dfn{Bootstrap-Binärdateien}, die im Modul @code{(gnu packages bootstrap)} verfügbar gemacht werden. Für mehr Informationen über Bootstrapping, siehe @ref{Bootstrapping}."
 
 #. type: Plain text
-#: doc/guix.texi:5438
+#: doc/guix.texi:6288
 msgid "The high-level interface to package definitions is implemented in the @code{(guix packages)} and @code{(guix build-system)} modules.  As an example, the package definition, or @dfn{recipe}, for the GNU Hello package looks like this:"
 msgstr "Mit den Modulen @code{(guix packages)} und @code{(guix build-system)} können Paketdefinitionen auf einer hohen Abstraktionsebene geschrieben werden. Zum Beispiel sieht die Paketdefinition bzw. das @dfn{Rezept} für das Paket von GNU Hello so aus:"
 
 #. type: lisp
-#: doc/guix.texi:5446
+#: doc/guix.texi:6296
 #, no-wrap
 msgid ""
 "(define-module (gnu packages hello)\n"
@@ -11299,7 +12812,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:5465
+#: doc/guix.texi:6315
 #, no-wrap
 msgid ""
 "(define-public hello\n"
@@ -11341,463 +12854,344 @@ msgstr ""
 "    (license gpl3+)))\n"
 
 #. type: Plain text
-#: doc/guix.texi:5475
+#: doc/guix.texi:6325
 msgid "Without being a Scheme expert, the reader may have guessed the meaning of the various fields here.  This expression binds the variable @code{hello} to a @code{<package>} object, which is essentially a record (@pxref{SRFI-9, Scheme records,, guile, GNU Guile Reference Manual}).  This package object can be inspected using procedures found in the @code{(guix packages)} module; for instance, @code{(package-name hello)} returns---surprise!---@code{\"hello\"}."
-msgstr "Auch ohne ein Experte in Scheme zu sein, könnten Leser erraten haben, was die verschiedenen Felder dabei bedeuten. Dieser Ausdruck bindet die Variable @code{hello} an ein @code{<package>}-Objekt, was an sich nur ein Verbund (Record) ist (siehe @ref{SRFI-9, Scheme records,, guile, GNU Guile Reference Manual}). Die Felder dieses Paket-Objekts lassen sich mit den Prozeduren aus dem Modul @code{(guix packages)} auslesen, zum Beispiel liefert @code{(package-name hello)} — Überraschung! — @code{\"hello\"}."
+msgstr "Auch ohne ein Experte in Scheme zu sein, könnten Leser erraten haben, was die verschiedenen Felder dabei bedeuten. Dieser Ausdruck bindet die Variable @code{hello} an ein @code{<package>}-Objekt, was an sich nur ein Verbund (Record) ist (siehe @ref{SRFI-9, Scheme-Verbünde,, guile, Referenzhandbuch zu GNU Guile}). Die Felder dieses Paket-Objekts lassen sich mit den Prozeduren aus dem Modul @code{(guix packages)} auslesen, zum Beispiel liefert @code{(package-name hello)} — Überraschung! — @code{\"hello\"}."
 
 #. type: Plain text
-#: doc/guix.texi:5479
+#: doc/guix.texi:6329
 msgid "With luck, you may be able to import part or all of the definition of the package you are interested in from another repository, using the @code{guix import} command (@pxref{Invoking guix import})."
 msgstr "Mit etwas Glück können Sie die Definition vielleicht teilweise oder sogar ganz aus einer anderen Paketsammlung importieren, indem Sie den Befehl @code{guix import} verwenden (siehe @ref{Invoking guix import})."
 
 #. type: Plain text
-#: doc/guix.texi:5485
-msgid "In the example above, @var{hello} is defined in a module of its own, @code{(gnu packages hello)}.  Technically, this is not strictly necessary, but it is convenient to do so: all the packages defined in modules under @code{(gnu packages @dots{})} are automatically known to the command-line tools (@pxref{Package Modules})."
-msgstr "In obigem Beispiel wurde @var{hello} in einem eigenen Modul ganz für sich alleine definiert, und zwar @code{(gnu packages hello)}. Technisch gesehen muss es nicht unbedingt in einem solchen Modul definiert werden, aber es ist bequem, denn alle Module unter @code{(gnu packages …)} werden automatisch von den Befehlszeilenwerkzeugen gefunden (siehe @ref{Package Modules})."
+#: doc/guix.texi:6335
+msgid "In the example above, @code{hello} is defined in a module of its own, @code{(gnu packages hello)}.  Technically, this is not strictly necessary, but it is convenient to do so: all the packages defined in modules under @code{(gnu packages @dots{})} are automatically known to the command-line tools (@pxref{Package Modules})."
+msgstr "In obigem Beispiel wurde @code{hello} in einem eigenen Modul ganz für sich alleine definiert, und zwar @code{(gnu packages hello)}. Technisch gesehen muss es nicht unbedingt in einem solchen Modul definiert werden, aber es ist bequem, denn alle Module unter @code{(gnu packages …)} werden automatisch von den Befehlszeilenwerkzeugen gefunden (siehe @ref{Package Modules})."
 
 #. type: Plain text
-#: doc/guix.texi:5487
+#: doc/guix.texi:6337
 msgid "There are a few points worth noting in the above package definition:"
 msgstr "Ein paar Dinge sind noch erwähnenswert in der obigen Paketdefinition:"
 
 #. type: itemize
-#: doc/guix.texi:5494
+#: doc/guix.texi:6344
 msgid "The @code{source} field of the package is an @code{<origin>} object (@pxref{origin Reference}, for the complete reference).  Here, the @code{url-fetch} method from @code{(guix download)} is used, meaning that the source is a file to be downloaded over FTP or HTTP."
 msgstr "Das @code{source}-Feld für die Quelle des Pakets ist ein @code{<origin>}-Objekt, was den Paketursprung angibt (siehe @ref{origin Reference} für eine vollständige Referenz). Hier wird dafür die Methode @code{url-fetch} aus dem Modul @code{(guix download)} benutzt, d.h.@: die Quelle ist eine Datei, die über FTP oder HTTP heruntergeladen werden soll."
 
 #. type: itemize
-#: doc/guix.texi:5497
+#: doc/guix.texi:6347
 msgid "The @code{mirror://gnu} prefix instructs @code{url-fetch} to use one of the GNU mirrors defined in @code{(guix download)}."
 msgstr "Das Präfix @code{mirror://gnu} lässt @code{url-fetch} einen der GNU-Spiegelserver benutzen, die in @code{(guix download)} definiert sind."
 
 #. type: itemize
-#: doc/guix.texi:5504
+#: doc/guix.texi:6354
 msgid "The @code{sha256} field specifies the expected SHA256 hash of the file being downloaded.  It is mandatory, and allows Guix to check the integrity of the file.  The @code{(base32 @dots{})} form introduces the base32 representation of the hash.  You can obtain this information with @code{guix download} (@pxref{Invoking guix download}) and @code{guix hash} (@pxref{Invoking guix hash})."
 msgstr "Das Feld @code{sha256} legt den erwarteten SHA256-Hashwert der herunterzuladenden Datei fest. Ihn anzugeben ist Pflicht und er ermöglicht es Guix, die Integrität der Datei zu überprüfen. Die Form @code{(base32 …)} geht der base32-Darstellung des Hash-Wertes voraus. Sie finden die base32-Darstellung mit Hilfe der Befehle @code{guix download} (siehe @ref{Invoking guix download}) und @code{guix hash} (siehe @ref{Invoking guix hash})."
 
 #. type: cindex
-#: doc/guix.texi:5505
+#: doc/guix.texi:6355
 #, no-wrap
 msgid "patches"
 msgstr "Patches"
 
 #. type: itemize
-#: doc/guix.texi:5509
+#: doc/guix.texi:6359
 msgid "When needed, the @code{origin} form can also have a @code{patches} field listing patches to be applied, and a @code{snippet} field giving a Scheme expression to modify the source code."
 msgstr "Wenn nötig kann in der @code{origin}-Form auch ein @code{patches}-Feld stehen, wo anzuwendende Patches aufgeführt werden, sowie ein @code{snippet}-Feld mit einem Scheme-Ausdruck mit den Anweisungen, wie der Quellcode zu modifizieren ist."
 
 #. type: cindex
-#: doc/guix.texi:5511
+#: doc/guix.texi:6361
 #, no-wrap
 msgid "GNU Build System"
 msgstr "GNU-Erstellungssystem"
 
 #. type: itemize
-#: doc/guix.texi:5517
-msgid "The @code{build-system} field specifies the procedure to build the package (@pxref{Build Systems}).  Here, @var{gnu-build-system} represents the familiar GNU Build System, where packages may be configured, built, and installed with the usual @code{./configure && make && make check && make install} command sequence."
-msgstr "Das Feld @code{build-system} legt fest, mit welcher Prozedur das Paket erstellt werden soll (siehe @ref{Build Systems}). In diesem Beispiel steht @var{gnu-build-system} für das wohlbekannte GNU-Erstellungssystem, wo Pakete mit der üblichen Befehlsfolge @code{./configure && make && make check && make install} konfiguriert, erstellt und installiert werden."
+#: doc/guix.texi:6367
+msgid "The @code{build-system} field specifies the procedure to build the package (@pxref{Build Systems}).  Here, @code{gnu-build-system} represents the familiar GNU Build System, where packages may be configured, built, and installed with the usual @code{./configure && make && make check && make install} command sequence."
+msgstr "Das Feld @code{build-system} legt fest, mit welcher Prozedur das Paket erstellt werden soll (siehe @ref{Build Systems}). In diesem Beispiel steht @code{gnu-build-system} für das wohlbekannte GNU-Erstellungssystem, wo Pakete mit der üblichen Befehlsfolge @code{./configure && make && make check && make install} konfiguriert, erstellt und installiert werden."
 
 #. type: itemize
-#: doc/guix.texi:5523
-msgid "The @code{arguments} field specifies options for the build system (@pxref{Build Systems}).  Here it is interpreted by @var{gnu-build-system} as a request run @file{configure} with the @code{--enable-silent-rules} flag."
-msgstr "Das Feld @code{arguments} gibt an, welche Optionen dem Erstellungssystem mitgegeben werden sollen (siehe @ref{Build Systems}). In diesem Fall interpretiert @var{gnu-build-system} diese als Auftrag, @file{configure} mit der Befehlszeilenoption @code{--enable-silent-rules} auszuführen."
+#: doc/guix.texi:6371
+msgid "When you start packaging non-trivial software, you may need tools to manipulate those build phases, manipulate files, and so on.  @xref{Build Utilities}, for more on this."
+msgstr "Sobald Sie anfangen, Pakete für nichttriviale Software zu schreiben, könnten Sie Werkzeuge benötigen, um jene Erstellungsphasen abzuändern, Dateien zu verändern oder Ähnliches. Siehe @ref{Build Utilities} für mehr Informationen dazu."
+
+#. type: itemize
+#: doc/guix.texi:6377
+msgid "The @code{arguments} field specifies options for the build system (@pxref{Build Systems}).  Here it is interpreted by @code{gnu-build-system} as a request run @file{configure} with the @option{--enable-silent-rules} flag."
+msgstr "Das Feld @code{arguments} gibt an, welche Optionen dem Erstellungssystem mitgegeben werden sollen (siehe @ref{Build Systems}). In diesem Fall interpretiert @code{gnu-build-system} diese als Auftrag, @file{configure} mit der Befehlszeilenoption @option{--enable-silent-rules} auszuführen."
 
 #. type: findex
-#: doc/guix.texi:5524 doc/guix.texi:5527
+#: doc/guix.texi:6378 doc/guix.texi:6381
 #, no-wrap
 msgid "quote"
 msgstr "quote"
 
 #. type: cindex
-#: doc/guix.texi:5525
+#: doc/guix.texi:6379
 #, no-wrap
 msgid "quoting"
 msgstr "Maskierung"
 
 #. type: findex
-#: doc/guix.texi:5526
+#: doc/guix.texi:6380
 #, no-wrap
 msgid "'"
 msgstr "'"
 
 #. type: itemize
-#: doc/guix.texi:5535
+#: doc/guix.texi:6389
 msgid "What about these quote (@code{'}) characters? They are Scheme syntax to introduce a literal list; @code{'} is synonymous with @code{quote}.  @xref{Expression Syntax, quoting,, guile, GNU Guile Reference Manual}, for details.  Here the value of the @code{arguments} field is a list of arguments passed to the build system down the road, as with @code{apply} (@pxref{Fly Evaluation, @code{apply},, guile, GNU Guile Reference Manual})."
-msgstr "Was hat es mit diesen einfachen Anführungszeichen (@code{'}) auf sich? Sie gehören zur Syntax von Scheme und führen eine wörtlich zu interpretierende Datenlisten ein; dies nennt sich Maskierung oder Quotierung. @code{'} ist synonym mit @code{quote}. @ref{Expression Syntax, quoting,, guile, GNU Guile Reference Manual} enthält weitere Details. Hierbei ist also der Wert des @code{arguments}-Feldes eine Liste von Argumenten, die an das Erstellungssystem weitergereicht werden, wie bei @code{apply} (siehe @ref{Fly Evaluation, @code{apply},, guile, GNU Guile Reference Manual})."
+msgstr "Was hat es mit diesen einfachen Anführungszeichen (@code{'}) auf sich? Sie gehören zur Syntax von Scheme und führen eine wörtlich zu interpretierende Datenlisten ein; dies nennt sich Maskierung oder Quotierung. @code{'} ist synonym mit @code{quote}. @ref{Expression Syntax, Quotierung,, guile, Referenzhandbuch zu GNU Guile} enthält weitere Details. Hierbei ist also der Wert des @code{arguments}-Feldes eine Liste von Argumenten, die an das Erstellungssystem weitergereicht werden, wie bei @code{apply} (siehe @ref{Fly Evaluation, @code{apply},, guile, Referenzhandbuch zu GNU Guile})."
 
 #. type: itemize
-#: doc/guix.texi:5541
+#: doc/guix.texi:6395
 msgid "The hash-colon (@code{#:}) sequence defines a Scheme @dfn{keyword} (@pxref{Keywords,,, guile, GNU Guile Reference Manual}), and @code{#:configure-flags} is a keyword used to pass a keyword argument to the build system (@pxref{Coding With Keywords,,, guile, GNU Guile Reference Manual})."
-msgstr "Ein Doppelkreuz gefolgt von einem Doppelpunkt (@code{#:}) definiert ein Scheme-@dfn{Schlüsselwort} (siehe @ref{Keywords,,, guile, GNU Guile Reference Manual}) und @code{#:configure-flags} ist ein Schlüsselwort, um eine Befehlszeilenoption an das Erstellungssystem mitzugeben (siehe @ref{Coding With Keywords,,, guile, GNU Guile Reference Manual})."
+msgstr "Ein Doppelkreuz gefolgt von einem Doppelpunkt (@code{#:}) definiert ein Scheme-@dfn{Schlüsselwort} (siehe @ref{Keywords,,, guile, Referenzhandbuch zu GNU Guile}) und @code{#:configure-flags} ist ein Schlüsselwort, um eine Befehlszeilenoption an das Erstellungssystem mitzugeben (siehe @ref{Coding With Keywords,,, guile, Referenzhandbuch zu GNU Guile})."
 
 #. type: itemize
-#: doc/guix.texi:5547
-msgid "The @code{inputs} field specifies inputs to the build process---i.e., build-time or run-time dependencies of the package.  Here, we define an input called @code{\"gawk\"} whose value is that of the @var{gawk} variable; @var{gawk} is itself bound to a @code{<package>} object."
-msgstr "Das Feld @code{inputs} legt Eingaben an den Erstellungsprozess fest — d.h.@: Abhängigkeiten des Pakets zur Erstellungs- oder Laufzeit. Hier definieren wir eine Eingabe namens @code{\"gawk\"}, deren Wert wir auf den Wert der @var{gawk}-Variablen festlegen; @var{gawk} ist auch selbst wiederum an ein @code{<package>}-Objekt als Variablenwert gebunden."
+#: doc/guix.texi:6401
+msgid "The @code{inputs} field specifies inputs to the build process---i.e., build-time or run-time dependencies of the package.  Here, we define an input called @code{\"gawk\"} whose value is that of the @code{gawk} variable; @code{gawk} is itself bound to a @code{<package>} object."
+msgstr "Das Feld @code{inputs} legt Eingaben an den Erstellungsprozess fest — d.h.@: Abhängigkeiten des Pakets zur Erstellungs- oder Laufzeit. Hier definieren wir eine Eingabe namens @code{\"gawk\"}, deren Wert wir auf den Wert der @code{gawk}-Variablen festlegen; @var{gawk} ist auch selbst wiederum an ein @code{<package>}-Objekt als Variablenwert gebunden."
 
 #. type: cindex
-#: doc/guix.texi:5548
+#: doc/guix.texi:6402
 #, no-wrap
 msgid "backquote (quasiquote)"
 msgstr "Backquote (Quasimaskierung)"
 
 #. type: findex
-#: doc/guix.texi:5549
+#: doc/guix.texi:6403
 #, no-wrap
 msgid "`"
 msgstr "`"
 
 #. type: findex
-#: doc/guix.texi:5550
+#: doc/guix.texi:6404
 #, no-wrap
 msgid "quasiquote"
 msgstr "quasiquote"
 
 #. type: cindex
-#: doc/guix.texi:5551
+#: doc/guix.texi:6405
 #, no-wrap
 msgid "comma (unquote)"
 msgstr "Komma (Demaskierung)"
 
 #. type: findex
-#: doc/guix.texi:5552
+#: doc/guix.texi:6406
 #, no-wrap
 msgid ","
 msgstr ","
 
 #. type: findex
-#: doc/guix.texi:5553
+#: doc/guix.texi:6407
 #, no-wrap
 msgid "unquote"
 msgstr "unquote"
 
 #. type: findex
-#: doc/guix.texi:5554
+#: doc/guix.texi:6408
 #, no-wrap
 msgid ",@@"
 msgstr ",@@"
 
 #. type: findex
-#: doc/guix.texi:5555
+#: doc/guix.texi:6409
 #, no-wrap
 msgid "unquote-splicing"
 msgstr "unquote-splicing"
 
 #. type: itemize
-#: doc/guix.texi:5561
+#: doc/guix.texi:6415
 msgid "Again, @code{`} (a backquote, synonymous with @code{quasiquote}) allows us to introduce a literal list in the @code{inputs} field, while @code{,} (a comma, synonymous with @code{unquote}) allows us to insert a value in that list (@pxref{Expression Syntax, unquote,, guile, GNU Guile Reference Manual})."
-msgstr "Auch mit @code{`} (einem Backquote, stattdessen kann man auch das längere Synonym @code{quasiquote} schreiben) können wir eine wörtlich als Daten interpretierte Liste im @code{inputs}-Feld einführen, aber bei dieser „Quasimaskierung“ kann @code{,} (ein Komma, oder dessen Synonym @code{unquote}) benutzt werden, um den ausgewerteten Wert eines Ausdrucks in diese Liste einzufügen (siehe @ref{Expression Syntax, unquote,, guile, GNU Guile Reference Manual})."
+msgstr "Auch mit @code{`} (einem Backquote, stattdessen kann man auch das längere Synonym @code{quasiquote} schreiben) können wir eine wörtlich als Daten interpretierte Liste im @code{inputs}-Feld einführen, aber bei dieser „Quasimaskierung“ kann @code{,} (ein Komma, oder dessen Synonym @code{unquote}) benutzt werden, um den ausgewerteten Wert eines Ausdrucks in diese Liste einzufügen (siehe @ref{Expression Syntax, unquote,, guile, Referenzhandbuch zu GNU Guile})."
 
 #. type: itemize
-#: doc/guix.texi:5565
-msgid "Note that GCC, Coreutils, Bash, and other essential tools do not need to be specified as inputs here.  Instead, @var{gnu-build-system} takes care of ensuring that they are present (@pxref{Build Systems})."
-msgstr "Beachten Sie, dass GCC, Coreutils, Bash und andere essenzielle Werkzeuge hier nicht als Eingaben aufgeführt werden müssen. Stattdessen sorgt schon @var{gnu-build-system} dafür, dass diese vorhanden sein müssen (siehe @ref{Build Systems})."
+#: doc/guix.texi:6419
+msgid "Note that GCC, Coreutils, Bash, and other essential tools do not need to be specified as inputs here.  Instead, @code{gnu-build-system} takes care of ensuring that they are present (@pxref{Build Systems})."
+msgstr "Beachten Sie, dass GCC, Coreutils, Bash und andere essenzielle Werkzeuge hier nicht als Eingaben aufgeführt werden müssen. Stattdessen sorgt schon @code{gnu-build-system} dafür, dass diese vorhanden sein müssen (siehe @ref{Build Systems})."
 
 #. type: itemize
-#: doc/guix.texi:5569
+#: doc/guix.texi:6423
 msgid "However, any other dependencies need to be specified in the @code{inputs} field.  Any dependency not specified here will simply be unavailable to the build process, possibly leading to a build failure."
 msgstr "Sämtliche anderen Abhängigkeiten müssen aber im @code{inputs}-Feld aufgezählt werden. Jede hier nicht angegebene Abhängigkeit wird während des Erstellungsprozesses schlicht nicht verfügbar sein, woraus ein Erstellungsfehler resultieren kann."
 
 #. type: Plain text
-#: doc/guix.texi:5572
+#: doc/guix.texi:6426
 msgid "@xref{package Reference}, for a full description of possible fields."
 msgstr "Siehe @ref{package Reference} für eine umfassende Beschreibung aller erlaubten Felder."
 
 #. type: Plain text
-#: doc/guix.texi:5583
+#: doc/guix.texi:6437
 msgid "Once a package definition is in place, the package may actually be built using the @code{guix build} command-line tool (@pxref{Invoking guix build}), troubleshooting any build failures you encounter (@pxref{Debugging Build Failures}).  You can easily jump back to the package definition using the @command{guix edit} command (@pxref{Invoking guix edit}).  @xref{Packaging Guidelines}, for more information on how to test package definitions, and @ref{Invoking guix lint}, for information on how to check a definition for style conformance."
 msgstr "Sobald eine Paketdefinition eingesetzt wurde, können Sie das Paket mit Hilfe des Befehlszeilenwerkzeugs @code{guix build} dann auch tatsächlich erstellen (siehe @ref{Invoking guix build}) und dabei jegliche Erstellungsfehler, auf die Sie stoßen, beseitigen (siehe @ref{Debugging Build Failures}). Sie können den Befehl @command{guix edit} benutzen, um leicht zur Paketdefinition zurückzuspringen (siehe @ref{Invoking guix edit}). Unter @ref{Packaging Guidelines} finden Sie mehr Informationen darüber, wie Sie Paketdefinitionen testen, und unter @ref{Invoking guix lint} finden Sie Informationen, wie Sie prüfen, ob eine Definition alle Stilkonventionen einhält."
 
 #. type: vindex
-#: doc/guix.texi:5583
+#: doc/guix.texi:6437
 #, no-wrap
 msgid "GUIX_PACKAGE_PATH"
 msgstr "GUIX_PACKAGE_PATH"
 
 #. type: Plain text
-#: doc/guix.texi:5587
+#: doc/guix.texi:6441
 msgid "Lastly, @pxref{Channels}, for information on how to extend the distribution by adding your own package definitions in a ``channel''."
 msgstr "Zuletzt finden Sie unter @ref{Channels} Informationen, wie Sie die Distribution um Ihre eigenen Pakete in einem „Kanal“ erweitern."
 
 #. type: Plain text
-#: doc/guix.texi:5591
+#: doc/guix.texi:6445
 msgid "Finally, updating the package definition to a new upstream version can be partly automated by the @command{guix refresh} command (@pxref{Invoking guix refresh})."
 msgstr "Zu all dem sei auch erwähnt, dass Sie das Aktualisieren einer Paketdefinition auf eine vom Anbieter neu veröffentlichte Version mit dem Befehl @command{guix refresh} teilweise automatisieren können (siehe @ref{Invoking guix refresh})."
 
 #. type: Plain text
-#: doc/guix.texi:5597
-msgid "Behind the scenes, a derivation corresponding to the @code{<package>} object is first computed by the @code{package-derivation} procedure.  That derivation is stored in a @code{.drv} file under @file{/gnu/store}.  The build actions it prescribes may then be realized by using the @code{build-derivations} procedure (@pxref{The Store})."
-msgstr "Hinter den Kulissen wird die einem @code{<package>}-Objekt entsprechende Ableitung zuerst durch @code{package-derivation} berechnet. Diese Ableitung wird in der @code{.drv}-Datei unter @file{/gnu/store} gespeichert. Die von ihr vorgeschriebenen Erstellungsaktionen können dann durch die Prozedur @code{build-derivations} umgesetzt werden (siehe @ref{The Store})."
+#: doc/guix.texi:6451
+msgid "Behind the scenes, a derivation corresponding to the @code{<package>} object is first computed by the @code{package-derivation} procedure.  That derivation is stored in a @file{.drv} file under @file{/gnu/store}.  The build actions it prescribes may then be realized by using the @code{build-derivations} procedure (@pxref{The Store})."
+msgstr "Hinter den Kulissen wird die einem @code{<package>}-Objekt entsprechende Ableitung zuerst durch @code{package-derivation} berechnet. Diese Ableitung wird in der @file{.drv}-Datei unter @file{/gnu/store} gespeichert. Die von ihr vorgeschriebenen Erstellungsaktionen können dann durch die Prozedur @code{build-derivations} umgesetzt werden (siehe @ref{The Store})."
 
 #. type: deffn
-#: doc/guix.texi:5598
+#: doc/guix.texi:6452
 #, no-wrap
 msgid "{Scheme Procedure} package-derivation @var{store} @var{package} [@var{system}]"
 msgstr "{Scheme-Prozedur} package-derivation @var{Store} @var{Paket} [@var{System}]"
 
 #. type: deffn
-#: doc/guix.texi:5601
+#: doc/guix.texi:6455
 msgid "Return the @code{<derivation>} object of @var{package} for @var{system} (@pxref{Derivations})."
 msgstr "Das @code{<derivation>}-Objekt zum @var{Paket} für das angegebene @var{System} liefern (siehe @ref{Derivations})."
 
 #. type: deffn
-#: doc/guix.texi:5607
+#: doc/guix.texi:6461
 msgid "@var{package} must be a valid @code{<package>} object, and @var{system} must be a string denoting the target system type---e.g., @code{\"x86_64-linux\"} for an x86_64 Linux-based GNU system.  @var{store} must be a connection to the daemon, which operates on the store (@pxref{The Store})."
 msgstr "Als @var{Paket} muss ein gültiges @code{<package>}-Objekt angegeben werden und das @var{System} muss eine Zeichenkette sein, die das Zielsystem angibt — z.B.@: @code{\"x86_64-linux\"} für ein auf x86_64 laufendes, Linux-basiertes GNU-System. @var{Store} muss eine Verbindung zum Daemon sein, der die Operationen auf dem Store durchführt (siehe @ref{The Store})."
 
 #. type: Plain text
-#: doc/guix.texi:5613
+#: doc/guix.texi:6467
 msgid "Similarly, it is possible to compute a derivation that cross-builds a package for some other system:"
 msgstr "Auf ähnliche Weise kann eine Ableitung berechnet werden, die ein Paket für ein anderes System cross-erstellt."
 
 #. type: deffn
-#: doc/guix.texi:5614
+#: doc/guix.texi:6468
 #, no-wrap
 msgid "{Scheme Procedure} package-cross-derivation @var{store} @"
 msgstr "{Scheme-Prozedur} package-cross-derivation @var{Store} @"
 
 #. type: deffn
-#: doc/guix.texi:5618
+#: doc/guix.texi:6472
 msgid "@var{package} @var{target} [@var{system}] Return the @code{<derivation>} object of @var{package} cross-built from @var{system} to @var{target}."
 msgstr "@var{Paket} @var{Ziel} [@var{System}] Liefert das @code{<derivation>}-Objekt, um das @var{Paket} zu cross-erstellen vom @var{System} aus für das @var{Ziel}-System."
 
 #. type: deffn
-#: doc/guix.texi:5622
-msgid "@var{target} must be a valid GNU triplet denoting the target hardware and operating system, such as @code{\"mips64el-linux-gnu\"} (@pxref{Specifying Target Triplets,,, autoconf, Autoconf})."
-msgstr "Als @var{Ziel} muss ein gültiges GNU-Tripel angegeben werden, was die Ziel-Hardware und das zugehörige Betriebssystem beschreibt, wie z.B.@: @code{\"mips64el-linux-gnu\"} (siehe @ref{Specifying Target Triplets,,, autoconf, Autoconf})."
-
-#. type: cindex
-#: doc/guix.texi:5624
-#, no-wrap
-msgid "package transformations"
-msgstr "Paketumwandlungen"
-
-#. type: cindex
-#: doc/guix.texi:5625
-#, no-wrap
-msgid "input rewriting"
-msgstr "Eingaben umschreiben"
-
-#. type: cindex
-#: doc/guix.texi:5626
-#, no-wrap
-msgid "dependency tree rewriting"
-msgstr "Abhängigkeitsbaum umschreiben"
-
-#. type: Plain text
-#: doc/guix.texi:5630
-msgid "Packages can be manipulated in arbitrary ways.  An example of a useful transformation is @dfn{input rewriting}, whereby the dependency tree of a package is rewritten by replacing specific inputs by others:"
-msgstr "Pakete können auf beliebige Art verändert werden. Ein Beispiel für eine nützliche Veränderung ist das @dfn{Umschreiben von Eingaben}, womit der Abhängigkeitsbaum eines Pakets umgeschrieben wird, indem bestimmte Eingaben durch andere ersetzt werden:"
-
-#. type: deffn
-#: doc/guix.texi:5631
-#, no-wrap
-msgid "{Scheme Procedure} package-input-rewriting @var{replacements} @"
-msgstr "{Scheme-Prozedur} package-input-rewriting @var{Ersetzungen} @"
-
-#. type: deffn
-#: doc/guix.texi:5638
-msgid "[@var{rewrite-name}] Return a procedure that, when passed a package, replaces its direct and indirect dependencies (but not its implicit inputs) according to @var{replacements}.  @var{replacements} is a list of package pairs; the first element of each pair is the package to replace, and the second one is the replacement."
-msgstr "[@var{umgeschriebener-Name}] Eine Prozedur liefern, die für ein ihr übergebenes Paket dessen direkte und indirekte Abhängigkeit (aber nicht dessen implizite Eingaben) gemäß den @var{Ersetzungen} umschreibt. @var{Ersetzungen} ist eine Liste von Paketpaaren; das erste Element eines Paares ist das zu ersetzende Paket und das zweite ist, wodurch es ersetzt werden soll."
-
-#. type: deffn
-#: doc/guix.texi:5641
-msgid "Optionally, @var{rewrite-name} is a one-argument procedure that takes the name of a package and returns its new name after rewrite."
-msgstr "Optional kann als @var{umgeschriebener-Name} eine ein Argument nehmende Prozedur angegeben werden, die einen Paketnamen nimmt und den Namen nach dem Umschreiben zurückliefert."
-
-#. type: Plain text
-#: doc/guix.texi:5645
-msgid "Consider this example:"
-msgstr "Betrachten Sie dieses Beispiel:"
-
-#. type: lisp
-#: doc/guix.texi:5651
-#, no-wrap
-msgid ""
-"(define libressl-instead-of-openssl\n"
-"  ;; This is a procedure to replace OPENSSL by LIBRESSL,\n"
-"  ;; recursively.\n"
-"  (package-input-rewriting `((,openssl . ,libressl))))\n"
-"\n"
-msgstr ""
-"(define libressl-statt-openssl\n"
-"  ;; Dies ist eine Prozedur, mit der OPENSSL durch LIBRESSL\n"
-"  ;; rekursiv ersetzt wird.\n"
-"  (package-input-rewriting `((,openssl . ,libressl))))\n"
-"\n"
-
-#. type: lisp
-#: doc/guix.texi:5654
-#, no-wrap
-msgid ""
-"(define git-with-libressl\n"
-"  (libressl-instead-of-openssl git))\n"
-msgstr ""
-"(define git-mit-libressl\n"
-"  (libressl-statt-openssl git))\n"
-
-#. type: Plain text
-#: doc/guix.texi:5662
-msgid "Here we first define a rewriting procedure that replaces @var{openssl} with @var{libressl}.  Then we use it to define a @dfn{variant} of the @var{git} package that uses @var{libressl} instead of @var{openssl}.  This is exactly what the @option{--with-input} command-line option does (@pxref{Package Transformation Options, @option{--with-input}})."
-msgstr "Hier definieren wir zuerst eine Umschreibeprozedur, die @var{openssl} durch @var{libressl} ersetzt. Dann definieren wir damit eine @dfn{Variante} des @var{git}-Pakets, die @var{libressl} statt @var{openssl} benutzt. Das ist genau, was auch die Befehlszeilenoption @option{--with-input} tut (siehe @ref{Package Transformation Options, @option{--with-input}})."
-
-#. type: Plain text
-#: doc/guix.texi:5665
-msgid "The following variant of @code{package-input-rewriting} can match packages to be replaced by name rather than by identity."
-msgstr "Die folgende Variante von @code{package-input-rewriting} kann für die Ersetzung passende Pakete anhand ihres Namens finden, statt zu prüfen, ob der Wert identisch ist."
-
-#. type: deffn
-#: doc/guix.texi:5666
-#, no-wrap
-msgid "{Scheme Procedure} package-input-rewriting/spec @var{replacements}"
-msgstr "{Scheme-Prozedur} package-input-rewriting/spec @var{Ersetzungen}"
-
-#. type: deffn
-#: doc/guix.texi:5672
-msgid "Return a procedure that, given a package, applies the given @var{replacements} to all the package graph (excluding implicit inputs).  @var{replacements} is a list of spec/procedures pair; each spec is a package specification such as @code{\"gcc\"} or @code{\"guile@@2\"}, and each procedure takes a matching package and returns a replacement for that package."
-msgstr "Liefert eine Prozedur, die für ein gegebenes Paket die angegebenen @var{Ersetzungen} auf dessen gesamten Paketgraphen anwendet (außer auf implizite Eingaben). @var{Ersetzungen} muss dabei eine Liste von Paaren aus je einer Spezifikation und Prozedur sein. Dabei ist jede Spezifikation eine Paketspezifikation wie @code{\"gcc\"} oder @code{\"guile@@2\"} und jede Prozedur nimmt ein passendes Paket und liefert dafür einen Ersatz für das Paket."
-
-#. type: Plain text
-#: doc/guix.texi:5675
-msgid "The example above could be rewritten this way:"
-msgstr "Das obige Beispiel könnte auch so geschrieben werden:"
-
-#. type: lisp
-#: doc/guix.texi:5680
-#, no-wrap
-msgid ""
-"(define libressl-instead-of-openssl\n"
-"  ;; Replace all the packages called \"openssl\" with LibreSSL.\n"
-"  (package-input-rewriting/spec `((\"openssl\" . ,(const libressl)))))\n"
-msgstr ""
-"(define libressl-statt-openssl\n"
-"  ;; Rekursiv alle Pakete namens \"openssl\" durch LibreSSL ersetzen.\n"
-"  (package-input-rewriting/spec `((\"openssl\" . ,(const libressl)))))\n"
-
-#. type: Plain text
-#: doc/guix.texi:5685
-msgid "The key difference here is that, this time, packages are matched by spec and not by identity.  In other words, any package in the graph that is called @code{openssl} will be replaced."
-msgstr "Der Hauptunterschied ist hier, dass diesmal Pakete zur Spezifikation passen müssen und nicht deren Wert identisch sein muss, damit sie ersetzt werden. Mit anderen Worten wird jedes Paket im Graphen ersetzt, das @code{openssl} heißt."
+#: doc/guix.texi:6476
+msgid "@var{target} must be a valid GNU triplet denoting the target hardware and operating system, such as @code{\"aarch64-linux-gnu\"} (@pxref{Specifying Target Triplets,,, autoconf, Autoconf})."
+msgstr "Als @var{Ziel} muss ein gültiges GNU-Tripel angegeben werden, was die Ziel-Hardware und das zugehörige Betriebssystem beschreibt, wie z.B.@: @code{\"aarch64-linux-gnu\"} (siehe @ref{Specifying Target Triplets,,, autoconf, Autoconf})."
 
 #. type: Plain text
-#: doc/guix.texi:5689
-msgid "A more generic procedure to rewrite a package dependency graph is @code{package-mapping}: it supports arbitrary changes to nodes in the graph."
-msgstr "Eine allgemeiner anwendbare Prozedur, um den Abhängigkeitsgraphen eines Pakets umzuschreiben, ist @code{package-mapping}. Sie unterstützt beliebige Änderungen an den Knoten des Graphen."
-
-#. type: deffn
-#: doc/guix.texi:5690
-#, no-wrap
-msgid "{Scheme Procedure} package-mapping @var{proc} [@var{cut?}]"
-msgstr "{Scheme-Prozedur} package-mapping @var{Prozedur} [@var{Schnitt?}]"
-
-#. type: deffn
-#: doc/guix.texi:5694
-msgid "Return a procedure that, given a package, applies @var{proc} to all the packages depended on and returns the resulting package.  The procedure stops recursion when @var{cut?} returns true for a given package."
-msgstr "Liefert eine Prozedur, die, wenn ihr ein Paket übergeben wird, die an @code{package-mapping} übergebene @var{Prozedur} auf alle vom Paket abhängigen Pakete anwendet. Die Prozedur liefert das resultierende Paket. Wenn @var{Schnitt?} für ein Paket davon einen wahren Wert liefert, findet kein rekursiver Abstieg in dessen Abhängigkeiten statt."
+#: doc/guix.texi:6480
+msgid "Once you have package definitions, you can easily define @emph{variants} of those packages.  @xref{Defining Package Variants}, for more on that."
+msgstr "Wenn Sie einmal Paketdefinitionen fertig verfasst haben, können Sie leicht @emph{Varianten} derselben Pakete definieren. Siehe @ref{Defining Package Variants} für mehr Informationen dazu."
 
 #. type: subsection
-#: doc/guix.texi:5703
+#: doc/guix.texi:6488
 #, no-wrap
 msgid "@code{package} Reference"
 msgstr "@code{package}-Referenz"
 
 #. type: Plain text
-#: doc/guix.texi:5707
+#: doc/guix.texi:6492
 msgid "This section summarizes all the options available in @code{package} declarations (@pxref{Defining Packages})."
 msgstr "Dieser Abschnitt fasst alle in @code{package}-Deklarationen zur Verfügung stehenden Optionen zusammen (siehe @ref{Defining Packages})."
 
 #. type: deftp
-#: doc/guix.texi:5708
+#: doc/guix.texi:6493
 #, no-wrap
 msgid "{Data Type} package"
 msgstr "{Datentyp} package"
 
 #. type: deftp
-#: doc/guix.texi:5710
+#: doc/guix.texi:6495
 msgid "This is the data type representing a package recipe."
 msgstr "Dieser Datentyp steht für ein Paketrezept."
 
 #. type: table
-#: doc/guix.texi:5714
+#: doc/guix.texi:6499
 msgid "The name of the package, as a string."
 msgstr "Der Name des Pakets als Zeichenkette."
 
 #. type: code{#1}
-#: doc/guix.texi:5715
+#: doc/guix.texi:6500
 #, no-wrap
 msgid "version"
 msgstr "version"
 
 #. type: table
-#: doc/guix.texi:5717
+#: doc/guix.texi:6502
 msgid "The version of the package, as a string."
 msgstr "Die Version des Pakets als Zeichenkette."
 
 #. type: code{#1}
-#: doc/guix.texi:5718 doc/guix.texi:9746 doc/guix.texi:11636
-#: doc/guix.texi:12077
+#: doc/guix.texi:6503 doc/guix.texi:11569 doc/guix.texi:13752
+#: doc/guix.texi:14227
 #, no-wrap
 msgid "source"
 msgstr "source"
 
 #. type: table
-#: doc/guix.texi:5725
+#: doc/guix.texi:6510
 msgid "An object telling how the source code for the package should be acquired.  Most of the time, this is an @code{origin} object, which denotes a file fetched from the Internet (@pxref{origin Reference}).  It can also be any other ``file-like'' object such as a @code{local-file}, which denotes a file from the local file system (@pxref{G-Expressions, @code{local-file}})."
 msgstr "Ein Objekt, das beschreibt, wie der Quellcode des Pakets bezogen werden soll. Meistens ist es ein @code{origin}-Objekt, welches für eine aus dem Internet heruntergeladene Datei steht (siehe @ref{origin Reference}). Es kann aber auch ein beliebiges anderes „dateiähnliches“ Objekt sein, wie z.B.@: ein @code{local-file}, was eine Datei im lokalen Dateisystem bezeichnet (siehe @ref{G-Expressions, @code{local-file}})."
 
 #. type: code{#1}
-#: doc/guix.texi:5726
+#: doc/guix.texi:6511
 #, no-wrap
 msgid "build-system"
 msgstr "build-system"
 
 #. type: table
-#: doc/guix.texi:5729
+#: doc/guix.texi:6514
 msgid "The build system that should be used to build the package (@pxref{Build Systems})."
 msgstr "Das Erstellungssystem, mit dem das Paket erstellt werden soll (siehe @ref{Build Systems})."
 
 #. type: item
-#: doc/guix.texi:5730 doc/guix.texi:13886
+#: doc/guix.texi:6515 doc/guix.texi:16147
 #, no-wrap
 msgid "@code{arguments} (default: @code{'()})"
 msgstr "@code{arguments} (Vorgabe: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:5733
+#: doc/guix.texi:6518
 msgid "The arguments that should be passed to the build system.  This is a list, typically containing sequential keyword-value pairs."
 msgstr "Die Argumente, die an das Erstellungssystem übergeben werden sollen. Dies ist eine Liste, typischerweise eine Reihe von Schlüssel-Wert-Paaren."
 
 #. type: item
-#: doc/guix.texi:5734
+#: doc/guix.texi:6519
 #, no-wrap
 msgid "@code{inputs} (default: @code{'()})"
 msgstr "@code{inputs} (Vorgabe: @code{'()})"
 
 #. type: itemx
-#: doc/guix.texi:5735
+#: doc/guix.texi:6520
 #, no-wrap
 msgid "@code{native-inputs} (default: @code{'()})"
 msgstr "@code{native-inputs} (Vorgabe: @code{'()})"
 
 #. type: itemx
-#: doc/guix.texi:5736
+#: doc/guix.texi:6521
 #, no-wrap
 msgid "@code{propagated-inputs} (default: @code{'()})"
 msgstr "@code{propagated-inputs} (Vorgabe: @code{'()})"
 
 #. type: cindex
-#: doc/guix.texi:5737
+#: doc/guix.texi:6522
 #, no-wrap
 msgid "inputs, of packages"
 msgstr "Eingaben, von Paketen"
 
 #. type: table
-#: doc/guix.texi:5745
+#: doc/guix.texi:6530
 msgid "These fields list dependencies of the package.  Each one is a list of tuples, where each tuple has a label for the input (a string) as its first element, a package, origin, or derivation as its second element, and optionally the name of the output thereof that should be used, which defaults to @code{\"out\"} (@pxref{Packages with Multiple Outputs}, for more on package outputs).  For example, the list below specifies three inputs:"
 msgstr "In diesen Feldern werden die Abhängigkeiten des Pakets aufgeführt. Jedes dieser Felder enthält eine Liste von Tupeln, wobei jedes Tupel eine Bezeichnung für die Eingabe (als Zeichenkette) als erstes Element, dann ein „package“-, „origin“- oder „derivation“-Objekt (Paket, Ursprung oder Ableitung) als zweites Element und optional die Benennung der davon zu benutzenden Ausgabe umfasst; letztere hat als Vorgabewert @code{\"out\"} (siehe @ref{Packages with Multiple Outputs} für mehr Informationen zu Paketausgaben). Im folgenden Beispiel etwa werden drei Eingaben festgelegt:"
 
 #. type: lisp
-#: doc/guix.texi:5750
+#: doc/guix.texi:6535
 #, no-wrap
 msgid ""
 "`((\"libffi\" ,libffi)\n"
@@ -11809,170 +13203,171 @@ msgstr ""
 "  (\"glib:bin\" ,glib \"bin\"))  ;Ausgabe \"bin\" von Glib\n"
 
 #. type: cindex
-#: doc/guix.texi:5752
+#: doc/guix.texi:6537
 #, no-wrap
 msgid "cross compilation, package dependencies"
 msgstr "Cross-Kompilieren, Paketabhängigkeiten"
 
 #. type: table
-#: doc/guix.texi:5758
+#: doc/guix.texi:6543
 msgid "The distinction between @code{native-inputs} and @code{inputs} is necessary when considering cross-compilation.  When cross-compiling, dependencies listed in @code{inputs} are built for the @emph{target} architecture; conversely, dependencies listed in @code{native-inputs} are built for the architecture of the @emph{build} machine."
 msgstr "Die Unterscheidung zwischen @code{native-inputs} und @code{inputs} ist wichtig, damit Cross-Kompilieren möglich ist. Beim Cross-Kompilieren werden als @code{inputs} aufgeführte Abhängigkeiten für die Ziel-Prozessorarchitektur (@emph{target}) erstellt, andersherum werden als @code{native-inputs} aufgeführte Abhängigkeiten für die Prozessorarchitektur der erstellenden Maschine (@emph{build}) erstellt."
 
 #. type: table
-#: doc/guix.texi:5763
+#: doc/guix.texi:6548
 msgid "@code{native-inputs} is typically used to list tools needed at build time, but not at run time, such as Autoconf, Automake, pkg-config, Gettext, or Bison.  @command{guix lint} can report likely mistakes in this area (@pxref{Invoking guix lint})."
 msgstr "@code{native-inputs} listet typischerweise die Werkzeuge auf, die während der Erstellung gebraucht werden, aber nicht zur Laufzeit des Programms gebraucht werden. Beispiele sind Autoconf, Automake, pkg-config, Gettext oder Bison. @command{guix lint} kann melden, ob wahrscheinlich Fehler in der Auflistung sind (siehe @ref{Invoking guix lint})."
 
 #. type: anchor{#1}
-#: doc/guix.texi:5770
+#: doc/guix.texi:6556
 msgid "package-propagated-inputs"
 msgstr "package-propagated-inputs"
 
 #. type: table
-#: doc/guix.texi:5770
-msgid "Lastly, @code{propagated-inputs} is similar to @code{inputs}, but the specified packages will be automatically installed alongside the package they belong to (@pxref{package-cmd-propagated-inputs, @command{guix package}}, for information on how @command{guix package} deals with propagated inputs.)"
-msgstr "Schließlich ist @code{propagated-inputs} ähnlich wie @code{inputs}, aber die angegebenen Pakete werden automatisch mit ins Profil installiert, wenn das Paket installiert wird, zu dem sie gehören (siehe @ref{package-cmd-propagated-inputs, @command{guix package}} für Informationen darüber, wie @command{guix package} mit propagierten Eingaben umgeht)."
+#: doc/guix.texi:6556
+msgid "Lastly, @code{propagated-inputs} is similar to @code{inputs}, but the specified packages will be automatically installed to profiles (@pxref{Features, the role of profiles in Guix}) alongside the package they belong to (@pxref{package-cmd-propagated-inputs, @command{guix package}}, for information on how @command{guix package} deals with propagated inputs)."
+msgstr "Schließlich ist @code{propagated-inputs} ähnlich wie @code{inputs}, aber die angegebenen Pakete werden automatisch mit ins Profil installiert (siehe @ref{Features, die Rolle von Profilen in Guix}), wenn das Paket installiert wird, zu dem sie gehören (siehe @ref{package-cmd-propagated-inputs, @command{guix package}} für Informationen darüber, wie @command{guix package} mit propagierten Eingaben umgeht)."
 
 #. type: table
-#: doc/guix.texi:5774
-msgid "For example this is necessary when a C/C++ library needs headers of another library to compile, or when a pkg-config file refers to another one @i{via} its @code{Requires} field."
-msgstr "Dies ist zum Beispiel nötig, wenn eine C-/C++-Bibliothek Header-Dateien einer anderen Bibliothek braucht, um mit ihr kompilieren zu können, oder wenn sich eine pkg-config-Datei auf eine andere über ihren @code{Requires}-Eintrag bezieht."
+#: doc/guix.texi:6560
+msgid "For example this is necessary when packaging a C/C++ library that needs headers of another library to compile, or when a pkg-config file refers to another one @i{via} its @code{Requires} field."
+msgstr "Dies ist zum Beispiel nötig, wenn Sie ein Paket für eine C-/C++-Bibliothek schreiben, die Header-Dateien einer anderen Bibliothek braucht, um mit ihr kompilieren zu können, oder wenn sich eine pkg-config-Datei auf eine andere über ihren @code{Requires}-Eintrag bezieht."
 
 #. type: table
-#: doc/guix.texi:5781
-msgid "Another example where @code{propagated-inputs} is useful is for languages that lack a facility to record the run-time search path akin to the @code{RUNPATH} of ELF files; this includes Guile, Python, Perl, and more.  To ensure that libraries written in those languages can find library code they depend on at run time, run-time dependencies must be listed in @code{propagated-inputs} rather than @code{inputs}."
-msgstr "Noch ein Beispiel, wo @code{propagated-inputs} nützlich ist, sind Sprachen, die den Laufzeit-Suchpfad @emph{nicht} zusammen mit dem Programm abspeichern (@emph{nicht} wie etwa im @code{RUNPATH} bei ELF-Dateien), also Sprachen wie Guile, Python, Perl und weitere. Damit auch in solchen Sprachen geschriebene Bibliotheken zur Laufzeit den von ihnen benötigten Code finden können, müssen deren Laufzeit-Abhängigkeiten in @code{propagated-inputs} statt in @code{inputs} aufgeführt werden."
+#: doc/guix.texi:6567
+msgid "Another example where @code{propagated-inputs} is useful is for languages that lack a facility to record the run-time search path akin to the @code{RUNPATH} of ELF files; this includes Guile, Python, Perl, and more.  When packaging libraries written in those languages, ensure they can find library code they depend on at run time by listing run-time dependencies in @code{propagated-inputs} rather than @code{inputs}."
+msgstr "Noch ein Beispiel, wo @code{propagated-inputs} nützlich ist, sind Sprachen, die den Laufzeit-Suchpfad @emph{nicht} zusammen mit dem Programm abspeichern (@emph{nicht} wie etwa im @code{RUNPATH} bei ELF-Dateien), also Sprachen wie Guile, Python, Perl und weitere. Wenn Sie ein Paket für eine in solchen Sprachen geschriebene Bibliothek schreiben, dann sorgen Sie dafür, dass es zur Laufzeit den von ihr benötigten Code finden kann, indem Sie ihre Laufzeit-Abhängigkeiten in @code{propagated-inputs} statt in @code{inputs} aufführen."
 
 #. type: item
-#: doc/guix.texi:5782
+#: doc/guix.texi:6568
 #, no-wrap
 msgid "@code{outputs} (default: @code{'(\"out\")})"
 msgstr "@code{outputs} (Vorgabe: @code{'(\"out\")})"
 
 #. type: table
-#: doc/guix.texi:5785
+#: doc/guix.texi:6571
 msgid "The list of output names of the package.  @xref{Packages with Multiple Outputs}, for typical uses of additional outputs."
 msgstr "Die Liste der Benennungen der Ausgaben des Pakets. Der Abschnitt @ref{Packages with Multiple Outputs} beschreibt übliche Nutzungen zusätzlicher Ausgaben."
 
 #. type: item
-#: doc/guix.texi:5786
+#: doc/guix.texi:6572
 #, no-wrap
 msgid "@code{native-search-paths} (default: @code{'()})"
 msgstr "@code{native-search-paths} (Vorgabe: @code{'()})"
 
 #. type: itemx
-#: doc/guix.texi:5787
+#: doc/guix.texi:6573
 #, no-wrap
 msgid "@code{search-paths} (default: @code{'()})"
 msgstr "@code{search-paths} (Vorgabe: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:5790
+#: doc/guix.texi:6576
 msgid "A list of @code{search-path-specification} objects describing search-path environment variables honored by the package."
 msgstr "Eine Liste von @code{search-path-specification}-Objekten, die Umgebungsvariable für von diesem Paket beachtete Suchpfade („search paths“) beschreiben."
 
 #. type: item
-#: doc/guix.texi:5791
+#: doc/guix.texi:6577
 #, no-wrap
 msgid "@code{replacement} (default: @code{#f})"
 msgstr "@code{replacement} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:5795
+#: doc/guix.texi:6581
 msgid "This must be either @code{#f} or a package object that will be used as a @dfn{replacement} for this package.  @xref{Security Updates, grafts}, for details."
-msgstr "Dies muss entweder @code{#f} oder ein package-Objekt sein, das als Ersatz (@dfn{replacement}) dieses Pakets benutzt werden soll. Im Abschnitt @ref{Security Updates, grafts} wird dies erklärt."
+msgstr "Dies muss entweder @code{#f} oder ein package-Objekt sein, das als Ersatz (@dfn{replacement}) dieses Pakets benutzt werden soll. Im Abschnitt zu @ref{Security Updates, Veredelungen} wird dies erklärt."
 
 #. type: item
-#: doc/guix.texi:5796 doc/guix.texi:9738
+#: doc/guix.texi:6582 doc/guix.texi:11561
 #, no-wrap
 msgid "synopsis"
 msgstr "synopsis"
 
 #. type: table
-#: doc/guix.texi:5798
+#: doc/guix.texi:6584
 msgid "A one-line description of the package."
 msgstr "Eine einzeilige Beschreibung des Pakets."
 
-#. type: item
-#: doc/guix.texi:5799 doc/guix.texi:9739 doc/guix.texi:27538
+#. type: code{#1}
+#: doc/guix.texi:6585 doc/guix.texi:11562 doc/guix.texi:31704
+#: doc/guix.texi:31855
 #, no-wrap
 msgid "description"
 msgstr "description"
 
 #. type: table
-#: doc/guix.texi:5801
+#: doc/guix.texi:6587
 msgid "A more elaborate description of the package."
 msgstr "Eine ausführlichere Beschreibung des Pakets."
 
 #. type: code{#1}
-#: doc/guix.texi:5802
+#: doc/guix.texi:6588
 #, no-wrap
 msgid "license"
 msgstr "license"
 
 #. type: cindex
-#: doc/guix.texi:5803
+#: doc/guix.texi:6589
 #, no-wrap
 msgid "license, of packages"
 msgstr "Lizenz, von Paketen"
 
 #. type: table
-#: doc/guix.texi:5806
+#: doc/guix.texi:6592
 msgid "The license of the package; a value from @code{(guix licenses)}, or a list of such values."
 msgstr "Die Lizenz des Pakets; benutzt werden kann ein Wert aus dem Modul @code{(guix licenses)} oder eine Liste solcher Werte."
 
 #. type: itemx
-#: doc/guix.texi:5807 doc/guix.texi:9747
+#: doc/guix.texi:6593 doc/guix.texi:11570
 #, no-wrap
 msgid "home-page"
 msgstr "home-page"
 
 #. type: table
-#: doc/guix.texi:5809
+#: doc/guix.texi:6595
 msgid "The URL to the home-page of the package, as a string."
 msgstr "Die URL, die die Homepage des Pakets angibt, als Zeichenkette."
 
 #. type: item
-#: doc/guix.texi:5810
+#: doc/guix.texi:6596
 #, no-wrap
-msgid "@code{supported-systems} (default: @var{%supported-systems})"
-msgstr "@code{supported-systems} (Vorgabe: @var{%supported-systems})"
+msgid "@code{supported-systems} (default: @code{%supported-systems})"
+msgstr "@code{supported-systems} (Vorgabe: @code{%supported-systems})"
 
 #. type: table
-#: doc/guix.texi:5813
+#: doc/guix.texi:6599
 msgid "The list of systems supported by the package, as strings of the form @code{architecture-kernel}, for example @code{\"x86_64-linux\"}."
 msgstr "Die Liste der vom Paket unterstützten Systeme als Zeichenketten der Form @code{Architektur-Kernel}, zum Beispiel @code{\"x86_64-linux\"}."
 
 #. type: item
-#: doc/guix.texi:5814
+#: doc/guix.texi:6600
 #, no-wrap
 msgid "@code{location} (default: source location of the @code{package} form)"
 msgstr "@code{location} (Vorgabe: die Stelle im Quellcode, wo die @code{package}-Form steht)"
 
 #. type: table
-#: doc/guix.texi:5818
+#: doc/guix.texi:6604
 msgid "The source location of the package.  It is useful to override this when inheriting from another package, in which case this field is not automatically corrected."
 msgstr "Wo im Quellcode das Paket definiert wurde. Es ist sinnvoll, dieses Feld manuell zuzuweisen, wenn das Paket von einem anderen Paket erbt, weil dann dieses Feld nicht automatisch berichtigt wird."
 
 #. type: deffn
-#: doc/guix.texi:5821
+#: doc/guix.texi:6607
 #, no-wrap
 msgid "{Scheme Syntax} this-package"
 msgstr "{Scheme-Syntax} this-package"
 
 #. type: deffn
-#: doc/guix.texi:5824
+#: doc/guix.texi:6610
 msgid "When used in the @emph{lexical scope} of a package field definition, this identifier resolves to the package being defined."
 msgstr "Wenn dies im @emph{lexikalischen Geltungsbereich} der Definition eines Feldes im Paket steht, bezieht sich dieser Bezeichner auf das Paket, das gerade definiert wird."
 
 #. type: deffn
-#: doc/guix.texi:5827
+#: doc/guix.texi:6613
 msgid "The example below shows how to add a package as a native input of itself when cross-compiling:"
 msgstr "Das folgende Beispiel zeigt, wie man ein Paket als native Eingabe von sich selbst beim Cross-Kompilieren deklariert:"
 
 #. type: lisp
-#: doc/guix.texi:5832
+#: doc/guix.texi:6618
 #, no-wrap
 msgid ""
 "(package\n"
@@ -11986,7 +13381,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:5838
+#: doc/guix.texi:6624
 #, no-wrap
 msgid ""
 "  ;; When cross-compiled, Guile, for example, depends on\n"
@@ -12003,1775 +13398,3133 @@ msgstr ""
 "                     '())))\n"
 
 #. type: deffn
-#: doc/guix.texi:5841
+#: doc/guix.texi:6627
 msgid "It is an error to refer to @code{this-package} outside a package definition."
 msgstr "Es ist ein Fehler, außerhalb einer Paketdefinition auf @code{this-package} zu verweisen."
 
+#. type: Plain text
+#: doc/guix.texi:6633
+msgid "Because packages are regular Scheme objects that capture a complete dependency graph and associated build procedures, it is often useful to write procedures that take a package and return a modified version thereof according to some parameters.  Below are a few examples."
+msgstr "Weil Pakete herkömmliche Scheme-Objekte sind, die einen vollständigen Abhängigkeitsgraphen und die zugehörigen Erstellungsprozeduren umfassen, bietet es sich oftmals an, Prozeduren zu schreiben, die ein Paket entgegennehmen und in Abhängigkeit bestimmter Parameter eine abgeänderte Fassung desselben zurückliefern. Es folgen einige Beispiele."
+
+#. type: cindex
+#: doc/guix.texi:6634
+#, no-wrap
+msgid "tool chain, choosing a package's tool chain"
+msgstr "Toolchain, für ein Paket auswählen"
+
+#. type: deffn
+#: doc/guix.texi:6635
+#, no-wrap
+msgid "{Scheme Procedure} package-with-c-toolchain @var{package} @var{toolchain}"
+msgstr "{Scheme-Prozedur} package-with-c-toolchain @var{Paket} @var{Toolchain}"
+
+#. type: deffn
+#: doc/guix.texi:6640
+msgid "Return a variant of @var{package} that uses @var{toolchain} instead of the default GNU C/C++ toolchain.  @var{toolchain} must be a list of inputs (label/package tuples) providing equivalent functionality, such as the @code{gcc-toolchain} package."
+msgstr "Liefert eine Variante des @var{Paket}s, die die angegebene @var{Toolchain} anstelle der vorgegebenen GNU-C/C++-Toolchain benutzt. Als @var{Toolchain} muss eine Liste von Eingaben (als Tupel aus Bezeichnung und bezeichnetem Paket) angegeben werden, die eine gleichartige Funktion erfüllen, wie zum Beispiel das Paket @code{gcc-toolchain}."
+
+#. type: deffn
+#: doc/guix.texi:6644
+msgid "The example below returns a variant of the @code{hello} package built with GCC@tie{}10.x and the rest of the GNU tool chain (Binutils and the GNU C Library) instead of the default tool chain:"
+msgstr "Das folgende Beispiel liefert eine Variante des Pakets @code{hello}, die mit GCC@tie{}10.x und den übrigen Komponenten der GNU-Toolchain (Binutils und GNU-C-Bibliothek) erstellt wurde statt mit der vorgegebenen Toolchain:"
+
+#. type: lisp
+#: doc/guix.texi:6648
+#, no-wrap
+msgid ""
+"(let ((toolchain (specification->package \"gcc-toolchain@@10\")))\n"
+"  (package-with-c-toolchain hello `((\"toolchain\" ,toolchain))))\n"
+msgstr ""
+"(let ((toolchain (specification->package \"gcc-toolchain@@10\")))\n"
+"  (package-with-c-toolchain hello `((\"toolchain\" ,toolchain))))\n"
+
+#. type: deffn
+#: doc/guix.texi:6656
+msgid "The build tool chain is part of the @dfn{implicit inputs} of packages---it's usually not listed as part of the various ``inputs'' fields and is instead pulled in by the build system.  Consequently, this procedure works by changing the build system of @var{package} so that it pulls in @var{toolchain} instead of the defaults.  @ref{Build Systems}, for more on build systems."
+msgstr "Die Erstellungs-Toolchain gehört zu den @dfn{impliziten Eingaben} von Paketen — sie wird normalerweise nicht ausdrücklich unter den verschiedenen „inputs“-Feldern mit verschiedenen Arten von Eingaben aufgeführt, stattdessen kommt sie über das Erstellungssystem dazu. Daher funktioniert diese Prozedur intern so, dass sie das Erstellungssystem des @var{Paket}s verändert, damit es die ausgewählte @var{Toolchain} statt der vorgegebenen benutzt. Siehe @ref{Build Systems} für weitere Informationen zu Erstellungssystemen."
+
 #. type: subsection
-#: doc/guix.texi:5844
+#: doc/guix.texi:6659
 #, no-wrap
 msgid "@code{origin} Reference"
 msgstr "@code{origin}-Referenz"
 
 #. type: Plain text
-#: doc/guix.texi:5848
-msgid "This section summarizes all the options available in @code{origin} declarations (@pxref{Defining Packages})."
-msgstr "Dieser Abschnitt fasst alle Optionen zusammen, die in @code{origin}-Deklarationen zur Verfügung stehen (siehe @ref{Defining Packages})."
+#: doc/guix.texi:6667
+msgid "This section documents @dfn{origins}.  An @code{origin} declaration specifies data that must be ``produced''---downloaded, usually---and whose content hash is known in advance.  Origins are primarily used to represent the source code of packages (@pxref{Defining Packages}).  For that reason, the @code{origin} form allows you to declare patches to apply to the original source code as well as code snippets to modify it."
+msgstr "In diesem Abschnitt werden Paketursprünge — englisch @dfn{Origins} — beschrieben. Eine @code{origin}-Deklaration legt Daten fest, die „produziert“ werden müssen — normalerweise heißt das heruntergeladen. Die Hash-Prüfsumme von deren Inhalt muss dabei im Voraus bekannt sein. Ursprünge werden in erster Linie benutzt, um den Quellcode von Paketen zu repräsentieren (siehe @ref{Defining Packages}). Aus diesem Grund können Sie mit der @code{origin}-Form Patches angeben, die auf den ursprünglichen Quellcode angewandt werden sollen, oder auch Schnipsel von Code, der Veränderungen daran vornimmt."
 
 #. type: deftp
-#: doc/guix.texi:5849
+#: doc/guix.texi:6668
 #, no-wrap
 msgid "{Data Type} origin"
 msgstr "{Datentyp} origin"
 
 #. type: deftp
-#: doc/guix.texi:5851
+#: doc/guix.texi:6670
 msgid "This is the data type representing a source code origin."
 msgstr "Mit diesem Datentyp wird ein Ursprung, von dem Quellcode geladen werden kann, beschrieben."
 
 #. type: code{#1}
-#: doc/guix.texi:5853 doc/guix.texi:20431
+#: doc/guix.texi:6672 doc/guix.texi:23144
 #, no-wrap
 msgid "uri"
 msgstr "uri"
 
 #. type: table
-#: doc/guix.texi:5858
+#: doc/guix.texi:6677
 msgid "An object containing the URI of the source.  The object type depends on the @code{method} (see below).  For example, when using the @var{url-fetch} method of @code{(guix download)}, the valid @code{uri} values are: a URL represented as a string, or a list thereof."
 msgstr "Ein Objekt, was die URI des Quellcodes enthält. Der Objekttyp hängt von der @code{Methode} ab (siehe unten). Zum Beispiel sind, wenn die @var{url-fetch}-Methode aus @code{(guix download)} benutzt wird, die gültigen Werte für @code{uri}: eine URL dargestellt als Zeichenkette oder eine Liste solcher URLs."
 
+#. type: cindex
+#: doc/guix.texi:6678
+#, no-wrap
+msgid "fixed-output derivations, for download"
+msgstr "Ableitungen mit fester Ausgabe, zum Herunterladen"
+
 #. type: code{#1}
-#: doc/guix.texi:5859
+#: doc/guix.texi:6679
 #, no-wrap
 msgid "method"
 msgstr "method"
 
 #. type: table
-#: doc/guix.texi:5861
-msgid "A procedure that handles the URI."
-msgstr "Eine Prozedur, die die URI verwertet."
-
-#. type: table
-#: doc/guix.texi:5863
-msgid "Examples include:"
-msgstr "Beispiele sind unter anderem:"
-
-#. type: item
-#: doc/guix.texi:5865
-#, no-wrap
-msgid "@var{url-fetch} from @code{(guix download)}"
-msgstr "@var{url-fetch} aus @code{(guix download)}"
+#: doc/guix.texi:6686
+msgid "A monadic procedure that handles the given URI.  The procedure must accept at least three arguments: the value of the @code{uri} field and the hash algorithm and hash value specified by the @code{hash} field.  It must return a store item or a derivation in the store monad (@pxref{The Store Monad}); most methods return a fixed-output derivation (@pxref{Derivations})."
+msgstr "Eine monadische Prozedur, um die angegebene URL zu benutzen. Die Prozedur muss mindestens drei Argumente akzeptieren: den Wert des @code{uri}-Feldes, den Hash-Algorithmus und den Hash-Wert, der im @code{hash}-Feld angegeben wird. Sie muss ein Store-Objekt oder eine Ableitung in der Store-Monade liefern (siehe @ref{The Store Monad}). Die meisten Methoden liefern eine Ableitung mit fester Ausgabe (siehe @ref{Derivations})."
 
 #. type: table
-#: doc/guix.texi:5868
-msgid "download a file from the HTTP, HTTPS, or FTP URL specified in the @code{uri} field;"
-msgstr "Herunterladen einer Datei von einer HTTP-, HTTPS- oder FTP-URL, die im @code{uri}-Feld angegeben wurde."
-
-#. type: vindex
-#: doc/guix.texi:5869 doc/guix.texi:8962
-#, no-wrap
-msgid "git-fetch"
-msgstr "git-fetch"
+#: doc/guix.texi:6690
+msgid "Commonly used methods include @code{url-fetch}, which fetches data from a URL, and @code{git-fetch}, which fetches data from a Git repository (see below)."
+msgstr "Zu den häufig benutzten Methoden gehören @code{url-fetch}, das Daten von einer URL lädt, und @code{git-fetch}, das Daten aus einem Git-Repository lädt (siehe unten)."
 
-#. type: item
-#: doc/guix.texi:5870
+#. type: code{#1}
+#: doc/guix.texi:6691
 #, no-wrap
-msgid "@var{git-fetch} from @code{(guix git-download)}"
-msgstr "@var{git-fetch} aus @code{(guix git-download)}"
+msgid "sha256"
+msgstr "sha256"
 
 #. type: table
-#: doc/guix.texi:5874
-msgid "clone the Git version control repository, and check out the revision specified in the @code{uri} field as a @code{git-reference} object; a @code{git-reference} looks like this:"
-msgstr "Das im @code{uri}-Feld spezifizierte Repository des Git-Versionskontrollsystems klonen und davon den im @code{uri}-Feld als ein @code{git-reference}-Objekt angegebenen Commit benutzen; eine @code{git-reference} sieht so aus:"
-
-#. type: lisp
-#: doc/guix.texi:5879
-#, no-wrap
-msgid ""
-"(git-reference\n"
-"  (url \"https://git.savannah.gnu.org/git/hello.git\")\n"
-"  (commit \"v2.10\"))\n"
-msgstr ""
-"(git-reference\n"
-"  (url \"https://git.savannah.gnu.org/git/hello.git\")\n"
-"  (commit \"v2.10\"))\n"
+#: doc/guix.texi:6695
+msgid "A bytevector containing the SHA-256 hash of the source.  This is equivalent to providing a @code{content-hash} SHA256 object in the @code{hash} field described below."
+msgstr "Ein Byte-Vektor mit dem SHA-256-Hash des Quellcodes. Seine Funktion ist dieselbe wie das Angeben eines @code{content-hash}-SHA256-Objekts im weiter unten beschriebenen @code{hash}-Feld."
 
 #. type: code{#1}
-#: doc/guix.texi:5882
+#: doc/guix.texi:6696
 #, no-wrap
-msgid "sha256"
-msgstr "sha256"
+msgid "hash"
+msgstr "hash"
 
 #. type: table
-#: doc/guix.texi:5886
-msgid "A bytevector containing the SHA-256 hash of the source.  Typically the @code{base32} form is used here to generate the bytevector from a base-32 string."
-msgstr "Ein Bytevektor, der den SHA-256-Hash der Quelldateien enthält. Typischerweise wird hier mit der @code{base32}-Form der Bytevektor aus einer Base-32-Zeichenkette generiert."
+#: doc/guix.texi:6699
+msgid "The @code{content-hash} object of the source---see below for how to use @code{content-hash}."
+msgstr "Das @code{content-hash}-Objekt des Quellcodes. Siehe unten für eine Erklärung, wie Sie @code{content-hash} benutzen."
 
 #. type: table
-#: doc/guix.texi:5890
+#: doc/guix.texi:6703
 msgid "You can obtain this information using @code{guix download} (@pxref{Invoking guix download}) or @code{guix hash} (@pxref{Invoking guix hash})."
 msgstr "Diese Informationen liefert Ihnen der Befehl @code{guix download} (siehe @ref{Invoking guix download}) oder @code{guix hash} (siehe @ref{Invoking guix hash})."
 
 #. type: item
-#: doc/guix.texi:5891
+#: doc/guix.texi:6704
 #, no-wrap
 msgid "@code{file-name} (default: @code{#f})"
 msgstr "@code{file-name} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:5897
+#: doc/guix.texi:6710
 msgid "The file name under which the source code should be saved.  When this is @code{#f}, a sensible default value will be used in most cases.  In case the source is fetched from a URL, the file name from the URL will be used.  For version control checkouts, it is recommended to provide the file name explicitly because the default is not very descriptive."
 msgstr "Der Dateiname, unter dem der Quellcode abgespeichert werden soll. Wenn er auf @code{#f} steht, wird ein vernünftiger Name automatisch gewählt. Falls der Quellcode von einer URL geladen wird, wird der Dateiname aus der URL genommen. Wenn der Quellcode von einem Versionskontrollsystem bezogen wird, empfiehlt es sich, den Dateinamen ausdrücklich anzugeben, weil dann keine sprechende Benennung automatisch gefunden werden kann."
 
 #. type: item
-#: doc/guix.texi:5898
+#: doc/guix.texi:6711
 #, no-wrap
 msgid "@code{patches} (default: @code{'()})"
 msgstr "@code{patches} (Vorgabe: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:5901
+#: doc/guix.texi:6714
 msgid "A list of file names, origins, or file-like objects (@pxref{G-Expressions, file-like objects}) pointing to patches to be applied to the source."
 msgstr "Eine Liste von Dateinamen, Ursprüngen oder dateiähnlichen Objekten (siehe @ref{G-Expressions, dateiartige Objekte}) mit Patches, welche auf den Quellcode anzuwenden sind."
 
 #. type: table
-#: doc/guix.texi:5905
+#: doc/guix.texi:6718
 msgid "This list of patches must be unconditional.  In particular, it cannot depend on the value of @code{%current-system} or @code{%current-target-system}."
 msgstr "Die Liste von Patches kann nicht von Parametern der Erstellung abhängen. Insbesondere kann sie nicht vom Wert von @code{%current-system} oder @code{%current-target-system} abḧängen."
 
 #. type: item
-#: doc/guix.texi:5906
+#: doc/guix.texi:6719
 #, no-wrap
 msgid "@code{snippet} (default: @code{#f})"
 msgstr "@code{snippet} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:5910
+#: doc/guix.texi:6723
 msgid "A G-expression (@pxref{G-Expressions}) or S-expression that will be run in the source directory.  This is a convenient way to modify the source, sometimes more convenient than a patch."
 msgstr "Ein im Quellcode-Verzeichnis auszuführender G-Ausdruck (siehe @ref{G-Expressions}) oder S-Ausdruck. Hiermit kann der Quellcode bequem modifiziert werden, manchmal ist dies bequemer als mit einem Patch."
 
 #. type: item
-#: doc/guix.texi:5911
+#: doc/guix.texi:6724
 #, no-wrap
 msgid "@code{patch-flags} (default: @code{'(\"-p1\")})"
 msgstr "@code{patch-flags} (Vorgabe: @code{'(\"-p1\")})"
 
 #. type: table
-#: doc/guix.texi:5914
+#: doc/guix.texi:6727
 msgid "A list of command-line flags that should be passed to the @code{patch} command."
 msgstr "Eine Liste der Befehlszeilenoptionen, die dem @code{patch}-Befehl übergeben werden sollen."
 
 #. type: item
-#: doc/guix.texi:5915
+#: doc/guix.texi:6728
 #, no-wrap
 msgid "@code{patch-inputs} (default: @code{#f})"
 msgstr "@code{patch-inputs} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:5919
+#: doc/guix.texi:6732
 msgid "Input packages or derivations to the patching process.  When this is @code{#f}, the usual set of inputs necessary for patching are provided, such as GNU@tie{}Patch."
 msgstr "Eingabepakete oder -ableitungen für den Patch-Prozess. Bei @code{#f} werden die üblichen Patcheingaben wie GNU@tie{}Patch bereitgestellt."
 
 #. type: item
-#: doc/guix.texi:5920 doc/guix.texi:20326
+#: doc/guix.texi:6733 doc/guix.texi:23017
 #, no-wrap
 msgid "@code{modules} (default: @code{'()})"
 msgstr "@code{modules} (Vorgabe: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:5923
+#: doc/guix.texi:6736
 msgid "A list of Guile modules that should be loaded during the patching process and while running the code in the @code{snippet} field."
 msgstr "Eine Liste von Guile-Modulen, die während des Patch-Prozesses und während der Ausführung des @code{snippet}-Felds geladen sein sollen."
 
 #. type: item
-#: doc/guix.texi:5924
+#: doc/guix.texi:6737
 #, no-wrap
 msgid "@code{patch-guile} (default: @code{#f})"
 msgstr "@code{patch-guile} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:5927
+#: doc/guix.texi:6740
 msgid "The Guile package that should be used in the patching process.  When this is @code{#f}, a sensible default is used."
 msgstr "Welches Guile-Paket für den Patch-Prozess benutzt werden soll. Bei @code{#f} wird ein vernünftiger Vorgabewert angenommen."
 
+#. type: deftp
+#: doc/guix.texi:6743
+#, no-wrap
+msgid "{Data Type} content-hash @var{value} [@var{algorithm}]"
+msgstr "{Datentyp} content-hash @var{Wert} [@var{Algorithmus}]"
+
+#. type: deftp
+#: doc/guix.texi:6747
+msgid "Construct a content hash object for the given @var{algorithm}, and with @var{value} as its hash value.  When @var{algorithm} is omitted, assume it is @code{sha256}."
+msgstr "Erzeugt ein Inhaltshash-Objekt für den gegebenen @var{Algorithmus} und benutzt dabei den @var{Wert} als dessen Hashwert. Wenn kein @var{Algorithmus} angegeben wird, wird @code{sha256} angenommen."
+
+#. type: deftp
+#: doc/guix.texi:6750
+msgid "@var{value} can be a literal string, in which case it is base32-decoded, or it can be a bytevector."
+msgstr "Als @var{Wert} kann ein Zeichenketten-Literal, was base32-dekodiert wird, oder ein Byte-Vektor angegeben werden."
+
+#. type: deftp
+#: doc/guix.texi:6752
+msgid "The following forms are all equivalent:"
+msgstr "Folgende Formen sind äquivalent:"
+
+#. type: lisp
+#: doc/guix.texi:6761
+#, no-wrap
+msgid ""
+"(content-hash \"05zxkyz9bv3j9h0xyid1rhvh3klhsmrpkf3bcs6frvlgyr2gwilj\")\n"
+"(content-hash \"05zxkyz9bv3j9h0xyid1rhvh3klhsmrpkf3bcs6frvlgyr2gwilj\"\n"
+"              sha256)\n"
+"(content-hash (base32\n"
+"               \"05zxkyz9bv3j9h0xyid1rhvh3klhsmrpkf3bcs6frvlgyr2gwilj\"))\n"
+"(content-hash (base64 \"kkb+RPaP7uyMZmu4eXPVkM4BN8yhRd8BTHLslb6f/Rc=\")\n"
+"              sha256)\n"
+msgstr ""
+"(content-hash \"05zxkyz9bv3j9h0xyid1rhvh3klhsmrpkf3bcs6frvlgyr2gwilj\")\n"
+"(content-hash \"05zxkyz9bv3j9h0xyid1rhvh3klhsmrpkf3bcs6frvlgyr2gwilj\"\n"
+"              sha256)\n"
+"(content-hash (base32\n"
+"               \"05zxkyz9bv3j9h0xyid1rhvh3klhsmrpkf3bcs6frvlgyr2gwilj\"))\n"
+"(content-hash (base64 \"kkb+RPaP7uyMZmu4eXPVkM4BN8yhRd8BTHLslb6f/Rc=\")\n"
+"              sha256)\n"
+
+#. type: deftp
+#: doc/guix.texi:6766
+msgid "Technically, @code{content-hash} is currently implemented as a macro.  It performs sanity checks at macro-expansion time, when possible, such as ensuring that @var{value} has the right size for @var{algorithm}."
+msgstr "Als interne Implementierung wird für @code{content-hash} derzeit ein Makro benutzt. Es überprüft, wenn möglich, zum Zeitpunkt der Makroumschreibung, ob die Angaben in Ordnung sind, z.B.@: ob der @var{Wert} die richtige Größe für den angegebenen @var{Algorithmus} hat."
+
+#. type: Plain text
+#: doc/guix.texi:6772
+msgid "As we have seen above, how exactly the data an origin refers to is retrieved is determined by its @code{method} field.  The @code{(guix download)} module provides the most common method, @code{url-fetch}, described below."
+msgstr "Wie wir oben gesehen haben, hängt es von der im @code{method}-Feld angegebenen Methode ab, wie die in einem Paketursprung verwiesenen Daten geladen werden. Das Modul @code{(guix download)} stellt die am häufigsten benutzte Methode zur Verfügung, nämlich @code{url-fetch}, die im Folgenden beschrieben wird."
+
+#. type: deffn
+#: doc/guix.texi:6773
+#, no-wrap
+msgid "{Scheme Procedure} url-fetch @var{url} @var{hash-algo} @var{hash} @"
+msgstr "{Scheme-Prozedur} url-fetch @var{URL} @var{Hash-Algo} @var{Hash} @"
+
+#. type: deffn
+#: doc/guix.texi:6781
+msgid "[name] [#:executable? #f] Return a fixed-output derivation that fetches data from @var{url} (a string, or a list of strings denoting alternate URLs), which is expected to have hash @var{hash} of type @var{hash-algo} (a symbol).  By default, the file name is the base name of URL; optionally, @var{name} can specify a different file name.  When @var{executable?} is true, make the downloaded file executable."
+msgstr "[name] [#:executable? #f] Liefert eine Ableitung mit fester Ausgabe, die Daten von der @var{URL} lädt (einer Zeichenkette oder Liste von Zeichenketten für alternativ mögliche URLs). Es wird erwartet, dass die Daten @var{Hash} als Prüfsumme haben, gemäß dem Algorithmus, der in @var{Hash-Algo} (einem Symbol) angegebenen wurde. Nach Vorgabe ergibt sich der Dateiname aus dem Basisnamen der URL; optional kann in @var{name} ein anderslautender Name festgelegt werden. Wenn @var{executable?} wahr ist, wird die heruntergeladene Datei als ausführbar markiert."
+
+#. type: deffn
+#: doc/guix.texi:6784
+msgid "When one of the URL starts with @code{mirror://}, then its host part is interpreted as the name of a mirror scheme, taken from @file{%mirror-file}."
+msgstr "Wenn eine der URL mit @code{mirror://} beginnt, wird der „Host Part“ an deren Anfang als Name eines Spiegelserver-Schemas aufgefasst, wie es in @file{%mirror-file} steht."
+
+#. type: deffn
+#: doc/guix.texi:6787
+msgid "Alternatively, when URL starts with @code{file://}, return the corresponding file name in the store."
+msgstr "Alternativ wird, wenn die URL mit @code{file://} beginnt, der zugehörige Dateiname in den Store eingefügt und zurückgeliefert."
+
+#. type: Plain text
+#: doc/guix.texi:6793
+msgid "Likewise, the @code{(guix git-download)} module defines the @code{git-fetch} origin method, which fetches data from a Git version control repository, and the @code{git-reference} data type to describe the repository and revision to fetch."
+msgstr "Ebenso ist im Modul @code{(guix git-download)} die @code{git-fetch}-Methode für Paketursprünge definiert. Sie lädt Daten aus einem Repository des Versionskontrollsystems Git. Der Datentyp @code{git-reference} beschreibt dabei das Repository und den daraus zu ladenden Commit."
+
+#. type: deffn
+#: doc/guix.texi:6794
+#, no-wrap
+msgid "{Scheme Procedure} git-fetch @var{ref} @var{hash-algo} @var{hash}"
+msgstr "{Scheme-Prozedur} git-fetch @var{Ref} @var{Hash-Algo} @var{Hash}"
+
+#. type: deffn
+#: doc/guix.texi:6799
+msgid "Return a fixed-output derivation that fetches @var{ref}, a @code{<git-reference>} object.  The output is expected to have recursive hash @var{hash} of type @var{hash-algo} (a symbol).  Use @var{name} as the file name, or a generic name if @code{#f}."
+msgstr "Liefert eine Ableitung mit fester Ausgabe, die @var{Ref} lädt, ein @code{<git-reference>}-Objekt. Es wird erwartet, dass die Ausgabe rekursiv die Prüfsumme @var{Hash} aufweist (ein „rekursiver Hash“) gemäß dem Typ @var{Hash-Algo} (einem Symbol). Als Dateiname wird @var{name} verwendet, oder ein generischer Name, falls @var{name} @code{#f} ist."
+
+#. type: deftp
+#: doc/guix.texi:6801
+#, no-wrap
+msgid "{Data Type} git-reference"
+msgstr "{Datentyp} git-reference"
+
+#. type: deftp
+#: doc/guix.texi:6804
+msgid "This data type represents a Git reference for @code{git-fetch} to retrieve."
+msgstr "Dieser Datentyp steht für eine Git-Referenz, die @code{git-fetch} laden soll."
+
+#. type: code{#1}
+#: doc/guix.texi:6806 doc/guix.texi:21583
+#, no-wrap
+msgid "url"
+msgstr "url"
+
+#. type: table
+#: doc/guix.texi:6808
+msgid "The URL of the Git repository to clone."
+msgstr "Die URL des zu klonenden Git-Repositorys."
+
+#. type: code{#1}
+#: doc/guix.texi:6809
+#, no-wrap
+msgid "commit"
+msgstr "commit"
+
+#. type: table
+#: doc/guix.texi:6813
+msgid "This string denotes either the commit to fetch (a hexadecimal string, either the full SHA1 commit or a ``short'' commit string; the latter is not recommended) or the tag to fetch."
+msgstr "Diese Zeichenkette gibt entweder den zu ladenden Commit an (eine Zeichenkette aus Hexadezimalzeichen, entweder der vollständige SHA1-Commit oder eine „kurze“ Commit-Zeichenkette, aber wir raten vom Verkürzen ab) oder sie entspricht dem zu ladenden Tag."
+
+#. type: item
+#: doc/guix.texi:6814
+#, no-wrap
+msgid "@code{recursive?} (default: @code{#f})"
+msgstr "@code{recursive?} (Vorgabe: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:6816
+msgid "This Boolean indicates whether to recursively fetch Git sub-modules."
+msgstr "Dieser boolesche Wert gibt an, ob Git-Submodule rekursiv geladen werden sollen."
+
+#. type: deftp
+#: doc/guix.texi:6820
+msgid "The example below denotes the @code{v2.10} tag of the GNU@tie{}Hello repository:"
+msgstr "Im folgenden Beispiel wird der Tag @code{v2.10} des Repositorys für GNU@tie{}Hello bezeichnet:"
+
+#. type: lisp
+#: doc/guix.texi:6825
+#, no-wrap
+msgid ""
+"(git-reference\n"
+"  (url \"https://git.savannah.gnu.org/git/hello.git\")\n"
+"  (commit \"v2.10\"))\n"
+msgstr ""
+"(git-reference\n"
+"  (url \"https://git.savannah.gnu.org/git/hello.git\")\n"
+"  (commit \"v2.10\"))\n"
+
+#. type: deftp
+#: doc/guix.texi:6829
+msgid "This is equivalent to the reference below, which explicitly names the commit:"
+msgstr "Das ist äquivalent zu folgender Referenz, wo der Commit ausdrücklich benannt wird:"
+
+#. type: lisp
+#: doc/guix.texi:6834
+#, no-wrap
+msgid ""
+"(git-reference\n"
+"  (url \"https://git.savannah.gnu.org/git/hello.git\")\n"
+"  (commit \"dc7dc56a00e48fe6f231a58f6537139fe2908fb9\"))\n"
+msgstr ""
+"(git-reference\n"
+"  (url \"https://git.savannah.gnu.org/git/hello.git\")\n"
+"  (commit \"dc7dc56a00e48fe6f231a58f6537139fe2908fb9\"))\n"
+
 #. type: cindex
-#: doc/guix.texi:5934
+#: doc/guix.texi:6840
+#, no-wrap
+msgid "customizing packages"
+msgstr "Pakete anpassen"
+
+#. type: cindex
+#: doc/guix.texi:6841
+#, no-wrap
+msgid "variants, of packages"
+msgstr "Varianten, von Paketen"
+
+#. type: Plain text
+#: doc/guix.texi:6851
+msgid "One of the nice things with Guix is that, given a package definition, you can easily @emph{derive} variants of that package---for a different upstream version, with different dependencies, different compilation options, and so on.  Some of these custom packages can be defined straight from the command line (@pxref{Package Transformation Options}).  This section describes how to define package variants in code.  This can be useful in ``manifests'' (@pxref{profile-manifest, @option{--manifest}}) and in your own package collection (@pxref{Creating a Channel}), among others!"
+msgstr "Eine der schönen Sachen an Guix ist, dass Sie aus einer Paketdefinition leicht Varianten desselben Pakets @emph{ableiten} können — solche, die vom Anbieter eine andere Paketversion nehmen, als im Guix-Repository angegeben, solche mit anderen Abhängigkeiten, anders gearteten Compiler-Optionen und mehr. Manche dieser eigenen Pakete lassen sich direkt aus der Befehlszeile definieren (siehe @ref{Package Transformation Options}). Dieser Abschnitt beschreibt, wie man Paketvarianten mit Code definiert. Das kann in „Manifesten“ nützlich sein (siehe @ref{profile-manifest, @option{--manifest}}) und in Ihrer eigenen Paketsammlung (siehe @ref{Creating a Channel}), unter anderem!"
+
+#. type: cindex
+#: doc/guix.texi:6852
+#, no-wrap
+msgid "inherit, for package definitions"
+msgstr "inherit, für Paketdefinitionen"
+
+#. type: Plain text
+#: doc/guix.texi:6859
+msgid "As discussed earlier, packages are first-class objects in the Scheme language.  The @code{(guix packages)} module provides the @code{package} construct to define new package objects (@pxref{package Reference}).  The easiest way to define a package variant is using the @code{inherit} keyword together with @code{package}.  This allows you to inherit from a package definition while overriding the fields you want."
+msgstr "Wie zuvor erörtert, sind Pakete Objekte erster Klasse in der Scheme-Sprache. Das Modul @code{(guix packages)} stellt das @code{package}-Konstrukt zur Verfügung, mit dem neue Paketobjekte definiert werden können (siehe @ref{package Reference}). Am einfachsten ist es, eine Paketvariante zu definieren, indem Sie das @code{inherit}-Schlüsselwort mit einem @code{package}-Objekt verwenden. Dadurch können Sie die Felder einer Paketdefinition erben lassen, aber die Felder selbst festlegen, die Sie festlegen möchten."
+
+#. type: Plain text
+#: doc/guix.texi:6864
+msgid "For example, given the @code{hello} variable, which contains a definition for the current version of GNU@tie{}Hello, here's how you would define a variant for version 2.2 (released in 2006, it's vintage!):"
+msgstr "Betrachten wir zum Beispiel die Variable @code{hello}, die eine Definition für die aktuelle Version von GNU@tie{}Hello enthält. So können Sie eine Variante für Version 2.2 definieren (welche 2006 veröffentlicht wurde — ein guter Jahrgang!):"
+
+#. type: lisp
+#: doc/guix.texi:6867
+#, no-wrap
+msgid ""
+"(use-modules (gnu packages base))    ;for 'hello'\n"
+"\n"
+msgstr ""
+"(use-modules (gnu packages base))    ;für „hello“\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:6879
+#, no-wrap
+msgid ""
+"(define hello-2.2\n"
+"  (package\n"
+"    (inherit hello)\n"
+"    (version \"2.2\")\n"
+"    (source (origin\n"
+"              (method url-fetch)\n"
+"              (uri (string-append \"mirror://gnu/hello/hello-\" version\n"
+"                                  \".tar.gz\"))\n"
+"              (sha256\n"
+"               (base32\n"
+"                \"0lappv4slgb5spyqbh6yl5r013zv72yqg2pcl30mginf3wdqd8k9\"))))))\n"
+msgstr ""
+"(define hello-2.2\n"
+"  (package\n"
+"    (inherit hello)\n"
+"    (version \"2.2\")\n"
+"    (source (origin\n"
+"              (method url-fetch)\n"
+"              (uri (string-append \"mirror://gnu/hello/hello-\" version\n"
+"                                  \".tar.gz\"))\n"
+"              (sha256\n"
+"               (base32\n"
+"                \"0lappv4slgb5spyqbh6yl5r013zv72yqg2pcl30mginf3wdqd8k9\"))))))\n"
+
+#. type: Plain text
+#: doc/guix.texi:6888
+msgid "The example above corresponds to what the @option{--with-source} package transformation option does.  Essentially @code{hello-2.2} preserves all the fields of @code{hello}, except @code{version} and @code{source}, which it overrides.  Note that the original @code{hello} variable is still there, in the @code{(gnu packages base)} module, unchanged.  When you define a custom package like this, you are really @emph{adding} a new package definition; the original one remains available."
+msgstr "Das obige Beispiel entspricht dem, was Sie mit der Paketumwandlungsoption @option{--with-source} erreichen können. Im Kern erhält @code{hello-2.2} alle Felder von @code{hello} mit Ausnahme von @code{version} und @code{source}, die ersetzt werden (die beiden unterliegen einem „Override“). Beachten Sie, dass es die ursprüngliche @code{hello}-Variable weiterhin gibt, sie bleibt unverändert in dem Modul @code{(gnu packages base)}. Wenn Sie auf diese Weise ein eigenes Paket definieren, fügen Sie tatsächlich eine neue Paketdefinition hinzu; das Original bleibt erhalten."
+
+#. type: Plain text
+#: doc/guix.texi:6894
+msgid "You can just as well define variants with a different set of dependencies than the original package.  For example, the default @code{gdb} package depends on @code{guile}, but since that is an optional dependency, you can define a variant that removes that dependency like so:"
+msgstr "Genauso gut können Sie Varianten mit einer anderen Menge von Abhängigkeiten als im ursprünglichen Paket definieren. Zum Beispiel hängt das vorgegebene @code{gdb}-Paket von @code{guile} ab, aber weil es eine optionale Abhängigkeit ist, können Sie eine Variante definieren, die jene Abhängigkeit entfernt, etwa so:"
+
+#. type: lisp
+#: doc/guix.texi:6898
+#, no-wrap
+msgid ""
+"(use-modules (gnu packages gdb)    ;for 'gdb'\n"
+"             (srfi srfi-1))        ;for 'alist-delete'\n"
+"\n"
+msgstr ""
+"(use-modules (gnu packages gdb)    ;für 'gdb'\n"
+"             (srfi srfi-1))        ;für 'alist-delete'\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:6904
+#, no-wrap
+msgid ""
+"(define gdb-sans-guile\n"
+"  (package\n"
+"    (inherit gdb)\n"
+"    (inputs (alist-delete \"guile\"\n"
+"                          (package-inputs gdb)))))\n"
+msgstr ""
+"(define gdb-sans-guile\n"
+"  (package\n"
+"    (inherit gdb)\n"
+"    (inputs (alist-delete \"guile\"\n"
+"                          (package-inputs gdb)))))\n"
+
+#. type: Plain text
+#: doc/guix.texi:6910
+msgid "The @code{alist-delete} call above removes the tuple from the @code{inputs} field that has @code{\"guile\"} as its first element (@pxref{SRFI-1 Association Lists,,, guile, GNU Guile Reference Manual})."
+msgstr "Der obige Aufruf von @code{alist-delete} entfernt das Tupel aus dem @code{inputs}-Feld, dessen erstes Element @code{\"guile\"} ist (siehe @ref{SRFI-1 Association Lists,,, guile, Referenzhandbuch zu GNU Guile})."
+
+#. type: Plain text
+#: doc/guix.texi:6918
+msgid "In some cases, you may find it useful to write functions (``procedures'', in Scheme parlance) that return a package based on some parameters.  For example, consider the @code{luasocket} library for the Lua programming language.  We want to create @code{luasocket} packages for major versions of Lua.  One way to do that is to define a procedure that takes a Lua package and returns a @code{luasocket} package that depends on it:"
+msgstr "Manchmal bietet es sich an, Funktionen (also „Prozeduren“, wie Scheme-Anwender sagen) zu schreiben, die ein Paket abhängig von bestimmten Parametern zurückliefern. Als Beispiel betrachten wir die @code{luasocket}-Bibliothek für die Programmiersprache Lua. Wir möchten @code{luasocket}-Pakete für die hauptsächlichen Versionen von Lua verfügbar machen. Eine Möglichkeit, das zu erreichen, ist, eine Prozedur zu definieren, die ein Lua-Paket nimmt und ein von diesem abhängiges @code{luasocket}-Paket liefert."
+
+#. type: lisp
+#: doc/guix.texi:6929
+#, no-wrap
+msgid ""
+"(define (make-lua-socket name lua)\n"
+"  ;; Return a luasocket package built with LUA.\n"
+"  (package\n"
+"    (name name)\n"
+"    (version \"3.0\")\n"
+"    ;; several fields omitted\n"
+"    (inputs\n"
+"     `((\"lua\" ,lua)))\n"
+"    (synopsis \"Socket library for Lua\")))\n"
+"\n"
+msgstr ""
+"(define (make-lua-socket name lua)\n"
+"  ;; Liefert ein luasocket-Paket, das mit LUA erstellt wird.\n"
+"  (package\n"
+"    (name name)\n"
+"    (version \"3.0\")\n"
+"    ;; hier würden noch ein paar Felder stehen\n"
+"    (inputs\n"
+"     `((\"lua\" ,lua)))\n"
+"    (synopsis \"Socket library for Lua\")))\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:6932
+#, no-wrap
+msgid ""
+"(define-public lua5.1-socket\n"
+"  (make-lua-socket \"lua5.1-socket\" lua-5.1))\n"
+"\n"
+msgstr ""
+"(define-public lua5.1-socket\n"
+"  (make-lua-socket \"lua5.1-socket\" lua-5.1))\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:6935
+#, no-wrap
+msgid ""
+"(define-public lua5.2-socket\n"
+"  (make-lua-socket \"lua5.2-socket\" lua-5.2))\n"
+msgstr ""
+"(define-public lua5.2-socket\n"
+"  (make-lua-socket \"lua5.2-socket\" lua-5.2))\n"
+
+#. type: Plain text
+#: doc/guix.texi:6943
+msgid "Here we have defined packages @code{lua5.1-socket} and @code{lua5.2-socket} by calling @code{make-lua-socket} with different arguments.  @xref{Procedures,,, guile, GNU Guile Reference Manual}, for more info on procedures.  Having top-level public definitions for these two packages means that they can be referred to from the command line (@pxref{Package Modules})."
+msgstr "Damit haben wir Pakete @code{lua5.1-socket} und @code{lua5.2-socket} definiert, indem wir @code{make-lua-socket} mit verschiedenen Argumenten aufgerufen haben. Siehe @ref{Procedures,,, guile, Referenzhandbuch von GNU Guile} für mehr Informationen über Prozeduren. Weil wir mit @code{define-public} öffentlich sichtbare Definitionen auf oberster Ebene („top-level“) für diese beiden Pakete angegeben haben, kann man sie von der Befehlszeile aus benutzen (siehe @ref{Package Modules})."
+
+#. type: cindex
+#: doc/guix.texi:6944
+#, no-wrap
+msgid "package transformations"
+msgstr "Paketumwandlungen"
+
+#. type: Plain text
+#: doc/guix.texi:6949
+msgid "These are pretty simple package variants.  As a convenience, the @code{(guix transformations)} module provides a high-level interface that directly maps to the more sophisticated package transformation options (@pxref{Package Transformation Options}):"
+msgstr "Bei diesen handelt es sich um sehr einfache Paketvarianten. Bequemer ist es dann, mit dem Modul @code{(guix transformations)} eine hochsprachliche Schnittstelle einzusetzen, die auf die komplexeren Paketumwandlungsoptionen direkt abbildet (siehe @ref{Package Transformation Options}):"
+
+#. type: deffn
+#: doc/guix.texi:6950
+#, no-wrap
+msgid "{Scheme Procedure} options->transformation @var{opts}"
+msgstr "{Scheme-Prozedur} options->transformation @var{Optionen}"
+
+#. type: deffn
+#: doc/guix.texi:6954
+msgid "Return a procedure that, when passed an object to build (package, derivation, etc.), applies the transformations specified by @var{opts} and returns the resulting objects.  @var{opts} must be a list of symbol/string pairs such as:"
+msgstr "Liefert eine Prozedur, die gegeben ein zu erstellendes Objekt (ein Paket, eine Ableitung oder Ähnliches) die durch @var{Optionen} festgelegten Umwandlungen daran umsetzt und die sich ergebenden Objekte zurückliefert. @var{Optionen} muss eine Liste von Paaren aus Symbol und Zeichenkette sein wie:"
+
+#. type: lisp
+#: doc/guix.texi:6958
+#, no-wrap
+msgid ""
+"((with-branch . \"guile-gcrypt=master\")\n"
+" (without-tests . \"libgcrypt\"))\n"
+msgstr ""
+"((with-branch . \"guile-gcrypt=master\")\n"
+" (without-tests . \"libgcrypt\"))\n"
+
+#. type: deffn
+#: doc/guix.texi:6962
+msgid "Each symbol names a transformation and the corresponding string is an argument to that transformation."
+msgstr "Jedes Symbol benennt eine Umwandlung. Die entsprechende Zeichenkette ist ein Argument an diese Umwandlung."
+
+#. type: Plain text
+#: doc/guix.texi:6965
+msgid "For instance, a manifest equivalent to this command:"
+msgstr "Zum Beispiel wäre ein gleichwertiges Manifest zu diesem Befehl:"
+
+#. type: example
+#: doc/guix.texi:6970
+#, no-wrap
+msgid ""
+"guix build guix \\\n"
+"  --with-branch=guile-gcrypt=master \\\n"
+"  --with-debug-info=zlib\n"
+msgstr ""
+"guix build guix \\\n"
+"  --with-branch=guile-gcrypt=master \\\n"
+"  --with-debug-info=zlib\n"
+
+#. type: Plain text
+#: doc/guix.texi:6974
+msgid "... would look like this:"
+msgstr "… dieses hier:"
+
+#. type: lisp
+#: doc/guix.texi:6977
+#, no-wrap
+msgid ""
+"(use-modules (guix transformations))\n"
+"\n"
+msgstr ""
+"(use-modules (guix transformations))\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:6983
+#, no-wrap
+msgid ""
+"(define transform\n"
+"  ;; The package transformation procedure.\n"
+"  (options->transformation\n"
+"   '((with-branch . \"guile-gcrypt=master\")\n"
+"     (with-debug-info . \"zlib\"))))\n"
+"\n"
+msgstr ""
+"(define transform\n"
+"  ;; Die Prozedur zur Paketumwandlung.\n"
+"  (options->transformation\n"
+"   '((with-branch . \"guile-gcrypt=master\")\n"
+"     (with-debug-info . \"zlib\"))))\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:6986
+#, no-wrap
+msgid ""
+"(packages->manifest\n"
+" (list (transform (specification->package \"guix\"))))\n"
+msgstr ""
+"(packages->manifest\n"
+" (list (transform (specification->package \"guix\"))))\n"
+
+#. type: cindex
+#: doc/guix.texi:6988
+#, no-wrap
+msgid "input rewriting"
+msgstr "Eingaben umschreiben"
+
+#. type: cindex
+#: doc/guix.texi:6989
+#, no-wrap
+msgid "dependency graph rewriting"
+msgstr "Abhängigkeitsgraphen umschreiben"
+
+#. type: Plain text
+#: doc/guix.texi:6996
+msgid "The @code{options->transformation} procedure is convenient, but it's perhaps also not as flexible as you may like.  How is it implemented? The astute reader probably noticed that most package transformation options go beyond the superficial changes shown in the first examples of this section: they involve @dfn{input rewriting}, whereby the dependency graph of a package is rewritten by replacing specific inputs by others."
+msgstr "Die Prozedur @code{options->transformation} lässt sich einfach benutzen, ist aber vielleicht nicht so flexibel, wie Sie es sich wünschen. Wie sieht ihre Implementierung aus? Aufmerksamen Lesern mag aufgefallen sein, dass die meisten Paketumwandlungen die oberflächlichen Änderungen aus den ersten Beispielen in diesem Abschnitt übersteigen: Sie @dfn{schreiben Eingaben um}, was im Abhängigkeitsgraphen bestimmte Eingaben durch andere ersetzt."
+
+#. type: Plain text
+#: doc/guix.texi:7000
+msgid "Dependency graph rewriting, for the purposes of swapping packages in the graph, is what the @code{package-input-rewriting} procedure in @code{(guix packages)} implements."
+msgstr "Das Umschreiben des Abhängigkeitsgraphen, damit Pakete im Graphen ausgetauscht werden, ist in der Prozedur @code{package-input-rewriting} aus @code{(guix packages)} implementiert."
+
+#. type: deffn
+#: doc/guix.texi:7001
+#, no-wrap
+msgid "{Scheme Procedure} package-input-rewriting @var{replacements} @"
+msgstr "{Scheme-Prozedur} package-input-rewriting @var{Ersetzungen} @"
+
+#. type: deffn
+#: doc/guix.texi:7008
+msgid "[@var{rewrite-name}] [#:deep? #t] Return a procedure that, when passed a package, replaces its direct and indirect dependencies, including implicit inputs when @var{deep?} is true, according to @var{replacements}.  @var{replacements} is a list of package pairs; the first element of each pair is the package to replace, and the second one is the replacement."
+msgstr "[@var{umgeschriebener-Name}] [#:deep? #t] Eine Prozedur liefern, die für ein ihr übergebenes Paket dessen direkte und indirekte Abhängigkeit gemäß den @var{Ersetzungen} umschreibt, einschließlich ihrer impliziten Eingaben, wenn @var{deep?} wahr ist. @var{Ersetzungen} ist eine Liste von Paketpaaren; das erste Element eines Paares ist das zu ersetzende Paket und das zweite ist, wodurch es ersetzt werden soll."
+
+#. type: deffn
+#: doc/guix.texi:7011
+msgid "Optionally, @var{rewrite-name} is a one-argument procedure that takes the name of a package and returns its new name after rewrite."
+msgstr "Optional kann als @var{umgeschriebener-Name} eine ein Argument nehmende Prozedur angegeben werden, die einen Paketnamen nimmt und den Namen nach dem Umschreiben zurückliefert."
+
+#. type: table
+#: doc/guix.texi:7015 doc/guix.texi:10211
+msgid "Consider this example:"
+msgstr "Betrachten Sie dieses Beispiel:"
+
+#. type: lisp
+#: doc/guix.texi:7021
+#, no-wrap
+msgid ""
+"(define libressl-instead-of-openssl\n"
+"  ;; This is a procedure to replace OPENSSL by LIBRESSL,\n"
+"  ;; recursively.\n"
+"  (package-input-rewriting `((,openssl . ,libressl))))\n"
+"\n"
+msgstr ""
+"(define libressl-statt-openssl\n"
+"  ;; Dies ist eine Prozedur, mit der OPENSSL durch LIBRESSL\n"
+"  ;; rekursiv ersetzt wird.\n"
+"  (package-input-rewriting `((,openssl . ,libressl))))\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:7024
+#, no-wrap
+msgid ""
+"(define git-with-libressl\n"
+"  (libressl-instead-of-openssl git))\n"
+msgstr ""
+"(define git-mit-libressl\n"
+"  (libressl-statt-openssl git))\n"
+
+#. type: Plain text
+#: doc/guix.texi:7032
+msgid "Here we first define a rewriting procedure that replaces @var{openssl} with @var{libressl}.  Then we use it to define a @dfn{variant} of the @var{git} package that uses @var{libressl} instead of @var{openssl}.  This is exactly what the @option{--with-input} command-line option does (@pxref{Package Transformation Options, @option{--with-input}})."
+msgstr "Hier definieren wir zuerst eine Umschreibeprozedur, die @var{openssl} durch @var{libressl} ersetzt. Dann definieren wir damit eine @dfn{Variante} des @var{git}-Pakets, die @var{libressl} statt @var{openssl} benutzt. Das ist genau, was auch die Befehlszeilenoption @option{--with-input} tut (siehe @ref{Package Transformation Options, @option{--with-input}})."
+
+#. type: Plain text
+#: doc/guix.texi:7035
+msgid "The following variant of @code{package-input-rewriting} can match packages to be replaced by name rather than by identity."
+msgstr "Die folgende Variante von @code{package-input-rewriting} kann für die Ersetzung passende Pakete anhand ihres Namens finden, statt zu prüfen, ob der Wert identisch ist."
+
+#. type: deffn
+#: doc/guix.texi:7036
+#, no-wrap
+msgid "{Scheme Procedure} package-input-rewriting/spec @var{replacements} [#:deep? #t]"
+msgstr "{Scheme-Prozedur} package-input-rewriting/spec @var{Ersetzungen} [#:deep? #t]"
+
+#. type: deffn
+#: doc/guix.texi:7043
+msgid "Return a procedure that, given a package, applies the given @var{replacements} to all the package graph, including implicit inputs unless @var{deep?} is false.  @var{replacements} is a list of spec/procedures pair; each spec is a package specification such as @code{\"gcc\"} or @code{\"guile@@2\"}, and each procedure takes a matching package and returns a replacement for that package."
+msgstr "Liefert eine Prozedur, die für ein gegebenes Paket die angegebenen @var{Ersetzungen} auf dessen gesamten Paketgraphen anwendet (einschließlich impliziter Eingaben, außer wenn @var{deep?} falsch ist). @var{Ersetzungen} muss dabei eine Liste von Paaren aus je einer Spezifikation und Prozedur sein. Dabei ist jede Spezifikation eine Paketspezifikation wie @code{\"gcc\"} oder @code{\"guile@@2\"} und jede Prozedur nimmt ein passendes Paket und liefert dafür einen Ersatz für das Paket."
+
+#. type: Plain text
+#: doc/guix.texi:7046
+msgid "The example above could be rewritten this way:"
+msgstr "Das obige Beispiel könnte auch so geschrieben werden:"
+
+#. type: lisp
+#: doc/guix.texi:7051
+#, no-wrap
+msgid ""
+"(define libressl-instead-of-openssl\n"
+"  ;; Replace all the packages called \"openssl\" with LibreSSL.\n"
+"  (package-input-rewriting/spec `((\"openssl\" . ,(const libressl)))))\n"
+msgstr ""
+"(define libressl-statt-openssl\n"
+"  ;; Rekursiv alle Pakete namens \"openssl\" durch LibreSSL ersetzen.\n"
+"  (package-input-rewriting/spec `((\"openssl\" . ,(const libressl)))))\n"
+
+#. type: Plain text
+#: doc/guix.texi:7056
+msgid "The key difference here is that, this time, packages are matched by spec and not by identity.  In other words, any package in the graph that is called @code{openssl} will be replaced."
+msgstr "Der Hauptunterschied ist hier, dass diesmal Pakete zur Spezifikation passen müssen und nicht deren Wert identisch sein muss, damit sie ersetzt werden. Mit anderen Worten wird jedes Paket im Graphen ersetzt, das @code{openssl} heißt."
+
+#. type: Plain text
+#: doc/guix.texi:7060
+msgid "A more generic procedure to rewrite a package dependency graph is @code{package-mapping}: it supports arbitrary changes to nodes in the graph."
+msgstr "Eine allgemeiner anwendbare Prozedur, um den Abhängigkeitsgraphen eines Pakets umzuschreiben, ist @code{package-mapping}. Sie unterstützt beliebige Änderungen an den Knoten des Graphen."
+
+#. type: deffn
+#: doc/guix.texi:7061
+#, no-wrap
+msgid "{Scheme Procedure} package-mapping @var{proc} [@var{cut?}] [#:deep? #f]"
+msgstr "{Scheme-Prozedur} package-mapping @var{Prozedur} [@var{Schnitt?}] [#:deep? #f]"
+
+#. type: deffn
+#: doc/guix.texi:7066
+msgid "Return a procedure that, given a package, applies @var{proc} to all the packages depended on and returns the resulting package.  The procedure stops recursion when @var{cut?} returns true for a given package.  When @var{deep?} is true, @var{proc} is applied to implicit inputs as well."
+msgstr "Liefert eine Prozedur, die, wenn ihr ein Paket übergeben wird, die an @code{package-mapping} übergebene @var{Prozedur} auf alle vom Paket abhängigen Pakete anwendet. Die Prozedur liefert das resultierende Paket. Wenn @var{Schnitt?} für ein Paket davon einen wahren Wert liefert, findet kein rekursiver Abstieg in dessen Abhängigkeiten statt. Steht @var{deep?} auf wahr, wird die @var{Prozedur} auch auf implizite Eingaben angewandt."
+
+#. type: cindex
+#: doc/guix.texi:7072
 #, no-wrap
 msgid "build system"
 msgstr "Erstellungssystem"
 
 #. type: Plain text
-#: doc/guix.texi:5939
+#: doc/guix.texi:7077
 msgid "Each package definition specifies a @dfn{build system} and arguments for that build system (@pxref{Defining Packages}).  This @code{build-system} field represents the build procedure of the package, as well as implicit dependencies of that build procedure."
 msgstr "Jede Paketdefinition legt ein @dfn{Erstellungssystem} („build system“) sowie dessen Argumente fest (siehe @ref{Defining Packages}). Das @code{build-system}-Feld steht für die Erstellungsprozedur des Pakets sowie für weitere implizite Eingaben für die Erstellungsprozedur."
 
 #. type: Plain text
-#: doc/guix.texi:5943
+#: doc/guix.texi:7081
 msgid "Build systems are @code{<build-system>} objects.  The interface to create and manipulate them is provided by the @code{(guix build-system)} module, and actual build systems are exported by specific modules."
 msgstr "Erstellungssysteme sind @code{<build-system>}-Objekte. Die Schnittstelle, um solche zu erzeugen und zu verändern, ist im Modul @code{(guix build-system)} zu finden, und die eigentlichen Erstellungssysteme werden jeweils von ihren eigenen Modulen exportiert."
 
 #. type: cindex
-#: doc/guix.texi:5944
+#: doc/guix.texi:7082
 #, no-wrap
 msgid "bag (low-level package representation)"
 msgstr "Bag (systemnahe Paketrepräsentation)"
 
 #. type: Plain text
-#: doc/guix.texi:5951
-msgid "Under the hood, build systems first compile package objects to @dfn{bags}.  A @dfn{bag} is like a package, but with less ornamentation---in other words, a bag is a lower-level representation of a package, which includes all the inputs of that package, including some that were implicitly added by the build system.  This intermediate representation is then compiled to a derivation (@pxref{Derivations})."
-msgstr "Intern funktionieren Erstellungssysteme, indem erst Paketobjekte zu @dfn{Bags} kompiliert werden. Eine Bag (deutsch: Beutel, Sack) ist wie ein Paket, aber mit weniger Zierrat — anders gesagt ist eine Bag eine systemnähere Darstellung eines Pakets, die sämtliche Eingaben des Pakets einschließlich vom Erstellungssystem hinzugefügter Eingaben enthält. Diese Zwischendarstellung wird dann zur eigentlichen Ableitung kompiliert (siehe @ref{Derivations})."
+#: doc/guix.texi:7092
+msgid "Under the hood, build systems first compile package objects to @dfn{bags}.  A @dfn{bag} is like a package, but with less ornamentation---in other words, a bag is a lower-level representation of a package, which includes all the inputs of that package, including some that were implicitly added by the build system.  This intermediate representation is then compiled to a derivation (@pxref{Derivations}).  The @code{package-with-c-toolchain} is an example of a way to change the implicit inputs that a package's build system pulls in (@pxref{package Reference, @code{package-with-c-toolchain}})."
+msgstr "Intern funktionieren Erstellungssysteme, indem erst Paketobjekte zu @dfn{Bags} kompiliert werden. Eine Bag (deutsch: Beutel, Sack) ist wie ein Paket, aber mit weniger Zierrat — anders gesagt ist eine Bag eine systemnähere Darstellung eines Pakets, die sämtliche Eingaben des Pakets einschließlich vom Erstellungssystem hinzugefügter Eingaben enthält. Diese Zwischendarstellung wird dann zur eigentlichen Ableitung kompiliert (siehe @ref{Derivations}). Die Prozedur @code{package-with-c-toolchain} ist zum Beispiel eine Möglichkeit, wie die durch das Erstellungssystem hinzugenommenen impliziten Eingaben abgeändert werden können (siehe @ref{package Reference, @code{package-with-c-toolchain}})."
 
 #. type: Plain text
-#: doc/guix.texi:5959
+#: doc/guix.texi:7100
 msgid "Build systems accept an optional list of @dfn{arguments}.  In package definitions, these are passed @i{via} the @code{arguments} field (@pxref{Defining Packages}).  They are typically keyword arguments (@pxref{Optional Arguments, keyword arguments in Guile,, guile, GNU Guile Reference Manual}).  The value of these arguments is usually evaluated in the @dfn{build stratum}---i.e., by a Guile process launched by the daemon (@pxref{Derivations})."
-msgstr "Erstellungssysteme akzeptieren optional eine Liste von @dfn{Argumenten}. In Paketdefinitionen werden diese über das @code{arguments}-Feld übergeben (siehe @ref{Defining Packages}). Sie sind in der Regel Schlüsselwort-Argumente (siehe @ref{Optional Arguments, keyword arguments in Guile,, guile, GNU Guile Reference Manual}). Der Wert dieser Argumente wird normalerweise vom Erstellungssystem in der @dfn{Erstellungsschicht} ausgewertet, d.h.@: von einem durch den Daemon gestarteten Guile-Prozess (siehe @ref{Derivations})."
+msgstr "Erstellungssysteme akzeptieren optional eine Liste von @dfn{Argumenten}. In Paketdefinitionen werden diese über das @code{arguments}-Feld übergeben (siehe @ref{Defining Packages}). Sie sind in der Regel Schlüsselwort-Argumente (siehe @ref{Optional Arguments, Schlüsselwort-Argumente in Guile,, guile, Referenzhandbuch zu GNU Guile}). Der Wert dieser Argumente wird normalerweise vom Erstellungssystem in der @dfn{Erstellungsschicht} ausgewertet, d.h.@: von einem durch den Daemon gestarteten Guile-Prozess (siehe @ref{Derivations})."
 
 #. type: Plain text
-#: doc/guix.texi:5963
+#: doc/guix.texi:7104
 msgid "The main build system is @code{gnu-build-system}, which implements the standard build procedure for GNU and many other packages.  It is provided by the @code{(guix build-system gnu)} module."
 msgstr "Das häufigste Erstellungssystem ist @code{gnu-build-system}, was die übliche Erstellungsprozedur für GNU-Pakete und viele andere Pakete darstellt. Es wird vom Modul @code{(guix build-system gnu)} bereitgestellt."
 
 #. type: defvr
-#: doc/guix.texi:5964
+#: doc/guix.texi:7105
 #, no-wrap
 msgid "{Scheme Variable} gnu-build-system"
 msgstr "{Scheme-Variable} gnu-build-system"
 
 #. type: defvr
-#: doc/guix.texi:5968
+#: doc/guix.texi:7109
 msgid "@code{gnu-build-system} represents the GNU Build System, and variants thereof (@pxref{Configuration, configuration and makefile conventions,, standards, GNU Coding Standards})."
-msgstr "@code{gnu-build-system} steht für das GNU-Erstellungssystem und Varianten desselben (siehe @ref{Configuration, configuration and makefile conventions,, standards, GNU Coding Standards})."
+msgstr "@code{gnu-build-system} steht für das GNU-Erstellungssystem und Varianten desselben (siehe @ref{Configuration, Konfiguration und Makefile-Konventionen,, standards, GNU Coding Standards})."
 
 #. type: cindex
-#: doc/guix.texi:5969 doc/guix.texi:6768
+#: doc/guix.texi:7110 doc/guix.texi:7945 doc/guix.texi:8362
 #, no-wrap
 msgid "build phases"
 msgstr "Erstellungsphasen"
 
 #. type: defvr
-#: doc/guix.texi:5976
+#: doc/guix.texi:7117
 msgid "In a nutshell, packages using it are configured, built, and installed with the usual @code{./configure && make && make check && make install} command sequence.  In practice, a few additional steps are often needed.  All these steps are split up in separate @dfn{phases}, notably@footnote{Please see the @code{(guix build gnu-build-system)} modules for more details about the build phases.}:"
 msgstr "Kurz gefasst werden Pakete, die es benutzen, konfiguriert, erstellt und installiert mit der üblichen Befehlsfolge @code{./configure && make && make check && make install}. In der Praxis braucht man oft noch ein paar weitere Schritte. Alle Schritte sind in voneinander getrennte @dfn{Phasen} unterteilt. Erwähnt werden sollten@footnote{Bitte schauen Sie in den Modulen unter @code{(guix build gnu-build-system)}, wenn Sie mehr Details zu Erstellungsphasen brauchen.}:"
 
 #. type: item
-#: doc/guix.texi:5978
+#: doc/guix.texi:7119
 #, no-wrap
 msgid "unpack"
 msgstr "unpack"
 
 #. type: table
-#: doc/guix.texi:5982
+#: doc/guix.texi:7123
 msgid "Unpack the source tarball, and change the current directory to the extracted source tree.  If the source is actually a directory, copy it to the build tree, and enter that directory."
 msgstr "Den Quell-Tarball entpacken und das Arbeitsverzeichnis wechseln in den entpackten Quellbaum. Wenn die Quelle bereits ein Verzeichnis ist, wird es in den Quellbaum kopiert und dorthin gewechselt."
 
 #. type: item
-#: doc/guix.texi:5983
+#: doc/guix.texi:7124
 #, no-wrap
 msgid "patch-source-shebangs"
 msgstr "patch-source-shebangs"
 
 #. type: table
-#: doc/guix.texi:5987
+#: doc/guix.texi:7128
 msgid "Patch shebangs encountered in source files so they refer to the right store file names.  For instance, this changes @code{#!/bin/sh} to @code{#!/gnu/store/@dots{}-bash-4.3/bin/sh}."
 msgstr "„Shebangs“ in Quelldateien beheben, damit Sie sich auf die richtigen Store-Dateipfade beziehen. Zum Beispiel könnte @code{#!/bin/sh} zu @code{#!/gnu/store/…-bash-4.3/bin/sh} geändert werden."
 
 #. type: item
-#: doc/guix.texi:5988 doc/guix.texi:6726 doc/guix.texi:6774
+#: doc/guix.texi:7129 doc/guix.texi:7902 doc/guix.texi:7951
 #, no-wrap
 msgid "configure"
 msgstr "configure"
 
 #. type: table
-#: doc/guix.texi:5992
-msgid "Run the @file{configure} script with a number of default options, such as @code{--prefix=/gnu/store/@dots{}}, as well as the options specified by the @code{#:configure-flags} argument."
-msgstr "Das Skript @file{configure} mit einigen vorgegebenen Befehlszeilenoptionen ausführen, wie z.B.@: mit @code{--prefix=/gnu/store/…}, sowie mit den im @code{#:configure-flags}-Argument angegebenen Optionen."
+#: doc/guix.texi:7133
+msgid "Run the @file{configure} script with a number of default options, such as @option{--prefix=/gnu/store/@dots{}}, as well as the options specified by the @code{#:configure-flags} argument."
+msgstr "Das Skript @file{configure} mit einigen vorgegebenen Befehlszeilenoptionen ausführen, wie z.B.@: mit @option{--prefix=/gnu/store/…}, sowie mit den im @code{#:configure-flags}-Argument angegebenen Optionen."
 
 #. type: item
-#: doc/guix.texi:5993 doc/guix.texi:6259 doc/guix.texi:6731 doc/guix.texi:6778
-#: doc/guix.texi:26698
+#: doc/guix.texi:7134 doc/guix.texi:7392 doc/guix.texi:7908 doc/guix.texi:7955
+#: doc/guix.texi:30825
 #, no-wrap
 msgid "build"
 msgstr "build"
 
 #. type: table
-#: doc/guix.texi:5997
+#: doc/guix.texi:7138
 msgid "Run @code{make} with the list of flags specified with @code{#:make-flags}.  If the @code{#:parallel-build?} argument is true (the default), build with @code{make -j}."
 msgstr "@code{make} ausführen mit den Optionen aus der Liste in @code{#:make-flags}. Wenn das Argument @code{#:parallel-build?} auf wahr gesetzt ist (was der Vorgabewert ist), wird @code{make -j} zum Erstellen ausgeführt."
 
 #. type: item
-#: doc/guix.texi:5998 doc/guix.texi:6269 doc/guix.texi:6735
+#: doc/guix.texi:7139 doc/guix.texi:7402 doc/guix.texi:7912
 #, no-wrap
 msgid "check"
 msgstr "check"
 
 #. type: table
-#: doc/guix.texi:6003
+#: doc/guix.texi:7144
 msgid "Run @code{make check}, or some other target specified with @code{#:test-target}, unless @code{#:tests? #f} is passed.  If the @code{#:parallel-tests?} argument is true (the default), run @code{make check -j}."
 msgstr "@code{make check} (oder statt @code{check} ein anderes bei @code{#:test-target} angegebenes Ziel) ausführen, außer falls @code{#:tests? #f} gesetzt ist. Wenn das Argument @code{#:parallel-tests?} auf wahr gesetzt ist (der Vorgabewert), führe @code{make check -j} aus."
 
 #. type: item
-#: doc/guix.texi:6004 doc/guix.texi:6277 doc/guix.texi:6739 doc/guix.texi:6782
+#: doc/guix.texi:7145 doc/guix.texi:7410 doc/guix.texi:7916 doc/guix.texi:7959
 #, no-wrap
 msgid "install"
 msgstr "install"
 
 #. type: table
-#: doc/guix.texi:6006
+#: doc/guix.texi:7147
 msgid "Run @code{make install} with the flags listed in @code{#:make-flags}."
 msgstr "@code{make install} mit den in @code{#:make-flags} aufgelisteten Optionen ausführen."
 
 #. type: item
-#: doc/guix.texi:6007
+#: doc/guix.texi:7148
 #, no-wrap
 msgid "patch-shebangs"
 msgstr "patch-shebangs"
 
 #. type: table
-#: doc/guix.texi:6009
+#: doc/guix.texi:7150
 msgid "Patch shebangs on the installed executable files."
 msgstr "Shebangs in den installierten ausführbaren Dateien beheben."
 
 #. type: item
-#: doc/guix.texi:6010
+#: doc/guix.texi:7151
 #, no-wrap
 msgid "strip"
 msgstr "strip"
 
 #. type: table
-#: doc/guix.texi:6014
+#: doc/guix.texi:7155
 msgid "Strip debugging symbols from ELF files (unless @code{#:strip-binaries?} is false), copying them to the @code{debug} output when available (@pxref{Installing Debugging Files})."
 msgstr "Symbole zur Fehlerbehebung aus ELF-Dateien entfernen (außer @code{#:strip-binaries?} ist auf falsch gesetzt) und in die @code{debug}-Ausgabe kopieren, falls diese verfügbar ist (siehe @ref{Installing Debugging Files})."
 
 #. type: vindex
-#: doc/guix.texi:6016
+#: doc/guix.texi:7157
 #, no-wrap
 msgid "%standard-phases"
 msgstr "%standard-phases"
 
 #. type: defvr
-#: doc/guix.texi:6021
+#: doc/guix.texi:7162
 msgid "The build-side module @code{(guix build gnu-build-system)} defines @code{%standard-phases} as the default list of build phases.  @code{%standard-phases} is a list of symbol/procedure pairs, where the procedure implements the actual phase."
 msgstr "Das erstellungsseitige Modul @code{(guix build gnu-build-system)} definiert @code{%standard-phases} als die vorgegebene Liste der Erstellungsphasen. @code{%standard-phases} ist eine Liste von Paaren aus je einem Symbol und einer Prozedur. Letztere implementiert die eigentliche Phase."
 
 #. type: defvr
-#: doc/guix.texi:6024
-msgid "The list of phases used for a particular package can be changed with the @code{#:phases} parameter.  For instance, passing:"
-msgstr "Die Liste der Phasen, die für ein bestimmtes Paket verwendet werden sollen, kann vom Parameter @code{#:phases} überschrieben werden. Zum Beispiel werden bei Übergabe von:"
-
-#. type: example
-#: doc/guix.texi:6027
-#, no-wrap
-msgid "#:phases (modify-phases %standard-phases (delete 'configure))\n"
-msgstr "#:phases (modify-phases %standard-phases (delete 'configure))\n"
+#: doc/guix.texi:7165
+msgid "@xref{Build Phases}, for more info on build phases and ways to customize them."
+msgstr "Siehe @ref{Build Phases} für weitere Informationen zu Erstellungsphasen und Möglichkeiten, diese anzupassen."
 
 #. type: defvr
-#: doc/guix.texi:6031
-msgid "means that all the phases described above will be used, except the @code{configure} phase."
-msgstr "alle oben beschriebenen Phasen benutzt außer der @code{configure}-Phase."
-
-#. type: defvr
-#: doc/guix.texi:6038
+#: doc/guix.texi:7172
 msgid "In addition, this build system ensures that the ``standard'' environment for GNU packages is available.  This includes tools such as GCC, libc, Coreutils, Bash, Make, Diffutils, grep, and sed (see the @code{(guix build-system gnu)} module for a complete list).  We call these the @dfn{implicit inputs} of a package, because package definitions do not have to mention them."
 msgstr "Zusätzlich stellt dieses Erstellungssystem sicher, dass die „Standard“-Umgebung für GNU-Pakete zur Verfügung steht. Diese umfasst Werkzeuge wie GCC, libc, Coreutils, Bash, Make, Diffutils, grep und sed (siehe das Modul @code{(guix build-system gnu)} für eine vollständige Liste). Wir bezeichnen sie als @dfn{implizite Eingaben} eines Pakets, weil Paketdefinitionen sie nicht aufführen müssen."
 
 #. type: Plain text
-#: doc/guix.texi:6045
+#: doc/guix.texi:7179
 msgid "Other @code{<build-system>} objects are defined to support other conventions and tools used by free software packages.  They inherit most of @code{gnu-build-system}, and differ mainly in the set of inputs implicitly added to the build process, and in the list of phases executed.  Some of these build systems are listed below."
 msgstr "Andere @code{<build-system>}-Objekte werden definiert, um andere Konventionen und Werkzeuge von Paketen für freie Software zu unterstützen. Die anderen Erstellungssysteme erben den Großteil vom @code{gnu-build-system} und unterscheiden sich hauptsächlich darin, welche Eingaben dem Erstellungsprozess implizit hinzugefügt werden und welche Liste von Phasen durchlaufen wird. Manche dieser Erstellungssysteme sind im Folgenden aufgeführt."
 
 #. type: defvr
-#: doc/guix.texi:6046
+#: doc/guix.texi:7180
 #, no-wrap
 msgid "{Scheme Variable} ant-build-system"
 msgstr "{Scheme-Variable} ant-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6050
+#: doc/guix.texi:7184
 msgid "This variable is exported by @code{(guix build-system ant)}.  It implements the build procedure for Java packages that can be built with @url{https://ant.apache.org/, Ant build tool}."
 msgstr "Diese Variable wird vom Modul @code{(guix build-system ant)} exportiert. Sie implementiert die Erstellungsprozedur für Java-Pakete, die mit dem @url{https://ant.apache.org/, Ant build tool} erstellt werden können."
 
 #. type: defvr
-#: doc/guix.texi:6055
+#: doc/guix.texi:7189
 msgid "It adds both @code{ant} and the @dfn{Java Development Kit} (JDK) as provided by the @code{icedtea} package to the set of inputs.  Different packages can be specified with the @code{#:ant} and @code{#:jdk} parameters, respectively."
 msgstr "Sowohl @code{ant} als auch der @dfn{Java Development Kit} (JDK), wie er vom Paket @code{icedtea} bereitgestellt wird, werden zu den Eingaben hinzugefügt. Wenn andere Pakete dafür benutzt werden sollen, können sie jeweils mit den Parametern @code{#:ant} und @code{#:jdk} festgelegt werden."
 
 #. type: defvr
-#: doc/guix.texi:6061
+#: doc/guix.texi:7195
 msgid "When the original package does not provide a suitable Ant build file, the parameter @code{#:jar-name} can be used to generate a minimal Ant build file @file{build.xml} with tasks to build the specified jar archive.  In this case the parameter @code{#:source-dir} can be used to specify the source sub-directory, defaulting to ``src''."
 msgstr "Falls das ursprüngliche Paket über keine nutzbare Ant-Erstellungsdatei („Ant-Buildfile“) verfügt, kann aus der Angabe im Parameter @code{#:jar-name} eine minimale Ant-Erstellungsdatei @file{build.xml} erzeugt werden, in der die für die Erstellung durchzuführenden Aufgaben (Tasks) für die Erstellung des angegebenen Jar-Archivs stehen. In diesem Fall kann der Parameter @code{#:source-dir} benutzt werden, um das Unterverzeichnis mit dem Quellcode anzugeben; sein Vorgabewert ist „src“."
 
 #. type: defvr
-#: doc/guix.texi:6069
+#: doc/guix.texi:7203
 msgid "The @code{#:main-class} parameter can be used with the minimal ant buildfile to specify the main class of the resulting jar.  This makes the jar file executable.  The @code{#:test-include} parameter can be used to specify the list of junit tests to run. It defaults to @code{(list \"**/*Test.java\")}.  The @code{#:test-exclude} can be used to disable some tests. It defaults to @code{(list \"**/Abstract*.java\")}, because abstract classes cannot be run as tests."
 msgstr "Der Parameter @code{#:main-class} kann mit einer minimalen Ant-Erstellungsdatei benutzt werden, um die Hauptklasse des resultierenden Jar-Archivs anzugeben. Dies ist nötig, wenn die Jar-Datei ausführbar sein soll. Mit dem Parameter @code{#:test-include} kann eine Liste angegeben werden, welche Junit-Tests auszuführen sind. Der Vorgabewert ist @code{(list \"**/*Test.java\")}. Mit @code{#:test-exclude} kann ein Teil der Testdateien ignoriert werden. Der Vorgabewert ist @code{(list \"**/Abstract*.java\")}, weil abstrakte Klassen keine ausführbaren Tests enthalten können."
 
 #. type: defvr
-#: doc/guix.texi:6073
+#: doc/guix.texi:7207
 msgid "The parameter @code{#:build-target} can be used to specify the Ant task that should be run during the @code{build} phase.  By default the ``jar'' task will be run."
 msgstr "Der Parameter @code{#:build-target} kann benutzt werden, um die Ant-Aufgabe (Task) anzugeben, die während der @code{build}-Phase ausgeführt werden soll. Vorgabe ist, dass die Aufgabe (Task) „jar“ ausgeführt wird."
 
 #. type: defvr
-#: doc/guix.texi:6076
+#: doc/guix.texi:7210
 #, no-wrap
 msgid "{Scheme Variable} android-ndk-build-system"
 msgstr "{Scheme-Variable} android-ndk-build-system"
 
 #. type: cindex
-#: doc/guix.texi:6077
+#: doc/guix.texi:7211
 #, no-wrap
 msgid "Android distribution"
 msgstr "Android-Distribution"
 
 #. type: cindex
-#: doc/guix.texi:6078
+#: doc/guix.texi:7212
 #, no-wrap
 msgid "Android NDK build system"
 msgstr "Android-NDK-Erstellungssystem"
 
 #. type: defvr
-#: doc/guix.texi:6082
+#: doc/guix.texi:7216
 msgid "This variable is exported by @code{(guix build-system android-ndk)}.  It implements a build procedure for Android NDK (native development kit)  packages using a Guix-specific build process."
 msgstr "Diese Variable wird von @code{(guix build-system android-ndk)} exportiert. Sie implementiert eine Erstellungsprozedur für das Android NDK (Native Development Kit) benutzende Pakete mit einem Guix-spezifischen Erstellungsprozess."
 
 #. type: defvr
-#: doc/guix.texi:6086
-msgid "The build system assumes that packages install their public interface (header) files to the subdirectory \"include\" of the \"out\" output and their libraries to the subdirectory \"lib\" of the \"out\" output."
-msgstr "Für das Erstellungssystem wird angenommen, dass Pakete die zu ihrer öffentlichen Schnittstelle gehörenden Header-Dateien im Unterverzeichnis \"include\" der Ausgabe \"out\" und ihre Bibliotheken im Unterverzeichnis \"lib\" der Ausgabe \"out\" platzieren."
+#: doc/guix.texi:7220
+msgid "The build system assumes that packages install their public interface (header) files to the subdirectory @file{include} of the @code{out} output and their libraries to the subdirectory @file{lib} the @code{out} output."
+msgstr "Für das Erstellungssystem wird angenommen, dass Pakete die zu ihrer öffentlichen Schnittstelle gehörenden Header-Dateien im Unterverzeichnis @file{include} der Ausgabe @code{out} und ihre Bibliotheken im Unterverzeichnis @file{lib} der Ausgabe @code{out} platzieren."
 
 #. type: defvr
-#: doc/guix.texi:6089
+#: doc/guix.texi:7223
 msgid "It's also assumed that the union of all the dependencies of a package has no conflicting files."
 msgstr "Ebenso wird angenommen, dass es keine im Konflikt stehenden Dateien unter der Vereinigung aller Abhängigkeiten gibt."
 
 #. type: defvr
-#: doc/guix.texi:6092
+#: doc/guix.texi:7226
 msgid "For the time being, cross-compilation is not supported - so right now the libraries and header files are assumed to be host tools."
 msgstr "Derzeit wird Cross-Kompilieren hierfür nicht unterstützt, also wird dabei vorausgesetzt, dass Bibliotheken und Header-Dateien dieselben wie im Wirtssystem sind."
 
 #. type: defvr
-#: doc/guix.texi:6095
+#: doc/guix.texi:7229
 #, no-wrap
 msgid "{Scheme Variable} asdf-build-system/source"
 msgstr "{Scheme-Variable} asdf-build-system/source"
 
 #. type: defvrx
-#: doc/guix.texi:6096
+#: doc/guix.texi:7230
 #, no-wrap
 msgid "{Scheme Variable} asdf-build-system/sbcl"
 msgstr "{Scheme-Variable} asdf-build-system/sbcl"
 
 #. type: defvrx
-#: doc/guix.texi:6097
+#: doc/guix.texi:7231
 #, no-wrap
 msgid "{Scheme Variable} asdf-build-system/ecl"
 msgstr "{Scheme-Variable} asdf-build-system/ecl"
 
 #. type: defvr
-#: doc/guix.texi:6103
+#: doc/guix.texi:7237
 msgid "These variables, exported by @code{(guix build-system asdf)}, implement build procedures for Common Lisp packages using @url{https://common-lisp.net/project/asdf/, ``ASDF''}. ASDF is a system definition facility for Common Lisp programs and libraries."
 msgstr "Diese Variablen, die vom Modul @code{(guix build-system asdf)} exportiert werden, implementieren Erstellungsprozeduren für Common-Lisp-Pakete, welche @url{https://common-lisp.net/project/asdf/, „ASDF“} benutzen. ASDF dient der Systemdefinition für Common-Lisp-Programme und -Bibliotheken."
 
 #. type: defvr
-#: doc/guix.texi:6110
+#: doc/guix.texi:7244
 msgid "The @code{asdf-build-system/source} system installs the packages in source form, and can be loaded using any common lisp implementation, via ASDF.  The others, such as @code{asdf-build-system/sbcl}, install binary systems in the format which a particular implementation understands.  These build systems can also be used to produce executable programs, or lisp images which contain a set of packages pre-loaded."
 msgstr "Das Erstellungssystem @code{asdf-build-system/source} installiert die Pakete in Quellcode-Form und kann @i{via} ASDF mit jeder Common-Lisp-Implementierung geladen werden. Die anderen Erstellungssysteme wie @code{asdf-build-system/sbcl} installieren binäre Systeme in dem Format, das von einer bestimmten Implementierung verstanden wird. Diese Erstellungssysteme können auch benutzt werden, um ausführbare Programme zu erzeugen oder um Lisp-Abbilder mit einem vorab geladenen Satz von Paketen zu erzeugen."
 
 #. type: defvr
-#: doc/guix.texi:6114
+#: doc/guix.texi:7248
 msgid "The build system uses naming conventions.  For binary packages, the package name should be prefixed with the lisp implementation, such as @code{sbcl-} for @code{asdf-build-system/sbcl}."
 msgstr "Das Erstellungssystem benutzt gewisse Namenskonventionen. Bei Binärpaketen sollte dem Paketnamen die Lispimplementierung als Präfix vorangehen, z.B.@: @code{sbcl-} für @code{asdf-build-system/sbcl}."
 
 #. type: defvr
-#: doc/guix.texi:6118
+#: doc/guix.texi:7252
 msgid "Additionally, the corresponding source package should be labeled using the same convention as python packages (see @ref{Python Modules}), using the @code{cl-} prefix."
 msgstr "Zudem sollte das entsprechende Quellcode-Paket mit der Konvention wie bei Python-Paketen (siehe @ref{Python Modules}) ein @code{cl-} als Präfix bekommen."
 
 #. type: defvr
-#: doc/guix.texi:6123
+#: doc/guix.texi:7257
 msgid "For binary packages, each system should be defined as a Guix package.  If one package @code{origin} contains several systems, package variants can be created in order to build all the systems.  Source packages, which use @code{asdf-build-system/source}, may contain several systems."
 msgstr "Für Binärpakete sollte für jedes System ein Guix-Paket definiert werden. Wenn für einen Ursprung im @code{origin} mehrere Systeme enthalten sind, können Paketvarianten geschrieben werden, mit denen alle Systeme erstellt werden. Quellpakete, die @code{asdf-build-system/source} benutzen, können mehrere Systeme enthalten."
 
 #. type: defvr
-#: doc/guix.texi:6130
+#: doc/guix.texi:7264
 msgid "In order to create executable programs and images, the build-side procedures @code{build-program} and @code{build-image} can be used.  They should be called in a build phase after the @code{create-symlinks} phase, so that the system which was just built can be used within the resulting image.  @code{build-program} requires a list of Common Lisp expressions to be passed as the @code{#:entry-program} argument."
 msgstr "Um ausführbare Programme und Abbilder zu erzeugen, können die erstellungsseitigen Prozeduren @code{build-program} und @code{build-image} benutzt werden. Sie sollten in einer Erstellungsphase nach der @code{create-symlinks}-Phase aufgerufen werden, damit das gerade erstellte System Teil des resultierenden Abbilds sein kann. An @code{build-program} muss eine Liste von Common-Lisp-Ausdrücken über das Argument @code{#:entry-program} übergeben werden."
 
 #. type: defvr
-#: doc/guix.texi:6139
-msgid "If the system is not defined within its own @code{.asd} file of the same name, then the @code{#:asd-file} parameter should be used to specify which file the system is defined in.  Furthermore, if the package defines a system for its tests in a separate file, it will be loaded before the tests are run if it is specified by the @code{#:test-asd-file} parameter.  If it is not set, the files @code{<system>-tests.asd}, @code{<system>-test.asd}, @code{tests.asd}, and @code{test.asd} will be tried if they exist."
-msgstr "Wenn das System nicht in seiner eigenen gleichnamigen @code{.asd}-Datei definiert ist, sollte der Parameter @code{#:asd-file} benutzt werden, um anzugeben, in welcher Datei das System definiert ist. Außerdem wird bei Paketen, für deren Tests ein System in einer separaten Datei definiert wurde, dieses System geladen, bevor die Tests ablaufen, wenn es im Parameter @code{#:test-asd-file} steht. Ist dafür kein Wert gesetzt, werden die Dateien @code{<system>-tests.asd}, @code{<system>-test.asd}, @code{tests.asd} und @code{test.asd} durchsucht, wenn sie existieren."
+#: doc/guix.texi:7273
+msgid "If the system is not defined within its own @file{.asd} file of the same name, then the @code{#:asd-file} parameter should be used to specify which file the system is defined in.  Furthermore, if the package defines a system for its tests in a separate file, it will be loaded before the tests are run if it is specified by the @code{#:test-asd-file} parameter.  If it is not set, the files @code{<system>-tests.asd}, @code{<system>-test.asd}, @code{tests.asd}, and @code{test.asd} will be tried if they exist."
+msgstr "Wenn das System nicht in seiner eigenen gleichnamigen @file{.asd}-Datei definiert ist, sollte der Parameter @code{#:asd-file} benutzt werden, um anzugeben, in welcher Datei das System definiert ist. Außerdem wird bei Paketen, für deren Tests ein System in einer separaten Datei definiert wurde, dieses System geladen, bevor die Tests ablaufen, wenn es im Parameter @code{#:test-asd-file} steht. Ist dafür kein Wert gesetzt, werden die Dateien @code{<system>-tests.asd}, @code{<system>-test.asd}, @code{tests.asd} und @code{test.asd} durchsucht, wenn sie existieren."
 
 #. type: defvr
-#: doc/guix.texi:6143
+#: doc/guix.texi:7277
 msgid "If for some reason the package must be named in a different way than the naming conventions suggest, the @code{#:asd-system-name} parameter can be used to specify the name of the system."
 msgstr "Wenn aus irgendeinem Grund der Paketname nicht den Namenskonventionen folgen kann, kann der Parameter @code{#:asd-system-name} benutzt werden, um den Namen des Systems anzugeben."
 
 #. type: defvr
-#: doc/guix.texi:6146
+#: doc/guix.texi:7280
 #, no-wrap
 msgid "{Scheme Variable} cargo-build-system"
 msgstr "{Scheme-Variable} cargo-build-system"
 
 #. type: cindex
-#: doc/guix.texi:6147
+#: doc/guix.texi:7281
 #, no-wrap
 msgid "Rust programming language"
 msgstr "Rust-Programmiersprache"
 
 #. type: cindex
-#: doc/guix.texi:6148
+#: doc/guix.texi:7282
 #, no-wrap
 msgid "Cargo (Rust build system)"
 msgstr "Cargo (Rust-Erstellungssystem)"
 
 #. type: defvr
-#: doc/guix.texi:6152
+#: doc/guix.texi:7286
 msgid "This variable is exported by @code{(guix build-system cargo)}.  It supports builds of packages using Cargo, the build tool of the @uref{https://www.rust-lang.org, Rust programming language}."
 msgstr "Diese Variable wird vom Modul @code{(guix build-system cargo)} exportiert. Damit können Pakete mit Cargo erstellt werden, dem Erstellungswerkzeug der @uref{https://www.rust-lang.org, Rust-Programmiersprache}."
 
 #. type: defvr
-#: doc/guix.texi:6155
+#: doc/guix.texi:7289
 msgid "It adds @code{rustc} and @code{cargo} to the set of inputs.  A different Rust package can be specified with the @code{#:rust} parameter."
 msgstr "Das Erstellungssystem fügt @code{rustc} und @code{cargo} zu den Eingaben hinzu. Ein anderes Rust-Paket kann mit dem Parameter @code{#:rust} angegeben werden."
 
 #. type: defvr
-#: doc/guix.texi:6163
+#: doc/guix.texi:7297
 msgid "Regular cargo dependencies should be added to the package definition via the @code{#:cargo-inputs} parameter as a list of name and spec pairs, where the spec can be a package or a source definition.  Note that the spec must evaluate to a path to a gzipped tarball which includes a @code{Cargo.toml} file at its root, or it will be ignored.  Similarly, cargo dev-dependencies should be added to the package definition via the @code{#:cargo-development-inputs} parameter."
 msgstr "Normale cargo-Abhängigkeiten sollten zur Paketdefinition über den Parameter @code{#:cargo-inputs} als eine Liste von Paaren aus Name und Spezifikation hinzugefügt werden, wobei als Spezifikation ein Paket oder eine Quellcode-Definition angegeben werden kann. Beachten Sie, dass die Spezifikation zu einem mit gzip komprimierten Tarball ausgewertet werden muss, der eine Datei @code{Cargo.toml} in seinem Wurzelverzeichnis enthält, ansonsten wird sie ignoriert. Analog sollten solche Abhängigkeiten, die in cargo als „dev-dependencies“ deklariert werden, zur Paketdefinition über den Parameter @code{#:cargo-development-inputs} hinzugefügt werden."
 
 #. type: defvr
-#: doc/guix.texi:6170
-msgid "In its @code{configure} phase, this build system will make any source inputs specified in the @code{#:cargo-inputs} and @code{#:cargo-development-inputs} parameters available to cargo.  It will also remove an included @code{Cargo.lock} file to be recreated by @code{cargo} during the @code{build} phase.  The @code{install} phase installs any crate the binaries if they are defined by the crate."
-msgstr "In seiner @code{configure}-Phase sorgt dieses Erstellungssystem dafür, dass cargo alle Quellcodeeingaben zur Verfügung stehen, die in den Parametern @code{#:cargo-inputs} und @code{#:cargo-development-inputs} angegeben wurden. Außerdem wird eine enthaltene @code{Cargo.lock}-Datei entfernt, damit @code{cargo} selbige während der @code{build}-Phase neu erzeugt. Die @code{install}-Phase installiert die in jeder Crate definierten Binärdateien."
+#: doc/guix.texi:7304
+msgid "In its @code{configure} phase, this build system will make any source inputs specified in the @code{#:cargo-inputs} and @code{#:cargo-development-inputs} parameters available to cargo.  It will also remove an included @code{Cargo.lock} file to be recreated by @code{cargo} during the @code{build} phase.  The @code{install} phase installs the binaries defined by the crate."
+msgstr "In seiner @code{configure}-Phase sorgt dieses Erstellungssystem dafür, dass cargo alle Quellcodeeingaben zur Verfügung stehen, die in den Parametern @code{#:cargo-inputs} und @code{#:cargo-development-inputs} angegeben wurden. Außerdem wird eine enthaltene @code{Cargo.lock}-Datei entfernt, damit @code{cargo} selbige während der @code{build}-Phase neu erzeugt. Die @code{install}-Phase installiert die in der Crate definierten Binärdateien."
 
 #. type: defvr
-#: doc/guix.texi:6173
+#: doc/guix.texi:7307
 #, no-wrap
 msgid "{Scheme Variable} copy-build-system"
 msgstr "{Scheme-Variable} copy-build-system"
 
-#. type: cindex
-#: doc/guix.texi:6174
-#, no-wrap
-msgid "(copy build system)"
-msgstr "Kopier-Erstellungssystem"
-
 #. type: defvr
-#: doc/guix.texi:6178
+#: doc/guix.texi:7311
 msgid "This variable is exported by @code{(guix build-system copy)}.  It supports builds of simple packages that don't require much compiling, mostly just moving files around."
 msgstr "Diese Variable wird vom Modul @code{(guix build-system copy)} exportiert. Damit können einfache Pakete erstellt werden, für die nur wenig kompiliert werden muss, sondern in erster Linie Dateien kopiert werden."
 
 #. type: defvr
-#: doc/guix.texi:6183
+#: doc/guix.texi:7316
 msgid "It adds much of the @code{gnu-build-system} packages to the set of inputs.  Because of this, the @code{copy-build-system} does not require all the boilerplate code often needed for the @code{trivial-build-system}."
 msgstr "Dadurch wird ein Großteil der @code{gnu-build-system} zur Menge der Paketeingaben hinzugefügt. Deswegen kann man bei Nutzung des @code{copy-build-system} auf große Teile des Codes verzichten, der beim @code{trivial-build-system} anfallen würde."
 
 #. type: defvr
-#: doc/guix.texi:6188
+#: doc/guix.texi:7321
 msgid "To further simplify the file installation process, an @code{#:install-plan} argument is exposed to let the packager specify which files go where.  The install plan is a list of @code{(@var{source} @var{target} [@var{filters}])}.  @var{filters} are optional."
 msgstr "Um den Dateiinstallationsvorgang weiter zu vereinfachen, wird ein Argument @code{#:install-plan} zur Verfügung gestellt, mit dem der Paketautor angeben kann, welche Dateien wohin gehören. Der Installationsplan ist eine Liste aus @code{(@var{Quelle} @var{Ziel} [@var{Filter}])}. Die @var{Filter} sind optional."
 
 #. type: item
-#: doc/guix.texi:6190
+#: doc/guix.texi:7323
 #, no-wrap
 msgid "When @var{source} matches a file or directory without trailing slash, install it to @var{target}."
 msgstr "Wenn die @var{Quelle} einer Datei oder einem Verzeichnis ohne Schrägstrich am Ende entspricht, wird sie nach @var{Ziel} installiert."
 
 #. type: item
-#: doc/guix.texi:6192
+#: doc/guix.texi:7325
 #, no-wrap
 msgid "If @var{target} has a trailing slash, install @var{source} basename beneath @var{target}."
 msgstr "Hat das @var{Ziel} einen Schrägstrich am Ende, wird mit dem Basisnamen der @var{Quelle} innerhalb von @var{Ziel} installiert."
 
 #. type: item
-#: doc/guix.texi:6193
+#: doc/guix.texi:7326
 #, no-wrap
 msgid "Otherwise install @var{source} as @var{target}."
 msgstr "Andernfalls wird die @var{Quelle} als @var{Ziel} installiert."
 
 #. type: item
-#: doc/guix.texi:6196
+#: doc/guix.texi:7329
 #, no-wrap
 msgid "When @var{source} is a directory with a trailing slash, or when @var{filters} are used,"
 msgstr "Falls es sich bei der @var{Quelle} um ein Verzeichnis mit Schrägstrich am Ende handelt oder wenn @var{Filter} benutzt werden,"
 
 #. type: itemize
-#: doc/guix.texi:6199
+#: doc/guix.texi:7332
 msgid "the trailing slash of @var{target} is implied with the same meaning as above."
 msgstr "so ist der Schrägstrich am Ende von @var{Ziel} mit der Bedeutung wie oben implizit."
 
 #. type: item
-#: doc/guix.texi:6200
+#: doc/guix.texi:7333
 #, no-wrap
 msgid "Without @var{filters}, install the full @var{source} @emph{content} to @var{target}."
 msgstr "Ohne Angabe von @var{Filter}n wird der gesamte @emph{Inhalt} der @var{Quelle} nach @var{Ziel} installiert."
 
 #. type: item
-#: doc/guix.texi:6201
+#: doc/guix.texi:7334
 #, no-wrap
 msgid "With @var{filters} among @code{#:include}, @code{#:include-regexp}, @code{#:exclude},"
 msgstr "Werden @var{Filter} als @code{#:include}, @code{#:include-regexp}, @code{#:exclude}"
 
 #. type: itemize
-#: doc/guix.texi:6204
+#: doc/guix.texi:7337
 msgid "@code{#:exclude-regexp}, only select files are installed depending on the filters.  Each filters is specified by a list of strings."
 msgstr "oder @code{#:exclude-regexp} aufgeführt, werden je nach Filter nur die ausgewählten Dateien installiert. Jeder Filter wird als Liste von Zeichenketten angegeben."
 
 #. type: item
-#: doc/guix.texi:6205
+#: doc/guix.texi:7338
 #, no-wrap
 msgid "With @code{#:include}, install all the files which the path suffix matches"
 msgstr "Bei @code{#:include} werden all die Dateien installiert, deren Pfad als Suffix"
 
 #. type: itemize
-#: doc/guix.texi:6207
+#: doc/guix.texi:7340
 msgid "at least one of the elements in the given list."
 msgstr "zu mindestens einem der Elemente der angegebenen Liste passt."
 
 #. type: item
-#: doc/guix.texi:6207
+#: doc/guix.texi:7340
 #, no-wrap
 msgid "With @code{#:include-regexp}, install all the files which the"
 msgstr "Bei @code{#:include-regexp} werden all die Dateien installiert, deren"
 
 #. type: itemize
-#: doc/guix.texi:6210
+#: doc/guix.texi:7343
 msgid "subpaths match at least one of the regular expressions in the given list."
 msgstr "Unterpfad zu mindestens einem der regulären Ausdrücke in der angegebenen Liste passt."
 
 #. type: item
-#: doc/guix.texi:6210
+#: doc/guix.texi:7343
 #, no-wrap
 msgid "The @code{#:exclude} and @code{#:exclude-regexp} filters"
 msgstr "Die Filter @code{#:exclude} und @code{#:exclude-regexp}"
 
 #. type: itemize
-#: doc/guix.texi:6215
+#: doc/guix.texi:7348
 msgid "are the complement of their inclusion counterpart.  Without @code{#:include} flags, install all files but those matching the exclusion filters.  If both inclusions and exclusions are specified, the exclusions are done on top of the inclusions."
 msgstr "bewirken das Gegenteil ihrer Include-Entsprechungen. Ohne @code{#:include}-Angaben werden alle Dateien außer den zu den Exclude-Filtern passenden installiert. Werden sowohl @code{#:include} als auch @code{#:exclude} angegeben, werden zuerst die @code{#:include}-Angaben beachtet und danach wird durch @code{#:exclude} gefiltert."
 
 #. type: itemize
-#: doc/guix.texi:6219
+#: doc/guix.texi:7352
 msgid "In all cases, the paths relative to @var{source} are preserved within @var{target}."
 msgstr "In jedem Fall bleiben die Pfade relativ zur @var{Quelle} innerhalb des @var{Ziel}s erhalten."
 
 #. type: defvr
-#: doc/guix.texi:6222
+#: doc/guix.texi:7355
 msgid "Examples:"
 msgstr "Beispiele:"
 
 #. type: item
-#: doc/guix.texi:6224
+#: doc/guix.texi:7357
 #, no-wrap
 msgid "@code{(\"foo/bar\" \"share/my-app/\")}: Install @file{bar} to @file{share/my-app/bar}."
 msgstr "@code{(\"foo/bar\" \"share/my-app/\")}: Installiert @file{bar} nach @file{share/my-app/bar}."
 
 #. type: item
-#: doc/guix.texi:6225
+#: doc/guix.texi:7358
 #, no-wrap
 msgid "@code{(\"foo/bar\" \"share/my-app/baz\")}: Install @file{bar} to @file{share/my-app/baz}."
 msgstr "@code{(\"foo/bar\" \"share/my-app/baz\")}: Installiert @file{bar} nach @file{share/my-app/baz}."
 
 #. type: item
-#: doc/guix.texi:6226
+#: doc/guix.texi:7359
 #, no-wrap
 msgid "@code{(\"foo/\" \"share/my-app\")}: Install the content of @file{foo} inside @file{share/my-app},"
 msgstr "@code{(\"foo/\" \"share/my-app\")}: Installiert den Inhalt von @file{foo} innerhalb von @file{share/my-app}."
 
 #. type: itemize
-#: doc/guix.texi:6228
+#: doc/guix.texi:7361
 msgid "e.g., install @file{foo/sub/file} to @file{share/my-app/sub/file}."
 msgstr "Zum Beispiel wird @file{foo/sub/datei} nach @file{share/my-app/sub/datei} installiert."
 
 #. type: item
-#: doc/guix.texi:6228
+#: doc/guix.texi:7361
 #, no-wrap
 msgid "@code{(\"foo/\" \"share/my-app\" #:include (\"sub/file\"))}: Install only @file{foo/sub/file} to"
 msgstr "@code{(\"foo/\" \"share/my-app\" #:include (\"sub/datei\"))}: Installiert nur @file{foo/sub/datei}"
 
 #. type: itemize
-#: doc/guix.texi:6230
+#: doc/guix.texi:7363
 msgid "@file{share/my-app/sub/file}."
 msgstr "nach @file{share/my-app/sub/datei}."
 
 #. type: item
-#: doc/guix.texi:6230
+#: doc/guix.texi:7363
 #, no-wrap
 msgid "@code{(\"foo/sub\" \"share/my-app\" #:include (\"file\"))}: Install @file{foo/sub/file} to"
 msgstr "@code{(\"foo/sub\" \"share/my-app\" #:include (\"datei\"))}: Installiert @file{foo/sub/datei}"
 
 #. type: itemize
-#: doc/guix.texi:6232
+#: doc/guix.texi:7365
 msgid "@file{share/my-app/file}."
 msgstr "nach @file{share/my-app/datei}."
 
 #. type: cindex
-#: doc/guix.texi:6236
+#: doc/guix.texi:7369
 #, no-wrap
 msgid "Clojure (programming language)"
 msgstr "Clojure (Programmiersprache)"
 
 #. type: cindex
-#: doc/guix.texi:6237
+#: doc/guix.texi:7370
 #, no-wrap
 msgid "simple Clojure build system"
 msgstr "einfaches Clojure-Erstellungssystem"
 
 #. type: defvr
-#: doc/guix.texi:6238
+#: doc/guix.texi:7371
 #, no-wrap
 msgid "{Scheme Variable} clojure-build-system"
 msgstr "{Scheme-Variable} clojure-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6243
+#: doc/guix.texi:7376
 msgid "This variable is exported by @code{(guix build-system clojure)}.  It implements a simple build procedure for @uref{https://clojure.org/, Clojure} packages using plain old @code{compile} in Clojure.  Cross-compilation is not supported yet."
 msgstr "Diese Variable wird durch das Modul @code{(guix build-system clojure)} exportiert. Sie implementiert eine einfache Erstellungsprozedur für in @uref{https://clojure.org/, Clojure} geschriebene Pakete mit dem guten alten @code{compile} in Clojure. Cross-Kompilieren wird noch nicht unterstützt."
 
 #. type: defvr
-#: doc/guix.texi:6247
+#: doc/guix.texi:7380
 msgid "It adds @code{clojure}, @code{icedtea} and @code{zip} to the set of inputs.  Different packages can be specified with the @code{#:clojure}, @code{#:jdk} and @code{#:zip} parameters, respectively."
 msgstr "Das Erstellungssystem fügt @code{clojure}, @code{icedtea} und @code{zip} zu den Eingaben hinzu. Sollen stattdessen andere Pakete benutzt werden, können diese jeweils mit den Parametern @code{#:clojure}, @code{#:jdk} und @code{#:zip} spezifiziert werden."
 
 #. type: defvr
-#: doc/guix.texi:6253
+#: doc/guix.texi:7386
 msgid "A list of source directories, test directories and jar names can be specified with the @code{#:source-dirs}, @code{#:test-dirs} and @code{#:jar-names} parameters, respectively.  Compile directory and main class can be specified with the @code{#:compile-dir} and @code{#:main-class} parameters, respectively.  Other parameters are documented below."
 msgstr "Eine Liste der Quellcode-Verzeichnisse, Test-Verzeichnisse und Namen der Jar-Dateien können jeweils über die Parameter @code{#:source-dirs}, @code{#:test-dirs} und @code{#:jar-names} angegeben werden. Das Verzeichnis, in das kompiliert wird, sowie die Hauptklasse können jeweils mit den Parametern @code{#:compile-dir} und @code{#:main-class} angegeben werden. Andere Parameter sind im Folgenden dokumentiert."
 
 #. type: defvr
-#: doc/guix.texi:6256
+#: doc/guix.texi:7389
 msgid "This build system is an extension of @code{ant-build-system}, but with the following phases changed:"
 msgstr "Dieses Erstellungssystem ist eine Erweiterung des @code{ant-build-system}, bei der aber die folgenden Phasen geändert wurden:"
 
 #. type: table
-#: doc/guix.texi:6268
+#: doc/guix.texi:7401
 msgid "This phase calls @code{compile} in Clojure to compile source files and runs @command{jar} to create jars from both source files and compiled files according to the include list and exclude list specified in @code{#:aot-include} and @code{#:aot-exclude}, respectively.  The exclude list has priority over the include list.  These lists consist of symbols representing Clojure libraries or the special keyword @code{#:all} representing all Clojure libraries found under the source directories.  The parameter @code{#:omit-source?} decides if source should be included into the jars."
 msgstr "Diese Phase ruft @code{compile} in Clojure auf, um Quelldateien zu kompilieren, und führt @command{jar} aus, um Jar-Dateien aus sowohl Quelldateien als auch kompilierten Dateien zu erzeugen, entsprechend der jeweils in @code{#:aot-include} und @code{#:aot-exclude} festgelegten Listen aus in der Menge der Quelldateien eingeschlossenen und ausgeschlossenen Bibliotheken. Die Ausschlussliste hat Vorrang vor der Einschlussliste. Diese Listen setzen sich aus Symbolen zusammen, die für Clojure-Bibliotheken stehen oder dem Schlüsselwort @code{#:all} entsprechen, was für alle im Quellverzeichis gefundenen Clojure-Bibliotheken steht. Der Parameter @code{#:omit-source?} entscheidet, ob Quelldateien in die Jar-Archive aufgenommen werden sollen."
 
 #. type: table
-#: doc/guix.texi:6276
+#: doc/guix.texi:7409
 msgid "This phase runs tests according to the include list and exclude list specified in @code{#:test-include} and @code{#:test-exclude}, respectively.  Their meanings are analogous to that of @code{#:aot-include} and @code{#:aot-exclude}, except that the special keyword @code{#:all} now stands for all Clojure libraries found under the test directories.  The parameter @code{#:tests?} decides if tests should be run."
 msgstr "In dieser Phase werden Tests auf die durch Einschluss- und Ausschlussliste @code{#:test-include} bzw. @code{#:test-exclude} angegebenen Dateien ausgeführt. Deren Bedeutung ist analog zu @code{#:aot-include} und @code{#:aot-exclude}, außer dass das besondere Schlüsselwort @code{#:all} jetzt für alle Clojure-Bibliotheken in den Test-Verzeichnissen steht. Der Parameter @code{#:tests?} entscheidet, ob Tests ausgeführt werden sollen."
 
 #. type: table
-#: doc/guix.texi:6279
+#: doc/guix.texi:7412
 msgid "This phase installs all jars built previously."
 msgstr "In dieser Phase werden alle zuvor erstellten Jar-Dateien installiert."
 
 #. type: defvr
-#: doc/guix.texi:6282
+#: doc/guix.texi:7415
 msgid "Apart from the above, this build system also contains an additional phase:"
 msgstr "Zusätzlich zu den bereits angegebenen enthält dieses Erstellungssystem noch eine weitere Phase."
 
 #. type: item
-#: doc/guix.texi:6285
+#: doc/guix.texi:7418
 #, no-wrap
 msgid "install-doc"
 msgstr "install-doc"
 
 #. type: table
-#: doc/guix.texi:6290
+#: doc/guix.texi:7423
 msgid "This phase installs all top-level files with base name matching @code{%doc-regex}.  A different regex can be specified with the @code{#:doc-regex} parameter.  All files (recursively) inside the documentation directories specified in @code{#:doc-dirs} are installed as well."
 msgstr "Diese Phase installiert alle Dateien auf oberster Ebene, deren Basisnamen ohne Verzeichnisangabe zu @code{%doc-regex} passen. Ein anderer regulärer Ausdruck kann mit dem Parameter @code{#:doc-regex} verwendet werden. All die so gefundenen oder (rekursiv) in den mit @code{#:doc-dirs} angegebenen Dokumentationsverzeichnissen liegenden Dateien werden installiert."
 
 #. type: defvr
-#: doc/guix.texi:6293
+#: doc/guix.texi:7426
 #, no-wrap
 msgid "{Scheme Variable} cmake-build-system"
 msgstr "{Scheme-Variable} cmake-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6297
+#: doc/guix.texi:7430
 msgid "This variable is exported by @code{(guix build-system cmake)}.  It implements the build procedure for packages using the @url{https://www.cmake.org, CMake build tool}."
 msgstr "Diese Variable wird von @code{(guix build-system cmake)} exportiert. Sie implementiert die Erstellungsprozedur für Pakete, die das @url{https://www.cmake.org, CMake-Erstellungswerkzeug} benutzen."
 
 #. type: defvr
-#: doc/guix.texi:6301
+#: doc/guix.texi:7434
 msgid "It automatically adds the @code{cmake} package to the set of inputs.  Which package is used can be specified with the @code{#:cmake} parameter."
 msgstr "Das Erstellungssystem fügt automatisch das Paket @code{cmake} zu den Eingaben hinzu. Welches Paket benutzt wird, kann mit dem Parameter @code{#:cmake} geändert werden."
 
 #. type: defvr
-#: doc/guix.texi:6308
+#: doc/guix.texi:7441
 msgid "The @code{#:configure-flags} parameter is taken as a list of flags passed to the @command{cmake} command.  The @code{#:build-type} parameter specifies in abstract terms the flags passed to the compiler; it defaults to @code{\"RelWithDebInfo\"} (short for ``release mode with debugging information''), which roughly means that code is compiled with @code{-O2 -g}, as is the case for Autoconf-based packages by default."
 msgstr "Der Parameter @code{#:configure-flags} wird als Liste von Befehlszeilenoptionen aufgefasst, die an den Befehl @command{cmake} übergeben werden. Der Parameter @code{#:build-type} abstrahiert, welche Befehlszeilenoptionen dem Compiler übergeben werden; der Vorgabewert ist @code{\"RelWithDebInfo\"} (kurz für „release mode with debugging information“), d.h.@: kompiliert wird für eine Produktionsumgebung und Informationen zur Fehlerbehebung liegen bei, was ungefähr @code{-O2 -g} entspricht, wie bei der Vorgabe für Autoconf-basierte Pakete."
 
 #. type: defvr
-#: doc/guix.texi:6310
+#: doc/guix.texi:7443
 #, no-wrap
 msgid "{Scheme Variable} dune-build-system"
 msgstr "{Scheme-Variable} dune-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6317
+#: doc/guix.texi:7450
 msgid "This variable is exported by @code{(guix build-system dune)}.  It supports builds of packages using @uref{https://dune.build/, Dune}, a build tool for the OCaml programming language.  It is implemented as an extension of the @code{ocaml-build-system} which is described below.  As such, the @code{#:ocaml} and @code{#:findlib} parameters can be passed to this build system."
 msgstr "Diese Variable wird vom Modul @code{(guix build-system dune)} exportiert. Sie unterstützt es, Pakete mit @uref{https://dune.build/, Dune} zu erstellen, einem Erstellungswerkzeug für die Programmiersprache OCaml, und ist als Erweiterung des unten beschriebenen OCaml-Erstellungssystems @code{ocaml-build-system} implementiert. Als solche können auch die Parameter @code{#:ocaml} und @code{#:findlib} an dieses Erstellungssystem übergeben werden."
 
 #. type: defvr
-#: doc/guix.texi:6321
+#: doc/guix.texi:7454
 msgid "It automatically adds the @code{dune} package to the set of inputs.  Which package is used can be specified with the @code{#:dune} parameter."
 msgstr "Das Erstellungssystem fügt automatisch das Paket @code{dune} zu den Eingaben hinzu. Welches Paket benutzt wird, kann mit dem Parameter @code{#:dune} geändert werden."
 
 #. type: defvr
-#: doc/guix.texi:6325
+#: doc/guix.texi:7458
 msgid "There is no @code{configure} phase because dune packages typically don't need to be configured.  The @code{#:build-flags} parameter is taken as a list of flags passed to the @code{dune} command during the build."
 msgstr "Es gibt keine @code{configure}-Phase, weil dune-Pakete typischerweise nicht konfiguriert werden müssen. Vom Parameter @code{#:build-flags} wird erwartet, dass es sich um eine Liste von Befehlszeilenoptionen handelt, die zur Erstellung an den @code{dune}-Befehl übergeben werden."
 
 #. type: defvr
-#: doc/guix.texi:6329
+#: doc/guix.texi:7462
 msgid "The @code{#:jbuild?} parameter can be passed to use the @code{jbuild} command instead of the more recent @code{dune} command while building a package.  Its default value is @code{#f}."
 msgstr "Der Parameter @code{#:jbuild?} kann übergeben werden, um den Befehl @code{jbuild} anstelle des neueren @code{dune}-Befehls aufzurufen, um das Paket zu erstellen. Der Vorgabewert ist @code{#f}."
 
 #. type: defvr
-#: doc/guix.texi:6334
+#: doc/guix.texi:7467
 msgid "The @code{#:package} parameter can be passed to specify a package name, which is useful when a package contains multiple packages and you want to build only one of them.  This is equivalent to passing the @code{-p} argument to @code{dune}."
 msgstr "Mit dem Parameter @code{#:package} kann ein Paketname angegeben werden, wenn im Paket mehrere Pakete enthalten sind und nur eines davon erstellt werden soll. Es ist äquivalent dazu, die Befehlszeilenoption @code{-p} an @code{dune} zu übergeben."
 
 #. type: defvr
-#: doc/guix.texi:6336
+#: doc/guix.texi:7469
 #, no-wrap
 msgid "{Scheme Variable} go-build-system"
 msgstr "{Scheme-Variable} go-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6341
+#: doc/guix.texi:7474
 msgid "This variable is exported by @code{(guix build-system go)}.  It implements a build procedure for Go packages using the standard @url{https://golang.org/cmd/go/#hdr-Compile_packages_and_dependencies, Go build mechanisms}."
 msgstr "Diese Variable wird vom Modul @code{(guix build-system go)} exportiert. Mit ihr ist eine Erstellungsprozedur für Go-Pakete implementiert, die dem normalen @url{https://golang.org/cmd/go/#hdr-Compile_packages_and_dependencies, Go-Erstellungsmechanismus} entspricht."
 
 #. type: defvr
-#: doc/guix.texi:6352
+#: doc/guix.texi:7485
 msgid "The user is expected to provide a value for the key @code{#:import-path} and, in some cases, @code{#:unpack-path}.  The @url{https://golang.org/doc/code.html#ImportPaths, import path} corresponds to the file system path expected by the package's build scripts and any referring packages, and provides a unique way to refer to a Go package.  It is typically based on a combination of the package source code's remote URI and file system hierarchy structure.  In some cases, you will need to unpack the package's source code to a different directory structure than the one indicated by the import path, and @code{#:unpack-path} should be used in such cases."
 msgstr "Beim Aufruf wird ein Wert für den Schlüssel @code{#:import-path} und manchmal auch für @code{#:unpack-path} erwartet.  Der @url{https://golang.org/doc/code.html#ImportPaths, „import path“} entspricht dem Dateisystempfad, den die Erstellungsskripts des Pakets und darauf Bezug nehmende Pakete erwarten; durch ihn wird ein Go-Paket eindeutig bezeichnet. Typischerweise setzt er sich aus einer Kombination der entfernten URI des Paketquellcodes und der Dateisystemhierarchie zusammen. Manchmal ist es nötig, den Paketquellcode in ein anderes als das vom „import path“ bezeichnete Verzeichnis zu entpacken; diese andere Verzeichnisstruktur sollte dann als @code{#:unpack-path} angegeben werden."
 
 #. type: defvr
-#: doc/guix.texi:6357
+#: doc/guix.texi:7490
 msgid "Packages that provide Go libraries should install their source code into the built output.  The key @code{#:install-source?}, which defaults to @code{#t}, controls whether or not the source code is installed.  It can be set to @code{#f} for packages that only provide executable files."
 msgstr "Pakete, die Go-Bibliotheken zur Verfügung stellen, sollten ihren Quellcode auch in die Erstellungsausgabe installieren. Der Schlüssel @code{#:install-source?}, sein Vorgabewert ist @code{#t}, steuert, ob Quellcode installiert wird. Bei Paketen, die nur ausführbare Dateien liefern, kann der Wert auf @code{#f} gesetzt werden."
 
 #. type: defvr
-#: doc/guix.texi:6359
+#: doc/guix.texi:7492
 #, no-wrap
 msgid "{Scheme Variable} glib-or-gtk-build-system"
 msgstr "{Scheme-Variable} glib-or-gtk-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6362
+#: doc/guix.texi:7495
 msgid "This variable is exported by @code{(guix build-system glib-or-gtk)}.  It is intended for use with packages making use of GLib or GTK+."
 msgstr "Diese Variable wird vom Modul @code{(guix build-system glib-or-gtk)} exportiert. Sie ist für Pakete gedacht, die GLib oder GTK benutzen."
 
 #. type: defvr
-#: doc/guix.texi:6365
+#: doc/guix.texi:7498
 msgid "This build system adds the following two phases to the ones defined by @code{gnu-build-system}:"
 msgstr "Dieses Erstellungssystem fügt die folgenden zwei Phasen zu denen von @code{gnu-build-system} hinzu:"
 
 #. type: item
-#: doc/guix.texi:6367 doc/guix.texi:6755
+#: doc/guix.texi:7500 doc/guix.texi:7932
 #, no-wrap
 msgid "glib-or-gtk-wrap"
 msgstr "glib-or-gtk-wrap"
 
 #. type: table
-#: doc/guix.texi:6374
-msgid "The phase @code{glib-or-gtk-wrap} ensures that programs in @file{bin/} are able to find GLib ``schemas'' and @uref{https://developer.gnome.org/gtk3/stable/gtk-running.html, GTK+ modules}.  This is achieved by wrapping the programs in launch scripts that appropriately set the @code{XDG_DATA_DIRS} and @code{GTK_PATH} environment variables."
-msgstr "Die Phase @code{glib-or-gtk-wrap} stellt sicher, dass Programme in @file{bin/} in der Lage sind, GLib-„Schemata“ und @uref{https://developer.gnome.org/gtk3/stable/gtk-running.html, GTK-Module} zu finden. Dazu wird für das Programm ein Wrapper-Skript erzeugt, dass das eigentliche Programm mit den richtigen Werten für die Umgebungsvariablen @code{XDG_DATA_DIRS} und @code{GTK_PATH} aufruft."
+#: doc/guix.texi:7507
+msgid "The phase @code{glib-or-gtk-wrap} ensures that programs in @file{bin/} are able to find GLib ``schemas'' and @uref{https://developer.gnome.org/gtk3/stable/gtk-running.html, GTK+ modules}.  This is achieved by wrapping the programs in launch scripts that appropriately set the @env{XDG_DATA_DIRS} and @env{GTK_PATH} environment variables."
+msgstr "Die Phase @code{glib-or-gtk-wrap} stellt sicher, dass Programme in @file{bin/} in der Lage sind, GLib-„Schemata“ und @uref{https://developer.gnome.org/gtk3/stable/gtk-running.html, GTK-Module} zu finden. Dazu wird für das Programm ein Wrapper-Skript erzeugt, dass das eigentliche Programm mit den richtigen Werten für die Umgebungsvariablen @env{XDG_DATA_DIRS} und @env{GTK_PATH} aufruft."
 
 #. type: table
-#: doc/guix.texi:6381
+#: doc/guix.texi:7514
 msgid "It is possible to exclude specific package outputs from that wrapping process by listing their names in the @code{#:glib-or-gtk-wrap-excluded-outputs} parameter.  This is useful when an output is known not to contain any GLib or GTK+ binaries, and where wrapping would gratuitously add a dependency of that output on GLib and GTK+."
 msgstr "Es ist möglich, bestimmte Paketausgaben von diesem Wrapping-Prozess auszunehmen, indem Sie eine Liste ihrer Namen im Parameter @code{#:glib-or-gtk-wrap-excluded-outputs} angeben. Das ist nützlich, wenn man von einer Ausgabe weiß, dass sie keine Binärdateien enthält, die GLib oder GTK benutzen, und diese Ausgabe durch das Wrappen ohne Not eine weitere Abhängigkeit von GLib und GTK bekäme."
 
 #. type: item
-#: doc/guix.texi:6382 doc/guix.texi:6759
+#: doc/guix.texi:7515 doc/guix.texi:7936
 #, no-wrap
 msgid "glib-or-gtk-compile-schemas"
 msgstr "glib-or-gtk-compile-schemas"
 
 #. type: table
-#: doc/guix.texi:6390
+#: doc/guix.texi:7523
 msgid "The phase @code{glib-or-gtk-compile-schemas} makes sure that all @uref{https://developer.gnome.org/gio/stable/glib-compile-schemas.html, GSettings schemas} of GLib are compiled.  Compilation is performed by the @command{glib-compile-schemas} program.  It is provided by the package @code{glib:bin} which is automatically imported by the build system.  The @code{glib} package providing @command{glib-compile-schemas} can be specified with the @code{#:glib} parameter."
 msgstr "Mit der Phase @code{glib-or-gtk-compile-schemas} wird sichergestellt, dass alle @uref{https://developer.gnome.org/gio/stable/glib-compile-schemas.html, GSettings-Schemata} für GLib kompiliert werden. Dazu wird das Programm @command{glib-compile-schemas} ausgeführt. Es kommt aus dem Paket @code{glib:bin}, was automatisch vom Erstellungssystem importiert wird. Welches @code{glib}-Paket dieses @command{glib-compile-schemas} bereitstellt, kann mit dem Parameter @code{#:glib} spezifiziert werden."
 
 #. type: defvr
-#: doc/guix.texi:6393
+#: doc/guix.texi:7526
 msgid "Both phases are executed after the @code{install} phase."
 msgstr "Beide Phasen finden nach der @code{install}-Phase statt."
 
 #. type: defvr
-#: doc/guix.texi:6395
+#: doc/guix.texi:7528
 #, no-wrap
 msgid "{Scheme Variable} guile-build-system"
 msgstr "{Scheme-Variable} guile-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6402
+#: doc/guix.texi:7535
 msgid "This build system is for Guile packages that consist exclusively of Scheme code and that are so lean that they don't even have a makefile, let alone a @file{configure} script.  It compiles Scheme code using @command{guild compile} (@pxref{Compilation,,, guile, GNU Guile Reference Manual}) and installs the @file{.scm} and @file{.go} files in the right place.  It also installs documentation."
-msgstr "Dieses Erstellungssystem ist für Guile-Pakete gedacht, die nur aus Scheme-Code bestehen und so schlicht sind, dass sie nicht einmal ein Makefile und erst recht keinen @file{configure}-Skript enthalten. Hierzu wird Scheme-Code mit @command{guild compile} kompiliert (siehe @ref{Compilation,,, guile, GNU Guile Reference Manual}) und die @file{.scm}- und @file{.go}-Dateien an den richtigen Pfad installiert. Auch Dokumentation wird installiert."
+msgstr "Dieses Erstellungssystem ist für Guile-Pakete gedacht, die nur aus Scheme-Code bestehen und so schlicht sind, dass sie nicht einmal ein Makefile und erst recht keinen @file{configure}-Skript enthalten. Hierzu wird Scheme-Code mit @command{guild compile} kompiliert (siehe @ref{Compilation,,, guile, Referenzhandbuch zu GNU Guile}) und die @file{.scm}- und @file{.go}-Dateien an den richtigen Pfad installiert. Auch Dokumentation wird installiert."
 
 #. type: defvr
-#: doc/guix.texi:6405
-msgid "This build system supports cross-compilation by using the @code{--target} option of @command{guild compile}."
-msgstr "Das Erstellungssystem unterstützt Cross-Kompilieren durch die Befehlszeilenoption @code{--target} für @command{guild compile}."
+#: doc/guix.texi:7538
+msgid "This build system supports cross-compilation by using the @option{--target} option of @samp{guild compile}."
+msgstr "Das Erstellungssystem unterstützt Cross-Kompilieren durch die Befehlszeilenoption @option{--target} für @samp{guild compile}."
 
 #. type: defvr
-#: doc/guix.texi:6408
+#: doc/guix.texi:7541
 msgid "Packages built with @code{guile-build-system} must provide a Guile package in their @code{native-inputs} field."
 msgstr "Mit @code{guile-build-system} erstellte Pakete müssen ein Guile-Paket in ihrem @code{native-inputs}-Feld aufführen."
 
 #. type: defvr
-#: doc/guix.texi:6410
+#: doc/guix.texi:7543
 #, no-wrap
 msgid "{Scheme Variable} julia-build-system"
 msgstr "{Scheme-Variable} julia-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6416
-msgid "This variable is exported by @code{(guix build-system julia)}.  It implements the build procedure used by @uref{https://julialang.org/, julia} packages, which essentially is similar to running @command{julia -e 'using Pkg; Pkg.add(package)'} in an environment where @code{JULIA_LOAD_PATH} contains the paths to all Julia package inputs.  Tests are run not run."
-msgstr "Diese Variable wird vom Modul @code{(guix build-system julia)} exportiert. Sie entspricht einer Implementierung der durch @uref{https://julialang.org/, Julia-Pakete} genutzten Erstellungsprozedur und verhält sich in Prinzip so, wie wenn man @command{julia -e 'using Pkg; Pkg.add(paket)'} in einer Umgebung auszuführt, in der die Umgebungsvariable @code{JULIA_LOAD_PATH} die Pfade aller Julia-Pakete unter den Paketeingaben enthält. Es werden @emph{keine} Tests ausgeführt."
+#: doc/guix.texi:7550
+msgid "This variable is exported by @code{(guix build-system julia)}.  It implements the build procedure used by @uref{https://julialang.org/, julia} packages, which essentially is similar to running @samp{julia -e 'using Pkg; Pkg.add(package)'} in an environment where @env{JULIA_LOAD_PATH} contains the paths to all Julia package inputs.  Tests are run with @code{Pkg.test}."
+msgstr "Diese Variable wird vom Modul @code{(guix build-system julia)} exportiert. Sie entspricht einer Implementierung der durch @uref{https://julialang.org/, Julia-Pakete} genutzten Erstellungsprozedur und verhält sich im Prinzip so, wie wenn man @samp{julia -e 'using Pkg; Pkg.add(paket)'} in einer Umgebung ausführt, in der die Umgebungsvariable @env{JULIA_LOAD_PATH} die Pfade aller Julia-Pakete unter den Paketeingaben enthält. Tests werden per @code{Pkg.test} ausgeführt."
 
 #. type: defvr
-#: doc/guix.texi:6419
+#: doc/guix.texi:7553
 msgid "Julia packages require the source @code{file-name} to be the real name of the package, correctly capitalized."
 msgstr "Für Julia-Pakete wird vorausgesetzt, dass der Dateiname im @code{file-name}-Feld der Quelle der echte Name des Pakets ist, in der richtigen Groß-/Kleinschreibung."
 
 #. type: defvr
-#: doc/guix.texi:6424
+#: doc/guix.texi:7558
 msgid "For packages requiring shared library dependencies, you may need to write the @file{/deps/deps.jl} file manually. It's usually a line of @code{const variable = /gnu/store/library.so} for each dependency, plus a void function @code{check_deps() = nothing}."
 msgstr "Für Pakete, die als Abhängigkeiten gemeinsame Bibliotheken („Shared Libraries“) verlangen, müssen Sie die @file{/deps/deps.jl}-Datei unter Umständen selbst schreiben. Normalerweise enthält sie eine Zeile wie @code{const variable = /gnu/store/library.so} für jede Abhängigkeit sowie eine Funktion @code{check_deps() = nothing} ohne Rückgabe."
 
 #. type: defvr
-#: doc/guix.texi:6431
+#: doc/guix.texi:7565
 msgid "Some older packages that aren't using @file{Package.toml} yet, will require this file to be created, too. The function @code{julia-create-package-toml} helps creating the file. You need to pass the outputs and the source of the package, it's name (the same as the @code{file-name} parameter), the package uuid, the package version, and a list of dependencies specified by their name and their uuid."
 msgstr "Für manche ältere Pakete, die noch keine @file{Package.toml} benutzen, muss auch diese Datei erstellt werden. Die Funktion @code{julia-create-package-toml} hilft dabei. Sie müssen ihr nur die Ausgaben und die Quelle des Pakets übergeben sowie seinen Namen (derselbe wie beim Parameter @code{file-name}), die Paket-UUID, die Paketversion und eine Liste von Abhängigkeiten, jeweils angegeben über ihren Namen und ihre UUID."
 
 #. type: defvr
-#: doc/guix.texi:6433
+#: doc/guix.texi:7567
+#, no-wrap
+msgid "{Scheme Variable} maven-build-system"
+msgstr "{Scheme-Variable} maven-build-system"
+
+#. type: defvr
+#: doc/guix.texi:7574
+msgid "This variable is exported by @code{(guix build-system maven)}.  It implements a build procedure for @uref{https://maven.apache.org, Maven} packages.  Maven is a dependency and lifecycle management tool for Java.  A user of Maven specifies dependencies and plugins in a @file{pom.xml} file that Maven reads.  When Maven does not have one of the dependencies or plugins in its repository, it will download them and use them to build the package."
+msgstr "Diese Variable wird vom Modul @code{(guix build-system maven)} exportiert. Darin wird eine Erstellungsprozedur für @uref{https://maven.apache.org, Maven-Pakete} implementiert. Maven ist ein Werkzeug zur Verwaltung der Abhängigkeiten und des „Lebenszyklus“ eines Java-Projekts. Um Maven zu benutzen, werden Abhängigkeiten und Plugins in einer Datei @file{pom.xml} angegeben, die Maven ausliest. Wenn Maven Abhängigkeiten oder Plugins fehlen, lädt es sie herunter und erstellt damit das Paket."
+
+#. type: defvr
+#: doc/guix.texi:7584
+msgid "The maven build system ensures that maven will not try to download any dependency by running in offline mode.  Maven will fail if a dependency is missing.  Before running Maven, the @file{pom.xml} (and subprojects) are modified to specify the version of dependencies and plugins that match the versions available in the guix build environment.  Dependencies and plugins must be installed in the fake maven repository at @file{lib/m2}, and are symlinked into a proper repository before maven is run.  Maven is instructed to use that repository for the build and installs built artifacts there.  Changed files are copied to the @file{lib/m2} directory of the package output."
+msgstr "Durch Guix’ Maven-Erstellungssystem wird gewährleistet, dass Maven im Offline-Modus läuft und somit nicht versucht, Abhängigkeiten herunterzuladen. Maven wird in einen Fehler laufen, wenn eine Abhängigkeit fehlt. Bevor Maven ausgeführt wird, wird der Inhalt der @file{pom.xml} (auch in Unterprojekten) so verändert, dass darin die diejenige Version von Abhängigkeiten und Plugins aufgeführt wird, die in Guix’ Erstellungsumgebung vorliegt. Abhängigkeiten und Plugins müssen in das vorgetäuschte Maven-Repository unter @file{lib/m2} installiert werden; bevor Maven ausgeführt wird, werden symbolische Verknüpfungen in ein echtes Repository hergestellt. Maven wird angewiesen, dieses Repository für die Erstellung zu verwenden und installiert erstellte Artefakte dorthin. Geänderte Dateien werden ins Verzeichnis @file{lib/m2} der Paketausgabe kopiert."
+
+#. type: defvr
+#: doc/guix.texi:7587
+msgid "You can specify a @file{pom.xml} file with the @code{#:pom-file} argument, or let the build system use the default @file{pom.xml} file in the sources."
+msgstr "Sie können eine @file{pom.xml}-Datei über das Argument @code{#:pom-file} festlegen oder die vom Erstellungssystem vorgegebene @file{pom.xml}-Datei im Quellverzeichnis verwenden lassen."
+
+#. type: defvr
+#: doc/guix.texi:7593
+msgid "In case you need to specify a dependency's version manually, you can use the @code{#:local-packages} argument.  It takes an association list where the key is the groupId of the package and its value is an association list where the key is the artifactId of the package and its value is the version you want to override in the @file{pom.xml}."
+msgstr "Sollten Sie die Version einer Abhängigkeit manuell angeben müssen, können Sie dafür das Argument @code{#:local-packages} benutzen. Es nimmt eine assoziative Liste entgegen, deren Schlüssel jeweils die @code{groupId} des Pakets und deren Wert eine assoziative Liste ist, deren Schlüssel wiederum die @code{artifactId} des Pakets und deren Wert die einzusetzende Version in @file{pom.xml} ist."
+
+#. type: defvr
+#: doc/guix.texi:7599
+msgid "Some packages use dependencies or plugins that are not useful at runtime nor at build time in Guix.  You can alter the @file{pom.xml} file to remove them using the @code{#:exclude} argument.  Its value is an association list where the key is the groupId of the plugin or dependency you want to remove, and the value is a list of artifactId you want to remove."
+msgstr "Manche Pakete haben Abhängigkeiten oder Plugins, die weder zur Laufzeit noch zur Erstellungszeit in Guix sinnvoll sind. Sie können sie entfernen, indem Sie das @code{#:exclude}-Argument verwenden, um die @file{pom.xml}-Datei zu bearbeiten. Sein Wert ist eine assoziative Liste, deren Schlüssel die @code{groupId} des Plugins oder der Abhängigkeit ist, die Sie entfernen möchten, und deren Wert eine Liste von zu entfernenden @code{artifactId}-Vorkommen angibt."
+
+#. type: defvr
+#: doc/guix.texi:7602
+msgid "You can override the default @code{jdk} and @code{maven} packages with the corresponding argument, @code{#:jdk} and @code{#:maven}."
+msgstr "Sie können statt der vorgegebenen @code{jdk}- und @code{maven}-Pakete andere Pakete mit dem entsprechenden Argument, @code{#:jdk} bzw.@: @code{#:maven}, verwenden."
+
+#. type: defvr
+#: doc/guix.texi:7607
+msgid "The @code{#:maven-plugins} argument is a list of maven plugins used during the build, with the same format as the @code{inputs} fields of the package declaration.  Its default value is @code{(default-maven-plugins)} which is also exported."
+msgstr "Mit dem Argument @code{#:maven-plugins} geben Sie eine Liste von Maven-Plugins zur Nutzung während der Erstellung an, im gleichen Format wie das @code{inputs}-Feld der Paketdeklaration. Der Vorgabewert ist @code{(default-maven-plugins)}; diese Variable wird exportiert, falls Sie sie benutzen möchten."
+
+#. type: defvr
+#: doc/guix.texi:7609
 #, no-wrap
 msgid "{Scheme Variable} minify-build-system"
 msgstr "{Scheme-Variable} minify-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6436
+#: doc/guix.texi:7612
 msgid "This variable is exported by @code{(guix build-system minify)}.  It implements a minification procedure for simple JavaScript packages."
 msgstr "Diese Variable wird vom Modul @code{(guix build-system minify)} exportiert. Sie implementiert eine Prozedur zur Minifikation einfacher JavaScript-Pakete."
 
 #. type: defvr
-#: doc/guix.texi:6442
+#: doc/guix.texi:7618
 msgid "It adds @code{uglify-js} to the set of inputs and uses it to compress all JavaScript files in the @file{src} directory.  A different minifier package can be specified with the @code{#:uglify-js} parameter, but it is expected that the package writes the minified code to the standard output."
 msgstr "Es fügt @code{uglify-js} zur Menge der Eingaben hinzu und komprimiert damit alle JavaScript-Dateien im @file{src}-Verzeichnis. Ein anderes Programm zur Minifikation kann verwendet werden, indem es mit dem Parameter @code{#:uglify-js} angegeben wird; es wird erwartet, dass das angegebene Paket den minifizierten Code auf der Standardausgabe ausgibt."
 
 #. type: defvr
-#: doc/guix.texi:6446
+#: doc/guix.texi:7622
 msgid "When the input JavaScript files are not all located in the @file{src} directory, the parameter @code{#:javascript-files} can be used to specify a list of file names to feed to the minifier."
 msgstr "Wenn die Eingabe-JavaScript-Dateien nicht alle im @file{src}-Verzeichnis liegen, kann mit dem Parameter @code{#:javascript-files} eine Liste der Dateinamen übergeben werden, auf die das Minifikationsprogramm aufgerufen wird."
 
 #. type: defvr
-#: doc/guix.texi:6448
+#: doc/guix.texi:7624
 #, no-wrap
 msgid "{Scheme Variable} ocaml-build-system"
 msgstr "{Scheme-Variable} ocaml-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6454
+#: doc/guix.texi:7630
 msgid "This variable is exported by @code{(guix build-system ocaml)}.  It implements a build procedure for @uref{https://ocaml.org, OCaml} packages, which consists of choosing the correct set of commands to run for each package.  OCaml packages can expect many different commands to be run.  This build system will try some of them."
 msgstr "Diese Variable wird vom Modul @code{(guix build-system ocaml)} exportiert. Mit ihr ist ein Erstellungssystem für @uref{https://ocaml.org, OCaml-Pakete} implementiert, was bedeutet, dass es die richtigen auszuführenden Befehle für das jeweilige Paket auswählt. OCaml-Pakete können sehr unterschiedliche Befehle erwarten. Dieses Erstellungssystem probiert manche davon durch."
 
 #. type: defvr
-#: doc/guix.texi:6464
+#: doc/guix.texi:7640
 msgid "When the package has a @file{setup.ml} file present at the top-level, it will run @code{ocaml setup.ml -configure}, @code{ocaml setup.ml -build} and @code{ocaml setup.ml -install}.  The build system will assume that this file was generated by @uref{http://oasis.forge.ocamlcore.org/, OASIS} and will take care of setting the prefix and enabling tests if they are not disabled.  You can pass configure and build flags with the @code{#:configure-flags} and @code{#:build-flags}.  The @code{#:test-flags} key can be passed to change the set of flags used to enable tests.  The @code{#:use-make?} key can be used to bypass this system in the build and install phases."
 msgstr "Wenn im Paket eine Datei @file{setup.ml} auf oberster Ebene vorhanden ist, wird @code{ocaml setup.ml -configure}, @code{ocaml setup.ml -build} und @code{ocaml setup.ml -install} ausgeführt. Das Erstellungssystem wird annehmen, dass die Datei durch @uref{http://oasis.forge.ocamlcore.org/, OASIS} erzeugt wurde, und wird das Präfix setzen und Tests aktivieren, wenn diese nicht abgeschaltet wurden. Sie können Befehlszeilenoptionen zum Konfigurieren und Erstellen mit den Parametern @code{#:configure-flags} und @code{#:build-flags} übergeben. Der Schlüssel @code{#:test-flags} kann übergeben werden, um die Befehlszeilenoptionen zu ändern, mit denen die Tests aktiviert werden. Mit dem Parameter @code{#:use-make?} kann dieses Erstellungssystem für die build- und install-Phasen abgeschaltet werden."
 
 #. type: defvr
-#: doc/guix.texi:6469
+#: doc/guix.texi:7645
 msgid "When the package has a @file{configure} file, it is assumed that it is a hand-made configure script that requires a different argument format than in the @code{gnu-build-system}.  You can add more flags with the @code{#:configure-flags} key."
 msgstr "Verfügt das Paket über eine @file{configure}-Datei, wird angenommen, dass diese von Hand geschrieben wurde mit einem anderen Format für Argumente als bei einem Skript des @code{gnu-build-system}. Sie können weitere Befehlszeilenoptionen mit dem Schlüssel @code{#:configure-flags} hinzufügen."
 
 #. type: defvr
-#: doc/guix.texi:6473
+#: doc/guix.texi:7649
 msgid "When the package has a @file{Makefile} file (or @code{#:use-make?} is @code{#t}), it will be used and more flags can be passed to the build and install phases with the @code{#:make-flags} key."
 msgstr "Falls dem Paket ein @file{Makefile} beiliegt (oder @code{#:use-make?} auf @code{#t} gesetzt wurde), wird dieses benutzt und weitere Befehlszeilenoptionen können mit dem Schlüssel @code{#:make-flags} zu den build- und install-Phasen hinzugefügt werden."
 
 #. type: defvr
-#: doc/guix.texi:6481
+#: doc/guix.texi:7657
 msgid "Finally, some packages do not have these files and use a somewhat standard location for its build system.  In that case, the build system will run @code{ocaml pkg/pkg.ml} or @code{ocaml pkg/build.ml} and take care of providing the path to the required findlib module.  Additional flags can be passed via the @code{#:build-flags} key.  Install is taken care of by @command{opam-installer}.  In this case, the @code{opam} package must be added to the @code{native-inputs} field of the package definition."
 msgstr "Letztlich gibt es in manchen Pakete keine solchen Dateien, sie halten sich aber an bestimmte Konventionen, wo ihr eigenes Erstellungssystem zu finden ist. In diesem Fall führt Guix’ OCaml-Erstellungssystem @code{ocaml pkg/pkg.ml} oder @code{ocaml pkg/build.ml} aus und kümmert sich darum, dass der Pfad zu dem benötigten findlib-Modul passt. Weitere Befehlszeilenoptionen können über den Schlüssel @code{#:build-flags} übergeben werden. Um die Installation kümmert sich @command{opam-installer}. In diesem Fall muss das @code{opam}-Paket im @code{native-inputs}-Feld der Paketdefinition stehen."
 
 #. type: defvr
-#: doc/guix.texi:6489
-msgid "Note that most OCaml packages assume they will be installed in the same directory as OCaml, which is not what we want in guix.  In particular, they will install @file{.so} files in their module's directory, which is usually fine because it is in the OCaml compiler directory.  In guix though, these libraries cannot be found and we use @code{CAML_LD_LIBRARY_PATH}.  This variable points to @file{lib/ocaml/site-lib/stubslibs} and this is where @file{.so} libraries should be installed."
-msgstr "Beachten Sie, dass die meisten OCaml-Pakete davon ausgehen, dass sie in dasselbe Verzeichnis wie OCaml selbst installiert werden, was wir in Guix aber nicht so haben wollen. Solche Pakete installieren ihre @file{.so}-Dateien in das Verzeichnis ihres Moduls, was für die meisten anderen Einrichtungen funktioniert, weil es im OCaml-Compilerverzeichnis liegt. Jedoch können so in Guix die Bibliotheken nicht gefunden werden, deswegen benutzen wir @code{CAML_LD_LIBRARY_PATH}. Diese Umgebungsvariable zeigt auf @file{lib/ocaml/site-lib/stubslibs} und dorthin sollten @file{.so}-Bibliotheken installiert werden."
+#: doc/guix.texi:7665
+msgid "Note that most OCaml packages assume they will be installed in the same directory as OCaml, which is not what we want in guix.  In particular, they will install @file{.so} files in their module's directory, which is usually fine because it is in the OCaml compiler directory.  In guix though, these libraries cannot be found and we use @env{CAML_LD_LIBRARY_PATH}.  This variable points to @file{lib/ocaml/site-lib/stubslibs} and this is where @file{.so} libraries should be installed."
+msgstr "Beachten Sie, dass die meisten OCaml-Pakete davon ausgehen, dass sie in dasselbe Verzeichnis wie OCaml selbst installiert werden, was wir in Guix aber nicht so haben wollen. Solche Pakete installieren ihre @file{.so}-Dateien in das Verzeichnis ihres Moduls, was für die meisten anderen Einrichtungen funktioniert, weil es im OCaml-Compilerverzeichnis liegt. Jedoch können so in Guix die Bibliotheken nicht gefunden werden, deswegen benutzen wir @env{CAML_LD_LIBRARY_PATH}. Diese Umgebungsvariable zeigt auf @file{lib/ocaml/site-lib/stubslibs} und dorthin sollten @file{.so}-Bibliotheken installiert werden."
 
 #. type: defvr
-#: doc/guix.texi:6491
+#: doc/guix.texi:7667
 #, no-wrap
 msgid "{Scheme Variable} python-build-system"
 msgstr "{Scheme-Variable} python-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6496
+#: doc/guix.texi:7672
 msgid "This variable is exported by @code{(guix build-system python)}.  It implements the more or less standard build procedure used by Python packages, which consists in running @code{python setup.py build} and then @code{python setup.py install --prefix=/gnu/store/@dots{}}."
 msgstr "Diese Variable wird vom Modul @code{(guix build-system python)} exportiert. Sie implementiert mehr oder weniger die konventionelle Erstellungsprozedur, wie sie für Python-Pakete üblich ist, d.h.@: erst wird @code{python setup.py build} ausgeführt und dann @code{python setup.py install --prefix=/gnu/store/…}."
 
 #. type: defvr
-#: doc/guix.texi:6500
-msgid "For packages that install stand-alone Python programs under @code{bin/}, it takes care of wrapping these programs so that their @code{PYTHONPATH} environment variable points to all the Python libraries they depend on."
-msgstr "Für Pakete, die eigenständige Python-Programme nach @code{bin/} installieren, sorgt dieses Erstellungssystem dafür, dass die Programme in ein Wrapper-Skript verpackt werden, welches die eigentlichen Programme mit einer Umgebungsvariablen @code{PYTHONPATH} aufruft, die alle Python-Bibliotheken auflistet, von denen die Programme abhängen."
+#: doc/guix.texi:7676
+msgid "For packages that install stand-alone Python programs under @code{bin/}, it takes care of wrapping these programs so that their @env{PYTHONPATH} environment variable points to all the Python libraries they depend on."
+msgstr "Für Pakete, die eigenständige Python-Programme nach @code{bin/} installieren, sorgt dieses Erstellungssystem dafür, dass die Programme in ein Wrapper-Skript verpackt werden, welches die eigentlichen Programme mit einer Umgebungsvariablen @env{PYTHONPATH} aufruft, die alle Python-Bibliotheken auflistet, von denen die Programme abhängen."
 
 #. type: defvr
-#: doc/guix.texi:6506
+#: doc/guix.texi:7682
 msgid "Which Python package is used to perform the build can be specified with the @code{#:python} parameter.  This is a useful way to force a package to be built for a specific version of the Python interpreter, which might be necessary if the package is only compatible with a single interpreter version."
 msgstr "Welches Python-Paket benutzt wird, um die Erstellung durchzuführen, kann mit dem Parameter @code{#:python} bestimmt werden. Das ist nützlich, wenn wir erzwingen wollen, dass ein Paket mit einer bestimmten Version des Python-Interpretierers arbeitet. Das kann nötig sein, wenn das Programm nur mit einer einzigen Interpretiererversion kompatibel ist."
 
 #. type: defvr
-#: doc/guix.texi:6511
+#: doc/guix.texi:7687
 msgid "By default guix calls @code{setup.py} under control of @code{setuptools}, much like @command{pip} does.  Some packages are not compatible with setuptools (and pip), thus you can disable this by setting the @code{#:use-setuptools?} parameter to @code{#f}."
 msgstr "Standardmäßig ruft Guix @code{setup.py} auf, was zu @code{setuptools} gehört, ähnlich wie es auch @command{pip} tut. Manche Pakete sind mit setuptools (und pip) inkompatibel, deswegen können Sie diese Einstellung abschalten, indem Sie den Parameter @code{#:use-setuptools?} auf @code{#f} setzen."
 
 #. type: defvr
-#: doc/guix.texi:6513
+#: doc/guix.texi:7689
 #, no-wrap
 msgid "{Scheme Variable} perl-build-system"
 msgstr "{Scheme-Variable} perl-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6525
+#: doc/guix.texi:7701
 msgid "This variable is exported by @code{(guix build-system perl)}.  It implements the standard build procedure for Perl packages, which either consists in running @code{perl Build.PL --prefix=/gnu/store/@dots{}}, followed by @code{Build} and @code{Build install}; or in running @code{perl Makefile.PL PREFIX=/gnu/store/@dots{}}, followed by @code{make} and @code{make install}, depending on which of @code{Build.PL} or @code{Makefile.PL} is present in the package distribution.  Preference is given to the former if both @code{Build.PL} and @code{Makefile.PL} exist in the package distribution.  This preference can be reversed by specifying @code{#t} for the @code{#:make-maker?} parameter."
 msgstr "Diese Variable wird vom Modul @code{(guix build-system perl)} exportiert. Mit ihr wird die Standard-Erstellungsprozedur für Perl-Pakete implementiert, welche entweder darin besteht, @code{perl Build.PL --prefix=/gnu/store/…} gefolgt von @code{Build} und @code{Build install} auszuführen, oder @code{perl Makefile.PL PREFIX=/gnu/store/…} gefolgt von @code{make} und @code{make install} auszuführen, je nachdem, ob eine Datei @code{Build.PL} oder eine Datei @code{Makefile.PL} in der Paketdistribution vorliegt. Den Vorrang hat erstere, wenn sowohl @code{Build.PL} als auch @code{Makefile.PL} in der Paketdistribution existieren. Der Vorrang kann umgekehrt werden, indem @code{#t} für den Parameter @code{#:make-maker?} angegeben wird."
 
 #. type: defvr
-#: doc/guix.texi:6529
+#: doc/guix.texi:7705
 msgid "The initial @code{perl Makefile.PL} or @code{perl Build.PL} invocation passes flags specified by the @code{#:make-maker-flags} or @code{#:module-build-flags} parameter, respectively."
 msgstr "Der erste Aufruf von @code{perl Makefile.PL} oder @code{perl Build.PL} übergibt die im Parameter @code{#:make-maker-flags} bzw. @code{#:module-build-flags} angegebenen Befehlszeilenoptionen, je nachdem, was verwendet wird."
 
 #. type: defvr
-#: doc/guix.texi:6531
+#: doc/guix.texi:7707
 msgid "Which Perl package is used can be specified with @code{#:perl}."
 msgstr "Welches Perl-Paket dafür benutzt wird, kann mit @code{#:perl} angegeben werden."
 
 #. type: defvr
-#: doc/guix.texi:6533
+#: doc/guix.texi:7709
 #, no-wrap
 msgid "{Scheme Variable} qt-build-system"
 msgstr "{Scheme-Variable} qt-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6536
+#: doc/guix.texi:7712
 msgid "This variable is exported by @code{(guix build-system qt)}.  It is intended for use with applications using Qt or KDE."
 msgstr "Diese Variable wird vom Modul @code{(guix build-system qt)} exportiert. Sie ist für Anwendungen gedacht, die Qt oder KDE benutzen."
 
 #. type: defvr
-#: doc/guix.texi:6539
+#: doc/guix.texi:7715
 msgid "This build system adds the following two phases to the ones defined by @code{cmake-build-system}:"
 msgstr "Dieses Erstellungssystem fügt die folgenden zwei Phasen zu denen von @code{cmake-build-system} hinzu:"
 
 #. type: item
-#: doc/guix.texi:6541
+#: doc/guix.texi:7717
 #, no-wrap
 msgid "check-setup"
 msgstr "check-setup"
 
 #. type: table
-#: doc/guix.texi:6548
+#: doc/guix.texi:7724
 msgid "The phase @code{check-setup} prepares the environment for running the checks as commonly used by Qt test programs.  For now this only sets some environment variables: @code{QT_QPA_PLATFORM=offscreen}, @code{DBUS_FATAL_WARNINGS=0} and @code{CTEST_OUTPUT_ON_FAILURE=1}."
-msgstr "Die Phase @code{check-setup} bereitet die Umgebung für Überprüfungen vor, wie sie von Qt-Test-Programmen üblicherweise benutzt werden. Zur Zeit werden nur manche Umgebungsvariable gesetzt: @code{QT_QPA_PLATFORM=offscreen}, @code{DBUS_FATAL_WARNINGS=0} und @code{CTEST_OUTPUT_ON_FAILURE=1}."
+msgstr "Die Phase @code{check-setup} bereitet die Umgebung für Überprüfungen vor, wie sie von Qt-Test-Programmen üblicherweise benutzt werden. Zurzeit werden nur manche Umgebungsvariable gesetzt: @code{QT_QPA_PLATFORM=offscreen}, @code{DBUS_FATAL_WARNINGS=0} und @code{CTEST_OUTPUT_ON_FAILURE=1}."
 
 #. type: table
-#: doc/guix.texi:6551
+#: doc/guix.texi:7727
 msgid "This phase is added before the @code{check} phase.  It's a separate phase to ease adjusting if necessary."
 msgstr "Diese Phase wird vor der @code{check}-Phase hinzugefügt. Es handelt sich um eine eigene Phase, die nach Bedarf angepasst werden kann."
 
 #. type: item
-#: doc/guix.texi:6552
+#: doc/guix.texi:7728
 #, no-wrap
 msgid "qt-wrap"
 msgstr "qt-wrap"
 
 #. type: table
-#: doc/guix.texi:6558
+#: doc/guix.texi:7734
 msgid "The phase @code{qt-wrap} searches for Qt5 plugin paths, QML paths and some XDG in the inputs and output.  In case some path is found, all programs in the output's @file{bin/}, @file{sbin/}, @file{libexec/} and @file{lib/libexec/} directories are wrapped in scripts defining the necessary environment variables."
 msgstr "In der Phase @code{qt-wrap} wird nach Qt5-Plugin-Pfaden, QML-Pfaden und manchen XDG-Daten in den Ein- und Ausgaben gesucht. Wenn solch ein Pfad gefunden wird, werden für alle Programme in den Verzeichnissen @file{bin/}, @file{sbin/}, @file{libexec/} und @file{lib/libexec/} in der Ausgabe Wrapper-Skripte erzeugt, die die nötigen Umgebungsvariablen definieren."
 
 #. type: table
-#: doc/guix.texi:6564
+#: doc/guix.texi:7740
 msgid "It is possible to exclude specific package outputs from that wrapping process by listing their names in the @code{#:qt-wrap-excluded-outputs} parameter.  This is useful when an output is known not to contain any Qt binaries, and where wrapping would gratuitously add a dependency of that output on Qt, KDE, or such."
 msgstr "Es ist möglich, bestimmte Paketausgaben von diesem Wrapping-Prozess auszunehmen, indem Sie eine Liste ihrer Namen im Parameter @code{#:qt-wrap-excluded-outputs} angeben. Das ist nützlich, wenn man von einer Ausgabe weiß, dass sie keine Qt-Binärdateien enthält, und diese Ausgabe durch das Wrappen ohne Not eine weitere Abhängigkeit von Qt, KDE oder Ähnlichem bekäme."
 
 #. type: table
-#: doc/guix.texi:6566
+#: doc/guix.texi:7742
 msgid "This phase is added after the @code{install} phase."
 msgstr "Diese Phase wird nach der @code{install}-Phase hinzugefügt."
 
 #. type: defvr
-#: doc/guix.texi:6569
+#: doc/guix.texi:7745
 #, no-wrap
 msgid "{Scheme Variable} r-build-system"
 msgstr "{Scheme-Variable} r-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6577
-msgid "This variable is exported by @code{(guix build-system r)}.  It implements the build procedure used by @uref{https://r-project.org, R} packages, which essentially is little more than running @code{R CMD INSTALL --library=/gnu/store/@dots{}} in an environment where @code{R_LIBS_SITE} contains the paths to all R package inputs.  Tests are run after installation using the R function @code{tools::testInstalledPackage}."
-msgstr "Diese Variable wird vom Modul @code{(guix build-system r)} exportiert. Sie entspricht einer Implementierung der durch @uref{https://r-project.org, R-Pakete} genutzten Erstellungsprozedur, die wenig mehr tut, als @code{R CMD INSTALL --library=/gnu/store/…} in einer Umgebung auszuführen, in der die Umgebungsvariable @code{R_LIBS_SITE} die Pfade aller R-Pakete unter den Paketeingaben enthält. Tests werden nach der Installation mit der R-Funktion @code{tools::testInstalledPackage} ausgeführt."
+#: doc/guix.texi:7753
+msgid "This variable is exported by @code{(guix build-system r)}.  It implements the build procedure used by @uref{https://r-project.org, R} packages, which essentially is little more than running @samp{R CMD INSTALL --library=/gnu/store/@dots{}} in an environment where @env{R_LIBS_SITE} contains the paths to all R package inputs.  Tests are run after installation using the R function @code{tools::testInstalledPackage}."
+msgstr "Diese Variable wird vom Modul @code{(guix build-system r)} exportiert. Sie entspricht einer Implementierung der durch @uref{https://r-project.org, R-Pakete} genutzten Erstellungsprozedur, die wenig mehr tut, als @samp{R CMD INSTALL --library=/gnu/store/…} in einer Umgebung auszuführen, in der die Umgebungsvariable @env{R_LIBS_SITE} die Pfade aller R-Pakete unter den Paketeingaben enthält. Tests werden nach der Installation mit der R-Funktion @code{tools::testInstalledPackage} ausgeführt."
 
 #. type: defvr
-#: doc/guix.texi:6579
+#: doc/guix.texi:7755
 #, no-wrap
 msgid "{Scheme Variable} rakudo-build-system"
 msgstr "{Scheme-Variable} rakudo-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6587
+#: doc/guix.texi:7763
 msgid "This variable is exported by @code{(guix build-system rakudo)}.  It implements the build procedure used by @uref{https://rakudo.org/, Rakudo} for @uref{https://perl6.org/, Perl6} packages. It installs the package to @code{/gnu/store/@dots{}/NAME-VERSION/share/perl6} and installs the binaries, library files and the resources, as well as wrap the files under the @code{bin/} directory.  Tests can be skipped by passing @code{#f} to the @code{tests?} parameter."
 msgstr "Diese Variable wird vom Modul @code{(guix build-system rakudo)} exportiert. Sie implementiert die Erstellungsprozedur, die von @uref{https://rakudo.org/, Rakudo} für @uref{https://perl6.org/, Perl6-Pakete} benutzt wird. Pakete werden ins Verzeichnis @code{/gnu/store/…/NAME-VERSION/share/perl6} abgelegt und Binärdateien, Bibliotheksdateien und Ressourcen werden installiert, zudem werden die Dateien im Verzeichnis @code{bin/} in Wrapper-Skripte verpackt. Tests können übersprungen werden, indem man @code{#f} im Parameter @code{tests?} übergibt."
 
 #. type: defvr
-#: doc/guix.texi:6595
+#: doc/guix.texi:7771
 msgid "Which rakudo package is used can be specified with @code{rakudo}.  Which perl6-tap-harness package used for the tests can be specified with @code{#:prove6} or removed by passing @code{#f} to the @code{with-prove6?} parameter.  Which perl6-zef package used for tests and installing can be specified with @code{#:zef} or removed by passing @code{#f} to the @code{with-zef?} parameter."
 msgstr "Welches rakudo-Paket benutzt werden soll, kann mit dem Parameter @code{rakudo} angegeben werden. Das perl6-tap-harness-Paket, das für die Tests benutzt wird, kann mit @code{#:prove6} ausgewählt werden; es kann auch entfernt werden, indem man @code{#f} für den Parameter @code{with-prove6?} übergibt. Welches perl6-zef-Paket für Tests und Installation verwendet wird, kann mit dem Parameter @code{#:zef} angegeben werden; es kann auch entfernt werden, indem man @code{#f} für den Parameter @code{with-zef?} übergibt."
 
 #. type: defvr
-#: doc/guix.texi:6597
+#: doc/guix.texi:7773
 #, no-wrap
 msgid "{Scheme Variable} texlive-build-system"
 msgstr "{Scheme-Variable} texlive-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6602
-msgid "This variable is exported by @code{(guix build-system texlive)}.  It is used to build TeX packages in batch mode with a specified engine.  The build system sets the @code{TEXINPUTS} variable to find all TeX source files in the inputs."
-msgstr "Diese Variable wird vom Modul @code{(guix build-system texlive)} exportiert. Mit ihr werden TeX-Pakete in Stapelverarbeitung („batch mode“) mit der angegebenen Engine erstellt. Das Erstellungssystem setzt die Variable @code{TEXINPUTS} so, dass alle TeX-Quelldateien unter den Eingaben gefunden werden können."
+#: doc/guix.texi:7778
+msgid "This variable is exported by @code{(guix build-system texlive)}.  It is used to build TeX packages in batch mode with a specified engine.  The build system sets the @env{TEXINPUTS} variable to find all TeX source files in the inputs."
+msgstr "Diese Variable wird vom Modul @code{(guix build-system texlive)} exportiert. Mit ihr werden TeX-Pakete in Stapelverarbeitung („batch mode“) mit der angegebenen Engine erstellt. Das Erstellungssystem setzt die Variable @env{TEXINPUTS} so, dass alle TeX-Quelldateien unter den Eingaben gefunden werden können."
 
 #. type: defvr
-#: doc/guix.texi:6611
+#: doc/guix.texi:7787
 msgid "By default it runs @code{luatex} on all files ending on @code{ins}.  A different engine and format can be specified with the @code{#:tex-format} argument.  Different build targets can be specified with the @code{#:build-targets} argument, which expects a list of file names.  The build system adds only @code{texlive-bin} and @code{texlive-latex-base} (both from @code{(gnu packages tex}) to the inputs.  Both can be overridden with the arguments @code{#:texlive-bin} and @code{#:texlive-latex-base}, respectively."
 msgstr "Standardmäßig wird @code{luatex} auf allen Dateien mit der Dateiendung @code{ins} ausgeführt. Eine andere Engine oder ein anderes Format kann mit dem Argument @code{#:tex-format} angegeben werden. Verschiedene Erstellungsziele können mit dem Argument @code{#:build-targets} festgelegt werden, das eine Liste von Dateinamen erwartet. Das Erstellungssystem fügt nur @code{texlive-bin} und @code{texlive-latex-base} zu den Eingaben hinzu (beide kommen aus dem Modul @code{(gnu packages tex}). Für beide kann das zu benutzende Paket jeweils mit den Argumenten @code{#:texlive-bin} oder @code{#:texlive-latex-base} geändert werden."
 
 #. type: defvr
-#: doc/guix.texi:6614
+#: doc/guix.texi:7790
 msgid "The @code{#:tex-directory} parameter tells the build system where to install the built files under the texmf tree."
 msgstr "Der Parameter @code{#:tex-directory} sagt dem Erstellungssystem, wohin die installierten Dateien im texmf-Verzeichnisbaum installiert werden sollen."
 
 #. type: defvr
-#: doc/guix.texi:6616
+#: doc/guix.texi:7792
 #, no-wrap
 msgid "{Scheme Variable} ruby-build-system"
 msgstr "{Scheme-Variable} ruby-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6620
+#: doc/guix.texi:7796
 msgid "This variable is exported by @code{(guix build-system ruby)}.  It implements the RubyGems build procedure used by Ruby packages, which involves running @code{gem build} followed by @code{gem install}."
 msgstr "Diese Variable wird vom Modul @code{(guix build-system ruby)} exportiert. Sie steht für eine Implementierung der RubyGems-Erstellungsprozedur, die für Ruby-Pakete benutzt wird, wobei @code{gem build} gefolgt von @code{gem install} ausgeführt wird."
 
 #. type: defvr
-#: doc/guix.texi:6628
+#: doc/guix.texi:7804
 msgid "The @code{source} field of a package that uses this build system typically references a gem archive, since this is the format that Ruby developers use when releasing their software.  The build system unpacks the gem archive, potentially patches the source, runs the test suite, repackages the gem, and installs it.  Additionally, directories and tarballs may be referenced to allow building unreleased gems from Git or a traditional source release tarball."
 msgstr "Das @code{source}-Feld eines Pakets, das dieses Erstellungssystem benutzt, verweist typischerweise auf ein Gem-Archiv, weil Ruby-Entwickler dieses Format benutzen, wenn sie ihre Software veröffentlichen. Das Erstellungssystem entpackt das Gem-Archiv, spielt eventuell Patches für den Quellcode ein, führt die Tests aus, verpackt alles wieder in ein Gem-Archiv und installiert dieses. Neben Gem-Archiven darf das Feld auch auf Verzeichnisse und Tarballs verweisen, damit es auch möglich ist, unveröffentlichte Gems aus einem Git-Repository oder traditionelle Quellcode-Veröffentlichungen zu benutzen."
 
 #. type: defvr
-#: doc/guix.texi:6632
+#: doc/guix.texi:7808
 msgid "Which Ruby package is used can be specified with the @code{#:ruby} parameter.  A list of additional flags to be passed to the @command{gem} command can be specified with the @code{#:gem-flags} parameter."
 msgstr "Welches Ruby-Paket benutzt werden soll, kann mit dem Parameter @code{#:ruby} festgelegt werden. Eine Liste zusätzlicher Befehlszeilenoptionen für den Aufruf des @command{gem}-Befehls kann mit dem Parameter @code{#:gem-flags} angegeben werden."
 
 #. type: defvr
-#: doc/guix.texi:6634
+#: doc/guix.texi:7810
 #, no-wrap
 msgid "{Scheme Variable} waf-build-system"
 msgstr "{Scheme-Variable} waf-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6640
+#: doc/guix.texi:7816
 msgid "This variable is exported by @code{(guix build-system waf)}.  It implements a build procedure around the @code{waf} script.  The common phases---@code{configure}, @code{build}, and @code{install}---are implemented by passing their names as arguments to the @code{waf} script."
 msgstr "Diese Variable wird durch das Modul @code{(guix build-system waf)} exportiert. Damit ist eine Erstellungsprozedur rund um das @code{waf}-Skript implementiert. Die üblichen Phasen — @code{configure}, @code{build} und @code{install} — sind implementiert, indem deren Namen als Argumente an das @code{waf}-Skript übergeben werden."
 
 #. type: defvr
-#: doc/guix.texi:6644
+#: doc/guix.texi:7820
 msgid "The @code{waf} script is executed by the Python interpreter.  Which Python package is used to run the script can be specified with the @code{#:python} parameter."
 msgstr "Das @code{waf}-Skript wird vom Python-Interpetierer ausgeführt. Mit welchem Python-Paket das Skript ausgeführt werden soll, kann mit dem Parameter @code{#:python} angegeben werden."
 
 #. type: defvr
-#: doc/guix.texi:6646
+#: doc/guix.texi:7822
 #, no-wrap
 msgid "{Scheme Variable} scons-build-system"
 msgstr "{Scheme-Variable} scons-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6652
+#: doc/guix.texi:7828
 msgid "This variable is exported by @code{(guix build-system scons)}.  It implements the build procedure used by the SCons software construction tool.  This build system runs @code{scons} to build the package, @code{scons test} to run tests, and then @code{scons install} to install the package."
 msgstr "Diese Variable wird vom Modul @code{(guix build-system scons)} exportiert. Sie steht für eine Implementierung der Erstellungsprozedur, die das SCons-Softwarekonstruktionswerkzeug („software construction tool“) benutzt. Das Erstellungssystem führt @code{scons} aus, um das Paket zu erstellen, führt mit @code{scons test} Tests aus und benutzt @code{scons install}, um das Paket zu installieren."
 
 #. type: defvr
-#: doc/guix.texi:6659
+#: doc/guix.texi:7835
 msgid "Additional flags to be passed to @code{scons} can be specified with the @code{#:scons-flags} parameter.  The default build and install targets can be overridden with @code{#:build-targets} and @code{#:install-targets} respectively.  The version of Python used to run SCons can be specified by selecting the appropriate SCons package with the @code{#:scons} parameter."
 msgstr "Zusätzliche Optionen, die an @code{scons} übergeben werden sollen, können mit dem Parameter @code{#:scons-flags} angegeben werden. Die voreingestellten Erstellungs- und Installationsziele können jeweils durch @code{#:build-targets} und @code{#:install-targets} ersetzt werden. Die Python-Version, die benutzt werden soll, um SCons auszuführen, kann festgelegt werden, indem das passende SCons-Paket mit dem Parameter @code{#:scons} ausgewählt wird."
 
 #. type: defvr
-#: doc/guix.texi:6661
+#: doc/guix.texi:7837
 #, no-wrap
 msgid "{Scheme Variable} haskell-build-system"
 msgstr "{Scheme-Variable} haskell-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6675
+#: doc/guix.texi:7851
 msgid "This variable is exported by @code{(guix build-system haskell)}.  It implements the Cabal build procedure used by Haskell packages, which involves running @code{runhaskell Setup.hs configure --prefix=/gnu/store/@dots{}} and @code{runhaskell Setup.hs build}.  Instead of installing the package by running @code{runhaskell Setup.hs install}, to avoid trying to register libraries in the read-only compiler store directory, the build system uses @code{runhaskell Setup.hs copy}, followed by @code{runhaskell Setup.hs register}.  In addition, the build system generates the package documentation by running @code{runhaskell Setup.hs haddock}, unless @code{#:haddock? #f} is passed.  Optional Haddock parameters can be passed with the help of the @code{#:haddock-flags} parameter.  If the file @code{Setup.hs} is not found, the build system looks for @code{Setup.lhs} instead."
 msgstr "Diese Variable wird vom Modul @code{(guix build-system haskell)} exportiert. Sie bietet Zugang zur Cabal-Erstellungsprozedur, die von Haskell-Paketen benutzt wird, was bedeutet, @code{runhaskell Setup.hs configure --prefix=/gnu/store/…} und @code{runhaskell Setup.hs build} auszuführen. Statt das Paket mit dem Befehl @code{runhaskell Setup.hs install} zu installieren, benutzt das Erstellungssystem @code{runhaskell Setup.hs copy} gefolgt von @code{runhaskell Setup.hs register}, um keine Bibliotheken im Store-Verzeichnis des Compilers zu speichern, auf dem keine Schreibberechtigung besteht. Zusätzlich generiert das Erstellungssystem Dokumentation durch Ausführen von @code{runhaskell Setup.hs haddock}, außer @code{#:haddock? #f} wurde übergeben. Optional können an Haddock Parameter mit Hilfe des Parameters @code{#:haddock-flags} übergeben werden. Wird die Datei @code{Setup.hs} nicht gefunden, sucht das Erstellungssystem stattdessen nach @code{Setup.lhs}."
 
 #. type: defvr
-#: doc/guix.texi:6678
+#: doc/guix.texi:7854
 msgid "Which Haskell compiler is used can be specified with the @code{#:haskell} parameter which defaults to @code{ghc}."
 msgstr "Welcher Haskell-Compiler benutzt werden soll, kann über den @code{#:haskell}-Parameter angegeben werden. Als Vorgabewert verwendet er @code{ghc}."
 
 #. type: defvr
-#: doc/guix.texi:6680
+#: doc/guix.texi:7856
 #, no-wrap
 msgid "{Scheme Variable} dub-build-system"
 msgstr "{Scheme-Variable} dub-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6685
+#: doc/guix.texi:7861
 msgid "This variable is exported by @code{(guix build-system dub)}.  It implements the Dub build procedure used by D packages, which involves running @code{dub build} and @code{dub run}.  Installation is done by copying the files manually."
 msgstr "Diese Variable wird vom Modul @code{(guix build-system dub)} exportiert. Sie verweist auf eine Implementierung des Dub-Erstellungssystems, das von D-Paketen benutzt wird. Dabei werden @code{dub build} und @code{dub run} ausgeführt. Die Installation wird durch manuelles Kopieren der Dateien durchgeführt."
 
 #. type: defvr
-#: doc/guix.texi:6688
+#: doc/guix.texi:7864
 msgid "Which D compiler is used can be specified with the @code{#:ldc} parameter which defaults to @code{ldc}."
 msgstr "Welcher D-Compiler benutzt wird, kann mit dem Parameter @code{#:ldc} festgelegt werden, was als Vorgabewert @code{ldc} benutzt."
 
 #. type: defvr
-#: doc/guix.texi:6690
+#: doc/guix.texi:7866
 #, no-wrap
 msgid "{Scheme Variable} emacs-build-system"
 msgstr "{Scheme-Variable} emacs-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6694
+#: doc/guix.texi:7870
 msgid "This variable is exported by @code{(guix build-system emacs)}.  It implements an installation procedure similar to the packaging system of Emacs itself (@pxref{Packages,,, emacs, The GNU Emacs Manual})."
 msgstr "Diese Variable wird vom Modul @code{(guix build-system emacs)} exportiert. Darin wird eine Installationsprozedur ähnlich der des Paketsystems von Emacs selbst implementiert (siehe @ref{Packages,,, emacs, The GNU Emacs Manual})."
 
 #. type: defvr
-#: doc/guix.texi:6700
+#: doc/guix.texi:7876
 msgid "It first creates the @code{@code{package}-autoloads.el} file, then it byte compiles all Emacs Lisp files.  Differently from the Emacs packaging system, the Info documentation files are moved to the standard documentation directory and the @file{dir} file is deleted.  The Elisp package files are installed directly under @file{share/emacs/site-lisp}."
 msgstr "Zunächst wird eine Datei @code{@code{Paket}-autoloads.el} erzeugt, dann werden alle Emacs-Lisp-Dateien zu Bytecode kompiliert. Anders als beim Emacs-Paketsystem werden die Info-Dokumentationsdateien in das Standardverzeichnis für Dokumentation verschoben und die Datei @file{dir} gelöscht. Die Dateien des Elisp-Pakets werden direkt in @file{share/emacs/site-lisp} installiert."
 
 #. type: defvr
-#: doc/guix.texi:6702
+#: doc/guix.texi:7878
 #, no-wrap
 msgid "{Scheme Variable} font-build-system"
 msgstr "{Scheme-Variable} font-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6708
+#: doc/guix.texi:7884
 msgid "This variable is exported by @code{(guix build-system font)}.  It implements an installation procedure for font packages where upstream provides pre-compiled TrueType, OpenType, etc.@: font files that merely need to be copied into place.  It copies font files to standard locations in the output directory."
 msgstr "Diese Variable wird vom Modul @code{(guix build-system font)} exportiert. Mit ihr steht eine Installationsprozedur für Schriftarten-Pakete zur Verfügung für vom Anbieter vorkompilierte TrueType-, OpenType- und andere Schriftartendateien, die nur an die richtige Stelle kopiert werden müssen. Dieses Erstellungssystem kopiert die Schriftartendateien an den Konventionen folgende Orte im Ausgabeverzeichnis."
 
 #. type: defvr
-#: doc/guix.texi:6710
+#: doc/guix.texi:7886
 #, no-wrap
 msgid "{Scheme Variable} meson-build-system"
 msgstr "{Scheme-Variable} meson-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6714
+#: doc/guix.texi:7890
 msgid "This variable is exported by @code{(guix build-system meson)}.  It implements the build procedure for packages that use @url{https://mesonbuild.com, Meson} as their build system."
 msgstr "Diese Variable wird vom Modul @code{(guix build-system meson)} exportiert. Sie enthält die Erstellungsprozedur für Pakete, die @url{https://mesonbuild.com, Meson} als ihr Erstellungssystem benutzen."
 
 #. type: defvr
-#: doc/guix.texi:6720
+#: doc/guix.texi:7896
 msgid "It adds both Meson and @uref{https://ninja-build.org/, Ninja} to the set of inputs, and they can be changed with the parameters @code{#:meson} and @code{#:ninja} if needed.  The default Meson is @code{meson-for-build}, which is special because it doesn't clear the @code{RUNPATH} of binaries and libraries when they are installed."
 msgstr "Mit ihr werden sowohl Meson als auch @uref{https://ninja-build.org/, Ninja} zur Menge der Eingaben hinzugefügt; die Pakete dafür können mit den Parametern @code{#:meson} und @code{#:ninja} geändert werden, wenn nötig. Das vorgegebene Meson-Paket ist @code{meson-for-build}, ein besonderes Paket, dessen Besonderheit darin besteht, den @code{RUNPATH} von Binärdateien und Bibliotheken @emph{nicht} zu entfernen, wenn sie installiert werden."
 
 #. type: defvr
-#: doc/guix.texi:6723
+#: doc/guix.texi:7899
 msgid "This build system is an extension of @code{gnu-build-system}, but with the following phases changed to some specific for Meson:"
 msgstr "Dieses Erstellungssystem ist eine Erweiterung für das @code{gnu-build-system}, aber mit Änderungen an den folgenden Phasen, die Meson-spezifisch sind:"
 
 #. type: table
-#: doc/guix.texi:6730
-msgid "The phase runs @code{meson} with the flags specified in @code{#:configure-flags}.  The flag @code{--build-type} is always set to @code{plain} unless something else is specified in @code{#:build-type}."
-msgstr "Diese Phase führt den @code{meson}-Befehl mit den in @code{#:configure-flags} angegebenen Befehlszeilenoptionen aus. Die Befehlszeilenoption @code{--build-type} wird immer auf @code{plain} gesetzt, solange nichts anderes mit dem Parameter @code{#:build-type} angegeben wurde."
+#: doc/guix.texi:7907
+msgid "The phase runs @code{meson} with the flags specified in @code{#:configure-flags}.  The flag @option{--buildtype} is always set to @code{debugoptimized} unless something else is specified in @code{#:build-type}."
+msgstr "Diese Phase führt den @code{meson}-Befehl mit den in @code{#:configure-flags} angegebenen Befehlszeilenoptionen aus. Die Befehlszeilenoption @option{--build-type} wird immer auf @code{debugoptimized} gesetzt, solange nichts anderes mit dem Parameter @code{#:build-type} angegeben wurde."
 
 #. type: table
-#: doc/guix.texi:6734
+#: doc/guix.texi:7911
 msgid "The phase runs @code{ninja} to build the package in parallel by default, but this can be changed with @code{#:parallel-build?}."
 msgstr "Diese Phase ruft @code{ninja} auf, um das Paket standardmäßig parallel zu erstellen. Die Vorgabeeinstellung, dass parallel erstellt wird, kann verändert werden durch Setzen von @code{#:parallel-build?}."
 
 #. type: table
-#: doc/guix.texi:6738
+#: doc/guix.texi:7915
 msgid "The phase runs @code{ninja} with the target specified in @code{#:test-target}, which is @code{\"test\"} by default."
 msgstr "Diese Phase führt @code{ninja} mit dem als @code{#:test-target} spezifizierten Ziel für Tests auf, der Vorgabewert ist das Ziel namens @code{\"test\"}."
 
 #. type: table
-#: doc/guix.texi:6741
+#: doc/guix.texi:7918
 msgid "The phase runs @code{ninja install} and can not be changed."
 msgstr "Diese Phase führt @code{ninja install} aus und kann nicht verändert werden."
 
 #. type: defvr
-#: doc/guix.texi:6744
+#: doc/guix.texi:7921
 msgid "Apart from that, the build system also adds the following phases:"
 msgstr "Dazu fügt das Erstellungssystem noch folgende neue Phasen:"
 
 #. type: item
-#: doc/guix.texi:6747
+#: doc/guix.texi:7924
 #, no-wrap
 msgid "fix-runpath"
 msgstr "fix-runpath"
 
 #. type: table
-#: doc/guix.texi:6754
+#: doc/guix.texi:7931
 msgid "This phase ensures that all binaries can find the libraries they need.  It searches for required libraries in subdirectories of the package being built, and adds those to @code{RUNPATH} where needed.  It also removes references to libraries left over from the build phase by @code{meson-for-build}, such as test dependencies, that aren't actually required for the program to run."
 msgstr "In dieser Phase wird sichergestellt, dass alle Binärdateien die von ihnen benötigten Bibliotheken finden können. Die benötigten Bibliotheken werden in den Unterverzeichnissen des Pakets, das erstellt wird, gesucht, und zum @code{RUNPATH} hinzugefügt, wann immer es nötig ist. Auch werden diejenigen Referenzen zu Bibliotheken aus der Erstellungsphase wieder entfernt, die bei @code{meson-for-build} hinzugefügt wurden, aber eigentlich zur Laufzeit nicht gebraucht werden, wie Abhängigkeiten nur für Tests."
 
 #. type: table
-#: doc/guix.texi:6758 doc/guix.texi:6762
+#: doc/guix.texi:7935 doc/guix.texi:7939
 msgid "This phase is the phase provided by @code{glib-or-gtk-build-system}, and it is not enabled by default.  It can be enabled with @code{#:glib-or-gtk?}."
 msgstr "Diese Phase ist dieselbe, die auch im @code{glib-or-gtk-build-system} zur Verfügung gestellt wird, und mit Vorgabeeinstellungen wird sie nicht durchlaufen. Wenn sie gebraucht wird, kann sie mit dem Parameter @code{#:glib-or-gtk?} aktiviert werden."
 
 #. type: defvr
-#: doc/guix.texi:6765
+#: doc/guix.texi:7942
 #, no-wrap
 msgid "{Scheme Variable} linux-module-build-system"
 msgstr "{Scheme-Variable} linux-module-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6767
+#: doc/guix.texi:7944
 msgid "@code{linux-module-build-system} allows building Linux kernel modules."
 msgstr "Mit @code{linux-module-build-system} können Linux-Kernelmodule erstellt werden."
 
 #. type: defvr
-#: doc/guix.texi:6771
+#: doc/guix.texi:7948
 msgid "This build system is an extension of @code{gnu-build-system}, but with the following phases changed:"
 msgstr "Dieses Erstellungssystem ist eine Erweiterung des @code{gnu-build-system}, bei der aber die folgenden Phasen geändert wurden:"
 
 #. type: table
-#: doc/guix.texi:6777
+#: doc/guix.texi:7954
 msgid "This phase configures the environment so that the Linux kernel's Makefile can be used to build the external kernel module."
 msgstr "Diese Phase konfiguriert die Umgebung so, dass das externe Kernel-Modul durch das Makefile des Linux-Kernels erstellt werden kann."
 
 #. type: table
-#: doc/guix.texi:6781
+#: doc/guix.texi:7958
 msgid "This phase uses the Linux kernel's Makefile in order to build the external kernel module."
 msgstr "Diese Phase benutzt das Makefile des Linux-Kernels, um das externe Kernel-Modul zu erstellen."
 
 #. type: table
-#: doc/guix.texi:6785
+#: doc/guix.texi:7962
 msgid "This phase uses the Linux kernel's Makefile in order to install the external kernel module."
 msgstr "Diese Phase benutzt das Makefile des Linux-Kernels zur Installation des externen Kernel-Moduls."
 
 #. type: defvr
-#: doc/guix.texi:6790
-msgid "It is possible and useful to specify the Linux kernel to use for building the module (in the \"arguments\" form of a package using the linux-module-build-system, use the key #:linux to specify it)."
-msgstr "Es ist möglich und hilfreich, den für die Erstellung des Moduls zu benutzenden Linux-Kernel anzugeben (in der „arguments“-Form eines Pakets, dass das linux-module-build-system als Erstellungssystem benutzt, wird dazu der Schlüssel #:linux benutzt)."
+#: doc/guix.texi:7967
+msgid "It is possible and useful to specify the Linux kernel to use for building the module (in the @code{arguments} form of a package using the @code{linux-module-build-system}, use the key @code{#:linux} to specify it)."
+msgstr "Es ist möglich und hilfreich, den für die Erstellung des Moduls zu benutzenden Linux-Kernel anzugeben (in der @code{arguments}-Form eines Pakets, dass das @code{linux-module-build-system} als Erstellungssystem benutzt, wird dazu der Schlüssel @code{#:linux} benutzt)."
 
 #. type: defvr
-#: doc/guix.texi:6792
+#: doc/guix.texi:7969
 #, no-wrap
 msgid "{Scheme Variable} node-build-system"
 msgstr "{Scheme-Variable} node-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6797
+#: doc/guix.texi:7974
 msgid "This variable is exported by @code{(guix build-system node)}.  It implements the build procedure used by @uref{https://nodejs.org, Node.js}, which implements an approximation of the @code{npm install} command, followed by an @code{npm test} command."
 msgstr "Diese Variable wird vom Modul @code{(guix build-system node)} exportiert. Sie stellt eine Implementierung der Erstellungsprozedur von @uref{https://nodejs.org, Node.js} dar, die annäherungsweise der Funktion des Befehls @code{npm install} gefolgt vom Befehl @code{npm test} entspricht."
 
 #. type: defvr
-#: doc/guix.texi:6801
+#: doc/guix.texi:7978
 msgid "Which Node.js package is used to interpret the @code{npm} commands can be specified with the @code{#:node} parameter which defaults to @code{node}."
 msgstr "Welches Node.js-Paket zur Interpretation der @code{npm}-Befehle benutzt wird, kann mit dem Parameter @code{#:node} angegeben werden. Dessen Vorgabewert ist @code{node}."
 
 #. type: Plain text
-#: doc/guix.texi:6807
+#: doc/guix.texi:7984
 msgid "Lastly, for packages that do not need anything as sophisticated, a ``trivial'' build system is provided.  It is trivial in the sense that it provides basically no support: it does not pull any implicit inputs, and does not have a notion of build phases."
 msgstr "Letztlich gibt es für die Pakete, die bei weitem nichts so komplexes brauchen, ein „triviales“ Erstellungssystem. Es ist in dem Sinn trivial, dass es praktisch keine Hilfestellungen gibt: Es fügt keine impliziten Eingaben hinzu und hat kein Konzept von Erstellungsphasen."
 
 #. type: defvr
-#: doc/guix.texi:6808
+#: doc/guix.texi:7985
 #, no-wrap
 msgid "{Scheme Variable} trivial-build-system"
 msgstr "{Scheme-Variable} trivial-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6810
+#: doc/guix.texi:7987
 msgid "This variable is exported by @code{(guix build-system trivial)}."
 msgstr "Diese Variable wird vom Modul @code{(guix build-system trivial)} exportiert."
 
 #. type: defvr
-#: doc/guix.texi:6815
+#: doc/guix.texi:7992
 msgid "This build system requires a @code{#:builder} argument.  This argument must be a Scheme expression that builds the package output(s)---as with @code{build-expression->derivation} (@pxref{Derivations, @code{build-expression->derivation}})."
 msgstr "Diesem Erstellungssystem muss im Argument @code{#:builder} ein Scheme-Ausdruck übergeben werden, der die Paketausgabe(n) erstellt — wie bei @code{build-expression->derivation} (siehe @ref{Derivations, @code{build-expression->derivation}})."
 
 #. type: cindex
-#: doc/guix.texi:6821
+#: doc/guix.texi:7997
+#, no-wrap
+msgid "build phases, for packages"
+msgstr "Erstellungsphasen, bei Paketen"
+
+#. type: Plain text
+#: doc/guix.texi:8003
+msgid "Almost all package build systems implement a notion @dfn{build phases}: a sequence of actions that the build system executes, when you build the package, leading to the installed byproducts in the store.  A notable exception is the ``bare-bones'' @code{trivial-build-system} (@pxref{Build Systems})."
+msgstr "Fast alle Erstellungssysteme für Pakete implementieren ein Konzept von @dfn{Erstellungsphasen}: einer Abfolge von Aktionen, die vom Erstellungssystem ausgeführt werden, wenn Sie das Paket erstellen. Dabei fallen in den Store installierte Nebenerzeugnisse an. Eine Ausnahme ist der Erwähnung wert: das magere @code{trivial-build-system} (siehe @ref{Build Systems})."
+
+#. type: Plain text
+#: doc/guix.texi:8017
+msgid "As discussed in the previous section, those build systems provide a standard list of phases.  For @code{gnu-build-system}, the standard phases include an @code{unpack} phase to unpack the source code tarball, a @command{configure} phase to run @code{./configure}, a @code{build} phase to run @command{make}, and (among others) an @code{install} phase to run @command{make install}; @pxref{Build Systems}, for a more detailed view of these phases.  Likewise, @code{cmake-build-system} inherits these phases, but its @code{configure} phase runs @command{cmake} instead of @command{./configure}.  Other build systems, such as @code{python-build-system}, have a wholly different list of standard phases.  All this code runs on the @dfn{build side}: it is evaluated when you actually build the package, in a dedicated build process spawned by the build daemon (@pxref{Invoking guix-daemon})."
+msgstr "Wie im letzten Abschnitt erläutert, stellen diese Erstellungssysteme eine standardisierte Liste von Phasen zur Verfügung. Für @code{gnu-build-system} gehören zu den Standardphasen eine @code{unpack}-Phase, wo der Quellcode-Tarball entpackt wird, eine @command{configure}-Phase, wo @code{./configure} ausgeführt wird, eine @code{build}-Phase, um @command{make} auszuführen, und (unter anderem) eine @code{install}-Phase, um @command{make install} auszuführen. Siehe @ref{Build Systems} für eine Detailansicht dieser Phasen. @code{cmake-build-system} erbt diese Phasen, aber seine @code{configure}-Phase führt @command{cmake} statt @command{./configure} aus. Andere Erstellungssysteme wie z.B.@: @code{python-build-system} haben eine völlig andere Liste von Standardphasen. Dieser gesamte Code läuft @dfn{erstellungsseitig}: Er wird dann ausgewertet, wenn Sie das Paket wirklich erstellen, in einem eigenen Erstellungprozess nur dafür, den der Erstellungs-Daemon erzeugt (siehe @ref{Invoking guix-daemon})."
+
+#. type: Plain text
+#: doc/guix.texi:8024
+msgid "Build phases are represented as association lists or ``alists'' (@pxref{Association Lists,,, guile, GNU Guile Reference Manual}) where each key is a symbol for the name of the phase and the associated value is a procedure that accepts an arbitrary number of arguments.  By convention, those procedures receive information about the build in the form of @dfn{keyword parameters}, which they can use or ignore."
+msgstr "Erstellungsphasen werden durch assoziative Listen (kurz „Alists“) repräsentiert (siehe @ref{Association Lists,,, guile, Referenzhandbuch zu GNU Guile}) wo jeder Schlüssel ein Symbol für den Namen der Phase ist und der assoziierte Wert eine Prozedur ist, die eine beliebige Anzahl von Argumenten nimmt. Nach Konvention empfangen diese Prozeduren dadurch Informationen über die Erstellung in Form von @dfn{Schlüsselwort-Parametern}, die darin benutzt oder ignoriert werden können."
+
+#. type: Plain text
+#: doc/guix.texi:8030
+msgid "For example, here is how @code{(guix build gnu-build-system)} defines @code{%standard-phases}, the variable holding its alist of build phases@footnote{We present a simplified view of those build phases, but do take a look at @code{(guix build gnu-build-system)} to see all the details!}:"
+msgstr "Zum Beispiel werden die @code{%standard-phases}, das ist die Variable mit der Alist der Erstellungsphasen, in @code{(guix build gnu-build-system)} so definiert@footnote{Wir stellen hier nur eine vereinfachte Sicht auf diese Erstellungsphasen vor. Wenn Sie alle Details wollen, schauen Sie sich @code{(guix build gnu-build-system)} an!}:"
+
+#. type: lisp
+#: doc/guix.texi:8033
+#, no-wrap
+msgid ""
+";; The build phases of 'gnu-build-system'.\n"
+"\n"
+msgstr ""
+";; Die Erstellungsphasen von 'gnu-build-system'.\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:8037
+#, no-wrap
+msgid ""
+"(define* (unpack #:key source #:allow-other-keys)\n"
+"  ;; Extract the source tarball.\n"
+"  (invoke \"tar\" \"xvf\" source))\n"
+"\n"
+msgstr ""
+"(define* (unpack #:key source #:allow-other-keys)\n"
+"  ;; Quelltarball extrahieren.\n"
+"  (invoke \"tar\" \"xvf\" source))\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:8043
+#, no-wrap
+msgid ""
+"(define* (configure #:key outputs #:allow-other-keys)\n"
+"  ;; Run the 'configure' script.  Install to output \"out\".\n"
+"  (let ((out (assoc-ref outputs \"out\")))\n"
+"    (invoke \"./configure\"\n"
+"            (string-append \"--prefix=\" out))))\n"
+"\n"
+msgstr ""
+"(define* (configure #:key outputs #:allow-other-keys)\n"
+"  ;; 'configure'-Skript ausführen. In Ausgabe \"out\" installieren.\n"
+"  (let ((out (assoc-ref outputs \"out\")))\n"
+"    (invoke \"./configure\"\n"
+"            (string-append \"--prefix=\" out))))\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:8047
+#, no-wrap
+msgid ""
+"(define* (build #:allow-other-keys)\n"
+"  ;; Compile.\n"
+"  (invoke \"make\"))\n"
+"\n"
+msgstr ""
+"(define* (build #:allow-other-keys)\n"
+"  ;; Kompilieren.\n"
+"  (invoke \"make\"))\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:8054
+#, no-wrap
+msgid ""
+"(define* (check #:key (test-target \"check\") (tests? #true)\n"
+"                #:allow-other-keys)\n"
+"  ;; Run the test suite.\n"
+"  (if tests?\n"
+"      (invoke \"make\" test-target)\n"
+"      (display \"test suite not run\\n\")))\n"
+"\n"
+msgstr ""
+"(define* (check #:key (test-target \"check\") (tests? #true)\n"
+"                #:allow-other-keys)\n"
+"  ;; Testkatalog ausführen.\n"
+"  (if tests?\n"
+"      (invoke \"make\" test-target)\n"
+"      (display \"test suite not run\\n\")))\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:8058
+#, no-wrap
+msgid ""
+"(define* (install #:allow-other-keys)\n"
+"  ;; Install files to the prefix 'configure' specified.\n"
+"  (invoke \"make\" \"install\"))\n"
+"\n"
+msgstr ""
+"(define* (install #:allow-other-keys)\n"
+"  ;; Dateien ins bei 'configure' festgelegte Präfix installieren.\n"
+"  (invoke \"make\" \"install\"))\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:8067
+#, no-wrap
+msgid ""
+"(define %standard-phases\n"
+"  ;; The list of standard phases (quite a few are omitted\n"
+"  ;; for brevity).  Each element is a symbol/procedure pair.\n"
+"  (list (cons 'unpack unpack)\n"
+"        (cons 'configure configure)\n"
+"        (cons 'build build)\n"
+"        (cons 'check check)\n"
+"        (cons 'install install)))\n"
+msgstr ""
+"(define %standard-phases\n"
+"  ;; Die Liste der Standardphasen (der Kürze halber lassen wir einige\n"
+"  ;; aus). Jedes Element ist ein Paar aus Symbol und Prozedur.\n"
+"  (list (cons 'unpack unpack)\n"
+"        (cons 'configure configure)\n"
+"        (cons 'build build)\n"
+"        (cons 'check check)\n"
+"        (cons 'install install)))\n"
+
+#. type: Plain text
+#: doc/guix.texi:8077
+msgid "This shows how @code{%standard-phases} is defined as a list of symbol/procedure pairs (@pxref{Pairs,,, guile, GNU Guile Reference Manual}).  The first pair associates the @code{unpack} procedure with the @code{unpack} symbol---a name; the second pair defines the @code{configure} phase similarly, and so on.  When building a package that uses @code{gnu-build-system} with its default list of phases, those phases are executed sequentially.  You can see the name of each phase started and completed in the build log of packages that you build."
+msgstr "Hier sieht man wie @code{%standard-phases} als eine Liste von Paaren aus Symbol und Prozedur (siehe @ref{Pairs,,, guile, Referenzhandbuch zu GNU Guile}) definiert ist. Das erste Paar assoziiert die @code{unpack}-Prozedur mit dem @code{unpack}-Symbol — es gibt einen Namen an. Das zweite Paar definiert die @code{configure}-Phase auf ähnliche Weise, ebenso die anderen. Wenn ein Paket erstellt wird, das @code{gnu-build-system} benutzt, werden diese Phasen der Reihe nach ausgeführt. Sie können beim Erstellen von Paketen im Erstellungsprotokoll den Namen jeder gestarteten und abgeschlossenen Phase sehen."
+
+#. type: Plain text
+#: doc/guix.texi:8083
+msgid "Let's now look at the procedures themselves.  Each one is defined with @code{define*}: @code{#:key} lists keyword parameters the procedure accepts, possibly with a default value, and @code{#:allow-other-keys} specifies that other keyword parameters are ignored (@pxref{Optional Arguments,,, guile, GNU Guile Reference Manual})."
+msgstr "Schauen wir uns jetzt die Prozeduren selbst an. Jede davon wird mit @code{define*} definiert, dadurch können bei @code{#:key} die Schlüsselwortparameter aufgelistet werden, die die Prozedur annimmt, wenn gewünscht auch zusammen mit einem Vorgabewert, und durch @code{#:allow-other-keys} wird veranlasst, dass andere Schlüsselwortparameter ignoriert werden (siehe @ref{Optional Arguments,,, guile, Referenzhandbuch zu GNU Guile})."
+
+#. type: Plain text
+#: doc/guix.texi:8099
+msgid "The @code{unpack} procedure honors the @code{source} parameter, which the build system uses to pass the file name of the source tarball (or version control checkout), and it ignores other parameters.  The @code{configure} phase only cares about the @code{outputs} parameter, an alist mapping package output names to their store file name (@pxref{Packages with Multiple Outputs}).  It extracts the file name of for @code{out}, the default output, and passes it to @command{./configure} as the installation prefix, meaning that @command{make install} will eventually copy all the files in that directory (@pxref{Configuration, configuration and makefile conventions,, standards, GNU Coding Standards}).  @code{build} and @code{install} ignore all their arguments.  @code{check} honors the @code{test-target} argument, which specifies the name of the Makefile target to run tests; it prints a message and skips tests when @code{tests?} is false."
+msgstr "Die @code{unpack}-Prozedur berücksichtigt den @code{source}-Parameter; das Erstellungssystem benutzt ihn, um den Dateinamen des Quell-Tarballs (oder des Checkouts aus einer Versionskontrolle) zu finden. Die anderen Parameter ignoriert sie. Die @code{configure}-Phase interessiert sich nur für den @code{outputs}-Parameter, eine Alist, die die Namen von Paketausgaben auf ihre Dateinamen im Store abbildet (siehe @ref{Packages with Multiple Outputs}). Sie extrahiert den Dateinamen für @code{out}, die Standardausgabe, und gibt ihn an @command{./configure} als das Installationspräfix weiter, wodurch @command{make install} zum Schluss alle Dateien in dieses Verzeichnis kopieren wird (siehe @ref{Configuration, configuration and makefile conventions,, standards, GNU Coding Standards}). @code{build} und @code{install} ignorieren all ihre Argumente. @code{check} berücksichtigt das Argument @code{test-target}, worin der Name des Makefile-Ziels angegeben wird, um die Tests auszuführen. Es wird stattdessen eine Nachricht angezeigt und die Tests übersprungen, wenn @code{tests?} falsch ist."
+
+#. type: cindex
+#: doc/guix.texi:8100
+#, no-wrap
+msgid "build phases, customizing"
+msgstr "Erstellungsphasen, Anpassen der"
+
+#. type: Plain text
+#: doc/guix.texi:8109
+msgid "The list of phases used for a particular package can be changed with the @code{#:phases} parameter of the build system.  Changing the set of build phases boils down to building a new alist of phases based on the @code{%standard-phases} alist described above.  This can be done with standard alist procedures such as @code{alist-delete} (@pxref{SRFI-1 Association Lists,,, guile, GNU Guile Reference Manual}); however, it is more convenient to do so with @code{modify-phases} (@pxref{Build Utilities, @code{modify-phases}})."
+msgstr "Die Liste der Phasen, die für ein bestimmtes Paket benutzt werden, kann über den @code{#:phases}-Parameter an das Erstellungssystem geändert werden. Das Ändern des Satzes von Erstellungsphasen funktioniert so, dass eine neue Alist von Phasen aus der oben beschriebenen @code{%standard-phases}-Alist heraus erzeugt wird. Dazu können die Standardprozeduren zur Bearbeitung von assoziativen Listen wie @code{alist-delete} benutzt werden (siehe @ref{SRFI-1 Association Lists,,, guile, Referenzhandbuch zu GNU Guile}), aber es ist bequemer, dafür die Prozedur @code{modify-phases} zu benutzen (siehe @ref{Build Utilities, @code{modify-phases}})."
+
+#. type: Plain text
+#: doc/guix.texi:8114
+msgid "Here is an example of a package definition that removes the @code{configure} phase of @code{%standard-phases} and inserts a new phase before the @code{build} phase, called @code{set-prefix-in-makefile}:"
+msgstr "Hier ist ein Beispiel für eine Paketdefinition, die die @code{configure}-Phase aus @code{%standard-phases} entfernt und eine neue Phase vor der @code{build}-Phase namens @code{set-prefix-in-makefile} einfügt:"
+
+#. type: lisp
+#: doc/guix.texi:8134
+#, no-wrap
+msgid ""
+"(define-public example\n"
+"  (package\n"
+"    (name \"example\")\n"
+"    ;; other fields omitted\n"
+"    (build-system gnu-build-system)\n"
+"    (arguments\n"
+"     '(#:phases (modify-phases %standard-phases\n"
+"                  (delete 'configure)\n"
+"                  (add-before 'build 'set-prefix-in-makefile\n"
+"                    (lambda* (#:key outputs #:allow-other-keys)\n"
+"                      ;; Modify the makefile so that its\n"
+"                      ;; 'PREFIX' variable points to \"out\".\n"
+"                      (let ((out (assoc-ref outputs \"out\")))\n"
+"                        (substitute* \"Makefile\"\n"
+"                          ((\"PREFIX =.*\")\n"
+"                           (string-append \"PREFIX = \"\n"
+"                                          out \"\\n\")))\n"
+"                        #true))))))))\n"
+msgstr ""
+"(define-public beispiel\n"
+"  (package\n"
+"    (name \"beispiel\")\n"
+"    ;; wir lassen die anderen Felder aus\n"
+"    (build-system gnu-build-system)\n"
+"    (arguments\n"
+"     '(#:phases (modify-phases %standard-phases\n"
+"                  (delete 'configure)\n"
+"                  (add-before 'build 'set-prefix-in-makefile\n"
+"                    (lambda* (#:key outputs #:allow-other-keys)\n"
+"                      ;; Makefile anpassen, damit die 'PREFIX'-\n"
+"                      ;; Variable auf \"out\" verweist.\n"
+"                      (let ((out (assoc-ref outputs \"out\")))\n"
+"                        (substitute* \"Makefile\"\n"
+"                          ((\"PREFIX =.*\")\n"
+"                           (string-append \"PREFIX = \"\n"
+"                                          out \"\\n\")))\n"
+"                        #true))))))))\n"
+
+#. type: Plain text
+#: doc/guix.texi:8140
+msgid "The new phase that is inserted is written as an anonymous procedure, introduced with @code{lambda*}; it honors the @code{outputs} parameter we have seen before.  @xref{Build Utilities}, for more about the helpers used by this phase, and for more examples of @code{modify-phases}."
+msgstr "Die neu eingefügte Phase wurde als anonyme Prozedur geschrieben. Solche namenlosen Prozeduren schreibt man mit @code{lambda*}. Oben berücksichtigt sie den @code{outputs}-Parameter, den wir zuvor gesehen haben. Siehe @ref{Build Utilities} für mehr Informationen über die in dieser Phase benutzten Hilfsmittel und für mehr Beispiele zu @code{modify-phases}."
+
+#. type: cindex
+#: doc/guix.texi:8141 doc/guix.texi:9114
+#, no-wrap
+msgid "code staging"
+msgstr "Code-Staging"
+
+#. type: cindex
+#: doc/guix.texi:8142 doc/guix.texi:9115
+#, no-wrap
+msgid "staging, of code"
+msgstr "Staging, von Code"
+
+#. type: Plain text
+#: doc/guix.texi:8149
+msgid "Keep in mind that build phases are code evaluated at the time the package is actually built.  This explains why the whole @code{modify-phases} expression above is quoted (it comes after the @code{'} or apostrophe): it is @dfn{staged} for later execution.  @xref{G-Expressions}, for an explanation of code staging and the @dfn{code strata} involved."
+msgstr "Sie sollten im Kopf behalten, dass Erstellungsphasen aus Code bestehen, der erst dann ausgewertet wird, wenn das Paket erstellt wird. Das ist der Grund, warum der gesamte @code{modify-phases}-Ausdruck oben quotiert wird. Quotiert heißt, er steht nach einem @code{'} oder Apostrophenzeichen: Er wird nicht sofort als Code ausgewertet, sondern nur zur späteren Ausführung vorgemerkt (wir sagen @dfn{staged}, siehe @ref{G-Expressions} für eine Erläuterung von Code-Staging und den beteiligten @dfn{Code-Schichten} (oder „Strata“)."
+
+#. type: Plain text
+#: doc/guix.texi:8159
+msgid "As soon as you start writing non-trivial package definitions (@pxref{Defining Packages}) or other build actions (@pxref{G-Expressions}), you will likely start looking for helpers for ``shell-like'' actions---creating directories, copying and deleting files recursively, manipulating build phases, and so on.  The @code{(guix build utils)} module provides such utility procedures."
+msgstr "Sobald Sie anfangen, nichttriviale Paketdefinitionen (siehe @ref{Defining Packages}) oder andere Erstellungsaktionen (siehe @ref{G-Expressions}) zu schreiben, würden Sie sich wahrscheinlich darüber freuen, Helferlein für „Shell-artige“ Aktionen vordefiniert zu bekommen, also Code, den Sie benutzen können, um Verzeichnisse anzulegen, Dateien rekursiv zu kopieren oder zu löschen, Erstellungsphasen anzupassen und Ähnliches. Das Modul @code{(guix build utils)} macht solche nützlichen Werkzeugprozeduren verfügbar."
+
+#. type: Plain text
+#: doc/guix.texi:8163
+msgid "Most build systems load @code{(guix build utils)} (@pxref{Build Systems}).  Thus, when writing custom build phases for your package definitions, you can usually assume those procedures are in scope."
+msgstr "Die meisten Erstellungssysteme laden @code{(guix build utils)} (siehe @ref{Build Systems}). Wenn Sie also eigene Erstellungsphasen für Ihre Paketdefinitionen schreiben, können Sie in den meisten Fällen annehmen, dass diese Prozeduren bei der Auswertung sichtbar sein werden."
+
+#. type: Plain text
+#: doc/guix.texi:8168
+msgid "When writing G-expressions, you can import @code{(guix build utils)} on the ``build side'' using @code{with-imported-modules} and then put it in scope with the @code{use-modules} form (@pxref{Using Guile Modules,,, guile, GNU Guile Reference Manual}):"
+msgstr "Beim Schreiben von G-Ausdrücken können Sie auf der „Erstellungsseite“ @code{(guix build utils)} mit @code{with-imported-modules} importieren und anschließend mit der @code{use-modules}-Form sichtbar machen (siehe @ref{Using Guile Modules,,, guile, Referenzhandbuch zu GNU Guile}):"
+
+#. type: lisp
+#: doc/guix.texi:8175
+#, no-wrap
+msgid ""
+"(with-imported-modules '((guix build utils))  ;import it\n"
+"  (computed-file \"empty-tree\"\n"
+"                 #~(begin\n"
+"                     ;; Put it in scope.\n"
+"                     (use-modules (guix build utils))\n"
+"\n"
+msgstr ""
+"(with-imported-modules '((guix build utils))  ;importieren\n"
+"  (computed-file \"leerer-verzeichnisbaum\"\n"
+"                 #~(begin\n"
+"                     ;; Sichtbar machen.\n"
+"                     (use-modules (guix build utils))\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:8178
+#, no-wrap
+msgid ""
+"                     ;; Happily use its 'mkdir-p' procedure.\n"
+"                     (mkdir-p (string-append #$output \"/a/b/c\")))))\n"
+msgstr ""
+"                     ;; Jetzt kann man problemlos 'mkdir-p' nutzen.\n"
+"                     (mkdir-p (string-append #$output \"/a/b/c\")))))\n"
+
+#. type: Plain text
+#: doc/guix.texi:8182
+msgid "The remainder of this section is the reference for most of the utility procedures provided by @code{(guix build utils)}."
+msgstr "Der Rest dieses Abschnitts stellt eine Referenz der meisten Werkzeugprozeduren dar, die @code{(guix build utils)} anbietet."
+
+#. type: subsection
+#: doc/guix.texi:8185
+#, no-wrap
+msgid "Dealing with Store File Names"
+msgstr "Umgehen mit Store-Dateinamen"
+
+#. type: Plain text
+#: doc/guix.texi:8188
+msgid "This section documents procedures that deal with store file names."
+msgstr "Dieser Abschnitt dokumentiert Prozeduren, die sich mit Dateinamen von Store-Objekten befassen."
+
+#. type: deffn
+#: doc/guix.texi:8189
+#, no-wrap
+msgid "{Scheme Procedure} %store-directory"
+msgstr "{Scheme-Prozedur} %store-directory"
+
+#. type: deffn
+#: doc/guix.texi:8191
+msgid "Return the directory name of the store."
+msgstr "Liefert den Verzeichnisnamen des Stores."
+
+#. type: deffn
+#: doc/guix.texi:8193
+#, no-wrap
+msgid "{Scheme Procedure} store-file-name? @var{file}"
+msgstr "{Scheme-Prozedur} store-file-name? @var{Datei}"
+
+#. type: deffn
+#: doc/guix.texi:8195
+msgid "Return true if @var{file} is in the store."
+msgstr "Liefert wahr zurück, wenn sich @var{Datei} innerhalb des Stores befindet."
+
+#. type: deffn
+#: doc/guix.texi:8197
+#, no-wrap
+msgid "{Scheme Procedure} strip-store-file-name @var{file}"
+msgstr "{Scheme-Prozedur} strip-store-file-name @var{Datei}"
+
+#. type: deffn
+#: doc/guix.texi:8200
+msgid "Strip the @file{/gnu/store} and hash from @var{file}, a store file name.  The result is typically a @code{\"@var{package}-@var{version}\"} string."
+msgstr "Liefert den Namen der @var{Datei}, die im Store liegt, ohne den Anfang @file{/gnu/store} und ohne die Prüfsumme am Namensanfang. Als Ergebnis ergibt sich typischerweise eine Zeichenkette aus @code{\"@var{Paket}-@var{Version}\"}."
+
+#. type: deffn
+#: doc/guix.texi:8202
+#, no-wrap
+msgid "{Scheme Procedure} package-name->name+version @var{name}"
+msgstr "{Scheme-Prozedur} package-name->name+version @var{Name}"
+
+#. type: deffn
+#: doc/guix.texi:8207
+msgid "Given @var{name}, a package name like @code{\"foo-0.9.1b\"}, return two values: @code{\"foo\"} and @code{\"0.9.1b\"}.  When the version part is unavailable, @var{name} and @code{#f} are returned.  The first hyphen followed by a digit is considered to introduce the version part."
+msgstr "Liefert für den Paket-@var{Name}n (so etwas wie @code{\"foo-0.9.1b\"}) zwei Werte zurück: zum einen @code{\"foo\"} und zum anderen @code{\"0.9.1b\"}. Wenn der Teil mit der Version fehlt, werden der @var{Name} und @code{#f} zurückgeliefert. Am ersten Bindestrich, auf den eine Ziffer folgt, wird der Versionsteil abgetrennt."
+
+#. type: subsection
+#: doc/guix.texi:8209
+#, no-wrap
+msgid "File Types"
+msgstr "Dateitypen"
+
+#. type: Plain text
+#: doc/guix.texi:8212
+msgid "The procedures below deal with files and file types."
+msgstr "Bei den folgenden Prozeduren geht es um Dateien und Dateitypen."
+
+#. type: deffn
+#: doc/guix.texi:8213
+#, no-wrap
+msgid "{Scheme Procedure} directory-exists? @var{dir}"
+msgstr "{Scheme-Prozedur} directory-exists? @var{Verzeichnis}"
+
+#. type: deffn
+#: doc/guix.texi:8215
+msgid "Return @code{#t} if @var{dir} exists and is a directory."
+msgstr "Liefert @code{#t}, wenn das @var{Verzeichnis} existiert und ein Verzeichnis ist."
+
+#. type: deffn
+#: doc/guix.texi:8217
+#, no-wrap
+msgid "{Scheme Procedure} executable-file? @var{file}"
+msgstr "{Scheme-Prozedur} executable-file? @var{Datei}"
+
+#. type: deffn
+#: doc/guix.texi:8219
+msgid "Return @code{#t} if @var{file} exists and is executable."
+msgstr "Liefert @code{#t}, wenn die @var{Datei} existiert und ausführbar ist."
+
+#. type: deffn
+#: doc/guix.texi:8221
+#, no-wrap
+msgid "{Scheme Procedure} symbolic-link? @var{file}"
+msgstr "{Scheme-Prozedur} symbolic-link? @var{Datei}"
+
+#. type: deffn
+#: doc/guix.texi:8223
+msgid "Return @code{#t} if @var{file} is a symbolic link (aka. a ``symlink'')."
+msgstr "Liefert @code{#t}, wenn die @var{Datei} eine symbolische Verknüpfung ist (auch bekannt als „Symlink“)."
+
+#. type: deffn
+#: doc/guix.texi:8225
+#, no-wrap
+msgid "{Scheme Procedure} elf-file? @var{file}"
+msgstr "{Scheme-Prozedur} elf-file? @var{Datei}"
+
+#. type: deffnx
+#: doc/guix.texi:8226
+#, no-wrap
+msgid "{Scheme Procedure} ar-file? @var{file}"
+msgstr "{Scheme-Prozedur} ar-file? @var{Datei}"
+
+#. type: deffnx
+#: doc/guix.texi:8227
+#, no-wrap
+msgid "{Scheme Procedure} gzip-file? @var{file}"
+msgstr "{Scheme-Prozedur} gzip-file? @var{Datei}"
+
+#. type: deffn
+#: doc/guix.texi:8230
+msgid "Return @code{#t} if @var{file} is, respectively, an ELF file, an @code{ar} archive (such as a @file{.a} static library), or a gzip file."
+msgstr "Liefert @code{#t}, wenn die @var{Datei} jeweils eine ELF-Datei, ein @code{ar}-Archiv (etwa eine statische Bibliothek mit @file{.a}) oder eine gzip-Datei ist."
+
+#. type: deffn
+#: doc/guix.texi:8232
+#, no-wrap
+msgid "{Scheme Procedure} reset-gzip-timestamp @var{file} [#:keep-mtime? #t]"
+msgstr "{Scheme-Prozedur} reset-gzip-timestamp @var{Datei} [#:keep-mtime? #t]"
+
+#. type: deffn
+#: doc/guix.texi:8236
+msgid "If @var{file} is a gzip file, reset its embedded timestamp (as with @command{gzip --no-name}) and return true.  Otherwise return @code{#f}.  When @var{keep-mtime?} is true, preserve @var{file}'s modification time."
+msgstr "Wenn die @var{Datei} eine gzip-Datei ist, wird ihr eingebetteter Zeitstempel zurückgesetzt (wie bei @command{gzip --no-name}) und wahr geliefert. Ansonsten wird @code{#f} geliefert. Wenn @var{keep-mtime?} wahr ist, wird der Zeitstempel der letzten Modifikation von @var{Datei} beibehalten."
+
+#. type: subsection
+#: doc/guix.texi:8238
+#, no-wrap
+msgid "File Manipulation"
+msgstr "Änderungen an Dateien"
+
+#. type: Plain text
+#: doc/guix.texi:8245
+msgid "The following procedures and macros help create, modify, and delete files.  They provide functionality comparable to common shell utilities such as @command{mkdir -p}, @command{cp -r}, @command{rm -r}, and @command{sed}.  They complement Guile's extensive, but low-level, file system interface (@pxref{POSIX,,, guile, GNU Guile Reference Manual})."
+msgstr "Die folgenden Prozeduren und Makros helfen beim Erstellen, Ändern und Löschen von Dateien. Sie machen Funktionen ähnlich zu Shell-Werkzeugen wie @command{mkdir -p}, @command{cp -r}, @command{rm -r} und @command{sed} verfügbar. Sie ergänzen Guiles ausgiebige aber kleinschrittige Dateisystemschnittstelle (siehe @ref{POSIX,,, guile, Referenzhandbuch zu GNU Guile})."
+
+#. type: deffn
+#: doc/guix.texi:8246
+#, no-wrap
+msgid "{Scheme Syntax} with-directory-excursion @var{directory} @var{body}@dots{}"
+msgstr "{Scheme-Syntax} with-directory-excursion @var{Verzeichnis} @var{Rumpf}…"
+
+#. type: deffn
+#: doc/guix.texi:8248
+msgid "Run @var{body} with @var{directory} as the process's current directory."
+msgstr "Den @var{Rumpf} ausführen mit dem @var{Verzeichnis} als aktuellem Verzeichnis des Prozesses."
+
+#. type: deffn
+#: doc/guix.texi:8255
+msgid "Essentially, this macro changes the current directory to @var{directory} before evaluating @var{body}, using @code{chdir} (@pxref{Processes,,, guile, GNU Guile Reference Manual}).  It changes back to the initial directory when the dynamic extent of @var{body} is left, be it @i{via} normal procedure return or @i{via} a non-local exit such as an exception."
+msgstr "Im Grunde ändert das Makro das aktuelle Arbeitsverzeichnis auf @var{Verzeichnis} bevor der @var{Rumpf} ausgewertet wird, mittels @code{chdir} (siehe @ref{Processes,,, guile, Referenzhandbuch zu GNU Guile}). Wenn der dynamische Bereich von @var{Rumpf} wieder verlassen wird, wechselt es wieder ins anfängliche Verzeichnis zurück, egal ob der @var{Rumpf} durch normales Zurückliefern eines Ergebnisses oder durch einen nichtlokalen Sprung wie etwa eine Ausnahme verlassen wurde."
+
+#. type: deffn
+#: doc/guix.texi:8257
+#, no-wrap
+msgid "{Scheme Procedure} mkdir-p @var{dir}"
+msgstr "{Scheme-Prozedur} mkdir-p @var{Verzeichnis}"
+
+#. type: deffn
+#: doc/guix.texi:8259
+msgid "Create directory @var{dir} and all its ancestors."
+msgstr "Das @var{Verzeichnis} und all seine Vorgänger erstellen."
+
+#. type: deffn
+#: doc/guix.texi:8261
+#, no-wrap
+msgid "{Scheme Procedure} install-file @var{file} @var{directory}"
+msgstr "{Scheme-Prozedur} install-file @var{Datei} @var{Verzeichnis}"
+
+#. type: deffn
+#: doc/guix.texi:8264
+msgid "Create @var{directory} if it does not exist and copy @var{file} in there under the same name."
+msgstr "@var{Verzeichnis} erstellen, wenn es noch nicht existiert, und die @var{Datei} mit ihrem Namen dorthin kopieren."
+
+#. type: deffn
+#: doc/guix.texi:8266
+#, no-wrap
+msgid "{Scheme Procedure} make-file-writable @var{file}"
+msgstr "{Scheme-Prozedur} make-file-writable @var{Datei}"
+
+#. type: deffn
+#: doc/guix.texi:8268
+msgid "Make @var{file} writable for its owner."
+msgstr "Dem Besitzer der @var{Datei} Schreibberechtigung darauf erteilen."
+
+#. type: deffn
+#: doc/guix.texi:8270
+#, no-wrap
+msgid "{Scheme Procedure} copy-recursively @var{source} @var{destination} @"
+msgstr "{Scheme-Prozedur} copy-recursively @var{Quelle} @var{Zielort} @"
+
+#. type: deffn
+#: doc/guix.texi:8277
+msgid "[#:log (current-output-port)] [#:follow-symlinks? #f] [#:keep-mtime? #f] Copy @var{source} directory to @var{destination}.  Follow symlinks if @var{follow-symlinks?} is true; otherwise, just preserve them.  When @var{keep-mtime?} is true, keep the modification time of the files in @var{source} on those of @var{destination}.  Write verbose output to the @var{log} port."
+msgstr "[#:log (current-output-port)] [#:follow-symlinks? #f] [#:keep-mtime? #f] Das Verzeichnis @var{Quelle} rekursiv an den @var{Zielort} kopieren. Wenn @var{follow-symlinks?} wahr ist, folgt die Rekursion symbolischen Verknüpfungen, ansonsten werden die Verknüpfungen als solche beibehalten. Wenn @var{keep-mtime?} wahr ist, bleibt der Zeitstempel der letzten Änderung an den Dateien in @var{Quelle} dabei bei denen am @var{Zielort} erhalten. Ein ausführliches Protokoll wird in den bei @var{log} angegebenen Port geschrieben."
+
+#. type: deffn
+#: doc/guix.texi:8279
+#, no-wrap
+msgid "{Scheme Procedure} delete-file-recursively @var{dir} @"
+msgstr "{Scheme-Prozedur} delete-file-recursively @var{Verzeichnis} @"
+
+#. type: deffn
+#: doc/guix.texi:8284
+msgid "[#:follow-mounts? #f] Delete @var{dir} recursively, like @command{rm -rf}, without following symlinks.  Don't follow mount points either, unless @var{follow-mounts?} is true.  Report but ignore errors."
+msgstr "[#:follow-mounts? #f] Das @var{Verzeichnis} rekursiv löschen, wie bei @command{rm -rf}, ohne symbolischen Verknüpfungen zu folgen. Auch Einhängepunkten wird @emph{nicht} gefolgt, außer falls @var{follow-mounts?} wahr ist. Fehler dabei werden angezeigt aber ignoriert."
+
+#. type: deffn
+#: doc/guix.texi:8286
+#, no-wrap
+msgid "{Scheme Syntax} substitute* @var{file} @"
+msgstr "{Scheme-Syntax} substitute* @var{Datei} @"
+
+#. type: deffn
+#: doc/guix.texi:8291
+msgid "((@var{regexp} @var{match-var}@dots{}) @var{body}@dots{}) @dots{} Substitute @var{regexp} in @var{file} by the string returned by @var{body}.  @var{body} is evaluated with each @var{match-var} bound to the corresponding positional regexp sub-expression.  For example:"
+msgstr "((@var{Regexp} @var{Muster-Variable}@dots{}) @var{Rumpf}…) … Den regulären Ausdruck @var{Regexp} in der @var{Datei} durch die durch @var{Rumpf} berechnete Zeichenkette ersetzen. Bei der Auswertung von @var{Rumpf} wird jede @var{Muster-Variable} an den Teilausdruck an der entsprechenden Position der Regexp gebunden. Zum Beispiel:"
+
+#. type: lisp
+#: doc/guix.texi:8298
+#, no-wrap
+msgid ""
+"(substitute* file\n"
+"  ((\"hello\")\n"
+"   \"good morning\\n\")\n"
+"  ((\"foo([a-z]+)bar(.*)$\" all letters end)\n"
+"   (string-append \"baz\" letter end)))\n"
+msgstr ""
+"(substitute* file\n"
+"  ((\"Hallo\")\n"
+"   \"Guten Morgen\\n\")\n"
+"  ((\"foo([a-z]+)bar(.*)$\" alles Buchstaben Ende)\n"
+"   (string-append \"baz\" Buchstaben Ende)))\n"
+
+#. type: deffn
+#: doc/guix.texi:8304
+msgid "Here, anytime a line of @var{file} contains @code{hello}, it is replaced by @code{good morning}.  Anytime a line of @var{file} matches the second regexp, @code{all} is bound to the complete match, @code{letters} is bound to the first sub-expression, and @code{end} is bound to the last one."
+msgstr "Jedes Mal, wenn eine Zeile in der @var{Datei} den Text @code{Hallo} enthält, wird dieser durch @code{Guten Morgen} ersetzt. Jedes Mal, wenn eine Zeile zum zweiten regulären Ausdruck passt, wird @code{alles} an die vollständige Übereinstimmung gebunden, @code{Buchstaben} wird an den ersten Teilausdruck gebunden und @code{Ende} an den letzten."
+
+#. type: deffn
+#: doc/guix.texi:8307
+msgid "When one of the @var{match-var} is @code{_}, no variable is bound to the corresponding match substring."
+msgstr "Wird für eine @var{Muster-Variable} nur @code{_} geschrieben, so wird keine Variable an die Teilzeichenkette an der entsprechenden Position im Muster gebunden."
+
+#. type: deffn
+#: doc/guix.texi:8310
+msgid "Alternatively, @var{file} may be a list of file names, in which case they are all subject to the substitutions."
+msgstr "Alternativ kann statt einer @var{Datei} auch eine Liste von Dateinamen angegeben werden. In diesem Fall wird jede davon den Substitutionen unterzogen."
+
+#. type: deffn
+#: doc/guix.texi:8313
+msgid "Be careful about using @code{$} to match the end of a line; by itself it won't match the terminating newline of a line."
+msgstr "Seien Sie vorsichtig bei der Nutzung von @code{$}, um auf das Ende einer Zeile zu passen. @code{$} passt nämlich @emph{nicht} auf den Zeilenumbruch am Ende einer Zeile."
+
+#. type: subsection
+#: doc/guix.texi:8315
+#, no-wrap
+msgid "File Search"
+msgstr "Dateien suchen"
+
+#. type: cindex
+#: doc/guix.texi:8317
+#, no-wrap
+msgid "file, searching"
+msgstr "Dateien, suchen"
+
+#. type: Plain text
+#: doc/guix.texi:8319
+msgid "This section documents procedures to search and filter files."
+msgstr "Dieser Abschnitt beschreibt Prozeduren, um Dateien zu suchen und zu filtern."
+
+#. type: deffn
+#: doc/guix.texi:8320
+#, no-wrap
+msgid "{Scheme Procedure} file-name-predicate @var{regexp}"
+msgstr "{Scheme-Prozedur} file-name-predicate @var{Regexp}"
+
+#. type: deffn
+#: doc/guix.texi:8323
+msgid "Return a predicate that returns true when passed a file name whose base name matches @var{regexp}."
+msgstr "Liefert ein Prädikat, das gegeben einen Dateinamen, dessen Basisnamen auf @var{Regexp} passt, wahr liefert."
+
+#. type: deffn
+#: doc/guix.texi:8325
+#, no-wrap
+msgid "{Scheme Procedure} find-files @var{dir} [@var{pred}] @"
+msgstr "{Scheme-Prozedur} find-files @var{Verzeichnis} [@var{Prädikat}] @"
+
+#. type: deffn
+#: doc/guix.texi:8336
+msgid "[#:stat lstat] [#:directories? #f] [#:fail-on-error? #f] Return the lexicographically sorted list of files under @var{dir} for which @var{pred} returns true.  @var{pred} is passed two arguments: the absolute file name, and its stat buffer; the default predicate always returns true.  @var{pred} can also be a regular expression, in which case it is equivalent to @code{(file-name-predicate @var{pred})}.  @var{stat} is used to obtain file information; using @code{lstat} means that symlinks are not followed.  If @var{directories?} is true, then directories will also be included.  If @var{fail-on-error?} is true, raise an exception upon error."
+msgstr "[#:stat lstat] [#:directories? #f] [#:fail-on-error? #f] Liefert die lexikografisch sortierte Liste der Dateien innerhalb @var{Verzeichnis}, für die das @var{Prädikat} wahr liefert. An @var{Prädikat} werden zwei Argumente übergeben: Der absolute Dateiname und der zugehörige Stat-Puffer. Das vorgegebene Prädikat liefert immer wahr. Als @var{Prädikat} kann auch ein regulärer Ausdruck benutzt werden; in diesem Fall ist er äquivalent zu @code{(file-name-predicate @var{Prädikat})}. Mit @var{stat} werden Informationen über die Datei ermittelt; wenn dafür  @code{lstat} benutzt wird, bedeutet das, dass symbolische Verknüpfungen nicht verfolgt werden. Wenn @var{directories?} wahr ist, dann werden auch Verzeichnisse aufgezählt. Wenn @var{fail-on-error?} wahr ist, dann wird bei einem Fehler eine Ausnahme ausgelöst."
+
+#. type: Plain text
+#: doc/guix.texi:8340
+msgid "Here are a few examples where we assume that the current directory is the root of the Guix source tree:"
+msgstr "Nun folgen ein paar Beispiele, wobei wir annehmen, dass das aktuelle Verzeichnis der Wurzel des Guix-Quellbaums entspricht."
+
+#. type: lisp
+#: doc/guix.texi:8345
+#, no-wrap
+msgid ""
+";; List all the regular files in the current directory.\n"
+"(find-files \".\")\n"
+"@result{} (\"./.dir-locals.el\" \"./.gitignore\" @dots{})\n"
+"\n"
+msgstr ""
+";; Alle regulären Dateien im aktuellen Verzeichnis auflisten.\n"
+"(find-files \".\")\n"
+"@result{} (\"./.dir-locals.el\" \"./.gitignore\" …)\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:8349
+#, no-wrap
+msgid ""
+";; List all the .scm files under gnu/services.\n"
+"(find-files \"gnu/services\" \"\\\\.scm$\")\n"
+"@result{} (\"gnu/services/admin.scm\" \"gnu/services/audio.scm\" @dots{})\n"
+"\n"
+msgstr ""
+";; Alle .scm-Dateien unter gnu/services auflisten.\n"
+"(find-files \"gnu/services\" \"\\\\.scm$\")\n"
+"@result{} (\"gnu/services/admin.scm\" \"gnu/services/audio.scm\" …)\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:8353
+#, no-wrap
+msgid ""
+";; List ar files in the current directory.\n"
+"(find-files \".\" (lambda (file stat) (ar-file? file)))\n"
+"@result{} (\"./libformat.a\" \"./libstore.a\" @dots{})\n"
+msgstr ""
+";; ar-Dateien im aktuellen Verzeichnis auflisten.\n"
+"(find-files \".\" (lambda (file stat) (ar-file? file)))\n"
+"@result{} (\"./libformat.a\" \"./libstore.a\" …)\n"
+
+#. type: deffn
+#: doc/guix.texi:8355
+#, no-wrap
+msgid "{Scheme Procedure} which @var{program}"
+msgstr "{Scheme-Prozedur} which @var{Programm}"
+
+#. type: deffn
+#: doc/guix.texi:8358
+msgid "Return the complete file name for @var{program} as found in @code{$PATH}, or @code{#f} if @var{program} could not be found."
+msgstr "Liefert den vollständigen Dateinamen für das @var{Programm}, der in @code{$PATH} gesucht wird, oder @code{#f}, wenn das @var{Programm} nicht gefunden werden konnte."
+
+#. type: Plain text
+#: doc/guix.texi:8369
+msgid "The @code{(guix build utils)} also contains tools to manipulate build phases as used by build systems (@pxref{Build Systems}).  Build phases are represented as association lists or ``alists'' (@pxref{Association Lists,,, guile, GNU Guile Reference Manual}) where each key is a symbol naming the phase and the associated value is a procedure (@pxref{Build Phases})."
+msgstr "@code{(guix build utils)} enthält auch Werkzeuge, um die von Erstellungssystemen benutzten Erstellungsphasen zu verändern (siehe @ref{Build Systems}). Erstellungsphasen werden durch assoziative Listen oder „Alists“ repräsentiert (siehe @ref{Association Lists,,, guile, Referenzhandbuch zu GNU Guile}), wo jeder Schlüssel ein Symbol ist, das den Namen der Phase angibt, und der assoziierte Wert eine Prozedur ist (siehe @ref{Build Phases})."
+
+#. type: Plain text
+#: doc/guix.texi:8373
+msgid "Guile core and the @code{(srfi srfi-1)} module both provide tools to manipulate alists.  The @code{(guix build utils)} module complements those with tools written with build phases in mind."
+msgstr "Die zum Kern von Guile („Guile core“) gehörenden Prozeduren und das Modul @code{(srfi srfi-1)} stellen beide Werkzeuge zum Bearbeiten von Alists zur Verfügung. Das Modul @code{(guix build utils)} ergänzt sie um Werkzeuge, die speziell für Erstellungsphasen gedacht sind."
+
+#. type: cindex
+#: doc/guix.texi:8374
+#, no-wrap
+msgid "build phases, modifying"
+msgstr "Erstellungsphasen, Ändern von"
+
+#. type: deffn
+#: doc/guix.texi:8375
+#, no-wrap
+msgid "{Scheme Syntax} modify-phases @var{phases} @var{clause}@dots{}"
+msgstr "{Scheme-Syntax} modify-phases @var{Phasen} @var{Klausel}…"
+
+#. type: deffn
+#: doc/guix.texi:8378
+msgid "Modify @var{phases} sequentially as per each @var{clause}, which may have one of the following forms:"
+msgstr "Die @var{Phasen} der Reihe nach entsprechend jeder @var{Klausel} ändern. Die Klauseln dürfen eine der folgenden Formen haben:"
+
+#. type: lisp
+#: doc/guix.texi:8384
+#, no-wrap
+msgid ""
+"(delete @var{old-phase-name})\n"
+"(replace @var{old-phase-name} @var{new-phase})\n"
+"(add-before @var{old-phase-name} @var{new-phase-name} @var{new-phase})\n"
+"(add-after @var{old-phase-name} @var{new-phase-name} @var{new-phase})\n"
+msgstr ""
+"(delete @var{alter-Phasenname})\n"
+"(replace @var{alter-Phasenname} @var{neue-Phase})\n"
+"(add-before @var{alter-Phasenname} @var{neuer-Phasenname} @var{neue-Phase})\n"
+"(add-after @var{alter-Phasenname} @var{neuer-Phasenname} @var{neue-Phase})\n"
+
+#. type: deffn
+#: doc/guix.texi:8388
+msgid "Where every @var{phase-name} above is an expression evaluating to a symbol, and @var{new-phase} an expression evaluating to a procedure."
+msgstr "Jeder @var{Phasenname} oben ist ein Ausdruck, der zu einem Symbol auswertet, und @var{neue-Phase} ist ein Ausdruck, der zu einer Prozedur auswertet."
+
+#. type: Plain text
+#: doc/guix.texi:8399
+msgid "The example below is taken from the definition of the @code{grep} package.  It adds a phase to run after the @code{install} phase, called @code{fix-egrep-and-fgrep}.  That phase is a procedure (@code{lambda*} is for anonymous procedures) that takes a @code{#:outputs} keyword argument and ignores extra keyword arguments (@pxref{Optional Arguments,,, guile, GNU Guile Reference Manual}, for more on @code{lambda*} and optional and keyword arguments.)  The phase uses @code{substitute*} to modify the installed @file{egrep} and @file{fgrep} scripts so that they refer to @code{grep} by its absolute file name:"
+msgstr "Folgendes Beispiel stammt aus der Definition des @code{grep}-Pakets. Es fügt eine neue Phase namens @code{egrep-und-fgrep-korrigieren} hinzu, die auf die @code{install}-Phase folgen soll. Diese Phase ist eine Prozedur (@code{lambda*} bedeutet, sie ist eine Prozedur ohne eigenen Namen), die ein Schlüsselwort @code{#:outputs} bekommt und die restlichen Schlüsselwortargumente ignoriert (siehe @ref{Optional Arguments,,, guile, Referenzhandbuch zu GNU Guile} für mehr Informationen zu @code{lambda*} und optionalen sowie Schlüsselwort-Argumenten). In der Phase wird @code{substitute*} benutzt, um die installierten Skripte @file{egrep} und @file{fgrep} so zu verändern, dass sie @code{grep} anhand seines absoluten Dateinamens aufrufen:"
+
+#. type: lisp
+#: doc/guix.texi:8413
+#, no-wrap
+msgid ""
+"(modify-phases %standard-phases\n"
+"  (add-after 'install 'fix-egrep-and-fgrep\n"
+"    ;; Patch 'egrep' and 'fgrep' to execute 'grep' via its\n"
+"    ;; absolute file name instead of searching for it in $PATH.\n"
+"    (lambda* (#:key outputs #:allow-other-keys)\n"
+"      (let* ((out (assoc-ref outputs \"out\"))\n"
+"             (bin (string-append out \"/bin\")))\n"
+"        (substitute* (list (string-append bin \"/egrep\")\n"
+"                           (string-append bin \"/fgrep\"))\n"
+"          ((\"^exec grep\")\n"
+"           (string-append \"exec \" bin \"/grep\")))\n"
+"        #t))))\n"
+msgstr ""
+"(modify-phases %standard-phases\n"
+"  (add-after 'install 'egrep-und-fgrep-korrigieren\n"
+"    ;; 'egrep' und 'fgrep' patchen, damit diese 'grep' über den\n"
+"    ;; absoluten Dateinamen ausführen statt es in $PATH zu suchen.\n"
+"    (lambda* (#:key outputs #:allow-other-keys)\n"
+"      (let* ((out (assoc-ref outputs \"out\"))\n"
+"             (bin (string-append out \"/bin\")))\n"
+"        (substitute* (list (string-append bin \"/egrep\")\n"
+"                           (string-append bin \"/fgrep\"))\n"
+"          ((\"^exec grep\")\n"
+"           (string-append \"exec \" bin \"/grep\")))\n"
+"        #t))))\n"
+
+#. type: Plain text
+#: doc/guix.texi:8420
+msgid "In the example below, phases are modified in two ways: the standard @code{configure} phase is deleted, presumably because the package does not have a @file{configure} script or anything similar, and the default @code{install} phase is replaced by one that manually copies the executable files to be installed:"
+msgstr "In dem Beispiel, das nun folgt, werden Phasen auf zweierlei Art geändert: Die Standard-@code{configure}-Phase wird gelöscht, meistens weil das Paket über kein @file{configure}-Skript oder etwas Ähnliches verfügt, und die vorgegebene @code{install}-Phase wird durch eine ersetzt, in der die zu installierenden ausführbaren Dateien manuell kopiert werden."
+
+#. type: lisp
+#: doc/guix.texi:8433
+#, no-wrap
+msgid ""
+"(modify-phases %standard-phases\n"
+"  (delete 'configure)      ;no 'configure' script\n"
+"  (replace 'install\n"
+"    (lambda* (#:key outputs #:allow-other-keys)\n"
+"      ;; The package's Makefile doesn't provide an \"install\"\n"
+"      ;; rule so do it by ourselves.\n"
+"      (let ((bin (string-append (assoc-ref outputs \"out\")\n"
+"                                \"/bin\")))\n"
+"        (install-file \"footswitch\" bin)\n"
+"        (install-file \"scythe\" bin)\n"
+"        #t))))\n"
+msgstr ""
+"(modify-phases %standard-phases\n"
+"  (delete 'configure)      ;kein 'configure'-Skript\n"
+"  (replace 'install\n"
+"    (lambda* (#:key outputs #:allow-other-keys)\n"
+"      ;; Das Makefile im Paket enthält kein \"install\"-Ziel,\n"
+"      ;; also müssen wir es selber machen.\n"
+"      (let ((bin (string-append (assoc-ref outputs \"out\")\n"
+"                                \"/bin\")))\n"
+"        (install-file \"footswitch\" bin)\n"
+"        (install-file \"scythe\" bin)\n"
+"        #t))))\n"
+
+#. type: cindex
+#: doc/guix.texi:8441
 #, no-wrap
 msgid "store items"
 msgstr "Store-Objekte"
 
 #. type: cindex
-#: doc/guix.texi:6822
+#: doc/guix.texi:8442
 #, no-wrap
 msgid "store paths"
 msgstr "Store-Pfade"
 
 #. type: Plain text
-#: doc/guix.texi:6833
+#: doc/guix.texi:8453
 msgid "Conceptually, the @dfn{store} is the place where derivations that have been built successfully are stored---by default, @file{/gnu/store}.  Sub-directories in the store are referred to as @dfn{store items} or sometimes @dfn{store paths}.  The store has an associated database that contains information such as the store paths referred to by each store path, and the list of @emph{valid} store items---results of successful builds.  This database resides in @file{@var{localstatedir}/guix/db}, where @var{localstatedir} is the state directory specified @i{via} @option{--localstatedir} at configure time, usually @file{/var}."
 msgstr "Konzeptionell ist der @dfn{Store} der Ort, wo Ableitungen nach erfolgreicher Erstellung gespeichert werden — standardmäßig finden Sie ihn in @file{/gnu/store}. Unterverzeichnisse im Store werden @dfn{Store-Objekte} oder manchmal auch @dfn{Store-Pfade} genannt. Mit dem Store ist eine Datenbank assoziiert, die Informationen enthält wie zum Beispiel, welche Store-Pfade jeder Store-Pfad jeweils referenziert, und eine Liste, welche Store-Objekte @emph{gültig} sind, also Ergebnisse erfolgreicher Erstellungen sind. Die Datenbank befindet sich in @file{@var{localstatedir}/guix/db}, wobei @var{localstatedir} das mit @option{--localstatedir} bei der Ausführung von „configure“ angegebene Zustandsverzeichnis ist, normalerweise @file{/var}."
 
 #. type: Plain text
-#: doc/guix.texi:6838
+#: doc/guix.texi:8458
 msgid "The store is @emph{always} accessed by the daemon on behalf of its clients (@pxref{Invoking guix-daemon}).  To manipulate the store, clients connect to the daemon over a Unix-domain socket, send requests to it, and read the result---these are remote procedure calls, or RPCs."
 msgstr "Auf den Store wird @emph{nur} durch den Daemon im Auftrag seiner Clients zugegriffen (siehe @ref{Invoking guix-daemon}). Um den Store zu verändern, verbinden sich Clients über einen Unix-Socket mit dem Daemon, senden ihm entsprechende Anfragen und lesen dann dessen Antwort — so etwas nennt sich entfernter Prozeduraufruf (englisch „Remote Procedure Call“ oder kurz RPC)."
 
 #. type: quotation
-#: doc/guix.texi:6843
+#: doc/guix.texi:8463
 msgid "Users must @emph{never} modify files under @file{/gnu/store} directly.  This would lead to inconsistencies and break the immutability assumptions of Guix's functional model (@pxref{Introduction})."
 msgstr "Benutzer dürfen @emph{niemals} Dateien in @file{/gnu/store} direkt verändern, sonst wären diese nicht mehr konsistent und die Grundannahmen im funktionalen Modell von Guix, dass die Objekte unveränderlich sind, wären dahin (siehe @ref{Introduction})."
 
 #. type: quotation
-#: doc/guix.texi:6847
+#: doc/guix.texi:8467
 msgid "@xref{Invoking guix gc, @command{guix gc --verify}}, for information on how to check the integrity of the store and attempt recovery from accidental modifications."
 msgstr "Siehe @ref{Invoking guix gc, @command{guix gc --verify}} für Informationen, wie die Integrität des Stores überprüft und nach versehentlichen Veränderungen unter Umständen wiederhergestellt werden kann."
 
 #. type: Plain text
-#: doc/guix.texi:6854
-msgid "The @code{(guix store)} module provides procedures to connect to the daemon, and to perform RPCs.  These are described below.  By default, @code{open-connection}, and thus all the @command{guix} commands, connect to the local daemon or to the URI specified by the @code{GUIX_DAEMON_SOCKET} environment variable."
-msgstr "Das Modul @code{(guix store)} bietet Prozeduren an, um sich mit dem Daemon zu verbinden und entfernte Prozeduraufrufe durchzuführen. Diese werden im Folgenden beschrieben. Das vorgegebene Verhalten von @code{open-connection}, und daher allen @command{guix}-Befehlen, ist, sich mit dem lokalen Daemon oder dem an der in der Umgebungsvariablen @code{GUIX_DAEMON_SOCKET} angegeben URL zu verbinden."
+#: doc/guix.texi:8474
+msgid "The @code{(guix store)} module provides procedures to connect to the daemon, and to perform RPCs.  These are described below.  By default, @code{open-connection}, and thus all the @command{guix} commands, connect to the local daemon or to the URI specified by the @env{GUIX_DAEMON_SOCKET} environment variable."
+msgstr "Das Modul @code{(guix store)} bietet Prozeduren an, um sich mit dem Daemon zu verbinden und entfernte Prozeduraufrufe durchzuführen. Diese werden im Folgenden beschrieben. Das vorgegebene Verhalten von @code{open-connection}, und daher allen @command{guix}-Befehlen, ist, sich mit dem lokalen Daemon oder dem an der in der Umgebungsvariablen @env{GUIX_DAEMON_SOCKET} angegeben URL zu verbinden."
 
 #. type: defvr
-#: doc/guix.texi:6855
+#: doc/guix.texi:8475
 #, no-wrap
 msgid "{Environment Variable} GUIX_DAEMON_SOCKET"
 msgstr "{Umgebungsvariable} GUIX_DAEMON_SOCKET"
 
 #. type: defvr
-#: doc/guix.texi:6860
+#: doc/guix.texi:8480
 msgid "When set, the value of this variable should be a file name or a URI designating the daemon endpoint.  When it is a file name, it denotes a Unix-domain socket to connect to.  In addition to file names, the supported URI schemes are:"
 msgstr "Ist diese Variable gesetzt, dann sollte ihr Wert ein Dateipfad oder eine URI sein, worüber man sich mit dem Daemon verbinden kann. Ist der Wert der Pfad zu einer Datei, bezeichnet dieser einen Unix-Socket, mit dem eine Verbindung hergestellt werden soll. Ist er eine URI, so werden folgende URI-Schemata unterstützt:"
 
 #. type: code{#1}
-#: doc/guix.texi:6862 doc/guix.texi:20085
+#: doc/guix.texi:8482 doc/guix.texi:22776
 #, no-wrap
 msgid "file"
 msgstr "file"
 
 #. type: itemx
-#: doc/guix.texi:6863
+#: doc/guix.texi:8483
 #, no-wrap
 msgid "unix"
 msgstr "unix"
 
 #. type: table
-#: doc/guix.texi:6867
+#: doc/guix.texi:8487
 msgid "These are for Unix-domain sockets.  @code{file:///var/guix/daemon-socket/socket} is equivalent to @file{/var/guix/daemon-socket/socket}."
 msgstr "Für Unix-Sockets. @code{file:///var/guix/daemon-socket/socket} kann gleichbedeutend auch als @file{/var/guix/daemon-socket/socket} angegeben werden."
 
 #. type: item
-#: doc/guix.texi:6868
+#: doc/guix.texi:8488
 #, no-wrap
 msgid "guix"
 msgstr "guix"
 
 #. type: table
-#: doc/guix.texi:6876
+#: doc/guix.texi:8496
 msgid "These URIs denote connections over TCP/IP, without encryption nor authentication of the remote host.  The URI must specify the host name and optionally a port number (by default port 44146 is used):"
 msgstr "Solche URIs benennen Verbindungen über TCP/IP ohne Verschlüsselung oder Authentifizierung des entfernten Rechners. Die URI muss den Hostnamen, also den Rechnernamen des entfernten Rechners, und optional eine Port-Nummer angeben (sonst wird als Vorgabe der Port 44146 benutzt):"
 
 #. type: example
-#: doc/guix.texi:6879
+#: doc/guix.texi:8499
 #, no-wrap
 msgid "guix://master.guix.example.org:1234\n"
 msgstr "guix://master.guix.example.org:1234\n"
 
 #. type: table
-#: doc/guix.texi:6884
+#: doc/guix.texi:8504
 msgid "This setup is suitable on local networks, such as clusters, where only trusted nodes may connect to the build daemon at @code{master.guix.example.org}."
 msgstr "Diese Konfiguration ist für lokale Netzwerke wie etwa in Rechen-Clustern geeignet, wo sich nur vertrauenswürdige Knoten mit dem Erstellungs-Daemon z.B.@: unter @code{master.guix.example.org} verbinden können."
 
 #. type: table
-#: doc/guix.texi:6888
-msgid "The @code{--listen} option of @command{guix-daemon} can be used to instruct it to listen for TCP connections (@pxref{Invoking guix-daemon, @code{--listen}})."
-msgstr "Die Befehlszeilenoption @code{--listen} von @command{guix-daemon} kann benutzt werden, damit er auf TCP-Verbindungen lauscht (siehe @ref{Invoking guix-daemon, @code{--listen}})."
+#: doc/guix.texi:8508
+msgid "The @option{--listen} option of @command{guix-daemon} can be used to instruct it to listen for TCP connections (@pxref{Invoking guix-daemon, @option{--listen}})."
+msgstr "Die Befehlszeilenoption @option{--listen} von @command{guix-daemon} kann benutzt werden, damit er auf TCP-Verbindungen lauscht (siehe @ref{Invoking guix-daemon, @option{--listen}})."
 
 #. type: item
-#: doc/guix.texi:6889
+#: doc/guix.texi:8509
 #, no-wrap
 msgid "ssh"
 msgstr "ssh"
 
 #. type: cindex
-#: doc/guix.texi:6890
+#: doc/guix.texi:8510
 #, no-wrap
 msgid "SSH access to build daemons"
 msgstr "SSH-Zugriff auf Erstellungs-Daemons"
 
 #. type: table
-#: doc/guix.texi:6896
-msgid "These URIs allow you to connect to a remote daemon over SSH.  This feature requires Guile-SSH (@pxref{Requirements}) and a working @code{guile} binary in @code{PATH} on the destination machine.  It supports public key and GSSAPI authentication.  A typical URL might look like this:"
-msgstr "Mit solchen URIs kann eine Verbindung zu einem entfernten Daemon über SSH hergestellt werden. Diese Funktionalität setzt Guile-SSH voraus (siehe @ref{Requirements}) sowie eine funktionierende @code{guile}-Binärdatei, deren Ort im @code{PATH} der Zielmaschine eingetragen ist. Authentisierung über einen öffentlichen Schlüssel oder GSSAPI ist möglich. Eine typische URL sieht so aus:"
+#: doc/guix.texi:8516
+msgid "These URIs allow you to connect to a remote daemon over SSH.  This feature requires Guile-SSH (@pxref{Requirements}) and a working @command{guile} binary in @env{PATH} on the destination machine.  It supports public key and GSSAPI authentication.  A typical URL might look like this:"
+msgstr "Mit solchen URIs kann eine Verbindung zu einem entfernten Daemon über SSH hergestellt werden. Diese Funktionalität setzt Guile-SSH voraus (siehe @ref{Requirements}) sowie eine funktionierende @command{guile}-Binärdatei, deren Ort im @env{PATH} der Zielmaschine eingetragen ist. Authentisierung über einen öffentlichen Schlüssel oder GSSAPI ist möglich. Eine typische URL sieht so aus:"
 
 #. type: example
-#: doc/guix.texi:6899
+#: doc/guix.texi:8519
 #, no-wrap
 msgid "ssh://charlie@@guix.example.org:22\n"
 msgstr "ssh://charlie@@guix.example.org:22\n"
 
 #. type: table
-#: doc/guix.texi:6903
+#: doc/guix.texi:8523
 msgid "As for @command{guix copy}, the usual OpenSSH client configuration files are honored (@pxref{Invoking guix copy})."
 msgstr "Was @command{guix copy} betrifft, richtet es sich nach den üblichen OpenSSH-Client-Konfigurationsdateien (siehe @ref{Invoking guix copy})."
 
 #. type: defvr
-#: doc/guix.texi:6906
+#: doc/guix.texi:8526
 msgid "Additional URI schemes may be supported in the future."
 msgstr "In Zukunft könnten weitere URI-Schemata unterstützt werden."
 
 #. type: quotation
-#: doc/guix.texi:6913
+#: doc/guix.texi:8533
 msgid "The ability to connect to remote build daemons is considered experimental as of @value{VERSION}.  Please get in touch with us to share any problems or suggestions you may have (@pxref{Contributing})."
 msgstr "Die Fähigkeit, sich mit entfernten Erstellungs-Daemons zu verbinden, sehen wir als experimentell an, Stand @value{VERSION}. Bitte diskutieren Sie mit uns jegliche Probleme oder Vorschläge, die Sie haben könnten (siehe @ref{Contributing})."
 
 #. type: deffn
-#: doc/guix.texi:6916
+#: doc/guix.texi:8536
 #, no-wrap
 msgid "{Scheme Procedure} open-connection [@var{uri}] [#:reserve-space? #t]"
 msgstr "{Scheme-Prozedur} open-connection [@var{Uri}] [#:reserve-space? #t]"
 
 #. type: deffn
-#: doc/guix.texi:6921
+#: doc/guix.texi:8541
 msgid "Connect to the daemon over the Unix-domain socket at @var{uri} (a string).  When @var{reserve-space?} is true, instruct it to reserve a little bit of extra space on the file system so that the garbage collector can still operate should the disk become full.  Return a server object."
 msgstr "Sich mit dem Daemon über den Unix-Socket an @var{Uri} verbinden (einer Zeichenkette). Wenn @var{reserve-space?} wahr ist, lässt ihn das etwas zusätzlichen Speicher im Dateisystem reservieren, damit der Müllsammler auch dann noch funktioniert, wenn die Platte zu voll wird. Liefert ein Server-Objekt."
 
 #. type: deffn
-#: doc/guix.texi:6924
+#: doc/guix.texi:8544
 msgid "@var{file} defaults to @code{%default-socket-path}, which is the normal location given the options that were passed to @command{configure}."
 msgstr "@var{Uri} nimmt standardmäßig den Wert von @code{%default-socket-path} an, was dem bei der Installation mit dem Aufruf von @command{configure} ausgewählten Vorgabeort entspricht, gemäß den Befehlszeilenoptionen, mit denen @command{configure} aufgerufen wurde."
 
 #. type: deffn
-#: doc/guix.texi:6926
+#: doc/guix.texi:8546
 #, no-wrap
 msgid "{Scheme Procedure} close-connection @var{server}"
 msgstr "{Scheme-Prozedur} close-connection @var{Server}"
 
 #. type: deffn
-#: doc/guix.texi:6928
+#: doc/guix.texi:8548
 msgid "Close the connection to @var{server}."
 msgstr "Die Verbindung zum @var{Server} trennen."
 
 #. type: defvr
-#: doc/guix.texi:6930
+#: doc/guix.texi:8550
 #, no-wrap
 msgid "{Scheme Variable} current-build-output-port"
 msgstr "{Scheme-Variable} current-build-output-port"
 
 #. type: defvr
-#: doc/guix.texi:6933
+#: doc/guix.texi:8553
 msgid "This variable is bound to a SRFI-39 parameter, which refers to the port where build and error logs sent by the daemon should be written."
 msgstr "Diese Variable ist an einen SRFI-39-Parameter gebunden, der auf den Scheme-Port verweist, an den vom Daemon empfangene Erstellungsprotokolle und Fehlerprotokolle geschrieben werden sollen."
 
 #. type: Plain text
-#: doc/guix.texi:6937
+#: doc/guix.texi:8557
 msgid "Procedures that make RPCs all take a server object as their first argument."
 msgstr "Prozeduren, die entfernte Prozeduraufrufe durchführen, nehmen immer ein Server-Objekt als ihr erstes Argument."
 
 #. type: deffn
-#: doc/guix.texi:6938
+#: doc/guix.texi:8558
 #, no-wrap
 msgid "{Scheme Procedure} valid-path? @var{server} @var{path}"
 msgstr "{Scheme-Prozedur} valid-path? @var{Server} @var{Pfad}"
 
 #. type: cindex
-#: doc/guix.texi:6939
+#: doc/guix.texi:8559
 #, no-wrap
 msgid "invalid store items"
 msgstr "ungültige Store-Objekte"
 
 #. type: deffn
-#: doc/guix.texi:6944
-msgid "Return @code{#t} when @var{path} designates a valid store item and @code{#f} otherwise (an invalid item may exist on disk but still be invalid, for instance because it is the result of an aborted or failed build.)"
+#: doc/guix.texi:8564
+msgid "Return @code{#t} when @var{path} designates a valid store item and @code{#f} otherwise (an invalid item may exist on disk but still be invalid, for instance because it is the result of an aborted or failed build)."
 msgstr "Liefert @code{#t}, wenn der @var{Pfad} ein gültiges Store-Objekt benennt, und sonst @code{#f} (ein ungültiges Objekt kann auf der Platte gespeichert sein, tatsächlich aber ungültig sein, zum Beispiel weil es das Ergebnis einer abgebrochenen oder fehlgeschlagenen Erstellung ist)."
 
 #. type: deffn
-#: doc/guix.texi:6947
+#: doc/guix.texi:8567
 msgid "A @code{&store-protocol-error} condition is raised if @var{path} is not prefixed by the store directory (@file{/gnu/store})."
 msgstr "Ein @code{&store-protocol-error}-Fehlerzustand wird ausgelöst, wenn der @var{Pfad} nicht mit dem Store-Verzeichnis als Präfix beginnt (@file{/gnu/store})."
 
 #. type: deffn
-#: doc/guix.texi:6949
+#: doc/guix.texi:8569
 #, no-wrap
 msgid "{Scheme Procedure} add-text-to-store @var{server} @var{name} @var{text} [@var{references}]"
 msgstr "{Scheme-Prozedur} add-text-to-store @var{Server} @var{Name} @var{Text} [@var{Referenzen}]"
 
 #. type: deffn
-#: doc/guix.texi:6953
+#: doc/guix.texi:8573
 msgid "Add @var{text} under file @var{name} in the store, and return its store path.  @var{references} is the list of store paths referred to by the resulting store path."
 msgstr "Den @var{Text} im Store in einer Datei namens @var{Name} ablegen und ihren Store-Pfad zurückliefern. @var{Referenzen} ist die Liste der Store-Pfade, die der Store-Pfad dann referenzieren soll."
 
 #. type: deffn
-#: doc/guix.texi:6955
+#: doc/guix.texi:8575
 #, no-wrap
 msgid "{Scheme Procedure} build-derivations @var{store} @var{derivations} @"
 msgstr "{Scheme-Prozedur} build-derivations @var{Store} @var{Ableitungen} @"
 
 #. type: deffn
-#: doc/guix.texi:6960
+#: doc/guix.texi:8580
 msgid "[@var{mode}] Build @var{derivations}, a list of @code{<derivation>} objects, @file{.drv} file names, or derivation/output pairs, using the specified @var{mode}---@code{(build-mode normal)} by default."
 msgstr "[@var{Modus}] Die @var{Ableitungen} erstellen (eine Liste von @code{<derivation>}-Objekten, @file{.drv}-Dateinamen oder Paaren aus je Ableitung und Ausgabe. Dabei gilt der angegebene @var{Modus} — vorgegeben ist @code{(build-mode normal)}."
 
 #. type: Plain text
-#: doc/guix.texi:6966
+#: doc/guix.texi:8586
 msgid "Note that the @code{(guix monads)} module provides a monad as well as monadic versions of the above procedures, with the goal of making it more convenient to work with code that accesses the store (@pxref{The Store Monad})."
 msgstr "Es sei erwähnt, dass im Modul @code{(guix monads)} eine Monade sowie monadische Versionen obiger Prozeduren angeboten werden, damit an Code, der auf den Store zugreift, bequemer gearbeitet werden kann (siehe @ref{The Store Monad})."
 
 #. type: i{#1}
-#: doc/guix.texi:6969
+#: doc/guix.texi:8589
 msgid "This section is currently incomplete."
 msgstr "Dieser Abschnitt ist im Moment noch unvollständig."
 
 #. type: cindex
-#: doc/guix.texi:6973
+#: doc/guix.texi:8593
 #, no-wrap
 msgid "derivations"
 msgstr "Ableitungen"
 
 #. type: Plain text
-#: doc/guix.texi:6977
+#: doc/guix.texi:8597
 msgid "Low-level build actions and the environment in which they are performed are represented by @dfn{derivations}.  A derivation contains the following pieces of information:"
 msgstr "Systemnahe Erstellungsaktionen sowie die Umgebung, in der selbige durchzuführen sind, werden durch @dfn{Ableitungen} dargestellt. Eine Ableitung enthält folgende Informationen:"
 
 #. type: itemize
-#: doc/guix.texi:6982
+#: doc/guix.texi:8602
 msgid "The outputs of the derivation---derivations produce at least one file or directory in the store, but may produce more."
 msgstr "Die Ausgaben, die die Ableitung hat. Ableitungen erzeugen mindestens eine Datei bzw. ein Verzeichnis im Store, können aber auch mehrere erzeugen."
 
 #. type: cindex
-#: doc/guix.texi:6984
+#: doc/guix.texi:8604
 #, no-wrap
 msgid "build-time dependencies"
 msgstr "Erstellungszeitabhängigkeiten"
 
 #. type: cindex
-#: doc/guix.texi:6985
+#: doc/guix.texi:8605
 #, no-wrap
 msgid "dependencies, build-time"
 msgstr "Abhängigkeiten zur Erstellungszeit"
 
 #. type: itemize
-#: doc/guix.texi:6989
-msgid "The inputs of the derivations---i.e., its build-time dependencies---which may be other derivations or plain files in the store (patches, build scripts, etc.)"
+#: doc/guix.texi:8609
+msgid "The inputs of the derivations---i.e., its build-time dependencies---which may be other derivations or plain files in the store (patches, build scripts, etc.)."
 msgstr "Die Eingaben der Ableitung, also Abhängigkeiten zur Zeit ihrer Erstellung, die entweder andere Ableitungen oder einfache Dateien im Store sind (wie Patches, Erstellungsskripts usw.)."
 
 #. type: itemize
-#: doc/guix.texi:6992
+#: doc/guix.texi:8612
 msgid "The system type targeted by the derivation---e.g., @code{x86_64-linux}."
 msgstr "Das System, wofür mit der Ableitung erstellt wird, also ihr Ziel — z.B.@: @code{x86_64-linux}."
 
 #. type: itemize
-#: doc/guix.texi:6996
+#: doc/guix.texi:8616
 msgid "The file name of a build script in the store, along with the arguments to be passed."
 msgstr "Der Dateiname eines Erstellungsskripts im Store, zusammen mit den Argumenten, mit denen es aufgerufen werden soll."
 
 #. type: itemize
-#: doc/guix.texi:6999
+#: doc/guix.texi:8619
 msgid "A list of environment variables to be defined."
 msgstr "Eine Liste zu definierender Umgebungsvariabler."
 
 #. type: cindex
-#: doc/guix.texi:7002
+#: doc/guix.texi:8622
 #, no-wrap
 msgid "derivation path"
 msgstr "Ableitungspfad"
 
 #. type: Plain text
-#: doc/guix.texi:7010
-msgid "Derivations allow clients of the daemon to communicate build actions to the store.  They exist in two forms: as an in-memory representation, both on the client- and daemon-side, and as files in the store whose name end in @code{.drv}---these files are referred to as @dfn{derivation paths}.  Derivations paths can be passed to the @code{build-derivations} procedure to perform the build actions they prescribe (@pxref{The Store})."
-msgstr "Ableitungen ermöglichen es den Clients des Daemons, diesem Erstellungsaktionen für den Store mitzuteilen. Es gibt davon zwei Arten, sowohl Darstellungen im Arbeitsspeicher jeweils für Client und Daemon, als auch Dateien im Store, deren Namen auf @code{.drv} enden — diese Dateien werden als @dfn{Ableitungspfade} bezeichnet. Ableitungspfade können an die Prozedur @code{build-derivations} übergeben werden, damit die darin niedergeschriebenen Erstellungsaktionen durchgeführt werden (siehe @ref{The Store})."
+#: doc/guix.texi:8630
+msgid "Derivations allow clients of the daemon to communicate build actions to the store.  They exist in two forms: as an in-memory representation, both on the client- and daemon-side, and as files in the store whose name end in @file{.drv}---these files are referred to as @dfn{derivation paths}.  Derivations paths can be passed to the @code{build-derivations} procedure to perform the build actions they prescribe (@pxref{The Store})."
+msgstr "Ableitungen ermöglichen es den Clients des Daemons, diesem Erstellungsaktionen für den Store mitzuteilen. Es gibt davon zwei Arten, sowohl Darstellungen im Arbeitsspeicher jeweils für Client und Daemon, als auch Dateien im Store, deren Namen auf @file{.drv} enden — diese Dateien werden als @dfn{Ableitungspfade} bezeichnet. Ableitungspfade können an die Prozedur @code{build-derivations} übergeben werden, damit die darin niedergeschriebenen Erstellungsaktionen durchgeführt werden (siehe @ref{The Store})."
 
 #. type: cindex
-#: doc/guix.texi:7011
+#: doc/guix.texi:8631
 #, no-wrap
 msgid "fixed-output derivations"
 msgstr "Ableitungen mit fester Ausgabe"
 
 #. type: Plain text
-#: doc/guix.texi:7018
+#: doc/guix.texi:8638
 msgid "Operations such as file downloads and version-control checkouts for which the expected content hash is known in advance are modeled as @dfn{fixed-output derivations}.  Unlike regular derivations, the outputs of a fixed-output derivation are independent of its inputs---e.g., a source code download produces the same result regardless of the download method and tools being used."
 msgstr "Operationen wie das Herunterladen von Dateien und Checkouts von unter Versionskontrolle stehenden Quelldateien, bei denen der Hash des Inhalts im Voraus bekannt ist, werden als @dfn{Ableitungen mit fester Ausgabe} modelliert. Anders als reguläre Ableitungen sind die Ausgaben von Ableitungen mit fester Ausgabe unabhängig von ihren Eingaben — z.B.@: liefert das Herunterladen desselben Quellcodes dasselbe Ergebnis unabhängig davon, mit welcher Methode und welchen Werkzeugen er heruntergeladen wurde."
 
 #. type: item
-#: doc/guix.texi:7019 doc/guix.texi:10139
+#: doc/guix.texi:8639 doc/guix.texi:12003
 #, no-wrap
 msgid "references"
 msgstr "references"
 
 #. type: cindex
-#: doc/guix.texi:7020
+#: doc/guix.texi:8640
 #, no-wrap
 msgid "run-time dependencies"
 msgstr "Laufzeitabhängigkeiten"
 
 #. type: cindex
-#: doc/guix.texi:7021
+#: doc/guix.texi:8641
 #, no-wrap
 msgid "dependencies, run-time"
 msgstr "Abhängigkeiten, zur Laufzeit"
 
 #. type: Plain text
-#: doc/guix.texi:7028
+#: doc/guix.texi:8648
 msgid "The outputs of derivations---i.e., the build results---have a set of @dfn{references}, as reported by the @code{references} RPC or the @command{guix gc --references} command (@pxref{Invoking guix gc}).  References are the set of run-time dependencies of the build results.  References are a subset of the inputs of the derivation; this subset is automatically computed by the build daemon by scanning all the files in the outputs."
 msgstr "Den Ausgaben von Ableitungen — d.h.@: Erstellungergebnissen — ist eine Liste von @dfn{Referenzen} zugeordnet, die auch der entfernte Prozeduraufruf @code{references} oder der Befehl @command{guix gc --references} liefert (siehe @ref{Invoking guix gc}). Referenzen sind die Menge der Laufzeitabhängigkeiten von Erstellungsergebnissen. Referenzen sind eine Teilmenge der Eingaben von Ableitungen; die Teilmenge wird automatisch ermittelt, indem der Erstellungsdaemon alle Dateien unter den Ausgaben nach Referenzen durchsucht."
 
 #. type: Plain text
-#: doc/guix.texi:7033
+#: doc/guix.texi:8653
 msgid "The @code{(guix derivations)} module provides a representation of derivations as Scheme objects, along with procedures to create and otherwise manipulate derivations.  The lowest-level primitive to create a derivation is the @code{derivation} procedure:"
 msgstr "Das Modul @code{(guix derivations)} stellt eine Repräsentation von Ableitungen als Scheme-Objekte zur Verfügung, zusammen mit Prozeduren, um Ableitungen zu erzeugen und zu manipulieren. Die am wenigsten abstrahierte Methode, eine Ableitung zu erzeugen, ist mit der Prozedur @code{derivation}:"
 
 #. type: deffn
-#: doc/guix.texi:7034
+#: doc/guix.texi:8654
 #, no-wrap
 msgid "{Scheme Procedure} derivation @var{store} @var{name} @var{builder} @"
 msgstr "{Scheme-Prozedur} derivation @var{Store} @var{Name} @var{Ersteller} @"
 
 #. type: deffn
-#: doc/guix.texi:7043
+#: doc/guix.texi:8663
 msgid "@var{args} [#:outputs '(\"out\")] [#:hash #f] [#:hash-algo #f] @ [#:recursive? #f] [#:inputs '()] [#:env-vars '()] @ [#:system (%current-system)] [#:references-graphs #f] @ [#:allowed-references #f] [#:disallowed-references #f] @ [#:leaked-env-vars #f] [#:local-build? #f] @ [#:substitutable? #t] [#:properties '()] Build a derivation with the given arguments, and return the resulting @code{<derivation>} object."
 msgstr "@var{Argumente} [#:outputs '(\"out\")] [#:hash #f] [#:hash-algo #f] @ [#:recursive? #f] [#:inputs '()] [#:env-vars '()] @ [#:system (%current-system)] [#:references-graphs #f] @ [#:allowed-references #f] [#:disallowed-references #f] @ [#:leaked-env-vars #f] [#:local-build? #f] @ [#:substitutable? #t] [#:properties '()] Eine Ableitungen mit den @var{Argumente}n erstellen und das resultierende @code{<derivation>}-Objekt liefern."
 
 #. type: deffn
-#: doc/guix.texi:7050
+#: doc/guix.texi:8670
 msgid "When @var{hash} and @var{hash-algo} are given, a @dfn{fixed-output derivation} is created---i.e., one whose result is known in advance, such as a file download.  If, in addition, @var{recursive?} is true, then that fixed output may be an executable file or a directory and @var{hash} must be the hash of an archive containing this output."
 msgstr "Wurden @var{hash} und @var{hash-algo} angegeben, wird eine @dfn{Ableitung mit fester Ausgabe} erzeugt — d.h.@: eine, deren Ausgabe schon im Voraus bekannt ist, wie z.B.@: beim Herunterladen einer Datei. Wenn des Weiteren auch @var{recursive?} wahr ist, darf die Ableitung mit fester Ausgabe eine ausführbare Datei oder ein Verzeichnis sein und @var{hash} muss die Prüfsumme eines Archivs mit dieser Ausgabe sein."
 
 #. type: deffn
-#: doc/guix.texi:7055
+#: doc/guix.texi:8675
 msgid "When @var{references-graphs} is true, it must be a list of file name/store path pairs.  In that case, the reference graph of each store path is exported in the build environment in the corresponding file, in a simple text format."
 msgstr "Ist @var{references-graphs} wahr, dann muss es eine Liste von Paaren aus je einem Dateinamen und einem Store-Pfad sein. In diesem Fall wird der Referenzengraph jedes Store-Pfads in einer Datei mit dem angegebenen Namen in der Erstellungsumgebung zugänglich gemacht, in einem einfachen Text-Format."
 
 #. type: deffn
-#: doc/guix.texi:7060
+#: doc/guix.texi:8680
 msgid "When @var{allowed-references} is true, it must be a list of store items or outputs that the derivation's output may refer to.  Likewise, @var{disallowed-references}, if true, must be a list of things the outputs may @emph{not} refer to."
 msgstr "Ist @var{allowed-references} ein wahr, muss es eine Liste von Store-Objekten oder Ausgaben sein, die die Ausgabe der Ableitung referenzieren darf. Ebenso muss @var{disallowed-references}, wenn es auf wahr gesetzt ist, eine Liste von Dingen bezeichnen, die die Ausgaben @emph{nicht} referenzieren dürfen."
 
 #. type: deffn
-#: doc/guix.texi:7067
+#: doc/guix.texi:8687
 msgid "When @var{leaked-env-vars} is true, it must be a list of strings denoting environment variables that are allowed to ``leak'' from the daemon's environment to the build environment.  This is only applicable to fixed-output derivations---i.e., when @var{hash} is true.  The main use is to allow variables such as @code{http_proxy} to be passed to derivations that download files."
 msgstr "Ist @var{leaked-env-vars} wahr, muss es eine Liste von Zeichenketten sein, die Umgebungsvariable benennen, die aus der Umgebung des Daemons in die Erstellungsumgebung überlaufen — ein „Leck“, englisch „leak“. Dies kann nur in Ableitungen mit fester Ausgabe benutzt werden, also wenn @var{hash} wahr ist. So ein Leck kann zum Beispiel benutzt werden, um Variable wie @code{http_proxy} an Ableitungen zu übergeben, die darüber Dateien herunterladen."
 
 #. type: deffn
-#: doc/guix.texi:7072
+#: doc/guix.texi:8692
 msgid "When @var{local-build?} is true, declare that the derivation is not a good candidate for offloading and should rather be built locally (@pxref{Daemon Offload Setup}).  This is the case for small derivations where the costs of data transfers would outweigh the benefits."
 msgstr "Ist @var{local-build?} wahr, wird die Ableitung als schlechter Kandidat für das Auslagern deklariert, der besser lokal erstellt werden sollte (siehe @ref{Daemon Offload Setup}). Dies betrifft kleine Ableitungen, wo das Übertragen der Daten aufwendiger als ihre Erstellung ist."
 
 #. type: deffn
-#: doc/guix.texi:7077
+#: doc/guix.texi:8697
 msgid "When @var{substitutable?} is false, declare that substitutes of the derivation's output should not be used (@pxref{Substitutes}).  This is useful, for instance, when building packages that capture details of the host CPU instruction set."
 msgstr "Ist @var{substitutable?} falsch, wird deklariert, dass für die Ausgabe der Ableitung keine Substitute benutzt werden sollen (siehe @ref{Substitutes}). Das ist nützlich, wenn Pakete erstellt werden, die Details über den Prozessorbefehlssatz des Wirtssystems auslesen."
 
 #. type: deffn
-#: doc/guix.texi:7080
+#: doc/guix.texi:8700
 msgid "@var{properties} must be an association list describing ``properties'' of the derivation.  It is kept as-is, uninterpreted, in the derivation."
 msgstr "@var{properties} muss eine assoziative Liste enthalten, die „Eigenschaften“ der Ableitungen beschreibt. Sie wird genau so, wie sie ist, in der Ableitung gespeichert."
 
 #. type: Plain text
-#: doc/guix.texi:7086
+#: doc/guix.texi:8706
 msgid "Here's an example with a shell script as its builder, assuming @var{store} is an open connection to the daemon, and @var{bash} points to a Bash executable in the store:"
 msgstr "Hier ist ein Beispiel mit einem Shell-Skript, das als Ersteller benutzt wird. Es wird angenommen, dass @var{Store} eine offene Verbindung zum Daemon ist und @var{bash} auf eine ausführbare Bash im Store verweist:"
 
 #. type: lisp
-#: doc/guix.texi:7091
+#: doc/guix.texi:8711
 #, no-wrap
 msgid ""
 "(use-modules (guix utils)\n"
@@ -13785,7 +16538,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:7100
+#: doc/guix.texi:8720
 #, no-wrap
 msgid ""
 "(let ((builder   ; add the Bash script to the store\n"
@@ -13807,48 +16560,48 @@ msgstr ""
 "@result{} #<derivation /gnu/store/…-foo.drv => /gnu/store/…-foo>\n"
 
 #. type: Plain text
-#: doc/guix.texi:7107
+#: doc/guix.texi:8727
 msgid "As can be guessed, this primitive is cumbersome to use directly.  A better approach is to write build scripts in Scheme, of course! The best course of action for that is to write the build code as a ``G-expression'', and to pass it to @code{gexp->derivation}.  For more information, @pxref{G-Expressions}."
 msgstr "Wie man sehen kann, ist es umständlich, diese grundlegende Methode direkt zu benutzen. Natürlich ist es besser, Erstellungsskripts in Scheme zu schreiben! Am besten schreibt man den Erstellungscode als „G-Ausdruck“ und übergibt ihn an @code{gexp->derivation}. Mehr Informationen finden Sie im Abschnitt @ref{G-Expressions}."
 
 #. type: Plain text
-#: doc/guix.texi:7112
+#: doc/guix.texi:8732
 msgid "Once upon a time, @code{gexp->derivation} did not exist and constructing derivations with build code written in Scheme was achieved with @code{build-expression->derivation}, documented below.  This procedure is now deprecated in favor of the much nicer @code{gexp->derivation}."
 msgstr "Doch es gab einmal eine Zeit, zu der @code{gexp->derivation} noch nicht existiert hatte und wo das Zusammenstellen von Ableitungen mit Scheme-Erstellungscode noch mit @code{build-expression->derivation} bewerkstelligt wurde, was im Folgenden beschrieben wird. Diese Prozedur gilt als veraltet und man sollte nunmehr die viel schönere Prozedur @code{gexp->derivation} benutzen."
 
 #. type: deffn
-#: doc/guix.texi:7113
+#: doc/guix.texi:8733
 #, no-wrap
 msgid "{Scheme Procedure} build-expression->derivation @var{store} @"
 msgstr "{Scheme-Prozedur} build-expression->derivation @var{Store} @"
 
 #. type: deffn
-#: doc/guix.texi:7129
+#: doc/guix.texi:8749
 msgid "@var{name} @var{exp} @ [#:system (%current-system)] [#:inputs '()] @ [#:outputs '(\"out\")] [#:hash #f] [#:hash-algo #f] @ [#:recursive? #f] [#:env-vars '()] [#:modules '()] @ [#:references-graphs #f] [#:allowed-references #f] @ [#:disallowed-references #f] @ [#:local-build? #f] [#:substitutable? #t] [#:guile-for-build #f] Return a derivation that executes Scheme expression @var{exp} as a builder for derivation @var{name}.  @var{inputs} must be a list of @code{(name drv-path sub-drv)} tuples; when @var{sub-drv} is omitted, @code{\"out\"} is assumed.  @var{modules} is a list of names of Guile modules from the current search path to be copied in the store, compiled, and made available in the load path during the execution of @var{exp}---e.g., @code{((guix build utils) (guix build gnu-build-system))}."
 msgstr "@var{Name} @var{Ausdruck} @ [#:system (%current-system)] [#:inputs '()] @ [#:outputs '(\"out\")] [#:hash #f] [#:hash-algo #f] @ [#:recursive? #f] [#:env-vars '()] [#:modules '()] @ [#:references-graphs #f] [#:allowed-references #f] @ [#:disallowed-references #f] @ [#:local-build? #f] [#:substitutable? #t] [#:guile-for-build #f] Liefert eine Ableitung, die den Scheme-Ausdruck @var{Ausdruck} als Ersteller einer Ableitung namens @var{Name} ausführt. @var{inputs} muss die Liste der Eingaben enthalten, jeweils als Tupel @code{(Name Ableitungspfad Unterableitung)}; wird keine @var{Unterableitung} angegeben, wird @code{\"out\"} angenommen. @var{Module} ist eine Liste der Namen von Guile-Modulen im momentanen Suchpfad, die in den Store kopiert, kompiliert und zur Verfügung gestellt werden, wenn der @var{Ausdruck} ausgeführt wird — z.B.@: @code{((guix build utils) (guix build gnu-build-system))}."
 
 #. type: deffn
-#: doc/guix.texi:7137
+#: doc/guix.texi:8757
 msgid "@var{exp} is evaluated in an environment where @code{%outputs} is bound to a list of output/path pairs, and where @code{%build-inputs} is bound to a list of string/output-path pairs made from @var{inputs}.  Optionally, @var{env-vars} is a list of string pairs specifying the name and value of environment variables visible to the builder.  The builder terminates by passing the result of @var{exp} to @code{exit}; thus, when @var{exp} returns @code{#f}, the build is considered to have failed."
 msgstr "Der @var{Ausdruck} wird in einer Umgebung ausgewertet, in der @code{%outputs} an eine Liste von Ausgabe-/Pfad-Paaren gebunden wurde und in der @code{%build-inputs} an eine Liste von Zeichenkette-/Ausgabepfad-Paaren gebunden wurde, die aus den @var{inputs}-Eingaben konstruiert worden ist. Optional kann in @var{env-vars} eine Liste von Paaren aus Zeichenketten stehen, die Name und Wert von für den Ersteller sichtbaren Umgebungsvariablen angeben. Der Ersteller terminiert, indem er @code{exit} mit dem Ergebnis des @var{Ausdruck}s aufruft; wenn also der @var{Ausdruck} den Wert @code{#f} liefert, wird angenommen, dass die Erstellung fehlgeschlagen ist."
 
 #. type: deffn
-#: doc/guix.texi:7141
+#: doc/guix.texi:8761
 msgid "@var{exp} is built using @var{guile-for-build} (a derivation).  When @var{guile-for-build} is omitted or is @code{#f}, the value of the @code{%guile-for-build} fluid is used instead."
 msgstr "@var{Ausdruck} wird mit einer Ableitung @var{guile-for-build} erstellt. Wird kein @var{guile-for-build} angegeben oder steht es auf @code{#f}, wird stattdessen der Wert der Fluiden @code{%guile-for-build} benutzt."
 
 #. type: deffn
-#: doc/guix.texi:7146
+#: doc/guix.texi:8766
 msgid "See the @code{derivation} procedure for the meaning of @var{references-graphs}, @var{allowed-references}, @var{disallowed-references}, @var{local-build?}, and @var{substitutable?}."
 msgstr "Siehe die Erklärungen zur Prozedur @code{derivation} für die Bedeutung von @var{references-graphs}, @var{allowed-references}, @var{disallowed-references}, @var{local-build?} und @var{substitutable?}."
 
 #. type: Plain text
-#: doc/guix.texi:7151
+#: doc/guix.texi:8771
 msgid "Here's an example of a single-output derivation that creates a directory containing one file:"
 msgstr "Hier ist ein Beispiel einer Ableitung mit nur einer Ausgabe, die ein Verzeichnis erzeugt, in dem eine einzelne Datei enthalten ist:"
 
 #. type: lisp
-#: doc/guix.texi:7159
+#: doc/guix.texi:8779
 #, no-wrap
 msgid ""
 "(let ((builder '(let ((out (assoc-ref %outputs \"out\")))\n"
@@ -13869,51 +16622,51 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:7161
+#: doc/guix.texi:8781
 #, no-wrap
 msgid "@result{} #<derivation /gnu/store/@dots{}-goo.drv => @dots{}>\n"
 msgstr "@result{} #<derivation /gnu/store/…-goo.drv => …>\n"
 
 #. type: cindex
-#: doc/guix.texi:7167
+#: doc/guix.texi:8787
 #, no-wrap
 msgid "monad"
 msgstr "Monade"
 
 #. type: Plain text
-#: doc/guix.texi:7173
+#: doc/guix.texi:8793
 msgid "The procedures that operate on the store described in the previous sections all take an open connection to the build daemon as their first argument.  Although the underlying model is functional, they either have side effects or depend on the current state of the store."
 msgstr "Die auf dem Store arbeitenden Prozeduren, die in den vorigen Abschnitten beschrieben wurden, nehmen alle eine offene Verbindung zum Erstellungs-Daemon als ihr erstes Argument entgegen. Obwohl das ihnen zu Grunde liegende Modell funktional ist, weisen sie doch alle Nebenwirkungen auf oder hängen vom momentanen Zustand des Stores ab."
 
 #. type: Plain text
-#: doc/guix.texi:7179
+#: doc/guix.texi:8799
 msgid "The former is inconvenient: the connection to the build daemon has to be carried around in all those functions, making it impossible to compose functions that do not take that parameter with functions that do.  The latter can be problematic: since store operations have side effects and/or depend on external state, they have to be properly sequenced."
 msgstr "Ersteres ist umständlich, weil die Verbindung zum Erstellungs-Daemon zwischen all diesen Funktionen durchgereicht werden muss, so dass eine Komposition mit Funktionen ohne diesen Parameter unmöglich wird. Letzteres kann problematisch sein, weil Operationen auf dem Store Nebenwirkungen und/oder Abhängigkeiten von externem Zustand haben und ihre Ausführungsreihenfolge deswegen eine Rolle spielt."
 
 #. type: cindex
-#: doc/guix.texi:7180
+#: doc/guix.texi:8800
 #, no-wrap
 msgid "monadic values"
 msgstr "monadische Werte"
 
 #. type: cindex
-#: doc/guix.texi:7181
+#: doc/guix.texi:8801
 #, no-wrap
 msgid "monadic functions"
 msgstr "monadische Funktionen"
 
 #. type: Plain text
-#: doc/guix.texi:7191
+#: doc/guix.texi:8811
 msgid "This is where the @code{(guix monads)} module comes in.  This module provides a framework for working with @dfn{monads}, and a particularly useful monad for our uses, the @dfn{store monad}.  Monads are a construct that allows two things: associating ``context'' with values (in our case, the context is the store), and building sequences of computations (here computations include accesses to the store).  Values in a monad---values that carry this additional context---are called @dfn{monadic values}; procedures that return such values are called @dfn{monadic procedures}."
 msgstr "Hier kommt das Modul @code{(guix monads)} ins Spiel. Im Rahmen dieses Moduls können @dfn{Monaden} benutzt werden und dazu gehört insbesondere eine für unsere Zwecke sehr nützliche Monade, die @dfn{Store-Monade}. Monaden sind ein Konstrukt, mit dem zwei Dinge möglich sind: eine Assoziation von Werten mit einem „Kontext“ (in unserem Fall ist das die Verbindung zum Store) und das Festlegen einer Reihenfolge für Berechnungen (hiermit sind auch Zugriffe auf den Store gemeint). Werte in einer Monade — solche, die mit weiterem Kontext assoziiert sind — werden @dfn{monadische Werte} genannt; Prozeduren, die solche Werte liefern, heißen @dfn{monadische Prozeduren}."
 
 #. type: Plain text
-#: doc/guix.texi:7193
+#: doc/guix.texi:8813
 msgid "Consider this ``normal'' procedure:"
 msgstr "Betrachten Sie folgende „normale“ Prozedur:"
 
 #. type: lisp
-#: doc/guix.texi:7202
+#: doc/guix.texi:8822
 #, no-wrap
 msgid ""
 "(define (sh-symlink store)\n"
@@ -13934,12 +16687,12 @@ msgstr ""
 "                                  `(symlink ,sh %output))))\n"
 
 #. type: Plain text
-#: doc/guix.texi:7206
+#: doc/guix.texi:8826
 msgid "Using @code{(guix monads)} and @code{(guix gexp)}, it may be rewritten as a monadic function:"
 msgstr "Unter Verwendung von @code{(guix monads)} und @code{(guix gexp)} lässt sie sich als monadische Funktion aufschreiben:"
 
 #. type: lisp
-#: doc/guix.texi:7214
+#: doc/guix.texi:8834
 #, no-wrap
 msgid ""
 "(define (sh-symlink)\n"
@@ -13957,17 +16710,17 @@ msgstr ""
 "                                 #$output))))\n"
 
 #. type: Plain text
-#: doc/guix.texi:7221
+#: doc/guix.texi:8841
 msgid "There are several things to note in the second version: the @code{store} parameter is now implicit and is ``threaded'' in the calls to the @code{package->derivation} and @code{gexp->derivation} monadic procedures, and the monadic value returned by @code{package->derivation} is @dfn{bound} using @code{mlet} instead of plain @code{let}."
 msgstr "An der zweiten Version lassen sich mehrere Dinge beobachten: Der Parameter @code{Store} ist jetzt implizit geworden und wurde in die Aufrufe der monadischen Prozeduren @code{package->derivation} und @code{gexp->derivation} „eingefädelt“ und der von @code{package->derivation} gelieferte monadische Wert wurde mit @code{mlet} statt einem einfachen @code{let} @dfn{gebunden}."
 
 #. type: Plain text
-#: doc/guix.texi:7225
+#: doc/guix.texi:8845
 msgid "As it turns out, the call to @code{package->derivation} can even be omitted since it will take place implicitly, as we will see later (@pxref{G-Expressions}):"
 msgstr "Wie sich herausstellt, muss man den Aufruf von @code{package->derivation} nicht einmal aufschreiben, weil er implizit geschieht, wie wir später sehen werden (siehe @ref{G-Expressions}):"
 
 #. type: lisp
-#: doc/guix.texi:7231
+#: doc/guix.texi:8851
 #, no-wrap
 msgid ""
 "(define (sh-symlink)\n"
@@ -13981,12 +16734,12 @@ msgstr ""
 "                               #$output)))\n"
 
 #. type: Plain text
-#: doc/guix.texi:7240
+#: doc/guix.texi:8860
 msgid "Calling the monadic @code{sh-symlink} has no effect.  As someone once said, ``you exit a monad like you exit a building on fire: by running''.  So, to exit the monad and get the desired effect, one must use @code{run-with-store}:"
 msgstr "Die monadische @code{sh-symlink} einfach aufzurufen, bewirkt nichts. Wie jemand einst sagte: „Mit einer Monade geht man um, wie mit Gefangenen, gegen die man keine Beweise hat: Man muss sie laufen lassen.“ Um also aus der Monade auszubrechen und die gewünschte Wirkung zu erzielen, muss man @code{run-with-store} benutzen:"
 
 #. type: lisp
-#: doc/guix.texi:7244
+#: doc/guix.texi:8864
 #, no-wrap
 msgid ""
 "(run-with-store (open-connection) (sh-symlink))\n"
@@ -13996,12 +16749,12 @@ msgstr ""
 "@result{} /gnu/store/…-sh-symlink\n"
 
 #. type: Plain text
-#: doc/guix.texi:7250
+#: doc/guix.texi:8870
 msgid "Note that the @code{(guix monad-repl)} module extends the Guile REPL with new ``meta-commands'' to make it easier to deal with monadic procedures: @code{run-in-store}, and @code{enter-store-monad}.  The former is used to ``run'' a single monadic value through the store:"
 msgstr "Erwähnenswert ist, dass das Modul @code{(guix monad-repl)} die REPL von Guile um neue „Meta-Befehle“ erweitert, mit denen es leichter ist, mit monadischen Prozeduren umzugehen: @code{run-in-store} und @code{enter-store-monad}. Mit Ersterer wird ein einzelner monadischer Wert durch den Store „laufen gelassen“:"
 
 #. type: example
-#: doc/guix.texi:7254
+#: doc/guix.texi:8874
 #, no-wrap
 msgid ""
 "scheme@@(guile-user)> ,run-in-store (package->derivation hello)\n"
@@ -14011,12 +16764,12 @@ msgstr ""
 "$1 = #<derivation /gnu/store/…-hello-2.9.drv => …>\n"
 
 #. type: Plain text
-#: doc/guix.texi:7258
+#: doc/guix.texi:8878
 msgid "The latter enters a recursive REPL, where all the return values are automatically run through the store:"
 msgstr "Mit Letzterer wird rekursiv eine weitere REPL betreten, in der alle Rückgabewerte automatisch durch den Store laufen gelassen werden:"
 
 #. type: example
-#: doc/guix.texi:7267
+#: doc/guix.texi:8887
 #, no-wrap
 msgid ""
 "scheme@@(guile-user)> ,enter-store-monad\n"
@@ -14036,50 +16789,50 @@ msgstr ""
 "scheme@@(guile-user)>\n"
 
 #. type: Plain text
-#: doc/guix.texi:7272
+#: doc/guix.texi:8892
 msgid "Note that non-monadic values cannot be returned in the @code{store-monad} REPL."
 msgstr "Beachten Sie, dass in einer @code{store-monad}-REPL keine nicht-monadischen Werte zurückgeliefert werden können."
 
 #. type: Plain text
-#: doc/guix.texi:7275
+#: doc/guix.texi:8895
 msgid "The main syntactic forms to deal with monads in general are provided by the @code{(guix monads)} module and are described below."
 msgstr "Die wichtigsten syntaktischen Formen, um mit Monaden im Allgemeinen umzugehen, werden im Modul @code{(guix monads)} bereitgestellt und sind im Folgenden beschrieben."
 
 #. type: deffn
-#: doc/guix.texi:7276
+#: doc/guix.texi:8896
 #, no-wrap
 msgid "{Scheme Syntax} with-monad @var{monad} @var{body} ..."
 msgstr "{Scheme-Syntax} with-monad @var{Monade} @var{Rumpf} ..."
 
 #. type: deffn
-#: doc/guix.texi:7279
+#: doc/guix.texi:8899
 msgid "Evaluate any @code{>>=} or @code{return} forms in @var{body} as being in @var{monad}."
 msgstr "Alle @code{>>=}- oder @code{return}-Formen im @var{Rumpf} in der @var{Monade} auswerten."
 
 #. type: deffn
-#: doc/guix.texi:7281
+#: doc/guix.texi:8901
 #, no-wrap
 msgid "{Scheme Syntax} return @var{val}"
 msgstr "{Scheme-Syntax} return @var{Wert}"
 
 #. type: deffn
-#: doc/guix.texi:7283
+#: doc/guix.texi:8903
 msgid "Return a monadic value that encapsulates @var{val}."
 msgstr "Einen monadischen Wert liefern, der den übergebenen @var{Wert} kapselt."
 
 #. type: deffn
-#: doc/guix.texi:7285
+#: doc/guix.texi:8905
 #, no-wrap
 msgid "{Scheme Syntax} >>= @var{mval} @var{mproc} ..."
 msgstr "{Scheme-Syntax} >>= @var{mWert} @var{mProz} ..."
 
 #. type: deffn
-#: doc/guix.texi:7292
+#: doc/guix.texi:8912
 msgid "@dfn{Bind} monadic value @var{mval}, passing its ``contents'' to monadic procedures @var{mproc}@dots{}@footnote{This operation is commonly referred to as ``bind'', but that name denotes an unrelated procedure in Guile.  Thus we use this somewhat cryptic symbol inherited from the Haskell language.}.  There can be one @var{mproc} or several of them, as in this example:"
 msgstr "Den monadischen Wert @var{mWert} @dfn{binden}, wobei sein „Inhalt“ an die monadischen Prozeduren @var{mProz}…@: übergeben wird@footnote{Diese Operation wird gemeinhin „bind“ genannt, aber mit diesem Begriff wird in Guile eine völlig andere Prozedur bezeichnet, die nichts damit zu tun hat. Also benutzen wir dieses etwas kryptische Symbol als Erbe der Haskell-Programmiersprache.}. Es kann eine einzelne @var{mProz} oder mehrere davon geben, wie in diesem Beispiel:"
 
 #. type: lisp
-#: doc/guix.texi:7300
+#: doc/guix.texi:8920
 #, no-wrap
 msgid ""
 "(run-with-state\n"
@@ -14099,7 +16852,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:7303
+#: doc/guix.texi:8923
 #, no-wrap
 msgid ""
 "@result{} 4\n"
@@ -14109,99 +16862,99 @@ msgstr ""
 "@result{} irgendein-Zustand\n"
 
 #. type: deffn
-#: doc/guix.texi:7306
+#: doc/guix.texi:8926
 #, no-wrap
 msgid "{Scheme Syntax} mlet @var{monad} ((@var{var} @var{mval}) ...) @"
 msgstr "{Scheme-Syntax} mlet @var{Monade} ((@var{Variable} @var{mWert}) ...) @"
 
 #. type: deffn
-#: doc/guix.texi:7308
+#: doc/guix.texi:8928
 msgid "@var{body} ..."
 msgstr "@var{Rumpf} ..."
 
 #. type: deffnx
-#: doc/guix.texi:7308
+#: doc/guix.texi:8928
 #, no-wrap
 msgid "{Scheme Syntax} mlet* @var{monad} ((@var{var} @var{mval}) ...) @"
 msgstr "{Scheme-Syntax} mlet* @var{Monade} ((@var{Variable} @var{mWert}) ...) @"
 
 #. type: deffn
-#: doc/guix.texi:7320
+#: doc/guix.texi:8940
 msgid "@var{body} ...  Bind the variables @var{var} to the monadic values @var{mval} in @var{body}, which is a sequence of expressions.  As with the bind operator, this can be thought of as ``unpacking'' the raw, non-monadic value ``contained'' in @var{mval} and making @var{var} refer to that raw, non-monadic value within the scope of the @var{body}.  The form (@var{var} -> @var{val}) binds @var{var} to the ``normal'' value @var{val}, as per @code{let}.  The binding operations occur in sequence from left to right.  The last expression of @var{body} must be a monadic expression, and its result will become the result of the @code{mlet} or @code{mlet*} when run in the @var{monad}."
 msgstr "@var{Rumpf} ...  Die @var{Variable}n an die monadischen Werte @var{mWert} im @var{Rumpf} binden, der eine Folge von Ausdrücken ist. Wie beim bind-Operator kann man es sich vorstellen als „Auspacken“ des rohen, nicht-monadischen Werts, der im @var{mWert} steckt, wobei anschließend dieser rohe, nicht-monadische Wert im Sichtbarkeitsbereich des @var{Rumpf}s von der @var{Variable}n bezeichnet wird. Die Form (@var{Variable} -> @var{Wert}) bindet die @var{Variable} an den „normalen“ @var{Wert}, wie es @code{let} tun würde. Die Bindungsoperation geschieht in der Reihenfolge von links nach rechts. Der letzte Ausdruck des @var{Rumpfs} muss ein monadischer Ausdruck sein und dessen Ergebnis wird das Ergebnis von @code{mlet} oder @code{mlet*} werden, wenn es durch die @var{Monad} laufen gelassen wurde."
 
 #. type: deffn
-#: doc/guix.texi:7323
+#: doc/guix.texi:8943
 msgid "@code{mlet*} is to @code{mlet} what @code{let*} is to @code{let} (@pxref{Local Bindings,,, guile, GNU Guile Reference Manual})."
-msgstr "@code{mlet*} verhält sich gegenüber @code{mlet} wie @code{let*} gegenüber @code{let} (siehe @ref{Local Bindings,,, guile, GNU Guile Reference Manual})."
+msgstr "@code{mlet*} verhält sich gegenüber @code{mlet} wie @code{let*} gegenüber @code{let} (siehe @ref{Local Bindings,,, guile, Referenzhandbuch zu GNU Guile})."
 
 #. type: deffn
-#: doc/guix.texi:7325
+#: doc/guix.texi:8945
 #, no-wrap
 msgid "{Scheme System} mbegin @var{monad} @var{mexp} ..."
 msgstr "{Scheme-System} mbegin @var{Monade} @var{mAusdruck} ..."
 
 #. type: deffn
-#: doc/guix.texi:7329
+#: doc/guix.texi:8949
 msgid "Bind @var{mexp} and the following monadic expressions in sequence, returning the result of the last expression.  Every expression in the sequence must be a monadic expression."
 msgstr "Der Reihe nach den @var{mAusdruck} und die nachfolgenden monadischen Ausdrücke binden und als Ergebnis das des letzten Ausdrucks liefern. Jeder Ausdruck in der Abfolge muss ein monadischer Ausdruck sein."
 
 #. type: deffn
-#: doc/guix.texi:7333
+#: doc/guix.texi:8953
 msgid "This is akin to @code{mlet}, except that the return values of the monadic expressions are ignored.  In that sense, it is analogous to @code{begin}, but applied to monadic expressions."
 msgstr "Dies verhält sich ähnlich wie @code{mlet}, außer dass die Rückgabewerte der monadischen Prozeduren ignoriert werden. In diesem Sinn verhält es sich analog zu @code{begin}, nur auf monadischen Ausdrücken."
 
 #. type: deffn
-#: doc/guix.texi:7335
+#: doc/guix.texi:8955
 #, no-wrap
 msgid "{Scheme System} mwhen @var{condition} @var{mexp0} @var{mexp*} ..."
 msgstr "{Scheme-System} mwhen @var{Bedingung} @var{mAusdr0} @var{mAusdr*} ..."
 
 #. type: deffn
-#: doc/guix.texi:7340
+#: doc/guix.texi:8960
 msgid "When @var{condition} is true, evaluate the sequence of monadic expressions @var{mexp0}..@var{mexp*} as in an @code{mbegin}.  When @var{condition} is false, return @code{*unspecified*} in the current monad.  Every expression in the sequence must be a monadic expression."
 msgstr "Wenn die @var{Bedingung} wahr ist, wird die Folge monadischer Ausdrücke @var{mAusdr0}..@var{mAusdr*} wie bei @code{mbegin} ausgewertet. Wenn die @var{Bedingung} falsch ist, wird @code{*unspecified*} („unbestimmt“) in der momentanen Monade zurückgeliefert. Jeder Ausdruck in der Folge muss ein monadischer Ausdruck sein."
 
 #. type: deffn
-#: doc/guix.texi:7342
+#: doc/guix.texi:8962
 #, no-wrap
 msgid "{Scheme System} munless @var{condition} @var{mexp0} @var{mexp*} ..."
 msgstr "{Scheme-System} munless @var{Bedingung} @var{mAusdr0} @var{mAusdr*} ..."
 
 #. type: deffn
-#: doc/guix.texi:7347
+#: doc/guix.texi:8967
 msgid "When @var{condition} is false, evaluate the sequence of monadic expressions @var{mexp0}..@var{mexp*} as in an @code{mbegin}.  When @var{condition} is true, return @code{*unspecified*} in the current monad.  Every expression in the sequence must be a monadic expression."
 msgstr "Wenn die @var{Bedingung} falsch ist, wird die Folge monadischer Ausdrücke @var{mAusdr0}..@var{mAusdr*} wie bei @code{mbegin} ausgewertet. Wenn die @var{Bedingung} wahr ist, wird @code{*unspecified*} („unbestimmt“) in der momentanen Monade zurückgeliefert. Jeder Ausdruck in der Folge muss ein monadischer Ausdruck sein."
 
 #. type: cindex
-#: doc/guix.texi:7349
+#: doc/guix.texi:8969
 #, no-wrap
 msgid "state monad"
 msgstr "Zustandsmonade"
 
 #. type: Plain text
-#: doc/guix.texi:7353
+#: doc/guix.texi:8973
 msgid "The @code{(guix monads)} module provides the @dfn{state monad}, which allows an additional value---the state---to be @emph{threaded} through monadic procedure calls."
 msgstr "Das Modul @code{(guix monads)} macht die @dfn{Zustandsmonade} (englisch „state monad“) verfügbar, mit der ein zusätzlicher Wert — der Zustand — durch die monadischen Prozeduraufrufe @emph{gefädelt} werden kann."
 
 #. type: defvr
-#: doc/guix.texi:7354
+#: doc/guix.texi:8974
 #, no-wrap
 msgid "{Scheme Variable} %state-monad"
 msgstr "{Scheme-Variable} %state-monad"
 
 #. type: defvr
-#: doc/guix.texi:7357
+#: doc/guix.texi:8977
 msgid "The state monad.  Procedures in the state monad can access and change the state that is threaded."
 msgstr "Die Zustandsmonade. Prozeduren in der Zustandsmonade können auf den gefädelten Zustand zugreifen und ihn verändern."
 
 #. type: defvr
-#: doc/guix.texi:7361
+#: doc/guix.texi:8981
 msgid "Consider the example below.  The @code{square} procedure returns a value in the state monad.  It returns the square of its argument, but also increments the current state value:"
 msgstr "Betrachten Sie das folgende Beispiel. Die Prozedur @code{Quadrat} liefert einen Wert in der Zustandsmonade zurück. Sie liefert das Quadrat ihres Arguments, aber sie inkrementiert auch den momentanen Zustandswert:"
 
 #. type: lisp
-#: doc/guix.texi:7368
+#: doc/guix.texi:8988
 #, no-wrap
 msgid ""
 "(define (square x)\n"
@@ -14219,7 +16972,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:7372
+#: doc/guix.texi:8992
 #, no-wrap
 msgid ""
 "(run-with-state (sequence %state-monad (map square (iota 3))) 0)\n"
@@ -14231,147 +16984,147 @@ msgstr ""
 "@result{} 3\n"
 
 #. type: defvr
-#: doc/guix.texi:7376
-msgid "When ``run'' through @var{%state-monad}, we obtain that additional state value, which is the number of @code{square} calls."
-msgstr "Wird das „durch“ die Zustandsmonade @var{%state-monad} laufen gelassen, erhalten wir jenen zusätzlichen Zustandswert, der der Anzahl der Aufrufe von @code{Quadrat} entspricht."
+#: doc/guix.texi:8996
+msgid "When ``run'' through @code{%state-monad}, we obtain that additional state value, which is the number of @code{square} calls."
+msgstr "Wird das „durch“ die Zustandsmonade @code{%state-monad} laufen gelassen, erhalten wir jenen zusätzlichen Zustandswert, der der Anzahl der Aufrufe von @code{Quadrat} entspricht."
 
 #. type: deffn
-#: doc/guix.texi:7378
+#: doc/guix.texi:8998
 #, no-wrap
 msgid "{Monadic Procedure} current-state"
 msgstr "{Monadische Prozedur} current-state"
 
 #. type: deffn
-#: doc/guix.texi:7380
+#: doc/guix.texi:9000
 msgid "Return the current state as a monadic value."
 msgstr "Liefert den momentanen Zustand als einen monadischen Wert."
 
 #. type: deffn
-#: doc/guix.texi:7382
+#: doc/guix.texi:9002
 #, no-wrap
 msgid "{Monadic Procedure} set-current-state @var{value}"
 msgstr "{Monadische Prozedur} set-current-state @var{Wert}"
 
 #. type: deffn
-#: doc/guix.texi:7385
+#: doc/guix.texi:9005
 msgid "Set the current state to @var{value} and return the previous state as a monadic value."
 msgstr "Setzt den momentanen Zustand auf @var{Wert} und liefert den vorherigen Zustand als einen monadischen Wert."
 
 #. type: deffn
-#: doc/guix.texi:7387
+#: doc/guix.texi:9007
 #, no-wrap
 msgid "{Monadic Procedure} state-push @var{value}"
 msgstr "{Monadische Prozedur} state-push @var{Wert}"
 
 #. type: deffn
-#: doc/guix.texi:7390
+#: doc/guix.texi:9010
 msgid "Push @var{value} to the current state, which is assumed to be a list, and return the previous state as a monadic value."
 msgstr "Hängt den @var{Wert} vorne an den momentanen Zustand an, der eine Liste sein muss. Liefert den vorherigen Zustand als monadischen Wert."
 
 #. type: deffn
-#: doc/guix.texi:7392
+#: doc/guix.texi:9012
 #, no-wrap
 msgid "{Monadic Procedure} state-pop"
 msgstr "{Monadische Prozedur} state-pop"
 
 #. type: deffn
-#: doc/guix.texi:7395
+#: doc/guix.texi:9015
 msgid "Pop a value from the current state and return it as a monadic value.  The state is assumed to be a list."
 msgstr "Entfernt einen Wert vorne vom momentanen Zustand und liefert ihn als monadischen Wert zurück. Dabei wird angenommen, dass es sich beim Zustand um eine Liste handelt."
 
 #. type: deffn
-#: doc/guix.texi:7397
+#: doc/guix.texi:9017
 #, no-wrap
 msgid "{Scheme Procedure} run-with-state @var{mval} [@var{state}]"
 msgstr "{Scheme-Prozedur} run-with-state @var{mWert} [@var{Zustand}]"
 
 #. type: deffn
-#: doc/guix.texi:7400
+#: doc/guix.texi:9020
 msgid "Run monadic value @var{mval} starting with @var{state} as the initial state.  Return two values: the resulting value, and the resulting state."
 msgstr "Den monadischen Wert @var{mWert} mit @var{Zustand} als initialem Zustand laufen lassen. Dies liefert zwei Werte: den Ergebniswert und den Ergebniszustand."
 
 #. type: Plain text
-#: doc/guix.texi:7404
+#: doc/guix.texi:9024
 msgid "The main interface to the store monad, provided by the @code{(guix store)} module, is as follows."
 msgstr "Die zentrale Schnittstelle zur Store-Monade, wie sie vom Modul @code{(guix store)} angeboten wird, ist die Folgende:"
 
 #. type: defvr
-#: doc/guix.texi:7405
+#: doc/guix.texi:9025
 #, no-wrap
 msgid "{Scheme Variable} %store-monad"
 msgstr "{Scheme-Variable} %store-monad"
 
 #. type: defvr
-#: doc/guix.texi:7407
-msgid "The store monad---an alias for @var{%state-monad}."
-msgstr "Die Store-Monade — ein anderer Name für @var{%state-monad}."
+#: doc/guix.texi:9027
+msgid "The store monad---an alias for @code{%state-monad}."
+msgstr "Die Store-Monade — ein anderer Name für @code{%state-monad}."
 
 #. type: defvr
-#: doc/guix.texi:7411
-msgid "Values in the store monad encapsulate accesses to the store.  When its effect is needed, a value of the store monad must be ``evaluated'' by passing it to the @code{run-with-store} procedure (see below.)"
+#: doc/guix.texi:9031
+msgid "Values in the store monad encapsulate accesses to the store.  When its effect is needed, a value of the store monad must be ``evaluated'' by passing it to the @code{run-with-store} procedure (see below)."
 msgstr "Werte in der Store-Monade kapseln Zugriffe auf den Store. Sobald ihre Wirkung gebraucht wird, muss ein Wert der Store-Monade „ausgewertet“ werden, indem er an die Prozedur @code{run-with-store} übergeben wird (siehe unten)."
 
 #. type: deffn
-#: doc/guix.texi:7413
+#: doc/guix.texi:9033
 #, no-wrap
 msgid "{Scheme Procedure} run-with-store @var{store} @var{mval} [#:guile-for-build] [#:system (%current-system)]"
 msgstr "{Scheme-Prozedur} run-with-store @var{Store} @var{mWert} [#:guile-for-build] [#:system (%current-system)]"
 
 #. type: deffn
-#: doc/guix.texi:7416
+#: doc/guix.texi:9036
 msgid "Run @var{mval}, a monadic value in the store monad, in @var{store}, an open store connection."
 msgstr "Den @var{mWert}, einen monadischen Wert in der Store-Monade, in der offenen Verbindung @var{Store} laufen lassen."
 
 #. type: deffn
-#: doc/guix.texi:7418
+#: doc/guix.texi:9038
 #, no-wrap
 msgid "{Monadic Procedure} text-file @var{name} @var{text} [@var{references}]"
 msgstr "{Monadische Prozedur} text-file @var{Name} @var{Text} [@var{Referenzen}]"
 
 #. type: deffn
-#: doc/guix.texi:7422
+#: doc/guix.texi:9042
 msgid "Return as a monadic value the absolute file name in the store of the file containing @var{text}, a string.  @var{references} is a list of store items that the resulting text file refers to; it defaults to the empty list."
 msgstr "Als monadischen Wert den absoluten Dateinamen im Store für eine Datei liefern, deren Inhalt der der Zeichenkette @var{Text} ist. @var{Referenzen} ist dabei eine Liste von Store-Objekten, die die Ergebnis-Textdatei referenzieren wird; der Vorgabewert ist die leere Liste."
 
 #. type: deffn
-#: doc/guix.texi:7424
+#: doc/guix.texi:9044
 #, no-wrap
 msgid "{Monadic Procedure} binary-file @var{name} @var{data} [@var{references}]"
 msgstr "{Monadische Prozedur} binary-file @var{Name} @var{Daten} [@var{Referenzen}]"
 
 #. type: deffn
-#: doc/guix.texi:7428
+#: doc/guix.texi:9048
 msgid "Return as a monadic value the absolute file name in the store of the file containing @var{data}, a bytevector.  @var{references} is a list of store items that the resulting binary file refers to; it defaults to the empty list."
 msgstr "Den absoluten Dateinamen im Store als monadischen Wert für eine Datei liefern, deren Inhalt der des Byte-Vektors @var{Daten} ist. @var{Referenzen} ist dabei eine Liste von Store-Objekten, die die Ergebnis-Binärdatei referenzieren wird; der Vorgabewert ist die leere Liste."
 
 #. type: deffn
-#: doc/guix.texi:7430
+#: doc/guix.texi:9050
 #, no-wrap
 msgid "{Monadic Procedure} interned-file @var{file} [@var{name}] @"
 msgstr "{Monadische Prozedur} interned-file @var{Datei} [@var{Name}] @"
 
 #. type: deffn
-#: doc/guix.texi:7435
+#: doc/guix.texi:9055
 msgid "[#:recursive? #t] [#:select? (const #t)] Return the name of @var{file} once interned in the store.  Use @var{name} as its store name, or the basename of @var{file} if @var{name} is omitted."
 msgstr "[#:recursive? #t] [#:select? (const #t)] Liefert den Namen der @var{Datei}, nachdem sie in den Store interniert wurde. Dabei wird der @var{Name} als ihr Store-Name verwendet, oder, wenn kein @var{Name} angegeben wurde, der Basisname der @var{Datei}."
 
 #. type: deffn
-#: doc/guix.texi:7439 doc/guix.texi:7856
+#: doc/guix.texi:9059 doc/guix.texi:9482
 msgid "When @var{recursive?} is true, the contents of @var{file} are added recursively; if @var{file} designates a flat file and @var{recursive?} is true, its contents are added, and its permission bits are kept."
 msgstr "Ist @var{recursive?} wahr, werden in der @var{Datei} enthaltene Dateien rekursiv hinzugefügt; ist die @var{Datei} eine flache Datei und @var{recursive?} ist wahr, wird ihr Inhalt in den Store eingelagert und ihre Berechtigungs-Bits übernommen."
 
 #. type: deffn
-#: doc/guix.texi:7444 doc/guix.texi:7861
+#: doc/guix.texi:9064 doc/guix.texi:9487
 msgid "When @var{recursive?} is true, call @code{(@var{select?} @var{file} @var{stat})} for each directory entry, where @var{file} is the entry's absolute file name and @var{stat} is the result of @code{lstat}; exclude entries for which @var{select?} does not return true."
 msgstr "Steht @var{recursive?} auf wahr, wird @code{(@var{select?} @var{Datei} @var{Stat})} für jeden Verzeichniseintrag aufgerufen, wobei @var{Datei} der absolute Dateiname und @var{Stat} das Ergebnis von @code{lstat} ist, außer auf den Einträgen, wo @var{select?} keinen wahren Wert liefert."
 
 #. type: deffn
-#: doc/guix.texi:7446
+#: doc/guix.texi:9066
 msgid "The example below adds a file to the store, under two different names:"
 msgstr "Folgendes Beispiel fügt eine Datei unter zwei verschiedenen Namen in den Store ein:"
 
 #. type: lisp
-#: doc/guix.texi:7452
+#: doc/guix.texi:9072
 #, no-wrap
 msgid ""
 "(run-with-store (open-connection)\n"
@@ -14387,115 +17140,120 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:7454
+#: doc/guix.texi:9074
 #, no-wrap
 msgid "@result{} (\"/gnu/store/rwm@dots{}-README\" \"/gnu/store/44i@dots{}-LEGU-MIN\")\n"
 msgstr "@result{} (\"/gnu/store/rwm…-README\" \"/gnu/store/44i…-LEGU-MIN\")\n"
 
 #. type: Plain text
-#: doc/guix.texi:7460
+#: doc/guix.texi:9080
 msgid "The @code{(guix packages)} module exports the following package-related monadic procedures:"
 msgstr "Das Modul @code{(guix packages)} exportiert die folgenden paketbezogenen monadischen Prozeduren:"
 
 #. type: deffn
-#: doc/guix.texi:7461
+#: doc/guix.texi:9081
 #, no-wrap
 msgid "{Monadic Procedure} package-file @var{package} [@var{file}] @"
 msgstr "{Monadische Prozedur} package-file @var{Paket} [@var{Datei}] @"
 
 #. type: deffn
-#: doc/guix.texi:7469
+#: doc/guix.texi:9089
 msgid "[#:system (%current-system)] [#:target #f] @ [#:output \"out\"] Return as a monadic value in the absolute file name of @var{file} within the @var{output} directory of @var{package}.  When @var{file} is omitted, return the name of the @var{output} directory of @var{package}.  When @var{target} is true, use it as a cross-compilation target triplet."
 msgstr "[#:system (%current-system)] [#:target #f] @ [#:output \"out\"] Liefert als monadischen Wert den absoluten Dateinamen der @var{Datei} innerhalb des Ausgabeverzeichnisses @var{output} des @var{Paket}s. Wird keine @var{Datei} angegeben, wird der Name des Ausgabeverzeichnisses @var{output} für das @var{Paket} zurückgeliefert. Ist @var{target} wahr, wird sein Wert als das Zielsystem bezeichnendes Tripel zum Cross-Kompilieren benutzt."
 
 #. type: deffn
-#: doc/guix.texi:7471
+#: doc/guix.texi:9093
+msgid "Note that this procedure does @emph{not} build @var{package}.  Thus, the result might or might not designate an existing file.  We recommend not using this procedure unless you know what you are doing."
+msgstr "Beachten Sie, dass durch diese Prozedur das @var{Paket} @emph{nicht} erstellt wird, also muss ihr Ergebnis keine bereits existierende Datei bezeichnen, kann aber. Wir empfehlen, diese Prozedur nur dann zu benutzen, wenn Sie wissen, was Sie tun."
+
+#. type: deffn
+#: doc/guix.texi:9095
 #, no-wrap
 msgid "{Monadic Procedure} package->derivation @var{package} [@var{system}]"
 msgstr "{Monadische Prozedur} package->derivation @var{Paket} [@var{System}]"
 
 #. type: deffnx
-#: doc/guix.texi:7472
+#: doc/guix.texi:9096
 #, no-wrap
 msgid "{Monadic Procedure} package->cross-derivation @var{package} @"
 msgstr "{Monadische Prozedur} package->cross-derivation @var{Paket} @"
 
 #. type: deffn
-#: doc/guix.texi:7476
+#: doc/guix.texi:9100
 msgid "@var{target} [@var{system}] Monadic version of @code{package-derivation} and @code{package-cross-derivation} (@pxref{Defining Packages})."
 msgstr "@var{Ziel} [@var{System}] Monadische Version von @code{package-derivation} und @code{package-cross-derivation} (siehe @ref{Defining Packages})."
 
 #. type: cindex
-#: doc/guix.texi:7482
+#: doc/guix.texi:9106
 #, no-wrap
 msgid "G-expression"
 msgstr "G-Ausdruck"
 
 #. type: cindex
-#: doc/guix.texi:7483
+#: doc/guix.texi:9107
 #, no-wrap
 msgid "build code quoting"
 msgstr "Erstellungscode maskieren"
 
 #. type: Plain text
-#: doc/guix.texi:7489
+#: doc/guix.texi:9113
 msgid "So we have ``derivations'', which represent a sequence of build actions to be performed to produce an item in the store (@pxref{Derivations}).  These build actions are performed when asking the daemon to actually build the derivations; they are run by the daemon in a container (@pxref{Invoking guix-daemon})."
 msgstr "Es gibt also „Ableitungen“, die eine Abfolge von Erstellungsaktionen repräsentieren, die durchgeführt werden müssen, um ein Objekt im Store zu erzeugen (siehe @ref{Derivations}). Diese Erstellungsaktionen werden durchgeführt, nachdem der Daemon gebeten wurde, die Ableitungen tatsächlich zu erstellen; dann führt der Daemon sie in einer isolierten Umgebung (einem sogenannten Container) aus (siehe @ref{Invoking guix-daemon})."
 
 #. type: cindex
-#: doc/guix.texi:7490
+#: doc/guix.texi:9116
 #, no-wrap
 msgid "strata of code"
 msgstr "Schichten von Code"
 
 #. type: Plain text
-#: doc/guix.texi:7502
-msgid "It should come as no surprise that we like to write these build actions in Scheme.  When we do that, we end up with two @dfn{strata} of Scheme code@footnote{The term @dfn{stratum} in this context was coined by Manuel Serrano et al.@: in the context of their work on Hop.  Oleg Kiselyov, who has written insightful @url{http://okmij.org/ftp/meta-programming/#meta-scheme, essays and code on this topic}, refers to this kind of code generation as @dfn{staging}.}: the ``host code''---code that defines packages, talks to the daemon, etc.---and the ``build code''---code that actually performs build actions, such as making directories, invoking @command{make}, etc."
-msgstr "Wenig überraschend ist, dass wir diese Erstellungsaktionen gerne in Scheme schreiben würden. Wenn wir das tun, bekommen wir zwei verschiedene @dfn{Schichten} von Scheme-Code@footnote{Der Begriff @dfn{Schicht}, englisch Stratum, wurde in diesem Kontext von Manuel Serrano et al.@: in ihrer Arbeit an Hop geprägt. Oleg Kiselyov, der aufschlussreiche @url{http://okmij.org/ftp/meta-programming/#meta-scheme, Essays und Code zu diesem Thema} geschrieben hat, nennt diese Art der Code-Generierung @dfn{Staging}, deutsch etwa Inszenierung bzw.@: Aufführung.}: den „wirtsseitigen Code“ („host code“) — also Code, der Pakete definiert, mit dem Daemon kommuniziert etc.@: — und den „erstellungsseitigen Code“ („build code“) — also Code, der die Erstellungsaktionen auch wirklich umsetzt, indem Dateien erstellt werden, @command{make} aufgerufen wird etc."
+#: doc/guix.texi:9128
+msgid "It should come as no surprise that we like to write these build actions in Scheme.  When we do that, we end up with two @dfn{strata} of Scheme code@footnote{The term @dfn{stratum} in this context was coined by Manuel Serrano et al.@: in the context of their work on Hop.  Oleg Kiselyov, who has written insightful @url{http://okmij.org/ftp/meta-programming/#meta-scheme, essays and code on this topic}, refers to this kind of code generation as @dfn{staging}.}: the ``host code''---code that defines packages, talks to the daemon, etc.---and the ``build code''---code that actually performs build actions, such as making directories, invoking @command{make}, and so on (@pxref{Build Phases})."
+msgstr "Wenig überraschend ist, dass wir diese Erstellungsaktionen gerne in Scheme schreiben würden. Wenn wir das tun, bekommen wir zwei verschiedene @dfn{Schichten} von Scheme-Code@footnote{Der Begriff @dfn{Schicht}, englisch Stratum, wurde in diesem Kontext von Manuel Serrano et al.@: in ihrer Arbeit an Hop geprägt. Oleg Kiselyov, der aufschlussreiche @url{http://okmij.org/ftp/meta-programming/#meta-scheme, Essays und Code zu diesem Thema} geschrieben hat, nennt diese Art der Code-Generierung @dfn{Staging}, deutsch etwa Inszenierung bzw.@: Aufführung.}: den „wirtsseitigen Code“ („host code“) — also Code, der Pakete definiert, mit dem Daemon kommuniziert etc.@: — und den „erstellungsseitigen Code“ („build code“) — also Code, der die Erstellungsaktionen auch wirklich umsetzt, indem Dateien erstellt werden, @command{make} aufgerufen wird und so weiter (siehe @ref{Build Phases})."
 
 #. type: Plain text
-#: doc/guix.texi:7509
+#: doc/guix.texi:9135
 msgid "To describe a derivation and its build actions, one typically needs to embed build code inside host code.  It boils down to manipulating build code as data, and the homoiconicity of Scheme---code has a direct representation as data---comes in handy for that.  But we need more than the normal @code{quasiquote} mechanism in Scheme to construct build expressions."
 msgstr "Um eine Ableitung und ihre Erstellungsaktionen zu beschreiben, muss man normalerweise erstellungsseitigen Code im wirtsseitigen Code einbetten. Das bedeutet, man behandelt den erstellungsseitigen Code als Daten, was wegen der Homoikonizität von Scheme — dass Code genauso als Daten repräsentiert werden kann — sehr praktisch ist. Doch brauchen wir hier mehr als nur den normalen Quasimaskierungsmechanismus mit @code{quasiquote} in Scheme, wenn wir Erstellungsausdrücke konstruieren möchten."
 
 #. type: Plain text
-#: doc/guix.texi:7518
+#: doc/guix.texi:9144
 msgid "The @code{(guix gexp)} module implements @dfn{G-expressions}, a form of S-expressions adapted to build expressions.  G-expressions, or @dfn{gexps}, consist essentially of three syntactic forms: @code{gexp}, @code{ungexp}, and @code{ungexp-splicing} (or simply: @code{#~}, @code{#$}, and @code{#$@@}), which are comparable to @code{quasiquote}, @code{unquote}, and @code{unquote-splicing}, respectively (@pxref{Expression Syntax, @code{quasiquote},, guile, GNU Guile Reference Manual}).  However, there are major differences:"
-msgstr "Das Modul @code{(guix gexp)} implementiert @dfn{G-Ausdrücke}, eine Form von S-Ausdrücken, die zu Erstellungsausdrücken angepasst wurden. G-Ausdrücke (englisch „G-expressions“, kurz @dfn{Gexps}) setzen sich grundlegend aus drei syntaktischen Formen zusammen: @code{gexp}, @code{ungexp} und @code{ungexp-splicing} (alternativ einfach: @code{#~}, @code{#$} und @code{#$@@}), die jeweils mit @code{quasiquote}, @code{unquote} und @code{unquote-splicing} vergleichbar sind (siehe @ref{Expression Syntax, @code{quasiquote},, guile, GNU Guile Reference Manual}). Es gibt aber auch erhebliche Unterschiede:"
+msgstr "Das Modul @code{(guix gexp)} implementiert @dfn{G-Ausdrücke}, eine Form von S-Ausdrücken, die zu Erstellungsausdrücken angepasst wurden. G-Ausdrücke (englisch „G-expressions“, kurz @dfn{Gexps}) setzen sich grundlegend aus drei syntaktischen Formen zusammen: @code{gexp}, @code{ungexp} und @code{ungexp-splicing} (alternativ einfach: @code{#~}, @code{#$} und @code{#$@@}), die jeweils mit @code{quasiquote}, @code{unquote} und @code{unquote-splicing} vergleichbar sind (siehe @ref{Expression Syntax, @code{quasiquote},, guile, Referenzhandbuch zu GNU Guile}). Es gibt aber auch erhebliche Unterschiede:"
 
 #. type: itemize
-#: doc/guix.texi:7523
+#: doc/guix.texi:9149
 msgid "Gexps are meant to be written to a file and run or manipulated by other processes."
 msgstr "G-Ausdrücke sind dafür gedacht, in eine Datei geschrieben zu werden, wo sie von anderen Prozessen ausgeführt oder manipuliert werden können."
 
 #. type: itemize
-#: doc/guix.texi:7528
+#: doc/guix.texi:9154
 msgid "When a high-level object such as a package or derivation is unquoted inside a gexp, the result is as if its output file name had been introduced."
 msgstr "Wenn ein abstraktes Objekt wie ein Paket oder eine Ableitung innerhalb eines G-Ausdrucks demaskiert wird, ist das Ergebnis davon dasselbe, wie wenn dessen Ausgabedateiname genannt worden wäre."
 
 #. type: itemize
-#: doc/guix.texi:7533
+#: doc/guix.texi:9159
 msgid "Gexps carry information about the packages or derivations they refer to, and these dependencies are automatically added as inputs to the build processes that use them."
 msgstr "G-Ausdrücke tragen Informationen über die Pakete oder Ableitungen mit sich, auf die sie sich beziehen, und diese Abhängigkeiten werden automatisch zu den sie benutzenden Erstellungsprozessen als Eingaben hinzugefügt."
 
 #. type: cindex
-#: doc/guix.texi:7535 doc/guix.texi:8063
+#: doc/guix.texi:9161 doc/guix.texi:9718
 #, no-wrap
 msgid "lowering, of high-level objects in gexps"
 msgstr "Herunterbrechen, von abstrakten Objekten in G-Ausdrücken"
 
 #. type: Plain text
-#: doc/guix.texi:7545
-msgid "This mechanism is not limited to package and derivation objects: @dfn{compilers} able to ``lower'' other high-level objects to derivations or files in the store can be defined, such that these objects can also be inserted into gexps.  For example, a useful type of high-level objects that can be inserted in a gexp is ``file-like objects'', which make it easy to add files to the store and to refer to them in derivations and such (see @code{local-file} and @code{plain-file} below.)"
+#: doc/guix.texi:9171
+msgid "This mechanism is not limited to package and derivation objects: @dfn{compilers} able to ``lower'' other high-level objects to derivations or files in the store can be defined, such that these objects can also be inserted into gexps.  For example, a useful type of high-level objects that can be inserted in a gexp is ``file-like objects'', which make it easy to add files to the store and to refer to them in derivations and such (see @code{local-file} and @code{plain-file} below)."
 msgstr "Dieser Mechanismus ist nicht auf Pakete und Ableitung beschränkt: Es können @dfn{Compiler} definiert werden, die weitere abstrakte, hochsprachliche Objekte auf Ableitungen oder Dateien im Store „herunterbrechen“, womit diese Objekte dann auch in G-Ausdrücken eingefügt werden können. Zum Beispiel sind „dateiartige Objekte“ ein nützlicher Typ solcher abstrakter Objekte. Mit ihnen können Dateien leicht in den Store eingefügt und von Ableitungen und anderem referenziert werden (siehe unten @code{local-file} und @code{plain-file})."
 
 #. type: Plain text
-#: doc/guix.texi:7547
+#: doc/guix.texi:9173
 msgid "To illustrate the idea, here is an example of a gexp:"
 msgstr "Zur Veranschaulichung dieser Idee soll uns dieses Beispiel eines G-Ausdrucks dienen:"
 
 #. type: lisp
-#: doc/guix.texi:7555
+#: doc/guix.texi:9181
 #, no-wrap
 msgid ""
 "(define build-exp\n"
@@ -14513,34 +17271,34 @@ msgstr ""
 "               \"list-files\")))\n"
 
 #. type: Plain text
-#: doc/guix.texi:7560
+#: doc/guix.texi:9186
 msgid "This gexp can be passed to @code{gexp->derivation}; we obtain a derivation that builds a directory containing exactly one symlink to @file{/gnu/store/@dots{}-coreutils-8.22/bin/ls}:"
 msgstr "Indem wir diesen G-Ausdruck an @code{gexp->derivation} übergeben, bekommen wir eine Ableitung, die ein Verzeichnis mit genau einer symbolischen Verknüpfung auf @file{/gnu/store/…-coreutils-8.22/bin/ls} erstellt:"
 
 #. type: lisp
-#: doc/guix.texi:7563
+#: doc/guix.texi:9189
 #, no-wrap
 msgid "(gexp->derivation \"the-thing\" build-exp)\n"
 msgstr "(gexp->derivation \"das-ding\" build-exp)\n"
 
 #. type: Plain text
-#: doc/guix.texi:7571
+#: doc/guix.texi:9197
 msgid "As one would expect, the @code{\"/gnu/store/@dots{}-coreutils-8.22\"} string is substituted to the reference to the @var{coreutils} package in the actual build code, and @var{coreutils} is automatically made an input to the derivation.  Likewise, @code{#$output} (equivalent to @code{(ungexp output)}) is replaced by a string containing the directory name of the output of the derivation."
 msgstr "Wie man es erwarten würde, wird die Zeichenkette @code{\"/gnu/store/…-coreutils-8.22\"} anstelle der Referenzen auf das Paket @var{coreutils} im eigentlichen Erstellungscode eingefügt und @var{coreutils} automatisch zu einer Eingabe der Ableitung gemacht. Genauso wird auch @code{#$output} (was äquivalent zur Schreibweise @code{(ungexp output)} ist) ersetzt durch eine Zeichenkette mit dem Namen der Ausgabe der Ableitung."
 
 #. type: cindex
-#: doc/guix.texi:7572
+#: doc/guix.texi:9198
 #, no-wrap
 msgid "cross compilation"
 msgstr "Cross-Kompilieren"
 
 #. type: Plain text
-#: doc/guix.texi:7578
+#: doc/guix.texi:9204
 msgid "In a cross-compilation context, it is useful to distinguish between references to the @emph{native} build of a package---that can run on the host---versus references to cross builds of a package.  To that end, the @code{#+} plays the same role as @code{#$}, but is a reference to a native package build:"
 msgstr "Im Kontext der Cross-Kompilierung bietet es sich an, zwischen Referenzen auf die @emph{native} Erstellung eines Pakets — also der, die auf dem Wirtssystem ausgeführt werden kann — und Referenzen auf Cross-Erstellungen eines Pakets zu unterscheiden. Hierfür spielt @code{#+} dieselbe Rolle wie @code{#$}, steht aber für eine Referenz auf eine native Paketerstellung."
 
 #. type: lisp
-#: doc/guix.texi:7589
+#: doc/guix.texi:9215
 #, no-wrap
 msgid ""
 "(gexp->derivation \"vi\"\n"
@@ -14551,7 +17309,7 @@ msgid ""
 "                \"-s\"\n"
 "                (string-append #$emacs \"/bin/emacs\")\n"
 "                (string-append #$output \"/bin/vi\")))\n"
-"   #:target \"mips64el-linux-gnu\")\n"
+"   #:target \"aarch64-linux-gnu\")\n"
 msgstr ""
 "(gexp->derivation \"vi\"\n"
 "   #~(begin\n"
@@ -14561,32 +17319,32 @@ msgstr ""
 "                \"-s\"\n"
 "                (string-append #$emacs \"/bin/emacs\")\n"
 "                (string-append #$output \"/bin/vi\")))\n"
-"   #:target \"mips64el-linux-gnu\")\n"
+"   #:target \"aarch64-linux-gnu\")\n"
 
 #. type: Plain text
-#: doc/guix.texi:7595
+#: doc/guix.texi:9221
 msgid "In the example above, the native build of @var{coreutils} is used, so that @command{ln} can actually run on the host; but then the cross-compiled build of @var{emacs} is referenced."
 msgstr "Im obigen Beispiel wird die native Erstellung der @var{coreutils} benutzt, damit @command{ln} tatsächlich auf dem Wirtssystem ausgeführt werden kann, aber danach die cross-kompilierte Erstellung von @var{emacs} referenziert."
 
 #. type: cindex
-#: doc/guix.texi:7596
+#: doc/guix.texi:9222
 #, no-wrap
 msgid "imported modules, for gexps"
 msgstr "importierte Module, in G-Ausdrücken"
 
 #. type: findex
-#: doc/guix.texi:7597
+#: doc/guix.texi:9223
 #, no-wrap
 msgid "with-imported-modules"
 msgstr "with-imported-modules"
 
 #. type: Plain text
-#: doc/guix.texi:7602
+#: doc/guix.texi:9228
 msgid "Another gexp feature is @dfn{imported modules}: sometimes you want to be able to use certain Guile modules from the ``host environment'' in the gexp, so those modules should be imported in the ``build environment''.  The @code{with-imported-modules} form allows you to express that:"
 msgstr "Eine weitere Funktionalität von G-Ausdrücken stellen @dfn{importierte Module} dar. Manchmal will man bestimmte Guile-Module von der „wirtsseitigen Umgebung“ im G-Ausdruck benutzen können, deswegen sollten diese Module in die „erstellungsseitige Umgebung“ importiert werden. Die @code{with-imported-modules}-Form macht das möglich:"
 
 #. type: lisp
-#: doc/guix.texi:7613
+#: doc/guix.texi:9239
 #, no-wrap
 msgid ""
 "(let ((build (with-imported-modules '((guix build utils))\n"
@@ -14610,29 +17368,29 @@ msgstr ""
 "                        #t)))\n"
 
 #. type: Plain text
-#: doc/guix.texi:7619
+#: doc/guix.texi:9245
 msgid "In this example, the @code{(guix build utils)} module is automatically pulled into the isolated build environment of our gexp, such that @code{(use-modules (guix build utils))} works as expected."
 msgstr "In diesem Beispiel wird das Modul @code{(guix build utils)} automatisch in die isolierte Erstellungsumgebung unseres G-Ausdrucks geholt, so dass @code{(use-modules (guix build utils))} wie erwartet funktioniert."
 
 #. type: cindex
-#: doc/guix.texi:7620
+#: doc/guix.texi:9246
 #, no-wrap
 msgid "module closure"
 msgstr "Modulabschluss"
 
 #. type: findex
-#: doc/guix.texi:7621
+#: doc/guix.texi:9247
 #, no-wrap
 msgid "source-module-closure"
 msgstr "source-module-closure"
 
 #. type: Plain text
-#: doc/guix.texi:7628
+#: doc/guix.texi:9254
 msgid "Usually you want the @emph{closure} of the module to be imported---i.e., the module itself and all the modules it depends on---rather than just the module; failing to do that, attempts to use the module will fail because of missing dependent modules.  The @code{source-module-closure} procedure computes the closure of a module by looking at its source file headers, which comes in handy in this case:"
 msgstr "Normalerweise möchten Sie, dass der @emph{Abschluss} eines Moduls importiert wird — also das Modul und alle Module, von denen es abhängt — statt nur das Modul selbst. Ansonsten scheitern Versuche, das Modul zu benutzen, weil seine Modulabhängigkeiten fehlen. Die Prozedur @code{source-module-closure} berechnet den Abschluss eines Moduls, indem es den Kopf seiner Quelldatei analysiert, deswegen schafft die Prozedur hier Abhilfe:"
 
 #. type: lisp
-#: doc/guix.texi:7631
+#: doc/guix.texi:9257
 #, no-wrap
 msgid ""
 "(use-modules (guix modules))   ;for 'source-module-closure'\n"
@@ -14642,7 +17400,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:7640
+#: doc/guix.texi:9266
 #, no-wrap
 msgid ""
 "(with-imported-modules (source-module-closure\n"
@@ -14664,24 +17422,24 @@ msgstr ""
 "                        …)))\n"
 
 #. type: cindex
-#: doc/guix.texi:7642
+#: doc/guix.texi:9268
 #, no-wrap
 msgid "extensions, for gexps"
 msgstr "Erweiterungen, für G-Ausdrücke"
 
 #. type: findex
-#: doc/guix.texi:7643
+#: doc/guix.texi:9269
 #, no-wrap
 msgid "with-extensions"
 msgstr "with-extensions"
 
 #. type: Plain text
-#: doc/guix.texi:7648
+#: doc/guix.texi:9274
 msgid "In the same vein, sometimes you want to import not just pure-Scheme modules, but also ``extensions'' such as Guile bindings to C libraries or other ``full-blown'' packages.  Say you need the @code{guile-json} package available on the build side, here's how you would do it:"
 msgstr "Auf die gleiche Art können Sie auch vorgehen, wenn Sie nicht bloß reine Scheme-Module importieren möchten, sondern auch „Erweiterungen“ wie Guile-Anbindungen von C-Bibliotheken oder andere „vollumfängliche“ Pakete. Sagen wir, Sie bräuchten das Paket @code{guile-json} auf der Erstellungsseite, dann könnten Sie es hiermit bekommen:"
 
 #. type: lisp
-#: doc/guix.texi:7651
+#: doc/guix.texi:9277
 #, no-wrap
 msgid ""
 "(use-modules (gnu packages guile))  ;for 'guile-json'\n"
@@ -14691,7 +17449,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:7657
+#: doc/guix.texi:9283
 #, no-wrap
 msgid ""
 "(with-extensions (list guile-json)\n"
@@ -14707,184 +17465,184 @@ msgstr ""
 "                        …)))\n"
 
 #. type: Plain text
-#: doc/guix.texi:7660
+#: doc/guix.texi:9286
 msgid "The syntactic form to construct gexps is summarized below."
 msgstr "Die syntaktische Form, in der G-Ausdrücke konstruiert werden, ist im Folgenden zusammengefasst."
 
 #. type: deffn
-#: doc/guix.texi:7661
+#: doc/guix.texi:9287
 #, no-wrap
 msgid "{Scheme Syntax} #~@var{exp}"
 msgstr "{Scheme-Syntax} #~@var{Ausdruck}"
 
 #. type: deffnx
-#: doc/guix.texi:7662
+#: doc/guix.texi:9288
 #, no-wrap
 msgid "{Scheme Syntax} (gexp @var{exp})"
 msgstr "{Scheme-Syntax} (gexp @var{Ausdruck})"
 
 #. type: deffn
-#: doc/guix.texi:7665
+#: doc/guix.texi:9291
 msgid "Return a G-expression containing @var{exp}.  @var{exp} may contain one or more of the following forms:"
 msgstr "Liefert einen G-Ausdruck, der den @var{Ausdruck} enthält. Der @var{Ausdruck} kann eine oder mehrere der folgenden Formen enthalten:"
 
 #. type: item
-#: doc/guix.texi:7667
+#: doc/guix.texi:9293
 #, no-wrap
 msgid "#$@var{obj}"
 msgstr "#$@var{Objekt}"
 
 #. type: itemx
-#: doc/guix.texi:7668
+#: doc/guix.texi:9294
 #, no-wrap
 msgid "(ungexp @var{obj})"
 msgstr "(ungexp @var{Objekt})"
 
 #. type: table
-#: doc/guix.texi:7673
+#: doc/guix.texi:9299
 msgid "Introduce a reference to @var{obj}.  @var{obj} may have one of the supported types, for example a package or a derivation, in which case the @code{ungexp} form is replaced by its output file name---e.g., @code{\"/gnu/store/@dots{}-coreutils-8.22}."
 msgstr "Eine Referenz auf das @var{Objekt} einführen. Das @var{Objekt} kann einen der unterstützten Typen haben, zum Beispiel ein Paket oder eine Ableitung, so dass die @code{ungexp}-Form durch deren Ausgabedateiname ersetzt wird — z.B.@: @code{\"/gnu/store/…-coreutils-8.22}."
 
 #. type: table
-#: doc/guix.texi:7676
+#: doc/guix.texi:9302
 msgid "If @var{obj} is a list, it is traversed and references to supported objects are substituted similarly."
 msgstr "Wenn das @var{Objekt} eine Liste ist, wird diese durchlaufen und alle unterstützten Objekte darin auf diese Weise ersetzt."
 
 #. type: table
-#: doc/guix.texi:7679
+#: doc/guix.texi:9305
 msgid "If @var{obj} is another gexp, its contents are inserted and its dependencies are added to those of the containing gexp."
 msgstr "Wenn das @var{Objekt} ein anderer G-Ausdruck ist, wird sein Inhalt eingefügt und seine Abhängigkeiten zu denen des äußeren G-Ausdrucks hinzugefügt."
 
 #. type: table
-#: doc/guix.texi:7681
+#: doc/guix.texi:9307
 msgid "If @var{obj} is another kind of object, it is inserted as is."
 msgstr "Wenn das @var{Objekt} eine andere Art von Objekt ist, wird es so wie es ist eingefügt."
 
 #. type: item
-#: doc/guix.texi:7682
+#: doc/guix.texi:9308
 #, no-wrap
 msgid "#$@var{obj}:@var{output}"
 msgstr "#$@var{Objekt}:@var{Ausgabe}"
 
 #. type: itemx
-#: doc/guix.texi:7683
+#: doc/guix.texi:9309
 #, no-wrap
 msgid "(ungexp @var{obj} @var{output})"
 msgstr "(ungexp @var{Objekt} @var{Ausgabe})"
 
 #. type: table
-#: doc/guix.texi:7687
+#: doc/guix.texi:9313
 msgid "This is like the form above, but referring explicitly to the @var{output} of @var{obj}---this is useful when @var{obj} produces multiple outputs (@pxref{Packages with Multiple Outputs})."
 msgstr "Dies verhält sich wie die Form oben, bezieht sich aber ausdrücklich auf die angegebene @var{Ausgabe} des @var{Objekt}s — dies ist nützlich, wenn das @var{Objekt} mehrere Ausgaben generiert (siehe @ref{Packages with Multiple Outputs})."
 
 #. type: item
-#: doc/guix.texi:7688
+#: doc/guix.texi:9314
 #, no-wrap
 msgid "#+@var{obj}"
 msgstr "#+@var{Objekt}"
 
 #. type: itemx
-#: doc/guix.texi:7689
+#: doc/guix.texi:9315
 #, no-wrap
 msgid "#+@var{obj}:output"
 msgstr "#+@var{Objekt}:@var{Ausgabe}"
 
 #. type: itemx
-#: doc/guix.texi:7690
+#: doc/guix.texi:9316
 #, no-wrap
 msgid "(ungexp-native @var{obj})"
 msgstr "(ungexp-native @var{Objekt})"
 
 #. type: itemx
-#: doc/guix.texi:7691
+#: doc/guix.texi:9317
 #, no-wrap
 msgid "(ungexp-native @var{obj} @var{output})"
 msgstr "(ungexp-native @var{Objekt} @var{Ausgabe})"
 
 #. type: table
-#: doc/guix.texi:7694
+#: doc/guix.texi:9320
 msgid "Same as @code{ungexp}, but produces a reference to the @emph{native} build of @var{obj} when used in a cross compilation context."
 msgstr "Das Gleiche wie @code{ungexp}, jedoch wird im Kontext einer Cross-Kompilierung eine Referenz auf die @emph{native} Erstellung des @var{Objekt}s eingefügt."
 
 #. type: item
-#: doc/guix.texi:7695
+#: doc/guix.texi:9321
 #, no-wrap
 msgid "#$output[:@var{output}]"
 msgstr "#$output[:@var{Ausgabe}]"
 
 #. type: itemx
-#: doc/guix.texi:7696
+#: doc/guix.texi:9322
 #, no-wrap
 msgid "(ungexp output [@var{output}])"
 msgstr "(ungexp output [@var{Ausgabe}])"
 
 #. type: table
-#: doc/guix.texi:7699
+#: doc/guix.texi:9325
 msgid "Insert a reference to derivation output @var{output}, or to the main output when @var{output} is omitted."
 msgstr "Fügt eine Referenz auf die angegebene @var{Ausgabe} dieser Ableitung ein, oder auf die Hauptausgabe, wenn keine @var{Ausgabe} angegeben wurde."
 
 #. type: table
-#: doc/guix.texi:7701
+#: doc/guix.texi:9327
 msgid "This only makes sense for gexps passed to @code{gexp->derivation}."
 msgstr "Dies ist nur bei G-Ausdrücken sinnvoll, die an @code{gexp->derivation} übergeben werden."
 
 #. type: item
-#: doc/guix.texi:7702
+#: doc/guix.texi:9328
 #, no-wrap
 msgid "#$@@@var{lst}"
 msgstr "#$@@@var{Liste}"
 
 #. type: itemx
-#: doc/guix.texi:7703
+#: doc/guix.texi:9329
 #, no-wrap
 msgid "(ungexp-splicing @var{lst})"
 msgstr "(ungexp-splicing @var{Liste})"
 
 #. type: table
-#: doc/guix.texi:7706
+#: doc/guix.texi:9332
 msgid "Like the above, but splices the contents of @var{lst} inside the containing list."
 msgstr "Das Gleiche wie oben, jedoch wird nur der Inhalt der @var{Liste} in die äußere Liste eingespleißt."
 
 #. type: item
-#: doc/guix.texi:7707
+#: doc/guix.texi:9333
 #, no-wrap
 msgid "#+@@@var{lst}"
 msgstr "#+@@@var{Liste}"
 
 #. type: itemx
-#: doc/guix.texi:7708
+#: doc/guix.texi:9334
 #, no-wrap
 msgid "(ungexp-native-splicing @var{lst})"
 msgstr "(ungexp-native-splicing @var{Liste})"
 
 #. type: table
-#: doc/guix.texi:7711
+#: doc/guix.texi:9337
 msgid "Like the above, but refers to native builds of the objects listed in @var{lst}."
 msgstr "Das Gleiche, aber referenziert werden native Erstellungen der Objekte in der @var{Liste}."
 
 #. type: deffn
-#: doc/guix.texi:7716
-msgid "G-expressions created by @code{gexp} or @code{#~} are run-time objects of the @code{gexp?} type (see below.)"
+#: doc/guix.texi:9342
+msgid "G-expressions created by @code{gexp} or @code{#~} are run-time objects of the @code{gexp?} type (see below)."
 msgstr "G-Ausdrücke, die mit @code{gexp} oder @code{#~} erzeugt wurden, sind zur Laufzeit Objekte vom Typ @code{gexp?} (siehe unten)."
 
 #. type: deffn
-#: doc/guix.texi:7718
+#: doc/guix.texi:9344
 #, no-wrap
 msgid "{Scheme Syntax} with-imported-modules @var{modules} @var{body}@dots{}"
 msgstr "{Scheme-Syntax} with-imported-modules @var{Module} @var{Rumpf}…"
 
 #. type: deffn
-#: doc/guix.texi:7721
+#: doc/guix.texi:9347
 msgid "Mark the gexps defined in @var{body}@dots{} as requiring @var{modules} in their execution environment."
 msgstr "Markiert die in @var{Rumpf}…@: definierten G-Ausdrücke, dass sie in ihrer Ausführungsumgebung die angegebenen @var{Module} brauchen."
 
 #. type: deffn
-#: doc/guix.texi:7725
+#: doc/guix.texi:9351
 msgid "Each item in @var{modules} can be the name of a module, such as @code{(guix build utils)}, or it can be a module name, followed by an arrow, followed by a file-like object:"
 msgstr "Jedes Objekt unter den @var{Module}n kann der Name eines Moduls wie @code{(guix build utils)} sein, oder es kann nacheinander ein Modulname, ein Pfeil und ein dateiartiges Objekt sein:"
 
 #. type: lisp
-#: doc/guix.texi:7731
+#: doc/guix.texi:9357
 #, no-wrap
 msgid ""
 "`((guix build utils)\n"
@@ -14898,80 +17656,80 @@ msgstr ""
 "                                  #~(define-module …))))\n"
 
 #. type: deffn
-#: doc/guix.texi:7736
+#: doc/guix.texi:9362
 msgid "In the example above, the first two modules are taken from the search path, and the last one is created from the given file-like object."
 msgstr "Im Beispiel oben werden die ersten beiden Module vom Suchpfad genommen und das letzte aus dem angegebenen dateiartigen Objekt erzeugt."
 
 #. type: deffn
-#: doc/guix.texi:7740
+#: doc/guix.texi:9366
 msgid "This form has @emph{lexical} scope: it has an effect on the gexps directly defined in @var{body}@dots{}, but not on those defined, say, in procedures called from @var{body}@dots{}."
 msgstr "Diese Form hat einen @emph{lexikalischen} Sichtbarkeitsbereich: Sie wirkt sich auf die direkt in @var{Rumpf}…@: definierten G-Ausdrücke aus, aber nicht auf jene, die, sagen wir, in aus @var{Rumpf}…@: heraus aufgerufenen Prozeduren definiert wurden."
 
 #. type: deffn
-#: doc/guix.texi:7742
+#: doc/guix.texi:9368
 #, no-wrap
 msgid "{Scheme Syntax} with-extensions @var{extensions} @var{body}@dots{}"
 msgstr "{Scheme-Syntax} with-extensions @var{Erweiterungen} @var{Rumpf}…"
 
 #. type: deffn
-#: doc/guix.texi:7747
+#: doc/guix.texi:9373
 msgid "Mark the gexps defined in @var{body}@dots{} as requiring @var{extensions} in their build and execution environment.  @var{extensions} is typically a list of package objects such as those defined in the @code{(gnu packages guile)} module."
 msgstr "Markiert die in @var{Rumpf}…@: definierten G-Ausdrücke, dass sie @var{Erweiterungen} in ihrer Erstellungs- und Ausführungsumgebung benötigen. @var{Erweiterungen} sind typischerweise eine Liste von Paketobjekten wie zum Beispiel die im Modul @code{(gnu packages guile)} definierten."
 
 #. type: deffn
-#: doc/guix.texi:7752
+#: doc/guix.texi:9378
 msgid "Concretely, the packages listed in @var{extensions} are added to the load path while compiling imported modules in @var{body}@dots{}; they are also added to the load path of the gexp returned by @var{body}@dots{}."
 msgstr "Konkret werden die unter den @var{Erweiterungen} aufgeführten Pakete zum Ladepfad hinzugefügt, während die in @var{Rumpf}…@: aufgeführten importierten Module kompiliert werden und sie werden auch zum Ladepfad des von @var{Rumpf}…@: gelieferten G-Ausdrucks hinzugefügt."
 
 #. type: deffn
-#: doc/guix.texi:7754
+#: doc/guix.texi:9380
 #, no-wrap
 msgid "{Scheme Procedure} gexp? @var{obj}"
 msgstr "{Scheme-Prozedur} gexp? @var{Objekt}"
 
 #. type: deffn
-#: doc/guix.texi:7756
+#: doc/guix.texi:9382
 msgid "Return @code{#t} if @var{obj} is a G-expression."
 msgstr "Liefert @code{#t}, wenn das @var{Objekt} ein G-Ausdruck ist."
 
 #. type: Plain text
-#: doc/guix.texi:7762
-msgid "G-expressions are meant to be written to disk, either as code building some derivation, or as plain files in the store.  The monadic procedures below allow you to do that (@pxref{The Store Monad}, for more information about monads.)"
+#: doc/guix.texi:9388
+msgid "G-expressions are meant to be written to disk, either as code building some derivation, or as plain files in the store.  The monadic procedures below allow you to do that (@pxref{The Store Monad}, for more information about monads)."
 msgstr "G-Ausdrücke sind dazu gedacht, auf die Platte geschrieben zu werden, entweder als Code, der eine Ableitung erstellt, oder als einfache Dateien im Store. Die monadischen Prozeduren unten ermöglichen Ihnen das (siehe @ref{The Store Monad}, wenn Sie mehr Informationen über Monaden suchen)."
 
 #. type: deffn
-#: doc/guix.texi:7763
+#: doc/guix.texi:9389
 #, no-wrap
 msgid "{Monadic Procedure} gexp->derivation @var{name} @var{exp} @"
 msgstr "{Monadische Prozedur} gexp->derivation @var{Name} @var{Ausdruck} @"
 
 #. type: deffn
-#: doc/guix.texi:7781
-msgid "[#:system (%current-system)] [#:target #f] [#:graft? #t] @ [#:hash #f] [#:hash-algo #f] @ [#:recursive? #f] [#:env-vars '()] [#:modules '()] @ [#:module-path @var{%load-path}] @ [#:effective-version \"2.2\"] @ [#:references-graphs #f] [#:allowed-references #f] @ [#:disallowed-references #f] @ [#:leaked-env-vars #f] @ [#:script-name (string-append @var{name} \"-builder\")] @ [#:deprecation-warnings #f] @ [#:local-build? #f] [#:substitutable? #t] @ [#:properties '()] [#:guile-for-build #f] Return a derivation @var{name} that runs @var{exp} (a gexp) with @var{guile-for-build} (a derivation) on @var{system}; @var{exp} is stored in a file called @var{script-name}.  When @var{target} is true, it is used as the cross-compilation target triplet for packages referred to by @var{exp}."
-msgstr "[#:system (%current-system)] [#:target #f] [#:graft? #t] @ [#:hash #f] [#:hash-algo #f] @ [#:recursive? #f] [#:env-vars '()] [#:modules '()] @ [#:module-path @var{%load-path}] @ [#:effective-version \"2.2\"] @ [#:references-graphs #f] [#:allowed-references #f] @ [#:disallowed-references #f] @ [#:leaked-env-vars #f] @ [#:script-name (string-append @var{Name} \"-builder\")] @ [#:deprecation-warnings #f] @ [#:local-build? #f] [#:substitutable? #t] @ [#:properties '()] [#:guile-for-build #f] Liefert eine Ableitung unter dem @var{Name}n, die jeden @var{Ausdruck} (ein G-Ausdruck) mit @var{guile-for-build} (eine Ableitung) für das @var{System} erstellt; der @var{Ausdruck} wird dabei in einer Datei namens @var{script-name} gespeichert. Wenn „@var{target}“ wahr ist, wird es beim Cross-Kompilieren als Zieltripel für mit @var{Ausdruck} bezeichnete Pakete benutzt."
+#: doc/guix.texi:9407
+msgid "[#:system (%current-system)] [#:target #f] [#:graft? #t] @ [#:hash #f] [#:hash-algo #f] @ [#:recursive? #f] [#:env-vars '()] [#:modules '()] @ [#:module-path @code{%load-path}] @ [#:effective-version \"2.2\"] @ [#:references-graphs #f] [#:allowed-references #f] @ [#:disallowed-references #f] @ [#:leaked-env-vars #f] @ [#:script-name (string-append @var{name} \"-builder\")] @ [#:deprecation-warnings #f] @ [#:local-build? #f] [#:substitutable? #t] @ [#:properties '()] [#:guile-for-build #f] Return a derivation @var{name} that runs @var{exp} (a gexp) with @var{guile-for-build} (a derivation) on @var{system}; @var{exp} is stored in a file called @var{script-name}.  When @var{target} is true, it is used as the cross-compilation target triplet for packages referred to by @var{exp}."
+msgstr "[#:system (%current-system)] [#:target #f] [#:graft? #t] @ [#:hash #f] [#:hash-algo #f] @ [#:recursive? #f] [#:env-vars '()] [#:modules '()] @ [#:module-path @code{%load-path}] @ [#:effective-version \"2.2\"] @ [#:references-graphs #f] [#:allowed-references #f] @ [#:disallowed-references #f] @ [#:leaked-env-vars #f] @ [#:script-name (string-append @var{Name} \"-builder\")] @ [#:deprecation-warnings #f] @ [#:local-build? #f] [#:substitutable? #t] @ [#:properties '()] [#:guile-for-build #f] Liefert eine Ableitung unter dem @var{Name}n, die jeden @var{Ausdruck} (ein G-Ausdruck) mit @var{guile-for-build} (eine Ableitung) für das @var{System} erstellt; der @var{Ausdruck} wird dabei in einer Datei namens @var{script-name} gespeichert. Wenn „@var{target}“ wahr ist, wird es beim Cross-Kompilieren als Zieltripel für mit @var{Ausdruck} bezeichnete Pakete benutzt."
 
 #. type: deffn
-#: doc/guix.texi:7789
+#: doc/guix.texi:9415
 msgid "@var{modules} is deprecated in favor of @code{with-imported-modules}.  Its meaning is to make @var{modules} available in the evaluation context of @var{exp}; @var{modules} is a list of names of Guile modules searched in @var{module-path} to be copied in the store, compiled, and made available in the load path during the execution of @var{exp}---e.g., @code{((guix build utils) (guix build gnu-build-system))}."
 msgstr "@var{modules} gilt als veraltet; stattdessen sollte @code{with-imported-modules} benutzt werden. Die Bedeutung ist, dass die @var{Module} im Ausführungskontext des @var{Ausdruck}s verfügbar gemacht werden; @var{modules} ist dabei eine Liste von Namen von Guile-Modulen, die im Modulpfad @var{module-path} gesucht werden, um sie in den Store zu kopieren, zu kompilieren und im Ladepfad während der Ausführung des @var{Ausdruck}s verfügbar zu machen — z.B.@: @code{((guix build utils) (guix build gnu-build-system))}."
 
 #. type: deffn
-#: doc/guix.texi:7792
+#: doc/guix.texi:9418
 msgid "@var{effective-version} determines the string to use when adding extensions of @var{exp} (see @code{with-extensions}) to the search path---e.g., @code{\"2.2\"}."
 msgstr "@var{effective-version} bestimmt, unter welcher Zeichenkette die Erweiterungen des @var{Ausdruck}s zum Suchpfad hinzugefügt werden (siehe @code{with-extensions}) — z.B.@: @code{\"2.2\"}."
 
 #. type: deffn
-#: doc/guix.texi:7795
+#: doc/guix.texi:9421
 msgid "@var{graft?} determines whether packages referred to by @var{exp} should be grafted when applicable."
 msgstr "@var{graft?} bestimmt, ob vom @var{Ausdruck} benannte Pakete veredelt werden sollen, falls Veredelungen zur Verfügung stehen."
 
 #. type: deffn
-#: doc/guix.texi:7798
+#: doc/guix.texi:9424
 msgid "When @var{references-graphs} is true, it must be a list of tuples of one of the following forms:"
 msgstr "Ist @var{references-graphs} wahr, muss es eine Liste von Tupeln in einer der folgenden Formen sein:"
 
 #. type: example
-#: doc/guix.texi:7805
+#: doc/guix.texi:9431
 #, no-wrap
 msgid ""
 "(@var{file-name} @var{package})\n"
@@ -14987,38 +17745,38 @@ msgstr ""
 "(@var{Dateiname} @var{Store-Objekt})\n"
 
 #. type: deffn
-#: doc/guix.texi:7811
+#: doc/guix.texi:9437
 msgid "The right-hand-side of each element of @var{references-graphs} is automatically made an input of the build process of @var{exp}.  In the build environment, each @var{file-name} contains the reference graph of the corresponding item, in a simple text format."
 msgstr "Bei jedem Element von @var{references-graphs} wird das rechts Stehende automatisch zu einer Eingabe des Erstellungsprozesses vom @var{Ausdruck} gemacht. In der Erstellungsumgebung enthält das, was mit @var{Dateiname} bezeichnet wird, den Referenzgraphen des entsprechenden Objekts in einem einfachen Textformat."
 
 #. type: deffn
-#: doc/guix.texi:7817
+#: doc/guix.texi:9443
 msgid "@var{allowed-references} must be either @code{#f} or a list of output names and packages.  In the latter case, the list denotes store items that the result is allowed to refer to.  Any reference to another store item will lead to a build error.  Similarly for @var{disallowed-references}, which can list items that must not be referenced by the outputs."
 msgstr "@var{allowed-references} muss entweder @code{#f} oder eine Liste von Ausgabenamen und Paketen sein. Eine solche Liste benennt Store-Objekte, die das Ergebnis referenzieren darf. Jede Referenz auf ein nicht dort aufgeführtes Store-Objekt löst einen Erstellungsfehler aus. Genauso funktioniert @var{disallowed-references}, was eine Liste von Objekten sein kann, die von den Ausgaben nicht referenziert werden dürfen."
 
 #. type: deffn
-#: doc/guix.texi:7820
+#: doc/guix.texi:9446
 msgid "@var{deprecation-warnings} determines whether to show deprecation warnings while compiling modules.  It can be @code{#f}, @code{#t}, or @code{'detailed}."
 msgstr "@var{deprecation-warnings} bestimmt, ob beim Kompilieren von Modulen Warnungen angezeigt werden sollen, wenn auf als veraltet markierten Code zugegriffen wird. @var{deprecation-warnings} kann @code{#f}, @code{#t} oder @code{'detailed} (detailliert) sein."
 
 #. type: deffn
-#: doc/guix.texi:7822
+#: doc/guix.texi:9448
 msgid "The other arguments are as for @code{derivation} (@pxref{Derivations})."
 msgstr "Die anderen Argumente verhalten sich wie bei @code{derivation} (siehe @ref{Derivations})."
 
 #. type: cindex
-#: doc/guix.texi:7824
+#: doc/guix.texi:9450
 #, no-wrap
 msgid "file-like objects"
 msgstr "dateiartige Objekte"
 
 #. type: Plain text
-#: doc/guix.texi:7829
+#: doc/guix.texi:9455
 msgid "The @code{local-file}, @code{plain-file}, @code{computed-file}, @code{program-file}, and @code{scheme-file} procedures below return @dfn{file-like objects}.  That is, when unquoted in a G-expression, these objects lead to a file in the store.  Consider this G-expression:"
 msgstr "Die im Folgenden erklärten Prozeduren @code{local-file}, @code{plain-file}, @code{computed-file}, @code{program-file} und @code{scheme-file} liefern @dfn{dateiartige Objekte}. Das bedeutet, dass diese Objekte, wenn sie in einem G-Ausdruck demaskiert werden, zu einer Datei im Store führen. Betrachten Sie zum Beispiel diesen G-Ausdruck:"
 
 #. type: lisp
-#: doc/guix.texi:7833
+#: doc/guix.texi:9459
 #, no-wrap
 msgid ""
 "#~(system* #$(file-append glibc \"/sbin/nscd\") \"-f\"\n"
@@ -15028,76 +17786,76 @@ msgstr ""
 "           #$(local-file \"/tmp/my-nscd.conf\"))\n"
 
 #. type: Plain text
-#: doc/guix.texi:7842
+#: doc/guix.texi:9468
 msgid "The effect here is to ``intern'' @file{/tmp/my-nscd.conf} by copying it to the store.  Once expanded, for instance @i{via} @code{gexp->derivation}, the G-expression refers to that copy under @file{/gnu/store}; thus, modifying or removing the file in @file{/tmp} does not have any effect on what the G-expression does.  @code{plain-file} can be used similarly; it differs in that the file content is directly passed as a string."
 msgstr "Der Effekt hiervon ist, dass @file{/tmp/my-nscd.conf} „interniert“ wird, indem es in den Store kopiert wird. Sobald er umgeschrieben wurde, zum Beispiel über @code{gexp->derivation}, referenziert der G-Ausdruck diese Kopie im @file{/gnu/store}. Die Datei in @file{/tmp} zu bearbeiten oder zu löschen, hat dann keinen Effekt mehr darauf, was der G-Ausdruck tut. @code{plain-file} kann in ähnlicher Weise benutzt werden, es unterscheidet sich aber darin, dass dort der Prozedur der Inhalt der Datei als eine Zeichenkette übergeben wird."
 
 #. type: deffn
-#: doc/guix.texi:7843
+#: doc/guix.texi:9469
 #, no-wrap
 msgid "{Scheme Procedure} local-file @var{file} [@var{name}] @"
 msgstr "{Scheme-Prozedur} local-file @var{Datei} [@var{Name}] @"
 
 #. type: deffn
-#: doc/guix.texi:7852
+#: doc/guix.texi:9478
 msgid "[#:recursive? #f] [#:select? (const #t)] Return an object representing local file @var{file} to add to the store; this object can be used in a gexp.  If @var{file} is a literal string denoting a relative file name, it is looked up relative to the source file where it appears; if @var{file} is not a literal string, it is looked up relative to the current working directory at run time.  @var{file} will be added to the store under @var{name}--by default the base name of @var{file}."
 msgstr "[#:recursive? #f] [#:select? (const #t)] Liefert ein Objekt, dass die lokale Datei @var{Datei} repräsentiert und sie zum Store hinzufügen lässt; dieses Objekt kann in einem G-Ausdruck benutzt werden. Wurde für die @var{Datei} ein relativer Dateiname als literaler Ausdruck angegeben, wird sie relativ zur Quelldatei gesucht, in der diese Form steht. Wurde die @var{Datei} @emph{nicht} als literale Zeichenkette angegeben, wird sie zur Laufzeit relativ zum aktuellen Arbeitsverzeichnis gesucht. Die @var{Datei} wird unter dem angegebenen @var{Name}n im Store abgelegt — als Vorgabe wird dabei der Basisname der @var{Datei} genommen."
 
 #. type: deffn
-#: doc/guix.texi:7864
+#: doc/guix.texi:9490
 msgid "This is the declarative counterpart of the @code{interned-file} monadic procedure (@pxref{The Store Monad, @code{interned-file}})."
 msgstr "Dies ist das deklarative Gegenstück zur monadischen Prozedur @code{interned-file} (siehe @ref{The Store Monad, @code{interned-file}})."
 
 #. type: deffn
-#: doc/guix.texi:7866
+#: doc/guix.texi:9492
 #, no-wrap
 msgid "{Scheme Procedure} plain-file @var{name} @var{content}"
 msgstr "{Scheme-Prozedur} plain-file @var{Name} @var{Inhalt}"
 
 #. type: deffn
-#: doc/guix.texi:7869
+#: doc/guix.texi:9495
 msgid "Return an object representing a text file called @var{name} with the given @var{content} (a string or a bytevector) to be added to the store."
 msgstr "Liefert ein Objekt, das eine Textdatei mit dem angegebenen @var{Name}n repräsentiert, die den angegebenen @var{Inhalt} hat (eine Zeichenkette oder ein Bytevektor), welche zum Store hinzugefügt werden soll."
 
 #. type: deffn
-#: doc/guix.texi:7871
+#: doc/guix.texi:9497
 msgid "This is the declarative counterpart of @code{text-file}."
 msgstr "Dies ist das deklarative Gegenstück zu @code{text-file}."
 
 #. type: deffn
-#: doc/guix.texi:7873
+#: doc/guix.texi:9499
 #, no-wrap
 msgid "{Scheme Procedure} computed-file @var{name} @var{gexp} @"
 msgstr "{Scheme-Prozedur} computed-file @var{Name} @var{G-Ausdruck} @"
 
 #. type: deffn
-#: doc/guix.texi:7878
-msgid "[#:options '(#:local-build? #t)] Return an object representing the store item @var{name}, a file or directory computed by @var{gexp}.  @var{options} is a list of additional arguments to pass to @code{gexp->derivation}."
-msgstr "[#:options '(#:local-build? #t)] Liefert ein Objekt, das das Store-Objekt mit dem @var{Name}n repräsentiert, eine Datei oder ein Verzeichnis, das vom @var{G-Ausdruck} berechnet wurde. @var{options} ist eine Liste zusätzlicher Argumente, die an @code{gexp->derivation} übergeben werden."
+#: doc/guix.texi:9506
+msgid "[#:local-build? #t] [#:options '()] Return an object representing the store item @var{name}, a file or directory computed by @var{gexp}.  When @var{local-build?} is true (the default), the derivation is built locally.  @var{options} is a list of additional arguments to pass to @code{gexp->derivation}."
+msgstr "[#:local-build? #t] [#:options '()] Liefert ein Objekt, das das Store-Objekt mit dem @var{Name}n repräsentiert, eine Datei oder ein Verzeichnis, das vom @var{G-Ausdruck} berechnet wurde. Wenn @var{local-build?} auf wahr steht (wie vorgegeben), wird auf der lokalen Maschine erstellt. @var{options} ist eine Liste zusätzlicher Argumente, die an @code{gexp->derivation} übergeben werden."
 
 #. type: deffn
-#: doc/guix.texi:7880
+#: doc/guix.texi:9508
 msgid "This is the declarative counterpart of @code{gexp->derivation}."
 msgstr "Dies ist das deklarative Gegenstück zu @code{gexp->derivation}."
 
 #. type: deffn
-#: doc/guix.texi:7882
+#: doc/guix.texi:9510
 #, no-wrap
 msgid "{Monadic Procedure} gexp->script @var{name} @var{exp} @"
 msgstr "{Monadische Prozedur} gexp->script @var{Name} @var{Ausdruck} @"
 
 #. type: deffn
-#: doc/guix.texi:7888
+#: doc/guix.texi:9516
 msgid "[#:guile (default-guile)] [#:module-path %load-path] @ [#:system (%current-system)] [#:target #f] Return an executable script @var{name} that runs @var{exp} using @var{guile}, with @var{exp}'s imported modules in its search path.  Look up @var{exp}'s modules in @var{module-path}."
 msgstr "[#:guile (default-guile)] [#:module-path %load-path] @ [#:system (%current-system)] [#:target #f] Liefert ein ausführbares Skript namens @var{Name}, das den @var{Ausdruck} mit dem angegebenen @var{guile} ausführt, wobei vom @var{Ausdruck} importierte Module in seinem Suchpfad stehen. Die Module des @var{Ausdruck}s werden dazu im Modulpfad @var{module-path} gesucht."
 
 #. type: deffn
-#: doc/guix.texi:7891
+#: doc/guix.texi:9519
 msgid "The example below builds a script that simply invokes the @command{ls} command:"
 msgstr "Folgendes Beispiel erstellt ein Skript, das einfach nur den Befehl @command{ls} ausführt:"
 
 #. type: lisp
-#: doc/guix.texi:7894
+#: doc/guix.texi:9522
 #, no-wrap
 msgid ""
 "(use-modules (guix gexp) (gnu packages base))\n"
@@ -15107,7 +17865,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:7898
+#: doc/guix.texi:9526
 #, no-wrap
 msgid ""
 "(gexp->script \"list-files\"\n"
@@ -15119,12 +17877,12 @@ msgstr ""
 "                       \"ls\"))\n"
 
 #. type: deffn
-#: doc/guix.texi:7903
+#: doc/guix.texi:9531
 msgid "When ``running'' it through the store (@pxref{The Store Monad, @code{run-with-store}}), we obtain a derivation that produces an executable file @file{/gnu/store/@dots{}-list-files} along these lines:"
 msgstr "Lässt man es durch den Store „laufen“ (siehe @ref{The Store Monad, @code{run-with-store}}), erhalten wir eine Ableitung, die eine ausführbare Datei @file{/gnu/store/…-list-files} generiert, ungefähr so:"
 
 #. type: example
-#: doc/guix.texi:7908
+#: doc/guix.texi:9536
 #, no-wrap
 msgid ""
 "#!/gnu/store/@dots{}-guile-2.0.11/bin/guile -ds\n"
@@ -15136,76 +17894,76 @@ msgstr ""
 "(execl \"/gnu/store/…-coreutils-8.22\"/bin/ls\" \"ls\")\n"
 
 #. type: deffn
-#: doc/guix.texi:7911
+#: doc/guix.texi:9539
 #, no-wrap
 msgid "{Scheme Procedure} program-file @var{name} @var{exp} @"
 msgstr "{Scheme-Prozedur} program-file @var{Name} @var{G-Ausdruck} @"
 
 #. type: deffn
-#: doc/guix.texi:7916
+#: doc/guix.texi:9544
 msgid "[#:guile #f] [#:module-path %load-path] Return an object representing the executable store item @var{name} that runs @var{gexp}.  @var{guile} is the Guile package used to execute that script.  Imported modules of @var{gexp} are looked up in @var{module-path}."
 msgstr "[#:guile #f] [#:module-path %load-path] Liefert ein Objekt, das eine ausführbare Store-Datei @var{Name} repräsentiert, die den @var{G-Ausdruck} ausführt. @var{guile} ist das zu verwendende Guile-Paket, mit dem das Skript ausgeführt werden kann. Importierte Module des @var{G-Ausdruck}s werden im Modulpfad @var{module-path} gesucht."
 
 #. type: deffn
-#: doc/guix.texi:7918
+#: doc/guix.texi:9546
 msgid "This is the declarative counterpart of @code{gexp->script}."
 msgstr "Dies ist das deklarative Gegenstück zu @code{gexp->script}."
 
 #. type: deffn
-#: doc/guix.texi:7920
+#: doc/guix.texi:9548
 #, no-wrap
 msgid "{Monadic Procedure} gexp->file @var{name} @var{exp} @"
 msgstr "{Monadische Prozedur} gexp->file @var{Name} @var{G-Ausdruck} @"
 
 #. type: deffn
-#: doc/guix.texi:7927
+#: doc/guix.texi:9555
 msgid "[#:set-load-path? #t] [#:module-path %load-path] @ [#:splice? #f] @ [#:guile (default-guile)] Return a derivation that builds a file @var{name} containing @var{exp}.  When @var{splice?} is true, @var{exp} is considered to be a list of expressions that will be spliced in the resulting file."
 msgstr "[#:set-load-path? #t] [#:module-path %load-path] @ [#:splice? #f] @ [#:guile (default-guile)] Liefert eine Ableitung, die eine Datei @var{Name} erstellen wird, deren Inhalt der @var{G-Ausdruck} ist. Ist @var{splice?} wahr, dann wird @var{G-Ausdruck} stattdessen als eine Liste von mehreren G-Ausdrücken behandelt, die alle in die resultierende Datei gespleißt werden."
 
 #. type: deffn
-#: doc/guix.texi:7932
+#: doc/guix.texi:9560
 msgid "When @var{set-load-path?} is true, emit code in the resulting file to set @code{%load-path} and @code{%load-compiled-path} to honor @var{exp}'s imported modules.  Look up @var{exp}'s modules in @var{module-path}."
 msgstr "Ist @var{set-load-path?} wahr, wird in die resultierende Datei Code hinzugefügt, der den Ladepfad @code{%load-path} und den Ladepfad für kompilierte Dateien @code{%load-compiled-path} festlegt, die für die importierten Module des @var{G-Ausdruck}s nötig sind. Die Module des @var{G-Ausdruck}s werden im Modulpfad @var{module-path} gesucht."
 
 #. type: deffn
-#: doc/guix.texi:7935
+#: doc/guix.texi:9563
 msgid "The resulting file holds references to all the dependencies of @var{exp} or a subset thereof."
 msgstr "Die resultierende Datei referenziert alle Abhängigkeiten des @var{G-Ausdruck}s oder eine Teilmenge davon."
 
 #. type: deffn
-#: doc/guix.texi:7937
+#: doc/guix.texi:9565
 #, no-wrap
-msgid "{Scheme Procedure} scheme-file @var{name} @var{exp} [#:splice? #f]"
-msgstr "{Scheme-Prozedur} scheme-file @var{Name} @var{G-Ausdruck} [#:splice? #f]"
+msgid "{Scheme Procedure} scheme-file @var{name} @var{exp} @"
+msgstr "{Scheme-Prozedur} scheme-file @var{Name} @var{Ausdruck} @"
 
 #. type: deffn
-#: doc/guix.texi:7940
-msgid "Return an object representing the Scheme file @var{name} that contains @var{exp}."
-msgstr "Liefert ein Objekt, das die Scheme-Datei @var{Name} mit dem @var{G-Ausdruck} als Inhalt repräsentiert."
+#: doc/guix.texi:9569
+msgid "[#:splice? #f] [#:set-load-path? #t] Return an object representing the Scheme file @var{name} that contains @var{exp}."
+msgstr "[#:splice? #f] [#:set-load-path? #t] Liefert ein Objekt, das die Scheme-Datei @var{Name} mit dem @var{G-Ausdruck} als Inhalt repräsentiert."
 
 #. type: deffn
-#: doc/guix.texi:7942
+#: doc/guix.texi:9571
 msgid "This is the declarative counterpart of @code{gexp->file}."
 msgstr "Dies ist das deklarative Gegenstück zu @code{gexp->file}."
 
 #. type: deffn
-#: doc/guix.texi:7944
+#: doc/guix.texi:9573
 #, no-wrap
 msgid "{Monadic Procedure} text-file* @var{name} @var{text} @dots{}"
 msgstr "{Monadische Prozedur} text-file* @var{Name} @var{Text} …"
 
 #. type: deffn
-#: doc/guix.texi:7950
+#: doc/guix.texi:9579
 msgid "Return as a monadic value a derivation that builds a text file containing all of @var{text}.  @var{text} may list, in addition to strings, objects of any type that can be used in a gexp: packages, derivations, local file objects, etc.  The resulting store file holds references to all these."
 msgstr "Liefert eine Ableitung als monadischen Wert, welche eine Textdatei erstellt, in der der gesamte @var{Text} enthalten ist. @var{Text} kann eine Folge nicht nur von Zeichenketten, sondern auch Objekten beliebigen Typs sein, die in einem G-Ausdruck benutzt werden können, also Paketen, Ableitungen, Objekte lokaler Dateien und so weiter. Die resultierende Store-Datei referenziert alle davon."
 
 #. type: deffn
-#: doc/guix.texi:7955
+#: doc/guix.texi:9584
 msgid "This variant should be preferred over @code{text-file} anytime the file to create will reference items from the store.  This is typically the case when building a configuration file that embeds store file names, like this:"
 msgstr "Diese Variante sollte gegenüber @code{text-file} bevorzugt verwendet werden, wann immer die zu erstellende Datei Objekte im Store referenzieren wird. Typischerweise ist das der Fall, wenn eine Konfigurationsdatei erstellt wird, die Namen von Store-Dateien enthält, so wie hier:"
 
 #. type: lisp
-#: doc/guix.texi:7963
+#: doc/guix.texi:9592
 #, no-wrap
 msgid ""
 "(define (profile.sh)\n"
@@ -15223,23 +17981,23 @@ msgstr ""
 "              grep \"/bin:\" sed \"/bin\\n\"))\n"
 
 #. type: deffn
-#: doc/guix.texi:7968
+#: doc/guix.texi:9597
 msgid "In this example, the resulting @file{/gnu/store/@dots{}-profile.sh} file will reference @var{coreutils}, @var{grep}, and @var{sed}, thereby preventing them from being garbage-collected during its lifetime."
 msgstr "In diesem Beispiel wird die resultierende Datei @file{/gnu/store/…-profile.sh} sowohl @var{coreutils}, @var{grep} als auch @var{sed} referenzieren, so dass der Müllsammler diese nicht löscht, während die resultierende Datei noch lebendig ist."
 
 #. type: deffn
-#: doc/guix.texi:7970
+#: doc/guix.texi:9599
 #, no-wrap
 msgid "{Scheme Procedure} mixed-text-file @var{name} @var{text} @dots{}"
 msgstr "{Scheme-Prozedur} mixed-text-file @var{Name} @var{Text} …"
 
 #. type: deffn
-#: doc/guix.texi:7974
+#: doc/guix.texi:9603
 msgid "Return an object representing store file @var{name} containing @var{text}.  @var{text} is a sequence of strings and file-like objects, as in:"
 msgstr "Liefert ein Objekt, was die Store-Datei @var{Name} repräsentiert, die @var{Text} enthält. @var{Text} ist dabei eine Folge von Zeichenketten und dateiartigen Objekten wie zum Beispiel:"
 
 #. type: lisp
-#: doc/guix.texi:7978
+#: doc/guix.texi:9607
 #, no-wrap
 msgid ""
 "(mixed-text-file \"profile\"\n"
@@ -15249,23 +18007,23 @@ msgstr ""
 "                 \"export PATH=\" coreutils \"/bin:\" grep \"/bin\")\n"
 
 #. type: deffn
-#: doc/guix.texi:7981
+#: doc/guix.texi:9610
 msgid "This is the declarative counterpart of @code{text-file*}."
 msgstr "Dies ist das deklarative Gegenstück zu @code{text-file*}."
 
 #. type: deffn
-#: doc/guix.texi:7983
+#: doc/guix.texi:9612
 #, no-wrap
 msgid "{Scheme Procedure} file-union @var{name} @var{files}"
 msgstr "{Scheme-Prozedur} file-union @var{Name} @var{Dateien}"
 
 #. type: deffn
-#: doc/guix.texi:7988
+#: doc/guix.texi:9617
 msgid "Return a @code{<computed-file>} that builds a directory containing all of @var{files}.  Each item in @var{files} must be a two-element list where the first element is the file name to use in the new directory, and the second element is a gexp denoting the target file.  Here's an example:"
 msgstr "Liefert ein @code{<computed-file>}, das ein Verzeichnis mit allen @var{Dateien} enthält. Jedes Objekt in @var{Dateien} muss eine zweielementige Liste sein, deren erstes Element der im neuen Verzeichnis zu benutzende Dateiname ist und deren zweites Element ein G-Ausdruck ist, der die Zieldatei benennt. Hier ist ein Beispiel:"
 
 #. type: lisp
-#: doc/guix.texi:7995
+#: doc/guix.texi:9624
 #, no-wrap
 msgid ""
 "(file-union \"etc\"\n"
@@ -15281,50 +18039,50 @@ msgstr ""
 "                                     \"alias ls='ls --color=auto'\"))))\n"
 
 #. type: deffn
-#: doc/guix.texi:7998
+#: doc/guix.texi:9627
 msgid "This yields an @code{etc} directory containing these two files."
 msgstr "Dies liefert ein Verzeichnis @code{etc}, das zwei Dateien enthält."
 
 #. type: deffn
-#: doc/guix.texi:8000
+#: doc/guix.texi:9629
 #, no-wrap
 msgid "{Scheme Procedure} directory-union @var{name} @var{things}"
 msgstr "{Scheme-Prozedur} directory-union @var{Name} @var{Dinge}"
 
 #. type: deffn
-#: doc/guix.texi:8003
+#: doc/guix.texi:9632
 msgid "Return a directory that is the union of @var{things}, where @var{things} is a list of file-like objects denoting directories.  For example:"
 msgstr "Liefert ein Verzeichnis, was die Vereinigung (englisch „Union“) der @var{Dinge} darstellt, wobei @var{Dinge} eine Liste dateiartiger Objekte sein muss, die Verzeichnisse bezeichnen. Zum Beispiel:"
 
 #. type: lisp
-#: doc/guix.texi:8006
+#: doc/guix.texi:9635
 #, no-wrap
 msgid "(directory-union \"guile+emacs\" (list guile emacs))\n"
 msgstr "(directory-union \"guile+emacs\" (list guile emacs))\n"
 
 #. type: deffn
-#: doc/guix.texi:8009
+#: doc/guix.texi:9638
 msgid "yields a directory that is the union of the @code{guile} and @code{emacs} packages."
 msgstr "Das liefert ein Verzeichnis, welches die Vereinigung der Pakete @code{guile} und @code{emacs} ist."
 
 #. type: deffn
-#: doc/guix.texi:8011
+#: doc/guix.texi:9640
 #, no-wrap
 msgid "{Scheme Procedure} file-append @var{obj} @var{suffix} @dots{}"
 msgstr "{Scheme-Prozedur} file-append @var{Objekt} @var{Suffix} …"
 
 #. type: deffn
-#: doc/guix.texi:8015
+#: doc/guix.texi:9644
 msgid "Return a file-like object that expands to the concatenation of @var{obj} and @var{suffix}, where @var{obj} is a lowerable object and each @var{suffix} is a string."
 msgstr "Liefert ein dateiartiges Objekt, das zur Aneinanderreihung von @var{Objekt} und @var{Suffix} umgeschrieben wird, wobei das @var{Objekt} ein herunterbrechbares Objekt und jedes @var{Suffix} eine Zeichenkette sein muss."
 
 #. type: deffn
-#: doc/guix.texi:8017
+#: doc/guix.texi:9646
 msgid "As an example, consider this gexp:"
 msgstr "Betrachten Sie zum Beispiel diesen G-Ausdruck:"
 
 #. type: lisp
-#: doc/guix.texi:8022
+#: doc/guix.texi:9651
 #, no-wrap
 msgid ""
 "(gexp->script \"run-uname\"\n"
@@ -15336,12 +18094,12 @@ msgstr ""
 "                                        \"/bin/uname\")))\n"
 
 #. type: deffn
-#: doc/guix.texi:8025
+#: doc/guix.texi:9654
 msgid "The same effect could be achieved with:"
 msgstr "Denselben Effekt könnte man erreichen mit:"
 
 #. type: lisp
-#: doc/guix.texi:8030
+#: doc/guix.texi:9659
 #, no-wrap
 msgid ""
 "(gexp->script \"run-uname\"\n"
@@ -15353,28 +18111,79 @@ msgstr ""
 "                                        \"/bin/uname\")))\n"
 
 #. type: deffn
-#: doc/guix.texi:8036
+#: doc/guix.texi:9665
 msgid "There is one difference though: in the @code{file-append} case, the resulting script contains the absolute file name as a string, whereas in the second case, the resulting script contains a @code{(string-append @dots{})} expression to construct the file name @emph{at run time}."
 msgstr "Es gibt jedoch einen Unterschied, nämlich enthält das resultierende Skript bei @code{file-append} tatsächlich den absoluten Dateinamen als Zeichenkette, während im anderen Fall das resultierende Skript einen Ausdruck @code{(string-append …)} enthält, der den Dateinamen erst @emph{zur Laufzeit} zusammensetzt."
 
 #. type: deffn
-#: doc/guix.texi:8038
+#: doc/guix.texi:9667
+#, no-wrap
+msgid "{Scheme Syntax} let-system @var{system} @var{body}@dots{}"
+msgstr "{Scheme-Syntax} let-system @var{System} @var{Rumpf}…"
+
+#. type: deffnx
+#: doc/guix.texi:9668
+#, no-wrap
+msgid "{Scheme Syntax} let-system (@var{system} @var{target}) @var{body}@dots{}"
+msgstr "{Scheme-Syntax} let-system (@var{System} @var{Zielsystem}) @var{Rumpf}…"
+
+#. type: deffn
+#: doc/guix.texi:9671
+msgid "Bind @var{system} to the currently targeted system---e.g., @code{\"x86_64-linux\"}---within @var{body}."
+msgstr "@var{System} an das System binden, für das momentan erstellt wird — z.B.@: @code{\"x86_64-linux\"} —, während der @var{Rumpf} ausgeführt wird."
+
+#. type: deffn
+#: doc/guix.texi:9676
+msgid "In the second case, additionally bind @var{target} to the current cross-compilation target---a GNU triplet such as @code{\"arm-linux-gnueabihf\"}---or @code{#f} if we are not cross-compiling."
+msgstr "In der zweiten Form wird zusätzlich das @var{Ziel} an das aktuelle Ziel („Target“) bei der Cross-Kompilierung gebunden. Dabei handelt es sich um ein GNU-Tripel wie z.B.@: @code{\"arm-linux-gnueabihf\"} — oder um @code{#f}, wenn nicht cross-kompiliert wird."
+
+#. type: deffn
+#: doc/guix.texi:9679
+msgid "@code{let-system} is useful in the occasional case where the object spliced into the gexp depends on the target system, as in this example:"
+msgstr "@code{let-system} zu benutzen, bietet sich dann an, wenn einmal das in den G-Ausdruck gespleißte Objekt vom Zielsystem abhängen sollte, wie in diesem Beispiel:"
+
+#. type: lisp
+#: doc/guix.texi:9690
+#, no-wrap
+msgid ""
+"#~(system*\n"
+"   #+(let-system system\n"
+"       (cond ((string-prefix? \"armhf-\" system)\n"
+"              (file-append qemu \"/bin/qemu-system-arm\"))\n"
+"             ((string-prefix? \"x86_64-\" system)\n"
+"              (file-append qemu \"/bin/qemu-system-x86_64\"))\n"
+"             (else\n"
+"              (error \"dunno!\"))))\n"
+"   \"-net\" \"user\" #$image)\n"
+msgstr ""
+"#~(system*\n"
+"   #+(let-system system\n"
+"       (cond ((string-prefix? \"armhf-\" system)\n"
+"              (file-append qemu \"/bin/qemu-system-arm\"))\n"
+"             ((string-prefix? \"x86_64-\" system)\n"
+"              (file-append qemu \"/bin/qemu-system-x86_64\"))\n"
+"             (else\n"
+"              (error \"weiß nicht!\"))))\n"
+"   \"-net\" \"user\" #$image)\n"
+
+#. type: deffn
+#: doc/guix.texi:9693
 #, no-wrap
 msgid "{Scheme Syntax} with-parameters ((@var{parameter} @var{value}) @dots{}) @var{exp}"
 msgstr "{Scheme-Syntax} with-parameters ((@var{Parameter} @var{Wert}) …) @var{Ausdruck}"
 
 #. type: deffn
-#: doc/guix.texi:8044
+#: doc/guix.texi:9699
 msgid "This macro is similar to the @code{parameterize} form for dynamically-bound @dfn{parameters} (@pxref{Parameters,,, guile, GNU Guile Reference Manual}).  The key difference is that it takes effect when the file-like object returned by @var{exp} is lowered to a derivation or store item."
-msgstr "Mit diesem Makro verhält es sich ähnlich wie mit der @code{parameterize}-Form für dynamisch gebundene @dfn{Parameter} (siehe @ref{Parameters,,, guile, GNU Guile Reference Manual}). Der Hauptunterschied ist, dass es sich erst auswirkt, wenn das vom @var{Ausdruck} zurückgelieferte dateiartige Objekt auf eine Ableitung oder ein Store-Objekt heruntergebrochen wird."
+msgstr "Mit diesem Makro verhält es sich ähnlich wie mit der @code{parameterize}-Form für dynamisch gebundene @dfn{Parameter} (siehe @ref{Parameters,,, guile, Referenzhandbuch zu GNU Guile}). Der Hauptunterschied ist, dass es sich erst auswirkt, wenn das vom @var{Ausdruck} zurückgelieferte dateiartige Objekt auf eine Ableitung oder ein Store-Objekt heruntergebrochen wird."
 
 #. type: deffn
-#: doc/guix.texi:8047
+#: doc/guix.texi:9702
 msgid "A typical use of @code{with-parameters} is to force the system in effect for a given object:"
 msgstr "Eine typische Anwendung von @code{with-parameters} ist, den für ein bestimmtes Objekt geltenden Systemtyp zwingend festzulegen:"
 
 #. type: lisp
-#: doc/guix.texi:8051
+#: doc/guix.texi:9706
 #, no-wrap
 msgid ""
 "(with-parameters ((%current-system \"i686-linux\"))\n"
@@ -15384,50 +18193,98 @@ msgstr ""
 "  coreutils)\n"
 
 #. type: deffn
-#: doc/guix.texi:8055
+#: doc/guix.texi:9710
 msgid "The example above returns an object that corresponds to the i686 build of Coreutils, regardless of the current value of @code{%current-system}."
 msgstr "Obiges Beispiel liefert ein Objekt, das der Erstellung von Coreutils für die i686-Architektur entspricht, egal was der aktuelle Wert von @code{%current-system} ist."
 
 #. type: Plain text
-#: doc/guix.texi:8062
+#: doc/guix.texi:9717
 msgid "Of course, in addition to gexps embedded in ``host'' code, there are also modules containing build tools.  To make it clear that they are meant to be used in the build stratum, these modules are kept in the @code{(guix build @dots{})} name space."
 msgstr "Natürlich gibt es zusätzlich zu in „wirtsseitigem“ Code eingebetteten G-Ausdrücken auch Module mit „erstellungsseitig“ nutzbaren Werkzeugen. Um klarzustellen, dass sie dafür gedacht sind, in der Erstellungsschicht benutzt zu werden, bleiben diese Module im Namensraum @code{(guix build …)}."
 
 #. type: Plain text
-#: doc/guix.texi:8068
+#: doc/guix.texi:9723
 msgid "Internally, high-level objects are @dfn{lowered}, using their compiler, to either derivations or store items.  For instance, lowering a package yields a derivation, and lowering a @code{plain-file} yields a store item.  This is achieved using the @code{lower-object} monadic procedure."
 msgstr "Intern werden hochsprachliche, abstrakte Objekte mit ihrem Compiler entweder zu Ableitungen oder zu Store-Objekten @dfn{heruntergebrochen}. Wird zum Beispiel ein Paket heruntergebrochen, bekommt man eine Ableitung, während ein @code{plain-file} zu einem Store-Objekt heruntergebrochen wird. Das wird mit der monadischen Prozedur @code{lower-object} bewerkstelligt."
 
 #. type: deffn
-#: doc/guix.texi:8069
+#: doc/guix.texi:9724
 #, no-wrap
 msgid "{Monadic Procedure} lower-object @var{obj} [@var{system}] @"
 msgstr "{Monadische Prozedur} lower-object @var{Objekt} [@var{System}] @"
 
 #. type: deffn
-#: doc/guix.texi:8075
-msgid "[#:target #f] Return as a value in @var{%store-monad} the derivation or store item corresponding to @var{obj} for @var{system}, cross-compiling for @var{target} if @var{target} is true.  @var{obj} must be an object that has an associated gexp compiler, such as a @code{<package>}."
-msgstr "[#:target #f] Liefert die Ableitung oder das Store-Objekt, das dem @var{Objekt} für @var{System} als Wert in der Store-Monade @var{%store-monad} entspricht, cross-kompiliert für das Zieltripel @var{target}, wenn @var{target} wahr ist. Das @var{Objekt} muss ein Objekt sein, für das es einen mit ihm assoziierten G-Ausdruck-Compiler gibt, wie zum Beispiel ein @code{<package>}."
+#: doc/guix.texi:9730
+msgid "[#:target #f] Return as a value in @code{%store-monad} the derivation or store item corresponding to @var{obj} for @var{system}, cross-compiling for @var{target} if @var{target} is true.  @var{obj} must be an object that has an associated gexp compiler, such as a @code{<package>}."
+msgstr "[#:target #f] Liefert die Ableitung oder das Store-Objekt, das dem @var{Objekt} für @var{System} als Wert in der Store-Monade @code{%store-monad} entspricht, cross-kompiliert für das Zieltripel @var{target}, wenn @var{target} wahr ist. Das @var{Objekt} muss ein Objekt sein, für das es einen mit ihm assoziierten G-Ausdruck-Compiler gibt, wie zum Beispiel ein @code{<package>}."
 
 #. type: section
-#: doc/guix.texi:8078
+#: doc/guix.texi:9733
 #, no-wrap
 msgid "Invoking @command{guix repl}"
 msgstr "@command{guix repl} aufrufen"
 
 #. type: cindex
-#: doc/guix.texi:8080
+#: doc/guix.texi:9735
+#, no-wrap
+msgid "REPL, read-eval-print loop, script"
+msgstr "REPL (Lese-Auswerten-Schreiben-Schleife) und Skripts"
+
+#. type: Plain text
+#: doc/guix.texi:9745
+msgid "The @command{guix repl} command makes it easier to program Guix in Guile by launching a Guile @dfn{read-eval-print loop} (REPL) for interactive programming (@pxref{Using Guile Interactively,,, guile, GNU Guile Reference Manual}), or by running Guile scripts (@pxref{Running Guile Scripts,,, guile, GNU Guile Reference Manual}).  Compared to just launching the @command{guile} command, @command{guix repl} guarantees that all the Guix modules and all its dependencies are available in the search path."
+msgstr "Der Befehl @command{guix repl} erleichtert es, Guix von Guile aus zu programmieren. Dazu startet er eine Guile-REPL (@dfn{Read-Eval-Print Loop}, kurz REPL, deutsch Lese-Auswerten-Schreiben-Schleife) zur interaktiven Programmierung (siehe @ref{Using Guile Interactively,,, guile, Referenzhandbuch zu GNU Guile}) oder er führt Guile-Skripts aus (siehe @ref{Running Guile Scripts,,, guile, Referenzhandbuch zu GNU Guile}). Im Vergleich dazu, einfach den Befehl @command{guile} aufzurufen, garantiert @command{guix repl}, dass alle Guix-Module und deren Abhängigkeiten im Suchpfad verfügbar sind."
+
+#. type: example
+#: doc/guix.texi:9750
+#, no-wrap
+msgid "guix repl @var{options} [@var{file} @var{args}]\n"
+msgstr "guix repl @var{Optionen} [@var{Datei} @var{Argumente}]\n"
+
+#. type: Plain text
+#: doc/guix.texi:9754
+msgid "When a @var{file} argument is provided, @var{file} is executed as a Guile scripts:"
+msgstr "Wird ein @var{Datei}-Argument angegeben, wird die angegebene @var{Datei} als Guile-Skript ausgeführt."
+
+#. type: example
+#: doc/guix.texi:9757
+#, no-wrap
+msgid "guix repl my-script.scm\n"
+msgstr "guix repl my-script.scm\n"
+
+#. type: Plain text
+#: doc/guix.texi:9761
+msgid "To pass arguments to the script, use @code{--} to prevent them from being interpreted as arguments to @command{guix repl} itself:"
+msgstr "Um Argumente an das Skript zu übergeben, geben Sie davor @code{--} an, damit Sie nicht als Argumente an @command{guix repl} verstanden werden:"
+
+#. type: example
+#: doc/guix.texi:9764
+#, no-wrap
+msgid "guix repl -- my-script.scm --input=foo.txt\n"
+msgstr "guix repl -- my-script.scm --input=foo.txt\n"
+
+#. type: Plain text
+#: doc/guix.texi:9769
+msgid "To make a script executable directly from the shell, using the guix executable that is on the user's search path, add the following two lines at the top of the script:"
+msgstr "Wenn Sie möchten, dass ein Skript direkt aus der Shell heraus ausgeführt werden kann und diejenige ausführbare Datei von Guix benutzt wird, die sich im Suchpfad des Benutzers befindet, dann fügen Sie die folgenden zwei Zeilen ganz oben ins Skript ein."
+
+#. type: example
+#: doc/guix.texi:9773
 #, no-wrap
-msgid "REPL, read-eval-print loop"
-msgstr "REPL (Lese-Auswerten-Schreiben-Schleife)"
+msgid ""
+"@code{#!/usr/bin/env -S guix repl --}\n"
+"@code{!#}\n"
+msgstr ""
+"@code{#!/usr/bin/env -S guix repl --}\n"
+"@code{!#}\n"
 
 #. type: Plain text
-#: doc/guix.texi:8086
-msgid "The @command{guix repl} command spawns a Guile @dfn{read-eval-print loop} (REPL) for interactive programming (@pxref{Using Guile Interactively,,, guile, GNU Guile Reference Manual}).  Compared to just launching the @command{guile} command, @command{guix repl} guarantees that all the Guix modules and all its dependencies are available in the search path.  You can use it this way:"
-msgstr "Der Befehl @command{guix repl} startet eine Guile-REPL (@dfn{Read-Eval-Print Loop}, kurz REPL, deutsch Lese-Auswerten-Schreiben-Schleife) zur interaktiven Programmierung (siehe @ref{Using Guile Interactively,,, guile, GNU Guile Reference Manual}). Im Vergleich dazu, einfach den Befehl @command{guile} aufzurufen, garantiert @command{guix repl}, dass alle Guix-Module und deren Abhängigkeiten im Suchpfad verfügbar sind. Sie können die REPL so benutzen:"
+#: doc/guix.texi:9776
+msgid "Without a file name argument, a Guile REPL is started:"
+msgstr "Ohne einen Dateinamen als Argument wird eine Guile-REPL gestartet:"
 
 #. type: example
-#: doc/guix.texi:8092
+#: doc/guix.texi:9782
 #, no-wrap
 msgid ""
 "$ guix repl\n"
@@ -15441,163 +18298,163 @@ msgstr ""
 "$1 = #<package coreutils@@8.29 gnu/packages/base.scm:327 3e28300>\n"
 
 #. type: Plain text
-#: doc/guix.texi:8099
+#: doc/guix.texi:9789
 msgid "In addition, @command{guix repl} implements a simple machine-readable REPL protocol for use by @code{(guix inferior)}, a facility to interact with @dfn{inferiors}, separate processes running a potentially different revision of Guix."
 msgstr "@command{guix repl} implementiert zusätzlich ein einfaches maschinenlesbares Protokoll für die REPL, das von @code{(guix inferior)} benutzt wird, um mit @dfn{Untergeordneten} zu interagieren, also mit getrennten Prozessen einer womöglich anderen Version von Guix."
 
 #. type: Plain text
-#: doc/guix.texi:8101
+#: doc/guix.texi:9791
 msgid "The available options are as follows:"
 msgstr "Folgende @var{Optionen} gibt es:"
 
 #. type: item
-#: doc/guix.texi:8103 doc/guix.texi:10172
+#: doc/guix.texi:9793 doc/guix.texi:12059
 #, no-wrap
 msgid "--type=@var{type}"
 msgstr "--type=@var{Typ}"
 
 #. type: itemx
-#: doc/guix.texi:8104 doc/guix.texi:10173 doc/guix.texi:26899
+#: doc/guix.texi:9794 doc/guix.texi:12060 doc/guix.texi:31036
 #, no-wrap
 msgid "-t @var{type}"
 msgstr "-t @var{Typ}"
 
 #. type: table
-#: doc/guix.texi:8106
+#: doc/guix.texi:9796
 msgid "Start a REPL of the given @var{TYPE}, which can be one of the following:"
 msgstr "Startet eine REPL des angegebenen @var{Typ}s, der einer der Folgenden sein darf:"
 
 #. type: item
-#: doc/guix.texi:8108
+#: doc/guix.texi:9798
 #, no-wrap
 msgid "guile"
 msgstr "guile"
 
 #. type: table
-#: doc/guix.texi:8110
+#: doc/guix.texi:9800
 msgid "This is default, and it spawns a standard full-featured Guile REPL."
 msgstr "Die Voreinstellung, mit der eine normale, voll funktionsfähige Guile-REPL gestartet wird."
 
 #. type: item
-#: doc/guix.texi:8110
+#: doc/guix.texi:9800
 #, no-wrap
 msgid "machine"
 msgstr "machine"
 
 #. type: table
-#: doc/guix.texi:8113
+#: doc/guix.texi:9803
 msgid "Spawn a REPL that uses the machine-readable protocol.  This is the protocol that the @code{(guix inferior)} module speaks."
 msgstr "Startet eine REPL, die ein maschinenlesbares Protokoll benutzt. Dieses Protokoll wird vom Modul @code{(guix inferior)} gesprochen."
 
 #. type: table
-#: doc/guix.texi:8119
+#: doc/guix.texi:9809
 msgid "By default, @command{guix repl} reads from standard input and writes to standard output.  When this option is passed, it will instead listen for connections on @var{endpoint}.  Here are examples of valid options:"
 msgstr "Der Vorgabe nach würde @command{guix repl} von der Standardeingabe lesen und auf die Standardausgabe schreiben. Wird diese Befehlszeilenoption angegeben, lauscht die REPL stattdessen auf dem @var{Endpunkt} auf Verbindungen. Hier sind Beispiele gültiger Befehlszeilenoptionen:"
 
 #. type: item
-#: doc/guix.texi:8121
+#: doc/guix.texi:9811
 #, no-wrap
 msgid "--listen=tcp:37146"
 msgstr "--listen=tcp:37146"
 
 #. type: table
-#: doc/guix.texi:8123
+#: doc/guix.texi:9813
 msgid "Accept connections on localhost on port 37146."
 msgstr "Verbindungen mit dem „localhost“ auf Port 37146 akzeptieren."
 
 #. type: item
-#: doc/guix.texi:8124
+#: doc/guix.texi:9814
 #, no-wrap
 msgid "--listen=unix:/tmp/socket"
 msgstr "--listen=unix:/tmp/socket"
 
 #. type: table
-#: doc/guix.texi:8126
+#: doc/guix.texi:9816
 msgid "Accept connections on the Unix-domain socket @file{/tmp/socket}."
 msgstr "Verbindungen zum Unix-Socket @file{/tmp/socket} akzeptieren."
 
 #. type: item
-#: doc/guix.texi:8128 doc/guix.texi:8232 doc/guix.texi:9705 doc/guix.texi:9865
-#: doc/guix.texi:9997 doc/guix.texi:10206
+#: doc/guix.texi:9818 doc/guix.texi:9922 doc/guix.texi:11528
+#: doc/guix.texi:11708 doc/guix.texi:11853 doc/guix.texi:12107
 #, no-wrap
 msgid "--load-path=@var{directory}"
 msgstr "--load-path=@var{Verzeichnis}"
 
 #. type: itemx
-#: doc/guix.texi:8129 doc/guix.texi:8233 doc/guix.texi:9866 doc/guix.texi:9998
-#: doc/guix.texi:10207
+#: doc/guix.texi:9819 doc/guix.texi:9923 doc/guix.texi:11709
+#: doc/guix.texi:11854 doc/guix.texi:12108
 #, no-wrap
 msgid "-L @var{directory}"
 msgstr "-L @var{Verzeichnis}"
 
 #. type: table
-#: doc/guix.texi:8132 doc/guix.texi:8236 doc/guix.texi:9708 doc/guix.texi:9869
-#: doc/guix.texi:10001 doc/guix.texi:10210
+#: doc/guix.texi:9822 doc/guix.texi:9926 doc/guix.texi:11531
+#: doc/guix.texi:11712 doc/guix.texi:11857 doc/guix.texi:12111
 msgid "Add @var{directory} to the front of the package module search path (@pxref{Package Modules})."
 msgstr "Das @var{Verzeichnis} vorne an den Suchpfad für Paketmodule anfügen (siehe @ref{Package Modules})."
 
 #. type: table
-#: doc/guix.texi:8135
-msgid "This allows users to define their own packages and make them visible to the command-line tool."
-msgstr "Damit können Nutzer dafür sorgen, dass ihre eigenen selbstdefinierten Pakete für das Befehlszeilenwerkzeug sichtbar sind."
+#: doc/guix.texi:9825
+msgid "This allows users to define their own packages and make them visible to the script or REPL."
+msgstr "Damit können Nutzer dafür sorgen, dass ihre eigenen selbstdefinierten Pakete für Skript oder REPL sichtbar sind."
 
 #. type: itemx
-#: doc/guix.texi:8136 doc/guix.texi:8536
+#: doc/guix.texi:9826 doc/guix.texi:10335
 #, no-wrap
 msgid "-q"
 msgstr "-q"
 
 #. type: table
-#: doc/guix.texi:8139
+#: doc/guix.texi:9829
 msgid "Inhibit loading of the @file{~/.guile} file.  By default, that configuration file is loaded when spawning a @code{guile} REPL."
 msgstr "Das Laden der @file{~/.guile}-Datei unterdrücken. Nach Voreinstellung würde diese Konfigurationsdatei beim Erzeugen einer REPL für @code{guile} geladen."
 
 #. type: Plain text
-#: doc/guix.texi:8149
+#: doc/guix.texi:9839
 msgid "This section describes Guix command-line utilities.  Some of them are primarily targeted at developers and users who write new package definitions, while others are more generally useful.  They complement the Scheme programming interface of Guix in a convenient way."
 msgstr "Dieser Abschnitt beschreibt die Befehlszeilenwerkzeuge von Guix. Manche davon richten sich hauptsächlich an Entwickler und solche Nutzer, die neue Paketdefinitionen schreiben, andere sind auch für ein breiteres Publikum nützlich. Sie ergänzen die Scheme-Programmierschnittstelle um bequeme Befehle."
 
 #. type: cindex
-#: doc/guix.texi:8171
+#: doc/guix.texi:9861
 #, no-wrap
 msgid "package building"
 msgstr "Paketerstellung"
 
 #. type: command{#1}
-#: doc/guix.texi:8172
+#: doc/guix.texi:9862
 #, no-wrap
 msgid "guix build"
 msgstr "guix build"
 
 #. type: Plain text
-#: doc/guix.texi:8178
+#: doc/guix.texi:9868
 msgid "The @command{guix build} command builds packages or derivations and their dependencies, and prints the resulting store paths.  Note that it does not modify the user's profile---this is the job of the @command{guix package} command (@pxref{Invoking guix package}).  Thus, it is mainly useful for distribution developers."
 msgstr "Der Befehl @command{guix build} lässt Pakete oder Ableitungen samt ihrer Abhängigkeiten erstellen und gibt die resultierenden Pfade im Store aus. Beachten Sie, dass das Nutzerprofil dadurch nicht modifiziert wird — eine solche Installation bewirkt der Befehl @command{guix package} (siehe @ref{Invoking guix package}). @command{guix build} wird also hauptsächlich von Entwicklern der Distribution benutzt."
 
 #. type: example
-#: doc/guix.texi:8183
+#: doc/guix.texi:9873
 #, no-wrap
 msgid "guix build @var{options} @var{package-or-derivation}@dots{}\n"
 msgstr "guix build @var{Optionen} @var{Paket-oder-Ableitung}…\n"
 
 #. type: Plain text
-#: doc/guix.texi:8188
+#: doc/guix.texi:9878
 msgid "As an example, the following command builds the latest versions of Emacs and of Guile, displays their build logs, and finally displays the resulting directories:"
 msgstr "Zum Beispiel wird mit folgendem Befehl die neueste Version von Emacs und von Guile erstellt, das zugehörige Erstellungsprotokoll angezeigt und letztendlich werden die resultierenden Verzeichnisse ausgegeben:"
 
 #. type: example
-#: doc/guix.texi:8191
+#: doc/guix.texi:9881
 #, no-wrap
 msgid "guix build emacs guile\n"
 msgstr "guix build emacs guile\n"
 
 #. type: Plain text
-#: doc/guix.texi:8194
+#: doc/guix.texi:9884
 msgid "Similarly, the following command builds all the available packages:"
 msgstr "Folgender Befehl erstellt alle Pakete, die zur Verfügung stehen:"
 
 #. type: example
-#: doc/guix.texi:8198
+#: doc/guix.texi:9888
 #, no-wrap
 msgid ""
 "guix build --quiet --keep-going \\\n"
@@ -15607,313 +18464,318 @@ msgstr ""
 "  `guix package -A | cut -f1,2 --output-delimiter=@@`\n"
 
 #. type: Plain text
-#: doc/guix.texi:8206
+#: doc/guix.texi:9896
 msgid "@var{package-or-derivation} may be either the name of a package found in the software distribution such as @code{coreutils} or @code{coreutils@@8.20}, or a derivation such as @file{/gnu/store/@dots{}-coreutils-8.19.drv}.  In the former case, a package with the corresponding name (and optionally version) is searched for among the GNU distribution modules (@pxref{Package Modules})."
 msgstr "Als @var{Paket-oder-Ableitung} muss entweder der Name eines in der Software-Distribution zu findenden Pakets, wie etwa @code{coreutils} oder @code{coreutils@@8.20}, oder eine Ableitung wie @file{/gnu/store/…-coreutils-8.19.drv} sein. Im ersten Fall wird nach einem Paket mit entsprechendem Namen (und optional der entsprechenden Version) in den Modulen der GNU-Distribution gesucht (siehe @ref{Package Modules})."
 
 #. type: Plain text
-#: doc/guix.texi:8211
-msgid "Alternatively, the @code{--expression} option may be used to specify a Scheme expression that evaluates to a package; this is useful when disambiguating among several same-named packages or package variants is needed."
-msgstr "Alternativ kann die Befehlszeilenoption @code{--expression} benutzt werden, um einen Scheme-Ausdruck anzugeben, der zu einem Paket ausgewertet wird; dies ist nützlich, wenn zwischen mehreren gleichnamigen Paketen oder Paket-Varianten unterschieden werden muss."
+#: doc/guix.texi:9901
+msgid "Alternatively, the @option{--expression} option may be used to specify a Scheme expression that evaluates to a package; this is useful when disambiguating among several same-named packages or package variants is needed."
+msgstr "Alternativ kann die Befehlszeilenoption @option{--expression} benutzt werden, um einen Scheme-Ausdruck anzugeben, der zu einem Paket ausgewertet wird; dies ist nützlich, wenn zwischen mehreren gleichnamigen Paketen oder Paket-Varianten unterschieden werden muss."
 
 #. type: Plain text
-#: doc/guix.texi:8214
+#: doc/guix.texi:9904
 msgid "There may be zero or more @var{options}.  The available options are described in the subsections below."
 msgstr "Null oder mehr @var{Optionen} können angegeben werden. Zur Verfügung stehen die in den folgenden Unterabschnitten beschriebenen Befehlszeilenoptionen."
 
 #. type: Plain text
-#: doc/guix.texi:8229
+#: doc/guix.texi:9919
 msgid "A number of options that control the build process are common to @command{guix build} and other commands that can spawn builds, such as @command{guix package} or @command{guix archive}.  These are the following:"
 msgstr "Einige dieser Befehlszeilenoptionen zur Steuerung des Erstellungsprozess haben @command{guix build} und andere Befehle, mit denen Erstellungen ausgelöst werden können, wie @command{guix package} oder @command{guix archive}, gemeinsam. Das sind folgende:"
 
 #. type: table
-#: doc/guix.texi:8239 doc/guix.texi:9711 doc/guix.texi:9872
-#: doc/guix.texi:10004 doc/guix.texi:10213
+#: doc/guix.texi:9929 doc/guix.texi:11534 doc/guix.texi:11715
+#: doc/guix.texi:11860 doc/guix.texi:12114
 msgid "This allows users to define their own packages and make them visible to the command-line tools."
 msgstr "Damit können Nutzer dafür sorgen, dass ihre eigenen selbstdefinierten Pakete für die Befehlszeilenwerkzeuge sichtbar sind."
 
 #. type: item
-#: doc/guix.texi:8240
+#: doc/guix.texi:9930
 #, no-wrap
 msgid "--keep-failed"
 msgstr "--keep-failed"
 
 #. type: itemx
-#: doc/guix.texi:8241
+#: doc/guix.texi:9931
 #, no-wrap
 msgid "-K"
 msgstr "-K"
 
 #. type: table
-#: doc/guix.texi:8247
+#: doc/guix.texi:9937
 msgid "Keep the build tree of failed builds.  Thus, if a build fails, its build tree is kept under @file{/tmp}, in a directory whose name is shown at the end of the build log.  This is useful when debugging build issues.  @xref{Debugging Build Failures}, for tips and tricks on how to debug build issues."
 msgstr "Den Verzeichnisbaum, in dem fehlgeschlagene Erstellungen durchgeführt wurden, behalten. Wenn also eine Erstellung fehlschlägt, bleibt ihr Erstellungsbaum in @file{/tmp} erhalten. Der Name dieses Unterverzeichnisses wird am Ende dem Erstellungsprotokolls ausgegeben. Dies hilft bei der Suche nach Fehlern in Erstellungen. Der Abschnitt @ref{Debugging Build Failures} zeigt Ihnen Hinweise und Tricks, wie Erstellungsfehler untersucht werden können."
 
 #. type: table
-#: doc/guix.texi:8251
-msgid "This option implies @option{--no-offload}, and it has no effect when connecting to a remote daemon with a @code{guix://} URI (@pxref{The Store, the @code{GUIX_DAEMON_SOCKET} variable})."
-msgstr "Diese Option impliziert @option{--no-offload} und sie hat keine Auswirkungen, wenn eine Verbindung zu einem entfernten Daemon über eine @code{guix://}-URI verwendet wurde (siehe @ref{The Store, the @code{GUIX_DAEMON_SOCKET} variable})."
+#: doc/guix.texi:9941
+msgid "This option implies @option{--no-offload}, and it has no effect when connecting to a remote daemon with a @code{guix://} URI (@pxref{The Store, the @env{GUIX_DAEMON_SOCKET} variable})."
+msgstr "Diese Option impliziert @option{--no-offload} und sie hat keine Auswirkungen, wenn eine Verbindung zu einem entfernten Daemon über eine @code{guix://}-URI verwendet wurde (siehe @ref{The Store, die @env{GUIX_DAEMON_SOCKET}-Variable})."
 
 #. type: item
-#: doc/guix.texi:8252
+#: doc/guix.texi:9942
 #, no-wrap
 msgid "--keep-going"
 msgstr "--keep-going"
 
 #. type: itemx
-#: doc/guix.texi:8253
+#: doc/guix.texi:9943
 #, no-wrap
 msgid "-k"
 msgstr "-k"
 
 #. type: table
-#: doc/guix.texi:8256
+#: doc/guix.texi:9946
 msgid "Keep going when some of the derivations fail to build; return only once all the builds have either completed or failed."
 msgstr "Weitermachen, auch wenn ein Teil der Erstellungen fehlschlägt. Das bedeutet, dass der Befehl erst terminiert, wenn alle Erstellungen erfolgreich oder mit Fehler durchgeführt wurden."
 
 #. type: table
-#: doc/guix.texi:8259
+#: doc/guix.texi:9949
 msgid "The default behavior is to stop as soon as one of the specified derivations has failed."
 msgstr "Das normale Verhalten ist, abzubrechen, sobald eine der angegebenen Ableitungen fehlschlägt."
 
 #. type: table
-#: doc/guix.texi:8263
+#: doc/guix.texi:9953
 msgid "Do not build the derivations."
 msgstr "Die Ableitungen nicht erstellen."
 
 #. type: anchor{#1}
-#: doc/guix.texi:8265
+#: doc/guix.texi:9955
 msgid "fallback-option"
 msgstr "fallback-option"
 
 #. type: item
-#: doc/guix.texi:8265
+#: doc/guix.texi:9955
 #, no-wrap
 msgid "--fallback"
 msgstr "--fallback"
 
 #. type: table
-#: doc/guix.texi:8268
+#: doc/guix.texi:9958
 msgid "When substituting a pre-built binary fails, fall back to building packages locally (@pxref{Substitution Failure})."
 msgstr "Wenn das Substituieren vorerstellter Binärdateien fehlschlägt, diese ersatzweise lokal selbst erstellen (siehe @ref{Substitution Failure})."
 
 #. type: anchor{#1}
-#: doc/guix.texi:8274
+#: doc/guix.texi:9964
 msgid "client-substitute-urls"
 msgstr "client-substitute-urls"
 
 #. type: table
-#: doc/guix.texi:8274
+#: doc/guix.texi:9964
 msgid "Consider @var{urls} the whitespace-separated list of substitute source URLs, overriding the default list of URLs of @command{guix-daemon} (@pxref{daemon-substitute-urls,, @command{guix-daemon} URLs})."
 msgstr "Die @var{urls} als durch Leerraumzeichen getrennte Liste von Quell-URLs für Substitute anstelle der vorgegebenen URL-Liste für den @command{guix-daemon} verwenden (siehe @ref{daemon-substitute-urls,, @command{guix-daemon} URLs})."
 
 #. type: table
-#: doc/guix.texi:8278
+#: doc/guix.texi:9968
 msgid "This means that substitutes may be downloaded from @var{urls}, provided they are signed by a key authorized by the system administrator (@pxref{Substitutes})."
 msgstr "Das heißt, die Substitute dürfen von den @var{urls} heruntergeladen werden, sofern sie mit einem durch den Systemadministrator autorisierten Schlüssel signiert worden sind (siehe @ref{Substitutes})."
 
 #. type: table
-#: doc/guix.texi:8281
+#: doc/guix.texi:9971
 msgid "When @var{urls} is the empty string, substitutes are effectively disabled."
 msgstr "Wenn als @var{urls} eine leere Zeichenkette angegeben wurde, verhält es sich, als wären Substitute abgeschaltet."
 
 #. type: item
-#: doc/guix.texi:8287
+#: doc/guix.texi:9977
 #, no-wrap
 msgid "--no-grafts"
 msgstr "--no-grafts"
 
 #. type: table
-#: doc/guix.texi:8291
+#: doc/guix.texi:9981
 msgid "Do not ``graft'' packages.  In practice, this means that package updates available as grafts are not applied.  @xref{Security Updates}, for more information on grafts."
 msgstr "Pakete nicht „veredeln“ (engl. „graft“). Praktisch heißt das, dass als Veredelungen verfügbare Paketaktualisierungen nicht angewandt werden. Der Abschnitt @ref{Security Updates} hat weitere Informationen zu Veredelungen."
 
 #. type: item
-#: doc/guix.texi:8292
+#: doc/guix.texi:9982
 #, no-wrap
 msgid "--rounds=@var{n}"
 msgstr "--rounds=@var{n}"
 
 #. type: table
-#: doc/guix.texi:8295
+#: doc/guix.texi:9985
 msgid "Build each derivation @var{n} times in a row, and raise an error if consecutive build results are not bit-for-bit identical."
 msgstr "Jede Ableitung @var{n}-mal nacheinander erstellen und einen Fehler melden, wenn die aufeinanderfolgenden Erstellungsergebnisse nicht Bit für Bit identisch sind."
 
 #. type: table
-#: doc/guix.texi:8300
+#: doc/guix.texi:9990
 msgid "This is a useful way to detect non-deterministic builds processes.  Non-deterministic build processes are a problem because they make it practically impossible for users to @emph{verify} whether third-party binaries are genuine.  @xref{Invoking guix challenge}, for more."
-msgstr "Das ist eine nützliche Methode, um nicht-deterministische Erstellungsprozesse zu erkennen. Nicht-deterministische Erstellungsprozesse sind ein Problem, weil Nutzer dadurch praktisch nicht @emph{verifizieren} können, ob von Drittanbietern bereitgestellte Binärdateien echt sind. Der Abschnitt @ref{Invoking guix challenge} erklärt dies genauer."
-
-#. type: table
-#: doc/guix.texi:8306
-msgid "Note that, currently, the differing build results are not kept around, so you will have to manually investigate in case of an error---e.g., by stashing one of the build results with @code{guix archive --export} (@pxref{Invoking guix archive}), then rebuilding, and finally comparing the two results."
-msgstr "Beachten Sie, dass die sich unterscheidenden Erstellungsergebnisse nicht erhalten bleiben, so dass Sie eventuelle Fehler manuell untersuchen müssen, z.B.@: indem Sie eines oder mehrere der Erstellungsergebnisse @code{guix archive --export} auslagern (siehe @ref{Invoking guix archive}), dann neu erstellen und letztlich die beiden Erstellungsergebnisse vergleichen."
+msgstr "Das ist eine nützliche Methode, um nicht-deterministische Erstellungsprozesse zu erkennen. Nicht-deterministische Erstellungsprozesse sind ein Problem, weil Nutzer dadurch praktisch nicht @emph{verifizieren} können, ob von Drittanbietern bereitgestellte Binärdateien unverfälscht sind. Der Abschnitt @ref{Invoking guix challenge} erklärt dies genauer."
 
 #. type: table
-#: doc/guix.texi:8318
-msgid "By default, the daemon's setting is honored (@pxref{Invoking guix-daemon, @code{--max-silent-time}})."
-msgstr "Standardmäßig wird die Einstellung für den Daemon benutzt (siehe @ref{Invoking guix-daemon, @code{--max-silent-time}})."
+#: doc/guix.texi:10006
+msgid "By default, the daemon's setting is honored (@pxref{Invoking guix-daemon, @option{--max-silent-time}})."
+msgstr "Standardmäßig wird die Einstellung für den Daemon benutzt (siehe @ref{Invoking guix-daemon, @option{--max-silent-time}})."
 
 #. type: table
-#: doc/guix.texi:8325
-msgid "By default, the daemon's setting is honored (@pxref{Invoking guix-daemon, @code{--timeout}})."
-msgstr "Standardmäßig wird die Einstellung für den Daemon benutzt (siehe @ref{Invoking guix-daemon, @code{--timeout}})."
+#: doc/guix.texi:10013
+msgid "By default, the daemon's setting is honored (@pxref{Invoking guix-daemon, @option{--timeout}})."
+msgstr "Standardmäßig wird die Einstellung für den Daemon benutzt (siehe @ref{Invoking guix-daemon, @option{--timeout}})."
 
 #. type: cindex
-#: doc/guix.texi:8328
+#: doc/guix.texi:10016
 #, no-wrap
 msgid "verbosity, of the command-line tools"
 msgstr "Ausführlichkeit der Befehlszeilenwerkzeuge"
 
 #. type: cindex
-#: doc/guix.texi:8329
+#: doc/guix.texi:10017
 #, no-wrap
 msgid "build logs, verbosity"
 msgstr "Erstellungsprotokolle, Ausführlichkeit"
 
 #. type: item
-#: doc/guix.texi:8330
+#: doc/guix.texi:10018
 #, no-wrap
 msgid "-v @var{level}"
 msgstr "-v @var{Stufe}"
 
 #. type: itemx
-#: doc/guix.texi:8331
+#: doc/guix.texi:10019
 #, no-wrap
 msgid "--verbosity=@var{level}"
 msgstr "--verbosity=@var{Stufe}"
 
 #. type: table
-#: doc/guix.texi:8335
+#: doc/guix.texi:10023
 msgid "Use the given verbosity @var{level}, an integer.  Choosing 0 means that no output is produced, 1 is for quiet output, and 2 shows all the build log output on standard error."
 msgstr "Die angegebene Ausführlichkeitsstufe verwenden. Als @var{Stufe} muss eine ganze Zahl angegeben werden. Wird 0 gewählt, wird keine Ausgabe zur Fehlersuche angezeigt, 1 bedeutet eine knappe Ausgabe und 2 lässt alle Erstellungsprotokollausgaben auf die Standardfehlerausgabe schreiben."
 
 #. type: table
-#: doc/guix.texi:8340
+#: doc/guix.texi:10028
 msgid "Allow the use of up to @var{n} CPU cores for the build.  The special value @code{0} means to use as many CPU cores as available."
 msgstr "Die Nutzung von bis zu @var{n} Prozessorkernen für die Erstellungen gestatten. Der besondere Wert @code{0} bedeutet, dass so viele wie möglich benutzt werden."
 
 #. type: table
-#: doc/guix.texi:8346
-msgid "Allow at most @var{n} build jobs in parallel.  @xref{Invoking guix-daemon, @code{--max-jobs}}, for details about this option and the equivalent @command{guix-daemon} option."
-msgstr "Höchstens @var{n} gleichzeitige Erstellungsaufträge erlauben. Im Abschnitt @ref{Invoking guix-daemon, @code{--max-jobs}} finden Sie Details zu dieser Option und der äquivalenten Option des @command{guix-daemon}."
+#: doc/guix.texi:10034
+msgid "Allow at most @var{n} build jobs in parallel.  @xref{Invoking guix-daemon, @option{--max-jobs}}, for details about this option and the equivalent @command{guix-daemon} option."
+msgstr "Höchstens @var{n} gleichzeitige Erstellungsaufträge erlauben. Im Abschnitt @ref{Invoking guix-daemon, @option{--max-jobs}} finden Sie Details zu dieser Option und der äquivalenten Option des @command{guix-daemon}."
 
 #. type: item
-#: doc/guix.texi:8347
+#: doc/guix.texi:10035
 #, no-wrap
 msgid "--debug=@var{level}"
 msgstr "--debug=@var{Stufe}"
 
 #. type: table
-#: doc/guix.texi:8351
+#: doc/guix.texi:10039
 msgid "Produce debugging output coming from the build daemon.  @var{level} must be an integer between 0 and 5; higher means more verbose output.  Setting a level of 4 or more may be helpful when debugging setup issues with the build daemon."
 msgstr "Ein Protokoll zur Fehlersuche ausgeben, das vom Erstellungsdaemon kommt. Als @var{Stufe} muss eine ganze Zahl zwischen 0 und 5 angegeben werden; höhere Zahlen stehen für ausführlichere Ausgaben. Stufe 4 oder höher zu wählen, kann bei der Suche nach Fehlern, wie der Erstellungs-Daemon eingerichtet ist, helfen."
 
 #. type: Plain text
-#: doc/guix.texi:8358
+#: doc/guix.texi:10046
 msgid "Behind the scenes, @command{guix build} is essentially an interface to the @code{package-derivation} procedure of the @code{(guix packages)} module, and to the @code{build-derivations} procedure of the @code{(guix derivations)} module."
 msgstr "Intern ist @command{guix build} im Kern eine Schnittstelle zur Prozedur @code{package-derivation} aus dem Modul @code{(guix packages)} und zu der Prozedur @code{build-derivations} des Moduls @code{(guix derivations)}."
 
 #. type: Plain text
-#: doc/guix.texi:8362
-msgid "In addition to options explicitly passed on the command line, @command{guix build} and other @command{guix} commands that support building honor the @code{GUIX_BUILD_OPTIONS} environment variable."
-msgstr "Neben auf der Befehlszeile übergebenen Optionen beachten @command{guix build} und andere @command{guix}-Befehle, die Erstellungen durchführen lassen, die Umgebungsvariable @code{GUIX_BUILD_OPTIONS}."
+#: doc/guix.texi:10050
+msgid "In addition to options explicitly passed on the command line, @command{guix build} and other @command{guix} commands that support building honor the @env{GUIX_BUILD_OPTIONS} environment variable."
+msgstr "Neben auf der Befehlszeile übergebenen Optionen beachten @command{guix build} und andere @command{guix}-Befehle, die Erstellungen durchführen lassen, die Umgebungsvariable @env{GUIX_BUILD_OPTIONS}."
 
 #. type: defvr
-#: doc/guix.texi:8363
+#: doc/guix.texi:10051
 #, no-wrap
 msgid "{Environment Variable} GUIX_BUILD_OPTIONS"
 msgstr "{Umgebungsvariable} GUIX_BUILD_OPTIONS"
 
 #. type: defvr
-#: doc/guix.texi:8368
+#: doc/guix.texi:10056
 msgid "Users can define this variable to a list of command line options that will automatically be used by @command{guix build} and other @command{guix} commands that can perform builds, as in the example below:"
 msgstr "Nutzer können diese Variable auf eine Liste von Befehlszeilenoptionen definieren, die automatisch von @command{guix build} und anderen @command{guix}-Befehlen, die Erstellungen durchführen lassen, benutzt wird, wie in folgendem Beispiel:"
 
 #. type: example
-#: doc/guix.texi:8371
+#: doc/guix.texi:10059
 #, no-wrap
 msgid "$ export GUIX_BUILD_OPTIONS=\"--no-substitutes -c 2 -L /foo/bar\"\n"
 msgstr "$ export GUIX_BUILD_OPTIONS=\"--no-substitutes -c 2 -L /foo/bar\"\n"
 
 #. type: defvr
-#: doc/guix.texi:8375
+#: doc/guix.texi:10063
 msgid "These options are parsed independently, and the result is appended to the parsed command-line options."
 msgstr "Diese Befehlszeilenoptionen werden unabhängig von den auf der Befehlszeile übergebenen Befehlszeilenoptionen grammatikalisch analysiert und das Ergebnis an die bereits analysierten auf der Befehlszeile übergebenen Befehlszeilenoptionen angehängt."
 
 #. type: cindex
-#: doc/guix.texi:8381
+#: doc/guix.texi:10069
 #, no-wrap
 msgid "package variants"
 msgstr "Paketvarianten"
 
 #. type: Plain text
-#: doc/guix.texi:8389
+#: doc/guix.texi:10077
 msgid "Another set of command-line options supported by @command{guix build} and also @command{guix package} are @dfn{package transformation options}.  These are options that make it possible to define @dfn{package variants}---for instance, packages built from different source code.  This is a convenient way to create customized packages on the fly without having to type in the definitions of package variants (@pxref{Defining Packages})."
 msgstr "Eine weitere Gruppe von Befehlszeilenoptionen, die @command{guix build} und auch @command{guix package} unterstützen, sind @dfn{Paketumwandlungsoptionen}. Diese Optionen ermöglichen es, @dfn{Paketvarianten} zu definieren — zum Beispiel können Pakete aus einem anderen Quellcode als normalerweise erstellt werden. Damit ist es leicht, angepasste Pakete schnell zu erstellen, ohne die vollständigen Definitionen von Paketvarianten einzutippen (siehe @ref{Defining Packages})."
 
+#. type: Plain text
+#: doc/guix.texi:10081
+msgid "Package transformation options are preserved across upgrades: @command{guix upgrade} attempts to apply transformation options initially used when creating the profile to the upgraded packages."
+msgstr "Paketumwandlungsoptionen bleiben über Aktualisierungen hinweg erhalten: @command{guix upgrade} versucht, Umwandlungsoptionen, die vorher zur Erstellung des Profils benutzt wurden, auf die aktualisierten Pakete anzuwenden."
+
+#. type: Plain text
+#: doc/guix.texi:10086
+msgid "The available options are listed below.  Most commands support them and also support a @option{--help-transform} option that lists all the available options and a synopsis (these options are not shown in the @option{--help} output for brevity)."
+msgstr "Im Folgenden finden Sie die verfügbaren Befehlszeilenoptionen. Die meisten Befehle unterstützen sie ebenso wie eine Option @option{--help-transform}, mit der all die verfügbaren Optionen und je eine Kurzbeschreibung dazu angezeigt werden. (Diese Optionen werden der Kürze wegen nicht in der Ausgabe von @option{--help} aufgeführt.)"
+
 #. type: item
-#: doc/guix.texi:8392
+#: doc/guix.texi:10089
 #, no-wrap
 msgid "--with-source=@var{source}"
 msgstr "--with-source=@var{Quelle}"
 
 #. type: itemx
-#: doc/guix.texi:8393
+#: doc/guix.texi:10090
 #, no-wrap
 msgid "--with-source=@var{package}=@var{source}"
 msgstr "--with-source=@var{Paket}=@var{Quelle}"
 
 #. type: itemx
-#: doc/guix.texi:8394
+#: doc/guix.texi:10091
 #, no-wrap
 msgid "--with-source=@var{package}@@@var{version}=@var{source}"
 msgstr "--with-source=@var{Paket}@@@var{Version}=@var{Quelle}"
 
 #. type: table
-#: doc/guix.texi:8399
+#: doc/guix.texi:10096
 msgid "Use @var{source} as the source of @var{package}, and @var{version} as its version number.  @var{source} must be a file name or a URL, as for @command{guix download} (@pxref{Invoking guix download})."
 msgstr "Den Paketquellcode für das @var{Paket} von der angegebenen @var{Quelle} holen und die @var{Version} als seine Versionsnummer verwenden. Die @var{Quelle} muss ein Dateiname oder eine URL sein wie bei @command{guix download} (siehe @ref{Invoking guix download})."
 
 #. type: table
-#: doc/guix.texi:8405
+#: doc/guix.texi:10102
 msgid "When @var{package} is omitted, it is taken to be the package name specified on the command line that matches the base of @var{source}---e.g., if @var{source} is @code{/src/guile-2.0.10.tar.gz}, the corresponding package is @code{guile}."
 msgstr "Wird kein @var{Paket} angegeben, wird als Paketname derjenige auf der Befehlszeile angegebene Paketname angenommen, der zur Basis am Ende der @var{Quelle} passt — wenn z.B.@: als @var{Quelle} die Datei @code{/src/guile-2.0.10.tar.gz} angegeben wurde, entspricht das dem @code{guile}-Paket."
 
 #. type: table
-#: doc/guix.texi:8408
+#: doc/guix.texi:10105
 msgid "Likewise, when @var{version} is omitted, the version string is inferred from @var{source}; in the previous example, it is @code{2.0.10}."
 msgstr "Ebenso wird, wenn keine @var{Version} angegeben wurde, die Version als Zeichenkette aus der @var{Quelle} abgeleitet; im vorherigen Beispiel wäre sie @code{2.0.10}."
 
 #. type: table
-#: doc/guix.texi:8413
+#: doc/guix.texi:10110
 msgid "This option allows users to try out versions of packages other than the one provided by the distribution.  The example below downloads @file{ed-1.7.tar.gz} from a GNU mirror and uses that as the source for the @code{ed} package:"
 msgstr "Mit dieser Option können Nutzer versuchen, eine andere Version ihres Pakets auszuprobieren, als die in der Distribution enthaltene Version. Folgendes Beispiel lädt @file{ed-1.7.tar.gz} von einem GNU-Spiegelserver herunter und benutzt es als Quelle für das @code{ed}-Paket:"
 
 #. type: example
-#: doc/guix.texi:8416
+#: doc/guix.texi:10113
 #, no-wrap
 msgid "guix build ed --with-source=mirror://gnu/ed/ed-1.7.tar.gz\n"
 msgstr "guix build ed --with-source=mirror://gnu/ed/ed-1.7.tar.gz\n"
 
 #. type: table
-#: doc/guix.texi:8420
-msgid "As a developer, @code{--with-source} makes it easy to test release candidates:"
-msgstr "Für Entwickler wird es einem durch @code{--with-source} leicht gemacht, „Release Candidates“, also Vorabversionen, zu testen:"
+#: doc/guix.texi:10117
+msgid "As a developer, @option{--with-source} makes it easy to test release candidates:"
+msgstr "Für Entwickler wird es einem durch @option{--with-source} leicht gemacht, „Release Candidates“, also Vorabversionen, zu testen:"
 
 #. type: example
-#: doc/guix.texi:8423
+#: doc/guix.texi:10120
 #, no-wrap
 msgid "guix build guile --with-source=../guile-2.0.9.219-e1bb7.tar.xz\n"
 msgstr "guix build guile --with-source=../guile-2.0.9.219-e1bb7.tar.xz\n"
 
 #. type: table
-#: doc/guix.texi:8426
+#: doc/guix.texi:10123
 msgid "@dots{} or to build from a checkout in a pristine environment:"
 msgstr "…@: oder ein Checkout eines versionskontrollierten Repositorys in einer isolierten Umgebung zu erstellen:"
 
 #. type: example
-#: doc/guix.texi:8430
+#: doc/guix.texi:10127
 #, no-wrap
 msgid ""
 "$ git clone git://git.sv.gnu.org/guix.git\n"
@@ -15923,94 +18785,191 @@ msgstr ""
 "$ guix build guix --with-source=guix@@1.0=./guix\n"
 
 #. type: item
-#: doc/guix.texi:8432
+#: doc/guix.texi:10129
 #, no-wrap
 msgid "--with-input=@var{package}=@var{replacement}"
 msgstr "--with-input=@var{Paket}=@var{Ersatz}"
 
 #. type: table
-#: doc/guix.texi:8437
+#: doc/guix.texi:10134
 msgid "Replace dependency on @var{package} by a dependency on @var{replacement}.  @var{package} must be a package name, and @var{replacement} must be a package specification such as @code{guile} or @code{guile@@1.8}."
 msgstr "Abhängigkeiten vom @var{Paket} durch eine Abhängigkeit vom @var{Ersatz}-Paket ersetzen. Als @var{Paket} muss ein Paketname angegeben werden und als @var{Ersatz} eine Paketspezifikation wie @code{guile} oder @code{guile@@1.8}."
 
 #. type: table
-#: doc/guix.texi:8441
+#: doc/guix.texi:10138
 msgid "For instance, the following command builds Guix, but replaces its dependency on the current stable version of Guile with a dependency on the legacy version of Guile, @code{guile@@2.0}:"
 msgstr "Mit folgendem Befehl wird zum Beispiel Guix erstellt, aber statt der aktuellen stabilen Guile-Version hängt es von der alten Guile-Version @code{guile@@2.0} ab:"
 
 #. type: example
-#: doc/guix.texi:8444
+#: doc/guix.texi:10141
 #, no-wrap
 msgid "guix build --with-input=guile=guile@@2.0 guix\n"
 msgstr "guix build --with-input=guile=guile@@2.0 guix\n"
 
 #. type: table
-#: doc/guix.texi:8449
+#: doc/guix.texi:10146
 msgid "This is a recursive, deep replacement.  So in this example, both @code{guix} and its dependency @code{guile-json} (which also depends on @code{guile}) get rebuilt against @code{guile@@2.0}."
 msgstr "Die Ersetzung ist rekursiv und umfassend. In diesem Beispiel würde nicht nur @code{guix}, sondern auch seine Abhängigkeit @code{guile-json} (was auch von @code{guile} abhängt) für @code{guile@@2.0} neu erstellt."
 
 #. type: table
-#: doc/guix.texi:8452
+#: doc/guix.texi:10149
 msgid "This is implemented using the @code{package-input-rewriting} Scheme procedure (@pxref{Defining Packages, @code{package-input-rewriting}})."
 msgstr "Implementiert wird das alles mit der Scheme-Prozedur @code{package-input-rewriting} (siehe @ref{Defining Packages, @code{package-input-rewriting}})."
 
 #. type: item
-#: doc/guix.texi:8453
+#: doc/guix.texi:10150
 #, no-wrap
 msgid "--with-graft=@var{package}=@var{replacement}"
 msgstr "--with-graft=@var{Paket}=@var{Ersatz}"
 
 #. type: table
-#: doc/guix.texi:8459
-msgid "This is similar to @code{--with-input} but with an important difference: instead of rebuilding the whole dependency chain, @var{replacement} is built and then @dfn{grafted} onto the binaries that were initially referring to @var{package}.  @xref{Security Updates}, for more information on grafts."
-msgstr "Dies verhält sich ähnlich wie mit @code{--with-input}, aber mit dem wichtigen Unterschied, dass nicht die gesamte Abhängigkeitskette neu erstellt wird, sondern das @var{Ersatz}-Paket erstellt und die ursprünglichen Binärdateien, die auf das @var{Paket} verwiesen haben, damit @dfn{veredelt} werden. Im Abschnitt @ref{Security Updates} finden Sie weitere Informationen über Veredelungen."
+#: doc/guix.texi:10156
+msgid "This is similar to @option{--with-input} but with an important difference: instead of rebuilding the whole dependency chain, @var{replacement} is built and then @dfn{grafted} onto the binaries that were initially referring to @var{package}.  @xref{Security Updates}, for more information on grafts."
+msgstr "Dies verhält sich ähnlich wie mit @option{--with-input}, aber mit dem wichtigen Unterschied, dass nicht die gesamte Abhängigkeitskette neu erstellt wird, sondern das @var{Ersatz}-Paket erstellt und die ursprünglichen Binärdateien, die auf das @var{Paket} verwiesen haben, damit @dfn{veredelt} werden. Im Abschnitt @ref{Security Updates} finden Sie weitere Informationen über Veredelungen."
 
 #. type: table
-#: doc/guix.texi:8463
+#: doc/guix.texi:10160
 msgid "For example, the command below grafts version 3.5.4 of GnuTLS onto Wget and all its dependencies, replacing references to the version of GnuTLS they currently refer to:"
 msgstr "Zum Beispiel veredelt folgender Befehl Wget und alle Abhängigkeiten davon mit der Version 3.5.4 von GnuTLS, indem Verweise auf die ursprünglich verwendete GnuTLS-Version ersetzt werden:"
 
 #. type: example
-#: doc/guix.texi:8466
+#: doc/guix.texi:10163
 #, no-wrap
 msgid "guix build --with-graft=gnutls=gnutls@@3.5.4 wget\n"
 msgstr "guix build --with-graft=gnutls=gnutls@@3.5.4 wget\n"
 
 #. type: table
-#: doc/guix.texi:8475
+#: doc/guix.texi:10172
 msgid "This has the advantage of being much faster than rebuilding everything.  But there is a caveat: it works if and only if @var{package} and @var{replacement} are strictly compatible---for example, if they provide a library, the application binary interface (ABI) of those libraries must be compatible.  If @var{replacement} is somehow incompatible with @var{package}, then the resulting package may be unusable.  Use with care!"
 msgstr "Das hat den Vorteil, dass es viel schneller geht, als alles neu zu erstellen. Die Sache hat aber einen Haken: Veredelung funktioniert nur, wenn das @var{Paket} und sein @var{Ersatz} miteinander streng kompatibel sind — zum Beispiel muss, wenn diese eine Programmbibliothek zur Verfügung stellen, deren Binärschnittstelle („Application Binary Interface“, kurz ABI) kompatibel sein. Wenn das @var{Ersatz}-Paket auf irgendeine Art inkompatibel mit dem @var{Paket} ist, könnte das Ergebnispaket unbrauchbar sein. Vorsicht ist also geboten!"
 
+#. type: cindex
+#: doc/guix.texi:10173 doc/guix.texi:32308
+#, no-wrap
+msgid "debugging info, rebuilding"
+msgstr "Dateien zur Fehlersuche, neu erstellen"
+
+#. type: item
+#: doc/guix.texi:10174
+#, no-wrap
+msgid "--with-debug-info=@var{package}"
+msgstr "--with-debug-info=@var{Paket}"
+
+#. type: table
+#: doc/guix.texi:10179
+msgid "Build @var{package} in a way that preserves its debugging info and graft it onto packages that depend on it.  This is useful if @var{package} does not already provide debugging info as a @code{debug} output (@pxref{Installing Debugging Files})."
+msgstr "Das @var{Paket} auf eine Weise erstellen, die Informationen zur Fehlersuche enthält, und von ihm abhängige Pakete damit veredeln. Das ist nützlich, wenn das @var{Paket} noch keine Fehlersuchinformationen als installierbare @code{debug}-Ausgabe enthält (siehe @ref{Installing Debugging Files})."
+
+#. type: table
+#: doc/guix.texi:10185
+msgid "For example, suppose you're experiencing a crash in Inkscape and would like to see what's up in GLib, a library deep down in Inkscape's dependency graph.  GLib lacks a @code{debug} output, so debugging is tough.  Fortunately, you rebuild GLib with debugging info and tack it on Inkscape:"
+msgstr "Als Beispiel nehmen wir an, Inkscape stürzt bei Ihnen ab und Sie möchten wissen, was dabei in GLib passiert. Die GLib-Bibliothek liegt tief im Abhängigkeitsgraphen von Inkscape und verfügt nicht über eine @code{debug}-Ausgabe; das erschwert die Fehlersuche. Glücklicherweise können Sie GLib mit Informationen zur Fehlersuche neu erstellen und an Inkscape anheften:"
+
+#. type: example
+#: doc/guix.texi:10188 doc/guix.texi:32339
+#, no-wrap
+msgid "guix install inkscape --with-debug-info=glib\n"
+msgstr "guix install inkscape --with-debug-info=glib\n"
+
+#. type: table
+#: doc/guix.texi:10192
+msgid "Only GLib needs to be recompiled so this takes a reasonable amount of time.  @xref{Installing Debugging Files}, for more info."
+msgstr "Nur GLib muss neu kompiliert werden, was in vernünftiger Zeit möglich ist. Siehe @ref{Installing Debugging Files} für mehr Informationen."
+
+#. type: quotation
+#: doc/guix.texi:10198
+msgid "Under the hood, this option works by passing the @samp{#:strip-binaries? #f} to the build system of the package of interest (@pxref{Build Systems}).  Most build systems support that option but some do not.  In that case, an error is raised."
+msgstr "Intern funktioniert diese Option, indem @samp{#:strip-binaries? #f} an das Erstellungssystem des betreffenden Pakets übergeben wird (siehe @ref{Build Systems}). Die meisten Erstellungssysteme unterstützen diese Option, manche aber nicht. In diesem Fall wird ein Fehler gemeldet."
+
+#. type: quotation
+#: doc/guix.texi:10202
+msgid "Likewise, if a C/C++ package is built without @code{-g} (which is rarely the case), debugging info will remain unavailable even when @code{#:strip-binaries?} is false."
+msgstr "Auch wenn ein in C/C++ geschriebenes Paket ohne @code{-g} erstellt wird (was selten der Fall ist), werden Informationen zur Fehlersuche weiterhin fehlen, obwohl @code{#:strip-binaries?} auf falsch steht."
+
+#. type: cindex
+#: doc/guix.texi:10204
+#, no-wrap
+msgid "tool chain, changing the build tool chain of a package"
+msgstr "Toolchain, die Erstellungs-Toolchain eines Pakets ändern"
+
+#. type: item
+#: doc/guix.texi:10205
+#, no-wrap
+msgid "--with-c-toolchain=@var{package}=@var{toolchain}"
+msgstr "--with-c-toolchain=@var{Paket}=@var{Toolchain}"
+
+#. type: table
+#: doc/guix.texi:10209
+msgid "This option changes the compilation of @var{package} and everything that depends on it so that they get built with @var{toolchain} instead of the default GNU tool chain for C/C++."
+msgstr "Mit dieser Befehlszeilenoption wird die Kompilierung des @var{Paket}s und aller davon abhängigen Objekte angepasst, so dass mit der @var{Toolchain} statt der vorgegebenen GNU-Toolchain für C/C++ erstellt wird."
+
+#. type: example
+#: doc/guix.texi:10216
+#, no-wrap
+msgid ""
+"guix build octave-cli \\\n"
+"  --with-c-toolchain=fftw=gcc-toolchain@@10 \\\n"
+"  --with-c-toolchain=fftwf=gcc-toolchain@@10\n"
+msgstr ""
+"guix build octave-cli \\\n"
+"  --with-c-toolchain=fftw=gcc-toolchain@@10 \\\n"
+"  --with-c-toolchain=fftwf=gcc-toolchain@@10\n"
+
+#. type: table
+#: doc/guix.texi:10223
+msgid "The command above builds a variant of the @code{fftw} and @code{fftwf} packages using version 10 of @code{gcc-toolchain} instead of the default tool chain, and then builds a variant of the GNU@tie{}Octave command-line interface using them.  GNU@tie{}Octave itself is also built with @code{gcc-toolchain@@10}."
+msgstr "Mit dem obigen Befehl wird eine Variante der Pakete @code{fftw} und @code{fftwf} mit Version 10 der @code{gcc-toolchain} anstelle der vorgegebenen Toolchain erstellt, um damit anschließend eine diese benutzende Variante des GNU-Octave-Befehlszeilenprogramms zu erstellen. Auch GNU@tie{}Octave selbst wird mit @code{gcc-toolchain@@10} erstellt."
+
+#. type: table
+#: doc/guix.texi:10227
+msgid "This other example builds the Hardware Locality (@code{hwloc}) library and its dependents up to @code{intel-mpi-benchmarks} with the Clang C compiler:"
+msgstr "Das zweite Beispiel bewirkt eine Erstellung der „Hardware Locality“-Bibliothek (@code{hwloc}) sowie ihrer abhängigen Objekte bis einschließlich @code{intel-mpi-benchmarks} mit dem Clang-C-Compiler:"
+
+#. type: example
+#: doc/guix.texi:10231
+#, no-wrap
+msgid ""
+"guix build --with-c-toolchain=hwloc=clang-toolchain \\\n"
+"           intel-mpi-benchmarks\n"
+msgstr ""
+"guix build --with-c-toolchain=hwloc=clang-toolchain \\\n"
+"           intel-mpi-benchmarks\n"
+
+#. type: quotation
+#: doc/guix.texi:10240
+msgid "There can be application binary interface (ABI) incompatibilities among tool chains.  This is particularly true of the C++ standard library and run-time support libraries such as that of OpenMP.  By rebuilding all dependents with the same tool chain, @option{--with-c-toolchain} minimizes the risks of incompatibility but cannot entirely eliminate them.  Choose @var{package} wisely."
+msgstr "Es kann vorkommen, dass die Anwendungsbinärschnittstellen („Application Binary Interfaces“, kurz ABIs) der Toolchains inkompatibel sind. Das tritt vor allem bei der C++-Standardbibliothek und Bibliotheken zur Laufzeitunterstützung wie denen von OpenMP auf. Indem alle abhängigen Objekte mit derselben Toolchain erstellt werden, minimiert @option{--with-c-toolchain} das Risiko, dass es zu Inkompatibilitäten kommt, aber es kann nicht ganz ausgeschlossen werden. Bedenken Sie, für welches @var{Paket} Sie dies benutzen."
+
 #. type: item
-#: doc/guix.texi:8476
+#: doc/guix.texi:10242
 #, no-wrap
 msgid "--with-git-url=@var{package}=@var{url}"
 msgstr "--with-git-url=@var{Paket}=@var{URL}"
 
 #. type: cindex
-#: doc/guix.texi:8477
+#: doc/guix.texi:10243
 #, no-wrap
 msgid "Git, using the latest commit"
 msgstr "Git, den neuesten Commit benutzen"
 
 #. type: cindex
-#: doc/guix.texi:8478
+#: doc/guix.texi:10244
 #, no-wrap
 msgid "latest commit, building"
 msgstr "neuester Commit, davon erstellen"
 
 #. type: table
-#: doc/guix.texi:8482
+#: doc/guix.texi:10248
 msgid "Build @var{package} from the latest commit of the @code{master} branch of the Git repository at @var{url}.  Git sub-modules of the repository are fetched, recursively."
 msgstr "Das @var{Paket} aus dem neuesten Commit im @code{master}-Branch des unter der @var{URL} befindlichen Git-Repositorys erstellen. Git-Submodule des Repositorys werden dabei rekursiv geladen."
 
 #. type: table
-#: doc/guix.texi:8485
+#: doc/guix.texi:10251
 msgid "For example, the following command builds the NumPy Python library against the latest commit of the master branch of Python itself:"
 msgstr "Zum Beispiel erstellt der folgende Befehl die NumPy-Python-Bibliothek unter Verwendung des neuesten Commits von Python auf dessen „master“-Branch."
 
 #. type: example
-#: doc/guix.texi:8489
+#: doc/guix.texi:10255
 #, no-wrap
 msgid ""
 "guix build python-numpy \\\n"
@@ -16020,195 +18979,243 @@ msgstr ""
 "  --with-git-url=python=https://github.com/python/cpython\n"
 
 #. type: table
-#: doc/guix.texi:8493
-msgid "This option can also be combined with @code{--with-branch} or @code{--with-commit} (see below)."
-msgstr "Diese Befehlszeilenoption kann auch mit @code{--with-branch} oder @code{--with-commit} kombiniert werden (siehe unten)."
+#: doc/guix.texi:10259
+msgid "This option can also be combined with @option{--with-branch} or @option{--with-commit} (see below)."
+msgstr "Diese Befehlszeilenoption kann auch mit @option{--with-branch} oder @option{--with-commit} kombiniert werden (siehe unten)."
 
 #. type: cindex
-#: doc/guix.texi:8494 doc/guix.texi:22466
+#: doc/guix.texi:10260 doc/guix.texi:25318
 #, no-wrap
 msgid "continuous integration"
 msgstr "Kontinuierliche Integration"
 
 #. type: table
-#: doc/guix.texi:8500
+#: doc/guix.texi:10266
 msgid "Obviously, since it uses the latest commit of the given branch, the result of such a command varies over time.  Nevertheless it is a convenient way to rebuild entire software stacks against the latest commit of one or more packages.  This is particularly useful in the context of continuous integration (CI)."
 msgstr "Da es den neuesten Commit auf dem verwendeten Branch benutzt, ändert sich das Ergebnis natürlich mit der Zeit. Nichtsdestoweniger ist es eine bequeme Möglichkeit, ganze Softwarestapel auf dem neuesten Commit von einem oder mehr Paketen aufbauen zu lassen. Es ist besonders nützlich im Kontext Kontinuierlicher Integration (englisch „Continuous Integration“, kurz CI)."
 
 #. type: table
-#: doc/guix.texi:8504
+#: doc/guix.texi:10270
 msgid "Checkouts are kept in a cache under @file{~/.cache/guix/checkouts} to speed up consecutive accesses to the same repository.  You may want to clean it up once in a while to save disk space."
 msgstr "Checkouts bleiben zwischengespeichert als @file{~/.cache/guix/checkouts}, damit danach schneller auf dasselbe Repository zugegriffen werden kann. Eventuell möchten Sie das Verzeichnis ab und zu bereinigen, um Plattenplatz zu sparen."
 
 #. type: item
-#: doc/guix.texi:8505
+#: doc/guix.texi:10271
 #, no-wrap
 msgid "--with-branch=@var{package}=@var{branch}"
 msgstr "--with-branch=@var{Paket}=@var{Branch}"
 
 #. type: table
-#: doc/guix.texi:8511
-msgid "Build @var{package} from the latest commit of @var{branch}.  If the @code{source} field of @var{package} is an origin with the @code{git-fetch} method (@pxref{origin Reference}) or a @code{git-checkout} object, the repository URL is taken from that @code{source}.  Otherwise you have to use @code{--with-git-url} to specify the URL of the Git repository."
-msgstr "Das @var{Paket} aus dem neuesten Commit auf dem @var{Branch} erstellen. Wenn das @code{source}-Feld des @var{Paket}s ein origin-Objekt mit der Methode @code{git-fetch} (siehe @ref{origin Reference}) oder ein @code{git-checkout}-Objekt ist, wird die URL des Repositorys vom @code{source}-Feld genommen. Andernfalls müssen Sie die Befehlszeilenoption @code{--with-git-url} benutzen, um die URL des Git-Repositorys anzugeben."
+#: doc/guix.texi:10277
+msgid "Build @var{package} from the latest commit of @var{branch}.  If the @code{source} field of @var{package} is an origin with the @code{git-fetch} method (@pxref{origin Reference}) or a @code{git-checkout} object, the repository URL is taken from that @code{source}.  Otherwise you have to use @option{--with-git-url} to specify the URL of the Git repository."
+msgstr "Das @var{Paket} aus dem neuesten Commit auf dem @var{Branch} erstellen. Wenn das @code{source}-Feld des @var{Paket}s ein origin-Objekt mit der Methode @code{git-fetch} (siehe @ref{origin Reference}) oder ein @code{git-checkout}-Objekt ist, wird die URL des Repositorys vom @code{source}-Feld genommen. Andernfalls müssen Sie die Befehlszeilenoption @option{--with-git-url} benutzen, um die URL des Git-Repositorys anzugeben."
 
 #. type: table
-#: doc/guix.texi:8516
+#: doc/guix.texi:10282
 msgid "For instance, the following command builds @code{guile-sqlite3} from the latest commit of its @code{master} branch, and then builds @code{guix} (which depends on it) and @code{cuirass} (which depends on @code{guix}) against this specific @code{guile-sqlite3} build:"
 msgstr "Zum Beispiel wird mit dem folgenden Befehl @code{guile-sqlite3} aus dem neuesten Commit seines @code{master}-Branches erstellt und anschließend @code{guix} (was von @code{guile-sqlite3} abhängt) und @code{cuirass} (was von @code{guix} abhängt) unter Nutzung genau dieser @code{guile-sqlite3}-Erstellung erstellt:"
 
 #. type: example
-#: doc/guix.texi:8519
+#: doc/guix.texi:10285
 #, no-wrap
 msgid "guix build --with-branch=guile-sqlite3=master cuirass\n"
 msgstr "guix build --with-branch=guile-sqlite3=master cuirass\n"
 
 #. type: item
-#: doc/guix.texi:8521
+#: doc/guix.texi:10287
 #, no-wrap
 msgid "--with-commit=@var{package}=@var{commit}"
 msgstr "--with-commit=@var{Paket}=@var{Commit}"
 
 #. type: table
-#: doc/guix.texi:8525
-msgid "This is similar to @code{--with-branch}, except that it builds from @var{commit} rather than the tip of a branch.  @var{commit} must be a valid Git commit SHA1 identifier or a tag."
-msgstr "Dies verhält sich ähnlich wie @code{--with-branch}, außer dass es den angegebenen @var{Commit} benutzt statt die Spitze eines angegebenen Branches. Als @var{Commit} muss ein gültiger SHA1-Bezeichner oder ein Tag für einen Git-Commit angegeben werden."
+#: doc/guix.texi:10291
+msgid "This is similar to @option{--with-branch}, except that it builds from @var{commit} rather than the tip of a branch.  @var{commit} must be a valid Git commit SHA1 identifier or a tag."
+msgstr "Dies verhält sich ähnlich wie @option{--with-branch}, außer dass es den angegebenen @var{Commit} benutzt statt die Spitze eines angegebenen Branches. Als @var{Commit} muss ein gültiger SHA1-Bezeichner oder ein Tag für einen Git-Commit angegeben werden."
+
+#. type: cindex
+#: doc/guix.texi:10292
+#, no-wrap
+msgid "test suite, skipping"
+msgstr "Testkatalog, überspringen"
+
+#. type: item
+#: doc/guix.texi:10293
+#, no-wrap
+msgid "--without-tests=@var{package}"
+msgstr "--without-tests=@var{Paket}"
+
+#. type: table
+#: doc/guix.texi:10299
+msgid "Build @var{package} without running its tests.  This can be useful in situations where you want to skip the lengthy test suite of a intermediate package, or if a package's test suite fails in a non-deterministic fashion.  It should be used with care because running the test suite is a good way to ensure a package is working as intended."
+msgstr "Das @var{Paket} erstellen, ohne seine Tests zu durchlaufen. Das erweist sich als nützlich, wenn Sie Testkataloge überspringen möchten, die viel Zeit in Anspruch nehmen, oder wenn der Testkatalog eines Pakets nichtdeterministisch fehlschlägt. Dies sollte mit Bedacht eingesetzt werden, denn das Ausführen des Testkatalogs sichert zu, dass ein Paket wie gewollt funktioniert."
+
+#. type: table
+#: doc/guix.texi:10303
+msgid "Turning off tests leads to a different store item.  Consequently, when using this option, anything that depends on @var{package} must be rebuilt, as in this example:"
+msgstr "Wenn die Tests abgeschaltet werden, ergibt sich ein anderes Store-Objekt. Dadurch muss, wenn diese Option benutzt wird, auch alles, was vom Paket abhängt, neu erstellt werden, wie Sie in diesem Beispiel sehen können:"
+
+#. type: example
+#: doc/guix.texi:10306
+#, no-wrap
+msgid "guix install --without-tests=python python-notebook\n"
+msgstr "guix install --without-tests=python python-notebook\n"
+
+#. type: table
+#: doc/guix.texi:10312
+msgid "The command above installs @code{python-notebook} on top of @code{python} built without running its test suite.  To do so, it also rebuilds everything that depends on @code{python}, including @code{python-notebook} itself."
+msgstr "Mit obigem Befehl wird @code{python-notebook} für ein @code{python} installiert, dessen Testkatalog nicht ausgeführt wurde. Dazu wird auch alles neu erstellt, was von @code{python} abhängt, einschließlich @code{python-notebook}."
+
+#. type: table
+#: doc/guix.texi:10318
+msgid "Internally, @option{--without-tests} relies on changing the @code{#:tests?} option of a package's @code{check} phase (@pxref{Build Systems}).  Note that some packages use a customized @code{check} phase that does not respect a @code{#:tests? #f} setting.  Therefore, @option{--without-tests} has no effect on these packages."
+msgstr "Intern funktioniert @option{--without-tests}, indem es die Option @code{#:tests?} der @code{check}-Phase eines Pakets abändert (siehe @ref{Build Systems}). Beachten Sie, dass manche Pakete eine angepasste @code{check}-Phase benutzen, die eine Einstellung wie @code{#:tests? #f} nicht berücksichtigt. Deshalb wirkt sich @option{--without-tests} auf diese Pakete nicht aus."
 
 #. type: Plain text
-#: doc/guix.texi:8532
+#: doc/guix.texi:10325
+msgid "Wondering how to achieve the same effect using Scheme code, for example in your manifest, or how to write your own package transformation? @xref{Defining Package Variants}, for an overview of the programming interfaces available."
+msgstr "Sie fragen sich sicher, wie Sie dieselbe Wirkung mit Scheme-Code erzielen können, zum Beispiel wenn Sie Ihr Manifest oder eine eigene Paketumwandlung schreiben? Siehe @ref{Defining Package Variants} für eine Übersicht über verfügbare Programmierschnittstellen."
+
+#. type: Plain text
+#: doc/guix.texi:10331
 msgid "The command-line options presented below are specific to @command{guix build}."
 msgstr "Die unten aufgeführten Befehlszeilenoptionen funktionieren nur mit @command{guix build}."
 
 #. type: item
-#: doc/guix.texi:8535
+#: doc/guix.texi:10334
 #, no-wrap
 msgid "--quiet"
 msgstr "--quiet"
 
 #. type: table
-#: doc/guix.texi:8540
-msgid "Build quietly, without displaying the build log; this is equivalent to @code{--verbosity=0}.  Upon completion, the build log is kept in @file{/var} (or similar) and can always be retrieved using the @option{--log-file} option."
-msgstr "Schweigend erstellen, ohne das Erstellungsprotokoll anzuzeigen — dies ist äquivalent zu @code{--verbosity=0}. Nach Abschluss der Erstellung ist das Protokoll in @file{/var} (oder einem entsprechenden Ort) einsehbar und kann jederzeit mit der Befehlszeilenoption @option{--log-file} gefunden werden."
+#: doc/guix.texi:10339
+msgid "Build quietly, without displaying the build log; this is equivalent to @option{--verbosity=0}.  Upon completion, the build log is kept in @file{/var} (or similar) and can always be retrieved using the @option{--log-file} option."
+msgstr "Schweigend erstellen, ohne das Erstellungsprotokoll anzuzeigen — dies ist äquivalent zu @option{--verbosity=0}. Nach Abschluss der Erstellung ist das Protokoll in @file{/var} (oder einem entsprechenden Ort) einsehbar und kann jederzeit mit der Befehlszeilenoption @option{--log-file} gefunden werden."
 
 #. type: item
-#: doc/guix.texi:8541
+#: doc/guix.texi:10340
 #, no-wrap
 msgid "--file=@var{file}"
 msgstr "--file=@var{Datei}"
 
 #. type: table
-#: doc/guix.texi:8545
+#: doc/guix.texi:10344
 msgid "Build the package, derivation, or other file-like object that the code within @var{file} evaluates to (@pxref{G-Expressions, file-like objects})."
 msgstr "Das Paket, die Ableitung oder das dateiähnliche Objekt erstellen, zu dem der Code in der @var{Datei} ausgewertet wird (siehe @ref{G-Expressions, dateiartige Objekte})."
 
 #. type: table
-#: doc/guix.texi:8548
+#: doc/guix.texi:10347
 msgid "As an example, @var{file} might contain a package definition like this (@pxref{Defining Packages}):"
 msgstr "Zum Beispiel könnte in der @var{Datei} so eine Paketdefinition stehen (siehe @ref{Defining Packages}):"
 
+#. type: table
+#: doc/guix.texi:10356
+msgid "The @var{file} may also contain a JSON representation of one or more package definitions.  Running @code{guix build -f} on @file{hello.json} with the following contents would result in building the packages @code{myhello} and @code{greeter}:"
+msgstr "Die @var{Datei} darf auch eine JSON-Darstellung von einer oder mehreren Paketdefinitionen sein. Wenn wir @code{guix build -f} auf einer @file{hello.json}-Datei mit dem folgenden Inhalt ausführen würden, würden die Pakete @code{myhello} und @code{greeter} erstellt werden:"
+
 #. type: item
-#: doc/guix.texi:8553
+#: doc/guix.texi:10361
 #, no-wrap
 msgid "--manifest=@var{manifest}"
 msgstr "--manifest=@var{Manifest}"
 
 #. type: itemx
-#: doc/guix.texi:8554
+#: doc/guix.texi:10362
 #, no-wrap
 msgid "-m @var{manifest}"
 msgstr "-m @var{Manifest}"
 
 #. type: table
-#: doc/guix.texi:8557
+#: doc/guix.texi:10365
 msgid "Build all packages listed in the given @var{manifest} (@pxref{profile-manifest, @option{--manifest}})."
 msgstr "Alle Pakete erstellen, die im angegebenen @var{Manifest} stehen (siehe @ref{profile-manifest, @option{--manifest}})."
 
 #. type: table
-#: doc/guix.texi:8561
+#: doc/guix.texi:10369
 msgid "Build the package or derivation @var{expr} evaluates to."
 msgstr "Das Paket oder die Ableitung erstellen, zu der der @var{Ausdruck} ausgewertet wird."
 
 #. type: table
-#: doc/guix.texi:8565
+#: doc/guix.texi:10373
 msgid "For example, @var{expr} may be @code{(@@ (gnu packages guile)  guile-1.8)}, which unambiguously designates this specific variant of version 1.8 of Guile."
 msgstr "Zum Beispiel kann der @var{Ausdruck} @code{(@@ (gnu packages guile)  guile-1.8)} sein, was diese bestimmte Variante der Version 1.8 von Guile eindeutig bezeichnet."
 
 #. type: table
-#: doc/guix.texi:8569
+#: doc/guix.texi:10377
 msgid "Alternatively, @var{expr} may be a G-expression, in which case it is used as a build program passed to @code{gexp->derivation} (@pxref{G-Expressions})."
 msgstr "Alternativ kann der @var{Ausdruck} ein G-Ausdruck sein. In diesem Fall wird er als Erstellungsprogramm an @code{gexp->derivation} übergeben (siehe @ref{G-Expressions})."
 
 #. type: table
-#: doc/guix.texi:8573
+#: doc/guix.texi:10381
 msgid "Lastly, @var{expr} may refer to a zero-argument monadic procedure (@pxref{The Store Monad}).  The procedure must return a derivation as a monadic value, which is then passed through @code{run-with-store}."
 msgstr "Zudem kann der @var{Ausdruck} eine monadische Prozedur mit null Argumenten bezeichnen (siehe @ref{The Store Monad}). Die Prozedur muss eine Ableitung als monadischen Wert zurückliefern, die dann durch @code{run-with-store} laufen gelassen wird."
 
 #. type: item
-#: doc/guix.texi:8574
+#: doc/guix.texi:10382
 #, no-wrap
 msgid "--source"
 msgstr "--source"
 
 #. type: itemx
-#: doc/guix.texi:8575
+#: doc/guix.texi:10383
 #, no-wrap
 msgid "-S"
 msgstr "-S"
 
 #. type: table
-#: doc/guix.texi:8578
+#: doc/guix.texi:10386
 msgid "Build the source derivations of the packages, rather than the packages themselves."
 msgstr "Die Quellcode-Ableitung der Pakete statt die Pakete selbst erstellen."
 
 #. type: table
-#: doc/guix.texi:8582
+#: doc/guix.texi:10390
 msgid "For instance, @code{guix build -S gcc} returns something like @file{/gnu/store/@dots{}-gcc-4.7.2.tar.bz2}, which is the GCC source tarball."
 msgstr "Zum Beispiel liefert @code{guix build -S gcc} etwas in der Art von @file{/gnu/store/…-gcc-4.7.2.tar.bz2}, also den Tarball mit dem GCC-Quellcode."
 
 #. type: table
-#: doc/guix.texi:8586
+#: doc/guix.texi:10394
 msgid "The returned source tarball is the result of applying any patches and code snippets specified in the package @code{origin} (@pxref{Defining Packages})."
 msgstr "Der gelieferte Quell-Tarball ist das Ergebnis davon, alle Patches und Code-Schnipsel aufzuspielen, die im @code{origin}-Objekt des Pakets festgelegt wurden (siehe @ref{Defining Packages})."
 
 #. type: table
-#: doc/guix.texi:8591
+#: doc/guix.texi:10399
 msgid "Note that @command{guix build -S} compiles the sources only of the specified packages.  They do not include the sources of statically linked dependencies and by themselves are insufficient for reproducing the packages."
 msgstr "Beachten Sie, dass @command{guix build -S} nur für die angegebenen Pakete den Quellcode herunterlädt. Dazu gehört @emph{nicht} der Quellcode statisch gebundener Abhängigkeiten und der Quellcode alleine reicht nicht aus, um die Pakete zu reproduzieren."
 
 #. type: item
-#: doc/guix.texi:8592
+#: doc/guix.texi:10400
 #, no-wrap
 msgid "--sources"
 msgstr "--sources"
 
 #. type: table
-#: doc/guix.texi:8599
-msgid "Fetch and return the source of @var{package-or-derivation} and all their dependencies, recursively.  This is a handy way to obtain a local copy of all the source code needed to build @var{packages}, allowing you to eventually build them even without network access.  It is an extension of the @code{--source} option and can accept one of the following optional argument values:"
-msgstr "Den Quellcode für @var{Paket-oder-Ableitung} und alle Abhängigkeiten davon rekursiv herunterladen und zurückliefern. Dies ist eine praktische Methode, eine lokale Kopie des gesamten Quellcodes zu beziehen, der nötig ist, um die Pakete zu erstellen, damit Sie diese später auch ohne Netzwerkzugang erstellen lassen können. Es handelt sich um eine Erweiterung der Befehlszeilenoption @code{--source}, die jeden der folgenden Argumentwerte akzeptiert:"
+#: doc/guix.texi:10407
+msgid "Fetch and return the source of @var{package-or-derivation} and all their dependencies, recursively.  This is a handy way to obtain a local copy of all the source code needed to build @var{packages}, allowing you to eventually build them even without network access.  It is an extension of the @option{--source} option and can accept one of the following optional argument values:"
+msgstr "Den Quellcode für @var{Paket-oder-Ableitung} und alle Abhängigkeiten davon rekursiv herunterladen und zurückliefern. Dies ist eine praktische Methode, eine lokale Kopie des gesamten Quellcodes zu beziehen, der nötig ist, um die Pakete zu erstellen, damit Sie diese später auch ohne Netzwerkzugang erstellen lassen können. Es handelt sich um eine Erweiterung der Befehlszeilenoption @option{--source}, die jeden der folgenden Argumentwerte akzeptiert:"
 
 #. type: item
-#: doc/guix.texi:8601 doc/guix.texi:10050
+#: doc/guix.texi:10409 doc/guix.texi:11914
 #, no-wrap
 msgid "package"
 msgstr "package"
 
 #. type: table
-#: doc/guix.texi:8604
-msgid "This value causes the @code{--sources} option to behave in the same way as the @code{--source} option."
-msgstr "Mit diesem Wert verhält sich die Befehlszeilenoption @code{--sources} auf genau die gleiche Weise wie die Befehlszeilenoption @code{--source}."
+#: doc/guix.texi:10412
+msgid "This value causes the @option{--sources} option to behave in the same way as the @option{--source} option."
+msgstr "Mit diesem Wert verhält sich die Befehlszeilenoption @option{--sources} auf genau die gleiche Weise wie die Befehlszeilenoption @option{--source}."
 
 #. type: item
-#: doc/guix.texi:8605 doc/guix.texi:14934
+#: doc/guix.texi:10413 doc/guix.texi:17488
 #, no-wrap
 msgid "all"
 msgstr "all"
 
 #. type: table
-#: doc/guix.texi:8608
+#: doc/guix.texi:10416
 msgid "Build the source derivations of all packages, including any source that might be listed as @code{inputs}.  This is the default value."
 msgstr "Erstellt die Quellcode-Ableitungen aller Pakete einschließlich allen Quellcodes, der als Teil der Eingaben im @code{inputs}-Feld aufgelistet ist. Dies ist der vorgegebene Wert, wenn sonst keiner angegeben wird."
 
 #. type: example
-#: doc/guix.texi:8614
+#: doc/guix.texi:10422
 #, no-wrap
 msgid ""
 "$ guix build --sources tzdata\n"
@@ -16222,18 +19229,18 @@ msgstr ""
 "   /gnu/store/…-tzcode2015b.tar.gz.drv\n"
 
 #. type: item
-#: doc/guix.texi:8616
+#: doc/guix.texi:10424
 #, no-wrap
 msgid "transitive"
 msgstr "transitive"
 
 #. type: table
-#: doc/guix.texi:8620
+#: doc/guix.texi:10428
 msgid "Build the source derivations of all packages, as well of all transitive inputs to the packages.  This can be used e.g.@: to prefetch package source for later offline building."
 msgstr "Die Quellcode-Ableitungen aller Pakete sowie aller transitiven Eingaben der Pakete erstellen. Damit kann z.B.@: Paket-Quellcode vorab heruntergeladen und später offline erstellt werden."
 
 #. type: example
-#: doc/guix.texi:8631
+#: doc/guix.texi:10439
 #, no-wrap
 msgid ""
 "$ guix build --sources=transitive tzdata\n"
@@ -16257,152 +19264,152 @@ msgstr ""
 "…\n"
 
 #. type: table
-#: doc/guix.texi:8641
+#: doc/guix.texi:10449
 msgid "Attempt to build for @var{system}---e.g., @code{i686-linux}---instead of the system type of the build host.  The @command{guix build} command allows you to repeat this option several times, in which case it builds for all the specified systems; other commands ignore extraneous @option{-s} options."
 msgstr "Versuchen, für das angegebene @var{System} — z.B.@: @code{i686-linux} — statt für denselben Systemtyp wie auf dem Wirtssystem zu erstellen. Beim Befehl @command{guix build} können Sie diese Befehlszeilenoption mehrmals wiederholen, wodurch für jedes angegebene System eine Erstellung durchgeführt wird; andere Befehle ignorieren überzählige @option{-s}-Befehlszeilenoptionen."
 
 #. type: quotation
-#: doc/guix.texi:8646
-msgid "The @code{--system} flag is for @emph{native} compilation and must not be confused with cross-compilation.  See @code{--target} below for information on cross-compilation."
-msgstr "Die Befehlszeilenoption @code{--system} dient der @emph{nativen} Kompilierung (nicht zu verwechseln mit Cross-Kompilierung). Siehe @code{--target} unten für Informationen zur Cross-Kompilierung."
+#: doc/guix.texi:10454
+msgid "The @option{--system} flag is for @emph{native} compilation and must not be confused with cross-compilation.  See @option{--target} below for information on cross-compilation."
+msgstr "Die Befehlszeilenoption @option{--system} dient der @emph{nativen} Kompilierung (nicht zu verwechseln mit Cross-Kompilierung). Siehe @option{--target} unten für Informationen zur Cross-Kompilierung."
 
 #. type: table
-#: doc/guix.texi:8653
-msgid "An example use of this is on Linux-based systems, which can emulate different personalities.  For instance, passing @code{--system=i686-linux} on an @code{x86_64-linux} system or @code{--system=armhf-linux} on an @code{aarch64-linux} system allows you to build packages in a complete 32-bit environment."
-msgstr "Ein Beispiel sind Linux-basierte Systeme, die verschiedene Persönlichkeiten emulieren können. Zum Beispiel können Sie @code{--system=i686-linux} auf einem @code{x86_64-linux}-System oder @code{--system=armhf-linux} auf einem @code{aarch64-linux}-System angeben, um Pakete in einer vollständigen 32-Bit-Umgebung zu erstellen."
+#: doc/guix.texi:10461
+msgid "An example use of this is on Linux-based systems, which can emulate different personalities.  For instance, passing @option{--system=i686-linux} on an @code{x86_64-linux} system or @option{--system=armhf-linux} on an @code{aarch64-linux} system allows you to build packages in a complete 32-bit environment."
+msgstr "Ein Beispiel sind Linux-basierte Systeme, die verschiedene Persönlichkeiten emulieren können. Zum Beispiel können Sie @option{--system=i686-linux} auf einem @code{x86_64-linux}-System oder @option{--system=armhf-linux} auf einem @code{aarch64-linux}-System angeben, um Pakete in einer vollständigen 32-Bit-Umgebung zu erstellen."
 
 #. type: quotation
-#: doc/guix.texi:8658
+#: doc/guix.texi:10466
 msgid "Building for an @code{armhf-linux} system is unconditionally enabled on @code{aarch64-linux} machines, although certain aarch64 chipsets do not allow for this functionality, notably the ThunderX."
 msgstr "Das Erstellen für ein @code{armhf-linux}-System ist ungeprüft auf allen @code{aarch64-linux}-Maschinen aktiviert, obwohl bestimmte aarch64-Chipsätze diese Funktionalität nicht unterstützen, darunter auch ThunderX."
 
 #. type: table
-#: doc/guix.texi:8664
+#: doc/guix.texi:10472
 msgid "Similarly, when transparent emulation with QEMU and @code{binfmt_misc} is enabled (@pxref{Virtualization Services, @code{qemu-binfmt-service-type}}), you can build for any system for which a QEMU @code{binfmt_misc} handler is installed."
 msgstr "Ebenso können Sie, wenn transparente Emulation mit QEMU und @code{binfmt_misc} aktiviert sind (siehe @ref{Virtualization Services, @code{qemu-binfmt-service-type}}), für jedes System Erstellungen durchführen, für das ein QEMU-@code{binfmt_misc}-Handler installiert ist."
 
 #. type: table
-#: doc/guix.texi:8668
+#: doc/guix.texi:10476
 msgid "Builds for a system other than that of the machine you are using can also be offloaded to a remote machine of the right architecture.  @xref{Daemon Offload Setup}, for more information on offloading."
 msgstr "Erstellungen für ein anderes System, das nicht dem System der Maschine, die Sie benutzen, entspricht, können auch auf eine entfernte Maschine mit der richtigen Architektur ausgelagert werden. Siehe @ref{Daemon Offload Setup} für mehr Informationen über das Auslagern."
 
 #. type: table
-#: doc/guix.texi:8674
-msgid "Cross-build for @var{triplet}, which must be a valid GNU triplet, such as @code{\"mips64el-linux-gnu\"} (@pxref{Specifying Target Triplets, GNU configuration triplets,, autoconf, Autoconf})."
-msgstr "Lässt für das angegebene @var{Tripel} cross-erstellen, dieses muss ein gültiges GNU-Tripel wie z.B.@: @code{\"mips64el-linux-gnu\"} sein (siehe @ref{Specifying Target Triplets, GNU configuration triplets,, autoconf, Autoconf})."
+#: doc/guix.texi:10482
+msgid "Cross-build for @var{triplet}, which must be a valid GNU triplet, such as @code{\"aarch64-linux-gnu\"} (@pxref{Specifying Target Triplets, GNU configuration triplets,, autoconf, Autoconf})."
+msgstr "Lässt für das angegebene @var{Tripel} cross-erstellen. Dieses muss ein gültiges GNU-Tripel wie z.B.@: @code{\"aarch64-linux-gnu\"} sein (siehe @ref{Specifying Target Triplets, GNU-Konfigurationstripel,, autoconf, Autoconf})."
 
 #. type: anchor{#1}
-#: doc/guix.texi:8676
+#: doc/guix.texi:10484
 msgid "build-check"
 msgstr "build-check"
 
 #. type: item
-#: doc/guix.texi:8676
+#: doc/guix.texi:10484
 #, no-wrap
 msgid "--check"
 msgstr "--check"
 
 #. type: cindex
-#: doc/guix.texi:8677
+#: doc/guix.texi:10485
 #, no-wrap
 msgid "determinism, checking"
 msgstr "Determinismus, Überprüfung"
 
 #. type: cindex
-#: doc/guix.texi:8678
+#: doc/guix.texi:10486
 #, no-wrap
 msgid "reproducibility, checking"
 msgstr "Reproduzierbarkeit, Überprüfung"
 
 #. type: table
-#: doc/guix.texi:8682
+#: doc/guix.texi:10490
 msgid "Rebuild @var{package-or-derivation}, which are already available in the store, and raise an error if the build results are not bit-for-bit identical."
 msgstr "@var{Paket-oder-Ableitung} erneut erstellen, wenn diese bereits im Store verfügbar ist, und einen Fehler melden, wenn die Erstellungsergebnisse nicht Bit für Bit identisch sind."
 
 #. type: table
-#: doc/guix.texi:8687
+#: doc/guix.texi:10495
 msgid "This mechanism allows you to check whether previously installed substitutes are genuine (@pxref{Substitutes}), or whether the build result of a package is deterministic.  @xref{Invoking guix challenge}, for more background information and tools."
 msgstr "Mit diesem Mechanismus können Sie überprüfen, ob zuvor installierte Substitute unverfälscht sind (siehe @ref{Substitutes}) oder auch ob das Erstellungsergebnis eines Pakets deterministisch ist. Siehe @ref{Invoking guix challenge} für mehr Hintergrundinformationen und Werkzeuge."
 
 #. type: item
-#: doc/guix.texi:8692
+#: doc/guix.texi:10500
 #, no-wrap
 msgid "--repair"
 msgstr "--repair"
 
 #. type: cindex
-#: doc/guix.texi:8693
+#: doc/guix.texi:10501
 #, no-wrap
 msgid "repairing store items"
 msgstr "Reparieren von Store-Objekten"
 
 #. type: table
-#: doc/guix.texi:8697
+#: doc/guix.texi:10505
 msgid "Attempt to repair the specified store items, if they are corrupt, by re-downloading or rebuilding them."
 msgstr "Versuchen, die angegebenen Store-Objekte zu reparieren, wenn sie beschädigt sind, indem sie neu heruntergeladen oder neu erstellt werden."
 
 #. type: table
-#: doc/guix.texi:8699
+#: doc/guix.texi:10507
 msgid "This operation is not atomic and thus restricted to @code{root}."
 msgstr "Diese Operation ist nicht atomar und nur der Administratornutzer @code{root} kann sie verwenden."
 
 #. type: item
-#: doc/guix.texi:8700
+#: doc/guix.texi:10508
 #, no-wrap
 msgid "--derivations"
 msgstr "--derivations"
 
 #. type: table
-#: doc/guix.texi:8704
+#: doc/guix.texi:10512
 msgid "Return the derivation paths, not the output paths, of the given packages."
 msgstr "Liefert die Ableitungspfade und @emph{nicht} die Ausgabepfade für die angegebenen Pakete."
 
 #. type: cindex
-#: doc/guix.texi:8707
+#: doc/guix.texi:10515
 #, no-wrap
 msgid "GC roots, adding"
 msgstr "GC-Wurzeln, Hinzufügen"
 
 #. type: cindex
-#: doc/guix.texi:8708
+#: doc/guix.texi:10516
 #, no-wrap
 msgid "garbage collector roots, adding"
 msgstr "Müllsammlerwurzeln, Hinzufügen"
 
 #. type: table
-#: doc/guix.texi:8711 doc/guix.texi:26930
+#: doc/guix.texi:10519 doc/guix.texi:31067
 msgid "Make @var{file} a symlink to the result, and register it as a garbage collector root."
 msgstr "Die @var{Datei} zu einer symbolischen Verknüpfung auf das Ergebnis machen und als Müllsammlerwurzel registrieren."
 
 #. type: table
-#: doc/guix.texi:8717
+#: doc/guix.texi:10525
 msgid "Consequently, the results of this @command{guix build} invocation are protected from garbage collection until @var{file} is removed.  When that option is omitted, build results are eligible for garbage collection as soon as the build completes.  @xref{Invoking guix gc}, for more on GC roots."
 msgstr "Dadurch wird das Ergebnis dieses Aufrufs von @command{guix build} vor dem Müllsammler geschützt, bis die @var{Datei} gelöscht wird. Wird diese Befehlszeilenoption @emph{nicht} angegeben, können Erstellungsergebnisse vom Müllsammler geholt werden, sobald die Erstellung abgeschlossen ist. Siehe @ref{Invoking guix gc} für mehr Informationen zu Müllsammlerwurzeln."
 
 #. type: item
-#: doc/guix.texi:8718
+#: doc/guix.texi:10526
 #, no-wrap
 msgid "--log-file"
 msgstr "--log-file"
 
 #. type: cindex
-#: doc/guix.texi:8719
+#: doc/guix.texi:10527
 #, no-wrap
 msgid "build logs, access"
 msgstr "Erstellungsprotokolle, Zugriff"
 
 #. type: table
-#: doc/guix.texi:8723
+#: doc/guix.texi:10531
 msgid "Return the build log file names or URLs for the given @var{package-or-derivation}, or raise an error if build logs are missing."
 msgstr "Liefert die Dateinamen oder URLs der Erstellungsprotokolle für das angegebene @var{Paket-oder-Ableitung} oder meldet einen Fehler, falls Protokolldateien fehlen."
 
 #. type: table
-#: doc/guix.texi:8726
+#: doc/guix.texi:10534
 msgid "This works regardless of how packages or derivations are specified.  For instance, the following invocations are equivalent:"
 msgstr "Dies funktioniert, egal wie die Pakete oder Ableitungen angegeben werden. Zum Beispiel sind folgende Aufrufe alle äquivalent:"
 
 #. type: example
-#: doc/guix.texi:8732
+#: doc/guix.texi:10540
 #, no-wrap
 msgid ""
 "guix build --log-file `guix build -d guile`\n"
@@ -16416,53 +19423,53 @@ msgstr ""
 "guix build --log-file -e '(@@ (gnu packages guile) guile-2.0)'\n"
 
 #. type: table
-#: doc/guix.texi:8737
-msgid "If a log is unavailable locally, and unless @code{--no-substitutes} is passed, the command looks for a corresponding log on one of the substitute servers (as specified with @code{--substitute-urls}.)"
-msgstr "Wenn ein Protokoll lokal nicht verfügbar ist und sofern @code{--no-substitutes} nicht übergeben wurde, sucht der Befehl nach einem entsprechenden Protokoll auf einem der Substitutserver (die mit @code{--substitute-urls} angegeben werden können)."
+#: doc/guix.texi:10545
+msgid "If a log is unavailable locally, and unless @option{--no-substitutes} is passed, the command looks for a corresponding log on one of the substitute servers (as specified with @option{--substitute-urls})."
+msgstr "Wenn ein Protokoll lokal nicht verfügbar ist und sofern @option{--no-substitutes} nicht übergeben wurde, sucht der Befehl nach einem entsprechenden Protokoll auf einem der Substitutserver (die mit @option{--substitute-urls} angegeben werden können)."
 
 #. type: table
-#: doc/guix.texi:8740
+#: doc/guix.texi:10548
 msgid "So for instance, imagine you want to see the build log of GDB on MIPS, but you are actually on an @code{x86_64} machine:"
 msgstr "Stellen Sie sich zum Beispiel vor, sie wollten das Erstellungsprotokoll von GDB auf einem MIPS-System sehen, benutzen aber selbst eine @code{x86_64}-Maschine:"
 
 #. type: example
-#: doc/guix.texi:8744
+#: doc/guix.texi:10552
 #, no-wrap
 msgid ""
-"$ guix build --log-file gdb -s mips64el-linux\n"
+"$ guix build --log-file gdb -s aarch64-linux\n"
 "https://@value{SUBSTITUTE-SERVER}/log/@dots{}-gdb-7.10\n"
 msgstr ""
-"$ guix build --log-file gdb -s mips64el-linux\n"
+"$ guix build --log-file gdb -s aarch64-linux\n"
 "https://@value{SUBSTITUTE-SERVER}/log/…-gdb-7.10\n"
 
 #. type: table
-#: doc/guix.texi:8747
+#: doc/guix.texi:10555
 msgid "You can freely access a huge library of build logs!"
 msgstr "So haben Sie umsonst Zugriff auf eine riesige Bibliothek von Erstellungsprotokollen!"
 
 #. type: cindex
-#: doc/guix.texi:8752
+#: doc/guix.texi:10560
 #, no-wrap
 msgid "build failures, debugging"
 msgstr "Erstellungsfehler, Fehlersuche"
 
 #. type: Plain text
-#: doc/guix.texi:8758
+#: doc/guix.texi:10566
 msgid "When defining a new package (@pxref{Defining Packages}), you will probably find yourself spending some time debugging and tweaking the build until it succeeds.  To do that, you need to operate the build commands yourself in an environment as close as possible to the one the build daemon uses."
 msgstr "Wenn Sie ein neues Paket definieren (siehe @ref{Defining Packages}), werden Sie sich vermutlich einige Zeit mit der Fehlersuche beschäftigen und die Erstellung so lange anpassen, bis sie funktioniert. Dazu müssen Sie die Erstellungsbefehle selbst in einer Umgebung benutzen, die der, die der Erstellungsdaemon aufbaut, so ähnlich wie möglich ist."
 
 #. type: Plain text
-#: doc/guix.texi:8763
-msgid "To that end, the first thing to do is to use the @option{--keep-failed} or @option{-K} option of @command{guix build}, which will keep the failed build tree in @file{/tmp} or whatever directory you specified as @code{TMPDIR} (@pxref{Invoking guix build, @code{--keep-failed}})."
-msgstr "Das Erste, was Sie dafür tun müssen, ist die Befehlszeilenoption @option{--keep-failed} oder @option{-K} von @command{guix build} einzusetzen, wodurch Verzeichnisbäume fehlgeschlagener Erstellungen in @file{/tmp} oder dem von Ihnen als @code{TMPDIR} ausgewiesenen Verzeichnis erhalten und nicht gelöscht werden (siehe @ref{Invoking guix build, @code{--keep-failed}})."
+#: doc/guix.texi:10571
+msgid "To that end, the first thing to do is to use the @option{--keep-failed} or @option{-K} option of @command{guix build}, which will keep the failed build tree in @file{/tmp} or whatever directory you specified as @env{TMPDIR} (@pxref{Invoking guix build, @option{--keep-failed}})."
+msgstr "Das Erste, was Sie dafür tun müssen, ist die Befehlszeilenoption @option{--keep-failed} oder @option{-K} von @command{guix build} einzusetzen, wodurch Verzeichnisbäume fehlgeschlagener Erstellungen in @file{/tmp} oder dem von Ihnen als @env{TMPDIR} ausgewiesenen Verzeichnis erhalten und nicht gelöscht werden (siehe @ref{Invoking guix build, @option{--keep-failed}})."
 
 #. type: Plain text
-#: doc/guix.texi:8769
+#: doc/guix.texi:10577
 msgid "From there on, you can @command{cd} to the failed build tree and source the @file{environment-variables} file, which contains all the environment variable definitions that were in place when the build failed.  So let's say you're debugging a build failure in package @code{foo}; a typical session would look like this:"
 msgstr "Im Anschluss können Sie mit @command{cd} in die Verzeichnisse dieses fehlgeschlagenen Erstellungsbaums wechseln und mit @command{source} dessen @file{environment-variables}-Datei laden, die alle Umgebungsvariablendefinitionen enthält, die zum Zeitpunkt des Fehlschlags der Erstellung galten. Sagen wir, Sie suchen Fehler in einem Paket @code{foo}, dann würde eine typische Sitzung so aussehen:"
 
 #. type: example
-#: doc/guix.texi:8776
+#: doc/guix.texi:10584
 #, no-wrap
 msgid ""
 "$ guix build foo -K\n"
@@ -16478,22 +19485,22 @@ msgstr ""
 "$ cd foo-1.2\n"
 
 #. type: Plain text
-#: doc/guix.texi:8780
+#: doc/guix.texi:10588
 msgid "Now, you can invoke commands as if you were the daemon (almost) and troubleshoot your build process."
 msgstr "Nun können Sie Befehle (fast) so aufrufen, als wären Sie der Daemon, und Fehlerursachen in Ihrem Erstellungsprozess ermitteln."
 
 #. type: Plain text
-#: doc/guix.texi:8786
+#: doc/guix.texi:10594
 msgid "Sometimes it happens that, for example, a package's tests pass when you run them manually but they fail when the daemon runs them.  This can happen because the daemon runs builds in containers where, unlike in our environment above, network access is missing, @file{/bin/sh} does not exist, etc. (@pxref{Build Environment Setup})."
 msgstr "Manchmal passiert es, dass zum Beispiel die Tests eines Pakets erfolgreich sind, wenn Sie sie manuell aufrufen, aber scheitern, wenn der Daemon sie ausführt. Das kann passieren, weil der Daemon Erstellungen in isolierten Umgebungen („Containern“) durchführt, wo, anders als in der obigen Umgebung, kein Netzwerkzugang möglich ist, @file{/bin/sh} nicht exisiert usw.@: (siehe @ref{Build Environment Setup})."
 
 #. type: Plain text
-#: doc/guix.texi:8789
+#: doc/guix.texi:10597
 msgid "In such cases, you may need to run inspect the build process from within a container similar to the one the build daemon creates:"
 msgstr "In solchen Fällen müssen Sie den Erstellungsprozess womöglich aus einer zu der des Daemons ähnlichen isolierten Umgebung heraus ausprobieren:"
 
 #. type: example
-#: doc/guix.texi:8797
+#: doc/guix.texi:10605
 #, no-wrap
 msgid ""
 "$ guix build -K foo\n"
@@ -16511,256 +19518,289 @@ msgstr ""
 "[env]# cd foo-1.2\n"
 
 #. type: Plain text
-#: doc/guix.texi:8806
-msgid "Here, @command{guix environment -C} creates a container and spawns a new shell in it (@pxref{Invoking guix environment}).  The @command{--ad-hoc strace gdb} part adds the @command{strace} and @command{gdb} commands to the container, which would may find handy while debugging.  The @option{--no-grafts} option makes sure we get the exact same environment, with ungrafted packages (@pxref{Security Updates}, for more info on grafts)."
-msgstr "Hierbei erzeugt @command{guix environment -C} eine isolierte Umgebung und öffnet darin eine Shell (siehe @ref{Invoking guix environment}). Der Teil mit @command{--ad-hoc strace gdb} fügt die Befehle @command{strace} und @command{gdb} zur isolierten Umgebung hinzu, die Sie gut gebrauchen könnten, während Sie Fehler suchen. Wegen der Befehlszeilenoption @option{--no-grafts} bekommen Sie haargenau dieselbe Umgebung ohne veredelte Pakete (siehe @ref{Security Updates} für mehr Informationen zu Veredelungen)."
+#: doc/guix.texi:10614
+msgid "Here, @command{guix environment -C} creates a container and spawns a new shell in it (@pxref{Invoking guix environment}).  The @command{--ad-hoc strace gdb} part adds the @command{strace} and @command{gdb} commands to the container, which you may find handy while debugging.  The @option{--no-grafts} option makes sure we get the exact same environment, with ungrafted packages (@pxref{Security Updates}, for more info on grafts)."
+msgstr "Hierbei erzeugt @command{guix environment -C} eine isolierte Umgebung und öffnet darin eine Shell (siehe @ref{Invoking guix environment}). Der Teil mit @command{--ad-hoc strace gdb} fügt die Befehle @command{strace} und @command{gdb} zur isolierten Umgebung hinzu, die Sie gut gebrauchen können, während Sie Fehler suchen. Wegen der Befehlszeilenoption @option{--no-grafts} bekommen Sie haargenau dieselbe Umgebung ohne veredelte Pakete (siehe @ref{Security Updates} für mehr Informationen zu Veredelungen)."
 
 #. type: Plain text
-#: doc/guix.texi:8809
+#: doc/guix.texi:10617
 msgid "To get closer to a container like that used by the build daemon, we can remove @file{/bin/sh}:"
 msgstr "Um der isolierten Umgebung des Erstellungsdaemons noch näher zu kommen, können wir @file{/bin/sh} entfernen:"
 
 #. type: example
-#: doc/guix.texi:8812
+#: doc/guix.texi:10620
 #, no-wrap
 msgid "[env]# rm /bin/sh\n"
 msgstr "[env]# rm /bin/sh\n"
 
 #. type: Plain text
-#: doc/guix.texi:8816
+#: doc/guix.texi:10624
 msgid "(Don't worry, this is harmless: this is all happening in the throw-away container created by @command{guix environment}.)"
 msgstr "(Keine Sorge, das ist harmlos: All dies passiert nur in der zuvor von @command{guix environment} erzeugten Wegwerf-Umgebung.)"
 
 #. type: Plain text
-#: doc/guix.texi:8819
+#: doc/guix.texi:10627
 msgid "The @command{strace} command is probably not in the search path, but we can run:"
 msgstr "Der Befehl @command{strace} befindet sich wahrscheinlich nicht in Ihrem Suchpfad, aber wir können ihn so benutzen:"
 
 #. type: example
-#: doc/guix.texi:8822
+#: doc/guix.texi:10630
 #, no-wrap
 msgid "[env]# $GUIX_ENVIRONMENT/bin/strace -f -o log make check\n"
 msgstr "[env]# $GUIX_ENVIRONMENT/bin/strace -f -o log make check\n"
 
 #. type: Plain text
-#: doc/guix.texi:8827
+#: doc/guix.texi:10635
 msgid "In this way, not only you will have reproduced the environment variables the daemon uses, you will also be running the build process in a container similar to the one the daemon uses."
 msgstr "Auf diese Weise haben Sie nicht nur die Umgebungsvariablen, die der Daemon benutzt, nachgebildet, sondern lassen auch den Erstellungsprozess in einer isolierten Umgebung ähnlich der des Daemons laufen."
 
 #. type: section
-#: doc/guix.texi:8830
+#: doc/guix.texi:10638
 #, no-wrap
 msgid "Invoking @command{guix edit}"
 msgstr "@command{guix edit} aufrufen"
 
 #. type: command{#1}
-#: doc/guix.texi:8832
+#: doc/guix.texi:10640
 #, no-wrap
 msgid "guix edit"
 msgstr "guix edit"
 
 #. type: cindex
-#: doc/guix.texi:8833
+#: doc/guix.texi:10641
 #, no-wrap
 msgid "package definition, editing"
 msgstr "Paketdefinition, Bearbeiten"
 
 #. type: Plain text
-#: doc/guix.texi:8838
+#: doc/guix.texi:10646
 msgid "So many packages, so many source files! The @command{guix edit} command facilitates the life of users and packagers by pointing their editor at the source file containing the definition of the specified packages.  For instance:"
 msgstr "So viele Pakete, so viele Quelldateien! Der Befehl @command{guix edit} erleichtert das Leben von sowohl Nutzern als auch Paketentwicklern, indem er Ihren Editor anweist, die Quelldatei mit der Definition des jeweiligen Pakets zu bearbeiten. Zum Beispiel startet dies:"
 
 #. type: example
-#: doc/guix.texi:8841
+#: doc/guix.texi:10649
 #, no-wrap
 msgid "guix edit gcc@@4.9 vim\n"
 msgstr "guix edit gcc@@4.9 vim\n"
 
 #. type: Plain text
-#: doc/guix.texi:8847
-msgid "launches the program specified in the @code{VISUAL} or in the @code{EDITOR} environment variable to view the recipe of GCC@tie{}4.9.3 and that of Vim."
-msgstr "das mit der Umgebungsvariablen @code{VISUAL} ode @code{EDITOR} angegebene Programm und lässt es das Rezept von GCC@tie{}4.9.3 und von Vim anzeigen."
+#: doc/guix.texi:10655
+msgid "launches the program specified in the @env{VISUAL} or in the @env{EDITOR} environment variable to view the recipe of GCC@tie{}4.9.3 and that of Vim."
+msgstr "das mit der Umgebungsvariablen @env{VISUAL} oder @env{EDITOR} angegebene Programm und lässt es das Rezept von GCC@tie{}4.9.3 und von Vim anzeigen."
 
 #. type: Plain text
-#: doc/guix.texi:8853
-msgid "If you are using a Guix Git checkout (@pxref{Building from Git}), or have created your own packages on @code{GUIX_PACKAGE_PATH} (@pxref{Package Modules}), you will be able to edit the package recipes.  In other cases, you will be able to examine the read-only recipes for packages currently in the store."
-msgstr "Wenn Sie ein Git-Checkout von Guix benutzen (siehe @ref{Building from Git}) oder Ihre eigenen Pakete im @code{GUIX_PACKAGE_PATH} erstellt haben (siehe @ref{Package Modules}), werden Sie damit die Paketrezepte auch bearbeiten können. Andernfalls werden Sie zumindest in die Lage versetzt, die nur lesbaren Rezepte für sich im Moment im Store befindliche Pakete zu untersuchen."
+#: doc/guix.texi:10661
+msgid "If you are using a Guix Git checkout (@pxref{Building from Git}), or have created your own packages on @env{GUIX_PACKAGE_PATH} (@pxref{Package Modules}), you will be able to edit the package recipes.  In other cases, you will be able to examine the read-only recipes for packages currently in the store."
+msgstr "Wenn Sie ein Git-Checkout von Guix benutzen (siehe @ref{Building from Git}) oder Ihre eigenen Pakete im @env{GUIX_PACKAGE_PATH} erstellt haben (siehe @ref{Package Modules}), werden Sie damit die Paketrezepte auch bearbeiten können. Andernfalls werden Sie zumindest in die Lage versetzt, die nur lesbaren Rezepte für sich im Moment im Store befindliche Pakete zu untersuchen."
 
 #. type: Plain text
-#: doc/guix.texi:8858
-msgid "Instead of @code{GUIX_PACKAGE_PATH}, the command-line option @code{--load-path=@var{directory}} (or in short @code{-L @var{directory}}) allows you to add @var{directory} to the front of the package module search path and so make your own packages visible."
-msgstr "Statt @code{GUIX_PACKAGE_PATH} zu benutzen, können Sie mit der Befehlszeilenoption @code{--load-path=@var{Verzeichnis}} (oder kurz @code{-L @var{Verzeichnis}}) das @var{Verzeichnis} vorne an den Paketmodul-Suchpfad anhängen und so Ihre eigenen Pakete sichtbar machen."
+#: doc/guix.texi:10666
+msgid "Instead of @env{GUIX_PACKAGE_PATH}, the command-line option @option{--load-path=@var{directory}} (or in short @option{-L @var{directory}}) allows you to add @var{directory} to the front of the package module search path and so make your own packages visible."
+msgstr "Statt @env{GUIX_PACKAGE_PATH} zu benutzen, können Sie mit der Befehlszeilenoption @option{--load-path=@var{Verzeichnis}} (oder kurz @option{-L @var{Verzeichnis}}) das @var{Verzeichnis} vorne an den Paketmodul-Suchpfad anhängen und so Ihre eigenen Pakete sichtbar machen."
 
 #. type: section
-#: doc/guix.texi:8860
+#: doc/guix.texi:10668
 #, no-wrap
 msgid "Invoking @command{guix download}"
 msgstr "@command{guix download} aufrufen"
 
 #. type: command{#1}
-#: doc/guix.texi:8862
+#: doc/guix.texi:10670
 #, no-wrap
 msgid "guix download"
 msgstr "guix download"
 
 #. type: cindex
-#: doc/guix.texi:8863
+#: doc/guix.texi:10671
 #, no-wrap
 msgid "downloading package sources"
 msgstr "Paketquellcode herunterladen"
 
 #. type: Plain text
-#: doc/guix.texi:8870
+#: doc/guix.texi:10678
 msgid "When writing a package definition, developers typically need to download a source tarball, compute its SHA256 hash, and write that hash in the package definition (@pxref{Defining Packages}).  The @command{guix download} tool helps with this task: it downloads a file from the given URI, adds it to the store, and prints both its file name in the store and its SHA256 hash."
 msgstr "Wenn Entwickler einer Paketdefinition selbige schreiben, müssen diese normalerweise einen Quellcode-Tarball herunterladen, seinen SHA256-Hash als Prüfsumme berechnen und diese in der Paketdefinition eintragen (siehe @ref{Defining Packages}). Das Werkzeug @command{guix download} hilft bei dieser Aufgabe: Damit wird eine Datei von der angegebenen URI heruntergeladen, in den Store eingelagert und sowohl ihr Dateiname im Store als auch ihr SHA256-Hash als Prüfsumme angezeigt."
 
 #. type: Plain text
-#: doc/guix.texi:8877
+#: doc/guix.texi:10685
 msgid "The fact that the downloaded file is added to the store saves bandwidth: when the developer eventually tries to build the newly defined package with @command{guix build}, the source tarball will not have to be downloaded again because it is already in the store.  It is also a convenient way to temporarily stash files, which may be deleted eventually (@pxref{Invoking guix gc})."
 msgstr "Dadurch, dass die heruntergeladene Datei in den Store eingefügt wird, wird Bandbreite gespart: Wenn der Entwickler schließlich versucht, das neu definierte Paket mit @command{guix build} zu erstellen, muss der Quell-Tarball nicht erneut heruntergeladen werden, weil er sich bereits im Store befindet. Es ist auch eine bequeme Methode, Dateien temporär aufzubewahren, die letztlich irgendwann gelöscht werden (siehe @ref{Invoking guix gc})."
 
 #. type: Plain text
-#: doc/guix.texi:8885
+#: doc/guix.texi:10693
 msgid "The @command{guix download} command supports the same URIs as used in package definitions.  In particular, it supports @code{mirror://} URIs.  @code{https} URIs (HTTP over TLS) are supported @emph{provided} the Guile bindings for GnuTLS are available in the user's environment; when they are not available, an error is raised.  @xref{Guile Preparations, how to install the GnuTLS bindings for Guile,, gnutls-guile, GnuTLS-Guile}, for more information."
 msgstr "Der Befehl @command{guix download} unterstützt dieselben URIs, die in Paketdefinitionen verwendet werden. Insbesondere unterstützt er @code{mirror://}-URIs. @code{https}-URIs (HTTP über TLS) werden unterstützt, @emph{vorausgesetzt} die Guile-Anbindungen für GnuTLS sind in der Umgebung des Benutzers verfügbar; wenn nicht, wird ein Fehler gemeldet. Siehe @ref{Guile Preparations, how to install the GnuTLS bindings for Guile,, gnutls-guile, GnuTLS-Guile}, hat mehr Informationen."
 
 #. type: Plain text
-#: doc/guix.texi:8890
-msgid "@command{guix download} verifies HTTPS server certificates by loading the certificates of X.509 authorities from the directory pointed to by the @code{SSL_CERT_DIR} environment variable (@pxref{X.509 Certificates}), unless @option{--no-check-certificate} is used."
-msgstr "Mit @command{guix download} werden HTTPS-Serverzertifikate verifiziert, indem die Zertifikate der X.509-Autoritäten in das durch die Umgebungsvariable @code{SSL_CERT_DIR} bezeichnete Verzeichnis heruntergeladen werden (siehe @ref{X.509 Certificates}), außer @option{--no-check-certificate} wird benutzt."
+#: doc/guix.texi:10698
+msgid "@command{guix download} verifies HTTPS server certificates by loading the certificates of X.509 authorities from the directory pointed to by the @env{SSL_CERT_DIR} environment variable (@pxref{X.509 Certificates}), unless @option{--no-check-certificate} is used."
+msgstr "Mit @command{guix download} werden HTTPS-Serverzertifikate verifiziert, indem die Zertifikate der X.509-Autoritäten in das durch die Umgebungsvariable @env{SSL_CERT_DIR} bezeichnete Verzeichnis heruntergeladen werden (siehe @ref{X.509 Certificates}), außer @option{--no-check-certificate} wird benutzt."
 
 #. type: Plain text
-#: doc/guix.texi:8892 doc/guix.texi:10311
+#: doc/guix.texi:10700 doc/guix.texi:12208
 msgid "The following options are available:"
 msgstr "Folgende Befehlszeilenoptionen stehen zur Verfügung:"
 
 #. type: item
-#: doc/guix.texi:8894 doc/guix.texi:8933
+#: doc/guix.texi:10702 doc/guix.texi:10746
+#, no-wrap
+msgid "--hash=@var{algorithm}"
+msgstr "--hash=@var{Algorithmus}"
+
+#. type: itemx
+#: doc/guix.texi:10703 doc/guix.texi:10747
+#, no-wrap
+msgid "-H @var{algorithm}"
+msgstr "-H @var{Algorithmus}"
+
+#. type: table
+#: doc/guix.texi:10706
+msgid "Compute a hash using the specified @var{algorithm}.  @xref{Invoking guix hash}, for more information."
+msgstr "Einen Hash mit dem angegebenen @var{Algorithmus} berechnen. Siehe @ref{Invoking guix hash} für weitere Informationen."
+
+#. type: item
+#: doc/guix.texi:10707 doc/guix.texi:10756
 #, no-wrap
 msgid "--format=@var{fmt}"
 msgstr "--format=@var{Format}"
 
 #. type: itemx
-#: doc/guix.texi:8895 doc/guix.texi:8934
+#: doc/guix.texi:10708 doc/guix.texi:10757
 #, no-wrap
 msgid "-f @var{fmt}"
 msgstr "-f @var{Format}"
 
 #. type: table
-#: doc/guix.texi:8898
+#: doc/guix.texi:10711
 msgid "Write the hash in the format specified by @var{fmt}.  For more information on the valid values for @var{fmt}, @pxref{Invoking guix hash}."
 msgstr "Die Hash-Prüfsumme im angegebenen @var{Format} ausgeben. Für weitere Informationen, was gültige Werte für das @var{Format} sind, siehe @ref{Invoking guix hash}."
 
 #. type: item
-#: doc/guix.texi:8899
+#: doc/guix.texi:10712
 #, no-wrap
 msgid "--no-check-certificate"
 msgstr "--no-check-certificate"
 
 #. type: table
-#: doc/guix.texi:8901
+#: doc/guix.texi:10714
 msgid "Do not validate the X.509 certificates of HTTPS servers."
 msgstr "X.509-Zertifikate von HTTPS-Servern @emph{nicht} validieren."
 
 #. type: table
-#: doc/guix.texi:8905
+#: doc/guix.texi:10718
 msgid "When using this option, you have @emph{absolutely no guarantee} that you are communicating with the authentic server responsible for the given URL, which makes you vulnerable to ``man-in-the-middle'' attacks."
 msgstr "Wenn Sie diese Befehlszeilenoption benutzen, haben Sie @emph{keinerlei Garantie}, dass Sie tatsächlich mit dem authentischen Server, der für die angegebene URL verantwortlich ist, kommunizieren. Das macht Sie anfällig gegen sogenannte „Man-in-the-Middle“-Angriffe."
 
 #. type: item
-#: doc/guix.texi:8906
+#: doc/guix.texi:10719
 #, no-wrap
 msgid "--output=@var{file}"
 msgstr "--output=@var{Datei}"
 
 #. type: itemx
-#: doc/guix.texi:8907
+#: doc/guix.texi:10720
 #, no-wrap
 msgid "-o @var{file}"
 msgstr "-o @var{Datei}"
 
 #. type: table
-#: doc/guix.texi:8910
+#: doc/guix.texi:10723
 msgid "Save the downloaded file to @var{file} instead of adding it to the store."
 msgstr "Die heruntergeladene Datei @emph{nicht} in den Store, sondern in die angegebene @var{Datei} abspeichern."
 
 #. type: section
-#: doc/guix.texi:8913
+#: doc/guix.texi:10726
 #, no-wrap
 msgid "Invoking @command{guix hash}"
 msgstr "@command{guix hash} aufrufen"
 
 #. type: command{#1}
-#: doc/guix.texi:8915
+#: doc/guix.texi:10728
 #, no-wrap
 msgid "guix hash"
 msgstr "guix hash"
 
 #. type: Plain text
-#: doc/guix.texi:8920
-msgid "The @command{guix hash} command computes the SHA256 hash of a file.  It is primarily a convenience tool for anyone contributing to the distribution: it computes the cryptographic hash of a file, which can be used in the definition of a package (@pxref{Defining Packages})."
-msgstr "Der Befehl @command{guix hash} berechnet den SHA256-Hash einer Datei. Er ist primär ein Werkzeug, dass es bequemer macht, etwas zur Distribution beizusteuern: Damit wird die kryptografische Hash-Prüfsumme berechnet, die bei der Definition eines Pakets benutzt werden kann (siehe @ref{Defining Packages})."
+#: doc/guix.texi:10733
+msgid "The @command{guix hash} command computes the hash of a file.  It is primarily a convenience tool for anyone contributing to the distribution: it computes the cryptographic hash of a file, which can be used in the definition of a package (@pxref{Defining Packages})."
+msgstr "Der Befehl @command{guix hash} berechnet den Hash einer Datei. Er ist primär ein Werkzeug, dass es bequemer macht, etwas zur Distribution beizusteuern: Damit wird die kryptografische Hash-Prüfsumme berechnet, die bei der Definition eines Pakets benutzt werden kann (siehe @ref{Defining Packages})."
 
 #. type: example
-#: doc/guix.texi:8925
+#: doc/guix.texi:10738
 #, no-wrap
 msgid "guix hash @var{option} @var{file}\n"
 msgstr "guix hash @var{Option} @var{Datei}\n"
 
 #. type: Plain text
-#: doc/guix.texi:8930
+#: doc/guix.texi:10743
 msgid "When @var{file} is @code{-} (a hyphen), @command{guix hash} computes the hash of data read from standard input.  @command{guix hash} has the following options:"
 msgstr "Wird als @var{Datei} ein Bindestrich @code{-} angegeben, berechnet @command{guix hash} den Hash der von der Standardeingabe gelesenen Daten. @command{guix hash} unterstützt die folgenden Optionen:"
 
 #. type: table
-#: doc/guix.texi:8936
+#: doc/guix.texi:10750
+msgid "Compute a hash using the specified @var{algorithm}, @code{sha256} by default."
+msgstr "Mit dem angegebenen @var{Algorithmus} einen Hash berechnen. Die Vorgabe ist, @code{sha256} zu benutzen."
+
+#. type: table
+#: doc/guix.texi:10755
+msgid "@var{algorithm} must the name of a cryptographic hash algorithm supported by Libgcrypt @i{via} Guile-Gcrypt---e.g., @code{sha512} or @code{sha3-256} (@pxref{Hash Functions,,, guile-gcrypt, Guile-Gcrypt Reference Manual})."
+msgstr "@var{Algorithmus} muss der Name eines durch Libgcrypt über Guile-Gcrypt zur Verfügung gestellten kryptografischen Hashalgorithmus sein, z.B.@: @code{sha512} oder @code{sha3-256} (siehe @ref{Hash Functions,,, guile-gcrypt, Referenzhandbuch zu Guile-Gcrypt})."
+
+#. type: table
+#: doc/guix.texi:10759
 msgid "Write the hash in the format specified by @var{fmt}."
 msgstr "Gibt die Prüfsumme im angegebenen @var{Format} aus."
 
 #. type: table
-#: doc/guix.texi:8939
-msgid "Supported formats: @code{nix-base32}, @code{base32}, @code{base16} (@code{hex} and @code{hexadecimal} can be used as well)."
-msgstr "Unterstützte Formate: @code{nix-base32}, @code{base32}, @code{base16} (@code{hex} und @code{hexadecimal} können auch benutzt werden)."
+#: doc/guix.texi:10762
+msgid "Supported formats: @code{base64}, @code{nix-base32}, @code{base32}, @code{base16} (@code{hex} and @code{hexadecimal} can be used as well)."
+msgstr "Unterstützte Formate: @code{base64}, @code{nix-base32}, @code{base32}, @code{base16} (@code{hex} und @code{hexadecimal} können auch benutzt werden)."
 
 #. type: table
-#: doc/guix.texi:8943
+#: doc/guix.texi:10766
 msgid "If the @option{--format} option is not specified, @command{guix hash} will output the hash in @code{nix-base32}.  This representation is used in the definitions of packages."
 msgstr "Wird keine Befehlszeilenoption @option{--format} angegeben, wird @command{guix hash} die Prüfsumme im @code{nix-base32}-Format ausgeben. Diese Darstellung wird bei der Definition von Paketen benutzt."
 
 #. type: table
-#: doc/guix.texi:8947
+#: doc/guix.texi:10770
 msgid "Compute the hash on @var{file} recursively."
 msgstr "Die Prüfsumme der @var{Datei} rekursiv berechnen."
 
 #. type: table
-#: doc/guix.texi:8956
+#: doc/guix.texi:10779
 msgid "In this case, the hash is computed on an archive containing @var{file}, including its children if it is a directory.  Some of the metadata of @var{file} is part of the archive; for instance, when @var{file} is a regular file, the hash is different depending on whether @var{file} is executable or not.  Metadata such as time stamps has no impact on the hash (@pxref{Invoking guix archive})."
 msgstr "In diesem Fall wird die Prüfsumme eines Archivs berechnet, das die @var{Datei} enthält, und auch ihre Kinder, wenn es sich um ein Verzeichnis handelt. Einige der Metadaten der @var{Datei} sind Teil dieses Archivs. Zum Beispiel unterscheidet sich die berechnete Prüfsumme, wenn die @var{Datei} eine reguläre Datei ist, je nachdem, ob die @var{Datei} ausführbar ist oder nicht. Metadaten wie der Zeitstempel haben keinen Einfluss auf die Prüfsumme (siehe @ref{Invoking guix archive})."
 
 #. type: item
-#: doc/guix.texi:8957
+#: doc/guix.texi:10780
 #, no-wrap
 msgid "--exclude-vcs"
 msgstr "--exclude-vcs"
 
 #. type: itemx
-#: doc/guix.texi:8958
+#: doc/guix.texi:10781 doc/guix.texi:11700
 #, no-wrap
 msgid "-x"
 msgstr "-x"
 
 #. type: table
-#: doc/guix.texi:8961
-msgid "When combined with @option{--recursive}, exclude version control system directories (@file{.bzr}, @file{.git}, @file{.hg}, etc.)"
+#: doc/guix.texi:10784
+msgid "When combined with @option{--recursive}, exclude version control system directories (@file{.bzr}, @file{.git}, @file{.hg}, etc.)."
 msgstr "Wenn dies zusammen mit der Befehlszeilenoption @option{--recursive} angegeben wird, werden Verzeichnisse zur Versionskontrolle (@file{.bzr}, @file{.git}, @file{.hg}, etc.)@: vom Archiv ausgenommen."
 
+#. type: vindex
+#: doc/guix.texi:10785
+#, no-wrap
+msgid "git-fetch"
+msgstr "git-fetch"
+
 #. type: table
-#: doc/guix.texi:8966
+#: doc/guix.texi:10789
 msgid "As an example, here is how you would compute the hash of a Git checkout, which is useful when using the @code{git-fetch} method (@pxref{origin Reference}):"
 msgstr "Zum Beispiel würden Sie auf diese Art die Prüfsumme eines Git-Checkouts berechnen, was nützlich ist, wenn Sie die Prüfsumme für die Methode @code{git-fetch} benutzen (siehe @ref{origin Reference}):"
 
 #. type: example
-#: doc/guix.texi:8971
+#: doc/guix.texi:10794
 #, no-wrap
 msgid ""
 "$ git clone http://example.org/foo.git\n"
@@ -16772,320 +19812,321 @@ msgstr ""
 "$ guix hash -rx .\n"
 
 #. type: cindex
-#: doc/guix.texi:8975 doc/guix.texi:8980
+#: doc/guix.texi:10798 doc/guix.texi:10803
 #, no-wrap
 msgid "Invoking @command{guix import}"
 msgstr "@command{guix import} aufrufen"
 
 #. type: cindex
-#: doc/guix.texi:8977
+#: doc/guix.texi:10800
 #, no-wrap
 msgid "importing packages"
 msgstr "Pakete importieren"
 
 #. type: cindex
-#: doc/guix.texi:8978
+#: doc/guix.texi:10801
 #, no-wrap
 msgid "package import"
 msgstr "Paketimport"
 
 #. type: cindex
-#: doc/guix.texi:8979
+#: doc/guix.texi:10802
 #, no-wrap
 msgid "package conversion"
 msgstr "Pakete an Guix anpassen"
 
 #. type: Plain text
-#: doc/guix.texi:8987
+#: doc/guix.texi:10810
 msgid "The @command{guix import} command is useful for people who would like to add a package to the distribution with as little work as possible---a legitimate demand.  The command knows of a few repositories from which it can ``import'' package metadata.  The result is a package definition, or a template thereof, in the format we know (@pxref{Defining Packages})."
 msgstr "Der Befehl @command{guix import} ist für Leute hilfreich, die ein Paket gerne mit so wenig Arbeit wie möglich zur Distribution hinzufügen würden — ein legitimer Anspruch. Der Befehl kennt ein paar Sammlungen, aus denen mit ihm Paketmetadaten „importiert“ werden können. Das Ergebnis ist eine Paketdefinition oder eine Vorlage dafür in dem uns bekannten Format (siehe @ref{Defining Packages})."
 
 #. type: example
-#: doc/guix.texi:8992
+#: doc/guix.texi:10815
 #, no-wrap
 msgid "guix import @var{importer} @var{options}@dots{}\n"
 msgstr "guix import @var{Importer} @var{Optionen}…\n"
 
 #. type: Plain text
-#: doc/guix.texi:8997
+#: doc/guix.texi:10820
 msgid "@var{importer} specifies the source from which to import package metadata, and @var{options} specifies a package identifier and other options specific to @var{importer}."
 msgstr "Der @var{Importer} gibt die Quelle an, aus der Paketmetadaten importiert werden, und die @var{Optionen} geben eine Paketbezeichnung und andere vom @var{Importer} abhängige Daten an."
 
 #. type: Plain text
-#: doc/guix.texi:9001
+#: doc/guix.texi:10824
 msgid "Some of the importers rely on the ability to run the @command{gpgv} command.  For these, GnuPG must be installed and in @code{$PATH}; run @code{guix install gnupg} if needed."
 msgstr "Manche Importer setzen voraus, dass der Befehl @command{gpgv} ausgeführt werden kann. Sie funktionieren nur, wenn GnuPG installiert und im @code{$PATH} enthalten ist; falls nötig können Sie @code{guix install gnupg} ausführen."
 
 #. type: Plain text
-#: doc/guix.texi:9003
+#: doc/guix.texi:10826
 msgid "Currently, the available ``importers'' are:"
 msgstr "Derzeit sind folgende „Importer“ verfügbar:"
 
 #. type: item
-#: doc/guix.texi:9005 doc/guix.texi:9536
+#: doc/guix.texi:10828 doc/guix.texi:11357
 #, no-wrap
 msgid "gnu"
 msgstr "gnu"
 
 #. type: table
-#: doc/guix.texi:9009
+#: doc/guix.texi:10832
 msgid "Import metadata for the given GNU package.  This provides a template for the latest version of that GNU package, including the hash of its source tarball, and its canonical synopsis and description."
 msgstr "Metadaten für das angegebene GNU-Paket importieren. Damit wird eine Vorlage für die neueste Version dieses GNU-Pakets zur Verfügung gestellt, einschließlich der Prüfsumme seines Quellcode-Tarballs, seiner kanonischen Zusammenfassung und seiner Beschreibung."
 
 #. type: table
-#: doc/guix.texi:9012
+#: doc/guix.texi:10835
 msgid "Additional information such as the package dependencies and its license needs to be figured out manually."
 msgstr "Zusätzliche Informationen wie Paketabhängigkeiten und seine Lizenz müssen noch manuell ermittelt werden."
 
 #. type: table
-#: doc/guix.texi:9015
+#: doc/guix.texi:10838
 msgid "For example, the following command returns a package definition for GNU@tie{}Hello:"
 msgstr "Zum Beispiel liefert der folgende Befehl eine Paketdefinition für GNU@tie{}Hello:"
 
 #. type: example
-#: doc/guix.texi:9018
+#: doc/guix.texi:10841
 #, no-wrap
 msgid "guix import gnu hello\n"
 msgstr "guix import gnu hello\n"
 
 #. type: table
-#: doc/guix.texi:9021 doc/guix.texi:9256 doc/guix.texi:9306 doc/guix.texi:9335
+#: doc/guix.texi:10844 doc/guix.texi:11077 doc/guix.texi:11127
+#: doc/guix.texi:11156
 msgid "Specific command-line options are:"
 msgstr "Speziell für diesen Importer stehen noch folgende Befehlszeilenoptionen zur Verfügung:"
 
 #. type: item
-#: doc/guix.texi:9023 doc/guix.texi:9685
+#: doc/guix.texi:10846 doc/guix.texi:11508
 #, no-wrap
 msgid "--key-download=@var{policy}"
 msgstr "--key-download=@var{Richtlinie}"
 
 #. type: table
-#: doc/guix.texi:9027
-msgid "As for @code{guix refresh}, specify the policy to handle missing OpenPGP keys when verifying the package signature.  @xref{Invoking guix refresh, @code{--key-download}}."
-msgstr "Die Richtlinie zum Umgang mit fehlenden OpenPGP-Schlüsseln beim Verifizieren der Paketsignatur (auch „Beglaubigung“ genannt) festlegen, wie bei @code{guix refresh}. Siehe @ref{Invoking guix refresh, @code{--key-download}}."
+#: doc/guix.texi:10850
+msgid "As for @command{guix refresh}, specify the policy to handle missing OpenPGP keys when verifying the package signature.  @xref{Invoking guix refresh, @option{--key-download}}."
+msgstr "Die Richtlinie zum Umgang mit fehlenden OpenPGP-Schlüsseln beim Verifizieren der Paketsignatur (auch „Beglaubigung“ genannt) festlegen, wie bei @command{guix refresh}. Siehe @ref{Invoking guix refresh, @option{--key-download}}."
 
 #. type: item
-#: doc/guix.texi:9029 doc/guix.texi:9030 doc/guix.texi:9554
+#: doc/guix.texi:10852 doc/guix.texi:10853 doc/guix.texi:11377
 #, no-wrap
 msgid "pypi"
 msgstr "pypi"
 
 #. type: table
-#: doc/guix.texi:9037
+#: doc/guix.texi:10860
 msgid "Import metadata from the @uref{https://pypi.python.org/, Python Package Index}.  Information is taken from the JSON-formatted description available at @code{pypi.python.org} and usually includes all the relevant information, including package dependencies.  For maximum efficiency, it is recommended to install the @command{unzip} utility, so that the importer can unzip Python wheels and gather data from them."
 msgstr "Metadaten aus dem @uref{https://pypi.python.org/, Python Package Index} importieren. Informationen stammen aus der JSON-formatierten Beschreibung, die unter @code{pypi.python.org} verfügbar ist, und enthalten meistens alle relevanten Informationen einschließlich der Abhängigkeiten des Pakets. Für maximale Effizienz wird empfohlen, das Hilfsprogramm @command{unzip} zu installieren, damit der Importer „Python Wheels“ entpacken und daraus Daten beziehen kann."
 
 #. type: table
-#: doc/guix.texi:9040
+#: doc/guix.texi:10863
 msgid "The command below imports metadata for the @code{itsdangerous} Python package:"
 msgstr "Der folgende Befehl importiert Metadaten für das Python-Paket namens @code{itsdangerous}:"
 
 #. type: example
-#: doc/guix.texi:9043
+#: doc/guix.texi:10866
 #, no-wrap
 msgid "guix import pypi itsdangerous\n"
 msgstr "guix import pypi itsdangerous\n"
 
 #. type: table
-#: doc/guix.texi:9051 doc/guix.texi:9076 doc/guix.texi:9279 doc/guix.texi:9320
-#: doc/guix.texi:9367 doc/guix.texi:9392
+#: doc/guix.texi:10874 doc/guix.texi:10899 doc/guix.texi:11100
+#: doc/guix.texi:11141 doc/guix.texi:11188 doc/guix.texi:11213
 msgid "Traverse the dependency graph of the given upstream package recursively and generate package expressions for all those packages that are not yet in Guix."
 msgstr "Den Abhängigkeitsgraphen des angegebenen Pakets beim Anbieter rekursiv durchlaufen und Paketausdrücke für alle solchen Pakete erzeugen, die es in Guix noch nicht gibt."
 
 #. type: item
-#: doc/guix.texi:9053 doc/guix.texi:9054 doc/guix.texi:9556
+#: doc/guix.texi:10876 doc/guix.texi:10877 doc/guix.texi:11379
 #, no-wrap
 msgid "gem"
 msgstr "gem"
 
 #. type: table
-#: doc/guix.texi:9063
+#: doc/guix.texi:10886
 msgid "Import metadata from @uref{https://rubygems.org/, RubyGems}.  Information is taken from the JSON-formatted description available at @code{rubygems.org} and includes most relevant information, including runtime dependencies.  There are some caveats, however.  The metadata doesn't distinguish between synopses and descriptions, so the same string is used for both fields.  Additionally, the details of non-Ruby dependencies required to build native extensions is unavailable and left as an exercise to the packager."
 msgstr "Metadaten von @uref{https://rubygems.org/, RubyGems} importieren. Informationen kommen aus der JSON-formatierten Beschreibung, die auf @code{rubygems.org} verfügbar ist, und enthält die relevantesten Informationen einschließlich der Laufzeitabhängigkeiten. Dies hat aber auch Schattenseiten — die Metadaten unterscheiden nicht zwischen Zusammenfassungen und Beschreibungen, daher wird dieselbe Zeichenkette für beides eingesetzt. Zudem fehlen Informationen zu nicht in Ruby geschriebenen Abhängigkeiten, die benötigt werden, um native Erweiterungen zu in Ruby geschriebenem Code zu erstellen. Diese herauszufinden bleibt dem Paketentwickler überlassen."
 
 #. type: table
-#: doc/guix.texi:9065
+#: doc/guix.texi:10888
 msgid "The command below imports metadata for the @code{rails} Ruby package:"
 msgstr "Der folgende Befehl importiert Metadaten aus dem Ruby-Paket @code{rails}."
 
 #. type: example
-#: doc/guix.texi:9068
+#: doc/guix.texi:10891
 #, no-wrap
 msgid "guix import gem rails\n"
 msgstr "guix import gem rails\n"
 
 #. type: item
-#: doc/guix.texi:9078 doc/guix.texi:9552
+#: doc/guix.texi:10901 doc/guix.texi:11375
 #, no-wrap
 msgid "cpan"
 msgstr "cpan"
 
 #. type: cindex
-#: doc/guix.texi:9079
+#: doc/guix.texi:10902
 #, no-wrap
 msgid "CPAN"
 msgstr "CPAN"
 
 #. type: table
-#: doc/guix.texi:9087
+#: doc/guix.texi:10910
 msgid "Import metadata from @uref{https://www.metacpan.org/, MetaCPAN}.  Information is taken from the JSON-formatted metadata provided through @uref{https://fastapi.metacpan.org/, MetaCPAN's API} and includes most relevant information, such as module dependencies.  License information should be checked closely.  If Perl is available in the store, then the @code{corelist} utility will be used to filter core modules out of the list of dependencies."
 msgstr "Importiert Metadaten von @uref{https://www.metacpan.org/, MetaCPAN}. Informationen werden aus den JSON-formatierten Metadaten genommen, die über die @uref{https://fastapi.metacpan.org/, Programmierschnittstelle („API“) von MetaCPAN} angeboten werden, und enthalten die relevantesten Informationen wie zum Beispiel Modulabhängigkeiten. Lizenzinformationen sollten genau nachgeprüft werden. Wenn Perl im Store verfügbar ist, wird das Werkzeug @code{corelist} benutzt, um Kernmodule in der Abhängigkeitsliste wegzulassen."
 
 #. type: table
-#: doc/guix.texi:9090
-msgid "The command command below imports metadata for the @code{Acme::Boolean} Perl module:"
-msgstr "Folgender Befehl importiert Metadaten für das Perl-Modul @code{Acme::Boolean}:"
+#: doc/guix.texi:10913
+msgid "The command command below imports metadata for the Acme::Boolean Perl module:"
+msgstr "Folgender Befehl importiert Metadaten für das Perl-Modul Acme::Boolean:"
 
 #. type: example
-#: doc/guix.texi:9093
+#: doc/guix.texi:10916
 #, no-wrap
 msgid "guix import cpan Acme::Boolean\n"
 msgstr "guix import cpan Acme::Boolean\n"
 
 #. type: item
-#: doc/guix.texi:9095 doc/guix.texi:9548
+#: doc/guix.texi:10918 doc/guix.texi:11371
 #, no-wrap
 msgid "cran"
 msgstr "cran"
 
 #. type: cindex
-#: doc/guix.texi:9096
+#: doc/guix.texi:10919
 #, no-wrap
 msgid "CRAN"
 msgstr "CRAN"
 
 #. type: cindex
-#: doc/guix.texi:9097
+#: doc/guix.texi:10920
 #, no-wrap
 msgid "Bioconductor"
 msgstr "Bioconductor"
 
 #. type: table
-#: doc/guix.texi:9101
+#: doc/guix.texi:10924
 msgid "Import metadata from @uref{https://cran.r-project.org/, CRAN}, the central repository for the @uref{https://r-project.org, GNU@tie{}R statistical and graphical environment}."
 msgstr "Metadaten aus dem @uref{https://cran.r-project.org/, CRAN} importieren, der zentralen Sammlung für die @uref{https://r-project.org, statistische und grafische Umgebung GNU@tie{}R}."
 
 #. type: table
-#: doc/guix.texi:9103
-msgid "Information is extracted from the @code{DESCRIPTION} file of the package."
-msgstr "Informationen werden aus der Datei namens @code{DESCRIPTION} des Pakets extrahiert."
+#: doc/guix.texi:10926
+msgid "Information is extracted from the @file{DESCRIPTION} file of the package."
+msgstr "Informationen werden aus der Datei namens @file{DESCRIPTION} des Pakets extrahiert."
 
 #. type: table
-#: doc/guix.texi:9106
-msgid "The command command below imports metadata for the @code{Cairo} R package:"
-msgstr "Der folgende Befehl importiert Metadaten für das @code{Cairo}-R-Paket:"
+#: doc/guix.texi:10928
+msgid "The command command below imports metadata for the Cairo R package:"
+msgstr "Der folgende Befehl importiert Metadaten für das Cairo-R-Paket:"
 
 #. type: example
-#: doc/guix.texi:9109
+#: doc/guix.texi:10931
 #, no-wrap
 msgid "guix import cran Cairo\n"
 msgstr "guix import cran Cairo\n"
 
 #. type: table
-#: doc/guix.texi:9114
-msgid "When @code{--recursive} is added, the importer will traverse the dependency graph of the given upstream package recursively and generate package expressions for all those packages that are not yet in Guix."
-msgstr "Wird zudem @code{--recursive} angegeben, wird der Importer den Abhängigkeitsgraphen des angegebenen Pakets beim Anbieter rekursiv durchlaufen und Paketausdrücke für all die Pakete erzeugen, die noch nicht Teil von Guix sind."
+#: doc/guix.texi:10936
+msgid "When @option{--recursive} is added, the importer will traverse the dependency graph of the given upstream package recursively and generate package expressions for all those packages that are not yet in Guix."
+msgstr "Wird zudem @option{--recursive} angegeben, wird der Importer den Abhängigkeitsgraphen des angegebenen Pakets beim Anbieter rekursiv durchlaufen und Paketausdrücke für all die Pakete erzeugen, die noch nicht Teil von Guix sind."
 
 #. type: table
-#: doc/guix.texi:9119
-msgid "When @code{--archive=bioconductor} is added, metadata is imported from @uref{https://www.bioconductor.org/, Bioconductor}, a repository of R packages for for the analysis and comprehension of high-throughput genomic data in bioinformatics."
-msgstr "Wird @code{--archive=bioconductor} angegeben, werden Metadaten vom @uref{https://www.bioconductor.org/, Bioconductor} importiert, einer Sammlung von R-Paketen zur Analyse und zum Verständnis von großen Mengen genetischer Daten in der Bioinformatik."
+#: doc/guix.texi:10941
+msgid "When @option{--archive=bioconductor} is added, metadata is imported from @uref{https://www.bioconductor.org/, Bioconductor}, a repository of R packages for the analysis and comprehension of high-throughput genomic data in bioinformatics."
+msgstr "Wird @option{--archive=bioconductor} angegeben, werden Metadaten vom @uref{https://www.bioconductor.org/, Bioconductor} importiert, einer Sammlung von R-Paketen zur Analyse und zum Verständnis von großen Mengen genetischer Daten in der Bioinformatik."
 
 #. type: table
-#: doc/guix.texi:9122
-msgid "Information is extracted from the @code{DESCRIPTION} file contained in the package archive."
-msgstr "Informationen werden aus der Datei namens @code{DESCRIPTION} im Archiv des Pakets extrahiert."
+#: doc/guix.texi:10944
+msgid "Information is extracted from the @file{DESCRIPTION} file contained in the package archive."
+msgstr "Informationen werden aus der Datei namens @file{DESCRIPTION} im Archiv des Pakets extrahiert."
 
 #. type: table
-#: doc/guix.texi:9125
-msgid "The command below imports metadata for the @code{GenomicRanges} R package:"
-msgstr "Der folgende Befehl importiert Metadaten für das R-Paket @code{GenomicRanges}:"
+#: doc/guix.texi:10946
+msgid "The command below imports metadata for the GenomicRanges R package:"
+msgstr "Der folgende Befehl importiert Metadaten für das R-Paket GenomicRanges:"
 
 #. type: example
-#: doc/guix.texi:9128
+#: doc/guix.texi:10949
 #, no-wrap
 msgid "guix import cran --archive=bioconductor GenomicRanges\n"
 msgstr "guix import cran --archive=bioconductor GenomicRanges\n"
 
 #. type: table
-#: doc/guix.texi:9133
-msgid "Finally, you can also import R packages that have not yet been published on CRAN or Bioconductor as long as they are in a git repository.  Use @code{--archive=git} followed by the URL of the git repository:"
-msgstr "Schließlich können Sie auch solche R-Pakete importieren, die noch nicht auf CRAN oder im Bioconductor veröffentlicht wurden, solange sie in einem Git-Repository stehen. Benutzen Sie @code{--archive=git} gefolgt von der URL des Git-Repositorys."
+#: doc/guix.texi:10954
+msgid "Finally, you can also import R packages that have not yet been published on CRAN or Bioconductor as long as they are in a git repository.  Use @option{--archive=git} followed by the URL of the git repository:"
+msgstr "Schließlich können Sie auch solche R-Pakete importieren, die noch nicht auf CRAN oder im Bioconductor veröffentlicht wurden, solange sie in einem Git-Repository stehen. Benutzen Sie @option{--archive=git} gefolgt von der URL des Git-Repositorys."
 
 #. type: example
-#: doc/guix.texi:9136
+#: doc/guix.texi:10957
 #, no-wrap
 msgid "guix import cran --archive=git https://github.com/immunogenomics/harmony\n"
 msgstr "guix import cran --archive=git https://github.com/immunogenomics/harmony\n"
 
 #. type: item
-#: doc/guix.texi:9138
+#: doc/guix.texi:10959
 #, no-wrap
 msgid "texlive"
 msgstr "texlive"
 
 #. type: cindex
-#: doc/guix.texi:9139
+#: doc/guix.texi:10960
 #, no-wrap
 msgid "TeX Live"
 msgstr "TeX Live"
 
 #. type: cindex
-#: doc/guix.texi:9140
+#: doc/guix.texi:10961
 #, no-wrap
 msgid "CTAN"
 msgstr "CTAN"
 
 #. type: table
-#: doc/guix.texi:9144
+#: doc/guix.texi:10965
 msgid "Import metadata from @uref{https://www.ctan.org/, CTAN}, the comprehensive TeX archive network for TeX packages that are part of the @uref{https://www.tug.org/texlive/, TeX Live distribution}."
 msgstr "Metadaten aus @uref{https://www.ctan.org/, CTAN}, dem umfassenden TeX-Archivnetzwerk, herunterladen, was für TeX-Pakete benutzt wird, die Teil der @uref{https://www.tug.org/texlive/, TeX-Live-Distribution} sind."
 
 #. type: table
-#: doc/guix.texi:9149
+#: doc/guix.texi:10970
 msgid "Information about the package is obtained through the XML API provided by CTAN, while the source code is downloaded from the SVN repository of the Tex Live project.  This is done because the CTAN does not keep versioned archives."
 msgstr "Informationen über das Paket werden über die von CTAN angebotene XML-Programmierschnittstelle bezogen, wohingegen der Quellcode aus dem SVN-Repository des TeX-Live-Projekts heruntergeladen wird. Das wird so gemacht, weil CTAN keine versionierten Archive vorhält."
 
 #. type: table
-#: doc/guix.texi:9152
+#: doc/guix.texi:10973
 msgid "The command command below imports metadata for the @code{fontspec} TeX package:"
 msgstr "Der folgende Befehl importiert Metadaten für das TeX-Paket @code{fontspec}:"
 
 #. type: example
-#: doc/guix.texi:9155
+#: doc/guix.texi:10976
 #, no-wrap
 msgid "guix import texlive fontspec\n"
 msgstr "guix import texlive fontspec\n"
 
 #. type: table
-#: doc/guix.texi:9161
-msgid "When @code{--archive=DIRECTORY} is added, the source code is downloaded not from the @file{latex} sub-directory of the @file{texmf-dist/source} tree in the TeX Live SVN repository, but from the specified sibling directory under the same root."
-msgstr "Wenn @code{--archive=VERZEICHNIS} angegeben wird, wird der Quellcode @emph{nicht} aus dem Unterverzeichnis @file{latex} des @file{texmf-dist/source}-Baums im SVN-Repository von TeX Live heruntergeladen, sondern aus dem angegebenen Schwesterverzeichnis im selben Wurzelverzeichnis."
+#: doc/guix.texi:10982
+msgid "When @option{--archive=@var{directory}} is added, the source code is downloaded not from the @file{latex} sub-directory of the @file{texmf-dist/source} tree in the TeX Live SVN repository, but from the specified sibling @var{directory} under the same root."
+msgstr "Wenn @option{--archive=@var{Verzeichnis}} angegeben wird, wird der Quellcode @emph{nicht} aus dem Unterverzeichnis @file{latex} des @file{texmf-dist/source}-Baums im SVN-Repository von TeX Live heruntergeladen, sondern aus dem angegebenen Schwester-@var{Verzeichnis} im selben Wurzelverzeichnis."
 
 #. type: table
-#: doc/guix.texi:9165
+#: doc/guix.texi:10986
 msgid "The command below imports metadata for the @code{ifxetex} package from CTAN while fetching the sources from the directory @file{texmf/source/generic}:"
 msgstr "Der folgende Befehl importiert Metadaten für das Paket @code{ifxetex} aus CTAN und lädt die Quelldateien aus dem Verzeichnis @file{texmf/source/generic}:"
 
 #. type: example
-#: doc/guix.texi:9168
+#: doc/guix.texi:10989
 #, no-wrap
 msgid "guix import texlive --archive=generic ifxetex\n"
 msgstr "guix import texlive --archive=generic ifxetex\n"
 
 #. type: cindex
-#: doc/guix.texi:9171
+#: doc/guix.texi:10992
 #, no-wrap
 msgid "JSON, import"
 msgstr "JSON, Import"
 
 #. type: table
-#: doc/guix.texi:9174
+#: doc/guix.texi:10995
 msgid "Import package metadata from a local JSON file.  Consider the following example package definition in JSON format:"
 msgstr "Paketmetadaten aus einer lokalen JSON-Datei importieren. Betrachten Sie folgende Beispiel-Paketdefinition im JSON-Format:"
 
 #. type: example
-#: doc/guix.texi:9187
+#: doc/guix.texi:11008
 #, no-wrap
 msgid ""
 "@{\n"
@@ -17113,17 +20154,17 @@ msgstr ""
 "@}\n"
 
 #. type: table
-#: doc/guix.texi:9193
+#: doc/guix.texi:11014
 msgid "The field names are the same as for the @code{<package>} record (@xref{Defining Packages}).  References to other packages are provided as JSON lists of quoted package specification strings such as @code{guile} or @code{guile@@2.0}."
 msgstr "Die Felder sind genauso benannt wie bei einem @code{<package>}-Verbundstyp (siehe @ref{Defining Packages}). Referenzen zu anderen Paketen stehen darin als JSON-Liste von mit Anführungszeichen quotierten Zeichenketten wie @code{guile} oder @code{guile@@2.0}."
 
 #. type: table
-#: doc/guix.texi:9196
+#: doc/guix.texi:11017
 msgid "The importer also supports a more explicit source definition using the common fields for @code{<origin>} records:"
 msgstr "Der Importer unterstützt auch eine ausdrücklichere Definition der Quelldateien mit den üblichen Feldern eines @code{<origin>}-Verbunds:"
 
 #. type: example
-#: doc/guix.texi:9209
+#: doc/guix.texi:11030
 #, no-wrap
 msgid ""
 "@{\n"
@@ -17151,304 +20192,304 @@ msgstr ""
 "@}\n"
 
 #. type: table
-#: doc/guix.texi:9213
+#: doc/guix.texi:11034
 msgid "The command below reads metadata from the JSON file @code{hello.json} and outputs a package expression:"
 msgstr "Der folgende Befehl liest Metadaten aus der JSON-Datei @code{hello.json} und gibt einen Paketausdruck aus:"
 
 #. type: example
-#: doc/guix.texi:9216
+#: doc/guix.texi:11037
 #, no-wrap
 msgid "guix import json hello.json\n"
 msgstr "guix import json hello.json\n"
 
 #. type: item
-#: doc/guix.texi:9218
+#: doc/guix.texi:11039
 #, no-wrap
 msgid "nix"
 msgstr "nix"
 
 #. type: table
-#: doc/guix.texi:9227
+#: doc/guix.texi:11048
 msgid "Import metadata from a local copy of the source of the @uref{https://nixos.org/nixpkgs/, Nixpkgs distribution}@footnote{This relies on the @command{nix-instantiate} command of @uref{https://nixos.org/nix/, Nix}.}.  Package definitions in Nixpkgs are typically written in a mixture of Nix-language and Bash code.  This command only imports the high-level package structure that is written in the Nix language.  It normally includes all the basic fields of a package definition."
 msgstr "Metadaten aus einer lokalen Kopie des Quellcodes der @uref{https://nixos.org/nixpkgs/, Nixpkgs-Distribution} importieren@footnote{Dazu wird der Befehl @command{nix-instantiate} von @uref{https://nixos.org/nix/, Nix} verwendet.}. Paketdefinitionen in Nixpkgs werden typischerweise in einer Mischung aus der Sprache von Nix und aus Bash-Code geschrieben. Dieser Befehl wird nur die abstrakte Paketstruktur, die in der Nix-Sprache geschrieben ist, importieren. Dazu gehören normalerweise alle grundlegenden Felder einer Paketdefinition."
 
 #. type: table
-#: doc/guix.texi:9230
+#: doc/guix.texi:11051
 msgid "When importing a GNU package, the synopsis and descriptions are replaced by their canonical upstream variant."
 msgstr "Beim Importieren eines GNU-Pakets werden Zusammenfassung und Beschreibung stattdessen durch deren kanonische Variante bei GNU ersetzt."
 
 #. type: table
-#: doc/guix.texi:9232
+#: doc/guix.texi:11053
 msgid "Usually, you will first need to do:"
 msgstr "Normalerweise würden Sie zunächst dies ausführen:"
 
 #. type: example
-#: doc/guix.texi:9235
+#: doc/guix.texi:11056
 #, no-wrap
 msgid "export NIX_REMOTE=daemon\n"
 msgstr "export NIX_REMOTE=daemon\n"
 
 #. type: table
-#: doc/guix.texi:9239
+#: doc/guix.texi:11060
 msgid "so that @command{nix-instantiate} does not try to open the Nix database."
 msgstr "damit @command{nix-instantiate} nicht versucht, die Nix-Datenbank zu öffnen."
 
 #. type: table
-#: doc/guix.texi:9243
+#: doc/guix.texi:11064
 msgid "As an example, the command below imports the package definition of LibreOffice (more precisely, it imports the definition of the package bound to the @code{libreoffice} top-level attribute):"
 msgstr "Zum Beispiel importiert der Befehl unten die Paketdefinition von LibreOffice (genauer gesagt importiert er die Definition des an das Attribut @code{libreoffice} auf oberster Ebene gebundenen Pakets):"
 
 #. type: example
-#: doc/guix.texi:9246
+#: doc/guix.texi:11067
 #, no-wrap
 msgid "guix import nix ~/path/to/nixpkgs libreoffice\n"
 msgstr "guix import nix ~/path/to/nixpkgs libreoffice\n"
 
 #. type: item
-#: doc/guix.texi:9248 doc/guix.texi:9249 doc/guix.texi:9560
+#: doc/guix.texi:11069 doc/guix.texi:11070 doc/guix.texi:11383
 #, no-wrap
 msgid "hackage"
 msgstr "hackage"
 
 #. type: table
-#: doc/guix.texi:9254
+#: doc/guix.texi:11075
 msgid "Import metadata from the Haskell community's central package archive @uref{https://hackage.haskell.org/, Hackage}.  Information is taken from Cabal files and includes all the relevant information, including package dependencies."
 msgstr "Metadaten aus @uref{https://hackage.haskell.org/, Hackage}, dem zentralen Paketarchiv der Haskell-Gemeinde, importieren. Informationen werden aus Cabal-Dateien ausgelesen. Darin sind alle relevanten Informationen einschließlich der Paketabhängigkeiten enthalten."
 
 #. type: item
-#: doc/guix.texi:9258
+#: doc/guix.texi:11079
 #, no-wrap
 msgid "--stdin"
 msgstr "--stdin"
 
 #. type: itemx
-#: doc/guix.texi:9259
+#: doc/guix.texi:11080
 #, no-wrap
 msgid "-s"
 msgstr "-s"
 
 #. type: table
-#: doc/guix.texi:9261
+#: doc/guix.texi:11082
 msgid "Read a Cabal file from standard input."
 msgstr "Eine Cabal-Datei von der Standardeingabe lesen."
 
 #. type: item
-#: doc/guix.texi:9261 doc/guix.texi:9308
+#: doc/guix.texi:11082 doc/guix.texi:11129
 #, no-wrap
 msgid "--no-test-dependencies"
 msgstr "--no-test-dependencies"
 
 #. type: table
-#: doc/guix.texi:9264 doc/guix.texi:9311
+#: doc/guix.texi:11085 doc/guix.texi:11132
 msgid "Do not include dependencies required only by the test suites."
 msgstr "Keine Abhängigkeiten übernehmen, die nur von Testkatalogen benötigt werden."
 
 #. type: item
-#: doc/guix.texi:9264
+#: doc/guix.texi:11085
 #, no-wrap
 msgid "--cabal-environment=@var{alist}"
 msgstr "--cabal-environment=@var{Aliste}"
 
 #. type: itemx
-#: doc/guix.texi:9265
+#: doc/guix.texi:11086
 #, no-wrap
 msgid "-e @var{alist}"
 msgstr "-e @var{Aliste}"
 
 #. type: table
-#: doc/guix.texi:9274
+#: doc/guix.texi:11095
 msgid "@var{alist} is a Scheme alist defining the environment in which the Cabal conditionals are evaluated.  The accepted keys are: @code{os}, @code{arch}, @code{impl} and a string representing the name of a flag.  The value associated with a flag has to be either the symbol @code{true} or @code{false}.  The value associated with other keys has to conform to the Cabal file format definition.  The default value associated with the keys @code{os}, @code{arch} and @code{impl} is @samp{linux}, @samp{x86_64} and @samp{ghc}, respectively."
 msgstr "@var{Aliste} muss eine assoziative Liste der Scheme-Programmiersprache sein, die die Umgebung definiert, in der bedingte Ausdrücke von Cabal ausgewertet werden. Dabei werden folgende Schlüssel akzeptiert: @code{os}, @code{arch}, @code{impl} und eine Zeichenkette, die dem Namen einer Option (einer „Flag“) entspricht. Der mit einer „Flag“ assoziierte Wert muss entweder das Symbol @code{true} oder @code{false} sein. Der anderen Schlüsseln zugeordnete Wert muss mit der Definition des Cabal-Dateiformats konform sein. Der vorgegebene Wert zu den Schlüsseln @code{os}, @code{arch} and @code{impl} ist jeweils @samp{linux}, @samp{x86_64} bzw. @samp{ghc}."
 
 #. type: table
-#: doc/guix.texi:9284
-msgid "The command below imports metadata for the latest version of the @code{HTTP} Haskell package without including test dependencies and specifying the value of the flag @samp{network-uri} as @code{false}:"
-msgstr "Der folgende Befehl importiert Metadaten für die neuste Version des Haskell-@code{HTTP}-Pakets, ohne Testabhängigkeiten zu übernehmen und bei Übergabe von @code{false} als Wert der Flag @samp{network-uri}:"
+#: doc/guix.texi:11105
+msgid "The command below imports metadata for the latest version of the HTTP Haskell package without including test dependencies and specifying the value of the flag @samp{network-uri} as @code{false}:"
+msgstr "Der folgende Befehl importiert Metadaten für die neuste Version des Haskell-„HTTP“-Pakets, ohne Testabhängigkeiten zu übernehmen und bei Übergabe von @code{false} als Wert der Flag @samp{network-uri}:"
 
 #. type: example
-#: doc/guix.texi:9287
+#: doc/guix.texi:11108
 #, no-wrap
 msgid "guix import hackage -t -e \"'((\\\"network-uri\\\" . false))\" HTTP\n"
 msgstr "guix import hackage -t -e \"'((\\\"network-uri\\\" . false))\" HTTP\n"
 
 #. type: table
-#: doc/guix.texi:9291
+#: doc/guix.texi:11112
 msgid "A specific package version may optionally be specified by following the package name by an at-sign and a version number as in the following example:"
 msgstr "Eine ganz bestimmte Paketversion kann optional ausgewählt werden, indem man nach dem Paketnamen anschließend ein At-Zeichen und eine Versionsnummer angibt wie in folgendem Beispiel:"
 
 #. type: example
-#: doc/guix.texi:9294
+#: doc/guix.texi:11115
 #, no-wrap
 msgid "guix import hackage mtl@@2.1.3.1\n"
 msgstr "guix import hackage mtl@@2.1.3.1\n"
 
 #. type: item
-#: doc/guix.texi:9296 doc/guix.texi:9297 doc/guix.texi:9562
+#: doc/guix.texi:11117 doc/guix.texi:11118 doc/guix.texi:11385
 #, no-wrap
 msgid "stackage"
 msgstr "stackage"
 
 #. type: table
-#: doc/guix.texi:9304
+#: doc/guix.texi:11125
 msgid "The @code{stackage} importer is a wrapper around the @code{hackage} one.  It takes a package name, looks up the package version included in a long-term support (LTS) @uref{https://www.stackage.org, Stackage} release and uses the @code{hackage} importer to retrieve its metadata.  Note that it is up to you to select an LTS release compatible with the GHC compiler used by Guix."
 msgstr "Der @code{stackage}-Importer ist ein Wrapper um den @code{hackage}-Importer. Er nimmt einen Paketnamen und schaut dafür die Paketversion nach, die Teil einer @uref{https://www.stackage.org, Stackage-Veröffentlichung} mit Langzeitunterstützung (englisch „Long-Term Support“, kurz LTS) ist, deren Metadaten er dann mit dem @code{hackage}-Importer bezieht. Beachten Sie, dass es Ihre Aufgabe ist, eine LTS-Veröffentlichung auszuwählen, die mit dem von Guix benutzten GHC-Compiler kompatibel ist."
 
 #. type: item
-#: doc/guix.texi:9311
+#: doc/guix.texi:11132
 #, no-wrap
 msgid "--lts-version=@var{version}"
 msgstr "--lts-version=@var{Version}"
 
 #. type: itemx
-#: doc/guix.texi:9312
+#: doc/guix.texi:11133
 #, no-wrap
 msgid "-l @var{version}"
 msgstr "-l @var{Version}"
 
 #. type: table
-#: doc/guix.texi:9315
+#: doc/guix.texi:11136
 msgid "@var{version} is the desired LTS release version.  If omitted the latest release is used."
 msgstr "@var{Version} ist die gewünschte Version der LTS-Veröffentlichung. Wird keine angegeben, wird die neueste benutzt."
 
 #. type: table
-#: doc/guix.texi:9324
-msgid "The command below imports metadata for the @code{HTTP} Haskell package included in the LTS Stackage release version 7.18:"
-msgstr "Der folgende Befehl importiert Metadaten für dasjenige @code{HTTP}-Haskell-Paket, das in der LTS-Stackage-Veröffentlichung mit Version 7.18 vorkommt:"
+#: doc/guix.texi:11145
+msgid "The command below imports metadata for the HTTP Haskell package included in the LTS Stackage release version 7.18:"
+msgstr "Der folgende Befehl importiert Metadaten für dasjenige Haskell-„HTTP“-Paket, das in der LTS-Stackage-Veröffentlichung mit Version 7.18 vorkommt:"
 
 #. type: example
-#: doc/guix.texi:9327
+#: doc/guix.texi:11148
 #, no-wrap
 msgid "guix import stackage --lts-version=7.18 HTTP\n"
 msgstr "guix import stackage --lts-version=7.18 HTTP\n"
 
 #. type: item
-#: doc/guix.texi:9329 doc/guix.texi:9330 doc/guix.texi:9546
+#: doc/guix.texi:11150 doc/guix.texi:11151 doc/guix.texi:11369
 #, no-wrap
 msgid "elpa"
 msgstr "elpa"
 
 #. type: table
-#: doc/guix.texi:9333
+#: doc/guix.texi:11154
 msgid "Import metadata from an Emacs Lisp Package Archive (ELPA) package repository (@pxref{Packages,,, emacs, The GNU Emacs Manual})."
 msgstr "Metadaten aus der Paketsammlung „Emacs Lisp Package Archive“ (ELPA) importieren (siehe @ref{Packages,,, emacs, The GNU Emacs Manual})."
 
 #. type: item
-#: doc/guix.texi:9337
+#: doc/guix.texi:11158
 #, no-wrap
 msgid "--archive=@var{repo}"
 msgstr "--archive=@var{Repo}"
 
 #. type: itemx
-#: doc/guix.texi:9338
+#: doc/guix.texi:11159
 #, no-wrap
 msgid "-a @var{repo}"
 msgstr "-a @var{Repo}"
 
 #. type: table
-#: doc/guix.texi:9342
+#: doc/guix.texi:11163
 msgid "@var{repo} identifies the archive repository from which to retrieve the information.  Currently the supported repositories and their identifiers are:"
 msgstr "Mit @var{Repo} wird die Archiv-Sammlung (ein „Repository“) bezeichnet, von dem die Informationen bezogen werden sollen. Derzeit sind die unterstützten Repositorys und ihre Bezeichnungen folgende:"
 
 #. type: itemize
-#: doc/guix.texi:9346
+#: doc/guix.texi:11167
 msgid "@uref{https://elpa.gnu.org/packages, GNU}, selected by the @code{gnu} identifier.  This is the default."
 msgstr "@uref{https://elpa.gnu.org/packages, GNU}, bezeichnet mit @code{gnu}. Dies ist die Vorgabe."
 
 #. type: itemize
-#: doc/guix.texi:9352
+#: doc/guix.texi:11173
 msgid "Packages from @code{elpa.gnu.org} are signed with one of the keys contained in the GnuPG keyring at @file{share/emacs/25.1/etc/package-keyring.gpg} (or similar) in the @code{emacs} package (@pxref{Package Installation, ELPA package signatures,, emacs, The GNU Emacs Manual})."
-msgstr "Pakete aus @code{elpa.gnu.org} wurden mit einem der Schlüssel im GnuPG-Schlüsselbund in @file{share/emacs/25.1/etc/package-keyring.gpg} (oder einem ähnlichen Pfad) des @code{emacs}-Pakets signiert (siehe @ref{Package Installation, ELPA package signatures,, emacs, The GNU Emacs Manual})."
+msgstr "Pakete aus @code{elpa.gnu.org} wurden mit einem der Schlüssel im GnuPG-Schlüsselbund in @file{share/emacs/25.1/etc/package-keyring.gpg} (oder einem ähnlichen Pfad) des @code{emacs}-Pakets signiert (siehe @ref{Package Installation, ELPA-Paketsignaturen,, emacs, The GNU Emacs Manual})."
 
 #. type: itemize
-#: doc/guix.texi:9356
+#: doc/guix.texi:11177
 msgid "@uref{https://stable.melpa.org/packages, MELPA-Stable}, selected by the @code{melpa-stable} identifier."
 msgstr "@uref{https://stable.melpa.org/packages, MELPA-Stable}, bezeichnet mit @code{melpa-stable}."
 
 #. type: itemize
-#: doc/guix.texi:9360
+#: doc/guix.texi:11181
 msgid "@uref{https://melpa.org/packages, MELPA}, selected by the @code{melpa} identifier."
 msgstr "@uref{https://melpa.org/packages, MELPA}, bezeichnet mit @code{melpa}."
 
 #. type: item
-#: doc/guix.texi:9369 doc/guix.texi:9370 doc/guix.texi:9564
+#: doc/guix.texi:11190 doc/guix.texi:11191 doc/guix.texi:11387
 #, no-wrap
 msgid "crate"
 msgstr "crate"
 
 #. type: table
-#: doc/guix.texi:9373
+#: doc/guix.texi:11194
 msgid "Import metadata from the crates.io Rust package repository @uref{https://crates.io, crates.io}, as in this example:"
 msgstr "Metadaten aus der Paketsammlung crates.io für Rust importieren @uref{https://crates.io, crates.io}, wie Sie in diesem Beispiel sehen:"
 
 #. type: example
-#: doc/guix.texi:9376
+#: doc/guix.texi:11197
 #, no-wrap
 msgid "guix import crate blake2-rfc\n"
 msgstr "guix import crate blake2-rfc\n"
 
 #. type: table
-#: doc/guix.texi:9379
+#: doc/guix.texi:11200
 msgid "The crate importer also allows you to specify a version string:"
 msgstr "Mit dem Crate-Importer können Sie auch eine Version als Zeichenkette angeben:"
 
 #. type: example
-#: doc/guix.texi:9382
+#: doc/guix.texi:11203
 #, no-wrap
 msgid "guix import crate constant-time-eq@@0.1.0\n"
 msgstr "guix import crate constant-time-eq@@0.1.0\n"
 
 #. type: table
-#: doc/guix.texi:9385
+#: doc/guix.texi:11206
 msgid "Additional options include:"
 msgstr "Zu den zusätzlichen Optionen gehören:"
 
 #. type: item
-#: doc/guix.texi:9394
+#: doc/guix.texi:11215
 #, no-wrap
 msgid "opam"
 msgstr "opam"
 
 #. type: cindex
-#: doc/guix.texi:9395
+#: doc/guix.texi:11216
 #, no-wrap
 msgid "OPAM"
 msgstr "OPAM"
 
 #. type: cindex
-#: doc/guix.texi:9396
+#: doc/guix.texi:11217
 #, no-wrap
 msgid "OCaml"
 msgstr "OCaml"
 
 #. type: table
-#: doc/guix.texi:9399
+#: doc/guix.texi:11220
 msgid "Import metadata from the @uref{https://opam.ocaml.org/, OPAM} package repository used by the OCaml community."
 msgstr "Metadaten aus der Paketsammlung @uref{https://opam.ocaml.org/, OPAM} der OCaml-Gemeinde importieren."
 
 #. type: Plain text
-#: doc/guix.texi:9404
+#: doc/guix.texi:11225
 msgid "The structure of the @command{guix import} code is modular.  It would be useful to have more importers for other package formats, and your help is welcome here (@pxref{Contributing})."
 msgstr "@command{guix import} verfügt über eine modulare Code-Struktur. Mehr Importer für andere Paketformate zu haben, wäre nützlich, und Ihre Hilfe ist hierbei gerne gesehen (siehe @ref{Contributing})."
 
 #. type: section
-#: doc/guix.texi:9406
+#: doc/guix.texi:11227
 #, no-wrap
 msgid "Invoking @command{guix refresh}"
 msgstr "@command{guix refresh} aufrufen"
 
 #. type: command{#1}
-#: doc/guix.texi:9408
+#: doc/guix.texi:11229
 #, no-wrap
 msgid "guix refresh"
 msgstr "guix refresh"
 
 #. type: Plain text
-#: doc/guix.texi:9413
+#: doc/guix.texi:11234
 msgid "The primary audience of the @command{guix refresh} command is developers of the GNU software distribution.  By default, it reports any packages provided by the distribution that are outdated compared to the latest upstream version, like this:"
 msgstr "Die Zielgruppe des Befehls @command{guix refresh} zum Auffrischen von Paketen sind in erster Linie Entwickler der GNU-Software-Distribution. Nach Vorgabe werden damit alle Pakete in der Distribution gemeldet, die nicht der neuesten Version des Anbieters entsprechen, indem Sie dies ausführen:"
 
 #. type: example
-#: doc/guix.texi:9418
+#: doc/guix.texi:11239
 #, no-wrap
 msgid ""
 "$ guix refresh\n"
@@ -17460,12 +20501,12 @@ msgstr ""
 "gnu/packages/glib.scm:77:12: glib would be upgraded from 2.34.3 to 2.37.0\n"
 
 #. type: Plain text
-#: doc/guix.texi:9422
-msgid "Alternately, one can specify packages to consider, in which case a warning is emitted for packages that lack an updater:"
+#: doc/guix.texi:11243
+msgid "Alternatively, one can specify packages to consider, in which case a warning is emitted for packages that lack an updater:"
 msgstr "Alternativ können die zu betrachtenden Pakete dabei angegeben werden, was zur Ausgabe einer Warnung führt, wenn es für Pakete kein Aktualisierungsprogramm gibt:"
 
 #. type: example
-#: doc/guix.texi:9427
+#: doc/guix.texi:11248
 #, no-wrap
 msgid ""
 "$ guix refresh coreutils guile guile-ssh\n"
@@ -17477,17 +20518,17 @@ msgstr ""
 "gnu/packages/guile.scm:136:12: guile would be upgraded from 2.0.12 to 2.0.13\n"
 
 #. type: Plain text
-#: doc/guix.texi:9436
+#: doc/guix.texi:11257
 msgid "@command{guix refresh} browses the upstream repository of each package and determines the highest version number of the releases therein.  The command knows how to update specific types of packages: GNU packages, ELPA packages, etc.---see the documentation for @option{--type} below.  There are many packages, though, for which it lacks a method to determine whether a new upstream release is available.  However, the mechanism is extensible, so feel free to get in touch with us to add a new method!"
 msgstr "@command{guix refresh} durchsucht die Paketsammlung beim Anbieter jedes Pakets und bestimmt, was die höchste Versionsnummer ist, zu der es dort eine Veröffentlichung gibt. Zum Befehl gehören Aktualisierungsprogramme, mit denen bestimmte Typen von Paketen automatisch aktualisiert werden können: GNU-Pakete, ELPA-Pakete usw.@: — siehe die Dokumentation von @option{--type} unten. Es gibt jedoch auch viele Pakete, für die noch keine Methode enthalten ist, um das Vorhandensein einer neuen Veröffentlichung zu prüfen. Der Mechanismus ist aber erweiterbar, also können Sie gerne mit uns in Kontakt treten, wenn Sie eine neue Methode hinzufügen möchten!"
 
 #. type: table
-#: doc/guix.texi:9441
+#: doc/guix.texi:11262
 msgid "Consider the packages specified, and all the packages upon which they depend."
 msgstr "Hiermit werden die angegebenen Pakete betrachtet und außerdem alle Pakete, von denen sie abhängen."
 
 #. type: example
-#: doc/guix.texi:9449
+#: doc/guix.texi:11270
 #, no-wrap
 msgid ""
 "$ guix refresh --recursive coreutils\n"
@@ -17505,12 +20546,12 @@ msgstr ""
 "…\n"
 
 #. type: Plain text
-#: doc/guix.texi:9457
+#: doc/guix.texi:11278
 msgid "Sometimes the upstream name differs from the package name used in Guix, and @command{guix refresh} needs a little help.  Most updaters honor the @code{upstream-name} property in package definitions, which can be used to that effect:"
 msgstr "Manchmal unterscheidet sich der vom Anbieter benutzte Name von dem Paketnamen, der in Guix verwendet wird, so dass @command{guix refresh} etwas Unterstützung braucht. Die meisten Aktualisierungsprogramme folgen der Eigenschaft @code{upstream-name} in Paketdefinitionen, die diese Unterstützung bieten kann."
 
 #. type: lisp
-#: doc/guix.texi:9464
+#: doc/guix.texi:11285
 #, no-wrap
 msgid ""
 "(define-public network-manager\n"
@@ -17526,242 +20567,253 @@ msgstr ""
 "    (properties '((upstream-name . \"NetworkManager\")))))\n"
 
 #. type: Plain text
-#: doc/guix.texi:9473
-msgid "When passed @code{--update}, it modifies distribution source files to update the version numbers and source tarball hashes of those package recipes (@pxref{Defining Packages}).  This is achieved by downloading each package's latest source tarball and its associated OpenPGP signature, authenticating the downloaded tarball against its signature using @command{gpgv}, and finally computing its hash---note that GnuPG must be installed and in @code{$PATH}; run @code{guix install gnupg} if needed."
-msgstr "Wenn @code{--update} übergeben wird, werden die Quelldateien der Distribution verändert, so dass für diese Paketrezepte die aktuelle Version und die aktuelle Hash-Prüfsumme des Quellcode-Tarballs eingetragen wird (siehe @ref{Defining Packages}). Dazu werden der neueste Quellcode-Tarball jedes Pakets sowie die jeweils zugehörige OpenPGP-Signatur heruntergeladen; mit Letzterer wird der heruntergeladene Tarball gegen seine Signatur mit @command{gpgv} authentifiziert und schließlich dessen Hash berechnet. Beachten Sie, dass GnuPG dazu installiert sein und in @code{$PATH} vorkommen muss. Falls dies nicht der Fall ist, führen Sie @code{guix install gnupg} aus."
+#: doc/guix.texi:11294
+msgid "When passed @option{--update}, it modifies distribution source files to update the version numbers and source tarball hashes of those package recipes (@pxref{Defining Packages}).  This is achieved by downloading each package's latest source tarball and its associated OpenPGP signature, authenticating the downloaded tarball against its signature using @command{gpgv}, and finally computing its hash---note that GnuPG must be installed and in @code{$PATH}; run @code{guix install gnupg} if needed."
+msgstr "Wenn @option{--update} übergeben wird, werden die Quelldateien der Distribution verändert, so dass für diese Paketrezepte die aktuelle Version und die aktuelle Hash-Prüfsumme des Quellcode-Tarballs eingetragen wird (siehe @ref{Defining Packages}). Dazu werden der neueste Quellcode-Tarball jedes Pakets sowie die jeweils zugehörige OpenPGP-Signatur heruntergeladen; mit Letzterer wird der heruntergeladene Tarball gegen seine Signatur mit @command{gpgv} authentifiziert und schließlich dessen Hash berechnet. Beachten Sie, dass GnuPG dazu installiert sein und in @code{$PATH} vorkommen muss. Falls dies nicht der Fall ist, führen Sie @code{guix install gnupg} aus."
 
 #. type: Plain text
-#: doc/guix.texi:9479
+#: doc/guix.texi:11300
 msgid "When the public key used to sign the tarball is missing from the user's keyring, an attempt is made to automatically retrieve it from a public key server; when this is successful, the key is added to the user's keyring; otherwise, @command{guix refresh} reports an error."
 msgstr "Wenn der öffentliche Schlüssel, mit dem der Tarball signiert wurde, im Schlüsselbund des Benutzers fehlt, wird versucht, ihn automatisch von einem Schlüssel-Server zu holen. Wenn das klappt, wird der Schlüssel zum Schlüsselbund des Benutzers hinzugefügt, ansonsten meldet @command{guix refresh} einen Fehler."
 
 #. type: Plain text
-#: doc/guix.texi:9481
+#: doc/guix.texi:11302
 msgid "The following options are supported:"
 msgstr "Die folgenden Befehlszeilenoptionen werden unterstützt:"
 
 #. type: table
-#: doc/guix.texi:9489 doc/guix.texi:10194
+#: doc/guix.texi:11310 doc/guix.texi:12095
 msgid "This is useful to precisely refer to a package, as in this example:"
 msgstr "Dies ist nützlich, um genau ein bestimmtes Paket zu referenzieren, wie in diesem Beispiel:"
 
 #. type: example
-#: doc/guix.texi:9492
+#: doc/guix.texi:11313
 #, no-wrap
 msgid "guix refresh -l -e '(@@@@ (gnu packages commencement) glibc-final)'\n"
 msgstr "guix refresh -l -e '(@@@@ (gnu packages commencement) glibc-final)'\n"
 
 #. type: table
-#: doc/guix.texi:9496
-msgid "This command lists the dependents of the ``final'' libc (essentially all the packages.)"
+#: doc/guix.texi:11317
+msgid "This command lists the dependents of the ``final'' libc (essentially all the packages)."
 msgstr "Dieser Befehls listet auf, was alles von der „endgültigen“ Erstellung von libc abhängt (praktisch alle Pakete)."
 
 #. type: item
-#: doc/guix.texi:9497
+#: doc/guix.texi:11318
 #, no-wrap
 msgid "--update"
 msgstr "--update"
 
 #. type: itemx
-#: doc/guix.texi:9498
+#: doc/guix.texi:11319
 #, no-wrap
 msgid "-u"
 msgstr "-u"
 
 #. type: table
-#: doc/guix.texi:9502
+#: doc/guix.texi:11323
 msgid "Update distribution source files (package recipes) in place.  This is usually run from a checkout of the Guix source tree (@pxref{Running Guix Before It Is Installed}):"
 msgstr "Die Quelldateien der Distribution (die Paketrezepte) werden direkt „in place“ verändert. Normalerweise führen Sie dies aus einem Checkout des Guix-Quellbaums heraus aus (siehe @ref{Running Guix Before It Is Installed}):"
 
 #. type: example
-#: doc/guix.texi:9505
+#: doc/guix.texi:11326
 #, no-wrap
 msgid "$ ./pre-inst-env guix refresh -s non-core -u\n"
 msgstr "$ ./pre-inst-env guix refresh -s non-core -u\n"
 
 #. type: table
-#: doc/guix.texi:9508
+#: doc/guix.texi:11329
 msgid "@xref{Defining Packages}, for more information on package definitions."
 msgstr "Siehe @ref{Defining Packages} für mehr Informationen zu Paketdefinitionen."
 
 #. type: item
-#: doc/guix.texi:9509
+#: doc/guix.texi:11330
 #, no-wrap
 msgid "--select=[@var{subset}]"
 msgstr "--select=[@var{Teilmenge}]"
 
 #. type: itemx
-#: doc/guix.texi:9510
+#: doc/guix.texi:11331
 #, no-wrap
 msgid "-s @var{subset}"
 msgstr "-s @var{Teilmenge}"
 
 #. type: table
-#: doc/guix.texi:9513
+#: doc/guix.texi:11334
 msgid "Select all the packages in @var{subset}, one of @code{core} or @code{non-core}."
 msgstr "Wählt alle Pakete aus der @var{Teilmenge} aus, die entweder @code{core} oder @code{non-core} sein muss."
 
 #. type: table
-#: doc/guix.texi:9520
+#: doc/guix.texi:11341
 msgid "The @code{core} subset refers to all the packages at the core of the distribution---i.e., packages that are used to build ``everything else''.  This includes GCC, libc, Binutils, Bash, etc.  Usually, changing one of these packages in the distribution entails a rebuild of all the others.  Thus, such updates are an inconvenience to users in terms of build time or bandwidth used to achieve the upgrade."
 msgstr "Die @code{core}-Teilmenge bezieht sich auf alle Pakete, die den Kern der Distribution ausmachen, d.h.@: Pakete, aus denen heraus „alles andere“ erstellt wird. Dazu gehören GCC, libc, Binutils, Bash und so weiter. In der Regel ist die Folge einer Änderung an einem dieser Pakete in der Distribution, dass alle anderen neu erstellt werden müssen. Daher sind solche Änderungen unangenehm für Nutzer, weil sie einiges an Erstellungszeit oder Bandbreite investieren müssen, um die Aktualisierung abzuschließen."
 
 #. type: table
-#: doc/guix.texi:9524
+#: doc/guix.texi:11345
 msgid "The @code{non-core} subset refers to the remaining packages.  It is typically useful in cases where an update of the core packages would be inconvenient."
 msgstr "Die @code{non-core}-Teilmenge bezieht sich auf die übrigen Pakete. Sie wird typischerweise dann benutzt, wenn eine Aktualisierung der Kernpakete zu viele Umstände machen würde."
 
 #. type: table
-#: doc/guix.texi:9529
+#: doc/guix.texi:11350
 msgid "Select all the packages from the manifest in @var{file}. This is useful to check if any packages of the user manifest can be updated."
 msgstr "Wählt alle Pakete im in der @var{Datei} stehenden Manifest aus. Das ist nützlich, um zu überprüfen, welche Pakete aus dem Manifest des Nutzers aktualisiert werden können."
 
 #. type: item
-#: doc/guix.texi:9530
+#: doc/guix.texi:11351
 #, no-wrap
 msgid "--type=@var{updater}"
 msgstr "--type=@var{Aktualisierungsprogramm}"
 
 #. type: itemx
-#: doc/guix.texi:9531
+#: doc/guix.texi:11352
 #, no-wrap
 msgid "-t @var{updater}"
 msgstr "-t @var{Aktualisierungsprogramm}"
 
 #. type: table
-#: doc/guix.texi:9534
+#: doc/guix.texi:11355
 msgid "Select only packages handled by @var{updater} (may be a comma-separated list of updaters).  Currently, @var{updater} may be one of:"
-msgstr "Nur solche Pakete auswählen, die vom angegebenen @var{Aktualisierungsprogramm} behandelt werden. Es darf auch eine kommagetrennte Liste mehrerer Aktualisierungsprogramme angegeben werden. Zur Zeit kann als @var{Aktualisierungsprogramm} eines der folgenden angegeben werden:"
+msgstr "Nur solche Pakete auswählen, die vom angegebenen @var{Aktualisierungsprogramm} behandelt werden. Es darf auch eine kommagetrennte Liste mehrerer Aktualisierungsprogramme angegeben werden. Zurzeit kann als @var{Aktualisierungsprogramm} eines der folgenden angegeben werden:"
 
 #. type: table
-#: doc/guix.texi:9538
+#: doc/guix.texi:11359
 msgid "the updater for GNU packages;"
 msgstr "Aktualisierungsprogramm für GNU-Pakete,"
 
 #. type: item
-#: doc/guix.texi:9538
+#: doc/guix.texi:11359
+#, no-wrap
+msgid "savannah"
+msgstr "savannah"
+
+#. type: table
+#: doc/guix.texi:11361
+msgid "the updater for packages hosted at @uref{https://savannah.gnu.org, Savannah};"
+msgstr "Aktualisierungsprogramm auf @uref{https://savannah.gnu.org, Savannah} angebotener Pakete,"
+
+#. type: item
+#: doc/guix.texi:11361
 #, no-wrap
 msgid "gnome"
 msgstr "gnome"
 
 #. type: table
-#: doc/guix.texi:9540
+#: doc/guix.texi:11363
 msgid "the updater for GNOME packages;"
 msgstr "Aktualisierungsprogramm für GNOME-Pakete,"
 
 #. type: item
-#: doc/guix.texi:9540
+#: doc/guix.texi:11363
 #, no-wrap
 msgid "kde"
 msgstr "kde"
 
 #. type: table
-#: doc/guix.texi:9542
+#: doc/guix.texi:11365
 msgid "the updater for KDE packages;"
 msgstr "Aktualisierungsprogramm für KDE-Pakete,"
 
 #. type: item
-#: doc/guix.texi:9542
+#: doc/guix.texi:11365
 #, no-wrap
 msgid "xorg"
 msgstr "xorg"
 
 #. type: table
-#: doc/guix.texi:9544
+#: doc/guix.texi:11367
 msgid "the updater for X.org packages;"
 msgstr "Aktualisierungsprogramm für X.org-Pakete,"
 
 #. type: item
-#: doc/guix.texi:9544
+#: doc/guix.texi:11367
 #, no-wrap
 msgid "kernel.org"
 msgstr "kernel.org"
 
 #. type: table
-#: doc/guix.texi:9546
+#: doc/guix.texi:11369
 msgid "the updater for packages hosted on kernel.org;"
 msgstr "Aktualisierungsprogramm auf kernel.org angebotener Pakete,"
 
 #. type: table
-#: doc/guix.texi:9548
+#: doc/guix.texi:11371
 msgid "the updater for @uref{https://elpa.gnu.org/, ELPA} packages;"
 msgstr "Aktualisierungsprogramm für @uref{https://elpa.gnu.org/, ELPA-Pakete},"
 
 #. type: table
-#: doc/guix.texi:9550
+#: doc/guix.texi:11373
 msgid "the updater for @uref{https://cran.r-project.org/, CRAN} packages;"
 msgstr "Aktualisierungsprogramm für @uref{https://cran.r-project.org/, CRAN-Pakete},"
 
 #. type: item
-#: doc/guix.texi:9550
+#: doc/guix.texi:11373
 #, no-wrap
 msgid "bioconductor"
 msgstr "bioconductor"
 
 #. type: table
-#: doc/guix.texi:9552
+#: doc/guix.texi:11375
 msgid "the updater for @uref{https://www.bioconductor.org/, Bioconductor} R packages;"
 msgstr "Aktualisierungsprogramm für R-Pakete vom @uref{https://www.bioconductor.org/, Bioconductor},"
 
 #. type: table
-#: doc/guix.texi:9554
+#: doc/guix.texi:11377
 msgid "the updater for @uref{https://www.cpan.org/, CPAN} packages;"
 msgstr "Aktualisierungsprogramm für @uref{https://www.cpan.org/, CPAN-Pakete},"
 
 #. type: table
-#: doc/guix.texi:9556
+#: doc/guix.texi:11379
 msgid "the updater for @uref{https://pypi.python.org, PyPI} packages."
 msgstr "Aktualisierungsprogramm für @uref{https://pypi.python.org, PyPI-Pakete},"
 
 #. type: table
-#: doc/guix.texi:9558
+#: doc/guix.texi:11381
 msgid "the updater for @uref{https://rubygems.org, RubyGems} packages."
 msgstr "Aktualisierungsprogramm für @uref{https://rubygems.org, RubyGems-Pakete}."
 
 #. type: item
-#: doc/guix.texi:9558
+#: doc/guix.texi:11381
 #, no-wrap
 msgid "github"
 msgstr "github"
 
 #. type: table
-#: doc/guix.texi:9560
+#: doc/guix.texi:11383
 msgid "the updater for @uref{https://github.com, GitHub} packages."
 msgstr "Aktualisierungsprogramm für @uref{https://github.com, GitHub-Pakete}."
 
 #. type: table
-#: doc/guix.texi:9562
+#: doc/guix.texi:11385
 msgid "the updater for @uref{https://hackage.haskell.org, Hackage} packages."
 msgstr "Aktualisierungsprogramm für @uref{https://hackage.haskell.org, Hackage-Pakete}."
 
 #. type: table
-#: doc/guix.texi:9564
+#: doc/guix.texi:11387
 msgid "the updater for @uref{https://www.stackage.org, Stackage} packages."
 msgstr "Aktualisierungsprogramm für @uref{https://www.stackage.org, Stackage-Pakete}."
 
 #. type: table
-#: doc/guix.texi:9566
+#: doc/guix.texi:11389
 msgid "the updater for @uref{https://crates.io, Crates} packages."
 msgstr "Aktualisierungsprogramm für @uref{https://crates.io, Crates-Pakete}."
 
 #. type: item
-#: doc/guix.texi:9566
+#: doc/guix.texi:11389
 #, no-wrap
 msgid "launchpad"
 msgstr "launchpad"
 
 #. type: table
-#: doc/guix.texi:9568
+#: doc/guix.texi:11391
 msgid "the updater for @uref{https://launchpad.net, Launchpad} packages."
 msgstr "Aktualisierungsprogramm für @uref{https://launchpad.net, Launchpad}."
 
 #. type: table
-#: doc/guix.texi:9572
+#: doc/guix.texi:11395
 msgid "For instance, the following command only checks for updates of Emacs packages hosted at @code{elpa.gnu.org} and for updates of CRAN packages:"
 msgstr "Zum Beispiel prüft folgender Befehl nur auf mögliche Aktualisierungen von auf @code{elpa.gnu.org} angebotenen Emacs-Paketen und von CRAN-Paketen:"
 
 #. type: example
-#: doc/guix.texi:9577
+#: doc/guix.texi:11400
 #, no-wrap
 msgid ""
 "$ guix refresh --type=elpa,cran\n"
@@ -17773,77 +20825,77 @@ msgstr ""
 "gnu/packages/emacs.scm:856:13: emacs-auctex would be upgraded from 11.88.6 to 11.88.9\n"
 
 #. type: Plain text
-#: doc/guix.texi:9583
+#: doc/guix.texi:11406
 msgid "In addition, @command{guix refresh} can be passed one or more package names, as in this example:"
 msgstr "An @command{guix refresh} können auch ein oder mehrere Paketnamen übergeben werden wie in diesem Beispiel:"
 
 #. type: example
-#: doc/guix.texi:9586
+#: doc/guix.texi:11409
 #, no-wrap
 msgid "$ ./pre-inst-env guix refresh -u emacs idutils gcc@@4.8\n"
 msgstr "$ ./pre-inst-env guix refresh -u emacs idutils gcc@@4.8\n"
 
 #. type: Plain text
-#: doc/guix.texi:9592
-msgid "The command above specifically updates the @code{emacs} and @code{idutils} packages.  The @code{--select} option would have no effect in this case."
-msgstr "Der Befehl oben aktualisiert speziell das @code{emacs}- und das @code{idutils}-Paket. Eine Befehlszeilenoption @code{--select} hätte dann keine Wirkung."
+#: doc/guix.texi:11415
+msgid "The command above specifically updates the @code{emacs} and @code{idutils} packages.  The @option{--select} option would have no effect in this case."
+msgstr "Der Befehl oben aktualisiert speziell das @code{emacs}- und das @code{idutils}-Paket. Eine Befehlszeilenoption @option{--select} hätte dann keine Wirkung."
 
 #. type: Plain text
-#: doc/guix.texi:9597
+#: doc/guix.texi:11420
 msgid "When considering whether to upgrade a package, it is sometimes convenient to know which packages would be affected by the upgrade and should be checked for compatibility.  For this the following option may be used when passing @command{guix refresh} one or more package names:"
 msgstr "Wenn Sie sich fragen, ob ein Paket aktualisiert werden sollte oder nicht, kann es helfen, sich anzuschauen, welche Pakete von der Aktualisierung betroffen wären und auf Kompatibilität hin geprüft werden sollten. Dazu kann die folgende Befehlszeilenoption zusammen mit einem oder mehreren Paketnamen an @command{guix refresh} übergeben werden:"
 
 #. type: item
-#: doc/guix.texi:9600
+#: doc/guix.texi:11423
 #, no-wrap
 msgid "--list-updaters"
 msgstr "--list-updaters"
 
 #. type: itemx
-#: doc/guix.texi:9601
+#: doc/guix.texi:11424
 #, no-wrap
 msgid "-L"
 msgstr "-L"
 
 #. type: table
-#: doc/guix.texi:9603
-msgid "List available updaters and exit (see @option{--type} above.)"
+#: doc/guix.texi:11426
+msgid "List available updaters and exit (see @option{--type} above)."
 msgstr "Eine Liste verfügbarer Aktualisierungsprogramme anzeigen und terminieren (siehe @option{--type} oben)."
 
 #. type: table
-#: doc/guix.texi:9606
+#: doc/guix.texi:11429
 msgid "For each updater, display the fraction of packages it covers; at the end, display the fraction of packages covered by all these updaters."
 msgstr "Für jedes Aktualisierungsprogramm den Anteil der davon betroffenen Pakete anzeigen; zum Schluss wird der Gesamtanteil von irgendeinem Aktualisierungsprogramm betroffener Pakete angezeigt."
 
 #. type: item
-#: doc/guix.texi:9607
+#: doc/guix.texi:11430
 #, no-wrap
 msgid "--list-dependent"
 msgstr "--list-dependent"
 
 #. type: itemx
-#: doc/guix.texi:9608 doc/guix.texi:9856
+#: doc/guix.texi:11431 doc/guix.texi:11690
 #, no-wrap
 msgid "-l"
 msgstr "-l"
 
 #. type: table
-#: doc/guix.texi:9611
+#: doc/guix.texi:11434
 msgid "List top-level dependent packages that would need to be rebuilt as a result of upgrading one or more packages."
 msgstr "Auflisten, welche abhängigen Pakete auf oberster Ebene neu erstellt werden müssten, wenn eines oder mehrere Pakete aktualisiert würden."
 
 #. type: table
-#: doc/guix.texi:9615
+#: doc/guix.texi:11438
 msgid "@xref{Invoking guix graph, the @code{reverse-package} type of @command{guix graph}}, for information on how to visualize the list of dependents of a package."
 msgstr "Siehe @ref{Invoking guix graph, den @code{reverse-package}-Typ von @command{guix graph}} für Informationen dazu, wie Sie die Liste der Abhängigen eines Pakets visualisieren können."
 
 #. type: Plain text
-#: doc/guix.texi:9621
-msgid "Be aware that the @code{--list-dependent} option only @emph{approximates} the rebuilds that would be required as a result of an upgrade.  More rebuilds might be required under some circumstances."
-msgstr "Bedenken Sie, dass die Befehlszeilenoption @code{--list-dependent} das Ausmaß der nach einer Aktualisierungen benötigten Neuerstellungen nur @emph{annähert}. Es könnten auch unter Umständen mehr Neuerstellungen anfallen."
+#: doc/guix.texi:11444
+msgid "Be aware that the @option{--list-dependent} option only @emph{approximates} the rebuilds that would be required as a result of an upgrade.  More rebuilds might be required under some circumstances."
+msgstr "Bedenken Sie, dass die Befehlszeilenoption @option{--list-dependent} das Ausmaß der nach einer Aktualisierungen benötigten Neuerstellungen nur @emph{annähert}. Es könnten auch unter Umständen mehr Neuerstellungen anfallen."
 
 #. type: example
-#: doc/guix.texi:9626
+#: doc/guix.texi:11449
 #, no-wrap
 msgid ""
 "$ guix refresh --list-dependent flex\n"
@@ -17855,23 +20907,23 @@ msgstr ""
 "hop@@2.4.0 geiser@@0.4 notmuch@@0.18 mu@@0.9.9.5 cflow@@1.4 idutils@@4.6 …\n"
 
 #. type: Plain text
-#: doc/guix.texi:9630
+#: doc/guix.texi:11453
 msgid "The command above lists a set of packages that could be built to check for compatibility with an upgraded @code{flex} package."
 msgstr "Der oben stehende Befehl gibt einen Satz von Paketen aus, die Sie erstellen wollen könnten, um die Kompatibilität einer Aktualisierung des @code{flex}-Pakets beurteilen zu können."
 
 #. type: item
-#: doc/guix.texi:9633
+#: doc/guix.texi:11456
 #, no-wrap
 msgid "--list-transitive"
 msgstr "--list-transitive"
 
 #. type: table
-#: doc/guix.texi:9635
+#: doc/guix.texi:11458
 msgid "List all the packages which one or more packages depend upon."
 msgstr "Die Pakete auflisten, von denen eines oder mehrere Pakete abhängen."
 
 #. type: example
-#: doc/guix.texi:9640
+#: doc/guix.texi:11463
 #, no-wrap
 msgid ""
 "$ guix refresh --list-transitive flex\n"
@@ -17883,60 +20935,60 @@ msgstr ""
 "bison@@3.0.5 indent@@2.2.10 tar@@1.30 gzip@@1.9 bzip2@@1.0.6 xz@@5.2.4 file@@5.33 …\n"
 
 #. type: Plain text
-#: doc/guix.texi:9646
+#: doc/guix.texi:11469
 msgid "The command above lists a set of packages which, when changed, would cause @code{flex} to be rebuilt."
 msgstr "Der oben stehende Befehl gibt einen Satz von Paketen aus, die, wenn sie geändert würden, eine Neuerstellung des @code{flex}-Pakets auslösen würden."
 
 #. type: Plain text
-#: doc/guix.texi:9648
+#: doc/guix.texi:11471
 msgid "The following options can be used to customize GnuPG operation:"
 msgstr "Mit den folgenden Befehlszeilenoptionen können Sie das Verhalten von GnuPG anpassen:"
 
 #. type: item
-#: doc/guix.texi:9651
+#: doc/guix.texi:11474
 #, no-wrap
 msgid "--gpg=@var{command}"
 msgstr "--gpg=@var{Befehl}"
 
 #. type: table
-#: doc/guix.texi:9654
+#: doc/guix.texi:11477
 msgid "Use @var{command} as the GnuPG 2.x command.  @var{command} is searched for in @code{$PATH}."
 msgstr "Den @var{Befehl} als GnuPG-2.x-Befehl einsetzen. Der @var{Befehl} wird im @code{$PATH} gesucht."
 
 #. type: item
-#: doc/guix.texi:9655
+#: doc/guix.texi:11478
 #, no-wrap
 msgid "--keyring=@var{file}"
 msgstr "--keyring=@var{Datei}"
 
 #. type: table
-#: doc/guix.texi:9661
+#: doc/guix.texi:11484
 msgid "Use @var{file} as the keyring for upstream keys.  @var{file} must be in the @dfn{keybox format}.  Keybox files usually have a name ending in @file{.kbx} and the GNU@tie{}Privacy Guard (GPG) can manipulate these files (@pxref{kbxutil, @command{kbxutil},, gnupg, Using the GNU Privacy Guard}, for information on a tool to manipulate keybox files)."
 msgstr "Die @var{Datei} als Schlüsselbund mit Anbieterschlüsseln verwenden. Die @var{Datei} muss im @dfn{Keybox-Format} vorliegen. Keybox-Dateien haben normalerweise einen Namen, der auf @file{.kbx} endet. Sie können mit Hilfe von GNU@tie{}Privacy Guard (GPG) bearbeitet werden (siehe @ref{kbxutil, @command{kbxutil},, gnupg, Using the GNU Privacy Guard} für Informationen über ein Werkzeug zum Bearbeiten von Keybox-Dateien)."
 
 #. type: table
-#: doc/guix.texi:9667
-msgid "When this option is omitted, @command{guix refresh} uses @file{~/.config/guix/upstream/trustedkeys.kbx} as the keyring for upstream signing keys.  OpenPGP signatures are checked against keys from this keyring; missing keys are downloaded to this keyring as well (see @option{--key-download} below.)"
+#: doc/guix.texi:11490
+msgid "When this option is omitted, @command{guix refresh} uses @file{~/.config/guix/upstream/trustedkeys.kbx} as the keyring for upstream signing keys.  OpenPGP signatures are checked against keys from this keyring; missing keys are downloaded to this keyring as well (see @option{--key-download} below)."
 msgstr "Wenn diese Befehlszeilenoption nicht angegeben wird, benutzt @command{guix refresh} die Keybox-Datei @file{~/.config/guix/upstream/trustedkeys.kbx} als Schlüsselbund für Signierschlüssel von Anbietern. OpenPGP-Signaturen werden mit Schlüsseln aus diesem Schlüsselbund überprüft; fehlende Schlüssel werden auch in diesen Schlüsselbund heruntergeladen (siehe @option{--key-download} unten)."
 
 #. type: table
-#: doc/guix.texi:9670
+#: doc/guix.texi:11493
 msgid "You can export keys from your default GPG keyring into a keybox file using commands like this one:"
 msgstr "Sie können Schlüssel aus Ihrem normalerweise benutzten GPG-Schlüsselbund in eine Keybox-Datei exportieren, indem Sie Befehle wie diesen benutzen:"
 
 #. type: example
-#: doc/guix.texi:9673
+#: doc/guix.texi:11496
 #, no-wrap
 msgid "gpg --export rms@@gnu.org | kbxutil --import-openpgp >> mykeyring.kbx\n"
 msgstr "gpg --export rms@@gnu.org | kbxutil --import-openpgp >> mykeyring.kbx\n"
 
 #. type: table
-#: doc/guix.texi:9676
+#: doc/guix.texi:11499
 msgid "Likewise, you can fetch keys to a specific keybox file like this:"
 msgstr "Ebenso können Sie wie folgt Schlüssel in eine bestimmte Keybox-Datei herunterladen:"
 
 #. type: example
-#: doc/guix.texi:9680
+#: doc/guix.texi:11503
 #, no-wrap
 msgid ""
 "gpg --no-default-keyring --keyring mykeyring.kbx \\\n"
@@ -17946,225 +20998,241 @@ msgstr ""
 "  --recv-keys @value{OPENPGP-SIGNING-KEY-ID}\n"
 
 #. type: table
-#: doc/guix.texi:9684
+#: doc/guix.texi:11507
 msgid "@ref{GPG Configuration Options, @option{--keyring},, gnupg, Using the GNU Privacy Guard}, for more information on GPG's @option{--keyring} option."
 msgstr "Siehe @ref{GPG Configuration Options, @option{--keyring},, gnupg, Using the GNU Privacy Guard} für mehr Informationen zur Befehlszeilenoption @option{--keyring} von GPG."
 
 #. type: table
-#: doc/guix.texi:9688
+#: doc/guix.texi:11511
 msgid "Handle missing OpenPGP keys according to @var{policy}, which may be one of:"
 msgstr "Fehlende OpenPGP-Schlüssel gemäß dieser @var{Richtlinie} behandeln, für die eine der Folgenden angegeben werden kann:"
 
 #. type: item
-#: doc/guix.texi:9690 doc/guix.texi:17209
+#: doc/guix.texi:11513 doc/guix.texi:19898
 #, no-wrap
 msgid "always"
 msgstr "always"
 
 #. type: table
-#: doc/guix.texi:9693
+#: doc/guix.texi:11516
 msgid "Always download missing OpenPGP keys from the key server, and add them to the user's GnuPG keyring."
 msgstr "Immer fehlende OpenPGP-Schlüssel herunterladen und zum GnuPG-Schlüsselbund des Nutzers hinzufügen."
 
 #. type: item
-#: doc/guix.texi:9694 doc/guix.texi:17211
+#: doc/guix.texi:11517 doc/guix.texi:19900
 #, no-wrap
 msgid "never"
 msgstr "never"
 
 #. type: table
-#: doc/guix.texi:9696
+#: doc/guix.texi:11519
 msgid "Never try to download missing OpenPGP keys.  Instead just bail out."
 msgstr "Niemals fehlende OpenPGP-Schlüssel herunterladen, sondern einfach abbrechen."
 
 #. type: item
-#: doc/guix.texi:9697
+#: doc/guix.texi:11520
 #, no-wrap
 msgid "interactive"
 msgstr "interactive"
 
 #. type: table
-#: doc/guix.texi:9700
+#: doc/guix.texi:11523
 msgid "When a package signed with an unknown OpenPGP key is encountered, ask the user whether to download it or not.  This is the default behavior."
 msgstr "Ist ein Paket mit einem unbekannten OpenPGP-Schlüssel signiert, wird der Nutzer gefragt, ob der Schlüssel heruntergeladen werden soll oder nicht. Dies entspricht dem vorgegebenen Verhalten."
 
 #. type: item
-#: doc/guix.texi:9702
+#: doc/guix.texi:11525
 #, no-wrap
 msgid "--key-server=@var{host}"
 msgstr "--key-server=@var{Host}"
 
 #. type: table
-#: doc/guix.texi:9704
+#: doc/guix.texi:11527
 msgid "Use @var{host} as the OpenPGP key server when importing a public key."
 msgstr "Den mit @var{Host} bezeichneten Rechner als Schlüsselserver für OpenPGP benutzen, wenn ein öffentlicher Schlüssel importiert wird."
 
 #. type: Plain text
-#: doc/guix.texi:9724
-msgid "The @code{github} updater uses the @uref{https://developer.github.com/v3/, GitHub API} to query for new releases.  When used repeatedly e.g.@: when refreshing all packages, GitHub will eventually refuse to answer any further API requests.  By default 60 API requests per hour are allowed, and a full refresh on all GitHub packages in Guix requires more than this.  Authentication with GitHub through the use of an API token alleviates these limits.  To use an API token, set the environment variable @code{GUIX_GITHUB_TOKEN} to a token procured from @uref{https://github.com/settings/tokens} or otherwise."
-msgstr "Das @code{github}-Aktualisierungsprogramm benutzt die @uref{https://developer.github.com/v3/, GitHub-Programmierschnittstelle} (die „Github-API“), um Informationen über neue Veröffentlichungen einzuholen. Geschieht dies oft, z.B.@: beim Auffrischen aller Pakete, so wird GitHub irgendwann aufhören, weitere API-Anfragen zu beantworten. Normalerweise sind 60 API-Anfragen pro Stunde erlaubt, für eine vollständige Auffrischung aller GitHub-Pakete in Guix werden aber mehr benötigt. Wenn Sie sich bei GitHub mit Ihrem eigenen API-Token authentisieren, gelten weniger einschränkende Grenzwerte. Um einen API-Token zu benutzen, setzen Sie die Umgebungsvariable @code{GUIX_GITHUB_TOKEN} auf einen von @uref{https://github.com/settings/tokens} oder anderweitig bezogenen API-Token."
+#: doc/guix.texi:11547
+msgid "The @code{github} updater uses the @uref{https://developer.github.com/v3/, GitHub API} to query for new releases.  When used repeatedly e.g.@: when refreshing all packages, GitHub will eventually refuse to answer any further API requests.  By default 60 API requests per hour are allowed, and a full refresh on all GitHub packages in Guix requires more than this.  Authentication with GitHub through the use of an API token alleviates these limits.  To use an API token, set the environment variable @env{GUIX_GITHUB_TOKEN} to a token procured from @uref{https://github.com/settings/tokens} or otherwise."
+msgstr "Das @code{github}-Aktualisierungsprogramm benutzt die @uref{https://developer.github.com/v3/, GitHub-Programmierschnittstelle} (die „Github-API“), um Informationen über neue Veröffentlichungen einzuholen. Geschieht dies oft, z.B.@: beim Auffrischen aller Pakete, so wird GitHub irgendwann aufhören, weitere API-Anfragen zu beantworten. Normalerweise sind 60 API-Anfragen pro Stunde erlaubt, für eine vollständige Auffrischung aller GitHub-Pakete in Guix werden aber mehr benötigt. Wenn Sie sich bei GitHub mit Ihrem eigenen API-Token authentisieren, gelten weniger einschränkende Grenzwerte. Um einen API-Token zu benutzen, setzen Sie die Umgebungsvariable @env{GUIX_GITHUB_TOKEN} auf einen von @uref{https://github.com/settings/tokens} oder anderweitig bezogenen API-Token."
 
 #. type: section
-#: doc/guix.texi:9727
+#: doc/guix.texi:11550
 #, no-wrap
 msgid "Invoking @command{guix lint}"
 msgstr "@command{guix lint} aufrufen"
 
 #. type: command{#1}
-#: doc/guix.texi:9729
+#: doc/guix.texi:11552
 #, no-wrap
 msgid "guix lint"
 msgstr "guix lint"
 
 #. type: cindex
-#: doc/guix.texi:9730
+#: doc/guix.texi:11553
 #, no-wrap
 msgid "package, checking for errors"
 msgstr "Pakete, auf Fehler prüfen"
 
 #. type: Plain text
-#: doc/guix.texi:9736
-msgid "The @command{guix lint} command is meant to help package developers avoid common errors and use a consistent style.  It runs a number of checks on a given set of packages in order to find common mistakes in their definitions.  Available @dfn{checkers} include (see @code{--list-checkers} for a complete list):"
-msgstr "Den Befehl @command{guix lint} gibt es, um Paketentwicklern beim Vermeiden häufiger Fehler und bei der Einhaltung eines konsistenten Code-Stils zu helfen. Er führt eine Reihe von Prüfungen auf einer angegebenen Menge von Paketen durch, um in deren Definition häufige Fehler aufzuspüren. Zu den verfügbaren @dfn{Prüfern} gehören (siehe @code{--list-checkers} für eine vollständige Liste):"
+#: doc/guix.texi:11559
+msgid "The @command{guix lint} command is meant to help package developers avoid common errors and use a consistent style.  It runs a number of checks on a given set of packages in order to find common mistakes in their definitions.  Available @dfn{checkers} include (see @option{--list-checkers} for a complete list):"
+msgstr "Den Befehl @command{guix lint} gibt es, um Paketentwicklern beim Vermeiden häufiger Fehler und bei der Einhaltung eines konsistenten Code-Stils zu helfen. Er führt eine Reihe von Prüfungen auf einer angegebenen Menge von Paketen durch, um in deren Definition häufige Fehler aufzuspüren. Zu den verfügbaren @dfn{Prüfern} gehören (siehe @option{--list-checkers} für eine vollständige Liste):"
 
 #. type: table
-#: doc/guix.texi:9742
+#: doc/guix.texi:11565
 msgid "Validate certain typographical and stylistic rules about package descriptions and synopses."
 msgstr "Überprüfen, ob bestimmte typografische und stilistische Regeln in Paketbeschreibungen und -zusammenfassungen eingehalten wurden."
 
 #. type: item
-#: doc/guix.texi:9743
+#: doc/guix.texi:11566
 #, no-wrap
 msgid "inputs-should-be-native"
 msgstr "inputs-should-be-native"
 
 #. type: table
-#: doc/guix.texi:9745
+#: doc/guix.texi:11568
 msgid "Identify inputs that should most likely be native inputs."
 msgstr "Eingaben identifizieren, die wahrscheinlich native Eingaben sein sollten."
 
 #. type: itemx
-#: doc/guix.texi:9748
+#: doc/guix.texi:11571
 #, no-wrap
 msgid "mirror-url"
 msgstr "mirror-url"
 
 #. type: itemx
-#: doc/guix.texi:9749
+#: doc/guix.texi:11572
 #, no-wrap
 msgid "github-url"
 msgstr "github-url"
 
 #. type: itemx
-#: doc/guix.texi:9750
+#: doc/guix.texi:11573
 #, no-wrap
 msgid "source-file-name"
 msgstr "source-file-name"
 
 #. type: table
-#: doc/guix.texi:9757
+#: doc/guix.texi:11580
 msgid "Probe @code{home-page} and @code{source} URLs and report those that are invalid.  Suggest a @code{mirror://} URL when applicable.  If the @code{source} URL redirects to a GitHub URL, recommend usage of the GitHub URL.  Check that the source file name is meaningful, e.g.@: is not just a version number or ``git-checkout'', without a declared @code{file-name} (@pxref{origin Reference})."
 msgstr "Die URLs für die Felder @code{home-page} und @code{source} anrufen und nicht erreichbare URLs melden. Wenn passend, wird eine @code{mirror://}-URL vorgeschlagen. Wenn die Quell-URL auf eine GitHub-URL weiterleitet, wird eine Empfehlung ausgegeben, direkt letztere zu verwenden. Es wird geprüft, dass der Quell-Dateiname aussagekräftig ist, dass er also z.B.@: nicht nur aus einer Versionsnummer besteht oder als „git-checkout“ angegeben wurde, ohne dass ein @code{Dateiname} deklariert wurde (siehe @ref{origin Reference})."
 
 #. type: item
-#: doc/guix.texi:9758
+#: doc/guix.texi:11581
 #, no-wrap
 msgid "source-unstable-tarball"
 msgstr "source-unstable-tarball"
 
 #. type: table
-#: doc/guix.texi:9762
+#: doc/guix.texi:11585
 msgid "Parse the @code{source} URL to determine if a tarball from GitHub is autogenerated or if it is a release tarball.  Unfortunately GitHub's autogenerated tarballs are sometimes regenerated."
 msgstr "Analysiert die @code{source}-URL, um zu bestimmen, ob der Tarball von GitHub automatisch generiert wurde oder zu einer Veröffentlichung gehört. Leider werden GitHubs automatisch generierte Tarballs manchmal neu generiert."
 
+#. type: table
+#: doc/guix.texi:11589
+msgid "Check that the derivation of the given packages can be successfully computed for all the supported systems (@pxref{Derivations})."
+msgstr "Prüft, ob die Ableitung der angegebenen Pakete auf allen unterstützten Systmen erfolgreich berechnet werden kann (siehe @ref{Derivations})."
+
 #. type: item
-#: doc/guix.texi:9763
+#: doc/guix.texi:11590
+#, no-wrap
+msgid "profile-collisions"
+msgstr "profile-collisions"
+
+#. type: table
+#: doc/guix.texi:11596
+msgid "Check whether installing the given packages in a profile would lead to collisions.  Collisions occur when several packages with the same name but a different version or a different store file name are propagated.  @xref{package Reference, @code{propagated-inputs}}, for more information on propagated inputs."
+msgstr "Prüft, ob die Installation der angegebenen Pakete in ein Profil zu Kollisionen führen würde. Kollisionen treten auf, wenn mehrere Pakete mit demselben Namen aber anderer Versionsnummer oder anderem Store-Dateinamen propagiert werden. Siehe @ref{package Reference, @code{propagated-inputs}} für weitere Informationen zu propagierten Eingaben."
+
+#. type: item
+#: doc/guix.texi:11597
 #, no-wrap
 msgid "archival"
 msgstr "archival"
 
 #. type: cindex
-#: doc/guix.texi:9764
+#: doc/guix.texi:11598
 #, no-wrap
 msgid "Software Heritage, source code archive"
 msgstr "Software Heritage, Quellcode-Archiv"
 
 #. type: cindex
-#: doc/guix.texi:9765
+#: doc/guix.texi:11599
 #, no-wrap
 msgid "archival of source code, Software Heritage"
 msgstr "Archivierung von Quellcode, Software Heritage"
 
 #. type: table
-#: doc/guix.texi:9768
+#: doc/guix.texi:11602
 msgid "Checks whether the package's source code is archived at @uref{https://www.softwareheritage.org, Software Heritage}."
 msgstr "Überprüft, ob der Quellcode des Pakets bei der @uref{https://www.softwareheritage.org, Software Heritage} archiviert ist."
 
 #. type: table
-#: doc/guix.texi:9776
+#: doc/guix.texi:11610
 msgid "When the source code that is not archived comes from a version-control system (VCS)---e.g., it's obtained with @code{git-fetch}, send Software Heritage a ``save'' request so that it eventually archives it.  This ensures that the source will remain available in the long term, and that Guix can fall back to Software Heritage should the source code disappear from its original host.  The status of recent ``save'' requests can be @uref{https://archive.softwareheritage.org/save/#requests, viewed on-line}."
 msgstr "Wenn der noch nicht archivierte Quellcode aus einem Versionskontrollsystem („Version Control System“, VCS) stammt, wenn er also z.B.@: mit @code{git-fetch} bezogen wird, wird eine Anfrage an Software Heritage gestellt, diesen zu speichern („Save“), damit sie ihn irgendwann in deren Archiv aufnehmen. So wird gewährleistet, dass der Quellcode langfristig verfügbar bleibt und Guix notfalls auf Software Heritage zurückgreifen kann, falls der Quellcode bei seinem ursprünglichen Anbieter verschwindet. Der Status kürzlicher Archivierungsanfragen kann @uref{https://archive.softwareheritage.org/save/#requests, online eingesehen werden}."
 
 #. type: table
-#: doc/guix.texi:9781
+#: doc/guix.texi:11615
 msgid "When source code is a tarball obtained with @code{url-fetch}, simply print a message when it is not archived.  As of this writing, Software Heritage does not allow requests to save arbitrary tarballs; we are working on ways to ensure that non-VCS source code is also archived."
 msgstr "Wenn der Quellcode in Form eines über @code{url-fetch} zu beziehenden Tarballs vorliegt, wird bloß eine Nachricht ausgegeben, wenn er nicht archiviert ist. Zum Zeitpunkt, wo dies geschrieben wurde, ermöglicht Software Heritage keine Anfragen, beliebige Tarballs zu archivieren; wir arbeiten an Möglichkeiten wie auch @emph{nicht} versionskontrollierter Quellcode archiviert werden kann."
 
 #. type: table
-#: doc/guix.texi:9787
+#: doc/guix.texi:11621
 msgid "Software Heritage @uref{https://archive.softwareheritage.org/api/#rate-limiting, limits the request rate per IP address}.  When the limit is reached, @command{guix lint} prints a message and the @code{archival} checker stops doing anything until that limit has been reset."
 msgstr "Software Heritage @uref{https://archive.softwareheritage.org/api/#rate-limiting, beschränkt}, wie schnell dieselbe IP-Adresse Anfragen stellen kann. Ist das Limit erreicht, gibt @command{guix lint} eine Mitteilung aus und der @code{archival}-Prüfer steht so lange still, bis die Beschränkung wieder zurückgesetzt wurde."
 
 #. type: item
-#: doc/guix.texi:9788
+#: doc/guix.texi:11622
 #, no-wrap
 msgid "cve"
 msgstr "cve"
 
 #. type: cindex
-#: doc/guix.texi:9789 doc/guix.texi:28113
+#: doc/guix.texi:11623 doc/guix.texi:32372
 #, no-wrap
 msgid "security vulnerabilities"
 msgstr "Sicherheitslücken"
 
 #. type: cindex
-#: doc/guix.texi:9790
+#: doc/guix.texi:11624
 #, no-wrap
 msgid "CVE, Common Vulnerabilities and Exposures"
 msgstr "CVE, Common Vulnerabilities and Exposures"
 
 #. type: table
-#: doc/guix.texi:9795
+#: doc/guix.texi:11629
 msgid "Report known vulnerabilities found in the Common Vulnerabilities and Exposures (CVE) databases of the current and past year @uref{https://nvd.nist.gov/vuln/data-feeds, published by the US NIST}."
 msgstr "Bekannte Sicherheitslücken melden, die in den Datenbanken der „Common Vulnerabilities and Exposures“ (CVE) aus diesem und dem letzten Jahr vorkommen, @uref{https://nvd.nist.gov/vuln/data-feeds, wie sie von der US-amerikanischen NIST veröffentlicht werden}."
 
 #. type: table
-#: doc/guix.texi:9797
+#: doc/guix.texi:11631
 msgid "To view information about a particular vulnerability, visit pages such as:"
 msgstr "Um Informationen über eine bestimmte Sicherheitslücke angezeigt zu bekommen, besuchen Sie Webseiten wie:"
 
 #. type: indicateurl{#1}
-#: doc/guix.texi:9801
+#: doc/guix.texi:11635
 msgid "https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-YYYY-ABCD"
 msgstr "https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-YYYY-ABCD"
 
 #. type: indicateurl{#1}
-#: doc/guix.texi:9803
+#: doc/guix.texi:11637
 msgid "https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-YYYY-ABCD"
 msgstr "https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-YYYY-ABCD"
 
 #. type: table
-#: doc/guix.texi:9808
+#: doc/guix.texi:11642
 msgid "where @code{CVE-YYYY-ABCD} is the CVE identifier---e.g., @code{CVE-2015-7554}."
 msgstr "wobei Sie statt @code{CVE-YYYY-ABCD} die CVE-Kennnummer angeben — z.B.@: @code{CVE-2015-7554}."
 
 #. type: table
-#: doc/guix.texi:9813
+#: doc/guix.texi:11647
 msgid "Package developers can specify in package recipes the @uref{https://nvd.nist.gov/products/cpe,Common Platform Enumeration (CPE)} name and version of the package when they differ from the name or version that Guix uses, as in this example:"
 msgstr "Paketentwickler können in ihren Paketrezepten den Namen und die Version des Pakets in der @uref{https://nvd.nist.gov/products/cpe,Common Platform Enumeration (CPE)} angeben, falls sich diese von dem in Guix benutzten Namen und der Version unterscheiden, zum Beispiel so:"
 
 #. type: lisp
-#: doc/guix.texi:9821
+#: doc/guix.texi:11655
 #, no-wrap
 msgid ""
 "(package\n"
@@ -18182,12 +21250,12 @@ msgstr ""
 "                (cpe-version . \"2.3\"))))\n"
 
 #. type: table
-#: doc/guix.texi:9828
+#: doc/guix.texi:11662
 msgid "Some entries in the CVE database do not specify which version of a package they apply to, and would thus ``stick around'' forever.  Package developers who found CVE alerts and verified they can be ignored can declare them as in this example:"
 msgstr "Manche Einträge in der CVE-Datenbank geben die Version des Pakets nicht an, auf das sie sich beziehen, und würden daher bis in alle Ewigkeit Warnungen auslösen. Paketentwickler, die CVE-Warnmeldungen gefunden und geprüft haben, dass diese ignoriert werden können, können sie wie in diesem Beispiel deklarieren:"
 
 #. type: lisp
-#: doc/guix.texi:9838
+#: doc/guix.texi:11672
 #, no-wrap
 msgid ""
 "(package\n"
@@ -18210,91 +21278,113 @@ msgstr ""
 "                                    \"CVE-2011-5244\")))))\n"
 
 #. type: item
-#: doc/guix.texi:9840
+#: doc/guix.texi:11674
 #, no-wrap
 msgid "formatting"
 msgstr "Formatierung"
 
 #. type: table
-#: doc/guix.texi:9843
+#: doc/guix.texi:11677
 msgid "Warn about obvious source code formatting issues: trailing white space, use of tabulations, etc."
 msgstr "Offensichtliche Fehler bei der Formatierung von Quellcode melden, z.B.@: Leerraum-Zeichen am Zeilenende oder Nutzung von Tabulatorzeichen."
 
 #. type: example
-#: doc/guix.texi:9849
+#: doc/guix.texi:11683
 #, no-wrap
 msgid "guix lint @var{options} @var{package}@dots{}\n"
 msgstr "guix lint @var{Optionen} @var{Pakete}…\n"
 
 #. type: Plain text
-#: doc/guix.texi:9853
+#: doc/guix.texi:11687
 msgid "If no package is given on the command line, then all packages are checked.  The @var{options} may be zero or more of the following:"
 msgstr "Wird kein Paket auf der Befehlszeile angegeben, dann werden alle Pakete geprüft, die es gibt. Als @var{Optionen} können null oder mehr der folgenden Befehlszeilenoptionen übergeben werden:"
 
 #. type: item
-#: doc/guix.texi:9855
+#: doc/guix.texi:11689
 #, no-wrap
 msgid "--list-checkers"
 msgstr "--list-checkers"
 
 #. type: table
-#: doc/guix.texi:9859
+#: doc/guix.texi:11693
 msgid "List and describe all the available checkers that will be run on packages and exit."
 msgstr "Alle verfügbaren Prüfer für die Pakete auflisten und beschreiben."
 
 #. type: item
-#: doc/guix.texi:9860
+#: doc/guix.texi:11694
 #, no-wrap
 msgid "--checkers"
 msgstr "--checkers"
 
 #. type: itemx
-#: doc/guix.texi:9861
+#: doc/guix.texi:11695
 #, no-wrap
 msgid "-c"
 msgstr "-c"
 
 #. type: table
-#: doc/guix.texi:9864
-msgid "Only enable the checkers specified in a comma-separated list using the names returned by @code{--list-checkers}."
-msgstr "Nur die Prüfer aktivieren, die hiernach in einer kommagetrennten Liste aus von @code{--list-checkers} aufgeführten Prüfern vorkommen."
+#: doc/guix.texi:11698
+msgid "Only enable the checkers specified in a comma-separated list using the names returned by @option{--list-checkers}."
+msgstr "Nur die Prüfer aktivieren, die hiernach in einer kommagetrennten Liste aus von @option{--list-checkers} aufgeführten Prüfern vorkommen."
+
+#. type: item
+#: doc/guix.texi:11699
+#, no-wrap
+msgid "--exclude"
+msgstr "--exclude"
+
+#. type: table
+#: doc/guix.texi:11703
+msgid "Only disable the checkers specified in a comma-separated list using the names returned by @option{--list-checkers}."
+msgstr "Nur die Prüfer deaktivieren, die hiernach in einer kommagetrennten Liste aus von @option{--list-checkers} aufgeführten Prüfern vorkommen."
+
+#. type: item
+#: doc/guix.texi:11704
+#, no-wrap
+msgid "--no-network"
+msgstr "--no-network"
+
+#. type: table
+#: doc/guix.texi:11707
+msgid "Only enable the checkers that do not depend on Internet access."
+msgstr "Nur die Prüfer aktivieren, die keinen Internetzugang benötigen."
 
 #. type: section
-#: doc/guix.texi:9876
+#: doc/guix.texi:11719
 #, no-wrap
 msgid "Invoking @command{guix size}"
 msgstr "@command{guix size} aufrufen"
 
 #. type: code{#1}
-#: doc/guix.texi:9878 doc/guix.texi:27210
+#: doc/guix.texi:11721 doc/guix.texi:31374
 #, no-wrap
 msgid "size"
 msgstr "Größe"
 
 #. type: cindex
-#: doc/guix.texi:9879
+#: doc/guix.texi:11722
 #, no-wrap
 msgid "package size"
 msgstr "Paketgröße"
 
 #. type: command{#1}
-#: doc/guix.texi:9881
+#: doc/guix.texi:11724
 #, no-wrap
 msgid "guix size"
 msgstr "guix size"
 
 #. type: Plain text
-#: doc/guix.texi:9888
+#: doc/guix.texi:11731
 msgid "The @command{guix size} command helps package developers profile the disk usage of packages.  It is easy to overlook the impact of an additional dependency added to a package, or the impact of using a single output for a package that could easily be split (@pxref{Packages with Multiple Outputs}).  Such are the typical issues that @command{guix size} can highlight."
 msgstr "Der Befehl @command{guix size} hilft Paketentwicklern dabei, den Plattenplatzverbrauch von Paketen zu profilieren. Es ist leicht, die Auswirkungen zu unterschätzen, die das Hinzufügen zusätzlicher Abhängigkeiten zu einem Paket hat oder die das Verwenden einer einzelnen Ausgabe für ein leicht aufteilbares Paket ausmacht (siehe @ref{Packages with Multiple Outputs}). Das sind typische Probleme, auf die @command{guix size} aufmerksam machen kann."
 
 #. type: Plain text
-#: doc/guix.texi:9893
+#: doc/guix.texi:11736
 msgid "The command can be passed one or more package specifications such as @code{gcc@@4.8} or @code{guile:debug}, or a file name in the store.  Consider this example:"
 msgstr "Dem Befehl können eine oder mehrere Paketspezifikationen wie @code{gcc@@4.8} oder @code{guile:debug} übergeben werden, oder ein Dateiname im Store. Betrachten Sie dieses Beispiel:"
 
 #. type: example
-#: doc/guix.texi:9906
+#: doc/guix.texi:11749
 #, no-wrap
 msgid ""
 "$ guix size coreutils\n"
@@ -18322,43 +21412,54 @@ msgstr ""
 "Gesamt: 78.9 MiB\n"
 
 #. type: Plain text
-#: doc/guix.texi:9912
+#: doc/guix.texi:11755
 msgid "The store items listed here constitute the @dfn{transitive closure} of Coreutils---i.e., Coreutils and all its dependencies, recursively---as would be returned by:"
 msgstr "Die hier aufgelisteten Store-Objekte bilden den @dfn{transitiven Abschluss} der Coreutils — d.h.@: die Coreutils und all ihre Abhängigkeiten und deren Abhängigkeiten, rekursiv —, wie sie hiervon angezeigt würden:<f"
 
 #. type: example
-#: doc/guix.texi:9915
+#: doc/guix.texi:11758
 #, no-wrap
 msgid "$ guix gc -R /gnu/store/@dots{}-coreutils-8.23\n"
 msgstr "$ guix gc -R /gnu/store/…-coreutils-8.23\n"
 
 #. type: Plain text
-#: doc/guix.texi:9923
+#: doc/guix.texi:11766
 msgid "Here the output shows three columns next to store items.  The first column, labeled ``total'', shows the size in mebibytes (MiB) of the closure of the store item---that is, its own size plus the size of all its dependencies.  The next column, labeled ``self'', shows the size of the item itself.  The last column shows the ratio of the size of the item itself to the space occupied by all the items listed here."
-msgstr "Hier zeigt die Ausgabe neben den Store-Objekten noch drei Spalten. Die erste Spalte namens „Gesamt“ gibt wieder, wieviele Mebibytes (MiB) der Abschluss des Store-Objekts groß ist — das heißt, dessen eigene Größe plus die Größe all seiner Abhängigkeiten. Die nächste Spalte, bezeichnet mit „Selbst“, zeigt die Größe nur dieses Objekts an. Die letzte Spalte zeigt das Verhältnis der Größe des Objekts zur Gesamtgröße aller hier aufgelisteten Objekte an."
+msgstr "Hier zeigt die Ausgabe neben den Store-Objekten noch drei Spalten. Die erste Spalte namens „Gesamt“ gibt wieder, wie viele Mebibytes (MiB) der Abschluss des Store-Objekts groß ist — das heißt, dessen eigene Größe plus die Größe all seiner Abhängigkeiten. Die nächste Spalte, bezeichnet mit „Selbst“, zeigt die Größe nur dieses Objekts an. Die letzte Spalte zeigt das Verhältnis der Größe des Objekts zur Gesamtgröße aller hier aufgelisteten Objekte an."
 
 #. type: Plain text
-#: doc/guix.texi:9929
+#: doc/guix.texi:11772
 msgid "In this example, we see that the closure of Coreutils weighs in at 79@tie{}MiB, most of which is taken by libc and GCC's run-time support libraries.  (That libc and GCC's libraries represent a large fraction of the closure is not a problem @i{per se} because they are always available on the system anyway.)"
 msgstr "In diesem Beispiel sehen wir, dass der Abschluss der Coreutils 79@tie{}MiB schwer ist, wovon das meiste durch libc und die Bibliotheken zur Laufzeitunterstützung von GCC ausgemacht wird. (Dass libc und die Bibliotheken vom GCC einen großen Anteil am Abschluss ausmachen, ist aber an sich noch kein Problem, weil es Bibliotheken sind, die auf dem System sowieso immer verfügbar sein müssen.)"
 
 #. type: Plain text
-#: doc/guix.texi:9938
+#: doc/guix.texi:11775
+msgid "Since the command also accepts store file names, assessing the size of a build result is straightforward:"
+msgstr "Weil der Befehl auch Namen von Store-Dateien akzeptiert, kann man damit auch die Größe eines Erstellungsergebnisses ermitteln:"
+
+#. type: example
+#: doc/guix.texi:11778
+#, no-wrap
+msgid "guix size $(guix system build config.scm)\n"
+msgstr "guix size $(guix system build config.scm)\n"
+
+#. type: Plain text
+#: doc/guix.texi:11788
 msgid "When the package(s) passed to @command{guix size} are available in the store@footnote{More precisely, @command{guix size} looks for the @emph{ungrafted} variant of the given package(s), as returned by @code{guix build @var{package} --no-grafts}.  @xref{Security Updates}, for information on grafts.}, @command{guix size} queries the daemon to determine its dependencies, and measures its size in the store, similar to @command{du -ms --apparent-size} (@pxref{du invocation,,, coreutils, GNU Coreutils})."
 msgstr "Wenn das oder die Paket(e), die an @command{guix size} übergeben wurden, im Store verfügbar sind@footnote{Genauer gesagt braucht @command{guix size} die @emph{nicht veredelte} Variante des angegebenen Pakets bzw. der Pakete, wie @code{guix build @var{Paket} --no-grafts} sie liefert. Siehe @ref{Security Updates} für Informationen über Veredelungen.}, beauftragen Sie mit @command{guix size} den Daemon, die Abhängigkeiten davon zu bestimmen und deren Größe im Store zu messen, ähnlich wie es mit @command{du -ms --apparent-size} geschehen würde (siehe @ref{du invocation,,, coreutils, GNU Coreutils})."
 
 #. type: Plain text
-#: doc/guix.texi:9943
+#: doc/guix.texi:11793
 msgid "When the given packages are @emph{not} in the store, @command{guix size} reports information based on the available substitutes (@pxref{Substitutes}).  This makes it possible it to profile disk usage of store items that are not even on disk, only available remotely."
 msgstr "Wenn die übergebenen Pakete @emph{nicht} im Store liegen, erstattet @command{guix size} Bericht mit Informationen, die aus verfügbaren Substituten herausgelesen werden (siehe @ref{Substitutes}). Dadurch kann die Plattenausnutzung von Store-Objekten profiliert werden, die gar nicht auf der Platte liegen und nur auf entfernten Rechnern vorhanden sind."
 
 #. type: Plain text
-#: doc/guix.texi:9945
+#: doc/guix.texi:11795
 msgid "You can also specify several package names:"
 msgstr "Sie können auch mehrere Paketnamen angeben:"
 
 #. type: example
-#: doc/guix.texi:9955
+#: doc/guix.texi:11805
 #, no-wrap
 msgid ""
 "$ guix size coreutils grep sed bash\n"
@@ -18380,736 +21481,840 @@ msgstr ""
 "Gesamt: 102.3 MiB\n"
 
 #. type: Plain text
-#: doc/guix.texi:9961
+#: doc/guix.texi:11811
 msgid "In this example we see that the combination of the four packages takes 102.3@tie{}MiB in total, which is much less than the sum of each closure since they have a lot of dependencies in common."
 msgstr "In diesem Beispiel sehen wir, dass die Kombination der vier Pakete insgesamt 102,3@tie{}MiB Platz verbraucht, was wesentlich weniger als die Summe der einzelnen Abschlüsse ist, weil diese viele Abhängigkeiten gemeinsam verwenden."
 
 #. type: Plain text
-#: doc/guix.texi:9963
+#: doc/guix.texi:11817
+msgid "When looking at the profile returned by @command{guix size}, you may find yourself wondering why a given package shows up in the profile at all.  To understand it, you can use @command{guix graph --path -t references} to display the shortest path between the two packages (@pxref{Invoking guix graph})."
+msgstr "Wenn Sie sich das von @command{guix size} gelieferte Profil anschauen, fragen Sie sich vielleicht, warum ein bestimmtes Paket überhaupt darin auftaucht. Den Grund erfahren Sie, wenn Sie @command{guix graph --path -t references} benutzen, um sich den kürzesten Pfad zwischen zwei Paketen anzeigen zu lassen (siehe @ref{Invoking guix graph})."
+
+#. type: Plain text
+#: doc/guix.texi:11819
 msgid "The available options are:"
 msgstr "Die verfügbaren Befehlszeilenoptionen sind:"
 
 #. type: table
-#: doc/guix.texi:9969
+#: doc/guix.texi:11825
 msgid "Use substitute information from @var{urls}.  @xref{client-substitute-urls, the same option for @code{guix build}}."
 msgstr "Substitutinformationen von den @var{URLs} benutzen. Siehe @ref{client-substitute-urls, dieselbe Option bei @code{guix build}}."
 
 #. type: item
-#: doc/guix.texi:9970
+#: doc/guix.texi:11826
 #, no-wrap
 msgid "--sort=@var{key}"
 msgstr "--sort=@var{Schlüssel}"
 
 #. type: table
-#: doc/guix.texi:9972
+#: doc/guix.texi:11828
 msgid "Sort lines according to @var{key}, one of the following options:"
 msgstr "Zeilen anhand des @var{Schlüssel}s sortieren, der eine der folgenden Alternativen sein muss:"
 
 #. type: item
-#: doc/guix.texi:9974
+#: doc/guix.texi:11830
 #, no-wrap
 msgid "self"
 msgstr "self"
 
 #. type: table
-#: doc/guix.texi:9976
+#: doc/guix.texi:11832
 msgid "the size of each item (the default);"
 msgstr "die Größe jedes Objekts (die Vorgabe),"
 
 #. type: table
-#: doc/guix.texi:9978
+#: doc/guix.texi:11834
 msgid "the total size of the item's closure."
 msgstr "die Gesamtgröße des Abschlusses des Objekts."
 
 #. type: item
-#: doc/guix.texi:9980
+#: doc/guix.texi:11836
 #, no-wrap
 msgid "--map-file=@var{file}"
 msgstr "--map-file=@var{Datei}"
 
 #. type: table
-#: doc/guix.texi:9982
+#: doc/guix.texi:11838
 msgid "Write a graphical map of disk usage in PNG format to @var{file}."
 msgstr "Eine grafische Darstellung des Plattenplatzverbrauchs als eine PNG-formatierte Karte in die @var{Datei} schreiben."
 
 #. type: table
-#: doc/guix.texi:9984
+#: doc/guix.texi:11840
 msgid "For the example above, the map looks like this:"
 msgstr "Für das Beispiel oben sieht die Karte so aus:"
 
 #. type: table
-#: doc/guix.texi:9987
+#: doc/guix.texi:11843
 msgid "@image{images/coreutils-size-map,5in,, map of Coreutils disk usage produced by @command{guix size}}"
 msgstr "@image{images/coreutils-size-map,5in,, Karte der Plattenausnutzung der Coreutils, erzeugt mit @command{guix size}}"
 
 #. type: table
-#: doc/guix.texi:9992
+#: doc/guix.texi:11848
 msgid "This option requires that @uref{https://wingolog.org/software/guile-charting/, Guile-Charting} be installed and visible in Guile's module search path.  When that is not the case, @command{guix size} fails as it tries to load it."
 msgstr "Diese Befehlszeilenoption setzt voraus, dass @uref{https://wingolog.org/software/guile-charting/, Guile-Charting} installiert und im Suchpfad für Guile-Module sichtbar ist. Falls nicht, schlägt @command{guix size} beim Versuch fehl, dieses Modul zu laden."
 
 #. type: table
-#: doc/guix.texi:9996
+#: doc/guix.texi:11852
 msgid "Consider packages for @var{system}---e.g., @code{x86_64-linux}."
 msgstr "Pakete für dieses @var{System} betrachten — z.B.@: für @code{x86_64-linux}."
 
 #. type: section
-#: doc/guix.texi:10007
+#: doc/guix.texi:11863
 #, no-wrap
 msgid "Invoking @command{guix graph}"
 msgstr "@command{guix graph} aufrufen"
 
 #. type: cindex
-#: doc/guix.texi:10009
+#: doc/guix.texi:11865
 #, no-wrap
 msgid "DAG"
 msgstr "DAG"
 
 #. type: command{#1}
-#: doc/guix.texi:10010
+#: doc/guix.texi:11866
 #, no-wrap
 msgid "guix graph"
 msgstr "guix graph"
 
 #. type: Plain text
-#: doc/guix.texi:10024
-msgid "Packages and their dependencies form a @dfn{graph}, specifically a directed acyclic graph (DAG).  It can quickly become difficult to have a mental model of the package DAG, so the @command{guix graph} command provides a visual representation of the DAG.  By default, @command{guix graph} emits a DAG representation in the input format of @uref{https://www.graphviz.org/, Graphviz}, so its output can be passed directly to the @command{dot} command of Graphviz.  It can also emit an HTML page with embedded JavaScript code to display a ``chord diagram'' in a Web browser, using the @uref{https://d3js.org/, d3.js} library, or emit Cypher queries to construct a graph in a graph database supporting the @uref{https://www.opencypher.org/, openCypher} query language.  The general syntax is:"
-msgstr "Pakete und ihre Abhängigkeiten bilden einen @dfn{Graphen}, genauer gesagt einen gerichteten azyklischen Graphen (englisch „Directed Acyclic Graph“, kurz DAG). Es kann schnell schwierig werden, ein Modell eines Paket-DAGs vor dem geistigen Auge zu behalten, weshalb der Befehl @command{guix graph} eine visuelle Darstellung des DAGs bietet. Das vorgegebene Verhalten von @command{guix graph} ist, eine DAG-Darstellung im Eingabeformat von @uref{https://www.graphviz.org/, Graphviz} auszugeben, damit die Ausgabe direkt an den Befehl @command{dot} aus Graphviz weitergeleitet werden kann. Es kann aber auch eine HTML-Seite mit eingebettetem JavaScript-Code ausgegeben werden, um ein Sehnendiagramm (englisch „Chord Diagram“) in einem Web-Browser anzuzeigen, mit Hilfe der Bibliothek @uref{https://d3js.org/, d3.js}, oder es können Cypher-Anfragen ausgegeben werden, mit denen eine die Anfragesprache @uref{https://www.opencypher.org/, openCypher} unterstützende Graph-Datenbank einen Graphen konstruieren kann. Die allgemeine Syntax ist:"
+#: doc/guix.texi:11881
+msgid "Packages and their dependencies form a @dfn{graph}, specifically a directed acyclic graph (DAG).  It can quickly become difficult to have a mental model of the package DAG, so the @command{guix graph} command provides a visual representation of the DAG.  By default, @command{guix graph} emits a DAG representation in the input format of @uref{https://www.graphviz.org/, Graphviz}, so its output can be passed directly to the @command{dot} command of Graphviz.  It can also emit an HTML page with embedded JavaScript code to display a ``chord diagram'' in a Web browser, using the @uref{https://d3js.org/, d3.js} library, or emit Cypher queries to construct a graph in a graph database supporting the @uref{https://www.opencypher.org/, openCypher} query language.  With @option{--path}, it simply displays the shortest path between two packages.  The general syntax is:"
+msgstr "Pakete und ihre Abhängigkeiten bilden einen @dfn{Graphen}, genauer gesagt einen gerichteten azyklischen Graphen (englisch „Directed Acyclic Graph“, kurz DAG). Es kann schnell schwierig werden, ein Modell eines Paket-DAGs vor dem geistigen Auge zu behalten, weshalb der Befehl @command{guix graph} eine visuelle Darstellung des DAGs bietet. Das vorgegebene Verhalten von @command{guix graph} ist, eine DAG-Darstellung im Eingabeformat von @uref{https://www.graphviz.org/, Graphviz} auszugeben, damit die Ausgabe direkt an den Befehl @command{dot} aus Graphviz weitergeleitet werden kann. Es kann aber auch eine HTML-Seite mit eingebettetem JavaScript-Code ausgegeben werden, um ein Sehnendiagramm (englisch „Chord Diagram“) in einem Web-Browser anzuzeigen, mit Hilfe der Bibliothek @uref{https://d3js.org/, d3.js}, oder es können Cypher-Anfragen ausgegeben werden, mit denen eine die Anfragesprache @uref{https://www.opencypher.org/, openCypher} unterstützende Graph-Datenbank einen Graphen konstruieren kann. Wenn Sie @option{--path} angeben, zeigt Guix Ihnen einfach nur den kürzesten Pfad zwischen zwei Paketen an. Die allgemeine Syntax ist:"
 
 #. type: example
-#: doc/guix.texi:10027
+#: doc/guix.texi:11884
 #, no-wrap
 msgid "guix graph @var{options} @var{package}@dots{}\n"
 msgstr "guix graph @var{Optionen} @var{Pakete}…\n"
 
 #. type: Plain text
-#: doc/guix.texi:10032
+#: doc/guix.texi:11889
 msgid "For example, the following command generates a PDF file representing the package DAG for the GNU@tie{}Core Utilities, showing its build-time dependencies:"
 msgstr "Zum Beispiel erzeugt der folgende Befehl eine PDF-Datei, die den Paket-DAG für die GNU@tie{}Core Utilities darstellt, welcher ihre Abhängigkeiten zur Erstellungszeit anzeigt:"
 
 #. type: example
-#: doc/guix.texi:10035
+#: doc/guix.texi:11892
 #, no-wrap
 msgid "guix graph coreutils | dot -Tpdf > dag.pdf\n"
 msgstr "guix graph coreutils | dot -Tpdf > dag.pdf\n"
 
 #. type: Plain text
-#: doc/guix.texi:10038
+#: doc/guix.texi:11895
 msgid "The output looks like this:"
 msgstr "Die Ausgabe sieht so aus:"
 
 #. type: Plain text
-#: doc/guix.texi:10040
+#: doc/guix.texi:11897
 msgid "@image{images/coreutils-graph,2in,,Dependency graph of the GNU Coreutils}"
 msgstr "@image{images/coreutils-graph,2in,,Abhängigkeitsgraph der GNU Coreutils}"
 
 #. type: Plain text
-#: doc/guix.texi:10042
+#: doc/guix.texi:11899
 msgid "Nice little graph, no?"
 msgstr "Ein netter, kleiner Graph, oder?"
 
 #. type: Plain text
-#: doc/guix.texi:10048
+#: doc/guix.texi:11902
+msgid "You may find it more pleasant to navigate the graph interactively with @command{xdot} (from the @code{xdot} package):"
+msgstr "Vielleicht ist es Ihnen aber lieber, den Graphen interaktiv mit dem @command{xdot}-Programm anzuschauen (aus dem Paket @code{xdot}):"
+
+#. type: example
+#: doc/guix.texi:11905
+#, no-wrap
+msgid "guix graph coreutils | xdot -\n"
+msgstr "guix graph coreutils | xdot -\n"
+
+#. type: Plain text
+#: doc/guix.texi:11912
 msgid "But there is more than one graph! The one above is concise: it is the graph of package objects, omitting implicit inputs such as GCC, libc, grep, etc.  It is often useful to have such a concise graph, but sometimes one may want to see more details.  @command{guix graph} supports several types of graphs, allowing you to choose the level of detail:"
 msgstr "Aber es gibt mehr als eine Art von Graph! Der Graph oben ist kurz und knapp: Es ist der Graph der Paketobjekte, ohne implizite Eingaben wie GCC, libc, grep und so weiter. Oft möchte man einen knappen Graphen sehen, aber manchmal will man auch mehr Details sehen. @command{guix graph} unterstützt mehrere Typen von Graphen; Sie können den Detailgrad auswählen."
 
 #. type: table
-#: doc/guix.texi:10054
+#: doc/guix.texi:11918
 msgid "This is the default type used in the example above.  It shows the DAG of package objects, excluding implicit dependencies.  It is concise, but filters out many details."
 msgstr "Der vorgegebene Typ aus dem Beispiel oben. Er zeigt den DAG der Paketobjekte ohne implizite Abhängigkeiten. Er ist knapp, filtert aber viele Details heraus."
 
 #. type: item
-#: doc/guix.texi:10055
+#: doc/guix.texi:11919
 #, no-wrap
 msgid "reverse-package"
 msgstr "reverse-package"
 
 #. type: table
-#: doc/guix.texi:10057
+#: doc/guix.texi:11921
 msgid "This shows the @emph{reverse} DAG of packages.  For example:"
 msgstr "Dies zeigt den @emph{umgekehrten} DAG der Pakete. Zum Beispiel liefert"
 
 #. type: example
-#: doc/guix.texi:10060
+#: doc/guix.texi:11924
 #, no-wrap
 msgid "guix graph --type=reverse-package ocaml\n"
 msgstr "guix graph --type=reverse-package ocaml\n"
 
 #. type: table
-#: doc/guix.texi:10065
-msgid "...@: yields the graph of packages that @emph{explicitly} depend on OCaml (if you are also interested in cases where OCaml is an implicit dependency, see @code{reverse-bag} below.)"
+#: doc/guix.texi:11929
+msgid "...@: yields the graph of packages that @emph{explicitly} depend on OCaml (if you are also interested in cases where OCaml is an implicit dependency, see @code{reverse-bag} below)."
 msgstr "…@: den Graphen der Pakete, die @emph{explizit} von OCaml abhängen (wenn Sie auch an Fällen interessiert sind, bei denen OCaml eine implizite Abhängigkeit ist, siehe @code{reverse-bag} weiter unten)."
 
 #. type: table
-#: doc/guix.texi:10070
+#: doc/guix.texi:11934
 msgid "Note that for core packages this can yield huge graphs.  If all you want is to know the number of packages that depend on a given package, use @command{guix refresh --list-dependent} (@pxref{Invoking guix refresh, @option{--list-dependent}})."
 msgstr "Beachten Sie, dass für Kernpakete damit gigantische Graphen entstehen können. Wenn Sie nur die Anzahl der Pakete wissen wollen, die von einem gegebenen Paket abhängen, benutzen Sie @command{guix refresh --list-dependent} (siehe @ref{Invoking guix refresh, @option{--list-dependent}})."
 
 #. type: item
-#: doc/guix.texi:10071
+#: doc/guix.texi:11935
 #, no-wrap
 msgid "bag-emerged"
 msgstr "bag-emerged"
 
 #. type: table
-#: doc/guix.texi:10073
+#: doc/guix.texi:11937
 msgid "This is the package DAG, @emph{including} implicit inputs."
 msgstr "Dies ist der Paket-DAG @emph{einschließlich} impliziter Eingaben."
 
 #. type: table
-#: doc/guix.texi:10075
+#: doc/guix.texi:11939
 msgid "For instance, the following command:"
 msgstr "Zum Beispiel liefert der folgende Befehl"
 
 #. type: example
-#: doc/guix.texi:10078
+#: doc/guix.texi:11942
 #, no-wrap
-msgid "guix graph --type=bag-emerged coreutils | dot -Tpdf > dag.pdf\n"
-msgstr "guix graph --type=bag-emerged coreutils | dot -Tpdf > dag.pdf\n"
+msgid "guix graph --type=bag-emerged coreutils\n"
+msgstr "guix graph --type=bag-emerged coreutils\n"
 
 #. type: table
-#: doc/guix.texi:10081
+#: doc/guix.texi:11945
 msgid "...@: yields this bigger graph:"
 msgstr "…@: diesen größeren Graphen:"
 
 #. type: table
-#: doc/guix.texi:10083
+#: doc/guix.texi:11947
 msgid "@image{images/coreutils-bag-graph,,5in,Detailed dependency graph of the GNU Coreutils}"
 msgstr "@image{images/coreutils-bag-graph,,5in,Detaillierter Abhängigkeitsgraph der GNU Coreutils}"
 
 #. type: table
-#: doc/guix.texi:10086
+#: doc/guix.texi:11950
 msgid "At the bottom of the graph, we see all the implicit inputs of @var{gnu-build-system} (@pxref{Build Systems, @code{gnu-build-system}})."
 msgstr "Am unteren Rand des Graphen sehen wir alle impliziten Eingaben des @var{gnu-build-system} (siehe @ref{Build Systems, @code{gnu-build-system}})."
 
 #. type: table
-#: doc/guix.texi:10090
+#: doc/guix.texi:11954
 msgid "Now, note that the dependencies of these implicit inputs---that is, the @dfn{bootstrap dependencies} (@pxref{Bootstrapping})---are not shown here, for conciseness."
 msgstr "Beachten Sie dabei aber, dass auch hier die Abhängigkeiten dieser impliziten Eingaben — d.h.@: die @dfn{Bootstrap-Abhängigkeiten} (siehe @ref{Bootstrapping}) — nicht gezeigt werden, damit der Graph knapper bleibt."
 
 #. type: item
-#: doc/guix.texi:10091
+#: doc/guix.texi:11955
 #, no-wrap
 msgid "bag"
 msgstr "bag"
 
 #. type: table
-#: doc/guix.texi:10094
+#: doc/guix.texi:11958
 msgid "Similar to @code{bag-emerged}, but this time including all the bootstrap dependencies."
 msgstr "Ähnlich wie @code{bag-emerged}, aber diesmal mit allen Bootstrap-Abhängigkeiten."
 
 #. type: item
-#: doc/guix.texi:10095
+#: doc/guix.texi:11959
 #, no-wrap
 msgid "bag-with-origins"
 msgstr "bag-with-origins"
 
 #. type: table
-#: doc/guix.texi:10097
+#: doc/guix.texi:11961
 msgid "Similar to @code{bag}, but also showing origins and their dependencies."
 msgstr "Ähnlich wie @code{bag}, aber auch mit den Ursprüngen und deren Abhängigkeiten."
 
 #. type: item
-#: doc/guix.texi:10098
+#: doc/guix.texi:11962
 #, no-wrap
 msgid "reverse-bag"
 msgstr "reverse-bag"
 
 #. type: table
-#: doc/guix.texi:10101
+#: doc/guix.texi:11965
 msgid "This shows the @emph{reverse} DAG of packages.  Unlike @code{reverse-package}, it also takes implicit dependencies into account.  For example:"
 msgstr "Dies zeigt den @emph{umgekehrten} DAG der Pakete. Anders als @code{reverse-package} werden auch implizite Abhängigkeiten berücksichtigt. Zum Beispiel liefert"
 
 #. type: example
-#: doc/guix.texi:10104
+#: doc/guix.texi:11968
 #, no-wrap
 msgid "guix graph -t reverse-bag dune\n"
 msgstr "guix graph -t reverse-bag dune\n"
 
 #. type: table
-#: doc/guix.texi:10111
+#: doc/guix.texi:11975
 msgid "...@: yields the graph of all packages that depend on Dune, directly or indirectly.  Since Dune is an @emph{implicit} dependency of many packages @i{via} @code{dune-build-system}, this shows a large number of packages, whereas @code{reverse-package} would show very few if any."
 msgstr "…@: den Graphen aller Pakete, die von Dune direkt oder indirekt abhängen. Weil Dune eine @emph{implizite} Abhängigkeit von vielen Paketen über das @code{dune-build-system} ist, zeigt er eine große Zahl von Paketen, während bei @code{reverse-package} nur sehr wenige bis gar keine zu sehen sind."
 
 #. type: table
-#: doc/guix.texi:10117
+#: doc/guix.texi:11981
 msgid "This is the most detailed representation: It shows the DAG of derivations (@pxref{Derivations}) and plain store items.  Compared to the above representation, many additional nodes are visible, including build scripts, patches, Guile modules, etc."
 msgstr "Diese Darstellung ist am detailliertesten: Sie zeigt den DAG der Ableitungen (siehe @ref{Derivations}) und der einfachen Store-Objekte. Verglichen mit obiger Darstellung sieht man viele zusätzliche Knoten einschließlich Erstellungs-Skripts, Patches, Guile-Module usw."
 
 #. type: table
-#: doc/guix.texi:10120
+#: doc/guix.texi:11984
 msgid "For this type of graph, it is also possible to pass a @file{.drv} file name instead of a package name, as in:"
 msgstr "Für diesen Typ Graph kann auch der Name einer @file{.drv}-Datei anstelle eines Paketnamens angegeben werden, etwa so:"
 
 #. type: example
-#: doc/guix.texi:10123
+#: doc/guix.texi:11987
 #, no-wrap
 msgid "guix graph -t derivation `guix system build -d my-config.scm`\n"
 msgstr "guix graph -t derivation `guix system build -d my-config.scm`\n"
 
 #. type: item
-#: doc/guix.texi:10125
+#: doc/guix.texi:11989
 #, no-wrap
 msgid "module"
 msgstr "module"
 
 #. type: table
-#: doc/guix.texi:10129
+#: doc/guix.texi:11993
 msgid "This is the graph of @dfn{package modules} (@pxref{Package Modules}).  For example, the following command shows the graph for the package module that defines the @code{guile} package:"
 msgstr "Dies ist der Graph der @dfn{Paketmodule} (siehe @ref{Package Modules}). Zum Beispiel zeigt der folgende Befehl den Graphen für das Paketmodul an, das das @code{guile}-Paket definiert:"
 
 #. type: example
-#: doc/guix.texi:10132
+#: doc/guix.texi:11996
 #, no-wrap
-msgid "guix graph -t module guile | dot -Tpdf > module-graph.pdf\n"
-msgstr "guix graph -t module guile | dot -Tpdf > modul-graph.pdf\n"
+msgid "guix graph -t module guile | xdot -\n"
+msgstr "guix graph -t module guile | xdot -\n"
 
 #. type: Plain text
-#: doc/guix.texi:10137
+#: doc/guix.texi:12001
 msgid "All the types above correspond to @emph{build-time dependencies}.  The following graph type represents the @emph{run-time dependencies}:"
 msgstr "Alle oben genannten Typen entsprechen @emph{Abhängigkeiten zur Erstellungszeit}. Der folgende Graphtyp repräsentiert die @emph{Abhängigkeiten zur Laufzeit}:"
 
 #. type: table
-#: doc/guix.texi:10142
+#: doc/guix.texi:12006
 msgid "This is the graph of @dfn{references} of a package output, as returned by @command{guix gc --references} (@pxref{Invoking guix gc})."
 msgstr "Dies ist der Graph der @dfn{Referenzen} einer Paketausgabe, wie @command{guix gc --references} sie liefert (siehe @ref{Invoking guix gc})."
 
 #. type: table
-#: doc/guix.texi:10145
+#: doc/guix.texi:12009
 msgid "If the given package output is not available in the store, @command{guix graph} attempts to obtain dependency information from substitutes."
 msgstr "Wenn die angegebene Paketausgabe im Store nicht verfügbar ist, versucht @command{guix graph}, die Abhängigkeitsinformationen aus Substituten zu holen."
 
 #. type: table
-#: doc/guix.texi:10149
+#: doc/guix.texi:12013
 msgid "Here you can also pass a store file name instead of a package name.  For example, the command below produces the reference graph of your profile (which can be big!):"
 msgstr "Hierbei können Sie auch einen Store-Dateinamen statt eines Paketnamens angeben. Zum Beispiel generiert der Befehl unten den Referenzgraphen Ihres Profils (der sehr groß werden kann!):"
 
 #. type: example
-#: doc/guix.texi:10152
+#: doc/guix.texi:12016
 #, no-wrap
 msgid "guix graph -t references `readlink -f ~/.guix-profile`\n"
 msgstr "guix graph -t references `readlink -f ~/.guix-profile`\n"
 
 #. type: item
-#: doc/guix.texi:10154
+#: doc/guix.texi:12018
 #, no-wrap
 msgid "referrers"
 msgstr "referrers"
 
 #. type: table
-#: doc/guix.texi:10157
+#: doc/guix.texi:12021
 msgid "This is the graph of the @dfn{referrers} of a store item, as returned by @command{guix gc --referrers} (@pxref{Invoking guix gc})."
 msgstr "Dies ist der Graph der ein Store-Objekt @dfn{referenzierenden} Objekte, wie @command{guix gc --referrers} sie liefern würde (siehe @ref{Invoking guix gc})."
 
 #. type: table
-#: doc/guix.texi:10163
+#: doc/guix.texi:12027
 msgid "This relies exclusively on local information from your store.  For instance, let us suppose that the current Inkscape is available in 10 profiles on your machine; @command{guix graph -t referrers inkscape} will show a graph rooted at Inkscape and with those 10 profiles linked to it."
 msgstr "Er basiert ausschließlich auf lokalen Informationen aus Ihrem Store. Nehmen wir zum Beispiel an, dass das aktuelle Inkscape in 10 Profilen verfügbar ist, dann wird @command{guix graph -t referrers inkscape} einen Graph zeigen, der bei Inkscape gewurzelt ist und Kanten zu diesen 10 Profilen hat."
 
 #. type: table
-#: doc/guix.texi:10166
+#: doc/guix.texi:12030
 msgid "It can help determine what is preventing a store item from being garbage collected."
 msgstr "Ein solcher Graph kann dabei helfen, herauszufinden, weshalb ein Store-Objekt nicht vom Müllsammler abgeholt werden kann."
 
+#. type: cindex
+#: doc/guix.texi:12033
+#, no-wrap
+msgid "shortest path, between packages"
+msgstr "kürzester Pfad, zwischen Paketen"
+
 #. type: Plain text
-#: doc/guix.texi:10170
+#: doc/guix.texi:12040
+msgid "Often, the graph of the package you are interested in does not fit on your screen, and anyway all you want to know is @emph{why} that package actually depends on some seemingly unrelated package.  The @option{--path} option instructs @command{guix graph} to display the shortest path between two packages (or derivations, or store items, etc.):"
+msgstr "Oftmals passt der Graph des Pakets, für das Sie sich interessieren, nicht auf Ihren Bildschirm, und überhaupt möchten Sie ja nur wissen, @emph{warum} das Paket von einem anderen abhängt, das scheinbar nichts damit zu tun hat. Die Befehlszeilenoption @option{--path} weist @command{guix graph} an, den kürzesten Pfad zwischen zwei Paketen (oder Ableitungen, Store-Objekten etc.)@: anzuzeigen:"
+
+#. type: example
+#: doc/guix.texi:12054
+#, no-wrap
+msgid ""
+"$ guix graph --path emacs libunistring\n"
+"emacs@@26.3\n"
+"mailutils@@3.9\n"
+"libunistring@@0.9.10\n"
+"$ guix graph --path -t derivation emacs libunistring\n"
+"/gnu/store/@dots{}-emacs-26.3.drv\n"
+"/gnu/store/@dots{}-mailutils-3.9.drv\n"
+"/gnu/store/@dots{}-libunistring-0.9.10.drv\n"
+"$ guix graph --path -t references emacs libunistring\n"
+"/gnu/store/@dots{}-emacs-26.3\n"
+"/gnu/store/@dots{}-libidn2-2.2.0\n"
+"/gnu/store/@dots{}-libunistring-0.9.10\n"
+msgstr ""
+"$ guix graph --path emacs libunistring\n"
+"emacs@@26.3\n"
+"mailutils@@3.9\n"
+"libunistring@@0.9.10\n"
+"$ guix graph --path -t derivation emacs libunistring\n"
+"/gnu/store/…-emacs-26.3.drv\n"
+"/gnu/store/…-mailutils-3.9.drv\n"
+"/gnu/store/…-libunistring-0.9.10.drv\n"
+"$ guix graph --path -t references emacs libunistring\n"
+"/gnu/store/…-emacs-26.3\n"
+"/gnu/store/…-libidn2-2.2.0\n"
+"/gnu/store/…-libunistring-0.9.10\n"
+
+#. type: Plain text
+#: doc/guix.texi:12057
 msgid "The available options are the following:"
 msgstr "Folgendes sind die verfügbaren Befehlszeilenoptionen:"
 
 #. type: table
-#: doc/guix.texi:10176
+#: doc/guix.texi:12063
 msgid "Produce a graph output of @var{type}, where @var{type} must be one of the values listed above."
 msgstr "Eine Graph-Ausgabe dieses @var{Typ}s generieren. Dieser @var{Typ} muss einer der oben genannten Werte sein."
 
 #. type: item
-#: doc/guix.texi:10177
+#: doc/guix.texi:12064
 #, no-wrap
 msgid "--list-types"
 msgstr "--list-types"
 
 #. type: table
-#: doc/guix.texi:10179
+#: doc/guix.texi:12066
 msgid "List the supported graph types."
 msgstr "Die unterstützten Graph-Typen auflisten."
 
 #. type: item
-#: doc/guix.texi:10180
+#: doc/guix.texi:12067
 #, no-wrap
 msgid "--backend=@var{backend}"
 msgstr "--backend=@var{Backend}"
 
 #. type: itemx
-#: doc/guix.texi:10181
+#: doc/guix.texi:12068
 #, no-wrap
 msgid "-b @var{backend}"
 msgstr "-b @var{Backend}"
 
 #. type: table
-#: doc/guix.texi:10183
+#: doc/guix.texi:12070
 msgid "Produce a graph using the selected @var{backend}."
 msgstr "Einen Graph mit Hilfe des ausgewählten @var{Backend}s generieren."
 
 #. type: item
-#: doc/guix.texi:10184
+#: doc/guix.texi:12071
 #, no-wrap
 msgid "--list-backends"
 msgstr "--list-backends"
 
 #. type: table
-#: doc/guix.texi:10186
+#: doc/guix.texi:12073
 msgid "List the supported graph backends."
 msgstr "Die unterstützten Graph-Backends auflisten."
 
 #. type: table
-#: doc/guix.texi:10188
+#: doc/guix.texi:12075
 msgid "Currently, the available backends are Graphviz and d3.js."
 msgstr "Derzeit sind die verfügbaren Backends Graphviz und d3.js."
 
+#. type: item
+#: doc/guix.texi:12076
+#, no-wrap
+msgid "--path"
+msgstr "--path"
+
+#. type: table
+#: doc/guix.texi:12081
+msgid "Display the shortest path between two nodes of the type specified by @option{--type}.  The example below shows the shortest path between @code{libreoffice} and @code{llvm} according to the references of @code{libreoffice}:"
+msgstr "Den kürzesten Pfad zwischen zwei Knoten anzeigen, die den mit @option{--type} angegebenen Typ aufweisen. Im Beispiel unten wird der kürzeste Pfad zwischen @code{libreoffice} und @code{llvm} anhand der Referenzen von @code{libreoffice} angezeigt:"
+
 #. type: example
-#: doc/guix.texi:10197
+#: doc/guix.texi:12088
+#, no-wrap
+msgid ""
+"$ guix graph --path -t references libreoffice llvm\n"
+"/gnu/store/@dots{}-libreoffice-6.4.2.2\n"
+"/gnu/store/@dots{}-libepoxy-1.5.4\n"
+"/gnu/store/@dots{}-mesa-19.3.4\n"
+"/gnu/store/@dots{}-llvm-9.0.1\n"
+msgstr ""
+"$ guix graph --path -t references libreoffice llvm\n"
+"/gnu/store/…-libreoffice-6.4.2.2\n"
+"/gnu/store/…-libepoxy-1.5.4\n"
+"/gnu/store/…-mesa-19.3.4\n"
+"/gnu/store/…-llvm-9.0.1\n"
+
+#. type: example
+#: doc/guix.texi:12098
 #, no-wrap
 msgid "guix graph -e '(@@@@ (gnu packages commencement) gnu-make-final)'\n"
 msgstr "guix graph -e '(@@@@ (gnu packages commencement) gnu-make-final)'\n"
 
 #. type: table
-#: doc/guix.texi:10202
+#: doc/guix.texi:12103
 msgid "Display the graph for @var{system}---e.g., @code{i686-linux}."
 msgstr "Den Graphen für das @var{System} anzeigen — z.B.@: @code{i686-linux}."
 
 #. type: table
-#: doc/guix.texi:10205
+#: doc/guix.texi:12106
 msgid "The package dependency graph is largely architecture-independent, but there are some architecture-dependent bits that this option allows you to visualize."
 msgstr "Der Abhängigkeitsgraph ist größtenteils von der Systemarchitektur unabhängig, aber ein paar architekturabhängige Teile können Ihnen mit dieser Befehlszeilenoption visualisiert werden."
 
 #. type: Plain text
-#: doc/guix.texi:10221
+#: doc/guix.texi:12122
 msgid "On top of that, @command{guix graph} supports all the usual package transformation options (@pxref{Package Transformation Options}).  This makes it easy to view the effect of a graph-rewriting transformation such as @option{--with-input}.  For example, the command below outputs the graph of @code{git} once @code{openssl} has been replaced by @code{libressl} everywhere in the graph:"
 msgstr "Hinzu kommt, dass @command{guix graph} auch all die üblichen Paketumwandlungsoptionen unterstützt (siehe @ref{Package Transformation Options}). Somit ist es kein Problem, die Folgen einer den Paketgraphen umschreibenden Umwandlung wie @option{--with-input} zu erkennen. Zum Beispiel gibt der folgende Befehl den Graphen von @code{git} aus, nachdem @code{openssl} an allen Stellen im Graphen durch @code{libressl} ersetzt wurde:"
 
 #. type: example
-#: doc/guix.texi:10224
+#: doc/guix.texi:12125
 #, no-wrap
 msgid "guix graph git --with-input=openssl=libressl\n"
 msgstr "guix graph git --with-input=openssl=libressl\n"
 
 #. type: Plain text
-#: doc/guix.texi:10227
+#: doc/guix.texi:12128
 msgid "So many possibilities, so much fun!"
 msgstr "Ihrem Vergnügen sind keine Grenzen gesetzt!"
 
 #. type: section
-#: doc/guix.texi:10229
+#: doc/guix.texi:12130
 #, no-wrap
 msgid "Invoking @command{guix publish}"
 msgstr "@command{guix publish} aufrufen"
 
 #. type: command{#1}
-#: doc/guix.texi:10231
+#: doc/guix.texi:12132
 #, no-wrap
 msgid "guix publish"
 msgstr "guix publish"
 
 #. type: Plain text
-#: doc/guix.texi:10235
+#: doc/guix.texi:12136
 msgid "The purpose of @command{guix publish} is to enable users to easily share their store with others, who can then use it as a substitute server (@pxref{Substitutes})."
 msgstr "Der Zweck von @command{guix publish} ist, es Nutzern zu ermöglichen, ihren Store auf einfache Weise mit anderen zu teilen, die ihn dann als Substitutserver einsetzen können (siehe @ref{Substitutes})."
 
 #. type: Plain text
-#: doc/guix.texi:10241
+#: doc/guix.texi:12142
 msgid "When @command{guix publish} runs, it spawns an HTTP server which allows anyone with network access to obtain substitutes from it.  This means that any machine running Guix can also act as if it were a build farm, since the HTTP interface is compatible with Cuirass, the software behind the @code{@value{SUBSTITUTE-SERVER}} build farm."
 msgstr "Wenn @command{guix publish} ausgeführt wird, wird dadurch ein HTTP-Server gestartet, so dass jeder mit Netzwerkzugang davon Substitute beziehen kann. Das bedeutet, dass jede Maschine, auf der Guix läuft, auch als Erstellungsfarm fungieren kann, weil die HTTP-Schnittstelle mit Cuirass, der Software, mit der die offizielle Erstellungsfarm @code{@value{SUBSTITUTE-SERVER}} betrieben wird, kompatibel ist."
 
 #. type: Plain text
-#: doc/guix.texi:10247
-msgid "For security, each substitute is signed, allowing recipients to check their authenticity and integrity (@pxref{Substitutes}).  Because @command{guix publish} uses the signing key of the system, which is only readable by the system administrator, it must be started as root; the @code{--user} option makes it drop root privileges early on."
-msgstr "Um Sicherheit zu gewährleisten, wird jedes Substitut signiert, so dass Empfänger dessen Authentizität und Integrität nachprüfen können (siehe @ref{Substitutes}). Weil @command{guix publish} den Signierschlüssel des Systems benutzt, der nur vom Systemadministrator gelesen werden kann, muss es als der Administratornutzer „root“ gestartet werden. Mit der Befehlszeilenoption @code{--user} werden Administratorrechte bald nach dem Start wieder abgelegt."
+#: doc/guix.texi:12148
+msgid "For security, each substitute is signed, allowing recipients to check their authenticity and integrity (@pxref{Substitutes}).  Because @command{guix publish} uses the signing key of the system, which is only readable by the system administrator, it must be started as root; the @option{--user} option makes it drop root privileges early on."
+msgstr "Um Sicherheit zu gewährleisten, wird jedes Substitut signiert, so dass Empfänger dessen Authentizität und Integrität nachprüfen können (siehe @ref{Substitutes}). Weil @command{guix publish} den Signierschlüssel des Systems benutzt, der nur vom Systemadministrator gelesen werden kann, muss es als der Administratornutzer „root“ gestartet werden. Mit der Befehlszeilenoption @option{--user} werden Administratorrechte bald nach dem Start wieder abgelegt."
 
 #. type: Plain text
-#: doc/guix.texi:10251
+#: doc/guix.texi:12152
 msgid "The signing key pair must be generated before @command{guix publish} is launched, using @command{guix archive --generate-key} (@pxref{Invoking guix archive})."
 msgstr "Das Schlüsselpaar zum Signieren muss erzeugt werden, bevor @command{guix publish} gestartet wird. Dazu können Sie @command{guix archive --generate-key} ausführen (siehe @ref{Invoking guix archive})."
 
 #. type: example
-#: doc/guix.texi:10256
+#: doc/guix.texi:12157
 #, no-wrap
 msgid "guix publish @var{options}@dots{}\n"
 msgstr "guix publish @var{Optionen}…\n"
 
 #. type: Plain text
-#: doc/guix.texi:10260
+#: doc/guix.texi:12161
 msgid "Running @command{guix publish} without any additional arguments will spawn an HTTP server on port 8080:"
 msgstr "Wird @command{guix publish} ohne weitere Argumente ausgeführt, wird damit ein HTTP-Server gestartet, der auf Port 8080 lauscht:"
 
 #. type: example
-#: doc/guix.texi:10263
+#: doc/guix.texi:12164
 #, no-wrap
 msgid "guix publish\n"
 msgstr "guix publish\n"
 
 #. type: Plain text
-#: doc/guix.texi:10267
-msgid "Once a publishing server has been authorized (@pxref{Invoking guix archive}), the daemon may download substitutes from it:"
-msgstr "Sobald ein Server zum Veröffentlichen autorisiert wurde (siehe @ref{Invoking guix archive}), kann der Daemon davon Substitute herunterladen:"
-
-#. type: example
-#: doc/guix.texi:10270
-#, no-wrap
-msgid "guix-daemon --substitute-urls=http://example.org:8080\n"
-msgstr "guix-daemon --substitute-urls=http://example.org:8080\n"
+#: doc/guix.texi:12168
+msgid "Once a publishing server has been authorized, the daemon may download substitutes from it.  @xref{Getting Substitutes from Other Servers}."
+msgstr "Sobald ein Server zum Veröffentlichen autorisiert wurde, kann der Daemon davon Substitute herunterladen. Siehe @ref{Getting Substitutes from Other Servers}."
 
 #. type: Plain text
-#: doc/guix.texi:10279
+#: doc/guix.texi:12176
 msgid "By default, @command{guix publish} compresses archives on the fly as it serves them.  This ``on-the-fly'' mode is convenient in that it requires no setup and is immediately available.  However, when serving lots of clients, we recommend using the @option{--cache} option, which enables caching of the archives before they are sent to clients---see below for details.  The @command{guix weather} command provides a handy way to check what a server provides (@pxref{Invoking guix weather})."
 msgstr "Nach den Voreinstellungen komprimiert @command{guix publish} Archive erst dann, wenn sie angefragt werden. Dieser „dynamische“ Modus bietet sich an, weil so nichts weiter eingerichtet werden muss und er direkt verfügbar ist. Wenn Sie allerdings viele Clients bedienen wollen, empfehlen wir, dass Sie die Befehlszeilenoption @option{--cache} benutzen, die das Zwischenspeichern der komprimierten Archive aktiviert, bevor diese an die Clients geschickt werden — siehe unten für Details. Mit dem Befehl @command{guix weather} haben Sie eine praktische Methode zur Hand, zu überprüfen, was so ein Server anbietet (siehe @ref{Invoking guix weather})."
 
 #. type: Plain text
-#: doc/guix.texi:10286
+#: doc/guix.texi:12183
 msgid "As a bonus, @command{guix publish} also serves as a content-addressed mirror for source files referenced in @code{origin} records (@pxref{origin Reference}).  For instance, assuming @command{guix publish} is running on @code{example.org}, the following URL returns the raw @file{hello-2.10.tar.gz} file with the given SHA256 hash (represented in @code{nix-base32} format, @pxref{Invoking guix hash}):"
 msgstr "Als Bonus dient @command{guix publish} auch als inhaltsadressierbarer Spiegelserver für Quelldateien, die in @code{origin}-Verbundsobjekten eingetragen sind (siehe @ref{origin Reference}). Wenn wir zum Beispiel annehmen, dass @command{guix publish} auf @code{example.org} läuft, liefert folgende URL die rohe @file{hello-2.10.tar.gz}-Datei mit dem angegebenen SHA256-Hash als ihre Prüfsumme (dargestellt im @code{nix-base32}-Format, siehe @ref{Invoking guix hash}):"
 
 #. type: example
-#: doc/guix.texi:10289
+#: doc/guix.texi:12186
 #, no-wrap
 msgid "http://example.org/file/hello-2.10.tar.gz/sha256/0ssi1@dots{}ndq1i\n"
 msgstr "http://example.org/file/hello-2.10.tar.gz/sha256/0ssi1…ndq1i\n"
 
 #. type: Plain text
-#: doc/guix.texi:10293
+#: doc/guix.texi:12190
 msgid "Obviously, these URLs only work for files that are in the store; in other cases, they return 404 (``Not Found'')."
 msgstr "Offensichtlich funktionieren diese URLs nur mit solchen Dateien, die auch im Store vorliegen; in anderen Fällen werden sie 404 („Nicht gefunden“) zurückliefern."
 
 #. type: cindex
-#: doc/guix.texi:10294
+#: doc/guix.texi:12191
 #, no-wrap
 msgid "build logs, publication"
 msgstr "Erstellungsprotokolle, Veröffentlichen"
 
 #. type: Plain text
-#: doc/guix.texi:10296
+#: doc/guix.texi:12193
 msgid "Build logs are available from @code{/log} URLs like:"
 msgstr "Erstellungsprotokolle sind unter @code{/log}-URLs abrufbar:"
 
 #. type: example
-#: doc/guix.texi:10299
+#: doc/guix.texi:12196
 #, no-wrap
 msgid "http://example.org/log/gwspk@dots{}-guile-2.2.3\n"
 msgstr "http://example.org/log/gwspk…-guile-2.2.3\n"
 
 #. type: Plain text
-#: doc/guix.texi:10309
-msgid "When @command{guix-daemon} is configured to save compressed build logs, as is the case by default (@pxref{Invoking guix-daemon}), @code{/log} URLs return the compressed log as-is, with an appropriate @code{Content-Type} and/or @code{Content-Encoding} header.  We recommend running @command{guix-daemon} with @code{--log-compression=gzip} since Web browsers can automatically decompress it, which is not the case with bzip2 compression."
-msgstr "Ist der @command{guix-daemon} so eingestellt, dass er Erstellungsprotokolle komprimiert abspeichert, wie es voreingestellt ist (siehe @ref{Invoking guix-daemon}), liefern @code{/log}-URLs das unveränderte komprimierte Protokoll, mit einer entsprechenden @code{Content-Type}- und/oder @code{Content-Encoding}-Kopfzeile. Wir empfehlen dabei, dass Sie den @command{guix-daemon} mit @code{--log-compression=gzip} ausführen, weil Web-Browser dieses Format automatisch dekomprimieren können, was bei bzip2-Kompression nicht der Fall ist."
+#: doc/guix.texi:12206
+msgid "When @command{guix-daemon} is configured to save compressed build logs, as is the case by default (@pxref{Invoking guix-daemon}), @code{/log} URLs return the compressed log as-is, with an appropriate @code{Content-Type} and/or @code{Content-Encoding} header.  We recommend running @command{guix-daemon} with @option{--log-compression=gzip} since Web browsers can automatically decompress it, which is not the case with Bzip2 compression."
+msgstr "Ist der @command{guix-daemon} so eingestellt, dass er Erstellungsprotokolle komprimiert abspeichert, wie es voreingestellt ist (siehe @ref{Invoking guix-daemon}), liefern @code{/log}-URLs das unveränderte komprimierte Protokoll, mit einer entsprechenden @code{Content-Type}- und/oder @code{Content-Encoding}-Kopfzeile. Wir empfehlen dabei, dass Sie den @command{guix-daemon} mit @option{--log-compression=gzip} ausführen, weil Web-Browser dieses Format automatisch dekomprimieren können, was bei Bzip2-Kompression nicht der Fall ist."
 
 #. type: item
-#: doc/guix.texi:10313
+#: doc/guix.texi:12210
 #, no-wrap
 msgid "--port=@var{port}"
 msgstr "--port=@var{Port}"
 
 #. type: itemx
-#: doc/guix.texi:10314
+#: doc/guix.texi:12211
 #, no-wrap
 msgid "-p @var{port}"
 msgstr "-p @var{Port}"
 
 #. type: table
-#: doc/guix.texi:10316
+#: doc/guix.texi:12213
 msgid "Listen for HTTP requests on @var{port}."
 msgstr "Auf HTTP-Anfragen auf diesem @var{Port} lauschen."
 
 #. type: item
-#: doc/guix.texi:10317
+#: doc/guix.texi:12214
 #, no-wrap
 msgid "--listen=@var{host}"
 msgstr "--listen=@var{Host}"
 
 #. type: table
-#: doc/guix.texi:10320
+#: doc/guix.texi:12217
 msgid "Listen on the network interface for @var{host}.  The default is to accept connections from any interface."
 msgstr "Auf der Netzwerkschnittstelle für den angegebenen @var{Host}, also der angegebenen Rechneradresse, lauschen. Vorgegeben ist, Verbindungen mit jeder Schnittstelle zu akzeptieren."
 
 #. type: table
-#: doc/guix.texi:10325
+#: doc/guix.texi:12222
 msgid "Change privileges to @var{user} as soon as possible---i.e., once the server socket is open and the signing key has been read."
 msgstr "So früh wie möglich alle über die Berechtigungen des @var{Benutzer}s hinausgehenden Berechtigungen ablegen — d.h.@: sobald der Server-Socket geöffnet und der Signierschlüssel gelesen wurde."
 
 #. type: item
-#: doc/guix.texi:10326
+#: doc/guix.texi:12223
 #, no-wrap
 msgid "--compression[=@var{method}[:@var{level}]]"
 msgstr "--compression[=@var{Methode}[:@var{Stufe}]]"
 
 #. type: itemx
-#: doc/guix.texi:10327
+#: doc/guix.texi:12224
 #, no-wrap
 msgid "-C [@var{method}[:@var{level}]]"
 msgstr "-C [@var{Methode}[:@var{Stufe}]]"
 
 #. type: table
-#: doc/guix.texi:10331
+#: doc/guix.texi:12228
 msgid "Compress data using the given @var{method} and @var{level}.  @var{method} is one of @code{lzip} and @code{gzip}; when @var{method} is omitted, @code{gzip} is used."
 msgstr "Daten auf der angegebenen Kompressions-@var{Stufe} mit der angegebenen @var{Methode} komprimieren. Als @var{Methode} kann entweder @code{lzip} oder @code{gzip} angegeben werden. Wird keine @var{Methode} angegeben, wird @code{gzip} benutzt."
 
 #. type: table
-#: doc/guix.texi:10335
+#: doc/guix.texi:12232
 msgid "When @var{level} is zero, disable compression.  The range 1 to 9 corresponds to different compression levels: 1 is the fastest, and 9 is the best (CPU-intensive).  The default is 3."
 msgstr "Daten auf der angegebenen Kompressions-@var{Stufe} komprimieren. Wird als @var{Stufe} null angegeben, wird Kompression deaktiviert. Der Bereich von 1 bis 9 entspricht unterschiedlichen Kompressionsstufen: 1 ist am schnellsten, während 9 am besten komprimiert (aber den Prozessor mehr auslastet). Der Vorgabewert ist 3."
 
 #. type: table
-#: doc/guix.texi:10340
+#: doc/guix.texi:12237
 msgid "Usually, @code{lzip} compresses noticeably better than @code{gzip} for a small increase in CPU usage; see @uref{https://nongnu.org/lzip/lzip_benchmark.html,benchmarks on the lzip Web page}."
 msgstr "Normalerweise ist die Kompression mit @code{lzip} wesentlich besser als bei @code{gzip}, dafür wird der Prozessor geringfügig stärker ausgelastet; siehe @uref{https://nongnu.org/lzip/lzip_benchmark.html,Vergleichswerte auf dem Webauftritt von lzip}."
 
 #. type: table
-#: doc/guix.texi:10349
+#: doc/guix.texi:12246
 msgid "Unless @option{--cache} is used, compression occurs on the fly and the compressed streams are not cached.  Thus, to reduce load on the machine that runs @command{guix publish}, it may be a good idea to choose a low compression level, to run @command{guix publish} behind a caching proxy, or to use @option{--cache}.  Using @option{--cache} has the advantage that it allows @command{guix publish} to add @code{Content-Length} HTTP header to its responses."
 msgstr "Wenn @option{--cache} nicht übergeben wird, werden Daten dynamisch immer erst dann komprimiert, wenn sie abgeschickt werden; komprimierte Datenströme landen in keinem Zwischenspeicher. Um also die Auslastung der Maschine, auf der @command{guix publish} läuft, zu reduzieren, kann es eine gute Idee sein, eine niedrige Kompressionsstufe zu wählen, @command{guix publish} einen Proxy mit Zwischenspeicher (einen „Caching Proxy“) voranzuschalten, oder @option{--cache} zu benutzen. @option{--cache} zu benutzen, hat den Vorteil, dass @command{guix publish} damit eine @code{Content-Length}-HTTP-Kopfzeile seinen Antworten beifügen kann."
 
 #. type: table
-#: doc/guix.texi:10354
+#: doc/guix.texi:12251
 msgid "This option can be repeated, in which case every substitute gets compressed using all the selected methods, and all of them are advertised.  This is useful when users may not support all the compression methods: they can select the one they support."
 msgstr "Wenn diese Befehlszeilenoption mehrfach angegeben wird, wird jedes Substitut mit allen ausgewählten Methoden komprimiert und jede davon wird bei Anfragen mitgeteilt. Das ist nützlich, weil Benutzer, bei denen nicht alle Kompressionsmethoden unterstützt werden, die passende wählen können."
 
 #. type: item
-#: doc/guix.texi:10355
+#: doc/guix.texi:12252
 #, no-wrap
 msgid "--cache=@var{directory}"
 msgstr "--cache=@var{Verzeichnis}"
 
 #. type: itemx
-#: doc/guix.texi:10356
+#: doc/guix.texi:12253
 #, no-wrap
 msgid "-c @var{directory}"
 msgstr "-c @var{Verzeichnis}"
 
 #. type: table
-#: doc/guix.texi:10359
+#: doc/guix.texi:12256
 msgid "Cache archives and meta-data (@code{.narinfo} URLs) to @var{directory} and only serve archives that are in cache."
 msgstr "Archive und Metadaten (@code{.narinfo}-URLs) in das @var{Verzeichnis} zwischenspeichern und nur solche Archive versenden, die im Zwischenspeicher vorliegen."
 
 #. type: table
-#: doc/guix.texi:10367
+#: doc/guix.texi:12264
 msgid "When this option is omitted, archives and meta-data are created on-the-fly.  This can reduce the available bandwidth, especially when compression is enabled, since this may become CPU-bound.  Another drawback of the default mode is that the length of archives is not known in advance, so @command{guix publish} does not add a @code{Content-Length} HTTP header to its responses, which in turn prevents clients from knowing the amount of data being downloaded."
 msgstr "Wird diese Befehlszeilenoption weggelassen, dann werden Archive und Metadaten „dynamisch“ erst auf eine Anfrage hin erzeugt. Dadurch kann die verfügbare Bandbreite reduziert werden, besonders wenn Kompression aktiviert ist, weil die Operation dann durch die Prozessorleistung beschränkt sein kann. Noch ein Nachteil des voreingestellten Modus ist, dass die Länge der Archive nicht im Voraus bekannt ist, @command{guix publish} also keine @code{Content-Length}-HTTP-Kopfzeile an seine Antworten anfügt, wodurch Clients nicht wissen können, welche Datenmenge noch heruntergeladen werden muss."
 
 #. type: table
-#: doc/guix.texi:10375
-msgid "Conversely, when @option{--cache} is used, the first request for a store item (@i{via} a @code{.narinfo} URL) returns 404 and triggers a background process to @dfn{bake} the archive---computing its @code{.narinfo} and compressing the archive, if needed.  Once the archive is cached in @var{directory}, subsequent requests succeed and are served directly from the cache, which guarantees that clients get the best possible bandwidth."
-msgstr "Im Gegensatz dazu liefert, wenn @option{--cache} benutzt wird, die erste Anfrage nach einem Store-Objekt (über dessen @code{.narinfo}-URL) den Fehlercode 404, und im Hintergrund wird ein Prozess gestartet, der das Archiv in den Zwischenspeicher einlagert (auf Englisch sagen wir „@dfn{bake} the archive“), d.h.@: seine @code{.narinfo} wird berechnet und das Archiv, falls nötig, komprimiert. Sobald das Archiv im @var{Verzeichnis} zwischengespeichert wurde, werden nachfolgende Anfragen erfolgreich sein und direkt aus dem Zwischenspeicher bedient, der garantiert, dass Clients optimale Bandbreite genießen."
+#: doc/guix.texi:12272
+msgid "Conversely, when @option{--cache} is used, the first request for a store item (@i{via} a @code{.narinfo} URL) triggers a background process to @dfn{bake} the archive---computing its @code{.narinfo} and compressing the archive, if needed.  Once the archive is cached in @var{directory}, subsequent requests succeed and are served directly from the cache, which guarantees that clients get the best possible bandwidth."
+msgstr "Im Gegensatz dazu löst, wenn @option{--cache} benutzt wird, die erste Anfrage nach einem Store-Objekt (über dessen @code{.narinfo}-URL) den Start eines Hintergrundprozesses aus, der das Archiv in den Zwischenspeicher einlagert (auf Englisch sagen wir „bake the archive“), d.h.@: seine @code{.narinfo} wird berechnet und das Archiv, falls nötig, komprimiert. Sobald das Archiv im @var{Verzeichnis} zwischengespeichert wurde, werden nachfolgende Anfragen erfolgreich sein und direkt aus dem Zwischenspeicher bedient, der garantiert, dass Clients optimale Bandbreite genießen."
 
 #. type: table
-#: doc/guix.texi:10379
+#: doc/guix.texi:12279
+msgid "That first @code{.narinfo} request nonetheless returns 200, provided the requested store item is ``small enough'', below the cache bypass threshold---see @option{--cache-bypass-threshold} below.  That way, clients do not have to wait until the archive is baked.  For larger store items, the first @code{.narinfo} request returns 404, meaning that clients have to wait until the archive is baked."
+msgstr "Die erste Anfrage nach einer @code{.narinfo} wird trotzdem 200 zurückliefern, wenn das angefragte Store-Objekt „klein genug“ ist, also kleiner als der Schwellwert für die Zwischenspeicherumgehung, siehe @option{--cache-bypass-threshold} unten. So müssen Clients nicht darauf warten, dass das Archiv eingelagert wurde. Bei größeren Store-Objekten liefert die erste @code{.narinfo}-Anfrage 404 zurück, was bedeutet, dass Clients warten müssen, bis das Archiv eingelagert wurde."
+
+#. type: table
+#: doc/guix.texi:12283
 msgid "The ``baking'' process is performed by worker threads.  By default, one thread per CPU core is created, but this can be customized.  See @option{--workers} below."
 msgstr "Der Prozess zum Einlagern wird durch Worker-Threads umgesetzt. Der Vorgabe entsprechend wird dazu pro Prozessorkern ein Thread erzeugt, aber dieses Verhalten kann angepasst werden. Siehe @option{--workers} weiter unten."
 
 #. type: table
-#: doc/guix.texi:10382
+#: doc/guix.texi:12286
 msgid "When @option{--ttl} is used, cached entries are automatically deleted when they have expired."
 msgstr "Wird @option{--ttl} verwendet, werden zwischengespeicherte Einträge automatisch gelöscht, sobald die dabei angegebene Zeit abgelaufen ist."
 
 #. type: item
-#: doc/guix.texi:10383
+#: doc/guix.texi:12287
 #, no-wrap
 msgid "--workers=@var{N}"
 msgstr "--workers=@var{N}"
 
 #. type: table
-#: doc/guix.texi:10386
+#: doc/guix.texi:12290
 msgid "When @option{--cache} is used, request the allocation of @var{N} worker threads to ``bake'' archives."
 msgstr "Wird @option{--cache} benutzt, wird die Reservierung von @var{N} Worker-Threads angefragt, um Archive einzulagern."
 
 #. type: item
-#: doc/guix.texi:10387
+#: doc/guix.texi:12291
 #, no-wrap
 msgid "--ttl=@var{ttl}"
 msgstr "--ttl=@var{ttl}"
 
 #. type: table
-#: doc/guix.texi:10391
+#: doc/guix.texi:12295
 msgid "Produce @code{Cache-Control} HTTP headers that advertise a time-to-live (TTL) of @var{ttl}.  @var{ttl} must denote a duration: @code{5d} means 5 days, @code{1m} means 1 month, and so on."
 msgstr "@code{Cache-Control}-HTTP-Kopfzeilen erzeugen, die eine Time-to-live (TTL) von @var{ttl} signalisieren. Für @var{ttl} muss eine Dauer (mit dem Anfangsbuchstaben der Maßeinheit der Dauer im Englischen) angegeben werden: @code{5d} bedeutet 5 Tage, @code{1m} bedeutet 1 Monat und so weiter."
 
 #. type: table
-#: doc/guix.texi:10396
+#: doc/guix.texi:12300
 msgid "This allows the user's Guix to keep substitute information in cache for @var{ttl}.  However, note that @code{guix publish} does not itself guarantee that the store items it provides will indeed remain available for as long as @var{ttl}."
 msgstr "Das ermöglicht es Guix, Substitutinformationen @var{ttl} lang zwischenzuspeichern. Beachten Sie allerdings, dass @code{guix publish} selbst @emph{nicht} garantiert, dass die davon angebotenen Store-Objekte so lange verfügbar bleiben, wie es die @var{ttl} vorsieht."
 
 #. type: table
-#: doc/guix.texi:10400
+#: doc/guix.texi:12304
 msgid "Additionally, when @option{--cache} is used, cached entries that have not been accessed for @var{ttl} and that no longer have a corresponding item in the store, may be deleted."
 msgstr "Des Weiteren können bei Nutzung von @option{--cache} die zwischengespeicherten Einträge gelöscht werden, wenn auf sie @var{ttl} lang nicht zugegriffen wurde und kein ihnen entsprechendes Objekt mehr im Store existiert."
 
 #. type: item
-#: doc/guix.texi:10401
+#: doc/guix.texi:12305
+#, no-wrap
+msgid "--cache-bypass-threshold=@var{size}"
+msgstr "--cache-bypass-threshold=@var{Größe}"
+
+#. type: table
+#: doc/guix.texi:12310
+msgid "When used in conjunction with @option{--cache}, store items smaller than @var{size} are immediately available, even when they are not yet in cache.  @var{size} is a size in bytes, or it can be suffixed by @code{M} for megabytes and so on.  The default is @code{10M}."
+msgstr "Wird dies in Verbindung mit @option{--cache} angegeben, werden Store-Objekte kleiner als die @var{Größe} sofort verfügbar sein, obwohl sie noch nicht in den Zwischenspeicher eingelagert wurden. Die @var{Größe} gibt die Größe in Bytes an oder ist mit einem Suffix @code{M} für Megabyte und so weiter versehen. Die Vorgabe ist @code{10M}."
+
+#. type: table
+#: doc/guix.texi:12315
+msgid "``Cache bypass'' allows you to reduce the publication delay for clients at the expense of possibly additional I/O and CPU use on the server side: depending on the client access patterns, those store items can end up being baked several times until a copy is available in cache."
+msgstr "Durch diese „Zwischenspeicherumgehung“ lässt sich die Verzögerung bis zur Veröffentlichung an Clients reduzieren, auf Kosten zusätzlicher Ein-/Ausgaben und CPU-Auslastung für den Server. Je nachdem, welche Zugriffsmuster Clients haben, werden diese Store-Objekte vielleicht mehrfach zur Einlagerung vorbereitet, ehe eine Kopie davon im Zwischenspeicher verfügbar wird."
+
+#. type: table
+#: doc/guix.texi:12319
+msgid "Increasing the threshold may be useful for sites that have few users, or to guarantee that users get substitutes even for store items that are not popular."
+msgstr "Wenn ein Anbieter nur wenige Nutzer unterhält, kann es helfen, den Schwellwert zu erhöhen, oder auch wenn garantiert werden soll, dass es auch für wenig beliebte Store-Objekte Substitute gibt."
+
+#. type: item
+#: doc/guix.texi:12320
 #, no-wrap
 msgid "--nar-path=@var{path}"
 msgstr "--nar-path=@var{Pfad}"
 
 #. type: table
-#: doc/guix.texi:10404
+#: doc/guix.texi:12323
 msgid "Use @var{path} as the prefix for the URLs of ``nar'' files (@pxref{Invoking guix archive, normalized archives})."
-msgstr "Den @var{Pfad} als Präfix für die URLs von „nar“-Dateien benutzen (siehe @ref{Invoking guix archive, normalized archives})."
+msgstr "Den @var{Pfad} als Präfix für die URLs von „nar“-Dateien benutzen (siehe @ref{Invoking guix archive, Normalisierte Archive})."
 
 #. type: table
-#: doc/guix.texi:10408
+#: doc/guix.texi:12327
 msgid "By default, nars are served at a URL such as @code{/nar/gzip/@dots{}-coreutils-8.25}.  This option allows you to change the @code{/nar} part to @var{path}."
 msgstr "Vorgegeben ist, dass Nars unter einer URL mit @code{/nar/gzip/…-coreutils-8.25} angeboten werden. Mit dieser Befehlszeilenoption können Sie den @code{/nar}-Teil durch den angegebenen @var{Pfad} ersetzen."
 
 #. type: item
-#: doc/guix.texi:10409
+#: doc/guix.texi:12328
 #, no-wrap
 msgid "--public-key=@var{file}"
 msgstr "--public-key=@var{Datei}"
 
 #. type: itemx
-#: doc/guix.texi:10410
+#: doc/guix.texi:12329
 #, no-wrap
 msgid "--private-key=@var{file}"
 msgstr "--private-key=@var{Datei}"
 
 #. type: table
-#: doc/guix.texi:10413
+#: doc/guix.texi:12332
 msgid "Use the specific @var{file}s as the public/private key pair used to sign the store items being published."
 msgstr "Die angegebenen @var{Datei}en als das Paar aus öffentlichem und privatem Schlüssel zum Signieren veröffentlichter Store-Objekte benutzen."
 
 #. type: table
-#: doc/guix.texi:10420
+#: doc/guix.texi:12339
 msgid "The files must correspond to the same key pair (the private key is used for signing and the public key is merely advertised in the signature metadata).  They must contain keys in the canonical s-expression format as produced by @command{guix archive --generate-key} (@pxref{Invoking guix archive}).  By default, @file{/etc/guix/signing-key.pub} and @file{/etc/guix/signing-key.sec} are used."
 msgstr "Die Dateien müssen demselben Schlüsselpaar entsprechen (der private Schlüssel wird zum Signieren benutzt, der öffentliche Schlüssel wird lediglich in den Metadaten der Signatur aufgeführt). Die Dateien müssen Schlüssel im kanonischen („canonical“) S-Ausdruck-Format enthalten, wie es von @command{guix archive --generate-key} erzeugt wird (siehe @ref{Invoking guix archive}). Vorgegeben ist, dass @file{/etc/guix/signing-key.pub} und @file{/etc/guix/signing-key.sec} benutzt werden."
 
 #. type: item
-#: doc/guix.texi:10421
+#: doc/guix.texi:12340
 #, no-wrap
 msgid "--repl[=@var{port}]"
 msgstr "--repl[=@var{Port}]"
 
 #. type: itemx
-#: doc/guix.texi:10422
+#: doc/guix.texi:12341
 #, no-wrap
 msgid "-r [@var{port}]"
 msgstr "-r [@var{Port}]"
 
 #. type: table
-#: doc/guix.texi:10426
+#: doc/guix.texi:12345
 msgid "Spawn a Guile REPL server (@pxref{REPL Servers,,, guile, GNU Guile Reference Manual}) on @var{port} (37146 by default).  This is used primarily for debugging a running @command{guix publish} server."
-msgstr "Einen Guile-REPL-Server (siehe @ref{REPL Servers,,, guile, GNU Guile Reference Manual}) auf diesem @var{Port} starten (37146 ist voreingestellt). Dies kann zur Fehlersuche auf einem laufenden „@command{guix publish}“-Server benutzt werden."
+msgstr "Einen Guile-REPL-Server (siehe @ref{REPL Servers,,, guile, Referenzhandbuch zu GNU Guile}) auf diesem @var{Port} starten (37146 ist voreingestellt). Dies kann zur Fehlersuche auf einem laufenden „@command{guix publish}“-Server benutzt werden."
 
 #. type: Plain text
-#: doc/guix.texi:10432
+#: doc/guix.texi:12351
 msgid "Enabling @command{guix publish} on Guix System is a one-liner: just instantiate a @code{guix-publish-service-type} service in the @code{services} field of the @code{operating-system} declaration (@pxref{guix-publish-service-type, @code{guix-publish-service-type}})."
 msgstr "@command{guix publish} auf einem „Guix System“-System zu aktivieren ist ein Einzeiler: Instanziieren Sie einfach einen @code{guix-publish-service-type}-Dienst im @code{services}-Feld Ihres @code{operating-system}-Objekts zur Betriebssystemdeklaration (siehe @ref{guix-publish-service-type, @code{guix-publish-service-type}})."
 
 #. type: Plain text
-#: doc/guix.texi:10435
+#: doc/guix.texi:12354
 msgid "If you are instead running Guix on a ``foreign distro'', follow these instructions:"
 msgstr "Falls Sie Guix aber auf einer „Fremddistribution“ laufen lassen, folgen Sie folgenden Anweisungen:"
 
 #. type: itemize
-#: doc/guix.texi:10439
+#: doc/guix.texi:12358
 msgid "If your host distro uses the systemd init system:"
 msgstr "Wenn Ihre Wirtsdistribution systemd als „init“-System benutzt:"
 
 #. type: example
-#: doc/guix.texi:10444
+#: doc/guix.texi:12363
 #, no-wrap
 msgid ""
 "# ln -s ~root/.guix-profile/lib/systemd/system/guix-publish.service \\\n"
@@ -19121,7 +22326,7 @@ msgstr ""
 "# systemctl start guix-publish && systemctl enable guix-publish\n"
 
 #. type: example
-#: doc/guix.texi:10452
+#: doc/guix.texi:12371
 #, no-wrap
 msgid ""
 "# ln -s ~root/.guix-profile/lib/upstart/system/guix-publish.conf /etc/init/\n"
@@ -19131,56 +22336,56 @@ msgstr ""
 "# start guix-publish\n"
 
 #. type: itemize
-#: doc/guix.texi:10456
+#: doc/guix.texi:12375
 msgid "Otherwise, proceed similarly with your distro's init system."
 msgstr "Verfahren Sie andernfalls auf die gleiche Art für das „init“-System, das Ihre Distribution verwendet."
 
 #. type: section
-#: doc/guix.texi:10459
+#: doc/guix.texi:12378
 #, no-wrap
 msgid "Invoking @command{guix challenge}"
 msgstr "@command{guix challenge} aufrufen"
 
 #. type: cindex
-#: doc/guix.texi:10462
+#: doc/guix.texi:12381
 #, no-wrap
 msgid "verifiable builds"
 msgstr "verifizierbare Erstellungen"
 
 #. type: command{#1}
-#: doc/guix.texi:10463
+#: doc/guix.texi:12382
 #, no-wrap
 msgid "guix challenge"
 msgstr "guix challenge"
 
 #. type: cindex
-#: doc/guix.texi:10464
+#: doc/guix.texi:12383
 #, no-wrap
 msgid "challenge"
 msgstr "Anfechten"
 
 #. type: Plain text
-#: doc/guix.texi:10469
+#: doc/guix.texi:12388
 msgid "Do the binaries provided by this server really correspond to the source code it claims to build? Is a package build process deterministic? These are the questions the @command{guix challenge} command attempts to answer."
 msgstr "Entsprechen die von diesem Server gelieferten Binärdateien tatsächlich dem Quellcode, aus dem sie angeblich erzeugt wurden? Ist ein Paketerstellungsprozess deterministisch? Diese Fragen versucht @command{guix challenge} zu beantworten."
 
 #. type: Plain text
-#: doc/guix.texi:10477
+#: doc/guix.texi:12396
 msgid "The former is obviously an important question: Before using a substitute server (@pxref{Substitutes}), one had better @emph{verify} that it provides the right binaries, and thus @emph{challenge} it.  The latter is what enables the former: If package builds are deterministic, then independent builds of the package should yield the exact same result, bit for bit; if a server provides a binary different from the one obtained locally, it may be either corrupt or malicious."
 msgstr "Die erste Frage ist offensichtlich wichtig: Bevor man einen Substitutserver benutzt (siehe @ref{Substitutes}), @emph{verifiziert} man besser, dass er die richtigen Binärdateien liefert, d.h.@: man @emph{fechtet sie an}. Die letzte Frage macht die erste möglich: Wenn Paketerstellungen deterministisch sind, müssten voneinander unabhängige Erstellungen genau dasselbe Ergebnis liefern, Bit für Bit; wenn ein Server mit einer anderen Binärdatei als der lokal erstellten Binärdatei antwortet, ist diese entweder beschädigt oder bösartig."
 
 #. type: Plain text
-#: doc/guix.texi:10486
+#: doc/guix.texi:12405
 msgid "We know that the hash that shows up in @file{/gnu/store} file names is the hash of all the inputs of the process that built the file or directory---compilers, libraries, build scripts, etc. (@pxref{Introduction}).  Assuming deterministic build processes, one store file name should map to exactly one build output.  @command{guix challenge} checks whether there is, indeed, a single mapping by comparing the build outputs of several independent builds of any given store item."
 msgstr "Wir wissen, dass die in @file{/gnu/store}-Dateinamen auftauchende Hash-Prüfsumme der Hash aller Eingaben des Prozesses ist, mit dem die Datei oder das Verzeichnis erstellt wurde — Compiler, Bibliotheken, Erstellungsskripts und so weiter (siehe @ref{Introduction}). Wenn wir von deterministischen Erstellungen ausgehen, sollte ein Store-Dateiname also auf genau eine Erstellungsausgabe abgebildet werden. Mit @command{guix challenge} prüft man, ob es tatsächlich eine eindeutige Abbildung gibt, indem die Erstellungsausgaben mehrerer unabhängiger Erstellungen jedes angegebenen Store-Objekts verglichen werden."
 
 #. type: Plain text
-#: doc/guix.texi:10488
+#: doc/guix.texi:12407
 msgid "The command output looks like this:"
 msgstr "Die Ausgabe des Befehls sieht so aus:"
 
 #. type: smallexample
-#: doc/guix.texi:10500
+#: doc/guix.texi:12419
 #, no-wrap
 msgid ""
 "$ guix challenge --substitute-urls=\"https://@value{SUBSTITUTE-SERVER} https://guix.example.org\"\n"
@@ -19208,7 +22413,7 @@ msgstr ""
 "\n"
 
 #. type: smallexample
-#: doc/guix.texi:10507
+#: doc/guix.texi:12426
 #, no-wrap
 msgid ""
 "/gnu/store/@dots{}-git-2.5.0 contents differ:\n"
@@ -19228,7 +22433,7 @@ msgstr ""
 "\n"
 
 #. type: smallexample
-#: doc/guix.texi:10514
+#: doc/guix.texi:12433
 #, no-wrap
 msgid ""
 "/gnu/store/@dots{}-pius-2.1.1 contents differ:\n"
@@ -19248,7 +22453,7 @@ msgstr ""
 "\n"
 
 #. type: smallexample
-#: doc/guix.texi:10516
+#: doc/guix.texi:12435
 #, no-wrap
 msgid ""
 "@dots{}\n"
@@ -19258,7 +22463,7 @@ msgstr ""
 "\n"
 
 #. type: smallexample
-#: doc/guix.texi:10521
+#: doc/guix.texi:12440
 #, no-wrap
 msgid ""
 "6,406 store items were analyzed:\n"
@@ -19272,28 +22477,28 @@ msgstr ""
 "  — 1,132 (17.7%) blieben ergebnislos\n"
 
 #. type: Plain text
-#: doc/guix.texi:10529
+#: doc/guix.texi:12448
 msgid "In this example, @command{guix challenge} first scans the store to determine the set of locally-built derivations---as opposed to store items that were downloaded from a substitute server---and then queries all the substitute servers.  It then reports those store items for which the servers obtained a result different from the local build."
 msgstr "In diesem Beispiel wird mit @command{guix challenge} zuerst die Menge lokal erstellter Ableitungen im Store ermittelt — im Gegensatz zu von einem Substitserver heruntergeladenen Store-Objekten — und dann werden alle Substitutserver angefragt. Diejenigen Store-Objekte, bei denen der Server ein anderes Ergebnis berechnet hat als die lokale Erstellung, werden gemeldet."
 
 #. type: cindex
-#: doc/guix.texi:10530
+#: doc/guix.texi:12449
 #, no-wrap
 msgid "non-determinism, in package builds"
 msgstr "Nichtdeterminismus, in Paketerstellungen"
 
 #. type: Plain text
-#: doc/guix.texi:10541
+#: doc/guix.texi:12460
 msgid "As an example, @code{guix.example.org} always gets a different answer.  Conversely, @code{@value{SUBSTITUTE-SERVER}} agrees with local builds, except in the case of Git.  This might indicate that the build process of Git is non-deterministic, meaning that its output varies as a function of various things that Guix does not fully control, in spite of building packages in isolated environments (@pxref{Features}).  Most common sources of non-determinism include the addition of timestamps in build results, the inclusion of random numbers, and directory listings sorted by inode number.  See @uref{https://reproducible-builds.org/docs/}, for more information."
 msgstr "Nehmen wir zum Beispiel an, @code{guix.example.org} gibt uns immer eine verschiedene Antwort, aber @code{@value{SUBSTITUTE-SERVER}} stimmt mit lokalen Erstellungen überein, @emph{außer} im Fall von Git. Das könnte ein Hinweis sein, dass der Erstellungsprozess von Git nichtdeterministisch ist; das bedeutet, seine Ausgabe variiert abhängig von verschiedenen Umständen, die Guix nicht vollends kontrollieren kann, obwohl es Pakete in isolierten Umgebungen erstellt (siehe @ref{Features}). Zu den häufigsten Quellen von Nichtdeterminismus gehören das Einsetzen von Zeitstempeln innerhalb der Erstellungsgebnisse, das Einsetzen von Zufallszahlen und von Auflistungen eines Verzeichnisinhalts sortiert nach der Inode-Nummer. Siehe @uref{https://reproducible-builds.org/docs/} für mehr Informationen."
 
 #. type: Plain text
-#: doc/guix.texi:10544
+#: doc/guix.texi:12463
 msgid "To find out what is wrong with this Git binary, the easiest approach is to run:"
 msgstr "Um herauszufinden, was mit dieser Git-Binärdatei nicht stimmt, ist es am leichtesten, einfach diesen Befehl auszuführen:"
 
 #. type: example
-#: doc/guix.texi:10549
+#: doc/guix.texi:12468
 #, no-wrap
 msgid ""
 "guix challenge git \\\n"
@@ -19305,182 +22510,188 @@ msgstr ""
 "  --substitute-urls=\"https://@value{SUBSTITUTE-SERVER} https://guix.example.org\"\n"
 
 #. type: Plain text
-#: doc/guix.texi:10553
+#: doc/guix.texi:12472
 msgid "This automatically invokes @command{diffoscope}, which displays detailed information about files that differ."
 msgstr "Dadurch wird @command{diffoscope} automatisch aufgerufen, um detaillierte Informationen über sich unterscheidende Dateien anzuzeigen."
 
 #. type: Plain text
-#: doc/guix.texi:10556
-msgid "Alternately, we can do something along these lines (@pxref{Invoking guix archive}):"
+#: doc/guix.texi:12475
+msgid "Alternatively, we can do something along these lines (@pxref{Invoking guix archive}):"
 msgstr "Alternativ können wir so etwas machen (siehe @ref{Invoking guix archive}):"
 
 #. type: example
-#: doc/guix.texi:10561
+#: doc/guix.texi:12480
 #, no-wrap
 msgid ""
-"$ wget -q -O - https://@value{SUBSTITUTE-SERVER}/nar/@dots{}-git-2.5.0 \\\n"
-"   | guix archive -x /tmp/git\n"
+"$ wget -q -O - https://@value{SUBSTITUTE-SERVER}/nar/lzip/@dots{}-git-2.5.0 \\\n"
+"   | lzip -d | guix archive -x /tmp/git\n"
 "$ diff -ur --no-dereference /gnu/store/@dots{}-git.2.5.0 /tmp/git\n"
 msgstr ""
-"$ wget -q -O - https://@value{SUBSTITUTE-SERVER}/nar/…-git-2.5.0 \\\n"
-"   | guix archive -x /tmp/git\n"
+"$ wget -q -O - https://@value{SUBSTITUTE-SERVER}/nar/lzip/…-git-2.5.0 \\\n"
+"   | lzip -d | guix archive -x /tmp/git\n"
 "$ diff -ur --no-dereference /gnu/store/…-git.2.5.0 /tmp/git\n"
 
 #. type: Plain text
-#: doc/guix.texi:10570
+#: doc/guix.texi:12489
 msgid "This command shows the difference between the files resulting from the local build, and the files resulting from the build on @code{@value{SUBSTITUTE-SERVER}} (@pxref{Overview, Comparing and Merging Files,, diffutils, Comparing and Merging Files}).  The @command{diff} command works great for text files.  When binary files differ, a better option is @uref{https://diffoscope.org/, Diffoscope}, a tool that helps visualize differences for all kinds of files."
-msgstr "Dieser Befehl zeigt die Unterschiede zwischen den Dateien, die sich aus der lokalen Erstellung ergeben, und den Dateien, die sich aus der Erstellung auf @code{@value{SUBSTITUTE-SERVER}} ergeben (siehe @ref{Overview, Comparing and Merging Files,, diffutils, Comparing and Merging Files}). Der Befehl @command{diff} funktioniert großartig für Textdateien. Wenn sich Binärdateien unterscheiden, ist @uref{https://diffoscope.org/, Diffoscope} die bessere Wahl: Es ist ein hilfreiches Werkzeug, das Unterschiede in allen Arten von Dateien visualisiert."
+msgstr "Dieser Befehl zeigt die Unterschiede zwischen den Dateien, die sich aus der lokalen Erstellung ergeben, und den Dateien, die sich aus der Erstellung auf @code{@value{SUBSTITUTE-SERVER}} ergeben (siehe @ref{Overview, Dateien vergleichen und zusammenführen,, diffutils, Comparing and Merging Files}). Der Befehl @command{diff} funktioniert großartig für Textdateien. Wenn sich Binärdateien unterscheiden, ist @uref{https://diffoscope.org/, Diffoscope} die bessere Wahl: Es ist ein hilfreiches Werkzeug, das Unterschiede in allen Arten von Dateien visualisiert."
 
 #. type: Plain text
-#: doc/guix.texi:10578
+#: doc/guix.texi:12497
 msgid "Once you have done that work, you can tell whether the differences are due to a non-deterministic build process or to a malicious server.  We try hard to remove sources of non-determinism in packages to make it easier to verify substitutes, but of course, this is a process that involves not just Guix, but a large part of the free software community.  In the meantime, @command{guix challenge} is one tool to help address the problem."
 msgstr "Sobald Sie mit dieser Arbeit fertig sind, können Sie erkennen, ob die Unterschiede aufgrund eines nichtdeterministischen Erstellungsprozesses oder wegen einem bösartigen Server zustande kommen. Wir geben uns Mühe, Quellen von Nichtdeterminismus in Paketen zu entfernen, damit Substitute leichter verifiziert werden können, aber natürlich ist an diesem Prozess nicht nur Guix, sondern ein großer Teil der Freie-Software-Gemeinschaft beteiligt. In der Zwischenzeit ist @command{guix challenge} eines der Werkzeuge, die das Problem anzugehen helfen."
 
 #. type: Plain text
-#: doc/guix.texi:10582
+#: doc/guix.texi:12501
 msgid "If you are writing packages for Guix, you are encouraged to check whether @code{@value{SUBSTITUTE-SERVER}} and other substitute servers obtain the same build result as you did with:"
 msgstr "Wenn Sie ein Paket für Guix schreiben, ermutigen wir Sie, zu überprüfen, ob @code{@value{SUBSTITUTE-SERVER}} und andere Substitutserver dasselbe Erstellungsergebnis bekommen, das Sie bekommen haben. Das geht so:"
 
 #. type: example
-#: doc/guix.texi:10585
+#: doc/guix.texi:12504
 #, no-wrap
 msgid "$ guix challenge @var{package}\n"
 msgstr "$ guix challenge @var{Paket}\n"
 
 #. type: Plain text
-#: doc/guix.texi:10590
+#: doc/guix.texi:12509
 msgid "where @var{package} is a package specification such as @code{guile@@2.0} or @code{glibc:debug}."
 msgstr "Dabei wird mit @var{Paket} eine Paketspezifikation wie @code{guile@@2.0} oder @code{glibc:debug} bezeichnet."
 
 #. type: example
-#: doc/guix.texi:10595
+#: doc/guix.texi:12514
 #, no-wrap
 msgid "guix challenge @var{options} [@var{packages}@dots{}]\n"
 msgstr "guix challenge @var{Optionen} [@var{Pakete}…]\n"
 
 #. type: Plain text
-#: doc/guix.texi:10602
-msgid "When a difference is found between the hash of a locally-built item and that of a server-provided substitute, or among substitutes provided by different servers, the command displays it as in the example above and its exit code is 2 (other non-zero exit codes denote other kinds of errors.)"
+#: doc/guix.texi:12521
+msgid "When a difference is found between the hash of a locally-built item and that of a server-provided substitute, or among substitutes provided by different servers, the command displays it as in the example above and its exit code is 2 (other non-zero exit codes denote other kinds of errors)."
 msgstr "Wird ein Unterschied zwischen der Hash-Prüfsumme des lokal erstellten Objekts und dem vom Server gelieferten Substitut festgestellt, oder zwischen den Substituten von unterschiedlichen Servern, dann wird der Befehl dies wie im obigen Beispiel anzeigen und mit dem Exit-Code 2 terminieren (andere Exit-Codes außer null stehen für andere Arten von Fehlern)."
 
 #. type: Plain text
-#: doc/guix.texi:10604
+#: doc/guix.texi:12523
 msgid "The one option that matters is:"
 msgstr "Die eine, wichtige Befehlszeilenoption ist:"
 
 #. type: table
-#: doc/guix.texi:10610
+#: doc/guix.texi:12529
 msgid "Consider @var{urls} the whitespace-separated list of substitute source URLs to compare to."
 msgstr "Die @var{URLs} als durch Leerraumzeichen getrennte Liste von Substitut-Quell-URLs benutzen. mit denen verglichen wird."
 
 #. type: item
-#: doc/guix.texi:10611
+#: doc/guix.texi:12530
 #, no-wrap
 msgid "--diff=@var{mode}"
 msgstr "--diff=@var{Modus}"
 
 #. type: table
-#: doc/guix.texi:10613
+#: doc/guix.texi:12532
 msgid "Upon mismatches, show differences according to @var{mode}, one of:"
 msgstr "Wenn sich Dateien unterscheiden, diese Unterschiede entsprechend dem @var{Modus} anzeigen. Dieser kann einer der folgenden sein:"
 
 #. type: item
-#: doc/guix.texi:10615
+#: doc/guix.texi:12534
 #, no-wrap
 msgid "@code{simple} (the default)"
 msgstr "@code{simple} (die Vorgabe)"
 
 #. type: table
-#: doc/guix.texi:10617
+#: doc/guix.texi:12536
 msgid "Show the list of files that differ."
 msgstr "Zeige die Liste sich unterscheidender Dateien."
 
 #. type: code{#1}
-#: doc/guix.texi:10618
+#: doc/guix.texi:12537
 #, no-wrap
 msgid "diffoscope"
 msgstr "diffoscope"
 
 #. type: var{#1}
-#: doc/guix.texi:10619
+#: doc/guix.texi:12538
 #, no-wrap
 msgid "command"
 msgstr "Befehl"
 
 #. type: table
-#: doc/guix.texi:10622
+#: doc/guix.texi:12541
 msgid "Invoke @uref{https://diffoscope.org/, Diffoscope}, passing it two directories whose contents do not match."
 msgstr "@uref{https://diffoscope.org/, Diffoscope} aufrufen und ihm zwei Verzeichnisse mit verschiedenem Inhalt übergeben."
 
 #. type: table
-#: doc/guix.texi:10625
+#: doc/guix.texi:12544
 msgid "When @var{command} is an absolute file name, run @var{command} instead of Diffoscope."
 msgstr "Wenn der @var{Befehl} ein absoluter Dateiname ist, wird der @var{Befehl} anstelle von Diffoscope ausgeführt."
 
 #. type: item
-#: doc/guix.texi:10626 doc/guix.texi:13535 doc/guix.texi:14931
+#: doc/guix.texi:12545 doc/guix.texi:15731 doc/guix.texi:17485
 #, no-wrap
 msgid "none"
 msgstr "none"
 
 #. type: table
-#: doc/guix.texi:10628
+#: doc/guix.texi:12547
 msgid "Do not show further details about the differences."
 msgstr "Keine näheren Details zu Unterschieden anzeigen."
 
 #. type: table
-#: doc/guix.texi:10633
-msgid "Thus, unless @code{--diff=none} is passed, @command{guix challenge} downloads the store items from the given substitute servers so that it can compare them."
-msgstr "Solange kein @code{--diff=none} angegeben wird, werden durch @command{guix challenge} also Store-Objekte von den festgelegten Substitutservern heruntergeladen, damit diese verglichen werden können."
+#: doc/guix.texi:12552
+msgid "Thus, unless @option{--diff=none} is passed, @command{guix challenge} downloads the store items from the given substitute servers so that it can compare them."
+msgstr "Solange kein @option{--diff=none} angegeben wird, werden durch @command{guix challenge} also Store-Objekte von den festgelegten Substitutservern heruntergeladen, damit diese verglichen werden können."
+
+#. type: item
+#: doc/guix.texi:12553
+#, no-wrap
+msgid "--verbose"
+msgstr "--verbose"
 
 #. type: itemx
-#: doc/guix.texi:10635
+#: doc/guix.texi:12554
 #, no-wrap
 msgid "-v"
 msgstr "-v"
 
 #. type: table
-#: doc/guix.texi:10638
+#: doc/guix.texi:12557
 msgid "Show details about matches (identical contents) in addition to information about mismatches."
 msgstr "Details auch zu Übereinstimmungen (deren Inhalt identisch ist) ausgeben, zusätzlich zu Informationen über Unterschiede."
 
 #. type: section
-#: doc/guix.texi:10642
+#: doc/guix.texi:12561
 #, no-wrap
 msgid "Invoking @command{guix copy}"
 msgstr "@command{guix copy} aufrufen"
 
 #. type: cindex
-#: doc/guix.texi:10644
+#: doc/guix.texi:12563
 #, no-wrap
 msgid "copy, of store items, over SSH"
 msgstr "Kopieren, von Store-Objekten, über SSH"
 
 #. type: cindex
-#: doc/guix.texi:10645
+#: doc/guix.texi:12564
 #, no-wrap
 msgid "SSH, copy of store items"
 msgstr "SSH, Kopieren von Store-Objekten"
 
 #. type: cindex
-#: doc/guix.texi:10646
+#: doc/guix.texi:12565
 #, no-wrap
 msgid "sharing store items across machines"
 msgstr "Store-Objekte zwischen Maschinen teilen"
 
 #. type: cindex
-#: doc/guix.texi:10647
+#: doc/guix.texi:12566
 #, no-wrap
 msgid "transferring store items across machines"
 msgstr "Übertragen von Store-Objekten zwischen Maschinen"
 
 #. type: Plain text
-#: doc/guix.texi:10654
+#: doc/guix.texi:12573
 msgid "The @command{guix copy} command copies items from the store of one machine to that of another machine over a secure shell (SSH)  connection@footnote{This command is available only when Guile-SSH was found.  @xref{Requirements}, for details.}.  For example, the following command copies the @code{coreutils} package, the user's profile, and all their dependencies over to @var{host}, logged in as @var{user}:"
 msgstr "Der Befehl @command{guix copy} kopiert Objekte aus dem Store einer Maschine in den Store einer anderen Maschine mittels einer Secure-Shell-Verbindung (kurz SSH-Verbindung)@footnote{Dieser Befehl steht nur dann zur Verfügung, wenn Guile-SSH gefunden werden kann. Siehe @ref{Requirements} für Details.}. Zum Beispiel kopiert der folgende Befehl das Paket @code{coreutils}, das Profil des Benutzers und all deren Abhängigkeiten auf den anderen @var{Rechner}, dazu meldet sich Guix als @var{Benutzer} an:"
 
 #. type: example
-#: doc/guix.texi:10658
+#: doc/guix.texi:12577
 #, no-wrap
 msgid ""
 "guix copy --to=@var{user}@@@var{host} \\\n"
@@ -19490,192 +22701,192 @@ msgstr ""
 "          coreutils `readlink -f ~/.guix-profile`\n"
 
 #. type: Plain text
-#: doc/guix.texi:10662
+#: doc/guix.texi:12581
 msgid "If some of the items to be copied are already present on @var{host}, they are not actually sent."
 msgstr "Wenn manche der zu kopierenden Objekte schon auf dem anderen @var{Rechner} vorliegen, werden sie tatsächlich @emph{nicht} übertragen."
 
 #. type: Plain text
-#: doc/guix.texi:10665
+#: doc/guix.texi:12584
 msgid "The command below retrieves @code{libreoffice} and @code{gimp} from @var{host}, assuming they are available there:"
 msgstr "Der folgende Befehl bezieht @code{libreoffice} und @code{gimp} von dem @var{Rechner}, vorausgesetzt sie sind dort verfügbar:"
 
 #. type: example
-#: doc/guix.texi:10668
+#: doc/guix.texi:12587
 #, no-wrap
 msgid "guix copy --from=@var{host} libreoffice gimp\n"
 msgstr "guix copy --from=@var{host} libreoffice gimp\n"
 
 #. type: Plain text
-#: doc/guix.texi:10673
+#: doc/guix.texi:12592
 msgid "The SSH connection is established using the Guile-SSH client, which is compatible with OpenSSH: it honors @file{~/.ssh/known_hosts} and @file{~/.ssh/config}, and uses the SSH agent for authentication."
 msgstr "Die SSH-Verbindung wird mit dem Guile-SSH-Client hergestellt, der mit OpenSSH kompatibel ist: Er berücksichtigt @file{~/.ssh/known_hosts} und @file{~/.ssh/config} und verwendet den SSH-Agenten zur Authentifizierung."
 
 #. type: Plain text
-#: doc/guix.texi:10679
+#: doc/guix.texi:12598
 msgid "The key used to sign items that are sent must be accepted by the remote machine.  Likewise, the key used by the remote machine to sign items you are retrieving must be in @file{/etc/guix/acl} so it is accepted by your own daemon.  @xref{Invoking guix archive}, for more information about store item authentication."
 msgstr "Der Schlüssel, mit dem gesendete Objekte signiert sind, muss von der entfernten Maschine akzeptiert werden. Ebenso muss der Schlüssel, mit dem die Objekte signiert sind, die Sie von der entfernten Maschine empfangen, in Ihrer Datei @file{/etc/guix/acl} eingetragen sein, damit Ihr Daemon sie akzeptiert. Siehe @ref{Invoking guix archive} für mehr Informationen über die Authentifizierung von Store-Objekten."
 
 #. type: example
-#: doc/guix.texi:10684
+#: doc/guix.texi:12603
 #, no-wrap
 msgid "guix copy [--to=@var{spec}|--from=@var{spec}] @var{items}@dots{}\n"
 msgstr "guix copy [--to=@var{Spezifikation}|--from=@var{Spezifikation}] @var{Objekte}…\n"
 
 #. type: Plain text
-#: doc/guix.texi:10687
+#: doc/guix.texi:12606
 msgid "You must always specify one of the following options:"
 msgstr "Sie müssen immer eine der folgenden Befehlszeilenoptionen angeben:"
 
 #. type: item
-#: doc/guix.texi:10689
+#: doc/guix.texi:12608
 #, no-wrap
 msgid "--to=@var{spec}"
 msgstr "--to=@var{Spezifikation}"
 
 #. type: itemx
-#: doc/guix.texi:10690
+#: doc/guix.texi:12609
 #, no-wrap
 msgid "--from=@var{spec}"
 msgstr "--from=@var{Spezifikation}"
 
 #. type: table
-#: doc/guix.texi:10694
+#: doc/guix.texi:12613
 msgid "Specify the host to send to or receive from.  @var{spec} must be an SSH spec such as @code{example.org}, @code{charlie@@example.org}, or @code{charlie@@example.org:2222}."
 msgstr "Gibt den Rechner (den „Host“) an, an den oder von dem gesendet bzw. empfangen wird. Die @var{Spezifikation} muss eine SSH-Spezifikation sein wie @code{example.org}, @code{charlie@@example.org} oder @code{charlie@@example.org:2222}."
 
 #. type: Plain text
-#: doc/guix.texi:10698
+#: doc/guix.texi:12617
 msgid "The @var{items} can be either package names, such as @code{gimp}, or store items, such as @file{/gnu/store/@dots{}-idutils-4.6}."
 msgstr "Die @var{Objekte} können entweder Paketnamen wie @code{gimp} oder Store-Objekte wie @file{/gnu/store/…-idutils-4.6} sein."
 
 #. type: Plain text
-#: doc/guix.texi:10702
+#: doc/guix.texi:12621
 msgid "When specifying the name of a package to send, it is first built if needed, unless @option{--dry-run} was specified.  Common build options are supported (@pxref{Common Build Options})."
 msgstr "Wenn ein zu sendendes Paket mit Namen angegeben wird, wird es erst erstellt, falls es nicht im Store vorliegt, außer @option{--dry-run} wurde angegeben wurde. Alle gemeinsamen Erstellungsoptionen werden unterstützt (siehe @ref{Common Build Options})."
 
 #. type: section
-#: doc/guix.texi:10705
+#: doc/guix.texi:12624
 #, no-wrap
 msgid "Invoking @command{guix container}"
 msgstr "@command{guix container} aufrufen"
 
 #. type: command{#1}
-#: doc/guix.texi:10707
+#: doc/guix.texi:12626
 #, no-wrap
 msgid "guix container"
 msgstr "guix container"
 
 #. type: quotation
-#: doc/guix.texi:10711
+#: doc/guix.texi:12630
 msgid "As of version @value{VERSION}, this tool is experimental.  The interface is subject to radical change in the future."
 msgstr "Dieses Werkzeug ist noch experimentell, Stand Version @value{VERSION}. Die Schnittstelle wird sich in Zukunft grundlegend verändern."
 
 #. type: Plain text
-#: doc/guix.texi:10718
+#: doc/guix.texi:12637
 msgid "The purpose of @command{guix container} is to manipulate processes running within an isolated environment, commonly known as a ``container'', typically created by the @command{guix environment} (@pxref{Invoking guix environment}) and @command{guix system container} (@pxref{Invoking guix system}) commands."
 msgstr "Der Zweck von @command{guix container} ist, in einer isolierten Umgebung (gemeinhin als „Container“ bezeichnet) laufende Prozesse zu manipulieren, die typischerweise durch die Befehle @command{guix environment} (siehe @ref{Invoking guix environment}) und @command{guix system container} (siehe @ref{Invoking guix system}) erzeugt werden."
 
 #. type: example
-#: doc/guix.texi:10723
+#: doc/guix.texi:12642
 #, no-wrap
 msgid "guix container @var{action} @var{options}@dots{}\n"
 msgstr "guix container @var{Aktion} @var{Optionen}…\n"
 
 #. type: Plain text
-#: doc/guix.texi:10727
+#: doc/guix.texi:12646
 msgid "@var{action} specifies the operation to perform with a container, and @var{options} specifies the context-specific arguments for the action."
 msgstr "Mit @var{Aktion} wird die Operation angegeben, die in der isolierten Umgebung durchgeführt werden soll, und mit @var{Optionen} werden die kontextabhängigen Argumente an die Aktion angegeben."
 
 #. type: Plain text
-#: doc/guix.texi:10729
+#: doc/guix.texi:12648
 msgid "The following actions are available:"
 msgstr "Folgende Aktionen sind verfügbar:"
 
 #. type: item
-#: doc/guix.texi:10731
+#: doc/guix.texi:12650
 #, no-wrap
 msgid "exec"
 msgstr "exec"
 
 #. type: table
-#: doc/guix.texi:10733
+#: doc/guix.texi:12652
 msgid "Execute a command within the context of a running container."
 msgstr "Führt einen Befehl im Kontext der laufenden isolierten Umgebung aus."
 
 #. type: table
-#: doc/guix.texi:10735
+#: doc/guix.texi:12654
 msgid "The syntax is:"
 msgstr "Die Syntax ist:"
 
 #. type: example
-#: doc/guix.texi:10738
+#: doc/guix.texi:12657
 #, no-wrap
 msgid "guix container exec @var{pid} @var{program} @var{arguments}@dots{}\n"
 msgstr "guix container exec @var{PID} @var{Programm} @var{Argumente}…\n"
 
 #. type: table
-#: doc/guix.texi:10744
+#: doc/guix.texi:12663
 msgid "@var{pid} specifies the process ID of the running container.  @var{program} specifies an executable file name within the root file system of the container.  @var{arguments} are the additional options that will be passed to @var{program}."
 msgstr "@var{PID} gibt die Prozess-ID der laufenden isolierten Umgebung an. Als @var{Programm} muss eine ausführbare Datei im Wurzeldateisystem der isolierten Umgebung angegeben werden. Die @var{Argumente} sind die zusätzlichen Befehlszeilenoptionen, die an das @var{Programm} übergeben werden."
 
 #. type: table
-#: doc/guix.texi:10748
+#: doc/guix.texi:12667
 msgid "The following command launches an interactive login shell inside a Guix system container, started by @command{guix system container}, and whose process ID is 9001:"
 msgstr "Der folgende Befehl startet eine interaktive Anmelde-Shell innerhalb einer isolierten Guix-Systemumgebung, gestartet durch @command{guix system container}, dessen Prozess-ID 9001 ist:"
 
 #. type: example
-#: doc/guix.texi:10751
+#: doc/guix.texi:12670
 #, no-wrap
 msgid "guix container exec 9001 /run/current-system/profile/bin/bash --login\n"
 msgstr "guix container exec 9001 /run/current-system/profile/bin/bash --login\n"
 
 #. type: table
-#: doc/guix.texi:10755
+#: doc/guix.texi:12674
 msgid "Note that the @var{pid} cannot be the parent process of a container.  It must be PID 1 of the container or one of its child processes."
 msgstr "Beachten Sie, dass die @var{PID} nicht der Elternprozess der isolierten Umgebung sein darf, sondern PID 1 in der isolierten Umgebung oder einer seiner Kindprozesse sein muss."
 
 #. type: section
-#: doc/guix.texi:10759
+#: doc/guix.texi:12678
 #, no-wrap
 msgid "Invoking @command{guix weather}"
 msgstr "@command{guix weather} aufrufen"
 
 #. type: Plain text
-#: doc/guix.texi:10768
+#: doc/guix.texi:12687
 msgid "Occasionally you're grumpy because substitutes are lacking and you end up building packages by yourself (@pxref{Substitutes}).  The @command{guix weather} command reports on substitute availability on the specified servers so you can have an idea of whether you'll be grumpy today.  It can sometimes be useful info as a user, but it is primarily useful to people running @command{guix publish} (@pxref{Invoking guix publish})."
 msgstr "Manchmal werden Sie schlecht gelaunt sein, weil es zu wenige Substitute gibt und die Pakete bei Ihnen selbst erstellt werden müssen (siehe @ref{Substitutes}). Der Befehl @command{guix weather} zeigt einen Bericht über die Verfügbarkeit von Substituten auf den angegebenen Servern an, damit Sie sich eine Vorstellung davon machen können, wie es heute um Ihre Laune bestellt sein wird. Manchmal bekommt man als Nutzer so hilfreiche Informationen, aber in erster Linie nützt der Befehl den Leuten, die @command{guix publish} benutzen (siehe @ref{Invoking guix publish})."
 
 #. type: cindex
-#: doc/guix.texi:10769
+#: doc/guix.texi:12688
 #, no-wrap
 msgid "statistics, for substitutes"
 msgstr "Statistik, für Substitute"
 
 #. type: cindex
-#: doc/guix.texi:10770
+#: doc/guix.texi:12689
 #, no-wrap
 msgid "availability of substitutes"
 msgstr "Verfügbarkeit von Substituten"
 
 #. type: cindex
-#: doc/guix.texi:10771
+#: doc/guix.texi:12690
 #, no-wrap
 msgid "substitute availability"
 msgstr "Substitutverfügbarkeit"
 
 #. type: cindex
-#: doc/guix.texi:10772
+#: doc/guix.texi:12691
 #, no-wrap
 msgid "weather, substitute availability"
 msgstr "Wetter, Substitutverfügbarkeit"
 
 #. type: Plain text
-#: doc/guix.texi:10774
+#: doc/guix.texi:12693
 msgid "Here's a sample run:"
 msgstr "Hier ist ein Beispiel für einen Aufruf davon:"
 
 #. type: example
-#: doc/guix.texi:10786
+#: doc/guix.texi:12705
 #, no-wrap
 msgid ""
 "$ guix weather --substitute-urls=https://guix.example.org\n"
@@ -19703,7 +22914,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:10796
+#: doc/guix.texi:12715
 #, no-wrap
 msgid ""
 "  9.8% (342 out of 3,470) of the missing items are queued\n"
@@ -19727,76 +22938,76 @@ msgstr ""
 "      aarch64-linux: 6,41 Erstellungen pro Stunde\n"
 
 #. type: cindex
-#: doc/guix.texi:10798
+#: doc/guix.texi:12717
 #, no-wrap
 msgid "continuous integration, statistics"
 msgstr "Kontinuierliche Integration, Statistik"
 
 #. type: Plain text
-#: doc/guix.texi:10809
+#: doc/guix.texi:12728
 msgid "As you can see, it reports the fraction of all the packages for which substitutes are available on the server---regardless of whether substitutes are enabled, and regardless of whether this server's signing key is authorized.  It also reports the size of the compressed archives (``nars'') provided by the server, the size the corresponding store items occupy in the store (assuming deduplication is turned off), and the server's throughput.  The second part gives continuous integration (CI) statistics, if the server supports it.  In addition, using the @option{--coverage} option, @command{guix weather} can list ``important'' package substitutes missing on the server (see below)."
-msgstr "Wie Sie sehen können, wird der Anteil unter allen Paketen angezeigt, für die auf dem Server Substitute verfügbar sind — unabhängig davon, ob Substitute aktiviert sind, und unabhängig davon, ob der signierende Schlüssel des Servers autorisiert ist. Es wird auch über die Größe der komprimierten Archive (die „Nars“) berichtet, die vom Server angeboten werden, sowie über die Größe, die die zugehörigen Store-Objekte im Store belegen würden (unter der Annahme, dass Deduplizierung abgeschaltet ist) und über den Durchsatz des Servers. Der zweite Teil sind Statistiken zur Kontinuierlichen Integration (englisch „Continuous Integration“, kurz CI), wenn der Server dies unterstützt. Des Weiteren kann @command{guix weather}, wenn es mit der Befehlszeilenoption @option{--coverage} aufgerufen wird, „wichtige“ Paketsubstitute, die auf dem Server fehlen, auflisten (siehe unten)."
+msgstr "Wie Sie sehen können, wird der Anteil unter allen Paketen angezeigt, für die auf dem Server Substitute verfügbar sind — unabhängig davon, ob Substitute aktiviert sind, und unabhängig davon, ob der Signierschlüssel des Servers autorisiert ist. Es wird auch über die Größe der komprimierten Archive (die „Nars“) berichtet, die vom Server angeboten werden, sowie über die Größe, die die zugehörigen Store-Objekte im Store belegen würden (unter der Annahme, dass Deduplizierung abgeschaltet ist) und über den Durchsatz des Servers. Der zweite Teil sind Statistiken zur Kontinuierlichen Integration (englisch „Continuous Integration“, kurz CI), wenn der Server dies unterstützt. Des Weiteren kann @command{guix weather}, wenn es mit der Befehlszeilenoption @option{--coverage} aufgerufen wird, „wichtige“ Paketsubstitute, die auf dem Server fehlen, auflisten (siehe unten)."
 
 #. type: Plain text
-#: doc/guix.texi:10815
+#: doc/guix.texi:12734
 msgid "To achieve that, @command{guix weather} queries over HTTP(S) meta-data (@dfn{narinfos}) for all the relevant store items.  Like @command{guix challenge}, it ignores signatures on those substitutes, which is innocuous since the command only gathers statistics and cannot install those substitutes."
 msgstr "Dazu werden mit @command{guix weather} Anfragen über HTTP(S) zu Metadaten (@dfn{Narinfos}) für alle relevanten Store-Objekte gestellt. Wie @command{guix challenge} werden die Signaturen auf den Substituten ignoriert, was harmlos ist, weil der Befehl nur Statistiken sammelt und keine Substitute installieren kann."
 
 #. type: example
-#: doc/guix.texi:10820
+#: doc/guix.texi:12739
 #, no-wrap
 msgid "guix weather @var{options}@dots{} [@var{packages}@dots{}]\n"
-msgstr "guix weather @var{Optionen}… [@var{Pakete}…]\n"
+msgstr "guix weather @var{Optionen}…@: [@var{Pakete}…]\n"
 
 #. type: Plain text
-#: doc/guix.texi:10828
+#: doc/guix.texi:12747
 msgid "When @var{packages} is omitted, @command{guix weather} checks the availability of substitutes for @emph{all} the packages, or for those specified with @option{--manifest}; otherwise it only considers the specified packages.  It is also possible to query specific system types with @option{--system}.  @command{guix weather} exits with a non-zero code when the fraction of available substitutes is below 100%."
 msgstr "Wenn keine @var{Pakete} angegeben werden, prüft @command{guix weather} für @emph{alle} Pakete bzw.@: für die Pakete mit @option{--manifest} angegebenen Manifest, ob Substitute zur Verfügung stehen. Ansonsten wird es nur für die angegebenen Pakete geprüft. Es ist auch möglich, die Suche mit @option{--system} auf bestimmte Systemtypen einzuschränken. Der Rückgabewert von @command{guix weather} ist @emph{nicht} null, wenn weniger als 100% Substitute verfügbar sind."
 
 #. type: Plain text
-#: doc/guix.texi:10830
+#: doc/guix.texi:12749
 msgid "The available options are listed below."
 msgstr "Die verfügbaren Befehlszeilenoptionen folgen."
 
 #. type: table
-#: doc/guix.texi:10836
+#: doc/guix.texi:12755
 msgid "@var{urls} is the space-separated list of substitute server URLs to query.  When this option is omitted, the default set of substitute servers is queried."
 msgstr "@var{URLs} ist eine leerzeichengetrennte Liste anzufragender Substitutserver-URLs. Wird diese Befehlszeilenoption weggelassen, wird die vorgegebene Menge an Substitutservern angefragt."
 
 #. type: table
-#: doc/guix.texi:10842
+#: doc/guix.texi:12761
 msgid "Query substitutes for @var{system}---e.g., @code{aarch64-linux}.  This option can be repeated, in which case @command{guix weather} will query substitutes for several system types."
 msgstr "Substitute für das @var{System} anfragen — z.B.@: für @code{aarch64-linux}. Diese Befehlszeilenoption kann mehrmals angegeben werden, wodurch @command{guix weather} die Substitute für mehrere Systemtypen anfragt."
 
 #. type: table
-#: doc/guix.texi:10848
+#: doc/guix.texi:12767
 msgid "Instead of querying substitutes for all the packages, only ask for those specified in @var{file}.  @var{file} must contain a @dfn{manifest}, as with the @code{-m} option of @command{guix package} (@pxref{Invoking guix package})."
 msgstr "Anstatt die Substitute für alle Pakete anzufragen, werden nur die in der @var{Datei} angegebenen Pakete erfragt. Die @var{Datei} muss ein @dfn{Manifest} enthalten, wie bei der Befehlszeilenoption @code{-m} von @command{guix package} (siehe @ref{Invoking guix package})."
 
 #. type: table
-#: doc/guix.texi:10851
+#: doc/guix.texi:12770
 msgid "This option can be repeated several times, in which case the manifests are concatenated."
 msgstr "Wenn diese Befehlszeilenoption mehrmals wiederholt angegeben wird, werden die Manifeste aneinandergehängt."
 
 #. type: item
-#: doc/guix.texi:10852
+#: doc/guix.texi:12771
 #, no-wrap
 msgid "--coverage[=@var{count}]"
 msgstr "--coverage[=@var{Anzahl}]"
 
 #. type: itemx
-#: doc/guix.texi:10853
+#: doc/guix.texi:12772
 #, no-wrap
 msgid "-c [@var{count}]"
 msgstr "-c [@var{Anzahl}]"
 
 #. type: table
-#: doc/guix.texi:10859
+#: doc/guix.texi:12778
 msgid "Report on substitute coverage for packages: list packages with at least @var{count} dependents (zero by default) for which substitutes are unavailable.  Dependent packages themselves are not listed: if @var{b} depends on @var{a} and @var{a} has no substitutes, only @var{a} is listed, even though @var{b} usually lacks substitutes as well.  The result looks like this:"
 msgstr "Einen Bericht über die Substitutabdeckung für Pakete ausgeben, d.h.@: Pakete mit mindestens @var{Anzahl}-vielen Abhängigen (voreingestellt mindestens null) anzeigen, für die keine Substitute verfügbar sind. Die abhängigen Pakete werden selbst nicht aufgeführt: Wenn @var{b} von @var{a} abhängt und Substitute für @var{a} fehlen, wird nur @var{a} aufgeführt, obwohl dann in der Regel auch die Substitute für @var{b} fehlen. Das Ergebnis sieht so aus:"
 
 #. type: example
-#: doc/guix.texi:10873
+#: doc/guix.texi:12792
 #, no-wrap
 msgid ""
 "$ guix weather --substitute-urls=@value{SUBSTITUTE-URL} -c 10\n"
@@ -19826,39 +23037,39 @@ msgstr ""
 "    …\n"
 
 #. type: table
-#: doc/guix.texi:10878
+#: doc/guix.texi:12797
 msgid "What this example shows is that @code{kcoreaddons} and presumably the 58 packages that depend on it have no substitutes at @code{ci.guix.info}; likewise for @code{qgpgme} and the 46 packages that depend on it."
 msgstr "Was man hier in diesem Beispiel sehen kann, ist, dass es für @code{kcoreaddons} und vermutlich die 58 Pakete, die davon abhängen, auf @code{ci.guix.info} keine Substitute gibt; Gleiches gilt für @code{qgpgme} und die 46 Pakete, die davon abhängen."
 
 #. type: table
-#: doc/guix.texi:10882
+#: doc/guix.texi:12801
 msgid "If you are a Guix developer, or if you are taking care of this build farm, you'll probably want to have a closer look at these packages: they may simply fail to build."
 msgstr "Wenn Sie ein Guix-Entwickler sind oder sich um diese Erstellungsfarm kümmern, wollen Sie sich diese Pakete vielleicht genauer anschauen. Es kann sein, dass sie schlicht nie erfolgreich erstellt werden können."
 
 #. type: item
-#: doc/guix.texi:10883
+#: doc/guix.texi:12802
 #, no-wrap
 msgid "--display-missing"
 msgstr "--display-missing"
 
 #. type: table
-#: doc/guix.texi:10885
+#: doc/guix.texi:12804
 msgid "Display the list of store items for which substitutes are missing."
 msgstr "Eine Liste derjenigen Store-Objekte anzeigen, für die @emph{keine} Substitute verfügbar sind."
 
 #. type: section
-#: doc/guix.texi:10888
+#: doc/guix.texi:12807
 #, no-wrap
 msgid "Invoking @command{guix processes}"
 msgstr "@command{guix processes} aufrufen"
 
 #. type: Plain text
-#: doc/guix.texi:10896
+#: doc/guix.texi:12815
 msgid "The @command{guix processes} command can be useful to developers and system administrators, especially on multi-user machines and on build farms: it lists the current sessions (connections to the daemon), as well as information about the processes involved@footnote{Remote sessions, when @command{guix-daemon} is started with @option{--listen} specifying a TCP endpoint, are @emph{not} listed.}.  Here's an example of the information it returns:"
 msgstr "Der Befehl @command{guix processes} kann sich für Entwickler und Systemadministratoren als nützlich erweisen, besonders auf Maschinen mit mehreren Nutzern und auf Erstellungsfarmen. Damit werden die aktuellen Sitzungen (also Verbindungen zum Daemon) sowie Informationen über die beteiligten Prozesse aufgelistet@footnote{Entfernte Sitzungen, wenn @command{guix-daemon} mit @option{--listen} unter Angabe eines TCP-Endpunkts gestartet wurde, werden @emph{nicht} aufgelistet.}. Hier ist ein Beispiel für die davon gelieferten Informationen:"
 
 #. type: example
-#: doc/guix.texi:10902
+#: doc/guix.texi:12821
 #, no-wrap
 msgid ""
 "$ sudo guix processes\n"
@@ -19874,7 +23085,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:10906
+#: doc/guix.texi:12825
 #, no-wrap
 msgid ""
 "SessionPID: 19402\n"
@@ -19888,7 +23099,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:10916
+#: doc/guix.texi:12835
 #, no-wrap
 msgid ""
 "SessionPID: 19444\n"
@@ -19912,22 +23123,22 @@ msgstr ""
 "ChildProcess: 27793: guix offload x86_64-linux 7200 1 28800\n"
 
 #. type: Plain text
-#: doc/guix.texi:10923
+#: doc/guix.texi:12842
 msgid "In this example we see that @command{guix-daemon} has three clients: @command{guix environment}, @command{guix publish}, and the Cuirass continuous integration tool; their process identifier (PID) is given by the @code{ClientPID} field.  The @code{SessionPID} field gives the PID of the @command{guix-daemon} sub-process of this particular session."
 msgstr "In diesem Beispiel sehen wir, dass @command{guix-daemon} drei Clients hat: @command{guix environment}, @command{guix publish} und das Werkzeug Cuirass zur Kontinuierlichen Integration. Deren Prozesskennung (PID) ist jeweils im @code{ClientPID}-Feld zu sehen. Das Feld @code{SessionPID} zeigt die PID des @command{guix-daemon}-Unterprozesses dieser bestimmten Sitzung."
 
 #. type: Plain text
-#: doc/guix.texi:10930
-msgid "The @code{LockHeld} fields show which store items are currently locked by this session, which corresponds to store items being built or substituted (the @code{LockHeld} field is not displayed when @command{guix processes} is not running as root.)  Last, by looking at the @code{ChildProcess} field, we understand that these three builds are being offloaded (@pxref{Daemon Offload Setup})."
-msgstr "Das Feld @code{LockHeld} zeigt an, welche Store-Objekte derzeit durch die Sitzung gesperrt sind, d.h.@: welche Store-Objekte zur Zeit erstellt oder substituiert werden (das @code{LockHeld}-Feld wird nicht angezeigt, wenn @command{guix processes} nicht als Administratornutzer root ausgeführt wird). Letztlich sehen wir am @code{ChildProcess}-Feld oben, dass diese drei Erstellungen hier ausgelagert (englisch „offloaded“) werden (siehe @ref{Daemon Offload Setup})."
+#: doc/guix.texi:12849
+msgid "The @code{LockHeld} fields show which store items are currently locked by this session, which corresponds to store items being built or substituted (the @code{LockHeld} field is not displayed when @command{guix processes} is not running as root).  Last, by looking at the @code{ChildProcess} field, we understand that these three builds are being offloaded (@pxref{Daemon Offload Setup})."
+msgstr "Das Feld @code{LockHeld} zeigt an, welche Store-Objekte derzeit durch die Sitzung gesperrt sind, d.h.@: welche Store-Objekte zurzeit erstellt oder substituiert werden (das @code{LockHeld}-Feld wird nicht angezeigt, wenn @command{guix processes} nicht als Administratornutzer root ausgeführt wird). Letztlich sehen wir am @code{ChildProcess}-Feld oben, dass diese drei Erstellungen hier ausgelagert (englisch „offloaded“) werden (siehe @ref{Daemon Offload Setup})."
 
 #. type: Plain text
-#: doc/guix.texi:10935
+#: doc/guix.texi:12854
 msgid "The output is in Recutils format so we can use the handy @command{recsel} command to select sessions of interest (@pxref{Selection Expressions,,, recutils, GNU recutils manual}).  As an example, the command shows the command line and PID of the client that triggered the build of a Perl package:"
 msgstr "Die Ausgabe ist im Recutils-Format, damit wir den praktischen @command{recsel}-Befehl benutzen können, um uns interessierende Sitzungen auszuwählen (siehe @ref{Selection Expressions,,, recutils, GNU recutils manual}). Zum Beispiel zeigt dieser Befehl die Befehlszeile und PID des Clients an, der die Erstellung des Perl-Pakets ausgelöst hat:"
 
 #. type: example
-#: doc/guix.texi:10941
+#: doc/guix.texi:12860
 #, no-wrap
 msgid ""
 "$ sudo guix processes | \\\n"
@@ -19941,90 +23152,90 @@ msgstr ""
 "ClientCommand: cuirass --cache-directory /var/cache/cuirass …\n"
 
 #. type: cindex
-#: doc/guix.texi:10946
+#: doc/guix.texi:12865
 #, no-wrap
 msgid "system configuration"
 msgstr "Systemkonfiguration"
 
 #. type: Plain text
-#: doc/guix.texi:10952
+#: doc/guix.texi:12871
 msgid "Guix System supports a consistent whole-system configuration mechanism.  By that we mean that all aspects of the global system configuration---such as the available system services, timezone and locale settings, user accounts---are declared in a single place.  Such a @dfn{system configuration} can be @dfn{instantiated}---i.e., effected."
 msgstr "Guix System unterstützt einen Mechanismus zur konsistenten Konfiguration des gesamten Systems. Damit meinen wir, dass alle Aspekte der globalen Systemkonfiguration an einem Ort stehen, d.h.@: die zur Verfügung gestellten Systemdienste, die Zeitzone und Einstellungen zur Locale (also die Anpassung an regionale Gepflogenheiten und Sprachen) sowie Benutzerkonten. Sie alle werden an derselben Stelle deklariert. So eine @dfn{Systemkonfiguration} kann @dfn{instanziiert}, also umgesetzt, werden."
 
 #. type: Plain text
-#: doc/guix.texi:10962
+#: doc/guix.texi:12881
 msgid "One of the advantages of putting all the system configuration under the control of Guix is that it supports transactional system upgrades, and makes it possible to roll back to a previous system instantiation, should something go wrong with the new one (@pxref{Features}).  Another advantage is that it makes it easy to replicate the exact same configuration across different machines, or at different points in time, without having to resort to additional administration tools layered on top of the own tools of the system."
 msgstr "Einer der Vorteile, die ganze Systemkonfiguration unter die Kontrolle von Guix zu stellen, ist, dass so transaktionelle Systemaktualisierungen möglich werden und dass diese rückgängig gemacht werden können, wenn das aktualisierte System nicht richtig funktioniert (siehe @ref{Features}). Ein anderer Vorteil ist, dass dieselbe Systemkonfiguration leicht auf einer anderen Maschine oder zu einem späteren Zeitpunkt benutzt werden kann, ohne dazu eine weitere Schicht administrativer Werkzeuge über den systemeigenen Werkzeugen einsetzen zu müssen."
 
 #. type: Plain text
-#: doc/guix.texi:10967
+#: doc/guix.texi:12886
 msgid "This section describes this mechanism.  First we focus on the system administrator's viewpoint---explaining how the system is configured and instantiated.  Then we show how this mechanism can be extended, for instance to support new system services."
 msgstr "In diesem Abschnitt wird dieser Mechanismus beschrieben. Zunächst betrachten wir ihn aus der Perspektive eines Administrators. Dabei wird erklärt, wie das System konfiguriert und instanziiert werden kann. Dann folgt eine Demonstration, wie der Mechanismus erweitert werden kann, etwa um neue Systemdienste zu unterstützen."
 
 #. type: Plain text
-#: doc/guix.texi:10996
+#: doc/guix.texi:12915
 msgid "The operating system is configured by providing an @code{operating-system} declaration in a file that can then be passed to the @command{guix system} command (@pxref{Invoking guix system}).  A simple setup, with the default system services, the default Linux-Libre kernel, initial RAM disk, and boot loader looks like this:"
 msgstr "Das Betriebssystem können Sie konfigurieren, indem Sie eine @code{operating-system}-Deklaration in einer Datei speichern, die Sie dann dem Befehl @command{guix system} übergeben (siehe @ref{Invoking guix system}). Eine einfache Konfiguration mit den vorgegebenen Systemdiensten und dem vorgegebenen Linux-Libre als Kernel und mit einer initialen RAM-Disk und einem Bootloader sieht so aus:"
 
 #. type: code{#1}
-#: doc/guix.texi:10997 doc/guix.texi:27149
+#: doc/guix.texi:12916 doc/guix.texi:31303
 #, no-wrap
 msgid "operating-system"
 msgstr "operating-system"
 
 #. type: include
-#: doc/guix.texi:10999
+#: doc/guix.texi:12918
 #, no-wrap
 msgid "os-config-bare-bones.texi"
 msgstr "os-config-bare-bones.texi"
 
 #. type: Plain text
-#: doc/guix.texi:11006
+#: doc/guix.texi:12925
 msgid "This example should be self-describing.  Some of the fields defined above, such as @code{host-name} and @code{bootloader}, are mandatory.  Others, such as @code{packages} and @code{services}, can be omitted, in which case they get a default value."
 msgstr "Dieses Beispiel sollte selbsterklärend sein. Manche der Felder oben, wie etwa @code{host-name} und @code{bootloader}, müssen angegeben werden. Andere sind optional, wie etwa @code{packages} und @code{services}, sind optional; werden sie nicht angegeben, nehmen sie einen Vorgabewert an."
 
 #. type: Plain text
-#: doc/guix.texi:11011
+#: doc/guix.texi:12930
 msgid "Below we discuss the effect of some of the most important fields (@pxref{operating-system Reference}, for details about all the available fields), and how to @dfn{instantiate} the operating system using @command{guix system}."
 msgstr "Im Folgenden werden die Effekte von einigen der wichtigsten Feldern erläutert (siehe @ref{operating-system Reference} für Details zu allen verfügbaren Feldern), dann wird beschrieben, wie man das Betriebssystem mit @command{guix system} @dfn{instanziieren} kann."
 
 #. type: unnumberedsubsec
-#: doc/guix.texi:11012
+#: doc/guix.texi:12931
 #, no-wrap
 msgid "Bootloader"
 msgstr "Bootloader"
 
 #. type: cindex
-#: doc/guix.texi:11014
+#: doc/guix.texi:12933
 #, no-wrap
 msgid "legacy boot, on Intel machines"
 msgstr "Legacy-Boot, auf Intel-Maschinen"
 
 #. type: cindex
-#: doc/guix.texi:11015
+#: doc/guix.texi:12934
 #, no-wrap
 msgid "BIOS boot, on Intel machines"
 msgstr "BIOS-Boot, auf Intel-Maschinen"
 
 #. type: cindex
-#: doc/guix.texi:11016
+#: doc/guix.texi:12935
 #, no-wrap
 msgid "UEFI boot"
 msgstr "UEFI-Boot"
 
 #. type: cindex
-#: doc/guix.texi:11017
+#: doc/guix.texi:12936
 #, no-wrap
 msgid "EFI boot"
 msgstr "EFI-Boot"
 
 #. type: Plain text
-#: doc/guix.texi:11023
+#: doc/guix.texi:12942
 msgid "The @code{bootloader} field describes the method that will be used to boot your system.  Machines based on Intel processors can boot in ``legacy'' BIOS mode, as in the example above.  However, more recent machines rely instead on the @dfn{Unified Extensible Firmware Interface} (UEFI) to boot.  In that case, the @code{bootloader} field should contain something along these lines:"
 msgstr "Das @code{bootloader}-Feld beschreibt, mit welcher Methode Ihr System „gebootet“ werden soll. Maschinen, die auf Intel-Prozessoren basieren, können im alten „Legacy“-BIOS-Modus gebootet werden, wie es im obigen Beispiel der Fall wäre. Neuere Maschinen benutzen stattdessen das @dfn{Unified Extensible Firmware Interface} (UEFI) zum Booten. In diesem Fall sollte das @code{bootloader}-Feld in etwa so aussehen:"
 
 #. type: lisp
-#: doc/guix.texi:11028
+#: doc/guix.texi:12947
 #, no-wrap
 msgid ""
 "(bootloader-configuration\n"
@@ -20036,29 +23247,29 @@ msgstr ""
 "  (target \"/boot/efi\"))\n"
 
 #. type: Plain text
-#: doc/guix.texi:11032
+#: doc/guix.texi:12951
 msgid "@xref{Bootloader Configuration}, for more information on the available configuration options."
 msgstr "Siehe den Abschnitt @ref{Bootloader Configuration} für weitere Informationen zu den verfügbaren Konfigurationsoptionen."
 
 #. type: unnumberedsubsec
-#: doc/guix.texi:11033
+#: doc/guix.texi:12952
 #, no-wrap
 msgid "Globally-Visible Packages"
 msgstr "global sichtbare Pakete"
 
 #. type: vindex
-#: doc/guix.texi:11035
+#: doc/guix.texi:12954
 #, no-wrap
 msgid "%base-packages"
 msgstr "%base-packages"
 
 #. type: Plain text
-#: doc/guix.texi:11048
-msgid "The @code{packages} field lists packages that will be globally visible on the system, for all user accounts---i.e., in every user's @code{PATH} environment variable---in addition to the per-user profiles (@pxref{Invoking guix package}).  The @code{%base-packages} variable provides all the tools one would expect for basic user and administrator tasks---including the GNU Core Utilities, the GNU Networking Utilities, the GNU Zile lightweight text editor, @command{find}, @command{grep}, etc.  The example above adds GNU@tie{}Screen to those, taken from the @code{(gnu packages screen)} module (@pxref{Package Modules}).  The @code{(list package output)} syntax can be used to add a specific output of a package:"
-msgstr "Im Feld @code{packages} werden Pakete aufgeführt, die auf dem System für alle Benutzerkonten global sichtbar sein sollen, d.h.@: in der @code{PATH}-Umgebungsvariablen jedes Nutzers, zusätzlich zu den nutzereigenen Profilen (siehe @ref{Invoking guix package}). Die Variable @code{%base-packages} bietet alle Werkzeuge, die man für grundlegende Nutzer- und Administratortätigkeiten erwarten würde, einschließlich der GNU Core Utilities, der GNU Networking Utilities, des leichtgewichtigen Texteditors GNU Zile, @command{find}, @command{grep} und so weiter. Obiges Beispiel fügt zu diesen noch das Programm GNU@tie{}Screen hinzu, welches aus dem Modul @code{(gnu packages screen)} genommen wird (siehe @ref{Package Modules}). Die Syntax @code{(list package output)} kann benutzt werden, um eine bestimmte Ausgabe eines Pakets auszuwählen:"
+#: doc/guix.texi:12967
+msgid "The @code{packages} field lists packages that will be globally visible on the system, for all user accounts---i.e., in every user's @env{PATH} environment variable---in addition to the per-user profiles (@pxref{Invoking guix package}).  The @code{%base-packages} variable provides all the tools one would expect for basic user and administrator tasks---including the GNU Core Utilities, the GNU Networking Utilities, the GNU Zile lightweight text editor, @command{find}, @command{grep}, etc.  The example above adds GNU@tie{}Screen to those, taken from the @code{(gnu packages screen)} module (@pxref{Package Modules}).  The @code{(list package output)} syntax can be used to add a specific output of a package:"
+msgstr "Im Feld @code{packages} werden Pakete aufgeführt, die auf dem System für alle Benutzerkonten global sichtbar sein sollen, d.h.@: in der @env{PATH}-Umgebungsvariablen jedes Nutzers, zusätzlich zu den nutzereigenen Profilen (siehe @ref{Invoking guix package}). Die Variable @code{%base-packages} bietet alle Werkzeuge, die man für grundlegende Nutzer- und Administratortätigkeiten erwarten würde, einschließlich der GNU Core Utilities, der GNU Networking Utilities, des leichtgewichtigen Texteditors GNU Zile, @command{find}, @command{grep} und so weiter. Obiges Beispiel fügt zu diesen noch das Programm GNU@tie{}Screen hinzu, welches aus dem Modul @code{(gnu packages screen)} genommen wird (siehe @ref{Package Modules}). Die Syntax @code{(list package output)} kann benutzt werden, um eine bestimmte Ausgabe eines Pakets auszuwählen:"
 
 #. type: lisp
-#: doc/guix.texi:11052
+#: doc/guix.texi:12971
 #, no-wrap
 msgid ""
 "(use-modules (gnu packages))\n"
@@ -20070,7 +23281,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:11057
+#: doc/guix.texi:12976
 #, no-wrap
 msgid ""
 "(operating-system\n"
@@ -20084,18 +23295,18 @@ msgstr ""
 "                  %base-packages)))\n"
 
 #. type: findex
-#: doc/guix.texi:11059
+#: doc/guix.texi:12978
 #, no-wrap
 msgid "specification->package"
 msgstr "specification->package"
 
 #. type: Plain text
-#: doc/guix.texi:11068
+#: doc/guix.texi:12987
 msgid "Referring to packages by variable name, like @code{bind} above, has the advantage of being unambiguous; it also allows typos and such to be diagnosed right away as ``unbound variables''.  The downside is that one needs to know which module defines which package, and to augment the @code{use-package-modules} line accordingly.  To avoid that, one can use the @code{specification->package} procedure of the @code{(gnu packages)} module, which returns the best package for a given name or name and version:"
 msgstr "Sich auf Pakete anhand ihres Variablennamens zu beziehen, wie oben bei @code{bind}, hat den Vorteil, dass der Name eindeutig ist; Tippfehler werden direkt als „unbound variables“ gemeldet. Der Nachteil ist, dass man wissen muss, in welchem Modul ein Paket definiert wird, um die Zeile mit @code{use-package-modules} entsprechend zu ergänzen. Um dies zu vermeiden, kann man auch die Prozedur @code{specification->package} aus dem Modul @code{(gnu packages)} aufrufen, welche das einem angegebenen Namen oder Name-Versions-Paar zu Grunde liegende Paket liefert:"
 
 #. type: lisp
-#: doc/guix.texi:11071
+#: doc/guix.texi:12990
 #, no-wrap
 msgid ""
 "(use-modules (gnu packages))\n"
@@ -20105,7 +23316,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:11077
+#: doc/guix.texi:12996
 #, no-wrap
 msgid ""
 "(operating-system\n"
@@ -20121,52 +23332,52 @@ msgstr ""
 "                    %base-packages)))\n"
 
 #. type: unnumberedsubsec
-#: doc/guix.texi:11079
+#: doc/guix.texi:12998
 #, no-wrap
 msgid "System Services"
 msgstr "Systemdienste"
 
 #. type: cindex
-#: doc/guix.texi:11081 doc/guix.texi:26072 doc/guix.texi:27362
+#: doc/guix.texi:13000 doc/guix.texi:30114 doc/guix.texi:31528
 #, no-wrap
 msgid "services"
 msgstr "services"
 
 #. type: vindex
-#: doc/guix.texi:11082
+#: doc/guix.texi:13001
 #, no-wrap
 msgid "%base-services"
 msgstr "%base-services"
 
 #. type: Plain text
-#: doc/guix.texi:11092
+#: doc/guix.texi:13011
 msgid "The @code{services} field lists @dfn{system services} to be made available when the system starts (@pxref{Services}).  The @code{operating-system} declaration above specifies that, in addition to the basic services, we want the OpenSSH secure shell daemon listening on port 2222 (@pxref{Networking Services, @code{openssh-service-type}}).  Under the hood, @code{openssh-service-type} arranges so that @command{sshd} is started with the right command-line options, possibly with supporting configuration files generated as needed (@pxref{Defining Services})."
 msgstr "Das Feld @code{services} listet @dfn{Systemdienste} auf, die zur Verfügung stehen sollen, wenn das System startet (siehe @ref{Services}). Die @code{operating-system}-Deklaration oben legt fest, dass wir neben den grundlegenden Basis-Diensten auch wollen, dass der OpenSSH-Secure-Shell-Daemon auf Port 2222 lauscht (siehe @ref{Networking Services, @code{openssh-service-type}}). Intern sorgt der @code{openssh-service-type} dafür, dass @code{sshd} mit den richtigen Befehlszeilenoptionen aufgerufen wird, je nach Systemkonfiguration werden auch für dessen Betrieb nötige Konfigurationsdateien erstellt (siehe @ref{Defining Services})."
 
 #. type: cindex
-#: doc/guix.texi:11093
+#: doc/guix.texi:13012
 #, no-wrap
 msgid "customization, of services"
 msgstr "Anpassung, von Diensten"
 
 #. type: findex
-#: doc/guix.texi:11094
+#: doc/guix.texi:13013
 #, no-wrap
 msgid "modify-services"
 msgstr "modify-services"
 
 #. type: Plain text
-#: doc/guix.texi:11098
+#: doc/guix.texi:13017
 msgid "Occasionally, instead of using the base services as is, you will want to customize them.  To do this, use @code{modify-services} (@pxref{Service Reference, @code{modify-services}}) to modify the list."
 msgstr "Gelegentlich werden Sie die Basis-Dienste nicht einfach so, wie sie sind, benutzen, sondern anpassen wollen. Benutzen Sie @code{modify-services} (siehe @ref{Service Reference, @code{modify-services}}), um die Liste der Basis-Dienste zu modifizieren."
 
 #. type: Plain text
-#: doc/guix.texi:11103
+#: doc/guix.texi:13022
 msgid "For example, suppose you want to modify @code{guix-daemon} and Mingetty (the console log-in) in the @code{%base-services} list (@pxref{Base Services, @code{%base-services}}).  To do that, you can write the following in your operating system declaration:"
 msgstr "Wenn Sie zum Beispiel @code{guix-daemon} und Mingetty (das Programm, womit Sie sich auf der Konsole anmelden) in der @code{%base-services}-Liste modifizieren möchten (siehe @ref{Base Services, @code{%base-services}}), schreiben Sie das Folgende in Ihre Betriebssystemdeklaration:"
 
 #. type: lisp
-#: doc/guix.texi:11116
+#: doc/guix.texi:13039
 #, no-wrap
 msgid ""
 "(define %my-services\n"
@@ -20175,11 +23386,15 @@ msgid ""
 "    (guix-service-type config =>\n"
 "                       (guix-configuration\n"
 "                        (inherit config)\n"
-"                        (use-substitutes? #f)\n"
-"                        (extra-options '(\"--gc-keep-derivations\"))))\n"
+"                        ;; Fetch substitutes from example.org.\n"
+"                        (substitute-urls\n"
+"                          (list \"https://example.org/guix\"\n"
+"                                \"https://ci.guix.gnu.org\"))))\n"
 "    (mingetty-service-type config =>\n"
 "                           (mingetty-configuration\n"
-"                            (inherit config)))))\n"
+"                            (inherit config)\n"
+"                            ;; Automatially log in as \"guest\".\n"
+"                            (auto-login \"guest\")))))\n"
 "\n"
 msgstr ""
 "(define %my-services\n"
@@ -20188,15 +23403,19 @@ msgstr ""
 "    (guix-service-type config =>\n"
 "                       (guix-configuration\n"
 "                        (inherit config)\n"
-"                        (use-substitutes? #f)\n"
-"                        (extra-options '(\"--gc-keep-derivations\"))))\n"
+"                        ;; Substitute von example.org herunterladen.\n"
+"                        (substitute-urls\n"
+"                          (list \"https://example.org/guix\"\n"
+"                                \"https://ci.guix.gnu.org\"))))\n"
 "    (mingetty-service-type config =>\n"
 "                           (mingetty-configuration\n"
-"                            (inherit config)))))\n"
+"                            (inherit config)\n"
+"                            ;; Automatisch als \"gast\" anmelden.\n"
+"                            (auto-login \"gast\")))))\n"
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:11120
+#: doc/guix.texi:13043
 #, no-wrap
 msgid ""
 "(operating-system\n"
@@ -20208,49 +23427,49 @@ msgstr ""
 "  (services %my-services))\n"
 
 #. type: Plain text
-#: doc/guix.texi:11131
+#: doc/guix.texi:13054
 msgid "This changes the configuration---i.e., the service parameters---of the @code{guix-service-type} instance, and that of all the @code{mingetty-service-type} instances in the @code{%base-services} list.  Observe how this is accomplished: first, we arrange for the original configuration to be bound to the identifier @code{config} in the @var{body}, and then we write the @var{body} so that it evaluates to the desired configuration.  In particular, notice how we use @code{inherit} to create a new configuration which has the same values as the old configuration, but with a few modifications."
 msgstr "Dadurch ändert sich die Konfiguration — d.h.@: die Dienst-Parameter — der @code{guix-service-type}-Instanz und die aller @code{mingetty-service-type}-Instanzen in der @code{%base-services}-Liste. Das funktioniert so: Zunächst arrangieren wir, dass die ursprüngliche Konfiguration an den Bezeichner @code{config} im @var{Rumpf} gebunden wird, dann schreiben wir den @var{Rumpf}, damit er zur gewünschten Konfiguration ausgewertet wird. Beachten Sie insbesondere, wie wir mit @code{inherit} eine neue Konfiguration erzeugen, die dieselben Werte wie die alte Konfiguration hat, aber mit ein paar Modifikationen."
 
 #. type: Plain text
-#: doc/guix.texi:11138
+#: doc/guix.texi:13061
 msgid "The configuration for a typical ``desktop'' usage, with an encrypted root partition, the X11 display server, GNOME and Xfce (users can choose which of these desktop environments to use at the log-in screen by pressing @kbd{F1}), network management, power management, and more, would look like this:"
 msgstr "Die Konfiguration für typische Nutzung auf Heim- und Arbeitsrechnern, mit einer verschlüsselten Partition für das Wurzeldateisystem, einem X11-Anzeigeserver, GNOME und Xfce (Benutzer können im Anmeldebildschirm auswählen, welche dieser Arbeitsumgebungen sie möchten, indem sie die Taste @kbd{F1} drücken), Netzwerkverwaltung, Verwaltungswerkzeugen für den Energieverbrauch, und Weiteres, würde so aussehen:"
 
 #. type: include
-#: doc/guix.texi:11140
+#: doc/guix.texi:13063
 #, no-wrap
 msgid "os-config-desktop.texi"
 msgstr "os-config-desktop.texi"
 
 #. type: Plain text
-#: doc/guix.texi:11145
+#: doc/guix.texi:13068
 msgid "A graphical system with a choice of lightweight window managers instead of full-blown desktop environments would look like this:"
 msgstr "Ein grafisches System mit einer Auswahl an leichtgewichtigen Fenster-Managern statt voll ausgestatteten Arbeitsumgebungen würde so aussehen:"
 
 #. type: include
-#: doc/guix.texi:11147
+#: doc/guix.texi:13070
 #, no-wrap
 msgid "os-config-lightweight-desktop.texi"
 msgstr "os-config-lightweight-desktop.texi"
 
 #. type: Plain text
-#: doc/guix.texi:11153
+#: doc/guix.texi:13076
 msgid "This example refers to the @file{/boot/efi} file system by its UUID, @code{1234-ABCD}.  Replace this UUID with the right UUID on your system, as returned by the @command{blkid} command."
 msgstr "Dieses Beispiel bezieht sich auf das Dateisystem hinter @file{/boot/efi} über dessen UUID, @code{1234-ABCD}. Schreiben Sie statt dieser UUID die richtige UUID für Ihr System, wie sie der Befehl @command{blkid} liefert."
 
 #. type: Plain text
-#: doc/guix.texi:11157
+#: doc/guix.texi:13080
 msgid "@xref{Desktop Services}, for the exact list of services provided by @code{%desktop-services}.  @xref{X.509 Certificates}, for background information about the @code{nss-certs} package that is used here."
 msgstr "Im Abschnitt @ref{Desktop Services} finden Sie eine genaue Liste der unter @code{%desktop-services} angebotenen Dienste. Der Abschnitt @ref{X.509 Certificates} hat Hintergrundinformationen über das @code{nss-certs}-Paket, das hier benutzt wird."
 
 #. type: Plain text
-#: doc/guix.texi:11164
+#: doc/guix.texi:13087
 msgid "Again, @code{%desktop-services} is just a list of service objects.  If you want to remove services from there, you can do so using the procedures for list filtering (@pxref{SRFI-1 Filtering and Partitioning,,, guile, GNU Guile Reference Manual}).  For instance, the following expression returns a list that contains all the services in @code{%desktop-services} minus the Avahi service:"
-msgstr "Beachten Sie, dass @code{%desktop-services} nur eine Liste von die Dienste repräsentierenden service-Objekten ist. Wenn Sie Dienste daraus entfernen möchten, können Sie dazu die Prozeduren zum Filtern von Listen benutzen (siehe @ref{SRFI-1 Filtering and Partitioning,,, guile, GNU Guile Reference Manual}). Beispielsweise liefert der folgende Ausdruck eine Liste mit allen Diensten von @code{%desktop-services} außer dem Avahi-Dienst."
+msgstr "Beachten Sie, dass @code{%desktop-services} nur eine Liste von die Dienste repräsentierenden service-Objekten ist. Wenn Sie Dienste daraus entfernen möchten, können Sie dazu die Prozeduren zum Filtern von Listen benutzen (siehe @ref{SRFI-1 Filtering and Partitioning,,, guile, Referenzhandbuch zu GNU Guile}). Beispielsweise liefert der folgende Ausdruck eine Liste mit allen Diensten von @code{%desktop-services} außer dem Avahi-Dienst."
 
 #. type: lisp
-#: doc/guix.texi:11169
+#: doc/guix.texi:13092
 #, no-wrap
 msgid ""
 "(remove (lambda (service)\n"
@@ -20262,331 +23481,407 @@ msgstr ""
 "        %desktop-services)\n"
 
 #. type: unnumberedsubsec
-#: doc/guix.texi:11171
+#: doc/guix.texi:13094
 #, no-wrap
 msgid "Instantiating the System"
 msgstr "Das System instanziieren"
 
 #. type: Plain text
-#: doc/guix.texi:11178
+#: doc/guix.texi:13101
 msgid "Assuming the @code{operating-system} declaration is stored in the @file{my-system-config.scm} file, the @command{guix system reconfigure my-system-config.scm} command instantiates that configuration, and makes it the default GRUB boot entry (@pxref{Invoking guix system})."
 msgstr "Angenommen, Sie haben die @code{operating-system}-Deklaration in einer Datei @file{my-system-config.scm} gespeichert, dann instanziiert der Befehl @command{guix system reconfigure my-system-config.scm} diese Konfiguration und macht sie zum voreingestellten GRUB-Boot-Eintrag (siehe @ref{Invoking guix system})."
 
 #. type: Plain text
-#: doc/guix.texi:11186
+#: doc/guix.texi:13109
 msgid "The normal way to change the system configuration is by updating this file and re-running @command{guix system reconfigure}.  One should never have to touch files in @file{/etc} or to run commands that modify the system state such as @command{useradd} or @command{grub-install}.  In fact, you must avoid that since that would not only void your warranty but also prevent you from rolling back to previous versions of your system, should you ever need to."
 msgstr "Der normale Weg, die Systemkonfiguration nachträglich zu ändern, ist, die Datei zu aktualisieren und @command{guix system reconfigure} erneut auszuführen. Man sollte nie die Dateien in @file{/etc} bearbeiten oder den Systemzustand mit Befehlen wie @command{useradd} oder @command{grub-install} verändern. Tatsächlich müssen Sie das ausdrücklich vermeiden, sonst verfällt nicht nur Ihre Garantie, sondern Sie können Ihr System auch nicht mehr auf eine alte Version des Systems zurücksetzen, falls das jemals notwendig wird."
 
 #. type: cindex
-#: doc/guix.texi:11187
+#: doc/guix.texi:13110
 #, no-wrap
 msgid "roll-back, of the operating system"
 msgstr "Zurücksetzen, des Betriebssystems"
 
 #. type: Plain text
-#: doc/guix.texi:11197
+#: doc/guix.texi:13120
 msgid "Speaking of roll-back, each time you run @command{guix system reconfigure}, a new @dfn{generation} of the system is created---without modifying or deleting previous generations.  Old system generations get an entry in the bootloader boot menu, allowing you to boot them in case something went wrong with the latest generation.  Reassuring, no? The @command{guix system list-generations} command lists the system generations available on disk.  It is also possible to roll back the system via the commands @command{guix system roll-back} and @command{guix system switch-generation}."
 msgstr "Zurücksetzen bezieht sich hierbei darauf, dass jedes Mal, wenn Sie @command{guix system reconfigure} ausführen, eine neue @dfn{Generation} des Systems erzeugt wird — ohne vorherige Generationen zu verändern. Alte Systemgenerationen bekommen einen Eintrag im Boot-Menü des Bootloaders, womit Sie alte Generationen beim Starten des Rechners auswählen können, wenn mit der neuesten Generation etwas nicht stimmt. Eine beruhigende Vorstellung, oder? Der Befehl @command{guix system list-generations} führt die auf der Platte verfügbaren Systemgenerationen auf. Es ist auch möglich, das System mit den Befehlen @command{guix system roll-back} und @command{guix system switch-generation} zurückzusetzen."
 
 #. type: Plain text
-#: doc/guix.texi:11203
+#: doc/guix.texi:13126
 msgid "Although the @command{guix system reconfigure} command will not modify previous generations, you must take care when the current generation is not the latest (e.g., after invoking @command{guix system roll-back}), since the operation might overwrite a later generation (@pxref{Invoking guix system})."
 msgstr "Obwohl der Befehl @command{guix system reconfigure} vorherige Generationen nicht verändern wird, müssen Sie Acht geben, dass wenn die momentan aktuelle Generation nicht die neueste ist (z.B.@: nach einem Aufruf von @command{guix system roll-back}), weil @command{guix system reconfigure} alle neueren Generationen überschreibt (siehe @ref{Invoking guix system})."
 
 #. type: unnumberedsubsec
-#: doc/guix.texi:11204
+#: doc/guix.texi:13127
 #, no-wrap
 msgid "The Programming Interface"
 msgstr "Die Programmierschnittstelle"
 
 #. type: Plain text
-#: doc/guix.texi:11209
+#: doc/guix.texi:13132
 msgid "At the Scheme level, the bulk of an @code{operating-system} declaration is instantiated with the following monadic procedure (@pxref{The Store Monad}):"
 msgstr "Auf der Ebene von Scheme wird der Großteil der @code{operating-system}-Deklaration mit der folgenden monadischen Prozedur instanziiert (siehe @ref{The Store Monad}):"
 
 #. type: deffn
-#: doc/guix.texi:11210
+#: doc/guix.texi:13133
 #, no-wrap
 msgid "{Monadic Procedure} operating-system-derivation os"
 msgstr "{Monadische Prozedur} operating-system-derivation os"
 
 #. type: deffn
-#: doc/guix.texi:11213
+#: doc/guix.texi:13136
 msgid "Return a derivation that builds @var{os}, an @code{operating-system} object (@pxref{Derivations})."
 msgstr "Liefert eine Ableitung, mit der ein @code{operating-system}-Objekt @var{os} erstellt wird (siehe @ref{Derivations})."
 
 #. type: deffn
-#: doc/guix.texi:11217
+#: doc/guix.texi:13140
 msgid "The output of the derivation is a single directory that refers to all the packages, configuration files, and other supporting files needed to instantiate @var{os}."
 msgstr "Die Ausgabe der Ableitung ist ein einzelnes Verzeichnis mit Verweisen auf alle Pakete, Konfigurationsdateien und andere unterstützenden Dateien, die nötig sind, um @var{os} zu instanziieren."
 
 #. type: Plain text
-#: doc/guix.texi:11222
+#: doc/guix.texi:13145
 msgid "This procedure is provided by the @code{(gnu system)} module.  Along with @code{(gnu services)} (@pxref{Services}), this module contains the guts of Guix System.  Make sure to visit it!"
 msgstr "Diese Prozedur wird vom Modul @code{(gnu system)} angeboten. Zusammen mit @code{(gnu services)} (siehe @ref{Services}) deckt dieses Modul den Kern von „Guix System“ ab. Schauen Sie es sich mal an!"
 
 #. type: section
-#: doc/guix.texi:11225
+#: doc/guix.texi:13148
 #, no-wrap
 msgid "@code{operating-system} Reference"
 msgstr "@code{operating-system}-Referenz"
 
 #. type: Plain text
-#: doc/guix.texi:11230
+#: doc/guix.texi:13153
 msgid "This section summarizes all the options available in @code{operating-system} declarations (@pxref{Using the Configuration System})."
 msgstr "Dieser Abschnitt fasst alle Optionen zusammen, die für @code{operating-system}-Deklarationen zur Verfügung stehen (siehe @ref{Using the Configuration System})."
 
 #. type: deftp
-#: doc/guix.texi:11231
+#: doc/guix.texi:13154
 #, no-wrap
 msgid "{Data Type} operating-system"
 msgstr "{Datentyp} operating-system"
 
 #. type: deftp
-#: doc/guix.texi:11235
+#: doc/guix.texi:13158
 msgid "This is the data type representing an operating system configuration.  By that, we mean all the global system configuration, not per-user configuration (@pxref{Using the Configuration System})."
 msgstr "Der die Betriebssystemkonfiguration repräsentierende Datentyp. Damit meinen wir die globale Konfiguration des Systems und nicht die, die sich nur auf einzelne Nutzer bezieht (siehe @ref{Using the Configuration System})."
 
 #. type: item
-#: doc/guix.texi:11237
+#: doc/guix.texi:13160
+#, no-wrap
+msgid "@code{kernel} (default: @code{linux-libre})"
+msgstr "@code{kernel} (Vorgabe: @code{linux-libre})"
+
+#. type: table
+#: doc/guix.texi:13165
+msgid "The package object of the operating system kernel to use@footnote{Currently only the Linux-libre kernel is fully supported.  Using GNU@tie{}mach with the GNU@tie{}Hurd is experimental and only available when building a virtual machine disk image.}."
+msgstr "Das Paket für den zu nutzenden Betriebssystem-Kernel als „package“-Objekt@footnote{Derzeit wird nur der Kernel Linux-libre vollständig unterstützt. Die Nutzung von GNU@tie{}mach mit GNU@tie{}Hurd ist experimentell und steht nur zur Erstellung eines Disk-Image für virtuelle Maschinen bereit.}."
+
+#. type: code{#1}
+#: doc/guix.texi:13166 doc/guix.texi:26900
+#, no-wrap
+msgid "hurd"
+msgstr "hurd"
+
+#. type: item
+#: doc/guix.texi:13167
 #, no-wrap
-msgid "@code{kernel} (default: @var{linux-libre})"
-msgstr "@code{kernel} (Vorgabe: @var{linux-libre})"
+msgid "@code{hurd} (default: @code{#f})"
+msgstr "@code{hurd} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:11241
-msgid "The package object of the operating system kernel to use@footnote{Currently only the Linux-libre kernel is supported.  In the future, it will be possible to use the GNU@tie{}Hurd.}."
-msgstr "Das Paket für den zu nutzenden Betriebssystem-Kernel als „package“-Objekt@footnote{Derzeit wird nur der Kernel Linux-libre unterstützt. In der Zukunft wird man auch GNU@tie{}Hurd benutzen können.}."
+#: doc/guix.texi:13172
+msgid "The package object of the Hurd to be started by the kernel.  When this field is set, produce a GNU/Hurd operating system.  In that case, @code{kernel} must also be set to the @code{gnumach} package---the microkernel the Hurd runs on."
+msgstr "Das Paketobjekt derjenigen Hurd, die der Kernel starten soll. Wenn dieses Feld gesetzt ist, wird ein GNU/Hurd-Betriebssystem erzeugt. In diesem Fall muss als @code{kernel} das @code{gnumach}-Paket (das ist der Microkernel, auf dem Hurd läuft) ausgewählt sein."
+
+#. type: quotation
+#: doc/guix.texi:13175
+msgid "This feature is experimental and only supported for disk images."
+msgstr "Diese Funktionalität ist experimentell und wird nur für Disk-Images unterstützt."
 
 #. type: item
-#: doc/guix.texi:11242
+#: doc/guix.texi:13177
 #, no-wrap
 msgid "@code{kernel-loadable-modules} (default: '())"
 msgstr "@code{kernel-loadable-modules} (Vorgabe: '())"
 
 #. type: table
-#: doc/guix.texi:11245
+#: doc/guix.texi:13180
 msgid "A list of objects (usually packages) to collect loadable kernel modules from--e.g. @code{(list ddcci-driver-linux)}."
 msgstr "Eine Liste von Objekten (normalerweise Pakete), aus denen Kernel-Module geladen werden können, zum Beispiel @code{(list ddcci-driver-linux)}."
 
 #. type: item
-#: doc/guix.texi:11246
+#: doc/guix.texi:13181
 #, no-wrap
-msgid "@code{kernel-arguments} (default: @code{'(\"quiet\")})"
-msgstr "@code{kernel-arguments} (Vorgabe: @code{'(\"quiet\")})"
+msgid "@code{kernel-arguments} (default: @code{%default-kernel-arguments})"
+msgstr "@code{kernel-arguments} (Vorgabe: @code{%default-kernel-arguments})"
 
 #. type: table
-#: doc/guix.texi:11249
+#: doc/guix.texi:13184
 msgid "List of strings or gexps representing additional arguments to pass on the command-line of the kernel---e.g., @code{(\"console=ttyS0\")}."
 msgstr "Eine Liste aus Zeichenketten oder G-Ausdrücken, die für zusätzliche Argumente an den Kernel stehen, die ihm auf seiner Befehlszeile übergeben werden — wie z.B.@: @code{(\"console=ttyS0\")}."
 
 #. type: code{#1}
-#: doc/guix.texi:11250 doc/guix.texi:26283 doc/guix.texi:26302
+#: doc/guix.texi:13185 doc/guix.texi:30326 doc/guix.texi:30345
 #, no-wrap
 msgid "bootloader"
 msgstr "bootloader"
 
 #. type: table
-#: doc/guix.texi:11252
+#: doc/guix.texi:13187
 msgid "The system bootloader configuration object.  @xref{Bootloader Configuration}."
 msgstr "Das Konfigurationsobjekt für den Bootloader, mit dem das System gestartet wird. Siehe @ref{Bootloader Configuration}."
 
 #. type: code{#1}
-#: doc/guix.texi:11253 doc/guix.texi:26422
+#: doc/guix.texi:13188 doc/guix.texi:30515
 #, no-wrap
 msgid "label"
 msgstr "label"
 
 #. type: table
-#: doc/guix.texi:11256
+#: doc/guix.texi:13191
 msgid "This is the label (a string) as it appears in the bootloader's menu entry.  The default label includes the kernel name and version."
 msgstr "Diese Bezeichnung (eine Zeichenkette) wird für den Menüeintrag im Bootloader verwendet. Die Vorgabe ist eine Bezeichnung, die den Namen des Kernels und seine Version enthält."
 
 #. type: item
-#: doc/guix.texi:11257 doc/guix.texi:14756 doc/guix.texi:26352
+#: doc/guix.texi:13192 doc/guix.texi:17310 doc/guix.texi:30445
 #, no-wrap
 msgid "@code{keyboard-layout} (default: @code{#f})"
 msgstr "@code{keyboard-layout} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:11261
+#: doc/guix.texi:13196
 msgid "This field specifies the keyboard layout to use in the console.  It can be either @code{#f}, in which case the default keyboard layout is used (usually US English), or a @code{<keyboard-layout>} record."
 msgstr "Dieses Feld gibt an, welche Tastaturbelegung auf der Konsole benutzt werden soll. Es kann entweder auf @code{#f} gesetzt sein, damit die voreingestellte Tastaturbelegung benutzt wird (in der Regel ist diese „US English“), oder ein @code{<keyboard-layout>}-Verbundsobjekt sein."
 
 #. type: table
-#: doc/guix.texi:11266
+#: doc/guix.texi:13201
 msgid "This keyboard layout is in effect as soon as the kernel has booted.  For instance, it is the keyboard layout in effect when you type a passphrase if your root file system is on a @code{luks-device-mapping} mapped device (@pxref{Mapped Devices})."
 msgstr "Diese Tastaturbelegung wird benutzt, sobald der Kernel gebootet wurde. Diese Tastaturbelegung wird zum Beispiel auch verwendet, wenn Sie eine Passphrase eintippen, falls sich Ihr Wurzeldateisystem auf einem mit @code{luks-device-mapping} zugeordneten Gerät befindet (siehe @ref{Mapped Devices})."
 
 #. type: quotation
-#: doc/guix.texi:11273
+#: doc/guix.texi:13208
 msgid "This does @emph{not} specify the keyboard layout used by the bootloader, nor that used by the graphical display server.  @xref{Bootloader Configuration}, for information on how to specify the bootloader's keyboard layout.  @xref{X Window}, for information on how to specify the keyboard layout used by the X Window System."
 msgstr "Damit wird @emph{nicht} angegeben, welche Tastaturbelegung der Bootloader benutzt, und auch nicht, welche der grafische Anzeigeserver verwendet. Siehe @ref{Bootloader Configuration} für Informationen darüber, wie Sie die Tastaturbelegung des Bootloaders angeben können. Siehe @ref{X Window} für Informationen darüber, wie Sie die Tastaturbelegung angeben können, die das X-Fenstersystem verwendet."
 
 #. type: item
-#: doc/guix.texi:11275
+#: doc/guix.texi:13210
 #, no-wrap
 msgid "@code{initrd-modules} (default: @code{%base-initrd-modules})"
 msgstr "@code{initrd-modules} (Vorgabe: @code{%base-initrd-modules})"
 
-#. type: code{#1}
-#: doc/guix.texi:11276 doc/guix.texi:26109 doc/guix.texi:26212
-#: doc/guix.texi:26447
+#. type: cindex
+#: doc/guix.texi:13211 doc/guix.texi:30151 doc/guix.texi:30255
 #, no-wrap
 msgid "initrd"
 msgstr "initrd"
 
 #. type: cindex
-#: doc/guix.texi:11277 doc/guix.texi:26110 doc/guix.texi:26213
+#: doc/guix.texi:13212 doc/guix.texi:30152 doc/guix.texi:30256
 #, no-wrap
 msgid "initial RAM disk"
 msgstr "initiale RAM-Disk"
 
 #. type: table
-#: doc/guix.texi:11280
+#: doc/guix.texi:13215
 msgid "The list of Linux kernel modules that need to be available in the initial RAM disk.  @xref{Initial RAM Disk}."
 msgstr "Die Liste der Linux-Kernel-Module, die in der initialen RAM-Disk zur Verfügung stehen sollen. Siehe @ref{Initial RAM Disk}."
 
 #. type: item
-#: doc/guix.texi:11281
+#: doc/guix.texi:13216
 #, no-wrap
 msgid "@code{initrd} (default: @code{base-initrd})"
 msgstr "@code{initrd} (Vorgabe: @code{base-initrd})"
 
 #. type: table
-#: doc/guix.texi:11285
+#: doc/guix.texi:13220
 msgid "A procedure that returns an initial RAM disk for the Linux kernel.  This field is provided to support low-level customization and should rarely be needed for casual use.  @xref{Initial RAM Disk}."
-msgstr "Eine Prozedur, die eine initiale RAM-Disk für den Linux-Kernel liefert. Dieses Feld gibt es, damit auch sehr systemnahe Anpassungen vorgenommen werden können, aber für die normale Nutzung sollte man es kaum brauchen. Siehe @ref{Initial RAM Disk}."
+msgstr "Eine Prozedur, die eine initiale RAM-Disk für den Linux-Kernel liefert. Dieses Feld gibt es, damit auch sehr systemnahe Anpassungen vorgenommen werden können, aber für die normale Nutzung sollten Sie es kaum brauchen. Siehe @ref{Initial RAM Disk}."
 
 #. type: item
-#: doc/guix.texi:11286
+#: doc/guix.texi:13221
 #, no-wrap
 msgid "@code{firmware} (default: @code{%base-firmware})"
 msgstr "@code{firmware} (Vorgabe: @code{%base-firmware})"
 
 #. type: cindex
-#: doc/guix.texi:11287
+#: doc/guix.texi:13222
 #, no-wrap
 msgid "firmware"
 msgstr "Firmware"
 
 #. type: table
-#: doc/guix.texi:11289
+#: doc/guix.texi:13224
 msgid "List of firmware packages loadable by the operating system kernel."
 msgstr "Eine Liste der Firmware-Pakete, die vom Betriebssystem-Kernel geladen werden können."
 
 #. type: table
-#: doc/guix.texi:11294
+#: doc/guix.texi:13229
 msgid "The default includes firmware needed for Atheros- and Broadcom-based WiFi devices (Linux-libre modules @code{ath9k} and @code{b43-open}, respectively).  @xref{Hardware Considerations}, for more info on supported hardware."
 msgstr "Vorgegeben ist, dass für Atheros- und Broadcom-basierte WLAN-Geräte nötige Firmware geladen werden kann (genauer jeweils die Linux-libre-Module @code{ath9k} und @code{b43-open}). Siehe den Abschnitt @ref{Hardware Considerations} für mehr Informationen zu unterstützter Hardware."
 
 #. type: code{#1}
-#: doc/guix.texi:11295 doc/guix.texi:27168
+#: doc/guix.texi:13230 doc/guix.texi:31322
 #, no-wrap
 msgid "host-name"
 msgstr "host-name"
 
 #. type: table
-#: doc/guix.texi:11297
+#: doc/guix.texi:13232
 msgid "The host name."
 msgstr "Der Hostname"
 
 #. type: code{#1}
-#: doc/guix.texi:11298
+#: doc/guix.texi:13233
 #, no-wrap
 msgid "hosts-file"
 msgstr "hosts-file"
 
 #. type: cindex
-#: doc/guix.texi:11299
+#: doc/guix.texi:13234
 #, no-wrap
 msgid "hosts file"
 msgstr "hosts-Datei"
 
 #. type: table
-#: doc/guix.texi:11304
+#: doc/guix.texi:13239
 msgid "A file-like object (@pxref{G-Expressions, file-like objects}) for use as @file{/etc/hosts} (@pxref{Host Names,,, libc, The GNU C Library Reference Manual}).  The default is a file with entries for @code{localhost} and @var{host-name}."
-msgstr "Ein dateiartiges Objekt (siehe @ref{G-Expressions, dateiartige Objekte}), das für @file{/etc/hosts} benutzt werden soll (siehe @ref{Host Names,,, libc, The GNU C Library Reference Manual}). Der Vorgabewert ist eine Datei mit Einträgen für @code{localhost} und @var{host-name}."
+msgstr "Ein dateiartiges Objekt (siehe @ref{G-Expressions, dateiartige Objekte}), das für @file{/etc/hosts} benutzt werden soll (siehe @ref{Host Names,,, libc, Referenzhandbuch der GNU-C-Bibliothek}). Der Vorgabewert ist eine Datei mit Einträgen für @code{localhost} und @var{host-name}."
 
 #. type: item
-#: doc/guix.texi:11305
+#: doc/guix.texi:13240
 #, no-wrap
 msgid "@code{mapped-devices} (default: @code{'()})"
 msgstr "@code{mapped-devices} (Vorgabe: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:11307
+#: doc/guix.texi:13242
 msgid "A list of mapped devices.  @xref{Mapped Devices}."
 msgstr "Eine Liste zugeordneter Geräte („mapped devices“). Siehe @ref{Mapped Devices}."
 
 #. type: code{#1}
-#: doc/guix.texi:11308
+#: doc/guix.texi:13243
 #, no-wrap
 msgid "file-systems"
 msgstr "file-systems"
 
 #. type: table
-#: doc/guix.texi:11310
+#: doc/guix.texi:13245
 msgid "A list of file systems.  @xref{File Systems}."
 msgstr "Eine Liste von Dateisystemen. Siehe @ref{File Systems}."
 
+#. type: cindex
+#: doc/guix.texi:13246
+#, no-wrap
+msgid "swap devices"
+msgstr "Swap-Geräte"
+
+#. type: cindex
+#: doc/guix.texi:13247
+#, no-wrap
+msgid "swap space"
+msgstr "Swap-Speicher"
+
 #. type: item
-#: doc/guix.texi:11311
+#: doc/guix.texi:13248
 #, no-wrap
 msgid "@code{swap-devices} (default: @code{'()})"
 msgstr "@code{swap-devices} (Vorgabe: @code{'()})"
 
-#. type: cindex
-#: doc/guix.texi:11312
+#. type: table
+#: doc/guix.texi:13253
+msgid "A list of UUIDs, file system labels, or strings identifying devices or files to be used for ``swap space'' (@pxref{Memory Concepts,,, libc, The GNU C Library Reference Manual}).  Here are some examples:"
+msgstr "Eine Liste von UUIDs, Dateisystembezeichnungen oder Zeichenketten, die als Swap-Speicher zu nutzende Geräte bzw. Dateien identifizieren (siehe @ref{Memory Concepts,,, libc, Referenzhandbuch der GNU-C-Bibliothek}). Hier sind einige Beispiele:"
+
+#. type: item
+#: doc/guix.texi:13255
 #, no-wrap
-msgid "swap devices"
-msgstr "Swap-Geräte"
+msgid "(list (uuid \"4dab5feb-d176-45de-b287-9b0a6e4c01cb\"))"
+msgstr "(list (uuid \"4dab5feb-d176-45de-b287-9b0a6e4c01cb\"))"
 
 #. type: table
-#: doc/guix.texi:11319
-msgid "A list of strings identifying devices or files to be used for ``swap space'' (@pxref{Memory Concepts,,, libc, The GNU C Library Reference Manual}).  For example, @code{'(\"/dev/sda3\")} or @code{'(\"/swapfile\")}.  It is possible to specify a swap file in a file system on a mapped device, provided that the necessary device mapping and file system are also specified.  @xref{Mapped Devices} and @ref{File Systems}."
-msgstr "Eine Liste von Zeichenketten, die Geräte identifizieren oder als „Swap-Speicher“ genutzte Dateien identifizieren (siehe @ref{Memory Concepts,,, libc, The GNU C Library Reference Manual}). Beispiele wären etwa @code{'(\"/dev/sda3\")} oder @code{'(\"/swapdatei\")}. Es ist möglich, eine Swap-Datei auf dem Dateisystem eines zugeordneten Geräts anzugeben, sofern auch die Gerätezuordnung und das Dateisystem mit angegeben werden. Siehe @ref{Mapped Devices} und @ref{File Systems}."
+#: doc/guix.texi:13259
+msgid "Use the swap partition with the given UUID.  You can learn the UUID of a Linux swap partition by running @command{swaplabel @var{device}}, where @var{device} is the @file{/dev} file name of that partition."
+msgstr "Die Swap-Partition mit der angegebenen UUID verwenden. Sie können die UUID einer Linux-Swap-Partition erfahren, indem Sie @command{swaplabel @var{Gerät}} ausführen, wobei @var{Gerät} der Dateiname unter @file{/dev} für die Partition ist."
+
+#. type: item
+#: doc/guix.texi:13260
+#, no-wrap
+msgid "(list (file-system-label \"swap\"))"
+msgstr "(list (file-system-label \"swap\"))"
+
+#. type: table
+#: doc/guix.texi:13264
+msgid "Use the partition with label @code{swap}.  Again, the @command{swaplabel} command allows you to view and change the label of a Linux swap partition."
+msgstr "Die Swap-Partition mit der Bezeichnung @code{swap} verwenden. Auch hier können Sie mittels @command{swaplabel}-Befehls die Bezeichnung einer Linux-Swap-Partition einsehen und ändern."
+
+#. type: item
+#: doc/guix.texi:13265
+#, no-wrap
+msgid "(list \"/swapfile\")"
+msgstr "(list \"/swapfile\")"
+
+#. type: table
+#: doc/guix.texi:13267
+msgid "Use the file @file{/swapfile} as swap space."
+msgstr "Die Datei @file{/swapfile} als Swap-Speicher benutzen."
+
+#. type: item
+#: doc/guix.texi:13268
+#, no-wrap
+msgid "(list \"/dev/sda3\" \"/dev/sdb2\")"
+msgstr "(list \"/dev/sda3\" \"/dev/sdb2\")"
+
+#. type: table
+#: doc/guix.texi:13272
+msgid "Use the @file{/dev/sda3} and @file{/dev/sdb2} partitions as swap space.  We recommend referring to swap devices by UUIDs or labels as shown above instead."
+msgstr "Die Partitionen @file{/dev/sda3} und @file{/dev/sdb2} als Swap-Speicher benutzen. Wir raten davon ab und empfehlen, auf die Swap-Geräte stattdessen wie oben gezeigt über UUIDs oder über Bezeichnungen zu verweisen."
+
+#. type: table
+#: doc/guix.texi:13278
+msgid "It is possible to specify a swap file in a file system on a mapped device (under @file{/dev/mapper}), provided that the necessary device mapping and file system are also specified.  @xref{Mapped Devices} and @ref{File Systems}."
+msgstr "Es ist möglich, eine Swap-Datei auf einem Dateisystem eines zugeordneten Geräts anzugeben, sofern auch die Gerätezuordnung und das Dateisystem mit angegeben werden. Siehe @ref{Mapped Devices} und @ref{File Systems}."
 
 #. type: item
-#: doc/guix.texi:11320
+#: doc/guix.texi:13279
 #, no-wrap
 msgid "@code{users} (default: @code{%base-user-accounts})"
 msgstr "@code{users} (Vorgabe: @code{%base-user-accounts})"
 
 #. type: itemx
-#: doc/guix.texi:11321
+#: doc/guix.texi:13280
 #, no-wrap
 msgid "@code{groups} (default: @code{%base-groups})"
 msgstr "@code{groups} (Vorgabe: @code{%base-groups})"
 
 #. type: table
-#: doc/guix.texi:11323
+#: doc/guix.texi:13282
 msgid "List of user accounts and groups.  @xref{User Accounts}."
 msgstr "Liste der Benutzerkonten und Benutzergruppen. Siehe @ref{User Accounts}."
 
 #. type: table
-#: doc/guix.texi:11326
+#: doc/guix.texi:13285
 msgid "If the @code{users} list lacks a user account with UID@tie{}0, a ``root'' account with UID@tie{}0 is automatically added."
 msgstr "Wenn in der @code{users}-Liste kein Benutzerkonto mit der UID-Kennung@tie{}0 aufgeführt wird, wird automatisch für den Administrator ein „root“-Benutzerkonto mit UID-Kennung@tie{}0 hinzugefügt."
 
 #. type: item
-#: doc/guix.texi:11327
+#: doc/guix.texi:13286
 #, no-wrap
 msgid "@code{skeletons} (default: @code{(default-skeletons)})"
 msgstr "@code{skeletons} (Vorgabe: @code{(default-skeletons)})"
 
 #. type: table
-#: doc/guix.texi:11331
-msgid "A list target file name/file-like object tuples (@pxref{G-Expressions, file-like objects}).  These are the skeleton files that will be added to the home directory of newly-created user accounts."
+#: doc/guix.texi:13290
+msgid "A list of target file name/file-like object tuples (@pxref{G-Expressions, file-like objects}).  These are the skeleton files that will be added to the home directory of newly-created user accounts."
 msgstr "Eine Liste von Tupeln aus je einem Ziel-Dateinamen und einem dateiähnlichen Objekt (siehe @ref{G-Expressions, dateiartige Objekte}). Diese Objekte werden als Skeleton-Dateien im Persönlichen Verzeichnis („Home“-Verzeichnis) jedes neuen Benutzerkontos angelegt."
 
 #. type: table
-#: doc/guix.texi:11333
+#: doc/guix.texi:13292
 msgid "For instance, a valid value may look like this:"
 msgstr "Ein gültiger Wert könnte zum Beispiel so aussehen:"
 
 #. type: lisp
-#: doc/guix.texi:11339
+#: doc/guix.texi:13298
 #, no-wrap
 msgid ""
 "`((\".bashrc\" ,(plain-file \"bashrc\" \"echo Hello\\n\"))\n"
@@ -20600,194 +23895,206 @@ msgstr ""
 "                          (activate-readline)\")))\n"
 
 #. type: item
-#: doc/guix.texi:11341
+#: doc/guix.texi:13300
 #, no-wrap
 msgid "@code{issue} (default: @code{%default-issue})"
 msgstr "@code{issue} (Vorgabe: @code{%default-issue})"
 
 #. type: table
-#: doc/guix.texi:11344
+#: doc/guix.texi:13303
 msgid "A string denoting the contents of the @file{/etc/issue} file, which is displayed when users log in on a text console."
 msgstr "Eine Zeichenkette, die als Inhalt der Datei @file{/etc/issue} verwendet werden soll, der jedes Mal angezeigt wird, wenn sich ein Nutzer auf einer Textkonsole anmeldet."
 
 #. type: item
-#: doc/guix.texi:11345
+#: doc/guix.texi:13304
 #, no-wrap
 msgid "@code{packages} (default: @code{%base-packages})"
 msgstr "@code{packages} (Vorgabe: @code{%base-packages})"
 
 #. type: table
-#: doc/guix.texi:11348
-msgid "The set of packages installed in the global profile, which is accessible at @file{/run/current-system/profile}."
-msgstr "Die Menge der Pakete, die ins globale Profil installiert werden sollen, welches unter @file{/run/current-system/profile} zu finden ist."
+#: doc/guix.texi:13308
+msgid "A list of packages to be installed in the global profile, which is accessible at @file{/run/current-system/profile}.  Each element is either a package variable or a package/output tuple.  Here's a simple example of both:"
+msgstr "Eine Liste von Paketen, die ins globale Profil installiert werden sollen, welches unter @file{/run/current-system/profile} zu finden ist. Jedes Element ist entweder eine Paketvariable oder ein Tupel aus einem Paket und dessen gewünschter Ausgabe. Hier ist ein Beispiel:"
+
+#. type: lisp
+#: doc/guix.texi:13313
+#, no-wrap
+msgid ""
+"(cons* git                     ; the default \"out\" output\n"
+"       (list git \"send-email\") ; another output of git\n"
+"       %base-packages)         ; the default set\n"
+msgstr ""
+"(cons* git                     ; die Standardausgabe \"out\"\n"
+"       (list git \"send-email\") ; eine andere Ausgabe von git\n"
+"       %base-packages)         ; die normale Paketmenge\n"
 
 #. type: table
-#: doc/guix.texi:11352
+#: doc/guix.texi:13318
 msgid "The default set includes core utilities and it is good practice to install non-core utilities in user profiles (@pxref{Invoking guix package})."
 msgstr "Die vorgegebene Paketmenge umfasst zum Kern des Systems gehörende Werkzeuge („core utilities“). Es ist empfehlenswert, nicht zum Kern gehörende Werkzeuge („non-core“) stattdessen in Nutzerprofile zu installieren (siehe @ref{Invoking guix package})."
 
 #. type: code{#1}
-#: doc/guix.texi:11353
+#: doc/guix.texi:13319
 #, no-wrap
 msgid "timezone"
 msgstr "timezone"
 
 #. type: table
-#: doc/guix.texi:11355
+#: doc/guix.texi:13321
 msgid "A timezone identifying string---e.g., @code{\"Europe/Paris\"}."
 msgstr "Eine Zeichenkette, die die Zeitzone bezeichnet, wie z.B.@: @code{\"Europe/Berlin\"}."
 
 #. type: table
-#: doc/guix.texi:11359
+#: doc/guix.texi:13325
 msgid "You can run the @command{tzselect} command to find out which timezone string corresponds to your region.  Choosing an invalid timezone name causes @command{guix system} to fail."
 msgstr "Mit dem Befehl @command{tzselect} können Sie herausfinden, welche Zeichenkette der Zeitzone Ihrer Region entspricht. Wenn Sie eine ungültige Zeichenkette angeben, schlägt @command{guix system} fehl."
 
 #. type: item
-#: doc/guix.texi:11360
+#: doc/guix.texi:13326 doc/guix.texi:18879
 #, no-wrap
 msgid "@code{locale} (default: @code{\"en_US.utf8\"})"
 msgstr "@code{locale} (Vorgabe: @code{\"en_US.utf8\"})"
 
 #. type: table
-#: doc/guix.texi:11363
+#: doc/guix.texi:13329
 msgid "The name of the default locale (@pxref{Locale Names,,, libc, The GNU C Library Reference Manual}).  @xref{Locales}, for more information."
-msgstr "Der Name der als Voreinstellung zu verwendenden Locale (siehe @ref{Locale Names,,, libc, The GNU C Library Reference Manual}). Siehe @ref{Locales} für weitere Informationen."
+msgstr "Der Name der als Voreinstellung zu verwendenden Locale (siehe @ref{Locale Names,,, libc, Referenzhandbuch der GNU-C-Bibliothek}). Siehe @ref{Locales} für weitere Informationen."
 
 #. type: item
-#: doc/guix.texi:11364
+#: doc/guix.texi:13330
 #, no-wrap
 msgid "@code{locale-definitions} (default: @code{%default-locale-definitions})"
 msgstr "@code{locale-definitions} (Vorgabe: @code{%default-locale-definitions})"
 
 #. type: table
-#: doc/guix.texi:11367
+#: doc/guix.texi:13333
 msgid "The list of locale definitions to be compiled and that may be used at run time.  @xref{Locales}."
 msgstr "Die Liste der Locale-Definitionen, die kompiliert werden sollen und dann im laufenden System benutzt werden können. Siehe @ref{Locales}."
 
 #. type: item
-#: doc/guix.texi:11368
+#: doc/guix.texi:13334
 #, no-wrap
 msgid "@code{locale-libcs} (default: @code{(list @var{glibc})})"
 msgstr "@code{locale-libcs} (Vorgabe: @code{(list @var{glibc})})"
 
 #. type: table
-#: doc/guix.texi:11372
+#: doc/guix.texi:13338
 msgid "The list of GNU@tie{}libc packages whose locale data and tools are used to build the locale definitions.  @xref{Locales}, for compatibility considerations that justify this option."
 msgstr "Die Liste der GNU-libc-Pakete, deren Locale-Daten und -Werkzeuge zum Erzeugen der Locale-Definitionen verwendet werden sollen. Siehe @ref{Locales} für eine Erläuterung der Kompatibilitätsauswirkungen, deretwegen man diese Option benutzen wollen könnte."
 
 #. type: item
-#: doc/guix.texi:11373
+#: doc/guix.texi:13339
 #, no-wrap
 msgid "@code{name-service-switch} (default: @code{%default-nss})"
 msgstr "@code{name-service-switch} (Vorgabe: @code{%default-nss})"
 
 #. type: table
-#: doc/guix.texi:11377
+#: doc/guix.texi:13343
 msgid "Configuration of the libc name service switch (NSS)---a @code{<name-service-switch>} object.  @xref{Name Service Switch}, for details."
 msgstr "Die Konfiguration des Name Service Switch (NSS) der libc — ein @code{<name-service-switch>}-Objekt. Siehe @ref{Name Service Switch} für Details."
 
 #. type: item
-#: doc/guix.texi:11378
+#: doc/guix.texi:13344
 #, no-wrap
 msgid "@code{services} (default: @code{%base-services})"
 msgstr "@code{services} (Vorgabe: @code{%base-services})"
 
 #. type: table
-#: doc/guix.texi:11380
+#: doc/guix.texi:13346
 msgid "A list of service objects denoting system services.  @xref{Services}."
 msgstr "Eine Liste von „service“-Objekten, die die Systemdienste repräsentieren. Siehe @ref{Services}."
 
 #. type: cindex
-#: doc/guix.texi:11381
+#: doc/guix.texi:13347
 #, no-wrap
 msgid "essential services"
 msgstr "essenzielle Dienste"
 
 #. type: item
-#: doc/guix.texi:11382
+#: doc/guix.texi:13348
 #, no-wrap
 msgid "@code{essential-services} (default: ...)"
 msgstr "@code{essential-services} (Vorgabe: …)"
 
 #. type: table
-#: doc/guix.texi:11387
+#: doc/guix.texi:13353
 msgid "The list of ``essential services''---i.e., things like instances of @code{system-service-type} and @code{host-name-service-type} (@pxref{Service Reference}), which are derived from the operating system definition itself.  As a user you should @emph{never} need to touch this field."
 msgstr "Die Liste „essenzieller Dienste“ — d.h.@: Dinge wie Instanzen von @code{system-service-type} und @code{host-name-service-type} (siehe @ref{Service Reference}), die aus der Betriebssystemdefinition an sich abgeleitet werden. Als normaler Benutzer sollten Sie dieses Feld @emph{niemals} ändern müssen."
 
 #. type: item
-#: doc/guix.texi:11388
+#: doc/guix.texi:13354
 #, no-wrap
 msgid "@code{pam-services} (default: @code{(base-pam-services)})"
 msgstr "@code{pam-services} (Vorgabe: @code{(base-pam-services)})"
 
 #. type: cindex
-#: doc/guix.texi:11389
+#: doc/guix.texi:13355
 #, no-wrap
 msgid "PAM"
 msgstr "PAM"
 
 #. type: cindex
-#: doc/guix.texi:11390
+#: doc/guix.texi:13356
 #, no-wrap
 msgid "pluggable authentication modules"
 msgstr "Pluggable Authentication Modules"
 
 #. type: table
-#: doc/guix.texi:11393
+#: doc/guix.texi:13359
 msgid "Linux @dfn{pluggable authentication module} (PAM) services."
 msgstr "Dienste für @dfn{Pluggable Authentication Modules} (PAM) von Linux."
 
 #. type: item
-#: doc/guix.texi:11394
+#: doc/guix.texi:13360
 #, no-wrap
-msgid "@code{setuid-programs} (default: @var{%setuid-programs})"
-msgstr "@code{setuid-programs} (Vorgabe: @var{%setuid-programs})"
+msgid "@code{setuid-programs} (default: @code{%setuid-programs})"
+msgstr "@code{setuid-programs} (Vorgabe: @code{%setuid-programs})"
 
 #. type: table
-#: doc/guix.texi:11397
+#: doc/guix.texi:13363
 msgid "List of string-valued G-expressions denoting setuid programs.  @xref{Setuid Programs}."
 msgstr "Eine Liste von Zeichenketten liefernden G-Ausdrücken, die setuid-Programme bezeichnen. Siehe @ref{Setuid Programs}."
 
 #. type: item
-#: doc/guix.texi:11398
+#: doc/guix.texi:13364
 #, no-wrap
-msgid "@code{sudoers-file} (default: @var{%sudoers-specification})"
-msgstr "@code{sudoers-file} (Vorgabe: @var{%sudoers-specification})"
+msgid "@code{sudoers-file} (default: @code{%sudoers-specification})"
+msgstr "@code{sudoers-file} (Vorgabe: @code{%sudoers-specification})"
 
 #. type: cindex
-#: doc/guix.texi:11399
+#: doc/guix.texi:13365
 #, no-wrap
 msgid "sudoers file"
 msgstr "sudoers-Datei"
 
 #. type: table
-#: doc/guix.texi:11402
+#: doc/guix.texi:13368
 msgid "The contents of the @file{/etc/sudoers} file as a file-like object (@pxref{G-Expressions, @code{local-file} and @code{plain-file}})."
 msgstr "Der Inhalt der Datei @file{/etc/sudoers} als ein dateiähnliches Objekt (siehe @ref{G-Expressions, @code{local-file} und @code{plain-file}})."
 
 #. type: table
-#: doc/guix.texi:11407
+#: doc/guix.texi:13373
 msgid "This file specifies which users can use the @command{sudo} command, what they are allowed to do, and what privileges they may gain.  The default is that only @code{root} and members of the @code{wheel} group may use @code{sudo}."
 msgstr "Diese Datei gibt an, welche Nutzer den Befehl @command{sudo} benutzen dürfen, was sie damit tun und welche Berechtigungen sie so erhalten können. Die Vorgabe ist, dass nur der Administratornutzer @code{root} und Mitglieder der Benutzergruppe @code{wheel} den @code{sudo}-Befehl verwenden dürfen."
 
 #. type: deffn
-#: doc/guix.texi:11410
+#: doc/guix.texi:13376
 #, no-wrap
 msgid "{Scheme Syntax} this-operating-system"
 msgstr "{Scheme-Syntax} this-operating-system"
 
 #. type: deffn
-#: doc/guix.texi:11413
+#: doc/guix.texi:13379
 msgid "When used in the @emph{lexical scope} of an operating system field definition, this identifier resolves to the operating system being defined."
 msgstr "Wenn dies im @emph{lexikalischen Geltungsbereich} der Definition eines Feldes im Betriebssystem steht, bezieht sich dieser Bezeichner auf das Betriebssystem, das gerade definiert wird."
 
 #. type: deffn
-#: doc/guix.texi:11416
+#: doc/guix.texi:13382
 msgid "The example below shows how to refer to the operating system being defined in the definition of the @code{label} field:"
 msgstr "Das folgende Beispiel zeigt, wie man auf das Betriebssystem, das gerade definiert wird, verweist, während man die Definition des @code{label}-Felds schreibt:"
 
 #. type: lisp
-#: doc/guix.texi:11419 doc/guix.texi:14301
+#: doc/guix.texi:13385 doc/guix.texi:16720
 #, no-wrap
 msgid ""
 "(use-modules (gnu) (guix))\n"
@@ -20797,7 +24104,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:11424
+#: doc/guix.texi:13390
 #, no-wrap
 msgid ""
 "(operating-system\n"
@@ -20811,17 +24118,17 @@ msgstr ""
 "          (operating-system-kernel this-operating-system))))\n"
 
 #. type: deffn
-#: doc/guix.texi:11428
+#: doc/guix.texi:13394
 msgid "It is an error to refer to @code{this-operating-system} outside an operating system definition."
 msgstr "Es ist ein Fehler, außerhalb einer Betriebssystemdefinition auf @code{this-operating-system} zu verweisen."
 
 #. type: Plain text
-#: doc/guix.texi:11439
+#: doc/guix.texi:13405
 msgid "The list of file systems to be mounted is specified in the @code{file-systems} field of the operating system declaration (@pxref{Using the Configuration System}).  Each file system is declared using the @code{file-system} form, like this:"
 msgstr "Die Liste der Dateisysteme, die eingebunden werden sollen, steht im @code{file-systems}-Feld der Betriebssystemdeklaration (siehe @ref{Using the Configuration System}). Jedes Dateisystem wird mit der @code{file-system}-Form deklariert, etwa so:"
 
 #. type: lisp
-#: doc/guix.texi:11445
+#: doc/guix.texi:13411
 #, no-wrap
 msgid ""
 "(file-system\n"
@@ -20835,67 +24142,67 @@ msgstr ""
 "  (type \"ext4\"))\n"
 
 #. type: Plain text
-#: doc/guix.texi:11449
+#: doc/guix.texi:13415
 msgid "As usual, some of the fields are mandatory---those shown in the example above---while others can be omitted.  These are described below."
 msgstr "Wie immer müssen manche Felder angegeben werden — die, die im Beispiel oben stehen —, während andere optional sind. Die Felder werden nun beschrieben."
 
 #. type: deftp
-#: doc/guix.texi:11450
+#: doc/guix.texi:13416
 #, no-wrap
 msgid "{Data Type} file-system"
 msgstr "{Datentyp} file-system"
 
 #. type: deftp
-#: doc/guix.texi:11453
+#: doc/guix.texi:13419
 msgid "Objects of this type represent file systems to be mounted.  They contain the following members:"
 msgstr "Objekte dieses Typs repräsentieren einzubindende Dateisysteme. Sie weisen folgende Komponenten auf:"
 
 #. type: item
-#: doc/guix.texi:11455 doc/guix.texi:11649
+#: doc/guix.texi:13421 doc/guix.texi:13765
 #, no-wrap
 msgid "type"
 msgstr "type"
 
 #. type: table
-#: doc/guix.texi:11458
+#: doc/guix.texi:13424
 msgid "This is a string specifying the type of the file system---e.g., @code{\"ext4\"}."
 msgstr "Eine Zeichenkette, die den Typ des Dateisystems spezifiziert, z.B.@: @code{\"ext4\"}."
 
 #. type: code{#1}
-#: doc/guix.texi:11459
+#: doc/guix.texi:13425
 #, no-wrap
 msgid "mount-point"
 msgstr "mount-point"
 
 #. type: table
-#: doc/guix.texi:11461
+#: doc/guix.texi:13427
 msgid "This designates the place where the file system is to be mounted."
 msgstr "Der Einhängepunkt, d.h.@: der Pfad, an dem das Dateisystem eingebunden werden soll."
 
 #. type: code{#1}
-#: doc/guix.texi:11462
+#: doc/guix.texi:13428
 #, no-wrap
 msgid "device"
 msgstr "device"
 
 #. type: table
-#: doc/guix.texi:11472
+#: doc/guix.texi:13438
 msgid "This names the ``source'' of the file system.  It can be one of three things: a file system label, a file system UUID, or the name of a @file{/dev} node.  Labels and UUIDs offer a way to refer to file systems without having to hard-code their actual device name@footnote{Note that, while it is tempting to use @file{/dev/disk/by-uuid} and similar device names to achieve the same result, this is not recommended: These special device nodes are created by the udev daemon and may be unavailable at the time the device is mounted.}."
-msgstr "Hiermit wird die „Quelle“ des Dateisystems bezeichnet. Sie kann eines von drei Dingen sein: die Bezeichnung („Labels“) eines Dateisystems, die UUID-Kennung des Dateisystems oder der Name eines @file{/dev}-Knotens. Mit Bezeichnungen und UUIDs kann man Dateisysteme benennen, ohne den Gerätenamen festzuschreiben@footnote{Beachten Sie: Obwohl es verführerisch ist, mit @file{/dev/disk/by-uuid} und ähnlichen Gerätenamen dasselbe Resultat bekommen zu wollen, raten wir davon ab: Diese speziellen Gerätenamen werden erst vom udev-Daemon erzeugt und sind, wenn die Geräte eingebunden werden, vielleicht noch nicht verfügbar.}."
+msgstr "Hiermit wird die „Quelle“ des Dateisystems bezeichnet. Sie kann eines von drei Dingen sein: die Bezeichnung („Labels“) eines Dateisystems, die UUID-Kennung des Dateisystems oder der Name eines @file{/dev}-Knotens. Mit Bezeichnungen und UUIDs können Sie Dateisysteme benennen, ohne den Gerätenamen festzuschreiben@footnote{Beachten Sie: Obwohl es verführerisch ist, mit @file{/dev/disk/by-uuid} und ähnlichen Gerätenamen dasselbe Resultat bekommen zu wollen, raten wir davon ab: Diese speziellen Gerätenamen werden erst vom udev-Daemon erzeugt und sind, wenn die Geräte eingebunden werden, vielleicht noch nicht verfügbar.}."
 
 #. type: findex
-#: doc/guix.texi:11473
+#: doc/guix.texi:13439
 #, no-wrap
 msgid "file-system-label"
 msgstr "file-system-label"
 
 #. type: table
-#: doc/guix.texi:11478
+#: doc/guix.texi:13444
 msgid "File system labels are created using the @code{file-system-label} procedure, UUIDs are created using @code{uuid}, and @file{/dev} node are plain strings.  Here's an example of a file system referred to by its label, as shown by the @command{e2label} command:"
 msgstr "Dateisystem-Bezeichnungen („Labels“) werden mit der Prozedur @code{file-system-label} erzeugt und UUID-Kennungen werden mit @code{uuid} erzeugt, während Knoten in @file{/dev} mit ihrem Pfad als einfache Zeichenketten aufgeführt werden. Hier ist ein Beispiel, wie wir ein Dateisystem anhand seiner Bezeichnung aufführen, wie sie vom Befehl @command{e2label} angezeigt wird:"
 
 #. type: lisp
-#: doc/guix.texi:11484
+#: doc/guix.texi:13450
 #, no-wrap
 msgid ""
 "(file-system\n"
@@ -20908,19 +24215,19 @@ msgstr ""
 "  (type \"ext4\")\n"
 "  (device (file-system-label \"my-home\")))\n"
 
-#. type: findex
-#: doc/guix.texi:11486
+#. type: code{#1}
+#: doc/guix.texi:13452 doc/guix.texi:29116
 #, no-wrap
 msgid "uuid"
 msgstr "uuid"
 
 #. type: table
-#: doc/guix.texi:11494
+#: doc/guix.texi:13460
 msgid "UUIDs are converted from their string representation (as shown by the @command{tune2fs -l} command) using the @code{uuid} form@footnote{The @code{uuid} form expects 16-byte UUIDs as defined in @uref{https://tools.ietf.org/html/rfc4122, RFC@tie{}4122}.  This is the form of UUID used by the ext2 family of file systems and others, but it is different from ``UUIDs'' found in FAT file systems, for instance.}, like this:"
 msgstr "UUID-Kennungen werden mit der @code{uuid}-Form von ihrer Darstellung als Zeichenkette (wie sie vom Befehl @command{tune2fs -l} angezeigt wird) konvertiert@footnote{Die @code{uuid}-Form nimmt 16-Byte-UUIDs entgegen, wie sie in @uref{https://tools.ietf.org/html/rfc4122, RFC@tie{}4122} definiert sind. Diese Form der UUID wird unter anderem von der ext2-Familie von Dateisystemen verwendet, sie unterscheidet sich jedoch zum Beispiel von den „UUID“ genannten Kennungen, wie man sie bei FAT-Dateisystemen findet.} wie hier:"
 
 #. type: lisp
-#: doc/guix.texi:11500
+#: doc/guix.texi:13466
 #, no-wrap
 msgid ""
 "(file-system\n"
@@ -20934,268 +24241,507 @@ msgstr ""
 "  (device (uuid \"4dab5feb-d176-45de-b287-9b0a6e4c01cb\")))\n"
 
 #. type: table
-#: doc/guix.texi:11508
+#: doc/guix.texi:13474
 msgid "When the source of a file system is a mapped device (@pxref{Mapped Devices}), its @code{device} field @emph{must} refer to the mapped device name---e.g., @file{\"/dev/mapper/root-partition\"}.  This is required so that the system knows that mounting the file system depends on having the corresponding device mapping established."
 msgstr "Wenn die Quelle eines Dateisystems ein zugeordnetes Gerät (siehe @ref{Mapped Devices}) ist, @emph{muss} sich das @code{device}-Feld auf den zugeordneten Gerätenamen beziehen — z.B.@: @file{\"/dev/mapper/root-partition\"}. Das ist nötig, damit das System weiß, dass das Einbinden des Dateisystems davon abhängt, die entsprechende Gerätezuordnung hergestellt zu haben."
 
 #. type: item
-#: doc/guix.texi:11509
+#: doc/guix.texi:13475
 #, no-wrap
 msgid "@code{flags} (default: @code{'()})"
 msgstr "@code{flags} (Vorgabe: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:11519
+#: doc/guix.texi:13485
 msgid "This is a list of symbols denoting mount flags.  Recognized flags include @code{read-only}, @code{bind-mount}, @code{no-dev} (disallow access to special files), @code{no-suid} (ignore setuid and setgid bits), @code{no-atime} (do not update file access times), @code{strict-atime} (update file access time), @code{lazy-time} (only update time on the in-memory version of the file inode), and @code{no-exec} (disallow program execution).  @xref{Mount-Unmount-Remount,,, libc, The GNU C Library Reference Manual}, for more information on these flags."
-msgstr "Eine Liste von Symbolen, die Einbinde-Flags („mount flags“) bezeichnen. Erkannt werden unter anderem @code{read-only}, @code{bind-mount}, @code{no-dev} (Zugang zu besonderen Dateien verweigern), @code{no-suid} (setuid- und setgid-Bits ignorieren), @code{no-atime} (Dateizugriffs-Zeitstempel @emph{nicht} aktualisieren), @code{strict-atime} (Dateizugriffs-Zeitstempel immer aktualisieren), @code{lazy-time} (Zeitstempel nur auf zwischengespeicherten Datei-Inodes im Arbeitsspeicher aktualisieren) und @code{no-exec} (Programmausführungen verweigern). Siehe @ref{Mount-Unmount-Remount,,, libc, The GNU C Library Reference Manual} für mehr Informationen zu diesen Einbinde-Optionen."
+msgstr "Eine Liste von Symbolen, die Einbinde-Flags („mount flags“) bezeichnen. Erkannt werden unter anderem @code{read-only}, @code{bind-mount}, @code{no-dev} (Zugang zu besonderen Dateien verweigern), @code{no-suid} (setuid- und setgid-Bits ignorieren), @code{no-atime} (Dateizugriffs-Zeitstempel @emph{nicht} aktualisieren), @code{strict-atime} (Dateizugriffs-Zeitstempel immer aktualisieren), @code{lazy-time} (Zeitstempel nur auf zwischengespeicherten Datei-Inodes im Arbeitsspeicher aktualisieren) und @code{no-exec} (Programmausführungen verweigern). Siehe @ref{Mount-Unmount-Remount,,, libc, Referenzhandbuch der GNU-C-Bibliothek} für mehr Informationen zu diesen Einbinde-Optionen."
 
 #. type: item
-#: doc/guix.texi:11520
+#: doc/guix.texi:13486
 #, no-wrap
 msgid "@code{options} (default: @code{#f})"
 msgstr "@code{options} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:11525
-msgid "This is either @code{#f}, or a string denoting mount options passed to the file system driver.  @xref{Mount-Unmount-Remount,,, libc, The GNU C Library Reference Manual}, for details and run @command{man 8 mount} for options for various file systems."
-msgstr "Entweder @code{#f} oder eine Zeichenkette mit Einbinde-Optionen („mount options“), die an den Dateisystemtreiber übergeben werden. Siehe @ref{Mount-Unmount-Remount,,, libc, The GNU C Library Reference Manual} für Details; führen Sie @command{man 8 mount} aus, um die Einbinde-Optionen verschiedener Dateisysteme zu sehen."
+#: doc/guix.texi:13495
+msgid "This is either @code{#f}, or a string denoting mount options passed to the file system driver.  @xref{Mount-Unmount-Remount,,, libc, The GNU C Library Reference Manual}, for details and run @command{man 8 mount} for options for various file systems.  Note that the @code{file-system-options->alist} and @code{alist->file-system-options} procedures from @code{(gnu system file-systems)} can be used to convert file system options given as an association list to the string representation, and vice-versa."
+msgstr "Entweder @code{#f} oder eine Zeichenkette mit Einbinde-Optionen („mount options“), die an den Dateisystemtreiber übergeben werden. Siehe @ref{Mount-Unmount-Remount,,, libc, Referenzhandbuch der GNU-C-Bibliothek} für Details; führen Sie @command{man 8 mount} aus, um die Einbinde-Optionen verschiedener Dateisysteme zu sehen. Beachten Sie, dass die Prozeduren @code{file-system-options->alist} und @code{alist->file-system-options} aus @code{(gnu system file-systems)} benutzt werden können, um als assoziative Liste dargestellte Dateisystemoptionen in eine Darstellung als Zeichenkette umzuwandeln und umgekehrt."
 
 #. type: item
-#: doc/guix.texi:11526
+#: doc/guix.texi:13496
 #, no-wrap
 msgid "@code{mount?} (default: @code{#t})"
 msgstr "@code{mount?} (Vorgabe: @code{#t})"
 
 #. type: table
-#: doc/guix.texi:11531
+#: doc/guix.texi:13501
 msgid "This value indicates whether to automatically mount the file system when the system is brought up.  When set to @code{#f}, the file system gets an entry in @file{/etc/fstab} (read by the @command{mount} command) but is not automatically mounted."
 msgstr "Dieser Wert zeigt an, ob das Dateisystem automatisch eingebunden werden soll, wenn das System gestartet wird. Ist der Wert @code{#f}, dann erhält das Dateisystem nur einen Eintrag in der Datei @file{/etc/fstab} (welche vom @command{mount}-Befehl zum Einbinden gelesen wird), es wird aber nicht automatisch eingebunden."
 
 #. type: item
-#: doc/guix.texi:11532
+#: doc/guix.texi:13502
 #, no-wrap
 msgid "@code{needed-for-boot?} (default: @code{#f})"
 msgstr "@code{needed-for-boot?} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:11537
+#: doc/guix.texi:13507
 msgid "This Boolean value indicates whether the file system is needed when booting.  If that is true, then the file system is mounted when the initial RAM disk (initrd) is loaded.  This is always the case, for instance, for the root file system."
 msgstr "Dieser boolesche Wert gibt an, ob das Dateisystem zum Hochfahren des Systems notwendig ist. In diesem Fall wird das Dateisystem eingebunden, wenn die initiale RAM-Disk (initrd) geladen wird. Für zum Beispiel das Wurzeldateisystem ist dies ohnehin immer der Fall."
 
 #. type: item
-#: doc/guix.texi:11538
+#: doc/guix.texi:13508
 #, no-wrap
 msgid "@code{check?} (default: @code{#t})"
 msgstr "@code{check?} (Vorgabe: @code{#t})"
 
 #. type: table
-#: doc/guix.texi:11541
+#: doc/guix.texi:13511
 msgid "This Boolean indicates whether the file system needs to be checked for errors before being mounted."
 msgstr "Dieser boolesche Wert sagt aus, ob das Dateisystem vor dem Einbinden auf Fehler hin geprüft werden soll."
 
 #. type: item
-#: doc/guix.texi:11542
+#: doc/guix.texi:13512
 #, no-wrap
 msgid "@code{create-mount-point?} (default: @code{#f})"
 msgstr "@code{create-mount-point?} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:11544
+#: doc/guix.texi:13514
 msgid "When true, the mount point is created if it does not exist yet."
 msgstr "Steht dies auf wahr, wird der Einhängepunkt vor dem Einbinden erstellt, wenn er noch nicht existiert."
 
 #. type: item
-#: doc/guix.texi:11545
+#: doc/guix.texi:13515
+#, no-wrap
+msgid "@code{mount-may-fail?} (default: @code{#f})"
+msgstr "@code{mount-may-fail?} (Vorgabe: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:13520
+msgid "When true, this indicates that mounting this file system can fail but that should not be considered an error.  This is useful in unusual cases; an example of this is @code{efivarfs}, a file system that can only be mounted on EFI/UEFI systems."
+msgstr "Wenn dies auf wahr steht, bedeutet es, dass das Einbinden dieses Dateisystems scheitern kann, dies aber nicht als Fehler aufgefasst werden soll. Das braucht man in besonderen Fällen, zum Beispiel wird es für @code{efivarfs} benutzt, einem Dateisystem, das nur auf EFI-/UEFI-Systemen eingebunden werden kann."
+
+#. type: item
+#: doc/guix.texi:13521
 #, no-wrap
 msgid "@code{dependencies} (default: @code{'()})"
 msgstr "@code{dependencies} (Vorgabe: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:11549
+#: doc/guix.texi:13525
 msgid "This is a list of @code{<file-system>} or @code{<mapped-device>} objects representing file systems that must be mounted or mapped devices that must be opened before (and unmounted or closed after) this one."
 msgstr "Dies ist eine Liste von @code{<file-system>}- oder @code{<mapped-device>}-Objekten, die Dateisysteme repräsentieren, die vor diesem Dateisystem eingebunden oder zugeordnet werden müssen (und nach diesem ausgehängt oder geschlossen werden müssen)."
 
 #. type: table
-#: doc/guix.texi:11553
+#: doc/guix.texi:13529
 msgid "As an example, consider a hierarchy of mounts: @file{/sys/fs/cgroup} is a dependency of @file{/sys/fs/cgroup/cpu} and @file{/sys/fs/cgroup/memory}."
 msgstr "Betrachten Sie zum Beispiel eine Hierarchie von Einbindungen: @file{/sys/fs/cgroup} ist eine Abhängigkeit von @file{/sys/fs/cgroup/cpu} und @file{/sys/fs/cgroup/memory}."
 
 #. type: table
-#: doc/guix.texi:11556
+#: doc/guix.texi:13532
 msgid "Another example is a file system that depends on a mapped device, for example for an encrypted partition (@pxref{Mapped Devices})."
 msgstr "Ein weiteres Beispiel ist ein Dateisystem, was von einem zugeordneten Gerät abhängt, zum Beispiel zur Verschlüsselung einer Partition (siehe @ref{Mapped Devices})."
 
+#. type: deffn
+#: doc/guix.texi:13535
+#, no-wrap
+msgid "{Scheme Procedure} file-system-label @var{str}"
+msgstr "{Scheme-Prozedur} file-system-label @var{Zeichenkette}"
+
+#. type: deffn
+#: doc/guix.texi:13538
+msgid "This procedure returns an opaque file system label from @var{str}, a string:"
+msgstr "Diese Prozedur kapselt die @var{Zeichenkette} in einer opaken Dateisystembezeichnung:"
+
+#. type: lisp
+#: doc/guix.texi:13542
+#, no-wrap
+msgid ""
+"(file-system-label \"home\")\n"
+"@result{} #<file-system-label \"home\">\n"
+msgstr ""
+"(file-system-label \"home\")\n"
+"@result{} #<file-system-label \"home\">\n"
+
+#. type: deffn
+#: doc/guix.texi:13546
+msgid "File system labels are used to refer to file systems by label rather than by device name.  See above for examples."
+msgstr "Mit Dateisystembezeichnungen werden Dateisysteme anhand ihrer Bezeichnung („Label“) statt ihres Gerätenamens („Device Name“) identifiziert. Siehe die Beispiele oben."
+
 #. type: Plain text
-#: doc/guix.texi:11561
+#: doc/guix.texi:13550
 msgid "The @code{(gnu system file-systems)} exports the following useful variables."
 msgstr "Das Modul @code{(gnu system file-systems)} exportiert die folgenden nützlichen Variablen."
 
 #. type: defvr
-#: doc/guix.texi:11562
+#: doc/guix.texi:13551
 #, no-wrap
 msgid "{Scheme Variable} %base-file-systems"
 msgstr "{Scheme-Variable} %base-file-systems"
 
 #. type: defvr
-#: doc/guix.texi:11567
-msgid "These are essential file systems that are required on normal systems, such as @var{%pseudo-terminal-file-system} and @var{%immutable-store} (see below.)  Operating system declarations should always contain at least these."
-msgstr "Hiermit werden essenzielle Dateisysteme bezeichnet, die für normale Systeme unverzichtbar sind, wie zum Beispiel @var{%pseudo-terminal-file-system} und @var{%immutable-store} (siehe unten). Betriebssystemdeklaration sollten auf jeden Fall mindestens diese enthalten."
+#: doc/guix.texi:13556
+msgid "These are essential file systems that are required on normal systems, such as @code{%pseudo-terminal-file-system} and @code{%immutable-store} (see below).  Operating system declarations should always contain at least these."
+msgstr "Hiermit werden essenzielle Dateisysteme bezeichnet, die für normale Systeme unverzichtbar sind, wie zum Beispiel @code{%pseudo-terminal-file-system} und @code{%immutable-store} (siehe unten). Betriebssystemdeklaration sollten auf jeden Fall mindestens diese enthalten."
 
 #. type: defvr
-#: doc/guix.texi:11569
+#: doc/guix.texi:13558
 #, no-wrap
 msgid "{Scheme Variable} %pseudo-terminal-file-system"
 msgstr "{Scheme-Variable} %pseudo-terminal-file-system"
 
 #. type: defvr
-#: doc/guix.texi:11575
+#: doc/guix.texi:13564
 msgid "This is the file system to be mounted as @file{/dev/pts}.  It supports @dfn{pseudo-terminals} created @i{via} @code{openpty} and similar functions (@pxref{Pseudo-Terminals,,, libc, The GNU C Library Reference Manual}).  Pseudo-terminals are used by terminal emulators such as @command{xterm}."
-msgstr "Das als @file{/dev/pts} einzubindende Dateisystem. Es unterstützt über @code{openpty} und ähnliche Funktionen erstellte @dfn{Pseudo-Terminals} (siehe @ref{Pseudo-Terminals,,, libc, The GNU C Library Reference Manual}). Pseudo-Terminals werden von Terminal-Emulatoren wie @command{xterm} benutzt."
+msgstr "Das als @file{/dev/pts} einzubindende Dateisystem. Es unterstützt über @code{openpty} und ähnliche Funktionen erstellte @dfn{Pseudo-Terminals} (siehe @ref{Pseudo-Terminals,,, libc, Referenzhandbuch der GNU-C-Bibliothek}). Pseudo-Terminals werden von Terminal-Emulatoren wie @command{xterm} benutzt."
 
 #. type: defvr
-#: doc/guix.texi:11577
+#: doc/guix.texi:13566
 #, no-wrap
 msgid "{Scheme Variable} %shared-memory-file-system"
 msgstr "{Scheme-Variable} %shared-memory-file-system"
 
 #. type: defvr
-#: doc/guix.texi:11581
+#: doc/guix.texi:13570
 msgid "This file system is mounted as @file{/dev/shm} and is used to support memory sharing across processes (@pxref{Memory-mapped I/O, @code{shm_open},, libc, The GNU C Library Reference Manual})."
-msgstr "Dieses Dateisystem wird als @file{/dev/shm} eingebunden, um Speicher zwischen Prozessen teilen zu können (siehe @ref{Memory-mapped I/O, @code{shm_open},, libc, The GNU C Library Reference Manual})."
+msgstr "Dieses Dateisystem wird als @file{/dev/shm} eingebunden, um Speicher zwischen Prozessen teilen zu können (siehe @ref{Memory-mapped I/O, @code{shm_open},, libc, Referenzhandbuch der GNU-C-Bibliothek})."
 
 #. type: defvr
-#: doc/guix.texi:11583
+#: doc/guix.texi:13572
 #, no-wrap
 msgid "{Scheme Variable} %immutable-store"
 msgstr "{Scheme-Variable} %immutable-store"
 
 #. type: defvr
-#: doc/guix.texi:11588
+#: doc/guix.texi:13577
 msgid "This file system performs a read-only ``bind mount'' of @file{/gnu/store}, making it read-only for all the users including @code{root}.  This prevents against accidental modification by software running as @code{root} or by system administrators."
 msgstr "Dieses Dateisystem vollzieht einen „bind mount“ des @file{/gnu/store}, um ihn für alle Nutzer einschließlich des Administratornutzers @code{root} nur lesbar zu machen, d.h.@: Schreibrechte zu entziehen. Dadurch kann als @code{root} ausgeführte Software, oder der Systemadministrator, nicht aus Versehen den Store modifizieren."
 
 #. type: defvr
-#: doc/guix.texi:11591
+#: doc/guix.texi:13580
 msgid "The daemon itself is still able to write to the store: it remounts it read-write in its own ``name space.''"
 msgstr "Der Daemon kann weiterhin in den Store schreiben, indem er ihn selbst mit Schreibrechten in seinem eigenen „Namensraum“ einbindet."
 
 #. type: defvr
-#: doc/guix.texi:11593
+#: doc/guix.texi:13582
 #, no-wrap
 msgid "{Scheme Variable} %binary-format-file-system"
 msgstr "{Scheme-Variable} %binary-format-file-system"
 
 #. type: defvr
-#: doc/guix.texi:11597
+#: doc/guix.texi:13586
 msgid "The @code{binfmt_misc} file system, which allows handling of arbitrary executable file types to be delegated to user space.  This requires the @code{binfmt.ko} kernel module to be loaded."
 msgstr "Das @code{binfmt_misc}-Dateisystem, durch das beliebige Dateitypen als ausführbare Dateien auf der Anwendungsebene (dem User Space) zugänglich gemacht werden können. Es setzt voraus, dass das Kernel-Modul @code{binfmt.ko} geladen wurde."
 
 #. type: defvr
-#: doc/guix.texi:11599
+#: doc/guix.texi:13588
 #, no-wrap
 msgid "{Scheme Variable} %fuse-control-file-system"
 msgstr "{Scheme-Variable} %fuse-control-file-system"
 
 #. type: defvr
-#: doc/guix.texi:11603
+#: doc/guix.texi:13592
 msgid "The @code{fusectl} file system, which allows unprivileged users to mount and unmount user-space FUSE file systems.  This requires the @code{fuse.ko} kernel module to be loaded."
 msgstr "Das @code{fusectl}-Dateisystem, womit „unprivilegierte“ Nutzer ohne besondere Berechtigungen im User Space FUSE-Dateisysteme einbinden und aushängen können. Dazu muss das Kernel-Modul @code{fuse.ko} geladen sein."
 
+#. type: Plain text
+#: doc/guix.texi:13596
+msgid "The @code{(gnu system uuid)} module provides tools to deal with file system ``unique identifiers'' (UUIDs)."
+msgstr "Das Modul @code{(gnu system uuid)} stellt Werkzeug zur Verfügung, um mit eindeutigen Identifikatoren für Dateisysteme umzugehen (sogenannten „Unique Identifiers“, UUIDs)."
+
+#. type: deffn
+#: doc/guix.texi:13597
+#, no-wrap
+msgid "{Scheme Procedure} uuid @var{str} [@var{type}]"
+msgstr "{Scheme-Prozedur} uuid @var{Zeichenkette} [@var{Typ}]"
+
+#. type: deffn
+#: doc/guix.texi:13600
+msgid "Return an opaque UUID (unique identifier) object of the given @var{type} (a symbol) by parsing @var{str} (a string):"
+msgstr "Liefert eine eindeutige UUID (Unique Identifier) als opakes Objekt des angegebenen @var{Typ}s (ein Symbol), indem die @var{Zeichenkette} verarbeitet wird:"
+
+#. type: lisp
+#: doc/guix.texi:13604
+#, no-wrap
+msgid ""
+"(uuid \"4dab5feb-d176-45de-b287-9b0a6e4c01cb\")\n"
+"@result{} #<<uuid> type: dce bv: @dots{}>\n"
+"\n"
+msgstr ""
+"(uuid \"4dab5feb-d176-45de-b287-9b0a6e4c01cb\")\n"
+"@result{} #<<uuid> type: dce bv: …>\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:13607
+#, no-wrap
+msgid ""
+"(uuid \"1234-ABCD\" 'fat)\n"
+"@result{} #<<uuid> type: fat bv: @dots{}>\n"
+msgstr ""
+"(uuid \"1234-ABCD\" 'fat)\n"
+"@result{} #<<uuid> type: fat bv: …>\n"
+
+#. type: deffn
+#: doc/guix.texi:13611
+msgid "@var{type} may be one of @code{dce}, @code{iso9660}, @code{fat}, @code{ntfs}, or one of the commonly found synonyms for these."
+msgstr "Als @var{Typ} kann entweder @code{dce}, @code{iso9660}, @code{fat}, @code{ntfs} oder eines der üblichen Synonyme dafür angegeben werden."
+
+#. type: deffn
+#: doc/guix.texi:13614
+msgid "UUIDs are another way to unambiguously refer to file systems in operating system configuration.  See the examples above."
+msgstr "UUIDs bieten eine andere Möglichkeit, sich in der Betriebssystemkonfiguration ohne Mehrdeutigkeiten auf eines der Dateisysteme zu beziehen. Siehe die Beispiele oben."
+
+#. type: subsection
+#: doc/guix.texi:13617 doc/guix.texi:13618
+#, no-wrap
+msgid "Btrfs file system"
+msgstr "Btrfs-Dateisystem"
+
+#. type: Plain text
+#: doc/guix.texi:13624
+msgid "The Btrfs has special features, such as subvolumes, that merit being explained in more details.  The following section attempts to cover basic as well as complex uses of a Btrfs file system with the Guix System."
+msgstr "Das Btrfs-Dateisystem bietet besondere Funktionalitäten, wie z.B.@: Unterlaufwerke („Subvolumes“), die eine detailliertere Erklärung verdienen. Im folgenden Abschnitt wird versucht, grundlegende sowie komplexe Anwendungsmöglichkeiten eines Btrfs-Dateisystem für Guix System abzudecken."
+
+#. type: Plain text
+#: doc/guix.texi:13627
+msgid "In its simplest usage, a Btrfs file system can be described, for example, by:"
+msgstr "Im einfachsten Fall kann ein Btrfs-Dateisystem durch einen Ausdruck wie hier beschrieben werden:"
+
+#. type: lisp
+#: doc/guix.texi:13633
+#, no-wrap
+msgid ""
+"(file-system\n"
+"  (mount-point \"/home\")\n"
+"  (type \"btrfs\")\n"
+"  (device (file-system-label \"my-home\")))\n"
+msgstr ""
+"(file-system\n"
+"  (mount-point \"/home\")\n"
+"  (type \"btrfs\")\n"
+"  (device (file-system-label \"my-home\")))\n"
+
+#. type: Plain text
+#: doc/guix.texi:13639
+msgid "The example below is more complex, as it makes use of a Btrfs subvolume, named @code{rootfs}.  The parent Btrfs file system is labeled @code{my-btrfs-pool}, and is located on an encrypted device (hence the dependency on @code{mapped-devices}):"
+msgstr "Nun folgt ein komplexeres Beispiel, bei dem ein Btrfs-Unterlaufwerk namens @code{rootfs} benutzt wird. Dessen Eltern-Btrfs-Dateisystem wird mit @code{my-btrfs-pool} bezeichnet und befindet sich auf einem verschlüsselten Gerät (daher die Abhängigkeit von @code{mapped-devices}):"
+
+#. type: lisp
+#: doc/guix.texi:13647
+#, no-wrap
+msgid ""
+"(file-system\n"
+"  (device (file-system-label \"my-btrfs-pool\"))\n"
+"  (mount-point \"/\")\n"
+"  (type \"btrfs\")\n"
+"  (options \"subvol=rootfs\")\n"
+"  (dependencies mapped-devices))\n"
+msgstr ""
+"(file-system\n"
+"  (device (file-system-label \"my-btrfs-pool\"))\n"
+"  (mount-point \"/\")\n"
+"  (type \"btrfs\")\n"
+"  (options \"subvol=rootfs\")\n"
+"  (dependencies mapped-devices))\n"
+
+#. type: Plain text
+#: doc/guix.texi:13658
+msgid "Some bootloaders, for example GRUB, only mount a Btrfs partition at its top level during the early boot, and rely on their configuration to refer to the correct subvolume path within that top level.  The bootloaders operating in this way typically produce their configuration on a running system where the Btrfs partitions are already mounted and where the subvolume information is readily available.  As an example, @command{grub-mkconfig}, the configuration generator command shipped with GRUB, reads @file{/proc/self/mountinfo} to determine the top-level path of a subvolume."
+msgstr "Manche Bootloader, wie zum Beispiel GRUB, binden von einer Btrfs-Partition zuerst beim frühen Boot („early boot“) nur die oberste Ebene ein und verlassen sich darauf, dass ihre Konfiguration den korrekten Pfad samt Unterlaufwerk innerhalb dieser obersten Ebene enthält. Auf diese Weise arbeitende Bootloader erzeugen ihre Konfiguration normalerweise auf einem laufenden System, auf dem die Btrfs-Partitionen bereits eingebunden sind und die Informationen über die Unterlaufwerke zur Verfügung stehen. Zum Beispiel liest @command{grub-mkconfig}, der bei GRUB mitgelieferte Befehl zur Erzeugung von Konfigurationsdateien, aus @file{/proc/self/mountinfo}, um festzustellen, was auf oberster Ebene der Pfad zum Unterlaufwerk ist."
+
+#. type: Plain text
+#: doc/guix.texi:13666
+msgid "The Guix System produces a bootloader configuration using the operating system configuration as its sole input; it is therefore necessary to extract the subvolume name on which @file{/gnu/store} lives (if any)  from that operating system configuration.  To better illustrate, consider a subvolume named 'rootfs' which contains the root file system data.  In such situation, the GRUB bootloader would only see the top level of the root Btrfs partition, e.g.:"
+msgstr "Guix System hingegen erzeugt eine Bootloader-Konfiguration mit der Betriebssystemkonfiguration als einzige Eingabe. Daher muss der Name des Unterlaufwerks, auf dem sich @file{/gnu/store} befindet (falls Sie eines benutzen) aus derselben Betriebssystemkonfiguration kommen. Um das besser zu veranschaulichen, betrachten Sie ein Unterlaufwerk namens „rootfs“, das die Daten des Wurzeldateisystems speichert. In einer solchen Situation würde der GRUB-Bootloader nur die oberste Ebene der Wurzel-Btrfs-Partition sehen, z.B.:"
+
+#. type: example
+#: doc/guix.texi:13673
+#, no-wrap
+msgid ""
+"/                   (top level)\n"
+"├── rootfs          (subvolume directory)\n"
+"    ├── gnu         (normal directory)\n"
+"        ├── store   (normal directory)\n"
+"[...]\n"
+msgstr ""
+"/                   (oberste Ebene)\n"
+"├── rootfs          (Unterlaufwerk als Verzeichnis)\n"
+"    ├── gnu         (normales Verzeichnis)\n"
+"        ├── store   (normales Verzeichnis)\n"
+"[…]\n"
+
+#. type: Plain text
+#: doc/guix.texi:13678
+msgid "Thus, the subvolume name must be prepended to the @file{/gnu/store} path of the kernel, initrd binaries and any other files referred to in the GRUB configuration that must be found during the early boot."
+msgstr "Deswegen muss der Name des Unterlaufwerks dem @file{/gnu/store}-Pfad des Kernels, der initrd und jeder anderen Datei vorangestellt werden, die die GRUB-Konfiguration referenziert und während des frühen Boots gefunden werden können muss."
+
+#. type: Plain text
+#: doc/guix.texi:13681
+msgid "The next example shows a nested hierarchy of subvolumes and directories:"
+msgstr "Das nächste Beispiel zeigt eine verschachtelte Hierarchie aus Unterlaufwerken und Verzeichnissen:"
+
+#. type: example
+#: doc/guix.texi:13688
+#, no-wrap
+msgid ""
+"/                   (top level)\n"
+"├── rootfs          (subvolume)\n"
+"    ├── gnu         (normal directory)\n"
+"        ├── store   (subvolume)\n"
+"[...]\n"
+msgstr ""
+"/                   (oberste Ebene)\n"
+"├── rootfs          (Unterlaufwerk)\n"
+"    ├── gnu         (normales Verzeichnis)\n"
+"        ├── store   (Unterlaufwerk)\n"
+"[…]\n"
+
+#. type: Plain text
+#: doc/guix.texi:13695
+msgid "This scenario would work without mounting the 'store' subvolume.  Mounting 'rootfs' is sufficient, since the subvolume name matches its intended mount point in the file system hierarchy.  Alternatively, the 'store' subvolume could be referred to by setting the @code{subvol} option to either @code{/rootfs/gnu/store} or @code{rootfs/gnu/store}."
+msgstr "Dieses Szenario würde ohne Einbinden des „store“-Unterlaufwerks funktionieren. „rootfs“ genügt, weil der Name des Unterlaufwerks dem dafür vorgesehenen Einhängepunkt in der Dateisystemhierarchie entspricht. Alternativ könnte man das „store“-Unterlaufwerk durch Festlegen der @code{subvol}-Option auf entweder @code{/rootfs/gnu/store} oder @code{rootfs/gnu/store} verwenden."
+
+#. type: Plain text
+#: doc/guix.texi:13697
+msgid "Finally, a more contrived example of nested subvolumes:"
+msgstr "Abschließend folgt ein ausgeklügelteres Beispiel verschachtelter Unterlaufwerke:"
+
+#. type: example
+#: doc/guix.texi:13704
+#, no-wrap
+msgid ""
+"/                           (top level)\n"
+"├── root-snapshots          (subvolume)\n"
+"    ├── root-current        (subvolume)\n"
+"        ├── guix-store      (subvolume)\n"
+"[...]\n"
+msgstr ""
+"/                           (oberste Ebene)\n"
+"├── root-snapshots          (Unterlaufwerk)\n"
+"    ├── root-current        (Unterlaufwerk)\n"
+"        ├── guix-store      (Unterlaufwerk)\n"
+"[…]\n"
+
+#. type: Plain text
+#: doc/guix.texi:13711
+msgid "Here, the 'guix-store' subvolume doesn't match its intended mount point, so it is necessary to mount it.  The subvolume must be fully specified, by passing its file name to the @code{subvol} option.  To illustrate, the 'guix-store' subvolume could be mounted on @file{/gnu/store} by using a file system declaration such as:"
+msgstr "Hier stimmt das „guix-store“-Unterlaufwerk nicht mit dem vorgesehenen Einhängepunkt überein, daher muss es eingebunden werden. Das Unterlaufwerk muss vollständig spezifiziert werden, indem sein Dateiname an die @code{subvol}-Option übergeben wird. Eine Möglichkeit wäre, das „guix-store“-Unterlaufwerk als @file{/gnu/store} über eine solche Dateisystemdeklaration einzubinden:"
+
+#. type: lisp
+#: doc/guix.texi:13719
+#, no-wrap
+msgid ""
+"(file-system\n"
+"  (device (file-system-label \"btrfs-pool-1\"))\n"
+"  (mount-point \"/gnu/store\")\n"
+"  (type \"btrfs\")\n"
+"  (options \"subvol=root-snapshots/root-current/guix-store,\\\n"
+"compress-force=zstd,space_cache=v2\"))\n"
+msgstr ""
+"(file-system\n"
+"  (device (file-system-label \"btrfs-pool-1\"))\n"
+"  (mount-point \"/gnu/store\")\n"
+"  (type \"btrfs\")\n"
+"  (options \"subvol=root-snapshots/root-current/guix-store,\\\n"
+"compress-force=zstd,space_cache=v2\"))\n"
+
 #. type: cindex
-#: doc/guix.texi:11608
+#: doc/guix.texi:13724
 #, no-wrap
 msgid "device mapping"
 msgstr "Gerätezuordnung"
 
 #. type: cindex
-#: doc/guix.texi:11609
+#: doc/guix.texi:13725
 #, no-wrap
 msgid "mapped devices"
 msgstr "zugeordnete Geräte"
 
 #. type: Plain text
-#: doc/guix.texi:11627
+#: doc/guix.texi:13743
 msgid "The Linux kernel has a notion of @dfn{device mapping}: a block device, such as a hard disk partition, can be @dfn{mapped} into another device, usually in @code{/dev/mapper/}, with additional processing over the data that flows through it@footnote{Note that the GNU@tie{}Hurd makes no difference between the concept of a ``mapped device'' and that of a file system: both boil down to @emph{translating} input/output operations made on a file to operations on its backing store.  Thus, the Hurd implements mapped devices, like file systems, using the generic @dfn{translator} mechanism (@pxref{Translators,,, hurd, The GNU Hurd Reference Manual}).}.  A typical example is encryption device mapping: all writes to the mapped device are encrypted, and all reads are deciphered, transparently.  Guix extends this notion by considering any device or set of devices that are @dfn{transformed} in some way to create a new device; for instance, RAID devices are obtained by @dfn{assembling} several other devices, such as hard disks or partitions, into a new one that behaves as one partition.  Other examples, not yet implemented, are LVM logical volumes."
-msgstr "Der Linux-Kernel unterstützt das Konzept der @dfn{Gerätezuordnung}: Ein blockorientiertes Gerät wie eine Festplattenpartition kann einem neuen Gerät @dfn{zugeordnet} werden, gewöhnlich unter @code{/dev/mapper/}, wobei das neue Gerät durchlaufende Daten zusätzlicher Verarbeitung unterzogen werden@footnote{Beachten Sie, dass mit GNU@tie{}Hurd kein Unterschied zwischen dem Konzept eines „zugeordneten Geräts“ und dem eines Dateisystems besteht: Dort werden bei beiden Ein- und Ausgabeoperationen auf eine Datei in Operationen auf dessen Hintergrundspeicher @emph{übersetzt}. Hurd implementiert zugeordnete Geräte genau wie Dateisysteme mit dem generischen @dfn{Übersetzer}-Mechanismus (siehe @ref{Translators,,, hurd, The GNU Hurd Reference Manual}).}. Ein typisches Beispiel ist eine Gerätezuordnung zur Verschlüsselung: Jeder Schreibzugriff auf das zugeordnete Gerät wird transparent verschlüsselt und jeder Lesezugriff ebenso entschlüsselt. Guix erweitert dieses Konzept, indem es darunter jedes Gerät und jede Menge von Geräten versteht, die auf irgendeine Weise @dfn{umgewandelt} wird, um ein neues Gerät zu bilden; zum Beispiel entstehen auch RAID-Geräte aus einem @dfn{Verbund} mehrerer anderer Geräte, wie etwa Festplatten oder Partition zu einem einzelnen Gerät, das sich wie eine Partition verhält. Ein weiteres Beispiel, das noch nicht in Guix implementiert wurde, sind „LVM logical volumes“."
+msgstr "Der Linux-Kernel unterstützt das Konzept der @dfn{Gerätezuordnung}: Ein blockorientiertes Gerät wie eine Festplattenpartition kann einem neuen Gerät @dfn{zugeordnet} werden, gewöhnlich unter @code{/dev/mapper/}, wobei das neue Gerät durchlaufende Daten zusätzlicher Verarbeitung unterzogen werden@footnote{Beachten Sie, dass mit GNU@tie{}Hurd kein Unterschied zwischen dem Konzept eines „zugeordneten Geräts“ und dem eines Dateisystems besteht: Dort werden bei beiden Ein- und Ausgabeoperationen auf eine Datei in Operationen auf dessen Hintergrundspeicher @emph{übersetzt}. Hurd implementiert zugeordnete Geräte genau wie Dateisysteme mit dem generischen @dfn{Übersetzer}-Mechanismus (siehe @ref{Translators,,, hurd, Referenzhandbuch von GNU Hurd}).}. Ein typisches Beispiel ist eine Gerätezuordnung zur Verschlüsselung: Jeder Schreibzugriff auf das zugeordnete Gerät wird transparent verschlüsselt und jeder Lesezugriff ebenso entschlüsselt. Guix erweitert dieses Konzept, indem es darunter jedes Gerät und jede Menge von Geräten versteht, die auf irgendeine Weise @dfn{umgewandelt} wird, um ein neues Gerät zu bilden; zum Beispiel entstehen auch RAID-Geräte aus einem @dfn{Verbund} mehrerer anderer Geräte, wie etwa Festplatten oder Partition zu einem einzelnen Gerät, das sich wie eine Partition verhält. Ein weiteres Beispiel, das noch nicht in Guix implementiert wurde, sind „LVM logical volumes“."
 
 #. type: Plain text
-#: doc/guix.texi:11630
+#: doc/guix.texi:13746
 msgid "Mapped devices are declared using the @code{mapped-device} form, defined as follows; for examples, see below."
 msgstr "Zugeordnete Geräte werden mittels einer @code{mapped-device}-Form deklariert, die wie folgt definiert ist; Beispiele folgen weiter unten."
 
 #. type: deftp
-#: doc/guix.texi:11631
+#: doc/guix.texi:13747
 #, no-wrap
 msgid "{Data Type} mapped-device"
 msgstr "{Datentyp} mapped-device"
 
 #. type: deftp
-#: doc/guix.texi:11634
+#: doc/guix.texi:13750
 msgid "Objects of this type represent device mappings that will be made when the system boots up."
 msgstr "Objekte dieses Typs repräsentieren Gerätezuordnungen, die gemacht werden, wenn das System hochfährt."
 
 #. type: table
-#: doc/guix.texi:11640
+#: doc/guix.texi:13756
 msgid "This is either a string specifying the name of the block device to be mapped, such as @code{\"/dev/sda3\"}, or a list of such strings when several devices need to be assembled for creating a new one."
 msgstr "Es handelt sich entweder um eine Zeichenkette, die den Namen eines zuzuordnenden blockorientierten Geräts angibt, wie @code{\"/dev/sda3\"}, oder um eine Liste solcher Zeichenketten, sofern mehrere Geräts zu einem neuen Gerät verbunden werden."
 
 #. type: code{#1}
-#: doc/guix.texi:11641 doc/guix.texi:26327
+#: doc/guix.texi:13757 doc/guix.texi:30418
 #, no-wrap
 msgid "target"
 msgstr "target"
 
 #. type: table
-#: doc/guix.texi:11648
+#: doc/guix.texi:13764
 msgid "This string specifies the name of the resulting mapped device.  For kernel mappers such as encrypted devices of type @code{luks-device-mapping}, specifying @code{\"my-partition\"} leads to the creation of the @code{\"/dev/mapper/my-partition\"} device.  For RAID devices of type @code{raid-device-mapping}, the full device name such as @code{\"/dev/md0\"} needs to be given."
 msgstr "Diese Zeichenkette gibt den Namen des neuen zugeordneten Geräts an. Bei Kernel-Zuordnern, wie verschlüsselten Geräten vom Typ @code{luks-device-mapping}, wird durch Angabe von @code{\"my-partition\"} ein Gerät @code{\"/dev/mapper/my-partition\"} erzeugt. Bei RAID-Geräten vom Typ @code{raid-device-mapping} muss der Gerätename als voller Pfad wie zum Beispiel @code{\"/dev/md0\"} angegeben werden."
 
 #. type: table
-#: doc/guix.texi:11652
+#: doc/guix.texi:13768
 msgid "This must be a @code{mapped-device-kind} object, which specifies how @var{source} is mapped to @var{target}."
 msgstr "Dies muss ein @code{mapped-device-kind}-Objekt sein, das angibt, wie die Quelle @var{source} dem Ziel @var{target} zugeordnet wird."
 
 #. type: defvr
-#: doc/guix.texi:11655
+#: doc/guix.texi:13771
 #, no-wrap
 msgid "{Scheme Variable} luks-device-mapping"
 msgstr "{Scheme-Variable} luks-device-mapping"
 
 #. type: defvr
-#: doc/guix.texi:11659
+#: doc/guix.texi:13775
 msgid "This defines LUKS block device encryption using the @command{cryptsetup} command from the package with the same name.  It relies on the @code{dm-crypt} Linux kernel module."
 msgstr "Hiermit wird ein blockorientiertes Gerät mit LUKS verschlüsselt, mit Hilfe des Befehls @command{cryptsetup} aus dem gleichnamigen Paket. Dazu wird das Linux-Kernel-Modul @code{dm-crypt} vorausgesetzt."
 
 #. type: defvr
-#: doc/guix.texi:11661
+#: doc/guix.texi:13777
 #, no-wrap
 msgid "{Scheme Variable} raid-device-mapping"
 msgstr "{Scheme-Variable} raid-device-mapping"
 
 #. type: defvr
-#: doc/guix.texi:11666
+#: doc/guix.texi:13782
 msgid "This defines a RAID device, which is assembled using the @code{mdadm} command from the package with the same name.  It requires a Linux kernel module for the appropriate RAID level to be loaded, such as @code{raid456} for RAID-4, RAID-5 or RAID-6, or @code{raid10} for RAID-10."
 msgstr "Dies definiert ein RAID-Gerät, das mit dem Befehl @code{mdadm} aus dem gleichnamigen Paket als Verbund zusammengestellt wird. Es setzt voraus, dass das Linux-Kernel-Modul für das entsprechende RAID-Level geladen ist, z.B.@: @code{raid456} für RAID-4, RAID-5 oder RAID-6, oder @code{raid10} für RAID-10."
 
 #. type: cindex
-#: doc/guix.texi:11668
+#: doc/guix.texi:13784
 #, no-wrap
 msgid "disk encryption"
 msgstr "Laufwerksverschlüsselung"
 
 #. type: cindex
-#: doc/guix.texi:11669
+#: doc/guix.texi:13785
 #, no-wrap
 msgid "LUKS"
 msgstr "LUKS"
 
 #. type: Plain text
-#: doc/guix.texi:11677
+#: doc/guix.texi:13793
 msgid "The following example specifies a mapping from @file{/dev/sda3} to @file{/dev/mapper/home} using LUKS---the @url{https://gitlab.com/cryptsetup/cryptsetup,Linux Unified Key Setup}, a standard mechanism for disk encryption.  The @file{/dev/mapper/home} device can then be used as the @code{device} of a @code{file-system} declaration (@pxref{File Systems})."
 msgstr "Das folgende Beispiel gibt eine Zuordnung von @file{/dev/sda3} auf @file{/dev/mapper/home} mit LUKS an — dem @url{https://gitlab.com/cryptsetup/cryptsetup,Linux Unified Key Setup}, einem Standardmechanismus zur Plattenverschlüsselung. Das Gerät @file{/dev/mapper/home} kann dann als @code{device} einer @code{file-system}-Deklaration benutzt werden (siehe @ref{File Systems})."
 
 #. type: lisp
-#: doc/guix.texi:11683
+#: doc/guix.texi:13799
 #, no-wrap
 msgid ""
 "(mapped-device\n"
@@ -21209,23 +24755,23 @@ msgstr ""
 "  (type luks-device-mapping))\n"
 
 #. type: Plain text
-#: doc/guix.texi:11688
+#: doc/guix.texi:13804
 msgid "Alternatively, to become independent of device numbering, one may obtain the LUKS UUID (@dfn{unique identifier}) of the source device by a command like:"
 msgstr "Um nicht davon abhängig zu sein, wie Ihre Geräte nummeriert werden, können Sie auch die LUKS-UUID (@dfn{unique identifier}, d.h.@: den eindeutigen Bezeichner) des Quellgeräts auf der Befehlszeile ermitteln:"
 
 #. type: example
-#: doc/guix.texi:11691
+#: doc/guix.texi:13807
 #, no-wrap
 msgid "cryptsetup luksUUID /dev/sda3\n"
 msgstr "cryptsetup luksUUID /dev/sda3\n"
 
 #. type: Plain text
-#: doc/guix.texi:11694
+#: doc/guix.texi:13810
 msgid "and use it as follows:"
 msgstr "und wie folgt benutzen:"
 
 #. type: lisp
-#: doc/guix.texi:11700
+#: doc/guix.texi:13816
 #, no-wrap
 msgid ""
 "(mapped-device\n"
@@ -21239,23 +24785,23 @@ msgstr ""
 "  (type luks-device-mapping))\n"
 
 #. type: cindex
-#: doc/guix.texi:11702
+#: doc/guix.texi:13818
 #, no-wrap
 msgid "swap encryption"
 msgstr "Swap-Verschlüsselung"
 
 #. type: Plain text
-#: doc/guix.texi:11708
+#: doc/guix.texi:13824
 msgid "It is also desirable to encrypt swap space, since swap space may contain sensitive data.  One way to accomplish that is to use a swap file in a file system on a device mapped via LUKS encryption.  In this way, the swap file is encrypted because the entire device is encrypted.  @xref{Preparing for Installation,,Disk Partitioning}, for an example."
 msgstr "Es ist auch wünschenswert, Swap-Speicher zu verschlüsseln, da in den Swap-Speicher sensible Daten ausgelagert werden können. Eine Möglichkeit ist, eine Swap-Datei auf einem mit LUKS-Verschlüsselung zugeordneten Dateisystem zu verwenden. Dann wird die Swap-Datei verschlüsselt, weil das ganze Gerät verschlüsselt wird. Ein Beispiel finden Sie im Abschnitt @ref{Preparing for Installation,,Disk Partitioning}."
 
 #. type: Plain text
-#: doc/guix.texi:11711
+#: doc/guix.texi:13827
 msgid "A RAID device formed of the partitions @file{/dev/sda1} and @file{/dev/sdb1} may be declared as follows:"
 msgstr "Ein RAID-Gerät als Verbund der Partitionen @file{/dev/sda1} und @file{/dev/sdb1} kann wie folgt deklariert werden:"
 
 #. type: lisp
-#: doc/guix.texi:11717
+#: doc/guix.texi:13833
 #, no-wrap
 msgid ""
 "(mapped-device\n"
@@ -21269,35 +24815,35 @@ msgstr ""
 "  (type raid-device-mapping))\n"
 
 #. type: Plain text
-#: doc/guix.texi:11724
+#: doc/guix.texi:13840
 msgid "The @file{/dev/md0} device can then be used as the @code{device} of a @code{file-system} declaration (@pxref{File Systems}).  Note that the RAID level need not be given; it is chosen during the initial creation and formatting of the RAID device and is determined automatically later."
 msgstr "Das Gerät @file{/dev/md0} kann als @code{device} in einer @code{file-system}-Deklaration dienen (siehe @ref{File Systems}). Beachten Sie, dass das RAID-Level dabei nicht angegeben werden muss; es wird während der initialen Erstellung und Formatierung des RAID-Geräts festgelegt und später automatisch bestimmt."
 
 #. type: cindex
-#: doc/guix.texi:11729
+#: doc/guix.texi:13845
 #, no-wrap
 msgid "users"
 msgstr "Benutzer"
 
 #. type: cindex
-#: doc/guix.texi:11730
+#: doc/guix.texi:13846
 #, no-wrap
 msgid "accounts"
 msgstr "Konten"
 
 #. type: cindex
-#: doc/guix.texi:11731
+#: doc/guix.texi:13847
 #, no-wrap
 msgid "user accounts"
 msgstr "Benutzerkonten"
 
 #. type: Plain text
-#: doc/guix.texi:11735
+#: doc/guix.texi:13851
 msgid "User accounts and groups are entirely managed through the @code{operating-system} declaration.  They are specified with the @code{user-account} and @code{user-group} forms:"
 msgstr "Benutzerkonten und Gruppen werden allein durch die @code{operating-system}-Deklaration des Betriebssystems verwaltet. Sie werden mit den @code{user-account}- und @code{user-group}-Formen angegeben:"
 
 #. type: lisp
-#: doc/guix.texi:11746
+#: doc/guix.texi:13861
 #, no-wrap
 msgid ""
 "(user-account\n"
@@ -21307,8 +24853,7 @@ msgid ""
 "                          \"audio\"   ;sound card\n"
 "                          \"video\"   ;video devices such as webcams\n"
 "                          \"cdrom\")) ;the good ol' CD-ROM\n"
-"  (comment \"Bob's sister\")\n"
-"  (home-directory \"/home/alice\"))\n"
+"  (comment \"Bob's sister\"))\n"
 msgstr ""
 "(user-account\n"
 "  (name \"alice\")\n"
@@ -21317,153 +24862,192 @@ msgstr ""
 "                          \"audio\"   ;Soundkarte\n"
 "                          \"video\"   ;Videogeräte wie Webcams\n"
 "                          \"cdrom\")) ;die gute alte CD-ROM\n"
-"  (comment \"Bobs Schwester\")\n"
-"  (home-directory \"/home/alice\"))\n"
+"  (comment \"Bobs Schwester\"))\n"
 
 #. type: Plain text
-#: doc/guix.texi:11755
+#: doc/guix.texi:13865
+msgid "Here's a user account that uses a different shell and a custom home directory (the default would be @file{\"/home/bob\"}):"
+msgstr "Hier sehen Sie ein Benutzerkonto, das eine andere Shell und ein geändertes Persönliches Verzeichnis benutzt (die Vorgabe wäre @file{\"/home/bob\"}):"
+
+#. type: lisp
+#: doc/guix.texi:13873
+#, no-wrap
+msgid ""
+"(user-account\n"
+"  (name \"bob\")\n"
+"  (group \"users\")\n"
+"  (comment \"Alice's bro\")\n"
+"  (shell (file-append zsh \"/bin/zsh\"))\n"
+"  (home-directory \"/home/robert\"))\n"
+msgstr ""
+"(user-account\n"
+"  (name \"bob\")\n"
+"  (group \"users\")\n"
+"  (comment \"Alices Bruder\")\n"
+"  (shell (file-append zsh \"/bin/zsh\"))\n"
+"  (home-directory \"/home/robert\"))\n"
+
+#. type: Plain text
+#: doc/guix.texi:13882
 msgid "When booting or upon completion of @command{guix system reconfigure}, the system ensures that only the user accounts and groups specified in the @code{operating-system} declaration exist, and with the specified properties.  Thus, account or group creations or modifications made by directly invoking commands such as @command{useradd} are lost upon reconfiguration or reboot.  This ensures that the system remains exactly as declared."
 msgstr "Beim Hochfahren oder nach Abschluss von @command{guix system reconfigure} stellt das System sicher, dass nur die in der @code{operating-system}-Deklaration angegebenen Benutzerkonten und Gruppen existieren, mit genau den angegebenen Eigenschaften. Daher gehen durch direkten Aufruf von Befehlen wie @command{useradd} erwirkte Erstellungen oder Modifikationen von Konten oder Gruppen verloren, sobald rekonfiguriert oder neugestartet wird. So wird sichergestellt, dass das System genau so funktioniert, wie es deklariert wurde."
 
 #. type: deftp
-#: doc/guix.texi:11756
+#: doc/guix.texi:13883
 #, no-wrap
 msgid "{Data Type} user-account"
 msgstr "{Datentyp} user-account"
 
 #. type: deftp
-#: doc/guix.texi:11759
+#: doc/guix.texi:13886
 msgid "Objects of this type represent user accounts.  The following members may be specified:"
 msgstr "Objekte dieses Typs repräsentieren Benutzerkonten. Darin können folgende Komponenten aufgeführt werden:"
 
 #. type: table
-#: doc/guix.texi:11763
+#: doc/guix.texi:13890
 msgid "The name of the user account."
 msgstr "Der Name des Benutzerkontos."
 
 #. type: itemx
-#: doc/guix.texi:11764 doc/guix.texi:26063
+#: doc/guix.texi:13891 doc/guix.texi:30105
 #, no-wrap
 msgid "group"
 msgstr "group"
 
 #. type: cindex
-#: doc/guix.texi:11765 doc/guix.texi:11832
+#: doc/guix.texi:13892 doc/guix.texi:13971
 #, no-wrap
 msgid "groups"
 msgstr "Gruppen"
 
 #. type: table
-#: doc/guix.texi:11768
+#: doc/guix.texi:13895
 msgid "This is the name (a string) or identifier (a number) of the user group this account belongs to."
 msgstr "Dies ist der Name (als Zeichenkette) oder die Bezeichnung (als Zahl) der Benutzergruppe, zu der dieses Konto gehört."
 
 #. type: item
-#: doc/guix.texi:11769
+#: doc/guix.texi:13896
 #, no-wrap
 msgid "@code{supplementary-groups} (default: @code{'()})"
 msgstr "@code{supplementary-groups} (Vorgabe: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:11772
+#: doc/guix.texi:13899
 msgid "Optionally, this can be defined as a list of group names that this account belongs to."
 msgstr "Dies kann optional als Liste von Gruppennamen angegeben werden, zu denen dieses Konto auch gehört."
 
 #. type: item
-#: doc/guix.texi:11773
+#: doc/guix.texi:13900
 #, no-wrap
 msgid "@code{uid} (default: @code{#f})"
 msgstr "@code{uid} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:11777
+#: doc/guix.texi:13904
 msgid "This is the user ID for this account (a number), or @code{#f}.  In the latter case, a number is automatically chosen by the system when the account is created."
 msgstr "Dies ist entweder der Benutzeridentifikator dieses Kontos (seine „User ID“) als Zahl oder @code{#f}. Bei Letzterem wird vom System automatisch eine Zahl gewählt, wenn das Benutzerkonto erstellt wird."
 
 #. type: item
-#: doc/guix.texi:11778
+#: doc/guix.texi:13905
 #, no-wrap
 msgid "@code{comment} (default: @code{\"\"})"
 msgstr "@code{comment} (Vorgabe: @code{\"\"})"
 
 #. type: table
-#: doc/guix.texi:11780
+#: doc/guix.texi:13907
 msgid "A comment about the account, such as the account owner's full name."
 msgstr "Ein Kommentar zu dem Konto, wie etwa der vollständige Name des Kontoinhabers."
 
 #. type: code{#1}
-#: doc/guix.texi:11781
+#: doc/guix.texi:13908
 #, no-wrap
 msgid "home-directory"
 msgstr "home-directory"
 
 #. type: table
-#: doc/guix.texi:11783
+#: doc/guix.texi:13910
 msgid "This is the name of the home directory for the account."
 msgstr "Der Name des Persönlichen Verzeichnisses („Home“-Verzeichnis) für dieses Konto."
 
 #. type: item
-#: doc/guix.texi:11784
+#: doc/guix.texi:13911
 #, no-wrap
 msgid "@code{create-home-directory?} (default: @code{#t})"
 msgstr "@code{create-home-directory?} (Vorgabe: @code{#t})"
 
 #. type: table
-#: doc/guix.texi:11787
+#: doc/guix.texi:13914
 msgid "Indicates whether the home directory of this account should be created if it does not exist yet."
 msgstr "Zeigt an, ob das Persönliche Verzeichnis für das Konto automatisch erstellt werden soll, falls es noch nicht existiert."
 
 #. type: item
-#: doc/guix.texi:11788
+#: doc/guix.texi:13915
 #, no-wrap
 msgid "@code{shell} (default: Bash)"
 msgstr "@code{shell} (Vorgabe: Bash)"
 
 #. type: table
-#: doc/guix.texi:11791
-msgid "This is a G-expression denoting the file name of a program to be used as the shell (@pxref{G-Expressions})."
-msgstr "Ein G-Ausdruck, der den Dateinamen des Programms angibt, das dem Benutzer als Shell dienen soll (siehe @ref{G-Expressions})."
+#: doc/guix.texi:13919
+msgid "This is a G-expression denoting the file name of a program to be used as the shell (@pxref{G-Expressions}).  For example, you would refer to the Bash executable like this:"
+msgstr "Ein G-Ausdruck, der den Dateinamen des Programms angibt, das dem Benutzer als Shell dienen soll (siehe @ref{G-Expressions}). Auf die Programmdatei der Bash-Shell würden Sie zum Beispiel so verweisen:"
+
+#. type: lisp
+#: doc/guix.texi:13922
+#, no-wrap
+msgid "(file-append bash \"/bin/bash\")\n"
+msgstr "(file-append bash \"/bin/bash\")\n"
+
+#. type: table
+#: doc/guix.texi:13926
+msgid "... and to the Zsh executable like that:"
+msgstr "…@: und so auf die Programmdatei von Zsh:"
+
+#. type: lisp
+#: doc/guix.texi:13929
+#, no-wrap
+msgid "(file-append zsh \"/bin/zsh\")\n"
+msgstr "(file-append zsh \"/bin/zsh\")\n"
 
 #. type: item
-#: doc/guix.texi:11792 doc/guix.texi:11850
+#: doc/guix.texi:13931 doc/guix.texi:13989
 #, no-wrap
 msgid "@code{system?} (default: @code{#f})"
 msgstr "@code{system?} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:11796
+#: doc/guix.texi:13935
 msgid "This Boolean value indicates whether the account is a ``system'' account.  System accounts are sometimes treated specially; for instance, graphical login managers do not list them."
 msgstr "Dieser boolesche Wert zeigt an, ob das Konto ein „System“-Benutzerkonto ist. Systemkonten werden manchmal anders behandelt, zum Beispiel werden sie auf grafischen Anmeldebildschirmen nicht aufgeführt."
 
 #. type: anchor{#1}
-#: doc/guix.texi:11798
+#: doc/guix.texi:13937
 msgid "user-account-password"
 msgstr "user-account-password"
 
 #. type: cindex
-#: doc/guix.texi:11798
+#: doc/guix.texi:13937
 #, no-wrap
 msgid "password, for user accounts"
 msgstr "Passwort, für Benutzerkonten"
 
 #. type: item
-#: doc/guix.texi:11799 doc/guix.texi:11854
+#: doc/guix.texi:13938 doc/guix.texi:13993 doc/guix.texi:29121
 #, no-wrap
 msgid "@code{password} (default: @code{#f})"
 msgstr "@code{password} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:11805
+#: doc/guix.texi:13944
 msgid "You would normally leave this field to @code{#f}, initialize user passwords as @code{root} with the @command{passwd} command, and then let users change it with @command{passwd}.  Passwords set with @command{passwd} are of course preserved across reboot and reconfiguration."
 msgstr "Normalerweise lassen Sie dieses Feld auf @code{#f} und initialisieren Benutzerpasswörter als @code{root} mit dem @command{passwd}-Befehl. Die Benutzer lässt man ihr eigenes Passwort dann mit @command{passwd} ändern. Mit @command{passwd} festgelegte Passwörter bleiben natürlich beim Neustarten und beim Rekonfigurieren erhalten."
 
 #. type: table
-#: doc/guix.texi:11809
+#: doc/guix.texi:13948
 msgid "If you @emph{do} want to set an initial password for an account, then this field must contain the encrypted password, as a string.  You can use the @code{crypt} procedure for this purpose:"
 msgstr "Wenn Sie aber @emph{doch} ein anfängliches Passwort für ein Konto voreinstellen möchten, muss dieses Feld hier das verschlüsselte Passwort als Zeichenkette enthalten. Sie können dazu die Prozedur @code{crypt} benutzen."
 
 #. type: lisp
-#: doc/guix.texi:11814
+#: doc/guix.texi:13953
 #, no-wrap
 msgid ""
 "(user-account\n"
@@ -21477,7 +25061,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:11817
+#: doc/guix.texi:13956
 #, no-wrap
 msgid ""
 "  ;; Specify a SHA-512-hashed initial password.\n"
@@ -21487,150 +25071,171 @@ msgstr ""
 "  (password (crypt \"InitialPassword!\" \"$6$abc\")))\n"
 
 #. type: quotation
-#: doc/guix.texi:11823
+#: doc/guix.texi:13962
 msgid "The hash of this initial password will be available in a file in @file{/gnu/store}, readable by all the users, so this method must be used with care."
 msgstr "Der Hash dieses initialen Passworts wird in einer Datei im @file{/gnu/store} abgelegt, auf die alle Benutzer Lesezugriff haben, daher ist Vorsicht geboten, wenn Sie diese Methode verwenden."
 
 #. type: table
-#: doc/guix.texi:11828
+#: doc/guix.texi:13967
 msgid "@xref{Passphrase Storage,,, libc, The GNU C Library Reference Manual}, for more information on password encryption, and @ref{Encryption,,, guile, GNU Guile Reference Manual}, for information on Guile's @code{crypt} procedure."
-msgstr "Siehe @ref{Passphrase Storage,,, libc, The GNU C Library Reference Manual} für weitere Informationen über Passwortverschlüsselung und @ref{Encryption,,, guile, GNU Guile Reference Manual} für Informationen über die Prozedur @code{crypt} in Guile."
+msgstr "Siehe @ref{Passphrase Storage,,, libc, Referenzhandbuch der GNU-C-Bibliothek} für weitere Informationen über Passwortverschlüsselung und @ref{Encryption,,, guile, Referenzhandbuch zu GNU Guile} für Informationen über die Prozedur @code{crypt} in Guile."
 
 #. type: Plain text
-#: doc/guix.texi:11834
+#: doc/guix.texi:13973
 msgid "User group declarations are even simpler:"
 msgstr "Benutzergruppen-Deklarationen sind noch einfacher aufgebaut:"
 
 #. type: lisp
-#: doc/guix.texi:11837
+#: doc/guix.texi:13976
 #, no-wrap
 msgid "(user-group (name \"students\"))\n"
 msgstr "(user-group (name \"students\"))\n"
 
 #. type: deftp
-#: doc/guix.texi:11839
+#: doc/guix.texi:13978
 #, no-wrap
 msgid "{Data Type} user-group"
 msgstr "{Datentyp} user-group"
 
 #. type: deftp
-#: doc/guix.texi:11841
+#: doc/guix.texi:13980
 msgid "This type is for, well, user groups.  There are just a few fields:"
 msgstr "Dieser Typ gibt, nun ja, eine Benutzergruppe an. Es gibt darin nur ein paar Felder:"
 
 #. type: table
-#: doc/guix.texi:11845
+#: doc/guix.texi:13984
 msgid "The name of the group."
 msgstr "Der Name der Gruppe."
 
 #. type: item
-#: doc/guix.texi:11846
+#: doc/guix.texi:13985 doc/guix.texi:26987
 #, no-wrap
 msgid "@code{id} (default: @code{#f})"
 msgstr "@code{id} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:11849
+#: doc/guix.texi:13988
 msgid "The group identifier (a number).  If @code{#f}, a new number is automatically allocated when the group is created."
 msgstr "Der Gruppenbezeichner (eine Zahl). Wird er als @code{#f} angegeben, wird automatisch eine neue Zahl reserviert, wenn die Gruppe erstellt wird."
 
 #. type: table
-#: doc/guix.texi:11853
+#: doc/guix.texi:13992
 msgid "This Boolean value indicates whether the group is a ``system'' group.  System groups have low numerical IDs."
 msgstr "Dieser boolesche Wert gibt an, ob es sich um eine „System“-Gruppe handelt. Systemgruppen sind solche mit einer kleinen Zahl als Bezeichner."
 
 #. type: table
-#: doc/guix.texi:11857
+#: doc/guix.texi:13996
 msgid "What, user groups can have a password? Well, apparently yes.  Unless @code{#f}, this field specifies the password of the group."
 msgstr "Wie, Benutzergruppen können ein Passwort haben? Nun ja, anscheinend schon. Wenn es nicht auf @code{#f} steht, gibt dieses Feld das Passwort der Gruppe an."
 
 #. type: Plain text
-#: doc/guix.texi:11863
+#: doc/guix.texi:14002
 msgid "For convenience, a variable lists all the basic user groups one may expect:"
 msgstr "Um Ihnen das Leben zu erleichtern, gibt es eine Variable, worin alle grundlegenden Benutzergruppen aufgeführt sind, die man erwarten könnte:"
 
 #. type: defvr
-#: doc/guix.texi:11864
+#: doc/guix.texi:14003
 #, no-wrap
 msgid "{Scheme Variable} %base-groups"
 msgstr "{Scheme-Variable} %base-groups"
 
 #. type: defvr
-#: doc/guix.texi:11869
+#: doc/guix.texi:14008
 msgid "This is the list of basic user groups that users and/or packages expect to be present on the system.  This includes groups such as ``root'', ``wheel'', and ``users'', as well as groups used to control access to specific devices such as ``audio'', ``disk'', and ``cdrom''."
 msgstr "Die Liste von Basis-Benutzergruppen, von denen Benutzer und/oder Pakete erwarten könnten, dass sie auf dem System existieren. Dazu gehören Gruppen wie „root“, „wheel“ und „users“, sowie Gruppen, um den Zugriff auf bestimmte Geräte einzuschränken, wie „audio“, „disk“ und „cdrom“."
 
 #. type: defvr
-#: doc/guix.texi:11871
+#: doc/guix.texi:14010
 #, no-wrap
 msgid "{Scheme Variable} %base-user-accounts"
 msgstr "{Scheme-Variable} %base-user-accounts"
 
 #. type: defvr
-#: doc/guix.texi:11874
+#: doc/guix.texi:14013
 msgid "This is the list of basic system accounts that programs may expect to find on a GNU/Linux system, such as the ``nobody'' account."
 msgstr "Diese Liste enthält Basis-Systembenutzerkonten, von denen Programme erwarten können, dass sie auf einem GNU/Linux-System existieren, wie das Konto „nobody“."
 
 #. type: defvr
-#: doc/guix.texi:11877
+#: doc/guix.texi:14016
 msgid "Note that the ``root'' account is not included here.  It is a special-case and is automatically added whether or not it is specified."
 msgstr "Beachten Sie, dass das Konto „root“ für den Administratornutzer nicht dazugehört. Es ist ein Sonderfall und wird automatisch erzeugt, egal ob es spezifiziert wurde oder nicht."
 
 #. type: cindex
-#: doc/guix.texi:11883
+#: doc/guix.texi:14022
 #, no-wrap
 msgid "keymap"
 msgstr "Keymap"
 
 #. type: Plain text
-#: doc/guix.texi:11891
+#: doc/guix.texi:14030
 msgid "To specify what each key of your keyboard does, you need to tell the operating system what @dfn{keyboard layout} you want to use.  The default, when nothing is specified, is the US English QWERTY layout for 105-key PC keyboards.  However, German speakers will usually prefer the German QWERTZ layout, French speakers will want the AZERTY layout, and so on; hackers might prefer Dvorak or bépo, and they might even want to further customize the effect of some of the keys.  This section explains how to get that done."
 msgstr "Um anzugeben, was jede Taste auf Ihrer Tastatur tut, müssen Sie angeben, welche @dfn{Tastaturbelegung} das Betriebssystem benutzen soll. Wenn nichts angegeben wird, ist die „US English“-QWERTY-Tastaturbelegung für PC-Tastaturen mit 105 Tasten voreingestellt. Allerdings bevorzugen Deutsch sprechende Nutzer meistens die deutsche QWERTZ-Tastaturbelegung, Französisch sprechende haben lieber die AZERTY-Belegung und so weiter; Hacker wollen vielleicht Dvorak oder Bépo als Tastaturbelegung benutzen oder sogar eigene Anpassungen bei manchen Tasten vornehmen. Dieser Abschnitt erklärt, wie das geht."
 
 #. type: cindex
-#: doc/guix.texi:11892
+#: doc/guix.texi:14031
 #, no-wrap
 msgid "keyboard layout, definition"
 msgstr "Tastaturbelegung, Definition"
 
 #. type: Plain text
-#: doc/guix.texi:11894
+#: doc/guix.texi:14033
 msgid "There are three components that will want to know about your keyboard layout:"
 msgstr "Die Informationen über Ihre Tastaturbelegung werden an drei Stellen gebraucht:"
 
 #. type: itemize
-#: doc/guix.texi:11901
+#: doc/guix.texi:14040
 msgid "The @emph{bootloader} may want to know what keyboard layout you want to use (@pxref{Bootloader Configuration, @code{keyboard-layout}}).  This is useful if you want, for instance, to make sure that you can type the passphrase of your encrypted root partition using the right layout."
 msgstr "Der @emph{Bootloader} muss auslesen können, welche Tastaturbelegung Sie benutzen möchten (siehe @ref{Bootloader Configuration, @code{keyboard-layout}}). Das ist praktisch, wenn Sie zum Beispiel die Passphrase Ihrer verschlüsselten Wurzelpartition mit der richtigen Tastaturbelegung eintippen wollen."
 
 #. type: itemize
-#: doc/guix.texi:11906
+#: doc/guix.texi:14045
 msgid "The @emph{operating system kernel}, Linux, will need that so that the console is properly configured (@pxref{operating-system Reference, @code{keyboard-layout}})."
 msgstr "Der @emph{Kernel des Betriebssystems}, Linux, braucht die Information, damit die Konsole richtig eingestellt ist (siehe @ref{operating-system Reference, @code{keyboard-layout}})."
 
 #. type: itemize
-#: doc/guix.texi:11910
+#: doc/guix.texi:14049
 msgid "The @emph{graphical display server}, usually Xorg, also has its own idea of the keyboard layout (@pxref{X Window, @code{keyboard-layout}})."
 msgstr "Der @emph{grafische Anzeigeserver}, meistens ist das Xorg, hat auch seine eigene Konfiguration der Tastaturbelegung (siehe @ref{X Window, @code{keyboard-layout}})."
 
 #. type: Plain text
-#: doc/guix.texi:11914
+#: doc/guix.texi:14053
 msgid "Guix allows you to configure all three separately but, fortunately, it allows you to share the same keyboard layout for all three components."
 msgstr "Mit Guix können Sie alle drei Komponenten separat konfigurieren, aber zum Glück können Sie damit auch dieselbe Konfiguration der Tastaturbelegung für alle drei benutzen."
 
 #. type: cindex
-#: doc/guix.texi:11915
+#: doc/guix.texi:14054
 #, no-wrap
 msgid "XKB, keyboard layouts"
 msgstr "XKB, Tastaturbelegungen"
 
 #. type: Plain text
-#: doc/guix.texi:11923
-msgid "Keyboard layouts are represented by records created by the @code{keyboard-layout} procedure of @code{(gnu system keyboard)}.  Following the X Keyboard extension (XKB), each layout has four attributes: a name (often a language code such as ``fi'' for Finnish or ``jp'' for Japanese), an optional variant name, an optional keyboard model name, and a possibly empty list of additional options.  In most cases the layout name is all you care about.  Here are a few example:"
-msgstr "Tastaturbelegungen werden durch Verbundsobjekte repräsentiert, die mit der Prozedur @code{keyboard-layout} aus dem Modul @code{(gnu system keyboard)} angelegt werden. Entsprechend der „X-Keyboard“-Erweiterung (XKB) verfügt jede Tastaturbelegung über vier Attribute: einen Namen (oft ist das ein Sprachkürzel wie „fi“ für Finnisch oder „jp“ für Japanisch), ein optionaler Variantenname, ein optionaler Tastaturmodellname und eine möglicherweise leere Liste zusätzlicher Optionen. In den meisten Fällen interessiert Sie nur der Name der Tastaturbelegung. Hier sind ein paar Beispiele:"
+#: doc/guix.texi:14062
+msgid "Keyboard layouts are represented by records created by the @code{keyboard-layout} procedure of @code{(gnu system keyboard)}.  Following the X Keyboard extension (XKB), each layout has four attributes: a name (often a language code such as ``fi'' for Finnish or ``jp'' for Japanese), an optional variant name, an optional keyboard model name, and a possibly empty list of additional options.  In most cases the layout name is all you care about."
+msgstr "Tastaturbelegungen werden durch Verbundsobjekte repräsentiert, die mit der Prozedur @code{keyboard-layout} aus dem Modul @code{(gnu system keyboard)} angelegt werden. Entsprechend der „X-Keyboard“-Erweiterung (XKB) verfügt jede Tastaturbelegung über vier Attribute: einen Namen (oft ist das ein Sprachkürzel wie „fi“ für Finnisch oder „jp“ für Japanisch), ein optionaler Variantenname, ein optionaler Tastaturmodellname und eine möglicherweise leere Liste zusätzlicher Optionen. In den meisten Fällen interessiert Sie nur der Name der Tastaturbelegung."
+
+#. type: deffn
+#: doc/guix.texi:14063
+#, no-wrap
+msgid "{Scheme Procedure} keyboard-layout @var{name} [@var{variant}] @"
+msgstr "{Scheme-Prozedur} keyboard-layout @var{Name} [@var{Variante}] @"
+
+#. type: deffn
+#: doc/guix.texi:14066
+msgid "[#:model] [#:options '()] Return a new keyboard layout with the given @var{name} and @var{variant}."
+msgstr "[#:model] [#:options '()] Liefert eine neue Tastaturbelegung mit dem angegebenen @var{Name}n in der @var{Variante}."
+
+#. type: deffn
+#: doc/guix.texi:14070
+msgid "@var{name} must be a string such as @code{\"fr\"}; @var{variant} must be a string such as @code{\"bepo\"} or @code{\"nodeadkeys\"}.  See the @code{xkeyboard-config} package for valid options."
+msgstr "Der @var{Name} muss eine Zeichenkette wie @code{\"fr\"} sein und die @var{Variante} eine Zeichenkette wie @code{\"bepo\"} oder @code{\"nodeadkeys\"}. Siehe das Paket @code{xkeyboard-config} für Informationen, welche Optionen gültig sind."
+
+#. type: Plain text
+#: doc/guix.texi:14073
+msgid "Here are a few examples:"
+msgstr "Hier sind ein paar Beispiele:"
 
 #. type: lisp
-#: doc/guix.texi:11928
+#: doc/guix.texi:14078
 #, no-wrap
 msgid ""
 ";; The German QWERTZ layout.  Here we assume a standard\n"
@@ -21644,7 +25249,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:11931
+#: doc/guix.texi:14081
 #, no-wrap
 msgid ""
 ";; The bépo variant of the French layout.\n"
@@ -21656,7 +25261,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:11934
+#: doc/guix.texi:14084
 #, no-wrap
 msgid ""
 ";; The Catalan layout.\n"
@@ -21668,7 +25273,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:11937
+#: doc/guix.texi:14087
 #, no-wrap
 msgid ""
 ";; Arabic layout with \"Alt-Shift\" to switch to US layout.\n"
@@ -21680,7 +25285,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:11944
+#: doc/guix.texi:14094
 #, no-wrap
 msgid ""
 ";; The Latin American Spanish layout.  In addition, the\n"
@@ -21701,7 +25306,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:11947
+#: doc/guix.texi:14097
 #, no-wrap
 msgid ""
 ";; The Russian layout for a ThinkPad keyboard.\n"
@@ -21713,7 +25318,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:11952
+#: doc/guix.texi:14102
 #, no-wrap
 msgid ""
 ";; The \"US international\" layout, which is the US layout plus\n"
@@ -21727,29 +25332,29 @@ msgstr ""
 "(keyboard-layout \"us\" \"intl\" #:model \"macbook78\")\n"
 
 #. type: Plain text
-#: doc/guix.texi:11956
+#: doc/guix.texi:14106
 msgid "See the @file{share/X11/xkb} directory of the @code{xkeyboard-config} package for a complete list of supported layouts, variants, and models."
 msgstr "Im Verzeichnis @file{share/X11/xkb} des @code{xkeyboard-config}-Pakets finden Sie eine vollständige Liste der unterstützten Tastaturbelegungen, Varianten und Modelle."
 
 #. type: cindex
-#: doc/guix.texi:11957
+#: doc/guix.texi:14107
 #, no-wrap
 msgid "keyboard layout, configuration"
 msgstr "Tastaturbelegung, Konfiguration"
 
 #. type: Plain text
-#: doc/guix.texi:11961
+#: doc/guix.texi:14111
 msgid "Let's say you want your system to use the Turkish keyboard layout throughout your system---bootloader, console, and Xorg.  Here's what your system configuration would look like:"
 msgstr "Sagen wir, Sie würden gerne die türkische Tastaturbelegung für Ihr gesamtes System — Bootloader, Konsole und Xorg — verwenden. Dann würde Ihre Systemkonfiguration so aussehen:"
 
 #. type: findex
-#: doc/guix.texi:11962
+#: doc/guix.texi:14112
 #, no-wrap
 msgid "set-xorg-configuration"
 msgstr "set-xorg-configuration"
 
 #. type: lisp
-#: doc/guix.texi:11966
+#: doc/guix.texi:14116
 #, no-wrap
 msgid ""
 ";; Using the Turkish layout for the bootloader, the console,\n"
@@ -21761,7 +25366,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:11978
+#: doc/guix.texi:14128
 #, no-wrap
 msgid ""
 "(operating-system\n"
@@ -21789,76 +25394,76 @@ msgstr ""
 "                  %desktop-services)))\n"
 
 #. type: Plain text
-#: doc/guix.texi:11985
+#: doc/guix.texi:14135
 msgid "In the example above, for GRUB and for Xorg, we just refer to the @code{keyboard-layout} field defined above, but we could just as well refer to a different layout.  The @code{set-xorg-configuration} procedure communicates the desired Xorg configuration to the graphical log-in manager, by default GDM."
 msgstr "Im obigen Beispiel beziehen wir uns für GRUB und Xorg einfach auf das @code{keyboard-layout}-Feld, was wir darüber definiert haben, wir könnten aber auch eine andere Tastaturbelegung angeben. Die Prozedur @code{set-xorg-configuration} kommuniziert an die grafische Anmeldeverwaltung (d.h.@: nach Vorgabe an GDM), welche Xorg-Konfiguration verwendet werden soll."
 
 #. type: Plain text
-#: doc/guix.texi:11988
+#: doc/guix.texi:14138
 msgid "We've discussed how to specify the @emph{default} keyboard layout of your system when it starts, but you can also adjust it at run time:"
 msgstr "Wir haben uns bisher damit auseinandergesetzt, wie die @emph{Voreinstellung} für die Tastaturbelegung ausgewählt werden kann, die das System annimmt, wenn es startet, aber zur Laufzeit kann sie geändert werden:"
 
 #. type: itemize
-#: doc/guix.texi:11993
+#: doc/guix.texi:14143
 msgid "If you're using GNOME, its settings panel has a ``Region & Language'' entry where you can select one or more keyboard layouts."
 msgstr "Wenn Sie GNOME benutzen, können Sie in den Einstellungen dazu einen Eintrag „Region und Sprache“ finden, in dem Sie eine oder mehrere Tastaturbelegungen auswählen können."
 
 #. type: itemize
-#: doc/guix.texi:11998
+#: doc/guix.texi:14148
 msgid "Under Xorg, the @command{setxkbmap} command (from the same-named package)  allows you to change the current layout.  For example, this is how you would change the layout to US Dvorak:"
 msgstr "Unter Xorg können Sie den Befehl @command{setxkbmap} (aus dem gleichnamigen Paket) zum Anpassen der momentan aktiven Tastaturbelegung benutzen. Zum Beispiel würden Sie so die Belegung auf US Dvorak wechseln:"
 
 #. type: example
-#: doc/guix.texi:12001
+#: doc/guix.texi:14151
 #, no-wrap
 msgid "setxkbmap us dvorak\n"
 msgstr "setxkbmap us dvorak\n"
 
 #. type: itemize
-#: doc/guix.texi:12008
+#: doc/guix.texi:14158
 msgid "The @code{loadkeys} command changes the keyboard layout in effect in the Linux console.  However, note that @code{loadkeys} does @emph{not} use the XKB keyboard layout categorization described above.  The command below loads the French bépo layout:"
 msgstr "Mit dem Befehl @code{loadkeys} ändern Sie die für die Linux-Konsole geltende Tastaturbelegung. Allerdings ist zu beachten, dass @code{loadkeys} @emph{nicht} die Kategorisierung der Tastaturbelegungen von XKB benutzt. Der Befehl, um die französische Bépo-Belegung zu laden, wäre folgender:"
 
 #. type: example
-#: doc/guix.texi:12011
+#: doc/guix.texi:14161
 #, no-wrap
 msgid "loadkeys fr-bepo\n"
 msgstr "loadkeys fr-bepo\n"
 
 #. type: cindex
-#: doc/guix.texi:12017
+#: doc/guix.texi:14167
 #, no-wrap
 msgid "locale"
 msgstr "Locale"
 
 #. type: Plain text
-#: doc/guix.texi:12024
+#: doc/guix.texi:14174
 msgid "A @dfn{locale} defines cultural conventions for a particular language and region of the world (@pxref{Locales,,, libc, The GNU C Library Reference Manual}).  Each locale has a name that typically has the form @code{@var{language}_@var{territory}.@var{codeset}}---e.g., @code{fr_LU.utf8} designates the locale for the French language, with cultural conventions from Luxembourg, and using the UTF-8 encoding."
-msgstr "Eine @dfn{Locale} legt die kulturellen Konventionen einer bestimmten Sprache und Region auf der Welt fest (siehe @ref{Locales,,, libc, The GNU C Library Reference Manual}). Jede Locale hat einen Namen, der typischerweise von der Form @code{@var{Sprache}_@var{Gebiet}.@var{Kodierung}} — z.B.@: benennt @code{fr_LU.utf8} die Locale für französische Sprache mit den kulturellen Konventionen aus Luxemburg unter Verwendung der UTF-8-Kodierung."
+msgstr "Eine @dfn{Locale} legt die kulturellen Konventionen einer bestimmten Sprache und Region auf der Welt fest (siehe @ref{Locales,,, libc, Referenzhandbuch der GNU-C-Bibliothek}). Jede Locale hat einen Namen, der typischerweise von der Form @code{@var{Sprache}_@var{Gebiet}.@var{Kodierung}} — z.B.@: benennt @code{fr_LU.utf8} die Locale für französische Sprache mit den kulturellen Konventionen aus Luxemburg unter Verwendung der UTF-8-Kodierung."
 
 #. type: cindex
-#: doc/guix.texi:12025
+#: doc/guix.texi:14175
 #, no-wrap
 msgid "locale definition"
 msgstr "Locale-Definition"
 
 #. type: Plain text
-#: doc/guix.texi:12029
+#: doc/guix.texi:14179
 msgid "Usually, you will want to specify the default locale for the machine using the @code{locale} field of the @code{operating-system} declaration (@pxref{operating-system Reference, @code{locale}})."
 msgstr "Normalerweise werden Sie eine standardmäßig zu verwendende Locale für die Maschine vorgeben wollen, indem Sie das @code{locale}-Feld der @code{operating-system}-Deklaration verwenden (siehe @ref{operating-system Reference, @code{locale}})."
 
 #. type: Plain text
-#: doc/guix.texi:12038
+#: doc/guix.texi:14188
 msgid "The selected locale is automatically added to the @dfn{locale definitions} known to the system if needed, with its codeset inferred from its name---e.g., @code{bo_CN.utf8} will be assumed to use the @code{UTF-8} codeset.  Additional locale definitions can be specified in the @code{locale-definitions} slot of @code{operating-system}---this is useful, for instance, if the codeset could not be inferred from the locale name.  The default set of locale definitions includes some widely used locales, but not all the available locales, in order to save space."
 msgstr "Die ausgewählte Locale wird automatisch zu den dem System bekannten @dfn{Locale-Definitionen} hinzugefügt, falls nötig, und ihre Kodierung wird aus dem Namen hergeleitet — z.B.@: wird angenommen, dass @code{bo_CN.utf8} als Kodierung @code{UTF-8} verwendet. Zusätzliche Locale-Definitionen können im Feld @code{locale-definitions} vom @code{operating-system} festgelegt werden — das ist zum Beispiel dann nützlich, wenn die Kodierung nicht aus dem Locale-Namen hergeleitet werden konnte. Die vorgegebene Menge an Locale-Definitionen enthält manche weit verbreiteten Locales, aber um Platz zu sparen, nicht alle verfügbaren Locales."
 
 #. type: Plain text
-#: doc/guix.texi:12041
+#: doc/guix.texi:14191
 msgid "For instance, to add the North Frisian locale for Germany, the value of that field may be:"
 msgstr "Um zum Beispiel die nordfriesische Locale für Deutschland hinzuzufügen, könnte der Wert des Feldes wie folgt aussehen:"
 
 #. type: lisp
-#: doc/guix.texi:12046
+#: doc/guix.texi:14196
 #, no-wrap
 msgid ""
 "(cons (locale-definition\n"
@@ -21870,12 +25475,12 @@ msgstr ""
 "      %default-locale-definitions)\n"
 
 #. type: Plain text
-#: doc/guix.texi:12050
+#: doc/guix.texi:14200
 msgid "Likewise, to save space, one might want @code{locale-definitions} to list only the locales that are actually used, as in:"
 msgstr "Um Platz zu sparen, könnte man auch wollen, dass @code{locale-definitions} nur die tatsächlich benutzen Locales aufführt, wie etwa:"
 
 #. type: lisp
-#: doc/guix.texi:12055
+#: doc/guix.texi:14205
 #, no-wrap
 msgid ""
 "(list (locale-definition\n"
@@ -21887,114 +25492,114 @@ msgstr ""
 "        (charset \"EUC-JP\")))\n"
 
 #. type: Plain text
-#: doc/guix.texi:12064
-msgid "The compiled locale definitions are available at @file{/run/current-system/locale/X.Y}, where @code{X.Y} is the libc version, which is the default location where the GNU@tie{}libc provided by Guix looks for locale data.  This can be overridden using the @code{LOCPATH} environment variable (@pxref{locales-and-locpath, @code{LOCPATH} and locale packages})."
-msgstr "Die kompilierten Locale-Definitionen sind unter @file{/run/current-system/locale/X.Y} verfügbar, wobei @code{X.Y} die Version von libc bezeichnet. Dies entspricht dem Pfad, an dem eine von Guix ausgelieferte GNU@tie{}libc standardmäßig nach Locale-Daten sucht. Er kann überschrieben werden durch die Umgebungsvariable @code{LOCPATH} (siehe @ref{locales-and-locpath, @code{LOCPATH} und Locale-Pakete})."
+#: doc/guix.texi:14214
+msgid "The compiled locale definitions are available at @file{/run/current-system/locale/X.Y}, where @code{X.Y} is the libc version, which is the default location where the GNU@tie{}libc provided by Guix looks for locale data.  This can be overridden using the @env{LOCPATH} environment variable (@pxref{locales-and-locpath, @env{LOCPATH} and locale packages})."
+msgstr "Die kompilierten Locale-Definitionen sind unter @file{/run/current-system/locale/X.Y} verfügbar, wobei @code{X.Y} die Version von libc bezeichnet. Dies entspricht dem Pfad, an dem eine von Guix ausgelieferte GNU@tie{}libc standardmäßig nach Locale-Daten sucht. Er kann überschrieben werden durch die Umgebungsvariable @env{LOCPATH} (siehe @ref{locales-and-locpath, @env{LOCPATH} und Locale-Pakete})."
 
 #. type: Plain text
-#: doc/guix.texi:12067
+#: doc/guix.texi:14217
 msgid "The @code{locale-definition} form is provided by the @code{(gnu system locale)} module.  Details are given below."
 msgstr "Die @code{locale-definition}-Form wird vom Modul @code{(gnu system locale)} zur Verfügung gestellt.  Details folgen unten."
 
 #. type: deftp
-#: doc/guix.texi:12068
+#: doc/guix.texi:14218
 #, no-wrap
 msgid "{Data Type} locale-definition"
 msgstr "{Datentyp} locale-definition"
 
 #. type: deftp
-#: doc/guix.texi:12070
+#: doc/guix.texi:14220
 msgid "This is the data type of a locale definition."
 msgstr "Dies ist der Datentyp einer Locale-Definition."
 
 #. type: table
-#: doc/guix.texi:12076
+#: doc/guix.texi:14226
 msgid "The name of the locale.  @xref{Locale Names,,, libc, The GNU C Library Reference Manual}, for more information on locale names."
-msgstr "Der Name der Locale. Siehe @ref{Locale Names,,, libc, The GNU C Library Reference Manual} für mehr Informationen zu Locale-Namen."
+msgstr "Der Name der Locale. Siehe @ref{Locale Names,,, libc, Referenzhandbuch der GNU-C-Bibliothek} für mehr Informationen zu Locale-Namen."
 
 #. type: table
-#: doc/guix.texi:12080
+#: doc/guix.texi:14230
 msgid "The name of the source for that locale.  This is typically the @code{@var{language}_@var{territory}} part of the locale name."
 msgstr "Der Name der Quelle der Locale. Typischerweise ist das der Teil @code{@var{Sprache}_@var{Gebiet}} des Locale-Namens."
 
 #. type: item
-#: doc/guix.texi:12081
+#: doc/guix.texi:14231
 #, no-wrap
 msgid "@code{charset} (default: @code{\"UTF-8\"})"
 msgstr "@code{charset} (Vorgabe: @code{\"UTF-8\"})"
 
 #. type: table
-#: doc/guix.texi:12085
+#: doc/guix.texi:14235
 msgid "The ``character set'' or ``code set'' for that locale, @uref{https://www.iana.org/assignments/character-sets, as defined by IANA}."
 msgstr "Der „Zeichensatz“ oder das „Code set“, d.h.@: die Kodierung dieser Locale, @uref{https://www.iana.org/assignments/character-sets, wie die IANA sie definiert}."
 
 #. type: defvr
-#: doc/guix.texi:12089
+#: doc/guix.texi:14239
 #, no-wrap
 msgid "{Scheme Variable} %default-locale-definitions"
 msgstr "{Scheme-Variable} %default-locale-definitions"
 
 #. type: defvr
-#: doc/guix.texi:12093
+#: doc/guix.texi:14243
 msgid "A list of commonly used UTF-8 locales, used as the default value of the @code{locale-definitions} field of @code{operating-system} declarations."
 msgstr "Eine Liste häufig benutzter UTF-8-Locales, die als Vorgabewert des @code{locale-definitions}-Feldes in @code{operating-system}-Deklarationen benutzt wird."
 
 #. type: cindex
-#: doc/guix.texi:12094
+#: doc/guix.texi:14244
 #, no-wrap
 msgid "locale name"
 msgstr "Locale-Name"
 
 #. type: cindex
-#: doc/guix.texi:12095
+#: doc/guix.texi:14245
 #, no-wrap
 msgid "normalized codeset in locale names"
 msgstr "Normalisiertes Codeset in Locale-Namen"
 
 #. type: defvr
-#: doc/guix.texi:12101
+#: doc/guix.texi:14251
 msgid "These locale definitions use the @dfn{normalized codeset} for the part that follows the dot in the name (@pxref{Using gettextized software, normalized codeset,, libc, The GNU C Library Reference Manual}).  So for instance it has @code{uk_UA.utf8} but @emph{not}, say, @code{uk_UA.UTF-8}."
-msgstr "Diese Locale-Definitionen benutzen das @dfn{normalisierte Codeset} für den Teil des Namens, der nach dem Punkt steht (siehe @ref{Using gettextized software, normalized codeset,, libc, The GNU C Library Reference Manual}). Zum Beispiel ist @code{uk_UA.utf8} enthalten, dagegen ist etwa @code{uk_UA.UTF-8} darin @emph{nicht} enthalten."
+msgstr "Diese Locale-Definitionen benutzen das @dfn{normalisierte Codeset} für den Teil des Namens, der nach dem Punkt steht (siehe @ref{Using gettextized software, normalisiertes Codeset,, libc, Referenzhandbuch der GNU-C-Bibliothek}). Zum Beispiel ist @code{uk_UA.utf8} enthalten, dagegen ist etwa @code{uk_UA.UTF-8} darin @emph{nicht} enthalten."
 
 #. type: subsection
-#: doc/guix.texi:12103
+#: doc/guix.texi:14253
 #, no-wrap
 msgid "Locale Data Compatibility Considerations"
 msgstr "Kompatibilität der Locale-Daten"
 
 #. type: cindex
-#: doc/guix.texi:12105
+#: doc/guix.texi:14255
 #, no-wrap
 msgid "incompatibility, of locale data"
 msgstr "Inkompatibilität, von Locale-Daten"
 
 #. type: Plain text
-#: doc/guix.texi:12112
+#: doc/guix.texi:14262
 msgid "@code{operating-system} declarations provide a @code{locale-libcs} field to specify the GNU@tie{}libc packages that are used to compile locale declarations (@pxref{operating-system Reference}).  ``Why would I care?'', you may ask.  Well, it turns out that the binary format of locale data is occasionally incompatible from one libc version to another."
 msgstr "@code{operating-system}-Deklarationen verfügen über ein @code{locale-libcs}-Feld, um die GNU@tie{}libc-Pakete anzugeben, die zum Kompilieren von Locale-Deklarationen verwendet werden sollen (siehe @ref{operating-system Reference}). „Was interessiert mich das?“, könnten Sie fragen. Naja, leider ist das binäre Format der Locale-Daten von einer libc-Version auf die nächste manchmal nicht miteinander kompatibel."
 
 #. type: Plain text
-#: doc/guix.texi:12124
-msgid "For instance, a program linked against libc version 2.21 is unable to read locale data produced with libc 2.22; worse, that program @emph{aborts} instead of simply ignoring the incompatible locale data@footnote{Versions 2.23 and later of GNU@tie{}libc will simply skip the incompatible locale data, which is already an improvement.}.  Similarly, a program linked against libc 2.22 can read most, but not all, of the locale data from libc 2.21 (specifically, @code{LC_COLLATE} data is incompatible); thus calls to @code{setlocale} may fail, but programs will not abort."
-msgstr "Zum Beispiel kann ein an die libc-Version 2.21 gebundenes Programm keine mit libc 2.22 erzeugten Locale-Daten lesen; schlimmer noch, das Programm @emph{terminiert} statt einfach die inkompatiblen Locale-Daten zu ignorieren@footnote{Versionen 2.23 von GNU@tie{}libc und neuere werden inkompatible Locale-Daten nur mehr überspringen, was schon einmal eine Verbesserung ist.}. Ähnlich kann ein an libc 2.22 gebundenes Programm die meisten, aber nicht alle, Locale-Daten von libc 2.21 lesen (Daten zu @code{LC_COLLATE} sind aber zum Beispiel inkompatibel); somit schlagen Aufrufe von @code{setlocale} vielleicht fehl, aber das Programm läuft weiter."
+#: doc/guix.texi:14274
+msgid "For instance, a program linked against libc version 2.21 is unable to read locale data produced with libc 2.22; worse, that program @emph{aborts} instead of simply ignoring the incompatible locale data@footnote{Versions 2.23 and later of GNU@tie{}libc will simply skip the incompatible locale data, which is already an improvement.}.  Similarly, a program linked against libc 2.22 can read most, but not all, of the locale data from libc 2.21 (specifically, @env{LC_COLLATE} data is incompatible); thus calls to @code{setlocale} may fail, but programs will not abort."
+msgstr "Zum Beispiel kann ein an die libc-Version 2.21 gebundenes Programm keine mit libc 2.22 erzeugten Locale-Daten lesen; schlimmer noch, das Programm @emph{terminiert} statt einfach die inkompatiblen Locale-Daten zu ignorieren@footnote{Versionen 2.23 von GNU@tie{}libc und neuere werden inkompatible Locale-Daten nur mehr überspringen, was schon einmal eine Verbesserung ist.}. Ähnlich kann ein an libc 2.22 gebundenes Programm die meisten, aber nicht alle, Locale-Daten von libc 2.21 lesen (Daten zu @env{LC_COLLATE} sind aber zum Beispiel inkompatibel); somit schlagen Aufrufe von @code{setlocale} vielleicht fehl, aber das Programm läuft weiter."
 
 #. type: Plain text
-#: doc/guix.texi:12129
+#: doc/guix.texi:14279
 msgid "The ``problem'' with Guix is that users have a lot of freedom: They can choose whether and when to upgrade software in their profiles, and might be using a libc version different from the one the system administrator used to build the system-wide locale data."
 msgstr "Das „Problem“ mit Guix ist, dass Nutzer viel Freiheit genießen: Sie können wählen, ob und wann sie die Software in ihren Profilen aktualisieren und benutzen vielleicht eine andere libc-Version als sie der Systemadministrator benutzt hat, um die systemweiten Locale-Daten zu erstellen."
 
 #. type: Plain text
-#: doc/guix.texi:12133
-msgid "Fortunately, unprivileged users can also install their own locale data and define @var{GUIX_LOCPATH} accordingly (@pxref{locales-and-locpath, @code{GUIX_LOCPATH} and locale packages})."
-msgstr "Glücklicherweise können „unprivilegierte“ Nutzer ohne zusätzliche Berechtigungen dann zumindest ihre eigenen Locale-Daten installieren und @var{GUIX_LOCPATH} entsprechend definieren (siehe @ref{locales-and-locpath, @code{GUIX_LOCPATH} und Locale-Pakete})."
+#: doc/guix.texi:14283
+msgid "Fortunately, unprivileged users can also install their own locale data and define @env{GUIX_LOCPATH} accordingly (@pxref{locales-and-locpath, @env{GUIX_LOCPATH} and locale packages})."
+msgstr "Glücklicherweise können „unprivilegierte“ Nutzer ohne zusätzliche Berechtigungen dann zumindest ihre eigenen Locale-Daten installieren und @env{GUIX_LOCPATH} entsprechend definieren (siehe @ref{locales-and-locpath, @env{GUIX_LOCPATH} und Locale-Pakete})."
 
 #. type: Plain text
-#: doc/guix.texi:12140
+#: doc/guix.texi:14290
 msgid "Still, it is best if the system-wide locale data at @file{/run/current-system/locale} is built for all the libc versions actually in use on the system, so that all the programs can access it---this is especially crucial on a multi-user system.  To do that, the administrator can specify several libc packages in the @code{locale-libcs} field of @code{operating-system}:"
 msgstr "Trotzdem ist es am besten, wenn die systemweiten Locale-Daten unter @file{/run/current-system/locale} für alle libc-Versionen erstellt werden, die auf dem System noch benutzt werden, damit alle Programme auf sie zugreifen können — was auf einem Mehrbenutzersystem ganz besonders wichtig ist. Dazu kann der Administrator des Systems mehrere libc-Pakete im @code{locale-libcs}-Feld vom @code{operating-system} angeben:"
 
 #. type: lisp
-#: doc/guix.texi:12143
+#: doc/guix.texi:14293
 #, no-wrap
 msgid ""
 "(use-package-modules base)\n"
@@ -22004,7 +25609,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:12147
+#: doc/guix.texi:14297
 #, no-wrap
 msgid ""
 "(operating-system\n"
@@ -22016,39 +25621,39 @@ msgstr ""
 "  (locale-libcs (list glibc-2.21 (canonical-package glibc))))\n"
 
 #. type: Plain text
-#: doc/guix.texi:12152
+#: doc/guix.texi:14302
 msgid "This example would lead to a system containing locale definitions for both libc 2.21 and the current version of libc in @file{/run/current-system/locale}."
 msgstr "Mit diesem Beispiel ergäbe sich ein System, was Locale-Definitionen sowohl für libc 2.21 als auch die aktuelle Version von libc in @file{/run/current-system/locale} hat."
 
 #. type: cindex
-#: doc/guix.texi:12157
+#: doc/guix.texi:14307
 #, no-wrap
 msgid "system services"
 msgstr "Systemdienste"
 
 #. type: Plain text
-#: doc/guix.texi:12163
+#: doc/guix.texi:14313
 msgid "An important part of preparing an @code{operating-system} declaration is listing @dfn{system services} and their configuration (@pxref{Using the Configuration System}).  System services are typically daemons launched when the system boots, or other actions needed at that time---e.g., configuring network access."
 msgstr "Ein wichtiger Bestandteil des Schreibens einer @code{operating-system}-Deklaration ist das Auflisten der @dfn{Systemdienste} und ihrer Konfiguration (siehe @ref{Using the Configuration System}). Systemdienste sind typischerweise im Hintergrund laufende Daemon-Programme, die beim Hochfahren des Systems gestartet werden, oder andere Aktionen, die zu dieser Zeit durchgeführt werden müssen — wie das Konfigurieren des Netzwerkzugangs."
 
 #. type: Plain text
-#: doc/guix.texi:12170
+#: doc/guix.texi:14320
 msgid "Guix has a broad definition of ``service'' (@pxref{Service Composition}), but many services are managed by the GNU@tie{}Shepherd (@pxref{Shepherd Services}).  On a running system, the @command{herd} command allows you to list the available services, show their status, start and stop them, or do other specific operations (@pxref{Jump Start,,, shepherd, The GNU Shepherd Manual}).  For example:"
 msgstr "Guix hat eine weit gefasste Definition, was ein „Dienst“ ist (siehe @ref{Service Composition}), aber viele Dienste sind solche, die von GNU@tie{}Shepherd verwaltet werden (siehe @ref{Shepherd Services}). Auf einem laufenden System kann der @command{herd}-Befehl benutzt werden, um verfügbare Dienste aufzulisten, ihren Status anzuzeigen, sie zu starten und zu stoppen oder andere angebotene Operationen durchzuführen (siehe @ref{Jump Start,,, shepherd, The GNU Shepherd Manual}). Zum Beispiel:"
 
 #. type: example
-#: doc/guix.texi:12173
+#: doc/guix.texi:14323
 #, no-wrap
 msgid "# herd status\n"
 msgstr "# herd status\n"
 
 #. type: Plain text
-#: doc/guix.texi:12178
+#: doc/guix.texi:14328
 msgid "The above command, run as @code{root}, lists the currently defined services.  The @command{herd doc} command shows a synopsis of the given service and its associated actions:"
 msgstr "Dieser Befehl, durchgeführt als @code{root}, listet die momentan definierten Dienste auf. Der Befehl @command{herd doc} fasst kurz zusammen, was ein gegebener Dienst ist und welche Aktionen mit ihm assoziiert sind:"
 
 #. type: example
-#: doc/guix.texi:12182
+#: doc/guix.texi:14332
 #, no-wrap
 msgid ""
 "# herd doc nscd\n"
@@ -22060,7 +25665,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:12185
+#: doc/guix.texi:14335
 #, no-wrap
 msgid ""
 "# herd doc nscd action invalidate\n"
@@ -22070,12 +25675,12 @@ msgstr ""
 "invalidate: Invalidate the given cache--e.g., 'hosts' for host name lookups.\n"
 
 #. type: Plain text
-#: doc/guix.texi:12190
+#: doc/guix.texi:14340
 msgid "The @command{start}, @command{stop}, and @command{restart} sub-commands have the effect you would expect.  For instance, the commands below stop the nscd service and restart the Xorg display server:"
 msgstr "Die Unterbefehle @command{start}, @command{stop} und @command{restart} haben die Wirkung, die man erwarten würde. Zum Beispiel kann mit folgenden Befehlen der nscd-Dienst angehalten und der Xorg-Anzeigeserver neu gestartet werden:"
 
 #. type: example
-#: doc/guix.texi:12197
+#: doc/guix.texi:14347
 #, no-wrap
 msgid ""
 "# herd stop nscd\n"
@@ -22091,55 +25696,33 @@ msgstr ""
 "Service xorg-server has been started.\n"
 
 #. type: Plain text
-#: doc/guix.texi:12202
+#: doc/guix.texi:14352
 msgid "The following sections document the available services, starting with the core services, that may be used in an @code{operating-system} declaration."
 msgstr "Die folgenden Abschnitte dokumentieren die verfügbaren Dienste, die in einer @code{operating-system}-Deklaration benutzt werden können, angefangen mit den Diensten im Kern des Systems („core services“)"
 
-#. type: subsection
-#: doc/guix.texi:12234 doc/guix.texi:19536 doc/guix.texi:19537
-#, no-wrap
-msgid "LDAP Services"
-msgstr "LDAP-Dienste"
-
-#. type: menuentry
-#: doc/guix.texi:12234
-msgid "LDAP services."
-msgstr "LDAP-Dienste."
-
-#. type: subsection
-#: doc/guix.texi:12234 doc/guix.texi:25335 doc/guix.texi:25336
-#, no-wrap
-msgid "Guix Services"
-msgstr "Guix-Dienste"
-
-#. type: menuentry
-#: doc/guix.texi:12234
-msgid "Services relating specifically to Guix."
-msgstr "Dienste, die speziell mit Guix zu tun haben."
-
 #. type: Plain text
-#: doc/guix.texi:12242
+#: doc/guix.texi:14394
 msgid "The @code{(gnu services base)} module provides definitions for the basic services that one expects from the system.  The services exported by this module are listed below."
 msgstr "Das Modul @code{(gnu services base)} stellt Definitionen für Basis-Dienste zur Verfügung, von denen man erwartet, dass das System sie anbietet. Im Folgenden sind die von diesem Modul exportierten Dienste aufgeführt."
 
 #. type: defvr
-#: doc/guix.texi:12243
+#: doc/guix.texi:14395
 #, no-wrap
 msgid "{Scheme Variable} %base-services"
 msgstr "{Scheme-Variable} %base-services"
 
 #. type: defvr
-#: doc/guix.texi:12249
+#: doc/guix.texi:14401
 msgid "This variable contains a list of basic services (@pxref{Service Types and Services}, for more information on service objects) one would expect from the system: a login service (mingetty) on each tty, syslogd, the libc name service cache daemon (nscd), the udev device manager, and more."
 msgstr "Diese Variable enthält eine Liste von Basis-Diensten, die man auf einem System vorzufinden erwartet (siehe @ref{Service Types and Services} für weitere Informationen zu Dienstobjekten): ein Anmeldungsdienst (mingetty) auf jeder Konsole (jedem „tty“), syslogd, den Name Service Cache Daemon (nscd) von libc, die udev-Geräteverwaltung und weitere."
 
 #. type: defvr
-#: doc/guix.texi:12254
+#: doc/guix.texi:14406
 msgid "This is the default value of the @code{services} field of @code{operating-system} declarations.  Usually, when customizing a system, you will want to append services to @code{%base-services}, like this:"
 msgstr "Dies ist der Vorgabewert für das @code{services}-Feld für die Dienste von @code{operating-system}-Deklarationen. Normalerweise werden Sie, wenn Sie ein Betriebssystem anpassen, Dienste an die @code{%base-services}-Liste anhängen, wie hier gezeigt:"
 
 #. type: lisp
-#: doc/guix.texi:12259
+#: doc/guix.texi:14411
 #, no-wrap
 msgid ""
 "(append (list (service avahi-service-type)\n"
@@ -22151,58 +25734,58 @@ msgstr ""
 "        %base-services)\n"
 
 #. type: defvr
-#: doc/guix.texi:12262
+#: doc/guix.texi:14414
 #, no-wrap
 msgid "{Scheme Variable} special-files-service-type"
 msgstr "{Scheme-Variable} special-files-service-type"
 
 #. type: defvr
-#: doc/guix.texi:12265
+#: doc/guix.texi:14417
 msgid "This is the service that sets up ``special files'' such as @file{/bin/sh}; an instance of it is part of @code{%base-services}."
 msgstr "Dieser Dienst richtet „besondere Dateien“ wie @file{/bin/sh} ein; eine Instanz des Dienstes ist Teil der @code{%base-services}."
 
 #. type: defvr
-#: doc/guix.texi:12269
+#: doc/guix.texi:14421
 msgid "The value associated with @code{special-files-service-type} services must be a list of tuples where the first element is the ``special file'' and the second element is its target.  By default it is:"
 msgstr "Der mit @code{special-files-service-type}-Diensten assoziierte Wert muss eine Liste von Tupeln sein, deren erstes Element eine „besondere Datei“ und deren zweites Element deren Zielpfad ist. Der Vorgabewert ist:"
 
 #. type: file{#1}
-#: doc/guix.texi:12270
+#: doc/guix.texi:14422
 #, no-wrap
 msgid "/bin/sh"
 msgstr "/bin/sh"
 
 #. type: cindex
-#: doc/guix.texi:12271
+#: doc/guix.texi:14423
 #, no-wrap
 msgid "@file{sh}, in @file{/bin}"
 msgstr "@file{sh}, in @file{/bin}"
 
 #. type: lisp
-#: doc/guix.texi:12274
+#: doc/guix.texi:14426
 #, no-wrap
 msgid "`((\"/bin/sh\" ,(file-append bash \"/bin/sh\")))\n"
 msgstr "`((\"/bin/sh\" ,(file-append bash \"/bin/sh\")))\n"
 
 #. type: file{#1}
-#: doc/guix.texi:12276
+#: doc/guix.texi:14428
 #, no-wrap
 msgid "/usr/bin/env"
 msgstr "/usr/bin/env"
 
 #. type: cindex
-#: doc/guix.texi:12277
+#: doc/guix.texi:14429
 #, no-wrap
 msgid "@file{env}, in @file{/usr/bin}"
 msgstr "@file{env}, in @file{/usr/bin}"
 
 #. type: defvr
-#: doc/guix.texi:12280
+#: doc/guix.texi:14432
 msgid "If you want to add, say, @code{/usr/bin/env} to your system, you can change it to:"
 msgstr "Wenn Sie zum Beispiel auch @code{/usr/bin/env} zu Ihrem System hinzufügen möchten, können Sie den Wert ändern auf:"
 
 #. type: lisp
-#: doc/guix.texi:12284
+#: doc/guix.texi:14436
 #, no-wrap
 msgid ""
 "`((\"/bin/sh\" ,(file-append bash \"/bin/sh\"))\n"
@@ -22212,28 +25795,28 @@ msgstr ""
 "  (\"/usr/bin/env\" ,(file-append coreutils \"/bin/env\")))\n"
 
 #. type: defvr
-#: doc/guix.texi:12291
-msgid "Since this is part of @code{%base-services}, you can use @code{modify-services} to customize the set of special files (@pxref{Service Reference, @code{modify-services}}).  But the simple way to add a special file is @i{via} the @code{extra-special-file} procedure (see below.)"
+#: doc/guix.texi:14443
+msgid "Since this is part of @code{%base-services}, you can use @code{modify-services} to customize the set of special files (@pxref{Service Reference, @code{modify-services}}).  But the simple way to add a special file is @i{via} the @code{extra-special-file} procedure (see below)."
 msgstr "Da dieser Dienst Teil der @code{%base-services} ist, können Sie @code{modify-services} benutzen, um die Liste besonderer Dateien abzuändern (siehe @ref{Service Reference, @code{modify-services}}). Die leichte Alternative, um eine besondere Datei hinzuzufügen, ist über die Prozedur @code{extra-special-file} (siehe unten)."
 
 #. type: deffn
-#: doc/guix.texi:12293
+#: doc/guix.texi:14445
 #, no-wrap
 msgid "{Scheme Procedure} extra-special-file @var{file} @var{target}"
 msgstr "{Scheme-Prozedur} extra-special-file @var{Datei} @var{Ziel}"
 
 #. type: deffn
-#: doc/guix.texi:12295
+#: doc/guix.texi:14447
 msgid "Use @var{target} as the ``special file'' @var{file}."
 msgstr "Das @var{Ziel} als „besondere Datei“ @var{Datei} verwenden."
 
 #. type: deffn
-#: doc/guix.texi:12299
+#: doc/guix.texi:14451
 msgid "For example, adding the following lines to the @code{services} field of your operating system declaration leads to a @file{/usr/bin/env} symlink:"
 msgstr "Beispielsweise können Sie die folgenden Zeilen in das @code{services}-Feld Ihrer Betriebssystemdeklaration einfügen für eine symbolische Verknüpfung @file{/usr/bin/env}:"
 
 #. type: lisp
-#: doc/guix.texi:12303
+#: doc/guix.texi:14455
 #, no-wrap
 msgid ""
 "(extra-special-file \"/usr/bin/env\"\n"
@@ -22243,29 +25826,29 @@ msgstr ""
 "                    (file-append coreutils \"/bin/env\"))\n"
 
 #. type: deffn
-#: doc/guix.texi:12306
+#: doc/guix.texi:14458
 #, no-wrap
 msgid "{Scheme Procedure} host-name-service @var{name}"
 msgstr "{Scheme-Prozedur} host-name-service @var{Name}"
 
 #. type: deffn
-#: doc/guix.texi:12308
+#: doc/guix.texi:14460
 msgid "Return a service that sets the host name to @var{name}."
 msgstr "Liefert einen Dienst, der den Rechnernamen (den „Host“-Namen des Rechners) als @var{Name} festlegt."
 
 #. type: defvr
-#: doc/guix.texi:12310
+#: doc/guix.texi:14462
 #, no-wrap
 msgid "{Scheme Variable} console-font-service-type"
 msgstr "{Scheme-Variable} console-font-service-type"
 
 #. type: defvr
-#: doc/guix.texi:12315
+#: doc/guix.texi:14467
 msgid "Install the given fonts on the specified ttys (fonts are per virtual console on the kernel Linux).  The value of this service is a list of tty/font pairs.  The font can be the name of a font provided by the @code{kbd} package or any valid argument to @command{setfont}, as in this example:"
 msgstr "Installiert die angegebenen Schriftarten auf den festgelegten TTYs (auf dem Linux-Kernel werden Schriftarten für jede virtuelle Konsole einzeln festgelegt). Als Wert nimmt dieser Dienst eine Liste von Paaren aus TTY und Schriftart. Als Schriftart kann der Name einer vom @code{kbd}-Paket zur Verfügung gestellten Schriftart oder ein beliebiges gültiges Argument für @command{setfont} dienen. Ein Beispiel:"
 
 #. type: lisp
-#: doc/guix.texi:12324
+#: doc/guix.texi:14476
 #, no-wrap
 msgid ""
 "`((\"tty1\" . \"LatGrkCyr-8x16\")\n"
@@ -22285,1173 +25868,1219 @@ msgstr ""
 "                \"/share/consolefonts/ter-132n\"))) ; für HiDPI\n"
 
 #. type: deffn
-#: doc/guix.texi:12327
+#: doc/guix.texi:14479
 #, no-wrap
 msgid "{Scheme Procedure} login-service @var{config}"
 msgstr "{Scheme-Prozedur} login-service @var{Konfiguration}"
 
 #. type: deffn
-#: doc/guix.texi:12331
+#: doc/guix.texi:14483
 msgid "Return a service to run login according to @var{config}, a @code{<login-configuration>} object, which specifies the message of the day, among other things."
 msgstr "Liefert einen Dienst, der die Benutzeranmeldung möglich macht. Dazu verwendet er die angegebene @var{Konfiguration}, ein @code{<login-configuration>}-Objekt, das unter anderem die beim Anmelden angezeigte Mitteilung des Tages („Message of the Day“) festlegt."
 
 #. type: deftp
-#: doc/guix.texi:12333
+#: doc/guix.texi:14485
 #, no-wrap
 msgid "{Data Type} login-configuration"
 msgstr "{Datentyp} login-configuration"
 
 #. type: deftp
-#: doc/guix.texi:12335
+#: doc/guix.texi:14487
 msgid "This is the data type representing the configuration of login."
 msgstr "Dies ist der Datentyp, der die Anmeldekonfiguration repräsentiert."
 
 #. type: code{#1}
-#: doc/guix.texi:12338
+#: doc/guix.texi:14490
 #, no-wrap
 msgid "motd"
 msgstr "motd"
 
 #. type: cindex
-#: doc/guix.texi:12339
+#: doc/guix.texi:14491
 #, no-wrap
 msgid "message of the day"
 msgstr "Message of the Day"
 
 #. type: table
-#: doc/guix.texi:12341
+#: doc/guix.texi:14493
 msgid "A file-like object containing the ``message of the day''."
 msgstr "Ein dateiartiges Objekt, das die „Message of the Day“ enthält."
 
 #. type: item
-#: doc/guix.texi:12342 doc/guix.texi:14542
+#: doc/guix.texi:14494 doc/guix.texi:17095
 #, no-wrap
 msgid "@code{allow-empty-passwords?} (default: @code{#t})"
 msgstr "@code{allow-empty-passwords?} (Vorgabe: @code{#t})"
 
 #. type: table
-#: doc/guix.texi:12345
+#: doc/guix.texi:14497
 msgid "Allow empty passwords by default so that first-time users can log in when the 'root' account has just been created."
 msgstr "Leere Passwörter standardmäßig zulassen, damit sich neue Anwender anmelden können, direkt nachdem das Benutzerkonto „root“ für den Administrator angelegt wurde."
 
 #. type: deffn
-#: doc/guix.texi:12349
+#: doc/guix.texi:14501
 #, no-wrap
 msgid "{Scheme Procedure} mingetty-service @var{config}"
 msgstr "{Scheme-Prozedur} mingetty-service @var{Konfiguration}"
 
 #. type: deffn
-#: doc/guix.texi:12353
+#: doc/guix.texi:14505
 msgid "Return a service to run mingetty according to @var{config}, a @code{<mingetty-configuration>} object, which specifies the tty to run, among other things."
 msgstr "Liefert einen Dienst, der mingetty nach den Vorgaben der @var{Konfiguration} ausführt, einem @code{<mingetty-configuration>}-Objekt, das unter anderem die Konsole (das „tty“) festlegt, auf der mingetty laufen soll."
 
 #. type: deftp
-#: doc/guix.texi:12355
+#: doc/guix.texi:14507
 #, no-wrap
 msgid "{Data Type} mingetty-configuration"
 msgstr "{Datentyp} mingetty-configuration"
 
 #. type: deftp
-#: doc/guix.texi:12358
+#: doc/guix.texi:14510
 msgid "This is the data type representing the configuration of Mingetty, which provides the default implementation of virtual console log-in."
 msgstr "Dieser Datentyp repräsentiert die Konfiguration von Mingetty, der vorgegebenen Implementierung zur Anmeldung auf einer virtuellen Konsole."
 
 #. type: code{#1}
-#: doc/guix.texi:12361 doc/guix.texi:12397
+#: doc/guix.texi:14513 doc/guix.texi:14549 doc/guix.texi:29425
 #, no-wrap
 msgid "tty"
 msgstr "tty"
 
 #. type: table
-#: doc/guix.texi:12363
+#: doc/guix.texi:14515
 msgid "The name of the console this Mingetty runs on---e.g., @code{\"tty1\"}."
 msgstr "Der Name der Konsole, auf der diese Mingetty-Instanz läuft — z.B.@: @code{\"tty1\"}."
 
 #. type: item
-#: doc/guix.texi:12364 doc/guix.texi:12426 doc/guix.texi:12585
+#: doc/guix.texi:14516 doc/guix.texi:14578 doc/guix.texi:14737
 #, no-wrap
 msgid "@code{auto-login} (default: @code{#f})"
 msgstr "@code{auto-login} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:12368
+#: doc/guix.texi:14520
 msgid "When true, this field must be a string denoting the user name under which the system automatically logs in.  When it is @code{#f}, a user name and password must be entered to log in."
 msgstr "Steht dieses Feld auf wahr, muss es eine Zeichenkette sein, die den Benutzernamen angibt, als der man vom System automatisch angemeldet wird. Ist es @code{#f}, so muss zur Anmeldung ein Benutzername und ein Passwort eingegeben werden."
 
 #. type: item
-#: doc/guix.texi:12369
+#: doc/guix.texi:14521
 #, no-wrap
 msgid "@code{login-program} (default: @code{#f})"
 msgstr "@code{login-program} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:12373
+#: doc/guix.texi:14525
 msgid "This must be either @code{#f}, in which case the default log-in program is used (@command{login} from the Shadow tool suite), or a gexp denoting the name of the log-in program."
 msgstr "Dies muss entweder @code{#f} sein, dann wird das voreingestellte Anmeldeprogramm benutzt (@command{login} aus dem Shadow-Werkzeugsatz) oder der Name des Anmeldeprogramms als G-Ausdruck."
 
 #. type: item
-#: doc/guix.texi:12374
+#: doc/guix.texi:14526
 #, no-wrap
 msgid "@code{login-pause?} (default: @code{#f})"
 msgstr "@code{login-pause?} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:12377
+#: doc/guix.texi:14529
 msgid "When set to @code{#t} in conjunction with @var{auto-login}, the user will have to press a key before the log-in shell is launched."
 msgstr "Ist es auf @code{#t} gesetzt, sorgt es in Verbindung mit @var{auto-login} dafür, dass der Benutzer eine Taste drücken muss, ehe eine Anmelde-Shell gestartet wird."
 
 #. type: item
-#: doc/guix.texi:12378
+#: doc/guix.texi:14530
 #, no-wrap
 msgid "@code{mingetty} (default: @var{mingetty})"
 msgstr "@code{mingetty} (Vorgabe: @var{mingetty})"
 
 #. type: table
-#: doc/guix.texi:12380
+#: doc/guix.texi:14532
 msgid "The Mingetty package to use."
 msgstr "Welches Mingetty-Paket benutzt werden soll."
 
 #. type: deffn
-#: doc/guix.texi:12384
+#: doc/guix.texi:14536
 #, no-wrap
 msgid "{Scheme Procedure} agetty-service @var{config}"
 msgstr "{Scheme-Prozedur} agetty-service @var{Konfiguration}"
 
 #. type: deffn
-#: doc/guix.texi:12388
+#: doc/guix.texi:14540
 msgid "Return a service to run agetty according to @var{config}, an @code{<agetty-configuration>} object, which specifies the tty to run, among other things."
 msgstr "Liefert einen Dienst, um agetty entsprechend der @var{Konfiguration} auszuführen, welche ein @code{<agetty-configuration>}-Objekt sein muss, das unter anderem festlegt, auf welchem tty es laufen soll."
 
 #. type: deftp
-#: doc/guix.texi:12390
+#: doc/guix.texi:14542
 #, no-wrap
 msgid "{Data Type} agetty-configuration"
 msgstr "{Datentyp} agetty-configuration"
 
 #. type: deftp
-#: doc/guix.texi:12394
+#: doc/guix.texi:14546
 msgid "This is the data type representing the configuration of agetty, which implements virtual and serial console log-in.  See the @code{agetty(8)} man page for more information."
 msgstr "Dies ist der Datentyp, der die Konfiguration von agetty repräsentiert, was Anmeldungen auf einer virtuellen oder seriellen Konsole implementiert. Siehe die Handbuchseite @code{agetty(8)} für mehr Informationen."
 
 #. type: table
-#: doc/guix.texi:12401
-msgid "The name of the console this agetty runs on, as a string---e.g., @code{\"ttyS0\"}. This argument is optional, it will default to a reasonable default serial port used by the kernel Linux."
+#: doc/guix.texi:14553
+msgid "The name of the console this agetty runs on, as a string---e.g., @code{\"ttyS0\"}.  This argument is optional, it will default to a reasonable default serial port used by the kernel Linux."
 msgstr "Der Name der Konsole, auf der diese Instanz von agetty läuft, als Zeichenkette — z.B.@: @code{\"ttyS0\"}. Dieses Argument ist optional, sein Vorgabewert ist eine vernünftige Wahl unter den seriellen Schnittstellen, auf deren Benutzung der Linux-Kernel eingestellt ist."
 
 #. type: table
-#: doc/guix.texi:12405
+#: doc/guix.texi:14557
 msgid "For this, if there is a value for an option @code{agetty.tty} in the kernel command line, agetty will extract the device name of the serial port from it and use that."
 msgstr "Hierzu wird, wenn in der Kernel-Befehlszeile ein Wert für eine Option namens @code{agetty.tty} festgelegt wurde, der Gerätename daraus für agetty extrahiert und benutzt."
 
 #. type: table
-#: doc/guix.texi:12409
+#: doc/guix.texi:14561
 msgid "If not and if there is a value for an option @code{console} with a tty in the Linux command line, agetty will extract the device name of the serial port from it and use that."
 msgstr "Andernfalls wird agetty, falls auf der Kernel-Befehlszeile eine Option @code{console} mit einem tty vorkommt, den daraus extrahierten Gerätenamen der seriellen Schnittstelle benutzen."
 
 #. type: table
-#: doc/guix.texi:12413
+#: doc/guix.texi:14565
 msgid "In both cases, agetty will leave the other serial device settings (baud rate etc.)@: alone---in the hope that Linux pinned them to the correct values."
 msgstr "In beiden Fällen wird agetty nichts an den anderen Einstellungen für serielle Geräte verändern (Baud-Rate etc.), in der Hoffnung, dass Linux sie auf die korrekten Werte festgelegt hat."
 
 #. type: item
-#: doc/guix.texi:12414 doc/guix.texi:25624
+#: doc/guix.texi:14566 doc/guix.texi:29566
 #, no-wrap
 msgid "@code{baud-rate} (default: @code{#f})"
 msgstr "@code{baud-rate} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:12417
+#: doc/guix.texi:14569
 msgid "A string containing a comma-separated list of one or more baud rates, in descending order."
 msgstr "Eine Zeichenkette, die aus einer kommagetrennten Liste von einer oder mehreren Baud-Raten besteht, absteigend sortiert."
 
 #. type: item
-#: doc/guix.texi:12418
+#: doc/guix.texi:14570
 #, no-wrap
 msgid "@code{term} (default: @code{#f})"
 msgstr "@code{term} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:12421
-msgid "A string containing the value used for the @code{TERM} environment variable."
-msgstr "Eine Zeichenkette, die den Wert enthält, der für die Umgebungsvariable @code{TERM} benutzt werden soll."
+#: doc/guix.texi:14573
+msgid "A string containing the value used for the @env{TERM} environment variable."
+msgstr "Eine Zeichenkette, die den Wert enthält, der für die Umgebungsvariable @env{TERM} benutzt werden soll."
 
 #. type: item
-#: doc/guix.texi:12422
+#: doc/guix.texi:14574
 #, no-wrap
 msgid "@code{eight-bits?} (default: @code{#f})"
 msgstr "@code{eight-bits?} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:12425
+#: doc/guix.texi:14577
 msgid "When @code{#t}, the tty is assumed to be 8-bit clean, and parity detection is disabled."
 msgstr "Steht dies auf @code{#t}, wird angenommen, dass das tty 8-Bit-korrekt ist, so dass die Paritätserkennung abgeschaltet wird."
 
 #. type: table
-#: doc/guix.texi:12429 doc/guix.texi:12588
+#: doc/guix.texi:14581 doc/guix.texi:14740
 msgid "When passed a login name, as a string, the specified user will be logged in automatically without prompting for their login name or password."
 msgstr "Wird hier ein Anmeldename als eine Zeichenkette übergeben, wird der angegebene Nutzer automatisch angemeldet, ohne nach einem Anmeldenamen oder Passwort zu fragen."
 
 #. type: item
-#: doc/guix.texi:12430
+#: doc/guix.texi:14582
 #, no-wrap
 msgid "@code{no-reset?} (default: @code{#f})"
 msgstr "@code{no-reset?} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:12432
+#: doc/guix.texi:14584
 msgid "When @code{#t}, don't reset terminal cflags (control modes)."
 msgstr "Steht dies auf @code{#t}, werden die Cflags des Terminals (d.h.@: dessen Steuermodi) nicht zurückgesetzt."
 
 #. type: item
-#: doc/guix.texi:12433
+#: doc/guix.texi:14585
 #, no-wrap
 msgid "@code{host} (default: @code{#f})"
 msgstr "@code{host} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:12436
-msgid "This accepts a string containing the \"login_host\", which will be written into the @file{/var/run/utmpx} file."
-msgstr "Dies akzeptiert eine Zeichenkette mit dem einzutragenden Anmeldungs-Rechnernamen \"login_host\", der in die Datei @file{/var/run/utmpx} geschrieben wird."
+#: doc/guix.texi:14588
+msgid "This accepts a string containing the ``login_host'', which will be written into the @file{/var/run/utmpx} file."
+msgstr "Dies akzeptiert eine Zeichenkette mit dem einzutragenden Anmeldungs-Rechnernamen („login_host“), der in die Datei @file{/var/run/utmpx} geschrieben wird."
 
 #. type: item
-#: doc/guix.texi:12437
+#: doc/guix.texi:14589
 #, no-wrap
 msgid "@code{remote?} (default: @code{#f})"
 msgstr "@code{remote?} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:12441
+#: doc/guix.texi:14593
 msgid "When set to @code{#t} in conjunction with @var{host}, this will add an @code{-r} fakehost option to the command line of the login program specified in @var{login-program}."
 msgstr "Ist dies auf @code{#t} gesetzt, wird in Verbindung mit @var{host} eine Befehlszeilenoption @code{-r} für einen falschen Rechnernamen („Fakehost“) in der Befehlszeile des mit @var{login-program} angegebenen Anmeldeprogramms übergeben."
 
 #. type: item
-#: doc/guix.texi:12442
+#: doc/guix.texi:14594
 #, no-wrap
 msgid "@code{flow-control?} (default: @code{#f})"
 msgstr "@code{flow-control?} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:12444
+#: doc/guix.texi:14596
 msgid "When set to @code{#t}, enable hardware (RTS/CTS) flow control."
 msgstr "Ist dies auf @code{#t} gesetzt, wird Hardware-Flusssteuerung (RTS/CTS) aktiviert."
 
 #. type: item
-#: doc/guix.texi:12445
+#: doc/guix.texi:14597
 #, no-wrap
 msgid "@code{no-issue?} (default: @code{#f})"
 msgstr "@code{no-issue?} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:12448
+#: doc/guix.texi:14600
 msgid "When set to @code{#t}, the contents of the @file{/etc/issue} file will not be displayed before presenting the login prompt."
 msgstr "Ist dies auf @code{#t} gesetzt, wird der Inhalt der Datei @file{/etc/issue} @emph{nicht} angezeigt, bevor die Anmeldeaufforderung zu sehen ist."
 
 #. type: item
-#: doc/guix.texi:12449
+#: doc/guix.texi:14601
 #, no-wrap
 msgid "@code{init-string} (default: @code{#f})"
 msgstr "@code{init-string} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:12452
+#: doc/guix.texi:14604
 msgid "This accepts a string that will be sent to the tty or modem before sending anything else.  It can be used to initialize a modem."
 msgstr "Dies akzeptiert eine Zeichenkette, die zum tty oder zum Modem zuerst vor allem anderen gesendet wird. Es kann benutzt werden, um ein Modem zu initialisieren."
 
 #. type: item
-#: doc/guix.texi:12453
+#: doc/guix.texi:14605
 #, no-wrap
 msgid "@code{no-clear?} (default: @code{#f})"
 msgstr "@code{no-clear?} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:12456
+#: doc/guix.texi:14608
 msgid "When set to @code{#t}, agetty will not clear the screen before showing the login prompt."
 msgstr "Ist dies auf @code{#t} gesetzt, wird agetty den Bildschirm @emph{nicht} löschen, bevor es die Anmeldeaufforderung anzeigt."
 
 #. type: item
-#: doc/guix.texi:12457
+#: doc/guix.texi:14609
 #, no-wrap
 msgid "@code{login-program} (default: (file-append shadow \"/bin/login\"))"
 msgstr "@code{login-program} (Vorgabe: (file-append shadow \"/bin/login\"))"
 
 #. type: table
-#: doc/guix.texi:12461
+#: doc/guix.texi:14613
 msgid "This must be either a gexp denoting the name of a log-in program, or unset, in which case the default value is the @command{login} from the Shadow tool suite."
 msgstr "Hier muss entweder ein G-Ausdruck mit dem Namen eines Anmeldeprogramms übergeben werden, oder dieses Feld wird nicht gesetzt, so dass als Vorgabewert das Programm @command{login} aus dem Shadow-Werkzeugsatz verwendet wird."
 
 #. type: item
-#: doc/guix.texi:12462
+#: doc/guix.texi:14614
 #, no-wrap
 msgid "@code{local-line} (default: @code{#f})"
 msgstr "@code{local-line} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:12466
+#: doc/guix.texi:14618
 msgid "Control the CLOCAL line flag.  This accepts one of three symbols as arguments, @code{'auto}, @code{'always}, or @code{'never}. If @code{#f}, the default value chosen by agetty is @code{'auto}."
 msgstr "Steuert den Leitungsschalter CLOCAL. Hierfür wird eines von drei Symbolen als Argument akzeptiert, @code{'auto}, @code{'always} oder @code{'never}. Für @code{#f} wählt agetty als Vorgabewert @code{'auto}."
 
 #. type: item
-#: doc/guix.texi:12467
+#: doc/guix.texi:14619
 #, no-wrap
 msgid "@code{extract-baud?} (default: @code{#f})"
 msgstr "@code{extract-baud?} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:12470
+#: doc/guix.texi:14622
 msgid "When set to @code{#t}, instruct agetty to try to extract the baud rate from the status messages produced by certain types of modems."
 msgstr "Ist dies auf @code{#t} gesetzt, so wird agetty angewiesen, die Baud-Rate aus den Statusmeldungen mancher Arten von Modem abzulesen."
 
 #. type: item
-#: doc/guix.texi:12471
+#: doc/guix.texi:14623
 #, no-wrap
 msgid "@code{skip-login?} (default: @code{#f})"
 msgstr "@code{skip-login?} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:12475
+#: doc/guix.texi:14627
 msgid "When set to @code{#t}, do not prompt the user for a login name.  This can be used with @var{login-program} field to use non-standard login systems."
 msgstr "Ist dies auf @code{#t} gesetzt, wird der Benutzer nicht aufgefordert, einen Anmeldenamen einzugeben. Dies kann zusammen mit dem @var{login-program}-Feld benutzt werden, um nicht standardkonforme Anmeldesysteme zu benutzen."
 
 #. type: item
-#: doc/guix.texi:12476
+#: doc/guix.texi:14628
 #, no-wrap
 msgid "@code{no-newline?} (default: @code{#f})"
 msgstr "@code{no-newline?} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:12479
+#: doc/guix.texi:14631
 msgid "When set to @code{#t}, do not print a newline before printing the @file{/etc/issue} file."
 msgstr "Ist dies auf @code{#t} gesetzt, wird @emph{kein} Zeilenumbruch ausgegeben, bevor die Datei @file{/etc/issue} ausgegeben wird."
 
 #. type: item
-#: doc/guix.texi:12481
+#: doc/guix.texi:14633
 #, no-wrap
 msgid "@code{login-options} (default: @code{#f})"
 msgstr "@code{login-options} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:12486
+#: doc/guix.texi:14638
 msgid "This option accepts a string containing options that are passed to the login program.  When used with the @var{login-program}, be aware that a malicious user could try to enter a login name containing embedded options that could be parsed by the login program."
 msgstr "Dieses Feld akzeptiert eine Zeichenkette mit den Befehlszeilenoptionen für das Anmeldeprogramm. Beachten Sie, dass bei einem selbst gewählten @var{login-program} ein böswilliger Nutzer versuchen könnte, als Anmeldenamen etwas mit eingebetteten Befehlszeilenoptionen anzugeben, die vom Anmeldeprogramm interpretiert werden könnten."
 
 #. type: item
-#: doc/guix.texi:12487
+#: doc/guix.texi:14639
 #, no-wrap
 msgid "@code{login-pause} (default: @code{#f})"
 msgstr "@code{login-pause} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:12491
+#: doc/guix.texi:14643
 msgid "When set to @code{#t}, wait for any key before showing the login prompt.  This can be used in conjunction with @var{auto-login} to save memory by lazily spawning shells."
 msgstr "Ist dies auf @code{#t} gesetzt, wird auf das Drücken einer beliebigen Taste gewartet, bevor die Anmeldeaufforderung angezeigt wird. Hiermit kann in Verbindung mit @var{auto-login} weniger Speicher verbraucht werden, indem man Shells erst erzeugt, wenn sie benötigt werden."
 
 #. type: item
-#: doc/guix.texi:12492
+#: doc/guix.texi:14644
 #, no-wrap
 msgid "@code{chroot} (default: @code{#f})"
 msgstr "@code{chroot} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:12495
+#: doc/guix.texi:14647
 msgid "Change root to the specified directory.  This option accepts a directory path as a string."
 msgstr "Wechselt die Wurzel des Dateisystems auf das angegebene Verzeichnis. Dieses Feld akzeptiert einen Verzeichnispfad als Zeichenkette."
 
 #. type: item
-#: doc/guix.texi:12496
+#: doc/guix.texi:14648
 #, no-wrap
 msgid "@code{hangup?} (default: @code{#f})"
 msgstr "@code{hangup?} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:12499
+#: doc/guix.texi:14651
 msgid "Use the Linux system call @code{vhangup} to do a virtual hangup of the specified terminal."
 msgstr "Mit dem Linux-Systemaufruf @code{vhangup} auf dem angegebenen Terminal virtuell auflegen."
 
 #. type: item
-#: doc/guix.texi:12500
+#: doc/guix.texi:14652
 #, no-wrap
 msgid "@code{keep-baud?} (default: @code{#f})"
 msgstr "@code{keep-baud?} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:12504
+#: doc/guix.texi:14656
 msgid "When set to @code{#t}, try to keep the existing baud rate.  The baud rates from @var{baud-rate} are used when agetty receives a @key{BREAK} character."
 msgstr "Ist dies auf @code{#t} gesetzt, wird versucht, die bestehende Baud-Rate beizubehalten. Die Baud-Raten aus dem Feld @var{baud-rate} werden benutzt, wenn agetty ein @key{BREAK}-Zeichen empfängt."
 
 #. type: item
-#: doc/guix.texi:12505
+#: doc/guix.texi:14657
 #, no-wrap
 msgid "@code{timeout} (default: @code{#f})"
 msgstr "@code{timeout} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:12508
+#: doc/guix.texi:14660
 msgid "When set to an integer value, terminate if no user name could be read within @var{timeout} seconds."
 msgstr "Ist dies auf einen ganzzahligen Wert gesetzt, wird terminiert, falls kein Benutzername innerhalb von @var{timeout} Sekunden eingelesen werden konnte."
 
 #. type: item
-#: doc/guix.texi:12509
+#: doc/guix.texi:14661
 #, no-wrap
 msgid "@code{detect-case?} (default: @code{#f})"
 msgstr "@code{detect-case?} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:12515
+#: doc/guix.texi:14667
 msgid "When set to @code{#t}, turn on support for detecting an uppercase-only terminal.  This setting will detect a login name containing only uppercase letters as indicating an uppercase-only terminal and turn on some upper-to-lower case conversions.  Note that this will not support Unicode characters."
 msgstr "Ist dies auf @code{#t} gesetzt, wird Unterstützung für die Erkennung von Terminals aktiviert, die nur Großschreibung beherrschen. Mit dieser Einstellung wird, wenn ein Anmeldename nur aus Großbuchstaben besteht, dieser als Anzeichen dafür aufgefasst, dass das Terminal nur Großbuchstaben beherrscht, und einige Umwandlungen von Groß- in Kleinbuchstaben aktiviert. Beachten Sie, dass dabei @emph{keine} Unicode-Zeichen unterstützt werden."
 
 #. type: item
-#: doc/guix.texi:12516
+#: doc/guix.texi:14668
 #, no-wrap
 msgid "@code{wait-cr?} (default: @code{#f})"
 msgstr "@code{wait-cr?} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:12521
+#: doc/guix.texi:14673
 msgid "When set to @code{#t}, wait for the user or modem to send a carriage-return or linefeed character before displaying @file{/etc/issue} or login prompt.  This is typically used with the @var{init-string} option."
 msgstr "Wenn dies auf @code{#t} gesetzt ist, wird gewartet, bis der Benutzer oder das Modem einen Wagenrücklauf („Carriage Return“) oder einen Zeilenvorschub („Linefeed“) absendet, ehe @file{/etc/issue} oder eine Anmeldeaufforderung angezeigt wird. Dies wird typischerweise zusammen mit dem Feld @var{init-string} benutzt."
 
 #. type: item
-#: doc/guix.texi:12522
+#: doc/guix.texi:14674
 #, no-wrap
 msgid "@code{no-hints?} (default: @code{#f})"
 msgstr "@code{no-hints?} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:12525
+#: doc/guix.texi:14677
 msgid "When set to @code{#t}, do not print hints about Num, Caps, and Scroll locks."
 msgstr "Ist es auf @code{#t} gesetzt, werden @emph{keine} Hinweise zu den Feststelltasten Num-Taste, Umschaltsperre („Caps Lock“) und Rollen-Taste („Scroll Lock“) angezeigt."
 
 #. type: item
-#: doc/guix.texi:12526
+#: doc/guix.texi:14678
 #, no-wrap
 msgid "@code{no-hostname?} (default: @code{#f})"
 msgstr "@code{no-hostname?} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:12529
+#: doc/guix.texi:14681
 msgid "By default, the hostname is printed.  When this option is set to @code{#t}, no hostname will be shown at all."
 msgstr "Das vorgegebene Verhalten ist, den Rechnernamen auszugeben. Ist dieses Feld auf @code{#t} gesetzt, wird überhaupt kein Rechnername angezeigt."
 
 #. type: item
-#: doc/guix.texi:12530
+#: doc/guix.texi:14682
 #, no-wrap
 msgid "@code{long-hostname?} (default: @code{#f})"
 msgstr "@code{long-hostname?} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:12534
+#: doc/guix.texi:14686
 msgid "By default, the hostname is only printed until the first dot.  When this option is set to @code{#t}, the fully qualified hostname by @code{gethostname} or @code{getaddrinfo} is shown."
 msgstr "Das vorgegebene Verhalten ist, den Rechnernamen nur bis zu seinem ersten Punkt anzuzeigen. Ist dieses Feld auf @code{#t} gesetzt, wird der vollständige Rechnername (der „Fully Qualified Hostname“), wie ihn @code{gethostname} oder @code{getaddrinfo} liefern, angezeigt."
 
 #. type: item
-#: doc/guix.texi:12535
+#: doc/guix.texi:14687
 #, no-wrap
 msgid "@code{erase-characters} (default: @code{#f})"
 msgstr "@code{erase-characters} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:12538
+#: doc/guix.texi:14690
 msgid "This option accepts a string of additional characters that should be interpreted as backspace when the user types their login name."
 msgstr "Dieses Feld akzeptiert eine Zeichenkette aus Zeichen, die auch als Rücktaste (zum Löschen) interpretiert werden sollen, wenn der Benutzer seinen Anmeldenamen eintippt."
 
 #. type: item
-#: doc/guix.texi:12539
+#: doc/guix.texi:14691
 #, no-wrap
 msgid "@code{kill-characters} (default: @code{#f})"
 msgstr "@code{kill-characters} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:12543
-msgid "This option accepts a string that should be interpreted to mean \"ignore all previous characters\" (also called a \"kill\" character) when the user types their login name."
+#: doc/guix.texi:14695
+msgid "This option accepts a string that should be interpreted to mean ``ignore all previous characters'' (also called a ``kill'' character) when the user types their login name."
 msgstr "Dieses Feld akzeptiert eine Zeichenkette aus Zeichen, deren Eingabe als „ignoriere alle vorherigen Zeichen“ interpretiert werden soll (auch „Kill“-Zeichen genannt), wenn der Benutzer seinen Anmeldenamen eintippt."
 
 #. type: item
-#: doc/guix.texi:12544
+#: doc/guix.texi:14696
 #, no-wrap
 msgid "@code{chdir} (default: @code{#f})"
 msgstr "@code{chdir} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:12547
+#: doc/guix.texi:14699
 msgid "This option accepts, as a string, a directory path that will be changed to before login."
 msgstr "Dieses Feld akzeptiert eine Zeichenkette, die einen Verzeichnispfad angibt, zu dem vor der Anmeldung gewechselt wird."
 
 #. type: item
-#: doc/guix.texi:12548
+#: doc/guix.texi:14700
 #, no-wrap
 msgid "@code{delay} (default: @code{#f})"
 msgstr "@code{delay} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:12551
+#: doc/guix.texi:14703
 msgid "This options accepts, as an integer, the number of seconds to sleep before opening the tty and displaying the login prompt."
 msgstr "Dieses Feld akzeptiert eine ganze Zahl mit der Anzahl Sekunden, die gewartet werden soll, bis ein tty geöffnet und die Anmeldeaufforderung angezeigt wird."
 
 #. type: item
-#: doc/guix.texi:12552
+#: doc/guix.texi:14704
 #, no-wrap
 msgid "@code{nice} (default: @code{#f})"
 msgstr "@code{nice} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:12555
+#: doc/guix.texi:14707
 msgid "This option accepts, as an integer, the nice value with which to run the @command{login} program."
 msgstr "Dieses Feld akzeptiert eine ganze Zahl mit dem „nice“-Wert, mit dem das Anmeldeprogramm ausgeführt werden soll."
 
 #. type: item
-#: doc/guix.texi:12556 doc/guix.texi:12787 doc/guix.texi:13605
-#: doc/guix.texi:20537 doc/guix.texi:22578
+#: doc/guix.texi:14708 doc/guix.texi:14975 doc/guix.texi:15804
+#: doc/guix.texi:23250 doc/guix.texi:25438 doc/guix.texi:26075
+#: doc/guix.texi:27782 doc/guix.texi:29896
 #, no-wrap
 msgid "@code{extra-options} (default: @code{'()})"
 msgstr "@code{extra-options} (Vorgabe: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:12559
-msgid "This option provides an \"escape hatch\" for the user to provide arbitrary command-line arguments to @command{agetty} as a list of strings."
+#: doc/guix.texi:14711
+msgid "This option provides an ``escape hatch'' for the user to provide arbitrary command-line arguments to @command{agetty} as a list of strings."
 msgstr "Dieses Feld ist ein „Notausstieg“, mit dem Nutzer beliebige Befehlszeilenoptionen direkt an @command{agetty} übergeben können. Diese müssen hier als eine Liste von Zeichenketten angegeben werden."
 
 #. type: deffn
-#: doc/guix.texi:12563
+#: doc/guix.texi:14715
 #, no-wrap
 msgid "{Scheme Procedure} kmscon-service-type @var{config}"
 msgstr "{Scheme-Prozedur} kmscon-service-type @var{Konfiguration}"
 
 #. type: deffn
-#: doc/guix.texi:12567
+#: doc/guix.texi:14719
 msgid "Return a service to run @uref{https://www.freedesktop.org/wiki/Software/kmscon,kmscon} according to @var{config}, a @code{<kmscon-configuration>} object, which specifies the tty to run, among other things."
 msgstr "Liefert einen Dienst, um @uref{https://www.freedesktop.org/wiki/Software/kmscon,kmscon} entsprechend der @var{Konfiguration} auszuführen. Diese ist ein @code{<kmscon-configuration>}-Objekt, das unter anderem angibt, auf welchem tty es ausgeführt werden soll."
 
 #. type: deftp
-#: doc/guix.texi:12569
+#: doc/guix.texi:14721
 #, no-wrap
 msgid "{Data Type} kmscon-configuration"
 msgstr "{Datentyp} kmscon-configuration"
 
 #. type: deftp
-#: doc/guix.texi:12572
+#: doc/guix.texi:14724
 msgid "This is the data type representing the configuration of Kmscon, which implements virtual console log-in."
 msgstr "Dieser Datentyp repräsentiert die Konfiguration von Kmscon, die das Anmelden auf virtuellen Konsolen ermöglicht."
 
 #. type: code{#1}
-#: doc/guix.texi:12575
+#: doc/guix.texi:14727
 #, no-wrap
 msgid "virtual-terminal"
 msgstr "virtual-terminal"
 
 #. type: table
-#: doc/guix.texi:12577
+#: doc/guix.texi:14729
 msgid "The name of the console this Kmscon runs on---e.g., @code{\"tty1\"}."
 msgstr "Der Name der Konsole, auf der diese Kmscon läuft — z.B.@: @code{\"tty1\"}."
 
 #. type: item
-#: doc/guix.texi:12578
+#: doc/guix.texi:14730
 #, no-wrap
 msgid "@code{login-program} (default: @code{#~(string-append #$shadow \"/bin/login\")})"
 msgstr "@code{login-program} (Vorgabe: @code{#~(string-append #$shadow \"/bin/login\")})"
 
 #. type: table
-#: doc/guix.texi:12581
+#: doc/guix.texi:14733
 msgid "A gexp denoting the name of the log-in program. The default log-in program is @command{login} from the Shadow tool suite."
 msgstr "Ein G-Ausdruck, der den Namen des Anmeldeprogramms angibt. Als Vorgabe wird das Anmeldeprogramm @command{login} aus dem Shadow-Werkzeugsatz verwendet."
 
 #. type: item
-#: doc/guix.texi:12582
+#: doc/guix.texi:14734
 #, no-wrap
 msgid "@code{login-arguments} (default: @code{'(\"-p\")})"
 msgstr "@code{login-arguments} (Vorgabe: @code{'(\"-p\")})"
 
 #. type: table
-#: doc/guix.texi:12584
+#: doc/guix.texi:14736
 msgid "A list of arguments to pass to @command{login}."
 msgstr "Eine Liste der Argumente, die an @command{login} übergeben werden sollen."
 
 #. type: item
-#: doc/guix.texi:12589
+#: doc/guix.texi:14741
 #, no-wrap
 msgid "@code{hardware-acceleration?} (default: #f)"
 msgstr "@code{hardware-acceleration?} (Vorgabe: #f)"
 
 #. type: table
-#: doc/guix.texi:12591
+#: doc/guix.texi:14743
 msgid "Whether to use hardware acceleration."
 msgstr "Ob Hardware-Beschleunigung verwendet werden soll."
 
 #. type: item
-#: doc/guix.texi:12592
+#: doc/guix.texi:14744
 #, no-wrap
 msgid "@code{kmscon} (default: @var{kmscon})"
 msgstr "@code{kmscon} (Vorgabe: @var{kmscon})"
 
 #. type: table
-#: doc/guix.texi:12594
+#: doc/guix.texi:14746
 msgid "The Kmscon package to use."
 msgstr "Das Kmscon-Paket, das benutzt werden soll."
 
 #. type: cindex
-#: doc/guix.texi:12598
+#: doc/guix.texi:14750
 #, no-wrap
 msgid "name service cache daemon"
 msgstr "Name Service Cache Daemon"
 
 #. type: cindex
-#: doc/guix.texi:12599
+#: doc/guix.texi:14751
 #, no-wrap
 msgid "nscd"
 msgstr "nscd"
 
 #. type: deffn
-#: doc/guix.texi:12600
+#: doc/guix.texi:14752
 #, no-wrap
 msgid "{Scheme Procedure} nscd-service [@var{config}] [#:glibc glibc] @"
 msgstr "{Scheme-Prozedur} nscd-service [@var{Konfiguration}] [#:glibc glibc] @"
 
 #. type: deffn
-#: doc/guix.texi:12605
+#: doc/guix.texi:14757
 msgid "[#:name-services '()] Return a service that runs the libc name service cache daemon (nscd) with the given @var{config}---an @code{<nscd-configuration>} object.  @xref{Name Service Switch}, for an example."
 msgstr "[#:name-services '()] Liefert einen Dienst, der den Name Service Cache Daemon (nscd) von libc mit der angegebenen @var{Konfiguration} ausführt — diese muss ein @code{<nscd-configuration>}-Objekt sein. Siehe @ref{Name Service Switch} für ein Beispiel."
 
 #. type: deffn
-#: doc/guix.texi:12607
+#: doc/guix.texi:14759
 msgid "For convenience, the Shepherd service for nscd provides the following actions:"
 msgstr "Der Einfachheit halber bietet der Shepherd-Dienst für nscd die folgenden Aktionen an:"
 
 #. type: item
-#: doc/guix.texi:12609
+#: doc/guix.texi:14761
 #, no-wrap
 msgid "invalidate"
 msgstr "invalidate"
 
 #. type: cindex
-#: doc/guix.texi:12610
+#: doc/guix.texi:14762
 #, no-wrap
 msgid "cache invalidation, nscd"
 msgstr "Zwischenspeicher ungültig machen, nscd"
 
 #. type: cindex
-#: doc/guix.texi:12611
+#: doc/guix.texi:14763
 #, no-wrap
 msgid "nscd, cache invalidation"
 msgstr "nscd, Ungültigmachen des Zwischenspeichers"
 
 #. type: table
-#: doc/guix.texi:12613
+#: doc/guix.texi:14765
 msgid "This invalidate the given cache.  For instance, running:"
 msgstr "Dies macht den angegebenen Zwischenspeicher ungültig. Wenn Sie zum Beispiel:"
 
 #. type: example
-#: doc/guix.texi:12616
+#: doc/guix.texi:14768
 #, no-wrap
 msgid "herd invalidate nscd hosts\n"
 msgstr "herd invalidate nscd hosts\n"
 
 #. type: table
-#: doc/guix.texi:12620
+#: doc/guix.texi:14772
 msgid "invalidates the host name lookup cache of nscd."
 msgstr "ausführen, wird der Zwischenspeicher für die Auflösung von Rechnernamen (von „Host“-Namen) des nscd ungültig."
 
 #. type: item
-#: doc/guix.texi:12621
+#: doc/guix.texi:14773
 #, no-wrap
 msgid "statistics"
 msgstr "statistics"
 
 #. type: table
-#: doc/guix.texi:12624
+#: doc/guix.texi:14776
 msgid "Running @command{herd statistics nscd} displays information about nscd usage and caches."
 msgstr "Wenn Sie @command{herd statistics nscd} ausführen, werden Ihnen Informationen angezeigt, welche Ihnen Informationen über den nscd-Zustand und die Zwischenspeicher angezeigt."
 
 #. type: defvr
-#: doc/guix.texi:12628
+#: doc/guix.texi:14780
 #, no-wrap
 msgid "{Scheme Variable} %nscd-default-configuration"
 msgstr "{Scheme-Variable} %nscd-default-configuration"
 
 #. type: defvr
-#: doc/guix.texi:12632
-msgid "This is the default @code{<nscd-configuration>} value (see below) used by @code{nscd-service}.  It uses the caches defined by @var{%nscd-default-caches}; see below."
-msgstr "Dies ist der vorgegebene Wert für die @code{<nscd-configuration>} (siehe unten), die @code{nscd-service} benutzt. Die Konfiguration benutzt die Zwischenspeicher, die in @var{%nscd-default-caches} definiert sind; siehe unten."
+#: doc/guix.texi:14784
+msgid "This is the default @code{<nscd-configuration>} value (see below) used by @code{nscd-service}.  It uses the caches defined by @code{%nscd-default-caches}; see below."
+msgstr "Dies ist der vorgegebene Wert für die @code{<nscd-configuration>} (siehe unten), die @code{nscd-service} benutzt. Die Konfiguration benutzt die Zwischenspeicher, die in @code{%nscd-default-caches} definiert sind; siehe unten."
 
 #. type: deftp
-#: doc/guix.texi:12634
+#: doc/guix.texi:14786
 #, no-wrap
 msgid "{Data Type} nscd-configuration"
 msgstr "{Datentyp} nscd-configuration"
 
 #. type: deftp
-#: doc/guix.texi:12637
+#: doc/guix.texi:14789
 msgid "This is the data type representing the name service cache daemon (nscd)  configuration."
 msgstr "Dieser Datentyp repräsentiert die Konfiguration des Name Service Caching Daemon (kurz „nscd“)."
 
 #. type: item
-#: doc/guix.texi:12640
+#: doc/guix.texi:14792
 #, no-wrap
 msgid "@code{name-services} (default: @code{'()})"
 msgstr "@code{name-services} (Vorgabe: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:12643
+#: doc/guix.texi:14795
 msgid "List of packages denoting @dfn{name services} that must be visible to the nscd---e.g., @code{(list @var{nss-mdns})}."
 msgstr "Liste von Paketen, die @dfn{Namensdienste} bezeichnen, die für den nscd sichtbar sein müssen, z.B.@: @code{(list @var{nss-mdns})}."
 
 #. type: item
-#: doc/guix.texi:12644
+#: doc/guix.texi:14796
 #, no-wrap
 msgid "@code{glibc} (default: @var{glibc})"
 msgstr "@code{glibc} (Vorgabe: @var{glibc})"
 
 #. type: table
-#: doc/guix.texi:12647
+#: doc/guix.texi:14799
 msgid "Package object denoting the GNU C Library providing the @command{nscd} command."
 msgstr "Ein Paket-Objekt, das die GNU-C-Bibliothek angibt, woraus der @command{nscd}-Befehl genommen werden soll."
 
 #. type: item
-#: doc/guix.texi:12648
+#: doc/guix.texi:14800
 #, no-wrap
 msgid "@code{log-file} (default: @code{\"/var/log/nscd.log\"})"
 msgstr "@code{log-file} (Vorgabe: @code{\"/var/log/nscd.log\"})"
 
 #. type: table
-#: doc/guix.texi:12651
+#: doc/guix.texi:14803
 msgid "Name of the nscd log file.  This is where debugging output goes when @code{debug-level} is strictly positive."
 msgstr "Name der nscd-Protokolldatei. Hierhin werden Ausgaben zur Fehlersuche geschrieben, falls @code{debug-level} echt positiv ist."
 
 #. type: item
-#: doc/guix.texi:12652
+#: doc/guix.texi:14804
 #, no-wrap
 msgid "@code{debug-level} (default: @code{0})"
 msgstr "@code{debug-level} (Vorgabe: @code{0})"
 
 #. type: table
-#: doc/guix.texi:12655
+#: doc/guix.texi:14807
 msgid "Integer denoting the debugging levels.  Higher numbers mean that more debugging output is logged."
 msgstr "Eine ganze Zahl, die den Detailgrad der Ausgabe zur Fehlersuche angibt. Größere Zahlen bewirken eine ausführlichere Ausgabe."
 
 #. type: item
-#: doc/guix.texi:12656
+#: doc/guix.texi:14808
 #, no-wrap
-msgid "@code{caches} (default: @var{%nscd-default-caches})"
-msgstr "@code{caches} (Vorgabe: @var{%nscd-default-caches})"
+msgid "@code{caches} (default: @code{%nscd-default-caches})"
+msgstr "@code{caches} (Vorgabe: @code{%nscd-default-caches})"
 
 #. type: table
-#: doc/guix.texi:12659
+#: doc/guix.texi:14811
 msgid "List of @code{<nscd-cache>} objects denoting things to be cached; see below."
 msgstr "Liste der @code{<nscd-cache>}-Objekte, die repräsentieren, was alles zwischengespeichert werden soll; siehe unten."
 
 #. type: deftp
-#: doc/guix.texi:12663
+#: doc/guix.texi:14815
 #, no-wrap
 msgid "{Data Type} nscd-cache"
 msgstr "{Datentyp} nscd-cache"
 
 #. type: deftp
-#: doc/guix.texi:12665
+#: doc/guix.texi:14817
 msgid "Data type representing a cache database of nscd and its parameters."
 msgstr "Ein Datentyp, der eine Zwischenspeicher-Datenbank von nscd mitsamt ihren Parametern definiert."
 
 #. type: cindex
-#: doc/guix.texi:12668 doc/guix.texi:16249
+#: doc/guix.texi:14820 doc/guix.texi:18835
 #, no-wrap
 msgid "database"
 msgstr "Datenbank"
 
 #. type: table
-#: doc/guix.texi:12673
+#: doc/guix.texi:14825
 msgid "This is a symbol representing the name of the database to be cached.  Valid values are @code{passwd}, @code{group}, @code{hosts}, and @code{services}, which designate the corresponding NSS database (@pxref{NSS Basics,,, libc, The GNU C Library Reference Manual})."
-msgstr "Dies ist ein Symbol, was den Namen der Datenbank repräsentiert, die zwischengespeichert werden soll. Gültige Werte sind @code{passwd}, @code{group}, @code{hosts} und @code{services}, womit jeweils die entsprechende NSS-Datenbank bezeichnet wird (siehe @ref{NSS Basics,,, libc, The GNU C Library Reference Manual})."
+msgstr "Dies ist ein Symbol, was den Namen der Datenbank repräsentiert, die zwischengespeichert werden soll. Gültige Werte sind @code{passwd}, @code{group}, @code{hosts} und @code{services}, womit jeweils die entsprechende NSS-Datenbank bezeichnet wird (siehe @ref{NSS Basics,,, libc, Referenzhandbuch der GNU-C-Bibliothek})."
 
 #. type: code{#1}
-#: doc/guix.texi:12674
+#: doc/guix.texi:14826
 #, no-wrap
 msgid "positive-time-to-live"
 msgstr "positive-time-to-live"
 
 #. type: itemx
-#: doc/guix.texi:12675
+#: doc/guix.texi:14827
 #, no-wrap
 msgid "@code{negative-time-to-live} (default: @code{20})"
 msgstr "@code{negative-time-to-live} (Vorgabe: @code{20})"
 
 #. type: table
-#: doc/guix.texi:12678
+#: doc/guix.texi:14830
 msgid "A number representing the number of seconds during which a positive or negative lookup result remains in cache."
 msgstr "Eine Zahl, die für die Anzahl an Sekunden steht, die ein erfolgreiches (positives) oder erfolgloses (negatives) Nachschlageresultat im Zwischenspeicher verbleibt."
 
 #. type: item
-#: doc/guix.texi:12679
+#: doc/guix.texi:14831
 #, no-wrap
 msgid "@code{check-files?} (default: @code{#t})"
 msgstr "@code{check-files?} (Vorgabe: @code{#t})"
 
 #. type: table
-#: doc/guix.texi:12682
+#: doc/guix.texi:14834
 msgid "Whether to check for updates of the files corresponding to @var{database}."
 msgstr "Ob auf Änderungen an den der @var{database} entsprechenden Dateien reagiert werden soll."
 
 #. type: table
-#: doc/guix.texi:12686
+#: doc/guix.texi:14838
 msgid "For instance, when @var{database} is @code{hosts}, setting this flag instructs nscd to check for updates in @file{/etc/hosts} and to take them into account."
 msgstr "Wenn @var{database} zum Beispiel @code{hosts} ist, wird, wenn dieses Feld gesetzt ist, nscd Änderungen an @file{/etc/hosts} beobachten und berücksichtigen."
 
 #. type: item
-#: doc/guix.texi:12687
+#: doc/guix.texi:14839
 #, no-wrap
 msgid "@code{persistent?} (default: @code{#t})"
 msgstr "@code{persistent?} (Vorgabe: @code{#t})"
 
 #. type: table
-#: doc/guix.texi:12689
+#: doc/guix.texi:14841
 msgid "Whether the cache should be stored persistently on disk."
 msgstr "Ob der Zwischenspeicher dauerhaft auf der Platte gespeichert werden soll."
 
 #. type: item
-#: doc/guix.texi:12690
+#: doc/guix.texi:14842
 #, no-wrap
 msgid "@code{shared?} (default: @code{#t})"
 msgstr "@code{shared?} (Vorgabe: @code{#t})"
 
 #. type: table
-#: doc/guix.texi:12692
+#: doc/guix.texi:14844
 msgid "Whether the cache should be shared among users."
 msgstr "Ob der Zwischenspeicher zwischen den Nutzern geteilt werden soll."
 
 #. type: item
-#: doc/guix.texi:12693
+#: doc/guix.texi:14845
 #, no-wrap
 msgid "@code{max-database-size} (default: 32@tie{}MiB)"
 msgstr "@code{max-database-size} (Vorgabe: 32@tie{}MiB)"
 
 #. type: table
-#: doc/guix.texi:12695
+#: doc/guix.texi:14847
 msgid "Maximum size in bytes of the database cache."
 msgstr "Die Maximalgröße des Datenbank-Zwischenspeichers in Bytes."
 
 #. type: defvr
-#: doc/guix.texi:12702
+#: doc/guix.texi:14854
 #, no-wrap
 msgid "{Scheme Variable} %nscd-default-caches"
 msgstr "{Scheme-Variable} %nscd-default-caches"
 
 #. type: defvr
-#: doc/guix.texi:12705
+#: doc/guix.texi:14857
 msgid "List of @code{<nscd-cache>} objects used by default by @code{nscd-configuration} (see above)."
 msgstr "Liste von @code{<nscd-cache>}-Objekten, die von der vorgegebenen @code{nscd-configuration} benutzt werden (siehe oben)."
 
 #. type: defvr
-#: doc/guix.texi:12711
+#: doc/guix.texi:14863
 msgid "It enables persistent and aggressive caching of service and host name lookups.  The latter provides better host name lookup performance, resilience in the face of unreliable name servers, and also better privacy---often the result of host name lookups is in local cache, so external name servers do not even need to be queried."
 msgstr "Damit wird dauerhaftes und aggressives Zwischenspeichern beim Nachschlagen von Dienst- und Rechnernamen („Host“-Namen) aktiviert. Letzteres verbessert die Leistungsfähigkeit beim Nachschlagen von Rechnernamen, sorgt für mehr Widerstandsfähigkeit gegenüber unverlässlichen Namens-Servern und bietet außerdem einen besseren Datenschutz — oftmals befindet sich das Ergebnis einer Anfrage nach einem Rechnernamen bereits im lokalen Zwischenspeicher und externe Namens-Server müssen nicht miteinbezogen werden."
 
 #. type: anchor{#1}
-#: doc/guix.texi:12714
+#: doc/guix.texi:14866
 msgid "syslog-configuration-type"
 msgstr "syslog-configuration-type"
 
 #. type: cindex
-#: doc/guix.texi:12714 doc/guix.texi:12730
+#: doc/guix.texi:14866 doc/guix.texi:14882
 #, no-wrap
 msgid "syslog"
 msgstr "syslog"
 
 #. type: cindex
-#: doc/guix.texi:12715 doc/guix.texi:13209
+#: doc/guix.texi:14867 doc/guix.texi:15405
 #, no-wrap
 msgid "logging"
 msgstr "Protokollierung"
 
 #. type: deftp
-#: doc/guix.texi:12716
+#: doc/guix.texi:14868
 #, no-wrap
 msgid "{Data Type} syslog-configuration"
 msgstr "{Datentyp} syslog-configuration"
 
 #. type: deftp
-#: doc/guix.texi:12718
+#: doc/guix.texi:14870
 msgid "This data type represents the configuration of the syslog daemon."
 msgstr "Dieser Datentyp repräsentiert die Konfiguration des syslog-Daemons."
 
 #. type: item
-#: doc/guix.texi:12720
+#: doc/guix.texi:14872
 #, no-wrap
 msgid "@code{syslogd} (default: @code{#~(string-append #$inetutils \"/libexec/syslogd\")})"
 msgstr "@code{syslogd} (Vorgabe: @code{#~(string-append #$inetutils \"/libexec/syslogd\")})"
 
 #. type: table
-#: doc/guix.texi:12722
+#: doc/guix.texi:14874
 msgid "The syslog daemon to use."
 msgstr "Welcher Syslog-Daemon benutzt werden soll."
 
 #. type: item
-#: doc/guix.texi:12723
+#: doc/guix.texi:14875
 #, no-wrap
 msgid "@code{config-file} (default: @code{%default-syslog.conf})"
 msgstr "@code{config-file} (Vorgabe: @code{%default-syslog.conf})"
 
 #. type: table
-#: doc/guix.texi:12725
+#: doc/guix.texi:14877
 msgid "The syslog configuration file to use."
 msgstr "Die zu benutzende syslog-Konfigurationsdatei."
 
 #. type: anchor{#1}
-#: doc/guix.texi:12730
+#: doc/guix.texi:14882
 msgid "syslog-service"
 msgstr "syslog-service"
 
 #. type: deffn
-#: doc/guix.texi:12731
+#: doc/guix.texi:14883
 #, no-wrap
 msgid "{Scheme Procedure} syslog-service @var{config}"
 msgstr "{Scheme-Prozedur} syslog-service @var{Konfiguration}"
 
 #. type: deffn
-#: doc/guix.texi:12733
+#: doc/guix.texi:14885
 msgid "Return a service that runs a syslog daemon according to @var{config}."
 msgstr "Liefert einen Dienst, der einen syslog-Daemon entsprechend der @var{Konfiguration} ausführt."
 
 #. type: deffn
-#: doc/guix.texi:12736
+#: doc/guix.texi:14888
 msgid "@xref{syslogd invocation,,, inetutils, GNU Inetutils}, for more information on the configuration file syntax."
 msgstr "Siehe @ref{syslogd invocation,,, inetutils, GNU Inetutils} für weitere Informationen über die Syntax der Konfiguration."
 
 #. type: defvr
-#: doc/guix.texi:12738
+#: doc/guix.texi:14890
 #, no-wrap
 msgid "{Scheme Variable} guix-service-type"
 msgstr "{Scheme-Variable} guix-service-type"
 
 #. type: defvr
-#: doc/guix.texi:12742
+#: doc/guix.texi:14894
 msgid "This is the type of the service that runs the build daemon, @command{guix-daemon} (@pxref{Invoking guix-daemon}).  Its value must be a @code{guix-configuration} record as described below."
 msgstr "Dies ist der Typ für den Dienst, der den Erstellungs-Daemon @command{guix-daemon} ausführt (siehe @ref{Invoking guix-daemon}). Als Wert muss ein @code{guix-configuration}-Verbundsobjekt verwendet werden, wie unten beschrieben."
 
 #. type: anchor{#1}
-#: doc/guix.texi:12745
+#: doc/guix.texi:14897
 msgid "guix-configuration-type"
 msgstr "guix-configuration-type"
 
 #. type: deftp
-#: doc/guix.texi:12745
+#: doc/guix.texi:14897
 #, no-wrap
 msgid "{Data Type} guix-configuration"
 msgstr "{Datentyp} guix-configuration"
 
 #. type: deftp
-#: doc/guix.texi:12748
+#: doc/guix.texi:14900
 msgid "This data type represents the configuration of the Guix build daemon.  @xref{Invoking guix-daemon}, for more information."
 msgstr "Dieser Datentyp repräsentiert die Konfiguration des Erstellungs-Daemons von Guix. Siehe @ref{Invoking guix-daemon} für weitere Informationen."
 
 #. type: item
-#: doc/guix.texi:12750
+#: doc/guix.texi:14902
 #, no-wrap
 msgid "@code{guix} (default: @var{guix})"
 msgstr "@code{guix} (Vorgabe: @var{guix})"
 
 #. type: table
-#: doc/guix.texi:12752 doc/guix.texi:12986
+#: doc/guix.texi:14904 doc/guix.texi:15174
 msgid "The Guix package to use."
 msgstr "Das zu verwendende Guix-Paket."
 
 #. type: item
-#: doc/guix.texi:12753
+#: doc/guix.texi:14905
 #, no-wrap
 msgid "@code{build-group} (default: @code{\"guixbuild\"})"
 msgstr "@code{build-group} (Vorgabe: @code{\"guixbuild\"})"
 
 #. type: table
-#: doc/guix.texi:12755
+#: doc/guix.texi:14907
 msgid "Name of the group for build user accounts."
 msgstr "Der Name der Gruppe, zu der die Erstellungs-Benutzerkonten gehören."
 
 #. type: item
-#: doc/guix.texi:12756
+#: doc/guix.texi:14908
 #, no-wrap
 msgid "@code{build-accounts} (default: @code{10})"
 msgstr "@code{build-accounts} (Vorgabe: @code{10})"
 
 #. type: table
-#: doc/guix.texi:12758
+#: doc/guix.texi:14910
 msgid "Number of build user accounts to create."
 msgstr "Die Anzahl zu erzeugender Erstellungs-Benutzerkonten."
 
 #. type: item
-#: doc/guix.texi:12759
+#: doc/guix.texi:14911
 #, no-wrap
 msgid "@code{authorize-key?} (default: @code{#t})"
 msgstr "@code{authorize-key?} (Vorgabe: @code{#t})"
 
 #. type: table
-#: doc/guix.texi:12764
+#: doc/guix.texi:14916
 msgid "Whether to authorize the substitute keys listed in @code{authorized-keys}---by default that of @code{@value{SUBSTITUTE-SERVER}} (@pxref{Substitutes})."
 msgstr "Ob die unter @code{authorized-keys} aufgelisteten Substitutschlüssel autorisiert werden sollen — vorgegeben ist, den von @code{@value{SUBSTITUTE-SERVER}} zu autorisieren (siehe @ref{Substitutes})."
 
+#. type: table
+#: doc/guix.texi:14922
+msgid "When @code{authorize-key?} is true, @file{/etc/guix/acl} cannot be changed by invoking @command{guix archive --authorize}.  You must instead adjust @code{guix-configuration} as you wish and reconfigure the system.  This ensures that your operating system configuration file is self-contained."
+msgstr "Wenn @code{authorize-key?} wahr ist, kann @file{/etc/guix/acl} durch einen Aufruf von @command{guix archive --authorize} @emph{nicht} verändert werden. Sie müssen stattdessen die @code{guix-configuration} wie gewünscht anpassen und das System rekonfigurieren. Dadurch wird sichergestellt, dass die Betriebssystemkonfigurationsdatei eigenständig ist."
+
+#. type: quotation
+#: doc/guix.texi:14929
+msgid "When booting or reconfiguring to a system where @code{authorize-key?} is true, the existing @file{/etc/guix/acl} file is backed up as @file{/etc/guix/acl.bak} if it was determined to be a manually modified file.  This is to facilitate migration from earlier versions, which allowed for in-place modifications to @file{/etc/guix/acl}."
+msgstr "Wenn Sie ein System mit auf wahr gesetztem @code{authorize-key?} starten oder dahin rekonfigurieren, wird eine Sicherungskopie der bestehenden @file{/etc/guix/acl} als @file{/etc/guix/acl.bak} angelegt, wenn festgestellt wurde, dass jemand die Datei von Hand verändert hatte. Das passiert, um die Migration von früheren Versionen zu erleichtern, als eine direkte Modifikation der Datei @file{/etc/guix/acl}, „in place“, noch möglich war."
+
 #. type: vindex
-#: doc/guix.texi:12765
+#: doc/guix.texi:14931
 #, no-wrap
 msgid "%default-authorized-guix-keys"
 msgstr "%default-authorized-guix-keys"
 
 #. type: item
-#: doc/guix.texi:12766
+#: doc/guix.texi:14932
 #, no-wrap
 msgid "@code{authorized-keys} (default: @code{%default-authorized-guix-keys})"
 msgstr "@code{authorized-keys} (Vorgabe: @code{%default-authorized-guix-keys})"
 
 #. type: table
-#: doc/guix.texi:12770
-msgid "The list of authorized key files for archive imports, as a list of string-valued gexps (@pxref{Invoking guix archive}).  By default, it contains that of @code{@value{SUBSTITUTE-SERVER}} (@pxref{Substitutes})."
-msgstr "Die Liste der Dateien mit autorisierten Schlüsseln, d.h.@: eine Liste von Zeichenketten als G-Ausdrücke (siehe @ref{Invoking guix archive}). Der vorgegebene Inhalt ist der Schlüssel von @code{@value{SUBSTITUTE-SERVER}} (siehe @ref{Substitutes})."
+#: doc/guix.texi:14937
+msgid "The list of authorized key files for archive imports, as a list of string-valued gexps (@pxref{Invoking guix archive}).  By default, it contains that of @code{@value{SUBSTITUTE-SERVER}} (@pxref{Substitutes}).  See @code{substitute-urls} below for an example on how to change it."
+msgstr "Die Liste der Dateien mit autorisierten Schlüsseln, d.h.@: eine Liste von Zeichenketten als G-Ausdrücke (siehe @ref{Invoking guix archive}). Der vorgegebene Inhalt ist der Schlüssel von @code{@value{SUBSTITUTE-SERVER}} (siehe @ref{Substitutes}). Siehe im Folgenden @code{substitute-urls} für ein Beispiel, wie Sie sie ändern können."
 
 #. type: item
-#: doc/guix.texi:12771
+#: doc/guix.texi:14938
 #, no-wrap
 msgid "@code{use-substitutes?} (default: @code{#t})"
 msgstr "@code{use-substitutes?} (Vorgabe: @code{#t})"
 
 #. type: table
-#: doc/guix.texi:12773
+#: doc/guix.texi:14940
 msgid "Whether to use substitutes."
 msgstr "Ob Substitute benutzt werden sollen."
 
 #. type: item
-#: doc/guix.texi:12774
+#: doc/guix.texi:14941
 #, no-wrap
 msgid "@code{substitute-urls} (default: @code{%default-substitute-urls})"
 msgstr "@code{substitute-urls} (Vorgabe: @code{%default-substitute-urls})"
 
 #. type: table
-#: doc/guix.texi:12776
+#: doc/guix.texi:14943
 msgid "The list of URLs where to look for substitutes by default."
 msgstr "Die Liste der URLs, auf denen nach Substituten gesucht wird, wenn nicht anders angegeben."
 
+#. type: table
+#: doc/guix.texi:14950
+msgid "Suppose you would like to fetch substitutes from @code{guix.example.org} in addition to @code{@value{SUBSTITUTE-SERVER}}.  You will need to do two things: (1) add @code{guix.example.org} to @code{substitute-urls}, and (2) authorize its signing key, having done appropriate checks (@pxref{Substitute Server Authorization}).  The configuration below does exactly that:"
+msgstr "Wenn Sie zum Beispiel gerne Substitute von @code{guix.example.org} zusätzlich zu @code{@value{SUBSTITUTE-SERVER}} laden würden, müssen Sie zwei Dinge tun: Erstens @code{guix.example.org} zu den @code{substitute-urls} hinzufügen und zweitens dessen Signierschlüssel autorisieren, nachdem Sie ihn hinreichend geprüft haben (siehe @ref{Substitute Server Authorization}). Mit der Konfiguration unten wird das erledigt:"
+
+#. type: lisp
+#: doc/guix.texi:14959
+#, no-wrap
+msgid ""
+"(guix-configuration\n"
+"  (substitute-urls\n"
+"   (append (list \"https://guix.example.org\")\n"
+"           %default-substitute-urls))\n"
+"  (authorized-keys\n"
+"   (append (list (local-file \"./guix.example.org-key.pub\"))\n"
+"           %default-authorized-guix-keys)))\n"
+msgstr ""
+"(guix-configuration\n"
+"  (substitute-urls\n"
+"   (append (list \"https://guix.example.org\")\n"
+"           %default-substitute-urls))\n"
+"  (authorized-keys\n"
+"   (append (list (local-file \"./guix.example.org-key.pub\"))\n"
+"           %default-authorized-guix-keys)))\n"
+
+#. type: table
+#: doc/guix.texi:14964
+msgid "This example assumes that the file @file{./guix.example.org-key.pub} contains the public key that @code{guix.example.org} uses to sign substitutes."
+msgstr "In diesem Beispiel wird angenommen, dass die Datei @file{./guix.example.org-key.pub} den öffentlichen Schlüssel enthält, mit dem auf @code{guix.example.org} Substitute signiert werden."
+
 #. type: item
-#: doc/guix.texi:12777
+#: doc/guix.texi:14965
 #, no-wrap
 msgid "@code{max-silent-time} (default: @code{0})"
 msgstr "@code{max-silent-time} (Vorgabe: @code{0})"
 
 #. type: itemx
-#: doc/guix.texi:12778
+#: doc/guix.texi:14966
 #, no-wrap
 msgid "@code{timeout} (default: @code{0})"
 msgstr "@code{timeout} (Vorgabe: @code{0})"
 
 #. type: table
-#: doc/guix.texi:12782
+#: doc/guix.texi:14970
 msgid "The number of seconds of silence and the number of seconds of activity, respectively, after which a build process times out.  A value of zero disables the timeout."
 msgstr "Die Anzahl an Sekunden, die jeweils nichts in die Ausgabe geschrieben werden darf bzw. die es insgesamt dauern darf, bis ein Erstellungsprozess abgebrochen wird. Beim Wert null wird nie abgebrochen."
 
 #. type: item
-#: doc/guix.texi:12783
+#: doc/guix.texi:14971
 #, no-wrap
 msgid "@code{log-compression} (default: @code{'bzip2})"
 msgstr "@code{log-compression} (Vorgabe: @code{'bzip2})"
 
 #. type: table
-#: doc/guix.texi:12786
+#: doc/guix.texi:14974
 msgid "The type of compression used for build logs---one of @code{gzip}, @code{bzip2}, or @code{none}."
 msgstr "Die für Erstellungsprotokolle zu benutzende Kompressionsmethode — entweder @code{gzip}, @code{bzip2} oder @code{none}."
 
 #. type: table
-#: doc/guix.texi:12789
+#: doc/guix.texi:14977
 msgid "List of extra command-line options for @command{guix-daemon}."
 msgstr "Eine Liste zusätzlicher Befehlszeilenoptionen zu @command{guix-daemon}."
 
 #. type: item
-#: doc/guix.texi:12790
+#: doc/guix.texi:14978
 #, no-wrap
 msgid "@code{log-file} (default: @code{\"/var/log/guix-daemon.log\"})"
 msgstr "@code{log-file} (Vorgabe: @code{\"/var/log/guix-daemon.log\"})"
 
 #. type: table
-#: doc/guix.texi:12793
+#: doc/guix.texi:14981
 msgid "File where @command{guix-daemon}'s standard output and standard error are written."
 msgstr "Die Datei, in die die Standardausgabe und die Standardfehlerausgabe von @command{guix-daemon} geschrieben werden."
 
 #. type: cindex
-#: doc/guix.texi:12794
+#: doc/guix.texi:14982
 #, no-wrap
 msgid "HTTP proxy, for @code{guix-daemon}"
 msgstr "HTTP-Proxy, für @code{guix-daemon}"
 
 #. type: cindex
-#: doc/guix.texi:12795
+#: doc/guix.texi:14983
 #, no-wrap
 msgid "proxy, for @code{guix-daemon} HTTP access"
 msgstr "Proxy, für HTTP-Zugriffe durch @code{guix-daemon}"
 
 #. type: item
-#: doc/guix.texi:12796
+#: doc/guix.texi:14984
 #, no-wrap
 msgid "@code{http-proxy} (default: @code{#f})"
 msgstr "@code{http-proxy} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:12799
+#: doc/guix.texi:14987
 msgid "The URL of the HTTP and HTTPS proxy used for downloading fixed-output derivations and substitutes."
 msgstr "Die URL des für das Herunterladen von Ableitungen mit fester Ausgabe und von Substituten zu verwendenden HTTP- und HTTPS-Proxys."
 
 #. type: table
-#: doc/guix.texi:12802
+#: doc/guix.texi:14990
 msgid "It is also possible to change the daemon's proxy at run time through the @code{set-http-proxy} action, which restarts it:"
 msgstr "Sie können den für den Daemon benutzten Proxy auch zur Laufzeit ändern, indem Sie die @code{set-http-proxy}-Aktion aufrufen, wodurch er neu gestartet wird."
 
 #. type: example
-#: doc/guix.texi:12805
+#: doc/guix.texi:14993
 #, no-wrap
 msgid "herd set-http-proxy guix-daemon http://localhost:8118\n"
 msgstr "herd set-http-proxy guix-daemon http://localhost:8118\n"
 
 #. type: table
-#: doc/guix.texi:12808
+#: doc/guix.texi:14996
 msgid "To clear the proxy settings, run:"
 msgstr "Um die Proxy-Einstellungen zu löschen, führen Sie dies aus:"
 
 #. type: example
-#: doc/guix.texi:12811
+#: doc/guix.texi:14999
 #, no-wrap
 msgid "herd set-http-proxy guix-daemon\n"
 msgstr "herd set-http-proxy guix-daemon\n"
 
 #. type: item
-#: doc/guix.texi:12813
+#: doc/guix.texi:15001
 #, no-wrap
 msgid "@code{tmpdir} (default: @code{#f})"
 msgstr "@code{tmpdir} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:12815
+#: doc/guix.texi:15003
 msgid "A directory path where the @command{guix-daemon} will perform builds."
 msgstr "Ein Verzeichnispfad, der angibt, wo @command{guix-daemon} seine Erstellungen durchführt."
 
 #. type: deffn
-#: doc/guix.texi:12819
+#: doc/guix.texi:15007
 #, no-wrap
 msgid "{Scheme Procedure} udev-service [#:udev @var{eudev} #:rules @code{'()}]"
 msgstr "{Scheme-Prozedur} udev-service [#:udev @var{eudev} #:rules @code{'()}]"
 
 #. type: deffn
-#: doc/guix.texi:12824
-msgid "Run @var{udev}, which populates the @file{/dev} directory dynamically.  udev rules can be provided as a list of files through the @var{rules} variable.  The procedures @code{udev-rule} and @code{file->udev-rule} from @code{(gnu services base)} simplify the creation of such rule files."
-msgstr "Führt @var{udev} aus, was zur Laufzeit Gerätedateien ins Verzeichnis @file{/dev} einfügt. udev-Regeln können über die @var{rules}-Variable als eine Liste von Dateien übergeben werden. Die Prozeduren @code{udev-rule} und @code{file->udev-rule} aus @code{(gnu services base)} vereinfachen die Erstellung einer solchen Regeldatei."
+#: doc/guix.texi:15013
+msgid "Run @var{udev}, which populates the @file{/dev} directory dynamically.  udev rules can be provided as a list of files through the @var{rules} variable.  The procedures @code{udev-rule}, @code{udev-rules-service} and @code{file->udev-rule} from @code{(gnu services base)} simplify the creation of such rule files."
+msgstr "Führt @var{udev} aus, was zur Laufzeit Gerätedateien ins Verzeichnis @file{/dev} einfügt. udev-Regeln können über die @var{rules}-Variable als eine Liste von Dateien übergeben werden. Die Prozeduren @code{udev-rule}, @code{udev-rules-service} und @code{file->udev-rule} aus @code{(gnu services base)} vereinfachen die Erstellung einer solchen Regeldatei."
+
+#. type: deffn
+#: doc/guix.texi:15016
+msgid "The @command{herd rules udev} command, as root, returns the name of the directory containing all the active udev rules."
+msgstr "Der Befehl @command{herd rules udev} liefert, wenn er als Administratornutzer „root“ ausgeführt wird, Namen und Verzeichnis von allen aktiven udev-Regeln."
 
 #. type: deffn
-#: doc/guix.texi:12826
+#: doc/guix.texi:15018
 #, no-wrap
 msgid "{Scheme Procedure} udev-rule [@var{file-name} @var{contents}]"
 msgstr "{Scheme-Prozedur} udev-rule [@var{Dateiname} @var{Inhalt}]"
 
 #. type: deffn
-#: doc/guix.texi:12829
+#: doc/guix.texi:15021
 msgid "Return a udev-rule file named @var{file-name} containing the rules defined by the @var{contents} literal."
 msgstr "Liefert eine udev-Regeldatei mit dem angegebenen @var{Dateiname}n, in der die vom Literal @var{Inhalt} definierten Regeln stehen."
 
 #. type: deffn
-#: doc/guix.texi:12833
+#: doc/guix.texi:15025
 msgid "In the following example, a rule for a USB device is defined to be stored in the file @file{90-usb-thing.rules}.  The rule runs a script upon detecting a USB device with a given product identifier."
 msgstr "Im folgenden Beispiel wird eine Regel für ein USB-Gerät definiert und in der Datei @file{90-usb-ding.rules} gespeichert. Mit der Regel wird ein Skript ausgeführt, sobald ein USB-Gerät mit der angegebenen Produktkennung erkannt wird."
 
 #. type: lisp
-#: doc/guix.texi:12841
+#: doc/guix.texi:15033
 #, no-wrap
 msgid ""
 "(define %example-udev-rule\n"
@@ -23469,55 +27098,55 @@ msgstr ""
 "                   \"RUN+=\\\"/pfad/zum/skript\\\"\")))\n"
 
 #. type: deffn
-#: doc/guix.texi:12845
-msgid "The @command{herd rules udev} command, as root, returns the name of the directory containing all the active udev rules."
-msgstr "Der Befehl @command{herd rules udev} liefert, wenn er als Administratornutzer „root“ ausgeführt wird, Namen und Verzeichnis von allen aktiven udev-Regeln."
+#: doc/guix.texi:15036
+#, no-wrap
+msgid "{Scheme Procedure} udev-rules-service [@var{name} @var{rules}] @"
+msgstr "{Scheme-Prozedur} udev-rules-service [@var{Name} @var{Regeln}] @"
 
-#. type: Plain text
-#: doc/guix.texi:12848
-msgid "Here we show how the default @var{udev-service} can be extended with it."
-msgstr "Hier zeigen wir, wie man den vorgegebenen @var{udev-service} um sie erweitern kann."
+#. type: deffn
+#: doc/guix.texi:15043
+msgid "[#:groups @var{groups}] Return a service that extends @code{udev-service-type } with @var{rules} and @code{account-service-type} with @var{groups} as system groups.  This works by creating a singleton service type @code{@var{name}-udev-rules}, of which the returned service is an instance."
+msgstr "[#:groups @var{Gruppen}] Liefert einen Dienst, der den Dienst vom Typ @code{udev-service-type} um die @var{Regeln} erweitert und den Dienst vom Typ @code{account-service-type} um die @var{Gruppen} in Form von Systembenutzergruppen. Dazu wird ein Diensttyp @code{@var{name}-udev-rules} für den einmaligen Gebrauch erzeugt, den der zurückgelieferte Dienst instanziiert."
+
+#. type: deffn
+#: doc/guix.texi:15046
+msgid "Here we show how it can be used to extend @code{udev-service-type} with the previously defined rule @code{%example-udev-rule}."
+msgstr "Hier zeigen wir, wie damit @code{udev-service-type} um die vorher definierte Regel @code{%example-udev-rule} erweitert werden kann."
 
 #. type: lisp
-#: doc/guix.texi:12858
+#: doc/guix.texi:15053
 #, no-wrap
 msgid ""
 "(operating-system\n"
 " ;; @dots{}\n"
 " (services\n"
-" (modify-services %desktop-services\n"
-"   (udev-service-type config =>\n"
-"     (udev-configuration (inherit config)\n"
-"      (rules (append (udev-configuration-rules config)\n"
-"                     (list %example-udev-rule))))))))\n"
+"   (cons (udev-rules-service 'usb-thing %example-udev-rule)\n"
+"         %desktop-services)))\n"
 msgstr ""
 "(operating-system\n"
 " ;; …\n"
 " (services\n"
-" (modify-services %desktop-services\n"
-"   (udev-service-type config =>\n"
-"     (udev-configuration (inherit config)\n"
-"      (rules (append (udev-configuration-rules config)\n"
-"                     (list %beispiel-udev-rule))))))))\n"
+"   (cons (udev-rules-service 'usb-ding %example-udev-rule)\n"
+"         %desktop-services)))\n"
 
 #. type: deffn
-#: doc/guix.texi:12860
+#: doc/guix.texi:15056
 #, no-wrap
 msgid "{Scheme Procedure} file->udev-rule [@var{file-name} @var{file}]"
 msgstr "{Scheme-Prozedur} file->udev-rule [@var{Dateiname} @var{Datei}]"
 
 #. type: deffn
-#: doc/guix.texi:12863
+#: doc/guix.texi:15059
 msgid "Return a udev file named @var{file-name} containing the rules defined within @var{file}, a file-like object."
 msgstr "Liefert eine udev-Datei mit dem angegebenen @var{Dateiname}n, in der alle in der @var{Datei}, einem dateiartigen Objekt, definierten Regeln stehen."
 
 #. type: deffn
-#: doc/guix.texi:12865
+#: doc/guix.texi:15061
 msgid "The following example showcases how we can use an existing rule file."
 msgstr "Folgendes Beispiel stellt dar, wie wir eine bestehende Regeldatei verwenden können."
 
 #. type: lisp
-#: doc/guix.texi:12870
+#: doc/guix.texi:15066
 #, no-wrap
 msgid ""
 "(use-modules (guix download)     ;for url-fetch\n"
@@ -23531,7 +27160,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:12881
+#: doc/guix.texi:15077
 #, no-wrap
 msgid ""
 "(define %android-udev-rules\n"
@@ -23557,17 +27186,17 @@ msgstr ""
 "        (base32 \"0lmmagpyb6xsq6zcr2w1cyx9qmjqmajkvrdbhjx32gqf1d9is003\"))))))\n"
 
 #. type: Plain text
-#: doc/guix.texi:12890
+#: doc/guix.texi:15086
 msgid "Additionally, Guix package definitions can be included in @var{rules} in order to extend the udev rules with the definitions found under their @file{lib/udev/rules.d} sub-directory.  In lieu of the previous @var{file->udev-rule} example, we could have used the @var{android-udev-rules} package which exists in Guix in the @code{(gnu packages android)} module."
 msgstr "Zusätzlich können Guix-Paketdefinitionen unter den @var{rules} aufgeführt werden, um die udev-Regeln um diejenigen Definitionen zu ergänzen, die im Unterverzeichnis @file{lib/udev/rules.d} des jeweiligen Pakets aufgeführt sind. Statt des bisherigen Beispiels zu @var{file->udev-rule} hätten wir also auch das Paket @var{android-udev-rules} benutzen können, das in Guix im Modul @code{(gnu packages android)} vorhanden ist."
 
 #. type: Plain text
-#: doc/guix.texi:12899
-msgid "The following example shows how to use the @var{android-udev-rules} package so that the Android tool @command{adb} can detect devices without root privileges.  It also details how to create the @code{adbusers} group, which is required for the proper functioning of the rules defined within the @var{android-udev-rules} package.  To create such a group, we must define it both as part of the @var{supplementary-groups} of our @var{user-account} declaration, as well as in the @var{groups} field of the @var{operating-system} record."
-msgstr "Das folgende Beispiel zeit, wie dieses Paket @var{android-udev-rules} benutzt werden kann, damit das „Android-Tool“ @command{adb} Geräte erkennen kann, ohne dafür Administratorrechte vorauszusetzen. Man sieht hier auch, wie die Benutzergruppe @code{adbusers} erstellt werden kann, die existieren muss, damit die im Paket @var{android-udev-rules} definierten Regeln richtig funktionieren. Um so eine Benutzergruppe zu erzeugen, müssen wir sie sowohl unter den @var{supplementary-groups} unserer @var{user-account}-Deklaration aufführen, als auch sie im @var{groups}-Feld des @var{operating-system}-Verbundsobjekts aufführen."
+#: doc/guix.texi:15095
+msgid "The following example shows how to use the @var{android-udev-rules} package so that the Android tool @command{adb} can detect devices without root privileges.  It also details how to create the @code{adbusers} group, which is required for the proper functioning of the rules defined within the @code{android-udev-rules} package.  To create such a group, we must define it both as part of the @code{supplementary-groups} of our @code{user-account} declaration, as well as in the @var{groups} of the @code{udev-rules-service} procedure."
+msgstr "Das folgende Beispiel zeit, wie dieses Paket @code{android-udev-rules} benutzt werden kann, damit das „Android-Tool“ @command{adb} Geräte erkennen kann, ohne dafür Administratorrechte vorauszusetzen. Man sieht hier auch, wie die Benutzergruppe @code{adbusers} erstellt werden kann, die existieren muss, damit die im Paket @code{android-udev-rules} definierten Regeln richtig funktionieren. Um so eine Benutzergruppe zu erzeugen, müssen wir sie sowohl unter den @code{supplementary-groups} unserer @code{user-account}-Deklaration aufführen, als auch sie im @code{groups}-Feld des @code{operating-system}-Verbundsobjekts aufführen."
 
 #. type: lisp
-#: doc/guix.texi:12904
+#: doc/guix.texi:15100
 #, no-wrap
 msgid ""
 "(use-modules (gnu packages android)  ;for android-udev-rules\n"
@@ -23581,7 +27210,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:12912
+#: doc/guix.texi:15113
 #, no-wrap
 msgid ""
 "(operating-system\n"
@@ -23591,7 +27220,11 @@ msgid ""
 "                (supplementary-groups\n"
 "                 '(\"adbusers\"   ;for adb\n"
 "                   \"wheel\" \"netdev\" \"audio\" \"video\")))))\n"
-"\n"
+"  ;; @dots{}\n"
+"  (services\n"
+"    (cons (udev-rules-service 'android android-udev-rules\n"
+"                              #:groups '(\"adbusers\"))\n"
+"          %desktop-services)))\n"
 msgstr ""
 "(operating-system\n"
 "  ;; …\n"
@@ -23600,333 +27233,306 @@ msgstr ""
 "                (supplementary-groups\n"
 "                 '(\"adbusers\"   ;für adb\n"
 "                   \"wheel\" \"netdev\" \"audio\" \"video\")))))\n"
-"\n"
-
-#. type: lisp
-#: doc/guix.texi:12915
-#, no-wrap
-msgid ""
-"  (groups (cons (user-group (system? #t) (name \"adbusers\"))\n"
-"                %base-groups))\n"
-"\n"
-msgstr ""
-"  (groups (cons (user-group (system? #t) (name \"adbusers\"))\n"
-"                %base-groups))\n"
-"\n"
-
-#. type: lisp
-#: doc/guix.texi:12917
-#, no-wrap
-msgid ""
-"  ;; @dots{}\n"
-"\n"
-msgstr ""
 "  ;; …\n"
-"\n"
-
-#. type: lisp
-#: doc/guix.texi:12925
-#, no-wrap
-msgid ""
-"  (services\n"
-"   (modify-services %desktop-services\n"
-"     (udev-service-type\n"
-"      config =>\n"
-"      (udev-configuration (inherit config)\n"
-"                          (rules (cons android-udev-rules\n"
-"                                       (udev-configuration-rules config))))))))\n"
-msgstr ""
 "  (services\n"
-"   (modify-services %desktop-services\n"
-"     (udev-service-type\n"
-"      config =>\n"
-"      (udev-configuration (inherit config)\n"
-"                          (rules (cons android-udev-rules\n"
-"                                       (udev-configuration-rules config))))))))\n"
+"    (cons (udev-rules-service 'android android-udev-rules\n"
+"                              #:groups '(\"adbusers\"))\n"
+"          %desktop-services)))\n"
 
 #. type: defvr
-#: doc/guix.texi:12927
+#: doc/guix.texi:15115
 #, no-wrap
 msgid "{Scheme Variable} urandom-seed-service-type"
 msgstr "{Scheme-Variable} urandom-seed-service-type"
 
 #. type: defvr
-#: doc/guix.texi:12932
-msgid "Save some entropy in @var{%random-seed-file} to seed @file{/dev/urandom} when rebooting.  It also tries to seed @file{/dev/urandom} from @file{/dev/hwrng} while booting, if @file{/dev/hwrng} exists and is readable."
-msgstr "Etwas Entropie in der Datei @var{%random-seed-file} aufsparen, die als Startwert (als sogenannter „Seed“) für @file{/dev/urandom} dienen kann, nachdem das System neu gestartet wurde. Es wird auch versucht, @file{/dev/urandom} beim Hochfahren mit Werten aus @file{/dev/hwrng} zu starten, falls @file{/dev/hwrng} existiert und lesbar ist."
+#: doc/guix.texi:15120
+msgid "Save some entropy in @code{%random-seed-file} to seed @file{/dev/urandom} when rebooting.  It also tries to seed @file{/dev/urandom} from @file{/dev/hwrng} while booting, if @file{/dev/hwrng} exists and is readable."
+msgstr "Etwas Entropie in der Datei @code{%random-seed-file} aufsparen, die als Startwert (als sogenannter „Seed“) für @file{/dev/urandom} dienen kann, nachdem das System neu gestartet wurde. Es wird auch versucht, @file{/dev/urandom} beim Hochfahren mit Werten aus @file{/dev/hwrng} zu starten, falls @file{/dev/hwrng} existiert und lesbar ist."
 
 #. type: defvr
-#: doc/guix.texi:12934
+#: doc/guix.texi:15122
 #, no-wrap
 msgid "{Scheme Variable} %random-seed-file"
 msgstr "{Scheme-Variable} %random-seed-file"
 
 #. type: defvr
-#: doc/guix.texi:12938
+#: doc/guix.texi:15126
 msgid "This is the name of the file where some random bytes are saved by @var{urandom-seed-service} to seed @file{/dev/urandom} when rebooting.  It defaults to @file{/var/lib/random-seed}."
 msgstr "Der Name der Datei, in der einige zufällige Bytes vom @var{urandom-seed-service} abgespeichert werden, um sie nach einem Neustart von dort als Startwert für @file{/dev/urandom} auslesen zu können. Als Vorgabe wird @file{/var/lib/random-seed} verwendet."
 
 #. type: cindex
-#: doc/guix.texi:12940
+#: doc/guix.texi:15128
 #, no-wrap
 msgid "mouse"
 msgstr "Maus"
 
 #. type: cindex
-#: doc/guix.texi:12941
+#: doc/guix.texi:15129
 #, no-wrap
 msgid "gpm"
 msgstr "gpm"
 
 #. type: defvr
-#: doc/guix.texi:12942
+#: doc/guix.texi:15130
 #, no-wrap
 msgid "{Scheme Variable} gpm-service-type"
 msgstr "{Scheme-Variable} gpm-service-type"
 
 #. type: defvr
-#: doc/guix.texi:12947
+#: doc/guix.texi:15135
 msgid "This is the type of the service that runs GPM, the @dfn{general-purpose mouse daemon}, which provides mouse support to the Linux console.  GPM allows users to use the mouse in the console, notably to select, copy, and paste text."
 msgstr "Dieser Typ wird für den Dienst verwendet, der GPM ausführt, den @dfn{General-Purpose Mouse Daemon}, welcher zur Linux-Konsole Mausunterstützung hinzufügt. GPM ermöglicht es seinen Benutzern, auch in der Konsole die Maus zu benutzen und damit etwa Text auszuwählen, zu kopieren und einzufügen."
 
 #. type: defvr
-#: doc/guix.texi:12950
+#: doc/guix.texi:15138
 msgid "The value for services of this type must be a @code{gpm-configuration} (see below).  This service is not part of @code{%base-services}."
 msgstr "Der Wert für Dienste dieses Typs muss eine @code{gpm-configuration} sein (siehe unten). Dieser Dienst gehört @emph{nicht} zu den @code{%base-services}."
 
 #. type: deftp
-#: doc/guix.texi:12952
+#: doc/guix.texi:15140
 #, no-wrap
 msgid "{Data Type} gpm-configuration"
 msgstr "{Datentyp} gpm-configuration"
 
 #. type: deftp
-#: doc/guix.texi:12954
+#: doc/guix.texi:15142
 msgid "Data type representing the configuration of GPM."
 msgstr "Repräsentiert die Konfiguration von GPM."
 
 #. type: item
-#: doc/guix.texi:12956
+#: doc/guix.texi:15144
 #, no-wrap
 msgid "@code{options} (default: @code{%default-gpm-options})"
 msgstr "@code{options} (Vorgabe: @code{%default-gpm-options})"
 
 #. type: table
-#: doc/guix.texi:12961
+#: doc/guix.texi:15149
 msgid "Command-line options passed to @command{gpm}.  The default set of options instruct @command{gpm} to listen to mouse events on @file{/dev/input/mice}.  @xref{Command Line,,, gpm, gpm manual}, for more information."
 msgstr "Befehlszeilenoptionen, die an @command{gpm} übergeben werden. Die vorgegebenen Optionen weisen @command{gpm} an, auf Maus-Ereignisse auf der Datei @file{/dev/input/mice} zu lauschen. Siehe @ref{Command Line,,, gpm, gpm manual} für weitere Informationen."
 
 #. type: item
-#: doc/guix.texi:12962
+#: doc/guix.texi:15150
 #, no-wrap
 msgid "@code{gpm} (default: @code{gpm})"
 msgstr "@code{gpm} (Vorgabe: @code{gpm})"
 
 #. type: table
-#: doc/guix.texi:12964
+#: doc/guix.texi:15152
 msgid "The GPM package to use."
 msgstr "Das GPM-Paket, was benutzt werden soll."
 
 #. type: anchor{#1}
-#: doc/guix.texi:12969
+#: doc/guix.texi:15157
 msgid "guix-publish-service-type"
 msgstr "guix-publish-service-type"
 
 #. type: deffn
-#: doc/guix.texi:12969
+#: doc/guix.texi:15157
 #, no-wrap
 msgid "{Scheme Variable} guix-publish-service-type"
 msgstr "{Scheme-Variable} guix-publish-service-type"
 
 #. type: deffn
-#: doc/guix.texi:12973
+#: doc/guix.texi:15161
 msgid "This is the service type for @command{guix publish} (@pxref{Invoking guix publish}).  Its value must be a @code{guix-publish-configuration} object, as described below."
 msgstr "Dies ist der Diensttyp für @command{guix publish} (siehe @ref{Invoking guix publish}). Sein Wert muss ein @code{guix-publish-configuration}-Objekt sein, wie im Folgenden beschrieben."
 
 #. type: deffn
-#: doc/guix.texi:12977
+#: doc/guix.texi:15165
 msgid "This assumes that @file{/etc/guix} already contains a signing key pair as created by @command{guix archive --generate-key} (@pxref{Invoking guix archive}).  If that is not the case, the service will fail to start."
 msgstr "Hierbei wird angenommen, dass @file{/etc/guix} bereits ein mit @command{guix archive --generate-key} erzeugtes Schlüsselpaar zum Signieren enthält (siehe @ref{Invoking guix archive}). Falls nicht, wird der Dienst beim Starten fehlschlagen."
 
 #. type: deftp
-#: doc/guix.texi:12979
+#: doc/guix.texi:15167
 #, no-wrap
 msgid "{Data Type} guix-publish-configuration"
 msgstr "{Datentyp} guix-publish-configuration"
 
 #. type: deftp
-#: doc/guix.texi:12982
+#: doc/guix.texi:15170
 msgid "Data type representing the configuration of the @code{guix publish} service."
 msgstr "Der Datentyp, der die Konfiguration des „@code{guix publish}“-Dienstes repräsentiert."
 
 #. type: item
-#: doc/guix.texi:12984
+#: doc/guix.texi:15172
 #, no-wrap
 msgid "@code{guix} (default: @code{guix})"
 msgstr "@code{guix} (Vorgabe: @code{guix})"
 
 #. type: item
-#: doc/guix.texi:12987
+#: doc/guix.texi:15175 doc/guix.texi:27637
 #, no-wrap
 msgid "@code{port} (default: @code{80})"
 msgstr "@code{port} (Vorgabe: @code{80})"
 
 #. type: table
-#: doc/guix.texi:12989
+#: doc/guix.texi:15177
 msgid "The TCP port to listen for connections."
 msgstr "Der TCP-Port, auf dem auf Verbindungen gelauscht werden soll."
 
 #. type: item
-#: doc/guix.texi:12990 doc/guix.texi:22556
+#: doc/guix.texi:15178 doc/guix.texi:25416
 #, no-wrap
 msgid "@code{host} (default: @code{\"localhost\"})"
 msgstr "@code{host} (Vorgabe: @code{\"localhost\"})"
 
 #. type: table
-#: doc/guix.texi:12993
+#: doc/guix.texi:15181
 msgid "The host (and thus, network interface) to listen to.  Use @code{\"0.0.0.0\"} to listen on all the network interfaces."
 msgstr "Unter welcher Rechneradresse (welchem „Host“, also welcher Netzwerkschnittstelle) auf Verbindungen gelauscht wird. Benutzen Sie @code{\"0.0.0.0\"}, wenn auf allen verfügbaren Netzwerkschnittstellen gelauscht werden soll."
 
 #. type: item
-#: doc/guix.texi:12994
+#: doc/guix.texi:15182
 #, no-wrap
 msgid "@code{compression} (default: @code{'((\"gzip\" 3))})"
 msgstr "@code{compression} (Vorgabe: @code{'((\"gzip\" 3))})"
 
 #. type: table
-#: doc/guix.texi:12998
+#: doc/guix.texi:15186
 msgid "This is a list of compression method/level tuple used when compressing substitutes.  For example, to compress all substitutes with @emph{both} lzip at level 7 and gzip at level 9, write:"
 msgstr "Dies ist eine Liste von Tupeln aus Kompressionsmethode und -stufe, die zur Kompression von Substituten benutzt werden. Um zum Beispiel alle Substitute mit @emph{beiden}, sowohl lzip auf Stufe 7 und gzip auf Stufe 9, zu komprimieren, schreiben Sie:"
 
 #. type: lisp
-#: doc/guix.texi:13001
+#: doc/guix.texi:15189
 #, no-wrap
 msgid "'((\"lzip\" 7) (\"gzip\" 9))\n"
 msgstr "'((\"lzip\" 7) (\"gzip\" 9))\n"
 
 #. type: table
-#: doc/guix.texi:13005
+#: doc/guix.texi:15193
 msgid "Level 9 achieves the best compression ratio at the expense of increased CPU usage, whereas level 1 achieves fast compression."
 msgstr "Auf Stufe 9 ist das Kompressionsverhältnis am besten, auf Kosten von hoher Prozessorauslastung, während auf Stufe 1 eine schnelle Kompression erreicht wird."
 
 #. type: table
-#: doc/guix.texi:13007
+#: doc/guix.texi:15195
 msgid "An empty list disables compression altogether."
 msgstr "Wird eine leere Liste angegeben, wird Kompression abgeschaltet."
 
 #. type: item
-#: doc/guix.texi:13008
+#: doc/guix.texi:15196
 #, no-wrap
 msgid "@code{nar-path} (default: @code{\"nar\"})"
 msgstr "@code{nar-path} (Vorgabe: @code{\"nar\"})"
 
 #. type: table
-#: doc/guix.texi:13011
-msgid "The URL path at which ``nars'' can be fetched.  @xref{Invoking guix publish, @code{--nar-path}}, for details."
-msgstr "Der URL-Pfad, unter dem „Nars“ zum Herunterladen angeboten werden. Siehe @ref{Invoking guix publish, @code{--nar-path}} für Details."
+#: doc/guix.texi:15199
+msgid "The URL path at which ``nars'' can be fetched.  @xref{Invoking guix publish, @option{--nar-path}}, for details."
+msgstr "Der URL-Pfad, unter dem „Nars“ zum Herunterladen angeboten werden. Siehe @ref{Invoking guix publish, @option{--nar-path}} für Details."
 
 #. type: item
-#: doc/guix.texi:13012
+#: doc/guix.texi:15200
 #, no-wrap
 msgid "@code{cache} (default: @code{#f})"
 msgstr "@code{cache} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:13018
+#: doc/guix.texi:15206
 msgid "When it is @code{#f}, disable caching and instead generate archives on demand.  Otherwise, this should be the name of a directory---e.g., @code{\"/var/cache/guix/publish\"}---where @command{guix publish} caches archives and meta-data ready to be sent.  @xref{Invoking guix publish, @option{--cache}}, for more information on the tradeoffs involved."
 msgstr "Wenn dies @code{#f} ist, werden Archive nicht zwischengespeichert, sondern erst bei einer Anfrage erzeugt. Andernfalls sollte dies der Name eines Verzeichnisses sein — z.B.@: @code{\"/var/cache/guix/publish\"} —, in das @command{guix publish} fertige Archive und Metadaten zwischenspeichern soll. Siehe @ref{Invoking guix publish, @option{--cache}} für weitere Informationen über die jeweiligen Vor- und Nachteile."
 
 #. type: item
-#: doc/guix.texi:13019
+#: doc/guix.texi:15207
 #, no-wrap
 msgid "@code{workers} (default: @code{#f})"
 msgstr "@code{workers} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:13023
+#: doc/guix.texi:15211
 msgid "When it is an integer, this is the number of worker threads used for caching; when @code{#f}, the number of processors is used.  @xref{Invoking guix publish, @option{--workers}}, for more information."
 msgstr "Ist dies eine ganze Zahl, gibt es die Anzahl der Worker-Threads an, die zum Zwischenspeichern benutzt werden; ist es @code{#f}, werden so viele benutzt, wie es Prozessoren gibt. Siehe @ref{Invoking guix publish, @option{--workers}} für mehr Informationen."
 
 #. type: item
-#: doc/guix.texi:13024
+#: doc/guix.texi:15212
+#, no-wrap
+msgid "@code{cache-bypass-threshold} (default: 10 MiB)"
+msgstr "@code{cache-bypass-threshold} (Vorgabe: 10 MiB)"
+
+#. type: table
+#: doc/guix.texi:15217
+msgid "When @code{cache} is true, this is the maximum size in bytes of a store item for which @command{guix publish} may bypass its cache in case of a cache miss.  @xref{Invoking guix publish, @option{--cache-bypass-threshold}}, for more information."
+msgstr "Wenn @code{cache} wahr ist, ist dies die Maximalgröße in Bytes, die ein Store-Objekt haben darf, damit @command{guix publish} den Zwischenspeicher umgehen darf, falls eine Suche darin mit negativem Ergebnis ausfällt („Cache Miss“). Siehe @ref{Invoking guix publish, @option{--cache-bypass-threshold}} für weitere Informationen."
+
+#. type: item
+#: doc/guix.texi:15218
 #, no-wrap
 msgid "@code{ttl} (default: @code{#f})"
 msgstr "@code{ttl} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:13028
+#: doc/guix.texi:15222
 msgid "When it is an integer, this denotes the @dfn{time-to-live} in seconds of the published archives.  @xref{Invoking guix publish, @option{--ttl}}, for more information."
 msgstr "Wenn dies eine ganze Zahl ist, bezeichnet sie die @dfn{Time-to-live} als die Anzahl der Sekunden, die heruntergeladene veröffentlichte Archive zwischengespeichert werden dürfen. Siehe @ref{Invoking guix publish, @option{--ttl}} für mehr Informationen."
 
 #. type: anchor{#1}
-#: doc/guix.texi:13032
+#: doc/guix.texi:15226
 msgid "rngd-service"
 msgstr "rngd-service"
 
 #. type: deffn
-#: doc/guix.texi:13032
+#: doc/guix.texi:15226
 #, no-wrap
 msgid "{Scheme Procedure} rngd-service [#:rng-tools @var{rng-tools}] @"
 msgstr "{Scheme-Prozedur} rngd-service [#:rng-tools @var{rng-tools}] @"
 
 #. type: deffn
-#: doc/guix.texi:13037
+#: doc/guix.texi:15231
 msgid "[#:device \"/dev/hwrng\"] Return a service that runs the @command{rngd} program from @var{rng-tools} to add @var{device} to the kernel's entropy pool.  The service will fail if @var{device} does not exist."
 msgstr "[#:device \"/dev/hwrng\"] Liefert einen Dienst, der das @command{rngd}-Programm aus den @var{rng-tools} benutzt, um das mit @var{device} bezeichnete Gerät zum Entropie-Pool des Kernels hinzuzufügen. Dieser Dienst wird fehlschlagen, falls das mit @var{device} bezeichnete Gerät nicht existiert."
 
 #. type: anchor{#1}
-#: doc/guix.texi:13040
+#: doc/guix.texi:15234
 msgid "pam-limits-service"
 msgstr "pam-limits-service"
 
 #. type: cindex
-#: doc/guix.texi:13040
+#: doc/guix.texi:15234
 #, no-wrap
 msgid "session limits"
 msgstr "Sitzungs-Limits"
 
 #. type: cindex
-#: doc/guix.texi:13041
+#: doc/guix.texi:15235
 #, no-wrap
 msgid "ulimit"
 msgstr "ulimit"
 
 #. type: cindex
-#: doc/guix.texi:13042
+#: doc/guix.texi:15236
 #, no-wrap
 msgid "priority"
 msgstr "Priorität"
 
 #. type: cindex
-#: doc/guix.texi:13043
+#: doc/guix.texi:15237
 #, no-wrap
 msgid "realtime"
 msgstr "Echtzeit"
 
 #. type: cindex
-#: doc/guix.texi:13044
+#: doc/guix.texi:15238
 #, no-wrap
 msgid "jackd"
 msgstr "jackd"
 
 #. type: deffn
-#: doc/guix.texi:13045
+#: doc/guix.texi:15239
 #, no-wrap
 msgid "{Scheme Procedure} pam-limits-service [#:limits @code{'()}]"
 msgstr "{Scheme-Prozedur} pam-limits-service [#:limits @code{'()}]"
 
 #. type: deffn
-#: doc/guix.texi:13052
+#: doc/guix.texi:15246
 msgid "Return a service that installs a configuration file for the @uref{http://linux-pam.org/Linux-PAM-html/sag-pam_limits.html, @code{pam_limits} module}.  The procedure optionally takes a list of @code{pam-limits-entry} values, which can be used to specify @code{ulimit} limits and nice priority limits to user sessions."
 msgstr "Liefert einen Dienst, der eine Konfigurationsdatei für das @uref{http://linux-pam.org/Linux-PAM-html/sag-pam_limits.html, @code{pam_limits}-Modul} installiert. Diese Prozedur nimmt optional eine Liste von @code{pam-limits-entry}-Werten entgegen, die benutzt werden können, um @code{ulimit}-Limits und nice-Prioritäten für Benutzersitzungen festzulegen."
 
 #. type: deffn
-#: doc/guix.texi:13055
+#: doc/guix.texi:15249
 msgid "The following limits definition sets two hard and soft limits for all login sessions of users in the @code{realtime} group:"
 msgstr "Die folgenden Limit-Definitionen setzen zwei harte und weiche Limits für alle Anmeldesitzungen für Benutzer in der @code{realtime}-Gruppe."
 
 #. type: lisp
-#: doc/guix.texi:13061
+#: doc/guix.texi:15255
 #, no-wrap
 msgid ""
 "(pam-limits-service\n"
@@ -23940,40 +27546,40 @@ msgstr ""
 "  (pam-limits-entry \"@@realtime\" 'both 'memlock 'unlimited)))\n"
 
 #. type: deffn
-#: doc/guix.texi:13067
+#: doc/guix.texi:15261
 msgid "The first entry increases the maximum realtime priority for non-privileged processes; the second entry lifts any restriction of the maximum address space that can be locked in memory.  These settings are commonly used for real-time audio systems."
 msgstr "Der erste Eintrag erhöht die maximale Echtzeit-Priorität für unprivilegierte Prozesse ohne zusätzliche Berechtigungen; der zweite Eintrag hebt jegliche Einschränkungen des maximalen Adressbereichs auf, der im Speicher reserviert werden darf. Diese Einstellungen werden in dieser Form oft für Echtzeit-Audio-Systeme verwendet."
 
 #. type: cindex
-#: doc/guix.texi:13072
+#: doc/guix.texi:15266
 #, no-wrap
 msgid "cron"
 msgstr "cron"
 
 #. type: cindex
-#: doc/guix.texi:13073
+#: doc/guix.texi:15267
 #, no-wrap
 msgid "mcron"
 msgstr "mcron"
 
 #. type: cindex
-#: doc/guix.texi:13074
+#: doc/guix.texi:15268
 #, no-wrap
 msgid "scheduling jobs"
 msgstr "Planen von Aufträgen"
 
 #. type: Plain text
-#: doc/guix.texi:13081
+#: doc/guix.texi:15275
 msgid "The @code{(gnu services mcron)} module provides an interface to GNU@tie{}mcron, a daemon to run jobs at scheduled times (@pxref{Top,,, mcron, GNU@tie{}mcron}).  GNU@tie{}mcron is similar to the traditional Unix @command{cron} daemon; the main difference is that it is implemented in Guile Scheme, which provides a lot of flexibility when specifying the scheduling of jobs and their actions."
 msgstr "Das Modul @code{(gnu services mcron)} enthält eine Schnittstelle zu GNU@tie{}mcron, einem Daemon, der gemäß einem vorher festgelegten Zeitplan Aufträge (sogenannte „Jobs“) ausführt (siehe @ref{Top,,, mcron, GNU@tie{}mcron}). GNU@tie{}mcron ist ähnlich zum traditionellen @command{cron}-Daemon aus Unix; der größte Unterschied ist, dass mcron in Guile Scheme implementiert ist, wodurch einem viel Flexibilität bei der Spezifikation von Aufträgen und ihren Aktionen offen steht."
 
 #. type: Plain text
-#: doc/guix.texi:13089
+#: doc/guix.texi:15283
 msgid "The example below defines an operating system that runs the @command{updatedb} (@pxref{Invoking updatedb,,, find, Finding Files})  and the @command{guix gc} commands (@pxref{Invoking guix gc}) daily, as well as the @command{mkid} command on behalf of an unprivileged user (@pxref{mkid invocation,,, idutils, ID Database Utilities}).  It uses gexps to introduce job definitions that are passed to mcron (@pxref{G-Expressions})."
 msgstr "Das folgende Beispiel definiert ein Betriebssystem, das täglich die Befehle @command{updatedb} (siehe @ref{Invoking updatedb,,, find, Finding Files}) und @command{guix gc} (siehe @ref{Invoking guix gc}) ausführt sowie den Befehl @command{mkid} im Namen eines „unprivilegierten“ Nutzers ohne besondere Berechtigungen laufen lässt (siehe @ref{mkid invocation,,, idutils, ID Database Utilities}). Zum Anlegen von Auftragsdefinitionen benutzt es G-Ausdrücke, die dann an mcron übergeben werden (siehe @ref{G-Expressions})."
 
 #. type: lisp
-#: doc/guix.texi:13093
+#: doc/guix.texi:15287
 #, no-wrap
 msgid ""
 "(use-modules (guix) (gnu) (gnu services mcron))\n"
@@ -23985,7 +27591,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:13102
+#: doc/guix.texi:15296
 #, no-wrap
 msgid ""
 "(define updatedb-job\n"
@@ -24009,7 +27615,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:13108
+#: doc/guix.texi:15302
 #, no-wrap
 msgid ""
 "(define garbage-collector-job\n"
@@ -24027,7 +27633,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:13115
+#: doc/guix.texi:15309
 #, no-wrap
 msgid ""
 "(define idutils-job\n"
@@ -24048,7 +27654,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:13124
+#: doc/guix.texi:15318
 #, no-wrap
 msgid ""
 "(operating-system\n"
@@ -24070,12 +27676,12 @@ msgstr ""
 "                  %base-services)))\n"
 
 #. type: Plain text
-#: doc/guix.texi:13131
+#: doc/guix.texi:15325
 msgid "For more complex jobs defined in Scheme where you need control over the top level, for instance to introduce a @code{use-modules} form, you can move your code to a separate program using the @code{program-file} procedure of the @code{(guix gexp)} module (@pxref{G-Expressions}).  The example below illustrates that."
 msgstr "Wenn Sie einen komplexeren Auftrag mit Scheme-Code auf oberster Ebene festlegen möchten, um zum Beispiel eine @code{use-modules}-Form einzuführen, können Sie Ihren Code in ein separates Programm verschieben, indem Sie die Prozedur @code{program-file} aus dem Modul @code{(guix gexp)} benutzen (siehe @ref{G-Expressions}). Das folgende Beispiel veranschaulicht dies."
 
 #. type: lisp
-#: doc/guix.texi:13158
+#: doc/guix.texi:15341
 #, no-wrap
 msgid ""
 "(define %battery-alert-job\n"
@@ -24087,22 +27693,12 @@ msgid ""
 "        (with-imported-modules (source-module-closure\n"
 "                                '((guix build utils)))\n"
 "          #~(begin\n"
-"              (define %min-level 20)\n"
 "              (use-modules (guix build utils)\n"
 "                           (ice-9 popen)\n"
 "                           (ice-9 regex)\n"
 "                           (ice-9 textual-ports)\n"
 "                           (srfi srfi-2))\n"
-"              (setenv \"LC_ALL\" \"C\")     ;ensure English output\n"
-"              (and-let* ((input-pipe (open-pipe*\n"
-"                                      OPEN_READ\n"
-"                                      #$(file-append acpi \"/bin/acpi\")))\n"
-"                         (output (get-string-all input-pipe))\n"
-"                         (m (string-match \"Discharging, ([0-9]+)%\" output))\n"
-"                         (level (string->number (match:substring m 1)))\n"
-"                         ((< level %min-level)))\n"
-"                (format #t \"warning: Battery level is low (~a%)~%\" level)\n"
-"                (invoke #$(file-append beep \"/bin/beep\") \"-r5\")))))))\n"
+"\n"
 msgstr ""
 "(define %batterie-alarm-auftrag\n"
 "  ;; Piepsen, wenn die Akkuladung in Prozent unter %MIN-NIVEAU fällt.\n"
@@ -24113,12 +27709,35 @@ msgstr ""
 "        (with-imported-modules (source-module-closure\n"
 "                                '((guix build utils)))\n"
 "          #~(begin\n"
-"              (define %min-niveau 20)\n"
 "              (use-modules (guix build utils)\n"
 "                           (ice-9 popen)\n"
 "                           (ice-9 regex)\n"
 "                           (ice-9 textual-ports)\n"
 "                           (srfi srfi-2))\n"
+
+#. type: lisp
+#: doc/guix.texi:15343
+#, no-wrap
+msgid ""
+"              (define %min-level 20)\n"
+"\n"
+msgstr "              (define %min-niveau 20)\n"
+
+#. type: lisp
+#: doc/guix.texi:15354
+#, no-wrap
+msgid ""
+"              (setenv \"LC_ALL\" \"C\")     ;ensure English output\n"
+"              (and-let* ((input-pipe (open-pipe*\n"
+"                                      OPEN_READ\n"
+"                                      #$(file-append acpi \"/bin/acpi\")))\n"
+"                         (output (get-string-all input-pipe))\n"
+"                         (m (string-match \"Discharging, ([0-9]+)%\" output))\n"
+"                         (level (string->number (match:substring m 1)))\n"
+"                         ((< level %min-level)))\n"
+"                (format #t \"warning: Battery level is low (~a%)~%\" level)\n"
+"                (invoke #$(file-append beep \"/bin/beep\") \"-r5\")))))))\n"
+msgstr ""
 "              (setenv \"LC_ALL\" \"C\")     ;Ausgabe auf Englisch\n"
 "              (and-let* ((input-pipe (open-pipe*\n"
 "                                      OPEN_READ\n"
@@ -24131,105 +27750,105 @@ msgstr ""
 "                (invoke #$(file-append beep \"/bin/beep\") \"-r5\")))))))\n"
 
 #. type: Plain text
-#: doc/guix.texi:13163
+#: doc/guix.texi:15359
 msgid "@xref{Guile Syntax, mcron job specifications,, mcron, GNU@tie{}mcron}, for more information on mcron job specifications.  Below is the reference of the mcron service."
-msgstr "Siehe @ref{Guile Syntax, mcron job specifications,, mcron, GNU@tie{}mcron} für weitere Informationen zu mcron-Auftragsspezifikationen. Nun folgt die Referenz des mcron-Dienstes."
+msgstr "Siehe @ref{Guile Syntax, mcron-Auftragsspezifikationen,, mcron, GNU@tie{}mcron} für weitere Informationen zu mcron-Auftragsspezifikationen. Nun folgt die Referenz des mcron-Dienstes."
 
 #. type: Plain text
-#: doc/guix.texi:13166
+#: doc/guix.texi:15362
 msgid "On a running system, you can use the @code{schedule} action of the service to visualize the mcron jobs that will be executed next:"
 msgstr "Wenn das System läuft, können Sie mit der Aktion @code{schedule} des Dienstes visualisieren lassen, welche mcron-Aufträge als Nächstes ausgeführt werden:"
 
 #. type: example
-#: doc/guix.texi:13169
+#: doc/guix.texi:15365
 #, no-wrap
 msgid "# herd schedule mcron\n"
 msgstr "# herd schedule mcron\n"
 
 #. type: Plain text
-#: doc/guix.texi:13174
+#: doc/guix.texi:15370
 msgid "The example above lists the next five tasks that will be executed, but you can also specify the number of tasks to display:"
-msgstr "Das vorangehende Beispiel listet die nächsten fünf Aufgaben auf, die ausgeführt werden, aber Sie können auch angeben, wieviele Aufgaben angezeigt werden sollen:"
+msgstr "Das vorangehende Beispiel listet die nächsten fünf Aufgaben auf, die ausgeführt werden, aber Sie können auch angeben, wie viele Aufgaben angezeigt werden sollen:"
 
 #. type: example
-#: doc/guix.texi:13177
+#: doc/guix.texi:15373
 #, no-wrap
 msgid "# herd schedule mcron 10\n"
 msgstr "# herd schedule mcron 10\n"
 
 #. type: defvr
-#: doc/guix.texi:13179
+#: doc/guix.texi:15375
 #, no-wrap
 msgid "{Scheme Variable} mcron-service-type"
 msgstr "{Scheme-Variable} mcron-service-type"
 
 #. type: defvr
-#: doc/guix.texi:13182
+#: doc/guix.texi:15378
 msgid "This is the type of the @code{mcron} service, whose value is an @code{mcron-configuration} object."
 msgstr "Dies ist der Diensttyp des @code{mcron}-Dienstes. Als Wert verwendet er ein @code{mcron-configuration}-Objekt."
 
 #. type: defvr
-#: doc/guix.texi:13187
+#: doc/guix.texi:15383
 msgid "This service type can be the target of a service extension that provides it additional job specifications (@pxref{Service Composition}).  In other words, it is possible to define services that provide additional mcron jobs to run."
 msgstr "Dieser Diensttyp kann als Ziel einer Diensterweiterung verwendet werden, die ihn mit zusätzlichen Auftragsspezifikationen versorgt (siehe @ref{Service Composition}). Mit anderen Worten ist es möglich, Dienste zu definieren, die weitere mcron-Aufträge ausführen lassen."
 
 #. type: deftp
-#: doc/guix.texi:13189
+#: doc/guix.texi:15385
 #, no-wrap
 msgid "{Data Type} mcron-configuration"
 msgstr "{Datentyp} mcron-configuration"
 
 #. type: deftp
-#: doc/guix.texi:13191
+#: doc/guix.texi:15387
 msgid "Data type representing the configuration of mcron."
 msgstr "Datentyp, der die Konfiguration von mcron repräsentiert."
 
 #. type: item
-#: doc/guix.texi:13193
+#: doc/guix.texi:15389
 #, no-wrap
 msgid "@code{mcron} (default: @var{mcron})"
 msgstr "@code{mcron} (Vorgabe: @var{mcron})"
 
 #. type: table
-#: doc/guix.texi:13195
+#: doc/guix.texi:15391
 msgid "The mcron package to use."
 msgstr "Welches mcron-Paket benutzt werden soll."
 
 #. type: code{#1}
-#: doc/guix.texi:13196 doc/guix.texi:13265
+#: doc/guix.texi:15392 doc/guix.texi:15461
 #, no-wrap
 msgid "jobs"
 msgstr "jobs"
 
 #. type: table
-#: doc/guix.texi:13200
+#: doc/guix.texi:15396
 msgid "This is a list of gexps (@pxref{G-Expressions}), where each gexp corresponds to an mcron job specification (@pxref{Syntax, mcron job specifications,, mcron, GNU@tie{}mcron})."
-msgstr "Dies muss eine Liste von G-Ausdrücken sein (siehe @ref{G-Expressions}), die jeweils einer mcron-Auftragsspezifikation (der Spezifikation eines „Jobs“) entsprechen (siehe @ref{Syntax, mcron job specifications,, mcron, GNU@tie{}mcron})."
+msgstr "Dies muss eine Liste von G-Ausdrücken sein (siehe @ref{G-Expressions}), die jeweils einer mcron-Auftragsspezifikation (der Spezifikation eines „Jobs“) entsprechen (siehe @ref{Syntax, mcron-Auftragsspezifikationen,, mcron, GNU@tie{}mcron})."
 
 #. type: cindex
-#: doc/guix.texi:13207
+#: doc/guix.texi:15403
 #, no-wrap
 msgid "rottlog"
 msgstr "rottlog"
 
 #. type: cindex
-#: doc/guix.texi:13208
+#: doc/guix.texi:15404
 #, no-wrap
 msgid "log rotation"
 msgstr "Log-Rotation"
 
 #. type: Plain text
-#: doc/guix.texi:13215
+#: doc/guix.texi:15411
 msgid "Log files such as those found in @file{/var/log} tend to grow endlessly, so it's a good idea to @dfn{rotate} them once in a while---i.e., archive their contents in separate files, possibly compressed.  The @code{(gnu services admin)} module provides an interface to GNU@tie{}Rot[t]log, a log rotation tool (@pxref{Top,,, rottlog, GNU Rot[t]log Manual})."
 msgstr "Protokolldateien wie die in @file{/var/log} neigen dazu, bis ins Unendliche zu wachsen, deshalb ist es eine gute Idee, sie von Zeit zu Zeit zu @dfn{rotieren} — d.h.@: ihren Inhalt in separaten Dateien zu archivieren, welche optional auch komprimiert werden. Das Modul @code{(gnu services admin)} stellt eine Schnittstelle zu GNU@tie{}Rot[t]log bereit, einem Werkzeug, um Protokolldateien („Log“-Dateien) zu rotieren (siehe @ref{Top,,, rottlog, GNU Rot[t]log Manual})."
 
 #. type: Plain text
-#: doc/guix.texi:13221
+#: doc/guix.texi:15417
 msgid "This service is part of @code{%base-services}, and thus enabled by default, with the default settings, for commonly encountered log files.  The example below shows how to extend it with an additional @dfn{rotation}, should you need to do that (usually, services that produce log files already take care of that):"
 msgstr "Dieser Dienst ist Teil der @code{%base-services} und daher standardmäßig mit seinen Vorgabeeinstellungen für übliche Log-Dateien aktiv. Das Beispiel unten zeigt, wie Sie ihn um eine weitere @dfn{rotation} erweitern können, wenn dies nötig wird (normalerweise kümmern sich darum schon die Dienste, die die Log-Dateien erzeugen):"
 
 #. type: lisp
-#: doc/guix.texi:13225
+#: doc/guix.texi:15421
 #, no-wrap
 msgid ""
 "(use-modules (guix) (gnu))\n"
@@ -24241,7 +27860,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:13229
+#: doc/guix.texi:15425
 #, no-wrap
 msgid ""
 "(define my-log-files\n"
@@ -24255,7 +27874,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:13238
+#: doc/guix.texi:15434
 #, no-wrap
 msgid ""
 "(operating-system\n"
@@ -24277,93 +27896,93 @@ msgstr ""
 "                  %base-services)))\n"
 
 #. type: defvr
-#: doc/guix.texi:13240
+#: doc/guix.texi:15436
 #, no-wrap
 msgid "{Scheme Variable} rottlog-service-type"
 msgstr "{Scheme-Variable} rottlog-service-type"
 
 #. type: defvr
-#: doc/guix.texi:13243
+#: doc/guix.texi:15439
 msgid "This is the type of the Rottlog service, whose value is a @code{rottlog-configuration} object."
 msgstr "Dies ist der Typ des Rottlog-Dienstes, dessen Wert ein @code{rottlog-configuration}-Objekt ist."
 
 #. type: defvr
-#: doc/guix.texi:13246
+#: doc/guix.texi:15442
 msgid "Other services can extend this one with new @code{log-rotation} objects (see below), thereby augmenting the set of files to be rotated."
 msgstr "Andere Dienste können diesen Dienst um neue @code{log-rotation}-Objekte erweitern (siehe unten), wodurch die Auswahl an zu rotierenden Dateien ausgeweitet wird."
 
 #. type: defvr
-#: doc/guix.texi:13249
+#: doc/guix.texi:15445
 msgid "This service type can define mcron jobs (@pxref{Scheduled Job Execution}) to run the rottlog service."
 msgstr "Dieser Diensttyp kann mcron-Aufträge definieren (siehe @ref{Scheduled Job Execution}), die den rottlog-Dienst ausführen."
 
 #. type: deftp
-#: doc/guix.texi:13251
+#: doc/guix.texi:15447
 #, no-wrap
 msgid "{Data Type} rottlog-configuration"
 msgstr "{Datentyp} rottlog-configuration"
 
 #. type: deftp
-#: doc/guix.texi:13253
+#: doc/guix.texi:15449
 msgid "Data type representing the configuration of rottlog."
 msgstr "Datentyp, der die Konfiguration von rottlog repräsentiert."
 
 #. type: item
-#: doc/guix.texi:13255
+#: doc/guix.texi:15451
 #, no-wrap
 msgid "@code{rottlog} (default: @code{rottlog})"
 msgstr "@code{rottlog} (Vorgabe: @code{rottlog})"
 
 #. type: table
-#: doc/guix.texi:13257
+#: doc/guix.texi:15453
 msgid "The Rottlog package to use."
 msgstr "Das Rottlog-Paket, das verwendet werden soll."
 
 #. type: item
-#: doc/guix.texi:13258
+#: doc/guix.texi:15454
 #, no-wrap
 msgid "@code{rc-file} (default: @code{(file-append rottlog \"/etc/rc\")})"
 msgstr "@code{rc-file} (Vorgabe: @code{(file-append rottlog \"/etc/rc\")})"
 
 #. type: table
-#: doc/guix.texi:13261
+#: doc/guix.texi:15457
 msgid "The Rottlog configuration file to use (@pxref{Mandatory RC Variables,,, rottlog, GNU Rot[t]log Manual})."
 msgstr "Die zu benutzende Rottlog-Konfigurationsdatei (siehe @ref{Mandatory RC Variables,,, rottlog, GNU Rot[t]log Manual})."
 
 #. type: item
-#: doc/guix.texi:13262
+#: doc/guix.texi:15458
 #, no-wrap
 msgid "@code{rotations} (default: @code{%default-rotations})"
 msgstr "@code{rotations} (Vorgabe: @code{%default-rotations})"
 
 #. type: table
-#: doc/guix.texi:13264
+#: doc/guix.texi:15460
 msgid "A list of @code{log-rotation} objects as defined below."
 msgstr "Eine Liste von @code{log-rotation}-Objekten, wie wir sie weiter unten definieren."
 
 #. type: table
-#: doc/guix.texi:13268
+#: doc/guix.texi:15464
 msgid "This is a list of gexps where each gexp corresponds to an mcron job specification (@pxref{Scheduled Job Execution})."
 msgstr "Dies ist eine Liste von G-Ausdrücken. Jeder G-Ausdruck darin entspricht einer mcron-Auftragsspezifikation (siehe @ref{Scheduled Job Execution})."
 
 #. type: deftp
-#: doc/guix.texi:13271
+#: doc/guix.texi:15467
 #, no-wrap
 msgid "{Data Type} log-rotation"
 msgstr "{Datentyp} log-rotation"
 
 #. type: deftp
-#: doc/guix.texi:13273
+#: doc/guix.texi:15469
 msgid "Data type representing the rotation of a group of log files."
 msgstr "Datentyp, der die Rotation einer Gruppe von Protokolldateien repräsentiert."
 
 #. type: deftp
-#: doc/guix.texi:13277
+#: doc/guix.texi:15473
 msgid "Taking an example from the Rottlog manual (@pxref{Period Related File Examples,,, rottlog, GNU Rot[t]log Manual}), a log rotation might be defined like this:"
 msgstr "Um ein Beispiel aus dem Rottlog-Handbuch (siehe @ref{Period Related File Examples,,, rottlog, GNU Rot[t]log Manual}) aufzugreifen: Eine Log-Rotation kann auf folgende Art definiert werden:"
 
 #. type: lisp
-#: doc/guix.texi:13286
+#: doc/guix.texi:15482
 #, no-wrap
 msgid ""
 "(log-rotation\n"
@@ -24383,111 +28002,111 @@ msgstr ""
 "             \"nocompress\")))\n"
 
 #. type: deftp
-#: doc/guix.texi:13289
+#: doc/guix.texi:15485
 msgid "The list of fields is as follows:"
 msgstr "Die Liste der Felder ist folgendermaßen aufgebaut:"
 
 #. type: item
-#: doc/guix.texi:13291
+#: doc/guix.texi:15487
 #, no-wrap
 msgid "@code{frequency} (default: @code{'weekly})"
 msgstr "@code{frequency} (Vorgabe: @code{'weekly})"
 
 #. type: table
-#: doc/guix.texi:13293
+#: doc/guix.texi:15489
 msgid "The log rotation frequency, a symbol."
 msgstr "Die Häufigkeit der Log-Rotation, dargestellt als englischsprachiges Symbol."
 
 #. type: code{#1}
-#: doc/guix.texi:13294
+#: doc/guix.texi:15490
 #, no-wrap
 msgid "files"
 msgstr "files"
 
 #. type: table
-#: doc/guix.texi:13296
+#: doc/guix.texi:15492
 msgid "The list of files or file glob patterns to rotate."
 msgstr "Die Liste der Dateien oder Glob-Muster für Dateien, die rotiert werden sollen."
 
 #. type: item
-#: doc/guix.texi:13297
+#: doc/guix.texi:15493
 #, no-wrap
 msgid "@code{options} (default: @code{'()})"
 msgstr "@code{options} (Vorgabe: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:13300
+#: doc/guix.texi:15496
 msgid "The list of rottlog options for this rotation (@pxref{Configuration parameters,,, rottlog, GNU Rot[t]lg Manual})."
 msgstr "Die Liste der Rottlog-Optionen für diese Rotation (siehe @ref{Configuration parameters,,, rottlog, GNU Rot[t]lg Manual})."
 
 #. type: item
-#: doc/guix.texi:13301
+#: doc/guix.texi:15497
 #, no-wrap
 msgid "@code{post-rotate} (default: @code{#f})"
 msgstr "@code{post-rotate} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:13303
+#: doc/guix.texi:15499
 msgid "Either @code{#f} or a gexp to execute once the rotation has completed."
 msgstr "Entweder @code{#f} oder ein G-Ausdruck, der nach Abschluss der Rotation einmal ausgeführt wird."
 
 #. type: defvr
-#: doc/guix.texi:13306
+#: doc/guix.texi:15502
 #, no-wrap
 msgid "{Scheme Variable} %default-rotations"
 msgstr "{Scheme-Variable} %default-rotations"
 
 #. type: defvr
-#: doc/guix.texi:13309
-msgid "Specifies weekly rotation of @var{%rotated-files} and of @file{/var/log/guix-daemon.log}."
-msgstr "Gibt wöchentliche Rotationen der @var{%rotated-files} und von @file{/var/log/guix-daemon.log} an."
+#: doc/guix.texi:15505
+msgid "Specifies weekly rotation of @code{%rotated-files} and of @file{/var/log/guix-daemon.log}."
+msgstr "Gibt wöchentliche Rotationen der @code{%rotated-files} und von @file{/var/log/guix-daemon.log} an."
 
 #. type: defvr
-#: doc/guix.texi:13311
+#: doc/guix.texi:15507
 #, no-wrap
 msgid "{Scheme Variable} %rotated-files"
 msgstr "{Scheme-Variable} %rotated-files"
 
 #. type: defvr
-#: doc/guix.texi:13315
+#: doc/guix.texi:15511
 msgid "The list of syslog-controlled files to be rotated.  By default it is: @code{'(\"/var/log/messages\" \"/var/log/secure\" \"/var/log/debug\" \\ \"/var/log/maillog\")}."
 msgstr "Die Liste der von Syslog verwalteten Dateien, die rotiert werden sollen. Vorgegeben ist @code{'(\"/var/log/messages\" \"/var/log/secure\" \"/var/log/debug\"  \"/var/log/maillog\")}."
 
 #. type: Plain text
-#: doc/guix.texi:13322
+#: doc/guix.texi:15518
 msgid "The @code{(gnu services networking)} module provides services to configure the network interface."
 msgstr "Das Modul @code{(gnu services networking)} bietet Dienste zum Konfigurieren des Netzwerks an."
 
 #. type: cindex
-#: doc/guix.texi:13323
+#: doc/guix.texi:15519
 #, no-wrap
 msgid "DHCP, networking service"
 msgstr "DHCP, Netzwerkdienst"
 
 #. type: defvr
-#: doc/guix.texi:13324
+#: doc/guix.texi:15520
 #, no-wrap
 msgid "{Scheme Variable} dhcp-client-service-type"
 msgstr "{Scheme-Variable} dhcp-client-service-type"
 
 #. type: defvr
-#: doc/guix.texi:13328
+#: doc/guix.texi:15524
 msgid "This is the type of services that run @var{dhcp}, a Dynamic Host Configuration Protocol (DHCP) client, on all the non-loopback network interfaces.  Its value is the DHCP client package to use, @code{isc-dhcp} by default."
 msgstr "Dies ist der Diensttyp für den Dienst, der @var{dhcp} ausführt, einen Client für das „Dynamic Host Configuration Protocol“ (DHCP), der auf allen Netzwerkschnittstellen außer „loopback“ läuft. Sein Wert ist das zu verwendende DHCP-Client-Paket; vorgegeben ist @code{isc-dhcp}."
 
 #. type: deffn
-#: doc/guix.texi:13330
+#: doc/guix.texi:15526
 #, no-wrap
 msgid "{Scheme Procedure} dhcpd-service-type"
 msgstr "{Scheme-Prozedur} dhcpd-service-type"
 
 #. type: deffn
-#: doc/guix.texi:13334
+#: doc/guix.texi:15530
 msgid "This type defines a service that runs a DHCP daemon.  To create a service of this type, you must supply a @code{<dhcpd-configuration>}.  For example:"
 msgstr "Dieser Diensttyp definiert einen Dienst, der einen DHCP-Daemon ausführt. Um einen Dienst zu diesem Typ anzugeben, müssen Sie eine @code{<dhcpd-configuration>} bereitstellen. Zum Beispiel so:"
 
 #. type: lisp
-#: doc/guix.texi:13340
+#: doc/guix.texi:15536
 #, no-wrap
 msgid ""
 "(service dhcpd-service-type\n"
@@ -24501,111 +28120,111 @@ msgstr ""
 "          (interfaces '(\"enp0s25\"))))\n"
 
 #. type: deftp
-#: doc/guix.texi:13343
+#: doc/guix.texi:15539
 #, no-wrap
 msgid "{Data Type} dhcpd-configuration"
 msgstr "{Datentyp} dhcpd-configuration"
 
 #. type: item
-#: doc/guix.texi:13345
+#: doc/guix.texi:15541
 #, no-wrap
 msgid "@code{package} (default: @code{isc-dhcp})"
 msgstr "@code{package} (Vorgabe: @code{isc-dhcp})"
 
 #. type: table
-#: doc/guix.texi:13350
+#: doc/guix.texi:15546
 msgid "The package that provides the DHCP daemon.  This package is expected to provide the daemon at @file{sbin/dhcpd} relative to its output directory.  The default package is the @uref{https://www.isc.org/products/DHCP, ISC's DHCP server}."
 msgstr "Das Paket, das den DHCP-Daemon zur Verfügung stellt. Von diesem Paket wird erwartet, dass es den Daemon unter dem Pfad @file{sbin/dhcpd} relativ zum Verzeichnis der Paketausgabe bereitstellt. Das vorgegebene Paket ist @uref{https://www.isc.org/products/DHCP, der DHCP-Server vom ISC}."
 
 #. type: item
-#: doc/guix.texi:13350 doc/guix.texi:13602 doc/guix.texi:17839
+#: doc/guix.texi:15546 doc/guix.texi:15801 doc/guix.texi:20528
 #, no-wrap
 msgid "@code{config-file} (default: @code{#f})"
 msgstr "@code{config-file} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:13355
+#: doc/guix.texi:15551
 msgid "The configuration file to use.  This is required.  It will be passed to @code{dhcpd} via its @code{-cf} option.  This may be any ``file-like'' object (@pxref{G-Expressions, file-like objects}).  See @code{man dhcpd.conf} for details on the configuration file syntax."
 msgstr "Die Konfigurationsdatei, die benutzt werden soll. Sie @emph{muss} angegeben werden und wird an @code{dhcpd} mittels seiner Befehlszeilenoption @code{-cf} übergeben. Ein beliebiges „dateiartiges“ Objekt kann dafür angegeben werden (siehe @ref{G-Expressions, dateiartige Objekte}). Siehe @code{man dhcpd.conf} für Details, welcher Syntax die Konfigurationsdatei genügen muss."
 
 #. type: item
-#: doc/guix.texi:13355
+#: doc/guix.texi:15551
 #, no-wrap
 msgid "@code{version} (default: @code{\"4\"})"
 msgstr "@code{version} (Vorgabe: @code{\"4\"})"
 
 #. type: table
-#: doc/guix.texi:13360
+#: doc/guix.texi:15556
 msgid "The DHCP version to use.  The ISC DHCP server supports the values ``4'', ``6'', and ``4o6''.  These correspond to the @code{dhcpd} program options @code{-4}, @code{-6}, and @code{-4o6}.  See @code{man dhcpd} for details."
 msgstr "Die DHCP-Version, die benutzt werden soll. Der ISC-DHCP-Server unterstützt die Werte „4“, „6“ und „4o6“. Das Feld entspricht den Befehlszeilenoptionen @code{-4}, @code{-6} und @code{-4o6} von @code{dhcpd}. Siehe @code{man dhcpd} für Details."
 
 #. type: item
-#: doc/guix.texi:13360
+#: doc/guix.texi:15556
 #, no-wrap
 msgid "@code{run-directory} (default: @code{\"/run/dhcpd\"})"
 msgstr "@code{run-directory} (Vorgabe: @code{\"/run/dhcpd\"})"
 
 #. type: table
-#: doc/guix.texi:13363
+#: doc/guix.texi:15559
 msgid "The run directory to use.  At service activation time, this directory will be created if it does not exist."
 msgstr "Das zu benutzende Laufzeit-Verzeichnis („run“-Verzeichnis). Wenn der Dienst aktiviert wird, wird dieses Verzeichnis erzeugt, wenn es noch nicht existiert."
 
 #. type: item
-#: doc/guix.texi:13363
+#: doc/guix.texi:15559
 #, no-wrap
 msgid "@code{pid-file} (default: @code{\"/run/dhcpd/dhcpd.pid\"})"
 msgstr "@code{pid-file} (Vorgabe: @code{\"/run/dhcpd/dhcpd.pid\"})"
 
 #. type: table
-#: doc/guix.texi:13366
+#: doc/guix.texi:15562
 msgid "The PID file to use.  This corresponds to the @code{-pf} option of @code{dhcpd}.  See @code{man dhcpd} for details."
 msgstr "Die zu benutzende PID-Datei. Dieses Feld entspricht der Befehlszeilenoption @code{-pf} von @code{dhcpd}. Siehe @code{man dhcpd} für Details."
 
 #. type: item
-#: doc/guix.texi:13366
+#: doc/guix.texi:15562
 #, no-wrap
 msgid "@code{interfaces} (default: @code{'()})"
 msgstr "@code{interfaces} (Vorgabe: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:13372
+#: doc/guix.texi:15568
 msgid "The names of the network interfaces on which dhcpd should listen for broadcasts.  If this list is not empty, then its elements (which must be strings) will be appended to the @code{dhcpd} invocation when starting the daemon.  It may not be necessary to explicitly specify any interfaces here; see @code{man dhcpd} for details."
 msgstr "Die Namen der Netzwerkschnittstelle, auf der dhcpd auf Broadcast-Nachrichten lauscht. Wenn diese Liste nicht leer ist, werden ihre Elemente (diese müssen Zeichenketten sein) an den @code{dhcpd}-Aufruf beim Starten des Daemons angehängt. Es ist unter Umständen @emph{nicht} nötig, hier Schnittstellen ausdrücklich anzugeben; siehe @code{man dhcpd} für Details."
 
 #. type: defvr
-#: doc/guix.texi:13375
+#: doc/guix.texi:15571
 #, no-wrap
 msgid "{Scheme Variable} static-networking-service-type"
 msgstr "{Scheme-Variable} static-networking-service-type"
 
 #. type: defvr
-#: doc/guix.texi:13378
+#: doc/guix.texi:15574
 msgid "This is the type for statically-configured network interfaces."
 msgstr "Dies ist der Typ für statisch konfigurierte Netzwerkschnittstellen."
 
 #. type: deffn
-#: doc/guix.texi:13380
+#: doc/guix.texi:15576
 #, no-wrap
 msgid "{Scheme Procedure} static-networking-service @var{interface} @var{ip} @"
 msgstr "{Scheme-Prozedur} static-networking-service @var{Schnittstelle} @var{IP} @"
 
 #. type: deffn
-#: doc/guix.texi:13388
+#: doc/guix.texi:15584
 msgid "[#:netmask #f] [#:gateway #f] [#:name-servers @code{'()}] @ [#:requirement @code{'(udev)}] 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.  @var{requirement} can be used to declare a dependency on another service before configuring the interface."
 msgstr "[#:netmask #f] [#:gateway #f] [#:name-servers @code{'()}] @ [#:requirement @code{'(udev)}] Liefert einen Dienst, der die @var{Schnittstelle} auf dieser @var{IP}-Adresse startet. Wenn @var{netmask} wahr ist, wird es als Netzwerkmaske benutzt. Wenn @var{gateway} wahr ist, muss es eine Zeichenkette sein, die den voreingestellten Netzwerk-Zugang („Netzwerk-Gateway“) angibt. Als @var{requirement} („Anforderung“) können Abhängigkeiten von anderen Diensten deklariert werden, die vor dem Konfigurieren der Schnittstelle gestartet sein müssen."
 
 #. type: deffn
-#: doc/guix.texi:13393
+#: doc/guix.texi:15589
 msgid "This procedure can be called several times, one for each network interface of interest.  Behind the scenes what it does is extend @code{static-networking-service-type} with additional network interfaces to handle."
 msgstr "Diese Prozedur kann mehrmals aufgerufen werden, einmal pro Netzwerkschnittstelle, die Sie möchten. Intern funktioniert sie, indem sie @code{static-networking-service-type} mit zusätzlichen Netzwerkschnittstellen erweitert, um die sich der Dienst kümmern soll."
 
-#. type: deffn
-#: doc/guix.texi:13395
+#. type: defvr
+#: doc/guix.texi:15591 doc/guix.texi:26949
 msgid "For example:"
 msgstr "Zum Beispiel:"
 
 #. type: lisp
-#: doc/guix.texi:13400
+#: doc/guix.texi:15596
 #, no-wrap
 msgid ""
 "(static-networking-service \"eno1\" \"192.168.1.82\"\n"
@@ -24617,233 +28236,227 @@ msgstr ""
 "                           #:name-servers '(\"192.168.1.2\"))\n"
 
 #. type: cindex
-#: doc/guix.texi:13403
+#: doc/guix.texi:15599
 #, no-wrap
 msgid "wicd"
 msgstr "wicd"
 
 #. type: cindex
-#: doc/guix.texi:13406
+#: doc/guix.texi:15602
 #, no-wrap
 msgid "network management"
 msgstr "Netzwerkverwaltung"
 
 #. type: deffn
-#: doc/guix.texi:13407
+#: doc/guix.texi:15603
 #, no-wrap
 msgid "{Scheme Procedure} wicd-service [#:wicd @var{wicd}]"
 msgstr "{Scheme-Prozedur} wicd-service [#:wicd @var{wicd}]"
 
 #. type: deffn
-#: doc/guix.texi:13410
+#: doc/guix.texi:15606
 msgid "Return a service that runs @url{https://launchpad.net/wicd,Wicd}, a network management daemon that aims to simplify wired and wireless networking."
 msgstr "Liefert einen Dienst, der @url{https://launchpad.net/wicd,Wicd} ausführt, einen Netzwerkverwaltungsdaemon, um ein einfacheres Einrichten kabelgebundener und drahtloser Netzwerkanbindungen zu ermöglichen."
 
 #. type: deffn
-#: doc/guix.texi:13415
+#: doc/guix.texi:15611
 msgid "This service adds the @var{wicd} package to the global profile, providing several commands to interact with the daemon and configure networking: @command{wicd-client}, a graphical user interface, and the @command{wicd-cli} and @command{wicd-curses} user interfaces."
 msgstr "Dieser Dienst fügt das @var{wicd}-Paket zum globalen Profil hinzu und stellt dadurch mehrere Befehle zur Verfügung, um mit dem Daemon zu interagieren und Netzwerke einzurichten: @command{wicd-client}, eine grafische Benutzeroberfläche, und die Benutzungsschnittstellen @command{wicd-cli} und @command{wicd-curses}."
 
 #. type: cindex
-#: doc/guix.texi:13417
+#: doc/guix.texi:15613
 #, no-wrap
 msgid "ModemManager"
 msgstr "ModemManager"
 
 #. type: defvr
-#: doc/guix.texi:13419
+#: doc/guix.texi:15615
 #, no-wrap
 msgid "{Scheme Variable} modem-manager-service-type"
 msgstr "{Scheme-Variable} modem-manager-service-type"
 
 #. type: defvr
-#: doc/guix.texi:13424
+#: doc/guix.texi:15620
 msgid "This is the service type for the @uref{https://wiki.gnome.org/Projects/ModemManager, ModemManager} service. The value for this service type is a @code{modem-manager-configuration} record."
 msgstr "Dies ist der Diensttyp für den @uref{https://wiki.gnome.org/Projects/ModemManager, ModemManager-Dienst}. Der Wert dieses Diensttyps ist ein @code{modem-manager-configuration}-Verbundsobjekt."
 
 #. type: defvr
-#: doc/guix.texi:13427 doc/guix.texi:13455 doc/guix.texi:13487
+#: doc/guix.texi:15623 doc/guix.texi:15651 doc/guix.texi:15683
 msgid "This service is part of @code{%desktop-services} (@pxref{Desktop Services})."
 msgstr "Dieser Dienst gehört zu den @code{%desktop-services} (siehe @ref{Desktop Services})."
 
 #. type: deftp
-#: doc/guix.texi:13429
+#: doc/guix.texi:15625
 #, no-wrap
 msgid "{Data Type} modem-manager-configuration"
 msgstr "{Datentyp} modem-manager-configuration"
 
 #. type: deftp
-#: doc/guix.texi:13431
+#: doc/guix.texi:15627
 msgid "Data type representing the configuration of ModemManager."
 msgstr "Repräsentiert die Konfiguration vom ModemManager."
 
 #. type: item
-#: doc/guix.texi:13433
+#: doc/guix.texi:15629
 #, no-wrap
 msgid "@code{modem-manager} (default: @code{modem-manager})"
 msgstr "@code{modem-manager} (Vorgabe: @code{modem-manager})"
 
 #. type: table
-#: doc/guix.texi:13435
+#: doc/guix.texi:15631
 msgid "The ModemManager package to use."
 msgstr "Das ModemManager-Paket, was benutzt werden soll."
 
 #. type: cindex
-#: doc/guix.texi:13439
+#: doc/guix.texi:15635
 #, no-wrap
 msgid "USB_ModeSwitch"
 msgstr "USB_ModeSwitch"
 
 #. type: cindex
-#: doc/guix.texi:13440
+#: doc/guix.texi:15636
 #, no-wrap
 msgid "Modeswitching"
 msgstr "Modeswitching"
 
 #. type: defvr
-#: doc/guix.texi:13442
+#: doc/guix.texi:15638
 #, no-wrap
 msgid "{Scheme Variable} usb-modeswitch-service-type"
 msgstr "{Scheme-Variable} usb-modeswitch-service-type"
 
 #. type: defvr
-#: doc/guix.texi:13446
+#: doc/guix.texi:15642
 msgid "This is the service type for the @uref{https://www.draisberghof.de/usb_modeswitch/, USB_ModeSwitch} service. The value for this service type is a @code{usb-modeswitch-configuration} record."
 msgstr "Dies ist der Diensttyp für den @uref{https://www.draisberghof.de/usb_modeswitch/, USB_ModeSwitch-Dienst}. Der Wert dieses Diensttyps ist ein @code{usb-modeswitch-configuration}-Verbundsobjekt."
 
 #. type: defvr
-#: doc/guix.texi:13452
+#: doc/guix.texi:15648
 msgid "When plugged in, some USB modems (and other USB devices) initially present themselves as a read-only storage medium and not as a modem.  They need to be @dfn{modeswitched} before they are usable.  The USB_ModeSwitch service type installs udev rules to automatically modeswitch these devices when they are plugged in."
 msgstr "Wenn sie eingesteckt werden, geben sich manche USB-Modems (und andere USB-Geräte) zunächst als Nur-Lese-Speichermedien und nicht als Modem aus. Sie müssen erst einem Moduswechsel („Modeswitching“) unterzogen werden, bevor sie benutzt werden können. Der USB_ModeSwitch-Diensttyp installiert udev-Regeln, um bei diesen Geräten automatisch ein Modeswitching durchzuführen, wenn sie eingesteckt werden."
 
 #. type: deftp
-#: doc/guix.texi:13457
+#: doc/guix.texi:15653
 #, no-wrap
 msgid "{Data Type} usb-modeswitch-configuration"
 msgstr "{Datentyp} usb-modeswitch-configuration"
 
 #. type: deftp
-#: doc/guix.texi:13459
+#: doc/guix.texi:15655
 msgid "Data type representing the configuration of USB_ModeSwitch."
 msgstr "Der Datentyp, der die Konfiguration von USB_ModeSwitch repräsentiert."
 
 #. type: item
-#: doc/guix.texi:13461
+#: doc/guix.texi:15657
 #, no-wrap
 msgid "@code{usb-modeswitch} (default: @code{usb-modeswitch})"
 msgstr "@code{usb-modeswitch} (Vorgabe: @code{usb-modeswitch})"
 
 #. type: table
-#: doc/guix.texi:13463
+#: doc/guix.texi:15659
 msgid "The USB_ModeSwitch package providing the binaries for modeswitching."
 msgstr "Das USB_ModeSwitch-Paket, das die Programmdateien für das Modeswitching enthält."
 
 #. type: item
-#: doc/guix.texi:13464
+#: doc/guix.texi:15660
 #, no-wrap
 msgid "@code{usb-modeswitch-data} (default: @code{usb-modeswitch-data})"
 msgstr "@code{usb-modeswitch-data} (Vorgabe: @code{usb-modeswitch-data})"
 
 #. type: table
-#: doc/guix.texi:13467
+#: doc/guix.texi:15663
 msgid "The package providing the device data and udev rules file used by USB_ModeSwitch."
 msgstr "Das Paket, in dem die Gerätedaten und die udev-Regeldatei stehen, die USB_ModeSwitch benutzt."
 
 #. type: item
-#: doc/guix.texi:13468
+#: doc/guix.texi:15664
 #, no-wrap
 msgid "@code{config-file} (default: @code{#~(string-append #$usb-modeswitch:dispatcher \"/etc/usb_modeswitch.conf\")})"
 msgstr "@code{config-file} (Vorgabe: @code{#~(string-append #$usb-modeswitch:dispatcher \"/etc/usb_modeswitch.conf\")})"
 
 #. type: table
-#: doc/guix.texi:13473
+#: doc/guix.texi:15669
 msgid "Which config file to use for the USB_ModeSwitch dispatcher.  By default the config file shipped with USB_ModeSwitch is used which disables logging to @file{/var/log} among other default settings.  If set to @code{#f}, no config file is used."
 msgstr "Welche Konfigurationsdatei das USB_ModeSwitch-Aufrufprogramm („Dispatcher“) benutzt. Nach Vorgabe wird die mit USB_ModeSwitch ausgelieferte Konfigurationsdatei benutzt, die neben anderen Voreinstellungen die Protokollierung nach @file{/var/log} abschaltet. Wenn @code{#f} festgelegt wird, wird keine Konfigurationsdatei benutzt."
 
 #. type: cindex
-#: doc/guix.texi:13477
+#: doc/guix.texi:15673
 #, no-wrap
 msgid "NetworkManager"
 msgstr "NetworkManager"
 
 #. type: defvr
-#: doc/guix.texi:13479
+#: doc/guix.texi:15675
 #, no-wrap
 msgid "{Scheme Variable} network-manager-service-type"
 msgstr "{Scheme-Variable} network-manager-service-type"
 
 #. type: defvr
-#: doc/guix.texi:13484
+#: doc/guix.texi:15680
 msgid "This is the service type for the @uref{https://wiki.gnome.org/Projects/NetworkManager, NetworkManager} service. The value for this service type is a @code{network-manager-configuration} record."
 msgstr "Dies ist der Diensttyp für den @uref{https://wiki.gnome.org/Projects/NetworkManager, NetworkManager-Dienst}. Der Wert dieses Diensttyps ist ein @code{network-manager-configuration}-Verbundsobjekt."
 
 #. type: deftp
-#: doc/guix.texi:13489
+#: doc/guix.texi:15685
 #, no-wrap
 msgid "{Data Type} network-manager-configuration"
 msgstr "{Datentyp} network-manager-configuration"
 
 #. type: deftp
-#: doc/guix.texi:13491
+#: doc/guix.texi:15687
 msgid "Data type representing the configuration of NetworkManager."
 msgstr "Datentyp, der die Konfiguration von NetworkManager repräsentiert."
 
 #. type: item
-#: doc/guix.texi:13493
+#: doc/guix.texi:15689
 #, no-wrap
 msgid "@code{network-manager} (default: @code{network-manager})"
 msgstr "@code{network-manager} (Vorgabe: @code{network-manager})"
 
 #. type: table
-#: doc/guix.texi:13495
+#: doc/guix.texi:15691
 msgid "The NetworkManager package to use."
 msgstr "Das zu verwendende NetworkManager-Paket."
 
 #. type: item
-#: doc/guix.texi:13496
+#: doc/guix.texi:15692
 #, no-wrap
 msgid "@code{dns} (default: @code{\"default\"})"
 msgstr "@code{dns} (Vorgabe: @code{\"default\"})"
 
 #. type: table
-#: doc/guix.texi:13499
+#: doc/guix.texi:15695
 msgid "Processing mode for DNS, which affects how NetworkManager uses the @code{resolv.conf} configuration file."
 msgstr "Der Verarbeitungsmodus für DNS-Anfragen. Er hat Einfluss darauf, wie NetworkManager mit der Konfigurationsdatei @code{resolv.conf} verfährt."
 
-#. type: item
-#: doc/guix.texi:13501
-#, no-wrap
-msgid "default"
-msgstr "default"
-
 #. type: table
-#: doc/guix.texi:13504
+#: doc/guix.texi:15700
 msgid "NetworkManager will update @code{resolv.conf} to reflect the nameservers provided by currently active connections."
-msgstr "NetworkManager aktualisiert @code{resolv.conf}, damit sie die Nameserver enthält, die von zur Zeit aktiven Verbindungen benutzt werden."
+msgstr "NetworkManager aktualisiert @code{resolv.conf}, damit sie die Nameserver enthält, die von zurzeit aktiven Verbindungen benutzt werden."
 
 #. type: item
-#: doc/guix.texi:13505
+#: doc/guix.texi:15701
 #, no-wrap
 msgid "dnsmasq"
 msgstr "dnsmasq"
 
 #. type: table
-#: doc/guix.texi:13509
+#: doc/guix.texi:15705
 msgid "NetworkManager will run @code{dnsmasq} as a local caching nameserver, using a @dfn{conditional forwarding} configuration if you are connected to a VPN, and then update @code{resolv.conf} to point to the local nameserver."
 msgstr "NetworkManager führt @code{dnsmasq} als lokal zwischenspeichernden Nameserver aus und aktualisiert @code{resolv.conf} so, dass es auf den lokalen Nameserver verweist. Falls Sie mit einem VPN verbunden sind, wird dafür eine getrennte DNS-Auflösung verwendet („Conditional Forwarding“)."
 
 #. type: table
-#: doc/guix.texi:13515
+#: doc/guix.texi:15711
 msgid "With this setting, you can share your network connection.  For example when you want to share your network connection to another laptop @i{via} an Ethernet cable, you can open @command{nm-connection-editor} and configure the Wired connection's method for IPv4 and IPv6 to be ``Shared to other computers'' and reestablish the connection (or reboot)."
 msgstr "Mit dieser Einstellung können Sie Ihre Netzwerkverbindung teilen. Wenn Sie sie zum Beispiel mit einem anderen Laptop über ein Ethernet-Kabel teilen möchten, können Sie @command{nm-connection-editor} öffnen und die Methode der Ethernet-Verbindung für IPv4 und IPv6 auf „Gemeinsam mit anderen Rechnern“ stellen und daraufhin die Verbindung neu herstellen (oder Ihren Rechner neu starten)."
 
 #. type: table
-#: doc/guix.texi:13522
+#: doc/guix.texi:15718
 msgid "You can also set up a @dfn{host-to-guest connection} to QEMU VMs (@pxref{Installing Guix in a VM}).  With a host-to-guest connection, you can e.g.@: access a Web server running on the VM (@pxref{Web Services}) from a Web browser on your host system, or connect to the VM @i{via} SSH (@pxref{Networking Services, @code{openssh-service-type}}).  To set up a host-to-guest connection, run this command once:"
 msgstr "Sie können so auch eine Verbindung vom Wirts- zum Gastsystem in virtuellen Maschinen mit QEMU (siehe @ref{Installing Guix in a VM}) herstellen, d.h.@: eine „Host-to-Guest Connection“). Mit einer solchen Wirt-nach-Gast-Verbindung können Sie z.B.@: von einem Webbrowser auf Ihrem Wirtssystem auf einen Web-Server zugreifen, der auf der VM läuft (siehe @ref{Web Services}). Sie können sich damit auch über SSH mit der virtuellen Maschine verbinden (siehe @ref{Networking Services, @code{openssh-service-type}}). Um eine Wirt-nach-Gast-Verbindung einzurichten, führen Sie einmal diesen Befehl aus:"
 
 #. type: example
-#: doc/guix.texi:13529
+#: doc/guix.texi:15725
 #, no-wrap
 msgid ""
 "nmcli connection add type tun \\\n"
@@ -24859,50 +28472,50 @@ msgstr ""
 " ipv4.addresses 172.28.112.1/24\n"
 
 #. type: table
-#: doc/guix.texi:13534
+#: doc/guix.texi:15730
 msgid "Then each time you launch your QEMU VM (@pxref{Running Guix in a VM}), pass @option{-nic tap,ifname=tap0,script=no,downscript=no} to @command{qemu-system-...}."
 msgstr "Danach geben Sie bei jedem Start Ihrer virtuellen QEMU-Maschine (siehe @ref{Running Guix in a VM}) die Befehlszeilenoption @option{-nic tap,ifname=tap0,script=no,downscript=no} an @command{qemu-system-…} mit."
 
 #. type: table
-#: doc/guix.texi:13537
+#: doc/guix.texi:15733
 msgid "NetworkManager will not modify @code{resolv.conf}."
 msgstr "NetworkManager verändert @code{resolv.conf} nicht."
 
 #. type: item
-#: doc/guix.texi:13539
+#: doc/guix.texi:15735
 #, no-wrap
 msgid "@code{vpn-plugins} (default: @code{'()})"
 msgstr "@code{vpn-plugins} (Vorgabe: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:13543
+#: doc/guix.texi:15739
 msgid "This is the list of available plugins for virtual private networks (VPNs).  An example of this is the @code{network-manager-openvpn} package, which allows NetworkManager to manage VPNs @i{via} OpenVPN."
 msgstr "Dies ist die Liste der verfügbaren Plugins für virtuelle private Netzwerke (VPN). Zum Beispiel kann das Paket @code{network-manager-openvpn} angegeben werden, womit NetworkManager virtuelle private Netzwerke mit OpenVPN verwalten kann."
 
 #. type: cindex
-#: doc/guix.texi:13547
+#: doc/guix.texi:15743
 #, no-wrap
 msgid "Connman"
 msgstr "Connman"
 
 #. type: deffn
-#: doc/guix.texi:13548
+#: doc/guix.texi:15744
 #, no-wrap
 msgid "{Scheme Variable} connman-service-type"
 msgstr "{Scheme-Variable} connman-service-type"
 
 #. type: deffn
-#: doc/guix.texi:13551
+#: doc/guix.texi:15747
 msgid "This is the service type to run @url{https://01.org/connman,Connman}, a network connection manager."
 msgstr "Mit diesem Diensttyp wird @url{https://01.org/connman,Connman} ausgeführt, ein Programm zum Verwalten von Netzwerkverbindungen."
 
 #. type: deffn
-#: doc/guix.texi:13554
+#: doc/guix.texi:15750
 msgid "Its value must be an @code{connman-configuration} record as in this example:"
 msgstr "Sein Wert muss ein @code{connman-configuration}-Verbundsobjekt wie im folgenden Beispiel sein:"
 
 #. type: lisp
-#: doc/guix.texi:13559
+#: doc/guix.texi:15755
 #, no-wrap
 msgid ""
 "(service connman-service-type\n"
@@ -24914,149 +28527,305 @@ msgstr ""
 "           (disable-vpn? #t)))\n"
 
 #. type: deffn
-#: doc/guix.texi:13562
+#: doc/guix.texi:15758
 msgid "See below for details about @code{connman-configuration}."
 msgstr "Weiter unten werden Details der @code{connman-configuration} erklärt."
 
 #. type: deftp
-#: doc/guix.texi:13564
+#: doc/guix.texi:15760
 #, no-wrap
 msgid "{Data Type} connman-configuration"
 msgstr "{Datentyp} connman-configuration"
 
 #. type: deftp
-#: doc/guix.texi:13566
+#: doc/guix.texi:15762
 msgid "Data Type representing the configuration of connman."
 msgstr "Datentyp, der die Konfiguration von Connman repräsentiert."
 
 #. type: item
-#: doc/guix.texi:13568
+#: doc/guix.texi:15764
 #, no-wrap
 msgid "@code{connman} (default: @var{connman})"
 msgstr "@code{connman} (Vorgabe: @var{connman})"
 
 #. type: table
-#: doc/guix.texi:13570
+#: doc/guix.texi:15766
 msgid "The connman package to use."
 msgstr "Das zu verwendende Connman-Paket."
 
 #. type: item
-#: doc/guix.texi:13571
+#: doc/guix.texi:15767
 #, no-wrap
 msgid "@code{disable-vpn?} (default: @code{#f})"
 msgstr "@code{disable-vpn?} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:13573
+#: doc/guix.texi:15769
 msgid "When true, disable connman's vpn plugin."
 msgstr "Falls dies auf wahr gesetzt ist, wird Connmans VPN-Plugin deaktiviert."
 
 #. type: cindex
-#: doc/guix.texi:13576
+#: doc/guix.texi:15772
 #, no-wrap
 msgid "WPA Supplicant"
 msgstr "WPA-Supplikant"
 
 #. type: defvr
-#: doc/guix.texi:13577
+#: doc/guix.texi:15773
 #, no-wrap
 msgid "{Scheme Variable} wpa-supplicant-service-type"
 msgstr "{Scheme-Variable} wpa-supplicant-service-type"
 
 #. type: defvr
-#: doc/guix.texi:13581
+#: doc/guix.texi:15777
 msgid "This is the service type to run @url{https://w1.fi/wpa_supplicant/,WPA supplicant}, an authentication daemon required to authenticate against encrypted WiFi or ethernet networks."
 msgstr "Dies ist der Diensttyp, um @url{https://w1.fi/wpa_supplicant/,WPA Supplicant} auszuführen. Dabei handelt es sich um einen Authentisierungsdaemon, der notwendig ist, um sich gegenüber verschlüsselten WLAN- oder Ethernet-Netzwerken zu authentisieren."
 
 #. type: deftp
-#: doc/guix.texi:13583
+#: doc/guix.texi:15779
 #, no-wrap
 msgid "{Data Type} wpa-supplicant-configuration"
 msgstr "{Datentyp} wpa-supplicant-configuration"
 
 #. type: deftp
-#: doc/guix.texi:13585
+#: doc/guix.texi:15781
 msgid "Data type representing the configuration of WPA Supplicant."
 msgstr "Repräsentiert die Konfiguration des WPA-Supplikanten."
 
 #. type: deftp
-#: doc/guix.texi:13587 doc/guix.texi:25268
+#: doc/guix.texi:15783 doc/guix.texi:28961
 msgid "It takes the following parameters:"
 msgstr "Sie hat folgende Parameter:"
 
 #. type: item
-#: doc/guix.texi:13589
+#: doc/guix.texi:15785
 #, no-wrap
 msgid "@code{wpa-supplicant} (default: @code{wpa-supplicant})"
 msgstr "@code{wpa-supplicant} (Vorgabe: @code{wpa-supplicant})"
 
 #. type: table
-#: doc/guix.texi:13591
+#: doc/guix.texi:15787
 msgid "The WPA Supplicant package to use."
 msgstr "Das WPA-Supplicant-Paket, was benutzt werden soll."
 
 #. type: item
-#: doc/guix.texi:13592
+#: doc/guix.texi:15788
+#, no-wrap
+msgid "@code{requirement} (default: @code{'(user-processes loopback syslogd)}"
+msgstr "@code{requirement} (Vorgabe: @code{'(user-processes loopback syslogd)}"
+
+#. type: table
+#: doc/guix.texi:15790
+msgid "List of services that should be started before WPA Supplicant starts."
+msgstr "Die Liste der Dienste, die vor dem WPA-Supplikanten bereits gestartet sein sollen."
+
+#. type: item
+#: doc/guix.texi:15791
 #, no-wrap
 msgid "@code{dbus?} (default: @code{#t})"
 msgstr "@code{dbus?} (Vorgabe: @code{#t})"
 
 #. type: table
-#: doc/guix.texi:13594
+#: doc/guix.texi:15793
 msgid "Whether to listen for requests on D-Bus."
 msgstr "Ob auf Anfragen auf D-Bus gelauscht werden soll."
 
 #. type: item
-#: doc/guix.texi:13595
+#: doc/guix.texi:15794
 #, no-wrap
 msgid "@code{pid-file} (default: @code{\"/var/run/wpa_supplicant.pid\"})"
 msgstr "@code{pid-file} (Vorgabe: @code{\"/var/run/wpa_supplicant.pid\"})"
 
 #. type: table
-#: doc/guix.texi:13597
+#: doc/guix.texi:15796
 msgid "Where to store the PID file."
 msgstr "Wo die PID-Datei abgelegt wird."
 
 #. type: item
-#: doc/guix.texi:13598
+#: doc/guix.texi:15797 doc/guix.texi:27406 doc/guix.texi:27548
 #, no-wrap
 msgid "@code{interface} (default: @code{#f})"
 msgstr "@code{interface} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:13601
+#: doc/guix.texi:15800
 msgid "If this is set, it must specify the name of a network interface that WPA supplicant will control."
 msgstr "Wenn dieses Feld gesetzt ist, muss es den Namen einer Netzwerkschnittstelle angeben, die von WPA Supplicant verwaltet werden soll."
 
 #. type: table
-#: doc/guix.texi:13604
+#: doc/guix.texi:15803
 msgid "Optional configuration file to use."
 msgstr "Optionale Konfigurationsdatei."
 
 #. type: table
-#: doc/guix.texi:13607
+#: doc/guix.texi:15806
 msgid "List of additional command-line arguments to pass to the daemon."
 msgstr "Liste zusätzlicher Befehlszeilenoptionen, die an den Daemon übergeben werden."
 
 #. type: cindex
-#: doc/guix.texi:13610
+#: doc/guix.texi:15809
+#, no-wrap
+msgid "hostapd service, for Wi-Fi access points"
+msgstr "hostapd-Dienst, für WLAN-Zugangspunkte (Access Points)"
+
+#. type: cindex
+#: doc/guix.texi:15810
+#, no-wrap
+msgid "Wi-Fi access points, hostapd service"
+msgstr "WLAN-Zugangspunkte (Access Points), hostapd-Dienst"
+
+#. type: defvr
+#: doc/guix.texi:15811
+#, no-wrap
+msgid "{Scheme Variable} hostapd-service-type"
+msgstr "{Scheme-Variable} hostapd-service-type"
+
+#. type: defvr
+#: doc/guix.texi:15816
+msgid "This is the service type to run the @uref{https://w1.fi/hostapd/, hostapd} daemon to set up WiFi (IEEE 802.11) access points and authentication servers.  Its associated value must be a @code{hostapd-configuration} as shown below:"
+msgstr "Dies ist der Diensttyp für den @uref{https://w1.fi/hostapd/, hostapd-Daemon}, mit dem ein WLAN-Zugangspunkt (ein „Access Point“ gemäß IEEE 802.11) und Authentifizierungsserver eingerichtet werden kann. Sein zugewiesener Wert muss eine @code{hostapd-configuration} sein wie im folgenden Beispiel:"
+
+#. type: lisp
+#: doc/guix.texi:15824
+#, no-wrap
+msgid ""
+";; Use wlan1 to run the access point for \"My Network\".\n"
+"(service hostapd-service-type\n"
+"         (hostapd-configuration\n"
+"          (interface \"wlan1\")\n"
+"          (ssid \"My Network\")\n"
+"          (channel 12)))\n"
+msgstr ""
+";; Mit wlan1 den Zugangspunkt für \"Mein Netzwerk\" betreiben.\n"
+"(service hostapd-service-type\n"
+"         (hostapd-configuration\n"
+"          (interface \"wlan1\")\n"
+"          (ssid \"Mein Netzwerk\")\n"
+"          (channel 12)))\n"
+
+#. type: deftp
+#: doc/guix.texi:15827
+#, no-wrap
+msgid "{Data Type} hostapd-configuration"
+msgstr "{Datentyp} hostapd-configuration"
+
+#. type: deftp
+#: doc/guix.texi:15830
+msgid "This data type represents the configuration of the hostapd service, with the following fields:"
+msgstr "Dieser Datentyp repräsentiert die Konfiguration des hostapd-Dienstes. Er hat folgende Felder:"
+
+#. type: item
+#: doc/guix.texi:15832
+#, no-wrap
+msgid "@code{package} (default: @code{hostapd})"
+msgstr "@code{package} (Vorgabe: @code{hostapd})"
+
+#. type: table
+#: doc/guix.texi:15834
+msgid "The hostapd package to use."
+msgstr "Das zu benutzende hostapd-Paket."
+
+#. type: item
+#: doc/guix.texi:15835
+#, no-wrap
+msgid "@code{interface} (default: @code{\"wlan0\"})"
+msgstr "@code{interface} (Vorgabe: @code{\"wlan0\"})"
+
+#. type: table
+#: doc/guix.texi:15837
+msgid "The network interface to run the WiFi access point."
+msgstr "Die Netzwerkschnittstelle, auf der der WLAN-Zugangspunkt betrieben wird."
+
+#. type: code{#1}
+#: doc/guix.texi:15838
+#, no-wrap
+msgid "ssid"
+msgstr "ssid"
+
+#. type: table
+#: doc/guix.texi:15841
+msgid "The SSID (@dfn{service set identifier}), a string that identifies this network."
+msgstr "Die SSID (@dfn{Service Set Identifier}), eine das Netzwerk identifizierende Zeichenkette."
+
+#. type: item
+#: doc/guix.texi:15842
+#, no-wrap
+msgid "@code{broadcast-ssid?} (default: @code{#t})"
+msgstr "@code{broadcast-ssid?} (Vorgabe: @code{#t})"
+
+#. type: table
+#: doc/guix.texi:15844
+msgid "Whether to broadcast this SSID."
+msgstr "Ob diese SSID allgemein sichtbar sein soll."
+
+#. type: item
+#: doc/guix.texi:15845
+#, no-wrap
+msgid "@code{channel} (default: @code{1})"
+msgstr "@code{channel} (Vorlage: @code{1})"
+
+#. type: table
+#: doc/guix.texi:15847
+msgid "The WiFi channel to use."
+msgstr "Der zu verwendende WLAN-Kanal."
+
+#. type: item
+#: doc/guix.texi:15848
+#, no-wrap
+msgid "@code{driver} (default: @code{\"nl80211\"})"
+msgstr "@code{driver} (Vorgabe: @code{\"nl80211\"})"
+
+#. type: table
+#: doc/guix.texi:15852
+msgid "The driver interface type.  @code{\"nl80211\"} is used with all Linux mac80211 drivers.  Use @code{\"none\"} if building hostapd as a standalone RADIUS server that does # not control any wireless/wired driver."
+msgstr "Über welchen Schnittstellentyp der Treiber angesprochen wird. @code{\"nl80211\"} wird von allen Linux-mac80211-Treibern benutzt. Schreiben Sie @code{\"none\"}, wenn hostapd für einen eigenständigen RADIUS-Server erstellt wird, der keine Draht- oder Drahtlosverbindung steuert."
+
+#. type: item
+#: doc/guix.texi:15853 doc/guix.texi:21353 doc/guix.texi:23399
+#, no-wrap
+msgid "@code{extra-settings} (default: @code{\"\"})"
+msgstr "@code{extra-settings} (Vorgabe: @code{\"\"})"
+
+#. type: table
+#: doc/guix.texi:15857
+msgid "Extra settings to append as-is to the hostapd configuration file.  See @uref{https://w1.fi/cgit/hostap/plain/hostapd/hostapd.conf} for the configuration file reference."
+msgstr "Weitere Einstellungen, die wie sie sind an die Konfigurationsdatei von hostapd angehängt werden. Siehe @uref{https://w1.fi/cgit/hostap/plain/hostapd/hostapd.conf} für eine Referenz der Konfigurationsdatei."
+
+#. type: defvr
+#: doc/guix.texi:15860
+#, no-wrap
+msgid "{Scheme Variable} simulated-wifi-service-type"
+msgstr "{Scheme-Variable} simulated-wifi-service-type"
+
+#. type: defvr
+#: doc/guix.texi:15867
+msgid "This is the type of a service to simulate WiFi networking, which can be useful in virtual machines for testing purposes.  The service loads the Linux kernel @uref{https://www.kernel.org/doc/html/latest/networking/mac80211_hwsim/mac80211_hwsim.html, @code{mac80211_hwsim} module} and starts hostapd to create a pseudo WiFi network that can be seen on @code{wlan0}, by default."
+msgstr "Dies ist der Diensttyp für einen Dienst, um ein WLAN-Netzwerk zu simulieren. Das kann auf virtuellen Maschinen zu Testzwecken eingesetzt werden. Der Dienst lädt das @uref{https://www.kernel.org/doc/html/latest/networking/mac80211_hwsim/mac80211_hwsim.html, @code{mac80211_hwsim}-Modul} in den Linux-Kernel und startet hostapd, um ein Pseudo-WLAN-Netzwerk vorzutäuschen, das nach Vorgabe als @code{wlan0} sichtbar ist."
+
+#. type: defvr
+#: doc/guix.texi:15869
+msgid "The service's value is a @code{hostapd-configuration} record."
+msgstr "Der Wert des Dienstes ist ein @code{hostapd-configuration}-Verbundsobjekt."
+
+#. type: cindex
+#: doc/guix.texi:15871
 #, no-wrap
 msgid "iptables"
 msgstr "iptables"
 
 #. type: defvr
-#: doc/guix.texi:13611
+#: doc/guix.texi:15872
 #, no-wrap
 msgid "{Scheme Variable} iptables-service-type"
 msgstr "{Scheme-Variable} iptables-service-type"
 
 #. type: defvr
-#: doc/guix.texi:13617
+#: doc/guix.texi:15878
 msgid "This is the service type to set up an iptables configuration.  iptables is a packet filtering framework supported by the Linux kernel.  This service supports configuring iptables for both IPv4 and IPv6.  A simple example configuration rejecting all incoming connections except those to the ssh port 22 is shown below."
 msgstr "Mit diesem Diensttyp wird eine iptables-Konfiguration eingerichtet. iptables ist ein Rahmen für Netzwerkpaketfilter, der vom Linux-Kernel unterstützt wird. Der Dienst unterstützt die Konfiguration von iptables für sowohl IPv4 als auch IPv6. Eine einfache Beispielkonfiguration, die alle eingehenden Verbindungen verweigert, die nicht an den SSH-Port 22 gehen, können Sie hier sehen:"
 
 #. type: lisp
-#: doc/guix.texi:13637
+#: doc/guix.texi:15898
 #, no-wrap
 msgid ""
 "(service iptables-service-type\n"
@@ -25098,240 +28867,240 @@ msgstr ""
 "\"))))\n"
 
 #. type: deftp
-#: doc/guix.texi:13640
+#: doc/guix.texi:15901
 #, no-wrap
 msgid "{Data Type} iptables-configuration"
 msgstr "{Datentyp} iptables-configuration"
 
 #. type: deftp
-#: doc/guix.texi:13642
+#: doc/guix.texi:15903
 msgid "The data type representing the configuration of iptables."
 msgstr "Repräsentiert die iptables-Konfiguration."
 
 #. type: item
-#: doc/guix.texi:13644
+#: doc/guix.texi:15905
 #, no-wrap
 msgid "@code{iptables} (default: @code{iptables})"
 msgstr "@code{iptables} (Vorgabe: @code{iptables})"
 
 #. type: table
-#: doc/guix.texi:13647
+#: doc/guix.texi:15908
 msgid "The iptables package that provides @code{iptables-restore} and @code{ip6tables-restore}."
 msgstr "Das zu benutzende iptables-Paket, das @code{iptables-restore} und @code{ip6tables-restore} zur Verfügung stellt."
 
 #. type: item
-#: doc/guix.texi:13647
+#: doc/guix.texi:15908
 #, no-wrap
 msgid "@code{ipv4-rules} (default: @code{%iptables-accept-all-rules})"
 msgstr "@code{ipv4-rules} (Vorgabe: @code{%iptables-accept-all-rules})"
 
 #. type: table
-#: doc/guix.texi:13651
+#: doc/guix.texi:15912
 msgid "The iptables rules to use.  It will be passed to @code{iptables-restore}.  This may be any ``file-like'' object (@pxref{G-Expressions, file-like objects})."
 msgstr "Die zu benutzenden iptables-Regeln. Diese werden an @code{iptables-restore} übergeben. Als Regeln kann jedes „dateiartige“ Objekt angegeben werden (siehe @ref{G-Expressions, dateiartige Objekte})."
 
 #. type: item
-#: doc/guix.texi:13651
+#: doc/guix.texi:15912
 #, no-wrap
 msgid "@code{ipv6-rules} (default: @code{%iptables-accept-all-rules})"
 msgstr "@code{ipv6-rules} (Vorgabe: @code{%iptables-accept-all-rules})"
 
 #. type: table
-#: doc/guix.texi:13655
+#: doc/guix.texi:15916
 msgid "The ip6tables rules to use.  It will be passed to @code{ip6tables-restore}.  This may be any ``file-like'' object (@pxref{G-Expressions, file-like objects})."
 msgstr "Die zu benutzenden ip6tables-Regeln. Diese werden an @code{ip6tables-restore} übergeben. Als Regeln kann jedes „dateiartige“ Objekt angegeben werden (siehe @ref{G-Expressions, dateiartige Objekte})."
 
 #. type: cindex
-#: doc/guix.texi:13658
+#: doc/guix.texi:15919
 #, no-wrap
 msgid "nftables"
 msgstr "nftables"
 
 #. type: defvr
-#: doc/guix.texi:13659
+#: doc/guix.texi:15920
 #, no-wrap
 msgid "{Scheme Variable} nftables-service-type"
 msgstr "{Scheme-Variable} nftables-service-type"
 
 #. type: defvr
-#: doc/guix.texi:13667
+#: doc/guix.texi:15928
 msgid "This is the service type to set up a nftables configuration.  nftables is a netfilter project that aims to replace the existing iptables, ip6tables, arptables and ebtables framework.  It provides a new packet filtering framework, a new user-space utility @command{nft}, and a compatibility layer for iptables.  This service comes with a default ruleset @code{%default-nftables-ruleset} that rejecting all incomming connections except those to the ssh port 22.  To use it, simply write:"
 msgstr "Dieser Dienst richtet eine Konfiguration von nftables ein. nftables ist als Projekt ein Teil von Netfilter mit dem Ziel, den bestehenden Aufbau aus iptables, ip6tables, arptables und ebtables zu ersetzen. Es stellt einen neuen Rahmen für Netzwerkpaketfilter bereit sowie ein neues Werkzeug @command{nft} auf Anwendungsebene und eine Kompatibilitätsschicht für iptables. Dieser Dienst wird zusammen mit @code{%default-nftables-ruleset} ausgeliefert, einem vorgegebenen Satz von Regeln, der alle eingehenden Verbindungen außer auf dem SSH-Port 22 ablehnt. Um ihn zu benutzen, schreiben Sie einfach:"
 
 #. type: lisp
-#: doc/guix.texi:13670
+#: doc/guix.texi:15931
 #, no-wrap
 msgid "(service nftables-service-type)\n"
 msgstr "(service nftables-service-type)\n"
 
 #. type: deftp
-#: doc/guix.texi:13673
+#: doc/guix.texi:15934
 #, no-wrap
 msgid "{Data Type} nftables-configuration"
 msgstr "{Datentyp} nftables-configuration"
 
 #. type: deftp
-#: doc/guix.texi:13675
+#: doc/guix.texi:15936
 msgid "The data type representing the configuration of nftables."
 msgstr "Datentyp, der die nftables-Konfiguration repräsentiert."
 
 #. type: item
-#: doc/guix.texi:13677
+#: doc/guix.texi:15938
 #, no-wrap
 msgid "@code{package} (default: @code{nftables})"
 msgstr "@code{package} (Vorgabe: @code{nftables})"
 
 #. type: table
-#: doc/guix.texi:13679
+#: doc/guix.texi:15940
 msgid "The nftables package that provides @command{nft}."
 msgstr "Das nftables-Paket, das @command{nft} zur Verfügung stellt."
 
 #. type: item
-#: doc/guix.texi:13679
+#: doc/guix.texi:15940
 #, no-wrap
 msgid "@code{ruleset} (default: @code{%default-nftables-ruleset})"
 msgstr "@code{ruleset} (Vorgabe: @code{%default-nftables-ruleset})"
 
 #. type: table
-#: doc/guix.texi:13682
+#: doc/guix.texi:15943
 msgid "The nftables ruleset to use.  This may be any ``file-like'' object (@pxref{G-Expressions, file-like objects})."
 msgstr "Die zu benutzenden nftables-Regeln. Als Regeln kann jedes „dateiartige“ Objekt angegeben werden (siehe @ref{G-Expressions, dateiartige Objekte})."
 
 #. type: cindex
-#: doc/guix.texi:13685
+#: doc/guix.texi:15946
 #, no-wrap
 msgid "NTP (Network Time Protocol), service"
 msgstr "NTP (Network Time Protocol), Dienst"
 
 #. type: cindex
-#: doc/guix.texi:13686
+#: doc/guix.texi:15947
 #, no-wrap
 msgid "ntpd, service for the Network Time Protocol daemon"
 msgstr "ntpd, Dienst für den Network-Time-Protocol-Daemon"
 
 #. type: cindex
-#: doc/guix.texi:13687
+#: doc/guix.texi:15948
 #, no-wrap
 msgid "real time clock"
 msgstr "Echtzeituhr"
 
 #. type: defvr
-#: doc/guix.texi:13688
+#: doc/guix.texi:15949
 #, no-wrap
 msgid "{Scheme Variable} ntp-service-type"
 msgstr "{Scheme-Variable} ntp-service-type"
 
 #. type: defvr
-#: doc/guix.texi:13692
+#: doc/guix.texi:15953
 msgid "This is the type of the service running the @uref{https://www.ntp.org, Network Time Protocol (NTP)} daemon, @command{ntpd}.  The daemon will keep the system clock synchronized with that of the specified NTP servers."
 msgstr "Dies ist der Typ des Dienstes, der den @command{ntpd}-Daemon für das @uref{https://www.ntp.org, Network Time Protocol}, kurz NTP, ausführt. Mit diesem Daemon wird die Systemuhr mit der Uhr auf den angegebenen NTP-Servern synchronisiert."
 
 #. type: defvr
-#: doc/guix.texi:13695
+#: doc/guix.texi:15956
 msgid "The value of this service is an @code{ntpd-configuration} object, as described below."
 msgstr "Der Wert dieses Dienstes ist ein @code{ntpd-configuration}-Objekt, wie im Folgenden beschrieben."
 
 #. type: deftp
-#: doc/guix.texi:13697
+#: doc/guix.texi:15958
 #, no-wrap
 msgid "{Data Type} ntp-configuration"
 msgstr "{Datentyp} ntp-configuration"
 
 #. type: deftp
-#: doc/guix.texi:13699
+#: doc/guix.texi:15960
 msgid "This is the data type for the NTP service configuration."
 msgstr "Der Datentyp für die Dienstkonfiguration des NTP-Dienstes."
 
 #. type: item
-#: doc/guix.texi:13701
+#: doc/guix.texi:15962
 #, no-wrap
 msgid "@code{servers} (default: @code{%ntp-servers})"
 msgstr "@code{servers} (Vorgabe: @code{%ntp-servers})"
 
 #. type: table
-#: doc/guix.texi:13705
+#: doc/guix.texi:15966
 msgid "This is the list of servers (@code{<ntp-server>} records) with which @command{ntpd} will be synchronized.  See the @code{ntp-server} data type definition below."
 msgstr "Dies ist die Liste der Server (@code{<ntp-server>}-Verbundsobjekte), mit denen @command{ntpd} synchronisiert wird. Siehe die Definition des @code{ntp-server}-Datentyps weiter unten."
 
 #. type: item
-#: doc/guix.texi:13706
+#: doc/guix.texi:15967
 #, no-wrap
 msgid "@code{allow-large-adjustment?} (default: @code{#t})"
 msgstr "@code{allow-large-adjustment?} (Vorgabe: @code{#t})"
 
 #. type: table
-#: doc/guix.texi:13709
+#: doc/guix.texi:15970
 msgid "This determines whether @command{ntpd} is allowed to make an initial adjustment of more than 1,000 seconds."
 msgstr "Hiermit wird festgelegt, ob @command{ntpd} die Uhr beim ersten Umstellen um mehr als 1.000 Sekunden ändern darf."
 
 #. type: item
-#: doc/guix.texi:13710
+#: doc/guix.texi:15971
 #, no-wrap
 msgid "@code{ntp} (default: @code{ntp})"
 msgstr "@code{ntp} (Vorgabe: @code{ntp})"
 
 #. type: table
-#: doc/guix.texi:13712
+#: doc/guix.texi:15973
 msgid "The NTP package to use."
 msgstr "Das NTP-Paket, was benutzt werden soll."
 
 #. type: defvr
-#: doc/guix.texi:13715
+#: doc/guix.texi:15976
 #, no-wrap
 msgid "{Scheme Variable} %ntp-servers"
 msgstr "{Scheme-Variable} %ntp-servers"
 
 #. type: defvr
-#: doc/guix.texi:13718
+#: doc/guix.texi:15979
 msgid "List of host names used as the default NTP servers.  These are servers of the @uref{https://www.ntppool.org/en/, NTP Pool Project}."
 msgstr "Liste der Rechnernamen („Host“-Namen), die als vorgegebene NTP-Server benutzt werden. Dabei handelt es sich um die Server des @uref{https://www.ntppool.org/en/, NTP Pool Project}."
 
 #. type: deftp
-#: doc/guix.texi:13720
+#: doc/guix.texi:15981
 #, no-wrap
 msgid "{Data Type} ntp-server"
 msgstr "{Datentyp} ntp-server"
 
 #. type: deftp
-#: doc/guix.texi:13722
+#: doc/guix.texi:15983
 msgid "The data type representing the configuration of a NTP server."
 msgstr "Der Datentyp, der die Konfiguration eines NTP-Servers repräsentiert."
 
 #. type: item
-#: doc/guix.texi:13724
+#: doc/guix.texi:15985
 #, no-wrap
 msgid "@code{type} (default: @code{'server})"
 msgstr "@code{type} (Vorgabe: @code{'server})"
 
 #. type: table
-#: doc/guix.texi:13727
+#: doc/guix.texi:15988
 msgid "The type of the NTP server, given as a symbol. One of @code{'pool}, @code{'server}, @code{'peer}, @code{'broadcast} or @code{'manycastclient}."
 msgstr "Die Art des NTP-Servers als Symbol, entweder @code{'pool}, @code{'server}, @code{'peer}, @code{'broadcast} oder @code{'manycastclient}."
 
 #. type: code{#1}
-#: doc/guix.texi:13728
+#: doc/guix.texi:15989
 #, no-wrap
 msgid "address"
 msgstr "address"
 
 #. type: table
-#: doc/guix.texi:13730
+#: doc/guix.texi:15991
 msgid "The address of the server, as a string."
 msgstr "Die Adresse des Servers als Zeichenkette."
 
 #. type: code{#1}
-#: doc/guix.texi:13731 doc/guix.texi:25682 doc/guix.texi:25702
+#: doc/guix.texi:15992 doc/guix.texi:29629 doc/guix.texi:29649
 #, no-wrap
 msgid "options"
 msgstr "options"
 
 #. type: table
-#: doc/guix.texi:13736
+#: doc/guix.texi:15997
 msgid "NTPD options to use with that specific server, given as a list of option names and/or of option names and values tuples. The following example define a server to use with the options @option{iburst} and @option{prefer}, as well as @option{version} 3 and a @option{maxpoll} time of 16 seconds."
 msgstr "NTPD-Optionen, die für diesen bestimmten Server gelten sollen, angegeben als Liste von Optionsnamen und/oder Tupeln aus je Optionsname und -wert. Im folgenden Beispiel wird ein Server definiert, der die Optionen @option{iburst} und @option{prefer} sowie @option{version} 3 und eine @option{maxpoll}-Zeit von 16 Sekunden benutzen soll."
 
 #. type: example
-#: doc/guix.texi:13742
+#: doc/guix.texi:16003
 #, no-wrap
 msgid ""
 "(ntp-server\n"
@@ -25345,24 +29114,24 @@ msgstr ""
 " (options `(iburst (version 3) (maxpoll 16) prefer))))\n"
 
 #. type: cindex
-#: doc/guix.texi:13746
+#: doc/guix.texi:16007
 #, no-wrap
 msgid "OpenNTPD"
 msgstr "OpenNTPD"
 
 #. type: deffn
-#: doc/guix.texi:13747
+#: doc/guix.texi:16008
 #, no-wrap
 msgid "{Scheme Procedure} openntpd-service-type"
 msgstr "{Scheme-Prozedur} openntpd-service-type"
 
 #. type: deffn
-#: doc/guix.texi:13751
+#: doc/guix.texi:16012
 msgid "Run the @command{ntpd}, the Network Time Protocol (NTP) daemon, as implemented by @uref{http://www.openntpd.org, OpenNTPD}.  The daemon will keep the system clock synchronized with that of the given servers."
 msgstr "Hiermit wird @command{ntpd}, der Network-Time-Protocol-Daemon (NTP-Daemon), ausgeführt, in seiner @uref{http://www.openntpd.org, OpenNTPD-Implementierung}. Der Daemon sorgt dafür, dass die Systemuhr mit den Uhren der eingestellten Server synchron bleibt."
 
 #. type: lisp
-#: doc/guix.texi:13761
+#: doc/guix.texi:16022
 #, no-wrap
 msgid ""
 "(service\n"
@@ -25386,145 +29155,145 @@ msgstr ""
 "\n"
 
 #. type: defvr
-#: doc/guix.texi:13765
+#: doc/guix.texi:16026
 #, no-wrap
 msgid "{Scheme Variable} %openntpd-servers"
 msgstr "{Scheme-Variable} %openntpd-servers"
 
 #. type: defvr
-#: doc/guix.texi:13768
-msgid "This variable is a list of the server addresses defined in @var{%ntp-servers}."
-msgstr "Diese Variable bezeichnet eine Liste von Serveradressen, die in @var{%ntp-servers} definiert sind."
+#: doc/guix.texi:16029
+msgid "This variable is a list of the server addresses defined in @code{%ntp-servers}."
+msgstr "Diese Variable bezeichnet eine Liste von Serveradressen, die in @code{%ntp-servers} definiert sind."
 
 #. type: deftp
-#: doc/guix.texi:13770
+#: doc/guix.texi:16031
 #, no-wrap
 msgid "{Data Type} openntpd-configuration"
 msgstr "{Datentyp} openntpd-configuration"
 
 #. type: item
-#: doc/guix.texi:13772
+#: doc/guix.texi:16033
 #, no-wrap
 msgid "@code{openntpd} (default: @code{(file-append openntpd \"/sbin/ntpd\")})"
 msgstr "@code{openntpd} (Vorgabe: @code{(file-append openntpd \"/sbin/ntpd\")})"
 
 #. type: table
-#: doc/guix.texi:13774
+#: doc/guix.texi:16035
 msgid "The openntpd executable to use."
 msgstr "Das openntpd-Programm, das benutzt werden soll."
 
 #. type: item
-#: doc/guix.texi:13774
+#: doc/guix.texi:16035
 #, no-wrap
 msgid "@code{listen-on} (default: @code{'(\"127.0.0.1\" \"::1\")})"
 msgstr "@code{listen-on} (Vorgabe: @code{'(\"127.0.0.1\" \"::1\")})"
 
 #. type: table
-#: doc/guix.texi:13776
+#: doc/guix.texi:16037
 msgid "A list of local IP addresses or hostnames the ntpd daemon should listen on."
 msgstr "Eine Liste von lokalen IP-Adressen oder Rechnernamen („Host“-Namen), auf denen der ntpd-Daemon lauschen soll."
 
 #. type: item
-#: doc/guix.texi:13776
+#: doc/guix.texi:16037
 #, no-wrap
 msgid "@code{query-from} (default: @code{'()})"
 msgstr "@code{query-from} (Vorgabe: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:13778
+#: doc/guix.texi:16039
 msgid "A list of local IP address the ntpd daemon should use for outgoing queries."
 msgstr "Eine Liste von lokalen IP-Adressen, die der ntpd-Daemon für ausgehende Anfragen benutzen soll."
 
 #. type: item
-#: doc/guix.texi:13778
+#: doc/guix.texi:16039
 #, no-wrap
 msgid "@code{sensor} (default: @code{'()})"
 msgstr "@code{sensor} (Vorgabe: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:13783
+#: doc/guix.texi:16044
 msgid "Specify a list of timedelta sensor devices ntpd should use.  @code{ntpd} will listen to each sensor that actually exists and ignore non-existent ones.  See @uref{https://man.openbsd.org/ntpd.conf, upstream documentation} for more information."
 msgstr "Hiermit geben Sie eine Liste von Zeitdifferenz-Sensorgeräten an, die ntpd benutzen soll. @code{ntpd} wird auf jeden Sensor lauschen, der auch tatsächlich existiert, und solche, die nicht existieren, ignorieren. Siehe die @uref{https://man.openbsd.org/ntpd.conf, Dokumentation beim Anbieter} für weitere Informationen."
 
 #. type: item
-#: doc/guix.texi:13783
+#: doc/guix.texi:16044
 #, no-wrap
 msgid "@code{server} (default: @code{'()})"
 msgstr "@code{server} (Vorgabe: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:13785
+#: doc/guix.texi:16046
 msgid "Specify a list of IP addresses or hostnames of NTP servers to synchronize to."
 msgstr "Hiermit geben Sie eine Liste von IP-Adressen oder Rechnernamen von NTP-Servern an, mit denen synchronisiert werden soll."
 
 #. type: item
-#: doc/guix.texi:13785
+#: doc/guix.texi:16046
 #, no-wrap
-msgid "@code{servers} (default: @var{%openntp-servers})"
+msgid "@code{servers} (default: @code{%openntp-servers})"
 msgstr "@code{servers} (Vorgabe: @code{%openntp-servers})"
 
 #. type: table
-#: doc/guix.texi:13787
+#: doc/guix.texi:16048
 msgid "Specify a list of IP addresses or hostnames of NTP pools to synchronize to."
 msgstr "Hiermit geben Sie eine Liste von IP-Adressen oder Rechnernamen von NTP-Pools an, mit denen synchronisiert werden soll."
 
 #. type: item
-#: doc/guix.texi:13787
+#: doc/guix.texi:16048
 #, no-wrap
 msgid "@code{constraint-from} (default: @code{'()})"
 msgstr "@code{constraint-from} (Vorgabe: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:13794
+#: doc/guix.texi:16055
 msgid "@code{ntpd} can be configured to query the ‘Date’ from trusted HTTPS servers via TLS.  This time information is not used for precision but acts as an authenticated constraint, thereby reducing the impact of unauthenticated NTP man-in-the-middle attacks.  Specify a list of URLs, IP addresses or hostnames of HTTPS servers to provide a constraint."
 msgstr "@code{ntpd} kann so eingestellt werden, dass es das Datum aus der „Date“-Kopfzeile bei mit TLS übermittelten Anfragen an HTTPS-Server, denen vertraut wird, ausliest. Diese Zeitinformation wird nicht für Genauigkeit benutzt, sondern um mit authentifizierten Informationen die Auswirkungen eines Man-in-the-Middle-Angriffs auf unauthentifizierte NTP-Kommunikation einzuschränken. Geben Sie hierzu eine Liste von URLs, IP-Adressen oder Rechnernamen („Host“-Namen) von HTTPS-Servern an, um eine solche Beschränkung („Constraint“) einzurichten."
 
 #. type: item
-#: doc/guix.texi:13794
+#: doc/guix.texi:16055
 #, no-wrap
 msgid "@code{constraints-from} (default: @code{'()})"
 msgstr "@code{constraints-from} (Vorgabe: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:13798
+#: doc/guix.texi:16059
 msgid "As with constraint from, specify a list of URLs, IP addresses or hostnames of HTTPS servers to provide a constraint.  Should the hostname resolve to multiple IP addresses, @code{ntpd} will calculate a median constraint from all of them."
 msgstr "Wie bei @code{constraint-from} geben Sie auch hier eine Liste von URLs, IP-Adressen oder Rechnernamen von HTTPS-Servern an, um eine Beschränkung einzurichten. Falls der Rechnername zu mehreren IP-Adressen aufgelöst wird, berechnet @code{ntpd} den Median von allen als Beschränkung."
 
 #. type: item
-#: doc/guix.texi:13798
+#: doc/guix.texi:16059
 #, no-wrap
 msgid "@code{allow-large-adjustment?} (default: @code{#f})"
 msgstr "@code{allow-large-adjustment?} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:13801
+#: doc/guix.texi:16062
 msgid "Determines if @code{ntpd} is allowed to make an initial adjustment of more than 180 seconds."
 msgstr "Legt fest, ob @code{ntpd} die Uhr beim ersten Umstellen um mehr als 180 Sekunden verstellen darf."
 
 #. type: cindex
-#: doc/guix.texi:13804
+#: doc/guix.texi:16065
 #, no-wrap
 msgid "inetd"
 msgstr "inetd"
 
 #. type: deffn
-#: doc/guix.texi:13805
+#: doc/guix.texi:16066
 #, no-wrap
 msgid "{Scheme variable} inetd-service-type"
 msgstr "{Scheme-Variable} inetd-service-type"
 
 #. type: deffn
-#: doc/guix.texi:13810
+#: doc/guix.texi:16071
 msgid "This service runs the @command{inetd} (@pxref{inetd invocation,,, inetutils, GNU Inetutils}) daemon.  @command{inetd} listens for connections on internet sockets, and lazily starts the specified server program when a connection is made on one of these sockets."
 msgstr "Dieser Dienst führt den @command{inetd}-Daemon aus (siehe @ref{inetd invocation,,, inetutils, GNU Inetutils}). @command{inetd} lauscht auf Verbindungen mit Internet-Sockets und startet bei Bedarf das entsprechende Server-Programm, sobald eine Verbindung mit einem dieser Sockets hergestellt wird."
 
 #. type: deffn
-#: doc/guix.texi:13816
+#: doc/guix.texi:16077
 msgid "The value of this service is an @code{inetd-configuration} object.  The following example configures the @command{inetd} daemon to provide the built-in @command{echo} service, as well as an smtp service which forwards smtp traffic over ssh to a server @code{smtp-server} behind a gateway @code{hostname}:"
 msgstr "Der Wert dieses Dienstes ist ein @code{inetd-configuration}-Objekt. Im folgenden Beispiel wird der @command{inetd}-Daemon konfiguriert, um den eingebauten @command{echo}-Dienst sowie einen SMTP-Dienst anzubieten, wobei letzterer SMTP-Kommunikation über SSH an einen Server @code{smtp-server} über einen vom @code{rechnername}n bezeichneten Zugang („Gateway“) weiterleitet:"
 
 #. type: lisp
-#: doc/guix.texi:13839
+#: doc/guix.texi:16100
 #, no-wrap
 msgid ""
 "(service\n"
@@ -25572,220 +29341,220 @@ msgstr ""
 "                \"-W\" \"smtp-server:25\" \"benutzer@@rechnername\")))))))\n"
 
 #. type: deffn
-#: doc/guix.texi:13842
+#: doc/guix.texi:16103
 msgid "See below for more details about @code{inetd-configuration}."
 msgstr "Siehe unten für mehr Details über @code{inetd-configuration}."
 
 #. type: deftp
-#: doc/guix.texi:13844
+#: doc/guix.texi:16105
 #, no-wrap
 msgid "{Data Type} inetd-configuration"
 msgstr "{Datentyp} inetd-configuration"
 
 #. type: deftp
-#: doc/guix.texi:13846
+#: doc/guix.texi:16107
 msgid "Data type representing the configuration of @command{inetd}."
 msgstr "Datentyp, der die Konfiguration von @command{inetd} repräsentiert."
 
 #. type: item
-#: doc/guix.texi:13848
+#: doc/guix.texi:16109
 #, no-wrap
 msgid "@code{program} (default: @code{(file-append inetutils \"/libexec/inetd\")})"
 msgstr "@code{program} (Vorgabe: @code{(file-append inetutils \"/libexec/inetd\")})"
 
 #. type: table
-#: doc/guix.texi:13850
+#: doc/guix.texi:16111
 msgid "The @command{inetd} executable to use."
 msgstr "Das @command{inetd}-Programm, das benutzt werden soll."
 
 #. type: item
-#: doc/guix.texi:13851 doc/guix.texi:21373
+#: doc/guix.texi:16112 doc/guix.texi:24146
 #, no-wrap
 msgid "@code{entries} (default: @code{'()})"
 msgstr "@code{entries} (Vorgabe: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:13854
+#: doc/guix.texi:16115
 msgid "A list of @command{inetd} service entries.  Each entry should be created by the @code{inetd-entry} constructor."
 msgstr "Eine Liste von @command{inetd}-Diensteinträgen. Jeder Eintrag sollte von einem @code{inetd-entry}-Konstruktor erzeugt werden."
 
 #. type: deftp
-#: doc/guix.texi:13857
+#: doc/guix.texi:16118
 #, no-wrap
 msgid "{Data Type} inetd-entry"
 msgstr "{Datentyp} inetd-entry"
 
 #. type: deftp
-#: doc/guix.texi:13861
+#: doc/guix.texi:16122
 msgid "Data type representing an entry in the @command{inetd} configuration.  Each entry corresponds to a socket where @command{inetd} will listen for requests."
 msgstr "Datentyp, der einen Eintrag in der @command{inetd}-Konfiguration repräsentiert. Jeder Eintrag entspricht einem Socket, auf dem @command{inetd} auf Anfragen lauscht."
 
 #. type: item
-#: doc/guix.texi:13863
+#: doc/guix.texi:16124
 #, no-wrap
 msgid "@code{node} (default: @code{#f})"
 msgstr "@code{node} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:13868
+#: doc/guix.texi:16129
 msgid "Optional string, a comma-separated list of local addresses @command{inetd} should use when listening for this service.  @xref{Configuration file,,, inetutils, GNU Inetutils} for a complete description of all options."
 msgstr "Optional sollte hier als Zeichenkette eine kommagetrennte Liste lokaler Adressen angegeben werden, die @command{inetd} benutzen soll, wenn er stellvertretend für den angegebenen Dienst lauscht. Siehe @ref{Configuration file,,, inetutils, GNU Inetutils} für eine vollständige Beschreibung aller Optionen."
 
 #. type: table
-#: doc/guix.texi:13870
+#: doc/guix.texi:16131
 msgid "A string, the name must correspond to an entry in @code{/etc/services}."
 msgstr "Eine Zeichenkette. Dieser Name muss einem Eintrag in @code{/etc/services} entsprechen."
 
 #. type: code{#1}
-#: doc/guix.texi:13870
+#: doc/guix.texi:16131
 #, no-wrap
 msgid "socket-type"
 msgstr "socket-type"
 
 #. type: table
-#: doc/guix.texi:13873
+#: doc/guix.texi:16134
 msgid "One of @code{'stream}, @code{'dgram}, @code{'raw}, @code{'rdm} or @code{'seqpacket}."
 msgstr "Entweder @code{'stream}, @code{'dgram}, @code{'raw}, @code{'rdm} oder @code{'seqpacket}."
 
 #. type: code{#1}
-#: doc/guix.texi:13873
+#: doc/guix.texi:16134
 #, no-wrap
 msgid "protocol"
 msgstr "protocol"
 
 #. type: table
-#: doc/guix.texi:13875
+#: doc/guix.texi:16136
 msgid "A string, must correspond to an entry in @code{/etc/protocols}."
 msgstr "Eine Zeichenkette, die einem Eintrag in @code{/etc/protocols} entsprechen muss."
 
 #. type: item
-#: doc/guix.texi:13875
+#: doc/guix.texi:16136
 #, no-wrap
 msgid "@code{wait?} (default: @code{#t})"
 msgstr "@code{wait?} (Vorgabe: @code{#t})"
 
 #. type: table
-#: doc/guix.texi:13878
+#: doc/guix.texi:16139
 msgid "Whether @command{inetd} should wait for the server to exit before listening to new service requests."
 msgstr "Ob @command{inetd} warten soll, bis der Server beendet ist, bevor es wieder auf neue Anfragen an den Dienst lauscht."
 
 #. type: table
-#: doc/guix.texi:13883
+#: doc/guix.texi:16144
 msgid "A string containing the user (and, optionally, group) name of the user as whom the server should run.  The group name can be specified in a suffix, separated by a colon or period, i.e.@: @code{\"user\"}, @code{\"user:group\"} or @code{\"user.group\"}."
 msgstr "Eine Zeichenkette mit dem Benutzernamen (und optional dem Gruppennamen) des Benutzers, als der dieser Server ausgeführt werden soll. Der Gruppenname kann als Suffix angegeben werden, getrennt durch einen Doppelpunkt oder Punkt, d.h.@: @code{\"benutzer\"}, @code{\"benutzer:gruppe\"} oder @code{\"benutzer.gruppe\"}."
 
 #. type: item
-#: doc/guix.texi:13883
+#: doc/guix.texi:16144
 #, no-wrap
 msgid "@code{program} (default: @code{\"internal\"})"
 msgstr "@code{program} (Vorgabe: @code{\"internal\"})"
 
 #. type: table
-#: doc/guix.texi:13886
+#: doc/guix.texi:16147
 msgid "The server program which will serve the requests, or @code{\"internal\"} if @command{inetd} should use a built-in service."
 msgstr "Das Serverprogramm, das die Anfragen bedienen soll, oder @code{\"internal\"}, wenn @command{inetd} einen eingebauten Dienst verwenden soll."
 
 #. type: table
-#: doc/guix.texi:13891
+#: doc/guix.texi:16152
 msgid "A list strings or file-like objects, which are the server program's arguments, starting with the zeroth argument, i.e.@: the name of the program itself.  For @command{inetd}'s internal services, this entry must be @code{'()} or @code{'(\"internal\")}."
 msgstr "Eine Liste von Zeichenketten oder dateiartigen Objekten, die dem Serverprogramm als Argumente übergeben werden, angefangen mit dem nullten Argument, d.h.@: dem Namen selbigen Serverprogramms. Bei in @command{inetd} eingebauten Diensten muss dieser Eintrag auf @code{'()} oder @code{'(\"internal\")} gesetzt sein."
 
 #. type: deftp
-#: doc/guix.texi:13895
+#: doc/guix.texi:16156
 msgid "@xref{Configuration file,,, inetutils, GNU Inetutils} for a more detailed discussion of each configuration field."
 msgstr "Siehe @ref{Configuration file,,, inetutils, GNU Inetutils} für eine mehr ins Detail gehende Erörterung jedes Konfigurationsfeldes."
 
 #. type: cindex
-#: doc/guix.texi:13897
+#: doc/guix.texi:16158
 #, no-wrap
 msgid "Tor"
 msgstr "Tor"
 
 #. type: defvr
-#: doc/guix.texi:13898
+#: doc/guix.texi:16159
 #, no-wrap
 msgid "{Scheme Variable} tor-service-type"
 msgstr "{Scheme-Variable} tor-service-type"
 
 #. type: defvr
-#: doc/guix.texi:13903
+#: doc/guix.texi:16164
 msgid "This is the type for a service that runs the @uref{https://torproject.org, Tor} anonymous networking daemon.  The service is configured using a @code{<tor-configuration>} record.  By default, the Tor daemon runs as the @code{tor} unprivileged user, which is a member of the @code{tor} group."
 msgstr "Dies ist der Diensttyp für den Dienst, der den @uref{https://torproject.org, Tor-Daemon} für anonyme Netzwerkrouten ausführt. Der Dienst benutzt für seine Konfiguration ein @code{<tor-configuration>}-Verbundsobjekt. Vorgegeben ist, dass der Tor-Daemon als „unprivilegierter“ Nutzer @code{tor} ausgeführt wird, einem Mitglied der @code{tor}-Benutzergruppe ohne besondere Berechtigungen."
 
 #. type: deftp
-#: doc/guix.texi:13906
+#: doc/guix.texi:16167
 #, no-wrap
 msgid "{Data Type} tor-configuration"
 msgstr "{Datentyp} tor-configuration"
 
 #. type: item
-#: doc/guix.texi:13908
+#: doc/guix.texi:16169
 #, no-wrap
 msgid "@code{tor} (default: @code{tor})"
 msgstr "@code{tor} (Vorgabe: @code{tor})"
 
 #. type: table
-#: doc/guix.texi:13913
+#: doc/guix.texi:16174
 msgid "The package that provides the Tor daemon.  This package is expected to provide the daemon at @file{bin/tor} relative to its output directory.  The default package is the @uref{https://www.torproject.org, Tor Project's} implementation."
 msgstr "Das Paket, das den Tor-Daemon zur Verfügung stellt. Von diesem Paket wird erwartet, dass es den Daemon unter dem Pfad @file{bin/tor} relativ zum Ausgabeverzeichnis verfügbar macht. Das vorgegebene Paket ist die Implementierung des @uref{https://www.torproject.org, Tor-Projekts}."
 
 #. type: item
-#: doc/guix.texi:13914
+#: doc/guix.texi:16175
 #, no-wrap
 msgid "@code{config-file} (default: @code{(plain-file \"empty\" \"\")})"
 msgstr "@code{config-file} (Vorgabe: @code{(plain-file \"empty\" \"\")})"
 
 #. type: table
-#: doc/guix.texi:13920
+#: doc/guix.texi:16181
 msgid "The configuration file to use.  It will be appended to a default configuration file, and the final configuration file will be passed to @code{tor} via its @code{-f} option.  This may be any ``file-like'' object (@pxref{G-Expressions, file-like objects}).  See @code{man tor} for details on the configuration file syntax."
 msgstr "Die Konfigurationsdatei, die benutzt werden soll. Sie wird an eine vorgegebene Konfigurationsdatei angehängt und die sich daraus ergebende Konfigurationsdatei wird dann an @code{tor} über dessen Befehlszeilenoption @code{-f} übergeben. Hier kann jedes „dateiartige“ Objekt (siehe @ref{G-Expressions, dateiartige Objekte}) angegeben werden. Siehe @code{man tor} für Details zur Syntax der Konfigurationsdatei."
 
 #. type: item
-#: doc/guix.texi:13921
+#: doc/guix.texi:16182
 #, no-wrap
 msgid "@code{hidden-services} (default: @code{'()})"
 msgstr "@code{hidden-services} (Vorgabe: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:13927
+#: doc/guix.texi:16188
 msgid "The list of @code{<hidden-service>} records to use.  For any hidden service you include in this list, appropriate configuration to enable the hidden service will be automatically added to the default configuration file.  You may conveniently create @code{<hidden-service>} records using the @code{tor-hidden-service} procedure described below."
 msgstr "Die Liste der zu benutzenden „versteckten Dienste“ als @code{<hidden-service>}-Verbundsobjekte. Für jeden versteckten Dienst, den Sie in dieser Liste eintragen, werden automatisch entsprechende Einstellungen zur vorgefertigten Konfigurationsdatei hinzugefügt. Sie können @code{<hidden-service>}-Verbundsobjekte bequem mit der unten beschriebenen Prozedur @code{tor-hidden-service} erzeugen lassen."
 
 #. type: item
-#: doc/guix.texi:13928
+#: doc/guix.texi:16189
 #, no-wrap
 msgid "@code{socks-socket-type} (default: @code{'tcp})"
 msgstr "@code{socks-socket-type} (Vorgabe: @code{'tcp})"
 
 #. type: table
-#: doc/guix.texi:13935
+#: doc/guix.texi:16196
 msgid "The default socket type that Tor should use for its SOCKS socket.  This must be either @code{'tcp} or @code{'unix}.  If it is @code{'tcp}, then by default Tor will listen on TCP port 9050 on the loopback interface (i.e., localhost).  If it is @code{'unix}, then Tor will listen on the UNIX domain socket @file{/var/run/tor/socks-sock}, which will be made writable by members of the @code{tor} group."
 msgstr "Welche Art von Socket Tor für seinen SOCKS-Socket in der Voreinstellung benutzen soll. Dafür muss entweder @code{'tcp} oder @code{'unix} angegeben werden. Für @code{'tcp} wird Tor nach Voreinstellung auf dem TCP-Port 9050 auf der loopback-Schnittstelle (d.h.@: localhost) lauschen. Für @code{'unix} wird Tor auf dem UNIX-Socket @file{/var/run/tor/socks-sock} lauschen, auf den Mitglieder der @code{tor}-Benutzergruppe Schreibberechtigung erhalten."
 
 #. type: table
-#: doc/guix.texi:13940
+#: doc/guix.texi:16201
 msgid "If you want to customize the SOCKS socket in more detail, leave @code{socks-socket-type} at its default value of @code{'tcp} and use @code{config-file} to override the default by providing your own @code{SocksPort} option."
 msgstr "Wenn Sie detailliertere Anpassungen am SOCKS-Socket vornehmen wollen, belassen Sie @code{socks-socket-type} bei seinem vorgegebenen Wert @code{'tcp} und benutzen Sie @code{config-file}, um diese Voreinstellung mit Ihrer eigenen @code{SocksPort}-Option zu überspielen."
 
 #. type: cindex
-#: doc/guix.texi:13943
+#: doc/guix.texi:16204
 #, no-wrap
 msgid "hidden service"
 msgstr "versteckter Dienst"
 
 #. type: deffn
-#: doc/guix.texi:13944
+#: doc/guix.texi:16205
 #, no-wrap
 msgid "{Scheme Procedure} tor-hidden-service @var{name} @var{mapping}"
 msgstr "{Scheme-Prozedur} tor-hidden-service @var{Name} @var{Zuordnung}"
 
 #. type: deffn
-#: doc/guix.texi:13947
+#: doc/guix.texi:16208
 msgid "Define a new Tor @dfn{hidden service} called @var{name} and implementing @var{mapping}.  @var{mapping} is a list of port/host tuples, such as:"
 msgstr "Hiermit wird ein neuer @dfn{versteckter Dienst} von Tor mit diesem @var{Name}n definiert, der die @var{Zuordnung} herstellt. Die @var{Zuordnung} ist eine Liste von Port-/Rechner-Tupeln wie hier:"
 
 #. type: example
-#: doc/guix.texi:13951
+#: doc/guix.texi:16212
 #, no-wrap
 msgid ""
 " '((22 \"127.0.0.1:22\")\n"
@@ -25795,288 +29564,288 @@ msgstr ""
 "   (80 \"127.0.0.1:8080\"))\n"
 
 #. type: deffn
-#: doc/guix.texi:13955
+#: doc/guix.texi:16216
 msgid "In this example, port 22 of the hidden service is mapped to local port 22, and port 80 is mapped to local port 8080."
 msgstr "In diesem Beispiel wird Port 22 des versteckten Dienstes an den ihm zugeordneten lokalen Port 22 weitergeleitet und Port 80 wird an den lokalen Port 8080 weitergeleitet."
 
 #. type: deffn
-#: doc/guix.texi:13959
+#: doc/guix.texi:16220
 msgid "This creates a @file{/var/lib/tor/hidden-services/@var{name}} directory, where the @file{hostname} file contains the @code{.onion} host name for the hidden service."
 msgstr "Dadurch wird ein Verzeichnis @file{/var/lib/tor/hidden-services/@var{Name}} erstellt, worin sich in der Datei @file{hostname} der @code{.onion}-Rechnername („Host“-Name) des versteckten Dienstes befindet."
 
 #. type: deffn
-#: doc/guix.texi:13962
+#: doc/guix.texi:16223
 msgid "See @uref{https://www.torproject.org/docs/tor-hidden-service.html.en, the Tor project's documentation} for more information."
 msgstr "Siehe @uref{https://www.torproject.org/docs/tor-hidden-service.html.en, die Dokumentation des Tor-Projekts} für weitere Informationen."
 
 #. type: Plain text
-#: doc/guix.texi:13965
+#: doc/guix.texi:16226
 msgid "The @code{(gnu services rsync)} module provides the following services:"
 msgstr "Das Modul @code{(gnu services rsync)} bietet die folgenden Dienste an:"
 
 #. type: Plain text
-#: doc/guix.texi:13969
+#: doc/guix.texi:16230
 msgid "You might want an rsync daemon if you have files that you want available so anyone (or just yourself) can download existing files or upload new files."
 msgstr "Sie könnten einen rsync-Daemon einsetzen wollen, um Dateien verfügbar zu machen, damit jeder (oder nur Sie) bestehende Dateien herunterladen oder neue Dateien hochladen kann."
 
 #. type: deffn
-#: doc/guix.texi:13970
+#: doc/guix.texi:16231
 #, no-wrap
 msgid "{Scheme Variable} rsync-service-type"
 msgstr "{Scheme-Variable} rsync-service-type"
 
 #. type: deffn
-#: doc/guix.texi:13974
+#: doc/guix.texi:16235
 msgid "This is the service type for the @uref{https://rsync.samba.org, rsync} daemon, The value for this service type is a @command{rsync-configuration} record as in this example:"
 msgstr "Dies ist der Diensttyp für den @uref{https://rsync.samba.org, rsync-Daemon}, er benutzt ein @command{rsync-configuration}-Verbundsobjekt wie in diesem Beispiel:"
 
 #. type: lisp
-#: doc/guix.texi:13977
+#: doc/guix.texi:16238
 #, no-wrap
 msgid "(service rsync-service-type)\n"
 msgstr "(service rsync-service-type)\n"
 
 #. type: deffn
-#: doc/guix.texi:13980
+#: doc/guix.texi:16241
 msgid "See below for details about @code{rsync-configuration}."
 msgstr "Siehe unten für Details zur @code{rsync-configuration}."
 
 #. type: deftp
-#: doc/guix.texi:13982
+#: doc/guix.texi:16243
 #, no-wrap
 msgid "{Data Type} rsync-configuration"
 msgstr "{Datentyp} rsync-configuration"
 
 #. type: deftp
-#: doc/guix.texi:13984
+#: doc/guix.texi:16245
 msgid "Data type representing the configuration for @code{rsync-service}."
 msgstr "Datentyp, der die Konfiguration für den @code{rsync-service} repräsentiert."
 
 #. type: item
-#: doc/guix.texi:13986
+#: doc/guix.texi:16247
 #, no-wrap
 msgid "@code{package} (default: @var{rsync})"
 msgstr "@code{package} (Vorgabe: @var{rsync})"
 
 #. type: table
-#: doc/guix.texi:13988
+#: doc/guix.texi:16249
 msgid "@code{rsync} package to use."
 msgstr "Zu benutzendes @code{rsync}-Paket."
 
 #. type: item
-#: doc/guix.texi:13989
+#: doc/guix.texi:16250
 #, no-wrap
 msgid "@code{port-number} (default: @code{873})"
 msgstr "@code{port-number} (Vorgabe: @code{873})"
 
 #. type: table
-#: doc/guix.texi:13993
+#: doc/guix.texi:16254
 msgid "TCP port on which @command{rsync} listens for incoming connections.  If port is less than @code{1024} @command{rsync} needs to be started as the @code{root} user and group."
 msgstr "Der TCP-Port, auf dem @command{rsync} auf eingehende Verbindungen lauscht. Wenn die Portnummer kleiner als @code{1024} ist, muss @command{rsync} als Administratornutzer @code{root} und auch mit dieser Benutzergruppe gestartet werden."
 
 #. type: item
-#: doc/guix.texi:13994
+#: doc/guix.texi:16255
 #, no-wrap
 msgid "@code{pid-file} (default: @code{\"/var/run/rsyncd/rsyncd.pid\"})"
 msgstr "@code{pid-file} (Vorgabe: @code{\"/var/run/rsyncd/rsyncd.pid\"})"
 
 #. type: table
-#: doc/guix.texi:13996
+#: doc/guix.texi:16257
 msgid "Name of the file where @command{rsync} writes its PID."
 msgstr "Der Name der Datei, in die @command{rsync} seine PID schreibt."
 
 #. type: item
-#: doc/guix.texi:13997
+#: doc/guix.texi:16258
 #, no-wrap
 msgid "@code{lock-file} (default: @code{\"/var/run/rsyncd/rsyncd.lock\"})"
 msgstr "@code{lock-file} (Vorgabe: @code{\"/var/run/rsyncd/rsyncd.lock\"})"
 
 #. type: table
-#: doc/guix.texi:13999
+#: doc/guix.texi:16260
 msgid "Name of the file where @command{rsync} writes its lock file."
 msgstr "Der Name der Datei, die @command{rsync} als seine Sperrdatei verwendet."
 
 #. type: item
-#: doc/guix.texi:14000
+#: doc/guix.texi:16261
 #, no-wrap
 msgid "@code{log-file} (default: @code{\"/var/log/rsyncd.log\"})"
 msgstr "@code{log-file} (Vorgabe: @code{\"/var/log/rsyncd.log\"})"
 
 #. type: table
-#: doc/guix.texi:14002
+#: doc/guix.texi:16263 doc/guix.texi:16700
 msgid "Name of the file where @command{rsync} writes its log file."
 msgstr "Der Name der Datei, in die @command{rsync} seine Protokolle schreibt."
 
 #. type: item
-#: doc/guix.texi:14003
+#: doc/guix.texi:16264
 #, no-wrap
 msgid "@code{use-chroot?} (default: @var{#t})"
 msgstr "@code{use-chroot?} (Vorgabe: @var{#t})"
 
 #. type: table
-#: doc/guix.texi:14005
+#: doc/guix.texi:16266
 msgid "Whether to use chroot for @command{rsync} shared directory."
 msgstr "Ob chroot auf das über @command{rsync} geteilte Verzeichnis angewandt werden soll."
 
 #. type: item
-#: doc/guix.texi:14006
+#: doc/guix.texi:16267
 #, no-wrap
 msgid "@code{share-path} (default: @file{/srv/rsync})"
 msgstr "@code{share-path} (Vorgabe: @file{/srv/rsync})"
 
 #. type: table
-#: doc/guix.texi:14008
+#: doc/guix.texi:16269
 msgid "Location of the @command{rsync} shared directory."
 msgstr "Der Ort des Verzeichnisses, das @command{rsync} teilt, d.h.@: seine „Shared Directory“."
 
 #. type: item
-#: doc/guix.texi:14009
+#: doc/guix.texi:16270
 #, no-wrap
 msgid "@code{share-comment} (default: @code{\"Rsync share\"})"
 msgstr "@code{share-comment} (Vorgabe: @code{\"Rsync share\"})"
 
 #. type: table
-#: doc/guix.texi:14011
+#: doc/guix.texi:16272
 msgid "Comment of the @command{rsync} shared directory."
 msgstr "Kommentar zum von @command{rsync} geteilten Verzeichnis."
 
 #. type: item
-#: doc/guix.texi:14012
+#: doc/guix.texi:16273
 #, no-wrap
 msgid "@code{read-only?} (default: @var{#f})"
 msgstr "@code{read-only?} (Vorgabe: @var{#f})"
 
 #. type: table
-#: doc/guix.texi:14014
+#: doc/guix.texi:16275
 msgid "Read-write permissions to shared directory."
 msgstr "Bestimmt die Lese- und Schreibberechtigungen für das gemeinsame Verzeichnis."
 
 #. type: item
-#: doc/guix.texi:14015
+#: doc/guix.texi:16276
 #, no-wrap
 msgid "@code{timeout} (default: @code{300})"
 msgstr "@code{timeout} (Vorgabe: @code{300})"
 
 #. type: table
-#: doc/guix.texi:14017
+#: doc/guix.texi:16278
 msgid "I/O timeout in seconds."
 msgstr "Ein-/Ausgabe-Zeitbeschränkung in Sekunden."
 
 #. type: item
-#: doc/guix.texi:14018
+#: doc/guix.texi:16279
 #, no-wrap
 msgid "@code{user} (default: @var{\"root\"})"
 msgstr "@code{user} (Vorgabe: @var{\"root\"})"
 
 #. type: table
-#: doc/guix.texi:14020
+#: doc/guix.texi:16281
 msgid "Owner of the @code{rsync} process."
 msgstr "Das Benutzerkonto, dem der @code{rsync}-Prozess gehören soll."
 
 #. type: item
-#: doc/guix.texi:14021
+#: doc/guix.texi:16282
 #, no-wrap
 msgid "@code{group} (default: @var{\"root\"})"
 msgstr "@code{group} (Vorgabe: @var{\"root\"})"
 
 #. type: table
-#: doc/guix.texi:14023
+#: doc/guix.texi:16284
 msgid "Group of the @code{rsync} process."
 msgstr "Die Benutzergruppe des @code{rsync}-Prozesses."
 
 #. type: item
-#: doc/guix.texi:14024
+#: doc/guix.texi:16285
 #, no-wrap
 msgid "@code{uid} (default: @var{\"rsyncd\"})"
 msgstr "@code{uid} (Vorgabe: @var{\"rsyncd\"})"
 
 #. type: table
-#: doc/guix.texi:14027
+#: doc/guix.texi:16288
 msgid "User name or user ID that file transfers to and from that module should take place as when the daemon was run as @code{root}."
 msgstr "Der Benutzername oder der Benutzeridentifikator (d.h.@: die „User-ID“), mit dem Dateiübertragungen zum und vom Modul stattfinden sollen, wenn der Daemon als Administratornutzer @code{root} läuft."
 
 #. type: item
-#: doc/guix.texi:14028
+#: doc/guix.texi:16289
 #, no-wrap
 msgid "@code{gid} (default: @var{\"rsyncd\"})"
 msgstr "@code{gid} (Vorgabe: @var{\"rsyncd\"})"
 
 #. type: table
-#: doc/guix.texi:14030
+#: doc/guix.texi:16291 doc/guix.texi:16685
 msgid "Group name or group ID that will be used when accessing the module."
 msgstr "Benutzergruppenname oder Gruppenidentifikator („Group-ID“), mit dem auf das Modul zugegriffen wird."
 
 #. type: Plain text
-#: doc/guix.texi:14035
+#: doc/guix.texi:16296
 msgid "Furthermore, @code{(gnu services ssh)} provides the following services."
 msgstr "Des Weiteren bietet das Modul @code{(gnu services ssh)} die folgenden Dienste an."
 
 #. type: cindex
-#: doc/guix.texi:14035 doc/guix.texi:14074 doc/guix.texi:27303
+#: doc/guix.texi:16296 doc/guix.texi:16335 doc/guix.texi:31468
 #, no-wrap
 msgid "SSH"
 msgstr "SSH"
 
 #. type: cindex
-#: doc/guix.texi:14036 doc/guix.texi:14075 doc/guix.texi:27304
+#: doc/guix.texi:16297 doc/guix.texi:16336 doc/guix.texi:31469
 #, no-wrap
 msgid "SSH server"
 msgstr "SSH-Server"
 
 #. type: deffn
-#: doc/guix.texi:14038
+#: doc/guix.texi:16299
 #, no-wrap
 msgid "{Scheme Procedure} lsh-service [#:host-key \"/etc/lsh/host-key\"] @"
 msgstr "{Scheme-Prozedur} lsh-service [#:host-key \"/etc/lsh/host-key\"] @"
 
 #. type: deffn
-#: doc/guix.texi:14047
+#: doc/guix.texi:16308
 msgid "[#:daemonic? #t] [#:interfaces '()] [#:port-number 22] @ [#:allow-empty-passwords? #f] [#:root-login? #f] @ [#:syslog-output? #t] [#:x11-forwarding? #t] @ [#:tcp/ip-forwarding? #t] [#:password-authentication? #t] @ [#:public-key-authentication? #t] [#:initialize? #t] Run the @command{lshd} program from @var{lsh} to listen on port @var{port-number}.  @var{host-key} must designate a file containing the host key, and readable only by root."
 msgstr "[#:daemonic? #t] [#:interfaces '()] [#:port-number 22] @ [#:allow-empty-passwords? #f] [#:root-login? #f] @ [#:syslog-output? #t] [#:x11-forwarding? #t] @ [#:tcp/ip-forwarding? #t] [#:password-authentication? #t] @ [#:public-key-authentication? #t] [#:initialize? #t] Das @command{lshd}-Programm auf dem @var{lsh}-Paket so ausführen, dass es auf dem Port mit Portnummer @var{port-number} lauscht. @var{host-key} muss eine Datei angeben, die den Wirtsschlüssel enthält, die nur für den Administratornutzer lesbar sein darf."
 
 #. type: deffn
-#: doc/guix.texi:14053
+#: doc/guix.texi:16314
 msgid "When @var{daemonic?} is true, @command{lshd} will detach from the controlling terminal and log its output to syslogd, unless one sets @var{syslog-output?} to false.  Obviously, it also makes lsh-service depend on existence of syslogd service.  When @var{pid-file?} is true, @command{lshd} writes its PID to the file called @var{pid-file}."
 msgstr "Wenn @var{daemonic?} wahr ist, entkoppelt sich @command{lshd} vom Terminal, auf dem er läuft, und schickt seine Protokolle an syslogd, außer @var{syslog-output?} ist auf falsch gesetzt. Selbstverständlich hängt der lsh-service dann auch von der Existenz eines syslogd-Dienstes ab. Wenn @var{pid-file?} wahr ist, schreibt @command{lshd} seine PID in die Datei namens @var{pid-file}."
 
 #. type: deffn
-#: doc/guix.texi:14057
+#: doc/guix.texi:16318
 msgid "When @var{initialize?} is true, automatically create the seed and host key upon service activation if they do not exist yet.  This may take long and require interaction."
 msgstr "Wenn @var{initialize?} wahr ist, wird der Startwert zur Verschlüsselung ebenso wie der Wirtsschlüssel bei der Dienstaktivierung erstellt, falls sie noch nicht existieren. Das kann lange dauern und Anwenderinteraktion kann dabei erforderlich sein."
 
 #. type: deffn
-#: doc/guix.texi:14062
+#: doc/guix.texi:16323
 msgid "When @var{initialize?} is false, it is up to the user to initialize the randomness generator (@pxref{lsh-make-seed,,, lsh, LSH Manual}), and to create a key pair with the private key stored in file @var{host-key} (@pxref{lshd basics,,, lsh, LSH Manual})."
 msgstr "Wenn @var{initialize?} falsch ist, bleibt es dem Nutzer überlassen, den Zufallsgenerator zu initialisieren (siehe @ref{lsh-make-seed,,, lsh, LSH Manual}) und ein Schlüsselpaar zu erzeugen, dessen privater Schlüssel in der mit @var{host-key} angegebenen Datei steht (siehe @ref{lshd basics,,, lsh, LSH Manual})."
 
 #. type: deffn
-#: doc/guix.texi:14066
+#: doc/guix.texi:16327
 msgid "When @var{interfaces} is empty, lshd listens for connections on all the network interfaces; otherwise, @var{interfaces} must be a list of host names or addresses."
 msgstr "Wenn @var{interfaces} leer ist, lauscht lshd an allen Netzwerkschnittstellen auf Verbindungen, andernfalls muss @var{interfaces} eine Liste von Rechnernamen („Host“-Namen) oder Adressen bezeichnen."
 
 #. type: deffn
-#: doc/guix.texi:14070
+#: doc/guix.texi:16331
 msgid "@var{allow-empty-passwords?} specifies whether to accept log-ins with empty passwords, and @var{root-login?} specifies whether to accept log-ins as root."
 msgstr "@var{allow-empty-passwords?} gibt an, ob Anmeldungen mit leeren Passwörtern akzeptiert werden sollen, und @var{root-login?} gibt an, ob Anmeldungen als Administratornutzer „root“ akzeptiert werden sollen."
 
 #. type: deffn
-#: doc/guix.texi:14072
+#: doc/guix.texi:16333
 msgid "The other options should be self-descriptive."
 msgstr "Die anderen Felder sollten selbsterklärend sein."
 
 #. type: deffn
-#: doc/guix.texi:14076
+#: doc/guix.texi:16337
 #, no-wrap
 msgid "{Scheme Variable} openssh-service-type"
 msgstr "{Scheme-Variable} openssh-service-type"
 
 #. type: deffn
-#: doc/guix.texi:14080
+#: doc/guix.texi:16341
 msgid "This is the type for the @uref{http://www.openssh.org, OpenSSH} secure shell daemon, @command{sshd}.  Its value must be an @code{openssh-configuration} record as in this example:"
 msgstr "Dies ist der Diensttyp für den @uref{http://www.openssh.org, OpenSSH-Secure-Shell-Daemon}, @command{sshd}. Sein Wert muss ein @code{openssh-configuration}-Verbundsobjekt wie in diesem Beispiel sein:"
 
 #. type: lisp
-#: doc/guix.texi:14089
+#: doc/guix.texi:16350
 #, no-wrap
 msgid ""
 "(service openssh-service-type\n"
@@ -26096,17 +29865,17 @@ msgstr ""
 "               (\"bob\" ,(local-file \"bob.pub\"))))))\n"
 
 #. type: deffn
-#: doc/guix.texi:14092
+#: doc/guix.texi:16353
 msgid "See below for details about @code{openssh-configuration}."
 msgstr "Siehe unten für Details zur @code{openssh-configuration}."
 
 #. type: deffn
-#: doc/guix.texi:14095
+#: doc/guix.texi:16356
 msgid "This service can be extended with extra authorized keys, as in this example:"
 msgstr "Dieser Dienst kann mit weiteren autorisierten Schlüsseln erweitert werden, wie in diesem Beispiel:"
 
 #. type: lisp
-#: doc/guix.texi:14100
+#: doc/guix.texi:16361
 #, no-wrap
 msgid ""
 "(service-extension openssh-service-type\n"
@@ -26118,192 +29887,203 @@ msgstr ""
 "                             ,(local-file \"charlie.pub\")))))\n"
 
 #. type: deftp
-#: doc/guix.texi:14103
+#: doc/guix.texi:16364
 #, no-wrap
 msgid "{Data Type} openssh-configuration"
 msgstr "{Datentyp} openssh-configuration"
 
 #. type: deftp
-#: doc/guix.texi:14105
+#: doc/guix.texi:16366
 msgid "This is the configuration record for OpenSSH's @command{sshd}."
 msgstr "Dies ist der Verbundstyp für die Konfiguration von OpenSSHs @command{sshd}."
 
 #. type: item
-#: doc/guix.texi:14107
+#: doc/guix.texi:16368
+#, no-wrap
+msgid "@code{openssh} (default @var{openssh})"
+msgstr "@code{openssh} (Vorgabe: @var{openssh})"
+
+#. type: table
+#: doc/guix.texi:16370
+msgid "The Openssh package to use."
+msgstr "Das zu benutzende OpenSSH-Paket."
+
+#. type: item
+#: doc/guix.texi:16371
 #, no-wrap
 msgid "@code{pid-file} (default: @code{\"/var/run/sshd.pid\"})"
 msgstr "@code{pid-file} (Vorgabe: @code{\"/var/run/sshd.pid\"})"
 
 #. type: table
-#: doc/guix.texi:14109
+#: doc/guix.texi:16373
 msgid "Name of the file where @command{sshd} writes its PID."
 msgstr "Der Name der Datei, in die @command{sshd} seine PID schreibt."
 
 #. type: item
-#: doc/guix.texi:14110
+#: doc/guix.texi:16374
 #, no-wrap
 msgid "@code{port-number} (default: @code{22})"
 msgstr "@code{port-number} (Vorgabe: @code{22})"
 
 #. type: table
-#: doc/guix.texi:14112
+#: doc/guix.texi:16376
 msgid "TCP port on which @command{sshd} listens for incoming connections."
 msgstr "Der TCP-Port, auf dem @command{sshd} auf eingehende Verbindungen lauscht."
 
 #. type: item
-#: doc/guix.texi:14113
+#: doc/guix.texi:16377
 #, no-wrap
 msgid "@code{permit-root-login} (default: @code{#f})"
 msgstr "@code{permit-root-login} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:14118
+#: doc/guix.texi:16382
 msgid "This field determines whether and when to allow logins as root.  If @code{#f}, root logins are disallowed; if @code{#t}, they are allowed.  If it's the symbol @code{'without-password}, then root logins are permitted but not with password-based authentication."
 msgstr "Dieses Feld bestimmt, ob und wann Anmeldungen als Administratornutzer „root“ erlaubt sind. Wenn es @code{#f} ist, sind Anmeldungen als Administrator gesperrt, bei @code{#t} sind sie erlaubt. Wird hier das Symbol @code{'without-password} angegeben, dann sind Anmeldungen als Administrator erlaubt, aber nur, wenn keine passwortbasierte Authentifizierung verwendet wird."
 
 #. type: item
-#: doc/guix.texi:14119 doc/guix.texi:14280
+#: doc/guix.texi:16383 doc/guix.texi:16544
 #, no-wrap
 msgid "@code{allow-empty-passwords?} (default: @code{#f})"
 msgstr "@code{allow-empty-passwords?} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:14122
+#: doc/guix.texi:16386
 msgid "When true, users with empty passwords may log in.  When false, they may not."
 msgstr "Wenn dies auf wahr gesetzt ist, können sich Nutzer, deren Passwort leer ist, anmelden. Ist es falsch, können sie es nicht."
 
 #. type: item
-#: doc/guix.texi:14123 doc/guix.texi:14283
+#: doc/guix.texi:16387 doc/guix.texi:16547
 #, no-wrap
 msgid "@code{password-authentication?} (default: @code{#t})"
 msgstr "@code{password-authentication?} (Vorgabe: @code{#t})"
 
 #. type: table
-#: doc/guix.texi:14126
+#: doc/guix.texi:16390
 msgid "When true, users may log in with their password.  When false, they have other authentication methods."
 msgstr "Wenn dies wahr ist, können sich Benutzer mit ihrem Passwort anmelden. Wenn es falsch ist, müssen sie andere Authentisierungsmethoden benutzen."
 
 #. type: item
-#: doc/guix.texi:14127
+#: doc/guix.texi:16391
 #, no-wrap
 msgid "@code{public-key-authentication?} (default: @code{#t})"
 msgstr "@code{public-key-authentication?} (Vorgabe: @code{#t})"
 
 #. type: table
-#: doc/guix.texi:14130
+#: doc/guix.texi:16394
 msgid "When true, users may log in using public key authentication.  When false, users have to use other authentication method."
 msgstr "Wenn dies wahr ist, können Benutzer zur Anmeldung mit ihrem öffentlichen Schlüssel authentifiziert werden. Wenn es falsch ist, müssen sie andere Authentisierungsmethoden benutzen."
 
 #. type: table
-#: doc/guix.texi:14133
+#: doc/guix.texi:16397
 msgid "Authorized public keys are stored in @file{~/.ssh/authorized_keys}.  This is used only by protocol version 2."
 msgstr "Autorisierte öffentliche Schlüssel werden in @file{~/.ssh/authorized_keys} gespeichert. Dies wird nur für Protokollversion 2 benutzt."
 
 #. type: item
-#: doc/guix.texi:14134
+#: doc/guix.texi:16398
 #, no-wrap
 msgid "@code{x11-forwarding?} (default: @code{#f})"
 msgstr "@code{x11-forwarding?} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:14138
+#: doc/guix.texi:16402
 msgid "When true, forwarding of X11 graphical client connections is enabled---in other words, @command{ssh} options @option{-X} and @option{-Y} will work."
 msgstr "Wenn dies auf wahr gesetzt ist, ist das Weiterleiten von Verbindungen an grafische X11-Clients erlaubt — mit anderen Worten funktionieren dann die @command{ssh}-Befehlszeilenoptionen @option{-X} und @option{-Y}."
 
 #. type: item
-#: doc/guix.texi:14139
+#: doc/guix.texi:16403
 #, no-wrap
 msgid "@code{allow-agent-forwarding?} (default: @code{#t})"
 msgstr "@code{allow-agent-forwarding?} (Vorgabe: @code{#t})"
 
 #. type: table
-#: doc/guix.texi:14141
+#: doc/guix.texi:16405
 msgid "Whether to allow agent forwarding."
 msgstr "Ob Weiterleitung an den SSH-Agenten zugelassen werden soll."
 
 #. type: item
-#: doc/guix.texi:14142
+#: doc/guix.texi:16406
 #, no-wrap
 msgid "@code{allow-tcp-forwarding?} (default: @code{#t})"
 msgstr "@code{allow-tcp-forwarding?} (Vorgabe: @code{#t})"
 
 #. type: table
-#: doc/guix.texi:14144
+#: doc/guix.texi:16408
 msgid "Whether to allow TCP forwarding."
 msgstr "Ob Weiterleitung von TCP-Kommunikation zugelassen werden soll."
 
 #. type: item
-#: doc/guix.texi:14145
+#: doc/guix.texi:16409
 #, no-wrap
 msgid "@code{gateway-ports?} (default: @code{#f})"
 msgstr "@code{gateway-ports?} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:14147
+#: doc/guix.texi:16411
 msgid "Whether to allow gateway ports."
 msgstr "Ob Ports als Zugang für eingehende Verbindungen („Gateway-Ports“) weitergeleitet werden dürfen."
 
 #. type: item
-#: doc/guix.texi:14148
+#: doc/guix.texi:16412
 #, no-wrap
 msgid "@code{challenge-response-authentication?} (default: @code{#f})"
 msgstr "@code{challenge-response-authentication?} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:14151
+#: doc/guix.texi:16415
 msgid "Specifies whether challenge response authentication is allowed (e.g.@: via PAM)."
 msgstr "Gibt an, ob „Challenge-Response“-Authentifizierung zugelassen wird (z.B.@: über PAM)."
 
 #. type: item
-#: doc/guix.texi:14152
+#: doc/guix.texi:16416
 #, no-wrap
 msgid "@code{use-pam?} (default: @code{#t})"
 msgstr "@code{use-pam?} (Vorgabe: @code{#t})"
 
 #. type: table
-#: doc/guix.texi:14158
+#: doc/guix.texi:16422
 msgid "Enables the Pluggable Authentication Module interface.  If set to @code{#t}, this will enable PAM authentication using @code{challenge-response-authentication?} and @code{password-authentication?}, in addition to PAM account and session module processing for all authentication types."
 msgstr "Aktiviert die Pluggable-Authentication-Module-Schnittstelle. Wenn es auf @code{#t} gesetzt ist, wird dadurch PAM-Authentisierung über @code{challenge-response-authentication?} und @code{password-authentication?} aktiviert, zusätzlich zur Verarbeitung von PAM-Konten und Sitzungsmodulen für alle Authentisierungsarten."
 
 #. type: table
-#: doc/guix.texi:14163
+#: doc/guix.texi:16427
 msgid "Because PAM challenge response authentication usually serves an equivalent role to password authentication, you should disable either @code{challenge-response-authentication?} or @code{password-authentication?}."
 msgstr "Weil PAM-Challenge-Response-Authentisierung oft für dieselben Zwecke wie Passwortauthentisierung eingesetzt wird, sollten Sie entweder @code{challenge-response-authentication?} oder @code{password-authentication?} deaktivieren."
 
 #. type: item
-#: doc/guix.texi:14164
+#: doc/guix.texi:16428
 #, no-wrap
 msgid "@code{print-last-log?} (default: @code{#t})"
 msgstr "@code{print-last-log?} (Vorgabe: @code{#t})"
 
 #. type: table
-#: doc/guix.texi:14167
+#: doc/guix.texi:16431
 msgid "Specifies whether @command{sshd} should print the date and time of the last user login when a user logs in interactively."
 msgstr "Hiermit wird angegeben, ob @command{sshd} Datum und Uhrzeit der letzten Anmeldung anzeigen soll, wenn sich ein Benutzer interaktiv anmeldet."
 
 #. type: item
-#: doc/guix.texi:14168
+#: doc/guix.texi:16432
 #, no-wrap
 msgid "@code{subsystems} (default: @code{'((\"sftp\" \"internal-sftp\"))})"
 msgstr "@code{subsystems} (Vorgabe: @code{'((\"sftp\" \"internal-sftp\"))})"
 
 #. type: table
-#: doc/guix.texi:14170
+#: doc/guix.texi:16434
 msgid "Configures external subsystems (e.g.@: file transfer daemon)."
 msgstr "Hiermit werden externe Subsysteme konfiguriert (z.B.@: ein Dateiübertragungsdaemon)."
 
 #. type: table
-#: doc/guix.texi:14174
+#: doc/guix.texi:16438
 msgid "This is a list of two-element lists, each of which containing the subsystem name and a command (with optional arguments) to execute upon subsystem request."
 msgstr "Diese werden als Liste von zweielementigen Listen angegeben, von denen jede den Namen des Subsystems und einen Befehl (mit optionalen Befehlszeilenargumenten) benennt, der bei einer Anfrage an das Subsystem ausgeführt werden soll."
 
 #. type: table
-#: doc/guix.texi:14177
-msgid "The command @command{internal-sftp} implements an in-process SFTP server.  Alternately, one can specify the @command{sftp-server} command:"
+#: doc/guix.texi:16441
+msgid "The command @command{internal-sftp} implements an in-process SFTP server.  Alternatively, one can specify the @command{sftp-server} command:"
 msgstr "Der Befehl @command{internal-sftp} implementiert einen SFTP-Server im selben Prozess. Alternativ kann man den @command{sftp-server}-Befehl angeben:"
 
 #. type: lisp
-#: doc/guix.texi:14182
+#: doc/guix.texi:16446
 #, no-wrap
 msgid ""
 "(service openssh-service-type\n"
@@ -26317,28 +30097,28 @@ msgstr ""
 "           `((\"sftp\" ,(file-append openssh \"/libexec/sftp-server\"))))))\n"
 
 #. type: item
-#: doc/guix.texi:14184
+#: doc/guix.texi:16448
 #, no-wrap
 msgid "@code{accepted-environment} (default: @code{'()})"
 msgstr "@code{accepted-environment} (Vorgabe: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:14186
+#: doc/guix.texi:16450
 msgid "List of strings describing which environment variables may be exported."
 msgstr "Eine Liste von Zeichenketten, die die Umgebungsvariablen benennen, die exportiert werden dürfen."
 
 #. type: table
-#: doc/guix.texi:14189
+#: doc/guix.texi:16453
 msgid "Each string gets on its own line.  See the @code{AcceptEnv} option in @code{man sshd_config}."
 msgstr "Jede Zeichenkette wird zu einer eigenen Zeile in der Konfigurationsdatei. Siehe die Option @code{AcceptEnv} in @code{man sshd_config}."
 
 #. type: table
-#: doc/guix.texi:14194
-msgid "This example allows ssh-clients to export the @code{COLORTERM} variable.  It is set by terminal emulators, which support colors.  You can use it in your shell's resource file to enable colors for the prompt and commands if this variable is set."
-msgstr "Mit diesem Beispiel können SSH-Clients die Umgebungsvariable @code{COLORTERM} exportieren. Sie wird von Terminal-Emulatoren gesetzt, die Farben unterstützen. Sie können Sie in der Ressourcendatei Ihrer Shell benutzen, um Farben in der Eingabeaufforderung und in Befehlen zu aktivieren, wenn diese Variable gesetzt ist."
+#: doc/guix.texi:16458
+msgid "This example allows ssh-clients to export the @env{COLORTERM} variable.  It is set by terminal emulators, which support colors.  You can use it in your shell's resource file to enable colors for the prompt and commands if this variable is set."
+msgstr "Mit diesem Beispiel können SSH-Clients die Umgebungsvariable @env{COLORTERM} exportieren. Sie wird von Terminal-Emulatoren gesetzt, die Farben unterstützen. Sie können Sie in der Ressourcendatei Ihrer Shell benutzen, um Farben in der Eingabeaufforderung und in Befehlen zu aktivieren, wenn diese Variable gesetzt ist."
 
 #. type: lisp
-#: doc/guix.texi:14199
+#: doc/guix.texi:16463
 #, no-wrap
 msgid ""
 "(service openssh-service-type\n"
@@ -26350,30 +30130,30 @@ msgstr ""
 "           (accepted-environment '(\"COLORTERM\"))))\n"
 
 #. type: item
-#: doc/guix.texi:14201
+#: doc/guix.texi:16465
 #, no-wrap
 msgid "@code{authorized-keys} (default: @code{'()})"
 msgstr "@code{authorized-keys} (Vorgabe: @code{'()})"
 
 #. type: cindex
-#: doc/guix.texi:14202
+#: doc/guix.texi:16466
 #, no-wrap
 msgid "authorized keys, SSH"
 msgstr "Autorisierte Schlüssel, SSH"
 
 #. type: cindex
-#: doc/guix.texi:14203
+#: doc/guix.texi:16467
 #, no-wrap
 msgid "SSH authorized keys"
 msgstr "SSH, autorisierte Schlüssel"
 
 #. type: table
-#: doc/guix.texi:14207
+#: doc/guix.texi:16471
 msgid "This is the list of authorized keys.  Each element of the list is a user name followed by one or more file-like objects that represent SSH public keys.  For example:"
 msgstr "Dies ist die Liste der autorisierten Schlüssel. Jedes Element der Liste ist ein Benutzername gefolgt von einem oder mehr dateiartigen Objekten, die öffentliche SSH-Schlüssel repräsentieren. Zum Beispiel werden mit"
 
 #. type: lisp
-#: doc/guix.texi:14214
+#: doc/guix.texi:16478
 #, no-wrap
 msgid ""
 "(openssh-configuration\n"
@@ -26389,44 +30169,44 @@ msgstr ""
 "      (\"root\" ,(local-file \"rekado.pub\") ,(local-file \"chris.pub\")))))\n"
 
 #. type: table
-#: doc/guix.texi:14219
+#: doc/guix.texi:16483
 msgid "registers the specified public keys for user accounts @code{rekado}, @code{chris}, and @code{root}."
 msgstr "die angegebenen öffentlichen Schlüssel für die Benutzerkonten @code{rekado}, @code{chris} und @code{root} registriert."
 
 #. type: table
-#: doc/guix.texi:14222
+#: doc/guix.texi:16486
 msgid "Additional authorized keys can be specified @i{via} @code{service-extension}."
 msgstr "Weitere autorisierte Schlüssel können als @code{service-extension} hinzugefügt werden."
 
 #. type: table
-#: doc/guix.texi:14225
+#: doc/guix.texi:16489
 msgid "Note that this does @emph{not} interfere with the use of @file{~/.ssh/authorized_keys}."
 msgstr "Beachten Sie, dass das hier neben @file{~/.ssh/authorized_keys} @emph{ohne} sich zu stören benutzt werden kann."
 
 #. type: item
-#: doc/guix.texi:14226
+#: doc/guix.texi:16490
 #, no-wrap
 msgid "@code{log-level} (default: @code{'info})"
 msgstr "@code{log-level} (Vorgabe: @code{'info})"
 
 #. type: table
-#: doc/guix.texi:14230
+#: doc/guix.texi:16494
 msgid "This is a symbol specifying the logging level: @code{quiet}, @code{fatal}, @code{error}, @code{info}, @code{verbose}, @code{debug}, etc.  See the man page for @file{sshd_config} for the full list of level names."
 msgstr "Dieses Symbol gibt die Stufe der Protokollierung an: @code{quiet} (schweigsam), @code{fatal}, @code{error}, @code{info}, @code{verbose} (ausführlich), @code{debug} (Fehlersuche) etc. Siehe die Handbuchseite für @file{sshd_config} für die vollständige Liste der Stufenbezeichnungen."
 
 #. type: item
-#: doc/guix.texi:14231 doc/guix.texi:20348
+#: doc/guix.texi:16495 doc/guix.texi:23061
 #, no-wrap
 msgid "@code{extra-content} (default: @code{\"\"})"
 msgstr "@code{extra-content} (Vorgabe: @code{\"\"})"
 
 #. type: table
-#: doc/guix.texi:14236
+#: doc/guix.texi:16500
 msgid "This field can be used to append arbitrary text to the configuration file.  It is especially useful for elaborate configurations that cannot be expressed otherwise.  This configuration, for example, would generally disable root logins, but permit them from one specific IP address:"
 msgstr "Dieses Feld kann benutzt werden, um beliebigen Text an die Konfigurationsdatei anzuhängen. Es ist besonders bei ausgeklügelten Konfigurationen nützlich, die anders nicht ausgedrückt werden können. Zum Beispiel würden mit dieser Konfiguration Anmeldungen als Administratornutzer „root“ grundsätzlich untersagt, lediglich für eine bestimmte IP-Adresse wären sie zugelassen:"
 
 #. type: lisp
-#: doc/guix.texi:14242
+#: doc/guix.texi:16506
 #, no-wrap
 msgid ""
 "(openssh-configuration\n"
@@ -26440,23 +30220,23 @@ msgstr ""
 "  PermitRootLogin yes\"))\n"
 
 #. type: deffn
-#: doc/guix.texi:14247
+#: doc/guix.texi:16511
 #, no-wrap
 msgid "{Scheme Procedure} dropbear-service [@var{config}]"
 msgstr "{Scheme-Prozedur} dropbear-service [@var{Konfiguration}]"
 
 #. type: deffn
-#: doc/guix.texi:14251
+#: doc/guix.texi:16515
 msgid "Run the @uref{https://matt.ucc.asn.au/dropbear/dropbear.html,Dropbear SSH daemon} with the given @var{config}, a @code{<dropbear-configuration>} object."
 msgstr "Den @uref{https://matt.ucc.asn.au/dropbear/dropbear.html,Dropbear-SSH-Daemon} mit der angegebenen @var{Konfiguration} ausführen, einem @code{<dropbear-configuration>}-Objekt."
 
 #. type: deffn
-#: doc/guix.texi:14254
+#: doc/guix.texi:16518
 msgid "For example, to specify a Dropbear service listening on port 1234, add this call to the operating system's @code{services} field:"
 msgstr "Wenn Sie zum Beispiel einen Dropbear-Dienst angeben möchten, der auf Port 1234 lauscht, dann fügen Sie diesen Aufruf ins @code{services}-Feld des Betriebssystems ein:"
 
 #. type: lisp
-#: doc/guix.texi:14258
+#: doc/guix.texi:16522
 #, no-wrap
 msgid ""
 "(dropbear-service (dropbear-configuration\n"
@@ -26466,99 +30246,428 @@ msgstr ""
 "                    (port-number 1234)))\n"
 
 #. type: deftp
-#: doc/guix.texi:14261
+#: doc/guix.texi:16525
 #, no-wrap
 msgid "{Data Type} dropbear-configuration"
 msgstr "{Datentyp} dropbear-configuration"
 
 #. type: deftp
-#: doc/guix.texi:14263
+#: doc/guix.texi:16527
 msgid "This data type represents the configuration of a Dropbear SSH daemon."
 msgstr "Dieser Datentyp repräsentiert die Konfiguration eines Dropbear-SSH-Daemons."
 
 #. type: item
-#: doc/guix.texi:14265
+#: doc/guix.texi:16529
 #, no-wrap
 msgid "@code{dropbear} (default: @var{dropbear})"
 msgstr "@code{dropbear} (Vorgabe: @var{dropbear})"
 
 #. type: table
-#: doc/guix.texi:14267
+#: doc/guix.texi:16531
 msgid "The Dropbear package to use."
 msgstr "Das zu benutzende Dropbear-Paket."
 
 #. type: item
-#: doc/guix.texi:14268
+#: doc/guix.texi:16532
 #, no-wrap
 msgid "@code{port-number} (default: 22)"
 msgstr "@code{port-number} (Vorgabe: 22)"
 
 #. type: table
-#: doc/guix.texi:14270
+#: doc/guix.texi:16534
 msgid "The TCP port where the daemon waits for incoming connections."
 msgstr "Die Portnummer des TCP-Ports, auf dem der Daemon auf eingehende Verbindungen wartet."
 
 #. type: item
-#: doc/guix.texi:14271
+#: doc/guix.texi:16535
 #, no-wrap
 msgid "@code{syslog-output?} (default: @code{#t})"
 msgstr "@code{syslog-output?} (Vorgabe: @code{#t})"
 
 #. type: table
-#: doc/guix.texi:14273
+#: doc/guix.texi:16537
 msgid "Whether to enable syslog output."
 msgstr "Ob eine Ausgabe für Syslog aktiviert sein soll."
 
 #. type: item
-#: doc/guix.texi:14274
+#: doc/guix.texi:16538
 #, no-wrap
 msgid "@code{pid-file} (default: @code{\"/var/run/dropbear.pid\"})"
 msgstr "@code{pid-file} (Vorgabe: @code{\"/var/run/dropbear.pid\"})"
 
 #. type: table
-#: doc/guix.texi:14276
+#: doc/guix.texi:16540
 msgid "File name of the daemon's PID file."
 msgstr "Der Dateiname der PID-Datei des Daemons."
 
 #. type: item
-#: doc/guix.texi:14277
+#: doc/guix.texi:16541
 #, no-wrap
 msgid "@code{root-login?} (default: @code{#f})"
 msgstr "@code{root-login?} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:14279
+#: doc/guix.texi:16543
 msgid "Whether to allow @code{root} logins."
 msgstr "Ob Anmeldungen als Administratornutzer @code{root} möglich sein sollen."
 
 #. type: table
-#: doc/guix.texi:14282
+#: doc/guix.texi:16546
 msgid "Whether to allow empty passwords."
 msgstr "Ob leere Passwörter zugelassen sein sollen."
 
 #. type: table
-#: doc/guix.texi:14285
+#: doc/guix.texi:16549
 msgid "Whether to enable password-based authentication."
 msgstr "Ob passwortbasierte Authentisierung zugelassen sein soll."
 
+#. type: cindex
+#: doc/guix.texi:16552
+#, no-wrap
+msgid "AutoSSH"
+msgstr "AutoSSH"
+
+#. type: deffn
+#: doc/guix.texi:16553
+#, no-wrap
+msgid "{Scheme Variable} autossh-service-type"
+msgstr "{Scheme-Variable} autossh-service-type"
+
+#. type: deffn
+#: doc/guix.texi:16561
+msgid "This is the type for the @uref{https://www.harding.motd.ca/autossh, AutoSSH} program that runs a copy of @command{ssh} and monitors it, restarting it as necessary should it die or stop passing traffic.  AutoSSH can be run manually from the command-line by passing arguments to the binary @command{autossh} from the package @code{autossh}, but it can also be run as a Guix service.  This latter use case is documented here."
+msgstr "Dies ist der Diensttyp für das @uref{https://www.harding.motd.ca/autossh, AutoSSH-Programm}, das eine Kopie von @command{ssh} ausführt und diese überwacht. Bei Bedarf wird sie neugestartet, für den Fall, dass sie abstürzt oder keine Kommunikation mehr verarbeitet. AutoSSH kann von Hand aus der Befehlszeile heraus aufgerufen werden, indem man Argumente an die Binärdatei @command{autossh} aus dem Paket @code{autossh} übergibt, aber es kann auch als ein Guix-Dienst ausgeführt werden. Letzteres wird hier beschrieben."
+
+#. type: deffn
+#: doc/guix.texi:16565
+msgid "AutoSSH can be used to forward local traffic to a remote machine using an SSH tunnel, and it respects the @file{~/.ssh/config} of the user it is run as."
+msgstr "AutoSSH kann benutzt werden, um an den lokalen Rechner gerichtete Kommunikation an eine entfernte Maschine über einen SSH-Tunnel weiterzuleiten. Dabei gilt die @file{~/.ssh/config}-Datei des AutoSSH ausführenden Benutzers."
+
+#. type: deffn
+#: doc/guix.texi:16570
+msgid "For example, to specify a service running autossh as the user @code{pino} and forwarding all local connections to port @code{8081} to @code{remote:8081} using an SSH tunnel, add this call to the operating system's @code{services} field:"
+msgstr "Um zum Beispiel einen Dienst anzugeben, der autossh mit dem Benutzerkonto @code{pino} ausführt und alle lokalen Verbindungen auf Port @code{8081} an @code{entfernt:8081} über einen SSH-Tunnel durchzureichen, fügen Sie folgenden Aufruf in das @code{services}-Feld des Betriebssystems ein:"
+
+#. type: lisp
+#: doc/guix.texi:16576
+#, no-wrap
+msgid ""
+"(service autossh-service-type\n"
+"         (autossh-configuration\n"
+"          (user \"pino\")\n"
+"          (ssh-options (list \"-T\" \"-N\" \"-L\" \"8081:localhost:8081\" \"remote.net\"))))\n"
+msgstr ""
+"(service autossh-service-type\n"
+"         (autossh-configuration\n"
+"          (user \"pino\")\n"
+"          (ssh-options (list \"-T\" \"-N\" \"-L\" \"8081:localhost:8081\" \"entfernt.net\"))))\n"
+
+#. type: deftp
+#: doc/guix.texi:16579
+#, no-wrap
+msgid "{Data Type} autossh-configuration"
+msgstr "{Datentyp} autossh-configuration"
+
+#. type: deftp
+#: doc/guix.texi:16581
+msgid "This data type represents the configuration of an AutoSSH service."
+msgstr "Dieser Datentyp repräsentiert die Konfiguration des AutoSSH-Dienstes."
+
+#. type: item
+#: doc/guix.texi:16584
+#, no-wrap
+msgid "@code{user} (default @code{\"autossh\"})"
+msgstr "@code{user} (Vorgabe: @code{\"autossh\"})"
+
+#. type: table
+#: doc/guix.texi:16587
+msgid "The user as which the AutoSSH service is to be run.  This assumes that the specified user exists."
+msgstr "Das Benutzerkonto, mit dem der AutoSSH-Dienst ausgeführt wird. Es wird vorausgesetzt, dass der angegebene Benutzer existiert."
+
+#. type: item
+#: doc/guix.texi:16588
+#, no-wrap
+msgid "@code{poll} (default @code{600})"
+msgstr "@code{poll} (Vorgabe: @code{600})"
+
+#. type: table
+#: doc/guix.texi:16590
+msgid "Specifies the connection poll time in seconds."
+msgstr "Gibt an, wie oft die Verbindung geprüft wird („Poll Time“), in Sekunden."
+
+#. type: item
+#: doc/guix.texi:16591
+#, no-wrap
+msgid "@code{first-poll} (default @code{#f})"
+msgstr "@code{first-poll} (Vorgabe: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:16597
+msgid "Specifies how many seconds AutoSSH waits before the first connection test.  After this first test, polling is resumed at the pace defined in @code{poll}.  When set to @code{#f}, the first poll is not treated specially and will also use the connection poll specified in @code{poll}."
+msgstr "Gibt an, wie viele Sekunden AutoSSH vor der ersten Verbindungsprüfung abwartet. Nach dieser ersten Prüfung werden weitere Prüfungen mit der in @code{poll} angegebenen Regelmäßigkeit durchgeführt. Wenn dies auf @code{#f} gesetzt ist, erfährt die erste Verbindungsprüfung keine Sonderbehandlung, sondern benutzt die gleichen Zeitabstände, die auch mit @code{poll} festgelegt wurden."
+
+#. type: item
+#: doc/guix.texi:16598
+#, no-wrap
+msgid "@code{gate-time} (default @code{30})"
+msgstr "@code{gate-time} (Vorgabe: @code{30})"
+
+#. type: table
+#: doc/guix.texi:16601
+msgid "Specifies how many seconds an SSH connection must be active before it is considered successful."
+msgstr "Gibt an, wie viele Sekunden lang eine SSH-Verbindung aktiv sein muss, bis sie als erfolgreich angesehen wird."
+
+#. type: item
+#: doc/guix.texi:16602
+#, no-wrap
+msgid "@code{log-level} (default @code{1})"
+msgstr "@code{log-level} (Vorgabe: @code{1})"
+
+#. type: table
+#: doc/guix.texi:16605
+msgid "The log level, corresponding to the levels used by syslog---so @code{0} is the most silent while @code{7} is the chattiest."
+msgstr "Die Protokollierungsstufe. Sie entspricht den bei Syslog verwendeten Stufen, d.h.@: @code{0} verschweigt die meisten Ausgaben, während @code{7} die gesprächigste Stufe ist."
+
+#. type: item
+#: doc/guix.texi:16606
+#, no-wrap
+msgid "@code{max-start} (default @code{#f})"
+msgstr "@code{max-start} (Vorgabe: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:16609
+msgid "The maximum number of times SSH may be (re)started before AutoSSH exits.  When set to @code{#f}, no maximum is configured and AutoSSH may restart indefinitely."
+msgstr "Wie oft SSH (neu) gestartet werden darf, bevor AutoSSH aufgibt und sich beendet. Steht dies auf @code{#f}, gibt es keine Begrenzung und AutoSSH kann endlos neu starten."
+
+#. type: item
+#: doc/guix.texi:16610
+#, no-wrap
+msgid "@code{message} (default @code{\"\"})"
+msgstr "@code{message} (Vorgabe: @code{\"\"})"
+
+#. type: table
+#: doc/guix.texi:16612
+msgid "The message to append to the echo message sent when testing connections."
+msgstr "Welche Nachricht beim Prüfen von Verbindungen an die zurückkommende Echo-Nachricht angehängt werden soll."
+
+#. type: item
+#: doc/guix.texi:16613
+#, no-wrap
+msgid "@code{port} (default @code{\"0\"})"
+msgstr "@code{port} (Vorgabe: @code{\"0\"})"
+
+#. type: table
+#: doc/guix.texi:16623
+msgid "The ports used for monitoring the connection.  When set to @code{\"0\"}, monitoring is disabled.  When set to @code{\"@var{n}\"} where @var{n} is a positive integer, ports @var{n} and @var{n}+1 are used for monitoring the connection, such that port @var{n} is the base monitoring port and @code{n+1} is the echo port.  When set to @code{\"@var{n}:@var{m}\"} where @var{n} and @var{m} are positive integers, the ports @var{n} and @var{m} are used for monitoring the connection, such that port @var{n} is the base monitoring port and @var{m} is the echo port."
+msgstr "Welche Ports zum Überprüfen der Verbindung benutzt werden. Steht dies auf @code{\"0\"}, werden keine Überprüfungen durchgeführt. Steht es auf @code{\"@var{n}\"} für eine positive ganze Zahl @var{n}, werden die Ports @var{n} und @var{n}+1 zum Überwachen der Verbindung eingesetzt, wobei auf Port @var{n} Daten dafür gesendet werden und Port @code{n+1} deren Echo empfangen soll. Steht es auf @code{\"@var{n}:@var{m}\"} für positive ganze Zahlen @var{n} und @var{m}, werden Ports @var{n} und @var{m} zur Überprüfung eingesetzt, wozu Port @var{n} zum Senden der Prüfdaten eingesetzt wird und Port @var{m} das Echo empfängt."
+
+#. type: item
+#: doc/guix.texi:16624
+#, no-wrap
+msgid "@code{ssh-options} (default @code{'()})"
+msgstr "@code{ssh-options} (Vorgabe: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:16628
+msgid "The list of command-line arguments to pass to @command{ssh} when it is run.  Options @option{-f} and @option{-M} are reserved for AutoSSH and may cause undefined behaviour."
+msgstr "Die Liste der Befehlszeilenargumente, die an @command{ssh} weitergegeben werden sollen, wenn es ausgeführt wird. Die Befehlszeilenoptionen @option{-f} und @option{-M} sind AutoSSH vorbehalten; sie anzugeben, führt zu undefiniertem Verhalten."
+
+#. type: cindex
+#: doc/guix.texi:16632
+#, no-wrap
+msgid "WebSSH"
+msgstr "WebSSH"
+
+#. type: deffn
+#: doc/guix.texi:16633
+#, no-wrap
+msgid "{Scheme Variable} webssh-service-type"
+msgstr "{Scheme-Variable} webssh-service-type"
+
+#. type: deffn
+#: doc/guix.texi:16639
+msgid "This is the type for the @uref{https://webssh.huashengdun.org/, WebSSH} program that runs a web SSH client.  WebSSH can be run manually from the command-line by passing arguments to the binary @command{wssh} from the package @code{webssh}, but it can also be run as a Guix service.  This latter use case is documented here."
+msgstr "Dies ist der Diensttyp für das Programm @uref{@uref{https://webssh.huashengdun.org/, WebSSH}}, das einen webbasierten SSH-Client ausführt. WebSSH kann von Hand aus der Befehlszeile heraus aufgerufen werden, indem man Argumente an die Binärdatei @command{wssh} aus dem Paket @code{webssh} übergibt, aber es kann auch als ein Guix-Dienst ausgeführt werden. Letzteres wird hier beschrieben."
+
+#. type: deffn
+#: doc/guix.texi:16645
+msgid "For example, to specify a service running WebSSH on loopback interface on port @code{8888} with reject policy with a list of allowed to connection hosts, and NGINX as a reverse-proxy to this service listening for HTTPS connection, add this call to the operating system's @code{services} field:"
+msgstr "Um zum Beispiel einen Dienst anzugeben, der WebSSH an der Loopback-Schnittstelle auf Port @code{8888} ausführt, wobei die Richtlinie ist, dass Verbindungen abgelehnt werden außer zu einer Liste von erlaubten Rechnern, und eine auf HTTPS-Verbindungen lauschende NGINX als inversen Proxy dafür fungieren zu lassen, fügen Sie folgende Aufrufe in das @code{services}-Feld des Betriebssystems ein:"
+
+#. type: lisp
+#: doc/guix.texi:16653
+#, no-wrap
+msgid ""
+"(service webssh-service-type\n"
+"  (webssh-configuration (address \"127.0.0.1\")\n"
+"                        (port 8888)\n"
+"                        (policy 'reject)\n"
+"                        (known-hosts '(\"localhost ecdsa-sha2-nistp256 AAAA…\"\n"
+"                                       \"127.0.0.1 ecdsa-sha2-nistp256 AAAA…\"))))\n"
+"\n"
+msgstr ""
+"(service webssh-service-type\n"
+"  (webssh-configuration (address \"127.0.0.1\")\n"
+"                        (port 8888)\n"
+"                        (policy 'reject)\n"
+"                        (known-hosts '(\"localhost ecdsa-sha2-nistp256 AAAA…\"\n"
+"                                       \"127.0.0.1 ecdsa-sha2-nistp256 AAAA…\"))))\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:16669
+#, no-wrap
+msgid ""
+"(service nginx-service-type\n"
+"         (nginx-configuration\n"
+"          (server-blocks\n"
+"           (list\n"
+"            (nginx-server-configuration\n"
+"             (inherit %webssh-configuration-nginx)\n"
+"             (server-name '(\"webssh.example.com\"))\n"
+"             (listen '(\"443 ssl\"))\n"
+"             (ssl-certificate (letsencrypt-certificate \"webssh.example.com\"))\n"
+"             (ssl-certificate-key (letsencrypt-key \"webssh.example.com\"))\n"
+"             (locations\n"
+"              (cons (nginx-location-configuration\n"
+"                     (uri \"/.well-known\")\n"
+"                     (body '(\"root /var/www;\")))\n"
+"                    (nginx-server-configuration-locations %webssh-configuration-nginx))))))))\n"
+msgstr ""
+"(service nginx-service-type\n"
+"         (nginx-configuration\n"
+"          (server-blocks\n"
+"           (list\n"
+"            (nginx-server-configuration\n"
+"             (inherit %webssh-configuration-nginx)\n"
+"             (server-name '(\"webssh.example.com\"))\n"
+"             (listen '(\"443 ssl\"))\n"
+"             (ssl-certificate (letsencrypt-certificate \"webssh.example.com\"))\n"
+"             (ssl-certificate-key (letsencrypt-key \"webssh.example.com\"))\n"
+"             (locations\n"
+"              (cons (nginx-location-configuration\n"
+"                     (uri \"/.well-known\")\n"
+"                     (body '(\"root /var/www;\")))\n"
+"                    (nginx-server-configuration-locations %webssh-configuration-nginx))))))))\n"
+
+#. type: deftp
+#: doc/guix.texi:16672
+#, no-wrap
+msgid "{Data Type} webssh-configuration"
+msgstr "{Datentyp} webssh-configuration"
+
+#. type: deftp
+#: doc/guix.texi:16674
+msgid "Data type representing the configuration for @code{webssh-service}."
+msgstr "Repräsentiert die Konfiguration für den Dienst @code{webssh-service}."
+
+#. type: item
+#: doc/guix.texi:16676
+#, no-wrap
+msgid "@code{package} (default: @var{webssh})"
+msgstr "@code{package} (Vorgabe: @code{webssh})"
+
+#. type: table
+#: doc/guix.texi:16678
+msgid "@code{webssh} package to use."
+msgstr "Zu benutzendes @code{webssh}-Paket."
+
+#. type: item
+#: doc/guix.texi:16679
+#, no-wrap
+msgid "@code{user-name} (default: @var{\"webssh\"})"
+msgstr "@code{user-name} (Vorgabe: @code{\"webssh\"})"
+
+#. type: table
+#: doc/guix.texi:16682
+msgid "User name or user ID that file transfers to and from that module should take place."
+msgstr "Der Benutzername oder der Benutzeridentifikator (d.h.@: die „User-ID“), mit dem Dateiübertragungen zum und vom Modul stattfinden sollen."
+
+#. type: item
+#: doc/guix.texi:16683
+#, no-wrap
+msgid "@code{group-name} (default: @var{\"webssh\"})"
+msgstr "@code{group-name} (Vorgabe: @code{\"webssh\"})"
+
+#. type: item
+#: doc/guix.texi:16686
+#, no-wrap
+msgid "@code{address} (default: @var{#f})"
+msgstr "@code{address} (Vorgabe: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:16688
+msgid "IP address on which @command{webssh} listens for incoming connections."
+msgstr "Die IP-Adresse, auf der @command{webssh} auf eingehende Verbindungen lauscht."
+
+#. type: item
+#: doc/guix.texi:16689
+#, no-wrap
+msgid "@code{port} (default: @var{8888})"
+msgstr "@code{port} (Vorgabe: @code{8888})"
+
+#. type: table
+#: doc/guix.texi:16691
+msgid "TCP port on which @command{webssh} listens for incoming connections."
+msgstr "Der TCP-Port, auf dem @command{webssh} auf eingehende Verbindungen lauscht."
+
+#. type: item
+#: doc/guix.texi:16692
+#, no-wrap
+msgid "@code{policy} (default: @var{#f})"
+msgstr "@code{policy} (Vorgabe: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:16694
+msgid "Connection policy.  @var{reject} policy requires to specify @var{known-hosts}."
+msgstr "Die Verbindungsrichtlinie @code{reject} setzt voraus, dass erlaubte Rechner in @var{known-hosts} eingetragen werden."
+
+#. type: item
+#: doc/guix.texi:16695
+#, no-wrap
+msgid "@code{known-hosts} (default: @var{'()})"
+msgstr "@code{known-hosts} (Vorgabe: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:16697
+msgid "List of hosts which allowed for SSH connection from @command{webssh}."
+msgstr "Eine Liste der Rechner, die für eine SSH-Verbindung aus @command{webssh} zugelassen sind."
+
+#. type: item
+#: doc/guix.texi:16698
+#, no-wrap
+msgid "@code{log-file} (default: @file{\"/var/log/webssh.log\"})"
+msgstr "@code{log-file} (Vorgabe: @file{\"/var/log/webssh.log\"})"
+
+#. type: item
+#: doc/guix.texi:16701
+#, no-wrap
+msgid "@code{log-level} (default: @var{#f})"
+msgstr "@code{log-level} (Vorgabe: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:16703
+msgid "Logging level."
+msgstr "Das Protokollierungsniveau."
+
 #. type: defvr
-#: doc/guix.texi:14288
+#: doc/guix.texi:16707
 #, no-wrap
 msgid "{Scheme Variable} %facebook-host-aliases"
 msgstr "{Scheme-Variable} %facebook-host-aliases"
 
 #. type: defvr
-#: doc/guix.texi:14294
+#: doc/guix.texi:16713
 msgid "This variable contains a string for use in @file{/etc/hosts} (@pxref{Host Names,,, libc, The GNU C Library Reference Manual}).  Each line contains a entry that maps a known server name of the Facebook on-line service---e.g., @code{www.facebook.com}---to the local host---@code{127.0.0.1} or its IPv6 equivalent, @code{::1}."
-msgstr "Diese Variable enthält eine Zeichenkette, die Sie für @file{/etc/hosts} benutzen können (siehe @ref{Host Names,,, libc, The GNU C Library Reference Manual}). Jede Zeile enthält einen Eintrag, der einen bekannten Servernamen des Facebook-Online-Dienstes — z.B.@: @code{www.facebook.com} — an den lokalen Rechner umleitet — also an @code{127.0.0.1} oder dessen IPv6-Gegenstück @code{::1}."
+msgstr "Diese Variable enthält eine Zeichenkette, die Sie für @file{/etc/hosts} benutzen können (siehe @ref{Host Names,,, libc, Referenzhandbuch der GNU-C-Bibliothek}). Jede Zeile enthält einen Eintrag, der einen bekannten Servernamen des Facebook-Online-Dienstes — z.B.@: @code{www.facebook.com} — an den lokalen Rechner umleitet — also an @code{127.0.0.1} oder dessen IPv6-Gegenstück @code{::1}."
 
 #. type: defvr
-#: doc/guix.texi:14298
+#: doc/guix.texi:16717
 msgid "This variable is typically used in the @code{hosts-file} field of an @code{operating-system} declaration (@pxref{operating-system Reference, @file{/etc/hosts}}):"
 msgstr "Normalerweise wird diese Variable im Feld @code{hosts-file} einer @code{operating-system}-Betriebssystemdeklaration benutzt (siehe @ref{operating-system Reference, @file{/etc/hosts}}):"
 
 #. type: lisp
-#: doc/guix.texi:14311
+#: doc/guix.texi:16730
 #, no-wrap
 msgid ""
 "(operating-system\n"
@@ -26584,176 +30693,176 @@ msgstr ""
 "                               %facebook-host-aliases))))\n"
 
 #. type: defvr
-#: doc/guix.texi:14315
+#: doc/guix.texi:16734
 msgid "This mechanism can prevent programs running locally, such as Web browsers, from accessing Facebook."
 msgstr "Dieser Mechanismus kann verhindern, dass lokal laufende Programme, wie z.B.@: Web-Browser, auf Facebook zugreifen."
 
 #. type: Plain text
-#: doc/guix.texi:14318
+#: doc/guix.texi:16737
 msgid "The @code{(gnu services avahi)} provides the following definition."
 msgstr "Das Modul @code{(gnu services avahi)} stellt die folgende Definition zur Verfügung."
 
 #. type: defvr
-#: doc/guix.texi:14319
+#: doc/guix.texi:16738
 #, no-wrap
 msgid "{Scheme Variable} avahi-service-type"
 msgstr "{Scheme-Variable} avahi-service-type"
 
 #. type: defvr
-#: doc/guix.texi:14324
-msgid "This is the service that runs @command{avahi-daemon}, a system-wide mDNS/DNS-SD responder that allows for service discovery and ``zero-configuration'' host name lookups (see @uref{https://avahi.org/}).  Its value must be a @code{zero-configuration} record---see below."
-msgstr "Dieser Dienst führt den @command{avahi-daemon} aus, einen systemweiten mDNS-/DNS-SD-Anbieter, mit dem im lokalen Netzwerk befindliche Geräte erkannt werden können („Service Discovery“) und Rechnernamen selbstständig aufgelöst werden können („Zero-Configuration“) (siehe @uref{https://avahi.org/}). Sein Wert muss ein @code{zero-configuration}-Verbundsobjekt sein — siehe unten."
+#: doc/guix.texi:16743
+msgid "This is the service that runs @command{avahi-daemon}, a system-wide mDNS/DNS-SD responder that allows for service discovery and ``zero-configuration'' host name lookups (see @uref{https://avahi.org/}).  Its value must be an @code{avahi-configuration} record---see below."
+msgstr "Dieser Dienst führt den @command{avahi-daemon} aus, einen systemweiten mDNS-/DNS-SD-Anbieter, mit dem im lokalen Netzwerk befindliche Geräte erkannt werden können („Service Discovery“) und Rechnernamen selbstständig aufgelöst werden können („Zero-Configuration“) (siehe @uref{https://avahi.org/}). Sein Wert muss ein @code{avahi-configuration}-Verbundsobjekt sein — siehe unten."
 
 #. type: defvr
-#: doc/guix.texi:14329
+#: doc/guix.texi:16748
 msgid "This service extends the name service cache daemon (nscd) so that it can resolve @code{.local} host names using @uref{https://0pointer.de/lennart/projects/nss-mdns/, nss-mdns}.  @xref{Name Service Switch}, for information on host name resolution."
 msgstr "Dieser Dienst erweitert den Name Service Cache Daemon (nscd), damit er @code{.local}-Rechnernamen mit @uref{https://0pointer.de/lennart/projects/nss-mdns/, nss-mdns} auflösen kann. Siehe @ref{Name Service Switch} für Informationen zur Auflösung von Rechnernamen."
 
 #. type: defvr
-#: doc/guix.texi:14332
+#: doc/guix.texi:16751
 msgid "Additionally, add the @var{avahi} package to the system profile so that commands such as @command{avahi-browse} are directly usable."
 msgstr "Des Weiteren wird das @var{avahi}-Paket zum Systemprofil hinzugefügt, damit Befehle wie @command{avahi-browse} einfach benutzt werden können."
 
 #. type: deftp
-#: doc/guix.texi:14334
+#: doc/guix.texi:16753
 #, no-wrap
 msgid "{Data Type} avahi-configuration"
 msgstr "{Datentyp} avahi-configuration"
 
 #. type: deftp
-#: doc/guix.texi:14336
+#: doc/guix.texi:16755
 msgid "Data type representation the configuration for Avahi."
 msgstr "Dieser Datentyp repräsentiert die Konfiguration von Avahi."
 
 #. type: item
-#: doc/guix.texi:14339
+#: doc/guix.texi:16758
 #, no-wrap
 msgid "@code{host-name} (default: @code{#f})"
 msgstr "@code{host-name} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:14342
+#: doc/guix.texi:16761
 msgid "If different from @code{#f}, use that as the host name to publish for this machine; otherwise, use the machine's actual host name."
 msgstr "Wenn dies auf etwas anderes als @code{#f} gesetzt ist, wird es anderen als Rechnername für diese Maschine mitgeteilt, andernfalls wird der tatsächliche Rechnername anderen mitgeteilt."
 
 #. type: item
-#: doc/guix.texi:14343
+#: doc/guix.texi:16762
 #, no-wrap
 msgid "@code{publish?} (default: @code{#t})"
 msgstr "@code{publish?} (Vorgabe: @code{#t})"
 
 #. type: table
-#: doc/guix.texi:14346
+#: doc/guix.texi:16765
 msgid "When true, allow host names and services to be published (broadcast) over the network."
 msgstr "Wenn es auf wahr gesetzt ist, dürfen Rechnernamen und Avahi-Dienste über das Netzwerk mitgeteilt werden (als Broadcast)."
 
 #. type: item
-#: doc/guix.texi:14347
+#: doc/guix.texi:16766
 #, no-wrap
 msgid "@code{publish-workstation?} (default: @code{#t})"
 msgstr "@code{publish-workstation?} (Vorgabe: @code{#t})"
 
 #. type: table
-#: doc/guix.texi:14351
+#: doc/guix.texi:16770
 msgid "When true, @command{avahi-daemon} publishes the machine's host name and IP address via mDNS on the local network.  To view the host names published on your local network, you can run:"
 msgstr "Wenn es auf wahr gesetzt ist, teilt @command{avahi-daemon} den Rechnernamen dieser Maschine und die IP-Adresse über mDNS auf dem lokalen Netzwerk öffentlich mit. Um die auf Ihrem lokalen Netzwerk mitgeteilten Rechnernamen zu sehen, können Sie das hier ausführen:"
 
 #. type: example
-#: doc/guix.texi:14354
+#: doc/guix.texi:16773
 #, no-wrap
 msgid "avahi-browse _workstation._tcp\n"
 msgstr "avahi-browse _workstation._tcp\n"
 
 #. type: item
-#: doc/guix.texi:14356
+#: doc/guix.texi:16775
 #, no-wrap
 msgid "@code{wide-area?} (default: @code{#f})"
 msgstr "@code{wide-area?} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:14358
+#: doc/guix.texi:16777
 msgid "When true, DNS-SD over unicast DNS is enabled."
 msgstr "Wenn dies auf wahr gesetzt ist, ist DNS-SD über „Unicast DNS“ aktiviert."
 
 #. type: item
-#: doc/guix.texi:14359
+#: doc/guix.texi:16778
 #, no-wrap
 msgid "@code{ipv4?} (default: @code{#t})"
 msgstr "@code{ipv4?} (Vorgabe: @code{#t})"
 
 #. type: itemx
-#: doc/guix.texi:14360
+#: doc/guix.texi:16779
 #, no-wrap
 msgid "@code{ipv6?} (default: @code{#t})"
 msgstr "@code{ipv6?} (Vorgabe: @code{#t})"
 
 #. type: table
-#: doc/guix.texi:14362
+#: doc/guix.texi:16781
 msgid "These fields determine whether to use IPv4/IPv6 sockets."
 msgstr "Mit diesen Feldern wird festgelegt, ob IPv4-/IPv6-Sockets verwendet werden."
 
 #. type: item
-#: doc/guix.texi:14363
+#: doc/guix.texi:16782
 #, no-wrap
 msgid "@code{domains-to-browse} (default: @code{'()})"
 msgstr "@code{domains-to-browse} (Vorgabe: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:14365
+#: doc/guix.texi:16784
 msgid "This is a list of domains to browse."
 msgstr "Dies ist eine Liste von Domänen, die durchsucht werden."
 
 #. type: deffn
-#: doc/guix.texi:14368
+#: doc/guix.texi:16787
 #, no-wrap
 msgid "{Scheme Variable} openvswitch-service-type"
 msgstr "{Scheme-Variable} openvswitch-service-type"
 
 #. type: deffn
-#: doc/guix.texi:14372
+#: doc/guix.texi:16791
 msgid "This is the type of the @uref{https://www.openvswitch.org, Open vSwitch} service, whose value should be an @code{openvswitch-configuration} object."
 msgstr "Dies ist der Diensttyp des @uref{https://www.openvswitch.org, Open-vSwitch-Dienstes}, der als Wert ein @code{openvswitch-configuration}-Objekt hat."
 
 #. type: deftp
-#: doc/guix.texi:14374
+#: doc/guix.texi:16793
 #, no-wrap
 msgid "{Data Type} openvswitch-configuration"
 msgstr "{Datentyp} openvswitch-configuration"
 
 #. type: deftp
-#: doc/guix.texi:14378
+#: doc/guix.texi:16797
 msgid "Data type representing the configuration of Open vSwitch, a multilayer virtual switch which is designed to enable massive network automation through programmatic extension."
 msgstr "Der Datentyp, der die Konfiguration von Open vSwitch repräsentiert, einem auf mehreren Schichten arbeitenden („multilayer“) virtuellen Switch, der für massenhafte Netzwerkautomatisierung durch programmatische Erweiterungen eingesetzt werden kann."
 
 #. type: item
-#: doc/guix.texi:14380
+#: doc/guix.texi:16799
 #, no-wrap
 msgid "@code{package} (default: @var{openvswitch})"
 msgstr "@code{package} (Vorgabe: @var{openvswitch})"
 
 #. type: table
-#: doc/guix.texi:14382
+#: doc/guix.texi:16801
 msgid "Package object of the Open vSwitch."
 msgstr "Das Paketobjekt vom Open vSwitch."
 
 #. type: defvr
-#: doc/guix.texi:14386
+#: doc/guix.texi:16805
 #, no-wrap
 msgid "{Scheme Variable} pagekite-service-type"
 msgstr "{Scheme-Variable} pagekite-service-type"
 
 #. type: defvr
-#: doc/guix.texi:14391
+#: doc/guix.texi:16810
 msgid "This is the service type for the @uref{https://pagekite.net, PageKite} service, a tunneling solution for making localhost servers publicly visible, even from behind restrictive firewalls or NAT without forwarded ports.  The value for this service type is a @code{pagekite-configuration} record."
 msgstr "Dies ist der Diensttyp für den @uref{https://memcached.org/, PageKite-Dienst}, einem Angebot zur getunnelten Netzwerkumleitung, womit bloß auf localhost lauschende Server öffentlich erreichbar gemacht werden können. Mit PageKite werden die Server für andere erreichbar, selbst wenn Ihre Maschine nur über eine restriktive Firewall oder eine Netzwerkadressübersetzung („Network Address Translation“, NAT) ohne Portweiterleitung mit dem Internet verbunden ist. Der Wert dieses Dienstes ist ein @code{pagekite-configuration}-Verbundsobjekt."
 
 #. type: defvr
-#: doc/guix.texi:14393
+#: doc/guix.texi:16812
 msgid "Here's an example exposing the local HTTP and SSH daemons:"
 msgstr "Hier ist ein Beispiel, wodurch die lokal laufenden HTTP- und SSH-Daemons zugänglich gemacht werden:"
 
 #. type: lisp
-#: doc/guix.texi:14400
+#: doc/guix.texi:16819
 #, no-wrap
 msgid ""
 "(service pagekite-service-type\n"
@@ -26769,283 +30878,497 @@ msgstr ""
 "           (extra-file \"/etc/pagekite.rc\")))\n"
 
 #. type: deftp
-#: doc/guix.texi:14403
+#: doc/guix.texi:16822
 #, no-wrap
 msgid "{Data Type} pagekite-configuration"
 msgstr "{Datentyp} pagekite-configuration"
 
 #. type: deftp
-#: doc/guix.texi:14405
+#: doc/guix.texi:16824
 msgid "Data type representing the configuration of PageKite."
 msgstr "Der Datentyp, der die Konfiguration von PageKite repräsentiert."
 
 #. type: item
-#: doc/guix.texi:14407
+#: doc/guix.texi:16826
 #, no-wrap
 msgid "@code{package} (default: @var{pagekite})"
 msgstr "@code{package} (Vorgabe: @var{pagekite})"
 
 #. type: table
-#: doc/guix.texi:14409
+#: doc/guix.texi:16828
 msgid "Package object of PageKite."
 msgstr "Paketobjekt von PageKite."
 
 #. type: item
-#: doc/guix.texi:14410
+#: doc/guix.texi:16829
 #, no-wrap
 msgid "@code{kitename} (default: @code{#f})"
 msgstr "@code{kitename} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:14412
+#: doc/guix.texi:16831
 msgid "PageKite name for authenticating to the frontend server."
 msgstr "PageKite-Name, um sich gegenüber dem Vordergrundserver zu authentisieren."
 
 #. type: item
-#: doc/guix.texi:14413
+#: doc/guix.texi:16832
 #, no-wrap
 msgid "@code{kitesecret} (default: @code{#f})"
 msgstr "@code{kitesecret} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:14416
+#: doc/guix.texi:16835
 msgid "Shared secret for authenticating to the frontend server.  You should probably put this inside @code{extra-file} instead."
 msgstr "Das gemeinsame Geheimnis, das eine Authentisierung gegenüber dem Vordergrundserver ermöglicht. Wahrscheinlich sollten Sie es besser als Teil von @code{extra-file} angeben."
 
 #. type: item
-#: doc/guix.texi:14417
+#: doc/guix.texi:16836
 #, no-wrap
 msgid "@code{frontend} (default: @code{#f})"
 msgstr "@code{frontend} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:14420
+#: doc/guix.texi:16839
 msgid "Connect to the named PageKite frontend server instead of the @uref{https://pagekite.net,,pagekite.net} service."
 msgstr "Eine Verbindung zum angegebenen PageKite-Vordergrundserver herstellen statt zu dem Dienst von @uref{https://pagekite.net,,pagekite.net}."
 
 #. type: item
-#: doc/guix.texi:14421
+#: doc/guix.texi:16840
 #, no-wrap
 msgid "@code{kites} (default: @code{'(\"http:@@kitename:localhost:80:@@kitesecret\")})"
 msgstr "@code{kites} (Vorgabe: @code{'(\"http:@@kitename:localhost:80:@@kitesecret\")})"
 
 #. type: table
-#: doc/guix.texi:14424
+#: doc/guix.texi:16843
 msgid "List of service kites to use.  Exposes HTTP on port 80 by default. The format is @code{proto:kitename:host:port:secret}."
 msgstr "Die Liste der zu benutzenden „Kites“ für Dienste. Nach Vorgabe wird der HTTP-Server auf Port 80 nach außen hin zugänglich gemacht. Dienste sind im Format @code{protokoll:kitename:rechnername:port:geheimnis} anzugeben."
 
 #. type: item
-#: doc/guix.texi:14425
+#: doc/guix.texi:16844
 #, no-wrap
 msgid "@code{extra-file} (default: @code{#f})"
 msgstr "@code{extra-file} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:14428
+#: doc/guix.texi:16847
 msgid "Extra configuration file to read, which you are expected to create manually.  Use this to add additional options and manage shared secrets out-of-band."
 msgstr "Eine Konfigurationsdatei, die zusätzlich eingelesen werden soll. Es wird erwartet, dass Sie diese manuell erstellen. Benutzen Sie sie, wenn Sie zusätzliche Optionen angeben möchten und um gemeinsame Geheimnisse abseits von Guix’ Zuständigkeitsbereich zu verwalten."
 
 #. type: cindex
-#: doc/guix.texi:14435
+#: doc/guix.texi:16854
+#, no-wrap
+msgid "unattended upgrades"
+msgstr "unbeaufsichtigte Aktualisierungen"
+
+#. type: cindex
+#: doc/guix.texi:16855
+#, no-wrap
+msgid "upgrades, unattended"
+msgstr "Aktualisierungen, unbeaufsichtigt"
+
+#. type: Plain text
+#: doc/guix.texi:16860
+msgid "Guix provides a service to perform @emph{unattended upgrades}: periodically, the system automatically reconfigures itself from the latest Guix.  Guix System has several properties that make unattended upgrades safe:"
+msgstr "Guix stellt einen Dienst zum Durchführen @emph{unbeaufsichtigter Aktualisierungen} zur Verfügung: Das System rekonfiguriert sich selbst in regelmäßigen Abständen mit der neuesten Version von Guix. Guix System verfügt über mehrere Eigenschaften, durch die unbeaufsichtigtes Aktualisieren zu einer sicheren Angelegenheit wird:"
+
+#. type: itemize
+#: doc/guix.texi:16865
+msgid "upgrades are transactional (either the upgrade succeeds or it fails, but you cannot end up with an ``in-between'' system state);"
+msgstr "Aktualisierungen sind transaktionell: Entweder ist die Aktualisierung erfolgreich oder sie schlägt fehl, aber Sie können sich nicht in einem Systemzustand „dazwischen“ wiederfinden."
+
+#. type: itemize
+#: doc/guix.texi:16869
+msgid "the upgrade log is kept---you can view it with @command{guix system list-generations}---and you can roll back to any previous generation, should the upgraded system fail to behave as intended;"
+msgstr "Ein Protokoll über die Aktualisierungen liegt vor — Sie können es mit @command{guix system list-generations} einsehen — und Rücksetzungen auf vorherige Generationen sind möglich, für den Fall, dass das System nach der Aktualisierung nicht mehr funktioniert oder sich nicht wie gewollt verhält."
+
+#. type: itemize
+#: doc/guix.texi:16872
+msgid "channel code is authenticated so you know you can only run genuine code (@pxref{Channels});"
+msgstr "Der Code für Kanäle wird authentifiziert, wodurch Sie sich sicher sein können, dass Sie nur unverfälschten Code ausführen (siehe @ref{Channels})."
+
+#. type: itemize
+#: doc/guix.texi:16875
+msgid "@command{guix system reconfigure} prevents downgrades, which makes it immune to @dfn{downgrade attacks}."
+msgstr "@command{guix system reconfigure} verweigert ein Herabstufen auf alte Versionen; das macht @dfn{Herabstufungsangriffe} („Downgrade Attacks“) unmöglich."
+
+#. type: Plain text
+#: doc/guix.texi:16880
+msgid "To set up unattended upgrades, add an instance of @code{unattended-upgrade-service-type} like the one below to the list of your operating system services:"
+msgstr "Um unbeaufsichtigte Aktualisierungen einzurichten, fügen Sie eine Instanz des Diensttyps @code{unattended-upgrade-service-type} wie im folgenden Beispiel zur Liste Ihrer Betriebssystemdienste hinzu:"
+
+#. type: lisp
+#: doc/guix.texi:16883
+#, no-wrap
+msgid "(service unattended-upgrade-service-type)\n"
+msgstr "(service unattended-upgrade-service-type)\n"
+
+#. type: Plain text
+#: doc/guix.texi:16890
+msgid "The defaults above set up weekly upgrades: every Sunday at midnight.  You do not need to provide the operating system configuration file: it uses @file{/run/current-system/configuration.scm}, which ensures it always uses your latest configuration---@pxref{provenance-service-type}, for more information about this file."
+msgstr "Durch die Vorgabeeinstellungen hat dies wöchentliche Aktualisierungen zur Folge, jeden Sonntag um Mitternacht. Sie müssen keine Betriebssystemkonfigurationsdatei angeben: @file{/run/current-system/configuration.scm} wird benutzt, wodurch immer Ihre letzte Konfiguration weiter verwendet wird — siehe den @ref{provenance-service-type} für mehr Informationen über diese Datei."
+
+#. type: Plain text
+#: doc/guix.texi:16896
+msgid "There are several things that can be configured, in particular the periodicity and services (daemons) to be restarted upon completion.  When the upgrade is successful, the service takes care of deleting system generations older that some threshold, as per @command{guix system delete-generations}.  See the reference below for details."
+msgstr "Mehrere Dinge können konfiguriert werden, insbesondere die Zeitabstände zwischen Aktualisierungen und die Dienste (also die Daemons), die nach Abschluss neu gestartet  werden sollen. Wenn die Aktualisierung erfolgreich ist, dann stellt das System sicher, dass Systemgenerationen mit einem Alter größer als ein festgelegter Schwellwert gelöscht werden, wie bei @command{guix system delete-generations}. Siehe die folgende Referenz der Konfigurationsmöglichkeiten für Näheres."
+
+#. type: Plain text
+#: doc/guix.texi:16900
+msgid "To ensure that upgrades are actually happening, you can run @command{guix system describe}.  To investigate upgrade failures, visit the unattended upgrade log file (see below)."
+msgstr "Um sicherzugehen, dass unbeaufsichtigte Aktualisierungen auch tatsächlich durchgeführt werden, können Sie @command{guix system describe} ausführen. Um Fehlschläge zu untersuchen, schauen Sie in die Protokolldatei für unbeaufsichtigte Aktualisierungen (siehe unten)."
+
+#. type: defvr
+#: doc/guix.texi:16901
+#, no-wrap
+msgid "{Scheme Variable} unattended-upgrade-service-type"
+msgstr "{Scheme-Variable} unattended-upgrade-service-type"
+
+#. type: defvr
+#: doc/guix.texi:16905
+msgid "This is the service type for unattended upgrades.  It sets up an mcron job (@pxref{Scheduled Job Execution}) that runs @command{guix system reconfigure} from the latest version of the specified channels."
+msgstr "Dies ist der Diensttyp für unbeaufsichtigte Aktualisierungen. Damit wird ein mcron-Auftrag eingerichtet (siehe @ref{Scheduled Job Execution}), der @command{guix system reconfigure} mit der neuesten Version der angegebenen Kanäle ausführt."
+
+#. type: defvr
+#: doc/guix.texi:16908
+msgid "Its value must be a @code{unattended-upgrade-configuration} record (see below)."
+msgstr "Sein Wert muss ein @code{unattended-upgrade-configuration}-Verbundsobjekt sein (siehe unten)."
+
+#. type: deftp
+#: doc/guix.texi:16910
+#, no-wrap
+msgid "{Data Type} unattended-upgrade-configuration"
+msgstr "{Datentyp} unattended-upgrade-configuration"
+
+#. type: deftp
+#: doc/guix.texi:16913
+msgid "This data type represents the configuration of the unattended upgrade service.  The following fields are available:"
+msgstr "Dieser Datentyp repräsentiert die Konfiguration des Dienstes für unbeaufsichtigte Aktualisierungen. Folgende Felder stehen zur Verfügung:"
+
+#. type: item
+#: doc/guix.texi:16915
+#, no-wrap
+msgid "@code{schedule} (default: @code{\"30 01 * * 0\"})"
+msgstr "@code{schedule} (Vorgabe: @code{\"30 01 * * 0\"})"
+
+#. type: table
+#: doc/guix.texi:16919
+msgid "This is the schedule of upgrades, expressed as a gexp containing an mcron job schedule (@pxref{Guile Syntax, mcron job specifications,, mcron, GNU@tie{}mcron})."
+msgstr "Dies ist der Aktualisierungsplan, ausgedrückt als ein G-Ausdruck mit einem mcron-Auftragsplan (siehe @ref{Guile Syntax, mcron-Auftragsspezifikationen,, mcron, GNU@tie{}mcron})."
+
+#. type: item
+#: doc/guix.texi:16920
+#, no-wrap
+msgid "@code{channels} (default: @code{#~%default-channels})"
+msgstr "@code{channels} (Vorgabe: @code{#~%default-channels})"
+
+#. type: table
+#: doc/guix.texi:16924
+msgid "This gexp specifies the channels to use for the upgrade (@pxref{Channels}).  By default, the tip of the official @code{guix} channel is used."
+msgstr "Dieser G-Ausdruck gibt an, welche Kanäle für die Aktualisierung benutzt werden sollen (siehe @ref{Channels}). Nach Vorgabe wird die Spitze des offiziellen @code{guix}-Kanals benutzt."
+
+#. type: item
+#: doc/guix.texi:16925
+#, no-wrap
+msgid "@code{operating-system-file} (default: @code{\"/run/current-system/configuration.scm\"})"
+msgstr "@code{operating-system-file} (Vorgabe: @code{\"/run/current-system/configuration.scm\"})"
+
+#. type: table
+#: doc/guix.texi:16928
+msgid "This field specifies the operating system configuration file to use.  The default is to reuse the config file of the current configuration."
+msgstr "Dieses Feld gibt an, welche Betriebssystemkonfigurationsdatei verwendet werden soll. Nach Vorgabe wird die Konfigurationsdatei der aktuellen Konfiguration wiederverwendet."
+
+#. type: table
+#: doc/guix.texi:16934
+msgid "There are cases, though, where referring to @file{/run/current-system/configuration.scm} is not enough, for instance because that file refers to extra files (SSH public keys, extra configuration files, etc.) @i{via} @code{local-file} and similar constructs.  For those cases, we recommend something along these lines:"
+msgstr "Es gibt jedoch Fälle, wo es nicht ausreicht, auf @file{/run/current-system/configuration.scm} zu verweisen, zum Beispiel weil sich diese mit @code{local-file} oder Ähnlichem auf weitere Dateien wie öffentliche SSH-Schlüssel, andere Konfigurationsdateien usw.@: bezieht. Dann empfehlen wir, etwas wie hier zu schreiben:"
+
+#. type: lisp
+#: doc/guix.texi:16940
+#, no-wrap
+msgid ""
+"(unattended-upgrade-configuration\n"
+"  (operating-system-file\n"
+"    (file-append (local-file \".\" \"config-dir\" #:recursive? #t)\n"
+"                 \"/config.scm\")))\n"
+msgstr ""
+"(unattended-upgrade-configuration\n"
+"  (operating-system-file\n"
+"    (file-append (local-file \".\" \"config-dir\" #:recursive? #t)\n"
+"                 \"/config.scm\")))\n"
+
+#. type: table
+#: doc/guix.texi:16947
+msgid "The effect here is to import all of the current directory into the store, and to refer to @file{config.scm} within that directory.  Therefore, uses of @code{local-file} within @file{config.scm} will work as expected.  @xref{G-Expressions}, for information about @code{local-file} and @code{file-append}."
+msgstr "Das bewirkt, dass das ganze aktuelle Verzeichnis in den Store importiert wird und Bezug auf die @file{config.scm} darin genommen wird. So funktioniert die Nutzung von @code{local-file} in @file{config.scm} wie erwartet. Siehe @ref{G-Expressions} für Informationen zu @code{local-file} und @code{file-append}."
+
+#. type: item
+#: doc/guix.texi:16948
+#, no-wrap
+msgid "@code{services-to-restart} (default: @code{'(mcron)})"
+msgstr "@code{services-to-restart} (Vorgabe: @code{'(mcron)})"
+
+#. type: table
+#: doc/guix.texi:16951
+msgid "This field specifies the Shepherd services to restart when the upgrade completes."
+msgstr "Dieses Feld gibt die Shepherd-Dienste an, die nach Abschluss der Aktualisierung neu gestartet werden sollen."
+
+#. type: table
+#: doc/guix.texi:16958
+msgid "Those services are restarted right away upon completion, as with @command{herd restart}, which ensures that the latest version is running---remember that by default @command{guix system reconfigure} only restarts services that are not currently running, which is conservative: it minimizes disruption but leaves outdated services running."
+msgstr "Die Dienste werden direkt nach Abschluss neu gestartet, so wie es @command{herd restart} tun würde. Dadurch wird sichergestellt, dass die neueste Version läuft — bedenken Sie, dass @command{guix system reconfigure} nach Vorgabe nur diejenigen Dienste neu startet, die zurzeit nicht laufen, was einem konservativen Verhalten entspricht: Störungen werden minimiert, aber veraltete Dienste laufen weiter."
+
+#. type: table
+#: doc/guix.texi:16961
+msgid "By default, the @code{mcron} service is restarted.  This ensures that the latest version of the unattended upgrade job will be used next time."
+msgstr "Nach Vorgabe wird nur der @code{mcron}-Dienst neu gestartet. Dadurch wird beim nächsten Mal sicherlich die neueste Version des Auftrags für unbeaufsichtigte Aktualisierungen benutzt."
+
+#. type: item
+#: doc/guix.texi:16962
+#, no-wrap
+msgid "@code{system-expiration} (default: @code{(* 3 30 24 3600)})"
+msgstr "@code{system-expiration} (Vorgabe: @code{(* 3 30 24 3600)})"
+
+#. type: table
+#: doc/guix.texi:16966
+msgid "This is the expiration time in seconds for system generations.  System generations older that this amount of time are deleted with @command{guix system delete-generations} when an upgrade completes."
+msgstr "Nach wie vielen Sekunden Systemgenerationen auslaufen. Systemgenerationen, die dieses Alter überschritten haben, werden über @command{guix system delete-generations} gelöscht, nachdem eine Aktualisierung abgeschlossen wurde."
+
+#. type: quotation
+#: doc/guix.texi:16971
+msgid "The unattended upgrade service does not run the garbage collector.  You will probably want to set up your own mcron job to run @command{guix gc} periodically."
+msgstr "Der Dienst für unbeaufsichtigte Aktualisierungen lässt jedoch den Müllsammler nicht laufen. Sie möchten wahrscheinlich Ihren eigenen mcron-Auftrag einrichten, der regelmäßig @command{guix gc} ausführt."
+
+#. type: item
+#: doc/guix.texi:16973
+#, no-wrap
+msgid "@code{maximum-duration} (default: @code{3600})"
+msgstr "@code{maximum-duration} (Vorgabe: @code{3600})"
+
+#. type: table
+#: doc/guix.texi:16976
+msgid "Maximum duration in seconds for the upgrade; past that time, the upgrade aborts."
+msgstr "Wie viele Sekunden eine Aktualisierung höchstens dauern darf. Nach dieser Zeit wird die Aktualisierung abgebrochen."
+
+#. type: table
+#: doc/guix.texi:16979
+msgid "This is primarily useful to ensure the upgrade does not end up rebuilding or re-downloading ``the world''."
+msgstr "Diese Begrenzung dient vor allem dazu, zu verhindern, dass „die ganze Welt“ neu erstellt oder neu heruntergeladen wird."
+
+#. type: item
+#: doc/guix.texi:16980
+#, no-wrap
+msgid "@code{log-file} (default: @code{\"/var/log/unattended-upgrade.log\"})"
+msgstr "@code{log-file} (Vorgabe: @code{\"/var/log/unattended-upgrade.log\"})"
+
+#. type: table
+#: doc/guix.texi:16982
+msgid "File where unattended upgrades are logged."
+msgstr "Die Datei, in die über unbeaufsichtigte Aktualisierungen Protokoll geführt wird."
+
+#. type: cindex
+#: doc/guix.texi:16988
 #, no-wrap
 msgid "X11"
 msgstr "X11"
 
 #. type: cindex
-#: doc/guix.texi:14436
+#: doc/guix.texi:16989
 #, no-wrap
 msgid "X Window System"
 msgstr "X Window System"
 
 #. type: cindex
-#: doc/guix.texi:14437 doc/guix.texi:14689
+#: doc/guix.texi:16990 doc/guix.texi:17243
 #, no-wrap
 msgid "login manager"
 msgstr "Anmeldeverwaltung"
 
 #. type: Plain text
-#: doc/guix.texi:14442
+#: doc/guix.texi:16995
 msgid "Support for the X Window graphical display system---specifically Xorg---is provided by the @code{(gnu services xorg)} module.  Note that there is no @code{xorg-service} procedure.  Instead, the X server is started by the @dfn{login manager}, by default the GNOME Display Manager (GDM)."
 msgstr "Unterstützung für das grafische Anzeigesystem X Window — insbesondere Xorg — wird vom Modul @code{(gnu services xorg)} zur Verfügung gestellt. Beachten Sie, dass es @emph{keine} @code{xorg-service}-Prozedur gibt, sondern der X-Server durch eine Software zur @dfn{Anmeldeverwaltung} gestartet wird (ein „Login Manager“). Vorgegeben ist, dass zur Anzeigenverwaltung der GNOME Display Manager (GDM) benutzt wird."
 
 #. type: cindex
-#: doc/guix.texi:14443
+#: doc/guix.texi:16996
 #, no-wrap
 msgid "GDM"
 msgstr "GDM"
 
 #. type: cindex
-#: doc/guix.texi:14444
+#: doc/guix.texi:16997
 #, no-wrap
 msgid "GNOME, login manager"
 msgstr "GNOME, Anmeldeverwaltung"
 
 #. type: Plain text
-#: doc/guix.texi:14448
+#: doc/guix.texi:17001
 msgid "GDM of course allows users to log in into window managers and desktop environments other than GNOME; for those using GNOME, GDM is required for features such as automatic screen locking."
 msgstr "GDM ermöglicht es seinen Nutzern natürlich auch, sich bei anderen Fensterverwaltungssystemen und Arbeitsumgebungen als GNOME anzumelden. Wer GNOME benutzt, kann Funktionalitäten wie eine automatische Bildschirmsperre nur verwenden, wenn die Anmeldung über GDM läuft."
 
 #. type: cindex
-#: doc/guix.texi:14449
+#: doc/guix.texi:17002
 #, no-wrap
 msgid "window manager"
 msgstr "Fensterverwaltung"
 
 #. type: Plain text
-#: doc/guix.texi:14454
+#: doc/guix.texi:17007
 msgid "To use X11, you must install at least one @dfn{window manager}---for example the @code{windowmaker} or @code{openbox} packages---preferably by adding it to the @code{packages} field of your operating system definition (@pxref{operating-system Reference, system-wide packages})."
-msgstr "Um X11 zu benutzen, müssen Sie ein Programme zur @dfn{Fensterverwaltung} („Window-Manager“) oder mehrere davon installieren — zum Beispiel die Pakete @code{windowmaker} oder @code{openbox} —, vorzugsweise indem Sie sie in das @code{packages}-Feld Ihrer Betriebssystemdefinition eintragen (siehe @ref{operating-system Reference, system-wide packages})."
+msgstr "Um X11 zu benutzen, müssen Sie ein Programme zur @dfn{Fensterverwaltung} („Window-Manager“) oder mehrere davon installieren — zum Beispiel die Pakete @code{windowmaker} oder @code{openbox} —, vorzugsweise indem Sie sie in das @code{packages}-Feld Ihrer Betriebssystemdefinition eintragen (siehe @ref{operating-system Reference, global sichtbare Pakete})."
 
 #. type: defvr
-#: doc/guix.texi:14455
+#: doc/guix.texi:17008
 #, no-wrap
 msgid "{Scheme Variable} gdm-service-type"
 msgstr "{Scheme-Variable} gdm-service-type"
 
 #. type: defvr
-#: doc/guix.texi:14460
-msgid "This is the type for the @uref{https://wiki.gnome.org/Projects/GDM/, GNOME Desktop Manager} (GDM), a program that manages graphical display servers and handles graphical user logins.  Its value must be a @code{gdm-configuration} (see below.)"
+#: doc/guix.texi:17013
+msgid "This is the type for the @uref{https://wiki.gnome.org/Projects/GDM/, GNOME Desktop Manager} (GDM), a program that manages graphical display servers and handles graphical user logins.  Its value must be a @code{gdm-configuration} (see below)."
 msgstr "Dies ist der Diensttyp für den @uref{https://wiki.gnome.org/Projects/GDM/, GNOME Desktop Manager}, GDM, ein Programm zur Verwaltung grafischer Anzeigeserver, das grafische Benutzeranmeldungen durchführt. Sein Wert muss eine @code{gdm-configuration} sein (siehe unten)."
 
 #. type: cindex
-#: doc/guix.texi:14461
+#: doc/guix.texi:17014
 #, no-wrap
 msgid "session types (X11)"
 msgstr "Sitzungstypen (X11)"
 
 #. type: cindex
-#: doc/guix.texi:14462
+#: doc/guix.texi:17015
 #, no-wrap
 msgid "X11 session types"
 msgstr "X11-Sitzungstypen"
 
 #. type: defvr
-#: doc/guix.texi:14468
+#: doc/guix.texi:17021
 msgid "GDM looks for @dfn{session types} described by the @file{.desktop} files in @file{/run/current-system/profile/share/xsessions} and allows users to choose a session from the log-in screen.  Packages such as @code{gnome}, @code{xfce}, and @code{i3} provide @file{.desktop} files; adding them to the system-wide set of packages automatically makes them available at the log-in screen."
 msgstr "GDM liest die in den @file{.desktop}-Dateien in @file{/run/current-system/profile/share/xsessions} befindlichen @dfn{Sitzungstypen} ein und stellt diese seinen Nutzern zur Auswahl auf dem Anmeldebildschirm. Pakete wie @code{gnome}, @code{xfce} und @code{i3} stellen @file{.desktop}-Dateien bereit; wenn diese Pakete zu den systemweit verfügbaren Paketen hinzugefügt werden, werden diese automatisch auf dem Anmeldebildschirm angezeigt."
 
 #. type: defvr
-#: doc/guix.texi:14472
+#: doc/guix.texi:17025
 msgid "In addition, @file{~/.xsession} files are honored.  When available, @file{~/.xsession} must be an executable that starts a window manager and/or other X clients."
 msgstr "Des Weiteren werden @file{~/.xsession}-Dateien berücksichtigt. Wenn es vorhanden ist, muss @file{~/.xsession} eine ausführbare Datei sein, die ein Programm zur Fensterverwaltung und/oder andere X-Clients startet."
 
 #. type: deftp
-#: doc/guix.texi:14474
+#: doc/guix.texi:17027
 #, no-wrap
 msgid "{Data Type} gdm-configuration"
 msgstr "{Datentyp} gdm-configuration"
 
 #. type: item
-#: doc/guix.texi:14476 doc/guix.texi:14545
+#: doc/guix.texi:17029 doc/guix.texi:17098
 #, no-wrap
 msgid "@code{auto-login?} (default: @code{#f})"
 msgstr "@code{auto-login?} (Vorgabe: @code{#f})"
 
 #. type: itemx
-#: doc/guix.texi:14477
+#: doc/guix.texi:17030
 #, no-wrap
 msgid "@code{default-user} (default: @code{#f})"
 msgstr "@code{default-user} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:14479
+#: doc/guix.texi:17032
 msgid "When @code{auto-login?} is false, GDM presents a log-in screen."
 msgstr "Wenn @code{auto-login?} falsch ist, zeigt GDM einen Anmeldebildschirm an."
 
 #. type: table
-#: doc/guix.texi:14482
+#: doc/guix.texi:17035
 msgid "When @code{auto-login?} is true, GDM logs in directly as @code{default-user}."
 msgstr "Wenn @code{auto-login?} wahr ist, meldet GDM automatisch den in @code{default-user} angegebenen voreingestellten Benutzer an."
 
 #. type: item
-#: doc/guix.texi:14483 doc/guix.texi:18986 doc/guix.texi:20665
+#: doc/guix.texi:17036 doc/guix.texi:21676 doc/guix.texi:23378
+#: doc/guix.texi:27426 doc/guix.texi:27455 doc/guix.texi:27484
+#: doc/guix.texi:27511 doc/guix.texi:27566 doc/guix.texi:27591
+#: doc/guix.texi:27618 doc/guix.texi:27644 doc/guix.texi:27686
 #, no-wrap
 msgid "@code{debug?} (default: @code{#f})"
 msgstr "@code{debug?} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:14485
+#: doc/guix.texi:17038
 msgid "When true, GDM writes debug messages to its log."
 msgstr "Wenn es wahr ist, schreibt GDM Informationen zur Fehlersuche in sein Protokoll."
 
 #. type: item
-#: doc/guix.texi:14486
+#: doc/guix.texi:17039
 #, no-wrap
 msgid "@code{gnome-shell-assets} (default: ...)"
 msgstr "@code{gnome-shell-assets} (Vorgabe: …)"
 
 #. type: table
-#: doc/guix.texi:14488
+#: doc/guix.texi:17041
 msgid "List of GNOME Shell assets needed by GDM: icon theme, fonts, etc."
 msgstr "Liste der GNOME-Shell-„Assets“, die GDM benötigt, d.h.@: Symbolthema, Schriftarten etc."
 
 #. type: item
-#: doc/guix.texi:14489
+#: doc/guix.texi:17042
 #, no-wrap
 msgid "@code{xorg-configuration} (default: @code{(xorg-configuration)})"
 msgstr "@code{xorg-configuration} (Vorgabe: @code{(xorg-configuration)})"
 
 #. type: table
-#: doc/guix.texi:14491 doc/guix.texi:14572 doc/guix.texi:14655
+#: doc/guix.texi:17044 doc/guix.texi:17125 doc/guix.texi:17209
 msgid "Configuration of the Xorg graphical server."
 msgstr "Xorg-Server für grafische Oberflächen konfigurieren."
 
 #. type: item
-#: doc/guix.texi:14492
+#: doc/guix.texi:17045
 #, no-wrap
 msgid "@code{xsession} (default: @code{(xinitrc)})"
 msgstr "@code{xsession} (Vorgabe: @code{(xinitrc)})"
 
 #. type: table
-#: doc/guix.texi:14494 doc/guix.texi:14670
+#: doc/guix.texi:17047 doc/guix.texi:17224
 msgid "Script to run before starting a X session."
 msgstr "Das Skript, das vor dem Starten einer X-Sitzung ausgeführt werden soll."
 
 #. type: item
-#: doc/guix.texi:14495
+#: doc/guix.texi:17048
 #, no-wrap
 msgid "@code{dbus-daemon} (default: @code{dbus-daemon-wrapper})"
 msgstr "@code{dbus-daemon} (Vorgabe: @code{dbus-daemon-wrapper})"
 
 #. type: table
-#: doc/guix.texi:14497
+#: doc/guix.texi:17050
 msgid "File name of the @code{dbus-daemon} executable."
 msgstr "Der Dateiname der ausführbaren Datei des @code{dbus-daemon}-Programms."
 
 #. type: item
-#: doc/guix.texi:14498
+#: doc/guix.texi:17051
 #, no-wrap
 msgid "@code{gdm} (default: @code{gdm})"
 msgstr "@code{gdm} (Vorgabe: @code{gdm})"
 
 #. type: table
-#: doc/guix.texi:14500
+#: doc/guix.texi:17053
 msgid "The GDM package to use."
 msgstr "Das GDM-Paket, was benutzt werden soll."
 
 #. type: defvr
-#: doc/guix.texi:14503
+#: doc/guix.texi:17056
 #, no-wrap
 msgid "{Scheme Variable} slim-service-type"
 msgstr "{Scheme-Variable} slim-service-type"
 
 #. type: defvr
-#: doc/guix.texi:14505
+#: doc/guix.texi:17058
 msgid "This is the type for the SLiM graphical login manager for X11."
 msgstr "Dies ist der Diensttyp für die schlanke grafische Anmeldungsverwaltung SLiM für X11."
 
 #. type: defvr
-#: doc/guix.texi:14509
+#: doc/guix.texi:17062
 msgid "Like GDM, SLiM looks for session types described by @file{.desktop} files and allows users to choose a session from the log-in screen using @kbd{F1}.  It also honors @file{~/.xsession} files."
 msgstr "Wie GDM liest SLiM die in @file{.desktop}-Dateien beschriebenen Sitzungstypen aus und ermöglicht es Nutzern, eine Sitzung darunter im Anmeldebildschirm durch Drücken von @kbd{F1} auszuwählen. Auch @file{~/.xsession}-Dateien können benutzt werden."
 
 #. type: defvr
-#: doc/guix.texi:14516
+#: doc/guix.texi:17069
 msgid "Unlike GDM, SLiM does not spawn the user session on a different VT after logging in, which means that you can only start one graphical session.  If you want to be able to run multiple graphical sessions at the same time you have to add multiple SLiM services to your system services.  The following example shows how to replace the default GDM service with two SLiM services on tty7 and tty8."
 msgstr "Anders als GDM wird durch SLiM die Benutzersitzung nicht auf einem anderen virtuellen Terminal gestartet, nachdem man sich anmeldet. Die Folge davon ist, dass man nur eine einzige grafische Sitzung starten kann. Wenn Sie mehrere, gleichzeitig laufende grafische Sitzungen starten können möchten, müssen Sie mehrere SLiM-Dienste zu ihren Systemdiensten hinzufügen. Das folgende Beispiel zeigt, wie Sie den vorgegebenen GDM-Dienst durch zwei SLiM-Dienste auf tty7 und tty8 ersetzen."
 
 #. type: lisp
-#: doc/guix.texi:14522
+#: doc/guix.texi:17075
 #, no-wrap
 msgid ""
 "(use-modules (gnu services)\n"
@@ -27061,7 +31384,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:14534
+#: doc/guix.texi:17087
 #, no-wrap
 msgid ""
 "(operating-system\n"
@@ -27089,480 +31412,480 @@ msgstr ""
 "                           %desktop-services))))\n"
 
 #. type: deftp
-#: doc/guix.texi:14538
+#: doc/guix.texi:17091
 #, no-wrap
 msgid "{Data Type} slim-configuration"
 msgstr "{Datentyp} slim-configuration"
 
 #. type: deftp
-#: doc/guix.texi:14540
+#: doc/guix.texi:17093
 msgid "Data type representing the configuration of @code{slim-service-type}."
 msgstr "Datentyp, der die Konfiguration des @code{slim-service-type} repräsentiert."
 
 #. type: table
-#: doc/guix.texi:14544
+#: doc/guix.texi:17097
 msgid "Whether to allow logins with empty passwords."
 msgstr "Ob Anmeldungen mit leeren Passwörtern möglich sein sollen."
 
 #. type: itemx
-#: doc/guix.texi:14546
+#: doc/guix.texi:17099
 #, no-wrap
 msgid "@code{default-user} (default: @code{\"\"})"
 msgstr "@code{default-user} (Vorgabe: @code{\"\"})"
 
 #. type: table
-#: doc/guix.texi:14548
+#: doc/guix.texi:17101
 msgid "When @code{auto-login?} is false, SLiM presents a log-in screen."
 msgstr "Wenn @code{auto-login?} falsch ist, zeigt SLiM einen Anmeldebildschirm an."
 
 #. type: table
-#: doc/guix.texi:14551
+#: doc/guix.texi:17104
 msgid "When @code{auto-login?} is true, SLiM logs in directly as @code{default-user}."
 msgstr "Wenn @code{auto-login?} wahr ist, meldet SLiM automatisch den in @code{default-user} angegebenen voreingestellten Benutzer an."
 
 #. type: item
-#: doc/guix.texi:14552
+#: doc/guix.texi:17105
 #, no-wrap
 msgid "@code{theme} (default: @code{%default-slim-theme})"
 msgstr "@code{theme} (Vorgabe: @code{%default-slim-theme})"
 
 #. type: itemx
-#: doc/guix.texi:14553
+#: doc/guix.texi:17106
 #, no-wrap
 msgid "@code{theme-name} (default: @code{%default-slim-theme-name})"
 msgstr "@code{theme-name} (Vorgabe: @code{%default-slim-theme-name})"
 
 #. type: table
-#: doc/guix.texi:14555
+#: doc/guix.texi:17108
 msgid "The graphical theme to use and its name."
 msgstr "Das grafische Thema, was benutzt werden soll, mit seinem Namen."
 
 #. type: item
-#: doc/guix.texi:14556
+#: doc/guix.texi:17109
 #, no-wrap
 msgid "@code{auto-login-session} (default: @code{#f})"
 msgstr "@code{auto-login-session} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:14559
+#: doc/guix.texi:17112
 msgid "If true, this must be the name of the executable to start as the default session---e.g., @code{(file-append windowmaker \"/bin/windowmaker\")}."
 msgstr "Wenn es wahr ist, muss es den Namen der ausführbaren Datei angeben, die als voreingestellte Sitzung gestartet werden soll — z.B.@: @code{(file-append windowmaker \"/bin/windowmaker\")}."
 
 #. type: table
-#: doc/guix.texi:14563
+#: doc/guix.texi:17116
 msgid "If false, a session described by one of the available @file{.desktop} files in @code{/run/current-system/profile} and @code{~/.guix-profile} will be used."
 msgstr "Wenn es falsch ist, wird eine von einer der @file{.desktop}-Dateien in @code{/run/current-system/profile} und @code{~/.guix-profile} beschriebenen Sitzungen benutzt."
 
 #. type: quotation
-#: doc/guix.texi:14568
+#: doc/guix.texi:17121
 msgid "You must install at least one window manager in the system profile or in your user profile.  Failing to do that, if @code{auto-login-session} is false, you will be unable to log in."
 msgstr "Sie müssen mindestens ein Fensterverwaltungsprogramm in das Systemprofil oder Ihr Benutzerprofil installieren, ansonsten können Sie sich, sofern @code{auto-login-session} falsch ist, nicht anmelden."
 
 #. type: item
-#: doc/guix.texi:14570 doc/guix.texi:14653
+#: doc/guix.texi:17123 doc/guix.texi:17207
 #, no-wrap
 msgid "@code{xorg-configuration} (default @code{(xorg-configuration)})"
 msgstr "@code{xorg-configuration} (Vorgabe: @code{(xorg-configuration)})"
 
 #. type: item
-#: doc/guix.texi:14573
+#: doc/guix.texi:17126
 #, no-wrap
 msgid "@code{display} (default @code{\":0\"})"
 msgstr "@code{display} (Vorgabe: @code{\":0\"})"
 
 #. type: table
-#: doc/guix.texi:14575
+#: doc/guix.texi:17128
 msgid "The display on which to start the Xorg graphical server."
 msgstr "Die Anzeige, auf welcher der Xorg-Server für grafische Oberflächen gestartet werden soll."
 
 #. type: item
-#: doc/guix.texi:14576
+#: doc/guix.texi:17129
 #, no-wrap
 msgid "@code{vt} (default @code{\"vt7\"})"
 msgstr "@code{vt} (Vorgabe: @code{\"vt7\"})"
 
 #. type: table
-#: doc/guix.texi:14578
+#: doc/guix.texi:17131
 msgid "The VT on which to start the Xorg graphical server."
 msgstr "Das virtuelle Terminal, auf dem der Xorg-Server für grafische Oberflächen gestartet werden soll."
 
 #. type: item
-#: doc/guix.texi:14579
+#: doc/guix.texi:17132
 #, no-wrap
 msgid "@code{xauth} (default: @code{xauth})"
 msgstr "@code{xauth} (Vorgabe: @code{xauth})"
 
 #. type: table
-#: doc/guix.texi:14581
+#: doc/guix.texi:17134
 msgid "The XAuth package to use."
 msgstr "Das XAuth-Paket, das benutzt werden soll."
 
 #. type: item
-#: doc/guix.texi:14582
+#: doc/guix.texi:17135
 #, no-wrap
 msgid "@code{shepherd} (default: @code{shepherd})"
 msgstr "@code{shepherd} (Vorgabe: @code{shepherd})"
 
 #. type: table
-#: doc/guix.texi:14585
+#: doc/guix.texi:17138
 msgid "The Shepherd package used when invoking @command{halt} and @command{reboot}."
 msgstr "Das Shepherd-Paket, das benutzt wird, wenn @command{halt} und @command{reboot} aufgerufen werden."
 
 #. type: item
-#: doc/guix.texi:14586
+#: doc/guix.texi:17139
 #, no-wrap
 msgid "@code{sessreg} (default: @code{sessreg})"
 msgstr "@code{sessreg} (Vorgabe: @code{sessreg})"
 
 #. type: table
-#: doc/guix.texi:14588
+#: doc/guix.texi:17141
 msgid "The sessreg package used in order to register the session."
 msgstr "Das sessreg-Paket, das zum Registrieren der Sitzung benutzt werden soll."
 
 #. type: item
-#: doc/guix.texi:14589
+#: doc/guix.texi:17142
 #, no-wrap
 msgid "@code{slim} (default: @code{slim})"
 msgstr "@code{slim} (Vorgabe: @code{slim})"
 
 #. type: table
-#: doc/guix.texi:14591
+#: doc/guix.texi:17144
 msgid "The SLiM package to use."
 msgstr "Das zu benutzende SLiM-Paket."
 
 #. type: defvr
-#: doc/guix.texi:14594 doc/guix.texi:26480
+#: doc/guix.texi:17147
 #, no-wrap
 msgid "{Scheme Variable} %default-theme"
 msgstr "{Scheme-Variable} %default-theme"
 
 #. type: defvrx
-#: doc/guix.texi:14595
+#: doc/guix.texi:17148
 #, no-wrap
 msgid "{Scheme Variable} %default-theme-name"
 msgstr "{Scheme-Variable} %default-theme-name"
 
 #. type: defvr
-#: doc/guix.texi:14597
+#: doc/guix.texi:17150
 msgid "The default SLiM theme and its name."
 msgstr "Das vorgegebene Thema für das Aussehen von SLiM mit seinem Namen."
 
 #. type: deftp
-#: doc/guix.texi:14600 doc/guix.texi:14706
+#: doc/guix.texi:17153 doc/guix.texi:17260
 #, no-wrap
 msgid "{Data Type} sddm-configuration"
 msgstr "{Datentyp} sddm-configuration"
 
 #. type: deftp
-#: doc/guix.texi:14602
-msgid "This is the data type representing the sddm service configuration."
+#: doc/guix.texi:17155
+msgid "This is the data type representing the SDDM service configuration."
 msgstr "Dieser Datentyp repräsentiert die Konfiguration des SDDM-Dienstes."
 
 #. type: item
-#: doc/guix.texi:14604
+#: doc/guix.texi:17157
 #, no-wrap
 msgid "@code{display-server} (default: \"x11\")"
 msgstr "@code{display-server} (Vorgabe: \"x11\")"
 
 #. type: table
-#: doc/guix.texi:14607
-msgid "Select display server to use for the greeter. Valid values are \"x11\" or \"wayland\"."
-msgstr "Einen Anzeigeserver auswählen, der für den Anmeldebildschirm verwendet werden soll. Zulässige Werte sind \"x11\" oder \"wayland\"."
+#: doc/guix.texi:17160
+msgid "Select display server to use for the greeter.  Valid values are @samp{\"x11\"} or @samp{\"wayland\"}."
+msgstr "Einen Anzeigeserver auswählen, der für den Anmeldebildschirm verwendet werden soll. Zulässige Werte sind @samp{\"x11\"} oder @samp{\"wayland\"}."
 
 #. type: item
-#: doc/guix.texi:14608
+#: doc/guix.texi:17161
 #, no-wrap
 msgid "@code{numlock} (default: \"on\")"
 msgstr "@code{numlock} (Vorgabe: \"on\")"
 
 #. type: table
-#: doc/guix.texi:14610
-msgid "Valid values are \"on\", \"off\" or \"none\"."
-msgstr "Gültige Werte sind \"on\", \"off\" oder \"none\"."
+#: doc/guix.texi:17163
+msgid "Valid values are @samp{\"on\"}, @samp{\"off\"} or @samp{\"none\"}."
+msgstr "Gültige Werte sind @samp{\"on\"}, @samp{\"off\"} oder @samp{\"none\"}."
 
 #. type: item
-#: doc/guix.texi:14611
+#: doc/guix.texi:17164
 #, no-wrap
 msgid "@code{halt-command} (default @code{#~(string-apppend #$shepherd \"/sbin/halt\")})"
 msgstr "@code{halt-command} (Vorgabe: @code{#~(string-apppend #$shepherd \"/sbin/halt\")})"
 
 #. type: table
-#: doc/guix.texi:14613
+#: doc/guix.texi:17166
 msgid "Command to run when halting."
 msgstr "Der Befehl, der zum Anhalten des Systems ausgeführt wird."
 
 #. type: item
-#: doc/guix.texi:14614
+#: doc/guix.texi:17167
 #, no-wrap
 msgid "@code{reboot-command} (default @code{#~(string-append #$shepherd \"/sbin/reboot\")})"
 msgstr "@code{reboot-command} (Vorgabe: @code{#~(string-append #$shepherd \"/sbin/reboot\")})"
 
 #. type: table
-#: doc/guix.texi:14616
+#: doc/guix.texi:17169
 msgid "Command to run when rebooting."
 msgstr "Der Befehl, der zum Neustarten des Systems ausgeführt wird."
 
 #. type: item
-#: doc/guix.texi:14617
+#: doc/guix.texi:17170
 #, no-wrap
 msgid "@code{theme} (default \"maldives\")"
 msgstr "@code{theme} (Vorgabe: \"maldives\")"
 
 #. type: table
-#: doc/guix.texi:14619
-msgid "Theme to use. Default themes provided by SDDM are \"elarun\", \"maldives\" or \"maya\"."
-msgstr "Welches Thema für das Aussehen benutzt werden soll. Mit SDDM mitgelieferte Themen sind \"elarun\", \"maldives\" und \"maya\"."
+#: doc/guix.texi:17173
+msgid "Theme to use.  Default themes provided by SDDM are @samp{\"elarun\"}, @samp{\"maldives\"} or @samp{\"maya\"}."
+msgstr "Welches Thema für das Aussehen benutzt werden soll. Mit SDDM mitgelieferte Themen sind @samp{\"elarun\"}, @samp{\"maldives\"} und @samp{\"maya\"}."
 
 #. type: item
-#: doc/guix.texi:14620
+#: doc/guix.texi:17174
 #, no-wrap
 msgid "@code{themes-directory} (default \"/run/current-system/profile/share/sddm/themes\")"
 msgstr "@code{themes-directory} (Vorgabe: \"/run/current-system/profile/share/sddm/themes\")"
 
 #. type: table
-#: doc/guix.texi:14622
+#: doc/guix.texi:17176
 msgid "Directory to look for themes."
 msgstr "Verzeichnis, wo Themen gefunden werden können."
 
 #. type: item
-#: doc/guix.texi:14623
+#: doc/guix.texi:17177
 #, no-wrap
 msgid "@code{faces-directory} (default \"/run/current-system/profile/share/sddm/faces\")"
 msgstr "@code{faces-directory} (Vorgabe: \"/run/current-system/profile/share/sddm/faces\")"
 
 #. type: table
-#: doc/guix.texi:14625
+#: doc/guix.texi:17179
 msgid "Directory to look for faces."
 msgstr "Verzeichnis, wo Avatarbilder gefunden werden können.<"
 
 #. type: item
-#: doc/guix.texi:14626
+#: doc/guix.texi:17180
 #, no-wrap
 msgid "@code{default-path} (default \"/run/current-system/profile/bin\")"
 msgstr "@code{default-path} (Vorgabe: \"/run/current-system/profile/bin\")"
 
 #. type: table
-#: doc/guix.texi:14628
+#: doc/guix.texi:17182
 msgid "Default PATH to use."
 msgstr "Welcher PATH voreingestellt sein soll."
 
 #. type: item
-#: doc/guix.texi:14629
+#: doc/guix.texi:17183
 #, no-wrap
 msgid "@code{minimum-uid} (default: 1000)"
 msgstr "@code{minimum-uid} (Vorgabe: 1000)"
 
 #. type: table
-#: doc/guix.texi:14631
+#: doc/guix.texi:17185
 msgid "Minimum UID displayed in SDDM and allowed for log-in."
 msgstr "Der kleinste Benutzeridentifikator (UID), mit dem Benutzer in SDDM angezeigt werden und sich anmelden können."
 
 #. type: item
-#: doc/guix.texi:14632
+#: doc/guix.texi:17186
 #, no-wrap
 msgid "@code{maximum-uid} (default: 2000)"
 msgstr "@code{maximum-uid} (Vorgabe: 2000)"
 
 #. type: table
-#: doc/guix.texi:14634
+#: doc/guix.texi:17188
 msgid "Maximum UID to display in SDDM."
 msgstr "Der größte Benutzeridentifikator (UID), mit dem Benutzer in SDDM angezeigt werden.<"
 
 #. type: item
-#: doc/guix.texi:14635
+#: doc/guix.texi:17189
 #, no-wrap
 msgid "@code{remember-last-user?} (default #t)"
 msgstr "@code{remember-last-user?} (Vorgabe: #t)"
 
 #. type: table
-#: doc/guix.texi:14637
+#: doc/guix.texi:17191
 msgid "Remember last user."
 msgstr "Den zuletzt ausgewählten Benutzer voreinstellen."
 
 #. type: item
-#: doc/guix.texi:14638
+#: doc/guix.texi:17192
 #, no-wrap
 msgid "@code{remember-last-session?} (default #t)"
 msgstr "@code{remember-last-session?} (Vorgabe: #t)"
 
 #. type: table
-#: doc/guix.texi:14640
+#: doc/guix.texi:17194
 msgid "Remember last session."
 msgstr "Die zuletzt ausgewählte Sitzung voreinstellen."
 
 #. type: item
-#: doc/guix.texi:14641
+#: doc/guix.texi:17195
 #, no-wrap
 msgid "@code{hide-users} (default \"\")"
 msgstr "@code{hide-users} (Vorgabe: \"\")"
 
 #. type: table
-#: doc/guix.texi:14643
+#: doc/guix.texi:17197
 msgid "Usernames to hide from SDDM greeter."
 msgstr "Benutzernamen, die in SDDM @emph{nicht} sichtbar sein sollen."
 
 #. type: item
-#: doc/guix.texi:14644
+#: doc/guix.texi:17198
 #, no-wrap
 msgid "@code{hide-shells} (default @code{#~(string-append #$shadow \"/sbin/nologin\")})"
 msgstr "@code{hide-shells} (Vorgabe: @code{#~(string-append #$shadow \"/sbin/nologin\")})"
 
 #. type: table
-#: doc/guix.texi:14646
+#: doc/guix.texi:17200
 msgid "Users with shells listed will be hidden from the SDDM greeter."
 msgstr "Benutzerkonten, für die als Shell eine davon eingestellt ist, wird SDDM @emph{nicht} anzeigen."
 
 #. type: item
-#: doc/guix.texi:14647
+#: doc/guix.texi:17201
 #, no-wrap
 msgid "@code{session-command} (default @code{#~(string-append #$sddm \"/share/sddm/scripts/wayland-session\")})"
 msgstr "@code{session-command} (Vorgabe: @code{#~(string-append #$sddm \"/share/sddm/scripts/wayland-session\")})"
 
 #. type: table
-#: doc/guix.texi:14649
+#: doc/guix.texi:17203
 msgid "Script to run before starting a wayland session."
 msgstr "Das Skript, das vor dem Starten einer Wayland-Sitzung ausgeführt werden soll."
 
 #. type: item
-#: doc/guix.texi:14650
+#: doc/guix.texi:17204
 #, no-wrap
 msgid "@code{sessions-directory} (default \"/run/current-system/profile/share/wayland-sessions\")"
 msgstr "@code{sessions-directory} (Vorgabe: \"/run/current-system/profile/share/wayland-sessions\")"
 
 #. type: table
-#: doc/guix.texi:14652
+#: doc/guix.texi:17206
 msgid "Directory to look for desktop files starting wayland sessions."
 msgstr "Verzeichnis, das nach .desktop-Dateien zum Starten von Wayland-Sitzungen durchsucht wird."
 
 #. type: item
-#: doc/guix.texi:14656
+#: doc/guix.texi:17210
 #, no-wrap
 msgid "@code{xauth-path} (default @code{#~(string-append #$xauth \"/bin/xauth\")})"
 msgstr "@code{xauth-path} (Vorgabe: @code{#~(string-append #$xauth \"/bin/xauth\")})"
 
 #. type: table
-#: doc/guix.texi:14658
+#: doc/guix.texi:17212
 msgid "Path to xauth."
 msgstr "Pfad von xauth."
 
 #. type: item
-#: doc/guix.texi:14659
+#: doc/guix.texi:17213
 #, no-wrap
 msgid "@code{xephyr-path} (default @code{#~(string-append #$xorg-server \"/bin/Xephyr\")})"
 msgstr "@code{xephyr-path} (Vorgabe: @code{#~(string-append #$xorg-server \"/bin/Xephyr\")})"
 
 #. type: table
-#: doc/guix.texi:14661
+#: doc/guix.texi:17215
 msgid "Path to Xephyr."
 msgstr "Pfad von Xephyr."
 
 #. type: item
-#: doc/guix.texi:14662
+#: doc/guix.texi:17216
 #, no-wrap
 msgid "@code{xdisplay-start} (default @code{#~(string-append #$sddm \"/share/sddm/scripts/Xsetup\")})"
 msgstr "@code{xdisplay-start} (Vorgabe: @code{#~(string-append #$sddm \"/share/sddm/scripts/Xsetup\")})"
 
 #. type: table
-#: doc/guix.texi:14664
+#: doc/guix.texi:17218
 msgid "Script to run after starting xorg-server."
 msgstr "Skript, das nach dem Starten vom Xorg-Server ausgeführt wird."
 
 #. type: item
-#: doc/guix.texi:14665
+#: doc/guix.texi:17219
 #, no-wrap
 msgid "@code{xdisplay-stop} (default @code{#~(string-append #$sddm \"/share/sddm/scripts/Xstop\")})"
 msgstr "@code{xdisplay-stop} (Vorgabe: @code{#~(string-append #$sddm \"/share/sddm/scripts/Xstop\")})"
 
 #. type: table
-#: doc/guix.texi:14667
+#: doc/guix.texi:17221
 msgid "Script to run before stopping xorg-server."
 msgstr "Skript, das vor dem Stoppen vom Xorg-Server ausgeführt wird."
 
 #. type: item
-#: doc/guix.texi:14668
+#: doc/guix.texi:17222
 #, no-wrap
 msgid "@code{xsession-command} (default: @code{xinitrc})"
 msgstr "@code{xsession-command} (Vorgabe: @code{xinitrc})"
 
 #. type: item
-#: doc/guix.texi:14671
+#: doc/guix.texi:17225
 #, no-wrap
 msgid "@code{xsessions-directory} (default: \"/run/current-system/profile/share/xsessions\")"
 msgstr "@code{xsessions-directory} (Vorgabe: \"/run/current-system/profile/share/xsessions\")"
 
 #. type: table
-#: doc/guix.texi:14673
+#: doc/guix.texi:17227
 msgid "Directory to look for desktop files starting X sessions."
 msgstr "Verzeichnis, das nach .desktop-Dateien zum Starten von X-Sitzungen durchsucht wird.<"
 
 #. type: item
-#: doc/guix.texi:14674
+#: doc/guix.texi:17228
 #, no-wrap
 msgid "@code{minimum-vt} (default: 7)"
 msgstr "@code{minimum-vt} (Vorgabe: 7)"
 
 #. type: table
-#: doc/guix.texi:14676
+#: doc/guix.texi:17230
 msgid "Minimum VT to use."
 msgstr "Das kleinste virtuelle Terminal, das benutzt werden darf."
 
 #. type: item
-#: doc/guix.texi:14677
+#: doc/guix.texi:17231
 #, no-wrap
 msgid "@code{auto-login-user} (default \"\")"
 msgstr "@code{auto-login-user} (Vorgabe: \"\")"
 
 #. type: table
-#: doc/guix.texi:14679
+#: doc/guix.texi:17233
 msgid "User to use for auto-login."
 msgstr "Benutzer, der bei automatischer Anmeldung angemeldet wird."
 
 #. type: item
-#: doc/guix.texi:14680
+#: doc/guix.texi:17234
 #, no-wrap
 msgid "@code{auto-login-session} (default \"\")"
 msgstr "@code{auto-login-session} (Vorgabe: \"\")"
 
 #. type: table
-#: doc/guix.texi:14682
+#: doc/guix.texi:17236
 msgid "Desktop file to use for auto-login."
 msgstr "Desktop-Datei für die automatische Anmeldung."
 
 #. type: item
-#: doc/guix.texi:14683
+#: doc/guix.texi:17237
 #, no-wrap
 msgid "@code{relogin?} (default #f)"
 msgstr "@code{relogin?} (Vorgabe: #f)"
 
 #. type: table
-#: doc/guix.texi:14685
+#: doc/guix.texi:17239
 msgid "Relogin after logout."
 msgstr "Ob nach dem Abmelden neu angemeldet werden soll."
 
 #. type: cindex
-#: doc/guix.texi:14690
+#: doc/guix.texi:17244
 #, no-wrap
 msgid "X11 login"
 msgstr "X11-Anmeldung"
 
 #. type: defvr
-#: doc/guix.texi:14691
+#: doc/guix.texi:17245
 #, no-wrap
 msgid "{Scheme Variable} sddm-service-type"
 msgstr "{Scheme-Variable} sddm-service-type"
 
 #. type: defvr
-#: doc/guix.texi:14695
+#: doc/guix.texi:17249
 msgid "This is the type of the service to run the @uref{https://github.com/sddm/sddm,SDDM display manager}.  Its value must be a @code{sddm-configuration} record (see below)."
 msgstr "Dies ist der Typ des Dienstes, mit dem der @uref{https://github.com/sddm/sddm,SDDM-Anzeigeserver} gestartet wird. Sein Wert muss ein @code{sddm-configuration}-Verbundsobjekt sein (siehe unten)."
 
 #. type: defvr
-#: doc/guix.texi:14697
+#: doc/guix.texi:17251
 msgid "Here's an example use:"
 msgstr "Hier ist ein Beispiel für seine Verwendung:"
 
 #. type: lisp
-#: doc/guix.texi:14703
+#: doc/guix.texi:17257
 #, no-wrap
 msgid ""
 "(service sddm-service-type\n"
@@ -27576,264 +31899,264 @@ msgstr ""
 "           (auto-login-session \"xfce.desktop\")))\n"
 
 #. type: deftp
-#: doc/guix.texi:14709
+#: doc/guix.texi:17263
 msgid "This data type represents the configuration of the SDDM login manager.  The available fields are:"
 msgstr "Dieser Datentyp repräsentiert die Konfiguration der SDDM-Anmeldeverwaltung. Die verfügbaren Felder sind:"
 
 #. type: item
-#: doc/guix.texi:14711
+#: doc/guix.texi:17265
 #, no-wrap
 msgid "@code{sddm} (default: @code{sddm})"
 msgstr "@code{sddm} (Vorgabe: @code{sddm})"
 
 #. type: table
-#: doc/guix.texi:14713
+#: doc/guix.texi:17267
 msgid "The SDDM package to use."
 msgstr "Das SDDM-Paket, was benutzt werden soll."
 
 #. type: item
-#: doc/guix.texi:14714
+#: doc/guix.texi:17268
 #, no-wrap
 msgid "@code{display-server} (default: @code{\"x11\"})"
 msgstr "@code{display-server} (Vorgabe: @code{\"x11\"})"
 
 #. type: table
-#: doc/guix.texi:14716
+#: doc/guix.texi:17270
 msgid "This must be either @code{\"x11\"} or @code{\"wayland\"}."
 msgstr "Hier muss entweder @code{\"x11\"} oder @code{\"wayland\"} angegeben werden."
 
 #. type: item
-#: doc/guix.texi:14719
+#: doc/guix.texi:17273
 #, no-wrap
 msgid "@code{auto-login-user} (default: @code{\"\"})"
 msgstr "@code{auto-login-user} (Vorgabe: @code{\"\"})"
 
 #. type: table
-#: doc/guix.texi:14722
+#: doc/guix.texi:17276
 msgid "If non-empty, this is the user account under which to log in automatically."
 msgstr "Wenn es nicht leer ist, enthält dieses Feld das Benutzerkonto, mit dem man automatisch angemeldet wird."
 
 #. type: item
-#: doc/guix.texi:14723
+#: doc/guix.texi:17277
 #, no-wrap
 msgid "@code{auto-login-session} (default: @code{\"\"})"
 msgstr "@code{auto-login-session} (Vorgabe: @code{\"\"})"
 
 #. type: table
-#: doc/guix.texi:14726
+#: doc/guix.texi:17280
 msgid "If non-empty, this is the @file{.desktop} file name to use as the auto-login session."
 msgstr "Wenn es nicht leer ist, gibt dieses Feld den Namen der @file{.desktop}-Datei an, die bei automatischer Anmeldung für die Sitzung verwendet wird."
 
 #. type: cindex
-#: doc/guix.texi:14729
+#: doc/guix.texi:17283
 #, no-wrap
 msgid "Xorg, configuration"
 msgstr "Xorg, Konfiguration"
 
 #. type: deftp
-#: doc/guix.texi:14730
+#: doc/guix.texi:17284
 #, no-wrap
 msgid "{Data Type} xorg-configuration"
 msgstr "{Datentyp} xorg-configuration"
 
 #. type: deftp
-#: doc/guix.texi:14735
-msgid "This data type represents the configuration of the Xorg graphical display server.  Note that there is not Xorg service; instead, the X server is started by a ``display manager'' such as GDM, SDDM, and SLiM.  Thus, the configuration of these display managers aggregates an @code{xorg-configuration} record."
+#: doc/guix.texi:17289
+msgid "This data type represents the configuration of the Xorg graphical display server.  Note that there is no Xorg service; instead, the X server is started by a ``display manager'' such as GDM, SDDM, and SLiM.  Thus, the configuration of these display managers aggregates an @code{xorg-configuration} record."
 msgstr "Dieser Datentyp repräsentiert die Konfiguration des grafischen Anzeigeservers Xorg. Beachten Sie, dass es keinen Xorg-Dienst gibt, sondern der X-Server von einer „Anzeigenverwaltung“ wie GDM, SDDM oder SLiM gestartet wird. Deswegen wird aus der Konfiguration dieser Anzeigenverwaltungen ein @code{xorg-configuration}-Verbundsobjekt konstruiert."
 
 #. type: item
-#: doc/guix.texi:14737
+#: doc/guix.texi:17291
 #, no-wrap
 msgid "@code{modules} (default: @code{%default-xorg-modules})"
 msgstr "@code{modules} (Vorgabe: @code{%default-xorg-modules})"
 
 #. type: table
-#: doc/guix.texi:14740
+#: doc/guix.texi:17294
 msgid "This is a list of @dfn{module packages} loaded by the Xorg server---e.g., @code{xf86-video-vesa}, @code{xf86-input-keyboard}, and so on."
 msgstr "Dies ist eine Liste von @dfn{Modulpaketen}, die vom Xorg-Server geladen werden — z.B.@: @code{xf86-video-vesa}, @code{xf86-input-keyboard} und so weiter."
 
 #. type: item
-#: doc/guix.texi:14741
+#: doc/guix.texi:17295
 #, no-wrap
 msgid "@code{fonts} (default: @code{%default-xorg-fonts})"
 msgstr "@code{fonts} (Vorgabe: @code{%default-xorg-fonts})"
 
 #. type: table
-#: doc/guix.texi:14743
+#: doc/guix.texi:17297
 msgid "This is a list of font directories to add to the server's @dfn{font path}."
 msgstr "Dies ist eine Liste von Verzeichnissen mit Schriftarten, die zum Schriftartensuchpfad („Font Path“) des Servers hinzugefügt werden."
 
 #. type: item
-#: doc/guix.texi:14744
+#: doc/guix.texi:17298
 #, no-wrap
 msgid "@code{drivers} (default: @code{'()})"
 msgstr "@code{drivers} (Vorgabe: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:14748
+#: doc/guix.texi:17302
 msgid "This must be either the empty list, in which case Xorg chooses a graphics driver automatically, or a list of driver names that will be tried in this order---e.g., @code{(\"modesetting\" \"vesa\")}."
 msgstr "Dies muss entweder die leere Liste sein — in diesem Fall wird durch Xorg automatisch ein Grafiktreiber ausgewählt — oder eine Liste von Treibernamen, die in dieser Reihenfolge durchprobiert werden — z.B.@: @code{(\"modesetting\" \"vesa\")}."
 
 #. type: item
-#: doc/guix.texi:14749
+#: doc/guix.texi:17303
 #, no-wrap
 msgid "@code{resolutions} (default: @code{'()})"
 msgstr "@code{resolutions} (Vorgabe: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:14753
+#: doc/guix.texi:17307
 msgid "When @code{resolutions} is the empty list, Xorg chooses an appropriate screen resolution.  Otherwise, it must be a list of resolutions---e.g., @code{((1024 768) (640 480))}."
 msgstr "Wenn @code{resolutions} die leere Liste ist, wird automatisch durch Xorg eine passende Bildschirmauflösung gewählt. Andernfalls muss hier eine Liste von Bildschirmauflösungen angegeben werden — z.B.@: @code{((1024 768) (640 480))}."
 
 #. type: cindex
-#: doc/guix.texi:14754
+#: doc/guix.texi:17308
 #, no-wrap
 msgid "keyboard layout, for Xorg"
 msgstr "Tastaturbelegung, für Xorg"
 
 #. type: cindex
-#: doc/guix.texi:14755
+#: doc/guix.texi:17309
 #, no-wrap
 msgid "keymap, for Xorg"
 msgstr "Keymap, für Xorg"
 
 #. type: table
-#: doc/guix.texi:14759
+#: doc/guix.texi:17313
 msgid "If this is @code{#f}, Xorg uses the default keyboard layout---usually US English (``qwerty'') for a 105-key PC keyboard."
 msgstr "Wenn es auf @code{#f} gesetzt ist, benutzt Xorg die voreingestellte Tastaturbelegung, also normalerweise US English („QWERTY“) für eine PC-Tastatur mit 105 Tasten."
 
 #. type: table
-#: doc/guix.texi:14763
+#: doc/guix.texi:17317
 msgid "Otherwise this must be a @code{keyboard-layout} object specifying the keyboard layout in use when Xorg is running.  @xref{Keyboard Layout}, for more information on how to specify the keyboard layout."
 msgstr "Andernfalls muss hier ein @code{keyboard-layout}-Objekt stehen, das angibt, welche Tastaturbelegung aktiv sein soll, während Xorg läuft. Siehe @ref{Keyboard Layout} für mehr Informationen, wie die Tastaturbelegung angegeben werden kann."
 
 #. type: item
-#: doc/guix.texi:14764
+#: doc/guix.texi:17318 doc/guix.texi:18973 doc/guix.texi:29891
 #, no-wrap
 msgid "@code{extra-config} (default: @code{'()})"
 msgstr "@code{extra-config} (Vorgabe: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:14767
+#: doc/guix.texi:17321 doc/guix.texi:29895
 msgid "This is a list of strings or objects appended to the configuration file.  It is used to pass extra text to be added verbatim to the configuration file."
 msgstr "Dies ist eine Liste von Zeichenketten oder Objekten, die an die Konfigurationsdatei angehängt werden. Mit ihnen wird zusätzlicher Text wortwörtlich zur Konfigurationsdatei hinzugefügt."
 
 #. type: item
-#: doc/guix.texi:14768
+#: doc/guix.texi:17322
 #, no-wrap
 msgid "@code{server} (default: @code{xorg-server})"
 msgstr "@code{server} (Vorgabe: @code{xorg-server})"
 
 #. type: table
-#: doc/guix.texi:14770
+#: doc/guix.texi:17324
 msgid "This is the package providing the Xorg server."
 msgstr "Dieses Paket stellt den Xorg-Server zur Verfügung."
 
 #. type: item
-#: doc/guix.texi:14771
+#: doc/guix.texi:17325
 #, no-wrap
 msgid "@code{server-arguments} (default: @code{%default-xorg-server-arguments})"
 msgstr "@code{server-arguments} (Vorgabe: @code{%default-xorg-server-arguments})"
 
 #. type: table
-#: doc/guix.texi:14774
+#: doc/guix.texi:17328
 msgid "This is the list of command-line arguments to pass to the X server.  The default is @code{-nolisten tcp}."
 msgstr "Dies ist die Liste der Befehlszeilenargumente, die an den X-Server übergeben werden. Die Vorgabe ist @code{-nolisten tcp}."
 
 #. type: deffn
-#: doc/guix.texi:14777
+#: doc/guix.texi:17331
 #, no-wrap
 msgid "{Scheme Procedure} set-xorg-configuration @var{config} @"
 msgstr "{Scheme-Prozedur} set-xorg-configuration @var{Konfiguration} @"
 
 #. type: deffn
-#: doc/guix.texi:14781
+#: doc/guix.texi:17335
 msgid "[@var{login-manager-service-type}] Tell the log-in manager (of type @var{login-manager-service-type}) to use @var{config}, an @code{<xorg-configuration>} record."
 msgstr "[@var{login-manager-service-type}] Benennt, welche @var{Konfiguration} die Anmeldeverwaltung (vom Typ @var{login-manager-service-type}) benutzen soll, als ein @code{<xorg-configuration>}-Verbundsobjekt."
 
 #. type: deffn
-#: doc/guix.texi:14785
+#: doc/guix.texi:17339
 msgid "Since the Xorg configuration is embedded in the log-in manager's configuration---e.g., @code{gdm-configuration}---this procedure provides a shorthand to set the Xorg configuration."
 msgstr "Da die Xorg-Konfiguration in die Konfiguration der Anmeldeverwaltung eingebettet ist — z.B.@: in einer @code{gdm-configuration} —, bietet diese Prozedur eine Kurzschreibweise zum Ändern der Xorg-Konfiguration."
 
 #. type: deffn
-#: doc/guix.texi:14787
+#: doc/guix.texi:17341
 #, no-wrap
 msgid "{Scheme Procedure} xorg-start-command [@var{config}]"
 msgstr "{Scheme-Prozedur} xorg-start-command [@var{Konfiguration}]"
 
 #. type: deffn
-#: doc/guix.texi:14791
+#: doc/guix.texi:17345
 msgid "Return a @code{startx} script in which the modules, fonts, etc. specified in @var{config}, are available.  The result should be used in place of @code{startx}."
 msgstr "Hier wird ein @code{startx}-Skript geliefert, in welchem die Module, Schriftarten usw.@: verfügbar sind, die in der @var{Konfiguration} angegeben wurden. Das Ergebnis soll anstelle von @code{startx} benutzt werden."
 
 #. type: deffn
-#: doc/guix.texi:14793
+#: doc/guix.texi:17347
 msgid "Usually the X server is started by a login manager."
 msgstr "Normalerweise wird der X-Server von der Anmeldeverwaltung gestartet."
 
 #. type: deffn
-#: doc/guix.texi:14796
+#: doc/guix.texi:17350
 #, no-wrap
 msgid "{Scheme Procedure} screen-locker-service @var{package} [@var{program}]"
-msgstr "{Scheme Procedure} screen-locker-service @var{Paket} [@var{Programm}]"
+msgstr "{Scheme-Prozedur} screen-locker-service @var{Paket} [@var{Programm}]"
 
 #. type: deffn
-#: doc/guix.texi:14800
+#: doc/guix.texi:17354
 msgid "Add @var{package}, a package for a screen locker or screen saver whose command is @var{program}, to the set of setuid programs and add a PAM entry for it.  For example:"
 msgstr "Das @var{Paket} zur Menge der setuid-Programme hinzufügen, worin sich ein Programm zum Sperren des Bildschirms oder ein Bildschirmschoner befinden muss, der mit dem Befehl @var{Programm} gestartet wird, und einen PAM-Eintrag dafür hinzufügen. Zum Beispiel macht"
 
 #. type: lisp
-#: doc/guix.texi:14803
+#: doc/guix.texi:17357
 #, no-wrap
 msgid "(screen-locker-service xlockmore \"xlock\")\n"
 msgstr "(screen-locker-service xlockmore \"xlock\")\n"
 
 #. type: deffn
-#: doc/guix.texi:14806
+#: doc/guix.texi:17360
 msgid "makes the good ol' XlockMore usable."
 msgstr "das gute alte XlockMore benutzbar."
 
 #. type: cindex
-#: doc/guix.texi:14812
+#: doc/guix.texi:17366
 #, no-wrap
 msgid "printer support with CUPS"
 msgstr "Druckerunterstützung mit CUPS"
 
 #. type: Plain text
-#: doc/guix.texi:14816
+#: doc/guix.texi:17370
 msgid "The @code{(gnu services cups)} module provides a Guix service definition for the CUPS printing service.  To add printer support to a Guix system, add a @code{cups-service} to the operating system definition:"
 msgstr "Das Modul @code{(gnu services cups)} stellt eine Guix-Dienstdefinition für den CUPS-Druckdienst zur Verfügung. Wenn Sie Druckerunterstützung zu einem Guix-System hinzufügen möchten, dann fügen Sie einen @code{cups-service}-Dienst in die Betriebssystemdefinition ein."
 
 #. type: deffn
-#: doc/guix.texi:14817
+#: doc/guix.texi:17371
 #, no-wrap
 msgid "{Scheme Variable} cups-service-type"
 msgstr "{Scheme-Variable} cups-service-type"
 
 #. type: deffn
-#: doc/guix.texi:14821
+#: doc/guix.texi:17375
 msgid "The service type for the CUPS print server.  Its value should be a valid CUPS configuration (see below).  To use the default settings, simply write:"
 msgstr "Der Diensttyp für den CUPS-Druckserver. Als Wert muss eine gültige CUPS-Konfiguration angegeben werden (siehe unten). Um die Voreinstellungen zu verwenden, schreiben Sie einfach nur:"
 
 #. type: lisp
-#: doc/guix.texi:14823
+#: doc/guix.texi:17377
 #, no-wrap
 msgid "(service cups-service-type)\n"
 msgstr "(service cups-service-type)\n"
 
 #. type: Plain text
-#: doc/guix.texi:14833
+#: doc/guix.texi:17387
 msgid "The CUPS configuration controls the basic things about your CUPS installation: what interfaces it listens on, what to do if a print job fails, how much logging to do, and so on.  To actually add a printer, you have to visit the @url{http://localhost:631} URL, or use a tool such as GNOME's printer configuration services.  By default, configuring a CUPS service will generate a self-signed certificate if needed, for secure connections to the print server."
-msgstr "Mit der CUPS-Konfiguration stellen Sie die grundlegenden Merkmale Ihrer CUPS-Installation ein: Auf welcher Schnittstelle sie lauscht, wie mit einem fehlgeschlagenen Druckauftrag umzugehen ist, wieviel in Protokolle geschrieben werden soll und so weiter. Um einen Drucker hinzuzufügen, müssen Sie jedoch die URL @url{http://localhost:631} besuchen oder ein Werkzeug wie die Druckereinstellungsdienste von GNOME benutzen. Die Vorgabe ist, dass beim Konfigurieren eines CUPS-Dienstes ein selbstsigniertes Zertifikat erzeugt wird, um sichere Verbindungen mit dem Druckserver zu ermöglichen."
+msgstr "Mit der CUPS-Konfiguration stellen Sie die grundlegenden Merkmale Ihrer CUPS-Installation ein: Auf welcher Schnittstelle sie lauscht, wie mit einem fehlgeschlagenen Druckauftrag umzugehen ist, wie viel in Protokolle geschrieben werden soll und so weiter. Um einen Drucker hinzuzufügen, müssen Sie jedoch die URL @url{http://localhost:631} besuchen oder ein Werkzeug wie die Druckereinstellungsdienste von GNOME benutzen. Die Vorgabe ist, dass beim Konfigurieren eines CUPS-Dienstes ein selbstsigniertes Zertifikat erzeugt wird, um sichere Verbindungen mit dem Druckserver zu ermöglichen."
 
 #. type: Plain text
-#: doc/guix.texi:14838
+#: doc/guix.texi:17392
 msgid "Suppose you want to enable the Web interface of CUPS and also add support for Epson printers @i{via} the @code{escpr} package and for HP printers @i{via} the @code{hplip-minimal} package.  You can do that directly, like this (you need to use the @code{(gnu packages cups)} module):"
 msgstr "Nehmen wir an, Sie wollen die Weboberfläche von CUPS aktivieren und Unterstützung für Epson-Drucker über das @code{escpr}-Paket und für HP-Drucker über das @code{hplip-minimal}-Paket aktivieren. Sie können das auf diese Weise gleich machen (dazu müssen Sie vorher angeben, dass das Modul @code{(gnu packages cups)} benutzt werden soll):"
 
 #. type: lisp
-#: doc/guix.texi:14845
+#: doc/guix.texi:17399
 #, no-wrap
 msgid ""
 "(service cups-service-type\n"
@@ -27849,1560 +32172,1560 @@ msgstr ""
 "             (list cups-filters escpr hplip-minimal))))\n"
 
 #. type: Plain text
-#: doc/guix.texi:14850
+#: doc/guix.texi:17404
 msgid "Note: If you wish to use the Qt5 based GUI which comes with the hplip package then it is suggested that you install the @code{hplip} package, either in your OS configuration file or as your user."
 msgstr "Anmerkung: Wenn Sie die Qt5-basierte grafische Benutzeroberfläche benutzen möchten, die dem hplip-Paket beiliegt, sollten Sie das @code{hplip}-Paket installieren, entweder in die Konfigurationsdatei Ihres Betriebssystems oder für Ihr Benutzerkonto."
 
 #. type: Plain text
-#: doc/guix.texi:14857
+#: doc/guix.texi:17411
 msgid "The available configuration parameters follow.  Each parameter definition is preceded by its type; for example, @samp{string-list foo} indicates that the @code{foo} parameter should be specified as a list of strings.  There is also a way to specify the configuration as a string, if you have an old @code{cupsd.conf} file that you want to port over from some other system; see the end for more details."
 msgstr "Im Folgenden sehen Sie die verfügbaren Konfigurationsparameter. Vor jeder Parameterdefinition wird ihr Typ angegeben, zum Beispiel steht @samp{Zeichenketten-Liste foo} für einen Parameter @code{foo}, der als Liste von Zeichenketten angegeben werden muss. Sie können die Konfiguration aber auch in einer einzigen Zeichenkette angeben, wenn Sie eine alte @code{cupsd.conf}-Datei von einem anderen System weiterbenutzen möchten; siehe das Abschnittsende für mehr Details."
 
 #. type: Plain text
-#: doc/guix.texi:14868
+#: doc/guix.texi:17422
 msgid "Available @code{cups-configuration} fields are:"
 msgstr "Die verfügbaren @code{cups-configuration}-Felder sind:"
 
 #. type: deftypevr
-#: doc/guix.texi:14869
+#: doc/guix.texi:17423
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} package cups"
 msgstr "{@code{cups-configuration}-Parameter} „package“ cups"
 
 #. type: deftypevr
-#: doc/guix.texi:14871 doc/guix.texi:15639
+#: doc/guix.texi:17425 doc/guix.texi:18193
 msgid "The CUPS package."
 msgstr "Das CUPS-Paket."
 
 #. type: deftypevr
-#: doc/guix.texi:14873
+#: doc/guix.texi:17427
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} package-list extensions"
 msgstr "{@code{cups-configuration}-Parameter} „package“-Liste extensions"
 
 #. type: deftypevr
-#: doc/guix.texi:14875
+#: doc/guix.texi:17429
 msgid "Drivers and other extensions to the CUPS package."
 msgstr "Treiber und andere Erweiterungen für das CUPS-Paket."
 
 #. type: deftypevr
-#: doc/guix.texi:14877
+#: doc/guix.texi:17431
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} files-configuration files-configuration"
 msgstr "{@code{cups-configuration}-Parameter} „files-configuration“ files-configuration"
 
 #. type: deftypevr
-#: doc/guix.texi:14880
+#: doc/guix.texi:17434
 msgid "Configuration of where to write logs, what directories to use for print spools, and related privileged configuration parameters."
 msgstr "Konfiguration, wo Protokolle abgelegt werden sollen, welche Verzeichnisse für Druckspoolerwarteschlangen benutzt werden sollen und ähnliche Berechtigungen erfordernde Konfigurationsparameter."
 
 #. type: deftypevr
-#: doc/guix.texi:14882
+#: doc/guix.texi:17436
 msgid "Available @code{files-configuration} fields are:"
 msgstr "Verfügbare Felder einer @code{files-configuration} sind:"
 
 #. type: deftypevr
-#: doc/guix.texi:14883
+#: doc/guix.texi:17437
 #, no-wrap
 msgid "{@code{files-configuration} parameter} log-location access-log"
 msgstr "{@code{files-configuration}-Parameter} Protokollpfad access-log"
 
 #. type: deftypevr
-#: doc/guix.texi:14891
+#: doc/guix.texi:17445
 msgid "Defines the access log filename.  Specifying a blank filename disables access log generation.  The value @code{stderr} causes log entries to be sent to the standard error file when the scheduler is running in the foreground, or to the system log daemon when run in the background.  The value @code{syslog} causes log entries to be sent to the system log daemon.  The server name may be included in filenames using the string @code{%s}, as in @code{/var/log/cups/%s-access_log}."
 msgstr "Hiermit wird der Dateiname des Zugriffsprotokolls („Access Log“) festgelegt. Wenn ein leerer Name angegeben wird, wird kein Protokoll erzeugt. Der Wert @code{stderr} lässt Protokolleinträge in die Standardfehlerdatei schreiben, wenn das Druckplanungsprogramm im Vordergrund läuft, oder an den Systemprotokolldaemon (also Syslog), wenn es im Hintergrund läuft. Der Wert @code{syslog} bewirkt, dass Protokolleinträge an den Systemprotokolldaemon geschickt werden. Der Servername darf in Dateinamen als die Zeichenkette @code{%s} angegeben werden, so kann etwa @code{/var/log/cups/%s-access_log} angegeben werden."
 
 #. type: deftypevr
-#: doc/guix.texi:14893
+#: doc/guix.texi:17447
 msgid "Defaults to @samp{\"/var/log/cups/access_log\"}."
 msgstr "Die Vorgabe ist @samp{\"/var/log/cups/access_log\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:14895
+#: doc/guix.texi:17449
 #, no-wrap
 msgid "{@code{files-configuration} parameter} file-name cache-dir"
 msgstr "{@code{files-configuration}-Parameter} Dateiname cache-dir"
 
 #. type: deftypevr
-#: doc/guix.texi:14897
+#: doc/guix.texi:17451
 msgid "Where CUPS should cache data."
 msgstr "Wo CUPS zwischengespeicherte Daten ablegen soll."
 
 #. type: deftypevr
-#: doc/guix.texi:14899
+#: doc/guix.texi:17453
 msgid "Defaults to @samp{\"/var/cache/cups\"}."
 msgstr "Die Vorgabe ist @samp{\"/var/cache/cups\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:14901
+#: doc/guix.texi:17455
 #, no-wrap
 msgid "{@code{files-configuration} parameter} string config-file-perm"
 msgstr "{@code{files-configuration}-Parameter} Zeichenkette config-file-perm"
 
 #. type: deftypevr
-#: doc/guix.texi:14904
+#: doc/guix.texi:17458
 msgid "Specifies the permissions for all configuration files that the scheduler writes."
 msgstr "Gibt die Berechtigungen für alle Konfigurationsdateien an, die das Planungsprogramm schreibt."
 
 #. type: deftypevr
-#: doc/guix.texi:14910
+#: doc/guix.texi:17464
 msgid "Note that the permissions for the printers.conf file are currently masked to only allow access from the scheduler user (typically root).  This is done because printer device URIs sometimes contain sensitive authentication information that should not be generally known on the system.  There is no way to disable this security feature."
 msgstr "Beachten Sie, dass auf die Berechtigungen der Datei printers.conf eine Maske gelegt wird, wodurch Zugriffe nur durch das planende Benutzerkonto erlaubt werden (in der Regel der Administratornutzer „root“). Der Grund dafür ist, dass Druckergeräte-URIs manchmal sensible Authentisierungsdaten enthalten, die nicht allgemein auf dem System bekannt sein sollten. Es gibt keine Möglichkeit, diese Sicherheitsmaßnahme abzuschalten."
 
 #. type: deftypevr
-#: doc/guix.texi:14912
+#: doc/guix.texi:17466
 msgid "Defaults to @samp{\"0640\"}."
 msgstr "Die Vorgabe ist @samp{\"0640\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:14914
+#: doc/guix.texi:17468
 #, no-wrap
 msgid "{@code{files-configuration} parameter} log-location error-log"
 msgstr "{@code{files-configuration}-Parameter} Protokollpfad error-log"
 
 #. type: deftypevr
-#: doc/guix.texi:14922
+#: doc/guix.texi:17476
 msgid "Defines the error log filename.  Specifying a blank filename disables error log generation.  The value @code{stderr} causes log entries to be sent to the standard error file when the scheduler is running in the foreground, or to the system log daemon when run in the background.  The value @code{syslog} causes log entries to be sent to the system log daemon.  The server name may be included in filenames using the string @code{%s}, as in @code{/var/log/cups/%s-error_log}."
 msgstr "Hiermit wird der Dateiname des Fehlerprotokolls („Error Log“) festgelegt. Wenn ein leerer Name angegeben wird, wird kein Fehlerprotokoll erzeugt. Der Wert @code{stderr} lässt Protokolleinträge in die Standardfehlerdatei schreiben, wenn das Planungsprogramm im Vordergrund läuft, oder an den Systemprotokolldaemon (also Syslog), wenn es im Hintergrund läuft. Der Wert @code{syslog} bewirkt, dass Protokolleinträge an den Systemprotokolldaemon geschickt werden. Der Servername darf in Dateinamen als die Zeichenkette @code{%s} angegeben werden, so kann etwa @code{/var/log/cups/%s-error_log} angegeben werden."
 
 #. type: deftypevr
-#: doc/guix.texi:14924
+#: doc/guix.texi:17478
 msgid "Defaults to @samp{\"/var/log/cups/error_log\"}."
 msgstr "Die Vorgabe ist @samp{\"/var/log/cups/error_log\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:14926
+#: doc/guix.texi:17480
 #, no-wrap
 msgid "{@code{files-configuration} parameter} string fatal-errors"
 msgstr "{@code{files-configuration}-Parameter} Zeichenkette fatal-errors"
 
 #. type: deftypevr
-#: doc/guix.texi:14929
+#: doc/guix.texi:17483
 msgid "Specifies which errors are fatal, causing the scheduler to exit.  The kind strings are:"
 msgstr "Gibt an, bei welchen Fehlern das Druckplanungsprogramm terminieren soll. Die Zeichenketten für die Arten sind:"
 
 #. type: table
-#: doc/guix.texi:14933
+#: doc/guix.texi:17487
 msgid "No errors are fatal."
 msgstr "Keine Fehler führen zur Beendigung."
 
 #. type: table
-#: doc/guix.texi:14936
+#: doc/guix.texi:17490
 msgid "All of the errors below are fatal."
 msgstr "Jeder der im Folgenden aufgeführten Fehler terminiert den Druckplaner."
 
 #. type: item
-#: doc/guix.texi:14937
+#: doc/guix.texi:17491
 #, no-wrap
 msgid "browse"
 msgstr "browse"
 
 #. type: table
-#: doc/guix.texi:14940
+#: doc/guix.texi:17494
 msgid "Browsing initialization errors are fatal, for example failed connections to the DNS-SD daemon."
 msgstr "Fehler bei der Suche während der Initialisierung terminieren den Druckplaner, zum Beispiel wenn keine Verbindung zum DNS-SD-Daemon aufgebaut werden kann."
 
 #. type: item
-#: doc/guix.texi:14941
+#: doc/guix.texi:17495
 #, no-wrap
 msgid "config"
 msgstr "config"
 
 #. type: table
-#: doc/guix.texi:14943
+#: doc/guix.texi:17497
 msgid "Configuration file syntax errors are fatal."
 msgstr "Syntaxfehler in der Konfigurationsdatei terminieren den Druckplaner."
 
 #. type: item
-#: doc/guix.texi:14944
+#: doc/guix.texi:17498
 #, no-wrap
 msgid "listen"
 msgstr "listen"
 
 #. type: table
-#: doc/guix.texi:14947
+#: doc/guix.texi:17501
 msgid "Listen or Port errors are fatal, except for IPv6 failures on the loopback or @code{any} addresses."
 msgstr "Fehler beim Lauschen oder Portfehler (entsprechend der Direktiven „Listen“ oder „Port“) terminieren den Druckplaner; ausgenommen sind Fehler bei IPv6 auf Loopback- oder @code{any}-Adressen."
 
 #. type: item
-#: doc/guix.texi:14948
+#: doc/guix.texi:17502
 #, no-wrap
 msgid "log"
 msgstr "log"
 
 #. type: table
-#: doc/guix.texi:14950
+#: doc/guix.texi:17504
 msgid "Log file creation or write errors are fatal."
 msgstr "Fehler beim Erzeugen von Protokolldateien terminieren den Druckplaner."
 
 #. type: item
-#: doc/guix.texi:14951
+#: doc/guix.texi:17505
 #, no-wrap
 msgid "permissions"
 msgstr "permissions"
 
 #. type: table
-#: doc/guix.texi:14954
+#: doc/guix.texi:17508
 msgid "Bad startup file permissions are fatal, for example shared TLS certificate and key files with world-read permissions."
 msgstr "Falsche Zugriffsberechtigungen auf zum Starten benötigten Dateien terminieren den Druckplaner, zum Beispiel wenn auf gemeinsame TLS-Zertifikats- und Schlüsseldateien von allen lesend zugegriffen werden kann."
 
 #. type: deftypevr
-#: doc/guix.texi:14957
+#: doc/guix.texi:17511
 msgid "Defaults to @samp{\"all -browse\"}."
 msgstr "Die Vorgabe ist @samp{\"all -browse\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:14959
+#: doc/guix.texi:17513
 #, no-wrap
 msgid "{@code{files-configuration} parameter} boolean file-device?"
 msgstr "{@code{files-configuration}-Parameter} Boolescher-Ausdruck file-device?"
 
 #. type: deftypevr
-#: doc/guix.texi:14962
+#: doc/guix.texi:17516
 msgid "Specifies whether the file pseudo-device can be used for new printer queues.  The URI @uref{file:///dev/null} is always allowed."
 msgstr "Gibt an, welches Pseudogerät für neue Druckerwarteschlangen benutzt werden kann. Die URI @uref{file:///dev/null} wird immer zugelassen."
 
 #. type: deftypevr
-#: doc/guix.texi:14964 doc/guix.texi:15034 doc/guix.texi:15076
-#: doc/guix.texi:15096 doc/guix.texi:15102 doc/guix.texi:15118
-#: doc/guix.texi:15206 doc/guix.texi:15300 doc/guix.texi:15613
-#: doc/guix.texi:15626 doc/guix.texi:17930 doc/guix.texi:18036
-#: doc/guix.texi:18101 doc/guix.texi:18110 doc/guix.texi:21998
-#: doc/guix.texi:22012 doc/guix.texi:22034 doc/guix.texi:22149
-#: doc/guix.texi:22163 doc/guix.texi:22184 doc/guix.texi:22205
-#: doc/guix.texi:22212 doc/guix.texi:22257 doc/guix.texi:22264
-#: doc/guix.texi:22772 doc/guix.texi:22786 doc/guix.texi:22958
-#: doc/guix.texi:23003 doc/guix.texi:23090 doc/guix.texi:23291
-#: doc/guix.texi:23324 doc/guix.texi:23464 doc/guix.texi:23475
-#: doc/guix.texi:23725 doc/guix.texi:24367 doc/guix.texi:24376
-#: doc/guix.texi:24384 doc/guix.texi:24392 doc/guix.texi:24408
-#: doc/guix.texi:24424 doc/guix.texi:24432 doc/guix.texi:24440
-#: doc/guix.texi:24449 doc/guix.texi:24458 doc/guix.texi:24474
-#: doc/guix.texi:24538 doc/guix.texi:24644 doc/guix.texi:24652
-#: doc/guix.texi:24660 doc/guix.texi:24685 doc/guix.texi:24739
-#: doc/guix.texi:24787 doc/guix.texi:24988 doc/guix.texi:24995
+#: doc/guix.texi:17518 doc/guix.texi:17588 doc/guix.texi:17630
+#: doc/guix.texi:17650 doc/guix.texi:17656 doc/guix.texi:17672
+#: doc/guix.texi:17760 doc/guix.texi:17854 doc/guix.texi:18167
+#: doc/guix.texi:18180 doc/guix.texi:20619 doc/guix.texi:20725
+#: doc/guix.texi:20790 doc/guix.texi:20799 doc/guix.texi:24844
+#: doc/guix.texi:24858 doc/guix.texi:24880 doc/guix.texi:24995
+#: doc/guix.texi:25009 doc/guix.texi:25030 doc/guix.texi:25051
+#: doc/guix.texi:25058 doc/guix.texi:25103 doc/guix.texi:25110
+#: doc/guix.texi:25632 doc/guix.texi:25646 doc/guix.texi:25818
+#: doc/guix.texi:25863 doc/guix.texi:25950 doc/guix.texi:26152
+#: doc/guix.texi:26185 doc/guix.texi:26325 doc/guix.texi:26336
+#: doc/guix.texi:26587 doc/guix.texi:28060 doc/guix.texi:28069
+#: doc/guix.texi:28077 doc/guix.texi:28085 doc/guix.texi:28101
+#: doc/guix.texi:28117 doc/guix.texi:28125 doc/guix.texi:28133
+#: doc/guix.texi:28142 doc/guix.texi:28151 doc/guix.texi:28167
+#: doc/guix.texi:28231 doc/guix.texi:28337 doc/guix.texi:28345
+#: doc/guix.texi:28353 doc/guix.texi:28378 doc/guix.texi:28432
+#: doc/guix.texi:28480 doc/guix.texi:28681 doc/guix.texi:28688
 msgid "Defaults to @samp{#f}."
 msgstr "Vorgegeben ist @samp{#f}."
 
 #. type: deftypevr
-#: doc/guix.texi:14966
+#: doc/guix.texi:17520
 #, no-wrap
 msgid "{@code{files-configuration} parameter} string group"
 msgstr "{@code{files-configuration}-Parameter} Zeichenkette group"
 
 #. type: deftypevr
-#: doc/guix.texi:14969
+#: doc/guix.texi:17523
 msgid "Specifies the group name or ID that will be used when executing external programs."
 msgstr "Gibt Namen oder Identifikator der Benutzergruppe an, die zum Ausführen von externen Programmen verwendet wird."
 
 #. type: deftypevr
-#: doc/guix.texi:14971 doc/guix.texi:15051
+#: doc/guix.texi:17525 doc/guix.texi:17605
 msgid "Defaults to @samp{\"lp\"}."
 msgstr "Die Vorgabe ist @samp{\"lp\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:14973
+#: doc/guix.texi:17527
 #, no-wrap
 msgid "{@code{files-configuration} parameter} string log-file-perm"
 msgstr "{@code{files-configuration}-Parameter} Zeichenkette log-file-perm"
 
 #. type: deftypevr
-#: doc/guix.texi:14975
+#: doc/guix.texi:17529
 msgid "Specifies the permissions for all log files that the scheduler writes."
 msgstr "Gibt die Berechtigungen für alle Protokolldateien an, die das Planungsprogramm schreibt."
 
 #. type: deftypevr
-#: doc/guix.texi:14977
+#: doc/guix.texi:17531
 msgid "Defaults to @samp{\"0644\"}."
 msgstr "Die Vorgabe ist @samp{\"0644\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:14979
+#: doc/guix.texi:17533
 #, no-wrap
 msgid "{@code{files-configuration} parameter} log-location page-log"
 msgstr "{@code{files-configuration}-Parameter} log-location page-log"
 
 #. type: deftypevr
-#: doc/guix.texi:14987
+#: doc/guix.texi:17541
 msgid "Defines the page log filename.  Specifying a blank filename disables page log generation.  The value @code{stderr} causes log entries to be sent to the standard error file when the scheduler is running in the foreground, or to the system log daemon when run in the background.  The value @code{syslog} causes log entries to be sent to the system log daemon.  The server name may be included in filenames using the string @code{%s}, as in @code{/var/log/cups/%s-page_log}."
 msgstr "Hiermit wird der Dateiname des Seitenprotokolls („Page Log“) festgelegt. Wenn ein leerer Name angegeben wird, wird kein Seitenprotokoll erzeugt. Der Wert @code{stderr} lässt Protokolleinträge in die Standardfehlerdatei schreiben, wenn das Planungsprogramm im Vordergrund läuft, oder an den Systemprotokolldaemon (also Syslog), wenn es im Hintergrund läuft. Der Wert @code{syslog} bewirkt, dass Protokolleinträge an den Systemprotokolldaemon geschickt werden. Der Servername darf in Dateinamen als die Zeichenkette @code{%s} angegeben werden, so kann etwa @code{/var/log/cups/%s-page_log} angegeben werden."
 
 #. type: deftypevr
-#: doc/guix.texi:14989
+#: doc/guix.texi:17543
 msgid "Defaults to @samp{\"/var/log/cups/page_log\"}."
 msgstr "Die Vorgabe ist @samp{\"/var/log/cups/page_log\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:14991
+#: doc/guix.texi:17545
 #, no-wrap
 msgid "{@code{files-configuration} parameter} string remote-root"
 msgstr "{@code{files-configuration}-Parameter} Zeichenkette remote-root"
 
 #. type: deftypevr
-#: doc/guix.texi:14994
+#: doc/guix.texi:17548
 msgid "Specifies the username that is associated with unauthenticated accesses by clients claiming to be the root user.  The default is @code{remroot}."
 msgstr "Gibt den Benutzernamen an, der für unauthentifizierte Zugriffe durch Clients verwendet wird, die sich als der Administratornutzer „root“ anmelden. Vorgegeben ist @code{remroot}."
 
 #. type: deftypevr
-#: doc/guix.texi:14996
+#: doc/guix.texi:17550
 msgid "Defaults to @samp{\"remroot\"}."
 msgstr "Die Vorgabe ist @samp{\"remroot\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:14998
+#: doc/guix.texi:17552
 #, no-wrap
 msgid "{@code{files-configuration} parameter} file-name request-root"
 msgstr "{@code{files-configuration}-Parameter} Dateiname request-root"
 
 #. type: deftypevr
-#: doc/guix.texi:15001
+#: doc/guix.texi:17555
 msgid "Specifies the directory that contains print jobs and other HTTP request data."
 msgstr "Gibt das Verzeichnis an, in dem Druckaufträge und andere Daten zu HTTP-Anfragen abgelegt werden."
 
 #. type: deftypevr
-#: doc/guix.texi:15003
+#: doc/guix.texi:17557
 msgid "Defaults to @samp{\"/var/spool/cups\"}."
 msgstr "Die Vorgabe ist @samp{\"/var/spool/cups\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:15005
+#: doc/guix.texi:17559
 #, no-wrap
 msgid "{@code{files-configuration} parameter} sandboxing sandboxing"
 msgstr "{@code{files-configuration}-Parameter} Isolierung sandboxing"
 
 #. type: deftypevr
-#: doc/guix.texi:15010
+#: doc/guix.texi:17564
 msgid "Specifies the level of security sandboxing that is applied to print filters, backends, and other child processes of the scheduler; either @code{relaxed} or @code{strict}.  This directive is currently only used/supported on macOS."
-msgstr "Gibt die Stufe der Sicherheitsisolierung („Sandboxing“) an, die auf Druckfilter, Hintergrundsysteme (Backends) und andere Kindprozesse des Planungsprogramms angewandt wird; entweder @code{relaxed} („locker“) oder @code{strict} („strikt“). Diese Direktive wird zur Zeit nur auf macOS benutzt/unterstützt."
+msgstr "Gibt die Stufe der Sicherheitsisolierung („Sandboxing“) an, die auf Druckfilter, Hintergrundsysteme (Backends) und andere Kindprozesse des Planungsprogramms angewandt wird; entweder @code{relaxed} („locker“) oder @code{strict} („strikt“). Diese Direktive wird zurzeit nur auf macOS benutzt/unterstützt."
 
 #. type: deftypevr
-#: doc/guix.texi:15012
+#: doc/guix.texi:17566
 msgid "Defaults to @samp{strict}."
 msgstr "Die Vorgabe ist @samp{strict}."
 
 #. type: deftypevr
-#: doc/guix.texi:15014
+#: doc/guix.texi:17568
 #, no-wrap
 msgid "{@code{files-configuration} parameter} file-name server-keychain"
 msgstr "{@code{files-configuration}-Parameter} Dateiname server-keychain"
 
 #. type: deftypevr
-#: doc/guix.texi:15019
-msgid "Specifies the location of TLS certificates and private keys.  CUPS will look for public and private keys in this directory: a @code{.crt} files for PEM-encoded certificates and corresponding @code{.key} files for PEM-encoded private keys."
-msgstr "Gibt an, wo TLS-Zertifikate und private Schlüssel gespeichert sind. CUPS wird in diesem Verzeichnis öffentliche und private Schlüssel suchen: @code{.crt}-Dateien für PEM-kodierte Zertifikate und zugehörige @code{.key}-Dateien für PEM-kodierte private Schlüssel."
+#: doc/guix.texi:17573
+msgid "Specifies the location of TLS certificates and private keys.  CUPS will look for public and private keys in this directory: @file{.crt} files for PEM-encoded certificates and corresponding @file{.key} files for PEM-encoded private keys."
+msgstr "Gibt an, wo TLS-Zertifikate und private Schlüssel gespeichert sind. CUPS wird in diesem Verzeichnis öffentliche und private Schlüssel suchen: @file{.crt}-Dateien für PEM-kodierte Zertifikate und zugehörige @file{.key}-Dateien für PEM-kodierte private Schlüssel."
 
 #. type: deftypevr
-#: doc/guix.texi:15021
+#: doc/guix.texi:17575
 msgid "Defaults to @samp{\"/etc/cups/ssl\"}."
 msgstr "Die Vorgabe ist @samp{\"/etc/cups/ssl\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:15023
+#: doc/guix.texi:17577
 #, no-wrap
 msgid "{@code{files-configuration} parameter} file-name server-root"
 msgstr "{@code{files-configuration}-Parameter} Dateiname server-root"
 
 #. type: deftypevr
-#: doc/guix.texi:15025
+#: doc/guix.texi:17579
 msgid "Specifies the directory containing the server configuration files."
 msgstr "Gibt das Verzeichnis an, das die Serverkonfigurationsdateien enthält."
 
 #. type: deftypevr
-#: doc/guix.texi:15027
+#: doc/guix.texi:17581
 msgid "Defaults to @samp{\"/etc/cups\"}."
 msgstr "Die Vorgabe ist @samp{\"/etc/cups\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:15029
+#: doc/guix.texi:17583
 #, no-wrap
 msgid "{@code{files-configuration} parameter} boolean sync-on-close?"
 msgstr "{@code{files-configuration}-Parameter} Boolescher-Ausdruck sync-on-close?"
 
 #. type: deftypevr
-#: doc/guix.texi:15032
+#: doc/guix.texi:17586
 msgid "Specifies whether the scheduler calls fsync(2) after writing configuration or state files."
 msgstr "Gibt an, ob das Planungsprogramm fsync(2) aufrufen soll, nachdem es in Konfigurations- oder Zustandsdateien geschrieben hat."
 
 #. type: deftypevr
-#: doc/guix.texi:15036
+#: doc/guix.texi:17590
 #, no-wrap
 msgid "{@code{files-configuration} parameter} space-separated-string-list system-group"
 msgstr "{@code{files-configuration}-Parameter} Leerzeichengetrennte-Zeichenketten-Liste system-group"
 
 #. type: deftypevr
-#: doc/guix.texi:15038
+#: doc/guix.texi:17592
 msgid "Specifies the group(s) to use for @code{@@SYSTEM} group authentication."
 msgstr "Gibt die Benutzergruppe(n) an, die als die @code{@@SYSTEM}-Gruppen für die Authentisierung benutzt werden können."
 
 #. type: deftypevr
-#: doc/guix.texi:15040
+#: doc/guix.texi:17594
 #, no-wrap
 msgid "{@code{files-configuration} parameter} file-name temp-dir"
 msgstr "{@code{files-configuration}-Parameter} Dateiname temp-dir"
 
 #. type: deftypevr
-#: doc/guix.texi:15042
+#: doc/guix.texi:17596
 msgid "Specifies the directory where temporary files are stored."
 msgstr "Gibt das Verzeichnis an, in das temporäre Dateien gespeichert werden."
 
 #. type: deftypevr
-#: doc/guix.texi:15044
+#: doc/guix.texi:17598
 msgid "Defaults to @samp{\"/var/spool/cups/tmp\"}."
 msgstr "Die Vorgabe ist @samp{\"/var/spool/cups/tmp\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:15046
+#: doc/guix.texi:17600
 #, no-wrap
 msgid "{@code{files-configuration} parameter} string user"
 msgstr "{@code{files-configuration}-Parameter} Zeichenkette user"
 
 #. type: deftypevr
-#: doc/guix.texi:15049
+#: doc/guix.texi:17603
 msgid "Specifies the user name or ID that is used when running external programs."
 msgstr "Gibt den Benutzernamen oder -identifikator an, mit dessen Benutzerkonto externe Programme ausgeführt werden."
 
 #. type: deftypevr
-#: doc/guix.texi:15053
+#: doc/guix.texi:17607
 #, no-wrap
 msgid "{@code{files-configuration} parameter} string set-env"
 msgstr "{@code{files-configuration}-Parameter} Zeichenkette set-env"
 
 #. type: deftypevr
-#: doc/guix.texi:15055
+#: doc/guix.texi:17609
 msgid "Set the specified environment variable to be passed to child processes."
 msgstr "Legt die angegebene Umgebungsvariable auf einen Wert (englisch „Value“) fest, die an Kindprozesse übergeben wird."
 
 #. type: deftypevr
-#: doc/guix.texi:15057
+#: doc/guix.texi:17611
 msgid "Defaults to @samp{\"variable value\"}."
 msgstr "Die Vorgabe ist @samp{\"variable value\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:15060
+#: doc/guix.texi:17614
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} access-log-level access-log-level"
 msgstr "{@code{cups-configuration}-Parameter} Zugriffsprotokollstufe access-log-level"
 
 #. type: deftypevr
-#: doc/guix.texi:15067
+#: doc/guix.texi:17621
 msgid "Specifies the logging level for the AccessLog file.  The @code{config} level logs when printers and classes are added, deleted, or modified and when configuration files are accessed or updated.  The @code{actions} level logs when print jobs are submitted, held, released, modified, or canceled, and any of the conditions for @code{config}.  The @code{all} level logs all requests."
 msgstr "Gibt an, mit welcher Detailstufe das Protokoll in der AccessLog-Datei geführt wird. Bei der Stufe @code{config} wird protokolliert, wenn Drucker und Klassen hinzugefügt, entfernt oder verändert werden, und wenn auf Konfigurationsdateien zugegriffen oder sie aktualisiert werden. Bei der Stufe @code{actions} wird protokolliert, wenn Druckaufträge eingereicht, gehalten, freigegeben, geändert oder abgebrochen werden sowie alles, was bei @code{config} Protokollierung auslöst. Bei der Stufe @code{all} wird jede Anfrage protokolliert."
 
 #. type: deftypevr
-#: doc/guix.texi:15069
+#: doc/guix.texi:17623
 msgid "Defaults to @samp{actions}."
 msgstr "Die Vorgabe ist @samp{actions}."
 
 #. type: deftypevr
-#: doc/guix.texi:15071
+#: doc/guix.texi:17625
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} boolean auto-purge-jobs?"
 msgstr "{@code{cups-configuration}-Parameter} Boolescher-Ausdruck auto-purge-jobs?"
 
 #. type: deftypevr
-#: doc/guix.texi:15074
+#: doc/guix.texi:17628
 msgid "Specifies whether to purge job history data automatically when it is no longer required for quotas."
 msgstr "Gibt an, ob Daten über den Auftragsverlauf automatisch gelöscht werden sollen, wenn Sie nicht mehr zur Berechnung von Druckkontingenten benötigt werden."
 
 #. type: deftypevr
-#: doc/guix.texi:15078
+#: doc/guix.texi:17632
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} comma-separated-string-list browse-dns-sd-sub-types"
 msgstr "{@code{cups-configuration}-Parameter} Kommagetrennte-Zeichenketten-Liste browse-dns-sd-sub-types"
 
 #. type: deftypevr
-#: doc/guix.texi:15082
+#: doc/guix.texi:17636
 msgid "Specifies a list of DNS-SD sub-types to advertise for each shared printer.  For example, @samp{\"_cups\" \"_print\"} will tell network clients that both CUPS sharing and IPP Everywhere are supported."
 msgstr "Gibt eine Liste von DNS-SD-Subtypen an, die anderen für jeden geteilten Drucker mitgeteilt werden sollen. Zum Beispiel wird bei @samp{\"_cups\" \"_print\"} den Netzwerk-Clients mitgeteilt, dass sowohl Teilen zwischen CUPS als auch IPP Everywhere unterstützt werden."
 
 #. type: deftypevr
-#: doc/guix.texi:15084
+#: doc/guix.texi:17638
 msgid "Defaults to @samp{\"_cups\"}."
 msgstr "Die Vorgabe ist @samp{\"_cups\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:15086
+#: doc/guix.texi:17640
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} browse-local-protocols browse-local-protocols"
 msgstr "{@code{cups-configuration}-Parameter} Protokolle-zur-lokalen-Suche browse-local-protocols"
 
 #. type: deftypevr
-#: doc/guix.texi:15088
+#: doc/guix.texi:17642
 msgid "Specifies which protocols to use for local printer sharing."
 msgstr "Gibt an, welche Protokolle zum lokalen Teilen („Freigeben“) von Druckern benutzt werden sollen."
 
 #. type: deftypevr
-#: doc/guix.texi:15090
+#: doc/guix.texi:17644
 msgid "Defaults to @samp{dnssd}."
 msgstr "Die Vorgabe ist @samp{dnssd}."
 
 #. type: deftypevr
-#: doc/guix.texi:15092
+#: doc/guix.texi:17646
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} boolean browse-web-if?"
 msgstr "{@code{cups-configuration}-Parameter} Boolescher-Ausdruck browse-web-if?"
 
 #. type: deftypevr
-#: doc/guix.texi:15094
+#: doc/guix.texi:17648
 msgid "Specifies whether the CUPS web interface is advertised."
 msgstr "Gibt an, ob die Weboberfläche von CUPS anderen mitgeteilt wird."
 
 #. type: deftypevr
-#: doc/guix.texi:15098
+#: doc/guix.texi:17652
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} boolean browsing?"
 msgstr "{@code{cups-configuration}-Parameter} Boolescher-Ausdruck browsing?"
 
 #. type: deftypevr
-#: doc/guix.texi:15100
+#: doc/guix.texi:17654
 msgid "Specifies whether shared printers are advertised."
 msgstr "Gibt an, ob geteilte Drucker bei Druckersuchen mitgeteilt werden."
 
 #. type: deftypevr
-#: doc/guix.texi:15104
+#: doc/guix.texi:17658
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} string classification"
 msgstr "{@code{cups-configuration}-Parameter} Zeichenkette classification"
 
 #. type: deftypevr
-#: doc/guix.texi:15109
-msgid "Specifies the security classification of the server.  Any valid banner name can be used, including \"classified\", \"confidential\", \"secret\", \"topsecret\", and \"unclassified\", or the banner can be omitted to disable secure printing functions."
-msgstr "Gibt die Geheimhaltungsstufe des Servers an. Jeder gültige Deckblattname („Banner“-Name) kann benutzt werden, einschließlich „classified“, „confidential“, „secret“, „topsecret“ und „unclassified“. Wird kein Deckblatt angegeben, werden Funktionen für sicheres Drucken abgeschaltet."
-
-#. type: deftypevr
-#: doc/guix.texi:15111 doc/guix.texi:15448 doc/guix.texi:17151
-#: doc/guix.texi:17163 doc/guix.texi:17937 doc/guix.texi:17951
-#: doc/guix.texi:17958 doc/guix.texi:17965 doc/guix.texi:17995
-#: doc/guix.texi:18093 doc/guix.texi:19156 doc/guix.texi:19182
-#: doc/guix.texi:19218 doc/guix.texi:19283 doc/guix.texi:19322
-#: doc/guix.texi:19381 doc/guix.texi:19390 doc/guix.texi:23430
-#: doc/guix.texi:23438 doc/guix.texi:23446 doc/guix.texi:23454
-#: doc/guix.texi:23732 doc/guix.texi:24210 doc/guix.texi:24218
-#: doc/guix.texi:24226 doc/guix.texi:24334 doc/guix.texi:24359
-#: doc/guix.texi:24490 doc/guix.texi:24498 doc/guix.texi:24506
-#: doc/guix.texi:24514 doc/guix.texi:24522 doc/guix.texi:24530
-#: doc/guix.texi:24553 doc/guix.texi:24561 doc/guix.texi:24613
-#: doc/guix.texi:24629 doc/guix.texi:24637 doc/guix.texi:24676
-#: doc/guix.texi:24699 doc/guix.texi:24721 doc/guix.texi:24728
-#: doc/guix.texi:24763 doc/guix.texi:24771 doc/guix.texi:24795
-#: doc/guix.texi:24827 doc/guix.texi:24856 doc/guix.texi:24863
-#: doc/guix.texi:24870 doc/guix.texi:24878 doc/guix.texi:24892
-#: doc/guix.texi:24901 doc/guix.texi:24911 doc/guix.texi:24918
-#: doc/guix.texi:24925 doc/guix.texi:24932 doc/guix.texi:25003
-#: doc/guix.texi:25010 doc/guix.texi:25017 doc/guix.texi:25026
-#: doc/guix.texi:25042 doc/guix.texi:25049 doc/guix.texi:25056
-#: doc/guix.texi:25063 doc/guix.texi:25071 doc/guix.texi:25079
+#: doc/guix.texi:17663
+msgid "Specifies the security classification of the server.  Any valid banner name can be used, including @samp{\"classified\"}, @samp{\"confidential\"}, @samp{\"secret\"}, @samp{\"topsecret\"}, and @samp{\"unclassified\"}, or the banner can be omitted to disable secure printing functions."
+msgstr "Gibt die Geheimhaltungsstufe des Servers an. Jeder gültige Deckblattname („Banner“-Name) kann benutzt werden, einschließlich @samp{\"classified\"}, @samp{\"confidential\"}, @samp{\"secret\"}, @samp{\"topsecret\"} und @samp{\"unclassified\"}. Wird kein Deckblatt angegeben, werden Funktionen für sicheres Drucken abgeschaltet."
+
+#. type: deftypevr
+#: doc/guix.texi:17665 doc/guix.texi:18002 doc/guix.texi:19840
+#: doc/guix.texi:19852 doc/guix.texi:20626 doc/guix.texi:20640
+#: doc/guix.texi:20647 doc/guix.texi:20654 doc/guix.texi:20684
+#: doc/guix.texi:20782 doc/guix.texi:21846 doc/guix.texi:21872
+#: doc/guix.texi:21908 doc/guix.texi:21973 doc/guix.texi:22012
+#: doc/guix.texi:22071 doc/guix.texi:22080 doc/guix.texi:26291
+#: doc/guix.texi:26299 doc/guix.texi:26307 doc/guix.texi:26315
+#: doc/guix.texi:26594 doc/guix.texi:27903 doc/guix.texi:27911
+#: doc/guix.texi:27919 doc/guix.texi:28027 doc/guix.texi:28052
+#: doc/guix.texi:28183 doc/guix.texi:28191 doc/guix.texi:28199
+#: doc/guix.texi:28207 doc/guix.texi:28215 doc/guix.texi:28223
+#: doc/guix.texi:28246 doc/guix.texi:28254 doc/guix.texi:28306
+#: doc/guix.texi:28322 doc/guix.texi:28330 doc/guix.texi:28369
+#: doc/guix.texi:28392 doc/guix.texi:28414 doc/guix.texi:28421
+#: doc/guix.texi:28456 doc/guix.texi:28464 doc/guix.texi:28488
+#: doc/guix.texi:28520 doc/guix.texi:28549 doc/guix.texi:28556
+#: doc/guix.texi:28563 doc/guix.texi:28571 doc/guix.texi:28585
+#: doc/guix.texi:28594 doc/guix.texi:28604 doc/guix.texi:28611
+#: doc/guix.texi:28618 doc/guix.texi:28625 doc/guix.texi:28696
+#: doc/guix.texi:28703 doc/guix.texi:28710 doc/guix.texi:28719
+#: doc/guix.texi:28735 doc/guix.texi:28742 doc/guix.texi:28749
+#: doc/guix.texi:28756 doc/guix.texi:28764 doc/guix.texi:28772
 msgid "Defaults to @samp{\"\"}."
 msgstr "Die Vorgabe ist @samp{\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:15113
+#: doc/guix.texi:17667
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} boolean classify-override?"
 msgstr "{@code{cups-configuration}-Parameter} Boolescher-Ausdruck classify-override?"
 
 #. type: deftypevr
-#: doc/guix.texi:15116
+#: doc/guix.texi:17670
 msgid "Specifies whether users may override the classification (cover page) of individual print jobs using the @code{job-sheets} option."
 msgstr "Gibt an, ob Nutzer bei einzelnen Druckaufträgen eine andere als die voreingestellte Geheimhaltungsstufe (für das Deckblatt) vorgeben können, indem sie die Option @code{job-sheets} einstellen."
 
 #. type: deftypevr
-#: doc/guix.texi:15120
+#: doc/guix.texi:17674
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} default-auth-type default-auth-type"
 msgstr "{@code{cups-configuration}-Parameter} Voreingestelle-Authentifizierungsart default-auth-type"
 
 #. type: deftypevr
-#: doc/guix.texi:15122
+#: doc/guix.texi:17676
 msgid "Specifies the default type of authentication to use."
 msgstr "Gibt an, wie man nach Voreinstellung authentifiziert wird."
 
 #. type: deftypevr
-#: doc/guix.texi:15124
+#: doc/guix.texi:17678
 msgid "Defaults to @samp{Basic}."
 msgstr "Die Vorgabe ist @samp{Basic}."
 
 #. type: deftypevr
-#: doc/guix.texi:15126
+#: doc/guix.texi:17680
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} default-encryption default-encryption"
 msgstr "{@code{cups-configuration}-Parameter} Voreingestellte-Verschlüsselung default-encryption"
 
 #. type: deftypevr
-#: doc/guix.texi:15128
+#: doc/guix.texi:17682
 msgid "Specifies whether encryption will be used for authenticated requests."
 msgstr "Gibt an, ob für authentifizierte Anfragen Verschlüsselung benutzt wird."
 
 #. type: deftypevr
-#: doc/guix.texi:15130
+#: doc/guix.texi:17684
 msgid "Defaults to @samp{Required}."
 msgstr "Die Vorgabe ist @samp{Required}."
 
 #. type: deftypevr
-#: doc/guix.texi:15132
+#: doc/guix.texi:17686
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} string default-language"
 msgstr "{@code{cups-configuration}-Parameter} Zeichenkette default-language"
 
 #. type: deftypevr
-#: doc/guix.texi:15134
+#: doc/guix.texi:17688
 msgid "Specifies the default language to use for text and web content."
 msgstr "Gibt an, welche Sprache für Text und Weboberfläche voreingestellt benutzt werden soll."
 
 #. type: deftypevr
-#: doc/guix.texi:15136
+#: doc/guix.texi:17690
 msgid "Defaults to @samp{\"en\"}."
 msgstr "Die Vorgabe ist @samp{\"en\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:15138
+#: doc/guix.texi:17692
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} string default-paper-size"
 msgstr "{@code{cups-configuration}-Parameter} Zeichenkette default-paper-size"
 
 #. type: deftypevr
-#: doc/guix.texi:15143
+#: doc/guix.texi:17697
 msgid "Specifies the default paper size for new print queues.  @samp{\"Auto\"} uses a locale-specific default, while @samp{\"None\"} specifies there is no default paper size.  Specific size names are typically @samp{\"Letter\"} or @samp{\"A4\"}."
 msgstr "Gibt das voreingestellte Papierformat für neue Druckwarteschlangen an. Bei @samp{\"Auto\"} wird eine der Locale entsprechende Voreinstellung gewählt, während bei @samp{\"None\"} kein Papierformat voreingestellt ist. Verfügbare Formatbezeichnungen sind typischerweise @samp{\"Letter\"} oder @samp{\"A4\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:15145
+#: doc/guix.texi:17699
 msgid "Defaults to @samp{\"Auto\"}."
 msgstr "Die Vorgabe ist @samp{\"Auto\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:15147
+#: doc/guix.texi:17701
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} string default-policy"
 msgstr "{@code{cups-configuration}-Parameter} Zeichenkette default-policy"
 
 #. type: deftypevr
-#: doc/guix.texi:15149
+#: doc/guix.texi:17703
 msgid "Specifies the default access policy to use."
 msgstr "Gibt die voreingestellte Zugriffsrichtlinie an, die benutzt werden soll."
 
 #. type: deftypevr
-#: doc/guix.texi:15151
+#: doc/guix.texi:17705
 msgid "Defaults to @samp{\"default\"}."
 msgstr "Die Vorgabe ist @samp{\"default\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:15153
+#: doc/guix.texi:17707
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} boolean default-shared?"
 msgstr "{@code{cups-configuration}-Parameter} Boolescher-Ausdruck default-shared?"
 
 #. type: deftypevr
-#: doc/guix.texi:15155
+#: doc/guix.texi:17709
 msgid "Specifies whether local printers are shared by default."
 msgstr "Gibt an, ob lokale Drucker nach Voreinstellung geteilt werden sollen."
 
 #. type: deftypevr
-#: doc/guix.texi:15157 doc/guix.texi:15237 doc/guix.texi:15533
-#: doc/guix.texi:18027 doc/guix.texi:18078 doc/guix.texi:18085
-#: doc/guix.texi:21827 doc/guix.texi:21855 doc/guix.texi:21975
-#: doc/guix.texi:21982 doc/guix.texi:21990 doc/guix.texi:22027
-#: doc/guix.texi:22041 doc/guix.texi:22126 doc/guix.texi:22133
-#: doc/guix.texi:22141 doc/guix.texi:22639 doc/guix.texi:22779
-#: doc/guix.texi:22965 doc/guix.texi:22972 doc/guix.texi:22994
-#: doc/guix.texi:23033 doc/guix.texi:23053 doc/guix.texi:23067
-#: doc/guix.texi:23279 doc/guix.texi:24312 doc/guix.texi:24400
-#: doc/guix.texi:24416 doc/guix.texi:24466
+#: doc/guix.texi:17711 doc/guix.texi:17791 doc/guix.texi:18087
+#: doc/guix.texi:20716 doc/guix.texi:20767 doc/guix.texi:20774
+#: doc/guix.texi:24673 doc/guix.texi:24701 doc/guix.texi:24821
+#: doc/guix.texi:24828 doc/guix.texi:24836 doc/guix.texi:24873
+#: doc/guix.texi:24887 doc/guix.texi:24972 doc/guix.texi:24979
+#: doc/guix.texi:24987 doc/guix.texi:25499 doc/guix.texi:25639
+#: doc/guix.texi:25825 doc/guix.texi:25832 doc/guix.texi:25854
+#: doc/guix.texi:25893 doc/guix.texi:25913 doc/guix.texi:25927
+#: doc/guix.texi:26140 doc/guix.texi:28005 doc/guix.texi:28093
+#: doc/guix.texi:28109 doc/guix.texi:28159
 msgid "Defaults to @samp{#t}."
 msgstr "Die Vorgabe ist @samp{#t}."
 
 #. type: deftypevr
-#: doc/guix.texi:15159
+#: doc/guix.texi:17713
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer dirty-clean-interval"
 msgstr "{@code{cups-configuration}-Parameter} Nichtnegative-ganze-Zahl dirty-clean-interval"
 
 #. type: deftypevr
-#: doc/guix.texi:15163
+#: doc/guix.texi:17717
 msgid "Specifies the delay for updating of configuration and state files, in seconds.  A value of 0 causes the update to happen as soon as possible, typically within a few milliseconds."
 msgstr "Gibt an, mit welcher Verzögerung Konfigurations- und Zustandsdateien aktualisiert werden sollen. Der Wert 0 lässt die Aktualisierung so bald wie möglich stattfinden, in der Regel nach ein paar Millisekunden."
 
 #. type: deftypevr
-#: doc/guix.texi:15165 doc/guix.texi:15213 doc/guix.texi:15222
-#: doc/guix.texi:15243 doc/guix.texi:15540
+#: doc/guix.texi:17719 doc/guix.texi:17767 doc/guix.texi:17776
+#: doc/guix.texi:17797 doc/guix.texi:18094
 msgid "Defaults to @samp{30}."
 msgstr "Die Vorgabe ist @samp{30}."
 
 #. type: deftypevr
-#: doc/guix.texi:15167
+#: doc/guix.texi:17721
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} error-policy error-policy"
 msgstr "{@code{cups-configuration}-Parameter} Fehlerrichtlinie error-policy"
 
 #. type: deftypevr
-#: doc/guix.texi:15173
+#: doc/guix.texi:17727
 msgid "Specifies what to do when an error occurs.  Possible values are @code{abort-job}, which will discard the failed print job; @code{retry-job}, which will retry the job at a later time; @code{retry-current-job}, which retries the failed job immediately; and @code{stop-printer}, which stops the printer."
 msgstr "Gibt an, wie beim Auftreten eines Fehlers verfahren werden soll. Mögliche Werte sind @code{abort-job}, wodurch der fehlgeschlagene Druckauftrag verworfen wird, @code{retry-job}, wodurch der Druckauftrag später erneut versucht wird, @code{retry-current-job}, wodurch der fehlgeschlagene Druckauftrag sofort erneut versucht wird, und @code{stop-printer}, wodurch der Drucker angehalten wird."
 
 #. type: deftypevr
-#: doc/guix.texi:15175
+#: doc/guix.texi:17729
 msgid "Defaults to @samp{stop-printer}."
 msgstr "Die Vorgabe ist @samp{stop-printer}."
 
 #. type: deftypevr
-#: doc/guix.texi:15177
+#: doc/guix.texi:17731
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer filter-limit"
 msgstr "{@code{cups-configuration}-Parameter} Nichtnegative-ganze-Zahl filter-limit"
 
 #. type: deftypevr
-#: doc/guix.texi:15185
+#: doc/guix.texi:17739
 msgid "Specifies the maximum cost of filters that are run concurrently, which can be used to minimize disk, memory, and CPU resource problems.  A limit of 0 disables filter limiting.  An average print to a non-PostScript printer needs a filter limit of about 200.  A PostScript printer needs about half that (100).  Setting the limit below these thresholds will effectively limit the scheduler to printing a single job at any time."
 msgstr "Gibt die Maximalkosten von Filtern an, die nebenläufig ausgeführt werden, wodurch Probleme durch Platten-, Arbeitsspeicher- und Prozessorressourcennutzung minimiert werden können. Eine Beschränkung von 0 deaktiviert die Filterbeschränkung. Ein durchschnittlicher Druck mit einem Nicht-PostScript-Drucker erfordert eine Filterbeschränkung von mindestens ungefähr 200. Ein PostScript-Drucker erfordert eine halb so hohe Filterbeschränkung (100). Wird die Beschränkung unterhalb dieser Schwellwerte angesetzt, kann das Planungsprogramm effektiv nur noch einen einzelnen Druckauftrag gleichzeitig abarbeiten."
 
 #. type: deftypevr
-#: doc/guix.texi:15187 doc/guix.texi:15195 doc/guix.texi:15250
-#: doc/guix.texi:15366 doc/guix.texi:15380 doc/guix.texi:15387
-#: doc/guix.texi:16593 doc/guix.texi:16609 doc/guix.texi:17255
-#: doc/guix.texi:17267 doc/guix.texi:18046 doc/guix.texi:18055
-#: doc/guix.texi:18063 doc/guix.texi:18071 doc/guix.texi:22655
-#: doc/guix.texi:22980 doc/guix.texi:24305 doc/guix.texi:24605
-#: doc/guix.texi:24779
+#: doc/guix.texi:17741 doc/guix.texi:17749 doc/guix.texi:17804
+#: doc/guix.texi:17920 doc/guix.texi:17934 doc/guix.texi:17941
+#: doc/guix.texi:19282 doc/guix.texi:19298 doc/guix.texi:19944
+#: doc/guix.texi:19956 doc/guix.texi:20735 doc/guix.texi:20744
+#: doc/guix.texi:20752 doc/guix.texi:20760 doc/guix.texi:25515
+#: doc/guix.texi:25840 doc/guix.texi:27998 doc/guix.texi:28298
+#: doc/guix.texi:28472
 msgid "Defaults to @samp{0}."
 msgstr "Die Vorgabe ist @samp{0}."
 
 #. type: deftypevr
-#: doc/guix.texi:15189
+#: doc/guix.texi:17743
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer filter-nice"
 msgstr "{@code{cups-configuration}-Parameter} Nichtnegative-ganze-Zahl filter-nice"
 
 #. type: deftypevr
-#: doc/guix.texi:15193
+#: doc/guix.texi:17747
 msgid "Specifies the scheduling priority of filters that are run to print a job.  The nice value ranges from 0, the highest priority, to 19, the lowest priority."
 msgstr "Gibt die Planungspriorität von Filtern an, die zum Drucken eines Druckauftrags ausgeführt werden. Der nice-Wert kann zwischen 0, der höchsten Priorität, und 19, der niedrigsten Priorität, liegen."
 
 #. type: deftypevr
-#: doc/guix.texi:15197
+#: doc/guix.texi:17751
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} host-name-lookups host-name-lookups"
 msgstr "{@code{cups-configuration}-Parameter} Rechnernamensauflösungen host-name-lookups"
 
 #. type: deftypevr
-#: doc/guix.texi:15204
+#: doc/guix.texi:17758
 msgid "Specifies whether to do reverse lookups on connecting clients.  The @code{double} setting causes @code{cupsd} to verify that the hostname resolved from the address matches one of the addresses returned for that hostname.  Double lookups also prevent clients with unregistered addresses from connecting to your server.  Only set this option to @code{#t} or @code{double} if absolutely required."
 msgstr "Gibt an, ob inverse Namensauflösungen („Reverse Lookups“) bei sich verbindenden Clients durchgeführt werden sollen. Die Einstellung @code{double} lässt @code{cupsd} verifizieren, dass der anhand der Adresse aufgelöste Rechnername zu einer der für den Rechnernamen zurückgelieferten Adressen passt. „Double“-Namensauflösungen verhindern auch, dass sich Clients mit unregistrierten Adressen mit Ihrem Server verbinden können. Setzen Sie diese Option nur dann auf @code{#t} oder @code{double}, wenn es unbedingt notwendig ist."
 
 #. type: deftypevr
-#: doc/guix.texi:15208
+#: doc/guix.texi:17762
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer job-kill-delay"
 msgstr "{@code{cups-configuration}-Parameter} Nichtnegative-ganze-Zahl job-kill-delay"
 
 #. type: deftypevr
-#: doc/guix.texi:15211
+#: doc/guix.texi:17765
 msgid "Specifies the number of seconds to wait before killing the filters and backend associated with a canceled or held job."
 msgstr "Gibt die Anzahl an Sekunden an, wie lange vor dem Abwürgen der mit einem abgebrochenen oder gehaltenen Druckauftrag assoziierten Filter- und Hintergrundprozesse (dem „Backend“) gewartet wird."
 
 #. type: deftypevr
-#: doc/guix.texi:15215
+#: doc/guix.texi:17769
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer job-retry-interval"
 msgstr "{@code{cups-configuration}-Parameter} Nichtnegative-ganze-Zahl job-retry-interval"
 
 #. type: deftypevr
-#: doc/guix.texi:15220
+#: doc/guix.texi:17774
 msgid "Specifies the interval between retries of jobs in seconds.  This is typically used for fax queues but can also be used with normal print queues whose error policy is @code{retry-job} or @code{retry-current-job}."
 msgstr "Gibt das Zeitintervall zwischen erneuten Versuchen von Druckaufträgen in Sekunden an. Dies wird in der Regel für Fax-Warteschlangen benutzt, kann aber auch für normale Druckwarteschlangen benutzt werden, deren Fehlerrichtlinie @code{retry-job} oder @code{retry-current-job} ist."
 
 #. type: deftypevr
-#: doc/guix.texi:15224
+#: doc/guix.texi:17778
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer job-retry-limit"
 msgstr "{@code{cups-configuration}-Parameter} Nichtnegative-ganze-Zahl job-retry-limit"
 
 #. type: deftypevr
-#: doc/guix.texi:15229
+#: doc/guix.texi:17783
 msgid "Specifies the number of retries that are done for jobs.  This is typically used for fax queues but can also be used with normal print queues whose error policy is @code{retry-job} or @code{retry-current-job}."
 msgstr "Gibt die Anzahl an, wie oft ein Druckauftrag erneut versucht wird. Dies wird in der Regel für Fax-Warteschlangen benutzt, kann aber auch für normale Druckwarteschlangen benutzt werden, deren Fehlerrichtlinie @code{retry-job} oder @code{retry-current-job} ist."
 
 #. type: deftypevr
-#: doc/guix.texi:15231 doc/guix.texi:23531 doc/guix.texi:23551
-#: doc/guix.texi:23567 doc/guix.texi:23581 doc/guix.texi:23588
-#: doc/guix.texi:23595 doc/guix.texi:23602 doc/guix.texi:23761
-#: doc/guix.texi:23777 doc/guix.texi:23784 doc/guix.texi:23791
-#: doc/guix.texi:23802 doc/guix.texi:24257 doc/guix.texi:24265
-#: doc/guix.texi:24273 doc/guix.texi:24297
+#: doc/guix.texi:17785 doc/guix.texi:26392 doc/guix.texi:26412
+#: doc/guix.texi:26428 doc/guix.texi:26442 doc/guix.texi:26449
+#: doc/guix.texi:26456 doc/guix.texi:26463 doc/guix.texi:26623
+#: doc/guix.texi:26639 doc/guix.texi:26646 doc/guix.texi:26653
+#: doc/guix.texi:26664 doc/guix.texi:27950 doc/guix.texi:27958
+#: doc/guix.texi:27966 doc/guix.texi:27990
 msgid "Defaults to @samp{5}."
 msgstr "Die Vorgabe ist @samp{5}."
 
 #. type: deftypevr
-#: doc/guix.texi:15233
+#: doc/guix.texi:17787
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} boolean keep-alive?"
 msgstr "{@code{cups-configuration}-Parameter} Boolescher-Ausdruck keep-alive?"
 
 #. type: deftypevr
-#: doc/guix.texi:15235
+#: doc/guix.texi:17789
 msgid "Specifies whether to support HTTP keep-alive connections."
 msgstr "Gibt an, ob HTTP-„keep-alive“ für Verbindungen unterstützt wird."
 
 #. type: deftypevr
-#: doc/guix.texi:15239
+#: doc/guix.texi:17793
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer keep-alive-timeout"
 msgstr "{@code{cups-configuration}-Parameter} Nichtnegative-ganze-Zahl keep-alive-timeout"
 
 #. type: deftypevr
-#: doc/guix.texi:15241
+#: doc/guix.texi:17795
 msgid "Specifies how long an idle client connection remains open, in seconds."
 msgstr "Gibt an, wie lange eine Clientverbindung ohne Aktivität offen bleibt, in Sekunden."
 
 #. type: deftypevr
-#: doc/guix.texi:15245
+#: doc/guix.texi:17799
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer limit-request-body"
 msgstr "{@code{cups-configuration}-Parameter} Nichtnegative-ganze-Zahl limit-request-body"
 
 #. type: deftypevr
-#: doc/guix.texi:15248
+#: doc/guix.texi:17802
 msgid "Specifies the maximum size of print files, IPP requests, and HTML form data.  A limit of 0 disables the limit check."
 msgstr "Gibt die Maximalgröße von zu druckenden Dateien, IPP-Anfragen und HTML-Formulardaten an. Eine Beschränkung von 0 deaktiviert die Beschränkung."
 
 #. type: deftypevr
-#: doc/guix.texi:15252
+#: doc/guix.texi:17806
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} multiline-string-list listen"
 msgstr "{@code{cups-configuration}-Parameter} Mehrzeilige-Zeichenketten-Liste listen"
 
 #. type: deftypevr
-#: doc/guix.texi:15259
+#: doc/guix.texi:17813
 msgid "Listens on the specified interfaces for connections.  Valid values are of the form @var{address}:@var{port}, where @var{address} is either an IPv6 address enclosed in brackets, an IPv4 address, or @code{*} to indicate all addresses.  Values can also be file names of local UNIX domain sockets.  The Listen directive is similar to the Port directive but allows you to restrict access to specific interfaces or networks."
 msgstr "Lauscht auf den angegebenen Schnittstellen auf Verbindungen. Gültige Werte haben die Form @var{Adresse}:@var{Port}, wobei die @var{Adresse} entweder eine von eckigen Klammern umschlossene IPv6-Adresse, eine IPv4-Adresse oder @code{*} ist; letztere steht für alle Adressen. Werte können auch Dateinamen lokaler UNIX-Sockets sein. Die Listen-Direktive ähnelt der Port-Direktive, macht es aber möglich, den Zugriff für bestimmte Schnittstellen oder Netzwerke einzuschränken."
 
 #. type: deftypevr
-#: doc/guix.texi:15261
+#: doc/guix.texi:17815
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer listen-back-log"
 msgstr "{@code{cups-configuration}-Parameter} Nichtnegative-ganze-Zahl listen-back-log"
 
 #. type: deftypevr
-#: doc/guix.texi:15268
+#: doc/guix.texi:17822
 msgid "Specifies the number of pending connections that will be allowed.  This normally only affects very busy servers that have reached the MaxClients limit, but can also be triggered by large numbers of simultaneous connections.  When the limit is reached, the operating system will refuse additional connections until the scheduler can accept the pending ones."
 msgstr "Gibt die Anzahl ausstehender Verbindungen an, die möglich sein soll. Normalerweise betrifft dies nur sehr ausgelastete Server, die die MaxClients-Beschränkung erreicht haben. Es kann aber auch eine Rolle spielen, wenn versucht wird, gleichzeitig sehr viele Verbindungen herzustellen. Wenn die Beschränkung erreicht wird, sperrt das Betriebssystem den Aufbau weiterer Verbindungen, bis das Druckplanungsprogramm die ausstehenden akzeptieren konnte."
 
 #. type: deftypevr
-#: doc/guix.texi:15270
+#: doc/guix.texi:17824
 msgid "Defaults to @samp{128}."
 msgstr "Die Vorgabe ist @samp{128}."
 
 #. type: deftypevr
-#: doc/guix.texi:15272
+#: doc/guix.texi:17826
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} location-access-control-list location-access-controls"
 msgstr "{@code{cups-configuration}-Parameter} „location-access-controls“-Liste location-access-controls"
 
 #. type: deftypevr
-#: doc/guix.texi:15274
+#: doc/guix.texi:17828
 msgid "Specifies a set of additional access controls."
 msgstr "Gibt eine Liste zusätzlicher Zugriffssteuerungen („Access Controls“) an."
 
 #. type: deftypevr
-#: doc/guix.texi:15276
+#: doc/guix.texi:17830
 msgid "Available @code{location-access-controls} fields are:"
 msgstr "Verfügbare @code{location-access-controls}-Felder sind:"
 
 #. type: deftypevr
-#: doc/guix.texi:15277
+#: doc/guix.texi:17831
 #, no-wrap
 msgid "{@code{location-access-controls} parameter} file-name path"
 msgstr "{@code{location-access-controls}-Parameter} Dateiname path"
 
 #. type: deftypevr
-#: doc/guix.texi:15279
+#: doc/guix.texi:17833
 msgid "Specifies the URI path to which the access control applies."
 msgstr "Gibt den URI-Pfad an, für den die Zugriffssteuerung gilt."
 
 #. type: deftypevr
-#: doc/guix.texi:15281
+#: doc/guix.texi:17835
 #, no-wrap
 msgid "{@code{location-access-controls} parameter} access-control-list access-controls"
 msgstr "{@code{location-access-controls}-Parameter} Zugriffssteuerungs-Liste access-controls"
 
 #. type: deftypevr
-#: doc/guix.texi:15284
+#: doc/guix.texi:17838
 msgid "Access controls for all access to this path, in the same format as the @code{access-controls} of @code{operation-access-control}."
 msgstr "Zugriffssteuerungen für jeden Zugriff auf diesen Pfad, im selben Format wie die @code{access-controls} bei @code{operation-access-control}."
 
 #. type: deftypevr
-#: doc/guix.texi:15286 doc/guix.texi:15292 doc/guix.texi:15306
-#: doc/guix.texi:15313 doc/guix.texi:15455 doc/guix.texi:15514
-#: doc/guix.texi:15592 doc/guix.texi:15606 doc/guix.texi:17741
-#: doc/guix.texi:17944 doc/guix.texi:17972 doc/guix.texi:18002
-#: doc/guix.texi:18117 doc/guix.texi:18130 doc/guix.texi:18137
-#: doc/guix.texi:19226 doc/guix.texi:19330 doc/guix.texi:19755
-#: doc/guix.texi:19763 doc/guix.texi:20008 doc/guix.texi:21886
-#: doc/guix.texi:22048 doc/guix.texi:22243 doc/guix.texi:23422
-#: doc/guix.texi:23482 doc/guix.texi:23490 doc/guix.texi:24320
-#: doc/guix.texi:24327 doc/guix.texi:24669 doc/guix.texi:24747
-#: doc/guix.texi:24841 doc/guix.texi:24849 doc/guix.texi:24885
-#: doc/guix.texi:25035 doc/guix.texi:25086 doc/guix.texi:25095
+#: doc/guix.texi:17840 doc/guix.texi:17846 doc/guix.texi:17860
+#: doc/guix.texi:17867 doc/guix.texi:18009 doc/guix.texi:18068
+#: doc/guix.texi:18146 doc/guix.texi:18160 doc/guix.texi:20430
+#: doc/guix.texi:20633 doc/guix.texi:20661 doc/guix.texi:20691
+#: doc/guix.texi:20806 doc/guix.texi:20819 doc/guix.texi:20826
+#: doc/guix.texi:21916 doc/guix.texi:22020 doc/guix.texi:22446
+#: doc/guix.texi:22454 doc/guix.texi:22699 doc/guix.texi:24732
+#: doc/guix.texi:24894 doc/guix.texi:25089 doc/guix.texi:26283
+#: doc/guix.texi:26343 doc/guix.texi:26351 doc/guix.texi:28013
+#: doc/guix.texi:28020 doc/guix.texi:28362 doc/guix.texi:28440
+#: doc/guix.texi:28534 doc/guix.texi:28542 doc/guix.texi:28578
+#: doc/guix.texi:28728 doc/guix.texi:28779 doc/guix.texi:28788
 msgid "Defaults to @samp{()}."
 msgstr "Die Vorgabe ist @samp{()}."
 
 #. type: deftypevr
-#: doc/guix.texi:15288
+#: doc/guix.texi:17842
 #, no-wrap
 msgid "{@code{location-access-controls} parameter} method-access-control-list method-access-controls"
 msgstr "{@code{location-access-controls}-Parameter} „method-access-controls“-Liste method-access-controls"
 
 #. type: deftypevr
-#: doc/guix.texi:15290
+#: doc/guix.texi:17844
 msgid "Access controls for method-specific access to this path."
 msgstr "Zugriffssteuerungen für methodenspezifische Zugriffe auf diesen Pfad."
 
 #. type: deftypevr
-#: doc/guix.texi:15294
+#: doc/guix.texi:17848
 msgid "Available @code{method-access-controls} fields are:"
 msgstr "Verfügbare @code{method-access-controls}-Felder sind:"
 
 #. type: deftypevr
-#: doc/guix.texi:15295
+#: doc/guix.texi:17849
 #, no-wrap
 msgid "{@code{method-access-controls} parameter} boolean reverse?"
 msgstr "{@code{method-access-controls}-Parameter} Boolescher-Ausdruck reverse?"
 
 #. type: deftypevr
-#: doc/guix.texi:15298
+#: doc/guix.texi:17852
 msgid "If @code{#t}, apply access controls to all methods except the listed methods.  Otherwise apply to only the listed methods."
 msgstr "Falls dies @code{#t} ist, gelten die Zugriffssteuerungen für alle Methoden außer den aufgelisteten Methoden. Andernfalls gelten sie nur für die aufgelisteten Methoden."
 
 #. type: deftypevr
-#: doc/guix.texi:15302
+#: doc/guix.texi:17856
 #, no-wrap
 msgid "{@code{method-access-controls} parameter} method-list methods"
 msgstr "{@code{method-access-controls}-Parameter} Methoden-Liste methods"
 
 #. type: deftypevr
-#: doc/guix.texi:15304
+#: doc/guix.texi:17858
 msgid "Methods to which this access control applies."
 msgstr "Methoden, für die diese Zugriffssteuerung gilt."
 
 #. type: deftypevr
-#: doc/guix.texi:15308
+#: doc/guix.texi:17862
 #, no-wrap
 msgid "{@code{method-access-controls} parameter} access-control-list access-controls"
 msgstr "{@code{method-access-controls}-Parameter} Zugriffssteuerungs-Liste access-controls"
 
 #. type: deftypevr
-#: doc/guix.texi:15311
-msgid "Access control directives, as a list of strings.  Each string should be one directive, such as \"Order allow,deny\"."
-msgstr "Zugriffssteuerungsdirektiven als eine Liste von Zeichenketten. Jede Zeichenkette steht für eine Direktive wie z.B.@: \"Order allow,deny\"."
+#: doc/guix.texi:17865
+msgid "Access control directives, as a list of strings.  Each string should be one directive, such as @samp{\"Order allow,deny\"}."
+msgstr "Zugriffssteuerungsdirektiven als eine Liste von Zeichenketten. Jede Zeichenkette steht für eine Direktive wie z.B.@: @samp{\"Order allow,deny\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:15317
+#: doc/guix.texi:17871
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer log-debug-history"
 msgstr "{@code{cups-configuration}-Parameter} Nichtnegative-ganze-Zahl log-debug-history"
 
 #. type: deftypevr
-#: doc/guix.texi:15321
+#: doc/guix.texi:17875
 msgid "Specifies the number of debugging messages that are retained for logging if an error occurs in a print job.  Debug messages are logged regardless of the LogLevel setting."
 msgstr "Gibt die Anzahl der Nachrichten zur Fehlersuche an, die für Protokolle vorgehalten werden, wenn ein Fehler in einem Druckauftrag auftritt. Nachrichten zur Fehlersuche werden unabhängig von der LogLevel-Einstellung protokolliert."
 
 #. type: deftypevr
-#: doc/guix.texi:15323 doc/guix.texi:15344 doc/guix.texi:15351
-#: doc/guix.texi:17501 doc/guix.texi:22228
+#: doc/guix.texi:17877 doc/guix.texi:17898 doc/guix.texi:17905
+#: doc/guix.texi:20190 doc/guix.texi:25074
 msgid "Defaults to @samp{100}."
 msgstr "Die Vorgabe ist @samp{100}."
 
 #. type: deftypevr
-#: doc/guix.texi:15325
+#: doc/guix.texi:17879
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} log-level log-level"
 msgstr "{@code{cups-configuration}-Parameter} Protokollstufe log-level"
 
 #. type: deftypevr
-#: doc/guix.texi:15328
+#: doc/guix.texi:17882
 msgid "Specifies the level of logging for the ErrorLog file.  The value @code{none} stops all logging while @code{debug2} logs everything."
 msgstr "Gibt die Stufe der Protokollierung in die ErrorLog-Datei an. Der Wert @code{none} stoppt alle Protokollierung, während @code{debug2} alles protokollieren lässt."
 
 #. type: deftypevr
-#: doc/guix.texi:15330
+#: doc/guix.texi:17884
 msgid "Defaults to @samp{info}."
 msgstr "Die Vorgabe ist @samp{info}."
 
 #. type: deftypevr
-#: doc/guix.texi:15332
+#: doc/guix.texi:17886
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} log-time-format log-time-format"
 msgstr "{@code{cups-configuration}-Parameter} Protokollzeitformat log-time-format"
 
 #. type: deftypevr
-#: doc/guix.texi:15335
+#: doc/guix.texi:17889
 msgid "Specifies the format of the date and time in the log files.  The value @code{standard} logs whole seconds while @code{usecs} logs microseconds."
 msgstr "Gibt das Format von Datum und Uhrzeit in Protokolldateien an. Der Wert @code{standard} lässt ganze Sekunden ins Protokoll schreiben, während bei @code{usecs} Mikrosekunden protokolliert werden."
 
 #. type: deftypevr
-#: doc/guix.texi:15337
+#: doc/guix.texi:17891
 msgid "Defaults to @samp{standard}."
 msgstr "Die Vorgabe ist @samp{standard}."
 
 #. type: deftypevr
-#: doc/guix.texi:15339
+#: doc/guix.texi:17893
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer max-clients"
 msgstr "{@code{cups-configuration}-Parameter} Nichtnegative-ganze-Zahl max-clients"
 
 #. type: deftypevr
-#: doc/guix.texi:15342
+#: doc/guix.texi:17896
 msgid "Specifies the maximum number of simultaneous clients that are allowed by the scheduler."
 msgstr "Gibt die Maximalzahl gleichzeitig bedienter Clients an, die vom Planer zugelassen werden."
 
 #. type: deftypevr
-#: doc/guix.texi:15346
+#: doc/guix.texi:17900
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer max-clients-per-host"
 msgstr "{@code{cups-configuration}-Parameter} Nichtnegative-ganze-Zahl max-clients-per-host"
 
 #. type: deftypevr
-#: doc/guix.texi:15349
+#: doc/guix.texi:17903
 msgid "Specifies the maximum number of simultaneous clients that are allowed from a single address."
 msgstr "Gibt die Maximalzahl gleichzeitiger Clients von derselben Adresse an, die zugelassen werden."
 
 #. type: deftypevr
-#: doc/guix.texi:15353
+#: doc/guix.texi:17907
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer max-copies"
 msgstr "{@code{cups-configuration}-Parameter} Nichtnegative-ganze-Zahl max-copies"
 
 #. type: deftypevr
-#: doc/guix.texi:15356
+#: doc/guix.texi:17910
 msgid "Specifies the maximum number of copies that a user can print of each job."
 msgstr "Gibt die Maximalzahl der Kopien an, die ein Nutzer vom selben Druckauftrag ausdrucken lassen kann."
 
 #. type: deftypevr
-#: doc/guix.texi:15358
+#: doc/guix.texi:17912
 msgid "Defaults to @samp{9999}."
 msgstr "Die Vorgabe ist @samp{9999}."
 
 #. type: deftypevr
-#: doc/guix.texi:15360
+#: doc/guix.texi:17914
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer max-hold-time"
 msgstr "{@code{cups-configuration}-Parameter} Nichtnegative-ganze-Zahl max-hold-time"
 
 #. type: deftypevr
-#: doc/guix.texi:15364
+#: doc/guix.texi:17918
 msgid "Specifies the maximum time a job may remain in the @code{indefinite} hold state before it is canceled.  A value of 0 disables cancellation of held jobs."
 msgstr "Gibt die maximale Zeitdauer an, die ein Druckauftrag im Haltezustand @code{indefinite} bleiben darf, bevor er abgebrochen wird. Ein Wert von 0 deaktiviert ein Abbrechen gehaltener Druckaufträge."
 
 #. type: deftypevr
-#: doc/guix.texi:15368
+#: doc/guix.texi:17922
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer max-jobs"
 msgstr "{@code{cups-configuration}-Parameter} Nichtnegative-ganze-Zahl max-jobs"
 
 #. type: deftypevr
-#: doc/guix.texi:15371
+#: doc/guix.texi:17925
 msgid "Specifies the maximum number of simultaneous jobs that are allowed.  Set to 0 to allow an unlimited number of jobs."
 msgstr "Gibt die Maximalzahl gleichzeitiger Druckaufträge an, die noch zugelassen wird. Wenn Sie es auf 0 setzen, wird die Anzahl Druckaufträge @emph{nicht} beschränkt."
 
 #. type: deftypevr
-#: doc/guix.texi:15373
+#: doc/guix.texi:17927
 msgid "Defaults to @samp{500}."
 msgstr "Die Vorgabe ist @samp{500}."
 
 #. type: deftypevr
-#: doc/guix.texi:15375
+#: doc/guix.texi:17929
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer max-jobs-per-printer"
 msgstr "{@code{cups-configuration}-Parameter} Nichtnegative-ganze-Zahl max-jobs-per-printer"
 
 #. type: deftypevr
-#: doc/guix.texi:15378
+#: doc/guix.texi:17932
 msgid "Specifies the maximum number of simultaneous jobs that are allowed per printer.  A value of 0 allows up to MaxJobs jobs per printer."
 msgstr "Gibt die Maximalzahl gleichzeitiger Druckaufträge an, die pro Drucker zugelassen werden. Ein Wert von 0 lässt bis zu MaxJobs-viele Druckaufträge pro Drucker zu."
 
 #. type: deftypevr
-#: doc/guix.texi:15382
+#: doc/guix.texi:17936
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer max-jobs-per-user"
 msgstr "{@code{cups-configuration}-Parameter} Nichtnegative-ganze-Zahl max-jobs-per-user"
 
 #. type: deftypevr
-#: doc/guix.texi:15385
+#: doc/guix.texi:17939
 msgid "Specifies the maximum number of simultaneous jobs that are allowed per user.  A value of 0 allows up to MaxJobs jobs per user."
 msgstr "Gibt die Maximalzahl gleichzeitiger Druckaufträge an, die pro Benutzer zugelassen werden. Ein Wert von 0 lässt bis zu MaxJobs-viele Druckaufträge pro Benutzer zu."
 
 #. type: deftypevr
-#: doc/guix.texi:15389
+#: doc/guix.texi:17943
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer max-job-time"
 msgstr "{@code{cups-configuration}-Parameter} Nichtnegative-ganze-Zahl max-job-time"
 
 #. type: deftypevr
-#: doc/guix.texi:15392
-msgid "Specifies the maximum time a job may take to print before it is canceled, in seconds.  Set to 0 to disable cancellation of \"stuck\" jobs."
+#: doc/guix.texi:17946
+msgid "Specifies the maximum time a job may take to print before it is canceled, in seconds.  Set to 0 to disable cancellation of ``stuck'' jobs."
 msgstr "Gibt die maximale Anzahl an, wie oft das Drucken eines Druckauftrags versucht werden kann, bis er abgebrochen wird, in Sekunden. Wenn Sie es auf 0 setzen, wird das Abbrechen „feststeckender“ Druckaufträge deaktiviert."
 
 #. type: deftypevr
-#: doc/guix.texi:15394
+#: doc/guix.texi:17948
 msgid "Defaults to @samp{10800}."
 msgstr "Die Vorgabe ist @samp{10800}."
 
 #. type: deftypevr
-#: doc/guix.texi:15396
+#: doc/guix.texi:17950
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer max-log-size"
 msgstr "{@code{cups-configuration}-Parameter} Nichtnegative-ganze-Zahl max-log-size"
 
 #. type: deftypevr
-#: doc/guix.texi:15399
+#: doc/guix.texi:17953
 msgid "Specifies the maximum size of the log files before they are rotated, in bytes.  The value 0 disables log rotation."
 msgstr "Gibt die Maximalgröße der Protokolldateien an, bevor sie rotiert werden, in Bytes. Beim Wert 0 wird Protokollrotation deaktiviert."
 
 #. type: deftypevr
-#: doc/guix.texi:15401
+#: doc/guix.texi:17955
 msgid "Defaults to @samp{1048576}."
 msgstr "Die Vorgabe ist @samp{1048576}."
 
 #. type: deftypevr
-#: doc/guix.texi:15403
+#: doc/guix.texi:17957
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer multiple-operation-timeout"
 msgstr "{@code{cups-configuration}-Parameter} Nichtnegative-ganze-Zahl multiple-operation-timeout"
 
 #. type: deftypevr
-#: doc/guix.texi:15406
+#: doc/guix.texi:17960
 msgid "Specifies the maximum amount of time to allow between files in a multiple file print job, in seconds."
 msgstr "Gibt die maximale Zeitdauer an, wie lange es zwischen Dateien in einem Druckauftrag mit mehreren Dateien dauern darf, in Sekunden."
 
 #. type: deftypevr
-#: doc/guix.texi:15408 doc/guix.texi:15619 doc/guix.texi:21820
+#: doc/guix.texi:17962 doc/guix.texi:18173 doc/guix.texi:24666
 msgid "Defaults to @samp{300}."
 msgstr "Die Vorgabe ist @samp{300}."
 
 #. type: deftypevr
-#: doc/guix.texi:15410
+#: doc/guix.texi:17964
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} string page-log-format"
 msgstr "{@code{cups-configuration}-Parameter} Zeichenkette page-log-format"
 
 #. type: deftypevr
-#: doc/guix.texi:15415
+#: doc/guix.texi:17969
 msgid "Specifies the format of PageLog lines.  Sequences beginning with percent (@samp{%}) characters are replaced with the corresponding information, while all other characters are copied literally.  The following percent sequences are recognized:"
 msgstr "Gibt das Format der Zeilen im PageLog-Seitenprotokoll an. Folgen, die mit Prozentzeichen (@samp{%}) beginnen, werden durch die jeweils zugehörigen Informationen ersetzt, während alle anderen Zeichen wortwörtlich übernommen werden. Die folgenden Prozentfolgen werden erkannt:"
 
 #. type: item
-#: doc/guix.texi:15417
+#: doc/guix.texi:17971
 #, no-wrap
 msgid "%%"
 msgstr "%%"
 
 #. type: table
-#: doc/guix.texi:15419
+#: doc/guix.texi:17973
 msgid "insert a single percent character"
 msgstr "ein einzelnes Prozentzeichen einfügen"
 
 #. type: item
-#: doc/guix.texi:15420
+#: doc/guix.texi:17974
 #, no-wrap
 msgid "%@{name@}"
 msgstr "%@{name@}"
 
 #. type: table
-#: doc/guix.texi:15422
+#: doc/guix.texi:17976
 msgid "insert the value of the specified IPP attribute"
 msgstr "den Wert des angegebenen IPP-Attributs einfügen"
 
 #. type: item
-#: doc/guix.texi:15423
+#: doc/guix.texi:17977
 #, no-wrap
 msgid "%C"
 msgstr "%C"
 
 #. type: table
-#: doc/guix.texi:15425
+#: doc/guix.texi:17979
 msgid "insert the number of copies for the current page"
 msgstr "die Anzahl der Kopien der aktuellen Seite einfügen"
 
 #. type: item
-#: doc/guix.texi:15426
+#: doc/guix.texi:17980
 #, no-wrap
 msgid "%P"
 msgstr "%P"
 
 #. type: table
-#: doc/guix.texi:15428
+#: doc/guix.texi:17982
 msgid "insert the current page number"
 msgstr "die aktuelle Seitenzahl einfügen"
 
 #. type: item
-#: doc/guix.texi:15429
+#: doc/guix.texi:17983
 #, no-wrap
 msgid "%T"
 msgstr "%T"
 
 #. type: table
-#: doc/guix.texi:15431
+#: doc/guix.texi:17985
 msgid "insert the current date and time in common log format"
 msgstr "das aktuelle Datum und Uhrzeit im allgemeinen Protokollformat einfügen"
 
 #. type: item
-#: doc/guix.texi:15432
+#: doc/guix.texi:17986
 #, no-wrap
 msgid "%j"
 msgstr "%j"
 
 #. type: table
-#: doc/guix.texi:15434
+#: doc/guix.texi:17988
 msgid "insert the job ID"
 msgstr "den Druckauftragsidentifikator („Job-ID“) einfügen"
 
 #. type: item
-#: doc/guix.texi:15435 doc/guix.texi:17111
+#: doc/guix.texi:17989 doc/guix.texi:19800
 #, no-wrap
 msgid "%p"
 msgstr "%p"
 
 #. type: table
-#: doc/guix.texi:15437
+#: doc/guix.texi:17991
 msgid "insert the printer name"
 msgstr "den Druckernamen einfügen"
 
 #. type: item
-#: doc/guix.texi:15438 doc/guix.texi:17134
+#: doc/guix.texi:17992 doc/guix.texi:19823
 #, no-wrap
 msgid "%u"
 msgstr "%u"
 
 #. type: table
-#: doc/guix.texi:15440
+#: doc/guix.texi:17994
 msgid "insert the username"
 msgstr "den Benutzernamen einfügen"
 
 #. type: deftypevr
-#: doc/guix.texi:15446
+#: doc/guix.texi:18000
 msgid "A value of the empty string disables page logging.  The string @code{%p %u %j %T %P %C %@{job-billing@} %@{job-originating-host-name@} %@{job-name@} %@{media@} %@{sides@}} creates a page log with the standard items."
 msgstr "Wird die leere Zeichenkette als Wert angegeben, wird Seitenprotokollierung abgeschaltet. Die Zeichenkette @code{%p %u %j %T %P %C %@{job-billing@} %@{job-originating-host-name@} %@{job-name@} %@{media@} %@{sides@}} erzeugt ein Seitenprotokoll mit den üblichen Elementen."
 
 #. type: deftypevr
-#: doc/guix.texi:15450
+#: doc/guix.texi:18004
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} environment-variables environment-variables"
 msgstr "{@code{cups-configuration}-Parameter} Umgebungsvariable environment-variables"
 
 #. type: deftypevr
-#: doc/guix.texi:15453
+#: doc/guix.texi:18007
 msgid "Passes the specified environment variable(s) to child processes; a list of strings."
 msgstr "Übergibt die angegebene(n) Umgebungsvariable(n) an Kindprozesse, als Liste von Zeichenketten."
 
 #. type: deftypevr
-#: doc/guix.texi:15457
+#: doc/guix.texi:18011
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} policy-configuration-list policies"
 msgstr "{@code{cups-configuration}-Parameter} „policy-configuration“-Liste policies"
 
 #. type: deftypevr
-#: doc/guix.texi:15459
+#: doc/guix.texi:18013
 msgid "Specifies named access control policies."
 msgstr "Gibt die benannten Zugriffssteuerungsrichtlinien an."
 
 #. type: deftypevr
-#: doc/guix.texi:15461
+#: doc/guix.texi:18015
 msgid "Available @code{policy-configuration} fields are:"
 msgstr "Verfügbare @code{policy-configuration}-Felder sind:"
 
 #. type: deftypevr
-#: doc/guix.texi:15462
+#: doc/guix.texi:18016
 #, no-wrap
 msgid "{@code{policy-configuration} parameter} string name"
 msgstr "{@code{policy-configuration}-Parameter} Zeichenkette name"
 
 #. type: deftypevr
-#: doc/guix.texi:15464
+#: doc/guix.texi:18018
 msgid "Name of the policy."
 msgstr "Der Name der Richtlinie."
 
 #. type: deftypevr
-#: doc/guix.texi:15466
+#: doc/guix.texi:18020
 #, no-wrap
 msgid "{@code{policy-configuration} parameter} string job-private-access"
 msgstr "{@code{policy-configuration}-Parameter} Zeichenkette job-private-access"
 
 #. type: deftypevr
-#: doc/guix.texi:15476
+#: doc/guix.texi:18030
 msgid "Specifies an access list for a job's private values.  @code{@@ACL} maps to the printer's requesting-user-name-allowed or requesting-user-name-denied values.  @code{@@OWNER} maps to the job's owner.  @code{@@SYSTEM} maps to the groups listed for the @code{system-group} field of the @code{files-config} configuration, which is reified into the @code{cups-files.conf(5)} file.  Other possible elements of the access list include specific user names, and @code{@@@var{group}} to indicate members of a specific group.  The access list may also be simply @code{all} or @code{default}."
 msgstr "Gibt eine Zugriffsliste der privaten Werte eines Druckauftrags an. @code{@@ACL} wird auf die Werte von requesting-user-name-allowed oder requesting-user-name-denied des Druckers abgebildet. @code{@@OWNER} wird auf den Besitzer des Druckauftrags abgebildet. @code{@@SYSTEM} wird auf die Gruppen abgebildet, die im @code{system-group}-Feld der @code{files-config}-Konfiguration aufgelistet sind, aus der die Datei @code{cups-files.conf(5)} erzeugt wird. Zu den anderen möglichen Elementen der Zugriffsliste gehören Namen bestimmer Benutzerkonten und @code{@@@var{Benutzergruppe}}, was für Mitglieder einer bestimmten Benutzergruppe steht. Die Zugriffsliste kann auch einfach als @code{all} oder @code{default} festgelegt werden."
 
 #. type: deftypevr
-#: doc/guix.texi:15478 doc/guix.texi:15500
+#: doc/guix.texi:18032 doc/guix.texi:18054
 msgid "Defaults to @samp{\"@@OWNER @@SYSTEM\"}."
 msgstr "Die Vorgabe ist @samp{\"@@OWNER @@SYSTEM\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:15480
+#: doc/guix.texi:18034
 #, no-wrap
 msgid "{@code{policy-configuration} parameter} string job-private-values"
 msgstr "{@code{policy-configuration}-Parameter} Zeichenkette job-private-values"
 
 #. type: deftypevr
-#: doc/guix.texi:15483 doc/guix.texi:15505
+#: doc/guix.texi:18037 doc/guix.texi:18059
 msgid "Specifies the list of job values to make private, or @code{all}, @code{default}, or @code{none}."
 msgstr "Gibt die Liste der Druckauftragswerte an, die geschützt werden sollten, oder @code{all}, @code{default} oder @code{none}."
 
 #. type: deftypevr
-#: doc/guix.texi:15486
+#: doc/guix.texi:18040
 msgid "Defaults to @samp{\"job-name job-originating-host-name job-originating-user-name phone\"}."
 msgstr "Die Vorgabe ist @samp{\"job-name job-originating-host-name job-originating-user-name phone\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:15488
+#: doc/guix.texi:18042
 #, no-wrap
 msgid "{@code{policy-configuration} parameter} string subscription-private-access"
 msgstr "{@code{policy-configuration}-Parameter} Zeichenkette subscription-private-access"
 
 #. type: deftypevr
-#: doc/guix.texi:15498
+#: doc/guix.texi:18052
 msgid "Specifies an access list for a subscription's private values.  @code{@@ACL} maps to the printer's requesting-user-name-allowed or requesting-user-name-denied values.  @code{@@OWNER} maps to the job's owner.  @code{@@SYSTEM} maps to the groups listed for the @code{system-group} field of the @code{files-config} configuration, which is reified into the @code{cups-files.conf(5)} file.  Other possible elements of the access list include specific user names, and @code{@@@var{group}} to indicate members of a specific group.  The access list may also be simply @code{all} or @code{default}."
 msgstr "Gibt eine Zugriffsliste für die privaten Werte eines Abonnements an. @code{@@ACL} wird auf die Werte von requesting-user-name-allowed oder requesting-user-name-denied des Druckers abgebildet. @code{@@OWNER} wird auf den Besitzer des Druckauftrags abgebildet. @code{@@SYSTEM} wird auf die Gruppen abgebildet, die im @code{system-group}-Feld der @code{files-config}-Konfiguration aufgelistet sind, aus der die Datei @code{cups-files.conf(5)} erzeugt wird. Zu den anderen möglichen Elementen der Zugriffsliste gehören Namen bestimmer Benutzerkonten und @code{@@@var{Benutzergruppe}}, was für Mitglieder einer bestimmten Benutzergruppe steht. Die Zugriffsliste kann auch einfach als @code{all} oder @code{default} festgelegt werden."
 
 #. type: deftypevr
-#: doc/guix.texi:15502
+#: doc/guix.texi:18056
 #, no-wrap
 msgid "{@code{policy-configuration} parameter} string subscription-private-values"
 msgstr "{@code{policy-configuration}-Parameter} Zeichenkette subscription-private-values"
 
 #. type: deftypevr
-#: doc/guix.texi:15508
+#: doc/guix.texi:18062
 msgid "Defaults to @samp{\"notify-events notify-pull-method notify-recipient-uri notify-subscriber-user-name notify-user-data\"}."
 msgstr "Die Vorgabe ist @samp{\"notify-events notify-pull-method notify-recipient-uri notify-subscriber-user-name notify-user-data\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:15510
+#: doc/guix.texi:18064
 #, no-wrap
 msgid "{@code{policy-configuration} parameter} operation-access-control-list access-controls"
 msgstr "{@code{policy-configuration}-Parameter} „operation-access-controls“-Liste access-controls"
 
 #. type: deftypevr
-#: doc/guix.texi:15512
+#: doc/guix.texi:18066
 msgid "Access control by IPP operation."
 msgstr "Zugriffssteuerung durch IPP-Betrieb."
 
 #. type: deftypevr
-#: doc/guix.texi:15517
+#: doc/guix.texi:18071
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} boolean-or-non-negative-integer preserve-job-files"
 msgstr "{@code{cups-configuration}-Parameter} Boolescher-Ausdruck-oder-Nichtnegative-ganze-Zahl preserve-job-files"
 
 #. type: deftypevr
-#: doc/guix.texi:15522
+#: doc/guix.texi:18076
 msgid "Specifies whether job files (documents) are preserved after a job is printed.  If a numeric value is specified, job files are preserved for the indicated number of seconds after printing.  Otherwise a boolean value applies indefinitely."
 msgstr "Gibt an, ob die Dateien eines Druckauftrags (Dokumente) erhalten bleiben, nachdem ein Druckauftrag ausgedruckt wurde. Wenn eine Zahl angegeben wird, bleiben die Dateien des Druckauftrags für die angegebene Zahl von Sekunden nach dem Drucken erhalten. Ein boolescher Wert bestimmt ansonsten, ob sie auf unbestimmte Zeit erhalten bleiben."
 
 #. type: deftypevr
-#: doc/guix.texi:15524
+#: doc/guix.texi:18078
 msgid "Defaults to @samp{86400}."
 msgstr "Die Vorgabe ist @samp{86400}."
 
 #. type: deftypevr
-#: doc/guix.texi:15526
+#: doc/guix.texi:18080
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} boolean-or-non-negative-integer preserve-job-history"
 msgstr "{@code{cups-configuration}-Parameter} Boolescher-Ausdruck-oder-Nichtnegative-ganze-Zahl preserve-job-history"
 
 #. type: deftypevr
-#: doc/guix.texi:15531
+#: doc/guix.texi:18085
 msgid "Specifies whether the job history is preserved after a job is printed.  If a numeric value is specified, the job history is preserved for the indicated number of seconds after printing.  If @code{#t}, the job history is preserved until the MaxJobs limit is reached."
 msgstr "Gibt an, ob der Druckauftragsverlauf nach dem Drucken eines Druckauftrags erhalten bleibt. Wenn eine Zahl angegeben wird, bleibt der Druckauftragsverlauf für die angegebene Zahl von Sekunden nach dem Drucken erhalten. Bei @code{#t} bleibt der Druckauftragsverlauf so lange erhalten, bis die MaxJobs-Beschränkung erreicht wurde."
 
 #. type: deftypevr
-#: doc/guix.texi:15535
+#: doc/guix.texi:18089
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer reload-timeout"
 msgstr "{@code{cups-configuration}-Parameter} Nichtnegative-ganze-Zahl reload-timeout"
 
 #. type: deftypevr
-#: doc/guix.texi:15538
+#: doc/guix.texi:18092
 msgid "Specifies the amount of time to wait for job completion before restarting the scheduler."
 msgstr "Gibt an, wie lange vor dem Neustart des Planungsprogramms auf den Abschluss eines Druckauftrages gewartet wird."
 
 #. type: deftypevr
-#: doc/guix.texi:15542
+#: doc/guix.texi:18096
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} string rip-cache"
 msgstr "{@code{cups-configuration}-Parameter} Zeichenkette rip-cache"
 
 #. type: deftypevr
-#: doc/guix.texi:15545
+#: doc/guix.texi:18099
 msgid "Specifies the maximum amount of memory to use when converting documents into bitmaps for a printer."
 msgstr "Gibt die maximale Menge an genutztem Arbeitsspeicher für das Konvertieren von Dokumenten in eine Rastergrafik (eine „Bitmap“) für einen Drucker an."
 
 #. type: deftypevr
-#: doc/guix.texi:15547
+#: doc/guix.texi:18101
 msgid "Defaults to @samp{\"128m\"}."
 msgstr "Die Vorgabe ist @samp{\"128m\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:15549
+#: doc/guix.texi:18103
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} string server-admin"
 msgstr "{@code{cups-configuration}-Parameter} Zeichenkette server-admin"
 
 #. type: deftypevr
-#: doc/guix.texi:15551
+#: doc/guix.texi:18105
 msgid "Specifies the email address of the server administrator."
 msgstr "Gibt die E-Mail-Adresse des Serveradministrators an."
 
 #. type: deftypevr
-#: doc/guix.texi:15553
+#: doc/guix.texi:18107
 msgid "Defaults to @samp{\"root@@localhost.localdomain\"}."
 msgstr "Die Vorgabe ist @samp{\"root@@localhost.localdomain\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:15555
+#: doc/guix.texi:18109
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} host-name-list-or-* server-alias"
 msgstr "{@code{cups-configuration}-Parameter} Rechnernamens-Liste-oder-* server-alias"
 
 #. type: deftypevr
-#: doc/guix.texi:15563
+#: doc/guix.texi:18117
 msgid "The ServerAlias directive is used for HTTP Host header validation when clients connect to the scheduler from external interfaces.  Using the special name @code{*} can expose your system to known browser-based DNS rebinding attacks, even when accessing sites through a firewall.  If the auto-discovery of alternate names does not work, we recommend listing each alternate name with a ServerAlias directive instead of using @code{*}."
 msgstr "Die ServerAlias-Direktive wird zur Prüfung der HTTP-Host-Kopfzeile benutzt, wenn sich Clients mit dem Planungsprogramm über externe Schnittstellen verbinden. Wenn der besondere Name @code{*} benutzt wird, könnte Ihr System möglicherweise bekannten browserbasierten DNS-Rebinding-Angriffen ausgesetzt werden, selbst wenn auf die Angebote nur über eine Firewall zugegriffen wird. Wenn alternative Namen nicht automatisch erkannt werden, empfehlen wir, jeden alternativen Namen in der ServerAlias-Direktive aufzulisten, statt @code{*} zu benutzen."
 
 #. type: deftypevr
-#: doc/guix.texi:15565
+#: doc/guix.texi:18119
 msgid "Defaults to @samp{*}."
 msgstr "Die Vorgabe ist @samp{*}."
 
 #. type: deftypevr
-#: doc/guix.texi:15567
+#: doc/guix.texi:18121
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} string server-name"
 msgstr "{@code{cups-configuration}-Parameter} Zeichenkette server-name"
 
 #. type: deftypevr
-#: doc/guix.texi:15569
+#: doc/guix.texi:18123
 msgid "Specifies the fully-qualified host name of the server."
 msgstr "Gibt den vollständigen Rechnernamen („Fully-Qualified Host Name“) des Servers an."
 
 #. type: deftypevr
-#: doc/guix.texi:15571 doc/guix.texi:19353 doc/guix.texi:19397
+#: doc/guix.texi:18125 doc/guix.texi:22043 doc/guix.texi:22087
 msgid "Defaults to @samp{\"localhost\"}."
 msgstr "Die Vorgabe ist @samp{\"localhost\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:15573
+#: doc/guix.texi:18127
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} server-tokens server-tokens"
 msgstr "{@code{cups-configuration}-Parameter} Server-Tokens server-tokens"
 
 #. type: deftypevr
-#: doc/guix.texi:15581
+#: doc/guix.texi:18135
 msgid "Specifies what information is included in the Server header of HTTP responses.  @code{None} disables the Server header.  @code{ProductOnly} reports @code{CUPS}.  @code{Major} reports @code{CUPS 2}.  @code{Minor} reports @code{CUPS 2.0}.  @code{Minimal} reports @code{CUPS 2.0.0}.  @code{OS} reports @code{CUPS 2.0.0 (@var{uname})} where @var{uname} is the output of the @code{uname} command.  @code{Full} reports @code{CUPS 2.0.0 (@var{uname}) IPP/2.0}."
 msgstr "Gibt an, welche Informationen in der Server-Kopfzeile von HTTP-Antworten vorkommen. @code{None} deaktiviert die Server-Kopfzeile. @code{ProductOnly} liefert @code{CUPS}. @code{Major} liefert @code{CUPS 2}. @code{Minor} liefert @code{CUPS 2.0}. @code{Minimal} liefert @code{CUPS 2.0.0}. @code{OS} liefert @code{CUPS 2.0.0 (@var{uname})}, wobei @var{uname} die Ausgabe des Befehls @code{uname} ist. @code{Full} liefert @code{CUPS 2.0.0 (@var{uname}) IPP/2.0}."
 
 #. type: deftypevr
-#: doc/guix.texi:15583
+#: doc/guix.texi:18137
 msgid "Defaults to @samp{Minimal}."
 msgstr "Die Vorgabe ist @samp{Minimal}."
 
 #. type: deftypevr
-#: doc/guix.texi:15585
+#: doc/guix.texi:18139
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} multiline-string-list ssl-listen"
 msgstr "{@code{cups-configuration}-Parameter} Mehrzeilige-Zeichenketten-Liste ssl-listen"
 
 #. type: deftypevr
-#: doc/guix.texi:15590
+#: doc/guix.texi:18144
 msgid "Listens on the specified interfaces for encrypted connections.  Valid values are of the form @var{address}:@var{port}, where @var{address} is either an IPv6 address enclosed in brackets, an IPv4 address, or @code{*} to indicate all addresses."
 msgstr "Lauscht auf den angegebenen Schnittstellen auf verschlüsselte Verbindungen. Gültige Werte haben die Form @var{Adresse}:@var{Port}, wobei die @var{Adresse} entweder eine von eckigen Klammern umschlossene IPv6-Adresse, eine IPv4-Adresse oder @code{*} ist; letztere steht für alle Adressen."
 
 #. type: deftypevr
-#: doc/guix.texi:15594
+#: doc/guix.texi:18148
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} ssl-options ssl-options"
 msgstr "{@code{cups-configuration}-Parameter} SSL-Optionen ssl-options"
 
 #. type: deftypevr
-#: doc/guix.texi:15604
+#: doc/guix.texi:18158
 msgid "Sets encryption options.  By default, CUPS only supports encryption using TLS v1.0 or higher using known secure cipher suites.  Security is reduced when @code{Allow} options are used, and enhanced when @code{Deny} options are used.  The @code{AllowRC4} option enables the 128-bit RC4 cipher suites, which are required for some older clients.  The @code{AllowSSL3} option enables SSL v3.0, which is required for some older clients that do not support TLS v1.0.  The @code{DenyCBC} option disables all CBC cipher suites.  The @code{DenyTLS1.0} option disables TLS v1.0 support - this sets the minimum protocol version to TLS v1.1."
 msgstr "Legt Verschlüsselungsoptionen fest. Nach Vorgabe unterstützt CUPS nur Verschlüsselung mit TLS v1.0 oder höher mit bekannten, sicheren „Cipher Suites“. Es ist weniger sicher, Optionen mit @code{Allow} („erlauben“) zu verwenden, und es erhöht die Sicherheit, Optionen mit @code{Deny} („verweigern“) zu benutzen. Die Option @code{AllowRC4} aktiviert die 128-Bit-RC4-Cipher-Suites, die manche alten Clients brauchen. Die Option @code{AllowSSL3} aktiviert SSL v3.0, das manche alte Clients brauchen, die TLS v1.0 nicht implementieren. Die Option @code{DenyCBC} deaktiviert alle CBC-Cipher-Suites. Die Option @code{DenyTLS1.0} deaktiviert Unterstützung für TLS v1.0 — dadurch wird TLS v1.1 zur kleinsten noch unterstützten Protokollversion."
 
 #. type: deftypevr
-#: doc/guix.texi:15608
+#: doc/guix.texi:18162
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} boolean strict-conformance?"
 msgstr "{@code{cups-configuration}-Parameter} Boolescher-Ausdruck strict-conformance?"
 
 #. type: deftypevr
-#: doc/guix.texi:15611
+#: doc/guix.texi:18165
 msgid "Specifies whether the scheduler requires clients to strictly adhere to the IPP specifications."
 msgstr "Gibt an, ob das Druckplanungsprogramm von Clients fordert, dass sie sich strikt an die IPP-Spezifikationen halten."
 
 #. type: deftypevr
-#: doc/guix.texi:15615
+#: doc/guix.texi:18169
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer timeout"
 msgstr "{@code{cups-configuration}-Parameter} Nichtnegative-ganze-Zahl timeout"
 
 #. type: deftypevr
-#: doc/guix.texi:15617
+#: doc/guix.texi:18171
 msgid "Specifies the HTTP request timeout, in seconds."
 msgstr "Gibt die Zeitbeschränkung für HTTP-Anfragen an, in Sekunden."
 
 #. type: deftypevr
-#: doc/guix.texi:15622
+#: doc/guix.texi:18176
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} boolean web-interface?"
 msgstr "{@code{cups-configuration}-Parameter} Boolescher-Ausdruck web-interface?"
 
 #. type: deftypevr
-#: doc/guix.texi:15624
+#: doc/guix.texi:18178
 msgid "Specifies whether the web interface is enabled."
 msgstr "Gibt an, ob die Weboberfläche zur Verfügung gestellt wird."
 
 #. type: Plain text
-#: doc/guix.texi:15634
+#: doc/guix.texi:18188
 msgid "At this point you're probably thinking ``oh dear, Guix manual, I like you but you can stop already with the configuration options''.  Indeed.  However, one more point: it could be that you have an existing @code{cupsd.conf} that you want to use.  In that case, you can pass an @code{opaque-cups-configuration} as the configuration of a @code{cups-service-type}."
 msgstr "Mittlerweile denken Sie wahrscheinlich: „Ich bitte dich, Guix-Handbuch, ich mag dich, aber kannst du jetzt bitte mit den Konfigurationsoptionen aufhören?“ Damit hätten Sie recht. Allerdings sollte ein weitere Punkt noch erwähnt werden: Vielleicht haben Sie eine bestehende @code{cupsd.conf}, die Sie verwenden möchten. In diesem Fall können Sie eine @code{opaque-cups-configuration} als die Konfiguration eines @code{cups-service-type} übergeben."
 
 #. type: Plain text
-#: doc/guix.texi:15636
+#: doc/guix.texi:18190
 msgid "Available @code{opaque-cups-configuration} fields are:"
 msgstr "Verfügbare @code{opaque-cups-configuration}-Felder sind:"
 
 #. type: deftypevr
-#: doc/guix.texi:15637
+#: doc/guix.texi:18191
 #, no-wrap
 msgid "{@code{opaque-cups-configuration} parameter} package cups"
 msgstr "{@code{opaque-cups-configuration}-Parameter} „package“ cups"
 
 #. type: deftypevr
-#: doc/guix.texi:15641
+#: doc/guix.texi:18195
 #, no-wrap
 msgid "{@code{opaque-cups-configuration} parameter} string cupsd.conf"
 msgstr "{@code{opaque-cups-configuration}-Parameter} Zeichenkette cupsd.conf"
 
 #. type: deftypevr
-#: doc/guix.texi:15643
+#: doc/guix.texi:18197
 msgid "The contents of the @code{cupsd.conf}, as a string."
 msgstr "Der Inhalt der Datei @code{cupsd.conf} als eine Zeichenkette."
 
 #. type: deftypevr
-#: doc/guix.texi:15645
+#: doc/guix.texi:18199
 #, no-wrap
 msgid "{@code{opaque-cups-configuration} parameter} string cups-files.conf"
 msgstr "{@code{opaque-cups-configuration}-Parameter} Zeichenkette cups-files.conf"
 
 #. type: deftypevr
-#: doc/guix.texi:15647
+#: doc/guix.texi:18201
 msgid "The contents of the @code{cups-files.conf} file, as a string."
 msgstr "Der Inhalt der Datei @code{cups-files.conf} als eine Zeichenkette."
 
 #. type: Plain text
-#: doc/guix.texi:15652
+#: doc/guix.texi:18206
 msgid "For example, if your @code{cupsd.conf} and @code{cups-files.conf} are in strings of the same name, you could instantiate a CUPS service like this:"
 msgstr "Wenn Ihre @code{cupsd.conf} und @code{cups-files.conf} zum Beispiel in Zeichenketten mit dem entsprechenden Namen definiert sind, könnten Sie auf diese Weise einen CUPS-Dienst instanziieren:"
 
 #. type: lisp
-#: doc/guix.texi:15658
+#: doc/guix.texi:18212
 #, no-wrap
 msgid ""
 "(service cups-service-type\n"
@@ -29416,195 +33739,233 @@ msgstr ""
 "           (cups-files.conf cups-files.conf)))\n"
 
 #. type: Plain text
-#: doc/guix.texi:15669
+#: doc/guix.texi:18223
 msgid "The @code{(gnu services desktop)} module provides services that are usually useful in the context of a ``desktop'' setup---that is, on a machine running a graphical display server, possibly with graphical user interfaces, etc.  It also defines services that provide specific desktop environments like GNOME, Xfce or MATE."
 msgstr "Das Modul @code{(gnu services desktop)} stellt Dienste zur Verfügung, die meistens bei „Desktop“-Einrichtungen für grafische Nutzung praktisch sind — also auf einer Maschine mit einem grafischem Anzeigeserver, vielleicht mit einer grafischen Benutzeroberfläche, usw. Im Modul werden auch Dienste definiert, die bestimmte Arbeitsumgebungen wie GNOME, Xfce oder MATE bereitstellen."
 
 #. type: Plain text
-#: doc/guix.texi:15673
+#: doc/guix.texi:18227
 msgid "To simplify things, the module defines a variable containing the set of services that users typically expect on a machine with a graphical environment and networking:"
 msgstr "Um es einfacher zu machen, definiert das Modul auch eine Variable mit denjenigen Diensten, die man auf einer Maschine mit einer grafischen Umgebung und Netzwerkunterstützung erwarten würde:"
 
 #. type: defvr
-#: doc/guix.texi:15674
+#: doc/guix.texi:18228
 #, no-wrap
 msgid "{Scheme Variable} %desktop-services"
 msgstr "{Scheme-Variable} %desktop-services"
 
 #. type: defvr
-#: doc/guix.texi:15677
+#: doc/guix.texi:18231
 msgid "This is a list of services that builds upon @code{%base-services} and adds or adjusts services for a typical ``desktop'' setup."
 msgstr "Dies ist eine Liste von Diensten, die @code{%base-services} ergänzt und weitere Dienste hinzufügt oder bestehende anpasst, um für eine normale „Desktop“-Nutzung geeignet zu sein."
 
 #. type: defvr
-#: doc/guix.texi:15688
+#: doc/guix.texi:18242
 msgid "In particular, it adds a graphical login manager (@pxref{X Window, @code{gdm-service-type}}), screen lockers, a network management tool (@pxref{Networking Services, @code{network-manager-service-type}}) with modem support (@pxref{Networking Services, @code{modem-manager-service-type}}), energy and color management services, the @code{elogind} login and seat manager, the Polkit privilege service, the GeoClue location service, the AccountsService daemon that allows authorized users change system passwords, an NTP client (@pxref{Networking Services}), the Avahi daemon, and has the name service switch service configured to be able to use @code{nss-mdns} (@pxref{Name Service Switch, mDNS})."
 msgstr "Insbesondere wird eine grafische Anmeldeverwaltung hinzugefügt (siehe @ref{X Window, @code{gdm-service-type}}), ebenso Programme zur Bildschirmsperre, ein Werkzeug zur Netzwerkverwaltung (siehe @ref{Networking Services, @code{network-manager-service-type}}) mit Unterstützung für Modems (siehe @ref{Networking Services, @code{modem-manager-service-type}}), Energieverbrauchs- und Farbverwaltungsdienste, Anmeldungs- und Sitzungsverwaltung über @code{elogind}, der Berechtigungsdienst Polkit, der Ortungsdienst GeoClue, der AccountsService-Daemon, mit dem autorisierte Benutzer Systempasswörter ändern können, ein NTP-Client (siehe @ref{Networking Services}) und der Avahi-Daemon. Außerdem wird der Name Service Switch konfiguriert, damit er @code{nss-mdns} benutzt (siehe @ref{Name Service Switch, mDNS})."
 
 #. type: Plain text
-#: doc/guix.texi:15693
+#: doc/guix.texi:18247
 msgid "The @code{%desktop-services} variable can be used as the @code{services} field of an @code{operating-system} declaration (@pxref{operating-system Reference, @code{services}})."
 msgstr "Die @code{%desktop-services}-Variable kann als das @code{services}-Feld einer @code{operating-system}-Deklaration genutzt werden (siehe @ref{operating-system Reference, @code{services}})."
 
 #. type: Plain text
-#: doc/guix.texi:15716
-msgid "Additionally, the @code{gnome-desktop-service-type}, @code{xfce-desktop-service}, @code{mate-desktop-service-type} and @code{enlightenment-desktop-service-type} procedures can add GNOME, Xfce, MATE and/or Enlightenment to a system.  To ``add GNOME'' means that system-level services like the backlight adjustment helpers and the power management utilities are added to the system, extending @code{polkit} and @code{dbus} appropriately, allowing GNOME to operate with elevated privileges on a limited number of special-purpose system interfaces.  Additionally, adding a service made by @code{gnome-desktop-service-type} adds the GNOME metapackage to the system profile.  Likewise, adding the Xfce service not only adds the @code{xfce} metapackage to the system profile, but it also gives the Thunar file manager the ability to open a ``root-mode'' file management window, if the user authenticates using the administrator's password via the standard polkit graphical interface.  To ``add MATE'' means that @code{polkit} and @code{dbus} are extended appropriately, allowing MATE to operate with elevated privileges on a limited number of special-purpose system interfaces.  Additionally, adding a service of type @code{mate-desktop-service-type} adds the MATE metapackage to the system profile.  ``Adding Enlightenment'' means that @code{dbus} is extended appropriately, and several of Enlightenment's binaries are set as setuid, allowing Enlightenment's screen locker and other functionality to work as expected."
-msgstr "Daneben können die Prozeduren @code{gnome-desktop-service-type}, @code{xfce-desktop-service}, @code{mate-desktop-service-type} und @code{enlightenment-desktop-service-type} jeweils GNOME, Xfce, MATE und/oder Enlightenment zu einem System hinzufügen. „GNOME hinzufügen“ bedeutet, dass Dienste auf Systemebene wie z.B.@: Hilfsprogramme zur Anpassung der Hintergrundbeleuchtung und des Energieverbrauchs zum System hinzugefügt werden und @code{polkit} und @code{dbus} entsprechend erweitert werden, wodurch GNOME mit erhöhten Berechtigungen auf eine begrenzte Zahl von speziellen Systemschnittstellen zugreifen kann. Zusätzlich bedeutet das Hinzufügen eines durch @code{gnome-desktop-service-type} erzeugten Dienstes, dass das GNOME-Metapaket ins Systemprofil eingefügt wird. Genauso wird beim Einfügen des Xfce-Dienstes nicht nur das @code{xfce}-Metapaket zum Systemprofil hinzugefügt, sondern dem Thunar-Dateiverwaltungsprogramm wird auch die Berechtigung gegeben, ein Fenster mit Administratorrechten zu öffnen, wenn der Benutzer sich mit dem Administratorpasswort über die standardmäßige grafische Oberfläche von Polkit authentisiert. „MATE hinzufügen“ bedeutet, dass @code{polkit} und @code{dbus} entsprechend erweitert werden, wodurch MATE mit erhöhten Berechtigungen auf eine begrenzte Zahl von speziellen Systemschnittstellen zugreifen kann. Zusätzlich bedeutet das Hinzufügen eines durch @code{mate-desktop-service-type} erzeugten Dienstes, dass das MATE-Metapaket ins Systemprofil eingefügt wird. „Enlightenment hinzufügen“ bedeutet, dass @code{dbus} entsprechend erweitert wird und mehrere Binärdateien von Enlightenment als setuid eingerichtet werden, wodurch das Programm zum Sperren des Bildschirms und andere Funktionen von Enlightenment wie erwartet funktionieren."
+#: doc/guix.texi:18270
+msgid "Additionally, the @code{gnome-desktop-service-type}, @code{xfce-desktop-service}, @code{mate-desktop-service-type}, @code{lxqt-desktop-service-type} and @code{enlightenment-desktop-service-type} procedures can add GNOME, Xfce, MATE and/or Enlightenment to a system.  To ``add GNOME'' means that system-level services like the backlight adjustment helpers and the power management utilities are added to the system, extending @code{polkit} and @code{dbus} appropriately, allowing GNOME to operate with elevated privileges on a limited number of special-purpose system interfaces.  Additionally, adding a service made by @code{gnome-desktop-service-type} adds the GNOME metapackage to the system profile.  Likewise, adding the Xfce service not only adds the @code{xfce} metapackage to the system profile, but it also gives the Thunar file manager the ability to open a ``root-mode'' file management window, if the user authenticates using the administrator's password via the standard polkit graphical interface.  To ``add MATE'' means that @code{polkit} and @code{dbus} are extended appropriately, allowing MATE to operate with elevated privileges on a limited number of special-purpose system interfaces.  Additionally, adding a service of type @code{mate-desktop-service-type} adds the MATE metapackage to the system profile.  ``Adding Enlightenment'' means that @code{dbus} is extended appropriately, and several of Enlightenment's binaries are set as setuid, allowing Enlightenment's screen locker and other functionality to work as expected."
+msgstr "Daneben können die Prozeduren @code{gnome-desktop-service-type}, @code{xfce-desktop-service}, @code{mate-desktop-service-type}, @code{lxqt-desktop-service-type} und @code{enlightenment-desktop-service-type} jeweils GNOME, Xfce, MATE und/oder Enlightenment zu einem System hinzufügen. „GNOME hinzufügen“ bedeutet, dass Dienste auf Systemebene wie z.B.@: Hilfsprogramme zur Anpassung der Hintergrundbeleuchtung und des Energieverbrauchs zum System hinzugefügt werden und @code{polkit} und @code{dbus} entsprechend erweitert werden, wodurch GNOME mit erhöhten Berechtigungen auf eine begrenzte Zahl von speziellen Systemschnittstellen zugreifen kann. Zusätzlich bedeutet das Hinzufügen eines durch @code{gnome-desktop-service-type} erzeugten Dienstes, dass das GNOME-Metapaket ins Systemprofil eingefügt wird. Genauso wird beim Einfügen des Xfce-Dienstes nicht nur das @code{xfce}-Metapaket zum Systemprofil hinzugefügt, sondern dem Thunar-Dateiverwaltungsprogramm wird auch die Berechtigung gegeben, ein Fenster mit Administratorrechten zu öffnen, wenn der Benutzer sich mit dem Administratorpasswort über die standardmäßige grafische Oberfläche von Polkit authentisiert. „MATE hinzufügen“ bedeutet, dass @code{polkit} und @code{dbus} entsprechend erweitert werden, wodurch MATE mit erhöhten Berechtigungen auf eine begrenzte Zahl von speziellen Systemschnittstellen zugreifen kann. Zusätzlich bedeutet das Hinzufügen eines durch @code{mate-desktop-service-type} erzeugten Dienstes, dass das MATE-Metapaket ins Systemprofil eingefügt wird. „Enlightenment hinzufügen“ bedeutet, dass @code{dbus} entsprechend erweitert wird und mehrere Binärdateien von Enlightenment als setuid eingerichtet werden, wodurch das Programm zum Sperren des Bildschirms und andere Funktionen von Enlightenment wie erwartet funktionieren."
 
 #. type: Plain text
-#: doc/guix.texi:15725
+#: doc/guix.texi:18279
 msgid "The desktop environments in Guix use the Xorg display server by default.  If you'd like to use the newer display server protocol called Wayland, you need to use the @code{sddm-service} instead of GDM as the graphical login manager.  You should then select the ``GNOME (Wayland)'' session in SDDM.  Alternatively you can also try starting GNOME on Wayland manually from a TTY with the command ``XDG_SESSION_TYPE=wayland exec dbus-run-session gnome-session``.  Currently only GNOME has support for Wayland."
 msgstr "Die Arbeitsumgebungen in Guix benutzen standardmäßig den Xorg-Anzeigeserver. Falls Sie das neuere Anzeigeserverprotokoll namens Wayland benutzen möchten, müssen Sie den Dienst @code{sddm-service} anstelle von GDM für die grafische Anmeldeverwaltung einrichten. Dann sollten Sie in SDDM die Sitzung  „GNOME (Wayland)“ auswählen. Alternativ können Sie auch versuchen, GNOME mit Wayland manuell aus einer Konsole (TTY) mit dem Befehl „XDG_SESSION_TYPE=wayland exec dbus-run-session gnome-session“ zu starten. Derzeit wird Wayland nur von GNOME unterstützt."
 
 #. type: defvr
-#: doc/guix.texi:15726
+#: doc/guix.texi:18280
 #, no-wrap
 msgid "{Scheme Variable} gnome-desktop-service-type"
 msgstr "{Scheme-Variable} gnome-desktop-service-type"
 
 #. type: defvr
-#: doc/guix.texi:15730
-msgid "This is the type of the service that adds the @uref{https://www.gnome.org, GNOME} desktop environment.  Its value is a @code{gnome-desktop-configuration} object (see below.)"
+#: doc/guix.texi:18284
+msgid "This is the type of the service that adds the @uref{https://www.gnome.org, GNOME} desktop environment.  Its value is a @code{gnome-desktop-configuration} object (see below)."
 msgstr "Dies ist der Typ des Dienstes, der die @uref{https://www.gnome.org, GNOME-Arbeitsumgebung} bereitstellt. Sein Wert ist ein @code{gnome-desktop-configuration}-Objekt (siehe unten)."
 
 #. type: defvr
-#: doc/guix.texi:15733
+#: doc/guix.texi:18287
 msgid "This service adds the @code{gnome} package to the system profile, and extends polkit with the actions from @code{gnome-settings-daemon}."
 msgstr "Dieser Dienst fügt das @code{gnome}-Paket zum Systemprofil hinzu und erweitert Polkit um die von @code{gnome-settings-daemon} benötigten Aktionen."
 
 #. type: deftp
-#: doc/guix.texi:15735
+#: doc/guix.texi:18289
 #, no-wrap
 msgid "{Data Type} gnome-desktop-configuration"
 msgstr "{Datentyp} gnome-desktop-configuration"
 
 #. type: deftp
-#: doc/guix.texi:15737
+#: doc/guix.texi:18291
 msgid "Configuration record for the GNOME desktop environment."
 msgstr "Verbundsobjekt für die Konfiguration der GNOME-Arbeitsumgebung."
 
 #. type: item
-#: doc/guix.texi:15739
+#: doc/guix.texi:18293
 #, no-wrap
 msgid "@code{gnome} (default: @code{gnome})"
 msgstr "@code{gnome} (Vorgabe: @code{gnome})"
 
 #. type: table
-#: doc/guix.texi:15741
+#: doc/guix.texi:18295
 msgid "The GNOME package to use."
 msgstr "Welches GNOME-Paket benutzt werden soll."
 
 #. type: defvr
-#: doc/guix.texi:15744
+#: doc/guix.texi:18298
 #, no-wrap
 msgid "{Scheme Variable} xfce-desktop-service-type"
 msgstr "{Scheme-Variable} xfce-desktop-service-type"
 
 #. type: defvr
-#: doc/guix.texi:15748
-msgid "This is the type of a service to run the @uref{Xfce, https://xfce.org/} desktop environment.  Its value is an @code{xfce-desktop-configuration} object (see below.)"
+#: doc/guix.texi:18302
+msgid "This is the type of a service to run the @uref{Xfce, https://xfce.org/} desktop environment.  Its value is an @code{xfce-desktop-configuration} object (see below)."
 msgstr "Der Typ des Dienstes, um die @uref{https://xfce.org/, Xfce-Arbeitsumgebung} auszuführen. Sein Wert ist ein @code{xfce-desktop-configuration}-Objekt (siehe unten)."
 
 #. type: defvr
-#: doc/guix.texi:15753
+#: doc/guix.texi:18307
 msgid "This service adds the @code{xfce} package to the system profile, and extends polkit with the ability for @code{thunar} to manipulate the file system as root from within a user session, after the user has authenticated with the administrator's password."
 msgstr "Dieser Dienst fügt das Paket @code{xfce} zum Systemprofil hinzu und erweitert Polkit, damit @code{thunar} befähigt wird, das Dateisystem aus einer Benutzersitzung heraus mit Administratorrechten zu bearbeiten, nachdem sich der Benutzer mit dem Administratorpasswort authentisiert hat."
 
 #. type: deftp
-#: doc/guix.texi:15755
+#: doc/guix.texi:18309
 #, no-wrap
 msgid "{Data Type} xfce-desktop-configuration"
 msgstr "{Datentyp} xfce-desktop-configuration"
 
 #. type: deftp
-#: doc/guix.texi:15757
+#: doc/guix.texi:18311
 msgid "Configuration record for the Xfce desktop environment."
 msgstr "Verbundstyp für Einstellungen zur Xfce-Arbeitsumgebung."
 
 #. type: item
-#: doc/guix.texi:15759
+#: doc/guix.texi:18313
 #, no-wrap
 msgid "@code{xfce} (default: @code{xfce})"
 msgstr "@code{xfce} (Vorgabe: @code{xfce})"
 
 #. type: table
-#: doc/guix.texi:15761
+#: doc/guix.texi:18315
 msgid "The Xfce package to use."
 msgstr "Das Xfce-Paket, was benutzt werden soll."
 
 #. type: deffn
-#: doc/guix.texi:15764
+#: doc/guix.texi:18318
 #, no-wrap
 msgid "{Scheme Variable} mate-desktop-service-type"
 msgstr "{Scheme-Variable} mate-desktop-service-type"
 
 #. type: deffn
-#: doc/guix.texi:15768
-msgid "This is the type of the service that runs the @uref{https://mate-desktop.org/, MATE desktop environment}.  Its value is a @code{mate-desktop-configuration} object (see below.)"
+#: doc/guix.texi:18322
+msgid "This is the type of the service that runs the @uref{https://mate-desktop.org/, MATE desktop environment}.  Its value is a @code{mate-desktop-configuration} object (see below)."
 msgstr "Dies ist der Typ des Dienstes, um die @uref{https://mate-desktop.org/, MATE-Arbeitsumgebung} auszuführen. Sein Wert ist ein @code{mate-desktop-configuration}-Objekt (siehe unten)."
 
 #. type: deffn
-#: doc/guix.texi:15772
+#: doc/guix.texi:18326
 msgid "This service adds the @code{mate} package to the system profile, and extends polkit with the actions from @code{mate-settings-daemon}."
 msgstr "Dieser Dienst fügt das Paket @code{mate} ins Systemprofil ein und erweitert Polkit um die Aktionen aus dem @code{mate-settings-daemon}."
 
 #. type: deftp
-#: doc/guix.texi:15774
+#: doc/guix.texi:18328
 #, no-wrap
 msgid "{Data Type} mate-desktop-configuration"
 msgstr "{Datentyp} mate-desktop-configuration"
 
 #. type: deftp
-#: doc/guix.texi:15776
+#: doc/guix.texi:18330
 msgid "Configuration record for the MATE desktop environment."
 msgstr "Verbundstyp für die Einstellungen der MATE-Arbeitsumgebung."
 
 #. type: item
-#: doc/guix.texi:15778
+#: doc/guix.texi:18332
 #, no-wrap
 msgid "@code{mate} (default: @code{mate})"
 msgstr "@code{mate} (Vorgabe: @code{mate})"
 
 #. type: table
-#: doc/guix.texi:15780
+#: doc/guix.texi:18334
 msgid "The MATE package to use."
 msgstr "Das MATE-Paket, was benutzt werden soll."
 
 #. type: deffn
-#: doc/guix.texi:15783
+#: doc/guix.texi:18337
+#, no-wrap
+msgid "{Scheme Variable} lxqt-desktop-service-type"
+msgstr "{Scheme-Variable} lxqt-desktop-service-type"
+
+#. type: deffn
+#: doc/guix.texi:18341
+msgid "This is the type of the service that runs the @uref{https://lxqt.github.io, LXQt desktop environment}.  Its value is a @code{lxqt-desktop-configuration} object (see below)."
+msgstr "Dies ist der Typ des Dienstes, um die @uref{https://lxqt.github.io, LXQt-Arbeitsumgebung} auszuführen. Sein Wert ist ein @code{lxqt-desktop-configuration}-Objekt (siehe unten)."
+
+#. type: deffn
+#: doc/guix.texi:18344
+msgid "This service adds the @code{lxqt} package to the system profile."
+msgstr "Dieser Dienst fügt das Paket @code{lxqt} ins Systemprofil ein."
+
+#. type: deftp
+#: doc/guix.texi:18346
+#, no-wrap
+msgid "{Data Type} lxqt-desktop-configuration"
+msgstr "{Datentyp} lxqt-desktop-configuration"
+
+#. type: deftp
+#: doc/guix.texi:18348
+msgid "Configuration record for the LXQt desktop environment."
+msgstr "Verbundstyp für Einstellungen zur LXQt-Arbeitsumgebung."
+
+#. type: item
+#: doc/guix.texi:18350
+#, no-wrap
+msgid "@code{lxqt} (default: @code{lxqt})"
+msgstr "@code{lxqt} (Vorgabe: @code{lxqt})"
+
+#. type: table
+#: doc/guix.texi:18352
+msgid "The LXQT package to use."
+msgstr "Das LXQT-Paket, was benutzt werden soll."
+
+#. type: deffn
+#: doc/guix.texi:18355
 #, no-wrap
 msgid "{Scheme Variable} enlightenment-desktop-service-type"
 msgstr "{Scheme-Variable} enlightenment-desktop-service-type"
 
 #. type: deffn
-#: doc/guix.texi:15786
+#: doc/guix.texi:18358
 msgid "Return a service that adds the @code{enlightenment} package to the system profile, and extends dbus with actions from @code{efl}."
 msgstr "Liefert einen Dienst, der das @code{enlightenment}-Paket zum Systemprofil hinzufügt und D-Bus mit den Aktionen aus @code{efl} erweitert."
 
 #. type: deftp
-#: doc/guix.texi:15788
+#: doc/guix.texi:18360
 #, no-wrap
 msgid "{Data Type} enlightenment-desktop-service-configuration"
 msgstr "{Datentyp} enlightenment-desktop-service-configuration"
 
 #. type: item
-#: doc/guix.texi:15790
+#: doc/guix.texi:18362
 #, no-wrap
 msgid "@code{enlightenment} (default: @code{enlightenment})"
 msgstr "@code{enlightenment} (Vorgabe: @code{enlightenment})"
 
 #. type: table
-#: doc/guix.texi:15792
+#: doc/guix.texi:18364
 msgid "The enlightenment package to use."
 msgstr "Das Enlightenment-Paket, was benutzt werden soll."
 
 #. type: Plain text
-#: doc/guix.texi:15800
+#: doc/guix.texi:18372
 msgid "Because the GNOME, Xfce and MATE desktop services pull in so many packages, the default @code{%desktop-services} variable doesn't include any of them by default.  To add GNOME, Xfce or MATE, just @code{cons} them onto @code{%desktop-services} in the @code{services} field of your @code{operating-system}:"
 msgstr "Weil die Desktopdienste GNOME, Xfce und MATE so viele Pakete ins System mitnehmen, gehören diese nicht zu den Vorgaben in der @code{%desktop-services}-Variablen. Um GNOME, Xfce oder MATE hinzuzufügen, benutzen Sie einfach @code{cons} zum Anhängen an die @code{%desktop-services} im @code{services}-Feld Ihrer @code{operating-system}-Deklaration:"
 
 #. type: lisp
-#: doc/guix.texi:15811
+#: doc/guix.texi:18383
 #, no-wrap
 msgid ""
 "(use-modules (gnu))\n"
@@ -29628,753 +33989,759 @@ msgstr ""
 "  …)\n"
 
 #. type: Plain text
-#: doc/guix.texi:15815
+#: doc/guix.texi:18387
 msgid "These desktop environments will then be available as options in the graphical login window."
 msgstr "Diese Arbeitsumgebungen stehen dann im grafischen Anmeldefenster zur Auswahl."
 
 #. type: Plain text
-#: doc/guix.texi:15819
+#: doc/guix.texi:18391
 msgid "The actual service definitions included in @code{%desktop-services} and provided by @code{(gnu services dbus)} and @code{(gnu services desktop)} are described below."
 msgstr "Die eigentlichen Dienstdefinitionen, die in @code{%desktop-services} stehen und durch @code{(gnu services dbus)} und @code{(gnu services desktop)} zur Verfügung gestellt werden, werden im Folgenden beschrieben."
 
 #. type: deffn
-#: doc/guix.texi:15820
+#: doc/guix.texi:18392
 #, no-wrap
 msgid "{Scheme Procedure} dbus-service [#:dbus @var{dbus}] [#:services '()]"
 msgstr "{Scheme-Prozedur} dbus-service [#:dbus @var{dbus}] [#:services '()]"
 
 #. type: deffn
-#: doc/guix.texi:15823
+#: doc/guix.texi:18395
 msgid "Return a service that runs the ``system bus'', using @var{dbus}, with support for @var{services}."
 msgstr "Liefert einen Dienst, der den „Systembus“ mit @var{dbus} ausführt, mit Unterstützung für die als @var{services} übergebenen Dienste."
 
 #. type: deffn
-#: doc/guix.texi:15827
+#: doc/guix.texi:18399
 msgid "@uref{https://dbus.freedesktop.org/, D-Bus} is an inter-process communication facility.  Its system bus is used to allow system services to communicate and to be notified of system-wide events."
 msgstr "@uref{https://dbus.freedesktop.org/, D-Bus} ist eine Einrichtung zur Interprozesskommunikation. Deren Systembus wird benutzt, damit Systemdienste miteinander kommunizieren können und damit sie bei systemweiten Ereignissen benachrichtigt werden können."
 
 #. type: deffn
-#: doc/guix.texi:15832
+#: doc/guix.texi:18404
 msgid "@var{services} must be a list of packages that provide an @file{etc/dbus-1/system.d} directory containing additional D-Bus configuration and policy files.  For example, to allow avahi-daemon to use the system bus, @var{services} must be equal to @code{(list avahi)}."
 msgstr "Als @var{services} muss eine Liste von Paketen übergeben werden, die ein Verzeichnis @file{etc/dbus-1/system.d} mit zusätzlichen D-Bus-Konfigurations- und Richtliniendateien enthalten. Damit zum Beispiel der Avahi-Daemon den Systembus benutzen kann, muss @var{services} gleich @code{(list avahi)} sein."
 
 #. type: deffn
-#: doc/guix.texi:15834
+#: doc/guix.texi:18406
 #, no-wrap
 msgid "{Scheme Procedure} elogind-service [#:config @var{config}]"
 msgstr "{Scheme-Prozedur} elogind-service [#:config @var{Konfiguration}]"
 
 #. type: deffn
-#: doc/guix.texi:15840
+#: doc/guix.texi:18412
 msgid "Return a service that runs the @code{elogind} login and seat management daemon.  @uref{https://github.com/elogind/elogind, Elogind} exposes a D-Bus interface that can be used to know which users are logged in, know what kind of sessions they have open, suspend the system, inhibit system suspend, reboot the system, and other tasks."
 msgstr "Liefert einen Dienst, der den Anmelde- und Sitzungsdaemon @code{elogind} ausführt. @uref{https://github.com/elogind/elogind, Elogind} stellt eine D-Bus-Schnittstelle bereit, über die ausgelesen werden kann, welche Benutzer angemeldet sind und welche Sitzungen sie geöffnet haben, und außerdem das System in Bereitschaft versetzt werden kann, der Bereitschaftsmodus unterdrückt werden kann, das System neu gestartet werden kann und anderes."
 
 #. type: deffn
-#: doc/guix.texi:15844
+#: doc/guix.texi:18416
 msgid "Elogind handles most system-level power events for a computer, for example suspending the system when a lid is closed, or shutting it down when the power button is pressed."
 msgstr "Die meisten Energieereignisse auf Systemebene in einem Rechner werden von elogind behandelt, wie etwa ein Versetzen des Systems in Bereitschaft, wenn der Rechner zugeklappt wird, oder ein Herunterfahren beim Drücken des Stromschalters."
 
 #. type: deffn
-#: doc/guix.texi:15849
+#: doc/guix.texi:18421
 msgid "The @var{config} keyword argument specifies the configuration for elogind, and should be the result of an @code{(elogind-configuration (@var{parameter} @var{value})...)} invocation.  Available parameters and their default values are:"
 msgstr "Das @var{config}-Schlüsselwort gibt die Konfiguration für elogind an und sollte das Ergebnis eines Aufrufs von @code{(elogind-configuration (@var{Parameter} @var{Wert})...)} sein. Verfügbare Parameter und ihre Vorgabewerte sind:"
 
 #. type: item
-#: doc/guix.texi:15851
+#: doc/guix.texi:18423
 #, no-wrap
 msgid "kill-user-processes?"
 msgstr "kill-user-processes?"
 
 #. type: code{#1}
-#: doc/guix.texi:15853 doc/guix.texi:15871 doc/guix.texi:15873
-#: doc/guix.texi:15875 doc/guix.texi:15887
+#: doc/guix.texi:18425 doc/guix.texi:18445 doc/guix.texi:18447
+#: doc/guix.texi:18449 doc/guix.texi:18461
 msgid "#f"
 msgstr "#f"
 
 #. type: item
-#: doc/guix.texi:15853
+#: doc/guix.texi:18425
 #, no-wrap
 msgid "kill-only-users"
 msgstr "kill-only-users"
 
 #. type: code{#1}
-#: doc/guix.texi:15855 doc/guix.texi:15893
+#: doc/guix.texi:18427 doc/guix.texi:18467
 msgid "()"
 msgstr "()"
 
 #. type: item
-#: doc/guix.texi:15855
+#: doc/guix.texi:18427
 #, no-wrap
 msgid "kill-exclude-users"
 msgstr "kill-exclude-users"
 
 #. type: code{#1}
-#: doc/guix.texi:15857
+#: doc/guix.texi:18429
 msgid "(\"root\")"
 msgstr "(\"root\")"
 
 #. type: item
-#: doc/guix.texi:15857
+#: doc/guix.texi:18429
 #, no-wrap
 msgid "inhibit-delay-max-seconds"
 msgstr "inhibit-delay-max-seconds"
 
 #. type: code{#1}
-#: doc/guix.texi:15859
+#: doc/guix.texi:18431
 msgid "5"
 msgstr "5"
 
 #. type: item
-#: doc/guix.texi:15859
+#: doc/guix.texi:18431
 #, no-wrap
 msgid "handle-power-key"
 msgstr "handle-power-key"
 
 #. type: code{#1}
-#: doc/guix.texi:15861
+#: doc/guix.texi:18433
 msgid "poweroff"
 msgstr "poweroff"
 
 #. type: item
-#: doc/guix.texi:15861
+#: doc/guix.texi:18433
 #, no-wrap
 msgid "handle-suspend-key"
 msgstr "handle-suspend-key"
 
 #. type: code{#1}
-#: doc/guix.texi:15863 doc/guix.texi:15867
+#: doc/guix.texi:18435 doc/guix.texi:18439
 msgid "suspend"
 msgstr "suspend"
 
 #. type: item
-#: doc/guix.texi:15863
+#: doc/guix.texi:18435
 #, no-wrap
 msgid "handle-hibernate-key"
 msgstr "handle-hibernate-key"
 
 #. type: code{#1}
-#: doc/guix.texi:15865
+#: doc/guix.texi:18437
 msgid "hibernate"
 msgstr "hibernate"
 
 #. type: item
-#: doc/guix.texi:15865
+#: doc/guix.texi:18437
 #, no-wrap
 msgid "handle-lid-switch"
 msgstr "handle-lid-switch"
 
 #. type: item
-#: doc/guix.texi:15867
+#: doc/guix.texi:18439
 #, no-wrap
 msgid "handle-lid-switch-docked"
 msgstr "handle-lid-switch-docked"
 
 #. type: code{#1}
-#: doc/guix.texi:15869 doc/guix.texi:15881
+#: doc/guix.texi:18441 doc/guix.texi:18443 doc/guix.texi:18455
 msgid "ignore"
 msgstr "ignore"
 
 #. type: item
-#: doc/guix.texi:15869
+#: doc/guix.texi:18441
+#, no-wrap
+msgid "handle-lid-switch-external-power"
+msgstr "handle-lid-switch-external-power"
+
+#. type: item
+#: doc/guix.texi:18443
 #, no-wrap
 msgid "power-key-ignore-inhibited?"
 msgstr "power-key-ignore-inhibited?"
 
 #. type: item
-#: doc/guix.texi:15871
+#: doc/guix.texi:18445
 #, no-wrap
 msgid "suspend-key-ignore-inhibited?"
 msgstr "suspend-key-ignore-inhibited?"
 
 #. type: item
-#: doc/guix.texi:15873
+#: doc/guix.texi:18447
 #, no-wrap
 msgid "hibernate-key-ignore-inhibited?"
 msgstr "hibernate-key-ignore-inhibited?"
 
 #. type: item
-#: doc/guix.texi:15875
+#: doc/guix.texi:18449
 #, no-wrap
 msgid "lid-switch-ignore-inhibited?"
 msgstr "lid-switch-ignore-inhibited?"
 
 #. type: code{#1}
-#: doc/guix.texi:15877 doc/guix.texi:15889
+#: doc/guix.texi:18451 doc/guix.texi:18463
 msgid "#t"
 msgstr "#t"
 
 #. type: item
-#: doc/guix.texi:15877
+#: doc/guix.texi:18451
 #, no-wrap
 msgid "holdoff-timeout-seconds"
 msgstr "holdoff-timeout-seconds"
 
 #. type: code{#1}
-#: doc/guix.texi:15879
+#: doc/guix.texi:18453
 msgid "30"
 msgstr "30"
 
 #. type: item
-#: doc/guix.texi:15879
+#: doc/guix.texi:18453
 #, no-wrap
 msgid "idle-action"
 msgstr "idle-action"
 
 #. type: item
-#: doc/guix.texi:15881
+#: doc/guix.texi:18455
 #, no-wrap
 msgid "idle-action-seconds"
 msgstr "idle-action-seconds"
 
 #. type: code{#1}
-#: doc/guix.texi:15883
+#: doc/guix.texi:18457
 msgid "(* 30 60)"
 msgstr "(* 30 60)"
 
 #. type: item
-#: doc/guix.texi:15883
+#: doc/guix.texi:18457
 #, no-wrap
 msgid "runtime-directory-size-percent"
 msgstr "runtime-directory-size-percent"
 
 #. type: code{#1}
-#: doc/guix.texi:15885
+#: doc/guix.texi:18459
 msgid "10"
 msgstr "10"
 
 #. type: item
-#: doc/guix.texi:15885
+#: doc/guix.texi:18459
 #, no-wrap
 msgid "runtime-directory-size"
 msgstr "runtime-directory-size"
 
 #. type: item
-#: doc/guix.texi:15887
+#: doc/guix.texi:18461
 #, no-wrap
 msgid "remove-ipc?"
 msgstr "remove-ipc?"
 
 #. type: item
-#: doc/guix.texi:15889
+#: doc/guix.texi:18463
 #, no-wrap
 msgid "suspend-state"
 msgstr "suspend-state"
 
 #. type: code{#1}
-#: doc/guix.texi:15891
+#: doc/guix.texi:18465
 msgid "(\"mem\" \"standby\" \"freeze\")"
 msgstr "(\"mem\" \"standby\" \"freeze\")"
 
 #. type: item
-#: doc/guix.texi:15891
+#: doc/guix.texi:18465
 #, no-wrap
 msgid "suspend-mode"
 msgstr "suspend-mode"
 
 #. type: item
-#: doc/guix.texi:15893
+#: doc/guix.texi:18467
 #, no-wrap
 msgid "hibernate-state"
 msgstr "hibernate-state"
 
 #. type: code{#1}
-#: doc/guix.texi:15895 doc/guix.texi:15899
+#: doc/guix.texi:18469 doc/guix.texi:18473
 msgid "(\"disk\")"
 msgstr "(\"disk\")"
 
 #. type: item
-#: doc/guix.texi:15895
+#: doc/guix.texi:18469
 #, no-wrap
 msgid "hibernate-mode"
 msgstr "hibernate-mode"
 
 #. type: code{#1}
-#: doc/guix.texi:15897
+#: doc/guix.texi:18471
 msgid "(\"platform\" \"shutdown\")"
 msgstr "(\"platform\" \"shutdown\")"
 
 #. type: item
-#: doc/guix.texi:15897
+#: doc/guix.texi:18471
 #, no-wrap
 msgid "hybrid-sleep-state"
 msgstr "hybrid-sleep-state"
 
 #. type: item
-#: doc/guix.texi:15899
+#: doc/guix.texi:18473
 #, no-wrap
 msgid "hybrid-sleep-mode"
 msgstr "hybrid-sleep-mode"
 
 #. type: code{#1}
-#: doc/guix.texi:15901
+#: doc/guix.texi:18475
 msgid "(\"suspend\" \"platform\" \"shutdown\")"
 msgstr "(\"suspend\" \"platform\" \"shutdown\")"
 
 #. type: deffn
-#: doc/guix.texi:15904
+#: doc/guix.texi:18478
 #, no-wrap
 msgid "{Scheme Procedure} accountsservice-service @"
 msgstr "{Scheme-Prozedur} accountsservice-service @"
 
 #. type: deffn
-#: doc/guix.texi:15912
+#: doc/guix.texi:18486
 msgid "[#:accountsservice @var{accountsservice}] Return a service that runs AccountsService, a system service that can list available accounts, change their passwords, and so on.  AccountsService integrates with PolicyKit to enable unprivileged users to acquire the capability to modify their system configuration.  @uref{https://www.freedesktop.org/wiki/Software/AccountsService/, the accountsservice web site} for more information."
 msgstr "[#:accountsservice @var{accountsservice}] Liefert einen Dienst, der AccountsService ausführt. Dabei handelt es sich um einen Systemdienst, mit dem verfügbare Benutzerkonten aufgelistet und deren Passwörter geändert werden können, und Ähnliches. AccountsService arbeitet mit PolicyKit zusammen, um es Benutzern ohne besondere Berechtigungen zu ermöglichen, ihre Systemkonfiguration zu ändern. Siehe @uref{https://www.freedesktop.org/wiki/Software/AccountsService/, den Webauftritt von AccountsService} für weitere Informationen."
 
 #. type: deffn
-#: doc/guix.texi:15915
+#: doc/guix.texi:18489
 msgid "The @var{accountsservice} keyword argument is the @code{accountsservice} package to expose as a service."
 msgstr "Das Schlüsselwortargument @var{accountsservice} gibt das @code{accountsservice}-Paket an, das als Dienst verfügbar gemacht wird."
 
 #. type: deffn
-#: doc/guix.texi:15917
+#: doc/guix.texi:18491
 #, no-wrap
 msgid "{Scheme Procedure} polkit-service @"
 msgstr "{Scheme-Prozedur} polkit-service @"
 
 #. type: deffn
-#: doc/guix.texi:15926
+#: doc/guix.texi:18500
 msgid "[#:polkit @var{polkit}] Return a service that runs the @uref{https://www.freedesktop.org/wiki/Software/polkit/, Polkit privilege management service}, which allows system administrators to grant access to privileged operations in a structured way.  By querying the Polkit service, a privileged system component can know when it should grant additional capabilities to ordinary users.  For example, an ordinary user can be granted the capability to suspend the system if the user is logged in locally."
 msgstr "[#:polkit @var{polkit}] Liefert einen Dienst, der @uref{https://www.freedesktop.org/wiki/Software/polkit/, Polkit als Dienst zur Verwaltung von Berechtigungen} ausführt, wodurch Systemadministratoren auf strukturierte Weise den Zugang zu „privilegierten“ Operationen gewähren können, die erweiterte Berechtigungen erfordern. Indem der Polkit-Dienst angefragt wird, kann eine mit Berechtigungen ausgestattete Systemkomponente die Information erhalten, ob normalen Benutzern Berechtigungen gewährt werden dürfen. Zum Beispiel kann einer normalen Nutzerin die Berechtigung gegeben werden, das System in den Bereitschaftsmodus zu versetzen, unter der Voraussetzung, dass sie lokal vor Ort angemeldet ist."
 
 #. type: defvr
-#: doc/guix.texi:15928
+#: doc/guix.texi:18502
 #, no-wrap
 msgid "{Scheme Variable} polkit-wheel-service"
 msgstr "{Scheme-Variable} polkit-wheel-service"
 
 #. type: defvr
-#: doc/guix.texi:15933
+#: doc/guix.texi:18507
 msgid "Service that adds the @code{wheel} group as admins to the Polkit service.  This makes it so that users in the @code{wheel} group are queried for their own passwords when performing administrative actions instead of @code{root}'s, similar to the behaviour used by @code{sudo}."
 msgstr "Dieser Dienst richtet die @code{wheel}-Benutzergruppe als Administratoren für den Polkit-Dienst ein. Der Zweck davon ist, dass Benutzer in der @code{wheel}-Benutzergruppe nach ihren eigenen Passwörtern gefragt werden statt dem Passwort des Administratornutzers @code{root}, wenn sie administrative Tätigkeiten durchführen, ähnlich dem, wie sich @code{sudo} verhält."
 
 #. type: defvr
-#: doc/guix.texi:15935
+#: doc/guix.texi:18509
 #, no-wrap
 msgid "{Scheme Variable} upower-service-type"
 msgstr "{Scheme-Variable} upower-service-type"
 
 #. type: defvr
-#: doc/guix.texi:15939
+#: doc/guix.texi:18513
 msgid "Service that runs @uref{https://upower.freedesktop.org/, @command{upowerd}}, a system-wide monitor for power consumption and battery levels, with the given configuration settings."
 msgstr "Typ des Dienstes, der @uref{https://upower.freedesktop.org/, @command{upowerd}} ausführt, ein Programm zur systemweiten Überwachung des Energieverbrauchs und der Akkuladung. Er hat die angegebenen Konfigurationseinstellungen."
 
 #. type: defvr
-#: doc/guix.texi:15942
+#: doc/guix.texi:18516
 msgid "It implements the @code{org.freedesktop.UPower} D-Bus interface, and is notably used by GNOME."
 msgstr "Er implementiert die D-Bus-Schnittstelle @code{org.freedesktop.UPower}. Insbesondere wird UPower auch von GNOME benutzt."
 
 #. type: deftp
-#: doc/guix.texi:15944
+#: doc/guix.texi:18518
 #, no-wrap
 msgid "{Data Type} upower-configuration"
 msgstr "{Datentyp} upower-configuration"
 
 #. type: deftp
-#: doc/guix.texi:15946
+#: doc/guix.texi:18520
 msgid "Data type representation the configuration for UPower."
 msgstr "Repräsentiert die Konfiguration von UPower."
 
 #. type: item
-#: doc/guix.texi:15949
+#: doc/guix.texi:18523
 #, no-wrap
 msgid "@code{upower} (default: @var{upower})"
 msgstr "@code{upower} (Vorgabe: @var{upower})"
 
 #. type: table
-#: doc/guix.texi:15951
+#: doc/guix.texi:18525
 msgid "Package to use for @code{upower}."
 msgstr "Das Paket, das für @code{upower} benutzt werden soll."
 
 #. type: item
-#: doc/guix.texi:15952
+#: doc/guix.texi:18526
 #, no-wrap
 msgid "@code{watts-up-pro?} (default: @code{#f})"
 msgstr "@code{watts-up-pro?} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:15954
+#: doc/guix.texi:18528
 msgid "Enable the Watts Up Pro device."
 msgstr "Aktiviert das Watts-Up-Pro-Gerät."
 
 #. type: item
-#: doc/guix.texi:15955
+#: doc/guix.texi:18529
 #, no-wrap
 msgid "@code{poll-batteries?} (default: @code{#t})"
 msgstr "@code{poll-batteries?} (Vorgabe: @code{#t})"
 
 #. type: table
-#: doc/guix.texi:15957
+#: doc/guix.texi:18531
 msgid "Enable polling the kernel for battery level changes."
 msgstr "Aktiviert das regelmäßige Abfragen des Kernels bezüglich Änderungen am Stand der Akku-Ladung."
 
 #. type: item
-#: doc/guix.texi:15958
+#: doc/guix.texi:18532
 #, no-wrap
 msgid "@code{ignore-lid?} (default: @code{#f})"
 msgstr "@code{ignore-lid?} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:15960
+#: doc/guix.texi:18534
 msgid "Ignore the lid state, this can be useful if it's incorrect on a device."
 msgstr "Ignorieren, ob der Rechner zugeklappt ist. Das kann gewünscht sein, wenn Auf- und Zuklappen nicht richtig erkannt werden."
 
 #. type: item
-#: doc/guix.texi:15961
+#: doc/guix.texi:18535
 #, no-wrap
 msgid "@code{use-percentage-for-policy?} (default: @code{#f})"
 msgstr "@code{use-percentage-for-policy?} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:15964
+#: doc/guix.texi:18538
 msgid "Whether battery percentage based policy should be used.  The default is to use the time left, change to @code{#t} to use the percentage."
 msgstr "Ob sich die Richtlinie am Akku-Ladestand in Prozent orientieren soll. Die Vorgabe ist, sich an der verbleibenden Zeit zu orientieren. Wenn Sie sie auf @code{#t} ändern, dient der Prozentstand als Orientierung."
 
 #. type: item
-#: doc/guix.texi:15965
+#: doc/guix.texi:18539
 #, no-wrap
 msgid "@code{percentage-low} (default: @code{10})"
 msgstr "@code{percentage-low} (Vorgabe: @code{10})"
 
 #. type: table
-#: doc/guix.texi:15968
+#: doc/guix.texi:18542
 msgid "When @code{use-percentage-for-policy?} is @code{#t}, this sets the percentage at which the battery is considered low."
 msgstr "Wenn @code{use-percentage-for-policy?} auf @code{#t} gesetzt ist, wird hiermit der Prozentstand festgelegt, ab dem der Akku-Ladestand als niedrig gilt."
 
 #. type: item
-#: doc/guix.texi:15969
+#: doc/guix.texi:18543
 #, no-wrap
 msgid "@code{percentage-critical} (default: @code{3})"
 msgstr "@code{percentage-critical} (Vorgabe: @code{3})"
 
 #. type: table
-#: doc/guix.texi:15972
+#: doc/guix.texi:18546
 msgid "When @code{use-percentage-for-policy?} is @code{#t}, this sets the percentage at which the battery is considered critical."
 msgstr "Wenn @code{use-percentage-for-policy?} auf @code{#t} gesetzt ist, wird hiermit der Prozentstand festgelegt, ab dem der Akku-Ladestand als kritisch gilt."
 
 #. type: item
-#: doc/guix.texi:15973
+#: doc/guix.texi:18547
 #, no-wrap
 msgid "@code{percentage-action} (default: @code{2})"
 msgstr "@code{percentage-action} (Vorgabe: @code{2})"
 
 #. type: table
-#: doc/guix.texi:15976
+#: doc/guix.texi:18550
 msgid "When @code{use-percentage-for-policy?} is @code{#t}, this sets the percentage at which action will be taken."
 msgstr "Wenn @code{use-percentage-for-policy?} auf @code{#t} gesetzt ist, wird hiermit der Prozentstand festgelegt, ab dem Maßnahmen eingeleitet werden."
 
 #. type: item
-#: doc/guix.texi:15977
+#: doc/guix.texi:18551
 #, no-wrap
 msgid "@code{time-low} (default: @code{1200})"
 msgstr "@code{time-low} (Vorgabe: @code{1200})"
 
 #. type: table
-#: doc/guix.texi:15980
+#: doc/guix.texi:18554
 msgid "When @code{use-time-for-policy?} is @code{#f}, this sets the time remaining in seconds at which the battery is considered low."
 msgstr "Wenn @code{use-percentage-for-policy?} auf @code{#f} gesetzt ist, wird hiermit die verbleibende Zeit in Sekunden festgelegt, ab der der Akku-Ladestand als niedrig gilt."
 
 #. type: item
-#: doc/guix.texi:15981
+#: doc/guix.texi:18555
 #, no-wrap
 msgid "@code{time-critical} (default: @code{300})"
 msgstr "@code{time-critical} (Vorgabe: @code{300})"
 
 #. type: table
-#: doc/guix.texi:15984
+#: doc/guix.texi:18558
 msgid "When @code{use-time-for-policy?} is @code{#f}, this sets the time remaining in seconds at which the battery is considered critical."
 msgstr "Wenn @code{use-percentage-for-policy?} auf @code{#f} gesetzt ist, wird hiermit die verbleibende Zeit in Sekunden festgelegt, ab der der Akku-Ladestand als kritisch gilt."
 
 #. type: item
-#: doc/guix.texi:15985
+#: doc/guix.texi:18559
 #, no-wrap
 msgid "@code{time-action} (default: @code{120})"
 msgstr "@code{time-action} (Vorgabe: @code{120})"
 
 #. type: table
-#: doc/guix.texi:15988
+#: doc/guix.texi:18562
 msgid "When @code{use-time-for-policy?} is @code{#f}, this sets the time remaining in seconds at which action will be taken."
 msgstr "Wenn @code{use-percentage-for-policy?} auf @code{#f} gesetzt ist, wird hiermit die verbleibende Zeit in Sekunden festgelegt, ab der Maßnahmen eingeleitet werden."
 
 #. type: item
-#: doc/guix.texi:15989
+#: doc/guix.texi:18563
 #, no-wrap
 msgid "@code{critical-power-action} (default: @code{'hybrid-sleep})"
 msgstr "@code{critical-power-action} (Vorgabe: @code{'hybrid-sleep})"
 
 #. type: table
-#: doc/guix.texi:15992
+#: doc/guix.texi:18566
 msgid "The action taken when @code{percentage-action} or @code{time-action} is reached (depending on the configuration of @code{use-percentage-for-policy?})."
 msgstr "Welche Maßnahme eingeleitet wird, wenn die @code{percentage-action} oder @code{time-action} erreicht wurde (je nachdem, wie @code{use-percentage-for-policy?} eingestellt wurde)."
 
 #. type: table
-#: doc/guix.texi:15994
+#: doc/guix.texi:18568
 msgid "Possible values are:"
 msgstr "Mögliche Werte sind:"
 
 #. type: code{#1}
-#: doc/guix.texi:15998
+#: doc/guix.texi:18572
 msgid "'power-off"
 msgstr "'power-off"
 
 #. type: code{#1}
-#: doc/guix.texi:16001
+#: doc/guix.texi:18575
 msgid "'hibernate"
 msgstr "'hibernate"
 
 #. type: itemize
-#: doc/guix.texi:16004
+#: doc/guix.texi:18578
 msgid "@code{'hybrid-sleep}."
 msgstr "@code{'hybrid-sleep}."
 
 #. type: deffn
-#: doc/guix.texi:16009
+#: doc/guix.texi:18583
 #, no-wrap
 msgid "{Scheme Procedure} udisks-service [#:udisks @var{udisks}]"
 msgstr "{Scheme-Prozedur} udisks-service [#:udisks @var{udisks}]"
 
 #. type: deffn
-#: doc/guix.texi:16014
-msgid "Return a service for @uref{https://udisks.freedesktop.org/docs/latest/, UDisks}, a @dfn{disk management} daemon that provides user interfaces with notifications and ways to mount/unmount disks.  Programs that talk to UDisks include the @command{udisksctl} command, part of UDisks, and GNOME Disks."
-msgstr "Liefert einen Dienst für @uref{https://udisks.freedesktop.org/docs/latest/, UDisks}, einen Daemon zur @dfn{Datenträgerverwaltung}, der Benutzeroberflächen mit Benachrichtigungen und Möglichkeiten zum Einbinden und Aushängen von Datenträgern versorgt. Zu den Programmen, die mit UDisks kommunizieren, gehört der Befehl @command{udisksctl}, der Teil von UDisks ist, sowie GNOME Disks."
+#: doc/guix.texi:18593
+msgid "Return a service for @uref{https://udisks.freedesktop.org/docs/latest/, UDisks}, a @dfn{disk management} daemon that provides user interfaces with notifications and ways to mount/unmount disks.  Programs that talk to UDisks include the @command{udisksctl} command, part of UDisks, and GNOME Disks.  Note that Udisks relies on the @command{mount} command, so it will only be able to use the file-system utilities installed in the system profile.  For example if you want to be able to mount NTFS file-systems in read and write fashion, you'll need to have @code{ntfs-3g} installed system-wide."
+msgstr "Liefert einen Dienst für @uref{https://udisks.freedesktop.org/docs/latest/, UDisks}, einen Daemon zur @dfn{Datenträgerverwaltung}, der Benutzeroberflächen mit Benachrichtigungen und Möglichkeiten zum Einbinden und Aushängen von Datenträgern versorgt. Zu den Programmen, die mit UDisks kommunizieren, gehört der Befehl @command{udisksctl}, der Teil von UDisks ist, sowie GNOME Disks. Beachten Sie, dass Udisks über den Befehl @command{mount} funktioniert; man kann damit also nur die Dateisystemwerkzeuge benutzen, die ins Systemprofil installiert sind. Wenn Sie also NTFS-Dateisysteme zum Lesen und Schreiben öffnen können möchten, müssen Sie @code{ntfs-3g} systemweit installiert haben."
 
 #. type: deffn
-#: doc/guix.texi:16016
+#: doc/guix.texi:18595
 #, no-wrap
 msgid "{Scheme Variable} colord-service-type"
 msgstr "{Scheme-Variable} colord-service-type"
 
 #. type: deffn
-#: doc/guix.texi:16023
+#: doc/guix.texi:18602
 msgid "This is the type of the service that runs @command{colord}, a system service with a D-Bus interface to manage the color profiles of input and output devices such as screens and scanners.  It is notably used by the GNOME Color Manager graphical tool.  See @uref{https://www.freedesktop.org/software/colord/, the colord web site} for more information."
 msgstr "Dies ist der Typ des Dienstes, der @command{colord} ausführt. Dabei handelt es sich um einen Systemdienst mit einer D-Bus-Schnittstelle, um die Farbprofile von Ein- und Ausgabegeräten wie Bildschirmen oder Scannern zu verwalten. Insbesondere wird colord vom grafischen GNOME-Farbverwaltungswerkzeug benutzt. Siehe @uref{https://www.freedesktop.org/software/colord/, den Webauftritt von colord} für weitere Informationen."
 
 #. type: deffn
-#: doc/guix.texi:16025
+#: doc/guix.texi:18604
 #, no-wrap
 msgid "{Scheme Procedure} geoclue-application name [#:allowed? #t] [#:system? #f] [#:users '()]"
 msgstr "{Scheme-Prozedur} geoclue-application Name [#:allowed? #t] [#:system? #f] [#:users '()]"
 
 #. type: deffn
-#: doc/guix.texi:16034
+#: doc/guix.texi:18613
 msgid "Return a configuration allowing an application to access GeoClue location data.  @var{name} is the Desktop ID of the application, without the @code{.desktop} part.  If @var{allowed?} is true, the application will have access to location information by default.  The boolean @var{system?} value indicates whether an application is a system component or not.  Finally @var{users} is a list of UIDs of all users for which this application is allowed location info access.  An empty users list means that all users are allowed."
 msgstr "Liefert eine Konfiguration, mit der eine Anwendung auf Ortungsdaten von GeoClue zugreifen kann. Als @var{Name} wird die Desktop-ID der Anwendung angegeben, ohne die Pfadkomponente mit @code{.desktop}-Endung. Wenn @var{allowed?} wahr ist, hat die Anwendung standardmäßig Zugriff auf Ortungsinformationen. Der boolesche Wert @var{system?} zeigt an, ob die Anwendung eine Systemkomponente ist oder nicht. Zum Schluss wird für @var{users} eine Liste von Benutzeridentifikatoren (UIDs) aller Benutzerkonten angegeben, für die diese Anwendung Zugriff auf Ortungsinformationen gewährt bekommt. Eine leere Benutzerliste bedeutet, dass dies für alle Benutzer gewährt wird."
 
 #. type: cindex
-#: doc/guix.texi:16036
+#: doc/guix.texi:18615
 #, no-wrap
 msgid "scanner access"
 msgstr "Scanner, Zugriff auf"
 
 #. type: deffn
-#: doc/guix.texi:16037
+#: doc/guix.texi:18616
 #, no-wrap
 msgid "{Scheme Procedure} sane-service-type"
 msgstr "{Scheme-Prozedur} sane-service-type"
 
 #. type: deffn
-#: doc/guix.texi:16041
+#: doc/guix.texi:18620
 msgid "This service provides access to scanners @i{via} @uref{http://www.sane-project.org, SANE} by installing the necessary udev rules."
 msgstr "Mit diesem Dienst wird Zugriff auf Scanner über @uref{http://www.sane-project.org, SANE} möglich, indem er die nötigen udev-Regeln installiert."
 
 #. type: defvr
-#: doc/guix.texi:16043
+#: doc/guix.texi:18622
 #, no-wrap
 msgid "{Scheme Variable} %standard-geoclue-applications"
 msgstr "{Scheme-Variable} %standard-geoclue-applications"
 
 #. type: defvr
-#: doc/guix.texi:16050
+#: doc/guix.texi:18629
 msgid "The standard list of well-known GeoClue application configurations, granting authority to the GNOME date-and-time utility to ask for the current location in order to set the time zone, and allowing the IceCat and Epiphany web browsers to request location information.  IceCat and Epiphany both query the user before allowing a web page to know the user's location."
 msgstr "Die Standardliste wohlbekannter GeoClue-Anwendungskonfigurationen, mit der das GNOME-Werkzeug für Datum und Uhrzeit die Berechtigung bekommt, den aktuellen Ort abzufragen, um die Zeitzone festzulegen, und die Webbrowser IceCat und Epiphany Ortsinformationen abfragen dürfen. IceCat und Epiphany fragen beide zuerst beim Benutzer nach, bevor sie einer Webseite gestatten, den Ort des Benutzer abzufragen."
 
 #. type: deffn
-#: doc/guix.texi:16052
+#: doc/guix.texi:18631
 #, no-wrap
 msgid "{Scheme Procedure} geoclue-service [#:colord @var{colord}] @"
 msgstr "{Scheme-Prozedur} geoclue-service [#:colord @var{colord}] @"
 
 #. type: deffn
-#: doc/guix.texi:16065
+#: doc/guix.texi:18644
 msgid "[#:whitelist '()] @ [#:wifi-geolocation-url \"https://location.services.mozilla.com/v1/geolocate?key=geoclue\"] @ [#:submit-data? #f] [#:wifi-submission-url \"https://location.services.mozilla.com/v1/submit?key=geoclue\"] @ [#:submission-nick \"geoclue\"] @ [#:applications %standard-geoclue-applications] Return a service that runs the GeoClue location service.  This service provides a D-Bus interface to allow applications to request access to a user's physical location, and optionally to add information to online location databases.  See @uref{https://wiki.freedesktop.org/www/Software/GeoClue/, the GeoClue web site} for more information."
 msgstr "[#:whitelist '()] @ [#:wifi-geolocation-url \"https://location.services.mozilla.com/v1/geolocate?key=geoclue\"] @ [#:submit-data? #f] [#:wifi-submission-url \"https://location.services.mozilla.com/v1/submit?key=geoclue\"] @ [#:submission-nick \"geoclue\"] @ [#:applications %standard-geoclue-applications] Liefert einen Dienst, der den Ortungsdienst GeoClue ausführt. Dieser Dienst bietet eine D-Bus-Schnittstelle an, mit der Anwendungen Zugriff auf den physischen Ort eines Benutzers anfragen können, und optional Informationen in Online-Ortsdatenbanken eintragen können. Siehe @uref{https://wiki.freedesktop.org/www/Software/GeoClue/, den Webauftritt von GeoClue} für weitere Informationen."
 
 #. type: deffn
-#: doc/guix.texi:16067
+#: doc/guix.texi:18646
 #, no-wrap
 msgid "{Scheme Procedure} bluetooth-service [#:bluez @var{bluez}] @"
 msgstr "{Scheme-Prozedur} bluetooth-service [#:bluez @var{bluez}] @"
 
 #. type: deffn
-#: doc/guix.texi:16074
+#: doc/guix.texi:18653
 msgid "[@w{#:auto-enable? #f}] Return a service that runs the @command{bluetoothd} daemon, which manages all the Bluetooth devices and provides a number of D-Bus interfaces.  When AUTO-ENABLE? is true, the bluetooth controller is powered automatically at boot, which can be useful when using a bluetooth keyboard or mouse."
 msgstr "[@w{#:auto-enable? #f}] Liefert einen Dienst, der den @command{bluetoothd}-Daemon ausführt, welcher alle Bluetooth-Geräte verwaltet, und eine Reihe von D-Bus-Schnittstellen zur Verfügung stellt. Wenn AUTO-ENABLE? wahr ist, wird die Bluetooth-Steuerung automatisch beim Hochfahren gestartet, was sich als nützlich erweisen kann, wenn man eine Bluetooth-Tastatur oder -Maus benutzt."
 
 #. type: deffn
-#: doc/guix.texi:16076
+#: doc/guix.texi:18655
 msgid "Users need to be in the @code{lp} group to access the D-Bus service."
 msgstr "Benutzer müssen zur @code{lp}-Benutzergruppe gehören, damit sie Zugriff auf den D-Bus-Dienst bekommen."
 
 #. type: defvr
-#: doc/guix.texi:16078
+#: doc/guix.texi:18657
 #, no-wrap
 msgid "{Scheme Variable} gnome-keyring-service-type"
 msgstr "{Scheme-Variable} gnome-keyring-service-type"
 
 #. type: defvr
-#: doc/guix.texi:16082
-msgid "This is the type of the service that adds the @uref{https://wiki.gnome.org/Projects/GnomeKeyring, GNOME Keyring}.  Its value is a @code{gnome-keyring-configuration} object (see below.)"
+#: doc/guix.texi:18661
+msgid "This is the type of the service that adds the @uref{https://wiki.gnome.org/Projects/GnomeKeyring, GNOME Keyring}.  Its value is a @code{gnome-keyring-configuration} object (see below)."
 msgstr "Dies ist der Typ des Dienstes, der den @uref{https://wiki.gnome.org/Projects/GnomeKeyring, GNOME-Schlüsselbund} bereitstellt. Sein Wert ist ein @code{gnome-keyring-configuration}-Objekt (siehe unten)."
 
 #. type: defvr
-#: doc/guix.texi:16086
+#: doc/guix.texi:18665
 msgid "This service adds the @code{gnome-keyring} package to the system profile and extends PAM with entries using @code{pam_gnome_keyring.so}, unlocking a user's login keyring when they log in or setting its password with passwd."
 msgstr "Dieser Dienst fügt das @code{gnome-keyring}-Paket zum Systemprofil hinzu und erweitert PAM um Einträge zur Nutzung von @code{pam_gnome_keyring.so}, wodurch der Schlüsselbund von Nutzern entsperrt wird, wenn sie sich anmelden, und passwd auch das Passwort des Schlüsselbunds festlegt."
 
 #. type: deftp
-#: doc/guix.texi:16088
+#: doc/guix.texi:18667
 #, no-wrap
 msgid "{Data Type} gnome-keyring-configuration"
 msgstr "{Datentyp} gnome-keyring-configuration"
 
 #. type: deftp
-#: doc/guix.texi:16090
+#: doc/guix.texi:18669
 msgid "Configuration record for the GNOME Keyring service."
 msgstr "Verbundsobjekt für die Konfiguration des GNOME-Schlüsselbunddienstes."
 
 #. type: item
-#: doc/guix.texi:16092
+#: doc/guix.texi:18671
 #, no-wrap
 msgid "@code{keyring} (default: @code{gnome-keyring})"
 msgstr "@code{keyring} (Vorgabe: @code{gnome-keyring})"
 
 #. type: table
-#: doc/guix.texi:16094
+#: doc/guix.texi:18673
 msgid "The GNOME keyring package to use."
 msgstr "Welches GNOME-Schlüsselbunddienst-Paket benutzt werden soll."
 
 #. type: code{#1}
-#: doc/guix.texi:16095
+#: doc/guix.texi:18674
 #, no-wrap
 msgid "pam-services"
 msgstr "pam-services"
 
 #. type: table
-#: doc/guix.texi:16100
+#: doc/guix.texi:18679
 msgid "A list of @code{(@var{service} . @var{kind})} pairs denoting PAM services to extend, where @var{service} is the name of an existing service to extend and @var{kind} is one of @code{login} or @code{passwd}."
 msgstr "Eine Liste von Paaren aus @code{(@var{Dienst} . @var{Typ})}, die zu erweiternde PAM-Dienste bezeichnen. Dabei steht @var{Dienst} für den Namen eines bestehenden Dienstes, der erweitert werden soll, und als @var{Typ} kann @code{login} oder @code{passwd} angegeben werden."
 
 #. type: table
-#: doc/guix.texi:16106
+#: doc/guix.texi:18685
 msgid "If @code{login} is given, it adds an optional @code{pam_gnome_keyring.so} to the auth block without arguments and to the session block with @code{auto_start}.  If @code{passwd} is given, it adds an optional @code{pam_gnome_keyring.so} to the password block without arguments."
 msgstr "Wenn @code{login} angegeben wird, wird ein optionales @code{pam_gnome_keyring.so} zum Auth-Block ohne Argumente und zum Session-Block mit @code{auto_start} hinzugefügt. Wenn @code{passwd} angegeben wird, wird ein optionales @code{pam_gnome_keyring.so} zum Password-Block ohne Argumente hinzugefügt."
 
 #. type: table
-#: doc/guix.texi:16109
+#: doc/guix.texi:18688
 msgid "By default, this field contains ``gdm-password'' with the value @code{login} and ``passwd'' is with the value @code{passwd}."
 msgstr "Der vorgegebene Inhalt ist „gdm-password“ mit dem Wert @code{login} und „passwd“ mit dem Wert @code{passwd}."
 
 #. type: cindex
-#: doc/guix.texi:16116
+#: doc/guix.texi:18695
 #, no-wrap
 msgid "sound support"
 msgstr "Sound-Unterstützung"
 
 #. type: cindex
-#: doc/guix.texi:16117
+#: doc/guix.texi:18696
 #, no-wrap
 msgid "ALSA"
 msgstr "ALSA"
 
 #. type: cindex
-#: doc/guix.texi:16118
+#: doc/guix.texi:18697
 #, no-wrap
 msgid "PulseAudio, sound support"
 msgstr "PulseAudio, Sound-Unterstützung"
 
 #. type: Plain text
-#: doc/guix.texi:16123
+#: doc/guix.texi:18702
 msgid "The @code{(gnu services sound)} module provides a service to configure the Advanced Linux Sound Architecture (ALSA) system, which makes PulseAudio the preferred ALSA output driver."
 msgstr "Das Modul @code{(gnu services sound)} stellt einen Dienst zur Verfügung, um das Advanced-Linux-Sound-Architecture-System (ALSA) zu konfigurieren, so dass PulseAudio als bevorzugter ALSA-Ausgabetreiber benutzt wird."
 
 #. type: deffn
-#: doc/guix.texi:16124
+#: doc/guix.texi:18703
 #, no-wrap
 msgid "{Scheme Variable} alsa-service-type"
 msgstr "{Scheme-Variable} alsa-service-type"
 
 #. type: deffn
-#: doc/guix.texi:16129
+#: doc/guix.texi:18708
 msgid "This is the type for the @uref{https://alsa-project.org/, Advanced Linux Sound Architecture} (ALSA) system, which generates the @file{/etc/asound.conf} configuration file.  The value for this type is a @command{alsa-configuration} record as in this example:"
 msgstr "Dies ist der Typ des Dienstes für das als @uref{https://alsa-project.org/, Advanced Linux Sound Architecture (ALSA)} bekannte System, das die Konfigurationsdatei @file{/etc/asound.conf} erzeugt. Der Wert für diesen Diensttyp ist ein @command{alsa-configuration}-Verbundsobjekt wie in diesem Beispiel:"
 
 #. type: lisp
-#: doc/guix.texi:16132
+#: doc/guix.texi:18711
 #, no-wrap
 msgid "(service alsa-service-type)\n"
 msgstr "(service alsa-service-type)\n"
 
 #. type: deffn
-#: doc/guix.texi:16135
+#: doc/guix.texi:18714
 msgid "See below for details about @code{alsa-configuration}."
 msgstr "Siehe die folgenden Details zur @code{alsa-configuration}."
 
 #. type: deftp
-#: doc/guix.texi:16137
+#: doc/guix.texi:18716
 #, no-wrap
 msgid "{Data Type} alsa-configuration"
 msgstr "{Datentyp} alsa-configuration"
 
 #. type: deftp
-#: doc/guix.texi:16139
+#: doc/guix.texi:18718
 msgid "Data type representing the configuration for @code{alsa-service}."
 msgstr "Repräsentiert die Konfiguration für den Dienst @code{alsa-service}."
 
 #. type: item
-#: doc/guix.texi:16141
+#: doc/guix.texi:18720
 #, no-wrap
 msgid "@code{alsa-plugins} (default: @var{alsa-plugins})"
 msgstr "@code{alsa-plugins} (Vorgabe: @var{alsa-plugins})"
 
 #. type: table
-#: doc/guix.texi:16143
+#: doc/guix.texi:18722
 msgid "@code{alsa-plugins} package to use."
 msgstr "@code{alsa-plugins}-Paket, was benutzt werden soll."
 
 #. type: item
-#: doc/guix.texi:16144
+#: doc/guix.texi:18723
 #, no-wrap
 msgid "@code{pulseaudio?} (default: @var{#t})"
 msgstr "@code{pulseaudio?} (Vorgabe: @var{#t})"
 
 #. type: table
-#: doc/guix.texi:16147
+#: doc/guix.texi:18726
 msgid "Whether ALSA applications should transparently be made to use the @uref{https://www.pulseaudio.org/, PulseAudio} sound server."
 msgstr "Ob ALSA-Anwendungen transparent den @uref{https://www.pulseaudio.org/, PulseAudio-Audioserver} benutzen sollen."
 
 #. type: table
-#: doc/guix.texi:16151
+#: doc/guix.texi:18730
 msgid "Using PulseAudio allows you to run several sound-producing applications at the same time and to individual control them @i{via} @command{pavucontrol}, among other things."
 msgstr "Wenn PulseAudio benutzt wird, können Sie gleichzeitig mehrere Anwendungen mit Tonausgabe ausführen und sie unter anderem mit @command{pavucontrol} einzeln einstellen."
 
 #. type: item
-#: doc/guix.texi:16152
+#: doc/guix.texi:18731
 #, no-wrap
 msgid "@code{extra-options} (default: @var{\"\"})"
 msgstr "@code{extra-options} (Vorgabe: @var{\"\"})"
 
 #. type: table
-#: doc/guix.texi:16154
+#: doc/guix.texi:18733
 msgid "String to append to the @file{/etc/asound.conf} file."
 msgstr "Die Zeichenkette, die an die Datei @file{/etc/asound.conf} angehängt werden soll."
 
 #. type: Plain text
-#: doc/guix.texi:16160
+#: doc/guix.texi:18739
 msgid "Individual users who want to override the system configuration of ALSA can do it with the @file{~/.asoundrc} file:"
 msgstr "Wenn einzelne Benutzer von ALSAs Systemkonfiguration abweichende Einstellungen vornehmen möchten, können Sie das mit der Konfigurationsdatei @file{~/.asoundrc} tun:"
 
 #. type: example
-#: doc/guix.texi:16166
+#: doc/guix.texi:18745
 #, no-wrap
 msgid ""
 "# In guix, we have to specify the absolute path for plugins.\n"
@@ -30390,7 +34757,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:16175
+#: doc/guix.texi:18754
 #, no-wrap
 msgid ""
 "# Routing ALSA to jack:\n"
@@ -30414,7 +34781,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:16181
+#: doc/guix.texi:18760
 #, no-wrap
 msgid ""
 "  capture_ports @{\n"
@@ -30432,7 +34799,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:16188
+#: doc/guix.texi:18767
 #, no-wrap
 msgid ""
 "pcm.!default @{\n"
@@ -30450,99 +34817,104 @@ msgstr ""
 "@}\n"
 
 #. type: Plain text
-#: doc/guix.texi:16192
+#: doc/guix.texi:18771
 msgid "See @uref{https://www.alsa-project.org/main/index.php/Asoundrc} for the details."
 msgstr "Siehe @uref{https://www.alsa-project.org/main/index.php/Asoundrc} für die Details."
 
 #. type: deffn
-#: doc/guix.texi:16193
+#: doc/guix.texi:18772
 #, no-wrap
 msgid "{Scheme Variable} pulseaudio-service-type"
 msgstr "{Scheme-Variable} pulseaudio-service-type"
 
 #. type: deffn
-#: doc/guix.texi:16197
+#: doc/guix.texi:18776
 msgid "This is the type for the @uref{https://www.pulseaudio.org/, PulseAudio} sound server.  It exists to allow system overrides of the default settings via @code{pulseaudio-configuration}, see below."
 msgstr "Dies ist der Diensttyp für den @url{https://www.pulseaudio.org/, PulseAudio-Soundserver}. Mit ihm können die Voreinstellungen systemweit abgeändert werden. Dazu benutzen Sie eine @code{pulseaudio-configuration}, siehe unten."
 
 #. type: quotation
-#: doc/guix.texi:16204
+#: doc/guix.texi:18782
+msgid "This service overrides per-user configuration files.  If you want PulseAudio to honor configuration files in @file{~/.config/pulse} you have to unset the environment variables @env{PULSE_CONFIG} and @env{PULSE_CLIENTCONFIG} in your @file{~/.bash_profile}."
+msgstr "Durch diesen Dienst werden Einstellungen vorgenommen, die Vorrang vor den Konfigurationsdateien des Benutzers haben. Wenn PulseAudio Konfigurationsdateien in @file{~/.config/pulse} beachten soll, müssen Sie die Umgebungsvariablen @env{PULSE_CONFIG} und @env{PULSE_CLIENTCONFIG} in Ihrer @file{~/.bash_profile} deaktivieren."
+
+#. type: quotation
+#: doc/guix.texi:18790
 msgid "This service on its own does not ensure, that the @code{pulseaudio} package exists on your machine.  It merely adds configuration files for it, as detailed below.  In the (admittedly unlikely) case, that you find yourself without a @code{pulseaudio} package, consider enabling it through the @code{alsa-service-type} above."
 msgstr "Dieser Dienst sorgt alleine noch nicht dafür, dass auf ihrer Maschine das @code{pulseaudio}-Paket vorliegt. Er fügt bloß Konfigurationsdateien dafür hinzu, wie im Folgenden beschrieben. Für den (zugegebenermaßen unwahrscheinlichen) Fall, dass Ihnen ein @code{pulseaudio}-Paket fehlt, möchten Sie es vielleicht durch den oben genannten @code{alsa-service-type} aktivieren."
 
 #. type: deftp
-#: doc/guix.texi:16207
+#: doc/guix.texi:18793
 #, no-wrap
 msgid "{Data Type} pulseaudio-configuration"
 msgstr "{Datentyp} pulseaudio-configuration"
 
 #. type: deftp
-#: doc/guix.texi:16209
+#: doc/guix.texi:18795
 msgid "Data type representing the configuration for @code{pulseaudio-service}."
 msgstr "Repräsentiert die Konfiguration für den Dienst @code{pulseaudio-service}."
 
 #. type: item
-#: doc/guix.texi:16211
+#: doc/guix.texi:18797
 #, no-wrap
-msgid "@var{client-conf} (default: @code{'()})"
-msgstr "@var{client-conf} (Vorgabe: @code{'()})"
+msgid "@code{client-conf} (default: @code{'()})"
+msgstr "@code{client-conf} (Vorgabe: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:16216
+#: doc/guix.texi:18802
 msgid "List of settings to set in @file{client.conf}.  Accepts a list of strings or a symbol-value pairs.  A string will be inserted as-is with a newline added.  A pair will be formatted as ``key = value'', again with a newline added."
 msgstr "Eine Liste der Einstellungen, die in @file{client.conf} vorgenommen werden. Hierfür wird eine Liste von entweder Zeichenketten oder Symbol-Wert-Paaren akzeptiert. Eine Zeichenkette wird so, wie sie ist, eingefügt, mit einem Zeilenumbruch danach. Ein Paar wird als „Schlüssel = Wert“ formatiert, auch hier gefolgt von einem Zeilenumbruch."
 
 #. type: item
-#: doc/guix.texi:16217
+#: doc/guix.texi:18803
 #, no-wrap
-msgid "@var{daemon-conf} (default: @code{'((flat-volumes . no))})"
-msgstr "@var{daemon-conf} (Vorgabe: @code{'((flat-volumes . no))})"
+msgid "@code{daemon-conf} (default: @code{'((flat-volumes . no))})"
+msgstr "@code{daemon-conf} (Vorgabe: @code{'((flat-volumes . no))})"
 
 #. type: table
-#: doc/guix.texi:16220
+#: doc/guix.texi:18806
 msgid "List of settings to set in @file{daemon.conf}, formatted just like @var{client-conf}."
 msgstr "Eine Liste der Einstellungen, die in @file{daemon.conf} vorgenommen werden, im gleichen Format wie @var{client-conf}."
 
 #. type: item
-#: doc/guix.texi:16221
+#: doc/guix.texi:18807
 #, no-wrap
-msgid "@var{script-file} (default: @code{(file-append pulseaudio \"/etc/pulse/default.pa\")})"
-msgstr "@var{script-file} (Vorgabe: @code{(file-append pulseaudio \"/etc/pulse/default.pa\")})"
+msgid "@code{script-file} (default: @code{(file-append pulseaudio \"/etc/pulse/default.pa\")})"
+msgstr "@code{script-file} (Vorgabe: @code{(file-append pulseaudio \"/etc/pulse/default.pa\")})"
 
 #. type: table
-#: doc/guix.texi:16223
-msgid "Script file to use as as @file{default.pa}."
+#: doc/guix.texi:18809
+msgid "Script file to use as @file{default.pa}."
 msgstr "Welche Skriptdatei als @file{default.pa} verwendet werden soll."
 
 #. type: item
-#: doc/guix.texi:16224
+#: doc/guix.texi:18810
 #, no-wrap
-msgid "@var{system-script-file} (default: @code{(file-append pulseaudio \"/etc/pulse/system.pa\")})"
-msgstr "@var{system-script-file} (Vorgabe: @code{(file-append pulseaudio \"/etc/pulse/system.pa\")})"
+msgid "@code{system-script-file} (default: @code{(file-append pulseaudio \"/etc/pulse/system.pa\")})"
+msgstr "@code{system-script-file} (Vorgabe: @code{(file-append pulseaudio \"/etc/pulse/system.pa\")})"
 
 #. type: table
-#: doc/guix.texi:16226
-msgid "Script file to use as as @file{system.pa}."
+#: doc/guix.texi:18812
+msgid "Script file to use as @file{system.pa}."
 msgstr "Welche Skriptdatei als @file{system.pa} verwendet werden soll."
 
 #. type: deffn
-#: doc/guix.texi:16229
+#: doc/guix.texi:18815
 #, no-wrap
 msgid "{Scheme Variable} ladspa-service-type"
 msgstr "{Scheme-Variable} ladspa-service-type"
 
 #. type: deffn
-#: doc/guix.texi:16232
+#: doc/guix.texi:18818
 msgid "This service sets the @var{LADSPA_PATH} variable, so that programs, which respect it, e.g. PulseAudio, can load LADSPA plugins."
 msgstr "Der Diensttyp für den Dienst, der die @var{LADSPA_PATH}-Variable festlegt, damit sie beachtende Programme, z.B.@: PulseAudio, LADSPA-Plugins laden können."
 
 #. type: deffn
-#: doc/guix.texi:16235
+#: doc/guix.texi:18821
 msgid "The following example will setup the service to enable modules from the @code{swh-plugins} package:"
 msgstr "Das folgende Beispiel wird den Dienst so einrichten, dass Module aus dem @code{swh-plugins}-Paket aktiviert werden:"
 
 #. type: lisp
-#: doc/guix.texi:16239
+#: doc/guix.texi:18825
 #, no-wrap
 msgid ""
 "(service ladspa-service-type\n"
@@ -30552,56 +34924,151 @@ msgstr ""
 "         (ladspa-configuration (plugins (list swh-plugins))))\n"
 
 #. type: deffn
-#: doc/guix.texi:16243
+#: doc/guix.texi:18829
 msgid "See @uref{http://plugin.org.uk/ladspa-swh/docs/ladspa-swh.html} for the details."
 msgstr "Siehe @uref{http://plugin.org.uk/ladspa-swh/docs/ladspa-swh.html} für die Details."
 
 #. type: cindex
-#: doc/guix.texi:16250
+#: doc/guix.texi:18836
 #, no-wrap
 msgid "SQL"
 msgstr "SQL"
 
 #. type: Plain text
-#: doc/guix.texi:16252
+#: doc/guix.texi:18838
 msgid "The @code{(gnu services databases)} module provides the following services."
 msgstr "Das Modul @code{(gnu services databases)} stellt die folgenden Dienste zur Verfügung."
 
-#. type: deffn
-#: doc/guix.texi:16253
+#. type: subsubheading
+#: doc/guix.texi:18839
 #, no-wrap
-msgid "{Scheme Procedure} postgresql-service [#:postgresql postgresql] @"
-msgstr "{Scheme-Prozedur} postgresql-service [#:postgresql postgresql] @"
+msgid "PostgreSQL"
+msgstr "PostgreSQL"
 
-#. type: deffn
-#: doc/guix.texi:16258
-msgid "[#:config-file] [#:data-directory ``/var/lib/postgresql/data''] @ [#:port 5432] [#:locale ``en_US.utf8''] [#:extension-packages '()] Return a service that runs @var{postgresql}, the PostgreSQL database server."
-msgstr "[#:config-file] [#:data-directory \"/var/lib/postgresql/data\"] @ [#:port 5432] [#:locale \"en_US.utf8\"] [#:extension-packages '()] Liefert einen Dienst, der @var{postgresql}, den PostgreSQL-Datenbankserver, ausführt."
+#. type: Plain text
+#: doc/guix.texi:18843
+msgid "The following example describes a PostgreSQL service with the default configuration."
+msgstr "Das folgende Beispiel zeigt einen PostgreSQL-Dienst in seiner Vorgabekonfiguration."
 
-#. type: deffn
-#: doc/guix.texi:16262
-msgid "The PostgreSQL daemon loads its runtime configuration from @var{config-file}, creates a database cluster with @var{locale} as the default locale, stored in @var{data-directory}.  It then listens on @var{port}."
-msgstr "Der PostgreSQL-Daemon lädt seine Laufzeitkonfiguration aus der bei @var{config-file} angegebenen Konfigurationsdatei, erzeugt einen Datenbankverbund mit der angegebenen @var{locale} als voreingestellte Locale, gespeichert im bei @var{data-directory} angegebenen Verzeichnis. Er lauscht dann auf dem @var{port}."
+#. type: lisp
+#: doc/guix.texi:18848
+#, no-wrap
+msgid ""
+"(service postgresql-service-type\n"
+"         (postgresql-configuration\n"
+"          (postgresql postgresql-10)))\n"
+msgstr ""
+"(service postgresql-service-type\n"
+"         (postgresql-configuration\n"
+"          (postgresql postgresql-10)))\n"
+
+#. type: Plain text
+#: doc/guix.texi:18854
+msgid "If the services fails to start, it may be due to an incompatible cluster already present in @var{data-directory}.  Adjust it (or, if you don't need the cluster anymore, delete @var{data-directory}), then restart the service."
+msgstr "Wenn diese Dienste nicht starten können, ist vielleicht bereits ein inkompatibler Datenbankverbund („Cluster“) in @var{data-directory} vorhanden. Ändern Sie dann den Wert dafür (oder falls Sie den Verbund nicht mehr brauchen, löschen Sie @var{data-directory} einfach) und starten Sie den Dienst neu."
+
+#. type: Plain text
+#: doc/guix.texi:18861
+msgid "Peer authentication is used by default and the @code{postgres} user account has no shell, which prevents the direct execution of @code{psql} commands as this user.  To use @code{psql}, you can temporarily log in as @code{postgres} using a shell, create a PostgreSQL superuser with the same name as one of the system users and then create the associated database."
+msgstr "Nach Voreinstellung müssen sich normale Benutzerkonten des Guix-Systems, die mit PostgreSQL kommunizieren, sogenannte „Peers“, zunächst authentifizieren. Allerdings ist für das @code{postgres}-Benutzerkonto keine Shell eingestellt, wodurch keine @code{psql}-Befehle durch diesen Benutzer ausgeführt werden können. Um @code{psql} benutzen zu können, können Sie sich vorläufig als der @code{postgres}-Nutzer unter Angabe einer Shell anmelden, ein Konto für einen PostgreSQL-Administrator (einen „Superuser“) mit demselben Namen wie einer der Benutzer des Systems einrichten und dann die zugehörige Datenbank erstellen."
+
+#. type: example
+#: doc/guix.texi:18866
+#, no-wrap
+msgid ""
+"sudo -u postgres -s /bin/sh\n"
+"createuser --interactive\n"
+"createdb $MY_USER_LOGIN      # Replace appropriately.\n"
+msgstr ""
+"sudo -u postgres -s /bin/sh\n"
+"createuser --interactive\n"
+"createdb $BENUTZER_ANMELDENAME  # muss angepasst werden\n"
+
+#. type: deftp
+#: doc/guix.texi:18868
+#, no-wrap
+msgid "{Data Type} postgresql-configuration"
+msgstr "{Datentyp} postgresql-configuration"
+
+#. type: deftp
+#: doc/guix.texi:18871
+msgid "Data type representing the configuration for the @code{postgresql-service-type}."
+msgstr "Der Datentyp repräsentiert die Konfiguration für den @code{postgresql-service-type}."
+
+#. type: code{#1}
+#: doc/guix.texi:18873
+#, no-wrap
+msgid "postgresql"
+msgstr "postgresql"
+
+#. type: table
+#: doc/guix.texi:18875
+msgid "PostgreSQL package to use for the service."
+msgstr "Das PostgreSQL-Paket, was für diesen Dienst benutzt werden soll."
+
+#. type: item
+#: doc/guix.texi:18876
+#, no-wrap
+msgid "@code{port} (default: @code{5432})"
+msgstr "@code{port} (Vorgabe: @code{5432})"
+
+#. type: table
+#: doc/guix.texi:18878
+msgid "Port on which PostgreSQL should listen."
+msgstr "Der Port, auf dem PostgreSQL lauschen soll."
+
+#. type: table
+#: doc/guix.texi:18881
+msgid "Locale to use as the default when creating the database cluster."
+msgstr "Welche Regions- und Spracheinstellung („Locale“) beim Erstellen des Datenbankverbunds voreingestellt werden soll."
+
+#. type: item
+#: doc/guix.texi:18882
+#, no-wrap
+msgid "@code{config-file} (default: @code{(postgresql-config-file)})"
+msgstr "@code{config-file} (Vorgabe: @code{(postgresql-config-file)})"
+
+#. type: table
+#: doc/guix.texi:18886
+msgid "The configuration file to use when running PostgreSQL.  The default behaviour uses the postgresql-config-file record with the default values for the fields."
+msgstr "Aus welcher Konfigurationsdatei die Laufzeitkonfiguration von PostgreSQL geladen werden soll. Vorgegeben ist, die Einstellungen aus einem postgresql-config-file-Verbundsobjekt mit Vorgabewerten zu nehmen."
+
+#. type: item
+#: doc/guix.texi:18887
+#, no-wrap
+msgid "@code{data-directory} (default: @code{\"/var/lib/postgresql/data\"})"
+msgstr "@code{data-directory} (Vorgabe: @code{\"/var/lib/postgresql/data\"})"
+
+#. type: table
+#: doc/guix.texi:18889
+msgid "Directory in which to store the data."
+msgstr "Das Verzeichnis, in dem die Daten gespeichert werden sollen."
+
+#. type: item
+#: doc/guix.texi:18890
+#, no-wrap
+msgid "@code{extension-packages} (default: @code{'()})"
+msgstr "@code{extension-packages} (Vorgabe: @code{'()})"
 
 #. type: cindex
-#: doc/guix.texi:16263
+#: doc/guix.texi:18891
 #, no-wrap
 msgid "postgresql extension-packages"
 msgstr "PostgreSQL-Erweiterungspakete"
 
-#. type: deffn
-#: doc/guix.texi:16268
+#. type: table
+#: doc/guix.texi:18896
 msgid "Additional extensions are loaded from packages listed in @var{extension-packages}.  Extensions are available at runtime.  For instance, to create a geographic database using the @code{postgis} extension, a user can configure the postgresql-service as in this example:"
 msgstr "Zusätzliche Erweiterungen werden aus den unter @var{extension-packages} aufgeführten Paketen geladen. Erweiterungen sind zur Laufzeit verfügbar. Zum Beispiel kann ein Nutzer den postgresql-service-Dienst wie in diesem Beispiel konfigurieren, um eine geografische Datenbank mit Hilfe der @code{postgis}-Erweiterung zu erzeugen:"
 
 #. type: cindex
-#: doc/guix.texi:16269
+#: doc/guix.texi:18897
 #, no-wrap
 msgid "postgis"
 msgstr "postgis"
 
 #. type: lisp
-#: doc/guix.texi:16272
+#: doc/guix.texi:18900
 #, no-wrap
 msgid ""
 "(use-package-modules databases geo)\n"
@@ -30611,7 +35078,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:16282
+#: doc/guix.texi:18913
 #, no-wrap
 msgid ""
 "(operating-system\n"
@@ -30621,7 +35088,10 @@ msgid ""
 "  (packages (cons* postgresql %base-packages))\n"
 "  (services\n"
 "    (cons*\n"
-"      (postgresql-service #:extension-packages (list postgis))\n"
+"      (service postgresql-service-type\n"
+"               (postgresql-configuration\n"
+"                (postgresql postgresql-10)\n"
+"                (extension-packages (list postgis))))\n"
 "      %base-services)))\n"
 msgstr ""
 "(operating-system\n"
@@ -30631,16 +35101,19 @@ msgstr ""
 "  (packages (cons* postgresql %base-packages))\n"
 "  (services\n"
 "    (cons*\n"
-"      (postgresql-service #:extension-packages (list postgis))\n"
+"      (service postgresql-service-type\n"
+"               (postgresql-configuration\n"
+"                (postgresql postgresql-10)\n"
+"                (extension-packages (list postgis))))\n"
 "      %base-services)))\n"
 
-#. type: deffn
-#: doc/guix.texi:16286
+#. type: table
+#: doc/guix.texi:18917
 msgid "Then the extension becomes visible and you can initialise an empty geographic database in this way:"
 msgstr "Dann wird die Erweiterung sichtbar und Sie können eine leere geografische Datenbak auf diese Weise initialisieren:"
 
 #. type: example
-#: doc/guix.texi:16293
+#: doc/guix.texi:18924
 #, no-wrap
 msgid ""
 "psql -U postgres\n"
@@ -30655,321 +35128,436 @@ msgstr ""
 "> create extension postgis;\n"
 "> create extension postgis_topology;\n"
 
-#. type: deffn
-#: doc/guix.texi:16298
+#. type: table
+#: doc/guix.texi:18929
 msgid "There is no need to add this field for contrib extensions such as hstore or dblink as they are already loadable by postgresql.  This field is only required to add extensions provided by other packages."
 msgstr "Es ist nicht notwendig, dieses Feld für contrib-Erweiterungen wie hstore oder dblink hinzuzufügen, weil sie bereits durch postgresql geladen werden können. Dieses Feld wird nur benötigt, um Erweiterungen hinzuzufügen, die von anderen Paketen zur Verfügung gestellt werden."
 
+#. type: deftp
+#: doc/guix.texi:18933
+#, no-wrap
+msgid "{Data Type} postgresql-config-file"
+msgstr "{Datentyp} postgresql-config-file"
+
+#. type: deftp
+#: doc/guix.texi:18939
+msgid "Data type representing the PostgreSQL configuration file.  As shown in the following example, this can be used to customize the configuration of PostgreSQL.  Note that you can use any G-expression or filename in place of this record, if you already have a configuration file you'd like to use for example."
+msgstr "Der Datentyp, der die Konfigurationsdatei von PostgreSQL repräsentiert. Wie im folgenden Beispiel gezeigt, kann er benutzt werden, um die Konfiguration von PostgreSQL anzupassen. Es sei darauf hingewiesen, dass Sie jeden beliebigen G-Ausdruck oder Dateinamen anstelle dieses Verbunds angeben können, etwa wenn Sie lieber eine bestehende Konfigurationsdatei benutzen möchten."
+
+#. type: lisp
+#: doc/guix.texi:18959
+#, no-wrap
+msgid ""
+"(service postgresql-service-type\n"
+"         (postgresql-configuration\n"
+"          (config-file\n"
+"           (postgresql-config-file\n"
+"            (log-destination \"stderr\")\n"
+"            (hba-file\n"
+"             (plain-file \"pg_hba.conf\"\n"
+"                         \"\n"
+"local\tall\tall\t\t\ttrust\n"
+"host\tall\tall\t127.0.0.1/32 \tmd5\n"
+"host\tall\tall\t::1/128 \tmd5\"))\n"
+"            (extra-config\n"
+"             '((\"session_preload_libraries\"     \"'auto_explain'\")\n"
+"               (\"random_page_cost\"              \"2\")\n"
+"               (\"auto_explain.log_min_duration\" \"'100ms'\")\n"
+"               (\"work_mem\"                      \"'500MB'\")\n"
+"               (\"logging_collector\"             \"on\")\n"
+"               (\"log_directory\"                 \"'/var/log/postgresql'\")))))))\n"
+msgstr ""
+"(service postgresql-service-type\n"
+"         (postgresql-configuration\n"
+"          (config-file\n"
+"           (postgresql-config-file\n"
+"            (log-destination \"stderr\")\n"
+"            (hba-file\n"
+"             (plain-file \"pg_hba.conf\"\n"
+"                         \"\n"
+"local\tall\tall\t\t\ttrust\n"
+"host\tall\tall\t127.0.0.1/32 \tmd5\n"
+"host\tall\tall\t::1/128 \tmd5\"))\n"
+"            (extra-config\n"
+"             '((\"session_preload_libraries\"     \"'auto_explain'\")\n"
+"               (\"random_page_cost\"              \"2\")\n"
+"               (\"auto_explain.log_min_duration\" \"'100ms'\")\n"
+"               (\"work_mem\"                      \"'500MB'\")\n"
+"               (\"logging_collector\"             \"on\")\n"
+"               (\"log_directory\"                 \"'/var/log/postgresql'\")))))))\n"
+
+#. type: item
+#: doc/guix.texi:18962
+#, no-wrap
+msgid "@code{log-destination} (default: @code{\"syslog\"})"
+msgstr "@code{log-destination} (Vorgabe: @code{\"syslog\"})"
+
+#. type: table
+#: doc/guix.texi:18965
+msgid "The logging method to use for PostgreSQL.  Multiple values are accepted, separated by commas."
+msgstr "Welche Protokollierungsmethode für PostgreSQL benutzt werden soll. Hier können mehrere Werte kommagetrennt angegeben werden."
+
+#. type: item
+#: doc/guix.texi:18966
+#, no-wrap
+msgid "@code{hba-file} (default: @code{%default-postgres-hba})"
+msgstr "@code{hba-file} (Vorgabe: @code{%default-postgres-hba})"
+
+#. type: table
+#: doc/guix.texi:18969
+msgid "Filename or G-expression for the host-based authentication configuration."
+msgstr "Ein Dateiname oder G-Ausdruck für die Konfiguration der Authentifizierung durch den Server („Host-based Authentication“)."
+
+#. type: item
+#: doc/guix.texi:18970
+#, no-wrap
+msgid "@code{ident-file} (default: @code{%default-postgres-ident})"
+msgstr "@code{ident-file} (Vorgabe: @code{%default-postgres-ident})"
+
+#. type: table
+#: doc/guix.texi:18972
+msgid "Filename or G-expression for the user name mapping configuration."
+msgstr "Ein Dateiname oder G-Ausdruck für die Konfiguration der Benutzernamensabbildung („User name mapping“)."
+
+#. type: table
+#: doc/guix.texi:18977
+msgid "List of additional keys and values to include in the PostgreSQL config file.  Each entry in the list should be a list where the first element is the key, and the remaining elements are the values."
+msgstr "Eine Liste zusätzlicher Schlüssel-Wert-Kombinationen, die in die PostgreSQL-Konfigurationsdatei aufgenommen werden sollen. Jeder Eintrag in der Liste muss eine Liste von Listen sein, deren erstes Element dem Schlüssel entspricht und deren übrige Elemente die Werte angeben."
+
+#. type: subsubheading
+#: doc/guix.texi:18981
+#, no-wrap
+msgid "MariaDB/MySQL"
+msgstr "MariaDB/MySQL"
+
 #. type: deffn
-#: doc/guix.texi:16300
+#: doc/guix.texi:18983
 #, no-wrap
 msgid "{Scheme Procedure} mysql-service [#:config (mysql-configuration)]"
 msgstr "{Scheme-Prozedur} mysql-service [#:config (mysql-configuration)]"
 
 #. type: deffn
-#: doc/guix.texi:16303
+#: doc/guix.texi:18986
 msgid "Return a service that runs @command{mysqld}, the MySQL or MariaDB database server."
 msgstr "Liefert einen Dienst, der @command{mysqld}, den Datenbankserver von MySQL oder MariaDB, ausführt."
 
 #. type: deffn
-#: doc/guix.texi:16306
+#: doc/guix.texi:18989
 msgid "The optional @var{config} argument specifies the configuration for @command{mysqld}, which should be a @code{<mysql-configuration>} object."
 msgstr "Als optionales @var{config}-Argument wird die Konfiguration für @command{mysqld} angegeben, die ein @code{<mysql-configuration>}-Objekt sein sollte."
 
 #. type: deftp
-#: doc/guix.texi:16308
+#: doc/guix.texi:18991
 #, no-wrap
 msgid "{Data Type} mysql-configuration"
 msgstr "{Datentyp} mysql-configuration"
 
 #. type: deftp
-#: doc/guix.texi:16310
+#: doc/guix.texi:18993
 msgid "Data type representing the configuration of @var{mysql-service}."
 msgstr "Der Datentyp, der die Konfiguration des @var{mysql-service} repräsentiert."
 
 #. type: item
-#: doc/guix.texi:16312
+#: doc/guix.texi:18995
 #, no-wrap
 msgid "@code{mysql} (default: @var{mariadb})"
 msgstr "@code{mysql} (Vorgabe: @var{mariadb})"
 
 #. type: table
-#: doc/guix.texi:16315
+#: doc/guix.texi:18998
 msgid "Package object of the MySQL database server, can be either @var{mariadb} or @var{mysql}."
 msgstr "Das Paketobjekt des MySQL-Datenbankservers; es kann entweder @var{mariadb} oder @var{mysql} sein."
 
 #. type: table
-#: doc/guix.texi:16318
+#: doc/guix.texi:19001
 msgid "For MySQL, a temporary root password will be displayed at activation time.  For MariaDB, the root password is empty."
 msgstr "Für MySQL wird bei der Aktivierung des Dienstes ein temporäres Administratorpasswort („root“-Passwort) angezeigt. Für MariaDB ist das „root“-Passwort leer."
 
 #. type: item
-#: doc/guix.texi:16319
+#: doc/guix.texi:19002
 #, no-wrap
 msgid "@code{port} (default: @code{3306})"
 msgstr "@code{port} (Vorgabe: @code{3306})"
 
 #. type: table
-#: doc/guix.texi:16321
+#: doc/guix.texi:19004
 msgid "TCP port on which the database server listens for incoming connections."
 msgstr "Der TCP-Port, auf dem der Datenbankserver auf eingehende Verbindungen lauscht."
 
+#. type: subsubheading
+#: doc/guix.texi:19007
+#, no-wrap
+msgid "Memcached"
+msgstr "Memcached"
+
 #. type: defvr
-#: doc/guix.texi:16324
+#: doc/guix.texi:19009
 #, no-wrap
 msgid "{Scheme Variable} memcached-service-type"
 msgstr "{Scheme-Variable} memcached-service-type"
 
 #. type: defvr
-#: doc/guix.texi:16328
+#: doc/guix.texi:19013
 msgid "This is the service type for the @uref{https://memcached.org/, Memcached} service, which provides a distributed in memory cache.  The value for the service type is a @code{memcached-configuration} object."
 msgstr "Dies ist der Diensttyp für den @uref{https://memcached.org/, Memcached-Dienst}, der einen verteilten Zwischenspeicher im Arbeitsspeicher (einen „In-Memory-Cache“) zur Verfügung stellt. Der Wert dieses Dienstes ist ein @code{memcached-configuration}-Objekt."
 
 #. type: lisp
-#: doc/guix.texi:16332
+#: doc/guix.texi:19017
 #, no-wrap
 msgid "(service memcached-service-type)\n"
 msgstr "(service memcached-service-type)\n"
 
 #. type: deftp
-#: doc/guix.texi:16334
+#: doc/guix.texi:19019
 #, no-wrap
 msgid "{Data Type} memcached-configuration"
 msgstr "{Datentyp} memcached-configuration"
 
 #. type: deftp
-#: doc/guix.texi:16336
+#: doc/guix.texi:19021
 msgid "Data type representing the configuration of memcached."
 msgstr "Der Datentyp, der die Konfiguration von memcached repräsentiert."
 
 #. type: item
-#: doc/guix.texi:16338
+#: doc/guix.texi:19023
 #, no-wrap
 msgid "@code{memcached} (default: @code{memcached})"
 msgstr "@code{memcached} (Vorgabe: @code{memcached})"
 
 #. type: table
-#: doc/guix.texi:16340
+#: doc/guix.texi:19025
 msgid "The Memcached package to use."
 msgstr "Das Memcached-Paket, das benutzt werden soll."
 
 #. type: item
-#: doc/guix.texi:16341
+#: doc/guix.texi:19026
 #, no-wrap
 msgid "@code{interfaces} (default: @code{'(\"0.0.0.0\")})"
 msgstr "@code{interfaces} (Vorgabe: @code{'(\"0.0.0.0\")})"
 
 #. type: table
-#: doc/guix.texi:16343
+#: doc/guix.texi:19028
 msgid "Network interfaces on which to listen."
 msgstr "Auf welchen Netzwerkschnittstellen gelauscht werden soll."
 
 #. type: item
-#: doc/guix.texi:16344
+#: doc/guix.texi:19029
 #, no-wrap
 msgid "@code{tcp-port} (default: @code{11211})"
 msgstr "@code{tcp-port} (Vorgabe: @code{11211})"
 
 #. type: table
-#: doc/guix.texi:16346
+#: doc/guix.texi:19031
 msgid "Port on which to accept connections on,"
 msgstr "Der Port, auf dem Verbindungen akzeptiert werden."
 
 #. type: item
-#: doc/guix.texi:16347
+#: doc/guix.texi:19032
 #, no-wrap
 msgid "@code{udp-port} (default: @code{11211})"
 msgstr "@code{udp-port} (Vorgabe: @code{11211})"
 
 #. type: table
-#: doc/guix.texi:16350
+#: doc/guix.texi:19035
 msgid "Port on which to accept UDP connections on, a value of 0 will disable listening on a UDP socket."
 msgstr "Der Port, auf dem UDP-Verbindungen akzeptiert werden. Ist der Wert 0, wird @emph{nicht} auf einem UDP-Socket gelauscht."
 
 #. type: item
-#: doc/guix.texi:16351
+#: doc/guix.texi:19036
 #, no-wrap
 msgid "@code{additional-options} (default: @code{'()})"
 msgstr "@code{additional-options} (Vorgabe: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:16353
+#: doc/guix.texi:19038
 msgid "Additional command line options to pass to @code{memcached}."
 msgstr "Zusätzliche Befehlszeilenoptionen, die an @code{memcached} übergeben werden."
 
+#. type: subsubheading
+#: doc/guix.texi:19041
+#, no-wrap
+msgid "MongoDB"
+msgstr "MongoDB"
+
 #. type: defvr
-#: doc/guix.texi:16356
+#: doc/guix.texi:19043
 #, no-wrap
 msgid "{Scheme Variable} mongodb-service-type"
 msgstr "{Scheme-Variable} mongodb-service-type"
 
 #. type: defvr
-#: doc/guix.texi:16359
+#: doc/guix.texi:19046
 msgid "This is the service type for @uref{https://www.mongodb.com/, MongoDB}.  The value for the service type is a @code{mongodb-configuration} object."
 msgstr "Dies ist der Diensttyp für @uref{https://www.mongodb.com/, MongoDB}. Der Wert dieses Diensttyps ist ein @code{mongodb-configuration}-Objekt."
 
 #. type: lisp
-#: doc/guix.texi:16363
+#: doc/guix.texi:19050
 #, no-wrap
 msgid "(service mongodb-service-type)\n"
 msgstr "(service mongodb-service-type)\n"
 
 #. type: deftp
-#: doc/guix.texi:16365
+#: doc/guix.texi:19052
 #, no-wrap
 msgid "{Data Type} mongodb-configuration"
 msgstr "{Datentyp} mongodb-configuration"
 
 #. type: deftp
-#: doc/guix.texi:16367
+#: doc/guix.texi:19054
 msgid "Data type representing the configuration of mongodb."
 msgstr "Der Datentyp, der die Konfiguration von mongodb repräsentiert."
 
 #. type: item
-#: doc/guix.texi:16369
+#: doc/guix.texi:19056
 #, no-wrap
 msgid "@code{mongodb} (default: @code{mongodb})"
 msgstr "@code{mongodb} (Vorgabe: @code{mongodb})"
 
 #. type: table
-#: doc/guix.texi:16371
+#: doc/guix.texi:19058
 msgid "The MongoDB package to use."
 msgstr "Das zu benutzende MongoDB-Paket."
 
 #. type: item
-#: doc/guix.texi:16372
+#: doc/guix.texi:19059
 #, no-wrap
 msgid "@code{config-file} (default: @code{%default-mongodb-configuration-file})"
 msgstr "@code{config-file} (Vorgabe: @code{%default-mongodb-configuration-file})"
 
 #. type: table
-#: doc/guix.texi:16374
+#: doc/guix.texi:19061
 msgid "The configuration file for MongoDB."
 msgstr "Die Konfigurationsdatei für MongoDB."
 
 #. type: item
-#: doc/guix.texi:16375
+#: doc/guix.texi:19062
 #, no-wrap
 msgid "@code{data-directory} (default: @code{\"/var/lib/mongodb\"})"
 msgstr "@code{data-directory} (Vorgabe: @code{\"/var/lib/mongodb\"})"
 
 #. type: table
-#: doc/guix.texi:16379
+#: doc/guix.texi:19066
 msgid "This value is used to create the directory, so that it exists and is owned by the mongodb user.  It should match the data-directory which MongoDB is configured to use through the configuration file."
 msgstr "Dieser Wert wird benutzt, um das Verzeichnis so zu erstellen, dass es existiert und zum Benutzer mongodb gehört. Es sollte mit dem Verzeichnis übereinstimmen, das in der Konfigurationsdatei von MongoDB als „data-directory“ angegeben wird."
 
+#. type: subsubheading
+#: doc/guix.texi:19069
+#, no-wrap
+msgid "Redis"
+msgstr "Redis"
+
 #. type: defvr
-#: doc/guix.texi:16382
+#: doc/guix.texi:19071
 #, no-wrap
 msgid "{Scheme Variable} redis-service-type"
 msgstr "{Scheme-Variable} redis-service-type"
 
 #. type: defvr
-#: doc/guix.texi:16385
+#: doc/guix.texi:19074
 msgid "This is the service type for the @uref{https://redis.io/, Redis} key/value store, whose value is a @code{redis-configuration} object."
 msgstr "Dies ist der Diensttyp für den Schlüssel-/Wert-Speicher @uref{https://redis.io/, Redis}, dessen Wert ein @code{redis-configuration}-Objekt ist."
 
 #. type: deftp
-#: doc/guix.texi:16387
+#: doc/guix.texi:19076
 #, no-wrap
 msgid "{Data Type} redis-configuration"
 msgstr "{Datentyp} redis-configuration"
 
 #. type: deftp
-#: doc/guix.texi:16389
+#: doc/guix.texi:19078
 msgid "Data type representing the configuration of redis."
 msgstr "Der Datentyp, der die Konfiguration von redis repräsentiert."
 
 #. type: item
-#: doc/guix.texi:16391
+#: doc/guix.texi:19080
 #, no-wrap
 msgid "@code{redis} (default: @code{redis})"
 msgstr "@code{redis} (Vorgabe: @code{redis})"
 
 #. type: table
-#: doc/guix.texi:16393
+#: doc/guix.texi:19082
 msgid "The Redis package to use."
 msgstr "Das zu benutzende Redis-Paket."
 
 #. type: item
-#: doc/guix.texi:16394
+#: doc/guix.texi:19083
 #, no-wrap
 msgid "@code{bind} (default: @code{\"127.0.0.1\"})"
 msgstr "@code{bind} (Vorgabe: @code{\"127.0.0.1\"})"
 
 #. type: table
-#: doc/guix.texi:16396
+#: doc/guix.texi:19085
 msgid "Network interface on which to listen."
 msgstr "Die Netzwerkschnittstelle, auf der gelauscht wird."
 
 #. type: item
-#: doc/guix.texi:16397
+#: doc/guix.texi:19086
 #, no-wrap
 msgid "@code{port} (default: @code{6379})"
 msgstr "@code{port} (Vorgabe: @code{6379})"
 
 #. type: table
-#: doc/guix.texi:16400
+#: doc/guix.texi:19089
 msgid "Port on which to accept connections on, a value of 0 will disable listening on a TCP socket."
 msgstr "Der Port, auf dem Verbindungen akzeptiert werden. Ist der Wert 0, wird das Lauschen auf einem TCP-Socket deaktiviert."
 
 #. type: item
-#: doc/guix.texi:16401
+#: doc/guix.texi:19090
 #, no-wrap
 msgid "@code{working-directory} (default: @code{\"/var/lib/redis\"})"
 msgstr "@code{working-directory} (Vorgabe: @code{\"/var/lib/redis\"})"
 
 #. type: table
-#: doc/guix.texi:16403
+#: doc/guix.texi:19092
 msgid "Directory in which to store the database and related files."
 msgstr "Das Verzeichnis, in dem die Datenbank und damit zu tun habende Dateien gespeichert werden."
 
 #. type: cindex
-#: doc/guix.texi:16409
+#: doc/guix.texi:19098
 #, no-wrap
 msgid "mail"
 msgstr "Mail"
 
-#. type: code{#1}
-#: doc/guix.texi:16410 doc/guix.texi:21133
+#. type: cindex
+#: doc/guix.texi:19099
 #, no-wrap
 msgid "email"
 msgstr "email"
 
 #. type: Plain text
-#: doc/guix.texi:16415
+#: doc/guix.texi:19104
 msgid "The @code{(gnu services mail)} module provides Guix service definitions for email services: IMAP, POP3, and LMTP servers, as well as mail transport agents (MTAs).  Lots of acronyms! These services are detailed in the subsections below."
 msgstr "Das Modul @code{(gnu services mail)} stellt Guix-Dienstdefinitionen für E-Mail-Dienste zur Verfügung: IMAP-, POP3- und LMTP-Server sowie Mail Transport Agents (MTAs). Jede Menge Akronyme! Auf diese Dienste wird in den folgenden Unterabschnitten im Detail eingegangen."
 
 #. type: subsubheading
-#: doc/guix.texi:16416
+#: doc/guix.texi:19105
 #, no-wrap
 msgid "Dovecot Service"
 msgstr "Dovecot-Dienst"
 
 #. type: deffn
-#: doc/guix.texi:16418
+#: doc/guix.texi:19107
 #, no-wrap
 msgid "{Scheme Procedure} dovecot-service [#:config (dovecot-configuration)]"
 msgstr "{Scheme-Prozedur} dovecot-service [#:config (dovecot-configuration)]"
 
 #. type: deffn
-#: doc/guix.texi:16420
+#: doc/guix.texi:19109
 msgid "Return a service that runs the Dovecot IMAP/POP3/LMTP mail server."
 msgstr "Liefert einen Dienst, der den IMAP-/POP3-/LMTP-Mailserver Dovecot ausführt."
 
 #. type: Plain text
-#: doc/guix.texi:16430
+#: doc/guix.texi:19119
 msgid "By default, Dovecot does not need much configuration; the default configuration object created by @code{(dovecot-configuration)} will suffice if your mail is delivered to @code{~/Maildir}.  A self-signed certificate will be generated for TLS-protected connections, though Dovecot will also listen on cleartext ports by default.  There are a number of options, though, which mail administrators might need to change, and as is the case with other services, Guix allows the system administrator to specify these parameters via a uniform Scheme interface."
 msgstr "Normalerweise muss für Dovecot nicht viel eingestellt werden; das vorgegebene Konfigurationsobjekt, das mit @code{(dovecot-configuration)} erzeugt wird, wird genügen, wenn Ihre Mails in @code{~/Maildir} gespeichert werden. Ein selbstsigniertes Zertifikat wird für durch TLS geschützte Verbindungen generiert, aber Dovecot lauscht nach Vorgabe auch auf unverschlüsselten Ports. Es gibt jedoch eine Reihe von Optionen, die Mail-Administratoren unter Umständen ändern müssen, was Guix — wie auch bei anderen Diensten — mit einer einheitlichen Scheme-Schnittstelle möglich macht."
 
 #. type: Plain text
-#: doc/guix.texi:16433
+#: doc/guix.texi:19122
 msgid "For example, to specify that mail is located at @code{maildir~/.mail}, one would instantiate the Dovecot service like this:"
 msgstr "Um zum Beispiel anzugeben, dass sich Mails in @code{maildir~/.mail} befinden, würde man den Dovecot-Dienst wie folgt instanziieren:"
 
 #. type: lisp
-#: doc/guix.texi:16438
+#: doc/guix.texi:19127
 #, no-wrap
 msgid ""
 "(dovecot-service #:config\n"
@@ -30981,2379 +35569,2379 @@ msgstr ""
 "                  (mail-location \"maildir:~/.mail\")))\n"
 
 #. type: Plain text
-#: doc/guix.texi:16446
+#: doc/guix.texi:19135
 msgid "The available configuration parameters follow.  Each parameter definition is preceded by its type; for example, @samp{string-list foo} indicates that the @code{foo} parameter should be specified as a list of strings.  There is also a way to specify the configuration as a string, if you have an old @code{dovecot.conf} file that you want to port over from some other system; see the end for more details."
 msgstr "Im Folgenden sehen Sie die verfügbaren Konfigurationsparameter. Jeder Parameterdefinition ist ihr Typ vorangestellt; zum Beispiel bedeutet @samp{Zeichenketten-Liste foo}, dass der Parameter @code{foo} als eine Liste von Zeichenketten angegeben werden sollte. Es ist auch möglich, die Konfiguration als Zeichenkette anzugeben, wenn Sie eine alte @code{dovecot.conf}-Datei haben, die Sie von einem anderen System übernehmen möchten; am Ende finden Sie mehr Details dazu."
 
 #. type: Plain text
-#: doc/guix.texi:16456
+#: doc/guix.texi:19145
 msgid "Available @code{dovecot-configuration} fields are:"
 msgstr "Verfügbare @code{dovecot-configuration}-Felder sind:"
 
 #. type: deftypevr
-#: doc/guix.texi:16457
+#: doc/guix.texi:19146
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} package dovecot"
 msgstr "{@code{dovecot-configuration}-Parameter} „package“ dovecot"
 
 #. type: deftypevr
-#: doc/guix.texi:16459 doc/guix.texi:17765
+#: doc/guix.texi:19148 doc/guix.texi:20454
 msgid "The dovecot package."
 msgstr "Das Dovecot-Paket."
 
 #. type: deftypevr
-#: doc/guix.texi:16461
+#: doc/guix.texi:19150
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} comma-separated-string-list listen"
 msgstr "{@code{dovecot-configuration}-Parameter} Kommagetrennte-Zeichenketten-Liste listen"
 
 #. type: deftypevr
-#: doc/guix.texi:16467
+#: doc/guix.texi:19156
 msgid "A list of IPs or hosts where to listen for connections.  @samp{*} listens on all IPv4 interfaces, @samp{::} listens on all IPv6 interfaces.  If you want to specify non-default ports or anything more complex, customize the address and port fields of the @samp{inet-listener} of the specific services you are interested in."
 msgstr "Eine Liste der IPs oder der Rechnernamen („Hosts“), auf denen auf Verbindungen gelauscht wird. @samp{*} bedeutet, auf allen IPv4-Schnittstellen zu lauschen; @samp{::} lässt auf allen IPv6-Schnittstellen lauschen. Wenn Sie nicht der Vorgabe entsprechende Ports oder komplexere Einstellungen festlegen möchten, sollten Sie die Adress- und Portfelder des @samp{inet-listener} beim jeweiligen Dienst anpassen, für den Sie sich interessieren."
 
 #. type: deftypevr
-#: doc/guix.texi:16469
+#: doc/guix.texi:19158
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} protocol-configuration-list protocols"
 msgstr "{@code{dovecot-configuration}-Parameter} „protocol-configuration“-Liste protocols"
 
 #. type: deftypevr
-#: doc/guix.texi:16472
+#: doc/guix.texi:19161
 msgid "List of protocols we want to serve.  Available protocols include @samp{imap}, @samp{pop3}, and @samp{lmtp}."
 msgstr "Die Liste der Protokolle, die angeboten werden sollen. Zu den verfügbaren Protokollen gehören @samp{imap}, @samp{pop3} und @samp{lmtp}."
 
 #. type: deftypevr
-#: doc/guix.texi:16474
+#: doc/guix.texi:19163
 msgid "Available @code{protocol-configuration} fields are:"
 msgstr "Verfügbare @code{protocol-configuration}-Felder sind:"
 
 #. type: deftypevr
-#: doc/guix.texi:16475
+#: doc/guix.texi:19164
 #, no-wrap
 msgid "{@code{protocol-configuration} parameter} string name"
 msgstr "{@code{protocol-configuration}-Parameter} Zeichenkette name"
 
 #. type: deftypevr
-#: doc/guix.texi:16477
+#: doc/guix.texi:19166
 msgid "The name of the protocol."
 msgstr "Der Name des Protokolls."
 
 #. type: deftypevr
-#: doc/guix.texi:16479
+#: doc/guix.texi:19168
 #, no-wrap
 msgid "{@code{protocol-configuration} parameter} string auth-socket-path"
 msgstr "{@code{protocol-configuration}-Parameter} Zeichenkette auth-socket-path"
 
 #. type: deftypevr
-#: doc/guix.texi:16483
+#: doc/guix.texi:19172
 msgid "UNIX socket path to the master authentication server to find users.  This is used by imap (for shared users) and lda.  It defaults to @samp{\"/var/run/dovecot/auth-userdb\"}."
 msgstr "Der Pfad des UNIX-Sockets zum Hauptauthentifizierungsserver, um Benutzer zu finden. Er wird von imap (für geteilte Benutzer) und lda benutzt. Die Vorgabe ist @samp{\"/var/run/dovecot/auth-userdb\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16485
+#: doc/guix.texi:19174
 #, no-wrap
 msgid "{@code{protocol-configuration} parameter} space-separated-string-list mail-plugins"
 msgstr "{@code{protocol-configuration}-Parameter} Leerzeichengetrennte-Zeichenketten-Liste mail-plugins"
 
 #. type: deftypevr
-#: doc/guix.texi:16487
+#: doc/guix.texi:19176
 msgid "Space separated list of plugins to load."
 msgstr "Leerzeichengetrennte Liste der zu ladenden Plugins."
 
 #. type: deftypevr
-#: doc/guix.texi:16489
+#: doc/guix.texi:19178
 #, no-wrap
 msgid "{@code{protocol-configuration} parameter} non-negative-integer mail-max-userip-connections"
 msgstr "{@code{protocol-configuration}-Parameter} Nichtnegative-ganze-Zahl mail-max-userip-connections"
 
 #. type: deftypevr
-#: doc/guix.texi:16493
+#: doc/guix.texi:19182
 msgid "Maximum number of IMAP connections allowed for a user from each IP address.  NOTE: The username is compared case-sensitively.  Defaults to @samp{10}."
 msgstr "Die Maximalzahl der IMAP-Verbindungen, die jeder Nutzer von derselben IP-Adresse aus benutzen kann. @emph{Anmerkung}: Beim Vergleichen des Benutzernamens wird Groß- und Kleinschreibung unterschieden. Die Vorgabe ist @samp{10}."
 
 #. type: deftypevr
-#: doc/guix.texi:16497
+#: doc/guix.texi:19186
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} service-configuration-list services"
 msgstr "{@code{dovecot-configuration}-Parameter} „service-configuration“-Liste services"
 
 #. type: deftypevr
-#: doc/guix.texi:16501
+#: doc/guix.texi:19190
 msgid "List of services to enable.  Available services include @samp{imap}, @samp{imap-login}, @samp{pop3}, @samp{pop3-login}, @samp{auth}, and @samp{lmtp}."
 msgstr "Die Liste der zu aktivierenden Dienste. Zu den verfügbaren Diensten gehören @samp{imap}, @samp{imap-login}, @samp{pop3}, @samp{pop3-login}, @samp{auth} und @samp{lmtp}."
 
 #. type: deftypevr
-#: doc/guix.texi:16503
+#: doc/guix.texi:19192
 msgid "Available @code{service-configuration} fields are:"
 msgstr "Verfügbare @code{service-configuration}-Felder sind:"
 
 #. type: deftypevr
-#: doc/guix.texi:16504
+#: doc/guix.texi:19193
 #, no-wrap
 msgid "{@code{service-configuration} parameter} string kind"
 msgstr "{@code{service-configuration}-Parameter} Zeichenkette kind"
 
 #. type: deftypevr
-#: doc/guix.texi:16509
+#: doc/guix.texi:19198
 msgid "The service kind.  Valid values include @code{director}, @code{imap-login}, @code{pop3-login}, @code{lmtp}, @code{imap}, @code{pop3}, @code{auth}, @code{auth-worker}, @code{dict}, @code{tcpwrap}, @code{quota-warning}, or anything else."
 msgstr "Die Dienstart (englisch „kind“). Zu den gültigen Werten gehören @code{director}, @code{imap-login}, @code{pop3-login}, @code{lmtp}, @code{imap}, @code{pop3}, @code{auth}, @code{auth-worker}, @code{dict}, @code{tcpwrap}, @code{quota-warning} oder alles andere."
 
 #. type: deftypevr
-#: doc/guix.texi:16511
+#: doc/guix.texi:19200
 #, no-wrap
 msgid "{@code{service-configuration} parameter} listener-configuration-list listeners"
 msgstr "{@code{service-configuration}-Parameter} „listener-configuration“-Liste listeners"
 
 #. type: deftypevr
-#: doc/guix.texi:16516
+#: doc/guix.texi:19205
 msgid "Listeners for the service.  A listener is either a @code{unix-listener-configuration}, a @code{fifo-listener-configuration}, or an @code{inet-listener-configuration}.  Defaults to @samp{()}."
 msgstr "„Listener“ für den Dienst, also Lauscher auf neue Verbindungen. Als Listener kann entweder eine @code{unix-listener-configuration}, eine @code{fifo-listener-configuration} oder eine @code{inet-listener-configuration} angegeben werden. Die Vorgabe ist @samp{()}."
 
 #. type: deftypevr
-#: doc/guix.texi:16518
+#: doc/guix.texi:19207
 msgid "Available @code{unix-listener-configuration} fields are:"
 msgstr "Verfügbare @code{unix-listener-configuration}-Felder sind:"
 
 #. type: deftypevr
-#: doc/guix.texi:16519
+#: doc/guix.texi:19208
 #, no-wrap
 msgid "{@code{unix-listener-configuration} parameter} string path"
 msgstr "{@code{unix-listener-configuration}-Parameter} Zeichenkette path"
 
 #. type: deftypevr
-#: doc/guix.texi:16522 doc/guix.texi:16545
+#: doc/guix.texi:19211 doc/guix.texi:19234
 msgid "Path to the file, relative to @code{base-dir} field.  This is also used as the section name."
 msgstr "Der Pfad zur Datei, relativ zum Feld @code{base-dir}. Er wird auch als der Abschnittsname verwendet."
 
 #. type: deftypevr
-#: doc/guix.texi:16524
+#: doc/guix.texi:19213
 #, no-wrap
 msgid "{@code{unix-listener-configuration} parameter} string mode"
 msgstr "{@code{unix-listener-configuration}-Parameter} Zeichenkette mode"
 
 #. type: deftypevr
-#: doc/guix.texi:16527 doc/guix.texi:16550
+#: doc/guix.texi:19216 doc/guix.texi:19239
 msgid "The access mode for the socket.  Defaults to @samp{\"0600\"}."
 msgstr "Der Zugriffsmodus des Sockets. Die Vorgabe ist @samp{\"0600\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16529
+#: doc/guix.texi:19218
 #, no-wrap
 msgid "{@code{unix-listener-configuration} parameter} string user"
 msgstr "{@code{unix-listener-configuration}-Parameter} Zeichenkette user"
 
 #. type: deftypevr
-#: doc/guix.texi:16532 doc/guix.texi:16555
+#: doc/guix.texi:19221 doc/guix.texi:19244
 msgid "The user to own the socket.  Defaults to @samp{\"\"}."
 msgstr "Der Benutzer, dem der Socket gehört. Die Vorgabe ist @samp{\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16534
+#: doc/guix.texi:19223
 #, no-wrap
 msgid "{@code{unix-listener-configuration} parameter} string group"
 msgstr "{@code{unix-listener-configuration}-Parameter} Zeichenkette group"
 
 #. type: deftypevr
-#: doc/guix.texi:16537 doc/guix.texi:16560
+#: doc/guix.texi:19226 doc/guix.texi:19249
 msgid "The group to own the socket.  Defaults to @samp{\"\"}."
 msgstr "Die Gruppe, der der Socket gehört. Die Vorgabe ist @samp{\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16541
+#: doc/guix.texi:19230
 msgid "Available @code{fifo-listener-configuration} fields are:"
 msgstr "Verfügbare @code{fifo-listener-configuration}-Felder sind:"
 
 #. type: deftypevr
-#: doc/guix.texi:16542
+#: doc/guix.texi:19231
 #, no-wrap
 msgid "{@code{fifo-listener-configuration} parameter} string path"
 msgstr "{@code{fifo-listener-configuration}-Parameter} Zeichenkette path"
 
 #. type: deftypevr
-#: doc/guix.texi:16547
+#: doc/guix.texi:19236
 #, no-wrap
 msgid "{@code{fifo-listener-configuration} parameter} string mode"
 msgstr "{@code{fifo-listener-configuration}-Parameter} Zeichenkette mode"
 
 #. type: deftypevr
-#: doc/guix.texi:16552
+#: doc/guix.texi:19241
 #, no-wrap
 msgid "{@code{fifo-listener-configuration} parameter} string user"
 msgstr "{@code{fifo-listener-configuration}-Parameter} Zeichenkette user"
 
 #. type: deftypevr
-#: doc/guix.texi:16557
+#: doc/guix.texi:19246
 #, no-wrap
 msgid "{@code{fifo-listener-configuration} parameter} string group"
 msgstr "{@code{fifo-listener-configuration}-Parameter} Zeichenkette group"
 
 #. type: deftypevr
-#: doc/guix.texi:16564
+#: doc/guix.texi:19253
 msgid "Available @code{inet-listener-configuration} fields are:"
 msgstr "Verfügbare @code{inet-listener-configuration}-Felder sind:"
 
 #. type: deftypevr
-#: doc/guix.texi:16565
+#: doc/guix.texi:19254
 #, no-wrap
 msgid "{@code{inet-listener-configuration} parameter} string protocol"
 msgstr "{@code{inet-listener-configuration}-Parameter} Zeichenkette protocol"
 
 #. type: deftypevr
-#: doc/guix.texi:16567
+#: doc/guix.texi:19256
 msgid "The protocol to listen for."
 msgstr "Das Protokoll, auf das gelauscht wird."
 
 #. type: deftypevr
-#: doc/guix.texi:16569
+#: doc/guix.texi:19258
 #, no-wrap
 msgid "{@code{inet-listener-configuration} parameter} string address"
 msgstr "{@code{inet-listener-configuration}-Parameter} Zeichenkette address"
 
 #. type: deftypevr
-#: doc/guix.texi:16572
+#: doc/guix.texi:19261
 msgid "The address on which to listen, or empty for all addresses.  Defaults to @samp{\"\"}."
 msgstr "Die Adresse, auf der gelauscht wird. Bleibt das Feld leer, wird auf allen Adressen gelauscht. Die Vorgabe ist @samp{\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16574
+#: doc/guix.texi:19263
 #, no-wrap
 msgid "{@code{inet-listener-configuration} parameter} non-negative-integer port"
 msgstr "{@code{inet-listener-configuration}-Parameter} Nichtnegative-ganze-Zahl port"
 
 #. type: deftypevr
-#: doc/guix.texi:16576
+#: doc/guix.texi:19265
 msgid "The port on which to listen."
 msgstr "Der Port, auf dem gelauscht werden soll."
 
 #. type: deftypevr
-#: doc/guix.texi:16578
+#: doc/guix.texi:19267
 #, no-wrap
 msgid "{@code{inet-listener-configuration} parameter} boolean ssl?"
 msgstr "{@code{inet-listener-configuration}-Parameter} Boolescher-Ausdruck ssl?"
 
 #. type: deftypevr
-#: doc/guix.texi:16582
+#: doc/guix.texi:19271
 msgid "Whether to use SSL for this service; @samp{yes}, @samp{no}, or @samp{required}.  Defaults to @samp{#t}."
 msgstr "Ob für diesen Dienst SSL benutzt werden kann: @samp{yes} für ja, @samp{no} für nein oder @samp{required} für „verpflichtend“. Die Vorgabe ist @samp{#t}."
 
 #. type: deftypevr
-#: doc/guix.texi:16586
+#: doc/guix.texi:19275
 #, no-wrap
 msgid "{@code{service-configuration} parameter} non-negative-integer client-limit"
 msgstr "{@code{service-configuration}-Parameter} Nichtnegative-ganze-Zahl client-limit"
 
 #. type: deftypevr
-#: doc/guix.texi:16591
+#: doc/guix.texi:19280
 msgid "Maximum number of simultaneous client connections per process.  Once this number of connections is received, the next incoming connection will prompt Dovecot to spawn another process.  If set to 0, @code{default-client-limit} is used instead."
 msgstr "Die maximale Anzahl gleichzeitiger Verbindungen mit Clients pro Prozess. Sobald diese Anzahl von Verbindungen eingegangen ist, bewirkt das Eingehen der nächsten Verbindung, dass Dovecot einen weiteren Prozess startet. Ist sie auf 0 gesetzt, benutzt Dovecot stattdessen @code{default-client-limit}."
 
 #. type: deftypevr
-#: doc/guix.texi:16596
+#: doc/guix.texi:19285
 #, no-wrap
 msgid "{@code{service-configuration} parameter} non-negative-integer service-count"
 msgstr "{@code{service-configuration}-Parameter} Nichtnegative-ganze-Zahl service-count"
 
 #. type: deftypevr
-#: doc/guix.texi:16601
+#: doc/guix.texi:19290
 msgid "Number of connections to handle before starting a new process.  Typically the only useful values are 0 (unlimited) or 1.  1 is more secure, but 0 is faster.  <doc/wiki/LoginProcess.txt>.  Defaults to @samp{1}."
 msgstr "Die Anzahl Verbindungen, die behandelt werden, bevor ein neuer Prozess gestartet wird. Typischerweise sind die einzig sinnvollen Werte 0 (unbeschränkt) oder 1. 1 ist sicherer, aber 0 ist schneller. Siehe <doc/wiki/LoginProcess.txt>. Die Vorgabe ist @samp{1}."
 
 #. type: deftypevr
-#: doc/guix.texi:16604
+#: doc/guix.texi:19293
 #, no-wrap
 msgid "{@code{service-configuration} parameter} non-negative-integer process-limit"
 msgstr "{@code{service-configuration}-Parameter} Nichtnegative-ganze-Zahl process-limit"
 
 #. type: deftypevr
-#: doc/guix.texi:16607
+#: doc/guix.texi:19296
 msgid "Maximum number of processes that can exist for this service.  If set to 0, @code{default-process-limit} is used instead."
 msgstr "Die maximale Anzahl von Prozessen, die für diesen Dienst existieren können. Wenn sie auf 0 gesetzt ist, benutzt Dovecot stattdessen @code{default-process-limit}."
 
 #. type: deftypevr
-#: doc/guix.texi:16612
+#: doc/guix.texi:19301
 #, no-wrap
 msgid "{@code{service-configuration} parameter} non-negative-integer process-min-avail"
 msgstr "{@code{service-configuration}-Parameter} Nichtnegative-ganze-Zahl process-min-avail"
 
 #. type: deftypevr
-#: doc/guix.texi:16615
+#: doc/guix.texi:19304
 msgid "Number of processes to always keep waiting for more connections.  Defaults to @samp{0}."
 msgstr "Die Anzahl der Prozesse, mit denen immer auf neue Verbindungen gewartet wird. Die Vorgabe ist @samp{0}."
 
 #. type: deftypevr
-#: doc/guix.texi:16617
+#: doc/guix.texi:19306
 #, no-wrap
 msgid "{@code{service-configuration} parameter} non-negative-integer vsz-limit"
 msgstr "{@code{service-configuration}-Parameter} Nichtnegative-ganze-Zahl vsz-limit"
 
 #. type: deftypevr
-#: doc/guix.texi:16621
+#: doc/guix.texi:19310
 msgid "If you set @samp{service-count 0}, you probably need to grow this.  Defaults to @samp{256000000}."
 msgstr "Wenn Sie @samp{service-count 0} festlegen, müssen Sie hierfür wahrscheinlich eine größere Zahl wählen. Die Vorgabe ist @samp{256000000}."
 
 #. type: deftypevr
-#: doc/guix.texi:16625
+#: doc/guix.texi:19314
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} dict-configuration dict"
 msgstr "{@code{dovecot-configuration}-Parameter} dict-configuration dict"
 
 #. type: deftypevr
-#: doc/guix.texi:16628
+#: doc/guix.texi:19317
 msgid "Dict configuration, as created by the @code{dict-configuration} constructor."
 msgstr "Die Wörterbuchkonfiguration, wie sie der @code{dict-configuration}-Konstruktor erzeugt."
 
 #. type: deftypevr
-#: doc/guix.texi:16630
+#: doc/guix.texi:19319
 msgid "Available @code{dict-configuration} fields are:"
 msgstr "Verfügbare @code{dict-configuration}-Felder sind:"
 
 #. type: deftypevr
-#: doc/guix.texi:16631
+#: doc/guix.texi:19320
 #, no-wrap
 msgid "{@code{dict-configuration} parameter} free-form-fields entries"
 msgstr "{@code{dict-configuration}-Parameter} Formlose-Felder entries"
 
 #. type: deftypevr
-#: doc/guix.texi:16634
+#: doc/guix.texi:19323
 msgid "A list of key-value pairs that this dict should hold.  Defaults to @samp{()}."
 msgstr "Eine Liste von Schlüssel-Wert-Paaren, die in diesem Wörterbuch enthalten sein sollen. Die Vorgabe ist @samp{()}."
 
 #. type: deftypevr
-#: doc/guix.texi:16638
+#: doc/guix.texi:19327
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} passdb-configuration-list passdbs"
 msgstr "{@code{dovecot-configuration}-Parameter} „passdb-configuration“-Liste passdbs"
 
 #. type: deftypevr
-#: doc/guix.texi:16641
+#: doc/guix.texi:19330
 msgid "A list of passdb configurations, each one created by the @code{passdb-configuration} constructor."
 msgstr "Eine Liste von Passwortdatenbankkonfigurationen, die jeweils mit dem @code{passdb-configuration}-Konstruktor erzeugt werden."
 
 #. type: deftypevr
-#: doc/guix.texi:16643
+#: doc/guix.texi:19332
 msgid "Available @code{passdb-configuration} fields are:"
 msgstr "Verfügbare @code{passdb-configuration}-Felder sind:"
 
 #. type: deftypevr
-#: doc/guix.texi:16644
+#: doc/guix.texi:19333
 #, no-wrap
 msgid "{@code{passdb-configuration} parameter} string driver"
 msgstr "{@code{passdb-configuration}-Parameter} Zeichenkette driver"
 
 #. type: deftypevr
-#: doc/guix.texi:16649
+#: doc/guix.texi:19338
 msgid "The driver that the passdb should use.  Valid values include @samp{pam}, @samp{passwd}, @samp{shadow}, @samp{bsdauth}, and @samp{static}.  Defaults to @samp{\"pam\"}."
 msgstr "Der Treiber, den die Passwortdatenbank benutzen soll. Zu den gültigen Werten gehören @samp{pam}, @samp{passwd}, @samp{shadow}, @samp{bsdauth} und @samp{static}. Die Vorgabe ist @samp{\"pam\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16651
+#: doc/guix.texi:19340
 #, no-wrap
 msgid "{@code{passdb-configuration} parameter} space-separated-string-list args"
 msgstr "{@code{passdb-configuration}-Parameter} Leerzeichengetrennte-Zeichenketten-Liste args"
 
 #. type: deftypevr
-#: doc/guix.texi:16654
+#: doc/guix.texi:19343
 msgid "Space separated list of arguments to the passdb driver.  Defaults to @samp{\"\"}."
 msgstr "Leerzeichengetrennte Liste der Argumente an den Passwortdatenbanktreiber. Die Vorgabe ist @samp{\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16658
+#: doc/guix.texi:19347
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} userdb-configuration-list userdbs"
 msgstr "{@code{dovecot-configuration}-Parameter} „userdb-configuration“-Liste userdbs"
 
 #. type: deftypevr
-#: doc/guix.texi:16661
+#: doc/guix.texi:19350
 msgid "List of userdb configurations, each one created by the @code{userdb-configuration} constructor."
 msgstr "Liste der Benutzerdatenbankkonfigurationen, die jeweils mit dem @code{userdb-configuration}-Konstruktor erzeugt werden."
 
 #. type: deftypevr
-#: doc/guix.texi:16663
+#: doc/guix.texi:19352
 msgid "Available @code{userdb-configuration} fields are:"
 msgstr "Verfügbare @code{userdb-configuration}-Felder sind:"
 
 #. type: deftypevr
-#: doc/guix.texi:16664
+#: doc/guix.texi:19353
 #, no-wrap
 msgid "{@code{userdb-configuration} parameter} string driver"
 msgstr "{@code{userdb-configuration}-Parameter} Zeichenkette driver"
 
 #. type: deftypevr
-#: doc/guix.texi:16668
+#: doc/guix.texi:19357
 msgid "The driver that the userdb should use.  Valid values include @samp{passwd} and @samp{static}.  Defaults to @samp{\"passwd\"}."
 msgstr "Der Treiber, den die Benutzerdatenbank benutzen soll. Zu den gültigen Werten gehören @samp{passwd} und @samp{static}. Die Vorgabe ist @samp{\"passwd\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16670
+#: doc/guix.texi:19359
 #, no-wrap
 msgid "{@code{userdb-configuration} parameter} space-separated-string-list args"
 msgstr "{@code{userdb-configuration}-Parameter} Leerzeichengetrennte-Zeichenketten-Liste args"
 
 #. type: deftypevr
-#: doc/guix.texi:16673
+#: doc/guix.texi:19362
 msgid "Space separated list of arguments to the userdb driver.  Defaults to @samp{\"\"}."
 msgstr "Leerzeichengetrennte Liste der Argumente an den Benutzerdatenbanktreiber. Die Vorgabe ist @samp{\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16675
+#: doc/guix.texi:19364
 #, no-wrap
 msgid "{@code{userdb-configuration} parameter} free-form-args override-fields"
 msgstr "{@code{userdb-configuration}-Parameter} Formlose-Argumente override-fields"
 
 #. type: deftypevr
-#: doc/guix.texi:16678
+#: doc/guix.texi:19367
 msgid "Override fields from passwd.  Defaults to @samp{()}."
 msgstr "Einträge, die Vorrang vor den Feldern aus passwd haben. Die Vorgabe ist @samp{()}."
 
 #. type: deftypevr
-#: doc/guix.texi:16682
+#: doc/guix.texi:19371
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} plugin-configuration plugin-configuration"
 msgstr "{@code{dovecot-configuration}-Parameter} „plugin-configuration“ plugin-configuration"
 
 #. type: deftypevr
-#: doc/guix.texi:16685
+#: doc/guix.texi:19374
 msgid "Plug-in configuration, created by the @code{plugin-configuration} constructor."
 msgstr "Die Plugin-Konfiguration, die vom @code{plugin-configuration}-Konstruktor erzeugt wird."
 
 #. type: deftypevr
-#: doc/guix.texi:16687
+#: doc/guix.texi:19376
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} list-of-namespace-configuration namespaces"
 msgstr "{@code{dovecot-configuration}-Parameter} „namespace-configuration“-Liste namespaces"
 
 #. type: deftypevr
-#: doc/guix.texi:16690
+#: doc/guix.texi:19379
 msgid "List of namespaces.  Each item in the list is created by the @code{namespace-configuration} constructor."
 msgstr "Liste der Namensräume. Jedes Objekt in der Liste wird durch den @code{namespace-configuration}-Konstruktor erzeugt."
 
 #. type: deftypevr
-#: doc/guix.texi:16692
+#: doc/guix.texi:19381
 msgid "Available @code{namespace-configuration} fields are:"
 msgstr "Verfügbare @code{namespace-configuration}-Felder sind:"
 
 #. type: deftypevr
-#: doc/guix.texi:16693
+#: doc/guix.texi:19382
 #, no-wrap
 msgid "{@code{namespace-configuration} parameter} string name"
 msgstr "{@code{namespace-configuration}-Parameter} Zeichenkette name"
 
 #. type: deftypevr
-#: doc/guix.texi:16695
+#: doc/guix.texi:19384
 msgid "Name for this namespace."
 msgstr "Der Name dieses Namensraums."
 
 #. type: deftypevr
-#: doc/guix.texi:16697
+#: doc/guix.texi:19386
 #, no-wrap
 msgid "{@code{namespace-configuration} parameter} string type"
 msgstr "{@code{namespace-configuration}-Parameter} Zeichenkette type"
 
 #. type: deftypevr
-#: doc/guix.texi:16700
+#: doc/guix.texi:19389
 msgid "Namespace type: @samp{private}, @samp{shared} or @samp{public}.  Defaults to @samp{\"private\"}."
 msgstr "Namensraum-Typ: @samp{private}, @samp{shared} oder @samp{public}. Die Vorgabe ist @samp{\"private\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16702
+#: doc/guix.texi:19391
 #, no-wrap
 msgid "{@code{namespace-configuration} parameter} string separator"
 msgstr "{@code{namespace-configuration}-Parameter} Zeichenkette separator"
 
 #. type: deftypevr
-#: doc/guix.texi:16708
+#: doc/guix.texi:19397
 msgid "Hierarchy separator to use. You should use the same separator for all namespaces or some clients get confused.  @samp{/} is usually a good one.  The default however depends on the underlying mail storage format.  Defaults to @samp{\"\"}."
 msgstr "Welche Trennzeichen in der Hierarchie von Namensräumen benutzt werden sollen. Sie sollten denselben Trenner für alle Namensräume benutzen, sonst führt es zu Verwirrung bei manchen Clients. Meistens ist @samp{/} eine gute Wahl, die Voreinstellung ist allerdings abhängig vom darunterliegenden Mail-Speicher-Format. Die Vorgabe ist @samp{\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16710
+#: doc/guix.texi:19399
 #, no-wrap
 msgid "{@code{namespace-configuration} parameter} string prefix"
 msgstr "{@code{namespace-configuration}-Parameter} Zeichenkette prefix"
 
 #. type: deftypevr
-#: doc/guix.texi:16714
+#: doc/guix.texi:19403
 msgid "Prefix required to access this namespace.  This needs to be different for all namespaces. For example @samp{Public/}.  Defaults to @samp{\"\"}."
 msgstr "Das Präfix, das für Zugang auf diesen Namensraum angegeben werden muss. Es muss für jeden Namensraum ein anderes gewählt werden. Ein Beispiel ist @samp{Public/}. Die Vorgabe ist @samp{\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16716
+#: doc/guix.texi:19405
 #, no-wrap
 msgid "{@code{namespace-configuration} parameter} string location"
 msgstr "{@code{namespace-configuration}-Parameter} Zeichenkette location"
 
 #. type: deftypevr
-#: doc/guix.texi:16720
+#: doc/guix.texi:19409
 msgid "Physical location of the mailbox. This is in the same format as mail_location, which is also the default for it.  Defaults to @samp{\"\"}."
 msgstr "Der physische Ort, an dem sich dieses Postfach („Mailbox“) befindet. Das Format ist dasselbe wie beim Mail-Ort („mail location“), der auch als Voreinstellung hierfür benutzt wird. Die Vorgabe ist @samp{\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16722
+#: doc/guix.texi:19411
 #, no-wrap
 msgid "{@code{namespace-configuration} parameter} boolean inbox?"
 msgstr "{@code{namespace-configuration}-Parameter} Boolescher-Ausdruck inbox?"
 
 #. type: deftypevr
-#: doc/guix.texi:16726
+#: doc/guix.texi:19415
 msgid "There can be only one INBOX, and this setting defines which namespace has it.  Defaults to @samp{#f}."
 msgstr "Es kann nur eine INBOX geben; hiermit wird festgelegt, zu welchem Namensraum sie gehört. Die Vorgabe ist @samp{#f}."
 
 #. type: deftypevr
-#: doc/guix.texi:16728
+#: doc/guix.texi:19417
 #, no-wrap
 msgid "{@code{namespace-configuration} parameter} boolean hidden?"
 msgstr "{@code{namespace-configuration}-Parameter} Boolescher-Ausdruck hidden?"
 
 #. type: deftypevr
-#: doc/guix.texi:16736
+#: doc/guix.texi:19425
 msgid "If namespace is hidden, it's not advertised to clients via NAMESPACE extension. You'll most likely also want to set @samp{list? #f}.  This is mostly useful when converting from another server with different namespaces which you want to deprecate but still keep working.  For example you can create hidden namespaces with prefixes @samp{~/mail/}, @samp{~%u/mail/} and @samp{mail/}.  Defaults to @samp{#f}."
 msgstr "Wenn der Namensraum versteckt ist, wird er Clients gegenüber @emph{nicht} über die NAMESPACE-Erweiterung mitgeteilt. Wahrscheinlich möchten Sie auch @samp{list? #f} festlegen. Das ist in erster Linie dann nützlich, wenn Sie von einem anderen Server mit anderen Namensräumen umziehen, die Sie ersetzen möchten, die aber trotzdem noch weiterhin funktionieren sollen. Zum Beispiel können Sie versteckte Namensräume mit Präfixen @samp{~/mail/}, @samp{~%u/mail/} und @samp{mail/} anlegen. Die Vorgabe ist @samp{#f}."
 
 #. type: deftypevr
-#: doc/guix.texi:16738
+#: doc/guix.texi:19427
 #, no-wrap
 msgid "{@code{namespace-configuration} parameter} boolean list?"
 msgstr "{@code{namespace-configuration}-Parameter} Boolescher-Ausdruck list?"
 
 #. type: deftypevr
-#: doc/guix.texi:16744
+#: doc/guix.texi:19433
 msgid "Show the mailboxes under this namespace with the LIST command. This makes the namespace visible for clients that do not support the NAMESPACE extension.  The special @code{children} value lists child mailboxes, but hides the namespace prefix.  Defaults to @samp{#t}."
 msgstr "Ob die Postfächer („Mailboxes“) unter diesem Namensraum mit dem LIST-Befehl angezeigt werden können. Dadurch wird der Namensraum für Clients sichtbar, die die NAMESPACE-Erweiterung nicht unterstützen. Mit dem besonderen Wert @code{children} werden auch Kind-Postfächer aufgelistet, aber das Namensraumpräfix verborgen. Die Vorgabe ist @samp{#t}."
 
 #. type: deftypevr
-#: doc/guix.texi:16746
+#: doc/guix.texi:19435
 #, no-wrap
 msgid "{@code{namespace-configuration} parameter} boolean subscriptions?"
 msgstr "{@code{namespace-configuration}-Parameter} Boolescher-Ausdruck subscriptions?"
 
 #. type: deftypevr
-#: doc/guix.texi:16751
+#: doc/guix.texi:19440
 msgid "Namespace handles its own subscriptions.  If set to @code{#f}, the parent namespace handles them.  The empty prefix should always have this as @code{#t}).  Defaults to @samp{#t}."
 msgstr "Die Abonnements werden im Namensraum selbst behandelt. Wenn es auf @code{#f} gesetzt ist, werden sie im Elternnamensraum behandelt. Das leere Präfix sollte hier immer @code{#t} haben. Die Vorgabe ist @samp{#t}."
 
 #. type: deftypevr
-#: doc/guix.texi:16753
+#: doc/guix.texi:19442
 #, no-wrap
 msgid "{@code{namespace-configuration} parameter} mailbox-configuration-list mailboxes"
 msgstr "{@code{namespace-configuration}-Parameter} „mailbox-configuration“-Liste mailboxes"
 
 #. type: deftypevr
-#: doc/guix.texi:16756
+#: doc/guix.texi:19445
 msgid "List of predefined mailboxes in this namespace.  Defaults to @samp{()}."
 msgstr "Die Liste der in diesem Namensraum vordefinierten Postfächer. Die Vorgabe ist @samp{()}."
 
 #. type: deftypevr
-#: doc/guix.texi:16758
+#: doc/guix.texi:19447
 msgid "Available @code{mailbox-configuration} fields are:"
 msgstr "Verfügbare @code{mailbox-configuration}-Felder sind:"
 
 #. type: deftypevr
-#: doc/guix.texi:16759
+#: doc/guix.texi:19448
 #, no-wrap
 msgid "{@code{mailbox-configuration} parameter} string name"
 msgstr "{@code{mailbox-configuration}-Parameter} Zeichenkette name"
 
 #. type: deftypevr
-#: doc/guix.texi:16761
+#: doc/guix.texi:19450
 msgid "Name for this mailbox."
 msgstr "Der Name dieses Postfachs (dieser „Mailbox“)."
 
 #. type: deftypevr
-#: doc/guix.texi:16763
+#: doc/guix.texi:19452
 #, no-wrap
 msgid "{@code{mailbox-configuration} parameter} string auto"
 msgstr "{@code{mailbox-configuration}-Parameter} Zeichenkette auto"
 
 #. type: deftypevr
-#: doc/guix.texi:16767
+#: doc/guix.texi:19456
 msgid "@samp{create} will automatically create this mailbox.  @samp{subscribe} will both create and subscribe to the mailbox.  Defaults to @samp{\"no\"}."
 msgstr "Bei @samp{create} wird dieses Postfach automatisch erzeugt. Bei @samp{subscribe} wird dieses Postfach sowohl automatisch erzeugt als auch automatisch abonniert. Die Vorgabe ist @samp{\"no\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16769
+#: doc/guix.texi:19458
 #, no-wrap
 msgid "{@code{mailbox-configuration} parameter} space-separated-string-list special-use"
 msgstr "{@code{mailbox-configuration}-Parameter} Leerzeichengetrennte-Zeichenketten-Liste special-use"
 
 #. type: deftypevr
-#: doc/guix.texi:16774
+#: doc/guix.texi:19463
 msgid "List of IMAP @code{SPECIAL-USE} attributes as specified by RFC 6154.  Valid values are @code{\\All}, @code{\\Archive}, @code{\\Drafts}, @code{\\Flagged}, @code{\\Junk}, @code{\\Sent}, and @code{\\Trash}.  Defaults to @samp{()}."
 msgstr "Liste der @code{SPECIAL-USE}-Attribute von IMAP, wie sie im RFC 6154 festgelegt wurden. Gültige Werte sind @code{\\All}, @code{\\Archive}, @code{\\Drafts}, @code{\\Flagged}, @code{\\Junk}, @code{\\Sent} und @code{\\Trash}. Die Vorgabe ist @samp{()}."
 
 #. type: deftypevr
-#: doc/guix.texi:16780
+#: doc/guix.texi:19469
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} file-name base-dir"
 msgstr "{@code{dovecot-configuration}-Parameter} Dateiname base-dir"
 
 #. type: deftypevr
-#: doc/guix.texi:16783
+#: doc/guix.texi:19472
 msgid "Base directory where to store runtime data.  Defaults to @samp{\"/var/run/dovecot/\"}."
 msgstr "Das Basisverzeichnis, in dem Laufzeitdaten gespeichert werden. Die Vorgabe ist @samp{\"/var/run/dovecot/\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16785
+#: doc/guix.texi:19474
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string login-greeting"
 msgstr "{@code{dovecot-configuration}-Parameter} Zeichenkette login-greeting"
 
 #. type: deftypevr
-#: doc/guix.texi:16788
+#: doc/guix.texi:19477
 msgid "Greeting message for clients.  Defaults to @samp{\"Dovecot ready.\"}."
 msgstr "Begrüßungsnachricht für Clients. Die Vorgabe ist @samp{\"Dovecot ready.\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16790
+#: doc/guix.texi:19479
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} space-separated-string-list login-trusted-networks"
 msgstr "{@code{dovecot-configuration}-Parameter} Leerzeichengetrennte-Zeichenketten-Liste login-trusted-networks"
 
 #. type: deftypevr
-#: doc/guix.texi:16797
+#: doc/guix.texi:19486
 msgid "List of trusted network ranges.  Connections from these IPs are allowed to override their IP addresses and ports (for logging and for authentication checks).  @samp{disable-plaintext-auth} is also ignored for these networks.  Typically you would specify your IMAP proxy servers here.  Defaults to @samp{()}."
 msgstr "Die Liste der Netzwerkbereiche, denen vertraut wird. Für Verbindungen von diesen IP-Adressen können abweichende IP-Adressen und Ports angegeben werden (zur Protokollierung und zur Authentifizierung). @samp{disable-plaintext-auth} wird für diese Netzwerke außerdem ignoriert. Normalerweise würden Sie hier Ihre IMAP-Proxy-Server eintragen. Die Vorgabe ist @samp{()}."
 
 #. type: deftypevr
-#: doc/guix.texi:16799
+#: doc/guix.texi:19488
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} space-separated-string-list login-access-sockets"
 msgstr "{@code{dovecot-configuration}-Parameter} Leerzeichengetrennte-Zeichenketten-Liste login-access-sockets"
 
 #. type: deftypevr
-#: doc/guix.texi:16802
+#: doc/guix.texi:19491
 msgid "List of login access check sockets (e.g.@: tcpwrap).  Defaults to @samp{()}."
 msgstr "Die Liste der Sockets zur Zugriffsprüfung beim Anmelden (z.B.@: tcpwrap). Die Vorgabe ist @samp{()}."
 
 #. type: deftypevr
-#: doc/guix.texi:16804
+#: doc/guix.texi:19493
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean verbose-proctitle?"
 msgstr "{@code{dovecot-configuration}-Parameter} Boolescher-Ausdruck verbose-proctitle?"
 
 #. type: deftypevr
-#: doc/guix.texi:16810
+#: doc/guix.texi:19499
 msgid "Show more verbose process titles (in ps).  Currently shows user name and IP address.  Useful for seeing who is actually using the IMAP processes (e.g.@: shared mailboxes or if the same uid is used for multiple accounts).  Defaults to @samp{#f}."
 msgstr "Ausführlichere Prozessnamen anzeigen (mit „ps“). Nach Voreinstellung werden Benutzername und IP-Adresse angezeigt. Die Einstellung ist nützlich, wenn man sehen können will, wer tatsächlich IMAP-Prozesse benutzt (z.B.@: gemeinsam genutzte Postfächer oder wenn derselbe Benutzeridentifikator/„UID“ für mehrere Konten benutzt wird). Die Vorgabe ist @samp{#f}."
 
 #. type: deftypevr
-#: doc/guix.texi:16812
+#: doc/guix.texi:19501
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean shutdown-clients?"
 msgstr "{@code{dovecot-configuration}-Parameter} Boolescher-Ausdruck shutdown-clients?"
 
 #. type: deftypevr
-#: doc/guix.texi:16818
+#: doc/guix.texi:19507
 msgid "Should all processes be killed when Dovecot master process shuts down.  Setting this to @code{#f} means that Dovecot can be upgraded without forcing existing client connections to close (although that could also be a problem if the upgrade is e.g.@: due to a security fix).  Defaults to @samp{#t}."
 msgstr "Ob alle Prozesse abgewürgt werden sollen, wenn der Haupt-Dovecot-Prozess terminiert. Ist dies auf @code{#f} gesetzt, kann Dovecot aktualisiert werden, ohne dass bestehende Client-Verbindungen zwangsweise geschlossen werden (jedoch kann das problematisch sein, wenn die Aktualisierung z.B.@: eine Sicherheitslücke schließen soll). Die Vorgabe ist @samp{#t}."
 
 #. type: deftypevr
-#: doc/guix.texi:16820
+#: doc/guix.texi:19509
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} non-negative-integer doveadm-worker-count"
 msgstr "{@code{dovecot-configuration}-Parameter} Nichtnegative-ganze-Zahl doveadm-worker-count"
 
 #. type: deftypevr
-#: doc/guix.texi:16824
+#: doc/guix.texi:19513
 msgid "If non-zero, run mail commands via this many connections to doveadm server, instead of running them directly in the same process.  Defaults to @samp{0}."
 msgstr "Ist dies @emph{nicht} null, werden Mail-Befehle über die angegebene Anzahl von Verbindungen an den doveadm-Server geschickt, statt sie direkt im selben Prozess auszuführen. Die Vorgabe ist @samp{0}."
 
 #. type: deftypevr
-#: doc/guix.texi:16826
+#: doc/guix.texi:19515
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string doveadm-socket-path"
 msgstr "{@code{dovecot-configuration}-Parameter} Zeichenkette doveadm-socket-path"
 
 #. type: deftypevr
-#: doc/guix.texi:16829
+#: doc/guix.texi:19518
 msgid "UNIX socket or host:port used for connecting to doveadm server.  Defaults to @samp{\"doveadm-server\"}."
 msgstr "Der UNIX-Socket oder das „Host:Port“-Paar, mit dem Verbindungen zum doveadm-Server hergestellt werden. Die Vorgabe ist @samp{\"doveadm-server\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16831
+#: doc/guix.texi:19520
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} space-separated-string-list import-environment"
 msgstr "{@code{dovecot-configuration}-Parameter} Leerzeichengetrennte-Zeichenketten-Liste import-environment"
 
 #. type: deftypevr
-#: doc/guix.texi:16835
+#: doc/guix.texi:19524
 msgid "List of environment variables that are preserved on Dovecot startup and passed down to all of its child processes.  You can also give key=value pairs to always set specific settings."
 msgstr "Die Liste der Umgebungsvariablen, die beim Starten von Dovecot erhalten bleiben und allen Kindprozessen davon mitgegeben werden. Sie können auch „Schlüssel=Wert“-Paare angeben, um wie immer bestimmte Zuweisungen festzulegen."
 
 #. type: deftypevr
-#: doc/guix.texi:16837
+#: doc/guix.texi:19526
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean disable-plaintext-auth?"
 msgstr "{@code{dovecot-configuration}-Parameter} Boolescher-Ausdruck disable-plaintext-auth?"
 
 #. type: deftypevr
-#: doc/guix.texi:16844
+#: doc/guix.texi:19533
 msgid "Disable LOGIN command and all other plaintext authentications unless SSL/TLS is used (LOGINDISABLED capability).  Note that if the remote IP matches the local IP (i.e.@: you're connecting from the same computer), the connection is considered secure and plaintext authentication is allowed.  See also ssl=required setting.  Defaults to @samp{#t}."
 msgstr "Deaktiviert den LOGIN-Befehl und alle anderen Klartext-Authentisierungsverfahren, solange kein SSL/TLS benutzt wird (die LOGINDISABLED-Capability). Beachten Sie, dass, wenn die entfernte IP-Adresse mit der lokalen IP-Adresse identisch ist (Sie sich also vom selben Rechner aus verbinden), die Verbindung als sicher aufgefasst und Klartext-Authentisierung möglich ist. Siehe auch die „ssl=required“-Einstellung. Die Vorgabe ist @samp{#t}."
 
 #. type: deftypevr
-#: doc/guix.texi:16846
+#: doc/guix.texi:19535
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} non-negative-integer auth-cache-size"
 msgstr "{@code{dovecot-configuration}-Parameter} Nichtnegative-ganze-Zahl auth-cache-size"
 
 #. type: deftypevr
-#: doc/guix.texi:16851
+#: doc/guix.texi:19540
 msgid "Authentication cache size (e.g.@: @samp{#e10e6}).  0 means it's disabled.  Note that bsdauth, PAM and vpopmail require @samp{cache-key} to be set for caching to be used.  Defaults to @samp{0}."
 msgstr "Die Größe des Zwischenspeichers für Authentifizierungen (z.B.@: @samp{#e10e6}). Bei 0 ist er deaktiviert. Beachten Sie, dass für bsdauth, PAM und vpopmail die Einstellung @samp{cache-key} festgelegt sein muss, damit ein Zwischenspeicher benutzt wird. Die Vorgabe ist @samp{0}."
 
 #. type: deftypevr
-#: doc/guix.texi:16853
+#: doc/guix.texi:19542
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string auth-cache-ttl"
 msgstr "{@code{dovecot-configuration}-Parameter} Zeichenkette auth-cache-ttl"
 
 #. type: deftypevr
-#: doc/guix.texi:16861
+#: doc/guix.texi:19550
 msgid "Time to live for cached data.  After TTL expires the cached record is no longer used, *except* if the main database lookup returns internal failure.  We also try to handle password changes automatically: If user's previous authentication was successful, but this one wasn't, the cache isn't used.  For now this works only with plaintext authentication.  Defaults to @samp{\"1 hour\"}."
 msgstr "Wie lange Daten im Zwischenspeicher gültig bleiben („Time to live“). Nachdem die TTL ausläuft, wird der zwischengespeicherte Eintrag nicht mehr benutzt, @emph{außer} wenn eine Auflösung über die Hauptdatenbank zu einem internen Fehler führt. Dovecot versucht zudem, Passwortänderungen automatisch zu behandeln: Wenn die letzte Authentisierung erfolgreich war, diese jetzt aber nicht, wird der Zwischenspeicher @emph{nicht} benutzt. Derzeit funktioniert dies nur bei Klartext-Authentisierung. Die Vorgabe ist @samp{\"1 hour\"} für 1 Stunde."
 
 #. type: deftypevr
-#: doc/guix.texi:16863
+#: doc/guix.texi:19552
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string auth-cache-negative-ttl"
 msgstr "{@code{dovecot-configuration}-Parameter} Zeichenkette auth-cache-negative-ttl"
 
 #. type: deftypevr
-#: doc/guix.texi:16867
+#: doc/guix.texi:19556
 msgid "TTL for negative hits (user not found, password mismatch).  0 disables caching them completely.  Defaults to @samp{\"1 hour\"}."
 msgstr "TTL beim Zwischenspeichern negativer Ergebnisse („negative Hits“, z.B.@: wenn der Benutzer nicht gefunden wurde oder das Passwort nicht stimmt). 0 deaktiviert das Zwischenspeichern davon vollständig. Die Vorgabe ist @samp{\"1 hour\"} für 1 Stunde."
 
 #. type: deftypevr
-#: doc/guix.texi:16869
+#: doc/guix.texi:19558
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} space-separated-string-list auth-realms"
 msgstr "{@code{dovecot-configuration}-Parameter} Leerzeichengetrennte-Zeichenketten-Liste auth-realms"
 
 #. type: deftypevr
-#: doc/guix.texi:16875
+#: doc/guix.texi:19564
 msgid "List of realms for SASL authentication mechanisms that need them.  You can leave it empty if you don't want to support multiple realms.  Many clients simply use the first one listed here, so keep the default realm first.  Defaults to @samp{()}."
 msgstr "Die Liste der Administrationsbereiche („Realms“) für SASL-Authentisierungsmechanismen, die solche benötigen. Sie können dieses Feld leer lassen, wenn Sie @emph{keine} Unterstützung für mehrere Administrationsbereiche wollen. Viele Clients benutzen den ersten hier aufgelisteten Administrationsbereich, also sollte der als Voreinstellung gewünschte Bereich vorne stehen. Die Vorgabe ist @samp{()}."
 
 #. type: deftypevr
-#: doc/guix.texi:16877
+#: doc/guix.texi:19566
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string auth-default-realm"
 msgstr "{@code{dovecot-configuration}-Parameter} Zeichenkette auth-default-realm"
 
 #. type: deftypevr
-#: doc/guix.texi:16882
+#: doc/guix.texi:19571
 msgid "Default realm/domain to use if none was specified.  This is used for both SASL realms and appending @@domain to username in plaintext logins.  Defaults to @samp{\"\"}."
 msgstr "Der voreingestellte Administrationsbereich bzw.@: die Domain, falls keiner angegeben wurde. Dies wird sowohl für SASL-Administrationsbereiche als auch zum Anhängen von @@domain an den Benutzernamen bei Klartextanmeldungen benutzt. Die Vorgabe ist @samp{\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16884
+#: doc/guix.texi:19573
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string auth-username-chars"
 msgstr "{@code{dovecot-configuration}-Parameter} Zeichenkette auth-username-chars"
 
 #. type: deftypevr
-#: doc/guix.texi:16891
+#: doc/guix.texi:19580
 msgid "List of allowed characters in username.  If the user-given username contains a character not listed in here, the login automatically fails.  This is just an extra check to make sure user can't exploit any potential quote escaping vulnerabilities with SQL/LDAP databases.  If you want to allow all characters, set this value to empty.  Defaults to @samp{\"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890.-_@@\"}."
 msgstr "Die Liste der in Benutzernamen zulässigen Zeichen. Wenn der vom Benutzer angegebene Benutzername ein hier nicht aufgelistetes Zeichen enthält, wird die Authentisierung automatisch abgelehnt. Dies dient bloß als eine weitere Überprüfung, um zu gewährleisten, dass mögliche Schwachstellen bei der Maskierung von Anführungszeichen in SQL-/LDAP-Datenbanken nicht ausgenutzt werden können. Wenn Sie alle Zeichen zulassen möchten, setzen Sie dieses Feld auf eine leere Zeichenkette. Die Vorgabe ist @samp{\"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890.-_@@\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16893
+#: doc/guix.texi:19582
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string auth-username-translation"
 msgstr "{@code{dovecot-configuration}-Parameter} Zeichenkette auth-username-translation"
 
 #. type: deftypevr
-#: doc/guix.texi:16899
+#: doc/guix.texi:19588
 msgid "Username character translations before it's looked up from databases.  The value contains series of from -> to characters.  For example @samp{#@@/@@} means that @samp{#} and @samp{/} characters are translated to @samp{@@}.  Defaults to @samp{\"\"}."
 msgstr "Wie Zeichen in Benutzernamen ersetzt werden sollen, bevor der Name mit Datenbanken aufgelöst wird. Der Wert besteht aus einer Reihe von Angaben, welches Zeichen durch welches zu ersetzen ist. Zum Beispiel werden für @samp{#@@/@@} die Zeichen @samp{#} und @samp{/} beide durch @samp{@@} ersetzt. Die Vorgabe ist @samp{\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16901
+#: doc/guix.texi:19590
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string auth-username-format"
 msgstr "{@code{dovecot-configuration}-Parameter} Zeichenkette auth-username-format"
 
 #. type: deftypevr
-#: doc/guix.texi:16908
+#: doc/guix.texi:19597
 msgid "Username formatting before it's looked up from databases.  You can use the standard variables here, e.g.@: %Lu would lowercase the username, %n would drop away the domain if it was given, or @samp{%n-AT-%d} would change the @samp{@@} into @samp{-AT-}.  This translation is done after @samp{auth-username-translation} changes.  Defaults to @samp{\"%Lu\"}."
 msgstr "Formatierungsanweisungen, die auf jeden Benutzernamen angewandt werden, bevor er mit einer Datenbank aufgelöst wird. Sie können hierzu die Standardvariablen verwenden, z.B.@: würde %Lu den Benutzernamen in Kleinbuchstaben umschreiben („lowercase“), %n würde den Domainnamen weglassen, wenn einer angegeben wurde, und @samp{%n-AT-%d} würde alle @samp{@@} durch @samp{-AT-} ersetzen. Diese Übersetzung wird durchgeführt, nachdem die Änderungen aus @samp{auth-username-translation} angewandt wurden. Die Vorgabe ist @samp{\"%Lu\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16910
+#: doc/guix.texi:19599
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string auth-master-user-separator"
 msgstr "{@code{dovecot-configuration}-Parameter} Zeichenkette auth-master-user-separator"
 
 #. type: deftypevr
-#: doc/guix.texi:16918
+#: doc/guix.texi:19607
 msgid "If you want to allow master users to log in by specifying the master username within the normal username string (i.e.@: not using SASL mechanism's support for it), you can specify the separator character here.  The format is then <username><separator><master username>.  UW-IMAP uses @samp{*} as the separator, so that could be a good choice.  Defaults to @samp{\"\"}."
 msgstr "Wenn Sie es für „Master“-Benutzer erlauben möchten, sich durch Angeben des Master-Benutzernamens als Teil einer normalen Benutzernamens-Zeichenkette als jemand anders anzumelden (also ohne Verwendung der Unterstützung davon durch den SASL-Mechanismus), können Sie hier die Trennzeichen dazwischen angeben. Das Format ist dann <Benutzername><Trenner><Master-Benutzername>. UW-IMAP benutzt @samp{*} als Trennzeichen, also könnte das eine gute Wahl sein. Die Vorgabe ist @samp{\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16920
+#: doc/guix.texi:19609
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string auth-anonymous-username"
 msgstr "{@code{dovecot-configuration}-Parameter} Zeichenkette auth-anonymous-username"
 
 #. type: deftypevr
-#: doc/guix.texi:16924
+#: doc/guix.texi:19613
 msgid "Username to use for users logging in with ANONYMOUS SASL mechanism.  Defaults to @samp{\"anonymous\"}."
 msgstr "Der Benutzername, der verwendet wird, wenn sich Benutzer mit dem SASL-Mechanismus „ANONYMOUS“ anmelden. Die Vorgabe ist @samp{\"anonymous\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16926
+#: doc/guix.texi:19615
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} non-negative-integer auth-worker-max-count"
 msgstr "{@code{dovecot-configuration}-Parameter} Nichtnegative-ganze-Zahl auth-worker-max-count"
 
 #. type: deftypevr
-#: doc/guix.texi:16931
+#: doc/guix.texi:19620
 msgid "Maximum number of dovecot-auth worker processes.  They're used to execute blocking passdb and userdb queries (e.g.@: MySQL and PAM).  They're automatically created and destroyed as needed.  Defaults to @samp{30}."
 msgstr "Die maximale Anzahl von dovecot-auth-Arbeiterprozessen. Diese werden benutzt, um blockierende Anfragen an die Passwortdatenbank („passdb“) und an die Benutzerdatenbank („userdb“) zu stellen (z.B.@: MySQL und PAM). Sie werden automatisch erzeugt und gelöscht, je nachdem, wann sie gebraucht werden. Die Vorgabe ist @samp{30}."
 
 #. type: deftypevr
-#: doc/guix.texi:16933
+#: doc/guix.texi:19622
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string auth-gssapi-hostname"
 msgstr "{@code{dovecot-configuration}-Parameter} Zeichenkette auth-gssapi-hostname"
 
 #. type: deftypevr
-#: doc/guix.texi:16938
+#: doc/guix.texi:19627
 msgid "Host name to use in GSSAPI principal names.  The default is to use the name returned by gethostname().  Use @samp{$ALL} (with quotes) to allow all keytab entries.  Defaults to @samp{\"\"}."
 msgstr "Der Rechnername, der in GSSAPI-Prinzipalnamen benutzt wird. Nach Voreinstellung wird der durch gethostname() zurückgelieferte Name verwendet. Benutzen Sie @samp{$ALL} (mit Anführungszeichen), damit alle Einträge in der Schlüsseltabelle („Keytab“) akzeptiert werden. Die Vorgabe ist @samp{\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16940
+#: doc/guix.texi:19629
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string auth-krb5-keytab"
 msgstr "{@code{dovecot-configuration}-Parameter} Zeichenkette auth-krb5-keytab"
 
 #. type: deftypevr
-#: doc/guix.texi:16946
+#: doc/guix.texi:19635
 msgid "Kerberos keytab to use for the GSSAPI mechanism.  Will use the system default (usually @file{/etc/krb5.keytab}) if not specified.  You may need to change the auth service to run as root to be able to read this file.  Defaults to @samp{\"\"}."
 msgstr "Kerberos-Schlüsseltabelle („Keytab“), die für den GSSAPI-Mechanismus benutzt werden soll. Wenn sie nicht angegeben wird, wird die Voreinstellung des Systems benutzt (in der Regel @file{/etc/krb5.keytab}). Eventuell müssen Sie den Auth-Dienst als Administratornutzer „root“ ausführen lassen, um Lesezugriffe auf diese Datei zu ermöglichen. Die Vorgabe ist @samp{\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16948
+#: doc/guix.texi:19637
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean auth-use-winbind?"
 msgstr "{@code{dovecot-configuration}-Parameter} Boolescher-Ausdruck auth-use-winbind?"
 
 #. type: deftypevr
-#: doc/guix.texi:16953
+#: doc/guix.texi:19642
 msgid "Do NTLM and GSS-SPNEGO authentication using Samba's winbind daemon and @samp{ntlm-auth} helper.  <doc/wiki/Authentication/Mechanisms/Winbind.txt>.  Defaults to @samp{#f}."
 msgstr "NTLM-Authentifizierung und GSS-SPNEGO-Authentifizierung mit dem winbind-Daemon und dem @samp{ntlm-auth}-Hilfsprogramm von Samba durchführen. Siehe <doc/wiki/Authentication/Mechanisms/Winbind.txt>. Die Vorgabe ist @samp{#f}."
 
 #. type: deftypevr
-#: doc/guix.texi:16955
+#: doc/guix.texi:19644
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} file-name auth-winbind-helper-path"
 msgstr "{@code{dovecot-configuration}-Parameter} Dateiname auth-winbind-helper-path"
 
 #. type: deftypevr
-#: doc/guix.texi:16958
+#: doc/guix.texi:19647
 msgid "Path for Samba's @samp{ntlm-auth} helper binary.  Defaults to @samp{\"/usr/bin/ntlm_auth\"}."
 msgstr "Der Pfad zur Binärdatei @samp{ntlm-auth} von Samba. Die Vorgabe ist @samp{\"/usr/bin/ntlm_auth\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16960
+#: doc/guix.texi:19649
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string auth-failure-delay"
 msgstr "{@code{dovecot-configuration}-Parameter} Zeichenkette auth-failure-delay"
 
 #. type: deftypevr
-#: doc/guix.texi:16963
+#: doc/guix.texi:19652
 msgid "Time to delay before replying to failed authentications.  Defaults to @samp{\"2 secs\"}."
 msgstr "Die Zeit, wie lange vor der Antwort auf eine fehlgeschlagene Authentisierung gewartet wird. Die Vorgabe ist @samp{\"2 secs\"} für 2 Sekunden."
 
 #. type: deftypevr
-#: doc/guix.texi:16965
+#: doc/guix.texi:19654
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean auth-ssl-require-client-cert?"
 msgstr "{@code{dovecot-configuration}-Parameter} Boolescher-Ausdruck auth-ssl-require-client-cert?"
 
 #. type: deftypevr
-#: doc/guix.texi:16969
+#: doc/guix.texi:19658
 msgid "Require a valid SSL client certificate or the authentication fails.  Defaults to @samp{#f}."
 msgstr "Es wird ein gültiges SSL-Client-Zertifikat verlangt, andernfalls schlägt die Authentisierung fehl. Die Vorgabe ist @samp{#f}."
 
 #. type: deftypevr
-#: doc/guix.texi:16971
+#: doc/guix.texi:19660
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean auth-ssl-username-from-cert?"
 msgstr "{@code{dovecot-configuration}-Parameter} Boolescher-Ausdruck auth-ssl-username-from-cert?"
 
 #. type: deftypevr
-#: doc/guix.texi:16976
+#: doc/guix.texi:19665
 msgid "Take the username from client's SSL certificate, using @code{X509_NAME_get_text_by_NID()} which returns the subject's DN's CommonName.  Defaults to @samp{#f}."
 msgstr "Ob der Benutzername aus dem SSL-Zertifikat des Clients ausgelesen werden soll, indem @code{X509_NAME_get_text_by_NID()} benutzt wird, um den Distinguished Name („DN“) als Gebräuchlicher Name („CommonName“) des Zertifikatinhabers („Subject“) auszulesen. Die Vorgabe ist @samp{#f}."
 
 #. type: deftypevr
-#: doc/guix.texi:16978
+#: doc/guix.texi:19667
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} space-separated-string-list auth-mechanisms"
 msgstr "{@code{dovecot-configuration}-Parameter} Leerzeichengetrennte-Zeichenketten-Liste auth-mechanisms"
 
 #. type: deftypevr
-#: doc/guix.texi:16984
+#: doc/guix.texi:19673
 msgid "List of wanted authentication mechanisms.  Supported mechanisms are: @samp{plain}, @samp{login}, @samp{digest-md5}, @samp{cram-md5}, @samp{ntlm}, @samp{rpa}, @samp{apop}, @samp{anonymous}, @samp{gssapi}, @samp{otp}, @samp{skey}, and @samp{gss-spnego}.  NOTE: See also @samp{disable-plaintext-auth} setting."
 msgstr "Die Liste der erwünschten Authentisierungsmechanismen. Unterstützte Mechanismen sind: @samp{plain}, @samp{login}, @samp{digest-md5}, @samp{cram-md5}, @samp{ntlm}, @samp{rpa}, @samp{apop}, @samp{anonymous}, @samp{gssapi}, @samp{otp}, @samp{skey} und @samp{gss-spnego}. @emph{Anmerkung}: Siehe auch die Einstellung zu @samp{disable-plaintext-auth}."
 
 #. type: deftypevr
-#: doc/guix.texi:16986
+#: doc/guix.texi:19675
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} space-separated-string-list director-servers"
 msgstr "{@code{dovecot-configuration}-Parameter} Leerzeichengetrennte-Zeichenketten-Liste director-servers"
 
 #. type: deftypevr
-#: doc/guix.texi:16991
+#: doc/guix.texi:19680
 msgid "List of IPs or hostnames to all director servers, including ourself.  Ports can be specified as ip:port.  The default port is the same as what director service's @samp{inet-listener} is using.  Defaults to @samp{()}."
 msgstr "Die Liste der IP-Adressen oder Rechnernamen („Hostnames“) für alle Direktorserver, einschließlich dieses Servers selbst. Ports können wie in „IP:Port“ angegeben werden. Der voreingestellte Port ist derselbe wie der, der beim @samp{inet-listener} des Direktordienstes benutzt wird. Die Vorgabe ist @samp{()}."
 
 #. type: deftypevr
-#: doc/guix.texi:16993
+#: doc/guix.texi:19682
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} space-separated-string-list director-mail-servers"
 msgstr "{@code{dovecot-configuration}-Parameter} Leerzeichengetrennte-Zeichenketten-Liste director-mail-servers"
 
 #. type: deftypevr
-#: doc/guix.texi:16997
+#: doc/guix.texi:19686
 msgid "List of IPs or hostnames to all backend mail servers.  Ranges are allowed too, like 10.0.0.10-10.0.0.30.  Defaults to @samp{()}."
 msgstr "Die Liste der IP-Adressen oder Rechnernamen („Hostnames“), um alle Hintergrund-Mailserver zu erreichen. Auch Bereiche können angegeben werden, wie 10.0.0.10-10.0.0.30. Die Vorgabe ist @samp{()}."
 
 #. type: deftypevr
-#: doc/guix.texi:16999
+#: doc/guix.texi:19688
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string director-user-expire"
 msgstr "{@code{dovecot-configuration}-Parameter} Zeichenkette director-user-expire"
 
 #. type: deftypevr
-#: doc/guix.texi:17003
+#: doc/guix.texi:19692
 msgid "How long to redirect users to a specific server after it no longer has any connections.  Defaults to @samp{\"15 min\"}."
 msgstr "Wie lange Benutzer zum selben Server weitergeleitet werden, sobald dieser keine Verbindungen mehr hat. Die Vorgabe ist @samp{\"15 min\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17005
+#: doc/guix.texi:19694
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string director-username-hash"
 msgstr "{@code{dovecot-configuration}-Parameter} Zeichenkette director-username-hash"
 
 #. type: deftypevr
-#: doc/guix.texi:17010
+#: doc/guix.texi:19699
 msgid "How the username is translated before being hashed.  Useful values include %Ln if user can log in with or without @@domain, %Ld if mailboxes are shared within domain.  Defaults to @samp{\"%Lu\"}."
 msgstr "Wie der Benutzername umgeschrieben wird, bevor er gehasht wird. Zu den sinnvollen Werten gehören %Ln, wenn der Nutzer sich mit oder ohne @@domain anmelden kann, oder %Ld, wenn Postfächer innerhalb der Domain gemeinsam genutzt werden. Die Vorgabe ist @samp{\"%Lu\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17012
+#: doc/guix.texi:19701
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string log-path"
 msgstr "{@code{dovecot-configuration}-Parameter} Zeichenkette log-path"
 
 #. type: deftypevr
-#: doc/guix.texi:17016
+#: doc/guix.texi:19705
 msgid "Log file to use for error messages.  @samp{syslog} logs to syslog, @samp{/dev/stderr} logs to stderr.  Defaults to @samp{\"syslog\"}."
 msgstr "Die Protokolldatei, die für Fehlermeldungen benutzt werden soll. Bei @samp{syslog} wird das Protokoll an syslog geschrieben, bei @samp{/dev/stderr} an die Standardfehlerausgabe. Die Vorgabe ist @samp{\"syslog\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17018
+#: doc/guix.texi:19707
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string info-log-path"
 msgstr "{@code{dovecot-configuration}-Parameter} Zeichenkette info-log-path"
 
 #. type: deftypevr
-#: doc/guix.texi:17022
+#: doc/guix.texi:19711
 msgid "Log file to use for informational messages.  Defaults to @samp{log-path}.  Defaults to @samp{\"\"}."
 msgstr "Die Protokolldatei, die für Informationsmeldungen benutzt werden soll. Die Voreinstellung ist @samp{log-path}. Die Vorgabe ist @samp{\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17024
+#: doc/guix.texi:19713
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string debug-log-path"
 msgstr "{@code{dovecot-configuration}-Parameter} Zeichenkette debug-log-path"
 
 #. type: deftypevr
-#: doc/guix.texi:17028
+#: doc/guix.texi:19717
 msgid "Log file to use for debug messages.  Defaults to @samp{info-log-path}.  Defaults to @samp{\"\"}."
 msgstr "Die Protokolldatei, die für Meldungen zur Fehlersuche benutzt werden soll. Die Voreinstellung ist @samp{info-log-path}. Die Vorgabe ist @samp{\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17030
+#: doc/guix.texi:19719
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string syslog-facility"
 msgstr "{@code{dovecot-configuration}-Parameter} Zeichenkette syslog-facility"
 
 #. type: deftypevr
-#: doc/guix.texi:17035
+#: doc/guix.texi:19724
 msgid "Syslog facility to use if you're logging to syslog.  Usually if you don't want to use @samp{mail}, you'll use local0..local7.  Also other standard facilities are supported.  Defaults to @samp{\"mail\"}."
 msgstr "Als welche Syslog-Einrichtung Protokolle an Syslog übermittelt werden sollen. Falls Sie @samp{mail} hierbei @emph{nicht} benutzen wollen, eignen sich normalerweise local0–local7. Andere Standardeinrichtungen werden auch unterstützt. Die Vorgabe ist @samp{\"mail\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17037
+#: doc/guix.texi:19726
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean auth-verbose?"
 msgstr "{@code{dovecot-configuration}-Parameter} Boolescher-Ausdruck auth-verbose?"
 
 #. type: deftypevr
-#: doc/guix.texi:17041
+#: doc/guix.texi:19730
 msgid "Log unsuccessful authentication attempts and the reasons why they failed.  Defaults to @samp{#f}."
 msgstr "Ob gescheiterte Anmeldeversuche und die Gründe, warum diese nicht erfolgreich waren, protokolliert werden sollen. Die Vorgabe ist @samp{#f}."
 
 #. type: deftypevr
-#: doc/guix.texi:17043
+#: doc/guix.texi:19732
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string auth-verbose-passwords"
 msgstr "{@code{dovecot-configuration}-Parameter} Zeichenkette auth-verbose-passwords"
 
 #. type: deftypevr
-#: doc/guix.texi:17050
+#: doc/guix.texi:19739
 msgid "In case of password mismatches, log the attempted password.  Valid values are no, plain and sha1.  sha1 can be useful for detecting brute force password attempts vs.  user simply trying the same password over and over again.  You can also truncate the value to n chars by appending \":n\" (e.g.@: sha1:6).  Defaults to @samp{\"no\"}."
 msgstr "Ob bei falschen Passwörtern das versuchte falsche Passwort ins Protokoll geschrieben werden soll. Gültige Werte sind \"no\" („nein“), \"plain\" (als Klartext) und \"sha1\". Den SHA1-Hash zu speichern kann nützlich sein, um zu erkennen, wenn jemand versucht, sehr viele Passwörter durchzuprobieren (ein „Brute-Force“-Angriff) oder ob Benutzer einfach nur dasselbe Passwort immer wieder probieren. Sie können auch nur die ersten n Zeichen des Wertes protokollieren, indem Sie \":n\" anhängen (z.B.@: sha1:6). Die Vorgabe ist @samp{\"no\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17052
+#: doc/guix.texi:19741
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean auth-debug?"
 msgstr "{@code{dovecot-configuration}-Parameter} Boolescher-Ausdruck auth-debug?"
 
 #. type: deftypevr
-#: doc/guix.texi:17056
+#: doc/guix.texi:19745
 msgid "Even more verbose logging for debugging purposes.  Shows for example SQL queries.  Defaults to @samp{#f}."
 msgstr "Ob zur Fehlersuche noch ausführlichere Protokolle geschrieben werden sollen. Zum Beispiel werden SQL-Anfragen protokolliert. Die Vorgabe ist @samp{#f}."
 
 #. type: deftypevr
-#: doc/guix.texi:17058
+#: doc/guix.texi:19747
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean auth-debug-passwords?"
 msgstr "{@code{dovecot-configuration}-Parameter} Boolescher-Ausdruck auth-debug-passwords?"
 
 #. type: deftypevr
-#: doc/guix.texi:17063
+#: doc/guix.texi:19752
 msgid "In case of password mismatches, log the passwords and used scheme so the problem can be debugged.  Enabling this also enables @samp{auth-debug}.  Defaults to @samp{#f}."
 msgstr "Ob bei falschen Passwörtern das versuchte falsche Passwort und das benutzte Passwortschema ins Protokoll geschrieben werden soll, damit das Problem untersucht werden kann. Wenn dies aktiviert wird, wird auch @samp{auth-debug} aktiviert. Die Vorgabe ist @samp{#f}."
 
 #. type: deftypevr
-#: doc/guix.texi:17065
+#: doc/guix.texi:19754
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean mail-debug?"
 msgstr "{@code{dovecot-configuration}-Parameter} Boolescher-Ausdruck mail-debug?"
 
 #. type: deftypevr
-#: doc/guix.texi:17069
+#: doc/guix.texi:19758
 msgid "Enable mail process debugging.  This can help you figure out why Dovecot isn't finding your mails.  Defaults to @samp{#f}."
 msgstr "Ob die Fehlersuche beim Mail-Prozess ermöglicht werden soll. Dies kann Ihnen dabei helfen, herauszufinden, warum Dovecot Ihre E-Mails nicht findet. Die Vorgabe ist @samp{#f}."
 
 #. type: deftypevr
-#: doc/guix.texi:17071
+#: doc/guix.texi:19760
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean verbose-ssl?"
 msgstr "{@code{dovecot-configuration}-Parameter} Boolescher-Ausdruck verbose-ssl?"
 
 #. type: deftypevr
-#: doc/guix.texi:17074
+#: doc/guix.texi:19763
 msgid "Show protocol level SSL errors.  Defaults to @samp{#f}."
 msgstr "SSL-Fehler auf Protokollebene anzeigen. Die Vorgabe ist @samp{#f}."
 
 #. type: deftypevr
-#: doc/guix.texi:17076
+#: doc/guix.texi:19765
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string log-timestamp"
 msgstr "{@code{dovecot-configuration}-Parameter} Zeichenkette log-timestamp"
 
 #. type: deftypevr
-#: doc/guix.texi:17080
+#: doc/guix.texi:19769
 msgid "Prefix for each line written to log file.  % codes are in strftime(3) format.  Defaults to @samp{\"\\\"%b %d %H:%M:%S \\\"\"}."
 msgstr "Das Präfix für jede Zeile, die ins Protokoll geschrieben wird. %-Codes sind im Format von strftime(3). Die Vorgabe ist @samp{\"\\\"%b %d %H:%M:%S \\\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17082
+#: doc/guix.texi:19771
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} space-separated-string-list login-log-format-elements"
 msgstr "{@code{dovecot-configuration}-Parameter} Leerzeichengetrennte-Zeichenketten-Liste login-log-format-elements"
 
 #. type: deftypevr
-#: doc/guix.texi:17086
+#: doc/guix.texi:19775
 msgid "List of elements we want to log.  The elements which have a non-empty variable value are joined together to form a comma-separated string."
 msgstr "Eine Liste der Elemente, die protokolliert werden sollen. Die Elemente, deren Variablenwerte nicht leer sind, werden zu einer kommagetrennten Zeichenkette zusammengefügt."
 
 #. type: deftypevr
-#: doc/guix.texi:17088
+#: doc/guix.texi:19777
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string login-log-format"
 msgstr "{@code{dovecot-configuration}-Parameter} Zeichenkette login-log-format"
 
 #. type: deftypevr
-#: doc/guix.texi:17092
+#: doc/guix.texi:19781
 msgid "Login log format.  %s contains @samp{login-log-format-elements} string, %$ contains the data we want to log.  Defaults to @samp{\"%$: %s\"}."
 msgstr "Das Format des Anmeldeprogramms. %s umfasst die Zeichenkette @samp{login-log-format-elements}, %$ enthält die Daten, die man protokollieren lassen möchte. Die Vorgabe ist @samp{\"%$: %s\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17094
+#: doc/guix.texi:19783
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string mail-log-prefix"
 msgstr "{@code{dovecot-configuration}-Parameter} Zeichenkette mail-log-prefix"
 
 #. type: deftypevr
-#: doc/guix.texi:17098
+#: doc/guix.texi:19787
 msgid "Log prefix for mail processes.  See doc/wiki/Variables.txt for list of possible variables you can use.  Defaults to @samp{\"\\\"%s(%u)<%@{pid@}><%@{session@}>: \\\"\"}."
 msgstr "Das Präfix, das Protokollen für Mailprozesse vorangestellt wird. Siehe doc/wiki/Variables.txt für eine Liste der benutzbaren Variablen. Die Vorgabe ist @samp{\"\\\"%s(%u)<%@{pid@}><%@{session@}>: \\\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17100
+#: doc/guix.texi:19789
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string deliver-log-format"
 msgstr "{@code{dovecot-configuration}-Parameter} Zeichenkette deliver-log-format"
 
 #. type: deftypevr
-#: doc/guix.texi:17102
+#: doc/guix.texi:19791
 msgid "Format to use for logging mail deliveries.  You can use variables:"
 msgstr "Welches Format zur Protokollierung von Mailzustellungen verwendet werden soll. Sie können die folgenden Variablen benutzen:"
 
 #. type: item
-#: doc/guix.texi:17103
+#: doc/guix.texi:19792
 #, no-wrap
 msgid "%$"
 msgstr "%$"
 
 #. type: table
-#: doc/guix.texi:17105
+#: doc/guix.texi:19794
 msgid "Delivery status message (e.g.@: @samp{saved to INBOX})"
 msgstr "Zustellungsstatusnachricht (z.B.@: @samp{saved to INBOX})"
 
 #. type: item
-#: doc/guix.texi:17105
+#: doc/guix.texi:19794
 #, no-wrap
 msgid "%m"
 msgstr "%m"
 
 #. type: table
-#: doc/guix.texi:17107
+#: doc/guix.texi:19796
 msgid "Message-ID"
 msgstr "Nachrichtenidentifikator („Message-ID“)"
 
 #. type: item
-#: doc/guix.texi:17107 doc/guix.texi:17639
+#: doc/guix.texi:19796 doc/guix.texi:20328
 #, no-wrap
 msgid "%s"
 msgstr "%s"
 
 #. type: table
-#: doc/guix.texi:17109
+#: doc/guix.texi:19798
 msgid "Subject"
 msgstr "Betreff („Subject“)"
 
 #. type: item
-#: doc/guix.texi:17109
+#: doc/guix.texi:19798
 #, no-wrap
 msgid "%f"
 msgstr "%f"
 
 #. type: table
-#: doc/guix.texi:17111
+#: doc/guix.texi:19800
 msgid "From address"
 msgstr "Absendeadresse („From“)"
 
 #. type: table
-#: doc/guix.texi:17113
+#: doc/guix.texi:19802
 msgid "Physical size"
 msgstr "Physische Größe"
 
 #. type: item
-#: doc/guix.texi:17113
+#: doc/guix.texi:19802
 #, no-wrap
 msgid "%w"
 msgstr "%w"
 
 #. type: table
-#: doc/guix.texi:17115
+#: doc/guix.texi:19804
 msgid "Virtual size."
 msgstr "Virtuelle Größe."
 
 #. type: deftypevr
-#: doc/guix.texi:17117
+#: doc/guix.texi:19806
 msgid "Defaults to @samp{\"msgid=%m: %$\"}."
 msgstr "Die Vorgabe ist @samp{\"msgid=%m: %$\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17119
+#: doc/guix.texi:19808
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string mail-location"
 msgstr "{@code{dovecot-configuration}-Parameter} Zeichenkette mail-location"
 
 #. type: deftypevr
-#: doc/guix.texi:17124
+#: doc/guix.texi:19813
 msgid "Location for users' mailboxes.  The default is empty, which means that Dovecot tries to find the mailboxes automatically.  This won't work if the user doesn't yet have any mail, so you should explicitly tell Dovecot the full location."
 msgstr "Wo die Postfächer (die „Mailboxes“) der Benutzer gespeichert sind. Die Vorgabe ist die leere Zeichenkette, was bedeutet, dass Dovecot die Postfächer automatisch zu finden versucht. Das funktioniert nur, wenn der Nutzer bereits E-Mails gespeichert hat, also sollten Sie Dovecot den vollständigen Pfad mitteilen."
 
 #. type: deftypevr
-#: doc/guix.texi:17130
-msgid "If you're using mbox, giving a path to the INBOX file (e.g.@: /var/mail/%u) isn't enough.  You'll also need to tell Dovecot where the other mailboxes are kept.  This is called the \"root mail directory\", and it must be the first path given in the @samp{mail-location} setting."
-msgstr "Wenn Sie das mbox-Format benutzen, genügt es @emph{nicht}, den Pfad zur INBOX-Datei (z.B.@: /var/mail/%u) anzugeben. Sie müssen Dovecot @emph{auch} mitteilen, wo die anderen Postfächer gespeichert sind. Dieses Verzeichnis nennt sich Wurzelmailverzeichnis („Root Mail Directory“) und es muss als erster Pfad in der @samp{mail-location}-Einstellung angegeben werden."
+#: doc/guix.texi:19819
+msgid "If you're using mbox, giving a path to the INBOX file (e.g.@: @file{/var/mail/%u}) isn't enough.  You'll also need to tell Dovecot where the other mailboxes are kept.  This is called the @emph{root mail directory}, and it must be the first path given in the @samp{mail-location} setting."
+msgstr "Wenn Sie das mbox-Format benutzen, genügt es @emph{nicht}, den Pfad zur INBOX-Datei (z.B.@: @file{/var/mail/%u}) anzugeben. Sie müssen Dovecot @emph{auch} mitteilen, wo die anderen Postfächer gespeichert sind. Dieses Verzeichnis nennt sich @emph{Wurzelmailverzeichnis} („Root Mail Directory“) und es muss als erster Pfad in der @samp{mail-location}-Einstellung angegeben werden."
 
 #. type: deftypevr
-#: doc/guix.texi:17132
-msgid "There are a few special variables you can use, eg.:"
+#: doc/guix.texi:19821
+msgid "There are a few special variables you can use, e.g.:"
 msgstr "Es gibt ein paar besondere Variable, die Sie verwenden können, z.B.:"
 
 #. type: table
-#: doc/guix.texi:17136
+#: doc/guix.texi:19825
 msgid "username"
 msgstr "Benutzername"
 
 #. type: item
-#: doc/guix.texi:17136 doc/guix.texi:17635
+#: doc/guix.texi:19825 doc/guix.texi:20324
 #, no-wrap
 msgid "%n"
 msgstr "%n"
 
 #. type: table
-#: doc/guix.texi:17138
+#: doc/guix.texi:19827
 msgid "user part in user@@domain, same as %u if there's no domain"
 msgstr "Benutzerteil in Benutzer@@Domain; sonst dasselbe wie %u, wenn es keine Domain gibt"
 
 #. type: item
-#: doc/guix.texi:17138
+#: doc/guix.texi:19827
 #, no-wrap
 msgid "%d"
 msgstr "%d"
 
 #. type: table
-#: doc/guix.texi:17140
+#: doc/guix.texi:19829
 msgid "domain part in user@@domain, empty if there's no domain"
 msgstr "Domainteil in Benutzer@@Domain; sonst leer, wenn es keine Domain gibt"
 
 #. type: item
-#: doc/guix.texi:17140
+#: doc/guix.texi:19829
 #, no-wrap
 msgid "%h"
 msgstr "%h"
 
 #. type: table
-#: doc/guix.texi:17142
+#: doc/guix.texi:19831
 msgid "home director"
 msgstr "Persönliches Verzeichnis"
 
 #. type: deftypevr
-#: doc/guix.texi:17145
+#: doc/guix.texi:19834
 msgid "See doc/wiki/Variables.txt for full list.  Some examples:"
 msgstr "Siehe doc/wiki/Variables.txt für die vollständige Liste. Einige Beispiele:"
 
 #. type: item
-#: doc/guix.texi:17146
+#: doc/guix.texi:19835
 #, no-wrap
 msgid "maildir:~/Maildir"
 msgstr "maildir:~/Maildir"
 
 #. type: item
-#: doc/guix.texi:17147
+#: doc/guix.texi:19836
 #, no-wrap
 msgid "mbox:~/mail:INBOX=/var/mail/%u"
 msgstr "mbox:~/mail:INBOX=/var/mail/%u"
 
 #. type: item
-#: doc/guix.texi:17148
+#: doc/guix.texi:19837
 #, no-wrap
 msgid "mbox:/var/mail/%d/%1n/%n:INDEX=/var/indexes/%d/%1n/%"
 msgstr "mbox:/var/mail/%d/%1n/%n:INDEX=/var/indexes/%d/%1n/%"
 
 #. type: deftypevr
-#: doc/guix.texi:17153
+#: doc/guix.texi:19842
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string mail-uid"
 msgstr "{@code{dovecot-configuration}-Parameter} Zeichenkette mail-uid"
 
 #. type: deftypevr
-#: doc/guix.texi:17158
+#: doc/guix.texi:19847
 msgid "System user and group used to access mails.  If you use multiple, userdb can override these by returning uid or gid fields.  You can use either numbers or names.  <doc/wiki/UserIds.txt>.  Defaults to @samp{\"\"}."
 msgstr "Systembenutzer und -gruppe, die benutzt werden sollen, um auf Mails zuzugreifen. Wenn Sie mehrere Benutzerkonten verwenden, kann auch die Benutzerdatenbank „userdb“ vorrangig verwendet werden, indem sie zu Benutzer- oder Gruppenidentifikatoren (UIDs und GIDs) auflöst. Sie können hier Zahlen oder Namen angeben. Siehe <doc/wiki/UserIds.txt>. Die Vorgabe ist @samp{\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17160
+#: doc/guix.texi:19849
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string mail-gid"
 msgstr "{@code{dovecot-configuration}-Parameter} Zeichenkette mail-gid"
 
 #. type: deftypevr
-#: doc/guix.texi:17165
+#: doc/guix.texi:19854
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string mail-privileged-group"
 msgstr "{@code{dovecot-configuration}-Parameter} Zeichenkette mail-privileged-group"
 
 #. type: deftypevr
-#: doc/guix.texi:17171
-msgid "Group to enable temporarily for privileged operations.  Currently this is used only with INBOX when either its initial creation or dotlocking fails.  Typically this is set to \"mail\" to give access to /var/mail.  Defaults to @samp{\"\"}."
-msgstr "Die Benutzergruppe, die zwischenzeitlich benutzt wird, um Operationen mit besonderen Berechtigungen auszuführen. Derzeit wird dies nur mit dem INBOX-Postfach benutzt, wenn dessen anfängliche Erzeugung oder Sperrung per „Dotlocking“-Datei fehlschlägt. Typischerweise wird es auf \"mail\" gesetzt, damit Zugriffe auf /var/mail möglich sind. Die Vorgabe ist @samp{\"\"}."
+#: doc/guix.texi:19860
+msgid "Group to enable temporarily for privileged operations.  Currently this is used only with INBOX when either its initial creation or dotlocking fails.  Typically this is set to @samp{\"mail\"} to give access to @file{/var/mail}.  Defaults to @samp{\"\"}."
+msgstr "Die Benutzergruppe, die zwischenzeitlich benutzt wird, um Operationen mit besonderen Berechtigungen auszuführen. Derzeit wird dies nur mit dem INBOX-Postfach benutzt, wenn dessen anfängliche Erzeugung oder Sperrung per „Dotlocking“-Datei fehlschlägt. Typischerweise wird es auf @samp{\"mail\"} gesetzt, damit Zugriffe auf @file{/var/mail} möglich sind. Die Vorgabe ist @samp{\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17173
+#: doc/guix.texi:19862
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string mail-access-groups"
 msgstr "{@code{dovecot-configuration}-Parameter} Zeichenkette mail-access-groups"
 
 #. type: deftypevr
-#: doc/guix.texi:17181
-msgid "Grant access to these supplementary groups for mail processes.  Typically these are used to set up access to shared mailboxes.  Note that it may be dangerous to set these if users can create symlinks (e.g.@: if \"mail\" group is set here, ln -s /var/mail ~/mail/var could allow a user to delete others' mailboxes, or ln -s /secret/shared/box ~/mail/mybox would allow reading it).  Defaults to @samp{\"\"}."
-msgstr "Mail-Prozessen Zugriff auf diese zusätzlichen Benutzergruppen gewähren. Typischerweise werden sie benutzt, um gemeinsam genutzte Postfächer („Mailboxes“) so einzurichten, dass alle aus der Gruppe zugreifen können. Beachten Sie, dass es gefährlich sein kann, dies zu erlauben, wenn Benutzer symbolische Verknüpfungen einrichten können (z.B.@: kann jeder, wenn hier die \"mail\"-Gruppe festgelegt wurde, „ln -s /var/mail ~/mail/var“ benutzen, um die Postfächer der anderen zu löschen, oder „ln -s /secret/shared/box ~/mail/mybox“, um sie zu lesen). Die Vorgabe ist @samp{\"\"}."
+#: doc/guix.texi:19870
+msgid "Grant access to these supplementary groups for mail processes.  Typically these are used to set up access to shared mailboxes.  Note that it may be dangerous to set these if users can create symlinks (e.g.@: if @samp{mail} group is set here, @code{ln -s /var/mail ~/mail/var} could allow a user to delete others' mailboxes, or @code{ln -s /secret/shared/box ~/mail/mybox} would allow reading it).  Defaults to @samp{\"\"}."
+msgstr "Mail-Prozessen Zugriff auf diese zusätzlichen Benutzergruppen gewähren. Typischerweise werden sie benutzt, um gemeinsam genutzte Postfächer („Mailboxes“) so einzurichten, dass alle aus der Gruppe zugreifen können. Beachten Sie, dass es gefährlich sein kann, dies zu erlauben, wenn Benutzer symbolische Verknüpfungen einrichten können (z.B.@: kann jeder, wenn hier die @samp{mail}-Gruppe festgelegt wurde, @code{ln -s /var/mail ~/mail/var} benutzen, um die Postfächer der anderen zu löschen, oder @code{ln -s /secret/shared/box ~/mail/mybox}, um sie zu lesen). Die Vorgabe ist @samp{\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17183
+#: doc/guix.texi:19872
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean mail-full-filesystem-access?"
 msgstr "{@code{dovecot-configuration}-Parameter} Boolescher-Ausdruck mail-full-filesystem-access?"
 
 #. type: deftypevr
-#: doc/guix.texi:17189
-msgid "Allow full file system access to clients.  There's no access checks other than what the operating system does for the active UID/GID.  It works with both maildir and mboxes, allowing you to prefix mailboxes names with e.g.@: /path/ or ~user/.  Defaults to @samp{#f}."
-msgstr "Clients vollen Dateisystemzugriff gestatten. Damit gibt es keine Zugriffsüberprüfungen mehr, abgesehen von denen, die das Betriebssystem für die aktiven Benutzer- und Gruppenidentifikatoren (UID und GID) durchführt. Es ist sowohl für maildir- als auch mbox-Formate verwendbar und Sie können dadurch für Namen von Postfächern („Mailboxes“) Präfixe wie z.B.@: /pfad/ oder ~benutzer/ wählen. Die Vorgabe ist @samp{#f}."
+#: doc/guix.texi:19878
+msgid "Allow full file system access to clients.  There's no access checks other than what the operating system does for the active UID/GID.  It works with both maildir and mboxes, allowing you to prefix mailboxes names with e.g.@: @file{/path/} or @file{~user/}.  Defaults to @samp{#f}."
+msgstr "Clients vollen Dateisystemzugriff gestatten. Damit gibt es keine Zugriffsüberprüfungen mehr, abgesehen von denen, die das Betriebssystem für die aktiven Benutzer- und Gruppenidentifikatoren (UID und GID) durchführt. Es ist sowohl für maildir- als auch mbox-Formate verwendbar und Sie können dadurch für Namen von Postfächern („Mailboxes“) Präfixe wie z.B.@: @file{/pfad/} oder @file{~benutzer/} wählen. Die Vorgabe ist @samp{#f}."
 
 #. type: deftypevr
-#: doc/guix.texi:17191
+#: doc/guix.texi:19880
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean mmap-disable?"
 msgstr "{@code{dovecot-configuration}-Parameter} Boolescher-Ausdruck mmap-disable?"
 
 #. type: deftypevr
-#: doc/guix.texi:17195
-msgid "Don't use mmap() at all.  This is required if you store indexes to shared file systems (NFS or clustered file system).  Defaults to @samp{#f}."
-msgstr "Überhaupt kein mmap() benutzen. Das ist erforderlich, wenn Sie Indexe auf geteilten Dateisystemen speichern (wie NFS oder Cluster-Dateisystemen). Die Vorgabe ist @samp{#f}."
+#: doc/guix.texi:19884
+msgid "Don't use @code{mmap()} at all.  This is required if you store indexes to shared file systems (NFS or clustered file system).  Defaults to @samp{#f}."
+msgstr "Überhaupt kein @code{mmap()} benutzen. Das ist erforderlich, wenn Sie Indexe auf geteilten Dateisystemen speichern (wie NFS oder Cluster-Dateisystemen). Die Vorgabe ist @samp{#f}."
 
 #. type: deftypevr
-#: doc/guix.texi:17197
+#: doc/guix.texi:19886
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean dotlock-use-excl?"
 msgstr "{@code{dovecot-configuration}-Parameter} Boolescher-Ausdruck dotlock-use-excl?"
 
 #. type: deftypevr
-#: doc/guix.texi:17202
+#: doc/guix.texi:19891
 msgid "Rely on @samp{O_EXCL} to work when creating dotlock files.  NFS supports @samp{O_EXCL} since version 3, so this should be safe to use nowadays by default.  Defaults to @samp{#t}."
 msgstr "Ob sich Dovecot darauf verlassen kann, dass @samp{O_EXCL} funktioniert, wenn es Sperrdateien als „Dotlock“ erstellt. NFS unterstützt @samp{O_EXCL} seit Version 3, also sollte es heutzutage kein Problem mehr sein, dies als Voreinstellung zu benutzen. Die Vorgabe ist @samp{#t}."
 
 #. type: deftypevr
-#: doc/guix.texi:17204
+#: doc/guix.texi:19893
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string mail-fsync"
 msgstr "{@code{dovecot-configuration}-Parameter} Zeichenkette mail-fsync"
 
 #. type: deftypevr
-#: doc/guix.texi:17206
+#: doc/guix.texi:19895
 msgid "When to use fsync() or fdatasync() calls:"
 msgstr "Wann fsync() oder fdatasync() aufgerufen werden soll:"
 
 #. type: item
-#: doc/guix.texi:17207
+#: doc/guix.texi:19896
 #, no-wrap
 msgid "optimized"
 msgstr "optimized"
 
 #. type: table
-#: doc/guix.texi:17209
+#: doc/guix.texi:19898
 msgid "Whenever necessary to avoid losing important data"
 msgstr "Wann immer es nötig ist, um keine wichtigen Daten zu verlieren"
 
 #. type: table
-#: doc/guix.texi:17211
-msgid "Useful with e.g.@: NFS when write()s are delayed"
-msgstr "Praktisch bei z.B.@: NFS, wenn Schreibzugriffe mit write() verzögert sind"
+#: doc/guix.texi:19900
+msgid "Useful with e.g.@: NFS when @code{write()}s are delayed"
+msgstr "Praktisch bei z.B.@: NFS, wenn Schreibzugriffe mit @code{write()} verzögert sind"
 
 #. type: table
-#: doc/guix.texi:17213
+#: doc/guix.texi:19902
 msgid "Never use it (best performance, but crashes can lose data)."
 msgstr "Niemals benutzen (ist am schnellsten, aber Abstürze können zu Datenverlusten führen)"
 
 #. type: deftypevr
-#: doc/guix.texi:17215
+#: doc/guix.texi:19904
 msgid "Defaults to @samp{\"optimized\"}."
 msgstr "Die Vorgabe ist @samp{\"optimized\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17217
+#: doc/guix.texi:19906
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean mail-nfs-storage?"
 msgstr "{@code{dovecot-configuration}-Parameter} Boolescher-Ausdruck mail-nfs-storage?"
 
 #. type: deftypevr
-#: doc/guix.texi:17222
+#: doc/guix.texi:19911
 msgid "Mail storage exists in NFS.  Set this to yes to make Dovecot flush NFS caches whenever needed.  If you're using only a single mail server this isn't needed.  Defaults to @samp{#f}."
 msgstr "Mails werden in NFS gespeichert. Setzen Sie dies auf ja, damit Dovecot NFS-Zwischenspeicher zurückschreiben kann, wann immer es nötig ist. Wenn Sie nur einen einzigen Mail-Server benutzen, brauchen Sie es @emph{nicht}. Die Vorgabe ist @samp{#f}."
 
 #. type: deftypevr
-#: doc/guix.texi:17224
+#: doc/guix.texi:19913
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean mail-nfs-index?"
 msgstr "{@code{dovecot-configuration}-Parameter} Boolescher-Ausdruck mail-nfs-index?"
 
 #. type: deftypevr
-#: doc/guix.texi:17228
+#: doc/guix.texi:19917
 msgid "Mail index files also exist in NFS.  Setting this to yes requires @samp{mmap-disable? #t} and @samp{fsync-disable? #f}.  Defaults to @samp{#f}."
 msgstr "Ob die Index-Dateien für Mails auch in NFS gespeichert sind. Wenn dies auf ja gesetzt ist, muss @samp{mmap-disable? #t} und @samp{fsync-disable? #f} gesetzt sein. Die Vorgabe ist @samp{#f}."
 
 #. type: deftypevr
-#: doc/guix.texi:17230
+#: doc/guix.texi:19919
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string lock-method"
 msgstr "{@code{dovecot-configuration}-Parameter} Zeichenkette lock-method"
 
 #. type: deftypevr
-#: doc/guix.texi:17236
+#: doc/guix.texi:19925
 msgid "Locking method for index files.  Alternatives are fcntl, flock and dotlock.  Dotlocking uses some tricks which may create more disk I/O than other locking methods.  NFS users: flock doesn't work, remember to change @samp{mmap-disable}.  Defaults to @samp{\"fcntl\"}."
 msgstr "Die Sperrmethode für Indexdateien. Die Alternativen sind fcntl, flock und dotlock. Bei Dotlocking werden ein paar Tricks benutzt, die mehr Plattenein- und -ausgaben als andere Sperrmethoden zur Folge haben. Für NFS-Benutzer gilt: flock funktioniert nicht, also denken Sie bitte daran, @samp{mmap-disable} zu ändern. Die Vorgabe ist @samp{\"fcntl\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17238
+#: doc/guix.texi:19927
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} file-name mail-temp-dir"
 msgstr "{@code{dovecot-configuration}-Parameter} Dateiname mail-temp-dir"
 
 #. type: deftypevr
-#: doc/guix.texi:17242
+#: doc/guix.texi:19931
 msgid "Directory in which LDA/LMTP temporarily stores incoming mails >128 kB.  Defaults to @samp{\"/tmp\"}."
 msgstr "Das Verzeichnis, in dem LDA/LMTP zwischenzeitlich eingehende E-Mails >128 kB speichert. Die Vorgabe ist @samp{\"/tmp\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17244
+#: doc/guix.texi:19933
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} non-negative-integer first-valid-uid"
 msgstr "{@code{dovecot-configuration}-Parameter} Nichtnegative-ganze-Zahl first-valid-uid"
 
 #. type: deftypevr
-#: doc/guix.texi:17250
+#: doc/guix.texi:19939
 msgid "Valid UID range for users.  This is mostly to make sure that users can't log in as daemons or other system users.  Note that denying root logins is hardcoded to dovecot binary and can't be done even if @samp{first-valid-uid} is set to 0.  Defaults to @samp{500}."
 msgstr "Der Bereich, in dem die Benutzerkennungen („UIDs“) von sich bei Dovecot anmeldenden Benutzern liegen müssen. Das dient hauptsächlich dazu, sicherzustellen, dass sich Anwender nicht mit den Benutzerkonten von Daemons oder sonstigen Systembenutzerkonten anmelden können. Beachten Sie, dass eine Anmeldung als Administrator „root“ grundsätzlich vom Code des Dovecot-Programms verboten wird und selbst dann @emph{nicht} möglich ist, wenn Sie @samp{first-valid-uid} auf 0 setzen. Die Vorgabe ist @samp{500}."
 
 #. type: deftypevr
-#: doc/guix.texi:17252
+#: doc/guix.texi:19941
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} non-negative-integer last-valid-uid"
 msgstr "{@code{dovecot-configuration}-Parameter} Nichtnegative-ganze-Zahl last-valid-uid"
 
 #. type: deftypevr
-#: doc/guix.texi:17257
+#: doc/guix.texi:19946
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} non-negative-integer first-valid-gid"
 msgstr "{@code{dovecot-configuration}-Parameter} Nichtnegative-ganze-Zahl first-valid-gid"
 
 #. type: deftypevr
-#: doc/guix.texi:17262
+#: doc/guix.texi:19951
 msgid "Valid GID range for users.  Users having non-valid GID as primary group ID aren't allowed to log in.  If user belongs to supplementary groups with non-valid GIDs, those groups are not set.  Defaults to @samp{1}."
 msgstr "Der Bereich, in dem die Gruppenkennungen („GIDs“) von sich bei Dovecot anmeldenden Benutzern liegen müssen. Benutzerkonten, deren primäre Gruppe keine gültige GID hat, können sich nicht anmelden. Wenn das Benutzerkonto zu zusätzlichen Gruppen mit ungültiger GID gehört, werden diese Gruppen-Berechtigungen von Dovecot wieder abgegeben. Die Vorgabe ist @samp{1}."
 
 #. type: deftypevr
-#: doc/guix.texi:17264
+#: doc/guix.texi:19953
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} non-negative-integer last-valid-gid"
 msgstr "{@code{dovecot-configuration}-Parameter} Nichtnegative-ganze-Zahl last-valid-gid"
 
 #. type: deftypevr
-#: doc/guix.texi:17269
+#: doc/guix.texi:19958
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} non-negative-integer mail-max-keyword-length"
 msgstr "{@code{dovecot-configuration}-Parameter} Nichtnegative-ganze-Zahl mail-max-keyword-length"
 
 #. type: deftypevr
-#: doc/guix.texi:17273
+#: doc/guix.texi:19962
 msgid "Maximum allowed length for mail keyword name.  It's only forced when trying to create new keywords.  Defaults to @samp{50}."
 msgstr "Die maximale zulässige Länge eines Mail-Schlüsselwort-Namens. Sie wirkt sich nur aus, wenn Sie neue Schlüsselwörter anzulegen versuchen. Die Vorgabe ist @samp{50}."
 
 #. type: deftypevr
-#: doc/guix.texi:17275
+#: doc/guix.texi:19964
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} colon-separated-file-name-list valid-chroot-dirs"
 msgstr "{@code{dovecot-configuration}-Parameter} Doppelpunktgetrennte-Dateinamen-Liste valid-chroot-dirs"
 
 #. type: deftypevr
-#: doc/guix.texi:17285
-msgid "List of directories under which chrooting is allowed for mail processes (i.e.@: /var/mail will allow chrooting to /var/mail/foo/bar too).  This setting doesn't affect @samp{login-chroot} @samp{mail-chroot} or auth chroot settings.  If this setting is empty, \"/./\" in home dirs are ignored.  WARNING: Never add directories here which local users can modify, that may lead to root exploit.  Usually this should be done only if you don't allow shell access for users.  <doc/wiki/Chrooting.txt>.  Defaults to @samp{()}."
-msgstr "Die Liste der Verzeichnisse, in die Mail-Prozesse per „chroot“ das Wurzelverzeichnis wechseln können (d.h.@: für /var/mail wird auch ein chroot nach /var/mail/foo/bar möglich). Diese Einstellung hat keinen Einfluss auf @samp{login-chroot}, @samp{mail-chroot} oder Authentifizierungs-„chroot“-Einstellungen. Wenn diese Einstellung leer gelassen wird, werden chroots per „/./“ in Persönlichen Verzeichnissen ignoriert. @emph{Warnung}: Fügen Sie niemals Verzeichnisse hinzu, die lokale Benutzer verändern können, weil diese dann eventuell über eine Rechteausweitung Administratorrechte an sich reißen können. In der Regel sollte man ein solches Verzeichnis nur eintragen, wenn Nutzer keinen Shell-Zugriff erhalten können. Siehe <doc/wiki/Chrooting.txt>. Die Vorgabe ist @samp{()}."
+#: doc/guix.texi:19974
+msgid "List of directories under which chrooting is allowed for mail processes (i.e.@: @file{/var/mail} will allow chrooting to @file{/var/mail/foo/bar} too).  This setting doesn't affect @samp{login-chroot} @samp{mail-chroot} or auth chroot settings.  If this setting is empty, @samp{/./} in home dirs are ignored.  WARNING: Never add directories here which local users can modify, that may lead to root exploit.  Usually this should be done only if you don't allow shell access for users.  <doc/wiki/Chrooting.txt>.  Defaults to @samp{()}."
+msgstr "Die Liste der Verzeichnisse, in die Mail-Prozesse per „chroot“ das Wurzelverzeichnis wechseln können (d.h.@: für @file{/var/mail} wird auch ein chroot nach @file{/var/mail/foo/bar} möglich). Diese Einstellung hat keinen Einfluss auf @samp{login-chroot}, @samp{mail-chroot} oder Authentifizierungs-„chroot“-Einstellungen. Wenn diese Einstellung leer gelassen wird, werden chroots per @samp{/./} in Persönlichen Verzeichnissen ignoriert. @emph{Warnung}: Fügen Sie niemals Verzeichnisse hinzu, die lokale Benutzer verändern können, weil diese dann eventuell über eine Rechteausweitung Administratorrechte an sich reißen können. In der Regel sollte man ein solches Verzeichnis nur eintragen, wenn Nutzer keinen Shell-Zugriff erhalten können. Siehe <doc/wiki/Chrooting.txt>. Die Vorgabe ist @samp{()}."
 
 #. type: deftypevr
-#: doc/guix.texi:17287
+#: doc/guix.texi:19976
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string mail-chroot"
 msgstr "{@code{dovecot-configuration}-Parameter} Zeichenkette mail-chroot"
 
 #. type: deftypevr
-#: doc/guix.texi:17296
-msgid "Default chroot directory for mail processes.  This can be overridden for specific users in user database by giving /./ in user's home directory (e.g.@: /home/./user chroots into /home).  Note that usually there is no real need to do chrooting, Dovecot doesn't allow users to access files outside their mail directory anyway.  If your home directories are prefixed with the chroot directory, append \"/.\"@: to @samp{mail-chroot}.  <doc/wiki/Chrooting.txt>.  Defaults to @samp{\"\"}."
-msgstr "Das voreingestellte „chroot“-Verzeichnis für Mail-Prozesse. Es kann für einzelne Nutzer in der Benutzerdatenbank außer Kraft gesetzt werden, indem „/./“ als Teil der Angabe zum Persönlichen Verzeichnis des Benutzers verwendet wird (z.B.@: lässt /home/./benutzer das Wurzelverzeichnis per „chroot“ nach /home wechseln). Beachten Sie, dass es in der Regel @emph{nicht} unbedingt notwendig ist, Chrooting zu betreiben, weil Dovecot es Benutzern ohnehin nicht erlaubt, auf Dateien außerhalb ihres Mail-Verzeichnisses zuzugreifen. Wenn Ihren Persönlichen Verzeichnissen das Chroot-Verzeichnis vorangestellt ist, sollten Sie \"/.\"@: an @samp{mail-chroot} anhängen. Siehe <doc/wiki/Chrooting.txt>. Die Vorgabe ist @samp{\"\"}."
+#: doc/guix.texi:19985
+msgid "Default chroot directory for mail processes.  This can be overridden for specific users in user database by giving @samp{/./} in user's home directory (e.g.@: @samp{/home/./user} chroots into @file{/home}).  Note that usually there is no real need to do chrooting, Dovecot doesn't allow users to access files outside their mail directory anyway.  If your home directories are prefixed with the chroot directory, append @samp{/.} to @samp{mail-chroot}.  <doc/wiki/Chrooting.txt>.  Defaults to @samp{\"\"}."
+msgstr "Das voreingestellte „chroot“-Verzeichnis für Mail-Prozesse. Es kann für einzelne Nutzer in der Benutzerdatenbank außer Kraft gesetzt werden, indem @samp{/./} als Teil der Angabe zum Persönlichen Verzeichnis des Benutzers verwendet wird (z.B.@: lässt @samp{/home/./benutzer} das Wurzelverzeichnis per „chroot“ nach @file{/home} wechseln). Beachten Sie, dass es in der Regel @emph{nicht} unbedingt notwendig ist, Chrooting zu betreiben, weil Dovecot es Benutzern ohnehin nicht erlaubt, auf Dateien außerhalb ihres Mail-Verzeichnisses zuzugreifen. Wenn Ihren Persönlichen Verzeichnissen das Chroot-Verzeichnis vorangestellt ist, sollten Sie @samp{/.}@: an @samp{mail-chroot} anhängen. Siehe <doc/wiki/Chrooting.txt>. Die Vorgabe ist @samp{\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17298
+#: doc/guix.texi:19987
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} file-name auth-socket-path"
 msgstr "{@code{dovecot-configuration}-Parameter} Dateiname auth-socket-path"
 
 #. type: deftypevr
-#: doc/guix.texi:17302
+#: doc/guix.texi:19991
 msgid "UNIX socket path to master authentication server to find users.  This is used by imap (for shared users) and lda.  Defaults to @samp{\"/var/run/dovecot/auth-userdb\"}."
 msgstr "Der UNIX-Socket-Pfad, unter dem der Hauptauthentifizierungsserver zu finden ist, mit dem Nutzer gefunden werden können. Er wird von IMAP (für gemeinsame Benutzerkonten) und von LDA benutzt. Die Vorgabe ist @samp{\"/var/run/dovecot/auth-userdb\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17304
+#: doc/guix.texi:19993
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} file-name mail-plugin-dir"
 msgstr "{@code{dovecot-configuration}-Parameter} Dateiname mail-plugin-dir"
 
 #. type: deftypevr
-#: doc/guix.texi:17307
+#: doc/guix.texi:19996
 msgid "Directory where to look up mail plugins.  Defaults to @samp{\"/usr/lib/dovecot\"}."
 msgstr "Das Verzeichnis, in dem Mailplugins zu finden sind. Die Vorgabe ist @samp{\"/usr/lib/dovecot\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17309
+#: doc/guix.texi:19998
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} space-separated-string-list mail-plugins"
 msgstr "{@code{dovecot-configuration}-Parameter} Leerzeichengetrennte-Zeichenketten-Liste mail-plugins"
 
 #. type: deftypevr
-#: doc/guix.texi:17313
+#: doc/guix.texi:20002
 msgid "List of plugins to load for all services.  Plugins specific to IMAP, LDA, etc.@: are added to this list in their own .conf files.  Defaults to @samp{()}."
 msgstr "Die Liste der Plugins, die für alle Dienste geladen werden sollen. Plugins, die nur für IMAP, LDA, etc.@: gedacht sind, werden in ihren eigenen .conf-Dateien zu dieser Liste hinzugefügt. Die Vorgabe ist @samp{()}."
 
 #. type: deftypevr
-#: doc/guix.texi:17315
+#: doc/guix.texi:20004
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} non-negative-integer mail-cache-min-mail-count"
 msgstr "{@code{dovecot-configuration}-Parameter} Nichtnegative-ganze-Zahl mail-cache-min-mail-count"
 
 #. type: deftypevr
-#: doc/guix.texi:17320
+#: doc/guix.texi:20009
 msgid "The minimum number of mails in a mailbox before updates are done to cache file.  This allows optimizing Dovecot's behavior to do less disk writes at the cost of more disk reads.  Defaults to @samp{0}."
 msgstr "Die kleinste Anzahl an Mails in einem Postfach, bevor Aktualisierungen an der Zwischenspeicherdatei vorgenommen werden. Damit kann das Verhalten von Dovecot optimiert werden, um weniger Schreibzugriffe auf die Platte durchzuführen, wofür allerdings mehr Lesezugriffe notwendig werden. Die Vorgabe ist @samp{0}."
 
 #. type: deftypevr
-#: doc/guix.texi:17322
+#: doc/guix.texi:20011
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string mailbox-idle-check-interval"
 msgstr "{@code{dovecot-configuration}-Parameter} Zeichenkette mailbox-idle-check-interval"
 
 #. type: deftypevr
-#: doc/guix.texi:17329
+#: doc/guix.texi:20018
 msgid "When IDLE command is running, mailbox is checked once in a while to see if there are any new mails or other changes.  This setting defines the minimum time to wait between those checks.  Dovecot can also use dnotify, inotify and kqueue to find out immediately when changes occur.  Defaults to @samp{\"30 secs\"}."
 msgstr "Während der IDLE-Befehl läuft, wird ab und zu im Postfach (der „Mailbox“) nachgeschaut, ob es neue Mails oder andere Änderungen gibt. Mit dieser Einstellung wird festgelegt, wie lange zwischen diesen Überprüfungen höchstens gewartet wird. Dovecot kann auch dnotify, inotify und kqueue benutzen, um sofort über Änderungen informiert zu werden. Die Vorgabe ist @samp{\"30 secs\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17331
+#: doc/guix.texi:20020
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean mail-save-crlf?"
 msgstr "{@code{dovecot-configuration}-Parameter} Boolescher-Ausdruck mail-save-crlf?"
 
 #. type: deftypevr
-#: doc/guix.texi:17338
+#: doc/guix.texi:20027
 msgid "Save mails with CR+LF instead of plain LF.  This makes sending those mails take less CPU, especially with sendfile() syscall with Linux and FreeBSD.  But it also creates a bit more disk I/O which may just make it slower.  Also note that if other software reads the mboxes/maildirs, they may handle the extra CRs wrong and cause problems.  Defaults to @samp{#f}."
 msgstr "Ob Mails mit CR+LF-Kodierung für Zeilenumbrüche statt einfacher LF gespeichert werden sollen. Dadurch wird das Versenden dieser Mails den Prozessor weniger beanspruchen, dies gilt besonders für den Systemaufruf sendfile() unter Linux und FreeBSD. Allerdings werden auch ein bisschen mehr Ein- und Ausgaben auf der Platte notwendig, wodurch es insgesamt langsamer werden könnte. Beachten Sie außerdem, dass andere Software, die die mboxes/maildirs ausliest, mit den CRs falsch umgehen und Probleme verursachen könnte. Die Vorgabe ist @samp{#f}."
 
 #. type: deftypevr
-#: doc/guix.texi:17340
+#: doc/guix.texi:20029
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean maildir-stat-dirs?"
 msgstr "{@code{dovecot-configuration}-Parameter} Boolescher-Ausdruck maildir-stat-dirs?"
 
 #. type: deftypevr
-#: doc/guix.texi:17348
+#: doc/guix.texi:20037
 msgid "By default LIST command returns all entries in maildir beginning with a dot.  Enabling this option makes Dovecot return only entries which are directories.  This is done by stat()ing each entry, so it causes more disk I/O.  (For systems setting struct @samp{dirent->d_type} this check is free and it's done always regardless of this setting).  Defaults to @samp{#f}."
 msgstr "Nach Voreinstellung liefert der LIST-Befehl alle Einträge im Mailverzeichnis („Maildir“), die mit einem Punkt beginnen. Wenn diese Option aktiviert wird, liefert Dovecot nur solche Einträge, die für Verzeichnisse stehen. Dazu wird auf jedem Eintrag stat() aufgerufen, wodurch mehr Ein- und Ausgaben auf der Platte anfallen. (Bei Systemen, die einen Struktureintrag @samp{dirent->d_type} machen, ist diese Überprüfung unnötig, daher werden dort nur Verzeichnisse geliefert, egal was hier eingestellt ist.) Die Vorgabe ist @samp{#f}."
 
 #. type: deftypevr
-#: doc/guix.texi:17350
+#: doc/guix.texi:20039
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean maildir-copy-with-hardlinks?"
 msgstr "{@code{dovecot-configuration}-Parameter} Boolescher-Ausdruck maildir-copy-with-hardlinks?"
 
 #. type: deftypevr
-#: doc/guix.texi:17355
+#: doc/guix.texi:20044
 msgid "When copying a message, do it with hard links whenever possible.  This makes the performance much better, and it's unlikely to have any side effects.  Defaults to @samp{#t}."
 msgstr "Ob zum Kopieren einer Nachricht statt einer Kopie so weit möglich harte Verknüpfungen („Hard Links“) verwendet werden sollen. Dadurch wird das System wesentlich weniger ausgelastet und Nebenwirkungen sind unwahrscheinlich. Die Vorgabe ist @samp{#t}."
 
 #. type: deftypevr
-#: doc/guix.texi:17357
+#: doc/guix.texi:20046
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean maildir-very-dirty-syncs?"
 msgstr "{@code{dovecot-configuration}-Parameter} Boolescher-Ausdruck maildir-very-dirty-syncs?"
 
 #. type: deftypevr
-#: doc/guix.texi:17362
+#: doc/guix.texi:20051
 msgid "Assume Dovecot is the only MUA accessing Maildir: Scan cur/ directory only when its mtime changes unexpectedly or when we can't find the mail otherwise.  Defaults to @samp{#f}."
 msgstr "Ob Dovecot annehmen darf, dass es der einzige MUA ist, der auf Maildir zugreift. Dann wird das cur/-Verzeichnis nur bei unerwarteten Änderungen an seiner mtime durchsucht oder wenn die Mail sonst nicht gefunden werden kann. Die Vorgabe ist @samp{#f}."
 
 #. type: deftypevr
-#: doc/guix.texi:17364
+#: doc/guix.texi:20053
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} space-separated-string-list mbox-read-locks"
 msgstr "{@code{dovecot-configuration}-Parameter} Leerzeichengetrennte-Zeichenketten-Liste mbox-read-locks"
 
 #. type: deftypevr
-#: doc/guix.texi:17367
+#: doc/guix.texi:20056
 msgid "Which locking methods to use for locking mbox.  There are four available:"
 msgstr "Welche Sperrmethoden zum Sperren des mbox-Postfachs (der „Mailbox“) benutzt werden. Es stehen vier Methoden zur Auswahl:"
 
 #. type: item
-#: doc/guix.texi:17369
+#: doc/guix.texi:20058
 #, no-wrap
 msgid "dotlock"
 msgstr "dotlock"
 
 #. type: table
-#: doc/guix.texi:17373
+#: doc/guix.texi:20062
 msgid "Create <mailbox>.lock file.  This is the oldest and most NFS-safe solution.  If you want to use /var/mail/ like directory, the users will need write access to that directory."
 msgstr "Hier wird eine Datei namens <Postfach>.lock erzeugt. Es handelt sich um die älteste und am ehesten mit NFS verwendbare Lösung. Wenn Sie ein Verzeichnis wie /var/mail/ benutzen, müssen die Benutzer Schreibzugriff darauf haben."
 
 #. type: item
-#: doc/guix.texi:17373
+#: doc/guix.texi:20062
 #, no-wrap
 msgid "dotlock-try"
 msgstr "dotlock-try"
 
 #. type: table
-#: doc/guix.texi:17376
+#: doc/guix.texi:20065
 msgid "Same as dotlock, but if it fails because of permissions or because there isn't enough disk space, just skip it."
 msgstr "Genau wie dotlock, aber wenn es mangels Berechtigungen fehlschlägt oder nicht genug Plattenplatz verfügbar ist, wird einfach nicht gesperrt."
 
 #. type: item
-#: doc/guix.texi:17376
+#: doc/guix.texi:20065
 #, no-wrap
 msgid "fcntl"
 msgstr "fcntl"
 
 #. type: table
-#: doc/guix.texi:17378
+#: doc/guix.texi:20067
 msgid "Use this if possible.  Works with NFS too if lockd is used."
 msgstr "Benutzen Sie diese Einstellung wenn möglich. Sie funktioniert auch mit NFS, sofern lockd benutzt wird."
 
 #. type: item
-#: doc/guix.texi:17378
+#: doc/guix.texi:20067
 #, no-wrap
 msgid "flock"
 msgstr "flock"
 
 #. type: table
-#: doc/guix.texi:17380 doc/guix.texi:17382
+#: doc/guix.texi:20069 doc/guix.texi:20071
 msgid "May not exist in all systems.  Doesn't work with NFS."
 msgstr "Existiert vielleicht nicht auf allen Systemen. Funktioniert nicht mit NFS."
 
 #. type: item
-#: doc/guix.texi:17380
+#: doc/guix.texi:20069
 #, no-wrap
 msgid "lockf"
 msgstr "lockf"
 
 #. type: deftypevr
-#: doc/guix.texi:17388
+#: doc/guix.texi:20077
 msgid "You can use multiple locking methods; if you do the order they're declared in is important to avoid deadlocks if other MTAs/MUAs are using multiple locking methods as well.  Some operating systems don't allow using some of them simultaneously."
 msgstr "Sie können mehrere Sperrmethoden angeben; wenn ja, dann ist deren Reihenfolge entscheidend, um Verklemmungen („Deadlocks“) zu vermeiden, wenn andere MTAs/MUAs auch mehrere Sperrmethoden benutzen. Manche Betriebssysteme erlauben es nicht, manche davon gleichzeitig zu benutzen."
 
 #. type: deftypevr
-#: doc/guix.texi:17390
+#: doc/guix.texi:20079
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} space-separated-string-list mbox-write-locks"
 msgstr "{@code{dovecot-configuration}-Parameter} Leerzeichengetrennte-Zeichenketten-Liste mbox-write-locks"
 
 #. type: deftypevr
-#: doc/guix.texi:17394
+#: doc/guix.texi:20083
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string mbox-lock-timeout"
 msgstr "{@code{dovecot-configuration}-Parameter} Zeichenkette mbox-lock-timeout"
 
 #. type: deftypevr
-#: doc/guix.texi:17397
+#: doc/guix.texi:20086
 msgid "Maximum time to wait for lock (all of them) before aborting.  Defaults to @samp{\"5 mins\"}."
 msgstr "Wie lange höchstens auf Sperren (irgendeiner Art) gewartet wird, bevor abgebrochen wird. Die Vorgabe ist @samp{\"5 mins\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17399
+#: doc/guix.texi:20088
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string mbox-dotlock-change-timeout"
 msgstr "{@code{dovecot-configuration}-Parameter} Zeichenkette mbox-dotlock-change-timeout"
 
 #. type: deftypevr
-#: doc/guix.texi:17403
+#: doc/guix.texi:20092
 msgid "If dotlock exists but the mailbox isn't modified in any way, override the lock file after this much time.  Defaults to @samp{\"2 mins\"}."
 msgstr "Wenn eine Dotlock-Sperrdatei existiert, das Postfach (die „Mailbox“) aber auf keine Weise geändert wurde, wird die Sperrdatei nach der hier angegebenen Zeit außer Kraft gesetzt. Die Vorgabe ist @samp{\"2 mins\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17405
+#: doc/guix.texi:20094
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean mbox-dirty-syncs?"
 msgstr "{@code{dovecot-configuration}-Parameter} Boolescher-Ausdruck mbox-dirty-syncs?"
 
 #. type: deftypevr
-#: doc/guix.texi:17416
+#: doc/guix.texi:20105
 msgid "When mbox changes unexpectedly we have to fully read it to find out what changed.  If the mbox is large this can take a long time.  Since the change is usually just a newly appended mail, it'd be faster to simply read the new mails.  If this setting is enabled, Dovecot does this but still safely fallbacks to re-reading the whole mbox file whenever something in mbox isn't how it's expected to be.  The only real downside to this setting is that if some other MUA changes message flags, Dovecot doesn't notice it immediately.  Note that a full sync is done with SELECT, EXAMINE, EXPUNGE and CHECK commands.  Defaults to @samp{#t}."
 msgstr "Wenn sich das mbox-Postfach unerwartet ändert, müssen wir es gänzlich neu einlesen, um herauszufinden, was sich geändert hat. Wenn die mbox groß ist, kann das viel Zeit in Anspruch nehmen. Weil es sich bei der Änderung meistens nur um eine neu angefügte Mail handelt, wäre es schneller, nur die neuen Mails zu lesen. Wenn diese Einstellung hier aktiviert ist, arbeitet Dovecot nach dem eben beschriebenen Prinzip, liest aber doch die ganze mbox-Datei neu ein, sobald es etwas nicht wie erwartet vorfindet. Der einzige wirkliche Nachteil bei dieser Einstellung ist, dass es Dovecot nicht sofort erkennt, wenn ein anderer MUA die Statusindikatoren („Flags“) ändert. Beachten Sie, dass eine komplette Synchronisation bei den Befehlen SELECT, EXAMINE, EXPUNGE und CHECK durchgeführt wird. Die Vorgabe ist @samp{#t}."
 
 #. type: deftypevr
-#: doc/guix.texi:17418
+#: doc/guix.texi:20107
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean mbox-very-dirty-syncs?"
 msgstr "{@code{dovecot-configuration}-Parameter} Boolescher-Ausdruck mbox-very-dirty-syncs?"
 
 #. type: deftypevr
-#: doc/guix.texi:17423
+#: doc/guix.texi:20112
 msgid "Like @samp{mbox-dirty-syncs}, but don't do full syncs even with SELECT, EXAMINE, EXPUNGE or CHECK commands.  If this is set, @samp{mbox-dirty-syncs} is ignored.  Defaults to @samp{#f}."
 msgstr "Wie @samp{mbox-dirty-syncs}, aber ohne dass komplette Synchronisationen selbst bei den Befehlen SELECT, EXAMINE, EXPUNGE oder CHECK durchgeführt werden. Wenn dies hier aktiviert ist, wird @samp{mbox-dirty-syncs} ignoriert. Die Vorgabe ist @samp{#f}."
 
 #. type: deftypevr
-#: doc/guix.texi:17425
+#: doc/guix.texi:20114
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean mbox-lazy-writes?"
 msgstr "{@code{dovecot-configuration}-Parameter} Boolescher-Ausdruck mbox-lazy-writes?"
 
 #. type: deftypevr
-#: doc/guix.texi:17431
+#: doc/guix.texi:20120
 msgid "Delay writing mbox headers until doing a full write sync (EXPUNGE and CHECK commands and when closing the mailbox).  This is especially useful for POP3 where clients often delete all mails.  The downside is that our changes aren't immediately visible to other MUAs.  Defaults to @samp{#t}."
 msgstr "Ob das Schreiben von mbox-Kopfzeilen hinausgezögert wird, bis eine komplette Schreibsynchronisation durchgeführt wird (bei den Befehlen EXPUNGE und CHECK, und beim Schließen des Postfachs, d.h.@: der „Mailbox“). Das wird besonders nützlich, wenn Clients POP3 verwenden, wo es oft vorkommt, dass die Clients alle Mails löschen. Der Nachteil ist, dass Dovecots Änderungen nicht sofort für andere MUAs sichtbar werden. Die Vorgabe ist @samp{#t}."
 
 #. type: deftypevr
-#: doc/guix.texi:17433
+#: doc/guix.texi:20122
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} non-negative-integer mbox-min-index-size"
 msgstr "{@code{dovecot-configuration}-Parameter} Nichtnegative-ganze-Zahl mbox-min-index-size"
 
 #. type: deftypevr
-#: doc/guix.texi:17438
+#: doc/guix.texi:20127
 msgid "If mbox size is smaller than this (e.g.@: 100k), don't write index files.  If an index file already exists it's still read, just not updated.  Defaults to @samp{0}."
 msgstr "Wenn die Größe des mbox-Postfaches kleiner als die angegebene Größe (z.B.@: 100k) ist, werden keine Index-Dateien geschrieben. Wenn bereits eine Index-Datei existiert, wird sie weiterhin gelesen und nur nicht aktualisiert. Die Vorgabe ist @samp{0}."
 
 #. type: deftypevr
-#: doc/guix.texi:17440
+#: doc/guix.texi:20129
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} non-negative-integer mdbox-rotate-size"
 msgstr "{@code{dovecot-configuration}-Parameter} Nichtnegative-ganze-Zahl mdbox-rotate-size"
 
 #. type: deftypevr
-#: doc/guix.texi:17443
+#: doc/guix.texi:20132
 msgid "Maximum dbox file size until it's rotated.  Defaults to @samp{10000000}."
 msgstr "Die maximale Größe der dbox-Datei, bis sie rotiert wird. Die Vorgabe ist @samp{10000000}."
 
 #. type: deftypevr
-#: doc/guix.texi:17445
+#: doc/guix.texi:20134
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string mdbox-rotate-interval"
 msgstr "{@code{dovecot-configuration}-Parameter} Zeichenkette mdbox-rotate-interval"
 
 #. type: deftypevr
-#: doc/guix.texi:17450
+#: doc/guix.texi:20139
 msgid "Maximum dbox file age until it's rotated.  Typically in days.  Day begins from midnight, so 1d = today, 2d = yesterday, etc.  0 = check disabled.  Defaults to @samp{\"1d\"}."
 msgstr "Das maximale Alter der dbox-Datei, bis sie rotiert wird. Typischerweise wird es in Tagen angegeben. Der Tag beginnt um Mitternacht, also steht 1d für heute, 2d für gestern, etc. 0 heißt, die Überprüfung ist abgeschaltet. Die Vorgabe ist @samp{\"1d\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17452
+#: doc/guix.texi:20141
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean mdbox-preallocate-space?"
 msgstr "{@code{dovecot-configuration}-Parameter} Boolescher-Ausdruck mdbox-preallocate-space?"
 
 #. type: deftypevr
-#: doc/guix.texi:17457
+#: doc/guix.texi:20146
 msgid "When creating new mdbox files, immediately preallocate their size to @samp{mdbox-rotate-size}.  This setting currently works only in Linux with some file systems (ext4, xfs).  Defaults to @samp{#f}."
 msgstr "Ob beim Erstellen neuer mdbox-Postfachdateien gleich am Anfang eine Datei der Größe @samp{mdbox-rotate-size} vorab angelegt werden soll. Diese Einstellung funktioniert derzeit nur mit Linux auf manchen Dateisystemen (ext4, xfs). Die Vorgabe ist @samp{#f}."
 
 #. type: deftypevr
-#: doc/guix.texi:17459
+#: doc/guix.texi:20148
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string mail-attachment-dir"
 msgstr "{@code{dovecot-configuration}-Parameter} Zeichenkette mail-attachment-dir"
 
 #. type: deftypevr
-#: doc/guix.texi:17463
+#: doc/guix.texi:20152
 msgid "sdbox and mdbox support saving mail attachments to external files, which also allows single instance storage for them.  Other backends don't support this for now."
 msgstr "Postfächer in den Formaten sdbox und mdbox unterstützen es, Mail-Anhänge in externen Dateien zu speichern, wodurch sie mit Einzelinstanz-Speicherung („Single-Instance Storage“) dedupliziert werden können. Andere Hintergrundsysteme („Backends“) bieten dafür noch keine Unterstützung."
 
 #. type: deftypevr
-#: doc/guix.texi:17465
+#: doc/guix.texi:20154
 msgid "WARNING: This feature hasn't been tested much yet.  Use at your own risk."
 msgstr "@emph{Warnung}: Diese Funktionalität wurde noch nicht ausgiebig getestet. Benutzen Sie sie auf eigene Gefahr."
 
 #. type: deftypevr
-#: doc/guix.texi:17468
+#: doc/guix.texi:20157
 msgid "Directory root where to store mail attachments.  Disabled, if empty.  Defaults to @samp{\"\"}."
 msgstr "Das Wurzelverzeichnis, in dem Mail-Anhänge gespeichert werden. Wenn es leer gelassen wird, ist es deaktiviert. Die Vorgabe ist @samp{\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17470
+#: doc/guix.texi:20159
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} non-negative-integer mail-attachment-min-size"
 msgstr "{@code{dovecot-configuration}-Parameter} Nichtnegative-ganze-Zahl mail-attachment-min-size"
 
 #. type: deftypevr
-#: doc/guix.texi:17475
+#: doc/guix.texi:20164
 msgid "Attachments smaller than this aren't saved externally.  It's also possible to write a plugin to disable saving specific attachments externally.  Defaults to @samp{128000}."
 msgstr "Anhänge, die kleiner sind als hier angegeben, werden @emph{nicht} extern gespeichert. Es ist auch möglich, ein Plugin zu schreiben, das externes Speichern bestimmter Anhänge deaktiviert. Die Vorgabe ist @samp{128000}."
 
 #. type: deftypevr
-#: doc/guix.texi:17477
+#: doc/guix.texi:20166
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string mail-attachment-fs"
 msgstr "{@code{dovecot-configuration}-Parameter} Zeichenkette mail-attachment-fs"
 
 #. type: deftypevr
-#: doc/guix.texi:17479
+#: doc/guix.texi:20168
 msgid "File system backend to use for saving attachments:"
 msgstr "Ein Dateisystemhintergrundprogramm, mit dem Anhänge gespeichert werden:"
 
 #. type: item
-#: doc/guix.texi:17480
+#: doc/guix.texi:20169
 #, no-wrap
 msgid "posix"
 msgstr "posix"
 
 #. type: table
-#: doc/guix.texi:17482
+#: doc/guix.texi:20171
 msgid "No SiS done by Dovecot (but this might help FS's own deduplication)"
 msgstr "Dovecot führt keine Einzelinstanzspeicherung durch (aber das Dateisystem kann so leichter selbst deduplizieren)"
 
 #. type: item
-#: doc/guix.texi:17482
+#: doc/guix.texi:20171
 #, no-wrap
 msgid "sis posix"
 msgstr "sis posix"
 
 #. type: table
-#: doc/guix.texi:17484
+#: doc/guix.texi:20173
 msgid "SiS with immediate byte-by-byte comparison during saving"
 msgstr "Einzelinstanzspeicherung wird durch einen sofortigen Byte-für-Byte-Vergleich beim Speichern umgesetzt"
 
 #. type: item
-#: doc/guix.texi:17484
+#: doc/guix.texi:20173
 #, no-wrap
 msgid "sis-queue posix"
 msgstr "sis-queue posix"
 
 #. type: table
-#: doc/guix.texi:17486
+#: doc/guix.texi:20175
 msgid "SiS with delayed comparison and deduplication."
 msgstr "Einzelinstanzspeicherung mit verzögertem Vergleich und Deduplizierung."
 
 #. type: deftypevr
-#: doc/guix.texi:17488
+#: doc/guix.texi:20177
 msgid "Defaults to @samp{\"sis posix\"}."
 msgstr "Die Vorgabe ist @samp{\"sis posix\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17490
+#: doc/guix.texi:20179
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string mail-attachment-hash"
 msgstr "{@code{dovecot-configuration}-Parameter} Zeichenkette mail-attachment-hash"
 
 #. type: deftypevr
-#: doc/guix.texi:17496
+#: doc/guix.texi:20185
 msgid "Hash format to use in attachment filenames.  You can add any text and variables: @code{%@{md4@}}, @code{%@{md5@}}, @code{%@{sha1@}}, @code{%@{sha256@}}, @code{%@{sha512@}}, @code{%@{size@}}.  Variables can be truncated, e.g.@: @code{%@{sha256:80@}} returns only first 80 bits.  Defaults to @samp{\"%@{sha1@}\"}."
 msgstr "Welches Hash-Format die Dateinamen von Anhängen bestimmt. Sie können beliebigen Text und Variable beifügen: @code{%@{md4@}}, @code{%@{md5@}}, @code{%@{sha1@}}, @code{%@{sha256@}}, @code{%@{sha512@}}, @code{%@{size@}}. Es können auch nur Teile der Variablen benutzt werden, z.B.@: liefert @code{%@{sha256:80@}} nur die ersten 80 Bits. Die Vorgabe ist @samp{\"%@{sha1@}\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17498
+#: doc/guix.texi:20187
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} non-negative-integer default-process-limit"
 msgstr "{@code{dovecot-configuration}-Parameter} Nichtnegative-ganze-Zahl default-process-limit"
 
 #. type: deftypevr
-#: doc/guix.texi:17503
+#: doc/guix.texi:20192
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} non-negative-integer default-client-limit"
 msgstr "{@code{dovecot-configuration}-Parameter} Nichtnegative-ganze-Zahl default-client-limit"
 
 #. type: deftypevr
-#: doc/guix.texi:17506 doc/guix.texi:23516
+#: doc/guix.texi:20195 doc/guix.texi:26377
 msgid "Defaults to @samp{1000}."
 msgstr "Die Vorgabe ist @samp{1000}."
 
 #. type: deftypevr
-#: doc/guix.texi:17508
+#: doc/guix.texi:20197
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} non-negative-integer default-vsz-limit"
 msgstr "{@code{dovecot-configuration}-Parameter} Nichtnegative-ganze-Zahl default-vsz-limit"
 
 #. type: deftypevr
-#: doc/guix.texi:17513
+#: doc/guix.texi:20202
 msgid "Default VSZ (virtual memory size) limit for service processes.  This is mainly intended to catch and kill processes that leak memory before they eat up everything.  Defaults to @samp{256000000}."
 msgstr "Die vorgegebene Beschränkung der VSZ („Virtual Memory Size“, virtuelle Speichergröße) für Dienstprozesse. Dies ist hauptsächlich dafür gedacht, Prozessen, die ein Speicherleck aufweisen, rechtzeitig Einhalt zu gebieten und sie abzuwürgen, bevor sie allen Speicher aufbrauchen. Die Vorgabe ist @samp{256000000}."
 
 #. type: deftypevr
-#: doc/guix.texi:17515
+#: doc/guix.texi:20204
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string default-login-user"
 msgstr "{@code{dovecot-configuration}-Parameter} Zeichenkette default-login-user"
 
 #. type: deftypevr
-#: doc/guix.texi:17520
+#: doc/guix.texi:20209
 msgid "Login user is internally used by login processes.  This is the most untrusted user in Dovecot system.  It shouldn't have access to anything at all.  Defaults to @samp{\"dovenull\"}."
 msgstr "Der Anmeldebenutzer, der intern von Anmeldeprozessen benutzt wird. Der Anmeldebenutzer ist derjenige Benutzer im Dovecot-System, dem am wenigsten Vertrauen zugeschrieben wird. Er sollte auf überhaupt nichts Zugriff haben. Die Vorgabe ist @samp{\"dovenull\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17522
+#: doc/guix.texi:20211
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string default-internal-user"
 msgstr "{@code{dovecot-configuration}-Parameter} Zeichenkette default-internal-user"
 
 #. type: deftypevr
-#: doc/guix.texi:17527
+#: doc/guix.texi:20216
 msgid "Internal user is used by unprivileged processes.  It should be separate from login user, so that login processes can't disturb other processes.  Defaults to @samp{\"dovecot\"}."
 msgstr "Der interne Benutzer, der von Prozessen ohne besondere Berechtigungen benutzt wird. Er sollte sich vom Anmeldebenutzer unterscheiden, damit Anmeldeprozesse keine anderen Prozesse stören können. Die Vorgabe ist @samp{\"dovecot\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17529
+#: doc/guix.texi:20218
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string ssl?"
 msgstr "{@code{dovecot-configuration}-Parameter} Zeichenkette ssl?"
 
 #. type: deftypevr
-#: doc/guix.texi:17532
+#: doc/guix.texi:20221
 msgid "SSL/TLS support: yes, no, required.  <doc/wiki/SSL.txt>.  Defaults to @samp{\"required\"}."
 msgstr "SSL/TLS-Unterstützung: yes für ja, no für nein, oder required, wenn SSL/TLS verpflichtend benutzt werden muss. Siehe <doc/wiki/SSL.txt>. Die Vorgabe ist @samp{\"required\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17534
+#: doc/guix.texi:20223
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string ssl-cert"
 msgstr "{@code{dovecot-configuration}-Parameter} Zeichenkette ssl-cert"
 
 #. type: deftypevr
-#: doc/guix.texi:17537
+#: doc/guix.texi:20226
 msgid "PEM encoded X.509 SSL/TLS certificate (public key).  Defaults to @samp{\"</etc/dovecot/default.pem\"}."
 msgstr "Das PEM-kodierte X.509-SSL/TLS-Zertifikat (der öffentliche Schlüssel). Die Vorgabe ist @samp{\"</etc/dovecot/default.pem\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17539
+#: doc/guix.texi:20228
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string ssl-key"
 msgstr "{@code{dovecot-configuration}-Parameter} Zeichenkette ssl-key"
 
 #. type: deftypevr
-#: doc/guix.texi:17544
+#: doc/guix.texi:20233
 msgid "PEM encoded SSL/TLS private key.  The key is opened before dropping root privileges, so keep the key file unreadable by anyone but root.  Defaults to @samp{\"</etc/dovecot/private/default.pem\"}."
 msgstr "Der PEM-kodierte private Schlüssel für SSL/TLS. Der Schlüssel wird geöffnet, bevor Administratorrechte abgegeben werden, damit niemand außer dem Administratornutzer „root“ Lesezugriff auf die Schlüsseldatei hat. Die Vorgabe ist @samp{\"</etc/dovecot/private/default.pem\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17546
+#: doc/guix.texi:20235
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string ssl-key-password"
 msgstr "{@code{dovecot-configuration}-Parameter} Zeichenkette ssl-key-password"
 
 #. type: deftypevr
-#: doc/guix.texi:17552
+#: doc/guix.texi:20241
 msgid "If key file is password protected, give the password here.  Alternatively give it when starting dovecot with -p parameter.  Since this file is often world-readable, you may want to place this setting instead to a different.  Defaults to @samp{\"\"}."
 msgstr "Wenn die Schlüsseldatei passwortgeschützt ist, geben Sie hier das Passwort an. Alternativ können Sie es angeben, wenn sie Dovecot starten, indem Sie es mit dem Parameter -p übergeben. Da die Konfigurationsdatei oftmals allgemein lesbar ist, möchten Sie es vielleicht in einer anderen Datei ablegen. Die Vorgabe ist @samp{\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17554
+#: doc/guix.texi:20243
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string ssl-ca"
 msgstr "{@code{dovecot-configuration}-Parameter} Zeichenkette ssl-ca"
 
 #. type: deftypevr
-#: doc/guix.texi:17560
+#: doc/guix.texi:20249
 msgid "PEM encoded trusted certificate authority.  Set this only if you intend to use @samp{ssl-verify-client-cert? #t}.  The file should contain the CA certificate(s) followed by the matching CRL(s).  (e.g.@: @samp{ssl-ca </etc/ssl/certs/ca.pem}).  Defaults to @samp{\"\"}."
 msgstr "Die PEM-kodierte Zertifikatsautorität, die als vertrauenswürdig eingestuft wird. Legen Sie sie nur dann fest, wenn Sie @samp{ssl-verify-client-cert? #t} setzen möchten. Die Datei sollte das oder die Zertifikat(e) der Zertifikatsautorität („Certificate Authority“, kurz CA) enthalten, gefolgt von den entsprechenden Zertifikatsperrlisten (CRLs), z.B.@: @samp{ssl-ca </etc/ssl/certs/ca.pem}. Die Vorgabe ist @samp{\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17562
+#: doc/guix.texi:20251
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean ssl-require-crl?"
 msgstr "{@code{dovecot-configuration}-Parameter} Boolescher-Ausdruck ssl-require-crl?"
 
 #. type: deftypevr
-#: doc/guix.texi:17565
+#: doc/guix.texi:20254
 msgid "Require that CRL check succeeds for client certificates.  Defaults to @samp{#t}."
 msgstr "Ob die Prüfung der Client-Zertifikate gegen die Zertifikatsperrlisten (CRLs) erfolgreich sein muss. Die Vorgabe ist @samp{#t}."
 
 #. type: deftypevr
-#: doc/guix.texi:17567
+#: doc/guix.texi:20256
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean ssl-verify-client-cert?"
 msgstr "{@code{dovecot-configuration}-Parameter} Boolescher-Ausdruck ssl-verify-client-cert?"
 
 #. type: deftypevr
-#: doc/guix.texi:17571
+#: doc/guix.texi:20260
 msgid "Request client to send a certificate.  If you also want to require it, set @samp{auth-ssl-require-client-cert? #t} in auth section.  Defaults to @samp{#f}."
 msgstr "Ob der Client gebeten wird, ein Zertifikat zu schicken. Wenn Sie es auch verpflichtend machen wollen, setzen Sie @samp{auth-ssl-require-client-cert? #t} im Autorisierungsabschnitt. Die Vorgabe ist @samp{#f}."
 
 #. type: deftypevr
-#: doc/guix.texi:17573
+#: doc/guix.texi:20262
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string ssl-cert-username-field"
 msgstr "{@code{dovecot-configuration}-Parameter} Zeichenkette ssl-cert-username-field"
 
 #. type: deftypevr
-#: doc/guix.texi:17578
+#: doc/guix.texi:20267
 msgid "Which field from certificate to use for username.  commonName and x500UniqueIdentifier are the usual choices.  You'll also need to set @samp{auth-ssl-username-from-cert? #t}.  Defaults to @samp{\"commonName\"}."
 msgstr "Welches Feld im Zertifikat den Benutzernamen angibt. In der Regel wählt man den Gebräuchlichen Namen „commonName“ oder den Eindeutigen Identifikator „x500UniqueIdentifier“ als Benutzernamen, wenn man Client-Zertifikate benutzt. Sie müssen dann auch @samp{auth-ssl-username-from-cert? #t} setzen. Die Vorgabe ist @samp{\"commonName\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17580
+#: doc/guix.texi:20269
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string ssl-min-protocol"
 msgstr "{@code{dovecot-configuration}-Parameter} Zeichenkette ssl-min-protocol"
 
 #. type: deftypevr
-#: doc/guix.texi:17583
+#: doc/guix.texi:20272
 msgid "Minimum SSL protocol version to accept.  Defaults to @samp{\"TLSv1\"}."
 msgstr "Die kleinste Version des SSL-Protokolls, die noch akzeptiert werden soll. Die Vorgabe ist @samp{\"TLSv1\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17585
+#: doc/guix.texi:20274
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string ssl-cipher-list"
 msgstr "{@code{dovecot-configuration}-Parameter} Zeichenkette ssl-cipher-list"
 
 #. type: deftypevr
-#: doc/guix.texi:17588
+#: doc/guix.texi:20277
 msgid "SSL ciphers to use.  Defaults to @samp{\"ALL:!kRSA:!SRP:!kDHd:!DSS:!aNULL:!eNULL:!EXPORT:!DES:!3DES:!MD5:!PSK:!RC4:!ADH:!LOW@@STRENGTH\"}."
 msgstr "Welche SSL-Ciphers benutzt werden dürfen. Die Vorgabe ist @samp{\"ALL:!kRSA:!SRP:!kDHd:!DSS:!aNULL:!eNULL:!EXPORT:!DES:!3DES:!MD5:!PSK:!RC4:!ADH:!LOW@@STRENGTH\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17590
+#: doc/guix.texi:20279
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string ssl-crypto-device"
 msgstr "{@code{dovecot-configuration}-Parameter} Zeichenkette ssl-crypto-device"
 
 #. type: deftypevr
-#: doc/guix.texi:17593
+#: doc/guix.texi:20282
 msgid "SSL crypto device to use, for valid values run \"openssl engine\".  Defaults to @samp{\"\"}."
 msgstr "Das SSL-Verschlüsselungsgerät („Crypto Device“), das benutzt werden soll. Gültige Werte bekommen Sie gezeigt, wenn Sie „openssl engine“ ausführen. Die Vorgabe ist @samp{\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17595
+#: doc/guix.texi:20284
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string postmaster-address"
 msgstr "{@code{dovecot-configuration}-Parameter} Zeichenkette postmaster-address"
 
 #. type: deftypevr
-#: doc/guix.texi:17599
+#: doc/guix.texi:20288
 msgid "Address to use when sending rejection mails.  %d expands to recipient domain.  Defaults to @samp{\"postmaster@@%d\"}."
 msgstr "An welche Adresse Mails versandt werden sollen, die über die Zurückweisung einer Mail informieren. %d wird zur Domain des Empfängers umgeschrieben. Die Vorgabe ist @samp{\"postmaster@@%d\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17601
+#: doc/guix.texi:20290
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string hostname"
 msgstr "{@code{dovecot-configuration}-Parameter} Zeichenkette hostname"
 
 #. type: deftypevr
-#: doc/guix.texi:17605
+#: doc/guix.texi:20294
 msgid "Hostname to use in various parts of sent mails (e.g.@: in Message-Id)  and in LMTP replies.  Default is the system's real hostname@@domain.  Defaults to @samp{\"\"}."
 msgstr "Der Rechnername, der an mehreren Stellen in versandten E-Mails (z.B.@: im Nachrichtenidentifikator „Message-Id“) und in LMTP-Antworten benutzt wird. Die Voreinstellung entspricht dem wirklichen Rechnernamen des Systems. Die Vorgabe ist @samp{\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17607
+#: doc/guix.texi:20296
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean quota-full-tempfail?"
 msgstr "{@code{dovecot-configuration}-Parameter} Boolescher-Ausdruck quota-full-tempfail?"
 
 #. type: deftypevr
-#: doc/guix.texi:17611
+#: doc/guix.texi:20300
 msgid "If user is over quota, return with temporary failure instead of bouncing the mail.  Defaults to @samp{#f}."
 msgstr "Ob bei einem Nutzer, der sein Kontingent überschreitet, ein temporärer Fehler gemeldet werden soll, statt Nachrichten zurück zu versenden (zu „bouncen“). Die Vorgabe ist @samp{#f}."
 
 #. type: deftypevr
-#: doc/guix.texi:17613
+#: doc/guix.texi:20302
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} file-name sendmail-path"
 msgstr "{@code{dovecot-configuration}-Parameter} Dateiname sendmail-path"
 
 #. type: deftypevr
-#: doc/guix.texi:17616
+#: doc/guix.texi:20305
 msgid "Binary to use for sending mails.  Defaults to @samp{\"/usr/sbin/sendmail\"}."
 msgstr "Welche Binärdatei zum Versenden von Mails benutzt werden soll. Die Vorgabe ist @samp{\"/usr/sbin/sendmail\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17618
+#: doc/guix.texi:20307
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string submission-host"
 msgstr "{@code{dovecot-configuration}-Parameter} Zeichenkette submission-host"
 
 #. type: deftypevr
-#: doc/guix.texi:17622
+#: doc/guix.texi:20311
 msgid "If non-empty, send mails via this SMTP host[:port] instead of sendmail.  Defaults to @samp{\"\"}."
 msgstr "Wenn dieses Feld nicht leer ist, werden Mails an den SMTP-Server auf dem angegebenen „Rechner[:Port]“ statt an sendmail geschickt. Die Vothabe ist @samp{\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17624
+#: doc/guix.texi:20313
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string rejection-subject"
 msgstr "{@code{dovecot-configuration}-Parameter} Zeichenkette rejection-subject"
 
 #. type: deftypevr
-#: doc/guix.texi:17628
+#: doc/guix.texi:20317
 msgid "Subject: header to use for rejection mails.  You can use the same variables as for @samp{rejection-reason} below.  Defaults to @samp{\"Rejected: %s\"}."
 msgstr "Die Betreffkopfzeile („Subject:“), die für Mails benutzt werden soll, die über die Zurückweisung einer Mail informieren. Sie können dieselben Variablen wie beim hierunter beschriebenen Zurückweisungsgrund @samp{rejection-reason} benutzen. Die Vorgabe ist @samp{\"Rejected: %s\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17630
+#: doc/guix.texi:20319
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string rejection-reason"
 msgstr "{@code{dovecot-configuration}-Parameter} Zeichenkette rejection-reason"
 
 #. type: deftypevr
-#: doc/guix.texi:17633
+#: doc/guix.texi:20322
 msgid "Human readable error message for rejection mails.  You can use variables:"
 msgstr "Die menschenlesbare Fehlermeldung in Mails, die über die Zurückweisung einer Mail informieren. Sie können diese Variablen benutzen:"
 
 #. type: table
-#: doc/guix.texi:17637
+#: doc/guix.texi:20326
 msgid "CRLF"
 msgstr "CRLF-Zeilenumbruch"
 
 #. type: item
-#: doc/guix.texi:17637
+#: doc/guix.texi:20326
 #, no-wrap
 msgid "%r"
 msgstr "%r"
 
 #. type: table
-#: doc/guix.texi:17639
+#: doc/guix.texi:20328
 msgid "reason"
 msgstr "Begründung („Reason“)"
 
 #. type: table
-#: doc/guix.texi:17641
+#: doc/guix.texi:20330
 msgid "original subject"
 msgstr "Ursprünglicher Betreff („Subject“)"
 
 #. type: item
-#: doc/guix.texi:17641
+#: doc/guix.texi:20330
 #, no-wrap
 msgid "%t"
 msgstr "%t"
 
 #. type: table
-#: doc/guix.texi:17643
+#: doc/guix.texi:20332
 msgid "recipient"
 msgstr "Empfänger („To“)"
 
 #. type: deftypevr
-#: doc/guix.texi:17645
+#: doc/guix.texi:20334
 msgid "Defaults to @samp{\"Your message to <%t> was automatically rejected:%n%r\"}."
 msgstr "Die Vorgabe ist @samp{\"Your message to <%t> was automatically rejected:%n%r\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17647
+#: doc/guix.texi:20336
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string recipient-delimiter"
 msgstr "{@code{dovecot-configuration}-Parameter} Zeichenkette recipient-delimiter"
 
 #. type: deftypevr
-#: doc/guix.texi:17651
+#: doc/guix.texi:20340
 msgid "Delimiter character between local-part and detail in email address.  Defaults to @samp{\"+\"}."
 msgstr "Trennzeichen zwischen dem eigentlichen Lokalteil („local-part“) und Detailangaben in der E-Mail-Adresse. Die Vorgabe ist @samp{\"+\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17653
+#: doc/guix.texi:20342
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string lda-original-recipient-header"
 msgstr "{@code{dovecot-configuration}-Parameter} Zeichenkette lda-original-recipient-header"
 
 #. type: deftypevr
-#: doc/guix.texi:17659
+#: doc/guix.texi:20348
 msgid "Header where the original recipient address (SMTP's RCPT TO: address) is taken from if not available elsewhere.  With dovecot-lda -a parameter overrides this.  A commonly used header for this is X-Original-To.  Defaults to @samp{\"\"}."
 msgstr "Aus welcher Kopfzeile die Adresse des Ursprünglichen Empfängers (SMTPs „RCPT TO:“-Adresse) genommen wird, wenn sie nicht anderweitig eingetragen ist. Wird die Befehlszeilenoption @option{-a} von dovecot-lda angegeben, hat sie Vorrang vor diesem Feld. Oft wird die Kopfzeile X-Original-To hierfür verwendet. Die Vorgabe ist @samp{\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17661
+#: doc/guix.texi:20350
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean lda-mailbox-autocreate?"
 msgstr "{@code{dovecot-configuration}-Parameter} Boolescher-Ausdruck lda-mailbox-autocreate?"
 
 #. type: deftypevr
-#: doc/guix.texi:17665
+#: doc/guix.texi:20354
 msgid "Should saving a mail to a nonexistent mailbox automatically create it?.  Defaults to @samp{#f}."
 msgstr "Ob ein nicht existierendes Postfach (eine „Mailbox“) automatisch erzeugt werden soll, wenn eine Mail darin abgespeichert wird. Die Vorgabe ist @samp{#f}."
 
 #. type: deftypevr
-#: doc/guix.texi:17667
+#: doc/guix.texi:20356
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean lda-mailbox-autosubscribe?"
 msgstr "{@code{dovecot-configuration}-Parameter} Boolescher-Ausdruck lda-mailbox-autosubscribe?"
 
 #. type: deftypevr
-#: doc/guix.texi:17671
+#: doc/guix.texi:20360
 msgid "Should automatically created mailboxes be also automatically subscribed?.  Defaults to @samp{#f}."
 msgstr "Ob automatisch erzeugte Postfächer („Mailboxes“) auch automatisch abonniert werden sollen. Die Vorgabe ist @samp{#f}."
 
 #. type: deftypevr
-#: doc/guix.texi:17673
+#: doc/guix.texi:20362
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} non-negative-integer imap-max-line-length"
 msgstr "{@code{dovecot-configuration}-Parameter} Nichtnegative-ganze-Zahl imap-max-line-length"
 
 #. type: deftypevr
-#: doc/guix.texi:17679
+#: doc/guix.texi:20368
 msgid "Maximum IMAP command line length.  Some clients generate very long command lines with huge mailboxes, so you may need to raise this if you get \"Too long argument\" or \"IMAP command line too large\" errors often.  Defaults to @samp{64000}."
 msgstr "Die maximale Länge einer IMAP-Befehlszeile. Manche Clients erzeugen sehr lange Befehlszeilen bei riesigen Postfächern, daher müssen Sie diesen Wert gegebenenfalls anheben, wenn Sie Fehlermeldungen wie „Too long argument“ oder „IMAP command line too large“ häufig sehen. Die Vorgabe ist @samp{64000}."
 
 #. type: deftypevr
-#: doc/guix.texi:17681
+#: doc/guix.texi:20370
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string imap-logout-format"
 msgstr "{@code{dovecot-configuration}-Parameter} Zeichenkette imap-logout-format"
 
 #. type: deftypevr
-#: doc/guix.texi:17683
+#: doc/guix.texi:20372
 msgid "IMAP logout format string:"
 msgstr "Formatzeichenkette für das Abmelden bei IMAP:"
 
 #. type: item
-#: doc/guix.texi:17684
+#: doc/guix.texi:20373
 #, no-wrap
 msgid "%i"
 msgstr "%i"
 
 #. type: table
-#: doc/guix.texi:17686
+#: doc/guix.texi:20375
 msgid "total number of bytes read from client"
 msgstr "Gesamtzahl vom Client empfangener Bytes"
 
 #. type: item
-#: doc/guix.texi:17686
+#: doc/guix.texi:20375
 #, no-wrap
 msgid "%o"
 msgstr "%o"
 
 #. type: table
-#: doc/guix.texi:17688
+#: doc/guix.texi:20377
 msgid "total number of bytes sent to client."
 msgstr "Gesamtzahl zum Client versandter Bytes"
 
 #. type: deftypevr
-#: doc/guix.texi:17691
+#: doc/guix.texi:20380
 msgid "See @file{doc/wiki/Variables.txt} for a list of all the variables you can use.  Defaults to @samp{\"in=%i out=%o deleted=%@{deleted@} expunged=%@{expunged@} trashed=%@{trashed@} hdr_count=%@{fetch_hdr_count@} hdr_bytes=%@{fetch_hdr_bytes@} body_count=%@{fetch_body_count@} body_bytes=%@{fetch_body_bytes@}\"}."
 msgstr "Siehe @file{doc/wiki/Variables.txt} für eine Liste aller Variablen, die Sie benutzen können. Die Vorgabe ist @samp{\"in=%i out=%o deleted=%@{deleted@} expunged=%@{expunged@} trashed=%@{trashed@} hdr_count=%@{fetch_hdr_count@} hdr_bytes=%@{fetch_hdr_bytes@} body_count=%@{fetch_body_count@} body_bytes=%@{fetch_body_bytes@}\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17693
+#: doc/guix.texi:20382
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string imap-capability"
 msgstr "{@code{dovecot-configuration}-Parameter} Zeichenkette imap-capability"
 
 #. type: deftypevr
-#: doc/guix.texi:17697
+#: doc/guix.texi:20386
 msgid "Override the IMAP CAPABILITY response.  If the value begins with '+', add the given capabilities on top of the defaults (e.g.@: +XFOO XBAR).  Defaults to @samp{\"\"}."
 msgstr "Ersetzt die Antworten auf IMAP-CAPABILITY-Anfragen. Wenn der Wert mit „+“ beginnt, werden die angegebenen Capabilitys zu den voreingestellten hinzugefügt (z.B.@: +XFOO XBAR). Die Vorgabe ist @samp{\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17699
+#: doc/guix.texi:20388
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string imap-idle-notify-interval"
 msgstr "{@code{dovecot-configuration}-Parameter} Zeichenkette imap-idle-notify-interval"
 
 #. type: deftypevr
-#: doc/guix.texi:17703
+#: doc/guix.texi:20392
 msgid "How long to wait between \"OK Still here\" notifications when client is IDLEing.  Defaults to @samp{\"2 mins\"}."
 msgstr "Wie lange zwischen „OK Still here“-Benachrichtigungen gewartet wird, wenn der Client auf IDLE steht. Die Vorgabe ist @samp{\"2 mins\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17705
+#: doc/guix.texi:20394
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string imap-id-send"
 msgstr "{@code{dovecot-configuration}-Parameter} Zeichenkette imap-id-send"
 
 #. type: deftypevr
-#: doc/guix.texi:17711
+#: doc/guix.texi:20400
 msgid "ID field names and values to send to clients.  Using * as the value makes Dovecot use the default value.  The following fields have default values currently: name, version, os, os-version, support-url, support-email.  Defaults to @samp{\"\"}."
 msgstr "ID-Feldnamen und -werte, die an Clients versandt werden sollen. Wenn * als der Wert angegeben wird, benutzt Dovecot dafür den voreingestellten Wert. Die folgenden Felder verfügen derzeit über voreingestellte Werte: name, version, os, os-version, support-url, support-email. Die Vorgabe ist @samp{\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17713
+#: doc/guix.texi:20402
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string imap-id-log"
 msgstr "{@code{dovecot-configuration}-Parameter} Zeichenkette imap-id-log"
 
 #. type: deftypevr
-#: doc/guix.texi:17716
+#: doc/guix.texi:20405
 msgid "ID fields sent by client to log.  * means everything.  Defaults to @samp{\"\"}."
 msgstr "Welche vom Client übermittelten ID-Felder protokolliert werden. * bedeutet alle. Die Vorgabe ist @samp{\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17718
+#: doc/guix.texi:20407
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} space-separated-string-list imap-client-workarounds"
 msgstr "{@code{dovecot-configuration}-Parameter} Leerzeichengetrennte-Zeichenketten-Liste imap-client-workarounds"
 
 #. type: deftypevr
-#: doc/guix.texi:17720
+#: doc/guix.texi:20409
 msgid "Workarounds for various client bugs:"
 msgstr "Maßnahmen, um verschiedene Fehler in Clients zu umgehen:"
 
 #. type: item
-#: doc/guix.texi:17722
+#: doc/guix.texi:20411
 #, no-wrap
 msgid "delay-newmail"
 msgstr "delay-newmail"
 
 #. type: table
-#: doc/guix.texi:17729
+#: doc/guix.texi:20418
 msgid "Send EXISTS/RECENT new mail notifications only when replying to NOOP and CHECK commands.  Some clients ignore them otherwise, for example OSX Mail (<v2.1).  Outlook Express breaks more badly though, without this it may show user \"Message no longer in server\" errors.  Note that OE6 still breaks even with this workaround if synchronization is set to \"Headers Only\"."
 msgstr "Benachrichtigungen über neue Mails mit EXISTS/RECENT nur als Antwort auf NOOP- und CHECK-Befehle versenden. Manche Clients ignorieren diese ansonsten, zum Beispiel OSX Mail (<v2.1). Outlook Express verhält sich noch problematischer, denn ohne diese Maßnahme können dem Anwender Fehlermeldungen wie „Die Nachricht steht nicht mehr auf dem Server zur Verfügung“ („Message no longer in server“) angezeigt werden. Beachten Sie, dass OE6 auch mit dieser Maßnahme immer noch Probleme macht, wenn die Synchronisation auf „nur Kopfzeilen“ („Headers Only“) eingestellt ist."
 
 #. type: item
-#: doc/guix.texi:17730
+#: doc/guix.texi:20419
 #, no-wrap
 msgid "tb-extra-mailbox-sep"
 msgstr "tb-extra-mailbox-sep"
 
 #. type: table
-#: doc/guix.texi:17734
+#: doc/guix.texi:20423
 msgid "Thunderbird gets somehow confused with LAYOUT=fs (mbox and dbox) and adds extra @samp{/} suffixes to mailbox names.  This option causes Dovecot to ignore the extra @samp{/} instead of treating it as invalid mailbox name."
 msgstr "Thunderbird kommt aus irgendeinem Grund durcheinander bei LAYOUT=fs (mbox und dbox) und fügt überzählige @samp{/}-Suffixe an Postfachnamen („Mailbox“-Namen) an. Mit dieser Maßnahme ignoriert Dovecot zusätzliche @samp{/}, statt sie als ungültige Postfachnamen zu behandeln."
 
 #. type: item
-#: doc/guix.texi:17735
+#: doc/guix.texi:20424
 #, no-wrap
 msgid "tb-lsub-flags"
 msgstr "tb-lsub-flags"
 
 #. type: table
-#: doc/guix.texi:17739
+#: doc/guix.texi:20428
 msgid "Show \\Noselect flags for LSUB replies with LAYOUT=fs (e.g.@: mbox).  This makes Thunderbird realize they aren't selectable and show them greyed out, instead of only later giving \"not selectable\" popup error."
 msgstr "Ob \\Noselect-Flags für LSUB-Antworten mit LAYOUT=fs (z.B.@: mbox) geliefert werden. Dadurch merkt Thunderbird, dass man Postfächer nicht auswählen kann, und zeigt sie ausgegraut an, statt erst nach einiger Zeit eine Fehlermeldung einzublenden, sie seien nicht auswählbar."
 
 #. type: deftypevr
-#: doc/guix.texi:17743
+#: doc/guix.texi:20432
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string imap-urlauth-host"
 msgstr "{@code{dovecot-configuration}-Parameter} Zeichenkette imap-urlauth-host"
 
 #. type: deftypevr
-#: doc/guix.texi:17746
+#: doc/guix.texi:20435
 msgid "Host allowed in URLAUTH URLs sent by client.  \"*\" allows all.  Defaults to @samp{\"\"}."
 msgstr "Welcher Rechner in vom Client übermittelten URLAUTH-URLs zugelassen wird. Bei „*“ wird jeder zugelassen. Die Vorgabe ist @samp{\"\"}."
 
 #. type: Plain text
-#: doc/guix.texi:17754
+#: doc/guix.texi:20443
 msgid "Whew! Lots of configuration options.  The nice thing about it though is that Guix has a complete interface to Dovecot's configuration language.  This allows not only a nice way to declare configurations, but also offers reflective capabilities as well: users can write code to inspect and transform configurations from within Scheme."
-msgstr "Uff! Das waren viele Konfigurationsoptionen. Das Schöne daran ist aber, dass Guix eine vollständige Schnittstelle für alles bietet, was man in Dovecots Konfigurationssprache ausdrücken kann. Damit kann man Konfigurationen nicht nur auf schöne Art aufschreiben, sondern kann auch reflektiven Code schreiben, der Konfigurationen aus Scheme heraus auslesen und umschreiben kann."
+msgstr "Uff! Das waren viele Konfigurationsoptionen. Das Schöne daran ist aber, dass Guix eine vollständige Schnittstelle für alles bietet, was man in Dovecots Konfigurationssprache ausdrücken kann. Damit können Sie Konfigurationen nicht nur auf schöne Art aufschreiben, sondern kann auch reflektiven Code schreiben, der Konfigurationen aus Scheme heraus auslesen und umschreiben kann."
 
 #. type: Plain text
-#: doc/guix.texi:17760
+#: doc/guix.texi:20449
 msgid "However, it could be that you just want to get a @code{dovecot.conf} up and running.  In that case, you can pass an @code{opaque-dovecot-configuration} as the @code{#:config} parameter to @code{dovecot-service}.  As its name indicates, an opaque configuration does not have easy reflective capabilities."
 msgstr "Vielleicht haben Sie aber auch einfach schon eine @code{dovecot.conf}, die Sie mit Guix zum Laufen bringen möchten. In diesem Fall können Sie eine @code{opaque-dovecot-configuration} im @code{#:config}-Parameter an @code{dovecot-service} übergeben. Wie der Name schon sagt, bietet eine opake Konfiguration keinerlei Unterstützung für Reflexion."
 
 #. type: Plain text
-#: doc/guix.texi:17762
+#: doc/guix.texi:20451
 msgid "Available @code{opaque-dovecot-configuration} fields are:"
 msgstr "Verfügbare @code{opaque-dovecot-configuration}-Felder sind:"
 
 #. type: deftypevr
-#: doc/guix.texi:17763
+#: doc/guix.texi:20452
 #, no-wrap
 msgid "{@code{opaque-dovecot-configuration} parameter} package dovecot"
 msgstr "{@code{opaque-dovecot-configuration}-Parameter} „package“ dovecot"
 
 #. type: deftypevr
-#: doc/guix.texi:17767
+#: doc/guix.texi:20456
 #, no-wrap
 msgid "{@code{opaque-dovecot-configuration} parameter} string string"
 msgstr "{@code{opaque-dovecot-configuration}-Parameter} Zeichenkette string"
 
 #. type: deftypevr
-#: doc/guix.texi:17769
+#: doc/guix.texi:20458
 msgid "The contents of the @code{dovecot.conf}, as a string."
 msgstr "Der Inhalt der @code{dovecot.conf} als eine Zeichenkette."
 
 #. type: Plain text
-#: doc/guix.texi:17773
+#: doc/guix.texi:20462
 msgid "For example, if your @code{dovecot.conf} is just the empty string, you could instantiate a dovecot service like this:"
 msgstr "Wenn Ihre @code{dovecot.conf} zum Beispiel nur aus der leeren Zeichenkette bestünde, könnten Sie einen Dovecot-Dienst wie folgt instanziieren:"
 
 #. type: lisp
-#: doc/guix.texi:17778
+#: doc/guix.texi:20467
 #, no-wrap
 msgid ""
 "(dovecot-service #:config\n"
@@ -33365,24 +37953,24 @@ msgstr ""
 "                  (string \"\")))\n"
 
 #. type: subsubheading
-#: doc/guix.texi:17780
+#: doc/guix.texi:20469
 #, no-wrap
 msgid "OpenSMTPD Service"
 msgstr "OpenSMTPD-Dienst"
 
 #. type: deffn
-#: doc/guix.texi:17782
+#: doc/guix.texi:20471
 #, no-wrap
 msgid "{Scheme Variable} opensmtpd-service-type"
 msgstr "{Scheme-Variable} opensmtpd-service-type"
 
 #. type: deffn
-#: doc/guix.texi:17786
+#: doc/guix.texi:20475
 msgid "This is the type of the @uref{https://www.opensmtpd.org, OpenSMTPD} service, whose value should be an @code{opensmtpd-configuration} object as in this example:"
 msgstr "Dies ist der Diensttyp des @uref{https://www.opensmtpd.org, OpenSMTPD-Dienstes}, dessen Wert ein @code{opensmtpd-configuration}-Objekt sein sollte, wie in diesem Beispiel:"
 
 #. type: lisp
-#: doc/guix.texi:17791
+#: doc/guix.texi:20480
 #, no-wrap
 msgid ""
 "(service opensmtpd-service-type\n"
@@ -33394,75 +37982,75 @@ msgstr ""
 "           (config-file (local-file \"./my-smtpd.conf\"))))\n"
 
 #. type: deftp
-#: doc/guix.texi:17794
+#: doc/guix.texi:20483
 #, no-wrap
 msgid "{Data Type} opensmtpd-configuration"
 msgstr "{Datentyp} opensmtpd-configuration"
 
 #. type: deftp
-#: doc/guix.texi:17796
+#: doc/guix.texi:20485
 msgid "Data type representing the configuration of opensmtpd."
 msgstr "Datentyp, der die Konfiguration von opensmtpd repräsentiert."
 
 #. type: item
-#: doc/guix.texi:17798
+#: doc/guix.texi:20487
 #, no-wrap
 msgid "@code{package} (default: @var{opensmtpd})"
 msgstr "@code{package} (Vorgabe: @var{opensmtpd})"
 
 #. type: table
-#: doc/guix.texi:17800
+#: doc/guix.texi:20489
 msgid "Package object of the OpenSMTPD SMTP server."
 msgstr "Das Paketobjekt des SMTP-Servers OpenSMTPD."
 
 #. type: item
-#: doc/guix.texi:17801
+#: doc/guix.texi:20490
 #, no-wrap
 msgid "@code{config-file} (default: @code{%default-opensmtpd-file})"
 msgstr "@code{config-file} (Vorgabe: @code{%default-opensmtpd-file})"
 
 #. type: table
-#: doc/guix.texi:17806
+#: doc/guix.texi:20495
 msgid "File-like object of the OpenSMTPD configuration file to use.  By default it listens on the loopback network interface, and allows for mail from users and daemons on the local machine, as well as permitting email to remote servers.  Run @command{man smtpd.conf} for more information."
 msgstr "Ein dateiartiges Objekt der OpenSMTPD-Konfigurationsdatei, die benutzt werden soll. Nach Vorgabe lauscht OpenSMTPD auf der Loopback-Netzwerkschnittstelle und ist so eingerichtet, dass Mail von Nutzern und Daemons auf der lokalen Maschine sowie E-Mails an entfernte Server versandt werden können. Führen Sie @command{man smtpd.conf} aus, wenn Sie mehr erfahren möchten."
 
 #. type: subsubheading
-#: doc/guix.texi:17810
+#: doc/guix.texi:20499
 #, no-wrap
 msgid "Exim Service"
 msgstr "Exim-Dienst"
 
 #. type: cindex
-#: doc/guix.texi:17812
+#: doc/guix.texi:20501
 #, no-wrap
 msgid "mail transfer agent (MTA)"
 msgstr "Mail Transfer Agent (MTA)"
 
 #. type: cindex
-#: doc/guix.texi:17813
+#: doc/guix.texi:20502
 #, no-wrap
 msgid "MTA (mail transfer agent)"
 msgstr "MTA (Mail Transfer Agent)"
 
 #. type: cindex
-#: doc/guix.texi:17814
+#: doc/guix.texi:20503
 #, no-wrap
 msgid "SMTP"
 msgstr "SMTP"
 
 #. type: deffn
-#: doc/guix.texi:17816
+#: doc/guix.texi:20505
 #, no-wrap
 msgid "{Scheme Variable} exim-service-type"
 msgstr "{Scheme-Variable} exim-service-type"
 
 #. type: deffn
-#: doc/guix.texi:17820
+#: doc/guix.texi:20509
 msgid "This is the type of the @uref{https://exim.org, Exim} mail transfer agent (MTA), whose value should be an @code{exim-configuration} object as in this example:"
 msgstr "Dies ist der Diensttyp für den Mail Transfer Agent (MTA) namens @uref{https://exim.org, Exim}, dessen Wert ein @code{exim-configuration}-Objekt sein sollte, wie in diesem Beispiel:"
 
 #. type: lisp
-#: doc/guix.texi:17825
+#: doc/guix.texi:20514
 #, no-wrap
 msgid ""
 "(service exim-service-type\n"
@@ -33474,550 +38062,550 @@ msgstr ""
 "           (config-file (local-file \"./my-exim.conf\"))))\n"
 
 #. type: Plain text
-#: doc/guix.texi:17831
+#: doc/guix.texi:20520
 msgid "In order to use an @code{exim-service-type} service you must also have a @code{mail-aliases-service-type} service present in your @code{operating-system} (even if it has no aliases)."
 msgstr "Um einen Dienst vom Typ @code{exim-service-type} zu benutzen, müssen Sie auch einen Dienst @code{mail-aliases-service-type} in Ihrer @code{operating-system}-Deklaration stehen haben (selbst wenn darin keine Alias-Namen eingerichtet sind)."
 
 #. type: deftp
-#: doc/guix.texi:17832
+#: doc/guix.texi:20521
 #, no-wrap
 msgid "{Data Type} exim-configuration"
 msgstr "{Datentyp} exim-configuration"
 
 #. type: deftp
-#: doc/guix.texi:17834
+#: doc/guix.texi:20523
 msgid "Data type representing the configuration of exim."
 msgstr "Der Datentyp, der die Konfiguration von Exim repräsentiert."
 
 #. type: item
-#: doc/guix.texi:17836
+#: doc/guix.texi:20525
 #, no-wrap
 msgid "@code{package} (default: @var{exim})"
 msgstr "@code{package} (Vorgabe: @var{exim})"
 
 #. type: table
-#: doc/guix.texi:17838
+#: doc/guix.texi:20527
 msgid "Package object of the Exim server."
 msgstr "Das Paketobjekt des Exim-Servers."
 
 #. type: table
-#: doc/guix.texi:17845
+#: doc/guix.texi:20534
 msgid "File-like object of the Exim configuration file to use. If its value is @code{#f} then use the default configuration file from the package provided in @code{package}. The resulting configuration file is loaded after setting the @code{exim_user} and @code{exim_group} configuration variables."
 msgstr "Ein dateiartiges Objekt der Exim-Konfigurationsdatei. Wenn sein Wert @code{#f} ist, wird die vorgegebene Konfigurationsdatei aus dem als @code{package} angegebenen Paket benutzt. Die sich ergebende Konfigurationsdatei wird geladen, nachdem die Konfigurationsvariablen @code{exim_user} und @code{exim_group} gesetzt wurden."
 
 #. type: subsubheading
-#: doc/guix.texi:17849
+#: doc/guix.texi:20538
 #, no-wrap
 msgid "Getmail service"
 msgstr "Getmail-Dienst"
 
 #. type: cindex
-#: doc/guix.texi:17851
+#: doc/guix.texi:20540
 #, no-wrap
 msgid "IMAP"
 msgstr "IMAP"
 
 #. type: cindex
-#: doc/guix.texi:17852
+#: doc/guix.texi:20541
 #, no-wrap
 msgid "POP"
 msgstr "POP"
 
 #. type: deffn
-#: doc/guix.texi:17854
+#: doc/guix.texi:20543
 #, no-wrap
 msgid "{Scheme Variable} getmail-service-type"
 msgstr "{Scheme-Variable} getmail-service-type"
 
 #. type: deffn
-#: doc/guix.texi:17857
+#: doc/guix.texi:20546
 msgid "This is the type of the @uref{http://pyropus.ca/software/getmail/, Getmail} mail retriever, whose value should be an @code{getmail-configuration}."
 msgstr "Dies ist der Diensttyp des Mail-Retrievers @uref{http://pyropus.ca/software/getmail/, Getmail}, der als Wert ein @code{getmail-configuration}-Objekt hat."
 
 #. type: Plain text
-#: doc/guix.texi:17860
+#: doc/guix.texi:20549
 msgid "Available @code{getmail-configuration} fields are:"
 msgstr "Verfügbare @code{getmail-configuration}-Felder sind:"
 
 #. type: deftypevr
-#: doc/guix.texi:17861
+#: doc/guix.texi:20550
 #, no-wrap
 msgid "{@code{getmail-configuration} parameter} symbol name"
 msgstr "{@code{getmail-configuration}-Parameter} Zeichenkette name"
 
 #. type: deftypevr
-#: doc/guix.texi:17863
+#: doc/guix.texi:20552
 msgid "A symbol to identify the getmail service."
 msgstr "Ein Symbol, das den getmail-Dienst identifiziert."
 
 #. type: deftypevr
-#: doc/guix.texi:17865
+#: doc/guix.texi:20554
 msgid "Defaults to @samp{\"unset\"}."
 msgstr "Die Vorgabe ist @samp{\"unset\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17868
+#: doc/guix.texi:20557
 #, no-wrap
 msgid "{@code{getmail-configuration} parameter} package package"
 msgstr "{@code{getmail-configuration}-Parameter} „package“ package"
 
 #. type: deftypevr
-#: doc/guix.texi:17870
+#: doc/guix.texi:20559
 msgid "The getmail package to use."
 msgstr "Das getmail-Paket, das benutzt werden soll."
 
 #. type: deftypevr
-#: doc/guix.texi:17873
+#: doc/guix.texi:20562
 #, no-wrap
 msgid "{@code{getmail-configuration} parameter} string user"
 msgstr "{@code{getmail-configuration}-Parameter} Zeichenkette user"
 
 #. type: deftypevr
-#: doc/guix.texi:17875
+#: doc/guix.texi:20564
 msgid "The user to run getmail as."
 msgstr "Das Benutzerkonto, mit dem getmail ausgeführt wird."
 
 #. type: deftypevr
-#: doc/guix.texi:17877 doc/guix.texi:17884
+#: doc/guix.texi:20566 doc/guix.texi:20573
 msgid "Defaults to @samp{\"getmail\"}."
 msgstr "Die Vorgabe ist @samp{\"getmail\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17880
+#: doc/guix.texi:20569
 #, no-wrap
 msgid "{@code{getmail-configuration} parameter} string group"
 msgstr "{@code{getmail-configuration}-Parameter} Zeichenkette group"
 
 #. type: deftypevr
-#: doc/guix.texi:17882
+#: doc/guix.texi:20571
 msgid "The group to run getmail as."
 msgstr "Die Benutzergruppe, mit der getmail ausgeführt wird."
 
 #. type: deftypevr
-#: doc/guix.texi:17887
+#: doc/guix.texi:20576
 #, no-wrap
 msgid "{@code{getmail-configuration} parameter} string directory"
 msgstr "{@code{getmail-configuration}-Parameter} Zeichenkette directory"
 
 #. type: deftypevr
-#: doc/guix.texi:17889
+#: doc/guix.texi:20578
 msgid "The getmail directory to use."
 msgstr "Welches getmail-Verzeichnis benutzt werden soll."
 
 #. type: deftypevr
-#: doc/guix.texi:17891
+#: doc/guix.texi:20580
 msgid "Defaults to @samp{\"/var/lib/getmail/default\"}."
 msgstr "Die Vorgabe ist @samp{\"/var/lib/getmail/default\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17894
+#: doc/guix.texi:20583
 #, no-wrap
 msgid "{@code{getmail-configuration} parameter} getmail-configuration-file rcfile"
 msgstr "{@code{getmail-configuration}-Parameter} „getmail-configuration-file“ rcfile"
 
 #. type: deftypevr
-#: doc/guix.texi:17896
+#: doc/guix.texi:20585
 msgid "The getmail configuration file to use."
 msgstr "Die zu benutzende getmail-Konfigurationsdatei."
 
 #. type: deftypevr
-#: doc/guix.texi:17898
+#: doc/guix.texi:20587
 msgid "Available @code{getmail-configuration-file} fields are:"
 msgstr "Verfügbare @code{getmail-configuration-file}-Felder sind:"
 
 #. type: deftypevr
-#: doc/guix.texi:17899
+#: doc/guix.texi:20588
 #, no-wrap
 msgid "{@code{getmail-configuration-file} parameter} getmail-retriever-configuration retriever"
 msgstr "{@code{getmail-configuration-file}-Parameter} „getmail-retriever-configuration“ retriever"
 
 #. type: deftypevr
-#: doc/guix.texi:17901
+#: doc/guix.texi:20590
 msgid "What mail account to retrieve mail from, and how to access that account."
 msgstr "Von welchem E-Mail-Konto Mails bezogen werden sollen und wie auf dieses zugegriffen werden kann."
 
 #. type: deftypevr
-#: doc/guix.texi:17903
+#: doc/guix.texi:20592
 msgid "Available @code{getmail-retriever-configuration} fields are:"
 msgstr "Verfügbare @code{getmail-retriever-configuration}-Felder sind:"
 
 #. type: deftypevr
-#: doc/guix.texi:17904
+#: doc/guix.texi:20593
 #, no-wrap
 msgid "{@code{getmail-retriever-configuration} parameter} string type"
 msgstr "{@code{getmail-retriever-configuration}-Parameter} Zeichenkette type"
 
 #. type: deftypevr
-#: doc/guix.texi:17907
+#: doc/guix.texi:20596
 msgid "The type of mail retriever to use.  Valid values include @samp{passwd} and @samp{static}."
 msgstr "Welche Art von Mail-Retriever benutzt werden soll. Zu den gültigen Werten gehören @samp{passwd} und @samp{static}."
 
 #. type: deftypevr
-#: doc/guix.texi:17909
+#: doc/guix.texi:20598
 msgid "Defaults to @samp{\"SimpleIMAPSSLRetriever\"}."
 msgstr "Die Vorgabe ist @samp{\"SimpleIMAPSSLRetriever\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17912
+#: doc/guix.texi:20601
 #, no-wrap
 msgid "{@code{getmail-retriever-configuration} parameter} string server"
 msgstr "{@code{getmail-retriever-configuration}-Parameter} Zeichenkette server"
 
 #. type: deftypevr
-#: doc/guix.texi:17914 doc/guix.texi:17921
+#: doc/guix.texi:20603 doc/guix.texi:20610
 msgid "Username to login to the mail server with."
 msgstr "Der Benutzername, mit dem man sich beim Mailserver anmeldet."
 
 #. type: deftypevr
-#: doc/guix.texi:17916 doc/guix.texi:17923 doc/guix.texi:17987
+#: doc/guix.texi:20605 doc/guix.texi:20612 doc/guix.texi:20676
 msgid "Defaults to @samp{unset}."
 msgstr "Die Vorgabe ist @samp{unset}."
 
 #. type: deftypevr
-#: doc/guix.texi:17919
+#: doc/guix.texi:20608
 #, no-wrap
 msgid "{@code{getmail-retriever-configuration} parameter} string username"
 msgstr "{@code{getmail-retriever-configuration}-Parameter} Zeichenkette username"
 
 #. type: deftypevr
-#: doc/guix.texi:17926
+#: doc/guix.texi:20615
 #, no-wrap
 msgid "{@code{getmail-retriever-configuration} parameter} non-negative-integer port"
 msgstr "{@code{getmail-retriever-configuration}-Parameter} Nichtnegative-ganze-Zahl port"
 
 #. type: deftypevr
-#: doc/guix.texi:17928
+#: doc/guix.texi:20617
 msgid "Port number to connect to."
 msgstr "Die Portnummer, mit der eine Verbindung hergestellt wird."
 
 #. type: deftypevr
-#: doc/guix.texi:17933
+#: doc/guix.texi:20622
 #, no-wrap
 msgid "{@code{getmail-retriever-configuration} parameter} string password"
 msgstr "{@code{getmail-retriever-configuration}-Parameter} Zeichenkette password"
 
 #. type: deftypevr
-#: doc/guix.texi:17935 doc/guix.texi:17942
+#: doc/guix.texi:20624 doc/guix.texi:20631
 msgid "Override fields from passwd."
 msgstr "Einträge, die Vorrang vor den Feldern aus passwd haben."
 
 #. type: deftypevr
-#: doc/guix.texi:17940
+#: doc/guix.texi:20629
 #, no-wrap
 msgid "{@code{getmail-retriever-configuration} parameter} list password-command"
 msgstr "{@code{getmail-retriever-configuration}-Parameter} Liste password-command"
 
 #. type: deftypevr
-#: doc/guix.texi:17947
+#: doc/guix.texi:20636
 #, no-wrap
 msgid "{@code{getmail-retriever-configuration} parameter} string keyfile"
 msgstr "{@code{getmail-retriever-configuration}-Parameter} Zeichenkette keyfile"
 
 #. type: deftypevr
-#: doc/guix.texi:17949
+#: doc/guix.texi:20638
 msgid "PEM-formatted key file to use for the TLS negotiation."
 msgstr "Der Schlüssel im PEM-Format, der für das Aufbauen der TLS-Verbindung genutzt werden soll."
 
 #. type: deftypevr
-#: doc/guix.texi:17954
+#: doc/guix.texi:20643
 #, no-wrap
 msgid "{@code{getmail-retriever-configuration} parameter} string certfile"
 msgstr "{@code{getmail-retriever-configuration}-Parameter} Zeichenkette certfile"
 
 #. type: deftypevr
-#: doc/guix.texi:17956
+#: doc/guix.texi:20645
 msgid "PEM-formatted certificate file to use for the TLS negotiation."
 msgstr "Die Zertifikatsdatei im PEM-Format, die für das Aufbauen der TLS-Verbindung genutzt werden soll."
 
 #. type: deftypevr
-#: doc/guix.texi:17961
+#: doc/guix.texi:20650
 #, no-wrap
 msgid "{@code{getmail-retriever-configuration} parameter} string ca-certs"
 msgstr "{@code{getmail-retriever-configuration}-Parameter} Zeichenkette ca-certs"
 
 #. type: deftypevr
-#: doc/guix.texi:17963
+#: doc/guix.texi:20652
 msgid "CA certificates to use."
 msgstr "Welche Zertifikate von Zertifikatsautoritäten („CA Certificates“) benutzt werden sollen."
 
 #. type: deftypevr
-#: doc/guix.texi:17968
+#: doc/guix.texi:20657
 #, no-wrap
 msgid "{@code{getmail-retriever-configuration} parameter} parameter-alist extra-parameters"
 msgstr "{@code{getmail-retriever-configuration}-Parameter} Parameter-Assoziative-Liste extra-parameters"
 
 #. type: deftypevr
-#: doc/guix.texi:17970
+#: doc/guix.texi:20659
 msgid "Extra retriever parameters."
 msgstr "Weitere Parameter für den Retriever."
 
 #. type: deftypevr
-#: doc/guix.texi:17977
+#: doc/guix.texi:20666
 #, no-wrap
 msgid "{@code{getmail-configuration-file} parameter} getmail-destination-configuration destination"
 msgstr "{@code{getmail-configuration-file}-Parameter} „getmail-destination-configuration“ destination"
 
 #. type: deftypevr
-#: doc/guix.texi:17979
+#: doc/guix.texi:20668
 msgid "What to do with retrieved messages."
 msgstr "Was mit geholten Nachrichten geschehen soll."
 
 #. type: deftypevr
-#: doc/guix.texi:17981
+#: doc/guix.texi:20670
 msgid "Available @code{getmail-destination-configuration} fields are:"
 msgstr "Verfügbare @code{getmail-destination-configuration}-Felder sind:"
 
 #. type: deftypevr
-#: doc/guix.texi:17982
+#: doc/guix.texi:20671
 #, no-wrap
 msgid "{@code{getmail-destination-configuration} parameter} string type"
 msgstr "{@code{getmail-destination-configuration}-Parameter} Zeichenkette type"
 
 #. type: deftypevr
-#: doc/guix.texi:17985
+#: doc/guix.texi:20674
 msgid "The type of mail destination.  Valid values include @samp{Maildir}, @samp{Mboxrd} and @samp{MDA_external}."
 msgstr "Die Art des Empfängers der Mail. Zu den gültigen Werten gehören @samp{Maildir}, @samp{Mboxrd} und @samp{MDA_external}."
 
 #. type: deftypevr
-#: doc/guix.texi:17990
+#: doc/guix.texi:20679
 #, no-wrap
 msgid "{@code{getmail-destination-configuration} parameter} string-or-filelike path"
 msgstr "{@code{getmail-destination-configuration}-Parameter} Zeichenkette-oder-Dateiartiges-Objekt path"
 
 #. type: deftypevr
-#: doc/guix.texi:17993
+#: doc/guix.texi:20682
 msgid "The path option for the mail destination.  The behaviour depends on the chosen type."
 msgstr "Entspricht der path-Option für den Mailempfänger („Destination“). Was hiermit bewirkt wird, hängt von der gewählten Empfängerart ab."
 
 #. type: deftypevr
-#: doc/guix.texi:17998
+#: doc/guix.texi:20687
 #, no-wrap
 msgid "{@code{getmail-destination-configuration} parameter} parameter-alist extra-parameters"
 msgstr "{@code{getmail-destination-configuration}-Parameter} Parameter-Assoziative-Liste extra-parameters"
 
 #. type: deftypevr
-#: doc/guix.texi:18000
+#: doc/guix.texi:20689
 msgid "Extra destination parameters"
 msgstr "Weitere Empfängerparameter."
 
 #. type: deftypevr
-#: doc/guix.texi:18007
+#: doc/guix.texi:20696
 #, no-wrap
 msgid "{@code{getmail-configuration-file} parameter} getmail-options-configuration options"
 msgstr "{@code{getmail-configuration-file}-Parameter} „getmail-options-configuration“ options"
 
 #. type: deftypevr
-#: doc/guix.texi:18009
+#: doc/guix.texi:20698
 msgid "Configure getmail."
 msgstr "getmail konfigurieren."
 
 #. type: deftypevr
-#: doc/guix.texi:18011
+#: doc/guix.texi:20700
 msgid "Available @code{getmail-options-configuration} fields are:"
 msgstr "Verfügbare @code{getmail-options-configuration}-Felder sind:"
 
 #. type: deftypevr
-#: doc/guix.texi:18012
+#: doc/guix.texi:20701
 #, no-wrap
 msgid "{@code{getmail-options-configuration} parameter} non-negative-integer verbose"
 msgstr "{@code{getmail-options-configuration}-Parameter} Nichtnegative-ganze-Zahl verbose"
 
 #. type: deftypevr
-#: doc/guix.texi:18017
+#: doc/guix.texi:20706
 msgid "If set to @samp{0}, getmail will only print warnings and errors.  A value of @samp{1} means that messages will be printed about retrieving and deleting messages.  If set to @samp{2}, getmail will print messages about each of it's actions."
 msgstr "Wenn es auf @samp{0} gesetzt ist, wird getmail nur Warnungen und Fehler ausgeben. Ein Wert von @samp{1} bedeutet, dass Meldungen über das Holen und Löschen von Nachrichten ausgegeben werden. Wenn es auf @samp{2} gesetzt ist, wird getmail Meldungen über jede durchgeführte Aktion ausgeben."
 
 #. type: deftypevr
-#: doc/guix.texi:18019 doc/guix.texi:22987 doc/guix.texi:23574
-#: doc/guix.texi:23718
+#: doc/guix.texi:20708 doc/guix.texi:25847 doc/guix.texi:26435
+#: doc/guix.texi:26580
 msgid "Defaults to @samp{1}."
 msgstr "Die Vorgabe ist @samp{1}."
 
 #. type: deftypevr
-#: doc/guix.texi:18022
+#: doc/guix.texi:20711
 #, no-wrap
 msgid "{@code{getmail-options-configuration} parameter} boolean read-all"
 msgstr "{@code{getmail-options-configuration}-Parameter} Boolescher-Ausdruck read-all"
 
 #. type: deftypevr
-#: doc/guix.texi:18025
+#: doc/guix.texi:20714
 msgid "If true, getmail will retrieve all available messages.  Otherwise it will only retrieve messages it hasn't seen previously."
 msgstr "Wenn es auf wahr gesetzt ist, wird getmail alle verfügbaren Nachrichten holen. Andernfalls wird es nur solche Nachrichten holen, die es nicht bereits gesehen hat."
 
 #. type: deftypevr
-#: doc/guix.texi:18030
+#: doc/guix.texi:20719
 #, no-wrap
 msgid "{@code{getmail-options-configuration} parameter} boolean delete"
 msgstr "{@code{getmail-options-configuration}-Parameter} Boolescher-Ausdruck delete"
 
 #. type: deftypevr
-#: doc/guix.texi:18034
+#: doc/guix.texi:20723
 msgid "If set to true, messages will be deleted from the server after retrieving and successfully delivering them.  Otherwise, messages will be left on the server."
 msgstr "Wenn es auf wahr gesetzt ist, werden Mitteilungen vom Server gelöscht, nachdem sie erfolgreich geholt und zugestellt wurden. Andernfalls werden Nachrichten auf dem Server gelassen."
 
 #. type: deftypevr
-#: doc/guix.texi:18039
+#: doc/guix.texi:20728
 #, no-wrap
 msgid "{@code{getmail-options-configuration} parameter} non-negative-integer delete-after"
 msgstr "{@code{getmail-options-configuration}-Parameter} Nichtnegative-ganze-Zahl delete-after"
 
 #. type: deftypevr
-#: doc/guix.texi:18044
+#: doc/guix.texi:20733
 msgid "Getmail will delete messages this number of days after seeing them, if they have been delivered.  This means messages will be left on the server this number of days after delivering them.  A value of @samp{0} disabled this feature."
 msgstr "Getmail wird nach der hier angegebenen Anzahl von Tagen Nachrichten löschen, die es gesehen hat, wenn sie zugestellt wurden. Dadurch werden Nachrichten diese Anzahl von Tagen lang auf dem Server gelassen, nachdem sie zugestellt wurden. Ein Wert von @samp{0} deaktiviert diese Funktionalität."
 
 #. type: deftypevr
-#: doc/guix.texi:18049
+#: doc/guix.texi:20738
 #, no-wrap
 msgid "{@code{getmail-options-configuration} parameter} non-negative-integer delete-bigger-than"
 msgstr "{@code{getmail-options-configuration}-Parameter} Nichtnegative-ganze-Zahl delete-bigger-than"
 
 #. type: deftypevr
-#: doc/guix.texi:18053
+#: doc/guix.texi:20742
 msgid "Delete messages larger than this of bytes after retrieving them, even if the delete and delete-after options are disabled.  A value of @samp{0} disables this feature."
 msgstr "Nachrichten, die größer als die angegebene Anzahl von Bytes sind, nach dem Holen löschen, selbst wenn die Optionen delete und delete-after abgeschaltet sind. Ein Wert von @samp{0} deaktiviert diese Funktionalität."
 
 #. type: deftypevr
-#: doc/guix.texi:18058
+#: doc/guix.texi:20747
 #, no-wrap
 msgid "{@code{getmail-options-configuration} parameter} non-negative-integer max-bytes-per-session"
 msgstr "{@code{getmail-options-configuration}-Parameter} Nichtnegative-ganze-Zahl max-bytes-per-session"
 
 #. type: deftypevr
-#: doc/guix.texi:18061
+#: doc/guix.texi:20750
 msgid "Retrieve messages totalling up to this number of bytes before closing the session with the server.  A value of @samp{0} disables this feature."
 msgstr "Nachrichten, die höchstens die angegebene Anzahl von Bytes groß sind, vor dem Beenden der Serversitzung von dort holen. Ein Wert von @samp{0} deaktiviert diese Funktionalität."
 
 #. type: deftypevr
-#: doc/guix.texi:18066
+#: doc/guix.texi:20755
 #, no-wrap
 msgid "{@code{getmail-options-configuration} parameter} non-negative-integer max-message-size"
 msgstr "{@code{getmail-options-configuration}-Parameter} Nichtnegative-ganze-Zahl max-message-size"
 
 #. type: deftypevr
-#: doc/guix.texi:18069
+#: doc/guix.texi:20758
 msgid "Don't retrieve messages larger than this number of bytes.  A value of @samp{0} disables this feature."
 msgstr "@emph{Keine} Nachrichten holen, deren Größe die angegebene Anzahl von Bytes überschreitet. Ein Wert von @samp{0} deaktiviert diese Funktionalität."
 
 #. type: deftypevr
-#: doc/guix.texi:18074
+#: doc/guix.texi:20763
 #, no-wrap
 msgid "{@code{getmail-options-configuration} parameter} boolean delivered-to"
 msgstr "{@code{getmail-options-configuration}-Parameter} Boolescher-Ausdruck delivered-to"
 
 #. type: deftypevr
-#: doc/guix.texi:18076
+#: doc/guix.texi:20765
 msgid "If true, getmail will add a Delivered-To header to messages."
 msgstr "Wenn dies auf wahr gesetzt ist, fügt getmail eine Delivered-To-Kopfzeile an die Nachrichten an."
 
 #. type: deftypevr
-#: doc/guix.texi:18081
+#: doc/guix.texi:20770
 #, no-wrap
 msgid "{@code{getmail-options-configuration} parameter} boolean received"
 msgstr "{@code{getmail-options-configuration}-Parameter} Boolescher-Ausdruck received"
 
 #. type: deftypevr
-#: doc/guix.texi:18083
+#: doc/guix.texi:20772
 msgid "If set, getmail adds a Received header to the messages."
 msgstr "Wenn dies gesetzt ist, fügt getmail eine Received-Kopfzeile an die Nachrichten an."
 
 #. type: deftypevr
-#: doc/guix.texi:18088
+#: doc/guix.texi:20777
 #, no-wrap
 msgid "{@code{getmail-options-configuration} parameter} string message-log"
 msgstr "{@code{getmail-options-configuration}-Parameter} Zeichenkette message-log"
 
 #. type: deftypevr
-#: doc/guix.texi:18091
+#: doc/guix.texi:20780
 msgid "Getmail will record a log of its actions to the named file.  A value of @samp{\"\"} disables this feature."
 msgstr "Getmail wird seine Aktionen in die genannte Datei protokollieren. Wenn als Wert @samp{\"\"} angegeben wird, wird diese Funktionalität deaktiviert."
 
 #. type: deftypevr
-#: doc/guix.texi:18096
+#: doc/guix.texi:20785
 #, no-wrap
 msgid "{@code{getmail-options-configuration} parameter} boolean message-log-syslog"
 msgstr "{@code{getmail-options-configuration}-Parameter} Boolescher-Ausdruck message-log-syslog"
 
 #. type: deftypevr
-#: doc/guix.texi:18099
+#: doc/guix.texi:20788
 msgid "If true, getmail will record a log of its actions using the system logger."
 msgstr "Wenn es auf wahr gesetzt ist, wird getmail ein Protokoll seiner Aktionen an den Systemprotokolldienst übergeben."
 
 #. type: deftypevr
-#: doc/guix.texi:18104
+#: doc/guix.texi:20793
 #, no-wrap
 msgid "{@code{getmail-options-configuration} parameter} boolean message-log-verbose"
 msgstr "{@code{getmail-options-configuration}-Parameter} Boolescher-Ausdruck message-log-verbose"
 
 #. type: deftypevr
-#: doc/guix.texi:18108
+#: doc/guix.texi:20797
 msgid "If true, getmail will log information about messages not retrieved and the reason for not retrieving them, as well as starting and ending information lines."
 msgstr "Wenn dies auf wahr gesetzt ist, wird getmail Informationen über @emph{nicht} geholte Nachrichten und den jeweiligen Grund dafür sowie Anfang und Ende des Holvorgangs in Informationszeilen protokollieren."
 
 #. type: deftypevr
-#: doc/guix.texi:18113
+#: doc/guix.texi:20802
 #, no-wrap
 msgid "{@code{getmail-options-configuration} parameter} parameter-alist extra-parameters"
 msgstr "{@code{getmail-options-configuration}-Parameter} Parameter-Assoziative-Liste extra-parameters"
 
 #. type: deftypevr
-#: doc/guix.texi:18115
+#: doc/guix.texi:20804
 msgid "Extra options to include."
 msgstr "Weitere geltende Optionen."
 
 #. type: deftypevr
-#: doc/guix.texi:18124
+#: doc/guix.texi:20813
 #, no-wrap
 msgid "{@code{getmail-configuration} parameter} list idle"
 msgstr "{@code{getmail-configuration}-Parameter} Liste idle"
 
 #. type: deftypevr
-#: doc/guix.texi:18128
+#: doc/guix.texi:20817
 msgid "A list of mailboxes that getmail should wait on the server for new mail notifications.  This depends on the server supporting the IDLE extension."
 msgstr "Eine Liste der Postfächer, für die getmail beim Server auf Benachrichtigungen wegen neuer Mails warten soll. Diese Funktionalität setzt voraus, dass der Server die IDLE-Erweiterung unterstützt."
 
 #. type: deftypevr
-#: doc/guix.texi:18133
+#: doc/guix.texi:20822
 #, no-wrap
 msgid "{@code{getmail-configuration} parameter} list environment-variables"
 msgstr "{@code{getmail-configuration}-Parameter} Liste environment-variables"
 
 #. type: deftypevr
-#: doc/guix.texi:18135
+#: doc/guix.texi:20824
 msgid "Environment variables to set for getmail."
 msgstr "Umgebungsvariable, die für getmail gelten sollen."
 
 #. type: subsubheading
-#: doc/guix.texi:18140
+#: doc/guix.texi:20829
 #, no-wrap
 msgid "Mail Aliases Service"
 msgstr "Dienst für Mail-Alias-Namen"
 
 #. type: cindex
-#: doc/guix.texi:18142
+#: doc/guix.texi:20831
 #, no-wrap
 msgid "email aliases"
 msgstr "E-Mail-Alias-Namen"
 
 #. type: cindex
-#: doc/guix.texi:18143
+#: doc/guix.texi:20832
 #, no-wrap
 msgid "aliases, for email addresses"
 msgstr "Alias-Namen, für E-Mail-Adressen"
 
 #. type: deffn
-#: doc/guix.texi:18145
+#: doc/guix.texi:20834
 #, no-wrap
 msgid "{Scheme Variable} mail-aliases-service-type"
 msgstr "{Scheme-Variable} mail-aliases-service-type"
 
 #. type: deffn
-#: doc/guix.texi:18148
+#: doc/guix.texi:20837
 msgid "This is the type of the service which provides @code{/etc/aliases}, specifying how to deliver mail to users on this system."
 msgstr "Das ist der Typ des Dienstes, der @code{/etc/aliases} zur Verfügung stellt, wo festgelegt wird, wie Mail-Nachrichten an Benutzer des Systems geliefert werden."
 
 #. type: lisp
-#: doc/guix.texi:18153
+#: doc/guix.texi:20842
 #, no-wrap
 msgid ""
 "(service mail-aliases-service-type\n"
@@ -34029,34 +38617,34 @@ msgstr ""
 "           (\"bob\" \"bob@@example.com\" \"bob@@example2.com\")))\n"
 
 #. type: Plain text
-#: doc/guix.texi:18161
+#: doc/guix.texi:20850
 msgid "The configuration for a @code{mail-aliases-service-type} service is an association list denoting how to deliver mail that comes to this system. Each entry is of the form @code{(alias addresses ...)}, with @code{alias} specifying the local alias and @code{addresses} specifying where to deliver this user's mail."
 msgstr "Die Konfiguration für einen Dienst vom Typ @code{mail-aliases-service-type} ist eine assoziative Liste, die angibt, wie beim System ankommende Mail-Nachrichten zuzustellen sind. Jeder Eintrag hat die Form @code{(Alias Adressen ...)}, wobei das @code{Alias} den lokalen Alias-Namen angibt und @code{Adressen} angibt, wo die Mail-Nachrichten für diesen Benutzer ankommen sollen."
 
 #. type: Plain text
-#: doc/guix.texi:18167
+#: doc/guix.texi:20856
 msgid "The aliases aren't required to exist as users on the local system. In the above example, there doesn't need to be a @code{postmaster} entry in the @code{operating-system}'s @code{user-accounts} in order to deliver the @code{postmaster} mail to @code{bob} (which subsequently would deliver mail to @code{bob@@example.com} and @code{bob@@example2.com})."
 msgstr "Die Alias-Namen müssen nicht als Benutzerkonten auf dem lokalen System existieren. Im Beispiel oben muss es also keinen Eintrag für @code{postmaster} unter den @code{user-accounts} in der @code{operating-system}-Deklaration geben, um die @code{postmaster}-Mails an @code{bob} weiterzuleiten (von wo diese dann an @code{bob@@example.com} und @code{bob@@example2.com} weitergeschickt würden)."
 
 #. type: cindex
-#: doc/guix.texi:18168 doc/guix.texi:18169
+#: doc/guix.texi:20857 doc/guix.texi:20858
 #, no-wrap
 msgid "GNU Mailutils IMAP4 Daemon"
 msgstr "GNU-Mailutils-IMAP4-Daemon"
 
 #. type: deffn
-#: doc/guix.texi:18171
+#: doc/guix.texi:20860
 #, no-wrap
 msgid "{Scheme Variable} imap4d-service-type"
 msgstr "{Scheme-Variable} imap4d-service-type"
 
 #. type: deffn
-#: doc/guix.texi:18175
+#: doc/guix.texi:20864
 msgid "This is the type of the GNU Mailutils IMAP4 Daemon (@pxref{imap4d,,, mailutils, GNU Mailutils Manual}), whose value should be an @code{imap4d-configuration} object as in this example:"
 msgstr "Dies ist der Diensttyp für den IMAP4-Daemon aus den GNU Mailutils (siehe @ref{imap4d,,, mailutils, GNU Mailutils Manual}), dessen Wert ein @code{imap4d-configuration}-Objekt sein sollte, wie in diesem Beispiel:"
 
 #. type: lisp
-#: doc/guix.texi:18180
+#: doc/guix.texi:20869
 #, no-wrap
 msgid ""
 "(service imap4d-service-type\n"
@@ -34068,80 +38656,80 @@ msgstr ""
 "           (config-file (local-file \"imap4d.conf\"))))\n"
 
 #. type: deftp
-#: doc/guix.texi:18183
+#: doc/guix.texi:20872
 #, no-wrap
 msgid "{Data Type} imap4d-configuration"
 msgstr "{Datentyp} imap4d-configuration"
 
 #. type: deftp
-#: doc/guix.texi:18185
+#: doc/guix.texi:20874
 msgid "Data type representing the configuration of @command{imap4d}."
 msgstr "Datentyp, der die Konfiguration von @command{imap4d} repräsentiert."
 
 #. type: item
-#: doc/guix.texi:18187
+#: doc/guix.texi:20876
 #, no-wrap
 msgid "@code{package} (default: @code{mailutils})"
 msgstr "@code{package} (Vorgabe: @code{mailutils})"
 
 #. type: table
-#: doc/guix.texi:18189
+#: doc/guix.texi:20878
 msgid "The package that provides @command{imap4d}."
 msgstr "Das Paket, das @command{imap4d} zur Verfügung stellt."
 
 #. type: item
-#: doc/guix.texi:18190
+#: doc/guix.texi:20879
 #, no-wrap
 msgid "@code{config-file} (default: @code{%default-imap4d-config-file})"
 msgstr "@code{config-file} (Vorgabe: @code{%default-imap4d-config-file})"
 
 #. type: table
-#: doc/guix.texi:18194
+#: doc/guix.texi:20883
 msgid "File-like object of the configuration file to use, by default it will listen on TCP port 143 of @code{localhost}.  @xref{Conf-imap4d,,, mailutils, GNU Mailutils Manual}, for details."
 msgstr "Datei-artiges Objekt der zu nutzenden Konfigurationsdatei. Nach Vorgabe lauscht IMAP4D auf TCP-Port 143 vom lokalen Rechner @code{localhost}. Siehe @ref{Conf-imap4d,,, mailutils, GNU Mailutils Manual} für Details."
 
 #. type: cindex
-#: doc/guix.texi:18201
+#: doc/guix.texi:20890
 #, no-wrap
 msgid "messaging"
 msgstr "Messaging"
 
 #. type: cindex
-#: doc/guix.texi:18202
+#: doc/guix.texi:20891
 #, no-wrap
 msgid "jabber"
 msgstr "Jabber"
 
 #. type: cindex
-#: doc/guix.texi:18203
+#: doc/guix.texi:20892
 #, no-wrap
 msgid "XMPP"
 msgstr "XMPP"
 
 #. type: Plain text
-#: doc/guix.texi:18206
-msgid "The @code{(gnu services messaging)} module provides Guix service definitions for messaging services: currently only Prosody is supported."
-msgstr "Das Modul @code{(gnu services messaging)} stellt Guix-Dienstdefinitionen für Kurznachrichtendienste, d.h.@: „Instant Messaging“, zur Verfügung. Zur Zeit wird hier nur Prosody unterstützt."
+#: doc/guix.texi:20896
+msgid "The @code{(gnu services messaging)} module provides Guix service definitions for messaging services.  Currently it provides the following services:"
+msgstr "Das Modul @code{(gnu services messaging)} stellt Guix-Dienstdefinitionen für Kurznachrichtendienste, d.h.@: „Instant Messaging“, zur Verfügung. Zurzeit werden folgende Dienste unterstützt:"
 
 #. type: subsubheading
-#: doc/guix.texi:18207
+#: doc/guix.texi:20897
 #, no-wrap
 msgid "Prosody Service"
 msgstr "Prosody-Dienst"
 
 #. type: deffn
-#: doc/guix.texi:18209
+#: doc/guix.texi:20899
 #, no-wrap
 msgid "{Scheme Variable} prosody-service-type"
 msgstr "{Scheme-Variable} prosody-service-type"
 
 #. type: deffn
-#: doc/guix.texi:18213
+#: doc/guix.texi:20903
 msgid "This is the type for the @uref{https://prosody.im, Prosody XMPP communication server}.  Its value must be a @code{prosody-configuration} record as in this example:"
 msgstr "Dies ist der Diensttyp für den @uref{https://prosody.im, XMPP-Kommunikationsserver Prosody}. Sein Wert muss ein @code{prosody-configuration}-Verbundsobjekt wie in diesem Beispiel sein:"
 
 #. type: lisp
-#: doc/guix.texi:18228
+#: doc/guix.texi:20918
 #, no-wrap
 msgid ""
 "(service prosody-service-type\n"
@@ -34173,690 +38761,690 @@ msgstr ""
 "             (domain \"example.net\"))))))\n"
 
 #. type: deffn
-#: doc/guix.texi:18231
+#: doc/guix.texi:20921
 msgid "See below for details about @code{prosody-configuration}."
 msgstr "Siehe im Folgenden Details über die @code{prosody-configuration}."
 
 #. type: Plain text
-#: doc/guix.texi:18237
+#: doc/guix.texi:20927
 msgid "By default, Prosody does not need much configuration.  Only one @code{virtualhosts} field is needed: it specifies the domain you wish Prosody to serve."
 msgstr "Prosody kann mit den Vorgabeeinstellungen ohne viel weitere Konfiguration benutzt werden. Nur ein @code{virtualhosts}-Feld wird gebraucht: Es legt die Domain fest, um die sich Prosody kümmert."
 
 #. type: Plain text
-#: doc/guix.texi:18240
+#: doc/guix.texi:20930
 msgid "You can perform various sanity checks on the generated configuration with the @code{prosodyctl check} command."
 msgstr "Sie können die Korrektheit der generierten Konfigurationsdatei überprüfen, indem Sie den Befehl @code{prosodyctl check} ausführen."
 
 #. type: Plain text
-#: doc/guix.texi:18244
+#: doc/guix.texi:20934
 msgid "Prosodyctl will also help you to import certificates from the @code{letsencrypt} directory so that the @code{prosody} user can access them.  See @url{https://prosody.im/doc/letsencrypt}."
 msgstr "Prosodyctl hilft auch dabei, Zertifikate aus dem @code{letsencrypt}-Verzeichnis zu importieren, so dass das @code{prosody}-Benutzerkonto auf sie Zugriff hat. Siehe @url{https://prosody.im/doc/letsencrypt}."
 
 #. type: example
-#: doc/guix.texi:18247
+#: doc/guix.texi:20937
 #, no-wrap
 msgid "prosodyctl --root cert import /etc/letsencrypt/live\n"
 msgstr "prosodyctl --root cert import /etc/letsencrypt/live\n"
 
 #. type: Plain text
-#: doc/guix.texi:18254
+#: doc/guix.texi:20944
 msgid "The available configuration parameters follow.  Each parameter definition is preceded by its type; for example, @samp{string-list foo} indicates that the @code{foo} parameter should be specified as a list of strings.  Types starting with @code{maybe-} denote parameters that won't show up in @code{prosody.cfg.lua} when their value is @code{'disabled}."
 msgstr "Im Folgenden finden Sie die verfügbaren Konfigurationsparameter. Jeder Parameterdefinition ist ihr Typ vorangestellt; zum Beispiel bedeutet @samp{Zeichenketten-Liste foo}, dass der Parameter @code{foo} als Liste von Zeichenketten angegeben werden sollte. Typangaben, die mit @code{Vielleicht-} beginnen, stehen für Parameter, die in @code{prosody.cfg.lua} nicht vorkommen, falls deren Wert als @code{'disabled} („deaktiviert“) angegeben wurde."
 
 #. type: Plain text
-#: doc/guix.texi:18258
+#: doc/guix.texi:20948
 msgid "There is also a way to specify the configuration as a string, if you have an old @code{prosody.cfg.lua} file that you want to port over from some other system; see the end for more details."
 msgstr "Sie können die Konfiguration auch als eine Zeichenkette festlegen, wenn Sie über eine alte @code{prosody.cfg.lua}-Datei verfügen, die Sie von einem anderen System übernehmen möchten; siehe das Ende dieses Abschnitts für Details."
 
 #. type: Plain text
-#: doc/guix.texi:18261
+#: doc/guix.texi:20951
 msgid "The @code{file-object} type designates either a file-like object (@pxref{G-Expressions, file-like objects}) or a file name."
 msgstr "Der Typ @code{Dateiobjekt} bezeichnet hierbei entweder ein dateiartiges Objekt (siehe @ref{G-Expressions, dateiartige Objekte}) oder einen Dateinamen."
 
 #. type: Plain text
-#: doc/guix.texi:18271
+#: doc/guix.texi:20961
 msgid "Available @code{prosody-configuration} fields are:"
 msgstr "Verfügbare @code{prosody-configuration}-Felder sind:"
 
 #. type: deftypevr
-#: doc/guix.texi:18272
+#: doc/guix.texi:20962
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} package prosody"
 msgstr "{@code{prosody-configuration}-Parameter} „package“ prosody"
 
 #. type: deftypevr
-#: doc/guix.texi:18274
+#: doc/guix.texi:20964
 msgid "The Prosody package."
 msgstr "Das Prosody-Paket."
 
 #. type: deftypevr
-#: doc/guix.texi:18276
+#: doc/guix.texi:20966
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} file-name data-path"
 msgstr "{@code{prosody-configuration}-Parameter} Dateiname data-path"
 
 #. type: deftypevr
-#: doc/guix.texi:18280
+#: doc/guix.texi:20970
 msgid "Location of the Prosody data storage directory.  See @url{https://prosody.im/doc/configure}.  Defaults to @samp{\"/var/lib/prosody\"}."
 msgstr "Der Ort, wo sich Prosodys Verzeichnis zum Speichern von Daten befinden soll. Siehe @url{https://prosody.im/doc/configure}. Die Vorgabe ist @samp{\"/var/lib/prosody\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:18282
+#: doc/guix.texi:20972
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} file-object-list plugin-paths"
 msgstr "{@code{prosody-configuration}-Parameter} Dateiobjekt-Liste plugin-paths"
 
 #. type: deftypevr
-#: doc/guix.texi:18286
+#: doc/guix.texi:20976
 msgid "Additional plugin directories.  They are searched in all the specified paths in order.  See @url{https://prosody.im/doc/plugins_directory}.  Defaults to @samp{()}."
 msgstr "Zusätzliche Plugin-Verzeichnisse. Plugins werden der Reihe nach in allen festgelegten Pfaden gesucht. Siehe @url{https://prosody.im/doc/plugins_directory}. Die Vorgabe ist @samp{()}."
 
 #. type: deftypevr
-#: doc/guix.texi:18288
+#: doc/guix.texi:20978
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} file-name certificates"
 msgstr "{@code{prosody-configuration}-Parameter} Dateiname certificates"
 
 #. type: deftypevr
-#: doc/guix.texi:18293
+#: doc/guix.texi:20983
 msgid "Every virtual host and component needs a certificate so that clients and servers can securely verify its identity.  Prosody will automatically load certificates/keys from the directory specified here.  Defaults to @samp{\"/etc/prosody/certs\"}."
 msgstr "Jeder virtuellte Rechner und jede Komponente braucht ein Zertifikat, mit dem Clients und Server ihre Identität sicher verifizieren können. Prosody lädt automatisch Zertifikate bzw.@: Schlüssel aus dem hier angegebenen Verzeichnis. Die Vorgabe ist @samp{\"/etc/prosody/certs\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:18295
+#: doc/guix.texi:20985
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} string-list admins"
 msgstr "{@code{prosody-configuration}-Parameter} Zeichenketten-Liste admins"
 
 #. type: deftypevr
-#: doc/guix.texi:18301
+#: doc/guix.texi:20991
 msgid "This is a list of accounts that are admins for the server.  Note that you must create the accounts separately.  See @url{https://prosody.im/doc/admins} and @url{https://prosody.im/doc/creating_accounts}.  Example: @code{(admins '(\"user1@@example.com\" \"user2@@example.net\"))} Defaults to @samp{()}."
 msgstr "Dies ist eine Liste der Benutzerkonten, die auf diesem Server Administratoren sind. Beachten Sie, dass Sie die Benutzerkonten noch separat als Nutzer erzeugen lassen müssen. Siehe @url{https://prosody.im/doc/admins} and @url{https://prosody.im/doc/creating_accounts}. Ein Beispiel: @code{(admins '(\"user1@@example.com\" \"user2@@example.net\"))} Die Vorgabe ist @samp{()}."
 
 #. type: deftypevr
-#: doc/guix.texi:18303
+#: doc/guix.texi:20993
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} boolean use-libevent?"
 msgstr "{@code{prosody-configuration}-Parameter} Boolescher-Ausdruck use-libevent?"
 
 #. type: deftypevr
-#: doc/guix.texi:18307
+#: doc/guix.texi:20997
 msgid "Enable use of libevent for better performance under high load.  See @url{https://prosody.im/doc/libevent}.  Defaults to @samp{#f}."
 msgstr "Die Nutzung von libevent aktivieren, damit bessere Leistungsfähigkeit auch unter hoher Last gewährleistet wird. Siehe @url{https://prosody.im/doc/libevent}. Die Vorgabe ist @samp{#f}."
 
 #. type: deftypevr
-#: doc/guix.texi:18309
+#: doc/guix.texi:20999
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} module-list modules-enabled"
 msgstr "{@code{prosody-configuration}-Parameter} Modul-Liste modules-enabled"
 
 #. type: deftypevr
-#: doc/guix.texi:18315
+#: doc/guix.texi:21005
 msgid "This is the list of modules Prosody will load on startup.  It looks for @code{mod_modulename.lua} in the plugins folder, so make sure that exists too.  Documentation on modules can be found at: @url{https://prosody.im/doc/modules}.  Defaults to @samp{(\"roster\" \"saslauth\" \"tls\" \"dialback\" \"disco\" \"carbons\" \"private\" \"blocklist\" \"vcard\" \"version\" \"uptime\" \"time\" \"ping\" \"pep\" \"register\" \"admin_adhoc\")}."
 msgstr "Die Liste der Module, die Prosody beim Starten lädt. Es sucht nach @code{mod_modulename.lua} im Plugin-Verzeichnis, also sollten Sie sicherstellen, dass es dort auch existiert. Dokumentation über Module können Sie hier finden: @url{https://prosody.im/doc/modules}. Die Vorgabe ist @samp{(\"roster\" \"saslauth\" \"tls\" \"dialback\" \"disco\" \"carbons\" \"private\" \"blocklist\" \"vcard\" \"version\" \"uptime\" \"time\" \"ping\" \"pep\" \"register\" \"admin_adhoc\")}."
 
 #. type: deftypevr
-#: doc/guix.texi:18317
+#: doc/guix.texi:21007
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} string-list modules-disabled"
 msgstr "{@code{prosody-configuration}-Parameter} Zeichenketten-Liste modules-disabled"
 
 #. type: deftypevr
-#: doc/guix.texi:18321
+#: doc/guix.texi:21011
 msgid "@samp{\"offline\"}, @samp{\"c2s\"} and @samp{\"s2s\"} are auto-loaded, but should you want to disable them then add them to this list.  Defaults to @samp{()}."
 msgstr "@samp{\"offline\"}, @samp{\"c2s\"} und @samp{\"s2s\"} werden automatisch geladen, aber wenn Sie sie deaktivieren möchten, tragen Sie sie einfach in die Liste ein. Die Vorgabe ist @samp{()}."
 
 #. type: deftypevr
-#: doc/guix.texi:18323
+#: doc/guix.texi:21013
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} file-object groups-file"
 msgstr "{@code{prosody-configuration}-Parameter} Dateiobjekt groups-file"
 
 #. type: deftypevr
-#: doc/guix.texi:18328
+#: doc/guix.texi:21018
 msgid "Path to a text file where the shared groups are defined.  If this path is empty then @samp{mod_groups} does nothing.  See @url{https://prosody.im/doc/modules/mod_groups}.  Defaults to @samp{\"/var/lib/prosody/sharedgroups.txt\"}."
 msgstr "Der Pfad zu einer Textdatei, in der gemeinsame Gruppen definiert werden. Wenn dieser Pfad leer ist, dann tut @samp{mod_groups} nichts. Siehe @url{https://prosody.im/doc/modules/mod_groups}. Die Vorgabe ist @samp{\"/var/lib/prosody/sharedgroups.txt\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:18330
+#: doc/guix.texi:21020
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} boolean allow-registration?"
 msgstr "{@code{prosody-configuration}-Parameter} Boolescher-Ausdruck allow-registration?"
 
 #. type: deftypevr
-#: doc/guix.texi:18334
+#: doc/guix.texi:21024
 msgid "Disable account creation by default, for security.  See @url{https://prosody.im/doc/creating_accounts}.  Defaults to @samp{#f}."
 msgstr "Ob nach Voreinstellung @emph{keine} neuen Benutzerkonten angelegt werden können, aus Sicherheitsgründen. Siehe @url{https://prosody.im/doc/creating_accounts}. Die Vorgabe ist @samp{#f}."
 
 #. type: deftypevr
-#: doc/guix.texi:18336
+#: doc/guix.texi:21026
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} maybe-ssl-configuration ssl"
 msgstr "{@code{prosody-configuration}-Parameter} Vielleicht-„ssl-configuration“ ssl"
 
 #. type: deftypevr
-#: doc/guix.texi:18341
+#: doc/guix.texi:21031
 msgid "These are the SSL/TLS-related settings.  Most of them are disabled so to use Prosody's defaults.  If you do not completely understand these options, do not add them to your config, it is easy to lower the security of your server using them.  See @url{https://prosody.im/doc/advanced_ssl_config}."
 msgstr "Dies ist der Teil der Einstellungen, der mit SSL/TLS zu tun hat. Der Großteil davon ist deaktiviert, damit die Voreinstellungen von Prosody verwendet werden. Wenn Sie diese Optionen hier nicht völlig verstehen, sollten Sie sie @emph{nicht} in Ihrer Konfiguration verwenden. Es passiert leicht, dass Sie die Sicherheit Ihres Servers absenken, indem Sie sie falsch benutzen. Siehe @url{https://prosody.im/doc/advanced_ssl_config}."
 
 #. type: deftypevr
-#: doc/guix.texi:18343
+#: doc/guix.texi:21033
 msgid "Available @code{ssl-configuration} fields are:"
 msgstr "Verfügbare @code{ssl-configuration}-Felder sind:"
 
 #. type: deftypevr
-#: doc/guix.texi:18344
+#: doc/guix.texi:21034
 #, no-wrap
 msgid "{@code{ssl-configuration} parameter} maybe-string protocol"
 msgstr "{@code{ssl-configuration}-Parameter} Vielleicht-Zeichenkette protocol"
 
 #. type: deftypevr
-#: doc/guix.texi:18346
+#: doc/guix.texi:21036
 msgid "This determines what handshake to use."
 msgstr "Dadurch wird entschieden, was für ein Handshake benutzt wird."
 
 #. type: deftypevr
-#: doc/guix.texi:18348
+#: doc/guix.texi:21038
 #, no-wrap
 msgid "{@code{ssl-configuration} parameter} maybe-file-name key"
 msgstr "{@code{ssl-configuration}-Parameter} Vielleicht-Dateiname key"
 
 #. type: deftypevr
-#: doc/guix.texi:18350
+#: doc/guix.texi:21040
 msgid "Path to your private key file."
 msgstr "Der Pfad zur Datei mit Ihrem privaten Schlüssel."
 
 #. type: deftypevr
-#: doc/guix.texi:18352
+#: doc/guix.texi:21042
 #, no-wrap
 msgid "{@code{ssl-configuration} parameter} maybe-file-name certificate"
 msgstr "{@code{ssl-configuration}-Parameter} Vielleicht-Dateiname certificate"
 
 #. type: deftypevr
-#: doc/guix.texi:18354
+#: doc/guix.texi:21044
 msgid "Path to your certificate file."
 msgstr "Der Pfad zur Datei mit Ihrem Zertifikat."
 
 #. type: deftypevr
-#: doc/guix.texi:18356
+#: doc/guix.texi:21046
 #, no-wrap
 msgid "{@code{ssl-configuration} parameter} file-object capath"
 msgstr "{@code{ssl-configuration}-Parameter} Dateiobjekt capath"
 
 #. type: deftypevr
-#: doc/guix.texi:18360
+#: doc/guix.texi:21050
 msgid "Path to directory containing root certificates that you wish Prosody to trust when verifying the certificates of remote servers.  Defaults to @samp{\"/etc/ssl/certs\"}."
-msgstr "Der Pfad zum Verzeichnis, das die Wurzelzertifikate enthält, die Prosody zur Verifikation der Zertifikate entfernter Server benutzen soll. Die Vorgabe ist @samp{\\\"/etc/ssl/certs\\\"}."
+msgstr "Der Pfad zum Verzeichnis, das die Wurzelzertifikate enthält, die Prosody zur Verifikation der Zertifikate entfernter Server benutzen soll. Die Vorgabe ist @samp{\"/etc/ssl/certs\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:18362
+#: doc/guix.texi:21052
 #, no-wrap
 msgid "{@code{ssl-configuration} parameter} maybe-file-object cafile"
 msgstr "{@code{ssl-configuration}-Parameter} Vielleicht-Dateiobjekt cafile"
 
 #. type: deftypevr
-#: doc/guix.texi:18365
+#: doc/guix.texi:21055
 msgid "Path to a file containing root certificates that you wish Prosody to trust.  Similar to @code{capath} but with all certificates concatenated together."
 msgstr "Der Pfad zu einer Datei, in der Wurzelzertifikate enthalten sind, denen Prosody vertrauen soll. Er verhält sich ähnlich wie @code{capath}, aber alle Zertifikate stehen hintereinander in der Datei."
 
 #. type: deftypevr
-#: doc/guix.texi:18367
+#: doc/guix.texi:21057
 #, no-wrap
 msgid "{@code{ssl-configuration} parameter} maybe-string-list verify"
 msgstr "{@code{ssl-configuration}-Parameter} Vielleicht-Zeichenketten-Liste verify"
 
 #. type: deftypevr
-#: doc/guix.texi:18370
+#: doc/guix.texi:21060
 msgid "A list of verification options (these mostly map to OpenSSL's @code{set_verify()} flags)."
 msgstr "Eine Liste von Verifikationsoptionen. (Die meisten bilden auf die @code{set_verify()}-Flags von OpenSSL ab.)"
 
 #. type: deftypevr
-#: doc/guix.texi:18372
+#: doc/guix.texi:21062
 #, no-wrap
 msgid "{@code{ssl-configuration} parameter} maybe-string-list options"
 msgstr "{@code{ssl-configuration}-Parameter} Vielleicht-Zeichenketten-Liste options"
 
 #. type: deftypevr
-#: doc/guix.texi:18376
+#: doc/guix.texi:21066
 msgid "A list of general options relating to SSL/TLS.  These map to OpenSSL's @code{set_options()}.  For a full list of options available in LuaSec, see the LuaSec source."
 msgstr "Eine Liste allgemeiner Optionen, die mit SSL/TLS zu tun haben. Diese bilden auf OpenSSLs @code{set_options()} ab. Eine vollständige Liste der in LuaSec verfügbaren Optionen finden Sie im Quellcode von LuaSec."
 
 #. type: deftypevr
-#: doc/guix.texi:18378
+#: doc/guix.texi:21068
 #, no-wrap
 msgid "{@code{ssl-configuration} parameter} maybe-non-negative-integer depth"
 msgstr "{@code{ssl-configuration}-Parameter} Vielleicht-Nichtnegative-ganze-Zahl depth"
 
 #. type: deftypevr
-#: doc/guix.texi:18381
+#: doc/guix.texi:21071
 msgid "How long a chain of certificate authorities to check when looking for a trusted root certificate."
 msgstr "Wie lange eine Kette von Zertifikatsautoritäten („Certificate Authorities“) nach einem passenden Wurzelzertifikat durchsucht wird, dem vertraut wird."
 
 #. type: deftypevr
-#: doc/guix.texi:18383
+#: doc/guix.texi:21073
 #, no-wrap
 msgid "{@code{ssl-configuration} parameter} maybe-string ciphers"
 msgstr "{@code{ssl-configuration}-Parameter} Vielleicht-Zeichenkette ciphers"
 
 #. type: deftypevr
-#: doc/guix.texi:18386
+#: doc/guix.texi:21076
 msgid "An OpenSSL cipher string.  This selects what ciphers Prosody will offer to clients, and in what order."
 msgstr "Eine Zeichenkette mit OpenSSL-Ciphers. Damit wird ausgewählt, welche Ciphers Prosody seinen Clients anbietet, und in welcher Reihenfolge."
 
 #. type: deftypevr
-#: doc/guix.texi:18388
+#: doc/guix.texi:21078
 #, no-wrap
 msgid "{@code{ssl-configuration} parameter} maybe-file-name dhparam"
 msgstr "{@code{ssl-configuration}-Parameter} Vielleicht-Dateiname dhparam"
 
 #. type: deftypevr
-#: doc/guix.texi:18392
+#: doc/guix.texi:21082
 msgid "A path to a file containing parameters for Diffie-Hellman key exchange.  You can create such a file with: @code{openssl dhparam -out /etc/prosody/certs/dh-2048.pem 2048}"
 msgstr "Ein Pfad zu einer Datei, in der Parameter für Diffie-Hellman-Schlüsselaustausche stehen. Sie können so eine Datei mit diesem Befehl erzeugen: @code{openssl dhparam -out /etc/prosody/certs/dh-2048.pem 2048}"
 
 #. type: deftypevr
-#: doc/guix.texi:18394
+#: doc/guix.texi:21084
 #, no-wrap
 msgid "{@code{ssl-configuration} parameter} maybe-string curve"
 msgstr "{@code{ssl-configuration}-Parameter} Vielleicht-Zeichenkette curve"
 
 #. type: deftypevr
-#: doc/guix.texi:18397
-msgid "Curve for Elliptic curve Diffie-Hellman. Prosody's default is @samp{\"secp384r1\"}."
+#: doc/guix.texi:21087
+msgid "Curve for Elliptic curve Diffie-Hellman.  Prosody's default is @samp{\"secp384r1\"}."
 msgstr "Die Kurve, die für Diffie-Hellman mit elliptischen Kurven verwendet werden soll. Prosodys Voreinstellung ist @samp{\"secp384r1\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:18399
+#: doc/guix.texi:21089
 #, no-wrap
 msgid "{@code{ssl-configuration} parameter} maybe-string-list verifyext"
 msgstr "{@code{ssl-configuration}-Parameter} Vielleicht-Zeichenketten-Liste verifyext"
 
 #. type: deftypevr
-#: doc/guix.texi:18401
-msgid "A list of \"extra\" verification options."
+#: doc/guix.texi:21091
+msgid "A list of ``extra'' verification options."
 msgstr "Eine Liste von zusätzlichen Verifikationsoptionen."
 
 #. type: deftypevr
-#: doc/guix.texi:18403
+#: doc/guix.texi:21093
 #, no-wrap
 msgid "{@code{ssl-configuration} parameter} maybe-string password"
 msgstr "{@code{ssl-configuration}-Parameter} Vielleicht-Zeichenkette password"
 
 #. type: deftypevr
-#: doc/guix.texi:18405
+#: doc/guix.texi:21095
 msgid "Password for encrypted private keys."
 msgstr "Das Passwort fÜr verschlüsselte private Schlüssel."
 
 #. type: deftypevr
-#: doc/guix.texi:18409
+#: doc/guix.texi:21099
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} boolean c2s-require-encryption?"
 msgstr "{@code{prosody-configuration}-Parameter} Boolescher-Ausdruck c2s-require-encryption?"
 
 #. type: deftypevr
-#: doc/guix.texi:18413
+#: doc/guix.texi:21103
 msgid "Whether to force all client-to-server connections to be encrypted or not.  See @url{https://prosody.im/doc/modules/mod_tls}.  Defaults to @samp{#f}."
 msgstr "Ob alle Verbindungen von Client zu Server zwangsweise verschlüsselt sein müssen. Siehe @url{https://prosody.im/doc/modules/mod_tls}. Die Vorgabe ist @samp{#f}."
 
 #. type: deftypevr
-#: doc/guix.texi:18415
+#: doc/guix.texi:21105
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} string-list disable-sasl-mechanisms"
 msgstr "{@code{prosody-configuration}-Parameter} Zeichenketten-Liste disable-sasl-mechanisms"
 
 #. type: deftypevr
-#: doc/guix.texi:18419
+#: doc/guix.texi:21109
 msgid "Set of mechanisms that will never be offered.  See @url{https://prosody.im/doc/modules/mod_saslauth}.  Defaults to @samp{(\"DIGEST-MD5\")}."
 msgstr "Welche Mechanismen angeboten werden. Siehe @url{https://prosody.im/doc/modules/mod_saslauth}. Die Vorgabe ist @samp{(\"DIGEST-MD5\")}."
 
 #. type: deftypevr
-#: doc/guix.texi:18421
+#: doc/guix.texi:21111
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} boolean s2s-require-encryption?"
 msgstr "{@code{prosody-configuration}-Parameter} Boolescher-Ausdruck s2s-require-encryption?"
 
 #. type: deftypevr
-#: doc/guix.texi:18425
+#: doc/guix.texi:21115
 msgid "Whether to force all server-to-server connections to be encrypted or not.  See @url{https://prosody.im/doc/modules/mod_tls}.  Defaults to @samp{#f}."
 msgstr "Ob alle Verbindungen von Server zu Server zwangsweise verschlüsselt sein müssen. Siehe @url{https://prosody.im/doc/modules/mod_tls}. Die Vorgabe ist @samp{#f}."
 
 #. type: deftypevr
-#: doc/guix.texi:18427
+#: doc/guix.texi:21117
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} boolean s2s-secure-auth?"
 msgstr "{@code{prosody-configuration}-Parameter} Boolescher-Ausdruck s2s-secure-auth?"
 
 #. type: deftypevr
-#: doc/guix.texi:18433
+#: doc/guix.texi:21123
 msgid "Whether to require encryption and certificate authentication.  This provides ideal security, but requires servers you communicate with to support encryption AND present valid, trusted certificates.  See @url{https://prosody.im/doc/s2s#security}.  Defaults to @samp{#f}."
 msgstr "Ob Verschlüsselung und Zertifikatsauthentifizierung verpflichtend durchgeführt werden müssen. Das bietet das ideale Maß an Sicherheit, jedoch müssen dann auch die Server, mit denen Sie kommunizieren, Verschlüsselung unterstützen @emph{und} gültige Zertifikate vorweisen, denen Sie auch vertrauen. Siehe @url{https://prosody.im/doc/s2s#security}. Die Vorgabe ist @samp{#f}."
 
 #. type: deftypevr
-#: doc/guix.texi:18435
+#: doc/guix.texi:21125
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} string-list s2s-insecure-domains"
 msgstr "{@code{prosody-configuration}-Parameter} Zeichenketten-Liste s2s-insecure-domains"
 
 #. type: deftypevr
-#: doc/guix.texi:18441
+#: doc/guix.texi:21131
 msgid "Many servers don't support encryption or have invalid or self-signed certificates.  You can list domains here that will not be required to authenticate using certificates.  They will be authenticated using DNS.  See @url{https://prosody.im/doc/s2s#security}.  Defaults to @samp{()}."
 msgstr "Viele Server bieten keine Unterstützung für Verschlüsselung oder ihre Zertifikate sind ungültig oder selbstsigniert. Hier können Sie Domains eintragen, die von der Pflicht zur Authentisierung mit Zertifikaten ausgenommen werden. Diese werden dann über DNS authentifiziert. Siehe @url{https://prosody.im/doc/s2s#security}. Die Vorgabe ist @samp{()}."
 
 #. type: deftypevr
-#: doc/guix.texi:18443
+#: doc/guix.texi:21133
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} string-list s2s-secure-domains"
 msgstr "{@code{prosody-configuration}-Parameter} Zeichenketten-Liste s2s-secure-domains"
 
 #. type: deftypevr
-#: doc/guix.texi:18448
+#: doc/guix.texi:21138
 msgid "Even if you leave @code{s2s-secure-auth?} disabled, you can still require valid certificates for some domains by specifying a list here.  See @url{https://prosody.im/doc/s2s#security}.  Defaults to @samp{()}."
 msgstr "Selbst wenn Sie @code{s2s-secure-auth?} deaktiviert lassen, können Sie noch immer gültige Zertifikate bei manchen Domains verlangen, indem Sie diese hier auflisten. Siehe @url{https://prosody.im/doc/s2s#security}. Die Vorgabe ist @samp{()}."
 
 #. type: deftypevr
-#: doc/guix.texi:18450
+#: doc/guix.texi:21140
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} string authentication"
 msgstr "{@code{prosody-configuration}-Parameter} Zeichenkette authentication"
 
 #. type: deftypevr
-#: doc/guix.texi:18458
+#: doc/guix.texi:21148
 msgid "Select the authentication backend to use.  The default provider stores passwords in plaintext and uses Prosody's configured data storage to store the authentication data.  If you do not trust your server please see @url{https://prosody.im/doc/modules/mod_auth_internal_hashed} for information about using the hashed backend.  See also @url{https://prosody.im/doc/authentication} Defaults to @samp{\"internal_plain\"}."
 msgstr "Wählen Sie aus, welcher Hintergrunddienst („Provider“) zur Authentifizierung benutzt werden soll. Das vorgegebene System speichert Passwörter im Klartext ab und benutzt dafür den in Prosody eingestellten Datenspeicher, um Authentifizierungsdaten zu speichern. Wenn Sie Ihrem Server kein Vertrauen entgegenbringen, siehe @url{https://prosody.im/doc/modules/mod_auth_internal_hashed} für Informationen, wie Sie den gehashten Hintergrunddienst benutzen. Siehe auch @url{https://prosody.im/doc/authentication}. Die Vorgabe ist @samp{\"internal_plain\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:18460
+#: doc/guix.texi:21150
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} maybe-string log"
 msgstr "{@code{prosody-configuration}-Parameter} Vielleicht-Zeichenkette log"
 
 #. type: deftypevr
-#: doc/guix.texi:18464
+#: doc/guix.texi:21154
 msgid "Set logging options.  Advanced logging configuration is not yet supported by the Prosody service.  See @url{https://prosody.im/doc/logging}.  Defaults to @samp{\"*syslog\"}."
 msgstr "Hiermit werden die Protokollierungsoptionen festgelegt. Fortgeschrittene Protokollierungskonfigurationen werden vom Prosody-Dienst noch nicht unterstützt. Siehe @url{https://prosody.im/doc/logging}. Die Vorgabe ist @samp{\"*syslog\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:18466
+#: doc/guix.texi:21156
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} file-name pidfile"
 msgstr "{@code{prosody-configuration}-Parameter} Dateiname pidfile"
 
 #. type: deftypevr
-#: doc/guix.texi:18469
+#: doc/guix.texi:21159
 msgid "File to write pid in.  See @url{https://prosody.im/doc/modules/mod_posix}.  Defaults to @samp{\"/var/run/prosody/prosody.pid\"}."
 msgstr "Die Datei, in der Prosodys Prozessidentifikator („PID“) abgelegt wird. Siehe @url{https://prosody.im/doc/modules/mod_posix}. Die Vorgabe ist @samp{\"/var/run/prosody/prosody.pid\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:18471
+#: doc/guix.texi:21161
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} maybe-non-negative-integer http-max-content-size"
 msgstr "{@code{prosody-configuration}-Parameter} Vielleicht-Nichtnegative-ganze-Zahl http-max-content-size"
 
 #. type: deftypevr
-#: doc/guix.texi:18473
+#: doc/guix.texi:21163
 msgid "Maximum allowed size of the HTTP body (in bytes)."
 msgstr "Die maximal zulässige Größe des HTTP-Rumpfs (in Bytes)."
 
 #. type: deftypevr
-#: doc/guix.texi:18475
+#: doc/guix.texi:21165
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} maybe-string http-external-url"
 msgstr "{@code{prosody-configuration}-Parameter} Vielleicht-Zeichenkette http-external-url"
 
 #. type: deftypevr
-#: doc/guix.texi:18480
+#: doc/guix.texi:21170
 msgid "Some modules expose their own URL in various ways.  This URL is built from the protocol, host and port used.  If Prosody sits behind a proxy, the public URL will be @code{http-external-url} instead.  See @url{https://prosody.im/doc/http#external_url}."
 msgstr "Manche Module machen auf verschiedene Arten ihre eigene URL verfügbar. Diese URL setzt sich aus dem benutzten Protokoll, Rechnernamen und Port zusammen. Wenn Prosody hinter einem Proxy ausgeführt wird, ist die öffentliche URL stattdessen die @code{http-external-url}. Siehe @url{https://prosody.im/doc/http#external_url}."
 
 #. type: deftypevr
-#: doc/guix.texi:18482
+#: doc/guix.texi:21172
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} virtualhost-configuration-list virtualhosts"
 msgstr "{@code{prosody-configuration}-Parameter} „virtualhost-configuration“-Liste virtualhosts"
 
 #. type: deftypevr
-#: doc/guix.texi:18487
+#: doc/guix.texi:21177
 msgid "A host in Prosody is a domain on which user accounts can be created.  For example if you want your users to have addresses like @samp{\"john.smith@@example.com\"} then you need to add a host @samp{\"example.com\"}.  All options in this list will apply only to this host."
 msgstr "Der Name eines Rechners („Host“) in Prosody bezeichnet eine Domain, auf der Benutzerkonten angelegt werden können. Wenn Sie zum Beispiel möchten, dass Nutzer Adressen haben wie @samp{\"john.smith@@example.com\"}, dann müssen Sie einen Rechnernamen @samp{\"example.com\"} hinzufügen. Alle Optionen in dieser Liste gelten nur für diesen Rechnernamen."
 
 #. type: deftypevr
-#: doc/guix.texi:18493
-msgid "Note: the name \"virtual\" host is used in configuration to avoid confusion with the actual physical host that Prosody is installed on.  A single Prosody instance can serve many domains, each one defined as a VirtualHost entry in Prosody's configuration.  Conversely a server that hosts a single domain would have just one VirtualHost entry."
-msgstr "Beachten Sie: Die Bezeichnung „virtueller“ Rechnername wird in der Konfiguration verwendet, damit es nicht zu Verwechslungen mit dem tatsächlichen physischen Rechner kommt, auf dem Prosody installiert ist. Eine einzelne Prosody-Instanz kann mehrere Domains bedienen, jede definiert mit ihrem eigenen VirtualHost-Eintrag in der Konfiguration von Prosody. Im Gegensatz dazu hätte ein Server, der nur eine Domain anbietet, nur einen einzigen VirtualHost-Eintrag."
+#: doc/guix.texi:21183
+msgid "Note: the name @emph{virtual} host is used in configuration to avoid confusion with the actual physical host that Prosody is installed on.  A single Prosody instance can serve many domains, each one defined as a VirtualHost entry in Prosody's configuration.  Conversely a server that hosts a single domain would have just one VirtualHost entry."
+msgstr "Beachten Sie: Die Bezeichnung @emph{virtueller} Rechnername wird in der Konfiguration verwendet, damit es nicht zu Verwechslungen mit dem tatsächlichen physischen Rechner kommt, auf dem Prosody installiert ist. Eine einzelne Prosody-Instanz kann mehrere Domains bedienen, jede definiert mit ihrem eigenen VirtualHost-Eintrag in der Konfiguration von Prosody. Im Gegensatz dazu hätte ein Server, der nur eine Domain anbietet, nur einen einzigen VirtualHost-Eintrag."
 
 #. type: deftypevr
-#: doc/guix.texi:18495
+#: doc/guix.texi:21185
 msgid "See @url{https://prosody.im/doc/configure#virtual_host_settings}."
 msgstr "Siehe @url{https://prosody.im/doc/configure#virtual_host_settings}."
 
 #. type: deftypevr
-#: doc/guix.texi:18497
+#: doc/guix.texi:21187
 msgid "Available @code{virtualhost-configuration} fields are:"
 msgstr "Verfügbare @code{virtualhost-configuration}-Felder sind:"
 
 #. type: deftypevr
-#: doc/guix.texi:18499 doc/guix.texi:18521 doc/guix.texi:18574
+#: doc/guix.texi:21189 doc/guix.texi:21211 doc/guix.texi:21264
 msgid "all these @code{prosody-configuration} fields: @code{admins}, @code{use-libevent?}, @code{modules-enabled}, @code{modules-disabled}, @code{groups-file}, @code{allow-registration?}, @code{ssl}, @code{c2s-require-encryption?}, @code{disable-sasl-mechanisms}, @code{s2s-require-encryption?}, @code{s2s-secure-auth?}, @code{s2s-insecure-domains}, @code{s2s-secure-domains}, @code{authentication}, @code{log}, @code{http-max-content-size}, @code{http-external-url}, @code{raw-content}, plus:"
 msgstr "Alle folgenden Felder, wie sie auch die @code{prosody-configuration} hat: @code{admins}, @code{use-libevent?}, @code{modules-enabled}, @code{modules-disabled}, @code{groups-file}, @code{allow-registration?}, @code{ssl}, @code{c2s-require-encryption?}, @code{disable-sasl-mechanisms}, @code{s2s-require-encryption?}, @code{s2s-secure-auth?}, @code{s2s-insecure-domains}, @code{s2s-secure-domains}, @code{authentication}, @code{log}, @code{http-max-content-size}, @code{http-external-url}, @code{raw-content}, und außerdem:"
 
 #. type: deftypevr
-#: doc/guix.texi:18499
+#: doc/guix.texi:21189
 #, no-wrap
 msgid "{@code{virtualhost-configuration} parameter} string domain"
 msgstr "{@code{virtualhost-configuration}-Parameter} Zeichenkette domain"
 
 #. type: deftypevr
-#: doc/guix.texi:18501
+#: doc/guix.texi:21191
 msgid "Domain you wish Prosody to serve."
 msgstr "Die Domain, auf der man Prosody erreichen soll."
 
 #. type: deftypevr
-#: doc/guix.texi:18505
+#: doc/guix.texi:21195
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} int-component-configuration-list int-components"
 msgstr "{@code{prosody-configuration}-Parameter} „int-component-configuration“-Liste int-components"
 
 #. type: deftypevr
-#: doc/guix.texi:18510
+#: doc/guix.texi:21200
 msgid "Components are extra services on a server which are available to clients, usually on a subdomain of the main server (such as @samp{\"mycomponent.example.com\"}).  Example components might be chatroom servers, user directories, or gateways to other protocols."
 msgstr "Komponenten sind zusätzliche Dienste auf einem Server, die Clients zur Verfügung stehen. Sie sind normalerweise auf einer Subdomain des Hauptservers verfügbar (wie zum Beispiel @samp{\"mycomponent.example.com\"}). Beispiele für Komponenten könnten Server für Chaträume, Benutzerverzeichnisse oder Zugänge („Gateways“) zu anderen Protokollen sein."
 
 #. type: deftypevr
-#: doc/guix.texi:18514
+#: doc/guix.texi:21204
 msgid "Internal components are implemented with Prosody-specific plugins.  To add an internal component, you simply fill the hostname field, and the plugin you wish to use for the component."
 msgstr "Interne Komponenten werden über Prosody-spezifische Plugins implementiert. Um eine interne Komponente hinzuzufügen, tragen Sie einfach das @code{hostname}-Feld für den Rechnernamen und die Plugins ein, die Sie für die Komponente benutzen möchten."
 
 #. type: deftypevr
-#: doc/guix.texi:18517
+#: doc/guix.texi:21207
 msgid "See @url{https://prosody.im/doc/components}.  Defaults to @samp{()}."
 msgstr "Siehe @url{https://prosody.im/doc/components}. Die Vorgabe ist @samp{()}."
 
 #. type: deftypevr
-#: doc/guix.texi:18519
+#: doc/guix.texi:21209
 msgid "Available @code{int-component-configuration} fields are:"
 msgstr "Verfügbare @code{int-component-configuration}-Felder sind:"
 
 #. type: deftypevr
-#: doc/guix.texi:18521
+#: doc/guix.texi:21211
 #, no-wrap
 msgid "{@code{int-component-configuration} parameter} string hostname"
 msgstr "{@code{int-component-configuration}-Parameter} Zeichenkette hostname"
 
 #. type: deftypevr
-#: doc/guix.texi:18523 doc/guix.texi:18580
+#: doc/guix.texi:21213 doc/guix.texi:21270
 msgid "Hostname of the component."
 msgstr "Der Rechnername für diese Komponente."
 
 #. type: deftypevr
-#: doc/guix.texi:18525
+#: doc/guix.texi:21215
 #, no-wrap
 msgid "{@code{int-component-configuration} parameter} string plugin"
 msgstr "{@code{int-component-configuration}-Parameter} Zeichenkette plugin"
 
 #. type: deftypevr
-#: doc/guix.texi:18527
+#: doc/guix.texi:21217
 msgid "Plugin you wish to use for the component."
 msgstr "Das Plugin, das Sie für diese Komponente benutzen möchten."
 
 #. type: deftypevr
-#: doc/guix.texi:18529
+#: doc/guix.texi:21219
 #, no-wrap
 msgid "{@code{int-component-configuration} parameter} maybe-mod-muc-configuration mod-muc"
 msgstr "{@code{int-component-configuration}-Parameter} Vielleicht-„mod-muc-configuration“ mod-muc"
 
 #. type: deftypevr
-#: doc/guix.texi:18532
+#: doc/guix.texi:21222
 msgid "Multi-user chat (MUC) is Prosody's module for allowing you to create hosted chatrooms/conferences for XMPP users."
 msgstr "Multi-User Chat (MUC) ist der Name von Prosodys Modul, womit Sie Chaträume/Konferenzen für XMPP-Benutzer anbieten lassen können."
 
 #. type: deftypevr
-#: doc/guix.texi:18536
-msgid "General information on setting up and using multi-user chatrooms can be found in the \"Chatrooms\" documentation (@url{https://prosody.im/doc/chatrooms}), which you should read if you are new to XMPP chatrooms."
+#: doc/guix.texi:21226
+msgid "General information on setting up and using multi-user chatrooms can be found in the ``Chatrooms'' documentation (@url{https://prosody.im/doc/chatrooms}), which you should read if you are new to XMPP chatrooms."
 msgstr "Allgemeine Informationen über das Einrichten und Benutzen von Multi-User-Chaträumen können Sie in der Dokumentation über Chaträume finden (@url{https://prosody.im/doc/chatrooms}), die Sie lesen sollten, wenn Ihnen XMPP-Chaträume neu sind."
 
 #. type: deftypevr
-#: doc/guix.texi:18538
+#: doc/guix.texi:21228
 msgid "See also @url{https://prosody.im/doc/modules/mod_muc}."
 msgstr "Siehe auch @url{https://prosody.im/doc/modules/mod_muc}."
 
 #. type: deftypevr
-#: doc/guix.texi:18540
+#: doc/guix.texi:21230
 msgid "Available @code{mod-muc-configuration} fields are:"
 msgstr "Verfügbare @code{mod-muc-configuration}-Felder sind:"
 
 #. type: deftypevr
-#: doc/guix.texi:18541
+#: doc/guix.texi:21231
 #, no-wrap
 msgid "{@code{mod-muc-configuration} parameter} string name"
 msgstr "{@code{mod-muc-configuration}-Parameter} Zeichenkette name"
 
 #. type: deftypevr
-#: doc/guix.texi:18544
+#: doc/guix.texi:21234
 msgid "The name to return in service discovery responses.  Defaults to @samp{\"Prosody Chatrooms\"}."
 msgstr "Der Name, der in Antworten auf die Diensteermittlung benutzt. Die Vorgabe ist @samp{\"Prosody Chatrooms\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:18546
+#: doc/guix.texi:21236
 #, no-wrap
 msgid "{@code{mod-muc-configuration} parameter} string-or-boolean restrict-room-creation"
 msgstr "{@code{mod-muc-configuration}-Parameter} Zeichenkette-oder-Boolescher-Ausdruck restrict-room-creation"
 
 #. type: deftypevr
-#: doc/guix.texi:18553
+#: doc/guix.texi:21243
 msgid "If @samp{#t}, this will only allow admins to create new chatrooms.  Otherwise anyone can create a room.  The value @samp{\"local\"} restricts room creation to users on the service's parent domain.  E.g.@: @samp{user@@example.com} can create rooms on @samp{rooms.example.com}.  The value @samp{\"admin\"} restricts to service administrators only.  Defaults to @samp{#f}."
 msgstr "Für @samp{#t} können nur Administratoren neue Chaträume anlegen. Andernfalls kann jeder einen Raum anlegen. Der Wert @samp{\"local\"} schränkt das Anlegen neuer Räume auf solche Nutzer ein, die zur Eltern-Domain des Dienstes gehören. Z.B.@: kann @samp{user@@example.com} Räume auf @samp{rooms.example.com} anlegen. Für den Wert @samp{\"admin\"} können nur Dienstadministratoren Chaträume anlegen. Die Vorgabe ist @samp{#f}."
 
 #. type: deftypevr
-#: doc/guix.texi:18555
+#: doc/guix.texi:21245
 #, no-wrap
 msgid "{@code{mod-muc-configuration} parameter} non-negative-integer max-history-messages"
 msgstr "{@code{mod-muc-configuration}-Parameter} Nichtnegative-ganze-Zahl max-history-messages"
 
 #. type: deftypevr
-#: doc/guix.texi:18559
+#: doc/guix.texi:21249
 msgid "Maximum number of history messages that will be sent to the member that has just joined the room.  Defaults to @samp{20}."
 msgstr "Die Maximalzahl der Nachrichten aus dem Chat-Verlauf, die an ein Mitglied nachversandt werden, das gerade erst dem Raum beigetreten ist. Die Vorgabe ist @samp{20}."
 
 #. type: deftypevr
-#: doc/guix.texi:18565
+#: doc/guix.texi:21255
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} ext-component-configuration-list ext-components"
 msgstr "{@code{prosody-configuration}-Parameter} „ext-component-configuration“-Liste ext-components"
 
 #. type: deftypevr
-#: doc/guix.texi:18570
+#: doc/guix.texi:21260
 msgid "External components use XEP-0114, which most standalone components support.  To add an external component, you simply fill the hostname field.  See @url{https://prosody.im/doc/components}.  Defaults to @samp{()}."
 msgstr "Externe Komponenten benutzen XEP-0114, das von den meisten eigenständigen Komponenten unterstützt wird. Um eine externe Komponente hinzuzufügen, tragen Sie einfach den Rechnernamen ins @code{hostname}-Feld ein. Siehe @url{https://prosody.im/doc/components}. Die Vorgabe ist @samp{()}."
 
 #. type: deftypevr
-#: doc/guix.texi:18572
+#: doc/guix.texi:21262
 msgid "Available @code{ext-component-configuration} fields are:"
 msgstr "Verfügbare @code{ext-component-configuration}-Felder sind:"
 
 #. type: deftypevr
-#: doc/guix.texi:18574
+#: doc/guix.texi:21264
 #, no-wrap
 msgid "{@code{ext-component-configuration} parameter} string component-secret"
 msgstr "{@code{ext-component-configuration}-Parameter} Zeichenkette component-secret"
 
 #. type: deftypevr
-#: doc/guix.texi:18576
+#: doc/guix.texi:21266
 msgid "Password which the component will use to log in."
 msgstr "Das Passwort, das die Komponente für die Anmeldung benutzt."
 
 #. type: deftypevr
-#: doc/guix.texi:18578
+#: doc/guix.texi:21268
 #, no-wrap
 msgid "{@code{ext-component-configuration} parameter} string hostname"
 msgstr "{@code{ext-component-configuration}-Parameter} Zeichenkette hostname"
 
 #. type: deftypevr
-#: doc/guix.texi:18584
+#: doc/guix.texi:21274
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} non-negative-integer-list component-ports"
 msgstr "{@code{prosody-configuration}-Parameter} Nichtnegative-ganze-Zahl-Liste component-ports"
 
 #. type: deftypevr
-#: doc/guix.texi:18587
+#: doc/guix.texi:21277
 msgid "Port(s) Prosody listens on for component connections.  Defaults to @samp{(5347)}."
 msgstr "Der/Die Port(s), wo Prosody auf Verbindungen zu Komponenten lauscht. Die Vorgabe ist @samp{(5347)}."
 
 #. type: deftypevr
-#: doc/guix.texi:18589
+#: doc/guix.texi:21279
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} string component-interface"
 msgstr "{@code{prosody-configuration}-Parameter} Zeichenkette component-interface"
 
 #. type: deftypevr
-#: doc/guix.texi:18592
+#: doc/guix.texi:21282
 msgid "Interface Prosody listens on for component connections.  Defaults to @samp{\"127.0.0.1\"}."
 msgstr "Die Schnittstelle, auf der Prosody auf Verbindungen zu Komponenten lauscht. Die Vorgabe ist @samp{\"127.0.0.1\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:18594
+#: doc/guix.texi:21284
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} maybe-raw-content raw-content"
 msgstr "{@code{prosody-configuration}-Parameter} Vielleicht-Roher-Inhalt raw-content"
 
 #. type: deftypevr
-#: doc/guix.texi:18596
+#: doc/guix.texi:21286
 msgid "Raw content that will be added to the configuration file."
 msgstr "„Roher Inhalt“, der so, wie er ist, an die Konfigurationsdatei angefügt wird."
 
 #. type: Plain text
-#: doc/guix.texi:18604
+#: doc/guix.texi:21294
 msgid "It could be that you just want to get a @code{prosody.cfg.lua} up and running.  In that case, you can pass an @code{opaque-prosody-configuration} record as the value of @code{prosody-service-type}.  As its name indicates, an opaque configuration does not have easy reflective capabilities.  Available @code{opaque-prosody-configuration} fields are:"
 msgstr "Möglicherweise möchten Sie einfach nur eine bestehende @code{prosody.cfg.lua} zum Laufen bringen. In diesem Fall können Sie ein @code{opaque-prosody-configuration}-Verbundsobjekt als der Wert des @code{prosody-service-type} übergeben. Wie der Name schon sagt, bietet eine opake Konfiguration keinerlei Unterstützung für Reflexion. Verfügbare @code{opaque-prosody-configuration}-Felder sind:"
 
 #. type: deftypevr
-#: doc/guix.texi:18605
+#: doc/guix.texi:21295
 #, no-wrap
 msgid "{@code{opaque-prosody-configuration} parameter} package prosody"
 msgstr "{@code{opaque-prosody-configuration}-Parameter} „package“ prosody"
 
 #. type: deftypevr
-#: doc/guix.texi:18607
+#: doc/guix.texi:21297
 msgid "The prosody package."
 msgstr "Das Prosody-Paket."
 
 #. type: deftypevr
-#: doc/guix.texi:18609
+#: doc/guix.texi:21299
 #, no-wrap
 msgid "{@code{opaque-prosody-configuration} parameter} string prosody.cfg.lua"
 msgstr "{@code{opaque-prosody-configuration}-Parameter} Zeichenkette prosody.cfg.lua"
 
 #. type: deftypevr
-#: doc/guix.texi:18611
+#: doc/guix.texi:21301
 msgid "The contents of the @code{prosody.cfg.lua} to use."
 msgstr "Der Inhalt, der als @code{prosody.cfg.lua} benutzt werden soll."
 
 #. type: Plain text
-#: doc/guix.texi:18615
+#: doc/guix.texi:21305
 msgid "For example, if your @code{prosody.cfg.lua} is just the empty string, you could instantiate a prosody service like this:"
 msgstr "Wenn Ihre @code{prosody.cfg.lua} zum Beispiel nur aus der leeren Zeichenkette bestünde, könnten Sie einen Prosody-Dienst wie folgt instanziieren:"
 
 #. type: lisp
-#: doc/guix.texi:18620
+#: doc/guix.texi:21310
 #, no-wrap
 msgid ""
 "(service prosody-service-type\n"
@@ -34868,218 +39456,212 @@ msgstr ""
 "          (prosody.cfg.lua \"\")))\n"
 
 #. type: subsubheading
-#: doc/guix.texi:18624
+#: doc/guix.texi:21314
 #, no-wrap
 msgid "BitlBee Service"
 msgstr "BitlBee-Dienst"
 
 #. type: cindex
-#: doc/guix.texi:18626 doc/guix.texi:18670
+#: doc/guix.texi:21316 doc/guix.texi:21360
 #, no-wrap
 msgid "IRC (Internet Relay Chat)"
 msgstr "IRC (Internet Relay Chat)"
 
 #. type: cindex
-#: doc/guix.texi:18627
+#: doc/guix.texi:21317
 #, no-wrap
 msgid "IRC gateway"
 msgstr "IRC-Zugang („Gateway“)"
 
 #. type: Plain text
-#: doc/guix.texi:18630
+#: doc/guix.texi:21320
 msgid "@url{https://bitlbee.org,BitlBee} is a gateway that provides an IRC interface to a variety of messaging protocols such as XMPP."
 msgstr "@url{https://bitlbee.org,BitlBee} ist ein Zugang („Gateway“), der eine IRC-Schnittstelle für verschiedene Kurznachrichtenprotokolle wie XMPP verfügbar macht."
 
 #. type: defvr
-#: doc/guix.texi:18631
+#: doc/guix.texi:21321
 #, no-wrap
 msgid "{Scheme Variable} bitlbee-service-type"
 msgstr "{Scheme-Variable} bitlbee-service-type"
 
 #. type: defvr
-#: doc/guix.texi:18635
+#: doc/guix.texi:21325
 msgid "This is the service type for the @url{https://bitlbee.org,BitlBee} IRC gateway daemon.  Its value is a @code{bitlbee-configuration} (see below)."
 msgstr "Dies ist der Diensttyp für den @url{https://bitlbee.org,BitlBee-IRC-Zugangsdaemon} (englisch „IRC Gateway Daemon“). Sein Wert ist eine @code{bitlbee-configuration} (siehe unten)."
 
 #. type: defvr
-#: doc/guix.texi:18638
+#: doc/guix.texi:21328
 msgid "To have BitlBee listen on port 6667 on localhost, add this line to your services:"
 msgstr "Damit BitlBee auf Port 6667 vom lokalen Rechner („localhost“) lauscht, fügen Sie diese Zeile zu Ihrem „services“-Feld hinzu:"
 
 #. type: lisp
-#: doc/guix.texi:18641
+#: doc/guix.texi:21331
 #, no-wrap
 msgid "(service bitlbee-service-type)\n"
 msgstr "(service bitlbee-service-type)\n"
 
 #. type: deftp
-#: doc/guix.texi:18644
+#: doc/guix.texi:21334
 #, no-wrap
 msgid "{Data Type} bitlbee-configuration"
 msgstr "{Datentyp} bitlbee-configuration"
 
 #. type: deftp
-#: doc/guix.texi:18646
+#: doc/guix.texi:21336
 msgid "This is the configuration for BitlBee, with the following fields:"
 msgstr "Dies ist die Konfiguration für BitlBee. Sie hat folgende Felder:"
 
 #. type: item
-#: doc/guix.texi:18648
+#: doc/guix.texi:21338
 #, no-wrap
 msgid "@code{interface} (default: @code{\"127.0.0.1\"})"
 msgstr "@code{interface} (Vorgabe: @code{\"127.0.0.1\"})"
 
 #. type: itemx
-#: doc/guix.texi:18649
+#: doc/guix.texi:21339
 #, no-wrap
 msgid "@code{port} (default: @code{6667})"
 msgstr "@code{port} (Vorgabe: @code{6667})"
 
 #. type: table
-#: doc/guix.texi:18652
+#: doc/guix.texi:21342
 msgid "Listen on the network interface corresponding to the IP address specified in @var{interface}, on @var{port}."
 msgstr "Lauscht auf der Netzwerkschnittstelle, die der als @var{interface} angegebenen IP-Adresse entspricht, auf dem angegebenen @var{port}."
 
 #. type: table
-#: doc/guix.texi:18656
+#: doc/guix.texi:21346
 msgid "When @var{interface} is @code{127.0.0.1}, only local clients can connect; when it is @code{0.0.0.0}, connections can come from any networking interface."
 msgstr "Wenn als @var{interface} @code{127.0.0.1} angegeben wurde, können sich nur lokale Clients verbinden; bei @code{0.0.0.0} können die Verbindungen von jeder Netzwerkschnittstelle aus hergestellt werden."
 
 #. type: item
-#: doc/guix.texi:18657
+#: doc/guix.texi:21347
 #, no-wrap
 msgid "@code{bitlbee} (default: @code{bitlbee})"
 msgstr "@code{bitlbee} (Vorgabe: @code{bitlbee})"
 
 #. type: table
-#: doc/guix.texi:18659
+#: doc/guix.texi:21349
 msgid "The BitlBee package to use."
 msgstr "Das zu benutzende BitlBee-Paket."
 
 #. type: item
-#: doc/guix.texi:18660
+#: doc/guix.texi:21350
 #, no-wrap
 msgid "@code{plugins} (default: @code{'()})"
 msgstr "@code{plugins} (Vorgabe: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:18662
+#: doc/guix.texi:21352
 msgid "List of plugin packages to use---e.g., @code{bitlbee-discord}."
 msgstr "Die Liste zu verwendender Plugin-Pakete — z.B.@: @code{bitlbee-discord}."
 
-#. type: item
-#: doc/guix.texi:18663 doc/guix.texi:20686
-#, no-wrap
-msgid "@code{extra-settings} (default: @code{\"\"})"
-msgstr "@code{extra-settings} (Vorgabe: @code{\"\"})"
-
 #. type: table
-#: doc/guix.texi:18665
+#: doc/guix.texi:21355
 msgid "Configuration snippet added as-is to the BitlBee configuration file."
 msgstr "Ein Konfigurationsschnipsel, das wortwörtlich in die BitlBee-Konfigurationsdatei eingefügt wird."
 
 #. type: subsubheading
-#: doc/guix.texi:18668
+#: doc/guix.texi:21358
 #, no-wrap
 msgid "Quassel Service"
 msgstr "Quassel-Dienst"
 
 #. type: Plain text
-#: doc/guix.texi:18674
+#: doc/guix.texi:21364
 msgid "@url{https://quassel-irc.org/,Quassel} is a distributed IRC client, meaning that one or more clients can attach to and detach from the central core."
 msgstr "@url{https://quassel-irc.org/,Quassel} ist ein verteilter IRC-Client, was bedeutet, dass sich ein oder mehr Clients mit dem zentralen Kern verbinden und die Verbindung wieder trennen können."
 
 #. type: defvr
-#: doc/guix.texi:18675
+#: doc/guix.texi:21365
 #, no-wrap
 msgid "{Scheme Variable} quassel-service-type"
 msgstr "{Scheme-Variable} quassel-service-type"
 
 #. type: defvr
-#: doc/guix.texi:18679
+#: doc/guix.texi:21369
 msgid "This is the service type for the @url{https://quassel-irc.org/,Quassel} IRC backend daemon.  Its value is a @code{quassel-configuration} (see below)."
 msgstr "Dies ist der Diensttyp für den Daemon zum IRC-Hintergrundsystem („Backend“) @url{https://quassel-irc.org/,Quassel}. Sein Wert ist eine @code{quassel-configuration} (siehe unten)."
 
 #. type: deftp
-#: doc/guix.texi:18681
+#: doc/guix.texi:21371
 #, no-wrap
 msgid "{Data Type} quassel-configuration"
 msgstr "{Datentyp} quassel-configuration"
 
 #. type: deftp
-#: doc/guix.texi:18683
+#: doc/guix.texi:21373
 msgid "This is the configuration for Quassel, with the following fields:"
 msgstr "Die Konfiguration für Quassel mit den folgenden Feldern:"
 
 #. type: item
-#: doc/guix.texi:18685
+#: doc/guix.texi:21375
 #, no-wrap
 msgid "@code{quassel} (default: @code{quassel})"
 msgstr "@code{quassel} (Vorgabe: @code{quassel})"
 
 #. type: table
-#: doc/guix.texi:18687
+#: doc/guix.texi:21377
 msgid "The Quassel package to use."
 msgstr "Das zu verwendende Quassel-Paket."
 
 #. type: item
-#: doc/guix.texi:18688
+#: doc/guix.texi:21378
 #, no-wrap
 msgid "@code{interface} (default: @code{\"::,0.0.0.0\"})"
 msgstr "@code{interface} (Vorgabe: @code{\"::,0.0.0.0\"})"
 
 #. type: item
-#: doc/guix.texi:18689
+#: doc/guix.texi:21379
 #, no-wrap
 msgid "@code{port} (default: @code{4242})"
 msgstr "@code{port} (Vorgabe: @code{4242})"
 
 #. type: table
-#: doc/guix.texi:18693
+#: doc/guix.texi:21383
 msgid "Listen on the network interface(s) corresponding to the IPv4 or IPv6 interfaces specified in the comma delimited @var{interface}, on @var{port}."
 msgstr "Lauscht auf der/den Netzwerkschnittstelle(n), die den in der kommagetrennten @var{interface}-Liste festgelegten IPv4- oder IPv6-Schnittstellen entsprechen, auf dem angegebenen @var{port}."
 
 #. type: item
-#: doc/guix.texi:18694
+#: doc/guix.texi:21384
 #, no-wrap
 msgid "@code{loglevel} (default: @code{\"Info\"})"
 msgstr "@code{loglevel} (Vorgabe: @code{\"Info\"})"
 
 #. type: table
-#: doc/guix.texi:18697
+#: doc/guix.texi:21387
 msgid "The level of logging desired.  Accepted values are Debug, Info, Warning and Error."
 msgstr "Die gewünschte Detailstufe der Protokollierung. Akzeptiert werden die Werte Debug (ausführlich zur Fehlersuche), Info, Warning (nur Warnungen und Fehler) und Error (nur Fehler)."
 
 #. type: cindex
-#: doc/guix.texi:18703
+#: doc/guix.texi:21393
 #, no-wrap
 msgid "Murmur (VoIP server)"
 msgstr "Murmur (VoIP-Internettelefonie-Server)"
 
 #. type: cindex
-#: doc/guix.texi:18704
+#: doc/guix.texi:21394
 #, no-wrap
 msgid "VoIP server"
 msgstr "Internettelefonie-Server (VoIP)"
 
 #. type: Plain text
-#: doc/guix.texi:18708
+#: doc/guix.texi:21398
 msgid "This section describes how to set up and run a Murmur server.  Murmur is the server of the @uref{https://mumble.info, Mumble} voice-over-IP (VoIP) suite."
 msgstr "Dieser Abschnitt beschreibt, wie Sie einen Murmur-Server einrichten und ausführen. Murmur ist der Server zur Internettelefonie-Suite @uref{https://mumble.info, Mumble} für „Voice over IP“ (VoIP)."
 
 #. type: deftp
-#: doc/guix.texi:18709
+#: doc/guix.texi:21399
 #, no-wrap
 msgid "{Data Type} murmur-configuration"
 msgstr "{Datentyp} murmur-configuration"
 
 #. type: deftp
-#: doc/guix.texi:18712
+#: doc/guix.texi:21402
 msgid "The service type for the Murmur server.  An example configuration can look like this:"
 msgstr "Der Diensttyp für den Murmur-Server. Eine Beispielkonfiguration kann so aussehen:"
 
 #. type: lisp
-#: doc/guix.texi:18721
+#: doc/guix.texi:21411
 #, no-wrap
 msgid ""
 "(service murmur-service-type\n"
@@ -35099,503 +39681,497 @@ msgstr ""
 "          (ssl-key \"/etc/letsencrypt/live/mumble.example.com/privkey.pem\")))\n"
 
 #. type: deftp
-#: doc/guix.texi:18725
+#: doc/guix.texi:21415
 msgid "After reconfiguring your system, you can manually set the murmur @code{SuperUser} password with the command that is printed during the activation phase."
 msgstr "Nachdem Sie Ihr System rekonfiguriert haben, können Sie das Passwort des Murmur-Administratornutzers @code{SuperUser} mit Hilfe des Befehls von Hand festlegen, der Ihnen in Murmurs Aktivierungsphase angezeigt wird."
 
 #. type: deftp
-#: doc/guix.texi:18734
+#: doc/guix.texi:21424
 msgid "It is recommended to register a normal Mumble user account and grant it admin or moderator rights.  You can use the @code{mumble} client to login as new normal user, register yourself, and log out.  For the next step login with the name @code{SuperUser} use the @code{SuperUser} password that you set previously, and grant your newly registered mumble user administrator or moderator rights and create some channels."
 msgstr "Es wird empfohlen, ein normales Mumble-Benutzerkonto zu registrieren und mit Administrator- oder Moderatorrechten auszustatten. Sie können auch das Clientprogramm @code{mumble} benutzen, um sich als neuer normaler Benutzer anzumelden und zu registrieren, und sich dann abmelden. Im nächsten Schritt melden Sie sich mit dem Benutzernamen @code{SuperUser} mit dem vorher festgelegten @code{SuperUser}-Passwort an und statten Ihren registrierten Mumble-Benutzer mit Administrator- oder Moderatorrechten aus oder erzeugen ein paar Kanäle."
 
 #. type: deftp
-#: doc/guix.texi:18736
+#: doc/guix.texi:21426
 msgid "Available @code{murmur-configuration} fields are:"
 msgstr "Verfügbare @code{murmur-configuration}-Felder sind:"
 
 #. type: item
-#: doc/guix.texi:18738
+#: doc/guix.texi:21428
 #, no-wrap
 msgid "@code{package} (default: @code{mumble})"
 msgstr "@code{package} (Vorgabe: @code{mumble})"
 
 #. type: table
-#: doc/guix.texi:18740
+#: doc/guix.texi:21430
 msgid "Package that contains @code{bin/murmurd}."
 msgstr "Das Paket, das @code{bin/murmurd} enthält."
 
 #. type: item
-#: doc/guix.texi:18741
+#: doc/guix.texi:21431
 #, no-wrap
 msgid "@code{user} (default: @code{\"murmur\"})"
 msgstr "@code{user} (Vorgabe: @code{\"murmur\"})"
 
 #. type: table
-#: doc/guix.texi:18743
+#: doc/guix.texi:21433
 msgid "User who will run the Murmur server."
 msgstr "Der Benutzer, der den Murmur-Server ausführt."
 
 #. type: item
-#: doc/guix.texi:18744
+#: doc/guix.texi:21434
 #, no-wrap
 msgid "@code{group} (default: @code{\"murmur\"})"
 msgstr "@code{group} (Vorgabe: @code{\"murmur\"})"
 
 #. type: table
-#: doc/guix.texi:18746
+#: doc/guix.texi:21436
 msgid "Group of the user who will run the murmur server."
 msgstr "Die Gruppe des Benutzers, der den Murmur-Server ausführt."
 
 #. type: item
-#: doc/guix.texi:18747
+#: doc/guix.texi:21437
 #, no-wrap
 msgid "@code{port} (default: @code{64738})"
 msgstr "@code{port} (Vorgabe: @code{64738})"
 
 #. type: table
-#: doc/guix.texi:18749
+#: doc/guix.texi:21439
 msgid "Port on which the server will listen."
 msgstr "Der Port, auf dem der Server lauschen wird."
 
 #. type: item
-#: doc/guix.texi:18750
+#: doc/guix.texi:21440
 #, no-wrap
 msgid "@code{welcome-text} (default: @code{\"\"})"
 msgstr "@code{welcome-text} (Vorgabe: @code{\"\"})"
 
 #. type: table
-#: doc/guix.texi:18752
+#: doc/guix.texi:21442
 msgid "Welcome text sent to clients when they connect."
 msgstr "Der Willkommenstext, der an Clients geschickt wird, sobald sie eine Verbindung aufgebaut haben."
 
 #. type: item
-#: doc/guix.texi:18753
+#: doc/guix.texi:21443
 #, no-wrap
 msgid "@code{server-password} (default: @code{\"\"})"
 msgstr "@code{server-password} (Vorgabe: @code{\"\"})"
 
 #. type: table
-#: doc/guix.texi:18755
+#: doc/guix.texi:21445
 msgid "Password the clients have to enter in order to connect."
 msgstr "Das Passwort, das Clients eingeben müssen, um sich verbinden zu können."
 
 #. type: item
-#: doc/guix.texi:18756
+#: doc/guix.texi:21446
 #, no-wrap
 msgid "@code{max-users} (default: @code{100})"
 msgstr "@code{max-users} (Vorgabe: @code{100})"
 
 #. type: table
-#: doc/guix.texi:18758
+#: doc/guix.texi:21448
 msgid "Maximum of users that can be connected to the server at once."
 msgstr "Die Maximalzahl von Nutzern, die gleichzeitig mit dem Server verbunden sein können."
 
 #. type: item
-#: doc/guix.texi:18759
+#: doc/guix.texi:21449
 #, no-wrap
 msgid "@code{max-user-bandwidth} (default: @code{#f})"
 msgstr "@code{max-user-bandwidth} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:18761
+#: doc/guix.texi:21451
 msgid "Maximum voice traffic a user can send per second."
-msgstr "Wieviele Stimmdaten ein Benutzer pro Sekunde versenden kann."
+msgstr "Wie viele Stimmdaten ein Benutzer pro Sekunde versenden kann."
 
 #. type: item
-#: doc/guix.texi:18762
+#: doc/guix.texi:21452
 #, no-wrap
 msgid "@code{database-file} (default: @code{\"/var/lib/murmur/db.sqlite\"})"
 msgstr "@code{database-file} (Vorgabe: @code{\"/var/lib/murmur/db.sqlite\"})"
 
 #. type: table
-#: doc/guix.texi:18765
+#: doc/guix.texi:21455
 msgid "File name of the sqlite database.  The service's user will become the owner of the directory."
 msgstr "Der Dateiname der SQLite-Datenbank. Das Benutzerkonto für den Dienst wird Besitzer des Verzeichnisses."
 
 #. type: item
-#: doc/guix.texi:18766
+#: doc/guix.texi:21456
 #, no-wrap
 msgid "@code{log-file} (default: @code{\"/var/log/murmur/murmur.log\"})"
 msgstr "@code{log-file} (Vorgabe: @code{\"/var/log/murmur/murmur.log\"})"
 
 #. type: table
-#: doc/guix.texi:18769
+#: doc/guix.texi:21459
 msgid "File name of the log file.  The service's user will become the owner of the directory."
 msgstr "Der Dateiname der Protokolldatei. Das Benutzerkonto für den Dienst wird Besitzer des Verzeichnisses."
 
 #. type: item
-#: doc/guix.texi:18770
+#: doc/guix.texi:21460
 #, no-wrap
 msgid "@code{autoban-attempts} (default: @code{10})"
 msgstr "@code{autoban-attempts} (Vorgabe: @code{10})"
 
 #. type: table
-#: doc/guix.texi:18773
+#: doc/guix.texi:21463
 msgid "Maximum number of logins a user can make in @code{autoban-timeframe} without getting auto banned for @code{autoban-time}."
 msgstr "Wie oft sich ein Benutzer innerhalb des in @code{autoban-timeframe} angegebenen Zeitrahmens verbinden kann, ohne automatisch für die in  @code{autoban-time} angegebene Zeit vom Server verbannt zu werden."
 
 #. type: item
-#: doc/guix.texi:18774
+#: doc/guix.texi:21464
 #, no-wrap
 msgid "@code{autoban-timeframe} (default: @code{120})"
 msgstr "@code{autoban-timeframe} (Vorgabe: @code{120})"
 
 #. type: table
-#: doc/guix.texi:18776
+#: doc/guix.texi:21466
 msgid "Timeframe for autoban in seconds."
 msgstr "Der Zeitrahmen für automatisches Bannen in Sekunden."
 
 #. type: item
-#: doc/guix.texi:18777
+#: doc/guix.texi:21467
 #, no-wrap
 msgid "@code{autoban-time} (default: @code{300})"
 msgstr "@code{autoban-time} (Vorgabe: @code{300})"
 
 #. type: table
-#: doc/guix.texi:18780
+#: doc/guix.texi:21470
 msgid "Amount of time in seconds for which a client gets banned when violating the autoban limits."
 msgstr "Wie lange in Sekunden ein Client gebannt wird, wenn er die Autobann-Beschränkungen überschreitet."
 
 #. type: item
-#: doc/guix.texi:18781
+#: doc/guix.texi:21471
 #, no-wrap
 msgid "@code{opus-threshold} (default: @code{100})"
 msgstr "@code{opus-threshold} (Vorgabe: @code{100})"
 
 #. type: table
-#: doc/guix.texi:18784
+#: doc/guix.texi:21474
 msgid "Percentage of clients that need to support opus before switching over to opus audio codec."
 msgstr "Der Prozentanteil der Clients, die Opus unterstützen müssen, bevor der Opus-Audiocodec verwendet wird."
 
 #. type: item
-#: doc/guix.texi:18785
+#: doc/guix.texi:21475
 #, no-wrap
 msgid "@code{channel-nesting-limit} (default: @code{10})"
 msgstr "@code{channel-nesting-limit} (Vorgabe: @code{10})"
 
 #. type: table
-#: doc/guix.texi:18787
+#: doc/guix.texi:21477
 msgid "How deep channels can be nested at maximum."
 msgstr "Wie tief Kanäle höchstens ineinander verschachtelt sein können."
 
 #. type: item
-#: doc/guix.texi:18788
+#: doc/guix.texi:21478
 #, no-wrap
 msgid "@code{channelname-regex} (default: @code{#f})"
 msgstr "@code{channelname-regex} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:18790
+#: doc/guix.texi:21480
 msgid "A string in form of a Qt regular expression that channel names must conform to."
 msgstr "Eine Zeichenkette in Form eines regulären Ausdrucks von Qt, zu dem Kanalnamen passen müssen."
 
 #. type: item
-#: doc/guix.texi:18791
+#: doc/guix.texi:21481
 #, no-wrap
 msgid "@code{username-regex} (default: @code{#f})"
 msgstr "@code{username-regex} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:18793
+#: doc/guix.texi:21483
 msgid "A string in form of a Qt regular expression that user names must conform to."
 msgstr "Eine Zeichenkette in Form eines regulären Ausdrucks von Qt, zu dem Nutzernamen passen müssen."
 
 #. type: item
-#: doc/guix.texi:18794
+#: doc/guix.texi:21484
 #, no-wrap
 msgid "@code{text-message-length} (default: @code{5000})"
 msgstr "@code{text-message-length} (Vorgabe: @code{5000})"
 
 #. type: table
-#: doc/guix.texi:18796
+#: doc/guix.texi:21486
 msgid "Maximum size in bytes that a user can send in one text chat message."
-msgstr "Wieviele Bytes ein Benutzer höchstens in einer Textchatnachricht verschicken kann."
+msgstr "Wie viele Bytes ein Benutzer höchstens in einer Textchatnachricht verschicken kann."
 
 #. type: item
-#: doc/guix.texi:18797
+#: doc/guix.texi:21487
 #, no-wrap
 msgid "@code{image-message-length} (default: @code{(* 128 1024)})"
 msgstr "@code{image-message-length} (Vorgabe: @code{(* 128 1024)})"
 
 #. type: table
-#: doc/guix.texi:18799
+#: doc/guix.texi:21489
 msgid "Maximum size in bytes that a user can send in one image message."
-msgstr "Wieviele Bytes ein Benutzer höchstens in einer Bildnachricht verschicken kann."
+msgstr "Wie viele Bytes ein Benutzer höchstens in einer Bildnachricht verschicken kann."
 
 #. type: item
-#: doc/guix.texi:18800
+#: doc/guix.texi:21490
 #, no-wrap
 msgid "@code{cert-required?} (default: @code{#f})"
 msgstr "@code{cert-required?} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:18803
+#: doc/guix.texi:21493
 msgid "If it is set to @code{#t} clients that use weak password authentication will not be accepted. Users must have completed the certificate wizard to join."
 msgstr "Falls dies auf @code{#t} gesetzt ist, werden Clients abgelehnt, die sich bloß mit Passwörtern authentisieren. Benutzer müssen den Zertifikatsassistenten abgeschlossen haben, bevor sie sich verbinden können."
 
 #. type: item
-#: doc/guix.texi:18804
+#: doc/guix.texi:21494
 #, no-wrap
 msgid "@code{remember-channel?} (default: @code{#f})"
 msgstr "@code{remember-channel?} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:18807
+#: doc/guix.texi:21497
 msgid "Should murmur remember the last channel each user was in when they disconnected and put them into the remembered channel when they rejoin."
 msgstr "Ob sich Murmur für jeden Nutzer den Kanal merken soll, auf dem er sich zuletzt befunden hat, als er die Verbindung getrennt hat, so dass er wieder auf dem gemerkten Kanal landet, wenn er dem Server wieder beitritt."
 
 #. type: item
-#: doc/guix.texi:18808
+#: doc/guix.texi:21498
 #, no-wrap
 msgid "@code{allow-html?} (default: @code{#f})"
 msgstr "@code{allow-html?} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:18810
+#: doc/guix.texi:21500
 msgid "Should html be allowed in text messages, user comments, and channel descriptions."
 msgstr "Ob HTML in Textnachrichten, Nutzerkommentaren und Kanalbeschreibungen zugelassen wird."
 
 #. type: item
-#: doc/guix.texi:18811
+#: doc/guix.texi:21501
 #, no-wrap
 msgid "@code{allow-ping?} (default: @code{#f})"
 msgstr "@code{allow-ping?} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:18815
+#: doc/guix.texi:21505
 msgid "Setting to true exposes the current user count, the maximum user count, and the server's maximum bandwidth per client to unauthenticated users. In the Mumble client, this information is shown in the Connect dialog."
 msgstr "Wenn es auf wahr gesetzt ist, wird an nicht angemeldete Anwender die momentane Benutzerzahl, die maximale Benutzerzahl und die maximale Bandbreite pro Benutzer übermittelt. Im Mumble-Client werden diese Informationen im Verbinden-Dialog angezeigt."
 
 #. type: table
-#: doc/guix.texi:18817
+#: doc/guix.texi:21507
 msgid "Disabling this setting will prevent public listing of the server."
 msgstr "Wenn diese Einstellung deaktiviert ist, wird der Server nicht in der öffentlichen Serverliste aufgeführt."
 
 #. type: item
-#: doc/guix.texi:18818
+#: doc/guix.texi:21508
 #, no-wrap
 msgid "@code{bonjour?} (default: @code{#f})"
 msgstr "@code{bonjour?} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:18820
+#: doc/guix.texi:21510
 msgid "Should the server advertise itself in the local network through the bonjour protocol."
 msgstr "Ob der Server im lokalen Netzwerk anderen über das Bonjour-Protokoll mitgeteilt werden soll."
 
 #. type: item
-#: doc/guix.texi:18821
+#: doc/guix.texi:21511
 #, no-wrap
 msgid "@code{send-version?} (default: @code{#f})"
 msgstr "@code{send-version?} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:18823
+#: doc/guix.texi:21513
 msgid "Should the murmur server version be exposed in ping requests."
 msgstr "Ob die Murmur-Serverversion Clients gegenüber in Ping-Anfragen mitgeteilt werden soll."
 
 #. type: item
-#: doc/guix.texi:18824
+#: doc/guix.texi:21514
 #, no-wrap
 msgid "@code{log-days} (default: @code{31})"
 msgstr "@code{log-days} (Vorgabe: @code{31})"
 
 #. type: table
-#: doc/guix.texi:18828
+#: doc/guix.texi:21518
 msgid "Murmur also stores logs in the database, which are accessible via RPC.  The default is 31 days of months, but you can set this setting to 0 to keep logs forever, or -1 to disable logging to the database."
 msgstr "Murmur führt in der Datenbank Protokolle, auf die über entfernte Prozeduraufrufe („Remote Procedure Calls“, kurz RPC) zugegriffen werden kann. Nach Vorgabe bleiben diese 31 Tage lang erhalten, aber sie können diese Einstellung auf 0 setzen, damit sie ewig gespeichert werden, oder auf -1, um @emph{keine} Protokolle in die Datenbank zu schreiben."
 
 #. type: item
-#: doc/guix.texi:18829
+#: doc/guix.texi:21519
 #, no-wrap
 msgid "@code{obfuscate-ips?} (default: @code{#t})"
 msgstr "@code{obfuscate-ips?} (Vorgabe: @code{#t})"
 
 #. type: table
-#: doc/guix.texi:18831
+#: doc/guix.texi:21521
 msgid "Should logged ips be obfuscated to protect the privacy of users."
 msgstr "Ob IP-Adressen in Protokollen anonymisiert werden sollen, um die Privatsphäre von Nutzern zu schützen."
 
 #. type: item
-#: doc/guix.texi:18832
+#: doc/guix.texi:21522
 #, no-wrap
 msgid "@code{ssl-cert} (default: @code{#f})"
 msgstr "@code{ssl-cert} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:18834
+#: doc/guix.texi:21524
 msgid "File name of the SSL/TLS certificate used for encrypted connections."
 msgstr "Der Dateiname des SSL-/TLS-Zertifikats, das für verschlüsselte Verbindungen benutzt werden soll."
 
 #. type: lisp
-#: doc/guix.texi:18837
+#: doc/guix.texi:21527
 #, no-wrap
 msgid "(ssl-cert \"/etc/letsencrypt/live/example.com/fullchain.pem\")\n"
 msgstr "(ssl-cert \"/etc/letsencrypt/live/example.com/fullchain.pem\")\n"
 
 #. type: item
-#: doc/guix.texi:18838
+#: doc/guix.texi:21528
 #, no-wrap
 msgid "@code{ssl-key} (default: @code{#f})"
 msgstr "@code{ssl-key} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:18840
+#: doc/guix.texi:21530
 msgid "Filepath to the ssl private key used for encrypted connections."
 msgstr "Dateipfad zum privaten Schlüssel für SSL, was für verschlüsselte Verbindungen benutzt wird."
 
 #. type: lisp
-#: doc/guix.texi:18842
+#: doc/guix.texi:21532
 #, no-wrap
 msgid "(ssl-key \"/etc/letsencrypt/live/example.com/privkey.pem\")\n"
 msgstr "(ssl-key \"/etc/letsencrypt/live/example.com/privkey.pem\")\n"
 
 #. type: item
-#: doc/guix.texi:18844
+#: doc/guix.texi:21534
 #, no-wrap
 msgid "@code{ssl-dh-params} (default: @code{#f})"
 msgstr "@code{ssl-dh-params} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:18849
+#: doc/guix.texi:21539
 msgid "File name of a PEM-encoded file with Diffie-Hellman parameters for the SSL/TLS encryption.  Alternatively you set it to @code{\"@@ffdhe2048\"}, @code{\"@@ffdhe3072\"}, @code{\"@@ffdhe4096\"}, @code{\"@@ffdhe6144\"} or @code{\"@@ffdhe8192\"} to use bundled parameters from RFC 7919."
 msgstr "Dateiname einer PEM-kodierten Datei mit Diffie-Hellman-Parametern für die SSL-/TLS-Verschlüsselung. Alternativ setzen Sie ihn auf @code{\"@@ffdhe2048\"}, @code{\"@@ffdhe3072\"}, @code{\"@@ffdhe4096\"}, @code{\"@@ffdhe6144\"} oder @code{\"@@ffdhe8192\"}, wodurch die mitgelieferten Parameter aus RFC 7919 genutzt werden."
 
 #. type: item
-#: doc/guix.texi:18850
+#: doc/guix.texi:21540
 #, no-wrap
 msgid "@code{ssl-ciphers} (default: @code{#f})"
 msgstr "@code{ssl-ciphers} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:18853
+#: doc/guix.texi:21543
 msgid "The @code{ssl-ciphers} option chooses the cipher suites to make available for use in SSL/TLS."
 msgstr "Die Option @code{ssl-ciphers} wählt aus, welche Cipher-Suites zur Verwendung in SSL/TLS verfügbar sein sollen."
 
 #. type: table
-#: doc/guix.texi:18857
+#: doc/guix.texi:21547
 msgid "This option is specified using @uref{https://www.openssl.org/docs/apps/ciphers.html#CIPHER-LIST-FORMAT, OpenSSL cipher list notation}."
 msgstr "Diese Option wird in der @uref{https://www.openssl.org/docs/apps/ciphers.html#CIPHER-LIST-FORMAT, OpenSSL-Notation für Cipher-Listen} angegeben."
 
 #. type: table
-#: doc/guix.texi:18862
+#: doc/guix.texi:21552
 msgid "It is recommended that you try your cipher string using 'openssl ciphers <string>' before setting it here, to get a feel for which cipher suites you will get.  After setting this option, it is recommend that you inspect your Murmur log to ensure that Murmur is using the cipher suites that you expected it to."
 msgstr "Es wird empfohlen, dass Sie Ihre Cipher-Zeichenkette mit „openssl ciphers <Zeichenkette>“ prüfen, bevor Sie sie hier einsetzen, um ein Gefühl dafür zu bekommen, was für eine Cipher-Suite sie damit bekommen. Nachdem Sie diese Option festgelegt haben, wird empfohlen, dass Sie Ihr Murmur-Protokoll durchsehen und sicherstellen, dass Murmur auch wirklich die Cipher-Suites benutzt, die Sie erwarten."
 
 #. type: table
-#: doc/guix.texi:18866
+#: doc/guix.texi:21556
 msgid "Note: Changing this option may impact the backwards compatibility of your Murmur server, and can remove the ability for older Mumble clients to be able to connect to it."
 msgstr "Beachten Sie: Änderungen hieran können die Rückwärtskompatibilität Ihres Murmur-Servers beeinträchtigen; dadurch kann es für ältere Mumblie-Clients unmöglich werden, sich damit zu verbinden."
 
 #. type: item
-#: doc/guix.texi:18867
+#: doc/guix.texi:21557
 #, no-wrap
 msgid "@code{public-registration} (default: @code{#f})"
 msgstr "@code{public-registration} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:18869
+#: doc/guix.texi:21559
 msgid "Must be a @code{<murmur-public-registration-configuration>} record or @code{#f}."
 msgstr "Hier muss ein @code{<murmur-public-registration-configuration>}-Verbundsobjekt oder @code{#f} angegeben werden."
 
 #. type: table
-#: doc/guix.texi:18874
+#: doc/guix.texi:21564
 msgid "You can optionally register your server in the public server list that the @code{mumble} client shows on startup.  You cannot register your server if you have set a @code{server-password}, or set @code{allow-ping} to @code{#f}."
 msgstr "Sie können Ihren Server optional in die öffentliche Serverliste eintragen lassen, die der Mumble-Client @code{mumble} beim Start anzeigt. Sie können Ihren Server nicht registrieren, wenn Sie ein @code{server-password} festgelegt oder @code{allow-ping} auf @code{#f} gesetzt haben."
 
 #. type: table
-#: doc/guix.texi:18876
+#: doc/guix.texi:21566
 msgid "It might take a few hours until it shows up in the public list."
 msgstr "Es könnte ein paar Stunden dauern, bis er in der öffentlichen Liste zu finden ist."
 
 #. type: item
-#: doc/guix.texi:18877 doc/guix.texi:20308
+#: doc/guix.texi:21567 doc/guix.texi:22999
 #, no-wrap
 msgid "@code{file} (default: @code{#f})"
 msgstr "@code{file} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:18879
+#: doc/guix.texi:21569
 msgid "Optional alternative override for this configuration."
 msgstr "Optional kann hier eine vorrangig benutzte alternative Konfiguration festgelegt werden."
 
 #. type: deftp
-#: doc/guix.texi:18882
+#: doc/guix.texi:21572
 #, no-wrap
 msgid "{Data Type} murmur-public-registration-configuration"
 msgstr "{Datentyp} murmur-public-registration-configuration"
 
 #. type: deftp
-#: doc/guix.texi:18884
+#: doc/guix.texi:21574
 msgid "Configuration for public registration of a murmur service."
 msgstr "Konfiguration für das öffentliche Registrieren eines Murmur-Dienstes."
 
 #. type: table
-#: doc/guix.texi:18888
+#: doc/guix.texi:21578
 msgid "This is a display name for your server. Not to be confused with the hostname."
 msgstr "Dies ist ein Anzeigename für Ihren Server. Er ist nicht zu verwechseln mit dem Rechnernamen („Hostname“)."
 
 #. type: itemx
-#: doc/guix.texi:18889 doc/guix.texi:26069
+#: doc/guix.texi:21579 doc/guix.texi:30111
 #, no-wrap
 msgid "password"
 msgstr "password"
 
 #. type: table
-#: doc/guix.texi:18892
+#: doc/guix.texi:21582
 msgid "A password to identify your registration.  Subsequent updates will need the same password. Don't lose your password."
 msgstr "Ein Passwort, um Ihre Registrierung zu identifizieren. Nachfolgende Aktualisierungen müssen dasselbe Passwort benutzen. Verlieren Sie Ihr Passwort nicht."
 
-#. type: code{#1}
-#: doc/guix.texi:18893
-#, no-wrap
-msgid "url"
-msgstr "url"
-
 #. type: table
-#: doc/guix.texi:18896
+#: doc/guix.texi:21586
 msgid "This should be a @code{http://} or @code{https://} link to your web site."
 msgstr "Dies sollte ein Link mit @code{http://} oder @code{https://} auf Ihren Webauftritt sein."
 
 #. type: item
-#: doc/guix.texi:18897
+#: doc/guix.texi:21587
 #, no-wrap
 msgid "@code{hostname} (default: @code{#f})"
 msgstr "@code{hostname} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:18900
+#: doc/guix.texi:21590
 msgid "By default your server will be listed by its IP address.  If it is set your server will be linked by this host name instead."
 msgstr "Nach Vorgabe wird Ihr Server über seine IP-Adresse aufgeführt. Wenn dies gesetzt ist, wird er stattdessen mit diesem Rechnernamen verknüpft."
 
 #. type: subsubheading
-#: doc/guix.texi:18908
+#: doc/guix.texi:21598
 #, no-wrap
 msgid "Tailon Service"
 msgstr "Tailon-Dienst"
 
 #. type: Plain text
-#: doc/guix.texi:18912
+#: doc/guix.texi:21602
 msgid "@uref{https://tailon.readthedocs.io/, Tailon} is a web application for viewing and searching log files."
 msgstr "@uref{https://tailon.readthedocs.io/, Tailon} ist eine Web-Anwendung, um Protokolldateien zu betrachten und zu durchsuchen."
 
 #. type: Plain text
-#: doc/guix.texi:18915
+#: doc/guix.texi:21605
 msgid "The following example will configure the service with default values.  By default, Tailon can be accessed on port 8080 (@code{http://localhost:8080})."
 msgstr "Das folgende Beispiel zeigt, wie Sie den Dienst mit den Vorgabewerten konfigurieren. Nach Vorgabe kann auf Tailon auf Port 8080 zugegriffen werden (@code{http://localhost:8080})."
 
 #. type: lisp
-#: doc/guix.texi:18918
+#: doc/guix.texi:21608
 #, no-wrap
 msgid "(service tailon-service-type)\n"
 msgstr "(service tailon-service-type)\n"
 
 #. type: Plain text
-#: doc/guix.texi:18922
+#: doc/guix.texi:21612
 msgid "The following example customises more of the Tailon configuration, adding @command{sed} to the list of allowed commands."
 msgstr "Im folgenden Beispiel werden mehr Anpassungen an der Tailon-Konfiguration vorgenommen: @command{sed} gehört dort auch zur Liste der erlaubten Befehle dazu."
 
 #. type: lisp
-#: doc/guix.texi:18929
+#: doc/guix.texi:21619
 #, no-wrap
 msgid ""
 "(service tailon-service-type\n"
@@ -35611,34 +40187,34 @@ msgstr ""
 "               (allowed-commands '(\"tail\" \"grep\" \"awk\" \"sed\"))))))\n"
 
 #. type: deftp
-#: doc/guix.texi:18932
+#: doc/guix.texi:21622
 #, no-wrap
 msgid "{Data Type} tailon-configuration"
 msgstr "{Datentyp} tailon-configuration"
 
 #. type: deftp
-#: doc/guix.texi:18935
+#: doc/guix.texi:21625
 msgid "Data type representing the configuration of Tailon.  This type has the following parameters:"
 msgstr "Der Datentyp, der die Konfiguration von Tailon repräsentiert. Dieser Typ verfügt über die folgenden Parameter:"
 
 #. type: item
-#: doc/guix.texi:18937
+#: doc/guix.texi:21627
 #, no-wrap
 msgid "@code{config-file} (default: @code{(tailon-configuration-file)})"
 msgstr "@code{config-file} (Vorgabe: @code{(tailon-configuration-file)})"
 
 #. type: table
-#: doc/guix.texi:18941
+#: doc/guix.texi:21631
 msgid "The configuration file to use for Tailon. This can be set to a @dfn{tailon-configuration-file} record value, or any gexp (@pxref{G-Expressions})."
 msgstr "Die Konfigurationsdatei, die für Tailon benutzt werden soll. Als Wert kann ein @dfn{tailon-configuration-file}-Verbundsobjekt oder ein beliebiger G-Ausdruck dienen (siehe @ref{G-Expressions})."
 
 #. type: table
-#: doc/guix.texi:18944
+#: doc/guix.texi:21634
 msgid "For example, to instead use a local file, the @code{local-file} function can be used:"
 msgstr "Um zum Beispiel stattdessen eine lokale Datei zu benutzen, kann von der Funktion @code{local-file} Gebrauch gemacht werden."
 
 #. type: lisp
-#: doc/guix.texi:18949
+#: doc/guix.texi:21639
 #, no-wrap
 msgid ""
 "(service tailon-service-type\n"
@@ -35650,144 +40226,144 @@ msgstr ""
 "           (config-file (local-file \"./my-tailon.conf\"))))\n"
 
 #. type: item
-#: doc/guix.texi:18951
+#: doc/guix.texi:21641
 #, no-wrap
 msgid "@code{package} (default: @code{tailon})"
 msgstr "@code{package} (Vorgabe: @code{tailon})"
 
 #. type: table
-#: doc/guix.texi:18953
+#: doc/guix.texi:21643
 msgid "The tailon package to use."
 msgstr "Das tailon-Paket, das benutzt werden soll."
 
 #. type: deftp
-#: doc/guix.texi:18957
+#: doc/guix.texi:21647
 #, no-wrap
 msgid "{Data Type} tailon-configuration-file"
 msgstr "{Datentyp} tailon-configuration-file"
 
 #. type: deftp
-#: doc/guix.texi:18960
+#: doc/guix.texi:21650
 msgid "Data type representing the configuration options for Tailon.  This type has the following parameters:"
 msgstr "Datentyp, der die Konfigurationsoptionen für Tailon repräsentiert. Dieser Typ verfügt über die folgenden Parameter:"
 
 #. type: item
-#: doc/guix.texi:18962
+#: doc/guix.texi:21652
 #, no-wrap
 msgid "@code{files} (default: @code{(list \"/var/log\")})"
 msgstr "@code{files} (Vorgabe: @code{(list \"/var/log\")})"
 
 #. type: table
-#: doc/guix.texi:18967
+#: doc/guix.texi:21657
 msgid "List of files to display. The list can include strings for a single file or directory, or a list, where the first item is the name of a subsection, and the remaining items are the files or directories in that subsection."
 msgstr "Die Liste der anzuzeigenden Dateien. In der Liste dürfen Zeichenketten stehen, die jeweils für eine einzelne Datei oder ein Verzeichnis stehen, oder auch Listen, deren erstes Element den Namen eines Unterbereichs angibt und deren übrige Elemente die Dateien oder Verzeichnisse in diesem Unterbereich benennen."
 
 #. type: item
-#: doc/guix.texi:18968
+#: doc/guix.texi:21658
 #, no-wrap
 msgid "@code{bind} (default: @code{\"localhost:8080\"})"
 msgstr "@code{bind} (Vorgabe: @code{\"localhost:8080\"})"
 
 #. type: table
-#: doc/guix.texi:18970
+#: doc/guix.texi:21660
 msgid "Address and port to which Tailon should bind on."
 msgstr "Adresse und Port, an die sich Tailon binden soll."
 
 #. type: item
-#: doc/guix.texi:18971
+#: doc/guix.texi:21661
 #, no-wrap
 msgid "@code{relative-root} (default: @code{#f})"
 msgstr "@code{relative-root} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:18973
+#: doc/guix.texi:21663
 msgid "URL path to use for Tailon, set to @code{#f} to not use a path."
 msgstr "Welcher URL-Pfad für Tailon benutzt werden soll. Wenn Sie hierfür @code{#f} angeben, wird kein Pfad benutzt."
 
 #. type: item
-#: doc/guix.texi:18974
+#: doc/guix.texi:21664
 #, no-wrap
 msgid "@code{allow-transfers?} (default: @code{#t})"
 msgstr "@code{allow-transfers?} (Vorgabe: @code{#t})"
 
 #. type: table
-#: doc/guix.texi:18976
+#: doc/guix.texi:21666
 msgid "Allow downloading the log files in the web interface."
 msgstr "Ob es möglich sein soll, die Protokolldateien über die Weboberfläche herunterzuladen."
 
 #. type: item
-#: doc/guix.texi:18977
+#: doc/guix.texi:21667
 #, no-wrap
 msgid "@code{follow-names?} (default: @code{#t})"
 msgstr "@code{follow-names?} (Vorgabe: @code{#t})"
 
 #. type: table
-#: doc/guix.texi:18979
+#: doc/guix.texi:21669
 msgid "Allow tailing of not-yet existent files."
 msgstr "Ob noch nicht existierende Dateien „getailt“ werden können."
 
 #. type: item
-#: doc/guix.texi:18980
+#: doc/guix.texi:21670
 #, no-wrap
 msgid "@code{tail-lines} (default: @code{200})"
 msgstr "@code{tail-lines} (Vorgabe: @code{200})"
 
 #. type: table
-#: doc/guix.texi:18982
+#: doc/guix.texi:21672
 msgid "Number of lines to read initially from each file."
-msgstr "Wieviele Zeilen am Anfang aus jeder Datei gelesen werden."
+msgstr "Wie viele Zeilen am Anfang aus jeder Datei gelesen werden."
 
 #. type: item
-#: doc/guix.texi:18983
+#: doc/guix.texi:21673
 #, no-wrap
 msgid "@code{allowed-commands} (default: @code{(list \"tail\" \"grep\" \"awk\")})"
 msgstr "@code{allowed-commands} (Vorgabe: @code{(list \"tail\" \"grep\" \"awk\")})"
 
 #. type: table
-#: doc/guix.texi:18985
+#: doc/guix.texi:21675
 msgid "Commands to allow running. By default, @code{sed} is disabled."
 msgstr "Welche Befehle ausgeführt werden dürfen. Nach Vorgabe wird @code{sed} @emph{nicht} erlaubt."
 
 #. type: table
-#: doc/guix.texi:18988
+#: doc/guix.texi:21678
 msgid "Set @code{debug?} to @code{#t} to show debug messages."
 msgstr "Legen Sie @code{debug?} als @code{#t} fest, um Nachrichten zur Fehlersuche anzuzeigen."
 
 #. type: item
-#: doc/guix.texi:18989
+#: doc/guix.texi:21679
 #, no-wrap
 msgid "@code{wrap-lines} (default: @code{#t})"
 msgstr "@code{wrap-lines} (Vorgabe: @code{#t})"
 
 #. type: table
-#: doc/guix.texi:18993
+#: doc/guix.texi:21683
 msgid "Initial line wrapping state in the web interface. Set to @code{#t} to initially wrap lines (the default), or to @code{#f} to initially not wrap lines."
 msgstr "Ob lange Zeilen nach der Anfangseinstellung in der Weboberfläche umgebrochen werden sollen. Setzen Sie es auf @code{#t}, werden Zeilen in der Anfangseinstellung umgebrochen (die Vorgabe), bei @code{#f} werden sie anfänglich nicht umgebrochen."
 
 #. type: item
-#: doc/guix.texi:18994
+#: doc/guix.texi:21684
 #, no-wrap
 msgid "@code{http-auth} (default: @code{#f})"
 msgstr "@code{http-auth} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:18998
+#: doc/guix.texi:21688
 msgid "HTTP authentication type to use. Set to @code{#f} to disable authentication (the default). Supported values are @code{\"digest\"} or @code{\"basic\"}."
 msgstr "Welcher HTTP-Authentifizierungstyp benutzt werden soll. Setzen Sie dies auf @code{#f}, damit sich Benutzer nicht authentisieren müssen (die Vorgabe). Unterstützte Werte sind @code{\"digest\"} oder @code{\"basic\"}."
 
 #. type: item
-#: doc/guix.texi:18999
+#: doc/guix.texi:21689
 #, no-wrap
 msgid "@code{users} (default: @code{#f})"
 msgstr "@code{users} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:19004
+#: doc/guix.texi:21694
 msgid "If HTTP authentication is enabled (see @code{http-auth}), access will be restricted to the credentials provided here. To configure users, use a list of pairs, where the first element of the pair is the username, and the 2nd element of the pair is the password."
 msgstr "Wenn HTTP-Authentifizierung aktiviert ist (siehe @code{http-auth}), wird der Zugriff nur gewährt, nachdem die hier angegebenen Zugangsinformationen eingegeben wurden. Um Nutzer hinzuzufügen, geben Sie hier eine Liste von Paaren an, deren erstes Element jeweils der Benutzername und deren zweites Element das Passwort ist."
 
 #. type: lisp
-#: doc/guix.texi:19010
+#: doc/guix.texi:21700
 #, no-wrap
 msgid ""
 "(tailon-configuration-file\n"
@@ -35801,35 +40377,35 @@ msgstr ""
 "               (\"benutzer2\" . \"passwort2\"))))\n"
 
 #. type: subsubheading
-#: doc/guix.texi:19016
+#: doc/guix.texi:21706
 #, no-wrap
 msgid "Darkstat Service"
 msgstr "Darkstat-Dienst"
 
 #. type: cindex
-#: doc/guix.texi:19017
+#: doc/guix.texi:21707
 #, no-wrap
 msgid "darkstat"
 msgstr "darkstat"
 
 #. type: Plain text
-#: doc/guix.texi:19020
+#: doc/guix.texi:21710
 msgid "Darkstat is a packet sniffer that captures network traffic, calculates statistics about usage, and serves reports over HTTP."
 msgstr "Darkstat ist ein Netzwerkanalyseprogramm, das Pakete im Datenverkehr aufzeichnet, Statistiken zur Netzwerknutzung berechnet und über HTTP Berichte dazu bereitstellt."
 
 #. type: defvar
-#: doc/guix.texi:19021
+#: doc/guix.texi:21711
 #, no-wrap
 msgid "{Scheme Variable} darkstat-service-type"
 msgstr "{Scheme-Variable} darkstat-service-type"
 
 #. type: defvar
-#: doc/guix.texi:19026
+#: doc/guix.texi:21716
 msgid "This is the service type for the @uref{https://unix4lyfe.org/darkstat/, darkstat} service, its value must be a @code{darkstat-configuration} record as in this example:"
 msgstr "Dies ist der Diensttyp für den @uref{https://unix4lyfe.org/darkstat/, darkstat-Dienst}. Sein Wert muss ein @code{darkstat-configuration}-Verbundsobjekt sein, wie in diesem Beispiel:"
 
 #. type: lisp
-#: doc/guix.texi:19031
+#: doc/guix.texi:21721
 #, no-wrap
 msgid ""
 "(service darkstat-service-type\n"
@@ -35841,101 +40417,101 @@ msgstr ""
 "           (interface \"eno1\")))\n"
 
 #. type: deftp
-#: doc/guix.texi:19034
+#: doc/guix.texi:21724
 #, no-wrap
 msgid "{Data Type} darkstat-configuration"
 msgstr "{Datentyp} darkstat-configuration"
 
 #. type: deftp
-#: doc/guix.texi:19036
+#: doc/guix.texi:21726
 msgid "Data type representing the configuration of @command{darkstat}."
 msgstr "Datentyp, der die Konfiguration von @command{darkstat} repräsentiert."
 
 #. type: item
-#: doc/guix.texi:19038
+#: doc/guix.texi:21728
 #, no-wrap
 msgid "@code{package} (default: @code{darkstat})"
 msgstr "@code{package} (Vorgabe: @code{darkstat})"
 
 #. type: table
-#: doc/guix.texi:19040
+#: doc/guix.texi:21730
 msgid "The darkstat package to use."
 msgstr "Welches darkstat-Paket verwendet werden soll."
 
 #. type: code{#1}
-#: doc/guix.texi:19041
+#: doc/guix.texi:21731
 #, no-wrap
 msgid "interface"
 msgstr "interface"
 
 #. type: table
-#: doc/guix.texi:19043
+#: doc/guix.texi:21733
 msgid "Capture traffic on the specified network interface."
 msgstr "Datenverkehr an der angegebenen Netzwerkschnittstelle mitschneiden."
 
 #. type: item
-#: doc/guix.texi:19044
+#: doc/guix.texi:21734
 #, no-wrap
 msgid "@code{port} (default: @code{\"667\"})"
 msgstr "@code{port} (Vorgabe: @code{\"667\"})"
 
 #. type: table
-#: doc/guix.texi:19046
+#: doc/guix.texi:21736
 msgid "Bind the web interface to the specified port."
 msgstr "Bindet die Weboberfläche an den angegebenen Port."
 
 #. type: item
-#: doc/guix.texi:19047
+#: doc/guix.texi:21737
 #, no-wrap
 msgid "@code{bind-address} (default: @code{\"127.0.0.1\"})"
 msgstr "@code{bind-address} (Vorgabe: @code{\"127.0.0.1\"})"
 
 #. type: table
-#: doc/guix.texi:19049 doc/guix.texi:19087
+#: doc/guix.texi:21739 doc/guix.texi:21777
 msgid "Bind the web interface to the specified address."
 msgstr "Bindet die Weboberfläche an die angegebene Adresse."
 
 #. type: item
-#: doc/guix.texi:19050
+#: doc/guix.texi:21740
 #, no-wrap
 msgid "@code{base} (default: @code{\"/\"})"
 msgstr "@code{base} (Vorgabe: @code{\"/\"})"
 
 #. type: table
-#: doc/guix.texi:19053
+#: doc/guix.texi:21743
 msgid "Specify the path of the base URL.  This can be useful if @command{darkstat} is accessed via a reverse proxy."
 msgstr "Geben Sie den Pfad der Basis-URL an. Das kann nützlich sein, wenn auf @command{darkstat} über einen inversen Proxy („Reverse Proxy“) zugegriffen wird."
 
 #. type: subsubheading
-#: doc/guix.texi:19057
+#: doc/guix.texi:21747
 #, no-wrap
 msgid "Prometheus Node Exporter Service"
 msgstr "Prometheus-Node-Exporter-Dienst"
 
 #. type: cindex
-#: doc/guix.texi:19059
+#: doc/guix.texi:21749
 #, no-wrap
 msgid "prometheus-node-exporter"
 msgstr "prometheus-node-exporter"
 
 #. type: Plain text
-#: doc/guix.texi:19064
+#: doc/guix.texi:21754
 msgid "The Prometheus ``node exporter'' makes hardware and operating system statistics provided by the Linux kernel available for the Prometheus monitoring system.  This service should be deployed on all physical nodes and virtual machines, where monitoring these statistics is desirable."
 msgstr "Der Prometheus-„Node-Exporter“ stellt Statistiken über Hardware und Betriebssystem für das Prometheus-Systemüberwachungssystem bereit, die vom Linux-Kernel geliefert werden. Dieser Dienst sollte auf allen physischen Netzwerkknoten und virtuellen Maschinen installiert werden, für die eine Überwachung ihrer Statistiken gewünscht wird."
 
 #. type: defvar
-#: doc/guix.texi:19065
+#: doc/guix.texi:21755
 #, no-wrap
 msgid "{Scheme variable} prometheus-node-exporter-service-type"
 msgstr "{Scheme-Variable} prometheus-node-exporter-service-type"
 
 #. type: defvar
-#: doc/guix.texi:19070
+#: doc/guix.texi:21760
 msgid "This is the service type for the @uref{https://github.com/prometheus/node_exporter/, prometheus-node-exporter} service, its value must be a @code{prometheus-node-exporter-configuration} record as in this example:"
 msgstr "Dies ist der Diensttyp für den @uref{https://github.com/prometheus/node_exporter/, „prometheus-node-exporter“-Dienst}. Sein Wert muss ein @code{prometheus-node-exporter-configuration}-Verbundsobjekt wie in diesem Beispiel sein:"
 
 #. type: lisp
-#: doc/guix.texi:19075
+#: doc/guix.texi:21765
 #, no-wrap
 msgid ""
 "(service prometheus-node-exporter-service-type\n"
@@ -35947,609 +40523,609 @@ msgstr ""
 "           (web-listen-address \":9100\")))\n"
 
 #. type: deftp
-#: doc/guix.texi:19078
+#: doc/guix.texi:21768
 #, no-wrap
 msgid "{Data Type} prometheus-node-exporter-configuration"
 msgstr "{Datentyp} prometheus-node-exporter-configuration"
 
 #. type: deftp
-#: doc/guix.texi:19080
+#: doc/guix.texi:21770
 msgid "Data type representing the configuration of @command{node_exporter}."
 msgstr "Repräsentiert die Konfiguration von @command{node_exporter}."
 
 #. type: item
-#: doc/guix.texi:19082
+#: doc/guix.texi:21772
 #, no-wrap
 msgid "@code{package} (default: @code{go-github-com-prometheus-node-exporter})"
 msgstr "@code{package} (Vorgabe: @code{go-github-com-prometheus-node-exporter})"
 
 #. type: table
-#: doc/guix.texi:19084
+#: doc/guix.texi:21774
 msgid "The prometheus-node-exporter package to use."
 msgstr "Das Paket für den prometheus-node-exporter, was benutzt werden soll."
 
 #. type: item
-#: doc/guix.texi:19085
+#: doc/guix.texi:21775
 #, no-wrap
 msgid "@code{web-listen-address} (default: @code{\":9100\"})"
 msgstr "@code{web-listen-address} (Vorgabe: @code{\":9100\"})"
 
 #. type: subsubheading
-#: doc/guix.texi:19091
+#: doc/guix.texi:21781
 #, no-wrap
 msgid "Zabbix server"
 msgstr "Zabbix-Server"
 
 #. type: cindex
-#: doc/guix.texi:19092
+#: doc/guix.texi:21782
 #, no-wrap
 msgid "zabbix zabbix-server"
 msgstr "Zabbix, Zabbix-Server"
 
 #. type: Plain text
-#: doc/guix.texi:19095
+#: doc/guix.texi:21785
 msgid "Zabbix provides monitoring metrics, among others network utilization, CPU load and disk space consumption:"
 msgstr "Zabbix stellt Metriken zur Systemüberwachung zur Verfügung, unter anderem die Netzwerk- und Prozessorauslastung sowie den Plattenplatzverbrauch, und bietet dabei:"
 
 #. type: item
-#: doc/guix.texi:19097
+#: doc/guix.texi:21787
 #, no-wrap
 msgid "High performance, high capacity (able to monitor hundreds of thousands of devices)."
 msgstr "Hohe Leistungsfähigkeit und hohe Kapazität (hunderttausende Geräte können überwacht werden)."
 
 #. type: item
-#: doc/guix.texi:19098
+#: doc/guix.texi:21788
 #, no-wrap
 msgid "Auto-discovery of servers and network devices and interfaces."
 msgstr "Automatische Erkennung von Servern, Netzwerkgeräten und -schnittstellen."
 
 #. type: item
-#: doc/guix.texi:19099
+#: doc/guix.texi:21789
 #, no-wrap
 msgid "Low-level discovery, allows to automatically start monitoring new items, file systems or network interfaces among others."
 msgstr "Systemnahe Erkennung, wodurch automatisch mit der Überwachung neuer Objekte, Dateisysteme, Netzwerkschnittstellen und anderer Dinge begonnen werden kann."
 
 #. type: item
-#: doc/guix.texi:19100
+#: doc/guix.texi:21790
 #, no-wrap
 msgid "Distributed monitoring with centralized web administration."
 msgstr "Verteilte Überwachung mit zentralisierter Web-Administrierbarkeit."
 
 #. type: item
-#: doc/guix.texi:19101
+#: doc/guix.texi:21791
 #, no-wrap
 msgid "Native high performance agents."
 msgstr "Native Hochleistungsagenten."
 
 #. type: item
-#: doc/guix.texi:19102
+#: doc/guix.texi:21792
 #, no-wrap
 msgid "SLA, and ITIL KPI metrics on reporting."
 msgstr "Berichte zum SLA und über ITIL-KPI-Metriken."
 
 #. type: item
-#: doc/guix.texi:19103
+#: doc/guix.texi:21793
 #, no-wrap
 msgid "High-level (business) view of monitored resources through user-defined visual console screens and dashboards."
 msgstr "Überblickssicht (geschäftlich) auf die überwachten Ressourcen über benutzerdefinierte visuelle Konsolenbildschirme und Dashboards."
 
 #. type: item
-#: doc/guix.texi:19104
+#: doc/guix.texi:21794
 #, no-wrap
 msgid "Remote command execution through Zabbix proxies."
 msgstr "Entfernte Befehlsausführung über Zabbix-Proxys."
 
 #. type: Plain text
-#: doc/guix.texi:19110
+#: doc/guix.texi:21800
 msgid "Available @code{zabbix-server-configuration} fields are:"
 msgstr "Verfügbare @code{zabbix-server-configuration}-Felder sind:"
 
 #. type: deftypevr
-#: doc/guix.texi:19111
+#: doc/guix.texi:21801
 #, no-wrap
 msgid "{@code{zabbix-server-configuration} parameter} package zabbix-server"
 msgstr "{@code{zabbix-server-configuration}-Parameter} „package“ zabbix-server"
 
 #. type: deftypevr
-#: doc/guix.texi:19113
+#: doc/guix.texi:21803
 msgid "The zabbix-server package."
 msgstr "Das zabbix-server-Paket."
 
 #. type: deftypevr
-#: doc/guix.texi:19116
+#: doc/guix.texi:21806
 #, no-wrap
 msgid "{@code{zabbix-server-configuration} parameter} string user"
 msgstr "{@code{zabbix-server-configuration}-Parameter} Zeichenkette user"
 
 #. type: deftypevr
-#: doc/guix.texi:19118
+#: doc/guix.texi:21808
 msgid "User who will run the Zabbix server."
 msgstr "Das Benutzerkonto, mit dem der Zabbix-Server ausgeführt wird."
 
 #. type: deftypevr
-#: doc/guix.texi:19120 doc/guix.texi:19127 doc/guix.texi:19141
-#: doc/guix.texi:19148 doc/guix.texi:19249 doc/guix.texi:19256
-#: doc/guix.texi:19367 doc/guix.texi:19374
+#: doc/guix.texi:21810 doc/guix.texi:21817 doc/guix.texi:21831
+#: doc/guix.texi:21838 doc/guix.texi:21939 doc/guix.texi:21946
+#: doc/guix.texi:22057 doc/guix.texi:22064
 msgid "Defaults to @samp{\"zabbix\"}."
 msgstr "Die Vorgabe ist @samp{\"zabbix\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:19123
+#: doc/guix.texi:21813
 #, no-wrap
 msgid "{@code{zabbix-server-configuration} parameter} group group"
 msgstr "{@code{zabbix-server-configuration}-Parameter} Gruppe group"
 
 #. type: deftypevr
-#: doc/guix.texi:19125
+#: doc/guix.texi:21815
 msgid "Group who will run the Zabbix server."
 msgstr "Die Gruppe, mit der der Zabbix-Server ausgeführt wird."
 
 #. type: deftypevr
-#: doc/guix.texi:19130
+#: doc/guix.texi:21820
 #, no-wrap
 msgid "{@code{zabbix-server-configuration} parameter} string db-host"
 msgstr "{@code{zabbix-server-configuration}-Parameter} Zeichenkette db-host"
 
 #. type: deftypevr
-#: doc/guix.texi:19132 doc/guix.texi:19351
+#: doc/guix.texi:21822 doc/guix.texi:22041
 msgid "Database host name."
 msgstr "Rechnername der Datenbank."
 
 #. type: deftypevr
-#: doc/guix.texi:19134
+#: doc/guix.texi:21824
 msgid "Defaults to @samp{\"127.0.0.1\"}."
 msgstr "Die Vorgabe ist @samp{\"127.0.0.1\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:19137
+#: doc/guix.texi:21827
 #, no-wrap
 msgid "{@code{zabbix-server-configuration} parameter} string db-name"
 msgstr "{@code{zabbix-server-configuration}-Parameter} Zeichenkette db-name"
 
 #. type: deftypevr
-#: doc/guix.texi:19139 doc/guix.texi:19365
+#: doc/guix.texi:21829 doc/guix.texi:22055
 msgid "Database name."
 msgstr "Datenbankname."
 
 #. type: deftypevr
-#: doc/guix.texi:19144
+#: doc/guix.texi:21834
 #, no-wrap
 msgid "{@code{zabbix-server-configuration} parameter} string db-user"
 msgstr "{@code{zabbix-server-configuration}-Parameter} Zeichenkette db-user"
 
 #. type: deftypevr
-#: doc/guix.texi:19146 doc/guix.texi:19372
+#: doc/guix.texi:21836 doc/guix.texi:22062
 msgid "Database user."
 msgstr "Benutzerkonto der Datenbank."
 
 #. type: deftypevr
-#: doc/guix.texi:19151
+#: doc/guix.texi:21841
 #, no-wrap
 msgid "{@code{zabbix-server-configuration} parameter} string db-password"
 msgstr "{@code{zabbix-server-configuration}-Parameter} Zeichenkette db-password"
 
 #. type: deftypevr
-#: doc/guix.texi:19154
+#: doc/guix.texi:21844
 msgid "Database password.  Please, use @code{include-files} with @code{DBPassword=SECRET} inside a specified file instead."
 msgstr "Das Datenbankpasswort. Bitte benutzen Sie stattdessen @code{include-files} mit @code{DBPassword=SECRET} in einer angegebenen Datei."
 
 #. type: deftypevr
-#: doc/guix.texi:19159
+#: doc/guix.texi:21849
 #, no-wrap
 msgid "{@code{zabbix-server-configuration} parameter} number db-port"
 msgstr "{@code{zabbix-server-configuration}-Parameter} Zahl db-port"
 
 #. type: deftypevr
-#: doc/guix.texi:19161 doc/guix.texi:19358
+#: doc/guix.texi:21851 doc/guix.texi:22048
 msgid "Database port."
 msgstr "Datenbank-Portnummer."
 
 #. type: deftypevr
-#: doc/guix.texi:19163 doc/guix.texi:19360
+#: doc/guix.texi:21853 doc/guix.texi:22050
 msgid "Defaults to @samp{5432}."
 msgstr "Die Vorgabe ist @samp{5432}."
 
 #. type: deftypevr
-#: doc/guix.texi:19166
+#: doc/guix.texi:21856
 #, no-wrap
 msgid "{@code{zabbix-server-configuration} parameter} string log-type"
 msgstr "{@code{zabbix-server-configuration}-Parameter} Zeichenkette log-type"
 
 #. type: deftypevr
-#: doc/guix.texi:19168 doc/guix.texi:19269
+#: doc/guix.texi:21858 doc/guix.texi:21959
 msgid "Specifies where log messages are written to:"
 msgstr "Gibt an, wohin Protokollnachrichten geschrieben werden."
 
 #. type: itemize
-#: doc/guix.texi:19172 doc/guix.texi:19273
+#: doc/guix.texi:21862 doc/guix.texi:21963
 msgid "@code{system} - syslog."
 msgstr "@code{system} - Syslog."
 
 #. type: itemize
-#: doc/guix.texi:19175 doc/guix.texi:19276
+#: doc/guix.texi:21865 doc/guix.texi:21966
 msgid "@code{file} - file specified with @code{log-file} parameter."
 msgstr "@code{file} - Die im @code{log-file}-Parameter angegebene Datei."
 
 #. type: itemize
-#: doc/guix.texi:19178 doc/guix.texi:19279
+#: doc/guix.texi:21868 doc/guix.texi:21969
 msgid "@code{console} - standard output."
 msgstr "@code{console} - Standardausgabe."
 
 #. type: deftypevr
-#: doc/guix.texi:19185
+#: doc/guix.texi:21875
 #, no-wrap
 msgid "{@code{zabbix-server-configuration} parameter} string log-file"
 msgstr "{@code{zabbix-server-configuration}-Parameter} Zeichenkette log-file"
 
 #. type: deftypevr
-#: doc/guix.texi:19187 doc/guix.texi:19288
+#: doc/guix.texi:21877 doc/guix.texi:21978
 msgid "Log file name for @code{log-type} @code{file} parameter."
 msgstr "Protokolldateiname für den @code{file}-Parameter von @code{log-type}."
 
 #. type: deftypevr
-#: doc/guix.texi:19189
+#: doc/guix.texi:21879
 msgid "Defaults to @samp{\"/var/log/zabbix/server.log\"}."
 msgstr "Die Vorgabe ist @samp{\"/var/log/zabbix/server.log\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:19192
+#: doc/guix.texi:21882
 #, no-wrap
 msgid "{@code{zabbix-server-configuration} parameter} string pid-file"
 msgstr "{@code{zabbix-server-configuration}-Parameter} Zeichenkette pid-file"
 
 #. type: deftypevr
-#: doc/guix.texi:19194 doc/guix.texi:19295
+#: doc/guix.texi:21884 doc/guix.texi:21985
 msgid "Name of PID file."
 msgstr "Name der PID-Datei."
 
 #. type: deftypevr
-#: doc/guix.texi:19196
+#: doc/guix.texi:21886
 msgid "Defaults to @samp{\"/var/run/zabbix/zabbix_server.pid\"}."
 msgstr "Die Vorgabe ist @samp{\"/var/run/zabbix/zabbix_server.pid\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:19199
+#: doc/guix.texi:21889
 #, no-wrap
 msgid "{@code{zabbix-server-configuration} parameter} string ssl-ca-location"
 msgstr "{@code{zabbix-server-configuration}-Parameter} Zeichenkette ssl-ca-location"
 
 #. type: deftypevr
-#: doc/guix.texi:19202
+#: doc/guix.texi:21892
 msgid "The location of certificate authority (CA) files for SSL server certificate verification."
 msgstr "Der Ort mit den Dateien über die Zertifikatsautoritäten (Certificate Authoritys, CAs) zur Prüfung der SSL-Serverzertifikate."
 
 #. type: deftypevr
-#: doc/guix.texi:19204
+#: doc/guix.texi:21894
 msgid "Defaults to @samp{\"/etc/ssl/certs/ca-certificates.crt\"}."
 msgstr "Die Vorgabe ist @samp{\"/etc/ssl/certs/ca-certificates.crt\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:19207
+#: doc/guix.texi:21897
 #, no-wrap
 msgid "{@code{zabbix-server-configuration} parameter} string ssl-cert-location"
 msgstr "{@code{zabbix-server-configuration}-Parameter} Zeichenkette ssl-cert-location"
 
 #. type: deftypevr
-#: doc/guix.texi:19209
+#: doc/guix.texi:21899
 msgid "Location of SSL client certificates."
 msgstr "Der Ort mit den SSL-Client-Zertifikaten."
 
 #. type: deftypevr
-#: doc/guix.texi:19211
+#: doc/guix.texi:21901
 msgid "Defaults to @samp{\"/etc/ssl/certs\"}."
 msgstr "Die Vorgabe ist @samp{\"/etc/ssl/certs\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:19214
+#: doc/guix.texi:21904
 #, no-wrap
 msgid "{@code{zabbix-server-configuration} parameter} string extra-options"
 msgstr "{@code{zabbix-server-configuration}-Parameter} Zeichenkette extra-options"
 
 #. type: deftypevr
-#: doc/guix.texi:19216 doc/guix.texi:19320
+#: doc/guix.texi:21906 doc/guix.texi:22010
 msgid "Extra options will be appended to Zabbix server configuration file."
 msgstr "Zusätzliche Optionen werden an die Zabbix-Server-Konfigurationsdatei angehängt."
 
 #. type: deftypevr
-#: doc/guix.texi:19221
+#: doc/guix.texi:21911
 #, no-wrap
 msgid "{@code{zabbix-server-configuration} parameter} include-files include-files"
 msgstr "{@code{zabbix-server-configuration}-Parameter} Einzubindende-Dateien include-files"
 
 #. type: deftypevr
-#: doc/guix.texi:19224 doc/guix.texi:19328
+#: doc/guix.texi:21914 doc/guix.texi:22018
 msgid "You may include individual files or all files in a directory in the configuration file."
 msgstr "Sie können einzelne Dateien oder alle Dateien in einem Verzeichnis in die Konfigurationsdatei einbinden."
 
 #. type: subsubheading
-#: doc/guix.texi:19231
+#: doc/guix.texi:21921
 #, no-wrap
 msgid "Zabbix agent"
 msgstr "Zabbix-Agent"
 
 #. type: cindex
-#: doc/guix.texi:19232
+#: doc/guix.texi:21922
 #, no-wrap
 msgid "zabbix zabbix-agent"
 msgstr "Zabbix, Zabbix-Agent"
 
 #. type: Plain text
-#: doc/guix.texi:19235
+#: doc/guix.texi:21925
 msgid "Zabbix agent gathers information for Zabbix server."
 msgstr "Der Zabbix-Agent sammelt Informationen für den Zabbix-Server."
 
 #. type: Plain text
-#: doc/guix.texi:19239
+#: doc/guix.texi:21929
 msgid "Available @code{zabbix-agent-configuration} fields are:"
 msgstr "Verfügbare @code{zabbix-agent-configuration}-Felder sind:"
 
 #. type: deftypevr
-#: doc/guix.texi:19240
+#: doc/guix.texi:21930
 #, no-wrap
 msgid "{@code{zabbix-agent-configuration} parameter} package zabbix-agent"
 msgstr "{@code{zabbix-agent-configuration}-Parameter} „package“ zabbix-agent"
 
 #. type: deftypevr
-#: doc/guix.texi:19242
+#: doc/guix.texi:21932
 msgid "The zabbix-agent package."
 msgstr "Das zabbix-agent-Paket."
 
 #. type: deftypevr
-#: doc/guix.texi:19245
+#: doc/guix.texi:21935
 #, no-wrap
 msgid "{@code{zabbix-agent-configuration} parameter} string user"
 msgstr "{@code{zabbix-agent-configuration}-Parameter} Zeichenkette user"
 
 #. type: deftypevr
-#: doc/guix.texi:19247
+#: doc/guix.texi:21937
 msgid "User who will run the Zabbix agent."
 msgstr "Das Benutzerkonto, mit dem der Zabbix-Agent ausgeführt wird."
 
 #. type: deftypevr
-#: doc/guix.texi:19252
+#: doc/guix.texi:21942
 #, no-wrap
 msgid "{@code{zabbix-agent-configuration} parameter} group group"
 msgstr "{@code{zabbix-agent-configuration}-Parameter} Gruppe group"
 
 #. type: deftypevr
-#: doc/guix.texi:19254
+#: doc/guix.texi:21944
 msgid "Group who will run the Zabbix agent."
 msgstr "Die Gruppe, mit der der Zabbix-Agent ausgeführt wird."
 
 #. type: deftypevr
-#: doc/guix.texi:19259
+#: doc/guix.texi:21949
 #, no-wrap
 msgid "{@code{zabbix-agent-configuration} parameter} string hostname"
 msgstr "{@code{zabbix-agent-configuration}-Parameter} Zeichenkette hostname"
 
 #. type: deftypevr
-#: doc/guix.texi:19262
+#: doc/guix.texi:21952
 msgid "Unique, case sensitive hostname which is required for active checks and must match hostname as configured on the server."
 msgstr "Der eindeutige Rechnername in richtiger Groß-/Kleinschreibung, der für aktive Überprüfungen benötigt wird und dem im Server eingestellten Rechnernamen entsprechen muss."
 
 #. type: deftypevr
-#: doc/guix.texi:19264
+#: doc/guix.texi:21954
 msgid "Defaults to @samp{\"Zabbix server\"}."
 msgstr "Die Vorgabe ist @samp{\"Zabbix server\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:19267
+#: doc/guix.texi:21957
 #, no-wrap
 msgid "{@code{zabbix-agent-configuration} parameter} string log-type"
 msgstr "{@code{zabbix-agent-configuration}-Parameter} Zeichenkette log-type"
 
 #. type: deftypevr
-#: doc/guix.texi:19286
+#: doc/guix.texi:21976
 #, no-wrap
 msgid "{@code{zabbix-agent-configuration} parameter} string log-file"
 msgstr "{@code{zabbix-agent-configuration}-Parameter} Zeichenkette log-file"
 
 #. type: deftypevr
-#: doc/guix.texi:19290
+#: doc/guix.texi:21980
 msgid "Defaults to @samp{\"/var/log/zabbix/agent.log\"}."
 msgstr "Die Vorgabe ist @samp{\"/var/log/zabbix/agent.log\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:19293
+#: doc/guix.texi:21983
 #, no-wrap
 msgid "{@code{zabbix-agent-configuration} parameter} string pid-file"
 msgstr "{@code{zabbix-agent-configuration}-Parameter} Zeichenkette pid-file"
 
 #. type: deftypevr
-#: doc/guix.texi:19297
+#: doc/guix.texi:21987
 msgid "Defaults to @samp{\"/var/run/zabbix/zabbix_agent.pid\"}."
 msgstr "Die Vorgabe ist @samp{\"/var/run/zabbix/zabbix_agent.pid\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:19300
+#: doc/guix.texi:21990
 #, no-wrap
 msgid "{@code{zabbix-agent-configuration} parameter} list server"
 msgstr "{@code{zabbix-agent-configuration}-Parameter} Liste server"
 
 #. type: deftypevr
-#: doc/guix.texi:19304
+#: doc/guix.texi:21994
 msgid "List of IP addresses, optionally in CIDR notation, or hostnames of Zabbix servers and Zabbix proxies.  Incoming connections will be accepted only from the hosts listed here."
 msgstr "Die Liste der IP-Adressen, optional in CIDR-Notation angegeben, oder die Rechnernamen von Zabbix-Servern und Zabbix-Proxys. Eingehende Verbindungen werden nur dann angenommen, wenn sie von hier angegebenen Rechnern stammen."
 
 #. type: deftypevr
-#: doc/guix.texi:19306 doc/guix.texi:19315
+#: doc/guix.texi:21996 doc/guix.texi:22005
 msgid "Defaults to @samp{(\"127.0.0.1\")}."
 msgstr "Die Vorgabe ist @samp{(\"127.0.0.1\")}."
 
 #. type: deftypevr
-#: doc/guix.texi:19309
+#: doc/guix.texi:21999
 #, no-wrap
 msgid "{@code{zabbix-agent-configuration} parameter} list server-active"
 msgstr "{@code{zabbix-agent-configuration}-Parameter} Liste server-active"
 
 #. type: deftypevr
-#: doc/guix.texi:19313
+#: doc/guix.texi:22003
 msgid "List of IP:port (or hostname:port) pairs of Zabbix servers and Zabbix proxies for active checks.  If port is not specified, default port is used.  If this parameter is not specified, active checks are disabled."
 msgstr "Die Liste aus IP:Port-Paaren (oder Rechnername:Port-Paaren) von Zabbix-Servern und Zabbix-Proxys für aktive Überprüfungen. Wenn kein Port angegeben wurde, wird der Vorgabeport benutzt. Wenn dieser Parameter @emph{nicht} angegeben wird, werden aktive Überprüfungen deaktiviert."
 
 #. type: deftypevr
-#: doc/guix.texi:19318
+#: doc/guix.texi:22008
 #, no-wrap
 msgid "{@code{zabbix-agent-configuration} parameter} string extra-options"
 msgstr "{@code{zabbix-agent-configuration}-Parameter} Zeichenkette extra-options"
 
 #. type: deftypevr
-#: doc/guix.texi:19325
+#: doc/guix.texi:22015
 #, no-wrap
 msgid "{@code{zabbix-agent-configuration} parameter} include-files include-files"
 msgstr "{@code{zabbix-agent-configuration}-Parameter} Einzubindende-Dateien include-files"
 
 #. type: subsubheading
-#: doc/guix.texi:19335
+#: doc/guix.texi:22025
 #, no-wrap
 msgid "Zabbix front-end"
 msgstr "Zabbix-Frontend"
 
 #. type: cindex
-#: doc/guix.texi:19336
+#: doc/guix.texi:22026
 #, no-wrap
 msgid "zabbix zabbix-front-end"
 msgstr "Zabbix, Zabbix-Frontend"
 
 #. type: Plain text
-#: doc/guix.texi:19339
+#: doc/guix.texi:22029
 msgid "This service provides a WEB interface to Zabbix server."
 msgstr "Dieser Dienst stellt eine Weboberfläche als Vordergrundsystem (@dfn{Frontend}) für den Zabbix-Server zur Verfügung."
 
 #. type: Plain text
-#: doc/guix.texi:19343
+#: doc/guix.texi:22033
 msgid "Available @code{zabbix-front-end-configuration} fields are:"
 msgstr "Verfügbare @code{zabbix-front-end-configuration}-Felder sind:"
 
 #. type: deftypevr
-#: doc/guix.texi:19344
+#: doc/guix.texi:22034
 #, no-wrap
 msgid "{@code{zabbix-front-end-configuration} parameter} nginx-server-configuration-list nginx"
 msgstr "{@code{zabbix-front-end-configuration}-Parameter} „nginx-server-configuration“-Liste nginx"
 
 #. type: deftypevr
-#: doc/guix.texi:19346 doc/guix.texi:24202
+#: doc/guix.texi:22036 doc/guix.texi:27895
 msgid "NGINX configuration."
 msgstr "NGINX-Konfiguration."
 
 #. type: deftypevr
-#: doc/guix.texi:19349
+#: doc/guix.texi:22039
 #, no-wrap
 msgid "{@code{zabbix-front-end-configuration} parameter} string db-host"
 msgstr "{@code{zabbix-front-end-configuration}-Parameter} Zeichenkette db-host"
 
 #. type: deftypevr
-#: doc/guix.texi:19356
+#: doc/guix.texi:22046
 #, no-wrap
 msgid "{@code{zabbix-front-end-configuration} parameter} number db-port"
 msgstr "{@code{zabbix-front-end-configuration}-Parameter} Zahl db-port"
 
 #. type: deftypevr
-#: doc/guix.texi:19363
+#: doc/guix.texi:22053
 #, no-wrap
 msgid "{@code{zabbix-front-end-configuration} parameter} string db-name"
 msgstr "{@code{zabbix-front-end-configuration}-Parameter} Zeichenkette db-name"
 
 #. type: deftypevr
-#: doc/guix.texi:19370
+#: doc/guix.texi:22060
 #, no-wrap
 msgid "{@code{zabbix-front-end-configuration} parameter} string db-user"
 msgstr "{@code{zabbix-front-end-configuration}-Parameter} Zeichenkette db-user"
 
 #. type: deftypevr
-#: doc/guix.texi:19377
+#: doc/guix.texi:22067
 #, no-wrap
 msgid "{@code{zabbix-front-end-configuration} parameter} string db-password"
 msgstr "{@code{zabbix-front-end-configuration}-Parameter} Zeichenkette db-password"
 
 #. type: deftypevr
-#: doc/guix.texi:19379
+#: doc/guix.texi:22069
 msgid "Database password.  Please, use @code{db-secret-file} instead."
 msgstr "Das Datenbankpasswort. Bitte benutzen Sie stattdessen @code{db-secret-file}."
 
 #. type: deftypevr
-#: doc/guix.texi:19384
+#: doc/guix.texi:22074
 #, no-wrap
 msgid "{@code{zabbix-front-end-configuration} parameter} string db-secret-file"
 msgstr "{@code{zabbix-front-end-configuration}-Parameter} Zeichenkette db-secret-file"
 
 #. type: deftypevr
-#: doc/guix.texi:19388
+#: doc/guix.texi:22078
 msgid "Secret file which will be appended to @file{zabbix.conf.php} file.  This file contains credentials for use by Zabbix front-end.  You are expected to create it manually."
 msgstr "Die Datei mit den Geheimnis-Informationen, die an die @file{zabbix.conf.php}-Datei angehängt wird. Diese Datei enthält Zugangsdaten für die Nutzung durch das Zabbix-Frontend. Es wird von Ihnen erwartet, dass Sie sie manuell erzeugen."
 
 #. type: deftypevr
-#: doc/guix.texi:19393
+#: doc/guix.texi:22083
 #, no-wrap
 msgid "{@code{zabbix-front-end-configuration} parameter} string zabbix-host"
 msgstr "{@code{zabbix-front-end-configuration}-Parameter} Zeichenkette zabbix-host"
 
 #. type: deftypevr
-#: doc/guix.texi:19395
+#: doc/guix.texi:22085
 msgid "Zabbix server hostname."
 msgstr "Zabbix-Server-Rechnername."
 
 #. type: deftypevr
-#: doc/guix.texi:19400
+#: doc/guix.texi:22090
 #, no-wrap
 msgid "{@code{zabbix-front-end-configuration} parameter} number zabbix-port"
 msgstr "{@code{zabbix-front-end-configuration}-Parameter} Zahl zabbix-port"
 
 #. type: deftypevr
-#: doc/guix.texi:19402
+#: doc/guix.texi:22092
 msgid "Zabbix server port."
 msgstr "Zabbix-Server-Port."
 
 #. type: deftypevr
-#: doc/guix.texi:19404
+#: doc/guix.texi:22094
 msgid "Defaults to @samp{10051}."
 msgstr "Die Vorgabe ist @samp{10051}."
 
 #. type: cindex
-#: doc/guix.texi:19412
+#: doc/guix.texi:22102
 #, no-wrap
 msgid "Kerberos"
 msgstr "Kerberos"
 
 #. type: Plain text
-#: doc/guix.texi:19416
+#: doc/guix.texi:22106
 msgid "The @code{(gnu services kerberos)} module provides services relating to the authentication protocol @dfn{Kerberos}."
 msgstr "Das @code{(gnu services kerberos)}-Modul stellt Dienste zur Verfügung, die mit dem Authentifizierungsprotokoll @dfn{Kerberos} zu tun haben."
 
 #. type: subsubheading
-#: doc/guix.texi:19417
+#: doc/guix.texi:22107
 #, no-wrap
 msgid "Krb5 Service"
 msgstr "Krb5-Dienst"
 
 #. type: Plain text
-#: doc/guix.texi:19424
+#: doc/guix.texi:22114
 msgid "Programs using a Kerberos client library normally expect a configuration file in @file{/etc/krb5.conf}.  This service generates such a file from a definition provided in the operating system declaration.  It does not cause any daemon to be started."
 msgstr "Programme, die eine Kerberos-Clientbibliothek benutzen, erwarten meist, dass sich eine Konfigurationsdatei in @file{/etc/krb5.conf} befindet. Dieser Dienst erzeugt eine solche Datei aus einer Definition, die in der Betriebssystemdeklaration angegebenen wurde. Durch ihn wird kein Daemon gestartet."
 
 #. type: Plain text
-#: doc/guix.texi:19428
+#: doc/guix.texi:22118
 msgid "No ``keytab'' files are provided by this service---you must explicitly create them.  This service is known to work with the MIT client library, @code{mit-krb5}.  Other implementations have not been tested."
 msgstr "Keine „Schlüsseltabellen“-Dateien werden durch diesen Dienst zur Verfügung gestellt — Sie müssen sie ausdrücklich selbst anlegen. Dieser Dienst funktioniert bekanntermaßen mit der MIT-Clientbibliothek @code{mit-krb5}. Andere Implementierungen wurden nicht getestet."
 
 #. type: defvr
-#: doc/guix.texi:19429
+#: doc/guix.texi:22119
 #, no-wrap
 msgid "{Scheme Variable} krb5-service-type"
 msgstr "{Scheme-Variable} krb5-service-type"
 
 #. type: defvr
-#: doc/guix.texi:19431
+#: doc/guix.texi:22121
 msgid "A service type for Kerberos 5 clients."
 msgstr "Ein Diensttyp für Kerberos-5-Clients."
 
 #. type: Plain text
-#: doc/guix.texi:19435
+#: doc/guix.texi:22125
 msgid "Here is an example of its use:"
 msgstr "Hier ist ein Beispiel, wie man ihn benutzt:"
 
 #. type: lisp
-#: doc/guix.texi:19449
+#: doc/guix.texi:22139
 #, no-wrap
 msgid ""
 "(service krb5-service-type\n"
@@ -36581,206 +41157,206 @@ msgstr ""
 "                    (kdc \"keys.argrx.edu\"))))))\n"
 
 #. type: Plain text
-#: doc/guix.texi:19453
+#: doc/guix.texi:22143
 msgid "This example provides a Kerberos@tie{}5 client configuration which:"
 msgstr "Dieses Beispiel stellt eine Client-Konfiguration für Kerberos@tie{}5 zur Verfügung, mit der:"
 
 #. type: item
-#: doc/guix.texi:19454
+#: doc/guix.texi:22144
 #, no-wrap
 msgid "Recognizes two realms, @i{viz:} ``EXAMPLE.COM'' and ``ARGRX.EDU'', both"
 msgstr "Zwei Administrationsbereiche erkannt werden, nämlich: „EXAMPLE.COM“"
 
 #. type: itemize
-#: doc/guix.texi:19456
+#: doc/guix.texi:22146
 msgid "of which have distinct administration servers and key distribution centers;"
 msgstr "und „ARGRX.EDU“, die beide verschiedene Administrationsserver und Schlüsselverteilungszentren haben,"
 
 #. type: item
-#: doc/guix.texi:19456
+#: doc/guix.texi:22146
 #, no-wrap
 msgid "Will default to the realm ``EXAMPLE.COM'' if the realm is not explicitly"
 msgstr "als Vorgabe der Administrationsbereich „EXAMPLE.COM“ verwendet wird,"
 
 #. type: itemize
-#: doc/guix.texi:19458
+#: doc/guix.texi:22148
 msgid "specified by clients;"
 msgstr "falls der Administrationsbereich von Clients nicht ausdrücklich angegeben wurde, und"
 
 #. type: item
-#: doc/guix.texi:19458
+#: doc/guix.texi:22148
 #, no-wrap
 msgid "Accepts services which only support encryption types known to be weak."
 msgstr "auch Dienste angenommen werden, die nur Verschlüsselungstypen unterstützen, die bekanntermaßen schwach sind."
 
 #. type: Plain text
-#: doc/guix.texi:19466
+#: doc/guix.texi:22156
 msgid "The @code{krb5-realm} and @code{krb5-configuration} types have many fields.  Only the most commonly used ones are described here.  For a full list, and more detailed explanation of each, see the MIT @uref{https://web.mit.edu/kerberos/krb5-devel/doc/admin/conf_files/krb5_conf.html,,krb5.conf} documentation."
 msgstr "Die Typen @code{krb5-realm} und @code{krb5-configuration} haben viele Felder. Hier werden nur die am häufigsten benutzten beschrieben. Eine vollständige Liste und jeweils detailliertere Erklärungen finden Sie in der Dokumentation von @uref{https://web.mit.edu/kerberos/krb5-devel/doc/admin/conf_files/krb5_conf.html,,krb5.conf} vom MIT."
 
 #. type: deftp
-#: doc/guix.texi:19468
+#: doc/guix.texi:22158
 #, no-wrap
 msgid "{Data Type} krb5-realm"
 msgstr "{Datentyp} krb5-realm"
 
 #. type: cindex
-#: doc/guix.texi:19469
+#: doc/guix.texi:22159
 #, no-wrap
 msgid "realm, kerberos"
 msgstr "Administrationsbereich, Kerberos"
 
 #. type: table
-#: doc/guix.texi:19475
+#: doc/guix.texi:22165
 msgid "This field is a string identifying the name of the realm.  A common convention is to use the fully qualified DNS name of your organization, converted to upper case."
 msgstr "Dieses Feld enthält eine Zeichenkette, die den Namen des Administrationsbereichs bezeichnet. Üblich ist, den vollständigen DNS-Namen („Fully Qualified DNS Name“) Ihrer Organisation nur in Großbuchstaben zu benutzen."
 
 #. type: code{#1}
-#: doc/guix.texi:19476
+#: doc/guix.texi:22166
 #, no-wrap
 msgid "admin-server"
 msgstr "admin-server"
 
 #. type: table
-#: doc/guix.texi:19479
+#: doc/guix.texi:22169
 msgid "This field is a string identifying the host where the administration server is running."
 msgstr "Dieses Feld enthält eine Zeichenkette, die den Rechner benennt, auf dem der Administrationsserver läuft."
 
 #. type: code{#1}
-#: doc/guix.texi:19480
+#: doc/guix.texi:22170
 #, no-wrap
 msgid "kdc"
 msgstr "kdc"
 
 #. type: table
-#: doc/guix.texi:19483
+#: doc/guix.texi:22173
 msgid "This field is a string identifying the key distribution center for the realm."
 msgstr "Dieses Feld enthält eine Zeichenkette, die das Schlüsselverteilungszentrum für den Administrationsbereich angibt."
 
 #. type: deftp
-#: doc/guix.texi:19486
+#: doc/guix.texi:22176
 #, no-wrap
 msgid "{Data Type} krb5-configuration"
 msgstr "{Datentyp} krb5-configuration"
 
 #. type: item
-#: doc/guix.texi:19489
+#: doc/guix.texi:22179
 #, no-wrap
 msgid "@code{allow-weak-crypto?} (default: @code{#f})"
 msgstr "@code{allow-weak-crypto?} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:19492
+#: doc/guix.texi:22182
 msgid "If this flag is @code{#t} then services which only offer encryption algorithms known to be weak will be accepted."
 msgstr "Wenn diese Option auf @code{#t} gesetzt ist, werden auch Dienste akzeptiert, die nur Verschlüsselungsalgorithmen anbieten, die bekanntermaßen schwach sind."
 
 #. type: item
-#: doc/guix.texi:19493
+#: doc/guix.texi:22183
 #, no-wrap
 msgid "@code{default-realm} (default: @code{#f})"
 msgstr "@code{default-realm} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:19500
+#: doc/guix.texi:22190
 msgid "This field should be a string identifying the default Kerberos realm for the client.  You should set this field to the name of your Kerberos realm.  If this value is @code{#f} then a realm must be specified with every Kerberos principal when invoking programs such as @command{kinit}."
 msgstr "Dieses Feld sollte eine Zeichenkette enthalten, die den voreingestellten Kerberos-Administrationsbereich für den Client angibt. Sie sollten in diesem Feld den Namen Ihres Kerberos-Administrationsbereichs eintragen. Wenn der Wert @code{#f} ist, dann muss ein Administrationsbereich mit jedem Kerberos-Prinzipal zusammen angegeben werden, wenn Programme wie @command{kinit} aufgerufen werden."
 
 #. type: code{#1}
-#: doc/guix.texi:19501
+#: doc/guix.texi:22191
 #, no-wrap
 msgid "realms"
 msgstr "realms"
 
 #. type: table
-#: doc/guix.texi:19506
+#: doc/guix.texi:22196
 msgid "This should be a non-empty list of @code{krb5-realm} objects, which clients may access.  Normally, one of them will have a @code{name} field matching the @code{default-realm} field."
 msgstr "Hierin sollte eine nichtleere Liste von je einem @code{krb5-realm}-Objekt pro Administrationsbereich stehen, auf den Clients zugreifen können. Normalerweise hat einer davon ein @code{name}-Feld, das mit dem @code{default-realm}-Feld übereinstimmt."
 
 #. type: subsubheading
-#: doc/guix.texi:19510
+#: doc/guix.texi:22200
 #, no-wrap
 msgid "PAM krb5 Service"
 msgstr "PAM-krb5-Dienst"
 
 #. type: cindex
-#: doc/guix.texi:19511
+#: doc/guix.texi:22201
 #, no-wrap
 msgid "pam-krb5"
 msgstr "pam-krb5"
 
 #. type: Plain text
-#: doc/guix.texi:19517
+#: doc/guix.texi:22207
 msgid "The @code{pam-krb5} service allows for login authentication and password management via Kerberos.  You will need this service if you want PAM enabled applications to authenticate users using Kerberos."
 msgstr "Der @code{pam-krb5}-Dienst ermöglicht es, bei der Anmeldung und Passwortverwaltung Benutzer über Kerberos zu authentifizieren. Sie brauchen diesen Dienst, damit Anwendungen, die PAM benutzen können, Nutzer über Kerberos authentifizieren können."
 
 #. type: defvr
-#: doc/guix.texi:19518
+#: doc/guix.texi:22208
 #, no-wrap
 msgid "{Scheme Variable} pam-krb5-service-type"
 msgstr "{Scheme-Variable} pam-krb5-service-type"
 
 #. type: defvr
-#: doc/guix.texi:19520
+#: doc/guix.texi:22210
 msgid "A service type for the Kerberos 5 PAM module."
 msgstr "Ein Diensttyp für das PAM-Modul zu Kerberos@tie{}5."
 
 #. type: deftp
-#: doc/guix.texi:19522
+#: doc/guix.texi:22212
 #, no-wrap
 msgid "{Data Type} pam-krb5-configuration"
 msgstr "{Datentyp} pam-krb5-configuration"
 
 #. type: deftp
-#: doc/guix.texi:19525
+#: doc/guix.texi:22215
 msgid "Data type representing the configuration of the Kerberos 5 PAM module.  This type has the following parameters:"
 msgstr "Der Datentyp, der die Konfiguration des PAM-Moduls für Kerberos 5 repräsentiert. Dieser Typ hat die folgenden Parameter:"
 
 #. type: item
-#: doc/guix.texi:19526
+#: doc/guix.texi:22216
 #, no-wrap
 msgid "@code{pam-krb5} (default: @code{pam-krb5})"
 msgstr "@code{pam-krb5} (Vorgabe: @code{pam-krb5})"
 
 #. type: table
-#: doc/guix.texi:19528
+#: doc/guix.texi:22218
 msgid "The pam-krb5 package to use."
 msgstr "Das pam-krb5-Paket, das benutzt werden soll."
 
 #. type: item
-#: doc/guix.texi:19529
+#: doc/guix.texi:22219
 #, no-wrap
 msgid "@code{minimum-uid} (default: @code{1000})"
 msgstr "@code{minimum-uid} (Vorgabe: @code{1000})"
 
 #. type: table
-#: doc/guix.texi:19532
+#: doc/guix.texi:22222
 msgid "The smallest user ID for which Kerberos authentications should be attempted.  Local accounts with lower values will silently fail to authenticate."
 msgstr "Der kleinste Benutzeridentifikator (UID), für den Authentifizierung über Kerberos versucht werden soll. Lokale Benutzerkonten mit niedrigeren Zahlwerten können sich nicht authentisieren und bekommen dazu keine Meldung angezeigt."
 
 #. type: cindex
-#: doc/guix.texi:19538
+#: doc/guix.texi:22228
 #, no-wrap
 msgid "LDAP"
 msgstr "LDAP"
 
 #. type: cindex
-#: doc/guix.texi:19539
+#: doc/guix.texi:22229
 #, no-wrap
 msgid "nslcd, LDAP service"
 msgstr "nslcd, LDAP-Dienst"
 
 #. type: Plain text
-#: doc/guix.texi:19546
+#: doc/guix.texi:22236
 msgid "The @code{(gnu services authentication)} module provides the @code{nslcd-service-type}, which can be used to authenticate against an LDAP server.  In addition to configuring the service itself, you may want to add @code{ldap} as a name service to the Name Service Switch. @xref{Name Service Switch} for detailed information."
 msgstr "Das Modul @code{(gnu services authentication)} stellt den Diensttyp @code{nslcd-service-type} zur Verfügung, mit dem sich Benutzer gegenüber einem LDAP-Server authentisieren können. Sie möchten dabei wahrscheinlich nicht nur den Dienst konfigurieren, sondern auch @code{ldap} als einen Namensdienst („Name Service“) für den Name Service Switch hinzufügen. Siehe @ref{Name Service Switch} für Details."
 
 #. type: Plain text
-#: doc/guix.texi:19550
+#: doc/guix.texi:22240
 msgid "Here is a simple operating system declaration with a default configuration of the @code{nslcd-service-type} and a Name Service Switch configuration that consults the @code{ldap} name service last:"
 msgstr "Hier ist ein Beispiel für eine einfache Betriebssystemdeklaration mit einer der Vorgabe entsprechenden Konfiguration des @code{nslcd-service-type} und einer Konfiguration des Name Service Switch, die den @code{ldap}-Namensdienst zuletzt prüft:"
 
 #. type: lisp
-#: doc/guix.texi:19573
+#: doc/guix.texi:22263
 #, no-wrap
 msgid ""
 "(use-service-modules authentication)\n"
@@ -36828,671 +41404,671 @@ msgstr ""
 "      (gshadow  services)))))\n"
 
 #. type: Plain text
-#: doc/guix.texi:19578
+#: doc/guix.texi:22268
 msgid "Available @code{nslcd-configuration} fields are:"
 msgstr "Verfügbare @code{nslcd-configuration}-Felder sind:"
 
 #. type: deftypevr
-#: doc/guix.texi:19579
+#: doc/guix.texi:22269
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} package nss-pam-ldapd"
 msgstr "{@code{nslcd-configuration}-Parameter} „package“ nss-pam-ldapd"
 
 #. type: deftypevr
-#: doc/guix.texi:19581
+#: doc/guix.texi:22271
 msgid "The @code{nss-pam-ldapd} package to use."
 msgstr "Das @code{nss-pam-ldapd}-Paket, was benutzt werden soll."
 
 #. type: deftypevr
-#: doc/guix.texi:19584
+#: doc/guix.texi:22274
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-number threads"
 msgstr "{@code{nslcd-configuration}-Parameter} Vielleicht-Zahl threads"
 
 #. type: deftypevr
-#: doc/guix.texi:19588
+#: doc/guix.texi:22278
 msgid "The number of threads to start that can handle requests and perform LDAP queries.  Each thread opens a separate connection to the LDAP server.  The default is to start 5 threads."
 msgstr "Die Anzahl zu startender Threads, die Anfragen bearbeiten und LDAP-Abfragen durchführen können. Jeder Thread öffnet eine separate Verbindung zum LDAP-Server. Die Vorgabe ist, 5 Threads zu starten."
 
 #. type: deftypevr
-#: doc/guix.texi:19590 doc/guix.texi:19632 doc/guix.texi:19640
-#: doc/guix.texi:19648 doc/guix.texi:19656 doc/guix.texi:19665
-#: doc/guix.texi:19673 doc/guix.texi:19680 doc/guix.texi:19688
-#: doc/guix.texi:19696 doc/guix.texi:19706 doc/guix.texi:19713
-#: doc/guix.texi:19737 doc/guix.texi:19745 doc/guix.texi:19771
-#: doc/guix.texi:19780 doc/guix.texi:19789 doc/guix.texi:19798
-#: doc/guix.texi:19807 doc/guix.texi:19816 doc/guix.texi:19824
-#: doc/guix.texi:19832 doc/guix.texi:19839 doc/guix.texi:19847
-#: doc/guix.texi:19854 doc/guix.texi:19862 doc/guix.texi:19870
-#: doc/guix.texi:19879 doc/guix.texi:19888 doc/guix.texi:19896
-#: doc/guix.texi:19904 doc/guix.texi:19912 doc/guix.texi:19923
-#: doc/guix.texi:19933 doc/guix.texi:19944 doc/guix.texi:19953
-#: doc/guix.texi:19963 doc/guix.texi:19971 doc/guix.texi:19982
-#: doc/guix.texi:19991 doc/guix.texi:20001 doc/guix.texi:22685
-#: doc/guix.texi:22692 doc/guix.texi:22699 doc/guix.texi:22706
-#: doc/guix.texi:22713 doc/guix.texi:22720 doc/guix.texi:22728
-#: doc/guix.texi:22736 doc/guix.texi:22743 doc/guix.texi:22750
-#: doc/guix.texi:22757 doc/guix.texi:22764 doc/guix.texi:22794
-#: doc/guix.texi:22832 doc/guix.texi:22839 doc/guix.texi:22848
-#: doc/guix.texi:22870 doc/guix.texi:22878 doc/guix.texi:22885
-#: doc/guix.texi:23040 doc/guix.texi:23060 doc/guix.texi:23075
-#: doc/guix.texi:23082 doc/guix.texi:24940 doc/guix.texi:24948
-#: doc/guix.texi:24956 doc/guix.texi:24964 doc/guix.texi:24972
-#: doc/guix.texi:24980
+#: doc/guix.texi:22280 doc/guix.texi:22323 doc/guix.texi:22331
+#: doc/guix.texi:22339 doc/guix.texi:22347 doc/guix.texi:22356
+#: doc/guix.texi:22364 doc/guix.texi:22371 doc/guix.texi:22379
+#: doc/guix.texi:22387 doc/guix.texi:22397 doc/guix.texi:22404
+#: doc/guix.texi:22428 doc/guix.texi:22436 doc/guix.texi:22462
+#: doc/guix.texi:22471 doc/guix.texi:22480 doc/guix.texi:22489
+#: doc/guix.texi:22498 doc/guix.texi:22507 doc/guix.texi:22515
+#: doc/guix.texi:22523 doc/guix.texi:22530 doc/guix.texi:22538
+#: doc/guix.texi:22545 doc/guix.texi:22553 doc/guix.texi:22561
+#: doc/guix.texi:22570 doc/guix.texi:22579 doc/guix.texi:22587
+#: doc/guix.texi:22595 doc/guix.texi:22603 doc/guix.texi:22614
+#: doc/guix.texi:22624 doc/guix.texi:22635 doc/guix.texi:22644
+#: doc/guix.texi:22654 doc/guix.texi:22662 doc/guix.texi:22673
+#: doc/guix.texi:22682 doc/guix.texi:22692 doc/guix.texi:25545
+#: doc/guix.texi:25552 doc/guix.texi:25559 doc/guix.texi:25566
+#: doc/guix.texi:25573 doc/guix.texi:25580 doc/guix.texi:25588
+#: doc/guix.texi:25596 doc/guix.texi:25603 doc/guix.texi:25610
+#: doc/guix.texi:25617 doc/guix.texi:25624 doc/guix.texi:25654
+#: doc/guix.texi:25692 doc/guix.texi:25699 doc/guix.texi:25708
+#: doc/guix.texi:25730 doc/guix.texi:25738 doc/guix.texi:25745
+#: doc/guix.texi:25900 doc/guix.texi:25920 doc/guix.texi:25935
+#: doc/guix.texi:25942 doc/guix.texi:28633 doc/guix.texi:28641
+#: doc/guix.texi:28649 doc/guix.texi:28657 doc/guix.texi:28665
+#: doc/guix.texi:28673
 msgid "Defaults to @samp{disabled}."
 msgstr "Der Vorgabewert ist @samp{disabled} (d.h.@: deaktiviert)."
 
 #. type: deftypevr
-#: doc/guix.texi:19593
+#: doc/guix.texi:22283
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} string uid"
 msgstr "{@code{nslcd-configuration}-Parameter} Zeichenkette uid"
 
 #. type: deftypevr
-#: doc/guix.texi:19595
+#: doc/guix.texi:22285
 msgid "This specifies the user id with which the daemon should be run."
 msgstr "Gibt den Benutzeridentifikator an, unter dem der Daemon ausgeführt werden soll."
 
 #. type: deftypevr
-#: doc/guix.texi:19597 doc/guix.texi:19604
+#: doc/guix.texi:22287 doc/guix.texi:22294
 msgid "Defaults to @samp{\"nslcd\"}."
 msgstr "Die Vorgabe ist @samp{\"nslcd\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:19600
+#: doc/guix.texi:22290
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} string gid"
 msgstr "{@code{nslcd-configuration}-Parameter} Zeichenkette gid"
 
 #. type: deftypevr
-#: doc/guix.texi:19602
+#: doc/guix.texi:22292
 msgid "This specifies the group id with which the daemon should be run."
 msgstr "Gibt den Gruppenidentifikator an, unter dem der Daemon ausgeführt werden soll."
 
 #. type: deftypevr
-#: doc/guix.texi:19607
+#: doc/guix.texi:22297
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} log-option log"
 msgstr "{@code{nslcd-configuration}-Parameter} Protokolleinstellung log"
 
 #. type: deftypevr
-#: doc/guix.texi:19614
-msgid "This option controls the way logging is done via a list containing SCHEME and LEVEL.  The SCHEME argument may either be the symbols \"none\" or \"syslog\", or an absolute file name.  The LEVEL argument is optional and specifies the log level.  The log level may be one of the following symbols: \"crit\", \"error\", \"warning\", \"notice\", \"info\" or \"debug\".  All messages with the specified log level or higher are logged."
-msgstr "Diese Einstellung steuert über eine Liste aus SCHEMA und STUFE, wie protokolliert wird. Als SCHEMA-Argument darf entweder eines der Symbole \"none\" (keines) oder \"syslog\" angegeben werden oder ein absoluter Dateiname. Das Argument STUFE ist optional und legt die Protokollierungsstufe fest. Die Protokollierungsstufe kann als eines der folgenden Symbole angegeben werden: \"crit\" (kritisch), \"error\" (Fehler), \"warning\" (Warnung), \"notice\" (Benachrichtigung), \"info\" (Information) oder \"debug\" (Fehlersuche). Alle Mitteilungen mit der angegebenen Protokollierungsstufe oder einer höheren werden protokolliert."
+#: doc/guix.texi:22305
+msgid "This option controls the way logging is done via a list containing SCHEME and LEVEL.  The SCHEME argument may either be the symbols @samp{none} or @samp{syslog}, or an absolute file name.  The LEVEL argument is optional and specifies the log level.  The log level may be one of the following symbols: @samp{crit}, @samp{error}, @samp{warning}, @samp{notice}, @samp{info} or @samp{debug}.  All messages with the specified log level or higher are logged."
+msgstr "Diese Einstellung steuert über eine Liste aus SCHEMA und STUFE, wie protokolliert wird. Als SCHEMA-Argument darf entweder eines der Symbole @samp{none} (keines) oder @samp{syslog} angegeben werden oder ein absoluter Dateiname. Das Argument STUFE ist optional und legt die Protokollierungsstufe fest. Die Protokollierungsstufe kann als eines der folgenden Symbole angegeben werden: @samp{crit} (kritisch), @samp{error} (Fehler), @samp{warning} (Warnung), @samp{notice} (Benachrichtigung), @samp{info} (Information) oder @samp{debug} (Fehlersuche). Alle Mitteilungen mit der angegebenen Protokollierungsstufe oder einer höheren werden protokolliert."
 
 #. type: deftypevr
-#: doc/guix.texi:19616
+#: doc/guix.texi:22307
 msgid "Defaults to @samp{(\"/var/log/nslcd\" info)}."
 msgstr "Die Vorgabe ist @samp{(\"/var/log/nslcd\" info)}."
 
 #. type: deftypevr
-#: doc/guix.texi:19619
+#: doc/guix.texi:22310
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} list uri"
 msgstr "{@code{nslcd-configuration}-Parameter} Liste uri"
 
 #. type: deftypevr
-#: doc/guix.texi:19622
+#: doc/guix.texi:22313
 msgid "The list of LDAP server URIs.  Normally, only the first server will be used with the following servers as fall-back."
 msgstr "Die Liste der LDAP-Server-URIs. Normalerweise wird nur der erste Server benutzt; nachfolgende Server dienen als Ersatz."
 
 #. type: deftypevr
-#: doc/guix.texi:19624
+#: doc/guix.texi:22315
 msgid "Defaults to @samp{(\"ldap://localhost:389/\")}."
 msgstr "Die Vorgabe ist @samp{(\"ldap://localhost:389/\")}."
 
 #. type: deftypevr
-#: doc/guix.texi:19627
+#: doc/guix.texi:22318
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-string ldap-version"
 msgstr "{@code{nslcd-configuration}-Parameter} Vielleicht-Zeichenkette ldap-version"
 
 #. type: deftypevr
-#: doc/guix.texi:19630
+#: doc/guix.texi:22321
 msgid "The version of the LDAP protocol to use.  The default is to use the maximum version supported by the LDAP library."
 msgstr "Die zu benutzende Version des LDAP-Protokolls. Nach Vorgabe wird die höchste Version benutzt, die von der LDAP-Bibliothek unterstützt wird."
 
 #. type: deftypevr
-#: doc/guix.texi:19635
+#: doc/guix.texi:22326
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-string binddn"
 msgstr "{@code{nslcd-configuration}-Parameter} Vielleicht-Zeichenkette binddn"
 
 #. type: deftypevr
-#: doc/guix.texi:19638
+#: doc/guix.texi:22329
 msgid "Specifies the distinguished name with which to bind to the directory server for lookups.  The default is to bind anonymously."
 msgstr "Gibt den „Distinguished Name“ an, der an den Verzeichnisserver („Directory Server“) gebunden wird, um Einträge aufzulösen. Nach Vorgabe wird anonym gebunden."
 
 #. type: deftypevr
-#: doc/guix.texi:19643
+#: doc/guix.texi:22334
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-string bindpw"
 msgstr "{@code{nslcd-configuration}-Parameter} Vielleicht-Zeichenkette bindpw"
 
 #. type: deftypevr
-#: doc/guix.texi:19646
+#: doc/guix.texi:22337
 msgid "Specifies the credentials with which to bind.  This option is only applicable when used with binddn."
 msgstr "Gibt die Zugangsinformationen an, mit denen gebunden wird. Diese Einstellung ist nur dann wirksam, wenn sie mit binddn benutzt wird."
 
 #. type: deftypevr
-#: doc/guix.texi:19651
+#: doc/guix.texi:22342
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-string rootpwmoddn"
 msgstr "{@code{nslcd-configuration}-Parameter} Vielleicht-Zeichenkette rootpwmoddn"
 
 #. type: deftypevr
-#: doc/guix.texi:19654
+#: doc/guix.texi:22345
 msgid "Specifies the distinguished name to use when the root user tries to modify a user's password using the PAM module."
 msgstr "Gibt den „Distinguished Name“ an, der benutzt wird, wenn der Administratornutzer „root“ versucht, das Passwort eines Benutzers mit Hilfe des PAM-Moduls zu verändern."
 
 #. type: deftypevr
-#: doc/guix.texi:19659
+#: doc/guix.texi:22350
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-string rootpwmodpw"
 msgstr "{@code{nslcd-configuration}-Parameter} Vielleicht-Zeichenkette rootpwmodpw"
 
 #. type: deftypevr
-#: doc/guix.texi:19663
+#: doc/guix.texi:22354
 msgid "Specifies the credentials with which to bind if the root user tries to change a user's password.  This option is only applicable when used with rootpwmoddn"
 msgstr "Gibt die Zugangsinformationen an, die benutzt werden, wenn der Administratornutzer „root“ versucht, das Passwort eines Benutzers zu verändern. Diese Einstellung ist nur dann wirksam, wenn sie mit rootpwmoddn benutzt wird."
 
 #. type: deftypevr
-#: doc/guix.texi:19668
+#: doc/guix.texi:22359
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-string sasl-mech"
 msgstr "{@code{nslcd-configuration}-Parameter} Vielleicht-Zeichenkette sasl-mech"
 
 #. type: deftypevr
-#: doc/guix.texi:19671
+#: doc/guix.texi:22362
 msgid "Specifies the SASL mechanism to be used when performing SASL authentication."
 msgstr "Gibt an, welcher SASL-Mechanismus benutzt werden soll, um Authentifizierung über SASL durchzuführen."
 
 #. type: deftypevr
-#: doc/guix.texi:19676
+#: doc/guix.texi:22367
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-string sasl-realm"
 msgstr "{@code{nslcd-configuration}-Parameter} Vielleicht-Zeichenkette sasl-realm"
 
 #. type: deftypevr
-#: doc/guix.texi:19678
+#: doc/guix.texi:22369
 msgid "Specifies the SASL realm to be used when performing SASL authentication."
 msgstr "Gibt den SASL-Administrationsbereich an, um Authentifizierungen über SASL durchzuführen."
 
 #. type: deftypevr
-#: doc/guix.texi:19683
+#: doc/guix.texi:22374
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-string sasl-authcid"
 msgstr "{@code{nslcd-configuration}-Parameter} Vielleicht-Zeichenkette sasl-authcid"
 
 #. type: deftypevr
-#: doc/guix.texi:19686
+#: doc/guix.texi:22377
 msgid "Specifies the authentication identity to be used when performing SASL authentication."
 msgstr "Gibt die Authentisierungsidentität an, um Authentifizierungen über SASL durchzuführen."
 
 #. type: deftypevr
-#: doc/guix.texi:19691
+#: doc/guix.texi:22382
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-string sasl-authzid"
 msgstr "{@code{nslcd-configuration}-Parameter} Vielleicht-Zeichenkette sasl-authzid"
 
 #. type: deftypevr
-#: doc/guix.texi:19694
+#: doc/guix.texi:22385
 msgid "Specifies the authorization identity to be used when performing SASL authentication."
 msgstr "Gibt die Autorisierungsidentität an, um Authentifizierungen über SASL durchzuführen."
 
 #. type: deftypevr
-#: doc/guix.texi:19699
+#: doc/guix.texi:22390
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-boolean sasl-canonicalize?"
 msgstr "{@code{nslcd-configuration}-Parameter} Vielleicht-Boolescher-Ausdruck sasl-canonicalize?"
 
 #. type: deftypevr
-#: doc/guix.texi:19704
+#: doc/guix.texi:22395
 msgid "Determines whether the LDAP server host name should be canonicalised.  If this is enabled the LDAP library will do a reverse host name lookup.  By default, it is left up to the LDAP library whether this check is performed or not."
 msgstr "Legt fest, ob der kanonische Rechnername („Hostname“) des LDAP-Servers ermittelt werden soll. Wenn ja, wird die LDAP-Bibliothek eine inverse Auflösung („Reverse Lookup“) des Rechnernamens durchführen. Die Vorgabe ist, es der LDAP-Bibliothek zu überlassen, ob eine solche Überprüfung durchgeführt wird."
 
 #. type: deftypevr
-#: doc/guix.texi:19709
+#: doc/guix.texi:22400
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-string krb5-ccname"
 msgstr "{@code{nslcd-configuration}-Parameter} Vielleicht-Zeichenkette krb5-ccname"
 
 #. type: deftypevr
-#: doc/guix.texi:19711
+#: doc/guix.texi:22402
 msgid "Set the name for the GSS-API Kerberos credentials cache."
 msgstr "Legt den Namen für den Zwischenspeicher der GSS-API-Kerberos-Zugangsdaten fest."
 
 #. type: deftypevr
-#: doc/guix.texi:19716
+#: doc/guix.texi:22407
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} string base"
 msgstr "{@code{nslcd-configuration}-Parameter} Zeichenkette base"
 
 #. type: deftypevr
-#: doc/guix.texi:19718
+#: doc/guix.texi:22409
 msgid "The directory search base."
 msgstr "Basis für die Verzeichnissuche."
 
 #. type: deftypevr
-#: doc/guix.texi:19720
+#: doc/guix.texi:22411
 msgid "Defaults to @samp{\"dc=example,dc=com\"}."
 msgstr "Vorgegeben ist @samp{\"dc=example,dc=com\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:19723
+#: doc/guix.texi:22414
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} scope-option scope"
 msgstr "{@code{nslcd-configuration}-Parameter} Suchbereichs-Einstellung scope"
 
 #. type: deftypevr
-#: doc/guix.texi:19727
+#: doc/guix.texi:22418
 msgid "Specifies the search scope (subtree, onelevel, base or children).  The default scope is subtree; base scope is almost never useful for name service lookups; children scope is not supported on all servers."
 msgstr "Legt den Suchbereich fest als subtree (Teilbaum), onelevel (eine Ebene), base (Basis) oder children (Kinder). Die Vorgabe für den Suchbereich ist subtree; base ist fast nie geeignet für Namensdienstauflösungen; children wird nicht auf allen Servern unterstützt."
 
 #. type: deftypevr
-#: doc/guix.texi:19729
+#: doc/guix.texi:22420
 msgid "Defaults to @samp{(subtree)}."
 msgstr "Die Vorgabe ist @samp{(subtree)}."
 
 #. type: deftypevr
-#: doc/guix.texi:19732
+#: doc/guix.texi:22423
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-deref-option deref"
 msgstr "{@code{nslcd-configuration}-Parameter} Vielleicht-Deref-Einstellung deref"
 
 #. type: deftypevr
-#: doc/guix.texi:19735
+#: doc/guix.texi:22426
 msgid "Specifies the policy for dereferencing aliases.  The default policy is to never dereference aliases."
 msgstr "Legt die Richtlinie für das Dereferenzieren von Alias-Namen fest. Die vorgegebene Richtlinie ist, Alias-Namen niemals zu dereferenzieren."
 
 #. type: deftypevr
-#: doc/guix.texi:19740
+#: doc/guix.texi:22431
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-boolean referrals"
 msgstr "{@code{nslcd-configuration}-Parameter} Vielleicht-Boolescher-Ausdruck referrals"
 
 #. type: deftypevr
-#: doc/guix.texi:19743
+#: doc/guix.texi:22434
 msgid "Specifies whether automatic referral chasing should be enabled.  The default behaviour is to chase referrals."
 msgstr "Gibt an, ob Verweise („Referrals“) automatisch verfolgt werden sollen. Das vorgegebene Verhalten ist, sie zu verfolgen."
 
 #. type: deftypevr
-#: doc/guix.texi:19748
+#: doc/guix.texi:22439
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} list-of-map-entries maps"
 msgstr "{@code{nslcd-configuration}-Parameter} Liste-von-Abbildungseinträgen maps"
 
 #. type: deftypevr
-#: doc/guix.texi:19753
+#: doc/guix.texi:22444
 msgid "This option allows for custom attributes to be looked up instead of the default RFC 2307 attributes.  It is a list of maps, each consisting of the name of a map, the RFC 2307 attribute to match and the query expression for the attribute as it is available in the directory."
 msgstr "Diese Option ermöglicht es, eigene Attribute bei der Auflösung anstelle der vorgegebenen RFC-2307-Attribute zu verwenden. Es ist eine Liste von Abbildungen („Maps“), von denen jede aus dem Namen der Abbildung, dem abzubildenden RFC-2307-Attribut und einem Anfrageausdruck besteht, mit dem es anhand des Verzeichnisses aufgelöst wird."
 
 #. type: deftypevr
-#: doc/guix.texi:19758
+#: doc/guix.texi:22449
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} list-of-filter-entries filters"
 msgstr "{@code{nslcd-configuration}-Parameter} Liste-von-Filtereinträgen filters"
 
 #. type: deftypevr
-#: doc/guix.texi:19761
+#: doc/guix.texi:22452
 msgid "A list of filters consisting of the name of a map to which the filter applies and an LDAP search filter expression."
 msgstr "Eine Liste von Filtern, von denen jeder aus dem Namen einer Abbildung, auf die sich der Filter auswirkt, und einem LDAP-Suchfilter-Ausdruck besteht."
 
 #. type: deftypevr
-#: doc/guix.texi:19766
+#: doc/guix.texi:22457
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-number bind-timelimit"
 msgstr "{@code{nslcd-configuration}-Parameter} Vielleicht-Zahl bind-timelimit"
 
 #. type: deftypevr
-#: doc/guix.texi:19769
+#: doc/guix.texi:22460
 msgid "Specifies the time limit in seconds to use when connecting to the directory server.  The default value is 10 seconds."
 msgstr "Gibt die Zeitbeschränkung in Sekunden an, wie lange eine Verbindung zum Verzeichnisserver dauern darf. Die Vorgabe ist 10 Sekunden."
 
 #. type: deftypevr
-#: doc/guix.texi:19774
+#: doc/guix.texi:22465
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-number timelimit"
 msgstr "{@code{nslcd-configuration}-Parameter} Vielleicht-Zahl timelimit"
 
 #. type: deftypevr
-#: doc/guix.texi:19778
+#: doc/guix.texi:22469
 msgid "Specifies the time limit (in seconds) to wait for a response from the LDAP server.  A value of zero, which is the default, is to wait indefinitely for searches to be completed."
 msgstr "Gibt die Zeitbeschränkung (in Sekunden) an, wie lange auf eine Antwort vom LDAP-Server gewartet wird. Ein Wert von null, was die Vorgabe ist, bewirkt, dass beliebig lange gewartet wird, bis Suchen abgeschlossen sind."
 
 #. type: deftypevr
-#: doc/guix.texi:19783
+#: doc/guix.texi:22474
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-number idle-timelimit"
 msgstr "{@code{nslcd-configuration}-Parameter} Vielleicht-Zahl idle-timelimit"
 
 #. type: deftypevr
-#: doc/guix.texi:19787
+#: doc/guix.texi:22478
 msgid "Specifies the period if inactivity (in seconds) after which the con‐ nection to the LDAP server will be closed.  The default is not to time out connections."
 msgstr "Gibt an, wie lange bei Inaktivität gewartet wird (in Sekunden), bis die Verbindung zum LDAP-Server geschlossen wird. Die Vorgabe ist, dass es zu keiner Zeitüberschreitung bei Verbindungen kommen kann."
 
 #. type: deftypevr
-#: doc/guix.texi:19792
+#: doc/guix.texi:22483
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-number reconnect-sleeptime"
 msgstr "{@code{nslcd-configuration}-Parameter} Vielleicht-Zahl reconnect-sleeptime"
 
 #. type: deftypevr
-#: doc/guix.texi:19796
+#: doc/guix.texi:22487
 msgid "Specifies the number of seconds to sleep when connecting to all LDAP servers fails.  By default one second is waited between the first failure and the first retry."
 msgstr "Gibt die Anzahl an Sekunden an, wie lange „schlafend“ gewartet wird, wenn zu @emph{keinem} LDAP-Server eine Verbindung hergestellt werden kann. Die Vorgabe ist, zwischen dem ersten Fehlversuch und dem ersten neuen Versuch 1@tie{}Sekunde zu warten."
 
 #. type: deftypevr
-#: doc/guix.texi:19801
+#: doc/guix.texi:22492
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-number reconnect-retrytime"
 msgstr "{@code{nslcd-configuration}-Parameter} Vielleicht-Zahl reconnect-retrytime"
 
 #. type: deftypevr
-#: doc/guix.texi:19805
+#: doc/guix.texi:22496
 msgid "Specifies the time after which the LDAP server is considered to be permanently unavailable.  Once this time is reached retries will be done only once per this time period.  The default value is 10 seconds."
-msgstr "Gibt an, nach wieviel Zeit der LDAP-Server als dauerhaft nicht verfügbar angesehen wird. Sobald dieser Fall eintritt, wird eine Verbindungsaufnahme nur noch einmal pro weiterem Ablauf dieser Zeitperiode versucht. Der Vorgabewert beträgt 10@tie{}Sekunden."
+msgstr "Gibt an, nach wie viel Zeit der LDAP-Server als dauerhaft nicht verfügbar angesehen wird. Sobald dieser Fall eintritt, wird eine Verbindungsaufnahme nur noch einmal pro weiterem Ablauf dieser Zeitperiode versucht. Der Vorgabewert beträgt 10@tie{}Sekunden."
 
 #. type: deftypevr
-#: doc/guix.texi:19810
+#: doc/guix.texi:22501
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-ssl-option ssl"
 msgstr "{@code{nslcd-configuration}-Parameter} Vielleicht-SSL-Einstellung ssl"
 
 #. type: deftypevr
-#: doc/guix.texi:19814
+#: doc/guix.texi:22505
 msgid "Specifies whether to use SSL/TLS or not (the default is not to).  If 'start-tls is specified then StartTLS is used rather than raw LDAP over SSL."
 msgstr "Gibt an, ob SSL/TLS benutzt werden soll oder nicht (die Vorgabe ist, es @emph{nicht} zu benutzen). Wenn 'start-tls angegeben wird, dann wird StartTLS statt schlichtem LDAP über SSL benutzt."
 
 #. type: deftypevr
-#: doc/guix.texi:19819
+#: doc/guix.texi:22510
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-tls-reqcert-option tls-reqcert"
 msgstr "{@code{nslcd-configuration}-Parameter} Vielleicht-„tls-reqcert“-Einstellung tls-reqcert"
 
 #. type: deftypevr
-#: doc/guix.texi:19822
+#: doc/guix.texi:22513
 msgid "Specifies what checks to perform on a server-supplied certificate.  The meaning of the values is described in the ldap.conf(5) manual page."
 msgstr "Gibt an, welche Überprüfungen auf einem vom Server empfangenen Zertifikat durchgeführt werden sollen. Die Bedeutung der Werte wird auf der Handbuchseite zu ldap.conf(5) beschrieben."
 
 #. type: deftypevr
-#: doc/guix.texi:19827
+#: doc/guix.texi:22518
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-string tls-cacertdir"
 msgstr "{@code{nslcd-configuration}-Parameter} Vielleicht-Zeichenkette tls-cacertdir"
 
 #. type: deftypevr
-#: doc/guix.texi:19830
+#: doc/guix.texi:22521
 msgid "Specifies the directory containing X.509 certificates for peer authen‐ tication.  This parameter is ignored when using GnuTLS."
 msgstr "Gibt das Verzeichnis an, das X.509-Zertifikate zur Authentifikation von Kommunikationspartnern enthält. Dieser Parameter wird ignoriert, wenn Sie GnuTLS benutzen lassen."
 
 #. type: deftypevr
-#: doc/guix.texi:19835
+#: doc/guix.texi:22526
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-string tls-cacertfile"
 msgstr "{@code{nslcd-configuration}-Parameter} Vielleicht-Zeichenkette tls-cacertfile"
 
 #. type: deftypevr
-#: doc/guix.texi:19837
+#: doc/guix.texi:22528
 msgid "Specifies the path to the X.509 certificate for peer authentication."
 msgstr "Gibt den Dateipfad zu dem X.509-Zertifikat zur Authentifikation von Kommunikationspartnern an."
 
 #. type: deftypevr
-#: doc/guix.texi:19842
+#: doc/guix.texi:22533
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-string tls-randfile"
 msgstr "{@code{nslcd-configuration}-Parameter} Vielleicht-Zeichenkette tls-randfile"
 
 #. type: deftypevr
-#: doc/guix.texi:19845
+#: doc/guix.texi:22536
 msgid "Specifies the path to an entropy source.  This parameter is ignored when using GnuTLS."
 msgstr "Gibt den Pfad zu einer Entropiequelle an. Dieser Parameter wird ignoriert, wenn Sie GnuTLS benutzen lassen."
 
 #. type: deftypevr
-#: doc/guix.texi:19850
+#: doc/guix.texi:22541
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-string tls-ciphers"
 msgstr "{@code{nslcd-configuration}-Parameter} Vielleicht-Zeichenkette tls-ciphers"
 
 #. type: deftypevr
-#: doc/guix.texi:19852
+#: doc/guix.texi:22543
 msgid "Specifies the ciphers to use for TLS as a string."
 msgstr "Gibt als eine Zeichenkette an, welche Ciphers für TLS benutzt werden sollen."
 
 #. type: deftypevr
-#: doc/guix.texi:19857
+#: doc/guix.texi:22548
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-string tls-cert"
 msgstr "{@code{nslcd-configuration}-Parameter} Vielleicht-Zeichenkette tls-cert"
 
 #. type: deftypevr
-#: doc/guix.texi:19860
+#: doc/guix.texi:22551
 msgid "Specifies the path to the file containing the local certificate for client TLS authentication."
 msgstr "Gibt den Pfad zu der Datei an, die das lokale Zertifikat zur TLS-Authentisierung als Client enthält."
 
 #. type: deftypevr
-#: doc/guix.texi:19865
+#: doc/guix.texi:22556
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-string tls-key"
 msgstr "{@code{nslcd-configuration}-Parameter} Vielleicht-Zeichenkette tls-key"
 
 #. type: deftypevr
-#: doc/guix.texi:19868
+#: doc/guix.texi:22559
 msgid "Specifies the path to the file containing the private key for client TLS authentication."
 msgstr "Gibt den Pfad zu der Datei an, die den privaten Schlüssel zur TLS-Authentisierung als Client enthält."
 
 #. type: deftypevr
-#: doc/guix.texi:19873
+#: doc/guix.texi:22564
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-number pagesize"
 msgstr "{@code{nslcd-configuration}-Parameter} Vielleicht-Zahl pagesize"
 
 #. type: deftypevr
-#: doc/guix.texi:19877
+#: doc/guix.texi:22568
 msgid "Set this to a number greater than 0 to request paged results from the LDAP server in accordance with RFC2696.  The default (0) is to not request paged results."
 msgstr "Geben Sie hier eine Zahl größer als 0 an, um beim LDAP-Server seitenweise Antworten anzufordern, entsprechend RFC2696. Die Vorgabe (0) fordert alle Ergebnisse auf einmal an."
 
 #. type: deftypevr
-#: doc/guix.texi:19882
+#: doc/guix.texi:22573
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-ignore-users-option nss-initgroups-ignoreusers"
 msgstr "{@code{nslcd-configuration}-Parameter} Vielleicht-„ignore-users“-Einstellung nss-initgroups-ignoreusers"
 
 #. type: deftypevr
-#: doc/guix.texi:19886
+#: doc/guix.texi:22577
 msgid "This option prevents group membership lookups through LDAP for the specified users.  Alternatively, the value 'all-local may be used.  With that value nslcd builds a full list of non-LDAP users on startup."
 msgstr "Diese Einstellung verhindert, dass für die angegebenen Benutzer die Gruppenmitgliedschaft über LDAP aufgelöst wird. Alternativ kann der Wert 'all-local verwendet werden. Für diesen Wert erzeugt nslcd eine vollständige Liste aller Nicht-LDAP-Benutzer, wenn es startet."
 
 #. type: deftypevr
-#: doc/guix.texi:19891
+#: doc/guix.texi:22582
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-number nss-min-uid"
 msgstr "{@code{nslcd-configuration}-Parameter} Vielleicht-Zahl nss-min-uid"
 
 #. type: deftypevr
-#: doc/guix.texi:19894
+#: doc/guix.texi:22585
 msgid "This option ensures that LDAP users with a numeric user id lower than the specified value are ignored."
 msgstr "Diese Einstellung lässt sicherstellen, dass LDAP-Benutzer, deren numerischer Benutzeridentifikator kleiner als der angegebene Wert ist, ignoriert werden."
 
 #. type: deftypevr
-#: doc/guix.texi:19899
+#: doc/guix.texi:22590
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-number nss-uid-offset"
 msgstr "{@code{nslcd-configuration}-Parameter} Vielleicht-Zahl nss-uid-offset"
 
 #. type: deftypevr
-#: doc/guix.texi:19902
+#: doc/guix.texi:22593
 msgid "This option specifies an offset that is added to all LDAP numeric user ids.  This can be used to avoid user id collisions with local users."
 msgstr "Diese Einstellung gibt einen Versatz an, der auf den numerischen Benutzeridentifikator jedes LDAP-Nutzers aufaddiert wird. Damit können Konflikte zwischen den Benutzeridentifikatoren lokaler Benutzerkonten und LDAP vermieden werden."
 
 #. type: deftypevr
-#: doc/guix.texi:19907
+#: doc/guix.texi:22598
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-number nss-gid-offset"
 msgstr "{@code{nslcd-configuration}-Parameter} Vielleicht-Zahl nss-gid-offset"
 
 #. type: deftypevr
-#: doc/guix.texi:19910
+#: doc/guix.texi:22601
 msgid "This option specifies an offset that is added to all LDAP numeric group ids.  This can be used to avoid user id collisions with local groups."
 msgstr "Diese Einstellung gibt einen Versatz an, der auf den numerischen Gruppenidentifikator jedes LDAP-Nutzers aufaddiert wird. Damit können Konflikte zwischen den Gruppenidentifikatoren lokaler Gruppen und LDAP vermieden werden."
 
 #. type: deftypevr
-#: doc/guix.texi:19915
+#: doc/guix.texi:22606
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-boolean nss-nested-groups"
 msgstr "{@code{nslcd-configuration}-Parameter} Vielleicht-Boolescher-Ausdruck nss-nested-groups"
 
 #. type: deftypevr
-#: doc/guix.texi:19921
+#: doc/guix.texi:22612
 msgid "If this option is set, the member attribute of a group may point to another group.  Members of nested groups are also returned in the higher level group and parent groups are returned when finding groups for a specific user.  The default is not to perform extra searches for nested groups."
 msgstr "Wenn diese Einstellung aktiviert ist, können die Attribute einer Gruppe auch wieder Verweise auf eine andere Gruppe sein. Attribute darin verschachtelter („nested“) Gruppen werden für die Gruppe auf höherer Ebene ebenfalls zurückgeliefert und Elterngruppen werden zurückgeliefert, wenn nach den Gruppen eines bestimmten Nutzers gesucht wird. Die Vorgabe ist, keine zusätzlichen Suchen nach verschachtelten Gruppen durchzuführen."
 
 #. type: deftypevr
-#: doc/guix.texi:19926
+#: doc/guix.texi:22617
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-boolean nss-getgrent-skipmembers"
 msgstr "{@code{nslcd-configuration}-Parameter} Vielleicht-Boolescher-Ausdruck nss-getgrent-skipmembers"
 
 #. type: deftypevr
-#: doc/guix.texi:19931
+#: doc/guix.texi:22622
 msgid "If this option is set, the group member list is not retrieved when looking up groups.  Lookups for finding which groups a user belongs to will remain functional so the user will likely still get the correct groups assigned on login."
 msgstr "Wenn diese Einstellung aktiviert ist, wird die Liste der Gruppenmitglieder beim Auflösen von Gruppen nicht angefragt. Zu welchen Gruppen ein Benutzer gehört, kann weiterhin angefragt werden, damit dem Benutzer bei der Anmeldung wahrscheinlich dennoch die richtigen Gruppen zugeordnet werden."
 
 #. type: deftypevr
-#: doc/guix.texi:19936
+#: doc/guix.texi:22627
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-boolean nss-disable-enumeration"
 msgstr "{@code{nslcd-configuration}-Parameter} Vielleicht-Boolescher-Ausdruck nss-disable-enumeration"
 
 #. type: deftypevr
-#: doc/guix.texi:19942
+#: doc/guix.texi:22633
 msgid "If this option is set, functions which cause all user/group entries to be loaded from the directory will not succeed in doing so.  This can dramatically reduce LDAP server load in situations where there are a great number of users and/or groups.  This option is not recommended for most configurations."
 msgstr "Wenn diese Einstellung aktiviert ist, scheitern Funktionen, die alle Benutzer-/Gruppeneinträge aus dem Verzeichnis zu laden versuchen. Dadurch kann die Auslastung von LDAP-Servern wesentlich reduziert werden, wenn es eine große Anzahl von Benutzern und/oder Gruppen gibt. Diese Einstellung wird für die meisten Konfigurationen @emph{nicht} empfohlen."
 
 #. type: deftypevr
-#: doc/guix.texi:19947
+#: doc/guix.texi:22638
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-string validnames"
 msgstr "{@code{nslcd-configuration}-Parameter} Vielleicht-Zeichenkette validnames"
 
 #. type: deftypevr
-#: doc/guix.texi:19951
+#: doc/guix.texi:22642
 msgid "This option can be used to specify how user and group names are verified within the system.  This pattern is used to check all user and group names that are requested and returned from LDAP."
 msgstr "Mit dieser Einstellung kann festgelegt werden, wie Benutzer- und Gruppennamen vom System geprüft werden. Das angegebene Muster wird zur Prüfung aller Benutzer- und Gruppennamen benutzt, die über LDAP angefragt und zurückgeliefert werden."
 
 #. type: deftypevr
-#: doc/guix.texi:19956
+#: doc/guix.texi:22647
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-boolean ignorecase"
 msgstr "{@code{nslcd-configuration}-Parameter} Vielleicht-Boolescher-Ausdruck ignorecase"
 
 #. type: deftypevr
-#: doc/guix.texi:19961
+#: doc/guix.texi:22652
 msgid "This specifies whether or not to perform searches using case-insensitive matching.  Enabling this could open up the system to authorization bypass vulnerabilities and introduce nscd cache poisoning vulnerabilities which allow denial of service."
 msgstr "Hiermit wird festgelegt, ob bei Suchen nach passenden Einträgen @emph{nicht} auf Groß- und Kleinschreibung geachtet wird. Wenn Sie dies aktivieren, könnte es zu Sicherheitslücken kommen, mit denen Autorisierungen umgangen („Authorization Bypass“) oder der nscd-Zwischenspeicher vergiftet werden kann („Cache Poisoning“), was gezielte Überlastungen ermöglichen würde („Denial of Service“)."
 
 #. type: deftypevr
-#: doc/guix.texi:19966
+#: doc/guix.texi:22657
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-boolean pam-authc-ppolicy"
 msgstr "{@code{nslcd-configuration}-Parameter} Vielleicht-Boolescher-Ausdruck pam-authc-ppolicy"
 
 #. type: deftypevr
-#: doc/guix.texi:19969
+#: doc/guix.texi:22660
 msgid "This option specifies whether password policy controls are requested and handled from the LDAP server when performing user authentication."
 msgstr "Mit dieser Einstellung wird festgelegt, ob Passwortrichtliniensteuerung vom LDAP-Server angefragt und behandelt wird, wenn Nutzer authentifiziert werden."
 
 #. type: deftypevr
-#: doc/guix.texi:19974
+#: doc/guix.texi:22665
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-string pam-authc-search"
 msgstr "{@code{nslcd-configuration}-Parameter} Vielleicht-Zeichenkette pam-authc-search"
 
 #. type: deftypevr
-#: doc/guix.texi:19980
+#: doc/guix.texi:22671
 msgid "By default nslcd performs an LDAP search with the user's credentials after BIND (authentication) to ensure that the BIND operation was successful.  The default search is a simple check to see if the user's DN exists.  A search filter can be specified that will be used instead.  It should return at least one entry."
 msgstr "Nach Vorgabe führt nslcd eine LDAP-Suche nach jeder BIND-Operation (zur Authentisierung) durch, um sicherzustellen, dass die BIND-Operation erfolgreich durchgeführt wurde. Die vorgegebene Suche ist eine einfache Überprüfung, ob der DN eines Benutzers existiert. Hier kann ein Suchfilter angegeben werden, der stattdessen benutzt werden soll. Er sollte mindestens einen Eintrag liefern."
 
 #. type: deftypevr
-#: doc/guix.texi:19985
+#: doc/guix.texi:22676
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-string pam-authz-search"
 msgstr "{@code{nslcd-configuration}-Parameter} Vielleicht-Zeichenkette pam-authz-search"
 
 #. type: deftypevr
-#: doc/guix.texi:19989
+#: doc/guix.texi:22680
 msgid "This option allows flexible fine tuning of the authorisation check that should be performed.  The search filter specified is executed and if any entries match, access is granted, otherwise access is denied."
 msgstr "Diese Einstellung ermöglicht flexible Feineinstellungen an der durchzuführenden Autorisierungsprüfung. Der angegebene Suchfilter wird ausgeführt, woraufhin Zugriff gewährt wird, wenn mindestens ein Eintrag passt, andernfall wird der Zugriff verweigert."
 
 #. type: deftypevr
-#: doc/guix.texi:19994
+#: doc/guix.texi:22685
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-string pam-password-prohibit-message"
 msgstr "{@code{nslcd-configuration}-Parameter} Vielleicht-Zeichenkette pam-password-prohibit-message"
 
 #. type: deftypevr
-#: doc/guix.texi:19999
+#: doc/guix.texi:22690
 msgid "If this option is set password modification using pam_ldap will be denied and the specified message will be presented to the user instead.  The message can be used to direct the user to an alternative means of changing their password."
 msgstr "Wenn diese Einstellung festgelegt wurde, werden Passwortänderungen über pam_ldap abgelehnt und dem Anwender wird stattdessen die festgelegte Nachricht gezeigt. Die Nachricht kann benutzt werden, um den Anwender auf alternative Methoden aufmerksam zu machen, wie er sein Passwort ändern kann."
 
 #. type: deftypevr
-#: doc/guix.texi:20004
+#: doc/guix.texi:22695
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} list pam-services"
 msgstr "{@code{nslcd-configuration}-Parameter} Liste pam-services"
 
 #. type: deftypevr
-#: doc/guix.texi:20006
+#: doc/guix.texi:22697
 msgid "List of pam service names for which LDAP authentication should suffice."
 msgstr "Die Liste der PAM-Dienstnamen, für die eine LDAP-Authentisierung als ausreichend gilt."
 
 #. type: cindex
-#: doc/guix.texi:20017
+#: doc/guix.texi:22708
 #, no-wrap
 msgid "web"
 msgstr "Web"
 
 #. type: cindex
-#: doc/guix.texi:20018
+#: doc/guix.texi:22709
 #, no-wrap
 msgid "www"
 msgstr "WWW"
 
 #. type: cindex
-#: doc/guix.texi:20019
+#: doc/guix.texi:22710
 #, no-wrap
 msgid "HTTP"
 msgstr "HTTP"
 
 #. type: Plain text
-#: doc/guix.texi:20022
+#: doc/guix.texi:22713
 msgid "The @code{(gnu services web)} module provides the Apache HTTP Server, the nginx web server, and also a fastcgi wrapper daemon."
 msgstr "Das Modul @code{(gnu services web)} stellt den Apache-HTTP-Server, den nginx-Webserver und auch einen fastcgi-Wrapperdienst bereit."
 
 #. type: subsubheading
-#: doc/guix.texi:20023
+#: doc/guix.texi:22714
 #, no-wrap
 msgid "Apache HTTP Server"
 msgstr "Apache-HTTP-Server"
 
 #. type: deffn
-#: doc/guix.texi:20025
+#: doc/guix.texi:22716
 #, no-wrap
 msgid "{Scheme Variable} httpd-service-type"
 msgstr "{Scheme-Variable} httpd-service-type"
 
 #. type: deffn
-#: doc/guix.texi:20029
+#: doc/guix.texi:22720
 msgid "Service type for the @uref{https://httpd.apache.org/,Apache HTTP} server (@dfn{httpd}).  The value for this service type is a @code{httpd-configuration} record."
 msgstr "Diensttyp für den @uref{https://httpd.apache.org/,Apache-HTTP-Server} @dfn{httpd}. Der Wert dieses Diensttyps ist ein @code{httpd-configuration}-Verbund."
 
 #. type: deffn
-#: doc/guix.texi:20031 doc/guix.texi:20212
+#: doc/guix.texi:22722 doc/guix.texi:22903
 msgid "A simple example configuration is given below."
 msgstr "Es folgt ein einfaches Beispiel der Konfiguration."
 
 #. type: lisp
-#: doc/guix.texi:20039
+#: doc/guix.texi:22730
 #, no-wrap
 msgid ""
 "(service httpd-service-type\n"
@@ -37510,12 +42086,12 @@ msgstr ""
 "               (document-root \"/srv/http/www.example.com\")))))\n"
 
 #. type: deffn
-#: doc/guix.texi:20043
+#: doc/guix.texi:22734
 msgid "Other services can also extend the @code{httpd-service-type} to add to the configuration."
 msgstr "Andere Dienste können den @code{httpd-service-type} auch erweitern, um etwas zur Konfiguration hinzuzufügen."
 
 #. type: lisp
-#: doc/guix.texi:20052 doc/guix.texi:20192
+#: doc/guix.texi:22743 doc/guix.texi:22883
 #, no-wrap
 msgid ""
 "(simple-service 'www.example.com-server httpd-service-type\n"
@@ -37535,115 +42111,115 @@ msgstr ""
 "                                       \"\\n\")))))\n"
 
 #. type: Plain text
-#: doc/guix.texi:20058
+#: doc/guix.texi:22749
 msgid "The details for the @code{httpd-configuration}, @code{httpd-module}, @code{httpd-config-file} and @code{httpd-virtualhost} record types are given below."
 msgstr "Nun folgt eine Beschreibung der Verbundstypen @code{httpd-configuration}, @code{httpd-module}, @code{httpd-config-file} und @code{httpd-virtualhost}."
 
 #. type: deffn
-#: doc/guix.texi:20059
+#: doc/guix.texi:22750
 #, no-wrap
 msgid "{Data Type} httpd-configuration"
 msgstr "{Datentyp} httpd-configuration"
 
 #. type: deffn
-#: doc/guix.texi:20061
+#: doc/guix.texi:22752
 msgid "This data type represents the configuration for the httpd service."
 msgstr "Dieser Datentyp repräsentiert die Konfiguration des httpd-Dienstes."
 
 #. type: item
-#: doc/guix.texi:20063
+#: doc/guix.texi:22754
 #, no-wrap
 msgid "@code{package} (default: @code{httpd})"
 msgstr "@code{package} (Vorgabe: @code{httpd})"
 
 #. type: table
-#: doc/guix.texi:20065
+#: doc/guix.texi:22756
 msgid "The httpd package to use."
 msgstr "Das zu benutzende httpd-Paket."
 
 #. type: item
-#: doc/guix.texi:20066 doc/guix.texi:20155
+#: doc/guix.texi:22757 doc/guix.texi:22846
 #, no-wrap
 msgid "@code{pid-file} (default: @code{\"/var/run/httpd\"})"
 msgstr "@code{pid-file} (Vorgabe: @code{\"/var/run/httpd\"})"
 
 #. type: table
-#: doc/guix.texi:20068
+#: doc/guix.texi:22759
 msgid "The pid file used by the shepherd-service."
 msgstr "Die vom Shepherd-Dienst benutzte PID-Datei."
 
 #. type: item
-#: doc/guix.texi:20069
+#: doc/guix.texi:22760
 #, no-wrap
 msgid "@code{config} (default: @code{(httpd-config-file)})"
 msgstr "@code{config} (Vorgabe: @code{(httpd-config-file)})"
 
 #. type: table
-#: doc/guix.texi:20074
+#: doc/guix.texi:22765
 msgid "The configuration file to use with the httpd service. The default value is a @code{httpd-config-file} record, but this can also be a different G-expression that generates a file, for example a @code{plain-file}. A file outside of the store can also be specified through a string."
 msgstr "Die vom httpd-Dienst zu benutzende Konfigurationsdatei. Vorgegeben ist ein @code{httpd-config-file}-Verbundsobjekt, aber als Wert kann auch ein anderer G-Ausdruck benutzt werden, der eine Datei erzeugt, zum Beispiel ein @code{plain-file}. Es kann auch eine Datei außerhalb des Stores mit einer Zeichenkette angegeben werden."
 
 #. type: deffn
-#: doc/guix.texi:20078
+#: doc/guix.texi:22769
 #, no-wrap
 msgid "{Data Type} httpd-module"
 msgstr "{Datentyp} httpd-module"
 
 #. type: deffn
-#: doc/guix.texi:20080
+#: doc/guix.texi:22771
 msgid "This data type represents a module for the httpd service."
 msgstr "Dieser Datentyp steht für ein Modul des httpd-Dienstes."
 
 #. type: table
-#: doc/guix.texi:20084
+#: doc/guix.texi:22775
 msgid "The name of the module."
 msgstr "Der Name des Moduls."
 
 #. type: table
-#: doc/guix.texi:20090
+#: doc/guix.texi:22781
 msgid "The file for the module. This can be relative to the httpd package being used, the absolute location of a file, or a G-expression for a file within the store, for example @code{(file-append mod-wsgi \"/modules/mod_wsgi.so\")}."
 msgstr "Die Datei, in der das Modul steht. Sie kann relativ zum benutzten httpd-Paket oder als absoluter Pfad einer Datei oder als ein G-Ausdruck für eine Datei im Store angegeben werden, zum Beispiel @code{(file-append mod-wsgi \"/modules/mod_wsgi.so\")}."
 
 #. type: defvr
-#: doc/guix.texi:20094
+#: doc/guix.texi:22785
 #, no-wrap
 msgid "{Scheme Variable} %default-httpd-modules"
 msgstr "{Scheme-Variable} %default-httpd-modules"
 
 #. type: defvr
-#: doc/guix.texi:20096
+#: doc/guix.texi:22787
 msgid "A default list of @code{httpd-module} objects."
 msgstr "Eine vorgegebene Liste von @code{httpd-module}-Objekten."
 
 #. type: deffn
-#: doc/guix.texi:20098
+#: doc/guix.texi:22789
 #, no-wrap
 msgid "{Data Type} httpd-config-file"
 msgstr "{Datentyp} httpd-config-file"
 
 #. type: deffn
-#: doc/guix.texi:20100
+#: doc/guix.texi:22791
 msgid "This data type represents a configuration file for the httpd service."
 msgstr "Dieser Datentyp repräsentiert eine Konfigurationsdatei für den httpd-Dienst."
 
 #. type: item
-#: doc/guix.texi:20102
+#: doc/guix.texi:22793
 #, no-wrap
 msgid "@code{modules} (default: @code{%default-httpd-modules})"
 msgstr "@code{modules} (Vorgabe: @code{%default-httpd-modules})"
 
 #. type: table
-#: doc/guix.texi:20105
+#: doc/guix.texi:22796
 msgid "The modules to load. Additional modules can be added here, or loaded by additional configuration."
 msgstr "Welche Module geladen werden sollen. Zusätzliche Module können hier eingetragen werden oder durch eine zusätzliche Konfigurationsangabe geladen werden."
 
 #. type: table
-#: doc/guix.texi:20108
+#: doc/guix.texi:22799
 msgid "For example, in order to handle requests for PHP files, you can use Apache’s @code{mod_proxy_fcgi} module along with @code{php-fpm-service-type}:"
 msgstr "Um zum Beispiel Anfragen nach PHP-Dateien zu behandeln, können Sie das Modul @code{mod_proxy_fcgi} von Apache zusammen mit @code{php-fpm-service-type} benutzen:"
 
 #. type: lisp
-#: doc/guix.texi:20130
+#: doc/guix.texi:22821
 #, no-wrap
 msgid ""
 "(service httpd-service-type\n"
@@ -37689,165 +42265,165 @@ msgstr ""
 "          (socket-group \"httpd\")))\n"
 
 #. type: item
-#: doc/guix.texi:20132
+#: doc/guix.texi:22823
 #, no-wrap
 msgid "@code{server-root} (default: @code{httpd})"
 msgstr "@code{server-root} (Vorgabe: @code{httpd})"
 
 #. type: table
-#: doc/guix.texi:20136
+#: doc/guix.texi:22827
 msgid "The @code{ServerRoot} in the configuration file, defaults to the httpd package. Directives including @code{Include} and @code{LoadModule} are taken as relative to the server root."
 msgstr "Die @code{ServerRoot} in der Konfigurationsdatei, vorgegeben ist das httpd-Paket. Direktiven wie @code{Include} und @code{LoadModule} werden relativ zur ServerRoot interpretiert."
 
 #. type: item
-#: doc/guix.texi:20137
+#: doc/guix.texi:22828
 #, no-wrap
 msgid "@code{server-name} (default: @code{#f})"
 msgstr "@code{server-name} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:20141
+#: doc/guix.texi:22832
 msgid "The @code{ServerName} in the configuration file, used to specify the request scheme, hostname and port that the server uses to identify itself."
 msgstr "Der @code{ServerName} in der Konfigurationsdatei, mit dem das Anfrageschema (Request Scheme), der Rechnername (Hostname) und Port angegeben wird, mit denen sich der Server identifiziert."
 
 #. type: table
-#: doc/guix.texi:20145
+#: doc/guix.texi:22836
 msgid "This doesn't need to be set in the server config, and can be specified in virtual hosts. The default is @code{#f} to not specify a @code{ServerName}."
 msgstr "Es muss nicht als Teil der Server-Konfiguration festgelegt werden, sondern kann auch in virtuellen Rechnern (Virtual Hosts) festgelegt werden. Vorgegeben ist @code{#f}, wodurch kein @code{ServerName} festgelegt wird."
 
 #. type: item
-#: doc/guix.texi:20146
+#: doc/guix.texi:22837
 #, no-wrap
 msgid "@code{document-root} (default: @code{\"/srv/http\"})"
 msgstr "@code{document-root} (Vorgabe: @code{\"/srv/http\"})"
 
 #. type: table
-#: doc/guix.texi:20148
+#: doc/guix.texi:22839
 msgid "The @code{DocumentRoot} from which files will be served."
 msgstr "Das @code{DocumentRoot}-Verzeichnis, in dem sich die Dateien befinden, die man vom Server abrufen kann."
 
 #. type: item
-#: doc/guix.texi:20149
+#: doc/guix.texi:22840
 #, no-wrap
 msgid "@code{listen} (default: @code{'(\"80\")})"
 msgstr "@code{listen} (Vorgabe: @code{'(\"80\")})"
 
 #. type: table
-#: doc/guix.texi:20154
+#: doc/guix.texi:22845
 msgid "The list of values for the @code{Listen} directives in the config file. The value should be a list of strings, when each string can specify the port number to listen on, and optionally the IP address and protocol to use."
 msgstr "Die Liste der Werte für die @code{Listen}-Direktive in der Konfigurationsdatei. Als Wert sollte eine Liste von Zeichenketten angegeben werden, die jeweils die Portnummer, auf der gelauscht wird, und optional auch die zu benutzende IP-Adresse und das Protokoll angeben."
 
 #. type: table
-#: doc/guix.texi:20159
+#: doc/guix.texi:22850
 msgid "The @code{PidFile} to use. This should match the @code{pid-file} set in the @code{httpd-configuration} so that the Shepherd service is configured correctly."
 msgstr "Hiermit wird die PID-Datei als @code{PidFile}-Direktive angegeben. Der Wert sollte mit der @code{pid-file}-Datei in der @code{httpd-configuration} übereinstimmen, damit der Shepherd-Dienst richtig konfiguriert ist."
 
 #. type: item
-#: doc/guix.texi:20160
+#: doc/guix.texi:22851
 #, no-wrap
 msgid "@code{error-log} (default: @code{\"/var/log/httpd/error_log\"})"
 msgstr "@code{error-log} (Vorgabe: @code{\"/var/log/httpd/error_log\"})"
 
 #. type: table
-#: doc/guix.texi:20162
+#: doc/guix.texi:22853
 msgid "The @code{ErrorLog} to which the server will log errors."
 msgstr "Der Ort, an den der Server mit der @code{ErrorLog}-Direktive Fehlerprotokolle schreibt."
 
 #. type: item
-#: doc/guix.texi:20163 doc/guix.texi:20702
+#: doc/guix.texi:22854 doc/guix.texi:23415
 #, no-wrap
 msgid "@code{user} (default: @code{\"httpd\"})"
 msgstr "@code{user} (Vorgabe: @code{\"httpd\"})"
 
 #. type: table
-#: doc/guix.texi:20165
+#: doc/guix.texi:22856
 msgid "The @code{User} which the server will answer requests as."
 msgstr "Der Benutzer, als der der Server durch die @code{User}-Direktive Anfragen beantwortet."
 
 #. type: item
-#: doc/guix.texi:20166
+#: doc/guix.texi:22857
 #, no-wrap
 msgid "@code{group} (default: @code{\"httpd\"})"
 msgstr "@code{group} (Vorgabe: @code{\"httpd\"})"
 
 #. type: table
-#: doc/guix.texi:20168
+#: doc/guix.texi:22859
 msgid "The @code{Group} which the server will answer requests as."
 msgstr "Die Gruppe, mit der der Server durch die @code{Group}-Direktive Anfragen beantwortet."
 
 #. type: item
-#: doc/guix.texi:20169
+#: doc/guix.texi:22860
 #, no-wrap
 msgid "@code{extra-config} (default: @code{(list \"TypesConfig etc/httpd/mime.types\")})"
 msgstr "@code{extra-config} (Vorgabe: @code{(list \"TypesConfig etc/httpd/mime.types\")})"
 
 #. type: table
-#: doc/guix.texi:20172
+#: doc/guix.texi:22863
 msgid "A flat list of strings and G-expressions which will be added to the end of the configuration file."
 msgstr "Eine flache Liste von Zeichenketten und G-Ausdrücken, die am Ende der Konfigurationsdatei hinzugefügt werden."
 
 #. type: table
-#: doc/guix.texi:20175
+#: doc/guix.texi:22866
 msgid "Any values which the service is extended with will be appended to this list."
 msgstr "Alle Werte, mit denen dieser Dienst erweitert wird, werden an die Liste angehängt."
 
 #. type: deffn
-#: doc/guix.texi:20179
+#: doc/guix.texi:22870
 #, no-wrap
 msgid "{Data Type} httpd-virtualhost"
 msgstr "{Datentyp} httpd-virtualhost"
 
 #. type: deffn
-#: doc/guix.texi:20181
+#: doc/guix.texi:22872
 msgid "This data type represents a virtualhost configuration block for the httpd service."
 msgstr "Dieser Datentyp repräsentiert einen Konfigurationsblock für einen virtuellen Rechner (Virtual Host) des httpd-Dienstes."
 
 #. type: deffn
-#: doc/guix.texi:20183
+#: doc/guix.texi:22874
 msgid "These should be added to the extra-config for the httpd-service."
 msgstr "Sie sollten zur zusätzlichen Konfiguration extra-config des httpd-Dienstes hinzugefügt werden."
 
 #. type: code{#1}
-#: doc/guix.texi:20195
+#: doc/guix.texi:22886
 #, no-wrap
 msgid "addresses-and-ports"
 msgstr "addresses-and-ports"
 
 #. type: table
-#: doc/guix.texi:20197
+#: doc/guix.texi:22888
 msgid "The addresses and ports for the @code{VirtualHost} directive."
 msgstr "Adressen und Ports für die @code{VirtualHost}-Direktive."
 
 #. type: code{#1}
-#: doc/guix.texi:20198
+#: doc/guix.texi:22889
 #, no-wrap
 msgid "contents"
 msgstr "contents"
 
 #. type: table
-#: doc/guix.texi:20201
+#: doc/guix.texi:22892
 msgid "The contents of the @code{VirtualHost} directive, this should be a list of strings and G-expressions."
 msgstr "Der Inhalt der @code{VirtualHost}-Direktive. Er sollte als Liste von Zeichenketten und G-Ausdrücken angegeben werden."
 
 #. type: subsubheading
-#: doc/guix.texi:20205
+#: doc/guix.texi:22896
 #, no-wrap
 msgid "NGINX"
 msgstr "NGINX"
 
 #. type: deffn
-#: doc/guix.texi:20207
+#: doc/guix.texi:22898
 #, no-wrap
 msgid "{Scheme Variable} nginx-service-type"
 msgstr "{Scheme-Variable} nginx-service-type"
 
 #. type: deffn
-#: doc/guix.texi:20210
+#: doc/guix.texi:22901
 msgid "Service type for the @uref{https://nginx.org/,NGinx} web server.  The value for this service type is a @code{<nginx-configuration>} record."
 msgstr "Diensttyp für den @uref{https://nginx.org/,NGinx-Webserver}. Der Wert des Dienstes ist ein @code{<nginx-configuration>}-Verbundsobjekt."
 
 #. type: lisp
-#: doc/guix.texi:20220 doc/guix.texi:20274
+#: doc/guix.texi:22911 doc/guix.texi:22965
 #, no-wrap
 msgid ""
 "(service nginx-service-type\n"
@@ -37865,12 +42441,12 @@ msgstr ""
 "                     (root \"/srv/http/www.example.com\"))))))\n"
 
 #. type: deffn
-#: doc/guix.texi:20225
+#: doc/guix.texi:22916
 msgid "In addition to adding server blocks to the service configuration directly, this service can be extended by other services to add server blocks, as in this example:"
 msgstr "Außer durch direktes Hinzufügen von Server-Blöcken zur Dienstkonfiguration kann der Dienst auch durch andere Dienste erweitert werden, um Server-Blöcke hinzuzufügen, wie man im folgenden Beispiel sieht:"
 
 #. type: lisp
-#: doc/guix.texi:20231
+#: doc/guix.texi:22922
 #, no-wrap
 msgid ""
 "(simple-service 'my-extra-server nginx-service-type\n"
@@ -37884,88 +42460,88 @@ msgstr ""
 "                        (try-files (list \"$uri\" \"$uri/index.html\")))))\n"
 
 #. type: Plain text
-#: doc/guix.texi:20242
+#: doc/guix.texi:22933
 msgid "At startup, @command{nginx} has not yet read its configuration file, so it uses a default file to log error messages.  If it fails to load its configuration file, that is where error messages are logged.  After the configuration file is loaded, the default error log file changes as per configuration.  In our case, startup error messages can be found in @file{/var/run/nginx/logs/error.log}, and after configuration in @file{/var/log/nginx/error.log}.  The second location can be changed with the @var{log-directory} configuration option."
 msgstr "Beim Starten hat @command{nginx} seine Konfigurationsdatei noch nicht gelesen und benutzt eine vorgegebene Datei, um Fehlermeldungen zu protokollieren. Wenn er seine Konfigurationsdatei nicht laden kann, landen Fehlermeldungen also dort. Nachdem die Konfigurationsdatei geladen ist, werden Fehlerprotokolle nach Voreinstellung in die Datei geschrieben, die in der Konfiguration angegeben ist. In unserem Fall können Sie Fehlermeldungen beim Starten in @file{/var/run/nginx/logs/error.log} finden und nachdem die Konfiguration eingelesen wurde, finden Sie sie in @file{/var/log/nginx/error.log}. Letzterer Ort kann mit der Konfigurationsoption @var{log-directory} geändert werden."
 
 #. type: deffn
-#: doc/guix.texi:20243
+#: doc/guix.texi:22934
 #, no-wrap
 msgid "{Data Type} nginx-configuration"
 msgstr "{Datentyp} nginx-configuration"
 
 #. type: deffn
-#: doc/guix.texi:20247
+#: doc/guix.texi:22938
 msgid "This data type represents the configuration for NGinx. Some configuration can be done through this and the other provided record types, or alternatively, a config file can be provided."
 msgstr "Dieser Datentyp repräsentiert die Konfiguration von NGinx. Ein Teil der Konfiguration kann hierüber und über die anderen zu Ihrer Verfügung stehenden Verbundstypen geschehen, alternativ können Sie eine Konfigurationsdatei mitgeben."
 
 #. type: item
-#: doc/guix.texi:20249
+#: doc/guix.texi:22940
 #, no-wrap
 msgid "@code{nginx} (default: @code{nginx})"
 msgstr "@code{nginx} (Vorgabe: @code{nginx})"
 
 #. type: table
-#: doc/guix.texi:20251
+#: doc/guix.texi:22942
 msgid "The nginx package to use."
 msgstr "Das zu benutzende nginx-Paket."
 
 #. type: item
-#: doc/guix.texi:20252
+#: doc/guix.texi:22943
 #, no-wrap
 msgid "@code{log-directory} (default: @code{\"/var/log/nginx\"})"
 msgstr "@code{log-directory} (Vorgabe: @code{\"/var/log/nginx\"})"
 
 #. type: table
-#: doc/guix.texi:20254
+#: doc/guix.texi:22945
 msgid "The directory to which NGinx will write log files."
 msgstr "In welches Verzeichnis NGinx Protokolldateien schreiben wird."
 
 #. type: item
-#: doc/guix.texi:20255
+#: doc/guix.texi:22946
 #, no-wrap
 msgid "@code{run-directory} (default: @code{\"/var/run/nginx\"})"
 msgstr "@code{run-directory} (Vorgabe: @code{\"/var/run/nginx\"})"
 
 #. type: table
-#: doc/guix.texi:20258
+#: doc/guix.texi:22949
 msgid "The directory in which NGinx will create a pid file, and write temporary files."
 msgstr "In welchem Verzeichnis NGinx eine PID-Datei anlegen und temporäre Dateien ablegen wird."
 
 #. type: item
-#: doc/guix.texi:20259
+#: doc/guix.texi:22950
 #, no-wrap
 msgid "@code{server-blocks} (default: @code{'()})"
 msgstr "@code{server-blocks} (Vorgabe: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:20263
+#: doc/guix.texi:22954
 msgid "A list of @dfn{server blocks} to create in the generated configuration file, the elements should be of type @code{<nginx-server-configuration>}."
 msgstr "Eine Liste von @dfn{Server-Blöcken}, die in der erzeugten Konfigurationsdatei stehen sollen. Die Elemente davon sollten den Typ @code{<nginx-server-configuration>} haben."
 
 #. type: table
-#: doc/guix.texi:20267
+#: doc/guix.texi:22958
 msgid "The following example would setup NGinx to serve @code{www.example.com} from the @code{/srv/http/www.example.com} directory, without using HTTPS."
 msgstr "Im folgenden Beispiel wäre NGinx so eingerichtet, dass Anfragen an @code{www.example.com} mit Dateien aus dem Verzeichnis @code{/srv/http/www.example.com} beantwortet werden, ohne HTTPS zu benutzen."
 
 #. type: item
-#: doc/guix.texi:20276
+#: doc/guix.texi:22967
 #, no-wrap
 msgid "@code{upstream-blocks} (default: @code{'()})"
 msgstr "@code{upstream-blocks} (Vorgabe: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:20280
+#: doc/guix.texi:22971
 msgid "A list of @dfn{upstream blocks} to create in the generated configuration file, the elements should be of type @code{<nginx-upstream-configuration>}."
 msgstr "Eine Liste von @dfn{Upstream-Blöcken}, die in der erzeugten Konfigurationsdatei stehen sollen. Ihre Elemente sollten den Typ @code{<nginx-upstream-configuration>} haben."
 
 #. type: table
-#: doc/guix.texi:20287
+#: doc/guix.texi:22978
 msgid "Configuring upstreams through the @code{upstream-blocks} can be useful when combined with @code{locations} in the @code{<nginx-server-configuration>} records.  The following example creates a server configuration with one location configuration, that will proxy requests to a upstream configuration, which will handle requests with two servers."
 msgstr "Upstreams als @code{upstream-blocks} zu konfigurieren, kann hilfreich sein, wenn es mit @code{locations} in @code{<nginx-server-configuration>} verbunden wird. Das folgende Beispiel erzeugt eine Server-Konfiguration mit einer Location-Konfiguration, bei der Anfragen als Proxy entsprechend einer Upstream-Konfiguration weitergeleitet werden, wodurch zwei Server diese beantworten können."
 
 #. type: lisp
-#: doc/guix.texi:20306
+#: doc/guix.texi:22997
 #, no-wrap
 msgid ""
 "(service\n"
@@ -38005,69 +42581,117 @@ msgstr ""
 "                             \"server2.example.com\")))))))\n"
 
 #. type: table
-#: doc/guix.texi:20314
+#: doc/guix.texi:23005
 msgid "If a configuration @var{file} is provided, this will be used, rather than generating a configuration file from the provided @code{log-directory}, @code{run-directory}, @code{server-blocks} and @code{upstream-blocks}.  For proper operation, these arguments should match what is in @var{file} to ensure that the directories are created when the service is activated."
 msgstr "Wenn eine Konfigurationsdatei als @var{file} angegeben wird, dann wird diese benutzt und @emph{keine} Konfigurationsdatei anhand der angegebenen @code{log-directory}, @code{run-directory}, @code{server-blocks} und @code{upstream-blocks} erzeugt. Trotzdem sollten diese Argumente bei einer richtigen Konfiguration mit denen in der Datei @var{file} übereinstimmen, damit die Verzeichnisse bei Aktivierung des Dienstes erzeugt werden."
 
 #. type: table
-#: doc/guix.texi:20318
+#: doc/guix.texi:23009
 msgid "This can be useful if you have an existing configuration file, or it's not possible to do what is required through the other parts of the nginx-configuration record."
 msgstr "Das kann nützlich sein, wenn Sie schon eine bestehende Konfigurationsdatei haben oder das, was Sie brauchen, nicht mit anderen Teilen eines nginx-configuration-Verbundsobjekts umgesetzt werden kann."
 
 #. type: item
-#: doc/guix.texi:20319
+#: doc/guix.texi:23010
 #, no-wrap
 msgid "@code{server-names-hash-bucket-size} (default: @code{#f})"
 msgstr "@code{server-names-hash-bucket-size} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:20322
+#: doc/guix.texi:23013
 msgid "Bucket size for the server names hash tables, defaults to @code{#f} to use the size of the processors cache line."
 msgstr "Größe der Behälter (englisch „Buckets“) für die Hashtabelle der Servernamen; vorgegeben ist @code{#f}, wodurch die Größe der Cache-Lines des Prozessors verwendet wird."
 
 #. type: item
-#: doc/guix.texi:20323
+#: doc/guix.texi:23014
 #, no-wrap
 msgid "@code{server-names-hash-bucket-max-size} (default: @code{#f})"
 msgstr "@code{server-names-hash-bucket-max-size} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:20325
+#: doc/guix.texi:23016
 msgid "Maximum bucket size for the server names hash tables."
 msgstr "Maximale Behältergröße für die Hashtabelle der Servernamen."
 
 #. type: table
-#: doc/guix.texi:20329
+#: doc/guix.texi:23020
 msgid "List of nginx dynamic modules to load.  This should be a list of file names of loadable modules, as in this example:"
 msgstr "Die Liste zu ladender dynamisch gebundener Module für nginx. Die dynamischen Module sollten als Liste von Dateinamen ladbarer Module angegeben werden. Zum Beispiel:"
 
 #. type: lisp
-#: doc/guix.texi:20335
+#: doc/guix.texi:23028
 #, no-wrap
 msgid ""
 "(modules\n"
 " (list\n"
 "  (file-append nginx-accept-language-module \"\\\n"
-"/etc/nginx/modules/ngx_http_accept_language_module.so\")))\n"
+"/etc/nginx/modules/ngx_http_accept_language_module.so\")\n"
+"  (file-append nginx-lua-module \"\\\n"
+"/etc/nginx/modules/ngx_http_lua_module.so\")))\n"
 msgstr ""
 "(modules\n"
 " (list\n"
 "  (file-append nginx-accept-language-module \"\\\n"
-"/etc/nginx/modules/ngx_http_accept_language_module.so\")))\n"
+"/etc/nginx/modules/ngx_http_accept_language_module.so\")\n"
+"  (file-append nginx-lua-module \"\\\n"
+"/etc/nginx/modules/ngx_http_lua_module.so\")))\n"
+
+#. type: item
+#: doc/guix.texi:23030
+#, no-wrap
+msgid "@code{lua-package-path} (default: @code{'()})"
+msgstr "@code{lua-package-path} (Vorgabe: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:23033
+msgid "List of nginx lua packages to load.  This should be a list of package names of loadable lua modules, as in this example:"
+msgstr "Die Liste zu ladender nginx-Lua-Pakete. Hier sollte eine Liste von Paketnamen ladbarer Lua-Module angegeben werden. Zum Beispiel:"
+
+#. type: lisp
+#: doc/guix.texi:23040
+#, no-wrap
+msgid ""
+"(lua-package-path (list lua-resty-core\n"
+"                        lua-resty-lrucache\n"
+"                        lua-resty-signal\n"
+"                        lua-tablepool\n"
+"                        lua-resty-shell))\n"
+msgstr ""
+"(lua-package-path (list lua-resty-core\n"
+"                        lua-resty-lrucache\n"
+"                        lua-resty-signal\n"
+"                        lua-tablepool\n"
+"                        lua-resty-shell))\n"
+
+#. type: item
+#: doc/guix.texi:23042
+#, no-wrap
+msgid "@code{lua-package-cpath} (default: @code{'()})"
+msgstr "@code{lua-package-cpath} (Vorgabe: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:23045
+msgid "List of nginx lua C packages to load.  This should be a list of package names of loadable lua C modules, as in this example:"
+msgstr "Die Liste zu ladender nginx-Lua-C-Pakete. Hier sollte eine Liste von Paketnamen ladbarer Lua-C-Module angegeben werden. Zum Beispiel:"
+
+#. type: lisp
+#: doc/guix.texi:23048
+#, no-wrap
+msgid "(lua-package-cpath (list lua-resty-signal))\n"
+msgstr "(lua-package-cpath (list lua-resty-signal))\n"
 
 #. type: item
-#: doc/guix.texi:20337
+#: doc/guix.texi:23050
 #, no-wrap
 msgid "@code{global-directives} (default: @code{'((events . ()))})"
 msgstr "@code{global-directives} (Vorgabe: @code{'((events . ()))})"
 
 #. type: table
-#: doc/guix.texi:20340
+#: doc/guix.texi:23053
 msgid "Association list of global directives for the top level of the nginx configuration.  Values may themselves be association lists."
 msgstr "Assoziative Liste von globalen Direktiven für die oberste Ebene der nginx-Konfiguration. Als Werte können wiederum assoziative Listen angegeben werden."
 
 #. type: lisp
-#: doc/guix.texi:20346
+#: doc/guix.texi:23059
 #, no-wrap
 msgid ""
 "(global-directives\n"
@@ -38081,312 +42705,312 @@ msgstr ""
 "   (events . ((worker_connections . 1024)))))\n"
 
 #. type: table
-#: doc/guix.texi:20351
+#: doc/guix.texi:23064
 msgid "Extra content for the @code{http} block.  Should be string or a string valued G-expression."
 msgstr "Zusätzlicher Inhalt des @code{http}-Blocks. Er sollte eine Zeichenkette oder ein zeichenkettenwertiger G-Ausdruck."
 
 #. type: deftp
-#: doc/guix.texi:20355
+#: doc/guix.texi:23068
 #, no-wrap
 msgid "{Data Type} nginx-server-configuration"
 msgstr "{Datentyp} nginx-server-configuration"
 
 #. type: deftp
-#: doc/guix.texi:20358
+#: doc/guix.texi:23071
 msgid "Data type representing the configuration of an nginx server block.  This type has the following parameters:"
 msgstr "Der Datentyp, der die Konfiguration eines nginx-Serverblocks repräsentiert. Dieser Typ hat die folgenden Parameter:"
 
 #. type: item
-#: doc/guix.texi:20360
+#: doc/guix.texi:23073
 #, no-wrap
 msgid "@code{listen} (default: @code{'(\"80\" \"443 ssl\")})"
 msgstr "@code{listen} (Vorgabe: @code{'(\"80\" \"443 ssl\")})"
 
 #. type: table
-#: doc/guix.texi:20365
+#: doc/guix.texi:23078
 msgid "Each @code{listen} directive sets the address and port for IP, or the path for a UNIX-domain socket on which the server will accept requests.  Both address and port, or only address or only port can be specified.  An address may also be a hostname, for example:"
 msgstr "Jede @code{listen}-Direktive legt Adresse und Port für eine IP fest oder gibt einen Unix-Socket an, auf dem der Server Anfragen beantwortet. Es können entweder sowohl Adresse als auch Port oder nur die Adresse oder nur der Port angegeben werden. Als Adresse kann auch ein Rechnername („Hostname“) angegeben werden, zum Beispiel:"
 
 #. type: lisp
-#: doc/guix.texi:20368
+#: doc/guix.texi:23081
 #, no-wrap
 msgid "'(\"127.0.0.1:8000\" \"127.0.0.1\" \"8000\" \"*:8000\" \"localhost:8000\")\n"
 msgstr "'(\"127.0.0.1:8000\" \"127.0.0.1\" \"8000\" \"*:8000\" \"localhost:8000\")\n"
 
 #. type: item
-#: doc/guix.texi:20370
+#: doc/guix.texi:23083
 #, no-wrap
 msgid "@code{server-name} (default: @code{(list 'default)})"
 msgstr "@code{server-name} (Vorgabe: @code{(list 'default)})"
 
 #. type: table
-#: doc/guix.texi:20373
+#: doc/guix.texi:23086
 msgid "A list of server names this server represents. @code{'default} represents the default server for connections matching no other server."
 msgstr "Eine Liste von Servernamen, die dieser Server repräsentiert. @code{'default} repräsentiert den voreingestellten Server, der für Verbindungen verwendet wird, die zu keinem anderen Server passen."
 
 #. type: item
-#: doc/guix.texi:20374
+#: doc/guix.texi:23087
 #, no-wrap
 msgid "@code{root} (default: @code{\"/srv/http\"})"
 msgstr "@code{root} (Vorgabe: @code{\"/srv/http\"})"
 
 #. type: table
-#: doc/guix.texi:20376
+#: doc/guix.texi:23089
 msgid "Root of the website nginx will serve."
 msgstr "Wurzelverzeichnis des Webauftritts, der über nginx abgerufen werden kann."
 
 #. type: item
-#: doc/guix.texi:20377
+#: doc/guix.texi:23090
 #, no-wrap
 msgid "@code{locations} (default: @code{'()})"
 msgstr "@code{locations} (Vorgabe: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:20381
+#: doc/guix.texi:23094
 msgid "A list of @dfn{nginx-location-configuration} or @dfn{nginx-named-location-configuration} records to use within this server block."
 msgstr "Eine Liste von @dfn{nginx-location-configuration}- oder @dfn{nginx-named-location-configuration}-Verbundsobjekten, die innerhalb des Serverblocks benutzt werden."
 
 #. type: item
-#: doc/guix.texi:20382
+#: doc/guix.texi:23095
 #, no-wrap
 msgid "@code{index} (default: @code{(list \"index.html\")})"
 msgstr "@code{index} (Vorgabe: @code{(list \"index.html\")})"
 
 #. type: table
-#: doc/guix.texi:20385
+#: doc/guix.texi:23098
 msgid "Index files to look for when clients ask for a directory.  If it cannot be found, Nginx will send the list of files in the directory."
 msgstr "Index-Dateien, mit denen Anfragen nach einem Verzeichnis beantwortet werden. Wenn @emph{keine} davon gefunden wird, antwortet Nginx mit der Liste der Dateien im Verzeichnis."
 
 #. type: item
-#: doc/guix.texi:20386
+#: doc/guix.texi:23099
 #, no-wrap
 msgid "@code{try-files} (default: @code{'()})"
 msgstr "@code{try-files} (Vorgabe: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:20389
+#: doc/guix.texi:23102
 msgid "A list of files whose existence is checked in the specified order.  @code{nginx} will use the first file it finds to process the request."
 msgstr "Eine Liste der Dateien, bei denen in der angegebenen Reihenfolge geprüft wird, ob sie existieren. @code{nginx} beantwortet die Anfrage mit der ersten Datei, die es findet."
 
 #. type: item
-#: doc/guix.texi:20390
+#: doc/guix.texi:23103
 #, no-wrap
 msgid "@code{ssl-certificate} (default: @code{#f})"
 msgstr "@code{ssl-certificate} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:20393
+#: doc/guix.texi:23106
 msgid "Where to find the certificate for secure connections.  Set it to @code{#f} if you don't have a certificate or you don't want to use HTTPS."
 msgstr "Wo das Zertifikat für sichere Verbindungen gespeichert ist. Sie sollten es auf @code{#f} setzen, wenn Sie kein Zertifikat haben oder kein HTTPS benutzen möchten."
 
 #. type: item
-#: doc/guix.texi:20394
+#: doc/guix.texi:23107
 #, no-wrap
 msgid "@code{ssl-certificate-key} (default: @code{#f})"
 msgstr "@code{ssl-certificate-key} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:20397
+#: doc/guix.texi:23110
 msgid "Where to find the private key for secure connections.  Set it to @code{#f} if you don't have a key or you don't want to use HTTPS."
 msgstr "Wo der private Schlüssel für sichere Verbindungen gespeichert ist. Sie sollten ihn auf @code{#f} setzen, wenn Sie keinen Schlüssel haben oder kein HTTPS benutzen möchten."
 
 #. type: item
-#: doc/guix.texi:20398
+#: doc/guix.texi:23111
 #, no-wrap
 msgid "@code{server-tokens?} (default: @code{#f})"
 msgstr "@code{server-tokens?} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:20400
+#: doc/guix.texi:23113
 msgid "Whether the server should add its configuration to response."
 msgstr "Ob der Server Informationen über seine Konfiguration bei Antworten beilegen soll."
 
 #. type: item
-#: doc/guix.texi:20401
+#: doc/guix.texi:23114
 #, no-wrap
 msgid "@code{raw-content} (default: @code{'()})"
 msgstr "@code{raw-content} (Vorgabe: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:20403
+#: doc/guix.texi:23116
 msgid "A list of raw lines added to the server block."
 msgstr "Eine Liste von Zeilen, die unverändert in den Serverblock eingefügt werden."
 
 #. type: deftp
-#: doc/guix.texi:20407
+#: doc/guix.texi:23120
 #, no-wrap
 msgid "{Data Type} nginx-upstream-configuration"
 msgstr "{Datentyp} nginx-upstream-configuration"
 
 #. type: deftp
-#: doc/guix.texi:20410
+#: doc/guix.texi:23123
 msgid "Data type representing the configuration of an nginx @code{upstream} block.  This type has the following parameters:"
 msgstr "Der Datentyp, der die Konfiguration eines nginx-@code{upstream}-Blocks repräsentiert. Dieser Typ hat folgende Parameter:"
 
 #. type: table
-#: doc/guix.texi:20414
+#: doc/guix.texi:23127
 msgid "Name for this group of servers."
 msgstr "Der Name dieser Servergruppe."
 
 #. type: code{#1}
-#: doc/guix.texi:20415
+#: doc/guix.texi:23128
 #, no-wrap
 msgid "servers"
 msgstr "servers"
 
 #. type: table
-#: doc/guix.texi:20422
+#: doc/guix.texi:23135
 msgid "Specify the addresses of the servers in the group.  The address can be specified as a IP address (e.g.@: @samp{127.0.0.1}), domain name (e.g.@: @samp{backend1.example.com}) or a path to a UNIX socket using the prefix @samp{unix:}.  For addresses using an IP address or domain name, the default port is 80, and a different port can be specified explicitly."
 msgstr "Gibt die Adressen der Server in der Gruppe an. Die Adresse kann als IP-Adresse (z.B.@: @samp{127.0.0.1}), Domänenname (z.B.@: @samp{backend1.example.com}) oder als Pfad eines Unix-Sockets mit dem vorangestellten Präfix @samp{unix:} angegeben werden. Wenn Adressen eine IP-Adresse oder einen Domänennamen benutzen, ist der voreingestellte Port 80, aber ein abweichender Port kann auch explizit angegeben werden."
 
 #. type: deftp
-#: doc/guix.texi:20426
+#: doc/guix.texi:23139
 #, no-wrap
 msgid "{Data Type} nginx-location-configuration"
 msgstr "{Datentyp} nginx-location-configuration"
 
 #. type: deftp
-#: doc/guix.texi:20429
+#: doc/guix.texi:23142
 msgid "Data type representing the configuration of an nginx @code{location} block.  This type has the following parameters:"
 msgstr "Der Datentyp, der die Konfiguration eines nginx-@code{location}-Blocks angibt. Der Typ hat die folgenden Parameter:"
 
 #. type: table
-#: doc/guix.texi:20433
+#: doc/guix.texi:23146
 msgid "URI which this location block matches."
 msgstr "Die URI, die auf diesen Block passt."
 
 #. type: anchor{#1}
-#: doc/guix.texi:20435
+#: doc/guix.texi:23148
 msgid "nginx-location-configuration body"
 msgstr "nginx-location-configuration body"
 
 #. type: code{#1}
-#: doc/guix.texi:20435 doc/guix.texi:20456
+#: doc/guix.texi:23148 doc/guix.texi:23169
 #, no-wrap
 msgid "body"
 msgstr "body"
 
 #. type: table
-#: doc/guix.texi:20442
+#: doc/guix.texi:23155
 msgid "Body of the location block, specified as a list of strings. This can contain many configuration directives.  For example, to pass requests to a upstream server group defined using an @code{nginx-upstream-configuration} block, the following directive would be specified in the body @samp{(list \"proxy_pass http://upstream-name;\")}."
 msgstr "Der Rumpf des location-Blocks, der als eine Liste von Zeichenketten angegeben werden muss. Er kann viele Konfigurationsdirektiven enthalten, zum Beispiel können Anfragen an eine Upstream-Servergruppe weitergeleitet werden, die mit einem @code{nginx-upstream-configuration}-Block angegeben wurde, indem diese Direktive im Rumpf angegeben wird: @samp{(list \"proxy_pass http://upstream-name;\")}."
 
 #. type: deftp
-#: doc/guix.texi:20446
+#: doc/guix.texi:23159
 #, no-wrap
 msgid "{Data Type} nginx-named-location-configuration"
 msgstr "{Datentyp} nginx-named-location-configuration"
 
 #. type: deftp
-#: doc/guix.texi:20451
+#: doc/guix.texi:23164
 msgid "Data type representing the configuration of an nginx named location block.  Named location blocks are used for request redirection, and not used for regular request processing.  This type has the following parameters:"
 msgstr "Der Datentyp repräsentiert die Konfiguration eines mit Namen versehenen nginx-location-Blocks („Named Location Block“). Ein mit Namen versehener location-Block wird zur Umleitung von Anfragen benutzt und nicht für die normale Anfrageverarbeitung. Dieser Typ hat die folgenden Parameter:"
 
 #. type: table
-#: doc/guix.texi:20455
+#: doc/guix.texi:23168
 msgid "Name to identify this location block."
 msgstr "Der Name, mit dem dieser location-Block identifiziert wird."
 
 #. type: table
-#: doc/guix.texi:20461
+#: doc/guix.texi:23174
 msgid "@xref{nginx-location-configuration body}, as the body for named location blocks can be used in a similar way to the @code{nginx-location-configuration body}.  One restriction is that the body of a named location block cannot contain location blocks."
 msgstr "Siehe @ref{nginx-location-configuration body}, weil der Rumpf („Body“) eines mit Namen versehenen location-Blocks wie ein @code{nginx-location-configuration body} benutzt werden kann. Eine Einschränkung ist, dass der Rumpf eines mit Namen versehenen location-Blocks keine location-Blöcke enthalten kann."
 
 #. type: subsubheading
-#: doc/guix.texi:20465
+#: doc/guix.texi:23178
 #, no-wrap
 msgid "Varnish Cache"
 msgstr "Varnish Cache"
 
 #. type: cindex
-#: doc/guix.texi:20466
+#: doc/guix.texi:23179
 #, no-wrap
 msgid "Varnish"
 msgstr "Varnish"
 
 #. type: Plain text
-#: doc/guix.texi:20471
+#: doc/guix.texi:23184
 msgid "Varnish is a fast cache server that sits in between web applications and end users.  It proxies requests from clients and caches the accessed URLs such that multiple requests for the same resource only creates one request to the back-end."
 msgstr "Varnish ist ein schneller zwischenspeichernder Server, der zwischen Web-Anwendungen und deren Endbenutzern sitzt. Er leitet Anfragen von Clients weiter und lagert die URLs, auf die zugegriffen wird, in einen Zwischenspeicher ein, damit bei mehreren Anfragen auf dieselbe Ressource nur eine Anfrage an die Hintergrundanwendung gestellt wird."
 
 #. type: defvr
-#: doc/guix.texi:20472
+#: doc/guix.texi:23185
 #, no-wrap
 msgid "{Scheme Variable} varnish-service-type"
 msgstr "{Scheme-Variable} varnish-service-type"
 
 #. type: defvr
-#: doc/guix.texi:20474
+#: doc/guix.texi:23187
 msgid "Service type for the Varnish daemon."
 msgstr "Diensttyp für den Varnish-Daemon."
 
 #. type: deftp
-#: doc/guix.texi:20476
+#: doc/guix.texi:23189
 #, no-wrap
 msgid "{Data Type} varnish-configuration"
 msgstr "{Datentyp} varnish-configuration"
 
 #. type: deftp
-#: doc/guix.texi:20479
+#: doc/guix.texi:23192
 msgid "Data type representing the @code{varnish} service configuration.  This type has the following parameters:"
 msgstr "Der Datentyp, der die Konfiguration des @code{varnish}-Dienstes repräsentiert. Dieser Typ hat die folgenden Parameter:"
 
 #. type: item
-#: doc/guix.texi:20481
+#: doc/guix.texi:23194
 #, no-wrap
 msgid "@code{package} (default: @code{varnish})"
 msgstr "@code{package} (Vorgabe: @code{varnish})"
 
 #. type: table
-#: doc/guix.texi:20483
+#: doc/guix.texi:23196
 msgid "The Varnish package to use."
 msgstr "Das Varnish-Paket, was benutzt werden soll."
 
 #. type: item
-#: doc/guix.texi:20484
+#: doc/guix.texi:23197
 #, no-wrap
 msgid "@code{name} (default: @code{\"default\"})"
 msgstr "@code{name} (Vorgabe: @code{\"default\"})"
 
 #. type: table
-#: doc/guix.texi:20489
+#: doc/guix.texi:23202
 msgid "A name for this Varnish instance.  Varnish will create a directory in @file{/var/varnish/} with this name and keep temporary files there.  If the name starts with a forward slash, it is interpreted as an absolute directory name."
 msgstr "Ein Name für diese Varnish-Instanz. Varnish wird ein Verzeichnis in @file{/var/varnish/} mit diesem Namen erzeugen und dort temporäre Dateien speichern. Wenn der Name mit einem Schrägstrich beginnt, wird er als absoluter Verzeichnispfad interpretiert."
 
 #. type: table
-#: doc/guix.texi:20492
+#: doc/guix.texi:23205
 msgid "Pass the @code{-n} argument to other Varnish programs to connect to the named instance, e.g.@: @command{varnishncsa -n default}."
 msgstr "Übergeben Sie die Befehlszeilenoption @code{-n} an andere Varnish-Programme, um sich mit der Instanz diesen Namens zu verbinden, z.B.@: @command{varnishncsa -n default}."
 
 #. type: item
-#: doc/guix.texi:20493
+#: doc/guix.texi:23206
 #, no-wrap
 msgid "@code{backend} (default: @code{\"localhost:8080\"})"
 msgstr "@code{backend} (Vorgabe: @code{\"localhost:8080\"})"
 
 #. type: table
-#: doc/guix.texi:20495
+#: doc/guix.texi:23208
 msgid "The backend to use.  This option has no effect if @code{vcl} is set."
 msgstr "Welcher Hintergrunddienst benutzt werden soll. Diese Option wird ignoriert, wenn @code{vcl} gesetzt ist."
 
 #. type: item
-#: doc/guix.texi:20496
+#: doc/guix.texi:23209
 #, no-wrap
 msgid "@code{vcl} (default: #f)"
 msgstr "@code{vcl} (Vorgabe: #f)"
 
 #. type: table
-#: doc/guix.texi:20501
+#: doc/guix.texi:23214
 msgid "The @dfn{VCL} (Varnish Configuration Language) program to run.  If this is @code{#f}, Varnish will proxy @code{backend} using the default configuration.  Otherwise this must be a file-like object with valid VCL syntax."
 msgstr "Das @dfn{VCL}-Programm (in der Varnish Configuration Language), das ausgeführt werden soll. Ist dies auf @code{#f} gesetzt, fungiert Varnish als Proxy für den Hintergrunddienst @code{backend} mit der voreingestellten Konfiguration. Andernfalls muss dies ein dateiartiges Objekt mit gültiger VCL-Syntax sein."
 
 #. type: table
-#: doc/guix.texi:20505
+#: doc/guix.texi:23218
 msgid "For example, to mirror @url{https://www.gnu.org,www.gnu.org} with VCL you can do something along these lines:"
 msgstr "Um zum Beispiel mit VCL einen Spiegelserver für @url{https://www.gnu.org,www.gnu.org} einzurichten, können Sie so etwas benutzen:"
 
 #. type: lisp
-#: doc/guix.texi:20511
+#: doc/guix.texi:23224
 #, no-wrap
 msgid ""
 "(define %gnu-mirror\n"
@@ -38402,7 +43026,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:20519
+#: doc/guix.texi:23232
 #, no-wrap
 msgid ""
 "(operating-system\n"
@@ -38414,7 +43038,7 @@ msgid ""
 "                  %base-services)))\n"
 msgstr ""
 "(operating-system\n"
-"  ;; @dots{}\n"
+"  ;; …\n"
 "  (services (cons (service varnish-service-type\n"
 "                           (varnish-configuration\n"
 "                            (listen '(\":80\"))\n"
@@ -38422,82 +43046,82 @@ msgstr ""
 "                  %base-services)))\n"
 
 #. type: table
-#: doc/guix.texi:20523
+#: doc/guix.texi:23236
 msgid "The configuration of an already running Varnish instance can be inspected and changed using the @command{varnishadm} program."
 msgstr "Die Konfiguration einer bereits laufenden Varnish-Instanz kann mit dem Programm @command{varnishadm} eingesehen und verändert werden."
 
 #. type: table
-#: doc/guix.texi:20527
+#: doc/guix.texi:23240
 msgid "Consult the @url{https://varnish-cache.org/docs/,Varnish User Guide} and @url{https://book.varnish-software.com/4.0/,Varnish Book} for comprehensive documentation on Varnish and its configuration language."
 msgstr "Ziehen Sie die @url{https://varnish-cache.org/docs/,Varnish User Guide} und das @url{https://book.varnish-software.com/4.0/,Varnish Book} zu Rate, wenn Sie eine umfassende Dokumentation zu Varnish und seiner Konfigurationssprache suchen."
 
 #. type: item
-#: doc/guix.texi:20528
+#: doc/guix.texi:23241
 #, no-wrap
 msgid "@code{listen} (default: @code{'(\"localhost:80\")})"
 msgstr "@code{listen} (Vorgabe: @code{'(\"localhost:80\")})"
 
 #. type: table
-#: doc/guix.texi:20530
+#: doc/guix.texi:23243
 msgid "List of addresses Varnish will listen on."
 msgstr "Liste der Adressen, auf denen Varnish lauschen soll."
 
 #. type: item
-#: doc/guix.texi:20531
+#: doc/guix.texi:23244
 #, no-wrap
 msgid "@code{storage} (default: @code{'(\"malloc,128m\")})"
 msgstr "@code{storage} (Vorgabe: @code{'(\"malloc,128m\")})"
 
 #. type: table
-#: doc/guix.texi:20533
+#: doc/guix.texi:23246
 msgid "List of storage backends that will be available in VCL."
 msgstr "Liste der Speicher-Hintergrunddienste („Storage Backends“), die von der VCL aus benutzt werden können."
 
 #. type: item
-#: doc/guix.texi:20534
+#: doc/guix.texi:23247
 #, no-wrap
 msgid "@code{parameters} (default: @code{'()})"
 msgstr "@code{parameters} (Vorgabe: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:20536
+#: doc/guix.texi:23249
 msgid "List of run-time parameters in the form @code{'((\"parameter\" . \"value\"))}."
 msgstr "Liste der Laufzeitparameter von der Form @code{'((\"Parameter\" . \"Wert\"))}."
 
 #. type: table
-#: doc/guix.texi:20539
+#: doc/guix.texi:23252
 msgid "Additional arguments to pass to the @command{varnishd} process."
 msgstr "Zusätzliche Argumente, die an den @command{varnishd}-Prozess übergeben werden."
 
 #. type: cindex
-#: doc/guix.texi:20543 doc/guix.texi:20544
+#: doc/guix.texi:23256 doc/guix.texi:23257
 #, no-wrap
 msgid "Patchwork"
 msgstr "Patchwork"
 
 #. type: Plain text
-#: doc/guix.texi:20547
+#: doc/guix.texi:23260
 msgid "Patchwork is a patch tracking system.  It can collect patches sent to a mailing list, and display them in a web interface."
 msgstr "Patchwork ist ein System, um eingereichten Patches zu folgen. Es kann an eine Mailing-Liste geschickte Patches sammeln und auf einer Web-Oberfläche anzeigen."
 
 #. type: defvr
-#: doc/guix.texi:20548
+#: doc/guix.texi:23261
 #, no-wrap
 msgid "{Scheme Variable} patchwork-service-type"
 msgstr "{Scheme-Variable} patchwork-service-type"
 
 #. type: defvr
-#: doc/guix.texi:20550
+#: doc/guix.texi:23263
 msgid "Service type for Patchwork."
 msgstr "Diensttyp für Patchwork."
 
 #. type: Plain text
-#: doc/guix.texi:20554
+#: doc/guix.texi:23267
 msgid "The following example is an example of a minimal service for Patchwork, for the @code{patchwork.example.com} domain."
 msgstr "Es folgt ein Minimalbeispiel für einen Patchwork-Dienst, der auf der Domain @code{patchwork.example.com} läuft."
 
 #. type: lisp
-#: doc/guix.texi:20574
+#: doc/guix.texi:23287
 #, no-wrap
 msgid ""
 "(service patchwork-service-type\n"
@@ -38541,894 +43165,949 @@ msgstr ""
 "\n"
 
 #. type: Plain text
-#: doc/guix.texi:20580
+#: doc/guix.texi:23293
 msgid "There are three records for configuring the Patchwork service.  The @code{<patchwork-configuration>} relates to the configuration for Patchwork within the HTTPD service."
 msgstr "Der Patchwork-Dienst wird über drei Verbundsobjekte konfiguriert. Die @code{<patchwork-configuration>} hat mit der Konfiguration von Patchwork innerhalb des HTTPD-Dienstes zu tun."
 
 #. type: Plain text
-#: doc/guix.texi:20584
+#: doc/guix.texi:23297
 msgid "The @code{settings-module} field within the @code{<patchwork-configuration>} record can be populated with the @code{<patchwork-settings-module>} record, which describes a settings module that is generated within the Guix store."
 msgstr "Das @code{settings-module}-Feld innerhalb des @code{<patchwork-configuration>}-Verbundsobjekts kann mit einem @code{<patchwork-settings-module>}-Verbundsobjekt ausgefüllt werden, das ein im Guix-Store angelegtes Einstellungsmodul beschreibt."
 
 #. type: Plain text
-#: doc/guix.texi:20588
+#: doc/guix.texi:23301
 msgid "For the @code{database-configuration} field within the @code{<patchwork-settings-module>}, the @code{<patchwork-database-configuration>} must be used."
 msgstr "Für das @code{database-configuration}-Feld innerhalb des @code{<patchwork-settings-module>} muss eine @code{<patchwork-database-configuration>} benutzt werden."
 
 #. type: deftp
-#: doc/guix.texi:20589
+#: doc/guix.texi:23302
 #, no-wrap
 msgid "{Data Type} patchwork-configuration"
 msgstr "{Datentyp} patchwork-configuration"
 
 #. type: deftp
-#: doc/guix.texi:20592
+#: doc/guix.texi:23305
 msgid "Data type representing the Patchwork service configuration.  This type has the following parameters:"
 msgstr "Der Datentyp, der die Konfiguration des Patchwork-Dienstes repräsentiert. Dieser Typ hat die folgenden Parameter:"
 
 #. type: item
-#: doc/guix.texi:20594
+#: doc/guix.texi:23307
 #, no-wrap
 msgid "@code{patchwork} (default: @code{patchwork})"
 msgstr "@code{patchwork} (Vorgabe: @code{patchwork})"
 
 #. type: table
-#: doc/guix.texi:20596
+#: doc/guix.texi:23309
 msgid "The Patchwork package to use."
 msgstr "Welches Patchwork-Paket benutzt werden soll."
 
 #. type: code{#1}
-#: doc/guix.texi:20597
+#: doc/guix.texi:23310
 #, no-wrap
 msgid "domain"
 msgstr "domain"
 
 #. type: table
-#: doc/guix.texi:20600
+#: doc/guix.texi:23313
 msgid "The domain to use for Patchwork, this is used in the HTTPD service virtual host."
 msgstr "Welche Domain für Patchwork benutzt werden soll. Sie findet Verwendung in Patchworks virtuellen Rechner („Virtual Host“) für den HTTPD-Dienst."
 
 #. type: code{#1}
-#: doc/guix.texi:20601
+#: doc/guix.texi:23314
 #, no-wrap
 msgid "settings-module"
 msgstr "settings-module"
 
 #. type: table
-#: doc/guix.texi:20607
+#: doc/guix.texi:23320
 msgid "The settings module to use for Patchwork. As a Django application, Patchwork is configured with a Python module containing the settings. This can either be an instance of the @code{<patchwork-settings-module>} record, any other record that represents the settings in the store, or a directory outside of the store."
 msgstr "Das durch Patchwork benutzte Einstellungsmodul. Als eine Django-Anwendung wird Patchwork mit einem Python-Modul konfiguriert, das die Einstellungen speichert. Es kann entweder eine Instanz des @code{<patchwork-settings-module>}-Verbundstyps sein, ein beliebiges anderes Verbundsobjekt sein, das die Einstellungen im Store repräsentiert, oder ein Verzeichnis außerhalb des Stores."
 
 #. type: item
-#: doc/guix.texi:20608
+#: doc/guix.texi:23321
 #, no-wrap
 msgid "@code{static-path}  (default: @code{\"/static/\"})"
 msgstr "@code{static-path}  (Vorgabe: @code{\"/static/\"})"
 
 #. type: table
-#: doc/guix.texi:20610
+#: doc/guix.texi:23323
 msgid "The path under which the HTTPD service should serve the static files."
 msgstr "Der Pfad, auf dem der HTTPD-Dienst die statischen Dateien anbieten soll."
 
 #. type: code{#1}
-#: doc/guix.texi:20611
+#: doc/guix.texi:23324
 #, no-wrap
 msgid "getmail-retriever-config"
 msgstr "getmail-retriever-config"
 
 #. type: table
-#: doc/guix.texi:20615
+#: doc/guix.texi:23328
 msgid "The getmail-retriever-configuration record value to use with Patchwork. Getmail will be configured with this value, the messages will be delivered to Patchwork."
 msgstr "Das durch Patchwork benutzte getmail-retriever-configuration-Verbundsobjekt. Getmail wird mit diesem Wert konfiguriert. Die Mitteilungen werden mit Patchwork als Empfänger zugestellt."
 
 #. type: deftp
-#: doc/guix.texi:20619
+#: doc/guix.texi:23332
 #, no-wrap
 msgid "{Data Type} patchwork-settings-module"
 msgstr "{Datentyp} patchwork-settings-module"
 
 #. type: deftp
-#: doc/guix.texi:20624
+#: doc/guix.texi:23337
 msgid "Data type representing a settings module for Patchwork.  Some of these settings relate directly to Patchwork, but others relate to Django, the web framework used by Patchwork, or the Django Rest Framework library.  This type has the following parameters:"
 msgstr "Der Datentyp, der das Einstellungsmodul für Patchwork repräsentiert. Manche dieser Einstellungen haben direkt mit Patchwork zu tun, andere beziehen sich auf Django, dem Web-Framework auf dem Patchwork aufsetzt, oder dessen Django-Rest-Framework-Bibliothek. Dieser Typ verfügt über die folgenden Parameter:"
 
 #. type: item
-#: doc/guix.texi:20626
+#: doc/guix.texi:23339
 #, no-wrap
 msgid "@code{database-configuration} (default: @code{(patchwork-database-configuration)})"
 msgstr "@code{database-configuration} (Vorgabe: @code{(patchwork-database-configuration)})"
 
 #. type: table
-#: doc/guix.texi:20629
+#: doc/guix.texi:23342
 msgid "The database connection settings used for Patchwork.  See the @code{<patchwork-database-configuration>} record type for more information."
 msgstr "Die für Patchwork benutzten Datenbankverbindungseinstellungen. Siehe den @code{<patchwork-database-configuration>}-Verbundstyp für weitere Informationen."
 
 #. type: item
-#: doc/guix.texi:20630
+#: doc/guix.texi:23343
 #, no-wrap
 msgid "@code{secret-key-file} (default: @code{\"/etc/patchwork/django-secret-key\"})"
 msgstr "@code{secret-key-file} (Vorgabe: @code{\"/etc/patchwork/django-secret-key\"})"
 
 #. type: table
-#: doc/guix.texi:20633
+#: doc/guix.texi:23346
 msgid "Patchwork, as a Django web application uses a secret key for cryptographically signing values.  This file should contain a unique unpredictable value."
 msgstr "Patchwork benutzt als eine Django-Webanwendung einen geheimen Schlüssel, um Werte kryptographisch zu signieren. Diese Datei sollte einen einzigartigen, unvorhersehbaren Wert enthalten."
 
 #. type: table
-#: doc/guix.texi:20636
+#: doc/guix.texi:23349
 msgid "If this file does not exist, it will be created and populated with a random value by the patchwork-setup shepherd service."
 msgstr "Wenn diese Datei nicht existiert, wird sie erzeugt und ein zufälliger Wert wird durch den Shepherd-Dienst für patchwork-setup hineingeschrieben."
 
 #. type: table
-#: doc/guix.texi:20638
+#: doc/guix.texi:23351
 msgid "This setting relates to Django."
 msgstr "Diese Einstellung bezieht sich auf Django."
 
 #. type: code{#1}
-#: doc/guix.texi:20639
+#: doc/guix.texi:23352
 #, no-wrap
 msgid "allowed-hosts"
 msgstr "allowed-hosts"
 
 #. type: table
-#: doc/guix.texi:20642
+#: doc/guix.texi:23355
 msgid "A list of valid hosts for this Patchwork service. This should at least include the domain specified in the @code{<patchwork-configuration>} record."
 msgstr "Eine Liste zulässiger Netzwerkschnittstellen (Hosts), auf denen dieser Patchwork-Dienst antwortet. Sie sollte wenigstens die im @code{<patchwork-configuration>}-Verbundsobjekt genannte Domain enthalten."
 
 #. type: table
-#: doc/guix.texi:20644 doc/guix.texi:20658 doc/guix.texi:20664
-#: doc/guix.texi:20670
+#: doc/guix.texi:23357 doc/guix.texi:23371 doc/guix.texi:23377
+#: doc/guix.texi:23383
 msgid "This is a Django setting."
 msgstr "Dies ist eine Django-Einstellung."
 
 #. type: code{#1}
-#: doc/guix.texi:20645
+#: doc/guix.texi:23358
 #, no-wrap
 msgid "default-from-email"
 msgstr "default-from-email"
 
 #. type: table
-#: doc/guix.texi:20647
+#: doc/guix.texi:23360
 msgid "The email address from which Patchwork should send email by default."
 msgstr "Die E-Mail-Adresse, von der aus Patchwork nach Voreinstellung E-Mails verschicken soll."
 
 #. type: table
-#: doc/guix.texi:20649 doc/guix.texi:20675 doc/guix.texi:20680
-#: doc/guix.texi:20685
+#: doc/guix.texi:23362 doc/guix.texi:23388 doc/guix.texi:23393
+#: doc/guix.texi:23398
 msgid "This is a Patchwork setting."
 msgstr "Dies ist eine Patchwork-Einstellung."
 
 #. type: item
-#: doc/guix.texi:20650
+#: doc/guix.texi:23363
 #, no-wrap
 msgid "@code{static-url} (default: @code{#f})"
 msgstr "@code{static-url} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:20653
+#: doc/guix.texi:23366
 msgid "The URL to use when serving static assets. It can be part of a URL, or a full URL, but must end in a @code{/}."
 msgstr "Die URL, über die statische Dokumente angeboten werden. Es kann eine teilweise URL oder eine vollständige URL angegeben werden, aber sie muss auf @code{/} enden."
 
 #. type: table
-#: doc/guix.texi:20656
+#: doc/guix.texi:23369
 msgid "If the default value is used, the @code{static-path} value from the @code{<patchwork-configuration>} record will be used."
 msgstr "Wenn der Vorgabewert benutzt wird, wird der @code{static-path}-Wert aus dem @code{<patchwork-configuration>}-Verbundsobjekt benutzt."
 
 #. type: item
-#: doc/guix.texi:20659
+#: doc/guix.texi:23372
 #, no-wrap
 msgid "@code{admins} (default: @code{'()})"
 msgstr "@code{admins} (Vorgabe: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:20662
+#: doc/guix.texi:23375
 msgid "Email addresses to send the details of errors that occur.  Each value should be a list containing two elements, the name and then the email address."
 msgstr "Die E-Mail-Adressen, an die Details zu auftretenden Fehlern versendet werden. Jeder Wert sollte eine zweielementige Liste mit dem Namen und der E-Mail-Adresse sein."
 
 #. type: table
-#: doc/guix.texi:20668
+#: doc/guix.texi:23381
 msgid "Whether to run Patchwork in debug mode.  If set to @code{#t}, detailed error messages will be shown."
 msgstr "Ob Patchwork im Fehlersuchmodus („Debug Mode“) ausgeführt werden soll. Wenn dies auf @code{#t} steht, werden detaillierte Fehlermeldungen angezeigt."
 
 #. type: item
-#: doc/guix.texi:20671
+#: doc/guix.texi:23384
 #, no-wrap
 msgid "@code{enable-rest-api?} (default: @code{#t})"
 msgstr "@code{enable-rest-api?} (Vorgabe: @code{#t})"
 
 #. type: table
-#: doc/guix.texi:20673
+#: doc/guix.texi:23386
 msgid "Whether to enable the Patchwork REST API."
 msgstr "Ob Patchworks REST-Programmschnittstelle („REST-API“) aktiviert werden soll."
 
 #. type: item
-#: doc/guix.texi:20676
+#: doc/guix.texi:23389
 #, no-wrap
 msgid "@code{enable-xmlrpc?} (default: @code{#t})"
 msgstr "@code{enable-xmlrpc?} (Vorgabe: @code{#t})"
 
 #. type: table
-#: doc/guix.texi:20678
+#: doc/guix.texi:23391
 msgid "Whether to enable the XML RPC API."
 msgstr "Ob die XML-Programmschnittstelle für entfernte Prozeduraufrufe („XML-RPC-API“) aktiviert werden soll."
 
 #. type: item
-#: doc/guix.texi:20681
+#: doc/guix.texi:23394
 #, no-wrap
 msgid "@code{force-https-links?} (default: @code{#t})"
 msgstr "@code{force-https-links?} (Vorgabe: @code{#t})"
 
 #. type: table
-#: doc/guix.texi:20683
+#: doc/guix.texi:23396
 msgid "Whether to use HTTPS links on Patchwork pages."
 msgstr "Ob auf den Webseiten von Patchwork die Verweise auf andere Seiten HTTPS verwenden sollen."
 
 #. type: table
-#: doc/guix.texi:20688
+#: doc/guix.texi:23401
 msgid "Extra code to place at the end of the Patchwork settings module."
 msgstr "Zusätzlicher Code, der am Ende des Patchwork-Einstellungsmoduls platziert werden soll."
 
 #. type: deftp
-#: doc/guix.texi:20692
+#: doc/guix.texi:23405
 #, no-wrap
 msgid "{Data Type} patchwork-database-configuration"
 msgstr "{Datentyp} patchwork-database-configuration"
 
 #. type: deftp
-#: doc/guix.texi:20694
+#: doc/guix.texi:23407
 msgid "Data type representing the database configuration for Patchwork."
 msgstr "Der Datentyp, der die Datenbankkonfiguration für Patchwork repräsentiert."
 
 #. type: item
-#: doc/guix.texi:20696
+#: doc/guix.texi:23409
 #, no-wrap
 msgid "@code{engine} (default: @code{\"django.db.backends.postgresql_psycopg2\"})"
 msgstr "@code{engine} (Vorgabe: @code{\"django.db.backends.postgresql_psycopg2\"})"
 
 #. type: table
-#: doc/guix.texi:20698
+#: doc/guix.texi:23411
 msgid "The database engine to use."
 msgstr "Welcher Datenbanktreiber („Engine“) benutzt werden soll."
 
 #. type: item
-#: doc/guix.texi:20699
+#: doc/guix.texi:23412
 #, no-wrap
 msgid "@code{name} (default: @code{\"patchwork\"})"
 msgstr "@code{name} (Vorgabe: @code{\"patchwork\"})"
 
 #. type: table
-#: doc/guix.texi:20701
+#: doc/guix.texi:23414
 msgid "The name of the database to use."
 msgstr "Der Name der zu benutzenden Datenbank."
 
 #. type: table
-#: doc/guix.texi:20704
+#: doc/guix.texi:23417
 msgid "The user to connect to the database as."
 msgstr "Der Benutzer, als der sich Patchwork mit der Datenbank verbindet."
 
 #. type: item
-#: doc/guix.texi:20705
+#: doc/guix.texi:23418
 #, no-wrap
 msgid "@code{password} (default: @code{\"\"})"
 msgstr "@code{password} (Vorgabe: @code{\"\"})"
 
 #. type: table
-#: doc/guix.texi:20707
+#: doc/guix.texi:23420
 msgid "The password to use when connecting to the database."
 msgstr "Das Passwort, das zum Herstellen einer Verbindung zur Datenbank verwendet werden soll."
 
 #. type: item
-#: doc/guix.texi:20708
+#: doc/guix.texi:23421
 #, no-wrap
 msgid "@code{host} (default: @code{\"\"})"
 msgstr "@code{host} (Vorgabe: @code{\"\"})"
 
 #. type: table
-#: doc/guix.texi:20710
+#: doc/guix.texi:23423
 msgid "The host to make the database connection to."
 msgstr "Der Rechner, mit dem die Datenbankverbindung hergestellt wird."
 
 #. type: item
-#: doc/guix.texi:20711
+#: doc/guix.texi:23424
 #, no-wrap
 msgid "@code{port} (default: @code{\"\"})"
 msgstr "@code{port} (Vorgabe: @code{\"\"})"
 
 #. type: table
-#: doc/guix.texi:20713
+#: doc/guix.texi:23426
 msgid "The port on which to connect to the database."
 msgstr "Der Port, auf dem sich Patchwork mit der Datenbank verbindet."
 
 #. type: subsubheading
-#: doc/guix.texi:20717
+#: doc/guix.texi:23430
 #, no-wrap
 msgid "Mumi"
 msgstr "Mumi"
 
 #. type: cindex
-#: doc/guix.texi:20719
+#: doc/guix.texi:23432
 #, no-wrap
 msgid "Mumi, Debbugs Web interface"
 msgstr "Mumi, Weboberfläche für Debbugs"
 
 #. type: cindex
-#: doc/guix.texi:20720
+#: doc/guix.texi:23433
 #, no-wrap
 msgid "Debbugs, Mumi Web interface"
 msgstr "Debbugs, Mumi-Weboberfläche"
 
 #. type: Plain text
-#: doc/guix.texi:20725
+#: doc/guix.texi:23438
 msgid "@uref{https://git.elephly.net/gitweb.cgi?p=software/mumi.git, Mumi} is a Web interface to the Debbugs bug tracker, by default for @uref{https://bugs.gnu.org, the GNU instance}.  Mumi is a Web server, but it also fetches and indexes mail retrieved from Debbugs."
 msgstr "@uref{https://git.elephly.net/gitweb.cgi?p=software/mumi.git, Mumi} ist eine Weboberfläche für Debbugs, einem System, um Fehlerberichte zu verwalten. Nach Vorgabe zeigt es @uref{https://bugs.gnu.org, die bei GNU angebotene Debbugs-Instanz}. Mumi ist ein Web-Server, er lädt aber auch E-Mails von Debbugs herunter und indiziert diese."
 
 #. type: defvr
-#: doc/guix.texi:20726
+#: doc/guix.texi:23439
 #, no-wrap
 msgid "{Scheme Variable} mumi-service-type"
 msgstr "{Scheme-Variable} mumi-service-type"
 
 #. type: defvr
-#: doc/guix.texi:20728
+#: doc/guix.texi:23441
 msgid "This is the service type for Mumi."
 msgstr "Dies ist der Diensttyp für Mumi."
 
 #. type: deftp
-#: doc/guix.texi:20730
+#: doc/guix.texi:23443
 #, no-wrap
 msgid "{Data Type} mumi-configuration"
 msgstr "{Datentyp} mumi-configuration"
 
 #. type: deftp
-#: doc/guix.texi:20733
+#: doc/guix.texi:23446
 msgid "Data type representing the Mumi service configuration.  This type has the following fields:"
 msgstr "Der Datentyp, der die Konfiguration des Mumi-Dienstes repräsentiert. Dieser Typ hat die folgenden Felder:"
 
 #. type: item
-#: doc/guix.texi:20735
+#: doc/guix.texi:23448
 #, no-wrap
 msgid "@code{mumi} (default: @code{mumi})"
 msgstr "@code{mumi} (Vorgabe: @code{mumi})"
 
 #. type: table
-#: doc/guix.texi:20737
+#: doc/guix.texi:23450
 msgid "The Mumi package to use."
 msgstr "Das zu verwendende Mumi-Paket."
 
 #. type: item
-#: doc/guix.texi:20738
+#: doc/guix.texi:23451
 #, no-wrap
 msgid "@code{mailer?} (default: @code{#true})"
 msgstr "@code{mailer?} (Vorgabe: @code{#true})"
 
 #. type: table
-#: doc/guix.texi:20740
+#: doc/guix.texi:23453
 msgid "Whether to enable or disable the mailer component."
 msgstr "Ob die Komponente zum Mailversand aktiviert sein soll oder nicht."
 
 #. type: code{#1}
-#: doc/guix.texi:20741
+#: doc/guix.texi:23454
 #, no-wrap
 msgid "mumi-configuration-sender"
 msgstr "mumi-configuration-sender"
 
 #. type: table
-#: doc/guix.texi:20743
+#: doc/guix.texi:23456
 msgid "The email address used as the sender for comments."
 msgstr "Die E-Mail-Adresse, die bei Kommentaren als Absender angegeben wird."
 
 #. type: code{#1}
-#: doc/guix.texi:20744
+#: doc/guix.texi:23457
 #, no-wrap
 msgid "mumi-configuration-smtp"
 msgstr "mumi-configuration-smtp"
 
 #. type: table
-#: doc/guix.texi:20749
+#: doc/guix.texi:23462
 msgid "A URI to configure the SMTP settings for Mailutils.  This could be something like @code{sendmail:///path/to/bin/msmtp} or any other URI supported by Mailutils.  @xref{SMTP Mailboxes, SMTP Mailboxes,, mailutils, GNU@tie{}Mailutils}."
-msgstr "Eine URI, um die SMTP-Einstellungen für Mailutils einzurichten. Hierfür könnte etwas wie @code{sendmail:///path/to/bin/msmtp} angegeben werden, oder eine beliebige andere URI, die von Mailutils unterstützt wird. Siehe @ref{SMTP Mailboxes, SMTP Mailboxes,, mailutils, GNU@tie{}Mailutils}."
+msgstr "Eine URI, um die SMTP-Einstellungen für Mailutils einzurichten. Hierfür könnte etwas wie @code{sendmail:///path/to/bin/msmtp} angegeben werden, oder eine beliebige andere URI, die von Mailutils unterstützt wird. Siehe @ref{SMTP Mailboxes, SMTP-Postfächer,, mailutils, GNU@tie{}Mailutils}."
 
 #. type: subsubheading
-#: doc/guix.texi:20754
+#: doc/guix.texi:23467
 #, no-wrap
 msgid "FastCGI"
 msgstr "FastCGI"
 
 #. type: cindex
-#: doc/guix.texi:20755
+#: doc/guix.texi:23468
 #, no-wrap
 msgid "fastcgi"
 msgstr "fastcgi"
 
 #. type: cindex
-#: doc/guix.texi:20756
+#: doc/guix.texi:23469
 #, no-wrap
 msgid "fcgiwrap"
 msgstr "fcgiwrap"
 
 #. type: Plain text
-#: doc/guix.texi:20763
+#: doc/guix.texi:23476
 msgid "FastCGI is an interface between the front-end and the back-end of a web service.  It is a somewhat legacy facility; new web services should generally just talk HTTP between the front-end and the back-end.  However there are a number of back-end services such as PHP or the optimized HTTP Git repository access that use FastCGI, so we have support for it in Guix."
 msgstr "FastCGI ist eine Schnittstelle zwischen den Anwendungen im Vordergrund („Front-End“) und Hintergrund („Back-End“) eines Webdienstes. Die Rolle, die es ausübt, ist nicht mehr ganz aktuell, weil neue Webdienste im Allgemeinen einfach über HTTP zwischen Vorder- und Hintergrund kommunizieren sollten. Allerdings gibt es eine Menge von Hintergrunddiensten wie PHP oder den optimierten Git-Repository-Zugang über HTTP, welche FastCGI benutzen, also wird es auch in Guix unterstützt."
 
 #. type: Plain text
-#: doc/guix.texi:20770
+#: doc/guix.texi:23483
 msgid "To use FastCGI, you configure the front-end web server (e.g., nginx) to dispatch some subset of its requests to the fastcgi backend, which listens on a local TCP or UNIX socket.  There is an intermediary @code{fcgiwrap} program that sits between the actual backend process and the web server.  The front-end indicates which backend program to run, passing that information to the @code{fcgiwrap} process."
 msgstr "Um FastCGI zu benutzen, konfigurieren Sie den Webserver im Vordergrund (z.B.@: nginx) so, dass er eine Teilmenge der Anfragen an die fastcgi-Hintergrundanwendung weiterleitet, dass auf einem lokalen TCP- oder Unix-Socket lauscht. Ein dazwischenliegendes @code{fcgiwrap}-Programm sitzt zwischen dem eigentlichen Hintergrundprozess und dem Webserver. Vom Vordergrund wird angezeigt, welches Hintergrundprogramm ausgeführt werden soll. Diese Informationen werden an den @code{fcgiwrap}-Prozess übermittelt."
 
 #. type: defvr
-#: doc/guix.texi:20771
+#: doc/guix.texi:23484
 #, no-wrap
 msgid "{Scheme Variable} fcgiwrap-service-type"
 msgstr "{Scheme-Variable} fcgiwrap-service-type"
 
 #. type: defvr
-#: doc/guix.texi:20773
+#: doc/guix.texi:23486
 msgid "A service type for the @code{fcgiwrap} FastCGI proxy."
 msgstr "Ein Diensttyp für den @code{fcgiwrap}-FastCGI-Proxy."
 
 #. type: deftp
-#: doc/guix.texi:20775
+#: doc/guix.texi:23488
 #, no-wrap
 msgid "{Data Type} fcgiwrap-configuration"
 msgstr "{Datentyp} fcgiwrap-configuration"
 
 #. type: deftp
-#: doc/guix.texi:20778
+#: doc/guix.texi:23491
 msgid "Data type representing the configuration of the @code{fcgiwrap} service.  This type has the following parameters:"
 msgstr "Der Datentyp, der die Konfiguration des @code{fcgiwrap}-Dienstes repräsentiert. Dieser Typ hat die folgenden Parameter:"
 
 #. type: item
-#: doc/guix.texi:20779
+#: doc/guix.texi:23492
 #, no-wrap
 msgid "@code{package} (default: @code{fcgiwrap})"
 msgstr "@code{package} (Vorgabe: @code{fcgiwrap})"
 
 #. type: table
-#: doc/guix.texi:20781
+#: doc/guix.texi:23494
 msgid "The fcgiwrap package to use."
 msgstr "Welches fcgiwrap-Paket benutzt werden soll."
 
 #. type: item
-#: doc/guix.texi:20782
+#: doc/guix.texi:23495
 #, no-wrap
 msgid "@code{socket} (default: @code{tcp:127.0.0.1:9000})"
 msgstr "@code{socket} (Vorgabe: @code{tcp:127.0.0.1:9000})"
 
 #. type: table
-#: doc/guix.texi:20788
+#: doc/guix.texi:23501
 msgid "The socket on which the @code{fcgiwrap} process should listen, as a string.  Valid @var{socket} values include @code{unix:@var{/path/to/unix/socket}}, @code{tcp:@var{dot.ted.qu.ad}:@var{port}} and @code{tcp6:[@var{ipv6_addr}]:port}."
 msgstr "Der Socket, auf dem der @code{fcgiwrap}-Prozess lauschen soll, als eine Zeichenkette. Gültige Werte für @var{socket} wären unter anderem @code{unix:@var{/pfad/zum/unix/socket}}, @code{tcp:@var{vier.teile.gepunkt.et}:@var{Port}} und @code{tcp6:[@var{IPv6-Adresse}]:Port}."
 
 #. type: item
-#: doc/guix.texi:20789
+#: doc/guix.texi:23502
 #, no-wrap
 msgid "@code{user} (default: @code{fcgiwrap})"
 msgstr "@code{user} (Vorgabe: @code{fcgiwrap})"
 
 #. type: itemx
-#: doc/guix.texi:20790
+#: doc/guix.texi:23503
 #, no-wrap
 msgid "@code{group} (default: @code{fcgiwrap})"
 msgstr "@code{group} (Vorgabe: @code{fcgiwrap})"
 
 #. type: table
-#: doc/guix.texi:20795
+#: doc/guix.texi:23508
 msgid "The user and group names, as strings, under which to run the @code{fcgiwrap} process.  The @code{fastcgi} service will ensure that if the user asks for the specific user or group names @code{fcgiwrap} that the corresponding user and/or group is present on the system."
 msgstr "Die Benutzerkonten- und Gruppennamen als Zeichenketten, unter denen der @code{fcgiwrap}-Prozess ausgeführt werden soll. Der @code{fastcgi}-Dienst wird sicherstellen, dass, wenn der Nutzer den Benutzer- oder Gruppennamen @code{fcgiwrap} verlangt, der entsprechende Benutzer und/oder Gruppe auch auf dem System existiert."
 
 #. type: table
-#: doc/guix.texi:20802
+#: doc/guix.texi:23515
 msgid "It is possible to configure a FastCGI-backed web service to pass HTTP authentication information from the front-end to the back-end, and to allow @code{fcgiwrap} to run the back-end process as a corresponding local user.  To enable this capability on the back-end, run @code{fcgiwrap} as the @code{root} user and group.  Note that this capability also has to be configured on the front-end as well."
 msgstr "Es ist möglich, einen FastCGI-gestützten Webdienst so zu konfigurieren, dass er HTTP-Authentisierungsinformationen vom Vordergrundserver an das Hintergrundsystem weiterreicht und es @code{fcgiwrap} möglich macht, den Hintergrundprozess als ein entsprechender lokaler Nutzer auszuführen. Um dem Hintergrundsystem diese Funktionalität anzubieten, lassen Sie @code{fcgiwrap} als der Administratornutzer @code{root} mit selbiger Gruppe ausführen. Beachten Sie, dass die Funktionalität auch auf dem Vordergrundsystem erst eingerichtet werden muss."
 
 #. type: cindex
-#: doc/guix.texi:20805
+#: doc/guix.texi:23518
 #, no-wrap
 msgid "php-fpm"
 msgstr "php-fpm"
 
 #. type: Plain text
-#: doc/guix.texi:20808
+#: doc/guix.texi:23521
 msgid "PHP-FPM (FastCGI Process Manager) is an alternative PHP FastCGI implementation with some additional features useful for sites of any size."
 msgstr "PHP-FPM (FastCGI Process Manager) ist eine alternative PHP-FastCGI-Implementierung, die über einige zusätzliche Funktionalitäten verfügt, die für Webauftritte jeder Größe nützlich sind."
 
 #. type: Plain text
-#: doc/guix.texi:20810
+#: doc/guix.texi:23523
 msgid "These features include:"
 msgstr "Zu diesen Funktionalitäten gehören:"
 
 #. type: item
-#: doc/guix.texi:20811
+#: doc/guix.texi:23524
 #, no-wrap
 msgid "Adaptive process spawning"
 msgstr "Prozesserzeugung nach Bedarf"
 
 #. type: item
-#: doc/guix.texi:20812
+#: doc/guix.texi:23525
 #, no-wrap
 msgid "Basic statistics (similar to Apache's mod_status)"
 msgstr "Grundlegende Statistiken (ähnlich wie Apaches mod_status)"
 
 #. type: item
-#: doc/guix.texi:20813
+#: doc/guix.texi:23526
 #, no-wrap
 msgid "Advanced process management with graceful stop/start"
 msgstr "Fortschrittliche Prozessverwaltung mit sanftem Stoppen und Starten"
 
 #. type: item
-#: doc/guix.texi:20814
+#: doc/guix.texi:23527
 #, no-wrap
 msgid "Ability to start workers with different uid/gid/chroot/environment"
 msgstr "Die Möglichkeit, Arbeiter-Threads mit verschiedenen UIDs, GIDs, Chroot- oder Umgebungseinstellungen zu starten"
 
 #. type: itemize
-#: doc/guix.texi:20816
+#: doc/guix.texi:23529
 msgid "and different php.ini (replaces safe_mode)"
 msgstr "und mit verschiedener php.ini (als Ersatz für safe_mode)"
 
 #. type: item
-#: doc/guix.texi:20816
+#: doc/guix.texi:23529
 #, no-wrap
 msgid "Stdout & stderr logging"
 msgstr "Protokollierung der Standard- und Standardfehlerausgabe"
 
 #. type: item
-#: doc/guix.texi:20817
+#: doc/guix.texi:23530
 #, no-wrap
 msgid "Emergency restart in case of accidental opcode cache destruction"
 msgstr "Neustart im Notfall einer ungewollten Zerstörung des Befehlscode-Zwischenspeichers"
 
 #. type: item
-#: doc/guix.texi:20818
+#: doc/guix.texi:23531
 #, no-wrap
 msgid "Accelerated upload support"
 msgstr "Unterstützung für beschleunigtes Hochladen"
 
 #. type: item
-#: doc/guix.texi:20819
+#: doc/guix.texi:23532
 #, no-wrap
 msgid "Support for a \"slowlog\""
 msgstr "Unterstützung für „langsames Protokollieren“ („slowlog“)"
 
 #. type: item
-#: doc/guix.texi:20820
+#: doc/guix.texi:23533
 #, no-wrap
 msgid "Enhancements to FastCGI, such as fastcgi_finish_request() -"
 msgstr "Verbesserungen gegenüber FastCGI, wie z.B.@: fastcgi_finish_request() —"
 
 #. type: itemize
-#: doc/guix.texi:20823
+#: doc/guix.texi:23536
 msgid "a special function to finish request & flush all data while continuing to do something time-consuming (video converting, stats processing, etc.)"
 msgstr "eine besondere Funktion, um eine Anfrage fertig abzuarbeiten und alle Daten zu Ende zu verarbeiten, während etwas Zeitintensives abläuft (Videokonvertierung, Statistikverarbeitung usw.)"
 
 #. type: Plain text
-#: doc/guix.texi:20825
+#: doc/guix.texi:23538
 msgid "...@: and much more."
 msgstr "…@: und vieles mehr."
 
 #. type: defvr
-#: doc/guix.texi:20826
+#: doc/guix.texi:23539
 #, no-wrap
 msgid "{Scheme Variable} php-fpm-service-type"
 msgstr "{Scheme-Variable} php-fpm-service-type"
 
 #. type: defvr
-#: doc/guix.texi:20828
+#: doc/guix.texi:23541
 msgid "A Service type for @code{php-fpm}."
 msgstr "Ein Diensttyp für @code{php-fpm}."
 
 #. type: deftp
-#: doc/guix.texi:20830
+#: doc/guix.texi:23543
 #, no-wrap
 msgid "{Data Type} php-fpm-configuration"
 msgstr "{Datentyp} php-fpm-configuration"
 
 #. type: deftp
-#: doc/guix.texi:20832
+#: doc/guix.texi:23545
 msgid "Data Type for php-fpm service configuration."
 msgstr "Datentyp für die Konfiguration des php-fpm-Dienstes."
 
 #. type: item
-#: doc/guix.texi:20833
+#: doc/guix.texi:23546
 #, no-wrap
 msgid "@code{php} (default: @code{php})"
 msgstr "@code{php} (Vorgabe: @code{php})"
 
 #. type: table
-#: doc/guix.texi:20835
+#: doc/guix.texi:23548
 msgid "The php package to use."
 msgstr "Das zu benutzende PHP-Paket."
 
 #. type: item
-#: doc/guix.texi:20835
+#: doc/guix.texi:23548
 #, no-wrap
 msgid "@code{socket} (default: @code{(string-append \"/var/run/php\" (version-major (package-version php)) \"-fpm.sock\")})"
 msgstr "@code{socket} (Vorgabe: @code{(string-append \"/var/run/php\" (version-major (package-version php)) \"-fpm.sock\")})"
 
 #. type: table
-#: doc/guix.texi:20837
+#: doc/guix.texi:23550
 msgid "The address on which to accept FastCGI requests.  Valid syntaxes are:"
 msgstr "Die Adresse, auf der FastCGI-Anfragen angenommen werden. Gültige Syntax hierfür ist:"
 
 #. type: code{#1}
-#: doc/guix.texi:20838
+#: doc/guix.texi:23551
 #, no-wrap
 msgid "\"ip.add.re.ss:port\""
 msgstr "\"ip.ad.res.se:Port\""
 
 #. type: table
-#: doc/guix.texi:20840
+#: doc/guix.texi:23553
 msgid "Listen on a TCP socket to a specific address on a specific port."
 msgstr "Lässt auf einem TCP-Socket auf der angegebenen Adresse auf dem angegebenen Port lauschen."
 
 #. type: code{#1}
-#: doc/guix.texi:20840
+#: doc/guix.texi:23553
 #, no-wrap
 msgid "\"port\""
 msgstr "\"port\""
 
 #. type: table
-#: doc/guix.texi:20842
+#: doc/guix.texi:23555
 msgid "Listen on a TCP socket to all addresses on a specific port."
 msgstr "Lässt auf einem TCP-Socket auf allen Adressen auf dem angegebenen Port lauschen."
 
 #. type: code{#1}
-#: doc/guix.texi:20842
+#: doc/guix.texi:23555
 #, no-wrap
 msgid "\"/path/to/unix/socket\""
 msgstr "\"/pfad/zum/unix/socket\""
 
 #. type: table
-#: doc/guix.texi:20844
+#: doc/guix.texi:23557
 msgid "Listen on a unix socket."
 msgstr "Lässt auf einem Unix-Socket lauschen."
 
 #. type: item
-#: doc/guix.texi:20846
+#: doc/guix.texi:23559
 #, no-wrap
 msgid "@code{user} (default: @code{php-fpm})"
 msgstr "@code{user} (Vorgabe: @code{php-fpm})"
 
 #. type: table
-#: doc/guix.texi:20848
+#: doc/guix.texi:23561
 msgid "User who will own the php worker processes."
 msgstr "Der Benutzer, dem die PHP-Arbeiterprozesse gehören werden."
 
 #. type: item
-#: doc/guix.texi:20848
+#: doc/guix.texi:23561
 #, no-wrap
 msgid "@code{group} (default: @code{php-fpm})"
 msgstr "@code{group} (Vorgabe: @code{php-fpm})"
 
 #. type: table
-#: doc/guix.texi:20850
+#: doc/guix.texi:23563
 msgid "Group of the worker processes."
 msgstr "Die Gruppe für die Arbeiterprozesse."
 
 #. type: item
-#: doc/guix.texi:20850
+#: doc/guix.texi:23563
 #, no-wrap
 msgid "@code{socket-user} (default: @code{php-fpm})"
 msgstr "@code{socket-user} (Vorgabe: @code{php-fpm})"
 
 #. type: table
-#: doc/guix.texi:20852
+#: doc/guix.texi:23565
 msgid "User who can speak to the php-fpm socket."
 msgstr "Der Benutzer, der mit dem php-fpm-Socket kommunizieren kann."
 
 #. type: item
-#: doc/guix.texi:20852
+#: doc/guix.texi:23565
 #, no-wrap
 msgid "@code{socket-group} (default: @code{nginx})"
 msgstr "@code{socket-group} (Vorgabe: @code{nginx})"
 
 #. type: table
-#: doc/guix.texi:20854
+#: doc/guix.texi:23567
 msgid "Group that can speak to the php-fpm socket."
 msgstr "Die Gruppe, die mit dem php-fpm-Socket kommunizieren kann."
 
 #. type: item
-#: doc/guix.texi:20854
+#: doc/guix.texi:23567
 #, no-wrap
 msgid "@code{pid-file} (default: @code{(string-append \"/var/run/php\" (version-major (package-version php)) \"-fpm.pid\")})"
 msgstr "@code{pid-file} (Vorgabe: @code{(string-append \"/var/run/php\" (version-major (package-version php)) \"-fpm.pid\")})"
 
 #. type: table
-#: doc/guix.texi:20857
+#: doc/guix.texi:23570
 msgid "The process id of the php-fpm process is written to this file once the service has started."
 msgstr "Der Prozessidentifikator des php-fpm-Prozesses wird in diese Datei geschrieben, sobald der Dienst gestartet wurde."
 
 #. type: item
-#: doc/guix.texi:20857
+#: doc/guix.texi:23570
 #, no-wrap
 msgid "@code{log-file} (default: @code{(string-append \"/var/log/php\" (version-major (package-version php)) \"-fpm.log\")})"
 msgstr "@code{log-file} (Vorgabe: @code{(string-append \"/var/log/php\" (version-major (package-version php)) \"-fpm.log\")})"
 
 #. type: table
-#: doc/guix.texi:20859
+#: doc/guix.texi:23572
 msgid "Log for the php-fpm master process."
 msgstr "Wohin das Protokoll für den php-fpm-Hauptprozess geschrieben wird."
 
 #. type: item
-#: doc/guix.texi:20859
+#: doc/guix.texi:23572
 #, no-wrap
 msgid "@code{process-manager} (default: @code{(php-fpm-dynamic-process-manager-configuration)})"
 msgstr "@code{process-manager} (Vorgabe: @code{(php-fpm-dynamic-process-manager-configuration)})"
 
 #. type: table
-#: doc/guix.texi:20862
+#: doc/guix.texi:23575
 msgid "Detailed settings for the php-fpm process manager.  Must be one of:"
 msgstr "Detaillierte Einstellungen für die php-fpm-Prozessverwaltung. Sie müssen eines der Folgenden sein:"
 
 #. type: code{#1}
-#: doc/guix.texi:20863
+#: doc/guix.texi:23576
 #, no-wrap
 msgid "<php-fpm-dynamic-process-manager-configuration>"
 msgstr "<php-fpm-dynamic-process-manager-configuration>"
 
 #. type: code{#1}
-#: doc/guix.texi:20864
+#: doc/guix.texi:23577
 #, no-wrap
 msgid "<php-fpm-static-process-manager-configuration>"
 msgstr "<php-fpm-static-process-manager-configuration>"
 
 #. type: code{#1}
-#: doc/guix.texi:20865
+#: doc/guix.texi:23578
 #, no-wrap
 msgid "<php-fpm-on-demand-process-manager-configuration>"
 msgstr "<php-fpm-on-demand-process-manager-configuration>"
 
 #. type: item
-#: doc/guix.texi:20867
+#: doc/guix.texi:23580
 #, no-wrap
 msgid "@code{display-errors} (default @code{#f})"
 msgstr "@code{display-errors} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:20872
+#: doc/guix.texi:23585
 msgid "Determines whether php errors and warning should be sent to clients and displayed in their browsers.  This is useful for local php development, but a security risk for public sites, as error messages can reveal passwords and personal data."
 msgstr "Legt fest, ob PHP-Fehler und Warnungen an Clients geschickt und in ihren Browsern angezeigt werden. Dies ist nützlich für lokale PHP-Entwicklung, aber ein Sicherheitsrisiko für öffentliche Webauftritte, weil Fehlermeldungen Passwörter und Passwortdaten offenlegen können."
 
 #. type: item
-#: doc/guix.texi:20872
+#: doc/guix.texi:23585
 #, no-wrap
 msgid "@code{timezone} (default @code{#f})"
 msgstr "@code{timezone} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:20874
+#: doc/guix.texi:23587
 msgid "Specifies @code{php_admin_value[date.timezone]} parameter."
 msgstr "Legt den Parameter @code{php_admin_value[date.timezone]} fest."
 
 #. type: item
-#: doc/guix.texi:20874
+#: doc/guix.texi:23587
 #, no-wrap
 msgid "@code{workers-logfile} (default @code{(string-append \"/var/log/php\" (version-major (package-version php)) \"-fpm.www.log\")})"
 msgstr "@code{workers-logfile} (Vorgabe: @code{(string-append \"/var/log/php\" (version-major (package-version php)) \"-fpm.www.log\")})"
 
 #. type: table
-#: doc/guix.texi:20877
+#: doc/guix.texi:23590
 msgid "This file will log the @code{stderr} outputs of php worker processes.  Can be set to @code{#f} to disable logging."
 msgstr "In dieser Datei werden @code{stderr}-Ausgaben von PHP-Arbeiterprozessen protokolliert. Das Feld kann auf @code{#f} gesetzt werden, damit nicht protokolliert wird."
 
 #. type: item
-#: doc/guix.texi:20877
+#: doc/guix.texi:23590
 #, no-wrap
 msgid "@code{file} (default @code{#f})"
 msgstr "@code{file} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:20880
+#: doc/guix.texi:23593
 msgid "An optional override of the whole configuration.  You can use the @code{mixed-text-file} function or an absolute filepath for it."
 msgstr "Optional kann hier ein vorrangig benutzter Ersatz für die gesamte Konfigurationsdatei angegeben werden. Sie können dafür die @code{mixed-text-file}-Funktion oder einen absoluten Dateipfad verwenden."
 
+#. type: item
+#: doc/guix.texi:23593
+#, no-wrap
+msgid "@code{php-ini-file} (default @code{#f})"
+msgstr "@code{php-ini-file} (Vorgabe: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:23597
+msgid "An optional override of the default php settings.  It may be any ``file-like'' object (@pxref{G-Expressions, file-like objects}).  You can use the @code{mixed-text-file} function or an absolute filepath for it."
+msgstr "Hier können optional die PHP-Voreinstellungen geändert werden. Geben Sie dazu eine beliebige Art von „dateiartigem“ Objekt an (siehe @ref{G-Expressions, dateiartige Objekte}). Sie können dafür die @code{mixed-text-file}-Funktion oder einen absoluten Dateipfad verwenden."
+
+#. type: table
+#: doc/guix.texi:23601
+msgid "For local development it is useful to set a higher timeout and memory limit for spawned php processes.  This be accomplished with the following operating system configuration snippet:"
+msgstr "Bei der Entwicklung mit dem lokalen Rechner bietet es sich an, die Zeit- und Speicherbegrenzung erzeugter PHP-Prozesse anzuheben. Benutzen Sie dazu folgndes Code-Schnipsel in Ihrer Betriebssystemkonfiguration:"
+
+#. type: lisp
+#: doc/guix.texi:23606
+#, no-wrap
+msgid ""
+"(define %local-php-ini\n"
+"  (plain-file \"php.ini\"\n"
+"              \"memory_limit = 2G\n"
+"max_execution_time = 1800\"))\n"
+"\n"
+msgstr ""
+"(define %local-php-ini\n"
+"  (plain-file \"php.ini\"\n"
+"              \"memory_limit = 2G\n"
+"max_execution_time = 1800\"))\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:23613
+#, no-wrap
+msgid ""
+"(operating-system\n"
+"  ;; @dots{}\n"
+"  (services (cons (service php-fpm-service-type\n"
+"                           (php-fpm-configuration\n"
+"                            (php-ini-file %local-php-ini)))\n"
+"                  %base-services)))\n"
+msgstr ""
+"(operating-system\n"
+"  ;; …\n"
+"  (services (cons (service php-fpm-service-type\n"
+"                           (php-fpm-configuration\n"
+"                            (php-ini-file %local-php-ini)))\n"
+"                  %base-services)))\n"
+
+#. type: table
+#: doc/guix.texi:23618
+msgid "Consult the @url{https://www.php.net/manual/en/ini.core.php,core php.ini directives} for comprehensive documentation on the acceptable @file{php.ini} directives."
+msgstr "Umfassende Dokumentation dazu, welche Direktiven Sie in der @file{php.ini} verwenden dürfen, sollten Sie unter den @url{https://www.php.net/manual/en/ini.core.php,php.ini-Kerndirektiven} nachschlagen."
+
 #. type: deftp
-#: doc/guix.texi:20883
+#: doc/guix.texi:23621
 #, no-wrap
 msgid "{Data type} php-fpm-dynamic-process-manager-configuration"
 msgstr "{Datentyp} php-fpm-dynamic-process-manager-configuration"
 
 #. type: deftp
-#: doc/guix.texi:20887
+#: doc/guix.texi:23625
 msgid "Data Type for the @code{dynamic} php-fpm process manager.  With the @code{dynamic} process manager, spare worker processes are kept around based on it's configured limits."
 msgstr "Datentyp für die @emph{dynamische} Prozessverwaltung durch php-fpm. Bei der @emph{dynamischen} Prozessverwaltung bleiben Arbeiterprozesse nach Abschluss ihrer Aufgabe weiterhin erhalten, solange die konfigurierten Beschränkungen eingehalten werden."
 
 #. type: item
-#: doc/guix.texi:20888 doc/guix.texi:20904 doc/guix.texi:20914
+#: doc/guix.texi:23626 doc/guix.texi:23642 doc/guix.texi:23652
 #, no-wrap
 msgid "@code{max-children} (default: @code{5})"
 msgstr "@code{max-children} (Vorgabe: @code{5})"
 
 #. type: table
-#: doc/guix.texi:20890 doc/guix.texi:20906 doc/guix.texi:20916
+#: doc/guix.texi:23628 doc/guix.texi:23644 doc/guix.texi:23654
 msgid "Maximum of worker processes."
 msgstr "Die maximale Anzahl an Arbeiterprozessen."
 
 #. type: item
-#: doc/guix.texi:20890
+#: doc/guix.texi:23628
 #, no-wrap
 msgid "@code{start-servers} (default: @code{2})"
 msgstr "@code{start-servers} (Vorgabe: @code{2})"
 
 #. type: table
-#: doc/guix.texi:20892
+#: doc/guix.texi:23630
 msgid "How many worker processes should be started on start-up."
-msgstr "Wieviele Arbeiterprozesse gleich zu Beginn gestartet werden sollen."
+msgstr "Wie viele Arbeiterprozesse gleich zu Beginn gestartet werden sollen."
 
 #. type: item
-#: doc/guix.texi:20892
+#: doc/guix.texi:23630
 #, no-wrap
 msgid "@code{min-spare-servers} (default: @code{1})"
 msgstr "@code{min-spare-servers} (Vorgabe: @code{1})"
 
 #. type: table
-#: doc/guix.texi:20894
+#: doc/guix.texi:23632
 msgid "How many spare worker processes should be kept around at minimum."
-msgstr "Wieviele untätige Arbeiterprozesse mindestens weiterhin vorgehalten bleiben sollen."
+msgstr "Wie viele untätige Arbeiterprozesse mindestens weiterhin vorgehalten bleiben sollen."
 
 #. type: item
-#: doc/guix.texi:20894
+#: doc/guix.texi:23632
 #, no-wrap
 msgid "@code{max-spare-servers} (default: @code{3})"
 msgstr "@code{max-spare-servers} (Vorgabe: @code{3})"
 
 #. type: table
-#: doc/guix.texi:20896
+#: doc/guix.texi:23634
 msgid "How many spare worker processes should be kept around at maximum."
-msgstr "Wieviele untätige Arbeiterprozesse höchstens weiterhin vorgehalten bleiben sollen."
+msgstr "Wie viele untätige Arbeiterprozesse höchstens weiterhin vorgehalten bleiben sollen."
 
 #. type: deftp
-#: doc/guix.texi:20899
+#: doc/guix.texi:23637
 #, no-wrap
 msgid "{Data type} php-fpm-static-process-manager-configuration"
 msgstr "{Datentyp} php-fpm-static-process-manager-configuration"
 
 #. type: deftp
-#: doc/guix.texi:20903
+#: doc/guix.texi:23641
 msgid "Data Type for the @code{static} php-fpm process manager.  With the @code{static} process manager, an unchanging number of worker processes are created."
 msgstr "Datentyp für die @emph{statische} Prozessverwaltung durch php-fpm. Bei der @emph{statischen} Prozessverwaltung wird eine unveränderliche Anzahl an Arbeiterprozessen erzeugt."
 
 #. type: deftp
-#: doc/guix.texi:20909
+#: doc/guix.texi:23647
 #, no-wrap
 msgid "{Data type} php-fpm-on-demand-process-manager-configuration"
 msgstr "{Datentyp} php-fpm-on-demand-process-manager-configuration"
 
 #. type: deftp
-#: doc/guix.texi:20913
+#: doc/guix.texi:23651
 msgid "Data Type for the @code{on-demand} php-fpm process manager.  With the @code{on-demand} process manager, worker processes are only created as requests arrive."
 msgstr "Datentyp für die Prozessverwaltung @emph{nach Bedarf} durch php-fpm. Bei der Prozessverwaltung @emph{nach Bedarf} werden Arbeiterprozesse erst erzeugt, wenn Anfragen vorliegen."
 
 #. type: item
-#: doc/guix.texi:20916
+#: doc/guix.texi:23654
 #, no-wrap
 msgid "@code{process-idle-timeout} (default: @code{10})"
 msgstr "@code{process-idle-timeout} (Vorgabe: @code{10})"
 
 #. type: table
-#: doc/guix.texi:20918
+#: doc/guix.texi:23656
 msgid "The time in seconds after which a process with no requests is killed."
 msgstr "Die Zeit in Sekunden, nach der ein Prozess ohne Anfragen abgewürgt wird."
 
 #. type: deffn
-#: doc/guix.texi:20922
+#: doc/guix.texi:23660
 #, no-wrap
-msgid "{Scheme Procedure} nginx-php-fpm-location @"
-msgstr "{Scheme-Prozedur} nginx-php-fpm-location @"
+msgid "{Scheme Procedure} nginx-php-location @"
+msgstr "{Scheme-Prozedur} nginx-php-location @"
 
 #. type: deffn
-#: doc/guix.texi:20928
+#: doc/guix.texi:23666
 msgid "[#:nginx-package nginx] @ [socket (string-append \"/var/run/php\" @ (version-major (package-version php)) @ \"-fpm.sock\")] A helper function to quickly add php to an @code{nginx-server-configuration}."
 msgstr "[#:nginx-package nginx] @ [socket (string-append \"/var/run/php\" @ (version-major (package-version php)) @ \"-fpm.sock\")] Eine Hilfsfunktion, mit der in kurzer Zeit PHP zu einer @code{nginx-server-configuration} hinzugefügt werden kann."
 
 #. type: Plain text
-#: doc/guix.texi:20931
+#: doc/guix.texi:23669
 msgid "A simple services setup for nginx with php can look like this:"
 msgstr "Eine einfache Art, die Dienste für nginx mit PHP einzurichten, kann so aussehen:"
 
 #. type: lisp
-#: doc/guix.texi:20944
+#: doc/guix.texi:23682
 #, no-wrap
 msgid ""
 "(services (cons* (service dhcp-client-service-type)\n"
@@ -39458,34 +44137,34 @@ msgstr ""
 "                 %base-services))\n"
 
 #. type: cindex
-#: doc/guix.texi:20946
+#: doc/guix.texi:23684
 #, no-wrap
 msgid "cat-avatar-generator"
 msgstr "cat-avatar-generator"
 
 #. type: Plain text
-#: doc/guix.texi:20950
+#: doc/guix.texi:23688
 msgid "The cat avatar generator is a simple service to demonstrate the use of php-fpm in @code{Nginx}.  It is used to generate cat avatar from a seed, for instance the hash of a user's email address."
 msgstr "Der Cat Avatar Generator („Katzenavatargenerator“) ist ein einfacher Dienst, um die Nutzung von php-fpm in @code{Nginx} zu demonstrieren. Mit ihm können Katzenavatarbilder aus einem Startwert („Seed“) heraus erzeugt werden, zum Beispiel aus dem Hash der E-Mail-Adresse eines Benutzers."
 
 #. type: deffn
-#: doc/guix.texi:20951
+#: doc/guix.texi:23689
 #, no-wrap
 msgid "{Scheme Procedure} cat-avatar-generator-service @"
 msgstr "{Scheme-Prozedur} cat-avatar-generator-service @"
 
 #. type: deffn
-#: doc/guix.texi:20959
+#: doc/guix.texi:23697
 msgid "[#:cache-dir \"/var/cache/cat-avatar-generator\"] @ [#:package cat-avatar-generator] @ [#:configuration (nginx-server-configuration)] Returns an nginx-server-configuration that inherits @code{configuration}.  It extends the nginx configuration to add a server block that serves @code{package}, a version of cat-avatar-generator.  During execution, cat-avatar-generator will be able to use @code{cache-dir} as its cache directory."
 msgstr "[#:cache-dir \"/var/cache/cat-avatar-generator\"] @ [#:package cat-avatar-generator] @ [#:configuration (nginx-server-configuration)] Liefert ein nginx-server-configuration-Objekt, das von der in @code{configuration} angegebenen Konfiguration erbt. Es erweitert die Nginx-Konfiguration, indem es einen Server-Block hinzufügt, der die in @code{package} angegebene Version vom cat-avatar-generator anbietet. Bei der Ausführung wird dem cat-avatar-generator Zugriff auf sein in @code{cache-dir} angegebenes Zwischenspeicherverzeichnis gewährt."
 
 #. type: Plain text
-#: doc/guix.texi:20962
+#: doc/guix.texi:23700
 msgid "A simple setup for cat-avatar-generator can look like this:"
 msgstr "Eine einfache Konfiguration des cat-avatar-generator kann so aussehen:"
 
 #. type: lisp
-#: doc/guix.texi:20969
+#: doc/guix.texi:23707
 #, no-wrap
 msgid ""
 "(services (cons* (cat-avatar-generator-service\n"
@@ -39503,155 +44182,155 @@ msgstr ""
 "                 %base-services))\n"
 
 #. type: subsubheading
-#: doc/guix.texi:20971
+#: doc/guix.texi:23709
 #, no-wrap
 msgid "Hpcguix-web"
 msgstr "Hpcguix-web"
 
 #. type: cindex
-#: doc/guix.texi:20973
+#: doc/guix.texi:23711
 #, no-wrap
 msgid "hpcguix-web"
 msgstr "hpcguix-web"
 
 #. type: Plain text
-#: doc/guix.texi:20978
+#: doc/guix.texi:23716
 msgid "The @uref{https://github.com/UMCUGenetics/hpcguix-web/, hpcguix-web} program is a customizable web interface to browse Guix packages, initially designed for users of high-performance computing (HPC)  clusters."
 msgstr "Das Programm @uref{https://github.com/UMCUGenetics/hpcguix-web/, hpcguix-web} ist eine anpassbare Weboberfläche, um Guix-Pakete zu suchen. Am Anfang war es für Nutzer von Hochleistungs-Rechenclustern gedacht („High-Performance Computing“, kurz HPC)."
 
 #. type: defvr
-#: doc/guix.texi:20979
+#: doc/guix.texi:23717
 #, no-wrap
 msgid "{Scheme Variable} hpcguix-web-service-type"
 msgstr "{Scheme-Variable} hpcguix-web-service-type"
 
 #. type: defvr
-#: doc/guix.texi:20981
+#: doc/guix.texi:23719
 msgid "The service type for @code{hpcguix-web}."
 msgstr "Der Diensttyp für @code{hpcguix-web}."
 
 #. type: deftp
-#: doc/guix.texi:20983
+#: doc/guix.texi:23721
 #, no-wrap
 msgid "{Data Type} hpcguix-web-configuration"
 msgstr "{Datentyp} hpcguix-web-configuration"
 
 #. type: deftp
-#: doc/guix.texi:20985
+#: doc/guix.texi:23723
 msgid "Data type for the hpcguix-web service configuration."
 msgstr "Datentyp für die Konfiguration des hpcguix-web-Dienstes."
 
 #. type: code{#1}
-#: doc/guix.texi:20987
+#: doc/guix.texi:23725
 #, no-wrap
 msgid "specs"
 msgstr "specs"
 
 #. type: table
-#: doc/guix.texi:20990
+#: doc/guix.texi:23728
 msgid "A gexp (@pxref{G-Expressions}) specifying the hpcguix-web service configuration.  The main items available in this spec are:"
 msgstr "Ein G-Ausdruck (siehe @ref{G-Expressions}), der die Konfiguration des hpcguix-web-Dienstes festlegt. In dieser Spezifikation („Spec“) sollten vor allem diese Sachen angegeben werden:"
 
 #. type: item
-#: doc/guix.texi:20992
+#: doc/guix.texi:23730
 #, no-wrap
 msgid "@code{title-prefix} (default: @code{\"hpcguix | \"})"
 msgstr "@code{title-prefix} (Vorgabe: @code{\"hpcguix | \"})"
 
 #. type: table
-#: doc/guix.texi:20994
+#: doc/guix.texi:23732
 msgid "The page title prefix."
 msgstr "Das Präfix der Webseitentitel."
 
 #. type: item
-#: doc/guix.texi:20995
+#: doc/guix.texi:23733
 #, no-wrap
 msgid "@code{guix-command} (default: @code{\"guix\"})"
 msgstr "@code{guix-command} (Vorgabe: @code{\"guix\"})"
 
 #. type: table
-#: doc/guix.texi:20997
+#: doc/guix.texi:23735
 msgid "The @command{guix} command."
 msgstr "Der @command{guix}-Befehl."
 
 #. type: item
-#: doc/guix.texi:20998
+#: doc/guix.texi:23736
 #, no-wrap
 msgid "@code{package-filter-proc} (default: @code{(const #t)})"
 msgstr "@code{package-filter-proc} (Vorgabe: @code{(const #t)})"
 
 #. type: table
-#: doc/guix.texi:21000
+#: doc/guix.texi:23738
 msgid "A procedure specifying how to filter packages that are displayed."
 msgstr "Eine Prozedur, die festlegt, wie anzuzeigende Pakete gefiltert werden."
 
 #. type: item
-#: doc/guix.texi:21001
+#: doc/guix.texi:23739
 #, no-wrap
 msgid "@code{package-page-extension-proc} (default: @code{(const '())})"
 msgstr "@code{package-page-extension-proc} (Vorgabe: @code{(const '())})"
 
 #. type: table
-#: doc/guix.texi:21003
+#: doc/guix.texi:23741
 msgid "Extension package for @code{hpcguix-web}."
 msgstr "Erweiterungspaket für @code{hpcguix-web}."
 
 #. type: item
-#: doc/guix.texi:21004
+#: doc/guix.texi:23742
 #, no-wrap
 msgid "@code{menu} (default: @code{'()})"
 msgstr "@code{menu} (Vorgabe: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:21006
+#: doc/guix.texi:23744
 msgid "Additional entry in page @code{menu}."
 msgstr "Zusätzlicher Eintrag auf der Menüseite."
 
 #. type: item
-#: doc/guix.texi:21007
+#: doc/guix.texi:23745
 #, no-wrap
 msgid "@code{channels} (default: @code{%default-channels})"
 msgstr "@code{channels} (Vorgabe: @code{%default-channels})"
 
 #. type: table
-#: doc/guix.texi:21009
+#: doc/guix.texi:23747
 msgid "List of channels from which the package list is built (@pxref{Channels})."
 msgstr "Liste der Kanäle, aus denen die Paketliste erstellt wird (siehe @ref{Channels})."
 
 #. type: item
-#: doc/guix.texi:21010
+#: doc/guix.texi:23748
 #, no-wrap
 msgid "@code{package-list-expiration} (default: @code{(* 12 3600)})"
 msgstr "@code{package-list-expiration} (Vorgabe: @code{(* 12 3600)})"
 
 #. type: table
-#: doc/guix.texi:21013
+#: doc/guix.texi:23751
 msgid "The expiration time, in seconds, after which the package list is rebuilt from the latest instances of the given channels."
-msgstr "Nach wieviel Zeit in Sekunden die Paketliste aus den neuesten Instanzen der angegebenen Kanäle neu erzeugt wird."
+msgstr "Nach wie viel Zeit in Sekunden die Paketliste aus den neuesten Instanzen der angegebenen Kanäle neu erzeugt wird."
 
 #. type: table
-#: doc/guix.texi:21018
+#: doc/guix.texi:23756
 msgid "See the hpcguix-web repository for a @uref{https://github.com/UMCUGenetics/hpcguix-web/blob/master/hpcweb-configuration.scm, complete example}."
 msgstr "Siehe das Repository von hpcguix-web für ein @uref{https://github.com/UMCUGenetics/hpcguix-web/blob/master/hpcweb-configuration.scm, vollständiges Beispiel}."
 
 #. type: item
-#: doc/guix.texi:21019
+#: doc/guix.texi:23757
 #, no-wrap
 msgid "@code{package} (default: @code{hpcguix-web})"
 msgstr "@code{package} (Vorgabe: @code{hpcguix-web})"
 
 #. type: table
-#: doc/guix.texi:21021
+#: doc/guix.texi:23759
 msgid "The hpcguix-web package to use."
 msgstr "Das hpcguix-web-Paket, was benutzt werden soll."
 
 #. type: Plain text
-#: doc/guix.texi:21025
+#: doc/guix.texi:23763
 msgid "A typical hpcguix-web service declaration looks like this:"
 msgstr "Eine typische Deklaration eines hpcguix-web-Dienstes sieht so aus:"
 
 #. type: lisp
-#: doc/guix.texi:21034
+#: doc/guix.texi:23772
 #, no-wrap
 msgid ""
 "(service hpcguix-web-service-type\n"
@@ -39671,77 +44350,144 @@ msgstr ""
 "                (menu '((\"/about\" \"ABOUT\"))))))))\n"
 
 #. type: quotation
-#: doc/guix.texi:21041
+#: doc/guix.texi:23779
 msgid "The hpcguix-web service periodically updates the package list it publishes by pulling channels from Git.  To that end, it needs to access X.509 certificates so that it can authenticate Git servers when communicating over HTTPS, and it assumes that @file{/etc/ssl/certs} contains those certificates."
 msgstr "Der hpcguix-web-Dienst aktualisiert die Liste der Pakete, die er veröffentlicht, periodisch, indem er die Kanäle über einen Git-„Pull“ lädt. Dazu muss er auf X.509-Zertifikate zugreifen, damit Git-Server authentifiziert werden können, wenn mit diesen über HTTPS kommuniziert wird, wofür der Dienst davon ausgeht, dass sich jene Zertifikate in @file{/etc/ssl/certs} befinden."
 
 #. type: quotation
-#: doc/guix.texi:21045
+#: doc/guix.texi:23783
 msgid "Thus, make sure to add @code{nss-certs} or another certificate package to the @code{packages} field of your configuration.  @ref{X.509 Certificates}, for more information on X.509 certificates."
 msgstr "Stellen Sie also sicher, dass @code{nss-certs} oder ein anderes Zertifikatspaket im @code{packages}-Feld ihrer Konfiguration steht. Siehe @ref{X.509 Certificates} für weitere Informationen zu X.509-Zertifikaten."
 
 #. type: cindex
-#: doc/guix.texi:21050
+#: doc/guix.texi:23785 doc/guix.texi:23787
+#, no-wrap
+msgid "gmnisrv"
+msgstr "gmnisrv"
+
+#. type: Plain text
+#: doc/guix.texi:23790
+msgid "The @uref{https://git.sr.ht/~sircmpwn/gmnisrv, gmnisrv} program is a simple @uref{https://gemini.circumlunar.space/, Gemini} protocol server."
+msgstr "Das Programm @uref{https://git.sr.ht/~sircmpwn/gmnisrv, gmnisrv} ist ein einfacher Server für das @uref{https://gemini.circumlunar.space/, Gemini-Protokoll}."
+
+#. type: deffn
+#: doc/guix.texi:23791
+#, no-wrap
+msgid "{Scheme Variable} gmnisrv-service-type"
+msgstr "{Scheme-Variable} gmnisrv-service-type"
+
+#. type: deffn
+#: doc/guix.texi:23794
+msgid "This is the type of the gmnisrv service, whose value should be a @code{gmnisrv-configuration} object, as in this example:"
+msgstr "Dies ist der Diensttyp des gmnisrv-Dienstes, dessen Wert ein @code{gmnisrv-configuration}-Objekt wie in diesem Beispiel sein sollte:"
+
+#. type: lisp
+#: doc/guix.texi:23799
+#, no-wrap
+msgid ""
+"(service gmnisrv-service-type\n"
+"         (gmnisrv-configuration\n"
+"           (config-file (local-file \"./my-gmnisrv.ini\"))))\n"
+msgstr ""
+"(service gmnisrv-service-type\n"
+"         (gmnisrv-configuration\n"
+"           (config-file (local-file \"./my-gmnisrv.ini\"))))\n"
+
+#. type: deftp
+#: doc/guix.texi:23802
+#, no-wrap
+msgid "{Data Type} gmnisrv-configuration"
+msgstr "{Datentyp} gmnisrv-configuration"
+
+#. type: deftp
+#: doc/guix.texi:23804
+msgid "Data type representing the configuration of gmnisrv."
+msgstr "Datentyp, der die Konfiguration von gmnisrv repräsentiert."
+
+#. type: item
+#: doc/guix.texi:23806
+#, no-wrap
+msgid "@code{package} (default: @var{gmnisrv})"
+msgstr "@code{package} (Vorgabe: @var{gmnisrv})"
+
+#. type: table
+#: doc/guix.texi:23808
+msgid "Package object of the gmnisrv server."
+msgstr "Das Paketobjekt des gmnisrv-Servers."
+
+#. type: item
+#: doc/guix.texi:23809
+#, no-wrap
+msgid "@code{config-file} (default: @code{%default-gmnisrv-config-file})"
+msgstr "@code{config-file} (Vorgabe: @code{%default-gmnisrv-config-file})"
+
+#. type: table
+#: doc/guix.texi:23815
+msgid "File-like object of the gmnisrv configuration file to use.  The default configuration listens on port 1965 and serves files from @file{/srv/gemini}.  Certificates are stored in @file{/var/lib/gemini/certs}.  For more information, run @command{man gmnisrv} and @command{man gmnisrv.ini}."
+msgstr "Ein dateiartiges Objekt mit der zu nutzenden gmnisrv-Konfigurationsdatei. Die Vorgabekonfiguration lauscht auf Port 1965 und bietet die Dateien in @file{/srv/gemini} an. Zertifikate werden in @file{/var/lib/gemini/certs} gespeichert. Führen Sie für mehr Informationen @command{man gmnisrv} und @command{man gmnisrv.ini} aus."
+
+#. type: cindex
+#: doc/guix.texi:23822
 #, no-wrap
 msgid "Web"
 msgstr "Web"
 
 #. type: cindex
-#: doc/guix.texi:21051
+#: doc/guix.texi:23823
 #, no-wrap
 msgid "HTTP, HTTPS"
 msgstr "HTTP, HTTPS"
 
 #. type: cindex
-#: doc/guix.texi:21052
+#: doc/guix.texi:23824
 #, no-wrap
 msgid "Let's Encrypt"
 msgstr "Let's Encrypt"
 
 #. type: cindex
-#: doc/guix.texi:21053
+#: doc/guix.texi:23825
 #, no-wrap
 msgid "TLS certificates"
 msgstr "TLS-Zertifikate"
 
 #. type: Plain text
-#: doc/guix.texi:21060
+#: doc/guix.texi:23832
 msgid "The @code{(gnu services certbot)} module provides a service to automatically obtain a valid TLS certificate from the Let's Encrypt certificate authority.  These certificates can then be used to serve content securely over HTTPS or other TLS-based protocols, with the knowledge that the client will be able to verify the server's authenticity."
 msgstr "Das Modul @code{(gnu services certbot)} stellt einen Dienst zur Verfügung, um automatisch ein gültiges TLS-Zertifikat von der Zertifikatsautorität Let’s Encrypt zu beziehen. Mit diesen Zertifikaten können Informationen sicher über HTTPS oder andere TLS-basierte Protokolle übertragen werden, im Wissen, dass der Client die Authentizität des Servers überprüfen wird können."
 
 #. type: Plain text
-#: doc/guix.texi:21072
+#: doc/guix.texi:23844
 msgid "@url{https://letsencrypt.org/, Let's Encrypt} provides the @code{certbot} tool to automate the certification process.  This tool first securely generates a key on the server.  It then makes a request to the Let's Encrypt certificate authority (CA) to sign the key.  The CA checks that the request originates from the host in question by using a challenge-response protocol, requiring the server to provide its response over HTTP.  If that protocol completes successfully, the CA signs the key, resulting in a certificate.  That certificate is valid for a limited period of time, and therefore to continue to provide TLS services, the server needs to periodically ask the CA to renew its signature."
 msgstr "@url{https://letsencrypt.org/, Let’s Encrypt} macht das @code{certbot}-Werkzeug verfügbar, mit dem der Zertifizierungsvorgang automatisiert werden kann. Das Werkzeug erzeugt zunächst auf sichere Weise einen Schlüssel auf dem Server und stellt dann eine Anfrage an die Let’s-Encrypt-Zertifikatsautorität („Certificate Authority“, kurz CA), den Schlüssel zu signieren. Die Zertifikatsautorität prüft mit einem Challenge-Response-Protokoll, dass die Anfrage auch wirklich vom fraglichen Rechner (auch „Host“ genannt) kommt, wozu der Server über HTTP seine Antwort geben muss. Wenn dieses Protokoll erfolgreich befolgt wurde, signiert die Zertifikatsautorität den Schlüssel, woraus sich ein Zertifikat ergibt. Dieses Zertifikat ist eine begrenzte Zeit lang gültig, daher muss der Server für eine andauernde Bereitstellung von TLS-Leistungen immer wieder neu der Zertifikatsautorität eine Bitte um die Erneuerung der Signatur zukommen lassen."
 
 #. type: Plain text
-#: doc/guix.texi:21079
+#: doc/guix.texi:23851
 msgid "The certbot service automates this process: the initial key generation, the initial certification request to the Let's Encrypt service, the web server challenge/response integration, writing the certificate to disk, the automated periodic renewals, and the deployment tasks associated with the renewal (e.g.@: reloading services, copying keys with different permissions)."
 msgstr "Mit dem certbot-Dienst wird dieser Prozess automatisiert. Er sorgt dafür, dass am Anfang Schlüssel erzeugt werden und eine erste Zertifizierungsanfrage an den Dienst von Let’s Encrypt gestellt wird. Weiterhin ist das Challenge-/Response-Verfahren per Web-Server integriert. Das Zertifikat wird auf die Platte geschrieben und automatisch periodisch erneuert und bei der Erneuerung anfallende Aufgaben werden erledigt (z.B.@: das Neuladen von Diensten und das Kopieren von Schlüsseln mit entsprechenden Berechtigungen)."
 
 #. type: Plain text
-#: doc/guix.texi:21085
+#: doc/guix.texi:23857
 msgid "Certbot is run twice a day, at a random minute within the hour.  It won't do anything until your certificates are due for renewal or revoked, but running it regularly would give your service a chance of staying online in case a Let's Encrypt-initiated revocation happened for some reason."
 msgstr "Certbot wird zweimal täglich zu einer zufälligen Minute der Stunde ausgeführt. Es tut so lange nichts, bis eine Erneuerung Ihrer Zertifikate fällig wird oder sie gesperrt wurden, durch regelmäßige Ausführung bekommen Sie aber die Chance, dass Ihr Server am Netz bleibt, wenn Let’s Encrypt eine Sperrung aus irgendeinem Grund anordnet."
 
 #. type: Plain text
-#: doc/guix.texi:21089
+#: doc/guix.texi:23861
 msgid "By using this service, you agree to the ACME Subscriber Agreement, which can be found there: @url{https://acme-v01.api.letsencrypt.org/directory}."
 msgstr "Durch die Nutzung dieses Dienstes stimmen Sie dem „ACME Subscriber Agreement“ zu, das Sie hier finden:: @url{https://acme-v01.api.letsencrypt.org/directory}."
 
 #. type: defvr
-#: doc/guix.texi:21090
+#: doc/guix.texi:23862
 #, no-wrap
 msgid "{Scheme Variable} certbot-service-type"
 msgstr "{Scheme-Variable} certbot-service-type"
 
 #. type: defvr
-#: doc/guix.texi:21093
+#: doc/guix.texi:23865
 msgid "A service type for the @code{certbot} Let's Encrypt client.  Its value must be a @code{certbot-configuration} record as in this example:"
 msgstr "Ein Diensttyp für den @code{certbot}-Client für Let’s Encrypt. Sein Wert muss ein @code{certbot-configuration}-Verbundsobjekt wie in diesem Beispiel sein:"
 
 #. type: lisp
-#: doc/guix.texi:21100
+#: doc/guix.texi:23872
 #, no-wrap
 msgid ""
 "(define %nginx-deploy-hook\n"
@@ -39759,7 +44505,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:21111
+#: doc/guix.texi:23883
 #, no-wrap
 msgid ""
 "(service certbot-service-type\n"
@@ -39785,224 +44531,230 @@ msgstr ""
 "             (domains '(\"bar.example.net\")))))))\n"
 
 #. type: defvr
-#: doc/guix.texi:21114
+#: doc/guix.texi:23886
 msgid "See below for details about @code{certbot-configuration}."
 msgstr "Siehe unten für Details zur @code{certbot-configuration}."
 
 #. type: deftp
-#: doc/guix.texi:21116
+#: doc/guix.texi:23888
 #, no-wrap
 msgid "{Data Type} certbot-configuration"
 msgstr "{Datentyp} certbot-configuration"
 
 #. type: deftp
-#: doc/guix.texi:21119
+#: doc/guix.texi:23891
 msgid "Data type representing the configuration of the @code{certbot} service.  This type has the following parameters:"
 msgstr "Datentyp, der die Konfiguration des @code{certbot}-Dienstes repräsentiert. Dieser Typ verfügt über die folgenden Parameter:"
 
 #. type: item
-#: doc/guix.texi:21121
+#: doc/guix.texi:23893
 #, no-wrap
 msgid "@code{package} (default: @code{certbot})"
 msgstr "@code{package} (Vorgabe: @code{certbot})"
 
 #. type: table
-#: doc/guix.texi:21123
+#: doc/guix.texi:23895
 msgid "The certbot package to use."
 msgstr "Das certbot-Paket, das benutzt werden soll."
 
 #. type: item
-#: doc/guix.texi:21124
+#: doc/guix.texi:23896
 #, no-wrap
 msgid "@code{webroot} (default: @code{/var/www})"
 msgstr "@code{webroot} (Vorgabe: @code{/var/www})"
 
 #. type: table
-#: doc/guix.texi:21127
+#: doc/guix.texi:23899
 msgid "The directory from which to serve the Let's Encrypt challenge/response files."
 msgstr "Das Verzeichnis, aus dem heraus die Dateien für den Challenge-/Response-Prozess von Let’s Encrypt angeboten werden sollen."
 
 #. type: item
-#: doc/guix.texi:21128
+#: doc/guix.texi:23900
 #, no-wrap
 msgid "@code{certificates} (default: @code{()})"
 msgstr "@code{certificates} (Vorgabe: @code{()})"
 
 #. type: table
-#: doc/guix.texi:21132
+#: doc/guix.texi:23904
 msgid "A list of @code{certificates-configuration}s for which to generate certificates and request signatures.  Each certificate has a @code{name} and several @code{domains}."
 msgstr "Eine Liste der @code{certificates-configuration}-Objekte, für die Zertifikate und Anfragesignaturen erzeugt werden. Für jedes Zertifikat gibt es einen @code{name}-Eintrag und mehrere @code{domains}."
 
+#. type: item
+#: doc/guix.texi:23905
+#, no-wrap
+msgid "@code{email} (default: @code{#f})"
+msgstr "@code{email} (Vorgabe: @code{#f})"
+
 #. type: table
-#: doc/guix.texi:21136
-msgid "Mandatory email used for registration, recovery contact, and important account notifications."
-msgstr "Die E-Mail-Adresse, die für die Registrierung, als Kontaktadresse bei der Wiederherstellung und für wichtige Kontenbenachrichtigungen angegeben werden @emph{muss}."
+#: doc/guix.texi:23909
+msgid "Optional email address used for registration and recovery contact.  Setting this is encouraged as it allows you to receive important notifications about the account and issued certificates."
+msgstr "Optional die E-Mail-Adresse, die als Kontakt für die Registrierung und das Wiedererlangen dienen soll. Es wird empfohlen, sie anzugeben, weil Sie darüber wichtige Mitteilungen über Ihr Konto und ausgestellte Zertifikate mitbekommen können."
 
 #. type: item
-#: doc/guix.texi:21137
+#: doc/guix.texi:23910
 #, no-wrap
 msgid "@code{server} (default: @code{#f})"
 msgstr "@code{server} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:21140
+#: doc/guix.texi:23913
 msgid "Optional URL of ACME server.  Setting this overrides certbot's default, which is the Let's Encrypt server."
 msgstr "Optional eine andere URL des ACME-Servers. Wenn sie festgelegt wird, ersetzt sie die Voreinstellung von Certbot, nämlich die URL des Let’s-Encrypt-Servers."
 
 #. type: item
-#: doc/guix.texi:21141
+#: doc/guix.texi:23914
 #, no-wrap
 msgid "@code{rsa-key-size} (default: @code{2048})"
 msgstr "@code{rsa-key-size} (Vorgabe: @code{2048})"
 
 #. type: table
-#: doc/guix.texi:21143
+#: doc/guix.texi:23916
 msgid "Size of the RSA key."
 msgstr "Wie groß der RSA-Schlüssel sein soll."
 
 #. type: item
-#: doc/guix.texi:21144
+#: doc/guix.texi:23917
 #, no-wrap
 msgid "@code{default-location} (default: @i{see below})"
 msgstr "@code{default-location} (Vorgabe: @i{siehe unten})"
 
 #. type: table
-#: doc/guix.texi:21153
+#: doc/guix.texi:23926
 msgid "The default @code{nginx-location-configuration}.  Because @code{certbot} needs to be able to serve challenges and responses, it needs to be able to run a web server.  It does so by extending the @code{nginx} web service with an @code{nginx-server-configuration} listening on the @var{domains} on port 80, and which has a @code{nginx-location-configuration} for the @code{/.well-known/} URI path subspace used by Let's Encrypt.  @xref{Web Services}, for more on these nginx configuration data types."
 msgstr "Die vorgegebene @code{nginx-location-configuration}. Weil @code{certbot} „Challenges“ und „Responses“ anbieten muss, muss durch ihn ein Web-Server ausgeführt werden können. Das tut er, indem er den @code{nginx}-Webdienst mit einer @code{nginx-server-configuration} erweitert, die auf den @var{domains} auf Port 80 lauscht und eine @code{nginx-location-configuration} für den URI-Pfad-Teilraum @code{/.well-known/} umfasst, der von Let’s Encrypt benutzt wird. Siehe @ref{Web Services} für mehr Informationen über diese nginx-Konfigurationsdatentypen."
 
 #. type: table
-#: doc/guix.texi:21157
+#: doc/guix.texi:23930
 msgid "Requests to other URL paths will be matched by the @code{default-location}, which if present is added to all @code{nginx-server-configuration}s."
 msgstr "Anfragen an andere URL-Pfade werden mit der @code{default-location} abgeglichen. Wenn sie angegeben wurde, wird sie zu jeder @code{nginx-server-configuration} hinzugefügt."
 
 #. type: table
-#: doc/guix.texi:21161
+#: doc/guix.texi:23934
 msgid "By default, the @code{default-location} will issue a redirect from @code{http://@var{domain}/...} to @code{https://@var{domain}/...}, leaving you to define what to serve on your site via @code{https}."
 msgstr "Nach Vorgabe stellt die @code{default-location} eine Weiterleitung von @code{http://@var{domain}/…} nach @code{https://@var{domain}/…} her. Sie müssen dann nur noch festlegen, was Sie auf Ihrem Webauftritt über @code{https} anbieten wollen."
 
 #. type: table
-#: doc/guix.texi:21163
+#: doc/guix.texi:23936
 msgid "Pass @code{#f} to not issue a default location."
 msgstr "Übergeben Sie @code{#f}, um keine @code{default-location} vorzugeben."
 
 #. type: deftp
-#: doc/guix.texi:21166
+#: doc/guix.texi:23939
 #, no-wrap
 msgid "{Data Type} certificate-configuration"
 msgstr "{Datentyp} certificate-configuration"
 
 #. type: deftp
-#: doc/guix.texi:21169
+#: doc/guix.texi:23942
 msgid "Data type representing the configuration of a certificate.  This type has the following parameters:"
 msgstr "Der Datentyp, der die Konfiguration eines Zertifikats repräsentiert. Dieser Typ hat die folgenden Parameter:"
 
 #. type: item
-#: doc/guix.texi:21171
+#: doc/guix.texi:23944
 #, no-wrap
 msgid "@code{name} (default: @i{see below})"
 msgstr "@code{name} (Vorgabe: @i{siehe unten})"
 
 #. type: table
-#: doc/guix.texi:21175
+#: doc/guix.texi:23948
 msgid "This name is used by Certbot for housekeeping and in file paths; it doesn't affect the content of the certificate itself.  To see certificate names, run @code{certbot certificates}."
 msgstr "Dieser Name wird vom Certbot intern zum Aufräumen und in Dateipfaden benutzt; er hat keinen Einfluss auf den Inhalt des erzeugten Zertifikats. Um Zertifikatsnamen einzusehen, führen Sie @code{certbot certificates} aus."
 
 #. type: table
-#: doc/guix.texi:21177
+#: doc/guix.texi:23950
 msgid "Its default is the first provided domain."
 msgstr "Die Vorgabe ist die erste angegebene Domain."
 
 #. type: item
-#: doc/guix.texi:21178
+#: doc/guix.texi:23951
 #, no-wrap
 msgid "@code{domains} (default: @code{()})"
 msgstr "@code{domains} (Vorgabe: @code{()})"
 
 #. type: table
-#: doc/guix.texi:21181
+#: doc/guix.texi:23954
 msgid "The first domain provided will be the subject CN of the certificate, and all domains will be Subject Alternative Names on the certificate."
 msgstr "Die erste angegebene Domain wird als Name des Zertifikatseigentümers („Subject CN“) benutzt und alle Domains werden als alternative Namen („Subject Alternative Names“) auf dem Zertifikat stehen."
 
 #. type: item
-#: doc/guix.texi:21182
+#: doc/guix.texi:23955
 #, no-wrap
 msgid "@code{challenge} (default: @code{#f})"
 msgstr "@code{challenge} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:21189
+#: doc/guix.texi:23962
 msgid "The challenge type that has to be run by certbot.  If @code{#f} is specified, default to the HTTP challenge.  If a value is specified, defaults to the manual plugin (see @code{authentication-hook}, @code{cleanup-hook} and the documentation at @url{https://certbot.eff.org/docs/using.html#hooks}), and gives Let's Encrypt permission to log the public IP address of the requesting machine."
 msgstr "Welche Art von Challenge durch den Certbot ausgeführt wird. Wenn @code{#f} angegeben wird, wird die HTTP-Challenge voreingestellt. Wenn ein Wert angegeben wird, wird das Plugin benutzt, das auch bei manuellen Ausführungen benutzt wird (siehe @code{authentication-hook}, @code{cleanup-hook} und die Dokumentation unter @url{https://certbot.eff.org/docs/using.html#hooks}), und Let’s Encrypt wird dazu berechtigt, die öffentliche IP-Adresse der anfordernden Maschine in seinem Protokoll zu speichern."
 
 #. type: item
-#: doc/guix.texi:21190
+#: doc/guix.texi:23963
 #, no-wrap
 msgid "@code{authentication-hook} (default: @code{#f})"
 msgstr "@code{authentication-hook} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:21196
+#: doc/guix.texi:23969
 msgid "Command to be run in a shell once for each certificate challenge to be answered.  For this command, the shell variable @code{$CERTBOT_DOMAIN} will contain the domain being authenticated, @code{$CERTBOT_VALIDATION} contains the validation string and @code{$CERTBOT_TOKEN} contains the file name of the resource requested when performing an HTTP-01 challenge."
 msgstr "Welcher Befehl in einer Shell zum Antworten auf eine Zertifikats-„Challenge“ einmalig ausgeführt wird. Für diesen Befehl wird die Shell-Variable @code{$CERTBOT_DOMAIN} die Domain enthalten, für die sich der Certbot authentisiert, @code{$CERTBOT_VALIDATION} enthält die Validierungs-Zeichenkette und @code{$CERTBOT_TOKEN} enthält den Dateinamen der bei einer HTTP-01-Challenge angefragten Ressource."
 
 #. type: item
-#: doc/guix.texi:21197
+#: doc/guix.texi:23970
 #, no-wrap
 msgid "@code{cleanup-hook} (default: @code{#f})"
 msgstr "@code{cleanup-hook} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:21203
+#: doc/guix.texi:23976
 msgid "Command to be run in a shell once for each certificate challenge that have been answered by the @code{auth-hook}.  For this command, the shell variables available in the @code{auth-hook} script are still available, and additionally @code{$CERTBOT_AUTH_OUTPUT} will contain the standard output of the @code{auth-hook} script."
 msgstr "Welcher Befehl in einer Shell für jede Zertifikat-„Challenge“ einmalig ausgeführt wird, die vom @code{auth-hook} beantwortet wurde. Für diesen Befehl bleiben die Shell-Variablen weiterhin verfügbar, die im @code{auth-hook}-Skript zur Verfügung standen, und außerdem wird @code{$CERTBOT_AUTH_OUTPUT} die Standardausgabe des @code{auth-hook}-Skripts enthalten."
 
 #. type: item
-#: doc/guix.texi:21204
+#: doc/guix.texi:23977
 #, no-wrap
 msgid "@code{deploy-hook} (default: @code{#f})"
 msgstr "@code{deploy-hook} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:21212
+#: doc/guix.texi:23985
 msgid "Command to be run in a shell once for each successfully issued certificate.  For this command, the shell variable @code{$RENEWED_LINEAGE} will point to the config live subdirectory (for example, @samp{\"/etc/letsencrypt/live/example.com\"}) containing the new certificates and keys; the shell variable @code{$RENEWED_DOMAINS} will contain a space-delimited list of renewed certificate domains (for example, @samp{\"example.com www.example.com\"}."
 msgstr "Welcher Befehl in einer Shell für jedes erfolgreich ausgestellte Zertifikat einmalig ausgeführt wird. Bei diesem Befehl wird die Shell-Variable @code{$RENEWED_LINEAGE} auf das Unterverzeichnis für die aktuelle Konfiguration zeigen (zum Beispiel @samp{\"/etc/letsencrypt/live/example.com\"}), in dem sich die neuen Zertifikate und Schlüssel befinden. Die Shell-Variable @code{$RENEWED_DOMAINS} wird eine leerzeichengetrennte Liste der erneuerten Zertifikatsdomänen enthalten (zum Beispiel @samp{\"example.com www.example.com\"}."
 
 #. type: Plain text
-#: doc/guix.texi:21219
+#: doc/guix.texi:23992
 msgid "For each @code{certificate-configuration}, the certificate is saved to @code{/etc/letsencrypt/live/@var{name}/fullchain.pem} and the key is saved to @code{/etc/letsencrypt/live/@var{name}/privkey.pem}."
 msgstr "Für jede @code{certificate-configuration} wird das Zertifikat in @code{/etc/letsencrypt/live/@var{name}/fullchain.pem} und der Schlüssel in @code{/etc/letsencrypt/live/@var{name}/privkey.pem} gespeichert."
 
 #. type: cindex
-#: doc/guix.texi:21221
+#: doc/guix.texi:23994
 #, no-wrap
 msgid "DNS (domain name system)"
 msgstr "DNS (Domain Name System)"
 
 #. type: cindex
-#: doc/guix.texi:21222
+#: doc/guix.texi:23995
 #, no-wrap
 msgid "domain name system (DNS)"
 msgstr "Domain Name System (DNS)"
 
 #. type: Plain text
-#: doc/guix.texi:21230
+#: doc/guix.texi:24003
 msgid "The @code{(gnu services dns)} module provides services related to the @dfn{domain name system} (DNS).  It provides a server service for hosting an @emph{authoritative} DNS server for multiple zones, slave or master.  This service uses @uref{https://www.knot-dns.cz/, Knot DNS}.  And also a caching and forwarding DNS server for the LAN, which uses @uref{http://www.thekelleys.org.uk/dnsmasq/doc.html, dnsmasq}."
 msgstr "Das Modul @code{(gnu services dns)} stellt Dienste zur Verfügung, die mit dem @dfn{Domain Name System} (DNS) zu tun haben. Es bietet einen Server-Dienst an, mit dem ein @emph{autoritativer} DNS-Server für mehrere Zonen betrieben werden kann, jeweils als untergeordneter „Slave“ oder als „Master“. Dieser Dienst benutzt @uref{https://www.knot-dns.cz/, Knot DNS}. Außerdem wird ein zwischenspeichernder und weiterleitender DNS-Server für das LAN bereitgestellt, der @uref{http://www.thekelleys.org.uk/dnsmasq/doc.html, dnsmasq} benutzt."
 
 #. type: subsubheading
-#: doc/guix.texi:21231
+#: doc/guix.texi:24004
 #, no-wrap
 msgid "Knot Service"
 msgstr "Knot-Dienst"
 
 #. type: Plain text
-#: doc/guix.texi:21235
+#: doc/guix.texi:24008
 msgid "An example configuration of an authoritative server for two zones, one master and one slave, is:"
 msgstr "Eine Beispielkonfiguration eines autoritativen Servers für zwei Zonen, eine „Master“, eine „Slave“, wäre:"
 
 #. type: lisp
-#: doc/guix.texi:21242
+#: doc/guix.texi:24015
 #, no-wrap
 msgid ""
 "(define-zone-entries example.org.zone\n"
@@ -40020,7 +44772,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:21249
+#: doc/guix.texi:24022
 #, no-wrap
 msgid ""
 "(define master-zone\n"
@@ -40040,7 +44792,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:21255
+#: doc/guix.texi:24028
 #, no-wrap
 msgid ""
 "(define slave-zone\n"
@@ -40058,7 +44810,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:21260
+#: doc/guix.texi:24033
 #, no-wrap
 msgid ""
 "(define plop-master\n"
@@ -40074,7 +44826,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:21269
+#: doc/guix.texi:24042
 #, no-wrap
 msgid ""
 "(operating-system\n"
@@ -40096,878 +44848,873 @@ msgstr ""
 "                   %base-services)))\n"
 
 #. type: deffn
-#: doc/guix.texi:21271
+#: doc/guix.texi:24044
 #, no-wrap
 msgid "{Scheme Variable} knot-service-type"
 msgstr "{Scheme-Variable} knot-service-type"
 
 #. type: deffn
-#: doc/guix.texi:21273
+#: doc/guix.texi:24046
 msgid "This is the type for the Knot DNS server."
 msgstr "Dies ist der Diensttyp für den Knot-DNS-Server."
 
 #. type: deffn
-#: doc/guix.texi:21281
+#: doc/guix.texi:24054
 msgid "Knot DNS is an authoritative DNS server, meaning that it can serve multiple zones, that is to say domain names you would buy from a registrar.  This server is not a resolver, meaning that it can only resolve names for which it is authoritative.  This server can be configured to serve zones as a master server or a slave server as a per-zone basis.  Slave zones will get their data from masters, and will serve it as an authoritative server.  From the point of view of a resolver, there is no difference between master and slave."
 msgstr "Knot DNS ist ein autoritativer DNS-Server, das heißt, er kann mehrere Zonen bedienen, also mehrere Domainnamen, die Sie von einem Registrar kaufen würden. Dieser Server ist kein „Resolver“,  er dient also nur zur Auflösung von Namen, für die er autoritativ ist. Dieser Server kann so konfiguriert werden, dass er Zonen als „Master“-Server oder als „Slave“-Server bereitstellt, je nachdem, wie er für die jeweilige Zone eingestellt ist. Server für „Slave“-Zonen erhalten ihre Daten von „Master“-Servern und stellen mit ihnen einen autoritativen Server zur Verfügung. Für einen „Resolver“ macht es keinen Unterschied, ob er Namen auflöst, indem er einen „Master“ oder einen „Slave“ danach fragt."
 
 #. type: deffn
-#: doc/guix.texi:21283
+#: doc/guix.texi:24056
 msgid "The following data types are used to configure the Knot DNS server:"
 msgstr "Die folgenden Datentypen werden benutzt, um den Knot-DNS-Server zu konfigurieren:"
 
 #. type: deftp
-#: doc/guix.texi:21285
+#: doc/guix.texi:24058
 #, no-wrap
 msgid "{Data Type} knot-key-configuration"
 msgstr "{Datentyp} knot-key-configuration"
 
 #. type: deftp
-#: doc/guix.texi:21288
+#: doc/guix.texi:24061
 msgid "Data type representing a key.  This type has the following parameters:"
 msgstr "Datentyp, der einen Schlüssel repräsentiert. Dieser Typ hat die folgenden Parameter:"
 
 #. type: item
-#: doc/guix.texi:21290 doc/guix.texi:21310 doc/guix.texi:21425
-#: doc/guix.texi:21451 doc/guix.texi:21486
+#: doc/guix.texi:24063 doc/guix.texi:24083 doc/guix.texi:24198
+#: doc/guix.texi:24224 doc/guix.texi:24259
 #, no-wrap
 msgid "@code{id} (default: @code{\"\"})"
 msgstr "@code{id} (Vorgabe: @code{\"\"})"
 
 #. type: table
-#: doc/guix.texi:21293
+#: doc/guix.texi:24066 doc/guix.texi:24086
 msgid "An identifier for other configuration fields to refer to this key. IDs must be unique and must not be empty."
 msgstr "Ein Identifikator, mit dem sich andere Konfigurationsfelder auf diesen Schlüssel beziehen können. IDs müssen eindeutig sein und dürfen @emph{nicht} leer sein."
 
 #. type: item
-#: doc/guix.texi:21294
+#: doc/guix.texi:24067
 #, no-wrap
 msgid "@code{algorithm} (default: @code{#f})"
 msgstr "@code{algorithm} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:21298
+#: doc/guix.texi:24071
 msgid "The algorithm to use.  Choose between @code{#f}, @code{'hmac-md5}, @code{'hmac-sha1}, @code{'hmac-sha224}, @code{'hmac-sha256}, @code{'hmac-sha384} and @code{'hmac-sha512}."
 msgstr "Der Algorithmus, der benutzt werden soll. Wählen Sie zwischen @code{#f}, @code{'hmac-md5}, @code{'hmac-sha1}, @code{'hmac-sha224}, @code{'hmac-sha256}, @code{'hmac-sha384} und @code{'hmac-sha512}."
 
 #. type: item
-#: doc/guix.texi:21299
+#: doc/guix.texi:24072
 #, no-wrap
 msgid "@code{secret} (default: @code{\"\"})"
 msgstr "@code{secret} (Vorgabe: @code{\"\"})"
 
 #. type: table
-#: doc/guix.texi:21301
+#: doc/guix.texi:24074
 msgid "The secret key itself."
 msgstr "Was dabei der geheime Schlüssel sein soll."
 
 #. type: deftp
-#: doc/guix.texi:21305
+#: doc/guix.texi:24078
 #, no-wrap
 msgid "{Data Type} knot-acl-configuration"
 msgstr "{Datentyp} knot-acl-configuration"
 
 #. type: deftp
-#: doc/guix.texi:21308
+#: doc/guix.texi:24081
 msgid "Data type representing an Access Control List (ACL) configuration.  This type has the following parameters:"
 msgstr "Datentyp, der die Konfiguration einer Zugriffssteuerungsliste („Access Control List“, ACL) repräsentiert. Dieser Typ hat die folgenden Parameter:"
 
-#. type: table
-#: doc/guix.texi:21313
-msgid "An identifier for ether configuration fields to refer to this key. IDs must be unique and must not be empty."
-msgstr "Ein Identifikator, mit dem sich andere Konfigurationsfelder auf diesen Schlüssel beziehen können. IDs müssen eindeutig sein und dürfen @emph{nicht} leer sein."
-
 #. type: item
-#: doc/guix.texi:21314 doc/guix.texi:21429
+#: doc/guix.texi:24087 doc/guix.texi:24202
 #, no-wrap
 msgid "@code{address} (default: @code{'()})"
 msgstr "@code{address} (Vorgabe: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:21318
+#: doc/guix.texi:24091
 msgid "An ordered list of IP addresses, network subnets, or network ranges represented with strings.  The query must match one of them.  Empty value means that address match is not required."
 msgstr "Eine geordnete Liste aus IP-Adresse, Netzwerk-Subnetzen oder Netzwerkbereichen, die jeweils als Zeichenketten angegeben werden. Die Anfrage muss zu einem davon passen. Ein leerer Wert bedeutet, dass die Adresse nicht passen muss."
 
 #. type: item
-#: doc/guix.texi:21319
+#: doc/guix.texi:24092
 #, no-wrap
 msgid "@code{key} (default: @code{'()})"
 msgstr "@code{key} (Vorgabe: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:21323
+#: doc/guix.texi:24096
 msgid "An ordered list of references to keys represented with strings.  The string must match a key ID defined in a @code{knot-key-configuration}.  No key means that a key is not require to match that ACL."
 msgstr "Eine geordnete Liste von Referenzen auf Schlüssel, die jeweils als Zeichenketten angegeben werden. Die Zeichenkette muss zu einem Schlüsselidentifikator passen, der in einem der @code{knot-key-configuration}-Objekte definiert wurde. Wenn kein Schlüssel angegeben wird, bedeutet das, dass kein Schlüssel zu dieser Zugriffssteuerungsliste passen muss."
 
 #. type: item
-#: doc/guix.texi:21324
+#: doc/guix.texi:24097
 #, no-wrap
 msgid "@code{action} (default: @code{'()})"
 msgstr "@code{action} (Vorgabe: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:21328
+#: doc/guix.texi:24101
 msgid "An ordered list of actions that are permitted or forbidden by this ACL.  Possible values are lists of zero or more elements from @code{'transfer}, @code{'notify} and @code{'update}."
 msgstr "Eine geordete Liste der Aktionen, die von dieser Zugriffssteuerungsliste zugelassen oder gesperrt werden. Mögliche Werte sind Listen aus null oder mehr Elementen, die jeweils @code{'transfer}, @code{'notify} oder @code{'update} sind."
 
 #. type: item
-#: doc/guix.texi:21329
+#: doc/guix.texi:24102
 #, no-wrap
 msgid "@code{deny?} (default: @code{#f})"
 msgstr "@code{deny?} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:21332
+#: doc/guix.texi:24105
 msgid "When true, the ACL defines restrictions.  Listed actions are forbidden.  When false, listed actions are allowed."
 msgstr "Wenn dies auf wahr steht, werden mit der Zugriffssteuerungsliste Einschränkungen festgelegt, d.h.@: aufgelistet Aktionen werden gesperrt. Steht es auf falsch, werden aufgelistete Aktionen zugelassen."
 
 #. type: deftp
-#: doc/guix.texi:21336
+#: doc/guix.texi:24109
 #, no-wrap
 msgid "{Data Type} zone-entry"
 msgstr "{Datentyp} zone-entry"
 
 #. type: deftp
-#: doc/guix.texi:21339
+#: doc/guix.texi:24112
 msgid "Data type representing a record entry in a zone file.  This type has the following parameters:"
 msgstr "Datentyp, der einen Eintrag in einer Zonendatei repräsentiert. Dieser Typ verfügt über die folgenden Parameter:"
 
 #. type: item
-#: doc/guix.texi:21341
+#: doc/guix.texi:24114
 #, no-wrap
 msgid "@code{name} (default: @code{\"@@\"})"
 msgstr "@code{name} (Vorgabe: @code{\"@@\"})"
 
 #. type: table
-#: doc/guix.texi:21347
+#: doc/guix.texi:24120
 msgid "The name of the record.  @code{\"@@\"} refers to the origin of the zone.  Names are relative to the origin of the zone.  For example, in the @code{example.org} zone, @code{\"ns.example.org\"} actually refers to @code{ns.example.org.example.org}.  Names ending with a dot are absolute, which means that @code{\"ns.example.org.\"} refers to @code{ns.example.org}."
 msgstr "Der Name des Eintrags. @code{\"@@\"} bezieht sich auf den Ursprung der Zone. Namen sind relativ zum Ursprung der Zone. Zum Beispiel bezieht sich in einer Zone @code{example.org} der Eintrag @code{\"ns.example.org\"} tatsächlich auf @code{ns.example.org.example.org}. Namen, die auf einen Punkt enden, sind absolut. Das bedeutet, dass sich @code{\"ns.example.org.\"} auf @code{ns.example.org} bezieht."
 
 #. type: item
-#: doc/guix.texi:21348
+#: doc/guix.texi:24121
 #, no-wrap
 msgid "@code{ttl} (default: @code{\"\"})"
 msgstr "@code{ttl} (Vorgabe: @code{\"\"})"
 
 #. type: table
-#: doc/guix.texi:21350
+#: doc/guix.texi:24123
 msgid "The Time-To-Live (TTL) of this record.  If not set, the default TTL is used."
 msgstr "Wie lange dieser Eintrag zwischengespeichert werden darf, d.h.@: seine „Time-To-Live“ (TTL). Ist sie nicht festgelegt, wird die voreingestellte TTL benutzt."
 
 #. type: item
-#: doc/guix.texi:21351
+#: doc/guix.texi:24124
 #, no-wrap
 msgid "@code{class} (default: @code{\"IN\"})"
 msgstr "@code{class} (Vorgabe: @code{\"IN\"})"
 
 #. type: table
-#: doc/guix.texi:21354
+#: doc/guix.texi:24127
 msgid "The class of the record.  Knot currently supports only @code{\"IN\"} and partially @code{\"CH\"}."
 msgstr "Welche Klasse der Eintrag hat. Derzeit unterstützt Knot nur @code{\"IN\"} und teilweise @code{\"CH\"}."
 
 #. type: item
-#: doc/guix.texi:21355
+#: doc/guix.texi:24128
 #, no-wrap
 msgid "@code{type} (default: @code{\"A\"})"
 msgstr "@code{type} (Vorgabe: @code{\"A\"})"
 
 #. type: table
-#: doc/guix.texi:21359
+#: doc/guix.texi:24132
 msgid "The type of the record.  Common types include A (IPv4 address), AAAA (IPv6 address), NS (Name Server) and MX (Mail eXchange).  Many other types are defined."
 msgstr "Der Typ des Eintrags. Zu den üblichen Typen gehören A (für eine IPv4-Adresse), AAAA (für eine IPv6-Adresse), NS (der Namens-Server) und MX („Mail eXchange“ für E-Mails). Viele andere Typen sind auch definiert."
 
 #. type: item
-#: doc/guix.texi:21360
+#: doc/guix.texi:24133
 #, no-wrap
 msgid "@code{data} (default: @code{\"\"})"
 msgstr "@code{data} (Vorgabe: @code{\"\"})"
 
 #. type: table
-#: doc/guix.texi:21364
+#: doc/guix.texi:24137
 msgid "The data contained in the record.  For instance an IP address associated with an A record, or a domain name associated with an NS record.  Remember that domain names are relative to the origin unless they end with a dot."
 msgstr "Die Daten, die im Eintrag stehen, zum Beispiel eine IP-Adresse bei einem A-Eintrag oder ein Domain-Name bei einem NS-Eintrag. Bedenken Sie, dass Domain-Namen relativ zum Ursprung angegeben werden, außer wenn sie auf einen Punkt enden."
 
 #. type: deftp
-#: doc/guix.texi:21368
+#: doc/guix.texi:24141
 #, no-wrap
 msgid "{Data Type} zone-file"
 msgstr "{Datentyp} zone-file"
 
 #. type: deftp
-#: doc/guix.texi:21371
+#: doc/guix.texi:24144
 msgid "Data type representing the content of a zone file.  This type has the following parameters:"
 msgstr "Datentyp, der den Inhalt einer Zonendatei repräsentiert. Dieser Typ verfügt über die folgenden Parameter:"
 
 #. type: table
-#: doc/guix.texi:21380
+#: doc/guix.texi:24153
 msgid "The list of entries.  The SOA record is taken care of, so you don't need to put it in the list of entries.  This list should probably contain an entry for your primary authoritative DNS server.  Other than using a list of entries directly, you can use @code{define-zone-entries} to define a object containing the list of entries more easily, that you can later pass to the @code{entries} field of the @code{zone-file}."
 msgstr "Die Liste der Einträge. Für den SOA-Eintrag wird automatisch gesorgt, also müssen Sie ihn nicht zur Liste der Einträge hinzufügen. In der Liste sollte vermutlich ein Eintrag für Ihren primären autoritativen DNS-Server stehen. Abgesehen vom direkten Aufzählen der Einträge können Sie @code{define-zone-entries} verwenden, um ein Objekt zu definieren, worin eine Liste von Einträgen leichter angegeben werden kann, und was sie dann im @code{entries}-Feld des @code{zone-file} angeben können."
 
 #. type: item
-#: doc/guix.texi:21381
+#: doc/guix.texi:24154
 #, no-wrap
 msgid "@code{origin} (default: @code{\"\"})"
 msgstr "@code{origin} (Vorgabe: @code{\"\"})"
 
 #. type: table
-#: doc/guix.texi:21383
+#: doc/guix.texi:24156
 msgid "The name of your zone.  This parameter cannot be empty."
 msgstr "Der Name Ihrer Zone. Dieser Parameter darf nicht leer sein."
 
 #. type: item
-#: doc/guix.texi:21384
+#: doc/guix.texi:24157
 #, no-wrap
 msgid "@code{ns} (default: @code{\"ns\"})"
 msgstr "@code{ns} (Vorgabe: @code{\"ns\"})"
 
 #. type: table
-#: doc/guix.texi:21389
+#: doc/guix.texi:24162
 msgid "The domain of your primary authoritative DNS server.  The name is relative to the origin, unless it ends with a dot.  It is mandatory that this primary DNS server corresponds to an NS record in the zone and that it is associated to an IP address in the list of entries."
 msgstr "Die Domain Ihres primären autoritativen DNS-Servers. Der Name wird relativ zum Ursprung angegeben, außer wenn er auf einen Punkt endet. Dieser primäre DNS-Server @emph{muss} verpflichtend einem NS-Eintrag in der Zone entsprechen, dem eine IP-Adresse in der Liste der Einträge zugeordnet werden muss."
 
 #. type: item
-#: doc/guix.texi:21390
+#: doc/guix.texi:24163
 #, no-wrap
 msgid "@code{mail} (default: @code{\"hostmaster\"})"
 msgstr "@code{mail} (Vorgabe: @code{\"hostmaster\"})"
 
 #. type: table
-#: doc/guix.texi:21393
+#: doc/guix.texi:24166
 msgid "An email address people can contact you at, as the owner of the zone.  This is translated as @code{<mail>@@<origin>}."
 msgstr "Eine E-Mail-Adresse, unter der man Sie als für diese Zone Verantwortlichen („Besitzer“/„Owner“) kontaktieren kann. Sie wird zu @code{<mail>@@<origin>} umgeschrieben."
 
 #. type: item
-#: doc/guix.texi:21394
+#: doc/guix.texi:24167
 #, no-wrap
 msgid "@code{serial} (default: @code{1})"
 msgstr "@code{serial} (Vorgabe: @code{1})"
 
 #. type: table
-#: doc/guix.texi:21398
+#: doc/guix.texi:24171
 msgid "The serial number of the zone.  As this is used to keep track of changes by both slaves and resolvers, it is mandatory that it @emph{never} decreases.  Always increment it when you make a change in your zone."
 msgstr "Die Seriennummer der Zone. Da sie von sowohl „Slaves“ als auch „Resolvern“ benutzt wird, um bei Änderungen auf dem Laufenden zu bleiben, ist es notwendig, dass sie @emph{niemals} kleiner gemacht wird. Erhöhen Sie sie, wann immer Sie eine Änderung an Ihrer Zone durchführen."
 
 #. type: item
-#: doc/guix.texi:21399
+#: doc/guix.texi:24172
 #, no-wrap
 msgid "@code{refresh} (default: @code{(* 2 24 3600)})"
 msgstr "@code{refresh} (Vorgabe: @code{(* 2 24 3600)})"
 
 #. type: table
-#: doc/guix.texi:21403
+#: doc/guix.texi:24176
 msgid "The frequency at which slaves will do a zone transfer.  This value is a number of seconds.  It can be computed by multiplications or with @code{(string->duration)}."
 msgstr "Die Häufigkeit, wie oft Slaves eine Zonenübertragung („Zone Transfer“) durchführen. Als Wert wird eine Anzahl von Sekunden angegeben. Sie kann über eine Multiplikation oder mit @code{(string->duration)} angegeben werden."
 
 #. type: item
-#: doc/guix.texi:21404
+#: doc/guix.texi:24177
 #, no-wrap
 msgid "@code{retry} (default: @code{(* 15 60)})"
 msgstr "@code{retry} (Vorgabe: @code{(* 15 60)})"
 
 #. type: table
-#: doc/guix.texi:21407
+#: doc/guix.texi:24180
 msgid "The period after which a slave will retry to contact its master when it fails to do so a first time."
 msgstr "Nach welcher Zeitperiode ein Slave versuchen wird, Kontakt mit seinem Master aufzunehmen, wenn er ihn beim ersten Mal nicht erreichen kann."
 
 #. type: item
-#: doc/guix.texi:21408
+#: doc/guix.texi:24181
 #, no-wrap
 msgid "@code{expiry} (default: @code{(* 14 24 3600)})"
 msgstr "@code{expiry} (Vorgabe: @code{(* 14 24 3600)})"
 
 #. type: table
-#: doc/guix.texi:21412
+#: doc/guix.texi:24185
 msgid "Default TTL of records.  Existing records are considered correct for at most this amount of time.  After this period, resolvers will invalidate their cache and check again that it still exists."
 msgstr "Die Voreinstellung, welche TTL für Einträge verwendet werden soll. Bestehende Einträge werden für höchstens diese Zeitspanne als korrekt angesehen. Nach Ablauf dieser Zeitspanne werden „Resolver“ ihren Zwischenspeicher als ungültig markieren und erneut prüfen, ob der Eintrag noch existiert."
 
 #. type: item
-#: doc/guix.texi:21413
+#: doc/guix.texi:24186
 #, no-wrap
 msgid "@code{nx} (default: @code{3600})"
 msgstr "@code{nx} (Vorgabe: @code{3600})"
 
 #. type: table
-#: doc/guix.texi:21416
+#: doc/guix.texi:24189
 msgid "Default TTL of inexistant records.  This delay is usually short because you want your new domains to reach everyone quickly."
 msgstr "Die voreingestellte TTL der @emph{nicht} existierenden Einträge. Sie stellt normalerweise eine kurze Verzögerung dar, weil Sie möchten, dass neue Domains für jeden schnell erkannt werden."
 
 #. type: deftp
-#: doc/guix.texi:21420
+#: doc/guix.texi:24193
 #, no-wrap
 msgid "{Data Type} knot-remote-configuration"
 msgstr "{Datentyp} knot-remote-configuration"
 
 #. type: deftp
-#: doc/guix.texi:21423
+#: doc/guix.texi:24196
 msgid "Data type representing a remote configuration.  This type has the following parameters:"
 msgstr "Datentyp, der die Konfiguration eines entfernten Servers („Remote“) repräsentiert. Dieser Typ verfügt über die folgenden Parameter:"
 
 #. type: table
-#: doc/guix.texi:21428
+#: doc/guix.texi:24201
 msgid "An identifier for other configuration fields to refer to this remote. IDs must be unique and must not be empty."
 msgstr "Ein Identifikator, mit dem man sich in anderen Konfigurationsfeldern auf diesen entfernten Server („Remote“) beziehen kann. IDs müssen eindeutig sein und dürfen @emph{nicht} leer sein."
 
 #. type: table
-#: doc/guix.texi:21433
+#: doc/guix.texi:24206
 msgid "An ordered list of destination IP addresses.  Addresses are tried in sequence.  An optional port can be given with the @@ separator.  For instance: @code{(list \"1.2.3.4\" \"2.3.4.5@@53\")}.  Default port is 53."
 msgstr "Eine geordnete Liste der Empfänger-IP-Adressen. Adressen werden der Reihe nach durchprobiert. Optional kann eine Portnummer nach dem Trennzeichen @@ angegeben werden, zum Beispiel als @code{(list \"1.2.3.4\" \"2.3.4.5@@53\")}. Die Vorgabe ist 53."
 
 #. type: item
-#: doc/guix.texi:21434
+#: doc/guix.texi:24207
 #, no-wrap
 msgid "@code{via} (default: @code{'()})"
 msgstr "@code{via} (Vorgabe: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:21438
+#: doc/guix.texi:24211
 msgid "An ordered list of source IP addresses.  An empty list will have Knot choose an appropriate source IP.  An optional port can be given with the @@ separator.  The default is to choose at random."
 msgstr "Eine geordnete Liste der Quell-IP-Adressen. Eine leere Liste wird Knot eine sinnvolle Quell-IP-Adresse auswählen lassen. Optional kann eine Portnummer nach dem Trennzeichen @@ angegeben werden. Die Vorgabe wird zufällig ausgewählt."
 
 #. type: item
-#: doc/guix.texi:21439
+#: doc/guix.texi:24212
 #, no-wrap
 msgid "@code{key} (default: @code{#f})"
 msgstr "@code{key} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:21442
+#: doc/guix.texi:24215
 msgid "A reference to a key, that is a string containing the identifier of a key defined in a @code{knot-key-configuration} field."
 msgstr "Ein Verweis auf einen Schlüssel („Key“), also eine Zeichenkette, die den Identifikator eines Schlüssels enthält, der in einem @code{knot-key-configuration}-Feld festgelegt wurde."
 
 #. type: deftp
-#: doc/guix.texi:21446
+#: doc/guix.texi:24219
 #, no-wrap
 msgid "{Data Type} knot-keystore-configuration"
 msgstr "{Datentyp} knot-keystore-configuration"
 
 #. type: deftp
-#: doc/guix.texi:21449
+#: doc/guix.texi:24222
 msgid "Data type representing a keystore to hold dnssec keys.  This type has the following parameters:"
 msgstr "Datentyp, der einen Schlüsselspeicher („Keystore“) repräsentiert, um DNSSEC-Schlüssel zu fassen. Dieser Typ verfügt über die folgenden Parameter:"
 
 #. type: table
-#: doc/guix.texi:21453
+#: doc/guix.texi:24226
 msgid "The id of the keystore.  It must not be empty."
 msgstr "Der Identifikator des Schlüsselspeichers. Er darf nicht leer gelassen werden."
 
 #. type: item
-#: doc/guix.texi:21454
+#: doc/guix.texi:24227
 #, no-wrap
 msgid "@code{backend} (default: @code{'pem})"
 msgstr "@code{backend} (Vorgabe: @code{'pem})"
 
 #. type: table
-#: doc/guix.texi:21456
+#: doc/guix.texi:24229
 msgid "The backend to store the keys in.  Can be @code{'pem} or @code{'pkcs11}."
 msgstr "Die Art von Hintergrundspeicher, in dem Schlüssel eingetragen werden. Sie kann @code{'pem} oder @code{'pkcs11} sein."
 
 #. type: item
-#: doc/guix.texi:21457
+#: doc/guix.texi:24230
 #, no-wrap
 msgid "@code{config} (default: @code{\"/var/lib/knot/keys/keys\"})"
 msgstr "@code{config} (Vorgabe: @code{\"/var/lib/knot/keys/keys\"})"
 
 #. type: table
-#: doc/guix.texi:21461
+#: doc/guix.texi:24234
 msgid "The configuration string of the backend.  An example for the PKCS#11 is: @code{\"pkcs11:token=knot;pin-value=1234 /gnu/store/.../lib/pkcs11/libsofthsm2.so\"}.  For the pem backend, the string represents a path in the file system."
 msgstr "Die Zeichenkette mit der Konfiguration des Hintergrundspeichers. Ein Beispiel für die PKCS#11 ist @code{\"pkcs11:token=knot;pin-value=1234 /gnu/store/…/lib/pkcs11/libsofthsm2.so\"}. Für pem als Hintergrundspeicher repräsentiert die Zeichenkette einen Pfad im Dateisystem."
 
 #. type: deftp
-#: doc/guix.texi:21465
+#: doc/guix.texi:24238
 #, no-wrap
 msgid "{Data Type} knot-policy-configuration"
 msgstr "{Datentyp} knot-policy-configuration"
 
 #. type: deftp
-#: doc/guix.texi:21469
+#: doc/guix.texi:24242
 msgid "Data type representing a dnssec policy.  Knot DNS is able to automatically sign your zones.  It can either generate and manage your keys automatically or use keys that you generate."
 msgstr "Datentyp, der die DNSSEC-Richtlinie repräsentiert. Knot DNS kann Ihre Zonen automatisch signieren. Der Dienst kann Ihre Schlüssel automatisch erzeugen und verwalten oder Schlüssel benutzen, die Sie selbst erzeugen."
 
 #. type: deftp
-#: doc/guix.texi:21476
+#: doc/guix.texi:24249
 msgid "Dnssec is usually implemented using two keys: a Key Signing Key (KSK) that is used to sign the second, and a Zone Signing Key (ZSK) that is used to sign the zone.  In order to be trusted, the KSK needs to be present in the parent zone (usually a top-level domain).  If your registrar supports dnssec, you will have to send them your KSK's hash so they can add a DS record in their zone.  This is not automated and need to be done each time you change your KSK."
 msgstr "DNSSEC wird in der Regel mit zwei Schlüsseln implementiert: Ein Schlüssel, mit dem Schlüssel signiert werden („Key Signing Key“, KSK), signiert den zweiten Schlüssel, einen Schlüssel, der Zonen signiert („Zone Signing Key“, ZSK), mit dem die Zone signiert wird. Damit er als vertrauenswürdig angesehen wird, muss der KSK in der Elternzone stehen (meistens ist das eine Top-Level-Domain). Wenn Ihr Registrar DNSSEC unterstützt, müssen Sie ihm den Hash Ihres KSK übermitteln, damit er einen DS-Eintrag für Ihre Zone hinzufügen kann. Das passiert nicht automatisch und muss jedes Mal wiederholt werden, wenn Sie Ihren KSK ändern."
 
 #. type: deftp
-#: doc/guix.texi:21482
+#: doc/guix.texi:24255
 msgid "The policy also defines the lifetime of keys.  Usually, ZSK can be changed easily and use weaker cryptographic functions (they use lower parameters) in order to sign records quickly, so they are changed often.  The KSK however requires manual interaction with the registrar, so they are changed less often and use stronger parameters because they sign only one record."
 msgstr "Die Richtlinie legt auch fest, wie lange Ihre Schlüssel gültig bleiben. Normalerweise kann der ZSK leicht geändert werden und benutzt kryptografisch schwächere Funktionen (also niedrigere Parameter), damit Einträge schnell signiert werden können, wodurch man sie oft verändern kann. Der KSK setzt jedoch eine manuelle Interaktion mit dem Registrar voraus, also werden sie weniger oft geändert und verwenden stärkere Parameter, weil mit ihnen nur ein einziger Eintrag signiert wird."
 
 #. type: deftp
-#: doc/guix.texi:21484
+#: doc/guix.texi:24257
 msgid "This type has the following parameters:"
 msgstr "Dieser Typ verfügt über die folgenden Parameter:"
 
 #. type: table
-#: doc/guix.texi:21488
+#: doc/guix.texi:24261
 msgid "The id of the policy.  It must not be empty."
 msgstr "Der Identifikator der Richtlinie. Er darf nicht leer sein."
 
 #. type: item
-#: doc/guix.texi:21489
+#: doc/guix.texi:24262
 #, no-wrap
 msgid "@code{keystore} (default: @code{\"default\"})"
 msgstr "@code{keystore} (Vorgabe: @code{\"default\"})"
 
 #. type: table
-#: doc/guix.texi:21494
+#: doc/guix.texi:24267
 msgid "A reference to a keystore, that is a string containing the identifier of a keystore defined in a @code{knot-keystore-configuration} field.  The @code{\"default\"} identifier means the default keystore (a kasp database that was setup by this service)."
 msgstr "Eine Referenz auf einen Schlüsselspeicher („Keystore“), also eine Zeichenkette, die den Identifikator eines Schlüsselspeichers enthält, der in einem @code{knot-keystore-configuration}-Feld gespeichert ist. Der Identifikator @code{\"default\"} sorgt dafür, dass der vorgegebene Schlüsselspeicher verwendet wird (eine KASP-Datenbank, die durch diesen Dienst eingerichtet wurde)."
 
 #. type: item
-#: doc/guix.texi:21495
+#: doc/guix.texi:24268
 #, no-wrap
 msgid "@code{manual?} (default: @code{#f})"
 msgstr "@code{manual?} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:21497
+#: doc/guix.texi:24270
 msgid "Whether the key management is manual or automatic."
 msgstr "Ob Schlüssel manuell verwaltet werden sollen; andernfalls werden sie automatisch verwaltet."
 
 #. type: item
-#: doc/guix.texi:21498
+#: doc/guix.texi:24271
 #, no-wrap
 msgid "@code{single-type-signing?} (default: @code{#f})"
 msgstr "@code{single-type-signing?} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:21500
+#: doc/guix.texi:24273
 msgid "When @code{#t}, use the Single-Type Signing Scheme."
 msgstr "Wenn es auf @code{#t} steht, werden dieselben Schlüssel als KSK und ZSK verwendet („Single-Type Signing Scheme“)."
 
 #. type: item
-#: doc/guix.texi:21501
+#: doc/guix.texi:24274
 #, no-wrap
 msgid "@code{algorithm} (default: @code{\"ecdsap256sha256\"})"
 msgstr "@code{algorithm} (Vorgabe: @code{\"ecdsap256sha256\"})"
 
 #. type: table
-#: doc/guix.texi:21503
+#: doc/guix.texi:24276
 msgid "An algorithm of signing keys and issued signatures."
 msgstr "Ein Algorithmus für zum Signieren verwendete Schlüssel und ausgestellte Signaturen."
 
 #. type: item
-#: doc/guix.texi:21504
+#: doc/guix.texi:24277
 #, no-wrap
 msgid "@code{ksk-size} (default: @code{256})"
 msgstr "@code{ksk-size} (Vorgabe: @code{256})"
 
 #. type: table
-#: doc/guix.texi:21507
+#: doc/guix.texi:24280
 msgid "The length of the KSK.  Note that this value is correct for the default algorithm, but would be unsecure for other algorithms."
 msgstr "Die Länge des KSK. Beachten Sie, dass dieser Wert für den vorgegebenen Algorithmus korrekt ist, aber für andere Algorithmen @emph{nicht} sicher wäre."
 
 #. type: item
-#: doc/guix.texi:21508
+#: doc/guix.texi:24281
 #, no-wrap
 msgid "@code{zsk-size} (default: @code{256})"
 msgstr "@code{zsk-size} (Vorgabe: @code{256})"
 
 #. type: table
-#: doc/guix.texi:21511
+#: doc/guix.texi:24284
 msgid "The length of the ZSK.  Note that this value is correct for the default algorithm, but would be unsecure for other algorithms."
 msgstr "Die Länge des ZSK. Beachten Sie, dass dieser Wert für den vorgegebenen Algorithmus korrekt ist, aber für andere Algorithmen @emph{nicht} sicher wäre."
 
 #. type: item
-#: doc/guix.texi:21512
+#: doc/guix.texi:24285
 #, no-wrap
 msgid "@code{dnskey-ttl} (default: @code{'default})"
 msgstr "@code{dnskey-ttl} (Vorgabe: @code{'default})"
 
 #. type: table
-#: doc/guix.texi:21515
+#: doc/guix.texi:24288
 msgid "The TTL value for DNSKEY records added into zone apex.  The special @code{'default} value means same as the zone SOA TTL."
 msgstr "Der TTL-Wert für DNSKEY-Einträge, die die Wurzel der Zone betreffen. Der besondere Wert @code{'default} bedeutet, dass dieselbe TTL wie für den SOA-Eintrag der Zone verwendet wird."
 
 #. type: item
-#: doc/guix.texi:21516
+#: doc/guix.texi:24289
 #, no-wrap
 msgid "@code{zsk-lifetime} (default: @code{(* 30 24 3600)})"
 msgstr "@code{zsk-lifetime} (Vorgabe: @code{(* 30 24 3600)})"
 
 #. type: table
-#: doc/guix.texi:21518
+#: doc/guix.texi:24291
 msgid "The period between ZSK publication and the next rollover initiation."
 msgstr "Die Zeitspanne zwischen der Veröffentlichung eines ZSK und dem Anfang des nächsten Schlüsselübergangs („Key Rollover“)."
 
 #. type: item
-#: doc/guix.texi:21519
+#: doc/guix.texi:24292
 #, no-wrap
 msgid "@code{propagation-delay} (default: @code{(* 24 3600)})"
 msgstr "@code{propagation-delay} (Vorgabe: @code{(* 24 3600)})"
 
 #. type: table
-#: doc/guix.texi:21522
+#: doc/guix.texi:24295
 msgid "An extra delay added for each key rollover step.  This value should be high enough to cover propagation of data from the master server to all slaves."
 msgstr "Eine zusätzliche Verlängerung, die bei jedem Schritt im Schlüsselübergang („Key Rollover“) gewartet wird. Dieser Wert sollte hoch genug sein, damit in dieser Zeit Daten vom Master-Server alle Slaves erreichen."
 
 #. type: item
-#: doc/guix.texi:21523
+#: doc/guix.texi:24296
 #, no-wrap
 msgid "@code{rrsig-lifetime} (default: @code{(* 14 24 3600)})"
 msgstr "@code{rrsig-lifetime} (Vorgabe: @code{(* 14 24 3600)})"
 
 #. type: table
-#: doc/guix.texi:21525
+#: doc/guix.texi:24298
 msgid "A validity period of newly issued signatures."
 msgstr "Wie lange neu ausgestellte Signaturen gültig bleiben."
 
 #. type: item
-#: doc/guix.texi:21526
+#: doc/guix.texi:24299
 #, no-wrap
 msgid "@code{rrsig-refresh} (default: @code{(* 7 24 3600)})"
 msgstr "@code{rrsig-refresh} (Vorgabe: @code{(* 7 24 3600)})"
 
 #. type: table
-#: doc/guix.texi:21528
+#: doc/guix.texi:24301
 msgid "A period how long before a signature expiration the signature will be refreshed."
 msgstr "Wie lange im Voraus vor einem Auslaufen der Signatur diese Signatur erneuert werden soll."
 
 #. type: item
-#: doc/guix.texi:21529
+#: doc/guix.texi:24302
 #, no-wrap
 msgid "@code{nsec3?} (default: @code{#f})"
 msgstr "@code{nsec3?} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:21531
+#: doc/guix.texi:24304
 msgid "When @code{#t}, NSEC3 will be used instead of NSEC."
 msgstr "Ist es auf @code{#t} gesetzt, wird NSEC3 statt NSEC benutzt."
 
 #. type: item
-#: doc/guix.texi:21532
+#: doc/guix.texi:24305
 #, no-wrap
 msgid "@code{nsec3-iterations} (default: @code{5})"
 msgstr "@code{nsec3-iterations} (Vorgabe: @code{5})"
 
 #. type: table
-#: doc/guix.texi:21534
+#: doc/guix.texi:24307
 msgid "The number of additional times the hashing is performed."
 msgstr "Wie oft zusätzlich gehasht werden soll."
 
 #. type: item
-#: doc/guix.texi:21535
+#: doc/guix.texi:24308
 #, no-wrap
 msgid "@code{nsec3-salt-length} (default: @code{8})"
 msgstr "@code{nsec3-salt-length} (Vorgabe: @code{8})"
 
 #. type: table
-#: doc/guix.texi:21538
+#: doc/guix.texi:24311
 msgid "The length of a salt field in octets, which is appended to the original owner name before hashing."
 msgstr "Wie lange das kryptografische „Salt“ sein soll, als Anzahl von Oktetten. Es wird vor dem Hashen an den Namen des ursprünglichen Besitzers angehängt."
 
 #. type: item
-#: doc/guix.texi:21539
+#: doc/guix.texi:24312
 #, no-wrap
 msgid "@code{nsec3-salt-lifetime} (default: @code{(* 30 24 3600)})"
 msgstr "@code{nsec3-salt-lifetime} (Vorgabe: @code{(* 30 24 3600)})"
 
 #. type: table
-#: doc/guix.texi:21541
+#: doc/guix.texi:24314
 msgid "The validity period of newly issued salt field."
 msgstr "Wie lange das neu ausgestellte Salt-Feld gültig bleiben soll."
 
 #. type: deftp
-#: doc/guix.texi:21545
+#: doc/guix.texi:24318
 #, no-wrap
 msgid "{Data Type} knot-zone-configuration"
 msgstr "{Datentyp} knot-zone-configuration"
 
 #. type: deftp
-#: doc/guix.texi:21548
+#: doc/guix.texi:24321
 msgid "Data type representing a zone served by Knot.  This type has the following parameters:"
 msgstr "Datentyp, der eine durch Knot verfügbar gemachte Zone repräsentiert. Dieser Typ verfügt über die folgenden Parameter:"
 
 #. type: item
-#: doc/guix.texi:21550
+#: doc/guix.texi:24323
 #, no-wrap
 msgid "@code{domain} (default: @code{\"\"})"
 msgstr "@code{domain} (Vorgabe: @code{\"\"})"
 
 #. type: table
-#: doc/guix.texi:21552
+#: doc/guix.texi:24325
 msgid "The domain served by this configuration.  It must not be empty."
 msgstr "Die Domain, die durch diese Konfiguration zur Verfügung gestellt wird. Sie darf nicht leer sein."
 
 #. type: item
-#: doc/guix.texi:21553
+#: doc/guix.texi:24326
 #, no-wrap
 msgid "@code{file} (default: @code{\"\"})"
 msgstr "@code{file} (Vorgabe: @code{\"\"})"
 
 #. type: table
-#: doc/guix.texi:21556
+#: doc/guix.texi:24329
 msgid "The file where this zone is saved.  This parameter is ignored by master zones.  Empty means default location that depends on the domain name."
 msgstr "Die Datei, in der diese Zone abgespeichert wird. Dieser Parameter wird bei Master-Zonen ignoriert. Bleibt er leer, wird die vom Domain-Namen abhängige Voreinstellung benutzt."
 
 #. type: item
-#: doc/guix.texi:21557
+#: doc/guix.texi:24330
 #, no-wrap
 msgid "@code{zone} (default: @code{(zone-file)})"
 msgstr "@code{zone} (Vorgabe: @code{(zone-file)})"
 
 #. type: table
-#: doc/guix.texi:21560
+#: doc/guix.texi:24333
 msgid "The content of the zone file.  This parameter is ignored by slave zones.  It must contain a zone-file record."
 msgstr "Der Inhalt der Zonendatei. Dieser Parameter wird bei Slave-Zonen ignoriert. Er muss ein Verbundsobjekt vom Typ @code{zone-file} enthalten."
 
 #. type: item
-#: doc/guix.texi:21561
+#: doc/guix.texi:24334
 #, no-wrap
 msgid "@code{master} (default: @code{'()})"
 msgstr "@code{master} (Vorgabe: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:21564
+#: doc/guix.texi:24337
 msgid "A list of master remotes.  When empty, this zone is a master.  When set, this zone is a slave.  This is a list of remotes identifiers."
 msgstr "Eine Liste von als „Master“ geltenden entfernten Servern. Ist sie leer, ist diese Zone ein Master, sonst ein Slave. Es handelt sich um eine Liste von Identifikatoren entfernter Server („Remotes“)."
 
 #. type: item
-#: doc/guix.texi:21565
+#: doc/guix.texi:24338
 #, no-wrap
 msgid "@code{ddns-master} (default: @code{#f})"
 msgstr "@code{ddns-master} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:21568
+#: doc/guix.texi:24341
 msgid "The main master.  When empty, it defaults to the first master in the list of masters."
 msgstr "Der vorrangige „Master“. Ist dies leer, wird hierfür der erste Master aus der Liste der Master benutzt."
 
 #. type: item
-#: doc/guix.texi:21569
+#: doc/guix.texi:24342
 #, no-wrap
 msgid "@code{notify} (default: @code{'()})"
 msgstr "@code{notify} (Vorgabe: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:21571
+#: doc/guix.texi:24344
 msgid "A list of slave remote identifiers."
 msgstr "Eine Liste der Identifikatoren von entfernten Slave-Servern („Remotes“)."
 
 #. type: item
-#: doc/guix.texi:21572
+#: doc/guix.texi:24345
 #, no-wrap
 msgid "@code{acl} (default: @code{'()})"
 msgstr "@code{acl} (Vorgabe: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:21574
+#: doc/guix.texi:24347
 msgid "A list of acl identifiers."
 msgstr "Eine Liste von Identifikatoren von Zugriffssteuerungslisten."
 
 #. type: item
-#: doc/guix.texi:21575
+#: doc/guix.texi:24348
 #, no-wrap
 msgid "@code{semantic-checks?} (default: @code{#f})"
 msgstr "@code{semantic-checks?} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:21577
+#: doc/guix.texi:24350
 msgid "When set, this adds more semantic checks to the zone."
 msgstr "Wenn dies festgelegt ist, werden für die Zone mehr semantische Überprüfungen durchgeführt."
 
 #. type: item
-#: doc/guix.texi:21578
+#: doc/guix.texi:24351
 #, no-wrap
 msgid "@code{disable-any?} (default: @code{#f})"
 msgstr "@code{disable-any?} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:21580
+#: doc/guix.texi:24353
 msgid "When set, this forbids queries of the ANY type."
 msgstr "Wenn dies gesetzt ist, werden Anfragen vom Typ ANY gesperrt."
 
 #. type: item
-#: doc/guix.texi:21581
+#: doc/guix.texi:24354
 #, no-wrap
 msgid "@code{zonefile-sync} (default: @code{0})"
 msgstr "@code{zonefile-sync} (Vorgabe: @code{0})"
 
 #. type: table
-#: doc/guix.texi:21584
+#: doc/guix.texi:24357
 msgid "The delay between a modification in memory and on disk.  0 means immediate synchronization."
 msgstr "Wie lange nach einer Änderung der im Arbeitsspeicher zwischengespeicherten Daten gewartet wird, bis die Daten auf die Platte geschrieben werden. Bei 0 werden sie sofort synchronisiert."
 
 #. type: item
-#: doc/guix.texi:21585
+#: doc/guix.texi:24358
 #, no-wrap
 msgid "@code{zonefile-load} (default: @code{#f})"
 msgstr "@code{zonefile-load} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:21588
+#: doc/guix.texi:24361
 msgid "The way the zone file contents are applied during zone load.  Possible values are:"
 msgstr "Wie die in der Zonendatei gespeicherten Daten benutzt werden, wenn die Zone geladen wird. Mögliche Werte sind:"
 
 #. type: item
-#: doc/guix.texi:21590
+#: doc/guix.texi:24363
 #, no-wrap
 msgid "@code{#f} for using the default value from Knot,"
 msgstr "@code{#f} sorgt dafür, dass nach der Voreinstellung von Knot verfahren wird,"
 
 #. type: item
-#: doc/guix.texi:21591
+#: doc/guix.texi:24364
 #, no-wrap
 msgid "@code{'none} for not using the zone file at all,"
 msgstr "@code{'none} bewirkt, dass die Zonendatei überhaupt nicht benutzt wird,"
 
 #. type: item
-#: doc/guix.texi:21592
+#: doc/guix.texi:24365
 #, no-wrap
 msgid "@code{'difference} for computing the difference between already available"
 msgstr "@code{'difference} lässt den Unterschied zwischen den bereits vorliegenden"
 
 #. type: itemize
-#: doc/guix.texi:21594
+#: doc/guix.texi:24367
 msgid "contents and zone contents and applying it to the current zone contents,"
 msgstr "Daten und dem gespeicherten Inhalt der Zone berechnen, welcher dann zum vorliegenden Zoneninhalt hinzugenommen wird,"
 
 #. type: item
-#: doc/guix.texi:21594
+#: doc/guix.texi:24367
 #, no-wrap
 msgid "@code{'difference-no-serial} for the same as @code{'difference}, but"
 msgstr "@code{'difference-no-serial} für dasselbe wie bei @code{'difference},"
 
 #. type: itemize
-#: doc/guix.texi:21597
+#: doc/guix.texi:24370
 msgid "ignoring the SOA serial in the zone file, while the server takes care of it automatically."
 msgstr "aber die SOA-Seriennummer in der Zonendatei wird ignoriert und der Server kümmert sich automatisch darum."
 
 #. type: item
-#: doc/guix.texi:21597
+#: doc/guix.texi:24370
 #, no-wrap
 msgid "@code{'whole} for loading zone contents from the zone file."
 msgstr "@code{'whole} lässt den ganzen Inhalt der Zone aus der Zonendatei auslesen."
 
 #. type: item
-#: doc/guix.texi:21600
+#: doc/guix.texi:24373
 #, no-wrap
 msgid "@code{journal-content} (default: @code{#f})"
 msgstr "@code{journal-content} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:21605
+#: doc/guix.texi:24378
 msgid "The way the journal is used to store zone and its changes.  Possible values are @code{'none} to not use it at all, @code{'changes} to store changes and @code{'all} to store contents.  @code{#f} does not set this option, so the default value from Knot is used."
 msgstr "Wie in den Aufzeichnungen die Zone und Änderungen daran gespeichert werden sollen. Mögliche Werte sind @code{'none}, um keine Aufzeichnungen zu führen, @code{'changes}, um Änderungen zu speichern, und @code{'all}, wodurch der gesamte Inhalt gespeichert wird. Für @code{#f} wird dieser Wert nicht gesetzt, so dass der in Knot voreingestellte Wert benutzt wird."
 
 #. type: item
-#: doc/guix.texi:21606
+#: doc/guix.texi:24379
 #, no-wrap
 msgid "@code{max-journal-usage} (default: @code{#f})"
 msgstr "@code{max-journal-usage} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:21609
+#: doc/guix.texi:24382
 msgid "The maximum size for the journal on disk.  @code{#f} does not set this option, so the default value from Knot is used."
 msgstr "Die maximale Größe, die Aufzeichnungen für die Wiederherstellbarkeit („Journal“) auf der Platte einnehmen können. Für @code{#f} wird dieser Wert nicht gesetzt, so dass der in Knot voreingestellte Wert benutzt wird."
 
 #. type: item
-#: doc/guix.texi:21610
+#: doc/guix.texi:24383
 #, no-wrap
 msgid "@code{max-journal-depth} (default: @code{#f})"
 msgstr "@code{max-journal-depth} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:21613
+#: doc/guix.texi:24386
 msgid "The maximum size of the history.  @code{#f} does not set this option, so the default value from Knot is used."
-msgstr "Wieviele Aufzeichnungen höchstens im Änderungsverlauf gespeichert werden. Für @code{#f} wird dieser Wert nicht gesetzt, so dass der in Knot voreingestellte Wert benutzt wird."
+msgstr "Wie viele Aufzeichnungen höchstens im Änderungsverlauf gespeichert werden. Für @code{#f} wird dieser Wert nicht gesetzt, so dass der in Knot voreingestellte Wert benutzt wird."
 
 #. type: item
-#: doc/guix.texi:21614
+#: doc/guix.texi:24387
 #, no-wrap
 msgid "@code{max-zone-size} (default: @code{#f})"
 msgstr "@code{max-zone-size} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:21618
+#: doc/guix.texi:24391
 msgid "The maximum size of the zone file.  This limit is enforced for incoming transfer and updates.  @code{#f} does not set this option, so the default value from Knot is used."
 msgstr "Die maximale Größe der Zonendatei. Diese Beschränkung wird auf eingehende Übertragungen und Aktualisierungen angewandt. Für @code{#f} wird dieser Wert nicht gesetzt, so dass der in Knot voreingestellte Wert benutzt wird."
 
 #. type: item
-#: doc/guix.texi:21619
+#: doc/guix.texi:24392
 #, no-wrap
 msgid "@code{dnssec-policy} (default: @code{#f})"
 msgstr "@code{dnssec-policy} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:21623
+#: doc/guix.texi:24396
 msgid "A reference to a @code{knot-policy-configuration} record, or the special name @code{\"default\"}.  If the value is @code{#f}, there is no dnssec signing on this zone."
 msgstr "Ein Verweis auf ein @code{knot-policy-configuration}-Verbundsobjekt oder der besondere Name @code{\"default\"}, um die Voreinstellung von Knot zu verwenden. Wenn dies als der Wert @code{#f} angegeben wurde, findet in dieser Zone kein Signieren mit DNSSEC statt."
 
 #. type: item
-#: doc/guix.texi:21624
+#: doc/guix.texi:24397
 #, no-wrap
 msgid "@code{serial-policy} (default: @code{'increment})"
 msgstr "@code{serial-policy} (Vorgabe: @code{'increment})"
 
 #. type: table
-#: doc/guix.texi:21626
+#: doc/guix.texi:24399
 msgid "A policy between @code{'increment} and @code{'unixtime}."
 msgstr "Eine Richtlinie; entweder @code{'increment} (Seriennummer hochzählen) oder @code{'unixtime} (Unix-Zeitstempel verwenden)."
 
 #. type: deftp
-#: doc/guix.texi:21630
+#: doc/guix.texi:24403
 #, no-wrap
 msgid "{Data Type} knot-configuration"
 msgstr "{Datentyp} knot-configuration"
 
 #. type: deftp
-#: doc/guix.texi:21633
+#: doc/guix.texi:24406
 msgid "Data type representing the Knot configuration.  This type has the following parameters:"
 msgstr "Datentyp, der die Konfiguration von Knot repräsentiert. Dieser Typ verfügt über die folgenden Parameter:"
 
 #. type: item
-#: doc/guix.texi:21635
+#: doc/guix.texi:24408
 #, no-wrap
 msgid "@code{knot} (default: @code{knot})"
 msgstr "@code{knot} (Vorgabe: @code{knot})"
 
 #. type: table
-#: doc/guix.texi:21637
+#: doc/guix.texi:24410
 msgid "The Knot package."
 msgstr "Das Knot-Paket."
 
 #. type: item
-#: doc/guix.texi:21638
+#: doc/guix.texi:24411
 #, no-wrap
 msgid "@code{run-directory} (default: @code{\"/var/run/knot\"})"
 msgstr "@code{run-directory} (Vorgabe: @code{\"/var/run/knot\"})"
 
 #. type: table
-#: doc/guix.texi:21640
+#: doc/guix.texi:24413
 msgid "The run directory.  This directory will be used for pid file and sockets."
 msgstr "Das Laufzeit-Verzeichnis („run“-Verzeichnis). In diesem Verzeichnis werden die PID-Datei mit dem Prozessidentifikator und Sockets gespeichert."
 
 #. type: item
-#: doc/guix.texi:21641
+#: doc/guix.texi:24414
 #, no-wrap
 msgid "@code{includes} (default: @code{'()})"
 msgstr "@code{includes} (Vorgabe: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:21644
+#: doc/guix.texi:24417
 msgid "A list of strings or file-like objects denoting other files that must be included at the top of the configuration file."
 msgstr "Eine flache Liste von Zeichenketten oder dateiartigen Objekten, die oben in der Konfigurationsdatei eingebunden werden müssen."
 
 #. type: cindex
-#: doc/guix.texi:21645
+#: doc/guix.texi:24418
 #, no-wrap
 msgid "secrets, Knot service"
 msgstr "Geheimnisse, Knot-Dienst"
 
 #. type: table
-#: doc/guix.texi:21651
+#: doc/guix.texi:24424
 msgid "This can be used to manage secrets out-of-band.  For example, secret keys may be stored in an out-of-band file not managed by Guix, and thus not visible in @file{/gnu/store}---e.g., you could store secret key configuration in @file{/etc/knot/secrets.conf} and add this file to the @code{includes} list."
 msgstr "Hiermit können Geheimnisse abseits von Guix’ Zuständigkeitsbereich gespeichert werden. Zum Beispiel können Sie geheime Schlüssel so in einer externen Datei speichern, die nicht von Guix verwaltet und daher auch nicht von jedem in @file{/gnu/store} ausgelesen werden kann — Sie können etwa Ihre geheime Schlüsselkonfiguration in @file{/etc/knot/secrets.conf} speichern und diese Datei dann zu Ihrer @code{includes}-Liste hinzufügen."
 
 #. type: table
-#: doc/guix.texi:21656
+#: doc/guix.texi:24429
 msgid "One can generate a secret tsig key (for nsupdate and zone transfers with the keymgr command from the knot package.  Note that the package is not automatically installed by the service.  The following example shows how to generate a new tsig key:"
 msgstr "Sie können mit dem Schlüsselverwaltungsprogramm @code{keymgr} aus dem Knot-Paket einen geheimen TSIG-Schlüssel erzeugen lassen (für @code{nsupdate} und Zonentransfers). Beachten Sie, dass das Paket @emph{nicht} automatisch durch den Dienst installiert wird. Das folgende Beispiel zeigt, wie man einen neuen TSIG-Schlüssel erzeugen lässt:"
 
 #. type: example
-#: doc/guix.texi:21660
+#: doc/guix.texi:24433
 #, no-wrap
 msgid ""
 "keymgr -t mysecret > /etc/knot/secrets.conf\n"
@@ -40977,106 +45724,106 @@ msgstr ""
 "chmod 600 /etc/knot/secrets.conf\n"
 
 #. type: table
-#: doc/guix.texi:21666
+#: doc/guix.texi:24439
 msgid "Also note that the generated key will be named @var{mysecret}, so it is the name that needs to be used in the @var{key} field of the @code{knot-acl-configuration} record and in other places that need to refer to that key."
 msgstr "Außerdem sollten Sie bedenken, dass der erzeugte Schlüssel den Namen @var{meingeheimnis} bekommt, dieser Name also auch im @var{key}-Feld des @code{knot-acl-configuration}-Verbundsobjekts und an anderen Stellen verwendet werden muss, wo auf den Schlüssel verwiesen wird."
 
 #. type: table
-#: doc/guix.texi:21668
+#: doc/guix.texi:24441
 msgid "It can also be used to add configuration not supported by this interface."
 msgstr "Sie können die @code{includes} auch benutzen, um von der Guix-Schnittstelle nicht unterstützte Einstellungen festzulegen."
 
 #. type: item
-#: doc/guix.texi:21669
+#: doc/guix.texi:24442
 #, no-wrap
 msgid "@code{listen-v4} (default: @code{\"0.0.0.0\"})"
 msgstr "@code{listen-v4} (Vorgabe: @code{\"0.0.0.0\"})"
 
 #. type: table
-#: doc/guix.texi:21671 doc/guix.texi:21674
+#: doc/guix.texi:24444 doc/guix.texi:24447
 msgid "An ip address on which to listen."
 msgstr "Eine IP-Adresse, auf der gelauscht werden soll."
 
 #. type: item
-#: doc/guix.texi:21672
+#: doc/guix.texi:24445
 #, no-wrap
 msgid "@code{listen-v6} (default: @code{\"::\"})"
 msgstr "@code{listen-v6} (Vorgabe: @code{\"::\"})"
 
 #. type: item
-#: doc/guix.texi:21675
+#: doc/guix.texi:24448
 #, no-wrap
 msgid "@code{listen-port} (default: @code{53})"
 msgstr "@code{listen-port} (Vorgabe: @code{53})"
 
 #. type: table
-#: doc/guix.texi:21677
+#: doc/guix.texi:24450
 msgid "A port on which to listen."
 msgstr "Ein Port, auf dem gelauscht werden soll."
 
 #. type: item
-#: doc/guix.texi:21678
+#: doc/guix.texi:24451
 #, no-wrap
 msgid "@code{keys} (default: @code{'()})"
 msgstr "@code{keys} (Vorgabe: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:21680
+#: doc/guix.texi:24453
 msgid "The list of knot-key-configuration used by this configuration."
 msgstr "Die Liste der @code{knot-key-configuration}-Objekte, die von dieser Konfiguration benutzt werden sollen."
 
 #. type: item
-#: doc/guix.texi:21681
+#: doc/guix.texi:24454
 #, no-wrap
 msgid "@code{acls} (default: @code{'()})"
 msgstr "@code{acls} (Vorgabe: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:21683
+#: doc/guix.texi:24456
 msgid "The list of knot-acl-configuration used by this configuration."
 msgstr "Die Liste der @code{knot-acl-configuration}-Objekte, die von dieser Konfiguration benutzt werden sollen."
 
 #. type: item
-#: doc/guix.texi:21684
+#: doc/guix.texi:24457
 #, no-wrap
 msgid "@code{remotes} (default: @code{'()})"
 msgstr "@code{remotes} (Vorgabe: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:21686
+#: doc/guix.texi:24459
 msgid "The list of knot-remote-configuration used by this configuration."
 msgstr "Die Liste der @code{knot-remote-configuration}-Objekte, die von dieser Konfiguration benutzt werden sollen."
 
 #. type: item
-#: doc/guix.texi:21687
+#: doc/guix.texi:24460
 #, no-wrap
 msgid "@code{zones} (default: @code{'()})"
 msgstr "@code{zones} (Vorgabe: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:21689
+#: doc/guix.texi:24462
 msgid "The list of knot-zone-configuration used by this configuration."
 msgstr "Die Liste der @code{knot-zone-configuration}-Objekte, die von dieser Konfiguration benutzt werden sollen."
 
 #. type: subsubheading
-#: doc/guix.texi:21693
+#: doc/guix.texi:24466
 #, no-wrap
 msgid "Knot Resolver Service"
 msgstr "Knot-Resolver-Dienst"
 
 #. type: deffn
-#: doc/guix.texi:21695
+#: doc/guix.texi:24468
 #, no-wrap
 msgid "{Scheme Variable} knot-resolver-service-type"
 msgstr "{Scheme-Variable} knot-resolver-service-type"
 
 #. type: deffn
-#: doc/guix.texi:21698
-msgid "This this the type of the knot resolver service, whose value should be an @code{knot-resolver-configuration} object as in this example:"
+#: doc/guix.texi:24471
+msgid "This is the type of the knot resolver service, whose value should be an @code{knot-resolver-configuration} object as in this example:"
 msgstr "Dies ist der Diensttyp des Knot-Resolver-Dienstes, dessen Wert ein @code{knot-resolver-configuration}-Objekt wie in diesem Beispiel sein sollte:"
 
 #. type: lisp
-#: doc/guix.texi:21708
+#: doc/guix.texi:24481
 #, no-wrap
 msgid ""
 "(service knot-resolver-service-type\n"
@@ -41098,73 +45845,73 @@ msgstr ""
 "\"))))\n"
 
 #. type: deffn
-#: doc/guix.texi:21711
+#: doc/guix.texi:24484
 msgid "For more information, refer its @url{https://knot-resolver.readthedocs.org/en/stable/daemon.html#configuration, manual}."
 msgstr "Weitere Informationen finden Sie in seinem @url{https://knot-resolver.readthedocs.org/en/stable/daemon.html#configuration, Handbuch}."
 
 #. type: deftp
-#: doc/guix.texi:21713
+#: doc/guix.texi:24486
 #, no-wrap
 msgid "{Data Type} knot-resolver-configuration"
 msgstr "{Datentyp} knot-resolver-configuration"
 
 #. type: deftp
-#: doc/guix.texi:21715
+#: doc/guix.texi:24488
 msgid "Data type representing the configuration of knot-resolver."
 msgstr "Der Datentyp, der die Konfiguration von knot-resolver repräsentiert."
 
 #. type: item
-#: doc/guix.texi:21717
+#: doc/guix.texi:24490
 #, no-wrap
 msgid "@code{package} (default: @var{knot-resolver})"
 msgstr "@code{package} (Vorgabe: @var{knot-resolver})"
 
 #. type: table
-#: doc/guix.texi:21719
+#: doc/guix.texi:24492
 msgid "Package object of the knot DNS resolver."
 msgstr "Das Paketobjekt des Knot-DNS-Resolvers."
 
 #. type: item
-#: doc/guix.texi:21720
+#: doc/guix.texi:24493
 #, no-wrap
 msgid "@code{kresd-config-file} (default: %kresd.conf)"
 msgstr "@code{kresd-config-file} (Vorgabe: %kresd.conf)"
 
 #. type: table
-#: doc/guix.texi:21723
+#: doc/guix.texi:24496
 msgid "File-like object of the kresd configuration file to use, by default it will listen on @code{127.0.0.1} and @code{::1}."
 msgstr "Datei-artiges Objekt der zu nutzenden kresd-Konfigurationsdatei. Nach Vorgabe lauscht der Knot-Resolver auf @code{127.0.0.1} und @code{::1}."
 
 #. type: item
-#: doc/guix.texi:21724
+#: doc/guix.texi:24497
 #, no-wrap
 msgid "@code{garbage-collection-interval} (default: 1000)"
 msgstr "@code{garbage-collection-interval} (Vorgabe: 1000)"
 
 #. type: table
-#: doc/guix.texi:21726
+#: doc/guix.texi:24499
 msgid "Number of milliseconds for @code{kres-cache-gc} to periodically trim the cache."
-msgstr "Wieviele Millisekunden @code{kres-cache-gc} zwischen Bereinigungen seines Zwischenspeichers wartet."
+msgstr "Wie viele Millisekunden @code{kres-cache-gc} zwischen Bereinigungen seines Zwischenspeichers wartet."
 
 #. type: subsubheading
-#: doc/guix.texi:21731
+#: doc/guix.texi:24504
 #, no-wrap
 msgid "Dnsmasq Service"
 msgstr "Dnsmasq-Dienst"
 
 #. type: deffn
-#: doc/guix.texi:21733
+#: doc/guix.texi:24506
 #, no-wrap
 msgid "{Scheme Variable} dnsmasq-service-type"
 msgstr "{Scheme-Variable} dnsmasq-service-type"
 
 #. type: deffn
-#: doc/guix.texi:21736
+#: doc/guix.texi:24509
 msgid "This is the type of the dnsmasq service, whose value should be an @code{dnsmasq-configuration} object as in this example:"
 msgstr "Dies ist der Diensttyp des dnsmasq-Dienstes, dessen Wert ein @code{dnsmasq-configuration}-Objekt wie in diesem Beispiel sein sollte:"
 
 #. type: lisp
-#: doc/guix.texi:21742
+#: doc/guix.texi:24515
 #, no-wrap
 msgid ""
 "(service dnsmasq-service-type\n"
@@ -41178,1002 +45925,1174 @@ msgstr ""
 "           (servers '(\"192.168.1.1\"))))\n"
 
 #. type: deftp
-#: doc/guix.texi:21745
+#: doc/guix.texi:24518
 #, no-wrap
 msgid "{Data Type} dnsmasq-configuration"
 msgstr "{Datentyp} dnsmasq-configuration"
 
 #. type: deftp
-#: doc/guix.texi:21747
+#: doc/guix.texi:24520
 msgid "Data type representing the configuration of dnsmasq."
 msgstr "Repräsentiert die dnsmasq-Konfiguration."
 
 #. type: item
-#: doc/guix.texi:21749
+#: doc/guix.texi:24522
 #, no-wrap
 msgid "@code{package} (default: @var{dnsmasq})"
 msgstr "@code{package} (Vorgabe: @var{dnsmasq})"
 
 #. type: table
-#: doc/guix.texi:21751
+#: doc/guix.texi:24524
 msgid "Package object of the dnsmasq server."
 msgstr "Paketobjekt des dnsmasq-Servers."
 
 #. type: item
-#: doc/guix.texi:21752
+#: doc/guix.texi:24525
 #, no-wrap
 msgid "@code{no-hosts?} (default: @code{#f})"
 msgstr "@code{no-hosts?} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:21754
+#: doc/guix.texi:24527
 msgid "When true, don't read the hostnames in /etc/hosts."
 msgstr "Ist es auf wahr gesetzt, werden keine Rechnernamen („Hostnames“) aus /etc/hosts ausgelesen."
 
 #. type: item
-#: doc/guix.texi:21755
+#: doc/guix.texi:24528
 #, no-wrap
 msgid "@code{port} (default: @code{53})"
 msgstr "@code{port} (Vorgabe: @code{53})"
 
 #. type: table
-#: doc/guix.texi:21758
+#: doc/guix.texi:24531
 msgid "The port to listen on.  Setting this to zero completely disables DNS responses, leaving only DHCP and/or TFTP functions."
 msgstr "Der Port, auf dem gelauscht werden soll. Wird dies auf null gesetzt, werden keinerlei DNS-Anfragen beantwortet und es bleiben nur DHCP- und/oder TFTP-Funktionen."
 
 #. type: item
-#: doc/guix.texi:21759
+#: doc/guix.texi:24532
 #, no-wrap
 msgid "@code{local-service?} (default: @code{#t})"
 msgstr "@code{local-service?} (Vorgabe: @code{#t})"
 
 #. type: table
-#: doc/guix.texi:21762
+#: doc/guix.texi:24535
 msgid "Accept DNS queries only from hosts whose address is on a local subnet, ie a subnet for which an interface exists on the server."
 msgstr "DNS-Anfragen nur von Rechnern akzeptieren, deren Adresse auf einem lokalen Subnetz liegt, d.h.@: einem Subnetz, für dem auf dem Server eine Schnittstelle existiert."
 
 #. type: item
-#: doc/guix.texi:21763
+#: doc/guix.texi:24536
 #, no-wrap
 msgid "@code{listen-addresses} (default: @code{'()})"
 msgstr "@code{listen-addresses} (Vorgabe: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:21765
+#: doc/guix.texi:24538
 msgid "Listen on the given IP addresses."
 msgstr "Lässt auf den angegebenen IP-Adressen lauschen."
 
 #. type: item
-#: doc/guix.texi:21766
+#: doc/guix.texi:24539
 #, no-wrap
 msgid "@code{resolv-file} (default: @code{\"/etc/resolv.conf\"})"
 msgstr "@code{resolv-file} (Vorgabe: @code{\"/etc/resolv.conf\"})"
 
 #. type: table
-#: doc/guix.texi:21768
+#: doc/guix.texi:24541
 msgid "The file to read the IP address of the upstream nameservers from."
 msgstr "Aus welcher Datei die IP-Adresse der zu verwendenden Namensserver gelesen werden sollen."
 
 #. type: item
-#: doc/guix.texi:21769
+#: doc/guix.texi:24542
 #, no-wrap
 msgid "@code{no-resolv?} (default: @code{#f})"
 msgstr "@code{no-resolv?} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:21771
+#: doc/guix.texi:24544
 msgid "When true, don't read @var{resolv-file}."
 msgstr "Wenn es auf wahr steht, wird das @var{resolv-file} nicht gelesen."
 
 #. type: item
-#: doc/guix.texi:21772
+#: doc/guix.texi:24545
 #, no-wrap
 msgid "@code{servers} (default: @code{'()})"
 msgstr "@code{servers} (Vorgabe: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:21774
+#: doc/guix.texi:24547
 msgid "Specify IP address of upstream servers directly."
 msgstr "Geben Sie die IP-Adresse von anzufragenden Servern direkt an."
 
 #. type: item
-#: doc/guix.texi:21775
+#: doc/guix.texi:24548
+#, no-wrap
+msgid "@code{addresses} (default: @code{'()})"
+msgstr "@code{addresses} (Vorgabe: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:24552
+msgid "For each entry, specify an IP address to return for any host in the given domains.  Queries in the domains are never forwarded and always replied to with the specified IP address."
+msgstr "Geben Sie in jedem Eintrag eine IP-Adresse an, die für jeden Rechner mit einer der angegebenen Domains zurückgeliefert werden soll. Anfragen nach den Domains werden niemals weitergegeben, sondern werden immer mit der festgelegten IP-Adresse beantwortet."
+
+#. type: table
+#: doc/guix.texi:24554
+msgid "This is useful for redirecting hosts locally, for example:"
+msgstr "Dies ist nützlich, um für Rechnernamen lokale Umleitungen einzurichten, wie in diesem Beispiel:"
+
+#. type: lisp
+#: doc/guix.texi:24563
+#, no-wrap
+msgid ""
+"(service dnsmasq-service-type\n"
+"         (dnsmasq-configuration\n"
+"           (addresses\n"
+"             '(; Redirect to a local web-server.\n"
+"               \"/example.org/127.0.0.1\"\n"
+"               ; Redirect subdomain to a specific IP.\n"
+"               \"/subdomain.example.org/192.168.1.42\"))))\n"
+msgstr ""
+"(service dnsmasq-service-type\n"
+"         (dnsmasq-configuration\n"
+"           (addresses\n"
+"             '(; Weiterleitung auf lokalen Webserver.\n"
+"               \"/example.org/127.0.0.1\"\n"
+"               ; Weiterleitung einer Subdomain auf eine bestimmte IP.\n"
+"               \"/subdomain.example.org/192.168.1.42\"))))\n"
+
+#. type: table
+#: doc/guix.texi:24566
+msgid "Note that rules in @file{/etc/hosts} take precedence over this."
+msgstr "Beachten Sie, dass die Regeln in @file{/etc/hosts} Vorrang haben."
+
+#. type: item
+#: doc/guix.texi:24567
 #, no-wrap
 msgid "@code{cache-size} (default: @code{150})"
 msgstr "@code{cache-size} (Vorgabe: @code{150})"
 
 #. type: table
-#: doc/guix.texi:21778
+#: doc/guix.texi:24570
 msgid "Set the size of dnsmasq's cache.  Setting the cache size to zero disables caching."
 msgstr "Bestimmt die Größe des Zwischenspeichers von dnsmasq. Wird die Zwischenspeichergröße auf null festgelegt, wird kein Zwischenspeicher benutzt."
 
 #. type: item
-#: doc/guix.texi:21779
+#: doc/guix.texi:24571
 #, no-wrap
 msgid "@code{negative-cache?} (default: @code{#t})"
 msgstr "@code{negative-cache?} (Vorgabe: @code{#t})"
 
 #. type: table
-#: doc/guix.texi:21781
+#: doc/guix.texi:24573
 msgid "When false, disable negative caching."
 msgstr "Ist dies auf falsch gesetzt, werden Negativergebnisse nicht zwischengespeichert."
 
+#. type: item
+#: doc/guix.texi:24574
+#, no-wrap
+msgid "@code{tftp-enable?} (default: @code{#f})"
+msgstr "@code{tftp-enable?} (Vorgabe: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:24576
+msgid "Whether to enable the built-in TFTP server."
+msgstr "Ob der eingebaute TFTP-Server aktiviert werden soll."
+
+#. type: item
+#: doc/guix.texi:24577
+#, no-wrap
+msgid "@code{tftp-no-fail?} (default: @code{#f})"
+msgstr "@code{tftp-no-fail?} (Vorgabe: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:24579
+msgid "If true, does not fail dnsmasq if the TFTP server could not start up."
+msgstr "Wenn dies wahr ist und der TFTP-Server nicht gestartet werden kann, gilt dnsmasq trotzdem @emph{nicht} als fehlgeschlagen."
+
+#. type: item
+#: doc/guix.texi:24580
+#, no-wrap
+msgid "@code{tftp-single-port?} (default: @code{#f})"
+msgstr "@code{tftp-single-port?} (Vorgabe: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:24582
+msgid "Whether to use only one single port for TFTP."
+msgstr "Ob nur ein einzelner Port für TFTP benutzt werden soll."
+
+#. type: item
+#: doc/guix.texi:24583
+#, no-wrap
+msgid "@code{tftp-secure?} (default: @code{#f})"
+msgstr "@code{tftp-secure?} (Vorgabe: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:24585
+msgid "If true, only files owned by the user running the dnsmasq process are accessible."
+msgstr "Wenn dies wahr ist, kann nur auf solche Dateien zugegriffen werden, die dem Benutzerkonto gehören, das den dnsmasq-Prozess ausführt."
+
+#. type: table
+#: doc/guix.texi:24589
+msgid "If dnsmasq is being run as root, different rules apply: @code{tftp-secure?} has no effect, but only files which have the world-readable bit set are accessible."
+msgstr "Wird dnsmasq durch den Administratornutzer root ausgeführt, gelten andere Regeln: @code{tftp-secure?} wirkt sich nicht aus, aber es kann nur auf Dateien zugegriffen werden, auf die jeder Benutzer zugreifen darf (das „world-readable bit“ ist gesetzt)."
+
+#. type: item
+#: doc/guix.texi:24590
+#, no-wrap
+msgid "@code{tftp-max} (default: @code{#f})"
+msgstr "@code{tftp-max} (Vorgabe: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:24592
+msgid "If set, sets the maximal number of concurrent connections allowed."
+msgstr "Wenn dies gesetzt ist, gibt es die Maximalzahl gleichzeitig zugelassener Verbindungen an."
+
+#. type: item
+#: doc/guix.texi:24593
+#, no-wrap
+msgid "@code{tftp-mtu} (default: @code{#f})"
+msgstr "@code{tftp-mtu} (Vorgabe: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:24595
+msgid "If set, sets the MTU for TFTP packets to that value."
+msgstr "Wenn es gesetzt ist, gibt es die MTU für TFTP-Pakete an, also die Maximalgröße für Netzwerkschnittstellen."
+
+#. type: item
+#: doc/guix.texi:24596
+#, no-wrap
+msgid "@code{tftp-no-blocksize?} (default: @code{#f})"
+msgstr "@code{tftp-no-blocksize?} (Vorgabe: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:24598
+msgid "If true, stops the TFTP server from negotiating the blocksize with a client."
+msgstr "Steht es auf wahr, wird der TFTP-Server die Blockgröße @emph{nicht} mit dem Client aushandeln."
+
+#. type: item
+#: doc/guix.texi:24599
+#, no-wrap
+msgid "@code{tftp-lowercase?} (default: @code{#f})"
+msgstr "@code{tftp-lowercase?} (Vorgabe: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:24601
+msgid "Whether to convert all filenames in TFTP requests to lowercase."
+msgstr "Ob alle Dateinamen in TFTP-Anfragen in Kleinbuchstaben umgesetzt werden sollen."
+
+#. type: item
+#: doc/guix.texi:24602
+#, no-wrap
+msgid "@code{tftp-port-range} (default: @code{#f})"
+msgstr "@code{tftp-port-range} (Vorgabe: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:24605
+msgid "If set, fixes the dynamical ports (one per client) to the given range (@code{\"<start>,<end>\"})."
+msgstr "Wenn es gesetzt ist, wird jeder dynamische Port (einer pro Client) aus dem angegebenen Bereich (@code{\"<von>,<bis>\"}) genommen."
+
+#. type: item
+#: doc/guix.texi:24606
+#, no-wrap
+msgid "@code{tftp-root} (default: @code{/var/empty,lo})"
+msgstr "@code{tftp-root} (Vorgabe: @code{/var/empty,lo})"
+
+#. type: table
+#: doc/guix.texi:24613
+msgid "Look for files to transfer using TFTP relative to the given directory.  When this is set, TFTP paths which include \"..\" are rejected, to stop clients getting outside the specified root. Absolute paths (starting with /) are allowed, but they must be within the tftp-root. If the optional interface argument is given, the directory is only used for TFTP requests via that interface."
+msgstr "Relativ zu welchem Verzeichnis die Dateien für die Übertragung per TFTP gesucht werden. Wenn dies gesetzt ist, werden TFTP-Pfade, die \"..\" enthalten, abgelehnt, damit Clients keinen Zugriff auf Dateien außerhalb des angegebenen Wurzelverzeichnisses haben. Absolute Pfade (solche, die mit / beginnen) sind erlaubt, aber sie müssen in der tftp-root liegen. Wenn das optionale Argument @code{interface} angegeben wird, wird das Verzeichnis nur für TFTP-Anfragen über diese Schnittstelle benutzt."
+
+#. type: item
+#: doc/guix.texi:24614
+#, no-wrap
+msgid "@code{tftp-unique-root} (default: @code{#f})"
+msgstr "@code{tftp-unique-root} (Vorgabe: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:24619
+msgid "If set, add the IP or hardware address of the TFTP client as a path component on the end of the TFTP-root.  Only valid if a TFTP root is set and the directory exists.  Defaults to adding IP address (in standard dotted-quad format)."
+msgstr "Wenn es gesetzt ist, wird entsprechend die IP- oder Hardware-Adresse des TFTP-Clients als eine Pfadkomponente ans Ende der TFTP-Root angehängt. Das ist nur gültig, wenn eine TFTP-Root gesetzt ist und das Verzeichnis existiert. Die Voreinstellung ist, die IP-Adresse anzuhängen (wie üblich als punktgetrenntes Quadrupel)."
+
+#. type: table
+#: doc/guix.texi:24627
+msgid "For instance, if --tftp-root is \"/tftp\" and client 1.2.3.4 requests file \"myfile\" then the effective path will be \"/tftp/1.2.3.4/myfile\" if /tftp/1.2.3.4 exists or /tftp/myfile otherwise. When \"=mac\" is specified it will append the MAC address instead, using lowercase zero padded digits separated by dashes, e.g.: 01-02-03-04-aa-bb Note that resolving MAC addresses is only possible if the client is in the local network or obtained a DHCP lease from dnsmasq."
+msgstr "Ist zum Beispiel @code{tftp-root} @samp{/tftp} und fragt Client 1.2.3.4 die Datei @samp{meinedatei} an, dann wird effektiv als Pfad @samp{/tftp/1.2.3.4/meinedatei} abgerufen, wenn @samp{/tftp/1.2.3.4} existiert, oder @samp{/tftp/meinedatei} andernfalls. Wird @code{\"mac\"} angegeben, wird stattdessen die MAC-Adresse angehängt (in Kleinbuchstaben und durch Striche getrennt, aufgefüllt mit der Ziffer null), z.B.@: @samp{01-02-03-04-aa-bb}. Beachten Sie, dass MAC-Adressen nur aufgelöst werden können, wenn sich der Client im lokalen Netzwerk befindet oder von dnsmasq eine Adresse per DHCP zugewiesen bekommen hat."
+
 #. type: subsubheading
-#: doc/guix.texi:21785
+#: doc/guix.texi:24631
 #, no-wrap
 msgid "ddclient Service"
 msgstr "ddclient-Dienst"
 
 #. type: cindex
-#: doc/guix.texi:21787
+#: doc/guix.texi:24633
 #, no-wrap
 msgid "ddclient"
 msgstr "ddclient"
 
 #. type: Plain text
-#: doc/guix.texi:21791
+#: doc/guix.texi:24637
 msgid "The ddclient service described below runs the ddclient daemon, which takes care of automatically updating DNS entries for service providers such as @uref{https://dyn.com/dns/, Dyn}."
 msgstr "Der im Folgenden beschriebene ddclient-Dienst führt den ddclient-Daemon aus, der dafür sorgt, dass DNS-Einträge für Dienstanbieter wie @uref{https://dyn.com/dns/, Dyn} automatisch aktualisiert werden."
 
 #. type: Plain text
-#: doc/guix.texi:21794
+#: doc/guix.texi:24640
 msgid "The following example show instantiates the service with its default configuration:"
 msgstr "Das folgende Beispiel zeigt, wie man den Dienst mit seiner Vorgabekonfiguration instanziiert:"
 
 #. type: lisp
-#: doc/guix.texi:21797
+#: doc/guix.texi:24643
 #, no-wrap
 msgid "(service ddclient-service-type)\n"
 msgstr "(service ddclient-service-type)\n"
 
 #. type: Plain text
-#: doc/guix.texi:21806
-msgid "Note that ddclient needs to access credentials that are stored in a @dfn{secret file}, by default @file{/etc/ddclient/secrets} (see @code{secret-file} below.)  You are expected to create this file manually, in an ``out-of-band'' fashion (you @emph{could} make this file part of the service configuration, for instance by using @code{plain-file}, but it will be world-readable @i{via} @file{/gnu/store}.)  See the examples in the @file{share/ddclient} directory of the @code{ddclient} package."
+#: doc/guix.texi:24652
+msgid "Note that ddclient needs to access credentials that are stored in a @dfn{secret file}, by default @file{/etc/ddclient/secrets} (see @code{secret-file} below).  You are expected to create this file manually, in an ``out-of-band'' fashion (you @emph{could} make this file part of the service configuration, for instance by using @code{plain-file}, but it will be world-readable @i{via} @file{/gnu/store}).  See the examples in the @file{share/ddclient} directory of the @code{ddclient} package."
 msgstr "Beachten Sie, dass der ddclient auf Zugangsdaten zugreifen muss, die in einer @dfn{Geheimnisdatei} („Secret File“) stehen; nach Vorgabe wird sie in @file{/etc/ddclient/secrets} gesucht (siehe @code{secret-file} unten). Es wird erwartet, dass Sie diese Datei manuell erstellen, ohne Guix dafür zu benutzen (theoretisch @emph{könnten} Sie die Datei zu einem Teil Ihrer Dienstkonfiguration machen, indem Sie z.B.@: @code{plain-file} benutzen, aber dann könnte jeder über @file{/gnu/store} ihren Inhalt einsehen). Siehe die Beispiele im Verzeichnis @file{share/ddclient} des @code{ddclient}-Pakets."
 
 #. type: Plain text
-#: doc/guix.texi:21810
+#: doc/guix.texi:24656
 msgid "Available @code{ddclient-configuration} fields are:"
 msgstr "Verfügbare @code{ddclient-configuration}-Felder sind:"
 
 #. type: deftypevr
-#: doc/guix.texi:21811
+#: doc/guix.texi:24657
 #, no-wrap
 msgid "{@code{ddclient-configuration} parameter} package ddclient"
 msgstr "{@code{ddclient-configuration}-Parameter} „package“ ddclient"
 
 #. type: deftypevr
-#: doc/guix.texi:21813
+#: doc/guix.texi:24659
 msgid "The ddclient package."
 msgstr "Das ddclient-Paket."
 
 #. type: deftypevr
-#: doc/guix.texi:21816
+#: doc/guix.texi:24662
 #, no-wrap
 msgid "{@code{ddclient-configuration} parameter} integer daemon"
 msgstr "{@code{ddclient-configuration}-Parameter} Ganze-Zahl daemon"
 
 #. type: deftypevr
-#: doc/guix.texi:21818
+#: doc/guix.texi:24664
 msgid "The period after which ddclient will retry to check IP and domain name."
-msgstr "Nach wieviel Zeit ddclient erneut versuchen wird, IP und Domain-Namen zu überprüfen."
+msgstr "Nach wie viel Zeit ddclient erneut versuchen wird, IP und Domain-Namen zu überprüfen."
 
 #. type: deftypevr
-#: doc/guix.texi:21823
+#: doc/guix.texi:24669
 #, no-wrap
 msgid "{@code{ddclient-configuration} parameter} boolean syslog"
 msgstr "{@code{ddclient-configuration}-Parameter} Boolescher-Ausdruck syslog"
 
 #. type: deftypevr
-#: doc/guix.texi:21825
+#: doc/guix.texi:24671
 msgid "Use syslog for the output."
 msgstr "Ob die Ausgabe an Syslog gehen soll."
 
 #. type: deftypevr
-#: doc/guix.texi:21830
+#: doc/guix.texi:24676
 #, no-wrap
 msgid "{@code{ddclient-configuration} parameter} string mail"
 msgstr "{@code{ddclient-configuration}-Parameter} Zeichenkette mail"
 
 #. type: deftypevr
-#: doc/guix.texi:21832
+#: doc/guix.texi:24678
 msgid "Mail to user."
 msgstr "An welchen Benutzer Mitteilungen gemailt werden sollen."
 
 #. type: deftypevr
-#: doc/guix.texi:21834 doc/guix.texi:21841 doc/guix.texi:23341
+#: doc/guix.texi:24680 doc/guix.texi:24687 doc/guix.texi:26202
 msgid "Defaults to @samp{\"root\"}."
 msgstr "Die Vorgabe ist @samp{\"root\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:21837
+#: doc/guix.texi:24683
 #, no-wrap
 msgid "{@code{ddclient-configuration} parameter} string mail-failure"
 msgstr "{@code{ddclient-configuration}-Parameter} Zeichenkette mail-failure"
 
 #. type: deftypevr
-#: doc/guix.texi:21839
+#: doc/guix.texi:24685
 msgid "Mail failed update to user."
 msgstr "Den Nutzer per Mail bei fehlgeschlagenen Aktualisierungen benachrichtigen."
 
 #. type: deftypevr
-#: doc/guix.texi:21844
+#: doc/guix.texi:24690
 #, no-wrap
 msgid "{@code{ddclient-configuration} parameter} string pid"
 msgstr "{@code{ddclient-configuration}-Parameter} Zeichenkette pid"
 
 #. type: deftypevr
-#: doc/guix.texi:21846
+#: doc/guix.texi:24692
 msgid "The ddclient PID file."
 msgstr "PID-Datei für den ddclient."
 
 #. type: deftypevr
-#: doc/guix.texi:21848
+#: doc/guix.texi:24694
 msgid "Defaults to @samp{\"/var/run/ddclient/ddclient.pid\"}."
 msgstr "Die Vorgabe ist @samp{\"/var/run/ddclient/ddclient.pid\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:21851
+#: doc/guix.texi:24697
 #, no-wrap
 msgid "{@code{ddclient-configuration} parameter} boolean ssl"
 msgstr "{@code{ddclient-configuration}-Parameter} Boolescher-Ausdruck ssl"
 
 #. type: deftypevr
-#: doc/guix.texi:21853
+#: doc/guix.texi:24699
 msgid "Enable SSL support."
 msgstr "SSL-Unterstützung aktivieren."
 
 #. type: deftypevr
-#: doc/guix.texi:21858
+#: doc/guix.texi:24704
 #, no-wrap
 msgid "{@code{ddclient-configuration} parameter} string user"
 msgstr "{@code{ddclient-configuration}-Parameter} Zeichenkette user"
 
 #. type: deftypevr
-#: doc/guix.texi:21861
+#: doc/guix.texi:24707
 msgid "Specifies the user name or ID that is used when running ddclient program."
 msgstr "Gibt den Namen oder Identifikator des Benutzerkontos an, unter dem das ddclient-Programm laufen soll."
 
 #. type: deftypevr
-#: doc/guix.texi:21863 doc/guix.texi:21870
+#: doc/guix.texi:24709 doc/guix.texi:24716
 msgid "Defaults to @samp{\"ddclient\"}."
 msgstr "Die Vorgabe ist @samp{\"ddclient\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:21866
+#: doc/guix.texi:24712
 #, no-wrap
 msgid "{@code{ddclient-configuration} parameter} string group"
 msgstr "{@code{ddclient-configuration}-Parameter} Zeichenkette group"
 
 #. type: deftypevr
-#: doc/guix.texi:21868
+#: doc/guix.texi:24714
 msgid "Group of the user who will run the ddclient program."
 msgstr "Die Gruppe des Benutzers, mit dem das ddclient-Programm läuft."
 
 #. type: deftypevr
-#: doc/guix.texi:21873
+#: doc/guix.texi:24719
 #, no-wrap
 msgid "{@code{ddclient-configuration} parameter} string secret-file"
 msgstr "{@code{ddclient-configuration}-Parameter} Zeichenkette secret-file"
 
 #. type: deftypevr
-#: doc/guix.texi:21877
+#: doc/guix.texi:24723
 msgid "Secret file which will be appended to @file{ddclient.conf} file.  This file contains credentials for use by ddclient.  You are expected to create it manually."
 msgstr "Die Geheimnisdatei („Secret File“), die an die erzeugte @file{ddclient.conf}-Datei angehängt wird. Diese Datei enthält die Zugangsdaten, die ddclient benutzen soll. Es wird erwartet, dass Sie sie manuell erzeugen."
 
 #. type: deftypevr
-#: doc/guix.texi:21879
+#: doc/guix.texi:24725
 msgid "Defaults to @samp{\"/etc/ddclient/secrets.conf\"}."
 msgstr "Die Vorgabe ist @samp{\"/etc/ddclient/secrets.conf\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:21882
+#: doc/guix.texi:24728
 #, no-wrap
 msgid "{@code{ddclient-configuration} parameter} list extra-options"
 msgstr "{@code{ddclient-configuration}-Parameter} Liste extra-options"
 
 #. type: deftypevr
-#: doc/guix.texi:21884
+#: doc/guix.texi:24730
 msgid "Extra options will be appended to @file{ddclient.conf} file."
 msgstr "Zusätzliche Einstellungsoptionen, die an die @file{ddclient.conf}-Datei angehängt werden."
 
 #. type: cindex
-#: doc/guix.texi:21895
+#: doc/guix.texi:24741
 #, no-wrap
 msgid "VPN (virtual private network)"
 msgstr "VPN (Virtual Private Network)"
 
 #. type: cindex
-#: doc/guix.texi:21896
+#: doc/guix.texi:24742
 #, no-wrap
 msgid "virtual private network (VPN)"
 msgstr "Virtual Private Network (VPN)"
 
 #. type: Plain text
-#: doc/guix.texi:21902
+#: doc/guix.texi:24748
 msgid "The @code{(gnu services vpn)} module provides services related to @dfn{virtual private networks} (VPNs).  It provides a @emph{client} service for your machine to connect to a VPN, and a @emph{server} service for your machine to host a VPN.  Both services use @uref{https://openvpn.net/, OpenVPN}."
 msgstr "Das Modul @code{(gnu services vpn)} stellt Dienste zur Verfügung, die mit @dfn{Virtual Private Networks} (VPNs) zu tun haben. Darin wird ein @emph{Client}-Dienst angeboten, mit dem sich Ihre Maschine mit einem VPN verbinden kann, sowie ein @emph{Server}-Dienst, mit dem Sie auf Ihrer Maschine ein VPN betreiben können. Beide Dienste benutzen @uref{https://openvpn.net/, OpenVPN}."
 
 #. type: deffn
-#: doc/guix.texi:21903
+#: doc/guix.texi:24749
 #, no-wrap
 msgid "{Scheme Procedure} openvpn-client-service @"
 msgstr "{Scheme-Prozedur} openvpn-client-service @"
 
 #. type: deffn
-#: doc/guix.texi:21905
+#: doc/guix.texi:24751
 msgid "[#:config (openvpn-client-configuration)]"
 msgstr "[#:config (openvpn-client-configuration)]"
 
 #. type: deffn
-#: doc/guix.texi:21907
+#: doc/guix.texi:24753
 msgid "Return a service that runs @command{openvpn}, a VPN daemon, as a client."
 msgstr "Liefert einen Dienst, der den VPN-Daemon @command{openvpn} als Client ausführt."
 
 #. type: deffn
-#: doc/guix.texi:21909
+#: doc/guix.texi:24755
 #, no-wrap
 msgid "{Scheme Procedure} openvpn-server-service @"
 msgstr "{Scheme-Prozedur} openvpn-server-service @"
 
 #. type: deffn
-#: doc/guix.texi:21911
+#: doc/guix.texi:24757
 msgid "[#:config (openvpn-server-configuration)]"
 msgstr "[#:config (openvpn-server-configuration)]"
 
 #. type: deffn
-#: doc/guix.texi:21913
+#: doc/guix.texi:24759
 msgid "Return a service that runs @command{openvpn}, a VPN daemon, as a server."
 msgstr "Liefert einen Dienst, der den VPN-Daemon @command{openvpn} als Server ausführt."
 
 #. type: deffn
-#: doc/guix.texi:21915
+#: doc/guix.texi:24761
 msgid "Both can be run simultaneously."
 msgstr "Beide können zeitgleich laufen gelassen werden."
 
 #. type: Plain text
-#: doc/guix.texi:21920
+#: doc/guix.texi:24766
 msgid "Available @code{openvpn-client-configuration} fields are:"
 msgstr "Verfügbare @code{openvpn-client-configuration}-Felder sind:"
 
 #. type: deftypevr
-#: doc/guix.texi:21921
+#: doc/guix.texi:24767
 #, no-wrap
 msgid "{@code{openvpn-client-configuration} parameter} package openvpn"
 msgstr "{@code{openvpn-client-configuration}-Parameter} „package“ openvpn"
 
 #. type: deftypevr
-#: doc/guix.texi:21923 doc/guix.texi:22074
+#: doc/guix.texi:24769 doc/guix.texi:24920
 msgid "The OpenVPN package."
 msgstr "Das OpenVPN-Paket."
 
 #. type: deftypevr
-#: doc/guix.texi:21926
+#: doc/guix.texi:24772
 #, no-wrap
 msgid "{@code{openvpn-client-configuration} parameter} string pid-file"
 msgstr "{@code{openvpn-client-configuration}-Parameter} Zeichenkette pid-file"
 
 #. type: deftypevr
-#: doc/guix.texi:21928 doc/guix.texi:22079
+#: doc/guix.texi:24774 doc/guix.texi:24925
 msgid "The OpenVPN pid file."
 msgstr "Die Datei für den Prozessidentifikator („PID“) von OpenVPN."
 
 #. type: deftypevr
-#: doc/guix.texi:21930 doc/guix.texi:22081
+#: doc/guix.texi:24776 doc/guix.texi:24927
 msgid "Defaults to @samp{\"/var/run/openvpn/openvpn.pid\"}."
 msgstr "Die Vorgabe ist @samp{\"/var/run/openvpn/openvpn.pid\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:21933
+#: doc/guix.texi:24779
 #, no-wrap
 msgid "{@code{openvpn-client-configuration} parameter} proto proto"
 msgstr "{@code{openvpn-client-configuration}-Parameter} Protokoll proto"
 
 #. type: deftypevr
-#: doc/guix.texi:21936 doc/guix.texi:22087
+#: doc/guix.texi:24782 doc/guix.texi:24933
 msgid "The protocol (UDP or TCP) used to open a channel between clients and servers."
 msgstr "Das Protokoll (UDP oder TCP), das benutzt werden soll, um einen Kommunikationskanal zwischen Clients und Servern herzustellen."
 
 #. type: deftypevr
-#: doc/guix.texi:21938 doc/guix.texi:22089
+#: doc/guix.texi:24784 doc/guix.texi:24935
 msgid "Defaults to @samp{udp}."
 msgstr "Die Vorgabe ist @samp{udp}."
 
 #. type: deftypevr
-#: doc/guix.texi:21941
+#: doc/guix.texi:24787
 #, no-wrap
 msgid "{@code{openvpn-client-configuration} parameter} dev dev"
 msgstr "{@code{openvpn-client-configuration}-Parameter} Gerät dev"
 
 #. type: deftypevr
-#: doc/guix.texi:21943 doc/guix.texi:22094
+#: doc/guix.texi:24789 doc/guix.texi:24940
 msgid "The device type used to represent the VPN connection."
 msgstr "Der Gerätetyp, mit dem die VPN-Verbindung repräsentiert werden soll."
 
 #. type: deftypevr
-#: doc/guix.texi:21945 doc/guix.texi:22096
+#: doc/guix.texi:24791 doc/guix.texi:24942
 msgid "Defaults to @samp{tun}."
 msgstr "Die Vorgabe ist @samp{tun}."
 
 #. type: deftypevr
-#: doc/guix.texi:21948
+#: doc/guix.texi:24794
 #, no-wrap
 msgid "{@code{openvpn-client-configuration} parameter} string ca"
 msgstr "{@code{openvpn-client-configuration}-Parameter} Zeichenkette ca"
 
 #. type: deftypevr
-#: doc/guix.texi:21950 doc/guix.texi:22101
+#: doc/guix.texi:24796 doc/guix.texi:24947
 msgid "The certificate authority to check connections against."
 msgstr "Die Zertifikatsautorität, mit der Verbindungen geprüft werden."
 
 #. type: deftypevr
-#: doc/guix.texi:21952 doc/guix.texi:22103
+#: doc/guix.texi:24798 doc/guix.texi:24949
 msgid "Defaults to @samp{\"/etc/openvpn/ca.crt\"}."
 msgstr "Die Vorgabe ist @samp{\"/etc/openvpn/ca.crt\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:21955
+#: doc/guix.texi:24801
 #, no-wrap
 msgid "{@code{openvpn-client-configuration} parameter} string cert"
 msgstr "{@code{openvpn-client-configuration}-Parameter} Zeichenkette cert"
 
 #. type: deftypevr
-#: doc/guix.texi:21958 doc/guix.texi:22109
+#: doc/guix.texi:24804 doc/guix.texi:24955
 msgid "The certificate of the machine the daemon is running on.  It should be signed by the authority given in @code{ca}."
 msgstr "Das Zertifikat der Maschine, auf der der Daemon läuft. Es sollte von der in @code{ca} angegebenen Zertifikatsautorität signiert sein."
 
 #. type: deftypevr
-#: doc/guix.texi:21960 doc/guix.texi:22111
+#: doc/guix.texi:24806 doc/guix.texi:24957
 msgid "Defaults to @samp{\"/etc/openvpn/client.crt\"}."
 msgstr "Die Vorgabe ist @samp{\"/etc/openvpn/client.crt\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:21963
+#: doc/guix.texi:24809
 #, no-wrap
 msgid "{@code{openvpn-client-configuration} parameter} string key"
 msgstr "{@code{openvpn-client-configuration}-Parameter} Zeichenkette key"
 
 #. type: deftypevr
-#: doc/guix.texi:21966 doc/guix.texi:22117
+#: doc/guix.texi:24812 doc/guix.texi:24963
 msgid "The key of the machine the daemon is running on.  It must be the key whose certificate is @code{cert}."
 msgstr "Der Schlüssel der Maschine, auf der der Daemon läuft. Er muss der Schlüssel zum in @code{cert} angegebenen Zertifikat sein."
 
 #. type: deftypevr
-#: doc/guix.texi:21968 doc/guix.texi:22119
+#: doc/guix.texi:24814 doc/guix.texi:24965
 msgid "Defaults to @samp{\"/etc/openvpn/client.key\"}."
 msgstr "Die Vorgabe ist @samp{\"/etc/openvpn/client.key\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:21971
+#: doc/guix.texi:24817
 #, no-wrap
 msgid "{@code{openvpn-client-configuration} parameter} boolean comp-lzo?"
 msgstr "{@code{openvpn-client-configuration}-Parameter} Boolescher-Ausdruck comp-lzo?"
 
 #. type: deftypevr
-#: doc/guix.texi:21973 doc/guix.texi:22124
+#: doc/guix.texi:24819 doc/guix.texi:24970
 msgid "Whether to use the lzo compression algorithm."
 msgstr "Ob der Kompressionsalgorithmus lzo benutzt werden soll."
 
 #. type: deftypevr
-#: doc/guix.texi:21978
+#: doc/guix.texi:24824
 #, no-wrap
 msgid "{@code{openvpn-client-configuration} parameter} boolean persist-key?"
 msgstr "{@code{openvpn-client-configuration}-Parameter} Boolescher-Ausdruck persist-key?"
 
 #. type: deftypevr
-#: doc/guix.texi:21980 doc/guix.texi:22131
+#: doc/guix.texi:24826 doc/guix.texi:24977
 msgid "Don't re-read key files across SIGUSR1 or --ping-restart."
 msgstr "Die Schlüsseldateien nach Auftreten von SIGUSR1 oder --ping-restart @emph{nicht} erneut einlesen."
 
 #. type: deftypevr
-#: doc/guix.texi:21985
+#: doc/guix.texi:24831
 #, no-wrap
 msgid "{@code{openvpn-client-configuration} parameter} boolean persist-tun?"
 msgstr "{@code{openvpn-client-configuration}-Parameter} Boolescher-Ausdruck persist-tun?"
 
 #. type: deftypevr
-#: doc/guix.texi:21988 doc/guix.texi:22139
+#: doc/guix.texi:24834 doc/guix.texi:24985
 msgid "Don't close and reopen TUN/TAP device or run up/down scripts across SIGUSR1 or --ping-restart restarts."
 msgstr "Nach dem Auftreten von SIGUSR1 oder --ping-restart TUN/TAP-Geräte @emph{nicht} schließen und wieder öffnen und auch keine Start-/Stop-Skripte ausführen."
 
 #. type: deftypevr
-#: doc/guix.texi:21993
+#: doc/guix.texi:24839
 #, no-wrap
 msgid "{@code{openvpn-client-configuration} parameter} boolean fast-io?"
 msgstr "{@code{openvpn-client-configuration}-Parameter} Boolescher-Ausdruck fast-io?"
 
 #. type: deftypevr
-#: doc/guix.texi:21996 doc/guix.texi:22147
+#: doc/guix.texi:24842 doc/guix.texi:24993
 msgid "(Experimental) Optimize TUN/TAP/UDP I/O writes by avoiding a call to poll/epoll/select prior to the write operation."
 msgstr "(Experimentell) Schreibzugriffe durch Datenverkehr bei TUN/TAP/UDP optimieren, indem ein Aufruf von poll/epoll/select vor der Schreiboperation eingespart wird."
 
 #. type: deftypevr
-#: doc/guix.texi:22000
+#: doc/guix.texi:24846
 #, no-wrap
 msgid "{@code{openvpn-client-configuration} parameter} number verbosity"
 msgstr "{@code{openvpn-client-configuration}-Parameter} Zahl verbosity"
 
 #. type: deftypevr
-#: doc/guix.texi:22002 doc/guix.texi:22153
+#: doc/guix.texi:24848 doc/guix.texi:24999
 msgid "Verbosity level."
 msgstr "Ausführlichkeitsstufe."
 
 #. type: deftypevr
-#: doc/guix.texi:22004 doc/guix.texi:22155 doc/guix.texi:23609
-#: doc/guix.texi:23832
+#: doc/guix.texi:24850 doc/guix.texi:25001 doc/guix.texi:26470
+#: doc/guix.texi:26694
 msgid "Defaults to @samp{3}."
 msgstr "Die Vorgabe ist @samp{3}."
 
 #. type: deftypevr
-#: doc/guix.texi:22007
+#: doc/guix.texi:24853
 #, no-wrap
 msgid "{@code{openvpn-client-configuration} parameter} tls-auth-client tls-auth"
 msgstr "{@code{openvpn-client-configuration}-Parameter} „tls-auth“-Clienteinstellung tls-auth"
 
 #. type: deftypevr
-#: doc/guix.texi:22010 doc/guix.texi:22161
+#: doc/guix.texi:24856 doc/guix.texi:25007
 msgid "Add an additional layer of HMAC authentication on top of the TLS control channel to protect against DoS attacks."
 msgstr "Eine weitere HMAC-Authentifizierung zusätzlich zum TLS-Steuerungskanal einsetzen, um das System vor gezielten Überlastungsangriffen („Denial of Service“) zu schützen."
 
 #. type: deftypevr
-#: doc/guix.texi:22015
+#: doc/guix.texi:24861
 #, no-wrap
 msgid "{@code{openvpn-client-configuration} parameter} maybe-string auth-user-pass"
 msgstr "{@code{openvpn-client-configuration}-Parameter} Vielleicht-Zeichenkette auth-user-pass"
 
 #. type: deftypevr
-#: doc/guix.texi:22019
+#: doc/guix.texi:24865
 msgid "Authenticate with server using username/password.  The option is a file containing username/password on 2 lines.  Do not use a file-like object as it would be added to the store and readable by any user."
 msgstr "Beim Server eine Authentisierung über Benutzername/Passwort durchführen. Die Option nimmt eine Datei, welche Benutzername und Passwort auf zwei Zeilen enthält. Benutzen Sie dafür @emph{kein} dateiartiges Objekt, weil es in den Store eingelagert würde, wo es jeder Benutzer einsehen könnte."
 
 #. type: deftypevr
-#: doc/guix.texi:22021
+#: doc/guix.texi:24867
 msgid "Defaults to @samp{'disabled}."
 msgstr "Der Vorgabewert ist @samp{'disabled} (d.h.@: deaktiviert)."
 
 #. type: deftypevr
-#: doc/guix.texi:22023
+#: doc/guix.texi:24869
 #, no-wrap
 msgid "{@code{openvpn-client-configuration} parameter} key-usage verify-key-usage?"
 msgstr "{@code{openvpn-client-configuration}-Parameter} Schlüsselprüfung verify-key-usage?"
 
 #. type: deftypevr
-#: doc/guix.texi:22025
+#: doc/guix.texi:24871
 msgid "Whether to check the server certificate has server usage extension."
 msgstr "Ob sichergestellt werden soll, dass das Server-Zertifikat auch über eine Erweiterung („Extension“) verfügt, dass es für die Nutzung als Server gültig ist."
 
 #. type: deftypevr
-#: doc/guix.texi:22030
+#: doc/guix.texi:24876
 #, no-wrap
 msgid "{@code{openvpn-client-configuration} parameter} bind bind?"
 msgstr "{@code{openvpn-client-configuration}-Parameter} bind bind?"
 
 #. type: deftypevr
-#: doc/guix.texi:22032
+#: doc/guix.texi:24878
 msgid "Bind to a specific local port number."
 msgstr "Ob an immer dieselbe, feste lokale Portnummer gebunden wird."
 
 #. type: deftypevr
-#: doc/guix.texi:22037
+#: doc/guix.texi:24883
 #, no-wrap
 msgid "{@code{openvpn-client-configuration} parameter} resolv-retry resolv-retry?"
 msgstr "{@code{openvpn-client-configuration}-Parameter} Erneut-Auflösen resolv-retry?"
 
 #. type: deftypevr
-#: doc/guix.texi:22039
+#: doc/guix.texi:24885
 msgid "Retry resolving server address."
 msgstr "Ob, wenn die Server-Adresse nicht aufgelöst werden konnte, die Auflösung erneut versucht wird."
 
 #. type: deftypevr
-#: doc/guix.texi:22044
+#: doc/guix.texi:24890
 #, no-wrap
 msgid "{@code{openvpn-client-configuration} parameter} openvpn-remote-list remote"
 msgstr "{@code{openvpn-client-configuration}-Parameter} „openvpn-remote-configuration“-Liste remote"
 
 #. type: deftypevr
-#: doc/guix.texi:22046
+#: doc/guix.texi:24892
 msgid "A list of remote servers to connect to."
-msgstr "Eine Liste entfernter Servern, mit denen eine Verbindung hergestellt werden soll."
+msgstr "Eine Liste entfernter Server, mit denen eine Verbindung hergestellt werden soll."
 
 #. type: deftypevr
-#: doc/guix.texi:22050
+#: doc/guix.texi:24896
 msgid "Available @code{openvpn-remote-configuration} fields are:"
 msgstr "Verfügbare @code{openvpn-remote-configuration}-Felder sind:"
 
 #. type: deftypevr
-#: doc/guix.texi:22051
+#: doc/guix.texi:24897
 #, no-wrap
 msgid "{@code{openvpn-remote-configuration} parameter} string name"
 msgstr "{@code{openvpn-remote-configuration}-Parameter} Zeichenkette name"
 
 #. type: deftypevr
-#: doc/guix.texi:22053
+#: doc/guix.texi:24899
 msgid "Server name."
 msgstr "Der Servername."
 
 #. type: deftypevr
-#: doc/guix.texi:22055
+#: doc/guix.texi:24901
 msgid "Defaults to @samp{\"my-server\"}."
 msgstr "Die Vorgabe ist @samp{\"my-server\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:22058
+#: doc/guix.texi:24904
 #, no-wrap
 msgid "{@code{openvpn-remote-configuration} parameter} number port"
 msgstr "{@code{openvpn-remote-configuration}-Parameter} Zahl port"
 
 #. type: deftypevr
-#: doc/guix.texi:22060
+#: doc/guix.texi:24906
 msgid "Port number the server listens to."
 msgstr "Die Portnummer, auf der der Server lauscht."
 
 #. type: deftypevr
-#: doc/guix.texi:22062 doc/guix.texi:22170
+#: doc/guix.texi:24908 doc/guix.texi:25016
 msgid "Defaults to @samp{1194}."
 msgstr "Die Vorgabe ist @samp{1194}."
 
 #. type: Plain text
-#: doc/guix.texi:22071
+#: doc/guix.texi:24917
 msgid "Available @code{openvpn-server-configuration} fields are:"
 msgstr "Verfügbare @code{openvpn-server-configuration}-Felder sind:"
 
 #. type: deftypevr
-#: doc/guix.texi:22072
+#: doc/guix.texi:24918
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} package openvpn"
 msgstr "{@code{openvpn-server-configuration}-Parameter} „package“ openvpn"
 
 #. type: deftypevr
-#: doc/guix.texi:22077
+#: doc/guix.texi:24923
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} string pid-file"
 msgstr "{@code{openvpn-server-configuration}-Parameter} Zeichenkette pid-file"
 
 #. type: deftypevr
-#: doc/guix.texi:22084
+#: doc/guix.texi:24930
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} proto proto"
 msgstr "{@code{openvpn-server-configuration}-Parameter} Protokoll proto"
 
 #. type: deftypevr
-#: doc/guix.texi:22092
+#: doc/guix.texi:24938
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} dev dev"
 msgstr "{@code{openvpn-server-configuration}-Parameter} Gerät dev"
 
 #. type: deftypevr
-#: doc/guix.texi:22099
+#: doc/guix.texi:24945
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} string ca"
 msgstr "{@code{openvpn-server-configuration}-Parameter} Zeichenkette ca"
 
 #. type: deftypevr
-#: doc/guix.texi:22106
+#: doc/guix.texi:24952
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} string cert"
 msgstr "{@code{openvpn-server-configuration}-Parameter} Zeichenkette cert"
 
 #. type: deftypevr
-#: doc/guix.texi:22114
+#: doc/guix.texi:24960
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} string key"
 msgstr "{@code{openvpn-server-configuration}-Parameter} Zeichenkette key"
 
 #. type: deftypevr
-#: doc/guix.texi:22122
+#: doc/guix.texi:24968
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} boolean comp-lzo?"
 msgstr "{@code{openvpn-server-configuration}-Parameter} Boolescher-Ausdruck comp-lzo?"
 
 #. type: deftypevr
-#: doc/guix.texi:22129
+#: doc/guix.texi:24975
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} boolean persist-key?"
 msgstr "{@code{openvpn-server-configuration}-Parameter} Boolescher-Ausdruck persist-key?"
 
 #. type: deftypevr
-#: doc/guix.texi:22136
+#: doc/guix.texi:24982
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} boolean persist-tun?"
 msgstr "{@code{openvpn-server-configuration}-Parameter} Boolescher-Ausdruck persist-tun?"
 
 #. type: deftypevr
-#: doc/guix.texi:22144
+#: doc/guix.texi:24990
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} boolean fast-io?"
 msgstr "{@code{openvpn-server-configuration}-Parameter} Boolescher-Ausdruck fast-io?"
 
 #. type: deftypevr
-#: doc/guix.texi:22151
+#: doc/guix.texi:24997
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} number verbosity"
 msgstr "{@code{openvpn-server-configuration}-Parameter} Zahl verbosity"
 
 #. type: deftypevr
-#: doc/guix.texi:22158
+#: doc/guix.texi:25004
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} tls-auth-server tls-auth"
 msgstr "{@code{openvpn-server-configuration}-Parameter} „tls-auth“-Servereinstellung tls-auth"
 
 #. type: deftypevr
-#: doc/guix.texi:22166
+#: doc/guix.texi:25012
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} number port"
 msgstr "{@code{openvpn-server-configuration}-Parameter} Zahl port"
 
 #. type: deftypevr
-#: doc/guix.texi:22168
+#: doc/guix.texi:25014
 msgid "Specifies the port number on which the server listens."
 msgstr "Gibt die Portnummer an, auf der der Server lauscht."
 
 #. type: deftypevr
-#: doc/guix.texi:22173
+#: doc/guix.texi:25019
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} ip-mask server"
 msgstr "{@code{openvpn-server-configuration}-Parameter} IP-und-Maske server"
 
 #. type: deftypevr
-#: doc/guix.texi:22175
+#: doc/guix.texi:25021
 msgid "An ip and mask specifying the subnet inside the virtual network."
 msgstr "Eine IP-Adresse gefolgt von deren Maske, die das Subnetz im virtuellen Netzwerk angibt."
 
 #. type: deftypevr
-#: doc/guix.texi:22177
+#: doc/guix.texi:25023
 msgid "Defaults to @samp{\"10.8.0.0 255.255.255.0\"}."
 msgstr "Die Vorgabe ist @samp{\"10.8.0.0 255.255.255.0\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:22180
+#: doc/guix.texi:25026
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} cidr6 server-ipv6"
 msgstr "{@code{openvpn-server-configuration}-Parameter} cidr6 server-ipv6"
 
 #. type: deftypevr
-#: doc/guix.texi:22182
+#: doc/guix.texi:25028
 msgid "A CIDR notation specifying the IPv6 subnet inside the virtual network."
 msgstr "Eine CIDR-Notation, mit der das IPv6-Subnetz im virtuellen Netzwerk angegeben wird."
 
 #. type: deftypevr
-#: doc/guix.texi:22187
+#: doc/guix.texi:25033
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} string dh"
 msgstr "{@code{openvpn-server-configuration}-Parameter} Zeichenkette dh"
 
 #. type: deftypevr
-#: doc/guix.texi:22189
+#: doc/guix.texi:25035
 msgid "The Diffie-Hellman parameters file."
 msgstr "Die Datei mit den Diffie-Hellman-Parametern."
 
 #. type: deftypevr
-#: doc/guix.texi:22191
+#: doc/guix.texi:25037
 msgid "Defaults to @samp{\"/etc/openvpn/dh2048.pem\"}."
 msgstr "Die Vorgabe ist @samp{\"/etc/openvpn/dh2048.pem\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:22194
+#: doc/guix.texi:25040
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} string ifconfig-pool-persist"
 msgstr "{@code{openvpn-server-configuration}-Parameter} Zeichenkette ifconfig-pool-persist"
 
 #. type: deftypevr
-#: doc/guix.texi:22196
+#: doc/guix.texi:25042
 msgid "The file that records client IPs."
 msgstr "Die Datei, in der Client-IPs eingetragen werden."
 
 #. type: deftypevr
-#: doc/guix.texi:22198
+#: doc/guix.texi:25044
 msgid "Defaults to @samp{\"/etc/openvpn/ipp.txt\"}."
 msgstr "Die Vorgabe ist @samp{\"/etc/openvpn/ipp.txt\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:22201
+#: doc/guix.texi:25047
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} gateway redirect-gateway?"
 msgstr "{@code{openvpn-server-configuration}-Parameter} Zugang redirect-gateway?"
 
 #. type: deftypevr
-#: doc/guix.texi:22203
+#: doc/guix.texi:25049
 msgid "When true, the server will act as a gateway for its clients."
 msgstr "Wenn dies auf wahr steht, fungiert der Server als Zugang („Gateway“) für seine Clients."
 
 #. type: deftypevr
-#: doc/guix.texi:22208
+#: doc/guix.texi:25054
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} boolean client-to-client?"
 msgstr "{@code{openvpn-server-configuration}-Parameter} Boolescher-Ausdruck client-to-client?"
 
 #. type: deftypevr
-#: doc/guix.texi:22210
+#: doc/guix.texi:25056
 msgid "When true, clients are allowed to talk to each other inside the VPN."
 msgstr "Wenn dies auf wahr steht, ist es zugelassen, dass Clients untereinander innerhalb des VPNs kommunizieren."
 
 #. type: deftypevr
-#: doc/guix.texi:22215
+#: doc/guix.texi:25061
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} keepalive keepalive"
 msgstr "{@code{openvpn-server-configuration}-Parameter} Aufrechterhaltung keepalive"
 
 #. type: deftypevr
-#: doc/guix.texi:22221
+#: doc/guix.texi:25067
 msgid "Causes ping-like messages to be sent back and forth over the link so that each side knows when the other side has gone down.  @code{keepalive} requires a pair.  The first element is the period of the ping sending, and the second element is the timeout before considering the other side down."
 msgstr "Lässt ping-artige Nachrichtigen in beide Richtungen über die Leitung übertragen, damit beide Seiten bemerken, wenn der Kommunikationspartner offline geht. Für @code{keepalive} muss ein Paar angegeben werden. Das erste Element ist die Periode, nach der das Pingsignal wieder gesendet werden soll, und das zweite ist eine Zeitbegrenzung, in der eines ankommen muss, damit die andere Seite nicht als offline gilt."
 
 #. type: deftypevr
-#: doc/guix.texi:22224
+#: doc/guix.texi:25070
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} number max-clients"
 msgstr "{@code{openvpn-server-configuration}-Parameter} Zahl max-clients"
 
 #. type: deftypevr
-#: doc/guix.texi:22226
+#: doc/guix.texi:25072
 msgid "The maximum number of clients."
-msgstr "Wieviele Clients es höchstens geben kann."
+msgstr "Wie viele Clients es höchstens geben kann."
 
 #. type: deftypevr
-#: doc/guix.texi:22231
+#: doc/guix.texi:25077
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} string status"
 msgstr "{@code{openvpn-server-configuration}-Parameter} Zeichenkette status"
 
 #. type: deftypevr
-#: doc/guix.texi:22234
+#: doc/guix.texi:25080
 msgid "The status file.  This file shows a small report on current connection.  It is truncated and rewritten every minute."
 msgstr "Die Datei für einen Zustandsbericht („Status File“). Diese Datei enthält einen kurzen Bericht über die momentane Verbindung. Sie wird jede Minute gekürzt und neu geschrieben."
 
 #. type: deftypevr
-#: doc/guix.texi:22236
+#: doc/guix.texi:25082
 msgid "Defaults to @samp{\"/var/run/openvpn/status\"}."
 msgstr "Die Vorgabe ist @samp{\"/var/run/openvpn/status\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:22239
+#: doc/guix.texi:25085
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} openvpn-ccd-list client-config-dir"
 msgstr "{@code{openvpn-server-configuration}-Parameter} „openvpn-ccd-configuration“-Liste client-config-dir"
 
 #. type: deftypevr
-#: doc/guix.texi:22241
+#: doc/guix.texi:25087
 msgid "The list of configuration for some clients."
 msgstr "Die Liste der Konfigurationen für einige Clients."
 
 #. type: deftypevr
-#: doc/guix.texi:22245
+#: doc/guix.texi:25091
 msgid "Available @code{openvpn-ccd-configuration} fields are:"
 msgstr "Verfügbare @code{openvpn-ccd-configuration}-Felder sind:"
 
 #. type: deftypevr
-#: doc/guix.texi:22246
+#: doc/guix.texi:25092
 #, no-wrap
 msgid "{@code{openvpn-ccd-configuration} parameter} string name"
 msgstr "{@code{openvpn-ccd-configuration}-Parameter} Zeichenkette name"
 
 #. type: deftypevr
-#: doc/guix.texi:22248
+#: doc/guix.texi:25094
 msgid "Client name."
 msgstr "Der Client-Name."
 
 #. type: deftypevr
-#: doc/guix.texi:22250
+#: doc/guix.texi:25096
 msgid "Defaults to @samp{\"client\"}."
 msgstr "Die Vorgabe ist @samp{\"client\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:22253
+#: doc/guix.texi:25099
 #, no-wrap
 msgid "{@code{openvpn-ccd-configuration} parameter} ip-mask iroute"
 msgstr "{@code{openvpn-ccd-configuration}-Parameter} IP-und-Maske iroute"
 
 #. type: deftypevr
-#: doc/guix.texi:22255
+#: doc/guix.texi:25101
 msgid "Client own network"
 msgstr "Das eigene Netzwerk des Clients."
 
 #. type: deftypevr
-#: doc/guix.texi:22260
+#: doc/guix.texi:25106
 #, no-wrap
 msgid "{@code{openvpn-ccd-configuration} parameter} ip-mask ifconfig-push"
 msgstr "{@code{openvpn-ccd-configuration}-Parameter} IP-und-Maske ifconfig-push"
 
 #. type: deftypevr
-#: doc/guix.texi:22262
+#: doc/guix.texi:25108
 msgid "Client VPN IP."
 msgstr "VPN-IP-Adresse des Clients."
 
 #. type: cindex
-#: doc/guix.texi:22275
+#: doc/guix.texi:25121
 #, no-wrap
 msgid "NFS"
 msgstr "NFS"
 
 #. type: Plain text
-#: doc/guix.texi:22280
+#: doc/guix.texi:25126
 msgid "The @code{(gnu services nfs)} module provides the following services, which are most commonly used in relation to mounting or exporting directory trees as @dfn{network file systems} (NFS)."
 msgstr "Das Modul @code{(gnu services nfs)} stellt die folgenden Dienste zur Verfügung, die meistens dazu benutzt werden, Verzeichnisbäume als Netzwerkdateisysteme, englisch @dfn{Network File Systems} (NFS), einzubinden oder an andere zu exportieren."
 
 #. type: Plain text
-#: doc/guix.texi:22284
+#: doc/guix.texi:25130
 msgid "While it is possible to use the individual components that together make up a Network File System service, we recommended to configure an NFS server with the @code{nfs-service-type}."
 msgstr "Obwohl man auch die einzelnen Komponenten eines Network-File-System-Dienstes separat einrichten kann, raten wir dazu, einen NFS-Server mittels @code{nfs-service-type} zu konfigurieren."
 
 #. type: subsubheading
-#: doc/guix.texi:22285
+#: doc/guix.texi:25131
 #, no-wrap
 msgid "NFS Service"
 msgstr "NFS-Dienst"
 
 #. type: cindex
-#: doc/guix.texi:22286
+#: doc/guix.texi:25132
 #, no-wrap
 msgid "NFS, server"
 msgstr "NFS, Server"
 
 #. type: Plain text
-#: doc/guix.texi:22291
+#: doc/guix.texi:25137
 msgid "The NFS service takes care of setting up all NFS component services, kernel configuration file systems, and installs configuration files in the locations that NFS expects."
 msgstr "Der NFS-Dienst sorgt dafür, dass alle NFS-Komponentendienste, die Konfiguration des NFS-Kernels und Dateisysteme eingerichtet werden, und er installiert an den von NFS erwarteten Orten Konfigurationsdateien."
 
 #. type: defvr
-#: doc/guix.texi:22292
+#: doc/guix.texi:25138
 #, no-wrap
 msgid "{Scheme Variable} nfs-service-type"
 msgstr "{Scheme-Variable} nfs-service-type"
 
 #. type: defvr
-#: doc/guix.texi:22294
+#: doc/guix.texi:25140
 msgid "A service type for a complete NFS server."
 msgstr "Ein Diensttyp für einen vollständigen NFS-Server."
 
 #. type: deftp
-#: doc/guix.texi:22296
+#: doc/guix.texi:25142
 #, no-wrap
 msgid "{Data Type} nfs-configuration"
 msgstr "{Datentyp} nfs-configuration"
 
 #. type: deftp
-#: doc/guix.texi:22299
+#: doc/guix.texi:25145
 msgid "This data type represents the configuration of the NFS service and all of its subsystems."
 msgstr "Dieser Datentyp repräsentiert die Konfiguration des NFS-Dienstes und all seiner Subsysteme."
 
 #. type: deftp
-#: doc/guix.texi:22301
+#: doc/guix.texi:25147
 msgid "It has the following parameters:"
 msgstr "Er hat folgende Parameter:"
 
 #. type: item
-#: doc/guix.texi:22302 doc/guix.texi:22421 doc/guix.texi:22446
+#: doc/guix.texi:25148 doc/guix.texi:25273 doc/guix.texi:25298
 #, no-wrap
 msgid "@code{nfs-utils} (default: @code{nfs-utils})"
 msgstr "@code{nfs-utils} (Vorgabe: @code{nfs-utils})"
 
 #. type: table
-#: doc/guix.texi:22304
+#: doc/guix.texi:25150
 msgid "The nfs-utils package to use."
 msgstr "Das nfs-utils-Paket, was benutzt werden soll."
 
 #. type: item
-#: doc/guix.texi:22305
+#: doc/guix.texi:25151
 #, no-wrap
 msgid "@code{nfs-versions} (default: @code{'(\"4.2\" \"4.1\" \"4.0\")})"
 msgstr "@code{nfs-versions} (Vorgabe: @code{'(\"4.2\" \"4.1\" \"4.0\")})"
 
 #. type: table
-#: doc/guix.texi:22308
+#: doc/guix.texi:25154
 msgid "If a list of string values is provided, the @command{rpc.nfsd} daemon will be limited to supporting the given versions of the NFS protocol."
 msgstr "Wenn eine Liste von Zeichenketten angegeben wird, beschränkt sich der @command{rpc.nfsd}-Daemon auf die Unterstützung der angegebenen Versionen des NFS-Protokolls."
 
 #. type: item
-#: doc/guix.texi:22309
+#: doc/guix.texi:25155
 #, no-wrap
 msgid "@code{exports} (default: @code{'()})"
 msgstr "@code{exports} (Vorgabe: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:22314
+#: doc/guix.texi:25160
 msgid "This is a list of directories the NFS server should export.  Each entry is a list consisting of two elements: a directory name and a string containing all options.  This is an example in which the directory @file{/export} is served to all NFS clients as a read-only share:"
 msgstr "Diese Liste von Verzeichnissen soll der NFS-Server exportieren. Jeder Eintrag ist eine Liste, die zwei Elemente enthält: den Namen eines Verzeichnisses und eine Zeichenkette mit allen Optionen. Ein Beispiel, wo das Verzeichnis @file{/export} an alle NFS-Clients nur mit Lesezugriff freigegeben wird, sieht so aus:"
 
 #. type: lisp
-#: doc/guix.texi:22320
+#: doc/guix.texi:25166
 #, no-wrap
 msgid ""
 "(nfs-configuration\n"
@@ -42187,360 +47106,382 @@ msgstr ""
 "     \"*(ro,insecure,no_subtree_check,crossmnt,fsid=0)\"))))\n"
 
 #. type: item
-#: doc/guix.texi:22322
+#: doc/guix.texi:25168
 #, no-wrap
 msgid "@code{rpcmountd-port} (default: @code{#f})"
 msgstr "@code{rpcmountd-port} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:22324
+#: doc/guix.texi:25170
 msgid "The network port that the @command{rpc.mountd} daemon should use."
 msgstr "Welchen Netzwerk-Port der @command{rpc.mountd}-Daemon benutzen soll."
 
 #. type: item
-#: doc/guix.texi:22325
+#: doc/guix.texi:25171
 #, no-wrap
 msgid "@code{rpcstatd-port} (default: @code{#f})"
 msgstr "@code{rpcstatd-port} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:22327
+#: doc/guix.texi:25173
 msgid "The network port that the @command{rpc.statd} daemon should use."
 msgstr "Welchen Netzwerk-Port der @command{rpc.statd}-Daemon benutzen soll."
 
 #. type: item
-#: doc/guix.texi:22328 doc/guix.texi:22370
+#: doc/guix.texi:25174 doc/guix.texi:25222
 #, no-wrap
 msgid "@code{rpcbind} (default: @code{rpcbind})"
 msgstr "@code{rpcbind} (Vorgabe: @code{rpcbind})"
 
 #. type: table
-#: doc/guix.texi:22330 doc/guix.texi:22372
+#: doc/guix.texi:25176 doc/guix.texi:25224
 msgid "The rpcbind package to use."
 msgstr "Das rpcbind-Paket, das benutzt werden soll."
 
 #. type: item
-#: doc/guix.texi:22331
+#: doc/guix.texi:25177
 #, no-wrap
 msgid "@code{idmap-domain} (default: @code{\"localdomain\"})"
 msgstr "@code{idmap-domain} (Vorgabe: @code{\"localdomain\"})"
 
 #. type: table
-#: doc/guix.texi:22333
+#: doc/guix.texi:25179
 msgid "The local NFSv4 domain name."
 msgstr "Der lokale NFSv4-Domainname."
 
 #. type: item
-#: doc/guix.texi:22334
+#: doc/guix.texi:25180
 #, no-wrap
 msgid "@code{nfsd-port} (default: @code{2049})"
 msgstr "@code{nfsd-port} (Vorgabe: @code{2049})"
 
 #. type: table
-#: doc/guix.texi:22336
+#: doc/guix.texi:25182
 msgid "The network port that the @command{nfsd} daemon should use."
 msgstr "Welchen Netzwerk-Port der @command{nfsd}-Daemon benutzen soll."
 
 #. type: item
-#: doc/guix.texi:22337
+#: doc/guix.texi:25183
 #, no-wrap
 msgid "@code{nfsd-threads} (default: @code{8})"
 msgstr "@code{nfsd-threads} (Vorgabe: @code{8})"
 
 #. type: table
-#: doc/guix.texi:22339
+#: doc/guix.texi:25185
 msgid "The number of threads used by the @command{nfsd} daemon."
-msgstr "Wieviele Threads der @command{rpc.statd}-Daemon benutzen soll."
+msgstr "Wie viele Threads der @command{rpc.statd}-Daemon benutzen soll."
 
 #. type: item
-#: doc/guix.texi:22340 doc/guix.texi:22424 doc/guix.texi:22449
+#: doc/guix.texi:25186
+#, no-wrap
+msgid "@code{nfsd-tcp?} (default: @code{#t})"
+msgstr "@code{nfsd-tcp?} (Vorgabe: @code{#t})"
+
+#. type: table
+#: doc/guix.texi:25188
+msgid "Whether the @command{nfsd} daemon should listen on a TCP socket."
+msgstr "Ob der @command{nfsd}-Daemon auf einem TCP-Socket lauschen soll."
+
+#. type: item
+#: doc/guix.texi:25189
+#, no-wrap
+msgid "@code{nfsd-udp?} (default: @code{#f})"
+msgstr "@code{nfsd-udp?} (Vorgabe: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:25191
+msgid "Whether the @command{nfsd} daemon should listen on a UDP socket."
+msgstr "Ob der @command{nfsd}-Daemon auf einem UDP-Socket lauschen soll."
+
+#. type: item
+#: doc/guix.texi:25192 doc/guix.texi:25276 doc/guix.texi:25301
 #, no-wrap
 msgid "@code{pipefs-directory} (default: @code{\"/var/lib/nfs/rpc_pipefs\"})"
 msgstr "@code{pipefs-directory} (Vorgabe: @code{\"/var/lib/nfs/rpc_pipefs\"})"
 
 #. type: table
-#: doc/guix.texi:22342 doc/guix.texi:22426 doc/guix.texi:22451
+#: doc/guix.texi:25194 doc/guix.texi:25278 doc/guix.texi:25303
 msgid "The directory where the pipefs file system is mounted."
 msgstr "Das Verzeichnis, unter dem das Pipefs-Dateisystem eingebunden wurde."
 
 #. type: item
-#: doc/guix.texi:22343
+#: doc/guix.texi:25195
 #, no-wrap
 msgid "@code{debug} (default: @code{'()\"})"
 msgstr "@code{debug} (Vorgabe: @code{'()\"})"
 
 #. type: table
-#: doc/guix.texi:22347
+#: doc/guix.texi:25199
 msgid "A list of subsystems for which debugging output should be enabled.  This is a list of symbols.  Any of these symbols are valid: @code{nfsd}, @code{nfs}, @code{rpc}, @code{idmap}, @code{statd}, or @code{mountd}."
 msgstr "Eine Liste der Subsysteme, für die Informationen zur Fehlersuche bereitgestellt werden sollen, als Liste von Symbolen. Jedes der folgenden Symbole ist gültig: @code{nfsd}, @code{nfs}, @code{rpc}, @code{idmap}, @code{statd} oder @code{mountd}."
 
 #. type: Plain text
-#: doc/guix.texi:22352
+#: doc/guix.texi:25204
 msgid "If you don't need a complete NFS service or prefer to build it yourself you can use the individual component services that are documented below."
 msgstr "Wenn Sie keinen vollständigen NFS-Dienst benötigen oder ihn selbst einrichten wollen, können Sie stattdessen die im Folgenden dokumentierten Komponentendienste benutzen."
 
 #. type: subsubheading
-#: doc/guix.texi:22353
+#: doc/guix.texi:25205
 #, no-wrap
 msgid "RPC Bind Service"
 msgstr "RPC-Bind-Dienst"
 
 #. type: cindex
-#: doc/guix.texi:22354
+#: doc/guix.texi:25206
 #, no-wrap
 msgid "rpcbind"
 msgstr "rpcbind"
 
 #. type: Plain text
-#: doc/guix.texi:22360
+#: doc/guix.texi:25212
 msgid "The RPC Bind service provides a facility to map program numbers into universal addresses.  Many NFS related services use this facility.  Hence it is automatically started when a dependent service starts."
 msgstr "Mit dem RPC-Bind-Dienst können Programmnummern auf universelle Adressen abgebildet werden. Viele Dienste, die mit dem NFS zu tun haben, benutzen diese Funktion, daher wird sie automatisch gestartet, sobald ein davon abhängiger Dienst startet."
 
 #. type: defvr
-#: doc/guix.texi:22361
+#: doc/guix.texi:25213
 #, no-wrap
 msgid "{Scheme Variable} rpcbind-service-type"
 msgstr "{Scheme-Variable} rpcbind-service-type"
 
 #. type: defvr
-#: doc/guix.texi:22363
+#: doc/guix.texi:25215
 msgid "A service type for the RPC portmapper daemon."
 msgstr "Ein Diensttyp für den RPC-Portplaner-Daemon („Portmapper“)."
 
 #. type: deftp
-#: doc/guix.texi:22366
+#: doc/guix.texi:25218
 #, no-wrap
 msgid "{Data Type} rpcbind-configuration"
 msgstr "{Datentyp} rpcbind-configuration"
 
 #. type: deftp
-#: doc/guix.texi:22369
+#: doc/guix.texi:25221
 msgid "Data type representing the configuration of the RPC Bind Service.  This type has the following parameters:"
 msgstr "Datentyp, der die Konfiguration des RPC-Bind-Dienstes repräsentiert. Dieser Typ verfügt über die folgenden Parameter:"
 
 #. type: item
-#: doc/guix.texi:22373
+#: doc/guix.texi:25225
 #, no-wrap
 msgid "@code{warm-start?} (default: @code{#t})"
 msgstr "@code{warm-start?} (Vorgabe: @code{#t})"
 
 #. type: table
-#: doc/guix.texi:22377
+#: doc/guix.texi:25229
 msgid "If this parameter is @code{#t}, then the daemon will read a state file on startup thus reloading state information saved by a previous instance."
 msgstr "Wenn dieser Parameter @code{#t} ist, wird der Daemon beim Starten eine Zustandsdatei („State File“) lesen, aus der er die von der vorherigen Instanz gespeicherten Zustandsinformationen wiederherstellt."
 
 #. type: subsubheading
-#: doc/guix.texi:22381
+#: doc/guix.texi:25233
 #, no-wrap
 msgid "Pipefs Pseudo File System"
 msgstr "Pipefs-Pseudodateisystem"
 
 #. type: cindex
-#: doc/guix.texi:22382
+#: doc/guix.texi:25234
 #, no-wrap
 msgid "pipefs"
 msgstr "pipefs"
 
 #. type: cindex
-#: doc/guix.texi:22383
+#: doc/guix.texi:25235
 #, no-wrap
 msgid "rpc_pipefs"
 msgstr "rpc_pipefs"
 
 #. type: Plain text
-#: doc/guix.texi:22387
+#: doc/guix.texi:25239
 msgid "The pipefs file system is used to transfer NFS related data between the kernel and user space programs."
 msgstr "Mit dem Pipefs-Dateisystem können NFS-bezogene Daten zwischen dem Kernel und Programmen auf der Anwendungsebene (dem „User Space“) übertragen werden."
 
 #. type: defvr
-#: doc/guix.texi:22388
+#: doc/guix.texi:25240
 #, no-wrap
 msgid "{Scheme Variable} pipefs-service-type"
 msgstr "{Scheme-Variable} pipefs-service-type"
 
 #. type: defvr
-#: doc/guix.texi:22390
+#: doc/guix.texi:25242
 msgid "A service type for the pipefs pseudo file system."
 msgstr "Ein Diensttyp für das Pseudodateisystem „Pipefs“."
 
 #. type: deftp
-#: doc/guix.texi:22392
+#: doc/guix.texi:25244
 #, no-wrap
 msgid "{Data Type} pipefs-configuration"
 msgstr "{Datentyp} pipefs-configuration"
 
 #. type: deftp
-#: doc/guix.texi:22395
+#: doc/guix.texi:25247
 msgid "Data type representing the configuration of the pipefs pseudo file system service.  This type has the following parameters:"
 msgstr "Datentyp, der die Konfiguration des Pipefs-Pseudodateisystemdienstes repräsentiert. Dieser Typ verfügt über die folgenden Parameter:"
 
 #. type: item
-#: doc/guix.texi:22396
+#: doc/guix.texi:25248
 #, no-wrap
 msgid "@code{mount-point} (default: @code{\"/var/lib/nfs/rpc_pipefs\"})"
 msgstr "@code{mount-point} (Vorgabe: @code{\"/var/lib/nfs/rpc_pipefs\"})"
 
 #. type: table
-#: doc/guix.texi:22398
+#: doc/guix.texi:25250
 msgid "The directory to which the file system is to be attached."
 msgstr "Das Verzeichnis, unter dem das Dateisystem eingebunden werden soll."
 
 #. type: subsubheading
-#: doc/guix.texi:22402
+#: doc/guix.texi:25254
 #, no-wrap
 msgid "GSS Daemon Service"
 msgstr "GSS-Daemon-Dienst"
 
 #. type: cindex
-#: doc/guix.texi:22403
+#: doc/guix.texi:25255
 #, no-wrap
 msgid "GSSD"
 msgstr "GSSD"
 
 #. type: cindex
-#: doc/guix.texi:22404
+#: doc/guix.texi:25256
 #, no-wrap
 msgid "GSS"
 msgstr "GSS"
 
 #. type: cindex
-#: doc/guix.texi:22405
+#: doc/guix.texi:25257
 #, no-wrap
 msgid "global security system"
 msgstr "Global Security System"
 
 #. type: Plain text
-#: doc/guix.texi:22412
+#: doc/guix.texi:25264
 msgid "The @dfn{global security system} (GSS) daemon provides strong security for RPC based protocols.  Before exchanging RPC requests an RPC client must establish a security context.  Typically this is done using the Kerberos command @command{kinit} or automatically at login time using PAM services (@pxref{Kerberos Services})."
 msgstr "Der Daemon des @dfn{Global Security System} (GSS) ermöglicht starke Informationssicherheit für RPC-basierte Protokolle. Vor dem Austausch von Anfragen über entfernte Prozeduraufrufe („Remote Procedure Calls“, kurz RPC) muss ein RPC-Client einen Sicherheitskontext („Security Context“) herstellen. Typischerweise wird dazu der @command{kinit}-Befehl von Kerberos benutzt, oder er wird automatisch bei der Anmeldung über PAM-Dienste hergestellt (siehe @ref{Kerberos Services})."
 
 #. type: defvr
-#: doc/guix.texi:22413
+#: doc/guix.texi:25265
 #, no-wrap
 msgid "{Scheme Variable} gss-service-type"
 msgstr "{Scheme-Variable} gss-service-type"
 
 #. type: defvr
-#: doc/guix.texi:22415
+#: doc/guix.texi:25267
 msgid "A service type for the Global Security System (GSS) daemon."
 msgstr "Ein Diensttyp für den Daemon des Global Security System (GSS)."
 
 #. type: deftp
-#: doc/guix.texi:22417
+#: doc/guix.texi:25269
 #, no-wrap
 msgid "{Data Type} gss-configuration"
 msgstr "{Datentyp} gss-configuration"
 
 #. type: deftp
-#: doc/guix.texi:22420
+#: doc/guix.texi:25272
 msgid "Data type representing the configuration of the GSS daemon service.  This type has the following parameters:"
 msgstr "Datentyp, der die Konfiguration des GSS-Daemon-Dienstes repräsentiert. Dieser Typ verfügt über die folgenden Parameter:"
 
 #. type: table
-#: doc/guix.texi:22423
+#: doc/guix.texi:25275
 msgid "The package in which the @command{rpc.gssd} command is to be found."
 msgstr "Das Paket, in dem der Befehl @command{rpc.gssd} gesucht werden soll."
 
 #. type: subsubheading
-#: doc/guix.texi:22431
+#: doc/guix.texi:25283
 #, no-wrap
 msgid "IDMAP Daemon Service"
 msgstr "IDMAP-Daemon-Dienst"
 
 #. type: cindex
-#: doc/guix.texi:22432
+#: doc/guix.texi:25284
 #, no-wrap
 msgid "idmapd"
 msgstr "idmapd"
 
 #. type: cindex
-#: doc/guix.texi:22433
+#: doc/guix.texi:25285
 #, no-wrap
 msgid "name mapper"
 msgstr "Name-Mapper"
 
 #. type: Plain text
-#: doc/guix.texi:22437
+#: doc/guix.texi:25289
 msgid "The idmap daemon service provides mapping between user IDs and user names.  Typically it is required in order to access file systems mounted via NFSv4."
 msgstr "Der idmap-Daemon-Dienst ermöglicht eine Abbildung zwischen Benutzeridentifikatoren und Benutzernamen. Er wird in der Regel dafür benötigt, auf über NFSv4 eingebundene Dateisysteme zuzugreifen."
 
 #. type: defvr
-#: doc/guix.texi:22438
+#: doc/guix.texi:25290
 #, no-wrap
 msgid "{Scheme Variable} idmap-service-type"
 msgstr "{Scheme-Variable} idmap-service-type"
 
 #. type: defvr
-#: doc/guix.texi:22440
+#: doc/guix.texi:25292
 msgid "A service type for the Identity Mapper (IDMAP) daemon."
 msgstr "Ein Diensttyp für den Identity-Mapper-Daemon (IDMAP)."
 
 #. type: deftp
-#: doc/guix.texi:22442
+#: doc/guix.texi:25294
 #, no-wrap
 msgid "{Data Type} idmap-configuration"
 msgstr "{Datentyp} idmap-configuration"
 
 #. type: deftp
-#: doc/guix.texi:22445
+#: doc/guix.texi:25297
 msgid "Data type representing the configuration of the IDMAP daemon service.  This type has the following parameters:"
 msgstr "Datentyp, der die Konfiguration des IDMAP-Daemon-Dienstes repräsentiert. Dieser Typ verfügt über die folgenden Parameter:"
 
 #. type: table
-#: doc/guix.texi:22448
+#: doc/guix.texi:25300
 msgid "The package in which the @command{rpc.idmapd} command is to be found."
 msgstr "Das Paket, in dem der Befehl @command{rpc.idmapd} gesucht werden soll."
 
 #. type: item
-#: doc/guix.texi:22452
+#: doc/guix.texi:25304
 #, no-wrap
 msgid "@code{domain} (default: @code{#f})"
 msgstr "@code{domain} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:22456
+#: doc/guix.texi:25308
 msgid "The local NFSv4 domain name.  This must be a string or @code{#f}.  If it is @code{#f} then the daemon will use the host's fully qualified domain name."
 msgstr "Der lokale NFSv4-Domain-Name. Für ihn muss eine Zeichenkette oder @code{#f} angegeben werden. Wenn @code{#f} angegeben wird, benutzt der Daemon den vollständigen Domain-Namen („Fully Qualified Domain Name“) des Rechners."
 
 #. type: item
-#: doc/guix.texi:22457
+#: doc/guix.texi:25309
 #, no-wrap
 msgid "@code{verbosity} (default: @code{0})"
 msgstr "@code{verbosity} (Vorgabe: @code{0})"
 
 #. type: table
-#: doc/guix.texi:22459
+#: doc/guix.texi:25311
 msgid "The verbosity level of the daemon."
 msgstr "Die Ausführlichkeitsstufe des Daemons."
 
 #. type: Plain text
-#: doc/guix.texi:22470
+#: doc/guix.texi:25322
 msgid "@uref{https://git.savannah.gnu.org/cgit/guix/guix-cuirass.git, Cuirass} is a continuous integration tool for Guix.  It can be used both for development and for providing substitutes to others (@pxref{Substitutes})."
 msgstr "@uref{https://git.savannah.gnu.org/cgit/guix/guix-cuirass.git, Cuirass} ist ein Werkzeug zur kontinuierlichen Integration für Guix. Es kann sowohl bei der Entwicklung helfen als auch beim Anbieten von Substituten für andere (siehe @ref{Substitutes})."
 
 #. type: Plain text
-#: doc/guix.texi:22472
+#: doc/guix.texi:25324
 msgid "The @code{(gnu services cuirass)} module provides the following service."
 msgstr "Das Modul @code{(gnu services cuirass)} stellt den folgenden Dienst zur Verfügung:"
 
 #. type: defvr
-#: doc/guix.texi:22473
+#: doc/guix.texi:25325
 #, no-wrap
 msgid "{Scheme Procedure} cuirass-service-type"
 msgstr "{Scheme-Prozedur} cuirass-service-type"
 
 #. type: defvr
-#: doc/guix.texi:22476
+#: doc/guix.texi:25328
 msgid "The type of the Cuirass service.  Its value must be a @code{cuirass-configuration} object, as described below."
 msgstr "Der Diensttyp des Cuirass-Dienstes. Sein Wert muss ein @code{cuirass-configuration}-Verbundsobjekt sein, wie im Folgenden beschrieben."
 
 #. type: Plain text
-#: doc/guix.texi:22483
-msgid "To add build jobs, you have to set the @code{specifications} field of the configuration.  Here is an example of a service that polls the Guix repository and builds the packages from a manifest.  Some of the packages are defined in the @code{\"custom-packages\"} input, which is the equivalent of @code{GUIX_PACKAGE_PATH}."
-msgstr "Um Erstellungsaufträge („Build Jobs“) hinzuzufügen, müssen Sie sie im @code{specifications}-Feld der Konfiguration eintragen. Hier ist ein Beispiel für einen Dienst, der das Guix-Repository regelmäßig lädt und die Pakete aus einem der Manifeste erstellt. Manche der Pakete werden in der Eingabe @code{\"eigene-pakete\"} definiert, was als @code{GUIX_PACKAGE_PATH} benutzt wird."
+#: doc/guix.texi:25335
+msgid "To add build jobs, you have to set the @code{specifications} field of the configuration.  Here is an example of a service that polls the Guix repository and builds the packages from a manifest.  Some of the packages are defined in the @code{\"custom-packages\"} input, which is the equivalent of @env{GUIX_PACKAGE_PATH}."
+msgstr "Um Erstellungsaufträge („Build Jobs“) hinzuzufügen, müssen Sie sie im @code{specifications}-Feld der Konfiguration eintragen. Hier ist ein Beispiel für einen Dienst, der das Guix-Repository regelmäßig lädt und die Pakete aus einem der Manifeste erstellt. Manche der Pakete werden in der Eingabe @code{\"eigene-pakete\"} definiert, was als @env{GUIX_PACKAGE_PATH} benutzt wird."
 
 #. type: lisp
-#: doc/guix.texi:22511
+#: doc/guix.texi:25363
 #, no-wrap
 msgid ""
 "(define %cuirass-specs\n"
@@ -42600,7 +47541,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:22515
+#: doc/guix.texi:25367
 #, no-wrap
 msgid ""
 "(service cuirass-service-type\n"
@@ -42612,1117 +47553,1142 @@ msgstr ""
 "          (specifications %cuirass-specs)))\n"
 
 #. type: Plain text
-#: doc/guix.texi:22520
+#: doc/guix.texi:25372
 msgid "While information related to build jobs is located directly in the specifications, global settings for the @command{cuirass} process are accessible in other @code{cuirass-configuration} fields."
 msgstr "Die Informationen, die sich auf Erstellungsaufträge beziehen, werden direkt in deren Spezifikation festgelegt, aber globale Einstellungen des @command{cuirass}-Prozesses sind über andere Felder der @code{cuirass-configuration} zugänglich."
 
 #. type: deftp
-#: doc/guix.texi:22521
+#: doc/guix.texi:25373
 #, no-wrap
 msgid "{Data Type} cuirass-configuration"
 msgstr "{Datentyp} cuirass-configuration"
 
 #. type: deftp
-#: doc/guix.texi:22523
+#: doc/guix.texi:25375
 msgid "Data type representing the configuration of Cuirass."
 msgstr "Datentyp, der die Konfiguration von Cuirass repräsentiert."
 
 #. type: item
-#: doc/guix.texi:22525
+#: doc/guix.texi:25377
 #, no-wrap
 msgid "@code{log-file} (default: @code{\"/var/log/cuirass.log\"})"
 msgstr "@code{log-file} (Vorgabe: @code{\"/var/log/cuirass.log\"})"
 
 #. type: table
-#: doc/guix.texi:22527
+#: doc/guix.texi:25379
 msgid "Location of the log file."
 msgstr "An welchen Ort die Protokolldatei geschrieben wird."
 
 #. type: item
-#: doc/guix.texi:22528
+#: doc/guix.texi:25380
 #, no-wrap
 msgid "@code{web-log-file} (default: @code{\"/var/log/cuirass-web.log\"})"
 msgstr "@code{web-log-file} (Vorgabe: @code{\"/var/log/cuirass-web.log\"})"
 
 #. type: table
-#: doc/guix.texi:22530
+#: doc/guix.texi:25382
 msgid "Location of the log file used by the web interface."
 msgstr "An welchem Ort die Protokolldatei der Weboberfläche gespeichert wird."
 
 #. type: item
-#: doc/guix.texi:22531
+#: doc/guix.texi:25383
+#, no-wrap
+msgid "@code{queries-log-file} (default: @code{#f})"
+msgstr "@code{queries-log-file} (Vorgabe: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:25386
+msgid "Location of the SQL queries log file. By default, SQL queries logging is disabled."
+msgstr "Ort der Protokolldatei für SQL-Anfragen. Nach Vorgabe werden SQL-Anfragen @emph{nicht} protokolliert."
+
+#. type: item
+#: doc/guix.texi:25387
+#, no-wrap
+msgid "@code{web-queries-log-file} (default: @code{#f})"
+msgstr "@code{web-queries-log-file} (Vorgabe: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:25390
+msgid "Location of the web SQL queries log file. By default, web SQL queries logging is disabled."
+msgstr "Ort der Protokolldatei für Web-SQL-Anfragen. Nach Vorgabe werden Web-SQL-Anfragen @emph{nicht} protokolliert."
+
+#. type: item
+#: doc/guix.texi:25391
 #, no-wrap
 msgid "@code{cache-directory} (default: @code{\"/var/cache/cuirass\"})"
 msgstr "@code{cache-directory} (Vorgabe: @code{\"/var/cache/cuirass\"})"
 
 #. type: table
-#: doc/guix.texi:22533
+#: doc/guix.texi:25393
 msgid "Location of the repository cache."
 msgstr "Ort, wo Repositorys zwischengespeichert werden."
 
 #. type: item
-#: doc/guix.texi:22534
+#: doc/guix.texi:25394
 #, no-wrap
 msgid "@code{user} (default: @code{\"cuirass\"})"
 msgstr "@code{user} (Vorgabe: @code{\"cuirass\"})"
 
 #. type: table
-#: doc/guix.texi:22536
+#: doc/guix.texi:25396
 msgid "Owner of the @code{cuirass} process."
 msgstr "Besitzer des @code{cuirass}-Prozesses."
 
 #. type: item
-#: doc/guix.texi:22537
+#: doc/guix.texi:25397
 #, no-wrap
 msgid "@code{group} (default: @code{\"cuirass\"})"
 msgstr "@code{group} (Vorgabe: @code{\"cuirass\"})"
 
 #. type: table
-#: doc/guix.texi:22539
+#: doc/guix.texi:25399
 msgid "Owner's group of the @code{cuirass} process."
 msgstr "Gruppe des Besitzers des @code{cuirass}-Prozesses."
 
 #. type: item
-#: doc/guix.texi:22540
+#: doc/guix.texi:25400
 #, no-wrap
 msgid "@code{interval} (default: @code{60})"
 msgstr "@code{interval} (Vorgabe: @code{60})"
 
 #. type: table
-#: doc/guix.texi:22543
+#: doc/guix.texi:25403
 msgid "Number of seconds between the poll of the repositories followed by the Cuirass jobs."
 msgstr "Anzahl der Sekunden, bevor ein Repository wieder neu geladen wird und danach Cuirass-Aufträge behandelt werden."
 
 #. type: item
-#: doc/guix.texi:22544
+#: doc/guix.texi:25404
 #, no-wrap
 msgid "@code{database} (default: @code{\"/var/lib/cuirass/cuirass.db\"})"
 msgstr "@code{database} (Vorgabe: @code{\"/var/lib/cuirass/cuirass.db\"})"
 
 #. type: table
-#: doc/guix.texi:22547
+#: doc/guix.texi:25407
 msgid "Location of sqlite database which contains the build results and previously added specifications."
 msgstr "An welchem Ort sich die sqlite-Datenbank befinden soll, die die Erstellungsergebnisse und bisher hinzugefügte Spezifikationen speichert."
 
 #. type: item
-#: doc/guix.texi:22548
+#: doc/guix.texi:25408
 #, no-wrap
 msgid "@code{ttl} (default: @code{(* 30 24 3600)})"
 msgstr "@code{ttl} (Vorgabe: @code{(* 30 24 3600)})"
 
 #. type: table
-#: doc/guix.texi:22552
+#: doc/guix.texi:25412
 msgid "Specifies the time-to-live (TTL) in seconds of garbage collector roots that are registered for build results.  This means that build results are protected from garbage collection for at least @var{ttl} seconds."
-msgstr "Gibt an, wieviele Sekunden für Erstellungsergebnisse registrierte Müllsammlerwurzeln gültig bleiben („Time-to-live“, kurz TTL). Dadurch werden Erstellungsergebnisse für mindestens @var{ttl}-viele Sekunden geschützt."
+msgstr "Gibt an, wie viele Sekunden für Erstellungsergebnisse registrierte Müllsammlerwurzeln gültig bleiben („Time-to-live“, kurz TTL). Dadurch werden Erstellungsergebnisse für mindestens @var{ttl}-viele Sekunden geschützt."
 
 #. type: item
-#: doc/guix.texi:22553
+#: doc/guix.texi:25413
 #, no-wrap
 msgid "@code{port} (default: @code{8081})"
 msgstr "@code{port} (Vortrag: @code{8081})"
 
 #. type: table
-#: doc/guix.texi:22555
+#: doc/guix.texi:25415
 msgid "Port number used by the HTTP server."
 msgstr "Portnummer, die vom HTTP-Server benutzt wird."
 
 #. type: table
-#: doc/guix.texi:22559
+#: doc/guix.texi:25419
 msgid "Listen on the network interface for @var{host}.  The default is to accept connections from localhost."
 msgstr "Auf der Netzwerkschnittstelle für den Rechnernamen @var{host} lauschen. Nach Vorgabe werden Verbindungen vom lokalen Rechner @code{localhost} akzeptiert."
 
 #. type: item
-#: doc/guix.texi:22560
+#: doc/guix.texi:25420
 #, no-wrap
 msgid "@code{specifications} (default: @code{#~'()})"
 msgstr "@code{specifications} (Vorgabe: @code{#~'()})"
 
 #. type: table
-#: doc/guix.texi:22566
+#: doc/guix.texi:25426
 msgid "A gexp (@pxref{G-Expressions}) that evaluates to a list of specifications, where a specification is an association list (@pxref{Associations Lists,,, guile, GNU Guile Reference Manual}) whose keys are keywords (@code{#:keyword-example}) as shown in the example above."
-msgstr "Ein G-Ausdruck (siehe @ref{G-Expressions}), der zu einer Liste von Spezifikationen ausgewertet wird, wobei jede Spezifikation eine assoziative Liste ist (siehe @ref{Associations Lists,,, guile, GNU Guile Reference Manual}), deren Schlüssel Schlüsselwörter sind („Keywords“ wie z.B.@: @code{#:beispiel-für-ein-schlüsselwort}), wie im Beispiel oben gezeigt."
+msgstr "Ein G-Ausdruck (siehe @ref{G-Expressions}), der zu einer Liste von Spezifikationen ausgewertet wird, wobei jede Spezifikation eine assoziative Liste ist (siehe @ref{Associations Lists,,, guile, Referenzhandbuch zu GNU Guile}), deren Schlüssel Schlüsselwörter sind („Keywords“ wie z.B.@: @code{#:beispiel-für-ein-schlüsselwort}), wie im Beispiel oben gezeigt."
 
 #. type: item
-#: doc/guix.texi:22567
+#: doc/guix.texi:25427
 #, no-wrap
 msgid "@code{use-substitutes?} (default: @code{#f})"
 msgstr "@code{use-substitutes?} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:22570
+#: doc/guix.texi:25430
 msgid "This allows using substitutes to avoid building every dependencies of a job from source."
 msgstr "Hierdurch wird zugelassen, Substitute zu benutzen, damit @emph{nicht} jede Abhängigkeit eines Auftrags erst aus ihrem Quellcode heraus erstellt werden muss."
 
 #. type: item
-#: doc/guix.texi:22571 doc/guix.texi:27869
+#: doc/guix.texi:25431 doc/guix.texi:32053
 #, no-wrap
 msgid "@code{one-shot?} (default: @code{#f})"
 msgstr "@code{one-shot?} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:22573
+#: doc/guix.texi:25433
 msgid "Only evaluate specifications and build derivations once."
 msgstr "Spezifikationen nur einmal auswerten und Ableitungen nur einmal erstellen."
 
 #. type: item
-#: doc/guix.texi:22574
+#: doc/guix.texi:25434
 #, no-wrap
 msgid "@code{fallback?} (default: @code{#f})"
 msgstr "@code{fallback?} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:22577
+#: doc/guix.texi:25437
 msgid "When substituting a pre-built binary fails, fall back to building packages locally."
 msgstr "Pakete lokal erstellen, wenn das Substituieren einer vorerstellten Binärdatei fehlschlägt."
 
 #. type: table
-#: doc/guix.texi:22580
+#: doc/guix.texi:25440
 msgid "Extra options to pass when running the Cuirass processes."
 msgstr "Zusätzliche Befehlszeilenoptionen, die beim Ausführen des Cuirass-Prozesses mitgegeben werden sollen."
 
 #. type: item
-#: doc/guix.texi:22581
+#: doc/guix.texi:25441
 #, no-wrap
 msgid "@code{cuirass} (default: @code{cuirass})"
 msgstr "@code{cuirass} (Vorgabe: @code{cuirass})"
 
 #. type: table
-#: doc/guix.texi:22583
+#: doc/guix.texi:25443
 msgid "The Cuirass package to use."
 msgstr "Das Cuirass-Paket, das benutzt werden soll."
 
 #. type: cindex
-#: doc/guix.texi:22589
+#: doc/guix.texi:25449
 #, no-wrap
 msgid "tlp"
 msgstr "TLP"
 
 #. type: cindex
-#: doc/guix.texi:22590
+#: doc/guix.texi:25450
 #, no-wrap
 msgid "power management with TLP"
 msgstr "Stromverbrauch mit TLP verwalten"
 
 #. type: subsubheading
-#: doc/guix.texi:22591
+#: doc/guix.texi:25451
 #, no-wrap
 msgid "TLP daemon"
 msgstr "TLP-Daemon"
 
 #. type: Plain text
-#: doc/guix.texi:22595
+#: doc/guix.texi:25455
 msgid "The @code{(gnu services pm)} module provides a Guix service definition for the Linux power management tool TLP."
 msgstr "Das Modul @code{(gnu services pm)} stellt eine Guix-Dienstdefinition für das Linux-Werkzeug TLP zur Stromverbrauchsverwaltung zur Verfügung."
 
 #. type: Plain text
-#: doc/guix.texi:22601
+#: doc/guix.texi:25461
 msgid "TLP enables various powersaving modes in userspace and kernel.  Contrary to @code{upower-service}, it is not a passive, monitoring tool, as it will apply custom settings each time a new power source is detected.  More information can be found at @uref{https://linrunner.de/en/tlp/tlp.html, TLP home page}."
 msgstr "TLP macht mehrere Stromspar-Modi auf Anwendungsebene („User Space“) und im Kernel verfügbar. Im Gegensatz zum @code{upower-service} handelt es sich um kein passives Werkzeug zur Überwachung, sondern TLP passt selbst jedes Mal Einstellungen an, wenn eine neue Stromquelle erkannt wird. Mehr Informationen finden Sie auf der @uref{https://linrunner.de/en/tlp/tlp.html, TLP-Homepage}."
 
 #. type: deffn
-#: doc/guix.texi:22602
+#: doc/guix.texi:25462
 #, no-wrap
 msgid "{Scheme Variable} tlp-service-type"
 msgstr "{Scheme-Variable} tlp-service-type"
 
 #. type: deffn
-#: doc/guix.texi:22606
-msgid "The service type for the TLP tool.  Its value should be a valid TLP configuration (see below).  To use the default settings, simply write:"
-msgstr "Der Diensttyp für das TLP-Werkzeug. Sein Wert sollte eine gültige TLP-Konfiguration sein (siehe unten). Um die Vorgabeeinstellungen zu verwenden, schreiben Sie einfach:"
+#: doc/guix.texi:25466
+msgid "The service type for the TLP tool.  The default settings are optimised for battery life on most systems, but you can tweak them to your heart's content by adding a valid @code{tlp-configuration}:"
+msgstr "Der Diensttyp für das TLP-Werkzeug. In der Vorgabeeinstellung wird die Akkulaufzeit für die meisten Systeme optimiert, aber Sie können sie nach Belieben anpassen, indem Sie eine gültige @code{tlp-configuration} hinzufügen:"
 
 #. type: lisp
-#: doc/guix.texi:22608
+#: doc/guix.texi:25471
 #, no-wrap
-msgid "(service tlp-service-type)\n"
-msgstr "(service tlp-service-type)\n"
-
-#. type: Plain text
-#: doc/guix.texi:22613
-msgid "By default TLP does not need much configuration but most TLP parameters can be tweaked using @code{tlp-configuration}."
-msgstr "Um die Vorgaben für TLP zu benutzen, müssen Sie also nur wenig in die Konfiguration schreiben, aber Sie können die meisten TLP-Parameter über die @code{tlp-configuration} anpassen."
+msgid ""
+"(service tlp-service-type\n"
+"         (tlp-configuration\n"
+"          (cpu-scaling-governor-on-ac (list \"performance\"))\n"
+"          (sched-powersave-on-bat? #t)))\n"
+msgstr ""
+"(service tlp-service-type\n"
+"         (tlp-configuration\n"
+"          (cpu-scaling-governor-on-ac (list \"performance\"))\n"
+"          (sched-powersave-on-bat? #t)))\n"
 
 #. type: Plain text
-#: doc/guix.texi:22619
+#: doc/guix.texi:25479
 msgid "Each parameter definition is preceded by its type; for example, @samp{boolean foo} indicates that the @code{foo} parameter should be specified as a boolean.  Types starting with @code{maybe-} denote parameters that won't show up in TLP config file when their value is @code{'disabled}."
 msgstr "Im Folgenden ist jeder Parameterdefinition ihr Typ vorangestellt. Zum Beispiel bedeutet @samp{Boolescher-Ausdruck foo}, dass der Parameter @code{foo} als boolescher Ausdruck festgelegt werden sollte.  Typen, die mit @code{Vielleicht-} beginnen, bezeichnen Parameter, die nicht in der TLP-Konfigurationsdatei vorkommen, wenn @code{'disabled} als ihr Wert angegeben wurde."
 
 #. type: Plain text
-#: doc/guix.texi:22629
+#: doc/guix.texi:25489
 msgid "Available @code{tlp-configuration} fields are:"
 msgstr "Verfügbare @code{tlp-configuration}-Felder sind:"
 
 #. type: deftypevr
-#: doc/guix.texi:22630
+#: doc/guix.texi:25490
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} package tlp"
 msgstr "{@code{tlp-configuration}-Parameter} „package“ tlp"
 
 #. type: deftypevr
-#: doc/guix.texi:22632
+#: doc/guix.texi:25492
 msgid "The TLP package."
 msgstr "Das TLP-Paket."
 
 #. type: deftypevr
-#: doc/guix.texi:22635
+#: doc/guix.texi:25495
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} boolean tlp-enable?"
 msgstr "{@code{tlp-configuration}-Parameter} Boolescher-Ausdruck tlp-enable?"
 
 #. type: deftypevr
-#: doc/guix.texi:22637
+#: doc/guix.texi:25497
 msgid "Set to true if you wish to enable TLP."
 msgstr "Setzen Sie dies auf wahr, wenn Sie TLP aktivieren möchten."
 
 #. type: deftypevr
-#: doc/guix.texi:22642
+#: doc/guix.texi:25502
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} string tlp-default-mode"
 msgstr "{@code{tlp-configuration}-Parameter} Zeichenkette tlp-default-mode"
 
 #. type: deftypevr
-#: doc/guix.texi:22645
+#: doc/guix.texi:25505
 msgid "Default mode when no power supply can be detected.  Alternatives are AC and BAT."
 msgstr "Der vorgegebene Modus, wenn keine Stromversorgung gefunden werden kann. Angegeben werden können AC (am Stromnetz) und BAT (Batterie/Akku)."
 
 #. type: deftypevr
-#: doc/guix.texi:22647
+#: doc/guix.texi:25507
 msgid "Defaults to @samp{\"AC\"}."
 msgstr "Die Vorgabe ist @samp{\"AC\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:22650
+#: doc/guix.texi:25510
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} non-negative-integer disk-idle-secs-on-ac"
 msgstr "{@code{tlp-configuration}-Parameter} Nichtnegative-ganze-Zahl disk-idle-secs-on-ac"
 
 #. type: deftypevr
-#: doc/guix.texi:22653
+#: doc/guix.texi:25513
 msgid "Number of seconds Linux kernel has to wait after the disk goes idle, before syncing on AC."
 msgstr "Die Anzahl an Sekunden, die der Linux-Kernel warten muss, bis er sich mit dem Plattenspeicher synchronisiert, wenn die Stromversorgung auf AC steht."
 
 #. type: deftypevr
-#: doc/guix.texi:22658
+#: doc/guix.texi:25518
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} non-negative-integer disk-idle-secs-on-bat"
 msgstr "{@code{tlp-configuration}-Parameter} Nichtnegative-ganze-Zahl disk-idle-secs-on-bat"
 
 #. type: deftypevr
-#: doc/guix.texi:22660
+#: doc/guix.texi:25520
 msgid "Same as @code{disk-idle-ac} but on BAT mode."
 msgstr "Wie @code{disk-idle-ac}, aber für den BAT-Modus."
 
 #. type: deftypevr
-#: doc/guix.texi:22662
+#: doc/guix.texi:25522
 msgid "Defaults to @samp{2}."
 msgstr "Die Vorgabe ist @samp{2}."
 
 #. type: deftypevr
-#: doc/guix.texi:22665
+#: doc/guix.texi:25525
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} non-negative-integer max-lost-work-secs-on-ac"
 msgstr "{@code{tlp-configuration}-Parameter} Nichtnegative-ganze-Zahl max-lost-work-secs-on-ac"
 
 #. type: deftypevr
-#: doc/guix.texi:22667
+#: doc/guix.texi:25527
 msgid "Dirty pages flushing periodicity, expressed in seconds."
 msgstr "Periodizität, mit der im Zwischenspeicher geänderte Speicherseiten („Dirty Pages“) synchronisiert werden („Cache Flush“), ausgedrückt in Sekunden."
 
 #. type: deftypevr
-#: doc/guix.texi:22669 doc/guix.texi:22892 doc/guix.texi:24281
-#: doc/guix.texi:24289
+#: doc/guix.texi:25529 doc/guix.texi:25752 doc/guix.texi:27974
+#: doc/guix.texi:27982
 msgid "Defaults to @samp{15}."
 msgstr "Die Vorgabe ist @samp{15}."
 
 #. type: deftypevr
-#: doc/guix.texi:22672
+#: doc/guix.texi:25532
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} non-negative-integer max-lost-work-secs-on-bat"
 msgstr "{@code{tlp-configuration}-Parameter} Nichtnegative-ganze-Zahl max-lost-work-secs-on-bat"
 
 #. type: deftypevr
-#: doc/guix.texi:22674
+#: doc/guix.texi:25534
 msgid "Same as @code{max-lost-work-secs-on-ac} but on BAT mode."
 msgstr "Wie @code{max-lost-work-secs-on-ac}, aber für den BAT-Modus."
 
 #. type: deftypevr
-#: doc/guix.texi:22676
+#: doc/guix.texi:25536
 msgid "Defaults to @samp{60}."
 msgstr "Die Vorgabe ist @samp{60}."
 
 #. type: deftypevr
-#: doc/guix.texi:22679
+#: doc/guix.texi:25539
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-space-separated-string-list cpu-scaling-governor-on-ac"
 msgstr "{@code{tlp-configuration}-Parameter} Vielleicht-Leerzeichengetrennte-Zeichenketten-Liste cpu-scaling-governor-on-ac"
 
 #. type: deftypevr
-#: doc/guix.texi:22683
+#: doc/guix.texi:25543
 msgid "CPU frequency scaling governor on AC mode.  With intel_pstate driver, alternatives are powersave and performance.  With acpi-cpufreq driver, alternatives are ondemand, powersave, performance and conservative."
 msgstr "Regulator der Frequenzskalierung der CPUs („Frequency Scaling Governor“) im AC-Modus. Beim intel_pstate-Treiber stehen powersave (stromsparend) und performance (leistungsfähig) zur Auswahl. Beim acpi-cpufreq-Treiber stehen ondemand, powersave, performance und conservative zur Auswahl."
 
 #. type: deftypevr
-#: doc/guix.texi:22688
+#: doc/guix.texi:25548
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-space-separated-string-list cpu-scaling-governor-on-bat"
 msgstr "{@code{tlp-configuration}-Parameter} Vielleicht-Leerzeichengetrennte-Zeichenketten-Liste cpu-scaling-governor-on-bat"
 
 #. type: deftypevr
-#: doc/guix.texi:22690
+#: doc/guix.texi:25550
 msgid "Same as @code{cpu-scaling-governor-on-ac} but on BAT mode."
 msgstr "Wie @code{cpu-scaling-governor-on-ac}, aber für den BAT-Modus."
 
 #. type: deftypevr
-#: doc/guix.texi:22695
+#: doc/guix.texi:25555
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-scaling-min-freq-on-ac"
 msgstr "{@code{tlp-configuration}-Parameter} Vielleicht-Nichtnegative-ganze-Zahl cpu-scaling-min-freq-on-ac"
 
 #. type: deftypevr
-#: doc/guix.texi:22697
+#: doc/guix.texi:25557
 msgid "Set the min available frequency for the scaling governor on AC."
 msgstr "Legt die minimale verfügbare Frequenz für den Skalierungsregulator im AC-Modus fest."
 
 #. type: deftypevr
-#: doc/guix.texi:22702
+#: doc/guix.texi:25562
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-scaling-max-freq-on-ac"
 msgstr "{@code{tlp-configuration}-Parameter} Vielleicht-Nichtnegative-ganze-Zahl cpu-scaling-max-freq-on-ac"
 
 #. type: deftypevr
-#: doc/guix.texi:22704
+#: doc/guix.texi:25564
 msgid "Set the max available frequency for the scaling governor on AC."
 msgstr "Legt die maximale verfügbare Frequenz für den Skalierungsregulator im AC-Modus fest."
 
 #. type: deftypevr
-#: doc/guix.texi:22709
+#: doc/guix.texi:25569
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-scaling-min-freq-on-bat"
 msgstr "{@code{tlp-configuration}-Parameter} Vielleicht-Nichtnegative-ganze-Zahl cpu-scaling-min-freq-on-bat"
 
 #. type: deftypevr
-#: doc/guix.texi:22711
+#: doc/guix.texi:25571
 msgid "Set the min available frequency for the scaling governor on BAT."
 msgstr "Legt die minimale verfügbare Frequenz für den Skalierungsregulator im BAT-Modus fest."
 
 #. type: deftypevr
-#: doc/guix.texi:22716
+#: doc/guix.texi:25576
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-scaling-max-freq-on-bat"
 msgstr "{@code{tlp-configuration}-Parameter} Vielleicht-Nichtnegative-ganze-Zahl cpu-scaling-max-freq-on-bat"
 
 #. type: deftypevr
-#: doc/guix.texi:22718
+#: doc/guix.texi:25578
 msgid "Set the max available frequency for the scaling governor on BAT."
 msgstr "Legt die maximale verfügbare Frequenz für den Skalierungsregulator im BAT-Modus fest."
 
 #. type: deftypevr
-#: doc/guix.texi:22723
+#: doc/guix.texi:25583
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-min-perf-on-ac"
 msgstr "{@code{tlp-configuration}-Parameter} Vielleicht-Nichtnegative-ganze-Zahl cpu-min-perf-on-ac"
 
 #. type: deftypevr
-#: doc/guix.texi:22726
+#: doc/guix.texi:25586
 msgid "Limit the min P-state to control the power dissipation of the CPU, in AC mode.  Values are stated as a percentage of the available performance."
 msgstr "Beschränkt den minimalen Leistungszustand („P-State“), um die Stromverteilung („Power Dissipation“) der CPU im AC-Modus zu regulieren. Werte können als Prozentsatz bezüglich der verfügbaren Leistung angegeben werden."
 
 #. type: deftypevr
-#: doc/guix.texi:22731
+#: doc/guix.texi:25591
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-max-perf-on-ac"
 msgstr "{@code{tlp-configuration}-Parameter} Vielleicht-Nichtnegative-ganze-Zahl cpu-max-perf-on-ac"
 
 #. type: deftypevr
-#: doc/guix.texi:22734
+#: doc/guix.texi:25594
 msgid "Limit the max P-state to control the power dissipation of the CPU, in AC mode.  Values are stated as a percentage of the available performance."
 msgstr "Beschränkt den maximalen Leistungszustand („P-State“), um die Stromverteilung („Power Dissipation“) der CPU im AC-Modus zu regulieren. Werte können als Prozentsatz bezüglich der verfügbaren Leistung angegeben werden."
 
 #. type: deftypevr
-#: doc/guix.texi:22739
+#: doc/guix.texi:25599
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-min-perf-on-bat"
 msgstr "{@code{tlp-configuration}-Parameter} Vielleicht-Nichtnegative-ganze-Zahl cpu-min-perf-on-bat"
 
 #. type: deftypevr
-#: doc/guix.texi:22741
+#: doc/guix.texi:25601
 msgid "Same as @code{cpu-min-perf-on-ac} on BAT mode."
 msgstr "Wie @code{cpu-min-perf-on-ac} im BAT-Modus."
 
 #. type: deftypevr
-#: doc/guix.texi:22746
+#: doc/guix.texi:25606
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-max-perf-on-bat"
 msgstr "{@code{tlp-configuration}-Parameter} Vielleicht-Nichtnegative-ganze-Zahl cpu-max-perf-on-bat"
 
 #. type: deftypevr
-#: doc/guix.texi:22748
+#: doc/guix.texi:25608
 msgid "Same as @code{cpu-max-perf-on-ac} on BAT mode."
 msgstr "Wie @code{cpu-max-perf-on-ac} im BAT-Modus."
 
 #. type: deftypevr
-#: doc/guix.texi:22753
+#: doc/guix.texi:25613
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-boolean cpu-boost-on-ac?"
 msgstr "{@code{tlp-configuration}-Parameter} Vielleicht-Boolescher-Ausdruck cpu-boost-on-ac?"
 
 #. type: deftypevr
-#: doc/guix.texi:22755
+#: doc/guix.texi:25615
 msgid "Enable CPU turbo boost feature on AC mode."
 msgstr "Die CPU-Turbo-Boost-Funktionen im AC-Modus aktivieren."
 
 #. type: deftypevr
-#: doc/guix.texi:22760
+#: doc/guix.texi:25620
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-boolean cpu-boost-on-bat?"
 msgstr "{@code{tlp-configuration}-Parameter} Vielleicht-Boolescher-Ausdruck cpu-boost-on-bat?"
 
 #. type: deftypevr
-#: doc/guix.texi:22762
+#: doc/guix.texi:25622
 msgid "Same as @code{cpu-boost-on-ac?} on BAT mode."
 msgstr "Wie @code{cpu-boost-on-ac?} im BAT-Modus."
 
 #. type: deftypevr
-#: doc/guix.texi:22767
+#: doc/guix.texi:25627
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} boolean sched-powersave-on-ac?"
 msgstr "{@code{tlp-configuration}-Parameter} Boolescher-Ausdruck sched-powersave-on-ac?"
 
 #. type: deftypevr
-#: doc/guix.texi:22770
+#: doc/guix.texi:25630
 msgid "Allow Linux kernel to minimize the number of CPU cores/hyper-threads used under light load conditions."
 msgstr "Dem Linux-Kernel erlauben, die Anzahl benutzter CPU-Kerne und Hyperthreads anzupassen, wenn er unter leichter Last steht."
 
 #. type: deftypevr
-#: doc/guix.texi:22775
+#: doc/guix.texi:25635
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} boolean sched-powersave-on-bat?"
 msgstr "{@code{tlp-configuration}-Parameter} Boolescher-Ausdruck sched-powersave-on-bat?"
 
 #. type: deftypevr
-#: doc/guix.texi:22777
+#: doc/guix.texi:25637
 msgid "Same as @code{sched-powersave-on-ac?} but on BAT mode."
 msgstr "Wie @code{sched-powersave-on-ac?}, aber für den BAT-Modus."
 
 #. type: deftypevr
-#: doc/guix.texi:22782
+#: doc/guix.texi:25642
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} boolean nmi-watchdog?"
 msgstr "{@code{tlp-configuration}-Parameter} Boolescher-Ausdruck nmi-watchdog?"
 
 #. type: deftypevr
-#: doc/guix.texi:22784
+#: doc/guix.texi:25644
 msgid "Enable Linux kernel NMI watchdog."
 msgstr "Ob die rechtzeitige Behandlung nichtmaskierbarer Unterbrechungen durch den „NMI-Watchdog“ des Linux-Kernels überprüft werden soll."
 
 #. type: deftypevr
-#: doc/guix.texi:22789
+#: doc/guix.texi:25649
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-string phc-controls"
 msgstr "{@code{tlp-configuration}-Parameter} Vielleicht-Zeichenkette phc-controls"
 
 #. type: deftypevr
-#: doc/guix.texi:22792
+#: doc/guix.texi:25652
 msgid "For Linux kernels with PHC patch applied, change CPU voltages.  An example value would be @samp{\"F:V F:V F:V F:V\"}."
 msgstr "Auf Linux-Kernels, auf die der PHC-Patch angewandt wurde, wird hierdurch die Prozessorspannung angepasst. Ein Beispielwert wäre @samp{\"F:V F:V F:V F:V\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:22797
+#: doc/guix.texi:25657
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} string energy-perf-policy-on-ac"
 msgstr "{@code{tlp-configuration}-Parameter} Zeichenkette energy-perf-policy-on-ac"
 
 #. type: deftypevr
-#: doc/guix.texi:22800
+#: doc/guix.texi:25660
 msgid "Set CPU performance versus energy saving policy on AC.  Alternatives are performance, normal, powersave."
 msgstr "Legt das Verhältnis von Prozessorleistung zu Stromsparsamkeit im AC-Modus fest. Angegeben werden können performance (hohe Leistung), normal, powersave (wenig Stromverbrauch)."
 
 #. type: deftypevr
-#: doc/guix.texi:22802 doc/guix.texi:22900 doc/guix.texi:22930
+#: doc/guix.texi:25662 doc/guix.texi:25760 doc/guix.texi:25790
 msgid "Defaults to @samp{\"performance\"}."
 msgstr "Die Vorgabe ist @samp{\"performance\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:22805
+#: doc/guix.texi:25665
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} string energy-perf-policy-on-bat"
 msgstr "{@code{tlp-configuration}-Parameter} Zeichenkette energy-perf-policy-on-bat"
 
 #. type: deftypevr
-#: doc/guix.texi:22807
+#: doc/guix.texi:25667
 msgid "Same as @code{energy-perf-policy-ac} but on BAT mode."
 msgstr "Wie @code{energy-perf-policy-ac}, aber für den BAT-Modus."
 
 #. type: deftypevr
-#: doc/guix.texi:22809 doc/guix.texi:22907
+#: doc/guix.texi:25669 doc/guix.texi:25767
 msgid "Defaults to @samp{\"powersave\"}."
 msgstr "Die Vorgabe ist @samp{\"powersave\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:22812
+#: doc/guix.texi:25672
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} space-separated-string-list disks-devices"
 msgstr "{@code{tlp-configuration}-Parameter} Leerzeichengetrennte-Zeichenketten-Liste disks-devices"
 
 #. type: deftypevr
-#: doc/guix.texi:22814
+#: doc/guix.texi:25674
 msgid "Hard disk devices."
 msgstr "Festplattengeräte."
 
 #. type: deftypevr
-#: doc/guix.texi:22817
+#: doc/guix.texi:25677
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} space-separated-string-list disk-apm-level-on-ac"
 msgstr "{@code{tlp-configuration}-Parameter} Leerzeichengetrennte-Zeichenketten-Liste disk-apm-level-on-ac"
 
 #. type: deftypevr
-#: doc/guix.texi:22819
+#: doc/guix.texi:25679
 msgid "Hard disk advanced power management level."
 msgstr "Stufe für das „Advanced Power Management“ auf Festplatten."
 
 #. type: deftypevr
-#: doc/guix.texi:22822
+#: doc/guix.texi:25682
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} space-separated-string-list disk-apm-level-on-bat"
 msgstr "{@code{tlp-configuration}-Parameter} Leerzeichengetrennte-Zeichenketten-Liste disk-apm-level-on-bat"
 
 #. type: deftypevr
-#: doc/guix.texi:22824
+#: doc/guix.texi:25684
 msgid "Same as @code{disk-apm-bat} but on BAT mode."
 msgstr "Wie @code{disk-apm-bat}, aber für den BAT-Modus."
 
 #. type: deftypevr
-#: doc/guix.texi:22827
+#: doc/guix.texi:25687
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-space-separated-string-list disk-spindown-timeout-on-ac"
 msgstr "{@code{tlp-configuration}-Parameter} Vielleicht-Leerzeichengetrennte-Zeichenketten-Liste disk-spindown-timeout-on-ac"
 
 #. type: deftypevr
-#: doc/guix.texi:22830
+#: doc/guix.texi:25690
 msgid "Hard disk spin down timeout.  One value has to be specified for each declared hard disk."
 msgstr "Zeitspanne, bis die Festplatte inaktiv wird (ein „Spin-Down“). Für jede deklarierte Festplatte muss hier je ein Wert angegeben werden."
 
 #. type: deftypevr
-#: doc/guix.texi:22835
+#: doc/guix.texi:25695
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-space-separated-string-list disk-spindown-timeout-on-bat"
 msgstr "{@code{tlp-configuration}-Parameter} Vielleicht-Leerzeichengetrennte-Zeichenketten-Liste disk-spindown-timeout-on-bat"
 
 #. type: deftypevr
-#: doc/guix.texi:22837
+#: doc/guix.texi:25697
 msgid "Same as @code{disk-spindown-timeout-on-ac} but on BAT mode."
 msgstr "Wie @code{disk-spindown-timeout-on-ac}, aber für den BAT-Modus."
 
 #. type: deftypevr
-#: doc/guix.texi:22842
+#: doc/guix.texi:25702
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-space-separated-string-list disk-iosched"
 msgstr "{@code{tlp-configuration}-Parameter} Vielleicht-Leerzeichengetrennte-Zeichenketten-Liste disk-iosched"
 
 #. type: deftypevr
-#: doc/guix.texi:22846
+#: doc/guix.texi:25706
 msgid "Select IO scheduler for disk devices.  One value has to be specified for each declared hard disk.  Example alternatives are cfq, deadline and noop."
 msgstr "Ein-/Ausgaben-Planungsprogramm für Plattengeräte auswählen. Für jede deklarierte Festplatte muss ein Wert angegeben werden. Möglich sind zum Beispiel cfq, deadline und noop."
 
 #. type: deftypevr
-#: doc/guix.texi:22851
+#: doc/guix.texi:25711
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} string sata-linkpwr-on-ac"
 msgstr "{@code{tlp-configuration}-Parameter} Zeichenkette sata-linkpwr-on-ac"
 
 #. type: deftypevr
-#: doc/guix.texi:22854
+#: doc/guix.texi:25714
 msgid "SATA aggressive link power management (ALPM) level.  Alternatives are min_power, medium_power, max_performance."
 msgstr "Stufe des „Aggressive Link Power Management“ (ALPM) für SATA. Angegeben werden können min_power (wenigster Stromverbrauch), medium_power (mittlerer Stromverbrauch), max_performance (maximale Leistung)."
 
 #. type: deftypevr
-#: doc/guix.texi:22856
+#: doc/guix.texi:25716
 msgid "Defaults to @samp{\"max_performance\"}."
 msgstr "Die Vorgabe ist @samp{\"max_performance\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:22859
+#: doc/guix.texi:25719
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} string sata-linkpwr-on-bat"
 msgstr "{@code{tlp-configuration}-Parameter} Zeichenkette sata-linkpwr-on-bat"
 
 #. type: deftypevr
-#: doc/guix.texi:22861
+#: doc/guix.texi:25721
 msgid "Same as @code{sata-linkpwr-ac} but on BAT mode."
 msgstr "Wie @code{sata-linkpwr-ac}, aber für den BAT-Modus."
 
 #. type: deftypevr
-#: doc/guix.texi:22863
+#: doc/guix.texi:25723
 msgid "Defaults to @samp{\"min_power\"}."
 msgstr "Die Vorgabe ist @samp{\"min_power\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:22866
+#: doc/guix.texi:25726
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-string sata-linkpwr-blacklist"
 msgstr "{@code{tlp-configuration}-Parameter} Vielleicht-Zeichenkette sata-linkpwr-blacklist"
 
 #. type: deftypevr
-#: doc/guix.texi:22868
+#: doc/guix.texi:25728
 msgid "Exclude specified SATA host devices for link power management."
 msgstr "Bestimmte SATA-Geräte („SATA-Host-Devices“) vom Link Power Management ausschließen."
 
 #. type: deftypevr
-#: doc/guix.texi:22873
+#: doc/guix.texi:25733
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-on-off-boolean ahci-runtime-pm-on-ac?"
 msgstr "{@code{tlp-configuration}-Parameter} Vielleicht-An-Aus-Boolescher-Ausdruck ahci-runtime-pm-on-ac?"
 
 #. type: deftypevr
-#: doc/guix.texi:22876
+#: doc/guix.texi:25736
 msgid "Enable Runtime Power Management for AHCI controller and disks on AC mode."
 msgstr "Verwaltung des Stromverbrauchs zur Laufzeit für AHCI-Steuerungseinheiten („Controller“) und AHCI-Platten im AC-Modus aktivieren."
 
 #. type: deftypevr
-#: doc/guix.texi:22881
+#: doc/guix.texi:25741
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-on-off-boolean ahci-runtime-pm-on-bat?"
 msgstr "{@code{tlp-configuration}-Parameter} Vielleicht-An-Aus-Boolescher-Ausdruck ahci-runtime-pm-on-bat?"
 
 #. type: deftypevr
-#: doc/guix.texi:22883
+#: doc/guix.texi:25743
 msgid "Same as @code{ahci-runtime-pm-on-ac} on BAT mode."
 msgstr "Wie @code{ahci-runtime-pm-on-ac} im BAT-Modus."
 
 #. type: deftypevr
-#: doc/guix.texi:22888
+#: doc/guix.texi:25748
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} non-negative-integer ahci-runtime-pm-timeout"
 msgstr "{@code{tlp-configuration}-Parameter} Nichtnegative-ganze-Zahl ahci-runtime-pm-timeout"
 
 #. type: deftypevr
-#: doc/guix.texi:22890
+#: doc/guix.texi:25750
 msgid "Seconds of inactivity before disk is suspended."
-msgstr "Nach wievielen Sekunden der Inaktivität die Platten in den Ruhezustand gehen („Suspended“)."
+msgstr "Nach wie vielen Sekunden der Inaktivität die Platten in den Ruhezustand gehen („Suspended“)."
 
 #. type: deftypevr
-#: doc/guix.texi:22895
+#: doc/guix.texi:25755
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} string pcie-aspm-on-ac"
 msgstr "{@code{tlp-configuration}-Parameter} Zeichenkette pcie-aspm-on-ac"
 
 #. type: deftypevr
-#: doc/guix.texi:22898
+#: doc/guix.texi:25758
 msgid "PCI Express Active State Power Management level.  Alternatives are default, performance, powersave."
 msgstr "Stufe des „PCI Express Active State Power Management“. Zur Auswahl stehen default (Voreinstellung), performance (hohe Leistung), powersave (wenig Stromverbrauch)."
 
 #. type: deftypevr
-#: doc/guix.texi:22903
+#: doc/guix.texi:25763
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} string pcie-aspm-on-bat"
 msgstr "{@code{tlp-configuration}-Parameter} Zeichenkette pcie-aspm-on-bat"
 
 #. type: deftypevr
-#: doc/guix.texi:22905
+#: doc/guix.texi:25765
 msgid "Same as @code{pcie-aspm-ac} but on BAT mode."
 msgstr "Wie @code{pcie-aspm-ac}, aber für den BAT-Modus."
 
 #. type: deftypevr
-#: doc/guix.texi:22910
+#: doc/guix.texi:25770
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} string radeon-power-profile-on-ac"
 msgstr "{@code{tlp-configuration}-Parameter} Zeichenkette radeon-power-profile-on-ac"
 
 #. type: deftypevr
-#: doc/guix.texi:22913
+#: doc/guix.texi:25773
 msgid "Radeon graphics clock speed level.  Alternatives are low, mid, high, auto, default."
 msgstr "Taktgeschwindigkeitsstufe („Clock Speed Level“) für Radeon-Grafik. Zur Auswahl stehen low (niedrig), mid (mittel), high (hoch), auto (automatisch), default (Voreinstellung)."
 
 #. type: deftypevr
-#: doc/guix.texi:22915
+#: doc/guix.texi:25775
 msgid "Defaults to @samp{\"high\"}."
 msgstr "Die Vorgabe ist @samp{\"high\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:22918
+#: doc/guix.texi:25778
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} string radeon-power-profile-on-bat"
 msgstr "{@code{tlp-configuration}-Parameter} Zeichenkette radeon-power-profile-on-bat"
 
 #. type: deftypevr
-#: doc/guix.texi:22920
+#: doc/guix.texi:25780
 msgid "Same as @code{radeon-power-ac} but on BAT mode."
 msgstr "Wie @code{radeon-power-ac}, aber für den BAT-Modus."
 
 #. type: deftypevr
-#: doc/guix.texi:22922
+#: doc/guix.texi:25782
 msgid "Defaults to @samp{\"low\"}."
 msgstr "Die Vorgabe ist @samp{\"low\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:22925
+#: doc/guix.texi:25785
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} string radeon-dpm-state-on-ac"
 msgstr "{@code{tlp-configuration}-Parameter} Zeichenkette radeon-dpm-state-on-ac"
 
 #. type: deftypevr
-#: doc/guix.texi:22928
+#: doc/guix.texi:25788
 msgid "Radeon dynamic power management method (DPM).  Alternatives are battery, performance."
 msgstr "Methode für die dynamische Energieverwaltung („Dynamic Power Management“, DPM) auf Radeon. Zur Auswahl stehen battery (Batterie), performance (Leistung)."
 
 #. type: deftypevr
-#: doc/guix.texi:22933
+#: doc/guix.texi:25793
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} string radeon-dpm-state-on-bat"
 msgstr "{@code{tlp-configuration}-Parameter} Zeichenkette radeon-dpm-state-on-bat"
 
 #. type: deftypevr
-#: doc/guix.texi:22935
+#: doc/guix.texi:25795
 msgid "Same as @code{radeon-dpm-state-ac} but on BAT mode."
 msgstr "Wie @code{radeon-dpm-state-ac}, aber für den BAT-Modus."
 
 #. type: deftypevr
-#: doc/guix.texi:22937
+#: doc/guix.texi:25797
 msgid "Defaults to @samp{\"battery\"}."
 msgstr "Die Vorgabe ist @samp{\"battery\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:22940
+#: doc/guix.texi:25800
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} string radeon-dpm-perf-level-on-ac"
 msgstr "{@code{tlp-configuration}-Parameter} Zeichenkette radeon-dpm-perf-level-on-ac"
 
 #. type: deftypevr
-#: doc/guix.texi:22942
+#: doc/guix.texi:25802
 msgid "Radeon DPM performance level.  Alternatives are auto, low, high."
 msgstr "Leistungsstufe („Performance Level“) des Radeon-DPM. Zur Auswahl stehen auto (automatisch), low (niedrig), high (hoch)."
 
 #. type: deftypevr
-#: doc/guix.texi:22944 doc/guix.texi:22951 doc/guix.texi:23025
+#: doc/guix.texi:25804 doc/guix.texi:25811 doc/guix.texi:25885
 msgid "Defaults to @samp{\"auto\"}."
 msgstr "Die Voreinstellung ist @samp{\"auto\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:22947
+#: doc/guix.texi:25807
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} string radeon-dpm-perf-level-on-bat"
 msgstr "{@code{tlp-configuration}-Parameter} Zeichenkette radeon-dpm-perf-level-on-bat"
 
 #. type: deftypevr
-#: doc/guix.texi:22949
+#: doc/guix.texi:25809
 msgid "Same as @code{radeon-dpm-perf-ac} but on BAT mode."
 msgstr "Wie @code{radeon-dpm-perf-ac}, aber für den BAT-Modus."
 
 #. type: deftypevr
-#: doc/guix.texi:22954
+#: doc/guix.texi:25814
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} on-off-boolean wifi-pwr-on-ac?"
 msgstr "{@code{tlp-configuration}-Parameter} An-Aus-Boolescher-Ausdruck wifi-pwr-on-ac?"
 
 #. type: deftypevr
-#: doc/guix.texi:22956
+#: doc/guix.texi:25816
 msgid "Wifi power saving mode."
 msgstr "WLAN-Stromsparmodus."
 
 #. type: deftypevr
-#: doc/guix.texi:22961
+#: doc/guix.texi:25821
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} on-off-boolean wifi-pwr-on-bat?"
 msgstr "{@code{tlp-configuration}-Parameter} An-Aus-Boolescher-Ausdruck wifi-pwr-on-bat?"
 
 #. type: deftypevr
-#: doc/guix.texi:22963
+#: doc/guix.texi:25823
 msgid "Same as @code{wifi-power-ac?} but on BAT mode."
 msgstr "Wie @code{wifi-power-ac?}, aber für den BAT-Modus."
 
 #. type: deftypevr
-#: doc/guix.texi:22968
+#: doc/guix.texi:25828
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} y-n-boolean wol-disable?"
 msgstr "{@code{tlp-configuration}-Parameter} Ja-Nein-Boolescher-Ausdruck wol-disable?"
 
 #. type: deftypevr
-#: doc/guix.texi:22970
+#: doc/guix.texi:25830
 msgid "Disable wake on LAN."
 msgstr "Rechnerstart nach Netzwerkanforderung („Wake on LAN“) deaktivieren."
 
 #. type: deftypevr
-#: doc/guix.texi:22975
+#: doc/guix.texi:25835
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} non-negative-integer sound-power-save-on-ac"
 msgstr "{@code{tlp-configuration}-Parameter} Nichtnegative-ganze-Zahl sound-power-save-on-ac"
 
 #. type: deftypevr
-#: doc/guix.texi:22978
+#: doc/guix.texi:25838
 msgid "Timeout duration in seconds before activating audio power saving on Intel HDA and AC97 devices.  A value of 0 disables power saving."
-msgstr "Nach wievielen Sekunden der Stromsparmodus für die Audioverarbeitung auf Intel-HDA- und AC97-Geräten aktiviert wird. Ein Wert von 0 deaktiviert den Stromsparmodus."
+msgstr "Nach wie vielen Sekunden der Stromsparmodus für die Audioverarbeitung auf Intel-HDA- und AC97-Geräten aktiviert wird. Ein Wert von 0 deaktiviert den Stromsparmodus."
 
 #. type: deftypevr
-#: doc/guix.texi:22983
+#: doc/guix.texi:25843
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} non-negative-integer sound-power-save-on-bat"
 msgstr "{@code{tlp-configuration}-Parameter} Nichtnegative-ganze-Zahl sound-power-save-on-bat"
 
 #. type: deftypevr
-#: doc/guix.texi:22985
+#: doc/guix.texi:25845
 msgid "Same as @code{sound-powersave-ac} but on BAT mode."
 msgstr "Wie @code{sound-powersave-ac}, aber für den BAT-Modus."
 
 #. type: deftypevr
-#: doc/guix.texi:22990
+#: doc/guix.texi:25850
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} y-n-boolean sound-power-save-controller?"
 msgstr "{@code{tlp-configuration}-Parameter} Ja-Nein-Boolescher-Ausdruck sound-power-save-controller?"
 
 #. type: deftypevr
-#: doc/guix.texi:22992
+#: doc/guix.texi:25852
 msgid "Disable controller in powersaving mode on Intel HDA devices."
 msgstr "Steuerungseinheit („Controller“) im Stromsparmodus auf Intel-HDA-Geräten deaktivieren."
 
 #. type: deftypevr
-#: doc/guix.texi:22997
+#: doc/guix.texi:25857
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} boolean bay-poweroff-on-bat?"
 msgstr "{@code{tlp-configuration}-Parameter} Boolescher-Ausdruck bay-poweroff-on-bat?"
 
 #. type: deftypevr
-#: doc/guix.texi:23001
+#: doc/guix.texi:25861
 msgid "Enable optical drive in UltraBay/MediaBay on BAT mode.  Drive can be powered on again by releasing (and reinserting) the eject lever or by pressing the disc eject button on newer models."
 msgstr "Optisches Laufwerk in einer UltraBay/MediaBay im BAT-Modus aktivieren. Laufwerke können erneut gestartet werden, indem Sie den Hebel zum Auswerfen lösen (und wieder einsetzen) oder, auf neueren Modellen, indem Sie den Knopf zum Auswerfen des eingelegten Datenträgers drücken."
 
 #. type: deftypevr
-#: doc/guix.texi:23006
+#: doc/guix.texi:25866
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} string bay-device"
 msgstr "{@code{tlp-configuration}-Parameter} Zeichenkette bay-device"
 
 #. type: deftypevr
-#: doc/guix.texi:23008
+#: doc/guix.texi:25868
 msgid "Name of the optical drive device to power off."
 msgstr "Name des Geräts für das optische Laufwerk, das gestartet werden soll."
 
 #. type: deftypevr
-#: doc/guix.texi:23010
+#: doc/guix.texi:25870
 msgid "Defaults to @samp{\"sr0\"}."
 msgstr "Die Vorgabe ist @samp{\"sr0\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:23013
+#: doc/guix.texi:25873
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} string runtime-pm-on-ac"
 msgstr "{@code{tlp-configuration}-Parameter} Zeichenkette runtime-pm-on-ac"
 
 #. type: deftypevr
-#: doc/guix.texi:23016
+#: doc/guix.texi:25876
 msgid "Runtime Power Management for PCI(e) bus devices.  Alternatives are on and auto."
 msgstr "Laufzeitenergieverwaltung („Runtime Power Management“) von PCI(e)-Bus-Geräten. Zur Auswahl stehen on (angeschaltet) und auto (automatisch)."
 
 #. type: deftypevr
-#: doc/guix.texi:23018
+#: doc/guix.texi:25878
 msgid "Defaults to @samp{\"on\"}."
 msgstr "Die Vorgabe ist @samp{\"on\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:23021
+#: doc/guix.texi:25881
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} string runtime-pm-on-bat"
 msgstr "{@code{tlp-configuration}-Parameter} Zeichenkette runtime-pm-on-bat"
 
 #. type: deftypevr
-#: doc/guix.texi:23023
+#: doc/guix.texi:25883
 msgid "Same as @code{runtime-pm-ac} but on BAT mode."
 msgstr "Wie @code{runtime-pm-ac}, aber für den BAT-Modus."
 
 #. type: deftypevr
-#: doc/guix.texi:23028
+#: doc/guix.texi:25888
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} boolean runtime-pm-all?"
 msgstr "{@code{tlp-configuration}-Parameter} Boolescher-Ausdruck runtime-pm-all?"
 
 # TODO This option does not seem to exist anymore.
 #. type: deftypevr
-#: doc/guix.texi:23031
+#: doc/guix.texi:25891
 msgid "Runtime Power Management for all PCI(e) bus devices, except blacklisted ones."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23036
+#: doc/guix.texi:25896
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-space-separated-string-list runtime-pm-blacklist"
 msgstr "{@code{tlp-configuration}-Parameter} Vielleicht-Leerzeichengetrennte-Zeichenketten-Liste runtime-pm-blacklist"
 
 #. type: deftypevr
-#: doc/guix.texi:23038
+#: doc/guix.texi:25898
 msgid "Exclude specified PCI(e) device addresses from Runtime Power Management."
 msgstr "Die angegebenen PCI(e)-Geräteadressen von der Laufzeitenergieverwaltung („Runtime Power Management“) ausnehmen."
 
 #. type: deftypevr
-#: doc/guix.texi:23043
+#: doc/guix.texi:25903
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} space-separated-string-list runtime-pm-driver-blacklist"
 msgstr "{@code{tlp-configuration}-Parameter} Leerzeichengetrennte-Zeichenketten-Liste runtime-pm-driver-blacklist"
 
 #. type: deftypevr
-#: doc/guix.texi:23046
+#: doc/guix.texi:25906
 msgid "Exclude PCI(e) devices assigned to the specified drivers from Runtime Power Management."
 msgstr "PCI(e)-Geräte von der Laufzeitenergieverwaltung („Runtime Power Management“) ausnehmen, wenn sie den angegebenen Treibern zugeordnet sind."
 
 #. type: deftypevr
-#: doc/guix.texi:23049
+#: doc/guix.texi:25909
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} boolean usb-autosuspend?"
 msgstr "{@code{tlp-configuration}-Parameter} Boolescher-Ausdruck usb-autosuspend?"
 
 #. type: deftypevr
-#: doc/guix.texi:23051
+#: doc/guix.texi:25911
 msgid "Enable USB autosuspend feature."
 msgstr "USB-Geräte automatisch in den Ruhezustand versetzen („USB-Autosuspend“)."
 
 #. type: deftypevr
-#: doc/guix.texi:23056
+#: doc/guix.texi:25916
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-string usb-blacklist"
 msgstr "{@code{tlp-configuration}-Parameter} Vielleicht-Zeichenkette usb-blacklist"
 
 #. type: deftypevr
-#: doc/guix.texi:23058
+#: doc/guix.texi:25918
 msgid "Exclude specified devices from USB autosuspend."
 msgstr "Die angegebenen Geräte vom USB-Autosuspend ausnehmen."
 
 #. type: deftypevr
-#: doc/guix.texi:23063
+#: doc/guix.texi:25923
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} boolean usb-blacklist-wwan?"
 msgstr "{@code{tlp-configuration}-Parameter} Boolescher-Ausdruck usb-blacklist-wwan?"
 
 #. type: deftypevr
-#: doc/guix.texi:23065
+#: doc/guix.texi:25925
 msgid "Exclude WWAN devices from USB autosuspend."
 msgstr "WWAN-Geräte vom USB-Autosuspend ausnehmen."
 
 #. type: deftypevr
-#: doc/guix.texi:23070
+#: doc/guix.texi:25930
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-string usb-whitelist"
 msgstr "{@code{tlp-configuration}-Parameter} Vielleicht-Zeichenkette usb-whitelist"
 
 #. type: deftypevr
-#: doc/guix.texi:23073
+#: doc/guix.texi:25933
 msgid "Include specified devices into USB autosuspend, even if they are already excluded by the driver or via @code{usb-blacklist-wwan?}."
 msgstr "Für die angegebenen Geräte USB-Autosuspend aktivieren, selbst wenn Autosuspend durch den Treiber oder wegen @code{usb-blacklist-wwan?} deaktiviert werden würde."
 
 #. type: deftypevr
-#: doc/guix.texi:23078
+#: doc/guix.texi:25938
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-boolean usb-autosuspend-disable-on-shutdown?"
 msgstr "{@code{tlp-configuration}-Parameter} Vielleicht-Boolescher-Ausdruck usb-autosuspend-disable-on-shutdown?"
 
 #. type: deftypevr
-#: doc/guix.texi:23080
+#: doc/guix.texi:25940
 msgid "Enable USB autosuspend before shutdown."
 msgstr "USB-Autosuspend vor dem Herunterfahren aktivieren."
 
 #. type: deftypevr
-#: doc/guix.texi:23085
+#: doc/guix.texi:25945
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} boolean restore-device-state-on-startup?"
 msgstr "{@code{tlp-configuration}-Parameter} Boolescher-Ausdruck restore-device-state-on-startup?"
 
 #. type: deftypevr
-#: doc/guix.texi:23088
+#: doc/guix.texi:25948
 msgid "Restore radio device state (bluetooth, wifi, wwan) from previous shutdown on system startup."
 msgstr "Zustand von funkfähigen Geräten (Bluetooth, WLAN, WWAN) vom letzten Herunterfahren beim Hochfahren des Systems wiederherstellen."
 
 #. type: cindex
-#: doc/guix.texi:23093
+#: doc/guix.texi:25953
 #, no-wrap
 msgid "thermald"
 msgstr "thermald"
 
 #. type: cindex
-#: doc/guix.texi:23094
+#: doc/guix.texi:25954
 #, no-wrap
 msgid "CPU frequency scaling with thermald"
 msgstr "CPU-Frequenzskalierung mit Thermald"
 
 #. type: subsubheading
-#: doc/guix.texi:23095
+#: doc/guix.texi:25955
 #, no-wrap
 msgid "Thermald daemon"
 msgstr "Thermald-Daemon"
 
 #. type: Plain text
-#: doc/guix.texi:23099
+#: doc/guix.texi:25959
 msgid "The @code{(gnu services pm)} module provides an interface to thermald, a CPU frequency scaling service which helps prevent overheating."
 msgstr "Das Modul @code{(gnu services pm)} stellt eine Schnittstelle zu Thermald zur Verfügung, einem Dienst zur CPU-Frequenzskalierung („CPU Frequency Scaling“), mit dem Überhitzung verhindert wird."
 
 #. type: defvr
-#: doc/guix.texi:23100
+#: doc/guix.texi:25960
 #, no-wrap
 msgid "{Scheme Variable} thermald-service-type"
 msgstr "{Scheme-Variable} thermald-service-type"
 
 #. type: defvr
-#: doc/guix.texi:23105
+#: doc/guix.texi:25965
 msgid "This is the service type for @uref{https://01.org/linux-thermal-daemon/, thermald}, the Linux Thermal Daemon, which is responsible for controlling the thermal state of processors and preventing overheating."
 msgstr "Dies ist der Diensttyp für @uref{https://01.org/linux-thermal-daemon/, Thermald}, den @dfn{Linux Thermal Daemon}, der für die Hitzeregulierung von Prozessoren zuständig ist. Er ändert deren thermischen Zustand („Thermal State“) und verhindert, dass sie überhitzen."
 
 #. type: deftp
-#: doc/guix.texi:23107
+#: doc/guix.texi:25967
 #, no-wrap
 msgid "{Data Type} thermald-configuration"
 msgstr "{Datentyp} thermald-configuration"
 
 #. type: deftp
-#: doc/guix.texi:23109
+#: doc/guix.texi:25969
 msgid "Data type representing the configuration of @code{thermald-service-type}."
 msgstr "Datentyp, der die Konfiguration des @code{thermald-service-type} repräsentiert."
 
 #. type: item
-#: doc/guix.texi:23111
+#: doc/guix.texi:25971
 #, no-wrap
 msgid "@code{ignore-cpuid-check?} (default: @code{#f})"
 msgstr "@code{ignore-cpuid-check?} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:23113
+#: doc/guix.texi:25973
 msgid "Ignore cpuid check for supported CPU models."
 msgstr "Ergebnis der Prüfung per CPUID auf unterstützte Prozessormodelle ignorieren."
 
 #. type: item
-#: doc/guix.texi:23114
+#: doc/guix.texi:25974
 #, no-wrap
 msgid "@code{thermald} (default: @var{thermald})"
 msgstr "@code{thermald} (Vorgabe: @var{thermald})"
 
 #. type: table
-#: doc/guix.texi:23116
+#: doc/guix.texi:25976
 msgid "Package object of thermald."
 msgstr "Paketobjekt von thermald."
 
 #. type: Plain text
-#: doc/guix.texi:23125
+#: doc/guix.texi:25985
 msgid "The @code{(gnu services audio)} module provides a service to start MPD (the Music Player Daemon)."
 msgstr "Das Modul @code{(gnu services audio)} stellt einen Dienst zur Verfügung, um MPD (den Music Player Daemon) zu starten."
 
 #. type: cindex
-#: doc/guix.texi:23126
+#: doc/guix.texi:25986
 #, no-wrap
 msgid "mpd"
 msgstr "mpd"
 
 #. type: subsubheading
-#: doc/guix.texi:23127
+#: doc/guix.texi:25987
 #, no-wrap
 msgid "Music Player Daemon"
 msgstr "Music Player Daemon"
 
 #. type: Plain text
-#: doc/guix.texi:23132
+#: doc/guix.texi:25992
 msgid "The Music Player Daemon (MPD) is a service that can play music while being controlled from the local machine or over the network by a variety of clients."
 msgstr "Der Music Player Daemon (MPD) ist ein Dienst, der Musik abspielen kann und der dabei vom lokalen Rechner oder über das Netzwerk durch verschiedene Clients angesteuert werden kann."
 
 #. type: Plain text
-#: doc/guix.texi:23135
+#: doc/guix.texi:25995
 msgid "The following example shows how one might run @code{mpd} as user @code{\"bob\"} on port @code{6666}.  It uses pulseaudio for output."
 msgstr "Das folgende Beispiel zeigt, wie man @code{mpd} als Benutzer @code{\"bob\"} auf Port @code{6666} ausführen könnte. Dabei wird Pulseaudio zur Ausgabe verwendet."
 
 #. type: lisp
-#: doc/guix.texi:23141
+#: doc/guix.texi:26001
 #, no-wrap
 msgid ""
 "(service mpd-service-type\n"
@@ -43736,221 +48702,215 @@ msgstr ""
 "          (port \"6666\")))\n"
 
 #. type: defvr
-#: doc/guix.texi:23143
+#: doc/guix.texi:26003
 #, no-wrap
 msgid "{Scheme Variable} mpd-service-type"
 msgstr "{Scheme-Variable} mpd-service-type"
 
 #. type: defvr
-#: doc/guix.texi:23145
+#: doc/guix.texi:26005
 msgid "The service type for @command{mpd}"
 msgstr "Der Diensttyp für @command{mpd}."
 
 #. type: deftp
-#: doc/guix.texi:23147
+#: doc/guix.texi:26007
 #, no-wrap
 msgid "{Data Type} mpd-configuration"
 msgstr "{Datentyp} mpd-configuration"
 
 #. type: deftp
-#: doc/guix.texi:23149
+#: doc/guix.texi:26009
 msgid "Data type representing the configuration of @command{mpd}."
 msgstr "Datentyp, der die Konfiguration von @command{mpd} repräsentiert."
 
 #. type: item
-#: doc/guix.texi:23151
+#: doc/guix.texi:26011
 #, no-wrap
 msgid "@code{user} (default: @code{\"mpd\"})"
 msgstr "@code{user} (Vorgabe: @code{\"mpd\"})"
 
 #. type: table
-#: doc/guix.texi:23153
+#: doc/guix.texi:26013
 msgid "The user to run mpd as."
 msgstr "Das Benutzerkonto, mit dem mpd ausgeführt wird."
 
 #. type: item
-#: doc/guix.texi:23154
+#: doc/guix.texi:26014
 #, no-wrap
 msgid "@code{music-dir} (default: @code{\"~/Music\"})"
 msgstr "@code{music-dir} (Vorgabe: @code{\"~/Music\"})"
 
 #. type: table
-#: doc/guix.texi:23156
+#: doc/guix.texi:26016
 msgid "The directory to scan for music files."
 msgstr "Das Verzeichis, in dem nach Musikdateien gesucht wird."
 
 #. type: item
-#: doc/guix.texi:23157
+#: doc/guix.texi:26017
 #, no-wrap
 msgid "@code{playlist-dir} (default: @code{\"~/.mpd/playlists\"})"
 msgstr "@code{playlist-dir} (Vorgabe: @code{\"~/.mpd/playlists\"})"
 
 #. type: table
-#: doc/guix.texi:23159
+#: doc/guix.texi:26019
 msgid "The directory to store playlists."
 msgstr "Das Verzeichnis, um Wiedergabelisten („Playlists“) zu speichern."
 
 #. type: item
-#: doc/guix.texi:23160
+#: doc/guix.texi:26020
 #, no-wrap
 msgid "@code{db-file} (default: @code{\"~/.mpd/tag_cache\"})"
 msgstr "@code{db-file} (Vorgabe: @code{\"~/.mpd/tag_cache\"})"
 
 #. type: table
-#: doc/guix.texi:23162
+#: doc/guix.texi:26022
 msgid "The location of the music database."
 msgstr "Der Ort, an dem die Musikdatenbank gespeichert wird."
 
 #. type: item
-#: doc/guix.texi:23163
+#: doc/guix.texi:26023
 #, no-wrap
 msgid "@code{state-file} (default: @code{\"~/.mpd/state\"})"
 msgstr "@code{state-file} (Vorgabe: @code{\"~/.mpd/state\"})"
 
 #. type: table
-#: doc/guix.texi:23165
+#: doc/guix.texi:26025
 msgid "The location of the file that stores current MPD's state."
 msgstr "Der Ort, an dem die Datei mit dem aktuellen Zustand von MPD gespeichert wird."
 
 #. type: item
-#: doc/guix.texi:23166
+#: doc/guix.texi:26026
 #, no-wrap
 msgid "@code{sticker-file} (default: @code{\"~/.mpd/sticker.sql\"})"
 msgstr "@code{sticker-file} (Vorgabe: @code{\"~/.mpd/sticker.sql\"})"
 
 #. type: table
-#: doc/guix.texi:23168
+#: doc/guix.texi:26028
 msgid "The location of the sticker database."
 msgstr "Der Ort, an dem die Sticker-Datenbank gespeichert wird."
 
 #. type: item
-#: doc/guix.texi:23169
+#: doc/guix.texi:26029
 #, no-wrap
 msgid "@code{port} (default: @code{\"6600\"})"
 msgstr "@code{port} (Vorgabe: @code{\"6600\"})"
 
 #. type: table
-#: doc/guix.texi:23171
+#: doc/guix.texi:26031
 msgid "The port to run mpd on."
 msgstr "Der Port, auf dem mpd ausgeführt wird."
 
 #. type: item
-#: doc/guix.texi:23172
+#: doc/guix.texi:26032
 #, no-wrap
 msgid "@code{address} (default: @code{\"any\"})"
 msgstr "@code{address} (Vorgabe: @code{\"any\"})"
 
 #. type: table
-#: doc/guix.texi:23175
+#: doc/guix.texi:26035
 msgid "The address that mpd will bind to.  To use a Unix domain socket, an absolute path can be specified here."
 msgstr "Die Adresse, an die sich mpd binden wird. Um einen Unix-Socket zu benutzen, kann hier ein absoluter Pfad angegeben werden."
 
 #. type: item
-#: doc/guix.texi:23176
+#: doc/guix.texi:26036
 #, no-wrap
 msgid "@code{outputs} (default: @code{\"(list (mpd-output))\"})"
 msgstr "@code{outputs} (Vorgabe: @code{\"(list (mpd-output))\"})"
 
 #. type: table
-#: doc/guix.texi:23178
+#: doc/guix.texi:26038
 msgid "The audio outputs that MPD can use.  By default this is a single output using pulseaudio."
 msgstr "Welche Tonausgaben MPD benutzen kann. Vorgegeben ist eine einzelne Ausgabe, die Pulseaudio benutzt."
 
 #. type: deftp
-#: doc/guix.texi:23182
+#: doc/guix.texi:26042
 #, no-wrap
 msgid "{Data Type} mpd-output"
 msgstr "{Datentyp} mpd-output"
 
 #. type: deftp
-#: doc/guix.texi:23184
+#: doc/guix.texi:26044
 msgid "Data type representing an @command{mpd} audio output."
 msgstr "Datentyp, der eine Tonausgabe von @command{mpd} repräsentiert."
 
 #. type: item
-#: doc/guix.texi:23186
+#: doc/guix.texi:26046
 #, no-wrap
 msgid "@code{name} (default: @code{\"MPD\"})"
 msgstr "@code{name} (Vorgabe: @code{\"MPD\"})"
 
 #. type: table
-#: doc/guix.texi:23188
+#: doc/guix.texi:26048
 msgid "The name of the audio output."
 msgstr "Der Name der Tonausgabe."
 
 #. type: item
-#: doc/guix.texi:23189
+#: doc/guix.texi:26049
 #, no-wrap
 msgid "@code{type} (default: @code{\"pulse\"})"
 msgstr "@code{type} (Vorgabe: @code{\"pulse\"})"
 
 #. type: table
-#: doc/guix.texi:23191
+#: doc/guix.texi:26051
 msgid "The type of audio output."
 msgstr "Der Typ der Tonausgabe."
 
 #. type: item
-#: doc/guix.texi:23192
+#: doc/guix.texi:26052
 #, no-wrap
 msgid "@code{enabled?} (default: @code{#t})"
 msgstr "@code{enabled?} (Vorgabe: @code{#t})"
 
 #. type: table
-#: doc/guix.texi:23197
+#: doc/guix.texi:26057
 msgid "Specifies whether this audio output is enabled when MPD is started.  By default, all audio outputs are enabled.  This is just the default setting when there is no state file; with a state file, the previous state is restored."
 msgstr "Gibt an, ob diese Tonausgabe aktiviert sein soll, wenn MPD gestartet wird. Vorgegeben ist, alle Tonausgaben zu aktivieren. Das entspricht der Voreinstellung, wenn keine Zustandsdatei existiert; mit Zustandsdatei wird der Zustand von früher wiederhergestellt."
 
 #. type: item
-#: doc/guix.texi:23198
+#: doc/guix.texi:26058
 #, no-wrap
 msgid "@code{tags?} (default: @code{#t})"
 msgstr "@code{tags?} (Vorgabe: @code{#t})"
 
 #. type: table
-#: doc/guix.texi:23202
+#: doc/guix.texi:26062
 msgid "If set to @code{#f}, then MPD will not send tags to this output.  This is only useful for output plugins that can receive tags, for example the @code{httpd} output plugin."
 msgstr "Wenn es auf @code{#f} steht, sendet MPD keine Tags an diese Ausgabe. Dies wird nur berücksichtigt, wenn das Ausgabe-Plugin Tags empfangen kann, wie beim @code{httpd}-Ausgabe-Plugin."
 
 #. type: item
-#: doc/guix.texi:23203
+#: doc/guix.texi:26063
 #, no-wrap
 msgid "@code{always-on?} (default: @code{#f})"
 msgstr "@code{always-on?} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:23207
+#: doc/guix.texi:26067
 msgid "If set to @code{#t}, then MPD attempts to keep this audio output always open. This may be useful for streaming servers, when you don’t want to disconnect all listeners even when playback is accidentally stopped."
 msgstr "Wenn es auf @code{#t} steht, versucht MPD, diese Tonausgabe immer offen zu lassen. Das kann bei Streaming-Servern helfen, wo man @emph{nicht} will, dass die Verbindung zu allen Zuhörern abbricht, nur weil das Abspielen aus irgendeinem Grund angehalten wurde."
 
 #. type: code{#1}
-#: doc/guix.texi:23208
+#: doc/guix.texi:26068
 #, no-wrap
 msgid "mixer-type"
 msgstr "mixer-type"
 
 #. type: table
-#: doc/guix.texi:23214
+#: doc/guix.texi:26074
 msgid "This field accepts a symbol that specifies which mixer should be used for this audio output: the @code{hardware} mixer, the @code{software} mixer, the @code{null} mixer (allows setting the volume, but with no effect; this can be used as a trick to implement an external mixer External Mixer) or no mixer (@code{none})."
 msgstr "Für dieses Feld wird ein Symbol akzeptiert, das das für diese Tonausgabe zu benutzende Mischpult („Mixer“) bezeichnet. Zur Wahl stehen das @code{hardware}-Mischpult, das @code{software}-Mischpult, das @code{null}-Mischpult oder kein Mischpult (@code{none}). Mit dem @code{null}-Mischpult kann die Lautstärke eingestellt werden, aber ohne Auswirkung; das kann als Trick benutzt werden, um ein externes Mischpult zu implementieren."
 
-#. type: item
-#: doc/guix.texi:23215
-#, no-wrap
-msgid "@code{extra-options} (default: @code{'()\"})"
-msgstr "@code{extra-options} (Vorgabe: @code{'()})"
-
 #. type: table
-#: doc/guix.texi:23218
+#: doc/guix.texi:26078
 msgid "An association list of option symbols to string values to be appended to the audio output configuration."
 msgstr "Eine assoziative Liste, die Optionssymbole auf Zeichenketten abbildet. Sie wird an die Tonausgabenkonfiguration angehängt."
 
 #. type: Plain text
-#: doc/guix.texi:23224
+#: doc/guix.texi:26084
 msgid "The following example shows a configuration of @code{mpd} that provides an HTTP audio streaming output."
 msgstr "Das folgende Beispiel zeigt eine Konfiguration von @code{mpd}, die eine HTTP-Audiostreaming-Tonausgabe anbietet."
 
 #. type: lisp
-#: doc/guix.texi:23236
+#: doc/guix.texi:26096
 #, no-wrap
 msgid ""
 "(service mpd-service-type\n"
@@ -43975,41 +48935,35 @@ msgstr ""
 "                      `((encoder . \"vorbis\")\n"
 "                        (port    . \"8080\"))))))))\n"
 
-#. type: subsection
-#: doc/guix.texi:23240
-#, no-wrap
-msgid "Virtualization services"
-msgstr "Virtualisierungsdienste"
-
 #. type: Plain text
-#: doc/guix.texi:23245
+#: doc/guix.texi:26105
 msgid "The @code{(gnu services virtualization)} module provides services for the libvirt and virtlog daemons, as well as other virtualization-related services."
 msgstr "Das Modul @code{(gnu services virtualization)} bietet Dienste für die Daemons von libvirt und virtlog, sowie andere virtualisierungsbezogene Dienste."
 
 #. type: subsubheading
-#: doc/guix.texi:23246
+#: doc/guix.texi:26106
 #, no-wrap
 msgid "Libvirt daemon"
 msgstr "Libvirt-Daemon"
 
 #. type: Plain text
-#: doc/guix.texi:23250
+#: doc/guix.texi:26111
 msgid "@code{libvirtd} is the server side daemon component of the libvirt virtualization management system. This daemon runs on host servers and performs required management tasks for virtualized guests."
 msgstr "@code{libvirtd} ist die serverseitige Daemon-Komponente des libvirt-Systems zur Virtualisierungsverwaltung. Dieser Daemon läuft auf als Wirt dienenden Servern und führt anfallende Verwaltungsaufgaben für virtualisierte Gäste durch."
 
 #. type: deffn
-#: doc/guix.texi:23251
+#: doc/guix.texi:26112
 #, no-wrap
 msgid "{Scheme Variable} libvirt-service-type"
 msgstr "{Scheme-Variable} libvirt-service-type"
 
 #. type: deffn
-#: doc/guix.texi:23254
+#: doc/guix.texi:26115
 msgid "This is the type of the @uref{https://libvirt.org, libvirt daemon}.  Its value must be a @code{libvirt-configuration}."
 msgstr "Dies ist der Diensttyp des @uref{https://libvirt.org, libvirt-Daemons}. Sein Wert muss ein @code{libvirt-configuration}-Verbundsobjekt sein."
 
 #. type: lisp
-#: doc/guix.texi:23260
+#: doc/guix.texi:26121
 #, no-wrap
 msgid ""
 "(service libvirt-service-type\n"
@@ -44023,874 +48977,874 @@ msgstr ""
 "          (tls-port \"16555\")))\n"
 
 #. type: Plain text
-#: doc/guix.texi:23265
+#: doc/guix.texi:26126
 msgid "Available @code{libvirt-configuration} fields are:"
 msgstr "Verfügbare @code{libvirt-configuration}-Felder sind:"
 
 #. type: deftypevr
-#: doc/guix.texi:23266
+#: doc/guix.texi:26127
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} package libvirt"
 msgstr "{@code{libvirt-configuration}-Parameter} „package“ libvirt"
 
 #. type: deftypevr
-#: doc/guix.texi:23268
+#: doc/guix.texi:26129
 msgid "Libvirt package."
 msgstr "Libvirt-Paket."
 
 #. type: deftypevr
-#: doc/guix.texi:23271
+#: doc/guix.texi:26132
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} boolean listen-tls?"
 msgstr "{@code{libvirt-configuration}-Parameter} Boolescher-Ausdruck listen-tls?"
 
 #. type: deftypevr
-#: doc/guix.texi:23274
-msgid "Flag listening for secure TLS connections on the public TCP/IP port.  must set @code{listen} for this to have any effect."
+#: doc/guix.texi:26135
+msgid "Flag listening for secure TLS connections on the public TCP/IP port.  You must set @code{listen} for this to have any effect."
 msgstr "Option zum Lauschen auf sichere TLS-Verbindungen über den öffentlichen TCP/IP-Port. @code{listen} muss gesetzt sein, damit dies eine Wirkung hat."
 
 #. type: deftypevr
-#: doc/guix.texi:23277
+#: doc/guix.texi:26138
 msgid "It is necessary to setup a CA and issue server certificates before using this capability."
 msgstr "Bevor Sie diese Funktionalität nutzen können, muss eine Zertifikatsautorität eingerichtet worden sein und Server-Zertifikate ausgestellt worden sein."
 
 #. type: deftypevr
-#: doc/guix.texi:23282
+#: doc/guix.texi:26143
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} boolean listen-tcp?"
 msgstr "{@code{libvirt-configuration}-Parameter} Boolescher-Ausdruck listen-tcp?"
 
 #. type: deftypevr
-#: doc/guix.texi:23285
-msgid "Listen for unencrypted TCP connections on the public TCP/IP port.  must set @code{listen} for this to have any effect."
+#: doc/guix.texi:26146
+msgid "Listen for unencrypted TCP connections on the public TCP/IP port.  You must set @code{listen} for this to have any effect."
 msgstr "Auf unverschlüsselte TCP-Verbindungen auf dem öffentlichen TCP/IP-Port lauschen. @code{listen} muss gesetzt sein, damit dies eine Wirkung hat."
 
 #. type: deftypevr
-#: doc/guix.texi:23289
-msgid "Using the TCP socket requires SASL authentication by default.  Only SASL mechanisms which support data encryption are allowed.  This is DIGEST_MD5 and GSSAPI (Kerberos5)"
-msgstr "Nach Voreinstellung kann auf dem TCP-Socket nur gelauscht werden, wenn SASL-Authentifizierung möglich ist. Nur solche SASL-Mechanismen, die Datenverschlüsselung unterstützen, sind zugelassen. Das sind DIGEST_MD5 und GSSAPI (Kerberos5)"
+#: doc/guix.texi:26150
+msgid "Using the TCP socket requires SASL authentication by default.  Only SASL mechanisms which support data encryption are allowed.  This is DIGEST_MD5 and GSSAPI (Kerberos5)."
+msgstr "Nach Voreinstellung kann auf dem TCP-Socket nur gelauscht werden, wenn SASL-Authentifizierung möglich ist. Nur solche SASL-Mechanismen, die Datenverschlüsselung unterstützen, sind zugelassen. Das sind DIGEST_MD5 und GSSAPI (Kerberos5)."
 
 #. type: deftypevr
-#: doc/guix.texi:23294
+#: doc/guix.texi:26155
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string tls-port"
 msgstr "{@code{libvirt-configuration}-Parameter} Zeichenkette tls-port"
 
 #. type: deftypevr
-#: doc/guix.texi:23297
-msgid "Port for accepting secure TLS connections This can be a port number, or service name"
+#: doc/guix.texi:26158
+msgid "Port for accepting secure TLS connections.  This can be a port number, or service name."
 msgstr "Der Port, um sichere TLS-Verbindungen zu akzeptieren. Dies kann eine Portnummer oder ein Dienstname sein."
 
 #. type: deftypevr
-#: doc/guix.texi:23299
+#: doc/guix.texi:26160
 msgid "Defaults to @samp{\"16514\"}."
 msgstr "Die Vorgabe ist @samp{\"16514\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:23302
+#: doc/guix.texi:26163
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string tcp-port"
 msgstr "{@code{libvirt-configuration}-Parameter} Zeichenkette tcp-port"
 
 #. type: deftypevr
-#: doc/guix.texi:23305
-msgid "Port for accepting insecure TCP connections This can be a port number, or service name"
+#: doc/guix.texi:26166
+msgid "Port for accepting insecure TCP connections.  This can be a port number, or service name."
 msgstr "Der Port, um unsichere TCP-Verbindungen zu akzeptieren. Dies kann eine Portnummer oder ein Dienstname sein."
 
 #. type: deftypevr
-#: doc/guix.texi:23307
+#: doc/guix.texi:26168
 msgid "Defaults to @samp{\"16509\"}."
 msgstr "Die Vorgabe ist @samp{\"16509\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:23310
+#: doc/guix.texi:26171
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string listen-addr"
 msgstr "{@code{libvirt-configuration}-Parameter} Zeichenkette listen-addr"
 
 #. type: deftypevr
-#: doc/guix.texi:23312
+#: doc/guix.texi:26173
 msgid "IP address or hostname used for client connections."
 msgstr "IP-Adresse oder Rechnername („Hostname“), der für von Clients ausgehende Verbindungen benutzt wird."
 
 #. type: deftypevr
-#: doc/guix.texi:23314
+#: doc/guix.texi:26175
 msgid "Defaults to @samp{\"0.0.0.0\"}."
 msgstr "Die Vorgabe ist @samp{\"0.0.0.0\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:23317
+#: doc/guix.texi:26178
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} boolean mdns-adv?"
 msgstr "{@code{libvirt-configuration}-Parameter} Boolescher-Ausdruck mdns-adv?"
 
 #. type: deftypevr
-#: doc/guix.texi:23319
+#: doc/guix.texi:26180
 msgid "Flag toggling mDNS advertisement of the libvirt service."
 msgstr "Einstellung, ob der libvirt-Dienst mDNS-Mitteilungen sendet."
 
 #. type: deftypevr
-#: doc/guix.texi:23322
+#: doc/guix.texi:26183
 msgid "Alternatively can disable for all services on a host by stopping the Avahi daemon."
 msgstr "Dies kann alternativ für alle Dienste auf einem Rechner deaktiviert werden, indem man den Avahi-Daemon anhält."
 
 #. type: deftypevr
-#: doc/guix.texi:23327
+#: doc/guix.texi:26188
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string mdns-name"
 msgstr "{@code{libvirt-configuration}-Parameter} Zeichenkette mdns-name"
 
 #. type: deftypevr
-#: doc/guix.texi:23330
+#: doc/guix.texi:26191
 msgid "Default mDNS advertisement name.  This must be unique on the immediate broadcast network."
 msgstr "Der voreingestellte Name in mDNS-Mitteilungen. Er muss auf dem direkten Broadcast-Netzwerk eindeutig sein."
 
 #. type: deftypevr
-#: doc/guix.texi:23332
+#: doc/guix.texi:26193
 msgid "Defaults to @samp{\"Virtualization Host <hostname>\"}."
 msgstr "Die Vorgabe ist @samp{\"Virtualization Host <Rechnername>\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:23335
+#: doc/guix.texi:26196
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string unix-sock-group"
 msgstr "{@code{libvirt-configuration}-Parameter} Zeichenkette unix-sock-group"
 
 #. type: deftypevr
-#: doc/guix.texi:23339
+#: doc/guix.texi:26200
 msgid "UNIX domain socket group ownership.  This can be used to allow a 'trusted' set of users access to management capabilities without becoming root."
 msgstr "Besitzergruppe des UNIX-Sockets. Diese Einstellung kann benutzt werden, um einer als vertrauenswürdig geltenden Gruppe von Benutzern Zugriff auf Verwaltungsfunktionen zu gewähren, ohne dass diese als Administratornutzer root ausgeführt werden müssen."
 
 #. type: deftypevr
-#: doc/guix.texi:23344
+#: doc/guix.texi:26205
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string unix-sock-ro-perms"
 msgstr "{@code{libvirt-configuration}-Parameter} Zeichenkette unix-sock-ro-perms"
 
 #. type: deftypevr
-#: doc/guix.texi:23347
+#: doc/guix.texi:26208
 msgid "UNIX socket permissions for the R/O socket.  This is used for monitoring VM status only."
 msgstr "UNIX-Socket-Berechtigungen für den Socket nur mit Lesezugriff („read only“). Dies wird nur zur Überwachung des Zustands der VM benutzt."
 
 #. type: deftypevr
-#: doc/guix.texi:23349 doc/guix.texi:23367
+#: doc/guix.texi:26210 doc/guix.texi:26228
 msgid "Defaults to @samp{\"0777\"}."
 msgstr "Die Vorgabe ist @samp{\"0777\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:23352
+#: doc/guix.texi:26213
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string unix-sock-rw-perms"
 msgstr "{@code{libvirt-configuration}-Parameter} Zeichenkette unix-sock-rw-perms"
 
 #. type: deftypevr
-#: doc/guix.texi:23356
+#: doc/guix.texi:26217
 msgid "UNIX socket permissions for the R/W socket.  Default allows only root.  If PolicyKit is enabled on the socket, the default will change to allow everyone (eg, 0777)"
 msgstr "UNIX-Socket-Berechtigungen für den Socket mit Schreib- und Lesezugriff („read/write“). Nach Vorgabe kann nur der Administratornutzer root zugreifen. Wenn auf dem Socket PolicyKit aktiviert ist, wird die Vorgabe geändert, dass jeder zugreifen kann (z.B.@: zu 0777)"
 
 #. type: deftypevr
-#: doc/guix.texi:23358
+#: doc/guix.texi:26219
 msgid "Defaults to @samp{\"0770\"}."
 msgstr "Die Vorgabe ist @samp{\"0770\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:23361
+#: doc/guix.texi:26222
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string unix-sock-admin-perms"
 msgstr "{@code{libvirt-configuration}-Parameter} Zeichenkette unix-sock-admin-perms"
 
 #. type: deftypevr
-#: doc/guix.texi:23365
+#: doc/guix.texi:26226
 msgid "UNIX socket permissions for the admin socket.  Default allows only owner (root), do not change it unless you are sure to whom you are exposing the access to."
 msgstr "UNIX-Socket-Berechtigungen für den Administrator-Socket. Nach Vorgabg hat nur der Besitzer (der Administratornutzer root) hierauf Zugriff; ändern Sie es nur, wenn Sie sicher wissen, wer dann alles Zugriff bekommt."
 
 #. type: deftypevr
-#: doc/guix.texi:23370
+#: doc/guix.texi:26231
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string unix-sock-dir"
 msgstr "{@code{libvirt-configuration}-Parameter} Zeichenkette unix-sock-dir"
 
 #. type: deftypevr
-#: doc/guix.texi:23372
+#: doc/guix.texi:26233
 msgid "The directory in which sockets will be found/created."
 msgstr "Das Verzeichnis, in dem Sockets gefunden werden können bzw. erstellt werden."
 
 #. type: deftypevr
-#: doc/guix.texi:23374
+#: doc/guix.texi:26235
 msgid "Defaults to @samp{\"/var/run/libvirt\"}."
 msgstr "Die Vorgabe ist @samp{\"/var/run/libvirt\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:23377
+#: doc/guix.texi:26238
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string auth-unix-ro"
 msgstr "{@code{libvirt-configuration}-Parameter} Zeichenkette auth-unix-ro"
 
 #. type: deftypevr
-#: doc/guix.texi:23380
+#: doc/guix.texi:26241
 msgid "Authentication scheme for UNIX read-only sockets.  By default socket permissions allow anyone to connect"
 msgstr "Authentifizierungsschema für nur lesbare UNIX-Sockets. Nach Vorgabe gestatten es die Socket-Berechtigungen jedem Nutzer, sich zu verbinden."
 
 #. type: deftypevr
-#: doc/guix.texi:23382 doc/guix.texi:23391
+#: doc/guix.texi:26243 doc/guix.texi:26252
 msgid "Defaults to @samp{\"polkit\"}."
 msgstr "Die Vorgabe ist @samp{\"polkit\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:23385
+#: doc/guix.texi:26246
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string auth-unix-rw"
 msgstr "{@code{libvirt-configuration}-Parameter} Zeichenkette auth-unix-rw"
 
 #. type: deftypevr
-#: doc/guix.texi:23389
+#: doc/guix.texi:26250
 msgid "Authentication scheme for UNIX read-write sockets.  By default socket permissions only allow root.  If PolicyKit support was compiled into libvirt, the default will be to use 'polkit' auth."
 msgstr "Authentifizierungsschema für UNIX-Sockets mit Schreib- und Lesezugriff. Nach Vorgabe erlauben die Socket-Berechtigungen nur dem Administratornutzer root Zugriff. Wenn libvirt mit Unterstützung für PolicyKit kompiliert wurde, ist die Vorgabe, Authentifizierung über „polkit“ durchzuführen."
 
 #. type: deftypevr
-#: doc/guix.texi:23394
+#: doc/guix.texi:26255
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string auth-tcp"
 msgstr "{@code{libvirt-configuration}-Parameter} Zeichenkette auth-tcp"
 
 #. type: deftypevr
-#: doc/guix.texi:23398
+#: doc/guix.texi:26259
 msgid "Authentication scheme for TCP sockets.  If you don't enable SASL, then all TCP traffic is cleartext.  Don't do this outside of a dev/test scenario."
 msgstr "Authentifizierungsschema für TCP-Sockets. Wenn Sie SASL nicht aktivieren, dann wird alle TCP-Kommunikation im Klartext verschickt. Tun Sie dies @emph{nicht}, außer Sie benutzen libvirt nur als Entwickler oder zum Testen."
 
 #. type: deftypevr
-#: doc/guix.texi:23400
+#: doc/guix.texi:26261
 msgid "Defaults to @samp{\"sasl\"}."
 msgstr "Die Vorgabe ist @samp{\"sasl\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:23403
+#: doc/guix.texi:26264
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string auth-tls"
 msgstr "{@code{libvirt-configuration}-Parameter} Zeichenkette auth-tls"
 
 #. type: deftypevr
-#: doc/guix.texi:23407
+#: doc/guix.texi:26268
 msgid "Authentication scheme for TLS sockets.  TLS sockets already have encryption provided by the TLS layer, and limited authentication is done by certificates."
 msgstr "Authentifizierungsschema für TLS-Sockets. Für TLS-Sockets wird bereits durch die TLS-Schicht Verschlüsselung bereitgestellt und eingeschränkte Authentifizierung wird über Zertifikate durchgeführt."
 
 #. type: deftypevr
-#: doc/guix.texi:23410
+#: doc/guix.texi:26271
 msgid "It is possible to make use of any SASL authentication mechanism as well, by using 'sasl' for this option"
 msgstr "Es ist möglich, auch hier den SASL-Authentifizierungsmechanismus anzuwenden, indem Sie für diese Option „sasl“ eintragen."
 
 #. type: deftypevr
-#: doc/guix.texi:23412
+#: doc/guix.texi:26273
 msgid "Defaults to @samp{\"none\"}."
 msgstr "Die Vorgabe ist @samp{\"none\"}, d.h.@: keine zusätzliche Authentifizierung."
 
 #. type: deftypevr
-#: doc/guix.texi:23415
+#: doc/guix.texi:26276
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} optional-list access-drivers"
 msgstr "{@code{libvirt-configuration}-Parameter} Optional-nichtleere-Liste access-drivers"
 
 #. type: deftypevr
-#: doc/guix.texi:23417
+#: doc/guix.texi:26278
 msgid "API access control scheme."
 msgstr "Welche Schemata zur Zugriffskontrolle auf Programmierschnittstellen (APIs) benutzt werden."
 
 #. type: deftypevr
-#: doc/guix.texi:23420
+#: doc/guix.texi:26281
 msgid "By default an authenticated user is allowed access to all APIs.  Access drivers can place restrictions on this."
 msgstr "Nach Vorgabe kann ein authentifizierter Nutzer auf alle Programmierschnittstellen zugreifen. Zugriffstreiber können dies einschränken."
 
 #. type: deftypevr
-#: doc/guix.texi:23425
+#: doc/guix.texi:26286
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string key-file"
 msgstr "{@code{libvirt-configuration}-Parameter} Zeichenkette key-file"
 
 #. type: deftypevr
-#: doc/guix.texi:23428
+#: doc/guix.texi:26289
 msgid "Server key file path.  If set to an empty string, then no private key is loaded."
 msgstr "Pfad zur Schlüsseldatei für den Server. Wenn er auf eine leere Zeichenkette gesetzt ist, dann wird kein privater Schlüssel geladen."
 
 #. type: deftypevr
-#: doc/guix.texi:23433
+#: doc/guix.texi:26294
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string cert-file"
 msgstr "{@code{libvirt-configuration}-Parameter} Zeichenkette cert-file"
 
 #. type: deftypevr
-#: doc/guix.texi:23436
+#: doc/guix.texi:26297
 msgid "Server key file path.  If set to an empty string, then no certificate is loaded."
 msgstr "Pfad zur Zertifikatsdatei für den Server. Wenn er auf eine leere Zeichenkette gesetzt ist, dann wird kein Zertifikat geladen."
 
 #. type: deftypevr
-#: doc/guix.texi:23441
+#: doc/guix.texi:26302
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string ca-file"
 msgstr "{@code{libvirt-configuration}-Parameter} Zeichenkette ca-file"
 
 #. type: deftypevr
-#: doc/guix.texi:23444
+#: doc/guix.texi:26305
 msgid "Server key file path.  If set to an empty string, then no CA certificate is loaded."
 msgstr "Pfad zur Datei mit dem Zertifikat der Zertifikatsautorität. Wenn er auf eine leere Zeichenkette gesetzt ist, dann wird kein Zertifikat der Zertifikatsautorität geladen."
 
 #. type: deftypevr
-#: doc/guix.texi:23449
+#: doc/guix.texi:26310
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string crl-file"
 msgstr "{@code{libvirt-configuration}-Parameter} Zeichenkette crl-file"
 
 #. type: deftypevr
-#: doc/guix.texi:23452
+#: doc/guix.texi:26313
 msgid "Certificate revocation list path.  If set to an empty string, then no CRL is loaded."
 msgstr "Pfad zur Zertifikatssperrliste („Certificate Revocation List“). Wenn er auf eine leere Zeichenkette gesetzt ist, dann wird keine Zertifikatssperrliste geladen."
 
 #. type: deftypevr
-#: doc/guix.texi:23457
+#: doc/guix.texi:26318
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} boolean tls-no-sanity-cert"
 msgstr "{@code{libvirt-configuration}-Parameter} Boolescher-Ausdruck tls-no-sanity-cert"
 
 #. type: deftypevr
-#: doc/guix.texi:23459
+#: doc/guix.texi:26320
 msgid "Disable verification of our own server certificates."
 msgstr "Keine Überprüfung unseres eigenen Serverzertifikats durchführen."
 
 #. type: deftypevr
-#: doc/guix.texi:23462
+#: doc/guix.texi:26323
 msgid "When libvirtd starts it performs some sanity checks against its own certificates."
 msgstr "Beim Start vom libvirtd prüft dieser, ob bei seinem eigenen Zertifikat alles in Ordnung ist."
 
 #. type: deftypevr
-#: doc/guix.texi:23467
+#: doc/guix.texi:26328
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} boolean tls-no-verify-cert"
 msgstr "{@code{libvirt-configuration}-Parameter} Boolescher-Ausdruck tls-no-verify-cert"
 
 #. type: deftypevr
-#: doc/guix.texi:23469
+#: doc/guix.texi:26330
 msgid "Disable verification of client certificates."
 msgstr "Keine Überprüfung von Clientzertifikaten durchführen."
 
 #. type: deftypevr
-#: doc/guix.texi:23473
+#: doc/guix.texi:26334
 msgid "Client certificate verification is the primary authentication mechanism.  Any client which does not present a certificate signed by the CA will be rejected."
 msgstr "Die Überprüfung des Zertifikats eines Clients ist der primäre Authentifizierungsmechanismus. Jeder Client, der kein von der Zertifikatsautorität signiertes Zertifikat vorweist, wird abgelehnt."
 
 #. type: deftypevr
-#: doc/guix.texi:23478
+#: doc/guix.texi:26339
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} optional-list tls-allowed-dn-list"
 msgstr "{@code{libvirt-configuration}-Parameter} Optional-nichtleere-Liste tls-allowed-dn-list"
 
 #. type: deftypevr
-#: doc/guix.texi:23480
+#: doc/guix.texi:26341
 msgid "Whitelist of allowed x509 Distinguished Name."
 msgstr "Liste der erlaubten Einträge für den „Distinguished Name“ bei x509."
 
 #. type: deftypevr
-#: doc/guix.texi:23485
+#: doc/guix.texi:26346
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} optional-list sasl-allowed-usernames"
 msgstr "{@code{libvirt-configuration}-Parameter} Optional-nichtleere-Liste sasl-allowed-usernames"
 
 #. type: deftypevr
-#: doc/guix.texi:23488
+#: doc/guix.texi:26349
 msgid "Whitelist of allowed SASL usernames.  The format for username depends on the SASL authentication mechanism."
 msgstr "Liste der erlaubten Einträge für SASL-Benutzernamen. Wie Benutzernamen aussehen müssen, ist abhängig vom jeweiligen SASL-Mechanismus."
 
 #. type: deftypevr
-#: doc/guix.texi:23493
+#: doc/guix.texi:26354
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string tls-priority"
 msgstr "{@code{libvirt-configuration}-Parameter} Zeichenkette tls-priority"
 
 #. type: deftypevr
-#: doc/guix.texi:23497
-msgid "Override the compile time default TLS priority string.  The default is usually \"NORMAL\" unless overridden at build time.  Only set this is it is desired for libvirt to deviate from the global default settings."
-msgstr "Dies wird vorrangig statt der beim Kompilieren voreingestellten TLS-Prioritätszeichenkette verwendet. Die Voreinstellung ist in der Regel \"NORMAL\", solange dies nicht bei der Erstellung geändert wurde. Ändern Sie dies nur, wenn die Einstellungen für libvirt von den globalen Voreinstellungen abweichen sollen."
+#: doc/guix.texi:26358
+msgid "Override the compile time default TLS priority string.  The default is usually @samp{\"NORMAL\"} unless overridden at build time.  Only set this is it is desired for libvirt to deviate from the global default settings."
+msgstr "Dies wird vorrangig statt der beim Kompilieren voreingestellten TLS-Prioritätszeichenkette verwendet. Die Voreinstellung ist in der Regel @samp{\"NORMAL\"}, solange dies nicht bei der Erstellung geändert wurde. Ändern Sie dies nur, wenn die Einstellungen für libvirt von den globalen Voreinstellungen abweichen sollen."
 
 #. type: deftypevr
-#: doc/guix.texi:23499
+#: doc/guix.texi:26360
 msgid "Defaults to @samp{\"NORMAL\"}."
 msgstr "Die Vorgabe @samp{\"NORMAL\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:23502
+#: doc/guix.texi:26363
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer max-clients"
 msgstr "{@code{libvirt-configuration}-Parameter} Ganze-Zahl max-clients"
 
 #. type: deftypevr
-#: doc/guix.texi:23505 doc/guix.texi:23928
+#: doc/guix.texi:26366 doc/guix.texi:26790
 msgid "Maximum number of concurrent client connections to allow over all sockets combined."
 msgstr "Maximalzahl gleichzeitiger Client-Verbindungen, die für alle Sockets zusammen zugelassen werden sollen."
 
 #. type: deftypevr
-#: doc/guix.texi:23507
+#: doc/guix.texi:26368
 msgid "Defaults to @samp{5000}."
 msgstr "Die Vorgabe ist @samp{5000}."
 
 #. type: deftypevr
-#: doc/guix.texi:23510
+#: doc/guix.texi:26371
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer max-queued-clients"
 msgstr "{@code{libvirt-configuration}-Parameter} Ganze-Zahl max-queued-clients"
 
 #. type: deftypevr
-#: doc/guix.texi:23514
+#: doc/guix.texi:26375
 msgid "Maximum length of queue of connections waiting to be accepted by the daemon.  Note, that some protocols supporting retransmission may obey this so that a later reattempt at connection succeeds."
 msgstr "Maximale Länge der Warteschlange für Verbindungen, die darauf warten, vom Daemon angenommen zu werden. Beachten Sie, dass sich manche Protokolle, die Neuübertragung unterstützen, danach richten könnten, damit ein erneuter Verbindungsversuch angenommen wird."
 
 #. type: deftypevr
-#: doc/guix.texi:23519
+#: doc/guix.texi:26380
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer max-anonymous-clients"
 msgstr "{@code{libvirt-configuration}-Parameter} Ganze-Zahl max-anonymous-clients"
 
 #. type: deftypevr
-#: doc/guix.texi:23522
+#: doc/guix.texi:26383
 msgid "Maximum length of queue of accepted but not yet authenticated clients.  Set this to zero to turn this feature off"
 msgstr "Maximale Länge der Warteschlange für Clients, die angenommen wurden, aber noch nicht authentifiziert wurden. Setzen Sie dies auf null, um diese Funktionalität abzuschalten."
 
 #. type: deftypevr
-#: doc/guix.texi:23524 doc/guix.texi:23542 doc/guix.texi:23558
+#: doc/guix.texi:26385 doc/guix.texi:26403 doc/guix.texi:26419
 msgid "Defaults to @samp{20}."
 msgstr "Die Vorgabe ist @samp{20}."
 
 #. type: deftypevr
-#: doc/guix.texi:23527
+#: doc/guix.texi:26388
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer min-workers"
 msgstr "{@code{libvirt-configuration}-Parameter} Ganze-Zahl min-workers"
 
 #. type: deftypevr
-#: doc/guix.texi:23529
+#: doc/guix.texi:26390
 msgid "Number of workers to start up initially."
 msgstr "Anzahl an Arbeiter-Threads, die am Anfang gestartet werden sollen."
 
 #. type: deftypevr
-#: doc/guix.texi:23534
+#: doc/guix.texi:26395
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer max-workers"
 msgstr "{@code{libvirt-configuration}-Parameter} Ganze-Zahl max-workers"
 
 #. type: deftypevr
-#: doc/guix.texi:23536
+#: doc/guix.texi:26397
 msgid "Maximum number of worker threads."
 msgstr "Maximale Anzahl an Arbeiter-Threads."
 
 #. type: deftypevr
-#: doc/guix.texi:23540
+#: doc/guix.texi:26401
 msgid "If the number of active clients exceeds @code{min-workers}, then more threads are spawned, up to max_workers limit.  Typically you'd want max_workers to equal maximum number of clients allowed."
 msgstr "Wenn die Anzahl aktiver Clients die @code{min-workers} übersteigt, werden weitere Threads erzeugt, bis die max_workers-Beschränkung erreicht wurde. Typischerweise würden Sie für max_workers die maximale Anzahl zugelassener Clients angeben."
 
 #. type: deftypevr
-#: doc/guix.texi:23545
+#: doc/guix.texi:26406
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer prio-workers"
 msgstr "{@code{libvirt-configuration}-Parameter} Ganze-Zahl prio-workers"
 
 #. type: deftypevr
-#: doc/guix.texi:23549
+#: doc/guix.texi:26410
 msgid "Number of priority workers.  If all workers from above pool are stuck, some calls marked as high priority (notably domainDestroy) can be executed in this pool."
 msgstr "Die Anzahl priorisierter Arbeiter-Threads. Wenn alle Arbeiter aus diesem Pool festhängen, können manche, mit hoher Priorität versehene Aufrufe (speziell domainDestroy) in diesem Pool hier ausgeführt werden."
 
 #. type: deftypevr
-#: doc/guix.texi:23554
+#: doc/guix.texi:26415
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer max-requests"
 msgstr "{@code{libvirt-configuration}-Parameter} Ganze-Zahl max-requests"
 
 #. type: deftypevr
-#: doc/guix.texi:23556
+#: doc/guix.texi:26417
 msgid "Total global limit on concurrent RPC calls."
-msgstr "Wieviele nebenläufige RPC-Aufrufe global ausgeführt werden können."
+msgstr "Wie viele nebenläufige RPC-Aufrufe global ausgeführt werden können."
 
 #. type: deftypevr
-#: doc/guix.texi:23561
+#: doc/guix.texi:26422
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer max-client-requests"
 msgstr "{@code{libvirt-configuration}-Parameter} Ganze-Zahl max-client-requests"
 
 #. type: deftypevr
-#: doc/guix.texi:23565
+#: doc/guix.texi:26426
 msgid "Limit on concurrent requests from a single client connection.  To avoid one client monopolizing the server this should be a small fraction of the global max_requests and max_workers parameter."
-msgstr "Wieviele nebenläufige Anfragen von einer einzelnen Client-Verbindung ausgehen können. Um zu verhindern, dass ein einzelner Client den gesamten Server für sich beansprucht, sollte der Wert hier nur einen kleinen Teil der globalen max_requests- und max_workers-Parameter ausmachen."
+msgstr "Wie viele nebenläufige Anfragen von einer einzelnen Client-Verbindung ausgehen können. Um zu verhindern, dass ein einzelner Client den gesamten Server für sich beansprucht, sollte der Wert hier nur einen kleinen Teil der globalen max_requests- und max_workers-Parameter ausmachen."
 
 #. type: deftypevr
-#: doc/guix.texi:23570
+#: doc/guix.texi:26431
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer admin-min-workers"
 msgstr "{@code{libvirt-configuration}-Parameter} Ganze-Zahl admin-min-workers"
 
 #. type: deftypevr
-#: doc/guix.texi:23572
+#: doc/guix.texi:26433
 msgid "Same as @code{min-workers} but for the admin interface."
 msgstr "Wie bei @code{min-workers}, aber für die Administratorschnittstelle."
 
 #. type: deftypevr
-#: doc/guix.texi:23577
+#: doc/guix.texi:26438
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer admin-max-workers"
 msgstr "{@code{libvirt-configuration}-Parameter} Ganze-Zahl admin-max-workers"
 
 #. type: deftypevr
-#: doc/guix.texi:23579
+#: doc/guix.texi:26440
 msgid "Same as @code{max-workers} but for the admin interface."
 msgstr "Wie bei @code{max-workers}, aber für die Administratorschnittstelle."
 
 #. type: deftypevr
-#: doc/guix.texi:23584
+#: doc/guix.texi:26445
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer admin-max-clients"
 msgstr "{@code{libvirt-configuration}-Parameter} Ganze-Zahl admin-max-clients"
 
 #. type: deftypevr
-#: doc/guix.texi:23586
+#: doc/guix.texi:26447
 msgid "Same as @code{max-clients} but for the admin interface."
 msgstr "Wie bei @code{max-clients}, aber für die Administratorschnittstelle."
 
 #. type: deftypevr
-#: doc/guix.texi:23591
+#: doc/guix.texi:26452
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer admin-max-queued-clients"
 msgstr "{@code{libvirt-configuration}-Parameter} Ganze-Zahl admin-max-queued-clients"
 
 #. type: deftypevr
-#: doc/guix.texi:23593
+#: doc/guix.texi:26454
 msgid "Same as @code{max-queued-clients} but for the admin interface."
 msgstr "Wie bei @code{max-queued-clients}, aber für die Administratorschnittstelle."
 
 #. type: deftypevr
-#: doc/guix.texi:23598
+#: doc/guix.texi:26459
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer admin-max-client-requests"
 msgstr "{@code{libvirt-configuration}-Parameter} Ganze-Zahl admin-max-client-requests"
 
 #. type: deftypevr
-#: doc/guix.texi:23600
+#: doc/guix.texi:26461
 msgid "Same as @code{max-client-requests} but for the admin interface."
 msgstr "Wie bei @code{max-client-requests}, aber für die Administratorschnittstelle."
 
 #. type: deftypevr
-#: doc/guix.texi:23605
+#: doc/guix.texi:26466
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer log-level"
 msgstr "{@code{libvirt-configuration}-Parameter} Ganze-Zahl log-level"
 
 #. type: deftypevr
-#: doc/guix.texi:23607 doc/guix.texi:23830
+#: doc/guix.texi:26468 doc/guix.texi:26692
 msgid "Logging level.  4 errors, 3 warnings, 2 information, 1 debug."
 msgstr "Protokollstufe. 4 für Fehler, 3 für Warnungen, 2 für Informationen, 1 zur Fehlersuche."
 
 #. type: deftypevr
-#: doc/guix.texi:23612
+#: doc/guix.texi:26473
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string log-filters"
 msgstr "{@code{libvirt-configuration}-Parameter} Zeichenkette log-filters"
 
 #. type: deftypevr
-#: doc/guix.texi:23614 doc/guix.texi:23837
+#: doc/guix.texi:26475 doc/guix.texi:26699
 msgid "Logging filters."
 msgstr "Protokollfilter."
 
 #. type: deftypevr
-#: doc/guix.texi:23617 doc/guix.texi:23840
-msgid "A filter allows to select a different logging level for a given category of logs The format for a filter is one of:"
+#: doc/guix.texi:26478
+msgid "A filter allows to select a different logging level for a given category of logs.  The format for a filter is one of:"
 msgstr "Ein Filter ermöglicht es, für eine bestimmte Kategorie von Protokollen eine andere Protokollierungsstufe festzulegen. Filter müssen eines der folgenden Formate haben:"
 
 #. type: itemize
-#: doc/guix.texi:23621 doc/guix.texi:23844
+#: doc/guix.texi:26482 doc/guix.texi:26706
 msgid "x:name"
 msgstr "x:Name"
 
 #. type: itemize
-#: doc/guix.texi:23624 doc/guix.texi:23847
+#: doc/guix.texi:26485 doc/guix.texi:26709
 msgid "x:+name"
 msgstr "x:+Name"
 
 #. type: deftypevr
-#: doc/guix.texi:23634 doc/guix.texi:23857
-msgid "where @code{name} is a string which is matched against the category given in the @code{VIR_LOG_INIT()} at the top of each libvirt source file, e.g., \"remote\", \"qemu\", or \"util.json\" (the name in the filter can be a substring of the full category name, in order to match multiple similar categories), the optional \"+\" prefix tells libvirt to log stack trace for each message matching name, and @code{x} is the minimal level where matching messages should be logged:"
-msgstr "wobei @code{Name} eine Zeichenkette ist, die zu einer in der Umgebungsvariablen @code{VIR_LOG_INIT()} am Anfang jeder Quelldatei von libvirt angegebenen Kategorie passen muss, z.B.@: „remote“, „qemu“ oder „util.json“ (der Name im Filter kann auch nur ein Teil des vollständigen Kategoriennamens sein, wodurch mehrere, ähnliche passende Kategoriennamen möglich sind). Das optionale Präfix „+“ bedeutet, dass libvirt eine Rückverfolgung (d.h.@: ein „Stack Trace“) für jede zum Namen passende Nachricht ins Protokoll schreiben soll. @code{x} benennt jeweils die kleinste Stufe, deren passende Nachrichten protokolliert werden sollen."
+#: doc/guix.texi:26496
+msgid "where @code{name} is a string which is matched against the category given in the @code{VIR_LOG_INIT()} at the top of each libvirt source file, e.g., @samp{\"remote\"}, @samp{\"qemu\"}, or @samp{\"util.json\"} (the name in the filter can be a substring of the full category name, in order to match multiple similar categories), the optional @samp{\"+\"} prefix tells libvirt to log stack trace for each message matching name, and @code{x} is the minimal level where matching messages should be logged:"
+msgstr "wobei @code{Name} eine Zeichenkette ist, die zu einer in der Umgebungsvariablen @code{VIR_LOG_INIT()} am Anfang jeder Quelldatei von libvirt angegebenen Kategorie passen muss, z.B.@: @samp{\"remote\"}, @samp{\"qemu\"} oder @samp{\"util.json\"} (der Name im Filter kann auch nur ein Teil des vollständigen Kategoriennamens sein, wodurch mehrere, ähnliche passende Kategoriennamen möglich sind). Das optionale Präfix „+“ bedeutet, dass libvirt eine Rückverfolgung (d.h.@: ein „Stack Trace“) für jede zum Namen passende Nachricht ins Protokoll schreiben soll. @code{x} benennt jeweils die kleinste Stufe, deren passende Nachrichten protokolliert werden sollen."
 
 #. type: itemize
-#: doc/guix.texi:23638 doc/guix.texi:23683 doc/guix.texi:23861
-#: doc/guix.texi:23906
+#: doc/guix.texi:26500 doc/guix.texi:26545 doc/guix.texi:26723
+#: doc/guix.texi:26768
 msgid "1: DEBUG"
 msgstr "1: Fehlersuche („DEBUG“)"
 
 #. type: itemize
-#: doc/guix.texi:23641 doc/guix.texi:23686 doc/guix.texi:23864
-#: doc/guix.texi:23909
+#: doc/guix.texi:26503 doc/guix.texi:26548 doc/guix.texi:26726
+#: doc/guix.texi:26771
 msgid "2: INFO"
 msgstr "2: Informationen („INFO“)"
 
 #. type: itemize
-#: doc/guix.texi:23644 doc/guix.texi:23689 doc/guix.texi:23867
-#: doc/guix.texi:23912
+#: doc/guix.texi:26506 doc/guix.texi:26551 doc/guix.texi:26729
+#: doc/guix.texi:26774
 msgid "3: WARNING"
 msgstr "3: Warnungen („WARNING“)"
 
 #. type: itemize
-#: doc/guix.texi:23647 doc/guix.texi:23692 doc/guix.texi:23870
-#: doc/guix.texi:23915
+#: doc/guix.texi:26509 doc/guix.texi:26554 doc/guix.texi:26732
+#: doc/guix.texi:26777
 msgid "4: ERROR"
 msgstr "4: Fehler („ERROR“)"
 
 #. type: deftypevr
-#: doc/guix.texi:23652 doc/guix.texi:23875
+#: doc/guix.texi:26514 doc/guix.texi:26737
 msgid "Multiple filters can be defined in a single filters statement, they just need to be separated by spaces."
 msgstr "Mehrere Filter können in einer einzelnen Filteranweisung definiert werden; sie müssen nur durch Leerzeichen voneinander getrennt werden."
 
 #. type: deftypevr
-#: doc/guix.texi:23654 doc/guix.texi:23877
+#: doc/guix.texi:26516 doc/guix.texi:26739
 msgid "Defaults to @samp{\"3:remote 4:event\"}."
 msgstr "Die Vorgabe ist @samp{\"3:remote 4:event\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:23657
+#: doc/guix.texi:26519
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string log-outputs"
 msgstr "{@code{libvirt-configuration}-Parameter} Zeichenkette log-outputs"
 
 #. type: deftypevr
-#: doc/guix.texi:23659 doc/guix.texi:23882
+#: doc/guix.texi:26521 doc/guix.texi:26744
 msgid "Logging outputs."
 msgstr "Ausgaben für die Protokollierung."
 
 #. type: deftypevr
-#: doc/guix.texi:23662
+#: doc/guix.texi:26524
 msgid "An output is one of the places to save logging information.  The format for an output can be:"
 msgstr "Eine Ausgabe ist einer der Orte, wohin Informationen aus der Protokollierung gespeichert werden. Eine Ausgabe kann auf eine der folgenden Arten angegeben werden:"
 
 #. type: item
-#: doc/guix.texi:23664 doc/guix.texi:23887
+#: doc/guix.texi:26526 doc/guix.texi:26749
 #, no-wrap
 msgid "x:stderr"
 msgstr "x:stderr"
 
 #. type: table
-#: doc/guix.texi:23666 doc/guix.texi:23889
+#: doc/guix.texi:26528 doc/guix.texi:26751
 msgid "output goes to stderr"
 msgstr "Protokolle werden auf der Standardausgabe („Stderr“) ausgegeben."
 
 #. type: item
-#: doc/guix.texi:23667 doc/guix.texi:23890
+#: doc/guix.texi:26529 doc/guix.texi:26752
 #, no-wrap
 msgid "x:syslog:name"
 msgstr "x:syslog:Name"
 
 #. type: table
-#: doc/guix.texi:23669 doc/guix.texi:23892
+#: doc/guix.texi:26531 doc/guix.texi:26754
 msgid "use syslog for the output and use the given name as the ident"
 msgstr "Syslog wird zur Ausgabe benutzt. Der Name dient dabei als Identifikator für libvirt-Protokolle."
 
 #. type: item
-#: doc/guix.texi:23670 doc/guix.texi:23893
+#: doc/guix.texi:26532 doc/guix.texi:26755
 #, no-wrap
 msgid "x:file:file_path"
 msgstr "x:file:Dateipfad"
 
 #. type: table
-#: doc/guix.texi:23672 doc/guix.texi:23895
+#: doc/guix.texi:26534 doc/guix.texi:26757
 msgid "output to a file, with the given filepath"
 msgstr "Protokolle werden in die Datei unter dem angegebenen Dateipfad ausgegeben."
 
 #. type: item
-#: doc/guix.texi:23673 doc/guix.texi:23896
+#: doc/guix.texi:26535 doc/guix.texi:26758
 #, no-wrap
 msgid "x:journald"
 msgstr "x:journald"
 
 #. type: table
-#: doc/guix.texi:23675 doc/guix.texi:23898
+#: doc/guix.texi:26537 doc/guix.texi:26760
 msgid "output to journald logging system"
 msgstr "Die Ausgabe läuft über das journald-Protokollsystem."
 
 #. type: deftypevr
-#: doc/guix.texi:23679 doc/guix.texi:23902
+#: doc/guix.texi:26541 doc/guix.texi:26764
 msgid "In all case the x prefix is the minimal level, acting as a filter"
 msgstr "In allen Fällen steht das x vorne für die kleinste Stufe und wirkt als Filter."
 
 #. type: deftypevr
-#: doc/guix.texi:23697 doc/guix.texi:23920
+#: doc/guix.texi:26559 doc/guix.texi:26782
 msgid "Multiple outputs can be defined, they just need to be separated by spaces."
 msgstr "Mehrere Ausgaben können definiert werden, dazu müssen sie nur durch Leerzeichen getrennt hier angegeben werden."
 
 #. type: deftypevr
-#: doc/guix.texi:23699 doc/guix.texi:23922
+#: doc/guix.texi:26561 doc/guix.texi:26784
 msgid "Defaults to @samp{\"3:stderr\"}."
 msgstr "Die Vorgabe ist @samp{\"3:stderr\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:23702
+#: doc/guix.texi:26564
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer audit-level"
 msgstr "{@code{libvirt-configuration}-Parameter} Ganze-Zahl audit-level"
 
 #. type: deftypevr
-#: doc/guix.texi:23704
+#: doc/guix.texi:26566
 msgid "Allows usage of the auditing subsystem to be altered"
 msgstr "Ermöglicht Anpassungen am Auditierungs-Subsystem."
 
 #. type: itemize
-#: doc/guix.texi:23708
+#: doc/guix.texi:26570
 msgid "0: disable all auditing"
 msgstr "0: Jegliche Auditierung deaktivieren."
 
 #. type: itemize
-#: doc/guix.texi:23711
+#: doc/guix.texi:26573
 msgid "1: enable auditing, only if enabled on host"
 msgstr "1: Auditierung nur aktivieren, wenn sie beim Wirtssystem aktiviert ist."
 
 #. type: itemize
-#: doc/guix.texi:23714
+#: doc/guix.texi:26576
 msgid "2: enable auditing, and exit if disabled on host."
 msgstr "2: Auditierung aktivieren. Beenden, wenn das Wirtssystem Auditierung deaktiviert hat."
 
 #. type: deftypevr
-#: doc/guix.texi:23721
+#: doc/guix.texi:26583
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} boolean audit-logging"
 msgstr "{@code{libvirt-configuration}-Parameter} Boolescher-Ausdruck audit-logging"
 
 #. type: deftypevr
-#: doc/guix.texi:23723
+#: doc/guix.texi:26585
 msgid "Send audit messages via libvirt logging infrastructure."
 msgstr "Audit-Nachrichten über die Protokollinfrastruktur von libvirt versenden."
 
 #. type: deftypevr
-#: doc/guix.texi:23728
+#: doc/guix.texi:26590
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} optional-string host-uuid"
 msgstr "{@code{libvirt-configuration}-Parameter} Optional-nichtleere-Zeichenkette host-uuid"
 
 #. type: deftypevr
-#: doc/guix.texi:23730
+#: doc/guix.texi:26592
 msgid "Host UUID.  UUID must not have all digits be the same."
 msgstr "Für das Wirtssystem zu verwendende UUID. Bei der UUID dürfen nicht alle Ziffern gleich sein."
 
 #. type: deftypevr
-#: doc/guix.texi:23735
+#: doc/guix.texi:26597
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string host-uuid-source"
 msgstr "{@code{libvirt-configuration}-Parameter} Zeichenkette host-uuid-source"
 
 #. type: deftypevr
-#: doc/guix.texi:23737
+#: doc/guix.texi:26599
 msgid "Source to read host UUID."
 msgstr "Die Quelle, von der die UUID des Wirtssystems genommen wird."
 
 #. type: itemize
-#: doc/guix.texi:23741
+#: doc/guix.texi:26603
 msgid "@code{smbios}: fetch the UUID from @code{dmidecode -s system-uuid}"
 msgstr "@code{smbios}: Die UUID von @code{dmidecode -s system-uuid} holen."
 
 #. type: itemize
-#: doc/guix.texi:23744
+#: doc/guix.texi:26606
 msgid "@code{machine-id}: fetch the UUID from @code{/etc/machine-id}"
 msgstr "@code{machine-id}: Die UUID aus @code{/etc/machine-id} holen."
 
 #. type: deftypevr
-#: doc/guix.texi:23749
+#: doc/guix.texi:26611
 msgid "If @code{dmidecode} does not provide a valid UUID a temporary UUID will be generated."
 msgstr "Falls @code{dmidecode} keine gültige UUID liefert, wird eine temporäre UUID generiert."
 
 #. type: deftypevr
-#: doc/guix.texi:23751
+#: doc/guix.texi:26613
 msgid "Defaults to @samp{\"smbios\"}."
 msgstr "Die Vorgabe ist @samp{\"smbios\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:23754
+#: doc/guix.texi:26616
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer keepalive-interval"
 msgstr "{@code{libvirt-configuration}-Parameter} Ganze-Zahl keepalive-interval"
 
 #. type: deftypevr
-#: doc/guix.texi:23759
+#: doc/guix.texi:26621
 msgid "A keepalive message is sent to a client after @code{keepalive_interval} seconds of inactivity to check if the client is still responding.  If set to -1, libvirtd will never send keepalive requests; however clients can still send them and the daemon will send responses."
 msgstr "Einem Client wird eine Nachricht zum Aufrechterhalten der Verbindung gesendet, nachdem @code{keepalive_interval} Sekunden lang keine Aktivität stattgefunden hat. Damit kann überprüft werden, ob der Client noch antwortet. Wird dieses Feld auf -1 gesetzt, wird libvirtd niemals Aufrechterhaltungsanfragen senden; Clients können diese aber weiterhin dem Daemon schicken und er wird auf diese antworten."
 
 #. type: deftypevr
-#: doc/guix.texi:23764
+#: doc/guix.texi:26626
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer keepalive-count"
 msgstr "{@code{libvirt-configuration}-Parameter} Ganze-Zahl keepalive-count"
 
 #. type: deftypevr
-#: doc/guix.texi:23768
+#: doc/guix.texi:26630
 msgid "Maximum number of keepalive messages that are allowed to be sent to the client without getting any response before the connection is considered broken."
-msgstr "Wieviele Aufrechterhaltungsnachrichten höchstens zum Client geschickt werden dürfen, ohne dass eine Antwort zurückgekommen ist, bevor die Verbindung als abgebrochen gilt."
+msgstr "Wie viele Aufrechterhaltungsnachrichten höchstens zum Client geschickt werden dürfen, ohne dass eine Antwort zurückgekommen ist, bevor die Verbindung als abgebrochen gilt."
 
 #. type: deftypevr
-#: doc/guix.texi:23775
+#: doc/guix.texi:26637
 msgid "In other words, the connection is automatically closed approximately after @code{keepalive_interval * (keepalive_count + 1)} seconds since the last message received from the client.  When @code{keepalive-count} is set to 0, connections will be automatically closed after @code{keepalive-interval} seconds of inactivity without sending any keepalive messages."
 msgstr "Mit anderen Worten wird die Verbindung ungefähr dann automatisch geschlossen, wenn @code{keepalive_interval * (keepalive_count + 1)} Sekunden seit der letzten vom Client empfangenen Nachricht vergangen sind. Wenn @code{keepalive-count} auf 0 gesetzt wurde, werden Verbindungen dann automatisch geschlossen, wenn @code{keepalive-interval} Sekunden der Inaktivität vorausgegangen sind, ohne dass eine Aufrechterhaltungsnachricht versandt wurde."
 
 #. type: deftypevr
-#: doc/guix.texi:23780
+#: doc/guix.texi:26642
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer admin-keepalive-interval"
 msgstr "{@code{libvirt-configuration}-Parameter} Ganze-Zahl admin-keepalive-interval"
 
 #. type: deftypevr
-#: doc/guix.texi:23782 doc/guix.texi:23789
+#: doc/guix.texi:26644 doc/guix.texi:26651
 msgid "Same as above but for admin interface."
 msgstr "Wie oben, aber für die Administratorschnittstelle."
 
 #. type: deftypevr
-#: doc/guix.texi:23787
+#: doc/guix.texi:26649
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer admin-keepalive-count"
 msgstr "{@code{libvirt-configuration}-Parameter} Ganze-Zahl admin-keepalive-count"
 
 #. type: deftypevr
-#: doc/guix.texi:23794
+#: doc/guix.texi:26656
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer ovs-timeout"
 msgstr "{@code{libvirt-configuration}-Parameter} Ganze-Zahl ovs-timeout"
 
 #. type: deftypevr
-#: doc/guix.texi:23796
+#: doc/guix.texi:26658
 msgid "Timeout for Open vSwitch calls."
 msgstr "Zeitbeschränkung für Aufrufe über Open vSwitch."
 
 #. type: deftypevr
-#: doc/guix.texi:23800
+#: doc/guix.texi:26662
 msgid "The @code{ovs-vsctl} utility is used for the configuration and its timeout option is set by default to 5 seconds to avoid potential infinite waits blocking libvirt."
 msgstr "Das Werkzeug @code{ovs-vsctl} wird zur Konfiguration benutzt; die dort eingestellte Zeitbeschränkung ist nach Voreinstellung auf 5 Sekunden festgelegt, um zu verhindern, dass libvirt durch unbegrenztes Warten blockiert werden kann."
 
 #. type: subsubheading
-#: doc/guix.texi:23807
+#: doc/guix.texi:26669
 #, no-wrap
 msgid "Virtlog daemon"
 msgstr "Virtlog-Daemon"
 
 #. type: Plain text
-#: doc/guix.texi:23810
+#: doc/guix.texi:26672
 msgid "The virtlogd service is a server side daemon component of libvirt that is used to manage logs from virtual machine consoles."
 msgstr "Der virtlogd-Dienst ist eine serverseitige Daemon-Komponente von libvirt, die benutzt wird, um Protokolle der Konsolen von virtuellen Maschinen zu verwalten."
 
 #. type: Plain text
-#: doc/guix.texi:23816
+#: doc/guix.texi:26678
 msgid "This daemon is not used directly by libvirt client applications, rather it is called on their behalf by @code{libvirtd}. By maintaining the logs in a standalone daemon, the main @code{libvirtd} daemon can be restarted without risk of losing logs. The @code{virtlogd} daemon has the ability to re-exec()  itself upon receiving @code{SIGUSR1}, to allow live upgrades without downtime."
 msgstr "Dieser Daemon wird von libvirt-Clientanwendungen nicht direkt benutzt, sondern wird an deren Stelle vom @code{libvirtd} aufgerufen. Indem die Protokolle in einem eigenständigen Daemon vorgehalten werden, kann der eigentliche @code{libvirtd}-Daemon neu gestartet werden, ohne dass man riskiert, Protokolle zu verlieren. Der @code{virtlogd}-Daemon hat die Fähigkeit, sich selbst erneut mit exec() zu starten, wenn er @code{SIGUSR1} empfängt, damit Aktualisierungen ohne Ausfall möglich sind."
 
 #. type: deffn
-#: doc/guix.texi:23817
+#: doc/guix.texi:26679
 #, no-wrap
 msgid "{Scheme Variable} virtlog-service-type"
 msgstr "{Scheme-Variable} virtlog-service-type"
 
 #. type: deffn
-#: doc/guix.texi:23820
+#: doc/guix.texi:26682
 msgid "This is the type of the virtlog daemon.  Its value must be a @code{virtlog-configuration}."
 msgstr "Dies ist der Diensttyp des virtlog-Daemons. Sein Wert muss eine @code{virtlog-configuration} sein."
 
 #. type: lisp
-#: doc/guix.texi:23825
+#: doc/guix.texi:26687
 #, no-wrap
 msgid ""
 "(service virtlog-service-type\n"
@@ -44902,162 +49856,177 @@ msgstr ""
 "          (max-clients 1000)))\n"
 
 #. type: deftypevr
-#: doc/guix.texi:23828
+#: doc/guix.texi:26690
 #, no-wrap
 msgid "{@code{virtlog-configuration} parameter} integer log-level"
 msgstr "{@code{virtlog-configuration}-Parameter} Ganze-Zahl log-level"
 
 #. type: deftypevr
-#: doc/guix.texi:23835
+#: doc/guix.texi:26697
 #, no-wrap
 msgid "{@code{virtlog-configuration} parameter} string log-filters"
 msgstr "{@code{virtlog-configuration}-Parameter} Zeichenkette log-filters"
 
 #. type: deftypevr
-#: doc/guix.texi:23880
+#: doc/guix.texi:26702
+msgid "A filter allows to select a different logging level for a given category of logs The format for a filter is one of:"
+msgstr "Ein Filter ermöglicht es, für eine bestimmte Kategorie von Protokollen eine andere Protokollierungsstufe festzulegen. Filter müssen eines der folgenden Formate haben:"
+
+#. type: deftypevr
+#: doc/guix.texi:26719
+msgid "where @code{name} is a string which is matched against the category given in the @code{VIR_LOG_INIT()} at the top of each libvirt source file, e.g., \"remote\", \"qemu\", or \"util.json\" (the name in the filter can be a substring of the full category name, in order to match multiple similar categories), the optional \"+\" prefix tells libvirt to log stack trace for each message matching name, and @code{x} is the minimal level where matching messages should be logged:"
+msgstr "wobei @code{Name} eine Zeichenkette ist, die zu einer in der Umgebungsvariablen @code{VIR_LOG_INIT()} am Anfang jeder Quelldatei von libvirt angegebenen Kategorie passen muss, z.B.@: „remote“, „qemu“ oder „util.json“ (der Name im Filter kann auch nur ein Teil des vollständigen Kategoriennamens sein, wodurch mehrere, ähnliche passende Kategoriennamen möglich sind). Das optionale Präfix „+“ bedeutet, dass libvirt eine Rückverfolgung (d.h.@: ein „Stack Trace“) für jede zum Namen passende Nachricht ins Protokoll schreiben soll. @code{x} benennt jeweils die kleinste Stufe, deren passende Nachrichten protokolliert werden sollen."
+
+#. type: deftypevr
+#: doc/guix.texi:26742
 #, no-wrap
 msgid "{@code{virtlog-configuration} parameter} string log-outputs"
 msgstr "{@code{virtlog-configuration}-Parameter} Zeichenkette log-outputs"
 
 #. type: deftypevr
-#: doc/guix.texi:23885
+#: doc/guix.texi:26747
 msgid "An output is one of the places to save logging information The format for an output can be:"
 msgstr "Als Ausgabe bezeichnen wir einen der Orte, an denen Protokollinformationen gespeichert werden. Eine Ausgabe wird auf eine der folgenden Arten angegeben:"
 
 #. type: deftypevr
-#: doc/guix.texi:23925
+#: doc/guix.texi:26787
 #, no-wrap
 msgid "{@code{virtlog-configuration} parameter} integer max-clients"
 msgstr "{@code{virtlog-configuration}-Parameter} Ganze-Zahl max-clients"
 
 #. type: deftypevr
-#: doc/guix.texi:23930
+#: doc/guix.texi:26792
 msgid "Defaults to @samp{1024}."
 msgstr "Die Vorgabe ist @samp{1024}."
 
 #. type: deftypevr
-#: doc/guix.texi:23933
+#: doc/guix.texi:26795
 #, no-wrap
 msgid "{@code{virtlog-configuration} parameter} integer max-size"
 msgstr "{@code{virtlog-configuration}-Parameter} Ganze-Zahl max-size"
 
 #. type: deftypevr
-#: doc/guix.texi:23935
+#: doc/guix.texi:26797
 msgid "Maximum file size before rolling over."
 msgstr "Wie groß eine Protokolldatei werden darf, bevor eine neue begonnen wird."
 
 #. type: deftypevr
-#: doc/guix.texi:23937
+#: doc/guix.texi:26799
 msgid "Defaults to @samp{2MB}"
 msgstr "Die Vorgabe ist @samp{2MB}."
 
 #. type: deftypevr
-#: doc/guix.texi:23940
+#: doc/guix.texi:26802
 #, no-wrap
 msgid "{@code{virtlog-configuration} parameter} integer max-backups"
 msgstr "{@code{virtlog-configuration}-Parameter} Ganze-Zahl max-backups"
 
 #. type: deftypevr
-#: doc/guix.texi:23942
+#: doc/guix.texi:26804
 msgid "Maximum number of backup files to keep."
-msgstr "Wieviele Dateien mit Sicherungskopien gespeichert bleiben sollen."
+msgstr "Wie viele Dateien mit Sicherungskopien gespeichert bleiben sollen."
 
 #. type: deftypevr
-#: doc/guix.texi:23944
+#: doc/guix.texi:26806
 msgid "Defaults to @samp{3}"
 msgstr "Die Vorgabe ist @samp{3}."
 
+#. type: anchor{#1}
+#: doc/guix.texi:26810
+msgid "transparent-emulation-qemu"
+msgstr "transparent-emulation-qemu"
+
 #. type: subsubheading
-#: doc/guix.texi:23947
+#: doc/guix.texi:26810
 #, no-wrap
 msgid "Transparent Emulation with QEMU"
 msgstr "Transparente Emulation mit QEMU"
 
 #. type: cindex
-#: doc/guix.texi:23949
+#: doc/guix.texi:26812
 #, no-wrap
 msgid "emulation"
 msgstr "Emulation"
 
 #. type: code{#1}
-#: doc/guix.texi:23950
+#: doc/guix.texi:26813
 #, no-wrap
 msgid "binfmt_misc"
 msgstr "binfmt_misc"
 
 #. type: Plain text
-#: doc/guix.texi:23956
-msgid "@code{qemu-binfmt-service-type} provides support for transparent emulation of program binaries built for different architectures---e.g., it allows you to transparently execute an ARMv7 program on an x86_64 machine.  It achieves this by combining the @uref{https://www.qemu.org, QEMU} emulator and the @code{binfmt_misc} feature of the kernel Linux."
-msgstr "Mit @code{qemu-binfmt-service-type} wird transparente Emulation von Programm-Binärdateien, die für unterschiedliche Architekturen erstellt wurden, ermöglicht. Z.B.@: können Sie ein ARMv7-Programm „einfach so“ transparent auf einer x86_64-Maschine ausführen. Dazu wird der @uref{https://www.qemu.org, QEMU-Emulator} mit der @code{binfmt_misc}-Funktionalität des Kernels Linux kombiniert."
+#: doc/guix.texi:26821
+msgid "@code{qemu-binfmt-service-type} provides support for transparent emulation of program binaries built for different architectures---e.g., it allows you to transparently execute an ARMv7 program on an x86_64 machine.  It achieves this by combining the @uref{https://www.qemu.org, QEMU} emulator and the @code{binfmt_misc} feature of the kernel Linux.  This feature only allows you to emulate GNU/Linux on a different architecture, but see below for GNU/Hurd support."
+msgstr "Mit @code{qemu-binfmt-service-type} wird transparente Emulation von Programm-Binärdateien, die für unterschiedliche Architekturen erstellt wurden, ermöglicht. Z.B.@: können Sie ein ARMv7-Programm „einfach so“ transparent auf einer x86_64-Maschine ausführen. Dazu wird der @uref{https://www.qemu.org, QEMU-Emulator} mit der @code{binfmt_misc}-Funktionalität des Kernels Linux kombiniert. Mit dieser Funktionalität können Sie jedoch nur ein GNU/Linux-System, das auf einer anderen Architektur läuft, emulieren. Unterstützung für GNU/Hurd ist auch möglich, lesen Sie dazu unten weiter."
 
 #. type: defvr
-#: doc/guix.texi:23957
+#: doc/guix.texi:26822
 #, no-wrap
 msgid "{Scheme Variable} qemu-binfmt-service-type"
 msgstr "{Scheme-Variable} qemu-binfmt-service-type"
 
 #. type: defvr
-#: doc/guix.texi:23962
+#: doc/guix.texi:26827
 msgid "This is the type of the QEMU/binfmt service for transparent emulation.  Its value must be a @code{qemu-binfmt-configuration} object, which specifies the QEMU package to use as well as the architecture we want to emulated:"
 msgstr "Dies ist der Diensttyp des QEMU/binfmt-Dienstes für transparente Emulation. Sein Wert muss ein @code{qemu-binfmt-configuration}-Objekt sein, das das QEMU-Paket angibt, das benutzt werden soll, sowie die Architektur, die wir emulieren möchten."
 
 #. type: lisp
-#: doc/guix.texi:23967
+#: doc/guix.texi:26832
 #, no-wrap
 msgid ""
 "(service qemu-binfmt-service-type\n"
 "         (qemu-binfmt-configuration\n"
-"           (platforms (lookup-qemu-platforms \"arm\" \"aarch64\" \"mips64el\"))))\n"
+"           (platforms (lookup-qemu-platforms \"arm\" \"aarch64\"))))\n"
 msgstr ""
 "(service qemu-binfmt-service-type\n"
 "         (qemu-binfmt-configuration\n"
-"           (platforms (lookup-qemu-platforms \"arm\" \"aarch64\" \"mips64el\"))))\n"
+"           (platforms (lookup-qemu-platforms \"arm\" \"aarch64\"))))\n"
 
 #. type: defvr
-#: doc/guix.texi:23973
+#: doc/guix.texi:26838
 msgid "In this example, we enable transparent emulation for the ARM and aarch64 platforms.  Running @code{herd stop qemu-binfmt} turns it off, and running @code{herd start qemu-binfmt} turns it back on (@pxref{Invoking herd, the @command{herd} command,, shepherd, The GNU Shepherd Manual})."
-msgstr "In diesem Beispiel aktivieren wir transparente Emulation für die Plattformen ARM und aarch64. Wenn wir @code{herd stop qemu-binfmt} ausführen, wird diese abgeschaltet, und mit @code{herd start qemu-binfmt} wird sie wieder aktiv (siehe @ref{Invoking herd, the @command{herd} command,, shepherd, The GNU Shepherd Manual})."
+msgstr "In diesem Beispiel aktivieren wir transparente Emulation für die Plattformen ARM und aarch64. Wenn wir @code{herd stop qemu-binfmt} ausführen, wird diese abgeschaltet, und mit @code{herd start qemu-binfmt} wird sie wieder aktiv (siehe @ref{Invoking herd, den @command{herd}-Befehl,, shepherd, The GNU Shepherd Manual})."
 
 #. type: deftp
-#: doc/guix.texi:23975
+#: doc/guix.texi:26840
 #, no-wrap
 msgid "{Data Type} qemu-binfmt-configuration"
 msgstr "{Datentyp} qemu-binfmt-configuration"
 
 #. type: deftp
-#: doc/guix.texi:23977
+#: doc/guix.texi:26842
 msgid "This is the configuration for the @code{qemu-binfmt} service."
 msgstr "Dies ist die Konfiguration des @code{qemu-binfmt}-Dienstes."
 
 #. type: item
-#: doc/guix.texi:23979
+#: doc/guix.texi:26844
 #, no-wrap
 msgid "@code{platforms} (default: @code{'()})"
 msgstr "@code{platforms} (Vorgabe: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:23982
+#: doc/guix.texi:26847
 msgid "The list of emulated QEMU platforms.  Each item must be a @dfn{platform object} as returned by @code{lookup-qemu-platforms} (see below)."
 msgstr "Die Liste der emulierten QEMU-Plattformen. Jeder Eintrag muss ein @dfn{Plattformobjekt} sein, wie @code{lookup-qemu-platforms} eines zurückliefert (siehe unten)."
 
 #. type: item
-#: doc/guix.texi:23983
+#: doc/guix.texi:26848
 #, no-wrap
 msgid "@code{guix-support?} (default: @code{#f})"
 msgstr "@code{guix-support?} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:23989
-msgid "When it is true, QEMU and all its dependencies are added to the build environment of @command{guix-daemon} (@pxref{Invoking guix-daemon, @code{--chroot-directory} option}).  This allows the @code{binfmt_misc} handlers to be used within the build environment, which in turn means that you can transparently build programs for another architecture."
-msgstr "Wenn es auf wahr gesetzt ist, werden QEMU und all seine Abhängigkeiten zur Erstellungsumgebung des @command{guix-daemon} hinzugefügt (siehe @ref{Invoking guix-daemon, @code{--chroot-directory}-Option}). Dadurch können die @code{binfmt_misc}-Handler innerhalb der Erstellungsumgebung benutzt werden, wodurch Sie Programme transparent für eine andere Architektur erstellen können."
+#: doc/guix.texi:26854
+msgid "When it is true, QEMU and all its dependencies are added to the build environment of @command{guix-daemon} (@pxref{Invoking guix-daemon, @option{--chroot-directory} option}).  This allows the @code{binfmt_misc} handlers to be used within the build environment, which in turn means that you can transparently build programs for another architecture."
+msgstr "Wenn es auf wahr gesetzt ist, werden QEMU und all seine Abhängigkeiten zur Erstellungsumgebung des @command{guix-daemon} hinzugefügt (siehe @ref{Invoking guix-daemon, @option{--chroot-directory}-Option}). Dadurch können die @code{binfmt_misc}-Handler innerhalb der Erstellungsumgebung benutzt werden, wodurch Sie Programme transparent für eine andere Architektur erstellen können."
 
 #. type: table
-#: doc/guix.texi:23992
+#: doc/guix.texi:26857
 msgid "For example, let's suppose you're on an x86_64 machine and you have this service:"
 msgstr "Wenn wir zum Beispiel annehmen, Sie arbeiten auf einer x86_64-Maschine und haben diesen Dienst eingerichtet:"
 
 #. type: lisp
-#: doc/guix.texi:23998
+#: doc/guix.texi:26863
 #, no-wrap
 msgid ""
 "(service qemu-binfmt-service-type\n"
@@ -45071,262 +50040,1791 @@ msgstr ""
 "           (guix-support? #t)))\n"
 
 #. type: table
-#: doc/guix.texi:24001
+#: doc/guix.texi:26866
 msgid "You can run:"
 msgstr "Dann können Sie das hier ausführen:"
 
 #. type: example
-#: doc/guix.texi:24004
+#: doc/guix.texi:26869
 #, no-wrap
 msgid "guix build -s armhf-linux inkscape\n"
 msgstr "guix build -s armhf-linux inkscape\n"
 
 #. type: table
-#: doc/guix.texi:24011
+#: doc/guix.texi:26876
 msgid "and it will build Inkscape for ARMv7 @emph{as if it were a native build}, transparently using QEMU to emulate the ARMv7 CPU.  Pretty handy if you'd like to test a package build for an architecture you don't have access to!"
 msgstr "und alles verhält sich so, als würden Sie Inkscape für ARMv7 @emph{wie „nativ“ auf einem ARM-Rechner erstellen}, wozu QEMU transparent benutzt wird, um den ARMv7-Prozessor zu emulieren. Das ist ganz schön praktisch, wenn Sie testen wollen, ob ein Paket für eine Architektur erstellt werden kann, die Ihnen nicht zur Verfügung steht."
 
 #. type: item
-#: doc/guix.texi:24012
+#: doc/guix.texi:26877
 #, no-wrap
 msgid "@code{qemu} (default: @code{qemu})"
 msgstr "@code{qemu} (Vorgabe: @code{qemu})"
 
 #. type: table
-#: doc/guix.texi:24014
+#: doc/guix.texi:26879 doc/guix.texi:26973
 msgid "The QEMU package to use."
 msgstr "Das QEMU-Paket, das benutzt werden soll."
 
 #. type: deffn
-#: doc/guix.texi:24017
+#: doc/guix.texi:26882
 #, no-wrap
 msgid "{Scheme Procedure} lookup-qemu-platforms @var{platforms}@dots{}"
 msgstr "{Scheme-Prozedur} lookup-qemu-platforms @var{Plattformen}…"
 
 #. type: deffn
-#: doc/guix.texi:24022
+#: doc/guix.texi:26887
 msgid "Return the list of QEMU platform objects corresponding to @var{platforms}@dots{}.  @var{platforms} must be a list of strings corresponding to platform names, such as @code{\"arm\"}, @code{\"sparc\"}, @code{\"mips64el\"}, and so on."
-msgstr "Liefert die Liste der QEMU-Plattformobjekte, die den @var{Plattformen}… entsprechen. @var{Plattformen} muss eine Liste von Zeichenketten sein, die den Namen der Plattformen entsprechen, wie z.B.@: @code{\"arm\"}, @code{\"sparc\"}, @code{\"mips64el\"} und so weiter."
+msgstr "Liefert die Liste der QEMU-Plattformobjekte, die den @var{Plattformen}…@: entsprechen. @var{Plattformen} muss eine Liste von Zeichenketten sein, die den Namen der Plattformen entsprechen, wie z.B.@: @code{\"arm\"}, @code{\"sparc\"}, @code{\"mips64el\"} und so weiter."
 
 #. type: deffn
-#: doc/guix.texi:24024
+#: doc/guix.texi:26889
 #, no-wrap
 msgid "{Scheme Procedure} qemu-platform? @var{obj}"
 msgstr "{Scheme-Prozedur} qemu-platform? @var{Objekt}"
 
 #. type: deffn
-#: doc/guix.texi:24026
+#: doc/guix.texi:26891
 msgid "Return true if @var{obj} is a platform object."
 msgstr "Liefert wahr, wenn das @var{Objekt} ein Plattformobjekt ist."
 
 #. type: deffn
-#: doc/guix.texi:24028
+#: doc/guix.texi:26893
 #, no-wrap
 msgid "{Scheme Procedure} qemu-platform-name @var{platform}"
 msgstr "{Scheme-Prozedur} qemu-platform-name @var{Plattform}"
 
 #. type: deffn
-#: doc/guix.texi:24030
+#: doc/guix.texi:26895
 msgid "Return the name of @var{platform}---a string such as @code{\"arm\"}."
 msgstr "Liefert den Namen der @var{Plattform}, also eine Zeichenkette wie z.B.@: @code{\"arm\"}."
 
+#. type: subsubheading
+#: doc/guix.texi:26898
+#, no-wrap
+msgid "The Hurd in a Virtual Machine"
+msgstr "GNU@tie{}Hurd in einer virtuellen Maschine"
+
+#. type: cindex
+#: doc/guix.texi:26901
+#, no-wrap
+msgid "the Hurd"
+msgstr "Hurd"
+
+#. type: cindex
+#: doc/guix.texi:26902
+#, no-wrap
+msgid "childhurd"
+msgstr "childhurd"
+
 #. type: Plain text
-#: doc/guix.texi:24042
+#: doc/guix.texi:26910
+msgid "Service @code{hurd-vm} provides support for running GNU/Hurd in a virtual machine (VM), a so-called @dfn{childhurd}.  This service is meant to be used on GNU/Linux and the given GNU/Hurd operating system configuration is cross-compiled.  The virtual machine is a Shepherd service that can be referred to by the names @code{hurd-vm} and @code{childhurd} and be controlled with commands such as:"
+msgstr "Der @code{hurd-vm}-Dienst bietet Unterstützung, um GNU/Hurd in einer virtuellen Maschine (VM) laufen zu lassen, als eine sogenannte „Kind-Hurd“, englisch @dfn{Childhurd}. Der Dienst ist für die Nutzung mit GNU/Linux-Systemen gedacht; die angegebene GNU/Hurd-Konfiguration wird cross-kompiliert. Die virtuelle Maschine läuft als ein Shepherd-Dienst, der durch Namen wie @code{hurd-vm} und @code{childhurd} bezeichnet wird und mit Befehlen wie den folgenden gesteuert werden kann:"
+
+#. type: example
+#: doc/guix.texi:26914
+#, no-wrap
+msgid ""
+"herd start hurd-vm\n"
+"herd stop childhurd\n"
+msgstr ""
+"herd start hurd-vm\n"
+"herd stop childhurd\n"
+
+#. type: Plain text
+#: doc/guix.texi:26918
+msgid "When the service is running, you can view its console by connecting to it with a VNC client, for example with:"
+msgstr "Während der Dienst läuft, können Sie seine Konsole anzeigen lassen, indem Sie sich über einen VNC-Client mit ihm verbinden, z.B.@: durch den Befehl:"
+
+#. type: example
+#: doc/guix.texi:26922
+#, no-wrap
+msgid ""
+"guix environment --ad-hoc tigervnc-client -- \\\n"
+"         vncviewer localhost:5900\n"
+msgstr ""
+"guix environment --ad-hoc tigervnc-client -- \\\n"
+"         vncviewer localhost:5900\n"
+
+#. type: Plain text
+#: doc/guix.texi:26928
+msgid "The default configuration (see @code{hurd-vm-configuration} below)  spawns a secure shell (SSH) server in your GNU/Hurd system, which QEMU (the virtual machine emulator) redirects to port 10222 on the host.  Thus, you can connect over SSH to the childhurd with:"
+msgstr "Die Vorgabekonfiguration (siehe @code{hurd-vm-configuration} unten) lässt einen Server für Secure Shell (SSH) in Ihrem GNU/Hurd-System laufen, welchen QEMU (der Emulator für virtuelle Maschinen) an Port 10222 des Wirtssystems weitergibt. So können Sie sich mit der Childhurd über SSH verbinden:"
+
+#. type: example
+#: doc/guix.texi:26931
+#, no-wrap
+msgid "ssh root@@localhost -p 10022\n"
+msgstr "ssh root@@localhost -p 10022\n"
+
+#. type: Plain text
+#: doc/guix.texi:26940
+msgid "The childhurd is volatile and stateless: it starts with a fresh root file system every time you restart it.  By default though, all the files under @file{/etc/childhurd} on the host are copied as is to the root file system of the childhurd when it boots.  This allows you to initialize ``secrets'' inside the VM: SSH host keys, authorized substitute keys, and so on---see the explanation of @code{secret-root} below."
+msgstr "Die Childhurd ist flüchtig und zustandslos: Jedes Mal, wenn Sie sie neu starten, hat sie wieder ihr ursprüngliches Wurzeldateisystem. Nur die Dateien unter @file{/etc/childhurd} im Wirtssystem werden nach Vorgabe in das Wurzeldateisystem der Childhurd übernommen, wenn sie startet. So können Sie einen Startwert für „Geheimnisse“ in der VM angeben: SSH-Host-Schlüssel, Autorisierungsschlüssel für Substitute und so weiter — siehe die Erklärung zu @code{secret-root} unten."
+
+#. type: defvr
+#: doc/guix.texi:26941
+#, no-wrap
+msgid "{Scheme Variable} hurd-vm-service-type"
+msgstr "{Scheme-Variable} hurd-vm-service-type"
+
+#. type: defvr
+#: doc/guix.texi:26947
+msgid "This is the type of the Hurd in a Virtual Machine service.  Its value must be a @code{hurd-vm-configuration} object, which specifies the operating system (@pxref{operating-system Reference}) and the disk size for the Hurd Virtual Machine, the QEMU package to use as well as the options for running it."
+msgstr "Dies ist der Diensttyp zum Hurd-in-einer-virtuellen-Maschine-Dienst. Dessen Wert muss ein @code{hurd-vm-configuration}-Objekt sein, das das Betriebssystem festlegt (siehe @ref{operating-system Reference}) und die Plattengröße für die virtuelle Hurd-Maschine, das zu nutzende QEMU-Paket sowie die Befehlszeilenoptionen, um sie auszuführen."
+
+#. type: lisp
+#: doc/guix.texi:26955
+#, no-wrap
+msgid ""
+"(service hurd-vm-service-type\n"
+"         (hurd-vm-configuration\n"
+"          (disk-size (* 5000 (expt 2 20))) ;5G\n"
+"          (memory-size 1024)))             ;1024MiB\n"
+msgstr ""
+"(service hurd-vm-service-type\n"
+"         (hurd-vm-configuration\n"
+"          (disk-size (* 5000 (expt 2 20))) ;5G\n"
+"          (memory-size 1024)))             ;1024MiB\n"
+
+#. type: defvr
+#: doc/guix.texi:26959
+msgid "would create a disk image big enough to build GNU@tie{}Hello, with some extra memory."
+msgstr "würde zur Erzeugung eines Disk-Images führen, dessen Größe für die Erstellung von GNU@tie{}Hello ausreichend ist und das noch ein wenig zusätzlichen Arbeitsspeicher zur Verfügung stellt."
+
+#. type: deftp
+#: doc/guix.texi:26961
+#, no-wrap
+msgid "{Data Type} hurd-vm-configuration"
+msgstr "{Datentyp} hurd-vm-configuration"
+
+#. type: deftp
+#: doc/guix.texi:26964
+msgid "The data type representing the configuration for @code{hurd-vm-service-type}."
+msgstr "Der Datentyp, der die Konfiguration des @code{hurd-vm-service-type} repräsentiert."
+
+#. type: item
+#: doc/guix.texi:26966
+#, no-wrap
+msgid "@code{os} (default: @var{%hurd-vm-operating-system})"
+msgstr "@code{os} (Vorgabe: @var{%hurd-vm-operating-system})"
+
+#. type: table
+#: doc/guix.texi:26970
+msgid "The operating system to instantiate.  This default is bare-bones with a permissive OpenSSH secure shell daemon listening on port 2222 (@pxref{Networking Services, @code{openssh-service-type}})."
+msgstr "Welches Betriebssystem instanziiert werden soll. Nach Vorgabe wird ein minimales „Bare-Bones“-System mit uneingeschränktem OpenSSH-Secure-Shell-Daemon, der auf Port 2222 lauscht (siehe @ref{Networking Services, @code{openssh-service-type}})."
+
+#. type: item
+#: doc/guix.texi:26971
+#, no-wrap
+msgid "@code{qemu} (default: @code{qemu-minimal})"
+msgstr "@code{qemu} (Vorgabe: @code{qemu-minimal})"
+
+#. type: item
+#: doc/guix.texi:26974
+#, no-wrap
+msgid "@code{image} (default: @var{hurd-vm-disk-image})"
+msgstr "@code{image} (Vorgabe: @var{hurd-vm-disk-image})"
+
+#. type: table
+#: doc/guix.texi:26977
+msgid "The procedure used to build the disk-image built from this configuration."
+msgstr "Die Prozedur, um das Disk-Image aus dieser Konfiguration zu erstellen."
+
+#. type: item
+#: doc/guix.texi:26978
+#, no-wrap
+msgid "@code{disk-size} (default: @code{'guess})"
+msgstr "@code{disk-size} (Vorgabe: @code{'guess})"
+
+#. type: table
+#: doc/guix.texi:26980
+msgid "The size of the disk image."
+msgstr "Die Größe des Disk-Images."
+
+#. type: item
+#: doc/guix.texi:26981
+#, no-wrap
+msgid "@code{memory-size} (default: @code{512})"
+msgstr "@code{memory-size} (Vorgabe: @code{512})"
+
+#. type: table
+#: doc/guix.texi:26983
+msgid "The memory size of the Virtual Machine in mebibytes."
+msgstr "Die Größe des Arbeitsspeichers der virtuellen Maschine in Mebibyte."
+
+#. type: item
+#: doc/guix.texi:26984
+#, no-wrap
+msgid "@code{options} (default: @code{'(\"--snapshot\")})"
+msgstr "@code{options} (Vorgabe: @code{'(\"--snapshot\")})"
+
+#. type: table
+#: doc/guix.texi:26986
+msgid "The extra options for running QEMU."
+msgstr "Weitere Befehlszeilenoptionen, mit denen QEMU ausgeführt wird."
+
+#. type: table
+#: doc/guix.texi:26991
+msgid "If set, a non-zero positive integer used to parameterize Childhurd instances.  It is appended to the service's name, e.g. @code{childhurd1}."
+msgstr "Wenn das Feld gesetzt ist, muss es eine positive ganze Zahl größer null sein, womit Childhurd-Instanzen parametrisiert werden. Es wird an den Dienstnamen angehängt, z.B.@: @code{childhurd1}."
+
+#. type: item
+#: doc/guix.texi:26992
+#, no-wrap
+msgid "@code{net-options} (default: @var{hurd-vm-net-options})"
+msgstr "@code{net-options} (Vorgabe: @var{hurd-vm-net-options})"
+
+#. type: table
+#: doc/guix.texi:26994
+msgid "The procedure used to produce the list of QEMU networking options."
+msgstr "Die Prozedur, um die Liste der QEMU-Netzwerkoptionen zu erzeugen."
+
+#. type: table
+#: doc/guix.texi:26996
+msgid "By default, it produces"
+msgstr "Nach Vorgabe liefert sie"
+
+#. type: lisp
+#: doc/guix.texi:27003
+#, no-wrap
+msgid ""
+"'(\"--device\" \"rtl8139,netdev=net0\"\n"
+"  \"--netdev\" \"user,id=net0\\\n"
+"              ,hostfwd=tcp:127.0.0.1:@var{secrets-port}-:1004\\\n"
+"              ,hostfwd=tcp:127.0.0.1:@var{ssh-port}-:2222\\\n"
+"              ,hostfwd=tcp:127.0.0.1:@var{vnc-port}-:5900\")\n"
+msgstr ""
+"'(\"--device\" \"rtl8139,netdev=net0\"\n"
+"  \"--netdev\" \"user,id=net0\\\n"
+"              ,hostfwd=tcp:127.0.0.1:@var{secrets-port}-:1004\\\n"
+"              ,hostfwd=tcp:127.0.0.1:@var{ssh-port}-:2222\\\n"
+"              ,hostfwd=tcp:127.0.0.1:@var{vnc-port}-:5900\")\n"
+
+#. type: table
+#: doc/guix.texi:27006
+msgid "with forwarded ports:"
+msgstr "mit Portweiterleitungen:"
+
+#. type: example
+#: doc/guix.texi:27011
+#, no-wrap
+msgid ""
+"@var{secrets-port}: @code{(+ 11004 (* 1000 @var{ID}))}\n"
+"@var{ssh-port}: @code{(+ 10022 (* 1000 @var{ID}))}\n"
+"@var{vnc-port}: @code{(+ 15900 (* 1000 @var{ID}))}\n"
+msgstr ""
+"@var{secrets-port}: @code{(+ 11004 (* 1000 @var{ID}))}\n"
+"@var{ssh-port}: @code{(+ 10022 (* 1000 @var{ID}))}\n"
+"@var{vnc-port}: @code{(+ 15900 (* 1000 @var{ID}))}\n"
+
+#. type: item
+#: doc/guix.texi:27013
+#, no-wrap
+msgid "@code{secret-root} (default: @file{/etc/childhurd})"
+msgstr "@code{secret-root} (Vorgabe: @file{/etc/childhurd})"
+
+#. type: table
+#: doc/guix.texi:27018
+msgid "The root directory with out-of-band secrets to be installed into the childhurd once it runs.  Childhurds are volatile which means that on every startup, secrets such as the SSH host keys and Guix signing key are recreated."
+msgstr "Das Wurzelverzeichnis von Geheimnissen, die auf der Childhurd „out of band“, d.h.@: abseits vom Zuständigkeitsbereich der Childhurd, installiert werden sollen, sobald sie gestartet wurde. Childhurds sind flüchtig, d.h.@: bei jedem Start würden Geheimnisse wie die SSH-Host-Schlüssel und Signierschlüssel von Guix neu angelegt."
+
+#. type: table
+#: doc/guix.texi:27022
+msgid "If the @file{/etc/childhurd} directory does not exist, the @code{secret-service} running in the Childhurd will be sent an empty list of secrets."
+msgstr "Wenn das Verzeichnis @file{/etc/childhurd} @emph{nicht} existiert, wird dem im Childhurd laufenden @code{secret-service}-Dienst eine leere Liste von Geheimnissen geschickt."
+
+#. type: table
+#: doc/guix.texi:27025
+msgid "By default, the service automatically populates @file{/etc/childhurd} with the following non-volatile secrets, unless they already exist:"
+msgstr "Üblicherweise wird er benutzt, um in @file{\"/etc/childhurd\"} einen Dateibaum aus @emph{nicht} flüchtigen Geheimnissen einzufügen, wenn diese noch @emph{nicht} existieren:"
+
+#. type: example
+#: doc/guix.texi:27034
+#, no-wrap
+msgid ""
+"/etc/childhurd/etc/guix/acl\n"
+"/etc/childhurd/etc/guix/signing-key.pub\n"
+"/etc/childhurd/etc/guix/signing-key.sec\n"
+"/etc/childhurd/etc/ssh/ssh_host_ed25519_key\n"
+"/etc/childhurd/etc/ssh/ssh_host_ecdsa_key\n"
+"/etc/childhurd/etc/ssh/ssh_host_ed25519_key.pub\n"
+"/etc/childhurd/etc/ssh/ssh_host_ecdsa_key.pub\n"
+msgstr ""
+"/etc/childhurd/etc/guix/acl\n"
+"/etc/childhurd/etc/guix/signing-key.pub\n"
+"/etc/childhurd/etc/guix/signing-key.sec\n"
+"/etc/childhurd/etc/ssh/ssh_host_ed25519_key\n"
+"/etc/childhurd/etc/ssh/ssh_host_ecdsa_key\n"
+"/etc/childhurd/etc/ssh/ssh_host_ed25519_key.pub\n"
+"/etc/childhurd/etc/ssh/ssh_host_ecdsa_key.pub\n"
+
+#. type: table
+#: doc/guix.texi:27038
+msgid "These files are automatically sent to the guest Hurd VM when it boots, including permissions."
+msgstr "Diese Dateien werden automatisch an die Gast-Hurd-VM geschickt, wenn sie bootet, einschließlich der Dateiberechtigungen."
+
+#. type: cindex
+#: doc/guix.texi:27039
+#, no-wrap
+msgid "childhurd, offloading"
+msgstr "Childhurd, Auslagern auf"
+
+#. type: cindex
+#: doc/guix.texi:27040
+#, no-wrap
+msgid "Hurd, offloading"
+msgstr "Hurd, Auslagern auf"
+
+#. type: table
+#: doc/guix.texi:27044
+msgid "Having these files in place means that only a couple of things are missing to allow the host to offload @code{i586-gnu} builds to the childhurd:"
+msgstr "Wenn diese Dateien platziert wurden, fehlen nur noch wenige Dinge, damit das Wirtssystem @code{i586-gnu}-Erstellungen auf die Childhurd auslagern kann:"
+
+#. type: enumerate
+#: doc/guix.texi:27049
+msgid "Authorizing the childhurd's key on the host so that the host accepts build results coming from the childhurd, which can be done like so:"
+msgstr "Der Schlüssel der Childhurd muss auf dem Wirtssystem authentifiziert werden, damit das Wirtssystem von der Childhurd stammende Erstellungsergebnisse annimmt. Das geht so:"
+
+#. type: example
+#: doc/guix.texi:27053
+#, no-wrap
+msgid ""
+"guix archive --authorize < \\\n"
+"  /etc/childhurd/etc/guix/signing-key.pub\n"
+msgstr ""
+"guix archive --authorize < \\\n"
+"  /etc/childhurd/etc/guix/signing-key.pub\n"
+
+#. type: enumerate
+#: doc/guix.texi:27058
+msgid "Adding the childhurd to @file{/etc/guix/machines.scm} (@pxref{Daemon Offload Setup})."
+msgstr "Die Childhurd muss zu @file{/etc/guix/machines.scm} hinzugefügt werden (siehe @ref{Daemon Offload Setup})."
+
+#. type: table
+#: doc/guix.texi:27062
+msgid "We're working towards making that happen automatically---get in touch with us at @email{guix-devel@@gnu.org} to discuss it!"
+msgstr "Wir arbeiten daran, dass das automatisch passiert. Reden Sie mit uns unter @email{guix-devel@@gnu.org}, wenn Sie dabei mitdiskuttieren möchten!"
+
+#. type: Plain text
+#: doc/guix.texi:27069
+msgid "Note that by default the VM image is volatile, i.e., once stopped the contents are lost.  If you want a stateful image instead, override the configuration's @code{image} and @code{options} without the @code{--snapshot} flag using something along these lines:"
+msgstr "Beachten Sie, dass nach Vorgabe ein flüchtiges Abbild für die virtuelle Maschine benutzt wird, also dessen Inhalt verloren geht, sobald sie gestoppt wurde. Wenn Sie stattdessen ein zustandsbehaftetes Abbild möchten, ändern Sie die Felder @code{image} und @code{options} in der Konfiguration, so dass keine @code{--snapshot}-Befehlszeilenoption übergeben wird, z.B.@: so:"
+
+#. type: lisp
+#: doc/guix.texi:27075
+#, no-wrap
+msgid ""
+"(service hurd-vm-service-type\n"
+"         (hurd-vm-configuration\n"
+"          (image   (const \"/out/of/store/writable/hurd.img\"))\n"
+"          (options '())))\n"
+msgstr ""
+"(service hurd-vm-service-type\n"
+"         (hurd-vm-configuration\n"
+"          (image   (const \"/nicht/im/store/mit/schreibzugriff/hurd.img\"))\n"
+"          (options '())))\n"
+
+#. type: subsubheading
+#: doc/guix.texi:27077
+#, no-wrap
+msgid "Ganeti"
+msgstr "Ganeti"
+
+#. type: cindex
+#: doc/guix.texi:27079
+#, no-wrap
+msgid "ganeti"
+msgstr "ganeti"
+
+#. type: quotation
+#: doc/guix.texi:27086
+msgid "This service is considered experimental.  Configuration options may be changed in a backwards-incompatible manner, and not all features have been thorougly tested.  Users of this service are encouraged to share their experience at @email{guix-devel@@gnu.org}."
+msgstr "Dieser Dienst gilt als experimentell. Die Konfigurationsoptionen könnten in Zukunft noch auf eine Weise abgeändert werden, die keine Kompatibilität mit dem momentanen Verhalten gewährleistet, und nicht alle Funktionalitäten wurden gründlich getestet. Wenn Sie ihn benutzen, ermutigen wir Sie, Ihre Erfahrungen mit uns über @email{guix-devel@@gnu.org} zu teilen."
+
+#. type: Plain text
+#: doc/guix.texi:27096
+msgid "Ganeti is a virtual machine management system.  It is designed to keep virtual machines running on a cluster of servers even in the event of hardware failures, and to make maintenance and recovery tasks easy.  It consists of multiple services which are described later in this section.  In addition to the Ganeti service, you will need the OpenSSH service (@pxref{Networking Services, @code{openssh-service-type}}), and update the @file{/etc/hosts} file (@pxref{operating-system Reference, @code{hosts-file}}) with the cluster name and address (or use a DNS server)."
+msgstr "Ganeti ist ein System zur Verwaltung virtueller Maschinen. Es ist dafür gedacht, virtuelle Maschinen auf einem Server-Cluster am Laufen zu halten, selbst wenn Hardware ausfällt, und deren Wartung und Wiederherstellung einfach zu machen. Es besteht aus mehreren Diensten, die später in diesem Abschnitt beschrieben werden. Zusätzlich zum Ganeti-Dienst brauchen Sie den OpenSSH-Dienst (siehe @ref{Networking Services, @code{openssh-service-type}}) und müssen in die Datei @file{/etc/hosts} (siehe @ref{operating-system Reference, @code{hosts-file}}) den Namen des Clusters mit Adresse eintragen lassen (oder Sie verwenden einen eigenen DNS-Server)."
+
+#. type: Plain text
+#: doc/guix.texi:27101
+msgid "All nodes participating in a Ganeti cluster should have the same Ganeti and @file{/etc/hosts} configuration.  Here is an example configuration for a Ganeti cluster node that supports multiple storage backends, and installs the @code{debootstrap} and @code{guix} @dfn{OS providers}:"
+msgstr "Alle Knoten, die an einem Ganeti-Cluster teilnehmen, sollten dieselbe Konfiguration von Ganeti und @file{/etc/hosts} aufweisen. Hier ist eine Beispielkonfiguration für einen Ganeti-Clusterknoten, der mehrere Hintergrundsysteme für Speichergeräte unterstützt und die @dfn{Betriebssystemanbieter} („OS providers“) @code{debootstrap} sowie @code{guix} installiert hat:"
+
+#. type: lisp
+#: doc/guix.texi:27111
+#, no-wrap
+msgid ""
+"(use-package-modules virtualization)\n"
+"(use-service-modules base ganeti networking ssh)\n"
+"(operating-system\n"
+"  ;; @dots{}\n"
+"  (host-name \"node1\")\n"
+"  (hosts-file (plain-file \"hosts\" (format #f \"\n"
+"127.0.0.1       localhost\n"
+"::1             localhost\n"
+"\n"
+msgstr ""
+"(use-package-modules virtualization)\n"
+"(use-service-modules base ganeti networking ssh)\n"
+"(operating-system\n"
+"  ;; …\n"
+"  (host-name \"node1\")\n"
+"  (hosts-file (plain-file \"hosts\" (format #f \"\n"
+"127.0.0.1       localhost\n"
+"::1             localhost\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:27116
+#, no-wrap
+msgid ""
+"192.168.1.200   ganeti.example.com\n"
+"192.168.1.201   node1.example.com node1\n"
+"192.168.1.202   node2.example.com node2\n"
+"\")))\n"
+"\n"
+msgstr ""
+"192.168.1.200   ganeti.example.com\n"
+"192.168.1.201   node1.example.com node1\n"
+"192.168.1.202   node2.example.com node2\n"
+"\")))\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:27130
+#, no-wrap
+msgid ""
+"  ;; Install QEMU so we can use KVM-based instances, and LVM, DRBD and Ceph\n"
+"  ;; in order to use the \"plain\", \"drbd\" and \"rbd\" storage backends.\n"
+"  (packages (append (map specification->package\n"
+"                         '(\"qemu\" \"lvm2\" \"drbd-utils\" \"ceph\"\n"
+"                           ;; Add the debootstrap and guix OS providers.\n"
+"                           \"ganeti-instance-guix\" \"ganeti-instance-debootstrap\"))\n"
+"                    %base-packages))\n"
+"  (services\n"
+"   (append (list (static-networking-service \"eth0\" \"192.168.1.201\"\n"
+"                                            #:netmask \"255.255.255.0\"\n"
+"                                            #:gateway \"192.168.1.254\"\n"
+"                                            #:name-servers '(\"192.168.1.252\"\n"
+"                                                             \"192.168.1.253\"))\n"
+"\n"
+msgstr ""
+"  ;; QEMU installieren, damit wir auf KVM aufsetzende Instanzen benutzen\n"
+"  ;; können, sowie LVM, DRBD und Ceph, damit wir die Speicher-Hintergrundsysteme\n"
+"  ;; \"plain\", \"drbd\" und \"rbd\" benutzen können.\n"
+"  (packages (append (map specification->package\n"
+"                         '(\"qemu\" \"lvm2\" \"drbd-utils\" \"ceph\"\n"
+"                           ;; Betriebssystemanbieter debootstrap und guix:\n"
+"                           \"ganeti-instance-guix\" \"ganeti-instance-debootstrap\"))\n"
+"                    %base-packages))\n"
+"  (services\n"
+"   (append (list (static-networking-service \"eth0\" \"192.168.1.201\"\n"
+"                                            #:netmask \"255.255.255.0\"\n"
+"                                            #:gateway \"192.168.1.254\"\n"
+"                                            #:name-servers '(\"192.168.1.252\"\n"
+"                                                             \"192.168.1.253\"))\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:27135
+#, no-wrap
+msgid ""
+"                 ;; Ganeti uses SSH to communicate between nodes.\n"
+"                 (service openssh-service-type\n"
+"                          (openssh-configuration\n"
+"                           (permit-root-login 'without-password)))\n"
+"\n"
+msgstr ""
+"                 ;; Ganeti benutzt SSH für die Kommunikation zwischen Knoten.\n"
+"                 (service openssh-service-type\n"
+"                          (openssh-configuration\n"
+"                           (permit-root-login 'without-password)))\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:27145
+#, no-wrap
+msgid ""
+"                 (service ganeti-service-type\n"
+"                          (ganeti-configuration\n"
+"                           ;; This list specifies allowed file system paths\n"
+"                           ;; for storing virtual machine images.\n"
+"                           (file-storage-paths '(\"/srv/ganeti/file-storage\"))\n"
+"                           ;; This variable configures a single \"variant\" for\n"
+"                           ;; both Debootstrap and Guix that works with KVM.\n"
+"                           (os %default-ganeti-os))))\n"
+"           %base-services)))\n"
+msgstr ""
+"                 (service ganeti-service-type\n"
+"                          (ganeti-configuration\n"
+"                           ;; Diese Liste führt die Pfade im Dateisystem auf,\n"
+"                           ;; wo Abbilder virtueller Maschinen gespeichert\n"
+"                           ;; werden.\n"
+"                           (file-storage-paths '(\"/srv/ganeti/file-storage\"))\n"
+"                           ;; In dieser Variablen konfigurieren wir eine einzige\n"
+"                           ;; „Variante“ jeweils für sowohl Debootstrap als auch\n"
+"                           ;; Guix, die KVM benutzt.\n"
+"                           (os %default-ganeti-os))))\n"
+"           %base-services)))\n"
+
+#. type: Plain text
+#: doc/guix.texi:27153
+msgid "Users are advised to read the @url{http://docs.ganeti.org/ganeti/master/html/admin.html,Ganeti administrators guide} to learn about the various cluster options and day-to-day operations.  There is also a @url{https://guix.gnu.org/blog/2020/running-a-ganeti-cluster-on-guix/,blog post} describing how to configure and initialize a small cluster."
+msgstr "Benutzern wird geraten, die @url{http://docs.ganeti.org/ganeti/master/html/admin.html,Anleitung für Ganeti-Administratoren} zu lesen, um die verschiedenen Optionen für Ganeti-Cluster und die häufigen Operationen zu erlernen. Es gibt auch einen @url{https://guix.gnu.org/blog/2020/running-a-ganeti-cluster-on-guix/,Blogeintrag}, der beschreibt, wie man einen kleinen Cluster konfiguriert und initialisiert."
+
+#. type: defvr
+#: doc/guix.texi:27154
+#, no-wrap
+msgid "{Scheme Variable} ganeti-service-type"
+msgstr "{Scheme-Variable} ganeti-service-type"
+
+#. type: defvr
+#: doc/guix.texi:27157
+msgid "This is a service type that includes all the various services that Ganeti nodes should run."
+msgstr "Dieser Diensttyp umfasst all die verschiedenen Dienste, die auf Ganeti-Knoten ausgeführt werden sollen."
+
+#. type: defvr
+#: doc/guix.texi:27162
+msgid "Its value is a @code{ganeti-configuration} object that defines the package to use for CLI operations, as well as configuration for the various daemons.  Allowed file storage paths and available guest operating systems are also configured through this data type."
+msgstr "Sein Wert ist ein @code{ganeti-configuration}-Objekt, das das Paket für den Betrieb über die Befehlszeile sowie die Konfiguration der einzelnen Daemons festlegt. Auch werden zulässige Pfade für die Speicherung in Dateien sowie verfügbare Gastbetriebssysteme über diesen Datentyp konfiguriert."
+
+#. type: deftp
+#: doc/guix.texi:27164
+#, no-wrap
+msgid "{Data Type} ganeti-configuration"
+msgstr "{Datentyp} ganeti-configuration"
+
+#. type: deftp
+#: doc/guix.texi:27166
+msgid "The @code{ganeti} service takes the following configuration options:"
+msgstr "Der @code{ganeti}-Dienst akzeptiert folgende Konfigurationsoptionen:"
+
+#. type: item
+#: doc/guix.texi:27168 doc/guix.texi:27396 doc/guix.texi:27446
+#: doc/guix.texi:27476 doc/guix.texi:27503 doc/guix.texi:27535
+#: doc/guix.texi:27588 doc/guix.texi:27608 doc/guix.texi:27634
+#: doc/guix.texi:27667 doc/guix.texi:27707
+#, no-wrap
+msgid "@code{ganeti} (default: @code{ganeti})"
+msgstr "@code{ganeti} (Vorgabe: @code{ganeti})"
+
+#. type: table
+#: doc/guix.texi:27173
+msgid "The @code{ganeti} package to use.  It will be installed to the system profile and make @command{gnt-cluster}, @command{gnt-instance}, etc available.  Note that the value specified here does not affect the other services as each refer to a specific @code{ganeti} package (see below)."
+msgstr "Welches @code{ganeti}-Paket benutzt werden soll. Es wird ins Systemprofil installiert und macht die Befehlszeilenwerkzeuge @command{gnt-cluster}, @command{gnt-instance} usw.@: verfügbar. Beachten Sie, dass der hier angegebene Wert keinen Einfluss auf die anderen Dienste hat; jeder legt sein eigenes @code{ganeti}-Paket fest (siehe unten)."
+
+#. type: item
+#: doc/guix.texi:27174
+#, no-wrap
+msgid "@code{noded-configuration} (default: @code{(ganeti-noded-configuration)})"
+msgstr "@code{noded-configuration} (Vorgabe: @code{(ganeti-noded-configuration)})"
+
+#. type: itemx
+#: doc/guix.texi:27175
+#, no-wrap
+msgid "@code{confd-configuration} (default: @code{(ganeti-confd-configuration)})"
+msgstr "@code{confd-configuration} (Vorgabe: @code{(ganeti-confd-configuration)})"
+
+#. type: itemx
+#: doc/guix.texi:27176
+#, no-wrap
+msgid "@code{wconfd-configuration} (default: @code{(ganeti-wconfd-configuration)})"
+msgstr "@code{wconfd-configuration} (Vorgabe: @code{(ganeti-wconfd-configuration)})"
+
+#. type: itemx
+#: doc/guix.texi:27177
+#, no-wrap
+msgid "@code{luxid-configuration} (default: @code{(ganeti-luxid-configuration)})"
+msgstr "@code{luxid-configuration} (Vorgabe: @code{(ganeti-luxid-configuration)})"
+
+#. type: itemx
+#: doc/guix.texi:27178
+#, no-wrap
+msgid "@code{rapi-configuration} (default: @code{(ganeti-rapi-configuration)})"
+msgstr "@code{rapi-configuration} (Vorgabe: @code{(ganeti-rapi-configuration)})"
+
+#. type: itemx
+#: doc/guix.texi:27179
+#, no-wrap
+msgid "@code{kvmd-configuration} (default: @code{(ganeti-kvmd-configuration)})"
+msgstr "@code{kvmd-configuration} (Vorgabe: @code{(ganeti-kvmd-configuration)})"
+
+#. type: itemx
+#: doc/guix.texi:27180
+#, no-wrap
+msgid "@code{mond-configuration} (default: @code{(ganeti-mond-configuration)})"
+msgstr "@code{mond-configuration} (Vorgabe: @code{(ganeti-mond-configuration)})"
+
+#. type: itemx
+#: doc/guix.texi:27181
+#, no-wrap
+msgid "@code{metad-configuration} (default: @code{(ganeti-metad-configuration)})"
+msgstr "@code{metad-configuration} (Vorgabe: @code{(ganeti-metad-configuration)})"
+
+#. type: itemx
+#: doc/guix.texi:27182
+#, no-wrap
+msgid "@code{watcher-configuration} (default: @code{(ganeti-watcher-configuration)})"
+msgstr "@code{watcher-configuration} (Vorgabe: @code{(ganeti-watcher-configuration)})"
+
+#. type: itemx
+#: doc/guix.texi:27183
+#, no-wrap
+msgid "@code{cleaner-configuration} (default: @code{(ganeti-cleaner-configuration)})"
+msgstr "@code{cleaner-configuration} (Vorgabe: @code{(ganeti-cleaner-configuration)})"
+
+#. type: table
+#: doc/guix.texi:27188
+msgid "These options control the various daemons and cron jobs that are distributed with Ganeti.  The possible values for these are described in detail below.  To override a setting, you must use the configuration type for that service:"
+msgstr "Mit diesen Optionen stellen Sie die verschiedenen Daemons und Cron-Aufträge ein, die mit Ganeti eingerichtet werden. Die möglichen Werte dafür werden im Folgenden genau beschrieben. Um eine Einstellung zu ändern, müssen Sie den Konfigurationstyp für den jeweiligen Dienst verwenden:"
+
+#. type: lisp
+#: doc/guix.texi:27198
+#, no-wrap
+msgid ""
+"(service ganeti-service-type\n"
+"         (ganeti-configuration\n"
+"          (rapi-configuration\n"
+"           (ganeti-rapi-configuration\n"
+"            (interface \"eth1\"))))\n"
+"          (watcher-configuration\n"
+"           (ganeti-watcher-configuration\n"
+"            (rapi-ip \"10.0.0.1\"))))\n"
+msgstr ""
+"(service ganeti-service-type\n"
+"         (ganeti-configuration\n"
+"          (rapi-configuration\n"
+"           (ganeti-rapi-configuration\n"
+"            (interface \"eth1\"))))\n"
+"          (watcher-configuration\n"
+"           (ganeti-watcher-configuration\n"
+"            (rapi-ip \"10.0.0.1\"))))\n"
+
+#. type: item
+#: doc/guix.texi:27200
+#, no-wrap
+msgid "@code{file-storage-paths} (default: @code{'()})"
+msgstr "@code{file-storage-paths} (Vorgabe: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:27202
+msgid "List of allowed directories for file storage backend."
+msgstr "Liste zulässiger Verzeichnisse für das in Dateien speichernde Hintergrundsystem („File Storage Backend“)."
+
+#. type: item
+#: doc/guix.texi:27203
+#, no-wrap
+msgid "@code{os} (default: @code{%default-ganeti-os})"
+msgstr "@code{os} (Vorgabe: @code{%default-ganeti-os})"
+
+#. type: table
+#: doc/guix.texi:27205
+msgid "List of @code{<ganeti-os>} records."
+msgstr "Liste von @code{<ganeti-os>}-Verbundsobjekten."
+
+#. type: deftp
+#: doc/guix.texi:27209
+msgid "In essence @code{ganeti-service-type} is shorthand for declaring each service individually:"
+msgstr "Im Kern ist @code{ganeti-service-type} eine Kurzform davon, jeden Dienst einzeln zu deklarieren:"
+
+#. type: lisp
+#: doc/guix.texi:27220
+#, no-wrap
+msgid ""
+"(service ganeti-noded-service-type)\n"
+"(service ganeti-confd-service-type)\n"
+"(service ganeti-wconfd-service-type)\n"
+"(service ganeti-luxid-service-type)\n"
+"(service ganeti-kvmd-service-type)\n"
+"(service ganeti-mond-service-type)\n"
+"(service ganeti-metad-service-type)\n"
+"(service ganeti-watcher-service-type)\n"
+"(service ganeti-cleaner-service-type)\n"
+msgstr ""
+"(service ganeti-noded-service-type)\n"
+"(service ganeti-confd-service-type)\n"
+"(service ganeti-wconfd-service-type)\n"
+"(service ganeti-luxid-service-type)\n"
+"(service ganeti-kvmd-service-type)\n"
+"(service ganeti-mond-service-type)\n"
+"(service ganeti-metad-service-type)\n"
+"(service ganeti-watcher-service-type)\n"
+"(service ganeti-cleaner-service-type)\n"
+
+#. type: deftp
+#: doc/guix.texi:27224
+msgid "Plus a service extension for @code{etc-service-type} that configures the file storage backend and OS variants."
+msgstr "Außerdem enthalten ist eine Diensterweiterung für den @code{etc-service-type}, der das Hintergrundsystem für die Speicherung in Dateien und die Betriebssystemvarianten festlegt."
+
+#. type: deftp
+#: doc/guix.texi:27227
+#, no-wrap
+msgid "{Data Type} ganeti-os"
+msgstr "{Datentyp} ganeti-os"
+
+#. type: deftp
+#: doc/guix.texi:27230
+msgid "This data type is suitable for passing to the @code{os} parameter of @code{ganeti-configuration}.  It takes the following parameters:"
+msgstr "Dieser Datentyp wird verwendet, um ihn an den @code{os}-Parameter der @code{ganeti-configuration} zu übergeben. Er umfasst die folgenden Parameter:"
+
+#. type: table
+#: doc/guix.texi:27236
+msgid "The name for this OS provider.  It is only used to specify where the configuration ends up.  Setting it to ``debootstrap'' will create @file{/etc/ganeti/instance-debootstrap}."
+msgstr "Der Name dieses Betriebssystemanbieters. Sein einziger Zweck ist, anzugeben, wohin die Konfigurationsdateien geschrieben werden. Wird „debootstrap“ angegeben, wird @file{/etc/ganeti/instance-debootstrap} erstellt."
+
+#. type: code{#1}
+#: doc/guix.texi:27237
+#, no-wrap
+msgid "extension"
+msgstr "extension"
+
+#. type: table
+#: doc/guix.texi:27240
+msgid "The file extension for variants of this OS type.  For example @file{.conf} or @file{.scm}."
+msgstr "Welche Dateinamenserweiterung die Varianten dieser Art von Betriebssystem benutzen, zum Beispiel @file{.conf} oder @file{.scm}."
+
+#. type: item
+#: doc/guix.texi:27241
+#, no-wrap
+msgid "@code{variants} (default: @code{'()})"
+msgstr "@code{variants} (Vorgabe: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:27243
+msgid "List of @code{ganeti-os-variant} objects for this OS."
+msgstr "Die Liste der @code{ganeti-os-variant}-Objekte für dieses Betriebssystem."
+
+#. type: deftp
+#: doc/guix.texi:27247
+#, no-wrap
+msgid "{Data Type} ganeti-os-variant"
+msgstr "{Datentyp} ganeti-os-variant"
+
+#. type: deftp
+#: doc/guix.texi:27250
+msgid "This is the data type for a Ganeti OS variant.  It takes the following parameters:"
+msgstr "Der Datentyp für eine Variante einer Art von Betriebssystem. Er nimmt die folgenden Parameter:"
+
+#. type: table
+#: doc/guix.texi:27254
+msgid "The name of this variant."
+msgstr "Der Name dieser Variante."
+
+#. type: code{#1}
+#: doc/guix.texi:27255
+#, no-wrap
+msgid "configuration"
+msgstr "configuration"
+
+#. type: table
+#: doc/guix.texi:27257
+msgid "A configuration file for this variant."
+msgstr "Eine Konfigurationsdatei für diese Variante."
+
+#. type: defvr
+#: doc/guix.texi:27260
+#, no-wrap
+msgid "{Scheme Variable} %default-debootstrap-hooks"
+msgstr "{Scheme-Variable} %default-debootstrap-hooks"
+
+#. type: defvr
+#: doc/guix.texi:27262
+msgid "This variable contains hooks to configure networking and the GRUB bootloader."
+msgstr "Diese Variable enthält Anknüpfungspunkte („Hooks“), um das Netzwerk zu konfigurieren und den GRUB-Bootloader einzurichten."
+
+#. type: defvr
+#: doc/guix.texi:27264
+#, no-wrap
+msgid "{Scheme Variable} %default-debootstrap-extra-pkgs"
+msgstr "{Scheme-Variable} %default-debootstrap-extra-pkgs"
+
+#. type: defvr
+#: doc/guix.texi:27266
+msgid "This variable contains a list of packages suitable for a fully-virtualized guest."
+msgstr "Diese Variable führt eine Liste von Paketen auf, die für ein gänzlich virtualisiertes Gastsystem sinnvoll sind."
+
+#. type: deftp
+#: doc/guix.texi:27268
+#, no-wrap
+msgid "{Data Type} debootstrap-configuration"
+msgstr "{Datentyp} debootstrap-configuration"
+
+#. type: deftp
+#: doc/guix.texi:27271
+msgid "This data type creates configuration files suitable for the debootstrap OS provider."
+msgstr "Mit diesem Datentyp werden Konfigurationsdateien erzeugt, die für den debootstrap-Betriebssystemanbieter geeignet sind."
+
+#. type: item
+#: doc/guix.texi:27273
+#, no-wrap
+msgid "@code{hooks} (default: @code{%default-debootstrap-hooks})"
+msgstr "@code{hooks} (Vorgabe: @code{%default-debootstrap-hooks})"
+
+#. type: table
+#: doc/guix.texi:27277
+msgid "When not @code{#f}, this must be a G-expression that specifies a directory with scripts that will run when the OS is installed.  It can also be a list of @code{(name . file-like)} pairs.  For example:"
+msgstr "Wenn es nicht auf @code{#f} steht, muss hier ein G-Ausdruck angegeben werden, der ein Verzeichnis mit Scripts (sogenannten „Hooks“, d.h.@: Anknüpfungspunkte) festlegt, welche bei der Installation des Betriebssystems ausgeführt werden. Es kann auch eine Liste von Paaren der Form @code{(Name . dateiartiges-Objekt)} angegeben werden. Zum Beispiel:"
+
+#. type: lisp
+#: doc/guix.texi:27280
+#, no-wrap
+msgid "`((99-hello-world . ,(plain-file \"#!/bin/sh\\necho Hello, World\")))\n"
+msgstr "`((99-hallo-welt . ,(plain-file \"#!/bin/sh\\necho Hallo Welt\")))\n"
+
+#. type: table
+#: doc/guix.texi:27285
+msgid "That will create a directory with one executable named @code{99-hello-world} and run it every time this variant is installed.  If set to @code{#f}, hooks in @file{/etc/ganeti/instance-debootstrap/hooks} will be used, if any."
+msgstr "Damit wird ein Verzeichnis mit einer ausführbaren Datei namens @code{99-hallo-welt} festgelegt, die jedes Mal ausgeführt wird, wenn diese Variante installiert wird. Wird hier @code{#f} angegeben, werden die in @file{/etc/ganeti/instance-debootstrap/hooks} vorgefundenen Anknüpfungspunkte benutzt, falls vorhanden."
+
+#. type: item
+#: doc/guix.texi:27285
+#, no-wrap
+msgid "@code{proxy} (default: @code{#f})"
+msgstr "@code{proxy} (Vorgabe: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:27287
+msgid "Optional HTTP proxy to use."
+msgstr "Optional; welcher HTTP-Proxy genutzt werden soll."
+
+#. type: item
+#: doc/guix.texi:27287
+#, no-wrap
+msgid "@code{mirror} (default: @code{#f})"
+msgstr "@code{mirror} (Vorgabe: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:27290
+msgid "The Debian mirror.  Typically something like @code{http://ftp.no.debian.org/debian}.  The default varies depending on the distribution."
+msgstr "Der Spiegelserver für Debian. Üblicherweise wird etwas wie @code{http://ftp.no.debian.org/debian} angegeben. Die Voreinstellung hängt von der Distribution ab."
+
+#. type: item
+#: doc/guix.texi:27290
+#, no-wrap
+msgid "@code{arch} (default: @code{#f})"
+msgstr "@code{arch} (Vorgabe: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:27293
+msgid "The dpkg architecture.  Set to @code{armhf} to debootstrap an ARMv7 instance on an AArch64 host.  Default is to use the current system architecture."
+msgstr "Die dpkg-Architektur. Setzen Sie dies z.B.@: auf @code{armhf}, um eine ARMv7-Instanz auf einem AArch64-Wirtssystem @i{via} debootstrap einzurichten. Bei der Vorgabeeinstellung wird die aktuelle Systemarchitektur übernommen."
+
+#. type: item
+#: doc/guix.texi:27293
+#, no-wrap
+msgid "@code{suite} (default: @code{\"stable\"})"
+msgstr "@code{suite} (Vorgabe: @code{\"stable\"})"
+
+#. type: table
+#: doc/guix.texi:27296
+msgid "When set, this must be a Debian distribution ``suite'' such as @code{buster} or @code{focal}.  If set to @code{#f}, the default for the OS provider is used."
+msgstr "Wenn dieses Feld gesetzt ist, muss dafür eine Debian-Distributions-„Suite“ wie @code{buster} oder @code{focal} angegeben werden. Steht es auf @code{#f}, wird die Voreinstellung für den Betriebssystemanbieter benutzt."
+
+#. type: item
+#: doc/guix.texi:27296
+#, no-wrap
+msgid "@code{extra-pkgs} (default: @code{%default-debootstrap-extra-pkgs})"
+msgstr "@code{extra-pkgs} (Vorgabe: @code{%default-debootstrap-extra-pkgs})"
+
+#. type: table
+#: doc/guix.texi:27299
+msgid "List of extra packages that will get installed by dpkg in addition to the minimal system."
+msgstr "Liste zusätzlicher Pakete, die durch dpkg zusätzlich zum minimalen System installiert werden."
+
+#. type: item
+#: doc/guix.texi:27299
+#, no-wrap
+msgid "@code{components} (default: @code{#f})"
+msgstr "@code{components} (Vorgabe: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:27302
+msgid "When set, must be a list of Debian repository ``components''.  For example @code{'(\"main\" \"contrib\")}."
+msgstr "Ist dies gesetzt, muss es eine Liste von Bereichen eines Debian-Repositorys sein, etwa @code{'(\"main\" \"contrib\")}."
+
+#. type: item
+#: doc/guix.texi:27302
+#, no-wrap
+msgid "@code{generate-cache?} (default: @code{#t})"
+msgstr "@code{generate-cache?} (Vorgabe: @code{#t})"
+
+#. type: table
+#: doc/guix.texi:27304
+msgid "Whether to automatically cache the generated debootstrap archive."
+msgstr "Ob das generierte debootstrap-Archiv automatisch zwischengespeichert werden soll."
+
+#. type: item
+#: doc/guix.texi:27304
+#, no-wrap
+msgid "@code{clean-cache} (default: @code{14})"
+msgstr "@code{clean-cache} (Vorgabe: @code{14})"
+
+#. type: table
+#: doc/guix.texi:27307
+msgid "Discard the cache after this amount of days.  Use @code{#f} to never clear the cache."
+msgstr "Nach wie vielen Tagen der Zwischenspeicher verworfen werden soll. Geben Sie @code{#f} an, damit der Zwischenspeicher niemals bereinigt wird."
+
+#. type: item
+#: doc/guix.texi:27307
+#, no-wrap
+msgid "@code{partition-style} (default: @code{'msdos})"
+msgstr "@code{partition-style} (Vorgabe: @code{'msdos})"
+
+#. type: table
+#: doc/guix.texi:27310
+msgid "The type of partition to create.  When set, it must be one of @code{'msdos}, @code{'none} or a string."
+msgstr "Der Partitionstyp der anzulegenden Partition. Wenn er festgelegt ist, muss er entweder @code{'msdos} oder @code{'none} lauten oder eine Zeichenkette angegeben werden."
+
+#. type: item
+#: doc/guix.texi:27310
+#, no-wrap
+msgid "@code{partition-alignment} (default: @code{2048})"
+msgstr "@code{partition-alignment} (Vorgabe: @code{2048})"
+
+#. type: table
+#: doc/guix.texi:27312
+msgid "Alignment of the partition in sectors."
+msgstr "Auf wie viele Sektoren die Partition ausgerichtet werden soll."
+
+#. type: deffn
+#: doc/guix.texi:27315
+#, no-wrap
+msgid "{Scheme Procedure} debootstrap-variant @var{name} @var{configuration}"
+msgstr "{Scheme-Prozedur} debootstrap-variant @var{Name} @var{Konfiguration}"
+
+#. type: deffn
+#: doc/guix.texi:27318
+msgid "This is a helper procedure that creates a @code{ganeti-os-variant} record.  It takes two parameters: a name and a @code{debootstrap-configuration} object."
+msgstr "Diese Hilfsprozedur erzeugt ein @code{ganeti-os-variant}-Verbundsobjekt. Sie nimmt zwei Parameter entgegen: einen Namen und ein @code{debootstrap-configuration}-Objekt."
+
+#. type: deffn
+#: doc/guix.texi:27320
+#, no-wrap
+msgid "{Scheme Procedure} debootstrap-os @var{variants}@dots{}"
+msgstr "{Scheme-Prozedur} debootstrap-os @var{Varianten}…"
+
+#. type: deffn
+#: doc/guix.texi:27323
+msgid "This is a helper procedure that creates a @code{ganeti-os} record.  It takes a list of variants created with @code{debootstrap-variant}."
+msgstr "Diese Hilfsprozedur erzeugt ein @code{ganeti-os}-Verbundsobjekt. Sie nimmt eine Liste von mit @code{debootstrap-variant} erzeugten Varianten entgegen."
+
+#. type: deffn
+#: doc/guix.texi:27325
+#, no-wrap
+msgid "{Scheme Procedure} guix-variant @var{name} @var{configuration}"
+msgstr "{Scheme-Prozedur} guix-variant @var{Name} @var{Konfiguration}"
+
+#. type: deffn
+#: doc/guix.texi:27330
+msgid "This is a helper procedure that creates a @code{ganeti-os-variant} record for use with the Guix OS provider.  It takes a name and a G-expression that returns a ``file-like'' (@pxref{G-Expressions, file-like objects}) object containing a Guix System configuration."
+msgstr "Diese Hilfsprozedur erzeugt ein @code{ganeti-os-variant}-Verbundsobjekt, das für den vorgegebenen Guix-Betriebssystemanbieter gedacht ist. Als Parameter anzugeben sind ein Name und ein G-Ausdruck, der ein „dateiartiges“ Objekt (siehe @ref{G-Expressions, dateiartige Objekte}) mit einer Konfiguration für Guix System liefert."
+
+#. type: deffn
+#: doc/guix.texi:27332
+#, no-wrap
+msgid "{Scheme Procedure} guix-os @var{variants}@dots{}"
+msgstr "{Scheme-Prozedur} guix-os @var{Varianten}…"
+
+#. type: deffn
+#: doc/guix.texi:27335
+msgid "This is a helper procedure that creates a @code{ganeti-os} record.  It takes a list of variants produced by @code{guix-variant}."
+msgstr "Diese Hilfsprozedur erzeugt ein @code{ganeti-os}-Verbundsobjekt. Sie nimmt eine Liste von durch @code{guix-variant} erzeugten Varianten entgegen."
+
+#. type: defvr
+#: doc/guix.texi:27337
+#, no-wrap
+msgid "{Scheme Variable} %default-debootstrap-variants"
+msgstr "{Scheme-Variable} %default-debootstrap-variants"
+
+#. type: defvr
+#: doc/guix.texi:27341
+msgid "This is a convenience variable to make the debootstrap provider work ``out of the box'' without users having to declare variants manually.  It contains a single debootstrap variant with the default configuration:"
+msgstr "Zur Erleichterung kann diese Variable benutzt werden, damit der debootstrap-Anbieter sofort funktioniert, ohne dass seine Nutzer Varianten selbst deklarieren müssen. Enthalten ist eine einzige debootstrap-Variante mit der Standardkonfiguration:"
+
+#. type: lisp
+#: doc/guix.texi:27346
+#, no-wrap
+msgid ""
+"(list (debootstrap-variant\n"
+"       \"default\"\n"
+"       (debootstrap-configuration)))\n"
+msgstr ""
+"(list (debootstrap-variant\n"
+"       \"default\"\n"
+"       (debootstrap-configuration)))\n"
+
+#. type: defvr
+#: doc/guix.texi:27349
+#, no-wrap
+msgid "{Scheme Variable} %default-guix-variants"
+msgstr "{Scheme-Variable} %default-guix-variants"
+
+#. type: defvr
+#: doc/guix.texi:27353
+msgid "This is a convenience variable to make the Guix OS provider work without additional configuration.  It creates a virtual machine that has an SSH server, a serial console, and authorizes the Ganeti hosts SSH keys."
+msgstr "Zur Erleichterung kann diese Variable benutzt werden, damit der Guix-Betriebssystemanbieter sofort und ohne weitere Konfiguration funktioniert. Damit wird eine virtuelle Maschine mit einem SSH-Server, einer seriellen Konsole und bereits autorisierten Ganeti-Wirts-SSH-Schlüsseln erzeugt."
+
+#. type: lisp
+#: doc/guix.texi:27359
+#, no-wrap
+msgid ""
+"(list (guix-variant\n"
+"       \"default\"\n"
+"       (file-append ganeti-instance-guix\n"
+"                    \"/share/doc/ganeti-instance-guix/examples/dynamic.scm\")))\n"
+msgstr ""
+"(list (guix-variant\n"
+"       \"default\"\n"
+"       (file-append ganeti-instance-guix\n"
+"                    \"/share/doc/ganeti-instance-guix/examples/dynamic.scm\")))\n"
+
+#. type: Plain text
+#: doc/guix.texi:27365
+msgid "Users can implement support for OS providers unbeknownst to Guix by extending the @code{ganeti-os} and @code{ganeti-os-variant} records appropriately.  For example:"
+msgstr "Benutzer können die Unterstützung für Guix @emph{nicht} bekannte Betriebssystemanbieter implementieren, indem sie entsprechende Erweiterungen für die @code{ganeti-os}- und @code{ganeti-os-variant}-Verbundstypen implementieren. Ein Beispiel:"
+
+#. type: lisp
+#: doc/guix.texi:27374
+#, no-wrap
+msgid ""
+"(ganeti-os\n"
+" (name \"custom\")\n"
+" (extension \".conf\")\n"
+" (variants\n"
+"  (list (ganeti-os-variant\n"
+"         (name \"foo\")\n"
+"         (configuration (plain-file \"bar\" \"this is fine\"))))))\n"
+msgstr ""
+"(ganeti-os\n"
+" (name \"eigenes-os\")\n"
+" (extension \".conf\")\n"
+" (variants\n"
+"  (list (ganeti-os-variant\n"
+"         (name \"foo\")\n"
+"         (configuration (plain-file \"bar\" \"das genügt\"))))))\n"
+
+#. type: Plain text
+#: doc/guix.texi:27379
+msgid "That creates @file{/etc/ganeti/instance-custom/variants/foo.conf} which points to a file in the store with contents @code{this is fine}.  It also creates @file{/etc/ganeti/instance-custom/variants/variants.list} with contents @code{foo}."
+msgstr "Damit wird @file{/etc/ganeti/instance-eigenes-os/variants/foo.conf} erzeugt, das auf eine Datei im Store mit dem Inhalt @code{das genügt} verweist. Außerdem wird @file{/etc/ganeti/instance-eigenes-os/variants/variants.list} mit dem Inhalt @code{foo} erzeugt."
+
+#. type: Plain text
+#: doc/guix.texi:27382
+msgid "Obviously this may not work for all OS providers out there.  If you find the interface limiting, please reach out to @email{guix-devel@@gnu.org}."
+msgstr "Natürlich kann man Betriebssystemanbieter finden, für die das nicht ausreicht. Wenn Sie sich durch die Schnittstelle in Ihren Möglichkeiten eingeschränkt fühlen, schreiben Sie bitte an @email{guix-devel@@gnu.org}."
+
+#. type: Plain text
+#: doc/guix.texi:27385
+msgid "The rest of this section documents the various services that are included by @code{ganeti-service-type}."
+msgstr "Der übrige Teil dieses Abschnitts beschreibt die verschiedenen Dienste, aus denen sich der @code{ganeti-service-type} zusammensetzt."
+
+#. type: defvr
+#: doc/guix.texi:27386
+#, no-wrap
+msgid "{Scheme Variable} ganeti-noded-service-type"
+msgstr "{Scheme-Variable} ganeti-noded-service-type"
+
+#. type: defvr
+#: doc/guix.texi:27390
+msgid "@command{ganeti-noded} is the daemon responsible for node-specific functions within the Ganeti system.  The value of this service must be a @code{ganeti-noded-configuration} object."
+msgstr "@command{ganeti-noded} ist der Daemon, der für knotenbezogene Funktionen des Ganeti-Systems da ist. Sein Wert muss ein @code{ganeti-noded-configuration}-Objekt sein."
+
+#. type: deftp
+#: doc/guix.texi:27392
+#, no-wrap
+msgid "{Data Type} ganeti-noded-configuration"
+msgstr "{Datentyp} ganeti-noded-configuration"
+
+#. type: deftp
+#: doc/guix.texi:27394
+msgid "This is the configuration for the @code{ganeti-noded} service."
+msgstr "Dies ist die Konfiguration des @code{ganeti-noded}-Dienstes für Ganetis Knoten-Daemon."
+
+#. type: table
+#: doc/guix.texi:27398 doc/guix.texi:27448 doc/guix.texi:27478
+#: doc/guix.texi:27505 doc/guix.texi:27537 doc/guix.texi:27590
+#: doc/guix.texi:27610 doc/guix.texi:27636 doc/guix.texi:27669
+msgid "The @code{ganeti} package to use for this service."
+msgstr "Das @code{ganeti}-Paket, was für diesen Dienst benutzt werden soll."
+
+#. type: item
+#: doc/guix.texi:27399
+#, no-wrap
+msgid "@code{port} (default: @code{1811})"
+msgstr "@code{port} (Vorgabe: @code{8081})"
+
+#. type: table
+#: doc/guix.texi:27401
+msgid "The TCP port on which the node daemon listens for network requests."
+msgstr "Der TCP-Port, auf dem der Knoten-Daemon (@code{noded}) auf Netzwerkanfragen lauscht."
+
+#. type: item
+#: doc/guix.texi:27402 doc/guix.texi:27452 doc/guix.texi:27544
+#: doc/guix.texi:27614
+#, no-wrap
+msgid "@code{address} (default: @code{\"0.0.0.0\"})"
+msgstr "@code{address} (Vorgabe: @code{\"0.0.0.0\"})"
+
+#. type: table
+#: doc/guix.texi:27405
+msgid "The network address that the daemon will bind to.  The default address means bind to all available addresses."
+msgstr "An welche Netzwerkadresse sich der Daemon binden wird. Die Vorgabeeinstellung bedeutet, sich an alle verfügbaren Adressen zu binden."
+
+#. type: table
+#: doc/guix.texi:27409
+msgid "When this is set, it must be a specific network interface (e.g.@: @code{eth0})  that the daemon will bind to."
+msgstr "Wenn dieses Feld gesetzt ist, muss es eine bestimmte Netzwerkschnittstelle angeben (z.B.@: @code{eth0}), an die sich der Daemon binden wird."
+
+#. type: item
+#: doc/guix.texi:27410 doc/guix.texi:27552
+#, no-wrap
+msgid "@code{max-clients} (default: @code{20})"
+msgstr "@code{max-clients} (Vorgabe: @code{20})"
+
+#. type: table
+#: doc/guix.texi:27414
+msgid "This sets a limit on the maximum number of simultaneous client connections that the daemon will handle.  Connections above this count are accepted, but no responses will be sent until enough connections have closed."
+msgstr "Legt eine Maximalzahl gleichzeitiger Client-Verbindungen fest, um die sich der Daemon kümmert. Darüber hinaus werden Verbindungen zwar akzeptiert, aber erst beantwortet, wenn genügend viele Verbindungen wieder geschlossen wurden."
+
+#. type: item
+#: doc/guix.texi:27415 doc/guix.texi:27557
+#, no-wrap
+msgid "@code{ssl?} (default: @code{#t})"
+msgstr "@code{ssl?} (Vorgabe: @code{#t})"
+
+#. type: table
+#: doc/guix.texi:27419
+msgid "Whether to use SSL/TLS to encrypt network communications.  The certificate is automatically provisioned by the cluster and can be rotated with @command{gnt-cluster renew-crypto}."
+msgstr "Ob SSL/TLS benutzt werden soll, um Netzwerkkommunikation zu verschlüsseln. Das Zertifikat wird automatisch vom Cluster eingespielt und kann über @command{gnt-cluster renew-crypto} rotiert werden."
+
+#. type: item
+#: doc/guix.texi:27420 doc/guix.texi:27560
+#, no-wrap
+msgid "@code{ssl-key} (default: @file{\"/var/lib/ganeti/server.pem\"})"
+msgstr "@code{ssl-key} (Vorgabe: @file{\"/var/lib/ganeti/server.pem\"})"
+
+#. type: table
+#: doc/guix.texi:27422 doc/guix.texi:27562
+msgid "This can be used to provide a specific encryption key for TLS communications."
+msgstr "Hiermit kann ein bestimmter Schlüssel für mit TLS verschlüsselte Kommunikation festgelegt werden."
+
+#. type: item
+#: doc/guix.texi:27423 doc/guix.texi:27563
+#, no-wrap
+msgid "@code{ssl-cert} (default: @file{\"/var/lib/ganeti/server.pem\"})"
+msgstr "@code{ssl-cert} (Vorgabe: @file{\"/var/lib/ganeti/server.pem\"})"
+
+#. type: table
+#: doc/guix.texi:27425 doc/guix.texi:27565
+msgid "This can be used to provide a specific certificate for TLS communications."
+msgstr "Hiermit kann ein bestimmtes Zertifikat für mit TLS verschlüsselte Kommunikation festgelegt werden."
+
+#. type: table
+#: doc/guix.texi:27429 doc/guix.texi:27569
+msgid "When true, the daemon performs additional logging for debugging purposes.  Note that this will leak encryption details to the log files, use with caution."
+msgstr "Steht dies auf wahr, führt der Daemon zum Zweck der Fehlersuche ausführlichere Protokolle. Beachten Sie, dass dadurch Details der Verschlüsselung in die Protokolldateien fließen können. Seien Sie vorsichtig!"
+
+#. type: defvr
+#: doc/guix.texi:27433
+#, no-wrap
+msgid "{Scheme Variable} ganeti-confd-service-type"
+msgstr "{Scheme-Variable} ganeti-confd-service-type"
+
+#. type: defvr
+#: doc/guix.texi:27439
+msgid "@command{ganeti-confd} answers queries related to the configuration of a Ganeti cluster.  The purpose of this daemon is to have a highly available and fast way to query cluster configuration values.  It is automatically active on all @dfn{master candidates}.  The value of this service must be a @code{ganeti-confd-configuration} object."
+msgstr "@command{ganeti-confd} beantwortet Anfragen, die mit der Konfiguration eines Ganeti-Clusters zu tun haben. Der Zweck dieses Daemons ist, eine hochverfügbare und schnelle Methode zum Anfragen von Cluster-Konfigurationswerten zu bieten. Er wird automatisch auf allen Kandidaten für die Rolle des „Master“-Knotens aktiviert. Der Wert dieses Dienstes muss ein @code{ganeti-confd-configuration}-Objekt sein."
+
+#. type: deftp
+#: doc/guix.texi:27442
+#, no-wrap
+msgid "{Data Type} ganeti-confd-configuration"
+msgstr "{Datentyp} ganeti-confd-configuration"
+
+#. type: deftp
+#: doc/guix.texi:27444
+msgid "This is the configuration for the @code{ganeti-confd} service."
+msgstr "Dies ist die Konfiguration des @code{ganeti-confd}-Dienstes."
+
+#. type: item
+#: doc/guix.texi:27449
+#, no-wrap
+msgid "@code{port} (default: @code{1814})"
+msgstr "@code{port} (Vorgabe: @code{8081})"
+
+#. type: table
+#: doc/guix.texi:27451
+msgid "The UDP port on which to listen for network requests."
+msgstr "Der UDP-Port, auf dem auf Netzwerkanfragen gelauscht werden soll."
+
+#. type: table
+#: doc/guix.texi:27454
+msgid "Network address that the daemon will bind to."
+msgstr "An welche Netzwerkadresse sich der Daemon binden soll."
+
+#. type: table
+#: doc/guix.texi:27457 doc/guix.texi:27486 doc/guix.texi:27513
+#: doc/guix.texi:27593 doc/guix.texi:27620 doc/guix.texi:27646
+msgid "When true, the daemon performs additional logging for debugging purposes."
+msgstr "Steht es auf wahr, wird der Daemon zum Zweck der Fehlersuche ausführlicher protokollieren."
+
+#. type: defvr
+#: doc/guix.texi:27461
+#, no-wrap
+msgid "{Scheme Variable} ganeti-wconfd-service-type"
+msgstr "{Scheme-Variable} ganeti-wconfd-service-type"
+
+#. type: defvr
+#: doc/guix.texi:27467
+msgid "@command{ganeti-wconfd} is the daemon that has authoritative knowledge about the cluster configuration and is the only entity that can accept changes to it.  All jobs that need to modify the configuration will do so by sending appropriate requests to this daemon.  It only runs on the @dfn{master node} and will automatically disable itself on other nodes."
+msgstr "@command{ganeti-wconfd} ist der Daemon, der mit autoritativem Wissen über die Cluster-Konfiguration ausgestattet ist, und die einzige Entität, die Änderungen daran akzeptieren kann. Alle Aufträge, die die Konfiguration ändern müssen, tun dies, indem sie entsprechende Anfragen an den Daemon stellen. Er läuft nur auf dem „Master“-Knoten und deaktiviert sich auf allen anderen Knoten automatisch."
+
+#. type: defvr
+#: doc/guix.texi:27470
+msgid "The value of this service must be a @code{ganeti-wconfd-configuration} object."
+msgstr "Der Wert dieses Dienstes muss ein @code{ganeti-wconfd-configuration}-Objekt sein."
+
+#. type: deftp
+#: doc/guix.texi:27472
+#, no-wrap
+msgid "{Data Type} ganeti-wconfd-configuration"
+msgstr "{Datentyp} ganeti-wconfd-configuration"
+
+#. type: deftp
+#: doc/guix.texi:27474 doc/guix.texi:27501
+msgid "This is the configuration for the @code{ganeti-wconfd} service."
+msgstr "Dies ist die Konfiguration des @code{ganeti-wconfd}-Dienstes."
+
+#. type: item
+#: doc/guix.texi:27479 doc/guix.texi:27506
+#, no-wrap
+msgid "@code{no-voting?} (default: @code{#f})"
+msgstr "@code{no-voting?} (Vorgabe: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:27483
+msgid "The daemon will refuse to start if the majority of cluster nodes does not agree that it is running on the master node.  Set to @code{#t} to start even if a quorum can not be reached (dangerous, use with caution)."
+msgstr "Der Daemon wird das Starten verweigern, sofern die Mehrheit der Knoten @emph{nicht} anerkennt, dass er auf dem Master-Knoten läuft. Setzen Sie dies auf @code{#t}, um ihn selbst dann zu starten, wenn sich keine Mehrheit dafür findet (das ist gefährlich; hoffentlich wissen Sie, was Sie tun)."
+
+#. type: defvr
+#: doc/guix.texi:27490
+#, no-wrap
+msgid "{Scheme Variable} ganeti-luxid-service-type"
+msgstr "{Scheme-Variable} ganeti-luxid-service-type"
+
+#. type: defvr
+#: doc/guix.texi:27495
+msgid "@command{ganeti-luxid} is a daemon used to answer queries related to the configuration and the current live state of a Ganeti cluster.  Additionally, it is the authoritative daemon for the Ganeti job queue.  Jobs can be submitted via this daemon and it schedules and starts them."
+msgstr "Der Daemon @command{ganeti-luxid} ist dazu da, Anfragen zur Konfiguration und zum aktuellen Zustand des laufenden Ganeti-Clusters zu beantworten. Des Weiteren ist es der autoritative Daemon für Ganetis Auftragsliste. Aufträge können über diesen Daemon eingereicht werden und werden von ihm geplant und gestartet."
+
+#. type: defvr
+#: doc/guix.texi:27497
+msgid "It takes a @code{ganeti-luxid-configuration} object."
+msgstr "Er nimmt ein @code{ganeti-luxid-configuration}-Objekt entgegen."
+
+#. type: deftp
+#: doc/guix.texi:27499
+#, no-wrap
+msgid "{Data Type} ganeti-luxid-configuration"
+msgstr "{Datentyp} ganeti-luxid-configuration"
+
+#. type: table
+#: doc/guix.texi:27510
+msgid "The daemon will refuse to start if it cannot verify that the majority of cluster nodes believes that it is running on the master node.  Set to @code{#t} to ignore such checks and start anyway (this can be dangerous)."
+msgstr "Der Daemon verweigert das Starten, wenn er sich nicht sicher sein kann, dass die Mehrheit der Cluster-Knoten überzeugt ist, dass er auf dem Master-Knoten läuft. Setzen Sie dies auf @code{#t}, um solche Hinweise zu ignorieren (das kann gefährlich sein!)."
+
+#. type: defvr
+#: doc/guix.texi:27517
+#, no-wrap
+msgid "{Scheme Variable} ganeti-rapi-service-type"
+msgstr "{Scheme-Variable} ganeti-rapi-service-type"
+
+#. type: defvr
+#: doc/guix.texi:27521
+msgid "@command{ganeti-rapi} provides a remote API for Ganeti clusters.  It runs on the master node and can be used to perform cluster actions programmatically via a JSON-based RPC protocol."
+msgstr "@command{ganeti-rapi} bietet eine Schnittstelle für entfernte Aufrufe (englisch @dfn{Remote API}) für Ganeti-Cluster. Sie läuft auf dem Master-Knoten und mit ihr können Aktionen auf dem Cluster programmatisch mittels eines JSON-basierten Protokolls für entfernte Prozeduraufrufe durchgeführt werden."
+
+#. type: defvr
+#: doc/guix.texi:27527
+msgid "Most query operations are allowed without authentication (unless @var{require-authentication?} is set), whereas write operations require explicit authorization via the @file{/var/lib/ganeti/rapi/users} file.  See the @url{http://docs.ganeti.org/ganeti/master/html/rapi.html, Ganeti Remote API documentation} for more information."
+msgstr "Die meisten Anfrageoperationen werden ohne Authentisierung zugelassen (außer wenn @var{require-authentication?} gesetzt ist), wohingegen Schreibzugriffe einer ausdrücklichen Authentisierung durch die Datei @file{/var/lib/ganeti/rapi/users} bedürfen. Siehe die @url{http://docs.ganeti.org/ganeti/master/html/rapi.html, Dokumentation der Ganeti Remote API} für mehr Informationen."
+
+#. type: defvr
+#: doc/guix.texi:27529
+msgid "The value of this service must be a @code{ganeti-rapi-configuration} object."
+msgstr "Der Wert dieses Dienstes muss ein @code{ganeti-rapi-configuration}-Objekt sein."
+
+#. type: deftp
+#: doc/guix.texi:27531
+#, no-wrap
+msgid "{Data Type} ganeti-rapi-configuration"
+msgstr "{Datentyp} ganeti-rapi-configuration"
+
+#. type: deftp
+#: doc/guix.texi:27533
+msgid "This is the configuration for the @code{ganeti-rapi} service."
+msgstr "Dies ist die Konfiguration des @code{ganeti-rapi}-Dienstes."
+
+#. type: item
+#: doc/guix.texi:27538
+#, no-wrap
+msgid "@code{require-authentication?} (default: @code{#f})"
+msgstr "@code{require-authentication?} (Vorgabe: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:27540
+msgid "Whether to require authentication even for read-only operations."
+msgstr "Ob selbst für Nur-Lese-Operationen eine Authentisierung verlangt werden soll."
+
+#. type: item
+#: doc/guix.texi:27541
+#, no-wrap
+msgid "@code{port} (default: @code{5080})"
+msgstr "@code{port} (Vorgabe: @code{5080})"
+
+#. type: table
+#: doc/guix.texi:27543
+msgid "The TCP port on which to listen to API requests."
+msgstr "Der TCP-Port, auf dem auf API-Anfragen gelauscht werden soll."
+
+#. type: table
+#: doc/guix.texi:27547
+msgid "The network address that the service will bind to.  By default it listens on all configured addresses."
+msgstr "An welche Netzwerkadresse sich der Dienst binden soll. Nach Vorgabe wird auf allen konfigurierten Adressen gelauscht."
+
+#. type: table
+#: doc/guix.texi:27551
+msgid "When set, it must specify a specific network interface such as @code{eth0} that the daemon will bind to."
+msgstr "Wenn dies gesetzt ist, muss es eine bestimmte Netzwerkschnittstelle angeben wie z.B.@: @code{eth0}, an die sich der Daemon binden wird."
+
+#. type: table
+#: doc/guix.texi:27556
+msgid "The maximum number of simultaneous client requests to handle.  Further connections are allowed, but no responses are sent until enough connections have closed."
+msgstr "Die Maximalzahl gleichzeitiger Verbindungen, um die sich der Dienst kümmern darf. Weitere Verbindungen sind möglich, über sie wird aber erst dann geantwortet, wenn genügend viele Verbindungen wieder geschlossen wurden."
+
+#. type: table
+#: doc/guix.texi:27559
+msgid "Whether to use SSL/TLS encryption on the RAPI port."
+msgstr "Ob SSL-/TLS-Verschlüsselung auf dem RAPI-Port eingesetzt werden soll."
+
+#. type: defvr
+#: doc/guix.texi:27573
+#, no-wrap
+msgid "{Scheme Variable} ganeti-kvmd-service-type"
+msgstr "{Scheme-Variable} ganeti-kvmd-service-type"
+
+#. type: defvr
+#: doc/guix.texi:27581
+msgid "@command{ganeti-kvmd} is responsible for determining whether a given KVM instance was shut down by an administrator or a user.  Normally Ganeti will restart an instance that was not stopped through Ganeti itself.  If the cluster option @code{user_shutdown} is true, this daemon monitors the @code{QMP} socket provided by QEMU and listens for shutdown events, and marks the instance as @dfn{USER_down} instead of @dfn{ERROR_down} when it shuts down gracefully by itself."
+msgstr "@command{ganeti-kvmd} ist dafür verantwortlich, festzustellen, wenn eine gegebene KVM-Instanz durch einen Administrator oder Nutzer geschlossen wurde. Normalerweise wird Ganeti Instanzen neu starten, die nicht über ihn selbst gestoppt wurden. Wenn die Cluster-Option @code{user_shutdown} wahr ist, beobachtet der Daemon den durch QEMU bereitgestellten @code{QMP}-Socket und lauscht auf Abschalteereignisse. Solche Instanzen werden von ihm als durch den Benutzer heruntergefahren (@dfn{USER_down}) markiert statt als durch Fehler beendet (@dfn{ERROR_down}), wenn sie von selbst ordnungsgemäß heruntergefahren sind."
+
+#. type: defvr
+#: doc/guix.texi:27583
+msgid "It takes a @code{ganeti-kvmd-configuration} object."
+msgstr "Der Dienst benutzt ein @code{ganeti-kvmd-configuration}-Objekt."
+
+#. type: deftp
+#: doc/guix.texi:27585
+#, no-wrap
+msgid "{Data Type} ganeti-kvmd-configuration"
+msgstr "{Datentyp} ganeti-kvmd-configuration"
+
+#. type: defvr
+#: doc/guix.texi:27597
+#, no-wrap
+msgid "{Scheme Variable} ganeti-mond-service-type"
+msgstr "{Scheme-Variable} ganeti-mond-service-type"
+
+#. type: defvr
+#: doc/guix.texi:27601
+msgid "@command{ganeti-mond} is an optional daemon that provides Ganeti monitoring functionality.  It is responsible for running data collectors and publish the collected information through a HTTP interface."
+msgstr "@command{ganeti-mond} ist ein optionaler Daemon, mit dem Ganetis Überwachungsfunktionalität gewährleistet wird. Er ist dafür verantwortlich, Datensammler auszuführen und die gesammelten Informationen über eine HTTP-Schnittstelle bereitzustellen."
+
+#. type: defvr
+#: doc/guix.texi:27603
+msgid "It takes a @code{ganeti-mond-configuration} object."
+msgstr "Der Dienst benutzt ein @code{ganeti-mond-configuration}-Objekt."
+
+#. type: deftp
+#: doc/guix.texi:27605
+#, no-wrap
+msgid "{Data Type} ganeti-mond-configuration"
+msgstr "{Datentyp} ganeti-mond-configuration"
+
+#. type: item
+#: doc/guix.texi:27611
+#, no-wrap
+msgid "@code{port} (default: @code{1815})"
+msgstr "@code{port} (Vorgabe: @code{1815})"
+
+#. type: table
+#: doc/guix.texi:27613 doc/guix.texi:27639
+msgid "The port on which the daemon will listen."
+msgstr "Der Port, auf dem der Daemon lauschen wird."
+
+#. type: table
+#: doc/guix.texi:27617
+msgid "The network address that the daemon will bind to.  By default it binds to all available interfaces."
+msgstr "Die Netzwerkadresse, an die sich der Daemon binden soll, nach Vorgabe an alle verfügbaren."
+
+#. type: defvr
+#: doc/guix.texi:27624
+#, no-wrap
+msgid "{Scheme Variable} ganeti-metad-service-type"
+msgstr "{Scheme-Variable} ganeti-metad-service-type"
+
+#. type: defvr
+#: doc/guix.texi:27627
+msgid "@command{ganeti-metad} is an optional daemon that can be used to provide information about the cluster to instances or OS install scripts."
+msgstr "@command{ganeti-metad} ist ein optionaler Daemon, der benutzt werden kann, um Informationen über den Cluster an Instanzen oder an Betriebssysteminstallationsskripte weiterzugeben."
+
+#. type: defvr
+#: doc/guix.texi:27629
+msgid "It takes a @code{ganeti-metad-configuration} object."
+msgstr "Dazu nimmt er ein @code{ganeti-metad-configuration}-Objekt."
+
+#. type: deftp
+#: doc/guix.texi:27631
+#, no-wrap
+msgid "{Data Type} ganeti-metad-configuration"
+msgstr "{Datentyp} ganeti-metad-configuration"
+
+#. type: item
+#: doc/guix.texi:27640
+#, no-wrap
+msgid "@code{address} (default: @code{#f})"
+msgstr "@code{address} (Vorgabe: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:27643
+msgid "If set, the daemon will bind to this address only.  If left unset, the behavior depends on the cluster configuration."
+msgstr "Wenn es gesetzt ist, wird sich der Daemon nur an diese Adresse binden. Ist es @emph{nicht} gesetzt, hängt das Verhalten von der Cluster-Konfiguration ab."
+
+#. type: defvr
+#: doc/guix.texi:27650
+#, no-wrap
+msgid "{Scheme Variable} ganeti-watcher-service-type"
+msgstr "{Scheme-Variable} ganeti-watcher-service-type"
+
+#. type: defvr
+#: doc/guix.texi:27658
+msgid "@command{ganeti-watcher} is a script designed to run periodically and ensure the health of a cluster.  It will automatically restart instances that have stopped without Ganeti's consent, and repairs DRBD links in case a node has rebooted.  It also archives old cluster jobs and restarts Ganeti daemons that are not running.  If the cluster parameter @code{ensure_node_health} is set, the watcher will also shutdown instances and DRBD devices if the node it is running on is declared offline by known master candidates."
+msgstr "@command{ganeti-watcher} ist ein Skript, das dafür gedacht ist, regelmäßig ausgeführt zu werden und die Verfügbarkeit des Clusters sicherzustellen. Instanzen, die ohne Ganetis Zustimmung abgebrochen sind, werden durch es automatisch neu gestartet und DRBD-Verbindungen werden repariert, wenn ein Knoten neu gestartet wurde. Außerdem werden alte Cluster-Aufträge archiviert und nicht laufende Ganeti-Daemons erneut gestartet. Wenn der Cluster-Parameter @code{ensure_node_health} gesetzt ist, wird der Watcher auch Instanzen und DRBD-Geräte herunterfahren, wenn der Knoten zwar läuft, aber von bekannten Kandidaten auf die Rolle des Master-Knotens als offline deklariert wurde."
+
+#. type: defvr
+#: doc/guix.texi:27660
+msgid "It can be paused on all nodes with @command{gnt-cluster watcher pause}."
+msgstr "Er kann mit @command{gnt-cluster watcher pause} auf allen Knoten pausiert werden."
+
+#. type: defvr
+#: doc/guix.texi:27662
+msgid "The service takes a @code{ganeti-watcher-configuration} object."
+msgstr "Der Dienst benutzt ein @code{ganeti-watcher-configuration}-Objekt."
+
+#. type: deftp
+#: doc/guix.texi:27664
+#, no-wrap
+msgid "{Data Type} ganeti-watcher-configuration"
+msgstr "{Datentyp} ganeti-watcher-configuration"
+
+#. type: item
+#: doc/guix.texi:27670
+#, no-wrap
+msgid "@code{schedule} (default: @code{'(next-second-from (next-minute (range 0 60 5)))})"
+msgstr "@code{schedule} (Vorgabe: @code{'(next-second-from (next-minute (range 0 60 5)))})"
+
+#. type: table
+#: doc/guix.texi:27672
+msgid "How often to run the script.  The default is every five minutes."
+msgstr "Wie oft das Skript ausgeführt werden soll. Nach Vorgabe läuft es alle fünf Minuten."
+
+#. type: item
+#: doc/guix.texi:27673
+#, no-wrap
+msgid "@code{rapi-ip} (default: @code{#f})"
+msgstr "@code{rapi-ip} (Vorgabe: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:27676
+msgid "This option needs to be specified only if the RAPI daemon is configured to use a particular interface or address.  By default the cluster address is used."
+msgstr "Diese Option muss nur dann angegeben werden, wenn der RAPI-Daemon so konfiguriert wurde, dass er eine bestimmte Schnittstelle oder Adresse verwenden soll. Nach Vorgabe wird die Adresse des Clusters verwendet."
+
+#. type: item
+#: doc/guix.texi:27677
+#, no-wrap
+msgid "@code{job-age} (default: @code{(* 6 3600)})"
+msgstr "@code{job-age} (Vorgabe: @code{(* 6 3600)})"
+
+#. type: table
+#: doc/guix.texi:27680
+msgid "Archive cluster jobs older than this age, specified in seconds.  The default is 6 hours.  This keeps @command{gnt-job list} manageable."
+msgstr "Cluster-Aufträge archivieren, die älter als diese Anzahl Sekunden sind. Die Vorgabe beträgt 6 Stunden. Dadurch wird gewährleistet, dass man @command{gnt-job list} noch sinnvoll bedienen kann."
+
+#. type: item
+#: doc/guix.texi:27681
+#, no-wrap
+msgid "@code{verify-disks?} (default: @code{#t})"
+msgstr "@code{verify-disks?} (Vorgabe: @code{#t})"
+
+#. type: table
+#: doc/guix.texi:27685
+msgid "If this is @code{#f}, the watcher will not try to repair broken DRBD links automatically.  Administrators will need to use @command{gnt-cluster verify-disks} manually instead."
+msgstr "Steht dies auf @code{#f}, wird der Watcher @emph{nicht} versuchen, fehlgeschlagene DRBD-Verbindungen automatisch zu reparieren. Administratoren müssen stattdessen @command{gnt-cluster verify-disks} manuell aufrufen."
+
+#. type: table
+#: doc/guix.texi:27688
+msgid "When @code{#t}, the script performs additional logging for debugging purposes."
+msgstr "Steht dies auf @code{#t}, so führt das Skript zum Zweck der Fehlersuche ausführlichere Protokolle."
+
+#. type: defvr
+#: doc/guix.texi:27692
+#, no-wrap
+msgid "{Scheme Variable} ganeti-cleaner-service-type"
+msgstr "{Scheme-Variable} ganeti-cleaner-service-type"
+
+#. type: defvr
+#: doc/guix.texi:27700
+msgid "@command{ganeti-cleaner} is a script designed to run periodically and remove old files from the cluster.  This service type controls two @dfn{cron jobs}: one intended for the master node that permanently purges old cluster jobs, and one intended for every node that removes expired X509 certificates, keys, and outdated @command{ganeti-watcher} information.  Like all Ganeti services, it is safe to include even on non-master nodes as it will disable itself as necessary."
+msgstr "@command{ganeti-cleaner} ist ein Skript, das regelmaßig ausgeführt werden soll, um alte Dateien vom Cluster zu entfernen. Dieser Diensttyp steuert zwei @dfn{cron-Aufträge} (@dfn{cron jobs}): einer, um alte Cluster-Aufträge auf dem Master-Knoten andauernd zu löschen, und einer, der auf allen Knoten ausgelaufene X509-Zertifikate, -Schlüssel sowie veraltete Informationen des @command{ganeti-watcher} entfernt. Wie alle Ganeti-Dienste kann man ihn ohne Probleme auch auf Nicht-Master-Knoten in die Konfiguration mit aufnehmen, denn er deaktiviert sich selbst, wenn er nicht gebraucht wird."
+
+#. type: defvr
+#: doc/guix.texi:27702
+msgid "It takes a @code{ganeti-cleaner-configuration} object."
+msgstr "Der Dienst benutzt ein @code{ganeti-cleaner-configuration}-Objekt."
+
+#. type: deftp
+#: doc/guix.texi:27704
+#, no-wrap
+msgid "{Data Type} ganeti-cleaner-configuration"
+msgstr "{Datentyp} ganeti-cleaner-configuration"
+
+#. type: table
+#: doc/guix.texi:27709
+msgid "The @code{ganeti} package to use for the @command{gnt-cleaner} command."
+msgstr "Welches @code{ganeti}-Paket für den Befehl @command{gnt-cleaner} benutzt werden soll."
+
+#. type: item
+#: doc/guix.texi:27710
+#, no-wrap
+msgid "@code{master-schedule} (default: @code{\"45 1 * * *\"})"
+msgstr "@code{master-schedule} (Vorgabe: @code{\"45 1 * * *\"})"
+
+#. type: table
+#: doc/guix.texi:27713
+msgid "How often to run the master cleaning job.  The default is once per day, at 01:45:00."
+msgstr "Wie oft der Bereinigungsauftrag für den Master durchgeführt werden soll. Vorgegeben ist einmal täglich um 01:45:00 Uhr."
+
+#. type: item
+#: doc/guix.texi:27714
+#, no-wrap
+msgid "@code{node-schedule} (default: @code{\"45 2 * * *\"})"
+msgstr "@code{node-schedule} (Vorgabe: @code{\"45 2 * * *\"})"
+
+#. type: table
+#: doc/guix.texi:27717
+msgid "How often to run the node cleaning job.  The default is once per day, at 02:45:00."
+msgstr "Wie oft der Bereinigungsauftrag für Knoten durchgeführt werden soll. Vorgegeben ist einmal täglich um 02:45:00 Uhr."
+
+#. type: Plain text
+#: doc/guix.texi:27731
 msgid "The @code{(gnu services version-control)} module provides a service to allow remote access to local Git repositories.  There are three options: the @code{git-daemon-service}, which provides access to repositories via the @code{git://} unsecured TCP-based protocol, extending the @code{nginx} web server to proxy some requests to @code{git-http-backend}, or providing a web interface with @code{cgit-service-type}."
 msgstr "Das Modul @code{(gnu services version-control)} stellt einen Dienst zur Verfügung, der einen Fernzugriff auf lokale Git-Repositorys ermöglicht. Dafür gibt es drei Möglichkeiten: den @code{git-daemon-service}, der Zugang zu Repositorys über das ungesicherte, TCP-basierte @code{git://}-Protokoll gewährt, das Erweitern des @code{nginx}-Webservers, um ihn als Proxy für Anfragen an das @code{git-http-backend} einzusetzen, oder mit dem @code{cgit-service-type} eine Weboberfläche zur Verfügung zu stellen."
 
 #. type: deffn
-#: doc/guix.texi:24043
+#: doc/guix.texi:27732
 #, no-wrap
 msgid "{Scheme Procedure} git-daemon-service [#:config (git-daemon-configuration)]"
 msgstr "{Scheme-Prozedur} git-daemon-service [#:config (git-daemon-configuration)]"
 
 #. type: deffn
-#: doc/guix.texi:24047
+#: doc/guix.texi:27736
 msgid "Return a service that runs @command{git daemon}, a simple TCP server to expose repositories over the Git protocol for anonymous access."
 msgstr "Liefert einen Dienst, der @command{git daemon} ausführt. Der Befehl startet den Git-Daemon, einen einfachen TCP-Server, um Repositorys über das Git-Protokoll für anonymen Zugriff zugänglich zu machen."
 
 #. type: deffn
-#: doc/guix.texi:24053
-msgid "The optional @var{config} argument should be a @code{<git-daemon-configuration>} object, by default it allows read-only access to exported@footnote{By creating the magic file \"git-daemon-export-ok\" in the repository directory.} repositories under @file{/srv/git}."
-msgstr "Das optionale Argument @var{config} sollte ein @code{<git-daemon-configuration>}-Objekt sein. Nach Vorgabe wird Lese-Zugriff auf exportierte@footnote{Das geschieht, indem die magische Datei „git-daemon-export-ok“ im Repository erzeugt wird.} Repositorys in @file{/srv/git} gewährt."
+#: doc/guix.texi:27742
+msgid "The optional @var{config} argument should be a @code{<git-daemon-configuration>} object, by default it allows read-only access to exported@footnote{By creating the magic file @file{git-daemon-export-ok} in the repository directory.} repositories under @file{/srv/git}."
+msgstr "Das optionale Argument @var{config} sollte ein @code{<git-daemon-configuration>}-Objekt sein. Nach Vorgabe wird Lese-Zugriff auf exportierte@footnote{Das geschieht, indem die magische Datei @file{git-daemon-export-ok} im Repository erzeugt wird.} Repositorys in @file{/srv/git} gewährt."
 
 #. type: deftp
-#: doc/guix.texi:24056
+#: doc/guix.texi:27745
 #, no-wrap
 msgid "{Data Type} git-daemon-configuration"
 msgstr "{Datentyp} git-daemon-configuration"
 
 #. type: deftp
-#: doc/guix.texi:24058
+#: doc/guix.texi:27747
 msgid "Data type representing the configuration for @code{git-daemon-service}."
 msgstr "Datentyp, der die Konfiguration für @code{git-daemon-service} repräsentiert."
 
 #. type: item
-#: doc/guix.texi:24060 doc/guix.texi:24116
+#: doc/guix.texi:27749
 #, no-wrap
-msgid "@code{package} (default: @var{git})"
-msgstr "@code{package} (Vorgabe: @var{git})"
+msgid "@code{package} (default: @code{git})"
+msgstr "@code{package} (Vorgabe: @code{git})"
 
 #. type: table
-#: doc/guix.texi:24062 doc/guix.texi:24118
+#: doc/guix.texi:27751 doc/guix.texi:27811
 msgid "Package object of the Git distributed version control system."
 msgstr "Paketobjekt des verteilten Versionskontrollsystems Git."
 
 #. type: item
-#: doc/guix.texi:24063 doc/guix.texi:24122
+#: doc/guix.texi:27752 doc/guix.texi:27815
 #, no-wrap
-msgid "@code{export-all?} (default: @var{#f})"
-msgstr "@code{export-all?} (Vorgabe: @var{#f})"
+msgid "@code{export-all?} (default: @code{#f})"
+msgstr "@code{export-all?} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:24066
+#: doc/guix.texi:27755
 msgid "Whether to allow access for all Git repositories, even if they do not have the @file{git-daemon-export-ok} file."
 msgstr "Ob Zugriff auf alle Git-Repositorys gewährt werden soll, selbst wenn keine @file{git-daemon-export-ok}-Datei in ihrem Verzeichnis gefunden wird."
 
 #. type: item
-#: doc/guix.texi:24067
+#: doc/guix.texi:27756
 #, no-wrap
 msgid "@code{base-path} (default: @file{/srv/git})"
 msgstr "@code{base-path} (Vorgabe: @file{/srv/git})"
 
 #. type: table
-#: doc/guix.texi:24072
-msgid "Whether to remap all the path requests as relative to the given path.  If you run git daemon with @var{(base-path \"/srv/git\")} on example.com, then if you later try to pull @code{git://example.com/hello.git}, git daemon will interpret the path as @code{/srv/git/hello.git}."
-msgstr "Ob alle Pfadanfragen behandelt werden sollen, als wären sie relativ zum angegebenen Pfad. Wenn Sie den Git-Daemon mit @var{(base-path \"/srv/git\")} auf example.com ausführen und später versuchen, @code{git://example.com/hello.git} zu pullen, wird der Git-Daemon den Pfad als @code{/srv/git/hello.git} interpretieren."
+#: doc/guix.texi:27762
+msgid "Whether to remap all the path requests as relative to the given path.  If you run @command{git daemon} with @code{(base-path \"/srv/git\")} on @samp{example.com}, then if you later try to pull @indicateurl{git://example.com/hello.git}, git daemon will interpret the path as @file{/srv/git/hello.git}."
+msgstr "Ob alle Pfadanfragen behandelt werden sollen, als wären sie relativ zum angegebenen Pfad. Wenn Sie @command{git daemon} mit @code{(base-path \"/srv/git\")} auf @samp{example.com} ausführen und später versuchen, @indicateurl{git://example.com/hello.git} zu pullen, wird der Git-Daemon den Pfad als @file{/srv/git/hello.git} interpretieren."
 
 #. type: item
-#: doc/guix.texi:24073
+#: doc/guix.texi:27763
 #, no-wrap
-msgid "@code{user-path} (default: @var{#f})"
-msgstr "@code{user-path} (Vorgabe: @var{#f})"
+msgid "@code{user-path} (default: @code{#f})"
+msgstr "@code{user-path} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:24080
-msgid "Whether to allow @code{~user} notation to be used in requests.  When specified with empty string, requests to @code{git://host/~alice/foo} is taken as a request to access @code{foo} repository in the home directory of user @code{alice}.  If @var{(user-path \"path\")} is specified, the same request is taken as a request to access @code{path/foo} repository in the home directory of user @code{alice}."
-msgstr "Ob die @code{~benutzerkonto}-Notation in Anfragen verwendet werden darf. Wird hier die leere Zeichenkette angegeben, werden Anfragen an @code{git://host/~alice/foo} als Anfragen verstanden, auf das @code{foo}-Repository im Persönlichen Verzeichnis des @code{alice}-Benutzerkontos verstanden. Wird @var{(user-path \"pfad\")} angegeben, wird dieselbe Anfrage als eine Anfrage verstanden, auf das @code{pfad/foo}-Repository im Persönlichen Verzeichnis des @code{alice}-Benutzerkontos zuzugreifen."
+#: doc/guix.texi:27771
+msgid "Whether to allow @code{~user} notation to be used in requests.  When specified with empty string, requests to @indicateurl{git://host/~alice/foo} is taken as a request to access @code{foo} repository in the home directory of user @code{alice}.  If @code{(user-path \"@var{path}\")} is specified, the same request is taken as a request to access @file{@var{path}/foo} repository in the home directory of user @code{alice}."
+msgstr "Ob die @code{~benutzerkonto}-Notation in Anfragen verwendet werden darf. Wird hier die leere Zeichenkette angegeben, werden Anfragen an @indicateurl{git://host/~alice/foo} als Anfragen verstanden, auf das @code{foo}-Repository im Persönlichen Verzeichnis des @code{alice}-Benutzerkontos verstanden. Wird @code{(user-path \"pfad\")} angegeben, wird dieselbe Anfrage als eine Anfrage verstanden, auf das @file{@var{pfad}/foo}-Repository im Persönlichen Verzeichnis des @code{alice}-Benutzerkontos zuzugreifen."
 
 #. type: item
-#: doc/guix.texi:24081
+#: doc/guix.texi:27772
 #, no-wrap
-msgid "@code{listen} (default: @var{'()})"
-msgstr "@code{listen} (Vorgabe: @var{'()})"
+msgid "@code{listen} (default: @code{'()})"
+msgstr "@code{listen} (Vorgabe: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:24084
+#: doc/guix.texi:27775
 msgid "Whether to listen on specific IP addresses or hostnames, defaults to all."
 msgstr "Ob auf bestimmte IP-Adressen oder Rechnernamen („Hostnames“) gelauscht werden soll. Vorgegeben ist auf allen."
 
 #. type: item
-#: doc/guix.texi:24085
+#: doc/guix.texi:27776
 #, no-wrap
-msgid "@code{port} (default: @var{#f})"
-msgstr "@code{port} (Vorgabe: @var{#f})"
+msgid "@code{port} (default: @code{#f})"
+msgstr "@code{port} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:24087
+#: doc/guix.texi:27778
 msgid "Whether to listen on an alternative port, which defaults to 9418."
 msgstr "Ob auf einer alternativen Portnummer gelauscht werden soll. Vorgegeben ist 9418."
 
 #. type: item
-#: doc/guix.texi:24088
+#: doc/guix.texi:27779
 #, no-wrap
-msgid "@code{whitelist} (default: @var{'()})"
-msgstr "@code{whitelist} (Vorgabe: @var{'()})"
+msgid "@code{whitelist} (default: @code{'()})"
+msgstr "@code{whitelist} (Vorgabe: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:24090
+#: doc/guix.texi:27781
 msgid "If not empty, only allow access to this list of directories."
 msgstr "Wenn dies nicht leer gelassen wird, wird nur der Zugriff auf die aufgelisteten Verzeichnisse gewährt."
 
-#. type: item
-#: doc/guix.texi:24091 doc/guix.texi:25381
-#, no-wrap
-msgid "@code{extra-options} (default: @var{'()})"
-msgstr "@code{extra-options} (Vorgabe: @var{'()})"
-
 #. type: table
-#: doc/guix.texi:24094
-msgid "Extra options will be passed to @code{git daemon}, please run @command{man git-daemon} for more information."
-msgstr "Zusätzliche Befehlszeilenoptionen, die dem @code{git daemon} mitgegeben werden sollen. Bitte führen Sie @command{man git-daemon} aus, um weitere Informationen zu erhalten."
+#: doc/guix.texi:27785
+msgid "Extra options will be passed to @command{git daemon}, please run @command{man git-daemon} for more information."
+msgstr "Zusätzliche Befehlszeilenoptionen, die dem @command{git daemon} mitgegeben werden sollen. Bitte führen Sie @command{man git-daemon} aus, um weitere Informationen zu erhalten."
 
 #. type: Plain text
-#: doc/guix.texi:24108
+#: doc/guix.texi:27799
 msgid "The @code{git://} protocol lacks authentication.  When you pull from a repository fetched via @code{git://}, you don't know whether the data you receive was modified or is even coming from the specified host, and your connection is subject to eavesdropping.  It's better to use an authenticated and encrypted transport, such as @code{https}.  Although Git allows you to serve repositories using unsophisticated file-based web servers, there is a faster protocol implemented by the @code{git-http-backend} program.  This program is the back-end of a proper Git web service.  It is designed to sit behind a FastCGI proxy.  @xref{Web Services}, for more on running the necessary @code{fcgiwrap} daemon."
 msgstr "Zugriffe über das @code{git://}-Protokoll werden nicht authentifiziert. Wenn Sie von einem Repository pullen, dass Sie über @code{git://} geholt haben, wissen Sie nicht, ob die empfangenen Daten modifiziert wurden oder auch nur vom angegebenen Rechner kommen, und Ihre Verbindung kann abgehört werden. Es ist besser, eine authentifizierte und verschlüsselte Übertragungsart zu verwenden, zum Beispiel @code{https}. Obwohl Git es Ihnen ermöglicht, Repositorys über schlichte dateibasierte Webserver anzubieten, gibt es ein schnelleres Protokoll, das vom @code{git-http-backend}-Programm implementiert wird. Dieses Programm dient als Hintergrundsystem für einen ordentlichen Git-Webdienst. Es wurde so konstruiert, dass es über einen FastCGI-Proxy abrufbar ist. Siehe @ref{Web Services} für weitere Informationen, wie Sie den benötigten @code{fcgiwrap}-Daemon ausführen."
 
 #. type: Plain text
-#: doc/guix.texi:24111
+#: doc/guix.texi:27802
 msgid "Guix has a separate configuration data type for serving Git repositories over HTTP."
 msgstr "Guix hat einen separaten Konfigurationsdatentyp, um Git-Repositorys über HTTP anzubieten."
 
 #. type: deftp
-#: doc/guix.texi:24112
+#: doc/guix.texi:27803
 #, no-wrap
 msgid "{Data Type} git-http-configuration"
 msgstr "{Datentyp} git-http-configuration"
 
 #. type: deftp
-#: doc/guix.texi:24114
-msgid "Data type representing the configuration for @code{git-http-service}."
-msgstr "Datentyp, der die Konfiguration für @code{git-http-service} repräsentiert."
+#: doc/guix.texi:27807
+msgid "Data type representing the configuration for a future @code{git-http-service-type}; can currently be used to configure Nginx trough @code{git-http-nginx-location-configuration}."
+msgstr "Datentyp, der in Zukunft die Konfiguration eines @code{git-http-service-type} repräsentieren soll; zurzeit kann damit Nginx über @code{git-http-nginx-location-configuration} eingerichtet werden."
 
 #. type: item
-#: doc/guix.texi:24119
+#: doc/guix.texi:27809
+#, no-wrap
+msgid "@code{package} (default: @var{git})"
+msgstr "@code{package} (Vorgabe: @var{git})"
+
+#. type: item
+#: doc/guix.texi:27812
 #, no-wrap
 msgid "@code{git-root} (default: @file{/srv/git})"
 msgstr "@code{git-root} (Vorgabe: @file{/srv/git})"
 
 #. type: table
-#: doc/guix.texi:24121
+#: doc/guix.texi:27814
 msgid "Directory containing the Git repositories to expose to the world."
 msgstr "Das Verzeichnis, das die Git-Repositorys enthält, die der Allgemeinheit zugänglich gemacht werden sollen."
 
 #. type: table
-#: doc/guix.texi:24125
+#: doc/guix.texi:27818
 msgid "Whether to expose access for all Git repositories in @var{git-root}, even if they do not have the @file{git-daemon-export-ok} file."
 msgstr "Ob alle Git-Repositorys in @var{git-root} zugänglich gemacht werden sollen, selbst wenn keine @file{git-daemon-export-ok}-Datei in ihrem Verzeichnis gefunden wird."
 
 #. type: item
-#: doc/guix.texi:24126
+#: doc/guix.texi:27819
 #, no-wrap
-msgid "@code{uri-path} (default: @file{/git/})"
-msgstr "@code{uri-path} (Vorgabe: @file{/git/})"
+msgid "@code{uri-path} (default: @samp{/git/})"
+msgstr "@code{uri-path} (Vorgabe: @samp{/git/})"
 
 #. type: table
-#: doc/guix.texi:24131
-msgid "Path prefix for Git access.  With the default @code{/git/} prefix, this will map @code{http://@var{server}/git/@var{repo}.git} to @code{/srv/git/@var{repo}.git}.  Requests whose URI paths do not begin with this prefix are not passed on to this Git instance."
-msgstr "Präfix für Pfade beim Git-Zugriff. Beim vorgegebenen Präfix @code{/git/} wird @code{http://@var{server}/git/@var{repo}.git} auf @code{/srv/git/@var{repo}.git} abgebildet. Anfragen, deren URI-Pfade nicht mit dem Präfix beginnen, werden nicht an die Git-Instanz weitergereicht."
+#: doc/guix.texi:27824
+msgid "Path prefix for Git access.  With the default @samp{/git/} prefix, this will map @indicateurl{http://@var{server}/git/@var{repo}.git} to @file{/srv/git/@var{repo}.git}.  Requests whose URI paths do not begin with this prefix are not passed on to this Git instance."
+msgstr "Präfix für Pfade beim Git-Zugriff. Beim vorgegebenen Präfix @samp{/git/} wird @indicateurl{http://@var{server}/git/@var{repo}.git} auf @file{/srv/git/@var{repo}.git} abgebildet. Anfragen, deren URI-Pfade nicht mit dem Präfix beginnen, werden nicht an die Git-Instanz weitergereicht."
 
 #. type: item
-#: doc/guix.texi:24132
+#: doc/guix.texi:27825
 #, no-wrap
 msgid "@code{fcgiwrap-socket} (default: @code{127.0.0.1:9000})"
 msgstr "@code{fcgiwrap-socket} (Vorgabe: @code{127.0.0.1:9000})"
 
 #. type: table
-#: doc/guix.texi:24135
+#: doc/guix.texi:27828
 msgid "The socket on which the @code{fcgiwrap} daemon is listening.  @xref{Web Services}."
 msgstr "Der Socket, auf dem der @code{fcgiwrap}-Daemon lauscht. Siehe @ref{Web Services}."
 
 #. type: Plain text
-#: doc/guix.texi:24142
+#: doc/guix.texi:27835
 msgid "There is no @code{git-http-service-type}, currently; instead you can create an @code{nginx-location-configuration} from a @code{git-http-configuration} and then add that location to a web server."
-msgstr "Es gibt zur Zeit keinen @code{git-http-service-type}, stattdessen können Sie eine @code{nginx-location-configuration} aus einer @code{git-http-configuration} heraus erstellen und als Location zu einem Webserver hinzufügen."
+msgstr "Es gibt zurzeit keinen @code{git-http-service-type}, stattdessen können Sie eine @code{nginx-location-configuration} aus einer @code{git-http-configuration} heraus erstellen und als Location zu einem Webserver hinzufügen."
 
 #. type: deffn
-#: doc/guix.texi:24143
+#: doc/guix.texi:27836
 #, no-wrap
 msgid "{Scheme Procedure} git-http-nginx-location-configuration @"
 msgstr "{Scheme-Prozedur} git-http-nginx-location-configuration @"
 
 #. type: deffn
-#: doc/guix.texi:24148
+#: doc/guix.texi:27841
 msgid "[config=(git-http-configuration)] Compute an @code{nginx-location-configuration} that corresponds to the given Git http configuration.  An example nginx service definition to serve the default @file{/srv/git} over HTTPS might be:"
 msgstr "[config=(git-http-configuration)] Eine @code{nginx-location-configuration} berechnen, die der angegebenen Git-HTTP-Konfiguration entspricht. Ein Beispiel für eine nginx-Dienstdefinition, um das vorgegebene @file{/srv/git}-Verzeichnis über HTTPS anzubieten, könnte so aussehen:"
 
 #. type: lisp
-#: doc/guix.texi:24165
+#: doc/guix.texi:27858
 #, no-wrap
 msgid ""
 "(service nginx-service-type\n"
@@ -45362,1425 +51860,1425 @@ msgstr ""
 "                (git-http-configuration (uri-path \"/\"))))))))))\n"
 
 #. type: deffn
-#: doc/guix.texi:24172
+#: doc/guix.texi:27865
 msgid "This example assumes that you are using Let's Encrypt to get your TLS certificate.  @xref{Certificate Services}.  The default @code{certbot} service will redirect all HTTP traffic on @code{git.my-host.org} to HTTPS.  You will also need to add an @code{fcgiwrap} proxy to your system services.  @xref{Web Services}."
 msgstr "Für dieses Beispiel nehmen wir an, dass Sie Ihr TLS-Zertifikat über Let’s Encrypt beziehen. Siehe @ref{Certificate Services}. Der vorgegebene @code{certbot}-Dienst leitet alle HTTP-Anfragen nach @code{git.mein-rechner.org} auf HTTPS um. Zu Ihren Systemdiensten werden Sie auch einen @code{fcgiwrap}-Proxy hinzufügen müssen. Siehe @ref{Web Services}."
 
 #. type: subsubheading
-#: doc/guix.texi:24174
+#: doc/guix.texi:27867
 #, no-wrap
 msgid "Cgit Service"
 msgstr "Cgit-Dienst"
 
 #. type: cindex
-#: doc/guix.texi:24176
+#: doc/guix.texi:27869
 #, no-wrap
 msgid "Cgit service"
 msgstr "Cgit-Dienst"
 
 #. type: cindex
-#: doc/guix.texi:24177
+#: doc/guix.texi:27870
 #, no-wrap
 msgid "Git, web interface"
 msgstr "Git, Weboberfläche"
 
 #. type: Plain text
-#: doc/guix.texi:24180
+#: doc/guix.texi:27873
 msgid "@uref{https://git.zx2c4.com/cgit/, Cgit} is a web frontend for Git repositories written in C."
 msgstr "@uref{https://git.zx2c4.com/cgit/, Cgit} ist eine in C geschriebene Weboberfläche als Vordergrundsystem für Git-Repositorys."
 
 #. type: Plain text
-#: doc/guix.texi:24183
+#: doc/guix.texi:27876
 msgid "The following example will configure the service with default values.  By default, Cgit can be accessed on port 80 (@code{http://localhost:80})."
 msgstr "Im folgenden Beispiel wird der Dienst mit den vorgegebenen Werten eingerichtet. Nach Vorgabe kann auf Cgit auf Port 80 unter @code{http://localhost:80} zugegriffen werden."
 
 #. type: lisp
-#: doc/guix.texi:24186
+#: doc/guix.texi:27879
 #, no-wrap
 msgid "(service cgit-service-type)\n"
 msgstr "(service cgit-service-type)\n"
 
 #. type: Plain text
-#: doc/guix.texi:24190
+#: doc/guix.texi:27883
 msgid "The @code{file-object} type designates either a file-like object (@pxref{G-Expressions, file-like objects}) or a string."
 msgstr "Der Typ @code{Dateiobjekt} bezeichnet entweder ein dateiartiges Objekt (siehe @ref{G-Expressions, dateiartige Objekte}) oder eine Zeichenkette."
 
 #. type: Plain text
-#: doc/guix.texi:24194
+#: doc/guix.texi:27887
 msgid "Available @code{cgit-configuration} fields are:"
 msgstr "Verfügbare @code{cgit-configuration}-Felder sind:"
 
 #. type: deftypevr
-#: doc/guix.texi:24195
+#: doc/guix.texi:27888
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} package package"
 msgstr "{@code{cgit-configuration}-Parameter} „package“ package"
 
 #. type: deftypevr
-#: doc/guix.texi:24197
+#: doc/guix.texi:27890
 msgid "The CGIT package."
 msgstr "Das CGIT-Paket."
 
 #. type: deftypevr
-#: doc/guix.texi:24200
+#: doc/guix.texi:27893
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} nginx-server-configuration-list nginx"
 msgstr "{@code{cgit-configuration}-Parameter} „nginx-server-configuration-list“ nginx"
 
 #. type: deftypevr
-#: doc/guix.texi:24205
+#: doc/guix.texi:27898
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} file-object about-filter"
 msgstr "{@code{cgit-configuration}-Parameter} Dateiobjekt about-filter"
 
 #. type: deftypevr
-#: doc/guix.texi:24208
+#: doc/guix.texi:27901
 msgid "Specifies a command which will be invoked to format the content of about pages (both top-level and for each repository)."
 msgstr "Gibt einen Befehl an, der zur Formatierung des Inhalts der Übersichtsseiten aufgerufen wird (sowohl auf oberster Ebene und für jedes Repository)."
 
 #. type: deftypevr
-#: doc/guix.texi:24213
+#: doc/guix.texi:27906
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string agefile"
 msgstr "{@code{cgit-configuration}-Parameter} Zeichenkette agefile"
 
 #. type: deftypevr
-#: doc/guix.texi:24216
+#: doc/guix.texi:27909
 msgid "Specifies a path, relative to each repository path, which can be used to specify the date and time of the youngest commit in the repository."
 msgstr "Gibt einen Pfad relativ zu jedem Repository-Pfad an, unter dem eine Datei gespeichert sein kann, die Datum und Uhrzeit des jüngsten Commits im Repository angibt."
 
 #. type: deftypevr
-#: doc/guix.texi:24221
+#: doc/guix.texi:27914
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} file-object auth-filter"
 msgstr "{@code{cgit-configuration}-Parameter} Dateiobjekt auth-filter"
 
 #. type: deftypevr
-#: doc/guix.texi:24224
+#: doc/guix.texi:27917
 msgid "Specifies a command that will be invoked for authenticating repository access."
 msgstr "Gibt einen Befehl an, der aufgerufen wird, um Benutzer zu authentifizieren."
 
 #. type: deftypevr
-#: doc/guix.texi:24229
+#: doc/guix.texi:27922
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string branch-sort"
 msgstr "{@code{cgit-configuration}-Parameter} Zeichenkette branch-sort"
 
 #. type: deftypevr
-#: doc/guix.texi:24232
+#: doc/guix.texi:27925
 msgid "Flag which, when set to @samp{age}, enables date ordering in the branch ref list, and when set @samp{name} enables ordering by branch name."
 msgstr "Wenn diese Option auf @samp{age} gesetzt wurde, wird die Liste der Branch-Referenzen nach Datum sortiert, und wenn sie auf @samp{name} gesetzt wurde, wird nach dem Branch-Namen sortiert."
 
 #. type: deftypevr
-#: doc/guix.texi:24234
+#: doc/guix.texi:27927
 msgid "Defaults to @samp{\"name\"}."
 msgstr "Die Vorgabe ist @samp{\"name\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:24237
+#: doc/guix.texi:27930
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string cache-root"
 msgstr "{@code{cgit-configuration}-Parameter} Zeichenkette cache-root"
 
 #. type: deftypevr
-#: doc/guix.texi:24239
+#: doc/guix.texi:27932
 msgid "Path used to store the cgit cache entries."
 msgstr "Pfad, unter dem Cgit-Zwischenspeichereinträge abgelegt werden."
 
 #. type: deftypevr
-#: doc/guix.texi:24241
+#: doc/guix.texi:27934
 msgid "Defaults to @samp{\"/var/cache/cgit\"}."
 msgstr "Die Vorgabe ist @samp{\"/var/cache/cgit\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:24244
+#: doc/guix.texi:27937
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer cache-static-ttl"
 msgstr "{@code{cgit-configuration}-Parameter} Ganze-Zahl cache-static-ttl"
 
 #. type: deftypevr
-#: doc/guix.texi:24247
+#: doc/guix.texi:27940
 msgid "Number which specifies the time-to-live, in minutes, for the cached version of repository pages accessed with a fixed SHA1."
-msgstr "Zahl, die angibt, wieviele Minuten die Zwischenspeicherungen für Repository-Seiten mit fester SHA1-Summe gültig bleiben, auf die zugegriffen wird („Time-to-live“)."
+msgstr "Zahl, die angibt, wie viele Minuten die Zwischenspeicherungen für Repository-Seiten mit fester SHA1-Summe gültig bleiben, auf die zugegriffen wird („Time-to-live“)."
 
 #. type: deftypevr
-#: doc/guix.texi:24249 doc/guix.texi:24692
+#: doc/guix.texi:27942 doc/guix.texi:28385
 msgid "Defaults to @samp{-1}."
 msgstr "Die Vorgabe ist @samp{-1}."
 
 #. type: deftypevr
-#: doc/guix.texi:24252
+#: doc/guix.texi:27945
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer cache-dynamic-ttl"
 msgstr "{@code{cgit-configuration}-Parameter} Ganze-Zahl cache-dynamic-ttl"
 
 #. type: deftypevr
-#: doc/guix.texi:24255
+#: doc/guix.texi:27948
 msgid "Number which specifies the time-to-live, in minutes, for the cached version of repository pages accessed without a fixed SHA1."
-msgstr "Zahl, die angibt, wieviele Minuten die Zwischenspeicherungen für Repository-Seiten mit veränderlicher SHA1-Summe gültig bleiben, auf die zugegriffen wird.<"
+msgstr "Zahl, die angibt, wie viele Minuten die Zwischenspeicherungen für Repository-Seiten mit veränderlicher SHA1-Summe gültig bleiben, auf die zugegriffen wird.<"
 
 #. type: deftypevr
-#: doc/guix.texi:24260
+#: doc/guix.texi:27953
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer cache-repo-ttl"
 msgstr "{@code{cgit-configuration}-Parameter} Ganze-Zahl cache-repo-ttl"
 
 #. type: deftypevr
-#: doc/guix.texi:24263
+#: doc/guix.texi:27956
 msgid "Number which specifies the time-to-live, in minutes, for the cached version of the repository summary page."
-msgstr "Zahl, die angibt, wieviele Minuten die Zwischenspeicherungen für die Übersichtsseiten („summary“) von Repositorys gültig bleiben."
+msgstr "Zahl, die angibt, wie viele Minuten die Zwischenspeicherungen für die Übersichtsseiten („summary“) von Repositorys gültig bleiben."
 
 #. type: deftypevr
-#: doc/guix.texi:24268
+#: doc/guix.texi:27961
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer cache-root-ttl"
 msgstr "{@code{cgit-configuration}-Parameter} Ganze-Zahl cache-root-ttl"
 
 #. type: deftypevr
-#: doc/guix.texi:24271
+#: doc/guix.texi:27964
 msgid "Number which specifies the time-to-live, in minutes, for the cached version of the repository index page."
-msgstr "Zahl, die angibt, wieviele Minuten die Zwischenspeicherung der Seite mit dem Repository-Index gültig bleibt."
+msgstr "Zahl, die angibt, wie viele Minuten die Zwischenspeicherung der Seite mit dem Repository-Index gültig bleibt."
 
 #. type: deftypevr
-#: doc/guix.texi:24276
+#: doc/guix.texi:27969
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer cache-scanrc-ttl"
 msgstr "{@code{cgit-configuration}-Parameter} Ganze-Zahl cache-scanrc-ttl"
 
 #. type: deftypevr
-#: doc/guix.texi:24279
+#: doc/guix.texi:27972
 msgid "Number which specifies the time-to-live, in minutes, for the result of scanning a path for Git repositories."
-msgstr "Zahl, die angibt, wieviele Minuten die Zwischenspeicherung des Ergebnisses einer Suche in einem Pfad nach Git-Repositorys gültig bleibt."
+msgstr "Zahl, die angibt, wie viele Minuten die Zwischenspeicherung des Ergebnisses einer Suche in einem Pfad nach Git-Repositorys gültig bleibt."
 
 #. type: deftypevr
-#: doc/guix.texi:24284
+#: doc/guix.texi:27977
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer cache-about-ttl"
 msgstr "{@code{cgit-configuration}-Parameter} Ganze-Zahl cache-about-ttl"
 
 #. type: deftypevr
-#: doc/guix.texi:24287
+#: doc/guix.texi:27980
 msgid "Number which specifies the time-to-live, in minutes, for the cached version of the repository about page."
-msgstr "Zahl, die angibt, wieviele Minuten die Zwischenspeicherungen für die Beschreibungsseiten („about“) von Repositorys gültig bleiben."
+msgstr "Zahl, die angibt, wie viele Minuten die Zwischenspeicherungen für die Beschreibungsseiten („about“) von Repositorys gültig bleiben."
 
 #. type: deftypevr
-#: doc/guix.texi:24292
+#: doc/guix.texi:27985
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer cache-snapshot-ttl"
 msgstr "{@code{cgit-configuration}-Parameter} Ganze-Zahl cache-snapshot-ttl"
 
 #. type: deftypevr
-#: doc/guix.texi:24295
+#: doc/guix.texi:27988
 msgid "Number which specifies the time-to-live, in minutes, for the cached version of snapshots."
-msgstr "Zahl, die angibt, wieviele Minuten die Zwischenspeicherungen für die Snapshots von Repositorys gültig bleiben."
+msgstr "Zahl, die angibt, wie viele Minuten die Zwischenspeicherungen für die Snapshots von Repositorys gültig bleiben."
 
 #. type: deftypevr
-#: doc/guix.texi:24300
+#: doc/guix.texi:27993
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer cache-size"
 msgstr "{@code{cgit-configuration}-Parameter} Ganze-Zahl cache-size"
 
 #. type: deftypevr
-#: doc/guix.texi:24303
+#: doc/guix.texi:27996
 msgid "The maximum number of entries in the cgit cache.  When set to @samp{0}, caching is disabled."
-msgstr "Wieviele Einträge der Cgit-Zwischenspeicher höchstens haben kann. Wird @samp{0} festgelegt, wird @emph{nicht} zwischengespeichert."
+msgstr "Wie viele Einträge der Cgit-Zwischenspeicher höchstens haben kann. Wird @samp{0} festgelegt, wird @emph{nicht} zwischengespeichert."
 
 #. type: deftypevr
-#: doc/guix.texi:24308
+#: doc/guix.texi:28001
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean case-sensitive-sort?"
 msgstr "{@code{cgit-configuration}-Parameter} Boolescher-Ausdruck case-sensitive-sort?"
 
 #. type: deftypevr
-#: doc/guix.texi:24310
+#: doc/guix.texi:28003
 msgid "Sort items in the repo list case sensitively."
 msgstr "Ob beim Sortieren von Objekten in der Repository-Liste die Groß-/Kleinschreibung beachtet werden soll."
 
 #. type: deftypevr
-#: doc/guix.texi:24315
+#: doc/guix.texi:28008
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} list clone-prefix"
 msgstr "{@code{cgit-configuration}-Parameter} Liste clone-prefix"
 
 #. type: deftypevr
-#: doc/guix.texi:24318
+#: doc/guix.texi:28011
 msgid "List of common prefixes which, when combined with a repository URL, generates valid clone URLs for the repository."
 msgstr "Liste gemeinsamer Präfixe, von denen ein Repository geklont werden kann. D.h.@: dass, wenn eines mit einer Repository-URL kombiniert wird, eine gültige URL zum Klonen des Repositorys entsteht."
 
 #. type: deftypevr
-#: doc/guix.texi:24323
+#: doc/guix.texi:28016
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} list clone-url"
 msgstr "{@code{cgit-configuration}-Parameter} Liste clone-url"
 
 #. type: deftypevr
-#: doc/guix.texi:24325
+#: doc/guix.texi:28018
 msgid "List of @code{clone-url} templates."
 msgstr "Liste von Schablonen, aus denen eine @code{clone-url} entsteht."
 
 #. type: deftypevr
-#: doc/guix.texi:24330
+#: doc/guix.texi:28023
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} file-object commit-filter"
 msgstr "{@code{cgit-configuration}-Parameter} Dateiobjekt commit-filter"
 
 #. type: deftypevr
-#: doc/guix.texi:24332
+#: doc/guix.texi:28025
 msgid "Command which will be invoked to format commit messages."
 msgstr "Befehl, mit dem Commit-Nachrichten formatiert werden."
 
 #. type: deftypevr
-#: doc/guix.texi:24337
+#: doc/guix.texi:28030
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string commit-sort"
 msgstr "{@code{cgit-configuration}-Parameter} Zeichenkette commit-sort"
 
 #. type: deftypevr
-#: doc/guix.texi:24341 doc/guix.texi:24899
+#: doc/guix.texi:28034 doc/guix.texi:28592
 msgid "Flag which, when set to @samp{date}, enables strict date ordering in the commit log, and when set to @samp{topo} enables strict topological ordering."
 msgstr "Wenn diese Option als @samp{date} festgelegt wird, wird das Commit-Log streng nach Datum geordnet. Wenn sie auf @samp{topo} gesetzt ist, wird es streng topologisch geordnet."
 
 # TODO This does not make sense.
 #. type: deftypevr
-#: doc/guix.texi:24343
+#: doc/guix.texi:28036
 msgid "Defaults to @samp{\"git log\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24346
+#: doc/guix.texi:28039
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} file-object css"
 msgstr "{@code{cgit-configuration}-Parameter} Dateiobjekt css"
 
 #. type: deftypevr
-#: doc/guix.texi:24348
+#: doc/guix.texi:28041
 msgid "URL which specifies the css document to include in all cgit pages."
 msgstr "URL, die angibt, welches CSS-Dokument von jeder Cgit-Seite eingebunden werden soll."
 
 #. type: deftypevr
-#: doc/guix.texi:24350
+#: doc/guix.texi:28043
 msgid "Defaults to @samp{\"/share/cgit/cgit.css\"}."
 msgstr "Die Vorgabe ist @samp{\"/share/cgit/cgit.css\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:24353
+#: doc/guix.texi:28046
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} file-object email-filter"
 msgstr "{@code{cgit-configuration}-Parameter} Dateiobjekt email-filter"
 
 #. type: deftypevr
-#: doc/guix.texi:24357
+#: doc/guix.texi:28050
 msgid "Specifies a command which will be invoked to format names and email address of committers, authors, and taggers, as represented in various places throughout the cgit interface."
 msgstr "Gibt einen Befehl an, um die Namen und E-Mail-Adressen der Commiter, Autoren und Tagger zu formatieren, die an verschiedenen Stellen in der Oberfläche von Cgit vorkommen."
 
 #. type: deftypevr
-#: doc/guix.texi:24362
+#: doc/guix.texi:28055
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean embedded?"
 msgstr "{@code{cgit-configuration}-Parameter} Boolescher-Ausdruck embedded?"
 
 #. type: deftypevr
-#: doc/guix.texi:24365
+#: doc/guix.texi:28058
 msgid "Flag which, when set to @samp{#t}, will make cgit generate a HTML fragment suitable for embedding in other HTML pages."
 msgstr "Wenn diese Option auf @samp{#t} gesetzt ist, wird Cgit ein HTML-Fragment erzeugen, das für die Einbettung in andere HTML-Seiten geeignet ist."
 
 #. type: deftypevr
-#: doc/guix.texi:24370
+#: doc/guix.texi:28063
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean enable-commit-graph?"
 msgstr "{@code{cgit-configuration}-Parameter} Boolescher-Ausdruck enable-commit-graph?"
 
 #. type: deftypevr
-#: doc/guix.texi:24374
+#: doc/guix.texi:28067
 msgid "Flag which, when set to @samp{#t}, will make cgit print an ASCII-art commit history graph to the left of the commit messages in the repository log page."
 msgstr "Wenn diese Option auf @samp{#t} gesetzt ist, wird Cgit den Graphen der Commit-Historie links von den Commit-Nachrichten auf den Commit-Log-Seiten mit ASCII-Zeichen darstellen."
 
 #. type: deftypevr
-#: doc/guix.texi:24379
+#: doc/guix.texi:28072
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean enable-filter-overrides?"
 msgstr "{@code{cgit-configuration}-Parameter} Boolescher-Ausdruck enable-filter-overrides?"
 
 #. type: deftypevr
-#: doc/guix.texi:24382
+#: doc/guix.texi:28075
 msgid "Flag which, when set to @samp{#t}, allows all filter settings to be overridden in repository-specific cgitrc files."
 msgstr "Wenn diese Option auf @samp{#t} gesetzt ist, können alle Filtereinstellungen durch die cgitrc-Dateien für das jeweilige Repository geändert werden."
 
 #. type: deftypevr
-#: doc/guix.texi:24387
+#: doc/guix.texi:28080
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean enable-follow-links?"
 msgstr "{@code{cgit-configuration}-Parameter} Boolescher-Ausdruck enable-follow-links?"
 
 #. type: deftypevr
-#: doc/guix.texi:24390
+#: doc/guix.texi:28083
 msgid "Flag which, when set to @samp{#t}, allows users to follow a file in the log view."
 msgstr "Wenn diese Option auf @samp{#t} gesetzt ist, können Benutzer in der Log-Ansicht einer Datei folgen („--follow“)."
 
 #. type: deftypevr
-#: doc/guix.texi:24395
+#: doc/guix.texi:28088
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean enable-http-clone?"
 msgstr "{@code{cgit-configuration}-Parameter} Boolescher-Ausdruck enable-http-clone?"
 
 #. type: deftypevr
-#: doc/guix.texi:24398
+#: doc/guix.texi:28091
 msgid "If set to @samp{#t}, cgit will act as an dumb HTTP endpoint for Git clones."
 msgstr "Wenn es auf @samp{#t} gesetzt ist, kann Cgit als Endpunkt für eine Dumb-HTTP-Übertragung mit „git clone“ benutzt werden."
 
 #. type: deftypevr
-#: doc/guix.texi:24403
+#: doc/guix.texi:28096
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean enable-index-links?"
 msgstr "{@code{cgit-configuration}-Parameter} Boolescher-Ausdruck enable-index-links?"
 
 #. type: deftypevr
-#: doc/guix.texi:24406
+#: doc/guix.texi:28099
 msgid "Flag which, when set to @samp{#t}, will make cgit generate extra links \"summary\", \"commit\", \"tree\" for each repo in the repository index."
 msgstr "Wenn diese Option auf @samp{#t} gesetzt ist, legt Cgit für jedes Repository zusätzlich Hyperlinks „summary“, „commit“, „tree“ im Repository-Index an."
 
 #. type: deftypevr
-#: doc/guix.texi:24411
+#: doc/guix.texi:28104
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean enable-index-owner?"
 msgstr "{@code{cgit-configuration}-Parameter} Boolescher-Ausdruck enable-index-owner?"
 
 #. type: deftypevr
-#: doc/guix.texi:24414
+#: doc/guix.texi:28107
 msgid "Flag which, when set to @samp{#t}, will make cgit display the owner of each repo in the repository index."
 msgstr "Wenn diese Option auf @samp{#t} gesetzt ist, zeigt Cgit den Besitzer für jedes Repository im Repository-Index an."
 
 #. type: deftypevr
-#: doc/guix.texi:24419
+#: doc/guix.texi:28112
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean enable-log-filecount?"
 msgstr "{@code{cgit-configuration}-Parameter} Boolescher-Ausdruck enable-log-filecount?"
 
 #. type: deftypevr
-#: doc/guix.texi:24422
+#: doc/guix.texi:28115
 msgid "Flag which, when set to @samp{#t}, will make cgit print the number of modified files for each commit on the repository log page."
 msgstr "Wenn diese Option auf @samp{#t} gesetzt ist, zeigt Cgit für jeden Commit auf den Repository-Log-Seiten die geänderten Dateien an."
 
 #. type: deftypevr
-#: doc/guix.texi:24427
+#: doc/guix.texi:28120
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean enable-log-linecount?"
 msgstr "{@code{cgit-configuration}-Parameter} Boolescher-Ausdruck enable-log-linecount?"
 
 #. type: deftypevr
-#: doc/guix.texi:24430
+#: doc/guix.texi:28123
 msgid "Flag which, when set to @samp{#t}, will make cgit print the number of added and removed lines for each commit on the repository log page."
 msgstr "Wenn diese Option auf @samp{#t} gesetzt ist, zeigt Cgit für jeden Commit auf den Repository-Log-Seiten die Anzahl der hinzugefügten und entfernten Zeilen an."
 
 #. type: deftypevr
-#: doc/guix.texi:24435
+#: doc/guix.texi:28128
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean enable-remote-branches?"
 msgstr "{@code{cgit-configuration}-Parameter} Boolescher-Ausdruck enable-remote-branches?"
 
 #. type: deftypevr
-#: doc/guix.texi:24438 doc/guix.texi:24962
+#: doc/guix.texi:28131 doc/guix.texi:28655
 msgid "Flag which, when set to @code{#t}, will make cgit display remote branches in the summary and refs views."
 msgstr "Wenn diese Option auf @samp{#t} gesetzt ist, zeigt Cgit unter den „summary“- und „ref“-Seiten entfernte Branches an."
 
 #. type: deftypevr
-#: doc/guix.texi:24443
+#: doc/guix.texi:28136
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean enable-subject-links?"
 msgstr "{@code{cgit-configuration}-Parameter} Boolescher-Ausdruck enable-subject-links?"
 
 #. type: deftypevr
-#: doc/guix.texi:24447
+#: doc/guix.texi:28140
 msgid "Flag which, when set to @code{1}, will make cgit use the subject of the parent commit as link text when generating links to parent commits in commit view."
 msgstr "Wenn diese Option auf @samp{#t} gesetzt ist, zeigt Cgit für Links auf Eltern-Commits die Betreffzeile des Eltern-Commits als Linktext in der Commit-Ansicht an."
 
 #. type: deftypevr
-#: doc/guix.texi:24452
+#: doc/guix.texi:28145
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean enable-html-serving?"
 msgstr "{@code{cgit-configuration}-Parameter} Boolescher-Ausdruck enable-html-serving?"
 
 # TODO This is not the description for this option.
 #. type: deftypevr
-#: doc/guix.texi:24456
+#: doc/guix.texi:28149
 msgid "Flag which, when set to @samp{#t}, will make cgit use the subject of the parent commit as link text when generating links to parent commits in commit view."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24461
+#: doc/guix.texi:28154
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean enable-tree-linenumbers?"
 msgstr "{@code{cgit-configuration}-Parameter} Boolescher-Ausdruck enable-tree-linenumbers?"
 
 #. type: deftypevr
-#: doc/guix.texi:24464
+#: doc/guix.texi:28157
 msgid "Flag which, when set to @samp{#t}, will make cgit generate linenumber links for plaintext blobs printed in the tree view."
 msgstr "Wenn diese Option auf @samp{#t} gesetzt ist, zeigt Cgit für jeden Blob aus reinem Text Links auf dessen Zeilennummern in der Baumansicht („tree“) an."
 
 #. type: deftypevr
-#: doc/guix.texi:24469
+#: doc/guix.texi:28162
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean enable-git-config?"
 msgstr "{@code{cgit-configuration}-Parameter} Boolescher-Ausdruck enable-git-config?"
 
 # TODO This description seems to be wrong.
 #. type: deftypevr
-#: doc/guix.texi:24472
+#: doc/guix.texi:28165
 msgid "Flag which, when set to @samp{#f}, will allow cgit to use Git config to set any repo specific settings."
 msgstr ""
 
 # TODO It seems this should not be a file-object.
 #. type: deftypevr
-#: doc/guix.texi:24477
+#: doc/guix.texi:28170
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} file-object favicon"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24479
+#: doc/guix.texi:28172
 msgid "URL used as link to a shortcut icon for cgit."
 msgstr "URL, auf der ein Cgit-Symbol für die Anzeige in einem Webbrowser zu finden ist."
 
 #. type: deftypevr
-#: doc/guix.texi:24481
+#: doc/guix.texi:28174
 msgid "Defaults to @samp{\"/favicon.ico\"}."
 msgstr "Die Vorgabe ist @samp{\"/favicon.ico\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:24484
+#: doc/guix.texi:28177
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string footer"
 msgstr "{@code{cgit-configuration}-Parameter} Zeichenkette footer"
 
 #. type: deftypevr
-#: doc/guix.texi:24488
+#: doc/guix.texi:28181
 msgid "The content of the file specified with this option will be included verbatim at the bottom of all pages (i.e.@: it replaces the standard \"generated by...\"@: message)."
 msgstr "Der Inhalt der für diese Option angegebenen Datei wird wortwörtlich am Ende jeder Seite eingefügt (d.h.@: er ersetzt die vorgegebene Mitteilung „generated by …“)."
 
 #. type: deftypevr
-#: doc/guix.texi:24493
+#: doc/guix.texi:28186
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string head-include"
 msgstr "{@code{cgit-configuration}-Parameter} Zeichenkette head-include"
 
 #. type: deftypevr
-#: doc/guix.texi:24496
+#: doc/guix.texi:28189
 msgid "The content of the file specified with this option will be included verbatim in the HTML HEAD section on all pages."
 msgstr "Der Inhalt der für diese Option angegebenen Datei wird wortwörtlich im HTML-HEAD-Bereich jeder Seite eingefügt."
 
 #. type: deftypevr
-#: doc/guix.texi:24501
+#: doc/guix.texi:28194
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string header"
 msgstr "{@code{cgit-configuration}-Parameter} Zeichenkette header"
 
 #. type: deftypevr
-#: doc/guix.texi:24504
+#: doc/guix.texi:28197
 msgid "The content of the file specified with this option will be included verbatim at the top of all pages."
 msgstr "Der Inhalt der für diese Option angegebenen Datei wird wortwörtlich am Anfang jeder Seite eingefügt."
 
 #. type: deftypevr
-#: doc/guix.texi:24509
+#: doc/guix.texi:28202
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} file-object include"
 msgstr "{@code{cgit-configuration}-Parameter} Dateiobjekt include"
 
 #. type: deftypevr
-#: doc/guix.texi:24512
+#: doc/guix.texi:28205
 msgid "Name of a configfile to include before the rest of the current config- file is parsed."
 msgstr "Der Name einer Konfigurationsdatei, deren Inhalt eingefügt werden soll, bevor die übrige hier angegebene Konfiguration eingelesen wird."
 
 #. type: deftypevr
-#: doc/guix.texi:24517
+#: doc/guix.texi:28210
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string index-header"
 msgstr "{@code{cgit-configuration}-Parameter} Zeichenkette index-header"
 
 #. type: deftypevr
-#: doc/guix.texi:24520
+#: doc/guix.texi:28213
 msgid "The content of the file specified with this option will be included verbatim above the repository index."
 msgstr "Der Inhalt der mit dieser Option angegebenen Datei wird wortwörtlich oberhalb des Repository-Index eingefügt."
 
 #. type: deftypevr
-#: doc/guix.texi:24525
+#: doc/guix.texi:28218
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string index-info"
 msgstr "{@code{cgit-configuration}-Parameter} Zeichenkette index-info"
 
 #. type: deftypevr
-#: doc/guix.texi:24528
+#: doc/guix.texi:28221
 msgid "The content of the file specified with this option will be included verbatim below the heading on the repository index page."
 msgstr "Der Inhalt der mit dieser Option angegebenen Datei wird wortwörtlich unterhalb der Überschrift auf jeder Repository-Index-Seite eingefügt."
 
 #. type: deftypevr
-#: doc/guix.texi:24533
+#: doc/guix.texi:28226
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean local-time?"
 msgstr "{@code{cgit-configuration}-Parameter} Boolescher-Ausdruck local-time?"
 
 #. type: deftypevr
-#: doc/guix.texi:24536
+#: doc/guix.texi:28229
 msgid "Flag which, if set to @samp{#t}, makes cgit print commit and tag times in the servers timezone."
 msgstr "Wenn diese Option auf @samp{#t} gesetzt ist, gibt Cgit die Zeitstempel von Commits und Tags in der Zeitzone des Servers an."
 
 # TODO It seems this should not be a file-object.
 #. type: deftypevr
-#: doc/guix.texi:24541
+#: doc/guix.texi:28234
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} file-object logo"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24544
+#: doc/guix.texi:28237
 msgid "URL which specifies the source of an image which will be used as a logo on all cgit pages."
 msgstr "URL, unter der ein Bild zu finden ist, das auf allen Cgit-Seiten als Logo zu sehen sein wird."
 
 #. type: deftypevr
-#: doc/guix.texi:24546
+#: doc/guix.texi:28239
 msgid "Defaults to @samp{\"/share/cgit/cgit.png\"}."
 msgstr "Die Vorgabe ist @samp{\"/share/cgit/cgit.png\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:24549
+#: doc/guix.texi:28242
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string logo-link"
 msgstr "{@code{cgit-configuration}-Parameter} Zeichenkette logo-link"
 
 #. type: deftypevr
-#: doc/guix.texi:24551 doc/guix.texi:25008
+#: doc/guix.texi:28244 doc/guix.texi:28701
 msgid "URL loaded when clicking on the cgit logo image."
 msgstr "URL, die geladen wird, wenn jemand auf das Logo-Bild klickt."
 
 #. type: deftypevr
-#: doc/guix.texi:24556
+#: doc/guix.texi:28249
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} file-object owner-filter"
 msgstr "{@code{cgit-configuration}-Parameter} Dateiobjekt owner-filter"
 
 #. type: deftypevr
-#: doc/guix.texi:24559
+#: doc/guix.texi:28252
 msgid "Command which will be invoked to format the Owner column of the main page."
 msgstr "Befehl, der aufgerufen wird, um die Besitzerspalte auf der Hauptseite zu formatieren."
 
 #. type: deftypevr
-#: doc/guix.texi:24564
+#: doc/guix.texi:28257
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer max-atom-items"
 msgstr "{@code{cgit-configuration}-Parameter} Ganze-Zahl max-atom-items"
 
 #. type: deftypevr
-#: doc/guix.texi:24566
+#: doc/guix.texi:28259
 msgid "Number of items to display in atom feeds view."
 msgstr "Anzahl der Objekte, die in der Atom-Feed-Ansicht angezeigt werden sollen."
 
 #. type: deftypevr
-#: doc/guix.texi:24568 doc/guix.texi:24803 doc/guix.texi:24811
-#: doc/guix.texi:24819
+#: doc/guix.texi:28261 doc/guix.texi:28496 doc/guix.texi:28504
+#: doc/guix.texi:28512
 msgid "Defaults to @samp{10}."
 msgstr "Die Vorgabe ist @samp{10}."
 
 #. type: deftypevr
-#: doc/guix.texi:24571
+#: doc/guix.texi:28264
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer max-commit-count"
 msgstr "{@code{cgit-configuration}-Parameter} Ganze-Zahl max-commit-count"
 
 #. type: deftypevr
-#: doc/guix.texi:24573
+#: doc/guix.texi:28266
 msgid "Number of entries to list per page in \"log\" view."
 msgstr "Anzahl der Einträge, die in der Log-Ansicht pro Seite angezeigt werden sollen."
 
 #. type: deftypevr
-#: doc/guix.texi:24575 doc/guix.texi:24590
+#: doc/guix.texi:28268 doc/guix.texi:28283
 msgid "Defaults to @samp{50}."
 msgstr "Die Vorgabe ist @samp{50}."
 
 #. type: deftypevr
-#: doc/guix.texi:24578
+#: doc/guix.texi:28271
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer max-message-length"
 msgstr "{@code{cgit-configuration}-Parameter} Ganze-Zahl max-message-length"
 
 #. type: deftypevr
-#: doc/guix.texi:24580
+#: doc/guix.texi:28273
 msgid "Number of commit message characters to display in \"log\" view."
 msgstr "Anzahl der Zeichen, die in der Log-Ansicht von jeder Commit-Nachricht angezeigt werden sollen."
 
 #. type: deftypevr
-#: doc/guix.texi:24582 doc/guix.texi:24598
+#: doc/guix.texi:28275 doc/guix.texi:28291
 msgid "Defaults to @samp{80}."
 msgstr "Die Vorgabe ist @samp{80}."
 
 #. type: deftypevr
-#: doc/guix.texi:24585
+#: doc/guix.texi:28278
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer max-repo-count"
 msgstr "{@code{cgit-configuration}-Parameter} Ganze-Zahl max-repo-count"
 
 #. type: deftypevr
-#: doc/guix.texi:24588
+#: doc/guix.texi:28281
 msgid "Specifies the number of entries to list per page on the repository index page."
-msgstr "Gibt an, wieviele Einträge auf jeder Seite der Repository-Index-Seiten stehen."
+msgstr "Gibt an, wie viele Einträge auf jeder Seite der Repository-Index-Seiten stehen."
 
 #. type: deftypevr
-#: doc/guix.texi:24593
+#: doc/guix.texi:28286
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer max-repodesc-length"
 msgstr "{@code{cgit-configuration}-Parameter} Ganze-Zahl max-repodesc-length"
 
 #. type: deftypevr
-#: doc/guix.texi:24596
+#: doc/guix.texi:28289
 msgid "Specifies the maximum number of repo description characters to display on the repository index page."
 msgstr "Gibt die maximale Anzahl der Zeichen an, die von jeder Repository-Beschreibung auf den Repository-Index-Seiten angezeigt werden sollen."
 
 #. type: deftypevr
-#: doc/guix.texi:24601
+#: doc/guix.texi:28294
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer max-blob-size"
 msgstr "{@code{cgit-configuration}-Parameter} Ganze-Zahl max-blob-size"
 
 #. type: deftypevr
-#: doc/guix.texi:24603
+#: doc/guix.texi:28296
 msgid "Specifies the maximum size of a blob to display HTML for in KBytes."
 msgstr "Gibt die maximale Größe eines Blobs in Kilobytes an, für den HTML angezeigt werden soll."
 
 #. type: deftypevr
-#: doc/guix.texi:24608
+#: doc/guix.texi:28301
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string max-stats"
 msgstr "{@code{cgit-configuration}-Parameter} Zeichenkette max-stats"
 
 #. type: deftypevr
-#: doc/guix.texi:24611
+#: doc/guix.texi:28304
 msgid "Maximum statistics period.  Valid values are @samp{week},@samp{month}, @samp{quarter} and @samp{year}."
 msgstr "Maximaler Zeitraum für Statistiken. Gültige Werte sind @samp{week} (Woche), @samp{month} (Monat), @samp{quarter} (Quartal) und @samp{year} (Jahr)."
 
 #. type: deftypevr
-#: doc/guix.texi:24616
+#: doc/guix.texi:28309
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} mimetype-alist mimetype"
 msgstr "{@code{cgit-configuration}-Parameter} Mimetype-Assoziative-Liste mimetype"
 
 #. type: deftypevr
-#: doc/guix.texi:24618
+#: doc/guix.texi:28311
 msgid "Mimetype for the specified filename extension."
 msgstr "Mimetype je für die angegebene Dateinamenserweiterung."
 
 #. type: deftypevr
-#: doc/guix.texi:24622
+#: doc/guix.texi:28315
 msgid "Defaults to @samp{((gif \"image/gif\") (html \"text/html\") (jpg \"image/jpeg\") (jpeg \"image/jpeg\") (pdf \"application/pdf\") (png \"image/png\") (svg \"image/svg+xml\"))}."
 msgstr "Die Vorgabe ist @samp{((gif \"image/gif\") (html \"text/html\") (jpg \"image/jpeg\") (jpeg \"image/jpeg\") (pdf \"application/pdf\") (png \"image/png\") (svg \"image/svg+xml\"))}."
 
 #. type: deftypevr
-#: doc/guix.texi:24625
+#: doc/guix.texi:28318
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} file-object mimetype-file"
 msgstr "{@code{cgit-configuration}-Parameter} Dateiobjekt mimetype-file"
 
 #. type: deftypevr
-#: doc/guix.texi:24627
+#: doc/guix.texi:28320
 msgid "Specifies the file to use for automatic mimetype lookup."
 msgstr "Gibt an, welche Datei zur automatischen Auflösung des Mimetypes benutzt werden soll."
 
 #. type: deftypevr
-#: doc/guix.texi:24632
+#: doc/guix.texi:28325
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string module-link"
 msgstr "{@code{cgit-configuration}-Parameter} Zeichenkette module-link"
 
 #. type: deftypevr
-#: doc/guix.texi:24635
+#: doc/guix.texi:28328
 msgid "Text which will be used as the formatstring for a hyperlink when a submodule is printed in a directory listing."
 msgstr "Text, der als Formatzeichenkette für einen Hyperlink benutzt wird, wenn in einer Verzeichnisauflistung ein Submodul ausgegeben wird."
 
 #. type: deftypevr
-#: doc/guix.texi:24640
+#: doc/guix.texi:28333
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean nocache?"
 msgstr "{@code{cgit-configuration}-Parameter} Boolescher-Ausdruck nocache?"
 
 #. type: deftypevr
-#: doc/guix.texi:24642
+#: doc/guix.texi:28335
 msgid "If set to the value @samp{#t} caching will be disabled."
 msgstr "Wenn dies auf @samp{#t} gesetzt ist, wird nicht zwischengespeichert."
 
 #. type: deftypevr
-#: doc/guix.texi:24647
+#: doc/guix.texi:28340
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean noplainemail?"
 msgstr "{@code{cgit-configuration}-Parameter} Boolescher-Ausdruck noplainemail?"
 
 #. type: deftypevr
-#: doc/guix.texi:24650
+#: doc/guix.texi:28343
 msgid "If set to @samp{#t} showing full author email addresses will be disabled."
 msgstr "Wenn dies auf @samp{#t} gesetzt ist, werden keine vollen E-Mail-Adressen angezeigt."
 
 #. type: deftypevr
-#: doc/guix.texi:24655
+#: doc/guix.texi:28348
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean noheader?"
 msgstr "{@code{cgit-configuration}-Parameter} Boolescher-Ausdruck noheader?"
 
 #. type: deftypevr
-#: doc/guix.texi:24658
+#: doc/guix.texi:28351
 msgid "Flag which, when set to @samp{#t}, will make cgit omit the standard header on all pages."
 msgstr "Wenn diese Option auf @samp{#t} gesetzt ist, wird Cgit die Standardseitenkopf auf allen Seiten weglassen."
 
 #. type: deftypevr
-#: doc/guix.texi:24663
+#: doc/guix.texi:28356
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} project-list project-list"
 msgstr "{@code{cgit-configuration}-Parameter} Projektliste project-list"
 
 #. type: deftypevr
-#: doc/guix.texi:24667
+#: doc/guix.texi:28360
 msgid "A list of subdirectories inside of @code{repository-directory}, relative to it, that should loaded as Git repositories.  An empty list means that all subdirectories will be loaded."
 msgstr "Eine Liste der Unterverzeichnisse innerhalb des mit @code{repository-directory} festgelegten Verzeichnisses, relativ dazu angegeben, die als Git-Repositorys geladen werden sollen. Eine leere Liste bedeutet, dass alle Unterverzeichnisse geladen werden."
 
 #. type: deftypevr
-#: doc/guix.texi:24672
+#: doc/guix.texi:28365
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} file-object readme"
 msgstr "{@code{cgit-configuration}-Parameter} Dateiobjekt readme"
 
 #. type: deftypevr
-#: doc/guix.texi:24674
+#: doc/guix.texi:28367
 msgid "Text which will be used as default value for @code{cgit-repo-readme}."
 msgstr "Text, der als voreingestellter Wert für @code{cgit-repo-readme} benutzt wird."
 
 #. type: deftypevr
-#: doc/guix.texi:24679
+#: doc/guix.texi:28372
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean remove-suffix?"
 msgstr "{@code{cgit-configuration}-Parameter} Boolescher-Ausdruck remove-suffix?"
 
 #. type: deftypevr
-#: doc/guix.texi:24683
+#: doc/guix.texi:28376
 msgid "If set to @code{#t} and @code{repository-directory} is enabled, if any repositories are found with a suffix of @code{.git}, this suffix will be removed for the URL and name."
 msgstr "Wenn es auf @code{#t} gesetzt ist und @code{repository-directory} aktiviert ist, wird, wenn Repositorys mit einem Suffix von @code{.git} gefunden werden, dieses Suffix von der URL und dem Namen weggelassen."
 
 #. type: deftypevr
-#: doc/guix.texi:24688
+#: doc/guix.texi:28381
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer renamelimit"
 msgstr "{@code{cgit-configuration}-Parameter} Ganze-Zahl renamelimit"
 
 #. type: deftypevr
-#: doc/guix.texi:24690
+#: doc/guix.texi:28383
 msgid "Maximum number of files to consider when detecting renames."
 msgstr "Maximale Anzahl der Dateien, die bei der Erkennung von Umbenennungen berücksichtigt werden."
 
 #. type: deftypevr
-#: doc/guix.texi:24695
+#: doc/guix.texi:28388
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string repository-sort"
 msgstr "{@code{cgit-configuration}-Parameter} Zeichenkette repository-sort"
 
 #. type: deftypevr
-#: doc/guix.texi:24697
+#: doc/guix.texi:28390
 msgid "The way in which repositories in each section are sorted."
 msgstr "Auf welche Art Repositorys in jedem Abschnitt sortiert werden."
 
 #. type: deftypevr
-#: doc/guix.texi:24702
+#: doc/guix.texi:28395
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} robots-list robots"
 msgstr "{@code{cgit-configuration}-Parameter} Robots-Liste robots"
 
 #. type: deftypevr
-#: doc/guix.texi:24704
+#: doc/guix.texi:28397
 msgid "Text used as content for the @code{robots} meta-tag."
 msgstr "Text, der als Inhalt des @code{robots}-Meta-Tags dienen soll."
 
 #. type: deftypevr
-#: doc/guix.texi:24706
+#: doc/guix.texi:28399
 msgid "Defaults to @samp{(\"noindex\" \"nofollow\")}."
 msgstr "Die Vorgabe ist @samp{(\"noindex\" \"nofollow\")}."
 
 #. type: deftypevr
-#: doc/guix.texi:24709
+#: doc/guix.texi:28402
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string root-desc"
 msgstr "{@code{cgit-configuration}-Parameter} Zeichenkette root-desc"
 
 #. type: deftypevr
-#: doc/guix.texi:24711
+#: doc/guix.texi:28404
 msgid "Text printed below the heading on the repository index page."
 msgstr "Welcher Text unterhalb der Überschrift auf Repository-Index-Seiten ausgegeben wird."
 
 #. type: deftypevr
-#: doc/guix.texi:24713
+#: doc/guix.texi:28406
 msgid "Defaults to @samp{\"a fast webinterface for the git dscm\"}."
 msgstr "Die Vorgabe ist @samp{\"a fast webinterface for the git dscm\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:24716
+#: doc/guix.texi:28409
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string root-readme"
 msgstr "{@code{cgit-configuration}-Parameter} Zeichenkette root-readme"
 
 #. type: deftypevr
-#: doc/guix.texi:24719
-msgid "The content of the file specified with this option will be included verbatim below the \"about\" link on the repository index page."
+#: doc/guix.texi:28412
+msgid "The content of the file specified with this option will be included verbatim below the ``about'' link on the repository index page."
 msgstr "Der Inhalt der mit dieser Option angegebenen Datei wird wortwörtlich unter dem „about“-Link auf der Repository-Index-Seite angezeigt."
 
 #. type: deftypevr
-#: doc/guix.texi:24724
+#: doc/guix.texi:28417
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string root-title"
 msgstr "{@code{cgit-configuration}-Parameter} Zeichenkette root-title"
 
 #. type: deftypevr
-#: doc/guix.texi:24726
+#: doc/guix.texi:28419
 msgid "Text printed as heading on the repository index page."
 msgstr "Welcher Text als Überschrift auf Repository-Index-Seiten ausgegeben werden soll."
 
 #. type: deftypevr
-#: doc/guix.texi:24731
+#: doc/guix.texi:28424
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean scan-hidden-path"
 msgstr "{@code{cgit-configuration}-Parameter} Boolescher-Ausdruck scan-hidden-path"
 
 #. type: deftypevr
-#: doc/guix.texi:24737
-msgid "If set to @samp{#t} and repository-directory is enabled, repository-directory will recurse into directories whose name starts with a period.  Otherwise, repository-directory will stay away from such directories, considered as \"hidden\".  Note that this does not apply to the \".git\" directory in non-bare repos."
-msgstr "Wenn es auf @samp{#t} gesetzt ist und repository-directory aktiviert ist, wird repository-directory in Verzeichnissen rekursiv schauen, deren Name mit einem Punkt beginnt. Ansonsten werden solche Verzeichnisse unter repository-directory als „versteckt“ betrachtet und ignoriert. Beachten Sie, dass dies keine Wirkung auf das „.git“-Verzeichnis in @emph{nicht} auf „bare“ gestellten Repositorys hat."
+#: doc/guix.texi:28430
+msgid "If set to @samp{#t} and repository-directory is enabled, repository-directory will recurse into directories whose name starts with a period.  Otherwise, repository-directory will stay away from such directories, considered as ``hidden''.  Note that this does not apply to the @file{.git} directory in non-bare repos."
+msgstr "Wenn es auf @samp{#t} gesetzt ist und repository-directory aktiviert ist, wird repository-directory in Verzeichnissen rekursiv schauen, deren Name mit einem Punkt beginnt. Ansonsten werden solche Verzeichnisse unter repository-directory als „versteckt“ betrachtet und ignoriert. Beachten Sie, dass dies keine Wirkung auf das @file{.git}-Verzeichnis in @emph{nicht} auf „bare“ gestellten Repositorys hat."
 
 #. type: deftypevr
-#: doc/guix.texi:24742
+#: doc/guix.texi:28435
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} list snapshots"
 msgstr "{@code{cgit-configuration}-Parameter} Liste snapshots"
 
 #. type: deftypevr
-#: doc/guix.texi:24745
+#: doc/guix.texi:28438
 msgid "Text which specifies the default set of snapshot formats that cgit generates links for."
 msgstr "Dieser Text gibt an, für welche Snapshot-Formate Cgit Links erzeugt."
 
 #. type: deftypevr
-#: doc/guix.texi:24750
+#: doc/guix.texi:28443
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} repository-directory repository-directory"
 msgstr "{@code{cgit-configuration}-Parameter} Repository-Verzeichnis repository-directory"
 
 #. type: deftypevr
-#: doc/guix.texi:24753
+#: doc/guix.texi:28446
 msgid "Name of the directory to scan for repositories (represents @code{scan-path})."
 msgstr "Der Name des Verzeichnisses, in dem nach Repositorys gesucht wird (wird als @code{scan-path} in die Einstellungen übernommen)."
 
 #. type: deftypevr
-#: doc/guix.texi:24755
+#: doc/guix.texi:28448
 msgid "Defaults to @samp{\"/srv/git\"}."
 msgstr "Die Vorgabe ist @samp{\"/srv/git\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:24758
+#: doc/guix.texi:28451
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string section"
 msgstr "{@code{cgit-configuration}-Parameter} Zeichenkette section"
 
 #. type: deftypevr
-#: doc/guix.texi:24761 doc/guix.texi:25077
+#: doc/guix.texi:28454 doc/guix.texi:28770
 msgid "The name of the current repository section - all repositories defined after this option will inherit the current section name."
 msgstr "Der Name des aktuellen Abschnitts („section“) für Repositorys — alle später definierten Repositorys werden den aktuellen Abschnittsnamen erben."
 
 #. type: deftypevr
-#: doc/guix.texi:24766
+#: doc/guix.texi:28459
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string section-sort"
 msgstr "{@code{cgit-configuration}-Parameter} Zeichenkette section-sort"
 
 #. type: deftypevr
-#: doc/guix.texi:24769
+#: doc/guix.texi:28462
 msgid "Flag which, when set to @samp{1}, will sort the sections on the repository listing by name."
 msgstr "Wenn diese Option auf @samp{#t} gesetzt wird, werden die Abschnitte in Repository-Auflistungen nach Namen sortiert."
 
 #. type: deftypevr
-#: doc/guix.texi:24774
+#: doc/guix.texi:28467
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer section-from-path"
 msgstr "{@code{cgit-configuration}-Parameter} Ganze-Zahl section-from-path"
 
 #. type: deftypevr
-#: doc/guix.texi:24777
+#: doc/guix.texi:28470
 msgid "A number which, if defined prior to repository-directory, specifies how many path elements from each repo path to use as a default section name."
-msgstr "Wenn diese Zahl vor „repository-directory“ definiert wurde, gibt sie an, wieviele Pfadelemente jedes Repository-Pfads für den Abschnittsnamen voreingestellt verwendet werden."
+msgstr "Wenn diese Zahl vor „repository-directory“ definiert wurde, gibt sie an, wie viele Pfadelemente jedes Repository-Pfads für den Abschnittsnamen voreingestellt verwendet werden."
 
 #. type: deftypevr
-#: doc/guix.texi:24782
+#: doc/guix.texi:28475
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean side-by-side-diffs?"
 msgstr "{@code{cgit-configuration}-Parameter} Boolescher-Ausdruck side-by-side-diffs?"
 
 #. type: deftypevr
-#: doc/guix.texi:24785
+#: doc/guix.texi:28478
 msgid "If set to @samp{#t} shows side-by-side diffs instead of unidiffs per default."
 msgstr "Wenn es auf @samp{#t} gesetzt ist, werden Diffs nach Voreinstellung in Nebeneinanderdarstellung („side by side“) statt als zusammengeführte „Unidiffs“ angezeigt."
 
 #. type: deftypevr
-#: doc/guix.texi:24790
+#: doc/guix.texi:28483
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} file-object source-filter"
 msgstr "{@code{cgit-configuration}-Parameter} Dateiobjekt source-filter"
 
 #. type: deftypevr
-#: doc/guix.texi:24793
+#: doc/guix.texi:28486
 msgid "Specifies a command which will be invoked to format plaintext blobs in the tree view."
 msgstr "Gibt einen Befehl an, der aufgerufen wird, um Klartext-Blobs in der Baumansicht („tree“) zu formatieren."
 
 #. type: deftypevr
-#: doc/guix.texi:24798
+#: doc/guix.texi:28491
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer summary-branches"
 msgstr "{@code{cgit-configuration}-Parameter} Ganze-Zahl summary-branches"
 
 #. type: deftypevr
-#: doc/guix.texi:24801
-msgid "Specifies the number of branches to display in the repository \"summary\" view."
+#: doc/guix.texi:28494
+msgid "Specifies the number of branches to display in the repository ``summary'' view."
 msgstr "Gibt die Anzahl der Branches an, die in der „summary“-Ansicht eines Repositorys zu sehen sein sollen."
 
 #. type: deftypevr
-#: doc/guix.texi:24806
+#: doc/guix.texi:28499
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer summary-log"
 msgstr "{@code{cgit-configuration}-Parameter} Ganze-Zahl summary-log"
 
 #. type: deftypevr
-#: doc/guix.texi:24809
-msgid "Specifies the number of log entries to display in the repository \"summary\" view."
+#: doc/guix.texi:28502
+msgid "Specifies the number of log entries to display in the repository ``summary'' view."
 msgstr "Gibt die Anzahl der Log-Einträge an, die in der „summary“-Ansicht eines Repositorys zu sehen sein sollen."
 
 #. type: deftypevr
-#: doc/guix.texi:24814
+#: doc/guix.texi:28507
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer summary-tags"
 msgstr "{@code{cgit-configuration}-Parameter} Ganze-Zahl summary-tags"
 
 #. type: deftypevr
-#: doc/guix.texi:24817
-msgid "Specifies the number of tags to display in the repository \"summary\" view."
+#: doc/guix.texi:28510
+msgid "Specifies the number of tags to display in the repository ``summary'' view."
 msgstr "Gibt die Anzahl in der „summary“-Ansicht eines Repositorys anzuzeigender Tags an."
 
 #. type: deftypevr
-#: doc/guix.texi:24822
+#: doc/guix.texi:28515
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string strict-export"
 msgstr "{@code{cgit-configuration}-Parameter} Zeichenkette strict-export"
 
 #. type: deftypevr
-#: doc/guix.texi:24825
+#: doc/guix.texi:28518
 msgid "Filename which, if specified, needs to be present within the repository for cgit to allow access to that repository."
 msgstr "Wenn dieser Dateiname angegeben wird, muss eine Datei diesen Namens in einem Repository enthalten sein, damit es angezeigt wird."
 
 #. type: deftypevr
-#: doc/guix.texi:24830
+#: doc/guix.texi:28523
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string virtual-root"
 msgstr "{@code{cgit-configuration}-Parameter} Zeichenkette virtual-root"
 
 #. type: deftypevr
-#: doc/guix.texi:24832
+#: doc/guix.texi:28525
 msgid "URL which, if specified, will be used as root for all cgit links."
 msgstr "Wird diese URL angegeben, wird sie als Wurzel für alle Cgit-Links verwendet."
 
 #. type: deftypevr
-#: doc/guix.texi:24834
+#: doc/guix.texi:28527
 msgid "Defaults to @samp{\"/\"}."
 msgstr "Die Vorgabe ist @samp{\"/\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:24837
+#: doc/guix.texi:28530
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} repository-cgit-configuration-list repositories"
 msgstr "{@code{cgit-configuration}-Parameter} „repository-cgit-configuration“-Liste repositories"
 
 #. type: deftypevr
-#: doc/guix.texi:24839
+#: doc/guix.texi:28532
 msgid "A list of @dfn{cgit-repo} records to use with config."
 msgstr "Eine Liste von @dfn{cgit-repo}-Verbundsobjekten, die innerhalb der Konfiguration benutzt werden sollen."
 
 #. type: deftypevr
-#: doc/guix.texi:24843
+#: doc/guix.texi:28536
 msgid "Available @code{repository-cgit-configuration} fields are:"
 msgstr "Verfügbare @code{repository-cgit-configuration}-Felder sind:"
 
 #. type: deftypevr
-#: doc/guix.texi:24844
+#: doc/guix.texi:28537
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-list snapshots"
 msgstr "{@code{repository-cgit-configuration}-Parameter} Repo-Liste snapshots"
 
 #. type: deftypevr
-#: doc/guix.texi:24847
+#: doc/guix.texi:28540
 msgid "A mask of snapshot formats for this repo that cgit generates links for, restricted by the global @code{snapshots} setting."
 msgstr "Eine Maske, die für dieses Repository auf die Snapshots gelegt wird, für die Cgit Links erzeugt. Dadurch kann die globale Einstellung  @code{snapshots} eingeschränkt werden."
 
 #. type: deftypevr
-#: doc/guix.texi:24852
+#: doc/guix.texi:28545
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-file-object source-filter"
 msgstr "{@code{repository-cgit-configuration}-Parameter} Repo-Dateiobjekt source-filter"
 
 #. type: deftypevr
-#: doc/guix.texi:24854
+#: doc/guix.texi:28547
 msgid "Override the default @code{source-filter}."
 msgstr "Die Voreinstellung für @code{source-filter} ersetzen."
 
 #. type: deftypevr
-#: doc/guix.texi:24859
+#: doc/guix.texi:28552
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-string url"
 msgstr "{@code{repository-cgit-configuration}-Parameter} Repo-Zeichenkette url"
 
 #. type: deftypevr
-#: doc/guix.texi:24861
+#: doc/guix.texi:28554
 msgid "The relative URL used to access the repository."
 msgstr "Die relative URL, mit der auf das Repository zugegriffen wird."
 
 #. type: deftypevr
-#: doc/guix.texi:24866
+#: doc/guix.texi:28559
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-file-object about-filter"
 msgstr "{@code{repository-cgit-configuration}-Parameter} Repo-Dateiobjekt about-filter"
 
 #. type: deftypevr
-#: doc/guix.texi:24868
+#: doc/guix.texi:28561
 msgid "Override the default @code{about-filter}."
 msgstr "Die Voreinstellung für @code{about-filter} ersetzen."
 
 #. type: deftypevr
-#: doc/guix.texi:24873
+#: doc/guix.texi:28566
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-string branch-sort"
 msgstr "{@code{repository-cgit-configuration}-Parameter} Repo-Zeichenkette branch-sort"
 
 #. type: deftypevr
-#: doc/guix.texi:24876
+#: doc/guix.texi:28569
 msgid "Flag which, when set to @samp{age}, enables date ordering in the branch ref list, and when set to @samp{name} enables ordering by branch name."
 msgstr "Wenn diese Option auf @samp{age} gesetzt wurde, wird die Liste der Branch-Referenzen nach Datum sortiert, und wenn sie auf @samp{name} gesetzt wurde, wird nach dem Branch-Namen sortiert."
 
 #. type: deftypevr
-#: doc/guix.texi:24881
+#: doc/guix.texi:28574
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-list clone-url"
 msgstr "{@code{repository-cgit-configuration}-Parameter} Repo-Liste clone-url"
 
 #. type: deftypevr
-#: doc/guix.texi:24883
+#: doc/guix.texi:28576
 msgid "A list of URLs which can be used to clone repo."
 msgstr "Eine Liste von URLs, von denen das Repository geklont werden kann."
 
 #. type: deftypevr
-#: doc/guix.texi:24888
+#: doc/guix.texi:28581
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-file-object commit-filter"
 msgstr "{@code{repository-cgit-configuration}-Parameter} Repo-Dateiobjekt commit-filter"
 
 #. type: deftypevr
-#: doc/guix.texi:24890
+#: doc/guix.texi:28583
 msgid "Override the default @code{commit-filter}."
 msgstr "Die Voreinstellung für @code{commit-filter} ersetzen."
 
 #. type: deftypevr
-#: doc/guix.texi:24895
+#: doc/guix.texi:28588
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-string commit-sort"
 msgstr "{@code{repository-cgit-configuration}-Parameter} Repo-Dateiobjekt commit-sort"
 
 #. type: deftypevr
-#: doc/guix.texi:24904
+#: doc/guix.texi:28597
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-string defbranch"
 msgstr "{@code{repository-cgit-configuration}-Parameter} Repo-Zeichenkette defbranch"
 
 #. type: deftypevr
-#: doc/guix.texi:24909
-msgid "The name of the default branch for this repository.  If no such branch exists in the repository, the first branch name (when sorted) is used as default instead.  By default branch pointed to by HEAD, or \"master\" if there is no suitable HEAD."
+#: doc/guix.texi:28602
+msgid "The name of the default branch for this repository.  If no such branch exists in the repository, the first branch name (when sorted) is used as default instead.  By default branch pointed to by HEAD, or ``master'' if there is no suitable HEAD."
 msgstr "Der Name des voreingestellten Branches dieses Repositorys. Wenn kein solcher Branch im Repository existiert, wird der erste Branchname in sortierter Reihenfolge voreingestellt. Nach Vorgabe wird der Branch voreingestellt, auf den HEAD zeigt, oder „master“, wenn es keinen passenden HEAD gibt."
 
 #. type: deftypevr
-#: doc/guix.texi:24914
+#: doc/guix.texi:28607
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-string desc"
 msgstr "{@code{repository-cgit-configuration}-Parameter} Repo-Zeichenkette desc"
 
 #. type: deftypevr
-#: doc/guix.texi:24916
+#: doc/guix.texi:28609
 msgid "The value to show as repository description."
 msgstr "Der Wert, der als Repository-Beschreibung angezeigt werden soll."
 
 #. type: deftypevr
-#: doc/guix.texi:24921
+#: doc/guix.texi:28614
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-string homepage"
 msgstr "{@code{repository-cgit-configuration}-Parameter} Repo-Zeichenkette homepage"
 
 #. type: deftypevr
-#: doc/guix.texi:24923
+#: doc/guix.texi:28616
 msgid "The value to show as repository homepage."
 msgstr "Der Wert, der als Repository-Homepage angezeigt werden soll."
 
 #. type: deftypevr
-#: doc/guix.texi:24928
+#: doc/guix.texi:28621
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-file-object email-filter"
 msgstr "{@code{repository-cgit-configuration}-Parameter} Repo-Dateiobjekt email-filter"
 
 #. type: deftypevr
-#: doc/guix.texi:24930
+#: doc/guix.texi:28623
 msgid "Override the default @code{email-filter}."
 msgstr "Die Voreinstellung für @code{email-filter} ersetzen."
 
 #. type: deftypevr
-#: doc/guix.texi:24935
+#: doc/guix.texi:28628
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} maybe-repo-boolean enable-commit-graph?"
 msgstr "{@code{repository-cgit-configuration}-Parameter} Vielleicht-Repo-Boolescher-Ausdruck enable-commit-graph?"
 
 #. type: deftypevr
-#: doc/guix.texi:24938
+#: doc/guix.texi:28631
 msgid "A flag which can be used to disable the global setting @code{enable-commit-graph?}."
 msgstr "Eine Option, mit der die globale Einstellung für @code{enable-commit-graph?} deaktiviert werden kann."
 
 #. type: deftypevr
-#: doc/guix.texi:24943
+#: doc/guix.texi:28636
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} maybe-repo-boolean enable-log-filecount?"
 msgstr "{@code{repository-cgit-configuration}-Parameter} Vielleicht-Repo-Boolescher-Ausdruck enable-log-filecount?"
 
 #. type: deftypevr
-#: doc/guix.texi:24946
+#: doc/guix.texi:28639
 msgid "A flag which can be used to disable the global setting @code{enable-log-filecount?}."
 msgstr "Eine Option, mit der die globale Einstellung für @code{enable-log-filecount?} deaktiviert werden kann."
 
 #. type: deftypevr
-#: doc/guix.texi:24951
+#: doc/guix.texi:28644
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} maybe-repo-boolean enable-log-linecount?"
 msgstr "{@code{repository-cgit-configuration}-Parameter} Vielleicht-Repo-Boolescher-Ausdruck enable-log-linecount?"
 
 #. type: deftypevr
-#: doc/guix.texi:24954
+#: doc/guix.texi:28647
 msgid "A flag which can be used to disable the global setting @code{enable-log-linecount?}."
 msgstr "Eine Option, mit der die globale Einstellung für @code{enable-log-linecount?} deaktiviert werden kann."
 
 #. type: deftypevr
-#: doc/guix.texi:24959
+#: doc/guix.texi:28652
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} maybe-repo-boolean enable-remote-branches?"
 msgstr "{@code{repository-cgit-configuration}-Parameter} Vielleicht-Repo-Boolescher-Ausdruck enable-remote-branches?"
 
 #. type: deftypevr
-#: doc/guix.texi:24967
+#: doc/guix.texi:28660
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} maybe-repo-boolean enable-subject-links?"
 msgstr "{@code{repository-cgit-configuration}-Parameter} Vielleicht-Repo-Boolescher-Ausdruck enable-subject-links?"
 
 #. type: deftypevr
-#: doc/guix.texi:24970
+#: doc/guix.texi:28663
 msgid "A flag which can be used to override the global setting @code{enable-subject-links?}."
 msgstr "Eine Option, mit der die globale Einstellung für @code{enable-subject-links?} deaktiviert werden kann."
 
 #. type: deftypevr
-#: doc/guix.texi:24975
+#: doc/guix.texi:28668
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} maybe-repo-boolean enable-html-serving?"
 msgstr "{@code{repository-cgit-configuration}-Parameter} Vielleicht-Repo-Boolescher-Ausdruck enable-html-serving?"
 
 #. type: deftypevr
-#: doc/guix.texi:24978
+#: doc/guix.texi:28671
 msgid "A flag which can be used to override the global setting @code{enable-html-serving?}."
 msgstr "Eine Option, mit der die globale Einstellung für @code{enable-html-serving?} deaktiviert werden kann."
 
 #. type: deftypevr
-#: doc/guix.texi:24983
+#: doc/guix.texi:28676
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-boolean hide?"
 msgstr "{@code{repository-cgit-configuration}-Parameter} Repo-Boolescher-Ausdruck hide?"
 
 #. type: deftypevr
-#: doc/guix.texi:24986
+#: doc/guix.texi:28679
 msgid "Flag which, when set to @code{#t}, hides the repository from the repository index."
 msgstr "Wenn diese Option auf @code{#t} gesetzt ist, wird das Repository im Repository-Index verborgen."
 
 #. type: deftypevr
-#: doc/guix.texi:24991
+#: doc/guix.texi:28684
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-boolean ignore?"
 msgstr "{@code{repository-cgit-configuration}-Parameter} Repo-Boolescher-Ausdruck ignore?"
 
 #. type: deftypevr
-#: doc/guix.texi:24993
+#: doc/guix.texi:28686
 msgid "Flag which, when set to @samp{#t}, ignores the repository."
 msgstr "Wenn diese Option auf @code{#t} gesetzt ist, wird das Repository ignoriert."
 
 #. type: deftypevr
-#: doc/guix.texi:24998
+#: doc/guix.texi:28691
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-file-object logo"
 msgstr "{@code{repository-cgit-configuration}-Parameter} Repo-Dateiobjekt logo"
 
 #. type: deftypevr
-#: doc/guix.texi:25001
+#: doc/guix.texi:28694
 msgid "URL which specifies the source of an image which will be used as a logo on this repo’s pages."
 msgstr "URL, unter der ein Bild zu finden ist, das auf allen Seiten dieses Repositorys als Logo zu sehen sein wird."
 
 #. type: deftypevr
-#: doc/guix.texi:25006
+#: doc/guix.texi:28699
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-string logo-link"
 msgstr "{@code{repository-cgit-configuration}-Parameter} Repo-Zeichenkette logo-link"
 
 #. type: deftypevr
-#: doc/guix.texi:25013
+#: doc/guix.texi:28706
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-file-object owner-filter"
 msgstr "{@code{repository-cgit-configuration}-Parameter} Repo-Dateiobjekt owner-filter"
 
 #. type: deftypevr
-#: doc/guix.texi:25015
+#: doc/guix.texi:28708
 msgid "Override the default @code{owner-filter}."
 msgstr "Die Voreinstellung für @code{owner-filter} ersetzen."
 
 #. type: deftypevr
-#: doc/guix.texi:25020
+#: doc/guix.texi:28713
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-string module-link"
 msgstr "{@code{repository-cgit-configuration}-Parameter} Repo-Zeichenkette module-link"
 
 #. type: deftypevr
-#: doc/guix.texi:25024
+#: doc/guix.texi:28717
 msgid "Text which will be used as the formatstring for a hyperlink when a submodule is printed in a directory listing.  The arguments for the formatstring are the path and SHA1 of the submodule commit."
 msgstr "Text, der als Formatzeichenkette für einen Hyperlink benutzt wird, wenn in einer Verzeichnisauflistung ein Submodul ausgegeben wird. Die Argumente für diese Formatzeichenkette sind Pfad und SHA1 des Submodul-Commits."
 
 #. type: deftypevr
-#: doc/guix.texi:25029
+#: doc/guix.texi:28722
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} module-link-path module-link-path"
 msgstr "{@code{repository-cgit-configuration}-Parameter} module-link-Pfad module-link-path"
 
 #. type: deftypevr
-#: doc/guix.texi:25033
+#: doc/guix.texi:28726
 msgid "Text which will be used as the formatstring for a hyperlink when a submodule with the specified subdirectory path is printed in a directory listing."
 msgstr "Text, der als Formatzeichenkette für einen Hyperlink benutzt wird, wenn in einer Verzeichnisauflistung ein Submodul mit dem angegebenen Unterverzeichnispfad ausgegeben wird."
 
 #. type: deftypevr
-#: doc/guix.texi:25038
+#: doc/guix.texi:28731
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-string max-stats"
 msgstr "{@code{repository-cgit-configuration}-Parameter} Repo-Zeichenkette max-stats"
 
 #. type: deftypevr
-#: doc/guix.texi:25040
+#: doc/guix.texi:28733
 msgid "Override the default maximum statistics period."
 msgstr "Die Voreinstellung für den maximalen Zeitraum für Statistiken ersetzen."
 
 #. type: deftypevr
-#: doc/guix.texi:25045
+#: doc/guix.texi:28738
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-string name"
 msgstr "{@code{repository-cgit-configuration}-Parameter} Repo-Zeichenkette name"
 
 #. type: deftypevr
-#: doc/guix.texi:25047
+#: doc/guix.texi:28740
 msgid "The value to show as repository name."
 msgstr "Welcher Wert als Repository-Name angezeigt werden soll."
 
 #. type: deftypevr
-#: doc/guix.texi:25052
+#: doc/guix.texi:28745
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-string owner"
 msgstr "{@code{repository-cgit-configuration}-Parameter} Repo-Zeichenkette owner"
 
 #. type: deftypevr
-#: doc/guix.texi:25054
+#: doc/guix.texi:28747
 msgid "A value used to identify the owner of the repository."
 msgstr "Ein Wert, um den Besitzer des Repositorys zu identifizieren."
 
 #. type: deftypevr
-#: doc/guix.texi:25059
+#: doc/guix.texi:28752
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-string path"
 msgstr "{@code{repository-cgit-configuration}-Parameter} Repo-Zeichenkette path"
 
 #. type: deftypevr
-#: doc/guix.texi:25061
+#: doc/guix.texi:28754
 msgid "An absolute path to the repository directory."
 msgstr "Ein absoluter Pfad zum Repository-Verzeichnis."
 
 #. type: deftypevr
-#: doc/guix.texi:25066
+#: doc/guix.texi:28759
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-string readme"
 msgstr "{@code{repository-cgit-configuration}-Parameter} Repo-Zeichenkette readme"
 
 #. type: deftypevr
-#: doc/guix.texi:25069
-msgid "A path (relative to repo) which specifies a file to include verbatim as the \"About\" page for this repo."
+#: doc/guix.texi:28762
+msgid "A path (relative to repo) which specifies a file to include verbatim as the ``About'' page for this repo."
 msgstr "Ein Pfad (relativ zum Repository), der eine Datei angibt, deren Inhalt wortwörtlich auf der „About“-Seite dieses Repositorys eingefügt werden soll."
 
 #. type: deftypevr
-#: doc/guix.texi:25074
+#: doc/guix.texi:28767
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-string section"
 msgstr "{@code{repository-cgit-configuration}-Parameter} Repo-Zeichenkette section"
 
 #. type: deftypevr
-#: doc/guix.texi:25082
+#: doc/guix.texi:28775
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-list extra-options"
 msgstr "{@code{repository-cgit-configuration}-Parameter} Repo-Liste extra-options"
 
 #. type: deftypevr
-#: doc/guix.texi:25084 doc/guix.texi:25093
+#: doc/guix.texi:28777 doc/guix.texi:28786
 msgid "Extra options will be appended to cgitrc file."
 msgstr "Zusätzliche Optionen werden an die cgitrc-Datei angehängt."
 
 #. type: deftypevr
-#: doc/guix.texi:25091
+#: doc/guix.texi:28784
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} list extra-options"
 msgstr "{@code{cgit-configuration}-Parameter} Liste extra-options"
 
 #. type: Plain text
-#: doc/guix.texi:25105
+#: doc/guix.texi:28798
 msgid "However, it could be that you just want to get a @code{cgitrc} up and running.  In that case, you can pass an @code{opaque-cgit-configuration} as a record to @code{cgit-service-type}.  As its name indicates, an opaque configuration does not have easy reflective capabilities."
 msgstr "Aber es könnte auch sein, dass Sie schon eine @code{cgitrc} haben und zum Laufen bringen wollen. In diesem Fall können Sie eine @code{opaque-cgit-configuration} als Verbundsobjekt an @code{cgit-service-type} übergeben. Wie der Name schon sagt, bietet eine opake Konfiguration keinerlei Unterstützung für Reflexion."
 
 #. type: Plain text
-#: doc/guix.texi:25107
+#: doc/guix.texi:28800
 msgid "Available @code{opaque-cgit-configuration} fields are:"
 msgstr "Verfügbare @code{opaque-cgit-configuration}-Felder sind:"
 
 #. type: deftypevr
-#: doc/guix.texi:25108
+#: doc/guix.texi:28801
 #, no-wrap
 msgid "{@code{opaque-cgit-configuration} parameter} package cgit"
 msgstr "{@code{opaque-cgit-configuration}-Parameter} „package“ cgit"
 
 #. type: deftypevr
-#: doc/guix.texi:25110
+#: doc/guix.texi:28803
 msgid "The cgit package."
 msgstr "Das cgit-Paket."
 
 #. type: deftypevr
-#: doc/guix.texi:25112
+#: doc/guix.texi:28805
 #, no-wrap
 msgid "{@code{opaque-cgit-configuration} parameter} string string"
 msgstr "{@code{opaque-cgit-configuration}-Parameter} Zeichenkette string"
 
 #. type: deftypevr
-#: doc/guix.texi:25114
+#: doc/guix.texi:28807
 msgid "The contents of the @code{cgitrc}, as a string."
 msgstr "Der Inhalt für @code{cgitrc} als eine Zeichenkette."
 
 #. type: Plain text
-#: doc/guix.texi:25118
+#: doc/guix.texi:28811
 msgid "For example, if your @code{cgitrc} is just the empty string, you could instantiate a cgit service like this:"
 msgstr "Wenn zum Beispiel Ihre @code{cgitrc} nur aus der leeren Zeichenkette bestehen soll, könnten Sie einen Cgit-Dienst auf diese Weise instanziieren:"
 
 #. type: lisp
-#: doc/guix.texi:25123
+#: doc/guix.texi:28816
 #, no-wrap
 msgid ""
 "(service cgit-service-type\n"
@@ -46792,40 +53290,40 @@ msgstr ""
 "          (cgitrc \"\")))\n"
 
 #. type: subsubheading
-#: doc/guix.texi:25125
+#: doc/guix.texi:28818
 #, no-wrap
 msgid "Gitolite Service"
 msgstr "Gitolite-Dienst"
 
 #. type: cindex
-#: doc/guix.texi:25127
+#: doc/guix.texi:28820
 #, no-wrap
 msgid "Gitolite service"
 msgstr "Gitolite-Dienst"
 
 #. type: cindex
-#: doc/guix.texi:25128
+#: doc/guix.texi:28821
 #, no-wrap
 msgid "Git, hosting"
 msgstr "Git, Server anbieten („hosten“)"
 
 #. type: Plain text
-#: doc/guix.texi:25131
+#: doc/guix.texi:28824
 msgid "@uref{https://gitolite.com/gitolite/, Gitolite} is a tool for hosting Git repositories on a central server."
 msgstr "@uref{https://gitolite.com/gitolite/, Gitolite} ist ein Werkzeug, um Git-Repositorys anderen auf einem zentralen Server anzubieten."
 
 #. type: Plain text
-#: doc/guix.texi:25134
+#: doc/guix.texi:28827
 msgid "Gitolite can handle multiple repositories and users, and supports flexible configuration of the permissions for the users on the repositories."
 msgstr "Gitolite kann mehrere Nutzer mit mehreren Repositorys bedienen und unterstützt flexible Konfigurationsmöglichkeiten der Berechtigungen der Repository-Nutzer."
 
 #. type: Plain text
-#: doc/guix.texi:25137
+#: doc/guix.texi:28830
 msgid "The following example will configure Gitolite using the default @code{git} user, and the provided SSH public key."
 msgstr "Das folgende Beispiel richtet Gitolite für den voreingestellten @code{git}-Benutzer und den angegebenen öffentlichen SSH-Schlüssel ein."
 
 #. type: lisp
-#: doc/guix.texi:25144
+#: doc/guix.texi:28837
 #, no-wrap
 msgid ""
 "(service gitolite-service-type\n"
@@ -46838,290 +53336,290 @@ msgstr ""
 "         (gitolite-configuration\n"
 "           (admin-pubkey (plain-file\n"
 "                           \"ihrname.pub\"\n"
-"                           \"ssh-rsa AAAA… guix@@example.com\"))))\n"
+"                           \"ssh-rsa AAAA…@: guix@@example.com\"))))\n"
 
 #. type: Plain text
-#: doc/guix.texi:25149
+#: doc/guix.texi:28842
 msgid "Gitolite is configured through a special admin repository which you can clone, for example, if you setup Gitolite on @code{example.com}, you would run the following command to clone the admin repository."
 msgstr "Sie konfigurieren Gitolite, indem Sie ein besonderes Admin-Repository anpassen. Sie können es zum Beispiel klonen, indem Sie, wenn Sie Gitolite auf @code{example.com} eingerichtet haben, den folgenden Befehl zum Klonen des Admin-Repositorys ausführen:"
 
 #. type: example
-#: doc/guix.texi:25152
+#: doc/guix.texi:28845
 #, no-wrap
 msgid "git clone git@@example.com:gitolite-admin\n"
 msgstr "git clone git@@example.com:gitolite-admin\n"
 
 #. type: Plain text
-#: doc/guix.texi:25158
+#: doc/guix.texi:28851
 msgid "When the Gitolite service is activated, the provided @code{admin-pubkey} will be inserted in to the @file{keydir} directory in the gitolite-admin repository.  If this results in a change in the repository, it will be committed using the message ``gitolite setup by GNU Guix''."
 msgstr "Wenn der Gitolite-Dienst aktiviert wird, wird der mitgegebene @code{admin-pubkey} ins @file{keydir}-Verzeichnis vom „gitolite-admin“-Repository eingefügt. Wenn sich dadurch das Repository ändert, wird die Änderung mit der Commit-Nachricht „gitolite setup by GNU Guix“ commitet."
 
 #. type: deftp
-#: doc/guix.texi:25159
+#: doc/guix.texi:28852
 #, no-wrap
 msgid "{Data Type} gitolite-configuration"
 msgstr "{Datentyp} gitolite-configuration"
 
 #. type: deftp
-#: doc/guix.texi:25161
+#: doc/guix.texi:28854
 msgid "Data type representing the configuration for @code{gitolite-service-type}."
 msgstr "Repräsentiert die Konfiguration vom @code{gitolite-service-type}."
 
 #. type: item
-#: doc/guix.texi:25163
+#: doc/guix.texi:28856
 #, no-wrap
 msgid "@code{package} (default: @var{gitolite})"
 msgstr "@code{package} (Vorgabe: @var{gitolite})"
 
 #. type: table
-#: doc/guix.texi:25165
+#: doc/guix.texi:28858
 msgid "Gitolite package to use."
 msgstr "Welches Gitolite-Paket benutzt werden soll."
 
 #. type: item
-#: doc/guix.texi:25166
+#: doc/guix.texi:28859
 #, no-wrap
 msgid "@code{user} (default: @var{git})"
 msgstr "@code{user} (Vorgabe: @var{git})"
 
 #. type: table
-#: doc/guix.texi:25169
+#: doc/guix.texi:28862
 msgid "User to use for Gitolite.  This will be user that you use when accessing Gitolite over SSH."
 msgstr "Welches Benutzerkonto für Gitolite benutzt werden soll. Mit diesem Benutzer werden Sie über SSH auf Gitolite zugreifen."
 
 #. type: item
-#: doc/guix.texi:25170
+#: doc/guix.texi:28863
 #, no-wrap
 msgid "@code{group} (default: @var{git})"
 msgstr "@code{group} (Vorgabe: @var{git})"
 
 #. type: table
-#: doc/guix.texi:25172
+#: doc/guix.texi:28865
 msgid "Group to use for Gitolite."
 msgstr "Gruppe für Gitolite."
 
 #. type: item
-#: doc/guix.texi:25173
+#: doc/guix.texi:28866
 #, no-wrap
 msgid "@code{home-directory} (default: @var{\"/var/lib/gitolite\"})"
 msgstr "@code{home-directory} (Vorgabe: @var{\"/var/lib/gitolite\"})"
 
 #. type: table
-#: doc/guix.texi:25175
+#: doc/guix.texi:28868
 msgid "Directory in which to store the Gitolite configuration and repositories."
 msgstr "Das Verzeichnis, in dem die Gitolite-Konfiguration und Repositorys gespeichert werden sollen."
 
 #. type: item
-#: doc/guix.texi:25176
+#: doc/guix.texi:28869
 #, no-wrap
 msgid "@code{rc-file} (default: @var{(gitolite-rc-file)})"
 msgstr "@code{rc-file} (Vorgabe: @var{(gitolite-rc-file)})"
 
 #. type: table
-#: doc/guix.texi:25179
+#: doc/guix.texi:28872
 msgid "A ``file-like'' object (@pxref{G-Expressions, file-like objects}), representing the configuration for Gitolite."
 msgstr "Ein dateiartiges Objekt (siehe @ref{G-Expressions, dateiartige Objekte}), das die Konfiguration für Gitolite repräsentiert."
 
 #. type: item
-#: doc/guix.texi:25180
+#: doc/guix.texi:28873
 #, no-wrap
 msgid "@code{admin-pubkey} (default: @var{#f})"
 msgstr "@code{admin-pubkey} (Vorgabe: @var{#f})"
 
 #. type: table
-#: doc/guix.texi:25184
+#: doc/guix.texi:28877
 msgid "A ``file-like'' object (@pxref{G-Expressions, file-like objects}) used to setup Gitolite.  This will be inserted in to the @file{keydir} directory within the gitolite-admin repository."
 msgstr "Ein dateiartiges Objekt (siehe @ref{G-Expressions, dateiartige Objekte}), mit dem Gitolite eingerichtet werden kann. Er wird in das @file{keydir}-Verzeichnis im „gitolite-admin“-Repository eingefügt."
 
 #. type: table
-#: doc/guix.texi:25186
+#: doc/guix.texi:28879
 msgid "To specify the SSH key as a string, use the @code{plain-file} function."
 msgstr "Um einen SSH-Schlüssel als Zeichenkette anzugeben, benutzen Sie die @code{plain-file}-Funktion."
 
 #. type: lisp
-#: doc/guix.texi:25189
+#: doc/guix.texi:28882
 #, no-wrap
 msgid "(plain-file \"yourname.pub\" \"ssh-rsa AAAA... guix@@example.com\")\n"
-msgstr "(plain-file \"ihrname.pub\" \"ssh-rsa AAAA… guix@@example.com\")\n"
+msgstr "(plain-file \"ihrname.pub\" \"ssh-rsa AAAA…@: guix@@example.com\")\n"
 
 #. type: deftp
-#: doc/guix.texi:25194
+#: doc/guix.texi:28887
 #, no-wrap
 msgid "{Data Type} gitolite-rc-file"
 msgstr "{Datentyp} gitolite-rc-file"
 
 #. type: deftp
-#: doc/guix.texi:25196
+#: doc/guix.texi:28889
 msgid "Data type representing the Gitolite RC file."
 msgstr "Repräsentiert die Gitolie-RC-Datei."
 
 #. type: item
-#: doc/guix.texi:25198
+#: doc/guix.texi:28891
 #, no-wrap
 msgid "@code{umask} (default: @code{#o0077})"
 msgstr "@code{umask} (Vorgabe: @code{#o0077})"
 
 #. type: table
-#: doc/guix.texi:25201
+#: doc/guix.texi:28894
 msgid "This controls the permissions Gitolite sets on the repositories and their contents."
 msgstr "Dies legt fest, welche Berechtigungen Gitolite an die Repositorys und deren Inhalt vergibt."
 
 #. type: table
-#: doc/guix.texi:25205
+#: doc/guix.texi:28898
 msgid "A value like @code{#o0027} will give read access to the group used by Gitolite (by default: @code{git}). This is necessary when using Gitolite with software like cgit or gitweb."
 msgstr "Für einen Wert wie @code{#o0027} wird die Gruppe, die Gitolite benutzt (nach Vorgabe: @code{git}) Lesezugriff erhalten. Das ist nötig, wenn Sie Gitolite mit Software wie Cgit oder Gitweb kombinieren."
 
 #. type: item
-#: doc/guix.texi:25206
+#: doc/guix.texi:28899
 #, no-wrap
 msgid "@code{git-config-keys} (default: @code{\"\"})"
 msgstr "@code{git-config-keys} (Vorgabe: @code{\"\"})"
 
 #. type: table
-#: doc/guix.texi:25209
-msgid "Gitolite allows you to set git config values using the \"config\" keyword. This setting allows control over the config keys to accept."
-msgstr "Mit Gitolite können Sie Werte für Git-Konfigurationen über das „config“-Schlüsselwort festlegen. Mit dieser Einstellung können Sie steuern, welche Konfigurationsschlüssel akzeptiert werden."
+#: doc/guix.texi:28902
+msgid "Gitolite allows you to set git config values using the @samp{config} keyword. This setting allows control over the config keys to accept."
+msgstr "Mit Gitolite können Sie Werte für Git-Konfigurationen über das @samp{config}-Schlüsselwort festlegen. Mit dieser Einstellung können Sie steuern, welche Konfigurationsschlüssel akzeptiert werden."
 
 #. type: item
-#: doc/guix.texi:25210
+#: doc/guix.texi:28903
 #, no-wrap
 msgid "@code{roles} (default: @code{'((\"READERS\" . 1) (\"WRITERS\" . ))})"
 msgstr "@code{roles} (Vorgabe: @code{'((\"READERS\" . 1) (\"WRITERS\" . ))})"
 
 #. type: table
-#: doc/guix.texi:25212
+#: doc/guix.texi:28905
 msgid "Set the role names allowed to be used by users running the perms command."
 msgstr "Legt fest, welche Rollennamen für Nutzer möglich sind, wenn Sie den Befehl perms ausführen."
 
 #. type: item
-#: doc/guix.texi:25213
+#: doc/guix.texi:28906
 #, no-wrap
 msgid "@code{enable} (default: @code{'(\"help\" \"desc\" \"info\" \"perms\" \"writable\" \"ssh-authkeys\" \"git-config\" \"daemon\" \"gitweb\")})"
 msgstr "@code{enable} (Vorgabe: @code{'(\"help\" \"desc\" \"info\" \"perms\" \"writable\" \"ssh-authkeys\" \"git-config\" \"daemon\" \"gitweb\")})"
 
 #. type: table
-#: doc/guix.texi:25215
+#: doc/guix.texi:28908
 msgid "This setting controls the commands and features to enable within Gitolite."
 msgstr "Diese Einstellung legt die innerhalb von Gitolite zur Verfügung gestellten Befehle fest."
 
 #. type: subsubheading
-#: doc/guix.texi:25223
+#: doc/guix.texi:28916
 #, no-wrap
 msgid "The Battle for Wesnoth Service"
 msgstr "„The Battle for Wesnoth“-Dienst"
 
 #. type: cindex
-#: doc/guix.texi:25224
+#: doc/guix.texi:28917
 #, no-wrap
 msgid "wesnothd"
 msgstr "wesnothd"
 
 #. type: Plain text
-#: doc/guix.texi:25228
+#: doc/guix.texi:28921
 msgid "@uref{https://wesnoth.org, The Battle for Wesnoth} is a fantasy, turn based tactical strategy game, with several single player campaigns, and multiplayer games (both networked and local)."
 msgstr "@uref{https://wesnoth.org, The Battle for Wesnoth} ist ein in einer Fantasy-Welt angesiedeltes, rundenbasiertes, taktisches Strategiespiel. Es verfügt über mehrere Einzelspielerkampagnen und Mehrspielerspiele (über das Netzwerk und lokal)."
 
 #. type: defvar
-#: doc/guix.texi:25229
+#: doc/guix.texi:28922
 #, no-wrap
 msgid "{Scheme Variable} wesnothd-service-type"
 msgstr "{Scheme-Variable} wesnothd-service-type"
 
 #. type: defvar
-#: doc/guix.texi:25233
+#: doc/guix.texi:28926
 msgid "Service type for the wesnothd service.  Its value must be a @code{wesnothd-configuration} object.  To run wesnothd in the default configuration, instantiate it as:"
 msgstr "Diensttyp für den wesnothd-Dienst. Als Wert muss ein @code{wesnothd-configuration}-Objekt benutzt werden. Um wesnothd mit seiner Vorgabekonfiguration auszuführen, instanziieren Sie es als:"
 
 #. type: lisp
-#: doc/guix.texi:25236
+#: doc/guix.texi:28929
 #, no-wrap
 msgid "(service wesnothd-service-type)\n"
 msgstr "(service wesnothd-service-type)\n"
 
 #. type: deftp
-#: doc/guix.texi:25239
+#: doc/guix.texi:28932
 #, no-wrap
 msgid "{Data Type} wesnothd-configuration"
 msgstr "{Datentyp} wesnothd-configuration"
 
 #. type: deftp
-#: doc/guix.texi:25241
+#: doc/guix.texi:28934
 msgid "Data type representing the configuration of @command{wesnothd}."
 msgstr "Datentyp, der die Konfiguration von @command{wesnothd} repräsentiert."
 
 #. type: item
-#: doc/guix.texi:25243
+#: doc/guix.texi:28936
 #, no-wrap
 msgid "@code{package} (default: @code{wesnoth-server})"
 msgstr "@code{package} (Vorgabe: @code{wesnoth-server})"
 
 #. type: table
-#: doc/guix.texi:25245
+#: doc/guix.texi:28938
 msgid "The wesnoth server package to use."
 msgstr "Das Paket, das für den Wesnoth-Server benutzt werden soll."
 
 #. type: item
-#: doc/guix.texi:25246
+#: doc/guix.texi:28939
 #, no-wrap
 msgid "@code{port} (default: @code{15000})"
 msgstr "@code{port} (Vorgabe: @code{15000})"
 
 #. type: table
-#: doc/guix.texi:25248
+#: doc/guix.texi:28941
 msgid "The port to bind the server to."
 msgstr "Der Port, an den der Server gebunden wird."
 
 #. type: cindex
-#: doc/guix.texi:25254
+#: doc/guix.texi:28947
 #, no-wrap
 msgid "pam-mount"
 msgstr "pam-mount"
 
 #. type: Plain text
-#: doc/guix.texi:25259
+#: doc/guix.texi:28952
 msgid "The @code{(gnu services pam-mount)} module provides a service allowing users to mount volumes when they log in.  It should be able to mount any volume format supported by the system."
 msgstr "Das Modul @code{(gnu services pam-mount)} stellt einen Dienst zur Verfügung, mit dem Benutzer Datenträger beim Anmelden einbinden können. Damit sollte es möglich sein, jedes vom System unterstützte Datenträgerformat einzubinden."
 
 #. type: defvar
-#: doc/guix.texi:25260
+#: doc/guix.texi:28953
 #, no-wrap
 msgid "{Scheme Variable} pam-mount-service-type"
 msgstr "{Scheme-Variable} pam-mount-service-type"
 
 #. type: defvar
-#: doc/guix.texi:25262
+#: doc/guix.texi:28955
 msgid "Service type for PAM Mount support."
 msgstr "Diensttyp für PAM-Einbindeunterstützung."
 
 #. type: deftp
-#: doc/guix.texi:25264
+#: doc/guix.texi:28957
 #, no-wrap
 msgid "{Data Type} pam-mount-configuration"
 msgstr "{Datentyp} pam-mount-configuration"
 
 #. type: deftp
-#: doc/guix.texi:25266
+#: doc/guix.texi:28959
 msgid "Data type representing the configuration of PAM Mount."
 msgstr "Datentyp, der die Konfiguration für PAM-Einbindungen („PAM Mount“) repräsentiert."
 
 #. type: code{#1}
-#: doc/guix.texi:25270
+#: doc/guix.texi:28963
 #, no-wrap
 msgid "rules"
 msgstr "rules"
 
 #. type: table
-#: doc/guix.texi:25273
+#: doc/guix.texi:28966
 msgid "The configuration rules that will be used to generate @file{/etc/security/pam_mount.conf.xml}."
 msgstr "Die Konfigurationsregeln, um @file{/etc/security/pam_mount.conf.xml} zu erzeugen."
 
 #. type: table
-#: doc/guix.texi:25277
-msgid "The configuration rules are SXML elements (@pxref{SXML,,, guile, GNU Guile Reference Manual}), and the the default ones don't mount anything for anyone at login:"
-msgstr "Die Konfigurationsregeln sind SXML-Elemente (siehe @ref{SXML,,, guile, GNU Guile Reference Manual}) und nach Vorgabe wird für niemanden etwas beim Anmelden eingebunden:"
+#: doc/guix.texi:28970
+msgid "The configuration rules are SXML elements (@pxref{SXML,,, guile, GNU Guile Reference Manual}), and the default ones don't mount anything for anyone at login:"
+msgstr "Die Konfigurationsregeln sind SXML-Elemente (siehe @ref{SXML,,, guile, Referenzhandbuch zu GNU Guile}) und nach Vorgabe wird für niemanden etwas beim Anmelden eingebunden:"
 
 #. type: lisp
-#: doc/guix.texi:25292
+#: doc/guix.texi:28985
 #, no-wrap
 msgid ""
 "`((debug (@@ (enable \"0\")))\n"
@@ -47153,12 +53651,12 @@ msgstr ""
 "                   (remove \"true\"))))\n"
 
 #. type: table
-#: doc/guix.texi:25298
-msgid "Some @code{volume} elements must be added to automatically mount volumes at login.  Here's an example allowing the user @code{alice} to mount her encrypted @code{HOME} directory and allowing the user @code{bob} to mount the partition where he stores his data:"
-msgstr "Es müssen @code{volume}-Elemente eingefügt werden, um Datenträger automatisch bei der Anmeldung einzubinden. Hier ist ein Beispiel, mit dem die Benutzerin @code{alice} ihr verschlüsseltes @code{HOME}-Verzeichnis einbinden kann, und der Benutzer @code{bob} die Partition einbinden kann, wo er seine Daten abspeichert."
+#: doc/guix.texi:28991
+msgid "Some @code{volume} elements must be added to automatically mount volumes at login.  Here's an example allowing the user @code{alice} to mount her encrypted @env{HOME} directory and allowing the user @code{bob} to mount the partition where he stores his data:"
+msgstr "Es müssen @code{volume}-Elemente eingefügt werden, um Datenträger automatisch bei der Anmeldung einzubinden. Hier ist ein Beispiel, mit dem die Benutzerin @code{alice} ihr verschlüsseltes @env{HOME}-Verzeichnis einbinden kann, und der Benutzer @code{bob} die Partition einbinden kann, wo er seine Daten abspeichert."
 
 #. type: lisp
-#: doc/guix.texi:25323
+#: doc/guix.texi:29016
 #, no-wrap
 msgid ""
 "(define pam-mount-rules\n"
@@ -47212,7 +53710,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:25327
+#: doc/guix.texi:29020
 #, no-wrap
 msgid ""
 "(service pam-mount-service-type\n"
@@ -47224,340 +53722,664 @@ msgstr ""
 "           (rules pam-mount-rules)))\n"
 
 #. type: table
-#: doc/guix.texi:25331
+#: doc/guix.texi:29024
 msgid "The complete list of possible options can be found in the man page for @uref{http://pam-mount.sourceforge.net/pam_mount.conf.5.html, pam_mount.conf}."
 msgstr "Die vollständige Liste möglicher Optionen finden Sie in der Handbuchseite („man page“) für @uref{http://pam-mount.sourceforge.net/pam_mount.conf.5.html, pam_mount.conf}."
 
 #. type: subsubheading
-#: doc/guix.texi:25338
+#: doc/guix.texi:29031
+#, no-wrap
+msgid "Guix Build Coordinator"
+msgstr "Guix-Erstellungskoordinator"
+
+#. type: Plain text
+#: doc/guix.texi:29037
+msgid "The @uref{https://git.cbaines.net/guix/build-coordinator/,Guix Build Coordinator} aids in distributing derivation builds among machines running an @dfn{agent}.  The build daemon is still used to build the derivations, but the Guix Build Coordinator manages allocating builds and working with the results."
+msgstr "Der @uref{https://git.cbaines.net/guix/build-coordinator/,Guix-Erstellungskoordinator} („Guix Build Coordinator“) hilft dabei, Erstellungen von Ableitungen auf Maschinen zu verteilen, auf denen ein @dfn{Agent} läuft. Der Erstellungs-Daemon wird weiterhin benutzt, um die Ableitungen zu erstellen, der Guix-Erstellungskoordinator verwaltet nur die Zuteilung der Erstellungen und den Umgang mit den Ergebnissen."
+
+#. type: quotation
+#: doc/guix.texi:29042
+msgid "This service is considered experimental.  Configuration options may be changed in a backwards-incompatible manner, and not all features have been thorougly tested."
+msgstr "Dieser Dienst gilt als experimentell. Die Konfigurationsoptionen könnten in Zukunft noch auf eine Weise abgeändert werden, die keine Kompatibilität mit dem momentanen Verhalten gewährleistet, und nicht alle Funktionalitäten wurden gründlich getestet."
+
+#. type: Plain text
+#: doc/guix.texi:29049
+msgid "The Guix Build Coordinator consists of one @dfn{coordinator}, and one or more connected @dfn{agent} processes. The coordinator process handles clients submitting builds, and allocating builds to agents. The agent processes talk to a build daemon to actually perform the builds, then send the results back to the coordinator."
+msgstr "Der Guix-Erstellungskoordinator setzt sich aus einem @dfn{Koordinator} und mindestens einem verbundenen @dfn{Agentenprozess} zusammen. Der Koordinatorprozess kümmert sich um Clients, die Erstellungen einreichen, und teilt Erstellungen den Agenten zu. Die Agentenprozesse kommunizieren mit einem Erstellungs-Daemon, welcher die Erstellungen eigentlich durchführt und die Ergebnisse an den Koordinator zurückgibt."
+
+#. type: Plain text
+#: doc/guix.texi:29053
+msgid "There is a script to run the coordinator component of the Guix Build Coordinator, but the Guix service uses a custom Guile script instead, to provide better integration with G-expressions used in the configuration."
+msgstr "Es gibt ein Skript, um die Koordinatorkomponente des Guix-Erstellungskoordinators auszuführen, aber der Dienst für Guix benutzt stattdessen sein eigenes Guile-Skript, was in der Konfiguration benutzte G-Ausdrücke besser integriert."
+
+#. type: defvar
+#: doc/guix.texi:29054
+#, no-wrap
+msgid "{Scheme Variable} guix-build-coordinator-service-type"
+msgstr "{Scheme-Variable} guix-build-coordinator-service-type"
+
+#. type: defvar
+#: doc/guix.texi:29057
+msgid "Service type for the Guix Build Coordinator.  Its value must be a @code{guix-build-coordinator-configuration} object."
+msgstr "Diensttyp für den Guix-Erstellungskoordinator. Sein Wert muss ein @code{guix-build-coordinator-configuration}-Objekt sein."
+
+#. type: deftp
+#: doc/guix.texi:29059
+#, no-wrap
+msgid "{Data Type} guix-build-coordinator-configuration"
+msgstr "{Datentyp} guix-build-coordinator-configuration"
+
+#. type: deftp
+#: doc/guix.texi:29061
+msgid "Data type representing the configuration of the Guix Build Coordinator."
+msgstr "Der Datentyp, der die Konfiguration des Guix-Erstellungskoordinators repräsentiert."
+
+#. type: item
+#: doc/guix.texi:29063 doc/guix.texi:29107 doc/guix.texi:29166
+#, no-wrap
+msgid "@code{package} (default: @code{guix-build-coordinator})"
+msgstr "@code{package} (Vorgabe: @code{guix-build-coordinator})"
+
+#. type: table
+#: doc/guix.texi:29065 doc/guix.texi:29109 doc/guix.texi:29168
+msgid "The Guix Build Coordinator package to use."
+msgstr "Das zu verwendende Guix-Erstellungskoordinator-Paket."
+
+#. type: item
+#: doc/guix.texi:29066
+#, no-wrap
+msgid "@code{user} (default: @code{\"guix-build-coordinator\"})"
+msgstr "@code{user} (Vorgabe: @code{\"guix-build-coordinator\"})"
+
+#. type: table
+#: doc/guix.texi:29068 doc/guix.texi:29112 doc/guix.texi:29171
+#: doc/guix.texi:29217
+msgid "The system user to run the service as."
+msgstr "Das Systembenutzerkonto, mit dem der Dienst ausgeführt wird."
+
+#. type: item
+#: doc/guix.texi:29069
+#, no-wrap
+msgid "@code{group} (default: @code{\"guix-build-coordinator\"})"
+msgstr "@code{group} (Vorgabe: @code{\"guix-build-coordinator\"})"
+
+#. type: table
+#: doc/guix.texi:29071 doc/guix.texi:29220
+msgid "The system group to run the service as."
+msgstr "Die Systembenutzergruppe, mit der der Dienst ausgeführt wird."
+
+#. type: item
+#: doc/guix.texi:29072
+#, no-wrap
+msgid "@code{database-uri-string} (default: @code{\"sqlite:///var/lib/guix-build-coordinator/guix_build_coordinator.db\"})"
+msgstr "@code{database-uri-string} (Vorgabe: @code{\"sqlite:///var/lib/guix-build-coordinator/guix_build_coordinator.db\"})"
+
+#. type: table
+#: doc/guix.texi:29074
+msgid "The URI to use for the database."
+msgstr "Die URI für die Datenbank."
+
+#. type: item
+#: doc/guix.texi:29075
+#, no-wrap
+msgid "@code{agent-communication-uri} (default: @code{\"http://0.0.0.0:8745\"})"
+msgstr "@code{agent-communication-uri} (Vorgabe: @code{\"http://0.0.0.0:8745\"})"
+
+#. type: table
+#: doc/guix.texi:29077
+msgid "The URI describing how to listen to requests from agent processes."
+msgstr "Die URI, die beschreibt, wie auf Anfragen von Agentenprozessen gelauscht wird."
+
+#. type: item
+#: doc/guix.texi:29078
+#, no-wrap
+msgid "@code{client-communication-uri} (default: @code{\"http://127.0.0.1:8746\"})"
+msgstr "@code{client-communication-uri} (Vorgabe: @code{\"http://127.0.0.1:8746\"})"
+
+#. type: table
+#: doc/guix.texi:29082
+msgid "The URI describing how to listen to requests from clients.  The client API allows submitting builds and currently isn't authenticated, so take care when configuring this value."
+msgstr "Die URI, die beschreibt, wie auf Anfragen von Clients gelauscht wird. Mit der Client-API können Erstellungen eingereicht werden und derzeit findet dabei keine Authentifizierung statt. Das sollten Sie bedenken, wenn Sie hieran Einstellungen vornehmen."
+
+#. type: item
+#: doc/guix.texi:29083
+#, no-wrap
+msgid "@code{allocation-strategy} (default: @code{#~basic-build-allocation-strategy})"
+msgstr "@code{allocation-strategy} (Vorgabe: @code{#~basic-build-allocation-strategy})"
+
+#. type: table
+#: doc/guix.texi:29087
+msgid "A G-expression for the allocation strategy to be used.  This is a procedure that takes the datastore as an argument and populates the allocation plan in the database."
+msgstr "Ein G-Ausdruck für die zu nutzende Zuteilungsstrategie. Angegeben wird eine Prozedur, die den Datenspeicher als Argument nimmt und in den Zuteilungsplan in der Datenbank einfügt."
+
+#. type: item
+#: doc/guix.texi:29088
+#, no-wrap
+msgid "@code{hooks} (default: @var{'()})"
+msgstr "@code{hooks} (Vorgabe: @var{'()})"
+
+#. type: table
+#: doc/guix.texi:29091
+msgid "An association list of hooks.  These provide a way to execute arbitrary code upon certain events, like a build result being processed."
+msgstr "Eine assoziative Liste mit Hooks. Mit ihnen kann infolge bestimmter Ereignisse beliebiger Code ausgeführt werden, z.B.@: wenn ein Erstellungsergebnis verarbeitet wird."
+
+#. type: item
+#: doc/guix.texi:29092
+#, no-wrap
+msgid "@code{guile} (default: @code{guile-3.0-latest})"
+msgstr "@code{guile} (Vorgabe: @code{guile-3.0-latest})"
+
+#. type: table
+#: doc/guix.texi:29094
+msgid "The Guile package with which to run the Guix Build Coordinator."
+msgstr "Mit welchem Guile-Paket der Guix-Erstellungskoordinator ausgeführt wird."
+
+#. type: defvar
+#: doc/guix.texi:29098
+#, no-wrap
+msgid "{Scheme Variable} guix-build-coordinator-agent-service-type"
+msgstr "{Scheme-Variable} guix-build-coordinator-agent-service-type"
+
+#. type: defvar
+#: doc/guix.texi:29101
+msgid "Service type for a Guix Build Coordinator agent.  Its value must be a @code{guix-build-coordinator-agent-configuration} object."
+msgstr "Diensttyp für einen Guix-Erstellungskoordinator-Agenten. Als Wert muss ein @code{guix-build-coordinator-agent-configuration}-Objekt angegeben werden."
+
+#. type: deftp
+#: doc/guix.texi:29103
+#, no-wrap
+msgid "{Data Type} guix-build-coordinator-agent-configuration"
+msgstr "{Datentyp} guix-build-coordinator-agent-configuration"
+
+#. type: deftp
+#: doc/guix.texi:29105
+msgid "Data type representing the configuration a Guix Build Coordinator agent."
+msgstr "Der Datentyp, der die Konfiguration des Guix-Erstellungskoordinators repräsentiert."
+
+#. type: item
+#: doc/guix.texi:29110
+#, no-wrap
+msgid "@code{user} (default: @code{\"guix-build-coordinator-agent\"})"
+msgstr "@code{user} (Vorgabe: @code{\"guix-build-coordinator-agent\"})"
+
+#. type: item
+#: doc/guix.texi:29113 doc/guix.texi:29172
+#, no-wrap
+msgid "@code{coordinator} (default: @code{\"http://localhost:8745\"})"
+msgstr "@code{coordinator} (Vorgabe: @code{\"http://localhost:8745\"})"
+
+#. type: table
+#: doc/guix.texi:29115 doc/guix.texi:29174
+msgid "The URI to use when connecting to the coordinator."
+msgstr "Das Passwort, das zum Herstellen einer Verbindung mit dem Koordinator verwendet werden soll."
+
+#. type: table
+#: doc/guix.texi:29120
+msgid "The UUID of the agent.  This should be generated by the coordinator process, stored in the coordinator database, and used by the intended agent."
+msgstr "Die UUID des Agenten. Sie sollte durch den Koordinatorprozess erzeugt worden sein, in der Datenbank des Koordinators eingetragen sein und von dem Agenten benutzt werden, für den sie gedacht ist."
+
+#. type: table
+#: doc/guix.texi:29124
+msgid "The password to use when connecting to the coordinator.  A file to read the password from can also be specified, and this is more secure."
+msgstr "Das Passwort, um sich mit dem Koordinator zu verbinden. Es kann auch eine Datei angegeben werden, aus der das Passwort gelesen wird, was sicherer ist."
+
+#. type: item
+#: doc/guix.texi:29125
+#, no-wrap
+msgid "@code{password-file} (default: @code{#f})"
+msgstr "@code{password-file} (Vorgabe: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:29128
+msgid "A file containing the password to use when connecting to the coordinator."
+msgstr "Eine Datei mit dem Passwort, um sich mit dem Koordinator zu verbinden."
+
+#. type: item
+#: doc/guix.texi:29129
+#, no-wrap
+msgid "@code{systems} (default: @var{#f})"
+msgstr "@code{systems} (Vorgabe: @var{#f})"
+
+#. type: table
+#: doc/guix.texi:29132
+msgid "The systems for which this agent should fetch builds.  The agent process will use the current system it's running on as the default."
+msgstr "Die Systeme, für die dieser Agent Erstellungen übernehmen soll. Voreingestellt verwendet der Agentenprozess den Systemtyp, auf dem er aktuell läuft."
+
+#. type: item
+#: doc/guix.texi:29133
+#, no-wrap
+msgid "@code{max-parallel-builds} (default: @code{1})"
+msgstr "@code{max-parallel-builds} (Vorgabe: @code{1})"
+
+#. type: table
+#: doc/guix.texi:29135
+msgid "The number of builds to perform in parallel."
+msgstr "Die Anzahl der Erstellungen, die parallel ausgeführt werden sollen."
+
+#. type: item
+#: doc/guix.texi:29136
+#, no-wrap
+msgid "@code{derivation-substitute-urls} (default: @code{1})"
+msgstr "@code{derivation-substitute-urls} (Vorgabe: @code{1})"
+
+#. type: table
+#: doc/guix.texi:29139
+msgid "URLs from which to attempt to fetch substitutes for derivations, if the derivations aren't already available."
+msgstr "URLs, von denen versucht werden soll, Substitute für Ableitungen herunterzuladen, wenn die Ableitungen noch nicht vorliegen."
+
+#. type: item
+#: doc/guix.texi:29140
+#, no-wrap
+msgid "@code{non-derivation-substitute-urls} (default: @code{1})"
+msgstr "@code{non-derivation-substitute-urls} (Vorgabe: @code{1})"
+
+#. type: table
+#: doc/guix.texi:29143
+msgid "URLs from which to attempt to fetch substitutes for build inputs, if the input store items aren't already available."
+msgstr "URLs, von denen versucht werden soll, Substitute für Erstellungseingaben herunterzuladen, wenn die Eingabe-Store-Objekte noch nicht vorliegen."
+
+#. type: Plain text
+#: doc/guix.texi:29153
+msgid "The Guix Build Coordinator package contains a script to query an instance of the Guix Data Service for derivations to build, and then submit builds for those derivations to the coordinator.  The service type below assists in running this script.  This is an additional tool that may be useful when building derivations contained within an instance of the Guix Data Service."
+msgstr "Das Paket des Guix-Erstellungskoordinators enthält ein Skript, mit dem eine Instanz des Guix-Datendienstes („Guix Data Service“) nach zu erstellenden Ableitungen angefragt werden kann, woraufhin Erstellungen für selbige Ableitungen beim Koordinator eingereicht werden. Der folgende Diensttyp hilft dabei, dieses Skript einzusetzen. Es ist ein weiteres Werkzeug, das beim Erstellen von Ableitungen von Nutzen sein kann, die in einer Instanz des Guix-Datendienstes vorhanden sind."
+
+#. type: defvar
+#: doc/guix.texi:29154
+#, no-wrap
+msgid "{Scheme Variable} guix-build-coordinator-queue-builds-service-type"
+msgstr "{Scheme-Variable} guix-build-coordinator-queue-builds-service-type"
+
+#. type: defvar
+#: doc/guix.texi:29159
+msgid "Service type for the guix-build-coordinator-queue-builds-from-guix-data-service script.  Its value must be a @code{guix-build-coordinator-queue-builds-configuration} object."
+msgstr "Der Diensttyp für das Skript guix-build-coordinator-queue-builds-from-guix-data-service. Als Wert muss ein @code{guix-build-coordinator-queue-builds-configuration}-Objekt benutzt werden."
+
+#. type: deftp
+#: doc/guix.texi:29161
+#, no-wrap
+msgid "{Data Type} guix-build-coordinator-queue-builds-configuration"
+msgstr "{Datentyp} guix-build-coordinator-queue-builds-configuration"
+
+#. type: deftp
+#: doc/guix.texi:29164
+msgid "Data type representing the options to the queue builds from guix data service script."
+msgstr "Der Datentyp, der die Optionen an das Skript guix-build-coordinator-queue-builds-from-guix-data-service repräsentiert."
+
+#. type: item
+#: doc/guix.texi:29169
+#, no-wrap
+msgid "@code{user} (default: @code{\"guix-build-coordinator-queue-builds\"})"
+msgstr "@code{user} (Vorgabe: @code{\"guix-build-coordinator-queue-builds\"})"
+
+#. type: item
+#: doc/guix.texi:29175
+#, no-wrap
+msgid "@code{systems} (default: @code{#f})"
+msgstr "@code{systems} (Vorgabe: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:29177
+msgid "The systems for which to fetch derivations to build."
+msgstr "Für welche Systeme zu erstellende Ableitungen übernommen werden sollen."
+
+#. type: item
+#: doc/guix.texi:29178
+#, no-wrap
+msgid "@code{systems-and-targets} (default: @code{#f})"
+msgstr "@code{systems-and-targets} (Vorgabe: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:29181
+msgid "An association list of system and target pairs for which to fetch derivations to build."
+msgstr "Eine assoziative Liste aus Paaren aus System und Zielplattform, für die zu erstellende Ableitungen übernommen werden sollen."
+
+#. type: item
+#: doc/guix.texi:29182
+#, no-wrap
+msgid "@code{guix-data-service} (default: @code{\"https://data.guix.gnu.org\"})"
+msgstr "@code{guix-data-service} (Vorgabe: @code{\"https://data.guix.gnu.org\"})"
+
+#. type: table
+#: doc/guix.texi:29185
+msgid "The Guix Data Service instance from which to query to find out about derivations to build."
+msgstr "Die Instanz des Guix-Datendienstes, die nach zu erstellenden Ableitungen angefragt werden soll."
+
+#. type: item
+#: doc/guix.texi:29186
+#, no-wrap
+msgid "@code{processed-commits-file} (default: @code{\"/var/cache/guix-build-coordinator-queue-builds/processed-commits\"})"
+msgstr "@code{processed-commits-file} (Vorgabe: @code{\"/var/cache/guix-build-coordinator-queue-builds/processed-commits\"})"
+
+#. type: table
+#: doc/guix.texi:29189
+msgid "A file to record which commits have been processed, to avoid needlessly processing them again if the service is restarted."
+msgstr "Eine Datei, in die gespeichert wird, welche Commits bereits verarbeitet wurden, um sie nicht unnötig ein weiteres Mal zu verarbeiten, wenn der Dienst neu gestartet wird."
+
+#. type: subsubheading
+#: doc/guix.texi:29193
 #, no-wrap
 msgid "Guix Data Service"
 msgstr "Guix-Datendienst"
 
 #. type: Plain text
-#: doc/guix.texi:25342
+#: doc/guix.texi:29197
 msgid "The @uref{http://data.guix.gnu.org,Guix Data Service} processes, stores and provides data about GNU Guix.  This includes information about packages, derivations and lint warnings."
 msgstr "Der @uref{http://data.guix.gnu.org,Guix-Datendienst} („Guix Data Service“) verarbeitet und speichert Daten über GNU Guix und stellt diese zur Verfügung. Dazu gehören Informationen über Pakete, Ableitungen sowie durch Linting erkannte Paketfehler."
 
 #. type: Plain text
-#: doc/guix.texi:25345
+#: doc/guix.texi:29200
 msgid "The data is stored in a PostgreSQL database, and available through a web interface."
 msgstr "Die Daten werden in einer PostgreSQL-Datenbank gespeichert und stehen über eine Weboberfläche zur Verfügung."
 
 #. type: defvar
-#: doc/guix.texi:25346
+#: doc/guix.texi:29201
 #, no-wrap
 msgid "{Scheme Variable} guix-data-service-type"
 msgstr "{Scheme-Variable} guix-data-service-type"
 
 #. type: defvar
-#: doc/guix.texi:25351
+#: doc/guix.texi:29206
 msgid "Service type for the Guix Data Service.  Its value must be a @code{guix-data-service-configuration} object.  The service optionally extends the getmail service, as the guix-commits mailing list is used to find out about changes in the Guix git repository."
 msgstr "Diensttyp für den Guix-Datendienst. Sein Wert muss ein @code{guix-data-service-configuration}-Objekt sein. Der Dienst kann optional den getmail-Dienst erweitern und die guix-commits-Mailing-Liste benutzen, um bei Änderungen am Guix-Git-Repository auf dem Laufenden zu bleiben."
 
 #. type: deftp
-#: doc/guix.texi:25353
+#: doc/guix.texi:29208
 #, no-wrap
 msgid "{Data Type} guix-data-service-configuration"
 msgstr "{Datentyp} guix-data-service-configuration"
 
 #. type: deftp
-#: doc/guix.texi:25355
+#: doc/guix.texi:29210
 msgid "Data type representing the configuration of the Guix Data Service."
 msgstr "Der Datentyp, der die Konfiguration des Guix-Datendienstes repräsentiert."
 
 #. type: item
-#: doc/guix.texi:25357
+#: doc/guix.texi:29212
 #, no-wrap
 msgid "@code{package} (default: @code{guix-data-service})"
 msgstr "@code{package} (Vorgabe: @code{guix-data-service})"
 
 #. type: table
-#: doc/guix.texi:25359
+#: doc/guix.texi:29214
 msgid "The Guix Data Service package to use."
 msgstr "Das zu verwendende Guix-Datendienst-Paket."
 
 #. type: item
-#: doc/guix.texi:25360
+#: doc/guix.texi:29215
 #, no-wrap
 msgid "@code{user} (default: @code{\"guix-data-service\"})"
 msgstr "@code{user} (Vorgabe: @code{\"guix-data-service\"})"
 
-#. type: table
-#: doc/guix.texi:25362
-msgid "The system user to run the service as."
-msgstr "Das Systembenutzerkonto, mit dem der Dienst ausgeführt wird."
-
 #. type: item
-#: doc/guix.texi:25363
+#: doc/guix.texi:29218
 #, no-wrap
 msgid "@code{group} (default: @code{\"guix-data-service\"})"
 msgstr "@code{group} (Vorgabe: @code{\"guix-data-service\"})"
 
-#. type: table
-#: doc/guix.texi:25365
-msgid "The system group to run the service as."
-msgstr "Die Systembenutzergruppe, mit der der Dienst ausgeführt wird."
-
 #. type: item
-#: doc/guix.texi:25366
+#: doc/guix.texi:29221
 #, no-wrap
 msgid "@code{port} (default: @code{8765})"
 msgstr "@code{port} (Vorgabe: @code{8765})"
 
 #. type: table
-#: doc/guix.texi:25368
+#: doc/guix.texi:29223
 msgid "The port to bind the web service to."
 msgstr "Der Port, an den der Webdienst gebunden wird."
 
 #. type: item
-#: doc/guix.texi:25369
+#: doc/guix.texi:29224
 #, no-wrap
 msgid "@code{host} (default: @code{\"127.0.0.1\"})"
 msgstr "@code{host} (Vorgabe: @code{\"127.0.0.1\"})"
 
 #. type: table
-#: doc/guix.texi:25371
+#: doc/guix.texi:29226
 msgid "The host to bind the web service to."
 msgstr "Die Netzwerkschnittstelle („Host“), an die der Webdienst gebunden wird."
 
 #. type: item
-#: doc/guix.texi:25372
+#: doc/guix.texi:29227
 #, no-wrap
 msgid "@code{getmail-idle-mailboxes} (default: @code{#f})"
 msgstr "@code{getmail-idle-mailboxes} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:25375
+#: doc/guix.texi:29230
 msgid "If set, this is the list of mailboxes that the getmail service will be configured to listen to."
 msgstr "Wenn es festgelegt ist, wird es als Liste der Postfächer („Mailboxes“) eingerichtet, die der getmail-Dienst beobachtet."
 
 #. type: item
-#: doc/guix.texi:25376
+#: doc/guix.texi:29231
 #, no-wrap
 msgid "@code{commits-getmail-retriever-configuration} (default: @code{#f})"
 msgstr "@code{commits-getmail-retriever-configuration} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:25380
+#: doc/guix.texi:29235
 msgid "If set, this is the @code{getmail-retriever-configuration} object with which to configure getmail to fetch mail from the guix-commits mailing list."
 msgstr "Wenn es festgelegt ist, bezeichnet dies das @code{getmail-retriever-configuration}-Objekt, mit dem getmail eingerichtet wird, um E-Mails von der „guix-commits“-Mailing-Liste zu beziehen."
 
+#. type: item
+#: doc/guix.texi:29236
+#, no-wrap
+msgid "@code{extra-options} (default: @var{'()})"
+msgstr "@code{extra-options} (Vorgabe: @var{'()})"
+
 #. type: table
-#: doc/guix.texi:25383
+#: doc/guix.texi:29238
 msgid "Extra command line options for @code{guix-data-service}."
 msgstr "Zusätzliche Befehlszeilenoptionen für @code{guix-data-service}."
 
 #. type: item
-#: doc/guix.texi:25384
+#: doc/guix.texi:29239
 #, no-wrap
 msgid "@code{extra-process-jobs-options} (default: @var{'()})"
 msgstr "@code{extra-process-jobs-options} (Vorgabe: @var{'()})"
 
 #. type: table
-#: doc/guix.texi:25386
+#: doc/guix.texi:29241
 msgid "Extra command line options for @code{guix-data-service-process-jobs}."
 msgstr "Zusätzliche Befehlszeilenoptionen für @code{guix-data-service-process-jobs}."
 
 #. type: cindex
-#: doc/guix.texi:25393
+#: doc/guix.texi:29248
 #, no-wrap
 msgid "oom"
 msgstr "OOM"
 
 #. type: cindex
-#: doc/guix.texi:25394
+#: doc/guix.texi:29249
 #, no-wrap
 msgid "out of memory killer"
 msgstr "Out-Of-Memory-Killer"
 
 #. type: cindex
-#: doc/guix.texi:25395
+#: doc/guix.texi:29250
 #, no-wrap
 msgid "earlyoom"
 msgstr "earlyoom"
 
 #. type: cindex
-#: doc/guix.texi:25396
+#: doc/guix.texi:29251
 #, no-wrap
 msgid "early out of memory daemon"
 msgstr "Early-Out-Of-Memory-Daemon"
 
-#. type: subsection
-#: doc/guix.texi:25397
+#. type: subsubheading
+#: doc/guix.texi:29252
 #, no-wrap
 msgid "Early OOM Service"
 msgstr "Early-OOM-Dienst"
 
 #. type: Plain text
-#: doc/guix.texi:25404
+#: doc/guix.texi:29259
 msgid "@uref{https://github.com/rfjakob/earlyoom,Early OOM}, also known as Earlyoom, is a minimalist out of memory (OOM) daemon that runs in user space and provides a more responsive and configurable alternative to the in-kernel OOM killer.  It is useful to prevent the system from becoming unresponsive when it runs out of memory."
 msgstr "@uref{https://github.com/rfjakob/earlyoom,Early OOM}, auch bekannt als Earlyoom, ist ein minimalistischer Out-Of-Memory-Daemon (OOM), um auf Anwendungsebene („User Space“) Programme abzuwürgen, wenn einem der freie Arbeitsspeicher ausgeht (ein „OOM-Killer“). Er stellt eine Alternative zum im Kernel eingebauten OOM-Killer dar, mit der das System in einem solchen Fall besser weiterhin auf Benutzereingaben reagieren kann und die konfigurierbarer ist."
 
 #. type: deffn
-#: doc/guix.texi:25405
+#: doc/guix.texi:29260
 #, no-wrap
 msgid "{Scheme Variable} earlyoom-service-type"
 msgstr "{Scheme-Variable} earlyoom-service-type"
 
 #. type: deffn
-#: doc/guix.texi:25410
+#: doc/guix.texi:29265
 msgid "The service type for running @command{earlyoom}, the Early OOM daemon.  Its value must be a @code{earlyoom-configuration} object, described below.  The service can be instantiated in its default configuration with:"
 msgstr "Der Diensttyp, um @command{earlyoom}, den Early-OOM-Daemon, auszuführen. Als Wert muss ein @code{earlyoom-configuration}-Objekt angegeben werden, wie unten beschrieben. So kann der Dienst mit seiner Vorgabekonfiguration instanziieret werden:"
 
 #. type: lisp
-#: doc/guix.texi:25413
+#: doc/guix.texi:29268
 #, no-wrap
 msgid "(service earlyoom-service-type)\n"
 msgstr "(service earlyoom-service-type)\n"
 
 #. type: deftp
-#: doc/guix.texi:25416
+#: doc/guix.texi:29271
 #, no-wrap
 msgid "{Data Type} earlyoom-configuration"
 msgstr "{Datentyp} earlyoom-configuration"
 
 #. type: deftp
-#: doc/guix.texi:25418
+#: doc/guix.texi:29273
 msgid "This is the configuration record for the @code{earlyoom-service-type}."
 msgstr "Dies ist das Verbundsobjekt mit der Konfiguration des @code{earlyoom-service-type}."
 
 #. type: item
-#: doc/guix.texi:25420
+#: doc/guix.texi:29275
 #, no-wrap
 msgid "@code{earlyoom} (default: @var{earlyoom})"
 msgstr "@code{earlyoom} (Vorgabe: @var{earlyoom})"
 
 #. type: table
-#: doc/guix.texi:25422
+#: doc/guix.texi:29277
 msgid "The Earlyoom package to use."
 msgstr "Das Earlyoom-Paket, das benutzt werden soll."
 
 #. type: item
-#: doc/guix.texi:25423
+#: doc/guix.texi:29278
 #, no-wrap
 msgid "@code{minimum-available-memory} (default: @code{10})"
 msgstr "@code{minimum-available-memory} (Vorgabe: @code{10})"
 
 #. type: table
-#: doc/guix.texi:25425
+#: doc/guix.texi:29280
 msgid "The threshold for the minimum @emph{available} memory, in percentages."
-msgstr "Der Schwellwert, wieviel Arbeitsspeicher mindestens @emph{verfügbar} bleiben muss, in Prozent."
+msgstr "Der Schwellwert, wie viel Arbeitsspeicher mindestens @emph{verfügbar} bleiben muss, in Prozent."
 
 #. type: item
-#: doc/guix.texi:25426
+#: doc/guix.texi:29281
 #, no-wrap
 msgid "@code{minimum-free-swap} (default: @code{10})"
 msgstr "@code{minimum-free-swap} (Vorgabe: @code{10})"
 
 #. type: table
-#: doc/guix.texi:25428
+#: doc/guix.texi:29283
 msgid "The threshold for the minimum free swap memory, in percentages."
-msgstr "Der Schwellwert, wieviel Swap-Speicher mindestens frei bleiben muss, in Prozent."
+msgstr "Der Schwellwert, wie viel Swap-Speicher mindestens frei bleiben muss, in Prozent."
 
 #. type: item
-#: doc/guix.texi:25429
+#: doc/guix.texi:29284
 #, no-wrap
 msgid "@code{prefer-regexp} (default: @code{#f})"
 msgstr "@code{prefer-regexp} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:25432
+#: doc/guix.texi:29287
 msgid "A regular expression (as a string) to match the names of the processes that should be preferably killed."
 msgstr "Ein regulärer Ausdruck (als eine Zeichenkette), der auf die Namen jener Prozesse passt, die als Erste abgewürgt werden sollen."
 
 #. type: item
-#: doc/guix.texi:25433
+#: doc/guix.texi:29288
 #, no-wrap
 msgid "@code{avoid-regexp} (default: @code{#f})"
 msgstr "@code{avoid-regexp} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:25436
+#: doc/guix.texi:29291
 msgid "A regular expression (as a string) to match the names of the processes that should @emph{not} be killed."
 msgstr "Ein regulärer Ausdruck (als eine Zeichenkette), der auf die Namen jener Prozesse passt, die @emph{nicht} abgewürgt werden sollen.<"
 
 #. type: item
-#: doc/guix.texi:25437
+#: doc/guix.texi:29292
 #, no-wrap
 msgid "@code{memory-report-interval} (default: @code{0})"
 msgstr "@code{memory-report-interval} (Vorgabe: @code{0})"
 
 #. type: table
-#: doc/guix.texi:25440
+#: doc/guix.texi:29295
 msgid "The interval in seconds at which a memory report is printed.  It is disabled by default."
 msgstr "Das Intervall in Sekunden, in dem ein Bericht über den Speicher ausgegeben werden soll. Nach Vorgabe ist es deaktiviert."
 
 #. type: item
-#: doc/guix.texi:25441
+#: doc/guix.texi:29296
 #, no-wrap
 msgid "@code{ignore-positive-oom-score-adj?} (default: @code{#f})"
 msgstr "@code{ignore-positive-oom-score-adj?} (Vorgabe: @code{#f})"
 
-# TODO Incomplete msgid.
 #. type: table
-#: doc/guix.texi:25444
-msgid "A boolean indicating whether the positive adjustments set in @file{/proc/*/oom_score_adj}."
-msgstr ""
+#: doc/guix.texi:29299
+msgid "A boolean indicating whether the positive adjustments set in @file{/proc/*/oom_score_adj} should be ignored."
+msgstr "Ein boolescher Wert, der angibt, ob die in @file{/proc/*/oom_score_adj} festgelegten Anpassungen nach oben ignoriert werden sollen."
 
 #. type: item
-#: doc/guix.texi:25445
+#: doc/guix.texi:29300
 #, no-wrap
 msgid "@code{show-debug-messages?} (default: @code{#f})"
 msgstr "@code{show-debug-messages?} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:25448
+#: doc/guix.texi:29303
 msgid "A boolean indicating whether debug messages should be printed.  The logs are saved at @file{/var/log/earlyoom.log}."
 msgstr "Ein boolescher Ausdruck, der angibt, ob Nachrichten zur Fehlersuche ausgegeben werden sollen. Die Protokolle werden unter @file{/var/log/earlyoom.log} gespeichert."
 
 #. type: item
-#: doc/guix.texi:25449
+#: doc/guix.texi:29304
 #, no-wrap
 msgid "@code{send-notification-command} (default: @code{#f})"
 msgstr "@code{send-notification-command} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:25452
+#: doc/guix.texi:29307
 msgid "This can be used to provide a custom command used for sending notifications."
 msgstr "Hiermit kann ein eigener Befehl eingestellt werden, um Benachrichtigungen zu senden."
 
 #. type: cindex
-#: doc/guix.texi:25455
+#: doc/guix.texi:29310
 #, no-wrap
 msgid "modprobe"
 msgstr "modprobe"
 
 #. type: cindex
-#: doc/guix.texi:25456
+#: doc/guix.texi:29311
 #, no-wrap
 msgid "kernel module loader"
 msgstr "Kernelmodule laden"
 
-#. type: subsubsection
-#: doc/guix.texi:25457
+#. type: subsubheading
+#: doc/guix.texi:29312
 #, no-wrap
 msgid "Kernel Module Loader Service"
 msgstr "Kernelmodul-Ladedienst"
 
 #. type: Plain text
-#: doc/guix.texi:25463
+#: doc/guix.texi:29318
 msgid "The kernel module loader service allows one to load loadable kernel modules at boot.  This is especially useful for modules that don't autoload and need to be manually loaded, as it's the case with @code{ddcci}."
 msgstr "Mit dem Kernelmodul-Ladedienst („Kernel Module Loader Service“) können Sie veranlassen, dass hinzuladbare Kernelmodule beim Systemstart geladen werden. Das bietet sich besonders für Module an, die nicht automatisch geladen werden („Autoload“), sondern manuell geladen werden müssen, wie es z.B.@: bei @code{ddcci} der Fall ist."
 
 #. type: deffn
-#: doc/guix.texi:25464
+#: doc/guix.texi:29319
 #, no-wrap
 msgid "{Scheme Variable} kernel-module-loader-service-type"
 msgstr "{Scheme-Variable} kernel-module-loader-service-type"
 
 #. type: deffn
-#: doc/guix.texi:25470
+#: doc/guix.texi:29325
 msgid "The service type for loading loadable kernel modules at boot with @command{modprobe}.  Its value must be a list of strings representing module names.  For example loading the drivers provided by @code{ddcci-driver-linux}, in debugging mode by passing some module parameters, can be done as follow:"
 msgstr "Der Diensttyp, um hinzuladbare Kernelmodule beim Systemstart über @command{modprobe} zu laden. Als Wert muss eine Liste von Zeichenketten angegeben werden, die den Modulnamen entsprechen. Um zum Beispiel die durch @code{ddcci-driver-linux} zur Verfügung gestellten Treiber zu laden und dabei durch Übergabe bestimmter Parameter den Modus zur Fehlersuche zu aktivieren, können Sie Folgendes benutzen:"
 
 #. type: lisp
-#: doc/guix.texi:25475
+#: doc/guix.texi:29330
 #, no-wrap
 msgid ""
 "(use-modules (gnu) (gnu services))\n"
@@ -47571,7 +54393,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:25479
+#: doc/guix.texi:29334
 #, no-wrap
 msgid ""
 "(define ddcci-config\n"
@@ -47585,7 +54407,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:25489
+#: doc/guix.texi:29344
 #, no-wrap
 msgid ""
 "(operating-system\n"
@@ -47609,69 +54431,245 @@ msgstr ""
 "  (kernel-loadable-modules (list ddcci-driver-linux)))\n"
 
 #. type: cindex
-#: doc/guix.texi:25495
+#: doc/guix.texi:29347
+#, no-wrap
+msgid "zram"
+msgstr "zram"
+
+#. type: cindex
+#: doc/guix.texi:29348
+#, no-wrap
+msgid "compressed swap"
+msgstr "komprimierter Swap-Speicher"
+
+#. type: cindex
+#: doc/guix.texi:29349
+#, no-wrap
+msgid "Compressed RAM-based block devices"
+msgstr "komprimierte Blockgeräte im Arbeitsspeicher („RAM“)"
+
+#. type: subsubheading
+#: doc/guix.texi:29350
+#, no-wrap
+msgid "Zram Device Service"
+msgstr "Dienst für Zram-Geräte"
+
+#. type: Plain text
+#: doc/guix.texi:29356
+msgid "The Zram device service provides a compressed swap device in system memory.  The Linux Kernel documentation has more information about @uref{https://www.kernel.org/doc/html/latest/admin-guide/blockdev/zram.html,zram} devices."
+msgstr "Der Dienst für Zram-Geräte macht ein komprimiertes Swap-Gerät im Arbeitsspeicher verfügbar. Mehr Informationen finden Sie in der Linux-Kernel-Dokumentation @uref{https://www.kernel.org/doc/html/latest/admin-guide/blockdev/zram.html,über Zram-Geräte}."
+
+#. type: deffn
+#: doc/guix.texi:29357
+#, no-wrap
+msgid "{Scheme Variable} zram-device-service-type"
+msgstr "{Scheme-Variable} zram-device-service-type"
+
+#. type: deffn
+#: doc/guix.texi:29361
+msgid "This service creates the zram block device, formats it as swap and enables it as a swap device.  The service's value is a @code{zram-device-configuration} record."
+msgstr "Dieser Dienst erzeugt das Zram-Blockgerät, formatiert es als Swap-Speicher und aktiviert es als ein Swap-Gerät. Der Wert des Dienstes ist ein @code{zram-device-configuration}-Verbundsobjekt."
+
+#. type: deftp
+#: doc/guix.texi:29362
+#, no-wrap
+msgid "{Data Type} zram-device-configuration"
+msgstr "{Datentyp} zram-device-configuration"
+
+#. type: deftp
+#: doc/guix.texi:29365
+msgid "This is the data type representing the configuration for the zram-device service."
+msgstr "Dieser Datentyp repräsentiert die Konfiguration des zram-device-Dienstes."
+
+#. type: item
+#: doc/guix.texi:29367
+#, no-wrap
+msgid "@code{size} (default @code{\"1G\"})"
+msgstr "@code{size} (Vorgabe: @code{\"1G\"})"
+
+#. type: table
+#: doc/guix.texi:29371
+msgid "This is the amount of space you wish to provide for the zram device.  It accepts a string and can be a number of bytes or use a suffix, eg.: @code{\"512M\"} or @code{1024000}."
+msgstr "Wie viel Speicher Sie für das Zram-Gerät verfügbar machen möchten. Angegeben werden kann eine Zeichenkette oder eine Zahl mit der Anzahl Bytes oder mit einem Suffix, z.B.@: @code{\"512M\"} oder @code{1024000}."
+
+#. type: item
+#: doc/guix.texi:29371
+#, no-wrap
+msgid "@code{compression-algorithm} (default @code{'lzo})"
+msgstr "@code{compression-algorithm} (Vorgabe: @code{'lzo})"
+
+#. type: table
+#: doc/guix.texi:29375
+msgid "This is the compression algorithm you wish to use.  It is difficult to list all the possible compression options, but common ones supported by Guix's Linux Libre Kernel include @code{'lzo}, @code{'lz4} and @code{'zstd}."
+msgstr "Welchen Kompressionsalgorithmus Sie verwenden möchten. Alle Konfigurationsmöglichkeiten lassen sich hier nicht aufzählen, aber der Linux-Libre-Kernel von Guix unterstützt unter anderem die häufig benutzten @code{'lzo}, @code{'lz4} und @code{'zstd}."
+
+#. type: item
+#: doc/guix.texi:29375
+#, no-wrap
+msgid "@code{memory-limit} (default @code{0})"
+msgstr "@code{memory-limit} (Vorgabe: @code{0})"
+
+#. type: table
+#: doc/guix.texi:29382
+msgid "This is the maximum amount of memory which the zram device can use.  Setting it to '0' disables the limit.  While it is generally expected that compression will be 2:1, it is possible that uncompressable data can be written to swap and this is a method to limit how much memory can be used.  It accepts a string and can be a number of bytes or use a suffix, eg.: @code{\"2G\"}."
+msgstr "Wie viel Arbeitsspeicher dem Zram-Gerät höchstens zur Verfügung steht. Wenn es auf 0 steht, entfällt die Beschränkung. Obwohl im Allgemeinen von einem Kompressionsverhältnis von 2:1 ausgegangen wird, kann es passieren, dass @emph{nicht} komprimierbare Daten den Swap-Speicher füllen. Mit diesem Feld kann das begrenzt werden. Es nimmt eine Zeichenkette oder eine Anzahl Bytes; ein Suffix kann angegeben werden, z.B.@: @code{\"2G\"}."
+
+#. type: item
+#: doc/guix.texi:29382
+#, no-wrap
+msgid "@code{priority} (default @code{-1})"
+msgstr "@code{priority} (Vorgabe: @code{-1})"
+
+#. type: table
+#: doc/guix.texi:29387
+msgid "This is the priority of the swap device created from the zram device.  @code{swapon} accepts values between -1 and 32767, with higher values indicating higher priority.  Higher priority swap will generally be used first."
+msgstr "Die Priorität des Swap-Geräts, das aus dem Zram-Gerät erzeugt wird. @code{swapon} akzeptiert Werte zwischen -1 und 32767, dabei stehen höhere Werte für eine höhere Priorität. Höher priorisierter Speicher wird in der Regel zuerst benutzt."
+
+#. type: defvr
+#: doc/guix.texi:29395
+#, no-wrap
+msgid "{Scheme Variable} hurd-console-service-type"
+msgstr "{Scheme-Variable} hurd-console-service-type"
+
+#. type: defvr
+#: doc/guix.texi:29397
+msgid "This service starts the fancy @code{VGA} console client on the Hurd."
+msgstr "Diensttyp, mit dem der fantastische @code{VGA}-Konsolen-Client auf Hurd ausgeführt wird."
+
+#. type: defvr
+#: doc/guix.texi:29399
+msgid "The service's value is a @code{hurd-console-configuration} record."
+msgstr "Der Wert des Dienstes ist ein @code{hurd-console-configuration}-Verbundsobjekt."
+
+#. type: deftp
+#: doc/guix.texi:29401
+#, no-wrap
+msgid "{Data Type} hurd-console-configuration"
+msgstr "{Datentyp} hurd-console-configuration"
+
+#. type: deftp
+#: doc/guix.texi:29404
+msgid "This is the data type representing the configuration for the hurd-console-service."
+msgstr "Dieser Datentyp repräsentiert die Konfiguration des hurd-console-Dienstes."
+
+#. type: item
+#: doc/guix.texi:29406 doc/guix.texi:29422
+#, no-wrap
+msgid "@code{hurd} (default: @var{hurd})"
+msgstr "@code{hurd} (Vorgabe: @var{hurd})"
+
+#. type: table
+#: doc/guix.texi:29408 doc/guix.texi:29424
+msgid "The Hurd package to use."
+msgstr "Das zu verwendende Hurd-Paket."
+
+#. type: defvr
+#: doc/guix.texi:29411
+#, no-wrap
+msgid "{Scheme Variable} hurd-getty-service-type"
+msgstr "{Scheme-Variable} hurd-getty-service-type"
+
+#. type: defvr
+#: doc/guix.texi:29413
+msgid "This service starts a tty using the Hurd @code{getty} program."
+msgstr "Der Diensttyp, um ein TTY über Hurds @code{getty}-Programm zu starten."
+
+#. type: defvr
+#: doc/guix.texi:29415
+msgid "The service's value is a @code{hurd-getty-configuration} record."
+msgstr "Der Wert des Dienstes ist ein @code{hurd-getty-configuration}-Verbundsobjekt."
+
+#. type: deftp
+#: doc/guix.texi:29417
+#, no-wrap
+msgid "{Data Type} hurd-getty-configuration"
+msgstr "{Datentyp} hurd-getty-configuration"
+
+#. type: deftp
+#: doc/guix.texi:29420
+msgid "This is the data type representing the configuration for the hurd-getty-service."
+msgstr "Dieser Datentyp repräsentiert die Konfiguration des hurd-getty-Dienstes."
+
+#. type: table
+#: doc/guix.texi:29427
+msgid "The name of the console this Getty runs on---e.g., @code{\"tty1\"}."
+msgstr "Der Name der Konsole, auf der dieses Getty läuft — z.B.@: @code{\"tty1\"}."
+
+#. type: item
+#: doc/guix.texi:29428
+#, no-wrap
+msgid "@code{baud-rate} (default: @code{38400})"
+msgstr "@code{baud-rate} (Vorgabe: @code{38400})"
+
+#. type: table
+#: doc/guix.texi:29430
+msgid "An integer specifying the baud rate of the tty."
+msgstr "Eine ganze Zahl, die die Baud-Rate des TTYs angibt."
+
+#. type: cindex
+#: doc/guix.texi:29437
 #, no-wrap
 msgid "fingerprint"
 msgstr "Fingerabdruck"
 
 #. type: subsubheading
-#: doc/guix.texi:25496
+#: doc/guix.texi:29438
 #, no-wrap
 msgid "Fingerprint Service"
 msgstr "Fingerabdrucklese-Dienst"
 
 #. type: Plain text
-#: doc/guix.texi:25500
+#: doc/guix.texi:29442
 msgid "The @code{(gnu services authentication)} module provides a DBus service to read and identify fingerprints via a fingerprint sensor."
 msgstr "Das Modul @code{(gnu services authentication)} stellt einen DBus-Dienst zur Verfügung, mit dem Fingerabdrücke mit Hilfe eines Fingerabdrucksensors gelesen und identifiziert werden können."
 
 #. type: defvr
-#: doc/guix.texi:25501
+#: doc/guix.texi:29443
 #, no-wrap
 msgid "{Scheme Variable} fprintd-service-type"
 msgstr "{Scheme-Variable} fprintd-service-type"
 
 #. type: defvr
-#: doc/guix.texi:25504
+#: doc/guix.texi:29446
 msgid "The service type for @command{fprintd}, which provides the fingerprint reading capability."
 msgstr "Der Diensttyp für @command{fprintd}, mit dem Fingerabdrücke gelesen werden können."
 
 #. type: lisp
-#: doc/guix.texi:25507
+#: doc/guix.texi:29449
 #, no-wrap
 msgid "(service fprintd-service-type)\n"
 msgstr "(service fprintd-service-type)\n"
 
 #. type: cindex
-#: doc/guix.texi:25510
+#: doc/guix.texi:29452
 #, no-wrap
 msgid "sysctl"
 msgstr "sysctl"
 
 #. type: subsubheading
-#: doc/guix.texi:25511
+#: doc/guix.texi:29453
 #, no-wrap
 msgid "System Control Service"
 msgstr "Systemsteuerungsdienst"
 
 #. type: Plain text
-#: doc/guix.texi:25515
+#: doc/guix.texi:29457
 msgid "The @code{(gnu services sysctl)} provides a service to configure kernel parameters at boot."
 msgstr "Das Modul @code{(gnu services sysctl)} stellt einen Dienst zur Verfügung, um Kernelparameter zur Boot-Zeit einzustellen."
 
 #. type: defvr
-#: doc/guix.texi:25516
+#: doc/guix.texi:29458
 #, no-wrap
 msgid "{Scheme Variable} sysctl-service-type"
 msgstr "{Scheme-Variable} sysctl-service-type"
 
 #. type: defvr
-#: doc/guix.texi:25520
+#: doc/guix.texi:29462
 msgid "The service type for @command{sysctl}, which modifies kernel parameters under @file{/proc/sys/}.  To enable IPv4 forwarding, it can be instantiated as:"
 msgstr "Der Diensttyp für @command{sysctl}, das Kernel-Parameter unter @file{/proc/sys/} anpasst. Um IPv4-Weiterleitung („Forwarding“) zu aktivieren, kann er auf diese Weise instanziiert werden:"
 
 #. type: lisp
-#: doc/guix.texi:25525
+#: doc/guix.texi:29467
 #, no-wrap
 msgid ""
 "(service sysctl-service-type\n"
@@ -47683,441 +54681,452 @@ msgstr ""
 "           (settings '((\"net.ipv4.ip_forward\" . \"1\")))))\n"
 
 #. type: deftp
-#: doc/guix.texi:25528
+#: doc/guix.texi:29470
 #, no-wrap
 msgid "{Data Type} sysctl-configuration"
 msgstr "{Datentyp} sysctl-configuration"
 
 #. type: deftp
-#: doc/guix.texi:25530
+#: doc/guix.texi:29472
 msgid "The data type representing the configuration of @command{sysctl}."
 msgstr "Der Datentyp, der die Konfiguration von @command{sysctl} repräsentiert."
 
 #. type: item
-#: doc/guix.texi:25532
+#: doc/guix.texi:29474
 #, no-wrap
 msgid "@code{sysctl} (default: @code{(file-append procps \"/sbin/sysctl\"})"
 msgstr "@code{sysctl} (Vorgabe: @code{(file-append procps \"/sbin/sysctl\"})"
 
 #. type: table
-#: doc/guix.texi:25534
+#: doc/guix.texi:29476
 msgid "The @command{sysctl} executable to use."
 msgstr "Die ausführbare Datei für @command{sysctl}, die benutzt werden soll."
 
 #. type: item
-#: doc/guix.texi:25535
+#: doc/guix.texi:29477
 #, no-wrap
 msgid "@code{settings} (default: @code{'()})"
 msgstr "@code{settings} (Vorgabe: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:25537
+#: doc/guix.texi:29479
 msgid "An association list specifies kernel parameters and their values."
 msgstr "Eine assoziative Liste, die Kernel-Parameter und ihre Werte festlegt."
 
 #. type: cindex
-#: doc/guix.texi:25540
+#: doc/guix.texi:29482
 #, no-wrap
 msgid "pcscd"
 msgstr "pcscd"
 
 #. type: subsubheading
-#: doc/guix.texi:25541
+#: doc/guix.texi:29483
 #, no-wrap
 msgid "PC/SC Smart Card Daemon Service"
 msgstr "PC/SC-Smart-Card-Daemon-Dienst"
 
 #. type: Plain text
-#: doc/guix.texi:25548
+#: doc/guix.texi:29490
 msgid "The @code{(gnu services security-token)} module provides the following service to run @command{pcscd}, the PC/SC Smart Card Daemon.  @command{pcscd} is the daemon program for pcsc-lite and the MuscleCard framework. It is a resource manager that coordinates communications with smart card readers, smart cards and cryptographic tokens that are connected to the system."
 msgstr "Das Modul @code{(gnu services security-token)} stellt den folgenden Dienst zur Verfügung, um @command{pcscd} auszuführen, den PC/SC-Smart-Card-Daemon. @command{pcscd} ist das Daemonprogramm für die Rahmensysteme pcsc-lite und MuscleCard. Es handelt sich um einen Ressourcenverwaltungsdienst, der die Kommunikation mit Smart-Card-Lesegeräten, Smart Cards und kryptographischen Tokens steuert, die mit dem System verbunden sind."
 
 #. type: defvr
-#: doc/guix.texi:25549
+#: doc/guix.texi:29491
 #, no-wrap
 msgid "{Scheme Variable} pcscd-service-type"
 msgstr "{Scheme-Variable} pcscd-service-type"
 
 #. type: defvr
-#: doc/guix.texi:25553
+#: doc/guix.texi:29495
 msgid "Service type for the @command{pcscd} service.  Its value must be a @code{pcscd-configuration} object.  To run pcscd in the default configuration, instantiate it as:"
 msgstr "Diensttyp für den @command{pcscd}-Dienst. Als Wert muss ein @code{pcscd-configuration}-Objekt angegeben werden. Um pcscd mit seiner Vorgabekonfiguration auszuführen, instanziieren Sie ihn als:"
 
 #. type: lisp
-#: doc/guix.texi:25556
+#: doc/guix.texi:29498
 #, no-wrap
 msgid "(service pcscd-service-type)\n"
 msgstr "(service pcscd-service-type)\n"
 
 #. type: deftp
-#: doc/guix.texi:25559
+#: doc/guix.texi:29501
 #, no-wrap
 msgid "{Data Type} pcscd-configuration"
 msgstr "{Datentyp} pcscd-configuration"
 
 #. type: deftp
-#: doc/guix.texi:25561
+#: doc/guix.texi:29503
 msgid "The data type representing the configuration of @command{pcscd}."
 msgstr "Repräsentiert die Konfiguration von @command{pcscd}."
 
 #. type: item
-#: doc/guix.texi:25563
+#: doc/guix.texi:29505
 #, no-wrap
 msgid "@code{pcsc-lite} (default: @code{pcsc-lite})"
 msgstr "@code{pcsc-lite} (Vorgabe: @code{pcsc-lite})"
 
 #. type: table
-#: doc/guix.texi:25565
+#: doc/guix.texi:29507
 msgid "The pcsc-lite package that provides pcscd."
 msgstr "Das „pcsc-lite“-Paket, das pcscd zur Verfügung stellt."
 
 #. type: item
-#: doc/guix.texi:25565
+#: doc/guix.texi:29507
 #, no-wrap
 msgid "@code{usb-drivers} (default: @code{(list ccid)})"
 msgstr "@code{usb-drivers} (Vorgabe: @code{(list ccid)})"
 
 #. type: table
-#: doc/guix.texi:25568
+#: doc/guix.texi:29510
 msgid "List of packages that provide USB drivers to pcscd. Drivers are expected to be under @file{pcsc/drivers} in the store directory of the package."
 msgstr "Die Liste der Pakete, die USB-Treiber für pcscd zur Verfügung stellen. Es wird erwartet, dass sich Treiber unter @file{pcsc/drivers} innerhalb des Store-Verzeichnisses des Pakets befinden."
 
 #. type: cindex
-#: doc/guix.texi:25571
+#: doc/guix.texi:29513
 #, no-wrap
 msgid "lirc"
 msgstr "lirc"
 
 #. type: subsubheading
-#: doc/guix.texi:25572
+#: doc/guix.texi:29514
 #, no-wrap
 msgid "Lirc Service"
 msgstr "Lirc-Dienst"
 
 #. type: Plain text
-#: doc/guix.texi:25575
+#: doc/guix.texi:29517
 msgid "The @code{(gnu services lirc)} module provides the following service."
 msgstr "Das Modul @code{(gnu services lirc)} stellt den folgenden Dienst zur Verfügung."
 
 #. type: deffn
-#: doc/guix.texi:25576
+#: doc/guix.texi:29518
 #, no-wrap
 msgid "{Scheme Procedure} lirc-service [#:lirc lirc] @"
 msgstr "{Scheme-Prozedur} lirc-service [#:lirc lirc] @"
 
 #. type: deffn
-#: doc/guix.texi:25581
+#: doc/guix.texi:29523
 msgid "[#:device #f] [#:driver #f] [#:config-file #f] @ [#:extra-options '()] Return a service that runs @url{http://www.lirc.org,LIRC}, a daemon that decodes infrared signals from remote controls."
 msgstr "[#:device #f] [#:driver #f] [#:config-file #f] @ [#:extra-options '()] Liefert einen Dienst, der @url{http://www.lirc.org,LIRC} ausführt, einen Dienst zum Dekodieren von Infrarot-Signalen aus Fernbedienungen."
 
 #. type: deffn
-#: doc/guix.texi:25585
+#: doc/guix.texi:29527
 msgid "Optionally, @var{device}, @var{driver} and @var{config-file} (configuration file name) may be specified.  See @command{lircd} manual for details."
 msgstr "Optional können @var{device} (Gerät), @var{driver} (Treiber) und @var{config-file} (Name der Konfigurationsdatei) festgelegt werden. Siehe das Handbuch von @command{lircd} für Details."
 
 #. type: deffn
-#: doc/guix.texi:25588
+#: doc/guix.texi:29530
 msgid "Finally, @var{extra-options} is a list of additional command-line options passed to @command{lircd}."
 msgstr "Schließlich enthält @var{extra-options} eine Liste zusätzlicher Befehlszeilenoptionen, die an @command{lircd} übergeben werden."
 
 #. type: cindex
-#: doc/guix.texi:25590
+#: doc/guix.texi:29532
 #, no-wrap
 msgid "spice"
 msgstr "spice"
 
 #. type: subsubheading
-#: doc/guix.texi:25591
+#: doc/guix.texi:29533
 #, no-wrap
 msgid "Spice Service"
 msgstr "Spice-Dienst"
 
 #. type: Plain text
-#: doc/guix.texi:25594
+#: doc/guix.texi:29536
 msgid "The @code{(gnu services spice)} module provides the following service."
 msgstr "Das Modul @code{(gnu services spice)} stellt den folgenden Dienst bereit."
 
 #. type: deffn
-#: doc/guix.texi:25595
+#: doc/guix.texi:29537
 #, no-wrap
 msgid "{Scheme Procedure} spice-vdagent-service [#:spice-vdagent]"
 msgstr "{Scheme-Prozedur} spice-vdagent-service [#:spice-vdagent]"
 
 #. type: deffn
-#: doc/guix.texi:25599
+#: doc/guix.texi:29541
 msgid "Returns a service that runs @url{https://www.spice-space.org,VDAGENT}, a daemon that enables sharing the clipboard with a vm and setting the guest display resolution when the graphical console window resizes."
 msgstr "Liefert einen Dienst, der @url{https://www.spice-space.org,VDAGENT} ausführt, einen Daemon, um die Zwischenablage mit einer virtuellen Maschine zu teilen und die Auflösung des Anzeigegeräts des Gastsystems umzustellen, wenn sich die Größe des grafischen Konsolenfensters ändert."
 
 #. type: cindex
-#: doc/guix.texi:25601
+#: doc/guix.texi:29543
 #, no-wrap
 msgid "inputattach"
 msgstr "inputattach"
 
 #. type: subsubheading
-#: doc/guix.texi:25602
+#: doc/guix.texi:29544
 #, no-wrap
 msgid "inputattach Service"
 msgstr "inputattach-Dienst"
 
 #. type: cindex
-#: doc/guix.texi:25604
+#: doc/guix.texi:29546
 #, no-wrap
 msgid "tablet input, for Xorg"
 msgstr "Tablett-Eingaben, für Xorg"
 
 #. type: cindex
-#: doc/guix.texi:25605
+#: doc/guix.texi:29547
 #, no-wrap
 msgid "touchscreen input, for Xorg"
 msgstr "Tastbildschirm-Eingaben, für Xorg"
 
 #. type: Plain text
-#: doc/guix.texi:25609
+#: doc/guix.texi:29551
 msgid "The @uref{https://linuxwacom.github.io/, inputattach} service allows you to use input devices such as Wacom tablets, touchscreens, or joysticks with the Xorg display server."
 msgstr "Der @uref{https://linuxwacom.github.io/, inputattach-Dienst} macht es Ihnen möglich, Eingabegeräte wie Wacom-Tabletts, Tastbildschirme („Touchscreens“) oder Joysticks mit dem Xorg-Anzeigeserver zu benutzen."
 
 #. type: deffn
-#: doc/guix.texi:25610
+#: doc/guix.texi:29552
 #, no-wrap
 msgid "{Scheme Variable} inputattach-service-type"
 msgstr "{Scheme-Variable} inputattach-service-type"
 
 #. type: deffn
-#: doc/guix.texi:25613
+#: doc/guix.texi:29555
 msgid "Type of a service that runs @command{inputattach} on a device and dispatches events from it."
 msgstr "Der Diensttyp für den Dienst, der @command{inputattach} auf einem Gerät ausführt und Ereignisse davon weiterleitet."
 
 #. type: deftp
-#: doc/guix.texi:25615
+#: doc/guix.texi:29557
 #, no-wrap
 msgid "{Data Type} inputattach-configuration"
 msgstr "{Datentyp} inputattach-configuration"
 
 #. type: item
-#: doc/guix.texi:25617
+#: doc/guix.texi:29559
 #, no-wrap
 msgid "@code{device-type} (default: @code{\"wacom\"})"
 msgstr "@code{device-type} (Vorgabe: @code{\"wacom\"})"
 
 #. type: table
-#: doc/guix.texi:25620
+#: doc/guix.texi:29562
 msgid "The type of device to connect to.  Run @command{inputattach --help}, from the @code{inputattach} package, to see the list of supported device types."
 msgstr "Der Typ des Geräts, mit dem eine Verbindung hergestellt werden soll. Führen Sie @command{inputattach --help} aus dem @code{inputattach}-Paket aus, um eine Liste unterstützter Gerätetypen zu sehen."
 
 #. type: item
-#: doc/guix.texi:25621
+#: doc/guix.texi:29563
 #, no-wrap
 msgid "@code{device} (default: @code{\"/dev/ttyS0\"})"
 msgstr "@code{device} (Vorgabe: @code{\"/dev/ttyS0\"})"
 
 #. type: table
-#: doc/guix.texi:25623
+#: doc/guix.texi:29565
 msgid "The device file to connect to the device."
 msgstr "Die Gerätedatei, um sich mit dem Gerät zu verbinden."
 
 #. type: table
-#: doc/guix.texi:25627
+#: doc/guix.texi:29569
 msgid "Baud rate to use for the serial connection.  Should be a number or @code{#f}."
 msgstr "Welche Baudrate für die serielle Verbindung benutzt werden soll. Es sollte eine Zahl oder @code{#f} angegeben werden."
 
 #. type: item
-#: doc/guix.texi:25628
+#: doc/guix.texi:29570
 #, no-wrap
 msgid "@code{log-file} (default: @code{#f})"
 msgstr "@code{log-file} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:25630
+#: doc/guix.texi:29572
 msgid "If true, this must be the name of a file to log messages to."
 msgstr "Wenn es wahr ist, muss es der Name einer Datei sein, in die Protokollnachrichten geschrieben werden sollen."
 
-#. type: subsection
-#: doc/guix.texi:25633
+#. type: subsubheading
+#: doc/guix.texi:29575
 #, no-wrap
-msgid "Dictionary Services"
-msgstr "Wörterbuchdienste"
+msgid "Dictionary Service"
+msgstr "Wörterbuchdienst"
 
 #. type: cindex
-#: doc/guix.texi:25634
+#: doc/guix.texi:29576
 #, no-wrap
 msgid "dictionary"
 msgstr "Wörterbuch"
 
 #. type: Plain text
-#: doc/guix.texi:25636
+#: doc/guix.texi:29578
 msgid "The @code{(gnu services dict)} module provides the following service:"
 msgstr "Das Modul @code{(gnu services dict)} stellt den folgenden Dienst zur Verfügung:"
 
+#. type: defvr
+#: doc/guix.texi:29579
+#, no-wrap
+msgid "{Scheme Variable} dicod-service-type"
+msgstr "{Scheme-Variable} dicod-service-type"
+
+#. type: defvr
+#: doc/guix.texi:29582
+msgid "This is the type of the service that runs the @command{dicod} daemon, an implementation of DICT server (@pxref{Dicod,,, dico, GNU Dico Manual})."
+msgstr "Dies ist der Diensttyp für einen Dienst, der den @command{dicod}-Daemon ausführt. Dabei handelt es sich um eine Implementierung eines DICT-Servers (siehe das @ref{Dicod,,, dico, Handbuch von GNU Dico})."
+
 #. type: deffn
-#: doc/guix.texi:25637
+#: doc/guix.texi:29584
 #, no-wrap
 msgid "{Scheme Procedure} dicod-service [#:config (dicod-configuration)]"
 msgstr "{Scheme-Prozedur} dicod-service [#:config (dicod-configuration)]"
 
 #. type: deffn
-#: doc/guix.texi:25640
+#: doc/guix.texi:29587
 msgid "Return a service that runs the @command{dicod} daemon, an implementation of DICT server (@pxref{Dicod,,, dico, GNU Dico Manual})."
 msgstr "Liefert einen Dienst, der den @command{dicod}-Daemon ausführt. Dabei handelt es sich um eine Implementierung eines DICT-Servers (siehe das @ref{Dicod,,, dico, Handbuch von GNU Dico})."
 
 #. type: deffn
-#: doc/guix.texi:25644
+#: doc/guix.texi:29591
 msgid "The optional @var{config} argument specifies the configuration for @command{dicod}, which should be a @code{<dicod-configuration>} object, by default it serves the GNU Collaborative International Dictionary of English."
 msgstr "Das optionale Argument @var{config} gibt die Konfiguration für @command{dicod} an, welche ein @code{<dicod-configuration>}-Objekt sein sollte. Nach Vorgabe wird als Wörterbuch das „GNU Collaborative International Dictionary of English“ angeboten."
 
 #. type: deffn
-#: doc/guix.texi:25648
+#: doc/guix.texi:29595
 msgid "You can add @command{open localhost} to your @file{~/.dico} file to make @code{localhost} the default server for @command{dico} client (@pxref{Initialization File,,, dico, GNU Dico Manual})."
 msgstr "Sie können in Ihre @file{~/.dico}-Datei @command{open localhost} eintragen, damit @code{localhost} zum voreingestellten Server des @command{dico}-Clients wird (siehe das @ref{Initialization File,,, dico, Handbuch von GNU Dico})."
 
 #. type: deftp
-#: doc/guix.texi:25650
+#: doc/guix.texi:29597
 #, no-wrap
 msgid "{Data Type} dicod-configuration"
 msgstr "{Datentyp} dicod-configuration"
 
 #. type: deftp
-#: doc/guix.texi:25652
+#: doc/guix.texi:29599
 msgid "Data type representing the configuration of dicod."
 msgstr "Der Datentyp, der die Konfiguration von dicod repräsentiert."
 
 #. type: item
-#: doc/guix.texi:25654
+#: doc/guix.texi:29601
 #, no-wrap
 msgid "@code{dico} (default: @var{dico})"
 msgstr "@code{dico} (Vorgabe: @var{dico})"
 
 #. type: table
-#: doc/guix.texi:25656
+#: doc/guix.texi:29603
 msgid "Package object of the GNU Dico dictionary server."
 msgstr "Paketobjekt des GNU-Dico-Wörterbuchservers."
 
 #. type: item
-#: doc/guix.texi:25657
+#: doc/guix.texi:29604
 #, no-wrap
 msgid "@code{interfaces} (default: @var{'(\"localhost\")})"
 msgstr "@code{interfaces} (Vorgabe: @var{'(\"localhost\")})"
 
 #. type: table
-#: doc/guix.texi:25661
+#: doc/guix.texi:29608
 msgid "This is the list of IP addresses and ports and possibly socket file names to listen to (@pxref{Server Settings, @code{listen} directive,, dico, GNU Dico Manual})."
 msgstr "Hierfür muss die Liste der IP-Adressen, Ports und möglicherweise auch Socket-Dateinamen angegeben werden, auf die gelauscht werden soll (siehe @ref{Server Settings, @code{listen} directive,, dico, Handbuch von GNU Dico})."
 
 #. type: item
-#: doc/guix.texi:25662
+#: doc/guix.texi:29609
 #, no-wrap
 msgid "@code{handlers} (default: @var{'()})"
 msgstr "@code{handlers} (Vorgabe: @var{'()})"
 
 #. type: table
-#: doc/guix.texi:25664
+#: doc/guix.texi:29611
 msgid "List of @code{<dicod-handler>} objects denoting handlers (module instances)."
 msgstr "Liste der @code{<dicod-handler>}-Objekte, die Handler (Modulinstanzen) bezeichnen."
 
 #. type: item
-#: doc/guix.texi:25665
+#: doc/guix.texi:29612
 #, no-wrap
 msgid "@code{databases} (default: @var{(list %dicod-database:gcide)})"
 msgstr "@code{databases} (Vorgabe: @var{(list %dicod-database:gcide)})"
 
 #. type: table
-#: doc/guix.texi:25667
+#: doc/guix.texi:29614
 msgid "List of @code{<dicod-database>} objects denoting dictionaries to be served."
 msgstr "Liste der @code{<dicod-database>}-Objekte, die anzubietende Wörterbücher bezeichnen."
 
 #. type: deftp
-#: doc/guix.texi:25670
+#: doc/guix.texi:29617
 #, no-wrap
 msgid "{Data Type} dicod-handler"
 msgstr "{Datentyp} dicod-handler"
 
 #. type: deftp
-#: doc/guix.texi:25672
+#: doc/guix.texi:29619
 msgid "Data type representing a dictionary handler (module instance)."
 msgstr "Der Datentyp, der einen Wörterbuch-Handler (eine Modulinstanz) repräsentiert."
 
 #. type: table
-#: doc/guix.texi:25676
+#: doc/guix.texi:29623
 msgid "Name of the handler (module instance)."
 msgstr "Der Name des Handlers (der Modulinstanz)."
 
 #. type: item
-#: doc/guix.texi:25677
+#: doc/guix.texi:29624
 #, no-wrap
 msgid "@code{module} (default: @var{#f})"
 msgstr "@code{module} (Vorgabe: @var{#f})"
 
 #. type: table
-#: doc/guix.texi:25681
+#: doc/guix.texi:29628
 msgid "Name of the dicod module of the handler (instance).  If it is @code{#f}, the module has the same name as the handler.  (@pxref{Modules,,, dico, GNU Dico Manual})."
 msgstr "Der Name des dicod-Moduls (der Instanz) des Handlers. Wenn er @code{#f} ist, heißt das, das Modul hat denselben Namen wie der Handler (siehe @ref{Modules,,, dico, Handbuch von GNU Dico})."
 
 #. type: table
-#: doc/guix.texi:25684
+#: doc/guix.texi:29631
 msgid "List of strings or gexps representing the arguments for the module handler"
 msgstr "Liste der Zeichenketten oder G-Ausdrücke, die die Argumente für den Modul-Handler repräsentieren."
 
 #. type: deftp
-#: doc/guix.texi:25687
+#: doc/guix.texi:29634
 #, no-wrap
 msgid "{Data Type} dicod-database"
 msgstr "{Datentyp} dicod-database"
 
 #. type: deftp
-#: doc/guix.texi:25689
+#: doc/guix.texi:29636
 msgid "Data type representing a dictionary database."
 msgstr "Datentyp, der eine Wörterbuchdatenbank repräsentiert."
 
 #. type: table
-#: doc/guix.texi:25693
+#: doc/guix.texi:29640
 msgid "Name of the database, will be used in DICT commands."
 msgstr "Der Name der Datenbank, der in DICT-Befehlen benutzt wird."
 
 #. type: code{#1}
-#: doc/guix.texi:25694
+#: doc/guix.texi:29641
 #, no-wrap
 msgid "handler"
 msgstr "handler"
 
 #. type: table
-#: doc/guix.texi:25697
+#: doc/guix.texi:29644
 msgid "Name of the dicod handler (module instance) used by this database (@pxref{Handlers,,, dico, GNU Dico Manual})."
 msgstr "Der Name des dicod-Handlers (der Modulinstanz), die von dieser Datenbank benutzt wird (siehe @ref{Handlers,,, dico, Handbuch von GNU Dico})."
 
 #. type: item
-#: doc/guix.texi:25698
+#: doc/guix.texi:29645
 #, no-wrap
 msgid "@code{complex?} (default: @var{#f})"
 msgstr "@code{complex?} (Vorgabe: @var{#f})"
 
 #. type: table
-#: doc/guix.texi:25701
+#: doc/guix.texi:29648
 msgid "Whether the database configuration complex.  The complex configuration will need a corresponding @code{<dicod-handler>} object, otherwise not."
 msgstr "Ob die Datenbankkonfiguration komplex ist. In diesem Fall muss für die komplexe Konfiguration auch ein entsprechendes @code{<dicod-handler>}-Objekt existieren, ansonsten nicht."
 
 #. type: table
-#: doc/guix.texi:25705
+#: doc/guix.texi:29652
 msgid "List of strings or gexps representing the arguments for the database (@pxref{Databases,,, dico, GNU Dico Manual})."
 msgstr "Liste der Zeichenketten oder G-Ausdrücke, die die Argumente für die Datenbank repräsentiert (siehe @ref{Databases,,, dico, Handbuch von GNU Dico})."
 
 #. type: defvr
-#: doc/guix.texi:25708
+#: doc/guix.texi:29655
 #, no-wrap
 msgid "{Scheme Variable} %dicod-database:gcide"
 msgstr "{Scheme-Variable} %dicod-database:gcide"
 
 #. type: defvr
-#: doc/guix.texi:25711
+#: doc/guix.texi:29658
 msgid "A @code{<dicod-database>} object serving the GNU Collaborative International Dictionary of English using the @code{gcide} package."
 msgstr "Ein @code{<dicod-database>}-Objekt, um das „GNU Collaborative International Dictionary of English“ anzubieten. Dazu wird das @code{gcide}-Paket benutzt."
 
 #. type: Plain text
-#: doc/guix.texi:25714
+#: doc/guix.texi:29661
 msgid "The following is an example @code{dicod-service} configuration."
 msgstr "Im Folgenden sehen Sie eine Beispielkonfiguration für einen @code{dicod-service}."
 
 #. type: lisp
-#: doc/guix.texi:25729
+#: doc/guix.texi:29676
 #, no-wrap
 msgid ""
 "(dicod-service #:config\n"
@@ -48149,202 +55158,378 @@ msgstr ""
 "                    %dicod-database:gcide))))\n"
 
 #. type: cindex
-#: doc/guix.texi:25731
+#: doc/guix.texi:29678
 #, no-wrap
 msgid "Docker"
 msgstr "Docker"
 
 #. type: subsubheading
-#: doc/guix.texi:25732
+#: doc/guix.texi:29679
 #, no-wrap
 msgid "Docker Service"
 msgstr "Docker-Dienst"
 
 #. type: Plain text
-#: doc/guix.texi:25735
+#: doc/guix.texi:29682
 msgid "The @code{(gnu services docker)} module provides the following services."
 msgstr "Das Modul @code{(gnu services docker)} stellt die folgenden Dienste zur Verfügung."
 
 #. type: defvr
-#: doc/guix.texi:25736
+#: doc/guix.texi:29683
 #, no-wrap
 msgid "{Scheme Variable} docker-service-type"
 msgstr "{Scheme-Variable} docker-service-type"
 
 #. type: defvr
-#: doc/guix.texi:25741
+#: doc/guix.texi:29688
 msgid "This is the type of the service that runs @url{https://www.docker.com,Docker}, a daemon that can execute application bundles (sometimes referred to as ``containers'') in isolated environments."
 msgstr "Dies ist der Diensttyp des Dienstes, um @url{https://www.docker.com,Docker} auszuführen, einen Daemon, der Anwendungsbündel in isolierten Umgebungen ausführen kann (manchmal auch als „Container“ bezeichnet)."
 
 #. type: deftp
-#: doc/guix.texi:25744
+#: doc/guix.texi:29691
 #, no-wrap
 msgid "{Data Type} docker-configuration"
 msgstr "{Datentyp} docker-configuration"
 
 #. type: deftp
-#: doc/guix.texi:25746
+#: doc/guix.texi:29693
 msgid "This is the data type representing the configuration of Docker and Containerd."
 msgstr "Dies ist der Datentyp, der die Konfiguration von Docker und Containerd repräsentiert."
 
 #. type: item
-#: doc/guix.texi:25749
+#: doc/guix.texi:29696
 #, no-wrap
 msgid "@code{package} (default: @code{docker})"
 msgstr "@code{package} (Vorgabe: @code{docker})"
 
 #. type: table
-#: doc/guix.texi:25751
-msgid "The Docker package to use."
-msgstr "Das Docker-Paket, was benutzt werden soll."
+#: doc/guix.texi:29698
+msgid "The Docker daemon package to use."
+msgstr "Das Docker-Daemon-Paket, was benutzt werden soll."
+
+#. type: item
+#: doc/guix.texi:29699
+#, no-wrap
+msgid "@code{package} (default: @code{docker-cli})"
+msgstr "@code{package} (Vorgabe: @code{docker-cli})"
+
+#. type: table
+#: doc/guix.texi:29701
+msgid "The Docker client package to use."
+msgstr "Das Docker-Client-Paket, was benutzt werden soll."
 
 #. type: item
-#: doc/guix.texi:25752
+#: doc/guix.texi:29702
 #, no-wrap
 msgid "@code{containerd} (default: @var{containerd})"
 msgstr "@code{containerd} (Vorgabe: @var{containerd})"
 
 #. type: table
-#: doc/guix.texi:25754
+#: doc/guix.texi:29704
 msgid "The Containerd package to use."
 msgstr "Das Containerd-Paket, was benutzt werden soll."
 
+#. type: item
+#: doc/guix.texi:29705
+#, no-wrap
+msgid "@code{proxy} (default @var{docker-libnetwork-cmd-proxy})"
+msgstr "@code{proxy} (Vorgabe: @var{docker-libnetwork-cmd-proxy})"
+
+#. type: table
+#: doc/guix.texi:29707
+msgid "The Docker user-land networking proxy package to use."
+msgstr "Das Paket des mit Benutzerrechten (im „User-Land“) ausgeführten Docker-Netzwerkproxys, das verwendet werden soll."
+
+#. type: item
+#: doc/guix.texi:29708
+#, no-wrap
+msgid "@code{enable-proxy?} (default @code{#t})"
+msgstr "@code{enable-proxy?} (Vorgabe: @code{#t})"
+
+#. type: table
+#: doc/guix.texi:29710
+msgid "Enable or disable the use of the Docker user-land networking proxy."
+msgstr "Den mit Benutzerrechten (im „User-Land“) ausgeführten Docker-Netzwerkproxy an- oder abschalten."
+
+#. type: item
+#: doc/guix.texi:29711
+#, no-wrap
+msgid "@code{debug?} (default @code{#f})"
+msgstr "@code{debug?} (Vorgabe: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:29713
+msgid "Enable or disable debug output."
+msgstr "Ausgaben zur Fehlersuche an- oder abschalten."
+
+#. type: item
+#: doc/guix.texi:29714
+#, no-wrap
+msgid "@code{enable-iptables?} (default @code{#t})"
+msgstr "@code{enable-iptables?} (Vorgabe: @code{#t})"
+
+#. type: table
+#: doc/guix.texi:29716
+msgid "Enable or disable the addition of iptables rules."
+msgstr "Das Hinzufügen von iptables-Regeln durch Docker an- oder abschalten."
+
 #. type: cindex
-#: doc/guix.texi:25758
+#: doc/guix.texi:29720
+#, no-wrap
+msgid "Singularity, container service"
+msgstr "Singularity, Dienst für Anwendungsbündel/Container"
+
+#. type: defvr
+#: doc/guix.texi:29721
+#, no-wrap
+msgid "{Scheme Variable} singularity-service-type"
+msgstr "{Scheme-Variable} singularity-service-type"
+
+#. type: defvr
+#: doc/guix.texi:29726
+msgid "This is the type of the service that allows you to run @url{https://www.sylabs.io/singularity/, Singularity}, a Docker-style tool to create and run application bundles (aka. ``containers'').  The value for this service is the Singularity package to use."
+msgstr "Dies ist der Diensttyp für den Dienst, mit dem Sie @url{https://www.sylabs.io/singularity/, Singularity} ausführen können, ein Docker-ähnliches Werkzeug, um Anwendungsbündel (auch bekannt als „Container“) auszuführen. Der Wert für diesen Dienst ist das Singularity-Paket, das benutzt werden soll."
+
+#. type: defvr
+#: doc/guix.texi:29730
+msgid "The service does not install a daemon; instead, it installs helper programs as setuid-root (@pxref{Setuid Programs}) such that unprivileged users can invoke @command{singularity run} and similar commands."
+msgstr "Der Dienst installiert keinen Daemon, sondern er installiert Hilfsprogramme als setuid-root (siehe @ref{Setuid Programs}), damit auch „unprivilegierte“ Nutzer ohne besondere Berechtigungen @command{singularity run} und ähnliche Befehle ausführen können."
+
+#. type: cindex
+#: doc/guix.texi:29732
 #, no-wrap
 msgid "Audit"
 msgstr "Audit"
 
 #. type: subsubheading
-#: doc/guix.texi:25759
+#: doc/guix.texi:29733
 #, no-wrap
 msgid "Auditd Service"
 msgstr "Auditd-Dienst"
 
 #. type: Plain text
-#: doc/guix.texi:25762
+#: doc/guix.texi:29736
 msgid "The @code{(gnu services auditd)} module provides the following service."
 msgstr "Das Modul @code{(gnu services auditd)} stellt den folgenden Dienst zur Verfügung."
 
 #. type: defvr
-#: doc/guix.texi:25763
+#: doc/guix.texi:29737
 #, no-wrap
 msgid "{Scheme Variable} auditd-service-type"
 msgstr "{Scheme-Variable} auditd-service-type"
 
 #. type: defvr
-#: doc/guix.texi:25768
+#: doc/guix.texi:29742
 msgid "This is the type of the service that runs @url{https://people.redhat.com/sgrubb/audit/,auditd}, a daemon that tracks security-relevant information on your system."
 msgstr "Dies ist der Diensttyp des Dienstes, mit dem @url{https://people.redhat.com/sgrubb/audit/,auditd} ausgeführt wird, ein Daemon, der sicherheitsrelevante Informationen auf Ihrem System sammelt."
 
 #. type: defvr
-#: doc/guix.texi:25770
+#: doc/guix.texi:29744
 msgid "Examples of things that can be tracked:"
 msgstr "Beispiele für Dinge, über die Informationen gesammelt werden sollen:"
 
 #. type: enumerate
-#: doc/guix.texi:25774
+#: doc/guix.texi:29748
 msgid "File accesses"
 msgstr "Dateizugriffe"
 
 #. type: enumerate
-#: doc/guix.texi:25776
+#: doc/guix.texi:29750
 msgid "System calls"
 msgstr "Betriebssystemaufrufe („System Calls“)"
 
 #. type: enumerate
-#: doc/guix.texi:25778
+#: doc/guix.texi:29752
 msgid "Invoked commands"
 msgstr "Aufgerufene Befehle"
 
 #. type: enumerate
-#: doc/guix.texi:25780
+#: doc/guix.texi:29754
 msgid "Failed login attempts"
 msgstr "Fehlgeschlagene Anmeldeversuche"
 
 #. type: enumerate
-#: doc/guix.texi:25782
+#: doc/guix.texi:29756
 msgid "Firewall filtering"
 msgstr "Filterung durch die Firewall"
 
 #. type: enumerate
-#: doc/guix.texi:25784
+#: doc/guix.texi:29758
 msgid "Network access"
 msgstr "Netzwerkzugriff"
 
 #. type: defvr
-#: doc/guix.texi:25793
-msgid "@command{auditctl} from the @code{audit} package can be used in order to add or remove events to be tracked (until the next reboot).  In order to permanently track events, put the command line arguments of auditctl into @file{/etc/audit/audit.rules}.  @command{aureport} from the @code{audit} package can be used in order to view a report of all recorded events.  The audit daemon usually logs into the directory @file{/var/log/audit}."
-msgstr "@command{auditctl} aus dem @code{audit}-Paket kann benutzt werden, um zu überwachende Ereignisse (bis zum nächsten Neustart) hinzuzufügen oder zu entfernen. Um über Ereignisse dauerhaft Informationen sammeln zu lassen, schreiben Sie die Befehlszeilenargumente für auditctl in @file{/etc/audit/audit.rules}. @command{aureport} aus dem @code{audit}-Paket kann benutzt werden, um einen Bericht über alle aufgezeichneten Ereignisse anzuzeigen. Normalerweise speichert der Audit-Daemon Protokolle im Verzeichnis @file{/var/log/audit}."
+#: doc/guix.texi:29769
+msgid "@command{auditctl} from the @code{audit} package can be used in order to add or remove events to be tracked (until the next reboot).  In order to permanently track events, put the command line arguments of auditctl into a file called @code{audit.rules} in the configuration directory (see below).  @command{aureport} from the @code{audit} package can be used in order to view a report of all recorded events.  The audit daemon by default logs into the file @file{/var/log/audit.log}."
+msgstr "@command{auditctl} aus dem @code{audit}-Paket kann benutzt werden, um zu überwachende Ereignisse (bis zum nächsten Neustart) hinzuzufügen oder zu entfernen. Um über Ereignisse dauerhaft Informationen sammeln zu lassen, schreiben Sie die Befehlszeilenargumente für auditctl in eine Datei namens @file{audit.rules} im Verzeichnis für Konfigurationen (siehe unten). @command{aureport} aus dem @code{audit}-Paket kann benutzt werden, um einen Bericht über alle aufgezeichneten Ereignisse anzuzeigen. Nach Vorgabe speichert der Audit-Daemon Protokolle in die Datei @file{/var/log/audit.log}."
 
 #. type: deftp
-#: doc/guix.texi:25796
+#: doc/guix.texi:29772
 #, no-wrap
 msgid "{Data Type} auditd-configuration"
 msgstr "{Datentyp} auditd-configuration"
 
 #. type: deftp
-#: doc/guix.texi:25798
+#: doc/guix.texi:29774
 msgid "This is the data type representing the configuration of auditd."
 msgstr "Dies ist der Datentyp, der die Konfiguration von auditd repräsentiert."
 
 #. type: item
-#: doc/guix.texi:25801
+#: doc/guix.texi:29777
 #, no-wrap
 msgid "@code{audit} (default: @code{audit})"
 msgstr "@code{audit} (Vorgabe: @code{audit})"
 
 #. type: table
-#: doc/guix.texi:25803
+#: doc/guix.texi:29779
 msgid "The audit package to use."
 msgstr "Das zu verwendende audit-Paket."
 
-#. type: defvr
-#: doc/guix.texi:25807
+#. type: item
+#: doc/guix.texi:29780
 #, no-wrap
-msgid "{Scheme Variable} singularity-service-type"
-msgstr "{Scheme-Variable} singularity-service-type"
+msgid "@code{configuration-directory} (default: @code{%default-auditd-configuration-directory})"
+msgstr "@code{configuration-directory} (Vorgabe: @code{%default-auditd-configuration-directory})"
+
+#. type: table
+#: doc/guix.texi:29784
+msgid "The directory containing the configuration file for the audit package, which must be named @code{auditd.conf}, and optionally some audit rules to instantiate on startup."
+msgstr "Das Verzeichnis mit der Konfigurationsdatei für das audit-Paket. Sie muss den Namen @code{auditd.conf} tragen und optional kann sie ein paar Audit-Regeln enthalten, die beim Start instanziierrt werden sollen."
+
+#. type: cindex
+#: doc/guix.texi:29788
+#, no-wrap
+msgid "rshiny"
+msgstr "rshiny"
+
+#. type: subsubheading
+#: doc/guix.texi:29789
+#, no-wrap
+msgid "R-Shiny service"
+msgstr "R-Shiny-Dienst"
+
+#. type: Plain text
+#: doc/guix.texi:29792
+msgid "The @code{(gnu services science)} module provides the following service."
+msgstr "Das Modul @code{(gnu services science)} stellt den folgenden Dienst bereit."
 
 #. type: defvr
-#: doc/guix.texi:25812
-msgid "This is the type of the service that allows you to run @url{https://www.sylabs.io/singularity/, Singularity}, a Docker-style tool to create and run application bundles (aka. ``containers'').  The value for this service is the Singularity package to use."
-msgstr "Dies ist der Diensttyp für den Dienst, mit dem Sie @url{https://www.sylabs.io/singularity/, Singularity} ausführen können, ein Docker-ähnliches Werkzeug, um Anwendungsbündel (auch bekannt als „Container“) auszuführen. Der Wert für diesen Dienst ist das Singularity-Paket, das benutzt werden soll."
+#: doc/guix.texi:29793
+#, no-wrap
+msgid "{Scheme Variable} rshiny-service-type"
+msgstr "{Scheme-Variable} rshiny-service-type"
 
 #. type: defvr
-#: doc/guix.texi:25816
-msgid "The service does not install a daemon; instead, it installs helper programs as setuid-root (@pxref{Setuid Programs}) such that unprivileged users can invoke @command{singularity run} and similar commands."
-msgstr "Der Dienst installiert keinen Daemon, sondern er installiert Hilfsprogramme als setuid-root (siehe @ref{Setuid Programs}), damit auch „unprivilegierte“ Nutzer ohne besondere Berechtigungen @command{singularity run} und ähnliche Befehle ausführen können."
+#: doc/guix.texi:29798
+msgid "This is a type of service which is used to run a webapp created with @code{r-shiny}.  This service sets the @env{R_LIBS_USER} environment variable and runs the provided script to call @code{runApp}."
+msgstr "Dies ist der Diensttyp eines Dienstes, um eine mit @code{r-shiny} erzeugte Web-Anwendung („Webapp“) auszuführen. Dieser Dienst legt die Umgebungsvariable @env{R_LIBS_USER} fest und führt das eingestellte Skript aus, um @code{runApp} aufzurufen."
+
+#. type: deftp
+#: doc/guix.texi:29799
+#, no-wrap
+msgid "{Data Type} rshiny-configuration"
+msgstr "{Datentyp} rshiny-configuration"
+
+#. type: deftp
+#: doc/guix.texi:29801
+msgid "This is the data type representing the configuration of rshiny."
+msgstr "Dies ist der Datentyp, der die Konfiguration von rshiny repräsentiert."
+
+#. type: item
+#: doc/guix.texi:29804
+#, no-wrap
+msgid "@code{package} (default: @code{r-shiny})"
+msgstr "@code{package} (Vorgabe: @code{r-shiny})"
+
+#. type: table
+#: doc/guix.texi:29806
+msgid "The package to use."
+msgstr "Das zu benutzende Paket."
+
+#. type: item
+#: doc/guix.texi:29807
+#, no-wrap
+msgid "@code{binary} (defaunlt @code{\"rshiny\"})"
+msgstr "@code{binary} (Vorgabe: @code{\"rshiny\"})"
+
+#. type: table
+#: doc/guix.texi:29810
+msgid "The name of the binary or shell script located at @code{package/bin/} to run when the service is run."
+msgstr "Der Name der Binärdatei oder des Shell-Skripts, das sich in @code{Paket/bin/} befindet und beim Starten des Dienstes ausgeführt werden soll."
+
+#. type: table
+#: doc/guix.texi:29812
+msgid "The common way to create this file is as follows:"
+msgstr "Die übliche Art, diese Datei erzeugen zu lassen, ist folgende:"
+
+#. type: lisp
+#: doc/guix.texi:29830
+#, no-wrap
+msgid ""
+"@dots{}\n"
+"(let* ((out       (assoc-ref %outputs \"out\"))\n"
+"       (targetdir (string-append out \"/share/\" ,name))\n"
+"       (app       (string-append out \"/bin/\" ,name))\n"
+"       (Rbin      (string-append (assoc-ref %build-inputs \"r-min\")\n"
+"                                 \"/bin/Rscript\")))\n"
+"  ;; @dots{}\n"
+"  (mkdir-p (string-append out \"/bin\"))\n"
+"  (call-with-output-file app\n"
+"    (lambda (port)\n"
+"      (format port\n"
+"\"#!~a\n"
+"library(shiny)\n"
+"setwd(\\\"~a\\\")\n"
+"runApp(launch.browser=0, port=4202)~%\\n\"\n"
+"      Rbin targetdir))))\n"
+msgstr ""
+"…\n"
+"(let* ((out       (assoc-ref %outputs \"out\"))\n"
+"       (targetdir (string-append out \"/share/\" ,name))\n"
+"       (app       (string-append out \"/bin/\" ,name))\n"
+"       (Rbin      (string-append (assoc-ref %build-inputs \"r-min\")\n"
+"                                 \"/bin/Rscript\")))\n"
+"  ;; …\n"
+"  (mkdir-p (string-append out \"/bin\"))\n"
+"  (call-with-output-file app\n"
+"    (lambda (port)\n"
+"      (format port\n"
+"\"#!~a\n"
+"library(shiny)\n"
+"setwd(\\\"~a\\\")\n"
+"runApp(launch.browser=0, port=4202)~%\\n\"\n"
+"      Rbin targetdir))))\n"
 
 #. type: cindex
-#: doc/guix.texi:25818
+#: doc/guix.texi:29836
 #, no-wrap
 msgid "Nix"
 msgstr "Nix"
 
 #. type: subsubheading
-#: doc/guix.texi:25819
+#: doc/guix.texi:29837
 #, no-wrap
 msgid "Nix service"
 msgstr "Nix-Dienst"
 
 #. type: Plain text
-#: doc/guix.texi:25822
+#: doc/guix.texi:29840
 msgid "The @code{(gnu services nix)} module provides the following service."
 msgstr "Das Modul @code{(gnu services nix)} stellt den folgenden Dienst zur Verfügung:"
 
 #. type: defvr
-#: doc/guix.texi:25823
+#: doc/guix.texi:29841
 #, no-wrap
 msgid "{Scheme Variable} nix-service-type"
 msgstr "{Scheme-Variable} nix-service-type"
 
 #. type: defvr
-#: doc/guix.texi:25828
+#: doc/guix.texi:29846
 msgid "This is the type of the service that runs build daemon of the @url{https://nixos.org/nix/, Nix} package manager.  Here is an example showing how to use it:"
 msgstr "Dies ist der Diensttyp für den Dienst, der den Erstellungs-Daemon der @url{https://nixos.org/nix/, Nix-Paketverwaltung} ausführt. Hier ist ein Beispiel, wie man ihn benutzt:"
 
 #. type: lisp
-#: doc/guix.texi:25833
+#: doc/guix.texi:29851
 #, no-wrap
 msgid ""
 "(use-modules (gnu))\n"
@@ -48358,7 +55543,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:25838
+#: doc/guix.texi:29856
 #, no-wrap
 msgid ""
 "(operating-system\n"
@@ -48374,7 +55559,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:25841
+#: doc/guix.texi:29859
 #, no-wrap
 msgid ""
 "  (services (append (list (service nix-service-type))\n"
@@ -48384,29 +55569,29 @@ msgstr ""
 "                    %base-services)))\n"
 
 #. type: defvr
-#: doc/guix.texi:25844
+#: doc/guix.texi:29862
 msgid "After @command{guix system reconfigure} configure Nix for your user:"
 msgstr "Nach @command{guix system reconfigure} können Sie Nix für Ihr Benutzerkonto konfigurieren:"
 
 #. type: item
-#: doc/guix.texi:25846
+#: doc/guix.texi:29864
 #, no-wrap
 msgid "Add a Nix channel and update it.  See"
 msgstr "Fügen Sie einen Nix-Kanal ein und aktualisieren Sie ihn. Siehe"
 
 #. type: itemize
-#: doc/guix.texi:25848
+#: doc/guix.texi:29866
 msgid "@url{https://nixos.org/nix/manual/, Nix Package Manager Guide}."
 msgstr "@url{https://nixos.org/nix/manual/, Nix Package Manager Guide}."
 
 #. type: item
-#: doc/guix.texi:25849
+#: doc/guix.texi:29867
 #, no-wrap
 msgid "Create a symlink to your profile and activate Nix profile:"
 msgstr "Erzeugen Sie eine symbolische Verknüpfung zu Ihrem Profil und aktivieren Sie das Nix-Profil:"
 
 #. type: example
-#: doc/guix.texi:25855
+#: doc/guix.texi:29873
 #, no-wrap
 msgid ""
 "$ ln -s \"/nix/var/nix/profiles/per-user/$USER/profile\" ~/.nix-profile\n"
@@ -48415,182 +55600,231 @@ msgstr ""
 "$ ln -s \"/nix/var/nix/profiles/per-user/$USER/profile\" ~/.nix-profile\n"
 "$ source /run/current-system/profile/etc/profile.d/nix.sh\n"
 
+#. type: deftp
+#: doc/guix.texi:29877
+#, no-wrap
+msgid "{Data Type} nix-configuration"
+msgstr "{Datentyp} nix-configuration"
+
+#. type: deftp
+#: doc/guix.texi:29879
+msgid "This data type represents the configuration of the Nix daemon."
+msgstr "Dieser Datentyp repräsentiert die Konfiguration des Nix-Daemons."
+
+#. type: item
+#: doc/guix.texi:29881
+#, no-wrap
+msgid "@code{nix} (default: @code{nix})"
+msgstr "@code{nix} (Vorgabe: @code{nix})"
+
+#. type: table
+#: doc/guix.texi:29883
+msgid "The Nix package to use."
+msgstr "Das zu verwendende Nix-Paket."
+
+#. type: item
+#: doc/guix.texi:29884
+#, no-wrap
+msgid "@code{sandbox} (default: @code{#t})"
+msgstr "@code{sandbox} (Vorgabe: @code{#t})"
+
+#. type: table
+#: doc/guix.texi:29886
+msgid "Specifies whether builds are sandboxed by default."
+msgstr "Gibt an, ob Erstellungen nach Voreinstellung in einer isolierten Umgebung („Sandbox“) durchgeführt werden sollen."
+
+#. type: item
+#: doc/guix.texi:29887
+#, no-wrap
+msgid "@code{build-sandbox-items} (default: @code{'()})"
+msgstr "@code{build-sandbox-items} (Vorgabe: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:29890
+msgid "This is a list of strings or objects appended to the @code{build-sandbox-items} field of the configuration file."
+msgstr "Dies ist eine Liste von Zeichenketten oder Objekten, die an das @code{build-sandbox-items}-Feld der Konfigurationsdatei angehängt werden."
+
+#. type: table
+#: doc/guix.texi:29898
+msgid "Extra command line options for @code{nix-service-type}."
+msgstr "Zusätzliche Befehlszeilenoptionen für @code{nix-service-type}."
+
 #. type: cindex
-#: doc/guix.texi:25862
+#: doc/guix.texi:29904
 #, no-wrap
 msgid "setuid programs"
 msgstr "setuid-Programme"
 
 #. type: Plain text
-#: doc/guix.texi:25872
-msgid "Some programs need to run with ``root'' privileges, even when they are launched by unprivileged users.  A notorious example is the @command{passwd} program, which users can run to change their password, and which needs to access the @file{/etc/passwd} and @file{/etc/shadow} files---something normally restricted to root, for obvious security reasons.  To address that, these executables are @dfn{setuid-root}, meaning that they always run with root privileges (@pxref{How Change Persona,,, libc, The GNU C Library Reference Manual}, for more info about the setuid mechanism.)"
-msgstr "Manche Programme müssen mit Administratorrechten (also den Berechtigungen des „root“-Benutzers) ausgeführt werden, selbst wenn Nutzer ohne besondere Berechtigungen sie starten. Ein bekanntes Beispiel ist das Programm @command{passwd}, womit Nutzer ihr Passwort ändern können, wozu das Programm auf die Dateien @file{/etc/passwd} und @file{/etc/shadow} zugreifen muss — was normalerweise nur der „root“-Nutzer darf, aus offensichtlichen Gründen der Informationssicherheit. Deswegen sind diese ausführbaren Programmdateien @dfn{setuid-root}, d.h.@: sie laufen immer mit den Administratorrechten des root-Nutzers, egal wer sie startet (siehe @ref{How Change Persona,,, libc, The GNU C Library Reference Manual} für mehr Informationen über den setuid-Mechanismus)."
+#: doc/guix.texi:29914
+msgid "Some programs need to run with ``root'' privileges, even when they are launched by unprivileged users.  A notorious example is the @command{passwd} program, which users can run to change their password, and which needs to access the @file{/etc/passwd} and @file{/etc/shadow} files---something normally restricted to root, for obvious security reasons.  To address that, these executables are @dfn{setuid-root}, meaning that they always run with root privileges (@pxref{How Change Persona,,, libc, The GNU C Library Reference Manual}, for more info about the setuid mechanism)."
+msgstr "Manche Programme müssen mit Administratorrechten (also den Berechtigungen des „root“-Benutzers) ausgeführt werden, selbst wenn Nutzer ohne besondere Berechtigungen sie starten. Ein bekanntes Beispiel ist das Programm @command{passwd}, womit Nutzer ihr Passwort ändern können, wozu das Programm auf die Dateien @file{/etc/passwd} und @file{/etc/shadow} zugreifen muss — was normalerweise nur der „root“-Nutzer darf, aus offensichtlichen Gründen der Informationssicherheit. Deswegen sind diese ausführbaren Programmdateien @dfn{setuid-root}, d.h.@: sie laufen immer mit den Administratorrechten des root-Nutzers, egal wer sie startet (siehe @ref{How Change Persona,,, libc, Referenzhandbuch der GNU-C-Bibliothek} für mehr Informationen über den setuid-Mechanismus)."
 
 #. type: Plain text
-#: doc/guix.texi:25879
+#: doc/guix.texi:29921
 msgid "The store itself @emph{cannot} contain setuid programs: that would be a security issue since any user on the system can write derivations that populate the store (@pxref{The Store}).  Thus, a different mechanism is used: instead of changing the setuid bit directly on files that are in the store, we let the system administrator @emph{declare} which programs should be setuid root."
 msgstr "Der Store selbst kann @emph{keine} setuid-Programme enthalten: Das wäre eine Sicherheitslücke, weil dann jeder Nutzer auf dem System Ableitungen schreiben könnte, die in den Store solche Dateien einfügen würden (siehe @ref{The Store}). Wir benutzen also einen anderen Mechanismus: Statt auf den ausführbaren Dateien im Store selbst deren setuid-Bit zu setzen, lassen wir den Systemadministrator @emph{deklarieren}, welche Programme mit setuid-root gestartet werden."
 
 #. type: Plain text
-#: doc/guix.texi:25885
+#: doc/guix.texi:29927
 msgid "The @code{setuid-programs} field of an @code{operating-system} declaration contains a list of G-expressions denoting the names of programs to be setuid-root (@pxref{Using the Configuration System}).  For instance, the @command{passwd} program, which is part of the Shadow package, can be designated by this G-expression (@pxref{G-Expressions}):"
 msgstr "Das Feld @code{setuid-programs} einer @code{operating-system}-Deklaration enthält eine Liste von G-Ausdrücken, die die Namen der Programme angeben, die setuid-root sein sollen (siehe @ref{Using the Configuration System}). Zum Beispiel kann das Programm @command{passwd}, was Teil des Shadow-Pakets ist, durch diesen G-Ausdruck bezeichnet werden (siehe @ref{G-Expressions}):"
 
 #. type: example
-#: doc/guix.texi:25888
+#: doc/guix.texi:29930
 #, no-wrap
 msgid "#~(string-append #$shadow \"/bin/passwd\")\n"
 msgstr "#~(string-append #$shadow \"/bin/passwd\")\n"
 
 #. type: Plain text
-#: doc/guix.texi:25892
+#: doc/guix.texi:29934
 msgid "A default set of setuid programs is defined by the @code{%setuid-programs} variable of the @code{(gnu system)} module."
 msgstr "Eine vorgegebene Menge von setuid-Programmen wird durch die Variable @code{%setuid-programs} aus dem Modul @code{(gnu system)} definiert."
 
 #. type: defvr
-#: doc/guix.texi:25893
+#: doc/guix.texi:29935
 #, no-wrap
 msgid "{Scheme Variable} %setuid-programs"
 msgstr "{Scheme-Variable} %setuid-programs"
 
 #. type: defvr
-#: doc/guix.texi:25895
+#: doc/guix.texi:29937
 msgid "A list of G-expressions denoting common programs that are setuid-root."
 msgstr "Eine Liste von G-Ausdrücken, die übliche Programme angeben, die setuid-root sein müssen."
 
 #. type: defvr
-#: doc/guix.texi:25898
+#: doc/guix.texi:29940
 msgid "The list includes commands such as @command{passwd}, @command{ping}, @command{su}, and @command{sudo}."
 msgstr "Die Liste enthält Befehle wie @command{passwd}, @command{ping}, @command{su} und @command{sudo}."
 
 #. type: Plain text
-#: doc/guix.texi:25904
+#: doc/guix.texi:29946
 msgid "Under the hood, the actual setuid programs are created in the @file{/run/setuid-programs} directory at system activation time.  The files in this directory refer to the ``real'' binaries, which are in the store."
 msgstr "Intern erzeugt Guix die eigentlichen setuid-Programme im Verzeichnis @file{/run/setuid-programs}, wenn das System aktiviert wird. Die Dateien in diesem Verzeichnis verweisen auf die „echten“ Binärdateien im Store."
 
 #. type: cindex
-#: doc/guix.texi:25908
+#: doc/guix.texi:29950
 #, no-wrap
 msgid "HTTPS, certificates"
 msgstr "HTTPS, Zertifikate"
 
 #. type: cindex
-#: doc/guix.texi:25909
+#: doc/guix.texi:29951
 #, no-wrap
 msgid "X.509 certificates"
 msgstr "X.509-Zertifikate"
 
 #. type: cindex
-#: doc/guix.texi:25910
+#: doc/guix.texi:29952
 #, no-wrap
 msgid "TLS"
 msgstr "TLS"
 
 #. type: Plain text
-#: doc/guix.texi:25917
+#: doc/guix.texi:29959
 msgid "Web servers available over HTTPS (that is, HTTP over the transport-layer security mechanism, TLS) send client programs an @dfn{X.509 certificate} that the client can then use to @emph{authenticate} the server.  To do that, clients verify that the server's certificate is signed by a so-called @dfn{certificate authority} (CA).  But to verify the CA's signature, clients must have first acquired the CA's certificate."
 msgstr "Über HTTPS verfügbare Webserver (also HTTP mit gesicherter Transportschicht, englisch „Transport-Layer Security“, kurz TLS) senden Client-Programmen ein @dfn{X.509-Zertifikat}, mit dem der Client den Server dann @emph{authentifizieren} kann. Dazu verifiziert der Client, dass das Zertifikat des Servers von einer sogenannten Zertifizierungsstelle signiert wurde (@dfn{Certificate Authority}, kurz CA). Damit er aber die Signatur der Zertifizierungsstelle verifizieren kann, muss jeder Client das Zertifikat der Zertifizierungsstelle besitzen."
 
 #. type: Plain text
-#: doc/guix.texi:25921
+#: doc/guix.texi:29963
 msgid "Web browsers such as GNU@tie{}IceCat include their own set of CA certificates, such that they are able to verify CA signatures out-of-the-box."
 msgstr "Web-Browser wie GNU@tie{}IceCat liefern ihre eigenen CA-Zertifikate mit, damit sie von Haus aus Zertifikate verifizieren können."
 
 #. type: Plain text
-#: doc/guix.texi:25925
+#: doc/guix.texi:29967
 msgid "However, most other programs that can talk HTTPS---@command{wget}, @command{git}, @command{w3m}, etc.---need to be told where CA certificates can be found."
 msgstr "Den meisten anderen Programmen, die HTTPS sprechen können — @command{wget}, @command{git}, @command{w3m} etc.@: — muss allerdings erst mitgeteilt werden, wo die CA-Zertifikate installiert sind."
 
 #. type: Plain text
-#: doc/guix.texi:25932
+#: doc/guix.texi:29974
 msgid "In Guix, this is done by adding a package that provides certificates to the @code{packages} field of the @code{operating-system} declaration (@pxref{operating-system Reference}).  Guix includes one such package, @code{nss-certs}, which is a set of CA certificates provided as part of Mozilla's Network Security Services."
 msgstr "In Guix müssen Sie dazu ein Paket, das Zertifikate enthält, in das @code{packages}-Feld der @code{operating-system}-Deklaration des Betriebssystems hinzufügen (siehe @ref{operating-system Reference}). Guix liefert ein solches Paket mit, @code{nss-certs}, was als Teil von Mozillas „Network Security Services“ angeboten wird."
 
 #. type: Plain text
-#: doc/guix.texi:25937
+#: doc/guix.texi:29979
 msgid "Note that it is @emph{not} part of @code{%base-packages}, so you need to explicitly add it.  The @file{/etc/ssl/certs} directory, which is where most applications and libraries look for certificates by default, points to the certificates installed globally."
 msgstr "Beachten Sie, dass es @emph{nicht} zu den @code{%base-packages} gehört, Sie es also ausdrücklich hinzufügen müssen. Das Verzeichnis @file{/etc/ssl/certs}, wo die meisten Anwendungen und Bibliotheken ihren Voreinstellungen entsprechend nach Zertifikaten suchen, verweist auf die global installierten Zertifikate."
 
 #. type: Plain text
-#: doc/guix.texi:25947
-msgid "Unprivileged users, including users of Guix on a foreign distro, can also install their own certificate package in their profile.  A number of environment variables need to be defined so that applications and libraries know where to find them.  Namely, the OpenSSL library honors the @code{SSL_CERT_DIR} and @code{SSL_CERT_FILE} variables.  Some applications add their own environment variables; for instance, the Git version control system honors the certificate bundle pointed to by the @code{GIT_SSL_CAINFO} environment variable.  Thus, you would typically run something like:"
-msgstr "Unprivilegierte Benutzer, wie die, die Guix auf einer Fremddistribution benutzen, können sich auch lokal ihre eigenen Pakete mit Zertifikaten in ihr Profil installieren. Eine Reihe von Umgebungsvariablen muss dazu definiert werden, damit Anwendungen und Bibliotheken wissen, wo diese Zertifikate zu finden sind. Und zwar folgt die OpenSSL-Bibliothek den Umgebungsvariablen @code{SSL_CERT_DIR} und @code{SSL_CERT_FILE}, manche Anwendungen benutzen stattdessen aber ihre eigenen Umgebungsvariablen. Das Versionskontrollsystem Git liest den Ort zum Beispiel aus der Umgebungsvariablen @code{GIT_SSL_CAINFO} aus. Sie würden typischerweise also so etwas ausführen:"
+#: doc/guix.texi:29989
+msgid "Unprivileged users, including users of Guix on a foreign distro, can also install their own certificate package in their profile.  A number of environment variables need to be defined so that applications and libraries know where to find them.  Namely, the OpenSSL library honors the @env{SSL_CERT_DIR} and @env{SSL_CERT_FILE} variables.  Some applications add their own environment variables; for instance, the Git version control system honors the certificate bundle pointed to by the @env{GIT_SSL_CAINFO} environment variable.  Thus, you would typically run something like:"
+msgstr "Unprivilegierte Benutzer, wie die, die Guix auf einer Fremddistribution benutzen, können sich auch lokal ihre eigenen Pakete mit Zertifikaten in ihr Profil installieren. Eine Reihe von Umgebungsvariablen muss dazu definiert werden, damit Anwendungen und Bibliotheken wissen, wo diese Zertifikate zu finden sind. Und zwar folgt die OpenSSL-Bibliothek den Umgebungsvariablen @env{SSL_CERT_DIR} und @env{SSL_CERT_FILE}, manche Anwendungen benutzen stattdessen aber ihre eigenen Umgebungsvariablen. Das Versionskontrollsystem Git liest den Ort zum Beispiel aus der Umgebungsvariablen @env{GIT_SSL_CAINFO} aus. Sie würden typischerweise also so etwas ausführen:"
 
 #. type: example
-#: doc/guix.texi:25953
+#: doc/guix.texi:29995
 #, no-wrap
 msgid ""
-"$ guix install nss-certs\n"
-"$ export SSL_CERT_DIR=\"$HOME/.guix-profile/etc/ssl/certs\"\n"
-"$ export SSL_CERT_FILE=\"$HOME/.guix-profile/etc/ssl/certs/ca-certificates.crt\"\n"
-"$ export GIT_SSL_CAINFO=\"$SSL_CERT_FILE\"\n"
+"guix install nss-certs\n"
+"export SSL_CERT_DIR=\"$HOME/.guix-profile/etc/ssl/certs\"\n"
+"export SSL_CERT_FILE=\"$HOME/.guix-profile/etc/ssl/certs/ca-certificates.crt\"\n"
+"export GIT_SSL_CAINFO=\"$SSL_CERT_FILE\"\n"
 msgstr ""
-"$ guix install nss-certs\n"
-"$ export SSL_CERT_DIR=\"$HOME/.guix-profile/etc/ssl/certs\"\n"
-"$ export SSL_CERT_FILE=\"$HOME/.guix-profile/etc/ssl/certs/ca-certificates.crt\"\n"
-"$ export GIT_SSL_CAINFO=\"$SSL_CERT_FILE\"\n"
+"guix install nss-certs\n"
+"export SSL_CERT_DIR=\"$HOME/.guix-profile/etc/ssl/certs\"\n"
+"export SSL_CERT_FILE=\"$HOME/.guix-profile/etc/ssl/certs/ca-certificates.crt\"\n"
+"export GIT_SSL_CAINFO=\"$SSL_CERT_FILE\"\n"
 
 #. type: Plain text
-#: doc/guix.texi:25958
-msgid "As another example, R requires the @code{CURL_CA_BUNDLE} environment variable to point to a certificate bundle, so you would have to run something like this:"
-msgstr "Ein weiteres Beispiel ist R, was voraussetzt, dass die Umgebungsvariable @code{CURL_CA_BUNDLE} auf ein Zertifikatsbündel verweist, weshalb Sie etwas wie hier ausführen müssten:"
+#: doc/guix.texi:30000
+msgid "As another example, R requires the @env{CURL_CA_BUNDLE} environment variable to point to a certificate bundle, so you would have to run something like this:"
+msgstr "Ein weiteres Beispiel ist R, was voraussetzt, dass die Umgebungsvariable @env{CURL_CA_BUNDLE} auf ein Zertifikatsbündel verweist, weshalb Sie etwas wie hier ausführen müssten:"
 
 #. type: example
-#: doc/guix.texi:25962
+#: doc/guix.texi:30004
 #, no-wrap
 msgid ""
-"$ guix install nss-certs\n"
-"$ export CURL_CA_BUNDLE=\"$HOME/.guix-profile/etc/ssl/certs/ca-certificates.crt\"\n"
+"guix install nss-certs\n"
+"export CURL_CA_BUNDLE=\"$HOME/.guix-profile/etc/ssl/certs/ca-certificates.crt\"\n"
 msgstr ""
-"$ guix install nss-certs\n"
-"$ export CURL_CA_BUNDLE=\"$HOME/.guix-profile/etc/ssl/certs/ca-certificates.crt\"\n"
+"guix install nss-certs\n"
+"export CURL_CA_BUNDLE=\"$HOME/.guix-profile/etc/ssl/certs/ca-certificates.crt\"\n"
 
 #. type: Plain text
-#: doc/guix.texi:25966
+#: doc/guix.texi:30008
 msgid "For other applications you may want to look up the required environment variable in the relevant documentation."
 msgstr "Für andere Anwendungen möchten Sie die Namen der benötigten Umgebungsvariablen vielleicht in deren Dokumentation nachschlagen."
 
 #. type: cindex
-#: doc/guix.texi:25971
+#: doc/guix.texi:30013
 #, no-wrap
 msgid "name service switch"
 msgstr "Name Service Switch"
 
 #. type: cindex
-#: doc/guix.texi:25972
+#: doc/guix.texi:30014
 #, no-wrap
 msgid "NSS"
 msgstr "NSS"
 
 #. type: Plain text
-#: doc/guix.texi:25981
+#: doc/guix.texi:30023
 msgid "The @code{(gnu system nss)} module provides bindings to the configuration file of the libc @dfn{name service switch} or @dfn{NSS} (@pxref{NSS Configuration File,,, libc, The GNU C Library Reference Manual}).  In a nutshell, the NSS is a mechanism that allows libc to be extended with new ``name'' lookup methods for system databases, which includes host names, service names, user accounts, and more (@pxref{Name Service Switch, System Databases and Name Service Switch,, libc, The GNU C Library Reference Manual})."
-msgstr "Das Modul @code{(gnu system nss)} enthält Anbindungen für die Konfiguration des @dfn{Name Service Switch} (NSS) der libc (siehe @ref{NSS Configuration File,,, libc, The GNU C Library Reference Manual}). Kurz gesagt ist der NSS ein Mechanismus, mit dem die libc um neue „Namens“-Auflösungsmethoden für Systemdatenbanken erweitert werden kann; dazu gehören Rechnernamen (auch bekannt als „Host“-Namen), Dienstnamen, Benutzerkonten und mehr (siehe @ref{Name Service Switch, System Databases and Name Service Switch,, libc, The GNU C Library Reference Manual})."
+msgstr "Das Modul @code{(gnu system nss)} enthält Anbindungen für die Konfiguration des @dfn{Name Service Switch} (NSS) der libc (siehe @ref{NSS Configuration File,,, libc, Referenzhandbuch der GNU-C-Bibliothek}). Kurz gesagt ist der NSS ein Mechanismus, mit dem die libc um neue „Namens“-Auflösungsmethoden für Systemdatenbanken erweitert werden kann; dazu gehören Rechnernamen (auch bekannt als „Host“-Namen), Dienstnamen, Benutzerkonten und mehr (siehe @ref{Name Service Switch, Systemdatenbanken und der Name Service Switch,, libc, Referenzhandbuch der GNU-C-Bibliothek})."
 
 #. type: Plain text
-#: doc/guix.texi:25988
+#: doc/guix.texi:30030
 msgid "The NSS configuration specifies, for each system database, which lookup method is to be used, and how the various methods are chained together---for instance, under which circumstances NSS should try the next method in the list.  The NSS configuration is given in the @code{name-service-switch} field of @code{operating-system} declarations (@pxref{operating-system Reference, @code{name-service-switch}})."
 msgstr "Die NSS-Konfiguration legt für jede Systemdatenbank fest, mit welcher Methode der Name nachgeschlagen („aufgelöst“) werden kann und welche Methoden zusammenhängen — z.B.@: unter welchen Umständen der NSS es mit der nächsten Methode auf seiner Liste versuchen sollte. Die NSS-Konfiguration wird im Feld @code{name-service-switch} von @code{operating-system}-Deklarationen angegeben (siehe @ref{operating-system Reference, @code{name-service-switch}})."
 
 #. type: cindex
-#: doc/guix.texi:25989
+#: doc/guix.texi:30031
 #, no-wrap
 msgid "nss-mdns"
 msgstr "nss-mdns"
 
 #. type: cindex
-#: doc/guix.texi:25990
+#: doc/guix.texi:30032
 #, no-wrap
 msgid ".local, host name lookup"
 msgstr ".local, Rechnernamensauflösung"
 
 #. type: Plain text
-#: doc/guix.texi:25995
+#: doc/guix.texi:30037
 msgid "As an example, the declaration below configures the NSS to use the @uref{https://0pointer.de/lennart/projects/nss-mdns/, @code{nss-mdns} back-end}, which supports host name lookups over multicast DNS (mDNS)  for host names ending in @code{.local}:"
 msgstr "Zum Beispiel konfigurieren die folgenden Deklarationen den NSS so, dass er das @uref{https://0pointer.de/lennart/projects/nss-mdns/, @code{nss-mdns}-Backend} benutzt, wodurch er auf @code{.local} endende Rechnernamen über Multicast-DNS (mDNS) auflöst:"
 
 #. type: lisp
-#: doc/guix.texi:25999
+#: doc/guix.texi:30041
 #, no-wrap
 msgid ""
 "(name-service-switch\n"
@@ -48602,7 +55836,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:26004
+#: doc/guix.texi:30046
 #, no-wrap
 msgid ""
 "                ;; If the above did not succeed, try\n"
@@ -48618,7 +55852,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:26010
+#: doc/guix.texi:30052
 #, no-wrap
 msgid ""
 "                  ;; 'mdns_minimal' is authoritative for\n"
@@ -48638,7 +55872,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:26014
+#: doc/guix.texi:30056
 #, no-wrap
 msgid ""
 "                ;; Then fall back to DNS.\n"
@@ -48652,7 +55886,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:26018
+#: doc/guix.texi:30060
 #, no-wrap
 msgid ""
 "                ;; Finally, try with the \"full\" 'mdns'.\n"
@@ -48665,157 +55899,157 @@ msgstr ""
 "                  (name \"mdns\")))))\n"
 
 #. type: Plain text
-#: doc/guix.texi:26023
+#: doc/guix.texi:30065
 msgid "Do not worry: the @code{%mdns-host-lookup-nss} variable (see below)  contains this configuration, so you will not have to type it if all you want is to have @code{.local} host lookup working."
 msgstr "Keine Sorge: Die Variable @code{%mdns-host-lookup-nss} (siehe unten) enthält diese Konfiguration bereits. Statt das alles selst einzutippen, können Sie sie benutzen, wenn alles, was Sie möchten, eine funktionierende Namensauflösung für @code{.local}-Rechner ist."
 
 #. type: Plain text
-#: doc/guix.texi:26031
+#: doc/guix.texi:30073
 msgid "Note that, in this case, in addition to setting the @code{name-service-switch} of the @code{operating-system} declaration, you also need to use @code{avahi-service-type} (@pxref{Networking Services, @code{avahi-service-type}}), or @code{%desktop-services}, which includes it (@pxref{Desktop Services}).  Doing this makes @code{nss-mdns} accessible to the name service cache daemon (@pxref{Base Services, @code{nscd-service}})."
 msgstr "Beachten Sie dabei, dass es zusätzlich zum Festlegen des @code{name-service-switch} in der @code{operating-system}-Deklaration auch erforderlich ist, den @code{avahi-service-type} zu benutzen (siehe @ref{Networking Services, @code{avahi-service-type}}). Es genügt auch, wenn Sie die @code{%desktop-services} benutzen, weil er darin enthalten ist (siehe @ref{Desktop Services}). Dadurch wird @code{nss-mdns} für den Name Service Cache Daemon nutzbar (siehe @ref{Base Services, @code{nscd-service}})."
 
 #. type: Plain text
-#: doc/guix.texi:26034
+#: doc/guix.texi:30076
 msgid "For convenience, the following variables provide typical NSS configurations."
 msgstr "Um sich eine lange Konfiguration zu ersparen, können Sie auch einfach die folgenden Variablen für typische NSS-Konfigurationen benutzen."
 
 #. type: defvr
-#: doc/guix.texi:26035
+#: doc/guix.texi:30077
 #, no-wrap
 msgid "{Scheme Variable} %default-nss"
 msgstr "{Scheme-Variable} %default-nss"
 
 #. type: defvr
-#: doc/guix.texi:26038
+#: doc/guix.texi:30080
 msgid "This is the default name service switch configuration, a @code{name-service-switch} object."
 msgstr "Die vorgegebene Konfiguration des Name Service Switch als ein @code{name-service-switch}-Objekt."
 
 #. type: defvr
-#: doc/guix.texi:26040
+#: doc/guix.texi:30082
 #, no-wrap
 msgid "{Scheme Variable} %mdns-host-lookup-nss"
 msgstr "{Scheme-Variable} %mdns-host-lookup-nss"
 
 #. type: defvr
-#: doc/guix.texi:26043
+#: doc/guix.texi:30085
 msgid "This is the name service switch configuration with support for host name lookup over multicast DNS (mDNS) for host names ending in @code{.local}."
 msgstr "Die Name-Service-Switch-Konfiguration mit Unterstützung für Rechnernamensauflösung über „Multicast DNS“ (mDNS) für auf @code{.local} endende Rechnernamen."
 
 #. type: Plain text
-#: doc/guix.texi:26053
+#: doc/guix.texi:30095
 msgid "The reference for name service switch configuration is given below.  It is a direct mapping of the configuration file format of the C library , so please refer to the C library manual for more information (@pxref{NSS Configuration File,,, libc, The GNU C Library Reference Manual}).  Compared to the configuration file format of libc NSS, it has the advantage not only of adding this warm parenthetic feel that we like, but also static checks: you will know about syntax errors and typos as soon as you run @command{guix system}."
-msgstr "Im Folgenden finden Sie eine Referenz, wie eine Name-Service-Switch-Konfiguration aussehen muss. Sie hat eine direkte Entsprechung zum Konfigurationsdateiformat der C-Bibliothek, lesen Sie weitere Informationen also bitte im Handbuch der C-Bibliothek nach (siehe @ref{NSS Configuration File,,, libc, The GNU C Library Reference Manual}). Gegenüber dem Konfigurationsdateiformat des libc-NSS bekommen Sie mit unserer Syntax nicht nur ein warm umklammerndes Gefühl, sondern auch eine statische Analyse: Wenn Sie Syntax- und Schreibfehler machen, werden Sie darüber benachrichtigt, sobald Sie @command{guix system} aufrufen."
+msgstr "Im Folgenden finden Sie eine Referenz, wie eine Name-Service-Switch-Konfiguration aussehen muss. Sie hat eine direkte Entsprechung zum Konfigurationsdateiformat der C-Bibliothek, lesen Sie weitere Informationen also bitte im Handbuch der C-Bibliothek nach (siehe @ref{NSS Configuration File,,, libc, Referenzhandbuch der GNU-C-Bibliothek}). Gegenüber dem Konfigurationsdateiformat des libc-NSS bekommen Sie mit unserer Syntax nicht nur ein warm umklammerndes Gefühl, sondern auch eine statische Analyse: Wenn Sie Syntax- und Schreibfehler machen, werden Sie darüber benachrichtigt, sobald Sie @command{guix system} aufrufen."
 
 #. type: deftp
-#: doc/guix.texi:26054
+#: doc/guix.texi:30096
 #, no-wrap
 msgid "{Data Type} name-service-switch"
 msgstr "{Datentyp} name-service-switch"
 
 #. type: deftp
-#: doc/guix.texi:26059
+#: doc/guix.texi:30101
 msgid "This is the data type representation the configuration of libc's name service switch (NSS).  Each field below represents one of the supported system databases."
 msgstr "Der Datentyp, der die Konfiguration des Name Service Switch (NSS) der libc repräsentiert. Jedes im Folgenden aufgeführte Feld repräsentiert eine der unterstützten Systemdatenbanken."
 
 #. type: item
-#: doc/guix.texi:26061
+#: doc/guix.texi:30103
 #, no-wrap
 msgid "aliases"
 msgstr "aliases"
 
 #. type: itemx
-#: doc/guix.texi:26062
+#: doc/guix.texi:30104
 #, no-wrap
 msgid "ethers"
 msgstr "ethers"
 
 #. type: itemx
-#: doc/guix.texi:26064
+#: doc/guix.texi:30106
 #, no-wrap
 msgid "gshadow"
 msgstr "gshadow"
 
 #. type: itemx
-#: doc/guix.texi:26065
+#: doc/guix.texi:30107
 #, no-wrap
 msgid "hosts"
 msgstr "hosts"
 
 #. type: itemx
-#: doc/guix.texi:26066
+#: doc/guix.texi:30108
 #, no-wrap
 msgid "initgroups"
 msgstr "initgroups"
 
 #. type: itemx
-#: doc/guix.texi:26067
+#: doc/guix.texi:30109
 #, no-wrap
 msgid "netgroup"
 msgstr "netgroup"
 
 #. type: itemx
-#: doc/guix.texi:26068
+#: doc/guix.texi:30110
 #, no-wrap
 msgid "networks"
 msgstr "networks"
 
 #. type: itemx
-#: doc/guix.texi:26070
+#: doc/guix.texi:30112
 #, no-wrap
 msgid "public-key"
 msgstr "public-key"
 
 #. type: itemx
-#: doc/guix.texi:26071
+#: doc/guix.texi:30113
 #, no-wrap
 msgid "rpc"
 msgstr "rpc"
 
 #. type: itemx
-#: doc/guix.texi:26073
+#: doc/guix.texi:30115
 #, no-wrap
 msgid "shadow"
 msgstr "shadow"
 
 #. type: table
-#: doc/guix.texi:26076
+#: doc/guix.texi:30118
 msgid "The system databases handled by the NSS.  Each of these fields must be a list of @code{<name-service>} objects (see below)."
 msgstr "Das sind die Systemdatenbanken, um die sich NSS kümmern kann. Jedes dieser Felder muss eine Liste aus @code{<name-service>}-Objekten sein (siehe unten)."
 
 #. type: deftp
-#: doc/guix.texi:26079
+#: doc/guix.texi:30121
 #, no-wrap
 msgid "{Data Type} name-service"
 msgstr "{Datentyp} name-service"
 
 #. type: deftp
-#: doc/guix.texi:26083
+#: doc/guix.texi:30125
 msgid "This is the data type representing an actual name service and the associated lookup action."
 msgstr "Der einen eigentlichen Namensdienst repräsentierende Datentyp zusammen mit der zugehörigen Auflösungsaktion."
 
 #. type: table
-#: doc/guix.texi:26088
+#: doc/guix.texi:30130
 msgid "A string denoting the name service (@pxref{Services in the NSS configuration,,, libc, The GNU C Library Reference Manual})."
-msgstr "Eine Zeichenkette, die den Namensdienst bezeichnet (siehe @ref{Services in the NSS configuration,,, libc, The GNU C Library Reference Manual})."
+msgstr "Eine Zeichenkette, die den Namensdienst bezeichnet (siehe @ref{Services in the NSS configuration,,, libc, Referenzhandbuch der GNU-C-Bibliothek})."
 
 #. type: table
-#: doc/guix.texi:26093
+#: doc/guix.texi:30135
 msgid "Note that name services listed here must be visible to nscd.  This is achieved by passing the @code{#:name-services} argument to @code{nscd-service} the list of packages providing the needed name services (@pxref{Base Services, @code{nscd-service}})."
 msgstr "Beachten Sie, dass hier aufgeführte Namensdienste für den nscd sichtbar sein müssen. Dazu übergeben Sie im Argument @code{#:name-services} des @code{nscd-service} die Liste der Pakete, die die entsprechenden Namensdienste anbieten (siehe @ref{Base Services, @code{nscd-service}})."
 
 #. type: item
-#: doc/guix.texi:26094
+#: doc/guix.texi:30136
 #, no-wrap
 msgid "reaction"
 msgstr "reaction"
 
 #. type: table
-#: doc/guix.texi:26098
+#: doc/guix.texi:30140
 msgid "An action specified using the @code{lookup-specification} macro (@pxref{Actions in the NSS configuration,,, libc, The GNU C Library Reference Manual}).  For example:"
-msgstr "Eine mit Hilfe des Makros @code{lookup-specification} angegebene Aktion (siehe @ref{Actions in the NSS configuration,,, libc, The GNU C Library Reference Manual}). Zum Beispiel:"
+msgstr "Eine mit Hilfe des Makros @code{lookup-specification} angegebene Aktion (siehe @ref{Actions in the NSS configuration,,, libc, Referenzhandbuch der GNU-C-Bibliothek}). Zum Beispiel:"
 
 #. type: lisp
-#: doc/guix.texi:26102
+#: doc/guix.texi:30144
 #, no-wrap
 msgid ""
 "(lookup-specification (unavailable => continue)\n"
@@ -48825,17 +56059,17 @@ msgstr ""
 "                      (success => return))\n"
 
 #. type: Plain text
-#: doc/guix.texi:26116
+#: doc/guix.texi:30158
 msgid "For bootstrapping purposes, the Linux-Libre kernel is passed an @dfn{initial RAM disk}, or @dfn{initrd}.  An initrd contains a temporary root file system as well as an initialization script.  The latter is responsible for mounting the real root file system, and for loading any kernel modules that may be needed to achieve that."
 msgstr "Um ihn zu initialisieren (zu „bootstrappen“), wird für den Kernel Linux-Libre eine @dfn{initiale RAM-Disk} angegeben (kurz @dfn{initrd}). Eine initrd enthält ein temporäres Wurzeldateisystem sowie ein Skript zur Initialisierung. Letzteres ist dafür zuständig, das echte Wurzeldateisystem einzubinden und alle Kernel-Module zu laden, die dafür nötig sein könnten."
 
 #. type: Plain text
-#: doc/guix.texi:26125
+#: doc/guix.texi:30167
 msgid "The @code{initrd-modules} field of an @code{operating-system} declaration allows you to specify Linux-libre kernel modules that must be available in the initrd.  In particular, this is where you would list modules needed to actually drive the hard disk where your root partition is---although the default value of @code{initrd-modules} should cover most use cases.  For example, assuming you need the @code{megaraid_sas} module in addition to the default modules to be able to access your root file system, you would write:"
 msgstr "Mit dem Feld @code{initrd-modules} einer @code{operating-system}-Deklaration können Sie angeben, welche Kernel-Module für Linux-libre in der initrd verfügbar sein müssen. Insbesondere müssen hier die Module aufgeführt werden, um die Festplatte zu betreiben, auf der sich Ihre Wurzelpartition befindet — allerdings sollte der vorgegebene Wert der @code{initrd-modules} in dem meisten Fällen genügen. Wenn Sie aber zum Beispiel das Kernel-Modul @code{megaraid_sas} zusätzlich zu den vorgegebenen Modulen brauchen, um auf Ihr Wurzeldateisystem zugreifen zu können, würden Sie das so schreiben:"
 
 #. type: lisp
-#: doc/guix.texi:26130
+#: doc/guix.texi:30172
 #, no-wrap
 msgid ""
 "(operating-system\n"
@@ -48847,28 +56081,28 @@ msgstr ""
 "  (initrd-modules (cons \"megaraid_sas\" %base-initrd-modules)))\n"
 
 #. type: defvr
-#: doc/guix.texi:26132
+#: doc/guix.texi:30174
 #, no-wrap
 msgid "{Scheme Variable} %base-initrd-modules"
 msgstr "{Scheme-Variable} %base-initrd-modules"
 
 #. type: defvr
-#: doc/guix.texi:26134
+#: doc/guix.texi:30176
 msgid "This is the list of kernel modules included in the initrd by default."
 msgstr "Der Vorgabewert für die Liste der Kernel-Module, die in der initrd enthalten sein sollen."
 
 #. type: Plain text
-#: doc/guix.texi:26142
+#: doc/guix.texi:30184
 msgid "Furthermore, if you need lower-level customization, the @code{initrd} field of an @code{operating-system} declaration allows you to specify which initrd you would like to use.  The @code{(gnu system linux-initrd)} module provides three ways to build an initrd: the high-level @code{base-initrd} procedure and the low-level @code{raw-initrd} and @code{expression->initrd} procedures."
 msgstr "Wenn Sie noch systemnähere Anpassungen durchführen wollen, können Sie im Feld @code{initrd} einer @code{operating-system}-Deklaration angeben, was für eine Art von initrd Sie benutzen möchten. Das Modul @code{(gnu system linux-initrd)} enthält drei Arten, eine initrd zu erstellen: die abstrakte Prozedur @code{base-initrd} und die systemnahen Prozeduren @code{raw-initrd} und @code{expression->initrd}."
 
 #. type: Plain text
-#: doc/guix.texi:26147
+#: doc/guix.texi:30189
 msgid "The @code{base-initrd} procedure is intended to cover most common uses.  For example, if you want to add a bunch of kernel modules to be loaded at boot time, you can define the @code{initrd} field of the operating system declaration like this:"
 msgstr "Mit der Prozedur @code{base-initrd} sollten Sie die häufigsten Anwendungszwecke abdecken können. Wenn Sie zum Beispiel ein paar Kernel-Module zur Boot-Zeit laden lassen möchten, können Sie das @code{initrd}-Feld auf diese Art definieren:"
 
 #. type: lisp
-#: doc/guix.texi:26155
+#: doc/guix.texi:30197
 #, no-wrap
 msgid ""
 "(initrd (lambda (file-systems . rest)\n"
@@ -48887,369 +56121,417 @@ msgstr ""
 "                 rest)))\n"
 
 #. type: Plain text
-#: doc/guix.texi:26160
+#: doc/guix.texi:30202
 msgid "The @code{base-initrd} procedure also handles common use cases that involves using the system as a QEMU guest, or as a ``live'' system with volatile root file system."
 msgstr "Die Prozedur @code{base-initrd} kann auch mit üblichen Anwendungszwecken umgehen, um das System als QEMU-Gastsystem zu betreiben oder als ein „Live“-System ohne ein dauerhaft gespeichertes Wurzeldateisystem."
 
 #. type: Plain text
-#: doc/guix.texi:26167
+#: doc/guix.texi:30209
 msgid "The @code{base-initrd} procedure is built from @code{raw-initrd} procedure.  Unlike @code{base-initrd}, @code{raw-initrd} doesn't do anything high-level, such as trying to guess which kernel modules and packages should be included to the initrd. An example use of @code{raw-initrd} is when a user has a custom Linux kernel configuration and default kernel modules included by @code{base-initrd} are not available."
 msgstr "Die Prozedur @code{base-initrd} baut auf der Prozedur @code{raw-initrd} auf. Anders als @code{base-initrd} hat @code{raw-initrd} keinerlei Zusatzfunktionalitäten: Es wird kein Versuch unternommen, für die initrd notwendige Kernel-Module und Pakete automatisch hinzuzunehmen. @code{raw-initrd} kann zum Beispiel benutzt werden, wenn ein Nutzer eine eigene Konfiguration des Linux-Kernels verwendet und die Standard-Kernel-Module, die mit @code{base-initrd} hinzugenommen würden, nicht verfügbar sind."
 
 #. type: Plain text
-#: doc/guix.texi:26172
+#: doc/guix.texi:30214
 msgid "The initial RAM disk produced by @code{base-initrd} or @code{raw-initrd} honors several options passed on the Linux kernel command line (that is, arguments passed @i{via} the @code{linux} command of GRUB, or the @code{-append} option of QEMU), notably:"
 msgstr "Die initiale RAM-Disk, wie sie von @code{base-initrd} oder @code{raw-initrd} erzeugt wird, richtet sich nach verschiedenen Optionen, die auf der Kernel-Befehlszeile übergeben werden (also über GRUBs @code{linux}-Befehl oder die @code{-append}-Befehlszeilenoption von QEMU). Erwähnt werden sollten:"
 
 #. type: item
-#: doc/guix.texi:26174
+#: doc/guix.texi:30216
 #, no-wrap
 msgid "--load=@var{boot}"
 msgstr "--load=@var{boot}"
 
 #. type: table
-#: doc/guix.texi:26177
+#: doc/guix.texi:30219
 msgid "Tell the initial RAM disk to load @var{boot}, a file containing a Scheme program, once it has mounted the root file system."
 msgstr "Die initiale RAM-Disk eine Datei @var{boot}, in der ein Scheme-Programm steht, laden lassen, nachdem das Wurzeldateisystem eingebunden wurde."
 
 #. type: table
-#: doc/guix.texi:26181
+#: doc/guix.texi:30223
 msgid "Guix uses this option to yield control to a boot program that runs the service activation programs and then spawns the GNU@tie{}Shepherd, the initialization system."
 msgstr "Guix übergibt mit dieser Befehlszeilenoption die Kontrolle an ein Boot-Programm, das die Dienstaktivierungsprogramme ausführt und anschließend den GNU@tie{}Shepherd startet, das Initialisierungssystem („init“-System) von Guix System."
 
 #. type: item
-#: doc/guix.texi:26182
+#: doc/guix.texi:30224
 #, no-wrap
 msgid "--root=@var{root}"
 msgstr "--root=@var{Wurzel}"
 
 #. type: table
-#: doc/guix.texi:26186
-msgid "Mount @var{root} as the root file system.  @var{root} can be a device name like @code{/dev/sda1}, a file system label, or a file system UUID."
-msgstr "Das mit @var{Wurzel} bezeichnete Dateisystem als Wurzeldateisystem einbinden. @var{Wurzel} kann ein Geratename wie @code{/dev/sda1}, eine Dateisystembezeichnung (d.h.@: ein Dateisystem-„Label“) oder eine Dateisystem-UUID sein."
+#: doc/guix.texi:30229
+msgid "Mount @var{root} as the root file system.  @var{root} can be a device name like @code{/dev/sda1}, a file system label, or a file system UUID.  When unspecified, the device name from the root file system of the operating system declaration is used."
+msgstr "Das mit @var{Wurzel} bezeichnete Dateisystem als Wurzeldateisystem einbinden. @var{Wurzel} kann ein Geratename wie @code{/dev/sda1}, eine Dateisystembezeichnung (d.h.@: ein Dateisystem-„Label“) oder eine Dateisystem-UUID sein. Wird nichts angegeben, wird der Gerätename aus dem Wurzeldateisystem der Betriebssystemdeklaration benutzt."
 
 #. type: table
-#: doc/guix.texi:26190
+#: doc/guix.texi:30233
 msgid "Have @file{/run/booted-system} and @file{/run/current-system} point to @var{system}."
 msgstr "@file{/run/booted-system} und @file{/run/current-system} auf das @var{System} zeigen lassen."
 
 #. type: item
-#: doc/guix.texi:26191
+#: doc/guix.texi:30234
 #, no-wrap
 msgid "modprobe.blacklist=@var{modules}@dots{}"
 msgstr "modprobe.blacklist=@var{Module}…"
 
 #. type: cindex
-#: doc/guix.texi:26192
+#: doc/guix.texi:30235
 #, no-wrap
 msgid "module, black-listing"
 msgstr "Kernel-Module, Sperrliste"
 
 #. type: cindex
-#: doc/guix.texi:26193
+#: doc/guix.texi:30236
 #, no-wrap
 msgid "black list, of kernel modules"
 msgstr "Sperrliste, von Kernel-Modulen"
 
 #. type: table
-#: doc/guix.texi:26198
+#: doc/guix.texi:30241
 msgid "Instruct the initial RAM disk as well as the @command{modprobe} command (from the kmod package) to refuse to load @var{modules}.  @var{modules} must be a comma-separated list of module names---e.g., @code{usbkbd,9pnet}."
 msgstr "Die initiale RAM-Disk sowie den Befehl @command{modprobe} (aus dem kmod-Paket) anweisen, das Laden der angegebenen @var{Module} zu verweigern. Als @var{Module} muss eine kommagetrennte Liste von Kernel-Modul-Namen angegeben werden — z.B.@: @code{usbkbd,9pnet}."
 
 #. type: item
-#: doc/guix.texi:26199
+#: doc/guix.texi:30242
 #, no-wrap
 msgid "--repl"
 msgstr "--repl"
 
 #. type: table
-#: doc/guix.texi:26205
+#: doc/guix.texi:30248
 msgid "Start a read-eval-print loop (REPL) from the initial RAM disk before it tries to load kernel modules and to mount the root file system.  Our marketing team calls it @dfn{boot-to-Guile}.  The Schemer in you will love it.  @xref{Using Guile Interactively,,, guile, GNU Guile Reference Manual}, for more information on Guile's REPL."
-msgstr "Eine Lese-Auswerten-Schreiben-Schleife (englisch „Read-Eval-Print Loop“, kurz REPL) von der initialen RAM-Disk starten, bevor diese die Kernel-Module zu laden versucht und das Wurzeldateisystem einbindet. Unsere Marketingabteilung nennt das @dfn{boot-to-Guile}. Der Schemer in Ihnen wird das lieben. Siehe @ref{Using Guile Interactively,,, guile, GNU Guile Reference Manual} für mehr Informationen über die REPL von Guile."
+msgstr "Eine Lese-Auswerten-Schreiben-Schleife (englisch „Read-Eval-Print Loop“, kurz REPL) von der initialen RAM-Disk starten, bevor diese die Kernel-Module zu laden versucht und das Wurzeldateisystem einbindet. Unsere Marketingabteilung nennt das @dfn{boot-to-Guile}. Der Schemer in Ihnen wird das lieben. Siehe @ref{Using Guile Interactively,,, guile, Referenzhandbuch zu GNU Guile} für mehr Informationen über die REPL von Guile."
 
 #. type: Plain text
-#: doc/guix.texi:26211
+#: doc/guix.texi:30254
 msgid "Now that you know all the features that initial RAM disks produced by @code{base-initrd} and @code{raw-initrd} provide, here is how to use it and customize it further."
-msgstr "Jetzt wo Sie wissen, was für Funktionalitäten eine durch @code{base-initrd} und @code{raw-initrd} erzeugte initiale RAM-Disk so haben kann, möchten Sie vielleicht auch wissen, wie man Sie benutzt und weiter anpasst:"
+msgstr "Jetzt wo Sie wissen, was für Funktionalitäten eine durch @code{base-initrd} und @code{raw-initrd} erzeugte initiale RAM-Disk so haben kann, möchten Sie vielleicht auch wissen, wie man sie benutzt und weiter anpasst:"
 
 #. type: deffn
-#: doc/guix.texi:26214
+#: doc/guix.texi:30257
 #, no-wrap
 msgid "{Scheme Procedure} raw-initrd @var{file-systems} @"
 msgstr "{Scheme-Prozedur} raw-initrd @var{Dateisysteme} @"
 
 #. type: deffn
-#: doc/guix.texi:26227
-msgid "[#:linux-modules '()] [#:mapped-devices '()] @ [#:keyboard-layout #f] @ [#:helper-packages '()] [#:qemu-networking? #f] [#:volatile-root? #f] Return a derivation that builds a raw initrd.  @var{file-systems} is a list of file systems to be mounted by the initrd, possibly in addition to the root file system specified on the kernel command line via @code{--root}.  @var{linux-modules} is a list of kernel modules to be loaded at boot time.  @var{mapped-devices} is a list of device mappings to realize before @var{file-systems} are mounted (@pxref{Mapped Devices}).  @var{helper-packages} is a list of packages to be copied in the initrd. It may include @code{e2fsck/static} or other packages needed by the initrd to check the root file system."
-msgstr "[#:linux-modules '()] [#:mapped-devices '()] @ [#:keyboard-layout #f] @ [#:helper-packages '()] [#:qemu-networking? #f] [#:volatile-root? #f] Liefert eine Ableitung, die eine rohe („raw“) initrd erstellt. @var{Dateisysteme} bezeichnet eine Liste von durch die initrd einzubindenden Dateisystemen, unter Umständen zusätzlich zum auf der Kernel-Befehlszeile mit @code{--root} angegebenen Wurzeldateisystem. @var{linux-modules} ist eine Liste von Kernel-Modulen, die zur Boot-Zeit geladen werden sollen. @var{mapped-devices} ist eine Liste von Gerätezuordnungen, die hergestellt sein müssen, bevor die unter @var{file-systems} aufgeführten Dateisysteme eingebunden werden (siehe @ref{Mapped Devices}). @var{helper-packages} ist eine Liste von Paketen, die in die initrd kopiert werden. Darunter kann @code{e2fsck/static} oder andere Pakete aufgeführt werden, mit denen durch die initrd das Wurzeldateisystem auf Fehler hin geprüft werden kann."
+#: doc/guix.texi:30270
+msgid "[#:linux-modules '()] [#:mapped-devices '()] @ [#:keyboard-layout #f] @ [#:helper-packages '()] [#:qemu-networking? #f] [#:volatile-root? #f] Return a derivation that builds a raw initrd.  @var{file-systems} is a list of file systems to be mounted by the initrd, possibly in addition to the root file system specified on the kernel command line via @option{--root}.  @var{linux-modules} is a list of kernel modules to be loaded at boot time.  @var{mapped-devices} is a list of device mappings to realize before @var{file-systems} are mounted (@pxref{Mapped Devices}).  @var{helper-packages} is a list of packages to be copied in the initrd. It may include @code{e2fsck/static} or other packages needed by the initrd to check the root file system."
+msgstr "[#:linux-modules '()] [#:mapped-devices '()] @ [#:keyboard-layout #f] @ [#:helper-packages '()] [#:qemu-networking? #f] [#:volatile-root? #f] Liefert eine Ableitung, die eine rohe („raw“) initrd erstellt. @var{Dateisysteme} bezeichnet eine Liste von durch die initrd einzubindenden Dateisystemen, unter Umständen zusätzlich zum auf der Kernel-Befehlszeile mit @option{--root} angegebenen Wurzeldateisystem. @var{linux-modules} ist eine Liste von Kernel-Modulen, die zur Boot-Zeit geladen werden sollen. @var{mapped-devices} ist eine Liste von Gerätezuordnungen, die hergestellt sein müssen, bevor die unter @var{file-systems} aufgeführten Dateisysteme eingebunden werden (siehe @ref{Mapped Devices}). @var{helper-packages} ist eine Liste von Paketen, die in die initrd kopiert werden. Darunter kann @code{e2fsck/static} oder andere Pakete aufgeführt werden, mit denen durch die initrd das Wurzeldateisystem auf Fehler hin geprüft werden kann."
 
 #. type: deffn
-#: doc/guix.texi:26233 doc/guix.texi:26257
+#: doc/guix.texi:30276 doc/guix.texi:30300
 msgid "When true, @var{keyboard-layout} is a @code{<keyboard-layout>} record denoting the desired console keyboard layout.  This is done before @var{mapped-devices} are set up and before @var{file-systems} are mounted such that, should the user need to enter a passphrase or use the REPL, this happens using the intended keyboard layout."
 msgstr "Ist es auf einen wahren Wert gesetzt, dann muss @var{keyboard-layout} eine Tastaturbelegung als @code{<keyboard-layout>}-Verbundsobjekt angeben, die die gewünschte Tastaturbelegung für die Konsole bezeichnet. Sie wird verwendet, noch bevor die Gerätezuordnungen in @var{mapped-devices} hergestellt werden und bevor die Dateisysteme in @var{file-systems} eingebunden werden, damit der Anwender dabei die gewollte Tastaturbelegung beim Eingeben einer Passphrase und bei der Nutzung einer REPL verwenden kann."
 
 #. type: deffn
-#: doc/guix.texi:26237
+#: doc/guix.texi:30280
 msgid "When @var{qemu-networking?} is true, set up networking with the standard QEMU parameters.  When @var{virtio?} is true, load additional modules so that the initrd can be used as a QEMU guest with para-virtualized I/O drivers."
 msgstr "Wenn @var{qemu-networking?} wahr ist, wird eine Netzwerkverbindung mit den Standard-QEMU-Parametern hergestellt. Wenn @var{virtio?} wahr ist, werden zusätzliche Kernel-Module geladen, damit die initrd als ein QEMU-Gast paravirtualisierte Ein-/Ausgabetreiber benutzen kann."
 
 #. type: deffn
-#: doc/guix.texi:26240
+#: doc/guix.texi:30283
 msgid "When @var{volatile-root?} is true, the root file system is writable but any changes to it are lost."
 msgstr "Wenn @var{volatile-root?} wahr ist, ist Schreiben auf das Wurzeldateisystem möglich, aber Änderungen daran bleiben nicht erhalten."
 
 #. type: deffn
-#: doc/guix.texi:26242
+#: doc/guix.texi:30285
 #, no-wrap
 msgid "{Scheme Procedure} base-initrd @var{file-systems} @"
 msgstr "{Scheme-Prozedur} base-initrd @var{Dateisysteme} @"
 
 #. type: deffn
-#: doc/guix.texi:26251
-msgid "[#:mapped-devices '()] [#:keyboard-layout #f] @ [#:qemu-networking? #f] [#:volatile-root? #f] @ [#:linux-modules '()] Return as a file-like object a generic initrd, with kernel modules taken from @var{linux}.  @var{file-systems} is a list of file-systems to be mounted by the initrd, possibly in addition to the root file system specified on the kernel command line via @code{--root}.  @var{mapped-devices} is a list of device mappings to realize before @var{file-systems} are mounted."
-msgstr "[#:mapped-devices '()] [#:keyboard-layout #f] @ [#:qemu-networking? #f] [#:volatile-root? #f] @ [#:linux-modules '()] Liefert eine allgemein anwendbare, generische initrd als dateiartiges Objekt mit den Kernel-Modulen aus @var{linux}. Die @var{file-systems} sind eine Liste von durch die initrd einzubindenden Dateisystemen, unter Umständen zusätzlich zum Wurzeldateisystem, das auf der Kernel-Befehlszeile mit @code{--root} angegeben wurde. Die @var{mapped-devices} sind eine Liste von Gerätezuordnungen, die hergestellt sein müssen, bevor die @var{file-systems} eingebunden werden."
+#: doc/guix.texi:30294
+msgid "[#:mapped-devices '()] [#:keyboard-layout #f] @ [#:qemu-networking? #f] [#:volatile-root? #f] @ [#:linux-modules '()] Return as a file-like object a generic initrd, with kernel modules taken from @var{linux}.  @var{file-systems} is a list of file-systems to be mounted by the initrd, possibly in addition to the root file system specified on the kernel command line via @option{--root}.  @var{mapped-devices} is a list of device mappings to realize before @var{file-systems} are mounted."
+msgstr "[#:mapped-devices '()] [#:keyboard-layout #f] @ [#:qemu-networking? #f] [#:volatile-root? #f] @ [#:linux-modules '()] Liefert eine allgemein anwendbare, generische initrd als dateiartiges Objekt mit den Kernel-Modulen aus @var{linux}. Die @var{file-systems} sind eine Liste von durch die initrd einzubindenden Dateisystemen, unter Umständen zusätzlich zum Wurzeldateisystem, das auf der Kernel-Befehlszeile mit @option{--root} angegeben wurde. Die @var{mapped-devices} sind eine Liste von Gerätezuordnungen, die hergestellt sein müssen, bevor die @var{file-systems} eingebunden werden."
 
 #. type: deffn
-#: doc/guix.texi:26259
+#: doc/guix.texi:30302
 msgid "@var{qemu-networking?} and @var{volatile-root?} behaves as in @code{raw-initrd}."
 msgstr "@var{qemu-networking?} und @var{volatile-root?} verhalten sich wie bei @code{raw-initrd}."
 
 #. type: deffn
-#: doc/guix.texi:26264
+#: doc/guix.texi:30307
 msgid "The initrd is automatically populated with all the kernel modules necessary for @var{file-systems} and for the given options.  Additional kernel modules can be listed in @var{linux-modules}.  They will be added to the initrd, and loaded at boot time in the order in which they appear."
 msgstr "In die initrd werden automatisch alle Kernel-Module eingefügt, die für die unter @var{file-systems} angegebenen Dateisysteme und die angegebenen Optionen nötig sind. Zusätzliche Kernel-Module können unter den @var{linux-modules} aufgeführt werden. Diese werden zur initrd hinzugefügt und zur Boot-Zeit in der Reihenfolge geladen, in der sie angegeben wurden."
 
 #. type: Plain text
-#: doc/guix.texi:26271
+#: doc/guix.texi:30314
 msgid "Needless to say, the initrds we produce and use embed a statically-linked Guile, and the initialization program is a Guile program.  That gives a lot of flexibility.  The @code{expression->initrd} procedure builds such an initrd, given the program to run in that initrd."
 msgstr "Selbstverständlich betten die hier erzeugten und benutzten initrds ein statisch gebundenes Guile ein und das Initialisierungsprogramm ist ein Guile-Programm. Dadurch haben wir viel Flexibilität. Die Prozedur @code{expression->initrd} erstellt eine solche initrd für ein an sie übergebenes Programm."
 
 #. type: deffn
-#: doc/guix.texi:26272
+#: doc/guix.texi:30315
 #, no-wrap
 msgid "{Scheme Procedure} expression->initrd @var{exp} @"
 msgstr "{Scheme-Prozedur} expression->initrd @var{G-Ausdruck} @"
 
 #. type: deffn
-#: doc/guix.texi:26278
-msgid "[#:guile %guile-static-stripped] [#:name \"guile-initrd\"] Return as a file-like object a Linux initrd (a gzipped cpio archive)  containing @var{guile} and that evaluates @var{exp}, a G-expression, upon booting.  All the derivations referenced by @var{exp} are automatically copied to the initrd."
-msgstr "[#:guile %guile-static-stripped] [#:name \"guile-initrd\"] Liefert eine Linux-initrd (d.h.@: ein gzip-komprimiertes cpio-Archiv) als dateiartiges Objekt, in dem @var{guile} enthalten ist, womit der @var{G-Ausdruck} nach dem Booten ausgewertet wird. Alle vom @var{G-Ausdruck} referenzierten Ableitungen werden automatisch in die initrd kopiert."
+#: doc/guix.texi:30321
+msgid "[#:guile %guile-3.0-static-stripped] [#:name \"guile-initrd\"] Return as a file-like object a Linux initrd (a gzipped cpio archive)  containing @var{guile} and that evaluates @var{exp}, a G-expression, upon booting.  All the derivations referenced by @var{exp} are automatically copied to the initrd."
+msgstr "[#:guile %guile-3.0-static-stripped] [#:name \"guile-initrd\"] Liefert eine Linux-initrd (d.h.@: ein gzip-komprimiertes cpio-Archiv) als dateiartiges Objekt, in dem @var{guile} enthalten ist, womit der @var{G-Ausdruck} nach dem Booten ausgewertet wird. Alle vom @var{G-Ausdruck} referenzierten Ableitungen werden automatisch in die initrd kopiert."
 
 #. type: cindex
-#: doc/guix.texi:26284
+#: doc/guix.texi:30327
 #, no-wrap
 msgid "boot loader"
 msgstr "Bootloader"
 
 #. type: Plain text
-#: doc/guix.texi:26291
+#: doc/guix.texi:30334
 msgid "The operating system supports multiple bootloaders.  The bootloader is configured using @code{bootloader-configuration} declaration.  All the fields of this structure are bootloader agnostic except for one field, @code{bootloader} that indicates the bootloader to be configured and installed."
 msgstr "Das Betriebssystem unterstützt mehrere Bootloader. Der gewünschte Bootloader wird mit der @code{bootloader-configuration}-Deklaration konfiguriert. Alle Felder dieser Struktur sind für alle Bootloader gleich außer dem einen Feld @code{bootloader}, das angibt, welcher Bootloader konfiguriert und installiert werden soll."
 
 #. type: Plain text
-#: doc/guix.texi:26296
+#: doc/guix.texi:30339
 msgid "Some of the bootloaders do not honor every field of @code{bootloader-configuration}.  For instance, the extlinux bootloader does not support themes and thus ignores the @code{theme} field."
 msgstr "Manche der Bootloader setzen nicht alle Felder einer @code{bootloader-configuration} um. Zum Beispiel ignoriert der extlinux-Bootloader das @code{theme}-Feld, weil er keine eigenen Themen unterstützt."
 
 #. type: deftp
-#: doc/guix.texi:26297
+#: doc/guix.texi:30340
 #, no-wrap
 msgid "{Data Type} bootloader-configuration"
 msgstr "{Datentyp} bootloader-configuration"
 
 #. type: deftp
-#: doc/guix.texi:26299
+#: doc/guix.texi:30342
 msgid "The type of a bootloader configuration declaration."
 msgstr "Der Typ der Deklaration einer Bootloader-Konfiguration."
 
 #. type: cindex
-#: doc/guix.texi:26303
+#: doc/guix.texi:30346
 #, no-wrap
 msgid "EFI, bootloader"
 msgstr "EFI, Bootloader"
 
 #. type: cindex
-#: doc/guix.texi:26304
+#: doc/guix.texi:30347
 #, no-wrap
 msgid "UEFI, bootloader"
 msgstr "UEFI, Bootloader"
 
 #. type: cindex
-#: doc/guix.texi:26305
+#: doc/guix.texi:30348
 #, no-wrap
 msgid "BIOS, bootloader"
 msgstr "BIOS, Bootloader"
 
 #. type: table
-#: doc/guix.texi:26309
-msgid "The bootloader to use, as a @code{bootloader} object. For now @code{grub-bootloader}, @code{grub-efi-bootloader}, @code{extlinux-bootloader} and @code{u-boot-bootloader} are supported."
-msgstr "Der zu benutzende Bootloader als ein @code{bootloader}-Objekt. Zur Zeit werden @code{grub-bootloader}, @code{grub-efi-bootloader}, @code{extlinux-bootloader} und @code{u-boot-bootloader} unterstützt."
-
-#. type: table
-#: doc/guix.texi:26315
-msgid "@code{grub-efi-bootloader} allows to boot on modern systems using the @dfn{Unified Extensible Firmware Interface} (UEFI).  This is what you should use if the installation image contains a @file{/sys/firmware/efi} directory when you boot it on your system."
-msgstr "@code{grub-efi-bootloader} macht es möglich, auf modernen Systemen mit @dfn{Unified Extensible Firmware Interface} (UEFI) zu booten. Sie sollten das hier benutzen, wenn im Installationsabbild ein Verzeichnis @file{/sys/firmware/efi} vorhanden ist, wenn Sie davon auf Ihrem System booten."
-
-#. type: table
-#: doc/guix.texi:26319
-msgid "@code{grub-bootloader} allows you to boot in particular Intel-based machines in ``legacy'' BIOS mode."
-msgstr "Mit @code{grub-bootloader} können Sie vor allem auf Intel-basierten Maschinen im alten „Legacy“-BIOS-Modus booten."
+#: doc/guix.texi:30353
+msgid "The bootloader to use, as a @code{bootloader} object. For now @code{grub-bootloader}, @code{grub-efi-bootloader}, @code{grub-efi-netboot-bootloader}, @code{extlinux-bootloader} and @code{u-boot-bootloader} are supported."
+msgstr "Der zu benutzende Bootloader als ein @code{bootloader}-Objekt. Zurzeit werden @code{grub-bootloader}, @code{grub-efi-bootloader}, @code{grub-efi-netboot-bootloader}, @code{extlinux-bootloader} und @code{u-boot-bootloader} unterstützt."
 
 #. type: cindex
-#: doc/guix.texi:26320
+#: doc/guix.texi:30354
 #, no-wrap
 msgid "ARM, bootloaders"
 msgstr "ARM, Bootloader"
 
 #. type: cindex
-#: doc/guix.texi:26321
+#: doc/guix.texi:30355
 #, no-wrap
 msgid "AArch64, bootloaders"
 msgstr "AArch64, Bootloader"
 
 #. type: table
-#: doc/guix.texi:26326
+#: doc/guix.texi:30360
 msgid "Available bootloaders are described in @code{(gnu bootloader @dots{})} modules.  In particular, @code{(gnu bootloader u-boot)} contains definitions of bootloaders for a wide range of ARM and AArch64 systems, using the @uref{https://www.denx.de/wiki/U-Boot/, U-Boot bootloader}."
 msgstr "Verfügbare Bootloader werden in den Modulen @code{(gnu bootloader …)} beschrieben. Insbesondere enthält @code{(gnu bootloader u-boot)} Definitionen für eine Vielzahl von ARM- und AArch64-Systemen, die den @uref{https://www.denx.de/wiki/U-Boot/, U-Boot-Bootloader} benutzen."
 
 #. type: table
-#: doc/guix.texi:26330
+#: doc/guix.texi:30366
+msgid "@code{grub-efi-bootloader} allows to boot on modern systems using the @dfn{Unified Extensible Firmware Interface} (UEFI).  This is what you should use if the installation image contains a @file{/sys/firmware/efi} directory when you boot it on your system."
+msgstr "@code{grub-efi-bootloader} macht es möglich, auf modernen Systemen mit @dfn{Unified Extensible Firmware Interface} (UEFI) zu booten. Sie sollten das hier benutzen, wenn im Installationsabbild ein Verzeichnis @file{/sys/firmware/efi} vorhanden ist, wenn Sie davon auf Ihrem System booten."
+
+#. type: table
+#: doc/guix.texi:30370
+msgid "@code{grub-bootloader} allows you to boot in particular Intel-based machines in ``legacy'' BIOS mode."
+msgstr "Mit @code{grub-bootloader} können Sie vor allem auf Intel-basierten Maschinen im alten „Legacy“-BIOS-Modus booten."
+
+#. type: vindex
+#: doc/guix.texi:30371
+#, no-wrap
+msgid "grub-efi-netboot-bootloader"
+msgstr "grub-efi-netboot-bootloader"
+
+#. type: table
+#: doc/guix.texi:30375
+msgid "@code{grub-efi-netboot-bootloader} allows you to boot your system over network through TFTP.  In combination with an NFS root file system this allows you to build a diskless Guix system."
+msgstr "Mit @code{grub-efi-netboot-bootloader} können Sie Ihr System @i{via} TFTP über das Netzwerk booten. Zusammen mit einem über NFS eingebundenen Wurzeldateisystem können Sie damit ein Guix-System ohne Plattenlaufwerk einrichten."
+
+#. type: table
+#: doc/guix.texi:30381
+msgid "The installation of the @code{grub-efi-netboot-bootloader} generates the content of the TFTP root directory at @code{target} (@pxref{Bootloader Configuration, @code{target}}), to be served by a TFTP server.  You may want to mount your TFTP server directory onto @code{target} to move the required files to the TFTP server automatically."
+msgstr "Bei der Installation des @code{grub-efi-netboot-bootloader} wird der Inhalt des als @code{target} angegebenen TFTP-Wurzelverzeichnisses erzeugt (siehe @ref{Bootloader Configuration, @code{target}}), so dass es von einem TFTP-Server bereitgestellt werden kann. Vielleicht möchten Sie dazu Ihr TFTP-Serververzeichnis zuvor als @code{target} einbinden, damit die benötigten Dateien direkt auf den TFTP-Server aufgespielt werden."
+
+#. type: table
+#: doc/guix.texi:30390
+msgid "If you plan to use an NFS root file system as well (actually if you mount the store from an NFS share), then the TFTP server needs to serve the file @file{/boot/grub/grub.cfg} and other files from the store (like GRUBs background image, the kernel (@pxref{operating-system Reference, @code{kernel}}) and the initrd (@pxref{operating-system Reference, @code{initrd}})), too.  All these files from the store will be accessed by GRUB through TFTP with their normal store path, for example as @file{tftp://tftp-server/gnu/store/…-initrd/initrd.cpio.gz}."
+msgstr ""
+"Wenn Sie außerdem vorhaben, ein NFS-Wurzeldateisystem zu benutzen (eigentlich auch, wenn Sie bloß den Store von einer NFS-Freigabe laden möchten), dann muss der TFTP-Server auch die Datei @file{/boot/grub/grub.cfg} und die anderen Dateien vom Store zur Verfügung stellen, etwa GRUBs Hintergrundbild, den Kernel (siehe\n"
+"@ref{operating-system Reference, @code{kernel}}) und auch die initrd (siehe @ref{operating-system Reference, @code{initrd}}). Auf all diese Store-Dateien greift GRUB @i{via} TFTP über ihren normalen Store-Pfad zu, z.B.@: über @file{tftp://tftp-server/gnu/store/…-initrd/initrd.cpio.gz}."
+
+#. type: table
+#: doc/guix.texi:30398
+msgid "Two symlinks are created to make this possible.  The first symlink is @code{target}@file{/efi/Guix/boot/grub/grub.cfg} pointing to @file{../../../boot/grub/grub.cfg}, where @code{target} may be @file{/boot}.  In this case the link is not leaving the served TFTP root directory, but otherwise it does.  The second link is @code{target}@file{/gnu/store} and points to @file{../gnu/store}.  This link is leaving the served TFTP root directory."
+msgstr "Um das möglich zu machen, erzeugt Guix zwei symbolische Verknüpfungen. Die erste ist @code{target}@file{/efi/Guix/boot/grub/grub.cfg}, die auf @file{../../../boot/grub/grub.cfg} zeigt, wobei das @code{target} dem Pfad @file{/boot} entsprechen kann. In diesem Fall verlässt die Verknüpfung das zugänglich gemachte TFTP-Wurzelverzeichnis @emph{nicht}, in den anderen Fällen schon. Die zweite Verknüpfung ist @code{target}@file{/gnu/store} und zeigt auf @file{../gnu/store}. Diese Verknüpfung verlässt das zugänglich gemachte TFTP-Wurzelverzeichnis."
+
+#. type: table
+#: doc/guix.texi:30403
+msgid "The assumption behind all this is that you have an NFS server exporting the root file system for your Guix system, and additionally a TFTP server exporting your @code{target} directory—usually @file{/boot}—from that same root file system for your Guix system.  In this constellation the symlinks will work."
+msgstr "Die Annahme hinter all dem ist, dass Sie einen NFS-Server haben, der das Wurzelverzeichnis für Ihr Guix-System exportiert, und außerdem einen TFTP-Server haben, der das als @code{target} angegebene Verzeichnis liefert — normalerweise ist das @file{/boot} —, was in demselben Wurzelverzeichnis Ihres Guix-Systems gespeichert vorliegt. In dieser Konstellation werden die symbolischen Verknüpfungen funktionieren."
+
+#. type: table
+#: doc/guix.texi:30407
+msgid "For other constellations you will have to program your own bootloader installer, which then takes care to make necessary files from the store accessible through TFTP, for example by copying them into the TFTP root directory at @code{target}."
+msgstr "Bei anderen Konstellationen werden Sie Ihre eigene Bootloader-Installationsprozedur programmieren müssen, die sich darum kümmert, die nötigen Dateien aus dem Store über TFTP zugänglich zu machen, zum Beispiel indem diese in das TFTP-Wurzeldateisystem unter @code{target} kopiert werden."
+
+#. type: table
+#: doc/guix.texi:30412
+msgid "It is important to note that symlinks pointing outside the TFTP root directory may need to be allowed in the configuration of your TFTP server.  Further the store link exposes the whole store through TFTP.  Both points need to be considered carefully for security aspects."
+msgstr "Es ist wichtig, anzumerken, dass symbolische Verknüpfungen nach außerhalb des TFTP-Wurzelverzeichnisses vielleicht erst in der Konfiguration zugelassen werden müssen. Außerdem wird durch die Store-Verknüpfung der gesamte Store über TFTP offengelegt. Beides hat Auswirkungen auf die Informationssicherheit, welche Sie bedenken sollten."
+
+#. type: table
+#: doc/guix.texi:30417
+msgid "Beside the @code{grub-efi-netboot-bootloader}, the already mentioned TFTP and NFS servers, you also need a properly configured DHCP server to make the booting over netboot possible.  For all this we can currently only recommend you to look for instructions about @acronym{PXE, Preboot eXecution Environment}."
+msgstr "Abgesehen vom @code{grub-efi-netboot-bootloader} und den bereits erwähnten TFTP- und NFS-Servern brauchen Sie auch einen passend eingerichteten DHCP-Server, der das Booten über das Netzwerk möglich macht. Derzeit können wir Ihnen bei all dem nur empfehlen, Anleitungen über die @acronym{PXE, Preboot eXecution Environment} ausfindig zu machen."
+
+#. type: table
+#: doc/guix.texi:30421
 msgid "This is a string denoting the target onto which to install the bootloader."
 msgstr "Eine Zeichenkette, die angibt, auf welches Ziel der Bootloader installiert werden soll."
 
 #. type: table
-#: doc/guix.texi:26337
-msgid "The interpretation depends on the bootloader in question.  For @code{grub-bootloader}, for example, it should be a device name understood by the bootloader @command{installer} command, such as @code{/dev/sda} or @code{(hd0)} (@pxref{Invoking grub-install,,, grub, GNU GRUB Manual}).  For @code{grub-efi-bootloader}, it should be the mount point of the EFI file system, usually @file{/boot/efi}."
-msgstr "Was das bedeutet, hängt vom jeweiligen Bootloader ab. Für @code{grub-bootloader} sollte hier zum Beispiel ein Gerätename angegeben werden, der vom @command{installer}-Befehl des Bootloaders verstanden wird, etwa @code{/dev/sda} oder @code{(hd0)} (siehe @ref{Invoking grub-install,,, grub, GNU GRUB Manual}). Für @code{grub-efi-bootloader} sollte der Einhängepunkt des EFI-Dateisystems angegeben werden, in der Regel @file{/boot/efi}."
+#: doc/guix.texi:30430
+msgid "The interpretation depends on the bootloader in question.  For @code{grub-bootloader}, for example, it should be a device name understood by the bootloader @command{installer} command, such as @code{/dev/sda} or @code{(hd0)} (@pxref{Invoking grub-install,,, grub, GNU GRUB Manual}).  For @code{grub-efi-bootloader}, it should be the mount point of the EFI file system, usually @file{/boot/efi}.  For @code{grub-efi-netboot-bootloader}, @code{target} should be the mount point corresponding to the TFTP root directory of your TFTP server."
+msgstr "Was das bedeutet, hängt vom jeweiligen Bootloader ab. Für @code{grub-bootloader} sollte hier zum Beispiel ein Gerätename angegeben werden, der vom @command{installer}-Befehl des Bootloaders verstanden wird, etwa @code{/dev/sda} oder @code{(hd0)} (siehe @ref{Invoking grub-install,,, grub, GNU GRUB Manual}). Für @code{grub-efi-bootloader} sollte der Einhängepunkt des EFI-Dateisystems angegeben werden, in der Regel @file{/boot/efi}. Für @code{grub-efi-netboot-bootloader} sollte @code{target} der Einhängepunkt sein, unter dem das TFTP-Wurzelverzeichnis Ihres TFTP-Servers erreichbar ist."
 
 #. type: item
-#: doc/guix.texi:26338
+#: doc/guix.texi:30431
 #, no-wrap
 msgid "@code{menu-entries} (default: @code{()})"
 msgstr "@code{menu-entries} (Vorgabe: @code{()})"
 
 #. type: table
-#: doc/guix.texi:26342
+#: doc/guix.texi:30435
 msgid "A possibly empty list of @code{menu-entry} objects (see below), denoting entries to appear in the bootloader menu, in addition to the current system entry and the entry pointing to previous system generations."
 msgstr "Eine möglicherweise leere Liste von @code{menu-entry}-Objekten (siehe unten), die für Menüeinträge stehen, die im Bootloader-Menü auftauchen sollen, zusätzlich zum aktuellen Systemeintrag und dem auf vorherige Systemgenerationen verweisenden Eintrag."
 
 #. type: item
-#: doc/guix.texi:26343
+#: doc/guix.texi:30436
 #, no-wrap
 msgid "@code{default-entry} (default: @code{0})"
 msgstr "@code{default-entry} (Vorgabe: @code{0})"
 
 #. type: table
-#: doc/guix.texi:26346
+#: doc/guix.texi:30439
 msgid "The index of the default boot menu entry.  Index 0 is for the entry of the current system."
 msgstr "Die Position des standardmäßig ausgewählten Bootmenü-Eintrags. An Position 0 steht der Eintrag der aktuellen Systemgeneration."
 
 #. type: item
-#: doc/guix.texi:26347
+#: doc/guix.texi:30440
 #, no-wrap
 msgid "@code{timeout} (default: @code{5})"
 msgstr "@code{timeout} (Vorgabe: @code{5})"
 
 #. type: table
-#: doc/guix.texi:26350
+#: doc/guix.texi:30443
 msgid "The number of seconds to wait for keyboard input before booting.  Set to 0 to boot immediately, and to -1 to wait indefinitely."
-msgstr "Wieviele Sekunden lang im Menü auf eine Tastatureingabe gewartet wird, bevor gebootet wird. 0 steht für sofortiges Booten, für -1 wird ohne Zeitbeschränkung gewartet."
+msgstr "Wie viele Sekunden lang im Menü auf eine Tastatureingabe gewartet wird, bevor gebootet wird. 0 steht für sofortiges Booten, für -1 wird ohne Zeitbeschränkung gewartet."
 
 #. type: cindex
-#: doc/guix.texi:26351
+#: doc/guix.texi:30444
 #, no-wrap
 msgid "keyboard layout, for the bootloader"
 msgstr "Tastaturbelegung, beim Bootloader"
 
 #. type: table
-#: doc/guix.texi:26355
+#: doc/guix.texi:30448
 msgid "If this is @code{#f}, the bootloader's menu (if any) uses the default keyboard layout, usually US@tie{}English (``qwerty'')."
 msgstr "Wenn dies auf @code{#f} gesetzt ist, verwendet das Menü des Bootloaders (falls vorhanden) die Vorgabe-Tastaturbelegung, normalerweise US@tie{}English („qwerty“)."
 
 #. type: table
-#: doc/guix.texi:26358
+#: doc/guix.texi:30451
 msgid "Otherwise, this must be a @code{keyboard-layout} object (@pxref{Keyboard Layout})."
 msgstr "Andernfalls muss es ein @code{keyboard-layout}-Objekt sein (siehe @ref{Keyboard Layout})."
 
 #. type: quotation
-#: doc/guix.texi:26362
+#: doc/guix.texi:30455
 msgid "This option is currently ignored by bootloaders other than @code{grub} and @code{grub-efi}."
 msgstr "Dieses Feld wird derzeit von Bootloadern außer @code{grub} und @code{grub-efi} ignoriert."
 
 #. type: item
-#: doc/guix.texi:26364
+#: doc/guix.texi:30457
 #, no-wrap
 msgid "@code{theme} (default: @var{#f})"
 msgstr "@code{theme} (Vorgabe: @var{#f})"
 
 #. type: table
-#: doc/guix.texi:26368
+#: doc/guix.texi:30461
 msgid "The bootloader theme object describing the theme to use.  If no theme is provided, some bootloaders might use a default theme, that's true for GRUB."
 msgstr "Ein Objekt für das im Bootloader anzuzeigende Thema. Wird kein Thema angegeben, benutzen manche Bootloader vielleicht ein voreingestelltes Thema; GRUB zumindest macht es so."
 
 #. type: item
-#: doc/guix.texi:26369
+#: doc/guix.texi:30462
 #, no-wrap
 msgid "@code{terminal-outputs} (default: @code{'(gfxterm)})"
 msgstr "@code{terminal-outputs} (Vorgabe: @code{'(gfxterm)})"
 
 #. type: table
-#: doc/guix.texi:26376
+#: doc/guix.texi:30469
 msgid "The output terminals used for the bootloader boot menu, as a list of symbols.  GRUB accepts the values: @code{console}, @code{serial}, @code{serial_@{0-3@}}, @code{gfxterm}, @code{vga_text}, @code{mda_text}, @code{morse}, and @code{pkmodem}.  This field corresponds to the GRUB variable @code{GRUB_TERMINAL_OUTPUT} (@pxref{Simple configuration,,, grub,GNU GRUB manual})."
 msgstr "Die Ausgabeterminals, die für das Boot-Menü des Bootloaders benutzt werden, als eine Liste von Symbolen. GRUB akzeptiert hier diese Werte: @code{console}, @code{serial}, @code{serial_@{0–3@}}, @code{gfxterm}, @code{vga_text}, @code{mda_text}, @code{morse} und @code{pkmodem}. Dieses Feld entspricht der GRUB-Variablen @code{GRUB_TERMINAL_OUTPUT} (siehe @ref{Simple configuration,,, grub,Handbuch von GNU GRUB})."
 
 #. type: item
-#: doc/guix.texi:26377
+#: doc/guix.texi:30470
 #, no-wrap
 msgid "@code{terminal-inputs} (default: @code{'()})"
 msgstr "@code{terminal-inputs} (Vorgabe: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:26385
+#: doc/guix.texi:30478
 msgid "The input terminals used for the bootloader boot menu, as a list of symbols.  For GRUB, the default is the native platform terminal as determined at run-time.  GRUB accepts the values: @code{console}, @code{serial}, @code{serial_@{0-3@}}, @code{at_keyboard}, and @code{usb_keyboard}.  This field corresponds to the GRUB variable @code{GRUB_TERMINAL_INPUT} (@pxref{Simple configuration,,, grub,GNU GRUB manual})."
 msgstr "Die Eingabeterminals, die für das Boot-Menü des Bootloaders benutzt werden, als eine Liste von Symbolen. GRUB verwendet hier das zur Laufzeit bestimmte Standardterminal. GRUB akzeptiert sonst diese Werte: @code{console}, @code{serial}, @code{serial_@{0-3@}}, @code{at_keyboard} und @code{usb_keyboard}. Dieses Feld entspricht der GRUB-Variablen @code{GRUB_TERMINAL_INPUT} (siehe @ref{Simple configuration,,, grub,Handbuch von GNU GRUB})."
 
 #. type: item
-#: doc/guix.texi:26386
+#: doc/guix.texi:30479
 #, no-wrap
 msgid "@code{serial-unit} (default: @code{#f})"
 msgstr "@code{serial-unit} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:26390
+#: doc/guix.texi:30483
 msgid "The serial unit used by the bootloader, as an integer from 0 to 3.  For GRUB, it is chosen at run-time; currently GRUB chooses 0, which corresponds to COM1 (@pxref{Serial terminal,,, grub,GNU GRUB manual})."
 msgstr "Die serielle Einheit, die der Bootloader benutzt, als eine ganze Zahl zwischen 0 und 3, einschließlich. Für GRUB wird sie automatisch zur Laufzeit ausgewählt; derzeit wählt GRUB die 0 aus, die COM1 entspricht (siehe @ref{Serial terminal,,, grub,Handbuch von GNU GRUB})."
 
 #. type: item
-#: doc/guix.texi:26391
+#: doc/guix.texi:30484
 #, no-wrap
 msgid "@code{serial-speed} (default: @code{#f})"
 msgstr "@code{serial-speed} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:26395
+#: doc/guix.texi:30488
 msgid "The speed of the serial interface, as an integer.  For GRUB, the default value is chosen at run-time; currently GRUB chooses 9600@tie{}bps (@pxref{Serial terminal,,, grub,GNU GRUB manual})."
 msgstr "Die Geschwindigkeit der seriellen Schnittstelle als eine ganze Zahl. GRUB bestimmt den Wert standardmäßig zur Laufzeit; derzeit wählt GRUB 9600@tie{}bps (siehe @ref{Serial terminal,,, grub,Handbuch von GNU GRUB})."
 
 #. type: cindex
-#: doc/guix.texi:26399
+#: doc/guix.texi:30492
 #, no-wrap
 msgid "dual boot"
 msgstr "Dual-Boot"
 
 #. type: cindex
-#: doc/guix.texi:26400
+#: doc/guix.texi:30493
 #, no-wrap
 msgid "boot menu"
 msgstr "Bootmenü"
 
 #. type: Plain text
-#: doc/guix.texi:26406
+#: doc/guix.texi:30499
 msgid "Should you want to list additional boot menu entries @i{via} the @code{menu-entries} field above, you will need to create them with the @code{menu-entry} form.  For example, imagine you want to be able to boot another distro (hard to imagine!), you can define a menu entry along these lines:"
 msgstr "Sollten Sie zusätzliche Bootmenü-Einträge über das oben beschriebene @code{menu-entries}-Feld hinzufügen möchten, müssen Sie diese mit der @code{menu-entry}-Form erzeugen. Stellen Sie sich zum Beispiel vor, Sie wollten noch eine andere Distribution booten können (schwer vorstellbar!), dann könnten Sie einen Menüeintrag wie den Folgenden definieren:"
 
 #. type: lisp
-#: doc/guix.texi:26413
+#: doc/guix.texi:30506
 #, no-wrap
 msgid ""
 "(menu-entry\n"
@@ -49265,204 +56547,269 @@ msgstr ""
 "  (initrd \"/boot/old/initrd\"))\n"
 
 #. type: Plain text
-#: doc/guix.texi:26416
+#: doc/guix.texi:30509
 msgid "Details below."
 msgstr "Details finden Sie unten."
 
 #. type: deftp
-#: doc/guix.texi:26417
+#: doc/guix.texi:30510
 #, no-wrap
 msgid "{Data Type} menu-entry"
 msgstr "{Datentyp} menu-entry"
 
 #. type: deftp
-#: doc/guix.texi:26419
+#: doc/guix.texi:30512
 msgid "The type of an entry in the bootloader menu."
 msgstr "Der Typ eines Eintrags im Bootloadermenü."
 
 #. type: table
-#: doc/guix.texi:26424
+#: doc/guix.texi:30517
 msgid "The label to show in the menu---e.g., @code{\"GNU\"}."
 msgstr "Die Beschriftung, die im Menü gezeigt werden soll — z.B.@: @code{\"GNU\"}."
 
-#. type: code{#1}
-#: doc/guix.texi:26425
+#. type: item
+#: doc/guix.texi:30518
 #, no-wrap
-msgid "linux"
-msgstr "linux"
+msgid "@code{linux} (default: @code{#f})"
+msgstr "@code{linux} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:26427
+#: doc/guix.texi:30520
 msgid "The Linux kernel image to boot, for example:"
 msgstr "Das Linux-Kernel-Abbild, was gebootet werden soll, zum Beispiel:"
 
 #. type: lisp
-#: doc/guix.texi:26430
+#: doc/guix.texi:30523
 #, no-wrap
 msgid "(file-append linux-libre \"/bzImage\")\n"
 msgstr "(file-append linux-libre \"/bzImage\")\n"
 
 #. type: table
-#: doc/guix.texi:26435
+#: doc/guix.texi:30528
 msgid "For GRUB, it is also possible to specify a device explicitly in the file path using GRUB's device naming convention (@pxref{Naming convention,,, grub, GNU GRUB manual}), for example:"
 msgstr "Für GRUB kann hier auch ein Gerät ausdrücklich zum Dateipfad angegeben werden, unter Verwendung von GRUBs Konventionen zur Gerätebenennung (siehe @ref{Naming convention,,, grub, Handbuch von GNU GRUB}), zum Beispiel:"
 
 #. type: example
-#: doc/guix.texi:26438
+#: doc/guix.texi:30531
 #, no-wrap
 msgid "\"(hd0,msdos1)/boot/vmlinuz\"\n"
 msgstr "\"(hd0,msdos1)/boot/vmlinuz\"\n"
 
 #. type: table
-#: doc/guix.texi:26442
+#: doc/guix.texi:30535
 msgid "If the device is specified explicitly as above, then the @code{device} field is ignored entirely."
 msgstr "Wenn das Gerät auf diese Weise ausdrücklich angegeben wird, wird das @code{device}-Feld gänzlich ignoriert."
 
 #. type: item
-#: doc/guix.texi:26443
+#: doc/guix.texi:30536
 #, no-wrap
 msgid "@code{linux-arguments} (default: @code{()})"
 msgstr "@code{linux-arguments} (Vorgabe: @code{()})"
 
 #. type: table
-#: doc/guix.texi:26446
+#: doc/guix.texi:30539
 msgid "The list of extra Linux kernel command-line arguments---e.g., @code{(\"console=ttyS0\")}."
 msgstr "Die Liste zusätzlicher Linux-Kernel-Befehlszeilenargumente — z.B.@: @code{(\"console=ttyS0\")}."
 
+#. type: item
+#: doc/guix.texi:30540
+#, no-wrap
+msgid "@code{initrd} (default: @code{#f})"
+msgstr "@code{initrd} (Vorgabe: @code{#f})"
+
 #. type: table
-#: doc/guix.texi:26450
+#: doc/guix.texi:30543
 msgid "A G-Expression or string denoting the file name of the initial RAM disk to use (@pxref{G-Expressions})."
 msgstr "Ein G-Ausdruck oder eine Zeichenkette, die den Dateinamen der initialen RAM-Disk angibt, die benutzt werden soll (siehe @ref{G-Expressions})."
 
 #. type: item
-#: doc/guix.texi:26450
+#: doc/guix.texi:30544
 #, no-wrap
 msgid "@code{device} (default: @code{#f})"
 msgstr "@code{device} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:26453
+#: doc/guix.texi:30547
 msgid "The device where the kernel and initrd are to be found---i.e., for GRUB, @dfn{root} for this menu entry (@pxref{root,,, grub, GNU GRUB manual})."
 msgstr "Das Gerät, auf dem Kernel und initrd zu finden sind — d.h.@: bei GRUB die Wurzel (@dfn{root}) dieses Menüeintrags (siehe @ref{root,,, grub, Handbuch von GNU GRUB})."
 
 #. type: table
-#: doc/guix.texi:26459
+#: doc/guix.texi:30553
 msgid "This may be a file system label (a string), a file system UUID (a bytevector, @pxref{File Systems}), or @code{#f}, in which case the bootloader will search the device containing the file specified by the @code{linux} field (@pxref{search,,, grub, GNU GRUB manual}).  It must @emph{not} be an OS device name such as @file{/dev/sda1}."
 msgstr "Dies kann eine Dateisystembezeichnung (als Zeichenkette), eine Dateisystem-UUID (als Bytevektor, siehe @ref{File Systems}) oder @code{#f} sein, im letzten Fall wird der Bootloader auf dem Gerät suchen, das die vom @code{linux}-Feld benannte Datei enthält (siehe @ref{search,,, grub, Handbuch von GNU GRUB}). Ein vom Betriebssystem vergebener Gerätename wie @file{/dev/sda1} ist aber @emph{nicht} erlaubt."
 
+#. type: item
+#: doc/guix.texi:30554
+#, no-wrap
+msgid "@code{multiboot-kernel} (default: @code{#f})"
+msgstr "@code{multiboot-kernel} (Vorgabe: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:30558
+msgid "The kernel to boot in Multiboot-mode (@pxref{multiboot,,, grub, GNU GRUB manual}).  When this field is set, a Multiboot menu-entry is generated.  For example:"
+msgstr "Der Kernel, der im Multiboot-Modus gebootet werden soll (siehe @ref{multiboot,,, grub, GNU GRUB manual}). Wenn dieses Feld gesetzt ist, wird ein Multiboot-Menüeintrag erzeugt. Zum Beispiel:"
+
+#. type: lisp
+#: doc/guix.texi:30561
+#, no-wrap
+msgid "(file-append mach \"/boot/gnumach\")\n"
+msgstr "(file-append mach \"/boot/gnumach\")\n"
+
+#. type: item
+#: doc/guix.texi:30563
+#, no-wrap
+msgid "@code{multiboot-arguments} (default: @code{()})"
+msgstr "@code{multiboot-arguments} (Vorgabe: @code{()})"
+
+#. type: table
+#: doc/guix.texi:30565
+msgid "The list of extra command-line arguments for the multiboot-kernel."
+msgstr "Liste zusätzlicher Befehlszeilenoptionen für den Multiboot-Kernel."
+
+#. type: item
+#: doc/guix.texi:30566
+#, no-wrap
+msgid "@code{multiboot-modules} (default: @code{()})"
+msgstr "@code{multiboot-modules} (Vorgabe: @code{()})"
+
+#. type: table
+#: doc/guix.texi:30568
+msgid "The list of commands for loading Multiboot modules.  For example:"
+msgstr "Die Liste der Befehle zum Laden von Multiboot-Modulen. Zum Beispiel:"
+
+#. type: lisp
+#: doc/guix.texi:30574
+#, no-wrap
+msgid ""
+"(list (list (file-append hurd \"/hurd/ext2fs.static\") \"ext2fs\"\n"
+"             @dots{})\n"
+"      (list (file-append libc \"/lib/ld.so.1\") \"exec\"\n"
+"             @dots{}))\n"
+msgstr ""
+"(list (list (file-append hurd \"/hurd/ext2fs.static\") \"ext2fs\"\n"
+"             …)\n"
+"      (list (file-append libc \"/lib/ld.so.1\") \"exec\"\n"
+"             …))\n"
+
 #. type: cindex
-#: doc/guix.texi:26463 doc/guix.texi:26522
+#: doc/guix.texi:30579 doc/guix.texi:30638
 #, no-wrap
 msgid "HDPI"
 msgstr "HDPI"
 
 #. type: cindex
-#: doc/guix.texi:26464 doc/guix.texi:26523
+#: doc/guix.texi:30580 doc/guix.texi:30639
 #, no-wrap
 msgid "HiDPI"
 msgstr "HiDPI"
 
 #. type: cindex
-#: doc/guix.texi:26465 doc/guix.texi:26524
+#: doc/guix.texi:30581 doc/guix.texi:30640
 #, no-wrap
 msgid "resolution"
 msgstr "Auflösung"
 
 #. type: Plain text
-#: doc/guix.texi:26469
+#: doc/guix.texi:30585
 msgid "For now only GRUB has theme support.  GRUB themes are created using the @code{grub-theme} form, which is not fully documented yet."
-msgstr "Zur Zeit lässt nur GRUB sein Aussehen durch Themen anpassen. GRUB-Themen werden mit der @code{grub-theme}-Form erzeugt, die hier noch nicht vollständig dokumentiert ist."
+msgstr "Zurzeit lässt nur GRUB sein Aussehen durch Themen anpassen. GRUB-Themen werden mit der @code{grub-theme}-Form erzeugt, die hier noch nicht vollständig dokumentiert ist."
 
 #. type: deftp
-#: doc/guix.texi:26470
+#: doc/guix.texi:30586
 #, no-wrap
 msgid "{Data Type} grub-theme"
 msgstr "{Datentyp} grub-theme"
 
 #. type: deftp
-#: doc/guix.texi:26472
+#: doc/guix.texi:30588
 msgid "Data type representing the configuration of the GRUB theme."
 msgstr "Der Datentyp, der die Konfiguration des GRUB-Themas repräsentiert."
 
 #. type: item
-#: doc/guix.texi:26474
+#: doc/guix.texi:30590
 #, no-wrap
 msgid "@code{gfxmode} (default: @code{'(\"auto\")})"
 msgstr "@code{gfxmode} (Vorgabe: @code{'(\"auto\")})"
 
 #. type: table
-#: doc/guix.texi:26477
-msgid "The GRUB @code{gfxmode} to set (a list of screen resolution strings, see @pxref{gfxmode,,, grub, GNU GRUB manual})."
+#: doc/guix.texi:30593
+msgid "The GRUB @code{gfxmode} to set (a list of screen resolution strings, @pxref{gfxmode,,, grub, GNU GRUB manual})."
 msgstr "Welcher @code{gfxmode} für GRUB eingestellt werden soll (als eine Liste von Zeichenketten mit Bildschirmauflösungen, siehe @ref{gfxmode,,, grub, Handbuch von GNU GRUB})."
 
-#. type: defvr
-#: doc/guix.texi:26484
-msgid "This is the default GRUB theme used by the operating system if no @code{theme} field is specified in @code{bootloader-configuration} record."
-msgstr "Das vorgegebene GRUB-Thema, das vom Betriebssystem benutzt wird, wenn kein @code{theme}-Feld im @code{bootloader-configuration}-Verbundsobjekt angegeben wurde."
+#. type: deffn
+#: doc/guix.texi:30596
+#, no-wrap
+msgid "{Scheme Procedure} grub-theme"
+msgstr "{Scheme-Prozedur} grub-theme"
 
-#. type: defvr
-#: doc/guix.texi:26487
+#. type: deffn
+#: doc/guix.texi:30600
+msgid "Return the default GRUB theme used by the operating system if no @code{theme} field is specified in @code{bootloader-configuration} record."
+msgstr "Liefert das vorgegebene GRUB-Thema, das vom Betriebssystem benutzt wird, wenn kein @code{theme}-Feld im @code{bootloader-configuration}-Verbundsobjekt angegeben wurde."
+
+#. type: deffn
+#: doc/guix.texi:30603
 msgid "It comes with a fancy background image displaying the GNU and Guix logos."
 msgstr "Es wird von einem feschen Hintergrundbild begleitet, das die Logos von GNU und Guix zeigt."
 
 #. type: Plain text
-#: doc/guix.texi:26491
+#: doc/guix.texi:30607
 msgid "For example, to override the default resolution, you may use something like"
 msgstr "Um zum Beispiel eine andere Auflösung als vorgegeben zu verwenden, würden Sie so etwas schreiben:"
 
 #. type: lisp
-#: doc/guix.texi:26499
+#: doc/guix.texi:30615
 #, no-wrap
 msgid ""
 "(bootloader\n"
-" (grub-configuration\n"
+" (bootloader-configuration\n"
 " ;; @dots{}\n"
 " (theme (grub-theme\n"
-"         (inherit %default-theme)\n"
+"         (inherit (grub-theme))\n"
 "         (gfxmode '(\"1024x786x32\" \"auto\"))))))\n"
 msgstr ""
 "(bootloader\n"
-" (grub-configuration\n"
+" (bootloader-configuration\n"
 " ;; …\n"
 " (theme (grub-theme\n"
-"         (inherit %default-theme)\n"
+"         (inherit (grub-theme))\n"
 "         (gfxmode '(\"1024x786x32\" \"auto\"))))))\n"
 
 #. type: section
-#: doc/guix.texi:26502
+#: doc/guix.texi:30618
 #, no-wrap
 msgid "Invoking @code{guix system}"
 msgstr "@code{guix system} aufrufen"
 
 #. type: Plain text
-#: doc/guix.texi:26507
+#: doc/guix.texi:30623
 msgid "Once you have written an operating system declaration as seen in the previous section, it can be @dfn{instantiated} using the @command{guix system} command.  The synopsis is:"
 msgstr "Sobald Sie eine Betriebssystemdeklaration geschrieben haben, wie wir sie in den vorangehenden Abschnitten gesehen haben, kann diese @dfn{instanziiert} werden, indem Sie den Befehl @command{guix system} aufrufen. Zusammengefasst:"
 
 #. type: example
-#: doc/guix.texi:26510
+#: doc/guix.texi:30626
 #, no-wrap
 msgid "guix system @var{options}@dots{} @var{action} @var{file}\n"
 msgstr "guix system @var{Optionen}…@: @var{Aktion} @var{Datei}\n"
 
 #. type: Plain text
-#: doc/guix.texi:26516
+#: doc/guix.texi:30632
 msgid "@var{file} must be the name of a file containing an @code{operating-system} declaration.  @var{action} specifies how the operating system is instantiated.  Currently the following values are supported:"
 msgstr "@var{Datei} muss der Name einer Datei sein, in der eine Betriebssystemdeklaration als @code{operating-system}-Objekt steht. @var{Aktion} gibt an, wie das Betriebssystem instanziiert wird. Derzeit werden folgende Werte dafür unterstützt:"
 
 #. type: item
-#: doc/guix.texi:26518
+#: doc/guix.texi:30634
 #, no-wrap
 msgid "search"
 msgstr "search"
 
 #. type: table
-#: doc/guix.texi:26521
+#: doc/guix.texi:30637
 msgid "Display available service type definitions that match the given regular expressions, sorted by relevance:"
 msgstr "Verfügbare Diensttypendefinitionen anzeigen, die zum angegebenen regulären Ausdruck passen, sortiert nach Relevanz:"
 
 #. type: example
-#: doc/guix.texi:26543
+#: doc/guix.texi:30659
 #, no-wrap
 msgid ""
 "$ guix system search console\n"
@@ -49504,7 +56851,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:26549
+#: doc/guix.texi:30665
 #, no-wrap
 msgid ""
 "name: mingetty\n"
@@ -49522,7 +56869,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:26556
+#: doc/guix.texi:30672
 #, no-wrap
 msgid ""
 "name: login\n"
@@ -49542,65 +56889,71 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:26558
+#: doc/guix.texi:30674
 #, no-wrap
 msgid "@dots{}\n"
 msgstr "…\n"
 
 #. type: table
-#: doc/guix.texi:26563
+#: doc/guix.texi:30679
 msgid "As for @command{guix package --search}, the result is written in @code{recutils} format, which makes it easy to filter the output (@pxref{Top, GNU recutils databases,, recutils, GNU recutils manual})."
-msgstr "Wie auch bei @command{guix package --search} wird das Ergebnis im @code{recutils}-Format geliefert, so dass es leicht ist, die Ausgabe zu filtern (siehe @ref{Top, GNU recutils databases,, recutils, Handbuch von GNU recutils})."
+msgstr "Wie auch bei @command{guix package --search} wird das Ergebnis im @code{recutils}-Format geliefert, so dass es leicht ist, die Ausgabe zu filtern (siehe @ref{Top, GNU-recutils-Datenbanken,, recutils, Handbuch von GNU recutils})."
 
 #. type: item
-#: doc/guix.texi:26564
+#: doc/guix.texi:30680
 #, no-wrap
 msgid "reconfigure"
 msgstr "reconfigure"
 
 #. type: table
-#: doc/guix.texi:26569
+#: doc/guix.texi:30685
 msgid "Build the operating system described in @var{file}, activate it, and switch to it@footnote{This action (and the related actions @code{switch-generation} and @code{roll-back}) are usable only on systems already running Guix System.}."
 msgstr "Das in der @var{Datei} beschriebene Betriebssystem erstellen, aktivieren und zu ihm wechseln@footnote{Diese Aktion (und die dazu ähnlichen Aktionen @code{switch-generation} und @code{roll-back}) sind nur auf Systemen nutzbar, auf denen „Guix System“ bereits läuft.}."
 
 #. type: quotation
-#: doc/guix.texi:26577
+#: doc/guix.texi:30693
 msgid "It is highly recommended to run @command{guix pull} once before you run @command{guix system reconfigure} for the first time (@pxref{Invoking guix pull}).  Failing to do that you would see an older version of Guix once @command{reconfigure} has completed."
 msgstr "Es ist sehr zu empfehlen, @command{guix pull} einmal auszuführen, bevor Sie @command{guix system reconfigure} zum ersten Mal aufrufen (siehe @ref{Invoking guix pull}). Wenn Sie das nicht tun, könnten Sie nach dem Abschluss von @command{reconfigure} eine ältere Version von Guix vorfinden, als Sie vorher hatten."
 
 #. type: table
-#: doc/guix.texi:26585
+#: doc/guix.texi:30701
 msgid "This effects all the configuration specified in @var{file}: user accounts, system services, global package list, setuid programs, etc.  The command starts system services specified in @var{file} that are not currently running; if a service is currently running this command will arrange for it to be upgraded the next time it is stopped (e.g.@: by @code{herd stop X} or @code{herd restart X})."
 msgstr "Dieser Befehl setzt die in der @var{Datei} festgelegte Konfiguration vollständig um: Benutzerkonten, Systemdienste, die Liste globaler Pakete, setuid-Programme und so weiter. Der Befehl startet die in der @var{Datei} angegebenen Systemdienste, die aktuell nicht laufen; bei aktuell laufenden Diensten wird sichergestellt, dass sie aktualisiert werden, sobald sie das nächste Mal angehalten wurden (z.B.@: durch @code{herd stop X} oder @code{herd restart X})."
 
 #. type: table
-#: doc/guix.texi:26591
+#: doc/guix.texi:30707
 msgid "This command creates a new generation whose number is one greater than the current generation (as reported by @command{guix system list-generations}).  If that generation already exists, it will be overwritten.  This behavior mirrors that of @command{guix package} (@pxref{Invoking guix package})."
 msgstr "Dieser Befehl erzeugt eine neue Generation, deren Nummer (wie @command{guix system list-generations} sie anzeigt) um eins größer als die der aktuellen Generation ist. Wenn die so nummerierte Generation bereits existiert, wird sie überschrieben. Dieses Verhalten entspricht dem von @command{guix package} (siehe @ref{Invoking guix package})."
 
 #. type: table
-#: doc/guix.texi:26596
+#: doc/guix.texi:30712
 msgid "It also adds a bootloader menu entry for the new OS configuration, ---unless @option{--no-bootloader} is passed.  For GRUB, it moves entries for older configurations to a submenu, allowing you to choose an older system generation at boot time should you need it."
 msgstr "Des Weiteren wird für den Bootloader ein Menüeintrag für die neue Betriebssystemkonfiguration hinzugefügt, außer die Befehlszeilenoption @option{--no-bootloader} wurde übergeben. Bei GRUB werden Einträge für ältere Konfigurationen in ein Untermenü verschoben, so dass Sie auch eine ältere Systemgeneration beim Booten noch hochfahren können, falls es notwendig wird."
 
 #. type: cindex
-#: doc/guix.texi:26597 doc/guix.texi:26879 doc/guix.texi:27776
+#: doc/guix.texi:30713 doc/guix.texi:31016 doc/guix.texi:31959
 #, no-wrap
 msgid "provenance tracking, of the operating system"
 msgstr "Provenienzverfolgung, des Betriebssystems"
 
 #. type: table
-#: doc/guix.texi:26603
-msgid "Upon completion, the new system is deployed under @file{/run/current-system}.  This directory contains @dfn{provenance meta-data}: the list of channels in use (@pxref{Channels}) and @var{file} itself, when available.  This information is useful should you later want to inspect how this particular generation was built."
-msgstr "Nach Abschluss wird das neue System unter @file{/run/current-system} verfügbar gemacht. Das Verzeichnis enthält @dfn{Provenienz-Metadaten}: Dazu gehören die Liste der Kanäle, die benutzt wurden (siehe @ref{Channels}) und die @var{Datei} selbst, wenn sie verfügbar ist. Diese Informationen sind nützlich, falls Sie später inspizieren möchten, wie diese spezielle Generation erstellt wurde."
+#: doc/guix.texi:30718
+msgid "Upon completion, the new system is deployed under @file{/run/current-system}.  This directory contains @dfn{provenance meta-data}: the list of channels in use (@pxref{Channels}) and @var{file} itself, when available.  You can view it by running:"
+msgstr "Nach Abschluss wird das neue System unter @file{/run/current-system} verfügbar gemacht. Das Verzeichnis enthält @dfn{Provenienz-Metadaten}: Dazu gehören die Liste der Kanäle, die benutzt wurden (siehe @ref{Channels}) und die @var{Datei} selbst, wenn sie verfügbar ist. Sie können sie auf diese Weise ansehen:"
+
+#. type: example
+#: doc/guix.texi:30721
+#, no-wrap
+msgid "guix system describe\n"
+msgstr "guix system describe\n"
 
 #. type: table
-#: doc/guix.texi:26606
-msgid "In fact, assuming @var{file} is self-contained, you can later rebuild generation @var{n} of your operating system with:"
-msgstr "Tatsächlich können Sie, wenn wir annehmen, dass die @var{Datei} eigenständig ist, später die Generation @var{n} Ihres Betriebssystems neu erstellen, indem Sie dies ausführen:"
+#: doc/guix.texi:30727
+msgid "This information is useful should you later want to inspect how this particular generation was built.  In fact, assuming @var{file} is self-contained, you can later rebuild generation @var{n} of your operating system with:"
+msgstr "Diese Informationen sind nützlich, falls Sie später inspizieren möchten, wie diese spezielle Generation erstellt wurde. Falls die @var{Datei} eigenständig ist, also keine anderen Dateien zum Funktionieren braucht, dann können Sie tatsächlich die Generation @var{n} Ihres Betriebssystems später erneut erstellen mit:"
 
 #. type: example
-#: doc/guix.texi:26612
+#: doc/guix.texi:30733
 #, no-wrap
 msgid ""
 "guix time-machine \\\n"
@@ -49614,217 +56967,222 @@ msgstr ""
 "  /var/guix/profiles/system-@var{n}-link/configuration.scm\n"
 
 #. type: table
-#: doc/guix.texi:26618
+#: doc/guix.texi:30739
 msgid "You can think of it as some sort of built-in version control! Your system is not just a binary artifact: @emph{it carries its own source}.  @xref{Service Reference, @code{provenance-service-type}}, for more information on provenance tracking."
 msgstr "Sie können sich das als eine Art eingebaute Versionskontrolle vorstellen! Ihr System ist nicht nur ein binäres Erzeugnis: @emph{Es enthält seinen eigenen Quellcode}. Siehe @ref{Service Reference, @code{provenance-service-type}} für mehr Informationen zur Provenienzverfolgung."
 
+#. type: table
+#: doc/guix.texi:30745
+msgid "By default, @command{reconfigure} @emph{prevents you from downgrading your system}, which could (re)introduce security vulnerabilities and also cause problems with ``stateful'' services such as database management systems.  You can override that behavior by passing @option{--allow-downgrades}."
+msgstr "Nach Voreinstellung können Sie durch @command{reconfigure} Ihr System @emph{nicht auf eine ältere Version aktualisieren} und somit herabstufen, denn dadurch könnten Sicherheitslücken eingeführt und Probleme mit „zustandsbehafteten“ Diensten wie z.B.@: Datenbankverwaltungssystemen ausgelöst werden. Sie können das Verhalten ändern, indem Sie @option{--allow-downgrades} übergeben."
+
 #. type: item
-#: doc/guix.texi:26619
+#: doc/guix.texi:30746
 #, no-wrap
 msgid "switch-generation"
 msgstr "switch-generation"
 
 #. type: table
-#: doc/guix.texi:26628
+#: doc/guix.texi:30755
 msgid "Switch to an existing system generation.  This action atomically switches the system profile to the specified system generation.  It also rearranges the system's existing bootloader menu entries.  It makes the menu entry for the specified system generation the default, and it moves the entries for the other generations to a submenu, if supported by the bootloader being used.  The next time the system boots, it will use the specified system generation."
 msgstr "Zu einer bestehenden Systemgeneration wechseln. Diese Aktion wechselt das Systemprofil atomar auf die angegebene Systemgeneration. Hiermit werden auch die bestehenden Menüeinträge des Bootloaders umgeordnet. Der Menüeintrag für die angegebene Systemgeneration wird voreingestellt und die Einträge der anderen Generationen werden in ein Untermenü verschoben, sofern der verwendete Bootloader dies unterstützt. Das nächste Mal, wenn das System gestartet wird, wird die hier angegebene Systemgeneration hochgefahren."
 
 #. type: table
-#: doc/guix.texi:26632
+#: doc/guix.texi:30759
 msgid "The bootloader itself is not being reinstalled when using this command.  Thus, the installed bootloader is used with an updated configuration file."
 msgstr "Der Bootloader selbst wird durch diesen Befehl @emph{nicht} neu installiert. Es wird also lediglich der bereits installierte Bootloader mit einer neuen Konfigurationsdatei benutzt werden."
 
 #. type: table
-#: doc/guix.texi:26636
+#: doc/guix.texi:30763
 msgid "The target generation can be specified explicitly by its generation number.  For example, the following invocation would switch to system generation 7:"
 msgstr "Die Zielgeneration kann ausdrücklich über ihre Generationsnummer angegeben werden. Zum Beispiel würde folgender Aufruf einen Wechsel zur Systemgeneration 7 bewirken:"
 
 #. type: example
-#: doc/guix.texi:26639
+#: doc/guix.texi:30766
 #, no-wrap
 msgid "guix system switch-generation 7\n"
 msgstr "guix system switch-generation 7\n"
 
 #. type: table
-#: doc/guix.texi:26647
+#: doc/guix.texi:30774
 msgid "The target generation can also be specified relative to the current generation with the form @code{+N} or @code{-N}, where @code{+3} means ``3 generations ahead of the current generation,'' and @code{-1} means ``1 generation prior to the current generation.'' When specifying a negative value such as @code{-1}, you must precede it with @code{--} to prevent it from being parsed as an option.  For example:"
 msgstr "Die Zielgeneration kann auch relativ zur aktuellen Generation angegeben werden, in der Form @code{+N} oder @code{-N}, wobei @code{+3} zum Beispiel „3 Generationen weiter als die aktuelle Generation“ bedeuten würde und @code{-1} „1 Generation vor der aktuellen Generation“ hieße. Wenn Sie einen negativen Wert wie @code{-1} angeben, müssen Sie @code{--} der Befehlszeilenoption voranstellen, damit die negative Zahl nicht selbst als Befehlszeilenoption aufgefasst wird. Zum Beispiel:"
 
 #. type: example
-#: doc/guix.texi:26650
+#: doc/guix.texi:30777
 #, no-wrap
 msgid "guix system switch-generation -- -1\n"
 msgstr "guix system switch-generation -- -1\n"
 
 #. type: table
-#: doc/guix.texi:26658
+#: doc/guix.texi:30785
 msgid "Currently, the effect of invoking this action is @emph{only} to switch the system profile to an existing generation and rearrange the bootloader menu entries.  To actually start using the target system generation, you must reboot after running this action.  In the future, it will be updated to do the same things as @command{reconfigure}, like activating and deactivating services."
-msgstr "Zur Zeit bewirkt ein Aufruf dieser Aktion @emph{nur} einen Wechsel des Systemprofils auf eine bereits existierende Generation und ein Umordnen der Bootloader-Menüeinträge. Um die Ziel-Systemgeneration aber tatsächlich zu benutzen, müssen Sie Ihr System neu hochfahren, nachdem Sie diese Aktion ausgeführt haben. In einer zukünftigen Version von Guix wird diese Aktion einmal dieselben Dinge tun, wie @command{reconfigure}, also etwa Dienste aktivieren und deaktivieren."
+msgstr "Zurzeit bewirkt ein Aufruf dieser Aktion @emph{nur} einen Wechsel des Systemprofils auf eine bereits existierende Generation und ein Umordnen der Bootloader-Menüeinträge. Um die Ziel-Systemgeneration aber tatsächlich zu benutzen, müssen Sie Ihr System neu hochfahren, nachdem Sie diese Aktion ausgeführt haben. In einer zukünftigen Version von Guix wird diese Aktion einmal dieselben Dinge tun, wie @command{reconfigure}, also etwa Dienste aktivieren und deaktivieren."
 
 #. type: table
-#: doc/guix.texi:26660
+#: doc/guix.texi:30787
 msgid "This action will fail if the specified generation does not exist."
 msgstr "Diese Aktion schlägt fehl, wenn die angegebene Generation nicht existiert."
 
 #. type: item
-#: doc/guix.texi:26661
+#: doc/guix.texi:30788
 #, no-wrap
 msgid "roll-back"
 msgstr "roll-back"
 
 #. type: table
-#: doc/guix.texi:26667
+#: doc/guix.texi:30794
 msgid "Switch to the preceding system generation.  The next time the system boots, it will use the preceding system generation.  This is the inverse of @command{reconfigure}, and it is exactly the same as invoking @command{switch-generation} with an argument of @code{-1}."
 msgstr "Zur vorhergehenden Systemgeneration wechseln. Wenn das System das nächste Mal hochgefahren wird, wird es die vorhergehende Systemgeneration benutzen. Dies ist die Umkehrung von @command{reconfigure} und tut genau dasselbe, wie @command{switch-generation} mit dem Argument @code{-1} aufzurufen."
 
 #. type: table
-#: doc/guix.texi:26671
+#: doc/guix.texi:30798
 msgid "Currently, as with @command{switch-generation}, you must reboot after running this action to actually start using the preceding system generation."
 msgstr "Wie auch bei @command{switch-generation} müssen Sie derzeit, nachdem Sie diese Aktion aufgerufen haben, Ihr System neu starten, um die vorhergehende Systemgeneration auch tatsächlich zu benutzen."
 
 #. type: item
-#: doc/guix.texi:26672
+#: doc/guix.texi:30799
 #, no-wrap
 msgid "delete-generations"
 msgstr "delete-generations"
 
 #. type: cindex
-#: doc/guix.texi:26673
+#: doc/guix.texi:30800
 #, no-wrap
 msgid "deleting system generations"
 msgstr "Löschen von Systemgenerationen"
 
 #. type: cindex
-#: doc/guix.texi:26674
+#: doc/guix.texi:30801
 #, no-wrap
 msgid "saving space"
 msgstr "Platz sparen"
 
 #. type: table
-#: doc/guix.texi:26678
+#: doc/guix.texi:30805
 msgid "Delete system generations, making them candidates for garbage collection (@pxref{Invoking guix gc}, for information on how to run the ``garbage collector'')."
 msgstr "Systemgenerationen löschen, wodurch diese zu Kandidaten für den Müllsammler werden (siehe @ref{Invoking guix gc} für Informationen, wie Sie den „Müllsammler“ laufen lassen)."
 
 #. type: table
-#: doc/guix.texi:26682
-msgid "This works in the same way as @command{guix package --delete-generations} (@pxref{Invoking guix package, @code{--delete-generations}}).  With no arguments, all system generations but the current one are deleted:"
-msgstr "Es funktioniert auf die gleiche Weise wie @command{guix package --delete-generations} (siehe @ref{Invoking guix package, @code{--delete-generations}}). Wenn keine Argumente angegeben werden, werden alle Systemgenerationen außer der aktuellen gelöscht:"
+#: doc/guix.texi:30809
+msgid "This works in the same way as @samp{guix package --delete-generations} (@pxref{Invoking guix package, @option{--delete-generations}}).  With no arguments, all system generations but the current one are deleted:"
+msgstr "Es funktioniert auf die gleiche Weise wie @samp{guix package --delete-generations} (siehe @ref{Invoking guix package, @option{--delete-generations}}). Wenn keine Argumente angegeben werden, werden alle Systemgenerationen außer der aktuellen gelöscht:"
 
 #. type: example
-#: doc/guix.texi:26685
+#: doc/guix.texi:30812
 #, no-wrap
 msgid "guix system delete-generations\n"
 msgstr "guix system delete-generations\n"
 
 #. type: table
-#: doc/guix.texi:26689
+#: doc/guix.texi:30816
 msgid "You can also select the generations you want to delete.  The example below deletes all the system generations that are more than two month old:"
 msgstr "Sie können auch eine Auswahl treffen, welche Generationen Sie löschen möchten. Das folgende Beispiel hat die Löschung aller Systemgenerationen zur Folge, die älter als zwei Monate sind:"
 
 #. type: example
-#: doc/guix.texi:26692
+#: doc/guix.texi:30819
 #, no-wrap
 msgid "guix system delete-generations 2m\n"
 msgstr "guix system delete-generations 2m\n"
 
 #. type: table
-#: doc/guix.texi:26697
+#: doc/guix.texi:30824
 msgid "Running this command automatically reinstalls the bootloader with an updated list of menu entries---e.g., the ``old generations'' sub-menu in GRUB no longer lists the generations that have been deleted."
 msgstr "Wenn Sie diesen Befehl ausführen, wird automatisch der Bootloader mit einer aktualisierten Liste von Menüeinträgen neu erstellt — z.B.@: werden im Untermenü für die „alten Generationen“ in GRUB die gelöschten Generationen nicht mehr aufgeführt."
 
 #. type: table
-#: doc/guix.texi:26702
+#: doc/guix.texi:30829
 msgid "Build the derivation of the operating system, which includes all the configuration files and programs needed to boot and run the system.  This action does not actually install anything."
 msgstr "Die Ableitung des Betriebssystems erstellen, einschließlich aller Konfigurationsdateien und Programme, die zum Booten und Starten benötigt werden. Diese Aktion installiert jedoch nichts davon."
 
 #. type: item
-#: doc/guix.texi:26703
+#: doc/guix.texi:30830
 #, no-wrap
 msgid "init"
 msgstr "init"
 
 #. type: table
-#: doc/guix.texi:26707
+#: doc/guix.texi:30834
 msgid "Populate the given directory with all the files necessary to run the operating system specified in @var{file}.  This is useful for first-time installations of Guix System.  For instance:"
 msgstr "In das angegebene Verzeichnis alle Dateien einfügen, um das in der @var{Datei} angegebene Betriebssystem starten zu können. Dies ist nützlich bei erstmaligen Installationen von „Guix System“. Zum Beispiel:"
 
 #. type: example
-#: doc/guix.texi:26710
+#: doc/guix.texi:30837
 #, no-wrap
 msgid "guix system init my-os-config.scm /mnt\n"
 msgstr "guix system init my-os-config.scm /mnt\n"
 
 #. type: table
-#: doc/guix.texi:26717
+#: doc/guix.texi:30844
 msgid "copies to @file{/mnt} all the store items required by the configuration specified in @file{my-os-config.scm}.  This includes configuration files, packages, and so on.  It also creates other essential files needed for the system to operate correctly---e.g., the @file{/etc}, @file{/var}, and @file{/run} directories, and the @file{/bin/sh} file."
 msgstr "Hiermit werden alle Store-Objekte nach @file{/mnt} kopiert, die von der in @file{my-os-config.scm} angegebenen Konfiguration vorausgesetzt werden. Dazu gehören Konfigurationsdateien, Pakete und so weiter. Auch andere essenzielle Dateien, die auf dem System vorhanden sein müssen, damit es richtig funktioniert, werden erzeugt — z.B.@: die Verzeichnisse @file{/etc}, @file{/var} und @file{/run} und die Datei @file{/bin/sh}."
 
 #. type: table
-#: doc/guix.texi:26721
+#: doc/guix.texi:30848
 msgid "This command also installs bootloader on the target specified in @file{my-os-config}, unless the @option{--no-bootloader} option was passed."
 msgstr "Dieser Befehl installiert auch den Bootloader auf dem in @file{my-os-config} angegebenen Ziel, außer die Befehlszeilenoption @option{--no-bootloader} wurde übergeben."
 
 #. type: item
-#: doc/guix.texi:26722
+#: doc/guix.texi:30849
 #, no-wrap
 msgid "vm"
 msgstr "vm"
 
 #. type: cindex
-#: doc/guix.texi:26723 doc/guix.texi:27220
+#: doc/guix.texi:30850 doc/guix.texi:31384
 #, no-wrap
 msgid "virtual machine"
 msgstr "virtuelle Maschine"
 
 #. type: cindex
-#: doc/guix.texi:26724
+#: doc/guix.texi:30851
 #, no-wrap
 msgid "VM"
 msgstr "VM"
 
 #. type: anchor{#1}
-#: doc/guix.texi:26728
+#: doc/guix.texi:30855
 msgid "guix system vm"
 msgstr "guix system vm"
 
 #. type: table
-#: doc/guix.texi:26728
+#: doc/guix.texi:30855
 msgid "Build a virtual machine that contains the operating system declared in @var{file}, and return a script to run that virtual machine (VM)."
 msgstr "Eine virtuelle Maschine (VM) erstellen, die das in der @var{Datei} deklarierte Betriebssystem enthält, und ein Skript liefern, das diese virtuelle Maschine startet."
 
 #. type: quotation
-#: doc/guix.texi:26736
+#: doc/guix.texi:30863
 msgid "The @code{vm} action and others below can use KVM support in the Linux-libre kernel.  Specifically, if the machine has hardware virtualization support, the corresponding KVM kernel module should be loaded, and the @file{/dev/kvm} device node must exist and be readable and writable by the user and by the build users of the daemon (@pxref{Build Environment Setup})."
 msgstr "Die Aktion @code{vm} sowie solche, die weiter unten genannt werden, können KVM-Unterstützung im Kernel Linux-libre ausnutzen. Insbesondere sollte, wenn die Maschine Hardware-Virtualisierung unterstützt, das entsprechende KVM-Kernelmodul geladen sein und das Gerät @file{/dev/kvm} muss dann existieren und dem Benutzer und den Erstellungsbenutzern des Daemons müssen Berechtigungen zum Lesen und Schreiben darauf gegeben werden (siehe @ref{Build Environment Setup})."
 
 #. type: table
-#: doc/guix.texi:26741
+#: doc/guix.texi:30868
 msgid "Arguments given to the script are passed to QEMU as in the example below, which enables networking and requests 1@tie{}GiB of RAM for the emulated machine:"
 msgstr "An das Skript übergebene Argumente werden an QEMU weitergereicht, wie Sie am folgenden Beispiel sehen können. Damit würde eine Netzwerkverbindung aktiviert und 1@tie{}GiB an RAM für die emulierte Maschine angefragt:"
 
 #. type: example
-#: doc/guix.texi:26744
+#: doc/guix.texi:30871
 #, no-wrap
 msgid "$ /gnu/store/@dots{}-run-vm.sh -m 1024 -smp 2 -net user,model=virtio-net-pci\n"
 msgstr "$ /gnu/store/…-run-vm.sh -m 1024 -smp 2 -net user,model=virtio-net-pci\n"
 
 #. type: table
-#: doc/guix.texi:26747
+#: doc/guix.texi:30874
 msgid "The VM shares its store with the host system."
 msgstr "Die virtuelle Maschine verwendet denselben Store wie das Wirtssystem."
 
 #. type: table
-#: doc/guix.texi:26752
-msgid "Additional file systems can be shared between the host and the VM using the @code{--share} and @code{--expose} command-line options: the former specifies a directory to be shared with write access, while the latter provides read-only access to the shared directory."
-msgstr "Mit den Befehlszeilenoptionen @code{--share} und @code{--expose} können weitere Dateisysteme zwischen dem Wirtssystem und der VM geteilt werden: Der erste Befehl gibt ein mit Schreibzugriff zu teilendes Verzeichnis an, während der letzte Befehl nur Lesezugriff auf das gemeinsame Verzeichnis gestattet."
+#: doc/guix.texi:30879
+msgid "Additional file systems can be shared between the host and the VM using the @option{--share} and @option{--expose} command-line options: the former specifies a directory to be shared with write access, while the latter provides read-only access to the shared directory."
+msgstr "Mit den Befehlszeilenoptionen @option{--share} und @option{--expose} können weitere Dateisysteme zwischen dem Wirtssystem und der VM geteilt werden: Der erste Befehl gibt ein mit Schreibzugriff zu teilendes Verzeichnis an, während der letzte Befehl nur Lesezugriff auf das gemeinsame Verzeichnis gestattet."
 
 #. type: table
-#: doc/guix.texi:26756
+#: doc/guix.texi:30883
 msgid "The example below creates a VM in which the user's home directory is accessible read-only, and where the @file{/exchange} directory is a read-write mapping of @file{$HOME/tmp} on the host:"
 msgstr "Im folgenden Beispiel wird eine virtuelle Maschine erzeugt, die auf das Persönliche Verzeichnis des Benutzers nur Lesezugriff hat, wo das Verzeichnis @file{/austausch} aber mit Lese- und Schreibzugriff dem Verzeichnis @file{$HOME/tmp} auf dem Wirtssystem zugeordnet wurde:"
 
 #. type: example
-#: doc/guix.texi:26760
+#: doc/guix.texi:30887
 #, no-wrap
 msgid ""
 "guix system vm my-config.scm \\\n"
@@ -49834,78 +57192,83 @@ msgstr ""
 "   --expose=$HOME --share=$HOME/tmp=/austausch\n"
 
 #. type: table
-#: doc/guix.texi:26765
+#: doc/guix.texi:30892
 msgid "On GNU/Linux, the default is to boot directly to the kernel; this has the advantage of requiring only a very tiny root disk image since the store of the host can then be mounted."
 msgstr "Für GNU/Linux ist das vorgegebene Verhalten, direkt in den Kernel zu booten, wodurch nur ein sehr winziges „Disk-Image“ (eine Datei mit einem Abbild des Plattenspeichers der virtuellen Maschine) für das Wurzeldateisystem nötig wird, weil der Store des Wirtssystems davon eingebunden werden kann."
 
 #. type: table
-#: doc/guix.texi:26771
-msgid "The @code{--full-boot} option forces a complete boot sequence, starting with the bootloader.  This requires more disk space since a root image containing at least the kernel, initrd, and bootloader data files must be created.  The @code{--image-size} option can be used to specify the size of the image."
-msgstr "Mit der Befehlszeilenoption @code{--full-boot} wird erzwungen, einen vollständigen Bootvorgang durchzuführen, angefangen mit dem Bootloader. Dadurch wird mehr Plattenplatz verbraucht, weil dazu ein Disk-Image mindestens mit dem Kernel, initrd und Bootloader-Datendateien erzeugt werden muss. Mit der Befehlszeilenoption @code{--image-size} kann die Größe des Disk-Images angegeben werden."
+#: doc/guix.texi:30898
+msgid "The @option{--full-boot} option forces a complete boot sequence, starting with the bootloader.  This requires more disk space since a root image containing at least the kernel, initrd, and bootloader data files must be created.  The @option{--image-size} option can be used to specify the size of the image."
+msgstr "Mit der Befehlszeilenoption @option{--full-boot} wird erzwungen, einen vollständigen Bootvorgang durchzuführen, angefangen mit dem Bootloader. Dadurch wird mehr Plattenplatz verbraucht, weil dazu ein Disk-Image mindestens mit dem Kernel, initrd und Bootloader-Datendateien erzeugt werden muss. Mit der Befehlszeilenoption @option{--image-size} kann die Größe des Disk-Images angegeben werden."
 
 #. type: cindex
-#: doc/guix.texi:26772
+#: doc/guix.texi:30899
 #, no-wrap
 msgid "System images, creation in various formats"
 msgstr "System-Disk-Images, Erstellung in verschiedenen Formaten"
 
 #. type: cindex
-#: doc/guix.texi:26773
+#: doc/guix.texi:30900
 #, no-wrap
 msgid "Creating system images in various formats"
 msgstr "Erzeugen von System-Disk-Images in verschiedenen Formaten"
 
 #. type: item
-#: doc/guix.texi:26774
+#: doc/guix.texi:30901
 #, no-wrap
 msgid "vm-image"
 msgstr "vm-image"
 
 #. type: itemx
-#: doc/guix.texi:26775
+#: doc/guix.texi:30902
 #, no-wrap
 msgid "disk-image"
 msgstr "disk-image"
 
 #. type: itemx
-#: doc/guix.texi:26776
+#: doc/guix.texi:30903
 #, no-wrap
 msgid "docker-image"
 msgstr "docker-image"
 
 #. type: table
-#: doc/guix.texi:26784
+#: doc/guix.texi:30911
 msgid "Return a virtual machine, disk image, or Docker image of the operating system declared in @var{file} that stands alone.  By default, @command{guix system} estimates the size of the image needed to store the system, but you can use the @option{--image-size} option to specify a value.  Docker images are built to contain exactly what they need, so the @option{--image-size} option is ignored in the case of @code{docker-image}."
 msgstr "Ein eigenständiges Disk-Image für eine virtuelle Maschine, ein allgemeines Disk-Image oder ein Docker-Abbild für das in der @var{Datei} deklarierte Betriebssystem liefern. Das vorgegebene Verhalten von @command{guix system} ist, die Größe des Images zu schätzen, die zum Speichern des Systems benötigt wird, aber Sie können mit der Befehlszeilenoption @option{--image-size} selbst Ihre gewünschte Größe bestimmen. Docker-Abbilder werden aber so erstellt, dass sie gerade nur das enthalten, was für sie nötig ist, daher wird die Befehlszeilenoption @option{--image-size} im Fall von @code{docker-image} ignoriert."
 
 #. type: table
-#: doc/guix.texi:26787
-msgid "You can specify the root file system type by using the @option{--file-system-type} option.  It defaults to @code{ext4}."
-msgstr "Sie können den Dateisystemtyp für das Wurzeldateisystem mit der Befehlszeilenoption @option{--file-system-type} festlegen. Vorgegeben ist, @code{ext4} zu verwenden."
-
-#. type: table
-#: doc/guix.texi:26791
-msgid "When using @code{vm-image}, the returned image is in qcow2 format, which the QEMU emulator can efficiently use. @xref{Running Guix in a VM}, for more information on how to run the image in a virtual machine."
-msgstr "Wenn Sie ein @code{vm-image} anfordern, ist das gelieferte Disk-Image im qcow2-Format, was vom QEMU-Emulator effizient benutzt werden kann. Im Abschnitt @ref{Running Guix in a VM} finden Sie mehr Informationen, wie Sie das Disk-Image in einer virtuellen Maschine laufen lassen."
+#: doc/guix.texi:30917
+msgid "The @code{disk-image} command can produce various image types.  The image type can be selected using the @command{--image-type} option.  It defaults to @code{raw}. When its value is @code{iso9660}, the @option{--label} option can be used to specify a volume ID with @code{disk-image}."
+msgstr "Mit dem @code{disk-image}-Befehl können Sie verschiedene Typen von Abbildern erzeugen. Mit der Befehlszeilenoption @code{--image-type} können Sie den Abbildtyp auswählen. Vorgegeben ist @code{raw}. Steht ihr Wert auf @code{iso9660}, kann mit der Befehlszeilenoption @option{--label} eine Laufwerksbezeichnung („Volume ID“) benannt werden."
 
 #. type: table
-#: doc/guix.texi:26796
-msgid "When using @code{disk-image}, a raw disk image is produced; it can be copied as is to a USB stick, for instance.  Assuming @code{/dev/sdc} is the device corresponding to a USB stick, one can copy the image to it using the following command:"
-msgstr "Wenn Sie ein @code{disk-image} anfordern, wird ein rohes Disk-Image hergestellt; es kann zum Beispiel auf einen USB-Stick kopiert werden. Angenommen @code{/dev/sdc} ist das dem USB-Stick entsprechende Gerät, dann kann das Disk-Image mit dem folgenden Befehls darauf kopiert werden:"
+#: doc/guix.texi:30922
+msgid "When using the @code{raw} image type, a raw disk image is produced; it can be copied as is to a USB stick, for instance.  Assuming @code{/dev/sdc} is the device corresponding to a USB stick, one can copy the image to it using the following command:"
+msgstr "Wenn Sie den Abbildtyp @code{raw} anfordern, wird ein rohes Disk-Image hergestellt; es kann zum Beispiel auf einen USB-Stick kopiert werden. Angenommen @code{/dev/sdc} ist das dem USB-Stick entsprechende Gerät, dann kann das Disk-Image mit dem folgenden Befehls darauf kopiert werden:"
 
 #. type: example
-#: doc/guix.texi:26799
+#: doc/guix.texi:30925
 #, no-wrap
-msgid "# dd if=$(guix system disk-image my-os.scm) of=/dev/sdc\n"
-msgstr "# dd if=$(guix system disk-image my-os.scm) of=/dev/sdc\n"
+msgid "# dd if=$(guix system disk-image my-os.scm) of=/dev/sdc status=progress\n"
+msgstr "# dd if=$(guix system disk-image my-os.scm) of=/dev/sdc status=progress\n"
 
 #. type: table
-#: doc/guix.texi:26806
+#: doc/guix.texi:30929
+msgid "The @code{--list-image-types} command lists all the available image types."
+msgstr "Durch die Befehlszeilenoption @code{--list-image-types} werden alle verfügbaren Abbildtypen aufgelistet."
+
+#. type: table
+#: doc/guix.texi:30933
+msgid "When using @code{vm-image}, the returned image is in qcow2 format, which the QEMU emulator can efficiently use. @xref{Running Guix in a VM}, for more information on how to run the image in a virtual machine."
+msgstr "Wenn Sie ein @code{vm-image} anfordern, ist das gelieferte Disk-Image im qcow2-Format, was vom QEMU-Emulator effizient benutzt werden kann. Im Abschnitt @ref{Running Guix in a VM} finden Sie mehr Informationen, wie Sie das Disk-Image in einer virtuellen Maschine laufen lassen."
+
+#. type: table
+#: doc/guix.texi:30939
 msgid "When using @code{docker-image}, a Docker image is produced.  Guix builds the image from scratch, not from a pre-existing Docker base image.  As a result, it contains @emph{exactly} what you define in the operating system configuration file.  You can then load the image and launch a Docker container using commands like the following:"
 msgstr "Wenn Sie ein @code{docker-image} anfordern, wird ein Abbild für Docker hergestellt. Guix erstellt das Abbild von Grund auf und @emph{nicht} aus einem vorerstellten Docker-Basisabbild heraus, daher enthält es @emph{exakt} das, was Sie in der Konfigurationsdatei für das Betriebssystem angegeben haben. Sie können das Abbild dann wie folgt laden und einen Docker-Container damit erzeugen:"
 
 #. type: example
-#: doc/guix.texi:26811
+#: doc/guix.texi:30944
 #, no-wrap
 msgid ""
 "image_id=\"`docker load < guix-system-docker-image.tar.gz`\"\n"
@@ -49917,38 +57280,43 @@ msgstr ""
 "docker start $container_id\n"
 
 #. type: table
-#: doc/guix.texi:26818
+#: doc/guix.texi:30951
 msgid "This command starts a new Docker container from the specified image.  It will boot the Guix system in the usual manner, which means it will start any services you have defined in the operating system configuration.  You can get an interactive shell running in the container using @command{docker exec}:"
 msgstr "Dieser Befehl startet einen neuen Docker-Container aus dem angegebenen Abbild. Damit wird das Guix-System auf die normale Weise hochgefahren, d.h.@: zunächst werden alle Dienste gestartet, die Sie in der Konfiguration des Betriebssystems angegeben haben. Sie können eine interaktive Shell in dieser isolierten Umgebung bekommen, indem Sie @command{docker exec} benutzen:"
 
 #. type: example
-#: doc/guix.texi:26821
+#: doc/guix.texi:30954
 #, no-wrap
 msgid "docker exec -ti $container_id /run/current-system/profile/bin/bash --login\n"
 msgstr "docker exec -ti $container_id /run/current-system/profile/bin/bash --login\n"
 
 #. type: table
-#: doc/guix.texi:26828
+#: doc/guix.texi:30961
 msgid "Depending on what you run in the Docker container, it may be necessary to give the container additional permissions.  For example, if you intend to build software using Guix inside of the Docker container, you may need to pass the @option{--privileged} option to @code{docker create}."
 msgstr "Je nachdem, was Sie im Docker-Container ausführen, kann es nötig sein, dass Sie ihn mit weitergehenden Berechtigungen ausstatten. Wenn Sie zum Beispiel Software mit Guix innerhalb des Docker-Containers erstellen wollen, müssen Sie an @code{docker create} die Befehlszeilenoption @option{--privileged} übergeben."
 
 #. type: table
-#: doc/guix.texi:26836
+#: doc/guix.texi:30965
+msgid "Last, the @option{--network} option applies to @command{guix system docker-image}: it produces an image where network is supposedly shared with the host, and thus without services like nscd or NetworkManager."
+msgstr "Zuletzt bewirkt die Befehlszeilenoption @option{--network}, dass durch @command{guix system docker-image} ein Abbild erzeugt wird, was sein Netzwerk mit dem Wirtssystem teilt und daher auf Dienste wie nscd oder NetworkManager verzichten sollte."
+
+#. type: table
+#: doc/guix.texi:30973
 msgid "Return a script to run the operating system declared in @var{file} within a container.  Containers are a set of lightweight isolation mechanisms provided by the kernel Linux-libre.  Containers are substantially less resource-demanding than full virtual machines since the kernel, shared objects, and other resources can be shared with the host system; this also means they provide thinner isolation."
 msgstr "Liefert ein Skript, um das in der @var{Datei} deklarierte Betriebssystem in einem Container auszuführen. Mit Container wird hier eine Reihe ressourcenschonender Isolierungsmechanismen im Kernel Linux-libre bezeichnet. Container beanspruchen wesentlich weniger Ressourcen als vollumfängliche virtuelle Maschinen, weil der Kernel, Bibliotheken in gemeinsam nutzbaren Objektdateien („Shared Objects“) sowie andere Ressourcen mit dem Wirtssystem geteilt werden können. Damit ist also eine „dünnere“ Isolierung möglich."
 
 #. type: table
-#: doc/guix.texi:26840
+#: doc/guix.texi:30977
 msgid "Currently, the script must be run as root in order to support more than a single user and group.  The container shares its store with the host system."
-msgstr "Zur Zeit muss das Skript als Administratornutzer „root“ ausgeführt werden, damit darin mehr als nur ein einzelner Benutzer und eine Benutzergruppe unterstützt wird. Der Container teilt seinen Store mit dem Wirtssystem."
+msgstr "Zurzeit muss das Skript als Administratornutzer „root“ ausgeführt werden, damit darin mehr als nur ein einzelner Benutzer und eine Benutzergruppe unterstützt wird. Der Container teilt seinen Store mit dem Wirtssystem."
 
 #. type: table
-#: doc/guix.texi:26844
+#: doc/guix.texi:30981
 msgid "As with the @code{vm} action (@pxref{guix system vm}), additional file systems to be shared between the host and container can be specified using the @option{--share} and @option{--expose} options:"
 msgstr "Wie bei der Aktion @code{vm} (siehe @ref{guix system vm}) können zusätzlich weitere Dateisysteme zwischen Wirt und Container geteilt werden, indem man die Befehlszeilenoptionen @option{--share} und @option{--expose} verwendet:"
 
 #. type: example
-#: doc/guix.texi:26848
+#: doc/guix.texi:30985
 #, no-wrap
 msgid ""
 "guix system container my-config.scm \\\n"
@@ -49958,304 +57326,314 @@ msgstr ""
 "   --expose=$HOME --share=$HOME/tmp=/austausch\n"
 
 #. type: quotation
-#: doc/guix.texi:26852
+#: doc/guix.texi:30989
 msgid "This option requires Linux-libre 3.19 or newer."
 msgstr "Diese Befehlszeilenoption funktioniert nur mit Linux-libre 3.19 oder neuer."
 
 #. type: Plain text
-#: doc/guix.texi:26859
+#: doc/guix.texi:30996
 msgid "@var{options} can contain any of the common build options (@pxref{Common Build Options}).  In addition, @var{options} can contain one of the following:"
 msgstr "Unter den @var{Optionen} können beliebige gemeinsame Erstellungsoptionen aufgeführt werden (siehe @ref{Common Build Options}). Des Weiteren kann als @var{Optionen} Folgendes angegeben werden:"
 
 #. type: table
-#: doc/guix.texi:26868
+#: doc/guix.texi:31005
 msgid "Consider the operating-system @var{expr} evaluates to.  This is an alternative to specifying a file which evaluates to an operating system.  This is used to generate the Guix system installer @pxref{Building the Installation Image})."
 msgstr "Als Konfiguration des Betriebssystems das „operating-system“ betrachten, zu dem der @var{Ausdruck} ausgewertet wird. Dies ist eine Alternative dazu, die Konfiguration in einer Datei festzulegen. Hiermit wird auch das Installationsabbild des Guix-Systems erstellt, siehe @ref{Building the Installation Image})."
 
 #. type: table
-#: doc/guix.texi:26873
+#: doc/guix.texi:31010
 msgid "Attempt to build for @var{system} instead of the host system type.  This works as per @command{guix build} (@pxref{Invoking guix build})."
 msgstr "Versuchen, für das angegebene @var{System} statt für denselben Systemtyp wie auf dem Wirtssystem zu erstellen. Dies funktioniert wie bei @command{guix build} (siehe @ref{Invoking guix build})."
 
 #. type: table
-#: doc/guix.texi:26878
+#: doc/guix.texi:31015
 msgid "Return the derivation file name of the given operating system without building anything."
 msgstr "Liefert den Namen der Ableitungsdatei für das angegebene Betriebssystem, ohne dazu etwas zu erstellen."
 
 #. type: table
-#: doc/guix.texi:26887
+#: doc/guix.texi:31024
 msgid "As discussed above, @command{guix system init} and @command{guix system reconfigure} always save provenance information @i{via} a dedicated service (@pxref{Service Reference, @code{provenance-service-type}}).  However, other commands don't do that by default.  If you wish to, say, create a virtual machine image that contains provenance information, you can run:"
 msgstr "Wie zuvor erläutert, speichern @command{guix system init} und @command{guix system reconfigure} Provenienzinformationen immer über einen dedizierten Dienst (siehe @ref{Service Reference, @code{provenance-service-type}}). Andere Befehle tun das nach Voreinstellung jedoch @emph{nicht}. Wenn Sie zum Beispiel ein Abbild für eine virtuelle Maschine mitsamt Provenienzinformationen erzeugen möchten, können Sie dies ausführen:"
 
 #. type: example
-#: doc/guix.texi:26890
+#: doc/guix.texi:31027
 #, no-wrap
 msgid "guix system vm-image --save-provenance config.scm\n"
 msgstr "guix system vm-image --save-provenance config.scm\n"
 
 #. type: table
-#: doc/guix.texi:26897
+#: doc/guix.texi:31034
 msgid "That way, the resulting image will effectively ``embed its own source'' in the form of meta-data in @file{/run/current-system}.  With that information, one can rebuild the image to make sure it really contains what it pretends to contain; or they could use that to derive a variant of the image."
-msgstr "Auf diese Weise wird im erzeugten Abbild in Prinzip „sein eigener Quellcode eingebettet“, in Form von Metadaten in @file{/run/current-system}. Mit diesen Informationen kann man das Abbild neu erzeugen, um sicherzugehen, dass es tatsächlich das enthält, was davon behauptet wird. Man könnte damit auch eine Abwandlung des Abbilds erzeugen."
+msgstr "Auf diese Weise wird im erzeugten Abbild im Prinzip „sein eigener Quellcode eingebettet“, in Form von Metadaten in @file{/run/current-system}. Mit diesen Informationen kann man das Abbild neu erzeugen, um sicherzugehen, dass es tatsächlich das enthält, was davon behauptet wird. Man könnte damit auch eine Abwandlung des Abbilds erzeugen."
 
 #. type: item
-#: doc/guix.texi:26898
+#: doc/guix.texi:31035
 #, no-wrap
-msgid "--file-system-type=@var{type}"
-msgstr "--file-system-type=@var{Typ}"
+msgid "--image-type=@var{type}"
+msgstr "--image-type=@var{Typ}"
 
 #. type: table
-#: doc/guix.texi:26902
-msgid "For the @code{disk-image} action, create a file system of the given @var{type} on the image."
-msgstr "Für die Aktion @code{disk-image} wird hiermit ein Dateisystem des angegebenen @var{Typ}s im Abbild bzw. Disk-Image erzeugt."
+#: doc/guix.texi:31038
+msgid "For the @code{disk-image} action, create an image with given @var{type}."
+msgstr "Für die Aktion @code{disk-image} wird ein Abbild des angegebenen @var{Typ}s erzeugt."
 
 #. type: table
-#: doc/guix.texi:26904
-msgid "When this option is omitted, @command{guix system} uses @code{ext4}."
-msgstr "Wird diese Befehlszeilenoption nicht angegeben, so benutzt @command{guix system} als Dateisystemtyp @code{ext4}."
+#: doc/guix.texi:31041
+msgid "When this option is omitted, @command{guix system} uses the @code{raw} image type."
+msgstr "Wird diese Befehlszeilenoption nicht angegeben, so benutzt @command{guix system} den Abbildtyp @code{raw}."
 
 #. type: cindex
-#: doc/guix.texi:26905
+#: doc/guix.texi:31042
 #, no-wrap
 msgid "ISO-9660 format"
 msgstr "ISO-9660-Format"
 
 #. type: cindex
-#: doc/guix.texi:26906
+#: doc/guix.texi:31043
 #, no-wrap
 msgid "CD image format"
 msgstr "CD-Abbild-Format"
 
 #. type: cindex
-#: doc/guix.texi:26907
+#: doc/guix.texi:31044
 #, no-wrap
 msgid "DVD image format"
 msgstr "DVD-Abbild-Format"
 
 #. type: table
-#: doc/guix.texi:26910
-msgid "@code{--file-system-type=iso9660} produces an ISO-9660 image, suitable for burning on CDs and DVDs."
-msgstr "@code{--file-system-type=iso9660} erzeugt ein Abbild im Format ISO-9660, was für das Brennen auf CDs und DVDs geeignet ist."
+#: doc/guix.texi:31047
+msgid "@option{--image-type=iso9660} produces an ISO-9660 image, suitable for burning on CDs and DVDs."
+msgstr "@option{--image-type=iso9660} erzeugt ein Abbild im Format ISO-9660, was für das Brennen auf CDs und DVDs geeignet ist."
 
 #. type: item
-#: doc/guix.texi:26911
+#: doc/guix.texi:31048
 #, no-wrap
 msgid "--image-size=@var{size}"
 msgstr "--image-size=@var{Größe}"
 
 #. type: table
-#: doc/guix.texi:26916
+#: doc/guix.texi:31053
 msgid "For the @code{vm-image} and @code{disk-image} actions, create an image of the given @var{size}.  @var{size} may be a number of bytes, or it may include a unit as a suffix (@pxref{Block size, size specifications,, coreutils, GNU Coreutils})."
-msgstr "Für die Aktionen @code{vm-image} und @code{disk-image} wird hiermit festgelegt, dass ein Abbild der angegebenen @var{Größe} erstellt werden soll. Die @var{Größe} kann als Zahl die Anzahl Bytes angeben oder mit einer Einheit als Suffix versehen werden (siehe @ref{Block size, size specifications,, coreutils, GNU Coreutils})."
+msgstr "Für die Aktionen @code{vm-image} und @code{disk-image} wird hiermit festgelegt, dass ein Abbild der angegebenen @var{Größe} erstellt werden soll. Die @var{Größe} kann als Zahl die Anzahl Bytes angeben oder mit einer Einheit als Suffix versehen werden (siehe @ref{Block size, Größenangaben,, coreutils, GNU Coreutils})."
 
 #. type: table
-#: doc/guix.texi:26920
+#: doc/guix.texi:31057
 msgid "When this option is omitted, @command{guix system} computes an estimate of the image size as a function of the size of the system declared in @var{file}."
 msgstr "Wird keine solche Befehlszeilenoption angegeben, berechnet @command{guix system} eine Schätzung der Abbildgröße anhand der Größe des in der @var{Datei} deklarierten Systems."
 
 #. type: table
-#: doc/guix.texi:26925
+#: doc/guix.texi:31062
 msgid "For the @code{container} action, allow containers to access the host network, that is, do not create a network namespace."
 msgstr "Für die Aktion @code{container} dürfen isolierte Umgebungen (auch bekannt als „Container“) auf das Wirtsnetzwerk zugreifen, d.h.@: es wird kein Netzwerknamensraum für sie erzeugt."
 
 #. type: item
-#: doc/guix.texi:26931
+#: doc/guix.texi:31068
 #, no-wrap
 msgid "--skip-checks"
 msgstr "--skip-checks"
 
 #. type: table
-#: doc/guix.texi:26933
+#: doc/guix.texi:31070
 msgid "Skip pre-installation safety checks."
 msgstr "Die Konfiguration @emph{nicht} vor der Installation zur Sicherheit auf Fehler prüfen."
 
 #. type: table
-#: doc/guix.texi:26940
+#: doc/guix.texi:31077
 msgid "By default, @command{guix system init} and @command{guix system reconfigure} perform safety checks: they make sure the file systems that appear in the @code{operating-system} declaration actually exist (@pxref{File Systems}), and that any Linux kernel modules that may be needed at boot time are listed in @code{initrd-modules} (@pxref{Initial RAM Disk}).  Passing this option skips these tests altogether."
 msgstr "Das vorgegebene Verhalten von @command{guix system init} und @command{guix system reconfigure} sieht vor, die Konfiguration zur Sicherheit auf Fehler hin zu überprüfen, die ihr Autor übersehen haben könnte: Es wird sichergestellt, dass die in der @code{operating-system}-Deklaration erwähnten Dateisysteme tatsächlich existieren (siehe @ref{File Systems}) und dass alle Linux-Kernelmodule, die beim Booten benötigt werden könnten, auch im @code{initrd-modules}-Feld aufgeführt sind (siehe @ref{Initial RAM Disk}). Mit dieser Befehlszeilenoption werden diese Tests allesamt übersprungen."
 
+#. type: table
+#: doc/guix.texi:31080
+msgid "Instruct @command{guix system reconfigure} to allow system downgrades."
+msgstr "An @command{guix system reconfigure} die Anweisung erteilen, Systemherabstufungen zuzulassen."
+
+#. type: table
+#: doc/guix.texi:31088
+msgid "By default, @command{reconfigure} prevents you from downgrading your system.  It achieves that by comparing the provenance info of your system (shown by @command{guix system describe}) with that of your @command{guix} command (shown by @command{guix describe}).  If the commits for @command{guix} are not descendants of those used for your system, @command{guix system reconfigure} errors out.  Passing @option{--allow-downgrades} allows you to bypass these checks."
+msgstr "Nach Voreinstellung können Sie mit @command{reconfigure} Ihr System nicht auf eine ältere Version aktualisieren und somit herabstufen. Dazu werden die Provenienzinformationen Ihres Systems herangezogen (wie sie auch von @command{guix system describe} angezeigt werden) und mit denen aus Ihrem @command{guix}-Befehl verglichen (wie sie @command{guix describe} anzeigt). Wenn die Commits von @command{guix} nicht Nachfolger derer Ihres Systems sind, dann bricht @command{guix system reconfigure} mit einer Fehlermeldung ab. Wenn Sie @option{--allow-downgrades} übergeben, können Sie diese Sicherheitsüberprüfungen umgehen."
+
 #. type: cindex
-#: doc/guix.texi:26941
+#: doc/guix.texi:31094
 #, no-wrap
 msgid "on-error"
 msgstr "on-error"
 
 #. type: cindex
-#: doc/guix.texi:26942
+#: doc/guix.texi:31095
 #, no-wrap
 msgid "on-error strategy"
 msgstr "on-error-Strategie"
 
 #. type: cindex
-#: doc/guix.texi:26943
+#: doc/guix.texi:31096
 #, no-wrap
 msgid "error strategy"
 msgstr "Fehlerstrategie"
 
 #. type: item
-#: doc/guix.texi:26944
+#: doc/guix.texi:31097
 #, no-wrap
 msgid "--on-error=@var{strategy}"
 msgstr "--on-error=@var{Strategie}"
 
 #. type: table
-#: doc/guix.texi:26947
+#: doc/guix.texi:31100
 msgid "Apply @var{strategy} when an error occurs when reading @var{file}.  @var{strategy} may be one of the following:"
 msgstr "Beim Auftreten eines Fehlers beim Einlesen der @var{Datei} die angegebene @var{Strategie} verfolgen. Als @var{Strategie} dient eine der Folgenden:"
 
 #. type: item
-#: doc/guix.texi:26949
+#: doc/guix.texi:31102
 #, no-wrap
 msgid "nothing-special"
 msgstr "nothing-special"
 
 #. type: table
-#: doc/guix.texi:26951
+#: doc/guix.texi:31104
 msgid "Report the error concisely and exit.  This is the default strategy."
 msgstr "Nichts besonderes; der Fehler wird kurz gemeldet und der Vorgang abgebrochen. Dies ist die vorgegebene Strategie."
 
 #. type: item
-#: doc/guix.texi:26952
+#: doc/guix.texi:31105
 #, no-wrap
 msgid "backtrace"
 msgstr "backtrace"
 
 #. type: table
-#: doc/guix.texi:26954
+#: doc/guix.texi:31107
 msgid "Likewise, but also display a backtrace."
 msgstr "Ebenso, aber zusätzlich wird eine Rückverfolgung des Fehlers (ein „Backtrace“) angezeigt."
 
 #. type: item
-#: doc/guix.texi:26955
+#: doc/guix.texi:31108
 #, no-wrap
 msgid "debug"
 msgstr "debug"
 
 #. type: table
-#: doc/guix.texi:26961
+#: doc/guix.texi:31114
 msgid "Report the error and enter Guile's debugger.  From there, you can run commands such as @code{,bt} to get a backtrace, @code{,locals} to display local variable values, and more generally inspect the state of the program.  @xref{Debug Commands,,, guile, GNU Guile Reference Manual}, for a list of available debugging commands."
-msgstr "Nach dem Melden des Fehlers wird der Debugger von Guile zur Fehlersuche gestartet. Von dort können Sie Befehle ausführen, zum Beispiel können Sie sich mit @code{,bt} eine Rückverfolgung („Backtrace“) anzeigen lassen und mit @code{,locals} die Werte lokaler Variabler anzeigen lassen. Im Allgemeinen können Sie mit Befehlen den Zustand des Programms inspizieren. Siehe @ref{Debug Commands,,, guile, GNU Guile Reference Manual} für eine Liste verfügbarer Befehle zur Fehlersuche."
+msgstr "Nach dem Melden des Fehlers wird der Debugger von Guile zur Fehlersuche gestartet. Von dort können Sie Befehle ausführen, zum Beispiel können Sie sich mit @code{,bt} eine Rückverfolgung („Backtrace“) anzeigen lassen und mit @code{,locals} die Werte lokaler Variabler anzeigen lassen. Im Allgemeinen können Sie mit Befehlen den Zustand des Programms inspizieren. Siehe @ref{Debug Commands,,, guile, Referenzhandbuch zu GNU Guile} für eine Liste verfügbarer Befehle zur Fehlersuche."
 
 #. type: Plain text
-#: doc/guix.texi:26968
+#: doc/guix.texi:31121
 msgid "Once you have built, configured, re-configured, and re-re-configured your Guix installation, you may find it useful to list the operating system generations available on disk---and that you can choose from the bootloader boot menu:"
 msgstr "Sobald Sie Ihre Guix-Installation erstellt, konfiguriert, neu konfiguriert und nochmals neu konfiguriert haben, finden Sie es vielleicht hilfreich, sich die auf der Platte verfügbaren — und im Bootmenü des Bootloaders auswählbaren — Systemgenerationen auflisten zu lassen:"
 
 #. type: item
-#: doc/guix.texi:26971
+#: doc/guix.texi:31124
 #, no-wrap
 msgid "describe"
 msgstr "describe"
 
 #. type: table
-#: doc/guix.texi:26974
+#: doc/guix.texi:31127
 msgid "Describe the current system generation: its file name, the kernel and bootloader used, etc., as well as provenance information when available."
 msgstr "Die aktuelle Systemgeneration beschreiben: ihren Dateinamen, den Kernel und den benutzten Bootloader etc.@: sowie Provenienzinformationen, falls verfügbar."
 
 #. type: item
-#: doc/guix.texi:26975
+#: doc/guix.texi:31128
 #, no-wrap
 msgid "list-generations"
 msgstr "list-generations"
 
 #. type: table
-#: doc/guix.texi:26980
+#: doc/guix.texi:31133
 msgid "List a summary of each generation of the operating system available on disk, in a human-readable way.  This is similar to the @option{--list-generations} option of @command{guix package} (@pxref{Invoking guix package})."
 msgstr "Eine für Menschen verständliche Zusammenfassung jeder auf der Platte verfügbaren Generation des Betriebssystems ausgeben. Dies ähnelt der Befehlszeilenoption @option{--list-generations} von @command{guix package} (siehe @ref{Invoking guix package})."
 
 #. type: table
-#: doc/guix.texi:26985
+#: doc/guix.texi:31138
 msgid "Optionally, one can specify a pattern, with the same syntax that is used in @command{guix package --list-generations}, to restrict the list of generations displayed.  For instance, the following command displays generations that are up to 10 days old:"
 msgstr "Optional kann ein Muster angegeben werden, was dieselbe Syntax wie @command{guix package --list-generations} benutzt, um damit die Liste anzuzeigender Generationen einzuschränken. Zum Beispiel zeigt der folgende Befehl Generationen an, die bis zu 10 Tage alt sind:"
 
 #. type: example
-#: doc/guix.texi:26988
+#: doc/guix.texi:31141
 #, no-wrap
 msgid "$ guix system list-generations 10d\n"
 msgstr "$ guix system list-generations 10d\n"
 
 #. type: Plain text
-#: doc/guix.texi:26995
+#: doc/guix.texi:31148
 msgid "The @command{guix system} command has even more to offer! The following sub-commands allow you to visualize how your system services relate to each other:"
 msgstr "Der Befehl @command{guix system} hat sogar noch mehr zu bieten! Mit folgenden Unterbefehlen wird Ihnen visualisiert, wie Ihre Systemdienste voneinander abhängen:"
 
 #. type: anchor{#1}
-#: doc/guix.texi:26997
+#: doc/guix.texi:31150
 msgid "system-extension-graph"
 msgstr "system-extension-graph"
 
 #. type: item
-#: doc/guix.texi:26999
+#: doc/guix.texi:31152
 #, no-wrap
 msgid "extension-graph"
 msgstr "extension-graph"
 
 #. type: table
-#: doc/guix.texi:27004
-msgid "Emit in Dot/Graphviz format to standard output the @dfn{service extension graph} of the operating system defined in @var{file} (@pxref{Service Composition}, for more information on service extensions.)"
+#: doc/guix.texi:31157
+msgid "Emit in Dot/Graphviz format to standard output the @dfn{service extension graph} of the operating system defined in @var{file} (@pxref{Service Composition}, for more information on service extensions)."
 msgstr "Im Dot-/Graphviz-Format auf die Standardausgabe den @dfn{Diensterweiterungsgraphen} des in der @var{Datei} definierten Betriebssystems ausgeben (siehe @ref{Service Composition} für mehr Informationen zu Diensterweiterungen)."
 
 #. type: table
-#: doc/guix.texi:27006
+#: doc/guix.texi:31159
 msgid "The command:"
 msgstr "Der Befehl:"
 
 #. type: example
-#: doc/guix.texi:27009
+#: doc/guix.texi:31162
 #, no-wrap
-msgid "$ guix system extension-graph @var{file} | dot -Tpdf > services.pdf\n"
-msgstr "$ guix system extension-graph @var{file} | dot -Tpdf > services.pdf\n"
+msgid "$ guix system extension-graph @var{file} | xdot -\n"
+msgstr "$ guix system extension-graph @var{Datei} | xdot -\n"
 
 #. type: table
-#: doc/guix.texi:27012
-msgid "produces a PDF file showing the extension relations among services."
-msgstr "erzeugt eine PDF-Datei, in der die Erweiterungsrelation unter Diensten angezeigt wird."
+#: doc/guix.texi:31165
+msgid "shows the extension relations among services."
+msgstr "zeigt die Erweiterungsrelation unter Diensten an."
 
 #. type: anchor{#1}
-#: doc/guix.texi:27014
+#: doc/guix.texi:31167
 msgid "system-shepherd-graph"
 msgstr "system-shepherd-graph"
 
 #. type: item
-#: doc/guix.texi:27014
+#: doc/guix.texi:31167
 #, no-wrap
 msgid "shepherd-graph"
 msgstr "shepherd-graph"
 
 #. type: table
-#: doc/guix.texi:27019
+#: doc/guix.texi:31172
 msgid "Emit in Dot/Graphviz format to standard output the @dfn{dependency graph} of shepherd services of the operating system defined in @var{file}.  @xref{Shepherd Services}, for more information and for an example graph."
 msgstr "Im Dot-/Graphviz-Format auf die Standardausgabe den @dfn{Abhängigkeitsgraphen} der Shepherd-Dienste des in der @var{Datei} definierten Betriebssystems ausgeben. Siehe @ref{Shepherd Services} für mehr Informationen sowie einen Beispielgraphen."
 
 #. type: section
-#: doc/guix.texi:27023
+#: doc/guix.texi:31176
 #, no-wrap
 msgid "Invoking @code{guix deploy}"
 msgstr "@command{guix deploy} aufrufen"
 
 #. type: Plain text
-#: doc/guix.texi:27031
+#: doc/guix.texi:31184
 msgid "We've already seen @code{operating-system} declarations used to manage a machine's configuration locally.  Suppose you need to configure multiple machines, though---perhaps you're managing a service on the web that's comprised of several servers.  @command{guix deploy} enables you to use those same @code{operating-system} declarations to manage multiple remote hosts at once as a logical ``deployment''."
 msgstr "Wir haben bereits gesehen, wie die Konfiguration einer Maschine mit @code{operating-system}-Deklarationen lokal verwaltet werden kann. Doch was ist, wenn Sie mehrere Maschinen konfigurieren möchten? Vielleicht kümmern Sie sich um einen Dienst im Web, der über mehrere Server verteilt ist. Mit @command{guix deploy} können Sie ebensolche @code{operating-system}-Deklarationen verwenden, um mehrere entfernte Rechner („Hosts“) gleichzeitig in einer logischen Bereitstellung (einem „Deployment“) zu verwalten."
 
 #. type: quotation
-#: doc/guix.texi:27036
+#: doc/guix.texi:31189
 msgid "The functionality described in this section is still under development and is subject to change.  Get in touch with us on @email{guix-devel@@gnu.org}!"
 msgstr "Die in diesem Abschnitt beschriebenen Funktionalitäten befinden sich noch in der Entwicklung und können sich ändern. Kontaktieren Sie uns auf @email{guix-devel@@gnu.org}!"
 
 #. type: example
-#: doc/guix.texi:27040
+#: doc/guix.texi:31193
 #, no-wrap
 msgid "guix deploy @var{file}\n"
 msgstr "guix deploy @var{Datei}\n"
 
 #. type: Plain text
-#: doc/guix.texi:27044
+#: doc/guix.texi:31197
 msgid "Such an invocation will deploy the machines that the code within @var{file} evaluates to.  As an example, @var{file} might contain a definition like this:"
 msgstr "Mit einem solchen Aufruf werden diejenigen „Maschinen“ bereitgestellt, zu denen der Code in der @var{Datei} ausgewertet wird. Zum Beispiel könnte die @var{Datei} eine solche Definition enthalten:"
 
 #. type: lisp
-#: doc/guix.texi:27051
+#: doc/guix.texi:31204
 #, no-wrap
 msgid ""
 ";; This is a Guix deployment of a \"bare bones\" setup, with\n"
@@ -50273,7 +57651,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:27054
+#: doc/guix.texi:31207
 #, no-wrap
 msgid ""
 "(use-service-modules networking ssh)\n"
@@ -50285,7 +57663,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:27075
+#: doc/guix.texi:31228
 #, no-wrap
 msgid ""
 "(define %system\n"
@@ -50333,7 +57711,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:27085
+#: doc/guix.texi:31238
 #, no-wrap
 msgid ""
 "(list (machine\n"
@@ -50357,33 +57735,33 @@ msgstr ""
 "                       (port 2222)))))\n"
 
 #. type: Plain text
-#: doc/guix.texi:27098
-msgid "The file should evaluate to a list of @var{machine} objects.  This example, upon being deployed, will create a new generation on the remote system realizing the @code{operating-system} declaration @var{%system}.  @var{environment} and @var{configuration} specify how the machine should be provisioned---that is, how the computing resources should be created and managed.  The above example does not create any resources, as a @code{'managed-host} is a machine that is already running the Guix system and available over the network.  This is a particularly simple case; a more complex deployment may involve, for example, starting virtual machines through a Virtual Private Server (VPS) provider.  In such a case, a different @var{environment} type would be used."
-msgstr "Die Datei sollte zu einer Liste von @var{machine}-Objekten ausgewertet werden. Wenn dieses Beispiel aufgespielt wird, befindet sich danach eine neue Generation auf dem entfernten System, die der @code{operating-system}-Deklaration @var{%system} entspricht.  Mit @var{environment} und @var{configuration} wird die Methode zur Belieferung der Maschine („Provisioning“) angegeben, d.h.@: wie sie angesteuert werden soll, um dort Rechenressourcen anzulegen und zu verwalten. Im obigen Beispiel werden keine Ressourcen angelegt, weil @code{'managed-host} für eine Maschine mit bereits laufendem Guix-System steht, auf die über das Netzwerk zugegriffen werden kann. Das ist ein besonders einfacher Fall; zu einer komplexeren Bereitstellung könnte das Starten virtueller Maschinen über einen Anbieter für „Virtual Private Servers“ (VPS) gehören. In einem solchen Fall würde eine andere Art von Umgebung als @var{environment} angegeben werden."
+#: doc/guix.texi:31251
+msgid "The file should evaluate to a list of @var{machine} objects.  This example, upon being deployed, will create a new generation on the remote system realizing the @code{operating-system} declaration @code{%system}.  @code{environment} and @code{configuration} specify how the machine should be provisioned---that is, how the computing resources should be created and managed.  The above example does not create any resources, as a @code{'managed-host} is a machine that is already running the Guix system and available over the network.  This is a particularly simple case; a more complex deployment may involve, for example, starting virtual machines through a Virtual Private Server (VPS) provider.  In such a case, a different @var{environment} type would be used."
+msgstr "Die Datei sollte zu einer Liste von @var{machine}-Objekten ausgewertet werden. Wenn dieses Beispiel aufgespielt wird, befindet sich danach eine neue Generation auf dem entfernten System, die der @code{operating-system}-Deklaration @code{%system} entspricht.  Mit @code{environment} und @code{configuration} wird die Methode zur Belieferung der Maschine („Provisioning“) angegeben, d.h.@: wie sie angesteuert werden soll, um dort Rechenressourcen anzulegen und zu verwalten. Im obigen Beispiel werden keine Ressourcen angelegt, weil @code{'managed-host} für eine Maschine mit bereits laufendem Guix-System steht, auf die über das Netzwerk zugegriffen werden kann. Das ist ein besonders einfacher Fall; zu einer komplexeren Bereitstellung könnte das Starten virtueller Maschinen über einen Anbieter für „Virtual Private Servers“ (VPS) gehören. In einem solchen Fall würde eine andere Art von Umgebung als @var{environment} angegeben werden."
 
 #. type: Plain text
-#: doc/guix.texi:27102
-msgid "Do note that you first need to generate a key pair on the coordinator machine to allow the daemon to export signed archives of files from the store (@pxref{Invoking guix archive})."
-msgstr "Beachten Sie, dass Sie zunächst ein Schlüsselpaar auf der Koordinatormaschine erzeugen lassen müssen, damit der Daemon signierte Archive mit Dateien aus dem Store exportieren kann (siehe @ref{Invoking guix archive})."
+#: doc/guix.texi:31256
+msgid "Do note that you first need to generate a key pair on the coordinator machine to allow the daemon to export signed archives of files from the store (@pxref{Invoking guix archive}), though this step is automatic on Guix System:"
+msgstr "Beachten Sie, dass Sie zunächst ein Schlüsselpaar auf der Koordinatormaschine erzeugen lassen müssen, damit der Daemon signierte Archive mit Dateien aus dem Store exportieren kann (siehe @ref{Invoking guix archive}). Auf Guix System geschieht dies automatisch."
 
 #. type: Plain text
-#: doc/guix.texi:27110
+#: doc/guix.texi:31264
 msgid "Each target machine must authorize the key of the master machine so that it accepts store items it receives from the coordinator:"
 msgstr "Jede Zielmaschine muss den Schlüssel der Hauptmaschine autorisieren, damit diese Store-Objekte von der Koordinatormaschine empfangen kann:"
 
 #. type: example
-#: doc/guix.texi:27113
+#: doc/guix.texi:31267
 #, no-wrap
 msgid "# guix archive --authorize < coordinator-public-key.txt\n"
 msgstr "# guix archive --authorize < öffentlicher-schlüssel-koordinatormaschine.txt\n"
 
 #. type: Plain text
-#: doc/guix.texi:27124
+#: doc/guix.texi:31278
 msgid "@code{user}, in this example, specifies the name of the user account to log in as to perform the deployment.  Its default value is @code{root}, but root login over SSH may be forbidden in some cases.  To work around this, @command{guix deploy} can log in as an unprivileged user and employ @code{sudo} to escalate privileges.  This will only work if @code{sudo} is currently installed on the remote and can be invoked non-interactively as @code{user}.  That is, the line in @code{sudoers} granting @code{user} the ability to use @code{sudo} must contain the @code{NOPASSWD} tag.  This can be accomplished with the following operating system configuration snippet:"
 msgstr "In dem Beispiel wird unter @code{user} der Name des Benutzerkontos angegeben, mit dem Sie sich zum Aufspielen auf der Maschine anmelden. Der Vorgabewert ist @code{root}, jedoch wird eine Anmeldung als root über SSH manchmal nicht zugelassen. Als Ausweg kann @command{guix deploy} Sie erst mit einem „unprivilegierten“ Benutzerkonto ohne besondere Berechtigungen anmelden, um danach automatisch mit @code{sudo} die Berechtigungen auszuweiten. Damit das funktioniert, muss @code{sudo} auf der entfernten Maschine installiert und durch das @code{user}-Konto ohne Nutzerinteraktion aufrufbar sein; mit anderen Worten muss die Zeile in @code{sudoers}, die das @code{user}-Benutzerkonto zum Aufruf von @code{sudo} berechtigt, mit dem @code{NOPASSWD}-Tag versehen sein. Dazu kann das folgende Schnipsel in die Betriebssystemkonfiguration eingefügt werden:"
 
 #. type: lisp
-#: doc/guix.texi:27128
+#: doc/guix.texi:31282
 #, no-wrap
 msgid ""
 "(use-modules ...\n"
@@ -50395,7 +57773,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:27130
+#: doc/guix.texi:31284
 #, no-wrap
 msgid ""
 "(define %user \"username\")\n"
@@ -50405,7 +57783,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:27138
+#: doc/guix.texi:31292
 #, no-wrap
 msgid ""
 "(operating-system\n"
@@ -50427,219 +57805,241 @@ msgstr ""
 "\n"
 
 #. type: Plain text
-#: doc/guix.texi:27143
+#: doc/guix.texi:31297
 msgid "For more information regarding the format of the @file{sudoers} file, consult @command{man sudoers}."
 msgstr "Weitere Informationen über das Format der @file{sudoers}-Datei erhalten Sie, wenn Sie @command{man sudoers} ausführen."
 
 #. type: deftp
-#: doc/guix.texi:27144
+#: doc/guix.texi:31298
 #, no-wrap
 msgid "{Data Type} machine"
 msgstr "{Datentyp} machine"
 
 #. type: deftp
-#: doc/guix.texi:27147
+#: doc/guix.texi:31301
 msgid "This is the data type representing a single machine in a heterogeneous Guix deployment."
 msgstr "Dieser Datentyp steht für eine einzelne Maschine beim Bereitstellen auf mehrere verschiedene Maschinen."
 
 #. type: table
-#: doc/guix.texi:27151
+#: doc/guix.texi:31305
 msgid "The object of the operating system configuration to deploy."
 msgstr "Das Objekt mit der aufzuspielenden Betriebssystemkonfiguration."
 
 #. type: code{#1}
-#: doc/guix.texi:27152
+#: doc/guix.texi:31306
 #, no-wrap
 msgid "environment"
 msgstr "environment"
 
 #. type: table
-#: doc/guix.texi:27154
+#: doc/guix.texi:31308
 msgid "An @code{environment-type} describing how the machine should be provisioned."
 msgstr "Auf welcher Art von Umgebung die Maschine läuft. Der hier angegebene @code{environment-type} steht dafür, wie die Maschine beliefert wird („Provisioning“)."
 
 #. type: item
-#: doc/guix.texi:27155
+#: doc/guix.texi:31309
 #, no-wrap
 msgid "@code{configuration} (default: @code{#f})"
 msgstr "@code{configuration} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:27160
+#: doc/guix.texi:31314
 msgid "An object describing the configuration for the machine's @code{environment}.  If the @code{environment} has a default configuration, @code{#f} may be used.  If @code{#f} is used for an environment with no default configuration, however, an error will be thrown."
 msgstr "Dieses Objekt gibt die bestimmte Konfiguration der Umgebung (@code{environment}) der Maschine an. Falls es für diese Umgebung eine Vorgabekonfiguration gibt, kann auch @code{#f} benutzt werden. Wenn @code{#f} für eine Umgebung ohne Vorgabekonfiguration benutzt wird, wird ein Fehler ausgelöst."
 
 #. type: deftp
-#: doc/guix.texi:27163
+#: doc/guix.texi:31317
 #, no-wrap
 msgid "{Data Type} machine-ssh-configuration"
 msgstr "{Datentyp} machine-ssh-configuration"
 
 #. type: deftp
-#: doc/guix.texi:27166
+#: doc/guix.texi:31320
 msgid "This is the data type representing the SSH client parameters for a machine with an @code{environment} of @code{managed-host-environment-type}."
 msgstr "Dieser Datentyp repräsentiert die SSH-Client-Parameter einer Maschine, deren Umgebung (@code{environment}) vom Typ @code{managed-host-environment-type} ist."
 
 #. type: item
-#: doc/guix.texi:27169
+#: doc/guix.texi:31323
 #, no-wrap
 msgid "@code{build-locally?} (default: @code{#t})"
 msgstr "@code{build-locally?} (Vorgabe: @code{#t})"
 
 #. type: table
-#: doc/guix.texi:27171
+#: doc/guix.texi:31325
 msgid "If false, system derivations will be built on the machine being deployed to."
 msgstr "Wenn es falsch ist, werden Ableitungen für das System auf der Maschine erstellt, auf die es aufgespielt wird."
 
+#. type: code{#1}
+#: doc/guix.texi:31325
+#, no-wrap
+msgid "system"
+msgstr "system"
+
 #. type: table
-#: doc/guix.texi:27174
+#: doc/guix.texi:31328
 msgid "The system type describing the architecture of the machine being deployed to---e.g., @code{\"x86_64-linux\"}."
 msgstr "Der Systemtyp, der die Architektur der Maschine angibt, auf die aufgespielt wird — z.B. @code{\"x86_64-linux\"}."
 
 #. type: item
-#: doc/guix.texi:27174
+#: doc/guix.texi:31328
 #, no-wrap
 msgid "@code{authorize?} (default: @code{#t})"
 msgstr "@code{authorize?} (Vorgabe: @code{#t})"
 
 #. type: table
-#: doc/guix.texi:27177
+#: doc/guix.texi:31331
 msgid "If true, the coordinator's signing key will be added to the remote's ACL keyring."
-msgstr "Wenn es wahr ist, wird der signierende Schlüssel des Koordinators zum ACL-Schlüsselbund (der Access Control List, deutsch Zugriffssteuerungsliste) der entfernten Maschine hinzugefügt."
+msgstr "Wenn es wahr ist, wird der Signierschlüssel des Koordinators zum ACL-Schlüsselbund (der Access Control List, deutsch Zugriffssteuerungsliste) der entfernten Maschine hinzugefügt."
 
 #. type: item
-#: doc/guix.texi:27178
+#: doc/guix.texi:31332
 #, no-wrap
 msgid "@code{user} (default: @code{\"root\"})"
 msgstr "@code{user} (Vorgabe: @code{\"root\"})"
 
 #. type: item
-#: doc/guix.texi:27179
+#: doc/guix.texi:31333
 #, no-wrap
 msgid "@code{identity} (default: @code{#f})"
 msgstr "@code{identity} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:27182
+#: doc/guix.texi:31336
 msgid "If specified, the path to the SSH private key to use to authenticate with the remote host."
 msgstr "Wenn dies angegeben wird, ist es der Pfad zum privaten SSH-Schlüssel, um sich beim entfernten Rechner zu authentisieren."
 
 #. type: item
-#: doc/guix.texi:27183
+#: doc/guix.texi:31337
 #, no-wrap
 msgid "@code{host-key} (default: @code{#f})"
 msgstr "@code{host-key} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:27185
+#: doc/guix.texi:31339
 msgid "This should be the SSH host key of the machine, which looks like this:"
 msgstr "Hierfür sollte der SSH-Host-Schlüssel der Maschine angegeben werden. Er sieht so aus:"
 
 #. type: example
-#: doc/guix.texi:27188
+#: doc/guix.texi:31342
 #, no-wrap
 msgid "ssh-ed25519 AAAAC3Nz@dots{} root@@example.org\n"
-msgstr "ssh-ed25519 AAAAC3Nz… root@@example.org\n"
+msgstr "ssh-ed25519 AAAAC3Nz…@: root@@example.org\n"
 
 #. type: table
-#: doc/guix.texi:27193
+#: doc/guix.texi:31347
 msgid "When @code{host-key} is @code{#f}, the server is authenticated against the @file{~/.ssh/known_hosts} file, just like the OpenSSH @command{ssh} client does."
 msgstr "Wenn @code{#f} als @code{host-key} angegeben wird, wird der Server gegen die Datei @file{~/.ssh/known_hosts} geprüft, genau wie es der @command{ssh}-Client von OpenSSH tut."
 
+#. type: item
+#: doc/guix.texi:31348
+#, no-wrap
+msgid "@code{allow-downgrades?} (default: @code{#f})"
+msgstr "@code{allow-downgrades?} (Vorgabe: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:31350
+msgid "Whether to allow potential downgrades."
+msgstr "Ob mögliche Herabstufungen zugelassen werden sollen."
+
+#. type: table
+#: doc/guix.texi:31358
+msgid "Like @command{guix system reconfigure}, @command{guix deploy} compares the channel commits currently deployed on the remote host (as returned by @command{guix system describe}) to those currently in use (as returned by @command{guix describe}) to determine whether commits currently in use are descendants of those deployed.  When this is not the case and @code{allow-downgrades?} is false, it raises an error.  This ensures you do not accidentally downgrade remote machines."
+msgstr "Genau wie @command{guix system reconfigure} vergleicht auch @command{guix deploy} die Commits auf den momentan eingespielten Kanälen am entfernten Rechner (wie sie von @command{guix system describe} gemeldet werden) mit denen, die zurzeit verwendet werden (wie sie @command{guix describe} anzeigt), um festzustellen, ob aktuell verwendete Commits Nachfolger der aufgespielten sind. Ist das @emph{nicht} der Fall und steht @code{allow-downgrades?} auf falsch, wird ein Fehler gemeldet. Dadurch kann gewährleistet werden, dass Sie nicht aus Versehen die entfernte Maschine auf eine alte Version herabstufen."
+
 #. type: deftp
-#: doc/guix.texi:27197
+#: doc/guix.texi:31361
 #, no-wrap
 msgid "{Data Type} digital-ocean-configuration"
 msgstr "{Datentyp} digital-ocean-configuration"
 
 #. type: deftp
-#: doc/guix.texi:27200
+#: doc/guix.texi:31364
 msgid "This is the data type describing the Droplet that should be created for a machine with an @code{environment} of @code{digital-ocean-environment-type}."
 msgstr "Dieser Datentyp beschreibt das Droplet, das für eine Maschine erzeugt werden soll, deren Umgebung (@code{environment}) vom Typ @code{digital-ocean-environment-type} ist."
 
 #. type: code{#1}
-#: doc/guix.texi:27202
+#: doc/guix.texi:31366
 #, no-wrap
 msgid "ssh-key"
 msgstr "ssh-key"
 
 #. type: table
-#: doc/guix.texi:27205
+#: doc/guix.texi:31369
 msgid "The path to the SSH private key to use to authenticate with the remote host. In the future, this field may not exist."
 msgstr "Der Pfad zum privaten SSH-Schlüssel, um sich beim entfernten Rechner zu authentisieren. In Zukunft wird es dieses Feld vielleicht nicht mehr geben."
 
 #. type: code{#1}
-#: doc/guix.texi:27205
+#: doc/guix.texi:31369
 #, no-wrap
 msgid "tags"
 msgstr "tags"
 
 #. type: table
-#: doc/guix.texi:27208
+#: doc/guix.texi:31372
 msgid "A list of string ``tags'' that uniquely identify the machine. Must be given such that no two machines in the deployment have the same set of tags."
 msgstr "Eine Liste von „Tags“ als Zeichenketten, die die Maschine eindeutig identifizieren. Sie müssen angegeben werden, damit keine zwei Maschinen in der Bereitstellung dieselbe Menge an Tags haben."
 
 #. type: code{#1}
-#: doc/guix.texi:27208
+#: doc/guix.texi:31372
 #, no-wrap
 msgid "region"
 msgstr "region"
 
 #. type: table
-#: doc/guix.texi:27210
+#: doc/guix.texi:31374
 msgid "A Digital Ocean region slug, such as @code{\"nyc3\"}."
 msgstr "Ein Digital-Ocean-„Region Slug“ (Regionskürzel), zum Beispiel @code{\"nyc3\"}."
 
 #. type: table
-#: doc/guix.texi:27212
+#: doc/guix.texi:31376
 msgid "A Digital Ocean size slug, such as @code{\"s-1vcpu-1gb\"}"
 msgstr "Ein Digital-Ocean-„Size Slug“ (Größenkürzel), zum Beispiel @code{\"s-1vcpu-1gb\"}"
 
 #. type: code{#1}
-#: doc/guix.texi:27212
+#: doc/guix.texi:31376
 #, no-wrap
 msgid "enable-ipv6?"
 msgstr "enable-ipv6?"
 
 #. type: table
-#: doc/guix.texi:27214
+#: doc/guix.texi:31378
 msgid "Whether or not the droplet should be created with IPv6 networking."
 msgstr "Ob das Droplet mit IPv6-Netzanbindung erzeugt werden soll."
 
 #. type: section
-#: doc/guix.texi:27218
+#: doc/guix.texi:31382
 #, no-wrap
 msgid "Running Guix in a Virtual Machine"
 msgstr "Guix in einer virtuellen Maschine betreiben"
 
 #. type: Plain text
-#: doc/guix.texi:27227
+#: doc/guix.texi:31391
 msgid "To run Guix in a virtual machine (VM), one can use the pre-built Guix VM image distributed at @url{@value{BASE-URL}/guix-system-vm-image-@value{VERSION}.x86_64-linux.xz}.  This image is a compressed image in QCOW format.  You will first need to decompress with @command{xz -d}, and then you can pass it to an emulator such as QEMU (see below for details)."
 msgstr "Um Guix in einer virtuellen Maschine (VM) auszuführen, können Sie das vorerstellte Guix-VM-Abbild benutzen, das auf @url{@value{BASE-URL}/guix-system-vm-image-@value{VERSION}.@var{System}.xz} angeboten wird. Das Abbild ist ein komprimiertes Abbild im QCOW-Format. Sie müssen es mit @command{xz -d} dekomprimieren, bevor Sie es an einen Emulator wie QEMU übergeben (siehe unten für Details)."
 
 #. type: Plain text
-#: doc/guix.texi:27233
-msgid "This image boots the Xfce graphical environment and it contains some commonly-used tools.  You can install more software in the image by running @command{guix package} in a terminal (@pxref{Invoking guix package}).  You can also reconfigure the system based on its initial configuration file available as @file{/etc/config.scm} (@pxref{Using the Configuration System})."
-msgstr "Dieses Abbild startet eine grafische Xfce-Umgebung und enthält einige oft genutzte Werkzeuge. Sie können im Abbild mehr Software installieren, indem Sie @command{guix package} in einem Terminal ausführen (siehe @ref{Invoking guix package}). Sie können das System im Abbild auch rekonfigurieren, basierend auf seiner anfänglichen Konfigurationsdatei, die als @file{/etc/config.scm} verfügbar ist (siehe @ref{Using the Configuration System})."
+#: doc/guix.texi:31398
+msgid "This image boots the Xfce graphical environment and it contains some commonly used tools.  You can install more software in the image by running @command{guix package} in a terminal (@pxref{Invoking guix package}).  You can also reconfigure the system based on its initial configuration file available as @file{/run/current-system/configuration.scm} (@pxref{Using the Configuration System})."
+msgstr "Dieses Abbild startet eine grafische Xfce-Umgebung und enthält einige oft genutzte Werkzeuge. Sie können im Abbild mehr Software installieren, indem Sie @command{guix package} in einem Terminal ausführen (siehe @ref{Invoking guix package}). Sie können das System im Abbild auch rekonfigurieren, basierend auf seiner anfänglichen Konfigurationsdatei, die als @file{/run/current-system/configuration.scm} verfügbar ist (siehe @ref{Using the Configuration System})."
 
 #. type: Plain text
-#: doc/guix.texi:27238
+#: doc/guix.texi:31403
 msgid "Instead of using this pre-built image, one can also build their own virtual machine image using @command{guix system vm-image} (@pxref{Invoking guix system}).  The returned image is in qcow2 format, which the @uref{https://qemu.org/, QEMU emulator} can efficiently use."
 msgstr "Statt dieses vorerstellte Abbild zu benutzen, können Sie auch Ihr eigenes Abbild für virtuelle Maschinen erstellen, indem Sie @command{guix system vm-image} benutzen (siehe @ref{Invoking guix system}). Das Abbild wird im qcow2-Format zurückgeliefert, das der @uref{https://qemu.org/, QEMU-Emulator} effizient benutzen kann."
 
 #. type: cindex
-#: doc/guix.texi:27239
+#: doc/guix.texi:31404
 #, no-wrap
 msgid "QEMU"
 msgstr "QEMU"
 
 #. type: Plain text
-#: doc/guix.texi:27246
+#: doc/guix.texi:31411
 msgid "If you built your own image, you must copy it out of the store (@pxref{The Store}) and give yourself permission to write to the copy before you can use it.  When invoking QEMU, you must choose a system emulator that is suitable for your hardware platform.  Here is a minimal QEMU invocation that will boot the result of @command{guix system vm-image} on x86_64 hardware:"
 msgstr "Wenn Sie Ihr eigenes Abbild erstellen haben lassen, müssen Sie es aus dem Store herauskopieren (siehe @ref{The Store}) und sich darauf Schreibberechtigung geben, um die Kopie benutzen zu können. Wenn Sie QEMU aufrufen, müssen Sie einen Systememulator angeben, der für Ihre Hardware-Plattform passend ist. Hier ist ein minimaler QEMU-Aufruf, der das Ergebnis von @command{guix system vm-image} auf x86_64-Hardware bootet:"
 
 #. type: example
-#: doc/guix.texi:27253
+#: doc/guix.texi:31418
 #, no-wrap
 msgid ""
 "$ qemu-system-x86_64 \\\n"
@@ -50655,132 +58055,132 @@ msgstr ""
 "   -drive if=none,file=/tmp/qemu-image,id=myhd\n"
 
 #. type: Plain text
-#: doc/guix.texi:27256
+#: doc/guix.texi:31421
 msgid "Here is what each of these options means:"
 msgstr "Die Bedeutung jeder dieser Befehlszeilenoptionen ist folgende:"
 
 #. type: item
-#: doc/guix.texi:27258
+#: doc/guix.texi:31423
 #, no-wrap
 msgid "qemu-system-x86_64"
 msgstr "qemu-system-x86_64"
 
 #. type: table
-#: doc/guix.texi:27261
+#: doc/guix.texi:31426
 msgid "This specifies the hardware platform to emulate.  This should match the host."
 msgstr "Hiermit wird die zu emulierende Hardware-Plattform angegeben. Sie sollte zum Wirtsrechner passen."
 
 #. type: item
-#: doc/guix.texi:27262
+#: doc/guix.texi:31427
 #, no-wrap
 msgid "-nic user,model=virtio-net-pci"
 msgstr "-nic user,model=virtio-net-pci"
 
 #. type: table
-#: doc/guix.texi:27270
+#: doc/guix.texi:31435
 msgid "Enable the unprivileged user-mode network stack.  The guest OS can access the host but not vice versa.  This is the simplest way to get the guest OS online.  @code{model} specifies which network device to emulate: @code{virtio-net-pci} is a special device made for virtualized operating systems and recommended for most uses.  Assuming your hardware platform is x86_64, you can get a list of available NIC models by running @command{qemu-system-x86_64 -nic model=help}."
 msgstr "Den als Nutzer ausgeführten Netzwerkstapel („User-Mode Network Stack“) ohne besondere Berechtigungen benutzen. Mit dieser Art von Netzwerkanbindung kann das Gast-Betriebssystem eine Verbindung zum Wirt aufbauen, aber nicht andersherum. Es ist die einfachste Art, das Gast-Betriebssystem mit dem Internet zu verbinden. Das @code{model} gibt das Modell eines zu emulierenden Netzwerkgeräts an: @code{virtio-net-pci} ist ein besonderes Gerät, das für virtualisierte Betriebssysteme gedacht ist und für die meisten Anwendungsfälle empfohlen wird. Falls Ihre Hardware-Plattform x86_64 ist, können Sie eine Liste verfügbarer Modelle von Netzwerkkarten (englisch „Network Interface Card“, kurz NIC) einsehen, indem Sie @command{qemu-system-x86_64 -net nic,model=help} ausführen."
 
 #. type: item
-#: doc/guix.texi:27271
+#: doc/guix.texi:31436
 #, no-wrap
 msgid "-enable-kvm"
 msgstr "-enable-kvm"
 
 #. type: table
-#: doc/guix.texi:27275
+#: doc/guix.texi:31440
 msgid "If your system has hardware virtualization extensions, enabling the virtual machine support (KVM) of the Linux kernel will make things run faster."
 msgstr "Wenn Ihr System über Erweiterungen zur Hardware-Virtualisierung verfügt, beschleunigt es die Dinge, wenn Sie die Virtualisierungsunterstützung „KVM“ des Linux-Kernels benutzen lassen."
 
 #. type: item
-#: doc/guix.texi:27277
+#: doc/guix.texi:31442
 #, no-wrap
 msgid "-m 1024"
 msgstr "-m 1024"
 
 #. type: table
-#: doc/guix.texi:27280
+#: doc/guix.texi:31445
 msgid "RAM available to the guest OS, in mebibytes.  Defaults to 128@tie{}MiB, which may be insufficient for some operations."
 msgstr "Die Menge an Arbeitsspeicher (RAM), die dem Gastbetriebssystem zur Verfügung stehen soll, in Mebibytes. Vorgegeben wären 128@tie{}MiB, was für einige Operationen zu wenig sein könnte."
 
 #. type: item
-#: doc/guix.texi:27281
+#: doc/guix.texi:31446
 #, no-wrap
 msgid "-device virtio-blk,drive=myhd"
 msgstr "-device virtio-blk,drive=myhd"
 
 #. type: table
-#: doc/guix.texi:27286
+#: doc/guix.texi:31451
 msgid "Create a @code{virtio-blk} drive called ``myhd''.  @code{virtio-blk} is a ``paravirtualization'' mechanism for block devices that allows QEMU to achieve better performance than if it were emulating a complete disk drive.  See the QEMU and KVM documentation for more info."
 msgstr "Ein @code{virtio-blk}-Laufwerk namens „myhd“ erzeugen. @code{virtio-blk} ist ein Mechanismus zur „Paravirtualisierung“ von Blockgeräten, wodurch QEMU diese effizienter benutzen kann, als wenn es ein Laufwerk vollständig emulieren würde. Siehe die Dokumentation von QEMU und KVM für mehr Informationen."
 
 #. type: item
-#: doc/guix.texi:27287
+#: doc/guix.texi:31452
 #, no-wrap
 msgid "-drive if=none,file=/tmp/qemu-image,id=myhd"
 msgstr "-drive if=none,file=/tmp/qemu-image,id=myhd"
 
 #. type: table
-#: doc/guix.texi:27290
-msgid "Use our QCOW image, the @file{/tmp/qemu-image} file, as the backing store the the ``myhd'' drive."
+#: doc/guix.texi:31455
+msgid "Use our QCOW image, the @file{/tmp/qemu-image} file, as the backing store of the ``myhd'' drive."
 msgstr "Unser QCOW-Abbild in der Datei @file{/tmp/qemu-image} soll als Inhalt des „myhd“-Laufwerks herhalten."
 
 #. type: Plain text
-#: doc/guix.texi:27300
+#: doc/guix.texi:31465
 msgid "The default @command{run-vm.sh} script that is returned by an invocation of @command{guix system vm} does not add a @command{-nic user} flag by default.  To get network access from within the vm add the @code{(dhcp-client-service)} to your system definition and start the VM using @command{`guix system vm config.scm` -nic user}.  An important caveat of using @command{-nic user} for networking is that @command{ping} will not work, because it uses the ICMP protocol.  You'll have to use a different command to check for network connectivity, for example @command{guix download}."
 msgstr "Das voreingestellte @command{run-vm.sh}-Skript, das durch einen Aufruf von @command{guix system vm} erzeugt wird, fügt keine Befehlszeilenoption @command{-nic user} an. Um innerhalb der virtuellen Maschine Netzwerkzugang zu haben, fügen Sie den @code{(dhcp-client-service)} zu Ihrer Systemdefinition hinzu und starten Sie die VM mit @command{`guix system vm config.scm` -nic user}. Erwähnt werden sollte der Nachteil, dass bei Verwendung von @command{-nic user} zur Netzanbindung der @command{ping}-Befehl @emph{nicht} funktionieren wird, weil dieser das ICMP-Protokoll braucht. Sie werden also einen anderen Befehl benutzen müssen, um auszuprobieren, ob Sie mit dem Netzwerk verbunden sind, zum Beispiel @command{guix download}."
 
 #. type: subsection
-#: doc/guix.texi:27301
+#: doc/guix.texi:31466
 #, no-wrap
 msgid "Connecting Through SSH"
 msgstr "Verbinden über SSH"
 
 #. type: Plain text
-#: doc/guix.texi:27309
+#: doc/guix.texi:31474
 msgid "To enable SSH inside a VM you need to add an SSH server like @code{openssh-service-type} to your VM (@pxref{Networking Services, @code{openssh-service-type}}).  In addition you need to forward the SSH port, 22 by default, to the host.  You can do this with"
 msgstr "Um SSH in der virtuellen Maschine zu aktivieren, müssen Sie einen SSH-Server wie @code{openssh-service-type} zu ihr hinzufügen (siehe @ref{Networking Services, @code{openssh-service-type}}). Des Weiteren müssen Sie den SSH-Port für das Wirtssystem freigeben (standardmäßig hat er die Portnummer 22). Das geht zum Beispiel so:"
 
 #. type: example
-#: doc/guix.texi:27312
+#: doc/guix.texi:31477
 #, no-wrap
 msgid "`guix system vm config.scm` -nic user,model=virtio-net-pci,hostfwd=tcp::10022-:22\n"
 msgstr "`guix system vm config.scm` -nic user,model=virtio-net-pci,hostfwd=tcp::10022-:22\n"
 
 #. type: Plain text
-#: doc/guix.texi:27315
+#: doc/guix.texi:31480
 msgid "To connect to the VM you can run"
 msgstr "Um sich mit der virtuellen Maschine zu verbinden, benutzen Sie diesen Befehl:"
 
 #. type: example
-#: doc/guix.texi:27318
+#: doc/guix.texi:31483
 #, no-wrap
 msgid "ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p 10022\n"
 msgstr "ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p 10022\n"
 
 #. type: Plain text
-#: doc/guix.texi:27325
+#: doc/guix.texi:31490
 msgid "The @command{-p} tells @command{ssh} the port you want to connect to.  @command{-o UserKnownHostsFile=/dev/null} prevents @command{ssh} from complaining every time you modify your @command{config.scm} file and the @command{-o StrictHostKeyChecking=no} prevents you from having to allow a connection to an unknown host every time you connect."
 msgstr "Mit @command{-p} wird @command{ssh} der Port mitgeteilt, über den eine Verbindung hergestellt werden soll. @command{-o UserKnownHostsFile=/dev/null} verhindert, dass @command{ssh} sich bei jeder Modifikation Ihrer @command{config.scm}-Datei beschwert, ein anderer bekannter Rechner sei erwartet worden, und @command{-o StrictHostKeyChecking=no} verhindert, dass Sie die Verbindung zu unbekannten Rechnern jedes Mal bestätigen müssen, wenn Sie sich verbinden."
 
 #. type: subsection
-#: doc/guix.texi:27326
+#: doc/guix.texi:31491
 #, no-wrap
 msgid "Using @command{virt-viewer} with Spice"
 msgstr "@command{virt-viewer} mit Spice benutzen"
 
 #. type: Plain text
-#: doc/guix.texi:27332
+#: doc/guix.texi:31497
 msgid "As an alternative to the default @command{qemu} graphical client you can use the @command{remote-viewer} from the @command{virt-viewer} package.  To connect pass the @command{-spice port=5930,disable-ticketing} flag to @command{qemu}.  See previous section for further information on how to do this."
 msgstr "Eine Alternative zur grafischen Schnittstelle des standardmäßigen @command{qemu} ist, sich mit Hilfe des @command{remote-viewer} aus dem Paket @command{virt-viewer} zu verbinden. Um eine Verbindung herzustellen, übergeben Sie die Befehlszeilenoption @command{-spice port=5930,disable-ticketing} an @command{qemu}. Siehe den vorherigen Abschnitt für weitere Informationen, wie Sie das übergeben."
 
 #. type: Plain text
-#: doc/guix.texi:27335
+#: doc/guix.texi:31500
 msgid "Spice also allows you to do some nice stuff like share your clipboard with your VM.  To enable that you'll also have to pass the following flags to @command{qemu}:"
 msgstr "Spice macht es auch möglich, ein paar nette Hilfestellungen zu benutzen, zum Beispiel können Sie Ihren Zwischenspeicher zum Kopieren und Einfügen (Ihr „Clipboard“) mit Ihrer virtuellen Maschine teilen. Um das zu aktivieren, werden Sie die folgenden Befehlszeilennoptionen zusätzlich an @command{qemu} übergeben müssen:"
 
 #. type: example
-#: doc/guix.texi:27341
+#: doc/guix.texi:31506
 #, no-wrap
 msgid ""
 "-device virtio-serial-pci,id=virtio-serial0,max_ports=16,bus=pci.0,addr=0x5\n"
@@ -50794,81 +58194,81 @@ msgstr ""
 "name=com.redhat.spice.0\n"
 
 #. type: Plain text
-#: doc/guix.texi:27344
-msgid "You'll also need to add the @pxref{Miscellaneous Services, Spice service}."
-msgstr "Sie werden auch den @ref{Miscellaneous Services, Spice-Dienst} hinzufügen müssen."
+#: doc/guix.texi:31510
+msgid "You'll also need to add the @code{(spice-vdagent-service)} to your system definition (@pxref{Miscellaneous Services, Spice service})."
+msgstr "Sie werden auch den @code{(spice-vdagent-service)} zu Ihrer Systemdefinition hinzufügen müssen (siehe @ref{Miscellaneous Services, Spice-Dienst})."
 
 #. type: Plain text
-#: doc/guix.texi:27351
+#: doc/guix.texi:31517
 msgid "The previous sections show the available services and how one can combine them in an @code{operating-system} declaration.  But how do we define them in the first place? And what is a service anyway?"
 msgstr "Der vorhergehende Abschnitt präsentiert die verfügbaren Dienste und wie man sie in einer @code{operating-system}-Deklaration kombiniert. Aber wie definieren wir solche Dienste eigentlich? Und was ist überhaupt ein Dienst?"
 
 #. type: cindex
-#: doc/guix.texi:27363
+#: doc/guix.texi:31529
 #, no-wrap
 msgid "daemons"
 msgstr "Daemons"
 
 #. type: Plain text
-#: doc/guix.texi:27376
+#: doc/guix.texi:31542
 msgid "Here we define a @dfn{service} as, broadly, something that extends the functionality of the operating system.  Often a service is a process---a @dfn{daemon}---started when the system boots: a secure shell server, a Web server, the Guix build daemon, etc.  Sometimes a service is a daemon whose execution can be triggered by another daemon---e.g., an FTP server started by @command{inetd} or a D-Bus service activated by @command{dbus-daemon}.  Occasionally, a service does not map to a daemon.  For instance, the ``account'' service collects user accounts and makes sure they exist when the system runs; the ``udev'' service collects device management rules and makes them available to the eudev daemon; the @file{/etc} service populates the @file{/etc} directory of the system."
 msgstr "Wir definieren hier einen @dfn{Dienst} (englisch „Service“) als, grob gesagt, etwas, das die Funktionalität des Betriebssystems erweitert. Oft ist ein Dienst ein Prozess — ein sogenannter @dfn{Daemon} —, der beim Hochfahren des Systems gestartet wird: ein Secure-Shell-Server, ein Web-Server, der Guix-Erstellungsdaemon usw. Manchmal ist ein Dienst ein Daemon, dessen Ausführung von einem anderen Daemon ausgelöst wird — zum Beispiel wird ein FTP-Server von @command{inetd} gestartet oder ein D-Bus-Dienst durch @command{dbus-daemon} aktiviert. Manchmal entspricht ein Dienst aber auch keinem Daemon. Zum Beispiel nimmt sich der Benutzerkonten-Dienst („account service“) die Benutzerkonten und sorgt dafür, dass sie existieren, wenn das System läuft. Der „udev“-Dienst sammelt die Regeln zur Geräteverwaltung an und macht diese für den eudev-Daemon verfügbar. Der @file{/etc}-Dienst fügt Dateien in das Verzeichnis @file{/etc} des Systems ein."
 
 #. type: cindex
-#: doc/guix.texi:27377
+#: doc/guix.texi:31543
 #, no-wrap
 msgid "service extensions"
 msgstr "Diensterweiterungen"
 
 #. type: Plain text
-#: doc/guix.texi:27389
+#: doc/guix.texi:31555
 msgid "Guix system services are connected by @dfn{extensions}.  For instance, the secure shell service @emph{extends} the Shepherd---the initialization system, running as PID@tie{}1---by giving it the command lines to start and stop the secure shell daemon (@pxref{Networking Services, @code{openssh-service-type}}); the UPower service extends the D-Bus service by passing it its @file{.service} specification, and extends the udev service by passing it device management rules (@pxref{Desktop Services, @code{upower-service}}); the Guix daemon service extends the Shepherd by passing it the command lines to start and stop the daemon, and extends the account service by passing it a list of required build user accounts (@pxref{Base Services})."
 msgstr "Dienste des Guix-Systems werden durch @dfn{Erweiterungen} („Extensions“) miteinander verbunden. Zum Beispiel @emph{erweitert} der Secure-Shell-Dienst den Shepherd — Shepherd ist das Initialisierungssystem (auch „init“-System genannt), was als PID@tie{}1 läuft —, indem es ihm die Befehlszeilen zum Starten und Stoppen des Secure-Shell-Daemons übergibt (siehe @ref{Networking Services, @code{openssh-service-type}}). Der UPower-Dienst erweitert den D-Bus-Dienst, indem es ihm seine @file{.service}-Spezifikation übergibt, und erweitert den udev-Dienst, indem es ihm Geräteverwaltungsregeln übergibt (siehe @ref{Desktop Services, @code{upower-service}}). Der Guix-Daemon-Dienst erweitert den Shepherd, indem er ihm die Befehlszeilen zum Starten und Stoppen des Daemons übergibt, und er erweitert den Benutzerkontendienst („account service“), indem er ihm eine Liste der benötigten Erstellungsbenutzerkonten übergibt (siehe @ref{Base Services})."
 
 #. type: Plain text
-#: doc/guix.texi:27393
+#: doc/guix.texi:31559
 msgid "All in all, services and their ``extends'' relations form a directed acyclic graph (DAG).  If we represent services as boxes and extensions as arrows, a typical system might provide something like this:"
 msgstr "Alles in allem bilden Dienste und ihre „Erweitert“-Relationen einen gerichteten azyklischen Graphen (englisch „Directed Acyclic Graph“, kurz DAG). Wenn wir Dienste als Kästen und Erweiterungen als Pfeile darstellen, könnte ein typisches System so etwas hier anbieten:"
 
 #. type: Plain text
-#: doc/guix.texi:27395
+#: doc/guix.texi:31561
 msgid "@image{images/service-graph,,5in,Typical service extension graph.}"
 msgstr "@image{images/service-graph,,5in,Typischer Diensterweiterungsgraph}"
 
 #. type: cindex
-#: doc/guix.texi:27396
+#: doc/guix.texi:31562
 #, no-wrap
 msgid "system service"
 msgstr "Systemdienst"
 
 #. type: Plain text
-#: doc/guix.texi:27404
+#: doc/guix.texi:31570
 msgid "At the bottom, we see the @dfn{system service}, which produces the directory containing everything to run and boot the system, as returned by the @command{guix system build} command.  @xref{Service Reference}, to learn about the other service types shown here.  @xref{system-extension-graph, the @command{guix system extension-graph} command}, for information on how to generate this representation for a particular operating system definition."
 msgstr "Ganz unten sehen wir den @dfn{Systemdienst}, der das Verzeichnis erzeugt, in dem alles zum Ausführen und Hochfahren enthalten ist, so wie es der Befehl @command{guix system build} liefert. Siehe @ref{Service Reference}, um mehr über die anderen hier gezeigten Diensttypen zu erfahren. Beim @ref{system-extension-graph, Befehl @command{guix system extension-graph}} finden Sie Informationen darüber, wie Sie diese Darstellung für eine Betriebssystemdefinition Ihrer Wahl generieren lassen."
 
 #. type: cindex
-#: doc/guix.texi:27405
+#: doc/guix.texi:31571
 #, no-wrap
 msgid "service types"
 msgstr "Diensttypen"
 
 #. type: Plain text
-#: doc/guix.texi:27411
+#: doc/guix.texi:31577
 msgid "Technically, developers can define @dfn{service types} to express these relations.  There can be any number of services of a given type on the system---for instance, a system running two instances of the GNU secure shell server (lsh) has two instances of @code{lsh-service-type}, with different parameters."
 msgstr "Technisch funktioniert es so, dass Entwickler @dfn{Diensttypen} definieren können, um diese Beziehungen auszudrücken. Im System kann es beliebig viele Dienste zu jedem Typ geben — zum Beispiel können auf einem System zwei Instanzen des GNU-Secure-Shell-Servers (lsh) laufen, mit zwei Instanzen des Diensttyps @code{lsh-service-type} mit je unterschiedlichen Parametern."
 
 #. type: Plain text
-#: doc/guix.texi:27414
+#: doc/guix.texi:31580
 msgid "The following section describes the programming interface for service types and services."
 msgstr "Der folgende Abschnitt beschreibt die Programmierschnittstelle für Diensttypen und Dienste."
 
 #. type: Plain text
-#: doc/guix.texi:27421
+#: doc/guix.texi:31587
 msgid "A @dfn{service type} is a node in the DAG described above.  Let us start with a simple example, the service type for the Guix build daemon (@pxref{Invoking guix-daemon}):"
 msgstr "Ein @dfn{Diensttyp} („service type“) ist ein Knoten im oben beschriebenen ungerichteten azyklischen Graphen (DAG). Fangen wir an mit einem einfachen Beispiel: dem Diensttyp für den Guix-Erstellungsdaemon (siehe @ref{Invoking guix-daemon}):"
 
 #. type: lisp
-#: doc/guix.texi:27431
+#: doc/guix.texi:31597
 #, no-wrap
 msgid ""
 "(define guix-service-type\n"
@@ -50890,110 +58290,110 @@ msgstr ""
 "   (default-value (guix-configuration))))\n"
 
 #. type: Plain text
-#: doc/guix.texi:27435
+#: doc/guix.texi:31601
 msgid "It defines three things:"
 msgstr "Damit sind drei Dinge definiert:"
 
 #. type: enumerate
-#: doc/guix.texi:27439
+#: doc/guix.texi:31605
 msgid "A name, whose sole purpose is to make inspection and debugging easier."
 msgstr "Ein Name, der nur dazu da ist, dass man leichter die Abläufe verstehen und Fehler suchen kann."
 
 #. type: enumerate
-#: doc/guix.texi:27444
+#: doc/guix.texi:31610
 msgid "A list of @dfn{service extensions}, where each extension designates the target service type and a procedure that, given the parameters of the service, returns a list of objects to extend the service of that type."
 msgstr "Eine Liste von @dfn{Diensterweiterungen} („service extensions“). Jede Erweiterung gibt den Ziel-Diensttyp an sowie eine Prozedur, die für gegebene Parameter für den Dienst eine Liste von Objekten zurückliefert, um den Dienst dieses Typs zu erweitern."
 
 #. type: enumerate
-#: doc/guix.texi:27447
+#: doc/guix.texi:31613
 msgid "Every service type has at least one service extension.  The only exception is the @dfn{boot service type}, which is the ultimate service."
 msgstr "Jeder Diensttyp benutzt mindestens eine Diensterweiterung. Die einzige Ausnahme ist der @dfn{boot service type}, der die Grundlage aller Dienste ist."
 
 #. type: enumerate
-#: doc/guix.texi:27450
+#: doc/guix.texi:31616
 msgid "Optionally, a default value for instances of this type."
 msgstr "Optional kann ein Vorgabewert für Instanzen dieses Typs angegeben werden."
 
 #. type: Plain text
-#: doc/guix.texi:27453
+#: doc/guix.texi:31619
 msgid "In this example, @code{guix-service-type} extends three services:"
 msgstr "In diesem Beispiel werden durch @code{guix-service-type} drei Dienste erweitert:"
 
 #. type: item
-#: doc/guix.texi:27455
+#: doc/guix.texi:31621
 #, no-wrap
 msgid "shepherd-root-service-type"
 msgstr "shepherd-root-service-type"
 
 #. type: table
-#: doc/guix.texi:27460
+#: doc/guix.texi:31626
 msgid "The @code{guix-shepherd-service} procedure defines how the Shepherd service is extended.  Namely, it returns a @code{<shepherd-service>} object that defines how @command{guix-daemon} is started and stopped (@pxref{Shepherd Services})."
 msgstr "Die Prozedur @code{guix-shepherd-service} definiert, wie der Shepherd-Dienst erweitert wird, und zwar liefert sie ein @code{<shepherd-service>}-Objekt, womit definiert wird, wie der @command{guix-daemon} gestartet und gestoppt werden kann (siehe @ref{Shepherd Services})."
 
 #. type: item
-#: doc/guix.texi:27461
+#: doc/guix.texi:31627
 #, no-wrap
 msgid "account-service-type"
 msgstr "account-service-type"
 
 #. type: table
-#: doc/guix.texi:27466
+#: doc/guix.texi:31632
 msgid "This extension for this service is computed by @code{guix-accounts}, which returns a list of @code{user-group} and @code{user-account} objects representing the build user accounts (@pxref{Invoking guix-daemon})."
 msgstr "Diese Erweiterung des Dienstes wird durch @code{guix-accounts} berechnet, eine Prozedur, die eine Liste von @code{user-group}- und @code{user-account}-Objekten liefert, die die Erstellungsbenutzerkonten repräsentieren (siehe @ref{Invoking guix-daemon})."
 
 #. type: item
-#: doc/guix.texi:27467
+#: doc/guix.texi:31633
 #, no-wrap
 msgid "activation-service-type"
 msgstr "activation-service-type"
 
 #. type: table
-#: doc/guix.texi:27471
+#: doc/guix.texi:31637
 msgid "Here @code{guix-activation} is a procedure that returns a gexp, which is a code snippet to run at ``activation time''---e.g., when the service is booted."
 msgstr "Hier ist @code{guix-activation} eine Prozedur, die einen G-Ausdruck liefert. Dieser ist ein Code-Schnipsel, das zur „Aktivierungszeit“ ausgeführt werden soll — z.B.@: wenn der Dienst hochgefahren wird."
 
 #. type: Plain text
-#: doc/guix.texi:27474
+#: doc/guix.texi:31640
 msgid "A service of this type is instantiated like this:"
 msgstr "Ein Dienst dieses Typs wird dann so instanziiert:"
 
 #. type: lisp
-#: doc/guix.texi:27480
+#: doc/guix.texi:31646
 #, no-wrap
 msgid ""
 "(service guix-service-type\n"
 "         (guix-configuration\n"
 "           (build-accounts 5)\n"
-"           (use-substitutes? #f)))\n"
+"           (extra-options '(\"--gc-keep-derivations\"))))\n"
 msgstr ""
 "(service guix-service-type\n"
 "         (guix-configuration\n"
 "           (build-accounts 5)\n"
-"           (use-substitutes? #f)))\n"
+"           (extra-options '(\"--gc-keep-derivations\"))))\n"
 
 #. type: Plain text
-#: doc/guix.texi:27488
+#: doc/guix.texi:31654
 msgid "The second argument to the @code{service} form is a value representing the parameters of this specific service instance.  @xref{guix-configuration-type, @code{guix-configuration}}, for information about the @code{guix-configuration} data type.  When the value is omitted, the default value specified by @code{guix-service-type} is used:"
 msgstr "Das zweite Argument an die @code{service}-Form ist ein Wert, der die Parameter dieser bestimmten Dienstinstanz repräsentiert. Siehe @ref{guix-configuration-type, @code{guix-configuration}} für Informationen über den @code{guix-configuration}-Datentyp. Wird kein Wert angegeben, wird die Vorgabe verwendet, die im @code{guix-service-type} angegeben wurde:"
 
 #. type: lisp
-#: doc/guix.texi:27491
+#: doc/guix.texi:31657
 #, no-wrap
 msgid "(service guix-service-type)\n"
 msgstr "(service guix-service-type)\n"
 
 #. type: Plain text
-#: doc/guix.texi:27495
+#: doc/guix.texi:31661
 msgid "@code{guix-service-type} is quite simple because it extends other services but is not extensible itself."
 msgstr "@code{guix-service-type} ist ziemlich einfach, weil es andere Dienste erweitert, aber selbst nicht erweitert werden kann."
 
 #. type: Plain text
-#: doc/guix.texi:27499
+#: doc/guix.texi:31665
 msgid "The service type for an @emph{extensible} service looks like this:"
 msgstr "Der Diensttyp eines @emph{erweiterbaren} Dienstes sieht ungefähr so aus:"
 
 #. type: lisp
-#: doc/guix.texi:27506
+#: doc/guix.texi:31672
 #, no-wrap
 msgid ""
 "(define udev-service-type\n"
@@ -51011,7 +58411,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:27514
+#: doc/guix.texi:31680
 #, no-wrap
 msgid ""
 "                (compose concatenate)       ;concatenate the list of rules\n"
@@ -51031,96 +58431,96 @@ msgstr ""
 "                              (rules (append initial-rules rules)))))))))\n"
 
 #. type: Plain text
-#: doc/guix.texi:27520
+#: doc/guix.texi:31686
 msgid "This is the service type for the @uref{https://wiki.gentoo.org/wiki/Project:Eudev, eudev device management daemon}.  Compared to the previous example, in addition to an extension of @code{shepherd-root-service-type}, we see two new fields:"
 msgstr "Dies ist der Diensttyp für den @uref{https://wiki.gentoo.org/wiki/Project:Eudev, Geräteverwaltungsdaemon eudev}. Verglichen mit dem vorherigen Beispiel sehen wir neben einer Erweiterung des @code{shepherd-root-service-type} auch zwei neue Felder."
 
 #. type: item
-#: doc/guix.texi:27522
+#: doc/guix.texi:31688
 #, no-wrap
 msgid "compose"
 msgstr "compose"
 
 #. type: table
-#: doc/guix.texi:27525
+#: doc/guix.texi:31691
 msgid "This is the procedure to @dfn{compose} the list of extensions to services of this type."
 msgstr "Die Prozedur, um die Liste der jeweiligen Erweiterungen für den Dienst dieses Typs zu einem Objekt zusammenzustellen (zu „komponieren“, englisch @dfn{compose})."
 
 #. type: table
-#: doc/guix.texi:27528
+#: doc/guix.texi:31694
 msgid "Services can extend the udev service by passing it lists of rules; we compose those extensions simply by concatenating them."
 msgstr "Dienste können den udev-Dienst erweitern, indem sie eine Liste von Regeln („Rules“) an ihn übergeben; wir komponieren mehrere solche Erweiterungen, indem wir die Listen einfach zusammenfügen."
 
 #. type: item
-#: doc/guix.texi:27529
+#: doc/guix.texi:31695
 #, no-wrap
 msgid "extend"
 msgstr "extend"
 
 #. type: table
-#: doc/guix.texi:27532
+#: doc/guix.texi:31698
 msgid "This procedure defines how the value of the service is @dfn{extended} with the composition of the extensions."
 msgstr "Diese Prozedur definiert, wie der Wert des Dienstes um die Komposition mit Erweiterungen erweitert („extended“) werden kann."
 
 #. type: table
-#: doc/guix.texi:27537
+#: doc/guix.texi:31703
 msgid "Udev extensions are composed into a list of rules, but the udev service value is itself a @code{<udev-configuration>} record.  So here, we extend that record by appending the list of rules it contains to the list of contributed rules."
 msgstr "Udev-Erweiterungen werden zu einer einzigen Liste von Regeln komponiert, aber der Wert des udev-Dienstes ist ein @code{<udev-configuration>}-Verbundsobjekt. Deshalb erweitern wir diesen Verbund, indem wir die Liste der von Erweiterungen beigetragenen Regeln an die im Verbund gespeicherte Liste der Regeln anhängen."
 
 #. type: table
-#: doc/guix.texi:27543
+#: doc/guix.texi:31709
 msgid "This is a string giving an overview of the service type.  The string can contain Texinfo markup (@pxref{Overview,,, texinfo, GNU Texinfo}).  The @command{guix system search} command searches these strings and displays them (@pxref{Invoking guix system})."
 msgstr "Diese Zeichenkette gibt einen Überblick über den Systemtyp. Die Zeichenkette darf mit Texinfo ausgezeichnet werden (siehe @ref{Overview,,, texinfo, GNU Texinfo}). Der Befehl @command{guix system search} durchsucht diese Zeichenketten und zeigt sie an (siehe @ref{Invoking guix system})."
 
 #. type: Plain text
-#: doc/guix.texi:27548
+#: doc/guix.texi:31714
 msgid "There can be only one instance of an extensible service type such as @code{udev-service-type}.  If there were more, the @code{service-extension} specifications would be ambiguous."
 msgstr "Es kann nur eine Instanz eines erweiterbaren Diensttyps wie @code{udev-service-type} geben. Wenn es mehrere gäbe, wäre es mehrdeutig, welcher Dienst durch die @code{service-extension} erweitert werden soll."
 
 #. type: Plain text
-#: doc/guix.texi:27551
+#: doc/guix.texi:31717
 msgid "Still here? The next section provides a reference of the programming interface for services."
 msgstr "Sind Sie noch da? Der nächste Abschnitt gibt Ihnen eine Referenz der Programmierschnittstelle für Dienste."
 
 #. type: Plain text
-#: doc/guix.texi:27559
+#: doc/guix.texi:31725
 msgid "We have seen an overview of service types (@pxref{Service Types and Services}).  This section provides a reference on how to manipulate services and service types.  This interface is provided by the @code{(gnu services)} module."
 msgstr "Wir haben bereits einen Überblick über Diensttypen gesehen (siehe @ref{Service Types and Services}). Dieser Abschnitt hier stellt eine Referenz dar, wie Dienste und Diensttypen manipuliert werden können. Diese Schnittstelle wird vom Modul @code{(gnu services)} angeboten."
 
 #. type: deffn
-#: doc/guix.texi:27560
+#: doc/guix.texi:31726
 #, no-wrap
 msgid "{Scheme Procedure} service @var{type} [@var{value}]"
 msgstr "{Scheme-Prozedur} service @var{Typ} [@var{Wert}]"
 
 #. type: deffn
-#: doc/guix.texi:27564
-msgid "Return a new service of @var{type}, a @code{<service-type>} object (see below.)  @var{value} can be any object; it represents the parameters of this particular service instance."
+#: doc/guix.texi:31730
+msgid "Return a new service of @var{type}, a @code{<service-type>} object (see below).  @var{value} can be any object; it represents the parameters of this particular service instance."
 msgstr "Liefert einen neuen Dienst des angegebenen @var{Typ}s. Der @var{Typ} muss als @code{<service-type>}-Objekt angegeben werden (siehe unten). Als @var{Wert} kann ein beliebiges Objekt angegeben werden, das die Parameter dieser bestimmten Instanz dieses Dienstes repräsentiert."
 
 #. type: deffn
-#: doc/guix.texi:27568
+#: doc/guix.texi:31734
 msgid "When @var{value} is omitted, the default value specified by @var{type} is used; if @var{type} does not specify a default value, an error is raised."
 msgstr "Wenn kein @var{Wert} angegeben wird, wird der vom @var{Typ} festgelegte Vorgabewert verwendet; verfügt der @var{Typ} über keinen Vorgabewert, dann wird ein Fehler gemeldet."
 
 #. type: deffn
-#: doc/guix.texi:27570
+#: doc/guix.texi:31736
 msgid "For instance, this:"
 msgstr "Zum Beispiel bewirken Sie hiermit:"
 
 #. type: lisp
-#: doc/guix.texi:27573
+#: doc/guix.texi:31739
 #, no-wrap
 msgid "(service openssh-service-type)\n"
 msgstr "(service openssh-service-type)\n"
 
 #. type: deffn
-#: doc/guix.texi:27577
+#: doc/guix.texi:31743
 msgid "is equivalent to this:"
 msgstr "dasselbe wie mit:"
 
 #. type: lisp
-#: doc/guix.texi:27581
+#: doc/guix.texi:31747
 #, no-wrap
 msgid ""
 "(service openssh-service-type\n"
@@ -51130,50 +58530,50 @@ msgstr ""
 "         (openssh-configuration))\n"
 
 #. type: deffn
-#: doc/guix.texi:27585
+#: doc/guix.texi:31751
 msgid "In both cases the result is an instance of @code{openssh-service-type} with the default configuration."
 msgstr "In beiden Fällen ist das Ergebnis eine Instanz von @code{openssh-service-type} mit der vorgegebenen Konfiguration."
 
 #. type: deffn
-#: doc/guix.texi:27587
+#: doc/guix.texi:31753
 #, no-wrap
 msgid "{Scheme Procedure} service? @var{obj}"
 msgstr "{Scheme-Prozedur} service? @var{Objekt}"
 
 #. type: deffn
-#: doc/guix.texi:27589
+#: doc/guix.texi:31755
 msgid "Return true if @var{obj} is a service."
 msgstr "Liefert wahr zurück, wenn das @var{Objekt} ein Dienst ist."
 
 #. type: deffn
-#: doc/guix.texi:27591
+#: doc/guix.texi:31757
 #, no-wrap
 msgid "{Scheme Procedure} service-kind @var{service}"
 msgstr "{Scheme-Prozedur} service-kind @var{Dienst}"
 
 #. type: deffn
-#: doc/guix.texi:27593
+#: doc/guix.texi:31759
 msgid "Return the type of @var{service}---i.e., a @code{<service-type>} object."
 msgstr "Liefert den Typ des @var{Dienst}es — d.h.@: ein @code{<service-type>}-Objekt."
 
 #. type: deffn
-#: doc/guix.texi:27595
+#: doc/guix.texi:31761
 #, no-wrap
 msgid "{Scheme Procedure} service-value @var{service}"
 msgstr "{Scheme-Prozedur} service-value @var{Dienst}"
 
 #. type: deffn
-#: doc/guix.texi:27598
+#: doc/guix.texi:31764
 msgid "Return the value associated with @var{service}.  It represents its parameters."
 msgstr "Liefert den Wert, der mit dem @var{Dienst} assoziiert wurde. Er repräsentiert die Parameter des @var{Dienst}es."
 
 #. type: Plain text
-#: doc/guix.texi:27601
+#: doc/guix.texi:31767
 msgid "Here is an example of how a service is created and manipulated:"
 msgstr "Hier ist ein Beispiel, wie ein Dienst erzeugt und manipuliert werden kann:"
 
 #. type: lisp
-#: doc/guix.texi:27610
+#: doc/guix.texi:31776
 #, no-wrap
 msgid ""
 "(define s\n"
@@ -51195,7 +58595,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:27613
+#: doc/guix.texi:31779
 #, no-wrap
 msgid ""
 "(service? s)\n"
@@ -51207,7 +58607,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:27616
+#: doc/guix.texi:31782
 #, no-wrap
 msgid ""
 "(eq? (service-kind s) nginx-service-type)\n"
@@ -51217,167 +58617,194 @@ msgstr ""
 "@result{} #t\n"
 
 #. type: Plain text
-#: doc/guix.texi:27626
+#: doc/guix.texi:31792
 msgid "The @code{modify-services} form provides a handy way to change the parameters of some of the services of a list such as @code{%base-services} (@pxref{Base Services, @code{%base-services}}).  It evaluates to a list of services.  Of course, you could always use standard list combinators such as @code{map} and @code{fold} to do that (@pxref{SRFI-1, List Library,, guile, GNU Guile Reference Manual}); @code{modify-services} simply provides a more concise form for this common pattern."
-msgstr "Die Form @code{modify-services} ist eine nützliche Methode, die Parameter von einigen der Dienste aus einer Liste wie @code{%base-services} abzuändern (siehe @ref{Base Services, @code{%base-services}}). Sie wird zu einer Liste von Diensten ausgewertet. Natürlich können Sie dazu auch die üblichen Listenkombinatoren wie @code{map} und @code{fold} benutzen (siehe @ref{SRFI-1, List Library,, guile, GNU Guile Reference Manual}), @code{modify-services} soll dieses häufig benutzte Muster lediglich durch eine knappere Syntax unterstützen."
+msgstr "Die Form @code{modify-services} ist eine nützliche Methode, die Parameter von einigen der Dienste aus einer Liste wie @code{%base-services} abzuändern (siehe @ref{Base Services, @code{%base-services}}). Sie wird zu einer Liste von Diensten ausgewertet. Natürlich können Sie dazu auch die üblichen Listenkombinatoren wie @code{map} und @code{fold} benutzen (siehe @ref{SRFI-1, List Library,, guile, Referenzhandbuch zu GNU Guile}), @code{modify-services} soll dieses häufig benutzte Muster lediglich durch eine knappere Syntax unterstützen."
 
 #. type: deffn
-#: doc/guix.texi:27627
+#: doc/guix.texi:31793
 #, no-wrap
 msgid "{Scheme Syntax} modify-services @var{services} @"
 msgstr "{Scheme-Syntax} modify-services @var{Dienste} @"
 
 #. type: deffn
-#: doc/guix.texi:27629
+#: doc/guix.texi:31795
 msgid "(@var{type} @var{variable} => @var{body}) @dots{}"
 msgstr "(@var{Typ} @var{Variable} => @var{Rumpf}) …"
 
 #. type: deffn
-#: doc/guix.texi:27632
+#: doc/guix.texi:31798
 msgid "Modify the services listed in @var{services} according to the given clauses.  Each clause has the form:"
 msgstr "Passt die von @var{Dienste} bezeichnete Dienst-Liste entsprechend den angegebenen Klauseln an. Jede Klausel hat die Form:"
 
 #. type: example
-#: doc/guix.texi:27635
+#: doc/guix.texi:31801
 #, no-wrap
 msgid "(@var{type} @var{variable} => @var{body})\n"
 msgstr "(@var{Typ} @var{Variable} => @var{Rumpf})\n"
 
 #. type: deffn
-#: doc/guix.texi:27642
+#: doc/guix.texi:31808
 msgid "where @var{type} is a service type---e.g., @code{guix-service-type}---and @var{variable} is an identifier that is bound within the @var{body} to the service parameters---e.g., a @code{guix-configuration} instance---of the original service of that @var{type}."
 msgstr "wobei @var{Typ} einen Diensttyp („service type“) bezeichnet — wie zum Beispiel @code{guix-service-type} — und @var{Variable} ein Bezeichner ist, der im @var{Rumpf} an die Dienst-Parameter — z.B.@: eine @code{guix-configuration}-Instanz — des ursprünglichen Dienstes mit diesem @var{Typ} gebunden wird."
 
 #. type: deffn
-#: doc/guix.texi:27649
+#: doc/guix.texi:31815
 msgid "The @var{body} should evaluate to the new service parameters, which will be used to configure the new service.  This new service will replace the original in the resulting list.  Because a service's service parameters are created using @code{define-record-type*}, you can write a succinct @var{body} that evaluates to the new service parameters by using the @code{inherit} feature that @code{define-record-type*} provides."
 msgstr "Der @var{Rumpf} muss zu den neuen Dienst-Parametern ausgewertet werden, welche benutzt werden, um den neuen Dienst zu konfigurieren. Dieser neue Dienst wird das Original in der resultierenden Liste ersetzen. Weil die Dienstparameter eines Dienstes mit @code{define-record-type*} erzeugt werden, können Sie einen kurzen @var{Rumpf} schreiben, der zu den neuen Dienstparametern ausgewertet wird, indem Sie die Funktionalität namens @code{inherit} benutzen, die von @code{define-record-type*} bereitgestellt wird."
 
 #. type: deffn
-#: doc/guix.texi:27651
+#: doc/guix.texi:31817
 msgid "@xref{Using the Configuration System}, for example usage."
 msgstr "Siehe @ref{Using the Configuration System} für ein Anwendungsbeispiel."
 
 #. type: Plain text
-#: doc/guix.texi:27658
+#: doc/guix.texi:31824
 msgid "Next comes the programming interface for service types.  This is something you want to know when writing new service definitions, but not necessarily when simply looking for ways to customize your @code{operating-system} declaration."
 msgstr "Als Nächstes ist die Programmierschnittstelle für Diensttypen an der Reihe. Sie ist etwas, was Sie kennen werden wollen, wenn Sie neue Dienstdefinitionen schreiben, aber wenn Sie nur Ihre @code{operating-system}-Deklaration anpassen möchten, brauchen Sie diese Schnittstelle wahrscheinlich nicht."
 
 #. type: deftp
-#: doc/guix.texi:27659
+#: doc/guix.texi:31825
 #, no-wrap
 msgid "{Data Type} service-type"
 msgstr "{Datentyp} service-type"
 
 #. type: cindex
-#: doc/guix.texi:27660
+#: doc/guix.texi:31826
 #, no-wrap
 msgid "service type"
 msgstr "Diensttyp"
 
 #. type: deftp
-#: doc/guix.texi:27663
+#: doc/guix.texi:31829
 msgid "This is the representation of a @dfn{service type} (@pxref{Service Types and Services})."
 msgstr "Die Repräsentation eines @dfn{Diensttypen} (siehe @ref{Service Types and Services})."
 
 #. type: table
-#: doc/guix.texi:27667
+#: doc/guix.texi:31833
 msgid "This is a symbol, used only to simplify inspection and debugging."
 msgstr "Dieses Symbol wird nur verwendet, um die Abläufe im System anzuzeigen und die Fehlersuche zu erleichtern."
 
 #. type: code{#1}
-#: doc/guix.texi:27668
+#: doc/guix.texi:31834
 #, no-wrap
 msgid "extensions"
 msgstr "extensions"
 
 #. type: table
-#: doc/guix.texi:27670
+#: doc/guix.texi:31836
 msgid "A non-empty list of @code{<service-extension>} objects (see below)."
 msgstr "Eine nicht-leere Liste von @code{<service-extension>}-Objekten (siehe unten)."
 
 #. type: item
-#: doc/guix.texi:27671
+#: doc/guix.texi:31837
 #, no-wrap
 msgid "@code{compose} (default: @code{#f})"
 msgstr "@code{compose} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:27675
+#: doc/guix.texi:31841
 msgid "If this is @code{#f}, then the service type denotes services that cannot be extended---i.e., services that do not receive ``values'' from other services."
 msgstr "Wenn es auf @code{#f} gesetzt ist, dann definiert der Diensttyp Dienste, die nicht erweitert werden können — d.h.@: diese Dienste erhalten ihren Wert nicht von anderen Diensten."
 
 #. type: table
-#: doc/guix.texi:27679
+#: doc/guix.texi:31845
 msgid "Otherwise, it must be a one-argument procedure.  The procedure is called by @code{fold-services} and is passed a list of values collected from extensions.  It may return any single value."
 msgstr "Andernfalls muss es eine Prozedur sein, die ein einziges Argument entgegennimmt. Die Prozedur wird durch @code{fold-services} aufgerufen und ihr wird die Liste von aus den Erweiterungen angesammelten Werten übergeben. Sie gibt daraufhin einen einzelnen Wert zurück."
 
 #. type: item
-#: doc/guix.texi:27680
+#: doc/guix.texi:31846
 #, no-wrap
 msgid "@code{extend} (default: @code{#f})"
 msgstr "@code{extend} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:27682
+#: doc/guix.texi:31848
 msgid "If this is @code{#f}, services of this type cannot be extended."
 msgstr "Ist dies auf @code{#f} gesetzt, dann können Dienste dieses Typs nicht erweitert werden."
 
 #. type: table
-#: doc/guix.texi:27688
+#: doc/guix.texi:31854
 msgid "Otherwise, it must be a two-argument procedure: @code{fold-services} calls it, passing it the initial value of the service as the first argument and the result of applying @code{compose} to the extension values as the second argument.  It must return a value that is a valid parameter value for the service instance."
 msgstr "Andernfalls muss es eine zwei Argumente nehmende Prozedur sein, die von @code{fold-services} mit dem anfänglichen Wert für den Dienst als erstes Argument und dem durch Anwendung von @code{compose} gelieferten Wert als zweites Argument aufgerufen wird. Als Ergebnis muss ein Wert geliefert werden, der einen zulässigen neuen Parameterwert für die Dienstinstanz darstellt."
 
+#. type: table
+#: doc/guix.texi:31860
+msgid "This is a string, possibly using Texinfo markup, describing in a couple of sentences what the service is about.  This string allows users to find about the service through @command{guix system search} (@pxref{Invoking guix system})."
+msgstr "Eine Zeichenkette, womöglich geschrieben als Texinfo-Markup, die in ein paar Sätzen beschreibt, wofür der Dienst gut ist. Diese Zeichenkette ermöglicht es Nutzern, mittels @command{guix system search} Informationen über den Dienst zu bekommen (siehe @ref{Invoking guix system})."
+
+#. type: item
+#: doc/guix.texi:31861
+#, no-wrap
+msgid "@code{default-value} (default: @code{&no-default-value})"
+msgstr "@code{default-value} (Vorgabe: @code{&no-default-value})"
+
+#. type: table
+#: doc/guix.texi:31864
+msgid "The default value associated for instances of this service type.  This allows users to use the @code{service} form without its second argument:"
+msgstr "Der Vorgabewert, der für Instanzen dieses Diensttyps verwendet wird. Dadurch können Nutzer die @code{service}-Form ohne ihr zweites Argument benutzen:"
+
+#. type: lisp
+#: doc/guix.texi:31867
+#, no-wrap
+msgid "(service @var{type})\n"
+msgstr "(service @var{Diensttyp})\n"
+
+#. type: table
+#: doc/guix.texi:31871
+msgid "The returned service in this case has the default value specified by @var{type}."
+msgstr "Der zurückgelieferte Dienst hat dann den durch den @var{Diensttyp} vorgegebenen Vorgabewert."
+
 #. type: deftp
-#: doc/guix.texi:27691
+#: doc/guix.texi:31874
 msgid "@xref{Service Types and Services}, for examples."
 msgstr "Siehe den Abschnitt @ref{Service Types and Services} für Beispiele."
 
 #. type: deffn
-#: doc/guix.texi:27693
+#: doc/guix.texi:31876
 #, no-wrap
 msgid "{Scheme Procedure} service-extension @var{target-type} @"
 msgstr "{Scheme-Prozedur} service-extension @var{Zieltyp} @"
 
 #. type: deffn
-#: doc/guix.texi:27699
+#: doc/guix.texi:31882
 msgid "@var{compute} Return a new extension for services of type @var{target-type}.  @var{compute} must be a one-argument procedure: @code{fold-services} calls it, passing it the value associated with the service that provides the extension; it must return a valid value for the target service."
 msgstr "@var{Berechner} Liefert eine neue Erweiterung für den Dienst mit dem @var{Zieltyp}. Als @var{Berechner} muss eine Prozedur angegeben werden, die ein einzelnes Argument nimmt: @code{fold-services} ruft sie auf und übergibt an sie den Wert des erweiternden Dienstes, sie muss dafür einen zulässigen Wert für den @var{Zieltyp} liefern."
 
 #. type: deffn
-#: doc/guix.texi:27701
+#: doc/guix.texi:31884
 #, no-wrap
 msgid "{Scheme Procedure} service-extension? @var{obj}"
 msgstr "{Scheme-Prozedur} service-extension? @var{Objekt}"
 
 #. type: deffn
-#: doc/guix.texi:27703
+#: doc/guix.texi:31886
 msgid "Return true if @var{obj} is a service extension."
 msgstr "Liefert wahr zurück, wenn das @var{Objekt} eine Diensterweiterung ist."
 
 #. type: Plain text
-#: doc/guix.texi:27709
+#: doc/guix.texi:31892
 msgid "Occasionally, you might want to simply extend an existing service.  This involves creating a new service type and specifying the extension of interest, which can be verbose; the @code{simple-service} procedure provides a shorthand for this."
 msgstr "Manchmal wollen Sie vielleicht einfach nur einen bestehenden Dienst erweitern. Dazu müssten Sie einen neuen Diensttyp definieren und die Erweiterung definieren, für die Sie sich interessieren, was ganz schön wortreich werden kann. Mit der Prozedur @code{simple-service} können Sie es kürzer fassen."
 
 #. type: deffn
-#: doc/guix.texi:27710
+#: doc/guix.texi:31893
 #, no-wrap
 msgid "{Scheme Procedure} simple-service @var{name} @var{target} @var{value}"
 msgstr "{Scheme-Prozedur} simple-service @var{Name} @var{Zieltyp} @var{Wert}"
 
 #. type: deffn
-#: doc/guix.texi:27714
+#: doc/guix.texi:31897
 msgid "Return a service that extends @var{target} with @var{value}.  This works by creating a singleton service type @var{name}, of which the returned service is an instance."
 msgstr "Liefert einen Dienst, der den Dienst mit dem @var{Zieltyp} um den @var{Wert} erweitert. Dazu wird ein Diensttyp mit dem @var{Name}n für den einmaligen Gebrauch erzeugt, den der zurückgelieferte Dienst instanziiert."
 
 #. type: deffn
-#: doc/guix.texi:27717
+#: doc/guix.texi:31900
 msgid "For example, this extends mcron (@pxref{Scheduled Job Execution}) with an additional job:"
 msgstr "Zum Beispiel kann mcron (siehe @ref{Scheduled Job Execution}) so um einen zusätzlichen Auftrag erweitert werden:"
 
 #. type: lisp
-#: doc/guix.texi:27721
+#: doc/guix.texi:31904
 #, no-wrap
 msgid ""
 "(simple-service 'my-mcron-job mcron-service-type\n"
@@ -51387,388 +58814,393 @@ msgstr ""
 "                #~(job '(next-hour (3)) \"guix gc -F 2G\"))\n"
 
 #. type: Plain text
-#: doc/guix.texi:27731
+#: doc/guix.texi:31914
 msgid "At the core of the service abstraction lies the @code{fold-services} procedure, which is responsible for ``compiling'' a list of services down to a single directory that contains everything needed to boot and run the system---the directory shown by the @command{guix system build} command (@pxref{Invoking guix system}).  In essence, it propagates service extensions down the service graph, updating each node parameters on the way, until it reaches the root node."
 msgstr "Den Kern dieses abstrakten Modells für Dienste bildet die Prozedur @code{fold-services}, die für das „Kompilieren“ einer Liste von Diensten hin zu einem einzelnen Verzeichnis verantwortlich ist, in welchem alles enthalten ist, was Sie zum Booten und Hochfahren des Systems brauchen — d.h.@: das Verzeichnis, das der Befehl @command{guix system build} anzeigt (siehe @ref{Invoking guix system}). Einfach ausgedrückt propagiert @code{fold-services} Diensterweiterungen durch den Dienstgraphen nach unten und aktualisiert dabei in jedem Knoten des Graphen dessen Parameter, bis nur noch der Wurzelknoten übrig bleibt."
 
 #. type: deffn
-#: doc/guix.texi:27732
+#: doc/guix.texi:31915
 #, no-wrap
 msgid "{Scheme Procedure} fold-services @var{services} @"
 msgstr "{Scheme-Prozedur} fold-services @var{Dienste} @"
 
 #. type: deffn
-#: doc/guix.texi:27736
+#: doc/guix.texi:31919
 msgid "[#:target-type @var{system-service-type}] Fold @var{services} by propagating their extensions down to the root of type @var{target-type}; return the root service adjusted accordingly."
 msgstr "[#:target-type @var{system-service-type}] Faltet die @var{Dienste} wie die funktionale Prozedur @code{fold} zu einem einzigen zusammen, indem ihre Erweiterungen nach unten propagiert werden, bis eine Wurzel vom @var{target-type} als Diensttyp erreicht wird; dieser so angepasste Wurzeldienst wird zurückgeliefert."
 
 #. type: Plain text
-#: doc/guix.texi:27740
+#: doc/guix.texi:31923
 msgid "Lastly, the @code{(gnu services)} module also defines several essential service types, some of which are listed below."
 msgstr "Als Letztes definiert das Modul @code{(gnu services)} noch mehrere essenzielle Diensttypen, von denen manche im Folgenden aufgelistet sind:"
 
 #. type: defvr
-#: doc/guix.texi:27741
+#: doc/guix.texi:31924
 #, no-wrap
 msgid "{Scheme Variable} system-service-type"
 msgstr "{Scheme-Variable} system-service-type"
 
 #. type: defvr
-#: doc/guix.texi:27744
+#: doc/guix.texi:31927
 msgid "This is the root of the service graph.  It produces the system directory as returned by the @command{guix system build} command."
 msgstr "Die Wurzel des Dienstgraphen. Davon wird das Systemverzeichnis erzeugt, wie es vom Befehl @command{guix system build} zurückgeliefert wird."
 
 #. type: defvr
-#: doc/guix.texi:27746
+#: doc/guix.texi:31929
 #, no-wrap
 msgid "{Scheme Variable} boot-service-type"
 msgstr "{Scheme-Variable} boot-service-type"
 
 #. type: defvr
-#: doc/guix.texi:27749
+#: doc/guix.texi:31932
 msgid "The type of the ``boot service'', which produces the @dfn{boot script}.  The boot script is what the initial RAM disk runs when booting."
 msgstr "Der Typ des „Boot-Dienstes“, der das @dfn{Boot-Skript} erzeugt. Das Boot-Skript ist das, was beim Booten durch die initiale RAM-Disk ausgeführt wird."
 
 #. type: defvr
-#: doc/guix.texi:27751
+#: doc/guix.texi:31934
 #, no-wrap
 msgid "{Scheme Variable} etc-service-type"
 msgstr "{Scheme-Variable} etc-service-type"
 
 #. type: defvr
-#: doc/guix.texi:27755
+#: doc/guix.texi:31938
 msgid "The type of the @file{/etc} service.  This service is used to create files under @file{/etc} and can be extended by passing it name/file tuples such as:"
-msgstr "Der Typ des @file{/etc}-Dienstes. Dieser Dienst wird benutzt, um im @file{/etc}-Verzeichnis Dateien zu platzieren. Er kann erweitert werden, indem man Name-/Datei-Tupel an ihn übergibt wie in diesem Beispiel:"
+msgstr "Der Typ des @file{/etc}-Dienstes. Dieser Dienst wird benutzt, um im @file{/etc}-Verzeichnis Dateien zu platzieren. Er kann erweitert werden, indem man Name-Datei-Tupel an ihn übergibt wie in diesem Beispiel:"
 
 #. type: lisp
-#: doc/guix.texi:27758
+#: doc/guix.texi:31941
 #, no-wrap
 msgid "(list `(\"issue\" ,(plain-file \"issue\" \"Welcome!\\n\")))\n"
 msgstr "(list `(\"issue\" ,(plain-file \"issue\" \"Willkommen!\\n\")))\n"
 
 #. type: defvr
-#: doc/guix.texi:27762
+#: doc/guix.texi:31945
 msgid "In this example, the effect would be to add an @file{/etc/issue} file pointing to the given file."
 msgstr "Dieses Beispiel würde bewirken, dass eine Datei @file{/etc/issue} auf die angegebene Datei verweist."
 
 #. type: defvr
-#: doc/guix.texi:27764
+#: doc/guix.texi:31947
 #, no-wrap
 msgid "{Scheme Variable} setuid-program-service-type"
 msgstr "{Scheme-Variable} setuid-program-service-type"
 
 #. type: defvr
-#: doc/guix.texi:27768
+#: doc/guix.texi:31951
 msgid "Type for the ``setuid-program service''.  This service collects lists of executable file names, passed as gexps, and adds them to the set of setuid-root programs on the system (@pxref{Setuid Programs})."
 msgstr "Der Typ des Dienstes für setuid-Programme, der eine Liste von ausführbaren Dateien ansammelt, die jeweils als G-Ausdrücke übergeben werden und dann zur Menge der setuid-gesetzten Programme auf dem System hinzugefügt werden (siehe @ref{Setuid Programs})."
 
 #. type: defvr
-#: doc/guix.texi:27770
+#: doc/guix.texi:31953
 #, no-wrap
 msgid "{Scheme Variable} profile-service-type"
 msgstr "{Scheme-Variable} profile-service-type"
 
 #. type: defvr
-#: doc/guix.texi:27774
+#: doc/guix.texi:31957
 msgid "Type of the service that populates the @dfn{system profile}---i.e., the programs under @file{/run/current-system/profile}.  Other services can extend it by passing it lists of packages to add to the system profile."
 msgstr "Der Typ des Dienstes zum Einfügen von Dateien ins @dfn{Systemprofil} — d.h.@: die Programme unter @file{/run/current-system/profile}. Andere Dienste können ihn erweitern, indem sie ihm Listen von ins Systemprofil zu installierenden Paketen übergeben."
 
+#. type: anchor{#1}
+#: doc/guix.texi:31961
+msgid "provenance-service-type"
+msgstr "provenance-service-type"
+
 #. type: defvr
-#: doc/guix.texi:27777
+#: doc/guix.texi:31961
 #, no-wrap
 msgid "{Scheme Variable} provenance-service-type"
 msgstr "{Scheme-Variable} provenance-service-type"
 
 #. type: defvr
-#: doc/guix.texi:27781
+#: doc/guix.texi:31965
 msgid "This is the type of the service that records @dfn{provenance meta-data} in the system itself.  It creates several files under @file{/run/current-system}:"
 msgstr "Dies ist der Diensttyp des Dienstes, um @dfn{Provenienz-Metadaten} zusammen mit dem eigentlichen System zu speichern. Dazu werden mehrere Dateien unter @file{/run/current-system} erstellt:"
 
 #. type: item
-#: doc/guix.texi:27783
+#: doc/guix.texi:31967
 #, no-wrap
 msgid "channels.scm"
 msgstr "channels.scm"
 
 #. type: table
-#: doc/guix.texi:27788
+#: doc/guix.texi:31972
 msgid "This is a ``channel file'' that can be passed to @command{guix pull -C} or @command{guix time-machine -C}, and which describes the channels used to build the system, if that information was available (@pxref{Channels})."
 msgstr "Sie ist eine „Kanaldatei“, wie sie an @command{guix pull -C} oder @command{guix time-machine -C} übergeben werden kann, die die zum Erstellen des Systems notwendigen Kanäle beschreibt, sofern diese Information zur Verfügung gestanden hat (siehe @ref{Channels})."
 
 #. type: item
-#: doc/guix.texi:27789
+#: doc/guix.texi:31973
 #, no-wrap
 msgid "configuration.scm"
 msgstr "configuration.scm"
 
 #. type: table
-#: doc/guix.texi:27794
+#: doc/guix.texi:31978
 msgid "This is the file that was passed as the value for this @code{provenance-service-type} service.  By default, @command{guix system reconfigure} automatically passes the OS configuration file it received on the command line."
 msgstr "Jene Datei entspricht derjenigen, die als Wert für diesen @code{provenance-service-type}-Dienst mitgegeben wurde. Nach Vorgabe übergibt @command{guix system reconfigure} automatisch die Betriebssystemkonfigurationsdatei, die es auf der Befehlszeile bekommen hat."
 
 #. type: item
-#: doc/guix.texi:27795
+#: doc/guix.texi:31979
 #, no-wrap
 msgid "provenance"
 msgstr "provenance"
 
 #. type: table
-#: doc/guix.texi:27798
+#: doc/guix.texi:31982
 msgid "This contains the same information as the two other files but in a format that is more readily processable."
 msgstr "Hierin sind dieselben Informationen enthalten, die auch in den anderen beiden Dateien stehen, aber in einem leichter zu verarbeitenden Format."
 
 #. type: defvr
-#: doc/guix.texi:27802
+#: doc/guix.texi:31986
 msgid "In general, these two pieces of information (channels and configuration file) are enough to reproduce the operating system ``from source''."
 msgstr "Im Allgemeinen genügen diese zwei Informationen (Kanäle und Konfigurationsdatei), um das Betriebssystem „aus seinem Quellcode heraus“ zu reproduzieren."
 
 #. type: quotation
-#: doc/guix.texi:27803
+#: doc/guix.texi:31987
 #, no-wrap
 msgid "Caveats"
 msgstr "Einschränkungen"
 
 #. type: quotation
-#: doc/guix.texi:27810
+#: doc/guix.texi:31994
 msgid "This information is necessary to rebuild your operating system, but it is not always sufficient.  In particular, @file{configuration.scm} itself is insufficient if it is not self-contained---if it refers to external Guile modules or to extra files.  If you want @file{configuration.scm} to be self-contained, we recommend that modules or files it refers to be part of a channel."
 msgstr "Sie benötigen diese Informationen, um Ihr Betriebssystem erneut zu erstellen, aber sie alleine @emph{reichen nicht immer aus}. Insbesondere ist @file{configuration.scm} alleine nicht hinreichend, wenn es @emph{nicht} eigenständig ist, sondern auf externe Guile-Module oder andere Dateien verweist. Wenn Sie erreichen wollen, dass @file{configuration.scm} eigenständig wird, empfehlen wir, alle darin verwendeten Module oder Dateien zu Bestandteilen eines Kanals zu machen."
 
 #. type: quotation
-#: doc/guix.texi:27818
+#: doc/guix.texi:32002
 msgid "Besides, provenance meta-data is ``silent'' in the sense that it does not change the bits contained in your system, @emph{except for the meta-data bits themselves}.  Two different OS configurations or sets of channels can lead to the same system, bit-for-bit; when @code{provenance-service-type} is used, these two systems will have different meta-data and thus different store file names, which makes comparison less trivial."
 msgstr "Übrigens sind Provenienzmetadaten „still“ in dem Sinn, dass ihr Vorhandensein nichts an den Bits ändert, die Ihr System ausmachen, @emph{abgesehen von den die Metadaten ausmachenden Bits}. Zwei verschiedene Betriebssystemkonfigurationen und Kanalangaben können also Bit für Bit dasselbe System erzeugen, aber wenn der @code{provenance-service-type} benutzt wird, enthalten die beiden Systeme trotzdem unterschiedliche Metadaten und damit nicht mehr den gleichen Dateinamen im Store, was es schwerer macht, ihre Gleichheit zu erkennen."
 
 #. type: defvr
-#: doc/guix.texi:27823
+#: doc/guix.texi:32007
 msgid "This service is automatically added to your operating system configuration when you use @command{guix system reconfigure}, @command{guix system init}, or @command{guix deploy}."
 msgstr "Dieser Dienst wird automatisch zu Ihrer Betriebssystemkonfiguration hinzugefügt, wenn Sie @command{guix system reconfigure}, @command{guix system init} oder @command{guix deploy} benutzen."
 
 #. type: cindex
-#: doc/guix.texi:27828
+#: doc/guix.texi:32012
 #, no-wrap
 msgid "shepherd services"
 msgstr "Shepherd-Dienste"
 
 #. type: cindex
-#: doc/guix.texi:27829
+#: doc/guix.texi:32013
 #, no-wrap
 msgid "PID 1"
 msgstr "PID 1"
 
 #. type: cindex
-#: doc/guix.texi:27830
+#: doc/guix.texi:32014
 #, no-wrap
 msgid "init system"
 msgstr "init-System"
 
 #. type: Plain text
-#: doc/guix.texi:27836
+#: doc/guix.texi:32020
 msgid "The @code{(gnu services shepherd)} module provides a way to define services managed by the GNU@tie{}Shepherd, which is the initialization system---the first process that is started when the system boots, also known as PID@tie{}1 (@pxref{Introduction,,, shepherd, The GNU Shepherd Manual})."
 msgstr "Das Modul @code{(gnu services shepherd)} gibt eine Methode an, mit der Dienste definiert werden können, die von GNU@tie{}Shepherd verwaltet werden, was das Initialisierungssystem (das „init“-System) ist — es ist der erste Prozess, der gestartet wird, wenn das System gebootet wird, auch bekannt als PID@tie{}1 (siehe @ref{Introduction,,, shepherd, The GNU Shepherd Manual})."
 
 #. type: Plain text
-#: doc/guix.texi:27842
+#: doc/guix.texi:32026
 msgid "Services in the Shepherd can depend on each other.  For instance, the SSH daemon may need to be started after the syslog daemon has been started, which in turn can only happen once all the file systems have been mounted.  The simple operating system defined earlier (@pxref{Using the Configuration System}) results in a service graph like this:"
 msgstr "Dienste unter dem Shepherd können voneinander abhängen. Zum Beispiel kann es sein, dass der SSH-Daemon erst gestartet werden darf, nachdem der Syslog-Daemon gestartet wurde, welcher wiederum erst gestartet werden kann, sobald alle Dateisysteme eingebunden wurden. Das einfache Betriebssystem, dessen Definition wir zuvor gesehen haben (siehe @ref{Using the Configuration System}), ergibt folgenden Dienstgraphen:"
 
 #. type: Plain text
-#: doc/guix.texi:27844
+#: doc/guix.texi:32028
 msgid "@image{images/shepherd-graph,,5in,Typical shepherd service graph.}"
 msgstr "@image{images/shepherd-graph,,5in,Typischer Shepherd-Dienstgraph}"
 
 #. type: Plain text
-#: doc/guix.texi:27848
+#: doc/guix.texi:32032
 msgid "You can actually generate such a graph for any operating system definition using the @command{guix system shepherd-graph} command (@pxref{system-shepherd-graph, @command{guix system shepherd-graph}})."
 msgstr "Sie können so einen Graphen tatsächlich für jedes Betriebssystem erzeugen lassen, indem Sie den Befehl @command{guix system shepherd-graph} benutzen (siehe @ref{system-shepherd-graph, @command{guix system shepherd-graph}})."
 
 #. type: Plain text
-#: doc/guix.texi:27852
+#: doc/guix.texi:32036
 msgid "The @code{%shepherd-root-service} is a service object representing PID@tie{}1, of type @code{shepherd-root-service-type}; it can be extended by passing it lists of @code{<shepherd-service>} objects."
-msgstr "Der @code{%shepherd-root-service} ist ein Dienstobjekt, das diesen Prozess mit PID@tie{}1 repräsentiert. Der Dienst hat den Typ @code{shepherd-root-service-type}. Man kann ihn erweitern, indem man eine Liste von @code{<shepherd-service>}-Objekten an ihn übergibt."
+msgstr "Der @code{%shepherd-root-service} ist ein Dienstobjekt, das diesen Prozess mit PID@tie{}1 repräsentiert. Der Dienst hat den Typ @code{shepherd-root-service-type}. Sie können ihn erweitern, indem Sie eine Liste von @code{<shepherd-service>}-Objekten an ihn übergeben."
 
 #. type: deftp
-#: doc/guix.texi:27853
+#: doc/guix.texi:32037
 #, no-wrap
 msgid "{Data Type} shepherd-service"
 msgstr "{Datentyp} shepherd-service"
 
 #. type: deftp
-#: doc/guix.texi:27855
+#: doc/guix.texi:32039
 msgid "The data type representing a service managed by the Shepherd."
 msgstr "Der Datentyp, der einen von Shepherd verwalteten Dienst repräsentiert."
 
 #. type: code{#1}
-#: doc/guix.texi:27857
+#: doc/guix.texi:32041
 #, no-wrap
 msgid "provision"
 msgstr "provision"
 
 #. type: table
-#: doc/guix.texi:27859
+#: doc/guix.texi:32043
 msgid "This is a list of symbols denoting what the service provides."
 msgstr "Diese Liste von Symbolen gibt an, was vom Dienst angeboten wird."
 
 #. type: table
-#: doc/guix.texi:27864
+#: doc/guix.texi:32048
 msgid "These are the names that may be passed to @command{herd start}, @command{herd status}, and similar commands (@pxref{Invoking herd,,, shepherd, The GNU Shepherd Manual}).  @xref{Slots of services, the @code{provides} slot,, shepherd, The GNU Shepherd Manual}, for details."
-msgstr "Das bedeutet, es sind die Namen, die an @command{herd start}, @command{herd status} und ähnliche Befehle übergeben werden können (siehe @ref{Invoking herd,,, shepherd, The GNU Shepherd Manual}). Siehe @ref{Slots of services, the @code{provides} slot,, shepherd, The GNU Shepherd Manual} für Details."
+msgstr "Das bedeutet, es sind die Namen, die an @command{herd start}, @command{herd status} und ähnliche Befehle übergeben werden können (siehe @ref{Invoking herd,,, shepherd, The GNU Shepherd Manual}). Siehe @ref{Slots of services, den @code{provides}-Slot,, shepherd, The GNU Shepherd Manual} für Details."
 
 #. type: item
-#: doc/guix.texi:27865
+#: doc/guix.texi:32049
 #, no-wrap
 msgid "@code{requirement} (default: @code{'()})"
 msgstr "@code{requirement} (Vorgabe: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:27867
+#: doc/guix.texi:32051
 msgid "List of symbols denoting the Shepherd services this one depends on."
 msgstr "Eine Liste von Symbolen, die angegeben, von welchen anderen Shepherd-Diensten dieser hier abhängt."
 
 #. type: cindex
-#: doc/guix.texi:27868
+#: doc/guix.texi:32052
 #, no-wrap
 msgid "one-shot services, for the Shepherd"
 msgstr "einmalig ausgeführte Dienste, für Shepherd"
 
 #. type: table
-#: doc/guix.texi:27873
+#: doc/guix.texi:32057
 msgid "Whether this service is @dfn{one-shot}.  One-shot services stop immediately after their @code{start} action has completed.  @xref{Slots of services,,, shepherd, The GNU Shepherd Manual}, for more info."
 msgstr "Gibt an, ob dieser Dienst nur einmal ausgeführt wird („one-shot“). Einmalig ausgeführte Dienste werden gestoppt, sobald ihre @code{start}-Aktion abgeschlossen wurde. Siehe @ref{Slots of services,,, shepherd, The GNU Shepherd Manual} für weitere Informationen."
 
 #. type: item
-#: doc/guix.texi:27874
+#: doc/guix.texi:32058
 #, no-wrap
 msgid "@code{respawn?} (default: @code{#t})"
 msgstr "@code{respawn?} (Vorgabe: @code{#t})"
 
 #. type: table
-#: doc/guix.texi:27877
+#: doc/guix.texi:32061
 msgid "Whether to restart the service when it stops, for instance when the underlying process dies."
 msgstr "Ob der Dienst neu gestartet werden soll, nachdem er gestoppt wurde, zum Beispiel wenn der ihm zu Grunde liegende Prozess terminiert wird."
 
 #. type: code{#1}
-#: doc/guix.texi:27878
+#: doc/guix.texi:32062
 #, no-wrap
 msgid "start"
 msgstr "start"
 
 #. type: itemx
-#: doc/guix.texi:27879
+#: doc/guix.texi:32063
 #, no-wrap
 msgid "@code{stop} (default: @code{#~(const #f)})"
 msgstr "@code{stop} (Vorgabe: @code{#~(const #f)})"
 
 #. type: table
-#: doc/guix.texi:27885
+#: doc/guix.texi:32069
 msgid "The @code{start} and @code{stop} fields refer to the Shepherd's facilities to start and stop processes (@pxref{Service De- and Constructors,,, shepherd, The GNU Shepherd Manual}).  They are given as G-expressions that get expanded in the Shepherd configuration file (@pxref{G-Expressions})."
 msgstr "Die Felder @code{start} und @code{stop} beziehen sich auf Shepherds Funktionen zum Starten und Stoppen von Prozessen (siehe @ref{Service De- and Constructors,,, shepherd, The GNU Shepherd Manual}). Sie enthalten G-Ausdrücke, die in eine Shepherd-Konfigurationdatei umgeschrieben werden (siehe @ref{G-Expressions})."
 
 #. type: item
-#: doc/guix.texi:27886
+#: doc/guix.texi:32070
 #, no-wrap
 msgid "@code{actions} (default: @code{'()})"
 msgstr "@code{actions} (Vorgabe: @code{'()})"
 
 #. type: cindex
-#: doc/guix.texi:27887
+#: doc/guix.texi:32071
 #, no-wrap
 msgid "actions, of Shepherd services"
 msgstr "Aktionen, bei Shepherd-Diensten"
 
 #. type: table
-#: doc/guix.texi:27892
+#: doc/guix.texi:32076
 msgid "This is a list of @code{shepherd-action} objects (see below) defining @dfn{actions} supported by the service, in addition to the standard @code{start} and @code{stop} actions.  Actions listed here become available as @command{herd} sub-commands:"
 msgstr "Dies ist eine Liste von @code{shepherd-action}-Objekten (siehe unten), die vom Dienst zusätzlich unterstützte @dfn{Aktionen} neben den Standardaktionen @code{start} und @code{stop} angeben. Hier aufgeführte Aktionen werden als @command{herd}-Unterbefehle verfügbar gemacht:"
 
 #. type: example
-#: doc/guix.texi:27895
+#: doc/guix.texi:32079
 #, no-wrap
 msgid "herd @var{action} @var{service} [@var{arguments}@dots{}]\n"
 msgstr "herd @var{Aktion} @var{Dienst} [@var{Argumente}…]\n"
 
 #. type: item
-#: doc/guix.texi:27897
+#: doc/guix.texi:32081
 #, no-wrap
 msgid "@code{auto-start?} (default: @code{#t})"
 msgstr "@code{auto-start?} (Vorgabe: @code{#t})"
 
 #. type: table
-#: doc/guix.texi:27900
+#: doc/guix.texi:32084
 msgid "Whether this service should be started automatically by the Shepherd.  If it is @code{#f} the service has to be started manually with @code{herd start}."
 msgstr "Ob dieser Dienst automatisch durch Shepherd gestartet werden soll. Wenn es auf @code{#f} steht, muss der Dienst manuell über @code{herd start} gestartet werden."
 
 #. type: table
-#: doc/guix.texi:27903
+#: doc/guix.texi:32087
 msgid "A documentation string, as shown when running:"
 msgstr "Eine Zeichenkette zur Dokumentation, die angezeigt wird, wenn man dies ausführt:"
 
 #. type: example
-#: doc/guix.texi:27906
+#: doc/guix.texi:32090
 #, no-wrap
 msgid "herd doc @var{service-name}\n"
 msgstr "herd doc @var{Dienstname}\n"
 
 #. type: table
-#: doc/guix.texi:27910
+#: doc/guix.texi:32094
 msgid "where @var{service-name} is one of the symbols in @code{provision} (@pxref{Invoking herd,,, shepherd, The GNU Shepherd Manual})."
 msgstr "wobei der @var{Dienstname} eines der Symbole aus der @code{provision}-Liste sein muss (siehe @ref{Invoking herd,,, shepherd, The GNU Shepherd Manual})."
 
 #. type: item
-#: doc/guix.texi:27911
+#: doc/guix.texi:32095
 #, no-wrap
 msgid "@code{modules} (default: @code{%default-modules})"
 msgstr "@code{modules} (Vorgabe: @code{%default-modules})"
 
 #. type: table
-#: doc/guix.texi:27914
+#: doc/guix.texi:32098
 msgid "This is the list of modules that must be in scope when @code{start} and @code{stop} are evaluated."
 msgstr "Dies ist die Liste der Module, die in den Sichtbarkeitsbereich geladen sein müssen, wenn @code{start} und @code{stop} ausgewertet werden."
 
 #. type: deftp
-#: doc/guix.texi:27918
+#: doc/guix.texi:32102
 #, no-wrap
 msgid "{Data Type} shepherd-action"
 msgstr "{Datentyp} shepherd-action"
 
 #. type: deftp
-#: doc/guix.texi:27921
+#: doc/guix.texi:32105
 msgid "This is the data type that defines additional actions implemented by a Shepherd service (see above)."
 msgstr "Dieser Datentyp definiert zusätzliche Aktionen, die ein Shepherd-Dienst implementiert (siehe oben)."
 
 #. type: table
-#: doc/guix.texi:27925
+#: doc/guix.texi:32109
 msgid "Symbol naming the action."
 msgstr "Die Aktion bezeichnendes Symbol."
 
 #. type: table
-#: doc/guix.texi:27928
+#: doc/guix.texi:32112
 msgid "This is a documentation string for the action.  It can be viewed by running:"
 msgstr "Diese Zeichenkette ist die Dokumentation für die Aktion. Sie können sie sehen, wenn Sie dies ausführen:"
 
 #. type: example
-#: doc/guix.texi:27931
+#: doc/guix.texi:32115
 #, no-wrap
 msgid "herd doc @var{service} action @var{action}\n"
 msgstr "herd doc @var{Dienst} action @var{Aktion}\n"
 
 #. type: item
-#: doc/guix.texi:27933
+#: doc/guix.texi:32117
 #, no-wrap
 msgid "procedure"
 msgstr "procedure"
 
 #. type: table
-#: doc/guix.texi:27937
+#: doc/guix.texi:32121
 msgid "This should be a gexp that evaluates to a procedure of at least one argument, which is the ``running value'' of the service (@pxref{Slots of services,,, shepherd, The GNU Shepherd Manual})."
 msgstr "Dies sollte ein G-Ausdruck sein, der zu einer mindestens ein Argument nehmenden Prozedur ausgewertet wird. Das Argument ist der „running“-Wert des Dienstes (siehe @ref{Slots of services,,, shepherd, The GNU Shepherd Manual})."
 
 #. type: deftp
-#: doc/guix.texi:27941
+#: doc/guix.texi:32125
 msgid "The following example defines an action called @code{say-hello} that kindly greets the user:"
 msgstr "Das folgende Beispiel definiert eine Aktion namens @code{sag-hallo}, die den Benutzer freundlich begrüßt:"
 
 #. type: lisp
-#: doc/guix.texi:27950
+#: doc/guix.texi:32134
 #, no-wrap
 msgid ""
 "(shepherd-action\n"
@@ -51788,12 +59220,12 @@ msgstr ""
 "                 #t)))\n"
 
 #. type: deftp
-#: doc/guix.texi:27953
+#: doc/guix.texi:32137
 msgid "Assuming this action is added to the @code{example} service, then you can do:"
 msgstr "Wenn wir annehmen, dass wir die Aktion zum Dienst @code{beispiel} hinzufügen, können Sie Folgendes ausführen:"
 
 #. type: example
-#: doc/guix.texi:27959
+#: doc/guix.texi:32143
 #, no-wrap
 msgid ""
 "# herd say-hello example\n"
@@ -51807,79 +59239,79 @@ msgstr ""
 "Hallo, Freund! Argumente: (\"a\" \"b\" \"c\")\n"
 
 #. type: deftp
-#: doc/guix.texi:27964
+#: doc/guix.texi:32148
 msgid "This, as you can see, is a fairly sophisticated way to say hello.  @xref{Service Convenience,,, shepherd, The GNU Shepherd Manual}, for more info on actions."
 msgstr "Wie Sie sehen können, ist das eine sehr ausgeklügelte Art, Hallo zu sagen. Siehe @ref{Service Convenience,,, shepherd, The GNU Shepherd Manual} für mehr Informationen zu Aktionen."
 
 #. type: defvr
-#: doc/guix.texi:27966
+#: doc/guix.texi:32150
 #, no-wrap
 msgid "{Scheme Variable} shepherd-root-service-type"
 msgstr "{Scheme-Variable} shepherd-root-service-type"
 
 #. type: defvr
-#: doc/guix.texi:27968
+#: doc/guix.texi:32152
 msgid "The service type for the Shepherd ``root service''---i.e., PID@tie{}1."
 msgstr "Der Diensttyp für den Shepherd-„Wurzeldienst“ — also für PID@tie{}1."
 
 #. type: defvr
-#: doc/guix.texi:27972
+#: doc/guix.texi:32156
 msgid "This is the service type that extensions target when they want to create shepherd services (@pxref{Service Types and Services}, for an example).  Each extension must pass a list of @code{<shepherd-service>}."
 msgstr "Dieser Diensttyp stellt das Ziel für Diensterweiterungen dar, die Shepherd-Dienste erzeugen sollen (siehe @ref{Service Types and Services} für ein Beispiel). Jede Erweiterung muss eine Liste von @code{<shepherd-service>}-Objekten übergeben."
 
 #. type: defvr
-#: doc/guix.texi:27974
+#: doc/guix.texi:32158
 #, no-wrap
 msgid "{Scheme Variable} %shepherd-root-service"
 msgstr "{Scheme-Variable} %shepherd-root-service"
 
 #. type: defvr
-#: doc/guix.texi:27976
+#: doc/guix.texi:32160
 msgid "This service represents PID@tie{}1."
 msgstr "Dieser Dienst repräsentiert PID@tie{}1."
 
 #. type: cindex
-#: doc/guix.texi:27982
+#: doc/guix.texi:32166
 #, no-wrap
 msgid "documentation, searching for"
 msgstr "Dokumentation, Suche danach"
 
 #. type: cindex
-#: doc/guix.texi:27983
+#: doc/guix.texi:32167
 #, no-wrap
 msgid "searching for documentation"
 msgstr "Suchen nach Dokumentation"
 
 #. type: cindex
-#: doc/guix.texi:27984
+#: doc/guix.texi:32168
 #, no-wrap
 msgid "Info, documentation format"
 msgstr "Info, Dokumentationsformat"
 
 #. type: cindex
-#: doc/guix.texi:27985
+#: doc/guix.texi:32169
 #, no-wrap
 msgid "man pages"
 msgstr "man-Pages (Handbuchseiten)"
 
 #. type: cindex
-#: doc/guix.texi:27986
+#: doc/guix.texi:32170
 #, no-wrap
 msgid "manual pages"
 msgstr "Handbuchseiten („Man-Pages“)"
 
 #. type: Plain text
-#: doc/guix.texi:27993
+#: doc/guix.texi:32177
 msgid "In most cases packages installed with Guix come with documentation.  There are two main documentation formats: ``Info'', a browseable hypertext format used for GNU software, and ``manual pages'' (or ``man pages''), the linear documentation format traditionally found on Unix.  Info manuals are accessed with the @command{info} command or with Emacs, and man pages are accessed using @command{man}."
 msgstr "In den meisten Fällen liegt den mit Guix installierten Paketen auch Dokumentation bei, die diese beschreibt. Die zwei üblichsten Formate für Dokumentation sind „Info“, ein durchsuchbares Hypertextformat, das für GNU-Software benutzt wird, und sogenannte „Handbuchseiten“ (englisch „Manual Pages“, kurz Man-Pages), das linear aufgebaute Dokumentationsformat, das auf Unix traditionell mitgeliefert wird. Info-Handbücher können mit dem Befehl @command{info} oder mit Emacs abgerufen werden, auf Handbuchseiten kann mit dem Befehl @command{man} zugegriffen werden."
 
 #. type: Plain text
-#: doc/guix.texi:27997
+#: doc/guix.texi:32181
 msgid "You can look for documentation of software installed on your system by keyword.  For example, the following command searches for information about ``TLS'' in Info manuals:"
 msgstr "Sie können die Dokumentation von auf Ihrem System installierter Software nach einem Schlüsselwort durchsuchen. Zum Beispiel suchen Sie mit folgendem Befehl in den Info-Handbüchern nach „TLS“."
 
 #. type: example
-#: doc/guix.texi:28005
+#: doc/guix.texi:32189
 #, no-wrap
 msgid ""
 "$ info -k TLS\n"
@@ -51897,12 +59329,12 @@ msgstr ""
 "…\n"
 
 #. type: Plain text
-#: doc/guix.texi:28009
+#: doc/guix.texi:32193
 msgid "The command below searches for the same keyword in man pages:"
 msgstr "Mit folgendem Befehl suchen Sie dasselbe Schlüsselwort in Handbuchseiten:"
 
 #. type: example
-#: doc/guix.texi:28015
+#: doc/guix.texi:32199
 #, no-wrap
 msgid ""
 "$ man -k TLS\n"
@@ -51913,111 +59345,213 @@ msgstr ""
 "$ man -k TLS\n"
 "SSL (7)              - OpenSSL SSL/TLS library\n"
 "certtool (1)         - GnuTLS certificate tool\n"
-"@dots {}\n"
+"…\n"
 
 #. type: Plain text
-#: doc/guix.texi:28021
+#: doc/guix.texi:32205
 msgid "These searches are purely local to your computer so you have the guarantee that documentation you find corresponds to what you have actually installed, you can access it off-line, and your privacy is respected."
 msgstr "Diese Suchvorgänge finden ausschließlich lokal auf Ihrem Rechner statt, wodurch gewährleistet ist, dass die Fundstellen zur von Ihnen auch tatsächlich installierten Software passen, Sie für den Zugriff keine Internetverbindung brauchen und Datenschutz gewährleistet bleibt."
 
 #. type: Plain text
-#: doc/guix.texi:28024
+#: doc/guix.texi:32208
 msgid "Once you have these results, you can view the relevant documentation by running, say:"
 msgstr "Sobald Sie die Fundstellen kennen, können Sie zum Beispiel so die entsprechende Dokumentation anzeigen lassen:"
 
 #. type: example
-#: doc/guix.texi:28027
+#: doc/guix.texi:32211
 #, no-wrap
 msgid "$ info \"(gnutls)Core TLS API\"\n"
 msgstr "$ info \"(gnutls)Core TLS API\"\n"
 
 #. type: Plain text
-#: doc/guix.texi:28031
+#: doc/guix.texi:32215
 msgid "or:"
 msgstr "oder"
 
 #. type: example
-#: doc/guix.texi:28034
+#: doc/guix.texi:32218
 #, no-wrap
 msgid "$ man certtool\n"
 msgstr "$ man certtool\n"
 
 #. type: Plain text
-#: doc/guix.texi:28042
+#: doc/guix.texi:32226
 msgid "Info manuals contain sections and indices as well as hyperlinks like those found in Web pages.  The @command{info} reader (@pxref{Top, Info reader,, info-stnd, Stand-alone GNU Info}) and its Emacs counterpart (@pxref{Misc Help,,, emacs, The GNU Emacs Manual}) provide intuitive key bindings to navigate manuals.  @xref{Getting Started,,, info, Info: An Introduction}, for an introduction to Info navigation."
-msgstr "Info-Handbücher sind in Abschnitte unterteilt und verfügen über Register sowie Hyperlinks, wie jene, die Sie auch von Webseiten kennen. Der @command{info}-Betrachter (siehe @ref{Top, Info reader,, info-stnd, Stand-alone GNU Info}) und sein Gegenstück für Emacs (siehe @ref{Misc Help,,, emacs, The GNU Emacs Manual}) verfügen über leicht erlernbare Tastenkürzel, mit denen Sie in Handbüchern navigieren können. Siehe @ref{Getting Started,,, info, Info: An Introduction} für eine Einführung in die Info-Navigation."
+msgstr "Info-Handbücher sind in Abschnitte unterteilt und verfügen über Register sowie Hyperlinks, wie jene, die Sie auch von Webseiten kennen. Der @command{info}-Betrachter (siehe @ref{Top, Info-Betrachter,, info-stnd, Stand-alone GNU Info}) und sein Gegenstück für Emacs (siehe @ref{Misc Help,,, emacs, The GNU Emacs Manual}) verfügen über leicht erlernbare Tastenkürzel, mit denen Sie in Handbüchern navigieren können. Siehe @ref{Getting Started,,, info, Info: An Introduction} für eine Einführung in die Info-Navigation."
 
 #. type: cindex
-#: doc/guix.texi:28046
+#: doc/guix.texi:32230
 #, no-wrap
 msgid "debugging files"
 msgstr "Dateien zur Fehlersuche"
 
 #. type: Plain text
-#: doc/guix.texi:28052
+#: doc/guix.texi:32236
 msgid "Program binaries, as produced by the GCC compilers for instance, are typically written in the ELF format, with a section containing @dfn{debugging information}.  Debugging information is what allows the debugger, GDB, to map binary code to source code; it is required to debug a compiled program in good conditions."
 msgstr "Die Binärdateien von Programmen, wie sie zum Beispiel von den GCC-Compilern erzeugt werden, sind in der Regel im ELF-Format gespeichert und enthalten eine Sektion mit @dfn{Informationen zur Fehlersuche} (englisch „Debugging Information“). Informationen zur Fehlersuche machen es möglich, dass der Debugger, GDB, Binärcode dem Quellcode zuordnen kann. Das ist nötig, damit es mit etwas Glück leicht ist, Fehler in einem kompilierten Programm zu suchen."
 
 #. type: Plain text
-#: doc/guix.texi:28060
+#: doc/guix.texi:32240
+msgid "This chapter explains how to use separate debug info when packages provide it, and how to rebuild packages with debug info when it's missing."
+msgstr "Dieses Kapitel erklärt, wie abgetrennte Informationen zur Fehlersuche („Debug“-Informationen) verwendet werden können, wenn Pakete solche anbieten, und wie Pakete mit Informationen zur Fehlersuche neu erstellt werden können, wenn die Pakete keine anbieten."
+
+#. type: Plain text
+#: doc/guix.texi:32256
 msgid "The problem with debugging information is that is takes up a fair amount of disk space.  For example, debugging information for the GNU C Library weighs in at more than 60 MiB.  Thus, as a user, keeping all the debugging info of all the installed programs is usually not an option.  Yet, space savings should not come at the cost of an impediment to debugging---especially in the GNU system, which should make it easier for users to exert their computing freedom (@pxref{GNU Distribution})."
 msgstr "Das Problem bei Informationen zur Fehlersuche ist, dass dadurch einiges an Plattenplatz verbraucht wird. Zum Beispiel steuern die Informationen zur Fehlersuche in der GNU-C-Bibliothek mehr als 60 MiB bei. Als ein Nutzer ist es deswegen in der Regel nicht möglich, sämtliche Fehlersuchinformationen für alle installierten Programme zu speichern. Andererseits sollten Platzeinsparnisse nicht auf Kosten der Fehlersuche gehen — besonders im GNU-System, wo es Nutzern leicht fallen sollte, ihre Freiheit, wie sie ihre Rechner benutzen, auszuüben (siehe @ref{GNU Distribution})."
 
 #. type: Plain text
-#: doc/guix.texi:28067
+#: doc/guix.texi:32263
 msgid "Thankfully, the GNU Binary Utilities (Binutils) and GDB provide a mechanism that allows users to get the best of both worlds: debugging information can be stripped from the binaries and stored in separate files.  GDB is then able to load debugging information from those files, when they are available (@pxref{Separate Debug Files,,, gdb, Debugging with GDB})."
 msgstr "Glücklicherweise gibt es in den GNU Binary Utilities (Binutils) und GDB einen Mechanismus, mit dem Nutzer das Beste aus beiden Welten bekommen: Informationen zur Fehlersuche können von den davon beschriebenen Binärdateien losgelöst und in separaten Dateien gespeichert werden. GDB kann dann Fehlersuchinformationen laden, wenn diese Dateien verfügbar sind (siehe @ref{Separate Debug Files,,, gdb, Debugging with GDB})."
 
 #. type: Plain text
-#: doc/guix.texi:28075
+#: doc/guix.texi:32271
 msgid "The GNU distribution takes advantage of this by storing debugging information in the @code{lib/debug} sub-directory of a separate package output unimaginatively called @code{debug} (@pxref{Packages with Multiple Outputs}).  Users can choose to install the @code{debug} output of a package when they need it.  For instance, the following command installs the debugging information for the GNU C Library and for GNU Guile:"
 msgstr "Die GNU-Distribution nutzt diesen Mechanismus aus, indem sie Informationen zur Fehlersuche im Unterverzeichnis @code{lib/debug} einer separaten Paketausgabe speichert, die den fantasielosen Namen @code{debug} trägt. Mit dem folgenden Befehl können Sie zum Beispiel Informationen zur Fehlersuche für die GNU-C-Bibliothek und für GNU Guile installieren:"
 
 #. type: example
-#: doc/guix.texi:28078
+#: doc/guix.texi:32274
 #, no-wrap
 msgid "guix install glibc:debug guile:debug\n"
 msgstr "guix install glibc:debug guile:debug\n"
 
 #. type: Plain text
-#: doc/guix.texi:28084
+#: doc/guix.texi:32280
 msgid "GDB must then be told to look for debug files in the user's profile, by setting the @code{debug-file-directory} variable (consider setting it from the @file{~/.gdbinit} file, @pxref{Startup,,, gdb, Debugging with GDB}):"
 msgstr "GDB muss dann angewiesen werden, im Profil des Nutzers nach Informationen zur Fehlersuche zu schauen, indem Sie die Variable @code{debug-file-directory} entsprechend setzen (vielleicht möchsten Sie die Variable in der Datei @file{~/.gdbinit} festlegen, siehe @ref{Startup,,, gdb, Debugging with GDB}):"
 
 #. type: example
-#: doc/guix.texi:28087
+#: doc/guix.texi:32283
 #, no-wrap
 msgid "(gdb) set debug-file-directory ~/.guix-profile/lib/debug\n"
 msgstr "(gdb) set debug-file-directory ~/.guix-profile/lib/debug\n"
 
 #. type: Plain text
-#: doc/guix.texi:28091
-msgid "From there on, GDB will pick up debugging information from the @code{.debug} files under @file{~/.guix-profile/lib/debug}."
-msgstr "Von da an wird GDB auch aus den @code{.debug}-Dateien unter @file{~/.guix-profile/lib/debug} auslesbare Informationen zur Fehlersuche verwenden."
+#: doc/guix.texi:32287
+msgid "From there on, GDB will pick up debugging information from the @file{.debug} files under @file{~/.guix-profile/lib/debug}."
+msgstr "Von da an wird GDB auch aus den @file{.debug}-Dateien unter @file{~/.guix-profile/lib/debug} auslesbare Informationen zur Fehlersuche verwenden."
 
 #. type: Plain text
-#: doc/guix.texi:28098
+#: doc/guix.texi:32294
 msgid "In addition, you will most likely want GDB to be able to show the source code being debugged.  To do that, you will have to unpack the source code of the package of interest (obtained with @code{guix build --source}, @pxref{Invoking guix build}), and to point GDB to that source directory using the @code{directory} command (@pxref{Source Path, @code{directory},, gdb, Debugging with GDB})."
 msgstr "Des Weiteren werden Sie höchstwahrscheinlich wollen, dass GDB den Quellcode, der auf Fehler untersucht wird, anzeigen kann. Dazu müssen sie den Quellcodes des Pakets, für das Sie sich interessieren (laden Sie ihn mit @code{guix build --source} herunter; siehe @ref{Invoking guix build}), und dann weisen Sie GDB an, in dem Verzeichnis zu suchen, indem Sie den @code{directory}-Befehl benutzen (siehe @ref{Source Path, @code{directory},, gdb, Debugging with GDB})."
 
 #. type: Plain text
-#: doc/guix.texi:28107
-msgid "The @code{debug} output mechanism in Guix is implemented by the @code{gnu-build-system} (@pxref{Build Systems}).  Currently, it is opt-in---debugging information is available only for the packages with definitions explicitly declaring a @code{debug} output.  This may be changed to opt-out in the future if our build farm servers can handle the load.  To check whether a package has a @code{debug} output, use @command{guix package --list-available} (@pxref{Invoking guix package})."
-msgstr "Der Mechanismus mit der @code{debug}-Ausgabe wird in Guix als Teil des @code{gnu-build-system} implementiert (siehe @ref{Build Systems}). Zur Zeit ist sie optional — nur für Pakete, für die ausdrücklich eine @code{debug}-Ausgabe deklariert wurde, sind Informationen zur Fehlersuche verfügbar. Um zu überprüfen, ob Pakete eine @code{debug}-Ausgabe mit Informationen zur Fehlersuche haben, benutzen Sie @command{guix package --list-available} (siehe @ref{Invoking guix package})."
+#: doc/guix.texi:32302
+msgid "The @code{debug} output mechanism in Guix is implemented by the @code{gnu-build-system} (@pxref{Build Systems}).  Currently, it is opt-in---debugging information is available only for the packages with definitions explicitly declaring a @code{debug} output.  To check whether a package has a @code{debug} output, use @command{guix package --list-available} (@pxref{Invoking guix package})."
+msgstr "Der Mechanismus mit der @code{debug}-Ausgabe wird in Guix als Teil des @code{gnu-build-system} implementiert (siehe @ref{Build Systems}). Zurzeit ist sie optional — nur für Pakete, in deren Definition ausdrücklich eine @code{debug}-Ausgabe deklariert wurde, sind Informationen zur Fehlersuche verfügbar. Um zu überprüfen, ob Pakete eine @code{debug}-Ausgabe mit Informationen zur Fehlersuche haben, benutzen Sie @command{guix package --list-available} (siehe @ref{Invoking guix package})."
+
+#. type: Plain text
+#: doc/guix.texi:32304
+msgid "Read on for how to deal with packages lacking a @code{debug} output."
+msgstr "Lesen Sie weiter, um zu erfahren, wie Sie mit Paketen ohne eine @code{debug}-Ausgabe umgehen können."
+
+#. type: Plain text
+#: doc/guix.texi:32316
+msgid "As we saw above, some packages, but not all, provide debugging info in a @code{debug} output.  What can you do when debugging info is missing? The @option{--with-debug-info} option provides a solution to that: it allows you to rebuild the package(s) for which debugging info is missing---and only those---and to graft those onto the application you're debugging.  Thus, while it's not as fast as installing a @code{debug} output, it is relatively inexpensive."
+msgstr "Wie wir oben gesehen haben, bieten manche Pakete, aber nicht alle, Informationen zur Fehlersuche in einer @code{debug}-Ausgabe an. Doch was tut man mit denen ohne Fehlersuchinformationen? Die Befehlszeilenoption @option{--with-debug-info} stellt eine Lösung dafür da: Mit ihr kann jedes Paket, für das solche Debug-Informationen fehlen, — und nur solche — neu erstellt werden und die Anwendung, in der Sie Fehler suchen, wird damit veredelt. Obwohl es also nicht so schnell geht wie eine @code{debug}-Ausgabe zu installieren, ist es doch ein verhältnismäßig kleiner Aufwand."
+
+#. type: Plain text
+#: doc/guix.texi:32321
+msgid "Let's illustrate that.  Suppose you're experiencing a bug in Inkscape and would like to see what's going on in GLib, a library that's deep down in its dependency graph.  As it turns out, GLib does not have a @code{debug} output and the backtrace GDB shows is all sadness:"
+msgstr "Schauen wir uns das näher an. Angenommen, Sie erleben einen Fehler in Inkscape und würden gerne wissen, was dabei in GLib passiert. GLib ist eine Bibliothek, die tief im Abhängigkeitsgraphen von GLib liegt. Wie sich herausstellt, verfügt GLib über keine @code{debug}-Ausgabe. Die Rückverfolgung („Backtrace“), die GDB anzeigt, ist zu nichts nütze:"
+
+#. type: example
+#: doc/guix.texi:32332
+#, no-wrap
+msgid ""
+"(gdb) bt\n"
+"#0  0x00007ffff5f92190 in g_getenv ()\n"
+"   from /gnu/store/@dots{}-glib-2.62.6/lib/libglib-2.0.so.0\n"
+"#1  0x00007ffff608a7d6 in gobject_init_ctor ()\n"
+"   from /gnu/store/@dots{}-glib-2.62.6/lib/libgobject-2.0.so.0\n"
+"#2  0x00007ffff7fe275a in call_init (l=<optimized out>, argc=argc@@entry=1, argv=argv@@entry=0x7fffffffcfd8, \n"
+"    env=env@@entry=0x7fffffffcfe8) at dl-init.c:72\n"
+"#3  0x00007ffff7fe2866 in call_init (env=0x7fffffffcfe8, argv=0x7fffffffcfd8, argc=1, l=<optimized out>)\n"
+"    at dl-init.c:118\n"
+msgstr ""
+"(gdb) bt\n"
+"#0  0x00007ffff5f92190 in g_getenv ()\n"
+"   from /gnu/store/…-glib-2.62.6/lib/libglib-2.0.so.0\n"
+"#1  0x00007ffff608a7d6 in gobject_init_ctor ()\n"
+"   from /gnu/store/…-glib-2.62.6/lib/libgobject-2.0.so.0\n"
+"#2  0x00007ffff7fe275a in call_init (l=<optimized out>, argc=argc@@entry=1, argv=argv@@entry=0x7fffffffcfd8, \n"
+"    env=env@@entry=0x7fffffffcfe8) at dl-init.c:72\n"
+"#3  0x00007ffff7fe2866 in call_init (env=0x7fffffffcfe8, argv=0x7fffffffcfd8, argc=1, l=<optimized out>)\n"
+"    at dl-init.c:118\n"
+
+#. type: Plain text
+#: doc/guix.texi:32336
+msgid "To address that, you install Inkscape linked against a variant GLib that contains debug info:"
+msgstr "Dagegen hilft, wenn Sie Inkscape so installieren, dass es an eine Variante von GLib gebunden ist, die Informationen zur Fehlersuche enthält."
+
+#. type: Plain text
+#: doc/guix.texi:32342
+msgid "This time, debugging will be a whole lot nicer:"
+msgstr "Und schon sieht die Fehlersuche wesentlich besser aus:"
+
+#. type: example
+#: doc/guix.texi:32360
+#, no-wrap
+msgid ""
+"$ gdb --args sh -c 'exec inkscape'\n"
+"@dots{}\n"
+"(gdb) b g_getenv\n"
+"Function \"g_getenv\" not defined.\n"
+"Make breakpoint pending on future shared library load? (y or [n]) y\n"
+"Breakpoint 1 (g_getenv) pending.\n"
+"(gdb) r\n"
+"Starting program: /gnu/store/@dots{}-profile/bin/sh -c exec\\ inkscape\n"
+"@dots{}\n"
+"(gdb) bt\n"
+"#0  g_getenv (variable=variable@@entry=0x7ffff60c7a2e \"GOBJECT_DEBUG\") at ../glib-2.62.6/glib/genviron.c:252\n"
+"#1  0x00007ffff608a7d6 in gobject_init () at ../glib-2.62.6/gobject/gtype.c:4380\n"
+"#2  gobject_init_ctor () at ../glib-2.62.6/gobject/gtype.c:4493\n"
+"#3  0x00007ffff7fe275a in call_init (l=<optimized out>, argc=argc@@entry=3, argv=argv@@entry=0x7fffffffd088, \n"
+"    env=env@@entry=0x7fffffffd0a8) at dl-init.c:72\n"
+"@dots{}\n"
+msgstr ""
+"$ gdb --args sh -c 'exec inkscape'\n"
+"…\n"
+"(gdb) b g_getenv\n"
+"Function \"g_getenv\" not defined.\n"
+"Make breakpoint pending on future shared library load? (y or [n]) y\n"
+"Breakpoint 1 (g_getenv) pending.\n"
+"(gdb) r\n"
+"Starting program: /gnu/store/…-profile/bin/sh -c exec\\ inkscape\n"
+"…\n"
+"(gdb) bt\n"
+"#0  g_getenv (variable=variable@@entry=0x7ffff60c7a2e \"GOBJECT_DEBUG\") at ../glib-2.62.6/glib/genviron.c:252\n"
+"#1  0x00007ffff608a7d6 in gobject_init () at ../glib-2.62.6/gobject/gtype.c:4380\n"
+"#2  gobject_init_ctor () at ../glib-2.62.6/gobject/gtype.c:4493\n"
+"#3  0x00007ffff7fe275a in call_init (l=<optimized out>, argc=argc@@entry=3, argv=argv@@entry=0x7fffffffd088, \n"
+"    env=env@@entry=0x7fffffffd0a8) at dl-init.c:72\n"
+"…\n"
+
+#. type: Plain text
+#: doc/guix.texi:32363
+msgid "Much better!"
+msgstr "Viel besser!"
+
+#. type: Plain text
+#: doc/guix.texi:32367
+msgid "Note that there can be packages for which @option{--with-debug-info} will not have the desired effect.  @xref{Package Transformation Options, @option{--with-debug-info}}, for more information."
+msgstr "Beachten Sie, dass es Pakete geben kann, für die sich @option{--with-debug-info} nicht wie gewünscht auswirkt. Siehe @ref{Package Transformation Options, @option{--with-debug-info}} für mehr Informationen."
 
 #. type: cindex
-#: doc/guix.texi:28112
+#: doc/guix.texi:32371
 #, no-wrap
 msgid "security updates"
 msgstr "Sicherheitsaktualisierungen"
 
 #. type: Plain text
-#: doc/guix.texi:28121
-msgid "Occasionally, important security vulnerabilities are discovered in software packages and must be patched.  Guix developers try hard to keep track of known vulnerabilities and to apply fixes as soon as possible in the @code{master} branch of Guix (we do not yet provide a ``stable'' branch containing only security updates.)  The @command{guix lint} tool helps developers find out about vulnerable versions of software packages in the distribution:"
+#: doc/guix.texi:32380
+msgid "Occasionally, important security vulnerabilities are discovered in software packages and must be patched.  Guix developers try hard to keep track of known vulnerabilities and to apply fixes as soon as possible in the @code{master} branch of Guix (we do not yet provide a ``stable'' branch containing only security updates).  The @command{guix lint} tool helps developers find out about vulnerable versions of software packages in the distribution:"
 msgstr "Ab und zu werden wichtige Sicherheitsschwachstellen in Software-Paketen entdeckt, die mit Patches behoben werden müssen. Guix-Entwickler geben ihr Bestes, bezüglich bekannter Schwachstellen auf dem Laufenden zu bleiben und so bald wie möglich Patches dafür auf den @code{master}-Branch von Guix aufzuspielen (einen stabilen „stable“-Branch ohne riskante Änderungen haben wir noch nicht). Das Werkzeug @command{guix lint} hilft Entwicklern dabei, verwundbare Versionen von Softwarepaketen in der Distribution zu finden:"
 
 #. type: smallexample
-#: doc/guix.texi:28128
+#: doc/guix.texi:32387
 #, no-wrap
 msgid ""
 "$ guix lint -c cve\n"
@@ -52033,39 +59567,39 @@ msgstr ""
 "…\n"
 
 #. type: Plain text
-#: doc/guix.texi:28131
+#: doc/guix.texi:32390
 msgid "@xref{Invoking guix lint}, for more information."
 msgstr "Siehe @ref{Invoking guix lint} für weitere Informationen."
 
 #. type: Plain text
-#: doc/guix.texi:28140
+#: doc/guix.texi:32399
 msgid "Guix follows a functional package management discipline (@pxref{Introduction}), which implies that, when a package is changed, @emph{every package that depends on it} must be rebuilt.  This can significantly slow down the deployment of fixes in core packages such as libc or Bash, since basically the whole distribution would need to be rebuilt.  Using pre-built binaries helps (@pxref{Substitutes}), but deployment may still take more time than desired."
 msgstr "Guix verfolgt eine funktionale Disziplin bei der Paketverwaltung (siehe @ref{Introduction}), was impliziert, dass bei jeder Änderung an einem Paket @emph{jedes davon abhängige Paket} neu erstellt werden muss. Ohne einen Mechanismus würde das Ausliefern von Sicherheitsaktualisierungen in Kernpaketen wie libc oder Bash dadurch deutlich verlangsamt — schließlich müsste quasi die gesamte Distribution neu erstellt werden. Vorerstellte Binärdateien zu benutzen, wäre schon einmal eine Hilfe (siehe @ref{Substitutes}), aber die Auslieferung wäre immer noch laangsamer, als wir es uns wünschen."
 
 #. type: cindex
-#: doc/guix.texi:28141
+#: doc/guix.texi:32400
 #, no-wrap
 msgid "grafts"
 msgstr "Veredelungen"
 
 #. type: Plain text
-#: doc/guix.texi:28149
+#: doc/guix.texi:32408
 msgid "To address this, Guix implements @dfn{grafts}, a mechanism that allows for fast deployment of critical updates without the costs associated with a whole-distribution rebuild.  The idea is to rebuild only the package that needs to be patched, and then to ``graft'' it onto packages explicitly installed by the user and that were previously referring to the original package.  The cost of grafting is typically very low, and order of magnitudes lower than a full rebuild of the dependency chain."
 msgstr "Als Gegenmittel sind in Guix @dfn{Veredelungen} implementiert. Diese stellen einen Mechanismus dar, mit dem kritische Aktualisierungen schnell an Guix’ Benutzer ausgeliefert werden können, ohne die Nachteile, zu denen es käme, wenn wir die gesamte Distribution neu erstellen müssten. Die Idee dahinter ist, nur das Paket, das einen Patch braucht, neu zu erstellen, und damit dann Pakete, die der Nutzer ausdrücklich installiert hat und die vorher Referenzen auf das alte Paket enthielten, zu „veredeln“. So eine Veredelung kostet typischerweise nur sehr wenig, d.h.@: um Größenordnungen weniger, als die ganze Abhängigkeitskette neu zu erstellen."
 
 #. type: cindex
-#: doc/guix.texi:28150
+#: doc/guix.texi:32409
 #, no-wrap
 msgid "replacements of packages, for grafts"
 msgstr "Ersetzungen von Paketen, bei Veredelungen"
 
 #. type: Plain text
-#: doc/guix.texi:28156
+#: doc/guix.texi:32415
 msgid "For instance, suppose a security update needs to be applied to Bash.  Guix developers will provide a package definition for the ``fixed'' Bash, say @code{bash-fixed}, in the usual way (@pxref{Defining Packages}).  Then, the original package definition is augmented with a @code{replacement} field pointing to the package containing the bug fix:"
 msgstr "Nehmen wir also an, eine Sicherheitsaktualisierung müsste auf Bash angewandt werden. Guix-Entwickler schreiben dann eine Paketdefinition für die „reparierte“ Bash, sagen wir @code{bash-fixed}, auf die gleiche Art wie immer (siehe @ref{Defining Packages}). Dann wird die ursprüngliche Paketdefinition um ein @code{replacement}-Feld (zu Deutsch „Ersetzung“) erweitert, das auf das Paket verweist, in dem der Fehler behoben wurde:"
 
 #. type: lisp
-#: doc/guix.texi:28163
+#: doc/guix.texi:32422
 #, no-wrap
 msgid ""
 "(define bash\n"
@@ -52081,178 +59615,185 @@ msgstr ""
 "    (replacement bash-fixed)))\n"
 
 #. type: Plain text
-#: doc/guix.texi:28173
+#: doc/guix.texi:32432
 msgid "From there on, any package depending directly or indirectly on Bash---as reported by @command{guix gc --requisites} (@pxref{Invoking guix gc})---that is installed is automatically ``rewritten'' to refer to @code{bash-fixed} instead of @code{bash}.  This grafting process takes time proportional to the size of the package, usually less than a minute for an ``average'' package on a recent machine.  Grafting is recursive: when an indirect dependency requires grafting, then grafting ``propagates'' up to the package that the user is installing."
 msgstr "Ab diesem Zeitpunkt wird jedes Paket, das Sie installieren und das direkt oder indirekt von Bash abhängt — also die von @command{guix gc --requisites} ausgegebenen Pakete (siehe @ref{Invoking guix gc}) —, automatisch „umgeschrieben“, so dass es @code{bash-fixed} referenziert, wo es vorher @code{bash} referenziert hatte. Die Dauer dieses Veredelungsprozesses ist proportional zur Größe des Pakets und liegt auf einer neuen Maschine für ein „durchschnittliches“ Paket bei unter einer Minute. Veredeln ist rekursiv: Wenn eine indirekte Abhängigkeit veredelt werden muss, „propagiert“ der Veredelungsprozess durch die abhängigen Pakete und endet mit dem Paket, das der Nutzer installiert."
 
 #. type: Plain text
-#: doc/guix.texi:28181
+#: doc/guix.texi:32440
 msgid "Currently, the length of the name and version of the graft and that of the package it replaces (@code{bash-fixed} and @code{bash} in the example above) must be equal.  This restriction mostly comes from the fact that grafting works by patching files, including binary files, directly.  Other restrictions may apply: for instance, when adding a graft to a package providing a shared library, the original shared library and its replacement must have the same @code{SONAME} and be binary-compatible."
-msgstr "Zur Zeit muss der Name und die Version einer Veredelung gleichlang wie die beim ersetzten Paket sein (also bei @code{bash-fixed} und @code{bash} im Beispiel oben). Diese Einschränkung kommt daher, dass beim Veredeln der Inhalt von Dateien, einschließlich Binärdateien, durch einfache Ersetzungen „geflickt“ wird. Es gibt noch mehr Einschränkungen: Wenn zum Beispiel ein Paket veredelt wird, das eine gemeinsame Bibliothek („Shared Library“) verwendet, muss der @code{SONAME} von Original und Ersatz derselbe sein und die beiden müssen binär kompatibel sein."
+msgstr "Zurzeit muss der Name und die Version einer Veredelung gleichlang wie die beim ersetzten Paket sein (also bei @code{bash-fixed} und @code{bash} im Beispiel oben). Diese Einschränkung kommt daher, dass beim Veredeln der Inhalt von Dateien, einschließlich Binärdateien, durch einfache Ersetzungen „geflickt“ wird. Es gibt noch mehr Einschränkungen: Wenn zum Beispiel ein Paket veredelt wird, das eine gemeinsame Bibliothek („Shared Library“) verwendet, muss der @code{SONAME} von Original und Ersatz derselbe sein und die beiden müssen binär kompatibel sein."
 
 #. type: Plain text
-#: doc/guix.texi:28185
+#: doc/guix.texi:32444
 msgid "The @option{--no-grafts} command-line option allows you to forcefully avoid grafting (@pxref{Common Build Options, @option{--no-grafts}}).  Thus, the command:"
 msgstr "Mit der Befehlszeilenoption @option{--no-grafts} können Sie den Veredelungsmechanismus zwingend abschalten (siehe @ref{Common Build Options, @option{--no-grafts}}). Der Befehl"
 
 #. type: example
-#: doc/guix.texi:28188
+#: doc/guix.texi:32447
 #, no-wrap
 msgid "guix build bash --no-grafts\n"
 msgstr "guix build bash --no-grafts\n"
 
 #. type: Plain text
-#: doc/guix.texi:28192
+#: doc/guix.texi:32451
 msgid "returns the store file name of the original Bash, whereas:"
 msgstr "liefert also den Namen der Store-Datei mit der ursprünglichen Bash, während"
 
 #. type: example
-#: doc/guix.texi:28195
+#: doc/guix.texi:32454
 #, no-wrap
 msgid "guix build bash\n"
 msgstr "guix build bash\n"
 
 #. type: Plain text
-#: doc/guix.texi:28200
+#: doc/guix.texi:32459
 msgid "returns the store file name of the ``fixed'', replacement Bash.  This allows you to distinguish between the two variants of Bash."
 msgstr "den Namen der Store-Datei für die „reparierte“ Ersatz-Bash liefert. Dadurch können Sie zwischen den beiden Varianten von Bash unterscheiden."
 
 #. type: Plain text
-#: doc/guix.texi:28203
+#: doc/guix.texi:32462
 msgid "To verify which Bash your whole profile refers to, you can run (@pxref{Invoking guix gc}):"
 msgstr "Um zu prüfen, welche Bash Ihr gesamtes Profil referenziert, können Sie diesen Befehl hier laufen lassen (siehe @ref{Invoking guix gc}):"
 
 #. type: example
-#: doc/guix.texi:28206
+#: doc/guix.texi:32465
 #, no-wrap
 msgid "guix gc -R `readlink -f ~/.guix-profile` | grep bash\n"
 msgstr "guix gc -R `readlink -f ~/.guix-profile` | grep bash\n"
 
 #. type: Plain text
-#: doc/guix.texi:28211
+#: doc/guix.texi:32470
 msgid "@dots{} and compare the store file names that you get with those above.  Likewise for a complete Guix system generation:"
 msgstr "Dann vergleichen Sie die Namen der Store-Objekte, die Sie ausgegeben bekommen, mit den beiden Bash-Paketnamen oben. Ebenso können Sie eine ganze Guix-Systemgeneration überprüfen:"
 
 #. type: example
-#: doc/guix.texi:28214
+#: doc/guix.texi:32473
 #, no-wrap
 msgid "guix gc -R `guix system build my-config.scm` | grep bash\n"
 msgstr "guix gc -R `guix system build my-config.scm` | grep bash\n"
 
 #. type: Plain text
-#: doc/guix.texi:28218
+#: doc/guix.texi:32477
 msgid "Lastly, to check which Bash running processes are using, you can use the @command{lsof} command:"
 msgstr "Zum Schluss können Sie mit dem Befehl @command{lsof} überprüfen, welches von den Bash-Paketen die laufenden Prozesse benutzen:"
 
 #. type: example
-#: doc/guix.texi:28221
+#: doc/guix.texi:32480
 #, no-wrap
 msgid "lsof | grep /gnu/store/.*bash\n"
 msgstr "lsof | grep /gnu/store/.*bash\n"
 
 #. type: cindex
-#: doc/guix.texi:28229
+#: doc/guix.texi:32488
 #, no-wrap
 msgid "bootstrapping"
 msgstr "Bootstrapping"
 
 #. type: Plain text
-#: doc/guix.texi:28239
+#: doc/guix.texi:32498
 msgid "Bootstrapping in our context refers to how the distribution gets built ``from nothing''.  Remember that the build environment of a derivation contains nothing but its declared inputs (@pxref{Introduction}).  So there's an obvious chicken-and-egg problem: how does the first package get built? How does the first compiler get compiled? Note that this is a question of interest only to the curious hacker, not to the regular user, so you can shamelessly skip this section if you consider yourself a ``regular user''."
 msgstr "Wenn wir von Bootstrapping sprechen, meinen wir damit, wie die Distribution „aus dem Nichts“ erstellt werden kann. Erinnern Sie sich, wie die Erstellungsumgebung für eine Ableitung nichts außer ihren deklarierten Eingaben enthält (siehe @ref{Introduction})? Daraus ergibt sich ein Henne-Ei-Problem: Wie kann so das allererste Paket entstehen? Womit wird der Compiler kompiliert? Beachten Sie, diese Frage ist nur für neugierige Hacker und keine normalen Nutzer interessant. Wenn Sie sich selbst als „normaler Nutzer“ sehen, dürfen Sie getrost diesen Abschnitt hier überspringen."
 
 #. type: cindex
-#: doc/guix.texi:28240 doc/guix.texi:28443
+#: doc/guix.texi:32499 doc/guix.texi:32711
 #, no-wrap
 msgid "bootstrap binaries"
 msgstr "Bootstrap-Binärdateien"
 
 #. type: Plain text
-#: doc/guix.texi:28250
+#: doc/guix.texi:32509
 msgid "The GNU system is primarily made of C code, with libc at its core.  The GNU build system itself assumes the availability of a Bourne shell and command-line tools provided by GNU Coreutils, Awk, Findutils, `sed', and `grep'.  Furthermore, build programs---programs that run @code{./configure}, @code{make}, etc.---are written in Guile Scheme (@pxref{Derivations}).  Consequently, to be able to build anything at all, from scratch, Guix relies on pre-built binaries of Guile, GCC, Binutils, libc, and the other packages mentioned above---the @dfn{bootstrap binaries}."
 msgstr "Das GNU-System besteht in erster Linie aus C-Code, dessen Kern die libc ist. Das GNU-Erstellungssystem selbst setzt voraus, dass eine Bourne-Shell und die Kommandozeilenwerkzeuge der GNU-Coreutils, Awk, Findutils, „sed“ und „grep“ verfügbar sind. Des Weiteren sind Programme für die Erstellung — also Programme, die @code{./configure}, @code{make}, etc.@: ausführen — in Guile Scheme geschrieben (siehe @ref{Derivations}). Folglich ist es erforderlich, dass, damit überhaupt irgendetwas erstellt werden kann, Guix vorerstellte Binärdateien von Guile, GCC, Binutils, libc und den anderen oben genannten Paketen verwendet. Diese bezeichnen wir als die @dfn{Bootstrap-Binärdateien}."
 
 #. type: Plain text
-#: doc/guix.texi:28253
-msgid "These bootstrap binaries are ``taken for granted'', though we can also re-create them if needed (more on that later)."
-msgstr "Diese Bootstrap-Binärdateien werden als „gegeben“ angenommen, obwohl wir sie auch neu erzeugen können, falls nötig (mehr dazu später)."
-
-#. type: Plain text
-#: doc/guix.texi:28256
-msgid "For @code{i686-linux} and @code{x86_64-linux} the Guix bootstrap process is more elaborate, @pxref{Reduced Binary Seed Bootstrap}."
-msgstr "Bei @code{i686-linux} und @code{x86_64-linux} ist das Bootstrapping von Guix schon ausgereifter, siehe @ref{Reduced Binary Seed Bootstrap}."
-
-#. type: node
-#: doc/guix.texi:28260 doc/guix.texi:28262
-#, no-wrap
-msgid "Reduced Binary Seed Bootstrap"
-msgstr "Bootstrapping mit kleinerem Seed"
-
-#. type: menuentry
-#: doc/guix.texi:28260
-msgid "A Bootstrap worthy of GNU."
-msgstr "Ein Bootstrapping, wie GNU es verdient."
-
-# Commas in node names would prevent the terminal info viewer from following links.
-#. type: section
-#: doc/guix.texi:28260 doc/guix.texi:28326 doc/guix.texi:28327
-#, no-wrap
-msgid "Preparing to Use the Bootstrap Binaries"
-msgstr "Vorbereitung zur Verwendung der Bootstrap-Binärdateien"
-
-#. type: menuentry
-#: doc/guix.texi:28260
-msgid "Building that what matters most."
-msgstr "Das Allerwichtigste erstellen."
+#: doc/guix.texi:32513
+msgid "These bootstrap binaries are ``taken for granted'', though we can also re-create them if needed (@pxref{Preparing to Use the Bootstrap Binaries})."
+msgstr "Diese Bootstrap-Binärdateien werden als „gegeben“ angenommen, obwohl wir sie auch neu erzeugen können, falls nötig (siehe @ref{Preparing to Use the Bootstrap Binaries})."
 
 #. type: section
-#: doc/guix.texi:28263
+#: doc/guix.texi:32520
 #, no-wrap
 msgid "The Reduced Binary Seed Bootstrap"
 msgstr "Das Bootstrapping mit kleinerem Seed"
 
 #. type: Plain text
-#: doc/guix.texi:28270
+#: doc/guix.texi:32527
 msgid "Guix---like other GNU/Linux distributions---is traditionally bootstrapped from a set of bootstrap binaries: Bourne shell, command-line tools provided by GNU Coreutils, Awk, Findutils, `sed', and `grep' and Guile, GCC, Binutils, and the GNU C Library (@pxref{Bootstrapping}).  Usually, these bootstrap binaries are ``taken for granted.''"
 msgstr "Guix wird — wie andere GNU/Linux-Distributionen auch — traditionell aus einer Menge von Bootstrap-Binärdateien heraus erstellt: der Bourne-Shell, den Befehlszeilenwerkzeugen der GNU Coreutils, Awk, Findutils, „sed“ und „grep“ sowie Guile, GCC, Binutils und der GNU-C-Bibliothek (siehe @ref{Bootstrapping}). Normalerweise werden diese Bootstrap-Binärdateien „stillschweigend vorausgesetzt“."
 
 #. type: Plain text
-#: doc/guix.texi:28276
-msgid "Taking these binaries for granted means that we consider them to be a correct and trustworthy `seed' for building the complete system.  Therein lies a problem: the current combined size of these bootstrap binaries is about 250MB (@pxref{Bootstrappable Builds,,, mes, GNU Mes}).  Auditing or even inspecting these is next to impossible."
-msgstr "Die Bootstrap-Binärdateien stillschweigend vorauszusetzen bedeutet, dass wir sie als korrekte und vertrauenswürdige Grundlage ansehen, als „Seed“, aus dem heraus das komplette System erstellt wird. Darin liegt ein Problem: Zur Zeit beträgt die Gesamtgröße all dieser Bootstrapping-Binärdateien um die 250MB (siehe @ref{Bootstrappable Builds,,, mes, GNU Mes}). Ein Audit oder auch nur eine Inspektion davon ist praktisch unmöglich."
+#: doc/guix.texi:32533
+msgid "Taking the bootstrap binaries for granted means that we consider them to be a correct and trustworthy ``seed'' for building the complete system.  Therein lies a problem: the combined size of these bootstrap binaries is about 250MB (@pxref{Bootstrappable Builds,,, mes, GNU Mes}).  Auditing or even inspecting these is next to impossible."
+msgstr "Die Bootstrap-Binärdateien stillschweigend vorauszusetzen bedeutet, dass wir sie als korrekte und vertrauenswürdige Grundlage ansehen, als „Seed“, aus dem heraus das komplette System erstellt wird. Darin liegt ein Problem: Die Gesamtgröße all dieser Bootstrapping-Binärdateien beträgt um die 250MB (siehe @ref{Bootstrappable Builds,,, mes, GNU Mes}). Ein Audit oder auch nur eine Inspektion davon ist praktisch unmöglich."
 
 #. type: Plain text
-#: doc/guix.texi:28281
+#: doc/guix.texi:32538
 msgid "For @code{i686-linux} and @code{x86_64-linux}, Guix now features a ``Reduced Binary Seed'' bootstrap @footnote{We would like to say: ``Full Source Bootstrap'' and while we are working towards that goal it would be hyperbole to use that term for what we do now.}."
 msgstr "Für @code{i686-linux} und @code{x86_64-linux} unterstützt Guix jetzt ein Bootstrapping „mit kleinerem Seed“ @footnote{Gerne würden wir „Bootstrapping aus dem Quellcode allein“ sagen und wir arbeiten auch daran, aber das schon jetzt zu sagen, wäre eine Übertreibung.}."
 
 #. type: Plain text
-#: doc/guix.texi:28317
-msgid "The Reduced Binary Seed bootstrap removes the most critical tools---from a trust perspective---from the bootstrap binaries: GCC, Binutils and the GNU C Library are replaced by: @code{bootstrap-mescc-tools} (a tiny assembler and linker) and @code{bootstrap-mes} (a small Scheme Interpreter and a C compiler written in Scheme and the Mes C Library, built for TinyCC and for GCC).  Using these new binary seeds and a new set of packages@footnote{nyacc-boot, mes-boot, tcc-boot0, tcc-boot, make-mesboot0, diffutils-mesboot, binutils-mesboot0, gcc-core-mesboot, mesboot-headers, glibc-mesboot0, gcc-mesboot0, binutils-mesboot, make-mesboot, gcc-mesboot1, gcc-mesboot1-wrapper, glibc-headers-mesboot, glibc-mesboot, gcc-mesboot, and gcc-mesboot-wrapper.  } the ``missing'' Binutils, GCC, and the GNU C Library are built from source.  From here on the more traditional bootstrap process resumes.  This approach has reduced the bootstrap binaries in size to about 130MB.  Work is ongoing to reduce this further.  If you are interested, join us on @code{#bootstrappable} on the Freenode IRC network."
-msgstr "Beim Bootstrapping mit kleinerem Seed gehören die kritischsten Werkzeuge — was Vertrauenswürdigkeit angeht — nicht mehr zu den Bootstrapping-Binärdateien: An Stelle von GCC, Binutils und der GNU-C-Bibliothek bleiben nur @code{bootstrap-mescc-tools} (ein winziger Assembler und Binder), @code{bootstrap-mes} (ein kleiner Scheme-Interpretierer sowie ein C-Compiler, der in Scheme geschrieben wurde, und die Mes-C-Bibliothek, mit der TinyCC und GCC erstellt werden können). Mit Hilfe dieser neuen Seed-Binärdateien und einer neuen Menge von Paketen@footnote{nyacc-boot, mes-boot, tcc-boot0, tcc-boot, make-mesboot0, diffutils-mesboot, binutils-mesboot0, gcc-core-mesboot, mesboot-headers, glibc-mesboot0, gcc-mesboot0, binutils-mesboot, make-mesboot, gcc-mesboot1, gcc-mesboot1-wrapper, glibc-headers-mesboot, glibc-mesboot, gcc-mesboot und gcc-mesboot-wrapper.} können die „fehlenden“ Binutils, GCC und die GNU-C-Bibliothek aus ihrem Quellcode heraus erstellt werden. Ab hier geht es weiter mit dem traditionelleren Bootstrapping-Vorgang. Mit diesem Ansatz konnten wir die Bootstrap-Binärdateien auf eine Größe von ungefähr 130MB verkleinern. Wir arbeiten daran, sie noch weiter zu verkleinern. Wenn Sie daran Interesse haben, dann machen Sie bei uns mit auf @code{#bootstrappable} auf dem Freenode-IRC-Netzwerk."
+#: doc/guix.texi:32544
+msgid "The Reduced Binary Seed bootstrap removes the most critical tools---from a trust perspective---from the bootstrap binaries: GCC, Binutils and the GNU C Library are replaced by: @code{bootstrap-mescc-tools} (a tiny assembler and linker) and @code{bootstrap-mes} (a small Scheme Interpreter and a C compiler written in Scheme and the Mes C Library, built for TinyCC and for GCC)."
+msgstr "Beim Bootstrapping mit kleinerem Seed gehören die kritischsten Werkzeuge — was Vertrauenswürdigkeit angeht — nicht mehr zu den Bootstrapping-Binärdateien: An Stelle von GCC, Binutils und der GNU-C-Bibliothek bleiben nur @code{bootstrap-mescc-tools} (ein winziger Assembler und Binder) und @code{bootstrap-mes} (ein kleiner Scheme-Interpretierer sowie ein C-Compiler, der in Scheme geschrieben wurde, und die Mes-C-Bibliothek, mit der TinyCC und GCC erstellt werden können)."
 
 #. type: Plain text
-#: doc/guix.texi:28323
-msgid "Below is the generated dependency graph for @code{gcc-mesboot}, the bootstrap compiler used to build the rest of GuixSD."
-msgstr "Im Folgenden sehen Sie den erzeugten Abhängigkeitsgraphen für @code{gcc-mesboot}, den Bootstrapping-Compiler, mit dem der Rest von Guix System erstellt wird."
+#: doc/guix.texi:32549
+msgid "Using these new binary seeds the ``missing'' Binutils, GCC, and the GNU C Library are built from source.  From here on the more traditional bootstrap process resumes.  This approach has reduced the bootstrap binaries in size to about 145MB in Guix v1.1."
+msgstr "Mit Hilfe dieser neuen Seed-Binärdateien werden die „fehlenden“ Binutils, GCC und die GNU-C-Bibliothek aus dem Quellcode heraus erstellt. Von hier an kann der traditionellere Bootstrapping-Vorgang wie gewohnt weiterlaufen. Durch diesen Ansatz machen die kleineren Bootstrapping-Binärdateien in Guix-Version@tie{}1.1 nur noch ungefähr 145MB aus."
 
 #. type: Plain text
-#: doc/guix.texi:28325
-msgid "@image{images/gcc-mesboot-bag-graph,6in,,Dependency graph of the gcc-mesboot}"
-msgstr "@image{images/gcc-mesboot-bag-graph,6in,,Abhängigkeitsgraph des gcc-mesboot}"
+#: doc/guix.texi:32557
+msgid "The next step that Guix has taken is to replace the shell and all its utilities with implementations in Guile Scheme, the @emph{Scheme-only bootstrap}.  Gash (@pxref{Gash,,, gash, The Gash manual}) is a POSIX-compatible shell that replaces Bash, and it comes with Gash Utils which has minimalist replacements for Awk, the GNU Core Utilities, Grep, Gzip, Sed, and Tar.  The rest of the bootstrap binary seeds that were removed are now built from source."
+msgstr "Der nächste Schritt war es, die Shell und all ihre Werkzeuge durch in Guile Scheme verfasste Implementierungen zu ersetzen. Nun haben wir ein @emph{Bootstrapping nur in Scheme}. Gash (siehe @ref{Gash,,, gash, The Gash manual}) ist eine POSIX-kompatible Shell, die Bash ersetzt, und mit ihr kommen die Gash Utils als minimalistischer Ersatz für Awk, die GNU Core Utilities, Grep, Gzip, Sed und Tar. Die übrigen Binärdateien unter den Bootstrapping-Seeds wurden entfernt und werden jetzt aus ihrem Quellcode heraus erstellt."
 
 #. type: Plain text
-#: doc/guix.texi:28332
+#: doc/guix.texi:32567
+msgid "Building the GNU System from source is currently only possibly by adding some historical GNU packages as intermediate steps@footnote{Packages such as @code{gcc-2.95.3}, @code{binutils-2.14}, @code{glibc-2.2.5}, @code{gzip-1.2.4}, @code{tar-1.22}, and some others.  For details, see @file{gnu/packages/commencement.scm}.}.  As Gash and Gash Utils mature, and GNU packages become more bootstrappable again (e.g., new releases of GNU Sed will also ship as gzipped tarballs again, as alternative to the hard to bootstrap @code{xz}-compression), this set of added packages can hopefully be reduced again."
+msgstr "Das Erstellen des GNU-Systems aus seinem Quellcode heraus ist derzeit nur möglich, wenn wir ein paar historische GNU-Pakete als Zwischenschritte hinzufügen@footnote{Dazu gehören Pakete wie @code{gcc-2.95.3}, @code{binutils-2.14}, @code{glibc-2.2.5}, @code{gzip-1.2.4}, @code{tar-1.22} und noch ein paar andere. Details finden Sie in @file{gnu/packages/commencement.scm}.}. Mit dem Heranreifen von Gash und Gash Utils und der Entwicklung von GNU-Paketen hin zu mehr Bootstrapbarkeit (z.B.@: wird es neue Veröffentlichungen von GNU Sed auch wieder als Gzip-komprimierte Tarballs geben, einer Alternative zur schwer zu bootstrappenden @code{xz}-Kompression), wird dieser Satz zusätzlicher Pakete hoffentlich noch einmal reduziert werden können."
+
+#. type: Plain text
+#: doc/guix.texi:32571
+msgid "The graph below shows the resulting dependency graph for @code{gcc-core-mesboot0}, the bootstrap compiler used for the traditional bootstrap of the rest of the Guix System."
+msgstr "Im folgenden Graphen sehen Sie den sich ergebenden Abhängigkeitsgraphen für @code{gcc-core-mesboot0}, den Bootstrapping-Compiler, mit dem das traditionelle Bootstrapping für den Rest von Guix System vollzogen wird."
+
+#. type: Plain text
+#: doc/guix.texi:32574
+msgid "@image{images/gcc-core-mesboot0-graph,6in,,Dependency graph of gcc-core-mesboot0}"
+msgstr "@image{images/gcc-core-mesboot0-graph,6in,,Abhängigkeitsgraph des gcc-core-mesboot0}"
+
+#. type: Plain text
+#: doc/guix.texi:32581
+msgid "The only significant binary bootstrap seeds that remain@footnote{ Ignoring the 68KB @code{mescc-tools}; that will be removed later, together with @code{mes}.} are a Scheme intepreter and a Scheme compiler: GNU Mes and GNU Guile@footnote{Not shown in this graph are the static binaries for @file{bash}, @code{tar}, and @code{xz} that are used to get Guile running.}."
+msgstr "Die einzig bedeutsamen verbleibenden Binärdateien unter den Bootstrapping-Seeds@footnote{Wenn wir die 68KB-großen @code{mescc-tools} ignorieren, die wir später noch zusammen mit @code{mes} entfernen werden.} sind ein Scheme-Intepretierer und ein Scheme-Compiler: GNU Mes und GNU Guile@footnote{In diesem Graphen werden die statischen Binärdateien für @file{bash}, @code{tar} und @code{xz} nicht gezeigt, die wir benutzen, um Guile zum Laufen zu bringen.}."
+
+#. type: Plain text
+#: doc/guix.texi:32584
+msgid "This further reduction has brought down the size of the binary seed to about 60MB for @code{i686-linux} and @code{x86_64-linux}."
+msgstr "Nach dieser weiteren Reduktion macht der binäre Seed nur noch ungefähr 60MB aus für @code{i686-linux} und @code{x86_64-linux}."
+
+#. type: Plain text
+#: doc/guix.texi:32589
+msgid "Work is ongoing to remove all binary blobs from our free software bootstrap stack, working towards a Full Source Bootstrap.  Also ongoing is work to bring these bootstraps to the @code{arm-linux} and @code{aarch64-linux} architectures and to the Hurd."
+msgstr "Wir arbeiten daran, alle binären „Blobs“ aus unserem Freie-Software-Bootstrapping zu entfernen, um nur aus Quellcode heraus bootstrappen zu können („Full Source Bootstrap“). Auch ist Arbeit im Gange, ein solches Bootstrapping für die @code{arm-linux}- und @code{aarch64-linux}-Architekturen und GNU@tie{}Hurd anzubieten."
+
+#. type: Plain text
+#: doc/guix.texi:32593
+msgid "If you are interested, join us on @samp{#bootstrappable} on the Freenode IRC network or discuss on @email{bug-mes@@gnu.org} or @email{gash-devel@@nongnu.org}."
+msgstr "Wenn Sie daran Interesse haben, dann machen Sie bei uns mit auf @code{#bootstrappable} auf dem Freenode-IRC-Netzwerk oder diskuttieren Sie mit auf @email{bug-mes@@gnu.org} oder @email{gash-devel@@nongnu.org}."
+
+#. type: Plain text
+#: doc/guix.texi:32600
 msgid "@image{images/bootstrap-graph,6in,,Dependency graph of the early bootstrap derivations}"
 msgstr "@image{images/bootstrap-graph,6in,,Abhängigkeitsgraph der frühen Bootstrap-Ableitungen}"
 
 #. type: Plain text
-#: doc/guix.texi:28337
+#: doc/guix.texi:32605
 msgid "The figure above shows the very beginning of the dependency graph of the distribution, corresponding to the package definitions of the @code{(gnu packages bootstrap)} module.  A similar figure can be generated with @command{guix graph} (@pxref{Invoking guix graph}), along the lines of:"
 msgstr "Die Abbildung oben zeigt den Anfang des Abhängigkeitsgraphen der Distribution und entspricht den Paketdefinitionen im @code{(gnu package bootstrap)}-Modul. Eine ähnliche Grafik kann mit @command{guix graph} (siehe @ref{Invoking guix graph}) erzeugt werden:"
 
 #. type: example
-#: doc/guix.texi:28342
+#: doc/guix.texi:32610
 #, no-wrap
 msgid ""
 "guix graph -t derivation \\\n"
@@ -52264,12 +59805,12 @@ msgstr ""
 "  | dot -Tps > gcc.ps\n"
 
 #. type: Plain text
-#: doc/guix.texi:28345
-msgid "or, for the Reduced Binary Seed bootstrap"
-msgstr "oder für das Bootstrapping mit kleinerem Seed:"
+#: doc/guix.texi:32613
+msgid "or, for the further Reduced Binary Seed bootstrap"
+msgstr "oder für das Bootstrapping mit noch kleinerem Seed:"
 
 #. type: example
-#: doc/guix.texi:28350
+#: doc/guix.texi:32618
 #, no-wrap
 msgid ""
 "guix graph -t derivation \\\n"
@@ -52281,216 +59822,379 @@ msgstr ""
 "  | dot -Tps > mes.ps\n"
 
 #. type: Plain text
-#: doc/guix.texi:28359
+#: doc/guix.texi:32627
 msgid "At this level of detail, things are slightly complex.  First, Guile itself consists of an ELF executable, along with many source and compiled Scheme files that are dynamically loaded when it runs.  This gets stored in the @file{guile-2.0.7.tar.xz} tarball shown in this graph.  This tarball is part of Guix's ``source'' distribution, and gets inserted into the store with @code{add-to-store} (@pxref{The Store})."
 msgstr "Bei diesem Detaillierungsgrad sind die Dinge recht komplex. Guile selbst besteht aus einer ausführbaren ELF-Datei neben vielen Quelldateien und kompilierten Scheme-Dateien, die dynamisch bei der Ausführung geladen werden. Das wird in dem im Graph gezeigten @file{guile-2.0.7.tar.xz}-Archiv gespeichert. Das Archiv ist Teil von Guix’ „Quelldistribution“ und wird in den Store mit @code{add-to-store} (siehe @ref{The Store}) eingefügt."
 
 #. type: Plain text
-#: doc/guix.texi:28368
+#: doc/guix.texi:32636
 msgid "But how do we write a derivation that unpacks this tarball and adds it to the store? To solve this problem, the @code{guile-bootstrap-2.0.drv} derivation---the first one that gets built---uses @code{bash} as its builder, which runs @code{build-bootstrap-guile.sh}, which in turn calls @code{tar} to unpack the tarball.  Thus, @file{bash}, @file{tar}, @file{xz}, and @file{mkdir} are statically-linked binaries, also part of the Guix source distribution, whose sole purpose is to allow the Guile tarball to be unpacked."
 msgstr "Doch wie schreibt man eine Ableitung, die dieses Tarball-Archiv entpackt und in den Store einfügt? Um dieses Problem zu lösen, benutzt die @code{guile-bootstrap-2.0.drv}-Ableitung — die erste, die erstellt wird — @code{bash} als Ersteller, welche wiederum @code{build-bootstrap-guile.sh} ausführt, was über einen Aufruf von @code{tar} den Tarball entpackt. Deswegen sind @file{bash}, @file{tar}, @file{xz} und @file{mkdir} als statisch gebundene Binärdateien auch Teil der Guix-Quelldistribution, die nur dazu da sind, dass der Guile-Tarball entpackt werden kann."
 
 #. type: Plain text
-#: doc/guix.texi:28380
-msgid "Once @code{guile-bootstrap-2.0.drv} is built, we have a functioning Guile that can be used to run subsequent build programs.  Its first task is to download tarballs containing the other pre-built binaries---this is what the @code{.tar.xz.drv} derivations do.  Guix modules such as @code{ftp-client.scm} are used for this purpose.  The @code{module-import.drv} derivations import those modules in a directory in the store, using the original layout.  The @code{module-import-compiled.drv} derivations compile those modules, and write them in an output directory with the right layout.  This corresponds to the @code{#:modules} argument of @code{build-expression->derivation} (@pxref{Derivations})."
-msgstr "Sobald @code{guile-bootstrap-2.0.drv} erstellt worden ist, haben wir ein funktionierendes Guile zur Hand, mit dem nachfolgende Erstellungsprogramme ausgeführt werden können. Sein erster Auftrag ist, Tarballs mit den anderen vorerstellten Binärdateien herunterzuladen — das ist die Tätigkeit der @code{.tar.xz.drv}-Ableitungen. Wir verwenden zu diesem Zweck Guix-Module wie @code{ftp-client.scm}. Die @code{module-import.drv}-Ableitungen importieren solche Module und schreiben sie in derselben Verzeichnisstruktur in ein Verzeichnis im Store. Die @code{module-import-compiled.drv}-Ableitungen kompilieren die Module und schreiben sie in der richtigen Struktur in ein Ausgabeverzeichnis. Dies entspricht dem @code{#:modules}-Argument von @code{build-expression->derivation} (siehe @ref{Derivations})."
+#: doc/guix.texi:32648
+msgid "Once @code{guile-bootstrap-2.0.drv} is built, we have a functioning Guile that can be used to run subsequent build programs.  Its first task is to download tarballs containing the other pre-built binaries---this is what the @file{.tar.xz.drv} derivations do.  Guix modules such as @code{ftp-client.scm} are used for this purpose.  The @code{module-import.drv} derivations import those modules in a directory in the store, using the original layout.  The @code{module-import-compiled.drv} derivations compile those modules, and write them in an output directory with the right layout.  This corresponds to the @code{#:modules} argument of @code{build-expression->derivation} (@pxref{Derivations})."
+msgstr "Sobald @code{guile-bootstrap-2.0.drv} erstellt worden ist, haben wir ein funktionierendes Guile zur Hand, mit dem nachfolgende Erstellungsprogramme ausgeführt werden können. Sein erster Auftrag ist, Tarballs mit den anderen vorerstellten Binärdateien herunterzuladen — das ist die Tätigkeit der @file{.tar.xz.drv}-Ableitungen. Wir verwenden zu diesem Zweck Guix-Module wie @code{ftp-client.scm}. Die @code{module-import.drv}-Ableitungen importieren solche Module und schreiben sie in derselben Verzeichnisstruktur in ein Verzeichnis im Store. Die @code{module-import-compiled.drv}-Ableitungen kompilieren die Module und schreiben sie in der richtigen Struktur in ein Ausgabeverzeichnis. Dies entspricht dem @code{#:modules}-Argument von @code{build-expression->derivation} (siehe @ref{Derivations})."
 
 #. type: Plain text
-#: doc/guix.texi:28385
+#: doc/guix.texi:32653
 msgid "Finally, the various tarballs are unpacked by the derivations @code{gcc-bootstrap-0.drv}, @code{glibc-bootstrap-0.drv}, or @code{bootstrap-mes-0.drv} and @code{bootstrap-mescc-tools-0.drv}, at which point we have a working C tool chain."
 msgstr "Schließlich werden die verschiedenen Tarballs durch die Ableitungen @code{gcc-bootstrap-0.drv}, @code{glibc-bootstrap-0.drv}, oder @code{bootstrap-mes-0.drv} und @code{bootstrap-mescc-tools-0.drv}, entpackt. Zu diesem Zeitpunkt haben wir eine fertige Toolchain für C."
 
 #. type: unnumberedsec
-#: doc/guix.texi:28386
+#: doc/guix.texi:32654
 #, no-wrap
 msgid "Building the Build Tools"
 msgstr "Die Erstellungswerkzeuge erstellen"
 
 #. type: Plain text
-#: doc/guix.texi:28395
+#: doc/guix.texi:32663
 msgid "Bootstrapping is complete when we have a full tool chain that does not depend on the pre-built bootstrap tools discussed above.  This no-dependency requirement is verified by checking whether the files of the final tool chain contain references to the @file{/gnu/store} directories of the bootstrap inputs.  The process that leads to this ``final'' tool chain is described by the package definitions found in the @code{(gnu packages commencement)} module."
 msgstr "Das Bootstrapping ist abgeschlossen, sobald eine vollständige Toolchain vorliegt, die von den oben erläuterten vorerstellten Bootstrapping-Werkzeugen @emph{nicht} abhängt. Diese Voraussetzung, keine Abhängigkeiten zu haben, überprüft man, indem man schaut, ob die Dateien der endgültigen Toolchain frei von Referenzen auf die @file{/gnu/store}-Verzeichnisse der Bootstrapping-Eingaben sind. Der Vorgang, diese „finale“ Toolchain zu bekommen, wird von den Paketdefinitionen beschrieben, die Sie im Modul @code{(gnu packages commencement)} finden."
 
 #. type: Plain text
-#: doc/guix.texi:28402
+#: doc/guix.texi:32670
 msgid "The @command{guix graph} command allows us to ``zoom out'' compared to the graph above, by looking at the level of package objects instead of individual derivations---remember that a package may translate to several derivations, typically one derivation to download its source, one to build the Guile modules it needs, and one to actually build the package from source.  The command:"
 msgstr "Mit dem Befehl @command{guix graph} können wir gegenüber dem obigen Graphen „herauszoomen“, indem wir alles auf der Ebene von Paketobjekten statt auf der von einzelnen Ableitungen betrachten — denken Sie daran, dass ein Paket zu mehreren Ableitungen führen kann; normalerweise einer, die seine Quelldateien herunterlädt, einer, die die benötigten Guile-Module erstellt, und einer, die das Paket dann tatsächlich aus seinem Quellcode heraus erstellt. Der Befehl"
 
 #. type: example
-#: doc/guix.texi:28407
+#: doc/guix.texi:32675
 #, no-wrap
 msgid ""
 "guix graph -t bag \\\n"
 "  -e '(@@@@ (gnu packages commencement)\n"
-"          glibc-final-with-bootstrap-bash)' | dot -Tps > t.ps\n"
+"          glibc-final-with-bootstrap-bash)' | xdot -\n"
 msgstr ""
 "guix graph -t bag \\\n"
 "  -e '(@@@@ (gnu packages commencement)\n"
-"          glibc-final-with-bootstrap-bash)' | dot -Tps > t.ps\n"
+"          glibc-final-with-bootstrap-bash)' | xdot -\n"
 
 #. type: Plain text
-#: doc/guix.texi:28414
-msgid "produces the dependency graph leading to the ``final'' C library@footnote{You may notice the @code{glibc-intermediate} label, suggesting that it is not @emph{quite} final, but as a good approximation, we will consider it final.}, depicted below."
-msgstr "produziert den Abhängigkeitsgraphen, der zur „finalen“ C-Bibliothek@footnote{Ihnen könnte die @code{glibc-intermediate}-Markierung auffallen, die darauf hindeutet, dass sie @emph{noch nicht ganz} final ist, aber annäherungsweise betrachten wir sie als final.} führt. Hier sehen Sie ihn:"
+#: doc/guix.texi:32682
+msgid "displays the dependency graph leading to the ``final'' C library@footnote{You may notice the @code{glibc-intermediate} label, suggesting that it is not @emph{quite} final, but as a good approximation, we will consider it final.}, depicted below."
+msgstr "zeigt den Abhängigkeitsgraphen, der zur „finalen“ C-Bibliothek@footnote{Ihnen könnte die @code{glibc-intermediate}-Markierung auffallen, die darauf hindeutet, dass sie @emph{noch nicht ganz} final ist, aber annäherungsweise betrachten wir sie als final.} führt. Hier sehen Sie ihn:"
 
 #. type: Plain text
-#: doc/guix.texi:28416
+#: doc/guix.texi:32684
 msgid "@image{images/bootstrap-packages,6in,,Dependency graph of the early packages}"
 msgstr "@image{images/bootstrap-packages,6in,,Abhängigkeitsgraph der frühen Pakete}"
 
 #. type: Plain text
-#: doc/guix.texi:28422
+#: doc/guix.texi:32690
 msgid "The first tool that gets built with the bootstrap binaries is GNU@tie{}Make---noted @code{make-boot0} above---which is a prerequisite for all the following packages.  From there Findutils and Diffutils get built."
 msgstr "Das erste Werkzeug, das mit den Bootstrapping-Binärdateien erstellt wird, ist GNU@tie{}Make — beachten Sie das oben sichtbare @code{make-boot0} —, das eine Voraussetzung aller folgenden Pakete ist. Von da aus werden Findutils und Diffutils erstellt."
 
 #. type: Plain text
-#: doc/guix.texi:28427
-msgid "Then come the first-stage Binutils and GCC, built as pseudo cross tools---i.e., with @code{--target} equal to @code{--host}.  They are used to build libc.  Thanks to this cross-build trick, this libc is guaranteed not to hold any reference to the initial tool chain."
-msgstr "Es folgt die erste Stufe der Binutils und GCC, die pseudo-crosskompiliert werden — d.h.@: die @code{--target}-Befehlszeilenoption entspricht der @code{--host}-Option. Mit ihnen wird libc erstellt. Dank des Crosskompilierungstricks ist garantiert, dass diese libc keine Referenzen auf die anfängliche Toolchain enthält."
+#: doc/guix.texi:32695
+msgid "Then come the first-stage Binutils and GCC, built as pseudo cross tools---i.e., with @option{--target} equal to @option{--host}.  They are used to build libc.  Thanks to this cross-build trick, this libc is guaranteed not to hold any reference to the initial tool chain."
+msgstr "Es folgt die erste Stufe der Binutils und GCC, die pseudo-crosskompiliert werden — d.h.@: die @option{--target}-Befehlszeilenoption entspricht der @option{--host}-Option. Mit ihnen wird libc erstellt. Dank des Crosskompilierungstricks ist garantiert, dass diese libc keine Referenzen auf die anfängliche Toolchain enthält."
 
 #. type: Plain text
-#: doc/guix.texi:28433
-msgid "From there the final Binutils and GCC (not shown above) are built.  GCC uses @code{ld} from the final Binutils, and links programs against the just-built libc.  This tool chain is used to build the other packages used by Guix and by the GNU Build System: Guile, Bash, Coreutils, etc."
-msgstr "Damit werden die finalen Binutils und GCC erstellt (sie sind oben nicht zu sehen). GCC benutzt den @code{ld} aus den finalen Binutils und bindet Programme an die gerade erstellte libc. Mit dieser Toolchain erstellen wir die anderen Pakete, die Guix und das GNU-Erstellungssystem benutzen: Guile, Bash, Coreutils, etc."
+#: doc/guix.texi:32701
+msgid "From there the final Binutils and GCC (not shown above) are built.  GCC uses @command{ld} from the final Binutils, and links programs against the just-built libc.  This tool chain is used to build the other packages used by Guix and by the GNU Build System: Guile, Bash, Coreutils, etc."
+msgstr "Damit werden die finalen Binutils und GCC erstellt (sie sind oben nicht zu sehen). GCC benutzt den @command{ld} aus den finalen Binutils und bindet Programme an die gerade erstellte libc. Mit dieser Toolchain erstellen wir die anderen Pakete, die Guix und das GNU-Erstellungssystem benutzen: Guile, Bash, Coreutils, etc."
 
 #. type: Plain text
-#: doc/guix.texi:28439
+#: doc/guix.texi:32707
 msgid "And voilà! At this point we have the complete set of build tools that the GNU Build System expects.  These are in the @code{%final-inputs} variable of the @code{(gnu packages commencement)} module, and are implicitly used by any package that uses @code{gnu-build-system} (@pxref{Build Systems, @code{gnu-build-system}})."
 msgstr "Und voilà! Wenn das geschafft ist, haben wir die vollständige Menge von Erstellungswerkzeugen, die das GNU-Erstellungssystem erwartet. Sie sind in der Variablen @code{%final-inputs} des Moduls @code{(gnu packages commencement)} zu finden und werden von jedem Paket implizit benutzt, das das @code{gnu-build-system} verwendet (siehe @ref{Build Systems, @code{gnu-build-system}})."
 
 #. type: unnumberedsec
-#: doc/guix.texi:28441
+#: doc/guix.texi:32709
 #, no-wrap
 msgid "Building the Bootstrap Binaries"
 msgstr "Die Bootstrapping-Binärdateien erstellen"
 
 #. type: Plain text
-#: doc/guix.texi:28448
+#: doc/guix.texi:32716
 msgid "Because the final tool chain does not depend on the bootstrap binaries, those rarely need to be updated.  Nevertheless, it is useful to have an automated way to produce them, should an update occur, and this is what the @code{(gnu packages make-bootstrap)} module provides."
 msgstr "Weil die finale Toolchain nicht von den Bootstrapping-Binärdateien abhängt, müssen diese nur selten aktualisiert werden. Es ist dennoch sinnvoll, sie automatisiert erzeugen zu können, wenn sie doch aktualisiert werden. Das Modul @code{(gnu packages make-bootstrap)} ermöglicht dies."
 
 #. type: Plain text
-#: doc/guix.texi:28454
+#: doc/guix.texi:32722
 msgid "The following command builds the tarballs containing the bootstrap binaries (Binutils, GCC, glibc, for the traditional bootstrap and linux-libre-headers, bootstrap-mescc-tools, bootstrap-mes for the Reduced Binary Seed bootstrap, and Guile, and a tarball containing a mixture of Coreutils and other basic command-line tools):"
 msgstr "Mit dem folgenden Befehl werden die Tarball-Archive erstellt, die die Bootstrapping-Binärdateien enthalten (beim traditionellen Bootstrapping sind das Binutils, GCC und glibc; beim Bootstrapping mit kleinerem Seed sind es linux-libre-headers, bootstrap-mescc-tools, bootstrap-mes; dazu kommen Guile sowie ein Tarball mit einer Mischung aus Coreutils und anderen grundlegenden Befehlszeilenwerkzeugen):"
 
 #. type: example
-#: doc/guix.texi:28457
+#: doc/guix.texi:32725
 #, no-wrap
 msgid "guix build bootstrap-tarballs\n"
 msgstr "guix build bootstrap-tarballs\n"
 
 #. type: Plain text
-#: doc/guix.texi:28462
+#: doc/guix.texi:32730
 msgid "The generated tarballs are those that should be referred to in the @code{(gnu packages bootstrap)} module mentioned at the beginning of this section."
 msgstr "Die erzeugten Tarballs sind es, auf die im Modul @code{(gnu packages bootstrap)} verwiesen werden sollte, das am Anfang dieses Abschnitts erwähnt wurde."
 
 #. type: Plain text
-#: doc/guix.texi:28468
+#: doc/guix.texi:32736
 msgid "Still here? Then perhaps by now you've started to wonder: when do we reach a fixed point? That is an interesting question! The answer is unknown, but if you would like to investigate further (and have significant computational and storage resources to do so), then let us know."
 msgstr "Können Sie noch folgen? Dann haben Sie vielleicht schon angefangen, sich zu fragen, wann wir denn einen Fixpunkt erreichen. Das ist eine interessante Frage! Leider wissen wir es nicht, aber wenn Sie es herausfinden wollen (und Ihnen die nennenswerten Rechen- und Speicherkapazitäten dafür zur Verfügung stehen), dann lassen Sie es uns wissen."
 
 #. type: unnumberedsec
-#: doc/guix.texi:28469
+#: doc/guix.texi:32737
 #, no-wrap
 msgid "Reducing the Set of Bootstrap Binaries"
 msgstr "Die Menge an Bootstrapping-Binärdateien verkleinern"
 
 #. type: Plain text
-#: doc/guix.texi:28477
+#: doc/guix.texi:32745
 msgid "Our traditional bootstrap includes GCC, GNU Libc, Guile, etc.  That's a lot of binary code! Why is that a problem? It's a problem because these big chunks of binary code are practically non-auditable, which makes it hard to establish what source code produced them.  Every unauditable binary also leaves us vulnerable to compiler backdoors as described by Ken Thompson in the 1984 paper @emph{Reflections on Trusting Trust}."
 msgstr "Zu unserem traditionellen Bootstrapping gehören GCC, GNU Libc, Guile, etc. Das ist ganz schön viel binärer Code! Warum ist das ein Problem? Es ist deswegen ein Problem, weil es praktisch unmöglich ist, solch große Klumpen binären Codes einem Audit zu unterziehen. Dadurch wird es schwer, nachzuvollziehen, welcher Quellcode ihn erzeugt hat. Jede ausführbare Binärdatei, für die kein Audit möglich ist, macht uns verwundbar gegenüber Hintertüren in Compilern, wie Ken Thompson sie in seiner Arbeit von 1984, @emph{Reflections on Trusting Trust}, beschrieben hat."
 
 #. type: Plain text
-#: doc/guix.texi:28483
+#: doc/guix.texi:32751
 msgid "This is mitigated by the fact that our bootstrap binaries were generated from an earlier Guix revision.  Nevertheless it lacks the level of transparency that we get in the rest of the package dependency graph, where Guix always gives us a source-to-binary mapping.  Thus, our goal is to reduce the set of bootstrap binaries to the bare minimum."
 msgstr "Wir senken das Risiko, indem wir unsere Bootstrapping-Binärdateien immer mit einer früheren Guix-Version erzeugen. Trotzdem fehlt uns das Niveau an Transparenz, das wir am übrigen Paketabhängigkeitsgraphen wertschätzen, wo Guix immer vom Quellcode eindeutig auf die Binärdateien abbildet. Unser Ziel ist also, die Menge an Bootstrapping-Binärdateien so weit wie möglich zu verkleinern."
 
 #. type: Plain text
-#: doc/guix.texi:28489
+#: doc/guix.texi:32757
 msgid "The @uref{https://bootstrappable.org, Bootstrappable.org web site} lists on-going projects to do that.  One of these is about replacing the bootstrap GCC with a sequence of assemblers, interpreters, and compilers of increasing complexity, which could be built from source starting from a simple and auditable assembler."
 msgstr "Auf dem @uref{https://bootstrappable.org, Webauftritt von Bootstrappable.org} werden laufende Projekte mit diesem Zweck aufgeführt. Bei einem davon geht es darum, den Bootstrapping-GCC durch eine Folge von Assemblern, Interpretierern und Compilern zunehmender Komplexität zu ersetzen, die von Anfang an aus Quellcode heraus erstellt werden kann, angefangen bei einem einfachen, überprüfbaren Assembler."
 
 #. type: Plain text
-#: doc/guix.texi:28498
+#: doc/guix.texi:32766
 msgid "Our first major achievement is the replacement of of GCC, the GNU C Library and Binutils by MesCC-Tools (a simple hex linker and macro assembler) and Mes (@pxref{Top, GNU Mes Reference Manual,, mes, GNU Mes}, a Scheme interpreter and C compiler in Scheme).  Neither MesCC-Tools nor Mes can be fully bootstrapped yet and thus we inject them as binary seeds.  We call this the Reduced Binary Seed bootstrap, as it has halved the size of our bootstrap binaries! Also, it has eliminated the C compiler binary; i686-linux and x86_64-linux Guix packages are now bootstrapped without any binary C compiler."
-msgstr "Unsere erste große Leistung stellt die Ersetzung von GCC, der GNU-C-Bibliothek und der Binutils durch die MesCC-Tools (einem einfachen Binder für hexadezimal dargestellte Maschinenprogramme und einem Makro-Assembler) und Mes dar (siehe @ref{Top, GNU Mes Reference Manual,, mes, GNU Mes}, einem Scheme-Interpretierer und in Scheme geschriebenen C-Compiler). Weder MesCC-Tools noch Mes können bereits von Grund auf gebootstrapt werden, daher schleusen wir sie als binäre Seeds ein. Wir nennen das unser Bootstrapping mit kleinerem Seed, weil es die Größe unserer Bootstrapping-Binärdateien halbiert hat! Außerdem haben wir damit keinerlei Binärdatei für einen C-Compiler; auf i686-linux und x86_64-linux werden Guix-Pakete ganz ohne binären C-Compiler gebootstrapt."
+msgstr "Unsere erste große Leistung stellt die Ersetzung von GCC, der GNU-C-Bibliothek und der Binutils durch die MesCC-Tools (einem einfachen Binder für hexadezimal dargestellte Maschinenprogramme und einem Makro-Assembler) und Mes dar (siehe @ref{Top, Referenzhandbuch zu GNU Mes,, mes, GNU Mes}, einem Scheme-Interpretierer und in Scheme geschriebenen C-Compiler). Weder MesCC-Tools noch Mes können bereits von Grund auf gebootstrapt werden, daher schleusen wir sie als binäre Seeds ein. Wir nennen das unser Bootstrapping mit kleinerem Seed, weil es die Größe unserer Bootstrapping-Binärdateien halbiert hat! Außerdem haben wir damit keinerlei Binärdatei für einen C-Compiler; auf i686-linux und x86_64-linux werden Guix-Pakete ganz ohne binären C-Compiler gebootstrapt."
 
 #. type: Plain text
-#: doc/guix.texi:28501
+#: doc/guix.texi:32769
 msgid "Work is ongoing to make MesCC-Tools and Mes fully bootstrappable and we are also looking at any other bootstrap binaries.  Your help is welcome!"
 msgstr "Wir arbeiten daran, MesCC-Tools und Mes vollständig bootstrappen zu können, und behalten auch andere Bootstrapping-Binärdateien im Blick. Ihre Unterstützung ist willkommen!"
 
 #. type: chapter
-#: doc/guix.texi:28503
+#: doc/guix.texi:32771
 #, no-wrap
 msgid "Porting to a New Platform"
 msgstr "Auf eine neue Plattform portieren"
 
 #. type: Plain text
-#: doc/guix.texi:28512
+#: doc/guix.texi:32780
 msgid "As discussed above, the GNU distribution is self-contained, and self-containment is achieved by relying on pre-built ``bootstrap binaries'' (@pxref{Bootstrapping}).  These binaries are specific to an operating system kernel, CPU architecture, and application binary interface (ABI).  Thus, to port the distribution to a platform that is not yet supported, one must build those bootstrap binaries, and update the @code{(gnu packages bootstrap)} module to use them on that platform."
 msgstr "Wie oben beschrieben ist die GNU-Distribution eigenständig und diese Eigenständigkeit wird erreicht, indem sie aus vorerstellten „Bootstrap-Binärdateien“ heraus erstellt werden kann (siehe @ref{Bootstrapping}). Diese Binärdateien unterscheiden sich je nach verwendetem Betriebssystem-Kernel, nach der Prozessorarchitektur und der Anwendungsbinärschnittstelle („Application Binary Interface“, kurz ABI). Um die Distribution also auf eine noch nicht unterstützte Plattform zu portieren, muss man diese Bootstrap-Binärdateien für diese Plattform erstellen und das Modul @code{(gnu packages bootstrap)} aktualisieren, damit es sie benutzt."
 
 #. type: Plain text
-#: doc/guix.texi:28517
+#: doc/guix.texi:32785
 msgid "Fortunately, Guix can @emph{cross compile} those bootstrap binaries.  When everything goes well, and assuming the GNU tool chain supports the target platform, this can be as simple as running a command like this one:"
 msgstr "Zum Glück kann Guix diese Bootstrap-Binärdateien @emph{cross-kompilieren}. Wenn alles gut geht, und vorausgesetzt, die GNU-Werkzeuge (zusammen werden sie als GNU-„Toolchain“ bezeichnet) unterstützen diese Zielplattform auch, dann kann es völlig ausreichen, dass Sie einen Befehl wie hier ausführen:"
 
 #. type: example
-#: doc/guix.texi:28520
+#: doc/guix.texi:32788
 #, no-wrap
 msgid "guix build --target=armv5tel-linux-gnueabi bootstrap-tarballs\n"
 msgstr "guix build --target=armv5tel-linux-gnueabi bootstrap-tarballs\n"
 
 #. type: Plain text
-#: doc/guix.texi:28527
+#: doc/guix.texi:32795
 msgid "For this to work, the @code{glibc-dynamic-linker} procedure in @code{(gnu packages bootstrap)} must be augmented to return the right file name for libc's dynamic linker on that platform; likewise, @code{system->linux-architecture} in @code{(gnu packages linux)} must be taught about the new platform."
 msgstr "Damit das funktioniert, muss erst die @code{glibc-dynamic-linker}-Prozedur in @code{(gnu packages bootstrap)} angepasst werden, damit sie den richtigen Dateinamen für den dynamischen Binder von libc auf dieser Plattform liefert; ebenso muss @code{system->linux-architecture} in @code{(gnu packages linux)} mit den Informationen über die neue Plattform versorgt werden."
 
 #. type: Plain text
-#: doc/guix.texi:28536
+#: doc/guix.texi:32804
 msgid "Once these are built, the @code{(gnu packages bootstrap)} module needs to be updated to refer to these binaries on the target platform.  That is, the hashes and URLs of the bootstrap tarballs for the new platform must be added alongside those of the currently supported platforms.  The bootstrap Guile tarball is treated specially: it is expected to be available locally, and @file{gnu/local.mk} has rules to download it for the supported architectures; a rule for the new platform must be added as well."
 msgstr "Sobald diese erstellt wurden, muss das Modul @code{(gnu packages bootstrap)} aktualisiert werden, damit es diese Binärdateien für die Zielplattform benutzt. Das heißt, die Hashes und URLs der Bootstrap-Tarballs für die neue Plattform müssen neben denen für die bisher unterstützten Plattformen aufgeführt werden. Der Bootstrap-Guile-Tarball wird besonders behandelt: Von ihm wird erwartet, dass er lokal verfügbar ist, und @file{gnu/local.mk} enthält Regeln, um ihn für die unterstützten Architekturen herunterzuladen; eine Regel muss auch für die neue Plattform hinzugefügt werden."
 
 #. type: Plain text
-#: doc/guix.texi:28545
-msgid "In practice, there may be some complications.  First, it may be that the extended GNU triplet that specifies an ABI (like the @code{eabi} suffix above) is not recognized by all the GNU tools.  Typically, glibc recognizes some of these, whereas GCC uses an extra @code{--with-abi} configure flag (see @code{gcc.scm} for examples of how to handle this).  Second, some of the required packages could fail to build for that platform.  Lastly, the generated binaries could be broken for some reason."
-msgstr "In der Praxis kann es einige Schwierigkeiten geben. Erstens kann es sein, dass das erweiterte GNU-Tripel, das eine Anwendungsbinärschnittstelle (ABI) festlegt (wie es das @code{eabi}-Suffix oben tut) nicht von allen GNU-Werkzeugen erkannt wird. Typischerweise erkennt glibc manche davon, während für GCC eine zusätzliche Befehlszeilenoption @code{--with-abi} an configure übergeben werden muss (siehe @code{gcc.scm} für Beispiele, wie man das macht). Zweitens könnte es sein, dass manche der notwendige Pakete für diese Plattform nicht erfolgreich erstellt werden können. Zuletzt könnten die generierten Binärdateien aus dem einen oder anderen Grund fehlerhaft sein."
+#: doc/guix.texi:32813
+msgid "In practice, there may be some complications.  First, it may be that the extended GNU triplet that specifies an ABI (like the @code{eabi} suffix above) is not recognized by all the GNU tools.  Typically, glibc recognizes some of these, whereas GCC uses an extra @option{--with-abi} configure flag (see @code{gcc.scm} for examples of how to handle this).  Second, some of the required packages could fail to build for that platform.  Lastly, the generated binaries could be broken for some reason."
+msgstr "In der Praxis kann es einige Schwierigkeiten geben. Erstens kann es sein, dass das erweiterte GNU-Tripel, das eine Anwendungsbinärschnittstelle (ABI) festlegt (wie es das @code{eabi}-Suffix oben tut) nicht von allen GNU-Werkzeugen erkannt wird. Typischerweise erkennt glibc manche davon, während für GCC eine zusätzliche Befehlszeilenoption @option{--with-abi} an configure übergeben werden muss (siehe @code{gcc.scm} für Beispiele, wie man das macht). Zweitens könnte es sein, dass manche der notwendige Pakete für diese Plattform nicht erfolgreich erstellt werden können. Zuletzt könnten die generierten Binärdateien aus dem einen oder anderen Grund fehlerhaft sein."
 
 #. type: include
-#: doc/guix.texi:28547
+#: doc/guix.texi:32815
 #, no-wrap
 msgid "contributing.texi"
 msgstr "contributing.de.texi"
 
 #. type: Plain text
-#: doc/guix.texi:28560
-msgid "Guix is based on the @uref{https://nixos.org/nix/, Nix package manager}, which was designed and implemented by Eelco Dolstra, with contributions from other people (see the @file{nix/AUTHORS} file in Guix.)  Nix pioneered functional package management, and promoted unprecedented features, such as transactional package upgrades and rollbacks, per-user profiles, and referentially transparent build processes.  Without this work, Guix would not exist."
+#: doc/guix.texi:32828
+msgid "Guix is based on the @uref{https://nixos.org/nix/, Nix package manager}, which was designed and implemented by Eelco Dolstra, with contributions from other people (see the @file{nix/AUTHORS} file in Guix).  Nix pioneered functional package management, and promoted unprecedented features, such as transactional package upgrades and rollbacks, per-user profiles, and referentially transparent build processes.  Without this work, Guix would not exist."
 msgstr "Guix baut auf dem @uref{https://nixos.org/nix/, Nix-Paketverwaltungsprogramm} auf, das von Eelco Dolstra entworfen und entwickelt wurde, mit Beiträgen von anderen Leuten (siehe die Datei @file{nix/AUTHORS} in Guix). Nix hat für die funktionale Paketverwaltung die Pionierarbeit geleistet und noch nie dagewesene Funktionalitäten vorangetrieben wie transaktionsbasierte Paketaktualisierungen und die Rücksetzbarkeit selbiger, eigene Paketprofile für jeden Nutzer und referenziell transparente Erstellungsprozesse. Ohne diese Arbeit gäbe es Guix nicht."
 
 #. type: Plain text
-#: doc/guix.texi:28563
+#: doc/guix.texi:32831
 msgid "The Nix-based software distributions, Nixpkgs and NixOS, have also been an inspiration for Guix."
 msgstr "Die Nix-basierten Software-Distributionen Nixpkgs und NixOS waren auch eine Inspiration für Guix."
 
 #. type: Plain text
-#: doc/guix.texi:28569
+#: doc/guix.texi:32837
 msgid "GNU@tie{}Guix itself is a collective work with contributions from a number of people.  See the @file{AUTHORS} file in Guix for more information on these fine people.  The @file{THANKS} file lists people who have helped by reporting bugs, taking care of the infrastructure, providing artwork and themes, making suggestions, and more---thank you!"
 msgstr "GNU@tie{}Guix ist selbst das Produkt kollektiver Arbeit mit Beiträgen durch eine Vielzahl von Leuten. Siehe die Datei @file{AUTHORS} in Guix für mehr Informationen, wer diese wunderbaren Menschen sind. In der Datei @file{THANKS} finden Sie eine Liste der Leute, die uns geholfen haben, indem Sie Fehler gemeldet, sich um unsere Infrastruktur gekümmert, künstlerische Arbeit und schön gestaltete Themen beigesteuert, Vorschläge gemacht und noch vieles mehr getan haben — vielen Dank!"
 
 #. type: cindex
-#: doc/guix.texi:28574
+#: doc/guix.texi:32842
 #, no-wrap
 msgid "license, GNU Free Documentation License"
 msgstr "Lizenz, GNU-Lizenz für freie Dokumentation"
 
 #. type: include
-#: doc/guix.texi:28575
+#: doc/guix.texi:32843
 #, no-wrap
 msgid "fdl-1.3.texi"
 msgstr "fdl-1.3.texi"
 
+#~ msgid "[#:config-file] [#:data-directory ``/var/lib/postgresql/data''] @ [#:port 5432] [#:locale ``en_US.utf8''] [#:extension-packages '()] Return a service that runs @var{postgresql}, the PostgreSQL database server."
+#~ msgstr "[#:config-file] [#:data-directory \"/var/lib/postgresql/data\"] @ [#:port 5432] [#:locale \"en_US.utf8\"] [#:extension-packages '()] Liefert einen Dienst, der @var{postgresql}, den PostgreSQL-Datenbankserver, ausführt."
+
+#~ msgid "The PostgreSQL daemon loads its runtime configuration from @var{config-file}, creates a database cluster with @var{locale} as the default locale, stored in @var{data-directory}.  It then listens on @var{port}."
+#~ msgstr "Der PostgreSQL-Daemon lädt seine Laufzeitkonfiguration aus der bei @var{config-file} angegebenen Konfigurationsdatei, erzeugt einen Datenbankverbund („Cluster“) mit der angegebenen @var{locale} als voreingestellte Locale, gespeichert im bei @var{data-directory} angegebenen Verzeichnis. Er lauscht dann auf dem @var{port}."
+
+#~ msgid "Packages can be manipulated in arbitrary ways.  An example of a useful transformation is @dfn{input rewriting}, whereby the dependency tree of a package is rewritten by replacing specific inputs by others:"
+#~ msgstr "Pakete können auf beliebige Art verändert werden. Ein Beispiel für eine nützliche Veränderung ist das @dfn{Umschreiben von Eingaben}, womit der Abhängigkeitsbaum eines Pakets umgeschrieben wird, indem bestimmte Eingaben durch andere ersetzt werden:"
+
+#~ msgid "This section summarizes all the options available in @code{origin} declarations (@pxref{Defining Packages})."
+#~ msgstr "Dieser Abschnitt fasst alle Optionen zusammen, die in @code{origin}-Deklarationen zur Verfügung stehen (siehe @ref{Defining Packages})."
+
+#~ msgid "A procedure that handles the URI."
+#~ msgstr "Eine Prozedur, die die URI verwertet."
+
+#~ msgid "Examples include:"
+#~ msgstr "Beispiele sind unter anderem:"
+
+#~ msgid "@var{url-fetch} from @code{(guix download)}"
+#~ msgstr "@var{url-fetch} aus @code{(guix download)}"
+
+#~ msgid "download a file from the HTTP, HTTPS, or FTP URL specified in the @code{uri} field;"
+#~ msgstr "Herunterladen einer Datei von einer HTTP-, HTTPS- oder FTP-URL, die im @code{uri}-Feld angegeben wurde."
+
+#~ msgid "@var{git-fetch} from @code{(guix git-download)}"
+#~ msgstr "@var{git-fetch} aus @code{(guix git-download)}"
+
+#~ msgid "clone the Git version control repository, and check out the revision specified in the @code{uri} field as a @code{git-reference} object; a @code{git-reference} looks like this:"
+#~ msgstr "Das im @code{uri}-Feld spezifizierte Repository des Git-Versionskontrollsystems klonen und davon den im @code{uri}-Feld als ein @code{git-reference}-Objekt angegebenen Commit benutzen; eine @code{git-reference} sieht so aus:"
+
+#~ msgid "The list of phases used for a particular package can be changed with the @code{#:phases} parameter.  For instance, passing:"
+#~ msgstr "Die Liste der Phasen, die für ein bestimmtes Paket verwendet werden sollen, kann vom Parameter @code{#:phases} überschrieben werden. Zum Beispiel werden bei Übergabe von:"
+
+#~ msgid "#:phases (modify-phases %standard-phases (delete 'configure))\n"
+#~ msgstr "#:phases (modify-phases %standard-phases (delete 'configure))\n"
+
+#~ msgid "means that all the phases described above will be used, except the @code{configure} phase."
+#~ msgstr "alle oben beschriebenen Phasen benutzt außer der @code{configure}-Phase."
+
+#~ msgid "An identifier for ether configuration fields to refer to this key. IDs must be unique and must not be empty."
+#~ msgstr "Ein Identifikator, mit dem sich andere Konfigurationsfelder auf diesen Schlüssel beziehen können. IDs müssen eindeutig sein und dürfen @emph{nicht} leer sein."
+
+#~ msgid "@code{extra-options} (default: @code{'()\"})"
+#~ msgstr "@code{extra-options} (Vorgabe: @code{'()})"
+
+#~ msgid "Note that, currently, the differing build results are not kept around, so you will have to manually investigate in case of an error---e.g., by stashing one of the build results with @code{guix archive --export} (@pxref{Invoking guix archive}), then rebuilding, and finally comparing the two results."
+#~ msgstr "Beachten Sie, dass die sich unterscheidenden Erstellungsergebnisse nicht erhalten bleiben, so dass Sie eventuelle Fehler manuell untersuchen müssen, z.B.@: indem Sie eines oder mehrere der Erstellungsergebnisse @code{guix archive --export} auslagern (siehe @ref{Invoking guix archive}), dann neu erstellen und letztlich die beiden Erstellungsergebnisse vergleichen."
+
+#~ msgid "Virtualization services"
+#~ msgstr "Virtualisierungsdienste"
+
+#~ msgid ""
+#~ "gpg: Signature made Fri 27 Dec 2019 01:27:41 PM CET\n"
+#~ "gpg:                using RSA key 3CE464558A84FDC69DB40CFB090B11993D9AEBB5\n"
+#~ "@dots{}\n"
+#~ "gpg: Signature made Fri 27 Dec 2019 01:25:22 PM CET\n"
+#~ "gpg:                using RSA key 3CE464558A84FDC69DB40CFB090B11993D9AEBB5\n"
+#~ "@dots{}\n"
+#~ msgstr ""
+#~ "gpg: Signatur vom Fr 27 Dez 2019 13:27:41 CET\n"
+#~ "gpg:                mittels RSA-Schlüssel 3CE464558A84FDC69DB40CFB090B11993D9AEBB5\n"
+#~ "…\n"
+#~ "gpg: Signatur vom Fr 27 Dez 2019 13:25:22 CET\n"
+#~ "gpg:                mittels RSA-Schlüssel 3CE464558A84FDC69DB40CFB090B11993D9AEBB5\n"
+#~ "…\n"
+
+#~ msgid ""
+#~ "(operating-system\n"
+#~ " ;; @dots{}\n"
+#~ " (services\n"
+#~ " (modify-services %desktop-services\n"
+#~ "   (udev-service-type config =>\n"
+#~ "     (udev-configuration (inherit config)\n"
+#~ "      (rules (append (udev-configuration-rules config)\n"
+#~ "                     (list %example-udev-rule))))))))\n"
+#~ msgstr ""
+#~ "(operating-system\n"
+#~ " ;; …\n"
+#~ " (services\n"
+#~ " (modify-services %desktop-services\n"
+#~ "   (udev-service-type config =>\n"
+#~ "     (udev-configuration (inherit config)\n"
+#~ "      (rules (append (udev-configuration-rules config)\n"
+#~ "                     (list %beispiel-udev-rule))))))))\n"
+
+#~ msgid ""
+#~ "  (groups (cons (user-group (system? #t) (name \"adbusers\"))\n"
+#~ "                %base-groups))\n"
+#~ "\n"
+#~ msgstr ""
+#~ "  (groups (cons (user-group (system? #t) (name \"adbusers\"))\n"
+#~ "                %base-groups))\n"
+#~ "\n"
+
+#~ msgid ""
+#~ "  (services\n"
+#~ "   (modify-services %desktop-services\n"
+#~ "     (udev-service-type\n"
+#~ "      config =>\n"
+#~ "      (udev-configuration (inherit config)\n"
+#~ "                          (rules (cons android-udev-rules\n"
+#~ "                                       (udev-configuration-rules config))))))))\n"
+#~ msgstr ""
+#~ "  (services\n"
+#~ "   (modify-services %desktop-services\n"
+#~ "     (udev-service-type\n"
+#~ "      config =>\n"
+#~ "      (udev-configuration (inherit config)\n"
+#~ "                          (rules (cons android-udev-rules\n"
+#~ "                                       (udev-configuration-rules config))))))))\n"
+
+#~ msgid "You can specify the root file system type by using the @option{--file-system-type} option.  It defaults to @code{ext4}."
+#~ msgstr "Sie können den Dateisystemtyp für das Wurzeldateisystem mit der Befehlszeilenoption @option{--file-system-type} festlegen. Vorgegeben ist, @code{ext4} zu verwenden."
+
+#~ msgid "How do you ensure that you obtained a genuine copy of the repository? Guix itself provides a tool to @dfn{authenticate} your checkout, but you must first make sure this tool is genuine in order to ``bootstrap'' the trust chain.  To do that, run:"
+#~ msgstr "Wie stellen Sie sicher, dass Sie eine unverfälschte Kopie des Repositorys heruntergeladen haben? Guix liefert ein Werkzeug mit, mit dem Sie Ihr Checkout @dfn{authentifizieren} können, aber Sie müssen vorher sicherstellen, dass dieses Werkzeug überhaupt unverfälscht ist, wenn Sie Ihre Vertrauenskette („Trust Chain“) bootstrappen wollen. Führen Sie dazu dies aus:"
+
+#~ msgid "git verify-commit `git log --format=%H build-aux/git-authenticate.scm`\n"
+#~ msgstr "git verify-commit `git log --format=%H build-aux/git-authenticate.scm`\n"
+
+#~ msgid "The output must look something like:"
+#~ msgstr "Die Ausgabe sollte etwa so aussehen:"
+
+#~ msgid "... meaning that changes to this file are all signed with key @code{3CE464558A84FDC69DB40CFB090B11993D9AEBB5} (you may need to fetch this key from a key server, if you have not done it yet)."
+#~ msgstr "Das bedeutet, dass Änderungen an dieser Datei alle mit dem Schlüssel @code{3CE464558A84FDC69DB40CFB090B11993D9AEBB5} signiert wurden (eventuell müssen Sie diesen Schlüssel erst von einem Server beziehen, wenn Sie es noch nicht getan haben)."
+
+#~ msgid "Fiddling with Guix interactively."
+#~ msgstr "Interaktiv an Guix herumbasteln."
+
+#~ msgid "Produce verbose output, writing build logs to the standard error output."
+#~ msgstr "Ausführliche Informationen ausgeben und Erstellungsprotokolle auf der Standardfehlerausgabe ausgeben."
+
+#~ msgid "A bytevector containing the SHA-256 hash of the source.  Typically the @code{base32} form is used here to generate the bytevector from a base-32 string."
+#~ msgstr "Ein Bytevektor, der den SHA-256-Hash der Quelldateien enthält. Typischerweise wird hier mit der @code{base32}-Form der Bytevektor aus einer Base-32-Zeichenkette generiert."
+
+#~ msgid "Here we show how the default @var{udev-service} can be extended with it."
+#~ msgstr "Hier zeigen wir, wie man den vorgegebenen @var{udev-service} um sie erweitern kann."
+
+#~ msgid ""
+#~ "  ;; @dots{}\n"
+#~ "\n"
+#~ msgstr ""
+#~ "  ;; …\n"
+#~ "\n"
+
+#~ msgid "Mandatory email used for registration, recovery contact, and important account notifications."
+#~ msgstr "Die E-Mail-Adresse, die für die Registrierung, als Kontaktadresse bei der Wiederherstellung und für wichtige Kontenbenachrichtigungen angegeben werden @emph{muss}."
+
+#~ msgid "The service type for the TLP tool.  Its value should be a valid TLP configuration (see below).  To use the default settings, simply write:"
+#~ msgstr "Der Diensttyp für das TLP-Werkzeug. Sein Wert sollte eine gültige TLP-Konfiguration sein (siehe unten). Um die Vorgabeeinstellungen zu verwenden, schreiben Sie einfach:"
+
+#~ msgid "By default TLP does not need much configuration but most TLP parameters can be tweaked using @code{tlp-configuration}."
+#~ msgstr "Um die Vorgaben für TLP zu benutzen, müssen Sie also nur wenig in die Konfiguration schreiben, aber Sie können die meisten TLP-Parameter über die @code{tlp-configuration} anpassen."
+
+#~ msgid "Data type representing the configuration for @code{git-http-service}."
+#~ msgstr "Datentyp, der die Konfiguration für @code{git-http-service} repräsentiert."
+
+#~ msgid "For @code{i686-linux} and @code{x86_64-linux} the Guix bootstrap process is more elaborate, @pxref{Reduced Binary Seed Bootstrap}."
+#~ msgstr "Bei @code{i686-linux} und @code{x86_64-linux} ist das Bootstrapping von Guix schon ausgereifter, siehe @ref{Reduced Binary Seed Bootstrap}."
+
+#~ msgid "The Reduced Binary Seed bootstrap removes the most critical tools---from a trust perspective---from the bootstrap binaries: GCC, Binutils and the GNU C Library are replaced by: @code{bootstrap-mescc-tools} (a tiny assembler and linker) and @code{bootstrap-mes} (a small Scheme Interpreter and a C compiler written in Scheme and the Mes C Library, built for TinyCC and for GCC).  Using these new binary seeds and a new set of packages@footnote{nyacc-boot, mes-boot, tcc-boot0, tcc-boot, make-mesboot0, diffutils-mesboot, binutils-mesboot0, gcc-core-mesboot, mesboot-headers, glibc-mesboot0, gcc-mesboot0, binutils-mesboot, make-mesboot, gcc-mesboot1, gcc-mesboot1-wrapper, glibc-headers-mesboot, glibc-mesboot, gcc-mesboot, and gcc-mesboot-wrapper.  } the ``missing'' Binutils, GCC, and the GNU C Library are built from source.  From here on the more traditional bootstrap process resumes.  This approach has reduced the bootstrap binaries in size to about 130MB.  Work is ongoing to reduce this further.  If you are interested, join us on @code{#bootstrappable} on the Freenode IRC network."
+#~ msgstr "Beim Bootstrapping mit kleinerem Seed gehören die kritischsten Werkzeuge — was Vertrauenswürdigkeit angeht — nicht mehr zu den Bootstrapping-Binärdateien: An Stelle von GCC, Binutils und der GNU-C-Bibliothek bleiben nur @code{bootstrap-mescc-tools} (ein winziger Assembler und Binder), @code{bootstrap-mes} (ein kleiner Scheme-Interpretierer sowie ein C-Compiler, der in Scheme geschrieben wurde, und die Mes-C-Bibliothek, mit der TinyCC und GCC erstellt werden können). Mit Hilfe dieser neuen Seed-Binärdateien und einer neuen Menge von Paketen@footnote{nyacc-boot, mes-boot, tcc-boot0, tcc-boot, make-mesboot0, diffutils-mesboot, binutils-mesboot0, gcc-core-mesboot, mesboot-headers, glibc-mesboot0, gcc-mesboot0, binutils-mesboot, make-mesboot, gcc-mesboot1, gcc-mesboot1-wrapper, glibc-headers-mesboot, glibc-mesboot, gcc-mesboot und gcc-mesboot-wrapper.} können die „fehlenden“ Binutils, GCC und die GNU-C-Bibliothek aus ihrem Quellcode heraus erstellt werden. Ab hier geht es weiter mit dem traditionelleren Bootstrapping-Vorgang. Mit diesem Ansatz konnten wir die Bootstrap-Binärdateien auf eine Größe von ungefähr 130MB verkleinern. Wir arbeiten daran, sie noch weiter zu verkleinern. Wenn Sie daran Interesse haben, dann machen Sie bei uns mit auf @code{#bootstrappable} auf dem Freenode-IRC-Netzwerk."
+
 #~ msgid "After installing fonts you may have to refresh the font cache to use them in applications.  The same applies when applications installed via Guix do not seem to find fonts.  To force rebuilding of the font cache run @code{fc-cache -rv}.  The @code{fc-cache} command is provided by the @code{fontconfig} package."
 #~ msgstr "Nach der Installation der Schriftarten müssen Sie unter Umständen den Schriftarten-Zwischenspeicher (Font-Cache) erneuern, um diese in Anwendungen benutzen zu können. Gleiches gilt, wenn mit Guix installierte Anwendungen anscheinend keine Schriftarten finden können. Um das Erneuern des Font-Caches zu erzwingen, führen Sie @code{fc-cache -rv} aus. Der Befehl @code{fc-cache} wird vom Paket @code{fontconfig} angeboten."
 
@@ -52509,20 +60213,6 @@ msgstr "fdl-1.3.texi"
 #~ msgid "The example below defines an operating system that provides log rotation with the default settings, for commonly encountered log files."
 #~ msgstr "Im folgenden Beispiel wird ein Betriebssystem definiert, das Log-Rotation mit den Vorgabeeinstellungen für übliche Log-Dateien durchführt."
 
-#~ msgid ""
-#~ "(operating-system\n"
-#~ "  ;; @dots{}\n"
-#~ "  (services (cons (service rottlog-service-type)\n"
-#~ "                  %base-services)))\n"
-#~ msgstr ""
-#~ "(operating-system\n"
-#~ "  ;; …\n"
-#~ "  (services (cons (service rottlog-service-type)\n"
-#~ "                  %base-services)))\n"
-
-#~ msgid "@code{nfs-version} (default: @code{#f})"
-#~ msgstr "@code{nfs-version} (Vorgabe: @code{#f})"
-
 #~ msgid "little-endian 64-bit ARMv8-A processors, Linux-Libre kernel.  This is currently in an experimental stage, with limited support.  @xref{Contributing}, for how to help!"
 #~ msgstr "64-Bit-ARMv8-A-Prozessoren, little-endian, Linux-Libre als Kernel. Derzeit ist dies noch in der Erprobungsphase mit begrenzter Unterstützung. Unter @ref{Contributing} steht, wie Sie dabei helfen können!"
 
@@ -52544,9 +60234,6 @@ msgstr "fdl-1.3.texi"
 #~ msgid "In the VM console, quickly press the @kbd{F12} key to enter the boot menu.  Then press the @kbd{2} key and the @kbd{RET} key to validate your selection."
 #~ msgstr "Drücken Sie auf der Konsole der virtuellen Maschine schnell die @kbd{F12}-Taste, um ins Boot-Menü zu gelangen. Drücken Sie dort erst die Taste @kbd{2} und dann die Eingabetaste @kbd{RET}, um Ihre Auswahl zu bestätigen."
 
-#~ msgid "hydra"
-#~ msgstr "Hydra"
-
 #~ msgid "Similarly, the @file{hydra.gnu.org.pub} file contains the public key of an independent build farm also run by the project, reachable at @indicateurl{https://mirror.hydra.gnu.org}."
 #~ msgstr "Genauso enthält die Datei @file{hydra.gnu.org.pub} den öffentlichen Schlüssel für eine unabhängige Build-Farm, die auch vom Guix-Projekt betrieben wird. Sie ist unter @indicateurl{https://mirror.hydra.gnu.org} erreichbar ist."
 
@@ -52582,18 +60269,12 @@ msgstr "fdl-1.3.texi"
 #~ msgid "This is either @code{#f}, or a string denoting mount options."
 #~ msgstr "Entweder @code{#f} oder eine Zeichenkette mit Einbinde-Optionen („mount options“)."
 
-#~ msgid "-m 256"
-#~ msgstr "-m 256"
-
 #~ msgid "As of version @value{VERSION}, Guix System is not production-ready.  It may contain bugs and lack important features.  Thus, if you are looking for a stable production system that respects your freedom as a computer user, a good solution at this point is to consider @url{http://www.gnu.org/distros/free-distros.html, one of the more established GNU/Linux distributions}.  We hope you can soon switch to the Guix System without fear, of course.  In the meantime, you can also keep using your distribution and try out the package manager on top of it (@pxref{Installation})."
 #~ msgstr "Die Version @value{VERSION} von Guix System ist nicht für den Einsatz in einer Produktionsumgebung geeignet. Sie kann Fehler aufweisen und wichtige Funktionalitäten können fehlen. Wenn Sie also ein stabiles Produktionssystem aufsetzen wollen, dass Ihre Freiheit als Nutzer respektiert, sollten Sie vielleicht @url{http://www.gnu.org/distros/free-distros.html, eine der bewährteren GNU/Linux-Distributionen} auswählen. Wir hoffen natürlich, dass Sie bald ohne Furcht auf Guix System umsteigen können. Bis dahin können Sie auch das Guix-Paketverwaltungswerkzeug auf Ihrer bestehenden Distribution verwenden (siehe @ref{Installation})."
 
 #~ msgid "The installation process does not include a graphical user interface and requires familiarity with GNU/Linux (see the following subsections to get a feel of what that means.)"
 #~ msgstr "Für den Installationsvorgang wird keine grafische Oberfläche mitgeliefert und er erfordert Erfahrung mit GNU/Linux (siehe die folgenden Unterabschnitte, um ein Gefühl dafür zu bekommen, was wir damit meinen)."
 
-#~ msgid "GuixSD"
-#~ msgstr "GuixSD"
-
 #~ msgid "later, including 2.2.x;"
 #~ msgstr "neuer, einschließlich 2.2.x,"
 
@@ -52603,21 +60284,12 @@ msgstr "fdl-1.3.texi"
 #~ msgid "GuixSD itself is currently only available on @code{i686} and @code{x86_64}."
 #~ msgstr "GuixSD selbst ist derzeit nur für @code{i686} und @code{x86_64} verfügbar."
 
-#~ msgid "(cons* (avahi-service) (lsh-service) %base-services)\n"
-#~ msgstr "(cons* (avahi-service) (lsh-service) %base-services)\n"
-
 #~ msgid "Return a service to load console keymaps from @var{files} using @command{loadkeys} command.  Most likely, you want to load some default keymap, which can be done like this:"
 #~ msgstr "Liefert einen Dienst, um Tastenzuordnungen („Keymaps“) für die Konsole aus den @var{Dateien} laden zu können. Dazu wird der Befehl @command{loadkeys} aufgerufen. Wahrscheinlich möchten Sie irgendeine vorgefertigte Keymap laden, etwa so:"
 
-#~ msgid "(console-keymap-service \"dvorak\")\n"
-#~ msgstr "(console-keymap-service \"dvorak\")\n"
-
 #~ msgid "Or, for example, for a Swedish keyboard, you may need to combine the following keymaps:"
 #~ msgstr "Oder um zum Beispiel eine schwedische Tastaturbelegung zu bekommen, könnten Sie die folgenden Keymaps kombinieren müssen:"
 
-#~ msgid "(console-keymap-service \"se-lat6\" \"se-fi-lat6\")\n"
-#~ msgstr "(console-keymap-service \"se-lat6\" \"se-fi-lat6\")\n"
-
 #~ msgid "Also you can specify a full file name (or file names) of your keymap(s).  See @code{man loadkeys} for details."
 #~ msgstr "Sie können alternativ auch den oder die vollständigen Dateinamen Ihrer Keymap(s) angeben. Siehe @code{man loadkeys} für Details."
 
@@ -52633,9 +60305,6 @@ msgstr "fdl-1.3.texi"
 #~ msgid "The @code{guix} package must remain available in @code{root}'s profile, or it would become subject to garbage collection---in which case you would find yourself badly handicapped by the lack of the @command{guix} command.  In other words, do not remove @code{guix} by running @code{guix package -r guix}."
 #~ msgstr "Das @code{guix}-Paket muss im Profil von @code{root} installiert bleiben, damit es nicht vom Müllsammler geholt wird, denn ohne den @command{guix}-Befehl wären Sie lahmgelegt. Anders gesagt, entfernen Sie @code{guix} @emph{nicht} mit @code{guix package -r guix}."
 
-#~ msgid "The file name of the qcow2 image."
-#~ msgstr "Der Dateiname des qcow2-Abbilds."
-
 #~ msgid "More than 8,500 packages are available, but you might occasionally find that a useful package is missing."
 #~ msgstr "Über 8.500 Pakete stehen zur Verfügung, aber ab und zu könnte ein nützliches Paket noch fehlen."
 
@@ -52668,3 +60337,6 @@ msgstr "fdl-1.3.texi"
 
 #~ msgid "Specifies a command that will be invoked for authenticating users accessing repositories.  Templates for filter programs are part of the cgit package."
 #~ msgstr "Gibt einen Befehl an, der aufgerufen wird, um Benutzer zu authentifizieren, die auf Repositorys zugreifen. Vorlagen, wie Filterprogramme aussehen können, sind Teil des cgit-Pakets."
+
+#~ msgid "The given GNU/Hurd operating system configuration is cross-compiled."
+#~ msgstr "Die angegebene GNU/Hurd-Betriebssystemkonfiguration wird cross-kompiliert."
diff --git a/po/doc/guix-manual.es.po b/po/doc/guix-manual.es.po
index 33b53db4ce..4e15b2942e 100644
--- a/po/doc/guix-manual.es.po
+++ b/po/doc/guix-manual.es.po
@@ -1,8 +1,11 @@
-# Spanish translations for guix package
+# Spanish translations for Guix manual
 # Copyright (C) 2019, 2020 the authors of Guix (msgids)
 # This file is distributed under the same license as the guix package.
+# Note: The contents of this file are licensed under GNU FDL v1.3.
 # Miguel Ángel Arruga Vivas <rosen644835@gmail.com>, 2019, 2020.
 # ######################################################################
+#  * archivo, no fichero.
+#  * equipo, no ordenador.
 #
 #  * MAC (mandatory access control): ¿control de acceso mandatorio?
 #    Me suena fatal.
@@ -18,8 +21,8 @@
 #  * commit: revisión
 #  * copy-on-write: Copia-durante-escritura
 #  * graft: injerto
-#  * home (directory): ¿¿??
-#  * host: ¿dirección? A veces máquina.
+#  * home (directory): diectorio de la usuaria
+#  * host: ¿dirección? A veces (nombre de) máquina.
 #  * keybox: Se ha dejado igual, comprobar si es el nombre del formato o
 #    un nombre normal.
 #  * keytab: (De Kerberos 5) Se ha dejado igual ya que no lo conozco,
@@ -28,29 +31,26 @@
 #  * maintainer: responsable
 #  * manifest: manifiesto
 #  * mapped device: ¿dispositivo traducido?
-#  * override: Anular, forzar.
-#  * shell: Se ha dejado igual.
+#  * override: Anular, forzar, modificar...
+#  * proxy: pasarela, redirección...
+#  * shell: intérprete (de órdenes)
 #  * realm: Dominio (¿ámbito?)
 #  * upstream: ¿proveedoras?
 #  * split DNS????
 #  * Seat manager -> gestor de asientos???
 #
 # ######################################################################
-# XXX: ¿Cliente? En la mayoría de los casos no lo veo si no es masculino
-# (proceso, ejecutable, guión, programa, hilo...) pero no tengo claro si
-# existe un sesgo puesto que me rechina pensar que, bajo un punto de
-# vista no técnico puede interpretarse como la persona que ejecuta ese
-# proceso en vez del proceso en sí.
+# XXX: Cluster????
 #
 # ######################################################################
 # TODO: Comprobar los enlaces tipo @pxref{G-Expressions, file-like objects}
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: guix-manual 1.1.0-pre2\n"
-"Report-Msgid-Bugs-To: ludo@gnu.org\n"
-"POT-Creation-Date: 2020-04-09 18:27+0200\n"
-"PO-Revision-Date: 2020-04-11 11:54+0200\n"
+"Project-Id-Version: guix-manual 1.2.0-pre3\n"
+"Report-Msgid-Bugs-To: bug-guix@gnu.org\n"
+"POT-Creation-Date: 2020-11-05 17:27+0100\n"
+"PO-Revision-Date: 2020-11-05 20:53+0100\n"
 "Last-Translator: Miguel Ángel Arruga Vivas <rosen644835@gmail.com>\n"
 "Language-Team: Spanish <es@tp.org.es>\n"
 "Language: es\n"
@@ -60,11 +60,11 @@ msgstr ""
 "X-Bugs: Report translation errors to the Language-Team address.\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#. #-#-#-#-#  contributing.pot (guix 1.1.0-pre2)  #-#-#-#-#
+#. #-#-#-#-#  contributing.pot (guix manual 1.2.0-pre3)  #-#-#-#-#
 #. type: chapter
-#. #-#-#-#-#  guix.pot (guix 1.1.0-pre2)  #-#-#-#-#
+#. #-#-#-#-#  guix.pot (guix manual 1.2.0-pre3)  #-#-#-#-#
 #. type: menuentry
-#: doc/contributing.texi:1 doc/contributing.texi:2 doc/guix.texi:155
+#: doc/contributing.texi:1 doc/contributing.texi:2 doc/guix.texi:162
 #, no-wrap
 msgid "Contributing"
 msgstr "Contribuir"
@@ -72,7 +72,7 @@ msgstr "Contribuir"
 #. type: Plain text
 #: doc/contributing.texi:9
 msgid "This project is a cooperative effort, and we need your help to make it grow! Please get in touch with us on @email{guix-devel@@gnu.org} and @code{#guix} on the Freenode IRC network.  We welcome ideas, bug reports, patches, and anything that may be helpful to the project.  We particularly welcome help on packaging (@pxref{Packaging Guidelines})."
-msgstr "Este proyecto es un esfuerzo colaborativo, y ¡necesitamos su ayuda para que crezca! Por favor, contacte con nosotras en @email{guix-devel@@gnu.org} y en @code{#guix} en la red IRC Freenode. Estamos abiertas a ideas, informes de errores, parches y cualquier cosa que pueda ser de ayuda para el proyecto. Especialmente se agradece ayuda en empaquetamiento (@pxref{Packaging Guidelines})."
+msgstr "Este proyecto es un esfuerzo colaborativo, y ¡necesitamos su ayuda para que crezca! Por favor, contacte con nosotras en @email{guix-devel@@gnu.org} y en @code{#guix} en la red IRC Freenode. Estamos abiertas a ideas, informes de errores, parches y cualquier cosa que pueda ser de ayuda para el proyecto. Especialmente se agradece ayuda con la creación de paquetes (@pxref{Packaging Guidelines})."
 
 #. type: cindex
 #: doc/contributing.texi:10
@@ -89,7 +89,7 @@ msgstr "acuerdo de contribución"
 #. type: Plain text
 #: doc/contributing.texi:17
 msgid "We want to provide a warm, friendly, and harassment-free environment, so that anyone can contribute to the best of their abilities.  To this end our project uses a ``Contributor Covenant'', which was adapted from @url{https://contributor-covenant.org/}.  You can find a local version in the @file{CODE-OF-CONDUCT} file in the source tree."
-msgstr "Queremos proporcionar un entorno cálido, amistoso y libre de acoso, para que cualquiera pueda contribuir al máximo de sus capacidades. Para este fin nuestro proyecto usa un ``Acuerdo de Contribución'', que fue adaptado de @url{https://contributor-coventant.org}. Se puede encontrar una versión local en el fichero @file{CODE-OF-CONDUCT} del árbol de fuentes."
+msgstr "Queremos proporcionar un entorno cálido, amistoso y libre de acoso, para que cualquiera pueda contribuir al máximo de sus capacidades. Para este fin nuestro proyecto usa un ``Acuerdo de Contribución'', que fue adaptado de @url{https://contributor-coventant.org}. Se puede encontrar una versión local en el archivo @file{CODE-OF-CONDUCT} del árbol de fuentes."
 
 #. type: Plain text
 #: doc/contributing.texi:21
@@ -97,327 +97,346 @@ msgid "Contributors are not required to use their legal name in patches and on-l
 msgstr "Las contribuidoras no están obligadas a usar su nombre legal en los parches ni en la comunicación on-line; pueden usar cualquier nombre o seudónimo de su elección."
 
 #. type: section
-#: doc/contributing.texi:31 doc/contributing.texi:33 doc/contributing.texi:34
+#: doc/contributing.texi:32 doc/contributing.texi:34 doc/contributing.texi:35
 #, no-wrap
 msgid "Building from Git"
 msgstr "Construcción desde Git"
 
 #. type: menuentry
-#: doc/contributing.texi:31
+#: doc/contributing.texi:32
 msgid "The latest and greatest."
 msgstr "Lo último y mejor."
 
 #. type: section
-#: doc/contributing.texi:31 doc/contributing.texi:150
-#: doc/contributing.texi:151
+#: doc/contributing.texi:32 doc/contributing.texi:160
+#: doc/contributing.texi:161
 #, no-wrap
 msgid "Running Guix Before It Is Installed"
 msgstr "Ejecución de Guix antes de estar instalado"
 
 #. type: menuentry
-#: doc/contributing.texi:31
+#: doc/contributing.texi:32
 msgid "Hacker tricks."
 msgstr "Trucos de hacker."
 
 #. type: section
-#: doc/contributing.texi:31 doc/contributing.texi:214
-#: doc/contributing.texi:215
+#: doc/contributing.texi:32 doc/contributing.texi:233
+#: doc/contributing.texi:234
 #, no-wrap
 msgid "The Perfect Setup"
 msgstr "La configuración perfecta"
 
 #. type: menuentry
-#: doc/contributing.texi:31
+#: doc/contributing.texi:32
 msgid "The right tools."
 msgstr "Las herramientas adecuadas."
 
 #. type: section
-#: doc/contributing.texi:31 doc/contributing.texi:305
-#: doc/contributing.texi:306
+#: doc/contributing.texi:32 doc/contributing.texi:324
+#: doc/contributing.texi:325
 #, no-wrap
 msgid "Packaging Guidelines"
-msgstr "Guías de empaquetamiento"
+msgstr "Pautas de empaquetamiento"
 
 #. type: menuentry
-#: doc/contributing.texi:31
+#: doc/contributing.texi:32
 msgid "Growing the distribution."
 msgstr "Crecimiento de la distribución."
 
 #. type: section
-#: doc/contributing.texi:31 doc/contributing.texi:789
-#: doc/contributing.texi:790
+#: doc/contributing.texi:32 doc/contributing.texi:823
+#: doc/contributing.texi:824
 #, no-wrap
 msgid "Coding Style"
 msgstr "Estilo de codificación"
 
 #. type: menuentry
-#: doc/contributing.texi:31
+#: doc/contributing.texi:32
 msgid "Hygiene of the contributor."
 msgstr "Higiene de la contribuidora."
 
 #. type: section
-#: doc/contributing.texi:31 doc/contributing.texi:887
-#: doc/contributing.texi:888
+#: doc/contributing.texi:32 doc/contributing.texi:921
+#: doc/contributing.texi:922
 #, no-wrap
 msgid "Submitting Patches"
 msgstr "Envío de parches"
 
 #. type: menuentry
-#: doc/contributing.texi:31
+#: doc/contributing.texi:32
 msgid "Share your work."
 msgstr "Comparta su trabajo."
 
 # FUZZY
 #. type: section
-#: doc/contributing.texi:31 doc/contributing.texi:1111
-#: doc/contributing.texi:1112
+#: doc/contributing.texi:32 doc/contributing.texi:1146
+#: doc/contributing.texi:1147
 #, no-wrap
 msgid "Tracking Bugs and Patches"
 msgstr "Seguimiento de errores y parches"
 
 #. type: menuentry
-#: doc/contributing.texi:31
+#: doc/contributing.texi:32
 msgid "Using Debbugs."
 msgstr "Uso de Debbugs."
 
 #. type: section
-#: doc/contributing.texi:31 doc/contributing.texi:1160
-#: doc/contributing.texi:1161
+#: doc/contributing.texi:32 doc/contributing.texi:1197
+#: doc/contributing.texi:1198
 #, no-wrap
 msgid "Commit Access"
 msgstr "Acceso al repositorio"
 
 #. type: menuentry
-#: doc/contributing.texi:31
+#: doc/contributing.texi:32
 msgid "Pushing to the official repository."
 msgstr "Subida de revisiones al repositorio oficial."
 
+#. type: section
+#: doc/contributing.texi:32 doc/contributing.texi:1338
+#: doc/contributing.texi:1339
+#, no-wrap
+msgid "Updating the Guix Package"
+msgstr "Actualizar el paquete Guix"
+
+#. type: menuentry
+#: doc/contributing.texi:32
+msgid "Updating the Guix package definition."
+msgstr "Actualización de la definición del paquete Guix."
+
 # FUZZY
 #. type: Plain text
-#: doc/contributing.texi:38
+#: doc/contributing.texi:39
 msgid "If you want to hack Guix itself, it is recommended to use the latest version from the Git repository:"
 msgstr "Si quiere picar en el mismo Guix se recomienda usar la última versión del repositorio Git:"
 
 #. type: example
-#: doc/contributing.texi:41
+#: doc/contributing.texi:42
 #, no-wrap
 msgid "git clone https://git.savannah.gnu.org/git/guix.git\n"
 msgstr "git clone https://git.savannah.gnu.org/git/guix.git\n"
 
 # FUZZY
 #. type: cindex
-#: doc/contributing.texi:43
+#: doc/contributing.texi:44
 #, no-wrap
 msgid "authentication, of a Guix checkout"
 msgstr "identificación, de una copia de Guix"
 
+# FUZZY
 #. type: Plain text
-#: doc/contributing.texi:48
-msgid "How do you ensure that you obtained a genuine copy of the repository? Guix itself provides a tool to @dfn{authenticate} your checkout, but you must first make sure this tool is genuine in order to ``bootstrap'' the trust chain.  To do that, run:"
-msgstr "¿Cómo puede asegurarse de haber obtenido una copia genuina del repositorio? Guix proporciona una herramienta @dfn{identificar} su copia, pero primero debe comprobar que esta herramienta es genuina para iniciar la cadena de confianza. Para hacerlo, ejecute:"
-
-#. type: example
-#: doc/contributing.texi:52
-#, no-wrap
-msgid "git verify-commit `git log --format=%H build-aux/git-authenticate.scm`\n"
-msgstr "git verify-commit `git log --format=%H build-aux/git-authenticate.scm`\n"
-
-#. type: Plain text
-#: doc/contributing.texi:55
-msgid "The output must look something like:"
-msgstr "La salida debe ser parecida a esta:"
+#: doc/contributing.texi:49
+msgid "How do you ensure that you obtained a genuine copy of the repository? To do that, run @command{guix git authenticate}, passing it the commit and OpenPGP fingerprint of the @dfn{channel introduction} (@pxref{Invoking guix git authenticate}):"
+msgstr "¿Cómo se puede asegurar de que ha obtenido una copia auténtica del repositorio? Para ello ejecute @command{guix git authenticate}, proporcionando la revisión y la huella de OpenPGP de la @dfn{presentación del canal} (@pxref{Invoking guix git authenticate}):"
 
 #. type: example
-#: doc/contributing.texi:63
+#: doc/contributing.texi:56
 #, no-wrap
 msgid ""
-"gpg: Signature made Fri 27 Dec 2019 01:27:41 PM CET\n"
-"gpg:                using RSA key 3CE464558A84FDC69DB40CFB090B11993D9AEBB5\n"
-"@dots{}\n"
-"gpg: Signature made Fri 27 Dec 2019 01:25:22 PM CET\n"
-"gpg:                using RSA key 3CE464558A84FDC69DB40CFB090B11993D9AEBB5\n"
-"@dots{}\n"
+"git fetch origin keyring:keyring\n"
+"guix git authenticate 9edb3f66fd807b096b48283debdcddccfea34bad \\\n"
+"  \"BBB0 2DDF 2CEA F6A8 0D1D  E643 A2A0 6DF2 A33A 54FA\"\n"
 msgstr ""
-"gpg: Firmado el vie 27 dic 2019 01:27:41 CET\n"
-"gpg:                usando RSA clave 3CE464558A84FDC69DB40CFB090B11993D9AEBB5\n"
-"@dots{}\n"
-"gpg: Firmado el vie 27 dic 2019 01:25:22 CET\n"
-"gpg:                usando RSA clave 3CE464558A84FDC69DB40CFB090B11993D9AEBB5\n"
-"@dots{}\n"
+"git fetch origin keyring:keyring\n"
+"guix git authenticate 9edb3f66fd807b096b48283debdcddccfea34bad \\\n"
+"  \"BBB0 2DDF 2CEA F6A8 0D1D  E643 A2A0 6DF2 A33A 54FA\"\n"
 
 #. type: Plain text
-#: doc/contributing.texi:69
-msgid "... meaning that changes to this file are all signed with key @code{3CE464558A84FDC69DB40CFB090B11993D9AEBB5} (you may need to fetch this key from a key server, if you have not done it yet)."
-msgstr "... que significa que los cambios en este fichero están todos firmados con la clave @code{3CE464558A84FDC69DB40CFB090B11993D9AEBB5} (puede tener que obtener la clave de un servidor de claves, si no lo ha hecho todavía)."
+#: doc/contributing.texi:61
+msgid "This command completes with exit code zero on success; it prints an error message and exits with a non-zero code otherwise."
+msgstr "Esta orden termina con un código de salida cero cuando al finalizar correctamente; o imprime un mensaje de error y sale con un código de salida distinto a cero en otro caso."
 
+# FUZZY FUZZY FUZZY
+#
+# TODO (MAAV): Esta traducción es bastante libre, puesto que la
+# estructuración en inglés difiere bastante de la habitual en castellano
+# a mi modo de ver.  También he abandonado más la referencia al
+# lanzamiento inicial [de los binarios] (todavía debato internamente
+# esta traducción...) y he optado por el concepto más simbólico del
+# primer eslabón en la cadena de confianza.
 #. type: Plain text
-#: doc/contributing.texi:72
-msgid "From there on, you can authenticate all the commits included in your checkout by running:"
-msgstr "De aquí en adelante, puede identificar todos las revisiones incluidas en su copia ejecutando:"
-
-#. type: example
-#: doc/contributing.texi:75
-#, no-wrap
-msgid "make authenticate\n"
-msgstr "make authenticate\n"
+#: doc/contributing.texi:68
+msgid "As you can see, there is a chicken-and-egg problem: you first need to have Guix installed.  Typically you would install Guix System (@pxref{System Installation}) or Guix on top of another distro (@pxref{Binary Installation}); in either case, you would verify the OpenPGP signature on the installation medium.  This ``bootstraps'' the trust chain."
+msgstr "Como puede ver, nos encontramos ante el problema del huevo y la gallina: es necesario haber instalado Guix. Durante la instalación habitual del sistema Guix (@pxref{System Installation}) o Guix sobre otra distribución (@pxref{Binary Installation}) debería verificar la firma de OpenPGP del medio de instalación. Este paso es el primer eslabón de la cadena de confianza."
 
 #. type: Plain text
-#: doc/contributing.texi:78
-msgid "The first run takes a couple of minutes, but subsequent runs are faster."
-msgstr "La primera ejecución puede tardar varios minutos, pero las ejecuciones siguientes son más rápidas."
-
-#. type: quotation
-#: doc/contributing.texi:79 doc/contributing.texi:1207 doc/guix.texi:496
-#: doc/guix.texi:545 doc/guix.texi:1562 doc/guix.texi:1827 doc/guix.texi:2038
-#: doc/guix.texi:2259 doc/guix.texi:2454 doc/guix.texi:4265 doc/guix.texi:4481
-#: doc/guix.texi:4782 doc/guix.texi:5012 doc/guix.texi:5133 doc/guix.texi:5185
-#: doc/guix.texi:6839 doc/guix.texi:6909 doc/guix.texi:8642 doc/guix.texi:8654
-#: doc/guix.texi:10708 doc/guix.texi:11267 doc/guix.texi:11819
-#: doc/guix.texi:14564 doc/guix.texi:21036 doc/guix.texi:26359
-#: doc/guix.texi:26570 doc/guix.texi:26729 doc/guix.texi:26850
-#: doc/guix.texi:27032
-#, no-wrap
-msgid "Note"
-msgstr "Nota"
-
-#. type: quotation
-#: doc/contributing.texi:83
-msgid "You are advised to run @command{make authenticate} after every @command{git pull} invocation.  This ensures you keep receiving valid changes to the repository"
-msgstr "Se recomienda que ejecute @command{make authenticate} tras cada ejecución de @command{git pull}. Así se asegura de que está recibiendo cambios válidos del repositorio."
-
-#. type: Plain text
-#: doc/contributing.texi:89
+#: doc/contributing.texi:73
 msgid "The easiest way to set up a development environment for Guix is, of course, by using Guix! The following command starts a new shell where all the dependencies and appropriate environment variables are set up to hack on Guix:"
 msgstr "El modo más fácil de preparar un entorno de desarrollo para Guix es, por supuesto, ¡usando Guix! Las siguientes órdenes inician un nuevo intérprete donde todas las dependencias y las variables de entorno apropiadas están listas para picar código en Guix:"
 
 #. type: example
-#: doc/contributing.texi:92
+#: doc/contributing.texi:76
 #, no-wrap
 msgid "guix environment guix --pure\n"
 msgstr "guix environment guix --pure\n"
 
 #. type: Plain text
-#: doc/contributing.texi:95
+#: doc/contributing.texi:79
 msgid "@xref{Invoking guix environment}, for more information on that command."
 msgstr "@xref{Invoking guix environment}, para más información sobre dicha orden."
 
 #. type: Plain text
-#: doc/contributing.texi:99
+#: doc/contributing.texi:83
 msgid "If you are unable to use Guix when building Guix from a checkout, the following are the required packages in addition to those mentioned in the installation instructions (@pxref{Requirements})."
 msgstr "Si no puede usar Guix para construir Guix desde una copia de trabajo, son necesarios los paquetes siguientes además de los mencionados en las instrucciones de instalación (@pxref{Requirements})."
 
 #. type: item
-#: doc/contributing.texi:101
+#: doc/contributing.texi:85
 #, no-wrap
 msgid "@url{https://gnu.org/software/autoconf/, GNU Autoconf};"
 msgstr "@url{https://gnu.org/software/autoconf/, GNU Autoconf};"
 
 #. type: item
-#: doc/contributing.texi:102
+#: doc/contributing.texi:86
 #, no-wrap
 msgid "@url{https://gnu.org/software/automake/, GNU Automake};"
 msgstr "@url{https://gnu.org/software/automake/, GNU Automake};"
 
 #. type: item
-#: doc/contributing.texi:103
+#: doc/contributing.texi:87
 #, no-wrap
 msgid "@url{https://gnu.org/software/gettext/, GNU Gettext};"
 msgstr "@url{https://gnu.org/software/gettext/, GNU Gettext};"
 
 #. type: item
-#: doc/contributing.texi:104
+#: doc/contributing.texi:88
 #, no-wrap
 msgid "@url{https://gnu.org/software/texinfo/, GNU Texinfo};"
 msgstr "@url{https://gnu.org/software/texinfo/, GNU Texinfo};"
 
 #. type: item
-#: doc/contributing.texi:105
+#: doc/contributing.texi:89
 #, no-wrap
 msgid "@url{https://www.graphviz.org/, Graphviz};"
 msgstr "@url{https://www.graphviz.org/, Graphviz};"
 
 #. type: item
-#: doc/contributing.texi:106
+#: doc/contributing.texi:90
 #, no-wrap
 msgid "@url{https://www.gnu.org/software/help2man/, GNU Help2man (optional)}."
 msgstr "@url{https://www.gnu.org/software/help2man/, GNU Help2man (opcional)}."
 
 #. type: Plain text
-#: doc/contributing.texi:111
+#: doc/contributing.texi:95
 msgid "On Guix, extra dependencies can be added by instead running @command{guix environment} with @option{--ad-hoc}:"
 msgstr "En Guix se pueden añadir las dependencias opcionales ejecutando @command{guix environment} con @option{--ad-hoc}:"
 
 #. type: example
-#: doc/contributing.texi:114
+#: doc/contributing.texi:98
 #, no-wrap
 msgid "guix environment guix --pure --ad-hoc help2man git strace\n"
 msgstr "guix environment guix --pure --ad-hoc help2man git strace\n"
 
 #. type: Plain text
-#: doc/contributing.texi:118
+#: doc/contributing.texi:102
 msgid "Run @command{./bootstrap} to generate the build system infrastructure using Autoconf and Automake.  If you get an error like this one:"
 msgstr "Ejecute @command{./bootstrap} para generar la infraestructura del sistema de construcción usando Autoconf y Automake. Si obtiene un error como este:"
 
 #. type: example
-#: doc/contributing.texi:121
+#: doc/contributing.texi:105
 #, no-wrap
 msgid "configure.ac:46: error: possibly undefined macro: PKG_CHECK_MODULES\n"
 msgstr "configure.ac:46: error: possibly undefined macro: PKG_CHECK_MODULES\n"
 
 #. type: Plain text
-#: doc/contributing.texi:130
+#: doc/contributing.texi:114
 msgid "it probably means that Autoconf couldn’t find @file{pkg.m4}, which is provided by pkg-config.  Make sure that @file{pkg.m4} is available.  The same holds for the @file{guile.m4} set of macros provided by Guile.  For instance, if you installed Automake in @file{/usr/local}, it wouldn’t look for @file{.m4} files in @file{/usr/share}.  In that case, you have to invoke the following command:"
-msgstr "probablemente significa que Autoconf no pudo encontrar el fichero pkg.m4, que proporciona pkg-config. Asegúrese de que @file{pkg.m4} está disponible. Lo mismo aplica para el conjunto de macros @file{guile.m4} que proporciona Guile. Por ejemplo, si ha instalado Automake en @file{/usr/local}, no va a buscar ficheros @file{.m4} en @file{/usr/share}. En ese caso tiene que ejecutar la siguiente orden:"
+msgstr "probablemente significa que Autoconf no pudo encontrar el archivo pkg.m4, que proporciona pkg-config. Asegúrese de que @file{pkg.m4} está disponible. Lo mismo aplica para el conjunto de macros @file{guile.m4} que proporciona Guile. Por ejemplo, si ha instalado Automake en @file{/usr/local}, no va a buscar archivos @file{.m4} en @file{/usr/share}. En ese caso tiene que ejecutar la siguiente orden:"
 
 #. type: example
-#: doc/contributing.texi:133
+#: doc/contributing.texi:117
 #, no-wrap
 msgid "export ACLOCAL_PATH=/usr/share/aclocal\n"
 msgstr "export ACLOCAL_PATH=/usr/share/aclocal\n"
 
 #. type: Plain text
-#: doc/contributing.texi:137
+#: doc/contributing.texi:121
 msgid "@xref{Macro Search Path,,, automake, The GNU Automake Manual}, for more information."
 msgstr "@xref{Macro Search Path,,, automake, The GNU Automake Manual} para más información."
 
 #. type: Plain text
-#: doc/contributing.texi:143
-msgid "Then, run @command{./configure} as usual.  Make sure to pass @code{--localstatedir=@var{directory}} where @var{directory} is the @code{localstatedir} value used by your current installation (@pxref{The Store}, for information about this).  We recommend to use the value @code{/var}."
-msgstr "Una vez terminada, ejecute @command{./configure} como siempre. Asegúrese de pasar @code{--localstatedir=@var{directorio}}, donde @var{directorio} es el valor de @code{localstatedir} usado en su instalación actual (@pxref{The Store}, para información sobre esto). Recomendamos usar el valor @code{/var}"
+#: doc/contributing.texi:128
+msgid "Then, run @command{./configure} as usual.  Make sure to pass @code{--localstatedir=@var{directory}} where @var{directory} is the @code{localstatedir} value used by your current installation (@pxref{The Store}, for information about this), usually @file{/var}.  Note that you will probably not run @command{make install} at the end (you don't have to) but it's still important to pass the right @code{localstatedir}."
+msgstr "Una vez terminada, ejecute @command{./configure} como siempre. Asegúrese de pasar @code{--localstatedir=@var{directorio}}, donde @var{directorio} es el valor de @code{localstatedir} usado en su instalación actual (@pxref{The Store}, para información sobre esto), habitualmente @file{/var}. Tenga en cuenta que probablemente no ejecute @command{make install} para finalizar (no tiene por qué hacerlo) pero en cualquier caso es importante proporcionar el directorio @code{localstatedir} correcto."
 
 #. type: Plain text
-#: doc/contributing.texi:148
+#: doc/contributing.texi:133
 msgid "Finally, you have to invoke @code{make check} to run tests (@pxref{Running the Test Suite}).  If anything fails, take a look at installation instructions (@pxref{Installation})  or send a message to the @email{guix-devel@@gnu.org, mailing list}."
 msgstr "Finalmente, tiene que ejecutar @code{make check} para iniciar las pruebas (@pxref{Running the Test Suite}). Si algo falla, eche un vistazo a las instrucciones de instalación (@pxref{Installation}) o envíe un mensaje---en Inglés---a la @email{guix-devel@@gnu.org, lista de correo}."
 
 #. type: Plain text
+#: doc/contributing.texi:136
+msgid "From there on, you can authenticate all the commits included in your checkout by running:"
+msgstr "De aquí en adelante, puede identificar todos las revisiones incluidas en su copia ejecutando:"
+
+#. type: example
+#: doc/contributing.texi:139
+#, no-wrap
+msgid "make authenticate\n"
+msgstr "make authenticate\n"
+
+#. type: Plain text
+#: doc/contributing.texi:142
+msgid "The first run takes a couple of minutes, but subsequent runs are faster."
+msgstr "La primera ejecución puede tardar varios minutos, pero las ejecuciones siguientes son más rápidas."
+
+#. type: Plain text
+#: doc/contributing.texi:148
+msgid "Or, when your configuration for your local Git repository doesn't match the default one, you can provide the reference for the @code{keyring} branch through the variable @code{GUIX_GIT_KEYRING}.  The following example assumes that you have a Git remote called @samp{myremote} pointing to the official repository:"
+msgstr "O, cuando la configuración de su repositorio local Git no corresponda con la predeterminada, puede proporcionar la referencia de la rama @code{keyring} a través de la variable @code{GUIX_GIT_KEYRING}.  El ejemplo siguiente asume que tiene configurado un servidor remoto de git llamado @samp{miremoto} que apunta al repositorio oficial:"
+
+#. type: example
+#: doc/contributing.texi:151
+#, no-wrap
+msgid "make authenticate GUIX_GIT_KEYRING=myremote/keyring\n"
+msgstr "make authenticate GUIX_GIT_KEYRING=miremoto/keyring\n"
+
+#. type: quotation
+#: doc/contributing.texi:153 doc/contributing.texi:1264 doc/guix.texi:547
+#: doc/guix.texi:596 doc/guix.texi:1667 doc/guix.texi:1914 doc/guix.texi:2125
+#: doc/guix.texi:2346 doc/guix.texi:2547 doc/guix.texi:3613 doc/guix.texi:4349
+#: doc/guix.texi:4363 doc/guix.texi:4445 doc/guix.texi:4675 doc/guix.texi:5494
+#: doc/guix.texi:5740 doc/guix.texi:5861 doc/guix.texi:5913 doc/guix.texi:8459
+#: doc/guix.texi:8529 doc/guix.texi:10193 doc/guix.texi:10233
+#: doc/guix.texi:10450 doc/guix.texi:10462 doc/guix.texi:12627
+#: doc/guix.texi:13202 doc/guix.texi:13958 doc/guix.texi:14923
+#: doc/guix.texi:16967 doc/guix.texi:17117 doc/guix.texi:23774
+#: doc/guix.texi:27081 doc/guix.texi:29038 doc/guix.texi:30452
+#: doc/guix.texi:30686 doc/guix.texi:30856 doc/guix.texi:30987
+#: doc/guix.texi:31089 doc/guix.texi:31185
+#, no-wrap
+msgid "Note"
+msgstr "Nota"
+
+#. type: quotation
 #: doc/contributing.texi:157
+msgid "You are advised to run @command{make authenticate} after every @command{git pull} invocation.  This ensures you keep receiving valid changes to the repository."
+msgstr "Se recomienda que ejecute @command{make authenticate} tras cada ejecución de @command{git pull}. Así se asegura de que está recibiendo cambios válidos del repositorio."
+
+#. type: Plain text
+#: doc/contributing.texi:167
 msgid "In order to keep a sane working environment, you will find it useful to test the changes made in your local source tree checkout without actually installing them.  So that you can distinguish between your ``end-user'' hat and your ``motley'' costume."
 msgstr "Para mantener un entorno de trabajo estable, encontrará útil probar los cambios hechos en su copia de trabajo local sin instalarlos realmente. De esa manera, puede distinguir entre su sombrero de ``usuaria final'' y el traje de ``harapos''."
 
 # FUZZY
 #. type: Plain text
-#: doc/contributing.texi:168
-msgid "To that end, all the command-line tools can be used even if you have not run @code{make install}.  To do that, you first need to have an environment with all the dependencies available (@pxref{Building from Git}), and then simply prefix each command with @command{./pre-inst-env} (the @file{pre-inst-env} script lives in the top build tree of Guix; it is generated by @command{./configure}).  An example@footnote{The @option{-E} flag to @command{sudo} guarantees that @code{GUILE_LOAD_PATH} is correctly set such that @command{guix-daemon} and the tools it uses can find the Guile modules they need.}:"
-msgstr "Para dicho fin, todas las herramientas de línea de órdenes pueden ser usadas incluso si no ha ejecutado @code{make install}. Para hacerlo, primero necesita tener un entorno con todas las dependencias disponibles (@pxref{Building from Git}), y entonces añada al inicio de cada orden @command{./pre-inst-env} (el guión @file{pre-inst-env} se encuentra en la raíz del árbol de compilación de Guix; se genera con @command{./configure}). Un ejemplo@footnote{La opción @option{-E} a @command{sudo} asegura que @code{GUILE_LOAD_PATH} contiene la información correcta para que @command{guix-daemon} y las herramientas que usa puedan encontrar los módulos Guile que necesitan.}:"
+#: doc/contributing.texi:177
+msgid "To that end, all the command-line tools can be used even if you have not run @code{make install}.  To do that, you first need to have an environment with all the dependencies available (@pxref{Building from Git}), and then simply prefix each command with @command{./pre-inst-env} (the @file{pre-inst-env} script lives in the top build tree of Guix; it is generated by @command{./configure}).  As an example, here is how you would build the @code{hello} package as defined in your working tree (this assumes @command{guix-daemon} is already running on your system; it's OK if it's a different version):"
+msgstr "Para dicho fin, todas las herramientas de línea de órdenes pueden ser usadas incluso si no ha ejecutado @code{make install}. Para hacerlo, primero necesita tener un entorno con todas las dependencias disponibles (@pxref{Building from Git}), y entonces añada al inicio de cada orden @command{./pre-inst-env} (el guión @file{pre-inst-env} se encuentra en la raíz del árbol de compilación de Guix; se genera con @command{./configure}). A modo de ejemplo puede ver a continuación cómo construiría el paquete @code{hello} que se encuentre definido en su directorio de trabajo (esto asume que @command{guix daemon} se esté ejecutando en su sistema; no es un problema que la versión sea diferente):"
 
 #. type: example
-#: doc/contributing.texi:172
+#: doc/contributing.texi:180
 #, no-wrap
-msgid ""
-"$ sudo -E ./pre-inst-env guix-daemon --build-users-group=guixbuild\n"
-"$ ./pre-inst-env guix build hello\n"
-msgstr ""
-"$ sudo -E ./pre-inst-env guix-daemon --build-users-group=guixbuild\n"
-"$ ./pre-inst-env guix build hello\n"
+msgid "$ ./pre-inst-env guix build hello\n"
+msgstr "$ ./pre-inst-env guix build hello\n"
 
 #. type: Plain text
-#: doc/contributing.texi:176
+#: doc/contributing.texi:184
 msgid "Similarly, an example for a Guile session using the Guix modules:"
 msgstr "De manera similar, un ejemplo de una sesión de Guile con los módulos Guix disponibles:"
 
 #. type: example
-#: doc/contributing.texi:179
+#: doc/contributing.texi:187
 #, no-wrap
 msgid ""
 "$ ./pre-inst-env guile -c '(use-modules (guix utils)) (pk (%current-system))'\n"
@@ -427,30 +446,30 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/contributing.texi:181
+#: doc/contributing.texi:189
 #, no-wrap
 msgid ";;; (\"x86_64-linux\")\n"
 msgstr ";;; (\"x86_64-linux\")\n"
 
 #. type: cindex
-#: doc/contributing.texi:184
+#: doc/contributing.texi:192
 #, no-wrap
 msgid "REPL"
 msgstr "REPL"
 
 #. type: cindex
-#: doc/contributing.texi:185
+#: doc/contributing.texi:193
 #, no-wrap
 msgid "read-eval-print loop"
-msgstr "entorno interactivo"
+msgstr "sesión interactiva"
 
 #. type: Plain text
-#: doc/contributing.texi:188
+#: doc/contributing.texi:196
 msgid "@dots{} and for a REPL (@pxref{Using Guile Interactively,,, guile, Guile Reference Manual}):"
 msgstr "@dots{} y para un entorno interactivo (REPL) (@pxref{Using Guile Interactively,,, guile, Guile Reference Manual}):"
 
 #. type: example
-#: doc/contributing.texi:203
+#: doc/contributing.texi:211
 #, no-wrap
 msgid ""
 "$ ./pre-inst-env guile\n"
@@ -481,34 +500,46 @@ msgstr ""
 "scheme@@(guile-user)> (length serpientes)\n"
 "$1 = 361\n"
 
+# FUZZY
 #. type: Plain text
-#: doc/contributing.texi:207
+#: doc/contributing.texi:219
+msgid "If you are hacking on the daemon and its supporting code or if @command{guix-daemon} is not already running on your system, you can launch it straight from the build tree@footnote{The @option{-E} flag to @command{sudo} guarantees that @code{GUILE_LOAD_PATH} is correctly set such that @command{guix-daemon} and the tools it uses can find the Guile modules they need.}:"
+msgstr "Si modifica el código del daemon o código auxiliar, o si @command{guix-daemon} no se está ejecutando todavía en su sistema, puede ejecutarlo desde el árbol de construción@footnote{La opción @option{-E} a @command{sudo} asegura que @code{GUILE_LOAD_PATH} contiene la información correcta para que @command{guix-daemon} y las herramientas que usa puedan encontrar los módulos Guile que necesitan.}:"
+
+#. type: example
+#: doc/contributing.texi:222
+#, no-wrap
+msgid "$ sudo -E ./pre-inst-env guix-daemon --build-users-group=guixbuild\n"
+msgstr "$ sudo -E ./pre-inst-env guix-daemon --build-users-group=guixbuild\n"
+
+#. type: Plain text
+#: doc/contributing.texi:226
 msgid "The @command{pre-inst-env} script sets up all the environment variables necessary to support this, including @env{PATH} and @env{GUILE_LOAD_PATH}."
-msgstr "El guión @command{pre-inst-env} fija todas las variables de entorno necesarias para permitir esto, incluyendo @env{PATH} y @env{GUILE_LOAD_PATH}."
+msgstr "El guión @command{pre-inst-env} proporciona valor a todas las variables de entorno necesarias para permitirlo, incluyendo @env{PATH} y @env{GUILE_LOAD_PATH}."
 
 #. type: Plain text
-#: doc/contributing.texi:212
+#: doc/contributing.texi:231
 msgid "Note that @command{./pre-inst-env guix pull} does @emph{not} upgrade the local source tree; it simply updates the @file{~/.config/guix/current} symlink (@pxref{Invoking guix pull}).  Run @command{git pull} instead if you want to upgrade your local source tree."
 msgstr "Fíjese que la orden @command{./pre-inst-env guix pull} @emph{no} actualiza el árbol de fuentes local; simplemente actualiza el enlace @file{~/.config/guix/latest} (@pxref{Invoking guix pull}). Ejecute @command{git pull} si quiere actualizar su árbol de fuentes local."
 
 #. type: Plain text
-#: doc/contributing.texi:222
+#: doc/contributing.texi:241
 msgid "The Perfect Setup to hack on Guix is basically the perfect setup used for Guile hacking (@pxref{Using Guile in Emacs,,, guile, Guile Reference Manual}).  First, you need more than an editor, you need @url{https://www.gnu.org/software/emacs, Emacs}, empowered by the wonderful @url{https://nongnu.org/geiser/, Geiser}.  To set that up, run:"
 msgstr "La configuración perfecta para hackear en Guix es básicamente la configuración perfecta para hacerlo en Guile (@pxref{Using Guile in Emacs,,, guile, Guile Reference Manual}). Primero, necesita más que un editor, necesita @url{https://www.gnu.org/software/emacs, Emacs}, con su potencia aumentada gracias al maravilloso @url{https://nongnu.org/geiser, Geiser}. Para conseguir esta configuración ejecute:"
 
 #. type: example
-#: doc/contributing.texi:225
+#: doc/contributing.texi:244
 #, no-wrap
 msgid "guix package -i emacs guile emacs-geiser\n"
 msgstr "guix package -i emacs guile emacs-geiser\n"
 
 #. type: Plain text
-#: doc/contributing.texi:234
+#: doc/contributing.texi:253
 msgid "Geiser allows for interactive and incremental development from within Emacs: code compilation and evaluation from within buffers, access to on-line documentation (docstrings), context-sensitive completion, @kbd{M-.} to jump to an object definition, a REPL to try out your code, and more (@pxref{Introduction,,, geiser, Geiser User Manual}).  For convenient Guix development, make sure to augment Guile’s load path so that it finds source files from your checkout:"
-msgstr "Geiser permite desarrollo incremental e interactivo dentro de Emacs: compilación y evaluación de código dentro de los buffers, acceso a documentación en línea (docstrings), completado dependiente del contexto, @kbd{M-.} para saltar a la definición de un objeto, una consola interactiva (REPL) para probar su código, y más (@pxref{Introduction,,, geiser, Geiser User Manual}). Para desarrollar Guix adecuadamente, asegúrese de aumentar la ruta de carga de Guile (load-path) para que encuentre los ficheros fuente de su copia de trabajo:"
+msgstr "Geiser permite desarrollo incremental e interactivo dentro de Emacs: compilación y evaluación de código dentro de los buffers, acceso a documentación en línea (docstrings), completado dependiente del contexto, @kbd{M-.} para saltar a la definición de un objeto, una consola interactiva (REPL) para probar su código, y más (@pxref{Introduction,,, geiser, Geiser User Manual}). Para desarrollar Guix adecuadamente, asegúrese de aumentar la ruta de carga de Guile (load-path) para que encuentre los archivos fuente de su copia de trabajo:"
 
 #. type: lisp
-#: doc/contributing.texi:239
+#: doc/contributing.texi:258
 #, no-wrap
 msgid ""
 ";; @r{Assuming the Guix checkout is in ~/src/guix.}\n"
@@ -521,18 +552,18 @@ msgstr ""
 
 # TODO: (MAAV) ¿Neat? ¿Qué traducción hay?
 #. type: Plain text
-#: doc/contributing.texi:247
+#: doc/contributing.texi:266
 msgid "To actually edit the code, Emacs already has a neat Scheme mode.  But in addition to that, you must not miss @url{https://www.emacswiki.org/emacs/ParEdit, Paredit}.  It provides facilities to directly operate on the syntax tree, such as raising an s-expression or wrapping it, swallowing or rejecting the following s-expression, etc."
 msgstr "Para realmente editar el código, Emacs tiene un modo para Scheme muy limpio. Pero además de eso, no debe perderse @url{http://www.emacswiki.org/emacs/ParEdit, Paredit}. Provee de facilidades para operar directamente en el árbol sintáctico como elevar una expresión-S o recubrirla, embeber o expulsar la siguiente expresión-S, etc."
 
 #. type: cindex
-#: doc/contributing.texi:248
+#: doc/contributing.texi:267
 #, no-wrap
 msgid "code snippets"
 msgstr "fragmentos de código"
 
 #. type: cindex
-#: doc/contributing.texi:249
+#: doc/contributing.texi:268
 #, no-wrap
 msgid "templates"
 msgstr "plantillas"
@@ -540,18 +571,18 @@ msgstr "plantillas"
 # FUZZY
 # TODO: (MAAV) ¿Boilerplate?
 #. type: cindex
-#: doc/contributing.texi:250
+#: doc/contributing.texi:269
 #, no-wrap
 msgid "reducing boilerplate"
 msgstr "reducir la verborrea"
 
 #. type: Plain text
-#: doc/contributing.texi:257
+#: doc/contributing.texi:276
 msgid "We also provide templates for common git commit messages and package definitions in the @file{etc/snippets} directory.  These templates can be used with @url{https://joaotavora.github.io/yasnippet/, YASnippet} to expand short trigger strings to interactive text snippets.  You may want to add the snippets directory to the @var{yas-snippet-dirs} variable in Emacs."
 msgstr "También proporcionamos plantillas para los mensajes de revisión de git comunes y definiciones de paquetes en el directorio @file{etc/snippets}. Estas plantillas pueden ser usadas con @url{https://joaotavora.github.io/yasnippet, YASnippet} para expandir mnemotécnicos a fragmentos interactivos de texto. Puedes querer añadir el directorio de fragmentos a la variable @var{yas-snippet-dirs} en Emacs."
 
 #. type: lisp
-#: doc/contributing.texi:262
+#: doc/contributing.texi:281
 #, no-wrap
 msgid ""
 ";; @r{Assuming the Guix checkout is in ~/src/guix.}\n"
@@ -563,40 +594,40 @@ msgstr ""
 "  (add-to-list 'yas-snippet-dirs \"~/src/guix/etc/snippets\"))\n"
 
 #. type: Plain text
-#: doc/contributing.texi:270
+#: doc/contributing.texi:289
 msgid "The commit message snippets depend on @url{https://magit.vc/, Magit} to display staged files.  When editing a commit message type @code{add} followed by @kbd{TAB} to insert a commit message template for adding a package; type @code{update} followed by @kbd{TAB} to insert a template for updating a package; type @code{https} followed by @kbd{TAB} to insert a template for changing the home page URI of a package to HTTPS."
-msgstr "Los fragmentos de mensajes de la revisión dependen de @url{https://magit.vc/, Magit} para mostrar los ficheros preparados. En la edición del mensaje de la revisión teclee @code{add} seguido de @kbd{TAB} (el tabulador) para insertar la plantilla del mensaje de la revisión de adición de un paquete; teclee @code{update} seguido de @kbd{TAB} para insertar una plantilla de actualización de un paquete; teclee @code{https} seguido de @kbd{TAB} para insertar una plantilla para cambiar la URI de la página de un paquete a HTTPS."
+msgstr "Los fragmentos de mensajes de la revisión dependen de @url{https://magit.vc/, Magit} para mostrar los archivos preparados. En la edición del mensaje de la revisión teclee @code{add} seguido de @kbd{TAB} (el tabulador) para insertar la plantilla del mensaje de la revisión de adición de un paquete; teclee @code{update} seguido de @kbd{TAB} para insertar una plantilla de actualización de un paquete; teclee @code{https} seguido de @kbd{TAB} para insertar una plantilla para cambiar la URI de la página de un paquete a HTTPS."
 
 #. type: Plain text
-#: doc/contributing.texi:276
+#: doc/contributing.texi:295
 msgid "The main snippet for @code{scheme-mode} is triggered by typing @code{package...} followed by @kbd{TAB}.  This snippet also inserts the trigger string @code{origin...}, which can be expanded further.  The @code{origin} snippet in turn may insert other trigger strings ending on @code{...}, which also can be expanded further."
 msgstr "El fragmento principal para @code{scheme-mode} es activado al teclear @code{package...} seguido de @kbd{TAB}. Este fragmento también inserta el lanzador @code{origin...} que puede ser expandido de nuevo. El fragmento @code{origin} puede a su vez insertar otros identificadores de lanzado terminando en @code{...}, que pueden ser expandidos de nuevo."
 
 #. type: cindex
-#: doc/contributing.texi:277
+#: doc/contributing.texi:296
 #, no-wrap
 msgid "insert or update copyright"
 msgstr "introduce o actualiza el copyright"
 
 #. type: code{#1}
-#: doc/contributing.texi:278
+#: doc/contributing.texi:297
 #, no-wrap
 msgid "M-x guix-copyright"
 msgstr "M-x guix-copyright"
 
 #. type: code{#1}
-#: doc/contributing.texi:279
+#: doc/contributing.texi:298
 #, no-wrap
 msgid "M-x copyright-update"
 msgstr "M-x copyright-update"
 
 #. type: Plain text
-#: doc/contributing.texi:283
-msgid "Additionaly we provide insertion and automatic update of a copyright in @file{etc/copyright.el}.  You may want to set your full name, mail, and load a file."
-msgstr "Adicionalmente, proporcionamos herramientas para la inserción y actualización automática del copyright en @file{etc/copyright.el}. Puede proporcionar su nombre completo, correo electrónico y cargar el fichero."
+#: doc/contributing.texi:302
+msgid "We additionally provide insertion and automatic update of a copyright in @file{etc/copyright.el}.  You may want to set your full name, mail, and load a file."
+msgstr "También proporcionamos herramientas para la inserción y actualización automática del copyright en @file{etc/copyright.el}. Puede proporcionar su nombre completo, correo electrónico y cargar el archivo."
 
 #. type: lisp
-#: doc/contributing.texi:289
+#: doc/contributing.texi:308
 #, no-wrap
 msgid ""
 "(setq user-full-name \"Alice Doe\")\n"
@@ -610,17 +641,17 @@ msgstr ""
 "(load-file \"~/src/guix/etc/copyright.el\")\n"
 
 #. type: Plain text
-#: doc/contributing.texi:292
+#: doc/contributing.texi:311
 msgid "To insert a copyright at the current line invoke @code{M-x guix-copyright}."
 msgstr "Para insertar el aviso de copyright en la línea actual invoque @code{M-x guix-copyright}."
 
 #. type: Plain text
-#: doc/contributing.texi:294
+#: doc/contributing.texi:313
 msgid "To update a copyright you need to specify a @code{copyright-names-regexp}."
 msgstr "Para actualizar el aviso de copyright debe especificar una expresión regular de nombres en la variable @code{copyright-names-regexp}."
 
 #. type: lisp
-#: doc/contributing.texi:298
+#: doc/contributing.texi:317
 #, no-wrap
 msgid ""
 "(setq copyright-names-regexp\n"
@@ -630,38 +661,38 @@ msgstr ""
 "      (format \"%s <%s>\" user-full-name user-mail-address))\n"
 
 #. type: Plain text
-#: doc/contributing.texi:304
+#: doc/contributing.texi:323
 msgid "You can check if your copyright is up to date by evaluating @code{M-x copyright-update}.  If you want to do it automatically after each buffer save then add @code{(add-hook 'after-save-hook 'copyright-update)} in Emacs."
-msgstr "Puede comprobar si su copyright está actualizado evaluando @code{M-x copyright-update}. Si desea hacerlo de manera automática tras guardar un fichero añada @code{(add-hook 'after-save-hook 'copyright-update)} en Emacs."
+msgstr "Puede comprobar si su copyright está actualizado evaluando @code{M-x copyright-update}. Si desea hacerlo de manera automática tras guardar un archivo añada @code{(add-hook 'after-save-hook 'copyright-update)} en Emacs."
 
 #. type: cindex
-#: doc/contributing.texi:308
+#: doc/contributing.texi:327
 #, no-wrap
 msgid "packages, creating"
 msgstr "paquetes, creación"
 
 #. type: Plain text
-#: doc/contributing.texi:312
+#: doc/contributing.texi:331
 msgid "The GNU distribution is nascent and may well lack some of your favorite packages.  This section describes how you can help make the distribution grow."
 msgstr "La distribución GNU es reciente y puede no disponer de alguno de sus paquetes favoritos. Esta sección describe cómo puede ayudar a hacer crecer la distribución."
 
 #. type: Plain text
-#: doc/contributing.texi:320
+#: doc/contributing.texi:339
 msgid "Free software packages are usually distributed in the form of @dfn{source code tarballs}---typically @file{tar.gz} files that contain all the source files.  Adding a package to the distribution means essentially two things: adding a @dfn{recipe} that describes how to build the package, including a list of other packages required to build it, and adding @dfn{package metadata} along with that recipe, such as a description and licensing information."
-msgstr "Los paquetes de software libre habitualmente se distribuyen en forma de @dfn{archivadores de código fuente}---típicamente ficheros @file{tar.gz} que contienen todos los ficheros fuente. Añadir un paquete a la distribución significa esencialmente dos cosas: añadir una @dfn{receta} que describe cómo construir el paquete, la que incluye una lista de otros paquetes necesarios para la construcción, y añadir @dfn{metadatos del paquete} junto a dicha receta, como la descripción y la información de licencias."
+msgstr "Los paquetes de software libre habitualmente se distribuyen en forma de @dfn{archivadores de código fuente}---típicamente archivos @file{tar.gz} que contienen todos los archivos fuente. Añadir un paquete a la distribución significa esencialmente dos cosas: añadir una @dfn{receta} que describe cómo construir el paquete, la que incluye una lista de otros paquetes necesarios para la construcción, y añadir @dfn{metadatos del paquete} junto a dicha receta, como la descripción y la información de licencias."
 
 #. type: Plain text
-#: doc/contributing.texi:329
+#: doc/contributing.texi:348
 msgid "In Guix all this information is embodied in @dfn{package definitions}.  Package definitions provide a high-level view of the package.  They are written using the syntax of the Scheme programming language; in fact, for each package we define a variable bound to the package definition, and export that variable from a module (@pxref{Package Modules}).  However, in-depth Scheme knowledge is @emph{not} a prerequisite for creating packages.  For more information on package definitions, @pxref{Defining Packages}."
 msgstr "En Guix toda esta información está contenida en @dfn{definiciones de paquete}. Las definiciones de paquete proporcionan una vista de alto nivel del paquete. Son escritas usando la sintaxis del lenguaje de programación Scheme; de hecho, definimos una variable por cada paquete enlazada a su definición y exportamos esa variable desde un módulo (@pxref{Package Modules}). No obstante, un conocimiento profundo de Scheme @emph{no} es un pre-requisito para la creación de paquetes. Para más información obre las definiciones de paquetes, @pxref{Defining Packages}."
 
 #. type: Plain text
-#: doc/contributing.texi:335
+#: doc/contributing.texi:354
 msgid "Once a package definition is in place, stored in a file in the Guix source tree, it can be tested using the @command{guix build} command (@pxref{Invoking guix build}).  For example, assuming the new package is called @code{gnew}, you may run this command from the Guix build tree (@pxref{Running Guix Before It Is Installed}):"
-msgstr "Una vez que una definición de paquete está en su lugar, almacenada en un fichero del árbol de fuentes de Guix, puede probarse usando la orden @command{guix build} (@pxref{Invoking guix build}). Por ejemplo, asumiendo que el nuevo paquete se llama @code{gnuevo}, puede ejecutar esta orden desde el árbol de construcción de Guix (@pxref{Running Guix Before It Is Installed}):"
+msgstr "Una vez que una definición de paquete está en su lugar, almacenada en un archivo del árbol de fuentes de Guix, puede probarse usando la orden @command{guix build} (@pxref{Invoking guix build}). Por ejemplo, asumiendo que el nuevo paquete se llama @code{gnuevo}, puede ejecutar esta orden desde el árbol de construcción de Guix (@pxref{Running Guix Before It Is Installed}):"
 
 #. type: example
-#: doc/contributing.texi:338
+#: doc/contributing.texi:357
 #, no-wrap
 msgid "./pre-inst-env guix build gnew --keep-failed\n"
 msgstr "./pre-inst-env guix build gnuevo --keep-failed\n"
@@ -669,125 +700,137 @@ msgstr "./pre-inst-env guix build gnuevo --keep-failed\n"
 # FUZZY
 # MAAV: Log
 #. type: Plain text
-#: doc/contributing.texi:344
+#: doc/contributing.texi:363
 msgid "Using @code{--keep-failed} makes it easier to debug build failures since it provides access to the failed build tree.  Another useful command-line option when debugging is @code{--log-file}, to access the build log."
 msgstr "El uso de @code{--keep-failed} facilita la depuración de errores de construcción ya que proporciona acceso al árbol de la construcción fallida. Otra opción útil de línea de órdenes para la depuración es @code{--log-file}, para acceder al log de construcción."
 
 #. type: Plain text
-#: doc/contributing.texi:349
+#: doc/contributing.texi:368
 msgid "If the package is unknown to the @command{guix} command, it may be that the source file contains a syntax error, or lacks a @code{define-public} clause to export the package variable.  To figure it out, you may load the module from Guile to get more information about the actual error:"
-msgstr "Si el paquete resulta desconocido para la orden @command{guix}, puede ser que el fichero fuente contenga un error de sintaxis, o no tenga una cláusula @code{define-public} para exportar la variable del paquete. Para encontrar el problema puede cargar el módulo desde Guile para obtener más información sobre el error real:"
+msgstr "Si el paquete resulta desconocido para la orden @command{guix}, puede ser que el archivo fuente contenga un error de sintaxis, o no tenga una cláusula @code{define-public} para exportar la variable del paquete. Para encontrar el problema puede cargar el módulo desde Guile para obtener más información sobre el error real:"
 
 #. type: example
-#: doc/contributing.texi:352
+#: doc/contributing.texi:371
 #, no-wrap
 msgid "./pre-inst-env guile -c '(use-modules (gnu packages gnew))'\n"
 msgstr "./pre-inst-env guile -c '(use-modules (gnu packages gnuevo))'\n"
 
 #. type: Plain text
-#: doc/contributing.texi:359
-msgid "Once your package builds correctly, please send us a patch (@pxref{Submitting Patches}).  Well, if you need help, we will be happy to help you too.  Once the patch is committed in the Guix repository, the new package automatically gets built on the supported platforms by @url{@value{SUBSTITUTE-SERVER}, our continuous integration system}."
-msgstr "Una vez que se construya correctamente su paquete, por favor, envíenos un parche (@pxref{Submitting Patches}). En cualquier caso, si necesita ayuda también estaremos felices de ayudarle. Una vez el parche se haya incorporado al repositorio de Guix, el nuevo paquete se construye automáticamente en las plataformas disponibles por @url{@value{SUBSTITUTE-SERVER}, nuestro sistema de integración continua}."
+#: doc/contributing.texi:378
+msgid "Once your package builds correctly, please send us a patch (@pxref{Submitting Patches}).  Well, if you need help, we will be happy to help you too.  Once the patch is committed in the Guix repository, the new package automatically gets built on the supported platforms by @url{@value{SUBSTITUTE-URL}, our continuous integration system}."
+msgstr "Una vez que se construya correctamente su paquete, por favor, envíenos un parche (@pxref{Submitting Patches}). En cualquier caso, si necesita ayuda también estaremos felices de ayudarle. Una vez el parche se haya incorporado al repositorio de Guix, el nuevo paquete se construye automáticamente en las plataformas disponibles por @url{@value{SUBSTITUTE-URL}, nuestro sistema de integración continua}."
 
 #. type: cindex
-#: doc/contributing.texi:360
+#: doc/contributing.texi:379
 #, no-wrap
 msgid "substituter"
 msgstr "servidor de sustituciones"
 
 #. type: Plain text
-#: doc/contributing.texi:367
+#: doc/contributing.texi:386
 msgid "Users can obtain the new package definition simply by running @command{guix pull} (@pxref{Invoking guix pull}).  When @code{@value{SUBSTITUTE-SERVER}} is done building the package, installing the package automatically downloads binaries from there (@pxref{Substitutes}).  The only place where human intervention is needed is to review and apply the patch."
 msgstr "Las usuarias pueden obtener la nueva definición de paquete ejecutando simplemente @command{guix pull} (@pxref{Invoking guix pull}). Cuando @code{@value{SUBSTITUTE-SERVER}} ha terminado de construir el paquete, la instalación del paquete descarga automáticamente los binarios desde allí (@pxref{Substitutes}). El único lugar donde la intervención humana es necesaria es en la revisión y aplicación del parche."
 
 #. type: subsection
-#: doc/contributing.texi:379 doc/contributing.texi:381
-#: doc/contributing.texi:382
+#: doc/contributing.texi:399 doc/contributing.texi:401
+#: doc/contributing.texi:402
 #, no-wrap
 msgid "Software Freedom"
 msgstr "Libertad del software"
 
 #. type: menuentry
-#: doc/contributing.texi:379
+#: doc/contributing.texi:399
 msgid "What may go into the distribution."
 msgstr "Qué puede entrar en la distribución."
 
 #. type: subsection
-#: doc/contributing.texi:379 doc/contributing.texi:409
-#: doc/contributing.texi:410
+#: doc/contributing.texi:399 doc/contributing.texi:429
+#: doc/contributing.texi:430
 #, no-wrap
 msgid "Package Naming"
 msgstr "Nombrado de paquetes"
 
 #. type: menuentry
-#: doc/contributing.texi:379
+#: doc/contributing.texi:399
 msgid "What's in a name?"
 msgstr "¿Qué hay en un nombre?"
 
 #. type: subsection
-#: doc/contributing.texi:379 doc/contributing.texi:434
-#: doc/contributing.texi:435
+#: doc/contributing.texi:399 doc/contributing.texi:454
+#: doc/contributing.texi:455
 #, no-wrap
 msgid "Version Numbers"
 msgstr "Versiones numéricas"
 
 #. type: menuentry
-#: doc/contributing.texi:379
+#: doc/contributing.texi:399
 msgid "When the name is not enough."
 msgstr "Cuando el nombre no es suficiente."
 
 #. type: subsection
-#: doc/contributing.texi:379 doc/contributing.texi:525
-#: doc/contributing.texi:526
+#: doc/contributing.texi:399 doc/contributing.texi:545
+#: doc/contributing.texi:546
 #, no-wrap
 msgid "Synopses and Descriptions"
 msgstr "Sinopsis y descripciones"
 
 # FUZZY
 #. type: menuentry
-#: doc/contributing.texi:379
+#: doc/contributing.texi:399
 msgid "Helping users find the right package."
 msgstr "Ayuda para que las usuarias encuentren el paquete correcto."
 
 #. type: subsection
-#: doc/contributing.texi:379 doc/contributing.texi:605
-#: doc/contributing.texi:606
+#: doc/contributing.texi:399 doc/contributing.texi:624
+#: doc/contributing.texi:625
+#, no-wrap
+msgid "Snippets versus Phases"
+msgstr "@code{snippets} frente a fases"
+
+#. type: menuentry
+#: doc/contributing.texi:399
+msgid "Whether to use a snippet, or a build phase."
+msgstr "¿Debo usar @code{snippet} o una fase de construcción?"
+
+#. type: subsection
+#: doc/contributing.texi:399 doc/contributing.texi:639
+#: doc/contributing.texi:640
 #, no-wrap
 msgid "Python Modules"
 msgstr "Módulos Python"
 
 #. type: menuentry
-#: doc/contributing.texi:379
+#: doc/contributing.texi:399
 msgid "A touch of British comedy."
 msgstr "Un toque de comedia británica."
 
 #. type: subsection
-#: doc/contributing.texi:379 doc/contributing.texi:681
-#: doc/contributing.texi:682
+#: doc/contributing.texi:399 doc/contributing.texi:715
+#: doc/contributing.texi:716
 #, no-wrap
 msgid "Perl Modules"
 msgstr "Módulos Perl"
 
 #. type: menuentry
-#: doc/contributing.texi:379
+#: doc/contributing.texi:399
 msgid "Little pearls."
 msgstr "Pequeñas perlas."
 
 #. type: subsection
-#: doc/contributing.texi:379 doc/contributing.texi:697
-#: doc/contributing.texi:698
+#: doc/contributing.texi:399 doc/contributing.texi:731
+#: doc/contributing.texi:732
 #, no-wrap
 msgid "Java Packages"
 msgstr "Paquetes Java"
 
 #. type: menuentry
-#: doc/contributing.texi:379
+#: doc/contributing.texi:399
 msgid "Coffee break."
 msgstr "La parada del café."
 
 #. type: subsection
-#: doc/contributing.texi:379 doc/contributing.texi:717
-#: doc/contributing.texi:718
+#: doc/contributing.texi:399 doc/contributing.texi:751
+#: doc/contributing.texi:752
 #, no-wrap
 msgid "Rust Crates"
 msgstr "Crates de Rust"
@@ -795,25 +838,25 @@ msgstr "Crates de Rust"
 # MAAV: Esta broma se pierde en la traducción completamente (rust-óxido)
 # :(
 #. type: menuentry
-#: doc/contributing.texi:379
+#: doc/contributing.texi:399
 msgid "Beware of oxidation."
 msgstr "Sistema de paquetes de Rust."
 
 #. type: subsection
-#: doc/contributing.texi:379 doc/contributing.texi:751
-#: doc/contributing.texi:752
+#: doc/contributing.texi:399 doc/contributing.texi:785
+#: doc/contributing.texi:786
 #, no-wrap
 msgid "Fonts"
 msgstr "Tipografías"
 
 # XXX: (MAAV) Mmmm, es difícil traducir esta...
 #. type: menuentry
-#: doc/contributing.texi:379
+#: doc/contributing.texi:399
 msgid "Fond of fonts."
 msgstr "Amor por las letras."
 
 #. type: cindex
-#: doc/contributing.texi:385
+#: doc/contributing.texi:405
 #, no-wrap
 msgid "free software"
 msgstr "software libre"
@@ -821,73 +864,73 @@ msgstr "software libre"
 # FUZZY
 # MAAV: Comprobar traducción de la página de GNU
 #. type: Plain text
-#: doc/contributing.texi:393
+#: doc/contributing.texi:413
 msgid "The GNU operating system has been developed so that users can have freedom in their computing.  GNU is @dfn{free software}, meaning that users have the @url{https://www.gnu.org/philosophy/free-sw.html,four essential freedoms}: to run the program, to study and change the program in source code form, to redistribute exact copies, and to distribute modified versions.  Packages found in the GNU distribution provide only software that conveys these four freedoms."
 msgstr "El sistema operativo GNU se ha desarrollado para que las usuarias puedan ejercitar su libertad de computación. GNU es @dfn{software libre}, lo que significa ue las usuarias tienen las @url{https://www.gnu.org/philosophy/free-sw.html,cuatro libertades esenciales}: para ejecutar el programa, para estudiar y modificar el programa en la forma de código fuente, para redistribuir copias exactas y para distribuir versiones modificadas. Los paquetes encontrados en la distribución GNU contienen únicamente software que proporciona estas cuatro libertades."
 
 # FUZZY
 # MAAV: Comprobar traducción de la página de GNU
 #. type: Plain text
-#: doc/contributing.texi:399
+#: doc/contributing.texi:419
 msgid "In addition, the GNU distribution follow the @url{https://www.gnu.org/distros/free-system-distribution-guidelines.html,free software distribution guidelines}.  Among other things, these guidelines reject non-free firmware, recommendations of non-free software, and discuss ways to deal with trademarks and patents."
 msgstr "Además, la distribución GNU sigue las @url{https://www.gnu.org/distros/free-system-distribution-guidelines.html,directrices de distribución de software libre}. Entre otras cosas, estas directrices rechazan firmware no-libre, recomendaciones de software no-libre, y tienen en cuenta formas de tratar con marcas registradas y patentes."
 
 # FUZZY
 # MAAV: Comprobar traducción de la página de GNU
 #. type: Plain text
-#: doc/contributing.texi:407
+#: doc/contributing.texi:427
 msgid "Some otherwise free upstream package sources contain a small and optional subset that violates the above guidelines, for instance because this subset is itself non-free code.  When that happens, the offending items are removed with appropriate patches or code snippets in the @code{origin} form of the package (@pxref{Defining Packages}).  This way, @code{guix build --source} returns the ``freed'' source rather than the unmodified upstream source."
 msgstr "Algunos paquetes originales, que serían de otra manera software libre, contienen un subconjunto pequeño y opcional que viola estas directrices, por ejemplo debido a que ese subconjunto sea en sí código no-libre. Cuando esto sucede, las partes indeseadas son eliminadas con parches o fragmentos de código en la forma @code{origin} del paquete (@pxref{Defining Packages}). De este modo, @code{guix build --source} devuelve las fuentes ``liberadas'' en vez de la versión original de las fuentes."
 
 #. type: cindex
-#: doc/contributing.texi:412
+#: doc/contributing.texi:432
 #, no-wrap
 msgid "package name"
 msgstr "nombre de paquete"
 
 #. type: Plain text
-#: doc/contributing.texi:420
+#: doc/contributing.texi:440
 msgid "A package has actually two names associated with it: First, there is the name of the @emph{Scheme variable}, the one following @code{define-public}.  By this name, the package can be made known in the Scheme code, for instance as input to another package.  Second, there is the string in the @code{name} field of a package definition.  This name is used by package management commands such as @command{guix package} and @command{guix build}."
 msgstr "Un paquete tiene realmente dos nombres asociados con él: Primero, el nombre de la @emph{variable Scheme} asociada, que aparece después de @code{define-public}. A través de este nombre, el paquete está disponible en código Scheme, por ejemplo como entrada de otro paquete. Segundo, la cadena en el campo @code{name} de la definición de paquete. Este nombre se usa por las órdenes de gestión de paquetes como @command{guix package} y @command{guix build}."
 
 #. type: Plain text
-#: doc/contributing.texi:425
+#: doc/contributing.texi:445
 msgid "Both are usually the same and correspond to the lowercase conversion of the project name chosen upstream, with underscores replaced with hyphens.  For instance, GNUnet is available as @code{gnunet}, and SDL_net as @code{sdl-net}."
 msgstr "Ambos normalmente son iguales y corresponden a la conversión a minúsculas del nombre de proyecto elegido por sus creadoras, con los guiones bajos sustituidos por guiones. Por ejemplo, GNUnet está disponible como @code{gnunet}, y SDL_net como @code{sdl-net}."
 
 #. type: Plain text
-#: doc/contributing.texi:430
+#: doc/contributing.texi:450
 msgid "We do not add @code{lib} prefixes for library packages, unless these are already part of the official project name.  But @pxref{Python Modules} and @ref{Perl Modules} for special rules concerning modules for the Python and Perl languages."
 msgstr "No añadimos prefijos @code{lib} para paquetes de bibliotecas, a menos que sean parte del nombre oficial del proyecto. Pero vea @ref{Python Modules} y @ref{Perl Modules} para reglas especiales que conciernen a los módulos de los lenguajes Python y Perl."
 
 #. type: Plain text
-#: doc/contributing.texi:432
+#: doc/contributing.texi:452
 msgid "Font package names are handled differently, @pxref{Fonts}."
 msgstr "Los nombres de paquetes de tipografías se manejan de forma diferente, @pxref{Fonts}."
 
 #. type: cindex
-#: doc/contributing.texi:437
+#: doc/contributing.texi:457
 #, no-wrap
 msgid "package version"
 msgstr "versión de paquete"
 
 #. type: Plain text
-#: doc/contributing.texi:446
+#: doc/contributing.texi:466
 msgid "We usually package only the latest version of a given free software project.  But sometimes, for instance for incompatible library versions, two (or more) versions of the same package are needed.  These require different Scheme variable names.  We use the name as defined in @ref{Package Naming} for the most recent version; previous versions use the same name, suffixed by @code{-} and the smallest prefix of the version number that may distinguish the two versions."
 msgstr "Normalmente empaquetamos únicamente la última versión de un proyecto dado de software libre. Pero a veces, por ejemplo para versiones de bibliotecas incompatibles, se necesitan dos (o más) versiones del mismo paquete. Estas necesitan nombres diferentes para las variables Scheme. Usamos el nombre como se define en @ref{Package Naming} para la versión más reciente; las versiones previas usan el mismo nombre, añadiendo un @code{-} y el prefijo menor del número de versión que permite distinguir las dos versiones."
 
 #. type: Plain text
-#: doc/contributing.texi:449
+#: doc/contributing.texi:469
 msgid "The name inside the package definition is the same for all versions of a package and does not contain any version number."
 msgstr "El nombre dentro de la definición de paquete es el mismo para todas las versiones de un paquete y no contiene ningún número de versión."
 
 #. type: Plain text
-#: doc/contributing.texi:451
+#: doc/contributing.texi:471
 msgid "For instance, the versions 2.24.20 and 3.9.12 of GTK+ may be packaged as follows:"
 msgstr "Por ejemplo, las versiones 2.24.20 y 3.9.12 de GTK+ pueden empaquetarse como sigue:"
 
 #. type: lisp
-#: doc/contributing.texi:463
+#: doc/contributing.texi:483
 #, no-wrap
 msgid ""
 "(define-public gtk+\n"
@@ -913,12 +956,12 @@ msgstr ""
 "    ...))\n"
 
 #. type: Plain text
-#: doc/contributing.texi:465
+#: doc/contributing.texi:485
 msgid "If we also wanted GTK+ 3.8.2, this would be packaged as"
 msgstr "Si también deseásemos GTK+3.8.2, se empaquetaría como"
 
 #. type: lisp
-#: doc/contributing.texi:471
+#: doc/contributing.texi:491
 #, no-wrap
 msgid ""
 "(define-public gtk+-3.8\n"
@@ -934,23 +977,23 @@ msgstr ""
 "    ...))\n"
 
 #. type: cindex
-#: doc/contributing.texi:475
+#: doc/contributing.texi:495
 #, no-wrap
 msgid "version number, for VCS snapshots"
 msgstr "número de versión, para revisiones de VCS"
 
 #. type: Plain text
-#: doc/contributing.texi:481
+#: doc/contributing.texi:501
 msgid "Occasionally, we package snapshots of upstream's version control system (VCS) instead of formal releases.  This should remain exceptional, because it is up to upstream developers to clarify what the stable release is.  Yet, it is sometimes necessary.  So, what should we put in the @code{version} field?"
 msgstr "De manera ocasional, empaquetamos instantáneas del sistema de control de versiones (VCS) de las desarrolladoras originales en vez de publicaciones formales. Esto debería permanecer como algo excepcional, ya que son las desarrolladoras originales quienes deben clarificar cual es la entrega estable. No obstante, a veces es necesario. Por tanto, ¿qué deberíamos poner en el campo @code{version}?"
 
 #. type: Plain text
-#: doc/contributing.texi:489
+#: doc/contributing.texi:509
 msgid "Clearly, we need to make the commit identifier of the VCS snapshot visible in the version string, but we also need to make sure that the version string is monotonically increasing so that @command{guix package --upgrade} can determine which version is newer.  Since commit identifiers, notably with Git, are not monotonically increasing, we add a revision number that we increase each time we upgrade to a newer snapshot.  The resulting version string looks like this:"
 msgstr "Claramente, tenemos que hacer visible el identificador de la revisión en el VCS en la cadena de versión, pero también debemos asegurarnos que la cadena de versión incrementa monotónicamente de manera que @command{guix package --upgrade} pueda determinar qué versión es más moderna. Ya que los identificadores de revisión, notablemente en Git, no incrementan monotónicamente, añadimos un número de revisión que se incrementa cada vez que actualizamos a una nueva instantánea. La versión que resulta debería ser así:"
 
 #. type: example
-#: doc/contributing.texi:498
+#: doc/contributing.texi:518
 #, no-wrap
 msgid ""
 "2.0.11-3.cabba9e\n"
@@ -970,12 +1013,12 @@ msgstr ""
 "última versión de publicación\n"
 
 #. type: Plain text
-#: doc/contributing.texi:507
-msgid "It is a good idea to strip commit identifiers in the @code{version} field to, say, 7 digits.  It avoids an aesthetic annoyance (assuming aesthetics have a role to play here) as well as problems related to OS limits such as the maximum shebang length (127 bytes for the Linux kernel.)  It is best to use the full commit identifiers in @code{origin}s, though, to avoid ambiguities.  A typical package definition may look like this:"
+#: doc/contributing.texi:527
+msgid "It is a good idea to strip commit identifiers in the @code{version} field to, say, 7 digits.  It avoids an aesthetic annoyance (assuming aesthetics have a role to play here) as well as problems related to OS limits such as the maximum shebang length (127 bytes for the Linux kernel).  It is best to use the full commit identifiers in @code{origin}s, though, to avoid ambiguities.  A typical package definition may look like this:"
 msgstr "Es una buena idea recortar los identificadores de revisión en el campo @code{version} a, digamos, 7 dígitos. Esto evita una molestia estética (asumiendo que la estética tiene importancia aquí) así como problemas relacionados con los límites del sistema operativo como la longitud máxima de una cadena de ejecución #! (127 bytes en el núcleo Linux). Es mejor usar el identificador de revisión completo en @code{origin}, no obstante, para evitar ambigüedades. Una definición típica de paquete sería así:"
 
 #. type: lisp
-#: doc/contributing.texi:523
+#: doc/contributing.texi:543
 #, no-wrap
 msgid ""
 "(define my-package\n"
@@ -1009,61 +1052,61 @@ msgstr ""
 "      )))\n"
 
 #. type: cindex
-#: doc/contributing.texi:528
+#: doc/contributing.texi:548
 #, no-wrap
 msgid "package description"
 msgstr "descripción de paquete"
 
 #. type: cindex
-#: doc/contributing.texi:529
+#: doc/contributing.texi:549
 #, no-wrap
 msgid "package synopsis"
 msgstr "sinopsis de paquete"
 
 #. type: Plain text
-#: doc/contributing.texi:536
+#: doc/contributing.texi:556
 msgid "As we have seen before, each package in GNU@tie{}Guix includes a synopsis and a description (@pxref{Defining Packages}).  Synopses and descriptions are important: They are what @command{guix package --search} searches, and a crucial piece of information to help users determine whether a given package suits their needs.  Consequently, packagers should pay attention to what goes into them."
 msgstr "Como hemos visto previamente, cada paquete en GNU@tie{}Guix incluye una sinopsis y una descripción (@pxref{Defining Packages}). Las sinopsis y descripciones son importantes: son en lo que @command{guix package --search} busca, y una pieza crucial de información para ayudar a las usuarias a determinar si un paquete dado cubre sus necesidades. Consecuentemente, las empaquetadoras deben prestar atención a qué se incluye en ellas."
 
 # FUZZY
 #. type: Plain text
-#: doc/contributing.texi:544
+#: doc/contributing.texi:564
 msgid "Synopses must start with a capital letter and must not end with a period.  They must not start with ``a'' or ``the'', which usually does not bring anything; for instance, prefer ``File-frobbing tool'' over ``A tool that frobs files''.  The synopsis should say what the package is---e.g., ``Core GNU utilities (file, text, shell)''---or what it is used for---e.g., the synopsis for GNU@tie{}grep is ``Print lines matching a pattern''."
-msgstr "Las sinopsis deben empezar con mayúscula y no deben terminar con punto. No deben empezar con un artículo que habitualmente no aporta nada; por ejemplo, se prefiere ``Herramienta para chiribizar'' sobre ``Una herramienta que chiribiza ficheros''. La sinopsis debe decir qué es el paquete---por ejemplo, ``Utilidades básicas GNU (ficheros, texto, shell)''---o para qué se usa---por ejemplo, la sinopsis de GNU@tie{}grep es ``Imprime líneas aceptadas por un patrón''."
+msgstr "Las sinopsis deben empezar con mayúscula y no deben terminar con punto. No deben empezar con un artículo que habitualmente no aporta nada; por ejemplo, se prefiere ``Herramienta para chiribizar'' sobre ``Una herramienta que chiribiza archivos''. La sinopsis debe decir qué es el paquete---por ejemplo, ``Utilidades básicas GNU (archivos, texto, intérprete de consola)''---o para qué se usa---por ejemplo, la sinopsis de GNU@tie{}grep es ``Imprime líneas aceptadas por un patrón''."
 
 #. type: Plain text
-#: doc/contributing.texi:554
+#: doc/contributing.texi:574
 msgid "Keep in mind that the synopsis must be meaningful for a very wide audience.  For example, ``Manipulate alignments in the SAM format'' might make sense for a seasoned bioinformatics researcher, but might be fairly unhelpful or even misleading to a non-specialized audience.  It is a good idea to come up with a synopsis that gives an idea of the application domain of the package.  In this example, this might give something like ``Manipulate nucleotide sequence alignments'', which hopefully gives the user a better idea of whether this is what they are looking for."
 msgstr "Tenga en cuenta que las sinopsis deben tener un claro significado para una audiencia muy amplia. Por ejemplo, ``Manipula la alineación en el formato SAM'' puede tener sentido para una investigadora de bioinformática con experiencia, pero puede ser de poca ayuda o incluso llevar a confusión a una audiencia no-especializada. Es una buena idea proporcionar una sinopsis que da una idea del dominio de aplicación del paquete. En ese ejemplo, esto podría ser algo como ``Manipula la alineación de secuencias de nucleótidos'', lo que con suerte proporcionará a la usuaria una mejor idea sobre si esto es lo que está buscando."
 
 #. type: Plain text
-#: doc/contributing.texi:562
+#: doc/contributing.texi:582
 msgid "Descriptions should take between five and ten lines.  Use full sentences, and avoid using acronyms without first introducing them.  Please avoid marketing phrases such as ``world-leading'', ``industrial-strength'', and ``next-generation'', and avoid superlatives like ``the most advanced''---they are not helpful to users looking for a package and may even sound suspicious.  Instead, try to be factual, mentioning use cases and features."
 msgstr "Las descripciones deben tener entre cinco y diez líneas. Use frases completas, y evite usar acrónimos sin introducirlos previamente. Por favor evite frases comerciales como ``líder mundial'', ``de potencia industrial'' y ``siguiente generación'', y evite superlativos como ``el más avanzado''---no son útiles para las usuarias que buscan un paquete e incluso pueden sonar sospechosas. En vez de eso, intente ceñirse a los hechos, mencionando casos de uso y características."
 
 #. type: cindex
-#: doc/contributing.texi:563
+#: doc/contributing.texi:583
 #, no-wrap
 msgid "Texinfo markup, in package descriptions"
 msgstr "marcado Texinfo, en descripciones de paquetes"
 
 #. type: Plain text
-#: doc/contributing.texi:572
+#: doc/contributing.texi:592
 msgid "Descriptions can include Texinfo markup, which is useful to introduce ornaments such as @code{@@code} or @code{@@dfn}, bullet lists, or hyperlinks (@pxref{Overview,,, texinfo, GNU Texinfo}).  However you should be careful when using some characters for example @samp{@@} and curly braces which are the basic special characters in Texinfo (@pxref{Special Characters,,, texinfo, GNU Texinfo}).  User interfaces such as @command{guix package --show} take care of rendering it appropriately."
 msgstr "Las descripciones pueden incluir marcado Texinfo, lo que es útil para introducir ornamentos como @code{@@code} o @code{@@dfn}, listas de puntos o enlaces (@pxref{Overview,,, texinfo, GNU Texinfo}). Por consiguiente, debe ser cuidadosa cuando use algunos caracteres, por ejemplo @samp{@@} y llaves, que son los caracteres especiales básicos en Texinfo (@pxref{Special Characters,,, texinfo, GNU Texinfo}). Las interfaces de usuaria como @command{guix package --show} se encargan de su correcta visualización."
 
 #. type: Plain text
-#: doc/contributing.texi:578
+#: doc/contributing.texi:598
 msgid "Synopses and descriptions are translated by volunteers @uref{https://translationproject.org/domain/guix-packages.html, at the Translation Project} so that as many users as possible can read them in their native language.  User interfaces search them and display them in the language specified by the current locale."
 msgstr "Las sinopsis y descripciones son traducidas por voluntarias @uref{https://translationproject.org/domain/guix-packages.html, en Translation Project} para que todas las usuarias posibles puedan leerlas en su lengua nativa. Las interfaces de usuaria las buscan y las muestran en el idioma especificado por la localización actual."
 
 #. type: Plain text
-#: doc/contributing.texi:583
+#: doc/contributing.texi:603
 msgid "To allow @command{xgettext} to extract them as translatable strings, synopses and descriptions @emph{must be literal strings}.  This means that you cannot use @code{string-append} or @code{format} to construct these strings:"
 msgstr "Para permitir a @command{xgettext} extraerlas como cadenas traducibles, las sinopsis y descripciones @emph{deben ser cadenas literales}. Esto significa que no puede usar @code{string-append} o @code{format} para construir estas cadenas:"
 
 #. type: lisp
-#: doc/contributing.texi:589
+#: doc/contributing.texi:609
 #, no-wrap
 msgid ""
 "(package\n"
@@ -1077,12 +1120,12 @@ msgstr ""
 "  (description (string-append \"Esto \" \"*no*\" \" es traducible.\")))\n"
 
 #. type: Plain text
-#: doc/contributing.texi:597
+#: doc/contributing.texi:617
 msgid "Translation is a lot of work so, as a packager, please pay even more attention to your synopses and descriptions as every change may entail additional work for translators.  In order to help them, it is possible to make recommendations or instructions visible to them by inserting special comments like this (@pxref{xgettext Invocation,,, gettext, GNU Gettext}):"
 msgstr "La traducción requiere mucho trabajo, por lo que, como empaquetadora, le rogamos que ponga incluso más atención a sus sinopsis y descripciones ya que cada cambio puede suponer trabajo adicional para las traductoras. Para ayudarlas, es posible hacer recomendaciones o instrucciones insertando comentarios especiales como este (@pxref{xgettext Invocation,,, gettext, GNU Gettext}):"
 
-#. type: example
-#: doc/contributing.texi:602
+#. type: lisp
+#: doc/contributing.texi:622
 #, no-wrap
 msgid ""
 ";; TRANSLATORS: \"X11 resize-and-rotate\" should not be translated.\n"
@@ -1094,782 +1137,836 @@ msgstr ""
 "for the X11 resize-and-rotate (RandR) extension. @dots{}\")\n"
 
 #. type: cindex
-#: doc/contributing.texi:608
+#: doc/contributing.texi:627
+#, no-wrap
+msgid "snippets, when to use"
+msgstr "snippets, cuándo usar"
+
+# FUZZY
+#. type: Plain text
+#: doc/contributing.texi:638
+msgid "The boundary between using an origin snippet versus a build phase to modify the sources of a package can be elusive.  Origin snippets are typically used to remove unwanted files such as bundled libraries, nonfree sources, or to apply simple substitutions.  The source derived from an origin should produce a source that can be used to build the package on any system that the upstream package supports (i.e., act as the corresponding source).  In particular, origin snippets must not embed store items in the sources; such patching should rather be done using build phases.  Refer to the @code{origin} record documentation for more information (@pxref{origin Reference})."
+msgstr "La frontera entre el uso de un fragmento de código para la modificación de un origen (@code{snippet}) frente a una fase de construcción puede ser ténue. Los fragmentos de código para el origen se usan habitualmente para eliminar archivos no deseados, como bibliotecas incluidas, fuentes no libres, o simplemente para aplicar sustituciones simples. Las fuentes que derivan de un origen deben producir unas fuentes capaces de compilar en cualquier sistema que permita el paquete original (es decir, actuar como la fuente correspondiente). En particular, los @code{snippet} del campo @code{origin} no deben incluir elementos del almacén en las fuentes; esos parches deben llevarse a cabo en las fases de construcción. Véase el registro @code{origin} para obtener más información (@pxref{origin Reference})."
+
+#. type: cindex
+#: doc/contributing.texi:642
 #, no-wrap
 msgid "python"
 msgstr "python"
 
 #. type: Plain text
-#: doc/contributing.texi:614
+#: doc/contributing.texi:648
 msgid "We currently package Python 2 and Python 3, under the Scheme variable names @code{python-2} and @code{python} as explained in @ref{Version Numbers}.  To avoid confusion and naming clashes with other programming languages, it seems desirable that the name of a package for a Python module contains the word @code{python}."
 msgstr "Actualmente empaquetamos Python 2 y Python 3, bajo los nombres de variable Scheme @code{python-2} y @code{python} como se explica en @ref{Version Numbers}. Para evitar confusiones y conflictos de nombres con otros lenguajes de programación, parece deseable que el nombre de paquete para un módulo Python contenga la palabra @code{python}."
 
 #. type: Plain text
-#: doc/contributing.texi:621
+#: doc/contributing.texi:655
 msgid "Some modules are compatible with only one version of Python, others with both.  If the package Foo is compiled with Python 3, we name it @code{python-foo}.  If it is compiled with Python 2, we name it @code{python2-foo}.  Packages should be added when they are necessary; we don't add Python 2 variants of the package unless we are going to use them."
 msgstr "Algunos módulos son compatibles únicamente con una versión de Python, otros con ambas. Si el paquete Foo se compila únicamente con Python 3, lo llamamos @code{python-foo}. Si se compila con Python 2, lo llamamos @code{python2-foo}. Los paquetes deben añadirse cuando sean necesarios; no añadimos la variante de Python 2 del paquete a menos que vayamos a usarla."
 
 #. type: Plain text
-#: doc/contributing.texi:627
+#: doc/contributing.texi:661
 msgid "If a project already contains the word @code{python}, we drop this; for instance, the module python-dateutil is packaged under the names @code{python-dateutil} and @code{python2-dateutil}.  If the project name starts with @code{py} (e.g.@: @code{pytz}), we keep it and prefix it as described above."
 msgstr "Si un proyecto ya contiene la palabra @code{python}, la eliminamos; por ejemplo, el módulo python-dateutil se empaqueta con los nombres @code{python-dateutil} y @code{python2-dateutil}. Si el nombre del proyecto empieza con @code{py} (por ejemplo @code{pytz}), este se mantiene y el prefijo es el especificado anteriormente.."
 
 #. type: subsubsection
-#: doc/contributing.texi:628
+#: doc/contributing.texi:662
 #, no-wrap
 msgid "Specifying Dependencies"
 msgstr "Especificación de dependencias"
 
 #. type: cindex
-#: doc/contributing.texi:629
+#: doc/contributing.texi:663
 #, no-wrap
 msgid "inputs, for Python packages"
 msgstr "entradas, para paquetes Python"
 
 #. type: Plain text
-#: doc/contributing.texi:634
+#: doc/contributing.texi:668
 msgid "Dependency information for Python packages is usually available in the package source tree, with varying degrees of accuracy: in the @file{setup.py} file, in @file{requirements.txt}, or in @file{tox.ini}."
-msgstr "La información de dependencias para paquetes Python está disponible habitualmente en el árbol de fuentes, con varios grados de precisión: en el fichero @file{setup.py}, en @file{requirements.txt} o en @file{tox.ini}."
+msgstr "La información de dependencias para paquetes Python está disponible habitualmente en el árbol de fuentes, con varios grados de precisión: en el archivo @file{setup.py}, en @file{requirements.txt} o en @file{tox.ini}."
 
 #. type: Plain text
-#: doc/contributing.texi:640
+#: doc/contributing.texi:674
 msgid "Your mission, when writing a recipe for a Python package, is to map these dependencies to the appropriate type of ``input'' (@pxref{package Reference, inputs}).  Although the @code{pypi} importer normally does a good job (@pxref{Invoking guix import}), you may want to check the following check list to determine which dependency goes where."
 msgstr "Su misión, cuando escriba una receta para un paquete Python, es asociar estas dependencias con el tipo apropiado de ``entrada'' (@pxref{package Reference, inputs}). Aunque el importador de @code{pypi} normalmente hace un buen trabajo (@pxref{Invoking guix import}), puede querer comprobar la siguiente lista para determinar qué dependencia va dónde."
 
 #. type: itemize
-#: doc/contributing.texi:648
+#: doc/contributing.texi:682
 msgid "We currently package Python 2 with @code{setuptools} and @code{pip} installed like Python 3.4 has per default.  Thus you don't need to specify either of these as an input.  @command{guix lint} will warn you if you do."
 msgstr "Actualmente empaquetamos con @code{setuptools} y @code{pip} instalados como Python 3.4 tiene por defecto. Por tanto no necesita especificar ninguno de ellos como entrada. @command{guix lint} le avisará si lo hace."
 
 #. type: itemize
-#: doc/contributing.texi:654
+#: doc/contributing.texi:688
 msgid "Python dependencies required at run time go into @code{propagated-inputs}.  They are typically defined with the @code{install_requires} keyword in @file{setup.py}, or in the @file{requirements.txt} file."
-msgstr "Las dependencias Python requeridas en tiempo de ejecución van en @code{propagated-inputs}. Típicamente están definidas con la palabra clave @code{install_requires} en @file{setup.py}, o en el fichero @file{requirements.txt}."
+msgstr "Las dependencias Python requeridas en tiempo de ejecución van en @code{propagated-inputs}. Típicamente están definidas con la palabra clave @code{install_requires} en @file{setup.py}, o en el archivo @file{requirements.txt}."
 
 #. type: itemize
-#: doc/contributing.texi:662
+#: doc/contributing.texi:696
 msgid "Python packages required only at build time---e.g., those listed with the @code{setup_requires} keyword in @file{setup.py}---or only for testing---e.g., those in @code{tests_require}---go into @code{native-inputs}.  The rationale is that (1) they do not need to be propagated because they are not needed at run time, and (2) in a cross-compilation context, it's the ``native'' input that we'd want."
 msgstr "Los paquetes Python requeridos únicamente durante la construcción---por ejemplo, aquellos listados con la palabra clave @code{setup_requires} en @file{setup.py}---o únicamente para pruebas---por ejemplo, aquellos en @code{tests_require}---van en @code{native-inputs}. La razón es que (1) no necesitan ser propagados ya que no se requieren en tiempo de ejecución, y (2) en un entorno de compilación cruzada lo que necesitamos es la entrada ``nativa''."
 
 #. type: itemize
-#: doc/contributing.texi:666
+#: doc/contributing.texi:700
 msgid "Examples are the @code{pytest}, @code{mock}, and @code{nose} test frameworks.  Of course if any of these packages is also required at run-time, it needs to go to @code{propagated-inputs}."
 msgstr "Ejemplos son las bibliotecas de pruebas @code{pytest}, @code{mock} y @code{nose}. Por supuesto, si alguno de estos paquetes también se necesita en tiempo de ejecución, necesita ir en @code{propagated-inputs}."
 
 #. type: itemize
-#: doc/contributing.texi:671
+#: doc/contributing.texi:705
 msgid "Anything that does not fall in the previous categories goes to @code{inputs}, for example programs or C libraries required for building Python packages containing C extensions."
 msgstr "Todo lo que no caiga en las categorías anteriores va a @code{inputs}, por ejemplo programas o bibliotecas C requeridas para construir los paquetes Python que contienen extensiones C."
 
 #. type: itemize
-#: doc/contributing.texi:677
+#: doc/contributing.texi:711
 msgid "If a Python package has optional dependencies (@code{extras_require}), it is up to you to decide whether to add them or not, based on their usefulness/overhead ratio (@pxref{Submitting Patches, @command{guix size}})."
 msgstr "Si un paquete Python tiene dependencias opcionales (@code{extras_require}), queda en su mano decidir si las añade o no, en base a la relación utilidad/sobrecarga (@pxref{Submitting Patches, @command{guix size}})."
 
 #. type: cindex
-#: doc/contributing.texi:684
+#: doc/contributing.texi:718
 #, no-wrap
 msgid "perl"
 msgstr "perl"
 
 #. type: Plain text
-#: doc/contributing.texi:695
+#: doc/contributing.texi:729
 msgid "Perl programs standing for themselves are named as any other package, using the lowercase upstream name.  For Perl packages containing a single class, we use the lowercase class name, replace all occurrences of @code{::} by dashes and prepend the prefix @code{perl-}.  So the class @code{XML::Parser} becomes @code{perl-xml-parser}.  Modules containing several classes keep their lowercase upstream name and are also prepended by @code{perl-}.  Such modules tend to have the word @code{perl} somewhere in their name, which gets dropped in favor of the prefix.  For instance, @code{libwww-perl} becomes @code{perl-libwww}."
 msgstr "Los programas ejecutables Perl se nombran como cualquier otro paquete, mediante el uso del nombre oficial en minúsculas. Para paquetes Perl que contienen una única clase, usamos el nombre en minúsculas de la clase, substituyendo todas las ocurrencias de @code{::} por guiones y agregando el prefijo @code{perl-}. Por tanto la clase @code{XML::Parser} se convierte en @code{perl-xml-parser}. Los módulos que contienen varias clases mantienen su nombre oficial en minúsculas y también se agrega @code{perl-} al inicio. Dichos módulos tienden a tener la palabra @code{perl} en alguna parte de su nombre, la cual se elimina en favor del prefijo. Por ejemplo, @code{libwww-perl} se convierte en @code{perl-libwww}."
 
 #. type: cindex
-#: doc/contributing.texi:700
+#: doc/contributing.texi:734
 #, no-wrap
 msgid "java"
 msgstr "java"
 
 #. type: Plain text
-#: doc/contributing.texi:703
+#: doc/contributing.texi:737
 msgid "Java programs standing for themselves are named as any other package, using the lowercase upstream name."
 msgstr "Los programas Java ejecutables se nombran como cualquier otro paquete, mediante el uso del nombre oficial en minúsculas."
 
 #. type: Plain text
-#: doc/contributing.texi:709
+#: doc/contributing.texi:743
 msgid "To avoid confusion and naming clashes with other programming languages, it is desirable that the name of a package for a Java package is prefixed with @code{java-}.  If a project already contains the word @code{java}, we drop this; for instance, the package @code{ngsjava} is packaged under the name @code{java-ngs}."
 msgstr "Para evitar confusión y colisiones de nombres con otros lenguajes de programación, es deseable que el nombre del paquete para un paquete Java contenga el prefijo @code{java-}. Si el proyecto ya tiene la palabra @code{java}, eliminamos esta; por ejemplo, el paquete @code{ngsjaga} se empaqueta bajo el nombre @code{java-ngs}."
 
 #. type: Plain text
-#: doc/contributing.texi:715
+#: doc/contributing.texi:749
 msgid "For Java packages containing a single class or a small class hierarchy, we use the lowercase class name, replace all occurrences of @code{.} by dashes and prepend the prefix @code{java-}.  So the class @code{apache.commons.cli} becomes package @code{java-apache-commons-cli}."
 msgstr "Para los paquetes Java que contienen una clase única o una jerarquía pequeña, usamos el nombre de clase en minúsculas, substituyendo todas las ocurrencias de @code{.} por guiones y agregando el prefijo @code{java-}. Por tanto la clase @code{apache.commons.cli} se convierte en el paquete @code{java-apache-commons-cli}."
 
 #. type: cindex
-#: doc/contributing.texi:720
+#: doc/contributing.texi:754
 #, no-wrap
 msgid "rust"
 msgstr "rust"
 
 #. type: Plain text
-#: doc/contributing.texi:723
+#: doc/contributing.texi:757
 msgid "Rust programs standing for themselves are named as any other package, using the lowercase upstream name."
 msgstr "Los programas Rust ejecutables se nombran como cualquier otro paquete, mediante el uso del nombre oficial en minúsculas."
 
 # FUZZY FUZZY
 #. type: Plain text
-#: doc/contributing.texi:727
+#: doc/contributing.texi:761
 msgid "To prevent namespace collisions we prefix all other Rust packages with the @code{rust-} prefix.  The name should be changed to lowercase as appropriate and dashes should remain in place."
 msgstr "Para evitar colisiones en el espacio de nombres añadimos @code{rust-} como prefijo al resto de paquetes de Rust. El nombre debe cambiarse a letras minúsculas cuando sea apropiado y los guiones deben mantenerse."
 
 # FUZZY FUZZY FUZZY
 #. type: Plain text
-#: doc/contributing.texi:733
+#: doc/contributing.texi:767
 msgid "In the rust ecosystem it is common for multiple incompatible versions of a package to be used at any given time, so all packages should have a versioned suffix.  If a package has passed version 1.0.0 then just the major version number is sufficient (e.g.@: @code{rust-clap-2}), otherwise the version suffix should contain both the major and minor version (e.g.@: @code{rust-rand-0.6})."
 msgstr "En el ecosistema de rust es común que se usen al mismo tiempo múltiples versiones de un paquete incompatibles entre ellas, por lo que todos los paquetes tienen que incorporar una referencia a su versión como sufijo. Si un paquete ha superado la versión 1.0.0, el número de superior de versión es suficiente (por ejemplo @code{rust-clap-2}), en otro caso se deben incorporar tanto el número de versión superior como el siguiente (por ejemplo @code{rust-rand-0.6})."
 
 #. type: Plain text
-#: doc/contributing.texi:743
+#: doc/contributing.texi:777
 msgid "Because of the difficulty in reusing rust packages as pre-compiled inputs for other packages the Cargo build system (@pxref{Build Systems, @code{cargo-build-system}}) presents the @code{#:cargo-inputs} and @code{cargo-development-inputs} keywords as build system arguments.  It would be helpful to think of these as similar to @code{propagated-inputs} and @code{native-inputs}.  Rust @code{dependencies} and @code{build-dependencies} should go in @code{#:cargo-inputs}, and @code{dev-dependencies} should go in @code{#:cargo-development-inputs}.  If a Rust package links to other libraries then the standard placement in @code{inputs} and the like should be used."
 msgstr "Debido a la dificultad a la hora de reusar paquetes de rust como entradas pre-compiladas de otros paquetes, el sistema de construcción de Cargo (@pxref{Build Systems, @code{cargo-build-system}}) presenta las palabras clave @code{#:cargo-inputs} y @code{cargo-development-inputs} como parámetros del sistema de construcción. Puede servir de ayuda pensar en estos parámetros de manera similar a @code{propagated-inputs} y @code{native-inputs}. Las dependencias de rust de @code{dependencies} y @code{build-dependencies} deben proporcionarse a través de @code{#:cargo-inputs}, y @code{dev-dependencies} deben proporcionarse a través de @code{#:cargo-development-inputs}. Si un paquete de Rust se enlaza con otras bibliotecas deben proporcionarse como habitualmente en @code{inputs} y otros campos relacionados."
 
 # FUZZY FUZZY
 # MAAV: ¿Atrofiado?
 #. type: Plain text
-#: doc/contributing.texi:749
+#: doc/contributing.texi:783
 msgid "Care should be taken to ensure the correct version of dependencies are used; to this end we try to refrain from skipping the tests or using @code{#:skip-build?} when possible.  Of course this is not always possible, as the package may be developed for a different Operating System, depend on features from the Nightly Rust compiler, or the test suite may have atrophied since it was released."
 msgstr "Se debe tener cuidado a la hora de asegurar que se usan las versiones correctas de las dependencias; para ello intentamos no evitar la ejecución de pruebas o la construcción completa con @code{#:skip-build?} cuando sea posible. Por supuesto, no siempre es posible, ya que el paquete puede desarrollarse para un sistema operativo distinto, depender de características del compilador de Rust que se construye a diario (Nightly), o la batería de pruebas puede haberse atrofiado desde su lanzamiento."
 
 #. type: cindex
-#: doc/contributing.texi:754 doc/guix.texi:1679
+#: doc/contributing.texi:788 doc/guix.texi:1784
 #, no-wrap
 msgid "fonts"
 msgstr "tipografías"
 
 #. type: Plain text
-#: doc/contributing.texi:760
+#: doc/contributing.texi:794
 msgid "For fonts that are in general not installed by a user for typesetting purposes, or that are distributed as part of a larger software package, we rely on the general packaging rules for software; for instance, this applies to the fonts delivered as part of the X.Org system or fonts that are part of TeX Live."
 msgstr "Para tipografías que no se instalan generalmente por una usuaria para propósitos tipográficos, o que se distribuyen como parte de un paquete de software más grande, seguimos las reglas generales de empaquetamiento de software; por ejemplo, esto aplica a las tipografías distribuidas como parte del sistema X.Org o las tipografías que son parte de TeX Live."
 
 #. type: Plain text
-#: doc/contributing.texi:764
+#: doc/contributing.texi:798
 msgid "To make it easier for a user to search for fonts, names for other packages containing only fonts are constructed as follows, independently of the upstream package name."
 msgstr "Para facilitar a las usuarias la búsqueda de tipografías, los nombres para otros paquetes que contienen únicamente tipografías se construyen como sigue, independientemente del nombre de paquete oficial."
 
 #. type: Plain text
-#: doc/contributing.texi:772
+#: doc/contributing.texi:806
 msgid "The name of a package containing only one font family starts with @code{font-}; it is followed by the foundry name and a dash @code{-} if the foundry is known, and the font family name, in which spaces are replaced by dashes (and as usual, all upper case letters are transformed to lower case).  For example, the Gentium font family by SIL is packaged under the name @code{font-sil-gentium}."
 msgstr "El nombre de un paquete que contiene únicamente una familia tipográfica comienza con @code{font-}; seguido por el nombre de la tipografía y un guión si la tipografía es conocida, y el nombre de la familia tipográfica, donde los espacios se sustituyen por guiones (y como es habitual, todas las letras mayúsculas se transforman a minúsculas). Por ejemplo, la familia de tipografías Gentium de SIL se empaqueta bajo el nombre de @code{font-sil-gentium}."
 
 #. type: Plain text
-#: doc/contributing.texi:781
+#: doc/contributing.texi:815
 msgid "For a package containing several font families, the name of the collection is used in the place of the font family name.  For instance, the Liberation fonts consist of three families, Liberation Sans, Liberation Serif and Liberation Mono.  These could be packaged separately under the names @code{font-liberation-sans} and so on; but as they are distributed together under a common name, we prefer to package them together as @code{font-liberation}."
 msgstr "Para un paquete que contenga varias familias tipográficas, el nombre de la colección se usa en vez del nombre de la familia tipográfica. Por ejemplo, las tipografías Liberation consisten en tres familias: Liberation Sans, Liberation Serif y Liberation Mono. Estas se podrían empaquetar por separado bajo los nombres @code{font-liberation-sans}, etcétera; pero como se distribuyen de forma conjunta bajo un nombre común, preferimos empaquetarlas conjuntamente como @code{font-liberation}."
 
 #. type: Plain text
-#: doc/contributing.texi:787
+#: doc/contributing.texi:821
 msgid "In the case where several formats of the same font family or font collection are packaged separately, a short form of the format, prepended by a dash, is added to the package name.  We use @code{-ttf} for TrueType fonts, @code{-otf} for OpenType fonts and @code{-type1} for PostScript Type 1 fonts."
 msgstr "En el caso de que varios formatos de la misma familia o colección tipográfica se empaqueten de forma separada, una forma corta del formato, precedida por un guión, se añade al nombre del paquete. Usamos @code{-ttf} para tipografías TrueType, @code{-otf} para tipografías OpenType y @code{-type1} para tipografías Tipo 1 PostScript."
 
 #. type: Plain text
-#: doc/contributing.texi:795
+#: doc/contributing.texi:829
 msgid "In general our code follows the GNU Coding Standards (@pxref{Top,,, standards, GNU Coding Standards}).  However, they do not say much about Scheme, so here are some additional rules."
 msgstr "En general nuestro código sigue los Estándares de codificación GNU (@pxref{Top,,, standards, GNU Coding Standards}). No obstante, no dicen mucho de Scheme, así que aquí están algunas reglas adicionales."
 
 #. type: subsection
-#: doc/contributing.texi:801 doc/contributing.texi:803
-#: doc/contributing.texi:804
+#: doc/contributing.texi:835 doc/contributing.texi:837
+#: doc/contributing.texi:838
 #, no-wrap
 msgid "Programming Paradigm"
 msgstr "Paradigma de programación"
 
 #. type: menuentry
-#: doc/contributing.texi:801
+#: doc/contributing.texi:835
 msgid "How to compose your elements."
 msgstr "Cómo componer sus elementos."
 
 #. type: subsection
-#: doc/contributing.texi:801 doc/contributing.texi:810
-#: doc/contributing.texi:811
+#: doc/contributing.texi:835 doc/contributing.texi:844
+#: doc/contributing.texi:845
 #, no-wrap
 msgid "Modules"
 msgstr "Módulos"
 
 #. type: menuentry
-#: doc/contributing.texi:801
+#: doc/contributing.texi:835
 msgid "Where to store your code?"
 msgstr "¿Dónde almacenar su código?"
 
 #. type: subsection
-#: doc/contributing.texi:801 doc/contributing.texi:821
-#: doc/contributing.texi:822
+#: doc/contributing.texi:835 doc/contributing.texi:855
+#: doc/contributing.texi:856
 #, no-wrap
 msgid "Data Types and Pattern Matching"
 msgstr "Tipos de datos y reconocimiento de patrones"
 
 #. type: menuentry
-#: doc/contributing.texi:801
+#: doc/contributing.texi:835
 msgid "Implementing data structures."
 msgstr "Implementación de estructuras de datos."
 
 #. type: subsection
-#: doc/contributing.texi:801 doc/contributing.texi:835
-#: doc/contributing.texi:836
+#: doc/contributing.texi:835 doc/contributing.texi:869
+#: doc/contributing.texi:870
 #, no-wrap
 msgid "Formatting Code"
 msgstr "Formato del código"
 
 #. type: menuentry
-#: doc/contributing.texi:801
+#: doc/contributing.texi:835
 msgid "Writing conventions."
 msgstr "Convenciones de escritura."
 
 #. type: Plain text
-#: doc/contributing.texi:809
+#: doc/contributing.texi:843
 msgid "Scheme code in Guix is written in a purely functional style.  One exception is code that involves input/output, and procedures that implement low-level concepts, such as the @code{memoize} procedure."
 msgstr "El código scheme en Guix está escrito en un estilo puramente funcional. Una excepción es el código que incluye entrada/salida, y procedimientos que implementan conceptos de bajo nivel, como el procedimiento @code{memoize}."
 
 # TODO: (MAAV) builder/host. Comprobar constancia en el texto.
 #. type: Plain text
-#: doc/contributing.texi:817
+#: doc/contributing.texi:851
 msgid "Guile modules that are meant to be used on the builder side must live in the @code{(guix build @dots{})} name space.  They must not refer to other Guix or GNU modules.  However, it is OK for a ``host-side'' module to use a build-side module."
 msgstr "Los módulos Guile que están destinados a ser usados en el lado del constructor deben encontrarse en el espacio de nombres @code{(guix build @dots{})}. No deben hacer referencia a otros módulos Guix o GNU. No obstante, no hay problema en usar un módulo del lado del constructor en un módulo ``del lado del cliente''."
 
 #. type: Plain text
-#: doc/contributing.texi:820
+#: doc/contributing.texi:854
 msgid "Modules that deal with the broader GNU system should be in the @code{(gnu @dots{})} name space rather than @code{(guix @dots{})}."
 msgstr "Los módulos que tratan con el sistema GNU más amplio deben estar en el espacio de nombres @code{(gnu @dots{})} en vez de en @code{(guix @dots{})}."
 
 #. type: Plain text
-#: doc/contributing.texi:829
+#: doc/contributing.texi:863
 msgid "The tendency in classical Lisp is to use lists to represent everything, and then to browse them ``by hand'' using @code{car}, @code{cdr}, @code{cadr}, and co.  There are several problems with that style, notably the fact that it is hard to read, error-prone, and a hindrance to proper type error reports."
 msgstr "La tendencia en el Lisp clásico es usar listas para representar todo, y recorrerlas ``a mano'' usando @code{car}, @code{cdr}, @code{cadr} y compañía. Hay varios problemas con este estilo, notablemente el hecho de que es difícil de leer, propenso a errores y una carga para informes adecuados de errores de tipado."
 
 #. type: Plain text
-#: doc/contributing.texi:834
+#: doc/contributing.texi:868
 msgid "Guix code should define appropriate data types (for instance, using @code{define-record-type*}) rather than abuse lists.  In addition, it should use pattern matching, via Guile’s @code{(ice-9 match)} module, especially when matching lists."
 msgstr "El código de Guix debe definir tipos de datos apropiados (por ejemplo, mediante el uso @code{define-record-type*}) en vez de abusar de las listas. Además debe usarse el reconocimiento de patrones, vía el módulo de Guile @code{(ice-9 match)}, especialmente cuando se analizan listas."
 
 #. type: cindex
-#: doc/contributing.texi:838
+#: doc/contributing.texi:872
 #, no-wrap
 msgid "formatting code"
 msgstr "dar formato al código"
 
 #. type: cindex
-#: doc/contributing.texi:839
+#: doc/contributing.texi:873
 #, no-wrap
 msgid "coding style"
 msgstr "estilo de codificación"
 
 #. type: Plain text
-#: doc/contributing.texi:846
+#: doc/contributing.texi:880
 msgid "When writing Scheme code, we follow common wisdom among Scheme programmers.  In general, we follow the @url{https://mumble.net/~campbell/scheme/style.txt, Riastradh's Lisp Style Rules}.  This document happens to describe the conventions mostly used in Guile’s code too.  It is very thoughtful and well written, so please do read it."
 msgstr "Cuando escribimos código Scheme, seguimos la sabiduría común entre las programadoras Scheme. En general, seguimos las @url{https://mumble.net/~campbell/scheme/style.txt, Reglas de estilo Lisp de Riastradh}. Este documento resulta que también describe las convenciones más usadas en el código Guile. Está lleno de ideas y bien escrito, así que recomendamos encarecidamente su lectura."
 
 #. type: Plain text
-#: doc/contributing.texi:853
+#: doc/contributing.texi:887
 msgid "Some special forms introduced in Guix, such as the @code{substitute*} macro, have special indentation rules.  These are defined in the @file{.dir-locals.el} file, which Emacs automatically uses.  Also note that Emacs-Guix provides @code{guix-devel-mode} mode that indents and highlights Guix code properly (@pxref{Development,,, emacs-guix, The Emacs-Guix Reference Manual})."
-msgstr "Algunas formas especiales introducidas en Guix, como el macro @code{substitute*} tienen reglas de indentación especiales. Estas están definidas en el fichero @file{.dir-locals.el}, el cual Emacs usa automáticamente. Fíjese que además Emacs-Guix proporciona el modo @code{guix-devel-mode} que indenta y resalta adecuadamente el código de Guix (@pxref{Development,,, emacs-guix, The Emacs-Guix Reference Manual})."
+msgstr "Algunas formas especiales introducidas en Guix, como el macro @code{substitute*} tienen reglas de indentación especiales. Estas están definidas en el archivo @file{.dir-locals.el}, el cual Emacs usa automáticamente. Fíjese que además Emacs-Guix proporciona el modo @code{guix-devel-mode} que indenta y resalta adecuadamente el código de Guix (@pxref{Development,,, emacs-guix, The Emacs-Guix Reference Manual})."
 
 #. type: cindex
-#: doc/contributing.texi:854
+#: doc/contributing.texi:888
 #, no-wrap
 msgid "indentation, of code"
 msgstr "indentación, de código"
 
 #. type: cindex
-#: doc/contributing.texi:855
+#: doc/contributing.texi:889
 #, no-wrap
 msgid "formatting, of code"
 msgstr "formato, de código"
 
 #. type: Plain text
-#: doc/contributing.texi:858
+#: doc/contributing.texi:892
 msgid "If you do not use Emacs, please make sure to let your editor knows these rules.  To automatically indent a package definition, you can also run:"
 msgstr "Si no usa Emacs, por favor asegúrese de que su editor conoce esas reglas. Para indentar automáticamente una definición de paquete también puede ejecutar:"
 
 # XXX: (MAAV) ¿@var se traduce?
 #. type: example
-#: doc/contributing.texi:861
+#: doc/contributing.texi:895
 #, no-wrap
 msgid "./etc/indent-code.el gnu/packages/@var{file}.scm @var{package}\n"
-msgstr "./etc/indent-code.el gnu/packages/@var{fichero}.scm @var{paquete}\n"
+msgstr "./etc/indent-code.el gnu/packages/@var{archivo}.scm @var{paquete}\n"
 
 #. type: Plain text
-#: doc/contributing.texi:867
+#: doc/contributing.texi:901
 msgid "This automatically indents the definition of @var{package} in @file{gnu/packages/@var{file}.scm} by running Emacs in batch mode.  To indent a whole file, omit the second argument:"
-msgstr "Esto indenta automáticamente la definición de @var{paquete} en @file{gnu/packages/@var{fichero}.scm} ejecutando Emacs en modo de procesamiento de lotes. Para indentar un fichero completo, omita el segundo parámetro:"
+msgstr "Esto indenta automáticamente la definición de @var{paquete} en @file{gnu/packages/@var{archivo}.scm} ejecutando Emacs en modo de procesamiento de lotes. Para indentar un archivo completo, omita el segundo parámetro:"
 
 #. type: example
-#: doc/contributing.texi:870
+#: doc/contributing.texi:904
 #, no-wrap
 msgid "./etc/indent-code.el gnu/services/@var{file}.scm\n"
-msgstr "./etc/indent-code.el gnu/services/@var{fichero}.scm\n"
+msgstr "./etc/indent-code.el gnu/services/@var{archivo}.scm\n"
 
 #. type: cindex
-#: doc/contributing.texi:872
+#: doc/contributing.texi:906
 #, no-wrap
 msgid "Vim, Scheme code editing"
 msgstr "Vim, edición de código Scheme"
 
 #. type: Plain text
-#: doc/contributing.texi:878
+#: doc/contributing.texi:912
 msgid "If you are editing code with Vim, we recommend that you run @code{:set autoindent} so that your code is automatically indented as you type.  Additionally, @uref{https://www.vim.org/scripts/script.php?script_id=3998, @code{paredit.vim}} may help you deal with all these parentheses."
 msgstr "Si está editando código con Vim, le recomendamos ejecutar @code{:set autoindent} para que el código se indente automáticamente mientras escribe. Adicionalmente, @uref{https://www.vim.org/scripts/script.php?script_id=3998, @code{paredit.vim}} puede ayudar a manejar todos estos paréntesis."
 
 #. type: Plain text
-#: doc/contributing.texi:882
+#: doc/contributing.texi:916
 msgid "We require all top-level procedures to carry a docstring.  This requirement can be relaxed for simple private procedures in the @code{(guix build @dots{})} name space, though."
 msgstr "Requerimos que todos los procedimientos del nivel superior tengan una cadena de documentación. Este requisito puede relajarse para procedimientos simples privados en el espacio de nombres @code{(guix build @dots{})} no obstante."
 
 #. type: Plain text
-#: doc/contributing.texi:885
+#: doc/contributing.texi:919
 msgid "Procedures should not have more than four positional parameters.  Use keyword parameters for procedures that take more than four parameters."
 msgstr "Los procedimientos no deben tener más de cuatro parámetros posicionales. Use parámetros con palabras clave para procedimientos que toman más de cuatro parámetros."
 
 #. type: Plain text
-#: doc/contributing.texi:896
+#: doc/contributing.texi:930
 msgid "Development is done using the Git distributed version control system.  Thus, access to the repository is not strictly necessary.  We welcome contributions in the form of patches as produced by @code{git format-patch} sent to the @email{guix-patches@@gnu.org} mailing list.  Seasoned Guix developers may also want to look at the section on commit access (@pxref{Commit Access})."
 msgstr "El desarrollo se lleva a cabo usando el sistema de control de versiones distribuido Git. Por lo tanto, no es estrictamente necesario el acceso al repositorio. Son bienvenidas las contribuciones en forma de parches como los producidos por @code{git format-patch} enviadas a la lista de correo @email{guix-patches@@gnu.org}. Las desarrolladoras de Guix que lleven un tiempo en ello puede que también quieran leer la sección sobre el acceso al repositorio (@pxref{Commit Access})."
 
 #. type: Plain text
-#: doc/contributing.texi:903
+#: doc/contributing.texi:937
 msgid "This mailing list is backed by a Debbugs instance, which allows us to keep track of submissions (@pxref{Tracking Bugs and Patches}).  Each message sent to that mailing list gets a new tracking number assigned; people can then follow up on the submission by sending email to @code{@var{NNN}@@debbugs.gnu.org}, where @var{NNN} is the tracking number (@pxref{Sending a Patch Series})."
 msgstr "Esta lista de correo está respaldada por una instancia de Debbugs accesible en @uref{https://bugs.gnu.org/guix-patches}, la cual nos permite mantener el seguimiento de los envíos. A cada mensaje enviado a esa lista de correo se le asigna un número de seguimiento; la gente puede realizar aportaciones sobre el tema mediante el envío de correos electrónicos a @code{@var{NNN}@@debbugs.gnu.org}, donde @var{NNN} es el número de seguimiento (@pxref{Sending a Patch Series})."
 
 #. type: Plain text
-#: doc/contributing.texi:907
+#: doc/contributing.texi:941
 msgid "Please write commit logs in the ChangeLog format (@pxref{Change Logs,,, standards, GNU Coding Standards}); you can check the commit history for examples."
 msgstr "Le rogamos que escriba los mensajes de revisiones en formato ChangeLog (@pxref{Change Logs,,, standards, GNU Coding Standards}); puede comprobar la historia de revisiones en busca de ejemplos."
 
 #. type: Plain text
-#: doc/contributing.texi:910
+#: doc/contributing.texi:944
 msgid "Before submitting a patch that adds or modifies a package definition, please run through this check list:"
 msgstr "Antes de enviar un parche que añade o modifica una definición de un paquete, por favor recorra esta lista de comprobaciones:"
 
 #. type: enumerate
-#: doc/contributing.texi:917
+#: doc/contributing.texi:951
 msgid "If the authors of the packaged software provide a cryptographic signature for the release tarball, make an effort to verify the authenticity of the archive.  For a detached GPG signature file this would be done with the @code{gpg --verify} command."
-msgstr "Si las autoras del paquete software proporcionan una firma criptográfica para el archivo de la versión, haga un esfuerzo para verificar la autenticidad del archivo. Para un fichero de firma GPG separado esto puede hacerse con la orden @code{gpg --verify}."
+msgstr "Si las autoras del paquete software proporcionan una firma criptográfica para el archivo de la versión, haga un esfuerzo para verificar la autenticidad del archivo. Para un archivo de firma GPG separado esto puede hacerse con la orden @code{gpg --verify}."
 
 #. type: enumerate
-#: doc/contributing.texi:921
+#: doc/contributing.texi:955
 msgid "Take some time to provide an adequate synopsis and description for the package.  @xref{Synopses and Descriptions}, for some guidelines."
 msgstr "Dedique algún tiempo a proporcionar una sinopsis y descripción adecuadas para el paquete. @xref{Synopses and Descriptions}, para algunas directrices."
 
 #. type: enumerate
-#: doc/contributing.texi:926
+#: doc/contributing.texi:960
 msgid "Run @code{guix lint @var{package}}, where @var{package} is the name of the new or modified package, and fix any errors it reports (@pxref{Invoking guix lint})."
 msgstr "Ejecute @code{guix lint @var{paquete}}, donde @var{paquete} es el nombre del paquete nuevo o modificado, y corrija cualquier error del que informe (@pxref{Invoking guix lint})."
 
 #. type: enumerate
-#: doc/contributing.texi:930
+#: doc/contributing.texi:964
 msgid "Make sure the package builds on your platform, using @code{guix build @var{package}}."
 msgstr "Asegúrese de que el paquete compile en su plataforma, usando @code{guix build @var{package}}."
 
 #. type: enumerate
-#: doc/contributing.texi:937
+#: doc/contributing.texi:971
 msgid "We recommend you also try building the package on other supported platforms.  As you may not have access to actual hardware platforms, we recommend using the @code{qemu-binfmt-service-type} to emulate them.  In order to enable it, add the following service to the list of services in your @code{operating-system} configuration:"
 msgstr "También le recomendamos que pruebe a construir el paquete en otras plataformas disponibles. Como puede no disponer de acceso a dichas plataformas hardware físicamente, le recomendamos el uso de @code{qemu-binfmt-service-type} para emularlas. Para activarlo, añada el siguiente servicio a la lista de servicios en su configuración @code{operating-system}:"
 
 #. type: lisp
-#: doc/contributing.texi:943
+#: doc/contributing.texi:977
 #, no-wrap
 msgid ""
 "(service qemu-binfmt-service-type\n"
 " (qemu-binfmt-configuration\n"
-"   (platforms (lookup-qemu-platforms \"arm\" \"aarch64\" \"mips64el\"))\n"
+"   (platforms (lookup-qemu-platforms \"arm\" \"aarch64\"))\n"
 "   (guix-support? #t)))\n"
 msgstr ""
 "(service qemu-binfmt-service-type\n"
 " (qemu-binfmt-configuration\n"
-"   (platforms (lookup-qemu-platforms \"arm\" \"aarch64\" \"mips64el\"))\n"
+"   (platforms (lookup-qemu-platforms \"arm\" \"aarch64\"))\n"
 "   (guix-support? #t)))\n"
 
 #. type: enumerate
-#: doc/contributing.texi:946
+#: doc/contributing.texi:980
 msgid "Then reconfigure your system."
 msgstr "Una vez hecho esto, reconfigure su sistema."
 
 #. type: enumerate
-#: doc/contributing.texi:951
+#: doc/contributing.texi:985
 msgid "You can then build packages for different platforms by specifying the @code{--system} option.  For example, to build the \"hello\" package for the armhf, aarch64, or mips64 architectures, you would run the following commands, respectively:"
 msgstr "Entonces podrá construir paquetes para diferentes plataformas mediante la opción @code{--system}. Por ejemplo, para la construcción del paquete \"hello\" para las arquitecturas armhf, aarch64 o mips64 ejecutaría las siguientes órdenes, respectivamente:"
 
 #. type: example
-#: doc/contributing.texi:955
+#: doc/contributing.texi:988
 #, no-wrap
 msgid ""
 "guix build --system=armhf-linux --rounds=2 hello\n"
 "guix build --system=aarch64-linux --rounds=2 hello\n"
-"guix build --system=mips64el-linux --rounds=2 hello\n"
 msgstr ""
 "guix build --system=armhf-linux --rounds=2 hello\n"
 "guix build --system=aarch64-linux --rounds=2 hello\n"
-"guix build --system=mips64el-linux --rounds=2 hello\n"
 
 # FUZZY
 #. type: cindex
-#: doc/contributing.texi:958
+#: doc/contributing.texi:991
 #, no-wrap
 msgid "bundling"
 msgstr "empaquetamientos"
 
 #. type: enumerate
-#: doc/contributing.texi:961
+#: doc/contributing.texi:994
 msgid "Make sure the package does not use bundled copies of software already available as separate packages."
 msgstr "Asegúrese de que el paquete no usa copias empaquetadas de software ya disponible como paquetes separados."
 
 #. type: enumerate
-#: doc/contributing.texi:970
+#: doc/contributing.texi:1003
 msgid "Sometimes, packages include copies of the source code of their dependencies as a convenience for users.  However, as a distribution, we want to make sure that such packages end up using the copy we already have in the distribution, if there is one.  This improves resource usage (the dependency is built and stored only once), and allows the distribution to make transverse changes such as applying security updates for a given software package in a single place and have them affect the whole system---something that bundled copies prevent."
 msgstr "A veces, paquetes incluyen copias embebidas del código fuente de sus dependencias para conveniencia de las usuarias. No obstante, como distribución, queremos asegurar que dichos paquetes efectivamente usan la copia que ya tenemos en la distribución si hay ya una. Esto mejora el uso de recursos (la dependencia es construida y almacenada una sola vez), y permite a la distribución hacer cambios transversales como aplicar actualizaciones de seguridad para un software dado en un único lugar y que afecte a todo el sistema---algo que esas copias embebidas impiden."
 
 #. type: enumerate
-#: doc/contributing.texi:979
+#: doc/contributing.texi:1012
 msgid "Take a look at the profile reported by @command{guix size} (@pxref{Invoking guix size}).  This will allow you to notice references to other packages unwillingly retained.  It may also help determine whether to split the package (@pxref{Packages with Multiple Outputs}), and which optional dependencies should be used.  In particular, avoid adding @code{texlive} as a dependency: because of its extreme size, use @code{texlive-tiny} or @code{texlive-union} instead."
 msgstr "Eche un vistazo al perfil mostrado por @command{guix size} (@pxref{Invoking guix size}). Esto le permitirá darse cuenta de referencias a otros paquetes retenidas involuntariamente. También puede ayudar a determinar si se debe dividir el paquete (@pxref{Packages with Multiple Outputs}), y qué dependencias opcionales deben usarse. En particular, evite añadir @code{texlive} como una dependencia: debido a su tamaño extremo, use @code{texlive-tiny} o @code{texlive-union}."
 
 #. type: enumerate
-#: doc/contributing.texi:984
+#: doc/contributing.texi:1017
 msgid "For important changes, check that dependent package (if applicable) are not affected by the change; @code{guix refresh --list-dependent @var{package}} will help you do that (@pxref{Invoking guix refresh})."
 msgstr "Para cambios importantes, compruebe que los paquetes dependientes (si aplica) no se ven afectados por el cambio; @code{guix refresh --list-dependent @var{package}} le ayudará a hacerlo (@pxref{Invoking guix refresh})."
 
 #. type: cindex
-#: doc/contributing.texi:986
+#: doc/contributing.texi:1019
 #, no-wrap
 msgid "branching strategy"
 msgstr "estrategia de ramas"
 
 #. type: cindex
-#: doc/contributing.texi:987
+#: doc/contributing.texi:1020
 #, no-wrap
 msgid "rebuild scheduling strategy"
 msgstr "estrategia de planificación de reconstrucciones"
 
 #. type: enumerate
-#: doc/contributing.texi:990
+#: doc/contributing.texi:1023
 msgid "Depending on the number of dependent packages and thus the amount of rebuilding induced, commits go to different branches, along these lines:"
 msgstr "En base al número de paquetes dependientes y, por tanto, del tamaño de la reconstrucción inducida, los revisiones van a ramas separadas, según estas líneas:"
 
 #. type: item
-#: doc/contributing.texi:992
+#: doc/contributing.texi:1025
 #, no-wrap
 msgid "300 dependent packages or less"
 msgstr "300 paquetes dependientes o menos"
 
 #. type: table
-#: doc/contributing.texi:994
+#: doc/contributing.texi:1027
 msgid "@code{master} branch (non-disruptive changes)."
 msgstr "rama @code{master} (cambios no disruptivos)."
 
 #. type: item
-#: doc/contributing.texi:995
+#: doc/contributing.texi:1028
 #, no-wrap
-msgid "between 300 and 1,200 dependent packages"
-msgstr "entre 300 y 1.200 paquetes dependientes"
+msgid "between 300 and 1,800 dependent packages"
+msgstr "entre 300 y 1.800 paquetes dependientes"
 
 #. type: table
-#: doc/contributing.texi:1000
-msgid "@code{staging} branch (non-disruptive changes).  This branch is intended to be merged in @code{master} every 3 weeks or so.  Topical changes (e.g., an update of the GNOME stack) can instead go to a specific branch (say, @code{gnome-updates})."
-msgstr "rama @code{staging} (cambios no disruptivos). Esta rama está pensada para ser incorporada en @code{master} cada 3 semanas más o menos. Ramas temáticas (por ejemplo, una actualización de la pila de GNOME) pueden ir en una rama específica (digamos, @code{gnome-updates})."
+#: doc/contributing.texi:1033
+msgid "@code{staging} branch (non-disruptive changes).  This branch is intended to be merged in @code{master} every 6 weeks or so.  Topical changes (e.g., an update of the GNOME stack) can instead go to a specific branch (say, @code{gnome-updates})."
+msgstr "rama @code{staging} (cambios no disruptivos). Esta rama está pensada para ser incorporada en @code{master} cada 6 semanas más o menos. Ramas temáticas (por ejemplo, una actualización de la pila de GNOME) pueden ir en una rama específica (digamos, @code{gnome-updates})."
 
 #. type: item
-#: doc/contributing.texi:1001
+#: doc/contributing.texi:1034
 #, no-wrap
-msgid "more than 1,200 dependent packages"
-msgstr "más de 1.200 paquetes dependientes"
+msgid "more than 1,800 dependent packages"
+msgstr "más de 1.800 paquetes dependientes"
 
 #. type: table
-#: doc/contributing.texi:1005
-msgid "@code{core-updates} branch (may include major and potentially disruptive changes).  This branch is intended to be merged in @code{master} every 2.5 months or so."
-msgstr "rama @code{core-updates} (puede incluir cambios mayores y potencialmente disruptivos). Esta rama está pensada para ser incluida en @code{master} cada 2,5 más o menos."
+#: doc/contributing.texi:1038
+msgid "@code{core-updates} branch (may include major and potentially disruptive changes).  This branch is intended to be merged in @code{master} every 6 months or so."
+msgstr "rama @code{core-updates} (puede incluir cambios mayores y potencialmente disruptivos). Esta rama está pensada para ser mezclada en @code{master} cada 6 meses más o menos."
 
 #. type: enumerate
-#: doc/contributing.texi:1012
-msgid "All these branches are @uref{@value{SUBSTITUTE-SERVER}, tracked by our build farm} and merged into @code{master} once everything has been successfully built.  This allows us to fix issues before they hit users, and to reduce the window during which pre-built binaries are not available."
-msgstr "Todas estas ramas son @uref{@value{SUBSTITUTE-SERVER}, seguidas por nuestra granja de construcción} e incluidas en @code{master} una vez todo se ha construido satisfactoriamente. Esto nos permite corregir errores antes de que afecten a usuarias, y reducir la ventana durante la cual los binarios preconstruidos no están disponibles."
+#: doc/contributing.texi:1045
+msgid "All these branches are @uref{@value{SUBSTITUTE-URL}, tracked by our build farm} and merged into @code{master} once everything has been successfully built.  This allows us to fix issues before they hit users, and to reduce the window during which pre-built binaries are not available."
+msgstr "Todas estas ramas son @uref{@value{SUBSTITUTE-URL}, seguidas por nuestra granja de construcción} e incluidas en @code{master} una vez todo se ha construido satisfactoriamente. Esto nos permite corregir errores antes de que afecten a usuarias, y reducir la ventana durante la cual los binarios preconstruidos no están disponibles."
 
 #. type: enumerate
-#: doc/contributing.texi:1019
+#: doc/contributing.texi:1052
 msgid "Generally, branches other than @code{master} are considered @emph{frozen} if there has been a recent evaluation, or there is a corresponding @code{-next} branch.  Please ask on the mailing list or IRC if unsure where to place a patch."
 msgstr "Generalmente, ramas distintas a @code{master} se consideran @emph{congeladas} si ha habido una evaluación reciente, o hay una rama @code{-next} correspondiente. Por favor, pregunte en la lista de correo o en IRC si no está segura de dónde colocar un parche."
 
 #. type: cindex
-#: doc/contributing.texi:1021
+#: doc/contributing.texi:1054
 #, no-wrap
 msgid "determinism, of build processes"
 msgstr "determinismo, del proceso de construcción"
 
 #. type: cindex
-#: doc/contributing.texi:1022
+#: doc/contributing.texi:1055
 #, no-wrap
 msgid "reproducible builds, checking"
 msgstr "construcciones reproducibles, comprobar"
 
 #. type: enumerate
-#: doc/contributing.texi:1026
+#: doc/contributing.texi:1059
 msgid "Check whether the package's build process is deterministic.  This typically means checking whether an independent build of the package yields the exact same result that you obtained, bit for bit."
 msgstr "Compruebe si el proceso de construcción de un paquete es determinista. Esto significa típicamente comprobar si una construcción independiente del paquete ofrece exactamente el mismo resultado que usted obtuvo, bit a bit."
 
 #. type: enumerate
-#: doc/contributing.texi:1029
+#: doc/contributing.texi:1062
 msgid "A simple way to do that is by building the same package several times in a row on your machine (@pxref{Invoking guix build}):"
 msgstr "Una forma simple de hacerlo es construyendo el mismo paquete varias veces seguidas en su máquina (@pxref{Invoking guix build}):"
 
 #. type: example
-#: doc/contributing.texi:1032
+#: doc/contributing.texi:1065
 #, no-wrap
 msgid "guix build --rounds=2 my-package\n"
 msgstr "guix build --rounds=2 mi-paquete\n"
 
 #. type: enumerate
-#: doc/contributing.texi:1036
+#: doc/contributing.texi:1069
 msgid "This is enough to catch a class of common non-determinism issues, such as timestamps or randomly-generated output in the build result."
 msgstr "Esto es suficiente una clase común de problemas de no-determinismo, como las marcas de tiempo o salida generada aleatoriamente en el resultado de la construcción."
 
 #. type: enumerate
-#: doc/contributing.texi:1046
+#: doc/contributing.texi:1079
 msgid "Another option is to use @command{guix challenge} (@pxref{Invoking guix challenge}).  You may run it once the package has been committed and built by @code{@value{SUBSTITUTE-SERVER}} to check whether it obtains the same result as you did.  Better yet: Find another machine that can build it and run @command{guix publish}.  Since the remote build machine is likely different from yours, this can catch non-determinism issues related to the hardware---e.g., use of different instruction set extensions---or to the operating system kernel---e.g., reliance on @code{uname} or @file{/proc} files."
-msgstr "Otra opción es el uso de @command{guix challenge} (@pxref{Invoking guix challenge}). Puede ejecutarse una vez la revisión del paquete haya sido publicada y construida por @code{@value{SUBSTITUTE-SERVER}} para comprobar si obtuvo el mismo resultado que usted. Mejor aún: encuentre otra máquina que pueda construirla y ejecute @command{guix publish}. Ya que la máquina remota es probablemente diferente a la suya, puede encontrar problemas de no-determinismo relacionados con el hardware---por ejemplo, el uso de un conjunto de instrucciones extendido diferente---o con el núcleo del sistema operativo---por ejemplo, dependencias en @code{uname} o ficheros @file{/proc}."
+msgstr "Otra opción es el uso de @command{guix challenge} (@pxref{Invoking guix challenge}). Puede ejecutarse una vez la revisión del paquete haya sido publicada y construida por @code{@value{SUBSTITUTE-SERVER}} para comprobar si obtuvo el mismo resultado que usted. Mejor aún: encuentre otra máquina que pueda construirla y ejecute @command{guix publish}. Ya que la máquina remota es probablemente diferente a la suya, puede encontrar problemas de no-determinismo relacionados con el hardware---por ejemplo, el uso de un conjunto de instrucciones extendido diferente---o con el núcleo del sistema operativo---por ejemplo, dependencias en @code{uname} o archivos @file{/proc}."
 
 # TODO (MAAV): And so forth?
 #. type: enumerate
-#: doc/contributing.texi:1052
+#: doc/contributing.texi:1085
 msgid "When writing documentation, please use gender-neutral wording when referring to people, such as @uref{https://en.wikipedia.org/wiki/Singular_they, singular ``they''@comma{} ``their''@comma{} ``them''}, and so forth."
 msgstr "Cuando escriba documentación, por favor use construcciones neutrales de género para referirse a la gente@footnote{NdT: En esta traducción se ha optado por usar el femenino para referirse a @emph{personas}, ya que es el género gramatical de dicha palabra. Aunque las construcciones impersonales pueden adoptarse en la mayoría de casos, también pueden llegar a ser muy artificiales en otros usos del castellano; en ocasiones son directamente imposibles. Algunas construcciones que proponen la neutralidad de género dificultan la lectura automática (-x), o bien dificultan la corrección automática (-e), o bien aumentan significativamente la redundancia y reducen del mismo modo la velocidad en la lectura (-as/os, -as y -os). No obstante, la adopción del genero neutro heredado del latín, el que en castellano se ha unido con el masculino, como construcción neutral de género se considera inaceptable, ya que sería equivalente al ``it'' en inglés, nada más lejos de la intención de las autoras originales del texto.}, como @uref{https://en.wikipedia.org/wiki/Singular_they, singular ``they''@comma{} ``their''@comma{} ``them''} y demás."
 
 #. type: enumerate
-#: doc/contributing.texi:1056
+#: doc/contributing.texi:1089
 msgid "Verify that your patch contains only one set of related changes.  Bundling unrelated changes together makes reviewing harder and slower."
 msgstr "Compruebe que su parche contiene únicamente un conjunto relacionado de cambios. Agrupando cambios sin relación dificulta y ralentiza la revisión."
 
 #. type: enumerate
-#: doc/contributing.texi:1059
+#: doc/contributing.texi:1092
 msgid "Examples of unrelated changes include the addition of several packages, or a package update along with fixes to that package."
 msgstr "Ejemplos de cambios sin relación incluyen la adición de varios paquetes, o una actualización de un paquete junto a correcciones a ese paquete."
 
 #. type: enumerate
-#: doc/contributing.texi:1064
+#: doc/contributing.texi:1097
 msgid "Please follow our code formatting rules, possibly running the @command{etc/indent-code.el} script to do that automatically for you (@pxref{Formatting Code})."
 msgstr "Por favor, siga nuestras reglas de formato de código, posiblemente ejecutando el guión @command{etc/indent-code.el} para que lo haga automáticamente por usted (@pxref{Formatting Code})."
 
 #. type: enumerate
-#: doc/contributing.texi:1072
+#: doc/contributing.texi:1105
 msgid "When possible, use mirrors in the source URL (@pxref{Invoking guix download}).  Use reliable URLs, not generated ones.  For instance, GitHub archives are not necessarily identical from one generation to the next, so in this case it's often better to clone the repository.  Don't use the @command{name} field in the URL: it is not very useful and if the name changes, the URL will probably be wrong."
 msgstr "Cuando sea posible, use espejos en la URL de las fuentes (@pxref{Invoking guix download}). Use URL fiables, no generadas. Por ejemplo, los archivos de GitHub no son necesariamente idénticos de una generación a la siguiente, así que en este caso es normalmente mejor clonar el repositorio. No use el campo @command{name} en la URL: no es muy útil y si el nombre cambia, la URL probablemente estará mal."
 
 #. type: enumerate
-#: doc/contributing.texi:1076
+#: doc/contributing.texi:1109
 msgid "Check if Guix builds (@pxref{Building from Git}) and address the warnings, especially those about use of undefined symbols."
 msgstr "Comprueba si Guix se puede construir correctamente (@pxref{Building from Git}) y trata los avisos, especialmente aquellos acerca del uso de símbolos sin definición."
 
 #. type: enumerate
-#: doc/contributing.texi:1079
+#: doc/contributing.texi:1112
 msgid "Make sure your changes do not break Guix and simulate a @code{guix pull} with:"
 msgstr "Asegúrese de que sus cambios no rompen Guix y simule @code{guix pull} con:"
 
 #. type: example
-#: doc/contributing.texi:1081
+#: doc/contributing.texi:1114
 #, no-wrap
 msgid "guix pull --url=/path/to/your/checkout --profile=/tmp/guix.master\n"
 msgstr "guix pull --url=/ruta/a/su/copia --profile=/tmp/guix.master\n"
 
+# FUZZY
 #. type: Plain text
-#: doc/contributing.texi:1092
-msgid "When posting a patch to the mailing list, use @samp{[PATCH] @dots{}} as a subject.  You may use your email client or the @command{git send-email} command (@pxref{Sending a Patch Series}).  We prefer to get patches in plain text messages, either inline or as MIME attachments.  You are advised to pay attention if your email client changes anything like line breaks or indentation which could potentially break the patches."
-msgstr "Cuando publique un parche en la lista de correo, use @samp{[PATCH] @dots{}} como el asunto. Puede usar su cliente de correo o la orden @command{git send-email} (@pxref{Sending a Patch Series}). Preferimos recibir los parches en texto plano, ya sea en línea o como adjuntos MIME. Se le recomienda que preste atención por si su cliente de correo cambia algo como los saltos de línea o la indentación, lo que podría potencialmente romper los parches."
+#: doc/contributing.texi:1127
+msgid "When posting a patch to the mailing list, use @samp{[PATCH] @dots{}} as a subject, if your patch is to be applied on a branch other than @code{master}, say @code{core-updates}, specify it in the subject like @samp{[PATCH core-updates] @dots{}}.  You may use your email client or the @command{git send-email} command (@pxref{Sending a Patch Series}).  We prefer to get patches in plain text messages, either inline or as MIME attachments.  You are advised to pay attention if your email client changes anything like line breaks or indentation which could potentially break the patches."
+msgstr "Cuando publique un parche en la lista de correo, use @samp{[PATCH] @dots{}} como el asunto, si su parche debe aplicarse sobre una rama distinta a @code{master}, digamos @code{core-updates}, especifíquelo en el asunto usando @samp{[PATCH core-updates] @dots{}}. Puede usar su cliente de correo o la orden @command{git send-email} (@pxref{Sending a Patch Series}). Preferimos recibir los parches en texto plano, ya sea en línea o como adjuntos MIME. Se le recomienda que preste atención por si su cliente de correo cambia algo como los saltos de línea o la indentación, lo que podría potencialmente romper los parches."
 
 #. type: Plain text
-#: doc/contributing.texi:1095
+#: doc/contributing.texi:1130
 msgid "When a bug is resolved, please close the thread by sending an email to @email{@var{NNN}-done@@debbugs.gnu.org}."
 msgstr "Cuando un error es resuelto, por favor cierre el hilo enviando un correo a @email{@var{NNN}-done@@debbugs.gnu.org}."
 
 #. type: anchor{#1}
-#: doc/contributing.texi:1096 doc/contributing.texi:1098
+#: doc/contributing.texi:1131 doc/contributing.texi:1133
 #, no-wrap
 msgid "Sending a Patch Series"
 msgstr "Envío de una serie de parches"
 
 #. type: cindex
-#: doc/contributing.texi:1098
+#: doc/contributing.texi:1133
 #, no-wrap
 msgid "patch series"
 msgstr "series de parches"
 
 #. type: code{#1}
-#: doc/contributing.texi:1099
+#: doc/contributing.texi:1134
 #, no-wrap
 msgid "git send-email"
 msgstr "git send-email"
 
 #. type: code{#1}
-#: doc/contributing.texi:1100
+#: doc/contributing.texi:1135
 #, no-wrap
 msgid "git-send-email"
 msgstr "git-send-email"
 
 #. type: Plain text
-#: doc/contributing.texi:1110
+#: doc/contributing.texi:1145
 msgid "When sending a patch series (e.g., using @code{git send-email}), please first send one message to @email{guix-patches@@gnu.org}, and then send subsequent patches to @email{@var{NNN}@@debbugs.gnu.org} to make sure they are kept together.  See @uref{https://debbugs.gnu.org/Advanced.html, the Debbugs documentation} for more information.  You can install @command{git send-email} with @command{guix install git:send-email}."
 msgstr "Cuando envíe una serie de parches (por ejemplo, usando @code{git send-email}), por favor mande primero un mensaje a @email{guix-patches@@gnu.org}, y después mande los parches siguientes a @email{@var{NNN}@@debbugs.gnu.org} para asegurarse de que se mantienen juntos. Véase @uref{https://debbugs.gnu.org/Advanced.html, la documentación de Debbugs} para más información. Puede instalar @command{git send-email} con @command{guix install git:send-email}."
 
 #. type: cindex
-#: doc/contributing.texi:1114
+#: doc/contributing.texi:1149
 #, no-wrap
 msgid "bug reports, tracking"
 msgstr "informes de errores, seguimiento"
 
 #. type: cindex
-#: doc/contributing.texi:1115
+#: doc/contributing.texi:1150
 #, no-wrap
 msgid "patch submissions, tracking"
 msgstr "envíos de parches, seguimiento"
 
 # FUZZY
 #. type: cindex
-#: doc/contributing.texi:1116
+#: doc/contributing.texi:1151
 #, no-wrap
 msgid "issue tracking"
 msgstr "seguimiento de incidencias"
 
 # FUZZY
 #. type: cindex
-#: doc/contributing.texi:1117
+#: doc/contributing.texi:1152
 #, no-wrap
 msgid "Debbugs, issue tracking system"
 msgstr "Debbugs, sistema de seguimiento de incidencias"
 
 # FUZZY
 #. type: Plain text
-#: doc/contributing.texi:1124
+#: doc/contributing.texi:1159
 msgid "Bug reports and patch submissions are currently tracked using the Debbugs instance at @uref{https://bugs.gnu.org}.  Bug reports are filed against the @code{guix} ``package'' (in Debbugs parlance), by sending email to @email{bug-guix@@gnu.org}, while patch submissions are filed against the @code{guix-patches} package by sending email to @email{guix-patches@@gnu.org} (@pxref{Submitting Patches})."
 msgstr "El seguimiento de los informes de errores y los envíos de parches se realiza con una instancia de Debbugs en @uref{https://bugs.gnu.org}. Los informes de errores se abren para el ``paquete'' @code{guix} (en la jerga de Debbugs), enviando un correo a @email{bug-guix@@gnu.org}, mientras que para los envíos de parches se usa el paquete @code{guix-patches} enviando un correo a @email{guix-patches@@gnu.org} (@pxref{Submitting Patches})."
 
 #. type: Plain text
-#: doc/contributing.texi:1127
+#: doc/contributing.texi:1162
 msgid "A web interface (actually @emph{two} web interfaces!) are available to browse issues:"
 msgstr "Hay disponible una interfaz web (¡en realidad @emph{dos} interfaces web!) para la navegación por las incidencias:"
 
 #. type: itemize
-#: doc/contributing.texi:1131
+#: doc/contributing.texi:1171
+msgid "@url{https://issues.guix.gnu.org} provides a pleasant interface@footnote{The web interface at @url{https://issues.guix.gnu.org} is powered by Mumi, a nice piece of software written in Guile, and you can help! See @url{https://git.elephly.net/gitweb.cgi?p=software/mumi.git}.} to browse bug reports and patches, and to participate in discussions;"
+msgstr "@url{https://issues.guix.gnu.org} proporciona una agradable interfaz @footnote{La interfaz web en @url{https://issues.guix.gnu.org} implementada con Mumi, un interesante software escrito en Guile, ¡y en el que puede ayudar! Véase @url{https://git.elephly.net/gitweb.cgi?p=software/mumi.git}.} paranavegar por los informes de errores y parches, y para participar en las discusiones;"
+
+#. type: itemize
+#: doc/contributing.texi:1173
 msgid "@url{https://bugs.gnu.org/guix} lists bug reports;"
 msgstr "@url{https://bugs.gnu.org/guix} muestra informes de errores;"
 
 #. type: itemize
-#: doc/contributing.texi:1133
+#: doc/contributing.texi:1175
 msgid "@url{https://bugs.gnu.org/guix-patches} lists patch submissions."
 msgstr "@url{https://bugs.gnu.org/guix-patches} muestra parches enviados."
 
 #. type: Plain text
-#: doc/contributing.texi:1143
-msgid "You can also access both of these @i{via} the (nicer)  @url{https://issues.guix.gnu.org} interface@footnote{The web interface at @url{https://issues.guix.gnu.org} is powered by Mumi, a nice piece of software written in Guile, and you can help! See @url{https://git.elephly.net/gitweb.cgi?p=software/mumi.git}.}.  To view discussions related to issue number @var{n}, go to @indicateurl{https://issues.guix.gnu.org/issue/@var{n}} or @indicateurl{https://bugs.gnu.org/@var{n}}."
-msgstr "También puede acceder ambas listas a través de la interfaz@footnote{The web interface at @url{https://issues.guix.gnu.org} (más agradable) @url{https://issues.guix.gnu.org} implementada con Mumi, un interesante software escrito en Guile, ¡y en el que puede ayudar! Véase @url{https://git.elephly.net/gitweb.cgi?p=software/mumi.git}.}. Para ver los hilos relacionados con el número de incidencia @var{n}, vaya a @indicateurl{https://issues.guix.gnu.org/issue/@var{n}} o @indicateurl{https://bugs.gnu.org/@var{n}}."
+#: doc/contributing.texi:1180
+msgid "To view discussions related to issue number @var{n}, go to @indicateurl{https://issues.guix.gnu.org/@var{n}} or @indicateurl{https://bugs.gnu.org/@var{n}}."
+msgstr "Para ver los hilos relacionados con la incidencia número @var{n}, visite @indicateurl{https://issues.guix.gnu.org/@var{n}} o @indicateurl{https://bugs.gnu.org/@var{n}}."
 
 # FUZZY
 #. type: Plain text
-#: doc/contributing.texi:1146
+#: doc/contributing.texi:1183
 msgid "If you use Emacs, you may find it more convenient to interact with issues using @file{debbugs.el}, which you can install with:"
 msgstr "Si usa Emacs, puede encontrar más conveniente la interacción con las incidencias mediante @file{debbugs.el}, que puede instalar con:"
 
 #. type: example
-#: doc/contributing.texi:1149
+#: doc/contributing.texi:1186
 #, no-wrap
 msgid "guix install emacs-debbugs\n"
 msgstr "guix install emacs-debbugs\n"
 
 #. type: Plain text
-#: doc/contributing.texi:1152
+#: doc/contributing.texi:1189
 msgid "For example, to list all open issues on @code{guix-patches}, hit:"
 msgstr "Por ejemplo, para enumerar todos las incidencias abiertas en @code{guix-patches} pulse:"
 
 #. type: example
-#: doc/contributing.texi:1155
+#: doc/contributing.texi:1192
 #, no-wrap
 msgid "@kbd{C-u} @kbd{M-x} debbugs-gnu @kbd{RET} @kbd{RET} guix-patches @kbd{RET} n y\n"
 msgstr "@kbd{C-u} @kbd{M-x} debbugs-gnu @kbd{RET} @kbd{RET} guix-patches @kbd{RET} n y\n"
 
 # FUZZY
 #. type: Plain text
-#: doc/contributing.texi:1159
+#: doc/contributing.texi:1196
 msgid "@xref{Top,,, debbugs-ug, Debbugs User Guide}, for more information on this nifty tool!"
 msgstr "@xref{Top,,, debbugs-ug, Debbugs User Guide}, para más información sobre esta útil herramienta."
 
 #. type: cindex
-#: doc/contributing.texi:1163
+#: doc/contributing.texi:1200
 #, no-wrap
 msgid "commit access, for developers"
 msgstr "acceso al repositorio, para desarrolladoras"
 
 # FUZZY
 #. type: Plain text
-#: doc/contributing.texi:1167
+#: doc/contributing.texi:1204
 msgid "For frequent contributors, having write access to the repository is convenient.  When you deem it necessary, consider applying for commit access by following these steps:"
 msgstr "El acceso de escritura al repositorio es conveniente para personas que contribuyen frecuentemente. Cuando lo crea necesario, considere solicitar acceso al repositorio siguiendo estos pasos:"
 
 # FUZZY
 #. type: enumerate
-#: doc/contributing.texi:1176
+#: doc/contributing.texi:1213
 msgid "Find three committers who would vouch for you.  You can view the list of committers at @url{https://savannah.gnu.org/project/memberlist.php?group=guix}.  Each of them should email a statement to @email{guix-maintainers@@gnu.org} (a private alias for the collective of maintainers), signed with their OpenPGP key."
 msgstr "Encuentre tres personas que contribuyan al proyecto que puedan respaldarle. Puede ver la lista de personas que contribuyen en @url{https://savannah.gnu.org/project/memberlist.php?group=guix}. Cada una de ellas deberá enviar un correo confirmando el respaldo a @email{guix-maintainers@@gnu.org} (un alias privado para el colectivo de personas que mantienen el proyecto), firmado con su clave OpenPGP."
 
 #. type: enumerate
-#: doc/contributing.texi:1182
+#: doc/contributing.texi:1219
 msgid "Committers are expected to have had some interactions with you as a contributor and to be able to judge whether you are sufficiently familiar with the project's practices.  It is @emph{not} a judgment on the value of your work, so a refusal should rather be interpreted as ``let's try again later''."
 msgstr "Se espera que dichas personas hayan tenido algunas interacciones con usted en sus contribuciones y sean capaces de juzgar si es suficientemente familiar con las prácticas del proyecto. @emph{No} es un juicio sobre el valor de su trabajo, por lo que un rechazo debe ser interpretado más bien como un ``habrá que probar de nuevo más adelante''."
 
 #. type: enumerate
-#: doc/contributing.texi:1189
+#: doc/contributing.texi:1226
 msgid "Send @email{guix-maintainers@@gnu.org} a message stating your intent, listing the three committers who support your application, signed with the OpenPGP key you will use to sign commits, and giving its fingerprint (see below).  See @uref{https://emailselfdefense.fsf.org/en/}, for an introduction to public-key cryptography with GnuPG."
 msgstr "Envíe un correo a @email{guix-maintainers@@gnu.org} expresando su intención, enumerando a las tres contribuidoras que respaldan su petición, firmado con su clave OpenPGP que usará para firmar las revisiones, y proporcionando su huella dactilar (véase a continuación). Véase @uref{https://emailselfdefense.fsf.org/es/} para una introducción a la criptografía de clave pública con GnuPG."
 
 #. type: enumerate
-#: doc/contributing.texi:1193
+#: doc/contributing.texi:1232
+msgid "Set up GnuPG such that it never uses the SHA1 hash algorithm for digital signatures, which is known to be unsafe since 2019, for instance by adding the following line to @file{~/.gnupg/gpg.conf} (@pxref{GPG Esoteric Options,,, gnupg, The GNU Privacy Guard Manual}):"
+msgstr "Configure GnuPG de modo que no use el algorítmo de hash SHA1 nunca para las firmas digitales, el cual se sabe que no es seguro desde 2019, añadiendo, por ejemplo, la siguiente línea en @file{~/.gnupg/gpg.conf} (@pxref{GPG Esoteric Options,,, gnupg, The GNU Privacy Guard Manual}):"
+
+#. type: example
+#: doc/contributing.texi:1235
+#, no-wrap
+msgid "digest-algo sha512\n"
+msgstr "digest-algo sha512\n"
+
+#. type: enumerate
+#: doc/contributing.texi:1240
 msgid "Maintainers ultimately decide whether to grant you commit access, usually following your referrals' recommendation."
 msgstr "Las personas que mantienen el proyecto decidirán en última instancia si conceder o no el acceso de escritura, habitualmente siguiendo las recomendaciones de las personas de referencia proporcionadas."
 
+#. type: cindex
+#: doc/contributing.texi:1242
+#, no-wrap
+msgid "OpenPGP, signed commits"
+msgstr "OpenPGP, revisiones firmadas"
+
 # FUZZY
 #. type: enumerate
-#: doc/contributing.texi:1199
+#: doc/contributing.texi:1247
 msgid "If and once you've been given access, please send a message to @email{guix-devel@@gnu.org} to say so, again signed with the OpenPGP key you will use to sign commits (do that before pushing your first commit).  That way, everyone can notice and ensure you control that OpenPGP key."
 msgstr "Una vez haya conseguido acceso, en caso de hacerlo, por favor envíe un mensaje a @email{guix-devel@@gnu.org} para notificarlo, de nuevo firmado con la clave OpenPGP que vaya a usar para firmar las revisiones (hágalo antes de subir su primera revisión). De esta manera todo el mundo puede enterarse y asegurarse de que controla su clave OpenPGP."
 
+#. type: quotation
+#: doc/contributing.texi:1248
+#, no-wrap
+msgid "Important"
+msgstr "Importante"
+
+#. type: quotation
+#: doc/contributing.texi:1250
+msgid "Before you can push for the first time, maintainers must:"
+msgstr "Antes de que suba alguna revisión por primera vez, quienes mantienen Guix deben:"
+
+#. type: enumerate
+#: doc/contributing.texi:1254
+msgid "add your OpenPGP key to the @code{keyring} branch;"
+msgstr "añadir su clave OpenPGP a la rama @code{keyring};"
+
+#. type: enumerate
+#: doc/contributing.texi:1257
+msgid "add your OpenPGP fingerprint to the @file{.guix-authorizations} file of the branch(es) you will commit to."
+msgstr "añadir su firma OpenPGP al archivo @file{.guix-authorizations} de la(s) rama(s) a las que vaya a subir código."
+
 # FUZZY
 #. type: enumerate
-#: doc/contributing.texi:1205
+#: doc/contributing.texi:1262
 msgid "Make sure to read the rest of this section and... profit!"
 msgstr "Asegúrese de leer el resto de esta sección y... ¡a disfrutar!"
 
 # FUZZY: track record
 #. type: quotation
-#: doc/contributing.texi:1211
+#: doc/contributing.texi:1268
 msgid "Maintainers are happy to give commit access to people who have been contributing for some time and have a track record---don't be shy and don't underestimate your work!"
 msgstr "Quienes mantienen el proyecto están encantadas de proporcionar acceso al repositorio a personas que han contribuido durante algún tiempo y tienen buen registro---¡no sea tímida y no subestime su trabajo!"
 
 # FUZZY
 #. type: quotation
-#: doc/contributing.texi:1215
+#: doc/contributing.texi:1272
 msgid "However, note that the project is working towards a more automated patch review and merging system, which, as a consequence, may lead us to have fewer people with commit access to the main repository.  Stay tuned!"
 msgstr "No obstante, tenga en cuenta que el proyecto está trabajando hacia la automatización de la revisión de parches y el sistema de mezclas, lo que, como consecuencia, puede hacer necesario que menos gente tenga acceso de escritura al repositorio principal. ¡Seguiremos informando!"
 
 # FUZZY
 #. type: Plain text
-#: doc/contributing.texi:1220
+#: doc/contributing.texi:1277
 msgid "If you get commit access, please make sure to follow the policy below (discussions of the policy can take place on @email{guix-devel@@gnu.org})."
 msgstr "Si obtiene acceso, por favor asegúrese de seguir la política descrita a continuación (el debate sobre dicha política puede llevarse a cabo en @email{guix-devel@@gnu.org})."
 
 #. type: Plain text
-#: doc/contributing.texi:1225
+#: doc/contributing.texi:1282
 msgid "Non-trivial patches should always be posted to @email{guix-patches@@gnu.org} (trivial patches include fixing typos, etc.).  This mailing list fills the patch-tracking database (@pxref{Tracking Bugs and Patches})."
 msgstr "Los parches no triviales deben enviarse siempre a @email{guix-patches@@gnu.org} (los parches triviales incluyen la corrección de errores tipográficos, etcétera). Esta lista de correo rellena la base de datos de seguimiento de parches (@pxref{Tracking Bugs and Patches})."
 
 # FUZZY
 #. type: Plain text
-#: doc/contributing.texi:1234
+#: doc/contributing.texi:1291
 msgid "For patches that just add a new package, and a simple one, it's OK to commit, if you're confident (which means you successfully built it in a chroot setup, and have done a reasonable copyright and license auditing).  Likewise for package upgrades, except upgrades that trigger a lot of rebuilds (for example, upgrading GnuTLS or GLib).  We have a mailing list for commit notifications (@email{guix-commits@@gnu.org}), so people can notice.  Before pushing your changes, make sure to run @code{git pull --rebase}."
 msgstr "Para los parches que únicamente añaden un nuevo paquete, y uno simple, está bien subirlos directamente, si tiene confianza en ello (lo que significa que lo ha construido de manera correcta en un entorno chroot, y ha hecho un auditado razonable de derechos de copia y licencias). Lo mismo puede ser dicho de las actualizaciones de paquetes, excepto actualizaciones que desencadenen muchas reconstrucciones (por ejemplo, la actualización de GnuTLS o GLib). Tenemos una lista de correo para las notificaciones de revisiones (@email{guix-commits@@gnu.org}), de manera que la gente pueda enterarse. Antes de subir los cambios, asegúrese de ejecutar @code{git pull --rebase}."
 
 #. type: Plain text
-#: doc/contributing.texi:1240
+#: doc/contributing.texi:1297
 msgid "All commits that are pushed to the central repository on Savannah must be signed with an OpenPGP key, and the public key should be uploaded to your user account on Savannah and to public key servers, such as @code{keys.openpgp.org}.  To configure Git to automatically sign commits, run:"
 msgstr "Todas las revisiones que se suban al repositorio central de Savannah deben estar firmadas por una clave OpenPGP, y la clave pública debe subirse a su cuenta de usuaria en Savannah y a servidores públicos de claves, como @code{keys.openpgp.org}. Para configurar que Git firme automáticamente las revisiones ejecute:"
 
 #. type: example
-#: doc/contributing.texi:1244
+#: doc/contributing.texi:1301
 #, no-wrap
 msgid ""
 "git config commit.gpgsign true\n"
@@ -1880,37 +1977,103 @@ msgstr ""
 
 # FUZZY
 #. type: Plain text
-#: doc/contributing.texi:1249
+#: doc/contributing.texi:1306
 msgid "You can prevent yourself from accidentally pushing unsigned commits to Savannah by using the pre-push Git hook called located at @file{etc/git/pre-push}:"
 msgstr "Puede evitar la subida accidental de revisiones sin firma a Savannah mediante el uso del hook pre-push de Git que se encuentra en @file{etc/git/pre-push}:"
 
 #. type: example
-#: doc/contributing.texi:1252
+#: doc/contributing.texi:1309
 #, no-wrap
 msgid "cp etc/git/pre-push .git/hooks/pre-push\n"
 msgstr "cp etc/git/pre-push .git/hooks/pre-push\n"
 
 #. type: Plain text
-#: doc/contributing.texi:1258
+#: doc/contributing.texi:1315
 msgid "When pushing a commit on behalf of somebody else, please add a @code{Signed-off-by} line at the end of the commit log message---e.g., with @command{git am --signoff}.  This improves tracking of who did what."
 msgstr "Cuando suba un commit en nombre de alguien, por favor añada una línea de @code{Signed-off-by} al final del mensaje de la revisión---por ejemplo con @command{git am --signoff}. Esto mejora el seguimiento sobre quién hizo qué."
 
 # FUZZY
 #. type: Plain text
-#: doc/contributing.texi:1263
+#: doc/contributing.texi:1319
+msgid "When adding channel news entries (@pxref{Channels, Writing Channel News}), make sure they are well-formed by running the following command right before pushing:"
+msgstr "Cuando añada entradas de noticias del canal (@pxref{Channels, Writing Channel News}), compruebe que tienen el formato correcto con la siguiente órden antes de subir los cambios al repositorio:"
+
+#. type: example
+#: doc/contributing.texi:1322
+#, no-wrap
+msgid "make check-channel-news\n"
+msgstr "make check-channel-news\n"
+
+# FUZZY
+#. type: Plain text
+#: doc/contributing.texi:1328
 msgid "For anything else, please post to @email{guix-patches@@gnu.org} and leave time for a review, without committing anything (@pxref{Submitting Patches}).  If you didn’t receive any reply after two weeks, and if you're confident, it's OK to commit."
 msgstr "Para cualquier otra cosa, envíe un mensaje a @email{guix-patches@@gnu.org} y deje tiempo para que sea revisado, sin subir ningún cambio (@pxref{Submitting Patches}). Si no recibe ninguna respuesta después de dos semanas y tiene confianza en ello, está bien subir el cambio."
 
 #. type: Plain text
-#: doc/contributing.texi:1266
+#: doc/contributing.texi:1331
 msgid "That last part is subject to being adjusted, allowing individuals to commit directly on non-controversial changes on parts they’re familiar with."
 msgstr "Esta última parte está sujeta a revisión, para permitir a individualidades que suban cambios que no puedan generar controversia directamente en partes con las que estén familiarizadas."
 
 #. type: Plain text
-#: doc/contributing.texi:1271
+#: doc/contributing.texi:1337
 msgid "One last thing: the project keeps moving forward because committers not only push their own awesome changes, but also offer some of their time @emph{reviewing} and pushing other people's changes.  As a committer, you're welcome to use your expertise and commit rights to help other contributors, too!"
 msgstr "Una última cosa: el proyecto sigue adelante porque las contribuidoras no solo suben sus cambios, sino que también ofrecen su tiempo @emph{revisando} y subiendo cambios de otras personas. Como contribuidora, también se agradece que use su experiencia y derechos de escritura en el repositorio para ayudar a otras personas que quieren contribuir."
 
+#. type: cindex
+#: doc/contributing.texi:1341
+#, no-wrap
+msgid "update-guix-package, updating the guix package"
+msgstr "update-guix-package, actualización del paquete guix"
+
+#. type: Plain text
+#: doc/contributing.texi:1347
+msgid "It is sometimes desirable to update the @code{guix} package itself (the package defined in @code{(gnu packages package-management)}), for example to make new daemon features available for use by the @code{guix-service-type} service type.  In order to simplify this task, the following command can be used:"
+msgstr "A veces es deseable actualizar el propio paquete @code{guix} (el paquete definido en @code{(gnu packages package-management)}, por ejemplo para poner a disposición del tipo de servicio @code{guix-service-type} nuevas características disponibles en el daemon.  Para simplificar esta tarea se puede usar la siguiente orden:"
+
+#. type: example
+#: doc/contributing.texi:1350
+#, no-wrap
+msgid "make update-guix-package\n"
+msgstr "make update-guix-package\n"
+
+#. type: Plain text
+#: doc/contributing.texi:1357
+msgid "The @code{update-guix-package} make target will use the last known @emph{commit} corresponding to @code{HEAD} in your Guix checkout, compute the hash of the Guix sources corresponding to that commit and update the @code{commit}, @code{revision} and hash of the @code{guix} package definition."
+msgstr "El objetivo de make @code{update-guix-package} usa la última @emph{revisión} (commit en inglés) de @code{HEAD} en su copia local de Guix, calcula el hash correspondiente a las fuentes de Guix en dicho commit y actualiza los campos @code{commit}, @code{revision} y el hash de la definción del paquete @code{guix}."
+
+#. type: Plain text
+#: doc/contributing.texi:1361
+msgid "To validate that the updated @code{guix} package hashes are correct and that it can be built successfully, the following command can be run from the directory of your Guix checkout:"
+msgstr "Para validar que la actualización del hash del paquete @code{guix} es correcta y que se puede construir de manera satisfactoria se puede ejecutar la siguiente orden en el directorio de su copia de trabajo local de Guix:"
+
+#. type: example
+#: doc/contributing.texi:1364
+#, no-wrap
+msgid "./pre-inst-env guix build guix\n"
+msgstr "./pre-inst-env guix build guix\n"
+
+#. type: Plain text
+#: doc/contributing.texi:1369
+msgid "To guard against accidentally updating the @code{guix} package to a commit that others can't refer to, a check is made that the commit used has already been pushed to the Savannah-hosted Guix git repository."
+msgstr "Para prevenir de actualizaciones accidentales del paquete @code{guix} a una revisión a la que otras personas no puedan hacer referencia se comprueba que dicha revisión se haya publicado ya en el repositorio git de Guix alojado en Savannah."
+
+#. type: Plain text
+#: doc/contributing.texi:1372
+msgid "This check can be disabled, @emph{at your own peril}, by setting the @code{GUIX_ALLOW_ME_TO_USE_PRIVATE_COMMIT} environment variable."
+msgstr "Esta comprobación se puede desactivar, @emph{bajo su cuenta y riesgo}, declarando la variable de entorno @code{GUIX_ALLOW_ME_TO_USE_PRIVATE_COMMIT}."
+
+#. type: Plain text
+#: doc/contributing.texi:1375
+msgid "To build the resulting 'guix' package when using a private commit, the following command can be used:"
+msgstr "Para construir el paquete @code{guix} resultante cuando se usa una revisión privada se puede usar la siguiente orden:"
+
+#. type: example
+#: doc/contributing.texi:1378
+#, no-wrap
+msgid "./pre-inst-env guix build guix --with-git-url=guix=$PWD\n"
+msgstr "./pre-inst-env guix build guix --with-git-url=guix=$PWD\n"
+
 #. type: Plain text
 #: doc/guix.texi:7
 msgid "@documentencoding UTF-8"
@@ -1920,7 +2083,7 @@ msgstr ""
 "@frenchspacing on"
 
 #. type: title
-#: doc/guix.texi:7 doc/guix.texi:107
+#: doc/guix.texi:7 doc/guix.texi:112
 #, no-wrap
 msgid "GNU Guix Reference Manual"
 msgstr "Manual de referencia de GNU Guix"
@@ -1932,154 +2095,216 @@ msgid "version.texi"
 msgstr "version-es.texi"
 
 #. type: copying
-#: doc/guix.texi:80
-msgid "Copyright @copyright{} 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès@* Copyright @copyright{} 2013, 2014, 2016 Andreas Enge@* Copyright @copyright{} 2013 Nikita Karetnikov@* Copyright @copyright{} 2014, 2015, 2016 Alex Kost@* Copyright @copyright{} 2015, 2016 Mathieu Lirzin@* Copyright @copyright{} 2014 Pierre-Antoine Rault@* Copyright @copyright{} 2015 Taylan Ulrich Bayırlı/Kammer@* Copyright @copyright{} 2015, 2016, 2017, 2019, 2020 Leo Famulari@* Copyright @copyright{} 2015, 2016, 2017, 2018, 2019, 2020 Ricardo Wurmus@* Copyright @copyright{} 2016 Ben Woodcroft@* Copyright @copyright{} 2016, 2017, 2018 Chris Marusich@* Copyright @copyright{} 2016, 2017, 2018, 2019, 2020 Efraim Flashner@* Copyright @copyright{} 2016 John Darrington@* Copyright @copyright{} 2016, 2017 ng0@* Copyright @copyright{} 2016, 2017, 2018, 2019 Jan Nieuwenhuizen@* Copyright @copyright{} 2016 Julien Lepiller@* Copyright @copyright{} 2016 Alex ter Weele@* Copyright @copyright{} 2016, 2017, 2018, 2019 Christopher Baines@* Copyright @copyright{} 2017, 2018, 2019 Clément Lassieur@* Copyright @copyright{} 2017, 2018 Mathieu Othacehe@* Copyright @copyright{} 2017 Federico Beffa@* Copyright @copyright{} 2017, 2018 Carlo Zancanaro@* Copyright @copyright{} 2017 Thomas Danckaert@* Copyright @copyright{} 2017 humanitiesNerd@* Copyright @copyright{} 2017 Christopher Allan Webber@* Copyright @copyright{} 2017, 2018, 2019, 2020 Marius Bakke@* Copyright @copyright{} 2017, 2019, 2020 Hartmut Goebel@* Copyright @copyright{} 2017, 2019, 2020 Maxim Cournoyer@* Copyright @copyright{} 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice@* Copyright @copyright{} 2017 George Clemmer@* Copyright @copyright{} 2017 Andy Wingo@* Copyright @copyright{} 2017, 2018, 2019 Arun Isaac@* Copyright @copyright{} 2017 nee@* Copyright @copyright{} 2018 Rutger Helling@* Copyright @copyright{} 2018 Oleg Pykhalov@* Copyright @copyright{} 2018 Mike Gerwitz@* Copyright @copyright{} 2018 Pierre-Antoine Rouby@* Copyright @copyright{} 2018, 2019 Gábor Boskovits@* Copyright @copyright{} 2018, 2019 Florian Pelz@* Copyright @copyright{} 2018 Laura Lazzati@* Copyright @copyright{} 2018 Alex Vong@* Copyright @copyright{} 2019 Josh Holland@* Copyright @copyright{} 2019 Diego Nicola Barbato@* Copyright @copyright{} 2019 Ivan Petkov@* Copyright @copyright{} 2019 Jakob L. Kreuze@* Copyright @copyright{} 2019 Kyle Andrews@* Copyright @copyright{} 2019 Alex Griffin@* Copyright @copyright{} 2019 Guillaume Le Vaillant@* Copyright @copyright{} 2020 Leo Prikler@* Copyright @copyright{} 2019, 2020 Simon Tournier@* Copyright @copyright{} 2020 Wiktor Żelazny@* Copyright @copyright{} 2020 Damien Cassou@* Copyright @copyright{} 2020 Jakub Kądziołka@* Copyright @copyright{} 2020 Jack Hill@* Copyright @copyright{} 2020 Naga Malleswari@* Copyright @copyright{} 2020 Brice Waegeneire@*"
-msgstr "Copyright @copyright{} 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès@* Copyright @copyright{} 2013, 2014, 2016 Andreas Enge@* Copyright @copyright{} 2013 Nikita Karetnikov@* Copyright @copyright{} 2014, 2015, 2016 Alex Kost@* Copyright @copyright{} 2015, 2016 Mathieu Lirzin@* Copyright @copyright{} 2014 Pierre-Antoine Rault@* Copyright @copyright{} 2015 Taylan Ulrich Bayırlı/Kammer@* Copyright @copyright{} 2015, 2016, 2017, 2019, 2020 Leo Famulari@* Copyright @copyright{} 2015, 2016, 2017, 2018, 2019, 2020 Ricardo Wurmus@* Copyright @copyright{} 2016 Ben Woodcroft@* Copyright @copyright{} 2016, 2017, 2018 Chris Marusich@* Copyright @copyright{} 2016, 2017, 2018, 2019, 2020 Efraim Flashner@* Copyright @copyright{} 2016 John Darrington@* Copyright @copyright{} 2016, 2017 ng0@* Copyright @copyright{} 2016, 2017, 2018, 2019 Jan Nieuwenhuizen@* Copyright @copyright{} 2016 Julien Lepiller@* Copyright @copyright{} 2016 Alex ter Weele@* Copyright @copyright{} 2016, 2017, 2018, 2019 Christopher Baines@* Copyright @copyright{} 2017, 2018, 2019 Clément Lassieur@* Copyright @copyright{} 2017, 2018 Mathieu Othacehe@* Copyright @copyright{} 2017 Federico Beffa@* Copyright @copyright{} 2017, 2018 Carlo Zancanaro@* Copyright @copyright{} 2017 Thomas Danckaert@* Copyright @copyright{} 2017 humanitiesNerd@* Copyright @copyright{} 2017 Christopher Allan Webber@* Copyright @copyright{} 2017, 2018, 2019, 2020 Marius Bakke@* Copyright @copyright{} 2017, 2019, 2020 Hartmut Goebel@* Copyright @copyright{} 2017, 2019, 2020 Maxim Cournoyer@* Copyright @copyright{} 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice@* Copyright @copyright{} 2017 George Clemmer@* Copyright @copyright{} 2017 Andy Wingo@* Copyright @copyright{} 2017, 2018, 2019 Arun Isaac@* Copyright @copyright{} 2017 nee@* Copyright @copyright{} 2018 Rutger Helling@* Copyright @copyright{} 2018 Oleg Pykhalov@* Copyright @copyright{} 2018 Mike Gerwitz@* Copyright @copyright{} 2018 Pierre-Antoine Rouby@* Copyright @copyright{} 2018, 2019 Gábor Boskovits@* Copyright @copyright{} 2018, 2019 Florian Pelz@* Copyright @copyright{} 2018 Laura Lazzati@* Copyright @copyright{} 2018 Alex Vong@* Copyright @copyright{} 2019 Josh Holland@* Copyright @copyright{} 2019 Diego Nicola Barbato@* Copyright @copyright{} 2019 Ivan Petkov@* Copyright @copyright{} 2019 Jakob L. Kreuze@* Copyright @copyright{} 2019 Kyle Andrews@* Copyright @copyright{} 2019 Alex Griffin@* Copyright @copyright{} 2019 Guillaume Le Vaillant@* Copyright @copyright{} 2020 Leo Prikler@* Copyright @copyright{} 2019, 2020 Simon Tournier@* Copyright @copyright{} 2020 Wiktor Żelazny@* Copyright @copyright{} 2020 Damien Cassou@* Copyright @copyright{} 2020 Jakub Kądziołka@* Copyright @copyright{} 2020 Jack Hill@* Copyright @copyright{} 2020 Naga Malleswari@* Copyright @copyright{} 2020 Brice Waegeneire@* Copyright @copyright{} 2019, 2020 Miguel Ángel Arruga Vivas (traducción)@*"
+#: doc/guix.texi:85
+msgid "Copyright @copyright{} 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès@* Copyright @copyright{} 2013, 2014, 2016 Andreas Enge@* Copyright @copyright{} 2013 Nikita Karetnikov@* Copyright @copyright{} 2014, 2015, 2016 Alex Kost@* Copyright @copyright{} 2015, 2016 Mathieu Lirzin@* Copyright @copyright{} 2014 Pierre-Antoine Rault@* Copyright @copyright{} 2015 Taylan Ulrich Bayırlı/Kammer@* Copyright @copyright{} 2015, 2016, 2017, 2019, 2020 Leo Famulari@* Copyright @copyright{} 2015, 2016, 2017, 2018, 2019, 2020 Ricardo Wurmus@* Copyright @copyright{} 2016 Ben Woodcroft@* Copyright @copyright{} 2016, 2017, 2018 Chris Marusich@* Copyright @copyright{} 2016, 2017, 2018, 2019, 2020 Efraim Flashner@* Copyright @copyright{} 2016 John Darrington@* Copyright @copyright{} 2016, 2017 Nikita Gillmann@* Copyright @copyright{} 2016, 2017, 2018, 2019, 2020 Jan Nieuwenhuizen@* Copyright @copyright{} 2016, 2017, 2018, 2019, 2020 Julien Lepiller@* Copyright @copyright{} 2016 Alex ter Weele@* Copyright @copyright{} 2016, 2017, 2018, 2019 Christopher Baines@* Copyright @copyright{} 2017, 2018, 2019 Clément Lassieur@* Copyright @copyright{} 2017, 2018, 2020 Mathieu Othacehe@* Copyright @copyright{} 2017 Federico Beffa@* Copyright @copyright{} 2017, 2018 Carlo Zancanaro@* Copyright @copyright{} 2017 Thomas Danckaert@* Copyright @copyright{} 2017 humanitiesNerd@* Copyright @copyright{} 2017 Christopher Allan Webber@* Copyright @copyright{} 2017, 2018, 2019, 2020 Marius Bakke@* Copyright @copyright{} 2017, 2019, 2020 Hartmut Goebel@* Copyright @copyright{} 2017, 2019, 2020 Maxim Cournoyer@* Copyright @copyright{} 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice@* Copyright @copyright{} 2017 George Clemmer@* Copyright @copyright{} 2017 Andy Wingo@* Copyright @copyright{} 2017, 2018, 2019, 2020 Arun Isaac@* Copyright @copyright{} 2017 nee@* Copyright @copyright{} 2018 Rutger Helling@* Copyright @copyright{} 2018 Oleg Pykhalov@* Copyright @copyright{} 2018 Mike Gerwitz@* Copyright @copyright{} 2018 Pierre-Antoine Rouby@* Copyright @copyright{} 2018, 2019 Gábor Boskovits@* Copyright @copyright{} 2018, 2019, 2020 Florian Pelz@* Copyright @copyright{} 2018 Laura Lazzati@* Copyright @copyright{} 2018 Alex Vong@* Copyright @copyright{} 2019 Josh Holland@* Copyright @copyright{} 2019, 2020 Diego Nicola Barbato@* Copyright @copyright{} 2019 Ivan Petkov@* Copyright @copyright{} 2019 Jakob L. Kreuze@* Copyright @copyright{} 2019 Kyle Andrews@* Copyright @copyright{} 2019 Alex Griffin@* Copyright @copyright{} 2019 Guillaume Le Vaillant@* Copyright @copyright{} 2020 Leo Prikler@* Copyright @copyright{} 2019, 2020 Simon Tournier@* Copyright @copyright{} 2020 Wiktor Żelazny@* Copyright @copyright{} 2020 Damien Cassou@* Copyright @copyright{} 2020 Jakub Kądziołka@* Copyright @copyright{} 2020 Jack Hill@* Copyright @copyright{} 2020 Naga Malleswari@* Copyright @copyright{} 2020 Brice Waegeneire@* Copyright @copyright{} 2020 R Veera Kumar@* Copyright @copyright{} 2020 Pierre Langlois@* Copyright @copyright{} 2020 pinoaffe@* Copyright @copyright{} 2020 André Batista@* Copyright @copyright{} 2020 Alexandru-Sergiu Marton@*"
+msgstr ""
+"Copyright @copyright{} 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès@*\n"
+"Copyright @copyright{} 2013, 2014, 2016 Andreas Enge@*\n"
+"Copyright @copyright{} 2013 Nikita Karetnikov@*\n"
+"Copyright @copyright{} 2014, 2015, 2016 Alex Kost@*\n"
+"Copyright @copyright{} 2015, 2016 Mathieu Lirzin@*\n"
+"Copyright @copyright{} 2014 Pierre-Antoine Rault@*\n"
+"Copyright @copyright{} 2015 Taylan Ulrich Bayırlı/Kammer@*\n"
+"Copyright @copyright{} 2015, 2016, 2017, 2019, 2020 Leo Famulari@*\n"
+"Copyright @copyright{} 2015, 2016, 2017, 2018, 2019, 2020 Ricardo Wurmus@*\n"
+"Copyright @copyright{} 2016 Ben Woodcroft@*\n"
+"Copyright @copyright{} 2016, 2017, 2018 Chris Marusich@*\n"
+"Copyright @copyright{} 2016, 2017, 2018, 2019, 2020 Efraim Flashner@*\n"
+"Copyright @copyright{} 2016 John Darrington@*\n"
+"Copyright @copyright{} 2016, 2017 Nikita Gillmann@*\n"
+"Copyright @copyright{} 2016, 2017, 2018, 2019, 2020 Jan Nieuwenhuizen@*\n"
+"Copyright @copyright{} 2016, 2017, 2018, 2019, 2020 Julien Lepiller@*\n"
+"Copyright @copyright{} 2016 Alex ter Weele@*\n"
+"Copyright @copyright{} 2016, 2017, 2018, 2019 Christopher Baines@*\n"
+"Copyright @copyright{} 2017, 2018, 2019 Clément Lassieur@*\n"
+"Copyright @copyright{} 2017, 2018, 2020 Mathieu Othacehe@*\n"
+"Copyright @copyright{} 2017 Federico Beffa@*\n"
+"Copyright @copyright{} 2017, 2018 Carlo Zancanaro@*\n"
+"Copyright @copyright{} 2017 Thomas Danckaert@*\n"
+"Copyright @copyright{} 2017 humanitiesNerd@*\n"
+"Copyright @copyright{} 2017 Christopher Allan Webber@*\n"
+"Copyright @copyright{} 2017, 2018, 2019, 2020 Marius Bakke@*\n"
+"Copyright @copyright{} 2017, 2019, 2020 Hartmut Goebel@*\n"
+"Copyright @copyright{} 2017, 2019, 2020 Maxim Cournoyer@*\n"
+"Copyright @copyright{} 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice@*\n"
+"Copyright @copyright{} 2017 George Clemmer@*\n"
+"Copyright @copyright{} 2017 Andy Wingo@*\n"
+"Copyright @copyright{} 2017, 2018, 2019, 2020 Arun Isaac@*\n"
+"Copyright @copyright{} 2017 nee@*\n"
+"Copyright @copyright{} 2018 Rutger Helling@*\n"
+"Copyright @copyright{} 2018 Oleg Pykhalov@*\n"
+"Copyright @copyright{} 2018 Mike Gerwitz@*\n"
+"Copyright @copyright{} 2018 Pierre-Antoine Rouby@*\n"
+"Copyright @copyright{} 2018, 2019 Gábor Boskovits@*\n"
+"Copyright @copyright{} 2018, 2019, 2020 Florian Pelz@*\n"
+"Copyright @copyright{} 2018 Laura Lazzati@*\n"
+"Copyright @copyright{} 2018 Alex Vong@*\n"
+"Copyright @copyright{} 2019 Josh Holland@*\n"
+"Copyright @copyright{} 2019, 2020 Diego Nicola Barbato@*\n"
+"Copyright @copyright{} 2019 Ivan Petkov@*\n"
+"Copyright @copyright{} 2019 Jakob L. Kreuze@*\n"
+"Copyright @copyright{} 2019 Kyle Andrews@*\n"
+"Copyright @copyright{} 2019 Alex Griffin@*\n"
+"Copyright @copyright{} 2019 Guillaume Le Vaillant@*\n"
+"Copyright @copyright{} 2020 Leo Prikler@*\n"
+"Copyright @copyright{} 2019, 2020 Simon Tournier@*\n"
+"Copyright @copyright{} 2020 Wiktor Żelazny@*\n"
+"Copyright @copyright{} 2020 Damien Cassou@*\n"
+"Copyright @copyright{} 2020 Jakub Kądziołka@*\n"
+"Copyright @copyright{} 2020 Jack Hill@*\n"
+"Copyright @copyright{} 2020 Naga Malleswari@*\n"
+"Copyright @copyright{} 2020 Brice Waegeneire@*\n"
+"Copyright @copyright{} 2020 R Veera Kumar@*\n"
+"Copyright @copyright{} 2020 Pierre Langlois@*\n"
+"Copyright @copyright{} 2020 pinoaffe@*\n"
+"Copyright @copyright{} 2020 André Batista@*\n"
+"Copyright @copyright{} 2020 Alexandru-Sergiu Marton@*\n"
+"Copyright @copyright{} 2019, 2020 Miguel Ángel Arruga Vivas (traducción)@*"
 
 #. type: copying
-#: doc/guix.texi:87
+#: doc/guix.texi:92
 msgid "Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.  A copy of the license is included in the section entitled ``GNU Free Documentation License''."
 msgstr "Se garantiza el permiso de copia, distribución y/o modificación de este documento bajo los términos de la licencia de documentación libre de GNU (GNU Free Documentation License), versión 1.3 o cualquier versión posterior publicada por la Free Software Foundation; sin secciones invariantes, sin textos de cubierta delantera ni trasera. Una copia de la licencia está incluida en la sección titulada ``GNU Free Documentation License''."
 
 #. type: dircategory
-#: doc/guix.texi:89
+#: doc/guix.texi:94
 #, no-wrap
 msgid "System administration"
 msgstr "Administración del sistema"
 
 #. type: menuentry
-#: doc/guix.texi:97
+#: doc/guix.texi:102
 msgid "Guix: (guix)"
 msgstr "Guix: (guix.es)"
 
 #. type: menuentry
-#: doc/guix.texi:97
+#: doc/guix.texi:102
 msgid "Manage installed software and system configuration."
 msgstr "Gestión del software instalado y la configuración del sistema."
 
 #. type: menuentry
-#: doc/guix.texi:97
+#: doc/guix.texi:102
 msgid "guix package: (guix)Invoking guix package"
 msgstr "guix package: (guix.es)Invocación de guix package"
 
 #. type: menuentry
-#: doc/guix.texi:97
+#: doc/guix.texi:102
 msgid "Installing, removing, and upgrading packages."
 msgstr "Instalación, borrado y actualización de paquetes."
 
 #. type: menuentry
-#: doc/guix.texi:97
+#: doc/guix.texi:102
 msgid "guix gc: (guix)Invoking guix gc"
 msgstr "guix gc: (guix.es)Invocación de guix gc"
 
 #. type: menuentry
-#: doc/guix.texi:97
+#: doc/guix.texi:102
 msgid "Reclaiming unused disk space."
 msgstr "Recuperar espacio de disco sin usar."
 
 #. type: menuentry
-#: doc/guix.texi:97
+#: doc/guix.texi:102
 msgid "guix pull: (guix)Invoking guix pull"
 msgstr "guix pull: (guix.es)Invocación de guix pull"
 
 #. type: menuentry
-#: doc/guix.texi:97
+#: doc/guix.texi:102
 msgid "Update the list of available packages."
 msgstr "Actualización de la lista disponible de paquetes."
 
 #. type: menuentry
-#: doc/guix.texi:97
+#: doc/guix.texi:102
 msgid "guix system: (guix)Invoking guix system"
 msgstr "guix system: (guix.es)Invocación de guix system"
 
 #. type: menuentry
-#: doc/guix.texi:97
+#: doc/guix.texi:102
 msgid "Manage the operating system configuration."
 msgstr "Gestión de la configuración del sistema operativo."
 
 #. type: menuentry
-#: doc/guix.texi:97
+#: doc/guix.texi:102
 msgid "guix deploy: (guix)Invoking guix deploy"
 msgstr "guix deploy: (guix.es)Invocación de guix deploy"
 
 #. type: menuentry
-#: doc/guix.texi:97
+#: doc/guix.texi:102
 msgid "Manage operating system configurations for remote hosts."
 msgstr "Gestión de configuraciones de sistemas operativos en máquinas remotas."
 
 #. type: dircategory
-#: doc/guix.texi:99
+#: doc/guix.texi:104
 #, no-wrap
 msgid "Software development"
 msgstr "Desarrollo de software"
 
 #. type: menuentry
-#: doc/guix.texi:104
+#: doc/guix.texi:109
 msgid "guix environment: (guix)Invoking guix environment"
 msgstr "guix environment: (guix.es)Invocación de guix environment"
 
 #. type: menuentry
-#: doc/guix.texi:104
+#: doc/guix.texi:109
 msgid "Building development environments with Guix."
 msgstr "Construcción de entornos de desarrollo con Guix."
 
 #. type: menuentry
-#: doc/guix.texi:104
+#: doc/guix.texi:109
 msgid "guix build: (guix)Invoking guix build"
 msgstr "guix build: (guix.es)Invocación de guix build"
 
 #. type: menuentry
-#: doc/guix.texi:104
+#: doc/guix.texi:109
 msgid "Building packages."
 msgstr "Construcción de paquetes."
 
 #. type: menuentry
-#: doc/guix.texi:104
+#: doc/guix.texi:109
 msgid "guix pack: (guix)Invoking guix pack"
 msgstr "guix pack: (guix.es)Invocación de guix pack"
 
 # FUZZY
 #. type: menuentry
-#: doc/guix.texi:104
+#: doc/guix.texi:109
 msgid "Creating binary bundles."
 msgstr "Creación de empaquetados binarios."
 
 #. type: subtitle
-#: doc/guix.texi:108
+#: doc/guix.texi:113
 #, no-wrap
 msgid "Using the GNU Guix Functional Package Manager"
 msgstr "Uso del gestor de paquetes funcional GNU Guix."
 
 #. type: author
-#: doc/guix.texi:109
+#: doc/guix.texi:114
 #, no-wrap
 msgid "The GNU Guix Developers"
 msgstr "Las desarrolladoras de GNU Guix"
 
 #. type: titlepage
-#: doc/guix.texi:115
+#: doc/guix.texi:120
 msgid "Edition @value{EDITION} @* @value{UPDATED} @*"
 msgstr "Edición @value{EDITION} @* @value{UPDATED} @*"
 
 #. type: node
-#: doc/guix.texi:122
+#: doc/guix.texi:127
 #, no-wrap
 msgid "Top"
 msgstr "Top"
 
 #. type: top
-#: doc/guix.texi:123
+#: doc/guix.texi:128
 #, no-wrap
 msgid "GNU Guix"
 msgstr "GNU Guix"
 
 #. type: Plain text
-#: doc/guix.texi:127
+#: doc/guix.texi:132
 msgid "This document describes GNU Guix version @value{VERSION}, a functional package management tool written for the GNU system."
 msgstr "Este documento describe GNU Guix versión @value{VERSION}, una herramienta funcional de gestión de paquetes escrita para el sistema GNU."
 
 #. type: Plain text
-#: doc/guix.texi:139
+#: doc/guix.texi:144
 msgid "This manual is also available in Simplified Chinese (@pxref{Top,,, guix.zh_CN, GNU Guix参考手册}), French (@pxref{Top,,, guix.fr, Manuel de référence de GNU Guix}), German (@pxref{Top,,, guix.de, Referenzhandbuch zu GNU Guix}), Spanish (@pxref{Top,,, guix.es, Manual de referencia de GNU Guix}), and Russian (@pxref{Top,,, guix.ru, Руководство GNU Guix}).  If you would like to translate it in your native language, consider joining the @uref{https://translationproject.org/domain/guix-manual.html, Translation Project}."
 msgstr ""
 "Este manual también está disponible en chino simplificado (@pxref{Top,,, guix.zh_CN, GNU Guix参考手册}), francés (@pxref{Top,,, guix.fr, Manuel de référence de GNU Guix}), alemán (@pxref{Top,,, guix.de, Referenzhandbuch zu GNU Guix}), ruso (@pxref{Top,,, guix.ru, Руководство GNU Guix}) y la versión original en inglés (@pxref{Top,,, guix, GNU Guix Reference Manual}). Si desea traducirlo en su lengua nativa, considere unirse al @uref{https://translationproject.org/domain/guix-manual.html, Translation Project}.\n"
@@ -2087,635 +2312,667 @@ msgstr ""
 "Este manual se está traducido prácticamente al completo al castellano, pero es posible que se ocasionalmente algún fragmento sin traducir aquí y allá, debido a modificaciones al texto original en inglés del manual. Si encuentra fallos en esta traducción, o simplemente quiere colaborar en su evolución y mejora, le rogamos que nos contacte a través de @uref{https://translationproject.org/team/es.html, la información de contacto del equipo de traducción}."
 
 #. type: chapter
-#: doc/guix.texi:155 doc/guix.texi:165 doc/guix.texi:332 doc/guix.texi:333
+#: doc/guix.texi:162 doc/guix.texi:172 doc/guix.texi:372 doc/guix.texi:373
 #, no-wrap
 msgid "Introduction"
 msgstr "Introducción"
 
 #. type: menuentry
-#: doc/guix.texi:155
+#: doc/guix.texi:162
 msgid "What is Guix about?"
 msgstr "¿Qué es esto de Guix?"
 
 #. type: chapter
-#: doc/guix.texi:155 doc/guix.texi:170 doc/guix.texi:491 doc/guix.texi:492
+#: doc/guix.texi:162 doc/guix.texi:177 doc/guix.texi:542 doc/guix.texi:543
 #, no-wrap
 msgid "Installation"
 msgstr "Instalación"
 
 #. type: menuentry
-#: doc/guix.texi:155
+#: doc/guix.texi:162
 msgid "Installing Guix."
 msgstr "Instalar Guix."
 
 #. type: chapter
-#: doc/guix.texi:155 doc/guix.texi:185 doc/guix.texi:1816 doc/guix.texi:1817
+#: doc/guix.texi:162 doc/guix.texi:193 doc/guix.texi:1903 doc/guix.texi:1904
 #, no-wrap
 msgid "System Installation"
 msgstr "Instalación del sistema"
 
 #. type: menuentry
-#: doc/guix.texi:155
+#: doc/guix.texi:162
 msgid "Installing the whole operating system."
 msgstr "Instalar el sistema operativo completo."
 
 #. type: chapter
-#: doc/guix.texi:155 doc/guix.texi:202 doc/guix.texi:2554 doc/guix.texi:2555
+#: doc/guix.texi:162 doc/guix.texi:2647 doc/guix.texi:2648
+#, no-wrap
+msgid "Getting Started"
+msgstr "Empezando"
+
+#. type: menuentry
+#: doc/guix.texi:162
+msgid "Your first steps."
+msgstr "Sus primeros pasos."
+
+#. type: chapter
+#: doc/guix.texi:162 doc/guix.texi:210 doc/guix.texi:2851 doc/guix.texi:2852
 #, no-wrap
 msgid "Package Management"
 msgstr "Gestión de paquetes"
 
 #. type: menuentry
-#: doc/guix.texi:155
+#: doc/guix.texi:162
 msgid "Package installation, upgrade, etc."
 msgstr "Instalación de paquetes, actualización, etc."
 
 #. type: chapter
-#: doc/guix.texi:155 doc/guix.texi:225 doc/guix.texi:4648 doc/guix.texi:4649
+#: doc/guix.texi:162 doc/guix.texi:233 doc/guix.texi:4854 doc/guix.texi:4855
+#, no-wrap
+msgid "Channels"
+msgstr "Canales"
+
+#. type: menuentry
+#: doc/guix.texi:162
+msgid "Customizing the package collection."
+msgstr "Personalizar el recolector de basura."
+
+#. type: chapter
+#: doc/guix.texi:162 doc/guix.texi:246 doc/guix.texi:5357 doc/guix.texi:5358
 #, no-wrap
 msgid "Development"
 msgstr "Desarrollo"
 
 #. type: menuentry
-#: doc/guix.texi:155
+#: doc/guix.texi:162
 msgid "Guix-aided software development."
 msgstr "Desarrollo de software asistido por Guix."
 
 #. type: chapter
-#: doc/guix.texi:155 doc/guix.texi:230 doc/guix.texi:5330 doc/guix.texi:5331
+#: doc/guix.texi:162 doc/guix.texi:253 doc/guix.texi:6177 doc/guix.texi:6178
 #, no-wrap
 msgid "Programming Interface"
 msgstr "Interfaz programática"
 
 #. type: menuentry
-#: doc/guix.texi:155
+#: doc/guix.texi:162
 msgid "Using Guix in Scheme."
 msgstr "Uso de Guix en Scheme."
 
 #. type: chapter
-#: doc/guix.texi:155 doc/guix.texi:246 doc/guix.texi:8142 doc/guix.texi:8143
+#: doc/guix.texi:162 doc/guix.texi:272 doc/guix.texi:9832 doc/guix.texi:9833
 #, no-wrap
 msgid "Utilities"
 msgstr "Utilidades"
 
 #. type: menuentry
-#: doc/guix.texi:155
+#: doc/guix.texi:162
 msgid "Package management commands."
 msgstr "Órdenes de gestión de paquetes."
 
 #. type: chapter
-#: doc/guix.texi:155 doc/guix.texi:271 doc/guix.texi:10943 doc/guix.texi:10944
+#: doc/guix.texi:162 doc/guix.texi:297 doc/guix.texi:12862 doc/guix.texi:12863
 #, no-wrap
 msgid "System Configuration"
 msgstr "Configuración del sistema"
 
 #. type: menuentry
-#: doc/guix.texi:155
+#: doc/guix.texi:162
 msgid "Configuring the operating system."
 msgstr "Configurar el sistema operativo."
 
 #. type: chapter
-#: doc/guix.texi:155 doc/guix.texi:27979 doc/guix.texi:27980
+#: doc/guix.texi:162 doc/guix.texi:32163 doc/guix.texi:32164
 #, no-wrap
 msgid "Documentation"
 msgstr "Documentación"
 
 #. type: menuentry
-#: doc/guix.texi:155
+#: doc/guix.texi:162
 msgid "Browsing software user manuals."
 msgstr "Navegar por los manuales de usuaria del software."
 
 #. type: chapter
-#: doc/guix.texi:155 doc/guix.texi:28043 doc/guix.texi:28044
+#: doc/guix.texi:162 doc/guix.texi:359 doc/guix.texi:32227 doc/guix.texi:32228
 #, no-wrap
 msgid "Installing Debugging Files"
-msgstr "Instalación de ficheros de depuración"
+msgstr "Instalación de archivos de depuración"
 
 #. type: menuentry
-#: doc/guix.texi:155
+#: doc/guix.texi:162
 msgid "Feeding the debugger."
 msgstr "Alimentación del depurador."
 
 #. type: chapter
-#: doc/guix.texi:155 doc/guix.texi:28109 doc/guix.texi:28110
+#: doc/guix.texi:162 doc/guix.texi:32368 doc/guix.texi:32369
 #, no-wrap
 msgid "Security Updates"
 msgstr "Actualizaciones de seguridad"
 
 #. type: menuentry
-#: doc/guix.texi:155
+#: doc/guix.texi:162
 msgid "Deploying security fixes quickly."
 msgstr "Desplegar correcciones de seguridad rápidamente."
 
 #. type: chapter
-#: doc/guix.texi:155 doc/guix.texi:28224 doc/guix.texi:28225
+#: doc/guix.texi:162 doc/guix.texi:364 doc/guix.texi:32483 doc/guix.texi:32484
 #, no-wrap
 msgid "Bootstrapping"
 msgstr "Lanzamiento inicial"
 
 #. type: menuentry
-#: doc/guix.texi:155
+#: doc/guix.texi:162
 msgid "GNU/Linux built from scratch."
 msgstr "GNU/Linux construido de cero."
 
 # TODO: (MAAV) A mejorar
 #. type: node
-#: doc/guix.texi:155 doc/guix.texi:28502
+#: doc/guix.texi:162 doc/guix.texi:32770
 #, no-wrap
 msgid "Porting"
 msgstr "Transportar"
 
 # TODO: (MAAV) A mejorar
 #. type: menuentry
-#: doc/guix.texi:155
+#: doc/guix.texi:162
 msgid "Targeting another platform or kernel."
 msgstr "Adaptación para otra plataforma o núcleo."
 
 #. type: menuentry
-#: doc/guix.texi:155
+#: doc/guix.texi:162
 msgid "Your help needed!"
 msgstr "¡Se necesita su ayuda!"
 
 #. type: chapter
-#: doc/guix.texi:160 doc/guix.texi:28550 doc/guix.texi:28551
+#: doc/guix.texi:167 doc/guix.texi:32818 doc/guix.texi:32819
 #, no-wrap
 msgid "Acknowledgments"
 msgstr "Reconocimientos"
 
 #. type: menuentry
-#: doc/guix.texi:160
+#: doc/guix.texi:167
 msgid "Thanks!"
 msgstr "¡Gracias!"
 
 #. type: appendix
-#: doc/guix.texi:160 doc/guix.texi:28572 doc/guix.texi:28573
+#: doc/guix.texi:167 doc/guix.texi:32840 doc/guix.texi:32841
 #, no-wrap
 msgid "GNU Free Documentation License"
 msgstr "Licencia de documentación libre GNU"
 
 #. type: menuentry
-#: doc/guix.texi:160
+#: doc/guix.texi:167
 msgid "The license of this manual."
 msgstr "La licencia de este manual."
 
 #. type: unnumbered
-#: doc/guix.texi:160 doc/guix.texi:28578 doc/guix.texi:28579
+#: doc/guix.texi:167 doc/guix.texi:32846 doc/guix.texi:32847
 #, no-wrap
 msgid "Concept Index"
 msgstr "Índice de conceptos"
 
 #. type: menuentry
-#: doc/guix.texi:160
+#: doc/guix.texi:167
 msgid "Concepts."
 msgstr "Conceptos."
 
 #. type: unnumbered
-#: doc/guix.texi:160 doc/guix.texi:28582 doc/guix.texi:28583
+#: doc/guix.texi:167 doc/guix.texi:32850 doc/guix.texi:32851
 #, no-wrap
 msgid "Programming Index"
 msgstr "Índice programático"
 
 #. type: menuentry
-#: doc/guix.texi:160
+#: doc/guix.texi:167
 msgid "Data types, functions, and variables."
 msgstr "Tipos de datos, funciones y variables."
 
 #. type: menuentry
-#: doc/guix.texi:163
+#: doc/guix.texi:170
 msgid "--- The Detailed Node Listing ---"
 msgstr "--- La lista detallada de nodos ---"
 
 #. type: section
-#: doc/guix.texi:168 doc/guix.texi:359 doc/guix.texi:361 doc/guix.texi:362
+#: doc/guix.texi:175 doc/guix.texi:399 doc/guix.texi:401 doc/guix.texi:402
 #, no-wrap
 msgid "Managing Software the Guix Way"
 msgstr "Gestión de software con Guix"
 
 #. type: menuentry
-#: doc/guix.texi:168 doc/guix.texi:359
+#: doc/guix.texi:175 doc/guix.texi:399
 msgid "What's special."
 msgstr "Qué es especial."
 
 #. type: section
-#: doc/guix.texi:168 doc/guix.texi:359 doc/guix.texi:416 doc/guix.texi:417
+#: doc/guix.texi:175 doc/guix.texi:399 doc/guix.texi:456 doc/guix.texi:457
 #, no-wrap
 msgid "GNU Distribution"
 msgstr "Distribución GNU"
 
 #. type: menuentry
-#: doc/guix.texi:168 doc/guix.texi:359
+#: doc/guix.texi:175 doc/guix.texi:399
 msgid "The packages and tools."
 msgstr "Los paquetes y herramientas."
 
 #. type: section
-#: doc/guix.texi:177 doc/guix.texi:531 doc/guix.texi:533 doc/guix.texi:534
+#: doc/guix.texi:185 doc/guix.texi:582 doc/guix.texi:584 doc/guix.texi:585
 #, no-wrap
 msgid "Binary Installation"
 msgstr "Instalación binaria"
 
 #. type: menuentry
-#: doc/guix.texi:177 doc/guix.texi:531
+#: doc/guix.texi:185 doc/guix.texi:582
 msgid "Getting Guix running in no time!"
 msgstr "¡Poner Guix en funcionamiento en nada de tiempo!"
 
 #. type: section
-#: doc/guix.texi:177 doc/guix.texi:531 doc/guix.texi:739 doc/guix.texi:740
+#: doc/guix.texi:185 doc/guix.texi:582 doc/guix.texi:802 doc/guix.texi:803
 #, no-wrap
 msgid "Requirements"
 msgstr "Requisitos"
 
 #. type: menuentry
-#: doc/guix.texi:177 doc/guix.texi:531
+#: doc/guix.texi:185 doc/guix.texi:582
 msgid "Software needed to build and run Guix."
 msgstr "Software necesario para construir y ejecutar Guix."
 
 #. type: section
-#: doc/guix.texi:177 doc/guix.texi:531 doc/guix.texi:814 doc/guix.texi:815
+#: doc/guix.texi:185 doc/guix.texi:582 doc/guix.texi:879 doc/guix.texi:880
 #, no-wrap
 msgid "Running the Test Suite"
 msgstr "Ejecución de la batería de pruebas"
 
 #. type: menuentry
-#: doc/guix.texi:177 doc/guix.texi:531
+#: doc/guix.texi:185 doc/guix.texi:582
 msgid "Testing Guix."
 msgstr "Probar Guix."
 
 #. type: section
-#: doc/guix.texi:177 doc/guix.texi:179 doc/guix.texi:531 doc/guix.texi:879
-#: doc/guix.texi:880
+#: doc/guix.texi:185 doc/guix.texi:187 doc/guix.texi:582 doc/guix.texi:944
+#: doc/guix.texi:945
 #, no-wrap
 msgid "Setting Up the Daemon"
 msgstr "Preparación del daemon"
 
 #. type: menuentry
-#: doc/guix.texi:177 doc/guix.texi:531
+#: doc/guix.texi:185 doc/guix.texi:582
 msgid "Preparing the build daemon's environment."
 msgstr "Preparar el entorno del daemon de construcción."
 
 #. type: node
-#: doc/guix.texi:177 doc/guix.texi:531 doc/guix.texi:1310
+#: doc/guix.texi:185 doc/guix.texi:582 doc/guix.texi:1409
 #, no-wrap
 msgid "Invoking guix-daemon"
 msgstr "Invocación de guix-daemon"
 
 #. type: menuentry
-#: doc/guix.texi:177 doc/guix.texi:531
+#: doc/guix.texi:185 doc/guix.texi:582
 msgid "Running the build daemon."
 msgstr "Ejecutar el daemon de construcción."
 
 #. type: section
-#: doc/guix.texi:177 doc/guix.texi:531 doc/guix.texi:1576 doc/guix.texi:1577
+#: doc/guix.texi:185 doc/guix.texi:582 doc/guix.texi:1681 doc/guix.texi:1682
 #, no-wrap
 msgid "Application Setup"
 msgstr "Configuración de la aplicación"
 
 #. type: menuentry
-#: doc/guix.texi:177 doc/guix.texi:531
+#: doc/guix.texi:185 doc/guix.texi:582
 msgid "Application-specific setup."
 msgstr "Configuración específica de la aplicación."
 
+#. type: section
+#: doc/guix.texi:185 doc/guix.texi:582 doc/guix.texi:1866 doc/guix.texi:1867
+#, no-wrap
+msgid "Upgrading Guix"
+msgstr "Actualizar Guix"
+
+#. type: menuentry
+#: doc/guix.texi:185 doc/guix.texi:582
+msgid "Upgrading Guix and its build daemon."
+msgstr "Actualizar Guix y su daemon de construcción."
+
 #. type: subsection
-#: doc/guix.texi:183 doc/guix.texi:899 doc/guix.texi:901 doc/guix.texi:902
+#: doc/guix.texi:191 doc/guix.texi:964 doc/guix.texi:966 doc/guix.texi:967
 #, no-wrap
 msgid "Build Environment Setup"
 msgstr "Configuración del entorno de construcción"
 
 #. type: menuentry
-#: doc/guix.texi:183 doc/guix.texi:899
+#: doc/guix.texi:191 doc/guix.texi:964
 msgid "Preparing the isolated build environment."
 msgstr "Preparar el entorno aislado de construcción."
 
 #. type: node
-#: doc/guix.texi:183 doc/guix.texi:899 doc/guix.texi:1018
+#: doc/guix.texi:191 doc/guix.texi:964 doc/guix.texi:1085
 #, no-wrap
 msgid "Daemon Offload Setup"
 msgstr "Configuración de delegación del daemon"
 
 #. type: menuentry
-#: doc/guix.texi:183 doc/guix.texi:899
+#: doc/guix.texi:191 doc/guix.texi:964
 msgid "Offloading builds to remote machines."
 msgstr "Delegar construcciones a máquinas remotas."
 
 #. type: subsection
-#: doc/guix.texi:183 doc/guix.texi:899 doc/guix.texi:1224 doc/guix.texi:1225
+#: doc/guix.texi:191 doc/guix.texi:964 doc/guix.texi:1323 doc/guix.texi:1324
 #, no-wrap
 msgid "SELinux Support"
 msgstr "Soporte de SELinux"
 
 #. type: menuentry
-#: doc/guix.texi:183 doc/guix.texi:899
+#: doc/guix.texi:191 doc/guix.texi:964
 msgid "Using an SELinux policy for the daemon."
 msgstr "Uso de una política SELinux para el daemon."
 
 #. type: section
-#: doc/guix.texi:195 doc/guix.texi:1260 doc/guix.texi:1850 doc/guix.texi:1852
-#: doc/guix.texi:1853
+#: doc/guix.texi:203 doc/guix.texi:1359 doc/guix.texi:1937 doc/guix.texi:1939
+#: doc/guix.texi:1940
 #, no-wrap
 msgid "Limitations"
 msgstr "Limitaciones"
 
 #. type: menuentry
-#: doc/guix.texi:195 doc/guix.texi:1850
+#: doc/guix.texi:203 doc/guix.texi:1937
 msgid "What you can expect."
 msgstr "Qué puede esperar."
 
 #. type: section
-#: doc/guix.texi:195 doc/guix.texi:1850 doc/guix.texi:1881 doc/guix.texi:1882
+#: doc/guix.texi:203 doc/guix.texi:1937 doc/guix.texi:1968 doc/guix.texi:1969
 #, no-wrap
 msgid "Hardware Considerations"
 msgstr "Consideraciones sobre el hardware"
 
 #. type: menuentry
-#: doc/guix.texi:195 doc/guix.texi:1850
+#: doc/guix.texi:203 doc/guix.texi:1937
 msgid "Supported hardware."
 msgstr "Hardware soportado."
 
 #. type: section
-#: doc/guix.texi:195 doc/guix.texi:1850 doc/guix.texi:1916 doc/guix.texi:1917
+#: doc/guix.texi:203 doc/guix.texi:1937 doc/guix.texi:2003 doc/guix.texi:2004
 #, no-wrap
 msgid "USB Stick and DVD Installation"
 msgstr "Instalación desde memoria USB y DVD"
 
 #. type: menuentry
-#: doc/guix.texi:195 doc/guix.texi:1850
+#: doc/guix.texi:203 doc/guix.texi:1937
 msgid "Preparing the installation medium."
 msgstr "Preparar el medio de instalación."
 
 #. type: section
-#: doc/guix.texi:195 doc/guix.texi:1850 doc/guix.texi:2021 doc/guix.texi:2022
+#: doc/guix.texi:203 doc/guix.texi:1937 doc/guix.texi:2108 doc/guix.texi:2109
 #, no-wrap
 msgid "Preparing for Installation"
 msgstr "Preparación para la instalación"
 
 #. type: menuentry
-#: doc/guix.texi:195 doc/guix.texi:1850
+#: doc/guix.texi:203 doc/guix.texi:1937
 msgid "Networking, partitioning, etc."
 msgstr "Red, particionado, etc."
 
 #. type: section
-#: doc/guix.texi:195 doc/guix.texi:1850 doc/guix.texi:2044 doc/guix.texi:2045
+#: doc/guix.texi:203 doc/guix.texi:1937 doc/guix.texi:2131 doc/guix.texi:2132
 #, no-wrap
 msgid "Guided Graphical Installation"
 msgstr "Instalación gráfica guiada"
 
 # TODO: Easy...
 #. type: menuentry
-#: doc/guix.texi:195 doc/guix.texi:1850
+#: doc/guix.texi:203 doc/guix.texi:1937
 msgid "Easy graphical installation."
 msgstr "Instalación gráfica fácil."
 
 #. type: section
-#: doc/guix.texi:195 doc/guix.texi:197 doc/guix.texi:1850 doc/guix.texi:2075
-#: doc/guix.texi:2076
+#: doc/guix.texi:203 doc/guix.texi:205 doc/guix.texi:1937 doc/guix.texi:2162
+#: doc/guix.texi:2163
 #, no-wrap
 msgid "Manual Installation"
 msgstr "Instalación manual"
 
 # FUZZY
 #. type: menuentry
-#: doc/guix.texi:195 doc/guix.texi:1850
+#: doc/guix.texi:203 doc/guix.texi:1937
 msgid "Manual installation for wizards."
 msgstr "Instalación manual para artistas del teclado."
 
 #. type: section
-#: doc/guix.texi:195 doc/guix.texi:1850 doc/guix.texi:2437 doc/guix.texi:2438
+#: doc/guix.texi:203 doc/guix.texi:1937 doc/guix.texi:2530 doc/guix.texi:2531
 #, no-wrap
 msgid "After System Installation"
 msgstr "Tras la instalación del sistema"
 
 # FUZZY
 #. type: menuentry
-#: doc/guix.texi:195 doc/guix.texi:1850
+#: doc/guix.texi:203 doc/guix.texi:1937
 msgid "When installation succeeded."
 msgstr "Cuando la instalación ha finalizado satisfactoriamente."
 
 #. type: node
-#: doc/guix.texi:195 doc/guix.texi:1850 doc/guix.texi:2470
+#: doc/guix.texi:203 doc/guix.texi:1937 doc/guix.texi:2564
 #, no-wrap
 msgid "Installing Guix in a VM"
 msgstr "Instalación de Guix en una máquina virtual"
 
 # (MAAV): ¿Patio de recreo es internacional?
 #. type: menuentry
-#: doc/guix.texi:195 doc/guix.texi:1850
+#: doc/guix.texi:203 doc/guix.texi:1937
 msgid "Guix System playground."
 msgstr "El patio de recreo del sistema Guix."
 
 #. type: section
-#: doc/guix.texi:195 doc/guix.texi:1850 doc/guix.texi:2521 doc/guix.texi:2522
+#: doc/guix.texi:203 doc/guix.texi:1937 doc/guix.texi:2615 doc/guix.texi:2616
 #, no-wrap
 msgid "Building the Installation Image"
 msgstr "Construcción de la imagen de instalación"
 
 #. type: menuentry
-#: doc/guix.texi:195 doc/guix.texi:1850
+#: doc/guix.texi:203 doc/guix.texi:1937
 msgid "How this comes to be."
 msgstr "Cómo esto llega a ser."
 
 # FUZZY
 #. type: node
-#: doc/guix.texi:200 doc/guix.texi:2093 doc/guix.texi:2095
+#: doc/guix.texi:208 doc/guix.texi:2180 doc/guix.texi:2182
 #, no-wrap
 msgid "Keyboard Layout and Networking and Partitioning"
 msgstr "Distribución de teclado y red y particionado"
 
 #. type: menuentry
-#: doc/guix.texi:200 doc/guix.texi:2093
+#: doc/guix.texi:208 doc/guix.texi:2180
 msgid "Initial setup."
 msgstr "Configuración inicial."
 
 #. type: subsection
-#: doc/guix.texi:200 doc/guix.texi:2093 doc/guix.texi:2349 doc/guix.texi:2350
+#: doc/guix.texi:208 doc/guix.texi:2180 doc/guix.texi:2442 doc/guix.texi:2443
 #, no-wrap
 msgid "Proceeding with the Installation"
 msgstr "Procedimiento de instalación"
 
 #. type: menuentry
-#: doc/guix.texi:200 doc/guix.texi:2093
+#: doc/guix.texi:208 doc/guix.texi:2180
 msgid "Installing."
 msgstr "Instalación."
 
 #. type: section
-#: doc/guix.texi:214 doc/guix.texi:2587 doc/guix.texi:2589 doc/guix.texi:2590
+#: doc/guix.texi:221 doc/guix.texi:2883 doc/guix.texi:2885 doc/guix.texi:2886
 #, no-wrap
 msgid "Features"
 msgstr "Características"
 
 #. type: menuentry
-#: doc/guix.texi:214 doc/guix.texi:2587
+#: doc/guix.texi:221 doc/guix.texi:2883
 msgid "How Guix will make your life brighter."
 msgstr "Cómo Guix dará brillo a su vida."
 
 #. type: node
-#: doc/guix.texi:214 doc/guix.texi:2587 doc/guix.texi:2675
+#: doc/guix.texi:221 doc/guix.texi:2883 doc/guix.texi:2975
 #, no-wrap
 msgid "Invoking guix package"
 msgstr "Invocación de guix package"
 
 #. type: menuentry
-#: doc/guix.texi:214 doc/guix.texi:2587
+#: doc/guix.texi:221 doc/guix.texi:2883
 msgid "Package installation, removal, etc."
 msgstr "Instalación de paquetes, borrado, etc."
 
 #. type: section
-#: doc/guix.texi:214 doc/guix.texi:216 doc/guix.texi:2587 doc/guix.texi:3211
-#: doc/guix.texi:3212
+#: doc/guix.texi:221 doc/guix.texi:223 doc/guix.texi:2883 doc/guix.texi:3544
+#: doc/guix.texi:3545
 #, no-wrap
 msgid "Substitutes"
 msgstr "Sustituciones"
 
 #. type: menuentry
-#: doc/guix.texi:214 doc/guix.texi:2587
+#: doc/guix.texi:221 doc/guix.texi:2883
 msgid "Downloading pre-built binaries."
 msgstr "Descargar binarios pre-construidos."
 
 #. type: section
-#: doc/guix.texi:214 doc/guix.texi:2587 doc/guix.texi:3434 doc/guix.texi:3435
+#: doc/guix.texi:221 doc/guix.texi:2883 doc/guix.texi:3875 doc/guix.texi:3876
 #, no-wrap
 msgid "Packages with Multiple Outputs"
 msgstr "Paquetes con múltiples salidas"
 
 #. type: menuentry
-#: doc/guix.texi:214 doc/guix.texi:2587
+#: doc/guix.texi:221 doc/guix.texi:2883
 msgid "Single source package, multiple outputs."
 msgstr "Un único paquete de fuentes, múltiples salidas."
 
 #. type: node
-#: doc/guix.texi:214 doc/guix.texi:2587 doc/guix.texi:3488
+#: doc/guix.texi:221 doc/guix.texi:2883 doc/guix.texi:3929
 #, no-wrap
 msgid "Invoking guix gc"
 msgstr "Invocación de guix gc"
 
 #. type: menuentry
-#: doc/guix.texi:214 doc/guix.texi:2587
+#: doc/guix.texi:221 doc/guix.texi:2883
 msgid "Running the garbage collector."
 msgstr "Ejecutar el recolector de basura."
 
 #. type: node
-#: doc/guix.texi:214 doc/guix.texi:2587 doc/guix.texi:3698
+#: doc/guix.texi:221 doc/guix.texi:2883 doc/guix.texi:4139
 #, no-wrap
 msgid "Invoking guix pull"
 msgstr "Invocación de guix pull"
 
 #. type: menuentry
-#: doc/guix.texi:214 doc/guix.texi:2587
+#: doc/guix.texi:221 doc/guix.texi:2883
 msgid "Fetching the latest Guix and distribution."
 msgstr "Obtener la última versión de Guix y la distribución."
 
-#. type: section
-#: doc/guix.texi:214 doc/guix.texi:2587 doc/guix.texi:3915 doc/guix.texi:3916
-#, no-wrap
-msgid "Channels"
-msgstr "Canales"
-
-#. type: menuentry
-#: doc/guix.texi:214 doc/guix.texi:2587
-msgid "Customizing the package collection."
-msgstr "Personalizar el recolector de basura."
-
 #. type: node
-#: doc/guix.texi:214 doc/guix.texi:2587 doc/guix.texi:4206
+#: doc/guix.texi:221 doc/guix.texi:2883 doc/guix.texi:4386
 #, no-wrap
 msgid "Invoking guix time-machine"
 msgstr "Invocación de guix time-machine"
 
 # FUZZY
 #. type: menuentry
-#: doc/guix.texi:214 doc/guix.texi:2587
+#: doc/guix.texi:221 doc/guix.texi:2883
 msgid "Running an older revision of Guix."
 msgstr "Ejecutar una versión antigua de Guix."
 
 #. type: section
-#: doc/guix.texi:214 doc/guix.texi:2587 doc/guix.texi:4261 doc/guix.texi:4262
+#: doc/guix.texi:221 doc/guix.texi:2883 doc/guix.texi:4441 doc/guix.texi:4442
 #, no-wrap
 msgid "Inferiors"
 msgstr "Inferiores"
 
 #. type: menuentry
-#: doc/guix.texi:214 doc/guix.texi:2587
+#: doc/guix.texi:221 doc/guix.texi:2883
 msgid "Interacting with another revision of Guix."
 msgstr "Interactuar con otra revisión de Guix."
 
 #. type: node
-#: doc/guix.texi:214 doc/guix.texi:2587 doc/guix.texi:4389
+#: doc/guix.texi:221 doc/guix.texi:2883 doc/guix.texi:4569
 #, no-wrap
 msgid "Invoking guix describe"
 msgstr "Invocación de guix describe"
 
 #. type: menuentry
-#: doc/guix.texi:214 doc/guix.texi:2587
+#: doc/guix.texi:221 doc/guix.texi:2883
 msgid "Display information about your Guix revision."
 msgstr "Muestra información acerca de su revisión de Guix."
 
 #. type: node
-#: doc/guix.texi:214 doc/guix.texi:2587 doc/guix.texi:4470
+#: doc/guix.texi:221 doc/guix.texi:2883 doc/guix.texi:4664
 #, no-wrap
 msgid "Invoking guix archive"
 msgstr "Invocación de guix archive"
 
 #. type: menuentry
-#: doc/guix.texi:214 doc/guix.texi:2587
+#: doc/guix.texi:221 doc/guix.texi:2883
 msgid "Exporting and importing store files."
-msgstr "Exportar e importar ficheros del almacén."
+msgstr "Exportar e importar archivos del almacén."
 
 #. type: subsection
-#: doc/guix.texi:223 doc/guix.texi:3234 doc/guix.texi:3236 doc/guix.texi:3237
+#: doc/guix.texi:231 doc/guix.texi:3568 doc/guix.texi:3570 doc/guix.texi:3571
 #, no-wrap
 msgid "Official Substitute Server"
 msgstr "Servidor oficial de sustituciones."
 
 #. type: menuentry
-#: doc/guix.texi:223 doc/guix.texi:3234
+#: doc/guix.texi:231 doc/guix.texi:3568
 msgid "One particular source of substitutes."
 msgstr "Una fuente particular de sustituciones."
 
 #. type: subsection
-#: doc/guix.texi:223 doc/guix.texi:3234 doc/guix.texi:3265 doc/guix.texi:3266
+#: doc/guix.texi:231 doc/guix.texi:3568 doc/guix.texi:3599 doc/guix.texi:3600
 #, no-wrap
 msgid "Substitute Server Authorization"
 msgstr "Autorización de servidores de sustituciones"
 
 #. type: menuentry
-#: doc/guix.texi:223 doc/guix.texi:3234
+#: doc/guix.texi:231 doc/guix.texi:3568
 msgid "How to enable or disable substitutes."
 msgstr "Cómo activar o desactivar las sustituciones."
 
 #. type: subsection
-#: doc/guix.texi:223 doc/guix.texi:3234 doc/guix.texi:3329 doc/guix.texi:3330
+#: doc/guix.texi:231 doc/guix.texi:3568 doc/guix.texi:3668 doc/guix.texi:3669
+#, no-wrap
+msgid "Getting Substitutes from Other Servers"
+msgstr "Obtención de sustiticiones desde otros servidores"
+
+#. type: menuentry
+#: doc/guix.texi:231 doc/guix.texi:3568
+msgid "Substitute diversity."
+msgstr "Diversidad en las sustituciones."
+
+#. type: subsection
+#: doc/guix.texi:231 doc/guix.texi:3568 doc/guix.texi:3770 doc/guix.texi:3771
 #, no-wrap
 msgid "Substitute Authentication"
 msgstr "Verificación de sustituciones"
 
 #. type: menuentry
-#: doc/guix.texi:223 doc/guix.texi:3234
+#: doc/guix.texi:231 doc/guix.texi:3568
 msgid "How Guix verifies substitutes."
 msgstr "Cómo verifica las sustituciones Guix."
 
-# TODO: (MAAV) No sé si es mejor dejar proxy...
 #. type: subsection
-#: doc/guix.texi:223 doc/guix.texi:3234 doc/guix.texi:3364 doc/guix.texi:3365
+#: doc/guix.texi:231 doc/guix.texi:3568 doc/guix.texi:3805 doc/guix.texi:3806
 #, no-wrap
 msgid "Proxy Settings"
 msgstr "Configuración de la pasarela."
 
 #. type: menuentry
-#: doc/guix.texi:223 doc/guix.texi:3234
+#: doc/guix.texi:231 doc/guix.texi:3568
 msgid "How to get substitutes via proxy."
 msgstr "Cómo obtener sustituciones a través de una pasarela."
 
 #. type: subsection
-#: doc/guix.texi:223 doc/guix.texi:3234 doc/guix.texi:3376 doc/guix.texi:3377
+#: doc/guix.texi:231 doc/guix.texi:3568 doc/guix.texi:3817 doc/guix.texi:3818
 #, no-wrap
 msgid "Substitution Failure"
 msgstr "Fallos en las sustituciones"
 
 #. type: menuentry
-#: doc/guix.texi:223 doc/guix.texi:3234
+#: doc/guix.texi:231 doc/guix.texi:3568
 msgid "What happens when substitution fails."
 msgstr "Qué pasa cuando una sustitución falla."
 
 #. type: subsection
-#: doc/guix.texi:223 doc/guix.texi:3234 doc/guix.texi:3404 doc/guix.texi:3405
+#: doc/guix.texi:231 doc/guix.texi:3568 doc/guix.texi:3845 doc/guix.texi:3846
 #, no-wrap
 msgid "On Trusting Binaries"
 msgstr "Sobre la confianza en binarios"
@@ -2723,497 +2980,666 @@ msgstr "Sobre la confianza en binarios"
 # XXX: MAAV, la traducción literal creo que refleja mejor la intención,
 # o puede que sea sólo la mía.
 #. type: menuentry
-#: doc/guix.texi:223 doc/guix.texi:3234
+#: doc/guix.texi:231 doc/guix.texi:3568
 msgid "How can you trust that binary blob?"
 msgstr "¿Cómo puede confiar en esa masa amorfa de datos binarios?"
 
+#. type: section
+#: doc/guix.texi:244 doc/guix.texi:4884 doc/guix.texi:4886 doc/guix.texi:4887
+#, no-wrap
+msgid "Specifying Additional Channels"
+msgstr "Especificación de canales adicionales"
+
+#. type: menuentry
+#: doc/guix.texi:244 doc/guix.texi:4884
+msgid "Extending the package collection."
+msgstr "Extensiones para la recolección de paquetes."
+
+#. type: section
+#: doc/guix.texi:244 doc/guix.texi:4884 doc/guix.texi:4936 doc/guix.texi:4937
+#, no-wrap
+msgid "Using a Custom Guix Channel"
+msgstr "Uso de un canal de Guix personalizado"
+
+#. type: menuentry
+#: doc/guix.texi:244 doc/guix.texi:4884
+msgid "Using a customized Guix."
+msgstr "Uso de un Guix personalizado."
+
+#. type: section
+#: doc/guix.texi:244 doc/guix.texi:4884 doc/guix.texi:4958 doc/guix.texi:4959
+#, no-wrap
+msgid "Replicating Guix"
+msgstr "Replicación de Guix"
+
+#. type: menuentry
+#: doc/guix.texi:244 doc/guix.texi:4884
+msgid "Running the @emph{exact same} Guix."
+msgstr "Ejecución de @emph{exáctamente el mismo} Guix."
+
+#. type: section
+#: doc/guix.texi:244 doc/guix.texi:4884 doc/guix.texi:4999 doc/guix.texi:5000
+#, no-wrap
+msgid "Channel Authentication"
+msgstr "Verificación de canales"
+
+#. type: menuentry
+#: doc/guix.texi:244 doc/guix.texi:4884
+msgid "How Guix verifies what it fetches."
+msgstr "Cómo verifica Guix lo que obtiene."
+
+#. type: section
+#: doc/guix.texi:244 doc/guix.texi:4884 doc/guix.texi:5039 doc/guix.texi:5040
+#, no-wrap
+msgid "Creating a Channel"
+msgstr "Creación de un canal"
+
+#. type: menuentry
+#: doc/guix.texi:244 doc/guix.texi:4884
+msgid "How to write your custom channel."
+msgstr "Cómo escribir su canal personalizado."
+
+#. type: section
+#: doc/guix.texi:244 doc/guix.texi:4884 doc/guix.texi:5106 doc/guix.texi:5107
+#, no-wrap
+msgid "Package Modules in a Sub-directory"
+msgstr "Módulos de paquetes en un subdirectorio"
+
+#. type: menuentry
+#: doc/guix.texi:244 doc/guix.texi:4884
+msgid "Specifying the channel's package modules location."
+msgstr "Especificación de la localización de los módulos de paquetes del canal."
+
+#. type: section
+#: doc/guix.texi:244 doc/guix.texi:4884 doc/guix.texi:5120 doc/guix.texi:5121
+#, no-wrap
+msgid "Declaring Channel Dependencies"
+msgstr "Declaración de dependencias de canales"
+
+#. type: menuentry
+#: doc/guix.texi:244 doc/guix.texi:4884
+msgid "How to depend on other channels."
+msgstr "Cómo depender de otros canales."
+
+#. type: section
+#: doc/guix.texi:244 doc/guix.texi:4884 doc/guix.texi:5162 doc/guix.texi:5163
+#, no-wrap
+msgid "Specifying Channel Authorizations"
+msgstr "Especificación de autorizaciones del canal"
+
+#. type: menuentry
+#: doc/guix.texi:244 doc/guix.texi:4884
+msgid "Defining channel authors authorizations."
+msgstr "Definición de autorizaciones para autores de canales."
+
+#. type: section
+#: doc/guix.texi:244 doc/guix.texi:4884 doc/guix.texi:5263 doc/guix.texi:5264
+#, no-wrap
+msgid "Primary URL"
+msgstr "URL primaria"
+
+#. type: menuentry
+#: doc/guix.texi:244 doc/guix.texi:4884
+msgid "Distinguishing mirror to original."
+msgstr "Distinción entre un servidor espejo y el original."
+
+#. type: section
+#: doc/guix.texi:244 doc/guix.texi:4884 doc/guix.texi:5286 doc/guix.texi:5287
+#, no-wrap
+msgid "Writing Channel News"
+msgstr "Escribir de noticias del canal"
+
+#. type: menuentry
+#: doc/guix.texi:244 doc/guix.texi:4884
+msgid "Communicating information to channel's users."
+msgstr "Comunicar información a las usuarias del canal."
+
 #. type: node
-#: doc/guix.texi:228 doc/guix.texi:4665 doc/guix.texi:4667
+#: doc/guix.texi:251 doc/guix.texi:5376 doc/guix.texi:5378
 #, no-wrap
 msgid "Invoking guix environment"
 msgstr "Invocación de guix environment"
 
 #. type: menuentry
-#: doc/guix.texi:228 doc/guix.texi:4665
+#: doc/guix.texi:251 doc/guix.texi:5376
 msgid "Setting up development environments."
 msgstr "Configurar entornos de desarrollo."
 
 #. type: node
-#: doc/guix.texi:228 doc/guix.texi:4665 doc/guix.texi:5004
+#: doc/guix.texi:251 doc/guix.texi:5376 doc/guix.texi:5732
 #, no-wrap
 msgid "Invoking guix pack"
 msgstr "Invocación de guix pack"
 
 #. type: menuentry
-#: doc/guix.texi:228 doc/guix.texi:4665
+#: doc/guix.texi:251 doc/guix.texi:5376
 msgid "Creating software bundles."
 msgstr "Creación de empaquetados de software."
 
 #. type: section
-#: doc/guix.texi:239 doc/guix.texi:5367 doc/guix.texi:5369 doc/guix.texi:5370
+#: doc/guix.texi:251 doc/guix.texi:5376 doc/guix.texi:6089 doc/guix.texi:6090
+#, no-wrap
+msgid "The GCC toolchain"
+msgstr "La cadena de herramientas de GCC"
+
+# FUZZY
+#. type: menuentry
+#: doc/guix.texi:251 doc/guix.texi:5376
+msgid "Working with languages supported by GCC."
+msgstr "Trabajo con lenguajes implementados por GCC."
+
+#. type: node
+#: doc/guix.texi:251 doc/guix.texi:5376 doc/guix.texi:6115
+#, no-wrap
+msgid "Invoking guix git authenticate"
+msgstr "Invocación de guix git authenticate"
+
+# TODO: ¡Comprobar traducciones de auth!
+#. type: menuentry
+#: doc/guix.texi:251 doc/guix.texi:5376
+msgid "Authenticating Git repositories."
+msgstr "Verificación de repositorios de Git."
+
+#. type: section
+#: doc/guix.texi:265 doc/guix.texi:6217 doc/guix.texi:6219 doc/guix.texi:6220
 #, no-wrap
 msgid "Package Modules"
 msgstr "Módulos de paquetes"
 
 #. type: menuentry
-#: doc/guix.texi:239 doc/guix.texi:5367
+#: doc/guix.texi:265 doc/guix.texi:6217
 msgid "Packages from the programmer's viewpoint."
 msgstr "Paquetes bajo el punto de vista del programador."
 
 #. type: section
-#: doc/guix.texi:239 doc/guix.texi:241 doc/guix.texi:5367 doc/guix.texi:5431
-#: doc/guix.texi:5432
+#: doc/guix.texi:265 doc/guix.texi:267 doc/guix.texi:6217 doc/guix.texi:6281
+#: doc/guix.texi:6282
 #, no-wrap
 msgid "Defining Packages"
 msgstr "Definición de paquetes"
 
 #. type: menuentry
-#: doc/guix.texi:239 doc/guix.texi:5367
+#: doc/guix.texi:265 doc/guix.texi:6217
 msgid "Defining new packages."
 msgstr "Definir nuevos paquetes."
 
 #. type: section
-#: doc/guix.texi:239 doc/guix.texi:5367 doc/guix.texi:5931 doc/guix.texi:5932
+#: doc/guix.texi:265 doc/guix.texi:6217 doc/guix.texi:6837 doc/guix.texi:6838
+#, no-wrap
+msgid "Defining Package Variants"
+msgstr "Definición de variantes de paquetes"
+
+#. type: menuentry
+#: doc/guix.texi:265 doc/guix.texi:6217
+msgid "Customizing packages."
+msgstr "Personalización de paquetes."
+
+#. type: section
+#: doc/guix.texi:265 doc/guix.texi:6217 doc/guix.texi:7069 doc/guix.texi:7070
 #, no-wrap
 msgid "Build Systems"
 msgstr "Sistemas de construcción"
 
 #. type: menuentry
-#: doc/guix.texi:239 doc/guix.texi:5367
+#: doc/guix.texi:265 doc/guix.texi:6217
 msgid "Specifying how packages are built."
 msgstr "Especificar como se construyen los paquetes."
 
+#. type: subsection
+#: doc/guix.texi:265 doc/guix.texi:6217 doc/guix.texi:7994 doc/guix.texi:7995
+#: doc/guix.texi:8360
+#, no-wrap
+msgid "Build Phases"
+msgstr "Fases de construcción"
+
+#. type: menuentry
+#: doc/guix.texi:265 doc/guix.texi:6217
+msgid "Phases of the build process of a package."
+msgstr "Fases del proceso de construcción de un paquete."
+
+#. type: section
+#: doc/guix.texi:265 doc/guix.texi:6217 doc/guix.texi:8150 doc/guix.texi:8151
+#, no-wrap
+msgid "Build Utilities"
+msgstr "Utilidades de construcción"
+
+#. type: menuentry
+#: doc/guix.texi:265 doc/guix.texi:6217
+msgid "Helpers for your package definitions and more."
+msgstr "Herramientas para sus definiciones de paquete y más."
+
 #. type: section
-#: doc/guix.texi:239 doc/guix.texi:5367 doc/guix.texi:6817 doc/guix.texi:6818
+#: doc/guix.texi:265 doc/guix.texi:6217 doc/guix.texi:8437 doc/guix.texi:8438
 #, no-wrap
 msgid "The Store"
 msgstr "El almacén"
 
 #. type: menuentry
-#: doc/guix.texi:239 doc/guix.texi:5367
+#: doc/guix.texi:265 doc/guix.texi:6217
 msgid "Manipulating the package store."
 msgstr "Manipular el almacén de paquetes."
 
 #. type: section
-#: doc/guix.texi:239 doc/guix.texi:5367 doc/guix.texi:6970 doc/guix.texi:6971
+#: doc/guix.texi:265 doc/guix.texi:6217 doc/guix.texi:8590 doc/guix.texi:8591
 #, no-wrap
 msgid "Derivations"
 msgstr "Derivaciones"
 
 #. type: menuentry
-#: doc/guix.texi:239 doc/guix.texi:5367
+#: doc/guix.texi:265 doc/guix.texi:6217
 msgid "Low-level interface to package derivations."
 msgstr "Interfaz de bajo nivel de las derivaciones de los paquetes."
 
 #. type: section
-#: doc/guix.texi:239 doc/guix.texi:5367 doc/guix.texi:7164 doc/guix.texi:7165
+#: doc/guix.texi:265 doc/guix.texi:6217 doc/guix.texi:8784 doc/guix.texi:8785
 #, no-wrap
 msgid "The Store Monad"
 msgstr "La mónada del almacén"
 
 #. type: menuentry
-#: doc/guix.texi:239 doc/guix.texi:5367
+#: doc/guix.texi:265 doc/guix.texi:6217
 msgid "Purely functional interface to the store."
 msgstr "Interfaz puramente funcional del almacén."
 
 #. type: section
-#: doc/guix.texi:239 doc/guix.texi:5367 doc/guix.texi:7479 doc/guix.texi:7480
+#: doc/guix.texi:265 doc/guix.texi:6217 doc/guix.texi:9103 doc/guix.texi:9104
 #, no-wrap
 msgid "G-Expressions"
 msgstr "Expresiones-G"
 
 #. type: menuentry
-#: doc/guix.texi:239 doc/guix.texi:5367
+#: doc/guix.texi:265 doc/guix.texi:6217
 msgid "Manipulating build expressions."
 msgstr "Manipular expresiones de construcción."
 
 #. type: node
-#: doc/guix.texi:239 doc/guix.texi:5367 doc/guix.texi:8077
+#: doc/guix.texi:265 doc/guix.texi:6217 doc/guix.texi:9732
 #, no-wrap
 msgid "Invoking guix repl"
 msgstr "Invocación de guix repl"
 
-# FUZZY
-# MAAV: Creo que es muy local...
 #. type: menuentry
-#: doc/guix.texi:239 doc/guix.texi:5367
-msgid "Fiddling with Guix interactively."
-msgstr "Enredar con Guix interactivamente."
+#: doc/guix.texi:265
+msgid "Programming Guix in Guile."
+msgstr "Programación de Guix en Guile."
 
 #. type: node
-#: doc/guix.texi:244 doc/guix.texi:5699 doc/guix.texi:5702
+#: doc/guix.texi:270 doc/guix.texi:6484 doc/guix.texi:6487
 #, no-wrap
 msgid "package Reference"
 msgstr "Referencia de package"
 
 #. type: menuentry
-#: doc/guix.texi:244 doc/guix.texi:5699
+#: doc/guix.texi:270 doc/guix.texi:6484
 msgid "The package data type."
 msgstr "El tipo de datos de los paquetes."
 
 #. type: node
-#: doc/guix.texi:244 doc/guix.texi:5699 doc/guix.texi:5843
+#: doc/guix.texi:270 doc/guix.texi:6484 doc/guix.texi:6658
 #, no-wrap
 msgid "origin Reference"
 msgstr "Referencia de origin"
 
 #. type: menuentry
-#: doc/guix.texi:244 doc/guix.texi:5699
+#: doc/guix.texi:270 doc/guix.texi:6484
 msgid "The origin data type."
 msgstr "El tipo de datos de orígenes."
 
 #. type: node
-#: doc/guix.texi:262 doc/guix.texi:8166 doc/guix.texi:8168
+#: doc/guix.texi:288 doc/guix.texi:9856 doc/guix.texi:9858
 #, no-wrap
 msgid "Invoking guix build"
 msgstr "Invocación de guix build"
 
 #. type: menuentry
-#: doc/guix.texi:262 doc/guix.texi:8166
+#: doc/guix.texi:288 doc/guix.texi:9856
 msgid "Building packages from the command line."
 msgstr "Construir paquetes desde la línea de órdenes."
 
 #. type: node
-#: doc/guix.texi:262 doc/guix.texi:8166 doc/guix.texi:8829
+#: doc/guix.texi:288 doc/guix.texi:9856 doc/guix.texi:10637
 #, no-wrap
 msgid "Invoking guix edit"
 msgstr "Invocación de guix edit"
 
 #. type: menuentry
-#: doc/guix.texi:262 doc/guix.texi:8166
+#: doc/guix.texi:288 doc/guix.texi:9856
 msgid "Editing package definitions."
 msgstr "Editar las definiciones de paquetes."
 
 #. type: node
-#: doc/guix.texi:262 doc/guix.texi:8166 doc/guix.texi:8859
+#: doc/guix.texi:288 doc/guix.texi:9856 doc/guix.texi:10667
 #, no-wrap
 msgid "Invoking guix download"
 msgstr "Invocación de guix download"
 
 #. type: menuentry
-#: doc/guix.texi:262 doc/guix.texi:8166
+#: doc/guix.texi:288 doc/guix.texi:9856
 msgid "Downloading a file and printing its hash."
-msgstr "Descargar un fichero e imprimir su hash."
+msgstr "Descargar un archivo e imprimir su hash."
 
 #. type: node
-#: doc/guix.texi:262 doc/guix.texi:8166 doc/guix.texi:8912
+#: doc/guix.texi:288 doc/guix.texi:9856 doc/guix.texi:10725
 #, no-wrap
 msgid "Invoking guix hash"
 msgstr "Invocación de guix hash"
 
 #. type: menuentry
-#: doc/guix.texi:262 doc/guix.texi:8166
+#: doc/guix.texi:288 doc/guix.texi:9856
 msgid "Computing the cryptographic hash of a file."
-msgstr "Calcular el hash criptográfico de un fichero."
+msgstr "Calcular el hash criptográfico de un archivo."
 
 #. type: node
-#: doc/guix.texi:262 doc/guix.texi:8166 doc/guix.texi:8974
+#: doc/guix.texi:288 doc/guix.texi:9856 doc/guix.texi:10797
 #, no-wrap
 msgid "Invoking guix import"
 msgstr "Invocación de guix import"
 
 #. type: menuentry
-#: doc/guix.texi:262 doc/guix.texi:8166
+#: doc/guix.texi:288 doc/guix.texi:9856
 msgid "Importing package definitions."
 msgstr "Importar definiciones de paquetes."
 
 #. type: node
-#: doc/guix.texi:262 doc/guix.texi:8166 doc/guix.texi:9405
+#: doc/guix.texi:288 doc/guix.texi:9856 doc/guix.texi:11226
 #, no-wrap
 msgid "Invoking guix refresh"
 msgstr "Invocación de guix refresh"
 
 #. type: menuentry
-#: doc/guix.texi:262 doc/guix.texi:8166
+#: doc/guix.texi:288 doc/guix.texi:9856
 msgid "Updating package definitions."
 msgstr "Actualizar definiciones de paquetes."
 
 #. type: node
-#: doc/guix.texi:262 doc/guix.texi:8166 doc/guix.texi:9726
+#: doc/guix.texi:288 doc/guix.texi:9856 doc/guix.texi:11549
 #, no-wrap
 msgid "Invoking guix lint"
 msgstr "Invocación de guix lint"
 
 #. type: menuentry
-#: doc/guix.texi:262 doc/guix.texi:8166
+#: doc/guix.texi:288 doc/guix.texi:9856
 msgid "Finding errors in package definitions."
 msgstr "Encontrar errores en definiciones de paquetes."
 
 #. type: node
-#: doc/guix.texi:262 doc/guix.texi:8166 doc/guix.texi:9875
+#: doc/guix.texi:288 doc/guix.texi:9856 doc/guix.texi:11718
 #, no-wrap
 msgid "Invoking guix size"
 msgstr "Invocación de guix size"
 
 #. type: menuentry
-#: doc/guix.texi:262 doc/guix.texi:8166
+#: doc/guix.texi:288 doc/guix.texi:9856
 msgid "Profiling disk usage."
 msgstr "Perfilar el uso del disco."
 
 #. type: node
-#: doc/guix.texi:262 doc/guix.texi:8166 doc/guix.texi:10006
+#: doc/guix.texi:288 doc/guix.texi:9856 doc/guix.texi:11862
 #, no-wrap
 msgid "Invoking guix graph"
 msgstr "Invocación de guix graph"
 
 #. type: menuentry
-#: doc/guix.texi:262 doc/guix.texi:8166
+#: doc/guix.texi:288 doc/guix.texi:9856
 msgid "Visualizing the graph of packages."
 msgstr "Visualizar el grafo de paquetes."
 
 #. type: node
-#: doc/guix.texi:262 doc/guix.texi:8166 doc/guix.texi:10228
+#: doc/guix.texi:288 doc/guix.texi:9856 doc/guix.texi:12129
 #, no-wrap
 msgid "Invoking guix publish"
 msgstr "Invocación de guix publish"
 
 #. type: menuentry
-#: doc/guix.texi:262 doc/guix.texi:8166
+#: doc/guix.texi:288 doc/guix.texi:9856
 msgid "Sharing substitutes."
 msgstr "Compartir sustituciones."
 
 #. type: node
-#: doc/guix.texi:262 doc/guix.texi:8166 doc/guix.texi:10458
+#: doc/guix.texi:288 doc/guix.texi:9856 doc/guix.texi:12377
 #, no-wrap
 msgid "Invoking guix challenge"
 msgstr "Invocación de guix challenge"
 
 #. type: menuentry
-#: doc/guix.texi:262 doc/guix.texi:8166
+#: doc/guix.texi:288 doc/guix.texi:9856
 msgid "Challenging substitute servers."
 msgstr "Poner a prueba servidores de sustituciones."
 
 #. type: node
-#: doc/guix.texi:262 doc/guix.texi:8166 doc/guix.texi:10641
+#: doc/guix.texi:288 doc/guix.texi:9856 doc/guix.texi:12560
 #, no-wrap
 msgid "Invoking guix copy"
 msgstr "Invocación de guix copy"
 
 #. type: menuentry
-#: doc/guix.texi:262 doc/guix.texi:8166
+#: doc/guix.texi:288 doc/guix.texi:9856
 msgid "Copying to and from a remote store."
 msgstr "Copiar a y desde un almacén remoto."
 
 #. type: node
-#: doc/guix.texi:262 doc/guix.texi:8166 doc/guix.texi:10704
+#: doc/guix.texi:288 doc/guix.texi:9856 doc/guix.texi:12623
 #, no-wrap
 msgid "Invoking guix container"
 msgstr "Invocación de guix container"
 
 #. type: menuentry
-#: doc/guix.texi:262 doc/guix.texi:8166
+#: doc/guix.texi:288 doc/guix.texi:9856
 msgid "Process isolation."
 msgstr "Aislamiento de procesos."
 
 #. type: node
-#: doc/guix.texi:262 doc/guix.texi:8166 doc/guix.texi:10758
+#: doc/guix.texi:288 doc/guix.texi:9856 doc/guix.texi:12677
 #, no-wrap
 msgid "Invoking guix weather"
 msgstr "Invocación de guix weather"
 
 #. type: menuentry
-#: doc/guix.texi:262 doc/guix.texi:8166
+#: doc/guix.texi:288 doc/guix.texi:9856
 msgid "Assessing substitute availability."
 msgstr "Comprobar la disponibilidad de sustituciones."
 
 #. type: node
-#: doc/guix.texi:262 doc/guix.texi:8166 doc/guix.texi:10887
+#: doc/guix.texi:288 doc/guix.texi:9856 doc/guix.texi:12806
 #, no-wrap
 msgid "Invoking guix processes"
 msgstr "Invocación de guix processes"
 
 #. type: menuentry
-#: doc/guix.texi:262 doc/guix.texi:8166
+#: doc/guix.texi:288 doc/guix.texi:9856
 msgid "Listing client processes."
 msgstr "Enumerar los procesos cliente."
 
 #. type: section
-#: doc/guix.texi:264 doc/guix.texi:8169
+#: doc/guix.texi:290 doc/guix.texi:9859
 #, no-wrap
 msgid "Invoking @command{guix build}"
 msgstr "Invocación de @command{guix build}"
 
 #. type: subsection
-#: doc/guix.texi:269 doc/guix.texi:8220 doc/guix.texi:8222 doc/guix.texi:8223
+#: doc/guix.texi:295 doc/guix.texi:9910 doc/guix.texi:9912 doc/guix.texi:9913
 #, no-wrap
 msgid "Common Build Options"
 msgstr "Opciones comunes de construcción"
 
 #. type: menuentry
-#: doc/guix.texi:269 doc/guix.texi:8220
+#: doc/guix.texi:295 doc/guix.texi:9910
 msgid "Build options for most commands."
 msgstr "Opciones de construcción para la mayoría de órdenes."
 
 #. type: subsection
-#: doc/guix.texi:269 doc/guix.texi:8220 doc/guix.texi:8378 doc/guix.texi:8379
+#: doc/guix.texi:295 doc/guix.texi:9910 doc/guix.texi:10066
+#: doc/guix.texi:10067
 #, no-wrap
 msgid "Package Transformation Options"
 msgstr "Opciones de transformación de paquetes"
 
 #. type: menuentry
-#: doc/guix.texi:269 doc/guix.texi:8220
+#: doc/guix.texi:295 doc/guix.texi:9910
 msgid "Creating variants of packages."
 msgstr "Crear variantes de paquetes."
 
 #. type: subsection
-#: doc/guix.texi:269 doc/guix.texi:8220 doc/guix.texi:8527 doc/guix.texi:8528
+#: doc/guix.texi:295 doc/guix.texi:9910 doc/guix.texi:10326
+#: doc/guix.texi:10327
 #, no-wrap
 msgid "Additional Build Options"
 msgstr "Opciones de construcción adicionales"
 
 #. type: menuentry
-#: doc/guix.texi:269 doc/guix.texi:8220
+#: doc/guix.texi:295 doc/guix.texi:9910
 msgid "Options specific to 'guix build'."
 msgstr "Opciones específicas de 'guix build'."
 
 #. type: subsection
-#: doc/guix.texi:269 doc/guix.texi:8220 doc/guix.texi:8749 doc/guix.texi:8750
+#: doc/guix.texi:295 doc/guix.texi:9910 doc/guix.texi:10557
+#: doc/guix.texi:10558
 #, no-wrap
 msgid "Debugging Build Failures"
 msgstr "Depuración de fallos de construcción"
 
 #. type: menuentry
-#: doc/guix.texi:269 doc/guix.texi:8220
+#: doc/guix.texi:295 doc/guix.texi:9910
 msgid "Real life packaging experience."
 msgstr "Experiencia de empaquetamiento en la vida real."
 
 #. type: section
-#: doc/guix.texi:289 doc/guix.texi:10986 doc/guix.texi:10988
-#: doc/guix.texi:10989
+#: doc/guix.texi:315 doc/guix.texi:12905 doc/guix.texi:12907
+#: doc/guix.texi:12908
 #, no-wrap
 msgid "Using the Configuration System"
 msgstr "Uso de la configuración del sistema"
 
 #. type: menuentry
-#: doc/guix.texi:289 doc/guix.texi:10986
+#: doc/guix.texi:315 doc/guix.texi:12905
 msgid "Customizing your GNU system."
 msgstr "Personalizar su sistema GNU."
 
 #. type: node
-#: doc/guix.texi:289 doc/guix.texi:10986 doc/guix.texi:11224
+#: doc/guix.texi:315 doc/guix.texi:12905 doc/guix.texi:13147
 #, no-wrap
 msgid "operating-system Reference"
 msgstr "Referencia de operating-system"
 
 #. type: menuentry
-#: doc/guix.texi:289 doc/guix.texi:10986
+#: doc/guix.texi:315 doc/guix.texi:12905
 msgid "Detail of operating-system declarations."
 msgstr "Detalle de las declaraciones de sistema operativo."
 
 #. type: section
-#: doc/guix.texi:289 doc/guix.texi:10986 doc/guix.texi:11432
-#: doc/guix.texi:11433
+#: doc/guix.texi:315 doc/guix.texi:12905 doc/guix.texi:13398
+#: doc/guix.texi:13399
 #, no-wrap
 msgid "File Systems"
-msgstr "Sistemas de ficheros"
+msgstr "Sistemas de archivos"
 
 #. type: menuentry
-#: doc/guix.texi:289 doc/guix.texi:10986
+#: doc/guix.texi:315 doc/guix.texi:12905
 msgid "Configuring file system mounts."
-msgstr "Configurar el montaje de sistemas de ficheros."
+msgstr "Configurar el montaje de sistemas de archivos."
 
 # TODO: (MAAV) Comprobar como se ha hecho en otros proyectos.
 #. type: section
-#: doc/guix.texi:289 doc/guix.texi:10986 doc/guix.texi:11605
-#: doc/guix.texi:11606
+#: doc/guix.texi:315 doc/guix.texi:12905 doc/guix.texi:13721
+#: doc/guix.texi:13722
 #, no-wrap
 msgid "Mapped Devices"
 msgstr "Dispositivos traducidos"
 
 #. type: menuentry
-#: doc/guix.texi:289 doc/guix.texi:10986
+#: doc/guix.texi:315 doc/guix.texi:12905
 msgid "Block device extra processing."
 msgstr "Procesamiento adicional de dispositivos de bloques."
 
 #. type: section
-#: doc/guix.texi:289 doc/guix.texi:10986 doc/guix.texi:11726
-#: doc/guix.texi:11727
+#: doc/guix.texi:315 doc/guix.texi:12905 doc/guix.texi:13842
+#: doc/guix.texi:13843
 #, no-wrap
 msgid "User Accounts"
 msgstr "Cuentas de usuaria"
 
 #. type: menuentry
-#: doc/guix.texi:289 doc/guix.texi:10986
+#: doc/guix.texi:315 doc/guix.texi:12905
 msgid "Specifying user accounts."
 msgstr "Especificar las cuentas de usuaria."
 
 #. type: section
-#: doc/guix.texi:289 doc/guix.texi:2102 doc/guix.texi:10986
-#: doc/guix.texi:11879 doc/guix.texi:11880
+#: doc/guix.texi:315 doc/guix.texi:2189 doc/guix.texi:12905
+#: doc/guix.texi:14018 doc/guix.texi:14019
 #, no-wrap
 msgid "Keyboard Layout"
 msgstr "Distribución de teclado"
 
 #. type: menuentry
-#: doc/guix.texi:289 doc/guix.texi:10986
+#: doc/guix.texi:315 doc/guix.texi:12905
 msgid "How the system interprets key strokes."
 msgstr "Cómo interpreta el sistema las pulsaciones del teclado."
 
 #. type: section
-#: doc/guix.texi:289 doc/guix.texi:1584 doc/guix.texi:10986
-#: doc/guix.texi:12014 doc/guix.texi:12015
+#: doc/guix.texi:315 doc/guix.texi:1689 doc/guix.texi:12905
+#: doc/guix.texi:14164 doc/guix.texi:14165
 #, no-wrap
 msgid "Locales"
 msgstr "Localizaciones"
 
 #. type: menuentry
-#: doc/guix.texi:289 doc/guix.texi:10986
+#: doc/guix.texi:315 doc/guix.texi:12905
 msgid "Language and cultural convention settings."
 msgstr "Configuración de idioma y convenciones culturales."
 
 #. type: section
-#: doc/guix.texi:289 doc/guix.texi:291 doc/guix.texi:10986 doc/guix.texi:12154
-#: doc/guix.texi:12155
+#: doc/guix.texi:315 doc/guix.texi:317 doc/guix.texi:12905 doc/guix.texi:14304
+#: doc/guix.texi:14305
 #, no-wrap
 msgid "Services"
 msgstr "Servicios"
 
 #. type: menuentry
-#: doc/guix.texi:289 doc/guix.texi:10986
+#: doc/guix.texi:315 doc/guix.texi:12905
 msgid "Specifying system services."
 msgstr "Especificar los servicios del sistema."
 
 #. type: section
-#: doc/guix.texi:289 doc/guix.texi:10986 doc/guix.texi:25859
-#: doc/guix.texi:25860
+#: doc/guix.texi:315 doc/guix.texi:12905 doc/guix.texi:29901
+#: doc/guix.texi:29902
 #, no-wrap
 msgid "Setuid Programs"
 msgstr "Programas con setuid"
 
 #. type: menuentry
-#: doc/guix.texi:289 doc/guix.texi:10986
+#: doc/guix.texi:315 doc/guix.texi:12905
 msgid "Programs running with root privileges."
 msgstr "Programas que se ejecutan con privilegios de root."
 
 #. type: section
-#: doc/guix.texi:289 doc/guix.texi:1733 doc/guix.texi:10986
-#: doc/guix.texi:25905 doc/guix.texi:25906
+#: doc/guix.texi:315 doc/guix.texi:1838 doc/guix.texi:12905
+#: doc/guix.texi:29947 doc/guix.texi:29948
 #, no-wrap
 msgid "X.509 Certificates"
 msgstr "Certificados X.509"
 
 # TODO: ¡Comprobar traducciones de auth!
 #. type: menuentry
-#: doc/guix.texi:289 doc/guix.texi:10986
+#: doc/guix.texi:315 doc/guix.texi:12905
 msgid "Authenticating HTTPS servers."
 msgstr "Verificar servidores HTTPS."
 
 # TODO: Comprobar traducción de libc
 #. type: section
-#: doc/guix.texi:289 doc/guix.texi:1627 doc/guix.texi:10986
-#: doc/guix.texi:25968 doc/guix.texi:25969
+#: doc/guix.texi:315 doc/guix.texi:1732 doc/guix.texi:12905
+#: doc/guix.texi:30010 doc/guix.texi:30011
 #, no-wrap
 msgid "Name Service Switch"
 msgstr "Selector de servicios de nombres"
 
 #. type: menuentry
-#: doc/guix.texi:289 doc/guix.texi:10986
+#: doc/guix.texi:315 doc/guix.texi:12905
 msgid "Configuring libc's name service switch."
 msgstr "Configurar el selector de servicios de nombres de libc."
 
 #. type: section
-#: doc/guix.texi:289 doc/guix.texi:10986 doc/guix.texi:26106
-#: doc/guix.texi:26107
+#: doc/guix.texi:315 doc/guix.texi:12905 doc/guix.texi:30148
+#: doc/guix.texi:30149
 #, no-wrap
 msgid "Initial RAM Disk"
 msgstr "Disco en RAM inicial"
@@ -3221,781 +3647,905 @@ msgstr "Disco en RAM inicial"
 # TODO: (MAAV) Este bootstrap no es exactamente el mismo sentido que el
 # de compilar el sistema de 0, aunque la traducción pueda valer igual.
 #. type: menuentry
-#: doc/guix.texi:289 doc/guix.texi:10986
+#: doc/guix.texi:315 doc/guix.texi:12905
 msgid "Linux-Libre bootstrapping."
 msgstr "Arranque de Linux-Libre."
 
 #. type: section
-#: doc/guix.texi:289 doc/guix.texi:10986 doc/guix.texi:26280
-#: doc/guix.texi:26281
+#: doc/guix.texi:315 doc/guix.texi:12905 doc/guix.texi:30323
+#: doc/guix.texi:30324
 #, no-wrap
 msgid "Bootloader Configuration"
 msgstr "Configuración del gestor de arranque"
 
 #. type: menuentry
-#: doc/guix.texi:289 doc/guix.texi:10986
+#: doc/guix.texi:315 doc/guix.texi:12905
 msgid "Configuring the boot loader."
 msgstr "Configurar el gestor de arranque."
 
 #. type: node
-#: doc/guix.texi:289 doc/guix.texi:10986 doc/guix.texi:26501
+#: doc/guix.texi:315 doc/guix.texi:12905 doc/guix.texi:30617
 #, no-wrap
 msgid "Invoking guix system"
 msgstr "Invocación de guix system"
 
 #. type: menuentry
-#: doc/guix.texi:289 doc/guix.texi:10986
+#: doc/guix.texi:315 doc/guix.texi:12905
 msgid "Instantiating a system configuration."
 msgstr "Instanciar una configuración del sistema."
 
 #. type: node
-#: doc/guix.texi:289 doc/guix.texi:10986 doc/guix.texi:27022
+#: doc/guix.texi:315 doc/guix.texi:12905 doc/guix.texi:31175
 #, no-wrap
 msgid "Invoking guix deploy"
 msgstr "Invocación de guix deploy"
 
 #. type: menuentry
-#: doc/guix.texi:289 doc/guix.texi:10986
+#: doc/guix.texi:315 doc/guix.texi:12905
 msgid "Deploying a system configuration to a remote host."
 msgstr "Despliegue de una configuración del sistema en una máquina remota."
 
 #. type: node
-#: doc/guix.texi:289 doc/guix.texi:10986 doc/guix.texi:27217
+#: doc/guix.texi:315 doc/guix.texi:12905 doc/guix.texi:31381
 #, no-wrap
 msgid "Running Guix in a VM"
 msgstr "Ejecutar Guix en una máquina virtual"
 
 #. type: menuentry
-#: doc/guix.texi:289 doc/guix.texi:10986
+#: doc/guix.texi:315 doc/guix.texi:12905
 msgid "How to run Guix System in a virtual machine."
 msgstr "Cómo ejecutar el sistema Guix en una máquina virtual."
 
 #. type: section
-#: doc/guix.texi:289 doc/guix.texi:322 doc/guix.texi:10986 doc/guix.texi:27345
-#: doc/guix.texi:27346
+#: doc/guix.texi:315 doc/guix.texi:352 doc/guix.texi:12905 doc/guix.texi:31511
+#: doc/guix.texi:31512
 #, no-wrap
 msgid "Defining Services"
 msgstr "Definición de servicios"
 
 #. type: menuentry
-#: doc/guix.texi:289 doc/guix.texi:10986
+#: doc/guix.texi:315 doc/guix.texi:12905
 msgid "Adding new service definitions."
 msgstr "Añadir nuevas definiciones de servicios."
 
 #. type: subsection
-#: doc/guix.texi:320 doc/guix.texi:12234 doc/guix.texi:12236
-#: doc/guix.texi:12237
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:14388
+#: doc/guix.texi:14389
 #, no-wrap
 msgid "Base Services"
 msgstr "Servicios base"
 
 #. type: menuentry
-#: doc/guix.texi:320 doc/guix.texi:12234
+#: doc/guix.texi:350 doc/guix.texi:14386
 msgid "Essential system services."
 msgstr "Servicios esenciales del sistema."
 
 #. type: subsection
-#: doc/guix.texi:320 doc/guix.texi:12234 doc/guix.texi:13069
-#: doc/guix.texi:13070
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:15263
+#: doc/guix.texi:15264
 #, no-wrap
 msgid "Scheduled Job Execution"
 msgstr "Ejecución de tareas programadas"
 
 #. type: menuentry
-#: doc/guix.texi:320 doc/guix.texi:12234
+#: doc/guix.texi:350 doc/guix.texi:14386
 msgid "The mcron service."
 msgstr "El servicio mcron."
 
 # TODO: (MAAV) Comprobar otras traducciones.
 #. type: subsection
-#: doc/guix.texi:320 doc/guix.texi:12234 doc/guix.texi:13204
-#: doc/guix.texi:13205
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:15400
+#: doc/guix.texi:15401
 #, no-wrap
 msgid "Log Rotation"
 msgstr "Rotación del registro de mensajes"
 
 #. type: menuentry
-#: doc/guix.texi:320 doc/guix.texi:12234
+#: doc/guix.texi:350 doc/guix.texi:14386
 msgid "The rottlog service."
 msgstr "El servicio rottlog."
 
 #. type: subsection
-#: doc/guix.texi:320 doc/guix.texi:12234 doc/guix.texi:13317
-#: doc/guix.texi:13318
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:15513
+#: doc/guix.texi:15514
 #, no-wrap
 msgid "Networking Services"
 msgstr "Servicios de red"
 
 #. type: menuentry
-#: doc/guix.texi:320 doc/guix.texi:12234
+#: doc/guix.texi:350 doc/guix.texi:14386
 msgid "Network setup, SSH daemon, etc."
 msgstr "Configuración de red, daemon SSH, etc."
 
+#. type: subsection
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:16851
+#: doc/guix.texi:16852
+#, no-wrap
+msgid "Unattended Upgrades"
+msgstr "Actualizaciones no-atendidas"
+
+#. type: menuentry
+#: doc/guix.texi:350 doc/guix.texi:14386
+msgid "Automated system upgrades."
+msgstr "Actualizaciones del sistema automatizadas."
+
 # XXX: Dudas de traducción...
 #. type: subsection
-#: doc/guix.texi:320 doc/guix.texi:12234 doc/guix.texi:14432
-#: doc/guix.texi:14433
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:16985
+#: doc/guix.texi:16986
 #, no-wrap
 msgid "X Window"
 msgstr "Sistema X Window"
 
 # XXX: (MAAV) No es muy literal, pero creo que se entiende.
 #. type: menuentry
-#: doc/guix.texi:320 doc/guix.texi:12234
+#: doc/guix.texi:350 doc/guix.texi:14386
 msgid "Graphical display."
 msgstr "Interfaz gráfica."
 
 #. type: subsection
-#: doc/guix.texi:320 doc/guix.texi:12234 doc/guix.texi:14809
-#: doc/guix.texi:14810
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:17363
+#: doc/guix.texi:17364
 #, no-wrap
 msgid "Printing Services"
 msgstr "Servicios de impresión"
 
 #. type: menuentry
-#: doc/guix.texi:320 doc/guix.texi:12234
+#: doc/guix.texi:350 doc/guix.texi:14386
 msgid "Local and remote printer support."
-msgstr "Soporte de impresoras locales y remotas."
+msgstr "Uso de impresoras locales y remotas."
 
 #. type: subsection
-#: doc/guix.texi:320 doc/guix.texi:12234 doc/guix.texi:15661
-#: doc/guix.texi:15662
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:18215
+#: doc/guix.texi:18216
 #, no-wrap
 msgid "Desktop Services"
 msgstr "Servicios de escritorio"
 
 #. type: menuentry
-#: doc/guix.texi:320 doc/guix.texi:12234
+#: doc/guix.texi:350 doc/guix.texi:14386
 msgid "D-Bus and desktop services."
 msgstr "D-Bus y servicios de escritorio."
 
 #. type: subsection
-#: doc/guix.texi:320 doc/guix.texi:12234 doc/guix.texi:16113
-#: doc/guix.texi:16114
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:18692
+#: doc/guix.texi:18693
 #, no-wrap
 msgid "Sound Services"
 msgstr "Servicios de sonido"
 
 #. type: menuentry
-#: doc/guix.texi:320 doc/guix.texi:12234
+#: doc/guix.texi:350 doc/guix.texi:14386
 msgid "ALSA and Pulseaudio services."
 msgstr "Servicios de ALSA y Pulseaudio."
 
 #. type: subsection
-#: doc/guix.texi:320 doc/guix.texi:12234 doc/guix.texi:16246
-#: doc/guix.texi:16247
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:18832
+#: doc/guix.texi:18833
 #, no-wrap
 msgid "Database Services"
 msgstr "Servicios de bases de datos"
 
 #. type: menuentry
-#: doc/guix.texi:320 doc/guix.texi:12234
+#: doc/guix.texi:350 doc/guix.texi:14386
 msgid "SQL databases, key-value stores, etc."
 msgstr "Bases de datos SQL, almacenes de clave-valor, etc."
 
 #. type: subsection
-#: doc/guix.texi:320 doc/guix.texi:12234 doc/guix.texi:16406
-#: doc/guix.texi:16407
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:19095
+#: doc/guix.texi:19096
 #, no-wrap
 msgid "Mail Services"
 msgstr "Servicios de correo"
 
 #. type: menuentry
-#: doc/guix.texi:320 doc/guix.texi:12234
+#: doc/guix.texi:350 doc/guix.texi:14386
 msgid "IMAP, POP3, SMTP, and all that."
 msgstr "IMAP, POP3, SMTP y todo eso."
 
 #. type: subsection
-#: doc/guix.texi:320 doc/guix.texi:12234 doc/guix.texi:18198
-#: doc/guix.texi:18199
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:20887
+#: doc/guix.texi:20888
 #, no-wrap
 msgid "Messaging Services"
 msgstr "Servicios de mensajería"
 
 #. type: menuentry
-#: doc/guix.texi:320 doc/guix.texi:12234
+#: doc/guix.texi:350 doc/guix.texi:14386
 msgid "Messaging services."
 msgstr "Servicios de mensajería."
 
 #. type: subsection
-#: doc/guix.texi:320 doc/guix.texi:12234 doc/guix.texi:18700
-#: doc/guix.texi:18701
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:21390
+#: doc/guix.texi:21391
 #, no-wrap
 msgid "Telephony Services"
 msgstr "Servicios de telefonía"
 
 #. type: menuentry
-#: doc/guix.texi:320 doc/guix.texi:12234
+#: doc/guix.texi:350 doc/guix.texi:14386
 msgid "Telephony services."
 msgstr "Servicios de telefonía."
 
 #. type: subsection
-#: doc/guix.texi:320 doc/guix.texi:12234 doc/guix.texi:18905
-#: doc/guix.texi:18906
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:21595
+#: doc/guix.texi:21596
 #, no-wrap
 msgid "Monitoring Services"
 msgstr "Servicios de monitorización"
 
 #. type: menuentry
-#: doc/guix.texi:320 doc/guix.texi:12234
+#: doc/guix.texi:350 doc/guix.texi:14386
 msgid "Monitoring services."
 msgstr "Servicios de monitorización."
 
 #. type: subsection
-#: doc/guix.texi:320 doc/guix.texi:12234 doc/guix.texi:19410
-#: doc/guix.texi:19411
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:22100
+#: doc/guix.texi:22101
 #, no-wrap
 msgid "Kerberos Services"
 msgstr "Servicios Kerberos"
 
 #. type: menuentry
-#: doc/guix.texi:320 doc/guix.texi:12234
+#: doc/guix.texi:350 doc/guix.texi:14386
 msgid "Kerberos services."
 msgstr "Servicios Kerberos."
 
 #. type: subsection
-#: doc/guix.texi:320 doc/guix.texi:12234 doc/guix.texi:20014
-#: doc/guix.texi:20015
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:22226
+#: doc/guix.texi:22227
+#, no-wrap
+msgid "LDAP Services"
+msgstr "Servicios LDAP"
+
+#. type: menuentry
+#: doc/guix.texi:350 doc/guix.texi:14386
+msgid "LDAP services."
+msgstr "Servicios LDAP."
+
+#. type: subsection
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:22705
+#: doc/guix.texi:22706
 #, no-wrap
 msgid "Web Services"
 msgstr "Servicios Web"
 
 #. type: menuentry
-#: doc/guix.texi:320 doc/guix.texi:12234
+#: doc/guix.texi:350 doc/guix.texi:14386
 msgid "Web servers."
 msgstr "Servidores Web."
 
 #. type: subsection
-#: doc/guix.texi:320 doc/guix.texi:12234 doc/guix.texi:21047
-#: doc/guix.texi:21048
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:23819
+#: doc/guix.texi:23820
 #, no-wrap
 msgid "Certificate Services"
 msgstr "Servicios de certificados"
 
 #. type: menuentry
-#: doc/guix.texi:320 doc/guix.texi:12234
+#: doc/guix.texi:350 doc/guix.texi:14386
 msgid "TLS certificates via Let's Encrypt."
 msgstr "Certificados TLS via Let's Encrypt."
 
 #. type: subsection
-#: doc/guix.texi:320 doc/guix.texi:12234 doc/guix.texi:21219
-#: doc/guix.texi:21220
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:23992
+#: doc/guix.texi:23993
 #, no-wrap
 msgid "DNS Services"
 msgstr "Servicios DNS"
 
 #. type: menuentry
-#: doc/guix.texi:320 doc/guix.texi:12234
+#: doc/guix.texi:350 doc/guix.texi:14386
 msgid "DNS daemons."
 msgstr "Daemon de DNS."
 
 #. type: subsection
-#: doc/guix.texi:320 doc/guix.texi:12234 doc/guix.texi:21893
-#: doc/guix.texi:21894
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:24739
+#: doc/guix.texi:24740
 #, no-wrap
 msgid "VPN Services"
 msgstr "Servicios VPN"
 
 #. type: menuentry
-#: doc/guix.texi:320 doc/guix.texi:12234
+#: doc/guix.texi:350 doc/guix.texi:14386
 msgid "VPN daemons."
 msgstr "Daemon de VPN."
 
 #. type: subsection
-#: doc/guix.texi:320 doc/guix.texi:12234 doc/guix.texi:22273
-#: doc/guix.texi:22274
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:25119
+#: doc/guix.texi:25120
 #, no-wrap
 msgid "Network File System"
-msgstr "Sistema de ficheros en red"
+msgstr "Sistema de archivos en red"
 
 #. type: menuentry
-#: doc/guix.texi:320 doc/guix.texi:12234
+#: doc/guix.texi:350 doc/guix.texi:14386
 msgid "NFS related services."
 msgstr "Servicios relacionados con NFS."
 
 #. type: subsection
-#: doc/guix.texi:320 doc/guix.texi:12234 doc/guix.texi:22463
-#: doc/guix.texi:22464
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:25315
+#: doc/guix.texi:25316
 #, no-wrap
 msgid "Continuous Integration"
 msgstr "Integración continua"
 
 #. type: menuentry
-#: doc/guix.texi:320 doc/guix.texi:12234
+#: doc/guix.texi:350 doc/guix.texi:14386
 msgid "The Cuirass service."
 msgstr "El servicio Cuirass."
 
 #. type: subsection
-#: doc/guix.texi:320 doc/guix.texi:12234 doc/guix.texi:22586
-#: doc/guix.texi:22587
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:25446
+#: doc/guix.texi:25447
 #, no-wrap
 msgid "Power Management Services"
 msgstr "Servicios de gestión de energía"
 
 #. type: menuentry
-#: doc/guix.texi:320 doc/guix.texi:12234
+#: doc/guix.texi:350 doc/guix.texi:14386
 msgid "Extending battery life."
 msgstr "Extender la vida de la batería."
 
 #. type: subsection
-#: doc/guix.texi:320 doc/guix.texi:12234 doc/guix.texi:23120
-#: doc/guix.texi:23121
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:25980
+#: doc/guix.texi:25981
 #, no-wrap
 msgid "Audio Services"
 msgstr "Servicios de audio"
 
 #. type: menuentry
-#: doc/guix.texi:320 doc/guix.texi:12234
+#: doc/guix.texi:350 doc/guix.texi:14386
 msgid "The MPD."
 msgstr "El MPD."
 
-#. type: node
-#: doc/guix.texi:320 doc/guix.texi:12234 doc/guix.texi:23239
+#. type: subsection
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:26099
+#: doc/guix.texi:26100
 #, no-wrap
 msgid "Virtualization Services"
 msgstr "Servicios de virtualización"
 
 #. type: menuentry
-#: doc/guix.texi:320 doc/guix.texi:12234
+#: doc/guix.texi:350 doc/guix.texi:14386
 msgid "Virtualization services."
 msgstr "Servicios de virtualización."
 
 #. type: subsection
-#: doc/guix.texi:320 doc/guix.texi:12234 doc/guix.texi:24032
-#: doc/guix.texi:24033
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:27721
+#: doc/guix.texi:27722
 #, no-wrap
 msgid "Version Control Services"
 msgstr "Servicios de control de versiones"
 
 #. type: menuentry
-#: doc/guix.texi:320 doc/guix.texi:12234
+#: doc/guix.texi:350 doc/guix.texi:14386
 msgid "Providing remote access to Git repositories."
 msgstr "Proporcionar acceso remoto a repositorios Git."
 
 #. type: subsection
-#: doc/guix.texi:320 doc/guix.texi:12234 doc/guix.texi:25220
-#: doc/guix.texi:25221
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:28913
+#: doc/guix.texi:28914
 #, no-wrap
 msgid "Game Services"
 msgstr "Servicios de juegos"
 
 #. type: menuentry
-#: doc/guix.texi:320 doc/guix.texi:12234
+#: doc/guix.texi:350 doc/guix.texi:14386
 msgid "Game servers."
 msgstr "Servidores de juegos."
 
 # FUZZY
 #. type: subsection
-#: doc/guix.texi:320 doc/guix.texi:12234 doc/guix.texi:25252
-#: doc/guix.texi:25253
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:28945
+#: doc/guix.texi:28946
 #, no-wrap
 msgid "PAM Mount Service"
 msgstr "Servicio PAM Mount"
 
 # FUZZY
 #. type: menuentry
-#: doc/guix.texi:320 doc/guix.texi:12234
+#: doc/guix.texi:350 doc/guix.texi:14386
 msgid "Service to mount volumes when logging in."
 msgstr "Servicio de montado de volúmenes en el ingreso al sistema."
 
-#. type: subsubheading
-#: doc/guix.texi:320 doc/guix.texi:12234 doc/guix.texi:25390
-#: doc/guix.texi:25391
+#. type: subsection
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:29028
+#: doc/guix.texi:29029
+#, no-wrap
+msgid "Guix Services"
+msgstr "Servicios de Guix"
+
+#. type: menuentry
+#: doc/guix.texi:350 doc/guix.texi:14386
+msgid "Services relating specifically to Guix."
+msgstr "Servicios relacionados específicamente con Guix."
+
+#. type: subsection
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:29245
+#: doc/guix.texi:29246
 #, no-wrap
 msgid "Linux Services"
 msgstr "Servicios de Linux"
 
 #. type: menuentry
-#: doc/guix.texi:320 doc/guix.texi:12234
+#: doc/guix.texi:350 doc/guix.texi:14386
 msgid "Services tied to the Linux kernel."
 msgstr "Servicios asociados al núcleo Linux."
 
+#. type: subsection
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:29392
+#: doc/guix.texi:29393
+#, no-wrap
+msgid "Hurd Services"
+msgstr "Servicios de Hurd"
+
+#. type: menuentry
+#: doc/guix.texi:350 doc/guix.texi:14386
+msgid "Services specific for a Hurd System."
+msgstr "Servicios específicos para un sistema Hurd."
+
 # FUZZY
 #. type: subsection
-#: doc/guix.texi:320 doc/guix.texi:12234 doc/guix.texi:25492
-#: doc/guix.texi:25493
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:29434
+#: doc/guix.texi:29435
 #, no-wrap
 msgid "Miscellaneous Services"
 msgstr "Servicios misceláneos"
 
 #. type: menuentry
-#: doc/guix.texi:320 doc/guix.texi:12234
+#: doc/guix.texi:350 doc/guix.texi:14386
 msgid "Other services."
 msgstr "Otros servicios."
 
 #. type: subsection
-#: doc/guix.texi:327 doc/guix.texi:27357 doc/guix.texi:27359
-#: doc/guix.texi:27360
+#: doc/guix.texi:357 doc/guix.texi:31523 doc/guix.texi:31525
+#: doc/guix.texi:31526
 #, no-wrap
 msgid "Service Composition"
 msgstr "Composición de servicios"
 
 #. type: menuentry
-#: doc/guix.texi:327 doc/guix.texi:27357
+#: doc/guix.texi:357 doc/guix.texi:31523
 msgid "The model for composing services."
 msgstr "El modelo para la composición de servicios."
 
 #. type: subsection
-#: doc/guix.texi:327 doc/guix.texi:27357 doc/guix.texi:27415
-#: doc/guix.texi:27416
+#: doc/guix.texi:357 doc/guix.texi:31523 doc/guix.texi:31581
+#: doc/guix.texi:31582
 #, no-wrap
 msgid "Service Types and Services"
 msgstr "Tipos de servicios y servicios"
 
 #. type: menuentry
-#: doc/guix.texi:327 doc/guix.texi:27357
+#: doc/guix.texi:357 doc/guix.texi:31523
 msgid "Types and services."
 msgstr "Tipos y servicios"
 
 #. type: subsection
-#: doc/guix.texi:327 doc/guix.texi:27357 doc/guix.texi:27552
-#: doc/guix.texi:27553
+#: doc/guix.texi:357 doc/guix.texi:31523 doc/guix.texi:31718
+#: doc/guix.texi:31719
 #, no-wrap
 msgid "Service Reference"
 msgstr "Referencia de servicios"
 
 #. type: menuentry
-#: doc/guix.texi:327 doc/guix.texi:27357
+#: doc/guix.texi:357 doc/guix.texi:31523
 msgid "API reference."
 msgstr "Referencia de la API."
 
 #. type: subsection
-#: doc/guix.texi:327 doc/guix.texi:27357 doc/guix.texi:27825
-#: doc/guix.texi:27826
+#: doc/guix.texi:357 doc/guix.texi:31523 doc/guix.texi:32009
+#: doc/guix.texi:32010
 #, no-wrap
 msgid "Shepherd Services"
 msgstr "Servicios de Shepherd"
 
 #. type: menuentry
-#: doc/guix.texi:327 doc/guix.texi:27357
+#: doc/guix.texi:357 doc/guix.texi:31523
 msgid "A particular type of service."
 msgstr "Un tipo de servicio particular."
 
+#. type: section
+#: doc/guix.texi:362 doc/guix.texi:32244 doc/guix.texi:32246
+#: doc/guix.texi:32247
+#, no-wrap
+msgid "Separate Debug Info"
+msgstr "Información separada para depuración"
+
+#. type: menuentry
+#: doc/guix.texi:362 doc/guix.texi:32244
+msgid "Installing 'debug' outputs."
+msgstr "Instalación de las salidas 'debug'."
+
+#. type: section
+#: doc/guix.texi:362 doc/guix.texi:32244 doc/guix.texi:32305
+#: doc/guix.texi:32306
+#, no-wrap
+msgid "Rebuilding Debug Info"
+msgstr "Reconstrucción de la información para depuración"
+
+# FUZZY FUZZY
+#. type: menuentry
+#: doc/guix.texi:362 doc/guix.texi:32244
+msgid "Building missing debug info."
+msgstr "Construir la información de depuración necesaria."
+
+# FUZZY
+#. type: node
+#: doc/guix.texi:367 doc/guix.texi:32517 doc/guix.texi:32519
+#, no-wrap
+msgid "Reduced Binary Seed Bootstrap"
+msgstr "Lanzamiento inicial a partir de la semilla binaria reducida"
+
+# FUZZY
+#. type: menuentry
+#: doc/guix.texi:367 doc/guix.texi:32517
+msgid "A Bootstrap worthy of GNU."
+msgstr "Un lanzamiento inicial a la altura de GNU."
+
+#. type: section
+#: doc/guix.texi:367 doc/guix.texi:32517 doc/guix.texi:32594
+#: doc/guix.texi:32595
+#, no-wrap
+msgid "Preparing to Use the Bootstrap Binaries"
+msgstr "Preparación para usar los binarios del lanzamiento inicial"
+
+# FUZZY
+#. type: menuentry
+#: doc/guix.texi:367 doc/guix.texi:32517
+msgid "Building that what matters most."
+msgstr "Construcción de lo que más importa."
+
 #. type: cindex
-#: doc/guix.texi:335
+#: doc/guix.texi:375
 #, no-wrap
 msgid "purpose"
 msgstr "propósito"
 
 #. type: Plain text
-#: doc/guix.texi:343
+#: doc/guix.texi:383
 msgid "GNU Guix@footnote{``Guix'' is pronounced like ``geeks'', or ``ɡiːks'' using the international phonetic alphabet (IPA).} is a package management tool for and distribution of the GNU system.  Guix makes it easy for unprivileged users to install, upgrade, or remove software packages, to roll back to a previous package set, to build packages from source, and generally assists with the creation and maintenance of software environments."
 msgstr "GNU Guix@footnote{``Guix'' se pronuncia tal y como se escribe en castellano, ``ɡiːks'' en el alfabeto fonético internacional (IPA).} es una herramienta de gestión de paquetes y una distribución del sistema GNU. Guix facilita a usuarias sin privilegios la instalación, actualización o borrado de paquetes de software, la vuelta a un conjunto de paquetes previo atómicamente, la construcción de paquetes desde las fuentes, y ayuda de forma general en la creación y mantenimiento de entornos software."
 
 #. type: cindex
-#: doc/guix.texi:344 doc/guix.texi:419
+#: doc/guix.texi:384 doc/guix.texi:459
 #, no-wrap
 msgid "Guix System"
 msgstr "Sistema Guix"
 
 # FUZZY
 #. type: cindex
-#: doc/guix.texi:345
+#: doc/guix.texi:385
 #, no-wrap
 msgid "GuixSD, now Guix System"
 msgstr "GuixSD, ahora sistema Guix"
 
 #. type: cindex
-#: doc/guix.texi:346
+#: doc/guix.texi:386
 #, no-wrap
 msgid "Guix System Distribution, now Guix System"
 msgstr "Distribución de Sistema Guix, ahora sistema Guix"
 
 #. type: Plain text
-#: doc/guix.texi:355
+#: doc/guix.texi:395
 msgid "You can install GNU@tie{}Guix on top of an existing GNU/Linux system where it complements the available tools without interference (@pxref{Installation}), or you can use it as a standalone operating system distribution, @dfn{Guix@tie{}System}@footnote{We used to refer to Guix System as ``Guix System Distribution'' or ``GuixSD''.  We now consider it makes more sense to group everything under the ``Guix'' banner since, after all, Guix System is readily available through the @command{guix system} command, even if you're using a different distro underneath!}.  @xref{GNU Distribution}."
 msgstr "Puede instalar GNU@tie{}Guix sobre un sistema GNU/Linux existente, donde complementará las herramientas disponibles sin interferencias (@pxref{Installation}), o puede usarse como un sistema operativo en sí mismo, el @dfn{sistema@tie{}Guix}@footnote{Solíamos referirnos al sistema Guix como ``Distribución de sistema Guix'' o ``GuixSD''. Ahora consideramos que tiene más sentido agrupar todo bajo la etiqueta ``Guix'' ya que, después de todo, el sistema Guix está inmediatamente disponible a través de la orden @command{guix system}, ¡incluso cuando usa una distribución distinta por debajo!}. @xref{GNU Distribution}."
 
 #. type: cindex
-#: doc/guix.texi:364
+#: doc/guix.texi:404
 #, no-wrap
 msgid "user interfaces"
 msgstr "interfaces de usuaria"
 
 #. type: Plain text
-#: doc/guix.texi:370
+#: doc/guix.texi:410
 msgid "Guix provides a command-line package management interface (@pxref{Package Management}), tools to help with software development (@pxref{Development}), command-line utilities for more advanced usage, (@pxref{Utilities}), as well as Scheme programming interfaces (@pxref{Programming Interface})."
 msgstr "Guix proporciona una interfaz de gestión de paquetes de línea de ordenes (@pxref{Package Management}), un conjunto de utilidades de línea de órdenes (@pxref{Utilities}), así como interfaces programáticas Scheme (@pxref{Programming Interface})."
 
 #. type: cindex
-#: doc/guix.texi:370
+#: doc/guix.texi:410
 #, no-wrap
 msgid "build daemon"
 msgstr "daemon de construcción"
 
 # FIXME
 #. type: Plain text
-#: doc/guix.texi:374
+#: doc/guix.texi:414
 msgid "Its @dfn{build daemon} is responsible for building packages on behalf of users (@pxref{Setting Up the Daemon}) and for downloading pre-built binaries from authorized sources (@pxref{Substitutes})."
 msgstr "Su @dfn{daemon de construcción} es responsable de la construcción de paquetes en delegación de las usuarias (@pxref{Setting Up the Daemon}) y de la descarga de binarios preconstruidos de fuentes autorizadas (@pxref{Substitutes})"
 
 #. type: cindex
-#: doc/guix.texi:375
+#: doc/guix.texi:415
 #, no-wrap
 msgid "extensibility of the distribution"
 msgstr "extensibilidad de la distribución"
 
 #. type: cindex
-#: doc/guix.texi:376 doc/guix.texi:5391
+#: doc/guix.texi:416 doc/guix.texi:6241
 #, no-wrap
 msgid "customization, of packages"
 msgstr "personalización, de paquetes"
 
 #. type: Plain text
-#: doc/guix.texi:385
+#: doc/guix.texi:425
 msgid "Guix includes package definitions for many GNU and non-GNU packages, all of which @uref{https://www.gnu.org/philosophy/free-sw.html, respect the user's computing freedom}.  It is @emph{extensible}: users can write their own package definitions (@pxref{Defining Packages}) and make them available as independent package modules (@pxref{Package Modules}).  It is also @emph{customizable}: users can @emph{derive} specialized package definitions from existing ones, including from the command line (@pxref{Package Transformation Options})."
 msgstr "Guix incluye definiciones de paquetes para muchos paquetes GNU y no-GNU, todos los cuales @uref{https://www.gnu.org/philosophy/free-sw.html, respetan la libertad de computación de la usuaria}. Es @emph{extensible}: las usuarias pueden escribir sus propias definiciones de paquetes (@pxref{Defining Packages}) y hacerlas disponibles como módulos independientes de paquetes (@pxref{Package Modules}). También es @emph{personalizable}: las usuarias pueden @emph{derivar} definiciones de paquetes especializadas de las existentes, inclusive desde la línea de órdenes (@pxref{Package Transformation Options})."
 
 #. type: cindex
-#: doc/guix.texi:386
+#: doc/guix.texi:426
 #, no-wrap
 msgid "functional package management"
 msgstr "gestión de paquetes funcional"
 
 #. type: cindex
-#: doc/guix.texi:387
+#: doc/guix.texi:427
 #, no-wrap
 msgid "isolation"
 msgstr "aislamiento"
 
 #. type: Plain text
-#: doc/guix.texi:402
+#: doc/guix.texi:442
 msgid "Under the hood, Guix implements the @dfn{functional package management} discipline pioneered by Nix (@pxref{Acknowledgments}).  In Guix, the package build and installation process is seen as a @emph{function}, in the mathematical sense.  That function takes inputs, such as build scripts, a compiler, and libraries, and returns an installed package.  As a pure function, its result depends solely on its inputs---for instance, it cannot refer to software or scripts that were not explicitly passed as inputs.  A build function always produces the same result when passed a given set of inputs.  It cannot alter the environment of the running system in any way; for instance, it cannot create, modify, or delete files outside of its build and installation directories.  This is achieved by running build processes in isolated environments (or @dfn{containers}), where only their explicit inputs are visible."
 msgstr "En su implementación, Guix utiliza la disciplina de @dfn{gestión de paquetes funcional} en la que Nix fue pionero (@pxref{Acknowledgments}). En Guix, el proceso de construcción e instalación es visto como una @emph{función}, en el sentido matemático. Dicha función toma entradas, como los guiones de construcción, un compilador, unas bibliotecas y devuelve el paquete instalado. Como función pura, su resultado únicamente depende de sus entradas---por ejemplo, no puede hacer referencia a software o guiones que no fuesen pasados explícitamente como entrada. Una función de construcción siempre produce el mismo resultado cuando se le proporciona un conjunto de entradas dado. No puede modificar el entorno del sistema que la ejecuta de ninguna forma; por ejemplo, no puede crear, modificar o borrar archivos fuera de sus directorios de construcción e instalación. Esto se consigue ejecutando los procesos de construcción en entornos aislados (o @dfn{contenedores}), donde únicamente sus entradas explícitas son visibles."
 
 #. type: cindex
-#: doc/guix.texi:403 doc/guix.texi:6820
+#: doc/guix.texi:443 doc/guix.texi:8440
 #, no-wrap
 msgid "store"
 msgstr "almacén"
 
 # FUZZY
 #. type: Plain text
-#: doc/guix.texi:410
+#: doc/guix.texi:450
 msgid "The result of package build functions is @dfn{cached} in the file system, in a special directory called @dfn{the store} (@pxref{The Store}).  Each package is installed in a directory of its own in the store---by default under @file{/gnu/store}.  The directory name contains a hash of all the inputs used to build that package; thus, changing an input yields a different directory name."
-msgstr "El resultado de las funciones de construcción de paquetes es @dfn{almacenado en la caché} en el sistema de ficheros, en un directorio especial llamado @dfn{el almacén} (@pxref{The Store}). Cada paquete se instala en un directorio propio en el almacén---por defecto, bajo @file{/gnu/store}. El nombre del directorio contiene el hash de todas las entradas usadas para construir el paquete; por tanto, cambiar una entrada resulta en un nombre de directorio distinto."
+msgstr "El resultado de las funciones de construcción de paquetes es @dfn{almacenado en la caché} en el sistema de archivos, en un directorio especial llamado @dfn{el almacén} (@pxref{The Store}). Cada paquete se instala en un directorio propio en el almacén---por defecto, bajo @file{/gnu/store}. El nombre del directorio contiene el hash de todas las entradas usadas para construir el paquete; por tanto, cambiar una entrada resulta en un nombre de directorio distinto."
 
 #. type: Plain text
-#: doc/guix.texi:414
+#: doc/guix.texi:454
 msgid "This approach is the foundation for the salient features of Guix: support for transactional package upgrade and rollback, per-user installation, and garbage collection of packages (@pxref{Features})."
 msgstr "Esta aproximación es el cimiento de las avanzadas características de Guix: capacidad para la actualización transaccional y vuelta-atrás de paquetes, instalación en el ámbito de la usuaria y recolección de basura de paquetes (@pxref{Features})."
 
 #. type: Plain text
-#: doc/guix.texi:429
+#: doc/guix.texi:469
 msgid "Guix comes with a distribution of the GNU system consisting entirely of free software@footnote{The term ``free'' here refers to the @url{https://www.gnu.org/philosophy/free-sw.html,freedom provided to users of that software}.}.  The distribution can be installed on its own (@pxref{System Installation}), but it is also possible to install Guix as a package manager on top of an installed GNU/Linux system (@pxref{Installation}).  When we need to distinguish between the two, we refer to the standalone distribution as Guix@tie{}System."
 msgstr "Guix viene con una distribución del sistema GNU consistente en su totalidad de software libre@footnote{El término ``libre'' aquí se refiere a la @url{https://www.gnu.org/philosophy/free-sw.html,libertad proporcionada a las usuarias de dicho software}.}. La distribución puede instalarse independientemente (@pxref{System Installation}), pero también es posible instalar Guix como un gestor de paquetes sobre un sistema GNU/Linux existente (@pxref{Installation}). Para distinguir entre las dos opciones, nos referimos a la distribución independiente como el sistema@tie{}Guix."
 
 #. type: Plain text
-#: doc/guix.texi:435
+#: doc/guix.texi:475
 msgid "The distribution provides core GNU packages such as GNU libc, GCC, and Binutils, as well as many GNU and non-GNU applications.  The complete list of available packages can be browsed @url{https://www.gnu.org/software/guix/packages,on-line} or by running @command{guix package} (@pxref{Invoking guix package}):"
 msgstr "La distribución proporciona paquetes principales de GNU como GNU libc, GCC y Binutils, así como muchas aplicaciones GNU y no-GNU. La lista completa de paquetes disponibles se puede explorar @url{https://www.gnu.org/software/guix/packages,en línea} o ejecutando @command{guix package} (@pxref{Invoking guix package}):"
 
 #. type: example
-#: doc/guix.texi:438
+#: doc/guix.texi:478
 #, no-wrap
 msgid "guix package --list-available\n"
 msgstr "guix package --list-available\n"
 
 #. type: Plain text
-#: doc/guix.texi:444
+#: doc/guix.texi:484
 msgid "Our goal is to provide a practical 100% free software distribution of Linux-based and other variants of GNU, with a focus on the promotion and tight integration of GNU components, and an emphasis on programs and tools that help users exert that freedom."
 msgstr "Nuestro objetivo es proporcionar una distribución práctica con 100% software libre basada en Linux y otras variantes de GNU, con un enfoque en la promoción y la alta integración de componentes GNU, y un énfasis en programas y herramientas que ayuden a las usuarias a ejercitar esa libertad."
 
 #. type: Plain text
-#: doc/guix.texi:446
+#: doc/guix.texi:486
 msgid "Packages are currently available on the following platforms:"
 msgstr "Actualmente hay paquetes disponibles para las siguientes plataformas:"
 
 #. type: item
-#: doc/guix.texi:449 doc/guix.texi:1925
+#: doc/guix.texi:489 doc/guix.texi:2012
 #, no-wrap
 msgid "x86_64-linux"
 msgstr "x86_64-linux"
 
 #. type: table
-#: doc/guix.texi:451
-msgid "Intel/AMD @code{x86_64} architecture, Linux-Libre kernel;"
-msgstr "arquitectura @code{x86_64} de Intel/AMD, núcleo Linux-Libre;"
+#: doc/guix.texi:491
+msgid "Intel/AMD @code{x86_64} architecture, Linux-Libre kernel."
+msgstr "Arquitectura @code{x86_64} de Intel/AMD, con núcleo Linux-Libre."
 
 #. type: item
-#: doc/guix.texi:452 doc/guix.texi:1928
+#: doc/guix.texi:492 doc/guix.texi:2015
 #, no-wrap
 msgid "i686-linux"
 msgstr "i686-linux"
 
 #. type: table
-#: doc/guix.texi:454
-msgid "Intel 32-bit architecture (IA32), Linux-Libre kernel;"
-msgstr "arquitectura de 32-bits Intel (IA32), núcleo Linux-Libre;"
+#: doc/guix.texi:494
+msgid "Intel 32-bit architecture (IA32), Linux-Libre kernel."
+msgstr "Arquitectura de 32-bits Intel (IA32), con núcleo Linux-Libre."
 
 #. type: item
-#: doc/guix.texi:455
+#: doc/guix.texi:495
 #, no-wrap
 msgid "armhf-linux"
 msgstr "armhf-linux"
 
 #. type: table
-#: doc/guix.texi:459
+#: doc/guix.texi:499
 msgid "ARMv7-A architecture with hard float, Thumb-2 and NEON, using the EABI hard-float application binary interface (ABI), and Linux-Libre kernel."
-msgstr "arquitectura ARMv7-A con coma flotante hardware, Thumb-2 y NEON, usando la interfaz binaria de aplicaciones (ABI) EABI con coma flotante hardware, y el núcleo Linux-Libre."
+msgstr "Arquitectura ARMv7-A con coma flotante hardware, Thumb-2 y NEON, usando la interfaz binaria de aplicaciones (ABI) EABI con coma flotante hardware, y con el núcleo Linux-Libre."
 
 #. type: item
-#: doc/guix.texi:460
+#: doc/guix.texi:500
 #, no-wrap
 msgid "aarch64-linux"
 msgstr "aarch64-linux"
 
 #. type: table
-#: doc/guix.texi:462
+#: doc/guix.texi:502
 msgid "little-endian 64-bit ARMv8-A processors, Linux-Libre kernel."
 msgstr "procesadores ARMv8-A de 64 bits little-endian, con el núcleo Linux-Libre."
 
 #. type: item
-#: doc/guix.texi:463
+#: doc/guix.texi:503
+#, no-wrap
+msgid "i586-gnu"
+msgstr "i586-gnu"
+
+#. type: table
+#: doc/guix.texi:506
+msgid "@uref{https://hurd.gnu.org, GNU/Hurd} on the Intel 32-bit architecture (IA32)."
+msgstr "@uref{https://hurd.gnu.org, GNU/Hurd} en la arquitectura Intel de 32 bits (IA32)."
+
+#. type: table
+#: doc/guix.texi:512
+msgid "This configuration is experimental and under development.  The easiest way for you to give it a try is by setting up an instance of @code{hurd-vm-service-type} on your GNU/Linux machine (@pxref{transparent-emulation-qemu, @code{hurd-vm-service-type}}).  @xref{Contributing}, on how to help!"
+msgstr "Esta configuración es experimental y se encuentra en desarrollo. La forma más fácil de probarla es configurando una instancia del servicio @code{hurd-vm-service-type} en su máquina GNU/Linux (@pxref{transparent-emulation-qemu, @code{hurd-vm-service-type}}).  ¡@xref{Contributing} para informarse sobre cómo ayudar!"
+
+#. type: item
+#: doc/guix.texi:513
 #, no-wrap
-msgid "mips64el-linux"
-msgstr "mips64el-linux"
+msgid "mips64el-linux (deprecated)"
+msgstr "mips64el-linux (obsoleta)"
 
 #. type: table
-#: doc/guix.texi:468
-msgid "little-endian 64-bit MIPS processors, specifically the Loongson series, n32 ABI, and Linux-Libre kernel.  This configuration is no longer fully supported; in particular, the project's build farms no longer provide substitutes for this architecture."
-msgstr "procesadores MIPS 64-bits little-endian, específicamente las series Loongson, n32 ABI, y núcleo Linux-Libre. Esta configuración no se soporta completamente; en particular las granjas de construcción del proyecto ya no proporcionan sustituciones para esta arquitectura."
+#: doc/guix.texi:519
+msgid "little-endian 64-bit MIPS processors, specifically the Loongson series, n32 ABI, and Linux-Libre kernel.  This configuration is no longer fully supported; in particular, there is no ongoing work to ensure that this architecture still works. Should someone decide they wish to revive this architecture then the code is still available."
+msgstr "procesadores MIPS 64-bits little-endian, específicamente las series Loongson, n32 ABI, y núcleo Linux-Libre. Esta configuración no se soporta completamente; en particular no se está llevando a cabo ningún trabajo para asegurar que esta arquitectura funcione todavía. En caso de que alguien decida revivir esta arquitectura el código está disponible."
 
 #. type: Plain text
-#: doc/guix.texi:478
+#: doc/guix.texi:529
 msgid "With Guix@tie{}System, you @emph{declare} all aspects of the operating system configuration and Guix takes care of instantiating the configuration in a transactional, reproducible, and stateless fashion (@pxref{System Configuration}).  Guix System uses the Linux-libre kernel, the Shepherd initialization system (@pxref{Introduction,,, shepherd, The GNU Shepherd Manual}), the well-known GNU utilities and tool chain, as well as the graphical environment or system services of your choice."
 msgstr "Con el sistema@tie{}Guix, @emph{declara} todos los aspectos de la configuración del sistema y Guix se hace cargo de instanciar la configuración de manera transaccional, reproducible y sin estado global (@pxref{System Configuration}). El sistema Guix usa el núcleo Linux-libre, el sistema de inicialización Shepherd (@pxref{Introduction,,, shepherd, The GNU Shepherd Manual}), las conocidas utilidades y herramientas de compilación GNU, así como el entorno gráfico o servicios del sistema de su elección. "
 
 #. type: Plain text
-#: doc/guix.texi:481
+#: doc/guix.texi:532
 msgid "Guix System is available on all the above platforms except @code{mips64el-linux}."
 msgstr "El sistema Guix está disponible en todas las plataformas previas excepto @code{mips64el-linux}."
 
 #. type: Plain text
-#: doc/guix.texi:485
+#: doc/guix.texi:536
 msgid "For information on porting to other architectures or kernels, @pxref{Porting}."
 msgstr "Para información sobre el transporte a otras arquitecturas o núcleos, @pxref{Porting}."
 
 #. type: Plain text
-#: doc/guix.texi:488
+#: doc/guix.texi:539
 msgid "Building this distribution is a cooperative effort, and you are invited to join! @xref{Contributing}, for information about how you can help."
 msgstr "La construcción de esta distribución es un esfuerzo cooperativo, ¡y esta invitada a unirse! @xref{Contributing}, para información sobre cómo puede ayudar."
 
 #. type: cindex
-#: doc/guix.texi:494
+#: doc/guix.texi:545
 #, no-wrap
 msgid "installing Guix"
 msgstr "instalar Guix"
 
 # FUZZY
 #. type: quotation
-#: doc/guix.texi:506
+#: doc/guix.texi:557
 msgid "We recommend the use of this @uref{https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh, shell installer script} to install Guix on top of a running GNU/Linux system, thereafter called a @dfn{foreign distro}.@footnote{This section is concerned with the installation of the package manager, which can be done on top of a running GNU/Linux system.  If, instead, you want to install the complete GNU operating system, @pxref{System Installation}.} The script automates the download, installation, and initial configuration of Guix.  It should be run as the root user."
-msgstr "Recomendamos el uso de este @uref{https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh, guión de shell de instalación} para instalar Guix sobre un sistema GNU/Linux en ejecución, de aquí en adelante referido como una @dfn{distribución distinta}.@footnote{Esta sección está dedicada a la instalación del gestor de paquetes, que puede realizarse sobre un sistema GNU/Linux ya en ejecución. Si, en vez de eso, desea instalar el sistema operativo GNU completo, @pxref{System Installation}.} El guión automatiza la descarga, instalación y configuración inicial de Guix. Debe ejecutarse como la usuaria de administración root."
+msgstr "Recomendamos el uso de este @uref{https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh, guión de instalación} para instalar Guix sobre un sistema GNU/Linux en ejecución, de aquí en adelante referido como una @dfn{distribución distinta}.@footnote{Esta sección está dedicada a la instalación del gestor de paquetes, que puede realizarse sobre un sistema GNU/Linux ya en ejecución. Si, en vez de eso, desea instalar el sistema operativo GNU completo, @pxref{System Installation}.} El guión automatiza la descarga, instalación y configuración inicial de Guix. Debe ejecutarse como la usuaria de administración root."
 
 # TODO (MAAV): extranjera no es demasiado exacto
 #. type: cindex
-#: doc/guix.texi:508 doc/guix.texi:1579
+#: doc/guix.texi:559 doc/guix.texi:1684
 #, no-wrap
 msgid "foreign distro"
 msgstr "distribución distinta"
 
 #. type: cindex
-#: doc/guix.texi:509
+#: doc/guix.texi:560
 #, no-wrap
 msgid "directories related to foreign distro"
 msgstr "directorios relacionados con una distribución distinta"
 
 #. type: Plain text
-#: doc/guix.texi:514
+#: doc/guix.texi:565
 msgid "When installed on a foreign distro, GNU@tie{}Guix complements the available tools without interference.  Its data lives exclusively in two directories, usually @file{/gnu/store} and @file{/var/guix}; other files on your system, such as @file{/etc}, are left untouched."
-msgstr "Cuando está instalado sobre una distribución distinta, GNU@tie{}Guix complementa las herramientas disponibles sin interferencias. Sus datos radican exclusivamente en dos directorios, normalmente @file{/gnu/store} y @file{/var/guix}; otros ficheros en su sistema, como @file{/etc}, permanecen intactos."
+msgstr "Cuando está instalado sobre una distribución distinta, GNU@tie{}Guix complementa las herramientas disponibles sin interferencias. Sus datos radican exclusivamente en dos directorios, normalmente @file{/gnu/store} y @file{/var/guix}; otros archivos en su sistema, como @file{/etc}, permanecen intactos."
 
 #. type: Plain text
-#: doc/guix.texi:517
+#: doc/guix.texi:568
 msgid "Once installed, Guix can be updated by running @command{guix pull} (@pxref{Invoking guix pull})."
 msgstr "Una vez instalado, Guix puede ser actualizado ejecutando @command{guix pull} (@pxref{Invoking guix pull}."
 
 # FUZZY
 #. type: Plain text
-#: doc/guix.texi:522
+#: doc/guix.texi:573
 msgid "If you prefer to perform the installation steps manually or want to tweak them, you may find the following subsections useful.  They describe the software requirements of Guix, as well as how to install it manually and get ready to use it."
 msgstr "Si prefiere realizar los pasos de instalación manualmente o desea personalizarlos, puede encontrar útiles las siguientes instrucciones. Describen los requisitos de software de Guix, así como su instalación manual y la preparación para su uso."
 
-#. type: section
-#: doc/guix.texi:531 doc/guix.texi:1779 doc/guix.texi:1780
-#, no-wrap
-msgid "Upgrading Guix"
-msgstr "Actualizar Guix"
-
-#. type: menuentry
-#: doc/guix.texi:531
-msgid "Upgrading Guix and its build daemon."
-msgstr "Actualizar Guix y su daemon de construcción."
-
 #. type: cindex
-#: doc/guix.texi:536
+#: doc/guix.texi:587
 #, no-wrap
 msgid "installing Guix from binaries"
 msgstr "instalar Guix desde binarios"
 
 #. type: cindex
-#: doc/guix.texi:537
+#: doc/guix.texi:588
 #, no-wrap
 msgid "installer script"
 msgstr "guión del instalador"
 
 # TODO: (MAAV) repensar
 #. type: Plain text
-#: doc/guix.texi:543
+#: doc/guix.texi:594
 msgid "This section describes how to install Guix on an arbitrary system from a self-contained tarball providing binaries for Guix and for all its dependencies.  This is often quicker than installing from source, which is described in the next sections.  The only requirement is to have GNU@tie{}tar and Xz."
 msgstr "Esta sección describe cómo instalar Guix en un sistema arbitrario desde un archivador autocontenido que proporciona los binarios para Guix y todas sus dependencias. Esto es normalmente más rápido que una instalación desde las fuentes, la cual es descrita en las siguientes secciones. El único requisito es tener GNU@tie{}tar y Xz."
 
 #. type: quotation
-#: doc/guix.texi:551
-msgid "We recommend the use of this @uref{https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh, shell installer script}.  The script automates the download, installation, and initial configuration steps described below.  It should be run as the root user."
-msgstr "Le recomendamos el uso de este @uref{https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh, guión de instalación para el shell}. Automatiza la descarga, instalación y los pasos iniciales de configuración descritos a continuación. Debe ser ejecutarse como root."
+#: doc/guix.texi:602
+msgid "We recommend the use of this @uref{https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh, shell installer script}.  The script automates the download, installation, and initial configuration steps described below.  It should be run as the root user.  As root, you can thus run this:"
+msgstr "Le recomendamos el uso de este @uref{https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh, guión de instalación}. Automatiza la descarga, instalación y los pasos iniciales de configuración descritos a continuación. Debe ser ejecutarse como root. Mediante el uso de dicha cuenta puede ejecutar esto:"
+
+#. type: example
+#: doc/guix.texi:608
+#, no-wrap
+msgid ""
+"cd /tmp\n"
+"wget https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh\n"
+"chmod +x guix-install.sh\n"
+"./guix-install.sh\n"
+msgstr ""
+"cd /tmp\n"
+"wget https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh\n"
+"chmod +x guix-install.sh\n"
+"./guix-install.sh\n"
+
+#. type: quotation
+#: doc/guix.texi:612
+msgid "When you're done, @pxref{Application Setup} for extra configuration you might need, and @ref{Getting Started} for your first steps!"
+msgstr "Cuando haya terminado, @pxref{Application Setup} para obtener información adicional que pueda necesitar, ¡y @ref{Getting Started} para sus primeros pasos!"
 
 # TODO: (MAAV) repensar
 #. type: Plain text
-#: doc/guix.texi:554
+#: doc/guix.texi:615
 msgid "Installing goes along these lines:"
 msgstr "La instalación consiste más o menos en los siguientes pasos:"
 
 #. type: cindex
-#: doc/guix.texi:557
+#: doc/guix.texi:618
 #, no-wrap
 msgid "downloading Guix binary"
 msgstr "descargar el binario de Guix"
 
-# TODO: (MAAV) and so on -> ¿y demás?
+# FUZZY FUZZY
 #. type: enumerate
-#: doc/guix.texi:562
-msgid "Download the binary tarball from @indicateurl{@value{BASE-URL}/guix-binary-@value{VERSION}.@var{system}.tar.xz}, where @var{system} is @code{x86_64-linux} for an @code{x86_64} machine already running the kernel Linux, and so on."
-msgstr "Descargue el archivador con los binarios de @indicateurl{@value{BASE-URL}/guix-binary-@value{VERSION}.@var{sistema}.tar.xz}, donde @var{sistema} es @code{x86_64-linux} para una máquina @code{x86_64} que ejecute el núcleo Linux, etcétera."
+#: doc/guix.texi:624
+msgid "Download the binary tarball from @indicateurl{@value{BASE-URL}/guix-binary-@value{VERSION}.x86_64-linux.tar.xz}, where @code{x86_64-linux} can be replaced with @code{i686-linux} for an @code{i686} (32-bits) machine already running the kernel Linux, and so on (@pxref{GNU Distribution})."
+msgstr "Descargue el archivador con los binarios de @indicateurl{@value{BASE-URL}/guix-binary-@value{VERSION}.x86_64-linux.tar.xz}, donde, por ejemplo, @code{x86_64-linux} puede sustituirse por @code{i686-linux} para una máquina @code{i686} (32 bits) que ejecute el núcleo Linux (@pxref{GNU Distribution})."
 
 #. type: enumerate
-#: doc/guix.texi:566
+#: doc/guix.texi:628
 msgid "Make sure to download the associated @file{.sig} file and to verify the authenticity of the tarball against it, along these lines:"
-msgstr "Asegúrese de descargar el fichero @file{.sig} asociado y de verificar la autenticidad del archivador con él, más o menos así:"
+msgstr "Asegúrese de descargar el archivo @file{.sig} asociado y de verificar la autenticidad del archivador con él, más o menos así:"
 
 #. type: example
-#: doc/guix.texi:570
+#: doc/guix.texi:632
 #, no-wrap
 msgid ""
-"$ wget @value{BASE-URL}/guix-binary-@value{VERSION}.@var{system}.tar.xz.sig\n"
-"$ gpg --verify guix-binary-@value{VERSION}.@var{system}.tar.xz.sig\n"
+"$ wget @value{BASE-URL}/guix-binary-@value{VERSION}.x86_64-linux.tar.xz.sig\n"
+"$ gpg --verify guix-binary-@value{VERSION}.x86_64-linux.tar.xz.sig\n"
 msgstr ""
-"$ wget @value{BASE-URL}/guix-binary-@value{VERSION}.@var{sistema}.tar.xz.sig\n"
-"$ gpg --verify guix-binary-@value{VERSION}.@var{sistema}.tar.xz.sig\n"
+"$ wget @value{BASE-URL}/guix-binary-@value{VERSION}.x86_64-linux.tar.xz.sig\n"
+"$ gpg --verify guix-binary-@value{VERSION}.x86_64-linux.tar.xz.sig\n"
 
 #. type: Plain text
-#: doc/guix.texi:574 doc/guix.texi:1943
+#: doc/guix.texi:636 doc/guix.texi:2030
 msgid "If that command fails because you do not have the required public key, then run this command to import it:"
 msgstr "Si la orden falla porque no dispone de la clave pública necesaria, entonces ejecute esta otra orden para importarla:"
 
 #. type: example
-#: doc/guix.texi:578 doc/guix.texi:1947
+#: doc/guix.texi:640 doc/guix.texi:2034
 #, no-wrap
 msgid ""
 "$ wget @value{OPENPGP-SIGNING-KEY-URL} \\\n"
@@ -4005,57 +4555,57 @@ msgstr ""
 "      -qO - | gpg --import -\n"
 
 #. type: Plain text
-#: doc/guix.texi:582 doc/guix.texi:1951
+#: doc/guix.texi:644 doc/guix.texi:2038
 msgid "and rerun the @code{gpg --verify} command."
 msgstr "y vuelva a ejecutar la orden @code{gpg --verify}."
 
 #. type: Plain text
-#: doc/guix.texi:585 doc/guix.texi:1954
+#: doc/guix.texi:647 doc/guix.texi:2041
 msgid "Take note that a warning like ``This key is not certified with a trusted signature!'' is normal."
 msgstr "Tenga en cuenta que un aviso del tipo ``Esta clave no esta certificada con una firma de confianza'' es normal."
 
 #. type: enumerate
-#: doc/guix.texi:591
+#: doc/guix.texi:653
 msgid "Now, you need to become the @code{root} user.  Depending on your distribution, you may have to run @code{su -} or @code{sudo -i}.  As @code{root}, run:"
 msgstr "Ahora necesita convertirse en la usuaria @code{root}. Dependiendo de su distribución, puede que tenga que ejecutar @code{su -} o @code{sudo -i}. Como @code{root}, ejecute:"
 
 #. type: example
-#: doc/guix.texi:597
+#: doc/guix.texi:659
 #, no-wrap
 msgid ""
 "# cd /tmp\n"
 "# tar --warning=no-timestamp -xf \\\n"
-"     /path/to/guix-binary-@value{VERSION}.@var{system}.tar.xz\n"
+"     /path/to/guix-binary-@value{VERSION}.x86_64-linux.tar.xz\n"
 "# mv var/guix /var/ && mv gnu /\n"
 msgstr ""
 "# cd /tmp\n"
 "# tar --warning=no-timestamp -xf \\\n"
-"     /ruta/de/guix-binary-@value{VERSION}.@var{sistema}.tar.xz\n"
+"     /ruta/a/guix-binary-@value{VERSION}.x86_64-linux.tar.xz\n"
 "# mv var/guix /var/ && mv gnu /\n"
 
 #. type: enumerate
-#: doc/guix.texi:602
-msgid "This creates @file{/gnu/store} (@pxref{The Store}) and @file{/var/guix}.  The latter contains a ready-to-use profile for @code{root} (see next step.)"
-msgstr "Esto crea @file{/gnu/store} (@pxref{The Store}) y @file{/var/guix}. El último contiene un perfil listo para usar para @code{root} (vea el siguiente paso)."
+#: doc/guix.texi:664
+msgid "This creates @file{/gnu/store} (@pxref{The Store}) and @file{/var/guix}.  The latter contains a ready-to-use profile for @code{root} (see next step)."
+msgstr "Esto crea @file{/gnu/store} (@pxref{The Store}) y @file{/var/guix}. El último contiene un perfil listo para usar para @code{root} (véase el siguiente paso)."
 
 #. type: enumerate
-#: doc/guix.texi:605
+#: doc/guix.texi:667
 msgid "Do @emph{not} unpack the tarball on a working Guix system since that would overwrite its own essential files."
-msgstr "@emph{No} extraiga el archivador en un sistema Guix ya funcionando ya que sobreescribiría sus propios ficheros esenciales."
+msgstr "@emph{No} extraiga el archivador en un sistema Guix ya funcionando ya que sobreescribiría sus propios archivos esenciales."
 
 # TODO (MAAV): Revisar
 #. type: enumerate
-#: doc/guix.texi:615
-msgid "The @code{--warning=no-timestamp} option makes sure GNU@tie{}tar does not emit warnings about ``implausibly old time stamps'' (such warnings were triggered by GNU@tie{}tar 1.26 and older; recent versions are fine.)  They stem from the fact that all the files in the archive have their modification time set to zero (which means January 1st, 1970.)  This is done on purpose to make sure the archive content is independent of its creation time, thus making it reproducible."
-msgstr "La opción @code{--warning=no-timestamp} asegura que GNU@tie{}tar no emite avisos sobre ``marcas de tiempo imposibles'' (dichos avisos eran emitidos por GNU@tie{}tar 1.26 y anteriores; las versiones recientes están bien). Parten del hecho de que todos los ficheros en el archivador tienen su tiempo de modificación fijado a cero (que significa el 1 de enero de 1970). Esto es hecho voluntariamente para asegurarse de que el contenido del archivador es independiente de su fecha de creación, por tanto haciendo que sea reproducible."
+#: doc/guix.texi:677
+msgid "The @option{--warning=no-timestamp} option makes sure GNU@tie{}tar does not emit warnings about ``implausibly old time stamps'' (such warnings were triggered by GNU@tie{}tar 1.26 and older; recent versions are fine).  They stem from the fact that all the files in the archive have their modification time set to 1 (which means January 1st, 1970).  This is done on purpose to make sure the archive content is independent of its creation time, thus making it reproducible."
+msgstr "La opción @option{--warning=no-timestamp} asegura que GNU@tie{}tar no emite avisos sobre ``marcas de tiempo imposibles'' (dichos avisos eran emitidos por GNU@tie{}tar 1.26 y anteriores; las versiones recientes están bien). Parten del hecho de que todos los archivos en el archivador tienen su tiempo de modificación con valor uno (que significa el 1 de enero de 1970). Esto se hace de manera voluntaria para asegurarse de que el contenido del archivador es independiente de su fecha de creación, haciendolo por tanto reproducible."
 
 #. type: enumerate
-#: doc/guix.texi:619
+#: doc/guix.texi:681
 msgid "Make the profile available under @file{~root/.config/guix/current}, which is where @command{guix pull} will install updates (@pxref{Invoking guix pull}):"
 msgstr "Ponga disponible el perfil en @file{~root/.config/guix/current}, que es donde @command{guix pull} instalará las actualizaciones (@pxref{Invoking guix pull}):"
 
 #. type: example
-#: doc/guix.texi:624
+#: doc/guix.texi:686
 #, no-wrap
 msgid ""
 "# mkdir -p ~root/.config/guix\n"
@@ -4067,12 +4617,12 @@ msgstr ""
 "         ~root/.config/guix/current\n"
 
 #. type: enumerate
-#: doc/guix.texi:628
-msgid "Source @file{etc/profile} to augment @code{PATH} and other relevant environment variables:"
-msgstr "Cargue @file{etc/profile} para aumentar @code{PATH} y otras variables de entorno relevantes:"
+#: doc/guix.texi:690
+msgid "Source @file{etc/profile} to augment @env{PATH} and other relevant environment variables:"
+msgstr "Cargue @file{etc/profile} para aumentar @env{PATH} y otras variables de entorno relevantes:"
 
 #. type: example
-#: doc/guix.texi:632
+#: doc/guix.texi:694
 #, no-wrap
 msgid ""
 "# GUIX_PROFILE=\"`echo ~root`/.config/guix/current\" ; \\\n"
@@ -4082,39 +4632,41 @@ msgstr ""
 "  source $GUIX_PROFILE/etc/profile\n"
 
 #. type: enumerate
-#: doc/guix.texi:637
+#: doc/guix.texi:699
 msgid "Create the group and user accounts for build users as explained below (@pxref{Build Environment Setup})."
 msgstr "Cree el grupo y las cuentas de usuaria para las usuarias de construcción como se explica a continuación (@pxref{Build Environment Setup})."
 
 #. type: enumerate
-#: doc/guix.texi:640
+#: doc/guix.texi:702
 msgid "Run the daemon, and set it to automatically start on boot."
 msgstr "Ejecute el daemon, y configure su inicio automático durante el arranque."
 
 #. type: enumerate
-#: doc/guix.texi:643
+#: doc/guix.texi:705
 msgid "If your host distro uses the systemd init system, this can be achieved with these commands:"
 msgstr "Si su distribución anfitriona usa el sistema de inicio systemd, puede hacerlo con las siguientes órdenes:"
 
 #. type: example
-#: doc/guix.texi:655
+#: doc/guix.texi:718
 #, no-wrap
 msgid ""
-"# cp ~root/.config/guix/current/lib/systemd/system/guix-daemon.service \\\n"
+"# cp ~root/.config/guix/current/lib/systemd/system/gnu-store.mount \\\n"
+"     ~root/.config/guix/current/lib/systemd/system/guix-daemon.service \\\n"
 "     /etc/systemd/system/\n"
-"# systemctl start guix-daemon && systemctl enable guix-daemon\n"
+"# systemctl enable --now gnu-store.mount guix-daemon\n"
 msgstr ""
-"# cp ~root/.config/guix/current/lib/systemd/system/guix-daemon.service \\\n"
+"# cp ~root/.config/guix/current/lib/systemd/system/gnu-store.mount \\\n"
+"     ~root/.config/guix/current/lib/systemd/system/guix-daemon.service \\\n"
 "     /etc/systemd/system/\n"
-"# systemctl start guix-daemon && systemctl enable guix-daemon\n"
+"# systemctl enable --now gnu-store.mount guix-daemon\n"
 
 #. type: itemize
-#: doc/guix.texi:658 doc/guix.texi:10448
+#: doc/guix.texi:721 doc/guix.texi:12367
 msgid "If your host distro uses the Upstart init system:"
 msgstr "Si su distribución anfitriona usa el sistema de inicio Upstart:"
 
 #. type: example
-#: doc/guix.texi:664
+#: doc/guix.texi:727
 #, no-wrap
 msgid ""
 "# initctl reload-configuration\n"
@@ -4128,12 +4680,12 @@ msgstr ""
 "# start guix-daemon\n"
 
 #. type: enumerate
-#: doc/guix.texi:667
+#: doc/guix.texi:730
 msgid "Otherwise, you can still start the daemon manually with:"
 msgstr "En otro caso, todavía puede iniciar el daemon manualmente con:"
 
 #. type: example
-#: doc/guix.texi:671
+#: doc/guix.texi:734
 #, no-wrap
 msgid ""
 "# ~root/.config/guix/current/bin/guix-daemon \\\n"
@@ -4143,12 +4695,12 @@ msgstr ""
 "       --build-users-group=guixbuild\n"
 
 #. type: enumerate
-#: doc/guix.texi:676
+#: doc/guix.texi:739
 msgid "Make the @command{guix} command available to other users on the machine, for instance with:"
 msgstr "Haga accesible la orden @command{guix} a otras usuarias de la máquina, por ejemplo con:"
 
 #. type: example
-#: doc/guix.texi:681
+#: doc/guix.texi:744
 #, no-wrap
 msgid ""
 "# mkdir -p /usr/local/bin\n"
@@ -4160,12 +4712,12 @@ msgstr ""
 "# ln -s /var/guix/profiles/per-user/root/current-guix/bin/guix\n"
 
 #. type: enumerate
-#: doc/guix.texi:685
+#: doc/guix.texi:748
 msgid "It is also a good idea to make the Info version of this manual available there:"
 msgstr "Es también una buena idea poner disponible la versión Info de este manual ahí:"
 
 #. type: example
-#: doc/guix.texi:691
+#: doc/guix.texi:754
 #, no-wrap
 msgid ""
 "# mkdir -p /usr/local/share/info\n"
@@ -4179,23 +4731,23 @@ msgstr ""
 "  do ln -s $i ; done\n"
 
 #. type: enumerate
-#: doc/guix.texi:697
-msgid "That way, assuming @file{/usr/local/share/info} is in the search path, running @command{info guix} will open this manual (@pxref{Other Info Directories,,, texinfo, GNU Texinfo}, for more details on changing the Info search path.)"
+#: doc/guix.texi:760
+msgid "That way, assuming @file{/usr/local/share/info} is in the search path, running @command{info guix} will open this manual (@pxref{Other Info Directories,,, texinfo, GNU Texinfo}, for more details on changing the Info search path)."
 msgstr "De este modo, asumiendo que @file{/usr/local/share/info} está en la ruta de búsqueda, ejecutar @command{info guix.es} abrirá este manual (@pxref{Other Info Directories,,, texinfo, GNU Texinfo}, para más detalles sobre cómo cambiar la ruta de búsqueda de Info)."
 
 #. type: cindex
-#: doc/guix.texi:699 doc/guix.texi:3269 doc/guix.texi:12760
+#: doc/guix.texi:762 doc/guix.texi:3603 doc/guix.texi:14912
 #, no-wrap
 msgid "substitutes, authorization thereof"
 msgstr "sustituciones, autorización de las mismas"
 
 #. type: enumerate
-#: doc/guix.texi:702
+#: doc/guix.texi:765
 msgid "To use substitutes from @code{@value{SUBSTITUTE-SERVER}} or one of its mirrors (@pxref{Substitutes}), authorize them:"
 msgstr "Para usar sustituciones de @code{@value{SUBSTITUTE-SERVER}} o uno de sus espejos (@pxref{Substitutes}), debe autorizarlas:"
 
 #. type: example
-#: doc/guix.texi:706
+#: doc/guix.texi:769
 #, no-wrap
 msgid ""
 "# guix archive --authorize < \\\n"
@@ -4205,44 +4757,44 @@ msgstr ""
 "     ~root/.config/guix/current/share/guix/@value{SUBSTITUTE-SERVER}.pub\n"
 
 #. type: enumerate
-#: doc/guix.texi:711
+#: doc/guix.texi:774
 msgid "Each user may need to perform a few additional steps to make their Guix environment ready for use, @pxref{Application Setup}."
 msgstr "Cada usuaria puede necesitar dar algunos pasos adicionales para preparar su entorno de Guix para el uso diario, @pxref{Application Setup}."
 
 #. type: Plain text
-#: doc/guix.texi:714
+#: doc/guix.texi:777
 msgid "Voilà, the installation is complete!"
 msgstr "Voilà, ¡la instalación está completa!"
 
 #. type: Plain text
-#: doc/guix.texi:717
+#: doc/guix.texi:780
 msgid "You can confirm that Guix is working by installing a sample package into the root profile:"
 msgstr "Puede confirmar que Guix está funcionando instalando un paquete de ejemplo en su perfil de root:"
 
 #. type: example
-#: doc/guix.texi:720
+#: doc/guix.texi:783
 #, no-wrap
 msgid "# guix install hello\n"
 msgstr "# guix install hello\n"
 
 #. type: Plain text
-#: doc/guix.texi:724
+#: doc/guix.texi:787
 msgid "The binary installation tarball can be (re)produced and verified simply by running the following command in the Guix source tree:"
 msgstr "El archivador de la instalación binaria puede ser (re)producido y verificado simplemente ejecutando la siguiente orden en el árbol de fuentes de Guix:"
 
 #. type: example
-#: doc/guix.texi:727
+#: doc/guix.texi:790
 #, no-wrap
 msgid "make guix-binary.@var{system}.tar.xz\n"
 msgstr "make guix-binary.@var{sistema}.tar.xz\n"
 
 #. type: Plain text
-#: doc/guix.texi:731
+#: doc/guix.texi:794
 msgid "...@: which, in turn, runs:"
 msgstr "...@: que a su vez ejecuta:"
 
 #. type: example
-#: doc/guix.texi:735
+#: doc/guix.texi:798
 #, no-wrap
 msgid ""
 "guix pack -s @var{system} --localstatedir \\\n"
@@ -4252,277 +4804,288 @@ msgstr ""
 "  --profile-name=current-guix guix\n"
 
 #. type: Plain text
-#: doc/guix.texi:738
+#: doc/guix.texi:801
 msgid "@xref{Invoking guix pack}, for more info on this handy tool."
 msgstr "@xref{Invoking guix pack}, para más información sobre esta útil herramienta."
 
 #. type: Plain text
-#: doc/guix.texi:746
+#: doc/guix.texi:809
 msgid "This section lists requirements when building Guix from source.  The build procedure for Guix is the same as for other GNU software, and is not covered here.  Please see the files @file{README} and @file{INSTALL} in the Guix source tree for additional details."
-msgstr "Esta sección enumera los requisitos para construir Guix desde las fuentes. El procedimiento de construcción de Guix es el mismo que el de otro software GNU, y no está cubierto aquí. Por favor, eche un vistazo a los ficheros @file{README} y @file{INSTALL} en el árbol de fuentes de Guix para obtener detalles adicionales."
+msgstr "Esta sección enumera los requisitos para construir Guix desde las fuentes. El procedimiento de construcción de Guix es el mismo que el de otro software GNU, y no está cubierto aquí. Por favor, eche un vistazo a los archivos @file{README} y @file{INSTALL} en el árbol de fuentes de Guix para obtener detalles adicionales."
 
 #. type: cindex
-#: doc/guix.texi:747
+#: doc/guix.texi:810
 #, no-wrap
 msgid "official website"
-msgstr "página web oficial"
+msgstr "sitio web oficial"
 
 #. type: Plain text
-#: doc/guix.texi:750
+#: doc/guix.texi:813
 msgid "GNU Guix is available for download from its website at @url{https://www.gnu.org/software/guix/}."
-msgstr "GNU Guix está disponible para descarga desde su página web en @url{http://www.gnu.org/software/guix/}."
+msgstr "GNU Guix está disponible para descarga desde su sitio web en @url{http://www.gnu.org/software/guix/}."
 
 #. type: Plain text
-#: doc/guix.texi:752
+#: doc/guix.texi:815
 msgid "GNU Guix depends on the following packages:"
 msgstr "GNU Guix depende de los siguientes paquetes:"
 
 #. type: item
-#: doc/guix.texi:754
+#: doc/guix.texi:817
 #, no-wrap
 msgid "@url{https://gnu.org/software/guile/, GNU Guile}, version 3.0.x or"
 msgstr "@url{https://gnu.org/software/guile/, GNU Guile}, versión 3.0.x o"
 
 #. type: itemize
-#: doc/guix.texi:756
+#: doc/guix.texi:819
 msgid "2.2.x;"
 msgstr "2.2.x;"
 
 #. type: item
-#: doc/guix.texi:756
+#: doc/guix.texi:819
 #, no-wrap
 msgid "@url{https://notabug.org/cwebber/guile-gcrypt, Guile-Gcrypt}, version"
 msgstr "@url{https://notabug.org/cwebber/guile-gcrypt, Guile-Gcrypt}, versión"
 
 #. type: itemize
-#: doc/guix.texi:758
+#: doc/guix.texi:821
 msgid "0.1.0 or later;"
 msgstr "0.1.0 o posterior;"
 
 # TODO: (MAAV): ¿bindings?
 #. type: itemize
-#: doc/guix.texi:762
+#: doc/guix.texi:825
 msgid "@uref{https://gnutls.org/, GnuTLS}, specifically its Guile bindings (@pxref{Guile Preparations, how to install the GnuTLS bindings for Guile,, gnutls-guile, GnuTLS-Guile});"
 msgstr "@uref{https://gnutls.org/, GnuTLS}, específicamente su API para Guile (@pxref{Guile Preparations, how to install the GnuTLS bindings for Guile,, gnutls-guile, GnuTLS-Guile});"
 
 #. type: itemize
-#: doc/guix.texi:765
+#: doc/guix.texi:828
 msgid "@uref{https://notabug.org/guile-sqlite3/guile-sqlite3, Guile-SQLite3}, version 0.1.0 or later;"
 msgstr "@uref{https://notabug.org/guile-sqlite3/guile-sqlite3, Guile-SQLite3}, versión 0.1.0 o posterior;"
 
-#. type: itemize
-#: doc/guix.texi:769
-msgid "@uref{https://gitlab.com/guile-git/guile-git, Guile-Git}, from August 2017 or later;"
-msgstr "@uref{https://gitlab.com/guile-git/guile-git, Guile-Git}, de agosto de 2017 o posterior;"
+#. type: item
+#: doc/guix.texi:828
+#, no-wrap
+msgid "@uref{https://notabug.org/guile-zlib/guile-zlib, Guile-zlib};"
+msgstr "@uref{https://notabug.org/guile-zlib/guile-zlib, Guile-zlib};"
 
 #. type: item
-#: doc/guix.texi:769
+#: doc/guix.texi:829
 #, no-wrap
-msgid "@uref{https://savannah.nongnu.org/projects/guile-json/, Guile-JSON} 3.x;"
-msgstr "@uref{https://savannah.nongnu.org/projects/guile-json/, Guile-JSON} 3.x;"
+msgid "@uref{https://notabug.org/guile-lzlib/guile-lzlib, Guile-lzlib};"
+msgstr "@uref{https://notabug.org/guile-lzlib/guile-lzlib, Guile-lzlib};"
+
+#. type: itemize
+#: doc/guix.texi:834
+msgid "@uref{https://gitlab.com/guile-git/guile-git, Guile-Git}, version 0.3.0 or later;"
+msgstr "@uref{https://gitlab.com/guile-git/guile-git, Guile-Git}, versión 0.3.0 o posterior;"
 
 #. type: item
-#: doc/guix.texi:770
+#: doc/guix.texi:834
 #, no-wrap
-msgid "@url{https://zlib.net, zlib};"
-msgstr "@url{https://zlib.net, zlib};"
+msgid "@uref{https://savannah.nongnu.org/projects/guile-json/, Guile-JSON}"
+msgstr "@uref{https://savannah.nongnu.org/projects/guile-json/, Guile-JSON}"
+
+#. type: itemize
+#: doc/guix.texi:836
+msgid "4.3.0 or later;"
+msgstr "4.3.0 o posterior;"
 
 #. type: item
-#: doc/guix.texi:771
+#: doc/guix.texi:836
 #, no-wrap
 msgid "@url{https://www.gnu.org/software/make/, GNU Make}."
 msgstr "@url{https://www.gnu.org/software/make/, GNU Make}."
 
 #. type: Plain text
-#: doc/guix.texi:775
+#: doc/guix.texi:840
 msgid "The following dependencies are optional:"
 msgstr "Las siguientes dependencias son opcionales:"
 
 #. type: itemize
-#: doc/guix.texi:783
-msgid "Support for build offloading (@pxref{Daemon Offload Setup}) and @command{guix copy} (@pxref{Invoking guix copy}) depends on @uref{https://github.com/artyom-poptsov/guile-ssh, Guile-SSH}, version 0.12.0 or later."
-msgstr "La delegación de construcciones (@pxref{Daemon Offload Setup}) y @command{guix copy} (@pxref{Invoking guix copy}) dependen de @uref{https://github.com/artyom-poptsov/guile-ssh, Guile-SSH}, versión 0.12.0 o posterior."
+#: doc/guix.texi:848
+msgid "Support for build offloading (@pxref{Daemon Offload Setup}) and @command{guix copy} (@pxref{Invoking guix copy}) depends on @uref{https://github.com/artyom-poptsov/guile-ssh, Guile-SSH}, version 0.13.0 or later."
+msgstr "La delegación de construcciones (@pxref{Daemon Offload Setup}) y @command{guix copy} (@pxref{Invoking guix copy}) dependen de @uref{https://github.com/artyom-poptsov/guile-ssh, Guile-SSH}, versión 0.13.0 o posterior."
 
 #. type: itemize
-#: doc/guix.texi:788
+#: doc/guix.texi:853
 msgid "When @url{https://www.nongnu.org/lzip/lzlib.html, lzlib} is available, lzlib substitutes can be used and @command{guix publish} can compress substitutes with lzlib."
 msgstr "Cuando @url{https://www.nongnu.org/lzip/lzlib.html, lzlib} está disponible, se pueden usar sustituciones con lzlib y @command{guix publish} puede comprimir las sustituciones con lzlib."
 
 # TODO: (MAAV) log
 #. type: itemize
-#: doc/guix.texi:792
+#: doc/guix.texi:857
 msgid "When @url{http://www.bzip.org, libbz2} is available, @command{guix-daemon} can use it to compress build logs."
 msgstr "Cuando @url{http://www.bzip.org, libbz2} está disponible, @command{guix daemon} puede usarla para comprimir los registros de construcción."
 
 #. type: Plain text
-#: doc/guix.texi:796
-msgid "Unless @code{--disable-daemon} was passed to @command{configure}, the following packages are also needed:"
-msgstr "A menos que se pasase @code{--disable-daemon} a @command{configure}, los siguientes paquetes también son necesarios:"
+#: doc/guix.texi:861
+msgid "Unless @option{--disable-daemon} was passed to @command{configure}, the following packages are also needed:"
+msgstr "Si no se ha proporcionado @option{--disable-daemon} a @command{configure}, los siguientes paquetes también son necesarios:"
 
 #. type: item
-#: doc/guix.texi:798
+#: doc/guix.texi:863
 #, no-wrap
 msgid "@url{https://gnupg.org/, GNU libgcrypt};"
 msgstr "@url{https://gnupg.org/, GNU libgcrypt};"
 
 #. type: item
-#: doc/guix.texi:799
+#: doc/guix.texi:864
 #, no-wrap
 msgid "@url{https://sqlite.org, SQLite 3};"
 msgstr "@url{https://sqlite.org, SQLite 3};"
 
 # FUZZY
 #. type: item
-#: doc/guix.texi:800
+#: doc/guix.texi:865
 #, no-wrap
 msgid "@url{https://gcc.gnu.org, GCC's g++}, with support for the"
-msgstr "@url{https://gcc.gnu.org, g++ de GCC} con soporte para el"
+msgstr "@url{https://gcc.gnu.org, g++ de GCC}, con implementación"
 
 #. type: itemize
-#: doc/guix.texi:802
+#: doc/guix.texi:867
 msgid "C++11 standard."
-msgstr "estándar C++11"
+msgstr "del estándar C++11"
 
 #. type: cindex
-#: doc/guix.texi:804
+#: doc/guix.texi:869
 #, no-wrap
 msgid "state directory"
 msgstr "directorio de estado"
 
 #. type: Plain text
-#: doc/guix.texi:813
-msgid "When configuring Guix on a system that already has a Guix installation, be sure to specify the same state directory as the existing installation using the @code{--localstatedir} option of the @command{configure} script (@pxref{Directory Variables, @code{localstatedir},, standards, GNU Coding Standards}).  Usually, this @var{localstatedir} option is set to the value @file{/var}.  The @command{configure} script protects against unintended misconfiguration of @var{localstatedir} so you do not inadvertently corrupt your store (@pxref{The Store})."
-msgstr "Cuando se configura Guix en un sistema que ya tiene una instalación de Guix, asegúrese de especificar el mismo directorio de estado que el de la instalación existente usando la opción @code{--localstatedir} al guión @command{configure} (@pxref{Directory Variables, @code{localstatedir},, standards, GNU Coding Standards}). Habitualmente, esta opción @var{localstatedir} tiene el valor @file{/var}. El guión @command{configure} le proteje ante una mala configuración no deseada de @var{localstatedir} de modo que no pueda corromper inadvertidamente su almacén (@pxref{The Store})."
+#: doc/guix.texi:878
+msgid "When configuring Guix on a system that already has a Guix installation, be sure to specify the same state directory as the existing installation using the @option{--localstatedir} option of the @command{configure} script (@pxref{Directory Variables, @code{localstatedir},, standards, GNU Coding Standards}).  Usually, this @var{localstatedir} option is set to the value @file{/var}.  The @command{configure} script protects against unintended misconfiguration of @var{localstatedir} so you do not inadvertently corrupt your store (@pxref{The Store})."
+msgstr "Cuando se configura Guix en un sistema que ya tiene una instalación de Guix, asegúrese de especificar el mismo directorio de estado que el de la instalación existente usando la opción @option{--localstatedir} al guión @command{configure} (@pxref{Directory Variables, @code{localstatedir},, standards, GNU Coding Standards}). Habitualmente, esta opción @var{localstatedir} tiene el valor @file{/var}. El guión @command{configure} le proteje ante una mala configuración no deseada de @var{localstatedir} de modo que no pueda corromper inadvertidamente su almacén (@pxref{The Store})."
 
 #. type: cindex
-#: doc/guix.texi:817
+#: doc/guix.texi:882
 #, no-wrap
 msgid "test suite"
 msgstr "batería de pruebas"
 
 #. type: Plain text
-#: doc/guix.texi:823
+#: doc/guix.texi:888
 msgid "After a successful @command{configure} and @code{make} run, it is a good idea to run the test suite.  It can help catch issues with the setup or environment, or bugs in Guix itself---and really, reporting test failures is a good way to help improve the software.  To run the test suite, type:"
 msgstr "Después de una ejecución exitosa de @command{configure} y @code{make}, es una buena idea ejecutar la batería de pruebas. Puede ayudar a encontrar problemas con la configuración o el entorno, o errores en el mismo Guix---e informar de fallos en las pruebas es realmente una buena forma de ayudar a mejorar el software. Para ejecutar la batería de pruebas, teclee:"
 
 #. type: example
-#: doc/guix.texi:826
+#: doc/guix.texi:891
 #, no-wrap
 msgid "make check\n"
 msgstr "make check\n"
 
 # TODO (MAAV): caché
 #. type: Plain text
-#: doc/guix.texi:833
+#: doc/guix.texi:898
 msgid "Test cases can run in parallel: you can use the @code{-j} option of GNU@tie{}make to speed things up.  The first run may take a few minutes on a recent machine; subsequent runs will be faster because the store that is created for test purposes will already have various things in cache."
 msgstr "Los casos de prueba pueden ejecutarse en paralelo: puede usar la opción @code{-j} de GNU@tie{}make para acelerar las cosas. La primera ejecución puede tomar algunos minutos en una máquina reciente; las siguientes ejecuciones serán más rápidas puesto que el almacén creado para las pruebas ya tendrá varias cosas en la caché."
 
 #. type: Plain text
-#: doc/guix.texi:836
+#: doc/guix.texi:901
 msgid "It is also possible to run a subset of the tests by defining the @code{TESTS} makefile variable as in this example:"
 msgstr "También es posible ejecutar un subconjunto de las pruebas definiendo la variable de makefile @code{TESTS} como en el ejemplo:"
 
 #. type: example
-#: doc/guix.texi:839
+#: doc/guix.texi:904
 #, no-wrap
 msgid "make check TESTS=\"tests/store.scm tests/cpio.scm\"\n"
 msgstr "make check TESTS=\"tests/store.scm tests/cpio.scm\"\n"
 
 #. type: Plain text
-#: doc/guix.texi:844
+#: doc/guix.texi:909
 msgid "By default, tests results are displayed at a file level.  In order to see the details of every individual test cases, it is possible to define the @code{SCM_LOG_DRIVER_FLAGS} makefile variable as in this example:"
-msgstr "Por defecto, los resultados de las pruebas se muestran a nivel de fichero. Para ver los detalles de cada caso de prueba individual, es posible definir la variable de makefile @code{SCM_LOG_DRIVER_FLAGS} como en el ejemplo:"
+msgstr "Por defecto, los resultados de las pruebas se muestran a nivel de archivo. Para ver los detalles de cada caso de prueba individual, es posible definir la variable de makefile @code{SCM_LOG_DRIVER_FLAGS} como en el ejemplo:"
 
 #. type: example
-#: doc/guix.texi:847
+#: doc/guix.texi:912
 #, no-wrap
 msgid "make check TESTS=\"tests/base64.scm\" SCM_LOG_DRIVER_FLAGS=\"--brief=no\"\n"
 msgstr "make check TESTS=\"tests/base64.scm\" SCM_LOG_DRIVER_FLAGS=\"--brief=no\"\n"
 
 #. type: Plain text
-#: doc/guix.texi:853
+#: doc/guix.texi:918
 msgid "Upon failure, please email @email{bug-guix@@gnu.org} and attach the @file{test-suite.log} file.  Please specify the Guix version being used as well as version numbers of the dependencies (@pxref{Requirements}) in your message."
-msgstr "En caso de fallo, le rogamos que envíe un correo a @email{bug-guix@@gnu.org} y adjunte el fichero @file{test-suite.log}. Por favor, especifique la versión de Guix usada así como los números de versión de las dependencias (@pxref{Requirements}) en su mensaje."
+msgstr "En caso de fallo, le rogamos que envíe un correo a @email{bug-guix@@gnu.org} y adjunte el archivo @file{test-suite.log}. Por favor, especifique la versión de Guix usada así como los números de versión de las dependencias (@pxref{Requirements}) en su mensaje."
 
 #. type: Plain text
-#: doc/guix.texi:857
+#: doc/guix.texi:922
 msgid "Guix also comes with a whole-system test suite that tests complete Guix System instances.  It can only run on systems where Guix is already installed, using:"
 msgstr "Guix también viene como una batería de pruebas del sistema completo que prueban instancias completas del sistema Guix. Se puede ejecutar únicamente en sistemas donde Guix ya está instalado, usando:"
 
 #. type: example
-#: doc/guix.texi:860
+#: doc/guix.texi:925
 #, no-wrap
 msgid "make check-system\n"
 msgstr "make check-system\n"
 
 #. type: Plain text
-#: doc/guix.texi:864
+#: doc/guix.texi:929
 msgid "or, again, by defining @code{TESTS} to select a subset of tests to run:"
 msgstr "o, de nuevo, definiendo @code{TESTS} para seleccionar un subconjunto de las pruebas a ejecutar:"
 
 #. type: example
-#: doc/guix.texi:867
+#: doc/guix.texi:932
 #, no-wrap
 msgid "make check-system TESTS=\"basic mcron\"\n"
 msgstr "make check-system TESTS=\"basic mcron\"\n"
 
 # TODO: (MAAV) baratas?
 #. type: Plain text
-#: doc/guix.texi:875
+#: doc/guix.texi:940
 msgid "These system tests are defined in the @code{(gnu tests @dots{})} modules.  They work by running the operating systems under test with lightweight instrumentation in a virtual machine (VM).  They can be computationally intensive or rather cheap, depending on whether substitutes are available for their dependencies (@pxref{Substitutes}).  Some of them require a lot of storage space to hold VM images."
 msgstr "Estas pruebas de sistema están definidas en los módulos @code{(gnu tests @dots{})}. Funcionan ejecutando el sistema operativo con una instrumentación ligera en una máquina virtual (VM). Pueden ser computacionalmente intensivas o bastante baratas, dependiendo de si hay sustituciones disponibles para sus dependencias (@pxref{Substitutes}). Algunas requieren mucho espacio de almacenamiento para alojar las imágenes de la máquina virtual."
 
 #. type: Plain text
-#: doc/guix.texi:878
+#: doc/guix.texi:943
 msgid "Again in case of test failures, please send @email{bug-guix@@gnu.org} all the details."
 msgstr "De nuevo, en caso de fallos en las pruebas, le rogamos que envíe a @email{bug-guix@@gnu.org} todos los detalles."
 
 #. type: cindex
-#: doc/guix.texi:882
+#: doc/guix.texi:947
 #, no-wrap
 msgid "daemon"
 msgstr "daemon"
 
 # TODO: (MAAV) repasar
 #. type: Plain text
-#: doc/guix.texi:890
+#: doc/guix.texi:955
 msgid "Operations such as building a package or running the garbage collector are all performed by a specialized process, the @dfn{build daemon}, on behalf of clients.  Only the daemon may access the store and its associated database.  Thus, any operation that manipulates the store goes through the daemon.  For instance, command-line tools such as @command{guix package} and @command{guix build} communicate with the daemon (@i{via} remote procedure calls) to instruct it what to do."
 msgstr "Operaciones como la construcción de un paquete o la ejecución del recolector de basura son realizadas por un proceso especializado, el @dfn{daemon de construcción}, en delegación de sus clientes. Únicamente el daemon puede acceder al almacén y su base de datos asociada. Por tanto, cualquier operación que manipula el almacén se realiza a través del daemon. Por ejemplo, las herramientas de línea de órdenes como @command{guix package} y @command{guix build} se comunican con el daemon (@i{via} llamadas a procedimientos remotos) para indicarle qué hacer."
 
 #. type: Plain text
-#: doc/guix.texi:894
+#: doc/guix.texi:959
 msgid "The following sections explain how to prepare the build daemon's environment.  See also @ref{Substitutes}, for information on how to allow the daemon to download pre-built binaries."
 msgstr "Las siguientes secciones explican cómo preparar el entorno del daemon de construcción. Véase también @ref{Substitutes}, para información sobre cómo permitir al daemon descargar binarios pre-construidos."
 
 #. type: cindex
-#: doc/guix.texi:904 doc/guix.texi:1327
+#: doc/guix.texi:969 doc/guix.texi:1426
 #, no-wrap
 msgid "build environment"
 msgstr "entorno de construcción"
 
 #. type: Plain text
-#: doc/guix.texi:912
+#: doc/guix.texi:977
 msgid "In a standard multi-user setup, Guix and its daemon---the @command{guix-daemon} program---are installed by the system administrator; @file{/gnu/store} is owned by @code{root} and @command{guix-daemon} runs as @code{root}.  Unprivileged users may use Guix tools to build packages or otherwise access the store, and the daemon will do it on their behalf, ensuring that the store is kept in a consistent state, and allowing built packages to be shared among users."
 msgstr "En una configuración multiusuaria estándar, Guix y su daemon---el programa @command{guix-daemon}---son instalados por la administradora del sistema; @file{/gnu/store} pertenece a @code{root} y @command{guix-daemon} se ejecuta como @code{root}. Usuarias sin privilegios pueden usar las herramientas de Guix para construir paquetes o acceder al almacén de otro modo, y el daemon lo hará en delegación suya, asegurando que el almacén permanece en un estado consistente, y permitiendo compartir entre usuarias los paquetes construidos."
 
 #. type: cindex
-#: doc/guix.texi:913
+#: doc/guix.texi:978
 #, no-wrap
 msgid "build users"
 msgstr "usuarias de construcción"
 
 #. type: Plain text
-#: doc/guix.texi:924
+#: doc/guix.texi:989
 msgid "When @command{guix-daemon} runs as @code{root}, you may not want package build processes themselves to run as @code{root} too, for obvious security reasons.  To avoid that, a special pool of @dfn{build users} should be created for use by build processes started by the daemon.  These build users need not have a shell and a home directory: they will just be used when the daemon drops @code{root} privileges in build processes.  Having several such users allows the daemon to launch distinct build processes under separate UIDs, which guarantees that they do not interfere with each other---an essential feature since builds are regarded as pure functions (@pxref{Introduction})."
-msgstr "Mientras que @command{guix-daemon} se ejecuta como @code{root}, puede que no desee que los procesos de construcción de paquetes se ejecuten como @code{root} también, por razones de seguridad obvias. Para evitarlo, una reserva especial de @dfn{usuarias de construcción} debe ser creada para ser usada por los procesos de construcción iniciados por el daemon. Estas usuarias de construcción no necesitan tener un shell ni un directorio home: simplemente serán usadas cuando el daemon se deshaga de los privilegios de @code{root} en los procesos de construcción. Tener varias de dichas usuarias permite al daemon lanzar distintos procesos de construcción bajo UID separados, lo que garantiza que no interferirán entre ellos---una característica esencial ya que las construcciones se caracterizan como funciones puras (@pxref{Introduction})."
+msgstr "Mientras que @command{guix-daemon} se ejecuta como @code{root}, puede que no desee que los procesos de construcción de paquetes se ejecuten como @code{root} también, por razones de seguridad obvias. Para evitarlo, una reserva especial de @dfn{usuarias de construcción} debe ser creada para ser usada por los procesos de construcción iniciados por el daemon. Estas usuarias de construcción no necesitan tener un intérprete ni un directorio home: simplemente serán usadas cuando el daemon se deshaga de los privilegios de @code{root} en los procesos de construcción. Tener varias de dichas usuarias permite al daemon lanzar distintos procesos de construcción bajo UID separados, lo que garantiza que no interferirán entre ellos---una característica esencial ya que las construcciones se caracterizan como funciones puras (@pxref{Introduction})."
 
 #. type: Plain text
-#: doc/guix.texi:927
+#: doc/guix.texi:992
 msgid "On a GNU/Linux system, a build user pool may be created like this (using Bash syntax and the @code{shadow} commands):"
 msgstr "En un sistema GNU/Linux, una reserva de usuarias de construcción puede ser creada así (usando la sintaxis de Bash y las órdenes de @code{shadow}):"
 
 #. type: example
-#: doc/guix.texi:939
+#: doc/guix.texi:1004
 #, no-wrap
 msgid ""
 "# groupadd --system guixbuild\n"
@@ -4544,123 +5107,149 @@ msgstr ""
 "  done\n"
 
 #. type: Plain text
-#: doc/guix.texi:949
+#: doc/guix.texi:1014
 msgid "The number of build users determines how many build jobs may run in parallel, as specified by the @option{--max-jobs} option (@pxref{Invoking guix-daemon, @option{--max-jobs}}).  To use @command{guix system vm} and related commands, you may need to add the build users to the @code{kvm} group so they can access @file{/dev/kvm}, using @code{-G guixbuild,kvm} instead of @code{-G guixbuild} (@pxref{Invoking guix system})."
 msgstr "El número de usuarias de construcción determina cuantos trabajos de construcción se pueden ejecutar en paralelo, especificado por la opción @option{--max-jobs} (@pxref{Invoking guix-daemon, @option{--max-jobs}}). Para usar @command{guix system vm} y las órdenes relacionadas, puede necesitar añadir las usuarias de construcción al grupo @code{kvm} para que puedan acceder a @file{/dev/kvm}, usando @code{-G guixbuild,kvm} en vez de @code{-G guixbuild} (@pxref{Invoking guix system})."
 
 #. type: Plain text
-#: doc/guix.texi:958
+#: doc/guix.texi:1023
 msgid "The @code{guix-daemon} program may then be run as @code{root} with the following command@footnote{If your machine uses the systemd init system, dropping the @file{@var{prefix}/lib/systemd/system/guix-daemon.service} file in @file{/etc/systemd/system} will ensure that @command{guix-daemon} is automatically started.  Similarly, if your machine uses the Upstart init system, drop the @file{@var{prefix}/lib/upstart/system/guix-daemon.conf} file in @file{/etc/init}.}:"
-msgstr "El programa @code{guix-daemon} puede ser ejecutado entonces como @code{root} con la siguiente orden@footnote{Si su máquina usa el sistema de inicio systemd, copiando el fichero @file{@var{prefix}/lib/systemd/system/guix-daemon.service} en @file{/etc/systemd/system} asegurará que @command{guix-daemon} se arranca automáticamente. De igual modo, si su máquina usa el sistema de inicio Upstart, copie el fichero @file{@var{prefix}/lib/upstart/system/guix-daemon.conf} en @file{/etc/init}.}:"
+msgstr "El programa @code{guix-daemon} puede ser ejecutado entonces como @code{root} con la siguiente orden@footnote{Si su máquina usa el sistema de inicio systemd, copiando el archivo @file{@var{prefix}/lib/systemd/system/guix-daemon.service} en @file{/etc/systemd/system} asegurará que @command{guix-daemon} se arranca automáticamente. De igual modo, si su máquina usa el sistema de inicio Upstart, copie el archivo @file{@var{prefix}/lib/upstart/system/guix-daemon.conf} en @file{/etc/init}.}:"
 
 #. type: example
-#: doc/guix.texi:961 doc/guix.texi:1320
+#: doc/guix.texi:1026 doc/guix.texi:1419
 #, no-wrap
 msgid "# guix-daemon --build-users-group=guixbuild\n"
 msgstr "# guix-daemon --build-users-group=guixbuild\n"
 
 #. type: cindex
-#: doc/guix.texi:963 doc/guix.texi:1325
+#: doc/guix.texi:1028 doc/guix.texi:1424
 #, no-wrap
 msgid "chroot"
 msgstr "chroot"
 
 # FUZZY
 #. type: Plain text
-#: doc/guix.texi:968
+#: doc/guix.texi:1033
 msgid "This way, the daemon starts build processes in a chroot, under one of the @code{guixbuilder} users.  On GNU/Linux, by default, the chroot environment contains nothing but:"
 msgstr "De este modo, el daemon inicia los procesos de construcción en un ``chroot'', bajo una de las usuarias @code{guixbuilder}. En GNU/Linux, por defecto, el entorno ``chroot'' contiene únicamente:"
 
 # FUZZY
 #. type: itemize
-#: doc/guix.texi:976
+#: doc/guix.texi:1041
 msgid "a minimal @code{/dev} directory, created mostly independently from the host @code{/dev}@footnote{``Mostly'', because while the set of files that appear in the chroot's @code{/dev} is fixed, most of these files can only be created if the host has them.};"
-msgstr "un directorio @code{/dev} mínimo, creado en su mayor parte independientemente del @code{/dev} del sistema anfitrión@footnote{``En su mayor parte'' porque, mientras el conjunto de ficheros que aparecen en @code{/dev} es fijo, la mayor parte de estos ficheros solo pueden ser creados si el sistema anfitrión los tiene.};"
+msgstr "un directorio @code{/dev} mínimo, creado en su mayor parte independientemente del @code{/dev} del sistema anfitrión@footnote{``En su mayor parte'' porque, mientras el conjunto de archivos que aparecen en @code{/dev} es fijo, la mayor parte de estos archivos solo pueden ser creados si el sistema anfitrión los tiene.};"
 
 #. type: itemize
-#: doc/guix.texi:980
+#: doc/guix.texi:1045
 msgid "the @code{/proc} directory; it only shows the processes of the container since a separate PID name space is used;"
 msgstr "el directorio @code{/proc}; únicamente muestra los procesos del contenedor ya que se usa un espacio de nombres de PID separado;"
 
 #. type: itemize
-#: doc/guix.texi:984
+#: doc/guix.texi:1049
 msgid "@file{/etc/passwd} with an entry for the current user and an entry for user @file{nobody};"
 msgstr "@file{/etc/passwd} con una entrada para la usuaria actual y una entrada para la usuaria @file{nobody};"
 
 #. type: itemize
-#: doc/guix.texi:987
+#: doc/guix.texi:1052
 msgid "@file{/etc/group} with an entry for the user's group;"
 msgstr "@file{/etc/groups} con una entrada para el grupo de la usuaria;"
 
 #. type: itemize
-#: doc/guix.texi:991
+#: doc/guix.texi:1056
 msgid "@file{/etc/hosts} with an entry that maps @code{localhost} to @code{127.0.0.1};"
 msgstr "@file{/etc/hosts} con una entrada que asocia @code{localhost} a @code{127.0.0.1};"
 
 #. type: itemize
-#: doc/guix.texi:994
+#: doc/guix.texi:1059
 msgid "a writable @file{/tmp} directory."
 msgstr "un directorio @file{/tmp} con permisos de escritura."
 
 #. type: Plain text
-#: doc/guix.texi:1003
-msgid "You can influence the directory where the daemon stores build trees @i{via} the @code{TMPDIR} environment variable.  However, the build tree within the chroot is always called @file{/tmp/guix-build-@var{name}.drv-0}, where @var{name} is the derivation name---e.g., @code{coreutils-8.24}.  This way, the value of @code{TMPDIR} does not leak inside build environments, which avoids discrepancies in cases where build processes capture the name of their build tree."
-msgstr "Puede influir en el directorio que el daemon utiliza para almacenar los árboles de construcción @i{via} la variable de entorno @code{TMPDIR}. No obstante, el árbol de construcción en el ``chroot'' siempre se llama @file{/tmp/guix-build-@var{nombre}.drv-0}, donde @var{nombre} es el nombre de la derivación---por ejemplo, @code{coreutils-8.24}. De este modo, el valor de @code{TMPDIR} no se escapa a los entornos de construcción, lo que evita discrepancias en caso de que los procesos de construcción capturen el nombre de su árbol de construcción."
+#: doc/guix.texi:1068
+msgid "You can influence the directory where the daemon stores build trees @i{via} the @env{TMPDIR} environment variable.  However, the build tree within the chroot is always called @file{/tmp/guix-build-@var{name}.drv-0}, where @var{name} is the derivation name---e.g., @code{coreutils-8.24}.  This way, the value of @env{TMPDIR} does not leak inside build environments, which avoids discrepancies in cases where build processes capture the name of their build tree."
+msgstr "Puede influir en el directorio que el daemon utiliza para almacenar los árboles de construcción a través de la variable de entorno @env{TMPDIR}. No obstante, el árbol de construcción en el ``chroot'' siempre se llama @file{/tmp/guix-build-@var{nombre}.drv-0}, donde @var{nombre} es el nombre de la derivación---por ejemplo, @code{coreutils-8.24}. De este modo, el valor de @env{TMPDIR} no se escapa a los entornos de construcción, lo que evita discrepancias en caso de que los procesos de construcción capturen el nombre de su árbol de construcción."
 
 #. type: vindex
-#: doc/guix.texi:1004 doc/guix.texi:3367
+#: doc/guix.texi:1069 doc/guix.texi:3808
 #, no-wrap
 msgid "http_proxy"
 msgstr "http_proxy"
 
+#. type: vindex
+#: doc/guix.texi:1070 doc/guix.texi:3809
+#, no-wrap
+msgid "https_proxy"
+msgstr "https_proxy"
+
 #. type: Plain text
-#: doc/guix.texi:1008
-msgid "The daemon also honors the @code{http_proxy} environment variable for HTTP downloads it performs, be it for fixed-output derivations (@pxref{Derivations}) or for substitutes (@pxref{Substitutes})."
-msgstr "El daemon también respeta la variable de entorno @code{http_proxy} para las descargas HTTP que realiza, sea para derivaciones de salida fija (@pxref{Derivations}) o para sustituciones (@pxref{Substitutes})."
+#: doc/guix.texi:1075
+msgid "The daemon also honors the @env{http_proxy} and @env{https_proxy} environment variables for HTTP and HTTPS downloads it performs, be it for fixed-output derivations (@pxref{Derivations}) or for substitutes (@pxref{Substitutes})."
+msgstr "El daemon también respeta la variable de entorno @env{http_proxy} y @env{https_proxy} para las descargas HTTP y HTTPS que realiza, ya sea para derivaciones de salida fija (@pxref{Derivations}) o para sustituciones (@pxref{Substitutes})."
 
 #. type: Plain text
-#: doc/guix.texi:1016
-msgid "If you are installing Guix as an unprivileged user, it is still possible to run @command{guix-daemon} provided you pass @code{--disable-chroot}.  However, build processes will not be isolated from one another, and not from the rest of the system.  Thus, build processes may interfere with each other, and may access programs, libraries, and other files available on the system---making it much harder to view them as @emph{pure} functions."
-msgstr "Si está instalando Guix como una usuaria sin privilegios, es posible todavía ejecutar @command{guix-daemon} siempre que pase @code{--disable-chroot}. No obstante, los procesos de construcción no estarán aislados entre sí ni del resto del sistema. Por tanto, los procesos de construcción pueden interferir entre ellos y pueden acceder a programas, bibliotecas y otros ficheros disponibles en el sistema---haciendo mucho más difícil verlos como funciones @emph{puras}."
+#: doc/guix.texi:1083
+msgid "If you are installing Guix as an unprivileged user, it is still possible to run @command{guix-daemon} provided you pass @option{--disable-chroot}.  However, build processes will not be isolated from one another, and not from the rest of the system.  Thus, build processes may interfere with each other, and may access programs, libraries, and other files available on the system---making it much harder to view them as @emph{pure} functions."
+msgstr "Si está instalando Guix como una usuaria sin privilegios, es posible todavía ejecutar @command{guix-daemon} siempre que proporcione el parámetro @option{--disable-chroot}. No obstante, los procesos de construcción no estarán aislados entre sí ni del resto del sistema. Por tanto, los procesos de construcción pueden interferir entre ellos y pueden acceder a programas, bibliotecas y otros archivos disponibles en el sistema---haciendo mucho más difícil verlos como funciones @emph{puras}."
 
 # FUZZY
 #. type: subsection
-#: doc/guix.texi:1019
+#: doc/guix.texi:1086
 #, no-wrap
 msgid "Using the Offload Facility"
-msgstr "Uso de la facilidad de descarga de trabajo"
+msgstr "Uso de la facilidad de delegación de trabajo"
 
 #. type: cindex
-#: doc/guix.texi:1021 doc/guix.texi:1383
+#: doc/guix.texi:1088 doc/guix.texi:1485
 #, no-wrap
 msgid "offloading"
-msgstr "delegando trabajo"
+msgstr "delegación de trabajo"
 
 # FUZZY
 #. type: cindex
-#: doc/guix.texi:1022
+#: doc/guix.texi:1089
 #, no-wrap
 msgid "build hook"
 msgstr "procedimiento de extensión de construcción"
 
 # FUZZY
 #. type: Plain text
-#: doc/guix.texi:1036
-msgid "When desired, the build daemon can @dfn{offload} derivation builds to other machines running Guix, using the @code{offload} @dfn{build hook}@footnote{This feature is available only when @uref{https://github.com/artyom-poptsov/guile-ssh, Guile-SSH} is present.}.  When that feature is enabled, a list of user-specified build machines is read from @file{/etc/guix/machines.scm}; every time a build is requested, for instance via @code{guix build}, the daemon attempts to offload it to one of the machines that satisfy the constraints of the derivation, in particular its system type---e.g., @file{x86_64-linux}.  Missing prerequisites for the build are copied over SSH to the target machine, which then proceeds with the build; upon success the output(s) of the build are copied back to the initial machine."
-msgstr "Cuando así se desee, el daemon de construcción puede @dfn{delegar} construcciones de derivación a otras máquinas ejecutando Guix, usando el @dfn{procedimiento de extensión de construcción} @code{offload}@footnote{Esta característica está únicamente disponible cuando @uref{https://github.com/artyom-potsov/guile-ssh, Guile-SSH} está presente.}. Cuando dicha característica es activada, una lista de máquinas de construcción especificadas por la usuaria es leída de @file{/etc/guix/machines.scm}; cada vez que se solicita una construcción, por ejemplo via @code{guix build}, el daemon intenta delegarla a una de las máquinas que satisfaga las condiciones de la derivación, en particular su tipo de sistema---por ejemplo, @file{x86_64-linux}. Los prerrequisitos restantes para la construcción son copiados por SSH a la máquina objetivo, la cual procede con la construcción; con un resultado satisfactorio la(s) salida(s) de la construcción son copiadas de vuelta a la máquina inicial."
+#: doc/guix.texi:1108
+msgid "When desired, the build daemon can @dfn{offload} derivation builds to other machines running Guix, using the @code{offload} @dfn{build hook}@footnote{This feature is available only when @uref{https://github.com/artyom-poptsov/guile-ssh, Guile-SSH} is present.}.  When that feature is enabled, a list of user-specified build machines is read from @file{/etc/guix/machines.scm}; every time a build is requested, for instance via @code{guix build}, the daemon attempts to offload it to one of the machines that satisfy the constraints of the derivation, in particular its system types---e.g., @code{x86_64-linux}.  A single machine can have multiple system types, either because its architecture natively supports it, via emulation (@pxref{transparent-emulation-qemu, Transparent Emulation with QEMU}), or both.  Missing prerequisites for the build are copied over SSH to the target machine, which then proceeds with the build; upon success the output(s) of the build are copied back to the initial machine.  The offload facility comes with a basic scheduler that attempts to select the best machine.  The best machine is chosen among the available machines based on criteria such as:"
+msgstr "Cuando así se desee, el daemon de construcción puede @dfn{delegar} construcciones de derivación a otras máquinas ejecutando Guix, usando el @dfn{procedimiento de extensión de construcción} @code{offload}@footnote{Esta característica está únicamente disponible cuando @uref{https://github.com/artyom-potsov/guile-ssh, Guile-SSH} está presente.}. Cuando dicha característica es activada se lee una lista de máquinas de construcción especificadas por la usuaria desde @file{/etc/guix/machines.scm}; cada vez que se solicita una construcción, por ejemplo via @code{guix build}, el daemon intenta su delegación a una de las máquinas que satisfaga las condiciones de la derivación, en particular su tipo de sistema---por ejemplo, @code{x86_64-linux}. Una única máquina puede usarse para múltiples tipos de sistema, ya sea porque los implemente su arquitectura de manera nativa, a través de emulación (@pxref{transparent-emulation-qemu, Transparent Emulation with QEMU}), o ambas. Los prerrequisitos restantes para la construcción se copian a través de SSH a la máquina seleccionada, la cual procede con la construcción; con un resultado satisfactorio la o las salidas de la construcción son copiadas de vuelta a la máquina inicial. La facilidad de descarga de trabajo incorpora una planificación básica que intenta seleccionar la mejor máquina, la cual es seleccionada entre las máquinas disponibles en base a criterios como los siguientes:"
+
+#. type: enumerate
+#: doc/guix.texi:1114
+msgid "The availability of a build slot.  A build machine can have as many build slots (connections) as the value of the @code{parallel-builds} field of its @code{build-machine} object."
+msgstr "La disponibilidad de un puesto de construcción. Una máquina de construcción tiene el número de puestos de construcción (conexiones) que indique el valor de @code{parallel-builds} en su objeto @code{build-machine}."
+
+#. type: enumerate
+#: doc/guix.texi:1118
+msgid "Its relative speed, as defined via the @code{speed} field of its @code{build-machine} object."
+msgstr "Su velocidad relativa, a través del campo @code{speed} de su objeto @code{build-machine}."
+
+#. type: enumerate
+#: doc/guix.texi:1123
+msgid "Its load.  The normalized machine load must be lower than a threshold value, configurable via the @code{overload-threshold} field of its @code{build-machine} object."
+msgstr "Su carga de trabajo. El valor normalizado de carga debe ser menor aun valor límite, configurable a través del campo @code{overload-threshold} de su objeto @code{build-machine}."
+
+#. type: enumerate
+#: doc/guix.texi:1126
+msgid "Disk space availability.  More than a 100 MiB must be available."
+msgstr "El espacio disponible en el disco. Debe haber más de 100 MiB disponibles."
 
 #. type: Plain text
-#: doc/guix.texi:1038
+#: doc/guix.texi:1129
 msgid "The @file{/etc/guix/machines.scm} file typically looks like this:"
-msgstr "El fichero @file{/etc/guix/machines.scm} normalmente tiene un contenido de este estilo:"
+msgstr "El archivo @file{/etc/guix/machines.scm} normalmente tiene un contenido de este estilo:"
 
 #. type: lisp
-#: doc/guix.texi:1046
+#: doc/guix.texi:1137
 #, no-wrap
 msgid ""
 "(list (build-machine\n"
 "        (name \"eightysix.example.org\")\n"
-"        (system \"x86_64-linux\")\n"
+"        (systems (list \"x86_64-linux\" \"i686-linux\"))\n"
 "        (host-key \"ssh-ed25519 AAAAC3Nza@dots{}\")\n"
 "        (user \"bob\")\n"
 "        (speed 2.))     ;incredibly fast!\n"
@@ -4668,19 +5257,19 @@ msgid ""
 msgstr ""
 "(list (build-machine\n"
 "        (name \"ochentayseis.example.org\")\n"
-"        (system \"x86_64-linux\")\n"
+"        (systems (list \"x86_64-linux\" \"i686-linux\"))\n"
 "        (host-key \"ssh-ed25519 AAAAC3Nza@dots{}\")\n"
 "        (user \"rober\")\n"
 "        (speed 2.))     ;¡increíblemente rápida!\n"
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:1055
+#: doc/guix.texi:1146
 #, no-wrap
 msgid ""
 "      (build-machine\n"
-"        (name \"meeps.example.org\")\n"
-"        (system \"mips64el-linux\")\n"
+"        (name \"armeight.example.org\")\n"
+"        (systems (list \"aarch64-linux\"))\n"
 "        (host-key \"ssh-rsa AAAAB3Nza@dots{}\")\n"
 "        (user \"alice\")\n"
 "        (private-key\n"
@@ -4688,8 +5277,8 @@ msgid ""
 "                        \"/.ssh/identity-for-guix\"))))\n"
 msgstr ""
 "      (build-machine\n"
-"        (name \"mimips.example.org\")\n"
-"        (system \"mips64el-linux\")\n"
+"        (name \"armocho.example.org\")\n"
+"        (systems (list \"aarch64-linux\"))\n"
 "        (host-key \"ssh-rsa AAAAB3Nza@dots{}\")\n"
 "        (user \"alicia\")\n"
 "        (private-key\n"
@@ -4697,93 +5286,93 @@ msgstr ""
 "                        \"/.ssh/identidad-para-guix\"))))\n"
 
 #. type: Plain text
-#: doc/guix.texi:1061
-msgid "In the example above we specify a list of two build machines, one for the @code{x86_64} architecture and one for the @code{mips64el} architecture."
-msgstr "En el ejemplo anterior se especifica una lista de dos máquinas de construcción, una para la arquitectura @code{x86_64} y otra para la arquitectura @code{mips64el}."
+#: doc/guix.texi:1152
+msgid "In the example above we specify a list of two build machines, one for the @code{x86_64} and @code{i686} architectures and one for the @code{aarch64} architecture."
+msgstr "En el ejemplo anterior se especifica una lista de dos máquinas de construcción, una para las arquitecturas @code{x86_64} y @code{i686}, y otra para la arquitectura @code{aarch64}."
 
 #. type: Plain text
-#: doc/guix.texi:1070
+#: doc/guix.texi:1161
 msgid "In fact, this file is---not surprisingly!---a Scheme file that is evaluated when the @code{offload} hook is started.  Its return value must be a list of @code{build-machine} objects.  While this example shows a fixed list of build machines, one could imagine, say, using DNS-SD to return a list of potential build machines discovered in the local network (@pxref{Introduction, Guile-Avahi,, guile-avahi, Using Avahi in Guile Scheme Programs}).  The @code{build-machine} data type is detailed below."
-msgstr "De hecho, este fichero es---¡sin sorpresa ninguna!---un fichero Scheme que se evalúa cuando el procedimiento de extensión @code{offload} se inicia. El valor que devuelve debe ser una lista de objetos @code{build-machine}. Mientras que este ejemplo muestra una lista fija de máquinas de construcción, una puede imaginarse, digamos, el uso de DNS-SD para devolver una lista de máquinas de construcción potenciales descubierta en la red local (@pxref{Introduction, Guile-Avahi,, guile-avahi, Using Avahi in Guile Scheme Programs}). El tipo de datos @code{build-machine} se detalla a continuación."
+msgstr "De hecho, este archivo es---¡sin sorpresa ninguna!---un archivo Scheme que se evalúa cuando el procedimiento de extensión @code{offload} se inicia. El valor que devuelve debe ser una lista de objetos @code{build-machine}. Mientras que este ejemplo muestra una lista fija de máquinas de construcción, una puede imaginarse, digamos, el uso de DNS-SD para devolver una lista de máquinas de construcción potenciales descubierta en la red local (@pxref{Introduction, Guile-Avahi,, guile-avahi, Using Avahi in Guile Scheme Programs}). El tipo de datos @code{build-machine} se detalla a continuación."
 
 #. type: deftp
-#: doc/guix.texi:1071
+#: doc/guix.texi:1162
 #, no-wrap
 msgid "{Data Type} build-machine"
 msgstr "{Tipo de datos} build-machine"
 
 #. type: deftp
-#: doc/guix.texi:1074
+#: doc/guix.texi:1165
 msgid "This data type represents build machines to which the daemon may offload builds.  The important fields are:"
 msgstr "Este tipo de datos representa las máquinas de construcción a las cuales el daemon puede delegar construcciones. Los campos importantes son:"
 
 #. type: item
-#: doc/guix.texi:1077 doc/guix.texi:5712 doc/guix.texi:11761
-#: doc/guix.texi:11843 doc/guix.texi:12073 doc/guix.texi:13868
-#: doc/guix.texi:18886 doc/guix.texi:19471 doc/guix.texi:20082
-#: doc/guix.texi:20412 doc/guix.texi:20453 doc/guix.texi:25674
-#: doc/guix.texi:25691 doc/guix.texi:26085 doc/guix.texi:27665
-#: doc/guix.texi:27923
+#: doc/guix.texi:1168 doc/guix.texi:6497 doc/guix.texi:13888
+#: doc/guix.texi:13982 doc/guix.texi:14223 doc/guix.texi:16129
+#: doc/guix.texi:21576 doc/guix.texi:22161 doc/guix.texi:22773
+#: doc/guix.texi:23125 doc/guix.texi:23166 doc/guix.texi:27232
+#: doc/guix.texi:27252 doc/guix.texi:29621 doc/guix.texi:29638
+#: doc/guix.texi:30127 doc/guix.texi:31831 doc/guix.texi:32107
 #, no-wrap
 msgid "name"
 msgstr "name"
 
 #. type: table
-#: doc/guix.texi:1079
+#: doc/guix.texi:1170
 msgid "The host name of the remote machine."
 msgstr "El nombre de red de la máquina remota."
 
-#. type: code{#1}
-#: doc/guix.texi:1080 doc/guix.texi:27171
+#. type: item
+#: doc/guix.texi:1171
 #, no-wrap
-msgid "system"
-msgstr "system"
+msgid "systems"
+msgstr "systems"
 
 #. type: table
-#: doc/guix.texi:1082
-msgid "The system type of the remote machine---e.g., @code{\"x86_64-linux\"}."
-msgstr "El sistema de la máquina remota---por ejemplo, @code{\"x86_64-linux\"}."
+#: doc/guix.texi:1174
+msgid "The system types the remote machine supports---e.g., @code{(list \"x86_64-linux\" \"i686-linux\")}."
+msgstr "Los tipos de sistema implementados por la máquina remota---por ejemplo, @code{(list \"x86_64-linux\" \"i686-linux\")}."
 
 #. type: code{#1}
-#: doc/guix.texi:1083 doc/guix.texi:13878
+#: doc/guix.texi:1175 doc/guix.texi:16139
 #, no-wrap
 msgid "user"
 msgstr "user"
 
 #. type: table
-#: doc/guix.texi:1087
+#: doc/guix.texi:1179
 msgid "The user account to use when connecting to the remote machine over SSH.  Note that the SSH key pair must @emph{not} be passphrase-protected, to allow non-interactive logins."
 msgstr "La cuenta de usuaria usada para la conexión a la máquina remota por SSH. Tenga en cuenta que el par de claves SSH @emph{no} debe estar protegido por contraseña, para permitir ingresos al sistema no interactivos."
 
 #. type: item
-#: doc/guix.texi:1088
+#: doc/guix.texi:1180
 #, no-wrap
 msgid "host-key"
 msgstr "host-key"
 
 #. type: table
-#: doc/guix.texi:1092
+#: doc/guix.texi:1184
 msgid "This must be the machine's SSH @dfn{public host key} in OpenSSH format.  This is used to authenticate the machine when we connect to it.  It is a long string that looks like this:"
 msgstr "Este campo debe contener la @dfn{clave pública de la máquina} de SSH en formato OpenSSH. Es usado para autentificar la máquina cuando nos conectamos a ella. Es una cadena larga más o menos así:"
 
 #. type: example
-#: doc/guix.texi:1095
+#: doc/guix.texi:1187
 #, no-wrap
 msgid "ssh-ed25519 AAAAC3NzaC@dots{}mde+UhL hint@@example.org\n"
 msgstr "ssh-ed25519 AAAAC3NzaC@dots{}mde+UhL recordatorio@@example.org\n"
 
 #. type: table
-#: doc/guix.texi:1100
+#: doc/guix.texi:1192
 msgid "If the machine is running the OpenSSH daemon, @command{sshd}, the host key can be found in a file such as @file{/etc/ssh/ssh_host_ed25519_key.pub}."
-msgstr "Si la máquina está ejecutando el daemon OpenSSH, @command{sshd}, la clave pública de la máquina puede encontrarse en un fichero como @file{/etc/ssh/ssh_host_ed25519_key.pub}."
+msgstr "Si la máquina está ejecutando el daemon OpenSSH, @command{sshd}, la clave pública de la máquina puede encontrarse en un archivo como @file{/etc/ssh/ssh_host_ed25519_key.pub}."
 
 #. type: table
-#: doc/guix.texi:1105
+#: doc/guix.texi:1197
 msgid "If the machine is running the SSH daemon of GNU@tie{}lsh, @command{lshd}, the host key is in @file{/etc/lsh/host-key.pub} or a similar file.  It can be converted to the OpenSSH format using @command{lsh-export-key} (@pxref{Converting keys,,, lsh, LSH Manual}):"
-msgstr "Si la máquina está ejecutando el daemon SSH GNU@tie{}lsh, @command{lshd}, la clave de la máquina está en @file{/etc/lsh/host-key.pub} o un fichero similar. Puede convertirse a formato OpenSSH usando @command{lsh-export-key} (@pxref{Converting keys,,, lsh, LSH Manual}):"
+msgstr "Si la máquina está ejecutando el daemon SSH GNU@tie{}lsh, @command{lshd}, la clave de la máquina está en @file{/etc/lsh/host-key.pub} o un archivo similar. Puede convertirse a formato OpenSSH usando @command{lsh-export-key} (@pxref{Converting keys,,, lsh, LSH Manual}):"
 
 #. type: example
-#: doc/guix.texi:1109
+#: doc/guix.texi:1201
 #, no-wrap
 msgid ""
 "$ lsh-export-key --openssh < /etc/lsh/host-key.pub\n"
@@ -4793,848 +5382,864 @@ msgstr ""
 "ssh-rsa AAAAB3NzaC1yc2EAAAAEOp8FoQAAAQEAs1eB46LV@dots{}\n"
 
 #. type: deftp
-#: doc/guix.texi:1114
+#: doc/guix.texi:1206
 msgid "A number of optional fields may be specified:"
 msgstr "Ciertos número de campos opcionales pueden ser especificados:"
 
 #. type: item
-#: doc/guix.texi:1117 doc/guix.texi:27177
+#: doc/guix.texi:1209 doc/guix.texi:31331
 #, no-wrap
 msgid "@code{port} (default: @code{22})"
 msgstr "@code{port} (predeterminado: @code{22})"
 
 #. type: table
-#: doc/guix.texi:1119
+#: doc/guix.texi:1211
 msgid "Port number of SSH server on the machine."
 msgstr "Número de puerto del servidor SSH en la máquina."
 
 #. type: item
-#: doc/guix.texi:1120
+#: doc/guix.texi:1212
 #, no-wrap
 msgid "@code{private-key} (default: @file{~root/.ssh/id_rsa})"
 msgstr "@code{private-key} (predeterminada: @file{~root/.ssh/id_rsa})"
 
 #. type: table
-#: doc/guix.texi:1123
+#: doc/guix.texi:1215
 msgid "The SSH private key file to use when connecting to the machine, in OpenSSH format.  This key must not be protected with a passphrase."
-msgstr "El fichero de clave privada SSH usado para conectarse a la máquina, en formato OpenSSH. Esta clave no debe estar protegida con una contraseña."
+msgstr "El archivo de clave privada SSH usado para conectarse a la máquina, en formato OpenSSH. Esta clave no debe estar protegida con una contraseña."
 
 #. type: table
-#: doc/guix.texi:1126
+#: doc/guix.texi:1218
 msgid "Note that the default value is the private key @emph{of the root account}.  Make sure it exists if you use the default."
 msgstr "Tenga en cuenta que el valor predeterminado es la clave privada @emph{de la cuenta de root}. Asegúrese de que existe si usa el valor predeterminado."
 
 #. type: item
-#: doc/guix.texi:1127
+#: doc/guix.texi:1219
 #, no-wrap
 msgid "@code{compression} (default: @code{\"zlib@@openssh.com,zlib\"})"
 msgstr "@code{compression} (predeterminado: @code{\"zlib@@openssh.com,zlib\"})"
 
 #. type: itemx
-#: doc/guix.texi:1128
+#: doc/guix.texi:1220
 #, no-wrap
 msgid "@code{compression-level} (default: @code{3})"
 msgstr "@code{compression-level} (predeterminado: @code{3})"
 
 #. type: table
-#: doc/guix.texi:1130
+#: doc/guix.texi:1222
 msgid "The SSH-level compression methods and compression level requested."
 msgstr "Los métodos de compresión y nivel de compresión a nivel SSH solicitados."
 
 #. type: table
-#: doc/guix.texi:1133
+#: doc/guix.texi:1225
 msgid "Note that offloading relies on SSH compression to reduce bandwidth usage when transferring files to and from build machines."
-msgstr "Tenga en cuenta que la delegación de carga depende de la compresión SSH para reducir el ancho de banda usado cuando se transfieren ficheros hacia y desde máquinas de construcción."
+msgstr "Tenga en cuenta que la delegación de carga depende de la compresión SSH para reducir el ancho de banda usado cuando se transfieren archivos hacia y desde máquinas de construcción."
 
 #. type: item
-#: doc/guix.texi:1134
+#: doc/guix.texi:1226
 #, no-wrap
 msgid "@code{daemon-socket} (default: @code{\"/var/guix/daemon-socket/socket\"})"
 msgstr "@code{daemon-socket} (predeterminado: @code{\"/var/guix/daemon-socket/socket\"})"
 
 # TODO (MAAV): Socket parece mejor que puerto...
 #. type: table
-#: doc/guix.texi:1137
+#: doc/guix.texi:1229
 msgid "File name of the Unix-domain socket @command{guix-daemon} is listening to on that machine."
-msgstr "Nombre de fichero del socket de dominio Unix en el que @command{guix-daemon} escucha en esa máquina."
+msgstr "Nombre de archivo del socket de dominio Unix en el que @command{guix-daemon} escucha en esa máquina."
 
 #. type: item
-#: doc/guix.texi:1138
+#: doc/guix.texi:1230
+#, no-wrap
+msgid "@code{overload-threshold} (default: @code{0.6})"
+msgstr "@code{overload-threshold} (predeterminado: @code{0.6})"
+
+#. type: table
+#: doc/guix.texi:1236
+msgid "The load threshold above which a potential offload machine is disregarded by the offload scheduler.  The value roughly translates to the total processor usage of the build machine, ranging from 0.0 (0%) to 1.0 (100%).  It can also be disabled by setting @code{overload-threshold} to @code{#f}."
+msgstr "El límite superior de carga, el cual se usa en la planificación de delegación de tareas para descartar potenciales máquinas si superan dicho límite. Dicho valor más o menos representa el uso del procesador de la máquina, con un rango de 0.0 (0%) a 1.0 (100%). También se puede desactivar si se proporciona el valor @code{#f} en @code{overload-threshold}."
+
+#. type: item
+#: doc/guix.texi:1237
 #, no-wrap
 msgid "@code{parallel-builds} (default: @code{1})"
 msgstr "@code{parallel-builds} (predeterminadas: @code{1})"
 
 #. type: table
-#: doc/guix.texi:1140
+#: doc/guix.texi:1239
 msgid "The number of builds that may run in parallel on the machine."
 msgstr "El número de construcciones que pueden ejecutarse en paralelo en la máquina."
 
 #. type: item
-#: doc/guix.texi:1141
+#: doc/guix.texi:1240
 #, no-wrap
 msgid "@code{speed} (default: @code{1.0})"
 msgstr "@code{speed} (predeterminado: @code{1.0})"
 
 #. type: table
-#: doc/guix.texi:1144
+#: doc/guix.texi:1243
 msgid "A ``relative speed factor''.  The offload scheduler will tend to prefer machines with a higher speed factor."
 msgstr "Un ``factor de velocidad relativa''. El planificador de delegaciones tenderá a preferir máquinas con un factor de velocidad mayor."
 
 #. type: item
-#: doc/guix.texi:1145
+#: doc/guix.texi:1244
 #, no-wrap
 msgid "@code{features} (default: @code{'()})"
 msgstr "@code{features} (predeterminadas: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:1150
+#: doc/guix.texi:1249
 msgid "A list of strings denoting specific features supported by the machine.  An example is @code{\"kvm\"} for machines that have the KVM Linux modules and corresponding hardware support.  Derivations can request features by name, and they will be scheduled on matching build machines."
 msgstr "Una lista de cadenas denotando las características específicas permitidas por la máquina. Un ejemplo es @code{\"kvm\"} para máquinas que tienen los módulos KVM de Linux y las correspondientes características hardware. Las derivaciones pueden solicitar las características por nombre, y entonces se planificarán en las máquinas adecuadas."
 
 #. type: Plain text
-#: doc/guix.texi:1156
+#: doc/guix.texi:1255
 msgid "The @command{guix} command must be in the search path on the build machines.  You can check whether this is the case by running:"
 msgstr "El ejecutable @code{guix} debe estar en la ruta de búsqueda de las máquinas de construcción. Puede comprobar si es el caso ejecutando:"
 
 #. type: example
-#: doc/guix.texi:1159
+#: doc/guix.texi:1258
 #, no-wrap
 msgid "ssh build-machine guix repl --version\n"
 msgstr "ssh build-machine guix repl --version\n"
 
 #. type: Plain text
-#: doc/guix.texi:1166
+#: doc/guix.texi:1265
 msgid "There is one last thing to do once @file{machines.scm} is in place.  As explained above, when offloading, files are transferred back and forth between the machine stores.  For this to work, you first need to generate a key pair on each machine to allow the daemon to export signed archives of files from the store (@pxref{Invoking guix archive}):"
-msgstr "Hay una última cosa por hacer una vez @file{machines.scm} está en su lugar. Como se ha explicado anteriormente, cuando se delega, los ficheros se transfieren en ambas direcciones entre los almacenes de las máquinas. Para que esto funcione, primero debe generar un par de claves en cada máquina para permitir al daemon exportar los archivos firmados de ficheros en el almacén (@pxref{Invoking guix archive}):"
+msgstr "Hay una última cosa por hacer una vez @file{machines.scm} está en su lugar. Como se ha explicado anteriormente, cuando se delega, los archivos se transfieren en ambas direcciones entre los almacenes de las máquinas. Para que esto funcione, primero debe generar un par de claves en cada máquina para permitir al daemon exportar los archivos firmados de archivos en el almacén (@pxref{Invoking guix archive}):"
 
 #. type: example
-#: doc/guix.texi:1169 doc/guix.texi:27105
+#: doc/guix.texi:1268 doc/guix.texi:31259
 #, no-wrap
 msgid "# guix archive --generate-key\n"
 msgstr "# guix archive --generate-key\n"
 
 #. type: Plain text
-#: doc/guix.texi:1174
+#: doc/guix.texi:1273
 msgid "Each build machine must authorize the key of the master machine so that it accepts store items it receives from the master:"
 msgstr "Cada máquina de construcción debe autorizar a la clave de la máquina maestra para que acepte elementos del almacén que reciba de la maestra:"
 
 #. type: example
-#: doc/guix.texi:1177
+#: doc/guix.texi:1276
 #, no-wrap
 msgid "# guix archive --authorize < master-public-key.txt\n"
 msgstr "# guix archive --authorize < clave-publica-maestra.txt\n"
 
 #. type: Plain text
-#: doc/guix.texi:1181
+#: doc/guix.texi:1280
 msgid "Likewise, the master machine must authorize the key of each build machine."
-msgstr "Del mismo podo, la máquina maestra debe autorizar la clave de cada máquina de construcción."
+msgstr "La máquina maestra debe autorizar la clave de cada máquina de construcción de la misma manera."
 
 #. type: Plain text
-#: doc/guix.texi:1187
+#: doc/guix.texi:1286
 msgid "All the fuss with keys is here to express pairwise mutual trust relations between the master and the build machines.  Concretely, when the master receives files from a build machine (and @i{vice versa}), its build daemon can make sure they are genuine, have not been tampered with, and that they are signed by an authorized key."
-msgstr "Todo este lío con claves está ahí para expresar las mutuas relaciones de confianza entre pares de la máquina maestra y las máquinas de construcción. Concretamente, cuando la maestra recibe ficheros de una máquina de construcción (y @i{vice versa}), su daemon de construcción puede asegurarse de que son genuinos, no han sido modificados, y que están firmados por una clave autorizada."
+msgstr "Todo este lío con claves está ahí para expresar las mutuas relaciones de confianza entre pares de la máquina maestra y las máquinas de construcción. Concretamente, cuando la maestra recibe archivos de una máquina de construcción (y @i{vice versa}), su daemon de construcción puede asegurarse de que son genuinos, no han sido modificados, y que están firmados por una clave autorizada."
 
 #. type: cindex
-#: doc/guix.texi:1188
+#: doc/guix.texi:1287
 #, no-wrap
 msgid "offload test"
 msgstr "prueba de delegación"
 
 #. type: Plain text
-#: doc/guix.texi:1191
+#: doc/guix.texi:1290
 msgid "To test whether your setup is operational, run this command on the master node:"
 msgstr "Para comprobar si su configuración es operacional, ejecute esta orden en el nodo maestro:"
 
 #. type: example
-#: doc/guix.texi:1194
+#: doc/guix.texi:1293
 #, no-wrap
 msgid "# guix offload test\n"
 msgstr "# guix offload test\n"
 
 #. type: Plain text
-#: doc/guix.texi:1200
+#: doc/guix.texi:1299
 msgid "This will attempt to connect to each of the build machines specified in @file{/etc/guix/machines.scm}, make sure Guile and the Guix modules are available on each machine, attempt to export to the machine and import from it, and report any error in the process."
 msgstr "Esto intentará conectar con cada una de las máquinas de construcción especificadas en @file{/etc/guix/machines.scm}, comprobará que GUile y los módulos Guix están disponibles en cada máquina, intentará exportar a la máquina e importar de ella, e informará de cualquier error en el proceso."
 
 #. type: Plain text
-#: doc/guix.texi:1203
+#: doc/guix.texi:1302
 msgid "If you want to test a different machine file, just specify it on the command line:"
-msgstr "Si quiere probar un fichero de máquinas diferente, simplemente lo debe especificar en la línea de órdenes:"
+msgstr "Si quiere probar un archivo de máquinas diferente, simplemente lo debe especificar en la línea de órdenes:"
 
 #. type: example
-#: doc/guix.texi:1206
+#: doc/guix.texi:1305
 #, no-wrap
 msgid "# guix offload test machines-qualif.scm\n"
 msgstr "# guix offload test otras-maquinas.scm\n"
 
 #. type: Plain text
-#: doc/guix.texi:1210
+#: doc/guix.texi:1309
 msgid "Last, you can test the subset of the machines whose name matches a regular expression like this:"
 msgstr "Por último, puede probar un subconjunto de máquinas cuyos nombres coincidan con una expresión regular así:"
 
 #. type: example
-#: doc/guix.texi:1213
+#: doc/guix.texi:1312
 #, no-wrap
 msgid "# guix offload test machines.scm '\\.gnu\\.org$'\n"
 msgstr "# guix offload test maquinas.scm '\\.gnu\\.org$'\n"
 
 #. type: cindex
-#: doc/guix.texi:1215
+#: doc/guix.texi:1314
 #, no-wrap
 msgid "offload status"
 msgstr "estado de delegación"
 
 #. type: Plain text
-#: doc/guix.texi:1218
+#: doc/guix.texi:1317
 msgid "To display the current load of all build hosts, run this command on the main node:"
 msgstr "Para mostrar la carga actual de todas las máquinas de construcción, ejecute esta orden en el nodo principal:"
 
 #. type: example
-#: doc/guix.texi:1221
+#: doc/guix.texi:1320
 #, no-wrap
 msgid "# guix offload status\n"
 msgstr "# guix offload status\n"
 
 #. type: cindex
-#: doc/guix.texi:1227
+#: doc/guix.texi:1326
 #, no-wrap
 msgid "SELinux, daemon policy"
 msgstr "SELinux, política del daemon"
 
 # FUZZY
 #. type: cindex
-#: doc/guix.texi:1228
+#: doc/guix.texi:1327
 #, no-wrap
 msgid "mandatory access control, SELinux"
 msgstr "control de acceso mandatorio, SELinux"
 
 #. type: cindex
-#: doc/guix.texi:1229
+#: doc/guix.texi:1328
 #, no-wrap
 msgid "security, guix-daemon"
 msgstr "seguridad, guix-daemon"
 
 #. type: Plain text
-#: doc/guix.texi:1235
+#: doc/guix.texi:1334
 msgid "Guix includes an SELinux policy file at @file{etc/guix-daemon.cil} that can be installed on a system where SELinux is enabled, in order to label Guix files and to specify the expected behavior of the daemon.  Since Guix System does not provide an SELinux base policy, the daemon policy cannot be used on Guix System."
-msgstr "Guix incluye un fichero de política SELinux en @file{etc/guix-daemon.cil} que puede ser instalado en un sistema donde SELinux está activado, para etiquetar los ficheros Guix y especificar el comportamiento esperado del daemon. Ya que el sistema Guix no proporciona una política base de SELinux, la política del daemon no puede usarse en el sistema Guix."
+msgstr "Guix incluye un archivo de política SELinux en @file{etc/guix-daemon.cil} que puede ser instalado en un sistema donde SELinux está activado, para etiquetar los archivos Guix y especificar el comportamiento esperado del daemon. Ya que el sistema Guix no proporciona una política base de SELinux, la política del daemon no puede usarse en el sistema Guix."
 
 #. type: subsubsection
-#: doc/guix.texi:1236
+#: doc/guix.texi:1335
 #, no-wrap
 msgid "Installing the SELinux policy"
 msgstr "Instalación de la política de SELinux"
 
 #. type: cindex
-#: doc/guix.texi:1237
+#: doc/guix.texi:1336
 #, no-wrap
 msgid "SELinux, policy installation"
 msgstr "SELinux, instalación de la política"
 
 #. type: Plain text
-#: doc/guix.texi:1239
+#: doc/guix.texi:1338
 msgid "To install the policy run this command as root:"
 msgstr "Para instalar la política ejecute esta orden como root:"
 
 #. type: example
-#: doc/guix.texi:1242
+#: doc/guix.texi:1341
 #, no-wrap
 msgid "semodule -i etc/guix-daemon.cil\n"
 msgstr "semodule -i etc/guix-daemon.cil\n"
 
 #. type: Plain text
-#: doc/guix.texi:1246
+#: doc/guix.texi:1345
 msgid "Then relabel the file system with @code{restorecon} or by a different mechanism provided by your system."
-msgstr "Una vez hecho, vuelva a etiquetar el sistema de ficheros con @code{restorecon} o con un mecanismo distinto que proporcione su sistema."
+msgstr "Una vez hecho, vuelva a etiquetar el sistema de archivos con @code{restorecon} o con un mecanismo distinto que proporcione su sistema."
 
 #. type: Plain text
-#: doc/guix.texi:1251
+#: doc/guix.texi:1350
 msgid "Once the policy is installed, the file system has been relabeled, and the daemon has been restarted, it should be running in the @code{guix_daemon_t} context.  You can confirm this with the following command:"
-msgstr "Una vez la política está instalada, el sistema de ficheros ha sido re-etiquetado, y el daemon ha sido reiniciado, debería ejecutarse en el contexto @code{guix_daemon_t}. Puede confirmarlo con la siguiente orden:"
+msgstr "Una vez la política está instalada, el sistema de archivos ha sido re-etiquetado, y el daemon ha sido reiniciado, debería ejecutarse en el contexto @code{guix_daemon_t}. Puede confirmarlo con la siguiente orden:"
 
 #. type: example
-#: doc/guix.texi:1254
+#: doc/guix.texi:1353
 #, no-wrap
 msgid "ps -Zax | grep guix-daemon\n"
 msgstr "ps -Zax | grep guix-daemon\n"
 
 # TODO: (MAAV) Monitorice!!
 #. type: Plain text
-#: doc/guix.texi:1259
+#: doc/guix.texi:1358
 msgid "Monitor the SELinux log files as you run a command like @code{guix build hello} to convince yourself that SELinux permits all necessary operations."
-msgstr "Monitorice los ficheros de log de SELinux mientras ejecuta una orden como @code{guix build hello} para convencerse que SELinux permite todas las operaciones necesarias."
+msgstr "Monitorice los archivos de log de SELinux mientras ejecuta una orden como @code{guix build hello} para convencerse que SELinux permite todas las operaciones necesarias."
 
 #. type: cindex
-#: doc/guix.texi:1261
+#: doc/guix.texi:1360
 #, no-wrap
 msgid "SELinux, limitations"
 msgstr "SELinux, limitaciones"
 
 # FUZZY
 #. type: Plain text
-#: doc/guix.texi:1266
+#: doc/guix.texi:1365
 msgid "This policy is not perfect.  Here is a list of limitations or quirks that should be considered when deploying the provided SELinux policy for the Guix daemon."
 msgstr "Esta política no es perfecta. Aquí está una lista de limitaciones o comportamientos extraños que deben ser considerados al desplegar la política SELinux provista para el daemon Guix."
 
 #. type: enumerate
-#: doc/guix.texi:1273
+#: doc/guix.texi:1372
 msgid "@code{guix_daemon_socket_t} isn’t actually used.  None of the socket operations involve contexts that have anything to do with @code{guix_daemon_socket_t}.  It doesn’t hurt to have this unused label, but it would be preferrable to define socket rules for only this label."
 msgstr "@code{guix_daemon_socket_t} no se usa realmente. Ninguna de las operaciones del socket implica contextos que tengan algo que ver con @code{guix_daemon_socket_t}. No hace daño tener esta etiqueta sin usar, pero sería preferible definir reglas del socket únicamente para esta etiqueta."
 
 #. type: enumerate
-#: doc/guix.texi:1284
+#: doc/guix.texi:1383
 msgid "@code{guix gc} cannot access arbitrary links to profiles.  By design, the file label of the destination of a symlink is independent of the file label of the link itself.  Although all profiles under $localstatedir are labelled, the links to these profiles inherit the label of the directory they are in.  For links in the user’s home directory this will be @code{user_home_t}.  But for links from the root user’s home directory, or @file{/tmp}, or the HTTP server’s working directory, etc, this won’t work.  @code{guix gc} would be prevented from reading and following these links."
-msgstr "@code{guix gc} no puede acceder enlaces arbitrarios a los perfiles. Por diseño, la etiqueta del fichero del destino de un enlace simbólico es independiente de la etiqueta de fichero del fichero en sí. Aunque todos los perfiles bajo $localstatedir se etiquetan, los enlaces para estos perfiles heredan la etiqueta del directorio en el que están. Para enlaces en el directorio de la usuaria esto será @code{user_home_t}. Pero para los enlaces del directorio de root, o @file{/tmp}, o del directorio del servidor HTTP, etc., esto no funcionará. @code{guix gc} se verá incapacitado para leer y seguir dichos enlaces."
+msgstr "@code{guix gc} no puede acceder enlaces arbitrarios a los perfiles. Por diseño, la etiqueta del archivo del destino de un enlace simbólico es independiente de la etiqueta de archivo del archivo en sí. Aunque todos los perfiles bajo $localstatedir se etiquetan, los enlaces para estos perfiles heredan la etiqueta del directorio en el que están. Para enlaces en el directorio de la usuaria esto será @code{user_home_t}. Pero para los enlaces del directorio de root, o @file{/tmp}, o del directorio del servidor HTTP, etc., esto no funcionará. @code{guix gc} se verá incapacitado para leer y seguir dichos enlaces."
 
 #. type: enumerate
-#: doc/guix.texi:1289
+#: doc/guix.texi:1388
 msgid "The daemon’s feature to listen for TCP connections might no longer work.  This might require extra rules, because SELinux treats network sockets differently from files."
-msgstr "La característica del daemon de esperar conexiones TCP puede que no funcione más. Esto puede requerir reglas adicionales, ya que SELinux trata los sockets de red de forma diferente a los ficheros."
+msgstr "La característica del daemon de esperar conexiones TCP puede que no funcione más. Esto puede requerir reglas adicionales, ya que SELinux trata los sockets de red de forma diferente a los archivos."
 
 #. type: enumerate
-#: doc/guix.texi:1300
+#: doc/guix.texi:1399
 msgid "Currently all files with a name matching the regular expression @code{/gnu/store/.+-(guix-.+|profile)/bin/guix-daemon} are assigned the label @code{guix_daemon_exec_t}; this means that @emph{any} file with that name in any profile would be permitted to run in the @code{guix_daemon_t} domain.  This is not ideal.  An attacker could build a package that provides this executable and convince a user to install and run it, which lifts it into the @code{guix_daemon_t} domain.  At that point SELinux could not prevent it from accessing files that are allowed for processes in that domain."
-msgstr "Actualmente todos los ficheros con un nombre coincidente con la expresión regular @code{/gnu/store.+-(gux-.+|profile)/bin/guix-daemon} tienen asignada la etiqueta @code{guix_daemon_exec_t}; esto significa que @emph{cualquier} fichero con ese nombre en cualquier perfil tendrá permitida la ejecución en el dominio @code{guix_daemon_t}. Esto no es ideal. Una atacante podría construir un paquete que proporcione este ejecutable y convencer a la usuaria para instalarlo y ejecutarlo, lo que lo eleva al dominio @code{guix_daemon_t}. Llegadas a este punto, SELinux no puede prevenir que acceda a los ficheros permitidos para los procesos en dicho dominio."
+msgstr "Actualmente todos los archivos con un nombre coincidente con la expresión regular @code{/gnu/store.+-(gux-.+|profile)/bin/guix-daemon} tienen asignada la etiqueta @code{guix_daemon_exec_t}; esto significa que @emph{cualquier} archivo con ese nombre en cualquier perfil tendrá permitida la ejecución en el dominio @code{guix_daemon_t}. Esto no es ideal. Una atacante podría construir un paquete que proporcione este ejecutable y convencer a la usuaria para instalarlo y ejecutarlo, lo que lo eleva al dominio @code{guix_daemon_t}. Llegadas a este punto, SELinux no puede prevenir que acceda a los archivos permitidos para los procesos en dicho dominio."
 
 #. type: enumerate
-#: doc/guix.texi:1308
+#: doc/guix.texi:1407
 msgid "We could generate a much more restrictive policy at installation time, so that only the @emph{exact} file name of the currently installed @code{guix-daemon} executable would be labelled with @code{guix_daemon_exec_t}, instead of using a broad regular expression.  The downside is that root would have to install or upgrade the policy at installation time whenever the Guix package that provides the effectively running @code{guix-daemon} executable is upgraded."
-msgstr "Podríamos generar una política mucho más restrictiva en tiempo de instalación, de modo que solo el nombre @emph{exacto} del fichero del ejecutable de @code{guix-daemon} actualmente instalado sea marcado como @code{guix_daemon_exec_t}, en vez de usar una expresión regular amplia. La desventaja es que root tendría que instalar o actualizar la política en tiempo de instalación cada vez que se actualizase el paquete de Guix que proporcione el ejecutable de @code{guix-daemon} realmente en ejecución."
+msgstr "Podríamos generar una política mucho más restrictiva en tiempo de instalación, de modo que solo el nombre @emph{exacto} del archivo del ejecutable de @code{guix-daemon} actualmente instalado sea marcado como @code{guix_daemon_exec_t}, en vez de usar una expresión regular amplia. La desventaja es que root tendría que instalar o actualizar la política en tiempo de instalación cada vez que se actualizase el paquete de Guix que proporcione el ejecutable de @code{guix-daemon} realmente en ejecución."
 
 #. type: section
-#: doc/guix.texi:1311
+#: doc/guix.texi:1410
 #, no-wrap
 msgid "Invoking @command{guix-daemon}"
 msgstr "Invocación de @command{guix-daemon}"
 
 #. type: Plain text
-#: doc/guix.texi:1317
+#: doc/guix.texi:1416
 msgid "The @command{guix-daemon} program implements all the functionality to access the store.  This includes launching build processes, running the garbage collector, querying the availability of a build result, etc.  It is normally run as @code{root} like this:"
 msgstr "El programa @command{guix-daemon} implementa toda la funcionalidad para acceder al almacén. Esto incluye iniciar procesos de construcción, ejecutar el recolector de basura, comprobar la disponibilidad de un resultado de construcción, etc. Normalmente se ejecuta como @code{root} así:"
 
 #. type: Plain text
-#: doc/guix.texi:1324
+#: doc/guix.texi:1423
 msgid "For details on how to set it up, @pxref{Setting Up the Daemon}."
 msgstr "Para detalles obre como configurarlo, @pxref{Setting Up the Daemon}."
 
 #. type: cindex
-#: doc/guix.texi:1326
+#: doc/guix.texi:1425
 #, no-wrap
 msgid "container, build environment"
 msgstr "contenedor, entorno de construcción"
 
 #. type: cindex
-#: doc/guix.texi:1328 doc/guix.texi:2637 doc/guix.texi:3348
-#: doc/guix.texi:10461
+#: doc/guix.texi:1427 doc/guix.texi:2937 doc/guix.texi:3789
+#: doc/guix.texi:12380
 #, no-wrap
 msgid "reproducible builds"
 msgstr "construcciones reproducibles"
 
 #. type: Plain text
-#: doc/guix.texi:1340
-msgid "By default, @command{guix-daemon} launches build processes under different UIDs, taken from the build group specified with @code{--build-users-group}.  In addition, each build process is run in a chroot environment that only contains the subset of the store that the build process depends on, as specified by its derivation (@pxref{Programming Interface, derivation}), plus a set of specific system directories.  By default, the latter contains @file{/dev} and @file{/dev/pts}.  Furthermore, on GNU/Linux, the build environment is a @dfn{container}: in addition to having its own file system tree, it has a separate mount name space, its own PID name space, network name space, etc.  This helps achieve reproducible builds (@pxref{Features})."
-msgstr "Por defecto, @command{guix-daemon} inicia los procesos de construcción bajo distintos UIDs, tomados del grupo de construcción especificado con @code{--build-users-group}. Además, cada proceso de construcción se ejecuta en un entorno ``chroot'' que únicamente contiene el subconjunto del almacén del que depende el proceso de construcción, como especifica su derivación (@pxref{Programming Interface, derivación}), más un conjunto específico de directorios del sistema. Por defecto, estos directorios contienen @file{/dev} y @file{/dev/pts}. Es más, sobre GNU/Linux, el entorno de construcción es un @dfn{contenedor}: además de tener su propio árbol del sistema de ficheros, tiene un espacio de nombres de montado separado, su propio espacio de nombres de PID, de red, etc. Esto ayuda a obtener construcciones reproducibles (@pxref{Features})."
+#: doc/guix.texi:1439
+msgid "By default, @command{guix-daemon} launches build processes under different UIDs, taken from the build group specified with @option{--build-users-group}.  In addition, each build process is run in a chroot environment that only contains the subset of the store that the build process depends on, as specified by its derivation (@pxref{Programming Interface, derivation}), plus a set of specific system directories.  By default, the latter contains @file{/dev} and @file{/dev/pts}.  Furthermore, on GNU/Linux, the build environment is a @dfn{container}: in addition to having its own file system tree, it has a separate mount name space, its own PID name space, network name space, etc.  This helps achieve reproducible builds (@pxref{Features})."
+msgstr "Por defecto, @command{guix-daemon} inicia los procesos de construcción bajo distintos UIDs, tomados del grupo de construcción especificado con @option{--build-users-group}. Además, cada proceso de construcción se ejecuta en un entorno ``chroot'' que únicamente contiene el subconjunto del almacén del que depende el proceso de construcción, como especifica su derivación (@pxref{Programming Interface, derivación}), más un conjunto específico de directorios del sistema. Por defecto, estos directorios contienen @file{/dev} y @file{/dev/pts}. Es más, sobre GNU/Linux, el entorno de construcción es un @dfn{contenedor}: además de tener su propio árbol del sistema de archivos, tiene un espacio de nombres de montado separado, su propio espacio de nombres de PID, de red, etc. Esto ayuda a obtener construcciones reproducibles (@pxref{Features})."
 
 #. type: Plain text
-#: doc/guix.texi:1346
-msgid "When the daemon performs a build on behalf of the user, it creates a build directory under @file{/tmp} or under the directory specified by its @code{TMPDIR} environment variable.  This directory is shared with the container for the duration of the build, though within the container, the build tree is always called @file{/tmp/guix-build-@var{name}.drv-0}."
-msgstr "Cuando el daemon realiza una construcción en delegación de la usuaria, crea un directorio de construcción bajo @file{/tmp} o bajo el directorio especificado por su variable de entorno @code{TMPDIR}. Este directorio se comparte con el contenedor durante toda la construcción, aunque dentro del contenedor el árbol de construcción siempre se llama @file{/tmp/guix-build-@var{nombre}.drv-0}."
+#: doc/guix.texi:1445
+msgid "When the daemon performs a build on behalf of the user, it creates a build directory under @file{/tmp} or under the directory specified by its @env{TMPDIR} environment variable.  This directory is shared with the container for the duration of the build, though within the container, the build tree is always called @file{/tmp/guix-build-@var{name}.drv-0}."
+msgstr "Cuando el daemon realiza una construcción en delegación de la usuaria, crea un directorio de construcción bajo @file{/tmp} o bajo el directorio especificado por su variable de entorno @env{TMPDIR}. Este directorio se comparte con el contenedor durante toda la construcción, aunque dentro del contenedor el árbol de construcción siempre se llama @file{/tmp/guix-build-@var{nombre}.drv-0}."
 
 #. type: Plain text
-#: doc/guix.texi:1350
+#: doc/guix.texi:1449
 msgid "The build directory is automatically deleted upon completion, unless the build failed and the client specified @option{--keep-failed} (@pxref{Invoking guix build, @option{--keep-failed}})."
 msgstr "El directorio de construcción se borra automáticamente una vez completado el proceso, a menos que la construcción fallase y se especificase en el cliente @option{--keep-failed} (@pxref{Invoking guix build, @option{--keep-failed}})."
 
 #. type: Plain text
-#: doc/guix.texi:1356
-msgid "The daemon listens for connections and spawns one sub-process for each session started by a client (one of the @command{guix} sub-commands.)  The @command{guix processes} command allows you to get an overview of the activity on your system by viewing each of the active sessions and clients.  @xref{Invoking guix processes}, for more information."
+#: doc/guix.texi:1455
+msgid "The daemon listens for connections and spawns one sub-process for each session started by a client (one of the @command{guix} sub-commands).  The @command{guix processes} command allows you to get an overview of the activity on your system by viewing each of the active sessions and clients.  @xref{Invoking guix processes}, for more information."
 msgstr "El daemon espera conexiones y lanza un subproceso por sesión iniciada por cada cliente (una de las sub-órdenes de @command{guix}). La orden @command{guix processes} le permite tener una visión general de la actividad de su sistema mostrando clientes y sesiones activas. @xref{Invoking guix processes}, para más información."
 
 #. type: Plain text
-#: doc/guix.texi:1358
+#: doc/guix.texi:1457
 msgid "The following command-line options are supported:"
 msgstr "Se aceptan las siguientes opciones de línea de ordenes:"
 
 #. type: item
-#: doc/guix.texi:1360
+#: doc/guix.texi:1459
 #, no-wrap
 msgid "--build-users-group=@var{group}"
 msgstr "--build-users-group=@var{grupo}"
 
 #. type: table
-#: doc/guix.texi:1363
+#: doc/guix.texi:1462
 msgid "Take users from @var{group} to run build processes (@pxref{Setting Up the Daemon, build users})."
 msgstr "Toma las usuarias de @var{grupo} para ejecutar los procesos de construcción (@pxref{Setting Up the Daemon, build users})."
 
 #. type: item
-#: doc/guix.texi:1364 doc/guix.texi:8282
+#: doc/guix.texi:1463 doc/guix.texi:9972
 #, no-wrap
 msgid "--no-substitutes"
 msgstr "--no-substitutes"
 
 #. type: cindex
-#: doc/guix.texi:1365 doc/guix.texi:2649 doc/guix.texi:3214
+#: doc/guix.texi:1464 doc/guix.texi:2949 doc/guix.texi:3547
 #, no-wrap
 msgid "substitutes"
 msgstr "sustituciones"
 
 #. type: table
-#: doc/guix.texi:1369 doc/guix.texi:8286
+#: doc/guix.texi:1468 doc/guix.texi:9976
 msgid "Do not use substitutes for build products.  That is, always build things locally instead of allowing downloads of pre-built binaries (@pxref{Substitutes})."
 msgstr "No usa sustituciones para la construcción de productos. Esto es, siempre realiza las construcciones localmente en vez de permitir la descarga de binarios pre-construidos (@pxref{Substitutes})."
 
 #. type: table
-#: doc/guix.texi:1373
-msgid "When the daemon runs with @code{--no-substitutes}, clients can still explicitly enable substitution @i{via} the @code{set-build-options} remote procedure call (@pxref{The Store})."
-msgstr "Cuando el daemon se ejecuta con @code{--no-substitutes}, los clientes aún pueden activar explícitamente las sustituciones @i{via} la llamada de procedimiento remoto @code{set-build-options} (@pxref{The Store})."
+#: doc/guix.texi:1472
+msgid "When the daemon runs with @option{--no-substitutes}, clients can still explicitly enable substitution @i{via} the @code{set-build-options} remote procedure call (@pxref{The Store})."
+msgstr "Cuando el daemon se está ejecutando con la opción @option{--no-substitutes}, los clientes aún pueden activar explícitamente las sustituciones a través de la llamada de procedimiento remoto @code{set-build-options} (@pxref{The Store})."
+
+#. type: anchor{#1}
+#: doc/guix.texi:1474
+msgid "daemon-substitute-urls"
+msgstr "daemon-substitute-urls"
 
 #. type: item
-#: doc/guix.texi:1374 doc/guix.texi:8269 doc/guix.texi:9966
-#: doc/guix.texi:10607 doc/guix.texi:10832
+#: doc/guix.texi:1474 doc/guix.texi:9959 doc/guix.texi:11822
+#: doc/guix.texi:12526 doc/guix.texi:12751
 #, no-wrap
 msgid "--substitute-urls=@var{urls}"
 msgstr "--substitute-urls=@var{urls}"
 
-#. type: anchor{#1}
-#: doc/guix.texi:1379
-msgid "daemon-substitute-urls"
-msgstr "daemon-substitute-urls"
-
 #. type: table
-#: doc/guix.texi:1379
+#: doc/guix.texi:1478
 msgid "Consider @var{urls} the default whitespace-separated list of substitute source URLs.  When this option is omitted, @indicateurl{https://@value{SUBSTITUTE-SERVER}} is used."
 msgstr "Considera @var{urls} la lista separada por espacios predeterminada de URLs de sustituciones de fuentes. Cuando se omite esta opción, se usa @indicateurl{https://@value{SUBSTITUTE-SERVER}}."
 
 #. type: table
-#: doc/guix.texi:1382
+#: doc/guix.texi:1481
 msgid "This means that substitutes may be downloaded from @var{urls}, as long as they are signed by a trusted signature (@pxref{Substitutes})."
 msgstr "Esto significa que las sustituciones puede ser descargadas de @var{urls}, mientras estén firmadas por una firma de confianza (@pxref{Substitutes})."
 
+#. type: table
+#: doc/guix.texi:1484
+msgid "@xref{Getting Substitutes from Other Servers}, for more information on how to configure the daemon to get substitutes from other servers."
+msgstr "@xref{Getting Substitutes from Other Servers} para obtener más información sobre cómo configurar el daemon para obtener sustituciones de otros servidores."
+
 #. type: item
-#: doc/guix.texi:1384 doc/guix.texi:8307
+#: doc/guix.texi:1486 doc/guix.texi:9995
 #, no-wrap
 msgid "--no-offload"
 msgstr "--no-offload"
 
 #. type: table
-#: doc/guix.texi:1388 doc/guix.texi:8311
+#: doc/guix.texi:1490 doc/guix.texi:9999
 msgid "Do not use offload builds to other machines (@pxref{Daemon Offload Setup}).  That is, always build things locally instead of offloading builds to remote machines."
 msgstr "No usa la delegación de construcciones en otras máquinas (@pxref{Daemon Offload Setup}). Es decir, siempre realiza las construcciones de manera local en vez de delegar construcciones a máquinas remotas."
 
 #. type: item
-#: doc/guix.texi:1389
+#: doc/guix.texi:1491
 #, no-wrap
 msgid "--cache-failures"
 msgstr "--cache-failures"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:1391
+#: doc/guix.texi:1493
 msgid "Cache build failures.  By default, only successful builds are cached."
 msgstr "Almacena en la caché los fallos de construcción. Por defecto, únicamente las construcciones satisfactorias son almacenadas en la caché."
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:1396
+#: doc/guix.texi:1498
 msgid "When this option is used, @command{guix gc --list-failures} can be used to query the set of store items marked as failed; @command{guix gc --clear-failures} removes store items from the set of cached failures.  @xref{Invoking guix gc}."
 msgstr "Cuando se usa esta opción, @command{guix gc --list-failures} puede usarse para consultar el conjunto de elementos del almacén marcados como fallidos; @command{guix gc --clear-failures} borra los elementos del almacén del conjunto de fallos existentes en la caché. @xref{Invoking guix gc}."
 
 #. type: item
-#: doc/guix.texi:1397 doc/guix.texi:8336
+#: doc/guix.texi:1499 doc/guix.texi:10024
 #, no-wrap
 msgid "--cores=@var{n}"
 msgstr "--cores=@var{n}"
 
 #. type: itemx
-#: doc/guix.texi:1398 doc/guix.texi:8337
+#: doc/guix.texi:1500 doc/guix.texi:10025
 #, no-wrap
 msgid "-c @var{n}"
 msgstr "-c @var{n}"
 
 #. type: table
-#: doc/guix.texi:1401
+#: doc/guix.texi:1503
 msgid "Use @var{n} CPU cores to build each derivation; @code{0} means as many as available."
 msgstr "Usa @var{n} núcleos de la CPU para construir cada derivación; @code{0} significa tantos como haya disponibles."
 
 #. type: table
-#: doc/guix.texi:1405
-msgid "The default value is @code{0}, but it may be overridden by clients, such as the @code{--cores} option of @command{guix build} (@pxref{Invoking guix build})."
-msgstr "El valor predeterminado es @code{0}, pero puede ser sobreescrito por los clientes, como la opción @code{--cores} de @command{guix build} (@pxref{Invoking guix build})."
+#: doc/guix.texi:1507
+msgid "The default value is @code{0}, but it may be overridden by clients, such as the @option{--cores} option of @command{guix build} (@pxref{Invoking guix build})."
+msgstr "El valor predeterminado es @code{0}, pero puede ser sobreescrito por los clientes, como la opción @option{--cores} de @command{guix build} (@pxref{Invoking guix build})."
 
 #. type: table
-#: doc/guix.texi:1409
-msgid "The effect is to define the @code{NIX_BUILD_CORES} environment variable in the build process, which can then use it to exploit internal parallelism---for instance, by running @code{make -j$NIX_BUILD_CORES}."
-msgstr "El efecto es definir la variable de entorno @code{NIX_BUILD_CORES} en el proceso de construcción, el cual puede usarla para explotar el paralelismo interno---por ejemplo, ejecutando @code{make -j$NIX_BUILD_CORES}."
+#: doc/guix.texi:1511
+msgid "The effect is to define the @env{NIX_BUILD_CORES} environment variable in the build process, which can then use it to exploit internal parallelism---for instance, by running @code{make -j$NIX_BUILD_CORES}."
+msgstr "El efecto es definir la variable de entorno @env{NIX_BUILD_CORES} en el proceso de construcción, el cual puede usarla para explotar el paralelismo interno---por ejemplo, ejecutando @code{make -j$NIX_BUILD_CORES}."
 
 #. type: item
-#: doc/guix.texi:1410 doc/guix.texi:8341
+#: doc/guix.texi:1512 doc/guix.texi:10029
 #, no-wrap
 msgid "--max-jobs=@var{n}"
 msgstr "--max-jobs=@var{n}"
 
 #. type: itemx
-#: doc/guix.texi:1411 doc/guix.texi:8342
+#: doc/guix.texi:1513 doc/guix.texi:10030
 #, no-wrap
 msgid "-M @var{n}"
 msgstr "-M @var{n}"
 
 #. type: table
-#: doc/guix.texi:1416
+#: doc/guix.texi:1518
 msgid "Allow at most @var{n} build jobs in parallel.  The default value is @code{1}.  Setting it to @code{0} means that no builds will be performed locally; instead, the daemon will offload builds (@pxref{Daemon Offload Setup}), or simply fail."
 msgstr "Permite como máximo @var{n} trabajos de construcción en paralelo. El valor predeterminado es @code{1}. Fijarlo a @code{0} significa que ninguna construcción se realizará localmente; en vez de eso, el daemon delegará las construcciones (@pxref{Daemon Offload Setup}), o simplemente fallará."
 
 #. type: item
-#: doc/guix.texi:1417 doc/guix.texi:8312
+#: doc/guix.texi:1519 doc/guix.texi:10000
 #, no-wrap
 msgid "--max-silent-time=@var{seconds}"
 msgstr "--max-silent-time=@var{segundos}"
 
 #. type: table
-#: doc/guix.texi:1420 doc/guix.texi:8315
+#: doc/guix.texi:1522 doc/guix.texi:10003
 msgid "When the build or substitution process remains silent for more than @var{seconds}, terminate it and report a build failure."
 msgstr "Cuando la construcción o sustitución permanece en silencio más de @var{segundos}, la finaliza e informa de un fallo de construcción."
 
 #. type: table
-#: doc/guix.texi:1422 doc/guix.texi:1431
+#: doc/guix.texi:1524 doc/guix.texi:1533
 msgid "The default value is @code{0}, which disables the timeout."
 msgstr "El valor predeterminado es @code{0}, que desactiva los plazos."
 
 #. type: table
-#: doc/guix.texi:1425
-msgid "The value specified here can be overridden by clients (@pxref{Common Build Options, @code{--max-silent-time}})."
-msgstr "El valor especificado aquí puede ser sobreescrito por clientes (@pxref{Common Build Options, @code{--max-silent-time}})."
+#: doc/guix.texi:1527
+msgid "The value specified here can be overridden by clients (@pxref{Common Build Options, @option{--max-silent-time}})."
+msgstr "El valor especificado aquí puede ser sobreescrito por clientes (@pxref{Common Build Options, @option{--max-silent-time}})."
 
 #. type: item
-#: doc/guix.texi:1426 doc/guix.texi:8319
+#: doc/guix.texi:1528 doc/guix.texi:10007
 #, no-wrap
 msgid "--timeout=@var{seconds}"
 msgstr "--timeout=@var{segundos}"
 
 #. type: table
-#: doc/guix.texi:1429 doc/guix.texi:8322
+#: doc/guix.texi:1531 doc/guix.texi:10010
 msgid "Likewise, when the build or substitution process lasts for more than @var{seconds}, terminate it and report a build failure."
 msgstr "Del mismo modo, cuando el proceso de construcción o sustitución dura más de @var{segundos}, lo termina e informa un fallo de construcción."
 
 #. type: table
-#: doc/guix.texi:1434
-msgid "The value specified here can be overridden by clients (@pxref{Common Build Options, @code{--timeout}})."
-msgstr "El valor especificado aquí puede ser sobreescrito por los clientes (@pxref{Common Build Options, @code{--timeout}})."
+#: doc/guix.texi:1536
+msgid "The value specified here can be overridden by clients (@pxref{Common Build Options, @option{--timeout}})."
+msgstr "El valor especificado aquí puede ser sobreescrito por los clientes (@pxref{Common Build Options, @option{--timeout}})."
 
 #. type: item
-#: doc/guix.texi:1435
+#: doc/guix.texi:1537
 #, no-wrap
 msgid "--rounds=@var{N}"
 msgstr "--rounds=@var{N}"
 
 #. type: table
-#: doc/guix.texi:1440
+#: doc/guix.texi:1542
 msgid "Build each derivation @var{n} times in a row, and raise an error if consecutive build results are not bit-for-bit identical.  Note that this setting can be overridden by clients such as @command{guix build} (@pxref{Invoking guix build})."
 msgstr "Construye cada derivación @var{n} veces seguidas, y lanza un error si los resultados de las construcciones consecutivas no son idénticos bit-a-bit. Fíjese que esta configuración puede ser sobreescrita por clientes como @command{guix build} (@pxref{Invoking guix build})."
 
 #. type: table
-#: doc/guix.texi:1444 doc/guix.texi:8691
+#: doc/guix.texi:1546 doc/guix.texi:9994 doc/guix.texi:10499
 msgid "When used in conjunction with @option{--keep-failed}, the differing output is kept in the store, under @file{/gnu/store/@dots{}-check}.  This makes it easy to look for differences between the two results."
 msgstr "Cuando se usa conjuntamente con @option{--keep-failed}, la salida que difiere se mantiene en el almacén, bajo @file{/gnu/store/@dots{}-check}. Esto hace fácil buscar diferencias entre los dos resultados."
 
 #. type: item
-#: doc/guix.texi:1445
+#: doc/guix.texi:1547
 #, no-wrap
 msgid "--debug"
 msgstr "--debug"
 
 #. type: table
-#: doc/guix.texi:1447
+#: doc/guix.texi:1549
 msgid "Produce debugging output."
 msgstr "Produce salida de depuración."
 
 # FUZZY: overridden
 #. type: table
-#: doc/guix.texi:1451
-msgid "This is useful to debug daemon start-up issues, but then it may be overridden by clients, for example the @code{--verbosity} option of @command{guix build} (@pxref{Invoking guix build})."
-msgstr "Esto es útil para depurar problemas en el arranque del daemon, pero entonces puede ser cambiado el comportamiento por los clientes, por ejemplo la opción @code{--verbosity} de @command{guix build} (@pxref{Invoking guix build})."
+#: doc/guix.texi:1553
+msgid "This is useful to debug daemon start-up issues, but then it may be overridden by clients, for example the @option{--verbosity} option of @command{guix build} (@pxref{Invoking guix build})."
+msgstr "Esto es útil para depurar problemas en el arranque del daemon, pero su comportamiento puede cambiarse en cada cliente, por ejemplo con la opción @option{--verbosity} de @command{guix build} (@pxref{Invoking guix build})."
 
 #. type: item
-#: doc/guix.texi:1452
+#: doc/guix.texi:1554
 #, no-wrap
 msgid "--chroot-directory=@var{dir}"
 msgstr "--chroot-directory=@var{dir}"
 
 # FUZZY: chroot!
 #. type: table
-#: doc/guix.texi:1454
+#: doc/guix.texi:1556
 msgid "Add @var{dir} to the build chroot."
 msgstr "Añade @var{dir} al chroot de construcción."
 
 #. type: table
-#: doc/guix.texi:1460
+#: doc/guix.texi:1562
 msgid "Doing this may change the result of build processes---for instance if they use optional dependencies found in @var{dir} when it is available, and not otherwise.  For that reason, it is not recommended to do so.  Instead, make sure that each derivation declares all the inputs that it needs."
 msgstr "Hacer esto puede cambiar el resultado del proceso de construcción---por ejemplo si usa dependencias opcionales, que se encuentren en @var{dir}, cuando están disponibles, y no de otra forma. Por esa razón, no se recomienda hacerlo. En vez de eso, asegúrese que cada derivación declara todas las entradas que necesita."
 
 #. type: item
-#: doc/guix.texi:1461
+#: doc/guix.texi:1563
 #, no-wrap
 msgid "--disable-chroot"
 msgstr "--disable-chroot"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:1463
+#: doc/guix.texi:1565
 msgid "Disable chroot builds."
 msgstr "Desactiva la construcción en un entorno chroot."
 
 #. type: table
-#: doc/guix.texi:1468
+#: doc/guix.texi:1570
 msgid "Using this option is not recommended since, again, it would allow build processes to gain access to undeclared dependencies.  It is necessary, though, when @command{guix-daemon} is running under an unprivileged user account."
 msgstr "No se recomienda el uso de esta opción ya que, de nuevo, podría permitir a los procesos de construcción ganar acceso a dependencias no declaradas. Es necesario, no obstante, cuando @command{guix-daemon} se ejecuta bajo una cuenta de usuaria sin privilegios."
 
 #. type: item
-#: doc/guix.texi:1469
+#: doc/guix.texi:1571
 #, no-wrap
 msgid "--log-compression=@var{type}"
 msgstr "--log-compression=@var{tipo}"
 
 # FUZZY: Log
 #. type: table
-#: doc/guix.texi:1472
+#: doc/guix.texi:1574
 msgid "Compress build logs according to @var{type}, one of @code{gzip}, @code{bzip2}, or @code{none}."
 msgstr "Comprime los logs de construcción de acuerdo a @var{tipo}, que puede ser @code{gzip}, @code{bzip2} o @code{none}."
 
 #. type: table
-#: doc/guix.texi:1476
-msgid "Unless @code{--lose-logs} is used, all the build logs are kept in the @var{localstatedir}.  To save space, the daemon automatically compresses them with bzip2 by default."
-msgstr "A menos que se use @code{--lose-logs}, todos los log de construcción se mantienen en @var{localstatedir}. Para ahorrar espacio, el daemon automáticamente los comprime con bzip2 por defecto."
+#: doc/guix.texi:1578
+msgid "Unless @option{--lose-logs} is used, all the build logs are kept in the @var{localstatedir}.  To save space, the daemon automatically compresses them with Bzip2 by default."
+msgstr "A menos que se use @option{--lose-logs}, todos los log de construcción se mantienen en @var{localstatedir}. Para ahorrar espacio, el daemon automáticamente los comprime con bzip2 por defecto."
 
 #. type: item
-#: doc/guix.texi:1477
+#: doc/guix.texi:1579
 #, no-wrap
 msgid "--disable-deduplication"
 msgstr "--disable-deduplication"
 
 #. type: cindex
-#: doc/guix.texi:1478 doc/guix.texi:3686
+#: doc/guix.texi:1580 doc/guix.texi:4127
 #, no-wrap
 msgid "deduplication"
 msgstr "deduplicación"
 
 #. type: table
-#: doc/guix.texi:1480
+#: doc/guix.texi:1582
 msgid "Disable automatic file ``deduplication'' in the store."
 msgstr "Desactiva la ``deduplicación'' automática en el almacén."
 
 #. type: table
-#: doc/guix.texi:1487
+#: doc/guix.texi:1589
 msgid "By default, files added to the store are automatically ``deduplicated'': if a newly added file is identical to another one found in the store, the daemon makes the new file a hard link to the other file.  This can noticeably reduce disk usage, at the expense of slightly increased input/output load at the end of a build process.  This option disables this optimization."
-msgstr "Por defecto, los ficheros se añaden al almacén ``deduplicados'' automáticamente: si un nuevo fichero añadido es idéntico a otro que ya se encuentra en el almacén, el daemon introduce el nuevo fichero como un enlace duro al otro fichero. Esto puede reducir notablemente el uso del disco, a expensas de una carga de entrada/salida ligeramente incrementada al finalizar un proceso de construcción. Esta opción desactiva dicha optimización."
+msgstr "Por defecto, los archivos se añaden al almacén ``deduplicados'' automáticamente: si un nuevo archivo añadido es idéntico a otro que ya se encuentra en el almacén, el daemon introduce el nuevo archivo como un enlace duro al otro archivo. Esto puede reducir notablemente el uso del disco, a expensas de una carga de entrada/salida ligeramente incrementada al finalizar un proceso de construcción. Esta opción desactiva dicha optimización."
 
 #. type: item
-#: doc/guix.texi:1488
+#: doc/guix.texi:1590
 #, no-wrap
 msgid "--gc-keep-outputs[=yes|no]"
 msgstr "--gc-keep-outputs[=yes|no]"
 
 #. type: table
-#: doc/guix.texi:1491
+#: doc/guix.texi:1593
 msgid "Tell whether the garbage collector (GC) must keep outputs of live derivations."
 msgstr "Determina si el recolector de basura (GC) debe mantener salidas de las derivaciones vivas."
 
 #. type: cindex
-#: doc/guix.texi:1492 doc/guix.texi:3499
+#: doc/guix.texi:1594 doc/guix.texi:3940
 #, no-wrap
 msgid "GC roots"
 msgstr "GC, raíces del recolector de basura"
 
 #. type: cindex
-#: doc/guix.texi:1493 doc/guix.texi:3500
+#: doc/guix.texi:1595 doc/guix.texi:3941
 #, no-wrap
 msgid "garbage collector roots"
 msgstr "raíces del recolector de basura"
 
 #. type: table
-#: doc/guix.texi:1498
-msgid "When set to ``yes'', the GC will keep the outputs of any live derivation available in the store---the @code{.drv} files.  The default is ``no'', meaning that derivation outputs are kept only if they are reachable from a GC root.  @xref{Invoking guix gc}, for more on GC roots."
-msgstr "Cuando se usa ``yes'', el recolector de basura mantendrá las salidas de cualquier derivación viva disponible en el almacén---los ficheros @code{.drv}. El valor predeterminado es ``no'', lo que significa que las salidas de las derivaciones se mantienen únicamente si son alcanzables desde alguna raíz del recolector de basura. @xref{Invoking guix gc}, para más información sobre las raíces del recolector de basura."
+#: doc/guix.texi:1601
+msgid "When set to @code{yes}, the GC will keep the outputs of any live derivation available in the store---the @file{.drv} files.  The default is @code{no}, meaning that derivation outputs are kept only if they are reachable from a GC root.  @xref{Invoking guix gc}, for more on GC roots."
+msgstr "Cuando se usa @code{yes}, el recolector de basura mantendrá las salidas de cualquier derivación viva disponible en el almacén---los archivos @code{.drv}. El valor predeterminado es @code{no}, lo que significa que las salidas de las derivaciones se mantienen únicamente si son alcanzables desde alguna raíz del recolector de basura. @xref{Invoking guix gc}, para más información sobre las raíces del recolector de basura."
 
 #. type: item
-#: doc/guix.texi:1499
+#: doc/guix.texi:1602
 #, no-wrap
 msgid "--gc-keep-derivations[=yes|no]"
 msgstr "--gc-keep-derivations[=yes|no]"
 
 #. type: table
-#: doc/guix.texi:1502
+#: doc/guix.texi:1605
 msgid "Tell whether the garbage collector (GC) must keep derivations corresponding to live outputs."
 msgstr "Determina si el recolector de basura (GC) debe mantener derivaciones correspondientes a salidas vivas."
 
 #. type: table
-#: doc/guix.texi:1507
-msgid "When set to ``yes'', as is the case by default, the GC keeps derivations---i.e., @code{.drv} files---as long as at least one of their outputs is live.  This allows users to keep track of the origins of items in their store.  Setting it to ``no'' saves a bit of disk space."
-msgstr "Cuando se usa ``yes'', como es el caso predeterminado, el recolector de basura mantiene derivaciones---es decir, ficheros @code{.drv}---mientras al menos una de sus salidas está viva. Esto permite a las usuarias seguir la pista de los orígenes de los elementos en el almacén. El uso de ``no'' aquí ahorra un poco de espacio en disco."
+#: doc/guix.texi:1611
+msgid "When set to @code{yes}, as is the case by default, the GC keeps derivations---i.e., @file{.drv} files---as long as at least one of their outputs is live.  This allows users to keep track of the origins of items in their store.  Setting it to @code{no} saves a bit of disk space."
+msgstr "Cuando se usa @code{yes}, como es el caso predeterminado, el recolector de basura mantiene derivaciones---es decir, archivos @code{.drv}---mientras al menos una de sus salidas está viva. Esto permite a las usuarias seguir la pista de los orígenes de los elementos en el almacén. El uso de @code{no} aquí ahorra un poco de espacio en disco."
 
 #. type: table
-#: doc/guix.texi:1515
-msgid "In this way, setting @code{--gc-keep-derivations} to ``yes'' causes liveness to flow from outputs to derivations, and setting @code{--gc-keep-outputs} to ``yes'' causes liveness to flow from derivations to outputs.  When both are set to ``yes'', the effect is to keep all the build prerequisites (the sources, compiler, libraries, and other build-time tools) of live objects in the store, regardless of whether these prerequisites are reachable from a GC root.  This is convenient for developers since it saves rebuilds or downloads."
-msgstr "De este modo, usar @code{--gc-keep-derivations} con valor ``yes'' provoca que la vitalidad fluya de salidas a derivaciones, y usar @code{--gc-keep-outputs} con valor ``yes'' provoca que la vitalidad fluya de derivaciones a salidas. Cuando ambas tienen valor ``yes'', el efecto es mantener todos los prerrequisitos de construcción (las fuentes, el compilador, las bibliotecas y otras herramientas de tiempo de construcción) de los objetos vivos del almacén, independientemente de que esos prerrequisitos sean alcanzables desde una raíz del recolector de basura. Esto es conveniente para desarrolladoras ya que ahorra reconstrucciones o descargas."
+#: doc/guix.texi:1620
+msgid "In this way, setting @option{--gc-keep-derivations} to @code{yes} causes liveness to flow from outputs to derivations, and setting @option{--gc-keep-outputs} to @code{yes} causes liveness to flow from derivations to outputs.  When both are set to @code{yes}, the effect is to keep all the build prerequisites (the sources, compiler, libraries, and other build-time tools) of live objects in the store, regardless of whether these prerequisites are reachable from a GC root.  This is convenient for developers since it saves rebuilds or downloads."
+msgstr "De este modo, usar @option{--gc-keep-derivations} con valor @code{yes} provoca que la vitalidad fluya de salidas a derivaciones, y usar @option{--gc-keep-outputs} con valor @code{yes} provoca que la vitalidad fluya de derivaciones a salidas. Cuando ambas tienen valor @code{yes}, el efecto es mantener todos los prerrequisitos de construcción (las fuentes, el compilador, las bibliotecas y otras herramientas de tiempo de construcción) de los objetos vivos del almacén, independientemente de que esos prerrequisitos sean alcanzables desde una raíz del recolector de basura. Esto es conveniente para desarrolladoras ya que evita reconstrucciones o descargas."
 
 #. type: item
-#: doc/guix.texi:1516
+#: doc/guix.texi:1621
 #, no-wrap
 msgid "--impersonate-linux-2.6"
 msgstr "--impersonate-linux-2.6"
 
 #. type: table
-#: doc/guix.texi:1519
-msgid "On Linux-based systems, impersonate Linux 2.6.  This means that the kernel's @code{uname} system call will report 2.6 as the release number."
-msgstr "En sistemas basados en Linux, suplanta a Linux 2.6. Esto significa que la llamada del sistema @code{uname} del kernel indicará 2.6 como el número de publicación."
+#: doc/guix.texi:1624
+msgid "On Linux-based systems, impersonate Linux 2.6.  This means that the kernel's @command{uname} system call will report 2.6 as the release number."
+msgstr "En sistemas basados en Linux, suplanta a Linux 2.6. Esto significa que la llamada del sistema @command{uname} del núcleo indicará 2.6 como el número de versión de la publicación."
 
 #. type: table
-#: doc/guix.texi:1522
+#: doc/guix.texi:1627
 msgid "This might be helpful to build programs that (usually wrongfully) depend on the kernel version number."
 msgstr "Esto puede ser útil para construir programas que (habitualmente de forma incorrecta) dependen en el número de versión del núcleo."
 
 #. type: item
-#: doc/guix.texi:1523
+#: doc/guix.texi:1628
 #, no-wrap
 msgid "--lose-logs"
 msgstr "--lose-logs"
 
 #. type: table
-#: doc/guix.texi:1526
-msgid "Do not keep build logs.  By default they are kept under @code{@var{localstatedir}/guix/log}."
-msgstr "No guarda logs de construcción. Por defecto se almacenan bajo @code{@var{localstatedir}/guix/log}."
+#: doc/guix.texi:1631
+msgid "Do not keep build logs.  By default they are kept under @file{@var{localstatedir}/guix/log}."
+msgstr "No guarda logs de construcción. De manera predeterminada se almacenan en el directorio @file{@var{localstatedir}/guix/log}."
 
 #. type: item
-#: doc/guix.texi:1527 doc/guix.texi:3894 doc/guix.texi:4908 doc/guix.texi:5248
-#: doc/guix.texi:8635 doc/guix.texi:9993 doc/guix.texi:10199
-#: doc/guix.texi:10837 doc/guix.texi:26187 doc/guix.texi:26869
+#: doc/guix.texi:1632 doc/guix.texi:4368 doc/guix.texi:5636 doc/guix.texi:6007
+#: doc/guix.texi:10443 doc/guix.texi:11849 doc/guix.texi:12100
+#: doc/guix.texi:12756 doc/guix.texi:30230 doc/guix.texi:31006
 #, no-wrap
 msgid "--system=@var{system}"
 msgstr "--system=@var{sistema}"
 
 #. type: table
-#: doc/guix.texi:1531
+#: doc/guix.texi:1636
 msgid "Assume @var{system} as the current system type.  By default it is the architecture/kernel pair found at configure time, such as @code{x86_64-linux}."
 msgstr "Asume @var{sistema} como el tipo actual de sistema. Por defecto es el par de arquitectura/núcleo encontrado durante la configuración, como @code{x86_64-linux}."
 
 #. type: item
-#: doc/guix.texi:1532 doc/guix.texi:8115
+#: doc/guix.texi:1637 doc/guix.texi:9805
 #, no-wrap
 msgid "--listen=@var{endpoint}"
 msgstr "--listen=@var{destino}"
 
 #. type: table
-#: doc/guix.texi:1537
+#: doc/guix.texi:1642
 msgid "Listen for connections on @var{endpoint}.  @var{endpoint} is interpreted as the file name of a Unix-domain socket if it starts with @code{/} (slash sign).  Otherwise, @var{endpoint} is interpreted as a host name or host name and port to listen to.  Here are a few examples:"
-msgstr "Espera conexiones en @var{destino}. @var{destino} se interpreta como el nombre del fichero del socket de dominio Unix si comienza on @code{/} (barra a la derecha). En otro caso, @var{destino} se interpreta como un nombre de máquina o un nombre de máquina y puerto a escuchar. Aquí van unos pocos ejemplos:"
+msgstr "Espera conexiones en @var{destino}. @var{destino} se interpreta como el nombre del archivo del socket de dominio Unix si comienza on @code{/} (barra a la derecha). En otro caso, @var{destino} se interpreta como un nombre de máquina o un nombre de máquina y puerto a escuchar. Aquí van unos pocos ejemplos:"
 
 #. type: item
-#: doc/guix.texi:1539
+#: doc/guix.texi:1644
 #, no-wrap
 msgid "--listen=/gnu/var/daemon"
 msgstr "--listen=/gnu/var/daemon"
 
 #. type: table
-#: doc/guix.texi:1542
+#: doc/guix.texi:1647
 msgid "Listen for connections on the @file{/gnu/var/daemon} Unix-domain socket, creating it if needed."
 msgstr "Espera conexiones en el socket de dominio Unix @file{/gnu/var/daemon}, se crea si es necesario."
 
 #. type: item
-#: doc/guix.texi:1543
+#: doc/guix.texi:1648
 #, no-wrap
 msgid "--listen=localhost"
 msgstr "--listen=localhost"
 
 #. type: cindex
-#: doc/guix.texi:1544 doc/guix.texi:6869
+#: doc/guix.texi:1649 doc/guix.texi:8489
 #, no-wrap
 msgid "daemon, remote access"
 msgstr "daemon, acceso remoto"
 
 #. type: cindex
-#: doc/guix.texi:1545 doc/guix.texi:6870
+#: doc/guix.texi:1650 doc/guix.texi:8490
 #, no-wrap
 msgid "remote access to the daemon"
 msgstr "acceso remoto al daemon"
 
 # FUZZY
 #. type: cindex
-#: doc/guix.texi:1546 doc/guix.texi:6871
+#: doc/guix.texi:1651 doc/guix.texi:8491
 #, no-wrap
 msgid "daemon, cluster setup"
 msgstr "daemon, configuración en cluster"
 
 # FUZZY
 #. type: cindex
-#: doc/guix.texi:1547 doc/guix.texi:6872
+#: doc/guix.texi:1652 doc/guix.texi:8492
 #, no-wrap
 msgid "clusters, daemon setup"
 msgstr "daemon, configuración en cluster"
 
 #. type: table
-#: doc/guix.texi:1550
+#: doc/guix.texi:1655
 msgid "Listen for TCP connections on the network interface corresponding to @code{localhost}, on port 44146."
 msgstr "Espera conexiones TCP en la interfaz de red correspondiente a @code{localhost}, en el puerto 44146."
 
 #. type: item
-#: doc/guix.texi:1551
+#: doc/guix.texi:1656
 #, no-wrap
 msgid "--listen=128.0.0.42:1234"
 msgstr "--listen=128.0.0.42:1234"
 
 #. type: table
-#: doc/guix.texi:1554
+#: doc/guix.texi:1659
 msgid "Listen for TCP connections on the network interface corresponding to @code{128.0.0.42}, on port 1234."
 msgstr "Espera conexiones TCP en la interfaz de red correspondiente a @code{128.0.0.42}, en el puerto 1234."
 
 #. type: table
-#: doc/guix.texi:1561
-msgid "This option can be repeated multiple times, in which case @command{guix-daemon} accepts connections on all the specified endpoints.  Users can tell client commands what endpoint to connect to by setting the @code{GUIX_DAEMON_SOCKET} environment variable (@pxref{The Store, @code{GUIX_DAEMON_SOCKET}})."
-msgstr "Esta opción puede repetirse múltiples veces, en cuyo caso @command{guix-daemon} acepta conexiones en todos los destinos especificados. Las usuarias pueden indicar a los clientes a qué destino conectarse fijando la variable de entorno @code{GUIX_DAEMON_SOCKET} (@pxref{The Store, @code{GUIX_DAEMON_SOCKET}})."
+#: doc/guix.texi:1666
+msgid "This option can be repeated multiple times, in which case @command{guix-daemon} accepts connections on all the specified endpoints.  Users can tell client commands what endpoint to connect to by setting the @env{GUIX_DAEMON_SOCKET} environment variable (@pxref{The Store, @env{GUIX_DAEMON_SOCKET}})."
+msgstr "Esta opción puede repetirse múltiples veces, en cuyo caso @command{guix-daemon} acepta conexiones en todos los destinos especificados. Las usuarias pueden indicar a los clientes a qué destino conectarse proporcionando el valor deseado a la variable de entorno @env{GUIX_DAEMON_SOCKET} (@pxref{The Store, @env{GUIX_DAEMON_SOCKET}})."
 
 #. type: quotation
-#: doc/guix.texi:1568
-msgid "The daemon protocol is @emph{unauthenticated and unencrypted}.  Using @code{--listen=@var{host}} is suitable on local networks, such as clusters, where only trusted nodes may connect to the build daemon.  In other cases where remote access to the daemon is needed, we recommend using Unix-domain sockets along with SSH."
-msgstr "El protocolo del daemon @code{no está autentificado ni cifrado}. El uso de @code{--listen=@var{dirección}} es aceptable en redes locales, como clusters, donde únicamente los nodos de confianza pueden conectarse al daemon de construcción. En otros casos donde el acceso remoto al daemon es necesario, recomendamos usar sockets de dominio Unix junto a SSH."
+#: doc/guix.texi:1673
+msgid "The daemon protocol is @emph{unauthenticated and unencrypted}.  Using @option{--listen=@var{host}} is suitable on local networks, such as clusters, where only trusted nodes may connect to the build daemon.  In other cases where remote access to the daemon is needed, we recommend using Unix-domain sockets along with SSH."
+msgstr "El protocolo del daemon @code{no está autentificado ni cifrado}. El uso de @option{--listen=@var{dirección}} es aceptable en redes locales, como clusters, donde únicamente los nodos de confianza pueden conectarse al daemon de construcción. En otros casos donde el acceso remoto al daemon es necesario, recomendamos usar sockets de dominio Unix junto a SSH."
 
 #. type: table
-#: doc/guix.texi:1573
-msgid "When @code{--listen} is omitted, @command{guix-daemon} listens for connections on the Unix-domain socket located at @file{@var{localstatedir}/guix/daemon-socket/socket}."
-msgstr "Cuando se omite @code{--listen}, @command{guix-daemon} escucha conexiones en el socket de dominio Unix que se encuentra en @file{@var{localstatedir}/guix/daemon-socket/socket}."
+#: doc/guix.texi:1678
+msgid "When @option{--listen} is omitted, @command{guix-daemon} listens for connections on the Unix-domain socket located at @file{@var{localstatedir}/guix/daemon-socket/socket}."
+msgstr "Cuando se omite @option{--listen}, @command{guix-daemon} escucha conexiones en el socket de dominio Unix que se encuentra en @file{@var{localstatedir}/guix/daemon-socket/socket}."
 
 #. type: Plain text
-#: doc/guix.texi:1583
+#: doc/guix.texi:1688
 msgid "When using Guix on top of GNU/Linux distribution other than Guix System---a so-called @dfn{foreign distro}---a few additional steps are needed to get everything in place.  Here are some of them."
 msgstr "Cuando se usa Guix sobre una distribución GNU/Linux distinta al sistema Guix---una @dfn{distribución distinta}---unos pocos pasos adicionales son necesarios para tener todo preparado. Aquí están algunos de ellos."
 
 #. type: anchor{#1}
-#: doc/guix.texi:1587
+#: doc/guix.texi:1692
 msgid "locales-and-locpath"
 msgstr "locales-and-locpath"
 
 #. type: cindex
-#: doc/guix.texi:1587
+#: doc/guix.texi:1692
 #, no-wrap
 msgid "locales, when not on Guix System"
 msgstr "localizaciones, cuando no se está en el sistema Guix"
 
 #. type: vindex
-#: doc/guix.texi:1588 doc/guix.texi:12057
+#: doc/guix.texi:1693 doc/guix.texi:14207
 #, no-wrap
 msgid "LOCPATH"
 msgstr "LOCPATH"
 
 #. type: vindex
-#: doc/guix.texi:1589
+#: doc/guix.texi:1694
 #, no-wrap
 msgid "GUIX_LOCPATH"
 msgstr "GUIX_LOCPATH"
 
 #. type: Plain text
-#: doc/guix.texi:1594
-msgid "Packages installed @i{via} Guix will not use the locale data of the host system.  Instead, you must first install one of the locale packages available with Guix and then define the @code{GUIX_LOCPATH} environment variable:"
-msgstr "Los paquetes instalados @i{via} Guix no usarán los datos de localización del sistema anfitrión. En vez de eso, debe primero instalar uno de los paquetes de localización disponibles con Guix y después definir la variable de entorno @code{GUIX_LOCPATH}:"
+#: doc/guix.texi:1699
+msgid "Packages installed @i{via} Guix will not use the locale data of the host system.  Instead, you must first install one of the locale packages available with Guix and then define the @env{GUIX_LOCPATH} environment variable:"
+msgstr "Los paquetes instalados a través de Guix no usarán los datos de localización del sistema anfitrión. En vez de eso, debe instalar primero uno de los paquetes de localización disponibles con Guix y después definir la variable de entorno @env{GUIX_LOCPATH}:"
 
 #. type: example
-#: doc/guix.texi:1598
+#: doc/guix.texi:1703
 #, no-wrap
 msgid ""
 "$ guix install glibc-locales\n"
@@ -5644,138 +6249,138 @@ msgstr ""
 "$ export GUIX_LOCPATH=$HOME/.guix-profile/lib/locale\n"
 
 #. type: Plain text
-#: doc/guix.texi:1604
+#: doc/guix.texi:1709
 msgid "Note that the @code{glibc-locales} package contains data for all the locales supported by the GNU@tie{}libc and weighs in at around 917@tie{}MiB.  Alternatively, the @code{glibc-utf8-locales} is smaller but limited to a few UTF-8 locales."
 msgstr "Fíjese que el paquete @code{glibc-locales} contiene datos para todas las localizaciones que ofrece GNU@tie{}libc y pesa alrededor de 917@tie{}MiB. De manera alternativa, @code{glibc-utf8-locales} tiene menor tamaño pero está limitado a localizaciones UTF-8."
 
 #. type: Plain text
-#: doc/guix.texi:1608
-msgid "The @code{GUIX_LOCPATH} variable plays a role similar to @code{LOCPATH} (@pxref{Locale Names, @code{LOCPATH},, libc, The GNU C Library Reference Manual}).  There are two important differences though:"
-msgstr "La variable @code{GUIX_LOCPATH} juega un rol similar a @code{LOCPATH} (@pxref{Locale Names, @code{LOCPATH},, libc, The GNU C Library Reference Manual}). No obstante, hay dos diferencias importantes:"
+#: doc/guix.texi:1713
+msgid "The @env{GUIX_LOCPATH} variable plays a role similar to @env{LOCPATH} (@pxref{Locale Names, @env{LOCPATH},, libc, The GNU C Library Reference Manual}).  There are two important differences though:"
+msgstr "La variable @env{GUIX_LOCPATH} juega un rol similar a @env{LOCPATH} (@pxref{Locale Names, @env{LOCPATH},, libc, The GNU C Library Reference Manual}). No obstante, hay dos diferencias importantes:"
 
 #. type: enumerate
-#: doc/guix.texi:1615
-msgid "@code{GUIX_LOCPATH} is honored only by the libc in Guix, and not by the libc provided by foreign distros.  Thus, using @code{GUIX_LOCPATH} allows you to make sure the programs of the foreign distro will not end up loading incompatible locale data."
-msgstr "@code{GUIX_LOCPATH} es respetada únicamente por la libc dentro de Guix, y no por la libc que proporcionan las distribuciones distintas. Por tanto, usar @code{GUIX_LOCPATH} le permite asegurarse de que los programas de la distribución distinta no cargarán datos de localización incompatibles."
+#: doc/guix.texi:1720
+msgid "@env{GUIX_LOCPATH} is honored only by the libc in Guix, and not by the libc provided by foreign distros.  Thus, using @env{GUIX_LOCPATH} allows you to make sure the programs of the foreign distro will not end up loading incompatible locale data."
+msgstr "@env{GUIX_LOCPATH} es respetada únicamente por la libc dentro de Guix, y no por la libc que proporcionan las distribuciones distintas. Por tanto, usar @env{GUIX_LOCPATH} le permite asegurarse de que los programas de la distribución distinta no cargarán datos de localización incompatibles."
 
 #. type: enumerate
-#: doc/guix.texi:1622
-msgid "libc suffixes each entry of @code{GUIX_LOCPATH} with @code{/X.Y}, where @code{X.Y} is the libc version---e.g., @code{2.22}.  This means that, should your Guix profile contain a mixture of programs linked against different libc version, each libc version will only try to load locale data in the right format."
-msgstr "libc añade un sufijo a cada entrada de @code{GUIX_LOCPATH} con @code{/X.Y}, donde @code{X.Y} es la versión de libc---por ejemplo, @code{2.22}. Esto significa que, en caso que su perfil Guix contenga una mezcla de programas enlazados contra diferentes versiones de libc, cada versión de libc únicamente intentará cargar datos de localización en el formato correcto."
+#: doc/guix.texi:1727
+msgid "libc suffixes each entry of @env{GUIX_LOCPATH} with @code{/X.Y}, where @code{X.Y} is the libc version---e.g., @code{2.22}.  This means that, should your Guix profile contain a mixture of programs linked against different libc version, each libc version will only try to load locale data in the right format."
+msgstr "libc añade un sufijo a cada entrada de @env{GUIX_LOCPATH} con @code{/X.Y}, donde @code{X.Y} es la versión de libc---por ejemplo, @code{2.22}. Esto significa que, en caso que su perfil Guix contenga una mezcla de programas enlazados contra diferentes versiones de libc, cada versión de libc únicamente intentará cargar datos de localización en el formato correcto."
 
 #. type: Plain text
-#: doc/guix.texi:1626
+#: doc/guix.texi:1731
 msgid "This is important because the locale data format used by different libc versions may be incompatible."
 msgstr "Esto es importante porque el formato de datos de localización usado por diferentes versiones de libc puede ser incompatible."
 
 # TODO: Comprobar traducción de libc
 #. type: cindex
-#: doc/guix.texi:1629
+#: doc/guix.texi:1734
 #, no-wrap
 msgid "name service switch, glibc"
 msgstr "selector de servicios de nombres, glibc"
 
 # TODO: Comprobar traducción de libc
 #. type: cindex
-#: doc/guix.texi:1630
+#: doc/guix.texi:1735
 #, no-wrap
 msgid "NSS (name service switch), glibc"
 msgstr "NSS (selector de servicios de nombres), glibc"
 
 # TODO: Comprobar traducción de libc
 #. type: cindex
-#: doc/guix.texi:1631
+#: doc/guix.texi:1736
 #, no-wrap
 msgid "nscd (name service caching daemon)"
 msgstr "ncsd (daemon de caché del servicio de nombres)"
 
 # TODO: Comprobar traducción de libc
 #. type: cindex
-#: doc/guix.texi:1632
+#: doc/guix.texi:1737
 #, no-wrap
 msgid "name service caching daemon (nscd)"
 msgstr "daemon de caché del servicio de nombres (ncsd)"
 
 #. type: Plain text
-#: doc/guix.texi:1639
+#: doc/guix.texi:1744
 msgid "When using Guix on a foreign distro, we @emph{strongly recommend} that the system run the GNU C library's @dfn{name service cache daemon}, @command{nscd}, which should be listening on the @file{/var/run/nscd/socket} socket.  Failing to do that, applications installed with Guix may fail to look up host names or user accounts, or may even crash.  The next paragraphs explain why."
 msgstr "Cuando se usa Guix en una distribución distinta, @emph{recomendamos encarecidamente} que el sistema ejecute el @dfn{daemon de caché del servicio de nombres} de la biblioteca de C de GNU, @command{ncsd}, que debe escuchar en el socket @file{/var/run/nscd/socket}. En caso de no hacerlo, las aplicaciones instaladas con Guix pueden fallar al buscar nombres de máquinas o cuentas de usuaria, o incluso pueden terminar abruptamente. Los siguientes párrafos explican por qué."
 
 #. type: file{#1}
-#: doc/guix.texi:1640
+#: doc/guix.texi:1745
 #, no-wrap
 msgid "nsswitch.conf"
 msgstr "nsswitch.conf"
 
 #. type: Plain text
-#: doc/guix.texi:1645
+#: doc/guix.texi:1750
 msgid "The GNU C library implements a @dfn{name service switch} (NSS), which is an extensible mechanism for ``name lookups'' in general: host name resolution, user accounts, and more (@pxref{Name Service Switch,,, libc, The GNU C Library Reference Manual})."
 msgstr "La biblioteca de C de GNU implementa un @dfn{selector de servicios de nombres} (NSS), que es un mecanismo extensible para ``búsquedas de nombres'' en general: resolución de nombres de máquinas, cuentas de usuaria y más (@pxref{Name Service Switch,,, libc, The GNU C Library Reference Manual})."
 
 #. type: cindex
-#: doc/guix.texi:1646
+#: doc/guix.texi:1751
 #, no-wrap
 msgid "Network information service (NIS)"
 msgstr "Servicio de información de red (NIS)"
 
 #. type: cindex
-#: doc/guix.texi:1647
+#: doc/guix.texi:1752
 #, no-wrap
 msgid "NIS (Network information service)"
 msgstr "NIS (servicio de información de red)"
 
 #. type: Plain text
-#: doc/guix.texi:1656
+#: doc/guix.texi:1761
 msgid "Being extensible, the NSS supports @dfn{plugins}, which provide new name lookup implementations: for example, the @code{nss-mdns} plugin allow resolution of @code{.local} host names, the @code{nis} plugin allows user account lookup using the Network information service (NIS), and so on.  These extra ``lookup services'' are configured system-wide in @file{/etc/nsswitch.conf}, and all the programs running on the system honor those settings (@pxref{NSS Configuration File,,, libc, The GNU C Reference Manual})."
 msgstr "Al ser extensible, NSS permite el uso de @dfn{módulos}, los cuales proporcionan nuevas implementaciones de búsqueda de nombres: por ejemplo, el módulo @code{nss-mdns} permite la resolución de nombres de máquina @code{.local}, el módulo @code{nis} permite la búsqueda de cuentas de usuaria usando el servicio de información de red (NIS), etc. Estos ``servicios de búsqueda'' extra se configuran para todo el sistema en @file{/etc/nsswitch.conf}, y todos los programas en ejecución respetan esta configuración (@pxref{NSS Configuration File,,, libc, The GNU C Reference Manual})."
 
 #. type: Plain text
-#: doc/guix.texi:1666
+#: doc/guix.texi:1771
 msgid "When they perform a name lookup---for instance by calling the @code{getaddrinfo} function in C---applications first try to connect to the nscd; on success, nscd performs name lookups on their behalf.  If the nscd is not running, then they perform the name lookup by themselves, by loading the name lookup services into their own address space and running it.  These name lookup services---the @file{libnss_*.so} files---are @code{dlopen}'d, but they may come from the host system's C library, rather than from the C library the application is linked against (the C library coming from Guix)."
-msgstr "Cuando se realiza una búsqueda de nombres---por ejemplo, llamando a la función @code{getaddrinfo} en C---las aplicaciones primero intentarán conectar con nscd; en caso satisfactorio, nscd realiza la búsqueda de nombres en delegación suya. Si nscd no está ejecutándose, entonces realizan la búsqueda por ellas mismas, cargando los servicios de búsqueda de nombres en su propio espacio de direcciones y ejecutándola. Estos servicios de búsqueda de nombres---los ficheros @file{libnss_*.so}---son abiertos con @code{dlopen}, pero pueden venir de la biblioteca de C del sistema, en vez de la biblioteca de C contra la que la aplicación está enlazada (la biblioteca de C que viene en Guix)."
+msgstr "Cuando se realiza una búsqueda de nombres---por ejemplo, llamando a la función @code{getaddrinfo} en C---las aplicaciones primero intentarán conectar con nscd; en caso satisfactorio, nscd realiza la búsqueda de nombres en delegación suya. Si nscd no está ejecutándose, entonces realizan la búsqueda por ellas mismas, cargando los servicios de búsqueda de nombres en su propio espacio de direcciones y ejecutándola. Estos servicios de búsqueda de nombres---los archivos @file{libnss_*.so}---son abiertos con @code{dlopen}, pero pueden venir de la biblioteca de C del sistema, en vez de la biblioteca de C contra la que la aplicación está enlazada (la biblioteca de C que viene en Guix)."
 
 # FUZZY
 #. type: Plain text
-#: doc/guix.texi:1671
+#: doc/guix.texi:1776
 msgid "And this is where the problem is: if your application is linked against Guix's C library (say, glibc 2.24) and tries to load NSS plugins from another C library (say, @code{libnss_mdns.so} for glibc 2.22), it will likely crash or have its name lookups fail unexpectedly."
 msgstr "Y aquí es donde está el problema: si su aplicación está enlazada contra la biblioteca de C de Guix (digamos, glibc 2.24) e intenta cargar módulos de otra biblioteca de C (digamos, @code{libnss_mdns.so} para glibc 2.22), probablemente terminará abruptamente o sus búsquedas de nombres fallarán inesperadamente. "
 
 #. type: Plain text
-#: doc/guix.texi:1676
+#: doc/guix.texi:1781
 msgid "Running @command{nscd} on the system, among other advantages, eliminates this binary incompatibility problem because those @code{libnss_*.so} files are loaded in the @command{nscd} process, not in applications themselves."
-msgstr "Ejecutar @command{nscd} en el sistema, entre otras ventajas, elimina este problema de incompatibilidad binaria porque esos ficheros @code{libnss_*.so} se cargan en el proceso @command{nscd}, no en la aplicación misma."
+msgstr "Ejecutar @command{nscd} en el sistema, entre otras ventajas, elimina este problema de incompatibilidad binaria porque esos archivos @code{libnss_*.so} se cargan en el proceso @command{nscd}, no en la aplicación misma."
 
 #. type: subsection
-#: doc/guix.texi:1677
+#: doc/guix.texi:1782
 #, no-wrap
 msgid "X11 Fonts"
 msgstr "Tipografías X11"
 
 #. type: Plain text
-#: doc/guix.texi:1687
-msgid "The majority of graphical applications use Fontconfig to locate and load fonts and perform X11-client-side rendering.  The @code{fontconfig} package in Guix looks for fonts in @file{$HOME/.guix-profile} by default.  Thus, to allow graphical applications installed with Guix to display fonts, you have to install fonts with Guix as well.  Essential font packages include @code{gs-fonts}, @code{font-dejavu}, and @code{font-gnu-freefont-ttf}."
-msgstr "La mayoría de aplicaciones gráficas usan Fontconfig para encontrar y cargar tipografías y realizar la renderización del lado del cliente X11. El paquete @code{fontconfig} en Guix busca tipografías en @file{$HOME/.guix-profile} por defecto. Por tanto, para permitir a aplicaciones gráficas instaladas con Guix mostrar tipografías, tiene que instalar las tipografías también con Guix. Paquetes esenciales de tipografías incluyen @code{gs-fonts}, @code{font-dejavu} y @code{font-gnu-freefont-ttf}."
+#: doc/guix.texi:1792
+msgid "The majority of graphical applications use Fontconfig to locate and load fonts and perform X11-client-side rendering.  The @code{fontconfig} package in Guix looks for fonts in @file{$HOME/.guix-profile} by default.  Thus, to allow graphical applications installed with Guix to display fonts, you have to install fonts with Guix as well.  Essential font packages include @code{gs-fonts}, @code{font-dejavu}, and @code{font-gnu-freefont}."
+msgstr "La mayoría de aplicaciones gráficas usan Fontconfig para encontrar y cargar tipografías y realizar la renderización del lado del cliente X11. El paquete @code{fontconfig} en Guix busca tipografías en @file{$HOME/.guix-profile} por defecto. Por tanto, para permitir a aplicaciones gráficas instaladas con Guix mostrar tipografías, tiene que instalar las tipografías también con Guix. Paquetes esenciales de tipografías incluyen @code{gs-fonts}, @code{font-dejavu} y @code{font-gnu-freefont}."
 
 #. type: code{#1}
-#: doc/guix.texi:1688
+#: doc/guix.texi:1793
 #, no-wrap
 msgid "fc-cache"
 msgstr "fc-cache"
 
 # FUZZY
 #. type: cindex
-#: doc/guix.texi:1689
+#: doc/guix.texi:1794
 #, no-wrap
 msgid "font cache"
 msgstr "caché de tipografías"
 
 #. type: Plain text
-#: doc/guix.texi:1693
+#: doc/guix.texi:1798
 msgid "Once you have installed or removed fonts, or when you notice an application that does not find fonts, you may need to install Fontconfig and to force an update of its font cache by running:"
 msgstr "Una vez que haya instalado o borrado tipografías, o cuando se de cuenta de que una aplicación no encuentra las tipografías, puede que necesite instalar Fontconfig y forzar una actualización de su caché de tipografías ejecutando:"
 
 #. type: example
-#: doc/guix.texi:1697
+#: doc/guix.texi:1802
 #, no-wrap
 msgid ""
 "guix install fontconfig\n"
@@ -5785,485 +6390,460 @@ msgstr ""
 "fc-cache -rv\n"
 
 #. type: Plain text
-#: doc/guix.texi:1705
+#: doc/guix.texi:1810
 msgid "To display text written in Chinese languages, Japanese, or Korean in graphical applications, consider installing @code{font-adobe-source-han-sans} or @code{font-wqy-zenhei}.  The former has multiple outputs, one per language family (@pxref{Packages with Multiple Outputs}).  For instance, the following command installs fonts for Chinese languages:"
 msgstr "Para mostrar texto escrito en lenguas chinas, Japonés o Coreano en aplicaciones gráficas, considere instalar @code{font-adobe-source-han-sans} o @code{font-wqy-zenhei}. La anterior tiene múltiples salidas, una por familia de lengua (@pxref{Packages with Multiple Outputs}). Por ejemplo, la siguiente orden instala tipografías para lenguas chinas:"
 
 #. type: example
-#: doc/guix.texi:1708
+#: doc/guix.texi:1813
 #, no-wrap
 msgid "guix install font-adobe-source-han-sans:cn\n"
 msgstr "guix install font-adobe-source-han-sans:cn\n"
 
 #. type: code{#1}
-#: doc/guix.texi:1710
+#: doc/guix.texi:1815
 #, no-wrap
 msgid "xterm"
 msgstr "xterm"
 
 #. type: Plain text
-#: doc/guix.texi:1714
+#: doc/guix.texi:1819
 msgid "Older programs such as @command{xterm} do not use Fontconfig and instead rely on server-side font rendering.  Such programs require to specify a full name of a font using XLFD (X Logical Font Description), like this:"
 msgstr "Programas más antiguos como @command{xterm} no usan Fontconfig sino que dependen en el lado del servidor para realizar el renderizado de tipografías. Dichos programas requieren especificar un nombre completo de tipografía usando XLFD (Descripción lógica de tipografías X), como esta:"
 
 #. type: example
-#: doc/guix.texi:1717
+#: doc/guix.texi:1822
 #, no-wrap
 msgid "-*-dejavu sans-medium-r-normal-*-*-100-*-*-*-*-*-1\n"
 msgstr "-*-dejavu sans-medium-r-normal-*-*-100-*-*-*-*-*-1\n"
 
 #. type: Plain text
-#: doc/guix.texi:1721
+#: doc/guix.texi:1826
 msgid "To be able to use such full names for the TrueType fonts installed in your Guix profile, you need to extend the font path of the X server:"
 msgstr "Para ser capaz de usar estos nombres completos para las tipografías TrueType instaladas en su perfil Guix, necesita extender la ruta de fuentes del servidor X:"
 
 #. type: example
-#: doc/guix.texi:1726
+#: doc/guix.texi:1831
 #, no-wrap
 msgid "xset +fp $(dirname $(readlink -f ~/.guix-profile/share/fonts/truetype/fonts.dir))\n"
 msgstr "xset +fp $(dirname $(readlink -f ~/.guix-profile/share/fonts/truetype/fonts.dir))\n"
 
 #. type: code{#1}
-#: doc/guix.texi:1728
+#: doc/guix.texi:1833
 #, no-wrap
 msgid "xlsfonts"
 msgstr "xlsfonts"
 
 #. type: Plain text
-#: doc/guix.texi:1731
+#: doc/guix.texi:1836
 msgid "After that, you can run @code{xlsfonts} (from @code{xlsfonts} package)  to make sure your TrueType fonts are listed there."
 msgstr "Después de eso, puede ejecutar @code{xlsfonts} (del paquete @code{xlsfonts}) para asegurarse que sus tipografías TrueType se enumeran aquí."
 
 #. type: code{#1}
-#: doc/guix.texi:1735 doc/guix.texi:25926
+#: doc/guix.texi:1840 doc/guix.texi:29968
 #, no-wrap
 msgid "nss-certs"
 msgstr "nss-certs"
 
 #. type: Plain text
-#: doc/guix.texi:1738
+#: doc/guix.texi:1843
 msgid "The @code{nss-certs} package provides X.509 certificates, which allow programs to authenticate Web servers accessed over HTTPS."
 msgstr "El paquete @code{nss-certs} proporciona certificados X.509, que permiten a los programas verificar los servidores accedidos por HTTPS."
 
 #. type: Plain text
-#: doc/guix.texi:1743
+#: doc/guix.texi:1848
 msgid "When using Guix on a foreign distro, you can install this package and define the relevant environment variables so that packages know where to look for certificates.  @xref{X.509 Certificates}, for detailed information."
 msgstr "Cuando se usa Guix en una distribución distinta, puede instalar este paquete y definir las variables de entorno relevantes de modo que los paquetes sepan dónde buscar los certificados. @xref{X.509 Certificates}, para información detallada."
 
 #. type: subsection
-#: doc/guix.texi:1744
+#: doc/guix.texi:1849
 #, no-wrap
 msgid "Emacs Packages"
 msgstr "Paquetes Emacs"
 
 #. type: code{#1}
-#: doc/guix.texi:1746
+#: doc/guix.texi:1851
 #, no-wrap
 msgid "emacs"
 msgstr "emacs"
 
 #. type: Plain text
-#: doc/guix.texi:1752
-msgid "When you install Emacs packages with Guix, the Elisp files are placed under the @file{share/emacs/site-lisp/} directory of the profile in which they are installed.  The Elisp libraries are made available to Emacs through the @code{EMACSLOADPATH} environment variable, which is set when installing Emacs itself."
-msgstr "Cuando instale paquetes de Emacs con Guix los ficheros de Elisp se encuentran en el directorio @file{share/emacs/site-lisp/} del perfil en el que se instalen. Las bibliotecas de Elisp se ponen a disposición de Emacs a través de la variable de entorno @code{EMACSLOADPATH}, a la cual se le asigna un valor cuando se instale el propio Emacs."
-
-#. type: Plain text
-#: doc/guix.texi:1759
-msgid "Additionally, autoload definitions are automatically evaluated at the initialization of Emacs, by the Guix-specific @code{guix-emacs-autoload-packages} procedure.  If, for some reason, you want to avoid auto-loading the Emacs packages installed with Guix, you can do so by running Emacs with the @code{--no-site-file} option (@pxref{Init File,,, emacs, The GNU Emacs Manual})."
-msgstr "De manera adicional, las definiciones de carga automática se evaluan de manera automática en la inicialización de Emacs, mediante el procedimiento @code{guix-emacs-autoload-packages} específico de Guix. Si, por alguna razón, desea evitar la carga automática de paquetes Emacs instalados con Guix, puede hacerlo ejecutando Emacs con la opción @code{--no-site-file} (@pxref{Init File,,, emacs, The GNU Emacs Manual})."
-
-#. type: subsection
-#: doc/guix.texi:1760
-#, no-wrap
-msgid "The GCC toolchain"
-msgstr "La cadena de herramientas de GCC"
-
-#. type: cindex
-#: doc/guix.texi:1762
-#, no-wrap
-msgid "GCC"
-msgstr "GCC"
-
-#. type: cindex
-#: doc/guix.texi:1763
-#, no-wrap
-msgid "ld-wrapper"
-msgstr "ld-wrapper"
-
-#. type: Plain text
-#: doc/guix.texi:1772
-msgid "Guix offers individual compiler packages such as @code{gcc} but if you are in need of a complete toolchain for compiling and linking source code what you really want is the @code{gcc-toolchain} package.  This package provides a complete GCC toolchain for C/C++ development, including GCC itself, the GNU C Library (headers and binaries, plus debugging symbols in the @code{debug} output), Binutils, and a linker wrapper."
-msgstr "Guix ofrece paquetes de compiladores individuales como @code{gcc}, pero si necesita una cadena de herramientas completa para compilar y enlazar código fuente lo que realmente desea es el paquete @code{gcc-toolchain}. Este paquete proporciona una cadena de herramientas GCC para desarrollo C/C++, incluyendo el mismo GCC, la biblioteca de C GNU (cabeceras y binarios, más símbolos de desarrollo en la salida @code{debug}), Binutils y un recubrimiento del enlazador."
+#: doc/guix.texi:1857
+msgid "When you install Emacs packages with Guix, the Elisp files are placed under the @file{share/emacs/site-lisp/} directory of the profile in which they are installed.  The Elisp libraries are made available to Emacs through the @env{EMACSLOADPATH} environment variable, which is set when installing Emacs itself."
+msgstr "Cuando instale paquetes de Emacs con Guix los archivos de Elisp se encuentran en el directorio @file{share/emacs/site-lisp/} del perfil en el que se instalen. Las bibliotecas de Elisp se ponen a disposición de Emacs a través de la variable de entorno @env{EMACSLOADPATH}, a la cual se le asigna un valor cuando se instale el propio Emacs."
 
 #. type: Plain text
-#: doc/guix.texi:1778
-msgid "The wrapper's purpose is to inspect the @code{-L} and @code{-l} switches passed to the linker, add corresponding @code{-rpath} arguments, and invoke the actual linker with this new set of arguments.  You can instruct the wrapper to refuse to link against libraries not in the store by setting the @code{GUIX_LD_WRAPPER_ALLOW_IMPURITIES} environment variable to @code{no}."
-msgstr "El propósito del recubrimiento es inspeccionar las opciones @code{-L} y @code{-l} proporcionadas al enlazador, y los correspondientes parámetros @code{-rpath}, y llamar al enlazador real con este nuevo conjunto de parámetros. Puede instruir al recubrimiento para rechazar el enlace contra bibliotecas que no se encuentren en el almacén fijando el valor de la variable de entorno @code{GUIX_LD_WRAPPER_ALLOW_IMPURITIES} a @code{no}."
+#: doc/guix.texi:1864
+msgid "Additionally, autoload definitions are automatically evaluated at the initialization of Emacs, by the Guix-specific @code{guix-emacs-autoload-packages} procedure.  If, for some reason, you want to avoid auto-loading the Emacs packages installed with Guix, you can do so by running Emacs with the @option{--no-site-file} option (@pxref{Init File,,, emacs, The GNU Emacs Manual})."
+msgstr "De manera adicional, las definiciones de carga automática se evaluan de manera automática en la inicialización de Emacs, mediante el procedimiento @code{guix-emacs-autoload-packages} específico de Guix. Si, por alguna razón, desea evitar la carga automática de paquetes Emacs instalados con Guix, puede hacerlo ejecutando Emacs con la opción @option{--no-site-file} (@pxref{Init File,,, emacs, The GNU Emacs Manual})."
 
 #. type: cindex
-#: doc/guix.texi:1782
+#: doc/guix.texi:1869
 #, no-wrap
 msgid "Upgrading Guix, on a foreign distro"
 msgstr "Actualizar Guix, en una distribución distinta"
 
 #. type: Plain text
-#: doc/guix.texi:1785
+#: doc/guix.texi:1872
 msgid "To upgrade Guix, run:"
 msgstr "Para actualizar Guix ejecute:"
 
 #. type: example
-#: doc/guix.texi:1788
+#: doc/guix.texi:1875 doc/guix.texi:2745
 #, no-wrap
 msgid "guix pull\n"
 msgstr "guix pull\n"
 
 #. type: Plain text
-#: doc/guix.texi:1791
+#: doc/guix.texi:1878
 msgid "@xref{Invoking guix pull}, for more information."
 msgstr "@xref{Invoking guix pull}, para más información."
 
 #. type: cindex
-#: doc/guix.texi:1792
+#: doc/guix.texi:1879
 #, no-wrap
 msgid "upgrading Guix for the root user, on a foreign distro"
 msgstr "actualizar Guix para la usuaria root, en una distribución distinta"
 
 #. type: cindex
-#: doc/guix.texi:1793
+#: doc/guix.texi:1880
 #, no-wrap
 msgid "upgrading the Guix daemon, on a foreign distro"
 msgstr "actualización del daemon de Guix, en una distribución distinta"
 
 #. type: cindex
-#: doc/guix.texi:1794
+#: doc/guix.texi:1881
 #, no-wrap
 msgid "@command{guix pull} for the root user, on a foreign distro"
 msgstr "@command{guix pull} para la usuaria root, en una distribución distinta"
 
 #. type: Plain text
-#: doc/guix.texi:1797
+#: doc/guix.texi:1884
 msgid "On a foreign distro, you can upgrade the build daemon by running:"
 msgstr "En una distribución distinta puede actualizar el daemon de construcción ejecutando:"
 
 #. type: example
-#: doc/guix.texi:1800
+#: doc/guix.texi:1887
 #, no-wrap
 msgid "sudo -i guix pull\n"
 msgstr "sudo -i guix pull\n"
 
 #. type: Plain text
-#: doc/guix.texi:1805
+#: doc/guix.texi:1892
 msgid "followed by (assuming your distro uses the systemd service management tool):"
 msgstr "seguido de (asumiendo que su distribución usa la herramienta de gestión de servicios systemd):"
 
 #. type: example
-#: doc/guix.texi:1808
+#: doc/guix.texi:1895
 #, no-wrap
 msgid "systemctl restart guix-daemon.service\n"
 msgstr "systemctl restart guix-daemon.service\n"
 
 # FUZZY
 #. type: Plain text
-#: doc/guix.texi:1812
+#: doc/guix.texi:1899
 msgid "On Guix System, upgrading the daemon is achieved by reconfiguring the system (@pxref{Invoking guix system, @code{guix system reconfigure}})."
 msgstr "En el Sistema Guix, la actualización del daemon se lleva a cabo con la reconfiguración el sistema (@pxref{Invoking guix system, @code{guix system reconfigure}})."
 
 #. type: cindex
-#: doc/guix.texi:1819
+#: doc/guix.texi:1906
 #, no-wrap
 msgid "installing Guix System"
 msgstr "instalación del sistema Guix"
 
 #. type: cindex
-#: doc/guix.texi:1820
+#: doc/guix.texi:1907
 #, no-wrap
 msgid "Guix System, installation"
 msgstr "sistema Guix, instalación"
 
 #. type: Plain text
-#: doc/guix.texi:1825
+#: doc/guix.texi:1912
 msgid "This section explains how to install Guix System on a machine.  Guix, as a package manager, can also be installed on top of a running GNU/Linux system, @pxref{Installation}."
 msgstr "Esta sección explica cómo instalar el sistema Guix en una máquina. Guix, como gestor de paquetes, puede instalarse sobre un sistema GNU/Linux en ejecución, @pxref{Installation}."
 
 #. type: quotation
-#: doc/guix.texi:1834
+#: doc/guix.texi:1921
 msgid "You are reading this documentation with an Info reader.  For details on how to use it, hit the @key{RET} key (``return'' or ``enter'') on the link that follows: @pxref{Top, Info reader,, info-stnd, Stand-alone GNU Info}.  Hit @kbd{l} afterwards to come back here."
 msgstr "Está leyendo esta documentación con un lector Info. Para obtener detalles sobre su uso, presione la tecla @key{RET} (``retorno de carro'' o ``intro'') en el siguiente enlace: @pxref{Top, Info reader,, info-stnd, Stand-alone GNU Info}. Presione después @kbd{l} para volver aquí."
 
 #. type: quotation
-#: doc/guix.texi:1837
-msgid "Alternately, run @command{info info} in another tty to keep the manual available."
+#: doc/guix.texi:1924
+msgid "Alternatively, run @command{info info} in another tty to keep the manual available."
 msgstr "De manera alternativa, ejecute @command{info info} en otro terminal para mantener el manual disponible."
 
 #. type: Plain text
-#: doc/guix.texi:1858
+#: doc/guix.texi:1945
 msgid "We consider Guix System to be ready for a wide range of ``desktop'' and server use cases.  The reliability guarantees it provides---transactional upgrades and rollbacks, reproducibility---make it a solid foundation."
 msgstr "Consideramos que el sistema Guix está listo para un amplio rango de casos de uso, tanto de servidor como de escritorio. Las garantías que proporciona---actualizaciones transaccionales y vuelta atrás atómica, reproducibilidad---lo convierten en un cimiento sólido."
 
 #. type: Plain text
-#: doc/guix.texi:1861
+#: doc/guix.texi:1948
 msgid "Nevertheless, before you proceed with the installation, be aware of the following noteworthy limitations applicable to version @value{VERSION}:"
 msgstr "No obstante, antes de que proceda con la instalación, sea consciente de las siguientes limitaciones apreciables que se conocen en la versión @value{VERSION}:"
 
 #. type: itemize
-#: doc/guix.texi:1865
+#: doc/guix.texi:1952
 msgid "Support for the Logical Volume Manager (LVM) is missing."
 msgstr "No está implementada la funcionalidad del gestor de volúmenes lógicos (LVM)."
 
 #. type: itemize
-#: doc/guix.texi:1869
+#: doc/guix.texi:1956
 msgid "More and more system services are provided (@pxref{Services}), but some may be missing."
 msgstr "Se proporcionan más y más servicios del sistema (@pxref{Services}), pero pueden faltar algunos."
 
 #. type: itemize
-#: doc/guix.texi:1874
+#: doc/guix.texi:1961
 msgid "GNOME, Xfce, LXDE, and Enlightenment are available (@pxref{Desktop Services}), as well as a number of X11 window managers.  However, KDE is currently missing."
 msgstr "Están disponibles GNOME, Xfce, LXDE y Enlightenment (@pxref{Desktop Services}), así como un número de gestores de ventanas X11. No obstante, actualmente falta KDE."
 
 #. type: Plain text
-#: doc/guix.texi:1879
+#: doc/guix.texi:1966
 msgid "More than a disclaimer, this is an invitation to report issues (and success stories!), and to join us in improving it.  @xref{Contributing}, for more info."
 msgstr "Más que una descarga de responsabilidades es una invitación a informar de problemas (¡e historias satisfactorias!), y para unirse a nosotras en su mejora. @xref{Contributing}, para más información."
 
 # FUZZY
+# TODO (MAAV): Soporte
 #. type: cindex
-#: doc/guix.texi:1884
+#: doc/guix.texi:1971
 #, no-wrap
 msgid "hardware support on Guix System"
 msgstr "soporte de hardware en el sistema Guix"
 
 #. type: Plain text
-#: doc/guix.texi:1893
+#: doc/guix.texi:1980
 msgid "GNU@tie{}Guix focuses on respecting the user's computing freedom.  It builds around the kernel Linux-libre, which means that only hardware for which free software drivers and firmware exist is supported.  Nowadays, a wide range of off-the-shelf hardware is supported on GNU/Linux-libre---from keyboards to graphics cards to scanners and Ethernet controllers.  Unfortunately, there are still areas where hardware vendors deny users control over their own computing, and such hardware is not supported on Guix System."
 msgstr "GNU@tie{}Guix se enfoca en respetar la libertad de computación de las usuarias. Se construye sobre el núcleo Linux-libre, lo que significa que únicamente funciona hardware para el que existen controladores y firmware libres. Hoy en día, un amplio rango del hardware común funciona con GNU/Linux-libre---desde teclados a tarjetas gráficas a escáneres y controladoras Ethernet. Desafortunadamente, todavía hay áreas donde los fabricantes de hardware deniegan a las usuarias el control de su propia computación, y dicho hardware no funciona en el sistema Guix."
 
+# FUZZY FUZZY
+# TODO (MAAV): Soporte
 #. type: cindex
-#: doc/guix.texi:1894
+#: doc/guix.texi:1981
 #, no-wrap
 msgid "WiFi, hardware support"
 msgstr "WiFi, soporte hardware"
 
 #. type: Plain text
-#: doc/guix.texi:1903
+#: doc/guix.texi:1990
 msgid "One of the main areas where free drivers or firmware are lacking is WiFi devices.  WiFi devices known to work include those using Atheros chips (AR9271 and AR7010), which corresponds to the @code{ath9k} Linux-libre driver, and those using Broadcom/AirForce chips (BCM43xx with Wireless-Core Revision 5), which corresponds to the @code{b43-open} Linux-libre driver.  Free firmware exists for both and is available out-of-the-box on Guix System, as part of @code{%base-firmware} (@pxref{operating-system Reference, @code{firmware}})."
 msgstr "Una de las áreas principales donde faltan controladores o firmware libre son los dispositivos WiFi. Los dispositivos WiFi que se sabe que funcionan incluyen aquellos que usan los chips Atheros (AR9271 y AR7010), que corresponden al controlador @code{ath9k} de Linux-libre, y aquellos que usan los chips Broadcom/AirForce (BCM43xx con Wireless-Core Revisión 5), que corresponden al controlador @code{b43-open} de Linux-libre. Existe firmware libre para ambos, y está disponible por defecto en el sistema Guix, como parte de @code{%base-firmware} (@pxref{operating-system Reference, @code{firmware}})."
 
 #. type: cindex
-#: doc/guix.texi:1904
+#: doc/guix.texi:1991
 #, no-wrap
 msgid "RYF, Respects Your Freedom"
 msgstr "RYF, Respeta Su Libertad"
 
 #. type: Plain text
-#: doc/guix.texi:1910
+#: doc/guix.texi:1997
 msgid "The @uref{https://www.fsf.org/, Free Software Foundation} runs @uref{https://www.fsf.org/ryf, @dfn{Respects Your Freedom}} (RYF), a certification program for hardware products that respect your freedom and your privacy and ensure that you have control over your device.  We encourage you to check the list of RYF-certified devices."
 msgstr "La @uref{https://www.fsf.org/, Fundación del Software Libre} patrocina @uref{https://www.fsf.org/ryf, @dfn{Respeta Su Libertad}} (RYF), un programa de certificación para productos hardware que respetan su libertad y su privacidad y se aseguran de que usted tenga el control sobre su dispositivo. Le recomendamos que compruebe la lista de dispositivos certificados RYF."
 
 # FUZZY
 #. type: Plain text
-#: doc/guix.texi:1914
+#: doc/guix.texi:2001
 msgid "Another useful resource is the @uref{https://www.h-node.org/, H-Node} web site.  It contains a catalog of hardware devices with information about their support in GNU/Linux."
 msgstr "Otro recurso útil es el sitio web @uref{https://wwww.h-node.org/, H-Node}. Contiene un catálogo de dispositivos hardware con información acerca su funcionalidad con GNU/Linux."
 
 #. type: Plain text
-#: doc/guix.texi:1923
-msgid "An ISO-9660 installation image that can be written to a USB stick or burnt to a DVD can be downloaded from @indicateurl{@value{BASE-URL}/guix-system-install-@value{VERSION}.@var{system}.iso.xz}, where @var{system} is one of:"
-msgstr "Se puede descargar una imagen de instalación ISO-9660 que puede ser escrita en una memoria USB o grabada en un DVD desde @indicateurl{@value{BASE-URL}/guix-system-install-@value{VERSION}.@var{sistema}.iso.xz}, donde @var{sistema} es uno de los siguientes valores:"
+#: doc/guix.texi:2010
+msgid "An ISO-9660 installation image that can be written to a USB stick or burnt to a DVD can be downloaded from @indicateurl{@value{BASE-URL}/guix-system-install-@value{VERSION}.x86_64-linux.iso.xz}, where you can replace @code{x86_64-linux} with one of:"
+msgstr "Se puede descargar una imagen de instalación ISO-9660 que puede ser escrita en una memoria USB o grabada en un DVD desde @indicateurl{@value{BASE-URL}/guix-system-install-@value{VERSION}.x86_64-linux.iso.xz}, donde puede sustituir @code{x86_64-linux} con uno de los siguientes valores:"
 
 #. type: table
-#: doc/guix.texi:1927
+#: doc/guix.texi:2014
 msgid "for a GNU/Linux system on Intel/AMD-compatible 64-bit CPUs;"
 msgstr "para un sistema GNU/Linux en CPUs compatibles con la arquitectura de 64-bits de Intel/AMD;"
 
 #. type: table
-#: doc/guix.texi:1930
+#: doc/guix.texi:2017
 msgid "for a 32-bit GNU/Linux system on Intel-compatible CPUs."
 msgstr "para un sistema GNU/Linux en CPUs compatibles con la arquitectura de 32-bits de Intel."
 
 #. type: Plain text
-#: doc/guix.texi:1935
+#: doc/guix.texi:2022
 msgid "Make sure to download the associated @file{.sig} file and to verify the authenticity of the image against it, along these lines:"
-msgstr "Asegúrese de descargar el fichero @file{.sig} asociado y de verificar la autenticidad de la imagen contra él, más o menos así:"
+msgstr "Asegúrese de descargar el archivo @file{.sig} asociado y de verificar la autenticidad de la imagen contra él, más o menos así:"
 
 #. type: example
-#: doc/guix.texi:1939
+#: doc/guix.texi:2026
 #, no-wrap
 msgid ""
-"$ wget @value{BASE-URL}/guix-system-install-@value{VERSION}.@var{system}.iso.xz.sig\n"
-"$ gpg --verify guix-system-install-@value{VERSION}.@var{system}.iso.xz.sig\n"
+"$ wget @value{BASE-URL}/guix-system-install-@value{VERSION}.x86_64-linux.iso.xz.sig\n"
+"$ gpg --verify guix-system-install-@value{VERSION}.x86_64-linux.iso.xz.sig\n"
 msgstr ""
-"$ wget @value{BASE-URL}/guix-system-install-@value{VERSION}.@var{sistema}.iso.xz.sig\n"
-"$ gpg --verify guix-system-install-@value{VERSION}.@var{sistema}.iso.xz.sig\n"
+"$ wget @value{BASE-URL}/guix-system-install-@value{VERSION}.x86_64-linux.iso.xz.sig\n"
+"$ gpg --verify guix-system-install-@value{VERSION}.x86_64-linux.iso.xz.sig\n"
 
 #. type: Plain text
-#: doc/guix.texi:1959
+#: doc/guix.texi:2046
 msgid "This image contains the tools necessary for an installation.  It is meant to be copied @emph{as is} to a large-enough USB stick or DVD."
 msgstr "Esta imagen contiene las herramientas necesarias para una instalación. Está pensada ara ser copiada @emph{tal cual} a una memoria USB o DVD con espacio suficiente."
 
 #. type: unnumberedsubsec
-#: doc/guix.texi:1960
+#: doc/guix.texi:2047
 #, no-wrap
 msgid "Copying to a USB Stick"
 msgstr "Copiado en una memoria USB"
 
 #. type: Plain text
-#: doc/guix.texi:1963
+#: doc/guix.texi:2050
 msgid "To copy the image to a USB stick, follow these steps:"
 msgstr "Para copiar la imagen en una memoria USB, siga estos pasos:"
 
 #. type: enumerate
-#: doc/guix.texi:1967 doc/guix.texi:1992
+#: doc/guix.texi:2054 doc/guix.texi:2079
 msgid "Decompress the image using the @command{xz} command:"
 msgstr "Descomprima la imagen usando la orden @command{xz}:"
 
 #. type: example
-#: doc/guix.texi:1970 doc/guix.texi:1995
+#: doc/guix.texi:2057 doc/guix.texi:2082
 #, no-wrap
-msgid "xz -d guix-system-install-@value{VERSION}.@var{system}.iso.xz\n"
-msgstr "xz -d guix-system-install-@value{VERSION}.@var{sistema}.iso.xz\n"
+msgid "xz -d guix-system-install-@value{VERSION}.x86_64-linux.iso.xz\n"
+msgstr "xz -d guix-system-install-@value{VERSION}.x86_64-linux.iso.xz\n"
 
 #. type: enumerate
-#: doc/guix.texi:1976
+#: doc/guix.texi:2063
 msgid "Insert a USB stick of 1@tie{}GiB or more into your machine, and determine its device name.  Assuming that the USB stick is known as @file{/dev/sdX}, copy the image with:"
 msgstr "Conecte una memoria USB de 1@tie{}GiB o más a su máquina, y determine su nombre de dispositivo. Asumiendo que la memoria USB es @file{/dev/sdX} copie la imagen con:"
 
 #. type: example
-#: doc/guix.texi:1980
+#: doc/guix.texi:2067
 #, no-wrap
 msgid ""
-"dd if=guix-system-install-@value{VERSION}.@var{system}.iso of=/dev/sdX\n"
+"dd if=guix-system-install-@value{VERSION}.x86_64-linux.iso of=/dev/sdX status=progress\n"
 "sync\n"
 msgstr ""
-"dd if=guix-system-install-@value{VERSION}.@var{sistema}.iso of=/dev/sdX\n"
+"dd if=guix-system-install-@value{VERSION}.x86_64-linux.iso of=/dev/sdX\n"
 "sync\n"
 
 #. type: enumerate
-#: doc/guix.texi:1983
+#: doc/guix.texi:2070
 msgid "Access to @file{/dev/sdX} usually requires root privileges."
 msgstr "El acceso a @file{/dev/sdX} normalmente necesita privilegios de root."
 
 #. type: unnumberedsubsec
-#: doc/guix.texi:1985
+#: doc/guix.texi:2072
 #, no-wrap
 msgid "Burning on a DVD"
 msgstr "Grabación en un DVD"
 
 #. type: Plain text
-#: doc/guix.texi:1988
+#: doc/guix.texi:2075
 msgid "To copy the image to a DVD, follow these steps:"
 msgstr "Para copiar la imagen a un DVD, siga estos pasos:"
 
 #. type: enumerate
-#: doc/guix.texi:2001
+#: doc/guix.texi:2088
 msgid "Insert a blank DVD into your machine, and determine its device name.  Assuming that the DVD drive is known as @file{/dev/srX}, copy the image with:"
 msgstr "Introduzca un DVD en su máquina para grabarlo, y determine el nombre del dispositivo. Asumiendo que la unidad DVD es @file{/dev/srX}, copie la imagen con:"
 
 #. type: example
-#: doc/guix.texi:2004
+#: doc/guix.texi:2091
 #, no-wrap
-msgid "growisofs -dvd-compat -Z /dev/srX=guix-system-install-@value{VERSION}.@var{system}.iso\n"
-msgstr "growisofs -dvd-compat -Z /dev/srX=guix-system-install-@value{VERSION}.@var{sistema}.iso\n"
+msgid "growisofs -dvd-compat -Z /dev/srX=guix-system-install-@value{VERSION}.x86_64-linux.iso\n"
+msgstr "growisofs -dvd-compat -Z /dev/srX=guix-system-install-@value{VERSION}.x86_64-linux.iso\n"
 
 #. type: enumerate
-#: doc/guix.texi:2007
+#: doc/guix.texi:2094
 msgid "Access to @file{/dev/srX} usually requires root privileges."
 msgstr "El acceso a @file{/dev/srX} normalmente necesita privilegios de root."
 
 #. type: unnumberedsubsec
-#: doc/guix.texi:2009
+#: doc/guix.texi:2096
 #, no-wrap
 msgid "Booting"
 msgstr "Arranque"
 
 #. type: Plain text
-#: doc/guix.texi:2016
+#: doc/guix.texi:2103
 msgid "Once this is done, you should be able to reboot the system and boot from the USB stick or DVD.  The latter usually requires you to get in the BIOS or UEFI boot menu, where you can choose to boot from the USB stick.  In order to boot from Libreboot, switch to the command mode by pressing the @kbd{c} key and type @command{search_grub usb}."
 msgstr "Una vez hecho esto, debe ser capaz de reiniciar el sistema y arrancar desde la memoria USB o el DVD. Para lo primero habitualmente es necesario introducirse en la BIOS o en el menú de arranque UEFI, donde se puede seleccionar el arranque desde la memoria USB. Para arrancar desde Libreboot, cambie a la línea de ordenes pulsando la tecla @kbd{c} y teclee @command{search_grub usb}."
 
 #. type: Plain text
-#: doc/guix.texi:2019
+#: doc/guix.texi:2106
 msgid "@xref{Installing Guix in a VM}, if, instead, you would like to install Guix System in a virtual machine (VM)."
 msgstr "@xref{Installing Guix in a VM}, si, en vez de esto, desea instalar el sistema Guix en una máquina virtual (VM)."
 
 # FUZZY
 #. type: Plain text
-#: doc/guix.texi:2029
-msgid "Once you have booted, you can use the guided graphical installer, which makes it easy to get started (@pxref{Guided Graphical Installation}).  Alternately, if you are already familiar with GNU/Linux and if you want more control than what the graphical installer provides, you can choose the ``manual'' installation process (@pxref{Manual Installation})."
+#: doc/guix.texi:2116
+msgid "Once you have booted, you can use the guided graphical installer, which makes it easy to get started (@pxref{Guided Graphical Installation}).  Alternatively, if you are already familiar with GNU/Linux and if you want more control than what the graphical installer provides, you can choose the ``manual'' installation process (@pxref{Manual Installation})."
 msgstr "Una vez que haya arrancado, puede usar el instalador gráfico guiado, el cual facilita la introducción al sistema (@pxref{Guided Graphical Installation}). Alternativamente, si ya es está familiarizada con GNU/Linux y desea más control que el que proporciona el instalador gráfico, puede seleccionar el proceso de instalación ``manual'' (@pxref{Manual Installation})."
 
 #. type: Plain text
-#: doc/guix.texi:2037
+#: doc/guix.texi:2124
 msgid "The graphical installer is available on TTY1.  You can obtain root shells on TTYs 3 to 6 by hitting @kbd{ctrl-alt-f3}, @kbd{ctrl-alt-f4}, etc.  TTY2 shows this documentation and you can reach it with @kbd{ctrl-alt-f2}.  Documentation is browsable using the Info reader commands (@pxref{Top,,, info-stnd, Stand-alone GNU Info}).  The installation system runs the GPM mouse daemon, which allows you to select text with the left mouse button and to paste it with the middle button."
-msgstr "El instalador gráfico está disponible en TTY1. Puede obtener consolas de root en los TTY 3 a 6 pulsando @kbd{ctrl-alt-f3}, @kbd{ctrl-alt-f4}, etc. TTY2 muestra esta documentación y se puede cambiar a dicha consola con @kbd{ctrl-alt-f2}. La documentación es explorable usando las órdenes del lector Info (@pxref{Top,,, info-stnd, Stand-alone GNU Info}). El sistema de instalación ejecuta el daemon GPM para ratones, el cual le permite seleccionar texto con el botón izquierdo y pegarlo con el botón central."
+msgstr "El instalador gráfico está disponible en TTY1. Puede obtener consolas de administración (``root'') en los TTY 3 a 6 pulsando @kbd{ctrl-alt-f3}, @kbd{ctrl-alt-f4}, etc. TTY2 muestra esta documentación y se puede cambiar a dicha consola con @kbd{ctrl-alt-f2}. La documentación es explorable usando las órdenes del lector Info (@pxref{Top,,, info-stnd, Stand-alone GNU Info}). El sistema de instalación ejecuta el daemon GPM para ratones, el cual le permite seleccionar texto con el botón izquierdo y pegarlo con el botón central."
 
 #. type: quotation
-#: doc/guix.texi:2042
+#: doc/guix.texi:2129
 msgid "Installation requires access to the Internet so that any missing dependencies of your system configuration can be downloaded.  See the ``Networking'' section below."
 msgstr "La instalación requiere acceso a Internet de modo que cualquier dependencia de su configuración de sistema no encontrada pueda ser descargada. Véase la sección ``Red'' más adelante."
 
 #. type: Plain text
-#: doc/guix.texi:2049
+#: doc/guix.texi:2136
 msgid "The graphical installer is a text-based user interface.  It will guide you, with dialog boxes, through the steps needed to install GNU@tie{}Guix System."
 msgstr "El instalador gráfico es una interfaz de usuaria basada en texto. Le guiará, con cajas de diálogo, a través de los pasos necesarios para instalar el sistema GNU@tie{}Guix."
 
 #. type: Plain text
-#: doc/guix.texi:2054
+#: doc/guix.texi:2141
 msgid "The first dialog boxes allow you to set up the system as you use it during the installation: you can choose the language, keyboard layout, and set up networking, which will be used during the installation.  The image below shows the networking dialog."
 msgstr "Las primeras cajas de diálogo le permiten configurar el sistema mientras lo usa durante la instalación: puede seleccionar el idioma, la distribución del teclado y configurar la red, la cual se usará durante la instalación. La siguiente imagen muestra el diálogo de configuración de red."
 
 #. type: Plain text
-#: doc/guix.texi:2056
+#: doc/guix.texi:2143
 msgid "@image{images/installer-network,5in,, networking setup with the graphical installer}"
 msgstr "@image{images/installer-network,5in,, configuración de red en la instalación gráfica}"
 
 #. type: Plain text
-#: doc/guix.texi:2061
+#: doc/guix.texi:2148
 msgid "Later steps allow you to partition your hard disk, as shown in the image below, to choose whether or not to use encrypted file systems, to enter the host name and root password, and to create an additional account, among other things."
-msgstr "Los siguientes pasos le permitirán particionar su disco duro, como se muestra en la siguiente imagen, elegir si se usarán o no sistemas de ficheros cifrados, introducir el nombre de la máquina, la contraseña de root y crear cuentas adicionales, entre otras cosas."
+msgstr "Los siguientes pasos le permitirán particionar su disco duro, como se muestra en la siguiente imagen, elegir si se usarán o no sistemas de archivos cifrados, introducir el nombre de la máquina, la contraseña de root y crear cuentas adicionales, entre otras cosas."
 
 #. type: Plain text
-#: doc/guix.texi:2063
+#: doc/guix.texi:2150
 msgid "@image{images/installer-partitions,5in,, partitioning with the graphical installer}"
 msgstr "@image{images/installer-partitions,5in,, particionado en la instalación gráfica}"
 
 #. type: Plain text
-#: doc/guix.texi:2066
+#: doc/guix.texi:2153
 msgid "Note that, at any time, the installer allows you to exit the current installation step and resume at a previous step, as show in the image below."
 msgstr "Tenga en cuenta que, en cualquier momento, el instalador le permite salir de la instalación actual y retomarla en un paso previo, como se muestra en la siguiente imagen."
 
 #. type: Plain text
-#: doc/guix.texi:2068
+#: doc/guix.texi:2155
 msgid "@image{images/installer-resume,5in,, resuming the installation process}"
 msgstr "@image{images/installer-resume,5in,, retomado del proceso de instalación}"
 
 #. type: Plain text
-#: doc/guix.texi:2073
+#: doc/guix.texi:2160
 msgid "Once you're done, the installer produces an operating system configuration and displays it (@pxref{Using the Configuration System}).  At that point you can hit ``OK'' and installation will proceed.  On success, you can reboot into the new system and enjoy.  @xref{After System Installation}, for what's next!"
 msgstr "Una vez haya finalizado, el instalador produce una configuración de sistema operativo y la muestra (@pxref{Using the Configuration System}). En este punto puede pulsar ``OK'' y la instalación procederá. En caso de finalización satisfactoria, puede reiniciar con el nuevo sistema y disfrutarlo. ¡@xref{After System Installation} para ver cómo proceder a continuación!"
 
 #. type: Plain text
-#: doc/guix.texi:2083
+#: doc/guix.texi:2170
 msgid "This section describes how you would ``manually'' install GNU@tie{}Guix System on your machine.  This option requires familiarity with GNU/Linux, with the shell, and with common administration tools.  If you think this is not for you, consider using the guided graphical installer (@pxref{Guided Graphical Installation})."
-msgstr "Esta sección describe como podría instalar ``manualmente'' el sistema GNU@tie{}Guix en su máquina. Esta opción requiere familiaridad con GNU/Linux, con el shell y con las herramientas de administración comunes. Si piensa que no es para usted, considere el uso del instalador gráfico guiado (@pxref{Guided Graphical Installation})."
+msgstr "Esta sección describe como podría instalar ``manualmente'' el sistema GNU@tie{}Guix en su máquina. Esta opción requiere familiaridad con GNU/Linux, con el intérprete y con las herramientas de administración comunes. Si piensa que no es para usted, considere el uso del instalador gráfico guiado (@pxref{Guided Graphical Installation})."
 
 #. type: Plain text
-#: doc/guix.texi:2089
+#: doc/guix.texi:2176
 msgid "The installation system provides root shells on TTYs 3 to 6; press @kbd{ctrl-alt-f3}, @kbd{ctrl-alt-f4}, and so on to reach them.  It includes many common tools needed to install the system.  But it is also a full-blown Guix System, which means that you can install additional packages, should you need it, using @command{guix package} (@pxref{Invoking guix package})."
-msgstr "El sistema de instalación proporciona consolas de root en los terminales virtuales (TTY) 3 a 6; pulse @kbd{ctrl-alt-f3}, @kbd{ctrl-alt-f4} y sucesivas teclas para abrirlas. Incluye muchas herramientas comunes necesarias para la instalación del sistema. Pero es también un sistema Guix completo, lo que significa que puede instalar paquetes adicionales, en caso de necesitarlos, mediante el uso de @command{guix package} (@pxref{Invoking guix package})."
+msgstr "El sistema de instalación proporciona consolas de administración (``root'') en los terminales virtuales (TTY) 3 a 6; pulse @kbd{ctrl-alt-f3}, @kbd{ctrl-alt-f4} y sucesivas teclas para abrirlas. Incluye muchas herramientas comunes necesarias para la instalación del sistema. Pero es también un sistema Guix completo, lo que significa que puede instalar paquetes adicionales, en caso de necesitarlos, mediante el uso de @command{guix package} (@pxref{Invoking guix package})."
 
 #. type: subsection
-#: doc/guix.texi:2096
+#: doc/guix.texi:2183
 #, no-wrap
 msgid "Keyboard Layout, Networking, and Partitioning"
 msgstr "Distribución de teclado, red y particionado"
 
 #. type: Plain text
-#: doc/guix.texi:2101
+#: doc/guix.texi:2188
 msgid "Before you can install the system, you may want to adjust the keyboard layout, set up networking, and partition your target hard disk.  This section will guide you through this."
 msgstr "Antes de instalar el sistema, puede desear ajustar la distribución del teclado, configurar la red y particionar el disco duro deseado. Esta sección le guiará durante este proceso."
 
 #. type: cindex
-#: doc/guix.texi:2104 doc/guix.texi:11882
+#: doc/guix.texi:2191 doc/guix.texi:14021
 #, no-wrap
 msgid "keyboard layout"
 msgstr "distribución de teclado"
@@ -6271,115 +6851,115 @@ msgstr "distribución de teclado"
 # MAAV: Considero que este ejemplo es mucho más útil para los lectores
 # de esta versión del manual.
 #. type: Plain text
-#: doc/guix.texi:2108
+#: doc/guix.texi:2195
 msgid "The installation image uses the US qwerty keyboard layout.  If you want to change it, you can use the @command{loadkeys} command.  For example, the following command selects the Dvorak keyboard layout:"
 msgstr "La imagen de instalación usa la distribución de teclado QWERTY de los EEUU. Si desea cambiarla, puede usar la orden @command{loadkeys}. Por ejemplo, la siguiente orden selecciona la distribución de teclado para el castellano:"
 
 # MAAV: Considero que este ejemplo es mucho más útil para los lectores
 # de esta versión del manual.
 #. type: example
-#: doc/guix.texi:2111
+#: doc/guix.texi:2198
 #, no-wrap
 msgid "loadkeys dvorak\n"
 msgstr "loadkeys es\n"
 
 #. type: Plain text
-#: doc/guix.texi:2116
+#: doc/guix.texi:2203
 msgid "See the files under @file{/run/current-system/profile/share/keymaps} for a list of available keyboard layouts.  Run @command{man loadkeys} for more information."
-msgstr "Véanse los ficheros bajo @file{/run/current-system/profile/share/keymaps} para la obtención de una lista de distribuciones de teclado disponibles. Ejecute @command{man loadkeys} para más información."
+msgstr "Véanse los archivos bajo @file{/run/current-system/profile/share/keymaps} para la obtención de una lista de distribuciones de teclado disponibles. Ejecute @command{man loadkeys} para más información."
 
 #. type: subsubsection
-#: doc/guix.texi:2117
+#: doc/guix.texi:2204
 #, no-wrap
 msgid "Networking"
 msgstr "Red"
 
 #. type: Plain text
-#: doc/guix.texi:2120
+#: doc/guix.texi:2207
 msgid "Run the following command to see what your network interfaces are called:"
 msgstr "Ejecute la siguiente orden para ver los nombres asignados a sus interfaces de red:"
 
 #. type: example
-#: doc/guix.texi:2123
+#: doc/guix.texi:2210
 #, no-wrap
 msgid "ifconfig -a\n"
 msgstr "ifconfig -a\n"
 
 #. type: table
-#: doc/guix.texi:2127 doc/guix.texi:2149
+#: doc/guix.texi:2214 doc/guix.texi:2236
 msgid "@dots{} or, using the GNU/Linux-specific @command{ip} command:"
 msgstr "@dots{} o, usando la orden específica de GNU/Linux @command{ip}:"
 
 #. type: example
-#: doc/guix.texi:2130
+#: doc/guix.texi:2217
 #, no-wrap
 msgid "ip address\n"
 msgstr "ip address\n"
 
 #. type: Plain text
-#: doc/guix.texi:2137
+#: doc/guix.texi:2224
 msgid "Wired interfaces have a name starting with @samp{e}; for example, the interface corresponding to the first on-board Ethernet controller is called @samp{eno1}.  Wireless interfaces have a name starting with @samp{w}, like @samp{w1p2s0}."
 msgstr "El nombre de las interfaces de cable comienza con @samp{e}; por ejemplo, la interfaz que corresponde a la primera controladora Ethernet en la placa se llama @samp{eno1}. El nombre de las interfaces inalámbricas comienza con @samp{w}, como @samp{w1p2s0}."
 
 #. type: item
-#: doc/guix.texi:2139
+#: doc/guix.texi:2226
 #, no-wrap
 msgid "Wired connection"
 msgstr "Conexión por cable"
 
 #. type: table
-#: doc/guix.texi:2142
+#: doc/guix.texi:2229
 msgid "To configure a wired network run the following command, substituting @var{interface} with the name of the wired interface you want to use."
 msgstr "Para configurar una red por cable ejecute la siguiente orden, substituyendo @var{interfaz} con el nombre de la interfaz de cable que desea usar."
 
 #. type: example
-#: doc/guix.texi:2145
+#: doc/guix.texi:2232
 #, no-wrap
 msgid "ifconfig @var{interface} up\n"
 msgstr "ifconfig @var{interfaz} up\n"
 
 #. type: example
-#: doc/guix.texi:2152
+#: doc/guix.texi:2239
 #, no-wrap
 msgid "ip link set @var{interface} up\n"
 msgstr "ip link set @var{interfaz} up\n"
 
 #. type: item
-#: doc/guix.texi:2154
+#: doc/guix.texi:2241
 #, no-wrap
 msgid "Wireless connection"
 msgstr "Conexión sin cable"
 
 #. type: cindex
-#: doc/guix.texi:2155 doc/guix.texi:13404
+#: doc/guix.texi:2242 doc/guix.texi:15600
 #, no-wrap
 msgid "wireless"
 msgstr "sin cables"
 
 #. type: cindex
-#: doc/guix.texi:2156 doc/guix.texi:13405
+#: doc/guix.texi:2243 doc/guix.texi:15601
 #, no-wrap
 msgid "WiFi"
 msgstr "WiFi"
 
 #. type: table
-#: doc/guix.texi:2161
+#: doc/guix.texi:2248
 msgid "To configure wireless networking, you can create a configuration file for the @command{wpa_supplicant} configuration tool (its location is not important) using one of the available text editors such as @command{nano}:"
-msgstr "Para configurar una red inalámbrica, puede crear un fichero de configuración para la herramienta de configuración @command{wpa_supplicant} (su ruta no es importante) usando uno de los editores de texto disponibles como @command{nano}:"
+msgstr "Para configurar una red inalámbrica, puede crear un archivo de configuración para la herramienta de configuración @command{wpa_supplicant} (su ruta no es importante) usando uno de los editores de texto disponibles como @command{nano}:"
 
 #. type: example
-#: doc/guix.texi:2164
+#: doc/guix.texi:2251
 #, no-wrap
 msgid "nano wpa_supplicant.conf\n"
 msgstr "nano wpa_supplicant.conf\n"
 
 #. type: table
-#: doc/guix.texi:2169
+#: doc/guix.texi:2256
 msgid "As an example, the following stanza can go to this file and will work for many wireless networks, provided you give the actual SSID and passphrase for the network you are connecting to:"
-msgstr "Como un ejemplo, la siguiente plantilla puede colocarse en este fichero y funcionará para muchas redes inalámbricas, siempre que se proporcione el SSID y la contraseña reales de la red a la que se va a conectar:"
+msgstr "Como un ejemplo, la siguiente plantilla puede colocarse en este archivo y funcionará para muchas redes inalámbricas, siempre que se proporcione el SSID y la contraseña reales de la red a la que se va a conectar:"
 
 #. type: example
-#: doc/guix.texi:2176
+#: doc/guix.texi:2263
 #, no-wrap
 msgid ""
 "network=@{\n"
@@ -6395,206 +6975,214 @@ msgstr ""
 "@}\n"
 
 #. type: table
-#: doc/guix.texi:2181
+#: doc/guix.texi:2268
 msgid "Start the wireless service and run it in the background with the following command (substitute @var{interface} with the name of the network interface you want to use):"
 msgstr "Inicie el servicio inalámbrico y lance su ejecución en segundo plano con la siguiente orden (sustituya @var{interfaz} por el nombre de la interfaz de red que desea usar):"
 
 #. type: example
-#: doc/guix.texi:2184
+#: doc/guix.texi:2271
 #, no-wrap
 msgid "wpa_supplicant -c wpa_supplicant.conf -i @var{interface} -B\n"
 msgstr "wpa_supplicant -c wpa_supplicant.conf -i @var{interfaz} -B\n"
 
 #. type: table
-#: doc/guix.texi:2187
+#: doc/guix.texi:2274
 msgid "Run @command{man wpa_supplicant} for more information."
 msgstr "Ejecute @command{man wpa_supplicant} para más información."
 
 #. type: cindex
-#: doc/guix.texi:2189
+#: doc/guix.texi:2276
 #, no-wrap
 msgid "DHCP"
 msgstr "DHCP"
 
 #. type: Plain text
-#: doc/guix.texi:2192
+#: doc/guix.texi:2279
 msgid "At this point, you need to acquire an IP address.  On a network where IP addresses are automatically assigned @i{via} DHCP, you can run:"
 msgstr "En este punto, necesita obtener una dirección IP. En una red donde las direcciones IP se asignan automáticamente mediante DHCP, puede ejecutar:"
 
 #. type: example
-#: doc/guix.texi:2195
+#: doc/guix.texi:2282
 #, no-wrap
 msgid "dhclient -v @var{interface}\n"
 msgstr "dhclient -v @var{interfaz}\n"
 
 #. type: Plain text
-#: doc/guix.texi:2198
+#: doc/guix.texi:2285
 msgid "Try to ping a server to see if networking is up and running:"
 msgstr "Intente hacer ping a un servidor para comprobar si la red está funcionando correctamente:"
 
 #. type: example
-#: doc/guix.texi:2201
+#: doc/guix.texi:2288
 #, no-wrap
 msgid "ping -c 3 gnu.org\n"
 msgstr "ping -c 3 gnu.org\n"
 
 #. type: Plain text
-#: doc/guix.texi:2205
+#: doc/guix.texi:2292
 msgid "Setting up network access is almost always a requirement because the image does not contain all the software and tools that may be needed."
 msgstr "Configurar el acceso por red es casi siempre un requisito debido a que la imagen no contiene todo el software y las herramientas que puedan ser necesarias."
 
 #. type: cindex
-#: doc/guix.texi:2206
+#: doc/guix.texi:2293
 #, no-wrap
 msgid "proxy, during system installation"
-msgstr "proxy, durante la instalación del sistema"
+msgstr ""
+"proxy (pasarela), durante la instalación del sistema\n"
+"@cindex pasarela (proxy), durante la instalación del sistema"
 
 #. type: Plain text
-#: doc/guix.texi:2209
+#: doc/guix.texi:2296
 msgid "If you need HTTP and HTTPS access to go through a proxy, run the following command:"
-msgstr "Si necesita que el acceso a HTTP y HTTPS se produzca a través de un proxy, ejecute la siguiente orden:"
+msgstr "Si necesita que el acceso a HTTP y HTTPS se produzca a través de una pasarela (``proxy''), ejecute la siguiente orden:"
 
 #. type: example
-#: doc/guix.texi:2212
+#: doc/guix.texi:2299
 #, no-wrap
 msgid "herd set-http-proxy guix-daemon @var{URL}\n"
 msgstr "herd set-http-proxy guix-daemon @var{URL}\n"
 
 #. type: Plain text
-#: doc/guix.texi:2217
+#: doc/guix.texi:2304
 msgid "where @var{URL} is the proxy URL, for example @code{http://example.org:8118}."
-msgstr "donde @var{URL} es la URL del proxy, por ejemplo @code{http://example.org:8118}."
+msgstr "donde @var{URL} es la URL de la pasarela, por ejemplo @code{http://example.org:8118}."
 
 #. type: cindex
-#: doc/guix.texi:2218
+#: doc/guix.texi:2305
 #, no-wrap
 msgid "installing over SSH"
 msgstr "instalación por SSH"
 
 #. type: Plain text
-#: doc/guix.texi:2221
+#: doc/guix.texi:2308
 msgid "If you want to, you can continue the installation remotely by starting an SSH server:"
 msgstr "Si lo desea, puede continuar la instalación de forma remota iniciando un servidor SSH:"
 
 #. type: example
-#: doc/guix.texi:2224
+#: doc/guix.texi:2311
 #, no-wrap
 msgid "herd start ssh-daemon\n"
 msgstr "herd start ssh-daemon\n"
 
 #. type: Plain text
-#: doc/guix.texi:2228
+#: doc/guix.texi:2315
 msgid "Make sure to either set a password with @command{passwd}, or configure OpenSSH public key authentication before logging in."
-msgstr "Asegúrese de fijar una contraseña con @command{passwd}, o configurar la verificación de clave pública de OpenSSH para la introducción en el sistema."
+msgstr "Asegúrese de establecer una contraseña con @command{passwd}, o configure la verificación de clave pública de OpenSSH antes de ingresar al sistema."
 
 #. type: subsubsection
-#: doc/guix.texi:2229
+#: doc/guix.texi:2316
 #, no-wrap
 msgid "Disk Partitioning"
 msgstr "Particionado de discos"
 
 #. type: Plain text
-#: doc/guix.texi:2233
+#: doc/guix.texi:2320
 msgid "Unless this has already been done, the next step is to partition, and then format the target partition(s)."
 msgstr "A menos que se haya realizado previamente, el siguiente paso es el particionado, y después dar formato a la/s partición/es deseadas."
 
 #. type: Plain text
-#: doc/guix.texi:2238
+#: doc/guix.texi:2325
 msgid "The installation image includes several partitioning tools, including Parted (@pxref{Overview,,, parted, GNU Parted User Manual}), @command{fdisk}, and @command{cfdisk}.  Run it and set up your disk with the partition layout you want:"
 msgstr "La imagen de instalación contiene varias herramientas de particionado, incluyendo Parted (@pxref{Overview,,, parted, GNU Parted User Manual}), @command{fdisk} y @command{cfdisk}. Invoque su ejecución y configure el mapa de particiones deseado en su disco:"
 
 #. type: example
-#: doc/guix.texi:2241
+#: doc/guix.texi:2328
 #, no-wrap
 msgid "cfdisk\n"
 msgstr "cfdisk\n"
 
 #. type: Plain text
-#: doc/guix.texi:2247
+#: doc/guix.texi:2334
 msgid "If your disk uses the GUID Partition Table (GPT) format and you plan to install BIOS-based GRUB (which is the default), make sure a BIOS Boot Partition is available (@pxref{BIOS installation,,, grub, GNU GRUB manual})."
 msgstr "Si su disco usa el formato de tabla de particiones GUID (GPT) y tiene pensado instalar GRUB basado en BIOS (la opción predeterminada), asegúrese de tener una partición de arranque BIOS disponible (@pxref{BIOS installation,,, grub, GNU GRUB manual})."
 
 #. type: cindex
-#: doc/guix.texi:2248
+#: doc/guix.texi:2335
 #, no-wrap
 msgid "EFI, installation"
 msgstr "EFI, instalación"
 
 #. type: cindex
-#: doc/guix.texi:2249
+#: doc/guix.texi:2336
 #, no-wrap
 msgid "UEFI, installation"
 msgstr "UEFI, instalación"
 
 #. type: cindex
-#: doc/guix.texi:2250
+#: doc/guix.texi:2337
 #, no-wrap
 msgid "ESP, EFI system partition"
 msgstr "ESP, partición del sistema EFI"
 
 #. type: Plain text
-#: doc/guix.texi:2254
+#: doc/guix.texi:2341
 msgid "If you instead wish to use EFI-based GRUB, a FAT32 @dfn{EFI System Partition} (ESP) is required.  This partition can be mounted at @file{/boot/efi} for instance and must have the @code{esp} flag set.  E.g., for @command{parted}:"
 msgstr "Si en vez de eso desea GRUB basado en EFI, se requiere una @dfn{Partición del Sistema EFI} (ESP) con formato FAT32. Esta partición puede montarse en @file{/boot/efi} y debe tener la opción @code{esp} activa. Por ejemplo, en @command{parted}:"
 
 #. type: example
-#: doc/guix.texi:2257
+#: doc/guix.texi:2344
 #, no-wrap
 msgid "parted /dev/sda set 1 esp on\n"
 msgstr "parted /dev/sda set 1 esp on\n"
 
 #. type: vindex
-#: doc/guix.texi:2260 doc/guix.texi:26316
+#: doc/guix.texi:2347 doc/guix.texi:30367
 #, no-wrap
 msgid "grub-bootloader"
 msgstr "grub-bootloader"
 
 #. type: vindex
-#: doc/guix.texi:2261 doc/guix.texi:26310
+#: doc/guix.texi:2348 doc/guix.texi:30361
 #, no-wrap
 msgid "grub-efi-bootloader"
 msgstr "grub-efi-bootloader"
 
 #. type: quotation
-#: doc/guix.texi:2268
+#: doc/guix.texi:2355
 msgid "Unsure whether to use EFI- or BIOS-based GRUB? If the directory @file{/sys/firmware/efi} exists in the installation image, then you should probably perform an EFI installation, using @code{grub-efi-bootloader}.  Otherwise you should use the BIOS-based GRUB, known as @code{grub-bootloader}.  @xref{Bootloader Configuration}, for more info on bootloaders."
 msgstr "¿No esta segura si usar GRUB basado en EFI o en BIOS? Si el directorio @file{/sys/firmware/efi} existe en la imagen de instalación, probablemente debería realizar una instalación EFI, usando @code{grub-efi-bootloader}. En otro caso, debe usar GRUB basado en BIOS, conocido como @code{grub-bootloader}. @xref{Bootloader Configuration}, para más información sobre cargadores de arranque."
 
 #. type: Plain text
-#: doc/guix.texi:2276
+#: doc/guix.texi:2363
 msgid "Once you are done partitioning the target hard disk drive, you have to create a file system on the relevant partition(s)@footnote{Currently Guix System only supports ext4, btrfs, and JFS file systems.  In particular, code that reads file system UUIDs and labels only works for these file system types.}.  For the ESP, if you have one and assuming it is @file{/dev/sda1}, run:"
-msgstr "Una vez haya terminado con el particionado de la unidad de disco deseada, tiene que crear un sistema de ficheros en la o las particiones relevantes@footnote{Actualmente el sistema Guix únicamente permite sistemas de ficheros ext4, btrfs y JFS. En particular, el código que lee UUIDs del sistema de ficheros y etiquetas únicamente funciona para dichos sistemas de ficheros.}. Para la partición ESP, si tiene una y asumiendo que es @file{/dev/sda1}, ejecute:"
+msgstr "Una vez haya terminado con el particionado de la unidad de disco deseada, tiene que crear un sistema de archivos en la o las particiones relevantes@footnote{Actualmente el sistema Guix únicamente permite sistemas de archivos ext4, btrfs y JFS. En particular, el código que lee UUIDs del sistema de archivos y etiquetas únicamente funciona para dichos sistemas de archivos.}. Para la partición ESP, si tiene una y asumiendo que es @file{/dev/sda1}, ejecute:"
 
 #. type: example
-#: doc/guix.texi:2279
+#: doc/guix.texi:2366
 #, no-wrap
 msgid "mkfs.fat -F32 /dev/sda1\n"
 msgstr "mkfs.fat -F32 /dev/sda1\n"
 
+# FUZZY
+#. type: Plain text
+#: doc/guix.texi:2373
+msgid "For the root file system, ext4 is the most widely used format.  Other file systems, such as Btrfs, support compression, which is reported to nicely complement file deduplication that the daemon performs independently of the file system (@pxref{Invoking guix-daemon, deduplication})."
+msgstr "El formato de sistema de archivos ext4 es el formato más ampliamente usado para el sistema de archivos raíz. Otros sistemas de archivos, como por ejemplo Btrfs, implementan compresión, la cual complementa adecuadamente la deduplicación de archivos que el daemon realiza de manera independiente al sistema de archivos(@pxref{Invoking guix-daemon, deduplicación})."
+
 #. type: Plain text
-#: doc/guix.texi:2287
+#: doc/guix.texi:2380
 msgid "Preferably, assign file systems a label so that you can easily and reliably refer to them in @code{file-system} declarations (@pxref{File Systems}).  This is typically done using the @code{-L} option of @command{mkfs.ext4} and related commands.  So, assuming the target root partition lives at @file{/dev/sda2}, a file system with the label @code{my-root} can be created with:"
-msgstr "Preferentemente, asigne una etiqueta a los sistemas de ficheros de modo que pueda referirse a ellos de forma fácil y precisa en las declaraciones @code{file-system} (@pxref{File Systems}). Esto se consigue habitualmente con la opción @code{-L} de @command{mkfs.ext4} y las ordenes relacionadas. Por tanto, asumiendo que la partición de la raíz es @file{/dev/sda2}, se puede crear un sistema de ficheros con la etiqueta @code{mi-raiz} de esta manera:"
+msgstr "Preferentemente, asigne una etiqueta a los sistemas de archivos de modo que pueda referirse a ellos de forma fácil y precisa en las declaraciones @code{file-system} (@pxref{File Systems}). Esto se consigue habitualmente con la opción @code{-L} de @command{mkfs.ext4} y las ordenes relacionadas. Por tanto, asumiendo que la partición de la raíz es @file{/dev/sda2}, se puede crear un sistema de archivos con la etiqueta @code{mi-raiz} de esta manera:"
 
 #. type: example
-#: doc/guix.texi:2290
+#: doc/guix.texi:2383
 #, no-wrap
 msgid "mkfs.ext4 -L my-root /dev/sda2\n"
 msgstr "mkfs.ext4 -L mi-raiz /dev/sda2\n"
 
 #. type: cindex
-#: doc/guix.texi:2292 doc/guix.texi:11132
+#: doc/guix.texi:2385 doc/guix.texi:13055
 #, no-wrap
 msgid "encrypted disk"
 msgstr "disco cifrado"
 
 #. type: Plain text
-#: doc/guix.texi:2299
-msgid "If you are instead planning to encrypt the root partition, you can use the Cryptsetup/LUKS utilities to do that (see @inlinefmtifelse{html, @uref{https://linux.die.net/man/8/cryptsetup, @code{man cryptsetup}}, @code{man cryptsetup}} for more information.)  Assuming you want to store the root partition on @file{/dev/sda2}, the command sequence would be along these lines:"
+#: doc/guix.texi:2392
+msgid "If you are instead planning to encrypt the root partition, you can use the Cryptsetup/LUKS utilities to do that (see @inlinefmtifelse{html, @uref{https://linux.die.net/man/8/cryptsetup, @code{man cryptsetup}}, @code{man cryptsetup}} for more information).  Assuming you want to store the root partition on @file{/dev/sda2}, the command sequence would be along these lines:"
 msgstr "Si en vez de eso planea cifrar la partición raíz, puede usar las herramientas Crypsetup/LUKS para hacerlo (véase @inlinefmtifelse{html, @uref{https://linux.die.net/man/8/cryptsetup, @code{man cryptsetup}}, @code{man cryptsetup}} para más información). Asumiendo que quiere almacenar la partición raíz en @file{/dev/sda2}, la secuencia de ordenes sería más o menos así:"
 
 #. type: example
-#: doc/guix.texi:2304
+#: doc/guix.texi:2397
 #, no-wrap
 msgid ""
 "cryptsetup luksFormat /dev/sda2\n"
@@ -6606,28 +7194,28 @@ msgstr ""
 "mkfs.ext4 -L mi-raiz /dev/mapper/mi-particion\n"
 
 #. type: Plain text
-#: doc/guix.texi:2309
+#: doc/guix.texi:2402
 msgid "Once that is done, mount the target file system under @file{/mnt} with a command like (again, assuming @code{my-root} is the label of the root file system):"
-msgstr "Una vez hecho esto, monte el sistema de ficheros deseado bajo @file{/mnt} con una orden como (de nuevo, asumiendo que @code{mi-raiz} es la etiqueta del sistema de ficheros raíz):"
+msgstr "Una vez hecho esto, monte el sistema de archivos deseado bajo @file{/mnt} con una orden como (de nuevo, asumiendo que @code{mi-raiz} es la etiqueta del sistema de archivos raíz):"
 
 #. type: example
-#: doc/guix.texi:2312
+#: doc/guix.texi:2405
 #, no-wrap
 msgid "mount LABEL=my-root /mnt\n"
 msgstr "mount LABEL=mi-raiz /mnt\n"
 
 #. type: Plain text
-#: doc/guix.texi:2318
+#: doc/guix.texi:2411
 msgid "Also mount any other file systems you would like to use on the target system relative to this path.  If you have opted for @file{/boot/efi} as an EFI mount point for example, mount it at @file{/mnt/boot/efi} now so it is found by @code{guix system init} afterwards."
-msgstr "Monte también cualquier otro sistema de ficheros que desee usar en el sistema resultante relativamente a esta ruta. Si ha optado por @file{/boot/efi} como el punto de montaje de EFI, por ejemplo, ahora debe ser montada en @file{/mnt/boot/efi} para que @code{guix system init} pueda encontrarla más adelante."
+msgstr "Monte también cualquier otro sistema de archivos que desee usar en el sistema resultante relativamente a esta ruta. Si ha optado por @file{/boot/efi} como el punto de montaje de EFI, por ejemplo, ahora debe ser montada en @file{/mnt/boot/efi} para que @code{guix system init} pueda encontrarla más adelante."
 
 #. type: Plain text
-#: doc/guix.texi:2323
+#: doc/guix.texi:2416
 msgid "Finally, if you plan to use one or more swap partitions (@pxref{Memory Concepts, swap space,, libc, The GNU C Library Reference Manual}), make sure to initialize them with @command{mkswap}.  Assuming you have one swap partition on @file{/dev/sda3}, you would run:"
 msgstr "Finalmente, si planea usar una o más particiones de intercambio (@pxref{Memory Concepts, swap space,, libc, The GNU C Library Reference Manual}), asegúrese de inicializarla con @command{mkswap}. Asumiendo que tuviese una partición de intercambio en @file{/dev/sda3}, ejecutaría:"
 
 #. type: example
-#: doc/guix.texi:2327
+#: doc/guix.texi:2420
 #, no-wrap
 msgid ""
 "mkswap /dev/sda3\n"
@@ -6637,12 +7225,12 @@ msgstr ""
 "swapon /dev/sda3\n"
 
 #. type: Plain text
-#: doc/guix.texi:2335
+#: doc/guix.texi:2428
 msgid "Alternatively, you may use a swap file.  For example, assuming that in the new system you want to use the file @file{/swapfile} as a swap file, you would run@footnote{This example will work for many types of file systems (e.g., ext4).  However, for copy-on-write file systems (e.g., btrfs), the required steps may be different.  For details, see the manual pages for @command{mkswap} and @command{swapon}.}:"
-msgstr "De manera alternativa, puede usar un fichero de intercambio. Por ejemplo, asumiendo que en el nuevo sistema desea usar el fichero @file{/fichero-de-intercambio} como tal, ejecutaría@footnote{Este ejemplo funcionará para muchos tipos de sistemas de ficheros (por ejemplo, ext4). No obstante, para los sistemas de ficheros con mecanismos de copia-durante-escritura (por ejemplo, btrfs) los pasos pueden ser diferentes. Para obtener más detalles, véanse las páginas de manual para @command{mkswap} y @command{swapon}.}:"
+msgstr "De manera alternativa, puede usar un archivo de intercambio. Por ejemplo, asumiendo que en el nuevo sistema desea usar el archivo @file{/archivo-de-intercambio} como tal, ejecutaría@footnote{Este ejemplo funcionará para muchos tipos de sistemas de archivos (por ejemplo, ext4). No obstante, para los sistemas de archivos con mecanismos de copia-durante-escritura (por ejemplo, btrfs) los pasos pueden ser diferentes. Para obtener más detalles, véanse las páginas de manual para @command{mkswap} y @command{swapon}.}:"
 
 #. type: example
-#: doc/guix.texi:2343
+#: doc/guix.texi:2436
 #, no-wrap
 msgid ""
 "# This is 10 GiB of swap space.  Adjust \"count\" to change the size.\n"
@@ -6662,38 +7250,38 @@ msgstr ""
 "swapon /mnt/swapfile\n"
 
 #. type: Plain text
-#: doc/guix.texi:2348
+#: doc/guix.texi:2441
 msgid "Note that if you have encrypted the root partition and created a swap file in its file system as described above, then the encryption also protects the swap file, just like any other file in that file system."
-msgstr "Fíjese que si ha cifrado la partición raíz y creado un fichero de intercambio en su sistema de ficheros como se ha descrito anteriormente, el cifrado también protege al fichero de intercambio, como a cualquier fichero en dicho sistema de ficheros."
+msgstr "Fíjese que si ha cifrado la partición raíz y creado un archivo de intercambio en su sistema de archivos como se ha descrito anteriormente, el cifrado también protege al archivo de intercambio, como a cualquier archivo en dicho sistema de archivos."
 
 #. type: Plain text
-#: doc/guix.texi:2354
+#: doc/guix.texi:2447
 msgid "With the target partitions ready and the target root mounted on @file{/mnt}, we're ready to go.  First, run:"
 msgstr "Con las particiones deseadas listas y la raíz deseada montada en @file{/mnt}, estamos preparadas para empezar. Primero, ejecute:"
 
 #. type: example
-#: doc/guix.texi:2357
+#: doc/guix.texi:2450
 #, no-wrap
 msgid "herd start cow-store /mnt\n"
 msgstr "herd start cow-store /mnt\n"
 
 #. type: Plain text
-#: doc/guix.texi:2364
+#: doc/guix.texi:2457
 msgid "This makes @file{/gnu/store} copy-on-write, such that packages added to it during the installation phase are written to the target disk on @file{/mnt} rather than kept in memory.  This is necessary because the first phase of the @command{guix system init} command (see below) entails downloads or builds to @file{/gnu/store} which, initially, is an in-memory file system."
-msgstr "Esto activa la copia-durante-escritura en @file{/gnu/store}, de modo que los paquetes que se añadan durante la fase de instalación se escriban en el disco montado en @file{/mnt} en vez de permanecer en memoria. Esto es necesario debido a que la primera fase de la orden @command{guix system init} (vea más adelante) implica descargas o construcciones en @file{/gnu/store}, el cual, inicialmente, está un sistema de ficheros en memoria."
+msgstr "Esto activa la copia-durante-escritura en @file{/gnu/store}, de modo que los paquetes que se añadan durante la fase de instalación se escriban en el disco montado en @file{/mnt} en vez de permanecer en memoria. Esto es necesario debido a que la primera fase de la orden @command{guix system init} (vea más adelante) implica descargas o construcciones en @file{/gnu/store}, el cual, inicialmente, está un sistema de archivos en memoria."
 
 #. type: Plain text
-#: doc/guix.texi:2375
+#: doc/guix.texi:2468
 msgid "Next, you have to edit a file and provide the declaration of the operating system to be installed.  To that end, the installation system comes with three text editors.  We recommend GNU nano (@pxref{Top,,, nano, GNU nano Manual}), which supports syntax highlighting and parentheses matching; other editors include GNU Zile (an Emacs clone), and nvi (a clone of the original BSD @command{vi} editor).  We strongly recommend storing that file on the target root file system, say, as @file{/mnt/etc/config.scm}.  Failing to do that, you will have lost your configuration file once you have rebooted into the newly-installed system."
-msgstr "Después debe editar un fichero y proporcionar la declaración de sistema operativo a instalar. Para dicho fin, el sistema de instalación viene con tres editores de texto. Recomendamos GNU nano (@pxref{Top,,, nano, GNU nano Manual}), que permite el resaltado de sintaxis y correspondencia de paréntesis; los otros editores son GNU Zile (un clon de Emacs) y nvi (un clon del editor @command{vi} original de BSD). Le recomendamos encarecidamente almacenar ese fichero en el sistema de ficheros raíz, digamos, como @file{/mnt/etc/config.scm}. En caso de no hacerlo, habrá perdido su configuración del sistema una vez arranque en el sistema recién instalado."
+msgstr "Después debe editar un archivo y proporcionar la declaración de sistema operativo a instalar. Para dicho fin, el sistema de instalación viene con tres editores de texto. Recomendamos GNU nano (@pxref{Top,,, nano, GNU nano Manual}), que permite el resaltado de sintaxis y correspondencia de paréntesis; los otros editores son GNU Zile (un clon de Emacs) y nvi (un clon del editor @command{vi} original de BSD). Le recomendamos encarecidamente almacenar ese archivo en el sistema de archivos raíz, digamos, como @file{/mnt/etc/config.scm}. En caso de no hacerlo, habrá perdido su configuración del sistema una vez arranque en el sistema recién instalado."
 
 #. type: Plain text
-#: doc/guix.texi:2382
+#: doc/guix.texi:2475
 msgid "@xref{Using the Configuration System}, for an overview of the configuration file.  The example configurations discussed in that section are available under @file{/etc/configuration} in the installation image.  Thus, to get started with a system configuration providing a graphical display server (a ``desktop'' system), you can run something along these lines:"
-msgstr "@xref{Using the Configuration System}, para hacerse una idea del fichero de configuración. Las configuraciones de ejemplo mencionadas en esa sección están disponibles bajo @file{/etc/configuration} en la imagen de instalación. Por tanto, para empezar con una configuración del sistema que proporcione un servidor gráfico (un sistema de ``escritorio''), puede ejecutar algo parecido a estas órdenes:"
+msgstr "@xref{Using the Configuration System}, para hacerse una idea del archivo de configuración. Las configuraciones de ejemplo mencionadas en esa sección están disponibles bajo @file{/etc/configuration} en la imagen de instalación. Por tanto, para empezar con una configuración del sistema que proporcione un servidor gráfico (un sistema de ``escritorio''), puede ejecutar algo parecido a estas órdenes:"
 
 #. type: example
-#: doc/guix.texi:2387
+#: doc/guix.texi:2480
 #, no-wrap
 msgid ""
 "# mkdir /mnt/etc\n"
@@ -6705,53 +7293,53 @@ msgstr ""
 "# nano /mnt/etc/config.scm\n"
 
 #. type: Plain text
-#: doc/guix.texi:2391
+#: doc/guix.texi:2484
 msgid "You should pay attention to what your configuration file contains, and in particular:"
-msgstr "Debe prestar atención a lo que su fichero de configuración contiene, y en particular:"
+msgstr "Debe prestar atención a lo que su archivo de configuración contiene, y en particular:"
 
 #. type: itemize
-#: doc/guix.texi:2402
+#: doc/guix.texi:2495
 msgid "Make sure the @code{bootloader-configuration} form refers to the target you want to install GRUB on.  It should mention @code{grub-bootloader} if you are installing GRUB in the legacy way, or @code{grub-efi-bootloader} for newer UEFI systems.  For legacy systems, the @code{target} field names a device, like @code{/dev/sda}; for UEFI systems it names a path to a mounted EFI partition, like @code{/boot/efi}; do make sure the path is currently mounted and a @code{file-system} entry is specified in your configuration."
 msgstr "Asegúrese que la forma @code{bootloader-configuration} especifica la localización deseada de la instalación de GRUB. Debe mencionar @code{grub-bootloader} si está usando GRUB con el arranque antiguo, o @code{grub-efi-bootloader} para sistemas más nuevos UEFI. Para los sistemas antiguos, el campo @code{target} denomina un dispositivo, como @code{/dev/sda}; para los sistemas UEFI denomina la ruta de una partición EFI montada, como @code{/boot/efi}; asegúrese de que la ruta está actualmente montada y haya una entrada @code{file-system} especificada en su configuración."
 
 #. type: itemize
-#: doc/guix.texi:2408
+#: doc/guix.texi:2501
 msgid "Be sure that your file system labels match the value of their respective @code{device} fields in your @code{file-system} configuration, assuming your @code{file-system} configuration uses the @code{file-system-label} procedure in its @code{device} field."
-msgstr "Asegúrese que las etiquetas de su sistema de ficheros corresponden con el valor de sus campos @code{device} respectivos en su configuración @code{file-system}, asumiendo que su configuración @code{file-system} usa el procedimiento @code{file-system-label} en su campo @code{device}."
+msgstr "Asegúrese que las etiquetas de su sistema de archivos corresponden con el valor de sus campos @code{device} respectivos en su configuración @code{file-system}, asumiendo que su configuración @code{file-system} usa el procedimiento @code{file-system-label} en su campo @code{device}."
 
 #. type: itemize
-#: doc/guix.texi:2412
+#: doc/guix.texi:2505
 msgid "If there are encrypted or RAID partitions, make sure to add a @code{mapped-devices} field to describe them (@pxref{Mapped Devices})."
 msgstr "Si hay particiones cifradas o en RAID, asegúrese de añadir un campo @code{mapped-devices} para describirlas (@pxref{Mapped Devices})."
 
 #. type: Plain text
-#: doc/guix.texi:2417
+#: doc/guix.texi:2510
 msgid "Once you are done preparing the configuration file, the new system must be initialized (remember that the target root file system is mounted under @file{/mnt}):"
-msgstr "Una vez haya terminado de preparar el fichero de configuración, el nuevo sistema debe ser inicializado (recuerde que el sistema de ficheros raíz deseado está montado bajo @file{/mnt}):"
+msgstr "Una vez haya terminado de preparar el archivo de configuración, el nuevo sistema debe ser inicializado (recuerde que el sistema de archivos raíz deseado está montado bajo @file{/mnt}):"
 
 #. type: example
-#: doc/guix.texi:2420
+#: doc/guix.texi:2513
 #, no-wrap
 msgid "guix system init /mnt/etc/config.scm /mnt\n"
 msgstr "guix system init /mnt/etc/config.scm /mnt\n"
 
 #. type: Plain text
-#: doc/guix.texi:2427
+#: doc/guix.texi:2520
 msgid "This copies all the necessary files and installs GRUB on @file{/dev/sdX}, unless you pass the @option{--no-bootloader} option.  For more information, @pxref{Invoking guix system}.  This command may trigger downloads or builds of missing packages, which can take some time."
-msgstr "Esto copia todos los ficheros necesarios e instala GRUB en @file{/dev/sdX}, a menos que proporcione la opción @option{--no-bootloader}. Para más información, @pxref{Invoking guix system}. Esta orden puede desencadenar descargas o construcciones de paquetes no encontrados, lo cual puede tomar algún tiempo."
+msgstr "Esto copia todos los archivos necesarios e instala GRUB en @file{/dev/sdX}, a menos que proporcione la opción @option{--no-bootloader}. Para más información, @pxref{Invoking guix system}. Esta orden puede desencadenar descargas o construcciones de paquetes no encontrados, lo cual puede tomar algún tiempo."
 
 #. type: Plain text
-#: doc/guix.texi:2435
+#: doc/guix.texi:2528
 msgid "Once that command has completed---and hopefully succeeded!---you can run @command{reboot} and boot into the new system.  The @code{root} password in the new system is initially empty; other users' passwords need to be initialized by running the @command{passwd} command as @code{root}, unless your configuration specifies otherwise (@pxref{user-account-password, user account passwords}).  @xref{After System Installation}, for what's next!"
 msgstr "Una vez que la orden se complete---¡y, deseablemente, de forma satisfactoria!---puede ejecutar @command{reboot} y arrancar con el nuevo sistema. La contraseña de @code{root} en el nuevo sistema está vacía inicialmente; otras contraseñas de usuarias tienen que ser inicializadas ejecutando la orden @command{passwd} como @code{root}, a menos que en su configuración se especifique de otra manera (@pxref{user-account-password, contraseñas de cuentas de usuaria}). ¡@xref{After System Installation} para proceder a continuación!"
 
 #. type: Plain text
-#: doc/guix.texi:2442
+#: doc/guix.texi:2535
 msgid "Success, you've now booted into Guix System! From then on, you can update the system whenever you want by running, say:"
 msgstr "¡Éxito! ¡Ha arrancado en el sistema Guix! De ahora en adelante, puede actualizar el sistema cuando quiera mediante la ejecución de, digamos:"
 
 #. type: example
-#: doc/guix.texi:2446
+#: doc/guix.texi:2539
 #, no-wrap
 msgid ""
 "guix pull\n"
@@ -6761,94 +7349,94 @@ msgstr ""
 "sudo guix system reconfigure /etc/config.scm\n"
 
 #. type: Plain text
-#: doc/guix.texi:2452
+#: doc/guix.texi:2545
 msgid "This builds a new system generation with the latest packages and services (@pxref{Invoking guix system}).  We recommend doing that regularly so that your system includes the latest security updates (@pxref{Security Updates})."
 msgstr "Esto construye una nueva generación del sistema con los últimos paquetes y servicios (@pxref{Invoking guix system}). Recomendamos realizarlo de manera regular de modo que su sistema incluya las últimas actualizaciones de seguridad (@pxref{Security Updates})."
 
 #. type: cindex
-#: doc/guix.texi:2455
+#: doc/guix.texi:2548
 #, no-wrap
 msgid "sudo vs. @command{guix pull}"
 msgstr "sudo y @command{guix pull}"
 
 #. type: quotation
-#: doc/guix.texi:2459
-msgid "Note that @command{sudo guix} runs your user's @command{guix} command and @emph{not} root's, because @command{sudo} leaves @code{PATH} unchanged.  To explicitly run root's @command{guix}, type @command{sudo -i guix @dots{}}."
-msgstr "Tenga en cuenta que @command{sudo guix} ejecuta el ejecutable @command{guix} de su usuaria y @emph{no} el de root, ya que @command{sudo} no altera @code{PATH}. Para ejecutar explícitamente el ejecutable @command{guix} de root, escriba @command{sudo -i guix @dots{}}."
+#: doc/guix.texi:2552
+msgid "Note that @command{sudo guix} runs your user's @command{guix} command and @emph{not} root's, because @command{sudo} leaves @env{PATH} unchanged.  To explicitly run root's @command{guix}, type @command{sudo -i guix @dots{}}."
+msgstr "Tenga en cuenta que @command{sudo guix} ejecuta el ejecutable @command{guix} de su usuaria y @emph{no} el de root, ya que @command{sudo} no altera @env{PATH}. Para ejecutar explícitamente el ejecutable @command{guix} de root, escriba @command{sudo -i guix @dots{}}."
 
 # FUZZY FUZZY
 #. type: quotation
-#: doc/guix.texi:2464
+#: doc/guix.texi:2557
 msgid "The difference matters here, because @command{guix pull} updates the @command{guix} command and package definitions only for the user it is ran as.  This means that if you choose to use @command{guix system reconfigure} in root's login shell, you'll need to @command{guix pull} separately."
-msgstr "La diferencia es importante aquí, puesto que @command{guix pull} actualiza la orden @command{guix} y las definiciones de paquetes únicamente para la usuaria que lo ejecute. Esto significa que si desea usar @command{guix system reconfigure} en un shell en el que haya ingresado al sistema como root, deberá ejecutar de manera de manera separada @command{guix pull}."
+msgstr "La diferencia es importante aquí, puesto que @command{guix pull} actualiza la orden @command{guix} y las definiciones de paquetes únicamente para la usuaria que lo ejecute. Esto significa que si desea usar @command{guix system reconfigure} en un intérprete de ingreso al sistema de la cuenta de administración (``root''), deberá ejecutar de manera de manera separada @command{guix pull}."
 
 #. type: Plain text
-#: doc/guix.texi:2468
-msgid "Join us on @code{#guix} on the Freenode IRC network or on @email{guix-devel@@gnu.org} to share your experience!"
-msgstr "¡Unase a nosotras en @code{#guix} en la red IRC Freenode o en @file{guix-devel@@gnu.org} para compartir su experiencia!"
+#: doc/guix.texi:2562
+msgid "Now, @pxref{Getting Started}, and join us on @code{#guix} on the Freenode IRC network or on @email{guix-devel@@gnu.org} to share your experience!"
+msgstr "Ahora, @pxref{Getting Started}, ¡y únase a nosotras en @code{#guix} en la red IRC de Freenode o en @email{guix-devel@@gnu.org} para compartir su experiencia!"
 
 #. type: section
-#: doc/guix.texi:2471
+#: doc/guix.texi:2565
 #, no-wrap
 msgid "Installing Guix in a Virtual Machine"
 msgstr "Instalación de Guix en una máquina virtual"
 
 #. type: cindex
-#: doc/guix.texi:2473
+#: doc/guix.texi:2567
 #, no-wrap
 msgid "virtual machine, Guix System installation"
 msgstr "máquina virtual, instalación del sistema Guix"
 
 #. type: cindex
-#: doc/guix.texi:2474
+#: doc/guix.texi:2568
 #, no-wrap
 msgid "virtual private server (VPS)"
 msgstr "servidor virtual privado (VPS)"
 
 #. type: cindex
-#: doc/guix.texi:2475
+#: doc/guix.texi:2569
 #, no-wrap
 msgid "VPS (virtual private server)"
 msgstr "VPS (servidor virtual privado)"
 
 #. type: Plain text
-#: doc/guix.texi:2479
+#: doc/guix.texi:2573
 msgid "If you'd like to install Guix System in a virtual machine (VM) or on a virtual private server (VPS) rather than on your beloved machine, this section is for you."
 msgstr "Si desea instalar el sistema Guix en una máquina virtual (VM) o en un servidor privado virtual (VPS) en vez de en su preciada máquina, esta sección es para usted."
 
 #. type: Plain text
-#: doc/guix.texi:2482
+#: doc/guix.texi:2576
 msgid "To boot a @uref{https://qemu.org/,QEMU} VM for installing Guix System in a disk image, follow these steps:"
 msgstr "Si quiere arrancar una VM @uref{https://qemu.org/,QEMU} para instalar el sistema Guix en una imagen de disco, siga estos pasos:"
 
 #. type: enumerate
-#: doc/guix.texi:2487
+#: doc/guix.texi:2581
 msgid "First, retrieve and decompress the Guix system installation image as described previously (@pxref{USB Stick and DVD Installation})."
 msgstr "Primero, obtenga y descomprima la imagen de instalación del sistema Guix como se ha descrito previamente (@pxref{USB Stick and DVD Installation})."
 
 #. type: enumerate
-#: doc/guix.texi:2491
+#: doc/guix.texi:2585
 msgid "Create a disk image that will hold the installed system.  To make a qcow2-formatted disk image, use the @command{qemu-img} command:"
 msgstr "Cree una imagen de disco que contendrá el sistema instalado. Para crear una imagen de disco con formato qcow2, use la orden @command{qemu-img}:"
 
 #. type: example
-#: doc/guix.texi:2494
+#: doc/guix.texi:2588
 #, no-wrap
 msgid "qemu-img create -f qcow2 guix-system.img 50G\n"
 msgstr "qemu-img create -f qcow2 guix-system.img 50G\n"
 
 #. type: enumerate
-#: doc/guix.texi:2498
+#: doc/guix.texi:2592
 msgid "The resulting file will be much smaller than 50 GB (typically less than 1 MB), but it will grow as the virtualized storage device is filled up."
-msgstr "El fichero que obtenga será mucho menor de 50GB (típicamente menos de 1MB), pero crecerá cuando el dispositivo de almacenamiento virtualizado se vaya llenando."
+msgstr "El archivo que obtenga será mucho menor de 50GB (típicamente menos de 1MB), pero crecerá cuando el dispositivo de almacenamiento virtualizado se vaya llenando."
 
 #. type: enumerate
-#: doc/guix.texi:2501
+#: doc/guix.texi:2595
 msgid "Boot the USB installation image in an VM:"
 msgstr "Arranque la imagen de instalación USB en una máquina virtual:"
 
 #. type: example
-#: doc/guix.texi:2507
+#: doc/guix.texi:2601
 #, no-wrap
 msgid ""
 "qemu-system-x86_64 -m 1024 -smp 1 -enable-kvm \\\n"
@@ -6862,258 +7450,516 @@ msgstr ""
 "  -drive media=cdrom,file=guix-system-install-@value{VERSION}.@var{sistema}.iso\n"
 
 #. type: enumerate
-#: doc/guix.texi:2511
+#: doc/guix.texi:2605
 msgid "@code{-enable-kvm} is optional, but significantly improves performance, @pxref{Running Guix in a VM}."
 msgstr "@code{-enable-kvm} es opcional, pero mejora el rendimiento significativamente, @pxref{Running Guix in a VM}."
 
 #. type: enumerate
-#: doc/guix.texi:2515
+#: doc/guix.texi:2609
 msgid "You're now root in the VM, proceed with the installation process.  @xref{Preparing for Installation}, and follow the instructions."
 msgstr "Ahora es root en la VM, prosiga con el procedimiento de instalación. @xref{Preparing for Installation}, y siga las instrucciones."
 
 #. type: Plain text
-#: doc/guix.texi:2520
+#: doc/guix.texi:2614
 msgid "Once installation is complete, you can boot the system that's on your @file{guix-system.img} image.  @xref{Running Guix in a VM}, for how to do that."
 msgstr "Una vez complete la instalación, puede arrancar el sistema que está en la imagen @file{guix-system.img}. @xref{Running Guix in a VM}, para información sobre cómo hacerlo."
 
 #. type: cindex
-#: doc/guix.texi:2524
+#: doc/guix.texi:2618
 #, no-wrap
 msgid "installation image"
 msgstr "imagen de instalación"
 
 #. type: Plain text
-#: doc/guix.texi:2527
+#: doc/guix.texi:2621
 msgid "The installation image described above was built using the @command{guix system} command, specifically:"
 msgstr "La imagen de instalación descrita anteriormente se construyó usando la orden @command{guix system}, específicamente:"
 
 #. type: example
-#: doc/guix.texi:2531
+#: doc/guix.texi:2624
 #, no-wrap
-msgid ""
-"guix system disk-image --file-system-type=iso9660 \\\n"
-"  gnu/system/install.scm\n"
-msgstr ""
-"guix system disk-image --file-system-type=iso9660 \\\n"
-"  gnu/system/install.scm\n"
+msgid "guix system disk-image -t iso9660 gnu/system/install.scm\n"
+msgstr "guix system disk-image -t iso9660 gnu/system/install.scm\n"
 
 #. type: Plain text
-#: doc/guix.texi:2536
+#: doc/guix.texi:2629
 msgid "Have a look at @file{gnu/system/install.scm} in the source tree, and see also @ref{Invoking guix system} for more information about the installation image."
 msgstr "Eche un vistazo a @file{gnu/system/install.scm} en el árbol de fuentes, y vea también @ref{Invoking guix system} para más información acerca de la imagen de instalación."
 
 #. type: section
-#: doc/guix.texi:2537
+#: doc/guix.texi:2630
 #, no-wrap
 msgid "Building the Installation Image for ARM Boards"
 msgstr "Construcción de la imagen de instalación para placas ARM"
 
 #. type: Plain text
-#: doc/guix.texi:2541
+#: doc/guix.texi:2634
 msgid "Many ARM boards require a specific variant of the @uref{https://www.denx.de/wiki/U-Boot/, U-Boot} bootloader."
 msgstr "Muchos dispositivos con procesador ARM necesitan una variante específica del cargador de arranque @uref{https://www.denx.de/wiki/U-Boot/, U-Boot}."
 
 #. type: Plain text
-#: doc/guix.texi:2545
+#: doc/guix.texi:2638
 msgid "If you build a disk image and the bootloader is not available otherwise (on another boot drive etc), it's advisable to build an image that includes the bootloader, specifically:"
 msgstr "Si construye una imagen de disco y el cargador de arranque no está disponible de otro modo (en otra unidad de arranque, etc.), es recomendable construir una imagen que incluya el cargador, específicamente:"
 
 #. type: example
-#: doc/guix.texi:2548
+#: doc/guix.texi:2641
 #, no-wrap
 msgid "guix system disk-image --system=armhf-linux -e '((@@ (gnu system install) os-with-u-boot) (@@ (gnu system install) installation-os) \"A20-OLinuXino-Lime2\")'\n"
 msgstr "guix system disk-image --system=armhf-linux -e '((@@ (gnu system install) os-with-u-boot) (@@ (gnu system install) installation-os) \"A20-OLinuXino-Lime2\")'\n"
 
 #. type: Plain text
-#: doc/guix.texi:2552
+#: doc/guix.texi:2645
 msgid "@code{A20-OLinuXino-Lime2} is the name of the board.  If you specify an invalid board, a list of possible boards will be printed."
 msgstr "@code{A20-OLinuXino-Lime2} es el nombre de la placa. Si especifica una placa no válida, una lista de placas posibles será mostrada."
 
+# FUZZY FUZZY
+#. type: Plain text
+#: doc/guix.texi:2655
+msgid "Presumably, you've reached this section because either you have installed Guix on top of another distribution (@pxref{Installation}), or you've installed the standalone Guix System (@pxref{System Installation}).  It's time for you to get started using Guix and this section aims to help you do that and give you a feel of what it's like."
+msgstr "Es probable que haya llegado a esta sección o bien porque haya instalado Guix sobre otra distribución (@pxref{Installation}), o bien porque haya instalado el sistema Guix completo (@pxref{System Installation}). Es hora de dar sus primeros pasos con Guix; esta sección intenta ser de ayuda con estos primeros pasos y proporcionar una primera impresión sobre Guix."
+
+#. type: Plain text
+#: doc/guix.texi:2659
+msgid "Guix is about installing software, so probably the first thing you'll want to do is to actually look for software.  Let's say you're looking for a text editor, you can run:"
+msgstr "Guix está orientado a instalar software, por lo que probablemente la primera cosa que deseará hacer es mirar el software disponible. Digamos, por ejemplo, que busca un editor de texto. Para ello puede ejecutar:"
+
+#. type: example
+#: doc/guix.texi:2662
+#, no-wrap
+msgid "guix search text editor\n"
+msgstr "guix search texto editor\n"
+
+#. type: Plain text
+#: doc/guix.texi:2669
+msgid "This command shows you a number of matching @dfn{packages}, each time showing the package's name, version, a description, and additional info.  Once you've found out the one you want to use, let's say Emacs (ah ha!), you can go ahead and install it (run this command as a regular user, @emph{no need for root privileges}!):"
+msgstr "Esta orden le muestra cierto número de @dfn{paquetes} asociados a dicha búsqueda, mostrando con cada uno de ellos su nombre, versión, una descripción e información adicional. Una vez que ha encontrado el que quiere usar, digamos Emacs (je je je), puede seguir adelante e instalarlo (ejecute esta orden con su cuenta de usuaria habitual, @emph{¡no necesita privilegios de administración o usar la cuenta ``root''!}):"
+
+#. type: example
+#: doc/guix.texi:2672
+#, no-wrap
+msgid "guix install emacs\n"
+msgstr "guix install emacs\n"
+
+#. type: Plain text
+#: doc/guix.texi:2678
+msgid "You've installed your first package, congrats! In the process, you've probably noticed that Guix downloaded pre-built binaries; or, if you explicitly chose to @emph{not} use pre-built binaries, then probably Guix is still building software (@pxref{Substitutes}, for more info)."
+msgstr "Ha instalado su primer paquete, ¡enhorabuena! En el proceso probablemente haya percibido que Guix ha descargado binarios preconstruidos; o si ha elegido explícitamente @emph{no} usar binarios preconstruidos probablemente Guix todavía esté construyendo software (@pxref{Substitutes}, para más información)."
+
+#. type: Plain text
+#: doc/guix.texi:2681
+msgid "Unless you're using Guix System, the @command{guix install} command must have printed this hint:"
+msgstr "Si no está usando el sistema Guix, la orden @command{guix install} debe haber mostrado este consejo:"
+
+#. type: example
+#: doc/guix.texi:2684
+#, no-wrap
+msgid ""
+"hint: Consider setting the necessary environment variables by running:\n"
+"\n"
+msgstr "consejo: Considere proporcionar valor a las variables de entorno necesarias ejecutando:\n"
+
+#. type: example
+#: doc/guix.texi:2687
+#, no-wrap
+msgid ""
+"     GUIX_PROFILE=\"$HOME/.guix-profile\"\n"
+"     . \"$GUIX_PROFILE/etc/profile\"\n"
+"\n"
+msgstr ""
+"     GUIX_PROFILE=\"$HOME/.guix-profile\"\n"
+"     . \"$GUIX_PROFILE/etc/profile\"\n"
+"\n"
+
+#. type: example
+#: doc/guix.texi:2689
+#, no-wrap
+msgid "Alternately, see `guix package --search-paths -p \"$HOME/.guix-profile\"'.\n"
+msgstr "Alternativamente, véase `guix package --search-paths -p \"$HOME/.guix-profile\"'.\n"
+
+#. type: Plain text
+#: doc/guix.texi:2703
+msgid "Indeed, you must now tell your shell where @command{emacs} and other programs installed with Guix are to be found.  Pasting the two lines above will do just that: it will add @code{$HOME/.guix-profile/bin}---which is where the installed package is---to the @code{PATH} environment variable.  You can paste these two lines in your shell so they take effect right away, but more importantly you should add them to @file{~/.bash_profile} (or equivalent file if you do not use Bash) so that environment variables are set next time you spawn a shell.  You only need to do this once and other search paths environment variables will be taken care of similarly---e.g., if you eventually install @code{python} and Python libraries, @code{PYTHONPATH} will be defined."
+msgstr "En efecto, ahora debe indicarle a su intérprete dónde se encuentran instalados @command{emacs} y otros programas. Pegar las dos lineas previas hará exactamente eso: @code{$HOME/.guix-profile/bin}---que es donde se encuentran instalados los paquetes---se añade a la variable de entorno @code{PATH}. Puede pegar estas dos líneas en su intérprete de modo que se hagan efectivas inmediatamente, pero aún más importante es añadirlas a @file{~/.bash_profile} (o el archivo equivalente si no usa Bash) de modo que las variables de entorno adquieran ese valor la próxima vez que lance una sesión de su intérprete. Únicamente es necesario hacerlo una vez y otras variables de entorno con rutas de búsqueda se actualizarán de la misma manera---por ejemplo, si en algún momento instala @code{python} y bibliotecas en este lenguaje se definirá la variable @code{PYTHONPATH}."
+
+#. type: Plain text
+#: doc/guix.texi:2706
+msgid "You can go on installing packages at your will.  To list installed packages, run:"
+msgstr "Puede continuar instalando paquetes cuando quiera. Para enumerar los paquetes instalados, ejecute:"
+
+#. type: example
+#: doc/guix.texi:2709
+#, no-wrap
+msgid "guix package --list-installed\n"
+msgstr "guix package --list-installed\n"
+
+#. type: Plain text
+#: doc/guix.texi:2714
+msgid "To remove a package, you would unsurprisingly run @command{guix remove}.  A distinguishing feature is the ability to @dfn{roll back} any operation you made---installation, removal, upgrade---by simply typing:"
+msgstr "Para borrar un paquete, deberá ejecutar @command{guix remove}. Una característica distintiva es la capacidad de @dfn{revertir} cualquier operación que haya realizado---instalación, borrado, actualización---simplemente escribiendo:"
+
+#. type: example
+#: doc/guix.texi:2717
+#, no-wrap
+msgid "guix package --roll-back\n"
+msgstr "guix package --roll-back\n"
+
+#. type: Plain text
+#: doc/guix.texi:2722
+msgid "This is because each operation is in fact a @dfn{transaction} that creates a new @dfn{generation}.  These generations and the difference between them can be displayed by running:"
+msgstr "Esto es debido al hecho de que cada operación en realidad es una @dfn{transacción} que crea una nueva @dfn{generación}. Estas generaciones y la diferencia entre ellas puede ser visualizada mediante la ejecución de:"
+
+#. type: example
+#: doc/guix.texi:2725
+#, no-wrap
+msgid "guix package --list-generations\n"
+msgstr "guix package --list-generations\n"
+
+#. type: Plain text
+#: doc/guix.texi:2728
+msgid "Now you know the basics of package management!"
+msgstr "¡Ahora ya conoce lo básico sobre gestión de paquetes!"
+
+#. type: quotation
+#: doc/guix.texi:2729 doc/guix.texi:2788
+#, no-wrap
+msgid "Going further"
+msgstr "Más allá"
+
+# FUZZY
+#. type: quotation
+#: doc/guix.texi:2737
+msgid "@xref{Package Management}, for more about package management.  You may like @dfn{declarative} package management with @command{guix package --manifest}, managing separate @dfn{profiles} with @option{--profile}, deleting old generations, collecting garbage, and other nifty features that will come in handy as you become more familiar with Guix.  If you are a developer, @pxref{Development} for additional tools.  And if you're curious, @pxref{Features}, to peek under the hood."
+msgstr "@xref{Package Management}, para más información sobre gestión de paquetes. Puede que le guste la gestión @dfn{declarativa} de paquetes con @command{guix package --manifest}, la gestión de distintos @dfn{perfiles} con @option{--profile}, el borrado de generaciones antiguas, la recolección de basura y otras interesantes características que le serán útiles una vez que se familiarice con Guix. Si es desarrolladora, @pxref{Development} para herramientas adicionales. Y si simplemente tiene curiosidad, @pxref{Features}, para echar un vistazo a su funcionamiento interno."
+
+#. type: Plain text
+#: doc/guix.texi:2742
+msgid "Once you've installed a set of packages, you will want to periodically @emph{upgrade} them to the latest and greatest version.  To do that, you will first pull the latest revision of Guix and its package collection:"
+msgstr "Una vez que haya instalado un conjunto de paquetes, deseará @emph{actualizarlos} periódicamente a la última y mejor versión. Para hacerlo, primero debe obtener la última revisión de Guix y su colección de paquetes:"
+
+#. type: Plain text
+#: doc/guix.texi:2752
+msgid "The end result is a new @command{guix} command, under @file{~/.config/guix/current/bin}.  Unless you're on Guix System, the first time you run @command{guix pull}, be sure to follow the hint that the command prints and, similar to what we saw above, paste these two lines in your terminal and @file{.bash_profile}:"
+msgstr "El resultado final es un nuevo ejecutable @command{guix}, que se encuentra en @file{~/.config/guix/current/bin}. A menos que use el sistema Guix, asegúrese de seguir el consejo que la orden muestra y, al igual que vimos previamente, pegue estas dos líneas en su terminal y en @file{.bash_profile}:"
+
+#. type: example
+#: doc/guix.texi:2756
+#, no-wrap
+msgid ""
+"GUIX_PROFILE=\"$HOME/.config/guix/current/etc/profile\"\n"
+". \"$GUIX_PROFILE/etc/profile\"\n"
+msgstr ""
+"GUIX_PROFILE=\"$HOME/.config/guix/current/etc/profile\"\n"
+". \"$GUIX_PROFILE/etc/profile\"\n"
+
+#. type: Plain text
+#: doc/guix.texi:2760
+msgid "You must also instruct your shell to point to this new @command{guix}:"
+msgstr "También le debe indicar a su intérprete que haga referencia a este nuevo @command{guix}:"
+
+#. type: example
+#: doc/guix.texi:2763
+#, no-wrap
+msgid "hash guix\n"
+msgstr "hash guix\n"
+
+#. type: Plain text
+#: doc/guix.texi:2767
+msgid "At this point, you're running a brand new Guix.  You can thus go ahead and actually upgrade all the packages you previously installed:"
+msgstr "En este momento ya está ejecutando una nueva instalación de Guix. Por lo tanto puede continuar y actualizar todos los paquetes que haya instalado previamente:"
+
+#. type: example
+#: doc/guix.texi:2770
+#, no-wrap
+msgid "guix upgrade\n"
+msgstr "guix upgrade\n"
+
+#. type: Plain text
+#: doc/guix.texi:2776
+msgid "As you run this command, you will see that binaries are downloaded (or perhaps some packages are built), and eventually you end up with the upgraded packages.  Should one of these upgraded packages not be to your liking, remember you can always roll back!"
+msgstr "Mientras se ejecuta esta orden verá que se descargan binarios (o quizá que algunos paquetes se construyen) y tras cierto tiempo obtendrá los paquetes actualizados. ¡Recuerde que siempre puede revertir esta acción en caso de que uno de los paquetes no sea de su agrado!"
+
+#. type: Plain text
+#: doc/guix.texi:2779
+msgid "You can display the exact revision of Guix you're currently using by running:"
+msgstr "Puede mostrar la revisión exacta de Guix que está ejecutando mediante la orden:"
+
+#. type: example
+#: doc/guix.texi:2782
+#, no-wrap
+msgid "guix describe\n"
+msgstr "guix describe\n"
+
+#. type: Plain text
+#: doc/guix.texi:2787
+msgid "The information it displays is @emph{all it takes to reproduce the exact same Guix}, be it at a different point in time or on a different machine."
+msgstr "La información que muestra contiene @emph{todo lo necesario para reproducir exactamente el mismo Guix}, ya sea en otro momento o en una máquina diferente."
+
+#. type: quotation
+#: doc/guix.texi:2793
+msgid "@xref{Invoking guix pull}, for more information.  @xref{Channels}, on how to specify additional @dfn{channels} to pull packages from, how to replicate Guix, and more.  You may also find @command{time-machine} handy (@pxref{Invoking guix time-machine})."
+msgstr "@xref{Invoking guix pull}, para más información.  @xref{Channels}, para saber cómo especificar @dfn{canales} adicionales de los que obtener paquetes, cómo replicar Guix y más información. La orden @command{time-machine} también le puede ser de utilidad (@pxref{Invoking guix time-machine})."
+
+#. type: Plain text
+#: doc/guix.texi:2798
+msgid "If you installed Guix System, one of the first things you'll want to do is to upgrade your system.  Once you've run @command{guix pull} to get the latest Guix, you can upgrade the system like this:"
+msgstr "Si ha instalado el sistema Guix, una de las primeras cosas que probablemente desee hacer es actualizar su sistema. Una vez que haya ejecutado @command{guix pull} con la última versión de Guix, puede actualizar su sistema de este modo:"
+
+#. type: example
+#: doc/guix.texi:2801
+#, no-wrap
+msgid "sudo guix system reconfigure /etc/config.scm\n"
+msgstr "sudo guix system reconfigure /etc/config.scm\n"
+
+# TODO
+#. type: Plain text
+#: doc/guix.texi:2810
+msgid "Upon completion, the system runs the latest versions of its software packages.  When you eventually reboot, you'll notice a sub-menu in the bootloader that reads ``Old system generations'': it's what allows you to boot @emph{an older generation of your system}, should the latest generation be ``broken'' or otherwise unsatisfying.  Just like for packages, you can always @emph{roll back} to a previous generation @emph{of the whole system}:"
+msgstr "Tras su finalización, el sistema ejecuta las últimas versiones de sus paquetes de software. Cuando reinicie el sistema verá un menú en el cargador de arranque que dice ``GNU system, old configurations...'': es lo que le permite arrancar @emph{una generación anterior de su sistema}, en caso de que la generación actual falle o resulte insatisfactoria de algún otro modo. Al igual que con los paquetes, siempre puede @emph{revertir el sistema completo} a una generación previa:"
+
+#. type: example
+#: doc/guix.texi:2813
+#, no-wrap
+msgid "sudo guix system roll-back\n"
+msgstr "sudo guix system roll-back\n"
+
+#. type: Plain text
+#: doc/guix.texi:2820
+msgid "There are many things you'll probably want to tweak on your system: adding new user accounts, adding new system services, fiddling with the configuration of those services, etc.  The system configuration is @emph{entirely} described in the @file{/etc/config.scm} file.  @xref{Using the Configuration System}, to learn how to change it."
+msgstr "Habrá muchas cosas que probablemente quiera modificar su sistema para que se adapte a sus necesidades: añadir nuevas cuentas de acceso, nuevos servicios del sistema, modificar la configuración de esos servicios, etcétera. La configuración del sistema se describe @emph{al completo} en el archivo @file{/etc/config.scm}. @xref{Using the Configuration System} para aprender cómo cambiarla."
+
+#. type: Plain text
+#: doc/guix.texi:2822
+msgid "Now you know enough to get started!"
+msgstr "¡Ya sabe lo suficiente para empezar!"
+
+#. type: quotation
+#: doc/guix.texi:2823
+#, no-wrap
+msgid "Resources"
+msgstr "Recursos"
+
+#. type: quotation
+#: doc/guix.texi:2826
+msgid "The rest of this manual provides a reference for all things Guix.  Here are some additional resources you may find useful:"
+msgstr "El resto de este manual proporciona una referencia para Guix al completo. Esta es una lista de recursos adicionales que le pueden resultar útiles:"
+
+#. type: itemize
+#: doc/guix.texi:2831
+msgid "@xref{Top,,, guix-cookbook, The GNU Guix Cookbook}, for a list of ``how-to'' style of recipes for a variety of applications."
+msgstr "@xref{Top,,, guix-cookbook, The GNU Guix Cookbook}, que contiene una lista de recetas tipo ``cómo se hace'' para una variedad de casos."
+
+#. type: itemize
+#: doc/guix.texi:2836
+msgid "The @uref{https://guix.gnu.org/guix-refcard.pdf, GNU Guix Reference Card} lists in two pages most of the commands and options you'll ever need."
+msgstr "La @uref{https://guix.gnu.org/guix-refcard.pdf, tarjeta de referencia de GNU Guix} enumera en dos páginas la mayor parte de las órdenes y opciones que pueda necesitar en cualquier momento."
+
+#. type: itemize
+#: doc/guix.texi:2841
+msgid "The web site contains @uref{https://guix.gnu.org/en/videos/, instructional videos} covering topics such as everyday use of Guix, how to get help, and how to become a contributor."
+msgstr "La página web contiene @uref{https://guix.gnu.org/es/videos/, medios audiovisuales instructivos} sobre temas como el uso diario de Guix, cómo obtener ayuda y cómo contribuir."
+
+#. type: itemize
+#: doc/guix.texi:2845
+msgid "@xref{Documentation}, to learn how to access documentation on your computer."
+msgstr "@xref{Documentation} para aprender cómo acceder a la documentación en su máquina."
+
+#. type: quotation
+#: doc/guix.texi:2848
+msgid "We hope you will enjoy Guix as much as the community enjoys building it!"
+msgstr "¡Esperamos que disfrute Guix tanto como la comunidad disfruta en su construcción!"
+
 #. type: cindex
-#: doc/guix.texi:2557
+#: doc/guix.texi:2854
 #, no-wrap
 msgid "packages"
 msgstr "paquetes"
 
 #. type: Plain text
-#: doc/guix.texi:2562
+#: doc/guix.texi:2859
 msgid "The purpose of GNU Guix is to allow users to easily install, upgrade, and remove software packages, without having to know about their build procedures or dependencies.  Guix also goes beyond this obvious set of features."
 msgstr "El propósito de GNU Guix es permitir a las usuarias instalar, actualizar y borrar fácilmente paquetes de software, sin tener que conocer acerca de sus procedimientos de construcción o dependencias. Guix también va más allá de este conjunto obvio de características."
 
 # FUZZY
 #. type: Plain text
-#: doc/guix.texi:2570
+#: doc/guix.texi:2867
 msgid "This chapter describes the main features of Guix, as well as the package management tools it provides.  Along with the command-line interface described below (@pxref{Invoking guix package, @code{guix package}}), you may also use the Emacs-Guix interface (@pxref{Top,,, emacs-guix, The Emacs-Guix Reference Manual}), after installing @code{emacs-guix} package (run @kbd{M-x guix-help} command to start with it):"
 msgstr "Este capítulo describe las principales características de Guix, así como las herramientas de gestión de paquetes que ofrece. Junto a la interfaz de línea de órdenes descrita a continuación (@pxref{Invoking guix package, @code{guix package}}, también puede usar la interfaz Emacs-Guix (@pxref{Top,,, emacs-guix, The Emacs Guix Reference Manual}), tras la instalación del paquete @code{emacs-guix} (ejecute la orden @kbd{M-x guix-help} para iniciarse en su uso):"
 
 #. type: example
-#: doc/guix.texi:2573
+#: doc/guix.texi:2870
 #, no-wrap
 msgid "guix install emacs-guix\n"
 msgstr "guix install emacs-guix\n"
 
+# FUZZY FUZZY
+#. type: Plain text
+#: doc/guix.texi:2891
+msgid "Here we assume you've already made your first steps with Guix (@pxref{Getting Started}) and would like to get an overview about what's going on under the hood."
+msgstr "Se asume que ya ha dado sus primeros pasos con Guix (@pxref{Getting Started}) y desea obtener información general sobre cómo funciona la implementación internamente."
+
 #. type: Plain text
-#: doc/guix.texi:2595
+#: doc/guix.texi:2895
 msgid "When using Guix, each package ends up in the @dfn{package store}, in its own directory---something that resembles @file{/gnu/store/xxx-package-1.2}, where @code{xxx} is a base32 string."
 msgstr "Cuando se usa Guix, cada paquete se encuentra en el @dfn{almacén de paquetes}, en su propio directorio---algo que se asemeja a @file{/gnu/store/xxx-paquete-1.2}, donde @code{xxx} es una cadena en base32."
 
 # FUZZY
 #. type: Plain text
-#: doc/guix.texi:2600
+#: doc/guix.texi:2900
 msgid "Instead of referring to these directories, users have their own @dfn{profile}, which points to the packages that they actually want to use.  These profiles are stored within each user's home directory, at @code{$HOME/.guix-profile}."
 msgstr "En vez de referirse a estos directorios, las usuarias tienen su propio @dfn{perfil}, el cual apunta a los paquetes que realmente desean usar. Estos perfiles se almacenan en el directorio de cada usuaria, en @code{$HOME/.guix-profile}."
 
 #. type: Plain text
-#: doc/guix.texi:2608
+#: doc/guix.texi:2908
 msgid "For example, @code{alice} installs GCC 4.7.2.  As a result, @file{/home/alice/.guix-profile/bin/gcc} points to @file{/gnu/store/@dots{}-gcc-4.7.2/bin/gcc}.  Now, on the same machine, @code{bob} had already installed GCC 4.8.0.  The profile of @code{bob} simply continues to point to @file{/gnu/store/@dots{}-gcc-4.8.0/bin/gcc}---i.e., both versions of GCC coexist on the same system without any interference."
 msgstr "Por ejemplo, @code{alicia} instala GCC 4.7.2. Como resultado, @file{/home/alicia/.guix-profile/bin/gcc} apunta a @file{/gnu/store/@dots{}-gcc-4.7.2/bin/gcc}. Ahora, en la misma máquina, @code{rober} ha instalado ya GCC 4.8.0. El perfil de @code{rober} simplemente sigue apuntando a @file{/gnu/store/@dots{}-gcc-4.8.0/bin/gcc}---es decir, ambas versiones de GCC pueden coexistir en el mismo sistema sin ninguna interferencia."
 
 #. type: Plain text
-#: doc/guix.texi:2612
+#: doc/guix.texi:2912
 msgid "The @command{guix package} command is the central tool to manage packages (@pxref{Invoking guix package}).  It operates on the per-user profiles, and can be used @emph{with normal user privileges}."
 msgstr "La orden @command{guix package} es la herramienta central para gestión de paquetes (@pxref{Invoking guix package}). Opera en los perfiles de usuaria, y puede ser usada @emph{con privilegios de usuaria normal}."
 
 #. type: cindex
-#: doc/guix.texi:2613 doc/guix.texi:2692
+#: doc/guix.texi:2913 doc/guix.texi:2992
 #, no-wrap
 msgid "transactions"
 msgstr "transacciones"
 
 #. type: Plain text
-#: doc/guix.texi:2620
+#: doc/guix.texi:2920
 msgid "The command provides the obvious install, remove, and upgrade operations.  Each invocation is actually a @emph{transaction}: either the specified operation succeeds, or nothing happens.  Thus, if the @command{guix package} process is terminated during the transaction, or if a power outage occurs during the transaction, then the user's profile remains in its previous state, and remains usable."
 msgstr "La orden proporciona las operaciones obvias de instalación, borrado y actualización. Cada invocación es en realidad una @emph{transacción}: o bien la operación especificada se realiza satisfactoriamente, o bien nada sucede. Por tanto, si el proceso @command{guix package} es finalizado durante una transacción, o un fallo eléctrico ocurre durante la transacción, el perfil de usuaria permanece en su estado previo, y permanece usable."
 
 #. type: Plain text
-#: doc/guix.texi:2628
+#: doc/guix.texi:2928
 msgid "In addition, any package transaction may be @emph{rolled back}.  So, if, for example, an upgrade installs a new version of a package that turns out to have a serious bug, users may roll back to the previous instance of their profile, which was known to work well.  Similarly, the global system configuration on Guix is subject to transactional upgrades and roll-back (@pxref{Using the Configuration System})."
 msgstr "Además, cualquier transacción de paquetes puede ser @emph{vuelta atrás}. Si, por ejemplo, una actualización instala una nueva versión de un paquete que resulta tener un error importante, las usuarias pueden volver a la instancia previa de su perfil, de la cual se tiene constancia que funcionaba bien. De igual modo, la configuración global del sistema en Guix está sujeta a actualizaciones transaccionales y vuelta atrás (@pxref{Using the Configuration System})."
 
 #. type: Plain text
-#: doc/guix.texi:2635
+#: doc/guix.texi:2935
 msgid "All packages in the package store may be @emph{garbage-collected}.  Guix can determine which packages are still referenced by user profiles, and remove those that are provably no longer referenced (@pxref{Invoking guix gc}).  Users may also explicitly remove old generations of their profile so that the packages they refer to can be collected."
 msgstr "Todos los paquetes en el almacén de paquetes pueden ser @emph{eliminados por el recolector de basura}. Guix puede determinar a qué paquetes hacen referencia todavía los perfiles de usuarias, y eliminar aquellos que, de forma demostrable, no se haga referencia en ningún perfil (@pxref{Invoking guix gc}). Las usuarias pueden también borrar explícitamente generaciones antiguas de su perfil para que los paquetes a los que hacen referencia puedan ser recolectados."
 
 #. type: cindex
-#: doc/guix.texi:2636 doc/guix.texi:4392
+#: doc/guix.texi:2936 doc/guix.texi:4572
 #, no-wrap
 msgid "reproducibility"
 msgstr "reproducibilidad"
 
 #. type: Plain text
-#: doc/guix.texi:2648
+#: doc/guix.texi:2948
 msgid "Guix takes a @dfn{purely functional} approach to package management, as described in the introduction (@pxref{Introduction}).  Each @file{/gnu/store} package directory name contains a hash of all the inputs that were used to build that package---compiler, libraries, build scripts, etc.  This direct correspondence allows users to make sure a given package installation matches the current state of their distribution.  It also helps maximize @dfn{build reproducibility}: thanks to the isolated build environments that are used, a given build is likely to yield bit-identical files when performed on different machines (@pxref{Invoking guix-daemon, container})."
-msgstr "Guix toma una aproximación @dfn{puramente funcional} en la gestión de paquetes, como se describe en la introducción (@pxref{Introduction}). Cada nombre de directorio de paquete en @file{/gnu/store} contiene un hash de todas las entradas que fueron usadas para construir el paquete---compilador, bibliotecas, guiones de construcción, etc. Esta correspondencia directa permite a las usuarias asegurarse que una instalación dada de un paquete corresponde al estado actual de su distribución. Esto también ayuda a maximizar la @dfn{reproducibilidad de la construcción}: gracias al uso de entornos aislados de construcción, una construcción dada probablemente generará ficheros idénticos bit-a-bit cuando se realice en máquinas diferentes (@pxref{Invoking guix-daemon, container})."
+msgstr "Guix toma una aproximación @dfn{puramente funcional} en la gestión de paquetes, como se describe en la introducción (@pxref{Introduction}). Cada nombre de directorio de paquete en @file{/gnu/store} contiene un hash de todas las entradas que fueron usadas para construir el paquete---compilador, bibliotecas, guiones de construcción, etc. Esta correspondencia directa permite a las usuarias asegurarse que una instalación dada de un paquete corresponde al estado actual de su distribución. Esto también ayuda a maximizar la @dfn{reproducibilidad de la construcción}: gracias al uso de entornos aislados de construcción, una construcción dada probablemente generará archivos idénticos bit-a-bit cuando se realice en máquinas diferentes (@pxref{Invoking guix-daemon, container})."
 
 #. type: Plain text
-#: doc/guix.texi:2659
+#: doc/guix.texi:2959
 msgid "This foundation allows Guix to support @dfn{transparent binary/source deployment}.  When a pre-built binary for a @file{/gnu/store} item is available from an external source---a @dfn{substitute}, Guix just downloads it and unpacks it; otherwise, it builds the package from source, locally (@pxref{Substitutes}).  Because build results are usually bit-for-bit reproducible, users do not have to trust servers that provide substitutes: they can force a local build and @emph{challenge} providers (@pxref{Invoking guix challenge})."
 msgstr "Estos cimientos permiten a Guix ofrecer @dfn{despliegues transparentes de binarios/fuentes}. Cuando un binario pre-construido para un elemento de @file{/gnu/store} está disponible para descarga de una fuente externa---una @dfn{sustitución}, Guix simplemente lo descarga y desempaqueta; en otro caso construye el paquete de las fuentes, localmente (@pxref{Substitutes}). Debido a que los resultados de construcción son normalmente reproducibles bit-a-bit, las usuarias no tienen que confiar en los servidores que proporcionan sustituciones: pueden forzar una construcción local y @emph{retar} a las proveedoras (@pxref{Invoking guix challenge})."
 
 #. type: Plain text
-#: doc/guix.texi:2665
+#: doc/guix.texi:2965
 msgid "Control over the build environment is a feature that is also useful for developers.  The @command{guix environment} command allows developers of a package to quickly set up the right development environment for their package, without having to manually install the dependencies of the package into their profile (@pxref{Invoking guix environment})."
 msgstr "El control sobre el entorno de construcción es una característica que también es útil para desarrolladoras. La orden @command{guix environment} permite a desarrolladoras de un paquete configurar rápidamente el entorno de desarrollo correcto para su paquete, sin tener que instalar manualmente las dependencias del paquete en su perfil (@pxref{Invoking guix environment})."
 
 #. type: cindex
-#: doc/guix.texi:2666
+#: doc/guix.texi:2966
 #, no-wrap
 msgid "replication, of software environments"
 msgstr "replicación, de entornos de software"
 
 #. type: cindex
-#: doc/guix.texi:2667
+#: doc/guix.texi:2967
 #, no-wrap
 msgid "provenance tracking, of software artifacts"
 msgstr "seguimiento de procedencia, de artefactos de software"
 
 #. type: Plain text
-#: doc/guix.texi:2674
+#: doc/guix.texi:2974
 msgid "All of Guix and its package definitions is version-controlled, and @command{guix pull} allows you to ``travel in time'' on the history of Guix itself (@pxref{Invoking guix pull}).  This makes it possible to replicate a Guix instance on a different machine or at a later point in time, which in turn allows you to @emph{replicate complete software environments}, while retaining precise @dfn{provenance tracking} of the software."
 msgstr "Todo Guix y sus definiciones de paquetes están bajo control de versiones, y @command{guix pull} le permite ``viajar en el tiempo'' por la historia del mismo Guix (@pxref{Invoking guix pull}). Esto hace posible replicar una instancia de Guix en una máquina diferente o en un punto posterior del tiempo, lo que a su vez le permite @emph{replicar entornos de software completos}, mientras que mantiene un preciso @dfn{seguimiento de la procedencia} del software."
 
 #. type: section
-#: doc/guix.texi:2676
+#: doc/guix.texi:2976
 #, no-wrap
 msgid "Invoking @command{guix package}"
 msgstr "Invocación de @command{guix package}"
 
 #. type: cindex
-#: doc/guix.texi:2678
+#: doc/guix.texi:2978
 #, no-wrap
 msgid "installing packages"
 msgstr "instalar paquetes"
 
 #. type: cindex
-#: doc/guix.texi:2679
+#: doc/guix.texi:2979
 #, no-wrap
 msgid "removing packages"
 msgstr "borrar paquetes"
 
 #. type: cindex
-#: doc/guix.texi:2680
+#: doc/guix.texi:2980
 #, no-wrap
 msgid "package installation"
 msgstr "instalación de paquetes"
 
 #. type: cindex
-#: doc/guix.texi:2681
+#: doc/guix.texi:2981
 #, no-wrap
 msgid "package removal"
 msgstr "borrado de paquetes"
 
 #. type: Plain text
-#: doc/guix.texi:2687
+#: doc/guix.texi:2987
 msgid "The @command{guix package} command is the tool that allows users to install, upgrade, and remove packages, as well as rolling back to previous configurations.  It operates only on the user's own profile, and works with normal user privileges (@pxref{Features}).  Its syntax is:"
 msgstr "La orden @command{guix package} es la herramienta que permite a las usuarias instalar, actualizar y borrar paquetes, así como volver a configuraciones previas. Opera únicamente en el perfil propio de la usuaria, y funciona con privilegios de usuaria normal (@pxref{Features}). Su sintaxis es:"
 
 #. type: example
-#: doc/guix.texi:2690
+#: doc/guix.texi:2990
 #, no-wrap
 msgid "guix package @var{options}\n"
 msgstr "guix package @var{opciones}\n"
 
 #. type: Plain text
-#: doc/guix.texi:2697
+#: doc/guix.texi:2997
 msgid "Primarily, @var{options} specifies the operations to be performed during the transaction.  Upon completion, a new profile is created, but previous @dfn{generations} of the profile remain available, should the user want to roll back."
 msgstr "Primariamente, @var{opciones} especifica las operaciones a ser realizadas durante la transacción. Al completarse, un nuevo perfil es creado, pero las @dfn{generaciones} previas del perfil permanecen disponibles, en caso de que la usuaria quisiera volver atrás."
 
 #. type: Plain text
-#: doc/guix.texi:2700
+#: doc/guix.texi:3000
 msgid "For example, to remove @code{lua} and install @code{guile} and @code{guile-cairo} in a single transaction:"
 msgstr "Por ejemplo, para borrar @code{lua} e instalar @code{guile} y @code{guile-cairo} en una única transacción:"
 
 #. type: example
-#: doc/guix.texi:2703
+#: doc/guix.texi:3003
 #, no-wrap
 msgid "guix package -r lua -i guile guile-cairo\n"
 msgstr "guix package -r lua -i guile guile-cairo\n"
 
 # FUZZY
 #. type: cindex
-#: doc/guix.texi:2705
+#: doc/guix.texi:3005
 #, no-wrap
 msgid "aliases, for @command{guix package}"
 msgstr "alias de @command{guix package}"
 
 # FUZZY
 #. type: Plain text
-#: doc/guix.texi:2707
+#: doc/guix.texi:3007
 msgid "For your convenience, we also provide the following aliases:"
 msgstr "Para su conveniencia, también se proporcionan los siguientes alias:"
 
 #. type: itemize
-#: doc/guix.texi:2711
+#: doc/guix.texi:3011
 msgid "@command{guix search} is an alias for @command{guix package -s},"
 msgstr "@command{guix search} es un alias de @command{guix package -s},"
 
 #. type: itemize
-#: doc/guix.texi:2713
+#: doc/guix.texi:3013
 msgid "@command{guix install} is an alias for @command{guix package -i},"
 msgstr "@command{guix install} es un alias de @command{guix package -i},"
 
 #. type: itemize
-#: doc/guix.texi:2715
+#: doc/guix.texi:3015
 msgid "@command{guix remove} is an alias for @command{guix package -r},"
 msgstr "@command{guix remove} es un alias de @command{guix package -r},"
 
@@ -7121,52 +7967,52 @@ msgstr "@command{guix remove} es un alias de @command{guix package -r},"
 # "coma de Oxford" en las enumeraciones. Mantener en el último elemento
 # de la lista únicamente.
 #. type: itemize
-#: doc/guix.texi:2717
+#: doc/guix.texi:3017
 msgid "@command{guix upgrade} is an alias for @command{guix package -u},"
 msgstr "@command{guix upgrade} es un alias de @command{guix package -u}"
 
 #. type: itemize
-#: doc/guix.texi:2719
+#: doc/guix.texi:3019
 msgid "and @command{guix show} is an alias for @command{guix package --show=}."
 msgstr "y @command{guix show} es un alias de @command{guix package --show=}."
 
 # FUZZY
 #. type: Plain text
-#: doc/guix.texi:2724
+#: doc/guix.texi:3024
 msgid "These aliases are less expressive than @command{guix package} and provide fewer options, so in some cases you'll probably want to use @command{guix package} directly."
 msgstr "Estos alias tienen menos capacidad expresiva que @command{guix package} y proporcionan menos opciones, por lo que en algunos casos es probable que desee usar @command{guix package} directamente."
 
 #. type: Plain text
-#: doc/guix.texi:2729
+#: doc/guix.texi:3029
 msgid "@command{guix package} also supports a @dfn{declarative approach} whereby the user specifies the exact set of packages to be available and passes it @i{via} the @option{--manifest} option (@pxref{profile-manifest, @option{--manifest}})."
 msgstr "@command{guix package} también proporciona una @dfn{aproximación declarativa}, donde la usuaria especifica el conjunto exacto de paquetes a poner disponibles y la pasa a través de la opción @option{--manifest} (@pxref{profile-manifest, @option{--manifest}})."
 
 #. type: cindex
-#: doc/guix.texi:2730
+#: doc/guix.texi:3030
 #, no-wrap
 msgid "profile"
 msgstr "perfil"
 
 # TODO (MAAV): De nuevo "and so on".
 #. type: Plain text
-#: doc/guix.texi:2736
-msgid "For each user, a symlink to the user's default profile is automatically created in @file{$HOME/.guix-profile}.  This symlink always points to the current generation of the user's default profile.  Thus, users can add @file{$HOME/.guix-profile/bin} to their @code{PATH} environment variable, and so on."
-msgstr "Para cada usuaria, un enlace simbólico al perfil predeterminado de la usuaria es creado en @file{$HOME/.guix-profile}. Este enlace simbólico siempre apunta a la generación actual del perfil predeterminado de la usuaria. Por lo tanto, las usuarias pueden añadir @file{$HOME/.guix-profile/bin} a su variable de entorno @code{PATH}, y demás."
+#: doc/guix.texi:3036
+msgid "For each user, a symlink to the user's default profile is automatically created in @file{$HOME/.guix-profile}.  This symlink always points to the current generation of the user's default profile.  Thus, users can add @file{$HOME/.guix-profile/bin} to their @env{PATH} environment variable, and so on."
+msgstr "Para cada usuaria, un enlace simbólico al perfil predeterminado de la usuaria es creado en @file{$HOME/.guix-profile}. Este enlace simbólico siempre apunta a la generación actual del perfil predeterminado de la usuaria. Por lo tanto, las usuarias pueden añadir @file{$HOME/.guix-profile/bin} a su variable de entorno @env{PATH}, etcétera."
 
 #. type: cindex
-#: doc/guix.texi:2736 doc/guix.texi:2934
+#: doc/guix.texi:3036 doc/guix.texi:3266
 #, no-wrap
 msgid "search paths"
 msgstr "rutas de búsqueda"
 
 # FUZZY
 #. type: Plain text
-#: doc/guix.texi:2741
+#: doc/guix.texi:3041
 msgid "If you are not using Guix System, consider adding the following lines to your @file{~/.bash_profile} (@pxref{Bash Startup Files,,, bash, The GNU Bash Reference Manual}) so that newly-spawned shells get all the right environment variable definitions:"
-msgstr "Si no está usando el sistema Guix, considere la adición de las siguientes líneas en su @file{~/.bash_profile} (@pxref{Bash Startup Files,,, bash, The GNU Bash Reference Manual}) de manera que los nuevos shell que ejecute obtengan todas las definiciones correctas de las variables de entorno:"
+msgstr "Si no está usando el sistema Guix, considere la adición de las siguientes líneas en su @file{~/.bash_profile} (@pxref{Bash Startup Files,,, bash, The GNU Bash Reference Manual}) de manera que los nuevos intérpretes que ejecute obtengan todas las definiciones correctas de las variables de entorno:"
 
 #. type: example
-#: doc/guix.texi:2745
+#: doc/guix.texi:3045
 #, no-wrap
 msgid ""
 "GUIX_PROFILE=\"$HOME/.guix-profile\" ; \\\n"
@@ -7176,254 +8022,299 @@ msgstr ""
 "source \"$HOME/.guix-profile/etc/profile\"\n"
 
 #. type: Plain text
-#: doc/guix.texi:2756
-msgid "In a multi-user setup, user profiles are stored in a place registered as a @dfn{garbage-collector root}, which @file{$HOME/.guix-profile} points to (@pxref{Invoking guix gc}).  That directory is normally @code{@var{localstatedir}/guix/profiles/per-user/@var{user}}, where @var{localstatedir} is the value passed to @code{configure} as @code{--localstatedir}, and @var{user} is the user name.  The @file{per-user} directory is created when @command{guix-daemon} is started, and the @var{user} sub-directory is created by @command{guix package}."
-msgstr "En una configuración multiusuaria, los perfiles de usuaria se almacenan en un lugar registrado como una @dfn{raíz del sistema de ficheros}, a la que apunta @file{$HOME/.guix-profile} (@pxref{Invoking guix gc}). Ese directorio normalmente es @code{@var{localstatedir}/guix/profiles/per-user/@var{usuaria}}, donde @var{localstatedir} es el valor pasado a @code{configure} como @code{--localstatedir} y @var{usuaria} es el nombre de usuaria. El directorio @file{per-user} se crea cuando se lanza @command{guix-daemon}, y el subdirectorio @var{usuaria} es creado por @command{guix package}."
+#: doc/guix.texi:3056
+msgid "In a multi-user setup, user profiles are stored in a place registered as a @dfn{garbage-collector root}, which @file{$HOME/.guix-profile} points to (@pxref{Invoking guix gc}).  That directory is normally @code{@var{localstatedir}/guix/profiles/per-user/@var{user}}, where @var{localstatedir} is the value passed to @code{configure} as @option{--localstatedir}, and @var{user} is the user name.  The @file{per-user} directory is created when @command{guix-daemon} is started, and the @var{user} sub-directory is created by @command{guix package}."
+msgstr "En una configuración multiusuaria, los perfiles de usuaria se almacenan en un lugar registrado como una @dfn{raíz del sistema de archivos}, a la que apunta @file{$HOME/.guix-profile} (@pxref{Invoking guix gc}). Ese directorio normalmente es @code{@var{localstatedir}/guix/profiles/per-user/@var{usuaria}}, donde @var{localstatedir} es el valor pasado a @code{configure} como @option{--localstatedir} y @var{usuaria} es el nombre de usuaria. El directorio @file{per-user} se crea cuando se lanza @command{guix-daemon}, y el subdirectorio @var{usuaria} es creado por @command{guix package}."
 
 #. type: Plain text
-#: doc/guix.texi:2758
+#: doc/guix.texi:3058
 msgid "The @var{options} can be among the following:"
 msgstr "Las @var{opciones} pueden ser las siguientes:"
 
 #. type: item
-#: doc/guix.texi:2761
+#: doc/guix.texi:3061
 #, no-wrap
 msgid "--install=@var{package} @dots{}"
 msgstr "--install=@var{paquete} @dots{}"
 
 #. type: itemx
-#: doc/guix.texi:2762
+#: doc/guix.texi:3062
 #, no-wrap
 msgid "-i @var{package} @dots{}"
 msgstr "-i @var{paquete} @dots{}"
 
 #. type: table
-#: doc/guix.texi:2764
+#: doc/guix.texi:3064
 msgid "Install the specified @var{package}s."
 msgstr "Instala los @var{paquete}s especificados."
 
 #. type: table
-#: doc/guix.texi:2769
-msgid "Each @var{package} may specify either a simple package name, such as @code{guile}, or a package name followed by an at-sign and version number, such as @code{guile@@1.8.8} or simply @code{guile@@1.8} (in the latter case, the newest version prefixed by @code{1.8} is selected.)"
+#: doc/guix.texi:3069
+msgid "Each @var{package} may specify either a simple package name, such as @code{guile}, or a package name followed by an at-sign and version number, such as @code{guile@@1.8.8} or simply @code{guile@@1.8} (in the latter case, the newest version prefixed by @code{1.8} is selected)."
 msgstr "Cada @var{paquete} puede especificar un nombre simple de paquete, como por ejemplo @code{guile}, o un nombre de paquete seguido por una arroba y el número de versión, como por ejemplo @code{guile@@1.8.8} o simplemente @code{guile@@1.8} (en el último caso la última versión con @code{1.8} como prefijo es seleccionada)."
 
 #. type: table
-#: doc/guix.texi:2777
+#: doc/guix.texi:3077
 msgid "If no version number is specified, the newest available version will be selected.  In addition, @var{package} may contain a colon, followed by the name of one of the outputs of the package, as in @code{gcc:doc} or @code{binutils@@2.22:lib} (@pxref{Packages with Multiple Outputs}).  Packages with a corresponding name (and optionally version) are searched for among the GNU distribution modules (@pxref{Package Modules})."
 msgstr "Si no se especifica un número de versión, la última versión disponible será seleccionada. Además, @var{paquete} puede contener dos puntos, seguido por el nombre de una de las salidas del paquete, como en @code{gcc:doc} o @code{binutils@@2.22:lib} (@pxref{Packages with Multiple Outputs}). Los paquetes con el nombre correspondiente (y opcionalmente la versión) se buscan entre los módulos de la distribución GNU (@pxref{Package Modules})."
 
 #. type: cindex
-#: doc/guix.texi:2778
+#: doc/guix.texi:3078
 #, no-wrap
 msgid "propagated inputs"
 msgstr "entradas propagadas"
 
 # TODO: ¡Comprobar traducción del enlace!
 #. type: table
-#: doc/guix.texi:2784
+#: doc/guix.texi:3084
 msgid "Sometimes packages have @dfn{propagated inputs}: these are dependencies that automatically get installed along with the required package (@pxref{package-propagated-inputs, @code{propagated-inputs} in @code{package} objects}, for information about propagated inputs in package definitions)."
 msgstr "A veces los paquetes tienen @dfn{entradas propagadas}: estas son las dependencias que se instalan automáticamente junto al paquete requerido (@pxref{package-propagated-inputs, @code{propagated-inputs} in @code{package} objects}, para información sobre las entradas propagadas en las definiciones de paquete)."
 
 #. type: anchor{#1}
-#: doc/guix.texi:2791
+#: doc/guix.texi:3091
 msgid "package-cmd-propagated-inputs"
 msgstr "package-cmd-propagated-inputs"
 
 #. type: table
-#: doc/guix.texi:2791
+#: doc/guix.texi:3091
 msgid "An example is the GNU MPC library: its C header files refer to those of the GNU MPFR library, which in turn refer to those of the GMP library.  Thus, when installing MPC, the MPFR and GMP libraries also get installed in the profile; removing MPC also removes MPFR and GMP---unless they had also been explicitly installed by the user."
-msgstr "Un ejemplo es la biblioteca GNU MPC: sus ficheros de cabecera C hacen referencia a los de la biblioteca GNU MPFR, que a su vez hacen referencia a los de la biblioteca GMP. Por tanto, cuando se instala MPC, las bibliotecas MPFR y GMP también se instalan en el perfil; borrar MPC también borra MPFR y GMP---a menos que también se hayan instalado explícitamente por la usuaria."
+msgstr "Un ejemplo es la biblioteca GNU MPC: sus archivos de cabecera C hacen referencia a los de la biblioteca GNU MPFR, que a su vez hacen referencia a los de la biblioteca GMP. Por tanto, cuando se instala MPC, las bibliotecas MPFR y GMP también se instalan en el perfil; borrar MPC también borra MPFR y GMP---a menos que también se hayan instalado explícitamente por la usuaria."
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:2796
-msgid "Besides, packages sometimes rely on the definition of environment variables for their search paths (see explanation of @code{--search-paths} below).  Any missing or possibly incorrect environment variable definitions are reported here."
-msgstr "Por otra parte, los paquetes a veces dependen de la definición de variables de entorno para sus rutas de búsqueda (véase a continuación la explicación de @code{--seach-paths}). Cualquier definición de variable de entorno que falte o sea posiblemente incorrecta se informa aquí."
+#: doc/guix.texi:3096
+msgid "Besides, packages sometimes rely on the definition of environment variables for their search paths (see explanation of @option{--search-paths} below).  Any missing or possibly incorrect environment variable definitions are reported here."
+msgstr "Por otra parte, los paquetes a veces dependen de la definición de variables de entorno para sus rutas de búsqueda (véase a continuación la explicación de @option{--seach-paths}). Cualquier definición de variable de entorno que falte o sea posiblemente incorrecta se informa aquí."
 
 #. type: item
-#: doc/guix.texi:2797
+#: doc/guix.texi:3097
 #, no-wrap
 msgid "--install-from-expression=@var{exp}"
 msgstr "--install-from-expression=@var{exp}"
 
 #. type: itemx
-#: doc/guix.texi:2798
+#: doc/guix.texi:3098
 #, no-wrap
 msgid "-e @var{exp}"
 msgstr "-e @var{exp}"
 
 #. type: table
-#: doc/guix.texi:2800
+#: doc/guix.texi:3100
 msgid "Install the package @var{exp} evaluates to."
 msgstr "Instala el paquete al que @var{exp} evalúa."
 
 #. type: table
-#: doc/guix.texi:2805
+#: doc/guix.texi:3105
 msgid "@var{exp} must be a Scheme expression that evaluates to a @code{<package>} object.  This option is notably useful to disambiguate between same-named variants of a package, with expressions such as @code{(@@ (gnu packages base) guile-final)}."
 msgstr "@var{exp} debe ser una expresión Scheme que evalúe a un objeto @code{<package>}. Esta opción es notablemente útil para diferenciar entre variantes con el mismo nombre de paquete, con expresiones como @code{(@@ (gnu packages base) guile-final)}."
 
 #. type: table
-#: doc/guix.texi:2809
+#: doc/guix.texi:3109
 msgid "Note that this option installs the first output of the specified package, which may be insufficient when needing a specific output of a multiple-output package."
 msgstr "Fíjese que esta opción instala la primera salida del paquete especificado, lo cual puede ser insuficiente cuando se necesita una salida específica de un paquete con múltiples salidas."
 
 #. type: item
-#: doc/guix.texi:2810
+#: doc/guix.texi:3110
 #, no-wrap
 msgid "--install-from-file=@var{file}"
-msgstr "--install-from-file=@var{fichero}"
+msgstr "--install-from-file=@var{archivo}"
 
 #. type: itemx
-#: doc/guix.texi:2811 doc/guix.texi:8542
+#: doc/guix.texi:3111 doc/guix.texi:10341
 #, no-wrap
 msgid "-f @var{file}"
-msgstr "-f @var{fichero}"
+msgstr "-f @var{archivo}"
 
 #. type: table
-#: doc/guix.texi:2813
+#: doc/guix.texi:3113
 msgid "Install the package that the code within @var{file} evaluates to."
-msgstr "Instala el paquete que resulta de evaluar el código en @var{fichero}."
+msgstr "Instala el paquete que resulta de evaluar el código en @var{archivo}."
 
 #. type: table
-#: doc/guix.texi:2816 doc/guix.texi:4841
+#: doc/guix.texi:3116 doc/guix.texi:5569
 msgid "As an example, @var{file} might contain a definition like this (@pxref{Defining Packages}):"
-msgstr "Como un ejemplo, @var{fichero} puede contener una definición como esta (@pxref{Defining Packages}):"
+msgstr "Como un ejemplo, @var{archivo} puede contener una definición como esta (@pxref{Defining Packages}):"
 
 #. type: include
-#: doc/guix.texi:2818 doc/guix.texi:8550
+#: doc/guix.texi:3118 doc/guix.texi:10349
 #, no-wrap
 msgid "package-hello.scm"
 msgstr "package-hello.scm"
 
 #. type: table
-#: doc/guix.texi:2825
+#: doc/guix.texi:3125
 msgid "Developers may find it useful to include such a @file{guix.scm} file in the root of their project source tree that can be used to test development snapshots and create reproducible development environments (@pxref{Invoking guix environment})."
-msgstr "Las desarrolladoras pueden encontrarlo útil para incluir un fichero @file{guix.scm} in la raíz del árbol de fuentes de su proyecto que puede ser usado para probar imágenes de desarrollo y crear entornos de desarrollo reproducibles (@pxref{Invoking guix environment})."
+msgstr "Las desarrolladoras pueden encontrarlo útil para incluir un archivo @file{guix.scm} in la raíz del árbol de fuentes de su proyecto que puede ser usado para probar imágenes de desarrollo y crear entornos de desarrollo reproducibles (@pxref{Invoking guix environment})."
+
+#. type: table
+#: doc/guix.texi:3130
+msgid "The @var{file} may also contain a JSON representation of one or more package definitions.  Running @code{guix package -f} on @file{hello.json} with the following contents would result in installing the package @code{greeter} after building @code{myhello}:"
+msgstr "El @var{archivo} puede contener también una representación en JSON de una o más definiciones de paquetes. Ejecutar @code{guix package -f} en @file{hello.json} con el contenido mostrado a continuación provocará la instalación del paquete @code{greeter} tras la construcción de @code{myhello}:"
+
+#. type: example
+#: doc/guix.texi:3133 doc/guix.texi:10359
+#, no-wrap
+msgid "@verbatiminclude package-hello.json\n"
+msgstr "@verbatiminclude package-hello.json\n"
 
 #. type: item
-#: doc/guix.texi:2826
+#: doc/guix.texi:3135
 #, no-wrap
 msgid "--remove=@var{package} @dots{}"
 msgstr "--remove=@var{paquete} @dots{}"
 
 #. type: itemx
-#: doc/guix.texi:2827
+#: doc/guix.texi:3136
 #, no-wrap
 msgid "-r @var{package} @dots{}"
 msgstr "-r @var{paquete} @dots{}"
 
 #. type: table
-#: doc/guix.texi:2829
+#: doc/guix.texi:3138
 msgid "Remove the specified @var{package}s."
 msgstr "Borra los @var{paquete}s especificados."
 
 #. type: table
-#: doc/guix.texi:2834
-msgid "As for @code{--install}, each @var{package} may specify a version number and/or output name in addition to the package name.  For instance, @code{-r glibc:debug} would remove the @code{debug} output of @code{glibc}."
-msgstr "Como en @code{--install}, cada @var{paquete} puede especificar un número de versión y/o un nombre de salida además del nombre del paquete. Por ejemplo, @code{-r glibc:debug} eliminaría la salida @code{debug} de @code{glibc}."
+#: doc/guix.texi:3143
+msgid "As for @option{--install}, each @var{package} may specify a version number and/or output name in addition to the package name.  For instance, @samp{-r glibc:debug} would remove the @code{debug} output of @code{glibc}."
+msgstr "Como en @option{--install}, cada @var{paquete} puede especificar un número de versión y/o un nombre de salida además del nombre del paquete. Por ejemplo, @code{-r glibc:debug} eliminaría la salida @code{debug} de @code{glibc}."
 
 #. type: item
-#: doc/guix.texi:2835
+#: doc/guix.texi:3144
 #, no-wrap
 msgid "--upgrade[=@var{regexp} @dots{}]"
 msgstr "--upgrade[=@var{regexp} @dots{}]"
 
 #. type: itemx
-#: doc/guix.texi:2836
+#: doc/guix.texi:3145
 #, no-wrap
 msgid "-u [@var{regexp} @dots{}]"
 msgstr "-u [@var{regexp} @dots{}]"
 
 #. type: cindex
-#: doc/guix.texi:2837
+#: doc/guix.texi:3146
 #, no-wrap
 msgid "upgrading packages"
 msgstr "actualizar paquetes"
 
 #. type: table
-#: doc/guix.texi:2841
-msgid "Upgrade all the installed packages.  If one or more @var{regexp}s are specified, upgrade only installed packages whose name matches a @var{regexp}.  Also see the @code{--do-not-upgrade} option below."
-msgstr "Actualiza todos los paquetes instalados. Si se especifica una o más expresiones regular @var{regexp}, actualiza únicamente los paquetes instalados cuyo nombre es aceptado por @var{regexp}. Véase también la opción @code{--do-not-upgrade} más adelante."
+#: doc/guix.texi:3150
+msgid "Upgrade all the installed packages.  If one or more @var{regexp}s are specified, upgrade only installed packages whose name matches a @var{regexp}.  Also see the @option{--do-not-upgrade} option below."
+msgstr "Actualiza todos los paquetes instalados. Si se especifica una o más expresiones regular @var{regexp}, actualiza únicamente los paquetes instalados cuyo nombre es aceptado por @var{regexp}. Véase también la opción @option{--do-not-upgrade} más adelante."
 
 #. type: table
-#: doc/guix.texi:2846
+#: doc/guix.texi:3155
 msgid "Note that this upgrades package to the latest version of packages found in the distribution currently installed.  To update your distribution, you should regularly run @command{guix pull} (@pxref{Invoking guix pull})."
 msgstr "Tenga en cuenta que esto actualiza los paquetes a la última versión encontrada en la distribución instalada actualmente. Para actualizar su distribución, debe ejecutar regularmente @command{guix pull} (@pxref{Invoking guix pull})."
 
+#. type: cindex
+#: doc/guix.texi:3156
+#, no-wrap
+msgid "package transformations, upgrades"
+msgstr "transformación de paquetes, actualizaciones"
+
+#. type: table
+#: doc/guix.texi:3161
+msgid "When upgrading, package transformations that were originally applied when creating the profile are automatically re-applied (@pxref{Package Transformation Options}).  For example, assume you first installed Emacs from the tip of its development branch with:"
+msgstr "Al actualizar,  las transformaciones que se aplicaron originalmente al crear el perfil se aplican de nuevo de manera automática (@pxref{Package Transformation Options}). Por ejemplo, asumiendo que hubiese instalado Emacs a partir de la última revisión de su rama de desarrollo con:"
+
+#. type: example
+#: doc/guix.texi:3164
+#, no-wrap
+msgid "guix install emacs-next --with-branch=emacs-next=master\n"
+msgstr "guix install emacs-next --with-branch=emacs-next=master\n"
+
+#. type: table
+#: doc/guix.texi:3169
+msgid "Next time you run @command{guix upgrade}, Guix will again pull the tip of the Emacs development branch and build @code{emacs-next} from that checkout."
+msgstr "La próxima vez que ejecute @command{guix upgrade} Guix obtendrá de nuevo la última revisión de la rama de desarrollo de Emacs y construirá @code{emacs-next} a partir de ese código."
+
+#. type: table
+#: doc/guix.texi:3174
+msgid "Note that transformation options such as @option{--with-branch} and @option{--with-source} depend on external state; it is up to you to ensure that they work as expected.  You can also discard a transformations that apply to a package by running:"
+msgstr "Tenga en cuenta que las opciones de transformación, como por ejemplo @option{--with-branch} y @option{--with-source}, dependen de un estado externo; es su responsabilidad asegurarse de que funcionen de la manera esperada. También puede deshacer las transformaciones aplicadas a un paquete con la siguiente orden:"
+
+#. type: example
+#: doc/guix.texi:3177
+#, no-wrap
+msgid "guix install @var{package}\n"
+msgstr "guix install @var{paquete}\n"
+
 #. type: item
-#: doc/guix.texi:2847
+#: doc/guix.texi:3179
 #, no-wrap
 msgid "--do-not-upgrade[=@var{regexp} @dots{}]"
 msgstr "--do-not-upgrade[=@var{regexp} @dots{}]"
 
 #. type: table
-#: doc/guix.texi:2852
-msgid "When used together with the @code{--upgrade} option, do @emph{not} upgrade any packages whose name matches a @var{regexp}.  For example, to upgrade all packages in the current profile except those containing the substring ``emacs'':"
-msgstr "Cuando se usa junto a la opción @code{--upgrade}, @emph{no} actualiza ningún paquete cuyo nombre sea aceptado por @var{regexp}. Por ejemplo, para actualizar todos los paquetes en el perfil actual excepto aquellos que contengan la cadena ``emacs'':"
+#: doc/guix.texi:3184
+msgid "When used together with the @option{--upgrade} option, do @emph{not} upgrade any packages whose name matches a @var{regexp}.  For example, to upgrade all packages in the current profile except those containing the substring ``emacs'':"
+msgstr "Cuando se usa junto a la opción @option{--upgrade}, @emph{no} actualiza ningún paquete cuyo nombre sea aceptado por @var{regexp}. Por ejemplo, para actualizar todos los paquetes en el perfil actual excepto aquellos que contengan la cadena ``emacs'':"
 
 #. type: example
-#: doc/guix.texi:2855
+#: doc/guix.texi:3187
 #, no-wrap
 msgid "$ guix package --upgrade . --do-not-upgrade emacs\n"
 msgstr "$ guix package --upgrade . --do-not-upgrade emacs\n"
 
 #. type: anchor{#1}
-#: doc/guix.texi:2857
+#: doc/guix.texi:3189
 #, no-wrap
 msgid "profile-manifest"
 msgstr "profile-manifest"
 
 #. type: item
-#: doc/guix.texi:2857 doc/guix.texi:4846 doc/guix.texi:5234 doc/guix.texi:9525
-#: doc/guix.texi:10843
+#: doc/guix.texi:3189 doc/guix.texi:5574 doc/guix.texi:5993
+#: doc/guix.texi:11346 doc/guix.texi:12762
 #, no-wrap
 msgid "--manifest=@var{file}"
-msgstr "--manifest=@var{fichero}"
+msgstr "--manifest=@var{archivo}"
 
 #. type: itemx
-#: doc/guix.texi:2858 doc/guix.texi:4847 doc/guix.texi:5235 doc/guix.texi:9526
+#: doc/guix.texi:3190 doc/guix.texi:5575 doc/guix.texi:5994
+#: doc/guix.texi:11347
 #, no-wrap
 msgid "-m @var{file}"
-msgstr "-m @var{fichero}"
+msgstr "-m @var{archivo}"
 
 #. type: cindex
-#: doc/guix.texi:2859
+#: doc/guix.texi:3191
 #, no-wrap
 msgid "profile declaration"
 msgstr "declaración del perfil"
 
 # FUZZY
 #. type: cindex
-#: doc/guix.texi:2860
+#: doc/guix.texi:3192
 #, no-wrap
 msgid "profile manifest"
 msgstr "manifiesto del perfil"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:2864
+#: doc/guix.texi:3196
 msgid "Create a new generation of the profile from the manifest object returned by the Scheme code in @var{file}.  This option can be repeated several times, in which case the manifests are concatenated."
-msgstr "Crea una nueva generación del perfil desde el objeto de manifiesto devuelto por el código Scheme en @var{fichero}. Esta opción puede repetirse varias veces, en cuyo caso los manifiestos se concatenan."
+msgstr "Crea una nueva generación del perfil desde el objeto de manifiesto devuelto por el código Scheme en @var{archivo}. Esta opción puede repetirse varias veces, en cuyo caso los manifiestos se concatenan."
 
 # TODO (MAAV): And so on.
 #. type: table
-#: doc/guix.texi:2870
-msgid "This allows you to @emph{declare} the profile's contents rather than constructing it through a sequence of @code{--install} and similar commands.  The advantage is that @var{file} can be put under version control, copied to different machines to reproduce the same profile, and so on."
-msgstr "Esto le permite @emph{declarar} los contenidos del perfil en vez de construirlo a través de una secuencia de @code{--install} y órdenes similares. La ventaja es que @var{fichero} puede ponerse bajo control de versiones, copiarse a máquinas diferentes para reproducir el mismo perfil, y demás."
+#: doc/guix.texi:3202
+msgid "This allows you to @emph{declare} the profile's contents rather than constructing it through a sequence of @option{--install} and similar commands.  The advantage is that @var{file} can be put under version control, copied to different machines to reproduce the same profile, and so on."
+msgstr "Esto le permite @emph{declarar} los contenidos del perfil en vez de construirlo a través de una secuencia de @option{--install} y órdenes similares. La ventaja es que @var{archivo} puede ponerse bajo control de versiones, copiarse a máquinas diferentes para reproducir el mismo perfil, y demás."
 
 #. type: table
-#: doc/guix.texi:2874
+#: doc/guix.texi:3206
 msgid "@var{file} must return a @dfn{manifest} object, which is roughly a list of packages:"
-msgstr "@var{fichero} debe devolver un objeto @dfn{manifest}, que es básicamente una lista de paquetes:"
+msgstr "@var{archivo} debe devolver un objeto @dfn{manifest}, que es básicamente una lista de paquetes:"
 
 #. type: findex
-#: doc/guix.texi:2875
+#: doc/guix.texi:3207
 #, no-wrap
 msgid "packages->manifest"
 msgstr "packages->manifest"
 
 #. type: lisp
-#: doc/guix.texi:2878
+#: doc/guix.texi:3210
 #, no-wrap
 msgid ""
 "(use-package-modules guile emacs)\n"
@@ -7433,7 +8324,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:2884
+#: doc/guix.texi:3216
 #, no-wrap
 msgid ""
 "(packages->manifest\n"
@@ -7449,18 +8340,18 @@ msgstr ""
 "       (list guile-2.0 \"debug\")))\n"
 
 #. type: findex
-#: doc/guix.texi:2886
+#: doc/guix.texi:3218
 #, no-wrap
 msgid "specifications->manifest"
 msgstr "specifications->manifest"
 
 #. type: table
-#: doc/guix.texi:2893
+#: doc/guix.texi:3225
 msgid "In this example we have to know which modules define the @code{emacs} and @code{guile-2.0} variables to provide the right @code{use-package-modules} line, which can be cumbersome.  We can instead provide regular package specifications and let @code{specifications->manifest} look up the corresponding package objects, like this:"
 msgstr "En este ejemplo tenemos que conocer qué módulos definen las variables @code{emacs} y @code{guile-2.0} para proporcionar la línea @code{use-package-modules} correcta, lo cual puede ser complicado. En cambio podemos proporcionar especificaciones regulares de paquetes y dejar a @code{specifications->manifest} buscar los objetos de paquete correspondientes así:"
 
 #. type: lisp
-#: doc/guix.texi:2897
+#: doc/guix.texi:3229
 #, no-wrap
 msgid ""
 "(specifications->manifest\n"
@@ -7470,122 +8361,122 @@ msgstr ""
 " '(\"emacs\" \"guile@@2.2\" \"guile@@2.2:debug\"))\n"
 
 #. type: item
-#: doc/guix.texi:2899 doc/guix.texi:3848
+#: doc/guix.texi:3231 doc/guix.texi:4293
 #, no-wrap
 msgid "--roll-back"
 msgstr "--roll-back"
 
 #. type: cindex
-#: doc/guix.texi:2900 doc/guix.texi:3849 doc/guix.texi:26662
+#: doc/guix.texi:3232 doc/guix.texi:4294 doc/guix.texi:30789
 #, no-wrap
 msgid "rolling back"
-msgstr "vuelta atrás"
+msgstr "revertir (``roll back'')"
 
 #. type: cindex
-#: doc/guix.texi:2901 doc/guix.texi:3850
+#: doc/guix.texi:3233 doc/guix.texi:4295
 #, no-wrap
 msgid "undoing transactions"
 msgstr "deshacer transacciones"
 
 #. type: cindex
-#: doc/guix.texi:2902 doc/guix.texi:3851
+#: doc/guix.texi:3234 doc/guix.texi:4296
 #, no-wrap
 msgid "transactions, undoing"
-msgstr "transacciones, deshaciendo"
+msgstr "transacciones, deshacer"
 
 #. type: table
-#: doc/guix.texi:2905
+#: doc/guix.texi:3237
 msgid "Roll back to the previous @dfn{generation} of the profile---i.e., undo the last transaction."
-msgstr "Vuelve a la @dfn{generación} previa del perfil---es decir, deshace la última transacción."
+msgstr "Vuelve a la @dfn{generación} previa del perfil---es decir, revierte la última transacción."
 
 #. type: table
-#: doc/guix.texi:2908
-msgid "When combined with options such as @code{--install}, roll back occurs before any other actions."
-msgstr "Cuando se combina con opciones como @code{--install}, la vuelta atrás ocurre antes que cualquier acción."
+#: doc/guix.texi:3240
+msgid "When combined with options such as @option{--install}, roll back occurs before any other actions."
+msgstr "Cuando se combina con opciones como @option{--install}, la reversión atrás ocurre antes que cualquier acción."
 
 #. type: table
-#: doc/guix.texi:2912
+#: doc/guix.texi:3244
 msgid "When rolling back from the first generation that actually contains installed packages, the profile is made to point to the @dfn{zeroth generation}, which contains no files apart from its own metadata."
-msgstr "Cuando se vuelve atrás en la primera generación que realmente contiene paquetes instalados, se hace que el perfil apunte a la @dfn{generación cero}, la cual no contiene ningún fichero a excepción de sus propios metadatos."
+msgstr "Cuando se vuelve atrás en la primera generación que realmente contiene paquetes instalados, se hace que el perfil apunte a la @dfn{generación cero}, la cual no contiene ningún archivo a excepción de sus propios metadatos."
 
 #. type: table
-#: doc/guix.texi:2916
+#: doc/guix.texi:3248
 msgid "After having rolled back, installing, removing, or upgrading packages overwrites previous future generations.  Thus, the history of the generations in a profile is always linear."
 msgstr "Después de haber vuelto atrás, instalar, borrar o actualizar paquetes sobreescribe las generaciones futuras previas. Por tanto, la historia de las generaciones en un perfil es siempre linear."
 
 #. type: item
-#: doc/guix.texi:2917 doc/guix.texi:3855
+#: doc/guix.texi:3249 doc/guix.texi:4300
 #, no-wrap
 msgid "--switch-generation=@var{pattern}"
 msgstr "--switch-generation=@var{patrón}"
 
 #. type: itemx
-#: doc/guix.texi:2918 doc/guix.texi:3856
+#: doc/guix.texi:3250 doc/guix.texi:4301
 #, no-wrap
 msgid "-S @var{pattern}"
 msgstr "-S @var{patrón}"
 
 #. type: cindex
-#: doc/guix.texi:2919 doc/guix.texi:3147 doc/guix.texi:3857
-#: doc/guix.texi:26620
+#: doc/guix.texi:3251 doc/guix.texi:3480 doc/guix.texi:4302
+#: doc/guix.texi:30747
 #, no-wrap
 msgid "generations"
 msgstr "generaciones"
 
 #. type: table
-#: doc/guix.texi:2921 doc/guix.texi:3859
+#: doc/guix.texi:3253 doc/guix.texi:4304
 msgid "Switch to a particular generation defined by @var{pattern}."
 msgstr "Cambia a una generación particular definida por el @var{patrón}."
 
 #. type: table
-#: doc/guix.texi:2927 doc/guix.texi:3865
-msgid "@var{pattern} may be either a generation number or a number prefixed with ``+'' or ``-''.  The latter means: move forward/backward by a specified number of generations.  For example, if you want to return to the latest generation after @code{--roll-back}, use @code{--switch-generation=+1}."
-msgstr "@var{patrón} puede ser tanto un número de generación como un número prefijado con ``+'' o ``-''. Esto último significa: mueve atrás/hacia delante el número especificado de generaciones. Por ejemplo, si quiere volver a la última generación antes de @code{--roll-back}, use @code{--switch-generation=+1}."
+#: doc/guix.texi:3259 doc/guix.texi:4310
+msgid "@var{pattern} may be either a generation number or a number prefixed with ``+'' or ``-''.  The latter means: move forward/backward by a specified number of generations.  For example, if you want to return to the latest generation after @option{--roll-back}, use @option{--switch-generation=+1}."
+msgstr "@var{patrón} puede ser tanto un número de generación como un número prefijado con ``+'' o ``-''. Esto último significa: mueve atrás/hacia delante el número especificado de generaciones. Por ejemplo, si quiere volver a la última generación antes de @option{--roll-back}, use @option{--switch-generation=+1}."
 
 #. type: table
-#: doc/guix.texi:2932
-msgid "The difference between @code{--roll-back} and @code{--switch-generation=-1} is that @code{--switch-generation} will not make a zeroth generation, so if a specified generation does not exist, the current generation will not be changed."
-msgstr "La diferencia entre @code{--roll-back} y @code{--switch-generation=-1} es que @code{--switch-generation} no creará una generación cero, así que si la generación especificada no existe, la generación actual no se verá cambiada."
+#: doc/guix.texi:3264
+msgid "The difference between @option{--roll-back} and @option{--switch-generation=-1} is that @option{--switch-generation} will not make a zeroth generation, so if a specified generation does not exist, the current generation will not be changed."
+msgstr "La diferencia entre @option{--roll-back} y @option{--switch-generation=-1} es que @option{--switch-generation} no creará una generación cero, así que si la generación especificada no existe, la generación actual no se verá cambiada."
 
 #. type: item
-#: doc/guix.texi:2933
+#: doc/guix.texi:3265
 #, no-wrap
 msgid "--search-paths[=@var{kind}]"
 msgstr "--search-paths[=@var{tipo}]"
 
 #. type: table
-#: doc/guix.texi:2939
+#: doc/guix.texi:3271
 msgid "Report environment variable definitions, in Bash syntax, that may be needed in order to use the set of installed packages.  These environment variables are used to specify @dfn{search paths} for files used by some of the installed packages."
-msgstr "Informa de variables de entorno, en sintaxis Bash, que pueden necesitarse para usar el conjunto de paquetes instalado. Estas variables de entorno se usan para especificar las @dfn{rutas de búsqueda} para ficheros usadas por algunos de los paquetes."
+msgstr "Informa de variables de entorno, en sintaxis Bash, que pueden necesitarse para usar el conjunto de paquetes instalado. Estas variables de entorno se usan para especificar las @dfn{rutas de búsqueda} para archivos usadas por algunos de los paquetes."
 
 #. type: table
-#: doc/guix.texi:2947
-msgid "For example, GCC needs the @code{CPATH} and @code{LIBRARY_PATH} environment variables to be defined so it can look for headers and libraries in the user's profile (@pxref{Environment Variables,,, gcc, Using the GNU Compiler Collection (GCC)}).  If GCC and, say, the C library are installed in the profile, then @code{--search-paths} will suggest setting these variables to @code{@var{profile}/include} and @code{@var{profile}/lib}, respectively."
-msgstr "Por ejemplo, GCC necesita que las variables de entorno @code{CPATH} y @code{LIBRARY_PATH} estén definidas para poder buscar cabeceras y bibliotecas en el perfil de la usuaria (@pxref{Environment Variables,,, gcc, Using the GNU Compiler Collection (GCC)}). Si GCC y, digamos, la biblioteca de C están instaladas en el perfil, entonces @code{--search-paths} sugerirá fijar dichas variables a @code{@var{perfil}/include} y @code{@var{perfil}/lib} respectivamente."
+#: doc/guix.texi:3279
+msgid "For example, GCC needs the @env{CPATH} and @env{LIBRARY_PATH} environment variables to be defined so it can look for headers and libraries in the user's profile (@pxref{Environment Variables,,, gcc, Using the GNU Compiler Collection (GCC)}).  If GCC and, say, the C library are installed in the profile, then @option{--search-paths} will suggest setting these variables to @file{@var{profile}/include} and @file{@var{profile}/lib}, respectively."
+msgstr "Por ejemplo, GCC necesita que las variables de entorno @env{CPATH} y @env{LIBRARY_PATH} estén definidas para poder buscar cabeceras y bibliotecas en el perfil de la usuaria (@pxref{Environment Variables,,, gcc, Using the GNU Compiler Collection (GCC)}). Si GCC y, digamos, la biblioteca de C están instaladas en el perfil, entonces @option{--search-paths} sugerirá fijar dichas variables a @file{@var{perfil}/include} y @file{@var{perfil}/lib} respectivamente."
 
 #. type: table
-#: doc/guix.texi:2950
+#: doc/guix.texi:3282
 msgid "The typical use case is to define these environment variables in the shell:"
-msgstr "El caso de uso típico es para definir estas variables de entorno en el shell:"
+msgstr "El caso de uso típico es para definir estas variables de entorno en el intérprete de consola:"
 
 #. type: example
-#: doc/guix.texi:2953
+#: doc/guix.texi:3285
 #, no-wrap
 msgid "$ eval `guix package --search-paths`\n"
 msgstr "$ eval `guix package --search-paths`\n"
 
 #. type: table
-#: doc/guix.texi:2959
+#: doc/guix.texi:3291
 msgid "@var{kind} may be one of @code{exact}, @code{prefix}, or @code{suffix}, meaning that the returned environment variable definitions will either be exact settings, or prefixes or suffixes of the current value of these variables.  When omitted, @var{kind} defaults to @code{exact}."
 msgstr "@var{tipo} puede ser @code{exact}, @code{prefix} o @code{suffix}, lo que significa que las definiciones de variables de entorno devueltas serán respectivamente las configuraciones exactas, prefijos o sufijos del valor actual de dichas variables. Cuando se omite, el valor predeterminado de @var{tipo} es @code{exact}."
 
 #. type: table
-#: doc/guix.texi:2962
+#: doc/guix.texi:3294
 msgid "This option can also be used to compute the @emph{combined} search paths of several profiles.  Consider this example:"
 msgstr "Esta opción puede usarse para calcular las rutas de búsqueda @emph{combinadas} de varios perfiles. Considere este ejemplo:"
 
 #. type: example
-#: doc/guix.texi:2967
+#: doc/guix.texi:3299
 #, no-wrap
 msgid ""
 "$ guix package -p foo -i guile\n"
@@ -7597,34 +8488,34 @@ msgstr ""
 "$ guix package -p foo -p bar --search-paths\n"
 
 #. type: table
-#: doc/guix.texi:2972
-msgid "The last command above reports about the @code{GUILE_LOAD_PATH} variable, even though, taken individually, neither @file{foo} nor @file{bar} would lead to that recommendation."
-msgstr "La última orden informa sobre la variable @code{GUILE_LOAD_PATH}, aunque, tomada individualmente, ni @file{foo} ni @file{bar} hubieran llevado a esa recomendación."
+#: doc/guix.texi:3304
+msgid "The last command above reports about the @env{GUILE_LOAD_PATH} variable, even though, taken individually, neither @file{foo} nor @file{bar} would lead to that recommendation."
+msgstr "La última orden informa sobre la variable @env{GUILE_LOAD_PATH}, aunque, tomada individualmente, ni @file{foo} ni @file{bar} hubieran llevado a esa recomendación."
 
 #. type: item
-#: doc/guix.texi:2974 doc/guix.texi:3885 doc/guix.texi:4465
+#: doc/guix.texi:3306 doc/guix.texi:4330 doc/guix.texi:4659
 #, no-wrap
 msgid "--profile=@var{profile}"
 msgstr "--profile=@var{perfil}"
 
 #. type: itemx
-#: doc/guix.texi:2975 doc/guix.texi:3886 doc/guix.texi:4466
+#: doc/guix.texi:3307 doc/guix.texi:4331 doc/guix.texi:4660
 #, no-wrap
 msgid "-p @var{profile}"
 msgstr "-p @var{perfil}"
 
 #. type: table
-#: doc/guix.texi:2977
+#: doc/guix.texi:3309
 msgid "Use @var{profile} instead of the user's default profile."
 msgstr "Usa @var{perfil} en vez del perfil predeterminado de la usuaria."
 
 #. type: table
-#: doc/guix.texi:2982
+#: doc/guix.texi:3314
 msgid "@var{profile} must be the name of a file that will be created upon completion.  Concretely, @var{profile} will be a mere symbolic link (``symlink'') pointing to the actual profile where packages are installed:"
-msgstr "@var{perfil} debe ser el nombre de un fichero que se creará tras completar las tareas. Concretamente, @var{perfil} sera simplemente un enlace simbólico (``symlink'') que apunta al verdadero perfil en el que se instalan los paquetes:"
+msgstr "@var{perfil} debe ser el nombre de un archivo que se creará tras completar las tareas. Concretamente, @var{perfil} sera simplemente un enlace simbólico (``symlink'') que apunta al verdadero perfil en el que se instalan los paquetes:"
 
 #. type: example
-#: doc/guix.texi:2988
+#: doc/guix.texi:3320
 #, no-wrap
 msgid ""
 "$ guix install hello -p ~/code/my-profile\n"
@@ -7638,29 +8529,29 @@ msgstr ""
 "¡Hola mundo!\n"
 
 #. type: table
-#: doc/guix.texi:2992
+#: doc/guix.texi:3324
 msgid "All it takes to get rid of the profile is to remove this symlink and its siblings that point to specific generations:"
 msgstr "Todo lo necesario para deshacerse del perfil es borrar dicho enlace simbólico y sus enlaces relacionados que apuntan a generaciones específicas:"
 
 #. type: example
-#: doc/guix.texi:2995
+#: doc/guix.texi:3327
 #, no-wrap
 msgid "$ rm ~/code/my-profile ~/code/my-profile-*-link\n"
 msgstr "$ rm ~/código/mi-perfil ~/código/mi-perfil-*-link\n"
 
 #. type: item
-#: doc/guix.texi:2997
+#: doc/guix.texi:3329
 #, no-wrap
 msgid "--list-profiles"
 msgstr "--list-profiles"
 
 #. type: table
-#: doc/guix.texi:2999
+#: doc/guix.texi:3331
 msgid "List all the user's profiles:"
 msgstr "Enumera los perfiles de la usuaria:"
 
 #. type: example
-#: doc/guix.texi:3006
+#: doc/guix.texi:3338
 #, no-wrap
 msgid ""
 "$ guix package --list-profiles\n"
@@ -7676,90 +8567,95 @@ msgstr ""
 "/home/carlos/tmp/prueba\n"
 
 #. type: table
-#: doc/guix.texi:3009
+#: doc/guix.texi:3341
 msgid "When running as root, list all the profiles of all the users."
 msgstr "Cuando se ejecuta como root, enumera todos los perfiles de todas las usuarias."
 
 #. type: cindex
-#: doc/guix.texi:3010
+#: doc/guix.texi:3342
 #, no-wrap
 msgid "collisions, in a profile"
 msgstr "colisiones, en un perfil"
 
 #. type: cindex
-#: doc/guix.texi:3011
+#: doc/guix.texi:3343
 #, no-wrap
 msgid "colliding packages in profiles"
 msgstr "paquetes con colisiones en perfiles"
 
 #. type: cindex
-#: doc/guix.texi:3012
+#: doc/guix.texi:3344
 #, no-wrap
 msgid "profile collisions"
 msgstr "colisiones del perfil"
 
 #. type: item
-#: doc/guix.texi:3013
+#: doc/guix.texi:3345
 #, no-wrap
 msgid "--allow-collisions"
 msgstr "--allow-collisions"
 
 #. type: table
-#: doc/guix.texi:3015
+#: doc/guix.texi:3347
 msgid "Allow colliding packages in the new profile.  Use at your own risk!"
 msgstr "Permite colisiones de paquetes en el nuevo perfil. ¡Úselo bajo su propio riesgo!"
 
 #. type: table
-#: doc/guix.texi:3019
+#: doc/guix.texi:3351
 msgid "By default, @command{guix package} reports as an error @dfn{collisions} in the profile.  Collisions happen when two or more different versions or variants of a given package end up in the profile."
 msgstr "Por defecto, @command{guix package} informa como un error las @dfn{colisiones} en el perfil. Las colisiones ocurren cuando dos o más versiones diferentes o variantes de un paquete dado se han seleccionado para el perfil."
 
 #. type: item
-#: doc/guix.texi:3020 doc/guix.texi:3902 doc/guix.texi:5319
+#: doc/guix.texi:3352 doc/guix.texi:4373 doc/guix.texi:6079
 #, no-wrap
 msgid "--bootstrap"
 msgstr "--bootstrap"
 
 #. type: table
-#: doc/guix.texi:3023
+#: doc/guix.texi:3355
 msgid "Use the bootstrap Guile to build the profile.  This option is only useful to distribution developers."
 msgstr "Use el Guile usado para el lanzamiento para construir el perfil. Esta opción es util únicamente a las desarrolladoras de la distribución."
 
 #. type: Plain text
-#: doc/guix.texi:3029
+#: doc/guix.texi:3361
 msgid "In addition to these actions, @command{guix package} supports the following options to query the current state of a profile, or the availability of packages:"
 msgstr "Además de estas acciones, @command{guix package} acepta las siguientes opciones para consultar el estado actual de un perfil, o la disponibilidad de paquetes:"
 
 #. type: item
-#: doc/guix.texi:3032
+#: doc/guix.texi:3364
 #, no-wrap
 msgid "--search=@var{regexp}"
 msgstr "--search=@var{regexp}"
 
 #. type: itemx
-#: doc/guix.texi:3033
+#: doc/guix.texi:3365
 #, no-wrap
 msgid "-s @var{regexp}"
 msgstr "-s @var{regexp}"
 
+#. type: anchor{#1}
+#: doc/guix.texi:3367
+msgid "guix-search"
+msgstr "guix-search"
+
 #. type: cindex
-#: doc/guix.texi:3034
+#: doc/guix.texi:3367
 #, no-wrap
 msgid "searching for packages"
 msgstr "buscar paquetes"
 
 #. type: table
-#: doc/guix.texi:3040
+#: doc/guix.texi:3373
 msgid "List the available packages whose name, synopsis, or description matches @var{regexp} (in a case-insensitive fashion), sorted by relevance.  Print all the metadata of matching packages in @code{recutils} format (@pxref{Top, GNU recutils databases,, recutils, GNU recutils manual})."
 msgstr "Enumera los paquetes disponibles cuyo nombre, sinopsis o descripción corresponde con @var{regexp} (sin tener en cuenta la capitalización), ordenados por relevancia. Imprime todos los metadatos de los paquetes coincidentes en formato @code{recutils} (@pxref{Top, GNU recutils databases,, recutils, GNU recutils manual})."
 
 #. type: table
-#: doc/guix.texi:3043
+#: doc/guix.texi:3376
 msgid "This allows specific fields to be extracted using the @command{recsel} command, for instance:"
 msgstr "Esto permite extraer campos específicos usando la orden @command{recsel}, por ejemplo:"
 
 #. type: example
-#: doc/guix.texi:3049
+#: doc/guix.texi:3382
 #, no-wrap
 msgid ""
 "$ guix package -s malloc | recsel -p name,version,relevance\n"
@@ -7775,7 +8671,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:3053
+#: doc/guix.texi:3386
 #, no-wrap
 msgid ""
 "name: glibc\n"
@@ -7789,7 +8685,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:3057
+#: doc/guix.texi:3390
 #, no-wrap
 msgid ""
 "name: libgc\n"
@@ -7801,12 +8697,12 @@ msgstr ""
 "relevance: 1\n"
 
 #. type: table
-#: doc/guix.texi:3061
+#: doc/guix.texi:3394
 msgid "Similarly, to show the name of all the packages available under the terms of the GNU@tie{}LGPL version 3:"
 msgstr "De manera similar, para mostrar el nombre de todos los paquetes disponibles bajo los términos de la GNU@tie{}LGPL versión 3:"
 
 #. type: example
-#: doc/guix.texi:3065
+#: doc/guix.texi:3398
 #, no-wrap
 msgid ""
 "$ guix package -s \"\" | recsel -p name -e 'license ~ \"LGPL 3\"'\n"
@@ -7818,7 +8714,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:3068
+#: doc/guix.texi:3401
 #, no-wrap
 msgid ""
 "name: gmp\n"
@@ -7829,13 +8725,13 @@ msgstr ""
 
 # TODO: Revisar cuando guix-packages se traduzca...
 #. type: table
-#: doc/guix.texi:3074
+#: doc/guix.texi:3407
 msgid "It is also possible to refine search results using several @code{-s} flags to @command{guix package}, or several arguments to @command{guix search}.  For example, the following command returns a list of board games (this time using the @command{guix search} alias):"
 msgstr "También es posible refinar los resultados de búsqueda mediante el uso de varias opciones @code{-s}, o varios parámetros a @command{guix search}. Por ejemplo, la siguiente orden devuelve un lista de juegos de mesa@footnote{NdT: board en inglés.} (esta vez mediante el uso del alias @command{guix search}:"
 
 # TODO: Revisar cuando guix-packages se traduzca...
 #. type: example
-#: doc/guix.texi:3079
+#: doc/guix.texi:3412
 #, no-wrap
 msgid ""
 "$ guix search '\\<board\\>' game | recsel -p name\n"
@@ -7848,17 +8744,17 @@ msgstr ""
 
 # TODO: Revisar cuando guix-packages se traduzca...
 #. type: table
-#: doc/guix.texi:3085
+#: doc/guix.texi:3418
 msgid "If we were to omit @code{-s game}, we would also get software packages that deal with printed circuit boards; removing the angle brackets around @code{board} would further add packages that have to do with keyboards."
 msgstr "Si omitimos @code{-s game}, también obtendríamos paquetes de software que tengan que ver con placas de circuitos impresos (\"circuit board\" en inglés); borrar los signos mayor y menor alrededor de @code{board} añadiría paquetes que tienen que ver con teclados (keyboard en inglés)."
 
 #. type: table
-#: doc/guix.texi:3089
+#: doc/guix.texi:3422
 msgid "And now for a more elaborate example.  The following command searches for cryptographic libraries, filters out Haskell, Perl, Python, and Ruby libraries, and prints the name and synopsis of the matching packages:"
 msgstr "Y ahora para un ejemplo más elaborado. La siguiente orden busca bibliotecas criptográficas, descarta bibliotecas Haskell, Perl, Python y Ruby, e imprime el nombre y la sinopsis de los paquetes resultantes:"
 
 #. type: example
-#: doc/guix.texi:3093
+#: doc/guix.texi:3426
 #, no-wrap
 msgid ""
 "$ guix search crypto library | \\\n"
@@ -7868,23 +8764,23 @@ msgstr ""
 "    recsel -e '! (name ~ \"^(ghc|perl|python|ruby)\")' -p name,synopsis\n"
 
 #. type: table
-#: doc/guix.texi:3098
+#: doc/guix.texi:3431
 msgid "@xref{Selection Expressions,,, recutils, GNU recutils manual}, for more information on @dfn{selection expressions} for @code{recsel -e}."
 msgstr "@xref{Selection Expressions,,, recutils, GNU recutils manual}, para más información en @dfn{expresiones de selección} para @code{recsel -e}."
 
 #. type: item
-#: doc/guix.texi:3099
+#: doc/guix.texi:3432
 #, no-wrap
 msgid "--show=@var{package}"
 msgstr "--show=@var{paquete}"
 
 #. type: table
-#: doc/guix.texi:3103
+#: doc/guix.texi:3436
 msgid "Show details about @var{package}, taken from the list of available packages, in @code{recutils} format (@pxref{Top, GNU recutils databases,, recutils, GNU recutils manual})."
 msgstr "Muestra los detalles del @var{paquete}, tomado de la lista disponible de paquetes, en formato @code{recutils} (@pxref{Top, GNU recutils databases,, recutils, GNU recutils manual})."
 
 #. type: example
-#: doc/guix.texi:3108
+#: doc/guix.texi:3441
 #, no-wrap
 msgid ""
 "$ guix package --show=python | recsel -p name,version\n"
@@ -7898,7 +8794,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:3111
+#: doc/guix.texi:3444
 #, no-wrap
 msgid ""
 "name: python\n"
@@ -7908,12 +8804,12 @@ msgstr ""
 "version: 3.3.5\n"
 
 #. type: table
-#: doc/guix.texi:3115
+#: doc/guix.texi:3448
 msgid "You may also specify the full name of a package to only get details about a specific version of it (this time using the @command{guix show} alias):"
 msgstr "También puede especificar el nombre completo de un paquete para únicamente obtener detalles sobre una versión específica (esta vez usando el alias @command{guix show}):"
 
 #. type: example
-#: doc/guix.texi:3119
+#: doc/guix.texi:3452
 #, no-wrap
 msgid ""
 "$ guix show python@@3.4 | recsel -p name,version\n"
@@ -7925,175 +8821,175 @@ msgstr ""
 "version: 3.4.3\n"
 
 #. type: item
-#: doc/guix.texi:3123
+#: doc/guix.texi:3456
 #, no-wrap
 msgid "--list-installed[=@var{regexp}]"
 msgstr "--list-installed[=@var{regexp}]"
 
 #. type: itemx
-#: doc/guix.texi:3124
+#: doc/guix.texi:3457
 #, no-wrap
 msgid "-I [@var{regexp}]"
 msgstr "-I [@var{regexp}]"
 
 #. type: table
-#: doc/guix.texi:3128
+#: doc/guix.texi:3461
 msgid "List the currently installed packages in the specified profile, with the most recently installed packages shown last.  When @var{regexp} is specified, list only installed packages whose name matches @var{regexp}."
 msgstr "Enumera los paquetes actualmente instalados en el perfil especificado, con los últimos paquetes instalados mostrados al final. Cuando se especifica @var{regexp}, enumera únicamente los paquetes instalados cuyos nombres son aceptados por @var{regexp}."
 
 #. type: table
-#: doc/guix.texi:3134
+#: doc/guix.texi:3467
 msgid "For each installed package, print the following items, separated by tabs: the package name, its version string, the part of the package that is installed (for instance, @code{out} for the default output, @code{include} for its headers, etc.), and the path of this package in the store."
 msgstr "Por cada paquete instalado, imprime los siguientes elementos, separados por tabuladores: el nombre del paquete, la cadena de versión, la parte del paquete que está instalada (por ejemplo, @code{out} para la salida predeterminada, @code{include} para sus cabeceras, etc.), y la ruta de este paquete en el almacén."
 
 #. type: item
-#: doc/guix.texi:3135
+#: doc/guix.texi:3468
 #, no-wrap
 msgid "--list-available[=@var{regexp}]"
 msgstr "--list-available[=@var{regexp}]"
 
 #. type: itemx
-#: doc/guix.texi:3136
+#: doc/guix.texi:3469
 #, no-wrap
 msgid "-A [@var{regexp}]"
 msgstr "-A [@var{regexp}]"
 
 #. type: table
-#: doc/guix.texi:3140
+#: doc/guix.texi:3473
 msgid "List packages currently available in the distribution for this system (@pxref{GNU Distribution}).  When @var{regexp} is specified, list only available packages whose name matches @var{regexp}."
 msgstr "Enumera los paquetes disponibles actualmente en la distribución para este sistema (@pxref{GNU Distribution}). Cuando se especifica @var{regexp}, enumera únicamente paquetes disponibles cuyo nombre coincide con @var{regexp}."
 
 #. type: table
-#: doc/guix.texi:3144
+#: doc/guix.texi:3477
 msgid "For each package, print the following items separated by tabs: its name, its version string, the parts of the package (@pxref{Packages with Multiple Outputs}), and the source location of its definition."
 msgstr "Por cada paquete, imprime los siguientes elementos separados por tabuladores: su nombre, su cadena de versión, las partes del paquete (@pxref{Packages with Multiple Outputs}) y la dirección de las fuentes de su definición."
 
 #. type: item
-#: doc/guix.texi:3145 doc/guix.texi:3841
+#: doc/guix.texi:3478 doc/guix.texi:4286
 #, no-wrap
 msgid "--list-generations[=@var{pattern}]"
 msgstr "--list-generations[=@var{patrón}]"
 
 #. type: itemx
-#: doc/guix.texi:3146 doc/guix.texi:3842
+#: doc/guix.texi:3479 doc/guix.texi:4287
 #, no-wrap
 msgid "-l [@var{pattern}]"
 msgstr "-l [@var{patrón}]"
 
 #. type: table
-#: doc/guix.texi:3152
+#: doc/guix.texi:3485
 msgid "Return a list of generations along with their creation dates; for each generation, show the installed packages, with the most recently installed packages shown last.  Note that the zeroth generation is never shown."
 msgstr "Devuelve una lista de generaciones junto a sus fechas de creación; para cada generación, muestra los paquetes instalados, con los paquetes instalados más recientemente mostrados los últimos. Fíjese que la generación cero nunca se muestra."
 
 #. type: table
-#: doc/guix.texi:3157
+#: doc/guix.texi:3490
 msgid "For each installed package, print the following items, separated by tabs: the name of a package, its version string, the part of the package that is installed (@pxref{Packages with Multiple Outputs}), and the location of this package in the store."
 msgstr "Por cada paquete instalado, imprime los siguientes elementos, separados por tabuladores: el nombre de un paquete, su cadena de versión, la parte del paquete que está instalada (@pxref{Packages with Multiple Outputs}), y la ruta de este paquete en el almacén."
 
 #. type: table
-#: doc/guix.texi:3160
+#: doc/guix.texi:3493
 msgid "When @var{pattern} is used, the command returns only matching generations.  Valid patterns include:"
 msgstr "Cuando se usa @var{patrón}, la orden devuelve únicamente las generaciones que se ajustan al patrón. Entre los patrones adecuados se encuentran:"
 
 #. type: item
-#: doc/guix.texi:3162
+#: doc/guix.texi:3495
 #, no-wrap
 msgid "@emph{Integers and comma-separated integers}.  Both patterns denote"
 msgstr "@emph{Enteros y enteros separados por comas}. Ambos patrones denotan"
 
 #. type: itemize
-#: doc/guix.texi:3165
-msgid "generation numbers.  For instance, @code{--list-generations=1} returns the first one."
-msgstr "números de generación. Por ejemplo, @code{--list-generations=1} devuelve la primera."
+#: doc/guix.texi:3498
+msgid "generation numbers.  For instance, @option{--list-generations=1} returns the first one."
+msgstr "números de generación. Por ejemplo, @option{--list-generations=1} devuelve la primera."
 
 #. type: itemize
-#: doc/guix.texi:3168
-msgid "And @code{--list-generations=1,8,2} outputs three generations in the specified order.  Neither spaces nor trailing commas are allowed."
-msgstr "Y @code{--list-generations=1,8,2} devuelve las tres generaciones en el orden especificado. No se permiten ni espacios ni una coma al final."
+#: doc/guix.texi:3501
+msgid "And @option{--list-generations=1,8,2} outputs three generations in the specified order.  Neither spaces nor trailing commas are allowed."
+msgstr "Y @option{--list-generations=1,8,2} devuelve las tres generaciones en el orden especificado. No se permiten ni espacios ni una coma al final."
 
 #. type: item
-#: doc/guix.texi:3169
+#: doc/guix.texi:3502
 #, no-wrap
-msgid "@emph{Ranges}.  @code{--list-generations=2..9} prints the"
-msgstr "@emph{Rangos}.  @code{--list-generations=2..9} imprime"
+msgid "@emph{Ranges}.  @option{--list-generations=2..9} prints the"
+msgstr "@emph{Rangos}.  @option{--list-generations=2..9} imprime"
 
 #. type: itemize
-#: doc/guix.texi:3172
+#: doc/guix.texi:3505
 msgid "specified generations and everything in between.  Note that the start of a range must be smaller than its end."
 msgstr "las generaciones especificadas y todas las intermedias. Fíjese que el inicio de un rango debe ser menor a su fin."
 
 #. type: itemize
-#: doc/guix.texi:3176
-msgid "It is also possible to omit the endpoint.  For example, @code{--list-generations=2..}, returns all generations starting from the second one."
-msgstr "También es posible omitir el destino final. Por ejemplo, @code{--list-generations=2..} devuelve todas las generaciones empezando por la segunda."
+#: doc/guix.texi:3509
+msgid "It is also possible to omit the endpoint.  For example, @option{--list-generations=2..}, returns all generations starting from the second one."
+msgstr "También es posible omitir el destino final. Por ejemplo, @option{--list-generations=2..} devuelve todas las generaciones empezando por la segunda."
 
 #. type: item
-#: doc/guix.texi:3177
+#: doc/guix.texi:3510
 #, no-wrap
 msgid "@emph{Durations}.  You can also get the last @emph{N}@tie{}days, weeks,"
 msgstr "@emph{Duraciones}. Puede también obtener los últimos @emph{N}@tie{}días, semanas,"
 
 #. type: itemize
-#: doc/guix.texi:3181
-msgid "or months by passing an integer along with the first letter of the duration.  For example, @code{--list-generations=20d} lists generations that are up to 20 days old."
-msgstr "o meses pasando un entero junto a la primera letra de la duración. Por ejemplo, @code{--list-generations=20d} enumera las generaciones que tienen hasta 20 días de antigüedad."
+#: doc/guix.texi:3514
+msgid "or months by passing an integer along with the first letter of the duration.  For example, @option{--list-generations=20d} lists generations that are up to 20 days old."
+msgstr "o meses pasando un entero junto a la primera letra de la duración. Por ejemplo, @option{--list-generations=20d} enumera las generaciones que tienen hasta 20 días de antigüedad."
 
 #. type: item
-#: doc/guix.texi:3183 doc/guix.texi:3866
+#: doc/guix.texi:3516 doc/guix.texi:4311
 #, no-wrap
 msgid "--delete-generations[=@var{pattern}]"
 msgstr "--delete-generations[=@var{patrón}]"
 
 #. type: itemx
-#: doc/guix.texi:3184 doc/guix.texi:3867
+#: doc/guix.texi:3517 doc/guix.texi:4312
 #, no-wrap
 msgid "-d [@var{pattern}]"
 msgstr "-d [@var{patrón}]"
 
 #. type: table
-#: doc/guix.texi:3187 doc/guix.texi:3870
+#: doc/guix.texi:3520 doc/guix.texi:4315
 msgid "When @var{pattern} is omitted, delete all generations except the current one."
 msgstr "Cuando se omite @var{patrón}, borra todas las generaciones excepto la actual."
 
 # XXX (MAAV): Revisar reescritura.
 #. type: table
-#: doc/guix.texi:3193 doc/guix.texi:3876
-msgid "This command accepts the same patterns as @option{--list-generations}.  When @var{pattern} is specified, delete the matching generations.  When @var{pattern} specifies a duration, generations @emph{older} than the specified duration match.  For instance, @code{--delete-generations=1m} deletes generations that are more than one month old."
-msgstr "Esta orden acepta los mismos patrones que @option{--list-generations}. Cuando se especifica un @var{patrón}, borra las generaciones coincidentes. Cuando el @var{patrón} especifica una duración, las generaciones @emph{más antiguas} que la duración especificada son las borradas. Por ejemplo, @code{--delete-generations=1m} borra las generaciones de más de un mes de antigüedad."
+#: doc/guix.texi:3526 doc/guix.texi:4321
+msgid "This command accepts the same patterns as @option{--list-generations}.  When @var{pattern} is specified, delete the matching generations.  When @var{pattern} specifies a duration, generations @emph{older} than the specified duration match.  For instance, @option{--delete-generations=1m} deletes generations that are more than one month old."
+msgstr "Esta orden acepta los mismos patrones que @option{--list-generations}. Cuando se especifica un @var{patrón}, borra las generaciones coincidentes. Cuando el @var{patrón} especifica una duración, las generaciones @emph{más antiguas} que la duración especificada son las borradas. Por ejemplo, @option{--delete-generations=1m} borra las generaciones de más de un mes de antigüedad."
 
 #. type: table
-#: doc/guix.texi:3196
+#: doc/guix.texi:3529
 msgid "If the current generation matches, it is @emph{not} deleted.  Also, the zeroth generation is never deleted."
 msgstr "Si la generación actual entra en el patrón, @emph{no} es borrada. Tampoco la generación cero es borrada nunca."
 
 #. type: table
-#: doc/guix.texi:3199 doc/guix.texi:3881
+#: doc/guix.texi:3532 doc/guix.texi:4326
 msgid "Note that deleting generations prevents rolling back to them.  Consequently, this command must be used with care."
-msgstr "Fíjese que borrar generaciones previene volver atrás a ellas. Consecuentemente esta orden debe ser usada con cuidado."
+msgstr "Preste atención a que el borrado de generaciones previas impide la reversión a su estado. Consecuentemente esta orden debe ser usada con cuidado."
 
 #. type: Plain text
-#: doc/guix.texi:3210
-msgid "Finally, since @command{guix package} may actually start build processes, it supports all the common build options (@pxref{Common Build Options}).  It also supports package transformation options, such as @option{--with-source} (@pxref{Package Transformation Options}).  However, note that package transformations are lost when upgrading; to preserve transformations across upgrades, you should define your own package variant in a Guile module and add it to @code{GUIX_PACKAGE_PATH} (@pxref{Defining Packages})."
-msgstr "Finalmente, ya que @command{guix package} puede lanzar procesos de construcción en realidad, acepta todas las opciones comunes de construcción (@pxref{Common Build Options}). También acepta opciones de transformación de paquetes, como @option{--with-source} (@pxref{Package Transformation Options}). No obstante, fíjese que las transformaciones del paquete se pierden al actualizar; para preservar las transformaciones entre actualizaciones, debe definir su propia variante del paquete en un módulo Guile y añadirlo a @code{GUIX_PACKAGE_PATH} (@pxref{Defining Packages})."
+#: doc/guix.texi:3543
+msgid "Finally, since @command{guix package} may actually start build processes, it supports all the common build options (@pxref{Common Build Options}).  It also supports package transformation options, such as @option{--with-source} (@pxref{Package Transformation Options}).  However, note that package transformations are lost when upgrading; to preserve transformations across upgrades, you should define your own package variant in a Guile module and add it to @env{GUIX_PACKAGE_PATH} (@pxref{Defining Packages})."
+msgstr "Finalmente, ya que @command{guix package} puede lanzar procesos de construcción en realidad, acepta todas las opciones comunes de construcción (@pxref{Common Build Options}). También acepta opciones de transformación de paquetes, como @option{--with-source} (@pxref{Package Transformation Options}). No obstante, fíjese que las transformaciones del paquete se pierden al actualizar; para preservar las transformaciones entre actualizaciones, debe definir su propia variante del paquete en un módulo Guile y añadirlo a @env{GUIX_PACKAGE_PATH} (@pxref{Defining Packages})."
 
 #. type: cindex
-#: doc/guix.texi:3215
+#: doc/guix.texi:3548
 #, no-wrap
 msgid "pre-built binaries"
 msgstr "binarios pre-construidos"
 
 #. type: Plain text
-#: doc/guix.texi:3221
+#: doc/guix.texi:3554
 msgid "Guix supports transparent source/binary deployment, which means that it can either build things locally, or download pre-built items from a server, or both.  We call these pre-built items @dfn{substitutes}---they are substitutes for local build results.  In many cases, downloading a substitute is much faster than building things locally."
 msgstr "Guix permite despliegues transparentes de fuentes/binarios, lo que significa que puede tanto construir cosas localmente, como descargar elementos preconstruidos de un servidor, o ambas. Llamamos a esos elementos preconstruidos @dfn{sustituciones}---son sustituciones de los resultados de construcciones locales. En muchos casos, descargar una sustitución es mucho más rápido que construirla localmente."
 
 #. type: Plain text
-#: doc/guix.texi:3226
+#: doc/guix.texi:3559
 msgid "Substitutes can be anything resulting from a derivation build (@pxref{Derivations}).  Of course, in the common case, they are pre-built package binaries, but source tarballs, for instance, which also result from derivation builds, can be available as substitutes."
 msgstr "Las sustituciones pueden ser cualquier cosa que resulte de una construcción de una derivación (@pxref{Derivations}). Por supuesto, en el caso común, son paquetes binarios preconstruidos, pero los archivos de fuentes, por ejemplo, que también resultan de construcciones de derivaciones, pueden estar disponibles como sustituciones."
 
 #. type: cindex
-#: doc/guix.texi:3239
+#: doc/guix.texi:3573
 #, no-wrap
 msgid "build farm"
 msgstr "granja de construcción"
@@ -8101,61 +8997,66 @@ msgstr "granja de construcción"
 # FUZZY: overridden
 # TODO: cliente
 #. type: Plain text
-#: doc/guix.texi:3249
+#: doc/guix.texi:3583
 msgid "The @code{@value{SUBSTITUTE-SERVER}} server is a front-end to an official build farm that builds packages from Guix continuously for some architectures, and makes them available as substitutes.  This is the default source of substitutes; it can be overridden by passing the @option{--substitute-urls} option either to @command{guix-daemon} (@pxref{daemon-substitute-urls,, @code{guix-daemon --substitute-urls}})  or to client tools such as @command{guix package} (@pxref{client-substitute-urls,, client @option{--substitute-urls} option})."
 msgstr "El servidor @code{@value{SUBSTITUTE-SERVER}} es una fachada a una granja de construcción oficial que construye paquetes de Guix continuamente para algunas arquitecturas, y los pone disponibles como sustituciones. Esta es la fuente predeterminada de sustituciones; puede ser forzada a cambiar pasando la opción @option{--substitute-urls} bien a @command{guix-daemon} (@pxref{daemon-substitute-urls,, @code{guix-daemon --substitute-urls}}) o bien a herramientas cliente como @command{guix package} (@pxref{client-substitute-urls,, client @option{--substitute-urls} option})."
 
 #. type: Plain text
-#: doc/guix.texi:3255
+#: doc/guix.texi:3589
 msgid "Substitute URLs can be either HTTP or HTTPS.  HTTPS is recommended because communications are encrypted; conversely, using HTTP makes all communications visible to an eavesdropper, who could use the information gathered to determine, for instance, whether your system has unpatched security vulnerabilities."
 msgstr "Las URLs de sustituciones pueden ser tanto HTTP como HTTPS. Se recomienda HTTPS porque las comunicaciones están cifradas; de modo contrario, usar HTTP hace visibles todas las comunicaciones para alguien que las intercepte, quien puede usar la información obtenida para determinar, por ejemplo, si su sistema tiene vulnerabilidades de seguridad sin parchear."
 
 #. type: Plain text
-#: doc/guix.texi:3264
+#: doc/guix.texi:3598
 msgid "Substitutes from the official build farm are enabled by default when using Guix System (@pxref{GNU Distribution}).  However, they are disabled by default when using Guix on a foreign distribution, unless you have explicitly enabled them via one of the recommended installation steps (@pxref{Installation}).  The following paragraphs describe how to enable or disable substitutes for the official build farm; the same procedure can also be used to enable substitutes for any other substitute server."
 msgstr "El uso de sustituciones de la granja de construcción oficial se realiza de manera predeterminada cuando se usa el sistema Guix (@pxref{GNU Distribution}). No obstante, no se realiza de manera predeterminada cuando se usa Guix en una distribución anfitriona, a menos que las active explícitamente via uno de los pasos recomendados de instalación (@pxref{Installation}). Los siguientes párrafos describen como activar o desactivar las sustituciones para la granja oficial de construcción; el mismo procedimiento puede usarse para activar las sustituciones desde cualquier otro servidor que las proporcione."
 
 #. type: cindex
-#: doc/guix.texi:3268
+#: doc/guix.texi:3602
 #, no-wrap
 msgid "security"
 msgstr "seguridad"
 
 #. type: cindex
-#: doc/guix.texi:3270
+#: doc/guix.texi:3604
 #, no-wrap
 msgid "access control list (ACL), for substitutes"
 msgstr "listas de control de acceso (ACL), para sustituciones"
 
 #. type: cindex
-#: doc/guix.texi:3271
+#: doc/guix.texi:3605
 #, no-wrap
 msgid "ACL (access control list), for substitutes"
 msgstr "ACL (listas de control de acceso), para sustituciones"
 
 #. type: Plain text
-#: doc/guix.texi:3278
+#: doc/guix.texi:3612
 msgid "To allow Guix to download substitutes from @code{@value{SUBSTITUTE-SERVER}} or a mirror thereof, you must add its public key to the access control list (ACL) of archive imports, using the @command{guix archive} command (@pxref{Invoking guix archive}).  Doing so implies that you trust @code{@value{SUBSTITUTE-SERVER}} to not be compromised and to serve genuine substitutes."
 msgstr "Para permitir a Guix descargar sustituciones de @code{@value{SUBSTITUTE-SERVER}} o un espejo suyo, debe añadir su clave pública a la lista de control de acceso (ACL) de las importaciones de archivos, mediante el uso de la orden @command{guix archive} (@pxref{Invoking guix archive}). Hacerlo implica que confía que @code{@value{SUBSTITUTE-SERVER}} no ha sido comprometido y proporciona sustituciones genuinas."
 
+#. type: quotation
+#: doc/guix.texi:3616
+msgid "If you are using Guix System, you can skip this section: Guix System authorizes substitutes from @code{@value{SUBSTITUTE-SERVER}} by default."
+msgstr "Si usa el sistema Guix puede saltarse esta sección: el sistema Guix autoriza las sustituciones desde @code{@value{SUBSTITUTE-SERVER}} de manera predeterminada."
+
 #. type: Plain text
-#: doc/guix.texi:3285
+#: doc/guix.texi:3624
 msgid "The public key for @code{@value{SUBSTITUTE-SERVER}} is installed along with Guix, in @code{@var{prefix}/share/guix/@value{SUBSTITUTE-SERVER}.pub}, where @var{prefix} is the installation prefix of Guix.  If you installed Guix from source, make sure you checked the GPG signature of @file{guix-@value{VERSION}.tar.gz}, which contains this public key file.  Then, you can run something like this:"
-msgstr "La clave pública para @code{@value{SUBSTITUTE-SERVER}} se instala junto a Guix, en @code{@var{prefijo}/share/guix/@value{SUBSTITUTE-SERVER}.pub}, donde @var{prefijo} es el prefij de instalación de Guix. Si ha instalado Guix desde las fuentes, debe asegurarse de que comprobó la firma GPG de @file{guix-@value{VERSION}.tar.gz}, el cual contiene el fichero de clave pública. Una vez hecho, puede ejecutar algo así:"
+msgstr "La clave pública para @code{@value{SUBSTITUTE-SERVER}} se instala junto a Guix, en @code{@var{prefijo}/share/guix/@value{SUBSTITUTE-SERVER}.pub}, donde @var{prefijo} es el prefij de instalación de Guix. Si ha instalado Guix desde las fuentes, debe asegurarse de que comprobó la firma GPG de @file{guix-@value{VERSION}.tar.gz}, el cual contiene el archivo de clave pública. Una vez hecho, puede ejecutar algo así:"
 
 #. type: example
-#: doc/guix.texi:3288
+#: doc/guix.texi:3627
 #, no-wrap
 msgid "# guix archive --authorize < @var{prefix}/share/guix/@value{SUBSTITUTE-SERVER}.pub\n"
 msgstr "# guix archive --authorize < @var{prefijo}/share/guix/@value{SUBSTITUTE-SERVER}.pub\n"
 
 #. type: Plain text
-#: doc/guix.texi:3292
+#: doc/guix.texi:3631
 msgid "Once this is in place, the output of a command like @code{guix build} should change from something like:"
 msgstr "Una vez esté autorizada, la salida de una orden como @code{guix build} debería cambiar de algo como:"
 
 #. type: example
-#: doc/guix.texi:3301
+#: doc/guix.texi:3640
 #, no-wrap
 msgid ""
 "$ guix build emacs --dry-run\n"
@@ -8175,12 +9076,12 @@ msgstr ""
 "@dots{}\n"
 
 #. type: Plain text
-#: doc/guix.texi:3305
+#: doc/guix.texi:3644
 msgid "to something like:"
 msgstr "a algo así:"
 
 #. type: example
-#: doc/guix.texi:3314
+#: doc/guix.texi:3653
 #, no-wrap
 msgid ""
 "$ guix build emacs --dry-run\n"
@@ -8200,141 +9101,280 @@ msgstr ""
 "@dots{}\n"
 
 #. type: Plain text
-#: doc/guix.texi:3321
+#: doc/guix.texi:3660
 msgid "The text changed from ``The following derivations would be built'' to ``112.3 MB would be downloaded''.  This indicates that substitutes from @code{@value{SUBSTITUTE-SERVER}} are usable and will be downloaded, when possible, for future builds."
 msgstr "El texto ha cambiado de ``Se construirían las siguientes derivaciones'' a ``Se descargarían 112.3 MB''. Esto indica que las sustituciones de @code{@value{SUBSTITUTE-SERVER}} son usables y serán descargadas, cuando sea posible, en construcciones futuras."
 
 #. type: cindex
-#: doc/guix.texi:3322
+#: doc/guix.texi:3661
 #, no-wrap
 msgid "substitutes, how to disable"
 msgstr "sustituciones, cómo desactivar"
 
 #. type: Plain text
-#: doc/guix.texi:3328
-msgid "The substitute mechanism can be disabled globally by running @code{guix-daemon} with @code{--no-substitutes} (@pxref{Invoking guix-daemon}).  It can also be disabled temporarily by passing the @code{--no-substitutes} option to @command{guix package}, @command{guix build}, and other command-line tools."
-msgstr "El mecanismo de sustituciones puede ser desactivado globalmente ejecutando @code{guix-daemon} con @code{--no-subsitutes} (@pxref{Invoking guix-daemon}). También puede ser desactivado temporalmente pasando la opción @code{--no-substitutes} a @command{guix package}, @command{guix build} y otras herramientas de línea de órdenes."
+#: doc/guix.texi:3667
+msgid "The substitute mechanism can be disabled globally by running @code{guix-daemon} with @option{--no-substitutes} (@pxref{Invoking guix-daemon}).  It can also be disabled temporarily by passing the @option{--no-substitutes} option to @command{guix package}, @command{guix build}, and other command-line tools."
+msgstr "El mecanismo de sustituciones puede ser desactivado globalmente ejecutando @code{guix-daemon} con @option{--no-subsitutes} (@pxref{Invoking guix-daemon}). También puede ser desactivado temporalmente pasando la opción @option{--no-substitutes} a @command{guix package}, @command{guix build} y otras herramientas de línea de órdenes."
 
 #. type: cindex
-#: doc/guix.texi:3332
+#: doc/guix.texi:3671
+#, no-wrap
+msgid "substitute servers, adding more"
+msgstr "servidores de sustituciones, añadir más"
+
+#. type: Plain text
+#: doc/guix.texi:3678
+msgid "Guix can look up and fetch substitutes from several servers.  This is useful when you are using packages from additional channels for which the official server does not have substitutes but another server provides them.  Another situation where this is useful is when you would prefer to download from your organization's substitute server, resorting to the official server only as a fallback or dismissing it altogether."
+msgstr "Guix puede buscar y obtener sustituciones a partir de varios servidores. Esto es útil cuando se usan paquetes de canales adicionales para los que el servidor oficial no proporciona sustituciones pero otros servidores sí. Otra situación donde puede esta característica puede ser útil es en el caso de que prefiera realizar las descargas desde el servidor de sustituciones de su organización, accediendo al servidor oficial únicamente como mecanismo de salvaguarda o no usándolo en absoluto."
+
+# FUZZY
+#. type: Plain text
+#: doc/guix.texi:3683
+msgid "You can give Guix a list of substitute server URLs and it will check them in the specified order.  You also need to explicitly authorize the public keys of substitute servers to instruct Guix to accept the substitutes they sign."
+msgstr "Puede proporcionarle a Guix una lista de URL de servidores de los que obtener sustituciones y las comprobará en el orden especificado. También es necesario que autorice explícitamente las claves públicas de los servidores de sustituciones para que Guix acepte las sustituciones firmadas por dichos claves."
+
+#. type: Plain text
+#: doc/guix.texi:3690
+msgid "On Guix System, this is achieved by modifying the configuration of the @code{guix} service.  Since the @code{guix} service is part of the default lists of services, @code{%base-services} and @code{%desktop-services}, you can use @code{modify-services} to change its configuration and add the URLs and substitute keys that you want (@pxref{Service Reference, @code{modify-services}})."
+msgstr "En el sistema Guix esto se consigue modificando la configuración del servicio @code{guix}. Puesto que el servicio @code{guix} es parte de las listas de servicios predeterminadas, @code{%base-services} y @code{%desktop-services}, puede usar @code{modify-services} para cambiar su configuración y añadir las URL y claves para sustituciones que desee (@pxref{Service Reference, @code{modify-services}})."
+
+#. type: Plain text
+#: doc/guix.texi:3695
+msgid "As an example, suppose you want to fetch substitutes from @code{guix.example.org} and to authorize the signing key of that server, in addition to the default @code{@value{SUBSTITUTE-SERVER}}.  The resulting operating system configuration will look something like:"
+msgstr "Como ejemplo supongamos que desea obtener sustituciones desde @code{guix.example.org} y autorizar la clave de firma de dicho servidor, además del servidor @code{@value{SUBSTITUTE-SERVER}} predeterminado. La configuración de sistema operativo resultante sería más o menos así:"
+
+#. type: lisp
+#: doc/guix.texi:3712
+#, no-wrap
+msgid ""
+"(operating-system\n"
+"  ;; @dots{}\n"
+"  (services\n"
+"    ;; Assume we're starting from '%desktop-services'.  Replace it\n"
+"    ;; with the list of services you're actually using.\n"
+"    (modify-services %desktop-services\n"
+"      (guix-service-type config =>\n"
+"                        (guix-configuration\n"
+"                          (inherit config)\n"
+"                          (substitute-urls\n"
+"                            (append (list \"https://guix.example.org\")\n"
+"                                    %default-substitute-urls))\n"
+"                          (authorized-keys\n"
+"                            (append (list (local-file \"./key.pub\"))\n"
+"                                    %default-authorized-guix-keys)))))))\n"
+msgstr ""
+"(operating-system\n"
+"  ;; @dots{}\n"
+"  (services\n"
+"    ;; Se asume que se parte de '%desktop-services'. Debe sustituirse\n"
+"    ;; por la lista de servicios que use en realidad.\n"
+"    (modify-services %desktop-services\n"
+"      (guix-service-type config =>\n"
+"                        (guix-configuration\n"
+"                          (inherit config)\n"
+"                          (substitute-urls\n"
+"                            (append (list \"https://guix.example.org\")\n"
+"                                    %default-substitute-urls))\n"
+"                          (authorized-keys\n"
+"                            (append (list (local-file \"./clave.pub\"))\n"
+"                                    %default-authorized-guix-keys)))))))\n"
+
+#. type: Plain text
+#: doc/guix.texi:3719
+msgid "This assumes that the file @file{key.pub} contains the signing key of @code{guix.example.org}.  With this change in place in your operating system configuration file (say @file{/etc/config.scm}), you can reconfigure and restart the @code{guix-daemon} service or reboot so the changes take effect:"
+msgstr "Esto asume que el archivo @file{clave.pub} contiene la clave de firma de @code{guix.example.org}. Cuando haya realizado este cambio en el archivo de configuración de su sistema operativo (digamos @file{/etc/config.scm}), puede reconfigurar y reiniciar el servicio @code{guix-daemon} o reiniciar la máquina para que los cambios se hagan efectivos:"
+
+#. type: example
+#: doc/guix.texi:3723
+#, no-wrap
+msgid ""
+"$ sudo guix system reconfigure /etc/config.scm\n"
+"$ sudo herd restart guix-daemon\n"
+msgstr ""
+"$ sudo guix system reconfigure /etc/config.scm\n"
+"$ sudo herd restart guix-daemon\n"
+
+# FUZZY
+# MAAV (TODO): foreign distro
+#. type: Plain text
+#: doc/guix.texi:3727
+msgid "If you're running Guix on a ``foreign distro'', you would instead take the following steps to get substitutes from additional servers:"
+msgstr "Si por el contrario ejecuta Guix sobre una distribución distinta, deberá llevar a cabo los siguientes pasos para obtener sustituciones de servidores adicionales:"
+
+#. type: enumerate
+#: doc/guix.texi:3736
+msgid "Edit the service configuration file for @code{guix-daemon}; when using systemd, this is normally @file{/etc/systemd/system/guix-daemon.service}.  Add the @option{--substitute-urls} option on the @command{guix-daemon} command line and list the URLs of interest (@pxref{daemon-substitute-urls, @code{guix-daemon --substitute-urls}}):"
+msgstr "Edite el archivo de configuración para el servicio de @code{guix-daemon}; cuando use systemd normalmente se trata de @file{/etc/systemd/system/guix-daemon.service}. Añada la opción @option{--substitute-urls} en la línea de ordenes de @command{guix-daemon} y la lista de URL que desee (@pxref{daemon-substitute-urls, @code{guix-daemon --substitute-urls}}):"
+
+#. type: example
+#: doc/guix.texi:3739
+#, no-wrap
+msgid "@dots{} --substitute-urls='https://guix.example.org https://@value{SUBSTITUTE-SERVER}'\n"
+msgstr "@dots{} --substitute-urls='https://guix.example.org https://@value{SUBSTITUTE-SERVER}'\n"
+
+#. type: enumerate
+#: doc/guix.texi:3743
+msgid "Restart the daemon.  For systemd, it goes like this:"
+msgstr "Reinicie el daemon. Con systemd estos son los pasos:"
+
+#. type: example
+#: doc/guix.texi:3747
+#, no-wrap
+msgid ""
+"systemctl daemon-reload\n"
+"systemctl restart guix-daemon.service\n"
+msgstr ""
+"systemctl daemon-reload\n"
+"systemctl restart guix-daemon.service\n"
+
+#. type: enumerate
+#: doc/guix.texi:3751
+msgid "Authorize the key of the new server (@pxref{Invoking guix archive}):"
+msgstr "Autorice la clave del nuevo servidor (@pxref{Invoking guix archive}):"
+
+#. type: example
+#: doc/guix.texi:3754
+#, no-wrap
+msgid "guix archive --authorize < key.pub\n"
+msgstr "guix archive --authorize < clave.pub\n"
+
+#. type: enumerate
+#: doc/guix.texi:3758
+msgid "Again this assumes @file{key.pub} contains the public key that @code{guix.example.org} uses to sign substitutes."
+msgstr "De nuevo se asume que @file{clave.pub} contiene la clave pública usada por @code{guix.example.org} para firmar las sustituciones."
+
+# FUZZY
+#. type: Plain text
+#: doc/guix.texi:3765
+msgid "Now you're all set! Substitutes will be preferably taken from @code{https://guix.example.org}, using @code{@value{SUBSTITUTE-SERVER}} as a fallback.  Of course you can list as many substitute servers as you like, with the caveat that substitute lookup can be slowed down if too many servers need to be contacted."
+msgstr "¡Ya lo tiene configurado! Las sustituciones se obtendrán a ser posible de @code{https://guix.example.org}, usando @code{@value{SUBSTITUTE-SERVER}} en caso de fallo. Por supuesto puede enumerar tantos servidores de sustituciones como desee, teniendo en cuenta que el tiempo de búsqueda puede aumentar si se necesita contactar a muchos servidores."
+
+# FUZZY FUZZY
+#. type: Plain text
+#: doc/guix.texi:3769
+msgid "Note that there are also situations where one may want to add the URL of a substitute server @emph{without} authorizing its key.  @xref{Substitute Authentication}, to understand this fine point."
+msgstr "Tenga en cuenta que existen situaciones en las que se puede desear añadir la URL de un servidor de sustitucines @emph{sin} autorizar su clave. @xref{Substitute Authentication} para entender este caso específico."
+
+#. type: cindex
+#: doc/guix.texi:3773
 #, no-wrap
 msgid "digital signatures"
 msgstr "firmas digitales"
 
 #. type: Plain text
-#: doc/guix.texi:3336
+#: doc/guix.texi:3777
 msgid "Guix detects and raises an error when attempting to use a substitute that has been tampered with.  Likewise, it ignores substitutes that are not signed, or that are not signed by one of the keys listed in the ACL."
 msgstr "Guix detecta y emite errores cuando se intenta usar una sustitución que ha sido adulterado. Del mismo modo, ignora las sustituciones que no están firmadas, o que no están firmadas por una de las firmas enumeradas en la ACL."
 
 #. type: Plain text
-#: doc/guix.texi:3342
+#: doc/guix.texi:3783
 msgid "There is one exception though: if an unauthorized server provides substitutes that are @emph{bit-for-bit identical} to those provided by an authorized server, then the unauthorized server becomes eligible for downloads.  For example, assume we have chosen two substitute servers with this option:"
 msgstr "No obstante hay una excepción: si un servidor no autorizado proporciona sustituciones que son @emph{idénticas bit-a-bit} a aquellas proporcionadas por un servidor autorizado, entonces el servidor no autorizado puede ser usado para descargas. Por ejemplo, asumiendo que hemos seleccionado dos servidores de sustituciones con esta opción:"
 
 #. type: example
-#: doc/guix.texi:3345
+#: doc/guix.texi:3786
 #, no-wrap
 msgid "--substitute-urls=\"https://a.example.org https://b.example.org\"\n"
 msgstr "--substitute-urls=\"https://a.example.org https://b.example.org\"\n"
 
 #. type: Plain text
-#: doc/guix.texi:3356
-msgid "If the ACL contains only the key for @code{b.example.org}, and if @code{a.example.org} happens to serve the @emph{exact same} substitutes, then Guix will download substitutes from @code{a.example.org} because it comes first in the list and can be considered a mirror of @code{b.example.org}.  In practice, independent build machines usually produce the same binaries, thanks to bit-reproducible builds (see below)."
-msgstr "Si la ACL contiene únicamente la clave para @code{b.example.org}, y si @code{a.example.org} resulta que proporciona @emph{exactamente las mismas} sustituciones, Guix descargará sustituciones de @code{a.example.org} porque viene primero en la lista y puede ser considerado un espejo de @code{b.example.org}. En la práctica, máquinas de construcción independientes producen habitualmente los mismos binarios, gracias a las construcciones reproducibles bit-a-bit (véase a continuación)."
+#: doc/guix.texi:3797
+msgid "If the ACL contains only the key for @samp{b.example.org}, and if @samp{a.example.org} happens to serve the @emph{exact same} substitutes, then Guix will download substitutes from @samp{a.example.org} because it comes first in the list and can be considered a mirror of @samp{b.example.org}.  In practice, independent build machines usually produce the same binaries, thanks to bit-reproducible builds (see below)."
+msgstr "Si la ACL contiene únicamente la clave para @samp{b.example.org}, y si @samp{a.example.org} resulta que proporciona @emph{exactamente las mismas} sustituciones, Guix descargará sustituciones de @samp{a.example.org} porque viene primero en la lista y puede ser considerado un espejo de @samp{b.example.org}. En la práctica, máquinas de construcción independientes producen habitualmente los mismos binarios, gracias a las construcciones reproducibles bit-a-bit (véase a continuación)."
 
 #. type: Plain text
-#: doc/guix.texi:3363
-msgid "When using HTTPS, the server's X.509 certificate is @emph{not} validated (in other words, the server is not authenticated), contrary to what HTTPS clients such as Web browsers usually do.  This is because Guix authenticates substitute information itself, as explained above, which is what we care about (whereas X.509 certificates are about authenticating bindings between domain names and public keys.)"
+#: doc/guix.texi:3804
+msgid "When using HTTPS, the server's X.509 certificate is @emph{not} validated (in other words, the server is not authenticated), contrary to what HTTPS clients such as Web browsers usually do.  This is because Guix authenticates substitute information itself, as explained above, which is what we care about (whereas X.509 certificates are about authenticating bindings between domain names and public keys)."
 msgstr "Cuando se usa HTTPS, el certificado X.509 del servidor @emph{no} se valida (en otras palabras, el servidor no está verificado), lo contrario del comportamiento habitual de los navegadores Web. Esto es debido a que Guix verifica la información misma de las sustituciones, como se ha explicado anteriormente, lo cual nos concierne (mientras que los certificados X.509 tratan de verificar las conexiones entre nombres de dominio y claves públicas)."
 
 #. type: Plain text
-#: doc/guix.texi:3375
-msgid "Substitutes are downloaded over HTTP or HTTPS.  The @code{http_proxy} environment variable can be set in the environment of @command{guix-daemon} and is honored for downloads of substitutes.  Note that the value of @code{http_proxy} in the environment where @command{guix build}, @command{guix package}, and other client commands are run has @emph{absolutely no effect}."
-msgstr "Las sustituciones se descargan por HTTP o HTTPS. La variable de entorno @code{http_proxy} puede ser incluida en el entorno de @command{guix-daemon} y la respeta para las descargas de sustituciones. Fíjese que el valor de @code{http_proxy} en el entorno en que @command{guix build}, @command{guix package} y otras aplicaciones cliente se ejecuten @emph{no tiene ningún efecto}."
+#: doc/guix.texi:3816
+msgid "Substitutes are downloaded over HTTP or HTTPS.  The @env{http_proxy} and @env{https_proxy} environment variables can be set in the environment of @command{guix-daemon} and are honored for downloads of substitutes.  Note that the value of those environment variables in the environment where @command{guix build}, @command{guix package}, and other client commands are run has @emph{absolutely no effect}."
+msgstr "Las sustituciones se descargan por HTTP o HTTPS. Se puede asignar un valor a las variables @env{http_proxy} y @env{https_proxy} en el entorno de @command{guix-daemon}, el cual las usará para las descargas de sustituciones. Fíjese que el valor de dichas variables en el entorno en que @command{guix build}, @command{guix package} y otras aplicaciones cliente se ejecuten @emph{no tiene ningún efecto}."
 
 #. type: Plain text
-#: doc/guix.texi:3384
+#: doc/guix.texi:3825
 msgid "Even when a substitute for a derivation is available, sometimes the substitution attempt will fail.  This can happen for a variety of reasons: the substitute server might be offline, the substitute may recently have been deleted, the connection might have been interrupted, etc."
 msgstr "Incluso cuando una sustitución de una derivación está disponible, a veces el intento de sustitución puede fallar. Esto puede suceder por varias razones: el servidor de sustituciones puede estar desconectado, la sustitución puede haber sido borrada, la conexión puede interrumpirse, etc."
 
 #. type: Plain text
-#: doc/guix.texi:3398
-msgid "When substitutes are enabled and a substitute for a derivation is available, but the substitution attempt fails, Guix will attempt to build the derivation locally depending on whether or not @code{--fallback} was given (@pxref{fallback-option,, common build option @code{--fallback}}).  Specifically, if @code{--fallback} was omitted, then no local build will be performed, and the derivation is considered to have failed.  However, if @code{--fallback} was given, then Guix will attempt to build the derivation locally, and the success or failure of the derivation depends on the success or failure of the local build.  Note that when substitutes are disabled or no substitute is available for the derivation in question, a local build will @emph{always} be performed, regardless of whether or not @code{--fallback} was given."
-msgstr "Cuando las sustituciones están activadas y una sustitución para una derivación está disponible, pero el intento de sustitución falla, Guix intentará construir la derivación localmente dependiendo si se proporcionó la opción @code{--fallback} (@pxref{fallback-option,, common build option @code{--fallback}}). Específicamente, si no se pasó @code{--fallback}, no se realizarán construcciones locales, y la derivación se considera se considera fallida. No obstante, si se pasó @code{--fallback}, Guix intentará construir la derivación localmente, y el éxito o fracaso de la derivación depende del éxito o fracaso de la construcción local. Fíjese que cuando las sustituciones están desactivadas o no hay sustituciones disponibles para la derivación en cuestión, la construcción local se realizará @emph{siempre}, independientemente de si se pasó la opción @code{--fallback}."
+#: doc/guix.texi:3839
+msgid "When substitutes are enabled and a substitute for a derivation is available, but the substitution attempt fails, Guix will attempt to build the derivation locally depending on whether or not @option{--fallback} was given (@pxref{fallback-option,, common build option @option{--fallback}}).  Specifically, if @option{--fallback} was omitted, then no local build will be performed, and the derivation is considered to have failed.  However, if @option{--fallback} was given, then Guix will attempt to build the derivation locally, and the success or failure of the derivation depends on the success or failure of the local build.  Note that when substitutes are disabled or no substitute is available for the derivation in question, a local build will @emph{always} be performed, regardless of whether or not @option{--fallback} was given."
+msgstr "Cuando las sustituciones están activadas y una sustitución para una derivación está disponible, pero el intento de sustitución falla, Guix intentará construir la derivación localmente dependiendo si se proporcionó la opción @option{--fallback} (@pxref{fallback-option,, opción común de construcción @option{--fallback}}). Específicamente, si no se pasó @option{--fallback}, no se realizarán construcciones locales, y la derivación se considera se considera fallida. No obstante, si se pasó @option{--fallback}, Guix intentará construir la derivación localmente, y el éxito o fracaso de la derivación depende del éxito o fracaso de la construcción local. Fíjese que cuando las sustituciones están desactivadas o no hay sustituciones disponibles para la derivación en cuestión, la construcción local se realizará @emph{siempre}, independientemente de si se pasó la opción @option{--fallback}."
 
 #. type: Plain text
-#: doc/guix.texi:3403
+#: doc/guix.texi:3844
 msgid "To get an idea of how many substitutes are available right now, you can try running the @command{guix weather} command (@pxref{Invoking guix weather}).  This command provides statistics on the substitutes provided by a server."
 msgstr "Para hacerse una idea de cuantas sustituciones hay disponibles en este momento, puede intentar ejecutar la orden @command{guix weather} (@pxref{Invoking guix weather}). Esta orden proporciona estadísticas de las sustituciones proporcionadas por un servidor."
 
 #. type: cindex
-#: doc/guix.texi:3407
+#: doc/guix.texi:3848
 #, no-wrap
 msgid "trust, of pre-built binaries"
 msgstr "confianza, de binarios pre-construidos"
 
 #. type: Plain text
-#: doc/guix.texi:3417
+#: doc/guix.texi:3858
 msgid "Today, each individual's control over their own computing is at the mercy of institutions, corporations, and groups with enough power and determination to subvert the computing infrastructure and exploit its weaknesses.  While using @code{@value{SUBSTITUTE-SERVER}} substitutes can be convenient, we encourage users to also build on their own, or even run their own build farm, such that @code{@value{SUBSTITUTE-SERVER}} is less of an interesting target.  One way to help is by publishing the software you build using @command{guix publish} so that others have one more choice of server to download substitutes from (@pxref{Invoking guix publish})."
 msgstr "Hoy en día, el control individual sobre nuestra propia computación está a merced de instituciones, empresas y grupos con suficiente poder y determinación para subvertir la infraestructura de computación y explotar sus vulnerabilidades. Mientras que usar las sustituciones de @code{@value{SUBSTITUTE-SERVER}} puede ser conveniente, recomendamos a las usuarias también construir sus paquetes, o incluso mantener su propia granja de construcción, de modo que @code{@value{SUBSTITUTE-SERVER}} sea un objetivo menos interesante. Una manera de ayudar es publicando el software que construya usando @command{guix publish} de modo que otras tengan otro servidor más como opción para descargar sustituciones (@pxref{Invoking guix publish})."
 
 #. type: Plain text
-#: doc/guix.texi:3429
+#: doc/guix.texi:3870
 msgid "Guix has the foundations to maximize build reproducibility (@pxref{Features}).  In most cases, independent builds of a given package or derivation should yield bit-identical results.  Thus, through a diverse set of independent package builds, we can strengthen the integrity of our systems.  The @command{guix challenge} command aims to help users assess substitute servers, and to assist developers in finding out about non-deterministic package builds (@pxref{Invoking guix challenge}).  Similarly, the @option{--check} option of @command{guix build} allows users to check whether previously-installed substitutes are genuine by rebuilding them locally (@pxref{build-check, @command{guix build --check}})."
 msgstr "Guix tiene los cimientos para maximizar la reproducibilidad de las construcciones (@pxref{Features}). En la mayor parte de los casos, construcciones independientes de un paquete o derivación dada deben emitir resultados idénticos bit a bit. Por tanto, a través de un conjunto diverso de construcciones independientes de paquetes, podemos reforzar la integridad de nuestros sistemas. La orden @command{guix challenge} intenta ayudar a las usuarias en comprobar servidores de sustituciones, y asiste a las desarrolladoras encontrando construcciones no deterministas de paquetes (@pxref{Invoking guix challenge}). Similarmente, la opción @option{--check} de @command{guix build} permite a las usuarias si las sustituciones previamente instaladas son genuinas mediante su reconstrucción local (@pxref{build-check, @command{guix build --check}})."
 
 #. type: Plain text
-#: doc/guix.texi:3433
+#: doc/guix.texi:3874
 msgid "In the future, we want Guix to have support to publish and retrieve binaries to/from other users, in a peer-to-peer fashion.  If you would like to discuss this project, join us on @email{guix-devel@@gnu.org}."
 msgstr "En el futuro, queremos que Guix permita la publicación y obtención de binarios hacia/desde otras usuarias, entre pares (P2P). En caso de interesarle hablar sobre este proyecto, unase a nosotras en @email{guix-devel@@gnu.org}."
 
 #. type: cindex
-#: doc/guix.texi:3437
+#: doc/guix.texi:3878
 #, no-wrap
 msgid "multiple-output packages"
 msgstr "paquetes de salida múltiple"
 
 #. type: cindex
-#: doc/guix.texi:3438
+#: doc/guix.texi:3879
 #, no-wrap
 msgid "package outputs"
 msgstr "salidas del paquete"
 
 #. type: cindex
-#: doc/guix.texi:3439
+#: doc/guix.texi:3880
 #, no-wrap
 msgid "outputs"
 msgstr "salidas"
 
 #. type: Plain text
-#: doc/guix.texi:3449
+#: doc/guix.texi:3890
 msgid "Often, packages defined in Guix have a single @dfn{output}---i.e., the source package leads to exactly one directory in the store.  When running @command{guix install glibc}, one installs the default output of the GNU libc package; the default output is called @code{out}, but its name can be omitted as shown in this command.  In this particular case, the default output of @code{glibc} contains all the C header files, shared libraries, static libraries, Info documentation, and other supporting files."
-msgstr "Habitualmente, los paquetes definidos en Guix tienen una @dfn{salida} única---es decir, el paquete de fuentes proporcionará exactamente un directorio en el almacén. Cuando se ejecuta @command{guix install glibc}, se instala la salida predeterminada del paquete GNU libc; la salida predeterminada se llama @code{out}, pero su nombre puede omitirse como se mostró en esta orden. En este caso particular, la salida predeterminada de @code{glibc} contiene todos ficheros de cabecera C, bibliotecas dinámicas, bibliotecas estáticas, documentación Info y otros ficheros auxiliares."
+msgstr "Habitualmente, los paquetes definidos en Guix tienen una @dfn{salida} única---es decir, el paquete de fuentes proporcionará exactamente un directorio en el almacén. Cuando se ejecuta @command{guix install glibc}, se instala la salida predeterminada del paquete GNU libc; la salida predeterminada se llama @code{out}, pero su nombre puede omitirse como se mostró en esta orden. En este caso particular, la salida predeterminada de @code{glibc} contiene todos archivos de cabecera C, bibliotecas dinámicas, bibliotecas estáticas, documentación Info y otros archivos auxiliares."
 
 #. type: Plain text
-#: doc/guix.texi:3457
+#: doc/guix.texi:3898
 msgid "Sometimes it is more appropriate to separate the various types of files produced from a single source package into separate outputs.  For instance, the GLib C library (used by GTK+ and related packages)  installs more than 20 MiB of reference documentation as HTML pages.  To save space for users who do not need it, the documentation goes to a separate output, called @code{doc}.  To install the main GLib output, which contains everything but the documentation, one would run:"
-msgstr "A veces es más apropiado separar varios tipos de ficheros producidos por un paquete único de fuentes en salidas separadas. Por ejemplo, la biblioteca C GLib (usada por GTK+ y paquetes relacionados) instala más de 20 MiB de documentación de referencia como páginas HTML. Para ahorrar espacio para usuarias que no la necesiten, la documentación va a una salida separada, llamada @code{doc}. Para instalar la salida principal de GLib, que contiene todo menos la documentación, se debe ejecutar:"
+msgstr "A veces es más apropiado separar varios tipos de archivos producidos por un paquete único de fuentes en salidas separadas. Por ejemplo, la biblioteca C GLib (usada por GTK+ y paquetes relacionados) instala más de 20 MiB de documentación de referencia como páginas HTML. Para ahorrar espacio para usuarias que no la necesiten, la documentación va a una salida separada, llamada @code{doc}. Para instalar la salida principal de GLib, que contiene todo menos la documentación, se debe ejecutar:"
 
 #. type: example
-#: doc/guix.texi:3460
+#: doc/guix.texi:3901
 #, no-wrap
 msgid "guix install glib\n"
 msgstr "guix install glib\n"
 
 #. type: item
-#: doc/guix.texi:3462 doc/guix.texi:27901 doc/guix.texi:27926
+#: doc/guix.texi:3903 doc/guix.texi:32085 doc/guix.texi:32110
 #, no-wrap
 msgid "documentation"
 msgstr "documentación"
 
 #. type: Plain text
-#: doc/guix.texi:3464
+#: doc/guix.texi:3905
 msgid "The command to install its documentation is:"
 msgstr "La orden que instala su documentación es:"
 
 #. type: example
-#: doc/guix.texi:3467
+#: doc/guix.texi:3908
 #, no-wrap
 msgid "guix install glib:doc\n"
 msgstr "guix install glib:doc\n"
@@ -8343,492 +9383,506 @@ msgstr "guix install glib:doc\n"
 #
 # MAAV: No me gusta el término IGU en realidad... pero GUI no es mejor.
 #. type: Plain text
-#: doc/guix.texi:3478
+#: doc/guix.texi:3919
 msgid "Some packages install programs with different ``dependency footprints''.  For instance, the WordNet package installs both command-line tools and graphical user interfaces (GUIs).  The former depend solely on the C library, whereas the latter depend on Tcl/Tk and the underlying X libraries.  In this case, we leave the command-line tools in the default output, whereas the GUIs are in a separate output.  This allows users who do not need the GUIs to save space.  The @command{guix size} command can help find out about such situations (@pxref{Invoking guix size}).  @command{guix graph} can also be helpful (@pxref{Invoking guix graph})."
 msgstr "Algunos paquetes instalan programas con diferentes ``huellas de dependencias''. Por ejemplo, el paquete WordNet instala tanto herramientas de línea de órdenes como interfaces gráficas de usuaria (IGU). Las primeras dependen únicamente de la biblioteca de C, mientras que las últimas dependen en Tcl/Tk y las bibliotecas de X subyacentes. En este caso, dejamos las herramientas de línea de órdenes en la salida predeterminada, mientras que las IGU están en una salida separada. Esto permite a las usuarias que no necesitan una IGU ahorrar espacio. La orden @command{guix size} puede ayudar a exponer estas situaciones (@pxref{Invoking guix size}). @command{guix graph} también puede ser útil (@pxref{Invoking guix graph})."
 
 #. type: Plain text
-#: doc/guix.texi:3486
+#: doc/guix.texi:3927
 msgid "There are several such multiple-output packages in the GNU distribution.  Other conventional output names include @code{lib} for libraries and possibly header files, @code{bin} for stand-alone programs, and @code{debug} for debugging information (@pxref{Installing Debugging Files}).  The outputs of a packages are listed in the third column of the output of @command{guix package --list-available} (@pxref{Invoking guix package})."
-msgstr "Hay varios de estos paquetes con salida múltiple en la distribución GNU. Otros nombres de salida convencionales incluyen @code{lib} para bibliotecas y posiblemente ficheros de cabecera, @code{bin} para programas independientes y @code{debug} para información de depuración (@pxref{Installing Debugging Files}). La salida de los paquetes se enumera en la tercera columna del resultado de @command{guix package --list-available} (@pxref{Invoking guix package})."
+msgstr "Hay varios de estos paquetes con salida múltiple en la distribución GNU. Otros nombres de salida convencionales incluyen @code{lib} para bibliotecas y posiblemente archivos de cabecera, @code{bin} para programas independientes y @code{debug} para información de depuración (@pxref{Installing Debugging Files}). La salida de los paquetes se enumera en la tercera columna del resultado de @command{guix package --list-available} (@pxref{Invoking guix package})."
 
 #. type: section
-#: doc/guix.texi:3489
+#: doc/guix.texi:3930
 #, no-wrap
 msgid "Invoking @command{guix gc}"
 msgstr "Invocación de @command{guix gc}"
 
 #. type: cindex
-#: doc/guix.texi:3491
+#: doc/guix.texi:3932
 #, no-wrap
 msgid "garbage collector"
 msgstr "recolector de basura"
 
 #. type: cindex
-#: doc/guix.texi:3492
+#: doc/guix.texi:3933
 #, no-wrap
 msgid "disk space"
 msgstr "espacio en disco"
 
 #. type: Plain text
-#: doc/guix.texi:3498
+#: doc/guix.texi:3939
 msgid "Packages that are installed, but not used, may be @dfn{garbage-collected}.  The @command{guix gc} command allows users to explicitly run the garbage collector to reclaim space from the @file{/gnu/store} directory.  It is the @emph{only} way to remove files from @file{/gnu/store}---removing files or directories manually may break it beyond repair!"
-msgstr "Los paquetes instalados, pero no usados, pueden ser @dfn{recolectados}. La orden @command{guix gc} permite a las usuarias ejecutar explícitamente el recolector de basura para reclamar espacio del directorio @file{/gnu/store}---¡borrar ficheros o directorios manualmente puede dañar el almacén sin reparación posible!"
+msgstr "Los paquetes instalados, pero no usados, pueden ser @dfn{recolectados}. La orden @command{guix gc} permite a las usuarias ejecutar explícitamente el recolector de basura para reclamar espacio del directorio @file{/gnu/store}---¡borrar archivos o directorios manualmente puede dañar el almacén sin reparación posible!"
 
 # FUZZY
 #
 # MAAV: GC es más conocido, RdB no lo es en absoluto, pero siempre hay
 # tiempo para crear tendencia...
 #. type: Plain text
-#: doc/guix.texi:3509
+#: doc/guix.texi:3950
 msgid "The garbage collector has a set of known @dfn{roots}: any file under @file{/gnu/store} reachable from a root is considered @dfn{live} and cannot be deleted; any other file is considered @dfn{dead} and may be deleted.  The set of garbage collector roots (``GC roots'' for short)  includes default user profiles; by default, the symlinks under @file{/var/guix/gcroots} represent these GC roots.  New GC roots can be added with @command{guix build --root}, for example (@pxref{Invoking guix build}).  The @command{guix gc --list-roots} command lists them."
-msgstr "El recolector de basura tiene un conjunto de @dfn{raíces} conocidas: cualquier fichero en @file{/gnu/store} alcanzable desde una raíz se considera @dfn{vivo} y no puede ser borrado; cualquier otro fichero se considera @dfn{muerto} y puede ser borrado. El conjunto de raíces del recolector de basura (``raíces del GC'' para abreviar) incluye los perfiles predeterminados de las usuarias; por defecto los enlaces bajo @file{/var/guix/gcroots} representan dichas raíces. Por ejemplo, nuevas raíces del GC pueden añadirse con @command{guix build --root} (@pxref{Invoking guix build}). La orden @command{guix gc --list-roots} las enumera."
+msgstr "El recolector de basura tiene un conjunto de @dfn{raíces} conocidas: cualquier archivo en @file{/gnu/store} alcanzable desde una raíz se considera @dfn{vivo} y no puede ser borrado; cualquier otro archivo se considera @dfn{muerto} y puede ser borrado. El conjunto de raíces del recolector de basura (``raíces del GC'' para abreviar) incluye los perfiles predeterminados de las usuarias; por defecto los enlaces bajo @file{/var/guix/gcroots} representan dichas raíces. Por ejemplo, nuevas raíces del GC pueden añadirse con @command{guix build --root} (@pxref{Invoking guix build}). La orden @command{guix gc --list-roots} las enumera."
 
 #. type: Plain text
-#: doc/guix.texi:3515
+#: doc/guix.texi:3956
 msgid "Prior to running @code{guix gc --collect-garbage} to make space, it is often useful to remove old generations from user profiles; that way, old package builds referenced by those generations can be reclaimed.  This is achieved by running @code{guix package --delete-generations} (@pxref{Invoking guix package})."
 msgstr "Antes de ejecutar @code{guix gc --collect-garbage} para liberar espacio, habitualmente es útil borrar generaciones antiguas de los perfiles de usuaria; de ese modo, las construcciones antiguas de paquetes a las que dichas generaciones hacen referencia puedan ser reclamadas. Esto se consigue ejecutando @code{guix package --delete-generations} (@pxref{Invoking guix package})."
 
 #. type: Plain text
-#: doc/guix.texi:3519
+#: doc/guix.texi:3960
 msgid "Our recommendation is to run a garbage collection periodically, or when you are short on disk space.  For instance, to guarantee that at least 5@tie{}GB are available on your disk, simply run:"
 msgstr "Nuestra recomendación es ejecutar una recolección de basura periódicamente, o cuando tenga poco espacio en el disco. Por ejemplo, para garantizar que al menos 5@tie{}GB están disponibles en su disco, simplemente ejecute:"
 
 #. type: example
-#: doc/guix.texi:3522
+#: doc/guix.texi:3963
 #, no-wrap
 msgid "guix gc -F 5G\n"
 msgstr "guix gc -F 5G\n"
 
 #. type: Plain text
-#: doc/guix.texi:3531
+#: doc/guix.texi:3972
 msgid "It is perfectly safe to run as a non-interactive periodic job (@pxref{Scheduled Job Execution}, for how to set up such a job).  Running @command{guix gc} with no arguments will collect as much garbage as it can, but that is often inconvenient: you may find yourself having to rebuild or re-download software that is ``dead'' from the GC viewpoint but that is necessary to build other pieces of software---e.g., the compiler tool chain."
 msgstr "Es completamente seguro ejecutarla como un trabajo periódico no-interactivo (@pxref{Scheduled Job Execution}, para la configuración de un trabajo de ese tipo). La ejecución de @command{guix gc} sin ningún parámetro recolectará tanta basura como se pueda, pero eso es no es normalmente conveniente: puede encontrarse teniendo que reconstruir o volviendo a bajar software que está ``muerto'' desde el punto de vista del recolector pero que es necesario para construir otras piezas de software---por ejemplo, la cadena de herramientas de compilación."
 
 #. type: Plain text
-#: doc/guix.texi:3537
-msgid "The @command{guix gc} command has three modes of operation: it can be used to garbage-collect any dead files (the default), to delete specific files (the @code{--delete} option), to print garbage-collector information, or for more advanced queries.  The garbage collection options are as follows:"
-msgstr "La orden @command{guix gc} tiene tres modos de operación: puede ser usada para recolectar ficheros muertos (predeterminado), para borrar ficheros específicos (la opción @code{--delete}), para mostrar información sobre la recolección de basura o para consultas más avanzadas. Las opciones de recolección de basura son las siguientes:"
+#: doc/guix.texi:3978
+msgid "The @command{guix gc} command has three modes of operation: it can be used to garbage-collect any dead files (the default), to delete specific files (the @option{--delete} option), to print garbage-collector information, or for more advanced queries.  The garbage collection options are as follows:"
+msgstr "La orden @command{guix gc} tiene tres modos de operación: puede ser usada para recolectar archivos muertos (predeterminado), para borrar archivos específicos (la opción @option{--delete}), para mostrar información sobre la recolección de basura o para consultas más avanzadas. Las opciones de recolección de basura son las siguientes:"
 
 #. type: item
-#: doc/guix.texi:3539
+#: doc/guix.texi:3980
 #, no-wrap
 msgid "--collect-garbage[=@var{min}]"
 msgstr "--collect-garbage[=@var{min}]"
 
 #. type: itemx
-#: doc/guix.texi:3540
+#: doc/guix.texi:3981
 #, no-wrap
 msgid "-C [@var{min}]"
 msgstr "-C [@var{min}]"
 
 #. type: table
-#: doc/guix.texi:3544
+#: doc/guix.texi:3985
 msgid "Collect garbage---i.e., unreachable @file{/gnu/store} files and sub-directories.  This is the default operation when no option is specified."
-msgstr "Recolecta basura---es decir, ficheros no alcanzables de @file{/gnu/store} y subdirectorios. Esta operación es la predeterminada cuando no se especifican opciones."
+msgstr "Recolecta basura---es decir, archivos no alcanzables de @file{/gnu/store} y subdirectorios. Esta operación es la predeterminada cuando no se especifican opciones."
 
 #. type: table
-#: doc/guix.texi:3549
+#: doc/guix.texi:3990
 msgid "When @var{min} is given, stop once @var{min} bytes have been collected.  @var{min} may be a number of bytes, or it may include a unit as a suffix, such as @code{MiB} for mebibytes and @code{GB} for gigabytes (@pxref{Block size, size specifications,, coreutils, GNU Coreutils})."
 msgstr "Cuando se proporciona @var{min}, para una vez que @var{min} bytes han sido recolectados. @var{min} puede ser un número de bytes, o puede incluir una unidad como sufijo, como @code{MiB} para mebibytes y @code{GB} para gigabytes (@pxref{Block size, size specifications,, coreutils, GNU Coreutils})."
 
 #. type: table
-#: doc/guix.texi:3551
+#: doc/guix.texi:3992
 msgid "When @var{min} is omitted, collect all the garbage."
 msgstr "Cuando se omite @var{min}, recolecta toda la basura."
 
 #. type: item
-#: doc/guix.texi:3552
+#: doc/guix.texi:3993
 #, no-wrap
 msgid "--free-space=@var{free}"
 msgstr "--free-space=@var{libre}"
 
 #. type: itemx
-#: doc/guix.texi:3553
+#: doc/guix.texi:3994
 #, no-wrap
 msgid "-F @var{free}"
 msgstr "-F @var{libre}"
 
 #. type: table
-#: doc/guix.texi:3557
+#: doc/guix.texi:3998
 msgid "Collect garbage until @var{free} space is available under @file{/gnu/store}, if possible; @var{free} denotes storage space, such as @code{500MiB}, as described above."
 msgstr "Recolecta basura hasta que haya espacio @var{libre} bajo @file{/gnu/store}, si es posible: @var{libre} denota espacio de almacenamiento, por ejemplo @code{500MiB}, como se ha descrito previamente."
 
 #. type: table
-#: doc/guix.texi:3560
+#: doc/guix.texi:4001
 msgid "When @var{free} or more is already available in @file{/gnu/store}, do nothing and exit immediately."
 msgstr "Cuando @var{libre} o más está ya disponible en @file{/gnu/store}, no hace nada y sale inmediatamente."
 
 #. type: item
-#: doc/guix.texi:3561
+#: doc/guix.texi:4002
 #, no-wrap
 msgid "--delete-generations[=@var{duration}]"
 msgstr "--delete-generations[=@var{duración}]"
 
 #. type: itemx
-#: doc/guix.texi:3562
+#: doc/guix.texi:4003
 #, no-wrap
 msgid "-d [@var{duration}]"
 msgstr "-d [@var{duración}]"
 
 #. type: table
-#: doc/guix.texi:3566
+#: doc/guix.texi:4007
 msgid "Before starting the garbage collection process, delete all the generations older than @var{duration}, for all the user profiles; when run as root, this applies to all the profiles @emph{of all the users}."
 msgstr "Antes de comenzar el proceso de recolección de basura, borra todas las generaciones anteriores a @var{duración}, para todos los perfiles de la usuaria; cuando se ejecuta como root esto aplica a los perfiles de @emph{todas las usuarias}."
 
 #. type: table
-#: doc/guix.texi:3570
+#: doc/guix.texi:4011
 msgid "For example, this command deletes all the generations of all your profiles that are older than 2 months (except generations that are current), and then proceeds to free space until at least 10 GiB are available:"
 msgstr "Por ejemplo, esta orden borra todas las generaciones de todos sus perfiles que tengan más de 2 meses de antigüedad (excepto generaciones que sean las actuales), y una vez hecho procede a liberar espacio hasta que al menos 10 GiB estén disponibles:"
 
 #. type: example
-#: doc/guix.texi:3573
+#: doc/guix.texi:4014
 #, no-wrap
 msgid "guix gc -d 2m -F 10G\n"
 msgstr "guix gc -d 2m -F 10G\n"
 
 #. type: item
-#: doc/guix.texi:3575
+#: doc/guix.texi:4016
 #, no-wrap
 msgid "--delete"
 msgstr "--delete"
 
 #. type: itemx
-#: doc/guix.texi:3576
+#: doc/guix.texi:4017
 #, no-wrap
 msgid "-D"
 msgstr "-D"
 
 #. type: table
-#: doc/guix.texi:3580
+#: doc/guix.texi:4021
 msgid "Attempt to delete all the store files and directories specified as arguments.  This fails if some of the files are not in the store, or if they are still live."
-msgstr "Intenta borrar todos los ficheros del almacén y directorios especificados como parámetros. Esto falla si alguno de los ficheros no están en el almacén, o todavía están vivos."
+msgstr "Intenta borrar todos los archivos del almacén y directorios especificados como parámetros. Esto falla si alguno de los archivos no están en el almacén, o todavía están vivos."
 
 #. type: item
-#: doc/guix.texi:3581
+#: doc/guix.texi:4022
 #, no-wrap
 msgid "--list-failures"
 msgstr "--list-failures"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:3583
+#: doc/guix.texi:4024
 msgid "List store items corresponding to cached build failures."
 msgstr "Enumera los elementos del almacén correspondientes a construcciones fallidas existentes en la caché."
 
 #. type: table
-#: doc/guix.texi:3587
+#: doc/guix.texi:4028
 msgid "This prints nothing unless the daemon was started with @option{--cache-failures} (@pxref{Invoking guix-daemon, @option{--cache-failures}})."
 msgstr "Esto no muestra nada a menos que el daemon se haya ejecutado pasando @option{--cache-failures} (@pxref{Invoking guix-daemon, @option{--cache-failures}})."
 
 #. type: item
-#: doc/guix.texi:3588
+#: doc/guix.texi:4029
 #, no-wrap
 msgid "--list-roots"
 msgstr "--list-roots"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:3591
+#: doc/guix.texi:4032
 msgid "List the GC roots owned by the user; when run as root, list @emph{all} the GC roots."
 msgstr "Enumera las raíces del recolector de basura poseídas por la usuaria; cuando se ejecuta como root, enumera @emph{todas} las raíces del recolector de basura."
 
 #. type: item
-#: doc/guix.texi:3592
+#: doc/guix.texi:4033
 #, no-wrap
 msgid "--list-busy"
 msgstr "--list-busy"
 
 #. type: table
-#: doc/guix.texi:3595
+#: doc/guix.texi:4036
 msgid "List store items in use by currently running processes.  These store items are effectively considered GC roots: they cannot be deleted."
 msgstr "Enumera los elementos del almacén que actualmente están siendo usados por procesos en ejecución. Estos elementos del almacén se consideran de manera efectiva raíces del recolector de basura: no pueden borrarse."
 
 #. type: item
-#: doc/guix.texi:3596
+#: doc/guix.texi:4037
 #, no-wrap
 msgid "--clear-failures"
 msgstr "--clear-failures"
 
 #. type: table
-#: doc/guix.texi:3598
+#: doc/guix.texi:4039
 msgid "Remove the specified store items from the failed-build cache."
 msgstr "Borra los elementos especificados del almacén de la caché de construcciones fallidas."
 
 #. type: table
-#: doc/guix.texi:3601
+#: doc/guix.texi:4042
 msgid "Again, this option only makes sense when the daemon is started with @option{--cache-failures}.  Otherwise, it does nothing."
 msgstr "De nuevo, esta opción únicamente tiene sentido cuando el daemon se inicia con @option{--cache-failures}. De otro modo, no hace nada."
 
 #. type: item
-#: doc/guix.texi:3602
+#: doc/guix.texi:4043
 #, no-wrap
 msgid "--list-dead"
 msgstr "--list-dead"
 
 #. type: table
-#: doc/guix.texi:3605
+#: doc/guix.texi:4046
 msgid "Show the list of dead files and directories still present in the store---i.e., files and directories no longer reachable from any root."
-msgstr "Muestra la lista de ficheros y directorios muertos todavía presentes en el almacén---es decir, ficheros y directorios que ya no se pueden alcanzar desde ninguna raíz."
+msgstr "Muestra la lista de archivos y directorios muertos todavía presentes en el almacén---es decir, archivos y directorios que ya no se pueden alcanzar desde ninguna raíz."
 
 #. type: item
-#: doc/guix.texi:3606
+#: doc/guix.texi:4047
 #, no-wrap
 msgid "--list-live"
 msgstr "--list-live"
 
 #. type: table
-#: doc/guix.texi:3608
+#: doc/guix.texi:4049
 msgid "Show the list of live store files and directories."
-msgstr "Muestra la lista de ficheros y directorios del almacén vivos."
+msgstr "Muestra la lista de archivos y directorios del almacén vivos."
 
 #. type: Plain text
-#: doc/guix.texi:3612
+#: doc/guix.texi:4053
 msgid "In addition, the references among existing store files can be queried:"
-msgstr "Además, las referencias entre los ficheros del almacén pueden ser consultadas:"
+msgstr "Además, las referencias entre los archivos del almacén pueden ser consultadas:"
 
 #. type: item
-#: doc/guix.texi:3615
+#: doc/guix.texi:4056
 #, no-wrap
 msgid "--references"
 msgstr "--references"
 
 #. type: itemx
-#: doc/guix.texi:3616
+#: doc/guix.texi:4057
 #, no-wrap
 msgid "--referrers"
 msgstr "--referrers"
 
 #. type: cindex
-#: doc/guix.texi:3617 doc/guix.texi:10011
+#: doc/guix.texi:4058 doc/guix.texi:11867
 #, no-wrap
 msgid "package dependencies"
 msgstr "dependencias de un paquete"
 
 #. type: table
-#: doc/guix.texi:3620
+#: doc/guix.texi:4061
 msgid "List the references (respectively, the referrers) of store files given as arguments."
-msgstr "Enumera las referencias (o, respectivamente, los referentes) de los ficheros del almacén pasados como parámetros."
+msgstr "Enumera las referencias (o, respectivamente, los referentes) de los archivos del almacén pasados como parámetros."
 
 #. type: item
-#: doc/guix.texi:3621
+#: doc/guix.texi:4062
 #, no-wrap
 msgid "--requisites"
 msgstr "--requisites"
 
 #. type: itemx
-#: doc/guix.texi:3622 doc/guix.texi:5151
+#: doc/guix.texi:4063 doc/guix.texi:5879
 #, no-wrap
 msgid "-R"
 msgstr "-R"
 
 #. type: item
-#: doc/guix.texi:3623 doc/guix.texi:9880 doc/guix.texi:9908 doc/guix.texi:9976
+#: doc/guix.texi:4064 doc/guix.texi:11723 doc/guix.texi:11751
+#: doc/guix.texi:11832
 #, no-wrap
 msgid "closure"
-msgstr "clausura"
+msgstr "closure"
 
 #. type: table
-#: doc/guix.texi:3628
+#: doc/guix.texi:4069
 msgid "List the requisites of the store files passed as arguments.  Requisites include the store files themselves, their references, and the references of these, recursively.  In other words, the returned list is the @dfn{transitive closure} of the store files."
-msgstr "Enumera los requisitos los ficheros del almacén pasados como parámetros. Los requisitos incluyen los mismos ficheros del almacén, sus referencias, las referencias de estas, recursivamente. En otras palabras, la lista devuelta es la @dfn{clausura transitiva} de los ficheros del almacén."
+msgstr "Enumera los requisitos los archivos del almacén pasados como parámetros. Los requisitos incluyen los mismos archivos del almacén, sus referencias, las referencias de estas, recursivamente. En otras palabras, la lista devuelta es la @dfn{clausura transitiva} de los archivos del almacén."
 
 #. type: table
-#: doc/guix.texi:3632
+#: doc/guix.texi:4073
 msgid "@xref{Invoking guix size}, for a tool to profile the size of the closure of an element.  @xref{Invoking guix graph}, for a tool to visualize the graph of references."
 msgstr "@xref{Invoking guix size}, para una herramienta que perfila el tamaño de la clausura de un elemento. @xref{Invoking guix graph}, para una herramienta de visualización del grafo de referencias."
 
 #. type: item
-#: doc/guix.texi:3633
+#: doc/guix.texi:4074
 #, no-wrap
 msgid "--derivers"
 msgstr "--derivers"
 
 #. type: item
-#: doc/guix.texi:3634 doc/guix.texi:5346 doc/guix.texi:10112
+#: doc/guix.texi:4075 doc/guix.texi:6193 doc/guix.texi:11586
+#: doc/guix.texi:11976
 #, no-wrap
 msgid "derivation"
-msgstr "derivación"
+msgstr "derivation"
 
 #. type: table
-#: doc/guix.texi:3637
+#: doc/guix.texi:4078
 msgid "Return the derivation(s) leading to the given store items (@pxref{Derivations})."
 msgstr "Devuelve la/s derivación/es que conducen a los elementos del almacén dados (@pxref{Derivations})."
 
 #. type: table
-#: doc/guix.texi:3639
+#: doc/guix.texi:4080
 msgid "For example, this command:"
 msgstr "Por ejemplo, esta orden:"
 
 #. type: example
-#: doc/guix.texi:3642
+#: doc/guix.texi:4083
 #, no-wrap
 msgid "guix gc --derivers `guix package -I ^emacs$ | cut -f4`\n"
 msgstr "guix gc --derivers `guix package -I ^emacs$ | cut -f4`\n"
 
 #. type: table
-#: doc/guix.texi:3647
+#: doc/guix.texi:4088
 msgid "returns the @file{.drv} file(s) leading to the @code{emacs} package installed in your profile."
-msgstr "devuelve el/los fichero/s @file{.drv} que conducen al paquete @code{emacs} instalado en su perfil."
+msgstr "devuelve el/los archivo/s @file{.drv} que conducen al paquete @code{emacs} instalado en su perfil."
 
 #. type: table
-#: doc/guix.texi:3651
+#: doc/guix.texi:4092
 msgid "Note that there may be zero matching @file{.drv} files, for instance because these files have been garbage-collected.  There can also be more than one matching @file{.drv} due to fixed-output derivations."
-msgstr "Fíjese que puede haber cero ficheros @file{.drv} encontrados, por ejemplo porque estos ficheros han sido recolectados. Puede haber más de un fichero @file{.drv} encontrado debido a derivaciones de salida fija."
+msgstr "Fíjese que puede haber cero archivos @file{.drv} encontrados, por ejemplo porque estos archivos han sido recolectados. Puede haber más de un archivo @file{.drv} encontrado debido a derivaciones de salida fija."
 
 #. type: Plain text
-#: doc/guix.texi:3655
+#: doc/guix.texi:4096
 msgid "Lastly, the following options allow you to check the integrity of the store and to control disk usage."
 msgstr "Por último, las siguientes opciones le permiten comprobar la integridad del almacén y controlar el uso del disco."
 
 #. type: item
-#: doc/guix.texi:3658
+#: doc/guix.texi:4099
 #, no-wrap
 msgid "--verify[=@var{options}]"
 msgstr "--verify[=@var{opciones}]"
 
 #. type: cindex
-#: doc/guix.texi:3659
+#: doc/guix.texi:4100
 #, no-wrap
 msgid "integrity, of the store"
 msgstr "integridad, del almacén"
 
 #. type: cindex
-#: doc/guix.texi:3660
+#: doc/guix.texi:4101
 #, no-wrap
 msgid "integrity checking"
 msgstr "comprobación de integridad"
 
 #. type: table
-#: doc/guix.texi:3662
+#: doc/guix.texi:4103
 msgid "Verify the integrity of the store."
 msgstr "Verifica la integridad del almacén."
 
 #. type: table
-#: doc/guix.texi:3665
+#: doc/guix.texi:4106
 msgid "By default, make sure that all the store items marked as valid in the database of the daemon actually exist in @file{/gnu/store}."
 msgstr "Por defecto, comprueba que todos los elementos del almacén marcados como válidos en la base de datos del daemon realmente existen en @file{/gnu/store}."
 
 #. type: table
-#: doc/guix.texi:3668
+#: doc/guix.texi:4109
 msgid "When provided, @var{options} must be a comma-separated list containing one or more of @code{contents} and @code{repair}."
 msgstr "Cuando se proporcionan, @var{opciones} debe ser una lista separada por comas que contenga uno o más valores @code{contents} and @code{repair}."
 
 #. type: table
-#: doc/guix.texi:3674
+#: doc/guix.texi:4115
 msgid "When passing @option{--verify=contents}, the daemon computes the content hash of each store item and compares it against its hash in the database.  Hash mismatches are reported as data corruptions.  Because it traverses @emph{all the files in the store}, this command can take a long time, especially on systems with a slow disk drive."
-msgstr "Cuando se usa @option{--verify=contents}, el daemon calcula el hash del contenido de cada elemento del almacén y lo compara contra el hash de su base de datos. Las incongruencias se muestran como corrupciones de datos. Debido a que recorre @emph{todos los ficheros del almacén}, esta orden puede tomar mucho tiempo, especialmente en sistemas con una unidad de disco lenta."
+msgstr "Cuando se usa @option{--verify=contents}, el daemon calcula el hash del contenido de cada elemento del almacén y lo compara contra el hash de su base de datos. Las incongruencias se muestran como corrupciones de datos. Debido a que recorre @emph{todos los archivos del almacén}, esta orden puede tomar mucho tiempo, especialmente en sistemas con una unidad de disco lenta."
 
 #. type: cindex
-#: doc/guix.texi:3675
+#: doc/guix.texi:4116
 #, no-wrap
 msgid "repairing the store"
 msgstr "reparar el almacén"
 
 #. type: cindex
-#: doc/guix.texi:3676 doc/guix.texi:8694
+#: doc/guix.texi:4117 doc/guix.texi:10502
 #, no-wrap
 msgid "corruption, recovering from"
 msgstr "corrupción, recuperarse de"
 
 #. type: table
-#: doc/guix.texi:3684
+#: doc/guix.texi:4125
 msgid "Using @option{--verify=repair} or @option{--verify=contents,repair} causes the daemon to try to repair corrupt store items by fetching substitutes for them (@pxref{Substitutes}).  Because repairing is not atomic, and thus potentially dangerous, it is available only to the system administrator.  A lightweight alternative, when you know exactly which items in the store are corrupt, is @command{guix build --repair} (@pxref{Invoking guix build})."
 msgstr "El uso de @option{--verify=repair} o @option{--verify=contents,repair} hace que el daemon intente reparar elementos corruptos del almacén obteniendo sustituciones para dichos elementos (@pxref{Substitutes}). Debido a que la reparación no es atómica, y por tanto potencialmente peligrosa, está disponible únicamente a la administradora del sistema. Una alternativa ligera, cuando sabe exactamente qué elementos del almacén están corruptos, es @command{guix build --repair} (@pxref{Invoking guix build})."
 
 #. type: item
-#: doc/guix.texi:3685
+#: doc/guix.texi:4126
 #, no-wrap
 msgid "--optimize"
 msgstr "--optimize"
 
 #. type: table
-#: doc/guix.texi:3689
+#: doc/guix.texi:4130
 msgid "Optimize the store by hard-linking identical files---this is @dfn{deduplication}."
-msgstr "Optimiza el almacén sustituyendo ficheros idénticos por enlaces duros---esto es la @dfn{deduplicación}."
+msgstr "Optimiza el almacén sustituyendo archivos idénticos por enlaces duros---esto es la @dfn{deduplicación}."
 
 #. type: table
-#: doc/guix.texi:3695
-msgid "The daemon performs deduplication after each successful build or archive import, unless it was started with @code{--disable-deduplication} (@pxref{Invoking guix-daemon, @code{--disable-deduplication}}).  Thus, this option is primarily useful when the daemon was running with @code{--disable-deduplication}."
-msgstr "El daemon realiza la deduplicación después de cada construcción satisfactoria o importación de archivos, a menos que se iniciase con @code{--disable-deduplication} (@pxref{Invoking guix-daemon, @code{--disable-deduplication}}). Por tanto, esta opción es útil primariamente cuando el daemon se estaba ejecutando con @code{--disable-deduplication}."
+#: doc/guix.texi:4136
+msgid "The daemon performs deduplication after each successful build or archive import, unless it was started with @option{--disable-deduplication} (@pxref{Invoking guix-daemon, @option{--disable-deduplication}}).  Thus, this option is primarily useful when the daemon was running with @option{--disable-deduplication}."
+msgstr "El daemon realiza la deduplicación después de cada construcción satisfactoria o importación de archivos, a menos que se haya lanzado con la opción @option{--disable-deduplication} (@pxref{Invoking guix-daemon, @option{--disable-deduplication}}). Por tanto, esta opción es útil principalmente cuando el daemon se estaba ejecutando con @option{--disable-deduplication}."
 
 #. type: section
-#: doc/guix.texi:3699
+#: doc/guix.texi:4140
 #, no-wrap
 msgid "Invoking @command{guix pull}"
 msgstr "Invocación de @command{guix pull}"
 
 #. type: cindex
-#: doc/guix.texi:3701
+#: doc/guix.texi:4142
 #, no-wrap
 msgid "upgrading Guix"
 msgstr "actualizar Guix"
 
 #. type: cindex
-#: doc/guix.texi:3702
+#: doc/guix.texi:4143
 #, no-wrap
 msgid "updating Guix"
 msgstr "actualizar la versión de Guix"
 
 #. type: command{#1}
-#: doc/guix.texi:3703
+#: doc/guix.texi:4144
 #, no-wrap
 msgid "guix pull"
 msgstr "guix pull"
 
 #. type: cindex
-#: doc/guix.texi:3704
+#: doc/guix.texi:4145
 #, no-wrap
 msgid "pull"
 msgstr "pull"
 
+#. type: cindex
+#: doc/guix.texi:4146
+#, no-wrap
+msgid "security, @command{guix pull}"
+msgstr "seguridad, @command{guix pull}"
+
+#. type: cindex
+#: doc/guix.texi:4147
+#, no-wrap
+msgid "authenticity, of code obtained with @command{guix pull}"
+msgstr "veracidad, del código obtenido con @command{guix pull}"
+
 #. type: Plain text
-#: doc/guix.texi:3712
-msgid "Packages are installed or upgraded to the latest version available in the distribution currently available on your local machine.  To update that distribution, along with the Guix tools, you must run @command{guix pull}: the command downloads the latest Guix source code and package descriptions, and deploys it.  Source code is downloaded from a @uref{https://git-scm.com, Git} repository, by default the official GNU@tie{}Guix repository, though this can be customized."
-msgstr "Los paquetes se instalan o actualizan con la última versión disponible en la distribución disponible actualmente en su máquina local. Para actualizar dicha distribución, junto a las herramientas de Guix, debe ejecutar @command{guix pull}: esta orden descarga el último código fuente de Guix y descripciones de paquetes, y lo despliega. El código fuente se descarga de un repositorio @uref{https://git-scm.com, Git}, por defecto el repositorio oficial de GNU@tie{}Guix, lo que no obstante puede ser personalizado."
+#: doc/guix.texi:4157
+msgid "Packages are installed or upgraded to the latest version available in the distribution currently available on your local machine.  To update that distribution, along with the Guix tools, you must run @command{guix pull}: the command downloads the latest Guix source code and package descriptions, and deploys it.  Source code is downloaded from a @uref{https://git-scm.com, Git} repository, by default the official GNU@tie{}Guix repository, though this can be customized.  @command{guix pull} ensures that the code it downloads is @emph{authentic} by verifying that commits are signed by Guix developers."
+msgstr "Los paquetes se instalan o actualizan con la última versión disponible en la distribución disponible actualmente en su máquina local. Para actualizar dicha distribución, junto a las herramientas de Guix, debe ejecutar @command{guix pull}: esta orden descarga el último código fuente de Guix y descripciones de paquetes, y lo despliega. El código fuente se descarga de un repositorio @uref{https://git-scm.com, Git}, por defecto el repositorio oficial de GNU@tie{}Guix, lo que no obstante puede ser personalizado.  @command{guix pull} se asegura que el código que descarga es @emph{auténtico} verificando que revisiones están firmadas por desarrolladoras de Guix."
 
 #. type: Plain text
-#: doc/guix.texi:3715
+#: doc/guix.texi:4160
 msgid "Specifically, @command{guix pull} downloads code from the @dfn{channels} (@pxref{Channels}) specified by one of the followings, in this order:"
 msgstr "Específicamente, @command{guix pull} descarga código de los @dfn{canales} (@pxref{Channels}) especificados en una de las posibilidades siguientes, en este orden:"
 
 #. type: enumerate
-#: doc/guix.texi:3719
+#: doc/guix.texi:4164
 msgid "the @option{--channels} option;"
 msgstr "la opción @option{--channels};"
 
 #. type: enumerate
-#: doc/guix.texi:3721
+#: doc/guix.texi:4166
 msgid "the user's @file{~/.config/guix/channels.scm} file;"
-msgstr "el fichero @file{~/.config/guix/channels.scm} de la usuaria;"
+msgstr "el archivo @file{~/.config/guix/channels.scm} de la usuaria;"
 
 #. type: enumerate
-#: doc/guix.texi:3723
+#: doc/guix.texi:4168
 msgid "the system-wide @file{/etc/guix/channels.scm} file;"
-msgstr "el fichero @file{/etc/guix/channels.scm} común al sistema;"
+msgstr "el archivo @file{/etc/guix/channels.scm} común al sistema;"
 
 #. type: enumerate
-#: doc/guix.texi:3726
+#: doc/guix.texi:4171
 msgid "the built-in default channels specified in the @code{%default-channels} variable."
 msgstr "los canales predeterminados en código especificados en la variable @code{%default-channels}."
 
 #. type: Plain text
-#: doc/guix.texi:3733
+#: doc/guix.texi:4178
 msgid "On completion, @command{guix package} will use packages and package versions from this just-retrieved copy of Guix.  Not only that, but all the Guix commands and Scheme modules will also be taken from that latest version.  New @command{guix} sub-commands added by the update also become available."
 msgstr "Una vez completada, @command{guix package} usará paquetes y versiones de paquetes de esta copia recién obtenida de Guix. No solo eso, sino que todas las órdenes de Guix y los módulos Scheme también se tomarán de la última versión. Nuevas sub-órdenes @command{guix} incorporadas por la actualización también estarán disponibles."
 
 #. type: Plain text
-#: doc/guix.texi:3739
+#: doc/guix.texi:4184
 msgid "Any user can update their Guix copy using @command{guix pull}, and the effect is limited to the user who ran @command{guix pull}.  For instance, when user @code{root} runs @command{guix pull}, this has no effect on the version of Guix that user @code{alice} sees, and vice versa."
 msgstr "Cualquier usuaria puede actualizar su copia de Guix usando @command{guix pull}, y el efecto está limitado a la usuaria que ejecute @command{guix pull}. Por ejemplo, cuando la usuaria @code{root} ejecuta @command{guix pull}, dicha acción no produce ningún efecto en la versión del Guix que la usuaria @code{alicia} ve, y viceversa."
 
 #. type: Plain text
-#: doc/guix.texi:3745
+#: doc/guix.texi:4190
 msgid "The result of running @command{guix pull} is a @dfn{profile} available under @file{~/.config/guix/current} containing the latest Guix.  Thus, make sure to add it to the beginning of your search path so that you use the latest version, and similarly for the Info manual (@pxref{Documentation}):"
 msgstr "El resultado de ejecutar @command{guix pull} es un @dfn{perfil} disponible bajo @file{~/.config/guix/current} conteniendo el último Guix. Por tanto, asegúrese de añadirlo al inicio de sus rutas de búsqueda de modo que use la última versión, de modo similar para el manual Info(@pxref{Documentation})."
 
 #. type: example
-#: doc/guix.texi:3749
+#: doc/guix.texi:4194
 #, no-wrap
 msgid ""
 "export PATH=\"$HOME/.config/guix/current/bin:$PATH\"\n"
@@ -8838,12 +9892,12 @@ msgstr ""
 "export INFOPATH=\"$HOME/.config/guix/current/share/info:$INFOPATH\"\n"
 
 #. type: Plain text
-#: doc/guix.texi:3753
-msgid "The @code{--list-generations} or @code{-l} option lists past generations produced by @command{guix pull}, along with details about their provenance:"
-msgstr "Las opciones @code{--list-generations} o @code{-l} enumeran las generaciones pasadas producidas por @command{guix pull}, junto a detalles de su procedencia:"
+#: doc/guix.texi:4198
+msgid "The @option{--list-generations} or @option{-l} option lists past generations produced by @command{guix pull}, along with details about their provenance:"
+msgstr "Las opciones @option{--list-generations} o @option{-l} enumeran las generaciones pasadas producidas por @command{guix pull}, junto a detalles de su procedencia:"
 
 #. type: example
-#: doc/guix.texi:3761
+#: doc/guix.texi:4206
 #, no-wrap
 msgid ""
 "$ guix pull -l\n"
@@ -8863,7 +9917,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:3771
+#: doc/guix.texi:4216
 #, no-wrap
 msgid ""
 "Generation 2\tJun 11 2018 11:02:49\n"
@@ -8889,7 +9943,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:3779
+#: doc/guix.texi:4224
 #, no-wrap
 msgid ""
 "Generation 3\tJun 13 2018 23:31:07\t(current)\n"
@@ -8909,18 +9963,18 @@ msgstr ""
 "  69 paquetes actualizados: borg@@1.1.6, cheese@@3.28.0, @dots{}\n"
 
 #. type: Plain text
-#: doc/guix.texi:3783
+#: doc/guix.texi:4228
 msgid "@xref{Invoking guix describe, @command{guix describe}}, for other ways to describe the current status of Guix."
 msgstr "@ref{Invoking guix describe, @command{guix describe}}, para otras formas de describir el estado actual de Guix."
 
 # FUZZY
 #. type: Plain text
-#: doc/guix.texi:3788
+#: doc/guix.texi:4233
 msgid "This @code{~/.config/guix/current} profile works exactly like the profiles created by @command{guix package} (@pxref{Invoking guix package}). That is, you can list generations, roll back to the previous generation---i.e., the previous Guix---and so on:"
 msgstr "El perfil @code{~/.config/guix/current} funciona exactamente igual que los perfiles creados por @command{guix package} (@pxref{Invoking guix package}). Es decir, puede enumerar generaciones, volver a una generación previa---esto es, la versión anterior de Guix---, etcétera:"
 
 #. type: example
-#: doc/guix.texi:3794
+#: doc/guix.texi:4239
 #, no-wrap
 msgid ""
 "$ guix pull --roll-back\n"
@@ -8934,12 +9988,12 @@ msgstr ""
 "borrando /var/guix/profiles/per-user/carlos/current-guix-1-link\n"
 
 #. type: Plain text
-#: doc/guix.texi:3798
+#: doc/guix.texi:4243
 msgid "You can also use @command{guix package} (@pxref{Invoking guix package})  to manage the profile by naming it explicitly:"
 msgstr "También puede usar @command{guix package} (@pxref{Invoking guix package}) para gestionar el perfil proporcionando su nombre de manera específica:"
 
 #. type: example
-#: doc/guix.texi:3803
+#: doc/guix.texi:4248
 #, no-wrap
 msgid ""
 "$ guix package -p ~/.config/guix/current --roll-back\n"
@@ -8953,738 +10007,346 @@ msgstr ""
 "borrando /var/guix/profiles/per-user/carlos/current-guix-1-link\n"
 
 #. type: Plain text
-#: doc/guix.texi:3807
+#: doc/guix.texi:4252
 msgid "The @command{guix pull} command is usually invoked with no arguments, but it supports the following options:"
 msgstr "La orden @command{guix pull} se invoca habitualmente sin parámetros, pero permite las siguientes opciones:"
 
 #. type: item
-#: doc/guix.texi:3809 doc/guix.texi:4232
+#: doc/guix.texi:4254 doc/guix.texi:4412
 #, no-wrap
 msgid "--url=@var{url}"
 msgstr "--url=@var{url}"
 
 #. type: itemx
-#: doc/guix.texi:3810 doc/guix.texi:4233
+#: doc/guix.texi:4255 doc/guix.texi:4413
 #, no-wrap
 msgid "--commit=@var{commit}"
 msgstr "--commit=@var{revisión}"
 
 #. type: itemx
-#: doc/guix.texi:3811 doc/guix.texi:4234
+#: doc/guix.texi:4256 doc/guix.texi:4414
 #, no-wrap
 msgid "--branch=@var{branch}"
 msgstr "--branch=@var{rama}"
 
 #. type: table
-#: doc/guix.texi:3815
+#: doc/guix.texi:4260
 msgid "Download code for the @code{guix} channel from the specified @var{url}, at the given @var{commit} (a valid Git commit ID represented as a hexadecimal string), or @var{branch}."
 msgstr "Descarga el código para el canal @code{guix} de la @var{url} especificada, en la @var{revisión} proporcionada (un ID de revisión Git representada como una cadena hexadecimal), o @var{rama}."
 
 #. type: cindex
-#: doc/guix.texi:3816 doc/guix.texi:3919
+#: doc/guix.texi:4261 doc/guix.texi:4858
 #, no-wrap
 msgid "@file{channels.scm}, configuration file"
-msgstr "@file{channels.scm}, fichero de configuración"
+msgstr "@file{channels.scm}, archivo de configuración"
 
 #. type: cindex
-#: doc/guix.texi:3817 doc/guix.texi:3920
+#: doc/guix.texi:4262 doc/guix.texi:4859
 #, no-wrap
 msgid "configuration file for channels"
-msgstr "fichero de configuración de canales"
+msgstr "archivo de configuración de canales"
 
 #. type: table
-#: doc/guix.texi:3821
+#: doc/guix.texi:4266
 msgid "These options are provided for convenience, but you can also specify your configuration in the @file{~/.config/guix/channels.scm} file or using the @option{--channels} option (see below)."
-msgstr "Estas opciones se proporcionan por conveniencia, pero también puede especificar su configuración en el fichero @file{~/.config/guix/channels.scm} o usando la opción @option{--channels} (vea más adelante)."
+msgstr "Estas opciones se proporcionan por conveniencia, pero también puede especificar su configuración en el archivo @file{~/.config/guix/channels.scm} o usando la opción @option{--channels} (vea más adelante)."
 
 #. type: item
-#: doc/guix.texi:3822 doc/guix.texi:4239
+#: doc/guix.texi:4267 doc/guix.texi:4419
 #, no-wrap
 msgid "--channels=@var{file}"
-msgstr "--channels=@var{fichero}"
+msgstr "--channels=@var{archivo}"
 
 #. type: itemx
-#: doc/guix.texi:3823 doc/guix.texi:4240
+#: doc/guix.texi:4268 doc/guix.texi:4420
 #, no-wrap
 msgid "-C @var{file}"
-msgstr "-C @var{fichero}"
+msgstr "-C @var{archivo}"
 
 #. type: table
-#: doc/guix.texi:3829
+#: doc/guix.texi:4274
 msgid "Read the list of channels from @var{file} instead of @file{~/.config/guix/channels.scm} or @file{/etc/guix/channels.scm}.  @var{file} must contain Scheme code that evaluates to a list of channel objects.  @xref{Channels}, for more information."
-msgstr "Lee la lista de canales de @var{fichero} en vez de @file{~/.config/guix/channels.scm} o @file{/etc/guix/channels.scm}. @var{fichero} debe contener código Scheme que evalúe a una lista de objetos ``channel''. @xref{Channels}, para más información."
+msgstr "Lee la lista de canales de @var{archivo} en vez de @file{~/.config/guix/channels.scm} o @file{/etc/guix/channels.scm}. @var{archivo} debe contener código Scheme que evalúe a una lista de objetos ``channel''. @xref{Channels}, para más información."
 
 #. type: cindex
-#: doc/guix.texi:3830
+#: doc/guix.texi:4275
 #, no-wrap
 msgid "channel news"
 msgstr "noticias de los canales"
 
 #. type: item
-#: doc/guix.texi:3831
+#: doc/guix.texi:4276
 #, no-wrap
 msgid "--news"
 msgstr "--news"
 
 #. type: itemx
-#: doc/guix.texi:3832 doc/guix.texi:4926 doc/guix.texi:26922
+#: doc/guix.texi:4277 doc/guix.texi:5654 doc/guix.texi:31059
 #, no-wrap
 msgid "-N"
 msgstr "-N"
 
 #. type: table
-#: doc/guix.texi:3836
+#: doc/guix.texi:4281
 msgid "Display the list of packages added or upgraded since the previous generation, as well as, occasionally, news written by channel authors for their users (@pxref{Channels, Writing Channel News})."
 msgstr "Muestra la lista de paquetes añadidos o actualizados desde la última generación, así como, ocasionalmente, noticias escritas por las autoras del canal para las usuarias (@pxref{Channels, Writing Channel News})."
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:3840
+#: doc/guix.texi:4285
 msgid "The package information is the same as displayed upon @command{guix pull} completion, but without ellipses; it is also similar to the output of @command{guix pull -l} for the last generation (see below)."
 msgstr "La información del paquete es la misma que la que se muestra cuando termina @command{guix pull}, pero sin la elipsis; es también similar a la salida de @command{guix pull -l} para la última generación (véase a continuación)."
 
 #. type: table
-#: doc/guix.texi:3847
+#: doc/guix.texi:4292
 msgid "List all the generations of @file{~/.config/guix/current} or, if @var{pattern} is provided, the subset of generations that match @var{pattern}.  The syntax of @var{pattern} is the same as with @code{guix package --list-generations} (@pxref{Invoking guix package})."
 msgstr "Enumera todas las generaciones de @file{~/.config/guix/current} o, si se proporciona un @var{patrón}, el subconjunto de generaciones que correspondan con el @var{patrón}. La sintaxis de @var{patrón} es la misma que @code{guix package --list-generations} (@pxref{Invoking guix package})."
 
 #. type: table
-#: doc/guix.texi:3854
+#: doc/guix.texi:4299
 msgid "Roll back to the previous @dfn{generation} of @file{~/.config/guix/current}---i.e., undo the last transaction."
 msgstr "Vuelve a la @dfn{generación} previa de @file{~/.config/guix/current}---es decir, deshace la última transacción."
 
 #. type: table
-#: doc/guix.texi:3878
+#: doc/guix.texi:4323
 msgid "If the current generation matches, it is @emph{not} deleted."
 msgstr "Si la generación actual entra en el patrón, @emph{no} será borrada."
 
 #. type: table
-#: doc/guix.texi:3884
+#: doc/guix.texi:4329
 msgid "@xref{Invoking guix describe}, for a way to display information about the current generation only."
 msgstr "@ref{Invoking guix describe}, para una forma de mostrar información sobre únicamente la generación actual."
 
 #. type: table
-#: doc/guix.texi:3888
+#: doc/guix.texi:4333
 msgid "Use @var{profile} instead of @file{~/.config/guix/current}."
 msgstr "Usa @var{perfil} en vez de @file{~/.config/guix/current}."
 
 #. type: item
-#: doc/guix.texi:3889 doc/guix.texi:8260
+#: doc/guix.texi:4334 doc/guix.texi:9950
 #, no-wrap
 msgid "--dry-run"
 msgstr "--dry-run"
 
 #. type: itemx
-#: doc/guix.texi:3890 doc/guix.texi:8261
+#: doc/guix.texi:4335 doc/guix.texi:9951 doc/guix.texi:11705
 #, no-wrap
 msgid "-n"
 msgstr "-n"
 
 #. type: table
-#: doc/guix.texi:3893
+#: doc/guix.texi:4338
 msgid "Show which channel commit(s) would be used and what would be built or substituted but do not actually do it."
 msgstr "Muestra qué revisión/es del canal serían usadas y qué se construiría o sustituiría, sin efectuar ninguna acción real."
 
-#. type: itemx
-#: doc/guix.texi:3895 doc/guix.texi:4909 doc/guix.texi:5249 doc/guix.texi:8636
-#: doc/guix.texi:9994 doc/guix.texi:10200 doc/guix.texi:10838
-#: doc/guix.texi:26870
-#, no-wrap
-msgid "-s @var{system}"
-msgstr "-s @var{sistema}"
-
-#. type: table
-#: doc/guix.texi:3898 doc/guix.texi:5252
-msgid "Attempt to build for @var{system}---e.g., @code{i686-linux}---instead of the system type of the build host."
-msgstr "Intenta construir paquetes para @var{sistema}---por ejemplo, @code{x86_64-linux}---en vez del tipo de sistema de la máquina de construcción."
-
 #. type: item
-#: doc/guix.texi:3899 doc/guix.texi:10634
+#: doc/guix.texi:4339 doc/guix.texi:31078
 #, no-wrap
-msgid "--verbose"
-msgstr "--verbose"
+msgid "--allow-downgrades"
+msgstr "--allow-downgrades"
 
 #. type: table
-#: doc/guix.texi:3901
-msgid "Produce verbose output, writing build logs to the standard error output."
-msgstr "Produce salida prolija, escribiendo los logs de construcción por la salida de error estándar."
-
-#. type: table
-#: doc/guix.texi:3905
-msgid "Use the bootstrap Guile to build the latest Guix.  This option is only useful to Guix developers."
-msgstr "Use el Guile usado para el lanzamiento para construir el último Guix. Esta opción es útil para las desarrolladoras de Guix únicamente."
-
-#. type: Plain text
-#: doc/guix.texi:3911
-msgid "The @dfn{channel} mechanism allows you to instruct @command{guix pull} which repository and branch to pull from, as well as @emph{additional} repositories containing package modules that should be deployed.  @xref{Channels}, for more information."
-msgstr "El mecanismo de @dfn{canales} le permite instruir a @command{guix pull} de qué repositorio y rama obtener los datos, así como repositorios @emph{adicionales} que contengan módulos de paquetes que deben ser desplegados. @xref{Channels}, para más información."
-
-#. type: Plain text
-#: doc/guix.texi:3914
-msgid "In addition, @command{guix pull} supports all the common build options (@pxref{Common Build Options})."
-msgstr "Además, @command{guix pull} acepta todas las opciones de construcción comunes (@pxref{Common Build Options})."
-
-#. type: item
-#: doc/guix.texi:3918 doc/guix.texi:4454
-#, no-wrap
-msgid "channels"
-msgstr "channels"
+#: doc/guix.texi:4342
+msgid "Allow pulling older or unrelated revisions of channels than those currently in use."
+msgstr "Permite obtener revisiones de los canales más antiguas o no relacionadas con aquellas que se encuentran en uso actualmente."
 
 #. type: cindex
-#: doc/guix.texi:3921
-#, no-wrap
-msgid "@command{guix pull}, configuration file"
-msgstr "@command{guix pull}, fichero de configuración"
-
-#. type: cindex
-#: doc/guix.texi:3922
-#, no-wrap
-msgid "configuration of @command{guix pull}"
-msgstr "configuración de @command{guix pull}"
-
-#. type: Plain text
-#: doc/guix.texi:3931
-msgid "Guix and its package collection are updated by running @command{guix pull} (@pxref{Invoking guix pull}).  By default @command{guix pull} downloads and deploys Guix itself from the official GNU@tie{}Guix repository.  This can be customized by defining @dfn{channels} in the @file{~/.config/guix/channels.scm} file.  A channel specifies a URL and branch of a Git repository to be deployed, and @command{guix pull} can be instructed to pull from one or more channels.  In other words, channels can be used to @emph{customize} and to @emph{extend} Guix, as we will see below."
-msgstr "Guix y su colección de paquetes son actualizados ejecutando @command{guix pull} (@pxref{Invoking guix pull}). Por defecto @command{guix pull} descarga y despliega el mismo Guix del repositorio oficial de GNU@tie{}Guix. Esto puede ser personalizado definiendo @dfn{canales} en el fichero @file{~/.config/guix/channels.scm}. Un canal especifica una URL y una rama de un repositorio Git para ser desplegado, y @command{guix pull} puede ser instruido para tomar los datos de uno o más canales. En otras palabras, los canales se pueden usar para @emph{personalizar} y para @emph{extender} Guix, como vemos a continuación."
-
-#. type: subsection
-#: doc/guix.texi:3932
-#, no-wrap
-msgid "Using a Custom Guix Channel"
-msgstr "Uso de un canal de Guix personalizado"
-
-#. type: Plain text
-#: doc/guix.texi:3939
-msgid "The channel called @code{guix} specifies where Guix itself---its command-line tools as well as its package collection---should be downloaded.  For instance, suppose you want to update from your own copy of the Guix repository at @code{example.org}, and specifically the @code{super-hacks} branch, you can write in @code{~/.config/guix/channels.scm} this specification:"
-msgstr "El canal llamado @code{guix} especifica de donde el mismo Guix---sus herramientas de línea de órdenes y su colección de paquetes---debe ser descargado. Por ejemplo, suponga que quiere actualizar de su propia copia del repositorio Guix en @code{example.org}, y específicamente la rama @code{super-hacks}, para ello puede escribir en @code{~/.config/guix/channels.scm} esta especificación:"
-
-#. type: lisp
-#: doc/guix.texi:3946
+#: doc/guix.texi:4343
 #, no-wrap
-msgid ""
-";; Tell 'guix pull' to use my own repo.\n"
-"(list (channel\n"
-"        (name 'guix)\n"
-"        (url \"https://example.org/my-guix.git\")\n"
-"        (branch \"super-hacks\")))\n"
-msgstr ""
-";; Le dice a 'guix pull' que use mi propio repositorio.\n"
-"(list (channel\n"
-"        (name 'guix)\n"
-"        (url \"https://example.org/mi-guix.git\")\n"
-"        (branch \"super-hacks\")))\n"
-
-#. type: Plain text
-#: doc/guix.texi:3951
-msgid "From there on, @command{guix pull} will fetch code from the @code{super-hacks} branch of the repository at @code{example.org}."
-msgstr "De aquí en adelante, @command{guix pull} obtendrá el código de la rama @code{super-hacks} del repositorio en @code{example.org}."
+msgid "downgrade attacks, protection against"
+msgstr "ataques de versión anterior, protección contra"
 
-#. type: subsection
-#: doc/guix.texi:3952
-#, no-wrap
-msgid "Specifying Additional Channels"
-msgstr "Especificación de canales adicionales"
-
-#. type: cindex
-#: doc/guix.texi:3954
-#, no-wrap
-msgid "extending the package collection (channels)"
-msgstr "extender la colección de paquetes (canales)"
-
-#. type: cindex
-#: doc/guix.texi:3955
-#, no-wrap
-msgid "personal packages (channels)"
-msgstr "paquetes personales (canales)"
-
-#. type: cindex
-#: doc/guix.texi:3956
-#, no-wrap
-msgid "channels, for personal packages"
-msgstr "canales, para paquetes personales"
-
-#. type: Plain text
-#: doc/guix.texi:3964
-msgid "You can also specify @emph{additional channels} to pull from.  Let's say you have a bunch of custom package variants or personal packages that you think would make little sense to contribute to the Guix project, but would like to have these packages transparently available to you at the command line.  You would first write modules containing those package definitions (@pxref{Package Modules}), maintain them in a Git repository, and then you and anyone else can use it as an additional channel to get packages from.  Neat, no?"
-msgstr "También puede especificar @emph{canales adicionales} de los que obtener datos. Digamos que tiene un montón de variaciones personalizadas de paquetes que piensa que no tiene mucho sentido contribuir al proyecto Guix, pero quiere tener esos paquetes disponibles transparentemente en su línea de órdenes. Primero escribiría módulos que contengan esas definiciones de paquete (@pxref{Package Modules}), los mantendría en un repositorio Git, y entonces usted y cualquier otra persona podría usarlos como un canal adicional del que obtener paquetes. Limpio, ¿no?"
-
-#. type: quotation
-#: doc/guix.texi:3968 doc/guix.texi:16198
-#, no-wrap
-msgid "Warning"
-msgstr "Aviso"
-
-#. type: quotation
-#: doc/guix.texi:3972
-msgid "Before you, dear user, shout---``woow this is @emph{soooo coool}!''---and publish your personal channel to the world, we would like to share a few words of caution:"
-msgstr "Antes de que, querida usuaria, grite---``¡Guau, esto es @emph{la caña}!''---y publique su canal personal al mundo, nos gustaría compartir algunas palabras de precaución:"
-
-#. type: itemize
-#: doc/guix.texi:3980
-msgid "Before publishing a channel, please consider contributing your package definitions to Guix proper (@pxref{Contributing}).  Guix as a project is open to free software of all sorts, and packages in Guix proper are readily available to all Guix users and benefit from the project's quality assurance process."
-msgstr "Antes de publicar un canal, por favor considere contribuir sus definiciones de paquete al propio Guix (@pxref{Contributing}). Guix como proyecto es abierto a software libre de todo tipo, y los paquetes en el propio Guix están disponibles para todas las usuarias de Guix y se benefician del proceso de gestión de calidad del proyecto."
-
-#. type: itemize
-#: doc/guix.texi:3989
-msgid "When you maintain package definitions outside Guix, we, Guix developers, consider that @emph{the compatibility burden is on you}.  Remember that package modules and package definitions are just Scheme code that uses various programming interfaces (APIs).  We want to remain free to change these APIs to keep improving Guix, possibly in ways that break your channel.  We never change APIs gratuitously, but we will @emph{not} commit to freezing APIs either."
-msgstr "Cuando mantiene definiciones de paquete fuera de Guix, nosotras, las desarrolladoras de Guix, consideramos que @emph{la carga de la compatibilidad cae de su lado}. Recuerde que los módulos y definiciones de paquetes son solo código Scheme que usa varias interfaces programáticas (APIs). Queremos mantener la libertad de cambiar dichas interfaces para seguir mejorando Guix, posiblemente en formas que pueden romper su canal. Nunca cambiamos las interfaces gratuitamente, pero @emph{no} vamos tampoco a congelar las interfaces."
-
-#. type: itemize
-#: doc/guix.texi:3993
-msgid "Corollary: if you're using an external channel and that channel breaks, please @emph{report the issue to the channel authors}, not to the Guix project."
-msgstr "Corolario: si está usando un canal externo y el canal se rompe, por favor @emph{informe del problema a las autoras del canal}, no al proyecto Guix."
+#. type: table
+#: doc/guix.texi:4348
+msgid "By default, @command{guix pull} protects against so-called ``downgrade attacks'' whereby the Git repository of a channel would be reset to an earlier or unrelated revision of itself, potentially leading you to install older, known-vulnerable versions of software packages."
+msgstr "De manera predeterminada @command{guix pull} proteje contra los llamados ``ataques de versión anterior'' en los que el repositorio Git de un canal se reinicia a una revisión anterior o no relacionada de sí mismo, provocando potencialmente la instalación de versiones más antiguas y con vulnerabilidades conocidas de paquetes de software."
 
 #. type: quotation
-#: doc/guix.texi:4000
-msgid "You've been warned! Having said this, we believe external channels are a practical way to exert your freedom to augment Guix' package collection and to share your improvements, which are basic tenets of @uref{https://www.gnu.org/philosophy/free-sw.html, free software}.  Please email us at @email{guix-devel@@gnu.org} if you'd like to discuss this."
-msgstr "¡Ha quedado advertida! Habiendo dicho esto, creemos que los canales externos son una forma práctica de ejercitar su libertad para aumentar la colección de paquetes de Guix y compartir su mejoras, que son pilares básicos del @uref{https://www.gnu.org/philosophy/free-sw.html, software libre}. Por favor, envíenos un correo a @email{guix-devel@@gnu.org} si quiere hablar sobre esto."
-
-#. type: Plain text
-#: doc/guix.texi:4005
-msgid "To use a channel, write @code{~/.config/guix/channels.scm} to instruct @command{guix pull} to pull from it @emph{in addition} to the default Guix channel(s):"
-msgstr "Para usar un canal, escriba en @code{~/.config/guix/channels.scm} para instruir a @command{guix pull} para obtener datos de él @emph{además} de los canales Guix predeterminados:"
-
-#. type: vindex
-#: doc/guix.texi:4006
-#, no-wrap
-msgid "%default-channels"
-msgstr "%default-channels"
+#: doc/guix.texi:4352 doc/guix.texi:31092
+msgid "Make sure you understand its security implications before using @option{--allow-downgrades}."
+msgstr "Asegúrese de entender las implicaciones de seguridad antes de usar la opción @option{--allow-downgrades}."
 
-#. type: lisp
-#: doc/guix.texi:4013
+#. type: item
+#: doc/guix.texi:4354
 #, no-wrap
-msgid ""
-";; Add my personal packages to those Guix provides.\n"
-"(cons (channel\n"
-"        (name 'my-personal-packages)\n"
-"        (url \"https://example.org/personal-packages.git\"))\n"
-"      %default-channels)\n"
-msgstr ""
-";; Añade mis paquetes personales a aquellos que Guix provee.\n"
-"(cons (channel\n"
-"        (name 'mis-paquetes-personales)\n"
-"        (url \"https://example.org/paquetes-personales.git\"))\n"
-"      %default-channels)\n"
+msgid "--disable-authentication"
+msgstr "--disable-authentication"
 
-#. type: Plain text
-#: doc/guix.texi:4023
-msgid "Note that the snippet above is (as always!)@: Scheme code; we use @code{cons} to add a channel the list of channels that the variable @code{%default-channels} is bound to (@pxref{Pairs, @code{cons} and lists,, guile, GNU Guile Reference Manual}).  With this file in place, @command{guix pull} builds not only Guix but also the package modules from your own repository.  The result in @file{~/.config/guix/current} is the union of Guix with your own package modules:"
-msgstr "Fíjese que el fragmento previo es (¡como siempre!)@: código Scheme; usamos @code{cons} para añadir un canal a la lista de canales a la que la variable @code{%default-channels} hace referencia (@pxref{Pairs, @code{cons} and lists,, guile, GNU Guile Reference Manual}). Con el fichero en este lugar, @command{guix pull} no solo construye Guix sino también los módulos de paquetes de su propio repositorio. El resultado en @file{~/.config/guix/current} es la unión de Guix con sus propios módulos de paquetes:"
-
-#. type: example
-#: doc/guix.texi:4038
-#, no-wrap
-msgid ""
-"$ guix pull --list-generations\n"
-"@dots{}\n"
-"Generation 19\tAug 27 2018 16:20:48\n"
-"  guix d894ab8\n"
-"    repository URL: https://git.savannah.gnu.org/git/guix.git\n"
-"    branch: master\n"
-"    commit: d894ab8e9bfabcefa6c49d9ba2e834dd5a73a300\n"
-"  my-personal-packages dd3df5e\n"
-"    repository URL: https://example.org/personal-packages.git\n"
-"    branch: master\n"
-"    commit: dd3df5e2c8818760a8fc0bd699e55d3b69fef2bb\n"
-"  11 new packages: my-gimp, my-emacs-with-cool-features, @dots{}\n"
-"  4 packages upgraded: emacs-racket-mode@@0.0.2-2.1b78827, @dots{}\n"
-msgstr ""
-"$ guix pull --list-generations\n"
-"@dots{}\n"
-"Generation 19\tAug 27 2018 16:20:48\n"
-"  guix d894ab8\n"
-"    repository URL: https://git.savannah.gnu.org/git/guix.git\n"
-"    branch: master\n"
-"    commit: d894ab8e9bfabcefa6c49d9ba2e834dd5a73a300\n"
-"  mis-paquetes-personales dd3df5e\n"
-"    repository URL: https://example.org/paquetes-personales.git\n"
-"    branch: master\n"
-"    commit: dd3df5e2c8818760a8fc0bd699e55d3b69fef2bb\n"
-"  11 new packages: mi-gimp, mi-emacs-con-cosas, @dots{}\n"
-"  4 packages upgraded: emacs-racket-mode@@0.0.2-2.1b78827, @dots{}\n"
+#. type: table
+#: doc/guix.texi:4356
+msgid "Allow pulling channel code without authenticating it."
+msgstr "Permite obtener código de un canal sin verificarlo."
 
 # FUZZY
-#. type: Plain text
-#: doc/guix.texi:4046
-msgid "The output of @command{guix pull} above shows that Generation@tie{}19 includes both Guix and packages from the @code{my-personal-packages} channel.  Among the new and upgraded packages that are listed, some like @code{my-gimp} and @code{my-emacs-with-cool-features} might come from @code{my-personal-packages}, while others come from the Guix default channel."
-msgstr "La salida de @command{guix pull} previa muestra que la generación@tie{}19 incluye tanto Guix como paquetes del canal @code{mis-paquetes-personales}. Entre los paquetes nuevos y actualizados que son enumerados, algunos como @code{mi-gimp} y @code{mi-emacs-con-cosas} pueden venir de @code{mis-paquetes-personales}, mientras que otros vienen del canal predeterminado de Guix."
-
-#. type: Plain text
-#: doc/guix.texi:4057
-msgid "To create a channel, create a Git repository containing your own package modules and make it available.  The repository can contain anything, but a useful channel will contain Guile modules that export packages.  Once you start using a channel, Guix will behave as if the root directory of that channel's Git repository has been added to the Guile load path (@pxref{Load Paths,,, guile, GNU Guile Reference Manual}).  For example, if your channel contains a file at @file{my-packages/my-tools.scm} that defines a Guile module, then the module will be available under the name @code{(my-packages my-tools)}, and you will be able to use it like any other module (@pxref{Modules,,, guile, GNU Guile Reference Manual})."
-msgstr "Para crear un canal, cree un repositorio Git que contenga sus propios módulos de paquetes y haga que esté disponible. El repositorio puede contener cualquier cosa, pero un canal útil contendrá módulos Guile que exportan paquetes. Una vez comience a usar un canal, Guix se comportará como si el directorio raíz del repositorio Git de dicho canal hubiese sido añadido a la ruta de carga de Guile (@pxref{Load Paths,,, guile, GNU Guile Reference Manual}). Por ejemplo, si su canal contiene un fichero en @file{mis-paquetes/mis-herramientas.scm} que define un módulo, entonces dicho módulo estará disponible bajo el nombre @code{(mis-paquetes mis-herramientas)}, y podrá usarlo como cualquier otro módulo (@pxref{Modules,,, guile, GNU Guile Reference Manual})."
-
-#. type: cindex
-#: doc/guix.texi:4058
-#, no-wrap
-msgid "dependencies, channels"
-msgstr "dependencias, canales"
-
 #. type: cindex
-#: doc/guix.texi:4059
-#, no-wrap
-msgid "meta-data, channels"
-msgstr "metadatos, canales"
-
-#. type: subsection
-#: doc/guix.texi:4060
+#: doc/guix.texi:4357 doc/guix.texi:5003
 #, no-wrap
-msgid "Declaring Channel Dependencies"
-msgstr "Declaración de dependencias de canales"
-
-#. type: Plain text
-#: doc/guix.texi:4066
-msgid "Channel authors may decide to augment a package collection provided by other channels.  They can declare their channel to be dependent on other channels in a meta-data file @file{.guix-channel}, which is to be placed in the root of the channel repository."
-msgstr "Las autoras de canales pueden decidir aumentar una colección de paquetes proporcionada por otros canales. Pueden declarar su canal como dependiente de otros canales en el fichero de metadatos @file{.guix-channel}, que debe encontrarse en la raíz del repositorio del canal."
-
-#. type: Plain text
-#: doc/guix.texi:4068
-msgid "The meta-data file should contain a simple S-expression like this:"
-msgstr "Este fichero de metadatos debe contener una expresión-S simple como esta:"
-
-#. type: lisp
-#: doc/guix.texi:4080
-#, no-wrap
-msgid ""
-"(channel\n"
-" (version 0)\n"
-" (dependencies\n"
-"  (channel\n"
-"   (name some-collection)\n"
-"   (url \"https://example.org/first-collection.git\"))\n"
-"  (channel\n"
-"   (name some-other-collection)\n"
-"   (url \"https://example.org/second-collection.git\")\n"
-"   (branch \"testing\"))))\n"
-msgstr ""
-"(channel\n"
-" (version 0)\n"
-" (dependencies\n"
-"  (channel\n"
-"   (name una-coleccion)\n"
-"   (url \"https://example.org/primera-coleccion.git\"))\n"
-"  (channel\n"
-"   (name otra-coleccion)\n"
-"   (url \"https://example.org/segunda-coleccion.git\")\n"
-"   (branch \"pruebas\"))))\n"
-
-#. type: Plain text
-#: doc/guix.texi:4086
-msgid "In the above example this channel is declared to depend on two other channels, which will both be fetched automatically.  The modules provided by the channel will be compiled in an environment where the modules of all these declared channels are available."
-msgstr "En el ejemplo previo, este canal se declara como dependiente de otros dos canales, que se obtendrán de manera automática. Los módulos proporcionados por el canal se compilarán en un entorno donde los módulos de todos estos canales declarados estén disponibles."
-
-#. type: Plain text
-#: doc/guix.texi:4090
-msgid "For the sake of reliability and maintainability, you should avoid dependencies on channels that you don't control, and you should aim to keep the number of dependencies to a minimum."
-msgstr "De cara a la confianza proporcionada y el esfuerzo que supondrá su mantenimiento, debería evitar depender de canales que no controle, y debería intentar minimizar el número de dependencias."
+msgid "authentication, of channel code"
+msgstr "verificación, del código de un canal"
 
-#. type: cindex
-#: doc/guix.texi:4091
-#, no-wrap
-msgid "subdirectory, channels"
-msgstr "subdirectorio, canales"
-
-#. type: subsection
-#: doc/guix.texi:4092
-#, no-wrap
-msgid "Package Modules in a Sub-directory"
-msgstr "Módulos de paquetes en un subdirectorio"
-
-#. type: Plain text
-#: doc/guix.texi:4097
-msgid "As a channel author, you may want to keep your channel modules in a sub-directory.  If your modules are in the sub-directory @file{guix}, you must add a meta-data file @file{.guix-channel} that contains:"
-msgstr "Como autora de un canal, es posible que desee mantener los módulos de su canal en un subdirectorio. Si sus módulos se encuentran en el subdirectorio @file{guix}, debe añadir un fichero @file{.guix-channel} de metadatos que contenga:"
-
-#. type: lisp
-#: doc/guix.texi:4102
-#, no-wrap
-msgid ""
-"(channel\n"
-"  (version 0)\n"
-"  (directory \"guix\"))\n"
-msgstr ""
-"(channel\n"
-"  (version 0)\n"
-"  (directory \"guix\"))\n"
-
-#. type: cindex
-#: doc/guix.texi:4104
-#, no-wrap
-msgid "news, for channels"
-msgstr "noticias, para canales"
-
-#. type: subsection
-#: doc/guix.texi:4105
-#, no-wrap
-msgid "Writing Channel News"
-msgstr "Escritura de noticias del canal"
-
-#. type: Plain text
-#: doc/guix.texi:4110
-msgid "Channel authors may occasionally want to communicate to their users information about important changes in the channel.  You'd send them all an email, but that's not convenient."
-msgstr "Las autoras los canales pueden querer ocasionalmente comunicar información a sus usuarias acerca de cambios importantes en el canal. Podrían mandar un correo a todo el mundo, pero esto no es tan conveniente."
-
-#. type: Plain text
-#: doc/guix.texi:4115
-msgid "Instead, channels can provide a @dfn{news file}; when the channel users run @command{guix pull}, that news file is automatically read and @command{guix pull --news} can display the announcements that correspond to the new commits that have been pulled, if any."
-msgstr "En vez de eso, los canales proporcionan un @dfn{fichero de noticias}; cuando las usuarias de un canal ejecutan @command{guix pull}, dicho fichero de noticias se lee automáticamente y @command{guix pull --news} puede mostrar los anuncios que correspondan a las nuevas revisiones que se han obtenido, si existen."
+#. type: table
+#: doc/guix.texi:4362
+msgid "By default, @command{guix pull} authenticates code downloaded from channels by verifying that its commits are signed by authorized developers, and raises an error if this is not the case.  This option instructs it to not perform any such verification."
+msgstr "De manera predeterminada, @command{guix pull} valida el código que descarga de los canales verificando que sus revisiones están firmadas por desarrolladoras autorizadas, y emite un error si no es el caso. Esta opción le indica que no debe realizar ninguna de esas verificaciones."
 
-#. type: Plain text
-#: doc/guix.texi:4118
-msgid "To do that, channel authors must first declare the name of the news file in their @file{.guix-channel} file:"
-msgstr "Para hacerlo, las autoras del canal deben declarar primero el nombre del fichero de noticias en su fichero @file{.guix-channel}:"
+#. type: quotation
+#: doc/guix.texi:4366
+msgid "Make sure you understand its security implications before using @option{--disable-authentication}."
+msgstr "Asegúrese de entender las implicaciones de seguridad antes de usar la opción @option{--disable-authentication}."
 
-#. type: lisp
-#: doc/guix.texi:4123
+#. type: itemx
+#: doc/guix.texi:4369 doc/guix.texi:5637 doc/guix.texi:6008
+#: doc/guix.texi:10444 doc/guix.texi:11850 doc/guix.texi:12101
+#: doc/guix.texi:12757 doc/guix.texi:31007
 #, no-wrap
-msgid ""
-"(channel\n"
-"  (version 0)\n"
-"  (news-file \"etc/news.txt\"))\n"
-msgstr ""
-"(channel\n"
-"  (version 0)\n"
-"  (news-file \"etc/noticias.txt\"))\n"
-
-#. type: Plain text
-#: doc/guix.texi:4127
-msgid "The news file itself, @file{etc/news.txt} in this example, must look something like this:"
-msgstr "El fichero de noticias en sí, @file{etc/noticias.txt} en este ejemplo, debe ser similar a este:"
+msgid "-s @var{system}"
+msgstr "-s @var{sistema}"
 
-#. type: lisp
-#: doc/guix.texi:4140
-#, no-wrap
-msgid ""
-"(channel-news\n"
-"  (version 0)\n"
-"  (entry (tag \"the-bug-fix\")\n"
-"         (title (en \"Fixed terrible bug\")\n"
-"                (fr \"Oh la la\"))\n"
-"         (body (en \"@@emph@{Good news@}!  It's fixed!\")\n"
-"               (eo \"Certe ĝi pli bone funkcias nun!\")))\n"
-"  (entry (commit \"bdcabe815cd28144a2d2b4bc3c5057b051fa9906\")\n"
-"         (title (en \"Added a great package\")\n"
-"                (ca \"Què vol dir guix?\"))\n"
-"         (body (en \"Don't miss the @@code@{hello@} package!\"))))\n"
-msgstr ""
-"(channel-news\n"
-"  (version 0)\n"
-"  (entry (tag \"the-bug-fix\")\n"
-"         (title (en \"Fixed terrible bug\")\n"
-"                (fr \"Oh la la\")\n"
-"                (es \"Podemos volver a dormir en calma\"))\n"
-"         (body (en \"@@emph@{Good news@}!  It's fixed!\")\n"
-"               (eo \"Certe ĝi pli bone funkcias nun!\")\n"
-"               (es \"¡Al fin se ha corregido el error!\")))\n"
-"  (entry (commit \"bdcabe815cd28144a2d2b4bc3c5057b051fa9906\")\n"
-"         (title (en \"Added a great package\")\n"
-"                (ca \"Què vol dir guix?\")\n"
-"                (ca \"Nuevo paquete añadido\"))\n"
-"         (body (en \"Don't miss the @@code@{hello@} package!\")\n"
-"               (es \"Atención a la versátil herramienta @@code@{hello@}\"))))\n"
+#. type: table
+#: doc/guix.texi:4372 doc/guix.texi:6011
+msgid "Attempt to build for @var{system}---e.g., @code{i686-linux}---instead of the system type of the build host."
+msgstr "Intenta construir paquetes para @var{sistema}---por ejemplo, @code{x86_64-linux}---en vez del tipo de sistema de la máquina de construcción."
 
-#. type: Plain text
-#: doc/guix.texi:4146
-msgid "The file consists of a list of @dfn{news entries}.  Each entry is associated with a commit or tag: it describes changes made in this commit, possibly in preceding commits as well.  Users see entries only the first time they obtain the commit the entry refers to."
-msgstr "Este fichero consiste en una lista de @dfn{entradas de noticias}. Cada entrada@footnote{NdT: ``entry'' en inglés} se asocia a una revisión o una etiqueta: describe los cambios llevados a cabo en ella, y posiblemente también en revisiones anteriores. Las usuarias ven las entradas únicamente la primera vez que obtienen la revisión a la que la entrada hace referencia."
+#. type: table
+#: doc/guix.texi:4376
+msgid "Use the bootstrap Guile to build the latest Guix.  This option is only useful to Guix developers."
+msgstr "Use el Guile usado para el lanzamiento para construir el último Guix. Esta opción es útil para las desarrolladoras de Guix únicamente."
 
 #. type: Plain text
-#: doc/guix.texi:4152
-msgid "The @code{title} field should be a one-line summary while @code{body} can be arbitrarily long, and both can contain Texinfo markup (@pxref{Overview,,, texinfo, GNU Texinfo}).  Both the title and body are a list of language tag/message tuples, which allows @command{guix pull} to display news in the language that corresponds to the user's locale."
-msgstr "El campo del título (@code{title}) debe ser un resumen de una línea mientras que el cuerpo de la noticia (@code{body}) puede ser arbitrariamente largo, y ambos pueden contener marcas de Texinfo (@pxref{Overview,,, texinfo, GNU Texinfo}). Tanto el título como el cuerpo son una lista de tuplas de etiqueta de lengua y mensaje, lo que permite a @command{guix pull} mostrar las noticias en la lengua que corresponde a la localización de la usuaria."
+#: doc/guix.texi:4382
+msgid "The @dfn{channel} mechanism allows you to instruct @command{guix pull} which repository and branch to pull from, as well as @emph{additional} repositories containing package modules that should be deployed.  @xref{Channels}, for more information."
+msgstr "El mecanismo de @dfn{canales} le permite instruir a @command{guix pull} de qué repositorio y rama obtener los datos, así como repositorios @emph{adicionales} que contengan módulos de paquetes que deben ser desplegados. @xref{Channels}, para más información."
 
 #. type: Plain text
-#: doc/guix.texi:4158
-msgid "If you want to translate news using a gettext-based workflow, you can extract translatable strings with @command{xgettext} (@pxref{xgettext Invocation,,, gettext, GNU Gettext Utilities}).  For example, assuming you write news entries in English first, the command below creates a PO file containing the strings to translate:"
-msgstr "Si desea traducir las noticias siguiendo un flujo de trabajo basado en gettext, puede extraer las cadenas traducibles con @command{xgettext} (@pxref{xgettext Invocation,,, gettext, GNU Gettext Utilities}). Por ejemplo, asumiendo que escribe las entradas de noticias primero en inglés, la siguiente orden crea un fichero PO que contiene las cadenas a traducir:"
+#: doc/guix.texi:4385
+msgid "In addition, @command{guix pull} supports all the common build options (@pxref{Common Build Options})."
+msgstr "Además, @command{guix pull} acepta todas las opciones de construcción comunes (@pxref{Common Build Options})."
 
-#. type: example
-#: doc/guix.texi:4161
+#. type: section
+#: doc/guix.texi:4387
 #, no-wrap
-msgid "xgettext -o news.po -l scheme -ken etc/news.scm\n"
-msgstr "xgettext -o news.po -l scheme -ken etc/news.scm\n"
-
-# FUZZY
-#. type: Plain text
-#: doc/guix.texi:4165
-msgid "To sum up, yes, you could use your channel as a blog.  But beware, this is @emph{not quite} what your users might expect."
-msgstr "En resumen, sí, puede usar su canal como un blog. Pero tenga en cuenta que esto puede que @emph{no sea exactamente} lo que sus usuarias podrían esperar."
+msgid "Invoking @command{guix time-machine}"
+msgstr "Invocación de @command{guix time-machine}"
 
-#. type: subsection
-#: doc/guix.texi:4166
+#. type: command{#1}
+#: doc/guix.texi:4389
 #, no-wrap
-msgid "Replicating Guix"
-msgstr "Replicación de Guix"
+msgid "guix time-machine"
+msgstr "guix time-machine"
 
 #. type: cindex
-#: doc/guix.texi:4168 doc/guix.texi:4210
+#: doc/guix.texi:4390 doc/guix.texi:4961
 #, no-wrap
 msgid "pinning, channels"
 msgstr "clavar, canales"
 
 #. type: cindex
-#: doc/guix.texi:4169 doc/guix.texi:4211 doc/guix.texi:4393
+#: doc/guix.texi:4391 doc/guix.texi:4573 doc/guix.texi:4962
 #, no-wrap
 msgid "replicating Guix"
 msgstr "replicar Guix"
 
 #. type: cindex
-#: doc/guix.texi:4170 doc/guix.texi:4212
+#: doc/guix.texi:4392 doc/guix.texi:4963
 #, no-wrap
 msgid "reproducibility, of Guix"
 msgstr "reproducibilidad, de Guix"
 
 #. type: Plain text
-#: doc/guix.texi:4175
-msgid "The @command{guix pull --list-generations} output above shows precisely which commits were used to build this instance of Guix.  We can thus replicate it, say, on another machine, by providing a channel specification in @file{~/.config/guix/channels.scm} that is ``pinned'' to these commits:"
-msgstr "La salida de @command{guix pull --list-generations} previa muestra precisamente qué revisiones se usaron para construir esta instancia de Guix. Por tanto podemos replicarla, digamos, en otra máquina, proporcionando una especificaciones de canales en @file{~/.config/guix/channels.scm} que está ``clavada'' en estas revisiones:"
-
-#. type: lisp
-#: doc/guix.texi:4186
-#, no-wrap
-msgid ""
-";; Deploy specific commits of my channels of interest.\n"
-"(list (channel\n"
-"       (name 'guix)\n"
-"       (url \"https://git.savannah.gnu.org/git/guix.git\")\n"
-"       (commit \"d894ab8e9bfabcefa6c49d9ba2e834dd5a73a300\"))\n"
-"      (channel\n"
-"       (name 'my-personal-packages)\n"
-"       (url \"https://example.org/personal-packages.git\")\n"
-"       (commit \"dd3df5e2c8818760a8fc0bd699e55d3b69fef2bb\")))\n"
-msgstr ""
-";; Despliega unas revisiones específicas de mis canales de interés.\n"
-"(list (channel\n"
-"       (name 'guix)\n"
-"       (url \"https://git.savannah.gnu.org/git/guix.git\")\n"
-"       (commit \"d894ab8e9bfabcefa6c49d9ba2e834dd5a73a300\"))\n"
-"      (channel\n"
-"       (name 'mis-paquetes-personales)\n"
-"       (url \"https://example.org/paquetes-personales.git\")\n"
-"       (branch \"dd3df5e2c8818760a8fc0bd699e55d3b69fef2bb\")))\n"
-
-#. type: Plain text
-#: doc/guix.texi:4193
-msgid "The @command{guix describe --format=channels} command can even generate this list of channels directly (@pxref{Invoking guix describe}).  The resulting file can be used with the -C options of @command{guix pull} (@pxref{Invoking guix pull}) or @command{guix time-machine} (@pxref{Invoking guix time-machine})."
-msgstr "La orden @command{guix describe --format=channels} puede incluso generar esta lista de canales directamente (@pxref{Invoking guix describe}). El fichero resultante puede usarse con la opción -C de @command{guix pull} (@pxref{Invoking guix pull}) o @command{guix time-machine} (@pxref{Invoking guix time-machine})."
-
-#. type: Plain text
-#: doc/guix.texi:4200
-msgid "At this point the two machines run the @emph{exact same Guix}, with access to the @emph{exact same packages}.  The output of @command{guix build gimp} on one machine will be exactly the same, bit for bit, as the output of the same command on the other machine.  It also means both machines have access to all the source code of Guix and, transitively, to all the source code of every package it defines."
-msgstr "En este punto las dos máquinas ejecutan @emph{exactamente el mismo Guix}, con acceso a @emph{exactamente los mismos paquetes}. La salida de @command{guix build gimp} en una máquina debe ser exactamente la misma, bit a bit, que la salida de la misma orden en la otra máquina. Esto también significa que ambas máquinas tienen acceso a todo el código fuente de Guix y, transitivamente, a todo el código fuente de cada paquete que define."
-
-#. type: Plain text
-#: doc/guix.texi:4205
-msgid "This gives you super powers, allowing you to track the provenance of binary artifacts with very fine grain, and to reproduce software environments at will---some sort of ``meta reproducibility'' capabilities, if you will.  @xref{Inferiors}, for another way to take advantage of these super powers."
-msgstr "Esto le proporciona superpoderes, lo que le permite seguir la pista de la procedencia de los artefactos binarios con un grano muy fino, y reproducir entornos de software a su voluntad---un tipo de capacidad de ``meta-reproducibilidad'', si lo desea. @xref{Inferiors}, para otro modo de tomar ventaja de estos superpoderes."
-
-#. type: section
-#: doc/guix.texi:4207
-#, no-wrap
-msgid "Invoking @command{guix time-machine}"
-msgstr "Invocación de @command{guix time-machine}"
-
-#. type: command{#1}
-#: doc/guix.texi:4209
-#, no-wrap
-msgid "guix time-machine"
-msgstr "guix time-machine"
-
-#. type: Plain text
-#: doc/guix.texi:4220
+#: doc/guix.texi:4400
 msgid "The @command{guix time-machine} command provides access to other revisions of Guix, for example to install older versions of packages, or to reproduce a computation in an identical environment.  The revision of Guix to be used is defined by a commit or by a channel description file created by @command{guix describe} (@pxref{Invoking guix describe})."
-msgstr "La orden @command{guix time-machine} proporciona acceso a otras revisiones de Guix, por ejemplo para instalar versiones antiguas de un paquete, o para reproducir una computación en un entorno idéntico. La revisión de Guix que se usará se define por el identificador de una revisión o por un fichero de descripción de canales creado con @command{guix describe} (@pxref{Invoking guix describe})."
+msgstr "La orden @command{guix time-machine} proporciona acceso a otras revisiones de Guix, por ejemplo para instalar versiones antiguas de un paquete, o para reproducir una computación en un entorno idéntico. La revisión de Guix que se usará se define por el identificador de una revisión o por un archivo de descripción de canales creado con @command{guix describe} (@pxref{Invoking guix describe})."
 
 #. type: Plain text
-#: doc/guix.texi:4222 doc/guix.texi:4681 doc/guix.texi:8180 doc/guix.texi:8922
-#: doc/guix.texi:8989 doc/guix.texi:9846 doc/guix.texi:10253
-#: doc/guix.texi:10592 doc/guix.texi:10681 doc/guix.texi:10720
-#: doc/guix.texi:10817
+#: doc/guix.texi:4402 doc/guix.texi:5392 doc/guix.texi:6131 doc/guix.texi:9747
+#: doc/guix.texi:9870 doc/guix.texi:10735 doc/guix.texi:10812
+#: doc/guix.texi:11680 doc/guix.texi:12154 doc/guix.texi:12511
+#: doc/guix.texi:12600 doc/guix.texi:12639 doc/guix.texi:12736
 msgid "The general syntax is:"
 msgstr "La sintaxis general es:"
 
 #. type: example
-#: doc/guix.texi:4225
+#: doc/guix.texi:4405
 #, no-wrap
 msgid "guix time-machine @var{options}@dots{} -- @var{command} @var {arg}@dots{}\n"
 msgstr "guix time-machine @var{opciones}@dots{} -- @var{orden} @var{param}@dots{}\n"
 
 #. type: Plain text
-#: doc/guix.texi:4230
+#: doc/guix.texi:4410
 msgid "where @var{command} and @var{arg}@dots{} are passed unmodified to the @command{guix} command of the specified revision.  The @var{options} that define this revision are the same as for @command{guix pull} (@pxref{Invoking guix pull}):"
 msgstr "donde @var{orden} and @var{param}@dots{} se proporcionan sin modificar a la orden @command{guix} de la revisión especificada. Las @var{opciones} que definen esta revisión son las mismas que se usan con @command{guix pull} (@pxref{Invoking guix pull}):"
 
 #. type: table
-#: doc/guix.texi:4238
+#: doc/guix.texi:4418
 msgid "Use the @code{guix} channel from the specified @var{url}, at the given @var{commit} (a valid Git commit ID represented as a hexadecimal string), or @var{branch}."
 msgstr "Usa el canal @code{guix} de la @var{url} especificada, en la @var{revisión} proporcionada (un ID de revisión Git representada como una cadena hexadecimal), o @var{rama}."
 
 #. type: table
-#: doc/guix.texi:4244
+#: doc/guix.texi:4424
 msgid "Read the list of channels from @var{file}.  @var{file} must contain Scheme code that evaluates to a list of channel objects.  @xref{Channels} for more information."
-msgstr "Lee la lista de canales de @var{fichero}. @var{fichero} debe contener código Scheme que evalúe a una lista de objetos ``channel''. @xref{Channels}, para más información."
+msgstr "Lee la lista de canales de @var{archivo}. @var{archivo} debe contener código Scheme que evalúe a una lista de objetos ``channel''. @xref{Channels}, para más información."
 
 #. type: Plain text
-#: doc/guix.texi:4248
-msgid "As for @command{guix pull}, the absence of any options means that the the latest commit on the master branch will be used. The command"
+#: doc/guix.texi:4428
+msgid "As for @command{guix pull}, the absence of any options means that the latest commit on the master branch will be used. The command"
 msgstr "Como con @command{guix pull}, la ausencia de opciones significa que se usará la última revisión de la rama master. Por tanto la orden"
 
 #. type: example
-#: doc/guix.texi:4251
+#: doc/guix.texi:4431
 #, no-wrap
 msgid "guix time-machine -- build hello\n"
 msgstr "guix time-machine -- build hello\n"
 
 #. type: Plain text
-#: doc/guix.texi:4256
+#: doc/guix.texi:4436
 msgid "will thus build the package @code{hello} as defined in the master branch, which is in general a newer revision of Guix than you have installed.  Time travel works in both directions!"
 msgstr "construirá el paquete @code{hello} como esté definido en la rama master, que en general es la última revisión de Guix que haya instalado. ¡Los viajes temporales funcionan en ambas direcciones!"
 
 #. type: Plain text
-#: doc/guix.texi:4260
+#: doc/guix.texi:4440
 msgid "Note that @command{guix time-machine} can trigger builds of channels and their dependencies, and these are controlled by the standard build options (@pxref{Common Build Options})."
 msgstr "Tenga en cuenta que @command{guix time-machine} puede desencadenar construcciones de canales y sus dependencias, y que pueden controlarse mediante las opciones de construcción estándar (@pxref{Common Build Options})."
 
 #. type: quotation
-#: doc/guix.texi:4268
+#: doc/guix.texi:4448
 msgid "The functionality described here is a ``technology preview'' as of version @value{VERSION}.  As such, the interface is subject to change."
 msgstr "La funcionalidad descrita aquí es una ``versión de evaluación tecnológica'' en la versión @value{VERSION}. Como tal, la interfaz está sujeta a cambios."
 
 #. type: cindex
-#: doc/guix.texi:4270 doc/guix.texi:8094
+#: doc/guix.texi:4450 doc/guix.texi:9784
 #, no-wrap
 msgid "inferiors"
 msgstr "inferiores"
 
 #. type: cindex
-#: doc/guix.texi:4271
+#: doc/guix.texi:4451
 #, no-wrap
 msgid "composition of Guix revisions"
 msgstr "composición de revisiones de Guix"
 
 #. type: Plain text
-#: doc/guix.texi:4276
+#: doc/guix.texi:4456
 msgid "Sometimes you might need to mix packages from the revision of Guix you're currently running with packages available in a different revision of Guix.  Guix @dfn{inferiors} allow you to achieve that by composing different Guix revisions in arbitrary ways."
 msgstr "A veces necesita mezclar paquetes de revisiones de la revisión de Guix que está ejecutando actualmente con paquetes disponibles en una revisión diferente. Los @dfn{inferiores} de Guix le permiten conseguirlo componiendo diferentes revisiones de Guix de modo arbitrario."
 
 #. type: cindex
-#: doc/guix.texi:4277 doc/guix.texi:4342
+#: doc/guix.texi:4457 doc/guix.texi:4522
 #, no-wrap
 msgid "inferior packages"
 msgstr "paquetes inferiores"
 
 #. type: Plain text
-#: doc/guix.texi:4283
+#: doc/guix.texi:4463
 msgid "Technically, an ``inferior'' is essentially a separate Guix process connected to your main Guix process through a REPL (@pxref{Invoking guix repl}).  The @code{(guix inferior)} module allows you to create inferiors and to communicate with them.  It also provides a high-level interface to browse and manipulate the packages that an inferior provides---@dfn{inferior packages}."
 msgstr "Técnicamente, un ``inferior'' es esencialmente un proceso Guix separado conectado con su Guix principal a través de una sesión interactiva (@pxref{Invoking guix repl}). El módulo @code{(guix inferior)} le permite crear inferiores y comunicarse con ellos. También proporciona una interfaz de alto nivel para buscar y manipular los paquetes que un inferior proporciona---@dfn{paquetes de inferiores}."
 
 #. type: Plain text
-#: doc/guix.texi:4293
+#: doc/guix.texi:4473
 msgid "When combined with channels (@pxref{Channels}), inferiors provide a simple way to interact with a separate revision of Guix.  For example, let's assume you want to install in your profile the current @code{guile} package, along with the @code{guile-json} as it existed in an older revision of Guix---perhaps because the newer @code{guile-json} has an incompatible API and you want to run your code against the old API@.  To do that, you could write a manifest for use by @code{guix package --manifest} (@pxref{Invoking guix package}); in that manifest, you would create an inferior for that old Guix revision you care about, and you would look up the @code{guile-json} package in the inferior:"
 msgstr "Cuando se combina con los canales (@pxref{Channels}), los inferiores proporcionan una forma simple de interactuar con una revisión separada de Guix. Por ejemplo, asumamos que desea instalar en su perfil el paquete @code{guile} actual, junto al paquete @code{guile-json} como existía en una revisión más antigua de Guix---quizá porque las versiones nuevas de @code{guile-json} tienen un API incompatible y quiere ejecutar su código contra la API antigua. Para hacerlo, puede escribir un manifiesto para usarlo con @code{guix package --manifest} (@pxref{Invoking guix package}); en dicho manifiesto puede crear un inferior para esa versión antigua de Guix que le interesa, y buscará el paquete @code{guile-json} en el inferior:"
 
 #. type: lisp
-#: doc/guix.texi:4297
+#: doc/guix.texi:4477
 #, no-wrap
 msgid ""
 "(use-modules (guix inferior) (guix channels)\n"
@@ -9696,7 +10358,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:4306
+#: doc/guix.texi:4486
 #, no-wrap
 msgid ""
 "(define channels\n"
@@ -9720,7 +10382,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:4310
+#: doc/guix.texi:4490
 #, no-wrap
 msgid ""
 "(define inferior\n"
@@ -9734,7 +10396,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:4316
+#: doc/guix.texi:4496
 #, no-wrap
 msgid ""
 ";; Now create a manifest with the current \"guile\" package\n"
@@ -9750,160 +10412,160 @@ msgstr ""
 "       (specification->package \"guile\")))\n"
 
 #. type: Plain text
-#: doc/guix.texi:4321
+#: doc/guix.texi:4501
 msgid "On its first run, @command{guix package --manifest} might have to build the channel you specified before it can create the inferior; subsequent runs will be much faster because the Guix revision will be cached."
 msgstr "En su primera ejecución, @command{guix package --manifest} puede tener que construir el canal que especificó antes de crear el inferior; las siguientes ejecuciones serán mucho más rápidas porque la revisión de Guix estará en la caché."
 
 #. type: Plain text
-#: doc/guix.texi:4324
+#: doc/guix.texi:4504
 msgid "The @code{(guix inferior)} module provides the following procedures to open an inferior:"
 msgstr "El módulo @code{(guix inferior)} proporciona los siguientes procedimientos para abrir un inferior:"
 
 #. type: deffn
-#: doc/guix.texi:4325
+#: doc/guix.texi:4505
 #, no-wrap
 msgid "{Scheme Procedure} inferior-for-channels @var{channels} @"
 msgstr "{Procedimiento Scheme} inferior-for-channels @var{canales} @"
 
 #. type: deffn
-#: doc/guix.texi:4330
+#: doc/guix.texi:4510
 msgid "[#:cache-directory] [#:ttl] Return an inferior for @var{channels}, a list of channels.  Use the cache at @var{cache-directory}, where entries can be reclaimed after @var{ttl} seconds.  This procedure opens a new connection to the build daemon."
 msgstr ""
 "[#:cache-directory] [#:ttl]\n"
 "Devuelve un inferior para @var{canales}, una lista de canales. Usa la caché en @var{cache-directory}, donde las entradas pueden ser reclamadas después de @var{ttl} segundos. Este procedimiento abre una nueva conexión al daemon de construcción."
 
 #. type: deffn
-#: doc/guix.texi:4333
+#: doc/guix.texi:4513
 msgid "As a side effect, this procedure may build or substitute binaries for @var{channels}, which can take time."
 msgstr "Como efecto secundario, este procedimiento puede construir o sustituir binarios para @var{canales}, lo cual puede tomar cierto tiempo."
 
 #. type: deffn
-#: doc/guix.texi:4335
+#: doc/guix.texi:4515
 #, no-wrap
 msgid "{Scheme Procedure} open-inferior @var{directory} @"
 msgstr "{Procedimiento Scheme} open-inferior @var{directorio} @"
 
 #. type: deffn
-#: doc/guix.texi:4340
+#: doc/guix.texi:4520
 msgid "[#:command \"bin/guix\"] Open the inferior Guix in @var{directory}, running @code{@var{directory}/@var{command} repl} or equivalent.  Return @code{#f} if the inferior could not be launched."
 msgstr ""
 "[#:command \"bin/guix\"]\n"
 "Abre el Guix inferior en @var{directorio}, ejecutando @code{@var{directorio}/@var{command} repl} o su equivalente. Devuelve @code{#f} si el inferior no pudo ser ejecutado."
 
 #. type: Plain text
-#: doc/guix.texi:4345
+#: doc/guix.texi:4525
 msgid "The procedures listed below allow you to obtain and manipulate inferior packages."
 msgstr "Los procedimientos enumerados a continuación le permiten obtener y manipular paquetes de inferiores."
 
 #. type: deffn
-#: doc/guix.texi:4346
+#: doc/guix.texi:4526
 #, no-wrap
 msgid "{Scheme Procedure} inferior-packages @var{inferior}"
 msgstr "{Procedimiento Scheme} inferior-packages @var{inferior}"
 
 #. type: deffn
-#: doc/guix.texi:4348
+#: doc/guix.texi:4528
 msgid "Return the list of packages known to @var{inferior}."
 msgstr "Devuelve la lista de paquetes conocida por @var{inferior}."
 
 #. type: deffn
-#: doc/guix.texi:4350
+#: doc/guix.texi:4530
 #, no-wrap
 msgid "{Scheme Procedure} lookup-inferior-packages @var{inferior} @var{name} @"
 msgstr "{Procedimiento Scheme} lookup-inferior-packages @var{inferior} @var{nombre} @"
 
 #. type: deffn
-#: doc/guix.texi:4355
+#: doc/guix.texi:4535
 msgid "[@var{version}] Return the sorted list of inferior packages matching @var{name} in @var{inferior}, with highest version numbers first.  If @var{version} is true, return only packages with a version number prefixed by @var{version}."
 msgstr ""
 "[@var{versión}]\n"
 "Devuelve la lista ordenada de paquetes del inferior que corresponden con @var{nombre} en @var{inferior}, con los números de versión más altos primero. Si @var{versión} tiene un valor verdadero, devuelve únicamente paquetes con un número de versión cuyo prefijo es @var{versión}."
 
 #. type: deffn
-#: doc/guix.texi:4357
+#: doc/guix.texi:4537
 #, no-wrap
 msgid "{Scheme Procedure} inferior-package? @var{obj}"
 msgstr "{Procedimiento Scheme} inferior-package? @var{obj}"
 
 #. type: deffn
-#: doc/guix.texi:4359
+#: doc/guix.texi:4539
 msgid "Return true if @var{obj} is an inferior package."
 msgstr "Devuelve verdadero si @var{obj} es un paquete inferior."
 
 #. type: deffn
-#: doc/guix.texi:4361
+#: doc/guix.texi:4541
 #, no-wrap
 msgid "{Scheme Procedure} inferior-package-name @var{package}"
 msgstr "{Procedimiento Scheme} inferior-package-name @var{paquete}"
 
 #. type: deffnx
-#: doc/guix.texi:4362
+#: doc/guix.texi:4542
 #, no-wrap
 msgid "{Scheme Procedure} inferior-package-version @var{package}"
 msgstr "{Procedimiento Scheme} inferior-package-version @var{paquete}"
 
 #. type: deffnx
-#: doc/guix.texi:4363
+#: doc/guix.texi:4543
 #, no-wrap
 msgid "{Scheme Procedure} inferior-package-synopsis @var{package}"
 msgstr "{Procedimiento Scheme} inferior-package-synopsis @var{paquete}"
 
 #. type: deffnx
-#: doc/guix.texi:4364
+#: doc/guix.texi:4544
 #, no-wrap
 msgid "{Scheme Procedure} inferior-package-description @var{package}"
 msgstr "{Procedimiento Scheme} inferior-package-description @var{paquete}"
 
 #. type: deffnx
-#: doc/guix.texi:4365
+#: doc/guix.texi:4545
 #, no-wrap
 msgid "{Scheme Procedure} inferior-package-home-page @var{package}"
 msgstr "{Procedimiento Scheme} inferior-package-home-page @var{paquete}"
 
 #. type: deffnx
-#: doc/guix.texi:4366
+#: doc/guix.texi:4546
 #, no-wrap
 msgid "{Scheme Procedure} inferior-package-location @var{package}"
 msgstr "{Procedimiento Scheme} inferior-package-location @var{paquete}"
 
 #. type: deffnx
-#: doc/guix.texi:4367
+#: doc/guix.texi:4547
 #, no-wrap
 msgid "{Scheme Procedure} inferior-package-inputs @var{package}"
 msgstr "{Procedimiento Scheme} inferior-package-inputs @var{paquete}"
 
 #. type: deffnx
-#: doc/guix.texi:4368
+#: doc/guix.texi:4548
 #, no-wrap
 msgid "{Scheme Procedure} inferior-package-native-inputs @var{package}"
 msgstr "{Procedimiento Scheme} inferior-package-native-inputs @var{paquete}"
 
 #. type: deffnx
-#: doc/guix.texi:4369
+#: doc/guix.texi:4549
 #, no-wrap
 msgid "{Scheme Procedure} inferior-package-propagated-inputs @var{package}"
 msgstr "{Procedimiento Scheme} inferior-package-propagated-inputs @var{paquete}"
 
 #. type: deffnx
-#: doc/guix.texi:4370
+#: doc/guix.texi:4550
 #, no-wrap
 msgid "{Scheme Procedure} inferior-package-transitive-propagated-inputs @var{package}"
 msgstr "{Procedimiento Scheme} inferior-package-transitive-propagated-inputs @var{paquete}"
 
 #. type: deffnx
-#: doc/guix.texi:4371
+#: doc/guix.texi:4551
 #, no-wrap
 msgid "{Scheme Procedure} inferior-package-native-search-paths @var{package}"
 msgstr "{Procedimiento Scheme} inferior-package-native-search-paths @var{paquete}"
 
 #. type: deffnx
-#: doc/guix.texi:4372
+#: doc/guix.texi:4552
 #, no-wrap
 msgid "{Scheme Procedure} inferior-package-transitive-native-search-paths @var{package}"
 msgstr "{Procedimiento Scheme} inferior-package-transitive-native-search-paths @var{paquete}"
 
 #. type: deffnx
-#: doc/guix.texi:4373
+#: doc/guix.texi:4553
 #, no-wrap
 msgid "{Scheme Procedure} inferior-package-search-paths @var{package}"
 msgstr "{Procedimiento Scheme} inferior-package-search-paths @var{paquete}"
@@ -9911,33 +10573,33 @@ msgstr "{Procedimiento Scheme} inferior-package-search-paths @var{paquete}"
 # FUZZY
 # TODO: contraparte
 #. type: deffn
-#: doc/guix.texi:4378
+#: doc/guix.texi:4558
 msgid "These procedures are the counterpart of package record accessors (@pxref{package Reference}).  Most of them work by querying the inferior @var{package} comes from, so the inferior must still be live when you call these procedures."
 msgstr "Estos procedimientos son la contraparte de los accesos a los registros de paquete (@pxref{package Reference}). La mayor parte funcionan interrogando al inferior del que @var{paquete} viene, por lo que el inferior debe estar vivo cuando llama a dichos procedimientos."
 
 #. type: Plain text
-#: doc/guix.texi:4388
+#: doc/guix.texi:4568
 msgid "Inferior packages can be used transparently like any other package or file-like object in G-expressions (@pxref{G-Expressions}).  They are also transparently handled by the @code{packages->manifest} procedure, which is commonly use in manifests (@pxref{Invoking guix package, the @option{--manifest} option of @command{guix package}}).  Thus you can insert an inferior package pretty much anywhere you would insert a regular package: in manifests, in the @code{packages} field of your @code{operating-system} declaration, and so on."
-msgstr "Los paquetes de inferiores pueden ser usados transparentemente como cualquier otro paquete u objeto-tipo-fichero en expresiones-G (@pxref{G-Expressions}). También se manejan transparentemente por el procedimiento @code{packages->manifest}, el cual se usa habitualmente en los manifiestos (@pxref{Invoking guix package, the @option{--manifest} option of @command{guix package}}). Por tanto puede insertar un paquete de inferior prácticamente en cualquier lugar que pueda insertar un paquete normal: en manifiestos, en el campo @code{packages} de su declaración @code{operating-system}, etcétera."
+msgstr "Los paquetes de inferiores pueden ser usados transparentemente como cualquier otro paquete u objeto-tipo-archivo en expresiones-G (@pxref{G-Expressions}). También se manejan transparentemente por el procedimiento @code{packages->manifest}, el cual se usa habitualmente en los manifiestos (@pxref{Invoking guix package, the @option{--manifest} option of @command{guix package}}). Por tanto puede insertar un paquete de inferior prácticamente en cualquier lugar que pueda insertar un paquete normal: en manifiestos, en el campo @code{packages} de su declaración @code{operating-system}, etcétera."
 
 #. type: section
-#: doc/guix.texi:4390
+#: doc/guix.texi:4570
 #, no-wrap
 msgid "Invoking @command{guix describe}"
 msgstr "Invocación de @command{guix describe}"
 
 #. type: Plain text
-#: doc/guix.texi:4401
+#: doc/guix.texi:4581
 msgid "Often you may want to answer questions like: ``Which revision of Guix am I using?'' or ``Which channels am I using?'' This is useful information in many situations: if you want to @emph{replicate} an environment on a different machine or user account, if you want to report a bug or to determine what change in the channels you are using caused it, or if you want to record your system state for reproducibility purposes.  The @command{guix describe} command answers these questions."
 msgstr "A menudo desea responder a preguntas como: ``¿Qué revisión de Guix estoy usando?'' o ``¿Qué canales estoy usando?'' Esto es una información muy útil en muchas situaciones: si quiere @emph{replicar} un entorno en una máquina diferente o cuenta de usuaria, si desea informar de un error o determinar qué cambio en los canales que usa lo causó, o si quiere almacenar el estado de su sistema por razones de reproducibilidad. La orden @command{guix describe} responde a estas preguntas."
 
 #. type: Plain text
-#: doc/guix.texi:4405
+#: doc/guix.texi:4585
 msgid "When run from a @command{guix pull}ed @command{guix}, @command{guix describe} displays the channel(s) that it was built from, including their repository URL and commit IDs (@pxref{Channels}):"
 msgstr "Cuando se ejecuta desde un @command{guix} bajado con @command{guix pull}, @command{guix describe} muestra el/los canal/es desde el/los que se construyó, incluyendo la URL de su repositorio y los IDs de las revisiones (@pxref{Channels}):"
 
 #. type: example
-#: doc/guix.texi:4413
+#: doc/guix.texi:4593
 #, no-wrap
 msgid ""
 "$ guix describe\n"
@@ -9955,17 +10617,17 @@ msgstr ""
 "    commit: e0fa68c7718fffd33d81af415279d6ddb518f727\n"
 
 #. type: Plain text
-#: doc/guix.texi:4422
+#: doc/guix.texi:4602
 msgid "If you're familiar with the Git version control system, this is similar in spirit to @command{git describe}; the output is also similar to that of @command{guix pull --list-generations}, but limited to the current generation (@pxref{Invoking guix pull, the @option{--list-generations} option}).  Because the Git commit ID shown above unambiguously refers to a snapshot of Guix, this information is all it takes to describe the revision of Guix you're using, and also to replicate it."
 msgstr "Si está familiarizado con el sistema de control de versiones Git, esto es similar a @command{git describe}; la salida también es similar a la de @command{guix pull --list-generations}, pero limitada a la generación actual (@pxref{Invoking guix pull, the @option{--list-generations} option}). Debido a que el ID de revisión Git mostrado antes refiere sin ambigüedades al estado de Guix, esta información es todo lo necesario para describir la revisión de Guix que usa, y también para replicarla."
 
 #. type: Plain text
-#: doc/guix.texi:4425
+#: doc/guix.texi:4605
 msgid "To make it easier to replicate Guix, @command{guix describe} can also be asked to return a list of channels instead of the human-readable description above:"
 msgstr "Para facilitar la replicación de Guix, también se le puede solicitar a @command{guix describe} devolver una lista de canales en vez de la descripción legible por humanos mostrada antes:"
 
 #. type: example
-#: doc/guix.texi:4433
+#: doc/guix.texi:4618
 #, no-wrap
 msgid ""
 "$ guix describe -f channels\n"
@@ -9973,170 +10635,208 @@ msgid ""
 "        (name 'guix)\n"
 "        (url \"https://git.savannah.gnu.org/git/guix.git\")\n"
 "        (commit\n"
-"          \"e0fa68c7718fffd33d81af415279d6ddb518f727\")))\n"
+"          \"e0fa68c7718fffd33d81af415279d6ddb518f727\")\n"
+"        (introduction\n"
+"          (make-channel-introduction\n"
+"            \"9edb3f66fd807b096b48283debdcddccfea34bad\"\n"
+"            (openpgp-fingerprint\n"
+"              \"BBB0 2DDF 2CEA F6A8 0D1D  E643 A2A0 6DF2 A33A 54FA\")))))\n"
 msgstr ""
 "$ guix describe -f channels\n"
 "(list (channel\n"
 "        (name 'guix)\n"
 "        (url \"https://git.savannah.gnu.org/git/guix.git\")\n"
 "        (commit\n"
-"          \"e0fa68c7718fffd33d81af415279d6ddb518f727\")))\n"
+"          \"e0fa68c7718fffd33d81af415279d6ddb518f727\")\n"
+"        (introduction\n"
+"          (make-channel-introduction\n"
+"            \"9edb3f66fd807b096b48283debdcddccfea34bad\"\n"
+"            (openpgp-fingerprint\n"
+"              \"BBB0 2DDF 2CEA F6A8 0D1D  E643 A2A0 6DF2 A33A 54FA\")))))\n"
 
 #. type: Plain text
-#: doc/guix.texi:4442
+#: doc/guix.texi:4627
 msgid "You can save this to a file and feed it to @command{guix pull -C} on some other machine or at a later point in time, which will instantiate @emph{this exact Guix revision} (@pxref{Invoking guix pull, the @option{-C} option}).  From there on, since you're able to deploy the same revision of Guix, you can just as well @emph{replicate a complete software environment}.  We humbly think that this is @emph{awesome}, and we hope you'll like it too!"
-msgstr "Puede almacenar esto en un fichero y se lo puede proporcionar a @command{guix pull -C} en otra máquina o en un momento futuro, lo que instanciará @emph{esta revisión exacta de Guix} (@pxref{Invoking guix pull, the @option{-C} option}). De aquí en adelante, ya que puede desplegar la misma revisión de Guix, puede también @emph{replicar un entorno completo de software}. Nosotras humildemente consideramos que esto es @emph{impresionante}, ¡y esperamos que le guste a usted también!"
+msgstr "Puede almacenar esto en un archivo y se lo puede proporcionar a @command{guix pull -C} en otra máquina o en un momento futuro, lo que instanciará @emph{esta revisión exacta de Guix} (@pxref{Invoking guix pull, the @option{-C} option}). De aquí en adelante, ya que puede desplegar la misma revisión de Guix, puede también @emph{replicar un entorno completo de software}. Nosotras humildemente consideramos que esto es @emph{impresionante}, ¡y esperamos que le guste a usted también!"
 
 #. type: Plain text
-#: doc/guix.texi:4445
+#: doc/guix.texi:4630
 msgid "The details of the options supported by @command{guix describe} are as follows:"
 msgstr "Los detalles de las opciones aceptadas por @command{guix describe} son las siguientes:"
 
 #. type: item
-#: doc/guix.texi:4447 doc/guix.texi:5110
+#: doc/guix.texi:4632 doc/guix.texi:5838
 #, no-wrap
 msgid "--format=@var{format}"
 msgstr "--format=@var{formato}"
 
 #. type: itemx
-#: doc/guix.texi:4448 doc/guix.texi:5111
+#: doc/guix.texi:4633 doc/guix.texi:5839
 #, no-wrap
 msgid "-f @var{format}"
 msgstr "-f @var{formato}"
 
 #. type: table
-#: doc/guix.texi:4450
+#: doc/guix.texi:4635
 msgid "Produce output in the specified @var{format}, one of:"
 msgstr "Produce salida en el @var{formato} especificado, uno de:"
 
 #. type: item
-#: doc/guix.texi:4452
+#: doc/guix.texi:4637
 #, no-wrap
 msgid "human"
 msgstr "human"
 
 #. type: table
-#: doc/guix.texi:4454
+#: doc/guix.texi:4639
 msgid "produce human-readable output;"
 msgstr "produce salida legible por humanos;"
 
+#. type: cindex
+#: doc/guix.texi:4639 doc/guix.texi:4857
+#, no-wrap
+msgid "channels"
+msgstr "channels"
+
 #. type: table
-#: doc/guix.texi:4458
+#: doc/guix.texi:4643
 msgid "produce a list of channel specifications that can be passed to @command{guix pull -C} or installed as @file{~/.config/guix/channels.scm} (@pxref{Invoking guix pull});"
 msgstr "produce una lista de especificaciones de canales que puede ser pasada a @command{guix pull -C} o instalada como @file{~/.config/guix/channels.scm} (@pxref{Invoking guix pull});"
 
 #. type: item
-#: doc/guix.texi:4458 doc/guix.texi:9170
+#: doc/guix.texi:4643
+#, no-wrap
+msgid "channels-sans-intro"
+msgstr "channels-sans-intro"
+
+#. type: table
+#: doc/guix.texi:4649
+msgid "like @code{channels}, but omit the @code{introduction} field; use it to produce a channel specification suitable for Guix version 1.1.0 or earlier---the @code{introduction} field has to do with channel authentication (@pxref{Channels, Channel Authentication}) and is not supported by these older versions;"
+msgstr "como @code{channels}, pero se omite el campo @code{introduction}; se puede usar para producir una especificación de canal adecuada para la versión 1.1.0 de Guix y versiones anteriores---el campo @code{introduction} está relacionado con la verificación de canales (@pxref{Channels, Verificación de canales}) y no está implementado en dichas versiones;"
+
+#. type: item
+#: doc/guix.texi:4649 doc/guix.texi:10991
 #, no-wrap
 msgid "json"
 msgstr "json"
 
 #. type: cindex
-#: doc/guix.texi:4459
+#: doc/guix.texi:4650
 #, no-wrap
 msgid "JSON"
 msgstr "JSON"
 
 #. type: table
-#: doc/guix.texi:4461
+#: doc/guix.texi:4652
 msgid "produce a list of channel specifications in JSON format;"
 msgstr "produce una lista de especificaciones de canales en formato JSON;"
 
 #. type: item
-#: doc/guix.texi:4461
+#: doc/guix.texi:4652
 #, no-wrap
 msgid "recutils"
 msgstr "recutils"
 
 #. type: table
-#: doc/guix.texi:4463
+#: doc/guix.texi:4654
 msgid "produce a list of channel specifications in Recutils format."
 msgstr "produce una lista de especificaciones de canales en formato Recutils."
 
+#. type: item
+#: doc/guix.texi:4656
+#, no-wrap
+msgid "--list-formats"
+msgstr "--list-formats"
+
+#. type: table
+#: doc/guix.texi:4658
+msgid "Display available formats for @option{--format} option."
+msgstr "Muestra los formatos disponibles para la opción @option{--format}."
+
 #. type: table
-#: doc/guix.texi:4468
+#: doc/guix.texi:4662
 msgid "Display information about @var{profile}."
 msgstr "Muestra información acerca del @var{perfil}."
 
 #. type: section
-#: doc/guix.texi:4471
+#: doc/guix.texi:4665
 #, no-wrap
 msgid "Invoking @command{guix archive}"
 msgstr "Invocación de @command{guix archive}"
 
 #. type: command{#1}
-#: doc/guix.texi:4473
+#: doc/guix.texi:4667
 #, no-wrap
 msgid "guix archive"
 msgstr "guix archive"
 
 #. type: cindex
-#: doc/guix.texi:4474
+#: doc/guix.texi:4668
 #, no-wrap
 msgid "archive"
 msgstr "archive"
 
 #. type: Plain text
-#: doc/guix.texi:4480
+#: doc/guix.texi:4674
 msgid "The @command{guix archive} command allows users to @dfn{export} files from the store into a single archive, and to later @dfn{import} them on a machine that runs Guix.  In particular, it allows store files to be transferred from one machine to the store on another machine."
-msgstr "La orden @command{guix archive} permite a las usuarias @dfn{exportar} ficheros del almacén en un único archivador, e @dfn{importarlos} posteriormente en una máquina que ejecute Guix. En particular, permite que los ficheros del almacén sean transferidos de una máquina al almacén de otra máquina."
+msgstr "La orden @command{guix archive} permite a las usuarias @dfn{exportar} archivos del almacén en un único archivador, e @dfn{importarlos} posteriormente en una máquina que ejecute Guix. En particular, permite que los archivos del almacén sean transferidos de una máquina al almacén de otra máquina."
 
 #. type: quotation
-#: doc/guix.texi:4484
+#: doc/guix.texi:4678
 msgid "If you're looking for a way to produce archives in a format suitable for tools other than Guix, @pxref{Invoking guix pack}."
 msgstr "Si está buscando una forma de producir archivos en un formato adecuado para herramientas distintas a Guix, @pxref{Invoking guix pack}."
 
 #. type: cindex
-#: doc/guix.texi:4486
+#: doc/guix.texi:4680
 #, no-wrap
 msgid "exporting store items"
 msgstr "exportar elementos del almacén"
 
 #. type: Plain text
-#: doc/guix.texi:4488
+#: doc/guix.texi:4682
 msgid "To export store files as an archive to standard output, run:"
-msgstr "Para exportar ficheros del almacén como un archivo por la salida estándar, ejecute:"
+msgstr "Para exportar archivos del almacén como un archivo por la salida estándar, ejecute:"
 
 #. type: example
-#: doc/guix.texi:4491
+#: doc/guix.texi:4685
 #, no-wrap
 msgid "guix archive --export @var{options} @var{specifications}...\n"
 msgstr "guix archive --export @var{opciones} @var{especificaciones}...\n"
 
 #. type: Plain text
-#: doc/guix.texi:4498
+#: doc/guix.texi:4692
 msgid "@var{specifications} may be either store file names or package specifications, as for @command{guix package} (@pxref{Invoking guix package}).  For instance, the following command creates an archive containing the @code{gui} output of the @code{git} package and the main output of @code{emacs}:"
-msgstr "@var{especificaciones} deben ser o bien nombres de ficheros del almacén o especificaciones de paquetes, como las de @command{guix package} (@pxref{Invoking guix package}). Por ejemplo, la siguiente orden crea un archivo que contiene la salida @code{gui} del paquete @code{git} y la salida principal de @code{emacs}:"
+msgstr "@var{especificaciones} deben ser o bien nombres de archivos del almacén o especificaciones de paquetes, como las de @command{guix package} (@pxref{Invoking guix package}). Por ejemplo, la siguiente orden crea un archivo que contiene la salida @code{gui} del paquete @code{git} y la salida principal de @code{emacs}:"
 
 #. type: example
-#: doc/guix.texi:4501
+#: doc/guix.texi:4695
 #, no-wrap
 msgid "guix archive --export git:gui /gnu/store/...-emacs-24.3 > great.nar\n"
 msgstr "guix archive --export git:gui /gnu/store/...-emacs-24.3 > great.nar\n"
 
 #. type: Plain text
-#: doc/guix.texi:4506
+#: doc/guix.texi:4700
 msgid "If the specified packages are not built yet, @command{guix archive} automatically builds them.  The build process may be controlled with the common build options (@pxref{Common Build Options})."
 msgstr "Si los paquetes especificados no están todavía construidos, @command{guix archive} los construye automáticamente. El proceso de construcción puede controlarse mediante las opciones de construcción comunes (@pxref{Common Build Options})."
 
 #. type: Plain text
-#: doc/guix.texi:4509
+#: doc/guix.texi:4703
 msgid "To transfer the @code{emacs} package to a machine connected over SSH, one would run:"
 msgstr "Para transferir el paquete @code{emacs} a una máquina conectada por SSH, se ejecutaría:"
 
 #. type: example
-#: doc/guix.texi:4512
+#: doc/guix.texi:4706
 #, no-wrap
 msgid "guix archive --export -r emacs | ssh the-machine guix archive --import\n"
 msgstr "guix archive --export -r emacs | ssh otra-maquina guix archive --import\n"
 
 #. type: Plain text
-#: doc/guix.texi:4517
+#: doc/guix.texi:4711
 msgid "Similarly, a complete user profile may be transferred from one machine to another like this:"
 msgstr "De manera similar, un perfil de usuaria completo puede transferirse de una máquina a otra de esta manera:"
 
 #. type: example
-#: doc/guix.texi:4521
+#: doc/guix.texi:4715
 #, no-wrap
 msgid ""
 "guix archive --export -r $(readlink -f ~/.guix-profile) | \\\n"
@@ -10146,202 +10846,220 @@ msgstr ""
 "  ssh otra-maquina guix archive --import\n"
 
 #. type: Plain text
-#: doc/guix.texi:4531
-msgid "However, note that, in both examples, all of @code{emacs} and the profile as well as all of their dependencies are transferred (due to @code{-r}), regardless of what is already available in the store on the target machine.  The @code{--missing} option can help figure out which items are missing from the target store.  The @command{guix copy} command simplifies and optimizes this whole process, so this is probably what you should use in this case (@pxref{Invoking guix copy})."
-msgstr "No obstante, fíjese que, en ambos ejemplos, todo @code{emacs} y el perfil como también todas sus dependencias son transferidas (debido a la @code{-r}), independiente de lo que estuviese ya disponible en el almacén de la máquina objetivo. La opción @code{--missing} puede ayudar a esclarecer qué elementos faltan en el almacén objetivo. La orden @command{guix copy} simplifica y optimiza este proceso completo, así que probablemente es lo que debería usar en este caso (@pxref{Invoking guix copy})."
+#: doc/guix.texi:4725
+msgid "However, note that, in both examples, all of @code{emacs} and the profile as well as all of their dependencies are transferred (due to @option{-r}), regardless of what is already available in the store on the target machine.  The @option{--missing} option can help figure out which items are missing from the target store.  The @command{guix copy} command simplifies and optimizes this whole process, so this is probably what you should use in this case (@pxref{Invoking guix copy})."
+msgstr "No obstante, fíjese que, en ambos ejemplos, todo @code{emacs} y el perfil como también todas sus dependencias son transferidas (debido a la @option{-r}), independiente de lo que estuviese ya disponible en el almacén de la máquina objetivo. La opción @option{--missing} puede ayudar a esclarecer qué elementos faltan en el almacén objetivo. La orden @command{guix copy} simplifica y optimiza este proceso completo, así que probablemente es lo que debería usar en este caso (@pxref{Invoking guix copy})."
 
 #. type: cindex
-#: doc/guix.texi:4532
+#: doc/guix.texi:4726
 #, no-wrap
 msgid "nar, archive format"
 msgstr "nar, formato de archivo"
 
 #. type: cindex
-#: doc/guix.texi:4533
+#: doc/guix.texi:4727
 #, no-wrap
 msgid "normalized archive (nar)"
 msgstr "archivo normalizado (nar)"
 
+# FUZZY
+#. type: cindex
+#: doc/guix.texi:4728
+#, no-wrap
+msgid "nar bundle, archive format"
+msgstr "empaquetado nar, formato de archivo"
+
 #. type: Plain text
-#: doc/guix.texi:4543
-msgid "Archives are stored in the ``normalized archive'' or ``nar'' format, which is comparable in spirit to `tar', but with differences that make it more appropriate for our purposes.  First, rather than recording all Unix metadata for each file, the nar format only mentions the file type (regular, directory, or symbolic link); Unix permissions and owner/group are dismissed.  Second, the order in which directory entries are stored always follows the order of file names according to the C locale collation order.  This makes archive production fully deterministic."
-msgstr "Los archivos se almacenan en el formato de ``archivo normalizado'' o ``nar'', el cual es comparable a `tar' en el espíritu, pero con diferencias que lo hacen más apropiado para nuestro propósito. Primero, en vez de almacenar todos los metadatos Unix de cada fichero, el formato nar solo menciona el tipo de fichero (normal, directorio o enlace simbólico); los permisos Unix y el par propietario/grupo se descartan. En segundo lugar, el orden en el cual las entradas de directorios se almacenan siempre siguen el orden de los nombres de ficheros de acuerdo a la ordenación de cadenas en la localización C. Esto hace la producción del archivo completamente determinista."
+#: doc/guix.texi:4733
+msgid "Each store item is written in the @dfn{normalized archive} or @dfn{nar} format (described below), and the output of @command{guix archive --export} (and input of @command{guix archive --import}) is a @dfn{nar bundle}."
+msgstr "Cada elemento del almacén se escribe en formato de @dfn{archivo normalizado} o @dfn{nar} (descrito a continuación), y la salida de @command{guix archive --export} (y entrada de @command{guix archive --import}) es un @dfn{empaquetado nar}."
 
 #. type: Plain text
-#: doc/guix.texi:4549
+#: doc/guix.texi:4743
+msgid "The nar format is comparable in spirit to `tar', but with differences that make it more appropriate for our purposes.  First, rather than recording all Unix metadata for each file, the nar format only mentions the file type (regular, directory, or symbolic link); Unix permissions and owner/group are dismissed.  Second, the order in which directory entries are stored always follows the order of file names according to the C locale collation order.  This makes archive production fully deterministic."
+msgstr "El formato ``nar'' es comparable a `tar' en el espíritu, pero con diferencias que lo hacen más apropiado para nuestro propósito. Primero, en vez de almacenar todos los metadatos Unix de cada archivo, el formato nar solo menciona el tipo de archivo (normal, directorio o enlace simbólico); los permisos Unix y el par propietario/grupo se descartan. En segundo lugar, el orden en el cual las entradas de directorios se almacenan siempre siguen el orden de los nombres de archivos de acuerdo a la ordenación de cadenas en la localización C. Esto hace la producción del archivo completamente determinista."
+
+#. type: Plain text
+#: doc/guix.texi:4747
+msgid "That nar bundle format is essentially the concatenation of zero or more nars along with metadata for each store item it contains: its file name, references, corresponding derivation, and a digital signature."
+msgstr "El formato del empaquetado nar es esencialmente una concatenación de cero o más nar junto a metadatos para cada elemento del almacén que contiene: su nombre de archivo, referencias, derivación correspondiente y firma digital."
+
+#. type: Plain text
+#: doc/guix.texi:4753
 msgid "When exporting, the daemon digitally signs the contents of the archive, and that digital signature is appended.  When importing, the daemon verifies the signature and rejects the import in case of an invalid signature or if the signing key is not authorized."
 msgstr "Durante la exportación, el daemon firma digitalmente los contenidos del archivo, y la firma digital se adjunta. Durante la importación, el daemon verifica la firma y rechaza la importación en caso de una firma inválida o si la clave firmante no está autorizada."
 
 #. type: Plain text
-#: doc/guix.texi:4551
+#: doc/guix.texi:4755
 msgid "The main options are:"
 msgstr "Las opciones principales son:"
 
 #. type: item
-#: doc/guix.texi:4553
+#: doc/guix.texi:4757
 #, no-wrap
 msgid "--export"
 msgstr "--export"
 
 #. type: table
-#: doc/guix.texi:4556
-msgid "Export the specified store files or packages (see below.)  Write the resulting archive to the standard output."
-msgstr "Exporta los ficheros del almacén o paquetes (véase más adelante). Escribe el archivo resultante a la salida estándar."
+#: doc/guix.texi:4760
+msgid "Export the specified store files or packages (see below).  Write the resulting archive to the standard output."
+msgstr "Exporta los archivos del almacén o paquetes (véase más adelante). Escribe el archivo resultante a la salida estándar."
 
 #. type: table
-#: doc/guix.texi:4559
-msgid "Dependencies are @emph{not} included in the output, unless @code{--recursive} is passed."
-msgstr "Las dependencias @emph{no} están incluidas en la salida, a menos que se use @code{--recursive}."
+#: doc/guix.texi:4763
+msgid "Dependencies are @emph{not} included in the output, unless @option{--recursive} is passed."
+msgstr "Las dependencias @emph{no} están incluidas en la salida, a menos que se use @option{--recursive}."
 
 #. type: itemx
-#: doc/guix.texi:4560 doc/guix.texi:8945 doc/guix.texi:9047 doc/guix.texi:9072
-#: doc/guix.texi:9275 doc/guix.texi:9316 doc/guix.texi:9363 doc/guix.texi:9388
+#: doc/guix.texi:4764 doc/guix.texi:10768 doc/guix.texi:10870
+#: doc/guix.texi:10895 doc/guix.texi:11096 doc/guix.texi:11137
+#: doc/guix.texi:11184 doc/guix.texi:11209
 #, no-wrap
 msgid "-r"
 msgstr "-r"
 
 #. type: item
-#: doc/guix.texi:4561 doc/guix.texi:8944 doc/guix.texi:9046 doc/guix.texi:9071
-#: doc/guix.texi:9274 doc/guix.texi:9315 doc/guix.texi:9362 doc/guix.texi:9387
-#: doc/guix.texi:9439
+#: doc/guix.texi:4765 doc/guix.texi:10767 doc/guix.texi:10869
+#: doc/guix.texi:10894 doc/guix.texi:11095 doc/guix.texi:11136
+#: doc/guix.texi:11183 doc/guix.texi:11208 doc/guix.texi:11260
 #, no-wrap
 msgid "--recursive"
 msgstr "--recursive"
 
 #. type: table
-#: doc/guix.texi:4566
-msgid "When combined with @code{--export}, this instructs @command{guix archive} to include dependencies of the given items in the archive.  Thus, the resulting archive is self-contained: it contains the closure of the exported store items."
-msgstr "Cuando se combina con @code{--export}, instruye a @command{guix archive} para incluir las dependencias de los elementos dados en el archivo. Por tanto, el archivo resultante está auto-contenido: contiene la clausura de los elementos exportados del almacén."
+#: doc/guix.texi:4770
+msgid "When combined with @option{--export}, this instructs @command{guix archive} to include dependencies of the given items in the archive.  Thus, the resulting archive is self-contained: it contains the closure of the exported store items."
+msgstr "Cuando se combina con @option{--export}, instruye a @command{guix archive} para incluir las dependencias de los elementos dados en el archivo. Por tanto, el archivo resultante está auto-contenido: contiene la clausura de los elementos exportados del almacén."
 
 #. type: item
-#: doc/guix.texi:4567
+#: doc/guix.texi:4771
 #, no-wrap
 msgid "--import"
 msgstr "--import"
 
 #. type: table
-#: doc/guix.texi:4572
-msgid "Read an archive from the standard input, and import the files listed therein into the store.  Abort if the archive has an invalid digital signature, or if it is signed by a public key not among the authorized keys (see @code{--authorize} below.)"
-msgstr "Lee un archivo de la entrada estándar, e importa los ficheros enumerados allí en el almacén. La operación se aborta si el archivo tiene una firma digital no válida, o si está firmado por una clave pública que no está entre las autorizadas (vea @code{--authorize} más adelante)."
+#: doc/guix.texi:4776
+msgid "Read an archive from the standard input, and import the files listed therein into the store.  Abort if the archive has an invalid digital signature, or if it is signed by a public key not among the authorized keys (see @option{--authorize} below)."
+msgstr "Lee un archivo de la entrada estándar, e importa los archivos enumerados allí en el almacén. La operación se aborta si el archivo tiene una firma digital no válida, o si está firmado por una clave pública que no está entre las autorizadas (vea @option{--authorize} más adelante)."
 
 #. type: item
-#: doc/guix.texi:4573
+#: doc/guix.texi:4777
 #, no-wrap
 msgid "--missing"
 msgstr "--missing"
 
 #. type: table
-#: doc/guix.texi:4577
+#: doc/guix.texi:4781
 msgid "Read a list of store file names from the standard input, one per line, and write on the standard output the subset of these files missing from the store."
-msgstr "Lee una lista de nombres de ficheros del almacén de la entrada estándar, uno por línea, y escribe en la salida estándar el subconjunto de estos ficheros que faltan en el almacén."
+msgstr "Lee una lista de nombres de archivos del almacén de la entrada estándar, uno por línea, y escribe en la salida estándar el subconjunto de estos archivos que faltan en el almacén."
 
 #. type: item
-#: doc/guix.texi:4578
+#: doc/guix.texi:4782
 #, no-wrap
 msgid "--generate-key[=@var{parameters}]"
 msgstr "--generate-key[=@var{parámetros}]"
 
 #. type: cindex
-#: doc/guix.texi:4579
+#: doc/guix.texi:4783
 #, no-wrap
 msgid "signing, archives"
 msgstr "firmar, archivos"
 
 #. type: table
-#: doc/guix.texi:4584
-msgid "Generate a new key pair for the daemon.  This is a prerequisite before archives can be exported with @code{--export}.  Note that this operation usually takes time, because it needs to gather enough entropy to generate the key pair."
-msgstr "Genera un nuevo par de claves para el daemon. Esto es un prerrequisito antes de que los archivos puedan ser exportados con @code{--export}. Tenga en cuenta que esta operación normalmente toma tiempo, ya que se necesita obtener suficiente entropía para generar un par de claves."
+#: doc/guix.texi:4790
+msgid "Generate a new key pair for the daemon.  This is a prerequisite before archives can be exported with @option{--export}.  This operation is usually instantaneous but it can take time if the system's entropy pool needs to be refilled.  On Guix System, @code{guix-service-type} takes care of generating this key pair the first boot."
+msgstr "Genera un nuevo par de claves para el daemon. Esto es un prerrequisito antes de que los archivos puedan ser exportados con @option{--export}. Esta operación es habitualmente instantánea pero puede tomar tiempo si la piscina de entropía necesita tiene que rellenarse. En el sistema Guix @code{guix-service-type} se encarga de generar este par de claves en el primer arranque."
 
 #. type: table
-#: doc/guix.texi:4594
-msgid "The generated key pair is typically stored under @file{/etc/guix}, in @file{signing-key.pub} (public key) and @file{signing-key.sec} (private key, which must be kept secret.)  When @var{parameters} is omitted, an ECDSA key using the Ed25519 curve is generated, or, for Libgcrypt versions before 1.6.0, it is a 4096-bit RSA key.  Alternatively, @var{parameters} can specify @code{genkey} parameters suitable for Libgcrypt (@pxref{General public-key related Functions, @code{gcry_pk_genkey},, gcrypt, The Libgcrypt Reference Manual})."
+#: doc/guix.texi:4800
+msgid "The generated key pair is typically stored under @file{/etc/guix}, in @file{signing-key.pub} (public key) and @file{signing-key.sec} (private key, which must be kept secret).  When @var{parameters} is omitted, an ECDSA key using the Ed25519 curve is generated, or, for Libgcrypt versions before 1.6.0, it is a 4096-bit RSA key.  Alternatively, @var{parameters} can specify @code{genkey} parameters suitable for Libgcrypt (@pxref{General public-key related Functions, @code{gcry_pk_genkey},, gcrypt, The Libgcrypt Reference Manual})."
 msgstr "El par de claves generado se almacena típicamente bajo @file{/etc/guix}, en @file{signing-key.pub} (clave pública) y @file{signing-key.sec} (clave privada, que se debe mantener secreta). Cuando @var{parámetros} se omite, se genera una clave ECDSA usando la curva Ed25519, o, en versiones de Libgcrypt previas a la 1.6.0, es una clave RSA de 4096 bits. De manera alternativa, los @var{parámetros} pueden especificar parámetros @code{genkey} adecuados para Libgcrypt (@pxref{General public-key related Functions, @code{gcry_pk_genkey},, gcrypt, The Libgcrypt Reference Manual})."
 
 #. type: item
-#: doc/guix.texi:4595
+#: doc/guix.texi:4801
 #, no-wrap
 msgid "--authorize"
 msgstr "--authorize"
 
 #. type: cindex
-#: doc/guix.texi:4596
+#: doc/guix.texi:4802
 #, no-wrap
 msgid "authorizing, archives"
 msgstr "autorizar, archivos"
 
 #. type: table
-#: doc/guix.texi:4600
+#: doc/guix.texi:4806
 msgid "Authorize imports signed by the public key passed on standard input.  The public key must be in ``s-expression advanced format''---i.e., the same format as the @file{signing-key.pub} file."
-msgstr "Autoriza importaciones firmadas con la clave pública pasada por la entrada estándar. La clave pública debe estar en el ``formato avanzado de expresiones-s''---es decir, el mismo formato que el fichero @file{signing-key.pub}."
+msgstr "Autoriza importaciones firmadas con la clave pública pasada por la entrada estándar. La clave pública debe estar en el ``formato avanzado de expresiones-s''---es decir, el mismo formato que el archivo @file{signing-key.pub}."
 
 #. type: table
-#: doc/guix.texi:4607
+#: doc/guix.texi:4813
 msgid "The list of authorized keys is kept in the human-editable file @file{/etc/guix/acl}.  The file contains @url{https://people.csail.mit.edu/rivest/Sexp.txt, ``advanced-format s-expressions''} and is structured as an access-control list in the @url{https://theworld.com/~cme/spki.txt, Simple Public-Key Infrastructure (SPKI)}."
-msgstr "La lista de claves autorizadas se mantiene en el fichero editable por personas @file{/etc/guix/acl}. El fichero contiene @url{https://people.csail.mit.edu/rivest/Sexp.text, ``expresiones-s en formato avanzado''} y está estructurado como una lista de control de acceso en el formato @url{https://theworld.com/~cme/spki.txt, Infraestructura Simple de Clave Pública (SPKI)}."
+msgstr "La lista de claves autorizadas se mantiene en el archivo editable por personas @file{/etc/guix/acl}. El archivo contiene @url{https://people.csail.mit.edu/rivest/Sexp.text, ``expresiones-s en formato avanzado''} y está estructurado como una lista de control de acceso en el formato @url{https://theworld.com/~cme/spki.txt, Infraestructura Simple de Clave Pública (SPKI)}."
 
 #. type: item
-#: doc/guix.texi:4608
+#: doc/guix.texi:4814
 #, no-wrap
 msgid "--extract=@var{directory}"
 msgstr "--extract=@var{directorio}"
 
 #. type: itemx
-#: doc/guix.texi:4609
+#: doc/guix.texi:4815
 #, no-wrap
 msgid "-x @var{directory}"
 msgstr "-x @var{directorio}"
 
 #. type: table
-#: doc/guix.texi:4613
+#: doc/guix.texi:4819
 msgid "Read a single-item archive as served by substitute servers (@pxref{Substitutes}) and extract it to @var{directory}.  This is a low-level operation needed in only very narrow use cases; see below."
 msgstr "Lee un único elemento del archivo como es ofrecido por los servidores de sustituciones (@pxref{Substitutes}) y lo extrae a @var{directorio}. Esta es una operación de bajo nivel necesitada únicamente para casos muy concretos; véase a continuación."
 
 #. type: table
-#: doc/guix.texi:4616
+#: doc/guix.texi:4822
 msgid "For example, the following command extracts the substitute for Emacs served by @code{@value{SUBSTITUTE-SERVER}} to @file{/tmp/emacs}:"
 msgstr "Por ejemplo, la siguiente orden extrae la sustitución de Emacs ofrecida por @code{@value{SUBSTITUTE-SERVER}} en @file{/tmp/emacs}:"
 
 #. type: example
-#: doc/guix.texi:4621
+#: doc/guix.texi:4827
 #, no-wrap
 msgid ""
 "$ wget -O - \\\n"
-"  https://@value{SUBSTITUTE-SERVER}/nar/@dots{}-emacs-24.5 \\\n"
-"  | bunzip2 | guix archive -x /tmp/emacs\n"
+"  https://@value{SUBSTITUTE-SERVER}/nar/gzip/@dots{}-emacs-24.5 \\\n"
+"  | gunzip | guix archive -x /tmp/emacs\n"
 msgstr ""
 "$ wget -O - \\\n"
-"  https://@value{SUBSTITUTE-SERVER}/nar/@dots{}-emacs-24.5 \\\n"
-"  | bunzip2 | guix archive -x /tmp/emacs\n"
+"  https://@value{SUBSTITUTE-SERVER}/nar/gzip/@dots{}-emacs-24.5 \\\n"
+"  | gunzip | guix archive -x /tmp/emacs\n"
 
 #. type: table
-#: doc/guix.texi:4628
+#: doc/guix.texi:4834
 msgid "Single-item archives are different from multiple-item archives produced by @command{guix archive --export}; they contain a single store item, and they do @emph{not} embed a signature.  Thus this operation does @emph{no} signature verification and its output should be considered unsafe."
 msgstr "Los archivos de un único elemento son diferentes de los archivos de múltiples elementos producidos por @command{guix archive --export}; contienen un único elemento del almacén, y @emph{no} embeben una firma. Por tanto esta operación @emph{no} verifica la firma y su salida debe considerarse insegura."
 
 #. type: table
-#: doc/guix.texi:4631
-msgid "The primary purpose of this operation is to facilitate inspection of archive contents coming from possibly untrusted substitute servers."
-msgstr "El propósito primario de esta operación es facilitar la inspección de los contenidos de un archivo que provenga probablemente de servidores de sustituciones en los que no se confía."
+#: doc/guix.texi:4838
+msgid "The primary purpose of this operation is to facilitate inspection of archive contents coming from possibly untrusted substitute servers (@pxref{Invoking guix challenge})."
+msgstr "El propósito primario de esta operación es facilitar la inspección de los contenidos de un archivo que provenga probablemente de servidores de sustituciones en los que no se confía (@pxref{Invoking guix challenge})."
 
 #. type: item
-#: doc/guix.texi:4632
+#: doc/guix.texi:4839
 #, no-wrap
 msgid "--list"
 msgstr "--list"
 
 #. type: itemx
-#: doc/guix.texi:4633 doc/guix.texi:9262 doc/guix.texi:9309
+#: doc/guix.texi:4840 doc/guix.texi:11083 doc/guix.texi:11130
 #, no-wrap
 msgid "-t"
 msgstr "-t"
 
 #. type: table
-#: doc/guix.texi:4637
+#: doc/guix.texi:4844
 msgid "Read a single-item archive as served by substitute servers (@pxref{Substitutes}) and print the list of files it contains, as in this example:"
-msgstr "Lee un único elemento del archivo como es ofrecido por los servidores de sustituciones (@pxref{Substitutes}) e imprime la lista de ficheros que contiene, como en este ejemplo:"
+msgstr "Lee un único elemento del archivo como es ofrecido por los servidores de sustituciones (@pxref{Substitutes}) e imprime la lista de archivos que contiene, como en este ejemplo:"
 
 #. type: example
-#: doc/guix.texi:4642
+#: doc/guix.texi:4849
 #, no-wrap
 msgid ""
 "$ wget -O - \\\n"
@@ -10353,80 +11071,737 @@ msgstr ""
 "  | lzip -d | guix archive -t\n"
 
 #. type: cindex
-#: doc/guix.texi:4651
+#: doc/guix.texi:4860
+#, no-wrap
+msgid "@command{guix pull}, configuration file"
+msgstr "@command{guix pull}, archivo de configuración"
+
+#. type: cindex
+#: doc/guix.texi:4861
+#, no-wrap
+msgid "configuration of @command{guix pull}"
+msgstr "configuración de @command{guix pull}"
+
+# FUZZY
+#. type: Plain text
+#: doc/guix.texi:4872
+msgid "Guix and its package collection are updated by running @command{guix pull} (@pxref{Invoking guix pull}).  By default @command{guix pull} downloads and deploys Guix itself from the official GNU@tie{}Guix repository.  This can be customized by defining @dfn{channels} in the @file{~/.config/guix/channels.scm} file.  A channel specifies a URL and branch of a Git repository to be deployed, and @command{guix pull} can be instructed to pull from one or more channels.  In other words, channels can be used to @emph{customize} and to @emph{extend} Guix, as we will see below.  Guix is able to take into account security concerns and deal with authenticated updates."
+msgstr "Guix y su colección de paquetes se actualizan ejecutando @command{guix pull} (@pxref{Invoking guix pull}). Por defecto @command{guix pull} descarga y despliega el mismo Guix del repositorio oficial de GNU@tie{}Guix. Esto se puede personalizar definiendo @dfn{canales} en el archivo @file{~/.config/guix/channels.scm}. Un canal especifica una URL y una rama de un repositorio Git que será desplegada, y @command{guix pull} puede ser instruido para tomar los datos de uno o más canales. En otras palabras, los canales se pueden usar para @emph{personalizar} y para @emph{extender} Guix, como vemos a continuación. Guix tiene en cuenta consideraciones de seguridad e implementa actualizaciones verificadas."
+
+#. type: cindex
+#: doc/guix.texi:4889
+#, no-wrap
+msgid "extending the package collection (channels)"
+msgstr "extender la colección de paquetes (canales)"
+
+#. type: cindex
+#: doc/guix.texi:4890
+#, no-wrap
+msgid "variant packages (channels)"
+msgstr "paquetes personalizados (canales)"
+
+#. type: Plain text
+#: doc/guix.texi:4894
+msgid "You can specify @emph{additional channels} to pull from. To use a channel, write @code{~/.config/guix/channels.scm} to instruct @command{guix pull} to pull from it @emph{in addition} to the default Guix channel(s):"
+msgstr "Puede especificar @emph{canales adicionales} de los que obtener nuevas versiones.  Para usar un canal escriba @code{~/.config/guix/channels.scm}, lo que instruirá a @command{guix pull} para obtener datos de él @emph{además} del o los canales predeterminados de Guix:"
+
+#. type: vindex
+#: doc/guix.texi:4895
+#, no-wrap
+msgid "%default-channels"
+msgstr "%default-channels"
+
+#. type: lisp
+#: doc/guix.texi:4902
+#, no-wrap
+msgid ""
+";; Add variant packages to those Guix provides.\n"
+"(cons (channel\n"
+"        (name 'variant-packages)\n"
+"        (url \"https://example.org/variant-packages.git\"))\n"
+"      %default-channels)\n"
+msgstr ""
+";; Añade variaciones de paquetes sobre los que proporciona Guix.\n"
+"(cons (channel\n"
+"        (name 'paquetes-personalizados)\n"
+"        (url \"https://example.org/paquetes-personalizados.git\"))\n"
+"      %default-channels)\n"
+
+#. type: Plain text
+#: doc/guix.texi:4912
+msgid "Note that the snippet above is (as always!)@: Scheme code; we use @code{cons} to add a channel the list of channels that the variable @code{%default-channels} is bound to (@pxref{Pairs, @code{cons} and lists,, guile, GNU Guile Reference Manual}).  With this file in place, @command{guix pull} builds not only Guix but also the package modules from your own repository.  The result in @file{~/.config/guix/current} is the union of Guix with your own package modules:"
+msgstr "Fíjese que el fragmento previo es (¡como siempre!)@: código Scheme; usamos @code{cons} para añadir un canal a la lista de canales a la que la variable @code{%default-channels} hace referencia (@pxref{Pairs, @code{cons} and lists,, guile, GNU Guile Reference Manual}). Con el archivo en este lugar, @command{guix pull} no solo construye Guix sino también los módulos de paquetes de su propio repositorio. El resultado en @file{~/.config/guix/current} es la unión de Guix con sus propios módulos de paquetes:"
+
+#. type: example
+#: doc/guix.texi:4927
+#, no-wrap
+msgid ""
+"$ guix pull --list-generations\n"
+"@dots{}\n"
+"Generation 19\tAug 27 2018 16:20:48\n"
+"  guix d894ab8\n"
+"    repository URL: https://git.savannah.gnu.org/git/guix.git\n"
+"    branch: master\n"
+"    commit: d894ab8e9bfabcefa6c49d9ba2e834dd5a73a300\n"
+"  variant-packages dd3df5e\n"
+"    repository URL: https://example.org/variant-packages.git\n"
+"    branch: master\n"
+"    commit: dd3df5e2c8818760a8fc0bd699e55d3b69fef2bb\n"
+"  11 new packages: variant-gimp, variant-emacs-with-cool-features, @dots{}\n"
+"  4 packages upgraded: emacs-racket-mode@@0.0.2-2.1b78827, @dots{}\n"
+msgstr ""
+"$ guix pull --list-generations\n"
+"@dots{}\n"
+"Generación 19\t27 Ago 2018 16:20:48\n"
+"  guix d894ab8\n"
+"    URL del repositorio: https://git.savannah.gnu.org/git/guix.git\n"
+"    rama: master\n"
+"    revisión: d894ab8e9bfabcefa6c49d9ba2e834dd5a73a300\n"
+"  paquetes-personalizados dd3df5e\n"
+"    repository URL: https://example.org/paquetes-personalizados.git\n"
+"    rama: master\n"
+"    revisión: dd3df5e2c8818760a8fc0bd699e55d3b69fef2bb\n"
+"  11 nuevos paquetes: mi-gimp, mi-emacs-con-cosas-bonitas, @dots{}\n"
+"  4 paquetes actualizados: emacs-racket-mode@@0.0.2-2.1b78827, @dots{}\n"
+
+# FUZZY
+#. type: Plain text
+#: doc/guix.texi:4935
+msgid "The output of @command{guix pull} above shows that Generation@tie{}19 includes both Guix and packages from the @code{variant-personal-packages} channel.  Among the new and upgraded packages that are listed, some like @code{variant-gimp} and @code{variant-emacs-with-cool-features} might come from @code{variant-packages}, while others come from the Guix default channel."
+msgstr "La salida de @command{guix pull} previa muestra que la generación@tie{}19 incluye tanto Guix como paquetes del canal @code{paquetes-personalizados}. Entre los paquetes nuevos y actualizados que son enumerados, algunos como @code{mi-gimp} y @code{mi-emacs-con-cosas-bonitas} pueden venir de @code{paquetes-personalizados}, mientras que otros vienen del canal predeterminado de Guix."
+
+#. type: Plain text
+#: doc/guix.texi:4944
+msgid "The channel called @code{guix} specifies where Guix itself---its command-line tools as well as its package collection---should be downloaded.  For instance, suppose you want to update from another copy of the Guix repository at @code{example.org}, and specifically the @code{super-hacks} branch, you can write in @code{~/.config/guix/channels.scm} this specification:"
+msgstr "El canal llamado @code{guix} especifica de dónde debe descargarse el mismo Guix---sus herramientas de línea de órdenes y su colección de paquetes---. Por ejemplo, suponga que quiere actualizar de otra copia del repositorio Guix en @code{example.org}, y específicamente la rama @code{super-hacks}, para ello puede escribir en @code{~/.config/guix/channels.scm} esta especificación:"
+
+#. type: lisp
+#: doc/guix.texi:4951
+#, no-wrap
+msgid ""
+";; Tell 'guix pull' to use another repo.\n"
+"(list (channel\n"
+"        (name 'guix)\n"
+"        (url \"https://example.org/another-guix.git\")\n"
+"        (branch \"super-hacks\")))\n"
+msgstr ""
+";; Le dice a 'guix pull' que use mi propio repositorio.\n"
+"(list (channel\n"
+"        (name 'guix)\n"
+"        (url \"https://example.org/otro-guix.git\")\n"
+"        (branch \"super-hacks\")))\n"
+
+#. type: Plain text
+#: doc/guix.texi:4957
+msgid "From there on, @command{guix pull} will fetch code from the @code{super-hacks} branch of the repository at @code{example.org}.  The authentication concern is addressed below ((@pxref{Channel Authentication})."
+msgstr "De aquí en adelante, @command{guix pull} obtendrá el código de la rama @code{super-hacks} del repositorio en @code{example.org}. Las cuestiones relacionadas con la verificación se tratan más adelante (@pxref{Channel Authentication})."
+
+#. type: Plain text
+#: doc/guix.texi:4968
+msgid "The @command{guix pull --list-generations} output above shows precisely which commits were used to build this instance of Guix.  We can thus replicate it, say, on another machine, by providing a channel specification in @file{~/.config/guix/channels.scm} that is ``pinned'' to these commits:"
+msgstr "La salida de @command{guix pull --list-generations} previa muestra precisamente qué revisiones se usaron para construir esta instancia de Guix. Por tanto podemos replicarla, digamos, en otra máquina, proporcionando una especificaciones de canales en @file{~/.config/guix/channels.scm} que está ``clavada'' en estas revisiones:"
+
+#. type: lisp
+#: doc/guix.texi:4979
+#, no-wrap
+msgid ""
+";; Deploy specific commits of my channels of interest.\n"
+"(list (channel\n"
+"       (name 'guix)\n"
+"       (url \"https://git.savannah.gnu.org/git/guix.git\")\n"
+"       (commit \"6298c3ffd9654d3231a6f25390b056483e8f407c\"))\n"
+"      (channel\n"
+"       (name 'variant-packages)\n"
+"       (url \"https://example.org/variant-packages.git\")\n"
+"       (commit \"dd3df5e2c8818760a8fc0bd699e55d3b69fef2bb\")))\n"
+msgstr ""
+";; Despliega unas revisiones específicas de mis canales de interés.\n"
+"(list (channel\n"
+"       (name 'guix)\n"
+"       (url \"https://git.savannah.gnu.org/git/guix.git\")\n"
+"       (commit \"d894ab8e9bfabcefa6c49d9ba2e834dd5a73a300\"))\n"
+"      (channel\n"
+"       (name 'paquetes-personalizados)\n"
+"       (url \"https://example.org/paquetes-personalizados.git\")\n"
+"       (branch \"dd3df5e2c8818760a8fc0bd699e55d3b69fef2bb\")))\n"
+
+#. type: Plain text
+#: doc/guix.texi:4986
+msgid "The @command{guix describe --format=channels} command can even generate this list of channels directly (@pxref{Invoking guix describe}).  The resulting file can be used with the -C options of @command{guix pull} (@pxref{Invoking guix pull}) or @command{guix time-machine} (@pxref{Invoking guix time-machine})."
+msgstr "La orden @command{guix describe --format=channels} puede incluso generar esta lista de canales directamente (@pxref{Invoking guix describe}). El archivo resultante puede usarse con la opción -C de @command{guix pull} (@pxref{Invoking guix pull}) o @command{guix time-machine} (@pxref{Invoking guix time-machine})."
+
+#. type: Plain text
+#: doc/guix.texi:4993
+msgid "At this point the two machines run the @emph{exact same Guix}, with access to the @emph{exact same packages}.  The output of @command{guix build gimp} on one machine will be exactly the same, bit for bit, as the output of the same command on the other machine.  It also means both machines have access to all the source code of Guix and, transitively, to all the source code of every package it defines."
+msgstr "En este punto las dos máquinas ejecutan @emph{exactamente el mismo Guix}, con acceso a @emph{exactamente los mismos paquetes}. La salida de @command{guix build gimp} en una máquina debe ser exactamente la misma, bit a bit, que la salida de la misma orden en la otra máquina. Esto también significa que ambas máquinas tienen acceso a todo el código fuente de Guix y, transitivamente, a todo el código fuente de cada paquete que define."
+
+#. type: Plain text
+#: doc/guix.texi:4998
+msgid "This gives you super powers, allowing you to track the provenance of binary artifacts with very fine grain, and to reproduce software environments at will---some sort of ``meta reproducibility'' capabilities, if you will.  @xref{Inferiors}, for another way to take advantage of these super powers."
+msgstr "Esto le proporciona superpoderes, lo que le permite seguir la pista de la procedencia de los artefactos binarios con un grano muy fino, y reproducir entornos de software a su voluntad---un tipo de capacidad de ``meta-reproducibilidad'', si lo desea. @xref{Inferiors}, para otro modo de tomar ventaja de estos superpoderes."
+
+#. type: anchor{#1}
+#: doc/guix.texi:5003
+msgid "channel-authentication"
+msgstr "channel-authentication"
+
+#. type: Plain text
+#: doc/guix.texi:5009
+msgid "The @command{guix pull} and @command{guix time-machine} commands @dfn{authenticate} the code retrieved from channels: they make sure each commit that is fetched is signed by an authorized developer.  The goal is to protect from unauthorized modifications to the channel that would lead users to run malicious code."
+msgstr "Las órdenes @command{guix pull} y @command{guix time-machine} @dfn{verifican} el código obtenido de los canales: se aseguran de que cada commit que se obtenga se encuentre firmado por una desarrolladora autorizada. El objetivo es proteger de modificaciones no-autorizadas al canal que podrían provocar que las usuarias ejecuten código pernicioso."
+
+#. type: Plain text
+#: doc/guix.texi:5014
+msgid "As a user, you must provide a @dfn{channel introduction} in your channels file so that Guix knows how to authenticate its first commit.  A channel specification, including its introduction, looks something along these lines:"
+msgstr "Como usuaria, debe proporcionar una @dfn{presentación del canal} en su archivo de canales de modo que Guix sepa como verificar su primera revision. La especificación de una canal, incluyendo su introducción, es más o menos así:"
+
+#. type: lisp
+#: doc/guix.texi:5024
+#, no-wrap
+msgid ""
+"(channel\n"
+"  (name 'some-channel)\n"
+"  (url \"https://example.org/some-channel.git\")\n"
+"  (introduction\n"
+"   (make-channel-introduction\n"
+"    \"6f0d8cc0d88abb59c324b2990bfee2876016bb86\"\n"
+"    (openpgp-fingerprint\n"
+"     \"CABB A931 C0FF EEC6 900D  0CFB 090B 1199 3D9A EBB5\"))))\n"
+msgstr ""
+"(channel\n"
+"  (name 'un-canal)\n"
+"  (url \"https://example.org/un-canal.git\")\n"
+"  (introduction\n"
+"   (make-channel-introduction\n"
+"    \"6f0d8cc0d88abb59c324b2990bfee2876016bb86\"\n"
+"    (openpgp-fingerprint\n"
+"     \"CABB A931 C0FF EEC6 900D  0CFB 090B 1199 3D9A EBB5\"))))\n"
+
+#. type: Plain text
+#: doc/guix.texi:5030
+msgid "The specification above shows the name and URL of the channel.  The call to @code{make-channel-introduction} above specifies that authentication of this channel starts at commit @code{6f0d8cc@dots{}}, which is signed by the OpenPGP key with fingerprint @code{CABB A931@dots{}}."
+msgstr "La especificación previa muestra el nombre y la URL del canal. La llamada a @code{make-channel-introduction} especifica que la identificación de este canal empieza en la revisión  @code{6f0d8cc@dots{}}, que está firmada por la clave de OpenPGP que tiene la huella @code{CABB A931@dots{}}."
+
+# FUZZY
+#. type: Plain text
+#: doc/guix.texi:5036
+msgid "For the main channel, called @code{guix}, you automatically get that information from your Guix installation.  For other channels, include the channel introduction provided by the channel authors in your @file{channels.scm} file.  Make sure you retrieve the channel introduction from a trusted source since that is the root of your trust."
+msgstr "En el canal principal, llamado @code{guix}, obtiene esta información de manera automática desde su instalación de Guix. Para otros canales, incluya la presentación del canal proporcionada por sus autoras en su archivo @file{channels.scm}. Asegúrese de obtener la presentación del canal desde una fuente confiable ya que es la raíz de su confianza."
+
+#. type: Plain text
+#: doc/guix.texi:5038
+msgid "If you're curious about the authentication mechanics, read on!"
+msgstr "Si tiene curiosidad sobre los mecanismos de identificación y verificación, ¡siga leyendo!"
+
+#. type: cindex
+#: doc/guix.texi:5042
+#, no-wrap
+msgid "personal packages (channels)"
+msgstr "paquetes personales (canales)"
+
+#. type: cindex
+#: doc/guix.texi:5043
+#, no-wrap
+msgid "channels, for personal packages"
+msgstr "canales, para paquetes personales"
+
+#. type: Plain text
+#: doc/guix.texi:5051
+msgid "Let's say you have a bunch of custom package variants or personal packages that you think would make little sense to contribute to the Guix project, but would like to have these packages transparently available to you at the command line.  You would first write modules containing those package definitions (@pxref{Package Modules}), maintain them in a Git repository, and then you and anyone else can use it as an additional channel to get packages from.  Neat, no?"
+msgstr "Digamos que tiene un montón de variaciones personalizadas de paquetes que piensa que no tiene mucho sentido contribuir al proyecto Guix, pero quiere tener esos paquetes disponibles en su línea de órdenes de manera transparente. Primero debería escribir módulos que contengan esas definiciones de paquete (@pxref{Package Modules}), mantenerlos en un repositorio Git, y de esta manera usted y cualquier otra persona podría usarlos como un canal adicional del que obtener paquetes. Limpio, ¿no?"
+
+#. type: quotation
+#: doc/guix.texi:5055 doc/guix.texi:13173 doc/guix.texi:18777
+#: doc/guix.texi:18784
+#, no-wrap
+msgid "Warning"
+msgstr "Aviso"
+
+#. type: quotation
+#: doc/guix.texi:5059
+msgid "Before you, dear user, shout---``woow this is @emph{soooo coool}!''---and publish your personal channel to the world, we would like to share a few words of caution:"
+msgstr "Antes de que, querida usuaria, grite---``¡Guau, esto es @emph{la caña}!''---y publique su canal personal al mundo, nos gustaría compartir algunas palabras de precaución:"
+
+#. type: itemize
+#: doc/guix.texi:5067
+msgid "Before publishing a channel, please consider contributing your package definitions to Guix proper (@pxref{Contributing}).  Guix as a project is open to free software of all sorts, and packages in Guix proper are readily available to all Guix users and benefit from the project's quality assurance process."
+msgstr "Antes de publicar un canal, por favor considere contribuir sus definiciones de paquete al propio Guix (@pxref{Contributing}). Guix como proyecto es abierto a software libre de todo tipo, y los paquetes en el propio Guix están disponibles para todas las usuarias de Guix y se benefician del proceso de gestión de calidad del proyecto."
+
+#. type: itemize
+#: doc/guix.texi:5076
+msgid "When you maintain package definitions outside Guix, we, Guix developers, consider that @emph{the compatibility burden is on you}.  Remember that package modules and package definitions are just Scheme code that uses various programming interfaces (APIs).  We want to remain free to change these APIs to keep improving Guix, possibly in ways that break your channel.  We never change APIs gratuitously, but we will @emph{not} commit to freezing APIs either."
+msgstr "Cuando mantiene definiciones de paquete fuera de Guix, nosotras, las desarrolladoras de Guix, consideramos que @emph{la carga de la compatibilidad cae de su lado}. Recuerde que los módulos y definiciones de paquetes son solo código Scheme que usa varias interfaces programáticas (APIs). Queremos mantener la libertad de cambiar dichas interfaces para seguir mejorando Guix, posiblemente en formas que pueden romper su canal. Nunca cambiamos las interfaces gratuitamente, pero @emph{no} vamos tampoco a congelar las interfaces."
+
+#. type: itemize
+#: doc/guix.texi:5080
+msgid "Corollary: if you're using an external channel and that channel breaks, please @emph{report the issue to the channel authors}, not to the Guix project."
+msgstr "Corolario: si está usando un canal externo y el canal se rompe, por favor @emph{informe del problema a las autoras del canal}, no al proyecto Guix."
+
+#. type: quotation
+#: doc/guix.texi:5087
+msgid "You've been warned! Having said this, we believe external channels are a practical way to exert your freedom to augment Guix' package collection and to share your improvements, which are basic tenets of @uref{https://www.gnu.org/philosophy/free-sw.html, free software}.  Please email us at @email{guix-devel@@gnu.org} if you'd like to discuss this."
+msgstr "¡Ha quedado advertida! Habiendo dicho esto, creemos que los canales externos son una forma práctica de ejercitar su libertad para aumentar la colección de paquetes de Guix y compartir su mejoras, que son pilares básicos del @uref{https://www.gnu.org/philosophy/free-sw.html, software libre}. Por favor, envíenos un correo a @email{guix-devel@@gnu.org} si quiere hablar sobre esto."
+
+#. type: Plain text
+#: doc/guix.texi:5099
+msgid "To create a channel, create a Git repository containing your own package modules and make it available.  The repository can contain anything, but a useful channel will contain Guile modules that export packages.  Once you start using a channel, Guix will behave as if the root directory of that channel's Git repository has been added to the Guile load path (@pxref{Load Paths,,, guile, GNU Guile Reference Manual}).  For example, if your channel contains a file at @file{my-packages/my-tools.scm} that defines a Guile module, then the module will be available under the name @code{(my-packages my-tools)}, and you will be able to use it like any other module (@pxref{Modules,,, guile, GNU Guile Reference Manual})."
+msgstr "Para crear un canal, cree un repositorio Git que contenga sus propios módulos de paquetes y haga que esté disponible. El repositorio puede contener cualquier cosa, pero un canal útil contendrá módulos Guile que exportan paquetes. Una vez comience a usar un canal, Guix se comportará como si el directorio raíz del repositorio Git de dicho canal hubiese sido añadido a la ruta de carga de Guile (@pxref{Load Paths,,, guile, GNU Guile Reference Manual}). Por ejemplo, si su canal contiene un archivo en @file{mis-paquetes/mis-herramientas.scm} que define un módulo, entonces dicho módulo estará disponible bajo el nombre @code{(mis-paquetes mis-herramientas)}, y podrá usarlo como cualquier otro módulo (@pxref{Modules,,, guile, GNU Guile Reference Manual})."
+
+#. type: Plain text
+#: doc/guix.texi:5104
+msgid "As a channel author, consider bundling authentication material with your channel so that users can authenticate it.  @xref{Channel Authentication}, and @ref{Specifying Channel Authorizations}, for info on how to do it."
+msgstr "Como autora de un canal, considere adjuntar el material para la identificación a su canal de modo que las usuarias puedan verificarlo.  @xref{Channel Authentication}, y @ref{Specifying Channel Authorizations}, para obtener información sobre cómo hacerlo."
+
+#. type: cindex
+#: doc/guix.texi:5109
+#, no-wrap
+msgid "subdirectory, channels"
+msgstr "subdirectorio, canales"
+
+#. type: Plain text
+#: doc/guix.texi:5113
+msgid "As a channel author, you may want to keep your channel modules in a sub-directory.  If your modules are in the sub-directory @file{guix}, you must add a meta-data file @file{.guix-channel} that contains:"
+msgstr "Como autora de un canal, es posible que desee mantener los módulos de su canal en un subdirectorio. Si sus módulos se encuentran en el subdirectorio @file{guix}, debe añadir un archivo @file{.guix-channel} de metadatos que contenga:"
+
+#. type: lisp
+#: doc/guix.texi:5118
+#, no-wrap
+msgid ""
+"(channel\n"
+"  (version 0)\n"
+"  (directory \"guix\"))\n"
+msgstr ""
+"(channel\n"
+"  (version 0)\n"
+"  (directory \"guix\"))\n"
+
+#. type: cindex
+#: doc/guix.texi:5123
+#, no-wrap
+msgid "dependencies, channels"
+msgstr "dependencias, canales"
+
+#. type: cindex
+#: doc/guix.texi:5124
+#, no-wrap
+msgid "meta-data, channels"
+msgstr "metadatos, canales"
+
+#. type: Plain text
+#: doc/guix.texi:5129
+msgid "Channel authors may decide to augment a package collection provided by other channels.  They can declare their channel to be dependent on other channels in a meta-data file @file{.guix-channel}, which is to be placed in the root of the channel repository."
+msgstr "Las autoras de canales pueden decidir aumentar una colección de paquetes proporcionada por otros canales. Pueden declarar su canal como dependiente de otros canales en el archivo de metadatos @file{.guix-channel}, que debe encontrarse en la raíz del repositorio del canal."
+
+#. type: Plain text
+#: doc/guix.texi:5131
+msgid "The meta-data file should contain a simple S-expression like this:"
+msgstr "Este archivo de metadatos debe contener una expresión-S simple como esta:"
+
+#. type: lisp
+#: doc/guix.texi:5139
+#, no-wrap
+msgid ""
+"(channel\n"
+" (version 0)\n"
+" (dependencies\n"
+"  (channel\n"
+"   (name 'some-collection)\n"
+"   (url \"https://example.org/first-collection.git\")\n"
+"\n"
+msgstr ""
+"(channel\n"
+" (version 0)\n"
+" (dependencies\n"
+"  (channel\n"
+"   (name 'una-collecion)\n"
+"   (url \"https://example.org/primera-coleccion.git\")\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:5151
+#, no-wrap
+msgid ""
+"   ;; The 'introduction' bit below is optional: you would\n"
+"   ;; provide it for dependencies that can be authenticated.\n"
+"   (introduction\n"
+"    (channel-introduction\n"
+"      (version 0)\n"
+"      (commit \"a8883b58dc82e167c96506cf05095f37c2c2c6cd\")\n"
+"      (signer \"CABB A931 C0FF EEC6 900D  0CFB 090B 1199 3D9A EBB5\"))))\n"
+"  (channel\n"
+"   (name 'some-other-collection)\n"
+"   (url \"https://example.org/second-collection.git\")\n"
+"   (branch \"testing\"))))\n"
+msgstr ""
+"   ;; El fragmento 'introduction' a continuación es opcional: se puede\n"
+"   ;; proporcionar para dependencias que puedan verificarse.\n"
+"   (introduction\n"
+"    (channel-introduction\n"
+"      (version 0)\n"
+"      (commit \"a8883b58dc82e167c96506cf05095f37c2c2c6cd\")\n"
+"      (signer \"CABB A931 C0FF EEC6 900D  0CFB 090B 1199 3D9A EBB5\"))))\n"
+"  (channel\n"
+"   (name 'otra-coleccion)\n"
+"   (url \"https://example.org/segunda-coleccion.git\")\n"
+"   (branch \"pruebas\"))))\n"
+
+#. type: Plain text
+#: doc/guix.texi:5157
+msgid "In the above example this channel is declared to depend on two other channels, which will both be fetched automatically.  The modules provided by the channel will be compiled in an environment where the modules of all these declared channels are available."
+msgstr "En el ejemplo previo, este canal se declara como dependiente de otros dos canales, que se obtendrán de manera automática. Los módulos proporcionados por el canal se compilarán en un entorno donde los módulos de todos estos canales declarados estén disponibles."
+
+#. type: Plain text
+#: doc/guix.texi:5161
+msgid "For the sake of reliability and maintainability, you should avoid dependencies on channels that you don't control, and you should aim to keep the number of dependencies to a minimum."
+msgstr "De cara a la confianza proporcionada y el esfuerzo que supondrá su mantenimiento, debería evitar depender de canales que no controle, y debería intentar minimizar el número de dependencias."
+
+#. type: cindex
+#: doc/guix.texi:5165
+#, no-wrap
+msgid "channel authorizations"
+msgstr "autorizaciones del canal"
+
+#. type: anchor{#1}
+#: doc/guix.texi:5179
+msgid "channel-authorizations"
+msgstr "channel-authorizations"
+
+# FUZZY
+#. type: Plain text
+#: doc/guix.texi:5179
+msgid "As we saw above, Guix ensures the source code it pulls from channels comes from authorized developers.  As a channel author, you need to specify the list of authorized developers in the @file{.guix-authorizations} file in the channel's Git repository.  The authentication rule is simple: each commit must be signed by a key listed in the @file{.guix-authorizations} file of its parent commit(s)@footnote{Git commits form a @dfn{directed acyclic graph} (DAG).  Each commit can have zero or more parents; ``regular'' commits have one parent and merge commits have two parent commits.  Read @uref{https://eagain.net/articles/git-for-computer-scientists/, @i{Git for Computer Scientists}} for a great overview.} The @file{.guix-authorizations} file looks like this:"
+msgstr "Como hemos visto previamente, Guix se asegura de que el código fuente que obtiene de los canales proviene de desarrolladoras autorizadas. Como autora del canal, es necesario que especifique la lista de desarrolladoras autorizadas en el archivo @file{.guix-authorizations} del repositorio Git del canal. Las reglas para la verificación son simples: cada revisión debe firmarse con una de las claves enumeradas en el archivo @file{.guix-authorizations} de la revisión o revisiones anteriores@footnote{Las revisiones en Git forman un @dfn{grafo acíclico dirigido} (DAG). Cada revisión puede tener cero o más antecesores; las revisiones ``normales'' tienen un antecesor, y las revisiones de mezcla tienen dos antecesores.  Lea el artículo en inglés @uref{https://eagain.net/articles/git-for-computer-scientists/, @i{Git for Computer Scientists}} para una buena introducción.} El archivo @file{.guix-authorizations} tiene está estructura básica:"
+
+#. type: lisp
+#: doc/guix.texi:5182
+#, no-wrap
+msgid ""
+";; Example '.guix-authorizations' file.\n"
+"\n"
+msgstr ""
+";; Archivo '.guix-authorizations' de ejemplo.\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:5185
+#, no-wrap
+msgid ""
+"(authorizations\n"
+" (version 0)               ;current file format version\n"
+"\n"
+msgstr ""
+"(authorizations\n"
+" (version 0)               ;versión de formato actual\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:5192
+#, no-wrap
+msgid ""
+" ((\"AD17 A21E F8AE D8F1 CC02  DBD9 F8AE D8F1 765C 61E3\"\n"
+"   (name \"alice\"))\n"
+"  (\"2A39 3FFF 68F4 EF7A 3D29  12AF 68F4 EF7A 22FB B2D5\"\n"
+"   (name \"bob\"))\n"
+"  (\"CABB A931 C0FF EEC6 900D  0CFB 090B 1199 3D9A EBB5\"\n"
+"   (name \"charlie\"))))\n"
+msgstr ""
+" ((\"AD17 A21E F8AE D8F1 CC02  DBD9 F8AE D8F1 765C 61E3\"\n"
+"   (name \"alicia\"))\n"
+"  (\"CABB A931 C0FF EEC6 900D  0CFB 090B 1199 3D9A EBB5\"\n"
+"   (name \"carlos\"))\n"
+"  (\"2A39 3FFF 68F4 EF7A 3D29  12AF 68F4 EF7A 22FB B2D5\"\n"
+"   (name \"rober\"))))\n"
+
+#. type: Plain text
+#: doc/guix.texi:5196
+msgid "Each fingerprint is followed by optional key/value pairs, as in the example above.  Currently these key/value pairs are ignored."
+msgstr "Cada huella va seguida de pares clave/valor opcionales, como en el ejemplo siguiente. Actualmente se ignoran dichos pares."
+
+#. type: Plain text
+#: doc/guix.texi:5201
+msgid "This authentication rule creates a chicken-and-egg issue: how do we authenticate the first commit? Related to that: how do we deal with channels whose repository history contains unsigned commits and lack @file{.guix-authorizations}? And how do we fork existing channels?"
+msgstr "Estas reglas de verificación dan lugar a un problema ``del huevo y la gallina'': ¿cómo se verifica la primera revisión? En relación con esto: ¿cómo se gestionan los canales cuyo repositorio tiene en su historia revisiones sin firmar y carece del archivo @file{.guix-authorizations}? ¿Y cómo creamos un nuevo canal separado en base a un canal ya existente?"
+
+#. type: cindex
+#: doc/guix.texi:5202
+#, no-wrap
+msgid "channel introduction"
+msgstr "presentación del canal"
+
+#. type: Plain text
+#: doc/guix.texi:5209
+msgid "Channel introductions answer these questions by describing the first commit of a channel that should be authenticated.  The first time a channel is fetched with @command{guix pull} or @command{guix time-machine}, the command looks up the introductory commit and verifies that it is signed by the specified OpenPGP key.  From then on, it authenticates commits according to the rule above."
+msgstr "La presentación de canales responde a estas preguntas describiendo la primera revisión de un canal que debe estar firmada. La primera vez que se obtiene un canal con @command{guix pull} o @command{guix time-machine}, la orden busca la revisión de la presentación y verifica que está firmada con la clave OpenPGP especificada. De ahí en adelante, verifica las revisiones de acuerdo con las reglas previas."
+
+#. type: Plain text
+#: doc/guix.texi:5216
+msgid "Additionally, your channel must provide all the OpenPGP keys that were ever mentioned in @file{.guix-authorizations}, stored as @file{.key} files, which can be either binary or ``ASCII-armored''.  By default, those @file{.key} files are searched for in the branch named @code{keyring} but you can specify a different branch name in @code{.guix-channel} like so:"
+msgstr "De manera adicional, su canal debe proporcionar todas las claves públicas que hayan sido mencionadas en @file{.guix-authorizations}, almacenadas como archivos @file{.key}, los cuales pueden ser binarios o tener ``armadura ASCII''. De manera predeterminada, esos archivos @file{.key} se buscan en la rama llamada @code{keyring} pero puede especificar una rama diferente en @code{.guix-channel} de este modo:"
+
+#. type: lisp
+#: doc/guix.texi:5221
+#, no-wrap
+msgid ""
+"(channel\n"
+"  (version 0)\n"
+"  (keyring-reference \"my-keyring-branch\"))\n"
+msgstr ""
+"(channel\n"
+"  (version 0)\n"
+"  (keyring-reference \"mi-rama-de-claves\"))\n"
+
+#. type: Plain text
+#: doc/guix.texi:5225
+msgid "To summarize, as the author of a channel, there are three things you have to do to allow users to authenticate your code:"
+msgstr "En resumen, como autora de un canal, hay tres cosas que debe hacer para permitir que las usuarias verifiquen su código:"
+
+#. type: enumerate
+#: doc/guix.texi:5231
+msgid "Export the OpenPGP keys of past and present committers with @command{gpg --export} and store them in @file{.key} files, by default in a branch named @code{keyring} (we recommend making it an @dfn{orphan branch})."
+msgstr "Exportar las claves OpenPGP de quienes contribuyan en el presente y quienes hayan contribuido en el pasado con @command{gpg --export} y almacenarlas en archivos @file{.key}, de manera predeterminada en una rama llamada @code{keyring} (recomendamos que sea una @dfn{rama huérfana})."
+
+#. type: enumerate
+#: doc/guix.texi:5236
+msgid "Introduce an initial @file{.guix-authorizations} in the channel's repository.  Do that in a signed commit (@pxref{Commit Access}, for information on how to sign Git commits.)"
+msgstr "Introducir un archivo inicial @file{.guix-authorizations} en el repositorio del canal. Hágalo con una revisión firmada (@pxref{Commit Access}, para más información sobre cómo firmar revisiones)."
+
+#. type: enumerate
+#: doc/guix.texi:5242
+msgid "Advertise the channel introduction, for instance on your channel's web page.  The channel introduction, as we saw above, is the commit/key pair---i.e., the commit that introduced @file{.guix-authorizations}, and the fingerprint of the OpenPGP used to sign it."
+msgstr "Anuncie la presentación del canal, por ejemplo, en la página web de su canal. La presentación del canal, como hemos visto antes, es el par revisión/clave---es decir, la revisión que introdujo el archivo @file{.guix-authorizations}, y la huella de la clave de OpenPGP usada para firmarlo."
+
+#. type: Plain text
+#: doc/guix.texi:5247
+msgid "Before pushing to your public Git repository, you can run @command{guix git-authenticate} to verify that you did sign all the commits you are about to push with an authorized key:"
+msgstr "Antes de que suba los cambios a su repositorio Git público puede ejecutar @command{guix git-authenticate} para verificar que ha firmado todas las revisiones que va a subir con una clave autorizada:"
+
+#. type: example
+#: doc/guix.texi:5250
+#, no-wrap
+msgid "guix git authenticate @var{commit} @var{signer}\n"
+msgstr "guix git authenticate @var{revisión} @var{firma}\n"
+
+#. type: Plain text
+#: doc/guix.texi:5255
+msgid "where @var{commit} and @var{signer} are your channel introduction.  @xref{Invoking guix git authenticate}, for details."
+msgstr "donde @var{revisión} y @var{firma} son la presentación de su canal.  @xref{Invoking guix git authenticate}, para obtener más detalles."
+
+#. type: Plain text
+#: doc/guix.texi:5262
+msgid "Publishing a signed channel requires discipline: any mistake, such as an unsigned commit or a commit signed by an unauthorized key, will prevent users from pulling from your channel---well, that's the whole point of authentication! Pay attention to merges in particular: merge commits are considered authentic if and only if they are signed by a key present in the @file{.guix-authorizations} file of @emph{both} branches."
+msgstr "Publicar un canal firmado requiere disciplina: cualquier error, como una revisión sin firmar o una revisión firmada por una clave no autorizada, evitará que las usuarias obtengan nuevas versiones de su canal---bueno, ¡ese es principalmente el objetivo de la verificación! Preste especial atención a la mezcla de ramas: las revisiones de mezcla se consideran auténticas únicamente en caso de que la clave que firma esté presente en el archivo @file{.guix-authorizations} de @emph{ambas} ramas."
+
+#. type: cindex
+#: doc/guix.texi:5266
+#, no-wrap
+msgid "primary URL, channels"
+msgstr "URL primaria, canales"
+
+#. type: Plain text
+#: doc/guix.texi:5269
+msgid "Channel authors can indicate the primary URL of their channel's Git repository in the @file{.guix-channel} file, like so:"
+msgstr "Las autoras pueden declarar la URL primaria del repositorio Git de su canal en el archivo @file{.guix-channel} de esta manera:"
+
+#. type: lisp
+#: doc/guix.texi:5274
+#, no-wrap
+msgid ""
+"(channel\n"
+"  (version 0)\n"
+"  (url \"https://example.org/guix.git\"))\n"
+msgstr ""
+"(channel\n"
+"  (version 0)\n"
+"  (url \"https://example.org/guix.git\"))\n"
+
+# FUZZY
+#. type: Plain text
+#: doc/guix.texi:5281
+msgid "This allows @command{guix pull} to determine whether it is pulling code from a mirror of the channel; when that is the case, it warns the user that the mirror might be stale and displays the primary URL.  That way, users cannot be tricked into fetching code from a stale mirror that does not receive security updates."
+msgstr "Esto permite a @command{guix pull} determinar si va a obtener el código de un servidor espejo del canal; y cuando este es el caso emitir un aviso para que la usuaria sea consciente de que el espejo puede estar desactualizado y muestra la URL principal. De esta manera no se puede engañar a las usuarias para que obtengan código de un repositorio desactualizado que no está recibiendo actualizaciones de seguridad."
+
+#. type: Plain text
+#: doc/guix.texi:5285
+msgid "This feature only makes sense for authenticated repositories, such as the official @code{guix} channel, for which @command{guix pull} ensures the code it fetches is authentic."
+msgstr "Esta caraterística únicamente tiene sentido en repositorios verificables, como el canal oficial @code{guix}, en el que @command{guix pull} se asegura de verificar la autenticidad del código que obtiene."
+
+#. type: cindex
+#: doc/guix.texi:5289
+#, no-wrap
+msgid "news, for channels"
+msgstr "noticias, para canales"
+
+#. type: Plain text
+#: doc/guix.texi:5293
+msgid "Channel authors may occasionally want to communicate to their users information about important changes in the channel.  You'd send them all an email, but that's not convenient."
+msgstr "Las autoras los canales pueden querer ocasionalmente comunicar información a sus usuarias acerca de cambios importantes en el canal. Podrían mandar un correo a todo el mundo, pero esto no es tan conveniente."
+
+#. type: Plain text
+#: doc/guix.texi:5298
+msgid "Instead, channels can provide a @dfn{news file}; when the channel users run @command{guix pull}, that news file is automatically read and @command{guix pull --news} can display the announcements that correspond to the new commits that have been pulled, if any."
+msgstr "En vez de eso, los canales proporcionan un @dfn{archivo de noticias}; cuando las usuarias de un canal ejecutan @command{guix pull}, dicho archivo de noticias se lee automáticamente y @command{guix pull --news} puede mostrar los anuncios que correspondan a las nuevas revisiones que se han obtenido, si existen."
+
+#. type: Plain text
+#: doc/guix.texi:5301
+msgid "To do that, channel authors must first declare the name of the news file in their @file{.guix-channel} file:"
+msgstr "Para hacerlo, las autoras del canal deben declarar primero el nombre del archivo de noticias en su archivo @file{.guix-channel}:"
+
+#. type: lisp
+#: doc/guix.texi:5306
+#, no-wrap
+msgid ""
+"(channel\n"
+"  (version 0)\n"
+"  (news-file \"etc/news.txt\"))\n"
+msgstr ""
+"(channel\n"
+"  (version 0)\n"
+"  (news-file \"etc/noticias.txt\"))\n"
+
+#. type: Plain text
+#: doc/guix.texi:5310
+msgid "The news file itself, @file{etc/news.txt} in this example, must look something like this:"
+msgstr "El archivo de noticias en sí, @file{etc/noticias.txt} en este ejemplo, debe ser similar a este:"
+
+#. type: lisp
+#: doc/guix.texi:5323
+#, no-wrap
+msgid ""
+"(channel-news\n"
+"  (version 0)\n"
+"  (entry (tag \"the-bug-fix\")\n"
+"         (title (en \"Fixed terrible bug\")\n"
+"                (fr \"Oh la la\"))\n"
+"         (body (en \"@@emph@{Good news@}!  It's fixed!\")\n"
+"               (eo \"Certe ĝi pli bone funkcias nun!\")))\n"
+"  (entry (commit \"bdcabe815cd28144a2d2b4bc3c5057b051fa9906\")\n"
+"         (title (en \"Added a great package\")\n"
+"                (ca \"Què vol dir guix?\"))\n"
+"         (body (en \"Don't miss the @@code@{hello@} package!\"))))\n"
+msgstr ""
+"(channel-news\n"
+"  (version 0)\n"
+"  (entry (tag \"the-bug-fix\")\n"
+"         (title (en \"Fixed terrible bug\")\n"
+"                (fr \"Oh la la\")\n"
+"                (es \"Podemos volver a dormir en calma\"))\n"
+"         (body (en \"@@emph@{Good news@}!  It's fixed!\")\n"
+"               (eo \"Certe ĝi pli bone funkcias nun!\")\n"
+"               (es \"¡Al fin se ha corregido el error!\")))\n"
+"  (entry (commit \"bdcabe815cd28144a2d2b4bc3c5057b051fa9906\")\n"
+"         (title (en \"Added a great package\")\n"
+"                (ca \"Què vol dir guix?\")\n"
+"                (es \"Nuevo paquete añadido\"))\n"
+"         (body (en \"Don't miss the @@code@{hello@} package!\")\n"
+"               (es \"Atención a la versátil herramienta @@code@{hello@}\"))))\n"
+
+#. type: Plain text
+#: doc/guix.texi:5330
+msgid "While the news file is using the Scheme syntax, avoid naming it with a @file{.scm} extension or else it will get picked up when building the channel and yield an error since it is not a valid module.  Alternatively, you can move the channel module to a subdirectory and store the news file in another directory."
+msgstr "Aunque el archivo de noticias use sintaxis de Scheme evite nombrarlo con @file{.scm} como extensión o se usará cuando se construya el canal, lo que emitirá un error debido a que no es un módulo válido. También puede mover el módulo del canal a un subdirectorio y almacenar el archivo de noticias en otro directorio."
+
+#. type: Plain text
+#: doc/guix.texi:5335
+msgid "The file consists of a list of @dfn{news entries}.  Each entry is associated with a commit or tag: it describes changes made in this commit, possibly in preceding commits as well.  Users see entries only the first time they obtain the commit the entry refers to."
+msgstr "Este archivo consiste en una lista de @dfn{entradas de noticias}. Cada entrada@footnote{NdT: ``entry'' en inglés} se asocia a una revisión o una etiqueta: describe los cambios llevados a cabo en ella, y posiblemente también en revisiones anteriores. Las usuarias ven las entradas únicamente la primera vez que obtienen la revisión a la que la entrada hace referencia."
+
+#. type: Plain text
+#: doc/guix.texi:5341
+msgid "The @code{title} field should be a one-line summary while @code{body} can be arbitrarily long, and both can contain Texinfo markup (@pxref{Overview,,, texinfo, GNU Texinfo}).  Both the title and body are a list of language tag/message tuples, which allows @command{guix pull} to display news in the language that corresponds to the user's locale."
+msgstr "El campo del título (@code{title}) debe ser un resumen de una línea mientras que el cuerpo de la noticia (@code{body}) puede ser arbitrariamente largo, y ambos pueden contener marcas de Texinfo (@pxref{Overview,,, texinfo, GNU Texinfo}). Tanto el título como el cuerpo son una lista de tuplas de etiqueta de lengua y mensaje, lo que permite a @command{guix pull} mostrar las noticias en la lengua que corresponde a la localización de la usuaria."
+
+#. type: Plain text
+#: doc/guix.texi:5347
+msgid "If you want to translate news using a gettext-based workflow, you can extract translatable strings with @command{xgettext} (@pxref{xgettext Invocation,,, gettext, GNU Gettext Utilities}).  For example, assuming you write news entries in English first, the command below creates a PO file containing the strings to translate:"
+msgstr "Si desea traducir las noticias siguiendo un flujo de trabajo basado en gettext, puede extraer las cadenas traducibles con @command{xgettext} (@pxref{xgettext Invocation,,, gettext, GNU Gettext Utilities}). Por ejemplo, asumiendo que escribe las entradas de noticias primero en inglés, la siguiente orden crea un archivo PO que contiene las cadenas a traducir:"
+
+#. type: example
+#: doc/guix.texi:5350
+#, no-wrap
+msgid "xgettext -o news.po -l scheme -ken etc/news.txt\n"
+msgstr "xgettext -o news.po -l scheme -ken etc/news.txt\n"
+
+# FUZZY
+#. type: Plain text
+#: doc/guix.texi:5354
+msgid "To sum up, yes, you could use your channel as a blog.  But beware, this is @emph{not quite} what your users might expect."
+msgstr "En resumen, sí, puede usar su canal como un blog. Pero tenga en cuenta que esto puede que @emph{no sea exactamente} lo que sus usuarias podrían esperar."
+
+#. type: cindex
+#: doc/guix.texi:5360
 #, no-wrap
 msgid "software development"
 msgstr "desarrollo de software"
 
 #. type: Plain text
-#: doc/guix.texi:4655
+#: doc/guix.texi:5364
 msgid "If you are a software developer, Guix provides tools that you should find helpful---independently of the language you're developing in.  This is what this chapter is about."
 msgstr "Si es una desarrolladora de software, Guix le proporciona herramientas que debería encontrar útiles---independientemente del lenguaje en el que desarrolle actualmente. Esto es sobre lo que trata este capítulo."
 
 #. type: Plain text
-#: doc/guix.texi:4661
+#: doc/guix.texi:5370
 msgid "The @command{guix environment} command provides a convenient way to set up @dfn{development environments} containing all the dependencies and tools necessary to work on the software package of your choice.  The @command{guix pack} command allows you to create @dfn{application bundles} that can be easily distributed to users who do not run Guix."
 msgstr "La orden @command{guix environment} proporciona una manera conveniente de configurar un @dfn{entorno de desarrollo} que contenga todas las dependencias y herramientas necesarias para trabajar en el paquete de software de su elección. La orden @command{guix pack} le permite crear @dfn{aplicaciones empaquetadas} que pueden ser distribuidas con facilidad a usuarias que no usen Guix."
 
 #. type: section
-#: doc/guix.texi:4668
+#: doc/guix.texi:5379
 #, no-wrap
 msgid "Invoking @command{guix environment}"
 msgstr "Invocación de @command{guix environment}"
 
 #. type: cindex
-#: doc/guix.texi:4670
+#: doc/guix.texi:5381
 #, no-wrap
 msgid "reproducible build environments"
 msgstr "entornos de construcción reproducibles"
 
 #. type: cindex
-#: doc/guix.texi:4671
+#: doc/guix.texi:5382
 #, no-wrap
 msgid "development environments"
 msgstr "entornos de desarrollo"
 
 #. type: command{#1}
-#: doc/guix.texi:4672
+#: doc/guix.texi:5383
 #, no-wrap
 msgid "guix environment"
 msgstr "guix environment"
 
 #. type: cindex
-#: doc/guix.texi:4673
+#: doc/guix.texi:5384
 #, no-wrap
 msgid "environment, package build environment"
 msgstr "entorno, entorno de construcción de paquetes"
 
 #. type: Plain text
-#: doc/guix.texi:4679
+#: doc/guix.texi:5390
 msgid "The purpose of @command{guix environment} is to assist hackers in creating reproducible development environments without polluting their package profile.  The @command{guix environment} tool takes one or more packages, builds all of their inputs, and creates a shell environment to use them."
 msgstr "El propósito de @command{guix environment} es ayudar a las hackers en la creación de entornos de desarrollo reproducibles sin modificar los paquetes de su perfil. La herramienta @command{guix environment} toma uno o más paquetes, construye todas sus entradas y crea un entorno shell para usarlos."
 
 #. type: example
-#: doc/guix.texi:4684
+#: doc/guix.texi:5395
 #, no-wrap
 msgid "guix environment @var{options} @var{package}@dots{}\n"
 msgstr "guix environment @var{opciones} @var{paquete}@dots{}\n"
 
 #. type: Plain text
-#: doc/guix.texi:4688
+#: doc/guix.texi:5399
 msgid "The following example spawns a new shell set up for the development of GNU@tie{}Guile:"
 msgstr "El ejemplo siguiente lanza un nuevo shell preparado para el desarrollo de GNU@tie{}Guile:"
 
 #. type: example
-#: doc/guix.texi:4691
+#: doc/guix.texi:5402
 #, no-wrap
 msgid "guix environment guile\n"
 msgstr "guix environment guile\n"
 
 #. type: Plain text
-#: doc/guix.texi:4708
-msgid "If the needed dependencies are not built yet, @command{guix environment} automatically builds them.  The environment of the new shell is an augmented version of the environment that @command{guix environment} was run in.  It contains the necessary search paths for building the given package added to the existing environment variables.  To create a ``pure'' environment, in which the original environment variables have been unset, use the @code{--pure} option@footnote{Users sometimes wrongfully augment environment variables such as @code{PATH} in their @file{~/.bashrc} file.  As a consequence, when @code{guix environment} launches it, Bash may read @file{~/.bashrc}, thereby introducing ``impurities'' in these environment variables.  It is an error to define such environment variables in @file{.bashrc}; instead, they should be defined in @file{.bash_profile}, which is sourced only by log-in shells.  @xref{Bash Startup Files,,, bash, The GNU Bash Reference Manual}, for details on Bash start-up files.}."
-msgstr "Si las dependencias necesarias no están construidas todavía, @command{guix environment} las construye automáticamente. El entorno del nuevo shell es una versión aumentada del entorno en el que @command{guix environment} se ejecutó. Contiene las rutas de búsqueda necesarias para la construcción del paquete proporcionado añadidas a las variables ya existentes. Para crear un entorno ``puro'', donde las variables de entorno previas no existen, use la opción @code{--pure}@footnote{Las usuarias habitualmente aumentan de forma incorrecta las variables de entorno como @code{PATH} en su fichero @file{~/.bashrc}. Como consecuencia, cuando @code{guix environment} se ejecuta, Bash puede leer @file{~/.bashrc}, por tanto introduciendo ``impurezas'' en esas variables de entorno. Es un error definir dichas variables de entorno en @file{~/.bashrc}; en vez de ello deben definirse en @file{.bash_profile}, el cual es únicamente cargado por el shell de ingreso al sistema. @xref{Bash Startup Files,,, bash, The GNU Bash Reference Manual}, para detalles sobre los ficheros de inicio de Bash.}."
+#: doc/guix.texi:5419
+msgid "If the needed dependencies are not built yet, @command{guix environment} automatically builds them.  The environment of the new shell is an augmented version of the environment that @command{guix environment} was run in.  It contains the necessary search paths for building the given package added to the existing environment variables.  To create a ``pure'' environment, in which the original environment variables have been unset, use the @option{--pure} option@footnote{Users sometimes wrongfully augment environment variables such as @env{PATH} in their @file{~/.bashrc} file.  As a consequence, when @command{guix environment} launches it, Bash may read @file{~/.bashrc}, thereby introducing ``impurities'' in these environment variables.  It is an error to define such environment variables in @file{.bashrc}; instead, they should be defined in @file{.bash_profile}, which is sourced only by log-in shells.  @xref{Bash Startup Files,,, bash, The GNU Bash Reference Manual}, for details on Bash start-up files.}."
+msgstr "Si las dependencias necesarias no están construidas todavía, @command{guix environment} las construye automáticamente. El entorno del nuevo shell es una versión aumentada del entorno en el que @command{guix environment} se ejecutó. Contiene las rutas de búsqueda necesarias para la construcción del paquete proporcionado añadidas a las variables ya existentes. Para crear un entorno ``puro'', donde las variables de entorno previas no existen, use la opción @option{--pure}@footnote{Las usuarias habitualmente aumentan de forma incorrecta las variables de entorno como @env{PATH} en su archivo @file{~/.bashrc}. Como consecuencia, cuando @code{guix environment} se ejecuta, Bash puede leer @file{~/.bashrc}, por tanto introduciendo ``impurezas'' en esas variables de entorno. Es un error definir dichas variables de entorno en @file{~/.bashrc}; en vez de ello deben definirse en @file{.bash_profile}, el cual es únicamente cargado por el shell de ingreso al sistema. @xref{Bash Startup Files,,, bash, The GNU Bash Reference Manual}, para detalles sobre los archivos de inicio de Bash.}."
 
 #. type: vindex
-#: doc/guix.texi:4709
+#: doc/guix.texi:5420
 #, no-wrap
 msgid "GUIX_ENVIRONMENT"
 msgstr "GUIX_ENVIRONMENT"
@@ -10434,12 +11809,12 @@ msgstr "GUIX_ENVIRONMENT"
 # FUZZY
 # MAAV (TODO): Prompt, comprobar bash...
 #. type: Plain text
-#: doc/guix.texi:4715
-msgid "@command{guix environment} defines the @code{GUIX_ENVIRONMENT} variable in the shell it spawns; its value is the file name of the profile of this environment.  This allows users to, say, define a specific prompt for development environments in their @file{.bashrc} (@pxref{Bash Startup Files,,, bash, The GNU Bash Reference Manual}):"
-msgstr "@command{guix environment} define la variable @code{GUIX_ENVIRONMENT} en el shell que lanza; su valor es el nombre de fichero del perfil para este entorno. Esto permite a las usuarias, digamos, definir un prompt para entornos de desarrollo en su @file{.bashrc} (@pxref{Bash Startup Files,,, bash, The GNU Bash Reference Manual}):"
+#: doc/guix.texi:5426
+msgid "@command{guix environment} defines the @env{GUIX_ENVIRONMENT} variable in the shell it spawns; its value is the file name of the profile of this environment.  This allows users to, say, define a specific prompt for development environments in their @file{.bashrc} (@pxref{Bash Startup Files,,, bash, The GNU Bash Reference Manual}):"
+msgstr "@command{guix environment} define la variable @env{GUIX_ENVIRONMENT} en el shell que lanza; su valor es el nombre de archivo del perfil para este entorno. Esto permite a las usuarias, digamos, definir un prompt para entornos de desarrollo en su @file{.bashrc} (@pxref{Bash Startup Files,,, bash, The GNU Bash Reference Manual}):"
 
 #. type: example
-#: doc/guix.texi:4721
+#: doc/guix.texi:5432
 #, no-wrap
 msgid ""
 "if [ -n \"$GUIX_ENVIRONMENT\" ]\n"
@@ -10453,288 +11828,322 @@ msgstr ""
 "fi\n"
 
 #. type: Plain text
-#: doc/guix.texi:4725
+#: doc/guix.texi:5436
 msgid "...@: or to browse the profile:"
 msgstr "...@: o para explorar el perfil:"
 
 #. type: example
-#: doc/guix.texi:4728
+#: doc/guix.texi:5439
 #, no-wrap
 msgid "$ ls \"$GUIX_ENVIRONMENT/bin\"\n"
 msgstr "$ ls \"$GUIX_ENVIRONMENT/bin\"\n"
 
 #. type: Plain text
-#: doc/guix.texi:4734
+#: doc/guix.texi:5445
 msgid "Additionally, more than one package may be specified, in which case the union of the inputs for the given packages are used.  For example, the command below spawns a shell where all of the dependencies of both Guile and Emacs are available:"
 msgstr "Adicionalmente, más de un paquete puede ser especificado, en cuyo caso se usa la unión de las entradas de los paquetes proporcionados. Por ejemplo, la siguiente orden lanza un shell donde todas las dependencias tanto de Guile como de Emacs están disponibles:"
 
 #. type: example
-#: doc/guix.texi:4737
+#: doc/guix.texi:5448
 #, no-wrap
 msgid "guix environment guile emacs\n"
 msgstr "guix environment guile emacs\n"
 
 #. type: Plain text
-#: doc/guix.texi:4742
+#: doc/guix.texi:5453
 msgid "Sometimes an interactive shell session is not desired.  An arbitrary command may be invoked by placing the @code{--} token to separate the command from the rest of the arguments:"
 msgstr "A veces no se desea una sesión interactiva de shell. Una orden arbitraria se puede invocar usando el valor @code{--} para separar la orden del resto de los parámetros:"
 
 #. type: example
-#: doc/guix.texi:4745
+#: doc/guix.texi:5456
 #, no-wrap
 msgid "guix environment guile -- make -j4\n"
 msgstr "guix environment guile -- make -j4\n"
 
 #. type: Plain text
-#: doc/guix.texi:4751
+#: doc/guix.texi:5462
 msgid "In other situations, it is more convenient to specify the list of packages needed in the environment.  For example, the following command runs @command{python} from an environment containing Python@tie{}2.7 and NumPy:"
 msgstr "En otras situaciones, es más conveniente especificar una lista de paquetes necesarios en el entorno. Por ejemplo, la siguiente orden ejecuta @command{python} desde un entorno que contiene Python@tie{}2.7 y NumPy:"
 
 #. type: example
-#: doc/guix.texi:4754
+#: doc/guix.texi:5465
 #, no-wrap
 msgid "guix environment --ad-hoc python2-numpy python-2.7 -- python\n"
 msgstr "guix environment --ad-hoc python2-numpy python-2.7 -- python\n"
 
 #. type: Plain text
-#: doc/guix.texi:4765
-msgid "Furthermore, one might want the dependencies of a package and also some additional packages that are not build-time or runtime dependencies, but are useful when developing nonetheless.  Because of this, the @code{--ad-hoc} flag is positional.  Packages appearing before @code{--ad-hoc} are interpreted as packages whose dependencies will be added to the environment.  Packages appearing after are interpreted as packages that will be added to the environment directly.  For example, the following command creates a Guix development environment that additionally includes Git and strace:"
-msgstr "Más allá, se pueden desear las dependencias de un paquete y también algunos paquetes adicionales que no son dependencias ni en tiempo de construcción ni en el de ejecución, pero son útiles no obstante para el desarrollo. Por esta razón, la opción @code{--ad-hoc} es posicional. Los paquetes que aparecen antes de @code{--ad-hoc} se interpretan como paquetes cuyas dependencias se añadirán al entorno. Los paquetes que aparecen después se interpretan como paquetes que se añadirán directamente al entorno. Por ejemplo, la siguiente orden crea un entorno de desarrollo Guix que incluye adicionalmente Git y strace:"
+#: doc/guix.texi:5476
+msgid "Furthermore, one might want the dependencies of a package and also some additional packages that are not build-time or runtime dependencies, but are useful when developing nonetheless.  Because of this, the @option{--ad-hoc} flag is positional.  Packages appearing before @option{--ad-hoc} are interpreted as packages whose dependencies will be added to the environment.  Packages appearing after are interpreted as packages that will be added to the environment directly.  For example, the following command creates a Guix development environment that additionally includes Git and strace:"
+msgstr "Es más, se pueden desear las dependencias de un paquete y también algunos paquetes adicionales que no son dependencias ni en tiempo de construcción ni en el de ejecución, pero son útiles no obstante para el desarrollo. Por esta razón, la opción @option{--ad-hoc} es posicional. Los paquetes que aparecen antes de @option{--ad-hoc} se interpretan como paquetes cuyas dependencias se añadirán al entorno. Los paquetes que aparecen después se interpretan como paquetes que se añadirán directamente al entorno. Por ejemplo, la siguiente orden crea un entorno de desarrollo Guix que incluye adicionalmente Git y strace:"
 
 #. type: example
-#: doc/guix.texi:4768
+#: doc/guix.texi:5479
 #, no-wrap
 msgid "guix environment --pure guix --ad-hoc git strace\n"
 msgstr "guix environment --pure guix --ad-hoc git strace\n"
 
+#. type: item
+#: doc/guix.texi:5481 doc/guix.texi:5642 doc/guix.texi:12625
+#: doc/guix.texi:30966
+#, no-wrap
+msgid "container"
+msgstr "container"
+
 #. type: Plain text
-#: doc/guix.texi:4777
+#: doc/guix.texi:5489
 msgid "Sometimes it is desirable to isolate the environment as much as possible, for maximal purity and reproducibility.  In particular, when using Guix on a host distro that is not Guix System, it is desirable to prevent access to @file{/usr/bin} and other system-wide resources from the development environment.  For example, the following command spawns a Guile REPL in a ``container'' where only the store and the current working directory are mounted:"
 msgstr "En ocasiones es deseable aislar el entorno tanto como sea posible, para obtener la máxima pureza y reproducibilidad. En particular, cuando se usa Guix en una distribución anfitriona que no es el sistema Guix, es deseable prevenir acceso a @file{/usr/bin} y otros recursos del sistema desde el entorno de desarrollo. Por ejemplo, la siguiente orden lanza un REPL Guile en un ``contenedor'' donde únicamente el almacén y el directorio actual están montados:"
 
 #. type: example
-#: doc/guix.texi:4780
+#: doc/guix.texi:5492
 #, no-wrap
 msgid "guix environment --ad-hoc --container guile -- guile\n"
 msgstr "guix environment --ad-hoc --container guile -- guile\n"
 
 #. type: quotation
-#: doc/guix.texi:4784
-msgid "The @code{--container} option requires Linux-libre 3.19 or newer."
-msgstr "La opción @code{--container} requiere Linux-libre 3.19 o más nuevo."
+#: doc/guix.texi:5496
+msgid "The @option{--container} option requires Linux-libre 3.19 or newer."
+msgstr "La opción @option{--container} requiere Linux-libre 3.19 o posterior."
+
+#. type: cindex
+#: doc/guix.texi:5498
+#, no-wrap
+msgid "certificates"
+msgstr "certificados"
 
 #. type: Plain text
-#: doc/guix.texi:4787
+#: doc/guix.texi:5505
+msgid "Another typical use case for containers is to run security-sensitive applications such as a web browser.  To run Eolie, we must expose and share some files and directories; we include @code{nss-certs} and expose @file{/etc/ssl/certs/} for HTTPS authentication; finally we preserve the @env{DISPLAY} environment variable since containerized graphical applications won't display without it."
+msgstr "Otro caso de uso típico para los contenedores es la ejecución de aplicaciones sensibles como navegadores web. Para ejecutar Eolie, debemos exponer y compartir algunos archivos y directorios; incluimos @code{nss-certs} y exponemos @file{/etc/ssl/certs/} para la identificación HTTPS; por último preservamos la variable de entorno @env{DISPLAY} ya que las aplicaciones gráficas en el contenedor no se mostrarían sin ella."
+
+#. type: example
+#: doc/guix.texi:5512
+#, no-wrap
+msgid ""
+"guix environment --preserve='^DISPLAY$' --container --network \\\n"
+"  --expose=/etc/machine-id \\\n"
+"  --expose=/etc/ssl/certs/ \\\n"
+"  --share=$HOME/.local/share/eolie/=$HOME/.local/share/eolie/ \\\n"
+"  --ad-hoc eolie nss-certs dbus --  eolie\n"
+msgstr ""
+"guix environment --preserve='^DISPLAY$' --container --network \\\n"
+"  --expose=/etc/machine-id \\\n"
+"  --expose=/etc/ssl/certs/ \\\n"
+"  --share=$HOME/.local/share/eolie/=$HOME/.local/share/eolie/ \\\n"
+"  --ad-hoc eolie nss-certs dbus --  eolie\n"
+
+#. type: Plain text
+#: doc/guix.texi:5515
 msgid "The available options are summarized below."
 msgstr "Las opciones disponibles se resumen a continuación."
 
 #. type: item
-#: doc/guix.texi:4789 doc/guix.texi:5293 doc/guix.texi:8705
-#: doc/guix.texi:26926
+#: doc/guix.texi:5517 doc/guix.texi:6053 doc/guix.texi:10513
+#: doc/guix.texi:31063
 #, no-wrap
 msgid "--root=@var{file}"
-msgstr "--root=@var{fichero}"
+msgstr "--root=@var{archivo}"
 
 #. type: itemx
-#: doc/guix.texi:4790 doc/guix.texi:5294 doc/guix.texi:8706
-#: doc/guix.texi:26927
+#: doc/guix.texi:5518 doc/guix.texi:6054 doc/guix.texi:10514
+#: doc/guix.texi:31064
 #, no-wrap
 msgid "-r @var{file}"
-msgstr "-r @var{fichero}"
+msgstr "-r @var{archivo}"
 
 #. type: cindex
-#: doc/guix.texi:4791
+#: doc/guix.texi:5519
 #, no-wrap
 msgid "persistent environment"
 msgstr "entorno persistente"
 
 #. type: cindex
-#: doc/guix.texi:4792
+#: doc/guix.texi:5520
 #, no-wrap
 msgid "garbage collector root, for environments"
 msgstr "raíz del recolector de basura, para entornos"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:4795
+#: doc/guix.texi:5523
 msgid "Make @var{file} a symlink to the profile for this environment, and register it as a garbage collector root."
-msgstr "Hace que @var{fichero} sea un enlace simbólico al perfil para este entorno, y lo registra como una raíz del recolector de basura."
+msgstr "Hace que @var{archivo} sea un enlace simbólico al perfil para este entorno, y lo registra como una raíz del recolector de basura."
 
 #. type: table
-#: doc/guix.texi:4798
+#: doc/guix.texi:5526
 msgid "This is useful if you want to protect your environment from garbage collection, to make it ``persistent''."
 msgstr "Esto es útil si desea proteger su entorno de la recolección de basura, hacerlo ``persistente''."
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:4804
+#: doc/guix.texi:5532
 msgid "When this option is omitted, the environment is protected from garbage collection only for the duration of the @command{guix environment} session.  This means that next time you recreate the same environment, you could have to rebuild or re-download packages.  @xref{Invoking guix gc}, for more on GC roots."
 msgstr "Cuando se omite esta opción, el entorno se protege de la recolección de basura únicamente por la duración de la sesión @command{guix environment}. Esto significa que la siguiente vez que vuelva a crear el mismo entorno, puede tener que reconstruir o volver a descargar paquetes. @xref{Invoking guix gc}, para más información sobre las raíces del recolector de basura."
 
 #. type: item
-#: doc/guix.texi:4805 doc/guix.texi:5226 doc/guix.texi:8558 doc/guix.texi:9484
-#: doc/guix.texi:10189 doc/guix.texi:26861
+#: doc/guix.texi:5533 doc/guix.texi:5985 doc/guix.texi:10366
+#: doc/guix.texi:11305 doc/guix.texi:12090 doc/guix.texi:30998
 #, no-wrap
 msgid "--expression=@var{expr}"
 msgstr "--expression=@var{expr}"
 
 #. type: itemx
-#: doc/guix.texi:4806 doc/guix.texi:5227 doc/guix.texi:8559 doc/guix.texi:9485
-#: doc/guix.texi:10190 doc/guix.texi:26862
+#: doc/guix.texi:5534 doc/guix.texi:5986 doc/guix.texi:10367
+#: doc/guix.texi:11306 doc/guix.texi:12091 doc/guix.texi:30999
 #, no-wrap
 msgid "-e @var{expr}"
 msgstr "-e @var{expr}"
 
 #. type: table
-#: doc/guix.texi:4809
+#: doc/guix.texi:5537
 msgid "Create an environment for the package or list of packages that @var{expr} evaluates to."
 msgstr "Crea un entorno para el paquete o lista de paquetes a los que evalúa @var{expr}."
 
 #. type: table
-#: doc/guix.texi:4811
+#: doc/guix.texi:5539
 msgid "For example, running:"
 msgstr "Por ejemplo, ejecutando:"
 
 #. type: example
-#: doc/guix.texi:4814
+#: doc/guix.texi:5542
 #, no-wrap
 msgid "guix environment -e '(@@ (gnu packages maths) petsc-openmpi)'\n"
 msgstr "guix environment -e '(@@ (gnu packages maths) petsc-openmpi)'\n"
 
 #. type: table
-#: doc/guix.texi:4818
+#: doc/guix.texi:5546
 msgid "starts a shell with the environment for this specific variant of the PETSc package."
 msgstr "inicia un shell con el entorno para esta variante específica del paquete PETSc."
 
 #. type: table
-#: doc/guix.texi:4820
+#: doc/guix.texi:5548
 msgid "Running:"
 msgstr "Ejecutar:"
 
 #. type: example
-#: doc/guix.texi:4823
+#: doc/guix.texi:5551
 #, no-wrap
 msgid "guix environment --ad-hoc -e '(@@ (gnu) %base-packages)'\n"
 msgstr "guix environment --ad-hoc -e '(@@ (gnu) %base-packages)'\n"
 
 #. type: table
-#: doc/guix.texi:4826
+#: doc/guix.texi:5554
 msgid "starts a shell with all the base system packages available."
 msgstr "inicia un shell con todos los paquetes básicos del sistema disponibles."
 
 #. type: table
-#: doc/guix.texi:4829
+#: doc/guix.texi:5557
 msgid "The above commands only use the default output of the given packages.  To select other outputs, two element tuples can be specified:"
 msgstr "Las órdenes previas usan únicamente la salida predeterminada de los paquetes dados. Para seleccionar otras salidas, tuplas de dos elementos pueden ser especificadas:"
 
 #. type: example
-#: doc/guix.texi:4832
+#: doc/guix.texi:5560
 #, no-wrap
 msgid "guix environment --ad-hoc -e '(list (@@ (gnu packages bash) bash) \"include\")'\n"
 msgstr "guix environment --ad-hoc -e '(list (@@ (gnu packages bash) bash) \"include\")'\n"
 
 #. type: item
-#: doc/guix.texi:4834
+#: doc/guix.texi:5562
 #, no-wrap
 msgid "--load=@var{file}"
-msgstr "--load=@var{fichero}"
+msgstr "--load=@var{archivo}"
 
 #. type: itemx
-#: doc/guix.texi:4835
+#: doc/guix.texi:5563
 #, no-wrap
 msgid "-l @var{file}"
-msgstr "-l @var{fichero}"
+msgstr "-l @var{archivo}"
 
 #. type: table
-#: doc/guix.texi:4838
+#: doc/guix.texi:5566
 msgid "Create an environment for the package or list of packages that the code within @var{file} evaluates to."
-msgstr "Crea un entorno para el paquete o la lista de paquetes a la que el código en @var{fichero} evalúa."
+msgstr "Crea un entorno para el paquete o la lista de paquetes a la que el código en @var{archivo} evalúa."
 
 #. type: lisp
-#: doc/guix.texi:4844
+#: doc/guix.texi:5572
 #, no-wrap
 msgid "@verbatiminclude environment-gdb.scm\n"
 msgstr "@verbatiminclude environment-gdb.scm\n"
 
 #. type: table
-#: doc/guix.texi:4851
+#: doc/guix.texi:5579
 msgid "Create an environment for the packages contained in the manifest object returned by the Scheme code in @var{file}.  This option can be repeated several times, in which case the manifests are concatenated."
 msgstr "Crea un entorno para los paquetes contenidos en el objeto manifest devuelto por el código Scheme en @var{file}. Esta opción se puede repetir varias veces, en cuyo caso los manifiestos se concatenan."
 
 #. type: table
-#: doc/guix.texi:4855
+#: doc/guix.texi:5583
 msgid "This is similar to the same-named option in @command{guix package} (@pxref{profile-manifest, @option{--manifest}}) and uses the same manifest files."
-msgstr "Esto es similar a la opción del mismo nombre en @command{guix package} (@pxref{profile-manifest, @option{--manifest}}) y usa los mismos ficheros de manifiesto."
+msgstr "Esto es similar a la opción del mismo nombre en @command{guix package} (@pxref{profile-manifest, @option{--manifest}}) y usa los mismos archivos de manifiesto."
 
 #. type: item
-#: doc/guix.texi:4856
+#: doc/guix.texi:5584
 #, no-wrap
 msgid "--ad-hoc"
 msgstr "--ad-hoc"
 
 #. type: table
-#: doc/guix.texi:4861
+#: doc/guix.texi:5589
 msgid "Include all specified packages in the resulting environment, as if an @i{ad hoc} package were defined with them as inputs.  This option is useful for quickly creating an environment without having to write a package expression to contain the desired inputs."
 msgstr "Incluye todos los paquetes especificados en el entorno resultante, como si un paquete @i{ad hoc} hubiese sido definido con ellos como entradas. Esta opción es útil para la creación rápida un entorno sin tener que escribir una expresión de paquete que contenga las entradas deseadas."
 
 #. type: table
-#: doc/guix.texi:4863
+#: doc/guix.texi:5591
 msgid "For instance, the command:"
 msgstr "Por ejemplo, la orden:"
 
 #. type: example
-#: doc/guix.texi:4866
+#: doc/guix.texi:5594
 #, no-wrap
 msgid "guix environment --ad-hoc guile guile-sdl -- guile\n"
 msgstr "guix environment --ad-hoc guile guile-sdl -- guile\n"
 
 #. type: table
-#: doc/guix.texi:4870
+#: doc/guix.texi:5598
 msgid "runs @command{guile} in an environment where Guile and Guile-SDL are available."
 msgstr "ejecuta @command{guile} en un entorno donde están disponibles Guile y Guile-SDL."
 
 #. type: table
-#: doc/guix.texi:4875
+#: doc/guix.texi:5603
 msgid "Note that this example implicitly asks for the default output of @code{guile} and @code{guile-sdl}, but it is possible to ask for a specific output---e.g., @code{glib:bin} asks for the @code{bin} output of @code{glib} (@pxref{Packages with Multiple Outputs})."
 msgstr "Fíjese que este ejemplo solicita implícitamente la salida predeterminada de @code{guile} y @code{guile-sdl}, pero es posible solicitar una salida específica---por ejemplo, @code{glib:bin} solicita la salida @code{bin} de @code{glib} (@pxref{Packages with Multiple Outputs})."
 
 #. type: table
-#: doc/guix.texi:4881
-msgid "This option may be composed with the default behavior of @command{guix environment}.  Packages appearing before @code{--ad-hoc} are interpreted as packages whose dependencies will be added to the environment, the default behavior.  Packages appearing after are interpreted as packages that will be added to the environment directly."
-msgstr "Esta opción puede componerse con el comportamiento predeterminado de @command{guix environment}. Los paquetes que aparecen antes de @code{--ad-hoc} se interpretan como paquetes cuyas dependencias se añadirán al entorno, el comportamiento predefinido. Los paquetes que aparecen después se interpretan como paquetes a añadir directamente al entorno."
+#: doc/guix.texi:5609
+msgid "This option may be composed with the default behavior of @command{guix environment}.  Packages appearing before @option{--ad-hoc} are interpreted as packages whose dependencies will be added to the environment, the default behavior.  Packages appearing after are interpreted as packages that will be added to the environment directly."
+msgstr "Esta opción puede componerse con el comportamiento predeterminado de @command{guix environment}. Los paquetes que aparecen antes de @option{--ad-hoc} se interpretan como paquetes cuyas dependencias se añadirán al entorno, el comportamiento predefinido. Los paquetes que aparecen después se interpretan como paquetes a añadir directamente al entorno."
 
 #. type: item
-#: doc/guix.texi:4882
+#: doc/guix.texi:5610
 #, no-wrap
 msgid "--pure"
 msgstr "--pure"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:4886
-msgid "Unset existing environment variables when building the new environment, except those specified with @option{--preserve} (see below.)  This has the effect of creating an environment in which search paths only contain package inputs."
+#: doc/guix.texi:5614
+msgid "Unset existing environment variables when building the new environment, except those specified with @option{--preserve} (see below).  This has the effect of creating an environment in which search paths only contain package inputs."
 msgstr "Olvida las variables de entorno existentes cuando se construye un nuevo entorno, excepto aquellas especificadas con @option{--preserve} (véase más adelante). Esto tiene el efecto de crear un entorno en el que las rutas de búsqueda únicamente contienen las entradas del paquete."
 
 #. type: item
-#: doc/guix.texi:4887
+#: doc/guix.texi:5615
 #, no-wrap
 msgid "--preserve=@var{regexp}"
 msgstr "--preserve=@var{regexp}"
 
 #. type: itemx
-#: doc/guix.texi:4888
+#: doc/guix.texi:5616
 #, no-wrap
 msgid "-E @var{regexp}"
 msgstr "-E @var{regexp}"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:4893
+#: doc/guix.texi:5621
 msgid "When used alongside @option{--pure}, preserve the environment variables matching @var{regexp}---in other words, put them on a ``white list'' of environment variables that must be preserved.  This option can be repeated several times."
 msgstr "Cuando se usa junto a @option{--pure}, preserva las variables de entorno que corresponden con @var{regexp}---en otras palabras, las pone en una lista de variables de entorno que deben preservarse. Esta opción puede repetirse varias veces."
 
 #. type: example
-#: doc/guix.texi:4897
+#: doc/guix.texi:5625
 #, no-wrap
 msgid ""
 "guix environment --pure --preserve=^SLURM --ad-hoc openmpi @dots{} \\\n"
@@ -10744,113 +12153,107 @@ msgstr ""
 "  -- mpirun @dots{}\n"
 
 #. type: table
-#: doc/guix.texi:4903
-msgid "This example runs @command{mpirun} in a context where the only environment variables defined are @code{PATH}, environment variables whose name starts with @code{SLURM}, as well as the usual ``precious'' variables (@code{HOME}, @code{USER}, etc.)"
-msgstr "Este ejemplo ejecuta @command{mpirun} en un contexto donde las únicas variables de entorno definidas son @code{PATH}, variables de entorno cuyo nombre empiece con @code{SLURM}, así como las variables ``preciosas'' habituales (@code{HOME}, @code{USER}, etc.)."
+#: doc/guix.texi:5631
+msgid "This example runs @command{mpirun} in a context where the only environment variables defined are @env{PATH}, environment variables whose name starts with @samp{SLURM}, as well as the usual ``precious'' variables (@env{HOME}, @env{USER}, etc.)."
+msgstr "Este ejemplo ejecuta @command{mpirun} en un contexto donde las únicas variables de entorno definidas son @env{PATH}, variables de entorno cuyo nombre empiece con @samp{SLURM}, así como las variables ``preciosas'' habituales (@env{HOME}, @env{USER}, etc.)."
 
 #. type: item
-#: doc/guix.texi:4904
+#: doc/guix.texi:5632
 #, no-wrap
 msgid "--search-paths"
 msgstr "--search-paths"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:4907
+#: doc/guix.texi:5635
 msgid "Display the environment variable definitions that make up the environment."
 msgstr "Muestra las definiciones de variables de entorno que componen el entorno."
 
 #. type: table
-#: doc/guix.texi:4911
+#: doc/guix.texi:5639
 msgid "Attempt to build for @var{system}---e.g., @code{i686-linux}."
 msgstr "Intenta construir para @var{sistema}---por ejemplo, @code{i686-linux}."
 
 #. type: item
-#: doc/guix.texi:4912
+#: doc/guix.texi:5640
 #, no-wrap
 msgid "--container"
 msgstr "--container"
 
 #. type: itemx
-#: doc/guix.texi:4913
+#: doc/guix.texi:5641
 #, no-wrap
 msgid "-C"
 msgstr "-C"
 
-#. type: item
-#: doc/guix.texi:4914 doc/guix.texi:10706 doc/guix.texi:26829
-#, no-wrap
-msgid "container"
-msgstr "container"
-
 #. type: table
-#: doc/guix.texi:4920
-msgid "Run @var{command} within an isolated container.  The current working directory outside the container is mapped inside the container.  Additionally, unless overridden with @code{--user}, a dummy home directory is created that matches the current user's home directory, and @file{/etc/passwd} is configured accordingly."
-msgstr "Ejecuta la @var{orden} en un contenedor aislado. El directorio actual fuera del contenedor es asociado al interior del contenedor. Adicionalmente, a menos que se fuerce con @code{--user}, un directorio de prueba de la usuaria se crea de forma que coincida con el directorio actual de la usuaria, y @file{/etc/passwd} se configura adecuadamente."
+#: doc/guix.texi:5648
+msgid "Run @var{command} within an isolated container.  The current working directory outside the container is mapped inside the container.  Additionally, unless overridden with @option{--user}, a dummy home directory is created that matches the current user's home directory, and @file{/etc/passwd} is configured accordingly."
+msgstr "Ejecuta la @var{orden} en un contenedor aislado. El directorio actual fuera del contenedor es asociado al interior del contenedor. Adicionalmente, a menos que se fuerce con @option{--user}, un directorio de prueba de la usuaria se crea de forma que coincida con el directorio actual de la usuaria, y @file{/etc/passwd} se configura adecuadamente."
 
 #. type: table
-#: doc/guix.texi:4924
-msgid "The spawned process runs as the current user outside the container.  Inside the container, it has the same UID and GID as the current user, unless @option{--user} is passed (see below.)"
+#: doc/guix.texi:5652
+msgid "The spawned process runs as the current user outside the container.  Inside the container, it has the same UID and GID as the current user, unless @option{--user} is passed (see below)."
 msgstr "El proceso lanzado se ejecuta como el usuario actual fuera del contenedor. Dentro del contenedor, tiene el mismo UID y GID que el usuario actual, a menos que se proporcione @option{--user} (véase más adelante)."
 
 #. type: item
-#: doc/guix.texi:4925 doc/guix.texi:26921
+#: doc/guix.texi:5653 doc/guix.texi:31058
 #, no-wrap
 msgid "--network"
 msgstr "--network"
 
 #. type: table
-#: doc/guix.texi:4930
+#: doc/guix.texi:5658
 msgid "For containers, share the network namespace with the host system.  Containers created without this flag only have access to the loopback device."
 msgstr "Para contenedores, comparte el espacio de nombres de red con el sistema anfitrión. Los contenedores creados sin esta opción únicamente tienen acceso a la red local."
 
 #. type: item
-#: doc/guix.texi:4931
+#: doc/guix.texi:5659
 #, no-wrap
 msgid "--link-profile"
 msgstr "--link-profile"
 
 #. type: itemx
-#: doc/guix.texi:4932
+#: doc/guix.texi:5660
 #, no-wrap
 msgid "-P"
 msgstr "-P"
 
 #. type: table
-#: doc/guix.texi:4939
-msgid "For containers, link the environment profile to @file{~/.guix-profile} within the container.  This is equivalent to running the command @command{ln -s $GUIX_ENVIRONMENT ~/.guix-profile} within the container.  Linking will fail and abort the environment if the directory already exists, which will certainly be the case if @command{guix environment} was invoked in the user's home directory."
-msgstr "Para contenedores, enlaza el perfil del entorno a @file{~/.guix-profile} dentro del contenedor. Es equivalente a la ejecución de @command{ln -s $GUIX_ENVIRONMENT ~/.guix-profile} dentro del contenedor. El enlace fallará e interrumpirá el entorno si el directorio ya existe, lo cual será probablemente el caso si @command{guix environment} se invocó en el directorio de la usuaria."
+#: doc/guix.texi:5668
+msgid "For containers, link the environment profile to @file{~/.guix-profile} within the container and set @code{GUIX_ENVIRONMENT} to that.  This is equivalent to making @file{~/.guix-profile} a symlink to the actual profile within the container.  Linking will fail and abort the environment if the directory already exists, which will certainly be the case if @command{guix environment} was invoked in the user's home directory."
+msgstr "Para contenedores, enlaza el perfil del entorno a @file{~/.guix-profile} dentro del contenedor y asigna ese valor a @code{GUIX_ENVIRONMENT}. Es equivalente a que @file{~/.guix-profile} sea un enlace al perfil real dentro del contenedor. El enlace fallará e interrumpirá el entorno si el directorio ya existe, lo cual será probablemente el caso si @command{guix environment} se invocó en el directorio de la usuaria."
 
 #. type: table
-#: doc/guix.texi:4946
-msgid "Certain packages are configured to look in @code{~/.guix-profile} for configuration files and data;@footnote{For example, the @code{fontconfig} package inspects @file{~/.guix-profile/share/fonts} for additional fonts.} @code{--link-profile} allows these programs to behave as expected within the environment."
-msgstr "Determinados paquetes se configuran para buscar en @code{~/.guix-profile} ficheros de configuración y datos;@footnote{Por ejemplo, el paquete @code{fontconfig} inspecciona @file{~/.guix-profile/share/fonts} en busca de nuevas tipografías.} @code{--link-profile} permite a estos programas operar de la manera esperada dentro del entorno."
+#: doc/guix.texi:5674
+msgid "Certain packages are configured to look in @file{~/.guix-profile} for configuration files and data;@footnote{For example, the @code{fontconfig} package inspects @file{~/.guix-profile/share/fonts} for additional fonts.} @option{--link-profile} allows these programs to behave as expected within the environment."
+msgstr "Determinados paquetes se configuran para buscar en @file{~/.guix-profile} archivos de configuración y datos;@footnote{Por ejemplo, el paquete @code{fontconfig} inspecciona @file{~/.guix-profile/share/fonts} en busca de nuevas tipografías.} @option{--link-profile} permite a estos programas operar de la manera esperada dentro del entorno."
 
 #. type: item
-#: doc/guix.texi:4947 doc/guix.texi:10321
+#: doc/guix.texi:5675 doc/guix.texi:12218
 #, no-wrap
 msgid "--user=@var{user}"
 msgstr "--user=@var{usuaria}"
 
 #. type: itemx
-#: doc/guix.texi:4948 doc/guix.texi:10322
+#: doc/guix.texi:5676 doc/guix.texi:12219
 #, no-wrap
 msgid "-u @var{user}"
 msgstr "-u @var{usuaria}"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:4955
+#: doc/guix.texi:5683
 msgid "For containers, use the username @var{user} in place of the current user.  The generated @file{/etc/passwd} entry within the container will contain the name @var{user}, the home directory will be @file{/home/@var{user}}, and no user GECOS data will be copied.  Furthermore, the UID and GID inside the container are 1000.  @var{user} need not exist on the system."
 msgstr "Para contenedores, usa el nombre de usuaria @var{usuaria} en vez de la actual. La entrada generada en @file{/etc/passwd} dentro del contenedor contendrá el nombre @var{usuaria}; su directorio será @file{/home/@var{usuaria}} y ningún dato GECOS de la usuaria se copiará. Más aún, el UID y GID dentro del contenedor son 1000. @var{usuaria} no debe existir en el sistema."
 
 #. type: table
-#: doc/guix.texi:4960
-msgid "Additionally, any shared or exposed path (see @code{--share} and @code{--expose} respectively) whose target is within the current user's home directory will be remapped relative to @file{/home/USER}; this includes the automatic mapping of the current working directory."
-msgstr "Adicionalmente, cualquier ruta compartida o expuesta (véanse @code{--share} y @code{--expose} respectivamente) cuyo destino esté dentro de la carpeta actual de la usuaria será reasociada en relación a @file{/home/@var{usuaria}}; esto incluye la relación automática del directorio de trabajo actual."
+#: doc/guix.texi:5688
+msgid "Additionally, any shared or exposed path (see @option{--share} and @option{--expose} respectively) whose target is within the current user's home directory will be remapped relative to @file{/home/USER}; this includes the automatic mapping of the current working directory."
+msgstr "Adicionalmente, cualquier ruta compartida o expuesta (véanse @option{--share} y @option{--expose} respectivamente) cuyo destino esté dentro de la carpeta actual de la usuaria será reasociada en relación a @file{/home/@var{usuaria}}; esto incluye la relación automática del directorio de trabajo actual."
 
 #. type: example
-#: doc/guix.texi:4967
+#: doc/guix.texi:5695
 #, no-wrap
 msgid ""
 "# will expose paths as /home/foo/wd, /home/foo/test, and /home/foo/target\n"
@@ -10868,107 +12271,107 @@ msgstr ""
 # FUZZY
 # MAAV (TODO): ¿Cómo traducir el "not one in and of itself"?
 #. type: table
-#: doc/guix.texi:4972
+#: doc/guix.texi:5700
 msgid "While this will limit the leaking of user identity through home paths and each of the user fields, this is only one useful component of a broader privacy/anonymity solution---not one in and of itself."
 msgstr "Mientras esto limita el escape de la identidad de la usuaria a través de las rutas de sus directorios y cada uno de los campos de usuaria, esto es únicamente un componente útil de una solución de privacidad/anonimato más amplia---no una solución completa."
 
 #. type: item
-#: doc/guix.texi:4973
+#: doc/guix.texi:5701
 #, no-wrap
 msgid "--no-cwd"
 msgstr "--no-cwd"
 
 #. type: table
-#: doc/guix.texi:4980
-msgid "For containers, the default behavior is to share the current working directory with the isolated container and immediately change to that directory within the container.  If this is undesirable, @code{--no-cwd} will cause the current working directory to @emph{not} be automatically shared and will change to the user's home directory within the container instead.  See also @code{--user}."
-msgstr "El comportamiento predeterminado con contenedores es compartir el directorio de trabajo actual con el contenedor aislado e inmediatamente cambiar a dicho directorio dentro. Si esto no es lo deseado, @code{--no-cwd} implica que el directorio actual @emph{no} se compartirá automáticamente y, en vez de cambiar a dicho directorio, se cambiará al directorio de la usuaria dentro del contenedor. Véase también @code{--user}."
+#: doc/guix.texi:5708
+msgid "For containers, the default behavior is to share the current working directory with the isolated container and immediately change to that directory within the container.  If this is undesirable, @option{--no-cwd} will cause the current working directory to @emph{not} be automatically shared and will change to the user's home directory within the container instead.  See also @option{--user}."
+msgstr "El comportamiento predeterminado con contenedores es compartir el directorio de trabajo actual con el contenedor aislado e inmediatamente cambiar a dicho directorio dentro del contenedor. Si no se desea este comportamiento, @option{--no-cwd} indica que el directorio actual @emph{no} se compartirá automáticamente y, en vez de cambiar a dicho directorio, se cambiará al directorio de la usuaria dentro del contenedor. Véase también @option{--user}."
 
 #. type: item
-#: doc/guix.texi:4981
+#: doc/guix.texi:5709
 #, no-wrap
 msgid "--expose=@var{source}[=@var{target}]"
 msgstr "--expose=@var{fuente}[=@var{destino}]"
 
 #. type: itemx
-#: doc/guix.texi:4982
+#: doc/guix.texi:5710
 #, no-wrap
 msgid "--share=@var{source}[=@var{target}]"
 msgstr "--share=@var{fuente}[=@var{destino}]"
 
 # FUZZY FUZZY
 #. type: table
-#: doc/guix.texi:4988
-msgid "For containers, @code{--expose} (resp. @code{--share}) exposes the file system @var{source} from the host system as the read-only (resp. writable) file system @var{target} within the container.  If @var{target} is not specified, @var{source} is used as the target mount point in the container."
-msgstr "Para contenedores, @code{--expose} expone el sistema de ficheros @var{fuente} del sistema anfitrión como un sistema de ficheros de solo-lectura @var{destino} dentro del contenedor. @code{--share} de la misma manera expone el sistema de ficheros con posibilidad de escritura. Si no se especifica @var{destino}, @var{fuente} se usa como el punto de montaje en el contenedor."
+#: doc/guix.texi:5716
+msgid "For containers, @option{--expose} (resp. @option{--share}) exposes the file system @var{source} from the host system as the read-only (resp. writable) file system @var{target} within the container.  If @var{target} is not specified, @var{source} is used as the target mount point in the container."
+msgstr "En contenedores, la @option{--expose} expone el sistema de archivos @var{fuente} del sistema anfitrión como un sistema de archivos de solo-lectura @var{destino} dentro del contenedor. @option{--share} de la misma manera expone el sistema de archivos con posibilidad de escritura. Si no se especifica @var{destino}, @var{fuente} se usa como el punto de montaje en el contenedor."
 
 #. type: table
-#: doc/guix.texi:4992
+#: doc/guix.texi:5720
 msgid "The example below spawns a Guile REPL in a container in which the user's home directory is accessible read-only via the @file{/exchange} directory:"
 msgstr "El ejemplo a continuación lanza una sesión interactiva de Guile en un contenedor donde el directorio principal de la usuaria es accesible en modo solo-lectura a través del directorio @file{/intercambio}:"
 
 #. type: example
-#: doc/guix.texi:4995
+#: doc/guix.texi:5723
 #, no-wrap
 msgid "guix environment --container --expose=$HOME=/exchange --ad-hoc guile -- guile\n"
 msgstr "guix environment --container --expose=$HOME=/intercambio --ad-hoc guile -- guile\n"
 
 #. type: Plain text
-#: doc/guix.texi:5003
+#: doc/guix.texi:5731
 msgid "@command{guix environment} also supports all of the common build options that @command{guix build} supports (@pxref{Common Build Options}) as well as package transformation options (@pxref{Package Transformation Options})."
 msgstr "Además, @command{guix environment} acepta todas las opciones comunes de construcción que permite @command{guix build} (@pxref{Common Build Options}) así como las opciones de transformación de paquetes (@pxref{Package Transformation Options})."
 
 #. type: section
-#: doc/guix.texi:5005
+#: doc/guix.texi:5733
 #, no-wrap
 msgid "Invoking @command{guix pack}"
 msgstr "Invocación de @command{guix pack}"
 
 #. type: Plain text
-#: doc/guix.texi:5011
+#: doc/guix.texi:5739
 msgid "Occasionally you want to pass software to people who are not (yet!)  lucky enough to be using Guix.  You'd tell them to run @command{guix package -i @var{something}}, but that's not possible in this case.  This is where @command{guix pack} comes in."
 msgstr "De manera ocasional querrá dar software a gente que (¡todavía!) no tiene la suerte de usar Guix. Usted les diría que ejecuten @command{guix package -i @var{algo}}, pero eso no es posible en este caso. Aquí es donde viene @command{guix pack}."
 
 #. type: quotation
-#: doc/guix.texi:5016
+#: doc/guix.texi:5744
 msgid "If you are looking for ways to exchange binaries among machines that already run Guix, @pxref{Invoking guix copy}, @ref{Invoking guix publish}, and @ref{Invoking guix archive}."
 msgstr "Si está buscando formas de intercambiar binarios entre máquinas que ya ejecutan Guix, @pxref{Invoking guix copy}, @ref{Invoking guix publish}, y @ref{Invoking guix archive}."
 
 #. type: cindex
-#: doc/guix.texi:5018
+#: doc/guix.texi:5746
 #, no-wrap
 msgid "pack"
 msgstr "pack"
 
 #. type: cindex
-#: doc/guix.texi:5019
+#: doc/guix.texi:5747
 #, no-wrap
 msgid "bundle"
 msgstr "empaquetado"
 
 #. type: cindex
-#: doc/guix.texi:5020
+#: doc/guix.texi:5748
 #, no-wrap
 msgid "application bundle"
 msgstr "aplicación empaquetada"
 
 #. type: cindex
-#: doc/guix.texi:5021
+#: doc/guix.texi:5749
 #, no-wrap
 msgid "software bundle"
 msgstr "empaquetado de software"
 
 #. type: Plain text
-#: doc/guix.texi:5030
+#: doc/guix.texi:5758
 msgid "The @command{guix pack} command creates a shrink-wrapped @dfn{pack} or @dfn{software bundle}: it creates a tarball or some other archive containing the binaries of the software you're interested in, and all its dependencies.  The resulting archive can be used on any machine that does not have Guix, and people can run the exact same binaries as those you have with Guix.  The pack itself is created in a bit-reproducible fashion, so anyone can verify that it really contains the build results that you pretend to be shipping."
 msgstr "La orden @command{guix pack} crea un @dfn{paquete} reducido o @dfn{empaquetado de software}: crea un archivador tar u otro tipo que contiene los binarios del software en el que está interesada y todas sus dependencias. El archivo resultante puede ser usado en una máquina que no tiene Guix, y la gente puede ejecutar exactamente los mismos binarios que usted tiene con Guix. El paquete en sí es creado de forma reproducible bit-a-bit, para que cualquiera pueda verificar que realmente contiene los resultados de construcción que pretende distribuir."
 
 #. type: Plain text
-#: doc/guix.texi:5033
+#: doc/guix.texi:5761
 msgid "For example, to create a bundle containing Guile, Emacs, Geiser, and all their dependencies, you can run:"
 msgstr "Por ejemplo, para crear un empaquetado que contenga Guile, Emacs, Geiser y todas sus dependencias, puede ejecutar:"
 
 #. type: example
-#: doc/guix.texi:5038
+#: doc/guix.texi:5766
 #, no-wrap
 msgid ""
 "$ guix pack guile emacs geiser\n"
@@ -10980,132 +12383,132 @@ msgstr ""
 "/gnu/store/@dots{}-pack.tar.gz\n"
 
 #. type: Plain text
-#: doc/guix.texi:5046
+#: doc/guix.texi:5774
 msgid "The result here is a tarball containing a @file{/gnu/store} directory with all the relevant packages.  The resulting tarball contains a @dfn{profile} with the three packages of interest; the profile is the same as would be created by @command{guix package -i}.  It is this mechanism that is used to create Guix's own standalone binary tarball (@pxref{Binary Installation})."
 msgstr "El resultado aquí es un archivador tar que contiene un directorio de @file{/gnu/store} con todos los paquetes relevantes. El archivador resultante contiene un @dfn{perfil} con los tres paquetes de interés; el perfil es el mismo que se hubiera creado por @command{guix package -i}. Este es el mecanismo usado para crear el propio archivador de binarios separado de Guix (@pxref{Binary Installation})."
 
 #. type: Plain text
-#: doc/guix.texi:5051
+#: doc/guix.texi:5779
 msgid "Users of this pack would have to run @file{/gnu/store/@dots{}-profile/bin/guile} to run Guile, which you may find inconvenient.  To work around it, you can create, say, a @file{/opt/gnu/bin} symlink to the profile:"
 msgstr "Las usuarias de este empaquetad tendrán que ejecutar @file{/gnu/store/@dots{}-profile/bin/guile} para ejecutar guile, lo que puede resultar inconveniente. Para evitarlo, puede crear, digamos, un enlace simbólico @file{/opt/gnu/bin} al perfil: "
 
 #. type: example
-#: doc/guix.texi:5054
+#: doc/guix.texi:5782
 #, no-wrap
 msgid "guix pack -S /opt/gnu/bin=bin guile emacs geiser\n"
 msgstr "guix pack -S /opt/gnu/bin=bin guile emacs geiser\n"
 
 #. type: Plain text
-#: doc/guix.texi:5058
+#: doc/guix.texi:5786
 msgid "That way, users can happily type @file{/opt/gnu/bin/guile} and enjoy."
 msgstr "De este modo, las usuarias pueden escribir alegremente @file{/opt/gnu/bin/guile} y disfrutar."
 
 #. type: cindex
-#: doc/guix.texi:5059
+#: doc/guix.texi:5787
 #, no-wrap
 msgid "relocatable binaries, with @command{guix pack}"
 msgstr "binarios reposicionables, con @command{guix pack}"
 
 #. type: Plain text
-#: doc/guix.texi:5067
-msgid "What if the recipient of your pack does not have root privileges on their machine, and thus cannot unpack it in the root file system? In that case, you will want to use the @code{--relocatable} option (see below).  This option produces @dfn{relocatable binaries}, meaning they they can be placed anywhere in the file system hierarchy: in the example above, users can unpack your tarball in their home directory and directly run @file{./opt/gnu/bin/guile}."
-msgstr "¿Qué pasa se la receptora de su paquete no tiene privilegios de root en su máquina y por lo tanto no puede desempaquetarlo en la raíz del sistema de ficheros? En ese caso, lo que usted desea es usar la opción @code{--relocatable} (véase a continuación). Esta opción produce @dfn{binarios reposicionables}, significando que pueden ser colocados en cualquier lugar de la jerarquía del sistema de ficheros: en el ejemplo anterior, las usuarias pueden desempaquetar el archivador en su directorio de usuaria y ejecutar directamente @file{./opt/gnu/bin/guile}."
+#: doc/guix.texi:5795
+msgid "What if the recipient of your pack does not have root privileges on their machine, and thus cannot unpack it in the root file system? In that case, you will want to use the @option{--relocatable} option (see below).  This option produces @dfn{relocatable binaries}, meaning they they can be placed anywhere in the file system hierarchy: in the example above, users can unpack your tarball in their home directory and directly run @file{./opt/gnu/bin/guile}."
+msgstr "¿Qué pasa se la receptora de su paquete no tiene privilegios de root en su máquina y por lo tanto no puede desempaquetarlo en la raíz del sistema de archivos? En ese caso, lo que usted desea es usar la opción @option{--relocatable} (véase a continuación). Esta opción produce @dfn{binarios reposicionables}, significando que pueden ser colocados en cualquier lugar de la jerarquía del sistema de archivos: en el ejemplo anterior, las usuarias pueden desempaquetar el archivador en su directorio de usuaria y ejecutar directamente @file{./opt/gnu/bin/guile}."
 
 #. type: cindex
-#: doc/guix.texi:5068
+#: doc/guix.texi:5796
 #, no-wrap
 msgid "Docker, build an image with guix pack"
 msgstr "Docker, construir una imagen con guix pack"
 
 #. type: Plain text
-#: doc/guix.texi:5071
+#: doc/guix.texi:5799
 msgid "Alternatively, you can produce a pack in the Docker image format using the following command:"
 msgstr "De manera alternativa, puede producir un empaquetado en el formato de imagen Docker usando la siguiente orden:"
 
 #. type: example
-#: doc/guix.texi:5074
+#: doc/guix.texi:5802
 #, no-wrap
 msgid "guix pack -f docker -S /bin=bin guile guile-readline\n"
 msgstr "guix pack -f docker -S /bin=bin guile guile-readline\n"
 
 #. type: Plain text
-#: doc/guix.texi:5079
+#: doc/guix.texi:5807
 msgid "The result is a tarball that can be passed to the @command{docker load} command, followed by @code{docker run}:"
 msgstr "El resultado es un archivador ``tar'' que puede ser proporcionado a la orden @command{docker load}, seguida de @code{docker run}:"
 
 #. type: example
-#: doc/guix.texi:5083
+#: doc/guix.texi:5811
 #, no-wrap
 msgid ""
 "docker load < @var{file}\n"
 "docker run -ti guile-guile-readline /bin/guile\n"
 msgstr ""
-"docker load < @var{fichero}\n"
+"docker load < @var{archivo}\n"
 "docker run -ti guile-guile-readline /bin/guile\n"
 
 # FUZZY FUZZY
 # TODO: Comprobar image tag
 #. type: Plain text
-#: doc/guix.texi:5090
+#: doc/guix.texi:5818
 msgid "where @var{file} is the image returned by @var{guix pack}, and @code{guile-guile-readline} is its ``image tag''.  See the @uref{https://docs.docker.com/engine/reference/commandline/load/, Docker documentation} for more information."
-msgstr "donde @var{fichero} es la imagen devuelta por @var{guix pack}, y @code{guile-guile-readline} es la ``etiqueta de imagen''. Véase la @uref{https://docs.docker.com/engine/reference/commandline/load/, documentación de Docker} para más información."
+msgstr "donde @var{archivo} es la imagen devuelta por @var{guix pack}, y @code{guile-guile-readline} es la ``etiqueta de imagen''. Véase la @uref{https://docs.docker.com/engine/reference/commandline/load/, documentación de Docker} para más información."
 
 #. type: cindex
-#: doc/guix.texi:5091
+#: doc/guix.texi:5819
 #, no-wrap
 msgid "Singularity, build an image with guix pack"
 msgstr "Singularity, construir una imagen con guix pack"
 
 #. type: cindex
-#: doc/guix.texi:5092
+#: doc/guix.texi:5820
 #, no-wrap
 msgid "SquashFS, build an image with guix pack"
 msgstr "SquashFS, construir una imagen con guix pack"
 
 #. type: Plain text
-#: doc/guix.texi:5095
+#: doc/guix.texi:5823
 msgid "Yet another option is to produce a SquashFS image with the following command:"
 msgstr "Otra opción más es producir una imagen SquashFS con la siguiente orden:"
 
 #. type: example
-#: doc/guix.texi:5098
+#: doc/guix.texi:5826
 #, no-wrap
 msgid "guix pack -f squashfs bash guile emacs geiser\n"
 msgstr "guix pack -f squashfs bash guile emacs geiser\n"
 
 #. type: Plain text
-#: doc/guix.texi:5106
-msgid "The result is a SquashFS file system image that can either be mounted or directly be used as a file system container image with the @uref{https://singularity.lbl.gov, Singularity container execution environment}, using commands like @command{singularity shell} or @command{singularity exec}."
-msgstr "El resultado es una imagen de sistema de ficheros SquashFS que puede ser o bien montada, o bien usada directamente como una imagen contenedora de sistemas de ficheros con el @uref{https://singularity.lbl.gov, entorno de ejecución de contenedores Singularity}, usando órdenes como @command{singularity shell} o @command{singularity exec}."
+#: doc/guix.texi:5834
+msgid "The result is a SquashFS file system image that can either be mounted or directly be used as a file system container image with the @uref{https://www.sylabs.io/docs/, Singularity container execution environment}, using commands like @command{singularity shell} or @command{singularity exec}."
+msgstr "El resultado es una imagen de sistema de archivos SquashFS que puede ser o bien montada, o bien usada directamente como una imagen contenedora de sistemas de archivos con el @uref{https://www.sylabs.io/docs/, entorno de ejecución de contenedores Singularity}, usando órdenes como @command{singularity shell} o @command{singularity exec}."
 
 #. type: Plain text
-#: doc/guix.texi:5108
+#: doc/guix.texi:5836
 msgid "Several command-line options allow you to customize your pack:"
 msgstr "Varias opciones de la línea de órdenes le permiten personalizar su empaquetado:"
 
 #. type: table
-#: doc/guix.texi:5113
+#: doc/guix.texi:5841
 msgid "Produce a pack in the given @var{format}."
 msgstr "Produce un empaquetado en el @var{formato} específico."
 
 #. type: table
-#: doc/guix.texi:5115
+#: doc/guix.texi:5843
 msgid "The available formats are:"
 msgstr "Los formatos disponibles son:"
 
 #. type: item
-#: doc/guix.texi:5117
+#: doc/guix.texi:5845
 #, no-wrap
 msgid "tarball"
 msgstr "tarball"
 
 #. type: table
-#: doc/guix.texi:5120
+#: doc/guix.texi:5848
 msgid "This is the default format.  It produces a tarball containing all the specified binaries and symlinks."
 msgstr "Es el formato predeterminado. Produce un archivador que contiene todos los binarios y enlaces simbólicos especificados."
 
 #. type: item
-#: doc/guix.texi:5121
+#: doc/guix.texi:5849
 #, no-wrap
 msgid "docker"
 msgstr "docker"
@@ -11113,28 +12516,28 @@ msgstr "docker"
 # FUZZY FUZZY
 # TODO: Comprobar nombre del repositorio
 #. type: table
-#: doc/guix.texi:5127
+#: doc/guix.texi:5855
 msgid "This produces a tarball that follows the @uref{https://github.com/docker/docker/blob/master/image/spec/v1.2.md, Docker Image Specification}.  The ``repository name'' as it appears in the output of the @command{docker images} command is computed from package names passed on the command line or in the manifest file."
-msgstr "Produce un archivador que sigue la @uref{https://github.com/docker/docker/blob/master/image/spec/v1.2.md, especificación de imágenes Docker}. El ``nombre de repositorio'' como aparece en la salida de la orden @command{docker images} se calcula a partir de los nombres de paquete proporcionados en la línea de órdenes o en el fichero de manifiesto."
+msgstr "Produce un archivador que sigue la @uref{https://github.com/docker/docker/blob/master/image/spec/v1.2.md, especificación de imágenes Docker}. El ``nombre de repositorio'' como aparece en la salida de la orden @command{docker images} se calcula a partir de los nombres de paquete proporcionados en la línea de órdenes o en el archivo de manifiesto."
 
 #. type: item
-#: doc/guix.texi:5128
+#: doc/guix.texi:5856
 #, no-wrap
 msgid "squashfs"
 msgstr "squashfs"
 
 #. type: table
-#: doc/guix.texi:5132
+#: doc/guix.texi:5860
 msgid "This produces a SquashFS image containing all the specified binaries and symlinks, as well as empty mount points for virtual file systems like procfs."
-msgstr "Produce una imagen SquashFS que contiene todos los binarios y enlaces simbólicos especificados, así como puntos de montaje vacíos para sistemas de ficheros virtuales como procfs."
+msgstr "Produce una imagen SquashFS que contiene todos los binarios y enlaces simbólicos especificados, así como puntos de montaje vacíos para sistemas de archivos virtuales como procfs."
 
 #. type: quotation
-#: doc/guix.texi:5138
+#: doc/guix.texi:5866
 msgid "Singularity @emph{requires} you to provide @file{/bin/sh} in the image.  For that reason, @command{guix pack -f squashfs} always implies @code{-S /bin=bin}.  Thus, your @command{guix pack} invocation must always start with something like:"
 msgstr "Singularity @emph{necesita} que proporcione @file{/bin/sh} en la imagen. Por esta razón, @command{guix pack -f squashfs} siempre implica @code{-S /bin=bin}. Por tanto, su invocación de @command{guix pack} debe siempre comenzar de manera similar a esta:"
 
 #. type: example
-#: doc/guix.texi:5141
+#: doc/guix.texi:5869
 #, no-wrap
 msgid "guix pack -f squashfs bash @dots{}\n"
 msgstr "guix pack -f squashfs bash @dots{}\n"
@@ -11142,52 +12545,53 @@ msgstr "guix pack -f squashfs bash @dots{}\n"
 # FUZZY FUZZY
 # TODO
 #. type: quotation
-#: doc/guix.texi:5146
+#: doc/guix.texi:5874
 msgid "If you forget the @code{bash} (or similar) package, @command{singularity run} and @command{singularity exec} will fail with an unhelpful ``no such file or directory'' message."
-msgstr "Si se olvida del paquete @code{bash} (o similar), @command{singularity run} y @command{singularity exec} fallarán con el mensaje ``no existe el fichero o directorio'', lo que no sirve de ayuda."
+msgstr "Si se olvida del paquete @code{bash} (o similar), @command{singularity run} y @command{singularity exec} fallarán con el mensaje ``no existe el archivo o directorio'', lo que no sirve de ayuda."
 
 # FUZZY
 #. type: cindex
-#: doc/guix.texi:5149
+#: doc/guix.texi:5877
 #, no-wrap
 msgid "relocatable binaries"
 msgstr "binarios reposicionables"
 
 #. type: item
-#: doc/guix.texi:5150
+#: doc/guix.texi:5878
 #, no-wrap
 msgid "--relocatable"
 msgstr "--relocatable"
 
 #. type: table
-#: doc/guix.texi:5154
+#: doc/guix.texi:5882
 msgid "Produce @dfn{relocatable binaries}---i.e., binaries that can be placed anywhere in the file system hierarchy and run from there."
-msgstr "Produce @dfn{binarios reposicionables}---es decir, binarios que se pueden encontrar en cualquier lugar de la jerarquía del sistema de ficheros, y ejecutarse desde allí."
+msgstr "Produce @dfn{binarios reposicionables}---es decir, binarios que se pueden encontrar en cualquier lugar de la jerarquía del sistema de archivos, y ejecutarse desde allí."
 
 # FUZZY
+# TODO: Comprobar si la referencia a PRoot sigue teniendo sentido.
 #. type: table
-#: doc/guix.texi:5162
-msgid "When this option is passed once, the resulting binaries require support for @dfn{user namespaces} in the kernel Linux; when passed @emph{twice}@footnote{Here's a trick to memorize it: @code{-RR}, which adds PRoot support, can be thought of as the abbreviation of ``Really Relocatable''.  Neat, isn't it?}, relocatable binaries fall to back to PRoot if user namespaces are unavailable, and essentially work anywhere---see below for the implications."
-msgstr "Cuando se proporciona una vez la opción, los binarios resultantes necesitan la implementación de @dfn{espacios de nombres de usuaria} del núcleo Linux; cuando se proporciona @emph{dos veces}@footnote{Esto es un truco para memorizarlo: @code{-RR}, que añade PRoot, puede pensarse como ``Realmente Reposicionable''. Curioso, ¿no?}, los binarios reposicionables usan PRoot si los espacios de nombres de usuaria no están disponibles, y funcionan esencialmente en cualquier sitio---véanse más adelante las implicaciones."
+#: doc/guix.texi:5890
+msgid "When this option is passed once, the resulting binaries require support for @dfn{user namespaces} in the kernel Linux; when passed @emph{twice}@footnote{Here's a trick to memorize it: @code{-RR}, which adds PRoot support, can be thought of as the abbreviation of ``Really Relocatable''.  Neat, isn't it?}, relocatable binaries fall to back to other techniques if user namespaces are unavailable, and essentially work anywhere---see below for the implications."
+msgstr "Cuando se proporciona una vez la opción, los binarios resultantes necesitan la implementación de @dfn{espacios de nombres de usuaria} del núcleo Linux; cuando se proporciona @emph{dos veces}@footnote{Este es un truco para memorizarlo: @code{-RR}, que añade PRoot, puede pensarse como ``Realmente Reposicionable''. Curioso, ¿no es cierto?}, los binarios reposicionables usan otras técnicas si los espacios de nombres de usuaria no están disponibles, y funcionan esencialmente en cualquier sitio---véase más adelante las implicaciones."
 
 #. type: table
-#: doc/guix.texi:5164
+#: doc/guix.texi:5892
 msgid "For example, if you create a pack containing Bash with:"
 msgstr "Por ejemplo, si crea un empaquetado que contiene Bash con:"
 
 #. type: example
-#: doc/guix.texi:5167
+#: doc/guix.texi:5895
 #, no-wrap
 msgid "guix pack -RR -S /mybin=bin bash\n"
 msgstr "guix pack -RR -S /mybin=bin bash\n"
 
 #. type: table
-#: doc/guix.texi:5172
+#: doc/guix.texi:5900
 msgid "...@: you can copy that pack to a machine that lacks Guix, and from your home directory as a normal user, run:"
 msgstr "...@: puede copiar ese empaquetado a una máquina que no tiene Guix, y desde su directorio, como una usuaria normal, ejecutar:"
 
 #. type: example
-#: doc/guix.texi:5176
+#: doc/guix.texi:5904
 #, no-wrap
 msgid ""
 "tar xf pack.tar.gz\n"
@@ -11197,62 +12601,124 @@ msgstr ""
 "./mibin/sh\n"
 
 #. type: table
-#: doc/guix.texi:5184
+#: doc/guix.texi:5912
 msgid "In that shell, if you type @code{ls /gnu/store}, you'll notice that @file{/gnu/store} shows up and contains all the dependencies of @code{bash}, even though the machine actually lacks @file{/gnu/store} altogether! That is probably the simplest way to deploy Guix-built software on a non-Guix machine."
 msgstr "En ese shell, si escribe @code{ls /gnu/store}, notará que @file{/gnu/store} muestra y contiene todas las dependencias de @code{bash}, ¡incluso cuando la máquina no tiene el directorio @file{/gnu/store}! Esto es probablemente el modo más simple de desplegar software construido en Guix en una máquina no-Guix."
 
 #. type: quotation
-#: doc/guix.texi:5190
+#: doc/guix.texi:5918
 msgid "By default, relocatable binaries rely on the @dfn{user namespace} feature of the kernel Linux, which allows unprivileged users to mount or change root.  Old versions of Linux did not support it, and some GNU/Linux distributions turn it off."
 msgstr "No obstante hay un punto a tener en cuenta: esta técnica descansa en la característica de @dfn{espacios de nombres de usuaria} del núcleo Linux, la cual permite a usuarias no privilegiadas montar o cambiar la raíz. Versiones antiguas de Linux no los implementan, y algunas distribuciones GNU/Linux los desactivan."
 
 # FUZZY
 #. type: quotation
-#: doc/guix.texi:5195
-msgid "To produce relocatable binaries that work even in the absence of user namespaces, pass @option{--relocatable} or @option{-R} @emph{twice}.  In that case, binaries will try user namespace support and fall back to PRoot if user namespaces are not supported."
-msgstr "Para producir binarios reposicionables que funcionen incluso en ausencia de espacios de nombre de usuaria, proporcione @option{--relocatable} o @option{-R} @emph{dos veces}. En ese caso, los binarios intentarán el uso de espacios de nombres de usuaria y usarán PRoot si no es posible."
+#: doc/guix.texi:5924
+msgid "To produce relocatable binaries that work even in the absence of user namespaces, pass @option{--relocatable} or @option{-R} @emph{twice}.  In that case, binaries will try user namespace support and fall back to another @dfn{execution engine} if user namespaces are not supported.  The following execution engines are supported:"
+msgstr "Para producir binarios reposicionables que funcionen incluso en ausencia de espacios de nombre de usuaria, proporcione @option{--relocatable} o @option{-R} @emph{dos veces}. En ese caso, los binarios intentarán el uso de espacios de nombres de usuaria y usarán otro @dfn{motor de ejecución} si los espacios de nombres no están disponibles. Existe implementación para siguientes motores de ejecución:"
+
+#. type: item
+#: doc/guix.texi:5926 doc/guix.texi:15697
+#, no-wrap
+msgid "default"
+msgstr "default"
+
+#. type: table
+#: doc/guix.texi:5929
+msgid "Try user namespaces and fall back to PRoot if user namespaces are not supported (see below)."
+msgstr "Intenta usar espacios de nombres de usuaria y usa PRoot en caso de no estar disponibles (véase a continuación)."
+
+#. type: item
+#: doc/guix.texi:5930
+#, no-wrap
+msgid "performance"
+msgstr "performance"
+
+#. type: table
+#: doc/guix.texi:5933
+msgid "Try user namespaces and fall back to Fakechroot if user namespaces are not supported (see below)."
+msgstr "Intenta usar espacios de nombres de usuaria y usa Fakechroot en caso de no estar disponibles (véase a continuación)."
+
+#. type: item
+#: doc/guix.texi:5934
+#, no-wrap
+msgid "userns"
+msgstr "userns"
+
+#. type: table
+#: doc/guix.texi:5937
+msgid "Run the program through user namespaces and abort if they are not supported."
+msgstr "Usa espacios de nombres de usuaria o aborta el programa si no están disponibles."
+
+#. type: item
+#: doc/guix.texi:5938
+#, no-wrap
+msgid "proot"
+msgstr "proot"
+
+#. type: table
+#: doc/guix.texi:5945
+msgid "Run through PRoot.  The @uref{https://proot-me.github.io/, PRoot} program provides the necessary support for file system virtualization.  It achieves that by using the @code{ptrace} system call on the running program.  This approach has the advantage to work without requiring special kernel support, but it incurs run-time overhead every time a system call is made."
+msgstr "Ejecución a través de PRoot.  El programa @uref{https://proot-me.github.io/, PRoot} proporciona el soporte necesario para la virtualización del sistema de archivos. Lo consigue mediante el uso de la llamada al sistema @code{ptrace} en el programa en ejecución. Esta aproximación tiene la ventaja de funcionar sin soporte especial en el núcleo, pero incurre en una sobrecarga en el tiempo de ejecución cada vez que se realiza una llamada al sistema."
+
+#. type: item
+#: doc/guix.texi:5946
+#, no-wrap
+msgid "fakechroot"
+msgstr "fakechroot"
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:5954
+msgid "Run through Fakechroot.  @uref{https://github.com/dex4er/fakechroot/, Fakechroot} virtualizes file system accesses by intercepting calls to C library functions such as @code{open}, @code{stat}, @code{exec}, and so on.  Unlike PRoot, it incurs very little overhead.  However, it does not always work: for example, some file system accesses made from within the C library are not intercepted, and file system accesses made @i{via} direct syscalls are not intercepted either, leading to erratic behavior."
+msgstr "Ejecución a través de Fakechroot.  @uref{https://github.com/dex4er/fakechroot/, Fakechroot} virtualiza los accesos al sistema de archivos interceptando las llamadas a las funciones de la biblioteca de C como @code{open}, @code{stat}, @code{exec}, etcétera. Al contrario que PRoot, el proceso se somete únicamente a una pequeña sobrecarga. No obstante, no siempre funciona: algunos accesos realizados dentro de la biblioteca de C no se interceptan, ni tampoco los accesos al sistema de archivos a través de llamadas al sistema directas, lo que puede provocar un comportamiento impredecible."
+
+#. type: vindex
+#: doc/guix.texi:5956
+#, no-wrap
+msgid "GUIX_EXECUTION_ENGINE"
+msgstr "GUIX_EXECUTION_ENGINE"
 
 #. type: quotation
-#: doc/guix.texi:5201
-msgid "The @uref{https://proot-me.github.io/, PRoot} program provides the necessary support for file system virtualization.  It achieves that by using the @code{ptrace} system call on the running program.  This approach has the advantage to work without requiring special kernel support, but it incurs run-time overhead every time a system call is made."
-msgstr "El programa @uref{https://proot-me.github.io/, PRoot} proporciona el soporte necesario para la virtualización del sistema de ficheros. Lo consigue mediante el uso de la llamada al sistema @code{ptrace} en el programa en ejecución. Esta aproximación tiene la ventaja de funcionar sin soporte especial en el núcleo, pero incurre en una sobrecarga en el tiempo de ejecución cada vez que se realiza una llamada al sistema."
+#: doc/guix.texi:5960
+msgid "When running a wrapped program, you can explicitly request one of the execution engines listed above by setting the @env{GUIX_EXECUTION_ENGINE} environment variable accordingly."
+msgstr "Cuando ejecute un programa recubierto puede solicitar explícitamente uno de los motores de ejecución enumerados previamente proporcionando el valor adecuado a la variable de entorno @env{GUIX_EXECUTION_ENGINE}."
 
 #. type: cindex
-#: doc/guix.texi:5203
+#: doc/guix.texi:5962
 #, no-wrap
 msgid "entry point, for Docker images"
 msgstr "punto de entrada, para imágenes de Docker"
 
 #. type: item
-#: doc/guix.texi:5204
+#: doc/guix.texi:5963
 #, no-wrap
 msgid "--entry-point=@var{command}"
 msgstr "--entry-point=@var{orden}"
 
 # FUZZY FUZZY
 #. type: table
-#: doc/guix.texi:5209
+#: doc/guix.texi:5968
 msgid "Use @var{command} as the @dfn{entry point} of the resulting pack, if the pack format supports it---currently @code{docker} and @code{squashfs} (Singularity)  support it.  @var{command} must be relative to the profile contained in the pack."
 msgstr "Usa @var{orden} como el @dfn{punto de entrada} del empaquetado resultante, si el formato de empaquetado lo permite---actualmente @code{docker} y @code{squashfs} (Singularity) lo permiten. @var{orden} debe ser una ruta relativa al perfil contenido en el empaquetado."
 
 #. type: table
-#: doc/guix.texi:5213
+#: doc/guix.texi:5972
 msgid "The entry point specifies the command that tools like @code{docker run} or @code{singularity run} automatically start by default.  For example, you can do:"
 msgstr "El punto de entrada especifica la orden que herramientas como @code{docker run} o @code{singularity run} arrancan de manera automática de forma predeterminada. Por ejemplo, puede ejecutar:"
 
 #. type: example
-#: doc/guix.texi:5216
+#: doc/guix.texi:5975
 #, no-wrap
 msgid "guix pack -f docker --entry-point=bin/guile guile\n"
 msgstr "guix pack -f docker --entry-point=bin/guile guile\n"
 
 #. type: table
-#: doc/guix.texi:5220
+#: doc/guix.texi:5979
 msgid "The resulting pack can easily be loaded and @code{docker run} with no extra arguments will spawn @code{bin/guile}:"
 msgstr "El empaquetado resultante puede cargarse fácilmente y @code{docker run} sin parámetros adicionales lanzará @code{bin/guile}:"
 
 #. type: example
-#: doc/guix.texi:5224
+#: doc/guix.texi:5983
 #, no-wrap
 msgid ""
 "docker load -i pack.tar.gz\n"
@@ -11262,256 +12728,400 @@ msgstr ""
 "docker run @var{image-id}\n"
 
 #. type: table
-#: doc/guix.texi:5229 doc/guix.texi:9487 doc/guix.texi:10192
+#: doc/guix.texi:5988 doc/guix.texi:11308 doc/guix.texi:12093
 msgid "Consider the package @var{expr} evaluates to."
 msgstr "Considera el paquete al que evalúa @var{expr}"
 
 #. type: table
-#: doc/guix.texi:5233
-msgid "This has the same purpose as the same-named option in @command{guix build} (@pxref{Additional Build Options, @code{--expression} in @command{guix build}})."
-msgstr "Esto tiene el mismo propósito que la opción del mismo nombre en @command{guix build} (@pxref{Additional Build Options, @code{--expression} in @command{guix build}})."
+#: doc/guix.texi:5992
+msgid "This has the same purpose as the same-named option in @command{guix build} (@pxref{Additional Build Options, @option{--expression} in @command{guix build}})."
+msgstr "Su propósito es idéntico a la opción del mismo nombre en @command{guix build} (@pxref{Additional Build Options, @option{--expression} en @command{guix build}})."
 
 #. type: table
-#: doc/guix.texi:5239
+#: doc/guix.texi:5998
 msgid "Use the packages contained in the manifest object returned by the Scheme code in @var{file}.  This option can be repeated several times, in which case the manifests are concatenated."
-msgstr "Usa los paquetes contenidos en el objeto manifest devuelto por el código Scheme en @var{fichero}. Esta opción puede repetirse varias veces, en cuyo caso los manifiestos se concatenan."
+msgstr "Usa los paquetes contenidos en el objeto manifest devuelto por el código Scheme en @var{archivo}. Esta opción puede repetirse varias veces, en cuyo caso los manifiestos se concatenan."
 
 #. type: table
-#: doc/guix.texi:5247
+#: doc/guix.texi:6006
 msgid "This has a similar purpose as the same-named option in @command{guix package} (@pxref{profile-manifest, @option{--manifest}}) and uses the same manifest files.  It allows you to define a collection of packages once and use it both for creating profiles and for creating archives for use on machines that do not have Guix installed.  Note that you can specify @emph{either} a manifest file @emph{or} a list of packages, but not both."
-msgstr "Esto tiene un propósito similar al de la opción del mismo nombre en @command{guix package} (@pxref{profile-manifest, @option{--manifest}}) y usa los mismos ficheros de manifiesto. Esto le permite definir una colección de paquetes una vez y usarla tanto para crear perfiles como para crear archivos en máquinas que no tienen instalado Guix. Fíjese que puede especificar @emph{o bien} un fichero de manifiesto @emph{o bien} una lista de paquetes, pero no ambas."
+msgstr "Esto tiene un propósito similar al de la opción del mismo nombre en @command{guix package} (@pxref{profile-manifest, @option{--manifest}}) y usa los mismos archivos de manifiesto. Esto le permite definir una colección de paquetes una vez y usarla tanto para crear perfiles como para crear archivos en máquinas que no tienen instalado Guix. Fíjese que puede especificar @emph{o bien} un archivo de manifiesto @emph{o bien} una lista de paquetes, pero no ambas."
 
 #. type: item
-#: doc/guix.texi:5253 doc/guix.texi:8669
+#: doc/guix.texi:6012 doc/guix.texi:10477
 #, no-wrap
 msgid "--target=@var{triplet}"
 msgstr "--target=@var{tripleta}"
 
 #. type: cindex
-#: doc/guix.texi:5254 doc/guix.texi:5610 doc/guix.texi:8670
+#: doc/guix.texi:6013 doc/guix.texi:6464 doc/guix.texi:10478
 #, no-wrap
 msgid "cross-compilation"
 msgstr "compilación cruzada"
 
 #. type: table
-#: doc/guix.texi:5258
-msgid "Cross-build for @var{triplet}, which must be a valid GNU triplet, such as @code{\"mips64el-linux-gnu\"} (@pxref{Specifying target triplets, GNU configuration triplets,, autoconf, Autoconf})."
-msgstr "Compilación cruzada para la @var{tripleta}, que debe ser una tripleta GNU válida, cómo @code{\"mips64el-linux-gnu\"} (@pxref{Specifying target triplets, GNU configuration triplets,, autoconf, Autoconf})."
+#: doc/guix.texi:6017
+msgid "Cross-build for @var{triplet}, which must be a valid GNU triplet, such as @code{\"aarch64-linux-gnu\"} (@pxref{Specifying target triplets, GNU configuration triplets,, autoconf, Autoconf})."
+msgstr "Compilación cruzada para la @var{tripleta}, que debe ser una tripleta GNU válida, cómo @code{\"aarch64-linux-gnu\"} (@pxref{Specifying target triplets, GNU configuration triplets,, autoconf, Autoconf})."
 
 #. type: item
-#: doc/guix.texi:5259
+#: doc/guix.texi:6018
 #, no-wrap
 msgid "--compression=@var{tool}"
 msgstr "--compression=@var{herramienta}"
 
 #. type: itemx
-#: doc/guix.texi:5260
+#: doc/guix.texi:6019
 #, no-wrap
 msgid "-C @var{tool}"
 msgstr "-C @var{herramienta}"
 
 #. type: table
-#: doc/guix.texi:5263
-msgid "Compress the resulting tarball using @var{tool}---one of @code{gzip}, @code{bzip2}, @code{xz}, @code{lzip}, or @code{none} for no compression."
-msgstr "Comprime el archivador resultante usando @var{herramienta}---un valor que puede ser @code{gzip}, @code{bzip2}, @code{xz}, @code{lzip} o @code{none} para no usar compresión."
+#: doc/guix.texi:6023
+msgid "Compress the resulting tarball using @var{tool}---one of @code{gzip}, @code{zstd}, @code{bzip2}, @code{xz}, @code{lzip}, or @code{none} for no compression."
+msgstr "Comprime el archivador resultante usando @var{herramienta}---un valor que puede ser @code{gzip}, @code{zstd}, @code{bzip2}, @code{xz}, @code{lzip} o @code{none} para no usar compresión."
 
 #. type: item
-#: doc/guix.texi:5264
+#: doc/guix.texi:6024
 #, no-wrap
 msgid "--symlink=@var{spec}"
 msgstr "--symlink=@var{spec}"
 
 #. type: itemx
-#: doc/guix.texi:5265
+#: doc/guix.texi:6025
 #, no-wrap
 msgid "-S @var{spec}"
 msgstr "-S @var{spec}"
 
 #. type: table
-#: doc/guix.texi:5268
+#: doc/guix.texi:6028
 msgid "Add the symlinks specified by @var{spec} to the pack.  This option can appear several times."
 msgstr "Añade los enlaces simbólicos especificados por @var{spec} al empaquetado. Esta opción puede aparecer varias veces."
 
 #. type: table
-#: doc/guix.texi:5272
+#: doc/guix.texi:6032
 msgid "@var{spec} has the form @code{@var{source}=@var{target}}, where @var{source} is the symlink that will be created and @var{target} is the symlink target."
 msgstr "La forma de @var{spec} es @code{@var{fuente}=@var{destino}}, donde @var{fuente} es el enlace simbólico que será creado y @var{destino} es el destino del enlace simbólico."
 
 #. type: table
-#: doc/guix.texi:5275
+#: doc/guix.texi:6035
 msgid "For instance, @code{-S /opt/gnu/bin=bin} creates a @file{/opt/gnu/bin} symlink pointing to the @file{bin} sub-directory of the profile."
 msgstr "Por ejemplo, @code{-S /opt/gnu/bin=bin} crea un enlace simbólico @file{/opt/gnu/bin} apuntando al subdirectorio @file{bin} del perfil."
 
 #. type: item
-#: doc/guix.texi:5276 doc/guix.texi:26880
+#: doc/guix.texi:6036 doc/guix.texi:31017
 #, no-wrap
 msgid "--save-provenance"
 msgstr "--save-provenance"
 
 #. type: table
-#: doc/guix.texi:5280
+#: doc/guix.texi:6040
 msgid "Save provenance information for the packages passed on the command line.  Provenance information includes the URL and commit of the channels in use (@pxref{Channels})."
 msgstr "Almacena la información de procedencia para paquetes proporcionados en la línea de órdenes. La información de procedencia incluye la URL y revisión de los canales en uso (@pxref{Channels})."
 
 #. type: table
-#: doc/guix.texi:5286
+#: doc/guix.texi:6046
 msgid "Provenance information is saved in the @file{/gnu/store/@dots{}-profile/manifest} file in the pack, along with the usual package metadata---the name and version of each package, their propagated inputs, and so on.  It is useful information to the recipient of the pack, who then knows how the pack was (supposedly) obtained."
-msgstr "La información de procedencia se almacena en el fichero @file{/gnu/store/@dots{}-profile/manifest} dentro del empaquetado, junto a los metadatos habituales del paquete---el nombre y la versión de cada paquete, sus entradas propagadas, etcétera. Es información útil para la parte receptora del empaquetado, quien de ese modo conoce como se obtuvo (supuestamente) dicho empaquetado."
+msgstr "La información de procedencia se almacena en el archivo @file{/gnu/store/@dots{}-profile/manifest} dentro del empaquetado, junto a los metadatos habituales del paquete---el nombre y la versión de cada paquete, sus entradas propagadas, etcétera. Es información útil para la parte receptora del empaquetado, quien de ese modo conoce como se obtuvo (supuestamente) dicho empaquetado."
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:5292
+#: doc/guix.texi:6052
 msgid "This option is not enabled by default because, like timestamps, provenance information contributes nothing to the build process.  In other words, there is an infinity of channel URLs and commit IDs that can lead to the same pack.  Recording such ``silent'' metadata in the output thus potentially breaks the source-to-binary bitwise reproducibility property."
 msgstr "Esta opción no se usa de manera predeterminada debido a que, como las marcas de tiempo, la información de procedencia no aportan nada al proceso de construcción. En otras palabras, hay una infinidad de URL de canales e identificadores de revisiones que pueden llevar al mismo empaquetado. Almacenar estos metadatos ``silenciosos'' en la salida puede potencialmente romper la propiedad de reproducibilidad bit a bit entre fuentes y binarios."
 
 # FUZZY
 #. type: cindex
-#: doc/guix.texi:5295
+#: doc/guix.texi:6055
 #, no-wrap
 msgid "garbage collector root, for packs"
 msgstr "raíces del recolector de basura, para empaquetados"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:5298
+#: doc/guix.texi:6058
 msgid "Make @var{file} a symlink to the resulting pack, and register it as a garbage collector root."
-msgstr "Hace que @var{fichero} sea un enlace simbólico al empaquetado resultante, y lo registra como una raíz del recolector de basura."
+msgstr "Hace que @var{archivo} sea un enlace simbólico al empaquetado resultante, y lo registra como una raíz del recolector de basura."
 
 #. type: item
-#: doc/guix.texi:5299
+#: doc/guix.texi:6059
 #, no-wrap
 msgid "--localstatedir"
 msgstr "--localstatedir"
 
 #. type: itemx
-#: doc/guix.texi:5300
+#: doc/guix.texi:6060
 #, no-wrap
 msgid "--profile-name=@var{name}"
 msgstr "--profile-name=@var{nombre}"
 
 #. type: table
-#: doc/guix.texi:5305
+#: doc/guix.texi:6065
 msgid "Include the ``local state directory'', @file{/var/guix}, in the resulting pack, and notably the @file{/var/guix/profiles/per-user/root/@var{name}} profile---by default @var{name} is @code{guix-profile}, which corresponds to @file{~root/.guix-profile}."
 msgstr "Incluye el ``directorio de estado local'', @file{/var/guix}, en el empaquetado resultante, y notablemente el perfil @file{/var/guix/profiles/per-user/root/@var{nombre}}---por defecto @var{nombre} es @code{guix-profile}, que corresponde con @file{~root/.guix-profile}."
 
 #. type: table
-#: doc/guix.texi:5311
+#: doc/guix.texi:6071
 msgid "@file{/var/guix} contains the store database (@pxref{The Store}) as well as garbage-collector roots (@pxref{Invoking guix gc}).  Providing it in the pack means that the store is ``complete'' and manageable by Guix; not providing it pack means that the store is ``dead'': items cannot be added to it or removed from it after extraction of the pack."
 msgstr "@file{/var/guix} contiene la base de datos del almacén (@pxref{The Store}) así como las raíces del recolector de basura (@pxref{Invoking guix gc}). Proporcionarlo junto al empaquetado significa que el almacén está ``completo'' y Guix puede trabajar con él; no proporcionarlo significa que el almacén está ``muerto'': no se pueden añadir o borrar nuevos elementos después de la extracción del empaquetado."
 
 #. type: table
-#: doc/guix.texi:5314
+#: doc/guix.texi:6074
 msgid "One use case for this is the Guix self-contained binary tarball (@pxref{Binary Installation})."
 msgstr "Un caso de uso para esto es el archivador tar autocontenido de binarios de Guix (@pxref{Binary Installation})."
 
 #. type: item
-#: doc/guix.texi:5315 doc/guix.texi:26874
+#: doc/guix.texi:6075 doc/guix.texi:31011
 #, no-wrap
 msgid "--derivation"
 msgstr "--derivation"
 
 #. type: itemx
-#: doc/guix.texi:5316 doc/guix.texi:8701 doc/guix.texi:26875
+#: doc/guix.texi:6076 doc/guix.texi:10509 doc/guix.texi:31012
 #, no-wrap
 msgid "-d"
 msgstr "-d"
 
 #. type: table
-#: doc/guix.texi:5318
+#: doc/guix.texi:6078
 msgid "Print the name of the derivation that builds the pack."
 msgstr "Imprime el nombre de la derivación que construye el empaquetado."
 
 #. type: table
-#: doc/guix.texi:5322
+#: doc/guix.texi:6082
 msgid "Use the bootstrap binaries to build the pack.  This option is only useful to Guix developers."
 msgstr "Usa los binarios del lanzamiento para construir el empaquetado. Esta opción es útil únicamente a las desarrolladoras de Guix."
 
 #. type: Plain text
-#: doc/guix.texi:5327
+#: doc/guix.texi:6087
 msgid "In addition, @command{guix pack} supports all the common build options (@pxref{Common Build Options}) and all the package transformation options (@pxref{Package Transformation Options})."
 msgstr "Además, @command{guix pack} acepta todas las opciones comunes de construcción (@pxref{Common Build Options}) y todas las opciones de transformación de paquetes (@pxref{Package Transformation Options})."
 
+#. type: cindex
+#: doc/guix.texi:6092
+#, no-wrap
+msgid "GCC"
+msgstr "GCC"
+
+#. type: cindex
+#: doc/guix.texi:6093
+#, no-wrap
+msgid "ld-wrapper"
+msgstr "ld-wrapper"
+
+#. type: cindex
+#: doc/guix.texi:6094
+#, no-wrap
+msgid "linker wrapper"
+msgstr "recubrimiento del enlazador"
+
+#. type: cindex
+#: doc/guix.texi:6095
+#, no-wrap
+msgid "toolchain, for C development"
+msgstr "cadena de herramientas de desarrollo, para C"
+
+#. type: cindex
+#: doc/guix.texi:6096
+#, no-wrap
+msgid "toolchain, for Fortran development"
+msgstr "cadena de herramientas de desarrollo, para Fortran"
+
+#. type: Plain text
+#: doc/guix.texi:6103
+msgid "If you need a complete toolchain for compiling and linking C or C++ source code, use the @code{gcc-toolchain} package.  This package provides a complete GCC toolchain for C/C++ development, including GCC itself, the GNU C Library (headers and binaries, plus debugging symbols in the @code{debug} output), Binutils, and a linker wrapper."
+msgstr "Si necesita una cadena de herramientas de desarrollo completa para compilar y enlazar código fuente C o C++, use el paquete @code{gcc-toolchain}. Este paquete proporciona una cadena de herramientas GCC para desarrollo C/C++, incluyendo el propio GCC, la biblioteca de C GNU (cabeceras y binarios, más símbolos de depuración de la salida @code{debug}), Binutils y un recubrimiento del enlazador."
+
+#. type: Plain text
+#: doc/guix.texi:6109
+msgid "The wrapper's purpose is to inspect the @code{-L} and @code{-l} switches passed to the linker, add corresponding @code{-rpath} arguments, and invoke the actual linker with this new set of arguments.  You can instruct the wrapper to refuse to link against libraries not in the store by setting the @env{GUIX_LD_WRAPPER_ALLOW_IMPURITIES} environment variable to @code{no}."
+msgstr "El propósito del recubrimiento es inspeccionar las opciones @code{-L} y @code{-l} proporcionadas al enlazador, y los correspondientes parámetros @code{-rpath}, y llamar al enlazador real con este nuevo conjunto de parámetros. Puede instruir al recubrimiento para rechazar el enlace contra bibliotecas que no se encuentren en el almacén proporcionando el valor @code{no} a la variable de entorno @env{GUIX_LD_WRAPPER_ALLOW_IMPURITIES}."
+
+#. type: Plain text
+#: doc/guix.texi:6113
+msgid "The package @code{gfortran-toolchain} provides a complete GCC toolchain for Fortran development.  For other languages, please use @samp{guix search gcc toolchain} (@pxref{guix-search,, Invoking guix package})."
+msgstr "El paquete @code{gfortran-toolchain} proporciona una cadena de herramientas de desarrollo completa de GCC para desarrollo en Fortran. Para otros lenguajes por favor use @samp{guix search gcc toolchain} (@pxref{guix-search,, Invoking guix package})."
+
+#. type: section
+#: doc/guix.texi:6116
+#, no-wrap
+msgid "Invoking @command{guix git authenticate}"
+msgstr "Invocación de @command{guix git authenticate}"
+
+#. type: Plain text
+#: doc/guix.texi:6124
+msgid "The @command{guix git authenticate} command authenticates a Git checkout following the same rule as for channels (@pxref{channel-authentication, channel authentication}).  That is, starting from a given commit, it ensures that all subsequent commits are signed by an OpenPGP key whose fingerprint appears in the @file{.guix-authorizations} file of its parent commit(s)."
+msgstr "La orden @command{guix git authenticate} verifica una revisión de Git siguiendo las mismas reglas que con los canales (@pxref{channel-authentication, verificación de canales}). Es decir, empezando en una revisión dada, se asegura que todas las revisiones posteriores están firmadas por una clave OpenPGP cuya huella aparece en el archivo @file{.guix-authorizations} de su revisión o revisiones antecesoras."
+
+#. type: Plain text
+#: doc/guix.texi:6129
+msgid "You will find this command useful if you maintain a channel.  But in fact, this authentication mechanism is useful in a broader context, so you might want to use it for Git repositories that have nothing to do with Guix."
+msgstr "Encontrará útil esta orden si mantiene un canal. Pero de hecho, este sistema de verificación es útil en un contexto más amplio, por lo que quizá quiera usarlo para repositorios de Git que no estén relacionados con Guix."
+
+#. type: example
+#: doc/guix.texi:6134
+#, no-wrap
+msgid "guix git authenticate @var{commit} @var{signer} [@var{options}@dots{}]\n"
+msgstr "guix git authenticate @var{revisión} @var{firma} [@var{opciones}@dots{}]\n"
+
 #. type: Plain text
-#: doc/guix.texi:5339
+#: doc/guix.texi:6143
+msgid "By default, this command authenticates the Git checkout in the current directory; it outputs nothing and exits with exit code zero on success and non-zero on failure.  @var{commit} above denotes the first commit where authentication takes place, and @var{signer} is the OpenPGP fingerprint of public key used to sign @var{commit}.  Together, they form a ``channel introduction'' (@pxref{channel-authentication, channel introduction}).  The options below allow you to fine-tune the process."
+msgstr "De manera predeterminada esta orden verifica la copia de trabajo de Git en el directorio actual; no muestra nada y termina con un código de salida cero en caso satisfactorio y con un valor distinto a cero en caso de fallo. @var{revisión} denota la primera revisión a partir de la cual la verificación tiene lugar, y @var{firma} es la huella de OpenPGP de la clave pública usada para firmar @var{revisión}. Juntas forman la ``presentación del canal'' (@pxref{channel-authentication, presentación del canal}). Las siguientes opciones le permiten controlar con más detalle el proceso."
+
+#. type: item
+#: doc/guix.texi:6145
+#, no-wrap
+msgid "--repository=@var{directory}"
+msgstr "--repository=@var{directorio}"
+
+#. type: itemx
+#: doc/guix.texi:6146
+#, no-wrap
+msgid "-r @var{directory}"
+msgstr "-r @var{directorio}"
+
+#. type: table
+#: doc/guix.texi:6149
+msgid "Open the Git repository in @var{directory} instead of the current directory."
+msgstr "Usa el repositorio Git en @var{directorio} en vez del directorio actual."
+
+#. type: item
+#: doc/guix.texi:6150
+#, no-wrap
+msgid "--keyring=@var{reference}"
+msgstr "--keyring=@var{referencia}"
+
+#. type: itemx
+#: doc/guix.texi:6151
+#, no-wrap
+msgid "-k @var{reference}"
+msgstr "-k @var{referencia}"
+
+#. type: table
+#: doc/guix.texi:6157
+msgid "Load OpenPGP keyring from @var{reference}, the reference of a branch such as @code{origin/keyring} or @code{my-keyring}.  The branch must contain OpenPGP public keys in @file{.key} files, either in binary form or ``ASCII-armored''.  By default the keyring is loaded from the branch named @code{keyring}."
+msgstr "Carga el anillo de claves desde @var{referencia}, la rama de referencia como por ejemplo @code{origin/keyring} o @code{mi-anillo-de-claves}. La rama debe contener las claves públicas de OpenPGP en archivos @file{.key}, binarios o con ``armadura ASCII'.  De manera predeterminada el anillo de claves se carga de la rama con nombre @code{keyring}."
+
+#. type: item
+#: doc/guix.texi:6158
+#, no-wrap
+msgid "--stats"
+msgstr "--stats"
+
+#. type: table
+#: doc/guix.texi:6160
+msgid "Display commit signing statistics upon completion."
+msgstr "Muestra las estadísticas de firmas de revisiones tras finalizar."
+
+#. type: item
+#: doc/guix.texi:6161
+#, no-wrap
+msgid "--cache-key=@var{key}"
+msgstr "--cache-key=@var{clave}"
+
+#. type: table
+#: doc/guix.texi:6165
+msgid "Previously-authenticated commits are cached in a file under @file{~/.cache/guix/authentication}.  This option forces the cache to be stored in file @var{key} in that directory."
+msgstr "Las revisiones verificadas previamente se almacenan en un archivo bajo @file{~/.cache/guix/authentication}. Esta opción fuerza el almacenamiento en el archivo @var{clave} de dicho directorio."
+
+#. type: item
+#: doc/guix.texi:6166
+#, no-wrap
+msgid "--historical-authorizations=@var{file}"
+msgstr "--historical-authorizations=@var{archivo}"
+
+#. type: table
+#: doc/guix.texi:6173
+msgid "By default, any commit whose parent commit(s) lack the @file{.guix-authorizations} file is considered inauthentic.  In contrast, this option considers the authorizations in @var{file} for any commit that lacks @file{.guix-authorizations}.  The format of @var{file} is the same as that of @file{.guix-authorizations} (@pxref{channel-authorizations, @file{.guix-authorizations} format})."
+msgstr "De manera predeterminada, cualquier revisión cuyo antecesor o antecesores carezcan del archivo @file{.guix-authorizations} no se considera auténtica. En contraste, esta opción considera las autorizaciones en @var{archivo} para cualquier revisión que carezca de @file{.guix-authorizations}. El formato de @var{archivo} es el mismo que el de @file{.guix-authorizations} (@pxref{channel-authorizations, formato de @file{.guix-authorizations}})."
+
+#. type: Plain text
+#: doc/guix.texi:6186
 msgid "GNU Guix provides several Scheme programming interfaces (APIs) to define, build, and query packages.  The first interface allows users to write high-level package definitions.  These definitions refer to familiar packaging concepts, such as the name and version of a package, its build system, and its dependencies.  These definitions can then be turned into concrete build actions."
 msgstr "GNU Guix proporciona viarias interfaces programáticas Scheme (APIs) para definir, construir y consultar paquetes. La primera interfaz permite a las usuarias escribir definiciones de paquetes a alto nivel. Estas definiciones referencian conceptos familiares de empaquetamiento, como el nombre y la versión de un paquete, su sistema de construcción y sus dependencias. Estas definiciones se pueden convertir en acciones concretas de construcción."
 
 # FUZZY
 #. type: Plain text
-#: doc/guix.texi:5345
-msgid "Build actions are performed by the Guix daemon, on behalf of users.  In a standard setup, the daemon has write access to the store---the @file{/gnu/store} directory---whereas users do not.  The recommended setup also has the daemon perform builds in chroots, under a specific build users, to minimize interference with the rest of the system."
+#: doc/guix.texi:6192
+msgid "Build actions are performed by the Guix daemon, on behalf of users.  In a standard setup, the daemon has write access to the store---the @file{/gnu/store} directory---whereas users do not.  The recommended setup also has the daemon perform builds in chroots, under specific build users, to minimize interference with the rest of the system."
 msgstr "Las acciones de construcción son realizadas por el daemon Guix, en delegación de las usuarias. En una configuración estándar, el daemon tiene acceso de escritura al almacén---el directorio @file{/gnu/store}---mientras que las usuarias no. En la configuración recomendada el daemon también realiza las construcciones en chroots, bajo usuarias específicas de construcción, para minimizar la interferencia con el resto del sistema."
 
 #. type: Plain text
-#: doc/guix.texi:5354
+#: doc/guix.texi:6201
 msgid "Lower-level APIs are available to interact with the daemon and the store.  To instruct the daemon to perform a build action, users actually provide it with a @dfn{derivation}.  A derivation is a low-level representation of the build actions to be taken, and the environment in which they should occur---derivations are to package definitions what assembly is to C programs.  The term ``derivation'' comes from the fact that build results @emph{derive} from them."
 msgstr "Las APIs de nivel más bajo están disponibles para interactuar con el daemon y el almacén. Para instruir al daemon para realizar una acción de construcción, las usuarias realmente proporcionan una @dfn{derivación}. Una derivación es una representación de bajo nivel de las acciones de construcción a tomar, y el entorno en el que deberían suceder---las derivaciones son a las definiciones de paquetes lo que es el ensamblador a los programas en C. El término ``derivación'' viene del hecho de que los resultados de la construcción @emph{derivan} de ellas."
 
 #. type: Plain text
-#: doc/guix.texi:5357
+#: doc/guix.texi:6204
 msgid "This chapter describes all these APIs in turn, starting from high-level package definitions."
 msgstr "Este capítulo describe todas estas APIs en orden, empezando por las definiciones de alto nivel de paquetes."
 
+#. type: menuentry
+#: doc/guix.texi:6217
+msgid "Programming Guix in Guile"
+msgstr "Programación de Guix en Guile"
+
 #. type: Plain text
-#: doc/guix.texi:5383
+#: doc/guix.texi:6233
 msgid "From a programming viewpoint, the package definitions of the GNU distribution are provided by Guile modules in the @code{(gnu packages @dots{})} name space@footnote{Note that packages under the @code{(gnu packages @dots{})} module name space are not necessarily ``GNU packages''.  This module naming scheme follows the usual Guile module naming convention: @code{gnu} means that these modules are distributed as part of the GNU system, and @code{packages} identifies modules that define packages.} (@pxref{Modules, Guile modules,, guile, GNU Guile Reference Manual}).  For instance, the @code{(gnu packages emacs)} module exports a variable named @code{emacs}, which is bound to a @code{<package>} object (@pxref{Defining Packages})."
 msgstr "Desde un punto de vista programático, las definiciones de paquetes de la distribución GNU se proporcionan por módulos Guile en el espacio de nombres @code{(gnu packages @dots{})}@footnote{Fíjese que los paquetes bajo el espacio de nombres de módulo @code{(gnu packages @dots{})} no son necesariamente ``paquetes GNU''. Este esquema de nombrado de módulos sigue la convención habitual de Guile para el nombrado de módulos: @code{gnu} significa que estos módulos se distribuyen como parte del sistema GNU, y @code{packages} identifica módulos que definen paquetes.} (@pxref{Modules, Guile modules,, guile, GNU Guile Reference Manual}). Por ejemplo, el módulo @code{(gnu packages emacs)} exporta una variable con nombre @code{emacs}, que está asociada a un objeto @code{<package>} (@pxref{Defining Packages})."
 
 # FUZZY
 #. type: Plain text
-#: doc/guix.texi:5390
+#: doc/guix.texi:6240
 msgid "The @code{(gnu packages @dots{})} module name space is automatically scanned for packages by the command-line tools.  For instance, when running @code{guix install emacs}, all the @code{(gnu packages @dots{})} modules are scanned until one that exports a package object whose name is @code{emacs} is found.  This package search facility is implemented in the @code{(gnu packages)} module."
 msgstr "El espacio de nombres de módulos @code{(gnu packages @dots{})} se recorre automáticamente en busca de paquetes en las herramientas de línea de ordenes. Por ejemplo, cuando se ejecuta @code{guix install emacs}, todos los módulos @code{(gnu packages @dots{})} son procesados hasta encontrar uno que exporte un objeto de paquete cuyo nombre sea @code{emacs}. Esta búsqueda de paquetes se implementa en el módulo @code{(gnu packages)}."
 
 #. type: cindex
-#: doc/guix.texi:5392
+#: doc/guix.texi:6242
 #, no-wrap
 msgid "package module search path"
 msgstr "ruta de búsqueda de módulos de paquetes"
 
 #. type: Plain text
-#: doc/guix.texi:5401
-msgid "Users can store package definitions in modules with different names---e.g., @code{(my-packages emacs)}@footnote{Note that the file name and module name must match.  For instance, the @code{(my-packages emacs)} module must be stored in a @file{my-packages/emacs.scm} file relative to the load path specified with @option{--load-path} or @code{GUIX_PACKAGE_PATH}.  @xref{Modules and the File System,,, guile, GNU Guile Reference Manual}, for details.}.  There are two ways to make these package definitions visible to the user interfaces:"
-msgstr "Las usuarias pueden almacenar definiciones de paquetes en módulos con nombres diferentes---por ejemplo, @code{(mis-paquetes emacs)}@footnote{Fíjese que el nombre de fichero y el nombre de módulo deben coincidir. Por ejemplo, el módulo @code{(mis-paquetes emacs)} debe almacenarse en el fichero @file{mis-paquetes/emacs.scm} en relación con la ruta de carga especificada con @option{--load-path} o @code{GUIX_PACKAGE_PATH}. @xref{Modules and the File System,,, guile, GNU Guile Reference Manual}, para obtener detalles.}. Existen dos maneras de hacer visibles estas definiciones de paquetes a las interfaces de usuaria:"
+#: doc/guix.texi:6251
+msgid "Users can store package definitions in modules with different names---e.g., @code{(my-packages emacs)}@footnote{Note that the file name and module name must match.  For instance, the @code{(my-packages emacs)} module must be stored in a @file{my-packages/emacs.scm} file relative to the load path specified with @option{--load-path} or @env{GUIX_PACKAGE_PATH}.  @xref{Modules and the File System,,, guile, GNU Guile Reference Manual}, for details.}.  There are two ways to make these package definitions visible to the user interfaces:"
+msgstr "Las usuarias pueden almacenar definiciones de paquetes en módulos con nombres diferentes---por ejemplo, @code{(mis-paquetes emacs)}@footnote{Fíjese que el nombre de archivo y el nombre de módulo deben coincidir. Por ejemplo, el módulo @code{(mis-paquetes emacs)} debe almacenarse en el archivo @file{mis-paquetes/emacs.scm} en relación con la ruta de carga especificada con @option{--load-path} o @env{GUIX_PACKAGE_PATH}. @xref{Modules and the File System,,, guile, GNU Guile Reference Manual}, para obtener detalles.}. Existen dos maneras de hacer visibles estas definiciones de paquetes a las interfaces de usuaria:"
 
 #. type: enumerate
-#: doc/guix.texi:5408
-msgid "By adding the directory containing your package modules to the search path with the @code{-L} flag of @command{guix package} and other commands (@pxref{Common Build Options}), or by setting the @code{GUIX_PACKAGE_PATH} environment variable described below."
-msgstr "Mediante la adición del directorio que contiene sus módulos de paquetes a la ruta de búsqueda con la opción @code{-L} de @command{guix package} y otras órdenes (@pxref{Common Build Options}), o usando la variable de entorno @code{GUIX_PACKAGE_PATH} descrita más adelante."
+#: doc/guix.texi:6258
+msgid "By adding the directory containing your package modules to the search path with the @code{-L} flag of @command{guix package} and other commands (@pxref{Common Build Options}), or by setting the @env{GUIX_PACKAGE_PATH} environment variable described below."
+msgstr "Mediante la adición del directorio que contiene sus módulos de paquetes a la ruta de búsqueda con la opción @code{-L} de @command{guix package} y otras órdenes (@pxref{Common Build Options}), o usando la variable de entorno @env{GUIX_PACKAGE_PATH} descrita a continuación."
 
 #. type: enumerate
-#: doc/guix.texi:5414
+#: doc/guix.texi:6264
 msgid "By defining a @dfn{channel} and configuring @command{guix pull} so that it pulls from it.  A channel is essentially a Git repository containing package modules.  @xref{Channels}, for more information on how to define and use channels."
 msgstr "Mediante la definición de un @dfn{canal} y la configuración de @command{guix pull} de manera que se actualice desde él. Un canal es esencialmente un repositorio Git que contiene módulos de paquetes. @xref{Channels}, para más información sobre cómo definir y usar canales."
 
 #. type: Plain text
-#: doc/guix.texi:5417
-msgid "@code{GUIX_PACKAGE_PATH} works similarly to other search path variables:"
-msgstr "@code{GUIX_PACKAGE_PATH} funciona de forma similar a otras variables de rutas de búsqueda:"
+#: doc/guix.texi:6267
+msgid "@env{GUIX_PACKAGE_PATH} works similarly to other search path variables:"
+msgstr "@env{GUIX_PACKAGE_PATH} funciona de forma similar a otras variables de rutas de búsqueda:"
 
 #. type: defvr
-#: doc/guix.texi:5418
+#: doc/guix.texi:6268
 #, no-wrap
 msgid "{Environment Variable} GUIX_PACKAGE_PATH"
 msgstr "{Variable de entorno} GUIX_PACKAGE_PATH"
 
 #. type: defvr
-#: doc/guix.texi:5422
+#: doc/guix.texi:6272
 msgid "This is a colon-separated list of directories to search for additional package modules.  Directories listed in this variable take precedence over the own modules of the distribution."
 msgstr "Es una lista separada por dos puntos de directorios en los que se buscarán módulos de paquetes adicionales. Los directorios enumerados en esta variable tienen preferencia sobre los propios módulos de la distribución."
 
 #. type: Plain text
-#: doc/guix.texi:5430
+#: doc/guix.texi:6280
 msgid "The distribution is fully @dfn{bootstrapped} and @dfn{self-contained}: each package is built based solely on other packages in the distribution.  The root of this dependency graph is a small set of @dfn{bootstrap binaries}, provided by the @code{(gnu packages bootstrap)} module.  For more information on bootstrapping, @pxref{Bootstrapping}."
 msgstr "La distribución es @dfn{auto-contenida} y completamente @dfn{basada en el lanzamiento inicial}: cada paquete se construye basado únicamente en otros paquetes de la distribución. La raíz de este grafo de dependencias es un pequeño conjunto de @dfn{binarios del lanzamiento inicial}, proporcionados por el módulo @code{(gnu packages bootstrap)}. Para más información sobre el lanzamiento inicial, @pxref{Bootstrapping}."
 
 #. type: Plain text
-#: doc/guix.texi:5438
+#: doc/guix.texi:6288
 msgid "The high-level interface to package definitions is implemented in the @code{(guix packages)} and @code{(guix build-system)} modules.  As an example, the package definition, or @dfn{recipe}, for the GNU Hello package looks like this:"
 msgstr "La interfaz de alto nivel de las definiciones de paquetes está implementada en los módulos @code{(guix packages)} y @code{(guix build-system)}. Como un ejemplo, la definición de paquete, o @dfn{receta}, para el paquete GNU Hello es como sigue:"
 
 #. type: lisp
-#: doc/guix.texi:5446
+#: doc/guix.texi:6296
 #, no-wrap
 msgid ""
 "(define-module (gnu packages hello)\n"
@@ -11531,7 +13141,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:5465
+#: doc/guix.texi:6315
 #, no-wrap
 msgid ""
 "(define-public hello\n"
@@ -11573,69 +13183,74 @@ msgstr ""
 "    (license gpl3+)))\n"
 
 #. type: Plain text
-#: doc/guix.texi:5475
+#: doc/guix.texi:6325
 msgid "Without being a Scheme expert, the reader may have guessed the meaning of the various fields here.  This expression binds the variable @code{hello} to a @code{<package>} object, which is essentially a record (@pxref{SRFI-9, Scheme records,, guile, GNU Guile Reference Manual}).  This package object can be inspected using procedures found in the @code{(guix packages)} module; for instance, @code{(package-name hello)} returns---surprise!---@code{\"hello\"}."
 msgstr "Sin ser una experta en Scheme---pero conociendo un poco de inglés---, la lectora puede haber supuesto el significado de varios campos aquí. Esta expresión asocia la variable @code{hello} al objeto @code{<package>}, que esencialmente es un registro (@pxref{SRFI-9, Scheme records,, guile, GNU Guile Reference Manual}). Este objeto de paquete puede ser inspeccionado usando los procedimientos encontrados en el módulo @code{(guix packages)}; por ejemplo, @code{(package-name hello)} devuelve---¡sorpresa!---@code{\"hello\"}."
 
 #. type: Plain text
-#: doc/guix.texi:5479
+#: doc/guix.texi:6329
 msgid "With luck, you may be able to import part or all of the definition of the package you are interested in from another repository, using the @code{guix import} command (@pxref{Invoking guix import})."
 msgstr "Con suerte, puede que sea capaz de importar parte o toda la definición del paquete de su interés de otro repositorio, usando la orden @code{guix import} (@pxref{Invoking guix import})."
 
 #. type: Plain text
-#: doc/guix.texi:5485
-msgid "In the example above, @var{hello} is defined in a module of its own, @code{(gnu packages hello)}.  Technically, this is not strictly necessary, but it is convenient to do so: all the packages defined in modules under @code{(gnu packages @dots{})} are automatically known to the command-line tools (@pxref{Package Modules})."
-msgstr "En el ejemplo previo, @var{hello} se define en un módulo para ella, @code{(gnu packages hello)}. Técnicamente, esto no es estrictamente necesario, pero es conveniente hacerlo: todos los paquetes definidos en módulos bajo @code{(gnu packages @dots{})} se reconocen automáticamente en las herramientas de línea de órdenes (@pxref{Package Modules})."
+#: doc/guix.texi:6335
+msgid "In the example above, @code{hello} is defined in a module of its own, @code{(gnu packages hello)}.  Technically, this is not strictly necessary, but it is convenient to do so: all the packages defined in modules under @code{(gnu packages @dots{})} are automatically known to the command-line tools (@pxref{Package Modules})."
+msgstr "En el ejemplo previo, @code{hello} se define en un módulo para ella, @code{(gnu packages hello)}. Técnicamente, esto no es estrictamente necesario, pero es conveniente hacerlo: todos los paquetes definidos en módulos bajo @code{(gnu packages @dots{})} se reconocen automáticamente en las herramientas de línea de órdenes (@pxref{Package Modules})."
 
 #. type: Plain text
-#: doc/guix.texi:5487
+#: doc/guix.texi:6337
 msgid "There are a few points worth noting in the above package definition:"
 msgstr "Hay unos pocos puntos que merece la pena destacar de la definición de paquete previa:"
 
 #. type: itemize
-#: doc/guix.texi:5494
+#: doc/guix.texi:6344
 msgid "The @code{source} field of the package is an @code{<origin>} object (@pxref{origin Reference}, for the complete reference).  Here, the @code{url-fetch} method from @code{(guix download)} is used, meaning that the source is a file to be downloaded over FTP or HTTP."
-msgstr "El campo @code{source} del paquete es un objeto @code{<origin>} (@pxref{origin Reference}, para la referencia completa). Aquí se usa el método @code{url-fetch} de @code{(guix download)}, lo que significa que la fuente es un fichero a descargar por FTP o HTTP."
+msgstr "El campo @code{source} del paquete es un objeto @code{<origin>} (@pxref{origin Reference}, para la referencia completa). Aquí se usa el método @code{url-fetch} de @code{(guix download)}, lo que significa que la fuente es un archivo a descargar por FTP o HTTP."
 
 #. type: itemize
-#: doc/guix.texi:5497
+#: doc/guix.texi:6347
 msgid "The @code{mirror://gnu} prefix instructs @code{url-fetch} to use one of the GNU mirrors defined in @code{(guix download)}."
 msgstr "El prefijo @code{mirror://gnu} instruye a @code{url-fetch} para usar uno de los espejos GNU definidos en @code{(guix download)}."
 
 #. type: itemize
-#: doc/guix.texi:5504
+#: doc/guix.texi:6354
 msgid "The @code{sha256} field specifies the expected SHA256 hash of the file being downloaded.  It is mandatory, and allows Guix to check the integrity of the file.  The @code{(base32 @dots{})} form introduces the base32 representation of the hash.  You can obtain this information with @code{guix download} (@pxref{Invoking guix download}) and @code{guix hash} (@pxref{Invoking guix hash})."
-msgstr "El campo @code{sha256} especifica el hash SHA256 esperado del fichero descargado. Es obligatorio, y permite a Guix comprobar la integridad del fichero. La forma @code{(base32 @dots{})} introduce la representación base32 del hash. Puede obtener esta información con @code{guix download} (@pxref{Invoking guix download}) y @code{guix hash} (@pxref{Invoking guix hash})."
+msgstr "El campo @code{sha256} especifica el hash SHA256 esperado del archivo descargado. Es obligatorio, y permite a Guix comprobar la integridad del archivo. La forma @code{(base32 @dots{})} introduce la representación base32 del hash. Puede obtener esta información con @code{guix download} (@pxref{Invoking guix download}) y @code{guix hash} (@pxref{Invoking guix hash})."
 
 #. type: cindex
-#: doc/guix.texi:5505
+#: doc/guix.texi:6355
 #, no-wrap
 msgid "patches"
 msgstr "parches"
 
 #. type: itemize
-#: doc/guix.texi:5509
+#: doc/guix.texi:6359
 msgid "When needed, the @code{origin} form can also have a @code{patches} field listing patches to be applied, and a @code{snippet} field giving a Scheme expression to modify the source code."
 msgstr "Cuando sea necesario, la forma @code{origin} también puede tener un campo @code{patches} con la lista de parches a ser aplicados, y un campo @code{snippet} con una expresión Scheme para modificar el código fuente."
 
 #. type: cindex
-#: doc/guix.texi:5511
+#: doc/guix.texi:6361
 #, no-wrap
 msgid "GNU Build System"
 msgstr "Sistema de construcción GNU"
 
 #. type: itemize
-#: doc/guix.texi:5517
-msgid "The @code{build-system} field specifies the procedure to build the package (@pxref{Build Systems}).  Here, @var{gnu-build-system} represents the familiar GNU Build System, where packages may be configured, built, and installed with the usual @code{./configure && make && make check && make install} command sequence."
-msgstr "El campo @code{build-system} especifica el procedimiento de construcción del paquete (@pxref{Build Systems}). Aquí, @var{gnu-build-system} representa el familiar sistema de construcción GNU, donde los paquetes pueden configurarse, construirse e instalarse con la secuencia de ordenes habitual @code{./configure && make && make check && make install}."
+#: doc/guix.texi:6367
+msgid "The @code{build-system} field specifies the procedure to build the package (@pxref{Build Systems}).  Here, @code{gnu-build-system} represents the familiar GNU Build System, where packages may be configured, built, and installed with the usual @code{./configure && make && make check && make install} command sequence."
+msgstr "El campo @code{build-system} especifica el procedimiento de construcción del paquete (@pxref{Build Systems}). Aquí, @code{gnu-build-system} representa el familiar sistema de construcción GNU, donde los paquetes pueden configurarse, construirse e instalarse con la secuencia de ordenes habitual @code{./configure && make && make check && make install}."
 
 #. type: itemize
-#: doc/guix.texi:5523
-msgid "The @code{arguments} field specifies options for the build system (@pxref{Build Systems}).  Here it is interpreted by @var{gnu-build-system} as a request run @file{configure} with the @code{--enable-silent-rules} flag."
-msgstr "El campo @code{arguments} especifica las opciones para el sistema de construcción (@pxref{Build Systems}). Aquí son interpretadas por @var{gnu-build-system} como una petición de ejecutar @file{configure} con la opción @code{--enable-silent-rules}."
+#: doc/guix.texi:6371
+msgid "When you start packaging non-trivial software, you may need tools to manipulate those build phases, manipulate files, and so on.  @xref{Build Utilities}, for more on this."
+msgstr "Cuando comience a empaquetar software no trivial puede que necesite herramientas para manipular estas fases de construcción, manipular archivos, etcétera. @xref{Build Utilities} para obtener más información sobre este tema."
+
+#. type: itemize
+#: doc/guix.texi:6377
+msgid "The @code{arguments} field specifies options for the build system (@pxref{Build Systems}).  Here it is interpreted by @code{gnu-build-system} as a request run @file{configure} with the @option{--enable-silent-rules} flag."
+msgstr "El campo @code{arguments} especifica las opciones para el sistema de construcción (@pxref{Build Systems}). Aquí son interpretadas por @code{gnu-build-system} como una petición de ejecutar @file{configure} con la opción @option{--enable-silent-rules}."
 
 #. type: findex
-#: doc/guix.texi:5524 doc/guix.texi:5527
+#: doc/guix.texi:6378 doc/guix.texi:6381
 #, no-wrap
 msgid "quote"
 msgstr "quote"
@@ -11643,402 +13258,274 @@ msgstr "quote"
 # FUZZY
 # MAAV: Es el concepto, pero no me convence.
 #. type: cindex
-#: doc/guix.texi:5525
+#: doc/guix.texi:6379
 #, no-wrap
 msgid "quoting"
-msgstr "creación de literales"
+msgstr "literales, inhibición de la evaluación"
 
 #. type: findex
-#: doc/guix.texi:5526
+#: doc/guix.texi:6380
 #, no-wrap
 msgid "'"
 msgstr "'"
 
 #. type: itemize
-#: doc/guix.texi:5535
+#: doc/guix.texi:6389
 msgid "What about these quote (@code{'}) characters? They are Scheme syntax to introduce a literal list; @code{'} is synonymous with @code{quote}.  @xref{Expression Syntax, quoting,, guile, GNU Guile Reference Manual}, for details.  Here the value of the @code{arguments} field is a list of arguments passed to the build system down the road, as with @code{apply} (@pxref{Fly Evaluation, @code{apply},, guile, GNU Guile Reference Manual})."
 msgstr "¿Qué son estas comillas simples (@code{'})? Son sintaxis Scheme para introducir una lista literal; @code{'} es sinónimo de @code{quote}. @xref{Expression Syntax, quoting,, guile, GNU Guile Reference Manual}, para más detalles. Aquí el valor del campo @code{arguments} es una lista de parámetros pasada al sistema de construcción, como con @code{apply} (@pxref{Fly Evaluation, @code{apply},, guile, GNU Guile Reference Manual})."
 
 #. type: itemize
-#: doc/guix.texi:5541
+#: doc/guix.texi:6395
 msgid "The hash-colon (@code{#:}) sequence defines a Scheme @dfn{keyword} (@pxref{Keywords,,, guile, GNU Guile Reference Manual}), and @code{#:configure-flags} is a keyword used to pass a keyword argument to the build system (@pxref{Coding With Keywords,,, guile, GNU Guile Reference Manual})."
 msgstr "La secuencia almohadilla-dos puntos (@code{#:}) define una @dfn{palabra clave} Scheme (@pxref{Keywords,,, guile, GNU Guile Reference Manual}), y @code{#:configure-flags} es una palabra clave usada para pasar un parámetro nominal al sistema de construcción (@pxref{Coding With Keywords,,, guile, GNU Guile Reference Manual})."
 
 #. type: itemize
-#: doc/guix.texi:5547
-msgid "The @code{inputs} field specifies inputs to the build process---i.e., build-time or run-time dependencies of the package.  Here, we define an input called @code{\"gawk\"} whose value is that of the @var{gawk} variable; @var{gawk} is itself bound to a @code{<package>} object."
-msgstr "El campo @code{inputs} especifica las entradas al proceso de construcción---es decir, dependencias de tiempo de construcción o ejecución del paquete. Aquí, definimos una entrada llamada @code{\"gawk\"}, cuyo valor es el de la variable @var{gawk}; @var{gawk} en sí apunta a un objeto @code{<package>}."
+#: doc/guix.texi:6401
+msgid "The @code{inputs} field specifies inputs to the build process---i.e., build-time or run-time dependencies of the package.  Here, we define an input called @code{\"gawk\"} whose value is that of the @code{gawk} variable; @code{gawk} is itself bound to a @code{<package>} object."
+msgstr "El campo @code{inputs} especifica las entradas al proceso de construcción---es decir, dependencias de tiempo de construcción o ejecución del paquete. Aquí, definimos una entrada llamada @code{\"gawk\"}, cuyo valor es el de la variable @code{gawk}; @code{gawk} en sí apunta a un objeto @code{<package>}."
 
 #. type: cindex
-#: doc/guix.texi:5548
+#: doc/guix.texi:6402
 #, no-wrap
 msgid "backquote (quasiquote)"
 msgstr "acento grave (quasiquote)"
 
 #. type: findex
-#: doc/guix.texi:5549
+#: doc/guix.texi:6403
 #, no-wrap
 msgid "`"
 msgstr "`"
 
 #. type: findex
-#: doc/guix.texi:5550
+#: doc/guix.texi:6404
 #, no-wrap
 msgid "quasiquote"
 msgstr "quasiquote"
 
 #. type: cindex
-#: doc/guix.texi:5551
+#: doc/guix.texi:6405
 #, no-wrap
 msgid "comma (unquote)"
 msgstr "coma (unquote)"
 
 #. type: findex
-#: doc/guix.texi:5552
+#: doc/guix.texi:6406
 #, no-wrap
 msgid ","
 msgstr ","
 
 #. type: findex
-#: doc/guix.texi:5553
+#: doc/guix.texi:6407
 #, no-wrap
 msgid "unquote"
 msgstr "unquote"
 
 #. type: findex
-#: doc/guix.texi:5554
+#: doc/guix.texi:6408
 #, no-wrap
 msgid ",@@"
 msgstr ",@@"
 
 #. type: findex
-#: doc/guix.texi:5555
+#: doc/guix.texi:6409
 #, no-wrap
 msgid "unquote-splicing"
 msgstr "unquote-splicing"
 
 #. type: itemize
-#: doc/guix.texi:5561
+#: doc/guix.texi:6415
 msgid "Again, @code{`} (a backquote, synonymous with @code{quasiquote}) allows us to introduce a literal list in the @code{inputs} field, while @code{,} (a comma, synonymous with @code{unquote}) allows us to insert a value in that list (@pxref{Expression Syntax, unquote,, guile, GNU Guile Reference Manual})."
 msgstr "De nuevo, @code{`} (un acento grave, sinónimo de @code{quasiquote}) nos permite introducir una lista literal en el campo @code{inputs}, mientras que @code{,} (una coma, sinónimo de @code{unquote}) nos permite insertar un valor en dicha lista (@pxref{Expression Syntax, unquote,, guile, GNU Guile Reference Manual})."
 
 #. type: itemize
-#: doc/guix.texi:5565
-msgid "Note that GCC, Coreutils, Bash, and other essential tools do not need to be specified as inputs here.  Instead, @var{gnu-build-system} takes care of ensuring that they are present (@pxref{Build Systems})."
-msgstr "Fíjese que no hace falta que GCC, Coreutils, Bash y otras herramientas esenciales se especifiquen como entradas aquí. En vez de eso, @var{gnu-build-system} se hace cargo de asegurar que están presentes (@pxref{Build Systems})."
+#: doc/guix.texi:6419
+msgid "Note that GCC, Coreutils, Bash, and other essential tools do not need to be specified as inputs here.  Instead, @code{gnu-build-system} takes care of ensuring that they are present (@pxref{Build Systems})."
+msgstr "Fíjese que no hace falta que GCC, Coreutils, Bash y otras herramientas esenciales se especifiquen como entradas aquí. En vez de eso, @code{gnu-build-system} se hace cargo de asegurar que están presentes (@pxref{Build Systems})."
 
 #. type: itemize
-#: doc/guix.texi:5569
+#: doc/guix.texi:6423
 msgid "However, any other dependencies need to be specified in the @code{inputs} field.  Any dependency not specified here will simply be unavailable to the build process, possibly leading to a build failure."
 msgstr "No obstante, cualquier otra dependencia debe ser especificada en el campo @code{inputs}. Las dependencias no especificadas aquí simplemente no estarán disponibles para el proceso de construcción, provocando posiblemente un fallo de construcción."
 
 #. type: Plain text
-#: doc/guix.texi:5572
+#: doc/guix.texi:6426
 msgid "@xref{package Reference}, for a full description of possible fields."
 msgstr "@xref{package Reference}, para una descripción completa de los campos posibles."
 
 # MAAV (TODO): conformidad????
 #. type: Plain text
-#: doc/guix.texi:5583
+#: doc/guix.texi:6437
 msgid "Once a package definition is in place, the package may actually be built using the @code{guix build} command-line tool (@pxref{Invoking guix build}), troubleshooting any build failures you encounter (@pxref{Debugging Build Failures}).  You can easily jump back to the package definition using the @command{guix edit} command (@pxref{Invoking guix edit}).  @xref{Packaging Guidelines}, for more information on how to test package definitions, and @ref{Invoking guix lint}, for information on how to check a definition for style conformance."
 msgstr "Una vez la definición de paquete esté en su lugar, el paquete puede ser construido realmente usando la herramienta de línea de órdenes @code{guix build} (@pxref{Invoking guix build}), pudiendo resolver cualquier fallo de construcción que encuentre (@pxref{Debugging Build Failures}). Puede volver a la definición del paquete fácilmente usando la orden @command{guix edit} (@pxref{Invoking guix edit}). @xref{Packaging Guidelines}, para más información sobre cómo probar definiciones de paquetes, y @ref{Invoking guix lint}, para información sobre cómo comprobar la consistencia del estilo de una definición."
 
 #. type: vindex
-#: doc/guix.texi:5583
+#: doc/guix.texi:6437
 #, no-wrap
 msgid "GUIX_PACKAGE_PATH"
 msgstr "GUIX_PACKAGE_PATH"
 
 #. type: Plain text
-#: doc/guix.texi:5587
+#: doc/guix.texi:6441
 msgid "Lastly, @pxref{Channels}, for information on how to extend the distribution by adding your own package definitions in a ``channel''."
 msgstr "Por último, @pxref{Channels}, para información sobre cómo extender la distribución añadiendo sus propias definiciones de paquetes en un ``canal''."
 
 #. type: Plain text
-#: doc/guix.texi:5591
+#: doc/guix.texi:6445
 msgid "Finally, updating the package definition to a new upstream version can be partly automated by the @command{guix refresh} command (@pxref{Invoking guix refresh})."
 msgstr "Finalmente, la actualización de la definición con una nueva versión oficial puede ser automatizada parcialmente por la orden @command{guix refresh} (@pxref{Invoking guix refresh})."
 
 #. type: Plain text
-#: doc/guix.texi:5597
-msgid "Behind the scenes, a derivation corresponding to the @code{<package>} object is first computed by the @code{package-derivation} procedure.  That derivation is stored in a @code{.drv} file under @file{/gnu/store}.  The build actions it prescribes may then be realized by using the @code{build-derivations} procedure (@pxref{The Store})."
-msgstr "Tras el telón, una derivación correspondiente al objeto @code{<package>} es calculada mediante el procedimiento @code{package-derivation}. Esta derivación es almacenada en un fichero @code{.drv} bajo @file{/gnu/store}. Las acciones de construcción que prescribe pueden entonces llevarse a cabo usando el procedimiento @code{build-derivations} (@pxref{The Store})."
+#: doc/guix.texi:6451
+msgid "Behind the scenes, a derivation corresponding to the @code{<package>} object is first computed by the @code{package-derivation} procedure.  That derivation is stored in a @file{.drv} file under @file{/gnu/store}.  The build actions it prescribes may then be realized by using the @code{build-derivations} procedure (@pxref{The Store})."
+msgstr "Tras el telón, una derivación correspondiente al objeto @code{<package>} se calcula primero mediante el procedimiento @code{package-derivation}. Esta derivación se almacena en un archivo @code{.drv} bajo @file{/gnu/store}. Las acciones de construcción que prescribe pueden entonces llevarse a cabo usando el procedimiento @code{build-derivations} (@pxref{The Store})."
 
 #. type: deffn
-#: doc/guix.texi:5598
+#: doc/guix.texi:6452
 #, no-wrap
 msgid "{Scheme Procedure} package-derivation @var{store} @var{package} [@var{system}]"
 msgstr "{Procedimiento Scheme} package-derivation @var{almacén} @var{paquete} [@var{sistema}]"
 
 #. type: deffn
-#: doc/guix.texi:5601
+#: doc/guix.texi:6455
 msgid "Return the @code{<derivation>} object of @var{package} for @var{system} (@pxref{Derivations})."
 msgstr "Devuelve el objeto @code{<derivation>} del @var{paquete} pra el @var{sistema} (@pxref{Derivations})."
 
 #. type: deffn
-#: doc/guix.texi:5607
+#: doc/guix.texi:6461
 msgid "@var{package} must be a valid @code{<package>} object, and @var{system} must be a string denoting the target system type---e.g., @code{\"x86_64-linux\"} for an x86_64 Linux-based GNU system.  @var{store} must be a connection to the daemon, which operates on the store (@pxref{The Store})."
 msgstr "@var{paquete} debe ser un objeto @code{<package>} válido, y @var{sistema} debe ser una cadena que denote el tipo de sistema objetivo---por ejemplo, @code{\"x86_64-linux\"} para un sistema GNU x86_64 basado en Linux. @var{almacén} debe ser una conexión al daemon, que opera en el almacén (@pxref{The Store})."
 
 #. type: Plain text
-#: doc/guix.texi:5613
+#: doc/guix.texi:6467
 msgid "Similarly, it is possible to compute a derivation that cross-builds a package for some other system:"
 msgstr "De manera similar, es posible calcular una derivación que construye de forma cruzada un paquete para otro sistema:"
 
 #. type: deffn
-#: doc/guix.texi:5614
+#: doc/guix.texi:6468
 #, no-wrap
 msgid "{Scheme Procedure} package-cross-derivation @var{store} @"
 msgstr "{Procedimiento Scheme} package-cross-derivation @var{almacén} @"
 
 #. type: deffn
-#: doc/guix.texi:5618
+#: doc/guix.texi:6472
 msgid "@var{package} @var{target} [@var{system}] Return the @code{<derivation>} object of @var{package} cross-built from @var{system} to @var{target}."
 msgstr ""
 "@var{paquete} @var{plataforma} [@var{sistema}]\n"
 "Devuelve el objeto @code{<derivation>} de @var{paquete} compilado de forma cruzada desde @var{sistema} a @var{plataforma}."
 
 #. type: deffn
-#: doc/guix.texi:5622
-msgid "@var{target} must be a valid GNU triplet denoting the target hardware and operating system, such as @code{\"mips64el-linux-gnu\"} (@pxref{Specifying Target Triplets,,, autoconf, Autoconf})."
-msgstr "@var{plataforma} debe ser una tripleta GNU válida que identifique al hardware y el sistema operativo deseado, como por ejemplo @code{\"mips64el-linux-gnu\"} (@pxref{Specifying Target Triplets,,, autoconf, Autoconf})."
-
-#. type: cindex
-#: doc/guix.texi:5624
-#, no-wrap
-msgid "package transformations"
-msgstr "transformación de paquetes"
-
-#. type: cindex
-#: doc/guix.texi:5625
-#, no-wrap
-msgid "input rewriting"
-msgstr "reescritura de la entrada"
-
-#. type: cindex
-#: doc/guix.texi:5626
-#, no-wrap
-msgid "dependency tree rewriting"
-msgstr "reescritura del árbol de dependencias"
-
-#. type: Plain text
-#: doc/guix.texi:5630
-msgid "Packages can be manipulated in arbitrary ways.  An example of a useful transformation is @dfn{input rewriting}, whereby the dependency tree of a package is rewritten by replacing specific inputs by others:"
-msgstr "Los paquetes se pueden manipular de forma arbitraria. Un ejemplo de transformación útil es la @dfn{reescritura de entradas}, donde el árbol de dependencias de un paquete se reescribe reemplazando entradas específicas por otras:"
-
-#. type: deffn
-#: doc/guix.texi:5631
-#, no-wrap
-msgid "{Scheme Procedure} package-input-rewriting @var{replacements} @"
-msgstr "{Procedimiento Scheme} package-input-rewriting @var{reemplazos} @"
-
-#. type: deffn
-#: doc/guix.texi:5638
-msgid "[@var{rewrite-name}] Return a procedure that, when passed a package, replaces its direct and indirect dependencies (but not its implicit inputs) according to @var{replacements}.  @var{replacements} is a list of package pairs; the first element of each pair is the package to replace, and the second one is the replacement."
-msgstr ""
-"[@var{nombre-reescrito}]\n"
-"Devuelve un procedimiento que, cuando se le pasa un paquete, reemplaza sus dependencias directas e indirectas (pero no sus entradas implícitas) de acuerdo a @var{reemplazos}. @var{reemplazos} es una lista de pares de paquetes; el primer elemento de cada par es el paquete a reemplazar, el segundo es el reemplazo."
-
-#. type: deffn
-#: doc/guix.texi:5641
-msgid "Optionally, @var{rewrite-name} is a one-argument procedure that takes the name of a package and returns its new name after rewrite."
-msgstr "Opcionalmente, @var{nombre-reescrito} es un procedimiento de un parámetro que toma el nombre del paquete y devuelve su nuevo nombre tras la reescritura."
-
-#. type: Plain text
-#: doc/guix.texi:5645
-msgid "Consider this example:"
-msgstr "Considere este ejemplo:"
-
-#. type: lisp
-#: doc/guix.texi:5651
-#, no-wrap
-msgid ""
-"(define libressl-instead-of-openssl\n"
-"  ;; This is a procedure to replace OPENSSL by LIBRESSL,\n"
-"  ;; recursively.\n"
-"  (package-input-rewriting `((,openssl . ,libressl))))\n"
-"\n"
-msgstr ""
-"(define libressl-en-vez-de-openssl\n"
-"  ;; Esto es un procedimiento para reemplazar OPENSSL\n"
-"  ;; por LIBRESSL, recursivamente.\n"
-"  (package-input-rewriting `((,openssl . ,libressl))))\n"
-"\n"
-
-#. type: lisp
-#: doc/guix.texi:5654
-#, no-wrap
-msgid ""
-"(define git-with-libressl\n"
-"  (libressl-instead-of-openssl git))\n"
-msgstr ""
-"(define git-con-libressl\n"
-"  (libressl-en-vez-de-openssl git))\n"
-
-#. type: Plain text
-#: doc/guix.texi:5662
-msgid "Here we first define a rewriting procedure that replaces @var{openssl} with @var{libressl}.  Then we use it to define a @dfn{variant} of the @var{git} package that uses @var{libressl} instead of @var{openssl}.  This is exactly what the @option{--with-input} command-line option does (@pxref{Package Transformation Options, @option{--with-input}})."
-msgstr "Aquí primero definimos un procedimiento de reescritura que substituye @var{openssl} por @var{libressl}. Una vez hecho esto, lo usamos para definir una @dfn{variante} del paquete @var{git} que usa @var{libressl} en vez de @var{openssl}. Esto es exactamente lo que hace la opción de línea de órdenes @option{--with-input} (@pxref{Package Transformation Options, @option{--with-input}})."
-
-# FUZZY
-#. type: Plain text
-#: doc/guix.texi:5665
-msgid "The following variant of @code{package-input-rewriting} can match packages to be replaced by name rather than by identity."
-msgstr "La siguiente variante de @code{package-input-rewriting} puede encontrar paquetes a reemplazar por su nombre en vez de por su identidad."
-
-#. type: deffn
-#: doc/guix.texi:5666
-#, no-wrap
-msgid "{Scheme Procedure} package-input-rewriting/spec @var{replacements}"
-msgstr "{Procedimiento Scheme} package-input-rewriting/spec @var{reemplazos}"
-
-#. type: deffn
-#: doc/guix.texi:5672
-msgid "Return a procedure that, given a package, applies the given @var{replacements} to all the package graph (excluding implicit inputs).  @var{replacements} is a list of spec/procedures pair; each spec is a package specification such as @code{\"gcc\"} or @code{\"guile@@2\"}, and each procedure takes a matching package and returns a replacement for that package."
-msgstr "Devuelve un procedimiento que, proporcionado un paquete, realiza los @var{reemplazos} proporcionados sobre todo el grafo del paquete (excluyendo las entradas implícitas). @var{reemplazos} es una lista de pares de especificación y procedimiento; cada especificación es una especificación de paquete como @code{\"gcc\"} o @code{\"guile@@2\"}, y cada procedimiento toma un paquete que corresponda con la especificación y devuelve un reemplazo para dicho paquete."
+#: doc/guix.texi:6476
+msgid "@var{target} must be a valid GNU triplet denoting the target hardware and operating system, such as @code{\"aarch64-linux-gnu\"} (@pxref{Specifying Target Triplets,,, autoconf, Autoconf})."
+msgstr "@var{plataforma} debe ser una tripleta GNU válida que identifique al hardware y el sistema operativo deseado, como por ejemplo @code{\"aarch64-linux-gnu\"} (@pxref{Specifying Target Triplets,,, autoconf, Autoconf})."
 
 #. type: Plain text
-#: doc/guix.texi:5675
-msgid "The example above could be rewritten this way:"
-msgstr "El ejemplo previo podría ser reescrito de esta forma:"
-
-#. type: lisp
-#: doc/guix.texi:5680
-#, no-wrap
-msgid ""
-"(define libressl-instead-of-openssl\n"
-"  ;; Replace all the packages called \"openssl\" with LibreSSL.\n"
-"  (package-input-rewriting/spec `((\"openssl\" . ,(const libressl)))))\n"
-msgstr ""
-"(define libressl-en-vez-de-openssl\n"
-"  ;; Reemplaza todos los paquetes llamados \"openssl\" con LibreSSL.\n"
-"  (package-input-rewriting/spec `((\"openssl\" . ,(const libressl)))))\n"
-
-# FUZZY
-#. type: Plain text
-#: doc/guix.texi:5685
-msgid "The key difference here is that, this time, packages are matched by spec and not by identity.  In other words, any package in the graph that is called @code{openssl} will be replaced."
-msgstr "La diferencia principal en este caso es que, esta vez, los paquetes se buscan por su especificación y no por su identidad. En otras palabras, cualquier paquete en el grafo que se llame @code{openssl} será reemplazado."
-
-#. type: Plain text
-#: doc/guix.texi:5689
-msgid "A more generic procedure to rewrite a package dependency graph is @code{package-mapping}: it supports arbitrary changes to nodes in the graph."
-msgstr "Un procedimiento más genérico para reescribir el grafo de dependencias de un paquete es @code{package-mapping}: acepta cambios arbitrarios sobre nodos del grafo."
-
-#. type: deffn
-#: doc/guix.texi:5690
-#, no-wrap
-msgid "{Scheme Procedure} package-mapping @var{proc} [@var{cut?}]"
-msgstr "{Scheme Procedure} package-mapping @var{proc} [@var{cortar?}]"
-
-#. type: deffn
-#: doc/guix.texi:5694
-msgid "Return a procedure that, given a package, applies @var{proc} to all the packages depended on and returns the resulting package.  The procedure stops recursion when @var{cut?} returns true for a given package."
-msgstr "Devuelve un procedimiento que, dado un paquete, aplica @var{proc} a todos los paquetes de los que depende y devuelve el paquete resultante. El procedimiento para la recursión cuando @var{cortar?} devuelve verdadero para un paquete dado."
+#: doc/guix.texi:6480
+msgid "Once you have package definitions, you can easily define @emph{variants} of those packages.  @xref{Defining Package Variants}, for more on that."
+msgstr "Una vez tenga sus definiciones de paquetes puede definir facilmente @emph{variantes} de dichos paquetes. @xref{Defining Package Variants} para obtener más información sobre ello."
 
 #. type: subsection
-#: doc/guix.texi:5703
+#: doc/guix.texi:6488
 #, no-wrap
 msgid "@code{package} Reference"
 msgstr "Referencia de @code{package}"
 
 #. type: Plain text
-#: doc/guix.texi:5707
+#: doc/guix.texi:6492
 msgid "This section summarizes all the options available in @code{package} declarations (@pxref{Defining Packages})."
 msgstr "Esta sección resume todas las opciones disponibles en declaraciones @code{package} (@pxref{Defining Packages})."
 
 #. type: deftp
-#: doc/guix.texi:5708
+#: doc/guix.texi:6493
 #, no-wrap
 msgid "{Data Type} package"
 msgstr "{Tipo de datos} package"
 
 #. type: deftp
-#: doc/guix.texi:5710
+#: doc/guix.texi:6495
 msgid "This is the data type representing a package recipe."
 msgstr "Este es el tipo de datos que representa la receta de un paquete."
 
 #. type: table
-#: doc/guix.texi:5714
+#: doc/guix.texi:6499
 msgid "The name of the package, as a string."
 msgstr "El nombre del paquete, como una cadena."
 
 #. type: code{#1}
-#: doc/guix.texi:5715
+#: doc/guix.texi:6500
 #, no-wrap
 msgid "version"
 msgstr "version"
 
 #. type: table
-#: doc/guix.texi:5717
+#: doc/guix.texi:6502
 msgid "The version of the package, as a string."
 msgstr "La versión del paquete, como una cadena."
 
 #. type: code{#1}
-#: doc/guix.texi:5718 doc/guix.texi:9746 doc/guix.texi:11636
-#: doc/guix.texi:12077
+#: doc/guix.texi:6503 doc/guix.texi:11569 doc/guix.texi:13752
+#: doc/guix.texi:14227
 #, no-wrap
 msgid "source"
 msgstr "source"
 
 #. type: table
-#: doc/guix.texi:5725
+#: doc/guix.texi:6510
 msgid "An object telling how the source code for the package should be acquired.  Most of the time, this is an @code{origin} object, which denotes a file fetched from the Internet (@pxref{origin Reference}).  It can also be any other ``file-like'' object such as a @code{local-file}, which denotes a file from the local file system (@pxref{G-Expressions, @code{local-file}})."
-msgstr "Un objeto que determina cómo se debería obtener el código fuente del paquete. La mayor parte del tiempo, es un objeto @code{origin}, que denota un fichero obtenido de Internet (@pxref{origin Reference}). También puede ser cualquier otro objeto ``tipo-fichero'' como @code{local-file}, que denota un fichero del sistema local de ficheros (@pxref{G-Expressions, @code{local-file}})."
+msgstr "Un objeto que determina cómo se debería obtener el código fuente del paquete. La mayor parte del tiempo, es un objeto @code{origin}, que denota un archivo obtenido de Internet (@pxref{origin Reference}). También puede ser cualquier otro objeto ``tipo-archivo'' como @code{local-file}, que denota un archivo del sistema local de archivos (@pxref{G-Expressions, @code{local-file}})."
 
 #. type: code{#1}
-#: doc/guix.texi:5726
+#: doc/guix.texi:6511
 #, no-wrap
 msgid "build-system"
 msgstr "build-system"
 
 #. type: table
-#: doc/guix.texi:5729
+#: doc/guix.texi:6514
 msgid "The build system that should be used to build the package (@pxref{Build Systems})."
 msgstr "El sistema de construcción que debe ser usado para construir el paquete (@pxref{Build Systems})."
 
 #. type: item
-#: doc/guix.texi:5730 doc/guix.texi:13886
+#: doc/guix.texi:6515 doc/guix.texi:16147
 #, no-wrap
 msgid "@code{arguments} (default: @code{'()})"
 msgstr "@code{arguments} (predeterminados: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:5733
+#: doc/guix.texi:6518
 msgid "The arguments that should be passed to the build system.  This is a list, typically containing sequential keyword-value pairs."
 msgstr "Los parámetros que deben ser pasados al sistema de construcción. Es una lista que normalmente contiene una secuencia de pares de palabra clave y valor."
 
 #. type: item
-#: doc/guix.texi:5734
+#: doc/guix.texi:6519
 #, no-wrap
 msgid "@code{inputs} (default: @code{'()})"
 msgstr "@code{inputs} (predeterminadas: @code{'()})"
 
 #. type: itemx
-#: doc/guix.texi:5735
+#: doc/guix.texi:6520
 #, no-wrap
 msgid "@code{native-inputs} (default: @code{'()})"
 msgstr "@code{native-inputs} (predeterminadas: @code{'()})"
 
 #. type: itemx
-#: doc/guix.texi:5736
+#: doc/guix.texi:6521
 #, no-wrap
 msgid "@code{propagated-inputs} (default: @code{'()})"
 msgstr "@code{propagated-inputs} (predeterminadas: @code{'()})"
 
 #. type: cindex
-#: doc/guix.texi:5737
+#: doc/guix.texi:6522
 #, no-wrap
 msgid "inputs, of packages"
 msgstr "entradas, de paquetes"
 
 #. type: table
-#: doc/guix.texi:5745
+#: doc/guix.texi:6530
 msgid "These fields list dependencies of the package.  Each one is a list of tuples, where each tuple has a label for the input (a string) as its first element, a package, origin, or derivation as its second element, and optionally the name of the output thereof that should be used, which defaults to @code{\"out\"} (@pxref{Packages with Multiple Outputs}, for more on package outputs).  For example, the list below specifies three inputs:"
 msgstr "Estos campos enumeran las dependencias del paquete. Cada uno es una lista de tuplas, donde cada tupla tiene una etiqueta para la entrada (una cadena) como su primer elemento, un paquete, origen o derivación como su segundo elemento, y opcionalmente el nombre de la salida que debe ser usada, cuyo valor predeterminado es @code{\"out\"} (@pxref{Packages with Multiple Outputs}, para más información sobre salidas de paquetes). Por ejemplo, la lista siguiente especifica tres entradas:"
 
 #. type: lisp
-#: doc/guix.texi:5750
+#: doc/guix.texi:6535
 #, no-wrap
 msgid ""
 "`((\"libffi\" ,libffi)\n"
@@ -12050,172 +13537,174 @@ msgstr ""
 "  (\"glib:bin\" ,glib \"bin\"))  ;la salida \"bin\" de Glib\n"
 
 #. type: cindex
-#: doc/guix.texi:5752
+#: doc/guix.texi:6537
 #, no-wrap
 msgid "cross compilation, package dependencies"
 msgstr "compilación cruzada, dependencias de paquetes"
 
 #. type: table
-#: doc/guix.texi:5758
+#: doc/guix.texi:6543
 msgid "The distinction between @code{native-inputs} and @code{inputs} is necessary when considering cross-compilation.  When cross-compiling, dependencies listed in @code{inputs} are built for the @emph{target} architecture; conversely, dependencies listed in @code{native-inputs} are built for the architecture of the @emph{build} machine."
 msgstr "La distinción entre @code{native-inputs} y @code{inputs} es necesaria cuando se considera la compilación cruzada. Cuando se compila desde una arquitectura distinta, las dependencias enumeradas en @code{inputs} son construidas para la arquitectura @emph{objetivo}; de modo contrario, las dependencias enumeradas en @code{native-inputs} se construyen para la arquitectura de la máquina de @emph{construcción}."
 
 #. type: table
-#: doc/guix.texi:5763
+#: doc/guix.texi:6548
 msgid "@code{native-inputs} is typically used to list tools needed at build time, but not at run time, such as Autoconf, Automake, pkg-config, Gettext, or Bison.  @command{guix lint} can report likely mistakes in this area (@pxref{Invoking guix lint})."
 msgstr "@code{native-inputs} se usa típicamente para enumerar herramientas necesarias en tiempo de construcción, pero no en tiempo de ejecución, como Autoconf, Automake, pkg-config, Gettext o Bison. @command{guix lint} puede informar de probables errores en este área (@pxref{Invoking guix lint})."
 
 #. type: anchor{#1}
-#: doc/guix.texi:5770
+#: doc/guix.texi:6556
 msgid "package-propagated-inputs"
 msgstr "package-propagated-inputs"
 
 #. type: table
-#: doc/guix.texi:5770
-msgid "Lastly, @code{propagated-inputs} is similar to @code{inputs}, but the specified packages will be automatically installed alongside the package they belong to (@pxref{package-cmd-propagated-inputs, @command{guix package}}, for information on how @command{guix package} deals with propagated inputs.)"
-msgstr "Por último, @code{propagated-inputs} es similar a @code{inputs}, pero los paquetes especificados se instalarán automáticamente junto al paquete al que pertenecen (@pxref{package-cmd-propagated-inputs, @command{guix package}}, para información sobre cómo @command{guix package} maneja las entradas propagadas)."
+#: doc/guix.texi:6556
+msgid "Lastly, @code{propagated-inputs} is similar to @code{inputs}, but the specified packages will be automatically installed to profiles (@pxref{Features, the role of profiles in Guix}) alongside the package they belong to (@pxref{package-cmd-propagated-inputs, @command{guix package}}, for information on how @command{guix package} deals with propagated inputs)."
+msgstr "Por último, @code{propagated-inputs} es similar a @code{inputs}, pero los paquetes especificados se instalarán automáticamente a los perfiles (@pxref{Features, el rol de los perfiles en Guix}) junto al paquete al que pertenecen (@pxref{package-cmd-propagated-inputs, @command{guix package}}, para información sobre cómo @command{guix package} gestiona las entradas propagadas)."
 
 #. type: table
-#: doc/guix.texi:5774
-msgid "For example this is necessary when a C/C++ library needs headers of another library to compile, or when a pkg-config file refers to another one @i{via} its @code{Requires} field."
-msgstr "Por ejemplo esto es necesario cuando una biblioteca C/C++ necesita cabeceras de otra biblioteca para compilar, o cuando un fichero pkg-config se refiere a otro @i{via} su campo @code{Requires}."
+#: doc/guix.texi:6560
+msgid "For example this is necessary when packaging a C/C++ library that needs headers of another library to compile, or when a pkg-config file refers to another one @i{via} its @code{Requires} field."
+msgstr "Por ejemplo esto es necesario cuando se empaqueta una biblioteca C/C++ que necesita cabeceras de otra biblioteca para compilar, o cuando un archivo pkg-config se refiere a otro a través de su campo @code{Requires}."
 
+# FUZZY
 #. type: table
-#: doc/guix.texi:5781
-msgid "Another example where @code{propagated-inputs} is useful is for languages that lack a facility to record the run-time search path akin to the @code{RUNPATH} of ELF files; this includes Guile, Python, Perl, and more.  To ensure that libraries written in those languages can find library code they depend on at run time, run-time dependencies must be listed in @code{propagated-inputs} rather than @code{inputs}."
-msgstr "Otro ejemplo donde @code{propagated-inputs} es útil es en lenguajes que carecen de la facilidad de almacenar la ruta de búsqueda de tiempo de ejecución de la misma manera que el campo @code{RUNPATH} de los ficheros ELF; esto incluye Guile, Python, Perl y más. Para asegurarse que las bibliotecas escritas en esos lenguajes puedan encontrar en tiempo de ejecución el código de las bibliotecas de las que dependen, las dependencias de tiempo de ejecución deben enumerarse en @code{propagated-inputs} en vez de en @code{inputs}."
+#: doc/guix.texi:6567
+msgid "Another example where @code{propagated-inputs} is useful is for languages that lack a facility to record the run-time search path akin to the @code{RUNPATH} of ELF files; this includes Guile, Python, Perl, and more.  When packaging libraries written in those languages, ensure they can find library code they depend on at run time by listing run-time dependencies in @code{propagated-inputs} rather than @code{inputs}."
+msgstr "Otro ejemplo donde @code{propagated-inputs} es útil es en lenguajes que carecen de la facilidad de almacenar la ruta de búsqueda de tiempo de ejecución de la misma manera que el campo @code{RUNPATH} de los archivos ELF; esto incluye Guile, Python, Perl y más. Cuando se empaquetan bibliotecas escritas en estos lenguajes, enumerar en @code{propagated-inputs} en vez de en @code{inputs} las dependencias de tiempo de ejecución permite asegurarse de encontrar el código de las bibliotecas de las que dependan en tiempo de ejecución."
 
 #. type: item
-#: doc/guix.texi:5782
+#: doc/guix.texi:6568
 #, no-wrap
 msgid "@code{outputs} (default: @code{'(\"out\")})"
 msgstr "@code{outputs} (predeterminada: @code{'(\"out\")})"
 
 #. type: table
-#: doc/guix.texi:5785
+#: doc/guix.texi:6571
 msgid "The list of output names of the package.  @xref{Packages with Multiple Outputs}, for typical uses of additional outputs."
 msgstr "La lista de nombres de salidas del paquete. @xref{Packages with Multiple Outputs}, para usos típicos de salidas adicionales."
 
 #. type: item
-#: doc/guix.texi:5786
+#: doc/guix.texi:6572
 #, no-wrap
 msgid "@code{native-search-paths} (default: @code{'()})"
 msgstr "@code{native-search-paths} (predeterminadas: @code{'()})"
 
 #. type: itemx
-#: doc/guix.texi:5787
+#: doc/guix.texi:6573
 #, no-wrap
 msgid "@code{search-paths} (default: @code{'()})"
 msgstr "@code{search-paths} (predeterminadas: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:5790
+#: doc/guix.texi:6576
 msgid "A list of @code{search-path-specification} objects describing search-path environment variables honored by the package."
 msgstr "Una lista de objetos @code{search-path-specification} describiendo las variables de entorno de rutas de búsqueda respetadas por el paquete."
 
 #. type: item
-#: doc/guix.texi:5791
+#: doc/guix.texi:6577
 #, no-wrap
 msgid "@code{replacement} (default: @code{#f})"
 msgstr "@code{replacement} (predeterminado: @code{1.0})"
 
 #. type: table
-#: doc/guix.texi:5795
+#: doc/guix.texi:6581
 msgid "This must be either @code{#f} or a package object that will be used as a @dfn{replacement} for this package.  @xref{Security Updates, grafts}, for details."
 msgstr "Esto debe ser o bien @code{#f} o bien un objeto package que será usado como @dfn{reemplazo} para ete paquete. @xref{Security Updates, injertos}, para más detalles."
 
 #. type: item
-#: doc/guix.texi:5796 doc/guix.texi:9738
+#: doc/guix.texi:6582 doc/guix.texi:11561
 #, no-wrap
 msgid "synopsis"
 msgstr "synopsis"
 
 #. type: table
-#: doc/guix.texi:5798
+#: doc/guix.texi:6584
 msgid "A one-line description of the package."
 msgstr "Una descripción en una línea del paquete."
 
-#. type: item
-#: doc/guix.texi:5799 doc/guix.texi:9739 doc/guix.texi:27538
+#. type: code{#1}
+#: doc/guix.texi:6585 doc/guix.texi:11562 doc/guix.texi:31704
+#: doc/guix.texi:31855
 #, no-wrap
 msgid "description"
 msgstr "description"
 
 #. type: table
-#: doc/guix.texi:5801
+#: doc/guix.texi:6587
 msgid "A more elaborate description of the package."
 msgstr "Una descripción más elaborada del paquete."
 
 #. type: code{#1}
-#: doc/guix.texi:5802
+#: doc/guix.texi:6588
 #, no-wrap
 msgid "license"
 msgstr "license"
 
 #. type: cindex
-#: doc/guix.texi:5803
+#: doc/guix.texi:6589
 #, no-wrap
 msgid "license, of packages"
 msgstr "licencia, de paquetes"
 
 #. type: table
-#: doc/guix.texi:5806
+#: doc/guix.texi:6592
 msgid "The license of the package; a value from @code{(guix licenses)}, or a list of such values."
 msgstr "La licencia del paquete; un valor de @code{(guix licenses)}, o una lista de dichos valores."
 
 #. type: itemx
-#: doc/guix.texi:5807 doc/guix.texi:9747
+#: doc/guix.texi:6593 doc/guix.texi:11570
 #, no-wrap
 msgid "home-page"
 msgstr "home-page"
 
 #. type: table
-#: doc/guix.texi:5809
+#: doc/guix.texi:6595
 msgid "The URL to the home-page of the package, as a string."
 msgstr "La URL de la página principal del paquete, como una cadena."
 
 #. type: item
-#: doc/guix.texi:5810
+#: doc/guix.texi:6596
 #, no-wrap
-msgid "@code{supported-systems} (default: @var{%supported-systems})"
+msgid "@code{supported-systems} (default: @code{%supported-systems})"
 msgstr "@code{supported-systems} (predeterminados: @code{%supported-systems})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:5813
+#: doc/guix.texi:6599
 msgid "The list of systems supported by the package, as strings of the form @code{architecture-kernel}, for example @code{\"x86_64-linux\"}."
 msgstr "La lista de sistemas en los que se mantiene el paquete, como cadenas de la forma @code{arquitectura-núcleo}, por ejemplo @code{\"x86_64-linux\"}."
 
 #. type: item
-#: doc/guix.texi:5814
+#: doc/guix.texi:6600
 #, no-wrap
 msgid "@code{location} (default: source location of the @code{package} form)"
 msgstr "@code{location} (predeterminada: la localización de los fuentes de la forma @code{package})"
 
 #. type: table
-#: doc/guix.texi:5818
+#: doc/guix.texi:6604
 msgid "The source location of the package.  It is useful to override this when inheriting from another package, in which case this field is not automatically corrected."
 msgstr "La localización de las fuentes del paquete. Es útil forzar su valor cuando se hereda de otro paquete, en cuyo caso este campo no se corrige automáticamente."
 
 #. type: deffn
-#: doc/guix.texi:5821
+#: doc/guix.texi:6607
 #, no-wrap
 msgid "{Scheme Syntax} this-package"
 msgstr "{Sintaxis Scheme} this-package"
 
 #. type: deffn
-#: doc/guix.texi:5824
+#: doc/guix.texi:6610
 msgid "When used in the @emph{lexical scope} of a package field definition, this identifier resolves to the package being defined."
 msgstr "Cuando se usa en el @emph{ámbito léxico} de la definición de un paquete, este identificador resuelve al paquete que se está definiendo."
 
 # FUZZY
 #. type: deffn
-#: doc/guix.texi:5827
+#: doc/guix.texi:6613
 msgid "The example below shows how to add a package as a native input of itself when cross-compiling:"
 msgstr "El ejemplo previo muestra cómo añadir un paquete como su propia entrada nativa cuando se compila de forma cruzada:"
 
 #. type: lisp
-#: doc/guix.texi:5832
+#: doc/guix.texi:6618
 #, no-wrap
 msgid ""
 "(package\n"
@@ -12229,7 +13718,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:5838
+#: doc/guix.texi:6624
 #, no-wrap
 msgid ""
 "  ;; When cross-compiled, Guile, for example, depends on\n"
@@ -12245,191 +13734,210 @@ msgstr ""
 "                     '())))\n"
 
 #. type: deffn
-#: doc/guix.texi:5841
+#: doc/guix.texi:6627
 msgid "It is an error to refer to @code{this-package} outside a package definition."
 msgstr "Es un error hacer referencia a @code{this-package} fuera de la definición de un paquete."
 
+#. type: Plain text
+#: doc/guix.texi:6633
+msgid "Because packages are regular Scheme objects that capture a complete dependency graph and associated build procedures, it is often useful to write procedures that take a package and return a modified version thereof according to some parameters.  Below are a few examples."
+msgstr "Debido a que los paquetes son objetos Scheme normales que capturan un grafo de dependencias completo y se asocian a procedimientos de construcción, habitualmente es útil escribir procedimientos que toman un paquete y devuelven una versión modificada de acuerdo a ciertos parámetros. A continuación se muestran algunos ejemplos:"
+
+#. type: cindex
+#: doc/guix.texi:6634
+#, no-wrap
+msgid "tool chain, choosing a package's tool chain"
+msgstr "cadena de herramientas de construcción, selección para un paquete"
+
+#. type: deffn
+#: doc/guix.texi:6635
+#, no-wrap
+msgid "{Scheme Procedure} package-with-c-toolchain @var{package} @var{toolchain}"
+msgstr "{Procedimiento Scheme} package-with-c-toolchain @var{paquete} @var{cadena}"
+
+#. type: deffn
+#: doc/guix.texi:6640
+msgid "Return a variant of @var{package} that uses @var{toolchain} instead of the default GNU C/C++ toolchain.  @var{toolchain} must be a list of inputs (label/package tuples) providing equivalent functionality, such as the @code{gcc-toolchain} package."
+msgstr "Devuelve una variación de @var{paquete} que usa @var{cadena} en vez de la cadena de herramientas de construcción de C/C++ de GNU predeterminada. @var{cadena} debe ser una lista de entradas (tuplas etiqueta/paquete) que proporcionen una funcionalidad equivalente a la del paquete @code{gcc-toolchain}."
+
+#. type: deffn
+#: doc/guix.texi:6644
+msgid "The example below returns a variant of the @code{hello} package built with GCC@tie{}10.x and the rest of the GNU tool chain (Binutils and the GNU C Library) instead of the default tool chain:"
+msgstr "El siguiente ejemplo devuelve una variación del paquete @code{hello} que se ha construido con GCC@tie{}10.x y el resto de la cadena de herramientas de construcción de GNU (Binutils y la biblioteca de C de GNU) en vez de la cadena de construcción predeterminada:"
+
+#. type: lisp
+#: doc/guix.texi:6648
+#, no-wrap
+msgid ""
+"(let ((toolchain (specification->package \"gcc-toolchain@@10\")))\n"
+"  (package-with-c-toolchain hello `((\"toolchain\" ,toolchain))))\n"
+msgstr ""
+"(let ((cadena (specification->package \"gcc-toolchain@@10\")))\n"
+"  ;; El nombre de la entrada debe ser \"toolchain\".\n"
+"  (package-with-c-toolchain hello `((\"toolchain\" ,cadena))))\n"
+
+#. type: deffn
+#: doc/guix.texi:6656
+msgid "The build tool chain is part of the @dfn{implicit inputs} of packages---it's usually not listed as part of the various ``inputs'' fields and is instead pulled in by the build system.  Consequently, this procedure works by changing the build system of @var{package} so that it pulls in @var{toolchain} instead of the defaults.  @ref{Build Systems}, for more on build systems."
+msgstr "La cadena de herramientas de construcción es parte de las @dfn{entradas impícitas} de los paquetes---habitualmente no se enumera como parte de los distintos campos de entrada (``inputs'') sino que el sistema de construcción es quién la incorpora. Por lo tanto este procedimiento funciona cambiando el sistema de construcción del @var{paquete} de modo que se incorpora @var{cadena} en vez de los valores predeterminados. @ref{Build Systems} para obtener más información sobre sistemas de construcción."
+
 #. type: subsection
-#: doc/guix.texi:5844
+#: doc/guix.texi:6659
 #, no-wrap
 msgid "@code{origin} Reference"
 msgstr "Referencia de @code{origin}"
 
+# FUZZY
 #. type: Plain text
-#: doc/guix.texi:5848
-msgid "This section summarizes all the options available in @code{origin} declarations (@pxref{Defining Packages})."
-msgstr "Esta sección resume todas las opciones disponibles en declaraciones @code{origin} (@pxref{Defining Packages})."
+#: doc/guix.texi:6667
+msgid "This section documents @dfn{origins}.  An @code{origin} declaration specifies data that must be ``produced''---downloaded, usually---and whose content hash is known in advance.  Origins are primarily used to represent the source code of packages (@pxref{Defining Packages}).  For that reason, the @code{origin} form allows you to declare patches to apply to the original source code as well as code snippets to modify it."
+msgstr "Esta sección documenta los @dfn{orígenes}.  Una declaración de origen (@code{origin}) especifica datos que se deben ``producir''---descargandose, habitualmente---y el hash de su contenido se conoce de antemano. Los origenes se usan habitualmente para reprensentar el código fuente de los paquetes (@pxref{Defining Packages}). Por esta razón la forma sintáctica @code{origin} le permite declarar tanto parches para aplicar al código fuente original como fragmentos de código que para su modificación."
 
 #. type: deftp
-#: doc/guix.texi:5849
+#: doc/guix.texi:6668
 #, no-wrap
 msgid "{Data Type} origin"
 msgstr "{Tipo de datos} origin"
 
 #. type: deftp
-#: doc/guix.texi:5851
+#: doc/guix.texi:6670
 msgid "This is the data type representing a source code origin."
 msgstr "Este es el tipo de datos que representa un origen de código fuente."
 
 #. type: code{#1}
-#: doc/guix.texi:5853 doc/guix.texi:20431
+#: doc/guix.texi:6672 doc/guix.texi:23144
 #, no-wrap
 msgid "uri"
 msgstr "uri"
 
 #. type: table
-#: doc/guix.texi:5858
+#: doc/guix.texi:6677
 msgid "An object containing the URI of the source.  The object type depends on the @code{method} (see below).  For example, when using the @var{url-fetch} method of @code{(guix download)}, the valid @code{uri} values are: a URL represented as a string, or a list thereof."
 msgstr "Un objeto que contiene el URI de las fuentes. El tipo de objeto depende del valor de @code{method} (véase a continuación). Por ejemplo, cuando se usa el método @var{url-fetch} de @code{(guix download)}, los valores adecuados para @code{uri} son: una cadena que contiene una URL, o una lista de cadenas."
 
+#. type: cindex
+#: doc/guix.texi:6678
+#, no-wrap
+msgid "fixed-output derivations, for download"
+msgstr "derivaciones de salida fija, para descarga"
+
 #. type: code{#1}
-#: doc/guix.texi:5859
+#: doc/guix.texi:6679
 #, no-wrap
 msgid "method"
 msgstr "method"
 
+# FUZZY FUZZY
 #. type: table
-#: doc/guix.texi:5861
-msgid "A procedure that handles the URI."
-msgstr "Un procedimiento que maneja el URI."
+#: doc/guix.texi:6686
+msgid "A monadic procedure that handles the given URI.  The procedure must accept at least three arguments: the value of the @code{uri} field and the hash algorithm and hash value specified by the @code{hash} field.  It must return a store item or a derivation in the store monad (@pxref{The Store Monad}); most methods return a fixed-output derivation (@pxref{Derivations})."
+msgstr "Un proceimiento monádico que trata la URI proporcionada. El procedimiento debe aceptar al menos tres parámetros: el valor del campo @code{uri}, el algoritmo de hash y su valor especificados en el campo @code{hash}. Debe devolver un elemento del almacén o una derivación en la mónada del almacén (@pxref{The Store Monad}); la mayoría de los métodos devuelven una derivación de salida fija (@pxref{Derivations})."
 
-# FUZZY
-# MAAV: No tengo mucha idea de cómo encajarlo...
 #. type: table
-#: doc/guix.texi:5863
-msgid "Examples include:"
-msgstr "Algunos ejemplos son:"
-
-#. type: item
-#: doc/guix.texi:5865
-#, no-wrap
-msgid "@var{url-fetch} from @code{(guix download)}"
-msgstr "@var{url-fetch} de @code{(guix download)}"
-
-#. type: table
-#: doc/guix.texi:5868
-msgid "download a file from the HTTP, HTTPS, or FTP URL specified in the @code{uri} field;"
-msgstr "descarga un fichero de la URL HTTP, HTTPS o FTP especificada en el campo @code{uri};"
-
-#. type: vindex
-#: doc/guix.texi:5869 doc/guix.texi:8962
-#, no-wrap
-msgid "git-fetch"
-msgstr "git-fetch"
+#: doc/guix.texi:6690
+msgid "Commonly used methods include @code{url-fetch}, which fetches data from a URL, and @code{git-fetch}, which fetches data from a Git repository (see below)."
+msgstr "Los métodos habitualmente usados incluyen @code{url-fetch}, que obtiene datos a partir de una URL, y @code{git-fetch}, que obtiene datos de un repositorio Git (véase a continuación)."
 
-#. type: item
-#: doc/guix.texi:5870
+#. type: code{#1}
+#: doc/guix.texi:6691
 #, no-wrap
-msgid "@var{git-fetch} from @code{(guix git-download)}"
-msgstr "@var{git-fetch} de @code{(guix git-download)}"
+msgid "sha256"
+msgstr "sha256"
 
-# FUZZY
 #. type: table
-#: doc/guix.texi:5874
-msgid "clone the Git version control repository, and check out the revision specified in the @code{uri} field as a @code{git-reference} object; a @code{git-reference} looks like this:"
-msgstr "clona el repositorio de control de versiones Git, y prepara la revisión especificada en el campo @code{uri} como un objeto @code{git-reference}; una referencia @code{git-reference} tiene esta forma:"
-
-#. type: lisp
-#: doc/guix.texi:5879
-#, no-wrap
-msgid ""
-"(git-reference\n"
-"  (url \"https://git.savannah.gnu.org/git/hello.git\")\n"
-"  (commit \"v2.10\"))\n"
-msgstr ""
-"(git-reference\n"
-"  (url \"https://git.savannah.gnu.org/git/hello.git\")\n"
-"  (commit \"v2.10\"))\n"
+#: doc/guix.texi:6695
+msgid "A bytevector containing the SHA-256 hash of the source.  This is equivalent to providing a @code{content-hash} SHA256 object in the @code{hash} field described below."
+msgstr "Un vector de bytes que contiene el hash SHA-256 de las fuentes. Es equivalente a proporcionar un objeto SHA256 @code{content-hash} en el campo @code{hash} descrito a continuación."
 
 #. type: code{#1}
-#: doc/guix.texi:5882
+#: doc/guix.texi:6696
 #, no-wrap
-msgid "sha256"
-msgstr "sha256"
+msgid "hash"
+msgstr "hash"
 
 #. type: table
-#: doc/guix.texi:5886
-msgid "A bytevector containing the SHA-256 hash of the source.  Typically the @code{base32} form is used here to generate the bytevector from a base-32 string."
-msgstr "Un vector de bytes que contiene el hash SHA-256 de las fuentes. Típicamente la forma @code{base32} se usa aquí para generar el vector de bytes de una cadena en base-32."
+#: doc/guix.texi:6699
+msgid "The @code{content-hash} object of the source---see below for how to use @code{content-hash}."
+msgstr "El objeto @code{content-hash} de las fuentes---véase a continuación cómo usar @code{content-hash}."
 
 #. type: table
-#: doc/guix.texi:5890
+#: doc/guix.texi:6703
 msgid "You can obtain this information using @code{guix download} (@pxref{Invoking guix download}) or @code{guix hash} (@pxref{Invoking guix hash})."
 msgstr "Puede obtener esta información usando @code{guix download} (@pxref{Invoking guix download}) o @code{guix hash} (@pxref{Invoking guix hash})."
 
 #. type: item
-#: doc/guix.texi:5891
+#: doc/guix.texi:6704
 #, no-wrap
 msgid "@code{file-name} (default: @code{#f})"
 msgstr "@code{file-name} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:5897
+#: doc/guix.texi:6710
 msgid "The file name under which the source code should be saved.  When this is @code{#f}, a sensible default value will be used in most cases.  In case the source is fetched from a URL, the file name from the URL will be used.  For version control checkouts, it is recommended to provide the file name explicitly because the default is not very descriptive."
-msgstr "El nombre de fichero bajo el que el código fuente se almacenará. Cuando este es @code{#f}, un valor predeterminado sensato se usará en la mayor parte de casos. En caso de que las fuentes se obtengan de una URL, el nombre de fichero de la URL se usará. Para copias de trabajo de sistemas de control de versiones, se recomienda proporcionar el nombre de fichero explícitamente ya que el predeterminado no es muy descriptivo."
+msgstr "El nombre de archivo bajo el que el código fuente se almacenará. Cuando este es @code{#f}, un valor predeterminado sensato se usará en la mayor parte de casos. En caso de que las fuentes se obtengan de una URL, el nombre de archivo de la URL se usará. Para copias de trabajo de sistemas de control de versiones, se recomienda proporcionar el nombre de archivo explícitamente ya que el predeterminado no es muy descriptivo."
 
 #. type: item
-#: doc/guix.texi:5898
+#: doc/guix.texi:6711
 #, no-wrap
 msgid "@code{patches} (default: @code{'()})"
 msgstr "@code{patches} (predeterminados: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:5901
+#: doc/guix.texi:6714
 msgid "A list of file names, origins, or file-like objects (@pxref{G-Expressions, file-like objects}) pointing to patches to be applied to the source."
-msgstr "Una lista de nombres de ficheros, orígenes u objetos tipo-fichero (@pxref{G-Expressions, objetos ``tipo-fichero''}) apuntando a parches que deben ser aplicados a las fuentes."
+msgstr "Una lista de nombres de archivos, orígenes u objetos tipo-archivo (@pxref{G-Expressions, objetos ``tipo-archivo''}) apuntando a parches que deben ser aplicados a las fuentes."
 
 #. type: table
-#: doc/guix.texi:5905
+#: doc/guix.texi:6718
 msgid "This list of patches must be unconditional.  In particular, it cannot depend on the value of @code{%current-system} or @code{%current-target-system}."
 msgstr "La lista de parches debe ser incondicional. En particular, no puede depender del valor de @code{%current-system} o @code{%current-target-system}."
 
 #. type: item
-#: doc/guix.texi:5906
+#: doc/guix.texi:6719
 #, no-wrap
 msgid "@code{snippet} (default: @code{#f})"
 msgstr "@code{snippet} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:5910
+#: doc/guix.texi:6723
 msgid "A G-expression (@pxref{G-Expressions}) or S-expression that will be run in the source directory.  This is a convenient way to modify the source, sometimes more convenient than a patch."
 msgstr "Una expresión-G (@pxref{G-Expressions}) o expresión-S que se ejecutará en el directorio de fuentes. Esta es una forma conveniente de modificar el software, a veces más que un parche."
 
 #. type: item
-#: doc/guix.texi:5911
+#: doc/guix.texi:6724
 #, no-wrap
 msgid "@code{patch-flags} (default: @code{'(\"-p1\")})"
 msgstr "@code{patch-flags} (predeterminadas: @code{'(\"-p1\")})"
 
 #. type: table
-#: doc/guix.texi:5914
+#: doc/guix.texi:6727
 msgid "A list of command-line flags that should be passed to the @code{patch} command."
 msgstr "Una lista de opciones de línea de órdenes que deberían ser pasadas a la orden @code{patch}."
 
 #. type: item
-#: doc/guix.texi:5915
+#: doc/guix.texi:6728
 #, no-wrap
 msgid "@code{patch-inputs} (default: @code{#f})"
 msgstr "@code{patch-inputs} (predeterminada: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:5919
+#: doc/guix.texi:6732
 msgid "Input packages or derivations to the patching process.  When this is @code{#f}, the usual set of inputs necessary for patching are provided, such as GNU@tie{}Patch."
 msgstr "Paquetes o derivaciones de entrada al proceso de aplicación de los parches. Cuando es @code{#f}, se proporciona el conjunto habitual de entradas necesarias para la aplicación de parches, como GNU@tie{}Patch."
 
 #. type: item
-#: doc/guix.texi:5920 doc/guix.texi:20326
+#: doc/guix.texi:6733 doc/guix.texi:23017
 #, no-wrap
 msgid "@code{modules} (default: @code{'()})"
 msgstr "@code{modules} (predeterminados: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:5923
+#: doc/guix.texi:6736
 msgid "A list of Guile modules that should be loaded during the patching process and while running the code in the @code{snippet} field."
 msgstr "Una lista de módulos Guile que debe ser cargada durante el proceso de aplicación de parches y mientras se ejecuta el código del campo @code{snippet}."
 
 #. type: item
-#: doc/guix.texi:5924
+#: doc/guix.texi:6737
 #, no-wrap
 msgid "@code{patch-guile} (default: @code{#f})"
 msgstr "@code{patch-guile} (predeterminado: @code{#f})"
@@ -12437,1469 +13945,2835 @@ msgstr "@code{patch-guile} (predeterminado: @code{#f})"
 # FUZZY
 # MAAV: Sensible -> sensato no aporta mucho ni queda muy bien.
 #. type: table
-#: doc/guix.texi:5927
+#: doc/guix.texi:6740
 msgid "The Guile package that should be used in the patching process.  When this is @code{#f}, a sensible default is used."
 msgstr "El paquete Guile que debe ser usado durante la aplicación de parches. Cuando es @code{#f} se usa un valor predeterminado."
 
+#. type: deftp
+#: doc/guix.texi:6743
+#, no-wrap
+msgid "{Data Type} content-hash @var{value} [@var{algorithm}]"
+msgstr "{Tipo de datos} content-hash @var{valor} [@var{algoritmo}]"
+
+#. type: deftp
+#: doc/guix.texi:6747
+msgid "Construct a content hash object for the given @var{algorithm}, and with @var{value} as its hash value.  When @var{algorithm} is omitted, assume it is @code{sha256}."
+msgstr "Construye un objeto del hash del contenido para el @var{algoritmo} proporcionado, y con @var{valor} como su valor. Cuando se omite @var{algoritmo} se asume que es @code{sha256}."
+
+#. type: deftp
+#: doc/guix.texi:6750
+msgid "@var{value} can be a literal string, in which case it is base32-decoded, or it can be a bytevector."
+msgstr "@var{valor} puede ser una cadena literal, en cuyo caso se decodifica en base32, o un vector de bytes."
+
+#. type: deftp
+#: doc/guix.texi:6752
+msgid "The following forms are all equivalent:"
+msgstr "Las siguientes opciones equivalentes entre sí:"
+
+#. type: lisp
+#: doc/guix.texi:6761
+#, no-wrap
+msgid ""
+"(content-hash \"05zxkyz9bv3j9h0xyid1rhvh3klhsmrpkf3bcs6frvlgyr2gwilj\")\n"
+"(content-hash \"05zxkyz9bv3j9h0xyid1rhvh3klhsmrpkf3bcs6frvlgyr2gwilj\"\n"
+"              sha256)\n"
+"(content-hash (base32\n"
+"               \"05zxkyz9bv3j9h0xyid1rhvh3klhsmrpkf3bcs6frvlgyr2gwilj\"))\n"
+"(content-hash (base64 \"kkb+RPaP7uyMZmu4eXPVkM4BN8yhRd8BTHLslb6f/Rc=\")\n"
+"              sha256)\n"
+msgstr ""
+"(content-hash \"05zxkyz9bv3j9h0xyid1rhvh3klhsmrpkf3bcs6frvlgyr2gwilj\")\n"
+"(content-hash \"05zxkyz9bv3j9h0xyid1rhvh3klhsmrpkf3bcs6frvlgyr2gwilj\"\n"
+"              sha256)\n"
+"(content-hash (base32\n"
+"               \"05zxkyz9bv3j9h0xyid1rhvh3klhsmrpkf3bcs6frvlgyr2gwilj\"))\n"
+"(content-hash (base64 \"kkb+RPaP7uyMZmu4eXPVkM4BN8yhRd8BTHLslb6f/Rc=\")\n"
+"              sha256)\n"
+
+#. type: deftp
+#: doc/guix.texi:6766
+msgid "Technically, @code{content-hash} is currently implemented as a macro.  It performs sanity checks at macro-expansion time, when possible, such as ensuring that @var{value} has the right size for @var{algorithm}."
+msgstr "Técnicamente, @code{content-hash} se implementa actualmente con un macro. Realiza comprobaciones de seguridad en tiempo de expansión, cuando es posible, como asegurarse de que @var{valor} tiene el tamaño adecuado para @var{algoritmo}."
+
+#. type: Plain text
+#: doc/guix.texi:6772
+msgid "As we have seen above, how exactly the data an origin refers to is retrieved is determined by its @code{method} field.  The @code{(guix download)} module provides the most common method, @code{url-fetch}, described below."
+msgstr "Como se ha visto previamente, la forma exacta en la que un origen hace referencia a los datos se determina por su campo @code{method}. El módulo @code{(guix download)} proporciona el método más común, @code{url-fetch}, descrito a continuación."
+
+#. type: deffn
+#: doc/guix.texi:6773
+#, no-wrap
+msgid "{Scheme Procedure} url-fetch @var{url} @var{hash-algo} @var{hash} @"
+msgstr "{Procedimiento Scheme} url-fetch @var{url} @var{algo-hash} @var{hash} @"
+
+#. type: deffn
+#: doc/guix.texi:6781
+msgid "[name] [#:executable? #f] Return a fixed-output derivation that fetches data from @var{url} (a string, or a list of strings denoting alternate URLs), which is expected to have hash @var{hash} of type @var{hash-algo} (a symbol).  By default, the file name is the base name of URL; optionally, @var{name} can specify a different file name.  When @var{executable?} is true, make the downloaded file executable."
+msgstr ""
+"[nombre] [#:executable? #f]\n"
+"Devuelve una derivación de salida fija que obtiene datos desde @var{url} (una cadena o una lista de cadenas indicando URL alternativas), la cual se espera que tenga el hash @var{hash} del tipo @var{algo-hash} (un símbolo). De manera predeterminada el nombre de archivo es el identificador final de la URL; de manera opcional se puede usar @var{nombre} para especificar un nombre de archivo diferente. Cuando @var{executable?} es verdadero se proporciona el permiso de ejecución al archivo descargado."
+
+#. type: deffn
+#: doc/guix.texi:6784
+msgid "When one of the URL starts with @code{mirror://}, then its host part is interpreted as the name of a mirror scheme, taken from @file{%mirror-file}."
+msgstr "Cuando una de las URL comienza con @code{mirror://}, la parte de la máquina se interpreta como el nombre de un esquema de espejos, obtenido de @file{%mirror-file}."
+
+#. type: deffn
+#: doc/guix.texi:6787
+msgid "Alternatively, when URL starts with @code{file://}, return the corresponding file name in the store."
+msgstr "De manera alternativa, cuando URL comienza con @code{file://}, devuelve el nombre de archivo del almacén correspondiente."
+
+#. type: Plain text
+#: doc/guix.texi:6793
+msgid "Likewise, the @code{(guix git-download)} module defines the @code{git-fetch} origin method, which fetches data from a Git version control repository, and the @code{git-reference} data type to describe the repository and revision to fetch."
+msgstr "De igual modo el módulo @code{(guix git-download)} define el método de origen @code{git-fetch}, que descarga datos de un repositorio de control de versiones Git, y el tipo de datos @code{git-reference}, que describe el repositorio y la revisión que se debe obtener."
+
+#. type: deffn
+#: doc/guix.texi:6794
+#, no-wrap
+msgid "{Scheme Procedure} git-fetch @var{ref} @var{hash-algo} @var{hash}"
+msgstr "{Procedimiento Scheme} git-fetch @var{url} @var{algo-hash} @var{hash}"
+
+#. type: deffn
+#: doc/guix.texi:6799
+msgid "Return a fixed-output derivation that fetches @var{ref}, a @code{<git-reference>} object.  The output is expected to have recursive hash @var{hash} of type @var{hash-algo} (a symbol).  Use @var{name} as the file name, or a generic name if @code{#f}."
+msgstr "Devuelve una derivación de salida fija que obtiene @var{ref}, un objeto @code{<git-reference>}. El hash recursivo de la salida se espera que tenga el valor @var{hash} del tipo @var{algo-hash} (un símbolo). Se usa @var{nombre} para el nombre de archivo, o un nombre genérico si su valor es @code{#f}."
+
+#. type: deftp
+#: doc/guix.texi:6801
+#, no-wrap
+msgid "{Data Type} git-reference"
+msgstr "{Tipo de datos} git-reference"
+
+#. type: deftp
+#: doc/guix.texi:6804
+msgid "This data type represents a Git reference for @code{git-fetch} to retrieve."
+msgstr "Este es el tipo de datos que representa una referencia de Git que debe obtener el módulo @code{git-fetch}."
+
+#. type: code{#1}
+#: doc/guix.texi:6806 doc/guix.texi:21583
+#, no-wrap
+msgid "url"
+msgstr "url"
+
+#. type: table
+#: doc/guix.texi:6808
+msgid "The URL of the Git repository to clone."
+msgstr "La URL del repositorio Git que debe clonarse."
+
+# FUZZY
+#. type: code{#1}
+#: doc/guix.texi:6809
+#, no-wrap
+msgid "commit"
+msgstr "commit"
+
+#. type: table
+#: doc/guix.texi:6813
+msgid "This string denotes either the commit to fetch (a hexadecimal string, either the full SHA1 commit or a ``short'' commit string; the latter is not recommended) or the tag to fetch."
+msgstr "Esta cadena indica o bien la revisión que se debe obtener (una cadena hexadecimal, o bien el hash SHA1 de la revisión o una cadena ``corta'' que la represente; esta última no está recomendada) o la etiqueta que se debe obtener."
+
+#. type: item
+#: doc/guix.texi:6814
+#, no-wrap
+msgid "@code{recursive?} (default: @code{#f})"
+msgstr "@code{recursive?} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:6816
+msgid "This Boolean indicates whether to recursively fetch Git sub-modules."
+msgstr "Este valor booleano indica si se obtienen los sub-modulos de Git de manera recursiva."
+
+#. type: deftp
+#: doc/guix.texi:6820
+msgid "The example below denotes the @code{v2.10} tag of the GNU@tie{}Hello repository:"
+msgstr "El siguiente ejemplo representa la etiqueta @code{v2.10} del repositorio de GNU@tie{}Hello:"
+
+#. type: lisp
+#: doc/guix.texi:6825
+#, no-wrap
+msgid ""
+"(git-reference\n"
+"  (url \"https://git.savannah.gnu.org/git/hello.git\")\n"
+"  (commit \"v2.10\"))\n"
+msgstr ""
+"(git-reference\n"
+"  (url \"https://git.savannah.gnu.org/git/hello.git\")\n"
+"  (commit \"v2.10\"))\n"
+
+#. type: deftp
+#: doc/guix.texi:6829
+msgid "This is equivalent to the reference below, which explicitly names the commit:"
+msgstr "Es equivalente a la siguiente referencia, la cual nombra de manera explícita la revisión:"
+
+#. type: lisp
+#: doc/guix.texi:6834
+#, no-wrap
+msgid ""
+"(git-reference\n"
+"  (url \"https://git.savannah.gnu.org/git/hello.git\")\n"
+"  (commit \"dc7dc56a00e48fe6f231a58f6537139fe2908fb9\"))\n"
+msgstr ""
+"(git-reference\n"
+"  (url \"https://git.savannah.gnu.org/git/hello.git\")\n"
+"  (commit \"dc7dc56a00e48fe6f231a58f6537139fe2908fb9\"))\n"
+
 #. type: cindex
-#: doc/guix.texi:5934
+#: doc/guix.texi:6840
+#, no-wrap
+msgid "customizing packages"
+msgstr "personalización de paquetes"
+
+#. type: cindex
+#: doc/guix.texi:6841
+#, no-wrap
+msgid "variants, of packages"
+msgstr "variantes de paquetes"
+
+# FUZZY FUZZY
+#. type: Plain text
+#: doc/guix.texi:6851
+msgid "One of the nice things with Guix is that, given a package definition, you can easily @emph{derive} variants of that package---for a different upstream version, with different dependencies, different compilation options, and so on.  Some of these custom packages can be defined straight from the command line (@pxref{Package Transformation Options}).  This section describes how to define package variants in code.  This can be useful in ``manifests'' (@pxref{profile-manifest, @option{--manifest}}) and in your own package collection (@pxref{Creating a Channel}), among others!"
+msgstr "Una de las ventajas de Guix es que, dada una definición de paquete, puede @emph{derivar} fácilmente variantes de dicho paquete---para una versión diferente del origen, con dependencias u opciones de compilación diferentes, diferentes, etcétera. Algunos de estos paquetes personalizados se pueden definir directamente en la línea de ordenes (@pxref{Package Transformation Options}). Esta sección describe cómo definir variantes de paquetes en código. Esto puede ser útil en «manifiestos» (@pxref{profile-manifest, @option{--manifest}}) y con su propia colleción de paquetes (@pxref{Creating a Channel}) entre otros usos."
+
+#. type: cindex
+#: doc/guix.texi:6852
+#, no-wrap
+msgid "inherit, for package definitions"
+msgstr "herencia, para definiciones de paquetes"
+
+#. type: Plain text
+#: doc/guix.texi:6859
+msgid "As discussed earlier, packages are first-class objects in the Scheme language.  The @code{(guix packages)} module provides the @code{package} construct to define new package objects (@pxref{package Reference}).  The easiest way to define a package variant is using the @code{inherit} keyword together with @code{package}.  This allows you to inherit from a package definition while overriding the fields you want."
+msgstr "Como se ha mostrado previamente, los paquetes son objetos de primera clase del lenguage Scheme. El módulo @code{(guix packages)} proporciona la forma sintáctica @code{package} para definir nuevos objetos de paquetes (@pxref{package Reference}).  La forma más fácil de definir una variante de un paquete es usar la palabra clave @code{inherit} junto a @code{package}. Esto le permite heredar de una definición de paquete y modificar únicamente los campos que desee."
+
+# FUZZY FUZZY FUZZY
+#. type: Plain text
+#: doc/guix.texi:6864
+msgid "For example, given the @code{hello} variable, which contains a definition for the current version of GNU@tie{}Hello, here's how you would define a variant for version 2.2 (released in 2006, it's vintage!):"
+msgstr "Por ejemplo, a partir de la variable @code{hello}, que contiene la definición de la versión actual de GNU@tie{}Hello, podría definir de esta forma una variante para la versión 2.2 (publicada 2006, ¡con solera!):"
+
+#. type: lisp
+#: doc/guix.texi:6867
+#, no-wrap
+msgid ""
+"(use-modules (gnu packages base))    ;for 'hello'\n"
+"\n"
+msgstr ""
+"(use-modules (gnu packages base))    ;para 'hello'\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:6879
+#, no-wrap
+msgid ""
+"(define hello-2.2\n"
+"  (package\n"
+"    (inherit hello)\n"
+"    (version \"2.2\")\n"
+"    (source (origin\n"
+"              (method url-fetch)\n"
+"              (uri (string-append \"mirror://gnu/hello/hello-\" version\n"
+"                                  \".tar.gz\"))\n"
+"              (sha256\n"
+"               (base32\n"
+"                \"0lappv4slgb5spyqbh6yl5r013zv72yqg2pcl30mginf3wdqd8k9\"))))))\n"
+msgstr ""
+"(define hello-2.2\n"
+"  (package\n"
+"    (inherit hello)\n"
+"    (version \"2.2\")\n"
+"    (source (origin\n"
+"              (method url-fetch)\n"
+"              (uri (string-append \"mirror://gnu/hello/hello-\" version\n"
+"                                  \".tar.gz\"))\n"
+"              (sha256\n"
+"               (base32\n"
+"                \"0lappv4slgb5spyqbh6yl5r013zv72yqg2pcl30mginf3wdqd8k9\"))))))\n"
+
+#. type: Plain text
+#: doc/guix.texi:6888
+msgid "The example above corresponds to what the @option{--with-source} package transformation option does.  Essentially @code{hello-2.2} preserves all the fields of @code{hello}, except @code{version} and @code{source}, which it overrides.  Note that the original @code{hello} variable is still there, in the @code{(gnu packages base)} module, unchanged.  When you define a custom package like this, you are really @emph{adding} a new package definition; the original one remains available."
+msgstr "El ejemplo previo es equivalente a lo que la opción de transformación de paquetes @option{--with-source} realiza. Esencialmente @code{hello-2.2} preserva todos los campos de @code{hello}, excepto @code{version} y @code{source}, los cuales se modifican. Tenca en cuenta que la variable original @code{hello} todavía está disponible en el módulo @code{(gnu packages base)} sin sufrir ningún cambio. Cuando define un paquete personalizado como este realmente está @emph{añadiendo} una nueva definición de paquete; la orignal sigue disponible."
+
+#. type: Plain text
+#: doc/guix.texi:6894
+msgid "You can just as well define variants with a different set of dependencies than the original package.  For example, the default @code{gdb} package depends on @code{guile}, but since that is an optional dependency, you can define a variant that removes that dependency like so:"
+msgstr "De igual manera puede definir variantes con un conjunto de dependencias distinto al del paquete original. Por ejemplo, el paquete @code{gdb} predeterminado depende de @code{guile} pero, puesto que es una dependencia opcional, podría definir una variante que elimina dicha dependencia de este modo:"
+
+#. type: lisp
+#: doc/guix.texi:6898
+#, no-wrap
+msgid ""
+"(use-modules (gnu packages gdb)    ;for 'gdb'\n"
+"             (srfi srfi-1))        ;for 'alist-delete'\n"
+"\n"
+msgstr ""
+"(use-modules (gnu packages gdb)    ;para 'gdb'\n"
+"             (srfi srfi-1))        ;para 'alist-delete'\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:6904
+#, no-wrap
+msgid ""
+"(define gdb-sans-guile\n"
+"  (package\n"
+"    (inherit gdb)\n"
+"    (inputs (alist-delete \"guile\"\n"
+"                          (package-inputs gdb)))))\n"
+msgstr ""
+"(define gdb-sin-guile\n"
+"  (package\n"
+"    (inherit gdb)\n"
+"    (inputs (alist-delete \"guile\"\n"
+"                          (package-inputs gdb)))))\n"
+
+#. type: Plain text
+#: doc/guix.texi:6910
+msgid "The @code{alist-delete} call above removes the tuple from the @code{inputs} field that has @code{\"guile\"} as its first element (@pxref{SRFI-1 Association Lists,,, guile, GNU Guile Reference Manual})."
+msgstr "La llamada @code{alist-delete} anterior elimina la tupla del campo @code{inputs} cuyo primer elemento es @code{\"guile\"} (@pxref{SRFI-1 Association Lists,,, guile, GNU Guile Reference Manual})."
+
+#. type: Plain text
+#: doc/guix.texi:6918
+msgid "In some cases, you may find it useful to write functions (``procedures'', in Scheme parlance) that return a package based on some parameters.  For example, consider the @code{luasocket} library for the Lua programming language.  We want to create @code{luasocket} packages for major versions of Lua.  One way to do that is to define a procedure that takes a Lua package and returns a @code{luasocket} package that depends on it:"
+msgstr "En ciertos casos encontrará útil escribir funciones («procedimientos» en el vocabulario de Scheme) que devuelven un paquete en base a ciertos parámetros. Por ejemplo, considere la biblioteca @code{luasocket} para el lenguaje de programación Lua. Se desea crear paquetes de @code{luasocket} para las versiones mayores de Lua. Una forma de hacerlo es definir un procedimiento que recibe un paquete Lua y devuelve un paquete @code{luasocket} que depende de él:"
+
+#. type: lisp
+#: doc/guix.texi:6929
+#, no-wrap
+msgid ""
+"(define (make-lua-socket name lua)\n"
+"  ;; Return a luasocket package built with LUA.\n"
+"  (package\n"
+"    (name name)\n"
+"    (version \"3.0\")\n"
+"    ;; several fields omitted\n"
+"    (inputs\n"
+"     `((\"lua\" ,lua)))\n"
+"    (synopsis \"Socket library for Lua\")))\n"
+"\n"
+msgstr ""
+"(define (make-lua-socket name lua)\n"
+"  ;; Devuelve un paquete luasocket construido con LUA.\n"
+"  (package\n"
+"    (name name)\n"
+"    (version \"3.0\")\n"
+"    ;; se omiten varios campos\n"
+"    (inputs\n"
+"     `((\"lua\" ,lua)))\n"
+"    (synopsis \"Socket library for Lua\")))\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:6932
+#, no-wrap
+msgid ""
+"(define-public lua5.1-socket\n"
+"  (make-lua-socket \"lua5.1-socket\" lua-5.1))\n"
+"\n"
+msgstr ""
+"(define-public lua5.1-socket\n"
+"  (make-lua-socket \"lua5.1-socket\" lua-5.1))\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:6935
+#, no-wrap
+msgid ""
+"(define-public lua5.2-socket\n"
+"  (make-lua-socket \"lua5.2-socket\" lua-5.2))\n"
+msgstr ""
+"(define-public lua5.2-socket\n"
+"  (make-lua-socket \"lua5.2-socket\" lua-5.2))\n"
+
+#. type: Plain text
+#: doc/guix.texi:6943
+msgid "Here we have defined packages @code{lua5.1-socket} and @code{lua5.2-socket} by calling @code{make-lua-socket} with different arguments.  @xref{Procedures,,, guile, GNU Guile Reference Manual}, for more info on procedures.  Having top-level public definitions for these two packages means that they can be referred to from the command line (@pxref{Package Modules})."
+msgstr "En este ejemplo se han definido los paquetes @code{lua5.1-socket} y @code{lua5.2-socket} llamando a @code{crea-lua-socket} con distintos parámetros.  @xref{Procedures,,, guile, GNU Guile Reference Manual} para más información sobre procedimientos. El hecho de disponer de definiciones públicas de nivel superior de estos dos paquetes permite que se les haga referencia desde la línea de órdenes (@pxref{Package Modules})."
+
+#. type: cindex
+#: doc/guix.texi:6944
+#, no-wrap
+msgid "package transformations"
+msgstr "transformación de paquetes"
+
+#. type: Plain text
+#: doc/guix.texi:6949
+msgid "These are pretty simple package variants.  As a convenience, the @code{(guix transformations)} module provides a high-level interface that directly maps to the more sophisticated package transformation options (@pxref{Package Transformation Options}):"
+msgstr "Estas son variantes muy simples. Para facilitar esta tarea, el módulo @code{(guix transformations)} proporciona una interfaz de alto nivel que se corresponde directamente con las opciones de transformación de paquetes más sofisticadas (@pxref{Package Transformation Options}):"
+
+#. type: deffn
+#: doc/guix.texi:6950
+#, no-wrap
+msgid "{Scheme Procedure} options->transformation @var{opts}"
+msgstr "{Procedimiento Scheme} options->transformation @var{opciones}"
+
+#. type: deffn
+#: doc/guix.texi:6954
+msgid "Return a procedure that, when passed an object to build (package, derivation, etc.), applies the transformations specified by @var{opts} and returns the resulting objects.  @var{opts} must be a list of symbol/string pairs such as:"
+msgstr "Devuelve un procedimiento que, cuando se le proporciona un objeto que construir (paquete, derivación, etc.), aplica las transformaciones especificadas en @var{opciones} y devuelve los objetos resultantes.  @var{opciones} debe ser una lista de pares símbolo/cadena como los siguientes:"
+
+#. type: lisp
+#: doc/guix.texi:6958
+#, no-wrap
+msgid ""
+"((with-branch . \"guile-gcrypt=master\")\n"
+" (without-tests . \"libgcrypt\"))\n"
+msgstr ""
+"((with-branch . \"guile-gcrypt=master\")\n"
+" (without-tests . \"libgcrypt\"))\n"
+
+#. type: deffn
+#: doc/guix.texi:6962
+msgid "Each symbol names a transformation and the corresponding string is an argument to that transformation."
+msgstr "Cada símbolo nombra una transformación y la cadena correspondiente es el parámetro de dicha transformación."
+
+#. type: Plain text
+#: doc/guix.texi:6965
+msgid "For instance, a manifest equivalent to this command:"
+msgstr "Por ejemplo, un manifiesto equivalente a esta orden:"
+
+#. type: example
+#: doc/guix.texi:6970
+#, no-wrap
+msgid ""
+"guix build guix \\\n"
+"  --with-branch=guile-gcrypt=master \\\n"
+"  --with-debug-info=zlib\n"
+msgstr ""
+"guix build guix \\\n"
+"  --with-branch=guile-gcrypt=master \\\n"
+"  --with-debug-info=zlib\n"
+
+#. type: Plain text
+#: doc/guix.texi:6974
+msgid "... would look like this:"
+msgstr "... sería algo parecido a esto:"
+
+#. type: lisp
+#: doc/guix.texi:6977
+#, no-wrap
+msgid ""
+"(use-modules (guix transformations))\n"
+"\n"
+msgstr ""
+"(use-modules (guix transformations))\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:6983
+#, no-wrap
+msgid ""
+"(define transform\n"
+"  ;; The package transformation procedure.\n"
+"  (options->transformation\n"
+"   '((with-branch . \"guile-gcrypt=master\")\n"
+"     (with-debug-info . \"zlib\"))))\n"
+"\n"
+msgstr ""
+"(define transforma\n"
+"  ;; El procedimiento de transformación del paquete.\n"
+"  (options->transformation\n"
+"   '((with-branch . \"guile-gcrypt=master\")\n"
+"     (with-debug-info . \"zlib\"))))\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:6986
+#, no-wrap
+msgid ""
+"(packages->manifest\n"
+" (list (transform (specification->package \"guix\"))))\n"
+msgstr ""
+"(packages->manifest\n"
+" (list (transforma (specification->package \"guix\"))))\n"
+
+#. type: cindex
+#: doc/guix.texi:6988
+#, no-wrap
+msgid "input rewriting"
+msgstr "reescritura de entradas"
+
+#. type: cindex
+#: doc/guix.texi:6989
+#, no-wrap
+msgid "dependency graph rewriting"
+msgstr "reescritura del grafo de dependencias"
+
+# FUZZY
+#. type: Plain text
+#: doc/guix.texi:6996
+msgid "The @code{options->transformation} procedure is convenient, but it's perhaps also not as flexible as you may like.  How is it implemented? The astute reader probably noticed that most package transformation options go beyond the superficial changes shown in the first examples of this section: they involve @dfn{input rewriting}, whereby the dependency graph of a package is rewritten by replacing specific inputs by others."
+msgstr "El procedimiento @code{options->transformation} es conveniente, pero quizá no es tan flexible como pudiese desear. ¿Cómo se ha implementado? Es posible que ya se haya percatado de que la mayoría de las opciones de transformación de paquetes van más allá de los cambios superficiales mostrados en los primeros ejemplos de esta sección: implican @dfn{reescritura de entradas}, lo que significa que el grafo de dependencias de un paquete se reescribe sustituyendo entradas específicas por otras."
+
+# FUZZY FUZZY
+#. type: Plain text
+#: doc/guix.texi:7000
+msgid "Dependency graph rewriting, for the purposes of swapping packages in the graph, is what the @code{package-input-rewriting} procedure in @code{(guix packages)} implements."
+msgstr "La reescritura del grafo de dependencias, con el propósito de reemplazar paquetes del grafo, es implementada por el procedimiento @code{package-input-rewriting} en @code{(guix packages)}."
+
+#. type: deffn
+#: doc/guix.texi:7001
+#, no-wrap
+msgid "{Scheme Procedure} package-input-rewriting @var{replacements} @"
+msgstr "{Procedimiento Scheme} package-input-rewriting @var{reemplazos} @"
+
+#. type: deffn
+#: doc/guix.texi:7008
+msgid "[@var{rewrite-name}] [#:deep? #t] Return a procedure that, when passed a package, replaces its direct and indirect dependencies, including implicit inputs when @var{deep?} is true, according to @var{replacements}.  @var{replacements} is a list of package pairs; the first element of each pair is the package to replace, and the second one is the replacement."
+msgstr ""
+"[@var{nombre-reescrito}] [#:deep? #t]\n"
+"Devuelve un procedimiento que, cuando se le pasa un paquete, reemplaza sus dependencias directas e indirectas, incluyendo sus entradas implícitas cuando @var{deep?} es verdadero, de acuerdo a @var{reemplazos}. @var{reemplazos} es una lista de pares de paquetes; el primer elemento de cada par es el paquete a reemplazar, el segundo es el reemplazo."
+
+#. type: deffn
+#: doc/guix.texi:7011
+msgid "Optionally, @var{rewrite-name} is a one-argument procedure that takes the name of a package and returns its new name after rewrite."
+msgstr "Opcionalmente, @var{nombre-reescrito} es un procedimiento de un parámetro que toma el nombre del paquete y devuelve su nuevo nombre tras la reescritura."
+
+#. type: table
+#: doc/guix.texi:7015 doc/guix.texi:10211
+msgid "Consider this example:"
+msgstr "Considere este ejemplo:"
+
+#. type: lisp
+#: doc/guix.texi:7021
+#, no-wrap
+msgid ""
+"(define libressl-instead-of-openssl\n"
+"  ;; This is a procedure to replace OPENSSL by LIBRESSL,\n"
+"  ;; recursively.\n"
+"  (package-input-rewriting `((,openssl . ,libressl))))\n"
+"\n"
+msgstr ""
+"(define libressl-en-vez-de-openssl\n"
+"  ;; Esto es un procedimiento para reemplazar OPENSSL\n"
+"  ;; por LIBRESSL, recursivamente.\n"
+"  (package-input-rewriting `((,openssl . ,libressl))))\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:7024
+#, no-wrap
+msgid ""
+"(define git-with-libressl\n"
+"  (libressl-instead-of-openssl git))\n"
+msgstr ""
+"(define git-con-libressl\n"
+"  (libressl-en-vez-de-openssl git))\n"
+
+#. type: Plain text
+#: doc/guix.texi:7032
+msgid "Here we first define a rewriting procedure that replaces @var{openssl} with @var{libressl}.  Then we use it to define a @dfn{variant} of the @var{git} package that uses @var{libressl} instead of @var{openssl}.  This is exactly what the @option{--with-input} command-line option does (@pxref{Package Transformation Options, @option{--with-input}})."
+msgstr "Aquí primero definimos un procedimiento de reescritura que substituye @var{openssl} por @var{libressl}. Una vez hecho esto, lo usamos para definir una @dfn{variante} del paquete @var{git} que usa @var{libressl} en vez de @var{openssl}. Esto es exactamente lo que hace la opción de línea de órdenes @option{--with-input} (@pxref{Package Transformation Options, @option{--with-input}})."
+
+# FUZZY
+#. type: Plain text
+#: doc/guix.texi:7035
+msgid "The following variant of @code{package-input-rewriting} can match packages to be replaced by name rather than by identity."
+msgstr "La siguiente variante de @code{package-input-rewriting} puede encontrar paquetes a reemplazar por su nombre en vez de por su identidad."
+
+#. type: deffn
+#: doc/guix.texi:7036
+#, no-wrap
+msgid "{Scheme Procedure} package-input-rewriting/spec @var{replacements} [#:deep? #t]"
+msgstr "{Procedimiento Scheme} package-input-rewriting/spec @var{reemplazos} [#:deep? #t]"
+
+#. type: deffn
+#: doc/guix.texi:7043
+msgid "Return a procedure that, given a package, applies the given @var{replacements} to all the package graph, including implicit inputs unless @var{deep?} is false.  @var{replacements} is a list of spec/procedures pair; each spec is a package specification such as @code{\"gcc\"} or @code{\"guile@@2\"}, and each procedure takes a matching package and returns a replacement for that package."
+msgstr "Devuelve un procedimiento que, proporcionado un paquete, realiza los @var{reemplazos} proporcionados sobre todo el grafo del paquete, incluyendo las entradas implícitas a menos que @var{deep?} sea falso. @var{reemplazos} es una lista de pares de especificación y procedimiento; cada especificación es una especificación de paquete como @code{\"gcc\"} o @code{\"guile@@2\"}, y cada procedimiento toma un paquete que corresponda con la especificación y devuelve un reemplazo para dicho paquete."
+
+#. type: Plain text
+#: doc/guix.texi:7046
+msgid "The example above could be rewritten this way:"
+msgstr "El ejemplo previo podría ser reescrito de esta forma:"
+
+#. type: lisp
+#: doc/guix.texi:7051
+#, no-wrap
+msgid ""
+"(define libressl-instead-of-openssl\n"
+"  ;; Replace all the packages called \"openssl\" with LibreSSL.\n"
+"  (package-input-rewriting/spec `((\"openssl\" . ,(const libressl)))))\n"
+msgstr ""
+"(define libressl-en-vez-de-openssl\n"
+"  ;; Reemplaza todos los paquetes llamados \"openssl\" con LibreSSL.\n"
+"  (package-input-rewriting/spec `((\"openssl\" . ,(const libressl)))))\n"
+
+# FUZZY
+#. type: Plain text
+#: doc/guix.texi:7056
+msgid "The key difference here is that, this time, packages are matched by spec and not by identity.  In other words, any package in the graph that is called @code{openssl} will be replaced."
+msgstr "La diferencia principal en este caso es que, esta vez, los paquetes se buscan por su especificación y no por su identidad. En otras palabras, cualquier paquete en el grafo que se llame @code{openssl} será reemplazado."
+
+#. type: Plain text
+#: doc/guix.texi:7060
+msgid "A more generic procedure to rewrite a package dependency graph is @code{package-mapping}: it supports arbitrary changes to nodes in the graph."
+msgstr "Un procedimiento más genérico para reescribir el grafo de dependencias de un paquete es @code{package-mapping}: acepta cambios arbitrarios sobre nodos del grafo."
+
+#. type: deffn
+#: doc/guix.texi:7061
+#, no-wrap
+msgid "{Scheme Procedure} package-mapping @var{proc} [@var{cut?}] [#:deep? #f]"
+msgstr "{Scheme Procedure} package-mapping @var{proc} [@var{cortar?}] [#:deep? #f]"
+
+#. type: deffn
+#: doc/guix.texi:7066
+msgid "Return a procedure that, given a package, applies @var{proc} to all the packages depended on and returns the resulting package.  The procedure stops recursion when @var{cut?} returns true for a given package.  When @var{deep?} is true, @var{proc} is applied to implicit inputs as well."
+msgstr "Devuelve un procedimiento que, dado un paquete, aplica @var{proc} a todos los paquetes de los que depende y devuelve el paquete resultante. El procedimiento para la recursión cuando @var{cortar?} devuelve verdadero para un paquete dado. Cuando @var{deep?} tiene valor verdadero, @var{proc} se aplica también a las entradas implícitas."
+
+#. type: cindex
+#: doc/guix.texi:7072
 #, no-wrap
 msgid "build system"
 msgstr "sistema de construcción"
 
 #. type: Plain text
-#: doc/guix.texi:5939
+#: doc/guix.texi:7077
 msgid "Each package definition specifies a @dfn{build system} and arguments for that build system (@pxref{Defining Packages}).  This @code{build-system} field represents the build procedure of the package, as well as implicit dependencies of that build procedure."
 msgstr "Cada definición de paquete especifica un @dfn{sistema de construcción} y parámetros para dicho sistema de construcción (@pxref{Defining Packages}). Este campo @code{build-system} representa el procedimiento de construcción del paquete, así como las dependencias implícitas de dicho procedimiento de construcción."
 
 #. type: Plain text
-#: doc/guix.texi:5943
+#: doc/guix.texi:7081
 msgid "Build systems are @code{<build-system>} objects.  The interface to create and manipulate them is provided by the @code{(guix build-system)} module, and actual build systems are exported by specific modules."
 msgstr "Los sistemas de construcción son objetos @code{<build-system>}. La interfaz para crear y manipularlos se proporciona en el módulo @code{(guix build-system)}, y otros módulos exportan sistemas de construcción reales."
 
 #. type: cindex
-#: doc/guix.texi:5944
+#: doc/guix.texi:7082
 #, no-wrap
 msgid "bag (low-level package representation)"
 msgstr "bag (representación de paquetes de bajo nivel)"
 
 #. type: Plain text
-#: doc/guix.texi:5951
-msgid "Under the hood, build systems first compile package objects to @dfn{bags}.  A @dfn{bag} is like a package, but with less ornamentation---in other words, a bag is a lower-level representation of a package, which includes all the inputs of that package, including some that were implicitly added by the build system.  This intermediate representation is then compiled to a derivation (@pxref{Derivations})."
-msgstr "En su implementación, los sistemas de construcción primero compilan los objetos package a objetos @dfn{bag}. Una bolsa (traducción de @dfn{bag}) es como un paquete, pero con menos ornamentos---en otras palabras, una bolsa es una representación a un nivel más bajo de un paquete, que contiene todas las entradas de dicho paquete, incluyendo algunas implícitamente añadidas por el sistema de construcción. Esta representación intermedia se compila entonces a una derivación (@pxref{Derivations})."
+#: doc/guix.texi:7092
+msgid "Under the hood, build systems first compile package objects to @dfn{bags}.  A @dfn{bag} is like a package, but with less ornamentation---in other words, a bag is a lower-level representation of a package, which includes all the inputs of that package, including some that were implicitly added by the build system.  This intermediate representation is then compiled to a derivation (@pxref{Derivations}).  The @code{package-with-c-toolchain} is an example of a way to change the implicit inputs that a package's build system pulls in (@pxref{package Reference, @code{package-with-c-toolchain}})."
+msgstr "En su implementación, los sistemas de construcción primero compilan los objetos package a objetos @dfn{bag}. Una bolsa (traducción de @dfn{bag}) es como un paquete, pero con menos ornamentos---en otras palabras, una bolsa es una representación a un nivel más bajo de un paquete, que contiene todas las entradas de dicho paquete, incluyendo algunas implícitamente añadidas por el sistema de construcción. Esta representación intermedia se compila entonces a una derivación (@pxref{Derivations}).  EL procedimiento @code{package-with-c-toolchain} es un ejemplo de una forma de cambiar las entradas implícitas que el sistema de construcción del paquete incluye (@pxref{package Reference, @code{package-with-c-toolchain}})."
 
 #. type: Plain text
-#: doc/guix.texi:5959
+#: doc/guix.texi:7100
 msgid "Build systems accept an optional list of @dfn{arguments}.  In package definitions, these are passed @i{via} the @code{arguments} field (@pxref{Defining Packages}).  They are typically keyword arguments (@pxref{Optional Arguments, keyword arguments in Guile,, guile, GNU Guile Reference Manual}).  The value of these arguments is usually evaluated in the @dfn{build stratum}---i.e., by a Guile process launched by the daemon (@pxref{Derivations})."
 msgstr "Los sistemas de construcción aceptan una lista opcional de @dfn{parámetros}. En las definiciones de paquete, estos son pasados @i{vía} el campo @code{arguments} (@pxref{Defining Packages}). Normalmente son parámetros con palabras clave (@pxref{Optional Arguments, keyword arguments in Guile,, guile, GNU Guile Reference Manual}). El valor de estos parámetros normalmente se evalúa en la @dfn{capa de construcción}---es decir, por un proceso Guile lanzado por el daemon (@pxref{Derivations})."
 
 #. type: Plain text
-#: doc/guix.texi:5963
+#: doc/guix.texi:7104
 msgid "The main build system is @code{gnu-build-system}, which implements the standard build procedure for GNU and many other packages.  It is provided by the @code{(guix build-system gnu)} module."
 msgstr "El sistema de construcción principal es @var{gnu-build-system}, el cual implementa el procedimiento estándar de construcción para GNU y muchos otros paquetes. Se proporciona por el módulo @code{(guix build-system gnu)}."
 
 #. type: defvr
-#: doc/guix.texi:5964
+#: doc/guix.texi:7105
 #, no-wrap
 msgid "{Scheme Variable} gnu-build-system"
 msgstr "{Variable Scheme} gnu-build-system"
 
 #. type: defvr
-#: doc/guix.texi:5968
+#: doc/guix.texi:7109
 msgid "@code{gnu-build-system} represents the GNU Build System, and variants thereof (@pxref{Configuration, configuration and makefile conventions,, standards, GNU Coding Standards})."
 msgstr "@var{gnu-build-system} representa el sistema de construcción GNU y sus variantes (@pxref{Configuration, configuration and makefile conventions,, standards, GNU Coding Standards})."
 
 #. type: cindex
-#: doc/guix.texi:5969 doc/guix.texi:6768
+#: doc/guix.texi:7110 doc/guix.texi:7945 doc/guix.texi:8362
 #, no-wrap
 msgid "build phases"
 msgstr "fases de construcción"
 
 #. type: defvr
-#: doc/guix.texi:5976
+#: doc/guix.texi:7117
 msgid "In a nutshell, packages using it are configured, built, and installed with the usual @code{./configure && make && make check && make install} command sequence.  In practice, a few additional steps are often needed.  All these steps are split up in separate @dfn{phases}, notably@footnote{Please see the @code{(guix build gnu-build-system)} modules for more details about the build phases.}:"
 msgstr "En resumen, los paquetes que lo usan se configuran, construyen e instalan con la habitual secuencia de órdenes @code{./configure && make && make check && make install}. En la práctica, algunos pasos adicionales son necesarios habitualmente. Todos estos pasos se dividen en @dfn{fases} separadas, notablemente@footnote{Rogamos que se inspeccionen los módulos @code{(guix build gnu-build-system)} para más detalles sobre las fases de construcción}:"
 
 #. type: item
-#: doc/guix.texi:5978
+#: doc/guix.texi:7119
 #, no-wrap
 msgid "unpack"
 msgstr "unpack"
 
 #. type: table
-#: doc/guix.texi:5982
+#: doc/guix.texi:7123
 msgid "Unpack the source tarball, and change the current directory to the extracted source tree.  If the source is actually a directory, copy it to the build tree, and enter that directory."
 msgstr "Extrae el archivador tar de la fuente, y cambia el directorio actual al directorio recién extraído. Si la fuente es realmente un directorio, lo copia al árbol de construcción y entra en ese directorio."
 
 #. type: item
-#: doc/guix.texi:5983
+#: doc/guix.texi:7124
 #, no-wrap
 msgid "patch-source-shebangs"
 msgstr "patch-source-shebangs"
 
 #. type: table
-#: doc/guix.texi:5987
+#: doc/guix.texi:7128
 msgid "Patch shebangs encountered in source files so they refer to the right store file names.  For instance, this changes @code{#!/bin/sh} to @code{#!/gnu/store/@dots{}-bash-4.3/bin/sh}."
-msgstr "Sustituye secuencias ``#!'' encontradas al inicio de los ficheros de fuentes para que hagan referencia a los nombres correctos de ficheros del almacén. Por ejemplo, esto cambia @code{#!/bin/sh} por @code{#!/gnu/store/@dots{}-bash-4.3/bin/sh}."
+msgstr "Sustituye secuencias ``#!'' encontradas al inicio de los archivos de fuentes para que hagan referencia a los nombres correctos de archivos del almacén. Por ejemplo, esto cambia @code{#!/bin/sh} por @code{#!/gnu/store/@dots{}-bash-4.3/bin/sh}."
 
 #. type: item
-#: doc/guix.texi:5988 doc/guix.texi:6726 doc/guix.texi:6774
+#: doc/guix.texi:7129 doc/guix.texi:7902 doc/guix.texi:7951
 #, no-wrap
 msgid "configure"
 msgstr "configure"
 
 #. type: table
-#: doc/guix.texi:5992
-msgid "Run the @file{configure} script with a number of default options, such as @code{--prefix=/gnu/store/@dots{}}, as well as the options specified by the @code{#:configure-flags} argument."
-msgstr "Ejecuta el guión @file{configure} con algunas opciones predeterminadas, como @code{--prefix=/gnu/store/@dots{}}, así como las opciones especificadas por el parámetro @code{#:configure-flags}."
+#: doc/guix.texi:7133
+msgid "Run the @file{configure} script with a number of default options, such as @option{--prefix=/gnu/store/@dots{}}, as well as the options specified by the @code{#:configure-flags} argument."
+msgstr "Ejecuta el guión @file{configure} con algunas opciones predeterminadas, como @option{--prefix=/gnu/store/@dots{}}, así como las opciones especificadas por el parámetro @code{#:configure-flags}."
 
 #. type: item
-#: doc/guix.texi:5993 doc/guix.texi:6259 doc/guix.texi:6731 doc/guix.texi:6778
-#: doc/guix.texi:26698
+#: doc/guix.texi:7134 doc/guix.texi:7392 doc/guix.texi:7908 doc/guix.texi:7955
+#: doc/guix.texi:30825
 #, no-wrap
 msgid "build"
 msgstr "build"
 
 #. type: table
-#: doc/guix.texi:5997
+#: doc/guix.texi:7138
 msgid "Run @code{make} with the list of flags specified with @code{#:make-flags}.  If the @code{#:parallel-build?} argument is true (the default), build with @code{make -j}."
 msgstr "Ejecuta @code{make} con la lista de opciones especificadas en @code{#:make-flags}. Si el parámetro @code{#:parallel-build?} es verdadero (por defecto), construye con @code{make -j}."
 
 #. type: item
-#: doc/guix.texi:5998 doc/guix.texi:6269 doc/guix.texi:6735
+#: doc/guix.texi:7139 doc/guix.texi:7402 doc/guix.texi:7912
 #, no-wrap
 msgid "check"
 msgstr "check"
 
 #. type: table
-#: doc/guix.texi:6003
+#: doc/guix.texi:7144
 msgid "Run @code{make check}, or some other target specified with @code{#:test-target}, unless @code{#:tests? #f} is passed.  If the @code{#:parallel-tests?} argument is true (the default), run @code{make check -j}."
 msgstr "Ejecuta @code{make check}, u otro objetivo especificado con @code{#:test-target}, a menos que se pasase @code{#:tests? #f}. Si el parámetro @code{#:parallel-tests?} es verdadero (por defecto), ejecuta @code{make check -j}."
 
 #. type: item
-#: doc/guix.texi:6004 doc/guix.texi:6277 doc/guix.texi:6739 doc/guix.texi:6782
+#: doc/guix.texi:7145 doc/guix.texi:7410 doc/guix.texi:7916 doc/guix.texi:7959
 #, no-wrap
 msgid "install"
 msgstr "install"
 
 #. type: table
-#: doc/guix.texi:6006
+#: doc/guix.texi:7147
 msgid "Run @code{make install} with the flags listed in @code{#:make-flags}."
 msgstr "Ejecuta @code{make install} con las opciones enumeradas en @code{#:make-flags}."
 
 #. type: item
-#: doc/guix.texi:6007
+#: doc/guix.texi:7148
 #, no-wrap
 msgid "patch-shebangs"
 msgstr "patch-shebangs"
 
 #. type: table
-#: doc/guix.texi:6009
+#: doc/guix.texi:7150
 msgid "Patch shebangs on the installed executable files."
-msgstr "Sustituye las secuencias ``#!'' en los ficheros ejecutables instalados."
+msgstr "Sustituye las secuencias ``#!'' en los archivos ejecutables instalados."
 
 #. type: item
-#: doc/guix.texi:6010
+#: doc/guix.texi:7151
 #, no-wrap
 msgid "strip"
 msgstr "strip"
 
 #. type: table
-#: doc/guix.texi:6014
+#: doc/guix.texi:7155
 msgid "Strip debugging symbols from ELF files (unless @code{#:strip-binaries?} is false), copying them to the @code{debug} output when available (@pxref{Installing Debugging Files})."
-msgstr "Extrae los símbolos de depuración de ficheros ELF (a menos que el valor de @code{#:strip-binaries?} sea falso), y los copia a la salida @code{debug} cuando esté disponible (@pxref{Installing Debugging Files})."
+msgstr "Extrae los símbolos de depuración de archivos ELF (a menos que el valor de @code{#:strip-binaries?} sea falso), y los copia a la salida @code{debug} cuando esté disponible (@pxref{Installing Debugging Files})."
 
 #. type: vindex
-#: doc/guix.texi:6016
+#: doc/guix.texi:7157
 #, no-wrap
 msgid "%standard-phases"
 msgstr "%standard-phases"
 
 #. type: defvr
-#: doc/guix.texi:6021
+#: doc/guix.texi:7162
 msgid "The build-side module @code{(guix build gnu-build-system)} defines @code{%standard-phases} as the default list of build phases.  @code{%standard-phases} is a list of symbol/procedure pairs, where the procedure implements the actual phase."
 msgstr "El módulo del lado de construcción @code{(guix build gnu-build-system)} define @var{%standard-phases} como la lista predeterminada de fases de construcción. @var{%standard-phases} es una lista de pares símbolo/procedimiento, donde el procedimiento implementa realmente la fase."
 
 #. type: defvr
-#: doc/guix.texi:6024
-msgid "The list of phases used for a particular package can be changed with the @code{#:phases} parameter.  For instance, passing:"
-msgstr "La lista de fases usadas para un paquete particular se puede cambiar con el parámetro @code{#:phases}. Por ejemplo, pasar:"
-
-#. type: example
-#: doc/guix.texi:6027
-#, no-wrap
-msgid "#:phases (modify-phases %standard-phases (delete 'configure))\n"
-msgstr "#:phases (modify-phases %standard-phases (delete 'configure))\n"
-
-#. type: defvr
-#: doc/guix.texi:6031
-msgid "means that all the phases described above will be used, except the @code{configure} phase."
-msgstr "significa que todas las fases descritas anteriormente serán usadas, excepto la fase @code{configure}."
+#: doc/guix.texi:7165
+msgid "@xref{Build Phases}, for more info on build phases and ways to customize them."
+msgstr "@xref{Build Phases} para más información sobre las fases de construcción y formas de personalizarlas."
 
 #. type: defvr
-#: doc/guix.texi:6038
+#: doc/guix.texi:7172
 msgid "In addition, this build system ensures that the ``standard'' environment for GNU packages is available.  This includes tools such as GCC, libc, Coreutils, Bash, Make, Diffutils, grep, and sed (see the @code{(guix build-system gnu)} module for a complete list).  We call these the @dfn{implicit inputs} of a package, because package definitions do not have to mention them."
 msgstr "Además, este sistema de construcción asegura que el entorno ``estándar'' para paquetes GNU está disponible. Esto incluye herramientas como GCC, libc, Coreutils, Bash, Make, Diffutils, grep y sed (vea el módulo @code{(guix build system gnu)} para una lista completa). A estas las llamamos las @dfn{entradas implícitas} de un paquete, porque las definiciones de paquete no las mencionan."
 
 #. type: Plain text
-#: doc/guix.texi:6045
+#: doc/guix.texi:7179
 msgid "Other @code{<build-system>} objects are defined to support other conventions and tools used by free software packages.  They inherit most of @code{gnu-build-system}, and differ mainly in the set of inputs implicitly added to the build process, and in the list of phases executed.  Some of these build systems are listed below."
 msgstr "Hay definidos otros objetos @code{<build-system>} para implementar otras convenciones y herramientas usadas por paquetes de software libre. Heredan la mayor parte de @var{gnu-build-system}, y se diferencian principalmente en el conjunto de entradas implícitamente añadidas al proceso de construcción, y en la lista de fases ejecutadas. Algunos de estos sistemas de construcción se enumeran a continuación."
 
 #. type: defvr
-#: doc/guix.texi:6046
+#: doc/guix.texi:7180
 #, no-wrap
 msgid "{Scheme Variable} ant-build-system"
 msgstr "{Variable Scheme} ant-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6050
+#: doc/guix.texi:7184
 msgid "This variable is exported by @code{(guix build-system ant)}.  It implements the build procedure for Java packages that can be built with @url{https://ant.apache.org/, Ant build tool}."
 msgstr "@code{(guix build-system ant)} exporta esta variable. Implementa el procedimiento de construcción de paquetes Java que pueden construirse con @url{https://ant.apache.org/, la herramienta de construcción Ant}."
 
 #. type: defvr
-#: doc/guix.texi:6055
+#: doc/guix.texi:7189
 msgid "It adds both @code{ant} and the @dfn{Java Development Kit} (JDK) as provided by the @code{icedtea} package to the set of inputs.  Different packages can be specified with the @code{#:ant} and @code{#:jdk} parameters, respectively."
 msgstr "Añade tanto @code{ant} como el @dfn{kit de desarrollo Java} (JDK), que proporciona el paquete @code{icedtea}, al conjunto de entradas. Se pueden especificar paquetes diferentes con los parámetros @code{#:ant} y @code{#:jdk}, respectivamente."
 
 #. type: defvr
-#: doc/guix.texi:6061
+#: doc/guix.texi:7195
 msgid "When the original package does not provide a suitable Ant build file, the parameter @code{#:jar-name} can be used to generate a minimal Ant build file @file{build.xml} with tasks to build the specified jar archive.  In this case the parameter @code{#:source-dir} can be used to specify the source sub-directory, defaulting to ``src''."
-msgstr "Cuando el paquete original no proporciona un fichero Ant apropiado, el parámetro @code{#:jar-name} puede usarse para generar un fichero de construcción Ant @file{build.xml} mínimo con tareas para construir el archivo jar especificado. En este caso, el parámetro @code{#:source-dir} se puede usar para especificar el subdirectorio de fuentes, con ``src'' como valor predeterminado."
+msgstr "Cuando el paquete original no proporciona un archivo Ant apropiado, el parámetro @code{#:jar-name} puede usarse para generar un archivo de construcción Ant @file{build.xml} mínimo con tareas para construir el archivo jar especificado. En este caso, el parámetro @code{#:source-dir} se puede usar para especificar el subdirectorio de fuentes, con ``src'' como valor predeterminado."
 
 #. type: defvr
-#: doc/guix.texi:6069
+#: doc/guix.texi:7203
 msgid "The @code{#:main-class} parameter can be used with the minimal ant buildfile to specify the main class of the resulting jar.  This makes the jar file executable.  The @code{#:test-include} parameter can be used to specify the list of junit tests to run. It defaults to @code{(list \"**/*Test.java\")}.  The @code{#:test-exclude} can be used to disable some tests. It defaults to @code{(list \"**/Abstract*.java\")}, because abstract classes cannot be run as tests."
-msgstr "El parámetro @code{#:main-class} puede usarse con el fichero de construcción Ant mínimo para especificar la clase main del archivo jar producido. Esto permite ejecutar el archivo jar. El parámetro @code{#:test-include} puede usarse para especificar la lista de tests junit a ejecutar. El valor predeterminado es @code{(list \"**/*Test.java\")}. @code{#:test-exclude} puede usarse para desactivar algunas pruebas. Su valor predeterminado es @code{(list \"**/Abstract*.java\")} ya que las clases abstractas no se pueden ejecutar como pruebas."
+msgstr "El parámetro @code{#:main-class} puede usarse con el archivo de construcción Ant mínimo para especificar la clase main del archivo jar producido. Esto permite ejecutar el archivo jar. El parámetro @code{#:test-include} puede usarse para especificar la lista de tests junit a ejecutar. El valor predeterminado es @code{(list \"**/*Test.java\")}. @code{#:test-exclude} puede usarse para desactivar algunas pruebas. Su valor predeterminado es @code{(list \"**/Abstract*.java\")} ya que las clases abstractas no se pueden ejecutar como pruebas."
 
 #. type: defvr
-#: doc/guix.texi:6073
+#: doc/guix.texi:7207
 msgid "The parameter @code{#:build-target} can be used to specify the Ant task that should be run during the @code{build} phase.  By default the ``jar'' task will be run."
 msgstr "El parámetro @code{#:build-target} se puede usar para especificar la tarea Ant que debe ser ejecutada durante la fase @code{build}. Por defecto se ejecuta la tarea ``jar''."
 
 #. type: defvr
-#: doc/guix.texi:6076
+#: doc/guix.texi:7210
 #, no-wrap
 msgid "{Scheme Variable} android-ndk-build-system"
 msgstr "{Variable Scheme} android-ndk-build-system"
 
 #. type: cindex
-#: doc/guix.texi:6077
+#: doc/guix.texi:7211
 #, no-wrap
 msgid "Android distribution"
 msgstr "distribución Android"
 
 #. type: cindex
-#: doc/guix.texi:6078
+#: doc/guix.texi:7212
 #, no-wrap
 msgid "Android NDK build system"
 msgstr "Sistema de construcción NDK de Android"
 
 #. type: defvr
-#: doc/guix.texi:6082
+#: doc/guix.texi:7216
 msgid "This variable is exported by @code{(guix build-system android-ndk)}.  It implements a build procedure for Android NDK (native development kit)  packages using a Guix-specific build process."
 msgstr "Esta variable es exportada por @code{(guix build-system android-ndk)}. Implementa un procedimiento de construcción para paquetes Android NDK (kit de desarrollo nativo) usando un proceso de construcción específico de Guix."
 
 #. type: defvr
-#: doc/guix.texi:6086
-msgid "The build system assumes that packages install their public interface (header) files to the subdirectory \"include\" of the \"out\" output and their libraries to the subdirectory \"lib\" of the \"out\" output."
-msgstr "El sistema de construcción asume que los paquetes instalan sus ficheros de interfaz pública (cabeceras) en el subdirectorio \"include\" de la salida \"out\" y sus bibliotecas en el subdirectorio \"lib\" de la salida \"out\"."
+#: doc/guix.texi:7220
+msgid "The build system assumes that packages install their public interface (header) files to the subdirectory @file{include} of the @code{out} output and their libraries to the subdirectory @file{lib} the @code{out} output."
+msgstr "El sistema de construcción asume que los paquetes instalan sus archivos de interfaz pública (cabeceras) en el subdirectorio @file{include} de la salida @code{out} y sus bibliotecas en el subdirectorio @file{lib} de la salida @code{out}\"."
 
 # FUZZY
 #. type: defvr
-#: doc/guix.texi:6089
+#: doc/guix.texi:7223
 msgid "It's also assumed that the union of all the dependencies of a package has no conflicting files."
-msgstr "También se asume que la unión de todas las dependencias de un paquete no tiene ficheros en conflicto."
+msgstr "También se asume que la unión de todas las dependencias de un paquete no tiene archivos en conflicto."
 
 # FUZZY
 #. type: defvr
-#: doc/guix.texi:6092
+#: doc/guix.texi:7226
 msgid "For the time being, cross-compilation is not supported - so right now the libraries and header files are assumed to be host tools."
-msgstr "En este momento no funciona la compilación cruzada - por lo que las bibliotecas y los ficheros de cabecera se asumen que son locales."
+msgstr "En este momento no funciona la compilación cruzada - por lo que las bibliotecas y los archivos de cabecera se asumen que son locales."
 
 #. type: defvr
-#: doc/guix.texi:6095
+#: doc/guix.texi:7229
 #, no-wrap
 msgid "{Scheme Variable} asdf-build-system/source"
 msgstr "{Variable Scheme} asdf-build-system/source"
 
 #. type: defvrx
-#: doc/guix.texi:6096
+#: doc/guix.texi:7230
 #, no-wrap
 msgid "{Scheme Variable} asdf-build-system/sbcl"
 msgstr "{Variable Scheme} asdf-build-system/sbcl"
 
 #. type: defvrx
-#: doc/guix.texi:6097
+#: doc/guix.texi:7231
 #, no-wrap
 msgid "{Scheme Variable} asdf-build-system/ecl"
 msgstr "{Variable Scheme} asdf-build-system/ecl"
 
 #. type: defvr
-#: doc/guix.texi:6103
+#: doc/guix.texi:7237
 msgid "These variables, exported by @code{(guix build-system asdf)}, implement build procedures for Common Lisp packages using @url{https://common-lisp.net/project/asdf/, ``ASDF''}. ASDF is a system definition facility for Common Lisp programs and libraries."
 msgstr "Estas variables, exportadas por @code{(guix build-system asdf)}, implementan procedimientos de construcción para paquetes Common Lisp usando @url{https://common-lisp.net/project/asdf, ``ASDF'''}. ASDF es una utilidad de definición de sistema para programas y bibliotecas Common Lisp."
 
 #. type: defvr
-#: doc/guix.texi:6110
+#: doc/guix.texi:7244
 msgid "The @code{asdf-build-system/source} system installs the packages in source form, and can be loaded using any common lisp implementation, via ASDF.  The others, such as @code{asdf-build-system/sbcl}, install binary systems in the format which a particular implementation understands.  These build systems can also be used to produce executable programs, or lisp images which contain a set of packages pre-loaded."
 msgstr "El sistema @code{asdf-build-system/source} instala los paquetes en forma de fuentes, y puede ser cargado usando cualquier implementación common lisp, vía ASDF. Los otros, como @code{asdf-build-system/sbcl}, instalan sistemas binarios en el formato entendido por una implementación particular. Estos sistemas de construcción también pueden usarse para producir programas ejecutables, o imágenes lisp que contengan un conjunto precargado de paquetes."
 
 #. type: defvr
-#: doc/guix.texi:6114
+#: doc/guix.texi:7248
 msgid "The build system uses naming conventions.  For binary packages, the package name should be prefixed with the lisp implementation, such as @code{sbcl-} for @code{asdf-build-system/sbcl}."
 msgstr "El sistema de construcción usa convenciones de nombres. Para paquetes binarios, el paquete debería estar prefijado con la implementación lisp, como @code{sbcl-} para @code{asdf-build-system/sbcl}."
 
 #. type: defvr
-#: doc/guix.texi:6118
+#: doc/guix.texi:7252
 msgid "Additionally, the corresponding source package should be labeled using the same convention as python packages (see @ref{Python Modules}), using the @code{cl-} prefix."
 msgstr "Adicionalmente, el paquete de fuentes correspondiente debe etiquetarse usando la misma convención que los paquetes python (vea @ref{Python Modules}), usando el prefijo @code{cl-}."
 
 # FUZZY
 #. type: defvr
-#: doc/guix.texi:6123
+#: doc/guix.texi:7257
 msgid "For binary packages, each system should be defined as a Guix package.  If one package @code{origin} contains several systems, package variants can be created in order to build all the systems.  Source packages, which use @code{asdf-build-system/source}, may contain several systems."
 msgstr "Para paquetes binarios, cada sistema debe definirse como un paquete Guix. Si el campo @code{origin} de un paquete contiene varios sistemas, las variaciones del paquete pueden crearse para construir todos los sistemas. Los paquetes de fuentes, los cuales usan @code{asdf-build-system/source}, pueden contener varios sistemas."
 
 #. type: defvr
-#: doc/guix.texi:6130
+#: doc/guix.texi:7264
 msgid "In order to create executable programs and images, the build-side procedures @code{build-program} and @code{build-image} can be used.  They should be called in a build phase after the @code{create-symlinks} phase, so that the system which was just built can be used within the resulting image.  @code{build-program} requires a list of Common Lisp expressions to be passed as the @code{#:entry-program} argument."
 msgstr "Para crear programa ejecutables e imágenes, se pueden usar los procedimientos del lado de construcción @code{build-program} y @code{build-image}. Deben llamarse en la fase de construcción después de la fase @code{create-symlinks}, de modo que el sistema recién construido pueda ser usado dentro de la imagen resultante. @code{build-program} necesita una lista de expresiones Common Lisp a través del parámetro @code{#:entry-prgogram}."
 
 #. type: defvr
-#: doc/guix.texi:6139
-msgid "If the system is not defined within its own @code{.asd} file of the same name, then the @code{#:asd-file} parameter should be used to specify which file the system is defined in.  Furthermore, if the package defines a system for its tests in a separate file, it will be loaded before the tests are run if it is specified by the @code{#:test-asd-file} parameter.  If it is not set, the files @code{<system>-tests.asd}, @code{<system>-test.asd}, @code{tests.asd}, and @code{test.asd} will be tried if they exist."
-msgstr "Si el sistema no está definido en su propio fichero @code{.asd} del mismo nombre, entonces se debe usar el parámetro @code{#:asd-file} para especificar el fichero en el que se define el sistema. Más allá, si el paquete define un sistema para sus pruebas en su fichero separado, se cargará antes de la ejecución de las pruebas si se especifica el parámetro @code{#:test-asd-file}. Si no se especifica, se probarán si existen los ficheros @code{<sistema>-tests.asd}, @code{<system>-test.asd}, @code{tests.asd} y @code{test.asd}."
+#: doc/guix.texi:7273
+msgid "If the system is not defined within its own @file{.asd} file of the same name, then the @code{#:asd-file} parameter should be used to specify which file the system is defined in.  Furthermore, if the package defines a system for its tests in a separate file, it will be loaded before the tests are run if it is specified by the @code{#:test-asd-file} parameter.  If it is not set, the files @code{<system>-tests.asd}, @code{<system>-test.asd}, @code{tests.asd}, and @code{test.asd} will be tried if they exist."
+msgstr "Si el sistema no está definido en su propio archivo @file{.asd} del mismo nombre, entonces se debe usar el parámetro @code{#:asd-file} para especificar el archivo en el que se define el sistema. Más allá, si el paquete define un sistema para sus pruebas en su archivo separado, se cargará antes de la ejecución de las pruebas si se especifica el parámetro @code{#:test-asd-file}. Si no se especifica, se probarán los archivos @code{<sistema>-tests.asd}, @code{<system>-test.asd}, @code{tests.asd} y @code{test.asd} en caso de existir."
 
 #. type: defvr
-#: doc/guix.texi:6143
+#: doc/guix.texi:7277
 msgid "If for some reason the package must be named in a different way than the naming conventions suggest, the @code{#:asd-system-name} parameter can be used to specify the name of the system."
 msgstr "Si por alguna razón el paquete debe ser nombrado de una forma diferente a la sugerida por las convenciones de nombres, el parámetro @code{#:asd-system-name} puede usarse para especificar el nombre del sistema."
 
 #. type: defvr
-#: doc/guix.texi:6146
+#: doc/guix.texi:7280
 #, no-wrap
 msgid "{Scheme Variable} cargo-build-system"
 msgstr "{Variable Scheme} cargo-build-system"
 
 #. type: cindex
-#: doc/guix.texi:6147
+#: doc/guix.texi:7281
 #, no-wrap
 msgid "Rust programming language"
 msgstr "lenguaje de programación Rust"
 
 #. type: cindex
-#: doc/guix.texi:6148
+#: doc/guix.texi:7282
 #, no-wrap
 msgid "Cargo (Rust build system)"
 msgstr "Cargo (sistema de construcción de Rust)"
 
 #. type: defvr
-#: doc/guix.texi:6152
+#: doc/guix.texi:7286
 msgid "This variable is exported by @code{(guix build-system cargo)}.  It supports builds of packages using Cargo, the build tool of the @uref{https://www.rust-lang.org, Rust programming language}."
 msgstr "Esta variable se exporta en @code{(guix build-system cargo)}. Permite la construcción de paquetes usando Cargo, la herramienta de construcción del @uref{https://www.rust-lang.org, lenguaje de programación Rust}."
 
 #. type: defvr
-#: doc/guix.texi:6155
+#: doc/guix.texi:7289
 msgid "It adds @code{rustc} and @code{cargo} to the set of inputs.  A different Rust package can be specified with the @code{#:rust} parameter."
 msgstr "Automáticamente añade @code{rustc} y @code{cargo} al conjunto de entradas. Se puede especificar el uso de un paquete Rust distinto con el parámetro @code{#:rust}."
 
 #. type: defvr
-#: doc/guix.texi:6163
+#: doc/guix.texi:7297
 msgid "Regular cargo dependencies should be added to the package definition via the @code{#:cargo-inputs} parameter as a list of name and spec pairs, where the spec can be a package or a source definition.  Note that the spec must evaluate to a path to a gzipped tarball which includes a @code{Cargo.toml} file at its root, or it will be ignored.  Similarly, cargo dev-dependencies should be added to the package definition via the @code{#:cargo-development-inputs} parameter."
-msgstr "Las dependencias normales de cargo se añadirán a la definición del paquete a través del parámetro @code{#:cargo-inputs} como una lista de pares de nombre y especificación, donde la especificación puede ser un paquete o una definición de fuentes @code{source}. Tenga en cuenta que la especificación debe evaluar a una ruta o a un archivo comprimido con gzip que incluya un fichero @code{Cargo.toml} en su raíz, o será ignorado. De manera parecida, las dependencias de desarrollo de cargo deben añadirse a la definición del paquete a través del parámetro @code{#:cargo-development-inputs}."
+msgstr "Las dependencias normales de cargo se añadirán a la definición del paquete a través del parámetro @code{#:cargo-inputs} como una lista de pares de nombre y especificación, donde la especificación puede ser un paquete o una definición de fuentes @code{source}. Tenga en cuenta que la especificación debe evaluar a una ruta o a un archivo comprimido con gzip que incluya un archivo @code{Cargo.toml} en su raíz, o será ignorado. De manera parecida, las dependencias de desarrollo de cargo deben añadirse a la definición del paquete a través del parámetro @code{#:cargo-development-inputs}."
 
 # FUZZY FUZZY
 # TODO (MAAV): Comprobar crate...
 # Informar de "any crate the binaries"
 #. type: defvr
-#: doc/guix.texi:6170
-msgid "In its @code{configure} phase, this build system will make any source inputs specified in the @code{#:cargo-inputs} and @code{#:cargo-development-inputs} parameters available to cargo.  It will also remove an included @code{Cargo.lock} file to be recreated by @code{cargo} during the @code{build} phase.  The @code{install} phase installs any crate the binaries if they are defined by the crate."
-msgstr "En su fase @code{configure}, este sistema de construcción hará que cualquier fuente de entrada especificada en los parámetros @code{#:cargo-inputs} y @code{#:cargo-development-inputs} esté disponible para cargo. También borrará cualquier fichero @code{Cargo.lock} incluido para que sea recreado por @code{cargo} durante la fase @code{build} de construcción. La fase @code{install} instala los binarios que el ``crate'' haya definido."
+#: doc/guix.texi:7304
+msgid "In its @code{configure} phase, this build system will make any source inputs specified in the @code{#:cargo-inputs} and @code{#:cargo-development-inputs} parameters available to cargo.  It will also remove an included @code{Cargo.lock} file to be recreated by @code{cargo} during the @code{build} phase.  The @code{install} phase installs the binaries defined by the crate."
+msgstr "En su fase @code{configure}, este sistema de construcción hará que cualquier fuente de entrada especificada en los parámetros @code{#:cargo-inputs} y @code{#:cargo-development-inputs} esté disponible para cargo. También borrará cualquier archivo @code{Cargo.lock} incluido para que sea recreado por @code{cargo} durante la fase @code{build} de construcción. La fase @code{install} instala los binarios que el ``crate'' haya definido."
 
 #. type: defvr
-#: doc/guix.texi:6173
+#: doc/guix.texi:7307
 #, no-wrap
 msgid "{Scheme Variable} copy-build-system"
 msgstr "{Variable Scheme} copy-build-system"
 
-#. type: cindex
-#: doc/guix.texi:6174
-#, no-wrap
-msgid "(copy build system)"
-msgstr "(sistema de construcción mediante copia)"
-
 # FUZZY FUZZY
 #. type: defvr
-#: doc/guix.texi:6178
+#: doc/guix.texi:7311
 msgid "This variable is exported by @code{(guix build-system copy)}.  It supports builds of simple packages that don't require much compiling, mostly just moving files around."
-msgstr "Esta variable se exporta en @code{(guix build-system copy)}. Permite la construcción de paquetes simples que no necesitan mucha compilación y en su mayor parte dependen únicamente de la copia de ficheros en distintas rutas."
+msgstr "Esta variable se exporta en @code{(guix build-system copy)}. Permite la construcción de paquetes simples que no necesitan mucha compilación y en su mayor parte dependen únicamente de la copia de archivos en distintas rutas."
 
 # FUZZY
 #. type: defvr
-#: doc/guix.texi:6183
+#: doc/guix.texi:7316
 msgid "It adds much of the @code{gnu-build-system} packages to the set of inputs.  Because of this, the @code{copy-build-system} does not require all the boilerplate code often needed for the @code{trivial-build-system}."
 msgstr "Añade gran parte de los paquetes de @code{gnu-build-system} al conjunto de entradas. Por esta razón, @code{copy-build-system} no necesita toda la verborrea que habitualmente requiere @code{trivial-build-system}."
 
 #. type: defvr
-#: doc/guix.texi:6188
+#: doc/guix.texi:7321
 msgid "To further simplify the file installation process, an @code{#:install-plan} argument is exposed to let the packager specify which files go where.  The install plan is a list of @code{(@var{source} @var{target} [@var{filters}])}.  @var{filters} are optional."
-msgstr "Para simplificar más aún el proceso de instalación de ficheros, se expone un parámetro @code{#:install-plan} para permitir a quien genera el paquete especificar dónde van los distintos ficheros. El plan de instalación (@code{#:install-plan}) es una lista de @code{(@var{fuente} @var{destino} [@var{filtro}])}. Los @var{filtro}s son opcionales."
+msgstr "Para simplificar más aún el proceso de instalación de archivos, se expone un parámetro @code{#:install-plan} para permitir a quien genera el paquete especificar dónde van los distintos archivos. El plan de instalación (@code{#:install-plan}) es una lista de @code{(@var{fuente} @var{destino} [@var{filtro}])}. Los @var{filtro}s son opcionales."
 
 #. type: item
-#: doc/guix.texi:6190
+#: doc/guix.texi:7323
 #, no-wrap
 msgid "When @var{source} matches a file or directory without trailing slash, install it to @var{target}."
-msgstr "Cuando @var{fuente} corresponde con un fichero o un directorio sin la barra final, se instala en @var{destino}."
+msgstr "Cuando @var{fuente} corresponde con un archivo o un directorio sin la barra final, se instala en @var{destino}."
 
 #. type: item
-#: doc/guix.texi:6192
+#: doc/guix.texi:7325
 #, no-wrap
 msgid "If @var{target} has a trailing slash, install @var{source} basename beneath @var{target}."
-msgstr "Si @var{destino} contiene una barra al final, @var{fuente} se instala con su nombre de fichero en la ruta @var{destino}."
+msgstr "Si @var{destino} contiene una barra al final, @var{fuente} se instala con su nombre de archivo en la ruta @var{destino}."
 
 #. type: item
-#: doc/guix.texi:6193
+#: doc/guix.texi:7326
 #, no-wrap
 msgid "Otherwise install @var{source} as @var{target}."
 msgstr "En otro caso se instala @var{fuente} como @var{destino}."
 
 #. type: item
-#: doc/guix.texi:6196
+#: doc/guix.texi:7329
 #, no-wrap
 msgid "When @var{source} is a directory with a trailing slash, or when @var{filters} are used,"
 msgstr "Cuando @var{fuente} es un directorio terminado en una barra, o cuando se usa algún @var{filtro},"
 
 #. type: itemize
-#: doc/guix.texi:6199
+#: doc/guix.texi:7332
 msgid "the trailing slash of @var{target} is implied with the same meaning as above."
 msgstr "la barra al final de @var{destino} tiene el significado que se describió anteriormente."
 
 #. type: item
-#: doc/guix.texi:6200
+#: doc/guix.texi:7333
 #, no-wrap
 msgid "Without @var{filters}, install the full @var{source} @emph{content} to @var{target}."
 msgstr "Sin @var{filtros}, instala todo el @emph{contenido} de @var{fuente} en @var{destino}."
 
 #. type: item
-#: doc/guix.texi:6201
+#: doc/guix.texi:7334
 #, no-wrap
 msgid "With @var{filters} among @code{#:include}, @code{#:include-regexp}, @code{#:exclude},"
 msgstr "Cuando @var{filtro} contiene @code{#:include}, @code{#:include-regexp}, @code{#:exclude},"
 
 #. type: itemize
-#: doc/guix.texi:6204
+#: doc/guix.texi:7337
 msgid "@code{#:exclude-regexp}, only select files are installed depending on the filters.  Each filters is specified by a list of strings."
-msgstr "@code{#:exclude-regexp}, únicamente se seleccionan los ficheros instalados dependiendo de los filtros. Cada filtro se especifica como una lista de cadenas."
+msgstr "@code{#:exclude-regexp}, únicamente se seleccionan los archivos instalados dependiendo de los filtros. Cada filtro se especifica como una lista de cadenas."
 
 #. type: item
-#: doc/guix.texi:6205
+#: doc/guix.texi:7338
 #, no-wrap
 msgid "With @code{#:include}, install all the files which the path suffix matches"
-msgstr "Con @code{#:include}, se instalan todos los ficheros de la ruta cuyo sufijo"
+msgstr "Con @code{#:include}, se instalan todos los archivos de la ruta cuyo sufijo"
 
 #. type: itemize
-#: doc/guix.texi:6207
+#: doc/guix.texi:7340
 msgid "at least one of the elements in the given list."
 msgstr "corresponda con al menos uno de los elementos de la lista proporcionada."
 
 #. type: item
-#: doc/guix.texi:6207
+#: doc/guix.texi:7340
 #, no-wrap
 msgid "With @code{#:include-regexp}, install all the files which the"
-msgstr "Con @code{#:include-regexp} se instalan todos los ficheros cuyas"
+msgstr "Con @code{#:include-regexp} se instalan todos los archivos cuyas"
 
 # FUZZY FUZZY
 #. type: itemize
-#: doc/guix.texi:6210
+#: doc/guix.texi:7343
 msgid "subpaths match at least one of the regular expressions in the given list."
 msgstr "rutas relativas correspondan con al menos una de las expresiones regulares en la lista proporcionada."
 
 #. type: item
-#: doc/guix.texi:6210
+#: doc/guix.texi:7343
 #, no-wrap
 msgid "The @code{#:exclude} and @code{#:exclude-regexp} filters"
 msgstr "Los filtros @code{#:exclude} y @code{#:exclude-regexp}"
 
 # FUZZY FUZZY FUZZY FUZZY
 #. type: itemize
-#: doc/guix.texi:6215
+#: doc/guix.texi:7348
 msgid "are the complement of their inclusion counterpart.  Without @code{#:include} flags, install all files but those matching the exclusion filters.  If both inclusions and exclusions are specified, the exclusions are done on top of the inclusions."
-msgstr "son complementarios a sus equivalentes inclusivos. Sin opciones @code{#:include}, se instalan todos los ficheros excepto aquellos que correspondan con los filtros de exclusión. Si se proporcionan tanto inclusiones como exclusiones, las exclusiones tienen efecto sobre los resultados de las inclusiones."
+msgstr "son complementarios a sus equivalentes inclusivos. Sin opciones @code{#:include}, se instalan todos los archivos excepto aquellos que correspondan con los filtros de exclusión. Si se proporcionan tanto inclusiones como exclusiones, las exclusiones tienen efecto sobre los resultados de las inclusiones."
 
 #. type: itemize
-#: doc/guix.texi:6219
+#: doc/guix.texi:7352
 msgid "In all cases, the paths relative to @var{source} are preserved within @var{target}."
 msgstr "En todos los casos, las rutas relativas a @var{fuente} se preservan dentro de @var{destino}."
 
 #. type: defvr
-#: doc/guix.texi:6222
+#: doc/guix.texi:7355
 msgid "Examples:"
 msgstr "Ejemplos:"
 
 #. type: item
-#: doc/guix.texi:6224
+#: doc/guix.texi:7357
 #, no-wrap
 msgid "@code{(\"foo/bar\" \"share/my-app/\")}: Install @file{bar} to @file{share/my-app/bar}."
 msgstr "@code{(\"foo/bar\" \"share/my-app/\")}: Instala @file{bar} en @file{share/my-app/bar}."
 
 #. type: item
-#: doc/guix.texi:6225
+#: doc/guix.texi:7358
 #, no-wrap
 msgid "@code{(\"foo/bar\" \"share/my-app/baz\")}: Install @file{bar} to @file{share/my-app/baz}."
 msgstr "@code{(\"foo/bar\" \"share/my-app/baz\")}: Instala @file{bar} en @file{share/my-app/baz}."
 
 #. type: item
-#: doc/guix.texi:6226
+#: doc/guix.texi:7359
 #, no-wrap
 msgid "@code{(\"foo/\" \"share/my-app\")}: Install the content of @file{foo} inside @file{share/my-app},"
 msgstr "@code{(\"foo/\" \"share/my-app\")}: Instala el contenido de @file{foo} dentro de @file{share/my-app},"
 
 #. type: itemize
-#: doc/guix.texi:6228
+#: doc/guix.texi:7361
 msgid "e.g., install @file{foo/sub/file} to @file{share/my-app/sub/file}."
 msgstr "por ejemplo, instala @file{foo/sub/file} en @file{share/my-app/sub/file}."
 
 #. type: item
-#: doc/guix.texi:6228
+#: doc/guix.texi:7361
 #, no-wrap
 msgid "@code{(\"foo/\" \"share/my-app\" #:include (\"sub/file\"))}: Install only @file{foo/sub/file} to"
 msgstr "@code{(\"foo/\" \"share/my-app\" #:include (\"sub/file\"))}: Instala únicamente @file{foo/sub/file} en"
 
 #. type: itemize
-#: doc/guix.texi:6230
+#: doc/guix.texi:7363
 msgid "@file{share/my-app/sub/file}."
 msgstr "@file{share/my-app/sub/file}."
 
 #. type: item
-#: doc/guix.texi:6230
+#: doc/guix.texi:7363
 #, no-wrap
 msgid "@code{(\"foo/sub\" \"share/my-app\" #:include (\"file\"))}: Install @file{foo/sub/file} to"
 msgstr "@code{(\"foo/sub\" \"share/my-app\" #:include (\"file\"))}: Instala @file{foo/sub/file} en"
 
 #. type: itemize
-#: doc/guix.texi:6232
+#: doc/guix.texi:7365
 msgid "@file{share/my-app/file}."
 msgstr "@file{share/my-app/file}."
 
 #. type: cindex
-#: doc/guix.texi:6236
+#: doc/guix.texi:7369
 #, no-wrap
 msgid "Clojure (programming language)"
 msgstr "Clojure (lenguaje de programación)"
 
 #. type: cindex
-#: doc/guix.texi:6237
+#: doc/guix.texi:7370
 #, no-wrap
 msgid "simple Clojure build system"
 msgstr "sistema de construcción simple de Clojure"
 
 #. type: defvr
-#: doc/guix.texi:6238
+#: doc/guix.texi:7371
 #, no-wrap
 msgid "{Scheme Variable} clojure-build-system"
 msgstr "{Variable Scheme} clojure-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6243
+#: doc/guix.texi:7376
 msgid "This variable is exported by @code{(guix build-system clojure)}.  It implements a simple build procedure for @uref{https://clojure.org/, Clojure} packages using plain old @code{compile} in Clojure.  Cross-compilation is not supported yet."
 msgstr "Esta variable se exporta en @code{(guix build-system clojure)}. Implementa un procedimiento de construcción simple para paquetes @uref{https://clojure.org/, Clojure} usando directamente @code{compile} en Clojure. La compilación cruzada no está disponible todavía."
 
 #. type: defvr
-#: doc/guix.texi:6247
+#: doc/guix.texi:7380
 msgid "It adds @code{clojure}, @code{icedtea} and @code{zip} to the set of inputs.  Different packages can be specified with the @code{#:clojure}, @code{#:jdk} and @code{#:zip} parameters, respectively."
 msgstr "Añade @code{clojure}, @code{icedtea} y @code{zip} al conjunto de entradas. Se pueden especificar paquetes diferentes con los parámetros @code{#:clojure}, @code{#:jdk} y @code{#:zip}, respectivamente."
 
 #. type: defvr
-#: doc/guix.texi:6253
+#: doc/guix.texi:7386
 msgid "A list of source directories, test directories and jar names can be specified with the @code{#:source-dirs}, @code{#:test-dirs} and @code{#:jar-names} parameters, respectively.  Compile directory and main class can be specified with the @code{#:compile-dir} and @code{#:main-class} parameters, respectively.  Other parameters are documented below."
 msgstr "Una lista de directorios de fuentes, directorios de pruebas y nombres de jar pueden especificarse con los parámetros @code{#:source-dirs}, @code{#:test-dirs} y @code{#:jar-names}, respectivamente. El directorio de compilación y la clase principal pueden especificarse con los parámetros @code{#:compile-dir} y @code{#:main-class}, respectivamente. Otros parámetros se documentan más adelante."
 
 #. type: defvr
-#: doc/guix.texi:6256
+#: doc/guix.texi:7389
 msgid "This build system is an extension of @code{ant-build-system}, but with the following phases changed:"
 msgstr "Este sistema de construcción es una extensión de @var{ant-build-system}, pero con las siguientes fases cambiadas:"
 
 #. type: table
-#: doc/guix.texi:6268
+#: doc/guix.texi:7401
 msgid "This phase calls @code{compile} in Clojure to compile source files and runs @command{jar} to create jars from both source files and compiled files according to the include list and exclude list specified in @code{#:aot-include} and @code{#:aot-exclude}, respectively.  The exclude list has priority over the include list.  These lists consist of symbols representing Clojure libraries or the special keyword @code{#:all} representing all Clojure libraries found under the source directories.  The parameter @code{#:omit-source?} decides if source should be included into the jars."
-msgstr "Esta fase llama @code{compile} en Clojure para compilar los ficheros de fuentes y ejecuta @command{jar} para crear archivadores jar tanto de ficheros de fuentes y compilados de acuerdo con las listas de inclusión y exclusión especificadas en @code{#:aot-include} y @code{#:aot-exclude}, respectivamente. La lista de exclusión tiene prioridad sobre la de inclusión. Estas listas consisten en símbolos que representan bibliotecas Clojure o la palabra clave especial @code{#:all} que representa todas las bibliotecas encontradas en los directorios de fuentes. El parámetro @code{#:omit-source?} determina si las fuentes deben incluirse en los archivadores jar."
+msgstr "Esta fase llama @code{compile} en Clojure para compilar los archivos de fuentes y ejecuta @command{jar} para crear archivadores jar tanto de archivos de fuentes y compilados de acuerdo con las listas de inclusión y exclusión especificadas en @code{#:aot-include} y @code{#:aot-exclude}, respectivamente. La lista de exclusión tiene prioridad sobre la de inclusión. Estas listas consisten en símbolos que representan bibliotecas Clojure o la palabra clave especial @code{#:all} que representa todas las bibliotecas encontradas en los directorios de fuentes. El parámetro @code{#:omit-source?} determina si las fuentes deben incluirse en los archivadores jar."
 
 #. type: table
-#: doc/guix.texi:6276
+#: doc/guix.texi:7409
 msgid "This phase runs tests according to the include list and exclude list specified in @code{#:test-include} and @code{#:test-exclude}, respectively.  Their meanings are analogous to that of @code{#:aot-include} and @code{#:aot-exclude}, except that the special keyword @code{#:all} now stands for all Clojure libraries found under the test directories.  The parameter @code{#:tests?} decides if tests should be run."
 msgstr "Esta fase ejecuta las pruebas de acuerdo a las listas de inclusión y exclusión especificadas en @code{#:test-include} y @code{#:test-exclude}, respectivamente. Sus significados son análogos a los de @code{#:aot-include} y @code{#:aot-exclude}, excepto que la palabra clave especial @code{#:all} designa ahora a todas las bibliotecas Clojure encontradas en los directorios de pruebas. El parámetro @code{#:tests?} determina si se deben ejecutar las pruebas."
 
 #. type: table
-#: doc/guix.texi:6279
+#: doc/guix.texi:7412
 msgid "This phase installs all jars built previously."
 msgstr "Esta fase instala todos los archivadores jar construidos previamente."
 
 #. type: defvr
-#: doc/guix.texi:6282
+#: doc/guix.texi:7415
 msgid "Apart from the above, this build system also contains an additional phase:"
 msgstr "Además de las previas, este sistema de construcción contiene una fase adicional:"
 
 #. type: item
-#: doc/guix.texi:6285
+#: doc/guix.texi:7418
 #, no-wrap
 msgid "install-doc"
 msgstr "install-doc"
 
 #. type: table
-#: doc/guix.texi:6290
+#: doc/guix.texi:7423
 msgid "This phase installs all top-level files with base name matching @code{%doc-regex}.  A different regex can be specified with the @code{#:doc-regex} parameter.  All files (recursively) inside the documentation directories specified in @code{#:doc-dirs} are installed as well."
-msgstr "Esta fase instala todos los ficheros de nivel superior con un nombre que corresponda con @var{%doc-regex}. Una expresión regular diferente se puede especificar con el parámetro @code{#:doc-regex}. Todos los ficheros dentro (recursivamente) de los directorios de documentación especificados en @code{#:doc-dirs} se instalan también."
+msgstr "Esta fase instala todos los archivos de nivel superior con un nombre que corresponda con @var{%doc-regex}. Una expresión regular diferente se puede especificar con el parámetro @code{#:doc-regex}. Todos los archivos dentro (recursivamente) de los directorios de documentación especificados en @code{#:doc-dirs} se instalan también."
 
 #. type: defvr
-#: doc/guix.texi:6293
+#: doc/guix.texi:7426
 #, no-wrap
 msgid "{Scheme Variable} cmake-build-system"
 msgstr "{Variable Scheme} cmake-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6297
+#: doc/guix.texi:7430
 msgid "This variable is exported by @code{(guix build-system cmake)}.  It implements the build procedure for packages using the @url{https://www.cmake.org, CMake build tool}."
 msgstr "Esta variable se exporta en @code{(guix build-system cmake)}. Implementa el procedimiento de construcción para paquetes que usen la @url{https://www.cmake.org, herramienta de construcción CMake}."
 
 #. type: defvr
-#: doc/guix.texi:6301
+#: doc/guix.texi:7434
 msgid "It automatically adds the @code{cmake} package to the set of inputs.  Which package is used can be specified with the @code{#:cmake} parameter."
 msgstr "Automáticamente añade el paquete @code{cmake} al conjunto de entradas. El paquete usado se puede especificar con el parámetro @code{#:cmake}."
 
 #. type: defvr
-#: doc/guix.texi:6308
+#: doc/guix.texi:7441
 msgid "The @code{#:configure-flags} parameter is taken as a list of flags passed to the @command{cmake} command.  The @code{#:build-type} parameter specifies in abstract terms the flags passed to the compiler; it defaults to @code{\"RelWithDebInfo\"} (short for ``release mode with debugging information''), which roughly means that code is compiled with @code{-O2 -g}, as is the case for Autoconf-based packages by default."
 msgstr "El parámetro @code{#:configure-flags} se toma como una lista de opciones a pasar a @command{cmake}. El parámetro @code{#:build-type} especifica en términos abstractos las opciones pasadas al compilador; su valor predeterminado es @code{\"RelWithDebInfo\"} (quiere decir ``modo de entrega con información de depuración''), lo que aproximadamente significa que el código se compila con @code{-O2 -g}, lo cual es el caso predeterminado en paquetes basados en Autoconf."
 
 #. type: defvr
-#: doc/guix.texi:6310
+#: doc/guix.texi:7443
 #, no-wrap
 msgid "{Scheme Variable} dune-build-system"
 msgstr "{Variable Scheme} dune-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6317
+#: doc/guix.texi:7450
 msgid "This variable is exported by @code{(guix build-system dune)}.  It supports builds of packages using @uref{https://dune.build/, Dune}, a build tool for the OCaml programming language.  It is implemented as an extension of the @code{ocaml-build-system} which is described below.  As such, the @code{#:ocaml} and @code{#:findlib} parameters can be passed to this build system."
 msgstr "Esta variable se exporta en @code{(guix build-system dune)}. Permite la construcción de paquetes mediante el uso de @uref{https://dune.build/, Dune}, una herramienta de construcción para el lenguaje de programación OCaml. Se implementa como una extensión de @code{ocaml-build-system} que se describe a continuación. Como tal, se pueden proporcionar los parámetros @code{#:ocaml} y @code{#:findlib} a este sistema de construcción."
 
 #. type: defvr
-#: doc/guix.texi:6321
+#: doc/guix.texi:7454
 msgid "It automatically adds the @code{dune} package to the set of inputs.  Which package is used can be specified with the @code{#:dune} parameter."
 msgstr "Automáticamente añade el paquete @code{dune} al conjunto de entradas. El paquete usado se puede especificar con el parámetro @code{#:dune}."
 
 # FUZZY
 #. type: defvr
-#: doc/guix.texi:6325
+#: doc/guix.texi:7458
 msgid "There is no @code{configure} phase because dune packages typically don't need to be configured.  The @code{#:build-flags} parameter is taken as a list of flags passed to the @code{dune} command during the build."
 msgstr "No existe una fase @code{configure} debido a que los paquetes dune no necesitan ser configurados típicamente. El parámetro @code{#:build-flags} se toma como una lista de opciones proporcionadas a la orden @code{dune} durante la construcción."
 
 # FUZZY
 #. type: defvr
-#: doc/guix.texi:6329
+#: doc/guix.texi:7462
 msgid "The @code{#:jbuild?} parameter can be passed to use the @code{jbuild} command instead of the more recent @code{dune} command while building a package.  Its default value is @code{#f}."
 msgstr "El parámetro @code{#:jbuild?} puede proporcionarse para usar la orden @code{jbuild} en vez de la más reciente @code{dune} durante la construcción de un paquete. Su valor predeterminado es @code{#f}."
 
 # FUZZY
 #. type: defvr
-#: doc/guix.texi:6334
+#: doc/guix.texi:7467
 msgid "The @code{#:package} parameter can be passed to specify a package name, which is useful when a package contains multiple packages and you want to build only one of them.  This is equivalent to passing the @code{-p} argument to @code{dune}."
 msgstr "El parámetro @code{#:package} puede proporcionarse para especificar un nombre de paquete, lo que resulta útil cuando un paquete contiene múltiples paquetes y únicamente quiere construir uno de ellos. Es equivalente a proporcionar el parámetro @code{-p} a @code{dune}."
 
 #. type: defvr
-#: doc/guix.texi:6336
+#: doc/guix.texi:7469
 #, no-wrap
 msgid "{Scheme Variable} go-build-system"
 msgstr "{Variable Scheme} go-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6341
+#: doc/guix.texi:7474
 msgid "This variable is exported by @code{(guix build-system go)}.  It implements a build procedure for Go packages using the standard @url{https://golang.org/cmd/go/#hdr-Compile_packages_and_dependencies, Go build mechanisms}."
 msgstr "Esta variable se exporta en @code{(guix build-system go)}. Implementa el procedimiento de construcción para paquetes Go usando los @url{https://golang.org/cmd/go/#hdr-Compile_packages_and_dependencies, mecanismos de construcción de Go} estándares."
 
 #. type: defvr
-#: doc/guix.texi:6352
+#: doc/guix.texi:7485
 msgid "The user is expected to provide a value for the key @code{#:import-path} and, in some cases, @code{#:unpack-path}.  The @url{https://golang.org/doc/code.html#ImportPaths, import path} corresponds to the file system path expected by the package's build scripts and any referring packages, and provides a unique way to refer to a Go package.  It is typically based on a combination of the package source code's remote URI and file system hierarchy structure.  In some cases, you will need to unpack the package's source code to a different directory structure than the one indicated by the import path, and @code{#:unpack-path} should be used in such cases."
-msgstr "Se espera que la usuaria proporcione un valor para el parámetro @code{#:import-path} y, en algunos caso, @code{#:unpack-path}. La @url{https://golang.org/doc/code.html#ImportPaths, ruta de importación} corresponde a la ruta del sistema de ficheros esperada por los guiones de construcción del paquete y los paquetes a los que hace referencia, y proporciona una forma de hacer referencia a un paquete Go unívocamente. Está basado típicamente en una combinación de la URI remota del paquete de ficheros de fuente y la estructura jerárquica del sistema de ficheros. En algunos casos, necesitará desempaquetar el código fuente del paquete en una estructura de directorios diferente a la indicada en la ruta de importación, y @code{#:unpack-path} debe usarse en dichos casos."
+msgstr "Se espera que la usuaria proporcione un valor para el parámetro @code{#:import-path} y, en algunos caso, @code{#:unpack-path}. La @url{https://golang.org/doc/code.html#ImportPaths, ruta de importación} corresponde a la ruta del sistema de archivos esperada por los guiones de construcción del paquete y los paquetes a los que hace referencia, y proporciona una forma de hacer referencia a un paquete Go unívocamente. Está basado típicamente en una combinación de la URI remota del paquete de archivos de fuente y la estructura jerárquica del sistema de archivos. En algunos casos, necesitará desempaquetar el código fuente del paquete en una estructura de directorios diferente a la indicada en la ruta de importación, y @code{#:unpack-path} debe usarse en dichos casos."
 
 # FUZZY
 #. type: defvr
-#: doc/guix.texi:6357
+#: doc/guix.texi:7490
 msgid "Packages that provide Go libraries should install their source code into the built output.  The key @code{#:install-source?}, which defaults to @code{#t}, controls whether or not the source code is installed.  It can be set to @code{#f} for packages that only provide executable files."
-msgstr "Los paquetes que proporcionan bibliotecas Go deben instalar su código fuente en la salida de la construcción. El parámetro @code{#:install-source?}, cuyo valor por defecto es @code{#t}, controla si se instalará o no el código fuente. Puede proporcionarse @code{#f} en paquetes que proporcionan únicamente ficheros ejecutables."
+msgstr "Los paquetes que proporcionan bibliotecas Go deben instalar su código fuente en la salida de la construcción. El parámetro @code{#:install-source?}, cuyo valor por defecto es @code{#t}, controla si se instalará o no el código fuente. Puede proporcionarse @code{#f} en paquetes que proporcionan únicamente archivos ejecutables."
 
 #. type: defvr
-#: doc/guix.texi:6359
+#: doc/guix.texi:7492
 #, no-wrap
 msgid "{Scheme Variable} glib-or-gtk-build-system"
 msgstr "{Variable Scheme} glib-or-gtk-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6362
+#: doc/guix.texi:7495
 msgid "This variable is exported by @code{(guix build-system glib-or-gtk)}.  It is intended for use with packages making use of GLib or GTK+."
 msgstr "Esta variable se exporta en @code{(guix build-system glib-or-gtk)}. Está pensada para usarse con paquetes que usan GLib o GTK+."
 
 #. type: defvr
-#: doc/guix.texi:6365
+#: doc/guix.texi:7498
 msgid "This build system adds the following two phases to the ones defined by @code{gnu-build-system}:"
 msgstr "Este sistema de construcción añade las dos fases siguientes a las definidas en @var{gnu-build-system}:"
 
 #. type: item
-#: doc/guix.texi:6367 doc/guix.texi:6755
+#: doc/guix.texi:7500 doc/guix.texi:7932
 #, no-wrap
 msgid "glib-or-gtk-wrap"
 msgstr "glib-or-gtk-wrap"
 
 #. type: table
-#: doc/guix.texi:6374
-msgid "The phase @code{glib-or-gtk-wrap} ensures that programs in @file{bin/} are able to find GLib ``schemas'' and @uref{https://developer.gnome.org/gtk3/stable/gtk-running.html, GTK+ modules}.  This is achieved by wrapping the programs in launch scripts that appropriately set the @code{XDG_DATA_DIRS} and @code{GTK_PATH} environment variables."
-msgstr "La fase @code{glib-or-gtk-wrap} se asegura de que los programas en @file{bin/} son capaces de encontrar los ``esquemas'' GLib y los @uref{https://developer.gnome.org/gtk3/stable/gtk-running.html, módulos GTK+}. Esto se consigue recubriendo los programas en guiones de lanzamiento que establecen apropiadamente las variables de entorno @code{GTK_PATH}."
+#: doc/guix.texi:7507
+msgid "The phase @code{glib-or-gtk-wrap} ensures that programs in @file{bin/} are able to find GLib ``schemas'' and @uref{https://developer.gnome.org/gtk3/stable/gtk-running.html, GTK+ modules}.  This is achieved by wrapping the programs in launch scripts that appropriately set the @env{XDG_DATA_DIRS} and @env{GTK_PATH} environment variables."
+msgstr "La fase @code{glib-or-gtk-wrap} se asegura de que los programas en @file{bin/} son capaces de encontrar los ``esquemas'' GLib y los @uref{https://developer.gnome.org/gtk3/stable/gtk-running.html, módulos GTK+}. Esto se consigue recubriendo los programas en guiones de lanzamiento que proporcionan valores apropiados para las variables de entorno @env{XDG_DATA_DIRS} y @env{GTK_PATH}."
 
 #. type: table
-#: doc/guix.texi:6381
+#: doc/guix.texi:7514
 msgid "It is possible to exclude specific package outputs from that wrapping process by listing their names in the @code{#:glib-or-gtk-wrap-excluded-outputs} parameter.  This is useful when an output is known not to contain any GLib or GTK+ binaries, and where wrapping would gratuitously add a dependency of that output on GLib and GTK+."
 msgstr "Es posible excluir salidas específicas del paquete del proceso de recubrimiento enumerando sus nombres en el parámetro @code{#:glib-org-gtk-wrap-excluded-outputs}. Esto es útil cuando se sabe que una salida no contiene binarios GLib o GTK+, y cuando empaquetar gratuitamente añadiría una dependencia de dicha salida en GLib y GTK+."
 
 #. type: item
-#: doc/guix.texi:6382 doc/guix.texi:6759
+#: doc/guix.texi:7515 doc/guix.texi:7936
 #, no-wrap
 msgid "glib-or-gtk-compile-schemas"
 msgstr "glib-or-gtk-compile-schemas"
 
 #. type: table
-#: doc/guix.texi:6390
+#: doc/guix.texi:7523
 msgid "The phase @code{glib-or-gtk-compile-schemas} makes sure that all @uref{https://developer.gnome.org/gio/stable/glib-compile-schemas.html, GSettings schemas} of GLib are compiled.  Compilation is performed by the @command{glib-compile-schemas} program.  It is provided by the package @code{glib:bin} which is automatically imported by the build system.  The @code{glib} package providing @command{glib-compile-schemas} can be specified with the @code{#:glib} parameter."
 msgstr "La fase @code{glib-or-gtk-compile-schemas} se asegura que todos los @uref{https://developer.gnome.org/gio/stable/glib-compile-schemas.html, esquemas GSettings} o GLib se compilan. La compilación la realiza el programa @command{glib-compile-schemas}. Lo proporciona el paquete @code{glib:bin} que se importa automáticamente por el sistema de construcción. El paquete @code{glib} que proporciona @command{glib-compile-schemas} puede especificarse con el parámetro @code{#:glib}."
 
 #. type: defvr
-#: doc/guix.texi:6393
+#: doc/guix.texi:7526
 msgid "Both phases are executed after the @code{install} phase."
 msgstr "Ambas fases se ejecutan tras la fase @code{install}."
 
 #. type: defvr
-#: doc/guix.texi:6395
+#: doc/guix.texi:7528
 #, no-wrap
 msgid "{Scheme Variable} guile-build-system"
 msgstr "{Variable Scheme} guile-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6402
+#: doc/guix.texi:7535
 msgid "This build system is for Guile packages that consist exclusively of Scheme code and that are so lean that they don't even have a makefile, let alone a @file{configure} script.  It compiles Scheme code using @command{guild compile} (@pxref{Compilation,,, guile, GNU Guile Reference Manual}) and installs the @file{.scm} and @file{.go} files in the right place.  It also installs documentation."
-msgstr "Este sistema de construcción es para paquetes Guile que consisten exclusivamente en código Scheme y son tan simples que no tienen ni siquiera un fichero Makefile, menos un guión @file{configure}. Compila código Scheme usando @command{guild compile} (@pxref{Compilation,,, guile, GNU Guile Reference Manual}) e instala los ficheros @file{.scm} y @file{.go} en el lugar correcto. También instala documentación."
+msgstr "Este sistema de construcción es para paquetes Guile que consisten exclusivamente en código Scheme y son tan simples que no tienen ni siquiera un archivo Makefile, menos un guión @file{configure}. Compila código Scheme usando @command{guild compile} (@pxref{Compilation,,, guile, GNU Guile Reference Manual}) e instala los archivos @file{.scm} y @file{.go} en el lugar correcto. También instala documentación."
 
 #. type: defvr
-#: doc/guix.texi:6405
-msgid "This build system supports cross-compilation by using the @code{--target} option of @command{guild compile}."
-msgstr "Este sistema de construcción permite la compilación cruzada usando la opción @code{--target} de @command{guild compile}."
+#: doc/guix.texi:7538
+msgid "This build system supports cross-compilation by using the @option{--target} option of @samp{guild compile}."
+msgstr "Este sistema de construcción permite la compilación cruzada usando la opción @option{--target} de @command{guild compile}."
 
 #. type: defvr
-#: doc/guix.texi:6408
+#: doc/guix.texi:7541
 msgid "Packages built with @code{guile-build-system} must provide a Guile package in their @code{native-inputs} field."
 msgstr "Los paquetes construidos con @code{guile-build-system} deben proporcionar un paquete Guile en su campo @code{native-inputs}."
 
 #. type: defvr
-#: doc/guix.texi:6410
+#: doc/guix.texi:7543
 #, no-wrap
 msgid "{Scheme Variable} julia-build-system"
 msgstr "{Variable Scheme} julia-build-system"
 
-# TODO: Typo "tests are run not run"
 #. type: defvr
-#: doc/guix.texi:6416
-msgid "This variable is exported by @code{(guix build-system julia)}.  It implements the build procedure used by @uref{https://julialang.org/, julia} packages, which essentially is similar to running @command{julia -e 'using Pkg; Pkg.add(package)'} in an environment where @code{JULIA_LOAD_PATH} contains the paths to all Julia package inputs.  Tests are run not run."
-msgstr "Esta variable se exporta en @code{(guix build-system julia)}. Implementa el procedimiento de construcción usados por paquetes @uref{https://julialang.org/, julia}, lo que esencialmente es similar a la ejecución de @code{julia -e 'using Pkg; Pkg.add(package)'} en un entorno donde @code{JULIA_LOAD_PATH} contiene las rutas de todos los paquetes julia de entrada. No se ejecutan las pruebas."
+#: doc/guix.texi:7550
+msgid "This variable is exported by @code{(guix build-system julia)}.  It implements the build procedure used by @uref{https://julialang.org/, julia} packages, which essentially is similar to running @samp{julia -e 'using Pkg; Pkg.add(package)'} in an environment where @env{JULIA_LOAD_PATH} contains the paths to all Julia package inputs.  Tests are run with @code{Pkg.test}."
+msgstr "Esta variable se exporta en @code{(guix build-system julia)}. Implementa el procedimiento de construcción usados por paquetes @uref{https://julialang.org/, julia}, lo que esencialmente es similar a la ejecución de @code{julia -e 'using Pkg; Pkg.add(package)'} en un entorno donde @env{JULIA_LOAD_PATH} contiene las rutas de todos los paquetes julia de entrada. Las pruebas se ejecutan con @code{Pkg.test}."
 
 #. type: defvr
-#: doc/guix.texi:6419
+#: doc/guix.texi:7553
 msgid "Julia packages require the source @code{file-name} to be the real name of the package, correctly capitalized."
 msgstr "Los paquetes Julia necesitan que el campo @code{file-name} de la fuente sea el nombre real del paquete, con mayúsculas y minúsculas correctamente escritas."
 
 #. type: defvr
-#: doc/guix.texi:6424
+#: doc/guix.texi:7558
 msgid "For packages requiring shared library dependencies, you may need to write the @file{/deps/deps.jl} file manually. It's usually a line of @code{const variable = /gnu/store/library.so} for each dependency, plus a void function @code{check_deps() = nothing}."
-msgstr "Para los paquetes que tienen dependencias de bibliotecas dinámicas, puede que sea necesario que escriba manualmente el fichero @file{/deps/deps.jl}. Habitualmente es una línea de @code{const variable = /gnu/store/biblioteca.so} por cada dependencia, además de una función vacía @code{check_deps() = nothing}."
+msgstr "Para los paquetes que tienen dependencias de bibliotecas dinámicas, puede que sea necesario que escriba manualmente el archivo @file{/deps/deps.jl}. Habitualmente es una línea de @code{const variable = /gnu/store/biblioteca.so} por cada dependencia, además de una función vacía @code{check_deps() = nothing}."
 
 #. type: defvr
-#: doc/guix.texi:6431
+#: doc/guix.texi:7565
 msgid "Some older packages that aren't using @file{Package.toml} yet, will require this file to be created, too. The function @code{julia-create-package-toml} helps creating the file. You need to pass the outputs and the source of the package, it's name (the same as the @code{file-name} parameter), the package uuid, the package version, and a list of dependencies specified by their name and their uuid."
-msgstr "Algunos paquetes antiguos que no usan todavía @file{Package.toml} también necesitan la creación de este fichero. La función @code{julia-create-package-toml} ayuda en la creación de dicho fichero. Debe proporcionarle las salidas y las fuentes del paquete, su nombre (el mismo que en el parámetro @code{file-name}), el uuid del paquete, la versión del paquete y una lista de dependencias especificadas a partir de su nombre y su uuid."
+msgstr "Algunos paquetes antiguos que no usan todavía @file{Package.toml} también necesitan la creación de este archivo. La función @code{julia-create-package-toml} ayuda en la creación de dicho archivo. Debe proporcionarle las salidas y las fuentes del paquete, su nombre (el mismo que en el parámetro @code{file-name}), el uuid del paquete, la versión del paquete y una lista de dependencias especificadas a partir de su nombre y su uuid."
+
+#. type: defvr
+#: doc/guix.texi:7567
+#, no-wrap
+msgid "{Scheme Variable} maven-build-system"
+msgstr "{Variable Scheme} maven-build-system"
+
+#. type: defvr
+#: doc/guix.texi:7574
+msgid "This variable is exported by @code{(guix build-system maven)}.  It implements a build procedure for @uref{https://maven.apache.org, Maven} packages.  Maven is a dependency and lifecycle management tool for Java.  A user of Maven specifies dependencies and plugins in a @file{pom.xml} file that Maven reads.  When Maven does not have one of the dependencies or plugins in its repository, it will download them and use them to build the package."
+msgstr "Esta variable se exporta en @code{(guix build-system maven)}. Implementa un procedimiento de construcción para paquetes basados en @uref{https://maven.apache.org, Maven}. Maven es una herramienta para Java de gestión de dependencias y ciclo de vida. Las usuarias de Maven especifican las dependencias y módulos en un archivo @file{pom.xml} que Maven lee. Cuando Maven no dispone de una de dichas dependencias o módulos en su repositorio, las descarga y las usa para construir el paquete."
+
+#. type: defvr
+#: doc/guix.texi:7584
+msgid "The maven build system ensures that maven will not try to download any dependency by running in offline mode.  Maven will fail if a dependency is missing.  Before running Maven, the @file{pom.xml} (and subprojects) are modified to specify the version of dependencies and plugins that match the versions available in the guix build environment.  Dependencies and plugins must be installed in the fake maven repository at @file{lib/m2}, and are symlinked into a proper repository before maven is run.  Maven is instructed to use that repository for the build and installs built artifacts there.  Changed files are copied to the @file{lib/m2} directory of the package output."
+msgstr "El sistema de compilación de maven se asegura de que maven no intentará descargar ninguna dependencia ejecutándo maven en modo sin conexión. Maven fallará si falta alguna dependencia. Antes de ejecutar Maven, el archivo @file{pom.xml} (y los subproyectos) se modifican para especificar la versión de las dependencias y módulos que corresponden a las versiones disponibles en el entorno de construcción de guix. Las dependencias y los módulos se deben instalar en un repositorio de maven @i{ad hoc} en @file{lib/m2}, y se enlazan un repositorio real antes de que se ejecute maven. Se le indica a Maven que use ese repositorio para la construcción e instale los artefactos generados allí. Los archivos cambiados se copian del directorio @file{lib/m2} a la salida del paquete."
+
+#. type: defvr
+#: doc/guix.texi:7587
+msgid "You can specify a @file{pom.xml} file with the @code{#:pom-file} argument, or let the build system use the default @file{pom.xml} file in the sources."
+msgstr "Puede especificar un archivo @file{pom.xml} con el parámetro @code{#:pom-file}, o dejar al sistema de construcción usar el archivo predeterminado @file{pom.xml} en las fuentes."
+
+#. type: defvr
+#: doc/guix.texi:7593
+msgid "In case you need to specify a dependency's version manually, you can use the @code{#:local-packages} argument.  It takes an association list where the key is the groupId of the package and its value is an association list where the key is the artifactId of the package and its value is the version you want to override in the @file{pom.xml}."
+msgstr "En caso de que necesite especificar la versión de una dependencia manualmente puede usar el parámetro @code{#:local-packages}. Toma como valor una lista asociativa donde la clave es el valor del campo ``groupId'' del paquete y su valor es una lista asociativa donde la clave es el campo ``artifactId'' del paquete y su valor la versión que quiere forzar en vez de la que se encuentra en @file{pom.xml}."
+
+#. type: defvr
+#: doc/guix.texi:7599
+msgid "Some packages use dependencies or plugins that are not useful at runtime nor at build time in Guix.  You can alter the @file{pom.xml} file to remove them using the @code{#:exclude} argument.  Its value is an association list where the key is the groupId of the plugin or dependency you want to remove, and the value is a list of artifactId you want to remove."
+msgstr "Algunos paquetes usan dependencias o módulos que no son útiles en tiempo de ejecución ni en tiempo de construcción en Guix. Puede modificar el archivo @file{pom.xml} para eliminarlos usando el parámetro @code{#:exclude}. Su valor es una lista asociativa donde la clave es el valor del campo ``groupId'' del módulo o dependencia que quiere eliminar, y su valor es una lista de valores del campo ``artifactId'' que se eliminarán."
+
+#. type: defvr
+#: doc/guix.texi:7602
+msgid "You can override the default @code{jdk} and @code{maven} packages with the corresponding argument, @code{#:jdk} and @code{#:maven}."
+msgstr "Puede usar valores distintos para los paquetes @code{jdk} y @code{maven} con el parámetro correspondiente, @code{#:jdk} y @code{#:maven}."
+
+#. type: defvr
+#: doc/guix.texi:7607
+msgid "The @code{#:maven-plugins} argument is a list of maven plugins used during the build, with the same format as the @code{inputs} fields of the package declaration.  Its default value is @code{(default-maven-plugins)} which is also exported."
+msgstr "El parámetro @code{#:maven-plugins} es una lista de módulos de maven usados durante la construcción, con el mismo formato que el campo @code{inputs} de la declaración del paquete. Su valor predeterminado es @code{(default-maven-plugins)} que también se exporta."
 
 #. type: defvr
-#: doc/guix.texi:6433
+#: doc/guix.texi:7609
 #, no-wrap
 msgid "{Scheme Variable} minify-build-system"
 msgstr "{Variable Scheme} minify-build-system"
 
 # FUZZY
 #. type: defvr
-#: doc/guix.texi:6436
+#: doc/guix.texi:7612
 msgid "This variable is exported by @code{(guix build-system minify)}.  It implements a minification procedure for simple JavaScript packages."
 msgstr "Esta variable se exporta en @code{(guix build-system minify)}. Implementa un procedimiento de minificación para paquetes JavaScript simples."
 
 # FUZZY
 #. type: defvr
-#: doc/guix.texi:6442
+#: doc/guix.texi:7618
 msgid "It adds @code{uglify-js} to the set of inputs and uses it to compress all JavaScript files in the @file{src} directory.  A different minifier package can be specified with the @code{#:uglify-js} parameter, but it is expected that the package writes the minified code to the standard output."
-msgstr "Añade @code{uglify-js} al conjunto de entradas y lo utiliza para comprimir todos los ficheros JavaScript en el directorio @file{src}. Un paquete de minificación diferente puede especificarse con el parámetro @code{#:uglify-js}, pero se espera que el paquete escriba el código minificado en la salida estándar."
+msgstr "Añade @code{uglify-js} al conjunto de entradas y lo utiliza para comprimir todos los archivos JavaScript en el directorio @file{src}. Un paquete de minificación diferente puede especificarse con el parámetro @code{#:uglify-js}, pero se espera que el paquete escriba el código minificado en la salida estándar."
 
 # FUZZY
 #. type: defvr
-#: doc/guix.texi:6446
+#: doc/guix.texi:7622
 msgid "When the input JavaScript files are not all located in the @file{src} directory, the parameter @code{#:javascript-files} can be used to specify a list of file names to feed to the minifier."
-msgstr "Cuando los ficheros JavaScript de entrada no se encuentran en el directorio @file{src}, el parámetro @code{#:javascript-files} puede usarse para especificar una lista de nombres de fichero que proporcionar al minificador."
+msgstr "Cuando los archivos JavaScript de entrada no se encuentran en el directorio @file{src}, el parámetro @code{#:javascript-files} puede usarse para especificar una lista de nombres de archivo que proporcionar al minificador."
 
 #. type: defvr
-#: doc/guix.texi:6448
+#: doc/guix.texi:7624
 #, no-wrap
 msgid "{Scheme Variable} ocaml-build-system"
 msgstr "{Variable Scheme} ocaml-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6454
+#: doc/guix.texi:7630
 msgid "This variable is exported by @code{(guix build-system ocaml)}.  It implements a build procedure for @uref{https://ocaml.org, OCaml} packages, which consists of choosing the correct set of commands to run for each package.  OCaml packages can expect many different commands to be run.  This build system will try some of them."
 msgstr "Esta variable se exporta en @code{(guix build-system ocaml)}. Implementa un procedimiento de construcción para paquetes @uref{https://ocaml.org, OCaml}, que consiste en seleccionar el conjunto correcto de órdenes a ejecutar para cada paquete. Los paquetes OCaml pueden esperar la ejecución de muchas ordenes diferentes. Este sistema de construcción probará algunas de ellas."
 
 # FUZZY
 # TODO: bypass
 #. type: defvr
-#: doc/guix.texi:6464
+#: doc/guix.texi:7640
 msgid "When the package has a @file{setup.ml} file present at the top-level, it will run @code{ocaml setup.ml -configure}, @code{ocaml setup.ml -build} and @code{ocaml setup.ml -install}.  The build system will assume that this file was generated by @uref{http://oasis.forge.ocamlcore.org/, OASIS} and will take care of setting the prefix and enabling tests if they are not disabled.  You can pass configure and build flags with the @code{#:configure-flags} and @code{#:build-flags}.  The @code{#:test-flags} key can be passed to change the set of flags used to enable tests.  The @code{#:use-make?} key can be used to bypass this system in the build and install phases."
-msgstr "Cuando el paquete tiene un fichero @file{setup.ml} presente en el nivel superior, se ejecuta @code{ocaml setup.ml -configure}, @code{ocaml setup.ml -build} y @code{ocaml setup.ml -install}. El sistema de construcción asumirá que este fichero se generó con @uref{http://oasis.forge.ocamlcore.org/ OASIS} y se encargará de establecer el prefijo y la activación de las pruebas si no se desactivaron. Puede pasar opciones de configuración y construcción con @code{#:configure-flags} y @code{#:build-flags}, respectivamente. El parámetro @code{#:test-flags} puede usarse para cambiar el conjunto de opciones usadas para activar las pruebas. El parámetro @code{#:use-make?} puede usarse para ignorar este sistema en las fases de construcción e instalación."
+msgstr "Cuando el paquete tiene un archivo @file{setup.ml} presente en el nivel superior, se ejecuta @code{ocaml setup.ml -configure}, @code{ocaml setup.ml -build} y @code{ocaml setup.ml -install}. El sistema de construcción asumirá que este archivo se generó con @uref{http://oasis.forge.ocamlcore.org/ OASIS} y se encargará de establecer el prefijo y la activación de las pruebas si no se desactivaron. Puede pasar opciones de configuración y construcción con @code{#:configure-flags} y @code{#:build-flags}, respectivamente. El parámetro @code{#:test-flags} puede usarse para cambiar el conjunto de opciones usadas para activar las pruebas. El parámetro @code{#:use-make?} puede usarse para ignorar este sistema en las fases de construcción e instalación."
 
 #. type: defvr
-#: doc/guix.texi:6469
+#: doc/guix.texi:7645
 msgid "When the package has a @file{configure} file, it is assumed that it is a hand-made configure script that requires a different argument format than in the @code{gnu-build-system}.  You can add more flags with the @code{#:configure-flags} key."
-msgstr "Cuando el paquete tiene un fichero @file{configure}, se asume que es un guión de configuración hecho a mano que necesita un formato de parámetros diferente a los del sistema @code{gnu-build-system}. Puede añadir más opciones con el parámetro @code{#:configure-flags}."
+msgstr "Cuando el paquete tiene un archivo @file{configure}, se asume que es un guión de configuración hecho a mano que necesita un formato de parámetros diferente a los del sistema @code{gnu-build-system}. Puede añadir más opciones con el parámetro @code{#:configure-flags}."
 
 #. type: defvr
-#: doc/guix.texi:6473
+#: doc/guix.texi:7649
 msgid "When the package has a @file{Makefile} file (or @code{#:use-make?} is @code{#t}), it will be used and more flags can be passed to the build and install phases with the @code{#:make-flags} key."
-msgstr "Cuando el paquete tiene un fichero @file{Makefile} (o @code{#:use-make?} es @code{#t}), será usado y se pueden proporcionar más opciones para las fases de construcción y e instalación con el parámetro @code{#:make-flags}."
+msgstr "Cuando el paquete tiene un archivo @file{Makefile} (o @code{#:use-make?} es @code{#t}), será usado y se pueden proporcionar más opciones para las fases de construcción y e instalación con el parámetro @code{#:make-flags}."
 
 #. type: defvr
-#: doc/guix.texi:6481
+#: doc/guix.texi:7657
 msgid "Finally, some packages do not have these files and use a somewhat standard location for its build system.  In that case, the build system will run @code{ocaml pkg/pkg.ml} or @code{ocaml pkg/build.ml} and take care of providing the path to the required findlib module.  Additional flags can be passed via the @code{#:build-flags} key.  Install is taken care of by @command{opam-installer}.  In this case, the @code{opam} package must be added to the @code{native-inputs} field of the package definition."
-msgstr "Por último, algunos paquetes no tienen estos ficheros y usan unas localizaciones de algún modo estándares para su sistema de construcción. En este caso, el sistema de construcción ejecutará @code{ocaml pkg/pkg.ml} o @code{ocaml pkg/build.ml} y se hará cargo de proporcionar la ruta del módulo findlib necesario. Se pueden pasar opciones adicionales con el parámetro @code{#:build-flags}. De la instalación se hace cargo @command{opam-installer}. En este caso, el paquete @code{opam} debe añadirse al campo @code{native-inputs} de la definición del paquete."
+msgstr "Por último, algunos paquetes no tienen estos archivos y usan unas localizaciones de algún modo estándares para su sistema de construcción. En este caso, el sistema de construcción ejecutará @code{ocaml pkg/pkg.ml} o @code{ocaml pkg/build.ml} y se hará cargo de proporcionar la ruta del módulo findlib necesario. Se pueden pasar opciones adicionales con el parámetro @code{#:build-flags}. De la instalación se hace cargo @command{opam-installer}. En este caso, el paquete @code{opam} debe añadirse al campo @code{native-inputs} de la definición del paquete."
 
 # FUZZY
 # MAAV (TODO): Está un poco mal escrito... :(
 #. type: defvr
-#: doc/guix.texi:6489
-msgid "Note that most OCaml packages assume they will be installed in the same directory as OCaml, which is not what we want in guix.  In particular, they will install @file{.so} files in their module's directory, which is usually fine because it is in the OCaml compiler directory.  In guix though, these libraries cannot be found and we use @code{CAML_LD_LIBRARY_PATH}.  This variable points to @file{lib/ocaml/site-lib/stubslibs} and this is where @file{.so} libraries should be installed."
-msgstr "Fíjese que la mayoría de los paquetes OCaml asumen su instalación en el mismo directorio que OCaml, lo que no es el comportamiento deseado en guix. En particular, intentarán instalar ficheros @file{.so} en su directorio de módulos, lo que normalmente es aceptable puesto que está bajo el directorio del compilador de OCaml. No obstante, en guix estas bibliotecas no se pueden instalar ahí y se usa @code{CAML_LD_LIBRARY_PATH}. Esta variable apunta a @file{lib/ocaml/site-lib/stubslibs} y allí es donde las bibliotecas @file{.so} deberán instalarse."
+#: doc/guix.texi:7665
+msgid "Note that most OCaml packages assume they will be installed in the same directory as OCaml, which is not what we want in guix.  In particular, they will install @file{.so} files in their module's directory, which is usually fine because it is in the OCaml compiler directory.  In guix though, these libraries cannot be found and we use @env{CAML_LD_LIBRARY_PATH}.  This variable points to @file{lib/ocaml/site-lib/stubslibs} and this is where @file{.so} libraries should be installed."
+msgstr "Fíjese que la mayoría de los paquetes OCaml asumen su instalación en el mismo directorio que OCaml, lo que no es el comportamiento deseado en guix. En particular, tratarán de instalar archivos @file{.so} en su directorio de módulos, lo que normalmente es aceptable puesto que está bajo el directorio del compilador de OCaml. No obstante, en guix estas bibliotecas no se pueden instalar ahí, por lo que se usa @env{CAML_LD_LIBRARY_PATH}. Esta variable apunta a @file{lib/ocaml/site-lib/stubslibs} y allí es donde se deben instalar las bibliotecas @file{.so}."
 
 #. type: defvr
-#: doc/guix.texi:6491
+#: doc/guix.texi:7667
 #, no-wrap
 msgid "{Scheme Variable} python-build-system"
 msgstr "{Variable Scheme} python-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6496
+#: doc/guix.texi:7672
 msgid "This variable is exported by @code{(guix build-system python)}.  It implements the more or less standard build procedure used by Python packages, which consists in running @code{python setup.py build} and then @code{python setup.py install --prefix=/gnu/store/@dots{}}."
 msgstr "Esta variable se exporta en @code{(guix build-system python)}. Implementa el procedimiento más o menos estándar de construcción usado por paquetes Python, que consiste en la ejecución de @code{python setup.py build} y @code{python setup.py install --prefix=/gnu/store/@dots{}}."
 
 #. type: defvr
-#: doc/guix.texi:6500
-msgid "For packages that install stand-alone Python programs under @code{bin/}, it takes care of wrapping these programs so that their @code{PYTHONPATH} environment variable points to all the Python libraries they depend on."
-msgstr "Para que instalan programas independientes Python bajo @code{bin/}, se encarga de envolver dichos programas de modo que su variable de entorno @code{PYTHONPATH} apunte a las bibliotecas Python de las que dependen."
+#: doc/guix.texi:7676
+msgid "For packages that install stand-alone Python programs under @code{bin/}, it takes care of wrapping these programs so that their @env{PYTHONPATH} environment variable points to all the Python libraries they depend on."
+msgstr "Para que instalan programas independientes Python bajo @code{bin/}, se encarga de envolver dichos programas de modo que su variable de entorno @env{PYTHONPATH} apunte a las bibliotecas Python de las que dependen."
 
 #. type: defvr
-#: doc/guix.texi:6506
+#: doc/guix.texi:7682
 msgid "Which Python package is used to perform the build can be specified with the @code{#:python} parameter.  This is a useful way to force a package to be built for a specific version of the Python interpreter, which might be necessary if the package is only compatible with a single interpreter version."
 msgstr "Se puede especificar el paquete Python usado para llevar a cabo la construcción con el parámetro @code{#:python}. Esta es habitualmente una forma de forzar la construcción de un paquete para una versión específica del intérprete Python, lo que puede ser necesario si el paquete es compatible únicamente con una versión del intérprete."
 
 #. type: defvr
-#: doc/guix.texi:6511
+#: doc/guix.texi:7687
 msgid "By default guix calls @code{setup.py} under control of @code{setuptools}, much like @command{pip} does.  Some packages are not compatible with setuptools (and pip), thus you can disable this by setting the @code{#:use-setuptools?} parameter to @code{#f}."
 msgstr "De manera predeterminada guix llama a @code{setup.py} bajo el control de @code{setuptools} de manera similar a lo realizado por @command{pip}. Algunos paquetes no son compatibles con setuptools (y pip), por lo que puede desactivar esta configuración estableciendo el parámetro @code{#:use-setuptools} a @code{#f}."
 
 #. type: defvr
-#: doc/guix.texi:6513
+#: doc/guix.texi:7689
 #, no-wrap
 msgid "{Scheme Variable} perl-build-system"
 msgstr "{Variable Scheme} perl-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6525
+#: doc/guix.texi:7701
 msgid "This variable is exported by @code{(guix build-system perl)}.  It implements the standard build procedure for Perl packages, which either consists in running @code{perl Build.PL --prefix=/gnu/store/@dots{}}, followed by @code{Build} and @code{Build install}; or in running @code{perl Makefile.PL PREFIX=/gnu/store/@dots{}}, followed by @code{make} and @code{make install}, depending on which of @code{Build.PL} or @code{Makefile.PL} is present in the package distribution.  Preference is given to the former if both @code{Build.PL} and @code{Makefile.PL} exist in the package distribution.  This preference can be reversed by specifying @code{#t} for the @code{#:make-maker?} parameter."
 msgstr "Esta variable se exporta en @code{(guix build-system perl)}. Implementa el procedimiento de construcción estándar para paquetes Perl, lo que o bien consiste en la ejecución de @code{perl Build.PL --prefix=/gnu/store/@dots{}}, seguido de @code{Build} y @code{Build install}; o en la ejecución de @code{perl Makefile.PL PREFIX=/gnu/store/@dots{}}, seguida de @code{make} y @code{make install}, dependiendo de si @code{Build.PL} o @code{Makefile.PL} están presentes en la distribución del paquete. El primero tiene preferencia si existen tanto @code{Build.PL} como @code{Makefile.PL} en la distribución del paquete. Esta preferencia puede ser invertida mediante la especificación del valor @code{#t} en el parámetro @code{#:make-maker?}."
 
 #. type: defvr
-#: doc/guix.texi:6529
+#: doc/guix.texi:7705
 msgid "The initial @code{perl Makefile.PL} or @code{perl Build.PL} invocation passes flags specified by the @code{#:make-maker-flags} or @code{#:module-build-flags} parameter, respectively."
 msgstr "La invocación inicial de @code{perl Makefile.PL} o @code{perl Build.PL} pasa a su vez las opciones especificadas por los parámetros @code{#:make-maker-flags} o @code{#:module-build-flags}, respectivamente."
 
 #. type: defvr
-#: doc/guix.texi:6531
+#: doc/guix.texi:7707
 msgid "Which Perl package is used can be specified with @code{#:perl}."
 msgstr "El paquete Perl usado puede especificarse con @code{#:perl}."
 
 #. type: defvr
-#: doc/guix.texi:6533
+#: doc/guix.texi:7709
 #, no-wrap
 msgid "{Scheme Variable} qt-build-system"
 msgstr "{Variable Scheme} qt-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6536
+#: doc/guix.texi:7712
 msgid "This variable is exported by @code{(guix build-system qt)}.  It is intended for use with applications using Qt or KDE."
 msgstr "Esta variable se exporta en @code{(guix build-system qt)}. Está pensado para usarse con aplicaciones que usen Qt o KDE."
 
 #. type: defvr
-#: doc/guix.texi:6539
+#: doc/guix.texi:7715
 msgid "This build system adds the following two phases to the ones defined by @code{cmake-build-system}:"
 msgstr "Este sistema de construcción añade las dos fases siguientes a las definidas en @var{cmake-build-system}:"
 
 #. type: item
-#: doc/guix.texi:6541
+#: doc/guix.texi:7717
 #, no-wrap
 msgid "check-setup"
 msgstr "check-setup"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:6548
+#: doc/guix.texi:7724
 msgid "The phase @code{check-setup} prepares the environment for running the checks as commonly used by Qt test programs.  For now this only sets some environment variables: @code{QT_QPA_PLATFORM=offscreen}, @code{DBUS_FATAL_WARNINGS=0} and @code{CTEST_OUTPUT_ON_FAILURE=1}."
 msgstr "La fase @code{check-setup} prepara el entorno para la ejecución de las comprobaciones usadas habitualmente por los programas de pruebas de Qt. Por ahora únicamente proporciona valor a algunas variables de entorno: @code{QT_QPA_PLATFORM=offscreen}, @code{DBUS_FATAL_WARNINGS=0} y @code{CTEST_OUTPUT_ON_FAILURE=1}."
 
 #. type: table
-#: doc/guix.texi:6551
+#: doc/guix.texi:7727
 msgid "This phase is added before the @code{check} phase.  It's a separate phase to ease adjusting if necessary."
 msgstr "Esta fase se añade previamente a la fase @code{check}. Es una fase separada para facilitar el ajuste si fuese necesario."
 
 #. type: item
-#: doc/guix.texi:6552
+#: doc/guix.texi:7728
 #, no-wrap
 msgid "qt-wrap"
 msgstr "qt-wrap"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:6558
+#: doc/guix.texi:7734
 msgid "The phase @code{qt-wrap} searches for Qt5 plugin paths, QML paths and some XDG in the inputs and output.  In case some path is found, all programs in the output's @file{bin/}, @file{sbin/}, @file{libexec/} and @file{lib/libexec/} directories are wrapped in scripts defining the necessary environment variables."
 msgstr "La fase @code{qt-wrap} busca las rutas de módulos de Qt5, las rutas de QML y algunas rutas XDG en las entradas y la salida. En caso de que alguna ruta se encuentra, todos los programas en los directorios @file{bin/}, @file{sbin/}, @file{libexec/} y @file{lib/libexec/} de la salida se envuelven en guiones que definen las variables de entorno necesarias."
 
 #. type: table
-#: doc/guix.texi:6564
+#: doc/guix.texi:7740
 msgid "It is possible to exclude specific package outputs from that wrapping process by listing their names in the @code{#:qt-wrap-excluded-outputs} parameter.  This is useful when an output is known not to contain any Qt binaries, and where wrapping would gratuitously add a dependency of that output on Qt, KDE, or such."
 msgstr "Es posible excluir salidas específicas del paquete del proceso de recubrimiento enumerando sus nombres en el parámetro @code{#:qt-wrap-excluded-outputs}. Esto es útil cuando se sabe que una salida no contiene binarios que usen Qt, y cuando empaquetar gratuitamente añadiría una dependencia de dicha salida en Qt."
 
 #. type: table
-#: doc/guix.texi:6566
+#: doc/guix.texi:7742
 msgid "This phase is added after the @code{install} phase."
 msgstr "Ambas fases se añaden tras la fase @code{install}."
 
 #. type: defvr
-#: doc/guix.texi:6569
+#: doc/guix.texi:7745
 #, no-wrap
 msgid "{Scheme Variable} r-build-system"
 msgstr "{Variable Scheme} r-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6577
-msgid "This variable is exported by @code{(guix build-system r)}.  It implements the build procedure used by @uref{https://r-project.org, R} packages, which essentially is little more than running @code{R CMD INSTALL --library=/gnu/store/@dots{}} in an environment where @code{R_LIBS_SITE} contains the paths to all R package inputs.  Tests are run after installation using the R function @code{tools::testInstalledPackage}."
-msgstr "Esta variable se exporta en @code{(guix build-system r)}. Implementa el procedimiento de construcción usados por paquetes @uref{https://r-project.org, R}, lo que esencialmente es poco más que la ejecución de @code{R CMD INSTALL --library=/gnu/store/@dots{}} en un entorno donde @code{R_LIBS_SITE} contiene las rutas de todos los paquetes R de entrada. Las pruebas se ejecutan tras la instalación usando la función R @code{tools::testInstalledPackage}."
+#: doc/guix.texi:7753
+msgid "This variable is exported by @code{(guix build-system r)}.  It implements the build procedure used by @uref{https://r-project.org, R} packages, which essentially is little more than running @samp{R CMD INSTALL --library=/gnu/store/@dots{}} in an environment where @env{R_LIBS_SITE} contains the paths to all R package inputs.  Tests are run after installation using the R function @code{tools::testInstalledPackage}."
+msgstr "Esta variable se exporta en @code{(guix build-system r)}. Implementa el procedimiento de construcción usados por paquetes @uref{https://r-project.org, R}, lo que esencialmente es poco más que la ejecución de @samp{R CMD INSTALL --library=/gnu/store/@dots{}} en un entorno donde @env{R_LIBS_SITE} contiene las rutas de todos los paquetes R de entrada. Las pruebas se ejecutan tras la instalación usando la función R @code{tools::testInstalledPackage}."
 
 #. type: defvr
-#: doc/guix.texi:6579
+#: doc/guix.texi:7755
 #, no-wrap
 msgid "{Scheme Variable} rakudo-build-system"
 msgstr "{Variable Scheme} rakudo-build-system"
 
 # FUZZY
 #. type: defvr
-#: doc/guix.texi:6587
+#: doc/guix.texi:7763
 msgid "This variable is exported by @code{(guix build-system rakudo)}.  It implements the build procedure used by @uref{https://rakudo.org/, Rakudo} for @uref{https://perl6.org/, Perl6} packages. It installs the package to @code{/gnu/store/@dots{}/NAME-VERSION/share/perl6} and installs the binaries, library files and the resources, as well as wrap the files under the @code{bin/} directory.  Tests can be skipped by passing @code{#f} to the @code{tests?} parameter."
-msgstr "Esta variable se exporta en @code{(guix build-system rakudo)}. Implementa el procedimiento de construcción usado por @uref{https://rakudo.org/, Rakudo} para paquetes @uref{https://perl6.org/, Perl6}. Instala el paquete en @code{/gnu/store/@dots{}/NOMBRE-VERSIÓN/share/perl6} e instala los binarios, ficheros de bibliotecas y recursos, así como recubre los ficheros en el directorio @code{bin/}. Las pruebas pueden omitirse proporcionando @code{#f} en el parámetro @code{tests?}."
+msgstr "Esta variable se exporta en @code{(guix build-system rakudo)}. Implementa el procedimiento de construcción usado por @uref{https://rakudo.org/, Rakudo} para paquetes @uref{https://perl6.org/, Perl6}. Instala el paquete en @code{/gnu/store/@dots{}/NOMBRE-VERSIÓN/share/perl6} e instala los binarios, archivos de bibliotecas y recursos, así como recubre los archivos en el directorio @code{bin/}. Las pruebas pueden omitirse proporcionando @code{#f} en el parámetro @code{tests?}."
 
 #. type: defvr
-#: doc/guix.texi:6595
+#: doc/guix.texi:7771
 msgid "Which rakudo package is used can be specified with @code{rakudo}.  Which perl6-tap-harness package used for the tests can be specified with @code{#:prove6} or removed by passing @code{#f} to the @code{with-prove6?} parameter.  Which perl6-zef package used for tests and installing can be specified with @code{#:zef} or removed by passing @code{#f} to the @code{with-zef?} parameter."
 msgstr "El paquete rakudo en uso puede especificarse con @code{rakudo}. El paquete perl6-tap-harness en uso durante las pruebas puede especificarse con @code{#:prove6} o eliminarse proporcionando @code{#f} al parámetro @code{with-prove6?}. El paquete perl6-zef en uso durante las pruebas e instalación puede especificarse con @code{#:zef} o eliminarse proporcionando @code{#f} al parámetro @code{with-zef?}."
 
 #. type: defvr
-#: doc/guix.texi:6597
+#: doc/guix.texi:7773
 #, no-wrap
 msgid "{Scheme Variable} texlive-build-system"
 msgstr "{Variable Scheme} texlive-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6602
-msgid "This variable is exported by @code{(guix build-system texlive)}.  It is used to build TeX packages in batch mode with a specified engine.  The build system sets the @code{TEXINPUTS} variable to find all TeX source files in the inputs."
-msgstr "Esta variable se exporta en @code{(guix build-system texlive)}. Se usa para construir paquetes TeX en modo de procesamiento de lotes con el motor especificado. El sistema de construcción fija la variable @code{TEXINPUTS} para encontrar todos los ficheros de fuentes TeX en las entradas."
+#: doc/guix.texi:7778
+msgid "This variable is exported by @code{(guix build-system texlive)}.  It is used to build TeX packages in batch mode with a specified engine.  The build system sets the @env{TEXINPUTS} variable to find all TeX source files in the inputs."
+msgstr "Esta variable se exporta en @code{(guix build-system texlive)}. Se usa para construir paquetes TeX en modo de procesamiento de lotes con el motor especificado. El sistema de construcción proporciona valor a la variable @env{TEXINPUTS} para encontrar todos los archivos de fuentes TeX en las entradas."
 
 #. type: defvr
-#: doc/guix.texi:6611
+#: doc/guix.texi:7787
 msgid "By default it runs @code{luatex} on all files ending on @code{ins}.  A different engine and format can be specified with the @code{#:tex-format} argument.  Different build targets can be specified with the @code{#:build-targets} argument, which expects a list of file names.  The build system adds only @code{texlive-bin} and @code{texlive-latex-base} (both from @code{(gnu packages tex}) to the inputs.  Both can be overridden with the arguments @code{#:texlive-bin} and @code{#:texlive-latex-base}, respectively."
-msgstr "Por defecto ejecuta @code{luatex} en todos los ficheros que terminan en @code{ins}. Un motor y formato diferente puede especificarse con el parámetro @code{#:tex-format}. Los diferentes objetivos de construcción pueden especificarse con el parámetro @code{#:build-targets}, que espera una lista de nombres de fichero. El sistema de construcción añade únicamente @code{texlive-bin} y @code{texlive-latex-base} (ambos desde @code{(gnu packages tex)} a las entradas. Ambos pueden forzarse con los parámetros @code{#:texlive-bin} y @code{#:texlive-latex-base} respectivamente."
+msgstr "Por defecto ejecuta @code{luatex} en todos los archivos que terminan en @code{ins}. Un motor y formato diferente puede especificarse con el parámetro @code{#:tex-format}. Los diferentes objetivos de construcción pueden especificarse con el parámetro @code{#:build-targets}, que espera una lista de nombres de archivo. El sistema de construcción añade únicamente @code{texlive-bin} y @code{texlive-latex-base} (ambos desde @code{(gnu packages tex)} a las entradas. Ambos pueden forzarse con los parámetros @code{#:texlive-bin} y @code{#:texlive-latex-base} respectivamente."
 
 #. type: defvr
-#: doc/guix.texi:6614
+#: doc/guix.texi:7790
 msgid "The @code{#:tex-directory} parameter tells the build system where to install the built files under the texmf tree."
-msgstr "El parámetro @code{#:tex-directory} le dice al sistema de construcción dónde instalar los ficheros construidos bajo el árbol texmf."
+msgstr "El parámetro @code{#:tex-directory} le dice al sistema de construcción dónde instalar los archivos construidos bajo el árbol texmf."
 
 #. type: defvr
-#: doc/guix.texi:6616
+#: doc/guix.texi:7792
 #, no-wrap
 msgid "{Scheme Variable} ruby-build-system"
 msgstr "{Variable Scheme} ruby-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6620
+#: doc/guix.texi:7796
 msgid "This variable is exported by @code{(guix build-system ruby)}.  It implements the RubyGems build procedure used by Ruby packages, which involves running @code{gem build} followed by @code{gem install}."
 msgstr "Esta variable se exporta en @code{(guix build-system ruby)}. Implementa el procedimiento de construcción de RubyGems usado por los paquetes Ruby, que implica la ejecución de @code{gem build} seguida de @code{gem install}."
 
 #. type: defvr
-#: doc/guix.texi:6628
+#: doc/guix.texi:7804
 msgid "The @code{source} field of a package that uses this build system typically references a gem archive, since this is the format that Ruby developers use when releasing their software.  The build system unpacks the gem archive, potentially patches the source, runs the test suite, repackages the gem, and installs it.  Additionally, directories and tarballs may be referenced to allow building unreleased gems from Git or a traditional source release tarball."
 msgstr "El campo @code{source} de un paquete que usa este sistema de construcción típicamente se refiere a un archivo gem, ya que este es el formato usado por las desarrolladoras Ruby cuando publican su software. El sistema de construcción desempaqueta el archivo gem, potencialmente parchea las fuentes, ejecuta la batería de pruebas, vuelve a empaquetar el archivo gem y lo instala. Adicionalmente, se puede hacer referencia a directorios y archivadores tar para permitir la construcción de archivos gem no publicados desde Git o un archivador tar de publicación de fuentes tradicional."
 
 #. type: defvr
-#: doc/guix.texi:6632
+#: doc/guix.texi:7808
 msgid "Which Ruby package is used can be specified with the @code{#:ruby} parameter.  A list of additional flags to be passed to the @command{gem} command can be specified with the @code{#:gem-flags} parameter."
 msgstr "Se puede especificar el paquete Ruby usado mediante el parámetro @code{#:ruby}. Una lista de opciones adicionales pueden pasarse a la orden @command{gem} en el parámetro @code{#:gem-flags}."
 
 #. type: defvr
-#: doc/guix.texi:6634
+#: doc/guix.texi:7810
 #, no-wrap
 msgid "{Scheme Variable} waf-build-system"
 msgstr "{Variable Scheme} waf-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6640
+#: doc/guix.texi:7816
 msgid "This variable is exported by @code{(guix build-system waf)}.  It implements a build procedure around the @code{waf} script.  The common phases---@code{configure}, @code{build}, and @code{install}---are implemented by passing their names as arguments to the @code{waf} script."
 msgstr "Esta variable se exporta en @code{(guix build-system waf)}. Implementa un procedimiento de construcción alrededor del guión @code{waf}. Las fases comunes---@code{configure}, @code{build} y @code{install}---se implementan pasando sus nombres como parámetros al guión @code{waf}."
 
 #. type: defvr
-#: doc/guix.texi:6644
+#: doc/guix.texi:7820
 msgid "The @code{waf} script is executed by the Python interpreter.  Which Python package is used to run the script can be specified with the @code{#:python} parameter."
 msgstr "El guión @code{waf} es ejecutado por el intérprete Python. El paquete Python usado para la ejecución puede ser especificado con el parámetro @code{#:python}."
 
 #. type: defvr
-#: doc/guix.texi:6646
+#: doc/guix.texi:7822
 #, no-wrap
 msgid "{Scheme Variable} scons-build-system"
 msgstr "{Variable Scheme} scons-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6652
+#: doc/guix.texi:7828
 msgid "This variable is exported by @code{(guix build-system scons)}.  It implements the build procedure used by the SCons software construction tool.  This build system runs @code{scons} to build the package, @code{scons test} to run tests, and then @code{scons install} to install the package."
 msgstr "Esta variable se exporta en @code{(guix build-system scons)}. Implementa en procedimiento de construcción usado por la herramienta de construcción de software SCons. Este sistema de construcción ejecuta @code{scons} para construir el paquete, @code{scons test} para ejecutar las pruebas y después @code{scons install} para instalar el paquete."
 
 #. type: defvr
-#: doc/guix.texi:6659
+#: doc/guix.texi:7835
 msgid "Additional flags to be passed to @code{scons} can be specified with the @code{#:scons-flags} parameter.  The default build and install targets can be overridden with @code{#:build-targets} and @code{#:install-targets} respectively.  The version of Python used to run SCons can be specified by selecting the appropriate SCons package with the @code{#:scons} parameter."
 msgstr "Las opciones adicionales a pasar a @code{scons} se pueden especificar con el parámetro @code{#:scons-flags}. Los objetivos predeterminados de construcción (build) e instalación (install) pueden modificarse con @code{#:build-targets} y @code{#:install-targets} respectivamente. La versión de Python usada para ejecutar SCons puede especificarse seleccionando el paquete SCons apropiado con el parámetro @code{#:scons}."
 
 #. type: defvr
-#: doc/guix.texi:6661
+#: doc/guix.texi:7837
 #, no-wrap
 msgid "{Scheme Variable} haskell-build-system"
 msgstr "{Variable Scheme} haskell-build-system"
 
 # FUZZY
 #. type: defvr
-#: doc/guix.texi:6675
+#: doc/guix.texi:7851
 msgid "This variable is exported by @code{(guix build-system haskell)}.  It implements the Cabal build procedure used by Haskell packages, which involves running @code{runhaskell Setup.hs configure --prefix=/gnu/store/@dots{}} and @code{runhaskell Setup.hs build}.  Instead of installing the package by running @code{runhaskell Setup.hs install}, to avoid trying to register libraries in the read-only compiler store directory, the build system uses @code{runhaskell Setup.hs copy}, followed by @code{runhaskell Setup.hs register}.  In addition, the build system generates the package documentation by running @code{runhaskell Setup.hs haddock}, unless @code{#:haddock? #f} is passed.  Optional Haddock parameters can be passed with the help of the @code{#:haddock-flags} parameter.  If the file @code{Setup.hs} is not found, the build system looks for @code{Setup.lhs} instead."
-msgstr "Esta variable se exporta en @code{(guix build-system haskell)}. Implementa el procedimiento de construcción Cabal usado por paquetes Haskell, el cual implica la ejecución de @code{runhaskell Setup.hs configure --prefix=/gnu/store/@dots{}} y @code{runhaskell Setup.hs build}. En vez de instalar el paquete ejecutando @code{runhaskell Setup.hs install}, para evitar el intento de registro de bibliotecas en el directorio de solo-lectura del compilador en el almacén, el sistema de construcción usa @code{runhaskell Setup.hs copy}, seguido de @code{runhaskell Setup.hs register}. Además, el sistema de construcción genera la documentación del paquete ejecutando @code{runhaskell Setup.hs haddock}, a menos que se pasase @code{#:haddock? #f}. Parámetros opcionales de Haddock pueden proporcionarse con la ayuda del parámetro @code{#:haddock-flags}. Si el fichero @code{Setup.hs} no es encontrado, el sistema de construcción busca @code{Setup.lhs} a su vez."
+msgstr "Esta variable se exporta en @code{(guix build-system haskell)}. Implementa el procedimiento de construcción Cabal usado por paquetes Haskell, el cual implica la ejecución de @code{runhaskell Setup.hs configure --prefix=/gnu/store/@dots{}} y @code{runhaskell Setup.hs build}. En vez de instalar el paquete ejecutando @code{runhaskell Setup.hs install}, para evitar el intento de registro de bibliotecas en el directorio de solo-lectura del compilador en el almacén, el sistema de construcción usa @code{runhaskell Setup.hs copy}, seguido de @code{runhaskell Setup.hs register}. Además, el sistema de construcción genera la documentación del paquete ejecutando @code{runhaskell Setup.hs haddock}, a menos que se pasase @code{#:haddock? #f}. Parámetros opcionales de Haddock pueden proporcionarse con la ayuda del parámetro @code{#:haddock-flags}. Si el archivo @code{Setup.hs} no es encontrado, el sistema de construcción busca @code{Setup.lhs} a su vez."
 
 #. type: defvr
-#: doc/guix.texi:6678
+#: doc/guix.texi:7854
 msgid "Which Haskell compiler is used can be specified with the @code{#:haskell} parameter which defaults to @code{ghc}."
 msgstr "El compilador Haskell usado puede especificarse con el parámetro @code{#:haskell} cuyo valor predeterminado es @code{ghc}."
 
 #. type: defvr
-#: doc/guix.texi:6680
+#: doc/guix.texi:7856
 #, no-wrap
 msgid "{Scheme Variable} dub-build-system"
 msgstr "{Variable Scheme} dub-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6685
+#: doc/guix.texi:7861
 msgid "This variable is exported by @code{(guix build-system dub)}.  It implements the Dub build procedure used by D packages, which involves running @code{dub build} and @code{dub run}.  Installation is done by copying the files manually."
-msgstr "Esta variable se exporta en @code{(guix build-system dub)}. Implementa el procedimiento de construcción Dub usado por los paquetes D, que implica la ejecución de @code{dub build} y @code{dub run}. La instalación se lleva a cabo con la copia manual de los ficheros."
+msgstr "Esta variable se exporta en @code{(guix build-system dub)}. Implementa el procedimiento de construcción Dub usado por los paquetes D, que implica la ejecución de @code{dub build} y @code{dub run}. La instalación se lleva a cabo con la copia manual de los archivos."
 
 #. type: defvr
-#: doc/guix.texi:6688
+#: doc/guix.texi:7864
 msgid "Which D compiler is used can be specified with the @code{#:ldc} parameter which defaults to @code{ldc}."
 msgstr "El compilador D usado puede ser especificado con el parámetro @code{#:ldc} cuyo valor predeterminado es @code{ldc}."
 
 #. type: defvr
-#: doc/guix.texi:6690
+#: doc/guix.texi:7866
 #, no-wrap
 msgid "{Scheme Variable} emacs-build-system"
 msgstr "{Variable Scheme} emacs-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6694
+#: doc/guix.texi:7870
 msgid "This variable is exported by @code{(guix build-system emacs)}.  It implements an installation procedure similar to the packaging system of Emacs itself (@pxref{Packages,,, emacs, The GNU Emacs Manual})."
 msgstr "Esta variable se exporta en @code{(guix build-system emacs)}. Implementa un procedimiento de instalación similar al propio sistema de empaquetado de Emacs (@pxref{Packages,,, emacs, The GNU Emacs Manual})."
 
 #. type: defvr
-#: doc/guix.texi:6700
+#: doc/guix.texi:7876
 msgid "It first creates the @code{@code{package}-autoloads.el} file, then it byte compiles all Emacs Lisp files.  Differently from the Emacs packaging system, the Info documentation files are moved to the standard documentation directory and the @file{dir} file is deleted.  The Elisp package files are installed directly under @file{share/emacs/site-lisp}."
-msgstr "Primero crea el fichero @code{@var{paquete}-autoloads.el}, tras lo que compila todos los ficheros Emacs Lisp. De manera diferente al sistema de paquetes de Emacs, los ficheros de documentación Info se mueven al directorio estándar de documentación y se borra el fichero @file{dir}. Los ficheros del paquete Elisp se instalan directamente en @file{share/emacs/site-lisp}."
+msgstr "Primero crea el archivo @code{@var{paquete}-autoloads.el}, tras lo que compila todos los archivos Emacs Lisp. De manera diferente al sistema de paquetes de Emacs, los archivos de documentación Info se mueven al directorio estándar de documentación y se borra el archivo @file{dir}. Los archivos del paquete Elisp se instalan directamente en @file{share/emacs/site-lisp}."
 
 #. type: defvr
-#: doc/guix.texi:6702
+#: doc/guix.texi:7878
 #, no-wrap
 msgid "{Scheme Variable} font-build-system"
 msgstr "{Variable Scheme} font-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6708
+#: doc/guix.texi:7884
 msgid "This variable is exported by @code{(guix build-system font)}.  It implements an installation procedure for font packages where upstream provides pre-compiled TrueType, OpenType, etc.@: font files that merely need to be copied into place.  It copies font files to standard locations in the output directory."
-msgstr "Esta variable se exporta en @code{(guix build-system font)}. Implementa un procedimiento de instalación para paquetes de fuentes donde las proveedoras originales proporcionan ficheros de tipografía TrueType, OpenType, etc.@: precompilados que simplemente necesitan copiarse en su lugar. Copia los ficheros de tipografías a las localizaciones estándar en el directorio de salida."
+msgstr "Esta variable se exporta en @code{(guix build-system font)}. Implementa un procedimiento de instalación para paquetes de fuentes donde las proveedoras originales proporcionan archivos de tipografía TrueType, OpenType, etc.@: precompilados que simplemente necesitan copiarse en su lugar. Copia los archivos de tipografías a las localizaciones estándar en el directorio de salida."
 
 #. type: defvr
-#: doc/guix.texi:6710
+#: doc/guix.texi:7886
 #, no-wrap
 msgid "{Scheme Variable} meson-build-system"
 msgstr "{Variable Scheme} meson-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6714
+#: doc/guix.texi:7890
 msgid "This variable is exported by @code{(guix build-system meson)}.  It implements the build procedure for packages that use @url{https://mesonbuild.com, Meson} as their build system."
 msgstr "Esta variable se exporta en @code{(guix build-system meson)}. Implementa el procedimiento de construcción para paquetes que usan @url{https://mesonbuild.com, Meson} como su sistema de construcción."
 
 #. type: defvr
-#: doc/guix.texi:6720
+#: doc/guix.texi:7896
 msgid "It adds both Meson and @uref{https://ninja-build.org/, Ninja} to the set of inputs, and they can be changed with the parameters @code{#:meson} and @code{#:ninja} if needed.  The default Meson is @code{meson-for-build}, which is special because it doesn't clear the @code{RUNPATH} of binaries and libraries when they are installed."
 msgstr "Añade Meson y @uref{https://ninja-build.org/, Ninja} al conjunto de entradas, y pueden cambiarse con los parámetros @code{#:meson} y @code{#:ninja} en caso necesario. La versión de Meson predeterminada es @code{meson-for-build}, la cual es especial puesto que no limpia el @code{RUNPATH} de los binarios y bibliotecas durante la instalación."
 
 #. type: defvr
-#: doc/guix.texi:6723
+#: doc/guix.texi:7899
 msgid "This build system is an extension of @code{gnu-build-system}, but with the following phases changed to some specific for Meson:"
 msgstr "Este sistema de construcción es una extensión de @var{gnu-build-system}, pero con las siguientes fases cambiadas por otras específicas para Meson:"
 
 #. type: table
-#: doc/guix.texi:6730
-msgid "The phase runs @code{meson} with the flags specified in @code{#:configure-flags}.  The flag @code{--build-type} is always set to @code{plain} unless something else is specified in @code{#:build-type}."
-msgstr "Esta fase ejecuta @code{meson} con las opciones especificadas en @code{#:configure-flags}. La opción @code{--build-type} siempre se fija a @code{plain} a menos que se especifique algo distinto en @code{#:build-type}."
+#: doc/guix.texi:7907
+msgid "The phase runs @code{meson} with the flags specified in @code{#:configure-flags}.  The flag @option{--buildtype} is always set to @code{debugoptimized} unless something else is specified in @code{#:build-type}."
+msgstr "Esta fase ejecuta @code{meson} con las opciones especificadas en @code{#:configure-flags}. La opción @option{--buildtype} recibe el valor @code{debugoptimized} excepto cuando se especifique algo distinto en @code{#:build-type}."
 
 #. type: table
-#: doc/guix.texi:6734
+#: doc/guix.texi:7911
 msgid "The phase runs @code{ninja} to build the package in parallel by default, but this can be changed with @code{#:parallel-build?}."
 msgstr "Esta fase ejecuta @code{ninja} para construir el paquete en paralelo por defecto, pero esto puede cambiarse con @code{#:parallel-build?}."
 
 #. type: table
-#: doc/guix.texi:6738
+#: doc/guix.texi:7915
 msgid "The phase runs @code{ninja} with the target specified in @code{#:test-target}, which is @code{\"test\"} by default."
 msgstr "Esta fase ejecuta @code{ninja} con el objetivo especificado en @code{#:test-target}, cuyo valor predeterminado es @code{\"test\"}."
 
 #. type: table
-#: doc/guix.texi:6741
+#: doc/guix.texi:7918
 msgid "The phase runs @code{ninja install} and can not be changed."
 msgstr "Esta fase ejecuta @code{ninja install} y no puede cambiarse."
 
 #. type: defvr
-#: doc/guix.texi:6744
+#: doc/guix.texi:7921
 msgid "Apart from that, the build system also adds the following phases:"
 msgstr "Aparte de estas, el sistema de ejecución también añade las siguientes fases:"
 
 #. type: item
-#: doc/guix.texi:6747
+#: doc/guix.texi:7924
 #, no-wrap
 msgid "fix-runpath"
 msgstr "fix-runpath"
 
 #. type: table
-#: doc/guix.texi:6754
+#: doc/guix.texi:7931
 msgid "This phase ensures that all binaries can find the libraries they need.  It searches for required libraries in subdirectories of the package being built, and adds those to @code{RUNPATH} where needed.  It also removes references to libraries left over from the build phase by @code{meson-for-build}, such as test dependencies, that aren't actually required for the program to run."
 msgstr "Esta fase se asegura de que todos los binarios pueden encontrar las bibliotecas que necesitan. Busca las bibliotecas necesarias en subdirectorios del paquete en construcción, y añade estas a @code{RUNPATH} en caso necesario. También elimina referencias a bibliotecas introducidas en la fase de construcción por @code{meson-for-build}, como las dependencias de las pruebas, que no se necesitan realmente para la ejecución del programa."
 
 #. type: table
-#: doc/guix.texi:6758 doc/guix.texi:6762
+#: doc/guix.texi:7935 doc/guix.texi:7939
 msgid "This phase is the phase provided by @code{glib-or-gtk-build-system}, and it is not enabled by default.  It can be enabled with @code{#:glib-or-gtk?}."
 msgstr "Esta fase es la fase proporcionada por @code{glib-or-gtk-build-system}, y no está activa por defecto. Puede activarse con @code{#:glib-or-gtk}."
 
 #. type: defvr
-#: doc/guix.texi:6765
+#: doc/guix.texi:7942
 #, no-wrap
 msgid "{Scheme Variable} linux-module-build-system"
 msgstr "{Variable Scheme} linux-module-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6767
+#: doc/guix.texi:7944
 msgid "@code{linux-module-build-system} allows building Linux kernel modules."
 msgstr "@var{linux-module-build-system} permite la construcción de módulos del núcleo Linux."
 
 #. type: defvr
-#: doc/guix.texi:6771
+#: doc/guix.texi:7948
 msgid "This build system is an extension of @code{gnu-build-system}, but with the following phases changed:"
 msgstr "Este sistema de construcción es una extensión de @var{gnu-build-system}, pero con las siguientes fases cambiadas:"
 
 #. type: table
-#: doc/guix.texi:6777
+#: doc/guix.texi:7954
 msgid "This phase configures the environment so that the Linux kernel's Makefile can be used to build the external kernel module."
 msgstr "Esta fase configura el entorno de modo que el Makefile del núcleo Linux pueda usarse para la construcción del módulo externo del núcleo."
 
 #. type: table
-#: doc/guix.texi:6781
+#: doc/guix.texi:7958
 msgid "This phase uses the Linux kernel's Makefile in order to build the external kernel module."
 msgstr "Esta fase usa el Makefile del núcleo Linux para construir el módulo externo del núcleo."
 
 #. type: table
-#: doc/guix.texi:6785
+#: doc/guix.texi:7962
 msgid "This phase uses the Linux kernel's Makefile in order to install the external kernel module."
 msgstr "Esta fase usa el Makefile del núcleo Linux para instalar el módulo externo del núcleo."
 
+# FUZZY
 #. type: defvr
-#: doc/guix.texi:6790
-msgid "It is possible and useful to specify the Linux kernel to use for building the module (in the \"arguments\" form of a package using the linux-module-build-system, use the key #:linux to specify it)."
-msgstr "Es posible y útil especificar el núcleo Linux usado para la construcción del módulo (en la forma \"arguments\" de un paquete que usa linux-module-build-system use el parámetro #:linux para especificarlo)."
+#: doc/guix.texi:7967
+msgid "It is possible and useful to specify the Linux kernel to use for building the module (in the @code{arguments} form of a package using the @code{linux-module-build-system}, use the key @code{#:linux} to specify it)."
+msgstr "Es posible y útil especificar el núcleo Linux usado para la construcción del módulo (para ello debe usar el parámetro @code{#:linux} a través de la forma @code{arguments} en un paquete que use @code{linux-module-build-system})."
 
 #. type: defvr
-#: doc/guix.texi:6792
+#: doc/guix.texi:7969
 #, no-wrap
 msgid "{Scheme Variable} node-build-system"
 msgstr "{Variable Scheme} node-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6797
+#: doc/guix.texi:7974
 msgid "This variable is exported by @code{(guix build-system node)}.  It implements the build procedure used by @uref{https://nodejs.org, Node.js}, which implements an approximation of the @code{npm install} command, followed by an @code{npm test} command."
 msgstr "Esta variable se exporta en @code{(guix build-system node)}. Implementa el procedimiento de construcción usado por @uref{https://nodejs.org, Node.js}, que implementa una aproximación de la orden @code{npm install}, seguida de una orden @code{npm test}."
 
 #. type: defvr
-#: doc/guix.texi:6801
+#: doc/guix.texi:7978
 msgid "Which Node.js package is used to interpret the @code{npm} commands can be specified with the @code{#:node} parameter which defaults to @code{node}."
 msgstr "El paquete Node.js usado para interpretar las órdenes @code{npm} puede especificarse a través del parámetro @code{#:node} cuyo valor predeterminado es @code{node}."
 
 #. type: Plain text
-#: doc/guix.texi:6807
+#: doc/guix.texi:7984
 msgid "Lastly, for packages that do not need anything as sophisticated, a ``trivial'' build system is provided.  It is trivial in the sense that it provides basically no support: it does not pull any implicit inputs, and does not have a notion of build phases."
 msgstr "Por último, para paquetes que no necesiten nada tan sofisticado se proporciona un sistema de construcción ``trivial''. Es trivial en el sentido de que no proporciona prácticamente funcionalidad: no incorpora entradas implícitas y no tiene una noción de fases de construcción."
 
 #. type: defvr
-#: doc/guix.texi:6808
+#: doc/guix.texi:7985
 #, no-wrap
 msgid "{Scheme Variable} trivial-build-system"
 msgstr "{Variable Scheme} trivial-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6810
+#: doc/guix.texi:7987
 msgid "This variable is exported by @code{(guix build-system trivial)}."
 msgstr "Esta variable se exporta en @code{(guix build-system trivial)}."
 
 #. type: defvr
-#: doc/guix.texi:6815
+#: doc/guix.texi:7992
 msgid "This build system requires a @code{#:builder} argument.  This argument must be a Scheme expression that builds the package output(s)---as with @code{build-expression->derivation} (@pxref{Derivations, @code{build-expression->derivation}})."
 msgstr "Este sistema de construcción necesita un parámetro @code{#:builder}. Este parámetro debe ser una expresión Scheme que construya la(s) salida(s) del paquete---como en @code{build-expression->derivation} (@pxref{Derivations, @code{build-expression->derivation}})."
 
 #. type: cindex
-#: doc/guix.texi:6821
+#: doc/guix.texi:7997
+#, no-wrap
+msgid "build phases, for packages"
+msgstr "fases de construcción, para paquetes"
+
+# FUZZY
+#. type: Plain text
+#: doc/guix.texi:8003
+msgid "Almost all package build systems implement a notion @dfn{build phases}: a sequence of actions that the build system executes, when you build the package, leading to the installed byproducts in the store.  A notable exception is the ``bare-bones'' @code{trivial-build-system} (@pxref{Build Systems})."
+msgstr "Prácticamente todos los sistemas de construcción de paquetes implementan una noción de @dfn{fases de construcción}: una secuencia de acciones ejecutadas por el sistema de construcción, cuando usted construya el paquete, que conducen a la instalación de su producción en el almacén. Una excepción notable es el sistema de construcción trivial @code{trivial-build-system} (@pxref{Build Systems})."
+
+#. type: Plain text
+#: doc/guix.texi:8017
+msgid "As discussed in the previous section, those build systems provide a standard list of phases.  For @code{gnu-build-system}, the standard phases include an @code{unpack} phase to unpack the source code tarball, a @command{configure} phase to run @code{./configure}, a @code{build} phase to run @command{make}, and (among others) an @code{install} phase to run @command{make install}; @pxref{Build Systems}, for a more detailed view of these phases.  Likewise, @code{cmake-build-system} inherits these phases, but its @code{configure} phase runs @command{cmake} instead of @command{./configure}.  Other build systems, such as @code{python-build-system}, have a wholly different list of standard phases.  All this code runs on the @dfn{build side}: it is evaluated when you actually build the package, in a dedicated build process spawned by the build daemon (@pxref{Invoking guix-daemon})."
+msgstr "Como se ha tratado en las secciones anteriores, dichos sistemas de construcción proporcionan una lista de fases estándar. Las fáses estándar de @code{gnu-build-system} incluyen una fase @code{unpack} para desempaquetar el archivador de código fuente, una fase @command{configure} para ejecutar @code{./configure}, una fase @code{build} para ejecutar @command{make}, y (entre otras) una fase @code{install} para ejecutar @command{make install}; @pxref{Build Systems} para obtener una visión más detallada de estas fases. De igual modo @code{cmake-build-system} hereda estas fases, pero su fase @code{configure} ejecuta @command{cmake} en vez de @command{./configure}. Otros sistemas de construcción, como @code{python-build-system}, tienen una lista de fases de construcción completamente diferente. Todo este código se ejecuta en el @dfn{lado de la construcción}: se evalua cuando realmente construya el paquete, en un proceso de construcción dedicado que lanza el daemon de construcción (@pxref{Invoking guix-daemon})."
+
+#. type: Plain text
+#: doc/guix.texi:8024
+msgid "Build phases are represented as association lists or ``alists'' (@pxref{Association Lists,,, guile, GNU Guile Reference Manual}) where each key is a symbol for the name of the phase and the associated value is a procedure that accepts an arbitrary number of arguments.  By convention, those procedures receive information about the build in the form of @dfn{keyword parameters}, which they can use or ignore."
+msgstr "Las fases de construcción se representan como listas asociativas o ``alists'' (@pxref{Association Lists,,, guile, GNU Guile Reference Manual}) donde cada clave es un símbolo que nombra a la fase y el valor asociado es un procedimiento que acepta un número arbitrario de parámetros. Por convención, estos procedimientos reciben información sobre la construcción en forma de @dfn{parámetros que usan palabras clave}, de los cuales pueden hacer uso o ignorarlos."
+
+#. type: Plain text
+#: doc/guix.texi:8030
+msgid "For example, here is how @code{(guix build gnu-build-system)} defines @code{%standard-phases}, the variable holding its alist of build phases@footnote{We present a simplified view of those build phases, but do take a look at @code{(guix build gnu-build-system)} to see all the details!}:"
+msgstr "Por ejemplo, esta es la forma en la que @code{(guix build gnu-build-system)} define @code{%standard-phases}, la variable que contiene su lista asociativa de fases de construcción@footnote{Presentamos una visión simplificada de las fases de dichas construcción, ¡eche un vistazo al módulo @code{(guix build gnu-build-system)} para ver todos los detalles!}:"
+
+#. type: lisp
+#: doc/guix.texi:8033
+#, no-wrap
+msgid ""
+";; The build phases of 'gnu-build-system'.\n"
+"\n"
+msgstr ""
+";; Las fases de construcción de 'gnu-build-system'.\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:8037
+#, no-wrap
+msgid ""
+"(define* (unpack #:key source #:allow-other-keys)\n"
+"  ;; Extract the source tarball.\n"
+"  (invoke \"tar\" \"xvf\" source))\n"
+"\n"
+msgstr ""
+"(define* (unpack #:key source #:allow-other-keys)\n"
+"  ;; Extracción del archivador tar de las fuentes.\n"
+"  (invoke \"tar\" \"xvf\" source))\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:8043
+#, no-wrap
+msgid ""
+"(define* (configure #:key outputs #:allow-other-keys)\n"
+"  ;; Run the 'configure' script.  Install to output \"out\".\n"
+"  (let ((out (assoc-ref outputs \"out\")))\n"
+"    (invoke \"./configure\"\n"
+"            (string-append \"--prefix=\" out))))\n"
+"\n"
+msgstr ""
+"(define* (configure #:key outputs #:allow-other-keys)\n"
+"  ;; Ejecución del guión 'configure'. Instalación de la salida\n"
+"  ;; en \"out\".\n"
+"  (let ((out (assoc-ref outputs \"out\")))\n"
+"    (invoke \"./configure\"\n"
+"            (string-append \"--prefix=\" out))))\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:8047
+#, no-wrap
+msgid ""
+"(define* (build #:allow-other-keys)\n"
+"  ;; Compile.\n"
+"  (invoke \"make\"))\n"
+"\n"
+msgstr ""
+"(define* (build #:allow-other-keys)\n"
+"  ;; Compilación.\n"
+"  (invoke \"make\"))\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:8054
+#, no-wrap
+msgid ""
+"(define* (check #:key (test-target \"check\") (tests? #true)\n"
+"                #:allow-other-keys)\n"
+"  ;; Run the test suite.\n"
+"  (if tests?\n"
+"      (invoke \"make\" test-target)\n"
+"      (display \"test suite not run\\n\")))\n"
+"\n"
+msgstr ""
+"(define* (check #:key (test-target \"check\") (tests? #true)\n"
+"                #:allow-other-keys)\n"
+"  ;; Ejecución de la batería de pruebas.\n"
+"  (if tests?\n"
+"      (invoke \"make\" test-target)\n"
+"      (display \"test suite not run\\n\")))\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:8058
+#, no-wrap
+msgid ""
+"(define* (install #:allow-other-keys)\n"
+"  ;; Install files to the prefix 'configure' specified.\n"
+"  (invoke \"make\" \"install\"))\n"
+"\n"
+msgstr ""
+"(define* (install #:allow-other-keys)\n"
+"  ;; Instalación de los archivos en el prefijo especificado\n"
+"  ;; al guión 'configure'.\n"
+"  (invoke \"make\" \"install\"))\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:8067
+#, no-wrap
+msgid ""
+"(define %standard-phases\n"
+"  ;; The list of standard phases (quite a few are omitted\n"
+"  ;; for brevity).  Each element is a symbol/procedure pair.\n"
+"  (list (cons 'unpack unpack)\n"
+"        (cons 'configure configure)\n"
+"        (cons 'build build)\n"
+"        (cons 'check check)\n"
+"        (cons 'install install)))\n"
+msgstr ""
+"(define %standard-phases\n"
+"  ;; La lista de las fases estándar (algunas se omiten por\n"
+"  ;; brevedad). Cada elemento es un par símbolo/procedimiento.\n"
+"  (list (cons 'unpack unpack)\n"
+"        (cons 'configure configure)\n"
+"        (cons 'build build)\n"
+"        (cons 'check check)\n"
+"        (cons 'install install)))\n"
+
+#. type: Plain text
+#: doc/guix.texi:8077
+msgid "This shows how @code{%standard-phases} is defined as a list of symbol/procedure pairs (@pxref{Pairs,,, guile, GNU Guile Reference Manual}).  The first pair associates the @code{unpack} procedure with the @code{unpack} symbol---a name; the second pair defines the @code{configure} phase similarly, and so on.  When building a package that uses @code{gnu-build-system} with its default list of phases, those phases are executed sequentially.  You can see the name of each phase started and completed in the build log of packages that you build."
+msgstr "Aquí se muestra como @code{%standard-phases} se define como una lista de pares símbolo/procedimiento (@pxref{Pairs,,, guile, GNU Guile Reference Manual}). El primer par asocia el procedimiento @code{unpack} con el símbolo @code{unpack}---un nombre; el segundo par define de manera similar la fase @code{configure}, etcétera. Cuando se construye un paquete que usa @code{gnu-build-system}, con su lista predeterminada de fases, estas fases se ejecutan de manera secuencial. Puede ver el nombre de cada fase a su inicio y tras su finalización en el registro de construcción de los paquetes que construya."
+
+#. type: Plain text
+#: doc/guix.texi:8083
+msgid "Let's now look at the procedures themselves.  Each one is defined with @code{define*}: @code{#:key} lists keyword parameters the procedure accepts, possibly with a default value, and @code{#:allow-other-keys} specifies that other keyword parameters are ignored (@pxref{Optional Arguments,,, guile, GNU Guile Reference Manual})."
+msgstr "Echemos un vistazo a los propios procedimientos. Cada uno se define con @code{define*}: @code{#:key} enumera parámetros con palabras clave que el procedimiento acepta, con la posibilidad de proporcionar un valor predeterminado, y @code{#:allow-other-keys} especifica que se ignora cualquier otra palabra clave en los parámetros (@pxref{Optional Arguments,,, guile, GNU Guile Reference Manual})."
+
+#. type: Plain text
+#: doc/guix.texi:8099
+msgid "The @code{unpack} procedure honors the @code{source} parameter, which the build system uses to pass the file name of the source tarball (or version control checkout), and it ignores other parameters.  The @code{configure} phase only cares about the @code{outputs} parameter, an alist mapping package output names to their store file name (@pxref{Packages with Multiple Outputs}).  It extracts the file name of for @code{out}, the default output, and passes it to @command{./configure} as the installation prefix, meaning that @command{make install} will eventually copy all the files in that directory (@pxref{Configuration, configuration and makefile conventions,, standards, GNU Coding Standards}).  @code{build} and @code{install} ignore all their arguments.  @code{check} honors the @code{test-target} argument, which specifies the name of the Makefile target to run tests; it prints a message and skips tests when @code{tests?} is false."
+msgstr "El procedimiento @code{unpack} utiliza el valor proporcionado al parámetro @code{source}, usado por el sistema de construcción usa para proporcionar el nombre de archivo del archivador de fuentes (o la copia de trabajo del sistema de control de versiones), e ignora otros parámetros. La fase @code{configure} únicamente tiene en cuenta el parámetro @code{outputs}, una lista asociativa de nombres de salida de paquetes con su nombre de archivo en el almacén (@pxref{Packages with Multiple Outputs}). Para ello se extrae el nombre de archivo de @code{out}, la salida predeterminada, y se lo proporciona a la orden @command{./configure} como el prefijo de la instalación (@code{./configure --prefix=@var{out}}), lo que significa que @command{make install} acabará copiando todos los archivos en dicho directorio (@pxref{Configuration, configuration and makefile conventions,, standards, GNU Coding Standards}). Tanto @code{build} como @code{install} ignoran todos los parámetros. @code{check} utiliza el parámetro @code{test-target}, que especifica el nombre del objetivo del archivo Makefile que debe ejecutarse para ejecutar las pruebas; se imprime un mensaje y se omiten las pruebas cuando el parámetro @code{tests?} tiene falso como valor."
+
+#. type: cindex
+#: doc/guix.texi:8100
+#, no-wrap
+msgid "build phases, customizing"
+msgstr "fases de construcción, personalización"
+
+# FUZZY FUZZY
+#. type: Plain text
+#: doc/guix.texi:8109
+msgid "The list of phases used for a particular package can be changed with the @code{#:phases} parameter of the build system.  Changing the set of build phases boils down to building a new alist of phases based on the @code{%standard-phases} alist described above.  This can be done with standard alist procedures such as @code{alist-delete} (@pxref{SRFI-1 Association Lists,,, guile, GNU Guile Reference Manual}); however, it is more convenient to do so with @code{modify-phases} (@pxref{Build Utilities, @code{modify-phases}})."
+msgstr "Se puede cambiar con el parámetro @code{#:phases} la lista de fases usada por el sistema de construcción para un paquete en particular. El cambio del conjunto de fases de construcción se realiza mediante la construcción de una nueva lista asociativa basada en la lista asociativa @code{%standard-phases} descrita previamente. Esto se puede llevar a cabo con procedimientos estándar para la manipulación de listas asociativas como @code{alist-delete} (@pxref{SRFI-1 Association Lists,,, guile, GNU Guile Reference Manual}); no obstante es más conveniente hacerlo con @code{modify-phases} (@pxref{Build Utilities, @code{modify-phases}})."
+
+#. type: Plain text
+#: doc/guix.texi:8114
+msgid "Here is an example of a package definition that removes the @code{configure} phase of @code{%standard-phases} and inserts a new phase before the @code{build} phase, called @code{set-prefix-in-makefile}:"
+msgstr "Aquí se encuentra un ejemplo de una definición de paquete que borra la fase @code{configure} de @code{%standard-phases} e inserta una nueva fase antes de la fase @code{build}, llamada @code{proporciona-prefijo-en-makefile}:"
+
+#. type: lisp
+#: doc/guix.texi:8134
+#, no-wrap
+msgid ""
+"(define-public example\n"
+"  (package\n"
+"    (name \"example\")\n"
+"    ;; other fields omitted\n"
+"    (build-system gnu-build-system)\n"
+"    (arguments\n"
+"     '(#:phases (modify-phases %standard-phases\n"
+"                  (delete 'configure)\n"
+"                  (add-before 'build 'set-prefix-in-makefile\n"
+"                    (lambda* (#:key outputs #:allow-other-keys)\n"
+"                      ;; Modify the makefile so that its\n"
+"                      ;; 'PREFIX' variable points to \"out\".\n"
+"                      (let ((out (assoc-ref outputs \"out\")))\n"
+"                        (substitute* \"Makefile\"\n"
+"                          ((\"PREFIX =.*\")\n"
+"                           (string-append \"PREFIX = \"\n"
+"                                          out \"\\n\")))\n"
+"                        #true))))))))\n"
+msgstr ""
+"(define-public ejemplo\n"
+"  (package\n"
+"    (name \"ejemplo\")\n"
+"    ;; se omiten otros campos\n"
+"    (build-system gnu-build-system)\n"
+"    (arguments\n"
+"     '(#:phases (modify-phases %standard-phases\n"
+"                  (delete 'configure)\n"
+"                  (add-before 'build 'proporciona-prefijo-en-makefile\n"
+"                    (lambda* (#:key outputs #:allow-other-keys)\n"
+"                      ;; Modifica el archivo de make para que la\n"
+"                      ;; variable 'PREFIX' apunte a \"out\".\n"
+"                      (let ((out (assoc-ref outputs \"out\")))\n"
+"                        (substitute* \"Makefile\"\n"
+"                          ((\"PREFIX =.*\")\n"
+"                           (string-append \"PREFIX = \"\n"
+"                                          out \"\\n\")))\n"
+"                        #true))))))))\n"
+
+#. type: Plain text
+#: doc/guix.texi:8140
+msgid "The new phase that is inserted is written as an anonymous procedure, introduced with @code{lambda*}; it honors the @code{outputs} parameter we have seen before.  @xref{Build Utilities}, for more about the helpers used by this phase, and for more examples of @code{modify-phases}."
+msgstr "La nueva fase insertada se escribe como un procedimiento anónimo, generado con @code{lambda*}; usa el parámetro @code{outputs} visto anteriormente. @xref{Build Utilities} para obtener más información sobre las funciones auxiliares usadas en esta fase y donde encontrará más ejemplos de uso de @code{modify-phases}."
+
+#. type: cindex
+#: doc/guix.texi:8141 doc/guix.texi:9114
+#, no-wrap
+msgid "code staging"
+msgstr "fases de evaluación, preparación de código para otras"
+
+#. type: cindex
+#: doc/guix.texi:8142 doc/guix.texi:9115
+#, no-wrap
+msgid "staging, of code"
+msgstr "preparación de código para otras fases de evaluación"
+
+#. type: Plain text
+#: doc/guix.texi:8149
+msgid "Keep in mind that build phases are code evaluated at the time the package is actually built.  This explains why the whole @code{modify-phases} expression above is quoted (it comes after the @code{'} or apostrophe): it is @dfn{staged} for later execution.  @xref{G-Expressions}, for an explanation of code staging and the @dfn{code strata} involved."
+msgstr "Tenga en cuenta que las fases de construcción son código que se evalúa cuando se realiza la construcción real del paquete. Esto explica por qué la expresión @code{modify-phases} al completo se encuentra escapada (viene precedida de @code{'}, un apóstrofe): se ha @dfn{preparado} para una ejecución posterior. @xref{G-Expressions} para obener una explicación sobre esta preparación del código para las distintas fases de ejecución y los distintos @dfn{estratos de código} implicados."
+
+#. type: Plain text
+#: doc/guix.texi:8159
+msgid "As soon as you start writing non-trivial package definitions (@pxref{Defining Packages}) or other build actions (@pxref{G-Expressions}), you will likely start looking for helpers for ``shell-like'' actions---creating directories, copying and deleting files recursively, manipulating build phases, and so on.  The @code{(guix build utils)} module provides such utility procedures."
+msgstr "En cuanto empiece a escribir definiciones de paquete no-triviales (@pxref{Defining Packages}) u otras acciones de construcción (@pxref{G-Expressions}), es probable que empiece a buscar funciones auxiliares parecidas a las habituales en el intérprete de ordenes---creación de directorios, borrado y copia recursiva de archivos, manipulación de fases de construcción, etcétera. El módulo @code{(guix build utils)} proporciona dichos procedimientos auxiliares."
+
+#. type: Plain text
+#: doc/guix.texi:8163
+msgid "Most build systems load @code{(guix build utils)} (@pxref{Build Systems}).  Thus, when writing custom build phases for your package definitions, you can usually assume those procedures are in scope."
+msgstr "La mayoría de sistemas de construcción cargan @code{(guix build utils)} (@pxref{Build Systems}). Por tanto, cuando construya fases de construcción personalizadas para sus definiciones de paquetes, habitualmente puede asumir que dichos procedimientos ya han sido incorporados al ámbito de ejecución."
+
+#. type: Plain text
+#: doc/guix.texi:8168
+msgid "When writing G-expressions, you can import @code{(guix build utils)} on the ``build side'' using @code{with-imported-modules} and then put it in scope with the @code{use-modules} form (@pxref{Using Guile Modules,,, guile, GNU Guile Reference Manual}):"
+msgstr "Cuando escriba G-expressions, puede importar @code{(guix build utils)} en el ``lado de la construcción'' mediante el uso @code{with-imported-modules} e importandolos al ámbito actual con la forma sintáctica @code{use-modules} (@pxref{Using Guile Modules,,, guile, GNU Guile Reference Manual}):"
+
+#. type: lisp
+#: doc/guix.texi:8175
+#, no-wrap
+msgid ""
+"(with-imported-modules '((guix build utils))  ;import it\n"
+"  (computed-file \"empty-tree\"\n"
+"                 #~(begin\n"
+"                     ;; Put it in scope.\n"
+"                     (use-modules (guix build utils))\n"
+"\n"
+msgstr ""
+"(with-imported-modules '((guix build utils))  ; Se importa.\n"
+"  (computed-file \"empty-tree\"\n"
+"                 #~(begin\n"
+"                     ;; Se añade al ámbito actual.\n"
+"                     (use-modules (guix build utils))\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:8178
+#, no-wrap
+msgid ""
+"                     ;; Happily use its 'mkdir-p' procedure.\n"
+"                     (mkdir-p (string-append #$output \"/a/b/c\")))))\n"
+msgstr ""
+"                     ;; Se usa su procedimiento 'mkdir-p'.\n"
+"                     (mkdir-p (string-append #$output \"/a/b/c\")))))\n"
+
+#. type: Plain text
+#: doc/guix.texi:8182
+msgid "The remainder of this section is the reference for most of the utility procedures provided by @code{(guix build utils)}."
+msgstr "El resto de esta sección es la referencia de la mayoría de las procedimientos de utilidad proporcionados por @code{(guix build utils)}."
+
+#. type: subsection
+#: doc/guix.texi:8185
+#, no-wrap
+msgid "Dealing with Store File Names"
+msgstr "Tratamiento de nombres de archivo del almacén"
+
+#. type: Plain text
+#: doc/guix.texi:8188
+msgid "This section documents procedures that deal with store file names."
+msgstr "Esta sección documenta procedimientos para el manejo de nombres de archivo del almacén."
+
+#. type: deffn
+#: doc/guix.texi:8189
+#, no-wrap
+msgid "{Scheme Procedure} %store-directory"
+msgstr "{Procedimiento Scheme} %store-directory"
+
+#. type: deffn
+#: doc/guix.texi:8191
+msgid "Return the directory name of the store."
+msgstr "Devuelve el nombre del directorio del almacén."
+
+#. type: deffn
+#: doc/guix.texi:8193
+#, no-wrap
+msgid "{Scheme Procedure} store-file-name? @var{file}"
+msgstr "{Procedimiento Scheme} store-file-name? @var{archivo}"
+
+#. type: deffn
+#: doc/guix.texi:8195
+msgid "Return true if @var{file} is in the store."
+msgstr "Devuelve verdadero si @var{archivo} está en el almacén."
+
+#. type: deffn
+#: doc/guix.texi:8197
+#, no-wrap
+msgid "{Scheme Procedure} strip-store-file-name @var{file}"
+msgstr "{Procedimiento Scheme} strip-store-file-name @var{archivo}"
+
+#. type: deffn
+#: doc/guix.texi:8200
+msgid "Strip the @file{/gnu/store} and hash from @var{file}, a store file name.  The result is typically a @code{\"@var{package}-@var{version}\"} string."
+msgstr "Elimina @file{/gnu/store} y el hash de @var{archivo}, un nombre de archivo del almacén. El resultado es habitualmente una cadena @code{\"@var{paquete}-@var{versión}\"}."
+
+#. type: deffn
+#: doc/guix.texi:8202
+#, no-wrap
+msgid "{Scheme Procedure} package-name->name+version @var{name}"
+msgstr "{Procedimiento Scheme} package-name>name+version @var{nombre}"
+
+#. type: deffn
+#: doc/guix.texi:8207
+msgid "Given @var{name}, a package name like @code{\"foo-0.9.1b\"}, return two values: @code{\"foo\"} and @code{\"0.9.1b\"}.  When the version part is unavailable, @var{name} and @code{#f} are returned.  The first hyphen followed by a digit is considered to introduce the version part."
+msgstr "Cuando se proporciona @var{nombre}, un nombre de paquete como @code{\"foo-0.9.1b\"}, devuelve dos valores: @code{\"foo\"} y @code{\"0.9.1b\"}. Cuando la perte de la versión no está disponible, se devuelve @var{nombre} y @code{#f}. Se considera que el primer guión seguido de un dígito introduce la parte de la versión."
+
+#. type: subsection
+#: doc/guix.texi:8209
+#, no-wrap
+msgid "File Types"
+msgstr "Tipos de archivo"
+
+#. type: Plain text
+#: doc/guix.texi:8212
+msgid "The procedures below deal with files and file types."
+msgstr "Los siguientes procedimientos tratan con archivos y tipos de archivos."
+
+#. type: deffn
+#: doc/guix.texi:8213
+#, no-wrap
+msgid "{Scheme Procedure} directory-exists? @var{dir}"
+msgstr "{Procedimiento Scheme} directory-exists? @var{dir}"
+
+#. type: deffn
+#: doc/guix.texi:8215
+msgid "Return @code{#t} if @var{dir} exists and is a directory."
+msgstr "Devuelve @code{#t} si @var{dir} existe y es un directorio."
+
+#. type: deffn
+#: doc/guix.texi:8217
+#, no-wrap
+msgid "{Scheme Procedure} executable-file? @var{file}"
+msgstr "{Procedimiento Scheme} executable-file @var{archivo}"
+
+#. type: deffn
+#: doc/guix.texi:8219
+msgid "Return @code{#t} if @var{file} exists and is executable."
+msgstr "Devuelve @code{#t} si @var{archivo} existe y es ejecutable."
+
+#. type: deffn
+#: doc/guix.texi:8221
+#, no-wrap
+msgid "{Scheme Procedure} symbolic-link? @var{file}"
+msgstr "{Procedimiento Scheme} symbolic-link= @var{archivo}"
+
+#. type: deffn
+#: doc/guix.texi:8223
+msgid "Return @code{#t} if @var{file} is a symbolic link (aka. a ``symlink'')."
+msgstr "Devuelve @code{#t} si @var{archivo} es enlace simbólico (``symlink'')."
+
+#. type: deffn
+#: doc/guix.texi:8225
+#, no-wrap
+msgid "{Scheme Procedure} elf-file? @var{file}"
+msgstr "{Procedimiento Scheme} elf-file? @var{archivo}"
+
+#. type: deffnx
+#: doc/guix.texi:8226
+#, no-wrap
+msgid "{Scheme Procedure} ar-file? @var{file}"
+msgstr "{Procedimiento Scheme} ar-file? @var{archivo}"
+
+#. type: deffnx
+#: doc/guix.texi:8227
+#, no-wrap
+msgid "{Scheme Procedure} gzip-file? @var{file}"
+msgstr "{Procedimiento Scheme} gzip-file? @var{archivo}"
+
+#. type: deffn
+#: doc/guix.texi:8230
+msgid "Return @code{#t} if @var{file} is, respectively, an ELF file, an @code{ar} archive (such as a @file{.a} static library), or a gzip file."
+msgstr "Devuelve @code{#t} si @var{archivo} es, respectivamente, un archivo ELF, un archivador @code{ar} (como una biblioteca estática @file{.a}), o un archivo comprimido con gzip."
+
+#. type: deffn
+#: doc/guix.texi:8232
+#, no-wrap
+msgid "{Scheme Procedure} reset-gzip-timestamp @var{file} [#:keep-mtime? #t]"
+msgstr "{Procedimiento Scheme} reset-gzip-timestamp @var{archivo} [#:keep-mtime? #t]"
+
+#. type: deffn
+#: doc/guix.texi:8236
+msgid "If @var{file} is a gzip file, reset its embedded timestamp (as with @command{gzip --no-name}) and return true.  Otherwise return @code{#f}.  When @var{keep-mtime?} is true, preserve @var{file}'s modification time."
+msgstr "Si @var{archivo} es un archivo gzip, reinicia su marca de tiempo embebida (como con @command{gzip --no-name}) y devuelve un valor verdadero. En otro caso devuelve @code{#f}. Cuando @var{keep-mtime?} es verdadero, se preserva el tiempo de modificación del @var{archivo}."
+
+#. type: subsection
+#: doc/guix.texi:8238
+#, no-wrap
+msgid "File Manipulation"
+msgstr "Manipulación de archivos"
+
+#. type: Plain text
+#: doc/guix.texi:8245
+msgid "The following procedures and macros help create, modify, and delete files.  They provide functionality comparable to common shell utilities such as @command{mkdir -p}, @command{cp -r}, @command{rm -r}, and @command{sed}.  They complement Guile's extensive, but low-level, file system interface (@pxref{POSIX,,, guile, GNU Guile Reference Manual})."
+msgstr "Los siguientes procedimientos y macros sirven de ayuda en la creación, modificación y borrado de archivos. Proporcionan funcionalidades comparables con las herrambientas comunes del intérprete de órdenes como @command{mkdir -p}, @command{cp -r}, @command{rm -r} y @command{sed}. Sirven de complemento a la interfaz de sistema de archivos de Guile, la cual es extensa pero de bajo nivel (@pxref{POSIX,,, guile, GNU Guile Reference Manual})."
+
+#. type: deffn
+#: doc/guix.texi:8246
+#, no-wrap
+msgid "{Scheme Syntax} with-directory-excursion @var{directory} @var{body}@dots{}"
+msgstr "{Sintaxis Scheme} with-directory-excursion @var{directorio} @var{cuerpo}@dots{}"
+
+#. type: deffn
+#: doc/guix.texi:8248
+msgid "Run @var{body} with @var{directory} as the process's current directory."
+msgstr "Ejecuta @var{cuerpo} con @var{directorio} como el directorio actual del proceso."
+
+#. type: deffn
+#: doc/guix.texi:8255
+msgid "Essentially, this macro changes the current directory to @var{directory} before evaluating @var{body}, using @code{chdir} (@pxref{Processes,,, guile, GNU Guile Reference Manual}).  It changes back to the initial directory when the dynamic extent of @var{body} is left, be it @i{via} normal procedure return or @i{via} a non-local exit such as an exception."
+msgstr "Esecialmente este macro cambia el directorio actual a @var{directorio} antes de evaluar @var{cuerpo}, usando @code{chdir} (@pxref{Processes,,, guile, GNU Guile Reference Manual}). Se vuelve al directorio inicial en cuanto se abandone el ámbito dinámico de @var{cuerpo}, ya sea a través de su finalización normal o de una salida no-local como pueda ser una excepción."
+
+#. type: deffn
+#: doc/guix.texi:8257
+#, no-wrap
+msgid "{Scheme Procedure} mkdir-p @var{dir}"
+msgstr "{Procedimiento Scheme} mkdir-p @var{dir}"
+
+#. type: deffn
+#: doc/guix.texi:8259
+msgid "Create directory @var{dir} and all its ancestors."
+msgstr "Crea el directorio @var{dir} y todos sus predecesores."
+
+#. type: deffn
+#: doc/guix.texi:8261
+#, no-wrap
+msgid "{Scheme Procedure} install-file @var{file} @var{directory}"
+msgstr "{Procedimiento Scheme} install-file @var{archivo} @var{directorio}"
+
+#. type: deffn
+#: doc/guix.texi:8264
+msgid "Create @var{directory} if it does not exist and copy @var{file} in there under the same name."
+msgstr "Crea @var{directorio} si no existe y copia @var{archivo} allí con el mismo nombre."
+
+#. type: deffn
+#: doc/guix.texi:8266
+#, no-wrap
+msgid "{Scheme Procedure} make-file-writable @var{file}"
+msgstr "{Procedimiento Scheme} make-file-writable @var{archivo}"
+
+#. type: deffn
+#: doc/guix.texi:8268
+msgid "Make @var{file} writable for its owner."
+msgstr "Activa el permiso de escritura en @var{archivo} para su propietaria."
+
+#. type: deffn
+#: doc/guix.texi:8270
+#, no-wrap
+msgid "{Scheme Procedure} copy-recursively @var{source} @var{destination} @"
+msgstr "{Procedimiento Scheme} copy-recursively @var{fuente} @var{destino} @"
+
+#. type: deffn
+#: doc/guix.texi:8277
+msgid "[#:log (current-output-port)] [#:follow-symlinks? #f] [#:keep-mtime? #f] Copy @var{source} directory to @var{destination}.  Follow symlinks if @var{follow-symlinks?} is true; otherwise, just preserve them.  When @var{keep-mtime?} is true, keep the modification time of the files in @var{source} on those of @var{destination}.  Write verbose output to the @var{log} port."
+msgstr ""
+"[#:log (current-output-port)] [#:follow-symlinks? #f] [#:keep-mtime? #f]\n"
+"\n"
+"Copia el directorio @var{fuente} en @var{destino}. Sigue los enlaces simbólicos si @var{follow-symlinks?} es verdadero; en otro caso se preservan. Cuando @var{keep-mtime?} es verdadero se mantiene el tiempo de modificación de los archivos en @var{fuente} en aquellos copiados a @var{destino}. Muestra información detallada en el puerto @var{log}."
+
+#. type: deffn
+#: doc/guix.texi:8279
+#, no-wrap
+msgid "{Scheme Procedure} delete-file-recursively @var{dir} @"
+msgstr "{Procedimiento Scheme} delete-file-recursively @var{dir} @"
+
+#. type: deffn
+#: doc/guix.texi:8284
+msgid "[#:follow-mounts? #f] Delete @var{dir} recursively, like @command{rm -rf}, without following symlinks.  Don't follow mount points either, unless @var{follow-mounts?} is true.  Report but ignore errors."
+msgstr ""
+"[#:follow-mounts? #f]\n"
+"Borra @var{dir} recursivamente, como @command{rm -rf}, sin seguir los enlaces simbólicos. No atraviesa puntos de montaje tampoco, a no ser que @var{follow-mounts?} sea verdadero. Informa de los errores, pero no devuelve error por ellos."
+
+#. type: deffn
+#: doc/guix.texi:8286
+#, no-wrap
+msgid "{Scheme Syntax} substitute* @var{file} @"
+msgstr "{Sintaxis Scheme} substitute @var{archivo} @"
+
+#. type: deffn
+#: doc/guix.texi:8291
+msgid "((@var{regexp} @var{match-var}@dots{}) @var{body}@dots{}) @dots{} Substitute @var{regexp} in @var{file} by the string returned by @var{body}.  @var{body} is evaluated with each @var{match-var} bound to the corresponding positional regexp sub-expression.  For example:"
+msgstr ""
+"((@var{expreg} @var{var-encontrada}@dots{}) @var{cuerpo}@dots{}) @dots{}\n"
+"\n"
+"Sustituye @var{expreg} en @var{archivo} con la cadena que devuelve @var{cuerpo}. La evaluación de @var{cuerpo} se realiza con cada @var{var-encontrada} asociada con la subexpresión posicional correspondiente de la expresión regular. Por ejemplo:"
+
+#. type: lisp
+#: doc/guix.texi:8298
+#, no-wrap
+msgid ""
+"(substitute* file\n"
+"  ((\"hello\")\n"
+"   \"good morning\\n\")\n"
+"  ((\"foo([a-z]+)bar(.*)$\" all letters end)\n"
+"   (string-append \"baz\" letter end)))\n"
+msgstr ""
+"(substitute* archivo\n"
+"  ((\"hola\")\n"
+"   \"buenos días\\n\")\n"
+"  ((\"algo([a-z]+)otro(.*)$\" todo letras fin)\n"
+"   (string-append \"cosa\" letras fin)))\n"
+
+#. type: deffn
+#: doc/guix.texi:8304
+msgid "Here, anytime a line of @var{file} contains @code{hello}, it is replaced by @code{good morning}.  Anytime a line of @var{file} matches the second regexp, @code{all} is bound to the complete match, @code{letters} is bound to the first sub-expression, and @code{end} is bound to the last one."
+msgstr "En este ejemplo, cada ver que una línea de @var{archivo} contiene @code{hola}, esto se sustituye por @code{buenos días}. Cada vez que una línea del @var{archivo} corresponde con la segunda expresión regular, @code{todo} se asocia con la cadena encontrada al completo, @code{letras} toma el valor de la primera sub-expresión, y @code{fin} se asocia con la última."
+
+#. type: deffn
+#: doc/guix.texi:8307
+msgid "When one of the @var{match-var} is @code{_}, no variable is bound to the corresponding match substring."
+msgstr "Cuando una de las @var{var-encontrada} es @code{_}, no se asocia ninguna variable con la correspondiente subcadena."
+
+#. type: deffn
+#: doc/guix.texi:8310
+msgid "Alternatively, @var{file} may be a list of file names, in which case they are all subject to the substitutions."
+msgstr "También puede proporcionarse una lista como @var{archivo}, en cuyo caso los nombres de archivo que contenga serán los que se sometan a las sustituciones."
+
+#. type: deffn
+#: doc/guix.texi:8313
+msgid "Be careful about using @code{$} to match the end of a line; by itself it won't match the terminating newline of a line."
+msgstr "Tenga cuidado con el uso de @code{$} para marcar el final de una línea; la cadena encontrada no contiene el caracter de salto de línea al final."
+
+#. type: subsection
+#: doc/guix.texi:8315
+#, no-wrap
+msgid "File Search"
+msgstr "Búsqueda de archivos"
+
+#. type: cindex
+#: doc/guix.texi:8317
+#, no-wrap
+msgid "file, searching"
+msgstr "archivo, buscar"
+
+#. type: Plain text
+#: doc/guix.texi:8319
+msgid "This section documents procedures to search and filter files."
+msgstr "Esta sección documenta procedimientos de búsqueda y filtrado de archivos."
+
+#. type: deffn
+#: doc/guix.texi:8320
+#, no-wrap
+msgid "{Scheme Procedure} file-name-predicate @var{regexp}"
+msgstr "{Procedimiento Scheme} file-name-predicate @var{expreg}"
+
+#. type: deffn
+#: doc/guix.texi:8323
+msgid "Return a predicate that returns true when passed a file name whose base name matches @var{regexp}."
+msgstr "Devuelve un predicado que devuelve un valor verdadero cuando el nombre del archivo proporcionado sin la parte del directorio corresponde con @var{expreg}."
+
+#. type: deffn
+#: doc/guix.texi:8325
+#, no-wrap
+msgid "{Scheme Procedure} find-files @var{dir} [@var{pred}] @"
+msgstr "{Procedimiento Scheme} find-files @var{dir} [@var{pred}] @"
+
+#. type: deffn
+#: doc/guix.texi:8336
+msgid "[#:stat lstat] [#:directories? #f] [#:fail-on-error? #f] Return the lexicographically sorted list of files under @var{dir} for which @var{pred} returns true.  @var{pred} is passed two arguments: the absolute file name, and its stat buffer; the default predicate always returns true.  @var{pred} can also be a regular expression, in which case it is equivalent to @code{(file-name-predicate @var{pred})}.  @var{stat} is used to obtain file information; using @code{lstat} means that symlinks are not followed.  If @var{directories?} is true, then directories will also be included.  If @var{fail-on-error?} is true, raise an exception upon error."
+msgstr ""
+"[#:stat lstat] [#:directories? #f] [#:fail-on-error? #f]\n"
+"Devuelve una lista ordenada lexicográficamente de los archivos que se encuentran en @var{dir} para los cuales @var{pred} devuelve verdadero. Se le proporcionan dos parámetros a @var{pred}: la ruta absoluta del archivo y su búfer de stat; el predicado predeteminado siempre devuelve verdadero. @var{pred} también puede ser una expresión regular, en cuyo caso es equivalente a escribir @code{(file-name-predicate @var{pred})}. @var{stat} se usa para obtener información del archivo; el uso de @code{lstat} significa que no se siguen los enlaces simbólicos. Si @var{directories?} es verdadero se incluyen también los directorios. Si @var{fail-on-error?} es verdadero, se emite una excepción en caso de error."
+
+#. type: Plain text
+#: doc/guix.texi:8340
+msgid "Here are a few examples where we assume that the current directory is the root of the Guix source tree:"
+msgstr "Aquí se pueden encontrar algunos ejemplos en los que se asume que el directorio actual es la raíz del arbol de fuentes de Guix:"
+
+#. type: lisp
+#: doc/guix.texi:8345
+#, no-wrap
+msgid ""
+";; List all the regular files in the current directory.\n"
+"(find-files \".\")\n"
+"@result{} (\"./.dir-locals.el\" \"./.gitignore\" @dots{})\n"
+"\n"
+msgstr ""
+";; Enumera todos los archivos regulares en el directorio actual.\n"
+"(find-files \".\")\n"
+"@result{} (\"./.dir-locals.el\" \"./.gitignore\" @dots{})\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:8349
+#, no-wrap
+msgid ""
+";; List all the .scm files under gnu/services.\n"
+"(find-files \"gnu/services\" \"\\\\.scm$\")\n"
+"@result{} (\"gnu/services/admin.scm\" \"gnu/services/audio.scm\" @dots{})\n"
+"\n"
+msgstr ""
+";; Enumera todos los archivos .scm en gnu/services.\n"
+"(find-files \"gnu/services\" \"\\\\.scm$\")\n"
+"@result{} (\"gnu/services/admin.scm\" \"gnu/services/audio.scm\" @dots{})\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:8353
+#, no-wrap
+msgid ""
+";; List ar files in the current directory.\n"
+"(find-files \".\" (lambda (file stat) (ar-file? file)))\n"
+"@result{} (\"./libformat.a\" \"./libstore.a\" @dots{})\n"
+msgstr ""
+";; Enumera los archivos ar en el directorio actual.\n"
+"(find-files \".\" (lambda (file stat) (ar-file? file)))\n"
+"@result{} (\"./libformat.a\" \"./libstore.a\" @dots{})\n"
+
+#. type: deffn
+#: doc/guix.texi:8355
+#, no-wrap
+msgid "{Scheme Procedure} which @var{program}"
+msgstr "{Procedimiento Scheme} which @var{programa}"
+
+#. type: deffn
+#: doc/guix.texi:8358
+msgid "Return the complete file name for @var{program} as found in @code{$PATH}, or @code{#f} if @var{program} could not be found."
+msgstr "Devuelve el nombre de archivo completo para @var{programa} tal y como se encuentra en @code{$PATH}, o @code{#f} si no se ha encontrado @var{programa}."
+
+#. type: Plain text
+#: doc/guix.texi:8369
+msgid "The @code{(guix build utils)} also contains tools to manipulate build phases as used by build systems (@pxref{Build Systems}).  Build phases are represented as association lists or ``alists'' (@pxref{Association Lists,,, guile, GNU Guile Reference Manual}) where each key is a symbol naming the phase and the associated value is a procedure (@pxref{Build Phases})."
+msgstr "@code{(guix build utils)} también contiene herramientas para la manipulación de las fases de construcción usadas por los sistemas de construcción (@pxref{Build Systems}). Las fases de construcción se representan como listas asociativas o ``alists'' (@pxref{Association Lists,,, guile, GNU Guile Reference Manual}) donde cada clave es un símbolo que nombra a la fase, y el valor asociado es un procedimiento (@pxref{Build Phases})."
+
+#. type: Plain text
+#: doc/guix.texi:8373
+msgid "Guile core and the @code{(srfi srfi-1)} module both provide tools to manipulate alists.  The @code{(guix build utils)} module complements those with tools written with build phases in mind."
+msgstr "Tanto el propio Guile como el módulo @code{(srfi srfi-1)} proporcionan herramientas para la manipulación de listas asociativas. El módulo @code{(guix build utils)} complementa estas con herramientas pensadas para las fases de construcción."
+
+#. type: cindex
+#: doc/guix.texi:8374
+#, no-wrap
+msgid "build phases, modifying"
+msgstr "fases de construcción, modificación"
+
+#. type: deffn
+#: doc/guix.texi:8375
+#, no-wrap
+msgid "{Scheme Syntax} modify-phases @var{phases} @var{clause}@dots{}"
+msgstr "{Sintaxis Scheme} modify-phases @var{fases} @var{cláusula}@dots{}"
+
+#. type: deffn
+#: doc/guix.texi:8378
+msgid "Modify @var{phases} sequentially as per each @var{clause}, which may have one of the following forms:"
+msgstr "Modifica @var{fases} de manera secuencial com cada indique cada @var{cláusula}, que puede tener una de las siguentes formas:"
+
+#. type: lisp
+#: doc/guix.texi:8384
+#, no-wrap
+msgid ""
+"(delete @var{old-phase-name})\n"
+"(replace @var{old-phase-name} @var{new-phase})\n"
+"(add-before @var{old-phase-name} @var{new-phase-name} @var{new-phase})\n"
+"(add-after @var{old-phase-name} @var{new-phase-name} @var{new-phase})\n"
+msgstr ""
+"(delete @var{nombre-fase})\n"
+"(replace @var{nombre-fase} @var{nueva-fase})\n"
+"(add-before @var{nombre-fase} @var{nombre-nueva-fase} @var{nueva-fase})\n"
+"(add-after @var{nombre-fase} @var{nombre-nueva-fase} @var{nueva-fase})\n"
+
+#. type: deffn
+#: doc/guix.texi:8388
+msgid "Where every @var{phase-name} above is an expression evaluating to a symbol, and @var{new-phase} an expression evaluating to a procedure."
+msgstr "Donde cada @var{nombre-fase} y @var{nombre-nueva-fase} es una expresión que evalúa aun símbolo, y @var{nueva-fase} es una expresión que evalúa a un procedimiento."
+
+#. type: Plain text
+#: doc/guix.texi:8399
+msgid "The example below is taken from the definition of the @code{grep} package.  It adds a phase to run after the @code{install} phase, called @code{fix-egrep-and-fgrep}.  That phase is a procedure (@code{lambda*} is for anonymous procedures) that takes a @code{#:outputs} keyword argument and ignores extra keyword arguments (@pxref{Optional Arguments,,, guile, GNU Guile Reference Manual}, for more on @code{lambda*} and optional and keyword arguments.)  The phase uses @code{substitute*} to modify the installed @file{egrep} and @file{fgrep} scripts so that they refer to @code{grep} by its absolute file name:"
+msgstr "El siguiente ejemplo se ha tomado de la definición del paquete @code{grep}. Añade una fase que se ejecuta tras la fase @code{install}, llamada @code{fix-egrep-and-fgrep}. Dicha fase es un procedimiento (@code{lambda*} genera procedimientos anónimos) que toma un parámetro de palabra clave @code{#:outputs} e ignora el resto (@pxref{Optional Arguments,,, guile, GNU Guile Reference Manual} para obtener más información sobre @code{lambda*} y los parámetros opcionales y de palabras clave). La fase usa @code{substitute*} para modificar los guiones @file{egrep} y @file{fgrep} instalados para que hagan referencia a @code{grep} con su ruta de archivo absoluta:"
+
+#. type: lisp
+#: doc/guix.texi:8413
+#, no-wrap
+msgid ""
+"(modify-phases %standard-phases\n"
+"  (add-after 'install 'fix-egrep-and-fgrep\n"
+"    ;; Patch 'egrep' and 'fgrep' to execute 'grep' via its\n"
+"    ;; absolute file name instead of searching for it in $PATH.\n"
+"    (lambda* (#:key outputs #:allow-other-keys)\n"
+"      (let* ((out (assoc-ref outputs \"out\"))\n"
+"             (bin (string-append out \"/bin\")))\n"
+"        (substitute* (list (string-append bin \"/egrep\")\n"
+"                           (string-append bin \"/fgrep\"))\n"
+"          ((\"^exec grep\")\n"
+"           (string-append \"exec \" bin \"/grep\")))\n"
+"        #t))))\n"
+msgstr ""
+"(modify-phases %standard-phases\n"
+"  (add-after 'install 'fix-egrep-and-fgrep\n"
+"    ;; Modificamos 'egrep' y 'fgrep' para que ejecuten 'grep' a\n"
+"    ;; través de la ruta absoluta de su archivo en vez de buscar\n"
+"    ;; dicho binario en la variable de entorno $PATH.\n"
+"    (lambda* (#:key outputs #:allow-other-keys)\n"
+"      (let* ((out (assoc-ref outputs \"out\"))\n"
+"             (bin (string-append out \"/bin\")))\n"
+"        (substitute* (list (string-append bin \"/egrep\")\n"
+"                           (string-append bin \"/fgrep\"))\n"
+"          ((\"^exec grep\")\n"
+"           (string-append \"exec \" bin \"/grep\")))\n"
+"        #t))))\n"
+
+#. type: Plain text
+#: doc/guix.texi:8420
+msgid "In the example below, phases are modified in two ways: the standard @code{configure} phase is deleted, presumably because the package does not have a @file{configure} script or anything similar, and the default @code{install} phase is replaced by one that manually copies the executable files to be installed:"
+msgstr "En el siguiente ejemplo se modifican las fases de dos maneras: se elimina la fase estándar @code{configure}, posiblemente porque el paquete no tiene un guión @file{configure} ni nada similar, y la fase @code{install} predeterminada se sustituye por una que copia manualmente el archivo ejecutable que se debe instalar:"
+
+#. type: lisp
+#: doc/guix.texi:8433
+#, no-wrap
+msgid ""
+"(modify-phases %standard-phases\n"
+"  (delete 'configure)      ;no 'configure' script\n"
+"  (replace 'install\n"
+"    (lambda* (#:key outputs #:allow-other-keys)\n"
+"      ;; The package's Makefile doesn't provide an \"install\"\n"
+"      ;; rule so do it by ourselves.\n"
+"      (let ((bin (string-append (assoc-ref outputs \"out\")\n"
+"                                \"/bin\")))\n"
+"        (install-file \"footswitch\" bin)\n"
+"        (install-file \"scythe\" bin)\n"
+"        #t))))\n"
+msgstr ""
+"(modify-phases %standard-phases\n"
+"  (delete 'configure)      ;no hay guión 'configure'\n"
+"  (replace 'install\n"
+"    (lambda* (#:key outputs #:allow-other-keys)\n"
+"      ;; El Makefile del paquete no tiene un objetivo\n"
+"      ;; doesn't provide an \"install\", así que lo\n"
+"      ;; hacemos a mano.\n"
+"      (let ((bin (string-append (assoc-ref outputs \"out\")\n"
+"                                \"/bin\")))\n"
+"        (install-file \"footswitch\" bin)\n"
+"        (install-file \"scythe\" bin)\n"
+"        #t))))\n"
+
+#. type: cindex
+#: doc/guix.texi:8441
 #, no-wrap
 msgid "store items"
 msgstr "elementos del almacén"
 
 #. type: cindex
-#: doc/guix.texi:6822
+#: doc/guix.texi:8442
 #, no-wrap
 msgid "store paths"
 msgstr "rutas del almacén"
 
 #. type: Plain text
-#: doc/guix.texi:6833
+#: doc/guix.texi:8453
 msgid "Conceptually, the @dfn{store} is the place where derivations that have been built successfully are stored---by default, @file{/gnu/store}.  Sub-directories in the store are referred to as @dfn{store items} or sometimes @dfn{store paths}.  The store has an associated database that contains information such as the store paths referred to by each store path, and the list of @emph{valid} store items---results of successful builds.  This database resides in @file{@var{localstatedir}/guix/db}, where @var{localstatedir} is the state directory specified @i{via} @option{--localstatedir} at configure time, usually @file{/var}."
 msgstr "Conceptualmente, el @dfn{almacén} es el lugar donde se almacenan las derivaciones cuya construcción fue satisfactoria---por defecto, @file{/gnu/store}. Los subdirectorios en el almacén se denominan @dfn{elementos del almacén} o @dfn{rutas del almacén} en ocasiones. El almacén tiene una base de datos asociada que contiene información como las rutas del almacén a las que referencia cada ruta del almacén, y la lista de elementos @emph{válidos} del almacén---los resultados de las construcciones satisfactorias. Esta base de datos reside en @file{@var{localstatedir}/guix/db}, donde @var{localstatedir} es el directorio de estado especificado @i{vía} @option{--localstatedir} en tiempo de configuración, normalmente @file{/var}."
 
 #. type: Plain text
-#: doc/guix.texi:6838
+#: doc/guix.texi:8458
 msgid "The store is @emph{always} accessed by the daemon on behalf of its clients (@pxref{Invoking guix-daemon}).  To manipulate the store, clients connect to the daemon over a Unix-domain socket, send requests to it, and read the result---these are remote procedure calls, or RPCs."
 msgstr "El almacén @emph{siempre} es accedido a través del daemon en delegación de sus clientes (@pxref{Invoking guix-daemon}). Para manipular el almacén, los clientes se conectan al daemon por un socket de dominio Unix, le envían peticiones y leen el resultado---esto son llamadas a procedimientos remotos, o RPC."
 
 #. type: quotation
-#: doc/guix.texi:6843
+#: doc/guix.texi:8463
 msgid "Users must @emph{never} modify files under @file{/gnu/store} directly.  This would lead to inconsistencies and break the immutability assumptions of Guix's functional model (@pxref{Introduction})."
-msgstr "Las usuarias @emph{nunca} deben modificar ficheros directamente bajo el directorio @file{/gnu/store}. Esto llevaría a inconsistencias y rompería las premisas de inmutabilidad del modelo funcional de Guix (@pxref{Introduction})."
+msgstr "Las usuarias @emph{nunca} deben modificar archivos directamente bajo el directorio @file{/gnu/store}. Esto llevaría a inconsistencias y rompería las premisas de inmutabilidad del modelo funcional de Guix (@pxref{Introduction})."
 
 #. type: quotation
-#: doc/guix.texi:6847
+#: doc/guix.texi:8467
 msgid "@xref{Invoking guix gc, @command{guix gc --verify}}, for information on how to check the integrity of the store and attempt recovery from accidental modifications."
 msgstr "@xref{Invoking guix gc, @command{guix gc --verify}}, para información sobre cómo comprobar la integridad del almacén e intentar recuperarse de modificaciones accidentales."
 
 #. type: Plain text
-#: doc/guix.texi:6854
-msgid "The @code{(guix store)} module provides procedures to connect to the daemon, and to perform RPCs.  These are described below.  By default, @code{open-connection}, and thus all the @command{guix} commands, connect to the local daemon or to the URI specified by the @code{GUIX_DAEMON_SOCKET} environment variable."
-msgstr "El módulo @code{(guix store)} proporciona procedimientos para conectarse al daemon y realizar RPCs. Estos se describen más adelante.  Por defecto, @code{open-connection}, y por tanto todas las órdenes @command{guix}, se conectan al daemon local o a la URI especificada en la variable de entorno @code{GUIX_DAEMON_SOCKET}."
+#: doc/guix.texi:8474
+msgid "The @code{(guix store)} module provides procedures to connect to the daemon, and to perform RPCs.  These are described below.  By default, @code{open-connection}, and thus all the @command{guix} commands, connect to the local daemon or to the URI specified by the @env{GUIX_DAEMON_SOCKET} environment variable."
+msgstr "El módulo @code{(guix store)} proporciona procedimientos para conectarse al daemon y realizar RPCs. Estos se describen más adelante.  Por defecto, @code{open-connection}, y por tanto todas las órdenes @command{guix}, se conectan al daemon local o a la URI especificada en la variable de entorno @env{GUIX_DAEMON_SOCKET}."
 
 #. type: defvr
-#: doc/guix.texi:6855
+#: doc/guix.texi:8475
 #, no-wrap
 msgid "{Environment Variable} GUIX_DAEMON_SOCKET"
 msgstr "{Variable de entorno} GUIX_DAEMON_SOCKET"
 
 #. type: defvr
-#: doc/guix.texi:6860
+#: doc/guix.texi:8480
 msgid "When set, the value of this variable should be a file name or a URI designating the daemon endpoint.  When it is a file name, it denotes a Unix-domain socket to connect to.  In addition to file names, the supported URI schemes are:"
-msgstr "Cuando se ha definido, el valor de esta variable debe ser un nombre de fichero o una URI designando el punto de conexión del daemon. Cuando es un nombre de fichero, denota un socket de dominio Unix al que conectarse. Además de nombres de ficheros, los esquemas de URI aceptados son:"
+msgstr "Cuando se ha definido, el valor de esta variable debe ser un nombre de archivo o una URI designando el punto de conexión del daemon. Cuando es un nombre de archivo, denota un socket de dominio Unix al que conectarse. Además de nombres de archivos, los esquemas de URI aceptados son:"
 
 #. type: code{#1}
-#: doc/guix.texi:6862 doc/guix.texi:20085
+#: doc/guix.texi:8482 doc/guix.texi:22776
 #, no-wrap
 msgid "file"
 msgstr "file"
 
 #. type: itemx
-#: doc/guix.texi:6863
+#: doc/guix.texi:8483
 #, no-wrap
 msgid "unix"
 msgstr "unix"
 
 #. type: table
-#: doc/guix.texi:6867
+#: doc/guix.texi:8487
 msgid "These are for Unix-domain sockets.  @code{file:///var/guix/daemon-socket/socket} is equivalent to @file{/var/guix/daemon-socket/socket}."
 msgstr "Estos son equivalentes a los sockets de dominio Unix. @code{file:///var/guix/daemon-socket/socket} es equivalente a @file{/var/guix/daemon-socket/socket}."
 
 #. type: item
-#: doc/guix.texi:6868
+#: doc/guix.texi:8488
 #, no-wrap
 msgid "guix"
 msgstr "guix"
 
 #. type: table
-#: doc/guix.texi:6876
+#: doc/guix.texi:8496
 msgid "These URIs denote connections over TCP/IP, without encryption nor authentication of the remote host.  The URI must specify the host name and optionally a port number (by default port 44146 is used):"
 msgstr "Estas URI denotan conexiones sobre TCP/IP, sin cifrado ni verificación de la máquina remota. La URI debe especificar el nombre de máquina y opcionalmente un número de puerto (por defecto se usa el puerto 44146):"
 
 #. type: example
-#: doc/guix.texi:6879
+#: doc/guix.texi:8499
 #, no-wrap
 msgid "guix://master.guix.example.org:1234\n"
 msgstr "guix://principal.guix.example.org:1234\n"
 
 #. type: table
-#: doc/guix.texi:6884
+#: doc/guix.texi:8504
 msgid "This setup is suitable on local networks, such as clusters, where only trusted nodes may connect to the build daemon at @code{master.guix.example.org}."
 msgstr "Esta configuración es apropiada para redes locales, como clusters, donde únicamente los nodos de confianza pueden conectarse al daemon de construcción en @code{principal.guix.example.org}."
 
 #. type: table
-#: doc/guix.texi:6888
-msgid "The @code{--listen} option of @command{guix-daemon} can be used to instruct it to listen for TCP connections (@pxref{Invoking guix-daemon, @code{--listen}})."
-msgstr "La opción @code{--listen} de @command{guix-daemon} puede usarse para indicarle que escuche conexiones TCP (@pxref{Invoking guix-daemon, @code{--listen}})."
+#: doc/guix.texi:8508
+msgid "The @option{--listen} option of @command{guix-daemon} can be used to instruct it to listen for TCP connections (@pxref{Invoking guix-daemon, @option{--listen}})."
+msgstr "La opción @option{--listen} de @command{guix-daemon} puede usarse para indicarle que escuche conexiones TCP (@pxref{Invoking guix-daemon, @option{--listen}})."
 
 #. type: item
-#: doc/guix.texi:6889
+#: doc/guix.texi:8509
 #, no-wrap
 msgid "ssh"
 msgstr "ssh"
 
 #. type: cindex
-#: doc/guix.texi:6890
+#: doc/guix.texi:8510
 #, no-wrap
 msgid "SSH access to build daemons"
 msgstr "acceso SSH a los daemons de construcción"
 
 #. type: table
-#: doc/guix.texi:6896
-msgid "These URIs allow you to connect to a remote daemon over SSH.  This feature requires Guile-SSH (@pxref{Requirements}) and a working @code{guile} binary in @code{PATH} on the destination machine.  It supports public key and GSSAPI authentication.  A typical URL might look like this:"
-msgstr "Estas URI le permiten conectarse a un daemon remoto sobre SSH. Esta característica necesita Guile-SSH (@pxref{Requirements}) y un binario @code{guile} funcional en @code{PATH} de la máquina destino. Permite la identificación mediante clave pública y GSSSAPI. Una URL típica podría ser así:"
+#: doc/guix.texi:8516
+msgid "These URIs allow you to connect to a remote daemon over SSH.  This feature requires Guile-SSH (@pxref{Requirements}) and a working @command{guile} binary in @env{PATH} on the destination machine.  It supports public key and GSSAPI authentication.  A typical URL might look like this:"
+msgstr "Estas URI le permiten conectarse a un daemon remoto sobre SSH. Esta característica necesita Guile-SSH (@pxref{Requirements}) y un binario @code{guile} funcional en @env{PATH} de la máquina destino. Permite la identificación mediante clave pública y GSSSAPI. Una URL típica podría ser así:"
 
 #. type: example
-#: doc/guix.texi:6899
+#: doc/guix.texi:8519
 #, no-wrap
 msgid "ssh://charlie@@guix.example.org:22\n"
 msgstr "ssh://carlos@@guix.example.org:22\n"
 
 #. type: table
-#: doc/guix.texi:6903
+#: doc/guix.texi:8523
 msgid "As for @command{guix copy}, the usual OpenSSH client configuration files are honored (@pxref{Invoking guix copy})."
-msgstr "Como con @command{guix copy}, se tienen en cuenta los ficheros habituales de configuración del cliente OpenSSH (@pxref{Invoking guix copy})."
+msgstr "Como con @command{guix copy}, se tienen en cuenta los archivos habituales de configuración del cliente OpenSSH (@pxref{Invoking guix copy})."
 
 #. type: defvr
-#: doc/guix.texi:6906
+#: doc/guix.texi:8526
 msgid "Additional URI schemes may be supported in the future."
 msgstr "Esquemas URI adicionales pueden ser aceptados en el futuro."
 
 #. type: quotation
-#: doc/guix.texi:6913
+#: doc/guix.texi:8533
 msgid "The ability to connect to remote build daemons is considered experimental as of @value{VERSION}.  Please get in touch with us to share any problems or suggestions you may have (@pxref{Contributing})."
 msgstr "La conexión con daemon de construcción remotos se considera experimental en @value{VERSION}. Por favor, contacte con nosotras para compartir cualquier problema o sugerencias que pueda tener (@pxref{Contributing})."
 
 #. type: deffn
-#: doc/guix.texi:6916
+#: doc/guix.texi:8536
 #, no-wrap
 msgid "{Scheme Procedure} open-connection [@var{uri}] [#:reserve-space? #t]"
 msgstr "{Procedimiento Scheme} open-connection [@var{uri}] [#:reserve-space? #t]"
 
 # FUZZY
 #. type: deffn
-#: doc/guix.texi:6921
+#: doc/guix.texi:8541
 msgid "Connect to the daemon over the Unix-domain socket at @var{uri} (a string).  When @var{reserve-space?} is true, instruct it to reserve a little bit of extra space on the file system so that the garbage collector can still operate should the disk become full.  Return a server object."
-msgstr "Abre una conexión al daemon a través del socket de dominio Unix apuntado por @var{uri} (una cadena). Cuando @var{reserve-space?} es verdadero, le indica que reserve un poco de espacio extra en el sistema de ficheros de modo que el recolector de basura pueda operar incluso cuando el disco se llene. Devuelve un objeto servidor."
+msgstr "Abre una conexión al daemon a través del socket de dominio Unix apuntado por @var{uri} (una cadena). Cuando @var{reserve-space?} es verdadero, le indica que reserve un poco de espacio extra en el sistema de archivos de modo que el recolector de basura pueda operar incluso cuando el disco se llene. Devuelve un objeto servidor."
 
 # FIXME!
 #. type: deffn
-#: doc/guix.texi:6924
+#: doc/guix.texi:8544
 msgid "@var{file} defaults to @code{%default-socket-path}, which is the normal location given the options that were passed to @command{configure}."
 msgstr "El valor por defecto de @var{uri} es @code{%default-socket-path}, que ese la ruta esperada según las opciones proporcionadas a @code{configure}."
 
 #. type: deffn
-#: doc/guix.texi:6926
+#: doc/guix.texi:8546
 #, no-wrap
 msgid "{Scheme Procedure} close-connection @var{server}"
 msgstr "{Procedimiento Scheme} close-connection @var{servidor}"
 
 #. type: deffn
-#: doc/guix.texi:6928
+#: doc/guix.texi:8548
 msgid "Close the connection to @var{server}."
 msgstr "Cierra la conexión al @var{servidor}."
 
 #. type: defvr
-#: doc/guix.texi:6930
+#: doc/guix.texi:8550
 #, no-wrap
 msgid "{Scheme Variable} current-build-output-port"
 msgstr "{Variable Scheme} current-build-output-port"
 
 #. type: defvr
-#: doc/guix.texi:6933
+#: doc/guix.texi:8553
 msgid "This variable is bound to a SRFI-39 parameter, which refers to the port where build and error logs sent by the daemon should be written."
 msgstr "Esta variable está enlazada a un parámetro SRFI-39, que referencia al puerto donde los logs de construcción y error enviados por el daemon deben escribirse."
 
 #. type: Plain text
-#: doc/guix.texi:6937
+#: doc/guix.texi:8557
 msgid "Procedures that make RPCs all take a server object as their first argument."
 msgstr "Los procedimientos que realizan RPCs toman todos como primer parámetro un objeto servidor."
 
 #. type: deffn
-#: doc/guix.texi:6938
+#: doc/guix.texi:8558
 #, no-wrap
 msgid "{Scheme Procedure} valid-path? @var{server} @var{path}"
 msgstr "{Procedimiento Scheme} valid-path? @var{servidor} @var{ruta}"
 
 #. type: cindex
-#: doc/guix.texi:6939
+#: doc/guix.texi:8559
 #, no-wrap
 msgid "invalid store items"
 msgstr "elementos del almacén no válidos"
 
 #. type: deffn
-#: doc/guix.texi:6944
-msgid "Return @code{#t} when @var{path} designates a valid store item and @code{#f} otherwise (an invalid item may exist on disk but still be invalid, for instance because it is the result of an aborted or failed build.)"
+#: doc/guix.texi:8564
+msgid "Return @code{#t} when @var{path} designates a valid store item and @code{#f} otherwise (an invalid item may exist on disk but still be invalid, for instance because it is the result of an aborted or failed build)."
 msgstr "Devuelve @code{#t} cuando @var{ruta} designa un elemento válido del almacén y @code{#f} en otro caso (un elemento no-válido puede existir en el disco pero aun así no ser válido, por ejemplo debido a que es el resultado de una construcción que se interrumpió o falló)."
 
 #. type: deffn
-#: doc/guix.texi:6947
+#: doc/guix.texi:8567
 msgid "A @code{&store-protocol-error} condition is raised if @var{path} is not prefixed by the store directory (@file{/gnu/store})."
 msgstr "Una condición @code{&store-protocol-error} se eleva si @var{ruta} no contiene como prefijo el directorio del almacén (@file{/gnu/store})."
 
 #. type: deffn
-#: doc/guix.texi:6949
+#: doc/guix.texi:8569
 #, no-wrap
 msgid "{Scheme Procedure} add-text-to-store @var{server} @var{name} @var{text} [@var{references}]"
 msgstr "{Procedimiento Scheme} add-text-to-store @var{servidor} @var{nombre} @var{texto} [@var{referencias}]"
 
 #. type: deffn
-#: doc/guix.texi:6953
+#: doc/guix.texi:8573
 msgid "Add @var{text} under file @var{name} in the store, and return its store path.  @var{references} is the list of store paths referred to by the resulting store path."
-msgstr "Añade @var{texto} bajo el fichero @var{nombre} en el almacén, y devuelve su ruta en el almacén. @var{referencias} es la lista de rutas del almacén a las que hace referencia la ruta del almacén resultante."
+msgstr "Añade @var{texto} bajo el archivo @var{nombre} en el almacén, y devuelve su ruta en el almacén. @var{referencias} es la lista de rutas del almacén a las que hace referencia la ruta del almacén resultante."
 
 #. type: deffn
-#: doc/guix.texi:6955
+#: doc/guix.texi:8575
 #, no-wrap
 msgid "{Scheme Procedure} build-derivations @var{store} @var{derivations} @"
 msgstr "{Procedimiento Scheme} build-derivations @var{almacén} @var{derivaciones} @"
 
 #. type: deffn
-#: doc/guix.texi:6960
+#: doc/guix.texi:8580
 msgid "[@var{mode}] Build @var{derivations}, a list of @code{<derivation>} objects, @file{.drv} file names, or derivation/output pairs, using the specified @var{mode}---@code{(build-mode normal)} by default."
 msgstr ""
 "[@var{modo}]\n"
-"Construye @var{derivaciones}, una lista de objetos @code{<derivation>}, nombres de fichero @file{.drv}, o pares derivación/salida, usando el @var{modo} especificado---@code{(build-mode normal)} en caso de omisión."
+"Construye @var{derivaciones}, una lista de objetos @code{<derivation>}, nombres de archivo @file{.drv}, o pares derivación/salida, usando el @var{modo} especificado---@code{(build-mode normal)} en caso de omisión."
 
 #. type: Plain text
-#: doc/guix.texi:6966
+#: doc/guix.texi:8586
 msgid "Note that the @code{(guix monads)} module provides a monad as well as monadic versions of the above procedures, with the goal of making it more convenient to work with code that accesses the store (@pxref{The Store Monad})."
 msgstr "Fíjese que el módulo @code{(guix monads)} proporciona una mónada así como versiones monádicas de los procedimientos previos, con el objetivo de hacer más conveniente el trabajo con código que accede al almacén (@pxref{The Store Monad})."
 
 #. type: i{#1}
-#: doc/guix.texi:6969
+#: doc/guix.texi:8589
 msgid "This section is currently incomplete."
 msgstr "Esta sección actualmente está incompleta."
 
 #. type: cindex
-#: doc/guix.texi:6973
+#: doc/guix.texi:8593
 #, no-wrap
 msgid "derivations"
 msgstr "derivaciones"
@@ -13907,106 +16781,106 @@ msgstr "derivaciones"
 # FUZZY
 # TODO: piece -> pieza...
 #. type: Plain text
-#: doc/guix.texi:6977
+#: doc/guix.texi:8597
 msgid "Low-level build actions and the environment in which they are performed are represented by @dfn{derivations}.  A derivation contains the following pieces of information:"
 msgstr "Las acciones de construcción a bajo nivel y el entorno en el que se realizan se representan mediante @dfn{derivaciones}. Una derivación contiene las siguientes piezas de información:"
 
 #. type: itemize
-#: doc/guix.texi:6982
+#: doc/guix.texi:8602
 msgid "The outputs of the derivation---derivations produce at least one file or directory in the store, but may produce more."
-msgstr "Las salidas de la derivación---las derivaciones producen al menos un fichero o directorio en el almacén, pero pueden producir más."
+msgstr "Las salidas de la derivación---las derivaciones producen al menos un archivo o directorio en el almacén, pero pueden producir más."
 
 #. type: cindex
-#: doc/guix.texi:6984
+#: doc/guix.texi:8604
 #, no-wrap
 msgid "build-time dependencies"
 msgstr "tiempo de construcción, dependencias"
 
 #. type: cindex
-#: doc/guix.texi:6985
+#: doc/guix.texi:8605
 #, no-wrap
 msgid "dependencies, build-time"
 msgstr "dependencias, tiempo de construcción"
 
 #. type: itemize
-#: doc/guix.texi:6989
-msgid "The inputs of the derivations---i.e., its build-time dependencies---which may be other derivations or plain files in the store (patches, build scripts, etc.)"
-msgstr "Las entradas de las derivaciones---es decir, sus dependencias de tiempo de construcción---, que pueden ser otras derivaciones o simples ficheros en el almacén (parches, guiones de construcción, etc.)."
+#: doc/guix.texi:8609
+msgid "The inputs of the derivations---i.e., its build-time dependencies---which may be other derivations or plain files in the store (patches, build scripts, etc.)."
+msgstr "Las entradas de las derivaciones---es decir, sus dependencias de tiempo de construcción---, que pueden ser otras derivaciones o simples archivos en el almacén (parches, guiones de construcción, etc.)."
 
 #. type: itemize
-#: doc/guix.texi:6992
+#: doc/guix.texi:8612
 msgid "The system type targeted by the derivation---e.g., @code{x86_64-linux}."
 msgstr "El tipo de sistema objetivo de la derivación---por ejemplo, @code{x86_64-linux}."
 
 #. type: itemize
-#: doc/guix.texi:6996
+#: doc/guix.texi:8616
 msgid "The file name of a build script in the store, along with the arguments to be passed."
-msgstr "El nombre de fichero del guión de construcción en el almacén, junto a los parámetros que se le deben pasar."
+msgstr "El nombre de archivo del guión de construcción en el almacén, junto a los parámetros que se le deben pasar."
 
 #. type: itemize
-#: doc/guix.texi:6999
+#: doc/guix.texi:8619
 msgid "A list of environment variables to be defined."
 msgstr "Una lista de variables de entorno a ser definidas."
 
 #. type: cindex
-#: doc/guix.texi:7002
+#: doc/guix.texi:8622
 #, no-wrap
 msgid "derivation path"
 msgstr "ruta de derivación"
 
 #. type: Plain text
-#: doc/guix.texi:7010
-msgid "Derivations allow clients of the daemon to communicate build actions to the store.  They exist in two forms: as an in-memory representation, both on the client- and daemon-side, and as files in the store whose name end in @code{.drv}---these files are referred to as @dfn{derivation paths}.  Derivations paths can be passed to the @code{build-derivations} procedure to perform the build actions they prescribe (@pxref{The Store})."
-msgstr "Las derivaciones permiten a los clientes del daemon comunicar acciones de construcción al almacén. Existen en dos formas: como una representación en memoria, tanto en el lado del cliente como el del daemon, y como ficheros en el almacén cuyo nombre termina en @code{.drv}---estos ficheros se conocen como @dfn{rutas de derivación}. Las rutas de derivación pueden pasarse al procedimiento @code{build-derivations} para realizar las acciones de construcción que prescriben (@pxref{The Store})."
+#: doc/guix.texi:8630
+msgid "Derivations allow clients of the daemon to communicate build actions to the store.  They exist in two forms: as an in-memory representation, both on the client- and daemon-side, and as files in the store whose name end in @file{.drv}---these files are referred to as @dfn{derivation paths}.  Derivations paths can be passed to the @code{build-derivations} procedure to perform the build actions they prescribe (@pxref{The Store})."
+msgstr "Las derivaciones permiten a los clientes del daemon comunicar acciones de construcción al almacén. Existen en dos formas: como una representación en memoria, tanto en el lado del cliente como el del daemon, y como archivos en el almacén cuyo nombre termina en @file{.drv}---estos archivos se conocen como @dfn{rutas de derivación}. Las rutas de derivación se pueden proporcionar al procedimiento @code{build-derivations} para que realice las acciones de construcción prescritas (@pxref{The Store})."
 
 #. type: cindex
-#: doc/guix.texi:7011
+#: doc/guix.texi:8631
 #, no-wrap
 msgid "fixed-output derivations"
 msgstr "derivaciones de salida fija"
 
 #. type: Plain text
-#: doc/guix.texi:7018
+#: doc/guix.texi:8638
 msgid "Operations such as file downloads and version-control checkouts for which the expected content hash is known in advance are modeled as @dfn{fixed-output derivations}.  Unlike regular derivations, the outputs of a fixed-output derivation are independent of its inputs---e.g., a source code download produces the same result regardless of the download method and tools being used."
-msgstr "Operaciones como la descarga de ficheros y las instantáneas de un control de versiones para las cuales el hash del contenido esperado se conoce previamente se modelan como @dfn{derivaciones de salida fija}. Al contrario que las derivaciones normales, las salidas de una derivación de salida fija son independientes de sus entradas---por ejemplo, la descarga del código fuente produce el mismo resultado independientemente del método de descarga y las herramientas usadas."
+msgstr "Operaciones como la descarga de archivos y las instantáneas de un control de versiones para las cuales el hash del contenido esperado se conoce previamente se modelan como @dfn{derivaciones de salida fija}. Al contrario que las derivaciones normales, las salidas de una derivación de salida fija son independientes de sus entradas---por ejemplo, la descarga del código fuente produce el mismo resultado independientemente del método de descarga y las herramientas usadas."
 
 #. type: item
-#: doc/guix.texi:7019 doc/guix.texi:10139
+#: doc/guix.texi:8639 doc/guix.texi:12003
 #, no-wrap
 msgid "references"
 msgstr "references"
 
 #. type: cindex
-#: doc/guix.texi:7020
+#: doc/guix.texi:8640
 #, no-wrap
 msgid "run-time dependencies"
 msgstr "tiempo de ejecución, dependencias"
 
 #. type: cindex
-#: doc/guix.texi:7021
+#: doc/guix.texi:8641
 #, no-wrap
 msgid "dependencies, run-time"
 msgstr "dependencias, tiempo de ejecución"
 
 # FUZZY
 #. type: Plain text
-#: doc/guix.texi:7028
+#: doc/guix.texi:8648
 msgid "The outputs of derivations---i.e., the build results---have a set of @dfn{references}, as reported by the @code{references} RPC or the @command{guix gc --references} command (@pxref{Invoking guix gc}).  References are the set of run-time dependencies of the build results.  References are a subset of the inputs of the derivation; this subset is automatically computed by the build daemon by scanning all the files in the outputs."
-msgstr "Las derivaciones de salida---es decir, los resultados de construcción---tienen un conjunto de @dfn{referencias}, del que informa la RPC @code{references} o la orden @command{guix gc --references} (@pxref{Invoking guix gc}). Las referencias son el conjunto de dependencias en tiempo de ejecución de los resultados de construcción. Las referencias son un subconjunto de las entradas de la derivación; el daemon de construcción calcula este subconjunto de forma automática mediante el procesado de todos los ficheros en las salidas."
+msgstr "Las derivaciones de salida---es decir, los resultados de construcción---tienen un conjunto de @dfn{referencias}, del que informa la RPC @code{references} o la orden @command{guix gc --references} (@pxref{Invoking guix gc}). Las referencias son el conjunto de dependencias en tiempo de ejecución de los resultados de construcción. Las referencias son un subconjunto de las entradas de la derivación; el daemon de construcción calcula este subconjunto de forma automática mediante el procesado de todos los archivos en las salidas."
 
 #. type: Plain text
-#: doc/guix.texi:7033
+#: doc/guix.texi:8653
 msgid "The @code{(guix derivations)} module provides a representation of derivations as Scheme objects, along with procedures to create and otherwise manipulate derivations.  The lowest-level primitive to create a derivation is the @code{derivation} procedure:"
 msgstr "El módulo @code{(guix derivations)} proporciona una representación de derivaciones como objetos Scheme, junto a procedimientos para crear y manipular de otras formas derivaciones. La primitiva de más bajo nivel para crear una derivación es el procedimiento @code{derivation}:"
 
 #. type: deffn
-#: doc/guix.texi:7034
+#: doc/guix.texi:8654
 #, no-wrap
 msgid "{Scheme Procedure} derivation @var{store} @var{name} @var{builder} @"
 msgstr "{Procedimiento Scheme} derivation @var{almacén} @var{nombre} @var{constructor} @"
 
 #. type: deffn
-#: doc/guix.texi:7043
+#: doc/guix.texi:8663
 msgid "@var{args} [#:outputs '(\"out\")] [#:hash #f] [#:hash-algo #f] @ [#:recursive? #f] [#:inputs '()] [#:env-vars '()] @ [#:system (%current-system)] [#:references-graphs #f] @ [#:allowed-references #f] [#:disallowed-references #f] @ [#:leaked-env-vars #f] [#:local-build? #f] @ [#:substitutable? #t] [#:properties '()] Build a derivation with the given arguments, and return the resulting @code{<derivation>} object."
 msgstr ""
 "@var{args} [#:outputs '(\"out\")] [#:hash #f] [#:hash-algo #f] @\n"
@@ -14018,47 +16892,47 @@ msgstr ""
 "Construye una derivación con los parámetros proporcionados, y devuelve el objeto @code{<derivation>} resultante."
 
 #. type: deffn
-#: doc/guix.texi:7050
+#: doc/guix.texi:8670
 msgid "When @var{hash} and @var{hash-algo} are given, a @dfn{fixed-output derivation} is created---i.e., one whose result is known in advance, such as a file download.  If, in addition, @var{recursive?} is true, then that fixed output may be an executable file or a directory and @var{hash} must be the hash of an archive containing this output."
-msgstr "Cuando se proporcionan @var{hash} y @var{hash-algo}, una @dfn{derivación de salida fija} se crea---es decir, una cuyo resultado se conoce de antemano, como la descarga de un fichero. Si, además, @var{recursive?} es verdadero, entonces la salida fijada puede ser un fichero ejecutable o un directorio y @var{hash} debe ser el hash de un archivador que contenga esta salida."
+msgstr "Cuando se proporcionan @var{hash} y @var{hash-algo}, una @dfn{derivación de salida fija} se crea---es decir, una cuyo resultado se conoce de antemano, como la descarga de un archivo. Si, además, @var{recursive?} es verdadero, entonces la salida fijada puede ser un archivo ejecutable o un directorio y @var{hash} debe ser el hash de un archivador que contenga esta salida."
 
 #. type: deffn
-#: doc/guix.texi:7055
+#: doc/guix.texi:8675
 msgid "When @var{references-graphs} is true, it must be a list of file name/store path pairs.  In that case, the reference graph of each store path is exported in the build environment in the corresponding file, in a simple text format."
-msgstr "Cuando @var{references-graphs} es verdadero, debe ser una lista de pares de nombre de fichero/ruta del almacén. En ese caso, el grafo de referencias de cada ruta del almacén se exporta en el entorno de construcción del fichero correspondiente, en un formato de texto simple."
+msgstr "Cuando @var{references-graphs} es verdadero, debe ser una lista de pares de nombre de archivo/ruta del almacén. En ese caso, el grafo de referencias de cada ruta del almacén se exporta en el entorno de construcción del archivo correspondiente, en un formato de texto simple."
 
 #. type: deffn
-#: doc/guix.texi:7060
+#: doc/guix.texi:8680
 msgid "When @var{allowed-references} is true, it must be a list of store items or outputs that the derivation's output may refer to.  Likewise, @var{disallowed-references}, if true, must be a list of things the outputs may @emph{not} refer to."
 msgstr "Cuando @var{allowed-references} es verdadero, debe ser una lista de elementos del almacén o salidas a las que puede hacer referencia la salida de la derivación. Del mismo modo, @var{disallowed-references}, en caso de ser verdadero, debe ser una lista de cosas a las que las salidas @emph{no} pueden hacer referencia."
 
 #. type: deffn
-#: doc/guix.texi:7067
+#: doc/guix.texi:8687
 msgid "When @var{leaked-env-vars} is true, it must be a list of strings denoting environment variables that are allowed to ``leak'' from the daemon's environment to the build environment.  This is only applicable to fixed-output derivations---i.e., when @var{hash} is true.  The main use is to allow variables such as @code{http_proxy} to be passed to derivations that download files."
-msgstr "Cuando @var{leaked-env-vars} es verdadero, debe ser una lista de cadenas que denoten variables de entorno que se permite ``escapar'' del entorno del daemon al entorno de construcción. Esto es únicamente aplicable a derivaciones de salida fija---es decir, cuando @var{hash} es verdadero. El uso principal es permitir que variables como @code{http_proxy} sean pasadas a las derivaciones que descargan ficheros."
+msgstr "Cuando @var{leaked-env-vars} es verdadero, debe ser una lista de cadenas que denoten variables de entorno que se permite ``escapar'' del entorno del daemon al entorno de construcción. Esto es únicamente aplicable a derivaciones de salida fija---es decir, cuando @var{hash} es verdadero. El uso principal es permitir que variables como @code{http_proxy} sean pasadas a las derivaciones que descargan archivos."
 
 #. type: deffn
-#: doc/guix.texi:7072
+#: doc/guix.texi:8692
 msgid "When @var{local-build?} is true, declare that the derivation is not a good candidate for offloading and should rather be built locally (@pxref{Daemon Offload Setup}).  This is the case for small derivations where the costs of data transfers would outweigh the benefits."
 msgstr "Cuando @var{local-build?} es verdadero, declara que la derivación no es una buena candidata para delegación y debe ser construida localmente (@pxref{Daemon Offload Setup}). Este es el caso para pequeñas derivaciones donde los costes de transferencia de datos sobrepasarían los beneficios."
 
 #. type: deffn
-#: doc/guix.texi:7077
+#: doc/guix.texi:8697
 msgid "When @var{substitutable?} is false, declare that substitutes of the derivation's output should not be used (@pxref{Substitutes}).  This is useful, for instance, when building packages that capture details of the host CPU instruction set."
 msgstr "Cuando @var{substitutable?} es falso, declara que las sustituciones de la salida de la derivación no deben usarse (@pxref{Substitutes}). Esto es útil, por ejemplo, cuando se construyen paquetes que capturan detalles sobre el conjunto de instrucciones de la CPU anfitriona."
 
 #. type: deffn
-#: doc/guix.texi:7080
+#: doc/guix.texi:8700
 msgid "@var{properties} must be an association list describing ``properties'' of the derivation.  It is kept as-is, uninterpreted, in the derivation."
 msgstr "@var{properties} debe ser una lista asociada que describe ``propiedades'' de la derivación. Debe mantenerse tal cual, sin interpretar, en la derivación."
 
 #. type: Plain text
-#: doc/guix.texi:7086
+#: doc/guix.texi:8706
 msgid "Here's an example with a shell script as its builder, assuming @var{store} is an open connection to the daemon, and @var{bash} points to a Bash executable in the store:"
 msgstr "Esto es un ejemplo con un guión de shell como constructor, asumiendo que @var{almacén} es una conexión abierta al daemon, @var{bash} apunta al ejecutable Bash en el almacén:"
 
 #. type: lisp
-#: doc/guix.texi:7091
+#: doc/guix.texi:8711
 #, no-wrap
 msgid ""
 "(use-modules (guix utils)\n"
@@ -14072,7 +16946,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:7100
+#: doc/guix.texi:8720
 #, no-wrap
 msgid ""
 "(let ((builder   ; add the Bash script to the store\n"
@@ -14094,23 +16968,23 @@ msgstr ""
 "@result{} #<derivation /gnu/store/@dots{}-foo.drv => /gnu/store/@dots{}-foo>\n"
 
 #. type: Plain text
-#: doc/guix.texi:7107
+#: doc/guix.texi:8727
 msgid "As can be guessed, this primitive is cumbersome to use directly.  A better approach is to write build scripts in Scheme, of course! The best course of action for that is to write the build code as a ``G-expression'', and to pass it to @code{gexp->derivation}.  For more information, @pxref{G-Expressions}."
 msgstr "Como puede suponerse, el uso directo de esta primitiva es algo enrevesado. Una mejor aproximación es escribir guiones de construcción en Scheme, ¡por supuesto! La mejor forma de hacerlo es escribir el código de construcción como una ``expresión-G'', y pasarla a @code{gexp->derivation}. Para más información, @pxref{G-Expressions}."
 
 #. type: Plain text
-#: doc/guix.texi:7112
+#: doc/guix.texi:8732
 msgid "Once upon a time, @code{gexp->derivation} did not exist and constructing derivations with build code written in Scheme was achieved with @code{build-expression->derivation}, documented below.  This procedure is now deprecated in favor of the much nicer @code{gexp->derivation}."
 msgstr "En otros tiempos, @code{gexp->derivation} no existía y la creación de derivaciones con código de construcción escrito en Scheme se conseguía con @code{build-expression->derivation}, documentada más adelante. Este procedimiento está ahora obsoleto en favor del procedimiento @code{gexp->derivation} mucho más conveniente."
 
 #. type: deffn
-#: doc/guix.texi:7113
+#: doc/guix.texi:8733
 #, no-wrap
 msgid "{Scheme Procedure} build-expression->derivation @var{store} @"
 msgstr "{Procedimiento Scheme} build-expression->derivation @var{almacén} @"
 
 #. type: deffn
-#: doc/guix.texi:7129
+#: doc/guix.texi:8749
 msgid "@var{name} @var{exp} @ [#:system (%current-system)] [#:inputs '()] @ [#:outputs '(\"out\")] [#:hash #f] [#:hash-algo #f] @ [#:recursive? #f] [#:env-vars '()] [#:modules '()] @ [#:references-graphs #f] [#:allowed-references #f] @ [#:disallowed-references #f] @ [#:local-build? #f] [#:substitutable? #t] [#:guile-for-build #f] Return a derivation that executes Scheme expression @var{exp} as a builder for derivation @var{name}.  @var{inputs} must be a list of @code{(name drv-path sub-drv)} tuples; when @var{sub-drv} is omitted, @code{\"out\"} is assumed.  @var{modules} is a list of names of Guile modules from the current search path to be copied in the store, compiled, and made available in the load path during the execution of @var{exp}---e.g., @code{((guix build utils) (guix build gnu-build-system))}."
 msgstr ""
 "@var{nombre} @var{exp} @\n"
@@ -14123,27 +16997,27 @@ msgstr ""
 "Devuelve una derivación que ejecuta la expresión Scheme @var{exp} como un constructor para la derivación @var{nombre}. @var{inputs} debe ser una lista de tuplas @code{(nombre ruta-drv sub-drv)}; cuando @var{sub-drv} se omite, se asume @code{\"out\"}. @var{modules} es una lista de nombres de módulos Guile de la ruta actual de búsqueda a copiar en el almacén, compilados, y poner a disposición en la ruta de carga durante la ejecución de @var{exp}---por ejemplo, @code{((guix build utils) (guix build gnu-build-system))}."
 
 #. type: deffn
-#: doc/guix.texi:7137
+#: doc/guix.texi:8757
 msgid "@var{exp} is evaluated in an environment where @code{%outputs} is bound to a list of output/path pairs, and where @code{%build-inputs} is bound to a list of string/output-path pairs made from @var{inputs}.  Optionally, @var{env-vars} is a list of string pairs specifying the name and value of environment variables visible to the builder.  The builder terminates by passing the result of @var{exp} to @code{exit}; thus, when @var{exp} returns @code{#f}, the build is considered to have failed."
 msgstr "@var{exp} se evalúa en un entorno donde @code{%outputs} está asociada a una lista de pares salida/ruta, y donde @code{%build-inputs} está asociada a una lista de pares cadena/ruta-de-salida que provienen de @var{inputs}. De manera opcional, @var{env-vars} es una lista de pares de cadenas que especifican el nombre y el valor de las variables de entorno visibles al constructor. El constructor termina pasando el resultado de @var{exp} a @code{exit}; por tanto, cuando @var{exp} devuelve @code{#f}, la construcción se considera fallida."
 
 #. type: deffn
-#: doc/guix.texi:7141
+#: doc/guix.texi:8761
 msgid "@var{exp} is built using @var{guile-for-build} (a derivation).  When @var{guile-for-build} is omitted or is @code{#f}, the value of the @code{%guile-for-build} fluid is used instead."
 msgstr "@var{exp} se construye usando @var{guile-for-build} (una derivación). Cuando @var{guile-for-build} se omite o es @code{#f}, el valor del fluido @code{%guile-for-build} se usa en su lugar."
 
 #. type: deffn
-#: doc/guix.texi:7146
+#: doc/guix.texi:8766
 msgid "See the @code{derivation} procedure for the meaning of @var{references-graphs}, @var{allowed-references}, @var{disallowed-references}, @var{local-build?}, and @var{substitutable?}."
 msgstr "Véase el procedimiento @code{derivation} para el significado de @var{references-graphs}, @var{allowed-references}, @var{disallowed-references}, @var{local-build?} y @var{substitutable?}."
 
 #. type: Plain text
-#: doc/guix.texi:7151
+#: doc/guix.texi:8771
 msgid "Here's an example of a single-output derivation that creates a directory containing one file:"
-msgstr "Aquí está un ejemplo de derivación de salida única que crea un directorio que contiene un fichero:"
+msgstr "Aquí está un ejemplo de derivación de salida única que crea un directorio que contiene un archivo:"
 
 #. type: lisp
-#: doc/guix.texi:7159
+#: doc/guix.texi:8779
 #, no-wrap
 msgid ""
 "(let ((builder '(let ((out (assoc-ref %outputs \"out\")))\n"
@@ -14163,13 +17037,13 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:7161
+#: doc/guix.texi:8781
 #, no-wrap
 msgid "@result{} #<derivation /gnu/store/@dots{}-goo.drv => @dots{}>\n"
 msgstr "@result{} #<derivation /gnu/store/@dots{}-goo.drv => @dots{}>\n"
 
 #. type: cindex
-#: doc/guix.texi:7167
+#: doc/guix.texi:8787
 #, no-wrap
 msgid "monad"
 msgstr "mónada"
@@ -14177,41 +17051,41 @@ msgstr "mónada"
 # FUZZY
 # TODO: Side effect
 #. type: Plain text
-#: doc/guix.texi:7173
+#: doc/guix.texi:8793
 msgid "The procedures that operate on the store described in the previous sections all take an open connection to the build daemon as their first argument.  Although the underlying model is functional, they either have side effects or depend on the current state of the store."
 msgstr "Los procedimientos que operan en el almacén descritos en la sección previa toman todos una conexión abierta al daemon de construcción en su primer parámetro. Aunque el modelo subyacente es funcional, tienen o bien efectos secundarios o dependen del estado actual del almacén."
 
 # FUZZY
 # TODO: Side effect
 #. type: Plain text
-#: doc/guix.texi:7179
+#: doc/guix.texi:8799
 msgid "The former is inconvenient: the connection to the build daemon has to be carried around in all those functions, making it impossible to compose functions that do not take that parameter with functions that do.  The latter can be problematic: since store operations have side effects and/or depend on external state, they have to be properly sequenced."
 msgstr "Lo anterior es inconveniente: la conexión al daemon de construcción tiene que proporcionarse en todas estas funciones, haciendo imposible la composición de funciones que no toman ese parámetro con funciones que sí lo hacen. Lo último puede ser problemático: ya que las operaciones del almacén tienen efectos secundarios y/o dependen del estado externo, deben ser secuenciadas de manera adecuada."
 
 #. type: cindex
-#: doc/guix.texi:7180
+#: doc/guix.texi:8800
 #, no-wrap
 msgid "monadic values"
 msgstr "valores monádicos"
 
 #. type: cindex
-#: doc/guix.texi:7181
+#: doc/guix.texi:8801
 #, no-wrap
 msgid "monadic functions"
 msgstr "funciones monádicas"
 
 #. type: Plain text
-#: doc/guix.texi:7191
+#: doc/guix.texi:8811
 msgid "This is where the @code{(guix monads)} module comes in.  This module provides a framework for working with @dfn{monads}, and a particularly useful monad for our uses, the @dfn{store monad}.  Monads are a construct that allows two things: associating ``context'' with values (in our case, the context is the store), and building sequences of computations (here computations include accesses to the store).  Values in a monad---values that carry this additional context---are called @dfn{monadic values}; procedures that return such values are called @dfn{monadic procedures}."
 msgstr "Aquí es donde entra en juego el módulo @code{(guix monads)}. Este módulo proporciona un entorno para trabajar con @dfn{mónadas}, y una mónada particularmente útil para nuestros usos, la @dfn{mónada del almacén}. Las mónadas son una construcción que permite dos cosas: asociar ``contexto'' con valores (en nuestro caso, el contexto es el almacén), y la construcción de secuencias de computaciones (aquí computaciones incluye accesos al almacén). Los valores en una mónada---valores que transportan este contexto adicional---se llaman @dfn{valores monádicos}; los procedimientos que devuelven dichos valores se llaman @dfn{procedimientos monádicos}."
 
 #. type: Plain text
-#: doc/guix.texi:7193
+#: doc/guix.texi:8813
 msgid "Consider this ``normal'' procedure:"
 msgstr "Considere este procedimiento ``normal'':"
 
 #. type: lisp
-#: doc/guix.texi:7202
+#: doc/guix.texi:8822
 #, no-wrap
 msgid ""
 "(define (sh-symlink store)\n"
@@ -14231,12 +17105,12 @@ msgstr ""
 "                                  `(symlink ,sh %output))))\n"
 
 #. type: Plain text
-#: doc/guix.texi:7206
+#: doc/guix.texi:8826
 msgid "Using @code{(guix monads)} and @code{(guix gexp)}, it may be rewritten as a monadic function:"
 msgstr "Mediante el uso de @code{(guix monads)} y @code{(guix gexp)}, puede reescribirse como una función monádica:"
 
 #. type: lisp
-#: doc/guix.texi:7214
+#: doc/guix.texi:8834
 #, no-wrap
 msgid ""
 "(define (sh-symlink)\n"
@@ -14254,17 +17128,17 @@ msgstr ""
 "                                 #$output))))\n"
 
 #. type: Plain text
-#: doc/guix.texi:7221
+#: doc/guix.texi:8841
 msgid "There are several things to note in the second version: the @code{store} parameter is now implicit and is ``threaded'' in the calls to the @code{package->derivation} and @code{gexp->derivation} monadic procedures, and the monadic value returned by @code{package->derivation} is @dfn{bound} using @code{mlet} instead of plain @code{let}."
 msgstr "Hay varias cosas a tener en cuenta en la segunda versión: el parámetro @code{store} ahora es implícito y es ``hilado en las llamadas a los procedimientos monádicos @code{package->derivation} y @code{gexp->derivation}, y el valor monádico devuelto por @code{package->derivation} es @dfn{asociado} mediante el uso de @code{mlet} en vez de un simple @code{let}."
 
 #. type: Plain text
-#: doc/guix.texi:7225
+#: doc/guix.texi:8845
 msgid "As it turns out, the call to @code{package->derivation} can even be omitted since it will take place implicitly, as we will see later (@pxref{G-Expressions}):"
 msgstr "Al final, la llamada a @code{package->derivation} puede omitirse ya que tendrá lugar implícitamente, como veremos más adelante (@pxref{G-Expressions}):"
 
 #. type: lisp
-#: doc/guix.texi:7231
+#: doc/guix.texi:8851
 #, no-wrap
 msgid ""
 "(define (sh-symlink)\n"
@@ -14280,12 +17154,12 @@ msgstr ""
 # FUZZY
 # TODO: Necesita repensarse.
 #. type: Plain text
-#: doc/guix.texi:7240
+#: doc/guix.texi:8860
 msgid "Calling the monadic @code{sh-symlink} has no effect.  As someone once said, ``you exit a monad like you exit a building on fire: by running''.  So, to exit the monad and get the desired effect, one must use @code{run-with-store}:"
 msgstr "La ejecución del procedimiento monádico @code{enlace-para-sh} no tiene ningún efecto. Como alguien dijo una vez, ``sales de una mónada como sales de un edificio en llamas: corriendo'' (run en inglés). Por tanto, para salir de la mónada y obtener el efecto deseado se debe usar @code{run-with-store}:"
 
 #. type: lisp
-#: doc/guix.texi:7244
+#: doc/guix.texi:8864
 #, no-wrap
 msgid ""
 "(run-with-store (open-connection) (sh-symlink))\n"
@@ -14295,12 +17169,12 @@ msgstr ""
 "@result{} /gnu/store/...-enlace-para-sh\n"
 
 #. type: Plain text
-#: doc/guix.texi:7250
+#: doc/guix.texi:8870
 msgid "Note that the @code{(guix monad-repl)} module extends the Guile REPL with new ``meta-commands'' to make it easier to deal with monadic procedures: @code{run-in-store}, and @code{enter-store-monad}.  The former is used to ``run'' a single monadic value through the store:"
-msgstr "Fíjese que el módulo @code{(guix monad-repl)} extiende la sesión interactiva de Guile con nuevos ``meta-comandos'' para facilitar el trabajo con procedimientos monádicos: @code{run-in-store} y @code{enter-store-monad}. El primero se usa para ``ejecutar'' un valor monádico único a través del almacén:"
+msgstr "Fíjese que el módulo @code{(guix monad-repl)} extiende la sesión interactiva de Guile con nuevas ``meta-órdenes'' para facilitar el trabajo con procedimientos monádicos: @code{run-in-store} y @code{enter-store-monad}. El primero se usa para ``ejecutar'' un valor monádico único a través del almacén:"
 
 #. type: example
-#: doc/guix.texi:7254
+#: doc/guix.texi:8874
 #, no-wrap
 msgid ""
 "scheme@@(guile-user)> ,run-in-store (package->derivation hello)\n"
@@ -14310,12 +17184,12 @@ msgstr ""
 "$1 = #<derivation /gnu/store/@dots{}-hello-2.9.drv => @dots{}>\n"
 
 #. type: Plain text
-#: doc/guix.texi:7258
+#: doc/guix.texi:8878
 msgid "The latter enters a recursive REPL, where all the return values are automatically run through the store:"
 msgstr "El último entra en un entorno interactivo recursivo, donde todos los valores devueltos se ejecutan automáticamente a través del almacén:"
 
 #. type: example
-#: doc/guix.texi:7267
+#: doc/guix.texi:8887
 #, no-wrap
 msgid ""
 "scheme@@(guile-user)> ,enter-store-monad\n"
@@ -14335,50 +17209,50 @@ msgstr ""
 "scheme@@(guile-user)>\n"
 
 #. type: Plain text
-#: doc/guix.texi:7272
+#: doc/guix.texi:8892
 msgid "Note that non-monadic values cannot be returned in the @code{store-monad} REPL."
 msgstr "Fíjese que los valores no-monádicos no pueden devolverse en el entorno interactivo @code{store-monad}."
 
 #. type: Plain text
-#: doc/guix.texi:7275
+#: doc/guix.texi:8895
 msgid "The main syntactic forms to deal with monads in general are provided by the @code{(guix monads)} module and are described below."
 msgstr "Las formas sintácticas principales para tratar con mónadas en general se proporcionan por el módulo @code{(guix monads)} y se describen a continuación."
 
 #. type: deffn
-#: doc/guix.texi:7276
+#: doc/guix.texi:8896
 #, no-wrap
 msgid "{Scheme Syntax} with-monad @var{monad} @var{body} ..."
 msgstr "{Sintaxis Scheme} with-monad @var{mónada} @var{cuerpo} ..."
 
 #. type: deffn
-#: doc/guix.texi:7279
+#: doc/guix.texi:8899
 msgid "Evaluate any @code{>>=} or @code{return} forms in @var{body} as being in @var{monad}."
 msgstr "Evalúa cualquier forma @code{>>=} o @code{return} en @var{cuerpo} como estando en @var{mónada}."
 
 #. type: deffn
-#: doc/guix.texi:7281
+#: doc/guix.texi:8901
 #, no-wrap
 msgid "{Scheme Syntax} return @var{val}"
 msgstr "{Sintaxis Scheme} return @var{val}"
 
 #. type: deffn
-#: doc/guix.texi:7283
+#: doc/guix.texi:8903
 msgid "Return a monadic value that encapsulates @var{val}."
 msgstr "Devuelve el valor monádico que encapsula @var{val}."
 
 #. type: deffn
-#: doc/guix.texi:7285
+#: doc/guix.texi:8905
 #, no-wrap
 msgid "{Scheme Syntax} >>= @var{mval} @var{mproc} ..."
 msgstr "{Sintaxis Scheme} >>= @var{mval} @var{mproc} ..."
 
 #. type: deffn
-#: doc/guix.texi:7292
+#: doc/guix.texi:8912
 msgid "@dfn{Bind} monadic value @var{mval}, passing its ``contents'' to monadic procedures @var{mproc}@dots{}@footnote{This operation is commonly referred to as ``bind'', but that name denotes an unrelated procedure in Guile.  Thus we use this somewhat cryptic symbol inherited from the Haskell language.}.  There can be one @var{mproc} or several of them, as in this example:"
 msgstr "@dfn{Asocia} el valor monádico @var{mval}, pasando su ``contenido'' a los procedimientos monádicos @var{mproc}@dots{}@footnote{Esta operación es habitualmente conocida como ``bind'' (asociación), pero ese nombre denota un procedimiento no relacionado en Guile. Por tanto usamos este símbolo en cierto modo críptico heredado del lenguaje Haskell.}. Puede haber un @var{mproc} o varios, como en este ejemplo:"
 
 #. type: lisp
-#: doc/guix.texi:7300
+#: doc/guix.texi:8920
 #, no-wrap
 msgid ""
 "(run-with-state\n"
@@ -14398,7 +17272,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:7303
+#: doc/guix.texi:8923
 #, no-wrap
 msgid ""
 "@result{} 4\n"
@@ -14408,100 +17282,100 @@ msgstr ""
 "@result{} un-estado\n"
 
 #. type: deffn
-#: doc/guix.texi:7306
+#: doc/guix.texi:8926
 #, no-wrap
 msgid "{Scheme Syntax} mlet @var{monad} ((@var{var} @var{mval}) ...) @"
 msgstr "{Sintaxis Scheme} mlet @var{mónada} ((@var{var} @var{mval}) ...) @"
 
 #. type: deffn
-#: doc/guix.texi:7308
+#: doc/guix.texi:8928
 msgid "@var{body} ..."
 msgstr "@var{cuerpo} ..."
 
 #. type: deffnx
-#: doc/guix.texi:7308
+#: doc/guix.texi:8928
 #, no-wrap
 msgid "{Scheme Syntax} mlet* @var{monad} ((@var{var} @var{mval}) ...) @"
 msgstr "{Sintaxis Scheme} mlet* @var{mónada} ((@var{var} @var{mval}) ...) @"
 
 #. type: deffn
-#: doc/guix.texi:7320
+#: doc/guix.texi:8940
 msgid "@var{body} ...  Bind the variables @var{var} to the monadic values @var{mval} in @var{body}, which is a sequence of expressions.  As with the bind operator, this can be thought of as ``unpacking'' the raw, non-monadic value ``contained'' in @var{mval} and making @var{var} refer to that raw, non-monadic value within the scope of the @var{body}.  The form (@var{var} -> @var{val}) binds @var{var} to the ``normal'' value @var{val}, as per @code{let}.  The binding operations occur in sequence from left to right.  The last expression of @var{body} must be a monadic expression, and its result will become the result of the @code{mlet} or @code{mlet*} when run in the @var{monad}."
 msgstr "@var{cuerpo} ... Asocia las variables @var{var} a los valores monádicos @var{mval} en @var{cuerpo}, el cual es una secuencia de expresiones. Como con el operador bind, esto puede pensarse como el ``desempaquetado'' del valor crudo no-monádico dentro del ámbito del @var{cuerpo}. La forma (@var{var} -> @var{val}) asocia @var{var} al valor ``normal'' @var{val}, como en @code{let}. Las operaciones de asociación ocurren en secuencia de izquierda a derecha. La última expresión de @var{cuerpo} debe ser una expresión monádica, y su resultado se convertirá en el resultado de @code{mlet} o @code{mlet*} cuando se ejecute en la @var{mónada}."
 
 #. type: deffn
-#: doc/guix.texi:7323
+#: doc/guix.texi:8943
 msgid "@code{mlet*} is to @code{mlet} what @code{let*} is to @code{let} (@pxref{Local Bindings,,, guile, GNU Guile Reference Manual})."
 msgstr "@code{mlet*} es a @code{mlet} lo que @code{let*} es a @code{let} (@pxref{Local Bindings,,, guile, GNU Guile Reference Manual})."
 
 #. type: deffn
-#: doc/guix.texi:7325
+#: doc/guix.texi:8945
 #, no-wrap
 msgid "{Scheme System} mbegin @var{monad} @var{mexp} ..."
 msgstr "{Sistema Scheme} mbegin @var{mónada} @var{mexp} ..."
 
 #. type: deffn
-#: doc/guix.texi:7329
+#: doc/guix.texi:8949
 msgid "Bind @var{mexp} and the following monadic expressions in sequence, returning the result of the last expression.  Every expression in the sequence must be a monadic expression."
 msgstr "Asocia @var{mexp} y las siguientes expresiones monádicas en secuencia, devolviendo el resultado de la última expresión. Cada expresión en la secuencia debe ser una expresión monádica."
 
 #. type: deffn
-#: doc/guix.texi:7333
+#: doc/guix.texi:8953
 msgid "This is akin to @code{mlet}, except that the return values of the monadic expressions are ignored.  In that sense, it is analogous to @code{begin}, but applied to monadic expressions."
 msgstr "Esto es similar a @code{mlet}, excepto que los valores devueltos por las expresiones monádicas se ignoran. En ese sentido el funcionamiento es análogo a @code{begin} pero aplicado a expresiones monádicas."
 
 #. type: deffn
-#: doc/guix.texi:7335
+#: doc/guix.texi:8955
 #, no-wrap
 msgid "{Scheme System} mwhen @var{condition} @var{mexp0} @var{mexp*} ..."
 msgstr "{Sistema Scheme} mwhen @var{condición} @var{mexp0} @var{mexp*} ..."
 
 #. type: deffn
-#: doc/guix.texi:7340
+#: doc/guix.texi:8960
 msgid "When @var{condition} is true, evaluate the sequence of monadic expressions @var{mexp0}..@var{mexp*} as in an @code{mbegin}.  When @var{condition} is false, return @code{*unspecified*} in the current monad.  Every expression in the sequence must be a monadic expression."
 msgstr "Cuando @var{condición} es verdadero, evalúa la secuencia de expresiones monádicas @var{mexp0}..@var{mexp*} como dentro de @code{mbegin}. Cuando @var{condición} es falso, devuelve @code{*unespecified*} en la mónada actual. Todas las expresiones en la secuencia deben ser expresiones monádicas."
 
 #. type: deffn
-#: doc/guix.texi:7342
+#: doc/guix.texi:8962
 #, no-wrap
 msgid "{Scheme System} munless @var{condition} @var{mexp0} @var{mexp*} ..."
 msgstr "{Sistema Scheme} munless @var{condición} @var{mexp0} @var{mexp*} ..."
 
 #. type: deffn
-#: doc/guix.texi:7347
+#: doc/guix.texi:8967
 msgid "When @var{condition} is false, evaluate the sequence of monadic expressions @var{mexp0}..@var{mexp*} as in an @code{mbegin}.  When @var{condition} is true, return @code{*unspecified*} in the current monad.  Every expression in the sequence must be a monadic expression."
 msgstr "Cuando @var{condición} es falso, evalúa la secuencia de expresiones monádicas @var{mexp0}..@var{mexp*} como dentro de @code{mbegin}. Cuando @var{condición} es verdadero, devuelve @code{*unespecified*} en la mónada actual. Todas las expresiones en la secuencia deben ser expresiones monádicas."
 
 # FUZZY
 #. type: cindex
-#: doc/guix.texi:7349
+#: doc/guix.texi:8969
 #, no-wrap
 msgid "state monad"
 msgstr "mónada de estado"
 
 #. type: Plain text
-#: doc/guix.texi:7353
+#: doc/guix.texi:8973
 msgid "The @code{(guix monads)} module provides the @dfn{state monad}, which allows an additional value---the state---to be @emph{threaded} through monadic procedure calls."
 msgstr "El módulo @code{(guix monads)} proporciona la @dfn{mónada de estado}, que permite que un valor adicional---el estado---sea @emph{hilado} a través de las llamadas a procedimientos monádicos."
 
 #. type: defvr
-#: doc/guix.texi:7354
+#: doc/guix.texi:8974
 #, no-wrap
 msgid "{Scheme Variable} %state-monad"
 msgstr "{Variable Scheme} %state-monad"
 
 #. type: defvr
-#: doc/guix.texi:7357
+#: doc/guix.texi:8977
 msgid "The state monad.  Procedures in the state monad can access and change the state that is threaded."
 msgstr "La mónada de estado. Procedimientos en la mónada de estado pueden acceder y cambiar el estado hilado."
 
 #. type: defvr
-#: doc/guix.texi:7361
+#: doc/guix.texi:8981
 msgid "Consider the example below.  The @code{square} procedure returns a value in the state monad.  It returns the square of its argument, but also increments the current state value:"
 msgstr "Considere el siguiente ejemplo. El procedimiento @code{cuadrado} devuelve un valor en la mónada de estado."
 
 #. type: lisp
-#: doc/guix.texi:7368
+#: doc/guix.texi:8988
 #, no-wrap
 msgid ""
 "(define (square x)\n"
@@ -14519,7 +17393,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:7372
+#: doc/guix.texi:8992
 #, no-wrap
 msgid ""
 "(run-with-state (sequence %state-monad (map square (iota 3))) 0)\n"
@@ -14531,149 +17405,149 @@ msgstr ""
 "@result{} 3\n"
 
 #. type: defvr
-#: doc/guix.texi:7376
-msgid "When ``run'' through @var{%state-monad}, we obtain that additional state value, which is the number of @code{square} calls."
-msgstr "Cuando se ``ejecuta'' a través de @var{%state-monad}, obtenemos un valor adicional de estado, que ese el número de llamadas a @code{cuadrado}."
+#: doc/guix.texi:8996
+msgid "When ``run'' through @code{%state-monad}, we obtain that additional state value, which is the number of @code{square} calls."
+msgstr "Cuando se ``ejecuta'' a través de @code{%state-monad}, obtenemos un valor adicional de estado, que es el número de llamadas a @code{cuadrado}."
 
 #. type: deffn
-#: doc/guix.texi:7378
+#: doc/guix.texi:8998
 #, no-wrap
 msgid "{Monadic Procedure} current-state"
 msgstr "{Procedimiento monádico} current-state"
 
 #. type: deffn
-#: doc/guix.texi:7380
+#: doc/guix.texi:9000
 msgid "Return the current state as a monadic value."
 msgstr "Devuelve el estado actual como un valor monádico."
 
 #. type: deffn
-#: doc/guix.texi:7382
+#: doc/guix.texi:9002
 #, no-wrap
 msgid "{Monadic Procedure} set-current-state @var{value}"
 msgstr "{Procedimiento monádico} set-current-state @var{valor}"
 
 #. type: deffn
-#: doc/guix.texi:7385
+#: doc/guix.texi:9005
 msgid "Set the current state to @var{value} and return the previous state as a monadic value."
 msgstr "Establece el estado actual a @var{valor} y devuelve el estado previo como un valor monádico."
 
 #. type: deffn
-#: doc/guix.texi:7387
+#: doc/guix.texi:9007
 #, no-wrap
 msgid "{Monadic Procedure} state-push @var{value}"
 msgstr "{Procedimiento monádico} state-push @var{valor}"
 
 #. type: deffn
-#: doc/guix.texi:7390
+#: doc/guix.texi:9010
 msgid "Push @var{value} to the current state, which is assumed to be a list, and return the previous state as a monadic value."
 msgstr "Apila @var{valor} al estado actual, que se asume que es una lista, y devuelve el estado previo como un valor monádico."
 
 #. type: deffn
-#: doc/guix.texi:7392
+#: doc/guix.texi:9012
 #, no-wrap
 msgid "{Monadic Procedure} state-pop"
 msgstr "{Procedimiento monádico} state-pop"
 
 #. type: deffn
-#: doc/guix.texi:7395
+#: doc/guix.texi:9015
 msgid "Pop a value from the current state and return it as a monadic value.  The state is assumed to be a list."
 msgstr "Extrae un valor del estado actual y lo devuelve como un valor monádico. Se asume que el estado es una lista."
 
 #. type: deffn
-#: doc/guix.texi:7397
+#: doc/guix.texi:9017
 #, no-wrap
 msgid "{Scheme Procedure} run-with-state @var{mval} [@var{state}]"
 msgstr "{Procedimiento Scheme} run-with-state @var{mval} [@var{estado}]"
 
 #. type: deffn
-#: doc/guix.texi:7400
+#: doc/guix.texi:9020
 msgid "Run monadic value @var{mval} starting with @var{state} as the initial state.  Return two values: the resulting value, and the resulting state."
 msgstr "Ejecuta un valor monádico @var{mval} comenzando con @var{estado} como el estado inicial. Devuelve dos valores: el valor resultante y el estado resultante."
 
 #. type: Plain text
-#: doc/guix.texi:7404
+#: doc/guix.texi:9024
 msgid "The main interface to the store monad, provided by the @code{(guix store)} module, is as follows."
 msgstr "La interfaz principal a la mónada del almacén, proporcionada por el módulo @code{(guix store)}, es como sigue."
 
 #. type: defvr
-#: doc/guix.texi:7405
+#: doc/guix.texi:9025
 #, no-wrap
 msgid "{Scheme Variable} %store-monad"
 msgstr "{Variable Scheme} %store-monad"
 
 #. type: defvr
-#: doc/guix.texi:7407
-msgid "The store monad---an alias for @var{%state-monad}."
-msgstr "La mónada del almacén---un alias para @var{%state-monad}."
+#: doc/guix.texi:9027
+msgid "The store monad---an alias for @code{%state-monad}."
+msgstr "La mónada del almacén---un alias para @code{%state-monad}."
 
 #. type: defvr
-#: doc/guix.texi:7411
-msgid "Values in the store monad encapsulate accesses to the store.  When its effect is needed, a value of the store monad must be ``evaluated'' by passing it to the @code{run-with-store} procedure (see below.)"
+#: doc/guix.texi:9031
+msgid "Values in the store monad encapsulate accesses to the store.  When its effect is needed, a value of the store monad must be ``evaluated'' by passing it to the @code{run-with-store} procedure (see below)."
 msgstr "Los valores en la mónada del almacén encapsulan los accesos al almacén. Cuando su efecto es necesario, un valor de la mónada del almacén será ``evaluado'' cuando se proporcione al procedimiento @code{run-with-store} (véase a continuación)."
 
 #. type: deffn
-#: doc/guix.texi:7413
+#: doc/guix.texi:9033
 #, no-wrap
 msgid "{Scheme Procedure} run-with-store @var{store} @var{mval} [#:guile-for-build] [#:system (%current-system)]"
 msgstr "{Procedimiento Scheme} run-with-store @var{almacén} @var{mval} [#:guile-for-build] [#:system (%current-system)]"
 
 #. type: deffn
-#: doc/guix.texi:7416
+#: doc/guix.texi:9036
 msgid "Run @var{mval}, a monadic value in the store monad, in @var{store}, an open store connection."
 msgstr "Ejecuta @var{mval}, un valor monádico en la mónada del almacén, en @var{almacén}, una conexión abierta al almacén."
 
 #. type: deffn
-#: doc/guix.texi:7418
+#: doc/guix.texi:9038
 #, no-wrap
 msgid "{Monadic Procedure} text-file @var{name} @var{text} [@var{references}]"
 msgstr "{Procedimiento monádico} text-file @var{nombre} @var{texto} [@var{referencias}]"
 
 #. type: deffn
-#: doc/guix.texi:7422
+#: doc/guix.texi:9042
 msgid "Return as a monadic value the absolute file name in the store of the file containing @var{text}, a string.  @var{references} is a list of store items that the resulting text file refers to; it defaults to the empty list."
-msgstr "Devuelve como un valor monádico el nombre absoluto del fichero en el almacén del fichero que contiene @var{ŧexto}, una cadena. @var{referencias} es una lista de elementos del almacén a los que el fichero de texto referencia; su valor predeterminado es la lista vacía."
+msgstr "Devuelve como un valor monádico el nombre absoluto del archivo en el almacén del archivo que contiene @var{ŧexto}, una cadena. @var{referencias} es una lista de elementos del almacén a los que el archivo de texto referencia; su valor predeterminado es la lista vacía."
 
 #. type: deffn
-#: doc/guix.texi:7424
+#: doc/guix.texi:9044
 #, no-wrap
 msgid "{Monadic Procedure} binary-file @var{name} @var{data} [@var{references}]"
 msgstr "{Procedimiento monádico} binary-file @var{nombre} @var{datos} [@var{referencias}]"
 
 #. type: deffn
-#: doc/guix.texi:7428
+#: doc/guix.texi:9048
 msgid "Return as a monadic value the absolute file name in the store of the file containing @var{data}, a bytevector.  @var{references} is a list of store items that the resulting binary file refers to; it defaults to the empty list."
-msgstr "Devuelve como un valor monádico el nombre absoluto del fichero en el almacén del fichero que contiene @var{datos}, un vector de bytes. @var{referencias} es una lista de elementos del almacén a los que el fichero binario referencia; su valor predeterminado es la lista vacía."
+msgstr "Devuelve como un valor monádico el nombre absoluto del archivo en el almacén del archivo que contiene @var{datos}, un vector de bytes. @var{referencias} es una lista de elementos del almacén a los que el archivo binario referencia; su valor predeterminado es la lista vacía."
 
 #. type: deffn
-#: doc/guix.texi:7430
+#: doc/guix.texi:9050
 #, no-wrap
 msgid "{Monadic Procedure} interned-file @var{file} [@var{name}] @"
-msgstr "{Procedimiento monádico} interned-file @var{fichero} [@var{nombre}] @"
+msgstr "{Procedimiento monádico} interned-file @var{archivo} [@var{nombre}] @"
 
 #. type: deffn
-#: doc/guix.texi:7435
+#: doc/guix.texi:9055
 msgid "[#:recursive? #t] [#:select? (const #t)] Return the name of @var{file} once interned in the store.  Use @var{name} as its store name, or the basename of @var{file} if @var{name} is omitted."
 msgstr ""
 "[#:recursive? #t] [#:select? (const #t)]\n"
-"Devuelve el nombre del @var{fichero} una vez internado en el almacén. Usa @var{nombre} como su nombre del almacén, o el nombre base de @var{fichero} si @var{nombre} se omite."
+"Devuelve el nombre del @var{archivo} una vez internado en el almacén. Usa @var{nombre} como su nombre del almacén, o el nombre base de @var{archivo} si @var{nombre} se omite."
 
 #. type: deffn
-#: doc/guix.texi:7439 doc/guix.texi:7856
+#: doc/guix.texi:9059 doc/guix.texi:9482
 msgid "When @var{recursive?} is true, the contents of @var{file} are added recursively; if @var{file} designates a flat file and @var{recursive?} is true, its contents are added, and its permission bits are kept."
-msgstr "Cuando @var{recursive?} es verdadero, los contenidos del @var{fichero} se añaden recursivamente; si @var{fichero} designa un fichero plano y @var{recursive?} es verdadero, sus contenidos se añaden, y sus bits de permisos se mantienen."
+msgstr "Cuando @var{recursive?} es verdadero, los contenidos del @var{archivo} se añaden recursivamente; si @var{archivo} designa un archivo plano y @var{recursive?} es verdadero, sus contenidos se añaden, y sus bits de permisos se mantienen."
 
 #. type: deffn
-#: doc/guix.texi:7444 doc/guix.texi:7861
+#: doc/guix.texi:9064 doc/guix.texi:9487
 msgid "When @var{recursive?} is true, call @code{(@var{select?} @var{file} @var{stat})} for each directory entry, where @var{file} is the entry's absolute file name and @var{stat} is the result of @code{lstat}; exclude entries for which @var{select?} does not return true."
-msgstr "Cuando @var{recursive?} es verdadero, llama a @code{(@var{select?} @var{fichero} @var{stat})} por cada entrada del directorio, donde @var{fichero} es el nombre absoluto de fichero de la entrada y @var{stat} es el resultado de @code{lstat}; excluyendo las entradas para las cuales @var{select?} no devuelve verdadero."
+msgstr "Cuando @var{recursive?} es verdadero, llama a @code{(@var{select?} @var{archivo} @var{stat})} por cada entrada del directorio, donde @var{archivo} es el nombre absoluto de archivo de la entrada y @var{stat} es el resultado de @code{lstat}; excluyendo las entradas para las cuales @var{select?} no devuelve verdadero."
 
 #. type: deffn
-#: doc/guix.texi:7446
+#: doc/guix.texi:9066
 msgid "The example below adds a file to the store, under two different names:"
-msgstr "El ejemplo siguiente añade un fichero al almacén, bajo dos nombres diferentes:"
+msgstr "El ejemplo siguiente añade un archivo al almacén, bajo dos nombres diferentes:"
 
 #. type: lisp
-#: doc/guix.texi:7452
+#: doc/guix.texi:9072
 #, no-wrap
 msgid ""
 "(run-with-store (open-connection)\n"
@@ -14689,121 +17563,126 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:7454
+#: doc/guix.texi:9074
 #, no-wrap
 msgid "@result{} (\"/gnu/store/rwm@dots{}-README\" \"/gnu/store/44i@dots{}-LEGU-MIN\")\n"
 msgstr "@result{} (\"/gnu/store/rwm@dots{}-README\" \"/gnu/store/44i@dots{}-LEGU-MIN\")\n"
 
 #. type: Plain text
-#: doc/guix.texi:7460
+#: doc/guix.texi:9080
 msgid "The @code{(guix packages)} module exports the following package-related monadic procedures:"
 msgstr "El módulo @code{(guix packages)} exporta los siguientes procedimientos monádicos relacionados con paquetes:"
 
 #. type: deffn
-#: doc/guix.texi:7461
+#: doc/guix.texi:9081
 #, no-wrap
 msgid "{Monadic Procedure} package-file @var{package} [@var{file}] @"
-msgstr "{Procedimiento monádico} package-file @var{paquete} [@var{fichero}] @"
+msgstr "{Procedimiento monádico} package-file @var{paquete} [@var{archivo}] @"
 
 #. type: deffn
-#: doc/guix.texi:7469
+#: doc/guix.texi:9089
 msgid "[#:system (%current-system)] [#:target #f] @ [#:output \"out\"] Return as a monadic value in the absolute file name of @var{file} within the @var{output} directory of @var{package}.  When @var{file} is omitted, return the name of the @var{output} directory of @var{package}.  When @var{target} is true, use it as a cross-compilation target triplet."
 msgstr ""
 "[#:system (%current-system)] [#:target #f] @\n"
 "  [#:output \"out\"]\n"
-"Devuelve como un valor monádico el nombre absoluto de fichero de @var{fichero} dentro del directorio de salida @var{output} del @var{paquete}. Cuando se omite @var{fichero}, devuelve el nombre del directorio de salida @var{output} del @var{paquete}. Cuando @var{target} es verdadero, se usa como una tripleta de compilación cruzada."
+"Devuelve como un valor monádico el nombre absoluto de archivo de @var{archivo} dentro del directorio de salida @var{output} del @var{paquete}. Cuando se omite @var{archivo}, devuelve el nombre del directorio de salida @var{output} del @var{paquete}. Cuando @var{target} es verdadero, se usa como una tripleta de compilación cruzada."
+
+#. type: deffn
+#: doc/guix.texi:9093
+msgid "Note that this procedure does @emph{not} build @var{package}.  Thus, the result might or might not designate an existing file.  We recommend not using this procedure unless you know what you are doing."
+msgstr "Tenga en cuenta que este procedimiento @emph{no} construye @var{paquete}. Por lo tanto, el resultado puede designar o no un archivo existente. Le recomendamos que no use este procedimiento a no ser que sepa qué está haciendo."
 
 #. type: deffn
-#: doc/guix.texi:7471
+#: doc/guix.texi:9095
 #, no-wrap
 msgid "{Monadic Procedure} package->derivation @var{package} [@var{system}]"
 msgstr "{Procedimiento monádico} package->derivation @var{paquete} [@var{sistema}]"
 
 #. type: deffnx
-#: doc/guix.texi:7472
+#: doc/guix.texi:9096
 #, no-wrap
 msgid "{Monadic Procedure} package->cross-derivation @var{package} @"
 msgstr "{Procedimiento monádico} package->cross-derivation @var{paquete} @"
 
 #. type: deffn
-#: doc/guix.texi:7476
+#: doc/guix.texi:9100
 msgid "@var{target} [@var{system}] Monadic version of @code{package-derivation} and @code{package-cross-derivation} (@pxref{Defining Packages})."
 msgstr ""
 "@var{objetivo} [@var{sistema}]\n"
 "Versión monádica de @code{package-derivation} y @code{package-cross-derivation} (@pxref{Defining Packages})."
 
 #. type: cindex
-#: doc/guix.texi:7482
+#: doc/guix.texi:9106
 #, no-wrap
 msgid "G-expression"
 msgstr "expresión-G"
 
 # FUZZY
 #. type: cindex
-#: doc/guix.texi:7483
+#: doc/guix.texi:9107
 #, no-wrap
 msgid "build code quoting"
 msgstr "escape de código de construcción"
 
 #. type: Plain text
-#: doc/guix.texi:7489
+#: doc/guix.texi:9113
 msgid "So we have ``derivations'', which represent a sequence of build actions to be performed to produce an item in the store (@pxref{Derivations}).  These build actions are performed when asking the daemon to actually build the derivations; they are run by the daemon in a container (@pxref{Invoking guix-daemon})."
 msgstr "Por tanto tenemos ``derivaciones'', que representan una secuencia de acciones de construcción a realizar para producir un elemento en el almacén (@pxref{Derivations}). Estas acciones de construcción se llevan a cabo cuando se solicita al daemon construir realmente la derivación; se ejecutan por el daemon en un contenedor (@pxref{Invoking guix-daemon})."
 
 #. type: cindex
-#: doc/guix.texi:7490
+#: doc/guix.texi:9116
 #, no-wrap
 msgid "strata of code"
 msgstr "estratos de código"
 
 #. type: Plain text
-#: doc/guix.texi:7502
-msgid "It should come as no surprise that we like to write these build actions in Scheme.  When we do that, we end up with two @dfn{strata} of Scheme code@footnote{The term @dfn{stratum} in this context was coined by Manuel Serrano et al.@: in the context of their work on Hop.  Oleg Kiselyov, who has written insightful @url{http://okmij.org/ftp/meta-programming/#meta-scheme, essays and code on this topic}, refers to this kind of code generation as @dfn{staging}.}: the ``host code''---code that defines packages, talks to the daemon, etc.---and the ``build code''---code that actually performs build actions, such as making directories, invoking @command{make}, etc."
-msgstr "No debería ser ninguna sorpresa que nos guste escribir estas acciones de construcción en Scheme. Cuando lo hacemos, terminamos con dos @dfn{estratos} de código Scheme@footnote{El término @dfn{estrato} en este contexto se debe a Manuel Serrano et al.@: en el contexto de su trabajo en Hop. Oleg Kiselyov, quien ha escrito profundos @url{http://okmij.org/ftp/meta-programming/#meta-scheme, ensayos sobre el tema}, se refiere a este tipo de generación de código como separación en etapas o @dfn{staging}.}: el ``código anfitrión''---código que define paquetes, habla al daemon, etc.---y el ``código de construcción''---código que realmente realiza las acciones de construcción, como la creación de directorios, la invocación de @command{make}, etc."
+#: doc/guix.texi:9128
+msgid "It should come as no surprise that we like to write these build actions in Scheme.  When we do that, we end up with two @dfn{strata} of Scheme code@footnote{The term @dfn{stratum} in this context was coined by Manuel Serrano et al.@: in the context of their work on Hop.  Oleg Kiselyov, who has written insightful @url{http://okmij.org/ftp/meta-programming/#meta-scheme, essays and code on this topic}, refers to this kind of code generation as @dfn{staging}.}: the ``host code''---code that defines packages, talks to the daemon, etc.---and the ``build code''---code that actually performs build actions, such as making directories, invoking @command{make}, and so on (@pxref{Build Phases})."
+msgstr "No debería ser ninguna sorpresa que nos guste escribir estas acciones de construcción en Scheme. Cuando lo hacemos, terminamos con dos @dfn{estratos} de código Scheme@footnote{El término @dfn{estrato} en este contexto se debe a Manuel Serrano et al.@: en el contexto de su trabajo en Hop. Oleg Kiselyov, quien ha escrito profundos @url{http://okmij.org/ftp/meta-programming/#meta-scheme, ensayos sobre el tema}, se refiere a este tipo de generación de código como separación en etapas o @dfn{staging}.}: el ``código anfitrión''---código que define paquetes, habla al daemon, etc.---y el ``código de construcción''---código que realmente realiza las acciones de construcción, como la creación de directorios, la invocación de @command{make}, etcétera (@pxref{Build Phases})."
 
 #. type: Plain text
-#: doc/guix.texi:7509
+#: doc/guix.texi:9135
 msgid "To describe a derivation and its build actions, one typically needs to embed build code inside host code.  It boils down to manipulating build code as data, and the homoiconicity of Scheme---code has a direct representation as data---comes in handy for that.  But we need more than the normal @code{quasiquote} mechanism in Scheme to construct build expressions."
 msgstr "Para describir una derivación y sus acciones de construcción, típicamente se necesita embeber código de construcción dentro del código anfitrión. Se resume en la manipulación de código de construcción como datos, y la homoiconicidad de Scheme---el código tiene representación directa como datos---es útil para ello. Pero necesitamos más que el mecanismo normal de @code{quasiquote} en Scheme para construir expresiones de construcción."
 
 #. type: Plain text
-#: doc/guix.texi:7518
+#: doc/guix.texi:9144
 msgid "The @code{(guix gexp)} module implements @dfn{G-expressions}, a form of S-expressions adapted to build expressions.  G-expressions, or @dfn{gexps}, consist essentially of three syntactic forms: @code{gexp}, @code{ungexp}, and @code{ungexp-splicing} (or simply: @code{#~}, @code{#$}, and @code{#$@@}), which are comparable to @code{quasiquote}, @code{unquote}, and @code{unquote-splicing}, respectively (@pxref{Expression Syntax, @code{quasiquote},, guile, GNU Guile Reference Manual}).  However, there are major differences:"
 msgstr "El módulo @code{(guix gexp)} implementa las @dfn{expresiones-G}, una forma de expresiones-S adaptada para expresiones de construcción. Las expresiones-G, o @dfn{gexps}, consiste esencialmente en tres formas sintácticas: @code{gexp}, @code{ungexp} y @code{ungexp-splicing} (o simplemente: @code{#~}, @code{#$} y @code{#$@@}), que son comparables a @code{quasiquote}, @code{unquote} y @code{unquote-splicing}, respectivamente (@pxref{Expression Syntax, @code{quasiquote},, guile, GNU Guile Reference Manual}). No obstante, hay importantes diferencias:"
 
 #. type: itemize
-#: doc/guix.texi:7523
+#: doc/guix.texi:9149
 msgid "Gexps are meant to be written to a file and run or manipulated by other processes."
-msgstr "Las expresiones-G están destinadas a escribirse en un fichero y ser ejecutadas o manipuladas por otros procesos."
+msgstr "Las expresiones-G están destinadas a escribirse en un archivo y ser ejecutadas o manipuladas por otros procesos."
 
 #. type: itemize
-#: doc/guix.texi:7528
+#: doc/guix.texi:9154
 msgid "When a high-level object such as a package or derivation is unquoted inside a gexp, the result is as if its output file name had been introduced."
-msgstr "Cuando un objeto de alto nivel como un paquete o una derivación se expande dentro de una expresión-G, el resultado es el mismo que la introducción de su nombre de fichero de salida."
+msgstr "Cuando un objeto de alto nivel como un paquete o una derivación se expande dentro de una expresión-G, el resultado es el mismo que la introducción de su nombre de archivo de salida."
 
 #. type: itemize
-#: doc/guix.texi:7533
+#: doc/guix.texi:9159
 msgid "Gexps carry information about the packages or derivations they refer to, and these dependencies are automatically added as inputs to the build processes that use them."
 msgstr "Las expresiones-G transportan información acerca de los paquetes o derivaciones que referencian, y estas referencias se añaden automáticamente como entradas al proceso de construcción que las usa."
 
 #. type: cindex
-#: doc/guix.texi:7535 doc/guix.texi:8063
+#: doc/guix.texi:9161 doc/guix.texi:9718
 #, no-wrap
 msgid "lowering, of high-level objects in gexps"
 msgstr "bajada de nivel, de objetos de alto nivel en expresiones-G"
 
 #. type: Plain text
-#: doc/guix.texi:7545
-msgid "This mechanism is not limited to package and derivation objects: @dfn{compilers} able to ``lower'' other high-level objects to derivations or files in the store can be defined, such that these objects can also be inserted into gexps.  For example, a useful type of high-level objects that can be inserted in a gexp is ``file-like objects'', which make it easy to add files to the store and to refer to them in derivations and such (see @code{local-file} and @code{plain-file} below.)"
-msgstr "Este mecanismo no se limita a objetos de paquete ni derivación: pueden definirse @dfn{compiladores} capaces de ``bajar el nivel'' de otros objetos de alto nivel a derivaciones o ficheros en el almacén, de modo que esos objetos puedan introducirse también en expresiones-G. Por ejemplo, un tipo útil de objetos de alto nivel que pueden insertarse en una expresión-G son los ``objetos tipo-fichero'', los cuales facilitan la adición de ficheros al almacén y su referencia en derivaciones y demás (vea @code{local-file} y @code{plain-file} más adelante)."
+#: doc/guix.texi:9171
+msgid "This mechanism is not limited to package and derivation objects: @dfn{compilers} able to ``lower'' other high-level objects to derivations or files in the store can be defined, such that these objects can also be inserted into gexps.  For example, a useful type of high-level objects that can be inserted in a gexp is ``file-like objects'', which make it easy to add files to the store and to refer to them in derivations and such (see @code{local-file} and @code{plain-file} below)."
+msgstr "Este mecanismo no se limita a objetos de paquete ni derivación: pueden definirse @dfn{compiladores} capaces de ``bajar el nivel'' de otros objetos de alto nivel a derivaciones o archivos en el almacén, de modo que esos objetos puedan introducirse también en expresiones-G. Por ejemplo, un tipo útil de objetos de alto nivel que pueden insertarse en una expresión-G son los ``objetos tipo-archivo'', los cuales facilitan la adición de archivos al almacén y su referencia en derivaciones y demás (vea @code{local-file} y @code{plain-file} más adelante)."
 
 #. type: Plain text
-#: doc/guix.texi:7547
+#: doc/guix.texi:9173
 msgid "To illustrate the idea, here is an example of a gexp:"
 msgstr "Para ilustrar la idea, aquí está un ejemplo de expresión-G:"
 
 #. type: lisp
-#: doc/guix.texi:7555
+#: doc/guix.texi:9181
 #, no-wrap
 msgid ""
 "(define build-exp\n"
@@ -14818,37 +17697,37 @@ msgstr ""
 "      (mkdir #$output)\n"
 "      (chdir #$output)\n"
 "      (symlink (string-append #$coreutils \"/bin/ls\")\n"
-"               \"enumera-ficheros\")))\n"
+"               \"enumera-archivos\")))\n"
 
 #. type: Plain text
-#: doc/guix.texi:7560
+#: doc/guix.texi:9186
 msgid "This gexp can be passed to @code{gexp->derivation}; we obtain a derivation that builds a directory containing exactly one symlink to @file{/gnu/store/@dots{}-coreutils-8.22/bin/ls}:"
 msgstr "Esta expresión-G puede pasarse a @code{gexp->derivation}; obtenemos una derivación que construye un directorio que contiene exactamente un enlace simbólico a @file{/gnu/store/@dots{}-coreutils-8.22/bin/ls}:"
 
 #. type: lisp
-#: doc/guix.texi:7563
+#: doc/guix.texi:9189
 #, no-wrap
 msgid "(gexp->derivation \"the-thing\" build-exp)\n"
 msgstr "(gexp->derivation \"la-cosa\" exp-construccion)\n"
 
 #. type: Plain text
-#: doc/guix.texi:7571
+#: doc/guix.texi:9197
 msgid "As one would expect, the @code{\"/gnu/store/@dots{}-coreutils-8.22\"} string is substituted to the reference to the @var{coreutils} package in the actual build code, and @var{coreutils} is automatically made an input to the derivation.  Likewise, @code{#$output} (equivalent to @code{(ungexp output)}) is replaced by a string containing the directory name of the output of the derivation."
 msgstr "Como se puede esperar, la cadena @code{\"/gnu/store/@dots{}-coreutils-8.22\"} se sustituye por la referencia al paquete @var{coreutils} en el código de construcción real, y @var{coreutils} se marca automáticamente como una entrada a la derivación. Del mismo modo, @code{#$output} (equivalente a @code{(ungexp output)}) se reemplaza por una cadena que contiene el nombre del directorio de la salida de la derivación."
 
 #. type: cindex
-#: doc/guix.texi:7572
+#: doc/guix.texi:9198
 #, no-wrap
 msgid "cross compilation"
 msgstr "compilación cruzada"
 
 #. type: Plain text
-#: doc/guix.texi:7578
+#: doc/guix.texi:9204
 msgid "In a cross-compilation context, it is useful to distinguish between references to the @emph{native} build of a package---that can run on the host---versus references to cross builds of a package.  To that end, the @code{#+} plays the same role as @code{#$}, but is a reference to a native package build:"
 msgstr "En un contexto de compilación cruzada, es útil distinguir entre referencias a construcciones @emph{nativas} del paquete---que pueden ejecutarse en el sistema anfitrión---de referencias de compilaciones cruzadas de un paquete. Para dicho fin, @code{#+} tiene el mismo papel que @code{#$}, pero es una referencia a una construcción nativa del paquete:"
 
 #. type: lisp
-#: doc/guix.texi:7589
+#: doc/guix.texi:9215
 #, no-wrap
 msgid ""
 "(gexp->derivation \"vi\"\n"
@@ -14859,7 +17738,7 @@ msgid ""
 "                \"-s\"\n"
 "                (string-append #$emacs \"/bin/emacs\")\n"
 "                (string-append #$output \"/bin/vi\")))\n"
-"   #:target \"mips64el-linux-gnu\")\n"
+"   #:target \"aarch64-linux-gnu\")\n"
 msgstr ""
 "(gexp->derivation \"vi\"\n"
 "   #~(begin\n"
@@ -14869,32 +17748,32 @@ msgstr ""
 "                \"-s\"\n"
 "                (string-append #$emacs \"/bin/emacs\")\n"
 "                (string-append #$output \"/bin/vi\")))\n"
-"   #:target \"mips64el-linux-gnu\")\n"
+"   #:target \"aarch64-linux-gnu\")\n"
 
 #. type: Plain text
-#: doc/guix.texi:7595
+#: doc/guix.texi:9221
 msgid "In the example above, the native build of @var{coreutils} is used, so that @command{ln} can actually run on the host; but then the cross-compiled build of @var{emacs} is referenced."
 msgstr "En el ejemplo previo, se usa la construcción nativa de @var{coreutils}, de modo que @command{ln} pueda realmente ejecutarse en el anfitrión; pero se hace referencia a la construcción de compilación cruzada de @var{emacs}."
 
 #. type: cindex
-#: doc/guix.texi:7596
+#: doc/guix.texi:9222
 #, no-wrap
 msgid "imported modules, for gexps"
 msgstr "módulos importados, para expresiones-G"
 
 #. type: findex
-#: doc/guix.texi:7597
+#: doc/guix.texi:9223
 #, no-wrap
 msgid "with-imported-modules"
 msgstr "with-imported-modules"
 
 #. type: Plain text
-#: doc/guix.texi:7602
+#: doc/guix.texi:9228
 msgid "Another gexp feature is @dfn{imported modules}: sometimes you want to be able to use certain Guile modules from the ``host environment'' in the gexp, so those modules should be imported in the ``build environment''.  The @code{with-imported-modules} form allows you to express that:"
 msgstr "Otra característica de las expresiones-G son los @dfn{módulos importados}: a veces deseará ser capaz de usar determinados módulos Guile del ``entorno anfitrión'' en la expresión-G, de modo que esos módulos deban ser importados en el ``entorno de construcción''. La forma @code{with-imported-modules} le permite expresarlo:"
 
 #. type: lisp
-#: doc/guix.texi:7613
+#: doc/guix.texi:9239
 #, no-wrap
 msgid ""
 "(let ((build (with-imported-modules '((guix build utils))\n"
@@ -14918,29 +17797,29 @@ msgstr ""
 "                        #t)))\n"
 
 #. type: Plain text
-#: doc/guix.texi:7619
+#: doc/guix.texi:9245
 msgid "In this example, the @code{(guix build utils)} module is automatically pulled into the isolated build environment of our gexp, such that @code{(use-modules (guix build utils))} works as expected."
 msgstr "En este ejemplo, el módulo @code{(guix build utils)} se incorpora automáticamente dentro del entorno de construcción aislado de nuestra expresión-G, de modo que @code{(use-modules (guix build utils))} funciona como se espera."
 
 #. type: cindex
-#: doc/guix.texi:7620
+#: doc/guix.texi:9246
 #, no-wrap
 msgid "module closure"
 msgstr "clausura de módulos"
 
 #. type: findex
-#: doc/guix.texi:7621
+#: doc/guix.texi:9247
 #, no-wrap
 msgid "source-module-closure"
 msgstr "source-module-closure"
 
 #. type: Plain text
-#: doc/guix.texi:7628
+#: doc/guix.texi:9254
 msgid "Usually you want the @emph{closure} of the module to be imported---i.e., the module itself and all the modules it depends on---rather than just the module; failing to do that, attempts to use the module will fail because of missing dependent modules.  The @code{source-module-closure} procedure computes the closure of a module by looking at its source file headers, which comes in handy in this case:"
-msgstr "De manera habitual deseará que la @emph{clausura} del módulo se importe---es decir, el módulo en sí y todos los módulos de los que depende---en vez del módulo únicamente; si no se hace, cualquier intento de uso del módulo fallará porque faltan módulos dependientes. El procedimiento @code{source-module-closure} computa la clausura de un módulo mirando en las cabeceras de sus ficheros de fuentes, lo que es útil en este caso:"
+msgstr "De manera habitual deseará que la @emph{clausura} del módulo se importe---es decir, el módulo en sí y todos los módulos de los que depende---en vez del módulo únicamente; si no se hace, cualquier intento de uso del módulo fallará porque faltan módulos dependientes. El procedimiento @code{source-module-closure} computa la clausura de un módulo mirando en las cabeceras de sus archivos de fuentes, lo que es útil en este caso:"
 
 #. type: lisp
-#: doc/guix.texi:7631
+#: doc/guix.texi:9257
 #, no-wrap
 msgid ""
 "(use-modules (guix modules))   ;for 'source-module-closure'\n"
@@ -14950,7 +17829,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:7640
+#: doc/guix.texi:9266
 #, no-wrap
 msgid ""
 "(with-imported-modules (source-module-closure\n"
@@ -14972,24 +17851,24 @@ msgstr ""
 "                        @dots{})))\n"
 
 #. type: cindex
-#: doc/guix.texi:7642
+#: doc/guix.texi:9268
 #, no-wrap
 msgid "extensions, for gexps"
 msgstr "extensiones, para expresiones G"
 
 #. type: findex
-#: doc/guix.texi:7643
+#: doc/guix.texi:9269
 #, no-wrap
 msgid "with-extensions"
 msgstr "with-extensions"
 
 #. type: Plain text
-#: doc/guix.texi:7648
+#: doc/guix.texi:9274
 msgid "In the same vein, sometimes you want to import not just pure-Scheme modules, but also ``extensions'' such as Guile bindings to C libraries or other ``full-blown'' packages.  Say you need the @code{guile-json} package available on the build side, here's how you would do it:"
 msgstr "De la misma manera, a veces deseará importar no únicamente módulos puros de Scheme, pero también ``extensiones'' como enlaces Guile a bibliotecas C u otros paquetes ``completos''. Si, digamos, necesitase el paquete @code{guile-json} disponible en el lado de construcción, esta sería la forma de hacerlo:"
 
 #. type: lisp
-#: doc/guix.texi:7651
+#: doc/guix.texi:9277
 #, no-wrap
 msgid ""
 "(use-modules (gnu packages guile))  ;for 'guile-json'\n"
@@ -14999,7 +17878,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:7657
+#: doc/guix.texi:9283
 #, no-wrap
 msgid ""
 "(with-extensions (list guile-json)\n"
@@ -15015,184 +17894,184 @@ msgstr ""
 "                        @dots{})))\n"
 
 #. type: Plain text
-#: doc/guix.texi:7660
+#: doc/guix.texi:9286
 msgid "The syntactic form to construct gexps is summarized below."
 msgstr "La forma sintáctica para construir expresiones-G se resume a continuación."
 
 #. type: deffn
-#: doc/guix.texi:7661
+#: doc/guix.texi:9287
 #, no-wrap
 msgid "{Scheme Syntax} #~@var{exp}"
 msgstr "{Sintaxis Scheme} #~@var{exp}"
 
 #. type: deffnx
-#: doc/guix.texi:7662
+#: doc/guix.texi:9288
 #, no-wrap
 msgid "{Scheme Syntax} (gexp @var{exp})"
 msgstr "{Sintaxis Scheme} (gexp @var{exp})"
 
 #. type: deffn
-#: doc/guix.texi:7665
+#: doc/guix.texi:9291
 msgid "Return a G-expression containing @var{exp}.  @var{exp} may contain one or more of the following forms:"
 msgstr "Devuelve una expresión-G que contiene @var{exp}. @var{exp} puede contener una o más de las siguientes formas:"
 
 #. type: item
-#: doc/guix.texi:7667
+#: doc/guix.texi:9293
 #, no-wrap
 msgid "#$@var{obj}"
 msgstr "#$@var{obj}"
 
 #. type: itemx
-#: doc/guix.texi:7668
+#: doc/guix.texi:9294
 #, no-wrap
 msgid "(ungexp @var{obj})"
 msgstr "(ungexp @var{obj})"
 
 #. type: table
-#: doc/guix.texi:7673
+#: doc/guix.texi:9299
 msgid "Introduce a reference to @var{obj}.  @var{obj} may have one of the supported types, for example a package or a derivation, in which case the @code{ungexp} form is replaced by its output file name---e.g., @code{\"/gnu/store/@dots{}-coreutils-8.22}."
-msgstr "Introduce una referencia a @var{obj}. @var{obj} puede tener uno de los tipos permitidos, por ejemplo un paquete o derivación, en cuyo caso la forma @code{ungexp} se substituye por el nombre de fichero de su salida---por ejemplo, @code{\"/gnu/store/@dots{}-coreutils-8.22}."
+msgstr "Introduce una referencia a @var{obj}. @var{obj} puede tener uno de los tipos permitidos, por ejemplo un paquete o derivación, en cuyo caso la forma @code{ungexp} se substituye por el nombre de archivo de su salida---por ejemplo, @code{\"/gnu/store/@dots{}-coreutils-8.22}."
 
 #. type: table
-#: doc/guix.texi:7676
+#: doc/guix.texi:9302
 msgid "If @var{obj} is a list, it is traversed and references to supported objects are substituted similarly."
 msgstr "Si @var{obj} es una lista, se recorre y las referencias a objetos permitidos se substituyen de manera similar."
 
 #. type: table
-#: doc/guix.texi:7679
+#: doc/guix.texi:9305
 msgid "If @var{obj} is another gexp, its contents are inserted and its dependencies are added to those of the containing gexp."
 msgstr "Si @var{obj} es otra expresión-G, su contenido se inserta y sus dependencias se añaden a aquellas de la expresión-G que la contiene."
 
 #. type: table
-#: doc/guix.texi:7681
+#: doc/guix.texi:9307
 msgid "If @var{obj} is another kind of object, it is inserted as is."
 msgstr "Si @var{obj} es otro tipo de objeto, se inserta tal cual es."
 
 #. type: item
-#: doc/guix.texi:7682
+#: doc/guix.texi:9308
 #, no-wrap
 msgid "#$@var{obj}:@var{output}"
 msgstr "#$@var{obj}:@var{salida}"
 
 #. type: itemx
-#: doc/guix.texi:7683
+#: doc/guix.texi:9309
 #, no-wrap
 msgid "(ungexp @var{obj} @var{output})"
 msgstr "(ungexp @var{obj} @var{salida})"
 
 #. type: table
-#: doc/guix.texi:7687
+#: doc/guix.texi:9313
 msgid "This is like the form above, but referring explicitly to the @var{output} of @var{obj}---this is useful when @var{obj} produces multiple outputs (@pxref{Packages with Multiple Outputs})."
 msgstr "Como la forma previa, pero referenciando explícitamente la @var{salida} de @var{obj}---esto es útil cuando @var{obj} produce múltiples salidas (@pxref{Packages with Multiple Outputs})."
 
 #. type: item
-#: doc/guix.texi:7688
+#: doc/guix.texi:9314
 #, no-wrap
 msgid "#+@var{obj}"
 msgstr "#+@var{obj}"
 
 #. type: itemx
-#: doc/guix.texi:7689
+#: doc/guix.texi:9315
 #, no-wrap
 msgid "#+@var{obj}:output"
 msgstr "#+@var{obj}:salida"
 
 #. type: itemx
-#: doc/guix.texi:7690
+#: doc/guix.texi:9316
 #, no-wrap
 msgid "(ungexp-native @var{obj})"
 msgstr "(ungexp-native @var{obj})"
 
 #. type: itemx
-#: doc/guix.texi:7691
+#: doc/guix.texi:9317
 #, no-wrap
 msgid "(ungexp-native @var{obj} @var{output})"
 msgstr "(ungexp-native @var{obj} @var{salida})"
 
 #. type: table
-#: doc/guix.texi:7694
+#: doc/guix.texi:9320
 msgid "Same as @code{ungexp}, but produces a reference to the @emph{native} build of @var{obj} when used in a cross compilation context."
 msgstr "Igual que @code{ungexp}, pero produce una referencia a la construcción @emph{nativa} de @var{obj} cuando se usa en un contexto de compilación cruzada."
 
 #. type: item
-#: doc/guix.texi:7695
+#: doc/guix.texi:9321
 #, no-wrap
 msgid "#$output[:@var{output}]"
 msgstr "#$output[:@var{salida}]"
 
 #. type: itemx
-#: doc/guix.texi:7696
+#: doc/guix.texi:9322
 #, no-wrap
 msgid "(ungexp output [@var{output}])"
 msgstr "(ungexp output [@var{salida}])"
 
 #. type: table
-#: doc/guix.texi:7699
+#: doc/guix.texi:9325
 msgid "Insert a reference to derivation output @var{output}, or to the main output when @var{output} is omitted."
 msgstr "Inserta una referencia a la salida de la derivación @var{salida}, o a la salida principal cuando @var{salida} se omite."
 
 #. type: table
-#: doc/guix.texi:7701
+#: doc/guix.texi:9327
 msgid "This only makes sense for gexps passed to @code{gexp->derivation}."
 msgstr "Esto únicamente tiene sentido para expresiones-G pasadas a @code{gexp->derivation}."
 
 #. type: item
-#: doc/guix.texi:7702
+#: doc/guix.texi:9328
 #, no-wrap
 msgid "#$@@@var{lst}"
 msgstr "#$@@@var{lst}"
 
 #. type: itemx
-#: doc/guix.texi:7703
+#: doc/guix.texi:9329
 #, no-wrap
 msgid "(ungexp-splicing @var{lst})"
 msgstr "(ungexp-splicing @var{lst})"
 
 #. type: table
-#: doc/guix.texi:7706
+#: doc/guix.texi:9332
 msgid "Like the above, but splices the contents of @var{lst} inside the containing list."
 msgstr "Lo mismo que la forma previa, pero expande el contenido de la lista @var{lst} como parte de la lista que la contiene."
 
 #. type: item
-#: doc/guix.texi:7707
+#: doc/guix.texi:9333
 #, no-wrap
 msgid "#+@@@var{lst}"
 msgstr "#+@@@var{lst}"
 
 #. type: itemx
-#: doc/guix.texi:7708
+#: doc/guix.texi:9334
 #, no-wrap
 msgid "(ungexp-native-splicing @var{lst})"
 msgstr "(ungexp-native-splicing @var{lst})"
 
 #. type: table
-#: doc/guix.texi:7711
+#: doc/guix.texi:9337
 msgid "Like the above, but refers to native builds of the objects listed in @var{lst}."
 msgstr "Lo mismo que la forma previa, pero hace referencia a las construcciones nativas de los objetos listados en @var{lst}."
 
 #. type: deffn
-#: doc/guix.texi:7716
-msgid "G-expressions created by @code{gexp} or @code{#~} are run-time objects of the @code{gexp?} type (see below.)"
-msgstr "Las expresiones-G creadas por @code{gexp} o @code{#~} son objetos del tipo @code{gexp?} en tiempo de ejecución (vea más adelante)."
+#: doc/guix.texi:9342
+msgid "G-expressions created by @code{gexp} or @code{#~} are run-time objects of the @code{gexp?} type (see below)."
+msgstr "Las expresiones-G creadas por @code{gexp} o @code{#~} son objetos del tipo @code{gexp?} en tiempo de ejecución (véase a continuación)."
 
 #. type: deffn
-#: doc/guix.texi:7718
+#: doc/guix.texi:9344
 #, no-wrap
 msgid "{Scheme Syntax} with-imported-modules @var{modules} @var{body}@dots{}"
 msgstr "{Sintaxis Scheme} with-imported-modules @var{módulos} @var{cuerpo}@dots{}"
 
 #. type: deffn
-#: doc/guix.texi:7721
+#: doc/guix.texi:9347
 msgid "Mark the gexps defined in @var{body}@dots{} as requiring @var{modules} in their execution environment."
 msgstr "Marca las expresiones-G definidas en el @var{cuerpo}@dots{} como si requiriesen @var{módulos} en su entorno de ejecución."
 
 #. type: deffn
-#: doc/guix.texi:7725
+#: doc/guix.texi:9351
 msgid "Each item in @var{modules} can be the name of a module, such as @code{(guix build utils)}, or it can be a module name, followed by an arrow, followed by a file-like object:"
-msgstr "Cada elemento en @var{módulos} puede ser el nombre de un módulo, como @code{(guix build utils)}, o puede ser el nombre de un módulo, seguido de una flecha, seguido de un objeto tipo-fichero:"
+msgstr "Cada elemento en @var{módulos} puede ser el nombre de un módulo, como @code{(guix build utils)}, o puede ser el nombre de un módulo, seguido de una flecha, seguido de un objeto tipo-archivo:"
 
 #. type: lisp
-#: doc/guix.texi:7731
+#: doc/guix.texi:9357
 #, no-wrap
 msgid ""
 "`((guix build utils)\n"
@@ -15206,93 +18085,93 @@ msgstr ""
 "                                  #~(define-module @dots{}))))\n"
 
 #. type: deffn
-#: doc/guix.texi:7736
+#: doc/guix.texi:9362
 msgid "In the example above, the first two modules are taken from the search path, and the last one is created from the given file-like object."
-msgstr "En el ejemplo previo, los dos primeros módulos se toman de la ruta de búsqueda, y el último se crea desde el objeto tipo-fichero proporcionado."
+msgstr "En el ejemplo previo, los dos primeros módulos se toman de la ruta de búsqueda, y el último se crea desde el objeto tipo-archivo proporcionado."
 
 #. type: deffn
-#: doc/guix.texi:7740
+#: doc/guix.texi:9366
 msgid "This form has @emph{lexical} scope: it has an effect on the gexps directly defined in @var{body}@dots{}, but not on those defined, say, in procedures called from @var{body}@dots{}."
 msgstr "Esta forma tiene ámbito @emph{léxico}: tiene efecto en las expresiones-G definidas en @var{cuerpo}@dots{}, pero no en aquellas definidas, digamos, en procedimientos llamados por @var{cuerpo}@dots{}."
 
 #. type: deffn
-#: doc/guix.texi:7742
+#: doc/guix.texi:9368
 #, no-wrap
 msgid "{Scheme Syntax} with-extensions @var{extensions} @var{body}@dots{}"
 msgstr "{Sintaxis Scheme} with-extensions @var{extensiones} @var{cuerpo}@dots{}"
 
 #. type: deffn
-#: doc/guix.texi:7747
+#: doc/guix.texi:9373
 msgid "Mark the gexps defined in @var{body}@dots{} as requiring @var{extensions} in their build and execution environment.  @var{extensions} is typically a list of package objects such as those defined in the @code{(gnu packages guile)} module."
 msgstr "Marca que las expresiones definidas en @var{cuerpo}@dots{} requieren @var{extensiones} en su entorno de construcción y ejecución. @var{extensiones} es típicamente una lista de objetos de paquetes como los que se definen en el módulo @code{(gnu packages guile)}."
 
 #. type: deffn
-#: doc/guix.texi:7752
+#: doc/guix.texi:9378
 msgid "Concretely, the packages listed in @var{extensions} are added to the load path while compiling imported modules in @var{body}@dots{}; they are also added to the load path of the gexp returned by @var{body}@dots{}."
 msgstr "De manera concreta, los paquetes listados en @var{extensiones} se añaden a la ruta de carga mientras se compilan los módulos importados en @var{cuerpo}@dots{}; también se añaden a la ruta de carga en la expresión-G devuelta por @var{cuerpo}@dots{}."
 
 #. type: deffn
-#: doc/guix.texi:7754
+#: doc/guix.texi:9380
 #, no-wrap
 msgid "{Scheme Procedure} gexp? @var{obj}"
 msgstr "{Procedimiento Scheme} gexp? @var{obj}"
 
 #. type: deffn
-#: doc/guix.texi:7756
+#: doc/guix.texi:9382
 msgid "Return @code{#t} if @var{obj} is a G-expression."
 msgstr "Devuelve @code{#t} si @var{obj} es una expresión-G."
 
 #. type: Plain text
-#: doc/guix.texi:7762
-msgid "G-expressions are meant to be written to disk, either as code building some derivation, or as plain files in the store.  The monadic procedures below allow you to do that (@pxref{The Store Monad}, for more information about monads.)"
-msgstr "Las expresiones-G están destinadas a escribirse en disco, tanto en código que construye alguna derivación, como en ficheros planos en el almacén. Los procedimientos monádicos siguientes le permiten hacerlo (@pxref{The Store Monad}, para más información sobre mónadas)."
+#: doc/guix.texi:9388
+msgid "G-expressions are meant to be written to disk, either as code building some derivation, or as plain files in the store.  The monadic procedures below allow you to do that (@pxref{The Store Monad}, for more information about monads)."
+msgstr "Las expresiones-G están destinadas a escribirse en disco, tanto en código que construye alguna derivación, como en archivos planos en el almacén. Los procedimientos monádicos siguientes le permiten hacerlo (@pxref{The Store Monad}, para más información sobre mónadas)."
 
 #. type: deffn
-#: doc/guix.texi:7763
+#: doc/guix.texi:9389
 #, no-wrap
 msgid "{Monadic Procedure} gexp->derivation @var{name} @var{exp} @"
 msgstr "{Procedimiento monádico} gexp->derivation @var{nombre} @var{exp} @"
 
 #. type: deffn
-#: doc/guix.texi:7781
-msgid "[#:system (%current-system)] [#:target #f] [#:graft? #t] @ [#:hash #f] [#:hash-algo #f] @ [#:recursive? #f] [#:env-vars '()] [#:modules '()] @ [#:module-path @var{%load-path}] @ [#:effective-version \"2.2\"] @ [#:references-graphs #f] [#:allowed-references #f] @ [#:disallowed-references #f] @ [#:leaked-env-vars #f] @ [#:script-name (string-append @var{name} \"-builder\")] @ [#:deprecation-warnings #f] @ [#:local-build? #f] [#:substitutable? #t] @ [#:properties '()] [#:guile-for-build #f] Return a derivation @var{name} that runs @var{exp} (a gexp) with @var{guile-for-build} (a derivation) on @var{system}; @var{exp} is stored in a file called @var{script-name}.  When @var{target} is true, it is used as the cross-compilation target triplet for packages referred to by @var{exp}."
+#: doc/guix.texi:9407
+msgid "[#:system (%current-system)] [#:target #f] [#:graft? #t] @ [#:hash #f] [#:hash-algo #f] @ [#:recursive? #f] [#:env-vars '()] [#:modules '()] @ [#:module-path @code{%load-path}] @ [#:effective-version \"2.2\"] @ [#:references-graphs #f] [#:allowed-references #f] @ [#:disallowed-references #f] @ [#:leaked-env-vars #f] @ [#:script-name (string-append @var{name} \"-builder\")] @ [#:deprecation-warnings #f] @ [#:local-build? #f] [#:substitutable? #t] @ [#:properties '()] [#:guile-for-build #f] Return a derivation @var{name} that runs @var{exp} (a gexp) with @var{guile-for-build} (a derivation) on @var{system}; @var{exp} is stored in a file called @var{script-name}.  When @var{target} is true, it is used as the cross-compilation target triplet for packages referred to by @var{exp}."
 msgstr ""
 "[#:system (%current-system)] [#:target #f] [#:graft? #t] @\n"
 "  [#:hash #f] [#:hash-algo #f] @\n"
 "  [#:recursive? #f] [#:env-vars '()] [#:modules '()] @\n"
-"  [#:module-path @var{%load-path}] @\n"
+"  [#:module-path @code{%load-path}] @\n"
 "  [#:effective-version \"2.2\"] @\n"
 "  [#:references-graphs #f] [#:allowed-references #f] @\n"
 "  [#:disallowed-references #f] @\n"
 "  [#:leaked-env-vars #f] @\n"
-"  [#:script-name (string-append @var{name} \"-builder\")] @\n"
+"  [#:script-name (string-append @var{nombre} \"-builder\")] @\n"
 "  [#:deprecation-warnings #f] @\n"
 "  [#:local-build? #f] [#:substitutable? #t] @\n"
 "  [#:properties '()] [#:guile-for-build #f]\n"
-"Devuelve una derivación @var{nombre} que ejecuta @var{exp} (una expresión-G) con @var{guile-for-build} (una derivación) en el sistema @var{system}; @var{exp} se almacena en un fichero llamado @var{script-name}. Cuando @var{target} es verdadero, se usa como la tripleta de compilación cruzada para paquetes a los que haga referencia @var{exp}."
+"Devuelve una derivación @var{nombre} que ejecuta @var{exp} (una expresión-G) con @var{guile-for-build} (una derivación) en el sistema @var{system}; @var{exp} se almacena en un archivo llamado @var{script-name}. Cuando @var{target} tiene valor verdadero, se usa como tripleta de compilación cruzada para paquetes a los que haga referencia @var{exp}."
 
 #. type: deffn
-#: doc/guix.texi:7789
+#: doc/guix.texi:9415
 msgid "@var{modules} is deprecated in favor of @code{with-imported-modules}.  Its meaning is to make @var{modules} available in the evaluation context of @var{exp}; @var{modules} is a list of names of Guile modules searched in @var{module-path} to be copied in the store, compiled, and made available in the load path during the execution of @var{exp}---e.g., @code{((guix build utils) (guix build gnu-build-system))}."
 msgstr "@var{modules} está obsoleto en favor de @code{with-imported-modules}. Su significado es hacer que los módulos @var{modules} estén disponibles en el contexto de evaluación de @var{exp}; @var{modules} es una lista de nombres de módulos Guile buscados en @var{module-path} para ser copiados al almacén, compilados y disponibles en la ruta de carga durante la ejecución de @var{exp}---por ejemplo, @code{((guix build utils) (gui build gnu-build-system))}."
 
 #. type: deffn
-#: doc/guix.texi:7792
+#: doc/guix.texi:9418
 msgid "@var{effective-version} determines the string to use when adding extensions of @var{exp} (see @code{with-extensions}) to the search path---e.g., @code{\"2.2\"}."
 msgstr "@var{effective-version} determina la cadena usada cuando se añaden las extensiones de @var{exp} (vea @code{with-extensions}) a la ruta de búsqueda---por ejemplo, @code{\"2.2\"}."
 
 #. type: deffn
-#: doc/guix.texi:7795
+#: doc/guix.texi:9421
 msgid "@var{graft?} determines whether packages referred to by @var{exp} should be grafted when applicable."
 msgstr "@var{graft?} determina si los paquetes a los que @var{exp} hace referencia deben ser injertados cuando sea posible."
 
 #. type: deffn
-#: doc/guix.texi:7798
+#: doc/guix.texi:9424
 msgid "When @var{references-graphs} is true, it must be a list of tuples of one of the following forms:"
 msgstr "Cuando @var{references-graphs} es verdadero, debe ser una lista de tuplas de una de las formas siguientes:"
 
 #. type: example
-#: doc/guix.texi:7805
+#: doc/guix.texi:9431
 #, no-wrap
 msgid ""
 "(@var{file-name} @var{package})\n"
@@ -15301,46 +18180,46 @@ msgid ""
 "(@var{file-name} @var{derivation} @var{output})\n"
 "(@var{file-name} @var{store-item})\n"
 msgstr ""
-"(@var{nombre-fichero} @var{paquete})\n"
-"(@var{nombre-fichero} @var{paquete} @var{salida})\n"
-"(@var{nombre-fichero} @var{derivación})\n"
-"(@var{nombre-fichero} @var{derivación} @var{salida})\n"
-"(@var{nombre-fichero} @var{elemento-almacén})\n"
+"(@var{nombre-archivo} @var{paquete})\n"
+"(@var{nombre-archivo} @var{paquete} @var{salida})\n"
+"(@var{nombre-archivo} @var{derivación})\n"
+"(@var{nombre-archivo} @var{derivación} @var{salida})\n"
+"(@var{nombre-archivo} @var{elemento-almacén})\n"
 
 #. type: deffn
-#: doc/guix.texi:7811
+#: doc/guix.texi:9437
 msgid "The right-hand-side of each element of @var{references-graphs} is automatically made an input of the build process of @var{exp}.  In the build environment, each @var{file-name} contains the reference graph of the corresponding item, in a simple text format."
-msgstr "El lado derecho de cada elemento de @var{references-graphs} se convierte automáticamente en una entrada del proceso de construcción de @var{exp}. En el entorno de construcción, cada @var{nombre-fichero} contiene el grafo de referencias del elemento correspondiente, en un formato de texto simple."
+msgstr "El lado derecho de cada elemento de @var{references-graphs} se convierte automáticamente en una entrada del proceso de construcción de @var{exp}. En el entorno de construcción, cada @var{nombre-archivo} contiene el grafo de referencias del elemento correspondiente, en un formato de texto simple."
 
 #. type: deffn
-#: doc/guix.texi:7817
+#: doc/guix.texi:9443
 msgid "@var{allowed-references} must be either @code{#f} or a list of output names and packages.  In the latter case, the list denotes store items that the result is allowed to refer to.  Any reference to another store item will lead to a build error.  Similarly for @var{disallowed-references}, which can list items that must not be referenced by the outputs."
 msgstr "@var{allowed-references} debe ser o bien @code{#f} o una lista de nombres y paquetes de salida. En el último caso, la lista denota elementos del almacén a los que el resultado puede hacer referencia. Cualquier referencia a otro elemento del almacén produce un error de construcción. De igual manera con @var{disallowed-references}, que enumera elementos a los que las salidas no deben hacer referencia."
 
 #. type: deffn
-#: doc/guix.texi:7820
+#: doc/guix.texi:9446
 msgid "@var{deprecation-warnings} determines whether to show deprecation warnings while compiling modules.  It can be @code{#f}, @code{#t}, or @code{'detailed}."
 msgstr "@var{deprecation-warnings} determina si mostrar avisos de obsolescencia durante la compilación de los módulos. Puede ser @code{#f}, @code{#t} o @code{'detailed}."
 
 #. type: deffn
-#: doc/guix.texi:7822
+#: doc/guix.texi:9448
 msgid "The other arguments are as for @code{derivation} (@pxref{Derivations})."
 msgstr "El resto de parámetros funcionan como en @code{derivation} (@pxref{Derivations})."
 
 #. type: cindex
-#: doc/guix.texi:7824
+#: doc/guix.texi:9450
 #, no-wrap
 msgid "file-like objects"
-msgstr "objetos tipo-fichero"
+msgstr "objetos tipo-archivo"
 
 # FUZZY
 #. type: Plain text
-#: doc/guix.texi:7829
+#: doc/guix.texi:9455
 msgid "The @code{local-file}, @code{plain-file}, @code{computed-file}, @code{program-file}, and @code{scheme-file} procedures below return @dfn{file-like objects}.  That is, when unquoted in a G-expression, these objects lead to a file in the store.  Consider this G-expression:"
-msgstr "Los procedimientos @code{local-file}, @code{plain-file}, @code{computed-file}, @code{program-file} y @code{scheme-file} a continuación devuelven @dfn{objetos tipo-fichero}. Esto es, cuando se expanden en una expresión-G, estos objetos dirigen a un fichero en el almacén. Considere esta expresión-G:"
+msgstr "Los procedimientos @code{local-file}, @code{plain-file}, @code{computed-file}, @code{program-file} y @code{scheme-file} a continuación devuelven @dfn{objetos tipo-archivo}. Esto es, cuando se expanden en una expresión-G, estos objetos dirigen a un archivo en el almacén. Considere esta expresión-G:"
 
 #. type: lisp
-#: doc/guix.texi:7833
+#: doc/guix.texi:9459
 #, no-wrap
 msgid ""
 "#~(system* #$(file-append glibc \"/sbin/nscd\") \"-f\"\n"
@@ -15350,82 +18229,82 @@ msgstr ""
 "           #$(local-file \"/tmp/mi-nscd.conf\"))\n"
 
 #. type: Plain text
-#: doc/guix.texi:7842
+#: doc/guix.texi:9468
 msgid "The effect here is to ``intern'' @file{/tmp/my-nscd.conf} by copying it to the store.  Once expanded, for instance @i{via} @code{gexp->derivation}, the G-expression refers to that copy under @file{/gnu/store}; thus, modifying or removing the file in @file{/tmp} does not have any effect on what the G-expression does.  @code{plain-file} can be used similarly; it differs in that the file content is directly passed as a string."
-msgstr "El efecto aquí es el ``internamiento'' de @file{/tmp/mi-nscd.conf} mediante su copia al almacén. Una vez expandida, por ejemplo @i{vía} @code{gexp->derivation}, la expresión-G hace referencia a la copia bajo @file{/gnu/store}; por tanto, la modificación o el borrado del fichero en @file{/tmp} no tiene ningún efecto en lo que la expresión-G hace. @code{plain-file} puede usarse de manera similar; se diferencia en que el contenido del fichero se proporciona directamente como una cadena."
+msgstr "El efecto aquí es el ``internamiento'' de @file{/tmp/mi-nscd.conf} mediante su copia al almacén. Una vez expandida, por ejemplo @i{vía} @code{gexp->derivation}, la expresión-G hace referencia a la copia bajo @file{/gnu/store}; por tanto, la modificación o el borrado del archivo en @file{/tmp} no tiene ningún efecto en lo que la expresión-G hace. @code{plain-file} puede usarse de manera similar; se diferencia en que el contenido del archivo se proporciona directamente como una cadena."
 
 #. type: deffn
-#: doc/guix.texi:7843
+#: doc/guix.texi:9469
 #, no-wrap
 msgid "{Scheme Procedure} local-file @var{file} [@var{name}] @"
-msgstr "{Procedimiento Scheme} local-file @var{fichero} [@var{nombre}] @"
+msgstr "{Procedimiento Scheme} local-file @var{archivo} [@var{nombre}] @"
 
 #. type: deffn
-#: doc/guix.texi:7852
+#: doc/guix.texi:9478
 msgid "[#:recursive? #f] [#:select? (const #t)] Return an object representing local file @var{file} to add to the store; this object can be used in a gexp.  If @var{file} is a literal string denoting a relative file name, it is looked up relative to the source file where it appears; if @var{file} is not a literal string, it is looked up relative to the current working directory at run time.  @var{file} will be added to the store under @var{name}--by default the base name of @var{file}."
 msgstr ""
 "[#:recursive? #f] [#:select? (const #t)]\n"
-"Devuelve un objeto que representa el fichero local @var{fichero} a añadir al almacén; este objeto puede usarse en una expresión-G. Si @var{fichero} es un nombre de fichero relativo, se busca de forma relativa al fichero fuente donde esta forma aparece; si @var{fichero} no es una cadena literal, se buscará de manera relativa al directorio de trabajo durante la ejecución. @var{fichero} se añadirá al almacén bajo @var{nombre}---de manera predeterminada el nombre de @var{fichero} sin los directorios."
+"Devuelve un objeto que representa el archivo local @var{archivo} a añadir al almacén; este objeto puede usarse en una expresión-G. Si @var{archivo} es un nombre de archivo relativo, se busca de forma relativa al archivo fuente donde esta forma aparece; si @var{archivo} no es una cadena literal, se buscará de manera relativa al directorio de trabajo durante la ejecución. @var{archivo} se añadirá al almacén bajo @var{nombre}---de manera predeterminada el nombre de @var{archivo} sin los directorios."
 
 #. type: deffn
-#: doc/guix.texi:7864
+#: doc/guix.texi:9490
 msgid "This is the declarative counterpart of the @code{interned-file} monadic procedure (@pxref{The Store Monad, @code{interned-file}})."
 msgstr "Esta es la contraparte declarativa del procedimiento monádico @code{interned-file} (@pxref{The Store Monad, @code{interned-file}})."
 
 #. type: deffn
-#: doc/guix.texi:7866
+#: doc/guix.texi:9492
 #, no-wrap
 msgid "{Scheme Procedure} plain-file @var{name} @var{content}"
 msgstr "{Procedimiento Scheme} plain-file @var{nombre} @var{contenido}"
 
 #. type: deffn
-#: doc/guix.texi:7869
+#: doc/guix.texi:9495
 msgid "Return an object representing a text file called @var{name} with the given @var{content} (a string or a bytevector) to be added to the store."
-msgstr "Devuelve un objeto que representa un fichero de texto llamado @var{nombre} con el @var{contenido} proporcionado (una cadena o un vector de bytes) para ser añadido al almacén."
+msgstr "Devuelve un objeto que representa un archivo de texto llamado @var{nombre} con el @var{contenido} proporcionado (una cadena o un vector de bytes) para ser añadido al almacén."
 
 #. type: deffn
-#: doc/guix.texi:7871
+#: doc/guix.texi:9497
 msgid "This is the declarative counterpart of @code{text-file}."
 msgstr "Esta es la contraparte declarativa de @code{text-file}."
 
 #. type: deffn
-#: doc/guix.texi:7873
+#: doc/guix.texi:9499
 #, no-wrap
 msgid "{Scheme Procedure} computed-file @var{name} @var{gexp} @"
 msgstr "{Procedimiento Scheme} computed-file @var{nombre} @var{gexp} @"
 
 #. type: deffn
-#: doc/guix.texi:7878
-msgid "[#:options '(#:local-build? #t)] Return an object representing the store item @var{name}, a file or directory computed by @var{gexp}.  @var{options} is a list of additional arguments to pass to @code{gexp->derivation}."
+#: doc/guix.texi:9506
+msgid "[#:local-build? #t] [#:options '()] Return an object representing the store item @var{name}, a file or directory computed by @var{gexp}.  When @var{local-build?} is true (the default), the derivation is built locally.  @var{options} is a list of additional arguments to pass to @code{gexp->derivation}."
 msgstr ""
-"[#:options '(#:local-build? #t)]\n"
-"Devuelve un objeto que representa el elemento del almacén @var{nombre}, un fichero o un directorio computado por @var{gexp}. @var{options} es una lista de parámetros adicionales a pasar a @code{gexp->derivation}."
+"[#:local-build? #t] [#:options '()]\n"
+"Devuelve un objeto que representa el elemento del almacén @var{nombre}, un archivo o un directorio computado por @var{gexp}. Cuando @var{local-build?} tiene valor verdadero (el caso predeterminado), la derivación se construye de manera local. @var{options} es una lista de parámetros adicionales proporcionados a @code{gexp->derivation}."
 
 #. type: deffn
-#: doc/guix.texi:7880
+#: doc/guix.texi:9508
 msgid "This is the declarative counterpart of @code{gexp->derivation}."
 msgstr "Esta es la contraparte declarativa de @code{gexp->derivation}."
 
 #. type: deffn
-#: doc/guix.texi:7882
+#: doc/guix.texi:9510
 #, no-wrap
 msgid "{Monadic Procedure} gexp->script @var{name} @var{exp} @"
 msgstr "{Procedimiento monádico} gexp->script @var{nombre} @var{exp} @"
 
 #. type: deffn
-#: doc/guix.texi:7888
+#: doc/guix.texi:9516
 msgid "[#:guile (default-guile)] [#:module-path %load-path] @ [#:system (%current-system)] [#:target #f] Return an executable script @var{name} that runs @var{exp} using @var{guile}, with @var{exp}'s imported modules in its search path.  Look up @var{exp}'s modules in @var{module-path}."
 msgstr ""
 "[#:guile (default-guile)] [#:module-path %load-path] @ [#:system (%current-system)] [#:target #f]\n"
 "Devuelve un guión ejecutable @var{nombre} que ejecuta @var{exp} usando @var{guile}, con los módulos importados por @var{exp} en su ruta de búsqueda. Busca los módulos de @var{exp} en @var{module-path}."
 
 #. type: deffn
-#: doc/guix.texi:7891
+#: doc/guix.texi:9519
 msgid "The example below builds a script that simply invokes the @command{ls} command:"
 msgstr "El ejemplo siguiente construye un guión que simplemente invoca la orden @command{ls}:"
 
 #. type: lisp
-#: doc/guix.texi:7894
+#: doc/guix.texi:9522
 #, no-wrap
 msgid ""
 "(use-modules (guix gexp) (gnu packages base))\n"
@@ -15435,24 +18314,24 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:7898
+#: doc/guix.texi:9526
 #, no-wrap
 msgid ""
 "(gexp->script \"list-files\"\n"
 "              #~(execl #$(file-append coreutils \"/bin/ls\")\n"
 "                       \"ls\"))\n"
 msgstr ""
-"(gexp->script \"enumera-ficheros\"\n"
+"(gexp->script \"enumera-archivos\"\n"
 "              #~(execl #$(file-append coreutils \"/bin/ls\")\n"
 "                       \"ls\"))\n"
 
 #. type: deffn
-#: doc/guix.texi:7903
+#: doc/guix.texi:9531
 msgid "When ``running'' it through the store (@pxref{The Store Monad, @code{run-with-store}}), we obtain a derivation that produces an executable file @file{/gnu/store/@dots{}-list-files} along these lines:"
-msgstr "Cuando se ejecuta a través del almacén (@pxref{The Store Monad, @code{run-with-store}}), obtenemos una derivación que produce un fichero ejecutable @file{/gnu/store/@dots{}-enumera-ficheros} más o menos así:"
+msgstr "Cuando se ejecuta a través del almacén (@pxref{The Store Monad, @code{run-with-store}}), obtenemos una derivación que produce un archivo ejecutable @file{/gnu/store/@dots{}-enumera-archivos} más o menos así:"
 
 #. type: example
-#: doc/guix.texi:7908
+#: doc/guix.texi:9536
 #, no-wrap
 msgid ""
 "#!/gnu/store/@dots{}-guile-2.0.11/bin/guile -ds\n"
@@ -15464,25 +18343,25 @@ msgstr ""
 "(execl \"/gnu/store/@dots{}-coreutils-8.22\"/bin/ls\" \"ls\")\n"
 
 #. type: deffn
-#: doc/guix.texi:7911
+#: doc/guix.texi:9539
 #, no-wrap
 msgid "{Scheme Procedure} program-file @var{name} @var{exp} @"
 msgstr "{Procedimiento Scheme} program-file @var{nombre} @var{exp} @"
 
 #. type: deffn
-#: doc/guix.texi:7916
+#: doc/guix.texi:9544
 msgid "[#:guile #f] [#:module-path %load-path] Return an object representing the executable store item @var{name} that runs @var{gexp}.  @var{guile} is the Guile package used to execute that script.  Imported modules of @var{gexp} are looked up in @var{module-path}."
 msgstr ""
 "[#:guile #f] [#:module-path %load-path]\n"
 "Devuelve un objeto que representa el elemento ejecutable del almacén @var{nombre} que ejecuta @var{gexp}. @var{guile} es el paquete Guile usado para ejecutar el guión. Los módulos importados por @var{gexp} se buscan en @var{module-path}."
 
 #. type: deffn
-#: doc/guix.texi:7918
+#: doc/guix.texi:9546
 msgid "This is the declarative counterpart of @code{gexp->script}."
 msgstr "Esta es la contraparte declarativa de @code{gexp->script}."
 
 #. type: deffn
-#: doc/guix.texi:7920
+#: doc/guix.texi:9548
 #, no-wrap
 msgid "{Monadic Procedure} gexp->file @var{name} @var{exp} @"
 msgstr "{Procedimiento monádico} gexp->file @var{nombre} @var{exp} @"
@@ -15490,58 +18369,60 @@ msgstr "{Procedimiento monádico} gexp->file @var{nombre} @var{exp} @"
 # FUZZY
 # MAAV: Splice no consigo encajarlo bien...
 #. type: deffn
-#: doc/guix.texi:7927
+#: doc/guix.texi:9555
 msgid "[#:set-load-path? #t] [#:module-path %load-path] @ [#:splice? #f] @ [#:guile (default-guile)] Return a derivation that builds a file @var{name} containing @var{exp}.  When @var{splice?} is true, @var{exp} is considered to be a list of expressions that will be spliced in the resulting file."
 msgstr ""
 "[#:set-load-path? #t] [#:module-path %load-path] @\n"
 "  [#:splice? #f] @\n"
 "  [#:guile (default-guile)]\n"
-"Devuelve una derivación que construye un fichero @var{nombre} que contiene @var{exp}. Cuando @var{splice?} es verdadero, se considera que @var{exp} es una lista de expresiones que deben ser expandidas en el fichero resultante."
+"Devuelve una derivación que construye un archivo @var{nombre} que contiene @var{exp}. Cuando @var{splice?} es verdadero, se considera que @var{exp} es una lista de expresiones que deben ser expandidas en el archivo resultante."
 
 #. type: deffn
-#: doc/guix.texi:7932
+#: doc/guix.texi:9560
 msgid "When @var{set-load-path?} is true, emit code in the resulting file to set @code{%load-path} and @code{%load-compiled-path} to honor @var{exp}'s imported modules.  Look up @var{exp}'s modules in @var{module-path}."
-msgstr "Cuando @var{set-load-path} es verdadero, emite código en el fichero resultante para establecer @code{%load-path} y @code{%load-compiled-path} de manera que respeten los módulos importados por @var{exp}. Busca los módulos de @var{exp} en @var{module-path}."
+msgstr "Cuando @var{set-load-path} es verdadero, emite código en el archivo resultante para establecer @code{%load-path} y @code{%load-compiled-path} de manera que respeten los módulos importados por @var{exp}. Busca los módulos de @var{exp} en @var{module-path}."
 
 #. type: deffn
-#: doc/guix.texi:7935
+#: doc/guix.texi:9563
 msgid "The resulting file holds references to all the dependencies of @var{exp} or a subset thereof."
-msgstr "El fichero resultante hace referencia a todas las dependencias de @var{exp} o a un subconjunto de ellas."
+msgstr "El archivo resultante hace referencia a todas las dependencias de @var{exp} o a un subconjunto de ellas."
 
 #. type: deffn
-#: doc/guix.texi:7937
+#: doc/guix.texi:9565
 #, no-wrap
-msgid "{Scheme Procedure} scheme-file @var{name} @var{exp} [#:splice? #f]"
-msgstr "{Procedimiento Scheme} scheme-file @var{nombre} @var{exp} [#:splice? #f]"
+msgid "{Scheme Procedure} scheme-file @var{name} @var{exp} @"
+msgstr "{Procedimiento Scheme} scheme-file @var{nombre} @var{exp} @"
 
 #. type: deffn
-#: doc/guix.texi:7940
-msgid "Return an object representing the Scheme file @var{name} that contains @var{exp}."
-msgstr "Devuelve un objeto que representa el fichero Scheme @var{nombre} que contiene @var{exp}."
+#: doc/guix.texi:9569
+msgid "[#:splice? #f] [#:set-load-path? #t] Return an object representing the Scheme file @var{name} that contains @var{exp}."
+msgstr ""
+"[#:splice? #f] [#:set-load-path? #t]\n"
+"Devuelve un objeto que representa el archivo Scheme @var{nombre} que contiene @var{exp}."
 
 #. type: deffn
-#: doc/guix.texi:7942
+#: doc/guix.texi:9571
 msgid "This is the declarative counterpart of @code{gexp->file}."
 msgstr "Esta es la contraparte declarativa de @code{gexp->file}."
 
 #. type: deffn
-#: doc/guix.texi:7944
+#: doc/guix.texi:9573
 #, no-wrap
 msgid "{Monadic Procedure} text-file* @var{name} @var{text} @dots{}"
 msgstr "{Procedimiento monádico} text-file* @var{nombre} @var{texto} @dots{}"
 
 #. type: deffn
-#: doc/guix.texi:7950
+#: doc/guix.texi:9579
 msgid "Return as a monadic value a derivation that builds a text file containing all of @var{text}.  @var{text} may list, in addition to strings, objects of any type that can be used in a gexp: packages, derivations, local file objects, etc.  The resulting store file holds references to all these."
-msgstr "Devuelve como un valor monádico una derivación que construye un fichero de texto que contiene todo @var{texto}. @var{texto} puede ser una lista de, además de cadenas, objetos de cualquier tipo que pueda ser usado en expresiones-G: paquetes, derivaciones, ficheros locales, objetos, etc. El fichero del almacén resultante hace referencia a todos ellos."
+msgstr "Devuelve como un valor monádico una derivación que construye un archivo de texto que contiene todo @var{texto}. @var{texto} puede ser una lista de, además de cadenas, objetos de cualquier tipo que pueda ser usado en expresiones-G: paquetes, derivaciones, archivos locales, objetos, etc. El archivo del almacén resultante hace referencia a todos ellos."
 
 #. type: deffn
-#: doc/guix.texi:7955
+#: doc/guix.texi:9584
 msgid "This variant should be preferred over @code{text-file} anytime the file to create will reference items from the store.  This is typically the case when building a configuration file that embeds store file names, like this:"
-msgstr "Esta variante debe preferirse sobre @code{text-file} cuando el fichero a crear haga referencia a elementos del almacén. Esto es el caso típico cuando se construye un fichero de configuración que embebe nombres de ficheros del almacén, como este:"
+msgstr "Esta variante debe preferirse sobre @code{text-file} cuando el archivo a crear haga referencia a elementos del almacén. Esto es el caso típico cuando se construye un archivo de configuración que embebe nombres de archivos del almacén, como este:"
 
 #. type: lisp
-#: doc/guix.texi:7963
+#: doc/guix.texi:9592
 #, no-wrap
 msgid ""
 "(define (profile.sh)\n"
@@ -15559,23 +18440,23 @@ msgstr ""
 "              grep \"/bin:\" sed \"/bin\\n\"))\n"
 
 #. type: deffn
-#: doc/guix.texi:7968
+#: doc/guix.texi:9597
 msgid "In this example, the resulting @file{/gnu/store/@dots{}-profile.sh} file will reference @var{coreutils}, @var{grep}, and @var{sed}, thereby preventing them from being garbage-collected during its lifetime."
-msgstr "En este ejemplo, el fichero @file{/gnu/store/@dots{}-perfil.sh} resultante hará referencia a @var{coreutils}, @var{grep} y @var{sed}, por tanto evitando que se recolecten como basura durante su tiempo de vida."
+msgstr "En este ejemplo, el archivo @file{/gnu/store/@dots{}-perfil.sh} resultante hará referencia a @var{coreutils}, @var{grep} y @var{sed}, por tanto evitando que se recolecten como basura durante su tiempo de vida."
 
 #. type: deffn
-#: doc/guix.texi:7970
+#: doc/guix.texi:9599
 #, no-wrap
 msgid "{Scheme Procedure} mixed-text-file @var{name} @var{text} @dots{}"
 msgstr "{Procedimiento Scheme} mixed-text-file @var{nombre} @var{texto} @dots{}"
 
 #. type: deffn
-#: doc/guix.texi:7974
+#: doc/guix.texi:9603
 msgid "Return an object representing store file @var{name} containing @var{text}.  @var{text} is a sequence of strings and file-like objects, as in:"
-msgstr "Devuelve un objeto que representa el fichero del almacén @var{nombre} que contiene @var{texto}. @var{texto} es una secuencia de cadenas y objetos tipo-fichero, como en:"
+msgstr "Devuelve un objeto que representa el archivo del almacén @var{nombre} que contiene @var{texto}. @var{texto} es una secuencia de cadenas y objetos tipo-archivo, como en:"
 
 #. type: lisp
-#: doc/guix.texi:7978
+#: doc/guix.texi:9607
 #, no-wrap
 msgid ""
 "(mixed-text-file \"profile\"\n"
@@ -15585,23 +18466,23 @@ msgstr ""
 "                 \"export PATH=\" coreutils \"/bin:\" grep \"/bin\")\n"
 
 #. type: deffn
-#: doc/guix.texi:7981
+#: doc/guix.texi:9610
 msgid "This is the declarative counterpart of @code{text-file*}."
 msgstr "Esta es la contraparte declarativa de @code{text-file*}."
 
 #. type: deffn
-#: doc/guix.texi:7983
+#: doc/guix.texi:9612
 #, no-wrap
 msgid "{Scheme Procedure} file-union @var{name} @var{files}"
-msgstr "{Procedimiento Scheme} file-union @var{nombre} @var{ficheros}"
+msgstr "{Procedimiento Scheme} file-union @var{nombre} @var{archivos}"
 
 #. type: deffn
-#: doc/guix.texi:7988
+#: doc/guix.texi:9617
 msgid "Return a @code{<computed-file>} that builds a directory containing all of @var{files}.  Each item in @var{files} must be a two-element list where the first element is the file name to use in the new directory, and the second element is a gexp denoting the target file.  Here's an example:"
-msgstr "Devuelve un @code{<computed-file>} que construye un directorio que contiene todos los @var{ficheros}. Cada elemento en @var{ficheros} debe ser una lista de dos elementos donde el primer elemento es el nombre de fichero usado en el nuevo directorio y el segundo elemento es una expresión-G que denota el fichero de destino. Aquí está un ejemplo:"
+msgstr "Devuelve un @code{<computed-file>} que construye un directorio que contiene todos los @var{archivos}. Cada elemento en @var{archivos} debe ser una lista de dos elementos donde el primer elemento es el nombre de archivo usado en el nuevo directorio y el segundo elemento es una expresión-G que denota el archivo de destino. Aquí está un ejemplo:"
 
 #. type: lisp
-#: doc/guix.texi:7995
+#: doc/guix.texi:9624
 #, no-wrap
 msgid ""
 "(file-union \"etc\"\n"
@@ -15617,50 +18498,50 @@ msgstr ""
 "                                     \"alias ls='ls --color=auto'\"))))\n"
 
 #. type: deffn
-#: doc/guix.texi:7998
+#: doc/guix.texi:9627
 msgid "This yields an @code{etc} directory containing these two files."
-msgstr "Esto emite un directorio @code{etc} que contiene estos dos ficheros."
+msgstr "Esto emite un directorio @code{etc} que contiene estos dos archivos."
 
 #. type: deffn
-#: doc/guix.texi:8000
+#: doc/guix.texi:9629
 #, no-wrap
 msgid "{Scheme Procedure} directory-union @var{name} @var{things}"
 msgstr "{Procedimiento Scheme} directory-union @var{nombre} @var{cosas}"
 
 #. type: deffn
-#: doc/guix.texi:8003
+#: doc/guix.texi:9632
 msgid "Return a directory that is the union of @var{things}, where @var{things} is a list of file-like objects denoting directories.  For example:"
-msgstr "Devuelve un directorio que es la unión de @var{cosas}, donde @var{cosas} es una lista de objetos tipo-fichero que denotan directorios. Por ejemplo:"
+msgstr "Devuelve un directorio que es la unión de @var{cosas}, donde @var{cosas} es una lista de objetos tipo-archivo que denotan directorios. Por ejemplo:"
 
 #. type: lisp
-#: doc/guix.texi:8006
+#: doc/guix.texi:9635
 #, no-wrap
 msgid "(directory-union \"guile+emacs\" (list guile emacs))\n"
 msgstr "(directory-union \"guile+emacs\" (list guile emacs))\n"
 
 #. type: deffn
-#: doc/guix.texi:8009
+#: doc/guix.texi:9638
 msgid "yields a directory that is the union of the @code{guile} and @code{emacs} packages."
 msgstr "emite un directorio que es la unión de los paquetes @code{guile} y @code{emacs}."
 
 #. type: deffn
-#: doc/guix.texi:8011
+#: doc/guix.texi:9640
 #, no-wrap
 msgid "{Scheme Procedure} file-append @var{obj} @var{suffix} @dots{}"
 msgstr "{Procedimientos Scheme} file-append @var{obj} @var{sufijo} @dots{}"
 
 #. type: deffn
-#: doc/guix.texi:8015
+#: doc/guix.texi:9644
 msgid "Return a file-like object that expands to the concatenation of @var{obj} and @var{suffix}, where @var{obj} is a lowerable object and each @var{suffix} is a string."
-msgstr "Devuelve un objeto tipo-fichero que se expande a la concatenación de @var{obj} y @var{sufijo}, donde @var{obj} es un objeto que se puede bajar de nivel y cada @var{sufijo} es una cadena."
+msgstr "Devuelve un objeto tipo-archivo que se expande a la concatenación de @var{obj} y @var{sufijo}, donde @var{obj} es un objeto que se puede bajar de nivel y cada @var{sufijo} es una cadena."
 
 #. type: deffn
-#: doc/guix.texi:8017
+#: doc/guix.texi:9646
 msgid "As an example, consider this gexp:"
 msgstr "Como un ejemplo, considere esta expresión-G:"
 
 #. type: lisp
-#: doc/guix.texi:8022
+#: doc/guix.texi:9651
 #, no-wrap
 msgid ""
 "(gexp->script \"run-uname\"\n"
@@ -15672,12 +18553,12 @@ msgstr ""
 "                                        \"/bin/uname\")))\n"
 
 #. type: deffn
-#: doc/guix.texi:8025
+#: doc/guix.texi:9654
 msgid "The same effect could be achieved with:"
 msgstr "El mismo efecto podría conseguirse con:"
 
 #. type: lisp
-#: doc/guix.texi:8030
+#: doc/guix.texi:9659
 #, no-wrap
 msgid ""
 "(gexp->script \"run-uname\"\n"
@@ -15689,30 +18570,83 @@ msgstr ""
 "                                        \"/bin/uname\")))\n"
 
 #. type: deffn
-#: doc/guix.texi:8036
+#: doc/guix.texi:9665
 msgid "There is one difference though: in the @code{file-append} case, the resulting script contains the absolute file name as a string, whereas in the second case, the resulting script contains a @code{(string-append @dots{})} expression to construct the file name @emph{at run time}."
-msgstr "Hay una diferencia no obstante: en el caso de @code{file-append}, el guión resultante contiene una ruta absoluta de fichero como una cadena, mientras que en el segundo caso, el guión resultante contiene una expresión @code{(string-append @dots{})} para construir el nombre de fichero @emph{en tiempo de ejecución}."
+msgstr "Hay una diferencia no obstante: en el caso de @code{file-append}, el guión resultante contiene una ruta absoluta de archivo como una cadena, mientras que en el segundo caso, el guión resultante contiene una expresión @code{(string-append @dots{})} para construir el nombre de archivo @emph{en tiempo de ejecución}."
 
 #. type: deffn
-#: doc/guix.texi:8038
+#: doc/guix.texi:9667
+#, no-wrap
+msgid "{Scheme Syntax} let-system @var{system} @var{body}@dots{}"
+msgstr "{Sintaxis Scheme} let-system @var{sistema} @var{cuerpo}@dots{}"
+
+#. type: deffnx
+#: doc/guix.texi:9668
+#, no-wrap
+msgid "{Scheme Syntax} let-system (@var{system} @var{target}) @var{body}@dots{}"
+msgstr "{Sintaxis Scheme} let-system (@var{sistema} @var{objetivo}) @var{cuerpo}@dots{}"
+
+# FUZZY
+#. type: deffn
+#: doc/guix.texi:9671
+msgid "Bind @var{system} to the currently targeted system---e.g., @code{\"x86_64-linux\"}---within @var{body}."
+msgstr "Asocia @var{sistema} al sistema objetivo actual---por ejemplo, @code{\"x86_64-linux\"}---dentro de @var{cuerpo}."
+
+# FUZZY
+#. type: deffn
+#: doc/guix.texi:9676
+msgid "In the second case, additionally bind @var{target} to the current cross-compilation target---a GNU triplet such as @code{\"arm-linux-gnueabihf\"}---or @code{#f} if we are not cross-compiling."
+msgstr "En el segundo caso, asocia también @var{objetivo} al objetivo actual de compilación cruzada---una tripleta de GNU como @code{\"arm-linux-gnueabihf\"}---o @code{#f} si no se trata de una compilación cruzada."
+
+#. type: deffn
+#: doc/guix.texi:9679
+msgid "@code{let-system} is useful in the occasional case where the object spliced into the gexp depends on the target system, as in this example:"
+msgstr "@code{let-system} es útil en el caso ocasional en el que el objeto introducido en la expresión-G depende del sistema objetivo, como en este ejemplo:"
+
+#. type: lisp
+#: doc/guix.texi:9690
+#, no-wrap
+msgid ""
+"#~(system*\n"
+"   #+(let-system system\n"
+"       (cond ((string-prefix? \"armhf-\" system)\n"
+"              (file-append qemu \"/bin/qemu-system-arm\"))\n"
+"             ((string-prefix? \"x86_64-\" system)\n"
+"              (file-append qemu \"/bin/qemu-system-x86_64\"))\n"
+"             (else\n"
+"              (error \"dunno!\"))))\n"
+"   \"-net\" \"user\" #$image)\n"
+msgstr ""
+"#~(system*\n"
+"   #+(let-system system\n"
+"       (cond ((string-prefix? \"armhf-\" system)\n"
+"              (file-append qemu \"/bin/qemu-system-arm\"))\n"
+"             ((string-prefix? \"x86_64-\" system)\n"
+"              (file-append qemu \"/bin/qemu-system-x86_64\"))\n"
+"             (else\n"
+"              (error \"¡ni idea!\"))))\n"
+"   \"-net\" \"user\" #$image)\n"
+
+#. type: deffn
+#: doc/guix.texi:9693
 #, no-wrap
 msgid "{Scheme Syntax} with-parameters ((@var{parameter} @var{value}) @dots{}) @var{exp}"
 msgstr "{Sintaxis Scheme} with-parameters ((@var{parámetro} @var{valor} @dots{}) @var{exp}"
 
 # FUZZY FUZZY
 #. type: deffn
-#: doc/guix.texi:8044
+#: doc/guix.texi:9699
 msgid "This macro is similar to the @code{parameterize} form for dynamically-bound @dfn{parameters} (@pxref{Parameters,,, guile, GNU Guile Reference Manual}).  The key difference is that it takes effect when the file-like object returned by @var{exp} is lowered to a derivation or store item."
-msgstr "Este macro es similar a la forma @code{parameterize} para @dfn{parámetros} asociados de forma dinámica (@pxref{Parameters,,, guile, GNU Guile Reference Manual}). La principal diferencia es que se hace efectivo cuando el objeto tipo-fichero devuelto por @var{exp} se baja de nivel a una derivación o un elemento del almacén."
+msgstr "Este macro es similar a la forma @code{parameterize} para @dfn{parámetros} asociados de forma dinámica (@pxref{Parameters,,, guile, GNU Guile Reference Manual}). La principal diferencia es que se hace efectivo cuando el objeto tipo-archivo devuelto por @var{exp} se baja de nivel a una derivación o un elemento del almacén."
 
 # FUZZY FUZZY FUZZY
 #. type: deffn
-#: doc/guix.texi:8047
+#: doc/guix.texi:9702
 msgid "A typical use of @code{with-parameters} is to force the system in effect for a given object:"
 msgstr "Un uso típico de @code{with-parameters} es para forzar el sistema efectivo de cierto objeto:"
 
 #. type: lisp
-#: doc/guix.texi:8051
+#: doc/guix.texi:9706
 #, no-wrap
 msgid ""
 "(with-parameters ((%current-system \"i686-linux\"))\n"
@@ -15722,53 +18656,102 @@ msgstr ""
 "  coreutils)\n"
 
 #. type: deffn
-#: doc/guix.texi:8055
+#: doc/guix.texi:9710
 msgid "The example above returns an object that corresponds to the i686 build of Coreutils, regardless of the current value of @code{%current-system}."
 msgstr "El ejemplo previo devuelve un objeto que corresponde a la construcción en i686 de Coreutils, independientemente del valor actual de @code{%current-system}."
 
 #. type: Plain text
-#: doc/guix.texi:8062
+#: doc/guix.texi:9717
 msgid "Of course, in addition to gexps embedded in ``host'' code, there are also modules containing build tools.  To make it clear that they are meant to be used in the build stratum, these modules are kept in the @code{(guix build @dots{})} name space."
 msgstr "Por supuesto, además de expresiones-G embebidas en código ``anfitrión'', hay también módulos que contienen herramientas de construcción. Para clarificar que están destinados para su uso en el estrato de construcción, estos módulos se mantienen en el espacio de nombres @code{(guix build @dots{})}."
 
 #. type: Plain text
-#: doc/guix.texi:8068
+#: doc/guix.texi:9723
 msgid "Internally, high-level objects are @dfn{lowered}, using their compiler, to either derivations or store items.  For instance, lowering a package yields a derivation, and lowering a @code{plain-file} yields a store item.  This is achieved using the @code{lower-object} monadic procedure."
 msgstr "Internamente, los objetos de alto nivel se @dfn{bajan de nivel}, usando su compilador, a derivaciones o elementos del almacén. Por ejemplo, bajar de nivel un paquete emite una derivación, y bajar de nivel un @var{plain-file} emite un elemento del almacén. Esto se consigue usando el procedimiento monádico @code{lower-object}."
 
 #. type: deffn
-#: doc/guix.texi:8069
+#: doc/guix.texi:9724
 #, no-wrap
 msgid "{Monadic Procedure} lower-object @var{obj} [@var{system}] @"
 msgstr "{Procedimiento monádico} lower-object @var{obj} [@var{sistema}] @"
 
 #. type: deffn
-#: doc/guix.texi:8075
-msgid "[#:target #f] Return as a value in @var{%store-monad} the derivation or store item corresponding to @var{obj} for @var{system}, cross-compiling for @var{target} if @var{target} is true.  @var{obj} must be an object that has an associated gexp compiler, such as a @code{<package>}."
+#: doc/guix.texi:9730
+msgid "[#:target #f] Return as a value in @code{%store-monad} the derivation or store item corresponding to @var{obj} for @var{system}, cross-compiling for @var{target} if @var{target} is true.  @var{obj} must be an object that has an associated gexp compiler, such as a @code{<package>}."
 msgstr ""
 "[#:target #f]\n"
-"Devuelve como un valor en @var{%store-monad} la derivación o elemento del almacén que corresponde a @var{obj} en @var{sistema}, compilando de manera cruzada para @var{target} si @var{target} es verdadero. @var{obj} debe ser un objeto que tiene asociado un compilador de expresiones-G, como @code{<package>}."
+"Devuelve como un valor en @code{%store-monad} la derivación o elemento del almacén que corresponde a @var{obj} en @var{sistema}, compilando de manera cruzada para @var{target} si @var{target} es verdadero. @var{obj} debe ser un objeto que tiene asociado un compilador de expresiones-G, como por ejemplo un objeto del tipo @code{<package>}."
 
 #. type: section
-#: doc/guix.texi:8078
+#: doc/guix.texi:9733
 #, no-wrap
 msgid "Invoking @command{guix repl}"
 msgstr "Invocación de @command{guix repl}"
 
+# FUZZY
 #. type: cindex
-#: doc/guix.texi:8080
+#: doc/guix.texi:9735
 #, no-wrap
-msgid "REPL, read-eval-print loop"
-msgstr "REPL, bucle de lectura-evaluación-impresión"
+msgid "REPL, read-eval-print loop, script"
+msgstr "REPL, sesión interactiva, guión"
 
 # FUZZY
 #. type: Plain text
-#: doc/guix.texi:8086
-msgid "The @command{guix repl} command spawns a Guile @dfn{read-eval-print loop} (REPL) for interactive programming (@pxref{Using Guile Interactively,,, guile, GNU Guile Reference Manual}).  Compared to just launching the @command{guile} command, @command{guix repl} guarantees that all the Guix modules and all its dependencies are available in the search path.  You can use it this way:"
-msgstr "La orden @command{guix repl} lanza un @dfn{bucle de lectura-evaluación-impresión} Guile (REPL) para programación interactiva (@pxref{Using Guile Interactively,,, guile, GNU Guile Reference Manual}). Comparado a simplemente lanzar la orden @command{guile}, @command{guix repl} garantiza que todos los módulos Guix y todas sus dependencias están disponibles en la ruta de búsqueda. Puede usarla de esta manera:"
+#: doc/guix.texi:9745
+msgid "The @command{guix repl} command makes it easier to program Guix in Guile by launching a Guile @dfn{read-eval-print loop} (REPL) for interactive programming (@pxref{Using Guile Interactively,,, guile, GNU Guile Reference Manual}), or by running Guile scripts (@pxref{Running Guile Scripts,,, guile, GNU Guile Reference Manual}).  Compared to just launching the @command{guile} command, @command{guix repl} guarantees that all the Guix modules and all its dependencies are available in the search path."
+msgstr "La orden @command{guix repl} lanza una @dfn{sesión interactiva} Guile (REPL) para la programación interactiva (@pxref{Using Guile Interactively,,, guile, GNU Guile Reference Manual}), o para la ejecución de guiones de Guile. Comparado a simplemente lanzar la orden @command{guile}, @command{guix repl} garantiza que todos los módulos Guix y todas sus dependencias están disponibles en la ruta de búsqueda."
 
 #. type: example
-#: doc/guix.texi:8092
+#: doc/guix.texi:9750
+#, no-wrap
+msgid "guix repl @var{options} [@var{file} @var{args}]\n"
+msgstr "guix repl @var{opciones} [@var{archivo} @var{parámetros}]\n"
+
+#. type: Plain text
+#: doc/guix.texi:9754
+msgid "When a @var{file} argument is provided, @var{file} is executed as a Guile scripts:"
+msgstr "Cuando se proporciona @var{archivo}, @var{archivo} se ejecuta como un guión de Guile:"
+
+#. type: example
+#: doc/guix.texi:9757
+#, no-wrap
+msgid "guix repl my-script.scm\n"
+msgstr "guix repl mi-guion.scm\n"
+
+#. type: Plain text
+#: doc/guix.texi:9761
+msgid "To pass arguments to the script, use @code{--} to prevent them from being interpreted as arguments to @command{guix repl} itself:"
+msgstr "Para proporcionar parámetros al guión, use @code{--} para evitar que se interpreten como parámetros específicos de @command{guix repl}:"
+
+#. type: example
+#: doc/guix.texi:9764
+#, no-wrap
+msgid "guix repl -- my-script.scm --input=foo.txt\n"
+msgstr "guix repl -- mi-guion.scm --input=foo.txt\n"
+
+#. type: Plain text
+#: doc/guix.texi:9769
+msgid "To make a script executable directly from the shell, using the guix executable that is on the user's search path, add the following two lines at the top of the script:"
+msgstr "Pare hacer que un guión sea ejecutable directamente desde el shell, mediante el uso del ejecutable de guix que se encuentre en la ruta de búsqueda de la usuaria, escriba las siguientes dos líneas al inicio del archivo:"
+
+#. type: example
+#: doc/guix.texi:9773
+#, no-wrap
+msgid ""
+"@code{#!/usr/bin/env -S guix repl --}\n"
+"@code{!#}\n"
+msgstr ""
+"@code{#!/usr/bin/env -S guix repl --}\n"
+"@code{!#}\n"
+
+#. type: Plain text
+#: doc/guix.texi:9776
+msgid "Without a file name argument, a Guile REPL is started:"
+msgstr "Si no se proporciona un nombre de archivo, se inicia una sesión interactiva (REPL) de Guile:"
+
+#. type: example
+#: doc/guix.texi:9782
 #, no-wrap
 msgid ""
 "$ guix repl\n"
@@ -15783,164 +18766,164 @@ msgstr ""
 
 # FUZZY
 #. type: Plain text
-#: doc/guix.texi:8099
+#: doc/guix.texi:9789
 msgid "In addition, @command{guix repl} implements a simple machine-readable REPL protocol for use by @code{(guix inferior)}, a facility to interact with @dfn{inferiors}, separate processes running a potentially different revision of Guix."
 msgstr "Además, @command{guix repl} implementa un protocolo del REPL simple legible por máquinas para su uso por @code{(guix inferior)}, una facilidad para interactuar con @dfn{inferiores}, procesos separados que ejecutan una revisión de Guix potencialmente distinta."
 
 #. type: Plain text
-#: doc/guix.texi:8101
+#: doc/guix.texi:9791
 msgid "The available options are as follows:"
 msgstr "Las opciones disponibles son las siguientes:"
 
 #. type: item
-#: doc/guix.texi:8103 doc/guix.texi:10172
+#: doc/guix.texi:9793 doc/guix.texi:12059
 #, no-wrap
 msgid "--type=@var{type}"
 msgstr "--type=@var{tipo}"
 
 #. type: itemx
-#: doc/guix.texi:8104 doc/guix.texi:10173 doc/guix.texi:26899
+#: doc/guix.texi:9794 doc/guix.texi:12060 doc/guix.texi:31036
 #, no-wrap
 msgid "-t @var{type}"
 msgstr "-t @var{tipo}"
 
 #. type: table
-#: doc/guix.texi:8106
+#: doc/guix.texi:9796
 msgid "Start a REPL of the given @var{TYPE}, which can be one of the following:"
 msgstr "Inicia un REPL del @var{TIPO} dado, que puede ser uno de los siguientes:"
 
 #. type: item
-#: doc/guix.texi:8108
+#: doc/guix.texi:9798
 #, no-wrap
 msgid "guile"
 msgstr "guile"
 
 #. type: table
-#: doc/guix.texi:8110
+#: doc/guix.texi:9800
 msgid "This is default, and it spawns a standard full-featured Guile REPL."
 msgstr "Es el predeterminado, y lanza una sesión interactiva Guile estándar con todas las características."
 
 #. type: item
-#: doc/guix.texi:8110
+#: doc/guix.texi:9800
 #, no-wrap
 msgid "machine"
 msgstr "machine"
 
 #. type: table
-#: doc/guix.texi:8113
+#: doc/guix.texi:9803
 msgid "Spawn a REPL that uses the machine-readable protocol.  This is the protocol that the @code{(guix inferior)} module speaks."
 msgstr "Lanza un REPL que usa el protocolo legible por máquinas. Este es el protocolo con el que el módulo @code{(guix inferior)} se comunica."
 
 #. type: table
-#: doc/guix.texi:8119
+#: doc/guix.texi:9809
 msgid "By default, @command{guix repl} reads from standard input and writes to standard output.  When this option is passed, it will instead listen for connections on @var{endpoint}.  Here are examples of valid options:"
 msgstr "Por defecto, @command{guix repl} lee de la entrada estándar y escribe en la salida estándar. Cuando se pasa esta opción, en vez de eso escuchará las conexiones en @var{destino}. Estos son ejemplos de opciones válidas:"
 
 #. type: item
-#: doc/guix.texi:8121
+#: doc/guix.texi:9811
 #, no-wrap
 msgid "--listen=tcp:37146"
 msgstr "--listen=tcp:37146"
 
 #. type: table
-#: doc/guix.texi:8123
+#: doc/guix.texi:9813
 msgid "Accept connections on localhost on port 37146."
 msgstr "Acepta conexiones locales por el puerto 37146."
 
 #. type: item
-#: doc/guix.texi:8124
+#: doc/guix.texi:9814
 #, no-wrap
 msgid "--listen=unix:/tmp/socket"
 msgstr "--listen=unix:/tmp/socket"
 
 #. type: table
-#: doc/guix.texi:8126
+#: doc/guix.texi:9816
 msgid "Accept connections on the Unix-domain socket @file{/tmp/socket}."
 msgstr "Acepta conexiones a través del socket de dominio Unix @file{/tmp/socket}."
 
 #. type: item
-#: doc/guix.texi:8128 doc/guix.texi:8232 doc/guix.texi:9705 doc/guix.texi:9865
-#: doc/guix.texi:9997 doc/guix.texi:10206
+#: doc/guix.texi:9818 doc/guix.texi:9922 doc/guix.texi:11528
+#: doc/guix.texi:11708 doc/guix.texi:11853 doc/guix.texi:12107
 #, no-wrap
 msgid "--load-path=@var{directory}"
 msgstr "--load-path=@var{directorio}"
 
 #. type: itemx
-#: doc/guix.texi:8129 doc/guix.texi:8233 doc/guix.texi:9866 doc/guix.texi:9998
-#: doc/guix.texi:10207
+#: doc/guix.texi:9819 doc/guix.texi:9923 doc/guix.texi:11709
+#: doc/guix.texi:11854 doc/guix.texi:12108
 #, no-wrap
 msgid "-L @var{directory}"
 msgstr "-L @var{directorio}"
 
 #. type: table
-#: doc/guix.texi:8132 doc/guix.texi:8236 doc/guix.texi:9708 doc/guix.texi:9869
-#: doc/guix.texi:10001 doc/guix.texi:10210
+#: doc/guix.texi:9822 doc/guix.texi:9926 doc/guix.texi:11531
+#: doc/guix.texi:11712 doc/guix.texi:11857 doc/guix.texi:12111
 msgid "Add @var{directory} to the front of the package module search path (@pxref{Package Modules})."
 msgstr "Añade @var{directorio} al frente de la ruta de búsqueda de módulos de paquetes (@pxref{Package Modules})."
 
 #. type: table
-#: doc/guix.texi:8135
-msgid "This allows users to define their own packages and make them visible to the command-line tool."
-msgstr "Esto permite a las usuarias definir sus propios paquetes y hacerlos visibles a las herramientas de línea de órdenes."
+#: doc/guix.texi:9825
+msgid "This allows users to define their own packages and make them visible to the script or REPL."
+msgstr "Esto permite a las usuarias definir sus propios paquetes y hacerlos visibles al guión o a la sesión interactiva."
 
 #. type: itemx
-#: doc/guix.texi:8136 doc/guix.texi:8536
+#: doc/guix.texi:9826 doc/guix.texi:10335
 #, no-wrap
 msgid "-q"
 msgstr "-q"
 
 #. type: table
-#: doc/guix.texi:8139
+#: doc/guix.texi:9829
 msgid "Inhibit loading of the @file{~/.guile} file.  By default, that configuration file is loaded when spawning a @code{guile} REPL."
-msgstr "Inhibe la carga del fichero @file{~/.guile}. De manera predeterminada, dicho fichero de configuración se carga al lanzar una sesión interactiva de @code{guile}."
+msgstr "Inhibe la carga del archivo @file{~/.guile}. De manera predeterminada, dicho archivo de configuración se carga al lanzar una sesión interactiva de @code{guile}."
 
 #. type: Plain text
-#: doc/guix.texi:8149
+#: doc/guix.texi:9839
 msgid "This section describes Guix command-line utilities.  Some of them are primarily targeted at developers and users who write new package definitions, while others are more generally useful.  They complement the Scheme programming interface of Guix in a convenient way."
 msgstr "Esta sección describe las utilidades de línea de órdenes de Guix. Algunas de ellas están orientadas principalmente para desarrolladoras y usuarias que escriban definiciones de paquetes nuevas, mientras que otras son útiles de manera más general. Complementan la interfaz programática Scheme de Guix de modo conveniente."
 
 #. type: cindex
-#: doc/guix.texi:8171
+#: doc/guix.texi:9861
 #, no-wrap
 msgid "package building"
 msgstr "construcción de paquetes"
 
 #. type: command{#1}
-#: doc/guix.texi:8172
+#: doc/guix.texi:9862
 #, no-wrap
 msgid "guix build"
 msgstr "guix build"
 
 #. type: Plain text
-#: doc/guix.texi:8178
+#: doc/guix.texi:9868
 msgid "The @command{guix build} command builds packages or derivations and their dependencies, and prints the resulting store paths.  Note that it does not modify the user's profile---this is the job of the @command{guix package} command (@pxref{Invoking guix package}).  Thus, it is mainly useful for distribution developers."
 msgstr "La orden @command{guix build} construye paquetes o derivaciones y sus dependencias, e imprime las rutas del almacén resultantes. Fíjese que no modifica el perfil de la usuaria---este es el trabajo de la orden @command{guix package} (@pxref{Invoking guix package}). Por tanto, es útil principalmente para las desarrolladoras de la distribución."
 
 #. type: example
-#: doc/guix.texi:8183
+#: doc/guix.texi:9873
 #, no-wrap
 msgid "guix build @var{options} @var{package-or-derivation}@dots{}\n"
 msgstr "guix build @var{opciones} @var{paquete-o-derivación}@dots{}\n"
 
 # FUZZY
 #. type: Plain text
-#: doc/guix.texi:8188
+#: doc/guix.texi:9878
 msgid "As an example, the following command builds the latest versions of Emacs and of Guile, displays their build logs, and finally displays the resulting directories:"
 msgstr "Como ejemplo, la siguiente orden construye las últimas versiones de Emacs y Guile, muestra sus log de construcción, y finalmente muestra los directorios resultantes:"
 
 #. type: example
-#: doc/guix.texi:8191
+#: doc/guix.texi:9881
 #, no-wrap
 msgid "guix build emacs guile\n"
 msgstr "guix build emacs guile\n"
 
 #. type: Plain text
-#: doc/guix.texi:8194
+#: doc/guix.texi:9884
 msgid "Similarly, the following command builds all the available packages:"
 msgstr "De forma similar, la siguiente orden construye todos los paquetes disponibles:"
 
 #. type: example
-#: doc/guix.texi:8198
+#: doc/guix.texi:9888
 #, no-wrap
 msgid ""
 "guix build --quiet --keep-going \\\n"
@@ -15950,162 +18933,157 @@ msgstr ""
 "  `guix package -A | cut -f1,2 --output-delimiter=@@`\n"
 
 #. type: Plain text
-#: doc/guix.texi:8206
+#: doc/guix.texi:9896
 msgid "@var{package-or-derivation} may be either the name of a package found in the software distribution such as @code{coreutils} or @code{coreutils@@8.20}, or a derivation such as @file{/gnu/store/@dots{}-coreutils-8.19.drv}.  In the former case, a package with the corresponding name (and optionally version) is searched for among the GNU distribution modules (@pxref{Package Modules})."
 msgstr "@var{paquete-o-derivación} puede ser tanto el nombre de un paquete que se encuentra en la distribución de software como @code{coreutils} o @code{coreutils@@8.20}, o una derivación como @file{/gnu/store/@dots{}-coreutils-8.19.drv}. En el primer caso, el paquete de nombre (y opcionalmente versión) correspondiente se busca entre los módulos de la distribución GNU (@pxref{Package Modules})."
 
 #. type: Plain text
-#: doc/guix.texi:8211
-msgid "Alternatively, the @code{--expression} option may be used to specify a Scheme expression that evaluates to a package; this is useful when disambiguating among several same-named packages or package variants is needed."
-msgstr "De manera alternativa, la opción @code{--expression} puede ser usada para especificar una expresión Scheme que evalúa a un paquete; esto es útil para diferenciar entre varios paquetes con el mismo nombre o si se necesitan variaciones del paquete."
+#: doc/guix.texi:9901
+msgid "Alternatively, the @option{--expression} option may be used to specify a Scheme expression that evaluates to a package; this is useful when disambiguating among several same-named packages or package variants is needed."
+msgstr "De manera alternativa, la opción @option{--expression} puede ser usada para especificar una expresión Scheme que evalúa a un paquete; esto es útil para diferenciar entre varios paquetes con el mismo nombre o si se necesitan variaciones del paquete."
 
 #. type: Plain text
-#: doc/guix.texi:8214
+#: doc/guix.texi:9904
 msgid "There may be zero or more @var{options}.  The available options are described in the subsections below."
 msgstr "Puede haber cero o más @var{opciones}. Las opciones disponibles se describen en la subsección siguiente."
 
 #. type: Plain text
-#: doc/guix.texi:8229
+#: doc/guix.texi:9919
 msgid "A number of options that control the build process are common to @command{guix build} and other commands that can spawn builds, such as @command{guix package} or @command{guix archive}.  These are the following:"
 msgstr "Un número de opciones que controlan el proceso de construcción son comunes a @command{guix build} y otras órdenes que pueden lanzar construcciones, como @command{guix package} o @command{guix archive}. Son las siguientes:"
 
 #. type: table
-#: doc/guix.texi:8239 doc/guix.texi:9711 doc/guix.texi:9872
-#: doc/guix.texi:10004 doc/guix.texi:10213
+#: doc/guix.texi:9929 doc/guix.texi:11534 doc/guix.texi:11715
+#: doc/guix.texi:11860 doc/guix.texi:12114
 msgid "This allows users to define their own packages and make them visible to the command-line tools."
 msgstr "Esto permite a las usuarias definir sus propios paquetes y hacerlos visibles a las herramientas de línea de órdenes."
 
 #. type: item
-#: doc/guix.texi:8240
+#: doc/guix.texi:9930
 #, no-wrap
 msgid "--keep-failed"
 msgstr "--keep-failed"
 
 #. type: itemx
-#: doc/guix.texi:8241
+#: doc/guix.texi:9931
 #, no-wrap
 msgid "-K"
 msgstr "-K"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:8247
+#: doc/guix.texi:9937
 msgid "Keep the build tree of failed builds.  Thus, if a build fails, its build tree is kept under @file{/tmp}, in a directory whose name is shown at the end of the build log.  This is useful when debugging build issues.  @xref{Debugging Build Failures}, for tips and tricks on how to debug build issues."
 msgstr "Mantiene los árboles de construcción de las construcciones fallidas. Por tanto, si una construcción falla, su árbol de construcción se mantiene bajo @file{/tmp}, en un directorio cuyo nombre se muestra al final del log de construcción. Esto es útil cuando se depuran problemas en la construcción. @xref{Debugging Build Failures}, para trucos y consejos sobre cómo depurar problemas en la construcción."
 
 #. type: table
-#: doc/guix.texi:8251
-msgid "This option implies @option{--no-offload}, and it has no effect when connecting to a remote daemon with a @code{guix://} URI (@pxref{The Store, the @code{GUIX_DAEMON_SOCKET} variable})."
-msgstr "Esta opción implica @option{--no-offload}, y no tiene efecto cuando se conecta a un daemon remoto con una URI @code{guix://} (@pxref{The Store, la variable @code{GUIX_DAEMON_SOCKET}})."
+#: doc/guix.texi:9941
+msgid "This option implies @option{--no-offload}, and it has no effect when connecting to a remote daemon with a @code{guix://} URI (@pxref{The Store, the @env{GUIX_DAEMON_SOCKET} variable})."
+msgstr "Esta opción implica @option{--no-offload}, y no tiene efecto cuando se conecta a un daemon remoto con una URI @code{guix://} (@pxref{The Store, la variable @env{GUIX_DAEMON_SOCKET}})."
 
 #. type: item
-#: doc/guix.texi:8252
+#: doc/guix.texi:9942
 #, no-wrap
 msgid "--keep-going"
 msgstr "--keep-going"
 
 #. type: itemx
-#: doc/guix.texi:8253
+#: doc/guix.texi:9943
 #, no-wrap
 msgid "-k"
 msgstr "-k"
 
 #. type: table
-#: doc/guix.texi:8256
+#: doc/guix.texi:9946
 msgid "Keep going when some of the derivations fail to build; return only once all the builds have either completed or failed."
 msgstr "Seguir adelante cuando alguna de las derivaciones de un fallo durante la construcción; devuelve una única vez todas las construcciones que se han completado o bien han fallado."
 
 #. type: table
-#: doc/guix.texi:8259
+#: doc/guix.texi:9949
 msgid "The default behavior is to stop as soon as one of the specified derivations has failed."
 msgstr "El comportamiento predeterminado es parar tan pronto una de las derivaciones especificadas falle."
 
 #. type: table
-#: doc/guix.texi:8263
+#: doc/guix.texi:9953
 msgid "Do not build the derivations."
 msgstr "No construye las derivaciones."
 
 #. type: anchor{#1}
-#: doc/guix.texi:8265
+#: doc/guix.texi:9955
 msgid "fallback-option"
 msgstr "fallback-option"
 
 #. type: item
-#: doc/guix.texi:8265
+#: doc/guix.texi:9955
 #, no-wrap
 msgid "--fallback"
 msgstr "--fallback"
 
 #. type: table
-#: doc/guix.texi:8268
+#: doc/guix.texi:9958
 msgid "When substituting a pre-built binary fails, fall back to building packages locally (@pxref{Substitution Failure})."
 msgstr "Cuando la sustitución de un binario preconstruido falle, intenta la construcción local de paquetes (@pxref{Substitution Failure})."
 
 #. type: anchor{#1}
-#: doc/guix.texi:8274
+#: doc/guix.texi:9964
 msgid "client-substitute-urls"
 msgstr "client-substitute-urls"
 
 #. type: table
-#: doc/guix.texi:8274
+#: doc/guix.texi:9964
 msgid "Consider @var{urls} the whitespace-separated list of substitute source URLs, overriding the default list of URLs of @command{guix-daemon} (@pxref{daemon-substitute-urls,, @command{guix-daemon} URLs})."
 msgstr "Considera @var{urls} la lista separada por espacios de URLs de fuentes de sustituciones, anulando la lista predeterminada de URLs de @command{guix-daemon} (@pxref{daemon-substitute-urls,, @command{guix-daemon URLs}})."
 
 #. type: table
-#: doc/guix.texi:8278
+#: doc/guix.texi:9968
 msgid "This means that substitutes may be downloaded from @var{urls}, provided they are signed by a key authorized by the system administrator (@pxref{Substitutes})."
 msgstr "Significa que las sustituciones puede ser descargadas de @var{urls}, mientras que estén firmadas por una clave autorizada por la administradora del sistema (@pxref{Substitutes})."
 
 #. type: table
-#: doc/guix.texi:8281
+#: doc/guix.texi:9971
 msgid "When @var{urls} is the empty string, substitutes are effectively disabled."
 msgstr "Cuando @var{urls} es la cadena vacía, las sustituciones están efectivamente desactivadas."
 
 #. type: item
-#: doc/guix.texi:8287
+#: doc/guix.texi:9977
 #, no-wrap
 msgid "--no-grafts"
 msgstr "--no-grafts"
 
 #. type: table
-#: doc/guix.texi:8291
+#: doc/guix.texi:9981
 msgid "Do not ``graft'' packages.  In practice, this means that package updates available as grafts are not applied.  @xref{Security Updates}, for more information on grafts."
 msgstr "No ``injerta'' paquetes. En la práctica esto significa que las actualizaciones de paquetes disponibles como injertos no se aplican. @xref{Security Updates}, para más información sobre los injertos."
 
 #. type: item
-#: doc/guix.texi:8292
+#: doc/guix.texi:9982
 #, no-wrap
 msgid "--rounds=@var{n}"
 msgstr "--rounds=@var{n}"
 
 #. type: table
-#: doc/guix.texi:8295
+#: doc/guix.texi:9985
 msgid "Build each derivation @var{n} times in a row, and raise an error if consecutive build results are not bit-for-bit identical."
 msgstr "Construye cada derivación @var{n} veces seguidas, y lanza un error si los resultados de las construcciones consecutivas no son idénticos bit-a-bit."
 
 #. type: table
-#: doc/guix.texi:8300
+#: doc/guix.texi:9990
 msgid "This is a useful way to detect non-deterministic builds processes.  Non-deterministic build processes are a problem because they make it practically impossible for users to @emph{verify} whether third-party binaries are genuine.  @xref{Invoking guix challenge}, for more."
 msgstr "Esto es útil para la detección de procesos de construcción no-deterministas. Los procesos de construcción no-deterministas son un problema puesto que prácticamente imposibilitan a las usuarias la @emph{verificación} de la autenticidad de binarios proporcionados por terceras partes. @xref{Invoking guix challenge}, para más sobre esto."
 
 #. type: table
-#: doc/guix.texi:8306
-msgid "Note that, currently, the differing build results are not kept around, so you will have to manually investigate in case of an error---e.g., by stashing one of the build results with @code{guix archive --export} (@pxref{Invoking guix archive}), then rebuilding, and finally comparing the two results."
-msgstr "Fíjese que, actualmente, los resultados de las construcciones discordantes no se mantienen, por lo que debe que investigar manualmente en caso de un error---por ejemplo, mediante la extracción de uno de los resultados con @code{guix archive --export} (@pxref{Invoking guix archive}), seguida de una reconstrucción, y finalmente la comparación de los dos resultados."
+#: doc/guix.texi:10006
+msgid "By default, the daemon's setting is honored (@pxref{Invoking guix-daemon, @option{--max-silent-time}})."
+msgstr "Por defecto, se respeta la configuración del daemon (@pxref{Invoking guix-daemon, @option{--max-silent-time}})."
 
 #. type: table
-#: doc/guix.texi:8318
-msgid "By default, the daemon's setting is honored (@pxref{Invoking guix-daemon, @code{--max-silent-time}})."
-msgstr "Por defecto, se respeta la configuración del daemon (@pxref{Invoking guix-daemon, @code{--max-silent-time}})."
-
-#. type: table
-#: doc/guix.texi:8325
-msgid "By default, the daemon's setting is honored (@pxref{Invoking guix-daemon, @code{--timeout}})."
-msgstr "Por defecto, se respeta la configuración del daemon (@pxref{Invoking guix-daemon, @code{--timeout}})."
+#: doc/guix.texi:10013
+msgid "By default, the daemon's setting is honored (@pxref{Invoking guix-daemon, @option{--timeout}})."
+msgstr "Por defecto, se respeta la configuración del daemon (@pxref{Invoking guix-daemon, @option{--timeout}})."
 
 # FUZZY
 #. type: cindex
-#: doc/guix.texi:8328
+#: doc/guix.texi:10016
 #, no-wrap
 msgid "verbosity, of the command-line tools"
 msgstr "nivel de detalle de los mensajes, de las herramientas de línea de órdenes"
@@ -16113,155 +19091,166 @@ msgstr "nivel de detalle de los mensajes, de las herramientas de línea de órde
 # FUZZY
 # TODO: (MAAV) Log
 #. type: cindex
-#: doc/guix.texi:8329
+#: doc/guix.texi:10017
 #, no-wrap
 msgid "build logs, verbosity"
 msgstr "registro de construcción, nivel de descripción"
 
 #. type: item
-#: doc/guix.texi:8330
+#: doc/guix.texi:10018
 #, no-wrap
 msgid "-v @var{level}"
 msgstr "-v @var{nivel}"
 
 #. type: itemx
-#: doc/guix.texi:8331
+#: doc/guix.texi:10019
 #, no-wrap
 msgid "--verbosity=@var{level}"
 msgstr "--verbosity=@var{nivel}"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:8335
+#: doc/guix.texi:10023
 msgid "Use the given verbosity @var{level}, an integer.  Choosing 0 means that no output is produced, 1 is for quiet output, and 2 shows all the build log output on standard error."
 msgstr "Usa el @var{nivel} de detalle especificado, un entero. Seleccionar 0 significa que no se produce ninguna salida, 1 es para salida silenciosa y 2 muestra toda la salida del registro de construcción en la salida estándar de error."
 
 #. type: table
-#: doc/guix.texi:8340
+#: doc/guix.texi:10028
 msgid "Allow the use of up to @var{n} CPU cores for the build.  The special value @code{0} means to use as many CPU cores as available."
 msgstr "Permite usar @var{n} núcleos de la CPU para la construcción. El valor especial @code{0} significa usar tantos como núcleos haya en la CPU."
 
 #. type: table
-#: doc/guix.texi:8346
-msgid "Allow at most @var{n} build jobs in parallel.  @xref{Invoking guix-daemon, @code{--max-jobs}}, for details about this option and the equivalent @command{guix-daemon} option."
-msgstr "Permite como máximo @var{n} trabajos de construcción en paralelo. @xref{Invoking guix-daemon, @code{--max-jobs}}, para detalles acerca de esta opción y la opción equivalente de @command{guix-daemon}."
+#: doc/guix.texi:10034
+msgid "Allow at most @var{n} build jobs in parallel.  @xref{Invoking guix-daemon, @option{--max-jobs}}, for details about this option and the equivalent @command{guix-daemon} option."
+msgstr "Permite como máximo @var{n} trabajos de construcción en paralelo. @xref{Invoking guix-daemon, @option{--max-jobs}}, para detalles acerca de esta opción y la opción equivalente de @command{guix-daemon}."
 
 #. type: item
-#: doc/guix.texi:8347
+#: doc/guix.texi:10035
 #, no-wrap
 msgid "--debug=@var{level}"
 msgstr "--debug=@var{nivel}"
 
 #. type: table
-#: doc/guix.texi:8351
+#: doc/guix.texi:10039
 msgid "Produce debugging output coming from the build daemon.  @var{level} must be an integer between 0 and 5; higher means more verbose output.  Setting a level of 4 or more may be helpful when debugging setup issues with the build daemon."
 msgstr "Usa el nivel de detalle proporcionado en los mensajes procedentes del daemon de construcción. @var{nivel} debe ser un entero entre 0 y 5; valores mayores indican una salida más detallada. Establecer un nivel de 4 o superior puede ser útil en la depuración de problemas de configuración con el daemon de construcción."
 
 #. type: Plain text
-#: doc/guix.texi:8358
+#: doc/guix.texi:10046
 msgid "Behind the scenes, @command{guix build} is essentially an interface to the @code{package-derivation} procedure of the @code{(guix packages)} module, and to the @code{build-derivations} procedure of the @code{(guix derivations)} module."
 msgstr "Tras las cortinas, @command{guix build} es esencialmente una interfaz al procedimiento @code{package-derivation} del módulo @code{(guix packages)}, y al procedimiento @code{build-derivations} del módulo @code{(guix derivations)}."
 
 #. type: Plain text
-#: doc/guix.texi:8362
-msgid "In addition to options explicitly passed on the command line, @command{guix build} and other @command{guix} commands that support building honor the @code{GUIX_BUILD_OPTIONS} environment variable."
-msgstr "Además de las opciones proporcionadas explícitamente en la línea de órdenes, @command{guix build} y otras órdenes @command{guix} que permiten la construcción respetan el contenido de la variable de entorno @code{GUIX_BUILD_OPTIONS}."
+#: doc/guix.texi:10050
+msgid "In addition to options explicitly passed on the command line, @command{guix build} and other @command{guix} commands that support building honor the @env{GUIX_BUILD_OPTIONS} environment variable."
+msgstr "Además de las opciones proporcionadas explícitamente en la línea de órdenes, @command{guix build} y otras órdenes @command{guix} que permiten la construcción respetan el contenido de la variable de entorno @env{GUIX_BUILD_OPTIONS}."
 
 #. type: defvr
-#: doc/guix.texi:8363
+#: doc/guix.texi:10051
 #, no-wrap
 msgid "{Environment Variable} GUIX_BUILD_OPTIONS"
 msgstr "{Variable de entorno} GUIX_BUILD_OPTIONS"
 
 #. type: defvr
-#: doc/guix.texi:8368
+#: doc/guix.texi:10056
 msgid "Users can define this variable to a list of command line options that will automatically be used by @command{guix build} and other @command{guix} commands that can perform builds, as in the example below:"
 msgstr "Las usuarias pueden definir esta variable para que contenga una lista de opciones de línea de órdenes que se usarán automáticamente por @command{guix build} y otras órdenes @command{guix} que puedan realizar construcciones, como en el ejemplo siguiente:"
 
 #. type: example
-#: doc/guix.texi:8371
+#: doc/guix.texi:10059
 #, no-wrap
 msgid "$ export GUIX_BUILD_OPTIONS=\"--no-substitutes -c 2 -L /foo/bar\"\n"
 msgstr "$ export GUIX_BUILD_OPTIONS=\"--no-substitutes -c 2 -L /foo/bar\"\n"
 
 #. type: defvr
-#: doc/guix.texi:8375
+#: doc/guix.texi:10063
 msgid "These options are parsed independently, and the result is appended to the parsed command-line options."
 msgstr "Estas opciones se analizan independientemente, y el resultado se añade a continuación de las opciones de línea de órdenes."
 
 #. type: cindex
-#: doc/guix.texi:8381
+#: doc/guix.texi:10069
 #, no-wrap
 msgid "package variants"
 msgstr "variaciones de paquetes"
 
 #. type: Plain text
-#: doc/guix.texi:8389
+#: doc/guix.texi:10077
 msgid "Another set of command-line options supported by @command{guix build} and also @command{guix package} are @dfn{package transformation options}.  These are options that make it possible to define @dfn{package variants}---for instance, packages built from different source code.  This is a convenient way to create customized packages on the fly without having to type in the definitions of package variants (@pxref{Defining Packages})."
 msgstr "Otro conjunto de opciones de línea de órdenes permitidas por @command{guix build} y también @command{guix package} son las @dfn{opciones de transformación de paquetes}. Son opciones que hacen posible la definición de @dfn{variaciones de paquetes}---por ejemplo, paquetes construidos con un código fuente diferente. Es una forma conveniente de crear paquetes personalizados al vuelo sin tener que escribir las definiciones de las variaciones del paquete (@pxref{Defining Packages})."
 
+#. type: Plain text
+#: doc/guix.texi:10081
+msgid "Package transformation options are preserved across upgrades: @command{guix upgrade} attempts to apply transformation options initially used when creating the profile to the upgraded packages."
+msgstr "Las opciones de transformación del paquete se preservan con las actualizaciones: @command{guix upgrade} intenta aplicar las opciones de transformación usadas inicialmente al crear el perfil para actualizar los paquetes."
+
+# FUZZY FUZZY
+#. type: Plain text
+#: doc/guix.texi:10086
+msgid "The available options are listed below.  Most commands support them and also support a @option{--help-transform} option that lists all the available options and a synopsis (these options are not shown in the @option{--help} output for brevity)."
+msgstr "Las opciones disponibles se enumeran a continuación. La mayor parte de las ordenes los aceptan, así como la opción @option{--help-transform} que enumera todas las opciones disponibles y una sinópsis (estas opciones no se muestran en la salida de @option{--help} por brevedad)."
+
 #. type: item
-#: doc/guix.texi:8392
+#: doc/guix.texi:10089
 #, no-wrap
 msgid "--with-source=@var{source}"
 msgstr "--with-source=@var{fuente}"
 
 #. type: itemx
-#: doc/guix.texi:8393
+#: doc/guix.texi:10090
 #, no-wrap
 msgid "--with-source=@var{package}=@var{source}"
 msgstr "--with-source=@var{paquete}=@var{fuente}"
 
 #. type: itemx
-#: doc/guix.texi:8394
+#: doc/guix.texi:10091
 #, no-wrap
 msgid "--with-source=@var{package}@@@var{version}=@var{source}"
 msgstr "--with-source=@var{paquete}@@@var{versión}=@var{fuente}"
 
 #. type: table
-#: doc/guix.texi:8399
+#: doc/guix.texi:10096
 msgid "Use @var{source} as the source of @var{package}, and @var{version} as its version number.  @var{source} must be a file name or a URL, as for @command{guix download} (@pxref{Invoking guix download})."
-msgstr "Usa @var{fuente} como la fuente de @var{paquete}, y @var{versión} como su número de versión. @var{fuente} debe ser un nombre de fichero o una URL, como en @command{guix download} (@pxref{Invoking guix download})."
+msgstr "Usa @var{fuente} como la fuente de @var{paquete}, y @var{versión} como su número de versión. @var{fuente} debe ser un nombre de archivo o una URL, como en @command{guix download} (@pxref{Invoking guix download})."
 
 #. type: table
-#: doc/guix.texi:8405
+#: doc/guix.texi:10102
 msgid "When @var{package} is omitted, it is taken to be the package name specified on the command line that matches the base of @var{source}---e.g., if @var{source} is @code{/src/guile-2.0.10.tar.gz}, the corresponding package is @code{guile}."
 msgstr "Cuando se omite @var{paquete}, se toma el nombre de paquete especificado en la línea de ordenes que coincide con el nombre base de @var{fuente}---por ejemplo, si @var{fuente} fuese @code{/src/guile-2.0.10.tar.gz}, el paquete correspondiente sería @code{guile}."
 
 #. type: table
-#: doc/guix.texi:8408
+#: doc/guix.texi:10105
 msgid "Likewise, when @var{version} is omitted, the version string is inferred from @var{source}; in the previous example, it is @code{2.0.10}."
 msgstr "Del mismo modo, si se omite @var{versión}, la cadena de versión se deduce de @var{đuente}; en el ejemplo previo sería @code{2.0.10}."
 
 #. type: table
-#: doc/guix.texi:8413
+#: doc/guix.texi:10110
 msgid "This option allows users to try out versions of packages other than the one provided by the distribution.  The example below downloads @file{ed-1.7.tar.gz} from a GNU mirror and uses that as the source for the @code{ed} package:"
 msgstr "Esta opción permite a las usuarias probar versiones del paquete distintas a las proporcionadas en la distribución. El ejemplo siguiente descarga @file{ed-1.7.tar.gz} de un espejo GNU y lo usa como la fuente para el paquete @code{ed}:"
 
 #. type: example
-#: doc/guix.texi:8416
+#: doc/guix.texi:10113
 #, no-wrap
 msgid "guix build ed --with-source=mirror://gnu/ed/ed-1.7.tar.gz\n"
 msgstr "guix build ed --with-source=mirror://gnu/ed/ed-1.7.tar.gz\n"
 
 #. type: table
-#: doc/guix.texi:8420
-msgid "As a developer, @code{--with-source} makes it easy to test release candidates:"
-msgstr "Como desarrolladora, @code{--with-source} facilita la prueba de versiones candidatas para la publicación:"
+#: doc/guix.texi:10117
+msgid "As a developer, @option{--with-source} makes it easy to test release candidates:"
+msgstr "Como desarrolladora, @option{--with-source} facilita la prueba de versiones candidatas para la publicación:"
 
 #. type: example
-#: doc/guix.texi:8423
+#: doc/guix.texi:10120
 #, no-wrap
 msgid "guix build guile --with-source=../guile-2.0.9.219-e1bb7.tar.xz\n"
 msgstr "guix build guile --with-source=../guile-2.0.9.219-e1bb7.tar.xz\n"
 
 #. type: table
-#: doc/guix.texi:8426
+#: doc/guix.texi:10123
 msgid "@dots{} or to build from a checkout in a pristine environment:"
 msgstr "@dots{} o la construcción desde una revisión en un entorno limpio:"
 
 #. type: example
-#: doc/guix.texi:8430
+#: doc/guix.texi:10127
 #, no-wrap
 msgid ""
 "$ git clone git://git.sv.gnu.org/guix.git\n"
@@ -16271,95 +19260,193 @@ msgstr ""
 "$ guix build guix --with-source=guix@@1.0=./guix\n"
 
 #. type: item
-#: doc/guix.texi:8432
+#: doc/guix.texi:10129
 #, no-wrap
 msgid "--with-input=@var{package}=@var{replacement}"
 msgstr "--with-input=@var{paquete}=@var{reemplazo}"
 
 #. type: table
-#: doc/guix.texi:8437
+#: doc/guix.texi:10134
 msgid "Replace dependency on @var{package} by a dependency on @var{replacement}.  @var{package} must be a package name, and @var{replacement} must be a package specification such as @code{guile} or @code{guile@@1.8}."
 msgstr "Substituye dependencias de @var{paquete} por dependencias de @var{reemplazo}. @var{paquete} debe ser un nombre de paquete, y @var{reemplazo} debe ser una especificación de paquete como @code{guile} o @code{guile@@1.8}."
 
 #. type: table
-#: doc/guix.texi:8441
+#: doc/guix.texi:10138
 msgid "For instance, the following command builds Guix, but replaces its dependency on the current stable version of Guile with a dependency on the legacy version of Guile, @code{guile@@2.0}:"
 msgstr "Por ejemplo, la orden siguiente construye Guix, pero substituye su dependencia de la versión estable actual de Guile con una dependencia en la versión antigua de Guile, @code{guile@@2.0}:"
 
 #. type: example
-#: doc/guix.texi:8444
+#: doc/guix.texi:10141
 #, no-wrap
 msgid "guix build --with-input=guile=guile@@2.0 guix\n"
 msgstr "guix build --with-input=guile=guile@@2.0 guix\n"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:8449
+#: doc/guix.texi:10146
 msgid "This is a recursive, deep replacement.  So in this example, both @code{guix} and its dependency @code{guile-json} (which also depends on @code{guile}) get rebuilt against @code{guile@@2.0}."
 msgstr "Esta sustitución se realiza de forma recursiva y en profundidad. Por lo que en este ejemplo, tanto @code{guix} como su dependencia @code{guile-json} (que también depende de @code{guile}) se reconstruyen contra @code{guile@@2.0}."
 
 #. type: table
-#: doc/guix.texi:8452
+#: doc/guix.texi:10149
 msgid "This is implemented using the @code{package-input-rewriting} Scheme procedure (@pxref{Defining Packages, @code{package-input-rewriting}})."
 msgstr "Se implementa usando el procedimiento Scheme @code{package-input-rewriting} (@pxref{Defining Packages, @code{package-input-rewriting}})."
 
 #. type: item
-#: doc/guix.texi:8453
+#: doc/guix.texi:10150
 #, no-wrap
 msgid "--with-graft=@var{package}=@var{replacement}"
 msgstr "--with-graft=@var{paquete}=@var{reemplazo}"
 
 #. type: table
-#: doc/guix.texi:8459
-msgid "This is similar to @code{--with-input} but with an important difference: instead of rebuilding the whole dependency chain, @var{replacement} is built and then @dfn{grafted} onto the binaries that were initially referring to @var{package}.  @xref{Security Updates}, for more information on grafts."
-msgstr "Es similar a @code{--with-input} pero con una diferencia importante: en vez de reconstruir la cadena de dependencias completa, @var{reemplazo} se construye y se @dfn{injerta} en los binarios que inicialmente hacían referencia a @var{paquete}. @xref{Security Updates}, para más información sobre injertos."
+#: doc/guix.texi:10156
+msgid "This is similar to @option{--with-input} but with an important difference: instead of rebuilding the whole dependency chain, @var{replacement} is built and then @dfn{grafted} onto the binaries that were initially referring to @var{package}.  @xref{Security Updates}, for more information on grafts."
+msgstr "Es similar a @option{--with-input} pero con una diferencia importante: en vez de reconstruir la cadena de dependencias completa, @var{reemplazo} se construye y se @dfn{injerta} en los binarios que inicialmente hacían referencia a @var{paquete}. @xref{Security Updates}, para más información sobre injertos."
 
 #. type: table
-#: doc/guix.texi:8463
+#: doc/guix.texi:10160
 msgid "For example, the command below grafts version 3.5.4 of GnuTLS onto Wget and all its dependencies, replacing references to the version of GnuTLS they currently refer to:"
 msgstr "Por ejemplo, la orden siguiente injerta la versión 3.5.4 de GnuTLS en Wget y todas sus dependencias, substituyendo las referencias a la versión de GnuTLS que tienen actualmente:"
 
 #. type: example
-#: doc/guix.texi:8466
+#: doc/guix.texi:10163
 #, no-wrap
 msgid "guix build --with-graft=gnutls=gnutls@@3.5.4 wget\n"
 msgstr "guix build --with-graft=gnutls=gnutls@@3.5.4 wget\n"
 
 #. type: table
-#: doc/guix.texi:8475
+#: doc/guix.texi:10172
 msgid "This has the advantage of being much faster than rebuilding everything.  But there is a caveat: it works if and only if @var{package} and @var{replacement} are strictly compatible---for example, if they provide a library, the application binary interface (ABI) of those libraries must be compatible.  If @var{replacement} is somehow incompatible with @var{package}, then the resulting package may be unusable.  Use with care!"
 msgstr "Esta opción tiene la ventaja de ser mucho más rápida que la reconstrucción de todo. Pero hay una trampa: funciona si y solo si @var{paquete} y @var{reemplazo} son estrictamente compatibles---por ejemplo, si proporcionan una biblioteca, la interfaz binaria de aplicación (ABI) de dichas bibliotecas debe ser compatible. Si @var{reemplazo} es incompatible de alguna manera con @var{paquete}, el paquete resultante puede no ser usable. ¡Úsela con precaución!"
 
+#. type: cindex
+#: doc/guix.texi:10173 doc/guix.texi:32308
+#, no-wrap
+msgid "debugging info, rebuilding"
+msgstr "información de depuración, reconstrucción"
+
 #. type: item
-#: doc/guix.texi:8476
+#: doc/guix.texi:10174
+#, no-wrap
+msgid "--with-debug-info=@var{package}"
+msgstr "--with-debug-info=@var{paquete}"
+
+#. type: table
+#: doc/guix.texi:10179
+msgid "Build @var{package} in a way that preserves its debugging info and graft it onto packages that depend on it.  This is useful if @var{package} does not already provide debugging info as a @code{debug} output (@pxref{Installing Debugging Files})."
+msgstr "Construye @var{paquete} de modo que preserve su información de depuración y lo injerta en los paquetes que dependan de él. Es útil si @var{paquete} no proporciona ya información de depuración como una salida @code{debug} (@pxref{Installing Debugging Files})."
+
+#. type: table
+#: doc/guix.texi:10185
+msgid "For example, suppose you're experiencing a crash in Inkscape and would like to see what's up in GLib, a library deep down in Inkscape's dependency graph.  GLib lacks a @code{debug} output, so debugging is tough.  Fortunately, you rebuild GLib with debugging info and tack it on Inkscape:"
+msgstr "Por ejemplo, supongamos que está experimentando un fallo en Inkscape y querría ver qué pasa en GLib, una biblioteca con mucha profundidad en el grafo de dependencias de Inkscape. GLib no tiene una salida @code{debug}, de modo que su depuración es difícil. Afortunadamente puede reconstruir GLib con información de depuración e incorporarla a Inkscape:"
+
+#. type: example
+#: doc/guix.texi:10188 doc/guix.texi:32339
+#, no-wrap
+msgid "guix install inkscape --with-debug-info=glib\n"
+msgstr "guix install inkscape --with-debug-info=glib\n"
+
+#. type: table
+#: doc/guix.texi:10192
+msgid "Only GLib needs to be recompiled so this takes a reasonable amount of time.  @xref{Installing Debugging Files}, for more info."
+msgstr "Únicamente GLib necesita una reconstrucción por lo que esto tarda un tiempo razonable.  @xref{Installing Debugging Files} para obtener más información."
+
+#. type: quotation
+#: doc/guix.texi:10198
+msgid "Under the hood, this option works by passing the @samp{#:strip-binaries? #f} to the build system of the package of interest (@pxref{Build Systems}).  Most build systems support that option but some do not.  In that case, an error is raised."
+msgstr "Esta opción funciona en su implementación interna proporcionando @samp{#:strip-binaries? #f} al sistema de construcción del paquete en cuestión (@pxref{Build Systems}). La mayor parte de sistemas de construcción implementan dicha opción, pero algunos no lo hacen. En este caso caso se emite un error."
+
+#. type: quotation
+#: doc/guix.texi:10202
+msgid "Likewise, if a C/C++ package is built without @code{-g} (which is rarely the case), debugging info will remain unavailable even when @code{#:strip-binaries?} is false."
+msgstr "De igual modo, si se construye un paquete C/C++ sin la opción @code{-g} (lo que no es habitual que ocurra), la información de depuración seguirá sin estar disponible incluso cuando @code{#:strip-binaries?} sea falso."
+
+#. type: cindex
+#: doc/guix.texi:10204
+#, no-wrap
+msgid "tool chain, changing the build tool chain of a package"
+msgstr "cadena de herramientas de construcción, cambiar para un paquete la"
+
+#. type: item
+#: doc/guix.texi:10205
+#, no-wrap
+msgid "--with-c-toolchain=@var{package}=@var{toolchain}"
+msgstr "--with-c-toolchain=@var{paquete}=@var{cadena}"
+
+#. type: table
+#: doc/guix.texi:10209
+msgid "This option changes the compilation of @var{package} and everything that depends on it so that they get built with @var{toolchain} instead of the default GNU tool chain for C/C++."
+msgstr "Esta opción cambia la compilación de @var{paquete} y todo lo que dependa de él de modo que se constuya con @var{cadena} en vez de la cadena de herramientas de construcción para C/C++ de GNU predeterminada."
+
+#. type: example
+#: doc/guix.texi:10216
+#, no-wrap
+msgid ""
+"guix build octave-cli \\\n"
+"  --with-c-toolchain=fftw=gcc-toolchain@@10 \\\n"
+"  --with-c-toolchain=fftwf=gcc-toolchain@@10\n"
+msgstr ""
+"guix build octave-cli \\\n"
+"  --with-c-toolchain=fftw=gcc-toolchain@@10 \\\n"
+"  --with-c-toolchain=fftwf=gcc-toolchain@@10\n"
+
+#. type: table
+#: doc/guix.texi:10223
+msgid "The command above builds a variant of the @code{fftw} and @code{fftwf} packages using version 10 of @code{gcc-toolchain} instead of the default tool chain, and then builds a variant of the GNU@tie{}Octave command-line interface using them.  GNU@tie{}Octave itself is also built with @code{gcc-toolchain@@10}."
+msgstr "La orden anterior construye una variante de los paquetes @code{fftw} y @code{fftwf} usando la versión 10 de @code{gcc-toolchain} en vez de la cadena de herramientas de construcción predeterminada, y construye una variante de la interfaz de línea de órdenes GNU@tie{}Octave que hace uso de ellos. El propio paquete de GNU@tie{}Octave también se construye con @code{gcc-toolchain@@10}."
+
+#. type: table
+#: doc/guix.texi:10227
+msgid "This other example builds the Hardware Locality (@code{hwloc}) library and its dependents up to @code{intel-mpi-benchmarks} with the Clang C compiler:"
+msgstr "Este otro ejemplo construye la biblioteca Hardware Locality (@code{hwloc}) y los paquetes que dependan de ella hasta @code{intel-mpi-benchmarks} con el compilador de C Clang:"
+
+#. type: example
+#: doc/guix.texi:10231
+#, no-wrap
+msgid ""
+"guix build --with-c-toolchain=hwloc=clang-toolchain \\\n"
+"           intel-mpi-benchmarks\n"
+msgstr ""
+"guix build --with-c-toolchain=hwloc=clang-toolchain \\\n"
+"           intel-mpi-benchmarks\n"
+
+# FUZZY FUZZY FUZZY
+#. type: quotation
+#: doc/guix.texi:10240
+msgid "There can be application binary interface (ABI) incompatibilities among tool chains.  This is particularly true of the C++ standard library and run-time support libraries such as that of OpenMP.  By rebuilding all dependents with the same tool chain, @option{--with-c-toolchain} minimizes the risks of incompatibility but cannot entirely eliminate them.  Choose @var{package} wisely."
+msgstr "Puede haber incompatibilidades en la interfaz binaria de las aplicaciones (ABI) entre distintas cadenas de herramientas de construcción. Esto es verdadero particularmente con la biblioteca estándar de C++ y las bibliotecas auxiliares para tiempo de ejecución como OpenMP. Mediante la reconstrucción de toda la cadena de dependencias con la misma cadena de herramientas, @option{--with-c-toolchain} minimiza el riesgo de incompatibilidades pero no puede eliminarlas al completo. Elija @var{paquete} con cuidado."
+
+#. type: item
+#: doc/guix.texi:10242
 #, no-wrap
 msgid "--with-git-url=@var{package}=@var{url}"
 msgstr "--with-git-url=@var{paquete}=@var{url}"
 
 #. type: cindex
-#: doc/guix.texi:8477
+#: doc/guix.texi:10243
 #, no-wrap
 msgid "Git, using the latest commit"
 msgstr "Git, usar la última revisión"
 
 #. type: cindex
-#: doc/guix.texi:8478
+#: doc/guix.texi:10244
 #, no-wrap
 msgid "latest commit, building"
 msgstr "última revisión, construcción"
 
 #. type: table
-#: doc/guix.texi:8482
+#: doc/guix.texi:10248
 msgid "Build @var{package} from the latest commit of the @code{master} branch of the Git repository at @var{url}.  Git sub-modules of the repository are fetched, recursively."
 msgstr "Construye @var{paquete} desde la última revisión de la rama @code{master} del repositorio Git en @var{url}. Los submódulos del repositorio Git se obtienen de forma recursiva."
 
 #. type: table
-#: doc/guix.texi:8485
+#: doc/guix.texi:10251
 msgid "For example, the following command builds the NumPy Python library against the latest commit of the master branch of Python itself:"
 msgstr "Por ejemplo, la siguiente orden construye la biblioteca NumPy de Python contra la última revisión de la rama master de Python en sí:"
 
 #. type: example
-#: doc/guix.texi:8489
+#: doc/guix.texi:10255
 #, no-wrap
 msgid ""
 "guix build python-numpy \\\n"
@@ -16369,203 +19456,251 @@ msgstr ""
 "  --with-git-url=python=https://github.com/python/cpython\n"
 
 #. type: table
-#: doc/guix.texi:8493
-msgid "This option can also be combined with @code{--with-branch} or @code{--with-commit} (see below)."
-msgstr "Esta opción también puede combinarse con @code{--with-branch} o @code{--with-commit} (véase más adelante)."
+#: doc/guix.texi:10259
+msgid "This option can also be combined with @option{--with-branch} or @option{--with-commit} (see below)."
+msgstr "Esta opción también puede combinarse con @option{--with-branch} o @option{--with-commit} (véase más adelante)."
 
 #. type: cindex
-#: doc/guix.texi:8494 doc/guix.texi:22466
+#: doc/guix.texi:10260 doc/guix.texi:25318
 #, no-wrap
 msgid "continuous integration"
 msgstr "integración continua"
 
 #. type: table
-#: doc/guix.texi:8500
+#: doc/guix.texi:10266
 msgid "Obviously, since it uses the latest commit of the given branch, the result of such a command varies over time.  Nevertheless it is a convenient way to rebuild entire software stacks against the latest commit of one or more packages.  This is particularly useful in the context of continuous integration (CI)."
 msgstr "Obviamente, ya que se usa la última revisión de la rama proporcionada, el resultado de dicha orden varia con el tiempo. No obstante es una forma conveniente de reconstruir una pila completa de software contra las últimas revisiones de uno o varios paquetes. Esto es particularmente útil en el contexto de integración continua (CI)."
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:8504
+#: doc/guix.texi:10270
 msgid "Checkouts are kept in a cache under @file{~/.cache/guix/checkouts} to speed up consecutive accesses to the same repository.  You may want to clean it up once in a while to save disk space."
 msgstr "Los directorios de trabajo se conservan en caché en @file{~/.cache/guix/checkouts} para agilizar accesos consecutivos al mismo repositorio. Puede desear limpiarla de vez en cuando para ahorrar espacio en el disco."
 
 #. type: item
-#: doc/guix.texi:8505
+#: doc/guix.texi:10271
 #, no-wrap
 msgid "--with-branch=@var{package}=@var{branch}"
 msgstr "--with-branch=@var{paquete}=@var{rama}"
 
 #. type: table
-#: doc/guix.texi:8511
-msgid "Build @var{package} from the latest commit of @var{branch}.  If the @code{source} field of @var{package} is an origin with the @code{git-fetch} method (@pxref{origin Reference}) or a @code{git-checkout} object, the repository URL is taken from that @code{source}.  Otherwise you have to use @code{--with-git-url} to specify the URL of the Git repository."
-msgstr "Construye @var{paquete} desde la última revisión de @var{rama}. Si el campo @code{source} de @var{paquete} es un origen con el método @code{git-fetch} (@pxref{origin Reference}) o un objeto @code{git-checkout}, la URL del repositorio se toma de dicho campo @code{source}. En otro caso, se debe especificar la URL del repositorio Git mediante el uso de @code{--with-git-url}."
+#: doc/guix.texi:10277
+msgid "Build @var{package} from the latest commit of @var{branch}.  If the @code{source} field of @var{package} is an origin with the @code{git-fetch} method (@pxref{origin Reference}) or a @code{git-checkout} object, the repository URL is taken from that @code{source}.  Otherwise you have to use @option{--with-git-url} to specify the URL of the Git repository."
+msgstr "Construye @var{paquete} desde la última revisión de @var{rama}. Si el campo @code{source} de @var{paquete} es un origen con el método @code{git-fetch} (@pxref{origin Reference}) o un objeto @code{git-checkout}, la URL del repositorio se toma de dicho campo @code{source}. En otro caso, se debe especificar la URL del repositorio Git mediante el uso de @option{--with-git-url}."
 
 #. type: table
-#: doc/guix.texi:8516
+#: doc/guix.texi:10282
 msgid "For instance, the following command builds @code{guile-sqlite3} from the latest commit of its @code{master} branch, and then builds @code{guix} (which depends on it) and @code{cuirass} (which depends on @code{guix}) against this specific @code{guile-sqlite3} build:"
 msgstr "Por ejemplo, la siguiente orden construye @code{guile-sqlite3} desde la última revisión de su rama @code{master} y, una vez hecho, construye @code{guix} (que depende de él) y @code{cuirass} (que depende de @code{guix}) en base a esta construcción específica de @code{guile-sqlite3}:"
 
 #. type: example
-#: doc/guix.texi:8519
+#: doc/guix.texi:10285
 #, no-wrap
 msgid "guix build --with-branch=guile-sqlite3=master cuirass\n"
 msgstr "guix build --with-branch=guile-sqlite3=master cuirass\n"
 
 #. type: item
-#: doc/guix.texi:8521
+#: doc/guix.texi:10287
 #, no-wrap
 msgid "--with-commit=@var{package}=@var{commit}"
 msgstr "--with-commit=@var{paquete}=@var{revisión}"
 
 #. type: table
-#: doc/guix.texi:8525
-msgid "This is similar to @code{--with-branch}, except that it builds from @var{commit} rather than the tip of a branch.  @var{commit} must be a valid Git commit SHA1 identifier or a tag."
-msgstr "Esta opción es similar a @code{--with-branch}, salvo que construye desde @var{revisión} en vez de usar la punta de la rama. @var{revisión} debe ser un identificador SHA-1 de revisión Git válido o una etiqueta."
+#: doc/guix.texi:10291
+msgid "This is similar to @option{--with-branch}, except that it builds from @var{commit} rather than the tip of a branch.  @var{commit} must be a valid Git commit SHA1 identifier or a tag."
+msgstr "Esta opción es similar a @option{--with-branch}, salvo que construye desde @var{revisión} en vez de usar la última revisión de la rama. @var{revisión} debe ser un identificador de revisión SHA1 de Git válido o una etiqueta."
+
+#. type: cindex
+#: doc/guix.texi:10292
+#, no-wrap
+msgid "test suite, skipping"
+msgstr "batería de pruebas, omisión de la"
+
+#. type: item
+#: doc/guix.texi:10293
+#, no-wrap
+msgid "--without-tests=@var{package}"
+msgstr "--without-tests=@var{paquete}"
+
+#. type: table
+#: doc/guix.texi:10299
+msgid "Build @var{package} without running its tests.  This can be useful in situations where you want to skip the lengthy test suite of a intermediate package, or if a package's test suite fails in a non-deterministic fashion.  It should be used with care because running the test suite is a good way to ensure a package is working as intended."
+msgstr "Construye @var{paquete} sin ejecutar su batería de pruebas. Puede ser útil en situaciones en las que quiera omitir una larga batería de pruebas de un paquete intermedio, o si la batería de pruebas no falla de manera determinista. Debe usarse con cuidado, puesto que la ejecución de la batería de pruebas es una buena forma de asegurarse de que el paquete funciona como se espera."
+
+#. type: table
+#: doc/guix.texi:10303
+msgid "Turning off tests leads to a different store item.  Consequently, when using this option, anything that depends on @var{package} must be rebuilt, as in this example:"
+msgstr "La desactivación de las pruebas conduce a diferentes elementos en el almacén. Por tanto, cuando use esta opción, cualquier objeto que dependa de @var{paquete} debe ser reconstruido, como en este ejemplo:"
+
+#. type: example
+#: doc/guix.texi:10306
+#, no-wrap
+msgid "guix install --without-tests=python python-notebook\n"
+msgstr "guix install --without-tests=python python-notebook\n"
+
+#. type: table
+#: doc/guix.texi:10312
+msgid "The command above installs @code{python-notebook} on top of @code{python} built without running its test suite.  To do so, it also rebuilds everything that depends on @code{python}, including @code{python-notebook} itself."
+msgstr "La orden anterior instala @code{python-notebook} sobre un paquete @code{python} construido sin ejecutar su batería de pruebas. Para hacerlo, también reconstruye todos los paquetes que dependen de @code{python}, incluyendo el propio @code{pyhton-notebook}."
 
+#. type: table
+#: doc/guix.texi:10318
+msgid "Internally, @option{--without-tests} relies on changing the @code{#:tests?} option of a package's @code{check} phase (@pxref{Build Systems}).  Note that some packages use a customized @code{check} phase that does not respect a @code{#:tests? #f} setting.  Therefore, @option{--without-tests} has no effect on these packages."
+msgstr "De manera interna, @option{--without-tests} depende del cambio de la opción @code{#:tests?} de la fase @code{check} del paquete (@pxref{Build Systems}). Tenga en cuenta que algunos paquetes usan una fase @code{check} personalizada que no respeta el valor de configuración @code{#:tests? #f}. Por tanto, @option{--without-tests} no tiene ningún efecto en dichos paquetes."
+
+# FUZZY
 #. type: Plain text
-#: doc/guix.texi:8532
+#: doc/guix.texi:10325
+msgid "Wondering how to achieve the same effect using Scheme code, for example in your manifest, or how to write your own package transformation? @xref{Defining Package Variants}, for an overview of the programming interfaces available."
+msgstr "¿Se pregunta cómo conseguir el mismo efecto usando código Scheme, por ejemplo en su manifiesto, o cómo escribir su propia transformación de paquetes? @xref{Defining Package Variants} para obtener una descripción de la interfaz programática disponible."
+
+#. type: Plain text
+#: doc/guix.texi:10331
 msgid "The command-line options presented below are specific to @command{guix build}."
 msgstr "Las opciones de línea de ordenes presentadas a continuación son específicas de @command{guix build}."
 
 #. type: item
-#: doc/guix.texi:8535
+#: doc/guix.texi:10334
 #, no-wrap
 msgid "--quiet"
 msgstr "--quiet"
 
 # FUZZY
-# MAAV (TODO): Log
 #. type: table
-#: doc/guix.texi:8540
-msgid "Build quietly, without displaying the build log; this is equivalent to @code{--verbosity=0}.  Upon completion, the build log is kept in @file{/var} (or similar) and can always be retrieved using the @option{--log-file} option."
-msgstr "Construye silenciosamente, sin mostrar el registro de construcción; es equivalente a @code{--verbosity=0}. Al finalizar, el registro de construcción se mantiene en @file{/var} (o similar) y puede recuperarse siempre mediante el uso de la opción @option{--log-file}."
+#: doc/guix.texi:10339
+msgid "Build quietly, without displaying the build log; this is equivalent to @option{--verbosity=0}.  Upon completion, the build log is kept in @file{/var} (or similar) and can always be retrieved using the @option{--log-file} option."
+msgstr "Construye silenciosamente, sin mostrar el registro de construcción; es equivalente a @option{--verbosity=0}. Al finalizar, el registro de construcción se mantiene en @file{/var} (o similar) y puede recuperarse siempre mediante el uso de la opción @option{--log-file}."
 
 #. type: item
-#: doc/guix.texi:8541
+#: doc/guix.texi:10340
 #, no-wrap
 msgid "--file=@var{file}"
-msgstr "--file=@var{fichero}"
+msgstr "--file=@var{archivo}"
 
 #. type: table
-#: doc/guix.texi:8545
+#: doc/guix.texi:10344
 msgid "Build the package, derivation, or other file-like object that the code within @var{file} evaluates to (@pxref{G-Expressions, file-like objects})."
-msgstr "Construye el paquete, derivación u otro objeto tipo-fichero al que evalúa el código en @var{fichero} (@pxref{G-Expressions, objetos ``tipo-fichero''})."
+msgstr "Construye el paquete, derivación u otro objeto tipo-archivo al que evalúa el código en @var{archivo} (@pxref{G-Expressions, objetos ``tipo-archivo''})."
 
 #. type: table
-#: doc/guix.texi:8548
+#: doc/guix.texi:10347
 msgid "As an example, @var{file} might contain a package definition like this (@pxref{Defining Packages}):"
-msgstr "Como un ejemplo, @var{fichero} puede contener una definición como esta (@pxref{Defining Packages}):"
+msgstr "Como un ejemplo, @var{archivo} puede contener una definición como esta (@pxref{Defining Packages}):"
+
+#. type: table
+#: doc/guix.texi:10356
+msgid "The @var{file} may also contain a JSON representation of one or more package definitions.  Running @code{guix build -f} on @file{hello.json} with the following contents would result in building the packages @code{myhello} and @code{greeter}:"
+msgstr "El @var{archivo} también puede contener una representación en JSON de una o más definiciones de paquete. Ejecutar @code{guix build -f} en @file{hello.json} con el siguiente contenido resultaría en la construcción de los paquetes @code{myhello} y @code{greeter}:"
 
 #. type: item
-#: doc/guix.texi:8553
+#: doc/guix.texi:10361
 #, no-wrap
 msgid "--manifest=@var{manifest}"
 msgstr "--manifest=@var{manifiesto}"
 
 #. type: itemx
-#: doc/guix.texi:8554
+#: doc/guix.texi:10362
 #, no-wrap
 msgid "-m @var{manifest}"
 msgstr "-m @var{manifiesto}"
 
 #. type: table
-#: doc/guix.texi:8557
+#: doc/guix.texi:10365
 msgid "Build all packages listed in the given @var{manifest} (@pxref{profile-manifest, @option{--manifest}})."
 msgstr "Construye todos los paquetes listados en el @var{manifiesto} proporcionado (@pxref{profile-manifest, @option{--manifest}})."
 
 #. type: table
-#: doc/guix.texi:8561
+#: doc/guix.texi:10369
 msgid "Build the package or derivation @var{expr} evaluates to."
 msgstr "Construye el paquete o derivación a la que evalúa @var{expr}."
 
 #. type: table
-#: doc/guix.texi:8565
+#: doc/guix.texi:10373
 msgid "For example, @var{expr} may be @code{(@@ (gnu packages guile)  guile-1.8)}, which unambiguously designates this specific variant of version 1.8 of Guile."
 msgstr "Por ejemplo, @var{expr} puede ser @code{(@@ (gnu packages guile) guile-1.8)}, que designa sin ambigüedad a esta variante específica de la versión 1.8 de Guile."
 
 #. type: table
-#: doc/guix.texi:8569
+#: doc/guix.texi:10377
 msgid "Alternatively, @var{expr} may be a G-expression, in which case it is used as a build program passed to @code{gexp->derivation} (@pxref{G-Expressions})."
 msgstr "De manera alternativa, @var{expr} puede ser una expresión-G, en cuyo caso se usa como un programa de construcción pasado a @code{gexp->derivation} (@pxref{G-Expressions})."
 
 #. type: table
-#: doc/guix.texi:8573
+#: doc/guix.texi:10381
 msgid "Lastly, @var{expr} may refer to a zero-argument monadic procedure (@pxref{The Store Monad}).  The procedure must return a derivation as a monadic value, which is then passed through @code{run-with-store}."
 msgstr "Por último, @var{expr} puede hacer referencia a un procedimiento mónadico sin parámetros (@pxref{The Store Monad}). El procedimiento debe devolver una derivación como un valor monádico, el cual después se pasa a través de @code{run-with-store}."
 
 #. type: item
-#: doc/guix.texi:8574
+#: doc/guix.texi:10382
 #, no-wrap
 msgid "--source"
 msgstr "--source"
 
 #. type: itemx
-#: doc/guix.texi:8575
+#: doc/guix.texi:10383
 #, no-wrap
 msgid "-S"
 msgstr "-S"
 
 #. type: table
-#: doc/guix.texi:8578
+#: doc/guix.texi:10386
 msgid "Build the source derivations of the packages, rather than the packages themselves."
 msgstr "Construye las derivaciones de las fuentes de los paquetes, en vez de los paquetes mismos."
 
 #. type: table
-#: doc/guix.texi:8582
+#: doc/guix.texi:10390
 msgid "For instance, @code{guix build -S gcc} returns something like @file{/gnu/store/@dots{}-gcc-4.7.2.tar.bz2}, which is the GCC source tarball."
 msgstr "Por ejemplo, @code{guix build -S gcc} devuelve algo como @file{/gnu/store/@dots{}-gcc-4.7.2.tar.bz2}, el cual es el archivador tar de fuentes de GCC."
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:8586
+#: doc/guix.texi:10394
 msgid "The returned source tarball is the result of applying any patches and code snippets specified in the package @code{origin} (@pxref{Defining Packages})."
 msgstr "El archivador tar devuelto es el resultado de aplicar cualquier parche y fragmento de código en el origen (campo @code{origin}) del paquete (@pxref{Defining Packages})."
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:8591
+#: doc/guix.texi:10399
 msgid "Note that @command{guix build -S} compiles the sources only of the specified packages.  They do not include the sources of statically linked dependencies and by themselves are insufficient for reproducing the packages."
 msgstr "Tenga en cuenta que @command{guix build -S} compila las fuentes únicamente de los paquetes especificados. Esto no incluye las dependencias enlazadas estáticamente y por sí mismas son insuficientes para reproducir los paquetes."
 
 #. type: item
-#: doc/guix.texi:8592
+#: doc/guix.texi:10400
 #, no-wrap
 msgid "--sources"
 msgstr "--sources"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:8599
-msgid "Fetch and return the source of @var{package-or-derivation} and all their dependencies, recursively.  This is a handy way to obtain a local copy of all the source code needed to build @var{packages}, allowing you to eventually build them even without network access.  It is an extension of the @code{--source} option and can accept one of the following optional argument values:"
-msgstr "Obtiene y devuelve las fuentes de @var{paquete-o-derivación} y todas sus dependencias, recursivamente. Esto es útil para obtener una copia local de todo el código fuente necesario para construir los @var{paquetes}, le permite construirlos llegado el momento sin acceso a la red. Es una extensión de la opción @code{--source} y puede aceptar uno de los siguientes valores opcionales como parámetro:"
+#: doc/guix.texi:10407
+msgid "Fetch and return the source of @var{package-or-derivation} and all their dependencies, recursively.  This is a handy way to obtain a local copy of all the source code needed to build @var{packages}, allowing you to eventually build them even without network access.  It is an extension of the @option{--source} option and can accept one of the following optional argument values:"
+msgstr "Obtiene y devuelve las fuentes de @var{paquete-o-derivación} y todas sus dependencias, de manera recursiva. Esto es útil para obtener una copia local de todo el código fuente necesario para construir los @var{paquetes}, le permite construirlos llegado el momento sin acceso a la red. Es una extensión de la opción @option{--source} y puede aceptar uno de los siguientes valores opcionales como parámetro:"
 
 #. type: item
-#: doc/guix.texi:8601 doc/guix.texi:10050
+#: doc/guix.texi:10409 doc/guix.texi:11914
 #, no-wrap
 msgid "package"
 msgstr "package"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:8604
-msgid "This value causes the @code{--sources} option to behave in the same way as the @code{--source} option."
-msgstr "Este valor hace que la opción @code{--sources} se comporte de la misma manera que la opción @code{--source}."
+#: doc/guix.texi:10412
+msgid "This value causes the @option{--sources} option to behave in the same way as the @option{--source} option."
+msgstr "Este valor hace que la opción @option{--sources} se comporte de la misma manera que la opción @option{--source}."
 
 #. type: item
-#: doc/guix.texi:8605 doc/guix.texi:14934
+#: doc/guix.texi:10413 doc/guix.texi:17488
 #, no-wrap
 msgid "all"
 msgstr "all"
 
 #. type: table
-#: doc/guix.texi:8608
+#: doc/guix.texi:10416
 msgid "Build the source derivations of all packages, including any source that might be listed as @code{inputs}.  This is the default value."
 msgstr "Construye las derivaciones de las fuentes de todos los paquetes, incluyendo cualquier fuente que pueda enumerarse como entrada (campo @code{inputs}). Este es el valor predeterminado."
 
 # TODO: Actualizar cuando se traduzca guix
 #. type: example
-#: doc/guix.texi:8614
+#: doc/guix.texi:10422
 #, no-wrap
 msgid ""
 "$ guix build --sources tzdata\n"
@@ -16579,19 +19714,19 @@ msgstr ""
 "   /gnu/store/@dots{}-tzcode2015b.tar.gz.drv\n"
 
 #. type: item
-#: doc/guix.texi:8616
+#: doc/guix.texi:10424
 #, no-wrap
 msgid "transitive"
 msgstr "transitive"
 
 #. type: table
-#: doc/guix.texi:8620
+#: doc/guix.texi:10428
 msgid "Build the source derivations of all packages, as well of all transitive inputs to the packages.  This can be used e.g.@: to prefetch package source for later offline building."
 msgstr "Construye las derivaciones de fuentes de todos los paquetes, así como todas las entradas transitivas de los paquetes. Esto puede usarse, por ejemplo, para obtener las fuentes de paquetes para una construcción posterior sin conexión a la red."
 
 # TODO: Actualizar cuando se traduzca guix
 #. type: example
-#: doc/guix.texi:8631
+#: doc/guix.texi:10439
 #, no-wrap
 msgid ""
 "$ guix build --sources=transitive tzdata\n"
@@ -16616,134 +19751,133 @@ msgstr ""
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:8641
+#: doc/guix.texi:10449
 msgid "Attempt to build for @var{system}---e.g., @code{i686-linux}---instead of the system type of the build host.  The @command{guix build} command allows you to repeat this option several times, in which case it builds for all the specified systems; other commands ignore extraneous @option{-s} options."
 msgstr "Intenta la construcción para @var{sistema}---por ejemplo, @code{i686-linux}---en vez del tipo de sistema de la máquina de construcción. La orden @command{guix build} le permite repetir esta opción varias veces, en cuyo caso construye para todos los sistemas especificados; otras ordenes ignoran opciones @option{-s} extrañas."
 
 #. type: quotation
-#: doc/guix.texi:8646
-msgid "The @code{--system} flag is for @emph{native} compilation and must not be confused with cross-compilation.  See @code{--target} below for information on cross-compilation."
-msgstr "La opción @code{--system} es para compilación @emph{nativa} y no debe confundirse con la compilación cruzada. Véase @code{--target} más adelante para información sobre compilación cruzada."
+#: doc/guix.texi:10454
+msgid "The @option{--system} flag is for @emph{native} compilation and must not be confused with cross-compilation.  See @option{--target} below for information on cross-compilation."
+msgstr "La opción @option{--system} es para compilación @emph{nativa} y no debe confundirse con la compilación cruzada. Véase @option{--target} más adelante para información sobre compilación cruzada."
 
 #. type: table
-#: doc/guix.texi:8653
-msgid "An example use of this is on Linux-based systems, which can emulate different personalities.  For instance, passing @code{--system=i686-linux} on an @code{x86_64-linux} system or @code{--system=armhf-linux} on an @code{aarch64-linux} system allows you to build packages in a complete 32-bit environment."
-msgstr "Un ejemplo de uso de esta opción es en sistemas basados en Linux, que pueden emular diferentes personalidades. Por ejemplo, pasar @code{--system=i686-linux} en un sistema @code{x86_64-linux} o @code{--system=armhf-linux} en un sistema @code{aarch64-linux} le permite construir paquetes en un entorno de 32-bits completo."
+#: doc/guix.texi:10461
+msgid "An example use of this is on Linux-based systems, which can emulate different personalities.  For instance, passing @option{--system=i686-linux} on an @code{x86_64-linux} system or @option{--system=armhf-linux} on an @code{aarch64-linux} system allows you to build packages in a complete 32-bit environment."
+msgstr "Un ejemplo de uso de esta opción es en sistemas basados en Linux, que pueden emular diferentes personalidades. Por ejemplo, proporcionar la opción @option{--system=i686-linux} en un sistema @code{x86_64-linux}, o la opción @option{--system=armhf-linux} en un sistema @code{aarch64-linux}, le permite construir paquetes en un entorno de 32-bits completo."
 
 # FUZZY
-# MAAV (TODO): Chipset
 #. type: quotation
-#: doc/guix.texi:8658
+#: doc/guix.texi:10466
 msgid "Building for an @code{armhf-linux} system is unconditionally enabled on @code{aarch64-linux} machines, although certain aarch64 chipsets do not allow for this functionality, notably the ThunderX."
-msgstr "La construcción para un sistema @code{armhf-linux} está disponible de manera incondicional en máquinas @code{aarch64-linux}, aunque determinados procesadores aarch64 no lo permitan, notablemente el ThunderX."
+msgstr "La construcción para un sistema @code{armhf-linux} está disponible de manera incondicional en máquinas @code{aarch64-linux}, aunque determinadas familias de procesadores aarch64 no lo permitan, notablemente el ThunderX."
 
 #. type: table
-#: doc/guix.texi:8664
+#: doc/guix.texi:10472
 msgid "Similarly, when transparent emulation with QEMU and @code{binfmt_misc} is enabled (@pxref{Virtualization Services, @code{qemu-binfmt-service-type}}), you can build for any system for which a QEMU @code{binfmt_misc} handler is installed."
 msgstr "De manera similar, cuando la emulación transparente con QEMU y @code{binfmt_misc} está activada (@pxref{Virtualization Services, @code{qemu-binfmt-service-type}}), puede construir para cualquier sistema para el que un manejador QEMU de @code{binfmt_misc} esté instalado."
 
 #. type: table
-#: doc/guix.texi:8668
+#: doc/guix.texi:10476
 msgid "Builds for a system other than that of the machine you are using can also be offloaded to a remote machine of the right architecture.  @xref{Daemon Offload Setup}, for more information on offloading."
 msgstr "Las construcciones para un sistema distinto al de la máquina que usa se pueden delegar también a una máquina remota de la arquitectura correcta. @xref{Daemon Offload Setup}, para más información sobre delegación."
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:8674
-msgid "Cross-build for @var{triplet}, which must be a valid GNU triplet, such as @code{\"mips64el-linux-gnu\"} (@pxref{Specifying Target Triplets, GNU configuration triplets,, autoconf, Autoconf})."
-msgstr "Compilación cruzada para la @var{tripleta}, que debe ser una tripleta GNU válida, cómo @code{\"mips64el-linux-gnu\"} (@pxref{Specifying Target triplets, GNU configuration triplets,, autoconf, Autoconf})."
+#: doc/guix.texi:10482
+msgid "Cross-build for @var{triplet}, which must be a valid GNU triplet, such as @code{\"aarch64-linux-gnu\"} (@pxref{Specifying Target Triplets, GNU configuration triplets,, autoconf, Autoconf})."
+msgstr "Compilación cruzada para la @var{tripleta}, que debe ser una tripleta GNU válida, cómo @code{\"aarch64-linux-gnu\"} (@pxref{Specifying Target triplets, GNU configuration triplets,, autoconf, Autoconf})."
 
 #. type: anchor{#1}
-#: doc/guix.texi:8676
+#: doc/guix.texi:10484
 msgid "build-check"
 msgstr "build-check"
 
 #. type: item
-#: doc/guix.texi:8676
+#: doc/guix.texi:10484
 #, no-wrap
 msgid "--check"
 msgstr "--check"
 
 #. type: cindex
-#: doc/guix.texi:8677
+#: doc/guix.texi:10485
 #, no-wrap
 msgid "determinism, checking"
 msgstr "determinismo, comprobación"
 
 #. type: cindex
-#: doc/guix.texi:8678
+#: doc/guix.texi:10486
 #, no-wrap
 msgid "reproducibility, checking"
 msgstr "reproducibilidad, comprobación"
 
 #. type: table
-#: doc/guix.texi:8682
+#: doc/guix.texi:10490
 msgid "Rebuild @var{package-or-derivation}, which are already available in the store, and raise an error if the build results are not bit-for-bit identical."
 msgstr "Reconstruye @var{paquete-o-derivación}, que ya está disponible en el almacén, y emite un error si los resultados de la construcción no son idénticos bit-a-bit."
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:8687
+#: doc/guix.texi:10495
 msgid "This mechanism allows you to check whether previously installed substitutes are genuine (@pxref{Substitutes}), or whether the build result of a package is deterministic.  @xref{Invoking guix challenge}, for more background information and tools."
 msgstr "Este mecanismo le permite comprobar si sustituciones previamente instaladas son genuinas (@pxref{Substitutes}), o si el resultado de la construcción de un paquete es determinista. @xref{Invoking guix challenge}, para más información de referencia y herramientas."
 
 #. type: item
-#: doc/guix.texi:8692
+#: doc/guix.texi:10500
 #, no-wrap
 msgid "--repair"
 msgstr "--repair"
 
 #. type: cindex
-#: doc/guix.texi:8693
+#: doc/guix.texi:10501
 #, no-wrap
 msgid "repairing store items"
 msgstr "reparar elementos del almacén"
 
 #. type: table
-#: doc/guix.texi:8697
+#: doc/guix.texi:10505
 msgid "Attempt to repair the specified store items, if they are corrupt, by re-downloading or rebuilding them."
 msgstr "Intenta reparar los elementos del almacén especificados, si están corruptos, volviendo a descargarlos o mediante su reconstrucción."
 
 #. type: table
-#: doc/guix.texi:8699
+#: doc/guix.texi:10507
 msgid "This operation is not atomic and thus restricted to @code{root}."
 msgstr "Esta operación no es atómica y por lo tanto está restringida a @code{root}."
 
 #. type: item
-#: doc/guix.texi:8700
+#: doc/guix.texi:10508
 #, no-wrap
 msgid "--derivations"
 msgstr "--derivations"
 
 #. type: table
-#: doc/guix.texi:8704
+#: doc/guix.texi:10512
 msgid "Return the derivation paths, not the output paths, of the given packages."
 msgstr "Devuelve las rutas de derivación, no las rutas de salida, de los paquetes proporcionados."
 
 #. type: cindex
-#: doc/guix.texi:8707
+#: doc/guix.texi:10515
 #, no-wrap
 msgid "GC roots, adding"
 msgstr "GC, añadir raíces"
 
 #. type: cindex
-#: doc/guix.texi:8708
+#: doc/guix.texi:10516
 #, no-wrap
 msgid "garbage collector roots, adding"
 msgstr "raíces del recolector de basura, añadir"
 
 #. type: table
-#: doc/guix.texi:8711 doc/guix.texi:26930
+#: doc/guix.texi:10519 doc/guix.texi:31067
 msgid "Make @var{file} a symlink to the result, and register it as a garbage collector root."
-msgstr "Hace que @var{fichero} sea un enlace simbólico al resultado, y lo registra como una raíz del recolector de basura."
+msgstr "Hace que @var{archivo} sea un enlace simbólico al resultado, y lo registra como una raíz del recolector de basura."
 
 #. type: table
-#: doc/guix.texi:8717
+#: doc/guix.texi:10525
 msgid "Consequently, the results of this @command{guix build} invocation are protected from garbage collection until @var{file} is removed.  When that option is omitted, build results are eligible for garbage collection as soon as the build completes.  @xref{Invoking guix gc}, for more on GC roots."
-msgstr "Consecuentemente, los resultados de esta invocación de @command{guix build} se protegen de la recolección de basura hasta que @var{fichero} se elimine. Cuando se omite esa opción, los resultados son candidatos a la recolección de basura en cuanto la construcción se haya completado. @xref{Invoking guix gc}, para más sobre las raíces del recolector de basura."
+msgstr "Consecuentemente, los resultados de esta invocación de @command{guix build} se protegen de la recolección de basura hasta que @var{archivo} se elimine. Cuando se omite esa opción, los resultados son candidatos a la recolección de basura en cuanto la construcción se haya completado. @xref{Invoking guix gc}, para más sobre las raíces del recolector de basura."
 
 #. type: item
-#: doc/guix.texi:8718
+#: doc/guix.texi:10526
 #, no-wrap
 msgid "--log-file"
 msgstr "--log-file"
@@ -16751,7 +19885,7 @@ msgstr "--log-file"
 # FUZZY
 # TODO: (MAAV) Log
 #. type: cindex
-#: doc/guix.texi:8719
+#: doc/guix.texi:10527
 #, no-wrap
 msgid "build logs, access"
 msgstr "logs de construcción, acceso"
@@ -16759,17 +19893,17 @@ msgstr "logs de construcción, acceso"
 # FUZZY
 # TODO: (MAAV) Log
 #. type: table
-#: doc/guix.texi:8723
+#: doc/guix.texi:10531
 msgid "Return the build log file names or URLs for the given @var{package-or-derivation}, or raise an error if build logs are missing."
-msgstr "Devuelve los nombres de ficheros o URL de los log de construcción para el @var{paquete-o-derivación} proporcionado, o emite un error si no se encuentran los log de construcción."
+msgstr "Devuelve los nombres de archivos o URL de los log de construcción para el @var{paquete-o-derivación} proporcionado, o emite un error si no se encuentran los log de construcción."
 
 #. type: table
-#: doc/guix.texi:8726
+#: doc/guix.texi:10534
 msgid "This works regardless of how packages or derivations are specified.  For instance, the following invocations are equivalent:"
 msgstr "Esto funciona independientemente de cómo se especificasen los paquetes o derivaciones. Por ejemplo, las siguientes invocaciones son equivalentes:"
 
 #. type: example
-#: doc/guix.texi:8732
+#: doc/guix.texi:10540
 #, no-wrap
 msgid ""
 "guix build --log-file `guix build -d guile`\n"
@@ -16783,57 +19917,57 @@ msgstr ""
 "guix build --log-file -e '(@@ (gnu packages guile) guile-2.0)'\n"
 
 #. type: table
-#: doc/guix.texi:8737
-msgid "If a log is unavailable locally, and unless @code{--no-substitutes} is passed, the command looks for a corresponding log on one of the substitute servers (as specified with @code{--substitute-urls}.)"
-msgstr "Si un log no está disponible localmente, y a menos que se proporcione @code{--no-substitutes}, la orden busca el log correspondiente en uno de los servidores de sustituciones (como se especificaron con @code{--substitute-urls})."
+#: doc/guix.texi:10545
+msgid "If a log is unavailable locally, and unless @option{--no-substitutes} is passed, the command looks for a corresponding log on one of the substitute servers (as specified with @option{--substitute-urls})."
+msgstr "Si no está disponible un registro local, y a menos que se proporcione @option{--no-substitutes}, la orden busca el registro correspondiente en uno de los servidores de sustituciones (como se especificaron con @option{--substitute-urls})."
 
 # FUZZY
 # TODO: (MAAV) Log
 #. type: table
-#: doc/guix.texi:8740
+#: doc/guix.texi:10548
 msgid "So for instance, imagine you want to see the build log of GDB on MIPS, but you are actually on an @code{x86_64} machine:"
 msgstr "Por lo que dado el caso, imaginese que desea ver el log de construcción de GDB en MIPS, pero realmente está en una máquina @code{x86_64}:"
 
 #. type: example
-#: doc/guix.texi:8744
+#: doc/guix.texi:10552
 #, no-wrap
 msgid ""
-"$ guix build --log-file gdb -s mips64el-linux\n"
+"$ guix build --log-file gdb -s aarch64-linux\n"
 "https://@value{SUBSTITUTE-SERVER}/log/@dots{}-gdb-7.10\n"
 msgstr ""
-"$ guix build --log-file gdb -s mips64el-linux\n"
+"$ guix build --log-file gdb -s aarch64-linux\n"
 "https://@value{SUBSTITUTE-SERVER}/log/@dots{}-gdb-7.10\n"
 
 # FUZZY
 # TODO: (MAAV) Log
 #. type: table
-#: doc/guix.texi:8747
+#: doc/guix.texi:10555
 msgid "You can freely access a huge library of build logs!"
 msgstr "¡Puede acceder libremente a una biblioteca inmensa de log de construcción!"
 
 #. type: cindex
-#: doc/guix.texi:8752
+#: doc/guix.texi:10560
 #, no-wrap
 msgid "build failures, debugging"
 msgstr "fallos de construcción, depuración"
 
 #. type: Plain text
-#: doc/guix.texi:8758
+#: doc/guix.texi:10566
 msgid "When defining a new package (@pxref{Defining Packages}), you will probably find yourself spending some time debugging and tweaking the build until it succeeds.  To do that, you need to operate the build commands yourself in an environment as close as possible to the one the build daemon uses."
 msgstr "Cuando esté definiendo un paquete nuevo (@pxref{Defining Packages}), probablemente se encuentre que dedicando algún tiempo a depurar y afinar la construcción hasta obtener un resultado satisfactorio. Para hacerlo, tiene que lanzar manualmente las órdenes de construcción en un entorno tan similar como sea posible al que el daemon de construcción usa."
 
 #. type: Plain text
-#: doc/guix.texi:8763
-msgid "To that end, the first thing to do is to use the @option{--keep-failed} or @option{-K} option of @command{guix build}, which will keep the failed build tree in @file{/tmp} or whatever directory you specified as @code{TMPDIR} (@pxref{Invoking guix build, @code{--keep-failed}})."
-msgstr "Para ello, la primera cosa a hacer es usar la opción @option{--keep-failed} o @option{-K} de @command{guix build}, lo que mantiene el árbol de la construcción fallida en @file{/tmp} o el directorio que especificase con @code{TMPDIR} (@pxref{Invoking guix build, @code{--keep-failed}})."
+#: doc/guix.texi:10571
+msgid "To that end, the first thing to do is to use the @option{--keep-failed} or @option{-K} option of @command{guix build}, which will keep the failed build tree in @file{/tmp} or whatever directory you specified as @env{TMPDIR} (@pxref{Invoking guix build, @option{--keep-failed}})."
+msgstr "Para ello, la primera cosa a hacer es usar la opción @option{--keep-failed} o @option{-K} de @command{guix build}, lo que mantiene el árbol de la construcción fallida en @file{/tmp} o el directorio que especificase con @env{TMPDIR} (@pxref{Invoking guix build, @option{--keep-failed}})."
 
 #. type: Plain text
-#: doc/guix.texi:8769
+#: doc/guix.texi:10577
 msgid "From there on, you can @command{cd} to the failed build tree and source the @file{environment-variables} file, which contains all the environment variable definitions that were in place when the build failed.  So let's say you're debugging a build failure in package @code{foo}; a typical session would look like this:"
-msgstr "De ahí en adelante, puede usar @command{cd} para ir al árbol de la construcción fallida y cargar el fichero @file{environment-variables}, que contiene todas las definiciones de variables de entorno que existían cuando la construcción falló. Digamos que está depurando un fallo en la construcción del paquete @code{foo}; una sesión típica sería así:"
+msgstr "De ahí en adelante, puede usar @command{cd} para ir al árbol de la construcción fallida y cargar el archivo @file{environment-variables}, que contiene todas las definiciones de variables de entorno que existían cuando la construcción falló. Digamos que está depurando un fallo en la construcción del paquete @code{foo}; una sesión típica sería así:"
 
 #. type: example
-#: doc/guix.texi:8776
+#: doc/guix.texi:10584
 #, no-wrap
 msgid ""
 "$ guix build foo -K\n"
@@ -16849,22 +19983,22 @@ msgstr ""
 "$ cd foo-1.2\n"
 
 #. type: Plain text
-#: doc/guix.texi:8780
+#: doc/guix.texi:10588
 msgid "Now, you can invoke commands as if you were the daemon (almost) and troubleshoot your build process."
 msgstr "Ahora puede invocar órdenes (casi) como si fuese el daemon y encontrar los errores en su proceso de construcción."
 
 #. type: Plain text
-#: doc/guix.texi:8786
+#: doc/guix.texi:10594
 msgid "Sometimes it happens that, for example, a package's tests pass when you run them manually but they fail when the daemon runs them.  This can happen because the daemon runs builds in containers where, unlike in our environment above, network access is missing, @file{/bin/sh} does not exist, etc. (@pxref{Build Environment Setup})."
 msgstr "A veces ocurre que, por ejemplo, las pruebas de un paquete pasan cuando las ejecuta manualmente pero fallan cuando el daemon las ejecuta. Esto puede suceder debido a que el daemon construye dentro de contenedores donde, al contrario que en nuestro entorno previo, el acceso a la red no está disponible, @file{/bin/sh} no existe, etc. (@pxref{Build Environment Setup})."
 
 #. type: Plain text
-#: doc/guix.texi:8789
+#: doc/guix.texi:10597
 msgid "In such cases, you may need to run inspect the build process from within a container similar to the one the build daemon creates:"
 msgstr "En esos casos, puede tener que inspeccionar el proceso de construcción desde un contenedor similar al creado por el daemon de construcción:"
 
 #. type: example
-#: doc/guix.texi:8797
+#: doc/guix.texi:10605
 #, no-wrap
 msgid ""
 "$ guix build -K foo\n"
@@ -16882,257 +20016,290 @@ msgstr ""
 "[env]# cd foo-1.2\n"
 
 #. type: Plain text
-#: doc/guix.texi:8806
-msgid "Here, @command{guix environment -C} creates a container and spawns a new shell in it (@pxref{Invoking guix environment}).  The @command{--ad-hoc strace gdb} part adds the @command{strace} and @command{gdb} commands to the container, which would may find handy while debugging.  The @option{--no-grafts} option makes sure we get the exact same environment, with ungrafted packages (@pxref{Security Updates}, for more info on grafts)."
+#: doc/guix.texi:10614
+msgid "Here, @command{guix environment -C} creates a container and spawns a new shell in it (@pxref{Invoking guix environment}).  The @command{--ad-hoc strace gdb} part adds the @command{strace} and @command{gdb} commands to the container, which you may find handy while debugging.  The @option{--no-grafts} option makes sure we get the exact same environment, with ungrafted packages (@pxref{Security Updates}, for more info on grafts)."
 msgstr "Aquí, @command{guix environment -C} crea un contenedor y lanza un shell nuevo en él (@pxref{Invoking guix environment}). El fragmento @command{--ad-hoc strace gdb} añade las ordenes @command{strace} y @command{gdb} al contenedor, las cuales pueden resultar útiles durante la depuración. La opción @option{--no-grafts} asegura que obtenemos exactamente el mismo entorno, con paquetes sin injertos (@pxref{Security Updates}, para más información sobre los injertos)."
 
 #. type: Plain text
-#: doc/guix.texi:8809
+#: doc/guix.texi:10617
 msgid "To get closer to a container like that used by the build daemon, we can remove @file{/bin/sh}:"
 msgstr "Para acercarnos más al contenedor usado por el daemon de construcción, podemos eliminar @file{/bin/sh}:"
 
 #. type: example
-#: doc/guix.texi:8812
+#: doc/guix.texi:10620
 #, no-wrap
 msgid "[env]# rm /bin/sh\n"
 msgstr "[env]# rm /bin/sh\n"
 
 #. type: Plain text
-#: doc/guix.texi:8816
+#: doc/guix.texi:10624
 msgid "(Don't worry, this is harmless: this is all happening in the throw-away container created by @command{guix environment}.)"
 msgstr "(No se preocupe, es inocuo: todo esto ocurre en el contenedor de usar y tirar creado por @command{guix environment})."
 
 #. type: Plain text
-#: doc/guix.texi:8819
+#: doc/guix.texi:10627
 msgid "The @command{strace} command is probably not in the search path, but we can run:"
 msgstr "La orden @command{strace} probablemente no esté en la ruta de búsqueda, pero podemos ejecutar:"
 
 #. type: example
-#: doc/guix.texi:8822
+#: doc/guix.texi:10630
 #, no-wrap
 msgid "[env]# $GUIX_ENVIRONMENT/bin/strace -f -o log make check\n"
 msgstr "[env]# $GUIX_ENVIRONMENT/bin/strace -f -o log make check\n"
 
 #. type: Plain text
-#: doc/guix.texi:8827
+#: doc/guix.texi:10635
 msgid "In this way, not only you will have reproduced the environment variables the daemon uses, you will also be running the build process in a container similar to the one the daemon uses."
 msgstr "De este modo, no solo habrá reproducido las variables de entorno que usa el daemon, también estará ejecutando el proceso de construcción en un contenedor similar al usado por el daemon."
 
 #. type: section
-#: doc/guix.texi:8830
+#: doc/guix.texi:10638
 #, no-wrap
 msgid "Invoking @command{guix edit}"
 msgstr "Invocación de @command{guix edit}"
 
 #. type: command{#1}
-#: doc/guix.texi:8832
+#: doc/guix.texi:10640
 #, no-wrap
 msgid "guix edit"
 msgstr "guix edit"
 
 #. type: cindex
-#: doc/guix.texi:8833
+#: doc/guix.texi:10641
 #, no-wrap
 msgid "package definition, editing"
 msgstr "definición de paquete, edición"
 
 #. type: Plain text
-#: doc/guix.texi:8838
+#: doc/guix.texi:10646
 msgid "So many packages, so many source files! The @command{guix edit} command facilitates the life of users and packagers by pointing their editor at the source file containing the definition of the specified packages.  For instance:"
-msgstr "¡Tantos paquetes, tantos ficheros de fuentes! La orden @command{guix edit} facilita la vida de las usuarias y empaquetadoras apuntando su editor al fichero de fuentes que contiene la definición de los paquetes especificados. Por ejemplo:"
+msgstr "¡Tantos paquetes, tantos archivos de fuentes! La orden @command{guix edit} facilita la vida de las usuarias y empaquetadoras apuntando su editor al archivo de fuentes que contiene la definición de los paquetes especificados. Por ejemplo:"
 
 #. type: example
-#: doc/guix.texi:8841
+#: doc/guix.texi:10649
 #, no-wrap
 msgid "guix edit gcc@@4.9 vim\n"
 msgstr "guix edit gcc@@4.9 vim\n"
 
 #. type: Plain text
-#: doc/guix.texi:8847
-msgid "launches the program specified in the @code{VISUAL} or in the @code{EDITOR} environment variable to view the recipe of GCC@tie{}4.9.3 and that of Vim."
-msgstr "lanza el programa especificado en la variable de entorno @code{VISUAL} o en @code{EDITOR} para ver la receta de GCC@tie{}4.9.3 y la de Vim."
+#: doc/guix.texi:10655
+msgid "launches the program specified in the @env{VISUAL} or in the @env{EDITOR} environment variable to view the recipe of GCC@tie{}4.9.3 and that of Vim."
+msgstr "ejecuta el programa especificado en la variable de entorno @env{VISUAL} o en @env{EDITOR} para ver la receta de GCC@tie{}4.9.3 y la de Vim."
 
 #. type: Plain text
-#: doc/guix.texi:8853
-msgid "If you are using a Guix Git checkout (@pxref{Building from Git}), or have created your own packages on @code{GUIX_PACKAGE_PATH} (@pxref{Package Modules}), you will be able to edit the package recipes.  In other cases, you will be able to examine the read-only recipes for packages currently in the store."
-msgstr "Si está usando una copia de trabajo de Git de Guix (@pxref{Building from Git}), o ha creado sus propios paquetes en @code{GUIX_PACKAGE_PATH} (@pxref{Package Modules}), será capaz de editar las recetas de los paquetes. En otros casos, podrá examinar las recetas en modo de lectura únicamente para paquetes actualmente en el almacén."
+#: doc/guix.texi:10661
+msgid "If you are using a Guix Git checkout (@pxref{Building from Git}), or have created your own packages on @env{GUIX_PACKAGE_PATH} (@pxref{Package Modules}), you will be able to edit the package recipes.  In other cases, you will be able to examine the read-only recipes for packages currently in the store."
+msgstr "Si está usando una copia de trabajo de Git de Guix (@pxref{Building from Git}), o ha creado sus propios paquetes en @env{GUIX_PACKAGE_PATH} (@pxref{Package Modules}), será capaz de editar las recetas de los paquetes. En otros casos, podrá examinar las recetas en modo de lectura únicamente para paquetes actualmente en el almacén."
 
 #. type: Plain text
-#: doc/guix.texi:8858
-msgid "Instead of @code{GUIX_PACKAGE_PATH}, the command-line option @code{--load-path=@var{directory}} (or in short @code{-L @var{directory}}) allows you to add @var{directory} to the front of the package module search path and so make your own packages visible."
-msgstr "En vez de @code{GUIX_PACKAGE_PATH}, la opción de línea de ordenes @code{--load-path=@var{directorio}} (o en versión corta @code{-L @var{directorio}}) le permite añadir @var{directorio} al inicio de la ruta de búsqueda de módulos de paquete y por tanto hacer sus propios paquetes visibles."
+#: doc/guix.texi:10666
+msgid "Instead of @env{GUIX_PACKAGE_PATH}, the command-line option @option{--load-path=@var{directory}} (or in short @option{-L @var{directory}}) allows you to add @var{directory} to the front of the package module search path and so make your own packages visible."
+msgstr "En vez de @env{GUIX_PACKAGE_PATH}, la opción de línea de ordenes @option{--load-path=@var{directorio}} (o en versión corta @option{-L @var{directorio}}) le permite añadir @var{directorio} al inicio de la ruta de búsqueda de módulos de paquete y hacer visibles sus propios paquetes."
 
 #. type: section
-#: doc/guix.texi:8860
+#: doc/guix.texi:10668
 #, no-wrap
 msgid "Invoking @command{guix download}"
 msgstr "Invocación de @command{guix download}"
 
 #. type: command{#1}
-#: doc/guix.texi:8862
+#: doc/guix.texi:10670
 #, no-wrap
 msgid "guix download"
 msgstr "guix download"
 
 #. type: cindex
-#: doc/guix.texi:8863
+#: doc/guix.texi:10671
 #, no-wrap
 msgid "downloading package sources"
 msgstr "descargando las fuentes de paquetes"
 
 #. type: Plain text
-#: doc/guix.texi:8870
+#: doc/guix.texi:10678
 msgid "When writing a package definition, developers typically need to download a source tarball, compute its SHA256 hash, and write that hash in the package definition (@pxref{Defining Packages}).  The @command{guix download} tool helps with this task: it downloads a file from the given URI, adds it to the store, and prints both its file name in the store and its SHA256 hash."
-msgstr "Durante la escritura de una definición de paquete, las desarrolladoras típicamente tienen que descargar un archivador tar de fuentes, calcular su hash SHA256 y escribir ese hash en la definición del paquete (@pxref{Defining Packages}). La herramienta @command{guix download} ayuda con esta tarea: descarga un fichero de la URI proporcionada, lo añade al almacén e imprime tanto su nombre de fichero en el almacén como su hash SHA256."
+msgstr "Durante la escritura de una definición de paquete, las desarrolladoras típicamente tienen que descargar un archivador tar de fuentes, calcular su hash SHA256 y escribir ese hash en la definición del paquete (@pxref{Defining Packages}). La herramienta @command{guix download} ayuda con esta tarea: descarga un archivo de la URI proporcionada, lo añade al almacén e imprime tanto su nombre de archivo en el almacén como su hash SHA256."
 
 #. type: Plain text
-#: doc/guix.texi:8877
+#: doc/guix.texi:10685
 msgid "The fact that the downloaded file is added to the store saves bandwidth: when the developer eventually tries to build the newly defined package with @command{guix build}, the source tarball will not have to be downloaded again because it is already in the store.  It is also a convenient way to temporarily stash files, which may be deleted eventually (@pxref{Invoking guix gc})."
-msgstr "El hecho de que el fichero descargado se añada al almacén ahorra ancho de banda: cuando el desarrollador intenta construir el paquete recién definido con @command{guix build}, el archivador de fuentes no tiene que descargarse de nuevo porque ya está en el almacén. También es una forma conveniente de conservar ficheros temporalmente, que pueden ser borrados en un momento dado (@pxref{Invoking guix gc})."
+msgstr "El hecho de que el archivo descargado se añada al almacén ahorra ancho de banda: cuando el desarrollador intenta construir el paquete recién definido con @command{guix build}, el archivador de fuentes no tiene que descargarse de nuevo porque ya está en el almacén. También es una forma conveniente de conservar archivos temporalmente, que pueden ser borrados en un momento dado (@pxref{Invoking guix gc})."
 
 #. type: Plain text
-#: doc/guix.texi:8885
+#: doc/guix.texi:10693
 msgid "The @command{guix download} command supports the same URIs as used in package definitions.  In particular, it supports @code{mirror://} URIs.  @code{https} URIs (HTTP over TLS) are supported @emph{provided} the Guile bindings for GnuTLS are available in the user's environment; when they are not available, an error is raised.  @xref{Guile Preparations, how to install the GnuTLS bindings for Guile,, gnutls-guile, GnuTLS-Guile}, for more information."
 msgstr "La orden @command{guix download} acepta las mismas URI que las usadas en las definiciones de paquetes. En particular, permite URI @code{mirror://}. Las URI @code{https} (HTTP sobre TLS) se aceptan @emph{cuando} el enlace Guile con GnuTLS está disponible en el entorno de la usuaria; cuando no está disponible se emite un error. @xref{Guile Preparations, how to install the GnuTLS bindings for Guile,, gnutls-guile, GnuTLS-Guile}, para más información."
 
 #. type: Plain text
-#: doc/guix.texi:8890
-msgid "@command{guix download} verifies HTTPS server certificates by loading the certificates of X.509 authorities from the directory pointed to by the @code{SSL_CERT_DIR} environment variable (@pxref{X.509 Certificates}), unless @option{--no-check-certificate} is used."
-msgstr "@command{guix download} verifica los certificados del servidor HTTPS cargando las autoridades X.509 del directorio al que apunta la variable de entorno @code{SSL_CERT_DIR} (@pxref{X.509 Certificates}), a menos que se use @option{--no-check-certificate}."
+#: doc/guix.texi:10698
+msgid "@command{guix download} verifies HTTPS server certificates by loading the certificates of X.509 authorities from the directory pointed to by the @env{SSL_CERT_DIR} environment variable (@pxref{X.509 Certificates}), unless @option{--no-check-certificate} is used."
+msgstr "@command{guix download} verifica los certificados del servidor HTTPS cargando las autoridades X.509 del directorio al que apunta la variable de entorno @env{SSL_CERT_DIR} (@pxref{X.509 Certificates}), a menos que se use @option{--no-check-certificate}."
 
 #. type: Plain text
-#: doc/guix.texi:8892 doc/guix.texi:10311
+#: doc/guix.texi:10700 doc/guix.texi:12208
 msgid "The following options are available:"
 msgstr "Las siguientes opciones están disponibles:"
 
 #. type: item
-#: doc/guix.texi:8894 doc/guix.texi:8933
+#: doc/guix.texi:10702 doc/guix.texi:10746
+#, no-wrap
+msgid "--hash=@var{algorithm}"
+msgstr "--hash=@var{algoritmo}"
+
+#. type: itemx
+#: doc/guix.texi:10703 doc/guix.texi:10747
+#, no-wrap
+msgid "-H @var{algorithm}"
+msgstr "-H @var{algoritmo}"
+
+#. type: table
+#: doc/guix.texi:10706
+msgid "Compute a hash using the specified @var{algorithm}.  @xref{Invoking guix hash}, for more information."
+msgstr "Calcula el resultado del hash usando el @var{algoritmo} proporcionado. @xref{Invoking guix hash}, para más información."
+
+#. type: item
+#: doc/guix.texi:10707 doc/guix.texi:10756
 #, no-wrap
 msgid "--format=@var{fmt}"
 msgstr "--format=@var{fmt}"
 
 #. type: itemx
-#: doc/guix.texi:8895 doc/guix.texi:8934
+#: doc/guix.texi:10708 doc/guix.texi:10757
 #, no-wrap
 msgid "-f @var{fmt}"
 msgstr "-f @var{fmt}"
 
 #. type: table
-#: doc/guix.texi:8898
+#: doc/guix.texi:10711
 msgid "Write the hash in the format specified by @var{fmt}.  For more information on the valid values for @var{fmt}, @pxref{Invoking guix hash}."
 msgstr "Escribe el hash en el formato especificado por @var{fmt}. Para más información sobre los valores aceptados en @var{fmt}, @pxref{Invoking guix hash}."
 
 #. type: item
-#: doc/guix.texi:8899
+#: doc/guix.texi:10712
 #, no-wrap
 msgid "--no-check-certificate"
 msgstr "--no-check-certificate"
 
 #. type: table
-#: doc/guix.texi:8901
+#: doc/guix.texi:10714
 msgid "Do not validate the X.509 certificates of HTTPS servers."
 msgstr "No valida los certificados X.509 de los servidores HTTPS."
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:8905
+#: doc/guix.texi:10718
 msgid "When using this option, you have @emph{absolutely no guarantee} that you are communicating with the authentic server responsible for the given URL, which makes you vulnerable to ``man-in-the-middle'' attacks."
 msgstr "Cuando se usa esta opción, no tiene @emph{absolutamente ninguna garantía} de que está comunicando con el servidor responsable de la URL auténtico, lo que le hace vulnerables a ataques de interceptación (``man-in-the-middle'')."
 
 #. type: item
-#: doc/guix.texi:8906
+#: doc/guix.texi:10719
 #, no-wrap
 msgid "--output=@var{file}"
-msgstr "--output=@var{fichero}"
+msgstr "--output=@var{archivo}"
 
 #. type: itemx
-#: doc/guix.texi:8907
+#: doc/guix.texi:10720
 #, no-wrap
 msgid "-o @var{file}"
-msgstr "-o @var{fichero}"
+msgstr "-o @var{archivo}"
 
 #. type: table
-#: doc/guix.texi:8910
+#: doc/guix.texi:10723
 msgid "Save the downloaded file to @var{file} instead of adding it to the store."
-msgstr "Almacena el fichero descargado en @var{fichero} en vez de añadirlo al almacén."
+msgstr "Almacena el archivo descargado en @var{archivo} en vez de añadirlo al almacén."
 
 #. type: section
-#: doc/guix.texi:8913
+#: doc/guix.texi:10726
 #, no-wrap
 msgid "Invoking @command{guix hash}"
 msgstr "Invocación de @command{guix hash}"
 
 #. type: command{#1}
-#: doc/guix.texi:8915
+#: doc/guix.texi:10728
 #, no-wrap
 msgid "guix hash"
 msgstr "guix hash"
 
 #. type: Plain text
-#: doc/guix.texi:8920
-msgid "The @command{guix hash} command computes the SHA256 hash of a file.  It is primarily a convenience tool for anyone contributing to the distribution: it computes the cryptographic hash of a file, which can be used in the definition of a package (@pxref{Defining Packages})."
-msgstr "La orden @command{guix hash} calcula el hash SHA256 de un fichero. Es principalmente una conveniente herramienta para cualquiera que contribuya a la distribución: calcula el hash criptográfico de un fichero, que puede usarse en la definición de un paquete (@pxref{Defining Packages})."
+#: doc/guix.texi:10733
+msgid "The @command{guix hash} command computes the hash of a file.  It is primarily a convenience tool for anyone contributing to the distribution: it computes the cryptographic hash of a file, which can be used in the definition of a package (@pxref{Defining Packages})."
+msgstr "La orden @command{guix hash} calcula el hash de un archivo. Es principalmente una conveniente herramienta para cualquiera que contribuya a la distribución: calcula el hash criptográfico de un archivo, que puede usarse en la definición de un paquete (@pxref{Defining Packages})."
 
 #. type: example
-#: doc/guix.texi:8925
+#: doc/guix.texi:10738
 #, no-wrap
 msgid "guix hash @var{option} @var{file}\n"
-msgstr "guix hash @var{opciones} @var{fichero}\n"
+msgstr "guix hash @var{opciones} @var{archivo}\n"
 
 #. type: Plain text
-#: doc/guix.texi:8930
+#: doc/guix.texi:10743
 msgid "When @var{file} is @code{-} (a hyphen), @command{guix hash} computes the hash of data read from standard input.  @command{guix hash} has the following options:"
-msgstr "Cuando @var{fichero} es @code{-} (un guión), @command{guix hash} calcula el hash de los datos leídos por la entrada estándar. @command{guix hash} tiene las siguientes opciones:"
+msgstr "Cuando @var{archivo} es @code{-} (un guión), @command{guix hash} calcula el hash de los datos leídos por la entrada estándar. @command{guix hash} tiene las siguientes opciones:"
+
+#. type: table
+#: doc/guix.texi:10750
+msgid "Compute a hash using the specified @var{algorithm}, @code{sha256} by default."
+msgstr "Calcula un hash usando el @var{algoritmo} especificado, @code{sha256} de manera predeterminada."
+
+#. type: table
+#: doc/guix.texi:10755
+msgid "@var{algorithm} must the name of a cryptographic hash algorithm supported by Libgcrypt @i{via} Guile-Gcrypt---e.g., @code{sha512} or @code{sha3-256} (@pxref{Hash Functions,,, guile-gcrypt, Guile-Gcrypt Reference Manual})."
+msgstr "@var{algoritmo} debe ser el nombre de un algoritmo criptográfico de hash implementado por Libgcrypt a través de Guile-Gcrypt---por ejemplo @code{sha512} o @code{sha3-256} (@pxref{Hash Functions,,, guile-gcrypt, Guile-Gcrypt Reference Manual})."
 
 #. type: table
-#: doc/guix.texi:8936
+#: doc/guix.texi:10759
 msgid "Write the hash in the format specified by @var{fmt}."
 msgstr "Escribe el hash en el formato especificado por @var{fmt}."
 
 #. type: table
-#: doc/guix.texi:8939
-msgid "Supported formats: @code{nix-base32}, @code{base32}, @code{base16} (@code{hex} and @code{hexadecimal} can be used as well)."
-msgstr "Los formatos disponibles son: @code{nix-base32}, @code{base32}, @code{base16} (se puede usar también @code{hex} y @code{hexadecimal})."
+#: doc/guix.texi:10762
+msgid "Supported formats: @code{base64}, @code{nix-base32}, @code{base32}, @code{base16} (@code{hex} and @code{hexadecimal} can be used as well)."
+msgstr "Los formatos disponibles son: @code{base64}, @code{nix-base32}, @code{base32}, @code{base16} (se puede usar también @code{hex} y @code{hexadecimal})."
 
 #. type: table
-#: doc/guix.texi:8943
+#: doc/guix.texi:10766
 msgid "If the @option{--format} option is not specified, @command{guix hash} will output the hash in @code{nix-base32}.  This representation is used in the definitions of packages."
 msgstr "Si no se especifica la opción @option{--format}, @command{guix hash} mostrará el hash en @code{nix-base32}. Esta representación es la usada en las definiciones de paquetes."
 
 #. type: table
-#: doc/guix.texi:8947
+#: doc/guix.texi:10770
 msgid "Compute the hash on @var{file} recursively."
-msgstr "Calcula el hash de @var{fichero} recursivamente."
+msgstr "Calcula el hash de @var{archivo} recursivamente."
 
 #. type: table
-#: doc/guix.texi:8956
+#: doc/guix.texi:10779
 msgid "In this case, the hash is computed on an archive containing @var{file}, including its children if it is a directory.  Some of the metadata of @var{file} is part of the archive; for instance, when @var{file} is a regular file, the hash is different depending on whether @var{file} is executable or not.  Metadata such as time stamps has no impact on the hash (@pxref{Invoking guix archive})."
-msgstr "Es este caso el hash se calcula en un archivador que contiene @var{fichero}, incluyendo su contenido si es un directorio. Algunos de los metadatos de @var{fichero} son parte del archivador; por ejemplo, cuando @var{fichero} es un fichero normal, el hash es diferente dependiendo de si @var{fichero} es ejecutable o no. Los metadatos como las marcas de tiempo no influyen en el hash (@pxref{Invoking guix archive})."
+msgstr "Es este caso el hash se calcula en un archivador que contiene @var{archivo}, incluyendo su contenido si es un directorio. Algunos de los metadatos de @var{archivo} son parte del archivador; por ejemplo, cuando @var{archivo} es un archivo normal, el hash es diferente dependiendo de si @var{archivo} es ejecutable o no. Los metadatos como las marcas de tiempo no influyen en el hash (@pxref{Invoking guix archive})."
 
 #. type: item
-#: doc/guix.texi:8957
+#: doc/guix.texi:10780
 #, no-wrap
 msgid "--exclude-vcs"
 msgstr "--exclude-vcs"
 
 #. type: itemx
-#: doc/guix.texi:8958
+#: doc/guix.texi:10781 doc/guix.texi:11700
 #, no-wrap
 msgid "-x"
 msgstr "-x"
 
 #. type: table
-#: doc/guix.texi:8961
-msgid "When combined with @option{--recursive}, exclude version control system directories (@file{.bzr}, @file{.git}, @file{.hg}, etc.)"
+#: doc/guix.texi:10784
+msgid "When combined with @option{--recursive}, exclude version control system directories (@file{.bzr}, @file{.git}, @file{.hg}, etc.)."
 msgstr "Cuando se combina con @option{--recursive}, excluye los directorios del sistema de control de versiones (@file{.bzr}, @file{.git}, @file{.hg}, etc.)."
 
+#. type: vindex
+#: doc/guix.texi:10785
+#, no-wrap
+msgid "git-fetch"
+msgstr "git-fetch"
+
 #. type: table
-#: doc/guix.texi:8966
+#: doc/guix.texi:10789
 msgid "As an example, here is how you would compute the hash of a Git checkout, which is useful when using the @code{git-fetch} method (@pxref{origin Reference}):"
 msgstr "Como un ejemplo, así es como calcularía el hash de una copia de trabajo Git, lo cual es útil cuando se usa el método @code{git-fetch} (@pxref{origin Reference}):"
 
 #. type: example
-#: doc/guix.texi:8971
+#: doc/guix.texi:10794
 #, no-wrap
 msgid ""
 "$ git clone http://example.org/foo.git\n"
@@ -17144,329 +20311,331 @@ msgstr ""
 "$ guix hash -rx .\n"
 
 #. type: cindex
-#: doc/guix.texi:8975 doc/guix.texi:8980
+#: doc/guix.texi:10798 doc/guix.texi:10803
 #, no-wrap
 msgid "Invoking @command{guix import}"
 msgstr "Invocación de @command{guix import}"
 
 #. type: cindex
-#: doc/guix.texi:8977
+#: doc/guix.texi:10800
 #, no-wrap
 msgid "importing packages"
 msgstr "importar paquetes"
 
 #. type: cindex
-#: doc/guix.texi:8978
+#: doc/guix.texi:10801
 #, no-wrap
 msgid "package import"
 msgstr "importación de un paquete"
 
 #. type: cindex
-#: doc/guix.texi:8979
+#: doc/guix.texi:10802
 #, no-wrap
 msgid "package conversion"
 msgstr "conversión de un paquete"
 
 #. type: Plain text
-#: doc/guix.texi:8987
+#: doc/guix.texi:10810
 msgid "The @command{guix import} command is useful for people who would like to add a package to the distribution with as little work as possible---a legitimate demand.  The command knows of a few repositories from which it can ``import'' package metadata.  The result is a package definition, or a template thereof, in the format we know (@pxref{Defining Packages})."
 msgstr "La orden @command{guix import} es útil para quienes desean añadir un paquete a la distribución con el menor trabajo posible---una demanda legítima. La orden conoce algunos repositorios de los que puede ``importar'' metadatos de paquetes. El resultado es una definición de paquete, o una plantilla de ella, en el formato que conocemos (@pxref{Defining Packages})."
 
 #. type: example
-#: doc/guix.texi:8992
+#: doc/guix.texi:10815
 #, no-wrap
 msgid "guix import @var{importer} @var{options}@dots{}\n"
 msgstr "guix import @var{importador} @var{opciones}@dots{}\n"
 
 # FUZZY
 #. type: Plain text
-#: doc/guix.texi:8997
+#: doc/guix.texi:10820
 msgid "@var{importer} specifies the source from which to import package metadata, and @var{options} specifies a package identifier and other options specific to @var{importer}."
 msgstr "@var{importador} especifica la fuente de la que se importan los metadatos del paquete, @var{opciones} especifica un identificador de paquete y otras opciones específicas del @var{importador}."
 
 #. type: Plain text
-#: doc/guix.texi:9001
+#: doc/guix.texi:10824
 msgid "Some of the importers rely on the ability to run the @command{gpgv} command.  For these, GnuPG must be installed and in @code{$PATH}; run @code{guix install gnupg} if needed."
 msgstr "Algunos de los importadores dependen de poder ejecutar la orden @command{gpgv}. Para ello, GnuPG debe estar instalado y en @code{$PATH}; ejecute @code{guix install gnupg} si es necesario."
 
 #. type: Plain text
-#: doc/guix.texi:9003
+#: doc/guix.texi:10826
 msgid "Currently, the available ``importers'' are:"
 msgstr "Actualmente los ``importadores'' disponibles son:"
 
 #. type: item
-#: doc/guix.texi:9005 doc/guix.texi:9536
+#: doc/guix.texi:10828 doc/guix.texi:11357
 #, no-wrap
 msgid "gnu"
 msgstr "gnu"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:9009
+#: doc/guix.texi:10832
 msgid "Import metadata for the given GNU package.  This provides a template for the latest version of that GNU package, including the hash of its source tarball, and its canonical synopsis and description."
 msgstr "Importa los metadatos del paquete GNU seleccionado. Proporciona una plantilla para la última versión de dicho paquete GNU, incluyendo el hash de su archivador tar de fuentes, y su sinopsis y descripción canónica."
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:9012
+#: doc/guix.texi:10835
 msgid "Additional information such as the package dependencies and its license needs to be figured out manually."
 msgstr "Información adicional como las dependencias del paquete y su licencia deben ser deducidas manualmente."
 
 #. type: table
-#: doc/guix.texi:9015
+#: doc/guix.texi:10838
 msgid "For example, the following command returns a package definition for GNU@tie{}Hello:"
 msgstr "Por ejemplo, la siguiente orden devuelve una definición de paquete para GNU@tie{}Hello."
 
 #. type: example
-#: doc/guix.texi:9018
+#: doc/guix.texi:10841
 #, no-wrap
 msgid "guix import gnu hello\n"
 msgstr "guix import gnu hello\n"
 
 #. type: table
-#: doc/guix.texi:9021 doc/guix.texi:9256 doc/guix.texi:9306 doc/guix.texi:9335
+#: doc/guix.texi:10844 doc/guix.texi:11077 doc/guix.texi:11127
+#: doc/guix.texi:11156
 msgid "Specific command-line options are:"
 msgstr "Las opciones específicas de línea de ordenes son:"
 
 #. type: item
-#: doc/guix.texi:9023 doc/guix.texi:9685
+#: doc/guix.texi:10846 doc/guix.texi:11508
 #, no-wrap
 msgid "--key-download=@var{policy}"
 msgstr "--key-download=@var{política}"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:9027
-msgid "As for @code{guix refresh}, specify the policy to handle missing OpenPGP keys when verifying the package signature.  @xref{Invoking guix refresh, @code{--key-download}}."
-msgstr "Como en @code{guix refresh}, especifica la política de tratamiento de las claves OpenPGP no encontradas cuando se verifica la firma del paquete. @xref{Invoking guix refresh, @code{--key-download}}."
+#: doc/guix.texi:10850
+msgid "As for @command{guix refresh}, specify the policy to handle missing OpenPGP keys when verifying the package signature.  @xref{Invoking guix refresh, @option{--key-download}}."
+msgstr "Como en @command{guix refresh}, especifica la política de tratamiento de las claves OpenPGP no encontradas cuando se verifica la firma del paquete. @xref{Invoking guix refresh, @option{--key-download}}."
 
 #. type: item
-#: doc/guix.texi:9029 doc/guix.texi:9030 doc/guix.texi:9554
+#: doc/guix.texi:10852 doc/guix.texi:10853 doc/guix.texi:11377
 #, no-wrap
 msgid "pypi"
 msgstr "pypi"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:9037
+#: doc/guix.texi:10860
 msgid "Import metadata from the @uref{https://pypi.python.org/, Python Package Index}.  Information is taken from the JSON-formatted description available at @code{pypi.python.org} and usually includes all the relevant information, including package dependencies.  For maximum efficiency, it is recommended to install the @command{unzip} utility, so that the importer can unzip Python wheels and gather data from them."
 msgstr "Importa metadatos desde el @uref{https://pypi.python.org/, índice de paquetes Python (PyPI)}. La información se toma de la descripción con formato JSON disponible en @code{pypi.python.org} y habitualmente incluye toda la información relevante, incluyendo las dependencias del paquete. Para una máxima eficiencia, se recomienda la instalación de la utilidad @command{unzip}, de manera que el importador pueda extraer los archivos wheel de Python y obtener datos de ellos."
 
 #. type: table
-#: doc/guix.texi:9040
+#: doc/guix.texi:10863
 msgid "The command below imports metadata for the @code{itsdangerous} Python package:"
 msgstr "La siguiente orden importa los metadatos para el paquete de Python @code{itsdangerous}:"
 
 #. type: example
-#: doc/guix.texi:9043
+#: doc/guix.texi:10866
 #, no-wrap
 msgid "guix import pypi itsdangerous\n"
 msgstr "guix import pypi itsdangerous\n"
 
 #. type: table
-#: doc/guix.texi:9051 doc/guix.texi:9076 doc/guix.texi:9279 doc/guix.texi:9320
-#: doc/guix.texi:9367 doc/guix.texi:9392
+#: doc/guix.texi:10874 doc/guix.texi:10899 doc/guix.texi:11100
+#: doc/guix.texi:11141 doc/guix.texi:11188 doc/guix.texi:11213
 msgid "Traverse the dependency graph of the given upstream package recursively and generate package expressions for all those packages that are not yet in Guix."
 msgstr "Recorre el grafo de dependencias del paquete original proporcionado recursivamente y genera expresiones de paquete para todos aquellos paquetes que no estén todavía en Guix."
 
 #. type: item
-#: doc/guix.texi:9053 doc/guix.texi:9054 doc/guix.texi:9556
+#: doc/guix.texi:10876 doc/guix.texi:10877 doc/guix.texi:11379
 #, no-wrap
 msgid "gem"
 msgstr "gem"
 
 #. type: table
-#: doc/guix.texi:9063
+#: doc/guix.texi:10886
 msgid "Import metadata from @uref{https://rubygems.org/, RubyGems}.  Information is taken from the JSON-formatted description available at @code{rubygems.org} and includes most relevant information, including runtime dependencies.  There are some caveats, however.  The metadata doesn't distinguish between synopses and descriptions, so the same string is used for both fields.  Additionally, the details of non-Ruby dependencies required to build native extensions is unavailable and left as an exercise to the packager."
 msgstr "Importa metadatos desde @uref{https://rubygems.org/, RubyGems}. La información se extrae de la descripción en formato JSON disponible en @code{rubygems.org} e incluye la información más relevante, incluyendo las dependencias en tiempo de ejecución. Hay algunos puntos a tener en cuenta, no obstante. Los metadatos no distinguen entre sinopsis y descripción, por lo que se usa la misma cadena para ambos campos. Adicionalmente, los detalles de las dependencias no-Ruby necesarias para construir extensiones nativas no está disponible y se deja como ejercicio a la empaquetadora."
 
 #. type: table
-#: doc/guix.texi:9065
+#: doc/guix.texi:10888
 msgid "The command below imports metadata for the @code{rails} Ruby package:"
 msgstr "La siguiente orden importa los meta-datos para el paquete de Ruby @code{rails}:"
 
 #. type: example
-#: doc/guix.texi:9068
+#: doc/guix.texi:10891
 #, no-wrap
 msgid "guix import gem rails\n"
 msgstr "guix import gem rails\n"
 
 #. type: item
-#: doc/guix.texi:9078 doc/guix.texi:9552
+#: doc/guix.texi:10901 doc/guix.texi:11375
 #, no-wrap
 msgid "cpan"
 msgstr "cpan"
 
 #. type: cindex
-#: doc/guix.texi:9079
+#: doc/guix.texi:10902
 #, no-wrap
 msgid "CPAN"
 msgstr "CPAN"
 
 #. type: table
-#: doc/guix.texi:9087
+#: doc/guix.texi:10910
 msgid "Import metadata from @uref{https://www.metacpan.org/, MetaCPAN}.  Information is taken from the JSON-formatted metadata provided through @uref{https://fastapi.metacpan.org/, MetaCPAN's API} and includes most relevant information, such as module dependencies.  License information should be checked closely.  If Perl is available in the store, then the @code{corelist} utility will be used to filter core modules out of the list of dependencies."
 msgstr "Importa metadatos desde @uref{https://www.metacpan.org/, MetaCPAN}. La información se extrae de la descripción en formato JSON disponible a través del @uref{https://fastapi.metacpan.org/, API de MetaCPAN} e incluye la información más relevante, como las dependencias de otros módulos. La información de la licencia debe ser comprobada atentamente. Si Perl está disponible en el almacén, se usará la utilidad @code{corelist} para borrar los módulos básicos de la lista de dependencias."
 
 #. type: table
-#: doc/guix.texi:9090
-msgid "The command command below imports metadata for the @code{Acme::Boolean} Perl module:"
-msgstr "La siguiente orden importa los metadatos del módulo Perl @code{Acme::Boolean}:"
+#: doc/guix.texi:10913
+msgid "The command command below imports metadata for the Acme::Boolean Perl module:"
+msgstr "La siguiente orden importa los metadatos del módulo Perl Acme::Boolean:"
 
 #. type: example
-#: doc/guix.texi:9093
+#: doc/guix.texi:10916
 #, no-wrap
 msgid "guix import cpan Acme::Boolean\n"
 msgstr "guix import cpan Acme::Boolean\n"
 
 #. type: item
-#: doc/guix.texi:9095 doc/guix.texi:9548
+#: doc/guix.texi:10918 doc/guix.texi:11371
 #, no-wrap
 msgid "cran"
 msgstr "cran"
 
 #. type: cindex
-#: doc/guix.texi:9096
+#: doc/guix.texi:10919
 #, no-wrap
 msgid "CRAN"
 msgstr "CRAN"
 
 #. type: cindex
-#: doc/guix.texi:9097
+#: doc/guix.texi:10920
 #, no-wrap
 msgid "Bioconductor"
 msgstr "Bioconductor"
 
 #. type: table
-#: doc/guix.texi:9101
+#: doc/guix.texi:10924
 msgid "Import metadata from @uref{https://cran.r-project.org/, CRAN}, the central repository for the @uref{https://r-project.org, GNU@tie{}R statistical and graphical environment}."
 msgstr "Importa metadatos desde @uref{https://cran.r-project.org/, CRAN}, el repositorio central para el @uref{https://r-project.org, entorno estadístico y gráfico GNU@tie{}R}."
 
 #. type: table
-#: doc/guix.texi:9103
-msgid "Information is extracted from the @code{DESCRIPTION} file of the package."
-msgstr "La información se extrae del fichero @code{DESCRIPTION} del paquete."
+#: doc/guix.texi:10926
+msgid "Information is extracted from the @file{DESCRIPTION} file of the package."
+msgstr "La información se extrae del archivo @file{DESCRIPTION} del paquete."
 
 #. type: table
-#: doc/guix.texi:9106
-msgid "The command command below imports metadata for the @code{Cairo} R package:"
-msgstr "La siguiente orden importa los metadatos del paquete de R @code{Cairo}:"
+#: doc/guix.texi:10928
+msgid "The command command below imports metadata for the Cairo R package:"
+msgstr "La siguiente orden importa los metadatos del paquete de R Cairo:"
 
 #. type: example
-#: doc/guix.texi:9109
+#: doc/guix.texi:10931
 #, no-wrap
 msgid "guix import cran Cairo\n"
 msgstr "guix import cran Cairo\n"
 
 #. type: table
-#: doc/guix.texi:9114
-msgid "When @code{--recursive} is added, the importer will traverse the dependency graph of the given upstream package recursively and generate package expressions for all those packages that are not yet in Guix."
-msgstr "Cuando se añade @code{--recursive}, el importador recorrerá el grafo de dependencias del paquete original proporcionado recursivamente y generará expresiones de paquetes para todos aquellos que no estén todavía en Guix."
+#: doc/guix.texi:10936
+msgid "When @option{--recursive} is added, the importer will traverse the dependency graph of the given upstream package recursively and generate package expressions for all those packages that are not yet in Guix."
+msgstr "Cuando se añade @option{--recursive}, el importador recorrerá el grafo de dependencias del paquete original proporcionado recursivamente y generará expresiones de paquetes para todos aquellos que no estén todavía en Guix."
 
 # FUZZY
 # MAAV (TODO): High-throughput
 #. type: table
-#: doc/guix.texi:9119
-msgid "When @code{--archive=bioconductor} is added, metadata is imported from @uref{https://www.bioconductor.org/, Bioconductor}, a repository of R packages for for the analysis and comprehension of high-throughput genomic data in bioinformatics."
-msgstr "Cuando se agrega @code{--archive=bioconductor}, los metadatos se importan de @uref{https://www.bioconductor.org, Bioconductor}, un repositorio de paquetes R para el análisis y comprensión de datos genéticos de alto caudal en bioinformática."
+#: doc/guix.texi:10941
+msgid "When @option{--archive=bioconductor} is added, metadata is imported from @uref{https://www.bioconductor.org/, Bioconductor}, a repository of R packages for the analysis and comprehension of high-throughput genomic data in bioinformatics."
+msgstr "Cuando se usa @option{--archive=bioconductor}, los metadatos se importan de @uref{https://www.bioconductor.org, Bioconductor}, un repositorio de paquetes R para el análisis y comprensión de datos genéticos de alto caudal en bioinformática."
 
 #. type: table
-#: doc/guix.texi:9122
-msgid "Information is extracted from the @code{DESCRIPTION} file contained in the package archive."
-msgstr "La información se extrae del fichero @code{DESCRIPTION} que contiene el archivo del paquete."
+#: doc/guix.texi:10944
+msgid "Information is extracted from the @file{DESCRIPTION} file contained in the package archive."
+msgstr "La información se extrae del archivo @file{DESCRIPTION} contenido en el archivo del paquete."
 
 #. type: table
-#: doc/guix.texi:9125
-msgid "The command below imports metadata for the @code{GenomicRanges} R package:"
-msgstr "La siguiente orden importa los metadatos del paquete de R @code{GenomicRanges}:"
+#: doc/guix.texi:10946
+msgid "The command below imports metadata for the GenomicRanges R package:"
+msgstr "La siguiente orden importa los metadatos del paquete de R GenomicRanges:"
 
 #. type: example
-#: doc/guix.texi:9128
+#: doc/guix.texi:10949
 #, no-wrap
 msgid "guix import cran --archive=bioconductor GenomicRanges\n"
 msgstr "guix import cran --archive=bioconductor GenomicRanges\n"
 
 #. type: table
-#: doc/guix.texi:9133
-msgid "Finally, you can also import R packages that have not yet been published on CRAN or Bioconductor as long as they are in a git repository.  Use @code{--archive=git} followed by the URL of the git repository:"
-msgstr "Por último, también puede importar paquetes de R que no se hayan publicado todavía en CRAN o en Bioconductor siempre que estén en un repositorio git. Use @code{--archive=git} seguido de la URL del repositorio git:"
+#: doc/guix.texi:10954
+msgid "Finally, you can also import R packages that have not yet been published on CRAN or Bioconductor as long as they are in a git repository.  Use @option{--archive=git} followed by the URL of the git repository:"
+msgstr "Por último, también puede importar paquetes de R que no se hayan publicado todavía en CRAN o en Bioconductor siempre que estén en un repositorio git. Use @option{--archive=git} seguido de la URL del repositorio git:"
 
 #. type: example
-#: doc/guix.texi:9136
+#: doc/guix.texi:10957
 #, no-wrap
 msgid "guix import cran --archive=git https://github.com/immunogenomics/harmony\n"
 msgstr "guix import cran --archive=git https://github.com/immunogenomics/harmony\n"
 
 #. type: item
-#: doc/guix.texi:9138
+#: doc/guix.texi:10959
 #, no-wrap
 msgid "texlive"
 msgstr "texlive"
 
 #. type: cindex
-#: doc/guix.texi:9139
+#: doc/guix.texi:10960
 #, no-wrap
 msgid "TeX Live"
 msgstr "Tex Live"
 
 #. type: cindex
-#: doc/guix.texi:9140
+#: doc/guix.texi:10961
 #, no-wrap
 msgid "CTAN"
 msgstr "CTAN"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:9144
+#: doc/guix.texi:10965
 msgid "Import metadata from @uref{https://www.ctan.org/, CTAN}, the comprehensive TeX archive network for TeX packages that are part of the @uref{https://www.tug.org/texlive/, TeX Live distribution}."
 msgstr "Importa metadatos desde @uref{https://www.ctan.org/, CTAN}, la completa red de archivos TeX para paquetes TeX que son parte de la @uref{https://www.tug.org/texlive/, distribución TeX Live}."
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:9149
+#: doc/guix.texi:10970
 msgid "Information about the package is obtained through the XML API provided by CTAN, while the source code is downloaded from the SVN repository of the Tex Live project.  This is done because the CTAN does not keep versioned archives."
 msgstr "La información del paquete se obtiene a través del API XML proporcionado por CTAN, mientras que el código fuente se descarga del repositorio SVN del proyecto TeX Live. Se hace porque CTAN no guarda archivos con versiones."
 
 #. type: table
-#: doc/guix.texi:9152
+#: doc/guix.texi:10973
 msgid "The command command below imports metadata for the @code{fontspec} TeX package:"
 msgstr "La siguiente orden importa los metadatos del paquete de TeX @code{fontspec}:"
 
 #. type: example
-#: doc/guix.texi:9155
+#: doc/guix.texi:10976
 #, no-wrap
 msgid "guix import texlive fontspec\n"
 msgstr "guix import texlive fontspec\n"
 
+# FUZZY FUZZY
 #. type: table
-#: doc/guix.texi:9161
-msgid "When @code{--archive=DIRECTORY} is added, the source code is downloaded not from the @file{latex} sub-directory of the @file{texmf-dist/source} tree in the TeX Live SVN repository, but from the specified sibling directory under the same root."
-msgstr "Cuando se añade @code{--archive=DIRECTORIO}, el código fuente no se descarga del subdirectorio @file{latex} del árbol @file{texmf-dist/source} en el repositorio SVN de Tex Live, sino de el directorio especificado bajo la misma raíz."
+#: doc/guix.texi:10982
+msgid "When @option{--archive=@var{directory}} is added, the source code is downloaded not from the @file{latex} sub-directory of the @file{texmf-dist/source} tree in the TeX Live SVN repository, but from the specified sibling @var{directory} under the same root."
+msgstr "Cuando se añade @option{--archive=@var{directorio}}, el código fuente no se descarga del subdirectorio @file{latex} del árbol @file{texmf-dist/source} en el repositorio SVN de Tex Live, sino de el @var{directorio} especificado bajo esa la misma raíz."
 
 #. type: table
-#: doc/guix.texi:9165
+#: doc/guix.texi:10986
 msgid "The command below imports metadata for the @code{ifxetex} package from CTAN while fetching the sources from the directory @file{texmf/source/generic}:"
 msgstr "La siguiente orden importa los metadatos del paquete @code{ifxetex} de CTAN mientras que obtiene las fuentes del directorio @file{texmf/source/generic}:"
 
 #. type: example
-#: doc/guix.texi:9168
+#: doc/guix.texi:10989
 #, no-wrap
 msgid "guix import texlive --archive=generic ifxetex\n"
 msgstr "guix import texlive --archive=generic ifxetex\n"
 
 #. type: cindex
-#: doc/guix.texi:9171
+#: doc/guix.texi:10992
 #, no-wrap
 msgid "JSON, import"
 msgstr "JSON, importación"
 
 #. type: table
-#: doc/guix.texi:9174
+#: doc/guix.texi:10995
 msgid "Import package metadata from a local JSON file.  Consider the following example package definition in JSON format:"
-msgstr "Importa metadatos de paquetes desde un fichero JSON local. Considere el siguiente ejemplo de definición de paquete en formato JSON:"
+msgstr "Importa metadatos de paquetes desde un archivo JSON local. Considere el siguiente ejemplo de definición de paquete en formato JSON:"
 
 #. type: example
-#: doc/guix.texi:9187
+#: doc/guix.texi:11008
 #, no-wrap
 msgid ""
 "@{\n"
@@ -17494,17 +20663,17 @@ msgstr ""
 "@}\n"
 
 #. type: table
-#: doc/guix.texi:9193
+#: doc/guix.texi:11014
 msgid "The field names are the same as for the @code{<package>} record (@xref{Defining Packages}).  References to other packages are provided as JSON lists of quoted package specification strings such as @code{guile} or @code{guile@@2.0}."
 msgstr "Los nombres de los campos son los mismos que para el registro @code{<package>} (@xref{Defining Packages}). Las referencias a otros paquetes se proporcionan como listas JSON de cadenas de especificación de paquete entrecomilladas como @code{guile} o @code{guile@@2.0}."
 
 #. type: table
-#: doc/guix.texi:9196
+#: doc/guix.texi:11017
 msgid "The importer also supports a more explicit source definition using the common fields for @code{<origin>} records:"
 msgstr "El importador también permite una definición de fuentes más explícita usando los campos comunes de los registros @code{<origin>}:"
 
 #. type: example
-#: doc/guix.texi:9209
+#: doc/guix.texi:11030
 #, no-wrap
 msgid ""
 "@{\n"
@@ -17532,306 +20701,306 @@ msgstr ""
 "@}\n"
 
 #. type: table
-#: doc/guix.texi:9213
+#: doc/guix.texi:11034
 msgid "The command below reads metadata from the JSON file @code{hello.json} and outputs a package expression:"
-msgstr "La siguiente orden importa los metadatos desde el fichero JSON @code{hello.json} y devuelve una expresión de ``package'':"
+msgstr "La siguiente orden importa los metadatos desde el archivo JSON @code{hello.json} y devuelve una expresión de ``package'':"
 
 #. type: example
-#: doc/guix.texi:9216
+#: doc/guix.texi:11037
 #, no-wrap
 msgid "guix import json hello.json\n"
 msgstr "guix import json hello.json\n"
 
 #. type: item
-#: doc/guix.texi:9218
+#: doc/guix.texi:11039
 #, no-wrap
 msgid "nix"
 msgstr "nix"
 
 #. type: table
-#: doc/guix.texi:9227
+#: doc/guix.texi:11048
 msgid "Import metadata from a local copy of the source of the @uref{https://nixos.org/nixpkgs/, Nixpkgs distribution}@footnote{This relies on the @command{nix-instantiate} command of @uref{https://nixos.org/nix/, Nix}.}.  Package definitions in Nixpkgs are typically written in a mixture of Nix-language and Bash code.  This command only imports the high-level package structure that is written in the Nix language.  It normally includes all the basic fields of a package definition."
 msgstr "Importa metadatos desde una copia local de las fuentes de la @uref{https://nixos.org/nixpkgs/, distribución Nixpkgs}@footnote{Esto depende de la orden @command{nix-instantiate} de @uref{https://nixos.org/nix/, Nix}.}. Las definiciones de paquete en Nixpkgs típicamente están escritas en una mezcla de lenguaje Nix y código Bash. Esta orden únicamente importa la estructura de alto nivel del paquete escrita en lenguaje Nix. Normalmente incluye todos los campos básicos de una definición de paquete."
 
 #. type: table
-#: doc/guix.texi:9230
+#: doc/guix.texi:11051
 msgid "When importing a GNU package, the synopsis and descriptions are replaced by their canonical upstream variant."
 msgstr "Cuando se importa un paquete GNU, la sinopsis y la descripción se substituyen por la variante canónica oficial."
 
 #. type: table
-#: doc/guix.texi:9232
+#: doc/guix.texi:11053
 msgid "Usually, you will first need to do:"
 msgstr "Habitualmente, tendrá que ejecutar primero:"
 
 #. type: example
-#: doc/guix.texi:9235
+#: doc/guix.texi:11056
 #, no-wrap
 msgid "export NIX_REMOTE=daemon\n"
 msgstr "export NIX_REMOTE=daemon\n"
 
 #. type: table
-#: doc/guix.texi:9239
+#: doc/guix.texi:11060
 msgid "so that @command{nix-instantiate} does not try to open the Nix database."
 msgstr "de modo que @command{nix-instantiate} no intente abrir la base de datos Nix."
 
 #. type: table
-#: doc/guix.texi:9243
+#: doc/guix.texi:11064
 msgid "As an example, the command below imports the package definition of LibreOffice (more precisely, it imports the definition of the package bound to the @code{libreoffice} top-level attribute):"
 msgstr "Como un ejemplo, la orden siguiente importa la definición de paquete de LibreOffice (más precisamente, importa la definición del paquete asociado al atributo de nivel superior @code{libreoffice}):"
 
 #. type: example
-#: doc/guix.texi:9246
+#: doc/guix.texi:11067
 #, no-wrap
 msgid "guix import nix ~/path/to/nixpkgs libreoffice\n"
 msgstr "guix import nix ~/path/to/nixpkgs libreoffice\n"
 
 #. type: item
-#: doc/guix.texi:9248 doc/guix.texi:9249 doc/guix.texi:9560
+#: doc/guix.texi:11069 doc/guix.texi:11070 doc/guix.texi:11383
 #, no-wrap
 msgid "hackage"
 msgstr "hackage"
 
 #. type: table
-#: doc/guix.texi:9254
+#: doc/guix.texi:11075
 msgid "Import metadata from the Haskell community's central package archive @uref{https://hackage.haskell.org/, Hackage}.  Information is taken from Cabal files and includes all the relevant information, including package dependencies."
-msgstr "Importa metadatos desde el archivo central de paquetes de la comunidad Haskell @uref{https://hackage.haskell.org/, Hackage}. La información se obtiene de ficheros Cabal e incluye toda la información relevante, incluyendo las dependencias del paquete."
+msgstr "Importa metadatos desde el archivo central de paquetes de la comunidad Haskell @uref{https://hackage.haskell.org/, Hackage}. La información se obtiene de archivos Cabal e incluye toda la información relevante, incluyendo las dependencias del paquete."
 
 #. type: item
-#: doc/guix.texi:9258
+#: doc/guix.texi:11079
 #, no-wrap
 msgid "--stdin"
 msgstr "--stdin"
 
 #. type: itemx
-#: doc/guix.texi:9259
+#: doc/guix.texi:11080
 #, no-wrap
 msgid "-s"
 msgstr "-s"
 
 #. type: table
-#: doc/guix.texi:9261
+#: doc/guix.texi:11082
 msgid "Read a Cabal file from standard input."
-msgstr "Lee un fichero Cabal por la entrada estándar."
+msgstr "Lee un archivo Cabal por la entrada estándar."
 
 #. type: item
-#: doc/guix.texi:9261 doc/guix.texi:9308
+#: doc/guix.texi:11082 doc/guix.texi:11129
 #, no-wrap
 msgid "--no-test-dependencies"
 msgstr "--no-test-dependencies"
 
 #. type: table
-#: doc/guix.texi:9264 doc/guix.texi:9311
+#: doc/guix.texi:11085 doc/guix.texi:11132
 msgid "Do not include dependencies required only by the test suites."
 msgstr "No incluye las dependencias necesarias únicamente para las baterías de pruebas."
 
 #. type: item
-#: doc/guix.texi:9264
+#: doc/guix.texi:11085
 #, no-wrap
 msgid "--cabal-environment=@var{alist}"
 msgstr "--cabal-environment=@var{alist}"
 
 #. type: itemx
-#: doc/guix.texi:9265
+#: doc/guix.texi:11086
 #, no-wrap
 msgid "-e @var{alist}"
 msgstr "-e @var{alist}"
 
 #. type: table
-#: doc/guix.texi:9274
+#: doc/guix.texi:11095
 msgid "@var{alist} is a Scheme alist defining the environment in which the Cabal conditionals are evaluated.  The accepted keys are: @code{os}, @code{arch}, @code{impl} and a string representing the name of a flag.  The value associated with a flag has to be either the symbol @code{true} or @code{false}.  The value associated with other keys has to conform to the Cabal file format definition.  The default value associated with the keys @code{os}, @code{arch} and @code{impl} is @samp{linux}, @samp{x86_64} and @samp{ghc}, respectively."
 msgstr "@var{alist} es una lista asociativa Scheme que define el entorno en el que los condicionales Cabal se evalúan. Los valores aceptados son: @code{os}, @code{arch}, @code{impl} y una cadena que representa el nombre de la condición. El valor asociado a la condición tiene que ser o bien el símbolo @code{true} o bien @code{false}. Los valores predeterminados asociados a las claves @code{os}, @code{arch} y @code{impl} son @samp{linux}, @samp{x86_64} y @samp{ghc}, respectivamente."
 
 #. type: table
-#: doc/guix.texi:9284
-msgid "The command below imports metadata for the latest version of the @code{HTTP} Haskell package without including test dependencies and specifying the value of the flag @samp{network-uri} as @code{false}:"
-msgstr "La siguiente orden importa los metadatos de la última versión del paquete Haskell @code{HTTP} sin incluir las dependencias de las pruebas y especificando la opción @samp{network-uri} con valor @code{false}:"
+#: doc/guix.texi:11105
+msgid "The command below imports metadata for the latest version of the HTTP Haskell package without including test dependencies and specifying the value of the flag @samp{network-uri} as @code{false}:"
+msgstr "La siguiente orden importa los metadatos de la última versión del paquete Haskell HTTP sin incluir las dependencias de las pruebas y especificando la opción @samp{network-uri} con valor @code{false}:"
 
 #. type: example
-#: doc/guix.texi:9287
+#: doc/guix.texi:11108
 #, no-wrap
 msgid "guix import hackage -t -e \"'((\\\"network-uri\\\" . false))\" HTTP\n"
 msgstr "guix import hackage -t -e \"'((\\\"network-uri\\\" . false))\" HTTP\n"
 
 #. type: table
-#: doc/guix.texi:9291
+#: doc/guix.texi:11112
 msgid "A specific package version may optionally be specified by following the package name by an at-sign and a version number as in the following example:"
 msgstr "Se puede especificar opcionalmente una versión específica del paquete añadiendo al nombre del paquete una arroba y el número de versión como en el siguiente ejemplo:"
 
 #. type: example
-#: doc/guix.texi:9294
+#: doc/guix.texi:11115
 #, no-wrap
 msgid "guix import hackage mtl@@2.1.3.1\n"
 msgstr "guix import hackage mtl@@2.1.3.1\n"
 
 #. type: item
-#: doc/guix.texi:9296 doc/guix.texi:9297 doc/guix.texi:9562
+#: doc/guix.texi:11117 doc/guix.texi:11118 doc/guix.texi:11385
 #, no-wrap
 msgid "stackage"
 msgstr "stackage"
 
 #. type: table
-#: doc/guix.texi:9304
+#: doc/guix.texi:11125
 msgid "The @code{stackage} importer is a wrapper around the @code{hackage} one.  It takes a package name, looks up the package version included in a long-term support (LTS) @uref{https://www.stackage.org, Stackage} release and uses the @code{hackage} importer to retrieve its metadata.  Note that it is up to you to select an LTS release compatible with the GHC compiler used by Guix."
 msgstr "El importador @code{stackage} es un recubrimiento sobre el de @code{hackage}. Toma un nombre de paquete, busca la versión de paquete incluida en una publicación de la versión de mantenimiento extendido (LTS) @uref{https://www.stackage.org, Stackage} y usa el importador @code{hackage} para obtener sus metadatos. Fíjese que es su decisión seleccionar una publicación LTS compatible con el compilador GHC usado en Guix."
 
 #. type: item
-#: doc/guix.texi:9311
+#: doc/guix.texi:11132
 #, no-wrap
 msgid "--lts-version=@var{version}"
 msgstr "--lts-version=@var{versión}"
 
 #. type: itemx
-#: doc/guix.texi:9312
+#: doc/guix.texi:11133
 #, no-wrap
 msgid "-l @var{version}"
 msgstr "-l @var{versión}"
 
 #. type: table
-#: doc/guix.texi:9315
+#: doc/guix.texi:11136
 msgid "@var{version} is the desired LTS release version.  If omitted the latest release is used."
 msgstr "@var{versión} es la versión LTS de publicación deseada. Si se omite se usa la última publicación."
 
 #. type: table
-#: doc/guix.texi:9324
-msgid "The command below imports metadata for the @code{HTTP} Haskell package included in the LTS Stackage release version 7.18:"
-msgstr "La siguiente orden importa los metadatos del paquete Haskell @code{HTTP} incluido en la versión de publicación LTS de Stackage 7.18:"
+#: doc/guix.texi:11145
+msgid "The command below imports metadata for the HTTP Haskell package included in the LTS Stackage release version 7.18:"
+msgstr "La siguiente orden importa los metadatos del paquete Haskell HTTP incluido en la versión de publicación LTS de Stackage 7.18:"
 
 #. type: example
-#: doc/guix.texi:9327
+#: doc/guix.texi:11148
 #, no-wrap
 msgid "guix import stackage --lts-version=7.18 HTTP\n"
 msgstr "guix import stackage --lts-version=7.18 HTTP\n"
 
 #. type: item
-#: doc/guix.texi:9329 doc/guix.texi:9330 doc/guix.texi:9546
+#: doc/guix.texi:11150 doc/guix.texi:11151 doc/guix.texi:11369
 #, no-wrap
 msgid "elpa"
 msgstr "elpa"
 
 #. type: table
-#: doc/guix.texi:9333
+#: doc/guix.texi:11154
 msgid "Import metadata from an Emacs Lisp Package Archive (ELPA) package repository (@pxref{Packages,,, emacs, The GNU Emacs Manual})."
 msgstr "Importa metadatos desde el repositorio de archivos de paquetes Emacs Lisp (ELPA) (@pxref{Packages,,, emacs, The GNU Emacs Manual})."
 
 #. type: item
-#: doc/guix.texi:9337
+#: doc/guix.texi:11158
 #, no-wrap
 msgid "--archive=@var{repo}"
 msgstr "--archive=@var{repo}"
 
 #. type: itemx
-#: doc/guix.texi:9338
+#: doc/guix.texi:11159
 #, no-wrap
 msgid "-a @var{repo}"
 msgstr "-a @var{repo}"
 
 #. type: table
-#: doc/guix.texi:9342
+#: doc/guix.texi:11163
 msgid "@var{repo} identifies the archive repository from which to retrieve the information.  Currently the supported repositories and their identifiers are:"
 msgstr "@var{repo} identifica el repositorio de archivos del que obtener la información. Actualmente los repositorios disponibles y sus identificadores son:"
 
 #. type: itemize
-#: doc/guix.texi:9346
+#: doc/guix.texi:11167
 msgid "@uref{https://elpa.gnu.org/packages, GNU}, selected by the @code{gnu} identifier.  This is the default."
 msgstr "@uref{https://elpa.gnu.org/packages, GNU}, seleccionado con el identificador @code{gnu}. Utilizado de manera predeterminada."
 
 #. type: itemize
-#: doc/guix.texi:9352
+#: doc/guix.texi:11173
 msgid "Packages from @code{elpa.gnu.org} are signed with one of the keys contained in the GnuPG keyring at @file{share/emacs/25.1/etc/package-keyring.gpg} (or similar) in the @code{emacs} package (@pxref{Package Installation, ELPA package signatures,, emacs, The GNU Emacs Manual})."
 msgstr "Los paquetes de @code{elpa.gnu.org} están firmados con una de las claves que contiene el anillo de claves GnuPG en @file{share/emacs/25.1/etc/package-keyring.gpg} (o similar) en el paquete @code{emacs} (@pxref{Package Installation, ELPA package signatures,, emacs, The GNU Emacs Manual})."
 
 #. type: itemize
-#: doc/guix.texi:9356
+#: doc/guix.texi:11177
 msgid "@uref{https://stable.melpa.org/packages, MELPA-Stable}, selected by the @code{melpa-stable} identifier."
 msgstr "@uref{https://stable.melpa.org/packages, MELPA-Stable}, seleccionado con el identificador @code{melpa-stable}."
 
 #. type: itemize
-#: doc/guix.texi:9360
+#: doc/guix.texi:11181
 msgid "@uref{https://melpa.org/packages, MELPA}, selected by the @code{melpa} identifier."
 msgstr "@uref{https://melpa.org/packages, MELPA}, seleccionado con el identificador @code{melpa}."
 
 #. type: item
-#: doc/guix.texi:9369 doc/guix.texi:9370 doc/guix.texi:9564
+#: doc/guix.texi:11190 doc/guix.texi:11191 doc/guix.texi:11387
 #, no-wrap
 msgid "crate"
 msgstr "crate"
 
 #. type: table
-#: doc/guix.texi:9373
+#: doc/guix.texi:11194
 msgid "Import metadata from the crates.io Rust package repository @uref{https://crates.io, crates.io}, as in this example:"
 msgstr "Importa metadatos desde el repositorio de paquetes Rust @uref{https://crates.io, crates.io}, como en este ejemplo:"
 
 #. type: example
-#: doc/guix.texi:9376
+#: doc/guix.texi:11197
 #, no-wrap
 msgid "guix import crate blake2-rfc\n"
 msgstr "guix import crate blake2-rfc\n"
 
 #. type: table
-#: doc/guix.texi:9379
+#: doc/guix.texi:11200
 msgid "The crate importer also allows you to specify a version string:"
 msgstr "El importador de crate también le permite especificar una cadena de versión:"
 
 #. type: example
-#: doc/guix.texi:9382
+#: doc/guix.texi:11203
 #, no-wrap
 msgid "guix import crate constant-time-eq@@0.1.0\n"
 msgstr "guix import crate constant-time-eq@@0.1.0\n"
 
 #. type: table
-#: doc/guix.texi:9385
+#: doc/guix.texi:11206
 msgid "Additional options include:"
 msgstr "La opciones adicionales incluyen:"
 
 #. type: item
-#: doc/guix.texi:9394
+#: doc/guix.texi:11215
 #, no-wrap
 msgid "opam"
 msgstr "opam"
 
 #. type: cindex
-#: doc/guix.texi:9395
+#: doc/guix.texi:11216
 #, no-wrap
 msgid "OPAM"
 msgstr "OPAM"
 
 #. type: cindex
-#: doc/guix.texi:9396
+#: doc/guix.texi:11217
 #, no-wrap
 msgid "OCaml"
 msgstr "OCaml"
 
 #. type: table
-#: doc/guix.texi:9399
+#: doc/guix.texi:11220
 msgid "Import metadata from the @uref{https://opam.ocaml.org/, OPAM} package repository used by the OCaml community."
 msgstr "Importa metadatos desde el repositorio de paquetes @uref{https://opam.ocaml.org/, OPAM} usado por la comunidad OCaml."
 
 #. type: Plain text
-#: doc/guix.texi:9404
+#: doc/guix.texi:11225
 msgid "The structure of the @command{guix import} code is modular.  It would be useful to have more importers for other package formats, and your help is welcome here (@pxref{Contributing})."
 msgstr "La estructura del código de @command{guix import} es modular. Sería útil tener más importadores para otros formatos de paquetes, y su ayuda es bienvenida aquí (@pxref{Contributing})."
 
 #. type: section
-#: doc/guix.texi:9406
+#: doc/guix.texi:11227
 #, no-wrap
 msgid "Invoking @command{guix refresh}"
 msgstr "Invocación de @command{guix refresh}"
 
 #. type: command{#1}
-#: doc/guix.texi:9408
+#: doc/guix.texi:11229
 #, no-wrap
 msgid "guix refresh"
 msgstr "guix refresh"
 
 #. type: Plain text
-#: doc/guix.texi:9413
+#: doc/guix.texi:11234
 msgid "The primary audience of the @command{guix refresh} command is developers of the GNU software distribution.  By default, it reports any packages provided by the distribution that are outdated compared to the latest upstream version, like this:"
 msgstr "La principal audiencia de @command{guix refresh} son desarrolladoras de la distribución de software GNU. Por defecto, informa de cualquier paquete proporcionado por la distribución que esté anticuado comparado con la última versión oficial, de esta manera:"
 
 # FUZZY
 # TODO: Actualizar cuando se traduzca guix
 #. type: example
-#: doc/guix.texi:9418
+#: doc/guix.texi:11239
 #, no-wrap
 msgid ""
 "$ guix refresh\n"
@@ -17844,14 +21013,14 @@ msgstr ""
 
 # FUZZY
 #. type: Plain text
-#: doc/guix.texi:9422
-msgid "Alternately, one can specify packages to consider, in which case a warning is emitted for packages that lack an updater:"
+#: doc/guix.texi:11243
+msgid "Alternatively, one can specify packages to consider, in which case a warning is emitted for packages that lack an updater:"
 msgstr "De manera alternativa, se pueden especificar los paquetes a considerar, en cuyo caso se emite un aviso para paquetes que carezcan de actualizador:"
 
 # FUZZY
 # TODO: Actualizar cuando se traduzcan las herramientas
 #. type: example
-#: doc/guix.texi:9427
+#: doc/guix.texi:11248
 #, no-wrap
 msgid ""
 "$ guix refresh coreutils guile guile-ssh\n"
@@ -17865,18 +21034,18 @@ msgstr ""
 # FUZZY
 # MAAV: No me gusta esa última exclamación realmente... :(
 #. type: Plain text
-#: doc/guix.texi:9436
+#: doc/guix.texi:11257
 msgid "@command{guix refresh} browses the upstream repository of each package and determines the highest version number of the releases therein.  The command knows how to update specific types of packages: GNU packages, ELPA packages, etc.---see the documentation for @option{--type} below.  There are many packages, though, for which it lacks a method to determine whether a new upstream release is available.  However, the mechanism is extensible, so feel free to get in touch with us to add a new method!"
 msgstr "@command{guix refresh} navega por los repositorios oficiales de cada paquete y determina el número de versión mayor entre las publicaciones encontradas. La orden sabe cómo actualizar tipos específicos de paquetes: paquetes GNU, paquetes ELPA, etc.---vea la documentación de @option{--type} más adelante. Hay muchos paquetes, no obstante, para los que carece de un método para determinar si está disponible una versión oficial posterior. No obstante, el mecanismo es extensible, ¡no tenga problema en contactar con nosotras para añadir un método nuevo!"
 
 #. type: table
-#: doc/guix.texi:9441
+#: doc/guix.texi:11262
 msgid "Consider the packages specified, and all the packages upon which they depend."
 msgstr "Considera los paquetes especificados, y todos los paquetes de los que dependen."
 
 # TODO: Traducción de la interfaz
 #. type: example
-#: doc/guix.texi:9449
+#: doc/guix.texi:11270
 #, no-wrap
 msgid ""
 "$ guix refresh --recursive coreutils\n"
@@ -17894,12 +21063,12 @@ msgstr ""
 "@dots{}\n"
 
 #. type: Plain text
-#: doc/guix.texi:9457
+#: doc/guix.texi:11278
 msgid "Sometimes the upstream name differs from the package name used in Guix, and @command{guix refresh} needs a little help.  Most updaters honor the @code{upstream-name} property in package definitions, which can be used to that effect:"
 msgstr "A veces el nombre oficial es diferente al nombre de paquete usado en Guix, y @command{guix refresh} necesita un poco de ayuda. La mayor parte de los actualizadores utilizan la propiedad @code{upstream-name} en las definiciones de paquetes, que puede usarse para obtener dicho efecto:"
 
 #. type: lisp
-#: doc/guix.texi:9464
+#: doc/guix.texi:11285
 #, no-wrap
 msgid ""
 "(define-public network-manager\n"
@@ -17915,244 +21084,255 @@ msgstr ""
 "    (properties '((upstream-name . \"NetworkManager\")))))\n"
 
 #. type: Plain text
-#: doc/guix.texi:9473
-msgid "When passed @code{--update}, it modifies distribution source files to update the version numbers and source tarball hashes of those package recipes (@pxref{Defining Packages}).  This is achieved by downloading each package's latest source tarball and its associated OpenPGP signature, authenticating the downloaded tarball against its signature using @command{gpgv}, and finally computing its hash---note that GnuPG must be installed and in @code{$PATH}; run @code{guix install gnupg} if needed."
-msgstr "Cuando se proporciona @code{--update}, modifica los ficheros de fuentes de la distribución para actualizar los números de versión y hash de los archivadores tar de fuentes en las recetas de los paquetes (@pxref{Defining Packages}). Esto se consigue con la descarga del último archivador de fuentes del paquete y su firma OpenPGP asociada, seguida de la verificación del archivador descargado y su firma mediante el uso de @command{gpg}, y finalmente con el cálculo de su hash---tenga en cuenta que GnuPG debe estar instalado y en @code{$PATH}; ejecute @code{guix install gnupg} si es necesario."
+#: doc/guix.texi:11294
+msgid "When passed @option{--update}, it modifies distribution source files to update the version numbers and source tarball hashes of those package recipes (@pxref{Defining Packages}).  This is achieved by downloading each package's latest source tarball and its associated OpenPGP signature, authenticating the downloaded tarball against its signature using @command{gpgv}, and finally computing its hash---note that GnuPG must be installed and in @code{$PATH}; run @code{guix install gnupg} if needed."
+msgstr "Cuando se proporciona @option{--update}, modifica los archivos de fuentes de la distribución para actualizar los números de versión y hash de los archivadores tar de fuentes en las recetas de los paquetes (@pxref{Defining Packages}). Esto se consigue con la descarga del último archivador de fuentes del paquete y su firma OpenPGP asociada, seguida de la verificación del archivador descargado y su firma mediante el uso de @command{gpg}, y finalmente con el cálculo de su hash---tenga en cuenta que GnuPG debe estar instalado y en @code{$PATH}; ejecute @code{guix install gnupg} si es necesario."
 
 #. type: Plain text
-#: doc/guix.texi:9479
+#: doc/guix.texi:11300
 msgid "When the public key used to sign the tarball is missing from the user's keyring, an attempt is made to automatically retrieve it from a public key server; when this is successful, the key is added to the user's keyring; otherwise, @command{guix refresh} reports an error."
 msgstr "Cuando la clave pública usada para firmar el archivador no se encuentra en el anillo de claves de la usuaria, se intenta automáticamente su obtención desde un servidor de claves públicas; cuando se encuentra, la clave se añade al anillo de claves de la usuaria; en otro caso, @command{guix refresh} informa de un error."
 
 #. type: Plain text
-#: doc/guix.texi:9481
+#: doc/guix.texi:11302
 msgid "The following options are supported:"
 msgstr "Se aceptan las siguientes opciones:"
 
 #. type: table
-#: doc/guix.texi:9489 doc/guix.texi:10194
+#: doc/guix.texi:11310 doc/guix.texi:12095
 msgid "This is useful to precisely refer to a package, as in this example:"
 msgstr "Es útil para hacer una referencia precisa de un paquete concreto, como en este ejemplo:"
 
 #. type: example
-#: doc/guix.texi:9492
+#: doc/guix.texi:11313
 #, no-wrap
 msgid "guix refresh -l -e '(@@@@ (gnu packages commencement) glibc-final)'\n"
 msgstr "guix refresh -l -e '(@@@@ (gnu packages commencement) glibc-final)'\n"
 
 #. type: table
-#: doc/guix.texi:9496
-msgid "This command lists the dependents of the ``final'' libc (essentially all the packages.)"
+#: doc/guix.texi:11317
+msgid "This command lists the dependents of the ``final'' libc (essentially all the packages)."
 msgstr "Esta orden enumera los paquetes que dependen de la libc ``final'' (esencialmente todos los paquetes)."
 
 #. type: item
-#: doc/guix.texi:9497
+#: doc/guix.texi:11318
 #, no-wrap
 msgid "--update"
 msgstr "--update"
 
 #. type: itemx
-#: doc/guix.texi:9498
+#: doc/guix.texi:11319
 #, no-wrap
 msgid "-u"
 msgstr "-u"
 
 #. type: table
-#: doc/guix.texi:9502
+#: doc/guix.texi:11323
 msgid "Update distribution source files (package recipes) in place.  This is usually run from a checkout of the Guix source tree (@pxref{Running Guix Before It Is Installed}):"
-msgstr "Actualiza los ficheros fuente de la distribución (recetas de paquetes) en su lugar. Esto se ejecuta habitualmente desde una copia de trabajo del árbol de fuentes de Guix (@pxref{Running Guix Before It Is Installed}):"
+msgstr "Actualiza los archivos fuente de la distribución (recetas de paquetes) en su lugar. Esto se ejecuta habitualmente desde una copia de trabajo del árbol de fuentes de Guix (@pxref{Running Guix Before It Is Installed}):"
 
 #. type: example
-#: doc/guix.texi:9505
+#: doc/guix.texi:11326
 #, no-wrap
 msgid "$ ./pre-inst-env guix refresh -s non-core -u\n"
 msgstr "$ ./pre-inst-env guix refresh -s non-core -u\n"
 
 #. type: table
-#: doc/guix.texi:9508
+#: doc/guix.texi:11329
 msgid "@xref{Defining Packages}, for more information on package definitions."
 msgstr "@xref{Defining Packages}, para más información sobre la definición de paquetes."
 
 #. type: item
-#: doc/guix.texi:9509
+#: doc/guix.texi:11330
 #, no-wrap
 msgid "--select=[@var{subset}]"
 msgstr "--select=[@var{subconjunto}]"
 
 #. type: itemx
-#: doc/guix.texi:9510
+#: doc/guix.texi:11331
 #, no-wrap
 msgid "-s @var{subset}"
 msgstr "-s @var{subconjunto}"
 
 #. type: table
-#: doc/guix.texi:9513
+#: doc/guix.texi:11334
 msgid "Select all the packages in @var{subset}, one of @code{core} or @code{non-core}."
 msgstr "Selecciona todos los paquetes en @var{subconjunto}, o bien @code{core} o bien @code{non-core}."
 
 #. type: table
-#: doc/guix.texi:9520
+#: doc/guix.texi:11341
 msgid "The @code{core} subset refers to all the packages at the core of the distribution---i.e., packages that are used to build ``everything else''.  This includes GCC, libc, Binutils, Bash, etc.  Usually, changing one of these packages in the distribution entails a rebuild of all the others.  Thus, such updates are an inconvenience to users in terms of build time or bandwidth used to achieve the upgrade."
 msgstr "El subconjunto @code{core} hace referencia a todos los paquetes en el núcleo de la distribución---es decir, paquetes que se usan para construir ``todo lo demás''. Esto incluye GCC, libc, Binutils, Bash, etc. Habitualmente, cambiar uno de esos paquetes en la distribución conlleva la reconstrucción de todos los demás. Por tanto, esas actualizaciones son una inconveniencia para las usuarias en términos de tiempo de construcción o ancho de banda usado por la actualización."
 
 #. type: table
-#: doc/guix.texi:9524
+#: doc/guix.texi:11345
 msgid "The @code{non-core} subset refers to the remaining packages.  It is typically useful in cases where an update of the core packages would be inconvenient."
 msgstr "El subconjunto @code{non-core} hace referencia a los paquetes restantes. Es típicamente útil en casos donde una actualización de paquetes básicos no sería conveniente."
 
 #. type: table
-#: doc/guix.texi:9529
+#: doc/guix.texi:11350
 msgid "Select all the packages from the manifest in @var{file}. This is useful to check if any packages of the user manifest can be updated."
-msgstr "Selecciona todos los paquetes del manifiesto en @var{fichero}. Es útil para comprobar si algún paquete del manifiesto puede actualizarse."
+msgstr "Selecciona todos los paquetes del manifiesto en @var{archivo}. Es útil para comprobar si algún paquete del manifiesto puede actualizarse."
 
 #. type: item
-#: doc/guix.texi:9530
+#: doc/guix.texi:11351
 #, no-wrap
 msgid "--type=@var{updater}"
 msgstr "--type=@var{actualizador}"
 
 #. type: itemx
-#: doc/guix.texi:9531
+#: doc/guix.texi:11352
 #, no-wrap
 msgid "-t @var{updater}"
 msgstr "-t @var{actualizador}"
 
 #. type: table
-#: doc/guix.texi:9534
+#: doc/guix.texi:11355
 msgid "Select only packages handled by @var{updater} (may be a comma-separated list of updaters).  Currently, @var{updater} may be one of:"
 msgstr "Selecciona únicamente paquetes manejados por @var{actualizador} (puede ser una lista separada por comas de actualizadores). Actualmente, @var{actualizador} puede ser:"
 
 #. type: table
-#: doc/guix.texi:9538
+#: doc/guix.texi:11359
 msgid "the updater for GNU packages;"
 msgstr "el actualizador de paquetes GNU;"
 
 #. type: item
-#: doc/guix.texi:9538
+#: doc/guix.texi:11359
+#, no-wrap
+msgid "savannah"
+msgstr "savannah"
+
+#. type: table
+#: doc/guix.texi:11361
+msgid "the updater for packages hosted at @uref{https://savannah.gnu.org, Savannah};"
+msgstr "el actualizador para paquetes alojados en @uref{https://savannah.gnu.org, Savannah};"
+
+#. type: item
+#: doc/guix.texi:11361
 #, no-wrap
 msgid "gnome"
 msgstr "gnome"
 
 #. type: table
-#: doc/guix.texi:9540
+#: doc/guix.texi:11363
 msgid "the updater for GNOME packages;"
 msgstr "el actualizador para paquetes GNOME;"
 
 #. type: item
-#: doc/guix.texi:9540
+#: doc/guix.texi:11363
 #, no-wrap
 msgid "kde"
 msgstr "kde"
 
 #. type: table
-#: doc/guix.texi:9542
+#: doc/guix.texi:11365
 msgid "the updater for KDE packages;"
 msgstr "el actualizador para paquetes KDE;"
 
 #. type: item
-#: doc/guix.texi:9542
+#: doc/guix.texi:11365
 #, no-wrap
 msgid "xorg"
 msgstr "xorg"
 
 #. type: table
-#: doc/guix.texi:9544
+#: doc/guix.texi:11367
 msgid "the updater for X.org packages;"
 msgstr "el actualizador para paquetes X.org;"
 
 #. type: item
-#: doc/guix.texi:9544
+#: doc/guix.texi:11367
 #, no-wrap
 msgid "kernel.org"
 msgstr "kernel.org"
 
 #. type: table
-#: doc/guix.texi:9546
+#: doc/guix.texi:11369
 msgid "the updater for packages hosted on kernel.org;"
 msgstr "el actualizador para paquetes alojados en kernel.org;"
 
 #. type: table
-#: doc/guix.texi:9548
+#: doc/guix.texi:11371
 msgid "the updater for @uref{https://elpa.gnu.org/, ELPA} packages;"
 msgstr "el actualizador para paquetes @uref{https://elpa.gnu.org/, ELPA};"
 
 #. type: table
-#: doc/guix.texi:9550
+#: doc/guix.texi:11373
 msgid "the updater for @uref{https://cran.r-project.org/, CRAN} packages;"
 msgstr "el actualizador para paquetes @uref{https://cran.r-project.org/, CRAN};"
 
 #. type: item
-#: doc/guix.texi:9550
+#: doc/guix.texi:11373
 #, no-wrap
 msgid "bioconductor"
 msgstr "bioconductor"
 
 #. type: table
-#: doc/guix.texi:9552
+#: doc/guix.texi:11375
 msgid "the updater for @uref{https://www.bioconductor.org/, Bioconductor} R packages;"
 msgstr "el actualizador para paquetes R @uref{https://www.bioconductor.org/, Bioconductor};"
 
 #. type: table
-#: doc/guix.texi:9554
+#: doc/guix.texi:11377
 msgid "the updater for @uref{https://www.cpan.org/, CPAN} packages;"
 msgstr "el actualizador para paquetes @uref{https://www.cpan.org/, CPAN};"
 
 #. type: table
-#: doc/guix.texi:9556
+#: doc/guix.texi:11379
 msgid "the updater for @uref{https://pypi.python.org, PyPI} packages."
 msgstr "el actualizador para paquetes @uref{https://pypi.python.org, PyPI}."
 
 #. type: table
-#: doc/guix.texi:9558
+#: doc/guix.texi:11381
 msgid "the updater for @uref{https://rubygems.org, RubyGems} packages."
 msgstr "el actualizador para paquetes @uref{https://rubygems.org, RubyGems}."
 
 #. type: item
-#: doc/guix.texi:9558
+#: doc/guix.texi:11381
 #, no-wrap
 msgid "github"
 msgstr "github"
 
 #. type: table
-#: doc/guix.texi:9560
+#: doc/guix.texi:11383
 msgid "the updater for @uref{https://github.com, GitHub} packages."
 msgstr "el actualizador para paquetes @uref{https://github.com, GitHub}."
 
 #. type: table
-#: doc/guix.texi:9562
+#: doc/guix.texi:11385
 msgid "the updater for @uref{https://hackage.haskell.org, Hackage} packages."
 msgstr "el actualizador para paquetes @uref{https://hackage.haskell.org, Hackage}."
 
 #. type: table
-#: doc/guix.texi:9564
+#: doc/guix.texi:11387
 msgid "the updater for @uref{https://www.stackage.org, Stackage} packages."
 msgstr "el actualizador para paquetes @uref{https://www.stackage.org, Stackage}."
 
 #. type: table
-#: doc/guix.texi:9566
+#: doc/guix.texi:11389
 msgid "the updater for @uref{https://crates.io, Crates} packages."
 msgstr "el actualizador para paquetes @uref{https://crates.io, Crates}."
 
 #. type: item
-#: doc/guix.texi:9566
+#: doc/guix.texi:11389
 #, no-wrap
 msgid "launchpad"
 msgstr "launchpad"
 
 #. type: table
-#: doc/guix.texi:9568
+#: doc/guix.texi:11391
 msgid "the updater for @uref{https://launchpad.net, Launchpad} packages."
 msgstr "el actualizador para paquetes @uref{https://launchpad.net, Launchpad}."
 
 #. type: table
-#: doc/guix.texi:9572
+#: doc/guix.texi:11395
 msgid "For instance, the following command only checks for updates of Emacs packages hosted at @code{elpa.gnu.org} and for updates of CRAN packages:"
 msgstr "Por ejemplo, la siguiente orden únicamente comprueba actualizaciones de paquetes Emacs alojados en @code{elpa.gnu.org} y actualizaciones de paquetes CRAN:"
 
 # FUZZY
 # TODO: Actualizar cuando se traduzca guix
 #. type: example
-#: doc/guix.texi:9577
+#: doc/guix.texi:11400
 #, no-wrap
 msgid ""
 "$ guix refresh --type=elpa,cran\n"
@@ -18164,80 +21344,80 @@ msgstr ""
 "gnu/packages/emacs.scm:856:13: emacs-auctex would be upgraded from 11.88.6 to 11.88.9\n"
 
 #. type: Plain text
-#: doc/guix.texi:9583
+#: doc/guix.texi:11406
 msgid "In addition, @command{guix refresh} can be passed one or more package names, as in this example:"
 msgstr "Además, @command{guix refresh} puede recibir uno o más nombres de paquetes, como en este ejemplo:"
 
 #. type: example
-#: doc/guix.texi:9586
+#: doc/guix.texi:11409
 #, no-wrap
 msgid "$ ./pre-inst-env guix refresh -u emacs idutils gcc@@4.8\n"
 msgstr "$ ./pre-inst-env guix refresh -u emacs idutils gcc@@4.8\n"
 
 #. type: Plain text
-#: doc/guix.texi:9592
-msgid "The command above specifically updates the @code{emacs} and @code{idutils} packages.  The @code{--select} option would have no effect in this case."
-msgstr "La orden previa actualiza específicamente los paquetes @code{emacs} y @code{idutils}. La opción @code{--select} no tendría efecto en este caso."
+#: doc/guix.texi:11415
+msgid "The command above specifically updates the @code{emacs} and @code{idutils} packages.  The @option{--select} option would have no effect in this case."
+msgstr "La orden previa actualiza específicamente los paquetes @code{emacs} y @code{idutils}. La opción @option{--select} no tendría ningún efecto en este caso."
 
 #. type: Plain text
-#: doc/guix.texi:9597
+#: doc/guix.texi:11420
 msgid "When considering whether to upgrade a package, it is sometimes convenient to know which packages would be affected by the upgrade and should be checked for compatibility.  For this the following option may be used when passing @command{guix refresh} one or more package names:"
 msgstr "Cuando se considera la actualización de un paquete, a veces es conveniente conocer cuantos paquetes se verían afectados por la actualización y su compatibilidad debería comprobarse. Para ello la siguiente opción puede usarse cuando se proporcionan uno o más nombres de paquete a @command{guix refresh}:"
 
 #. type: item
-#: doc/guix.texi:9600
+#: doc/guix.texi:11423
 #, no-wrap
 msgid "--list-updaters"
 msgstr "--list-updaters"
 
 #. type: itemx
-#: doc/guix.texi:9601
+#: doc/guix.texi:11424
 #, no-wrap
 msgid "-L"
 msgstr "-L"
 
 #. type: table
-#: doc/guix.texi:9603
-msgid "List available updaters and exit (see @option{--type} above.)"
+#: doc/guix.texi:11426
+msgid "List available updaters and exit (see @option{--type} above)."
 msgstr "Enumera los actualizadores disponibles y finaliza (vea la opción previa @option{--type})."
 
 #. type: table
-#: doc/guix.texi:9606
+#: doc/guix.texi:11429
 msgid "For each updater, display the fraction of packages it covers; at the end, display the fraction of packages covered by all these updaters."
 msgstr "Para cada actualizador, muestra la fracción de paquetes que cubre; al final muestra la fracción de paquetes cubiertos por todos estos actualizadores."
 
 #. type: item
-#: doc/guix.texi:9607
+#: doc/guix.texi:11430
 #, no-wrap
 msgid "--list-dependent"
 msgstr "--list-dependent"
 
 #. type: itemx
-#: doc/guix.texi:9608 doc/guix.texi:9856
+#: doc/guix.texi:11431 doc/guix.texi:11690
 #, no-wrap
 msgid "-l"
 msgstr "-l"
 
 #. type: table
-#: doc/guix.texi:9611
+#: doc/guix.texi:11434
 msgid "List top-level dependent packages that would need to be rebuilt as a result of upgrading one or more packages."
 msgstr "Enumera los paquetes de nivel superior dependientes que necesitarían una reconstrucción como resultado de la actualización de uno o más paquetes."
 
 # TODO: Check
 #. type: table
-#: doc/guix.texi:9615
+#: doc/guix.texi:11438
 msgid "@xref{Invoking guix graph, the @code{reverse-package} type of @command{guix graph}}, for information on how to visualize the list of dependents of a package."
 msgstr "@xref{Invoking guix graph, el tipo @code{reverse-package} de @command{guix graph}}, para información sobre cómo visualizar la lista de paquetes que dependen de un paquete."
 
 #. type: Plain text
-#: doc/guix.texi:9621
-msgid "Be aware that the @code{--list-dependent} option only @emph{approximates} the rebuilds that would be required as a result of an upgrade.  More rebuilds might be required under some circumstances."
-msgstr "Sea consciente de que la opción @code{--list-dependent} únicamente @emph{aproxima} las reconstrucciones necesarias como resultado de una actualización. Más reconstrucciones pueden ser necesarias bajo algunas circunstancias."
+#: doc/guix.texi:11444
+msgid "Be aware that the @option{--list-dependent} option only @emph{approximates} the rebuilds that would be required as a result of an upgrade.  More rebuilds might be required under some circumstances."
+msgstr "Sea consciente de que la opción @option{--list-dependent} únicamente @emph{aproxima} las reconstrucciones necesarias como resultado de una actualización. Más reconstrucciones pueden ser necesarias bajo algunas circunstancias."
 
 # FUZZY
 # TODO: Actualizar cuando se traduzcan las herramientas
 #. type: example
-#: doc/guix.texi:9626
+#: doc/guix.texi:11449
 #, no-wrap
 msgid ""
 "$ guix refresh --list-dependent flex\n"
@@ -18249,25 +21429,25 @@ msgstr ""
 "hop@@2.4.0 geiser@@0.4 notmuch@@0.18 mu@@0.9.9.5 cflow@@1.4 idutils@@4.6 @dots{}\n"
 
 #. type: Plain text
-#: doc/guix.texi:9630
+#: doc/guix.texi:11453
 msgid "The command above lists a set of packages that could be built to check for compatibility with an upgraded @code{flex} package."
 msgstr "La orden previa enumera un conjunto de paquetes que puede ser construido para comprobar la compatibilidad con una versión actualizada del paquete @code{flex}."
 
 #. type: item
-#: doc/guix.texi:9633
+#: doc/guix.texi:11456
 #, no-wrap
 msgid "--list-transitive"
 msgstr "--list-transitive"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:9635
+#: doc/guix.texi:11458
 msgid "List all the packages which one or more packages depend upon."
 msgstr "Enumera todos los paquetes de los que uno o más paquetes dependen."
 
 # TODO: Traducción de la interfaz
 #. type: example
-#: doc/guix.texi:9640
+#: doc/guix.texi:11463
 #, no-wrap
 msgid ""
 "$ guix refresh --list-transitive flex\n"
@@ -18279,60 +21459,60 @@ msgstr ""
 "bison@@3.0.5 indent@@2.2.10 tar@@1.30 gzip@@1.9 bzip2@@1.0.6 xz@@5.2.4 file@@5.33 @dots{}\n"
 
 #. type: Plain text
-#: doc/guix.texi:9646
+#: doc/guix.texi:11469
 msgid "The command above lists a set of packages which, when changed, would cause @code{flex} to be rebuilt."
 msgstr "La orden previa enumera un conjunto de paquetes que, en caso de cambiar, causarían la reconstrucción de @code{flex}."
 
 #. type: Plain text
-#: doc/guix.texi:9648
+#: doc/guix.texi:11471
 msgid "The following options can be used to customize GnuPG operation:"
 msgstr "Las siguientes opciones pueden usarse para personalizar la operación de GnuPG:"
 
 #. type: item
-#: doc/guix.texi:9651
+#: doc/guix.texi:11474
 #, no-wrap
 msgid "--gpg=@var{command}"
 msgstr "--gpg=@var{orden}"
 
 #. type: table
-#: doc/guix.texi:9654
+#: doc/guix.texi:11477
 msgid "Use @var{command} as the GnuPG 2.x command.  @var{command} is searched for in @code{$PATH}."
 msgstr "Use @var{orden} como la orden de GnuPG 2.x. Se busca @var{orden} en @code{PATH}."
 
 #. type: item
-#: doc/guix.texi:9655
+#: doc/guix.texi:11478
 #, no-wrap
 msgid "--keyring=@var{file}"
-msgstr "--keyring=@var{fichero}"
+msgstr "--keyring=@var{archivo}"
 
 #. type: table
-#: doc/guix.texi:9661
+#: doc/guix.texi:11484
 msgid "Use @var{file} as the keyring for upstream keys.  @var{file} must be in the @dfn{keybox format}.  Keybox files usually have a name ending in @file{.kbx} and the GNU@tie{}Privacy Guard (GPG) can manipulate these files (@pxref{kbxutil, @command{kbxutil},, gnupg, Using the GNU Privacy Guard}, for information on a tool to manipulate keybox files)."
-msgstr "Usa @var{fichero} como el anillo de claves para claves de proveedoras. @var{fichero} debe estar en el @dfn{formato keybox}. Los ficheros Keybox normalmente tienen un nombre terminado en @file{.kbx} y GNU@tie{}Privacy Guard (GPG) puede manipular estos ficheros (@pxref{kbxutil, @command{kbxutil},, gnupg, Using the GNU Privacy Guard}, para información sobre una herramienta para manipular ficheros keybox)."
+msgstr "Usa @var{archivo} como el anillo de claves para claves de proveedoras. @var{archivo} debe estar en el @dfn{formato keybox}. Los archivos Keybox normalmente tienen un nombre terminado en @file{.kbx} y GNU@tie{}Privacy Guard (GPG) puede manipular estos archivos (@pxref{kbxutil, @command{kbxutil},, gnupg, Using the GNU Privacy Guard}, para información sobre una herramienta para manipular archivos keybox)."
 
 #. type: table
-#: doc/guix.texi:9667
-msgid "When this option is omitted, @command{guix refresh} uses @file{~/.config/guix/upstream/trustedkeys.kbx} as the keyring for upstream signing keys.  OpenPGP signatures are checked against keys from this keyring; missing keys are downloaded to this keyring as well (see @option{--key-download} below.)"
+#: doc/guix.texi:11490
+msgid "When this option is omitted, @command{guix refresh} uses @file{~/.config/guix/upstream/trustedkeys.kbx} as the keyring for upstream signing keys.  OpenPGP signatures are checked against keys from this keyring; missing keys are downloaded to this keyring as well (see @option{--key-download} below)."
 msgstr "Cuando se omite esta opción, @command{guix refresh} usa @file{~/.config/guix/upstream/trustedkeys.kbx} como el anillo de claves para las firmas de proveedoras. Las firmas OpenPGP son comprobadas contra claves de este anillo; las claves que falten son descargadas a este anillo de claves también (véase @option{--key-download} a continuación)."
 
 #. type: table
-#: doc/guix.texi:9670
+#: doc/guix.texi:11493
 msgid "You can export keys from your default GPG keyring into a keybox file using commands like this one:"
-msgstr "Puede exportar claves de su anillo de claves GPG predeterminado en un fichero keybox usando órdenes como esta:"
+msgstr "Puede exportar claves de su anillo de claves GPG predeterminado en un archivo keybox usando órdenes como esta:"
 
 #. type: example
-#: doc/guix.texi:9673
+#: doc/guix.texi:11496
 #, no-wrap
 msgid "gpg --export rms@@gnu.org | kbxutil --import-openpgp >> mykeyring.kbx\n"
 msgstr "gpg --export rms@@gnu.org | kbxutil --import-openpgp >> mianillo.kbx\n"
 
 #. type: table
-#: doc/guix.texi:9676
+#: doc/guix.texi:11499
 msgid "Likewise, you can fetch keys to a specific keybox file like this:"
 msgstr "Del mismo modo, puede obtener claves de un archivo keybox específico así:"
 
 #. type: example
-#: doc/guix.texi:9680
+#: doc/guix.texi:11503
 #, no-wrap
 msgid ""
 "gpg --no-default-keyring --keyring mykeyring.kbx \\\n"
@@ -18342,229 +21522,245 @@ msgstr ""
 "  --recv-keys @value{OPENPGP-SIGNING-KEY-ID}\n"
 
 #. type: table
-#: doc/guix.texi:9684
+#: doc/guix.texi:11507
 msgid "@ref{GPG Configuration Options, @option{--keyring},, gnupg, Using the GNU Privacy Guard}, for more information on GPG's @option{--keyring} option."
 msgstr "@ref{GPG Configuration Options, @option{--keyring},, gnupg, Using the GNU Privacy Guard}, para más información sobre la opción @option{--keyring} de GPG."
 
 #. type: table
-#: doc/guix.texi:9688
+#: doc/guix.texi:11511
 msgid "Handle missing OpenPGP keys according to @var{policy}, which may be one of:"
 msgstr "Maneja las claves no encontradas de acuerdo a la @var{política}, que puede ser una de:"
 
 #. type: item
-#: doc/guix.texi:9690 doc/guix.texi:17209
+#: doc/guix.texi:11513 doc/guix.texi:19898
 #, no-wrap
 msgid "always"
 msgstr "always"
 
 #. type: table
-#: doc/guix.texi:9693
+#: doc/guix.texi:11516
 msgid "Always download missing OpenPGP keys from the key server, and add them to the user's GnuPG keyring."
 msgstr "Siempre descarga las claves OpenPGP no encontradas del servidor de claves, y las añade al anillo de claves GnuPG de la usuaria."
 
 #. type: item
-#: doc/guix.texi:9694 doc/guix.texi:17211
+#: doc/guix.texi:11517 doc/guix.texi:19900
 #, no-wrap
 msgid "never"
 msgstr "never"
 
 #. type: table
-#: doc/guix.texi:9696
+#: doc/guix.texi:11519
 msgid "Never try to download missing OpenPGP keys.  Instead just bail out."
 msgstr "Nunca intenta descargar claves OpenPGP no encontradas. Simplemente propaga el error."
 
 #. type: item
-#: doc/guix.texi:9697
+#: doc/guix.texi:11520
 #, no-wrap
 msgid "interactive"
 msgstr "interactive"
 
 #. type: table
-#: doc/guix.texi:9700
+#: doc/guix.texi:11523
 msgid "When a package signed with an unknown OpenPGP key is encountered, ask the user whether to download it or not.  This is the default behavior."
 msgstr "Cuando se encuentra un paquete firmado por una clave OpenPGP desconocida, pregunta a la usuaria si descargarla o no. Este es el comportamiento predeterminado."
 
 #. type: item
-#: doc/guix.texi:9702
+#: doc/guix.texi:11525
 #, no-wrap
 msgid "--key-server=@var{host}"
 msgstr "--key-server=@var{dirección}"
 
 #. type: table
-#: doc/guix.texi:9704
+#: doc/guix.texi:11527
 msgid "Use @var{host} as the OpenPGP key server when importing a public key."
 msgstr "Use @var{dirección} como el servidor de claves OpenPGP cuando se importa una clave pública."
 
 # FUZZY
 #. type: Plain text
-#: doc/guix.texi:9724
-msgid "The @code{github} updater uses the @uref{https://developer.github.com/v3/, GitHub API} to query for new releases.  When used repeatedly e.g.@: when refreshing all packages, GitHub will eventually refuse to answer any further API requests.  By default 60 API requests per hour are allowed, and a full refresh on all GitHub packages in Guix requires more than this.  Authentication with GitHub through the use of an API token alleviates these limits.  To use an API token, set the environment variable @code{GUIX_GITHUB_TOKEN} to a token procured from @uref{https://github.com/settings/tokens} or otherwise."
-msgstr "El actualizador @code{github} usa el @uref{https://developer.github.com/v3/, API GitHub} para consultar nuevas publicaciones. Cuando se usa repetidamente, por ejemplo al comprobar todos los paquetes, GitHub terminará rechazando las peticiones siguientes a través de su API. Por defecto se permiten 60 peticiones por hora a través de su API, y una actualización completa de todos los paquetes de GitHub en Guix necesita más que eso. La identificación con GitHub a través del uso de un identificador de su API (token) amplia esos límites. Para usar un identificador API, establezca la variable de entorno @code{GUIX_GITHUB_TOKEN} al identificador proporcionado por @uref{https://github.com/settings/tokens} u otra fuente."
+#: doc/guix.texi:11547
+msgid "The @code{github} updater uses the @uref{https://developer.github.com/v3/, GitHub API} to query for new releases.  When used repeatedly e.g.@: when refreshing all packages, GitHub will eventually refuse to answer any further API requests.  By default 60 API requests per hour are allowed, and a full refresh on all GitHub packages in Guix requires more than this.  Authentication with GitHub through the use of an API token alleviates these limits.  To use an API token, set the environment variable @env{GUIX_GITHUB_TOKEN} to a token procured from @uref{https://github.com/settings/tokens} or otherwise."
+msgstr "El actualizador @code{github} usa la @uref{https://developer.github.com/v3/, API de GitHub} para consultar nuevas publicaciones. Cuando se usa repetidamente, por ejemplo al comprobar todos los paquetes, GitHub terminará rechazando las peticiones siguientes a través de su API. Por defecto se permiten 60 peticiones por hora a través de su API, y una actualización completa de todos los paquetes de GitHub en Guix necesita más que eso. La identificación con GitHub a través del uso de un identificador de su API (``token'') amplia esos límites. Para usar dicho identificador, establezca la variable de entorno @env{GUIX_GITHUB_TOKEN} al valor obtenido a través de @uref{https://github.com/settings/tokens} o de otra manera."
 
 #. type: section
-#: doc/guix.texi:9727
+#: doc/guix.texi:11550
 #, no-wrap
 msgid "Invoking @command{guix lint}"
 msgstr "Invocación de @command{guix lint}"
 
 #. type: command{#1}
-#: doc/guix.texi:9729
+#: doc/guix.texi:11552
 #, no-wrap
 msgid "guix lint"
 msgstr "guix lint"
 
 #. type: cindex
-#: doc/guix.texi:9730
+#: doc/guix.texi:11553
 #, no-wrap
 msgid "package, checking for errors"
 msgstr "paquete, comprobación de errores"
 
 #. type: Plain text
-#: doc/guix.texi:9736
-msgid "The @command{guix lint} command is meant to help package developers avoid common errors and use a consistent style.  It runs a number of checks on a given set of packages in order to find common mistakes in their definitions.  Available @dfn{checkers} include (see @code{--list-checkers} for a complete list):"
-msgstr "La orden @command{guix lint} sirve para ayudar a las desarrolladoras de paquetes a evitar errores comunes y usar un estilo consistente. Ejecuta un número de comprobaciones en un conjunto de paquetes proporcionado para encontrar errores comunes en sus definiciones. Las @dfn{comprobaciones} disponibles incluyen (véase @code{--list-checkers} para una lista completa):"
+#: doc/guix.texi:11559
+msgid "The @command{guix lint} command is meant to help package developers avoid common errors and use a consistent style.  It runs a number of checks on a given set of packages in order to find common mistakes in their definitions.  Available @dfn{checkers} include (see @option{--list-checkers} for a complete list):"
+msgstr "La orden @command{guix lint} sirve para ayudar a las desarrolladoras de paquetes a evitar errores comunes y usar un estilo consistente. Ejecuta un número de comprobaciones en un conjunto de paquetes proporcionado para encontrar errores comunes en sus definiciones. Las @dfn{comprobaciones} disponibles incluyen (véase @option{--list-checkers} para una lista completa):"
 
 #. type: table
-#: doc/guix.texi:9742
+#: doc/guix.texi:11565
 msgid "Validate certain typographical and stylistic rules about package descriptions and synopses."
 msgstr "Valida ciertas reglas tipográficas y de estilo en la descripción y sinopsis de cada paquete."
 
 #. type: item
-#: doc/guix.texi:9743
+#: doc/guix.texi:11566
 #, no-wrap
 msgid "inputs-should-be-native"
 msgstr "inputs-should-be-native"
 
 #. type: table
-#: doc/guix.texi:9745
+#: doc/guix.texi:11568
 msgid "Identify inputs that should most likely be native inputs."
 msgstr "Identifica entradas que probablemente deberían ser entradas nativas."
 
 #. type: itemx
-#: doc/guix.texi:9748
+#: doc/guix.texi:11571
 #, no-wrap
 msgid "mirror-url"
 msgstr "mirror-url"
 
 #. type: itemx
-#: doc/guix.texi:9749
+#: doc/guix.texi:11572
 #, no-wrap
 msgid "github-url"
 msgstr "github-url"
 
 #. type: itemx
-#: doc/guix.texi:9750
+#: doc/guix.texi:11573
 #, no-wrap
 msgid "source-file-name"
 msgstr "source-file-name"
 
 #. type: table
-#: doc/guix.texi:9757
+#: doc/guix.texi:11580
 msgid "Probe @code{home-page} and @code{source} URLs and report those that are invalid.  Suggest a @code{mirror://} URL when applicable.  If the @code{source} URL redirects to a GitHub URL, recommend usage of the GitHub URL.  Check that the source file name is meaningful, e.g.@: is not just a version number or ``git-checkout'', without a declared @code{file-name} (@pxref{origin Reference})."
-msgstr "Comprueba las URL @code{home-page} y @code{source} e informa aquellas que no sean válidas. Sugiere una URL @code{mirror://} cuando sea aplicable. Si la URL @code{source} redirecciona a una URL GitHub, recomienda el uso de la URL GitHub. Comprueba que el nombre de fichero de las fuentes es significativo, por ejemplo que no es simplemente un número de versión o revisión git, sin un nombre @code{file-name} declarado (@pxref{origin Reference})."
+msgstr "Comprueba las URL @code{home-page} y @code{source} e informa aquellas que no sean válidas. Sugiere una URL @code{mirror://} cuando sea aplicable. Si la URL @code{source} redirecciona a una URL GitHub, recomienda el uso de la URL GitHub. Comprueba que el nombre de archivo de las fuentes es significativo, por ejemplo que no es simplemente un número de versión o revisión git, sin un nombre @code{file-name} declarado (@pxref{origin Reference})."
 
 #. type: item
-#: doc/guix.texi:9758
+#: doc/guix.texi:11581
 #, no-wrap
 msgid "source-unstable-tarball"
 msgstr "source-unstable-tarball"
 
 #. type: table
-#: doc/guix.texi:9762
+#: doc/guix.texi:11585
 msgid "Parse the @code{source} URL to determine if a tarball from GitHub is autogenerated or if it is a release tarball.  Unfortunately GitHub's autogenerated tarballs are sometimes regenerated."
 msgstr "Analiza la URL @code{source} para determinar si un archivador tar de GitHub se genera de forma automática o es una publicación oficial. Desafortunadamente los archivadores tar de GitHub a veces se regeneran."
 
+#. type: table
+#: doc/guix.texi:11589
+msgid "Check that the derivation of the given packages can be successfully computed for all the supported systems (@pxref{Derivations})."
+msgstr "Comprueba que la derivación de los paquetes proporcionados pueden ser calculadas de manera satisfactoria en todos los sistemas implementados (@pxref{Derivations})."
+
+#. type: item
+#: doc/guix.texi:11590
+#, no-wrap
+msgid "profile-collisions"
+msgstr "profile-collisions"
+
+#. type: table
+#: doc/guix.texi:11596
+msgid "Check whether installing the given packages in a profile would lead to collisions.  Collisions occur when several packages with the same name but a different version or a different store file name are propagated.  @xref{package Reference, @code{propagated-inputs}}, for more information on propagated inputs."
+msgstr "Comprueba si la instalación de los paquetes proporcionados en el perfil provocaría colisiones. Las colisiones se producen cuando se propagan varios paquetes con el mismo nombre pero una versión diferente o un nombre de archivo del almacén.  @xref{package Reference, @code{propagated-inputs}}, para más información sobre entradas propagadas."
+
 #. type: item
-#: doc/guix.texi:9763
+#: doc/guix.texi:11597
 #, no-wrap
 msgid "archival"
 msgstr "archival"
 
 #. type: cindex
-#: doc/guix.texi:9764
+#: doc/guix.texi:11598
 #, no-wrap
 msgid "Software Heritage, source code archive"
 msgstr "Software Heritage, archivo de código fuente"
 
 #. type: cindex
-#: doc/guix.texi:9765
+#: doc/guix.texi:11599
 #, no-wrap
 msgid "archival of source code, Software Heritage"
 msgstr "archivado de código fuente, Software Heritage"
 
 #. type: table
-#: doc/guix.texi:9768
+#: doc/guix.texi:11602
 msgid "Checks whether the package's source code is archived at @uref{https://www.softwareheritage.org, Software Heritage}."
 msgstr "Comprueba si el código fuente del paquete se encuentra archivado en @uref{https://www.softwareheritage.org, Software Heritage}."
 
 # FUZZY FUZZY
 #. type: table
-#: doc/guix.texi:9776
+#: doc/guix.texi:11610
 msgid "When the source code that is not archived comes from a version-control system (VCS)---e.g., it's obtained with @code{git-fetch}, send Software Heritage a ``save'' request so that it eventually archives it.  This ensures that the source will remain available in the long term, and that Guix can fall back to Software Heritage should the source code disappear from its original host.  The status of recent ``save'' requests can be @uref{https://archive.softwareheritage.org/save/#requests, viewed on-line}."
 msgstr "Cuando el código fuente que no se encuentra archivado proviene de un sistema de control de versiones@footnote{VCS en inglés}---por ejemplo, se ha obtenido con @code{git-fetch}---, envía a Software Heritage una petición de almacenamiento de manera que se archive cuando sea posible. Esto asegura que las fuentes permanecen disponibles a largo plazo, y que Guix puede usar Software Heritage como respaldo en caso de que el código fuente desapareciese de la máquina que lo almacenaba originalmente. El estado de las peticiones de almacenamiento recientes puede @uref{https://archive.softwareheritage.org/save/#requests, verse en su página web}."
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:9781
+#: doc/guix.texi:11615
 msgid "When source code is a tarball obtained with @code{url-fetch}, simply print a message when it is not archived.  As of this writing, Software Heritage does not allow requests to save arbitrary tarballs; we are working on ways to ensure that non-VCS source code is also archived."
-msgstr "Cuando el código fuente es un fichero comprimido que se obtiene con @code{url-fetch}, simplemente imprime un mensaje cuando no se encuentra archivado. En el momento de la escritura de este documento, Software Heritage no permite el almacenamiento de ficheros comprimidos arbitrarios; estamos trabajando en formas de asegurar que también se archive el código que no se encuentra bajo control de versiones."
+msgstr "Cuando el código fuente es un archivo comprimido que se obtiene con @code{url-fetch}, simplemente imprime un mensaje cuando no se encuentra archivado. En el momento de la escritura de este documento, Software Heritage no permite el almacenamiento de archivos comprimidos arbitrarios; estamos trabajando en formas de asegurar que también se archive el código que no se encuentra bajo control de versiones."
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:9787
+#: doc/guix.texi:11621
 msgid "Software Heritage @uref{https://archive.softwareheritage.org/api/#rate-limiting, limits the request rate per IP address}.  When the limit is reached, @command{guix lint} prints a message and the @code{archival} checker stops doing anything until that limit has been reset."
 msgstr "Software Heritage @uref{https://archive.softwareheritage.org/api/#rate-limiting, limita la tasa de peticiones por dirección IP}. Cuando se alcanza dicho límite, @command{guix lint} imprime un mensaje y la comprobación @code{archival} no hace nada hasta que dicho límite se reinicie."
 
 #. type: item
-#: doc/guix.texi:9788
+#: doc/guix.texi:11622
 #, no-wrap
 msgid "cve"
 msgstr "cve"
 
 #. type: cindex
-#: doc/guix.texi:9789 doc/guix.texi:28113
+#: doc/guix.texi:11623 doc/guix.texi:32372
 #, no-wrap
 msgid "security vulnerabilities"
 msgstr "vulnerabilidades de seguridad"
 
 #. type: cindex
-#: doc/guix.texi:9790
+#: doc/guix.texi:11624
 #, no-wrap
 msgid "CVE, Common Vulnerabilities and Exposures"
 msgstr "CVE, vulnerabilidades y exposiciones comunes"
 
 #. type: table
-#: doc/guix.texi:9795
+#: doc/guix.texi:11629
 msgid "Report known vulnerabilities found in the Common Vulnerabilities and Exposures (CVE) databases of the current and past year @uref{https://nvd.nist.gov/vuln/data-feeds, published by the US NIST}."
 msgstr "Informa de vulnerabilidades encontradas en las bases de datos de vulnerabilidades y exposiciones comunes (CVE) del año actual y el pasado @uref{https://nvd.nist.gov/vuln/data-feeds, publicadas por el NIST de EEUU}."
 
 #. type: table
-#: doc/guix.texi:9797
+#: doc/guix.texi:11631
 msgid "To view information about a particular vulnerability, visit pages such as:"
 msgstr "Para ver información acerca de una vulnerabilidad particular, visite páginas como:"
 
 #. type: indicateurl{#1}
-#: doc/guix.texi:9801
+#: doc/guix.texi:11635
 msgid "https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-YYYY-ABCD"
 msgstr "https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-YYYY-ABCD"
 
 #. type: indicateurl{#1}
-#: doc/guix.texi:9803
+#: doc/guix.texi:11637
 msgid "https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-YYYY-ABCD"
 msgstr "https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-YYYY-ABCD"
 
 #. type: table
-#: doc/guix.texi:9808
+#: doc/guix.texi:11642
 msgid "where @code{CVE-YYYY-ABCD} is the CVE identifier---e.g., @code{CVE-2015-7554}."
 msgstr "donde @code{CVE-YYYY-ABCD} es el identificador CVE---por ejemplo, @code{CVE-2015-7554}."
 
 #. type: table
-#: doc/guix.texi:9813
+#: doc/guix.texi:11647
 msgid "Package developers can specify in package recipes the @uref{https://nvd.nist.gov/products/cpe,Common Platform Enumeration (CPE)} name and version of the package when they differ from the name or version that Guix uses, as in this example:"
 msgstr "Las desarrolladoras de paquetes pueden especificar en las recetas del paquete el nombre y versión en la @uref{https://nvd.nist.gov/cpe.cfm, plataforma común de enumeración (CPE)} del paquete cuando el nombre o versión que usa Guix son diferentes, como en este ejemplo:"
 
 #. type: lisp
-#: doc/guix.texi:9821
+#: doc/guix.texi:11655
 #, no-wrap
 msgid ""
 "(package\n"
@@ -18582,12 +21778,12 @@ msgstr ""
 "                (cpe-version . \"2.3\"))))\n"
 
 #. type: table
-#: doc/guix.texi:9828
+#: doc/guix.texi:11662
 msgid "Some entries in the CVE database do not specify which version of a package they apply to, and would thus ``stick around'' forever.  Package developers who found CVE alerts and verified they can be ignored can declare them as in this example:"
 msgstr "Algunas entradas en la base de datos CVE no especifican a qué versión del paquete hacen referencia, y por lo tanto ``permanecen visibles'' para siempre. Las desarrolladoras de paquetes que encuentren alertas CVE y verifiquen que pueden ignorarse, pueden declararlas como en este ejemplo:"
 
 #. type: lisp
-#: doc/guix.texi:9838
+#: doc/guix.texi:11672
 #, no-wrap
 msgid ""
 "(package\n"
@@ -18610,93 +21806,115 @@ msgstr ""
 "                                    \"CVE-2011-5244\")))))\n"
 
 #. type: item
-#: doc/guix.texi:9840
+#: doc/guix.texi:11674
 #, no-wrap
 msgid "formatting"
 msgstr "formatting"
 
 #. type: table
-#: doc/guix.texi:9843
+#: doc/guix.texi:11677
 msgid "Warn about obvious source code formatting issues: trailing white space, use of tabulations, etc."
 msgstr "Avisa de problemas de formato obvios en el código fuente: espacios en blanco al final de las líneas, uso de tabuladores, etc."
 
 #. type: example
-#: doc/guix.texi:9849
+#: doc/guix.texi:11683
 #, no-wrap
 msgid "guix lint @var{options} @var{package}@dots{}\n"
 msgstr "guix lint @var{opciones} @var{paquete}@dots{}\n"
 
 #. type: Plain text
-#: doc/guix.texi:9853
+#: doc/guix.texi:11687
 msgid "If no package is given on the command line, then all packages are checked.  The @var{options} may be zero or more of the following:"
 msgstr "Si no se proporciona ningún paquete en la linea de órdenes, todos los paquetes se comprueban. Las @var{opciones} pueden ser cero o más de las siguientes:"
 
 #. type: item
-#: doc/guix.texi:9855
+#: doc/guix.texi:11689
 #, no-wrap
 msgid "--list-checkers"
 msgstr "--list-checkers"
 
 #. type: table
-#: doc/guix.texi:9859
+#: doc/guix.texi:11693
 msgid "List and describe all the available checkers that will be run on packages and exit."
 msgstr "Enumera y describe todas las comprobaciones disponibles que se ejecutarán sobre los paquetes y finaliza."
 
 #. type: item
-#: doc/guix.texi:9860
+#: doc/guix.texi:11694
 #, no-wrap
 msgid "--checkers"
 msgstr "--checkers"
 
 #. type: itemx
-#: doc/guix.texi:9861
+#: doc/guix.texi:11695
 #, no-wrap
 msgid "-c"
 msgstr "-c"
 
 #. type: table
-#: doc/guix.texi:9864
-msgid "Only enable the checkers specified in a comma-separated list using the names returned by @code{--list-checkers}."
-msgstr "Únicamente activa las comprobaciones especificadas en una lista separada por comas que use los nombres devueltos por @code{--list-checkers}."
+#: doc/guix.texi:11698
+msgid "Only enable the checkers specified in a comma-separated list using the names returned by @option{--list-checkers}."
+msgstr "Únicamente activa las comprobaciones especificadas en una lista separada por comas que use los nombres devueltos por @option{--list-checkers}."
+
+#. type: item
+#: doc/guix.texi:11699
+#, no-wrap
+msgid "--exclude"
+msgstr "--exclude"
+
+#. type: table
+#: doc/guix.texi:11703
+msgid "Only disable the checkers specified in a comma-separated list using the names returned by @option{--list-checkers}."
+msgstr "Únicamente desactiva las comprobaciones especificadas en una lista separada por comas que use los nombres devueltos por @option{--list-checkers}."
+
+#. type: item
+#: doc/guix.texi:11704
+#, no-wrap
+msgid "--no-network"
+msgstr "--no-network"
+
+#. type: table
+#: doc/guix.texi:11707
+msgid "Only enable the checkers that do not depend on Internet access."
+msgstr "Activa únicamente las comprobaciones que no dependen del acceso a internet."
 
 #. type: section
-#: doc/guix.texi:9876
+#: doc/guix.texi:11719
 #, no-wrap
 msgid "Invoking @command{guix size}"
 msgstr "Invocación de @command{guix size}"
 
 #. type: code{#1}
-#: doc/guix.texi:9878 doc/guix.texi:27210
+#: doc/guix.texi:11721 doc/guix.texi:31374
 #, no-wrap
 msgid "size"
 msgstr "size"
 
 #. type: cindex
-#: doc/guix.texi:9879
+#: doc/guix.texi:11722
 #, no-wrap
 msgid "package size"
 msgstr "tamaño del paquete"
 
 #. type: command{#1}
-#: doc/guix.texi:9881
+#: doc/guix.texi:11724
 #, no-wrap
 msgid "guix size"
 msgstr "guix size"
 
 #. type: Plain text
-#: doc/guix.texi:9888
+#: doc/guix.texi:11731
 msgid "The @command{guix size} command helps package developers profile the disk usage of packages.  It is easy to overlook the impact of an additional dependency added to a package, or the impact of using a single output for a package that could easily be split (@pxref{Packages with Multiple Outputs}).  Such are the typical issues that @command{guix size} can highlight."
 msgstr "La orden @command{guix size} ayuda a las desarrolladoras de paquetes a perfilar el uso de disco de los paquetes. Es fácil pasar por encima el impacto que produce añadir una dependencia adicional a un paquete, o el impacto del uso de una salida única para un paquete que puede ser dividido fácilmente (@pxref{Packages with Multiple Outputs}). Estos son los problemas típicos que @command{guix size} puede resaltar."
 
 #. type: Plain text
-#: doc/guix.texi:9893
+#: doc/guix.texi:11736
 msgid "The command can be passed one or more package specifications such as @code{gcc@@4.8} or @code{guile:debug}, or a file name in the store.  Consider this example:"
-msgstr "Se le pueden proporcionar una o más especificaciones de paquete como @code{gcc@@4.8} o @code{guile:debug}, o un nombre de fichero en el almacén. Considere este ejemplo:"
+msgstr "Se le pueden proporcionar una o más especificaciones de paquete como @code{gcc@@4.8} o @code{guile:debug}, o un nombre de archivo en el almacén. Considere este ejemplo:"
 
 # FUZZY
 # TODO: Actualizar cuando se traduzca guix
 #. type: example
-#: doc/guix.texi:9906
+#: doc/guix.texi:11749
 #, no-wrap
 msgid ""
 "$ guix size coreutils\n"
@@ -18724,12 +21942,12 @@ msgstr ""
 "total: 78.9 MiB\n"
 
 #. type: Plain text
-#: doc/guix.texi:9912
+#: doc/guix.texi:11755
 msgid "The store items listed here constitute the @dfn{transitive closure} of Coreutils---i.e., Coreutils and all its dependencies, recursively---as would be returned by:"
 msgstr "Los elementos del almacén enumerados aquí constituyen la @dfn{clausura transitiva} de Coreutils---es decir, Coreutils y todas sus dependencias, recursivamente---como sería devuelto por:"
 
 #. type: example
-#: doc/guix.texi:9915
+#: doc/guix.texi:11758
 #, no-wrap
 msgid "$ guix gc -R /gnu/store/@dots{}-coreutils-8.23\n"
 msgstr "$ guix gc -R /gnu/store/@dots{}-coreutils-8.23\n"
@@ -18737,34 +21955,45 @@ msgstr "$ guix gc -R /gnu/store/@dots{}-coreutils-8.23\n"
 # FUZZY
 # TODO: Actualizar cuando se traduzca guix
 #. type: Plain text
-#: doc/guix.texi:9923
+#: doc/guix.texi:11766
 msgid "Here the output shows three columns next to store items.  The first column, labeled ``total'', shows the size in mebibytes (MiB) of the closure of the store item---that is, its own size plus the size of all its dependencies.  The next column, labeled ``self'', shows the size of the item itself.  The last column shows the ratio of the size of the item itself to the space occupied by all the items listed here."
 msgstr "Aquí la salida muestra tres columnas junto a los elementos del almacén. La primera columna, etiquetada ``total'', muestra el tamaño en mebibytes (MiB) de la clausura del elemento del almacén---es decir, su propio tamaño sumado al tamaño de todas sus dependencias. La siguiente columna, etiquetada ``self'', muestra el tamaño del elemento en sí. La última columna muestra la relación entre el tamaño del elemento en sí frente al espacio ocupado por todos los elementos enumerados."
 
 #. type: Plain text
-#: doc/guix.texi:9929
+#: doc/guix.texi:11772
 msgid "In this example, we see that the closure of Coreutils weighs in at 79@tie{}MiB, most of which is taken by libc and GCC's run-time support libraries.  (That libc and GCC's libraries represent a large fraction of the closure is not a problem @i{per se} because they are always available on the system anyway.)"
 msgstr "En este ejemplo, vemos que la clausura de Coreutils ocupa 79@tie{}MiB, cuya mayor parte son libc y las bibliotecas auxiliares de GCC para tiempo de ejecución. (Que libc y las bibliotecas de GCC representen una fracción grande de la clausura no es un problema en sí, puesto que siempre están disponibles en el sistema de todas maneras)."
 
 #. type: Plain text
-#: doc/guix.texi:9938
+#: doc/guix.texi:11775
+msgid "Since the command also accepts store file names, assessing the size of a build result is straightforward:"
+msgstr "Puesto que la orden también acepta nombres de archivo del almacén, comprobar el tamaño del resultado de una construcción es una operación directa:"
+
+#. type: example
+#: doc/guix.texi:11778
+#, no-wrap
+msgid "guix size $(guix system build config.scm)\n"
+msgstr "guix size $(guix system build config.scm)\n"
+
+#. type: Plain text
+#: doc/guix.texi:11788
 msgid "When the package(s) passed to @command{guix size} are available in the store@footnote{More precisely, @command{guix size} looks for the @emph{ungrafted} variant of the given package(s), as returned by @code{guix build @var{package} --no-grafts}.  @xref{Security Updates}, for information on grafts.}, @command{guix size} queries the daemon to determine its dependencies, and measures its size in the store, similar to @command{du -ms --apparent-size} (@pxref{du invocation,,, coreutils, GNU Coreutils})."
 msgstr "Cuando los paquetes pasados a @command{guix size} están disponibles en el almacén@footnote{Más precisamente, @command{guix size} busca la variante @emph{sin injertos} de los paquetes, como el devuelto por @code{guix build @var{paquete} --no-grafts}. @xref{Security Updates}, para información sobre injertos.} consultando al daemon para determinar sus dependencias, y mide su tamaño en el almacén, de forma similar a @command{du -ms --apparent-size} (@pxref{du invocation,,, coreutils, GNU Coreutils})."
 
 #. type: Plain text
-#: doc/guix.texi:9943
+#: doc/guix.texi:11793
 msgid "When the given packages are @emph{not} in the store, @command{guix size} reports information based on the available substitutes (@pxref{Substitutes}).  This makes it possible it to profile disk usage of store items that are not even on disk, only available remotely."
 msgstr "Cuando los paquetes proporcionados @emph{no} están en el almacén, @command{guix size} informa en base de las sustituciones disponibles (@pxref{Substitutes}). Esto hace posible perfilar el espacio en disco incluso de elementos del almacén que no están en el disco, únicamente disponibles de forma remota."
 
 #. type: Plain text
-#: doc/guix.texi:9945
+#: doc/guix.texi:11795
 msgid "You can also specify several package names:"
 msgstr "Puede especificar también varios nombres de paquetes:"
 
 # FUZZY
 # TODO: Actualizar cuando se traduzca guix
 #. type: example
-#: doc/guix.texi:9955
+#: doc/guix.texi:11805
 #, no-wrap
 msgid ""
 "$ guix size coreutils grep sed bash\n"
@@ -18786,93 +22015,98 @@ msgstr ""
 "total: 102.3 MiB\n"
 
 #. type: Plain text
-#: doc/guix.texi:9961
+#: doc/guix.texi:11811
 msgid "In this example we see that the combination of the four packages takes 102.3@tie{}MiB in total, which is much less than the sum of each closure since they have a lot of dependencies in common."
 msgstr "En este ejemplo vemos que la combinación de los cuatro paquetes toma 102.3@tie{}MiB en total, lo cual es mucho menos que la suma de cada clausura, ya que tienen muchas dependencias en común."
 
 #. type: Plain text
-#: doc/guix.texi:9963
+#: doc/guix.texi:11817
+msgid "When looking at the profile returned by @command{guix size}, you may find yourself wondering why a given package shows up in the profile at all.  To understand it, you can use @command{guix graph --path -t references} to display the shortest path between the two packages (@pxref{Invoking guix graph})."
+msgstr "Cuando tenga delante el perfil devuelto por @command{guix size} puede preguntarse cuál es la razón de que cierto paquete aparezca en el perfil. Para entenderlo puede usar @command{guix graph --path -t references} para mostrar la ruta más corta entre dos paquetes (@pxref{Invoking guix graph})."
+
+#. type: Plain text
+#: doc/guix.texi:11819
 msgid "The available options are:"
 msgstr "Las opciones disponibles son:"
 
 #. type: table
-#: doc/guix.texi:9969
+#: doc/guix.texi:11825
 msgid "Use substitute information from @var{urls}.  @xref{client-substitute-urls, the same option for @code{guix build}}."
 msgstr "Usa la información de sustituciones de @var{urls}. @xref{client-substitute-urls, la misma opción en @code{guix build}}."
 
 #. type: item
-#: doc/guix.texi:9970
+#: doc/guix.texi:11826
 #, no-wrap
 msgid "--sort=@var{key}"
 msgstr "--sort=@var{clave}"
 
 #. type: table
-#: doc/guix.texi:9972
+#: doc/guix.texi:11828
 msgid "Sort lines according to @var{key}, one of the following options:"
 msgstr "Ordena las líneas de acuerdo a @var{clave}, una de las siguientes opciones:"
 
 #. type: item
-#: doc/guix.texi:9974
+#: doc/guix.texi:11830
 #, no-wrap
 msgid "self"
 msgstr "self"
 
 #. type: table
-#: doc/guix.texi:9976
+#: doc/guix.texi:11832
 msgid "the size of each item (the default);"
 msgstr "el tamaño de cada elemento (predeterminada);"
 
 #. type: table
-#: doc/guix.texi:9978
+#: doc/guix.texi:11834
 msgid "the total size of the item's closure."
 msgstr "el tamaño total de la clausura del elemento."
 
 #. type: item
-#: doc/guix.texi:9980
+#: doc/guix.texi:11836
 #, no-wrap
 msgid "--map-file=@var{file}"
-msgstr "--map-file=@var{fichero}"
+msgstr "--map-file=@var{archivo}"
 
 #. type: table
-#: doc/guix.texi:9982
+#: doc/guix.texi:11838
 msgid "Write a graphical map of disk usage in PNG format to @var{file}."
-msgstr "Escribe un mapa gráfico del uso del disco en formato PNG en el @var{fichero}."
+msgstr "Escribe un mapa gráfico del uso del disco en formato PNG en el @var{archivo}."
 
 #. type: table
-#: doc/guix.texi:9984
+#: doc/guix.texi:11840
 msgid "For the example above, the map looks like this:"
 msgstr "Para el ejemplo previo, el mapa tiene esta pinta:"
 
 #. type: table
-#: doc/guix.texi:9987
+#: doc/guix.texi:11843
 msgid "@image{images/coreutils-size-map,5in,, map of Coreutils disk usage produced by @command{guix size}}"
 msgstr "@image{images/coreutils-size-map,5in,, mapa del uso del disco de Coreutils producido por @command{guix size}}"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:9992
+#: doc/guix.texi:11848
 msgid "This option requires that @uref{https://wingolog.org/software/guile-charting/, Guile-Charting} be installed and visible in Guile's module search path.  When that is not the case, @command{guix size} fails as it tries to load it."
 msgstr "Esta opción necesita que la biblioteca @uref{https://wingolog.org/software/guile-charting/, Guile-Charting} esté instalada y visible en la ruta de búsqueda de módulos Guile. Cuando no es el caso, @command{guix size} produce un error al intentar cargarla."
 
 #. type: table
-#: doc/guix.texi:9996
+#: doc/guix.texi:11852
 msgid "Consider packages for @var{system}---e.g., @code{x86_64-linux}."
 msgstr "Considera paquetes para @var{sistema}---por ejemplo, @code{x86_64-linux}."
 
 #. type: section
-#: doc/guix.texi:10007
+#: doc/guix.texi:11863
 #, no-wrap
 msgid "Invoking @command{guix graph}"
 msgstr "Invocación de @command{guix graph}"
 
 #. type: cindex
-#: doc/guix.texi:10009
+#: doc/guix.texi:11865
 #, no-wrap
 msgid "DAG"
-msgstr "GAD (DAG en Inglés)"
+msgstr "GAD (DAG en inglés)"
 
 #. type: command{#1}
-#: doc/guix.texi:10010
+#: doc/guix.texi:11866
 #, no-wrap
 msgid "guix graph"
 msgstr "guix graph"
@@ -18881,557 +22115,635 @@ msgstr "guix graph"
 # wikipedia a falta de mejor bibliografía, también puede entenderse como
 # diagrama de representación radial... :(
 #. type: Plain text
-#: doc/guix.texi:10024
-msgid "Packages and their dependencies form a @dfn{graph}, specifically a directed acyclic graph (DAG).  It can quickly become difficult to have a mental model of the package DAG, so the @command{guix graph} command provides a visual representation of the DAG.  By default, @command{guix graph} emits a DAG representation in the input format of @uref{https://www.graphviz.org/, Graphviz}, so its output can be passed directly to the @command{dot} command of Graphviz.  It can also emit an HTML page with embedded JavaScript code to display a ``chord diagram'' in a Web browser, using the @uref{https://d3js.org/, d3.js} library, or emit Cypher queries to construct a graph in a graph database supporting the @uref{https://www.opencypher.org/, openCypher} query language.  The general syntax is:"
-msgstr "Los paquetes y sus dependencias forman un @dfn{grafo}, específicamente un grafo acíclico dirigido (GAD, DAG en Inglés). Puede hacerse difícil rápidamente tener un modelo mental del GAD del paquete, por lo que la orden @command{guix graph} proporciona una representación virtual del GAD. Por defecto, @command{guix graph} emite una representación en GAD en el formato de entrada de @uref{https://graphviz.org/,Graphviz}, por lo que su salida puede ser pasada directamente a la herramienta @command{dot} de Graphviz. También puede emitir una página HTMP con código JavaScript embebido para mostrar un diagrama de cuerdas en un navegador Web, usando la biblioteca @uref{https://d3js.org/, d3.js}, o emitir consultas Cypher para construir un grafo en una base de datos de grafos que acepte el lenguaje de consultas @uref{https://www.opencypher.org/, openCypher}. La sintaxis general es:"
+#: doc/guix.texi:11881
+msgid "Packages and their dependencies form a @dfn{graph}, specifically a directed acyclic graph (DAG).  It can quickly become difficult to have a mental model of the package DAG, so the @command{guix graph} command provides a visual representation of the DAG.  By default, @command{guix graph} emits a DAG representation in the input format of @uref{https://www.graphviz.org/, Graphviz}, so its output can be passed directly to the @command{dot} command of Graphviz.  It can also emit an HTML page with embedded JavaScript code to display a ``chord diagram'' in a Web browser, using the @uref{https://d3js.org/, d3.js} library, or emit Cypher queries to construct a graph in a graph database supporting the @uref{https://www.opencypher.org/, openCypher} query language.  With @option{--path}, it simply displays the shortest path between two packages.  The general syntax is:"
+msgstr "Los paquetes y sus dependencias forman un @dfn{grafo}, específicamente un grafo acíclico dirigido (GAD, DAG en Inglés). Puede ser difícil crear un modelo mental del GAD del paquete de manera rápida, por lo que la orden @command{guix graph} proporciona una representación virtual del GAD. Por defecto, @command{guix graph} emite una representación en GAD en el formato de entrada de @uref{https://graphviz.org/,Graphviz}, por lo que su salida puede ser pasada directamente a la herramienta @command{dot} de Graphviz. También puede emitir una página HTMP con código JavaScript embebido para mostrar un diagrama de cuerdas en un navegador Web, usando la biblioteca @uref{https://d3js.org/, d3.js}, o emitir consultas Cypher para construir un grafo en una base de datos de grafos que acepte el lenguaje de consultas @uref{https://www.opencypher.org/, openCypher}. Con la opción @option{--path} simplemente muestra la ruta más corta entre dos paquetes. La sintaxis general es:"
 
 #. type: example
-#: doc/guix.texi:10027
+#: doc/guix.texi:11884
 #, no-wrap
 msgid "guix graph @var{options} @var{package}@dots{}\n"
 msgstr "guix graph @var{opciones} @var{paquete}@dots{}\n"
 
 #. type: Plain text
-#: doc/guix.texi:10032
+#: doc/guix.texi:11889
 msgid "For example, the following command generates a PDF file representing the package DAG for the GNU@tie{}Core Utilities, showing its build-time dependencies:"
-msgstr "Por ejemplo, la siguiente orden genera un fichero PDF que representa el GAD para GNU@tie{}Core Utilities, mostrando sus dependencias en tiempo de construcción:"
+msgstr "Por ejemplo, la siguiente orden genera un archivo PDF que representa el GAD para GNU@tie{}Core Utilities, mostrando sus dependencias en tiempo de construcción:"
 
 #. type: example
-#: doc/guix.texi:10035
+#: doc/guix.texi:11892
 #, no-wrap
 msgid "guix graph coreutils | dot -Tpdf > dag.pdf\n"
 msgstr "guix graph coreutils | dot -Tpdf > gad.pdf\n"
 
 #. type: Plain text
-#: doc/guix.texi:10038
+#: doc/guix.texi:11895
 msgid "The output looks like this:"
 msgstr "La salida es algo así:"
 
 #. type: Plain text
-#: doc/guix.texi:10040
+#: doc/guix.texi:11897
 msgid "@image{images/coreutils-graph,2in,,Dependency graph of the GNU Coreutils}"
 msgstr "@image{images/coreutils-graph,2in,,Grafo de dependencias de GNU Coreutils}"
 
 #. type: Plain text
-#: doc/guix.texi:10042
+#: doc/guix.texi:11899
 msgid "Nice little graph, no?"
 msgstr "Bonito y pequeño grafo, ¿no?"
 
 #. type: Plain text
-#: doc/guix.texi:10048
+#: doc/guix.texi:11902
+msgid "You may find it more pleasant to navigate the graph interactively with @command{xdot} (from the @code{xdot} package):"
+msgstr "Puede encontrar más agradable la navegación interactiva del grafo con la orden @command{xdot} (del paquete @code{xdot}):"
+
+#. type: example
+#: doc/guix.texi:11905
+#, no-wrap
+msgid "guix graph coreutils | xdot -\n"
+msgstr "guix graph coreutils | xdot -\n"
+
+#. type: Plain text
+#: doc/guix.texi:11912
 msgid "But there is more than one graph! The one above is concise: it is the graph of package objects, omitting implicit inputs such as GCC, libc, grep, etc.  It is often useful to have such a concise graph, but sometimes one may want to see more details.  @command{guix graph} supports several types of graphs, allowing you to choose the level of detail:"
 msgstr "¡Pero hay más de un grafo! El grafo previo es conciso: es el grafo de los objetos package, omitiendo las entradas implícitas como GCC, libc, grep, etc. Es habitualmente útil tener un grafo conciso así, pero a veces una puede querer ver más detalles. @command{guix graph} implementa varios tipos de grafos, lo que le permite seleccionar el nivel de detalle:"
 
 #. type: table
-#: doc/guix.texi:10054
+#: doc/guix.texi:11918
 msgid "This is the default type used in the example above.  It shows the DAG of package objects, excluding implicit dependencies.  It is concise, but filters out many details."
 msgstr "Este es el tipo por defecto usado en el ejemplo previo. Muestra el GAD de objetos package, excluyendo dependencias implícitas. Es conciso, pero deja fuera muchos detalles."
 
 #. type: item
-#: doc/guix.texi:10055
+#: doc/guix.texi:11919
 #, no-wrap
 msgid "reverse-package"
 msgstr "reverse-package"
 
 #. type: table
-#: doc/guix.texi:10057
+#: doc/guix.texi:11921
 msgid "This shows the @emph{reverse} DAG of packages.  For example:"
 msgstr "Esto muestra el GAD @emph{inverso} de paquetes. Por ejemplo:"
 
 #. type: example
-#: doc/guix.texi:10060
+#: doc/guix.texi:11924
 #, no-wrap
 msgid "guix graph --type=reverse-package ocaml\n"
 msgstr "guix graph --type=reverse-package ocaml\n"
 
 #. type: table
-#: doc/guix.texi:10065
-msgid "...@: yields the graph of packages that @emph{explicitly} depend on OCaml (if you are also interested in cases where OCaml is an implicit dependency, see @code{reverse-bag} below.)"
+#: doc/guix.texi:11929
+msgid "...@: yields the graph of packages that @emph{explicitly} depend on OCaml (if you are also interested in cases where OCaml is an implicit dependency, see @code{reverse-bag} below)."
 msgstr "...@: emite el grafo de paquetes que dependen @emph{explícitamente} de OCaml (si también tiene interés en casos donde OCaml es una dependencia implícita, véase @code{reverse-bag} a continuación)."
 
 #. type: table
-#: doc/guix.texi:10070
+#: doc/guix.texi:11934
 msgid "Note that for core packages this can yield huge graphs.  If all you want is to know the number of packages that depend on a given package, use @command{guix refresh --list-dependent} (@pxref{Invoking guix refresh, @option{--list-dependent}})."
 msgstr "Fíjese que esto puede producir grafos inmensos para los paquetes básicos. Si todo lo que quiere saber es el número de paquetes que dependen de uno determinado, use @command{guix refresh --list-dependent} (@pxref{Invoking guix refresh, @option{--list-dependent}})."
 
 #. type: item
-#: doc/guix.texi:10071
+#: doc/guix.texi:11935
 #, no-wrap
 msgid "bag-emerged"
 msgstr "bag-emerged"
 
 #. type: table
-#: doc/guix.texi:10073
+#: doc/guix.texi:11937
 msgid "This is the package DAG, @emph{including} implicit inputs."
 msgstr "Este es el GAD del paquete, @emph{incluyendo} entradas implícitas."
 
 #. type: table
-#: doc/guix.texi:10075
+#: doc/guix.texi:11939
 msgid "For instance, the following command:"
 msgstr "Por ejemplo, la siguiente orden:"
 
 #. type: example
-#: doc/guix.texi:10078
+#: doc/guix.texi:11942
 #, no-wrap
-msgid "guix graph --type=bag-emerged coreutils | dot -Tpdf > dag.pdf\n"
-msgstr "guix graph --type=bag-emerged coreutils | dot -Tpdf > gad.pdf\n"
+msgid "guix graph --type=bag-emerged coreutils\n"
+msgstr "guix graph --type=bag-emerged coreutils\n"
 
 #. type: table
-#: doc/guix.texi:10081
+#: doc/guix.texi:11945
 msgid "...@: yields this bigger graph:"
 msgstr "...@: emite este grafo más grande:"
 
 #. type: table
-#: doc/guix.texi:10083
+#: doc/guix.texi:11947
 msgid "@image{images/coreutils-bag-graph,,5in,Detailed dependency graph of the GNU Coreutils}"
 msgstr "@image{images/coreutils-bag-graph,,5in,Grafo de dependencias detallado de GNU Coreutils}"
 
 #. type: table
-#: doc/guix.texi:10086
+#: doc/guix.texi:11950
 msgid "At the bottom of the graph, we see all the implicit inputs of @var{gnu-build-system} (@pxref{Build Systems, @code{gnu-build-system}})."
 msgstr "En la parte inferior del grafo, vemos todas las entradas implícitas de @var{gnu-build-system} (@pxref{Build Systems, @code{gnu-build-system}})."
 
 #. type: table
-#: doc/guix.texi:10090
+#: doc/guix.texi:11954
 msgid "Now, note that the dependencies of these implicit inputs---that is, the @dfn{bootstrap dependencies} (@pxref{Bootstrapping})---are not shown here, for conciseness."
 msgstr "Ahora bien, fíjese que las dependencias de estas entradas implícitas---es decir, las @dfn{dependencias del lanzamiento inicial} (@pxref{Bootstrapping})---no se muestran aquí para mantener una salida concisa."
 
 #. type: item
-#: doc/guix.texi:10091
+#: doc/guix.texi:11955
 #, no-wrap
 msgid "bag"
 msgstr "bag"
 
 #. type: table
-#: doc/guix.texi:10094
+#: doc/guix.texi:11958
 msgid "Similar to @code{bag-emerged}, but this time including all the bootstrap dependencies."
 msgstr "Similar a @code{bag-emerged}, pero esta vez incluye todas las dependencias del lanzamiento inicial."
 
 #. type: item
-#: doc/guix.texi:10095
+#: doc/guix.texi:11959
 #, no-wrap
 msgid "bag-with-origins"
 msgstr "bag-with-origins"
 
 #. type: table
-#: doc/guix.texi:10097
+#: doc/guix.texi:11961
 msgid "Similar to @code{bag}, but also showing origins and their dependencies."
 msgstr "Similar a @code{bag}, pero también muestra los orígenes y sus dependencias."
 
 #. type: item
-#: doc/guix.texi:10098
+#: doc/guix.texi:11962
 #, no-wrap
 msgid "reverse-bag"
 msgstr "reverse-bag"
 
 #. type: table
-#: doc/guix.texi:10101
+#: doc/guix.texi:11965
 msgid "This shows the @emph{reverse} DAG of packages.  Unlike @code{reverse-package}, it also takes implicit dependencies into account.  For example:"
 msgstr "Muestra el GAD @emph{inverso} de paquetes. Al contrario que @code{reverse-package}, también tiene en cuenta las dependencias implícitas. Por ejemplo:"
 
 #. type: example
-#: doc/guix.texi:10104
+#: doc/guix.texi:11968
 #, no-wrap
 msgid "guix graph -t reverse-bag dune\n"
 msgstr "guix graph -t reverse-bag dune\n"
 
 #. type: table
-#: doc/guix.texi:10111
+#: doc/guix.texi:11975
 msgid "...@: yields the graph of all packages that depend on Dune, directly or indirectly.  Since Dune is an @emph{implicit} dependency of many packages @i{via} @code{dune-build-system}, this shows a large number of packages, whereas @code{reverse-package} would show very few if any."
 msgstr "...@: emite el grafo de tosos los paquetes que dependen de Dune, directa o indirectamente. Ya que Dune es una dependencia @emph{implícita} de muchos paquetes @i{vía} @code{dune-build-system}, esto mostrará un gran número de paquetes, mientras que @code{reverse-package} mostraría muy pocos si muestra alguno."
 
 #. type: table
-#: doc/guix.texi:10117
+#: doc/guix.texi:11981
 msgid "This is the most detailed representation: It shows the DAG of derivations (@pxref{Derivations}) and plain store items.  Compared to the above representation, many additional nodes are visible, including build scripts, patches, Guile modules, etc."
 msgstr "Esta es la representación más detallada: muestra el GAD de derivaciones (@pxref{Derivations}) y elementos simples del almacén. Comparada con las representaciones previas, muchos nodos adicionales son visibles, incluyendo los guiones de construcción, parches, módulos Guile, etc."
 
 #. type: table
-#: doc/guix.texi:10120
+#: doc/guix.texi:11984
 msgid "For this type of graph, it is also possible to pass a @file{.drv} file name instead of a package name, as in:"
-msgstr "Para este tipo de grafo, también es posible pasar un nombre de fichero @file{.drv} en vez del nombre del paquete, como en:"
+msgstr "Para este tipo de grafo, también es posible pasar un nombre de archivo @file{.drv} en vez del nombre del paquete, como en:"
 
 #. type: example
-#: doc/guix.texi:10123
+#: doc/guix.texi:11987
 #, no-wrap
 msgid "guix graph -t derivation `guix system build -d my-config.scm`\n"
 msgstr "guix graph -t derivation `guix system build -d mi-configuración.scm`\n"
 
 #. type: item
-#: doc/guix.texi:10125
+#: doc/guix.texi:11989
 #, no-wrap
 msgid "module"
 msgstr "module"
 
 #. type: table
-#: doc/guix.texi:10129
+#: doc/guix.texi:11993
 msgid "This is the graph of @dfn{package modules} (@pxref{Package Modules}).  For example, the following command shows the graph for the package module that defines the @code{guile} package:"
 msgstr "Este es el grafo de los @dfn{módulos de paquete} (@pxref{Package Modules}). Por ejemplo, la siguiente orden muestra el grafo para el módulo de paquetes que define el paquete @code{guile}:"
 
 #. type: example
-#: doc/guix.texi:10132
+#: doc/guix.texi:11996
 #, no-wrap
-msgid "guix graph -t module guile | dot -Tpdf > module-graph.pdf\n"
-msgstr "guix graph -t module guile | dot -Tpdf > grafo-del-modulo.pdf\n"
+msgid "guix graph -t module guile | xdot -\n"
+msgstr "guix graph -t module guile | xdot -\n"
 
 #. type: Plain text
-#: doc/guix.texi:10137
+#: doc/guix.texi:12001
 msgid "All the types above correspond to @emph{build-time dependencies}.  The following graph type represents the @emph{run-time dependencies}:"
 msgstr "Todos los tipos previos corresponden a las @emph{dependencias durante la construcción}. El grafo siguiente representa las @emph{dependencias en tiempo de ejecución}:"
 
 #. type: table
-#: doc/guix.texi:10142
+#: doc/guix.texi:12006
 msgid "This is the graph of @dfn{references} of a package output, as returned by @command{guix gc --references} (@pxref{Invoking guix gc})."
 msgstr "Este es el grafo de @dfn{referencias} de la salida de un paquete, como lo devuelve @command{guix gc --references} (@pxref{Invoking guix gc})."
 
 #. type: table
-#: doc/guix.texi:10145
+#: doc/guix.texi:12009
 msgid "If the given package output is not available in the store, @command{guix graph} attempts to obtain dependency information from substitutes."
 msgstr "Si la salida del paquete proporcionado no está disponible en el almacén, @command{guix graph} intenta obtener la información de dependencias desde las sustituciones."
 
 #. type: table
-#: doc/guix.texi:10149
+#: doc/guix.texi:12013
 msgid "Here you can also pass a store file name instead of a package name.  For example, the command below produces the reference graph of your profile (which can be big!):"
-msgstr "Aquí también puede proporcionar un nombre de fichero del almacén en vez de un nombre de paquete. Por ejemplo, la siguiente orden produce el grafo de referencias de su perfil (¡el cuál puede ser grande!):"
+msgstr "Aquí también puede proporcionar un nombre de archivo del almacén en vez de un nombre de paquete. Por ejemplo, la siguiente orden produce el grafo de referencias de su perfil (¡el cuál puede ser grande!):"
 
 #. type: example
-#: doc/guix.texi:10152
+#: doc/guix.texi:12016
 #, no-wrap
 msgid "guix graph -t references `readlink -f ~/.guix-profile`\n"
 msgstr "guix graph -t references `readlink -f ~/.guix-profile`\n"
 
 #. type: item
-#: doc/guix.texi:10154
+#: doc/guix.texi:12018
 #, no-wrap
 msgid "referrers"
 msgstr "referrers"
 
 #. type: table
-#: doc/guix.texi:10157
+#: doc/guix.texi:12021
 msgid "This is the graph of the @dfn{referrers} of a store item, as returned by @command{guix gc --referrers} (@pxref{Invoking guix gc})."
 msgstr "Este es el grafo de @dfn{referentes} de la salida de un paquete, como lo devuelve @command{guix gc --referrers} (@pxref{Invoking guix gc})."
 
 #. type: table
-#: doc/guix.texi:10163
+#: doc/guix.texi:12027
 msgid "This relies exclusively on local information from your store.  For instance, let us suppose that the current Inkscape is available in 10 profiles on your machine; @command{guix graph -t referrers inkscape} will show a graph rooted at Inkscape and with those 10 profiles linked to it."
 msgstr "Depende exclusivamente de información en su almacén. Por ejemplo, supongamos que la versión actual de Inkscape está disponible en 10 perfiles en su máquina; @command{guix graph -t referrers inkscape} mostrará un grafo cuya raíz es Inkscape y con esos 10 perfiles enlazados a ella."
 
 #. type: table
-#: doc/guix.texi:10166
+#: doc/guix.texi:12030
 msgid "It can help determine what is preventing a store item from being garbage collected."
 msgstr "Puede ayudar a determinar qué impide que un elemento del almacén sea recolectado."
 
+#. type: cindex
+#: doc/guix.texi:12033
+#, no-wrap
+msgid "shortest path, between packages"
+msgstr "ruta más corta, entre paquetes"
+
+#. type: Plain text
+#: doc/guix.texi:12040
+msgid "Often, the graph of the package you are interested in does not fit on your screen, and anyway all you want to know is @emph{why} that package actually depends on some seemingly unrelated package.  The @option{--path} option instructs @command{guix graph} to display the shortest path between two packages (or derivations, or store items, etc.):"
+msgstr "Habitualmente el grafo del paquete por el que tiene interés no entrará en su pantall, y en cualquier caso todo lo que quiere saber es @emph{por qué} dicho paquete depende de algún paquete que parece no tener relación. La opción @option{--path} le indica a @command{guix graph} que muestre la ruta más corta entre dos paquetes (o derivaciones, o elementos del almacén, etcétera):"
+
+#. type: example
+#: doc/guix.texi:12054
+#, no-wrap
+msgid ""
+"$ guix graph --path emacs libunistring\n"
+"emacs@@26.3\n"
+"mailutils@@3.9\n"
+"libunistring@@0.9.10\n"
+"$ guix graph --path -t derivation emacs libunistring\n"
+"/gnu/store/@dots{}-emacs-26.3.drv\n"
+"/gnu/store/@dots{}-mailutils-3.9.drv\n"
+"/gnu/store/@dots{}-libunistring-0.9.10.drv\n"
+"$ guix graph --path -t references emacs libunistring\n"
+"/gnu/store/@dots{}-emacs-26.3\n"
+"/gnu/store/@dots{}-libidn2-2.2.0\n"
+"/gnu/store/@dots{}-libunistring-0.9.10\n"
+msgstr ""
+"$ guix graph --path emacs libunistring\n"
+"emacs@@26.3\n"
+"mailutils@@3.9\n"
+"libunistring@@0.9.10\n"
+"$ guix graph --path -t derivation emacs libunistring\n"
+"/gnu/store/@dots{}-emacs-26.3.drv\n"
+"/gnu/store/@dots{}-mailutils-3.9.drv\n"
+"/gnu/store/@dots{}-libunistring-0.9.10.drv\n"
+"$ guix graph --path -t references emacs libunistring\n"
+"/gnu/store/@dots{}-emacs-26.3\n"
+"/gnu/store/@dots{}-libidn2-2.2.0\n"
+"/gnu/store/@dots{}-libunistring-0.9.10\n"
+
 #. type: Plain text
-#: doc/guix.texi:10170
+#: doc/guix.texi:12057
 msgid "The available options are the following:"
 msgstr "Las opciones disponibles son las siguientes:"
 
 #. type: table
-#: doc/guix.texi:10176
+#: doc/guix.texi:12063
 msgid "Produce a graph output of @var{type}, where @var{type} must be one of the values listed above."
 msgstr "Produce un grafo de salida de @var{tipo}, donde @var{tipo} debe ser uno de los valores enumerados previamente."
 
 #. type: item
-#: doc/guix.texi:10177
+#: doc/guix.texi:12064
 #, no-wrap
 msgid "--list-types"
 msgstr "--list-types"
 
 #. type: table
-#: doc/guix.texi:10179
+#: doc/guix.texi:12066
 msgid "List the supported graph types."
 msgstr "Enumera los tipos de grafos implementados."
 
 #. type: item
-#: doc/guix.texi:10180
+#: doc/guix.texi:12067
 #, no-wrap
 msgid "--backend=@var{backend}"
 msgstr "--backend=@var{motor}"
 
 #. type: itemx
-#: doc/guix.texi:10181
+#: doc/guix.texi:12068
 #, no-wrap
 msgid "-b @var{backend}"
 msgstr "-b @var{motor}"
 
 #. type: table
-#: doc/guix.texi:10183
+#: doc/guix.texi:12070
 msgid "Produce a graph using the selected @var{backend}."
 msgstr "Produce un grafo usando el @var{motor} seleccionado."
 
 #. type: item
-#: doc/guix.texi:10184
+#: doc/guix.texi:12071
 #, no-wrap
 msgid "--list-backends"
 msgstr "--list-backends"
 
 #. type: table
-#: doc/guix.texi:10186
+#: doc/guix.texi:12073
 msgid "List the supported graph backends."
 msgstr "Enumera los motores de grafos implementados."
 
 #. type: table
-#: doc/guix.texi:10188
+#: doc/guix.texi:12075
 msgid "Currently, the available backends are Graphviz and d3.js."
 msgstr "Actualmente, los motores disponibles son Graphviz y d3.js."
 
+#. type: item
+#: doc/guix.texi:12076
+#, no-wrap
+msgid "--path"
+msgstr "--path"
+
+#. type: table
+#: doc/guix.texi:12081
+msgid "Display the shortest path between two nodes of the type specified by @option{--type}.  The example below shows the shortest path between @code{libreoffice} and @code{llvm} according to the references of @code{libreoffice}:"
+msgstr "Muestra la ruta más corta entre dos nodos del tipo especificado por la opción @option{--type}. El ejemplo siguiente muestra la ruta más corta entre @code{libreoffice} y @code{llvm} de acuerdo con las referencias de @code{libreoffice}:"
+
 #. type: example
-#: doc/guix.texi:10197
+#: doc/guix.texi:12088
+#, no-wrap
+msgid ""
+"$ guix graph --path -t references libreoffice llvm\n"
+"/gnu/store/@dots{}-libreoffice-6.4.2.2\n"
+"/gnu/store/@dots{}-libepoxy-1.5.4\n"
+"/gnu/store/@dots{}-mesa-19.3.4\n"
+"/gnu/store/@dots{}-llvm-9.0.1\n"
+msgstr ""
+"$ guix graph --path -t references libreoffice llvm\n"
+"/gnu/store/@dots{}-libreoffice-6.4.2.2\n"
+"/gnu/store/@dots{}-libepoxy-1.5.4\n"
+"/gnu/store/@dots{}-mesa-19.3.4\n"
+"/gnu/store/@dots{}-llvm-9.0.1\n"
+
+#. type: example
+#: doc/guix.texi:12098
 #, no-wrap
 msgid "guix graph -e '(@@@@ (gnu packages commencement) gnu-make-final)'\n"
 msgstr "guix graph -e '(@@@@ (gnu packages commencement) gnu-make-final)'\n"
 
 #. type: table
-#: doc/guix.texi:10202
+#: doc/guix.texi:12103
 msgid "Display the graph for @var{system}---e.g., @code{i686-linux}."
 msgstr "Muestra el grafo para @var{sistema}---por ejemplo, @code{i686-linux}."
 
 #. type: table
-#: doc/guix.texi:10205
+#: doc/guix.texi:12106
 msgid "The package dependency graph is largely architecture-independent, but there are some architecture-dependent bits that this option allows you to visualize."
 msgstr "El grafo de dependencias del paquete es altamente independiente de la arquitectura, pero existen algunas partes dependientes de la arquitectura que esta opción le permite visualizar."
 
 #. type: Plain text
-#: doc/guix.texi:10221
+#: doc/guix.texi:12122
 msgid "On top of that, @command{guix graph} supports all the usual package transformation options (@pxref{Package Transformation Options}).  This makes it easy to view the effect of a graph-rewriting transformation such as @option{--with-input}.  For example, the command below outputs the graph of @code{git} once @code{openssl} has been replaced by @code{libressl} everywhere in the graph:"
 msgstr "Además de esto, @command{guix graph} permite todas las opciones habituales de transformación de paquetes (@pxref{Package Transformation Options}). Esto facilita la visualización del efecto de una transformación de reescritura de grafo como @option{--with-input}. Por ejemplo, la siguiente orden muestra el grafo de @code{git} una vez que @code{openssl} ha sido reemplazado por @code{libressl} en todos los nodos del grafo:"
 
 #. type: example
-#: doc/guix.texi:10224
+#: doc/guix.texi:12125
 #, no-wrap
 msgid "guix graph git --with-input=openssl=libressl\n"
 msgstr "guix graph git --with-input=openssl=libressl\n"
 
 #. type: Plain text
-#: doc/guix.texi:10227
+#: doc/guix.texi:12128
 msgid "So many possibilities, so much fun!"
 msgstr "¡Tantas posibilidades, tanta diversión!"
 
 #. type: section
-#: doc/guix.texi:10229
+#: doc/guix.texi:12130
 #, no-wrap
 msgid "Invoking @command{guix publish}"
 msgstr "Invocación de @command{guix publish}"
 
 #. type: command{#1}
-#: doc/guix.texi:10231
+#: doc/guix.texi:12132
 #, no-wrap
 msgid "guix publish"
 msgstr "guix publish"
 
 #. type: Plain text
-#: doc/guix.texi:10235
+#: doc/guix.texi:12136
 msgid "The purpose of @command{guix publish} is to enable users to easily share their store with others, who can then use it as a substitute server (@pxref{Substitutes})."
 msgstr "El propósito de @command{guix publish} es permitir a las usuarias compartir fácilmente su almacén con otras, quienes pueden usarlo como servidor de sustituciones (@pxref{Substitutes})."
 
 #. type: Plain text
-#: doc/guix.texi:10241
+#: doc/guix.texi:12142
 msgid "When @command{guix publish} runs, it spawns an HTTP server which allows anyone with network access to obtain substitutes from it.  This means that any machine running Guix can also act as if it were a build farm, since the HTTP interface is compatible with Cuirass, the software behind the @code{@value{SUBSTITUTE-SERVER}} build farm."
 msgstr "Cuando @command{guix publish} se ejecuta, lanza un servidor HTTP que permite a cualquiera que tenga acceso a través de la red obtener sustituciones de él. Esto significa que cualquier máquina que ejecute Guix puede actuar como si fuese una granja de construcción, ya que la interfaz HTTP es compatible con Cuirass, el software detrás de la granja de construcción @code{@value{SUBSTITUTE-SERVER}}."
 
 #. type: Plain text
-#: doc/guix.texi:10247
-msgid "For security, each substitute is signed, allowing recipients to check their authenticity and integrity (@pxref{Substitutes}).  Because @command{guix publish} uses the signing key of the system, which is only readable by the system administrator, it must be started as root; the @code{--user} option makes it drop root privileges early on."
-msgstr "Por seguridad, cada sustitución se firma, permitiendo a las receptoras comprobar su autenticidad e integridad (@pxref{Substitutes}). Debido a que @command{guix publish} usa la clave de firma del sistema, que es únicamente legible por la administradora del sistema, debe iniciarse como root; la opción @code{--user} hace que renuncie a sus privilegios tan pronto como sea posible."
+#: doc/guix.texi:12148
+msgid "For security, each substitute is signed, allowing recipients to check their authenticity and integrity (@pxref{Substitutes}).  Because @command{guix publish} uses the signing key of the system, which is only readable by the system administrator, it must be started as root; the @option{--user} option makes it drop root privileges early on."
+msgstr "Por seguridad, cada sustitución se firma, permitiendo a las receptoras comprobar su autenticidad e integridad (@pxref{Substitutes}). Debido a que @command{guix publish} usa la clave de firma del sistema, que es únicamente legible por la administradora del sistema, debe iniciarse como root; la opción @option{--user} hace que renuncie a sus privilegios tan pronto como sea posible."
 
 #. type: Plain text
-#: doc/guix.texi:10251
+#: doc/guix.texi:12152
 msgid "The signing key pair must be generated before @command{guix publish} is launched, using @command{guix archive --generate-key} (@pxref{Invoking guix archive})."
 msgstr "El par claves de firma debe generarse antes de ejecutar @command{guix publish}, usando @command{guix archive --generate-key} (@pxref{Invoking guix archive})."
 
 #. type: example
-#: doc/guix.texi:10256
+#: doc/guix.texi:12157
 #, no-wrap
 msgid "guix publish @var{options}@dots{}\n"
 msgstr "guix publish @var{opciones}@dots{}\n"
 
 #. type: Plain text
-#: doc/guix.texi:10260
+#: doc/guix.texi:12161
 msgid "Running @command{guix publish} without any additional arguments will spawn an HTTP server on port 8080:"
 msgstr "La ejecución de @command{guix publish} sin ningún parámetro adicional lanzará un servidor HTTP en el puerto 8080:"
 
 #. type: example
-#: doc/guix.texi:10263
+#: doc/guix.texi:12164
 #, no-wrap
 msgid "guix publish\n"
 msgstr "guix publish\n"
 
 #. type: Plain text
-#: doc/guix.texi:10267
-msgid "Once a publishing server has been authorized (@pxref{Invoking guix archive}), the daemon may download substitutes from it:"
-msgstr "Una vez el servidor de publicación ha sido autorizado (@pxref{Invoking guix archive}), el daemon puede descargar sustituciones de él:"
-
-#. type: example
-#: doc/guix.texi:10270
-#, no-wrap
-msgid "guix-daemon --substitute-urls=http://example.org:8080\n"
-msgstr "guix-daemon --substitute-urls=http://example.org:8080\n"
+#: doc/guix.texi:12168
+msgid "Once a publishing server has been authorized, the daemon may download substitutes from it.  @xref{Getting Substitutes from Other Servers}."
+msgstr "Una vez el servidor de publicación ha sido autorizado, el daemon puede descargar sustituciones de él. @xref{Getting Substitutes from Other Servers}."
 
 #. type: Plain text
-#: doc/guix.texi:10279
+#: doc/guix.texi:12176
 msgid "By default, @command{guix publish} compresses archives on the fly as it serves them.  This ``on-the-fly'' mode is convenient in that it requires no setup and is immediately available.  However, when serving lots of clients, we recommend using the @option{--cache} option, which enables caching of the archives before they are sent to clients---see below for details.  The @command{guix weather} command provides a handy way to check what a server provides (@pxref{Invoking guix weather})."
 msgstr "Por defecto, @command{guix publish} comprime los archivos al vuelo cuando es necesario. Este modo ``al vuelo'' es conveniente ya que no necesita configuración y está disponible inmediatamente. No obstante, cuando se proporciona servicio a muchos clientes, se recomienda usar la opción @option{--cache}, que activa el almacenamiento en caché de los archivos antes de enviarlos a los clientes---véase a continuación para más detalles. La orden @command{guix weather} proporciona una forma fácil de comprobar lo que proporciona un servidor (@pxref{Invoking guix weather})."
 
 #. type: Plain text
-#: doc/guix.texi:10286
+#: doc/guix.texi:12183
 msgid "As a bonus, @command{guix publish} also serves as a content-addressed mirror for source files referenced in @code{origin} records (@pxref{origin Reference}).  For instance, assuming @command{guix publish} is running on @code{example.org}, the following URL returns the raw @file{hello-2.10.tar.gz} file with the given SHA256 hash (represented in @code{nix-base32} format, @pxref{Invoking guix hash}):"
-msgstr "Además @command{guix publish} también sirve como un espejo de acceso por contenido a ficheros de fuentes a los que los registros @code{origin} hacen referencia (@pxref{origin Reference}). Por ejemplo, si asumimos que @command{guix publish} se ejecuta en @code{example.org}, la siguiente URL devuelve directamente el fichero @file{hello-2.10.tar.gz} con el hash SHA256 proporcionado (representado en formato @code{nix-base32}, @pxref{Invoking guix hash})."
+msgstr "Además @command{guix publish} también sirve como un espejo de acceso por contenido a archivos de fuentes a los que los registros @code{origin} hacen referencia (@pxref{origin Reference}). Por ejemplo, si asumimos que @command{guix publish} se ejecuta en @code{example.org}, la siguiente URL devuelve directamente el archivo @file{hello-2.10.tar.gz} con el hash SHA256 proporcionado (representado en formato @code{nix-base32}, @pxref{Invoking guix hash})."
 
 #. type: example
-#: doc/guix.texi:10289
+#: doc/guix.texi:12186
 #, no-wrap
 msgid "http://example.org/file/hello-2.10.tar.gz/sha256/0ssi1@dots{}ndq1i\n"
 msgstr "http://example.org/file/hello-2.10.tar.gz/sha256/0ssi1@dots{}ndq1i\n"
 
 #. type: Plain text
-#: doc/guix.texi:10293
+#: doc/guix.texi:12190
 msgid "Obviously, these URLs only work for files that are in the store; in other cases, they return 404 (``Not Found'')."
-msgstr "Obviamente estas URL funcionan solamente para ficheros que se encuentran en el almacén; en otros casos devuelven un 404 (``No encontrado'')."
+msgstr "Obviamente estas URL funcionan solamente para archivos que se encuentran en el almacén; en otros casos devuelven un 404 (``No encontrado'')."
 
 # TODO: (MAAV) Log
 #. type: cindex
-#: doc/guix.texi:10294
+#: doc/guix.texi:12191
 #, no-wrap
 msgid "build logs, publication"
 msgstr "logs de construcción, publicación"
 
 #. type: Plain text
-#: doc/guix.texi:10296
+#: doc/guix.texi:12193
 msgid "Build logs are available from @code{/log} URLs like:"
 msgstr "Los log de construcción están disponibles desde URL @code{/log} como:"
 
 #. type: example
-#: doc/guix.texi:10299
+#: doc/guix.texi:12196
 #, no-wrap
 msgid "http://example.org/log/gwspk@dots{}-guile-2.2.3\n"
 msgstr "http://example.org/log/gwspk@dots{}-guile-2.2.3\n"
 
 #. type: Plain text
-#: doc/guix.texi:10309
-msgid "When @command{guix-daemon} is configured to save compressed build logs, as is the case by default (@pxref{Invoking guix-daemon}), @code{/log} URLs return the compressed log as-is, with an appropriate @code{Content-Type} and/or @code{Content-Encoding} header.  We recommend running @command{guix-daemon} with @code{--log-compression=gzip} since Web browsers can automatically decompress it, which is not the case with bzip2 compression."
-msgstr "Cuando @command{guix-daemon} está configurado para almacenar comprimidos los log de construcción, como sucede de forma predeterminada (@pxref{Invoking guix-daemon}), las URL @code{/log} devuelven los log igualmente comprimidos, con un @code{Content-Type} adecuado y/o una cabecera @code{Content-Encoding}. Recomendamos ejecutar @command{guix-daemon} con @code{--log-compression=gzip} ya que los navegadores Web pueden extraer el contenido automáticamente, lo cual no es el caso con la compresión bzip2."
+#: doc/guix.texi:12206
+msgid "When @command{guix-daemon} is configured to save compressed build logs, as is the case by default (@pxref{Invoking guix-daemon}), @code{/log} URLs return the compressed log as-is, with an appropriate @code{Content-Type} and/or @code{Content-Encoding} header.  We recommend running @command{guix-daemon} with @option{--log-compression=gzip} since Web browsers can automatically decompress it, which is not the case with Bzip2 compression."
+msgstr "Cuando @command{guix-daemon} está configurado para almacenar comprimidos los log de construcción, como sucede de forma predeterminada (@pxref{Invoking guix-daemon}), las URL @code{/log} devuelven los log igualmente comprimidos, con un @code{Content-Type} adecuado y/o una cabecera @code{Content-Encoding}. Recomendamos ejecutar @command{guix-daemon} con @option{--log-compression=gzip} ya que los navegadores Web pueden extraer el contenido automáticamente, lo cual no es el caso con la compresión bzip2."
 
 #. type: item
-#: doc/guix.texi:10313
+#: doc/guix.texi:12210
 #, no-wrap
 msgid "--port=@var{port}"
 msgstr "--port=@var{puerto}"
 
 #. type: itemx
-#: doc/guix.texi:10314
+#: doc/guix.texi:12211
 #, no-wrap
 msgid "-p @var{port}"
 msgstr "-p @var{puerto}"
 
 #. type: table
-#: doc/guix.texi:10316
+#: doc/guix.texi:12213
 msgid "Listen for HTTP requests on @var{port}."
 msgstr "Escucha peticiones HTTP en @var{puerto}."
 
 #. type: item
-#: doc/guix.texi:10317
+#: doc/guix.texi:12214
 #, no-wrap
 msgid "--listen=@var{host}"
 msgstr "--listen=@var{dirección}"
 
 #. type: table
-#: doc/guix.texi:10320
+#: doc/guix.texi:12217
 msgid "Listen on the network interface for @var{host}.  The default is to accept connections from any interface."
 msgstr "Escucha en la interfaz de red de la @var{dirección}. El comportamiento predeterminado es aceptar conexiones de cualquier interfaz."
 
 #. type: table
-#: doc/guix.texi:10325
+#: doc/guix.texi:12222
 msgid "Change privileges to @var{user} as soon as possible---i.e., once the server socket is open and the signing key has been read."
 msgstr "Cambia los privilegios a los de @var{usuaria} tan pronto como sea posible---es decir, una vez el socket del servidor esté abierto y la clave de firma haya sido leída."
 
 #. type: item
-#: doc/guix.texi:10326
+#: doc/guix.texi:12223
 #, no-wrap
 msgid "--compression[=@var{method}[:@var{level}]]"
 msgstr "--compression[=@var{método}[:@var{nivel}]]"
 
 #. type: itemx
-#: doc/guix.texi:10327
+#: doc/guix.texi:12224
 #, no-wrap
 msgid "-C [@var{method}[:@var{level}]]"
 msgstr "-C [@var{método}[:@var{nivel}]]"
 
 #. type: table
-#: doc/guix.texi:10331
+#: doc/guix.texi:12228
 msgid "Compress data using the given @var{method} and @var{level}.  @var{method} is one of @code{lzip} and @code{gzip}; when @var{method} is omitted, @code{gzip} is used."
 msgstr "Comprime los datos usando el @var{método} y @var{nivel} proporcionados. @var{método} es o bien @code{lzip} o bien @code{gzip}; cuando @var{método} se omite, se usa @code{gzip}."
 
 #. type: table
-#: doc/guix.texi:10335
+#: doc/guix.texi:12232
 msgid "When @var{level} is zero, disable compression.  The range 1 to 9 corresponds to different compression levels: 1 is the fastest, and 9 is the best (CPU-intensive).  The default is 3."
 msgstr "Cuando el @var{nivel} es cero, desactiva la compresión. El rango 1 a 9 corresponde a distintos niveles de compresión gzip: 1 es el más rápido, y 9 es el mejor (intensivo a nivel de CPU). El valor predeterminado es 3."
 
 #. type: table
-#: doc/guix.texi:10340
+#: doc/guix.texi:12237
 msgid "Usually, @code{lzip} compresses noticeably better than @code{gzip} for a small increase in CPU usage; see @uref{https://nongnu.org/lzip/lzip_benchmark.html,benchmarks on the lzip Web page}."
 msgstr "Habitualmente @code{lzip} comprime notablemente mejor que @code{gzip} a cambio de un pequeño incremento en el uso del procesador; véase @uref{https://nongnu.org/lzip/lzip_benchmark.html,las pruebas en la página web de lzip}."
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:10349
+#: doc/guix.texi:12246
 msgid "Unless @option{--cache} is used, compression occurs on the fly and the compressed streams are not cached.  Thus, to reduce load on the machine that runs @command{guix publish}, it may be a good idea to choose a low compression level, to run @command{guix publish} behind a caching proxy, or to use @option{--cache}.  Using @option{--cache} has the advantage that it allows @command{guix publish} to add @code{Content-Length} HTTP header to its responses."
-msgstr "A menos que se use @option{--cache}, la compresión ocurre al vuelo y los flujos comprimidos no se almacenan en caché. Por tanto, para reducir la carga en la máquina que ejecuta @command{guix publish}, puede ser una buena idea elegir un nivel de compresión bajo, ejecutar @command{guix publish} detrás de un proxy con caché o usar @option{--cache}. El uso de @option{--cache} tiene la ventaja de que permite a @command{guix publish} añadir la cabecera HTTP @code{Content-Length} a sus respuestas."
+msgstr "A menos que se use @option{--cache}, la compresión ocurre al vuelo y los flujos comprimidos no se almacenan en caché. Por tanto, para reducir la carga en la máquina que ejecuta @command{guix publish}, puede ser una buena idea elegir un nivel de compresión bajo, ejecutar @command{guix publish} detrás de una pasarela con caché o usar @option{--cache}. El uso de @option{--cache} tiene la ventaja de que permite a @command{guix publish} añadir la cabecera HTTP @code{Content-Length} a sus respuestas."
 
 #. type: table
-#: doc/guix.texi:10354
+#: doc/guix.texi:12251
 msgid "This option can be repeated, in which case every substitute gets compressed using all the selected methods, and all of them are advertised.  This is useful when users may not support all the compression methods: they can select the one they support."
 msgstr "Se puede repetir esta opción, en cuyo caso cada sustitución se comprime usando todos los métodos seleccionados, y todos son anunciados. Esto es útil cuando las usuarias pueden no implementar todos los métodos de compresión: pueden seleccionar el que implementan."
 
 #. type: item
-#: doc/guix.texi:10355
+#: doc/guix.texi:12252
 #, no-wrap
 msgid "--cache=@var{directory}"
 msgstr "--cache=@var{directorio}"
 
 #. type: itemx
-#: doc/guix.texi:10356
+#: doc/guix.texi:12253
 #, no-wrap
 msgid "-c @var{directory}"
 msgstr "-c @var{directorio}"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:10359
+#: doc/guix.texi:12256
 msgid "Cache archives and meta-data (@code{.narinfo} URLs) to @var{directory} and only serve archives that are in cache."
 msgstr "Almacena en caché los archivos y metadatos (URL @code{.narinfo}) en @var{directorio} y únicamente proporciona archivos que están en la caché."
 
 #. type: table
-#: doc/guix.texi:10367
+#: doc/guix.texi:12264
 msgid "When this option is omitted, archives and meta-data are created on-the-fly.  This can reduce the available bandwidth, especially when compression is enabled, since this may become CPU-bound.  Another drawback of the default mode is that the length of archives is not known in advance, so @command{guix publish} does not add a @code{Content-Length} HTTP header to its responses, which in turn prevents clients from knowing the amount of data being downloaded."
 msgstr "Cuando se omite esta opción, los archivos y metadatos se crean al vuelo. Esto puede reducir el ancho de banda disponible, especialmente cuando la compresión está activa, ya que se puede llegar al límite de la CPU. Otra desventaja del modo predeterminado es que la longitud de los archivos no se conoce con anterioridad, por lo que @command{guix publish} no puede añadir la cabecera HTTP @code{Content-Length} a sus respuestas, lo que a su vez previene que los clientes conozcan la cantidad de datos a descargar."
 
 #. type: table
-#: doc/guix.texi:10375
-msgid "Conversely, when @option{--cache} is used, the first request for a store item (@i{via} a @code{.narinfo} URL) returns 404 and triggers a background process to @dfn{bake} the archive---computing its @code{.narinfo} and compressing the archive, if needed.  Once the archive is cached in @var{directory}, subsequent requests succeed and are served directly from the cache, which guarantees that clients get the best possible bandwidth."
-msgstr "De manera contraria, cuando se usa @option{--cache}, la primera petición de un elemento del almacén (a través de una URL @code{.narinfo}) devuelve 404 e inicia un proceso en segundo plano para @dfn{cocinar} el archivo---calcular su @code{.narinfo} y comprimirlo, en caso necesario. Una vez el archivo está alojado en la caché de @var{directorio}, las siguientes peticiones obtendrán un resultado satisfactorio y se ofrecerá el contenido directamente desde la caché, lo que garantiza que los clientes obtienen el mejor ancho de banda posible."
+#: doc/guix.texi:12272
+msgid "Conversely, when @option{--cache} is used, the first request for a store item (@i{via} a @code{.narinfo} URL) triggers a background process to @dfn{bake} the archive---computing its @code{.narinfo} and compressing the archive, if needed.  Once the archive is cached in @var{directory}, subsequent requests succeed and are served directly from the cache, which guarantees that clients get the best possible bandwidth."
+msgstr "De manera contraria, cuando se usa @option{--cache}, la primera petición de un elemento del almacén (a través de una URL @code{.narinfo}) inicia un proceso en segundo plano para @dfn{cocinar} el archivo---calcular su @code{.narinfo} y comprimirlo, en caso necesario. Una vez el archivo está alojado en la caché de @var{directorio}, las siguientes peticiones obtendrán un resultado satisfactorio y se ofrecerá el contenido directamente desde la caché, lo que garantiza que los clientes obtienen el mejor ancho de banda posible."
 
 #. type: table
-#: doc/guix.texi:10379
+#: doc/guix.texi:12279
+msgid "That first @code{.narinfo} request nonetheless returns 200, provided the requested store item is ``small enough'', below the cache bypass threshold---see @option{--cache-bypass-threshold} below.  That way, clients do not have to wait until the archive is baked.  For larger store items, the first @code{.narinfo} request returns 404, meaning that clients have to wait until the archive is baked."
+msgstr "La primera petción de @code{.narinfo} devuelve no obstante el código 200, en el caso de que el elemento del almacén sea ``lo suficientemente pequeño'', es decir que su tamaño sea inferior al límite de bajo el que se ignora la caché---véase la opción @option{--cache-bypass-threshold} a continuación. De este modo, los clientes no deben esperar hasta que el archivo se haya cocinado. Con elementos del almacén de mayor tamaño la primera petición @code{.narinfo} devuelve el código 404, lo que significa que los clientes deben esperar hasta que el archivo se haya cocinado."
+
+#. type: table
+#: doc/guix.texi:12283
 msgid "The ``baking'' process is performed by worker threads.  By default, one thread per CPU core is created, but this can be customized.  See @option{--workers} below."
 msgstr "El proceso de ``cocinado'' se realiza por hilos de trabajo. Por defecto, se crea un hilo por núcleo de la CPU, pero puede ser personalizado. Véase @option{--workers} a continuación."
 
 #. type: table
-#: doc/guix.texi:10382
+#: doc/guix.texi:12286
 msgid "When @option{--ttl} is used, cached entries are automatically deleted when they have expired."
 msgstr "Cuando se usa @option{--ttl}, las entradas en caché se borran automáticamente cuando hayan expirado."
 
 #. type: item
-#: doc/guix.texi:10383
+#: doc/guix.texi:12287
 #, no-wrap
 msgid "--workers=@var{N}"
 msgstr "--workers=@var{N}"
 
 #. type: table
-#: doc/guix.texi:10386
+#: doc/guix.texi:12290
 msgid "When @option{--cache} is used, request the allocation of @var{N} worker threads to ``bake'' archives."
 msgstr "Cuando se usa @option{--cache}, solicita la creación de @var{N} hilos de trabajo para ``cocinar'' archivos."
 
 #. type: item
-#: doc/guix.texi:10387
+#: doc/guix.texi:12291
 #, no-wrap
 msgid "--ttl=@var{ttl}"
 msgstr "--ttl=@var{ttl}"
@@ -19439,96 +22751,117 @@ msgstr "--ttl=@var{ttl}"
 # FUZZY
 # TODO: ¿Habría que indicar que la duración es en inglés?
 #. type: table
-#: doc/guix.texi:10391
+#: doc/guix.texi:12295
 msgid "Produce @code{Cache-Control} HTTP headers that advertise a time-to-live (TTL) of @var{ttl}.  @var{ttl} must denote a duration: @code{5d} means 5 days, @code{1m} means 1 month, and so on."
 msgstr "Produce cabeceras HTTP @code{Cache-Control} que anuncian un tiempo-de-vida (TTL) de @var{ttl}. @var{ttl} debe indicar una duración: @code{5d} significa 5 días, @code{1m} significa un mes, etc."
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:10396
+#: doc/guix.texi:12300
 msgid "This allows the user's Guix to keep substitute information in cache for @var{ttl}.  However, note that @code{guix publish} does not itself guarantee that the store items it provides will indeed remain available for as long as @var{ttl}."
 msgstr "Esto permite a la usuaria de Guix mantener información de sustituciones en la caché durante @var{ttl}. No obstante, fíjese que @code{guix publish} no garantiza en sí que los elementos del almacén que proporciona de hecho permanezcan disponibles hasta que @var{ttl} expire."
 
 #. type: table
-#: doc/guix.texi:10400
+#: doc/guix.texi:12304
 msgid "Additionally, when @option{--cache} is used, cached entries that have not been accessed for @var{ttl} and that no longer have a corresponding item in the store, may be deleted."
 msgstr "Adicionalmente, cuando se usa @option{--cache}, las entradas en caché que no hayan sido accedidas en @var{ttl} y no tengan un elemento correspondiente en el almacén pueden ser borradas."
 
 #. type: item
-#: doc/guix.texi:10401
+#: doc/guix.texi:12305
+#, no-wrap
+msgid "--cache-bypass-threshold=@var{size}"
+msgstr "--cache-bypass-threshold=@var{tamaño}"
+
+#. type: table
+#: doc/guix.texi:12310
+msgid "When used in conjunction with @option{--cache}, store items smaller than @var{size} are immediately available, even when they are not yet in cache.  @var{size} is a size in bytes, or it can be suffixed by @code{M} for megabytes and so on.  The default is @code{10M}."
+msgstr "Cuando se usa en conjunto con la opción @option{--cache}, los elementos del almacén cuyo tamaño sea inferior a @var{tamaño} están disponibles de manera inmediata, incluso cuando no están todavía en la caché. @var{tamaño} es el número de bytes, o se puedem usar sufijos como @code{M} para megabytes, etcétera. El valor predeterminado es @code{10M}."
+
+#. type: table
+#: doc/guix.texi:12315
+msgid "``Cache bypass'' allows you to reduce the publication delay for clients at the expense of possibly additional I/O and CPU use on the server side: depending on the client access patterns, those store items can end up being baked several times until a copy is available in cache."
+msgstr "La opción de omisión de la cache le permite reducir la latencia de publicación a los clientes a expensas de un posible incremento en el uso de E/S y procesador en el lado del servidor: dependiendo de los patrones de acceso de los clientes, dichos elementos del almacén pueden ser cocinados varias veces hasta que una copia se encuentre disponible en la caché."
+
+#. type: table
+#: doc/guix.texi:12319
+msgid "Increasing the threshold may be useful for sites that have few users, or to guarantee that users get substitutes even for store items that are not popular."
+msgstr "Incrementar el valor límite puede ser útil para servidores que tengan pocas usuarias, o para garantizar que dichas usuarias obtienen sustituciones incluso con elementos del almacén que no son populares."
+
+#. type: item
+#: doc/guix.texi:12320
 #, no-wrap
 msgid "--nar-path=@var{path}"
 msgstr "--nar-path=@var{ruta}"
 
 # TODO: Comprobar
 #. type: table
-#: doc/guix.texi:10404
+#: doc/guix.texi:12323
 msgid "Use @var{path} as the prefix for the URLs of ``nar'' files (@pxref{Invoking guix archive, normalized archives})."
 msgstr "Usa @var{ruta} como el prefijo para las URL de los archivos ``nar'' (@pxref{Invoking guix archive, archivadores normalizados})."
 
 #. type: table
-#: doc/guix.texi:10408
+#: doc/guix.texi:12327
 msgid "By default, nars are served at a URL such as @code{/nar/gzip/@dots{}-coreutils-8.25}.  This option allows you to change the @code{/nar} part to @var{path}."
 msgstr "Por defecto, los archivos nar se proporcionan en una URL como @code{/nar/gzip/@dots{}-coreutils-8.25}. Esta opción le permite cambiar la parte @code{/nar} por @var{ruta}."
 
 #. type: item
-#: doc/guix.texi:10409
+#: doc/guix.texi:12328
 #, no-wrap
 msgid "--public-key=@var{file}"
-msgstr "--public-key=@var{fichero}"
+msgstr "--public-key=@var{archivo}"
 
 #. type: itemx
-#: doc/guix.texi:10410
+#: doc/guix.texi:12329
 #, no-wrap
 msgid "--private-key=@var{file}"
-msgstr "--private-key=@var{fichero}"
+msgstr "--private-key=@var{archivo}"
 
 #. type: table
-#: doc/guix.texi:10413
+#: doc/guix.texi:12332
 msgid "Use the specific @var{file}s as the public/private key pair used to sign the store items being published."
-msgstr "Usa los @var{fichero}s específicos como el par de claves pública y privada usadas para firmar los elementos del almacén publicados."
+msgstr "Usa los @var{archivo}s específicos como el par de claves pública y privada usadas para firmar los elementos del almacén publicados."
 
 #. type: table
-#: doc/guix.texi:10420
+#: doc/guix.texi:12339
 msgid "The files must correspond to the same key pair (the private key is used for signing and the public key is merely advertised in the signature metadata).  They must contain keys in the canonical s-expression format as produced by @command{guix archive --generate-key} (@pxref{Invoking guix archive}).  By default, @file{/etc/guix/signing-key.pub} and @file{/etc/guix/signing-key.sec} are used."
-msgstr "Los ficheros deben corresponder al mismo par de claves (la clave privada se usa para la firma y la clave pública simplemente se anuncia en los metadatos de la firma). Deben contener claves en el formato canónico de expresiones-S como el producido por @command{guix archive --generate-key} (@pxref{Invoking guix archive}). Por defecto, se usan @file{/etc/guix/signing-key.pub} y @file{/etc/guix/signing-key.sec}."
+msgstr "Los archivos deben corresponder al mismo par de claves (la clave privada se usa para la firma y la clave pública simplemente se anuncia en los metadatos de la firma). Deben contener claves en el formato canónico de expresiones-S como el producido por @command{guix archive --generate-key} (@pxref{Invoking guix archive}). Por defecto, se usan @file{/etc/guix/signing-key.pub} y @file{/etc/guix/signing-key.sec}."
 
 #. type: item
-#: doc/guix.texi:10421
+#: doc/guix.texi:12340
 #, no-wrap
 msgid "--repl[=@var{port}]"
 msgstr "--repl[=@var{puerto}]"
 
 #. type: itemx
-#: doc/guix.texi:10422
+#: doc/guix.texi:12341
 #, no-wrap
 msgid "-r [@var{port}]"
 msgstr "-r [@var{puerto}]"
 
 #. type: table
-#: doc/guix.texi:10426
+#: doc/guix.texi:12345
 msgid "Spawn a Guile REPL server (@pxref{REPL Servers,,, guile, GNU Guile Reference Manual}) on @var{port} (37146 by default).  This is used primarily for debugging a running @command{guix publish} server."
 msgstr "Lanza un servidor REPL Guile (@pxref{REPL Servers,,, guile, GNU Guile Reference Manual}) en @var{puerto} (37146 por defecto). Esto se usa principalmente para la depuración de un servidor @command{guix publish} en ejecución."
 
 #. type: Plain text
-#: doc/guix.texi:10432
+#: doc/guix.texi:12351
 msgid "Enabling @command{guix publish} on Guix System is a one-liner: just instantiate a @code{guix-publish-service-type} service in the @code{services} field of the @code{operating-system} declaration (@pxref{guix-publish-service-type, @code{guix-publish-service-type}})."
 msgstr "Activar @command{guix publish} en el sistema Guix consiste en solo una línea: simplemente instancie un servicio @code{guix-publish-service-type} en el campo @code{services} de su declaración del sistema operativo @code{operating-system} (@pxref{guix-publish-service-type, @code{guix-publish-service-type}})"
 
 # FUZZY
 # MAAV (TODO): foreign distro
 #. type: Plain text
-#: doc/guix.texi:10435
+#: doc/guix.texi:12354
 msgid "If you are instead running Guix on a ``foreign distro'', follow these instructions:"
 msgstr "Si en vez de eso ejecuta Guix en una distribución distinta, siga estas instrucciones:"
 
 #. type: itemize
-#: doc/guix.texi:10439
+#: doc/guix.texi:12358
 msgid "If your host distro uses the systemd init system:"
 msgstr "Si su distribución anfitriona usa el sistema de inicio systemd:"
 
 #. type: example
-#: doc/guix.texi:10444
+#: doc/guix.texi:12363
 #, no-wrap
 msgid ""
 "# ln -s ~root/.guix-profile/lib/systemd/system/guix-publish.service \\\n"
@@ -19540,7 +22873,7 @@ msgstr ""
 "# systemctl start guix-publish && systemctl enable guix-publish\n"
 
 #. type: example
-#: doc/guix.texi:10452
+#: doc/guix.texi:12371
 #, no-wrap
 msgid ""
 "# ln -s ~root/.guix-profile/lib/upstart/system/guix-publish.conf /etc/init/\n"
@@ -19550,60 +22883,60 @@ msgstr ""
 "# start guix-publish\n"
 
 #. type: itemize
-#: doc/guix.texi:10456
+#: doc/guix.texi:12375
 msgid "Otherwise, proceed similarly with your distro's init system."
 msgstr "En otro caso, proceda de forma similar con el sistema de inicio de su distribución."
 
 #. type: section
-#: doc/guix.texi:10459
+#: doc/guix.texi:12378
 #, no-wrap
 msgid "Invoking @command{guix challenge}"
 msgstr "Invocación de @command{guix challenge}"
 
 #. type: cindex
-#: doc/guix.texi:10462
+#: doc/guix.texi:12381
 #, no-wrap
 msgid "verifiable builds"
 msgstr "construcciones verificables"
 
 #. type: command{#1}
-#: doc/guix.texi:10463
+#: doc/guix.texi:12382
 #, no-wrap
 msgid "guix challenge"
 msgstr "guix challenge"
 
 # FUZZY
 #. type: cindex
-#: doc/guix.texi:10464
+#: doc/guix.texi:12383
 #, no-wrap
 msgid "challenge"
 msgstr "reto (challenge)"
 
 #. type: Plain text
-#: doc/guix.texi:10469
+#: doc/guix.texi:12388
 msgid "Do the binaries provided by this server really correspond to the source code it claims to build? Is a package build process deterministic? These are the questions the @command{guix challenge} command attempts to answer."
 msgstr "¿Los binarios que proporciona este servidor realmente corresponden al código fuente que dice construir? ¿Es determinista el proceso de construcción de un paquete? Estas son las preguntas que la orden @command{guix challenge} intenta responder."
 
 # FUZZY
 #. type: Plain text
-#: doc/guix.texi:10477
+#: doc/guix.texi:12396
 msgid "The former is obviously an important question: Before using a substitute server (@pxref{Substitutes}), one had better @emph{verify} that it provides the right binaries, and thus @emph{challenge} it.  The latter is what enables the former: If package builds are deterministic, then independent builds of the package should yield the exact same result, bit for bit; if a server provides a binary different from the one obtained locally, it may be either corrupt or malicious."
 msgstr "La primera es obviamente una cuestión importante: antes de usar un servidor de sustituciones (@pxref{Substitutes}), es importante haber @emph{verificado} que proporciona los binarios correctos, y por tanto @emph{ponerlo a prueba}@footnote{NdT: challenge en inglés.}. La segunda es lo que permite la primera: si las construcciones de los paquetes son deterministas, construcciones independientes deberían emitir el mismo resultado, bit a bit; si el servidor proporciona un binario diferente al obtenido localmente, o bien está corrupto o bien tiene intenciones perniciosas."
 
 #. type: Plain text
-#: doc/guix.texi:10486
+#: doc/guix.texi:12405
 msgid "We know that the hash that shows up in @file{/gnu/store} file names is the hash of all the inputs of the process that built the file or directory---compilers, libraries, build scripts, etc. (@pxref{Introduction}).  Assuming deterministic build processes, one store file name should map to exactly one build output.  @command{guix challenge} checks whether there is, indeed, a single mapping by comparing the build outputs of several independent builds of any given store item."
-msgstr "Sabemos que el hash que se muestra en los nombres de fichero en @file{/gnu/store} es el hash de todas las entradas del proceso que construyó el fichero o directorio---compiladores, bibliotecas, guiones de construcción, etc. (@pxref{Introduction}). Asumiendo procesos de construcción deterministas, un nombre de fichero del almacén debe corresponder exactamente a una salida de construcción. @command{guix challenge} comprueba si existe, realmente, una asociación unívoca comparando la salida de la construcción de varias construcciones independientes de cualquier elemento del almacén proporcionado."
+msgstr "Sabemos que el hash que se muestra en los nombres de archivo en @file{/gnu/store} es el hash de todas las entradas del proceso que construyó el archivo o directorio---compiladores, bibliotecas, guiones de construcción, etc. (@pxref{Introduction}). Asumiendo procesos de construcción deterministas, un nombre de archivo del almacén debe corresponder exactamente a una salida de construcción. @command{guix challenge} comprueba si existe, realmente, una asociación unívoca comparando la salida de la construcción de varias construcciones independientes de cualquier elemento del almacén proporcionado."
 
 #. type: Plain text
-#: doc/guix.texi:10488
+#: doc/guix.texi:12407
 msgid "The command output looks like this:"
 msgstr "La salida de la orden muestra algo así:"
 
 # FUZZY
 # TODO: Actualizar cuando se traduzca guix
 #. type: smallexample
-#: doc/guix.texi:10500
+#: doc/guix.texi:12419
 #, no-wrap
 msgid ""
 "$ guix challenge --substitute-urls=\"https://@value{SUBSTITUTE-SERVER} https://guix.example.org\"\n"
@@ -19625,13 +22958,13 @@ msgstr ""
 "  hash local: 0725l22r5jnzazaacncwsvp9kgf42266ayyp814v7djxs7nk963q\n"
 "  https://@value{SUBSTITUTE-SERVER}/nar/@dots{}-openssl-1.0.2d: 0725l22r5jnzazaacncwsvp9kgf42266ayyp814v7djxs7nk963q\n"
 "  https://guix.example.org/nar/@dots{}-openssl-1.0.2d: 1zy4fmaaqcnjrzzajkdn3f5gmjk754b43qkq47llbyak9z0qjyim\n"
-"  ficheros diferentes:\n"
+"  archivos diferentes:\n"
 "    /lib/libcrypto.so.1.1\n"
 "    /lib/libssl.so.1.1\n"
 "\n"
 
 #. type: smallexample
-#: doc/guix.texi:10507
+#: doc/guix.texi:12426
 #, no-wrap
 msgid ""
 "/gnu/store/@dots{}-git-2.5.0 contents differ:\n"
@@ -19646,12 +22979,12 @@ msgstr ""
 "  hash local: 00p3bmryhjxrhpn2gxs2fy0a15lnip05l97205pgbk5ra395hyha\n"
 "  https://@value{SUBSTITUTE-SERVER}/nar/@dots{}-git-2.5.0: 069nb85bv4d4a6slrwjdy8v1cn4cwspm3kdbmyb81d6zckj3nq9f\n"
 "  https://guix.example.org/nar/@dots{}-git-2.5.0: 0mdqa9w1p6cmli6976v4wi0sw9r4p5prkj7lzfd1877wk11c9c73\n"
-"  fichero diferente:\n"
+"  archivo diferente:\n"
 "    /libexec/git-core/git-fsck\n"
 "\n"
 
 #. type: smallexample
-#: doc/guix.texi:10514
+#: doc/guix.texi:12433
 #, no-wrap
 msgid ""
 "/gnu/store/@dots{}-pius-2.1.1 contents differ:\n"
@@ -19666,12 +22999,12 @@ msgstr ""
 "  hash local: 0k4v3m9z1zp8xzzizb7d8kjj72f9172xv078sq4wl73vnq9ig3ax\n"
 "  https://@value{SUBSTITUTE-SERVER}/nar/@dots{}-pius-2.1.1: 0k4v3m9z1zp8xzzizb7d8kjj72f9172xv078sq4wl73vnq9ig3ax\n"
 "  https://guix.example.org/nar/@dots{}-pius-2.1.1: 1cy25x1a4fzq5rk0pmvc8xhwyffnqz95h2bpvqsz2mpvlbccy0gs\n"
-"  fichero diferente:\n"
+"  archivo diferente:\n"
 "    /share/man/man1/pius.1.gz\n"
 "\n"
 
 #. type: smallexample
-#: doc/guix.texi:10516
+#: doc/guix.texi:12435
 #, no-wrap
 msgid ""
 "@dots{}\n"
@@ -19681,7 +23014,7 @@ msgstr ""
 "\n"
 
 #. type: smallexample
-#: doc/guix.texi:10521
+#: doc/guix.texi:12440
 #, no-wrap
 msgid ""
 "6,406 store items were analyzed:\n"
@@ -19695,28 +23028,28 @@ msgstr ""
 "  - 1,132 (17.7%) no arrojaron resultados concluyentes\n"
 
 #. type: Plain text
-#: doc/guix.texi:10529
+#: doc/guix.texi:12448
 msgid "In this example, @command{guix challenge} first scans the store to determine the set of locally-built derivations---as opposed to store items that were downloaded from a substitute server---and then queries all the substitute servers.  It then reports those store items for which the servers obtained a result different from the local build."
 msgstr "En este ejemplo, @command{guix challenge} primero recorre el almacén para determinar el conjunto de derivaciones construidas localmente---en oposición a elementos del almacén que fueron descargados de un servidor de sustituciones---y consulta a todos los servidores de sustituciones. Una vez hecho informa de los elementos del almacén para los cuales los servidores obtuvieron un resultado diferente de el obtenido en la construcción local."
 
 #. type: cindex
-#: doc/guix.texi:10530
+#: doc/guix.texi:12449
 #, no-wrap
 msgid "non-determinism, in package builds"
 msgstr "no-determinismo, en la construcción de paquetes"
 
 #. type: Plain text
-#: doc/guix.texi:10541
+#: doc/guix.texi:12460
 msgid "As an example, @code{guix.example.org} always gets a different answer.  Conversely, @code{@value{SUBSTITUTE-SERVER}} agrees with local builds, except in the case of Git.  This might indicate that the build process of Git is non-deterministic, meaning that its output varies as a function of various things that Guix does not fully control, in spite of building packages in isolated environments (@pxref{Features}).  Most common sources of non-determinism include the addition of timestamps in build results, the inclusion of random numbers, and directory listings sorted by inode number.  See @uref{https://reproducible-builds.org/docs/}, for more information."
 msgstr "Como un ejemplo, @code{guix.example.org} siempre obtiene una respuesta diferente. Por otro modo, @code{@value{SUBSTITUTE-SERVER}} coincide con las construcciones locales, excepto en el caso de Git. Esto puede indicar que el proceso de construcción de Git no es determinista, lo que significa que su salida varia en función de varias cosas que Guix no controla completamente, aunque la construcción de paquetes se realice en entornos aislados (@pxref{Features}). Las fuentes más comunes de indeterminismo incluyen la adición de marcas de tiempo en los resultados de la construcción, la inclusión de números aleatorios y las enumeraciones de directorios ordenadas por número de nodos-i. Véase @uref{https://reproducible-builds.org/docs/} para más información."
 
 #. type: Plain text
-#: doc/guix.texi:10544
+#: doc/guix.texi:12463
 msgid "To find out what is wrong with this Git binary, the easiest approach is to run:"
 msgstr "Para encontrar cuál es el problema con este binario Git, la aproximación más fácil es ejecutar:"
 
 #. type: example
-#: doc/guix.texi:10549
+#: doc/guix.texi:12468
 #, no-wrap
 msgid ""
 "guix challenge git \\\n"
@@ -19728,183 +23061,189 @@ msgstr ""
 "  --substitute-urls=\"https://@value{SUBSTITUTE-SERVER} https://guix.example.org\"\n"
 
 #. type: Plain text
-#: doc/guix.texi:10553
+#: doc/guix.texi:12472
 msgid "This automatically invokes @command{diffoscope}, which displays detailed information about files that differ."
-msgstr "Esto invoca automáticamente @command{diffoscope}, que muestra información detallada sobre los ficheros que son diferentes."
+msgstr "Esto invoca automáticamente @command{diffoscope}, que muestra información detallada sobre los archivos que son diferentes."
 
 #. type: Plain text
-#: doc/guix.texi:10556
-msgid "Alternately, we can do something along these lines (@pxref{Invoking guix archive}):"
+#: doc/guix.texi:12475
+msgid "Alternatively, we can do something along these lines (@pxref{Invoking guix archive}):"
 msgstr "De manera alternativa, se puede hacer algo parecido a esto (@pxref{Invoking guix archive}):"
 
 #. type: example
-#: doc/guix.texi:10561
+#: doc/guix.texi:12480
 #, no-wrap
 msgid ""
-"$ wget -q -O - https://@value{SUBSTITUTE-SERVER}/nar/@dots{}-git-2.5.0 \\\n"
-"   | guix archive -x /tmp/git\n"
+"$ wget -q -O - https://@value{SUBSTITUTE-SERVER}/nar/lzip/@dots{}-git-2.5.0 \\\n"
+"   | lzip -d | guix archive -x /tmp/git\n"
 "$ diff -ur --no-dereference /gnu/store/@dots{}-git.2.5.0 /tmp/git\n"
 msgstr ""
-"$ wget -q -O - https://@value{SUBSTITUTE-SERVER}/nar/@dots{}-git-2.5.0 \\\n"
-"   | guix archive -x /tmp/git\n"
+"$ wget -q -O - https://@value{SUBSTITUTE-SERVER}/nar/lzip/@dots{}-git-2.5.0 \\\n"
+"   | lzip -d | guix archive -x /tmp/git\n"
 "$ diff -ur --no-dereference /gnu/store/@dots{}-git.2.5.0 /tmp/git\n"
 
 #. type: Plain text
-#: doc/guix.texi:10570
+#: doc/guix.texi:12489
 msgid "This command shows the difference between the files resulting from the local build, and the files resulting from the build on @code{@value{SUBSTITUTE-SERVER}} (@pxref{Overview, Comparing and Merging Files,, diffutils, Comparing and Merging Files}).  The @command{diff} command works great for text files.  When binary files differ, a better option is @uref{https://diffoscope.org/, Diffoscope}, a tool that helps visualize differences for all kinds of files."
-msgstr "Esta orden muestra la diferencia entre los ficheros resultantes de la construcción local y los ficheros resultantes de la construcción en @code{@value{SUBSTITUTE-SERVER}} (@pxref{Overview, Comparing and Merging Files,, diffutils, Comparing and Merging Files}). La orden @command{diff} funciona muy bien en ficheros de texto. Cuando son binarios los ficheros diferentes, una opción mejor es @uref{https://diffoscope.org/,Diffoscope}, una herramienta que ayuda en la visualización de diferencias en todo tipo de ficheros."
+msgstr "Esta orden muestra la diferencia entre los archivos resultantes de la construcción local y los archivos resultantes de la construcción en @code{@value{SUBSTITUTE-SERVER}} (@pxref{Overview, Comparing and Merging Files,, diffutils, Comparing and Merging Files}). La orden @command{diff} funciona muy bien en archivos de texto. Cuando son binarios los archivos diferentes, una opción mejor es @uref{https://diffoscope.org/,Diffoscope}, una herramienta que ayuda en la visualización de diferencias en todo tipo de archivos."
 
 #. type: Plain text
-#: doc/guix.texi:10578
+#: doc/guix.texi:12497
 msgid "Once you have done that work, you can tell whether the differences are due to a non-deterministic build process or to a malicious server.  We try hard to remove sources of non-determinism in packages to make it easier to verify substitutes, but of course, this is a process that involves not just Guix, but a large part of the free software community.  In the meantime, @command{guix challenge} is one tool to help address the problem."
 msgstr "Una vez haya realizado este trabajo, puede determinar si las diferencias son debidas a un procedimiento de construcción no-determinista o a un servidor con intenciones ocultas. Intentamos duramente eliminar las fuentes de indeterminismo en los paquetes para facilitar la verificación de sustituciones, pero por supuesto es un proceso que implica no solo a Guix, sino a una gran parte de la comunidad del software libre. Entre tanto, @command{guix challenge} es una herramienta para ayudar a afrontar el problema."
 
 #. type: Plain text
-#: doc/guix.texi:10582
+#: doc/guix.texi:12501
 msgid "If you are writing packages for Guix, you are encouraged to check whether @code{@value{SUBSTITUTE-SERVER}} and other substitute servers obtain the same build result as you did with:"
 msgstr "Si esta escribiendo paquetes para Guix, le recomendamos que compruebe si @code{@value{SUBSTITUTE-SERVER}} y otros servidores de sustituciones obtienen el mismo resultado de construcción que el obtenido por usted:"
 
 #. type: example
-#: doc/guix.texi:10585
+#: doc/guix.texi:12504
 #, no-wrap
 msgid "$ guix challenge @var{package}\n"
 msgstr "$ guix challenge @var{paquete}\n"
 
 #. type: Plain text
-#: doc/guix.texi:10590
+#: doc/guix.texi:12509
 msgid "where @var{package} is a package specification such as @code{guile@@2.0} or @code{glibc:debug}."
 msgstr "donde @var{paquete} es una especificación de paquete como @code{guile@@2.0} o @code{glibc:debug}."
 
 #. type: example
-#: doc/guix.texi:10595
+#: doc/guix.texi:12514
 #, no-wrap
 msgid "guix challenge @var{options} [@var{packages}@dots{}]\n"
 msgstr "guix challenge @var{opciones} [@var{paquetes}@dots{}]\n"
 
 #. type: Plain text
-#: doc/guix.texi:10602
-msgid "When a difference is found between the hash of a locally-built item and that of a server-provided substitute, or among substitutes provided by different servers, the command displays it as in the example above and its exit code is 2 (other non-zero exit codes denote other kinds of errors.)"
-msgstr "Cuando se encuentra una diferencia entre el hash de un elemento construido localmente y el proporcionado por un servidor de sustituciones; o entre las sustituciones proporcionadas por distintos servidores, esto es mostrado como en el ejemplo previo y el valor de salida es 2 (otros valores no-cero de la salida denominan otros tipos de error)."
+#: doc/guix.texi:12521
+msgid "When a difference is found between the hash of a locally-built item and that of a server-provided substitute, or among substitutes provided by different servers, the command displays it as in the example above and its exit code is 2 (other non-zero exit codes denote other kinds of errors)."
+msgstr "Cuando se encuentra una diferencia entre el hash de un elemento construido localmente y el proporcionado por un servidor de sustituciones; o entre las sustituciones proporcionadas por distintos servidores, esto es mostrado como en el ejemplo previo y el código de salida es 2 (otros valores código de salida distintos de cero denominan otros tipos de error)."
 
 #. type: Plain text
-#: doc/guix.texi:10604
+#: doc/guix.texi:12523
 msgid "The one option that matters is:"
 msgstr "La única opción de importancia es:"
 
 #. type: table
-#: doc/guix.texi:10610
+#: doc/guix.texi:12529
 msgid "Consider @var{urls} the whitespace-separated list of substitute source URLs to compare to."
 msgstr "Considera @var{urls} la lista separada por espacios de URL de fuentes de sustituciones con las que realizar la comparación."
 
 #. type: item
-#: doc/guix.texi:10611
+#: doc/guix.texi:12530
 #, no-wrap
 msgid "--diff=@var{mode}"
 msgstr "--diff=@var{modo}"
 
 #. type: table
-#: doc/guix.texi:10613
+#: doc/guix.texi:12532
 msgid "Upon mismatches, show differences according to @var{mode}, one of:"
 msgstr "Muestra las diferencias encontradas de acuerdo con @var{modo}, uno de los siguientes:"
 
 #. type: item
-#: doc/guix.texi:10615
+#: doc/guix.texi:12534
 #, no-wrap
 msgid "@code{simple} (the default)"
 msgstr "@code{simple} (el predeterminado)"
 
 #. type: table
-#: doc/guix.texi:10617
+#: doc/guix.texi:12536
 msgid "Show the list of files that differ."
-msgstr "Muestra la lista de ficheros que son diferentes."
+msgstr "Muestra la lista de archivos que son diferentes."
 
 #. type: code{#1}
-#: doc/guix.texi:10618
+#: doc/guix.texi:12537
 #, no-wrap
 msgid "diffoscope"
 msgstr "diffoscope"
 
 # FUZZY
 #. type: var{#1}
-#: doc/guix.texi:10619
+#: doc/guix.texi:12538
 #, no-wrap
 msgid "command"
 msgstr "orden"
 
 #. type: table
-#: doc/guix.texi:10622
+#: doc/guix.texi:12541
 msgid "Invoke @uref{https://diffoscope.org/, Diffoscope}, passing it two directories whose contents do not match."
 msgstr "Invoca @uref{https://diffoscope.org/, Diffoscope} y le proporciona los dos directorios cuyo contenido es diferente."
 
 #. type: table
-#: doc/guix.texi:10625
+#: doc/guix.texi:12544
 msgid "When @var{command} is an absolute file name, run @var{command} instead of Diffoscope."
 msgstr "Cuando @var{orden} es una ruta absoluta, ejecuta @var{orden} en vez de Diffoscope."
 
 #. type: item
-#: doc/guix.texi:10626 doc/guix.texi:13535 doc/guix.texi:14931
+#: doc/guix.texi:12545 doc/guix.texi:15731 doc/guix.texi:17485
 #, no-wrap
 msgid "none"
 msgstr "none"
 
 #. type: table
-#: doc/guix.texi:10628
+#: doc/guix.texi:12547
 msgid "Do not show further details about the differences."
 msgstr "No muestra más detalles sobre las diferencias."
 
 #. type: table
-#: doc/guix.texi:10633
-msgid "Thus, unless @code{--diff=none} is passed, @command{guix challenge} downloads the store items from the given substitute servers so that it can compare them."
-msgstr "Por tanto, a menos que se proporcione @code{--diff=none}, @command{guix challenge} descarga los contenidos de los elementos del almacén de los servidores de sustituciones proporcionados para poder compararlos."
+#: doc/guix.texi:12552
+msgid "Thus, unless @option{--diff=none} is passed, @command{guix challenge} downloads the store items from the given substitute servers so that it can compare them."
+msgstr "Por tanto, a menos que se proporcione @option{--diff=none}, @command{guix challenge} descarga los contenidos de los elementos del almacén de los servidores de sustituciones proporcionados para poder compararlos."
+
+#. type: item
+#: doc/guix.texi:12553
+#, no-wrap
+msgid "--verbose"
+msgstr "--verbose"
 
 #. type: itemx
-#: doc/guix.texi:10635
+#: doc/guix.texi:12554
 #, no-wrap
 msgid "-v"
 msgstr "-v"
 
 #. type: table
-#: doc/guix.texi:10638
+#: doc/guix.texi:12557
 msgid "Show details about matches (identical contents) in addition to information about mismatches."
 msgstr "Muestra detalles sobre coincidencias (contenidos idénticos) además de información sobre las discrepancias."
 
 #. type: section
-#: doc/guix.texi:10642
+#: doc/guix.texi:12561
 #, no-wrap
 msgid "Invoking @command{guix copy}"
 msgstr "Invocación de @command{guix copy}"
 
 #. type: cindex
-#: doc/guix.texi:10644
+#: doc/guix.texi:12563
 #, no-wrap
 msgid "copy, of store items, over SSH"
 msgstr "copiar, elementos del almacén, por SSH"
 
 #. type: cindex
-#: doc/guix.texi:10645
+#: doc/guix.texi:12564
 #, no-wrap
 msgid "SSH, copy of store items"
 msgstr "SSH, copiar elementos del almacén"
 
 #. type: cindex
-#: doc/guix.texi:10646
+#: doc/guix.texi:12565
 #, no-wrap
 msgid "sharing store items across machines"
 msgstr "compartir elementos del almacén entre máquinas"
 
 #. type: cindex
-#: doc/guix.texi:10647
+#: doc/guix.texi:12566
 #, no-wrap
 msgid "transferring store items across machines"
 msgstr "transferir elementos del almacén entre máquinas"
 
 #. type: Plain text
-#: doc/guix.texi:10654
+#: doc/guix.texi:12573
 msgid "The @command{guix copy} command copies items from the store of one machine to that of another machine over a secure shell (SSH)  connection@footnote{This command is available only when Guile-SSH was found.  @xref{Requirements}, for details.}.  For example, the following command copies the @code{coreutils} package, the user's profile, and all their dependencies over to @var{host}, logged in as @var{user}:"
 msgstr "La orden @command{guix copy} copia elementos del almacén de una máquina al de otra a través de una conexión de shell seguro (SSH)@footnote{Esta orden únicamente está disponible cuando ha encontrado Guile-SSH. @xref{Requirements}, para detalles.}. Por ejemplo, la siguiente orden copia el paquete @code{coreutils}, el perfil de la usuaria y todas sus dependencias a @var{dirección}, ingresando en el sistema como @var{usuaria}:"
 
 #. type: example
-#: doc/guix.texi:10658
+#: doc/guix.texi:12577
 #, no-wrap
 msgid ""
 "guix copy --to=@var{user}@@@var{host} \\\n"
@@ -19914,17 +23253,17 @@ msgstr ""
 "          coreutils `readlink -f ~/.guix-profile`\n"
 
 #. type: Plain text
-#: doc/guix.texi:10662
+#: doc/guix.texi:12581
 msgid "If some of the items to be copied are already present on @var{host}, they are not actually sent."
 msgstr "Si alguno de los elementos del almacén a copiar ya están presentes en @var{dirección}, no se envían realmente."
 
 #. type: Plain text
-#: doc/guix.texi:10665
+#: doc/guix.texi:12584
 msgid "The command below retrieves @code{libreoffice} and @code{gimp} from @var{host}, assuming they are available there:"
 msgstr "La siguiente orden obtiene @code{libreoffice} y @code{gimp} de @var{dirección}, asumiendo que estén disponibles allí:"
 
 #. type: example
-#: doc/guix.texi:10668
+#: doc/guix.texi:12587
 #, no-wrap
 msgid "guix copy --from=@var{host} libreoffice gimp\n"
 msgstr "guix copy --from=@var{dirección} libreoffice gimp\n"
@@ -19932,178 +23271,178 @@ msgstr "guix copy --from=@var{dirección} libreoffice gimp\n"
 # FUZZY
 # MAAV (TODO): Authentication -> ¿identificación aquí?
 #. type: Plain text
-#: doc/guix.texi:10673
+#: doc/guix.texi:12592
 msgid "The SSH connection is established using the Guile-SSH client, which is compatible with OpenSSH: it honors @file{~/.ssh/known_hosts} and @file{~/.ssh/config}, and uses the SSH agent for authentication."
 msgstr "La conexión SSH se establece usando el cliente Guile-SSH, que es compatible con OpenSSH: tiene en cuenta @file{~/.ssh/known_hosts} y @file{~/.ssh/config}, y usa el agente SSH para la identificación."
 
 #. type: Plain text
-#: doc/guix.texi:10679
+#: doc/guix.texi:12598
 msgid "The key used to sign items that are sent must be accepted by the remote machine.  Likewise, the key used by the remote machine to sign items you are retrieving must be in @file{/etc/guix/acl} so it is accepted by your own daemon.  @xref{Invoking guix archive}, for more information about store item authentication."
 msgstr "La clave usada para firmar los elementos enviados debe estar aceptada por la máquina remota. Del mismo modo, la clave usada por la máquina remota para firmar los elementos recibidos debe estar en @file{/etc/guix/acl} de modo que sea aceptada por su propio daemon. @xref{Invoking guix archive}, para más información sobre la verificación de elementos del almacén."
 
 #. type: example
-#: doc/guix.texi:10684
+#: doc/guix.texi:12603
 #, no-wrap
 msgid "guix copy [--to=@var{spec}|--from=@var{spec}] @var{items}@dots{}\n"
 msgstr "guix copy [--to=@var{spec}|--from=@var{spec}] @var{elementos}@dots{}\n"
 
 #. type: Plain text
-#: doc/guix.texi:10687
+#: doc/guix.texi:12606
 msgid "You must always specify one of the following options:"
 msgstr "Siempre debe especificar una de las siguientes opciones:"
 
 #. type: item
-#: doc/guix.texi:10689
+#: doc/guix.texi:12608
 #, no-wrap
 msgid "--to=@var{spec}"
 msgstr "--to=@var{spec}"
 
 #. type: itemx
-#: doc/guix.texi:10690
+#: doc/guix.texi:12609
 #, no-wrap
 msgid "--from=@var{spec}"
 msgstr "--from=@var{spec}"
 
 #. type: table
-#: doc/guix.texi:10694
+#: doc/guix.texi:12613
 msgid "Specify the host to send to or receive from.  @var{spec} must be an SSH spec such as @code{example.org}, @code{charlie@@example.org}, or @code{charlie@@example.org:2222}."
 msgstr "Especifica la máquina a la que mandar o desde la que recibir.  @var{spec} debe ser una especificación SSH como @code{example.org}, @code{carlos@@example.org}, or @code{carlos@@example.org:2222}."
 
 #. type: Plain text
-#: doc/guix.texi:10698
+#: doc/guix.texi:12617
 msgid "The @var{items} can be either package names, such as @code{gimp}, or store items, such as @file{/gnu/store/@dots{}-idutils-4.6}."
 msgstr "Los @var{elementos} pueden ser tanto nombres de paquetes, como @code{gimp}, como elementos del almacén, como @file{/gnu/store/@dots{}-idutils-4.6}."
 
 #. type: Plain text
-#: doc/guix.texi:10702
+#: doc/guix.texi:12621
 msgid "When specifying the name of a package to send, it is first built if needed, unless @option{--dry-run} was specified.  Common build options are supported (@pxref{Common Build Options})."
 msgstr "Cuando se especifica el nombre del paquete a enviar, primero se construye si es necesario, a menos que se use @option{--dry-run}. Se aceptan las opciones comunes de construcción (@pxref{Common Build Options})."
 
 #. type: section
-#: doc/guix.texi:10705
+#: doc/guix.texi:12624
 #, no-wrap
 msgid "Invoking @command{guix container}"
 msgstr "Invocación de @command{guix container}"
 
 #. type: command{#1}
-#: doc/guix.texi:10707
+#: doc/guix.texi:12626
 #, no-wrap
 msgid "guix container"
 msgstr "guix container"
 
 #. type: quotation
-#: doc/guix.texi:10711
+#: doc/guix.texi:12630
 msgid "As of version @value{VERSION}, this tool is experimental.  The interface is subject to radical change in the future."
 msgstr "En la versión @value{VERSION}, esta herramienta es experimental. La interfaz está sujeta a cambios radicales en el futuro."
 
 #. type: Plain text
-#: doc/guix.texi:10718
+#: doc/guix.texi:12637
 msgid "The purpose of @command{guix container} is to manipulate processes running within an isolated environment, commonly known as a ``container'', typically created by the @command{guix environment} (@pxref{Invoking guix environment}) and @command{guix system container} (@pxref{Invoking guix system}) commands."
 msgstr "El propósito de @command{guix container} es la manipulación de procesos en ejecución dentro de entornos aislados, normalmente conocido como un ``contenedor'', típicamente creado por las órdenes @command{guix environment} (@pxref{Invoking guix environment}) y @command{guix system container} (@pxref{Invoking guix system})."
 
 #. type: example
-#: doc/guix.texi:10723
+#: doc/guix.texi:12642
 #, no-wrap
 msgid "guix container @var{action} @var{options}@dots{}\n"
 msgstr "guix container @var{acción} @var{opciones}@dots{}\n"
 
 #. type: Plain text
-#: doc/guix.texi:10727
+#: doc/guix.texi:12646
 msgid "@var{action} specifies the operation to perform with a container, and @var{options} specifies the context-specific arguments for the action."
 msgstr "@var{acción} especifica la operación a realizar con el contenedor, y @var{opcines} especifica los parámetros específicos del contexto para la acción."
 
 #. type: Plain text
-#: doc/guix.texi:10729
+#: doc/guix.texi:12648
 msgid "The following actions are available:"
 msgstr "Las siguientes acciones están disponibles:"
 
 #. type: item
-#: doc/guix.texi:10731
+#: doc/guix.texi:12650
 #, no-wrap
 msgid "exec"
 msgstr "exec"
 
 #. type: table
-#: doc/guix.texi:10733
+#: doc/guix.texi:12652
 msgid "Execute a command within the context of a running container."
 msgstr "Ejecute una orden en el contexto de un contenedor en ejecución."
 
 #. type: table
-#: doc/guix.texi:10735
+#: doc/guix.texi:12654
 msgid "The syntax is:"
 msgstr "La sintaxis es:"
 
 #. type: example
-#: doc/guix.texi:10738
+#: doc/guix.texi:12657
 #, no-wrap
 msgid "guix container exec @var{pid} @var{program} @var{arguments}@dots{}\n"
 msgstr "guix container exec @var{pid} @var{programa} @var{parámetros}@dots{}\n"
 
 #. type: table
-#: doc/guix.texi:10744
+#: doc/guix.texi:12663
 msgid "@var{pid} specifies the process ID of the running container.  @var{program} specifies an executable file name within the root file system of the container.  @var{arguments} are the additional options that will be passed to @var{program}."
-msgstr "@var{pid} especifica el ID del proceso del contenedor en ejecución. @var{programa} especifica el nombre del fichero ejecutable dentro del sistema de ficheros raíz del contenedor. @var{parámetros} son opciones adicionales que se pasarán a @var{programa}."
+msgstr "@var{pid} especifica el ID del proceso del contenedor en ejecución. @var{programa} especifica el nombre del archivo ejecutable dentro del sistema de archivos raíz del contenedor. @var{parámetros} son opciones adicionales que se pasarán a @var{programa}."
 
 #. type: table
-#: doc/guix.texi:10748
+#: doc/guix.texi:12667
 msgid "The following command launches an interactive login shell inside a Guix system container, started by @command{guix system container}, and whose process ID is 9001:"
 msgstr "La siguiente orden lanza un shell interactivo de ingreso al sistema dentro de un contenedor del sistema, iniciado por @command{guix system container}, y cuyo ID de proceso es 9001:"
 
 #. type: example
-#: doc/guix.texi:10751
+#: doc/guix.texi:12670
 #, no-wrap
 msgid "guix container exec 9001 /run/current-system/profile/bin/bash --login\n"
 msgstr "guix container exec 9001 /run/current-system/profile/bin/bash --login\n"
 
 #. type: table
-#: doc/guix.texi:10755
+#: doc/guix.texi:12674
 msgid "Note that the @var{pid} cannot be the parent process of a container.  It must be PID 1 of the container or one of its child processes."
 msgstr "Fíjese que el @var{pid} no puede ser el proceso creador del contenedor. Debe ser el PID 1 del contenedor o uno de sus procesos hijos."
 
 #. type: section
-#: doc/guix.texi:10759
+#: doc/guix.texi:12678
 #, no-wrap
 msgid "Invoking @command{guix weather}"
 msgstr "Invocación de @command{guix weather}"
 
 #. type: Plain text
-#: doc/guix.texi:10768
+#: doc/guix.texi:12687
 msgid "Occasionally you're grumpy because substitutes are lacking and you end up building packages by yourself (@pxref{Substitutes}).  The @command{guix weather} command reports on substitute availability on the specified servers so you can have an idea of whether you'll be grumpy today.  It can sometimes be useful info as a user, but it is primarily useful to people running @command{guix publish} (@pxref{Invoking guix publish})."
 msgstr "De manera ocasional tendrá un mal día al no estar las sustituciones disponibles y le toque construir los paquetes a usted misma (@pxref{Substitutes}). La orden @command{guix weather} informa de la disponibilidad de sustituciones en los servidores especificados de modo que pueda tener una idea sobre cómo será su día hoy. A veces puede ser una información útil como usuaria, pero es principalmente útil para quienes ejecuten @command{guix publish} (@pxref{Invoking guix publish})."
 
 #. type: cindex
-#: doc/guix.texi:10769
+#: doc/guix.texi:12688
 #, no-wrap
 msgid "statistics, for substitutes"
 msgstr "estadísticas, para sustituciones"
 
 #. type: cindex
-#: doc/guix.texi:10770
+#: doc/guix.texi:12689
 #, no-wrap
 msgid "availability of substitutes"
 msgstr "disponibilidad de sustituciones"
 
 #. type: cindex
-#: doc/guix.texi:10771
+#: doc/guix.texi:12690
 #, no-wrap
 msgid "substitute availability"
 msgstr "disponibilidad de sustituciones"
 
 #. type: cindex
-#: doc/guix.texi:10772
+#: doc/guix.texi:12691
 #, no-wrap
 msgid "weather, substitute availability"
 msgstr "weather, disponibilidad de sustituciones"
 
 #. type: Plain text
-#: doc/guix.texi:10774
+#: doc/guix.texi:12693
 msgid "Here's a sample run:"
 msgstr "Esta es una ejecución de ejemplo:"
 
 # FUZZY
 # TODO: Actualizar cuando se traduzca guix
 #. type: example
-#: doc/guix.texi:10786
+#: doc/guix.texi:12705
 #, no-wrap
 msgid ""
 "$ guix weather --substitute-urls=https://guix.example.org\n"
@@ -20133,7 +23472,7 @@ msgstr ""
 # FUZZY
 # TODO: Actualizar cuando se traduzca guix
 #. type: example
-#: doc/guix.texi:10796
+#: doc/guix.texi:12715
 #, no-wrap
 msgid ""
 "  9.8% (342 out of 3,470) of the missing items are queued\n"
@@ -20157,77 +23496,77 @@ msgstr ""
 "      aarch64-linux: 6.41 builds per hour\n"
 
 #. type: cindex
-#: doc/guix.texi:10798
+#: doc/guix.texi:12717
 #, no-wrap
 msgid "continuous integration, statistics"
 msgstr "integración continua, estadísticas"
 
 #. type: Plain text
-#: doc/guix.texi:10809
+#: doc/guix.texi:12728
 msgid "As you can see, it reports the fraction of all the packages for which substitutes are available on the server---regardless of whether substitutes are enabled, and regardless of whether this server's signing key is authorized.  It also reports the size of the compressed archives (``nars'') provided by the server, the size the corresponding store items occupy in the store (assuming deduplication is turned off), and the server's throughput.  The second part gives continuous integration (CI) statistics, if the server supports it.  In addition, using the @option{--coverage} option, @command{guix weather} can list ``important'' package substitutes missing on the server (see below)."
 msgstr "Como puede ver, informa de la fracción de todos los paquetes para los cuales hay sustituciones en el servidor---independientemente de que las sustituciones estén activadas, e independientemente de si la clave de firma del servidor está autorizada. También informa del tamaño de los archivos comprimidos (``nar'') proporcionados por el servidor, el tamaño que los elementos correspondientes del almacén ocupan en el almacén (asumiendo que la deduplicación está apagada) y el caudal de proceso del servidor. La segunda parte proporciona estadísticas de integración continua (CI), si el servidor lo permite. Además, mediante el uso de la opción @option{--coverage}, @command{guix weather} puede enumerar sustituciones de paquetes ``importantes'' que no se encuentren en el servidor (véase más adelante)."
 
 #. type: Plain text
-#: doc/guix.texi:10815
+#: doc/guix.texi:12734
 msgid "To achieve that, @command{guix weather} queries over HTTP(S) meta-data (@dfn{narinfos}) for all the relevant store items.  Like @command{guix challenge}, it ignores signatures on those substitutes, which is innocuous since the command only gathers statistics and cannot install those substitutes."
 msgstr "Para conseguirlo, @command{guix weather} consulta los metadatos HTTP(S) (@dfn{narinfo}s) de todos los elementos relevantes del almacén. Como @command{guix challenge}, ignora las firmas en esas sustituciones, lo cual es inocuo puesto que la orden únicamente obtiene estadísticas y no puede instalar esas sustituciones."
 
 #. type: example
-#: doc/guix.texi:10820
+#: doc/guix.texi:12739
 #, no-wrap
 msgid "guix weather @var{options}@dots{} [@var{packages}@dots{}]\n"
 msgstr "guix weather @var{opciones}@dots{} [@var{paquetes}@dots{}]\n"
 
 #. type: Plain text
-#: doc/guix.texi:10828
+#: doc/guix.texi:12747
 msgid "When @var{packages} is omitted, @command{guix weather} checks the availability of substitutes for @emph{all} the packages, or for those specified with @option{--manifest}; otherwise it only considers the specified packages.  It is also possible to query specific system types with @option{--system}.  @command{guix weather} exits with a non-zero code when the fraction of available substitutes is below 100%."
 msgstr "Cuando se omite @var{paquetes}, @command{guix weather} comprueba la disponibilidad de sustituciones para @emph{todos} los paquetes, o para aquellos especificados con la opción @option{--manifest}; en otro caso considera únicamente los paquetes especificados. También es posible consultar tipos de sistema específicos con @option{--system}. @command{guix weather} termina con un código de salida distinto a cero cuando la fracción de sustituciones disponibles se encuentra por debajo del 100%."
 
 #. type: Plain text
-#: doc/guix.texi:10830
+#: doc/guix.texi:12749
 msgid "The available options are listed below."
 msgstr "Las opciones disponibles se enumeran a continuación."
 
 #. type: table
-#: doc/guix.texi:10836
+#: doc/guix.texi:12755
 msgid "@var{urls} is the space-separated list of substitute server URLs to query.  When this option is omitted, the default set of substitute servers is queried."
 msgstr "@var{urls} es la lista separada por espacios de URL de servidores de sustituciones a consultar. Cuando se omite esta opción, el conjunto predeterminado de servidores de sustituciones es el consultado."
 
 #. type: table
-#: doc/guix.texi:10842
+#: doc/guix.texi:12761
 msgid "Query substitutes for @var{system}---e.g., @code{aarch64-linux}.  This option can be repeated, in which case @command{guix weather} will query substitutes for several system types."
 msgstr "Consulta sustituciones para @var{sistema}---por ejemplo, @code{aarch64-linux}. Esta opción se puede repetir, en cuyo caso @command{guix weather} consultará las sustituciones para varios tipos de sistema."
 
 #. type: table
-#: doc/guix.texi:10848
+#: doc/guix.texi:12767
 msgid "Instead of querying substitutes for all the packages, only ask for those specified in @var{file}.  @var{file} must contain a @dfn{manifest}, as with the @code{-m} option of @command{guix package} (@pxref{Invoking guix package})."
-msgstr "En vez de consultar las sustituciones de todos los paquetes, consulta únicamente los especificados en @var{fichero}. @var{fichero} debe contener un @dfn{manifiesto}, como el usado en la opción @code{-m} de @command{guix package} (@pxref{Invoking guix package})."
+msgstr "En vez de consultar las sustituciones de todos los paquetes, consulta únicamente los especificados en @var{archivo}. @var{archivo} debe contener un @dfn{manifiesto}, como el usado en la opción @code{-m} de @command{guix package} (@pxref{Invoking guix package})."
 
 #. type: table
-#: doc/guix.texi:10851
+#: doc/guix.texi:12770
 msgid "This option can be repeated several times, in which case the manifests are concatenated."
 msgstr "Esta opción puede repetirse varias veces, en cuyo caso los manifiestos se concatenan."
 
 #. type: item
-#: doc/guix.texi:10852
+#: doc/guix.texi:12771
 #, no-wrap
 msgid "--coverage[=@var{count}]"
 msgstr "--coverage[=@var{numero}]"
 
 #. type: itemx
-#: doc/guix.texi:10853
+#: doc/guix.texi:12772
 #, no-wrap
 msgid "-c [@var{count}]"
 msgstr "-c [@var{numero}]"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:10859
+#: doc/guix.texi:12778
 msgid "Report on substitute coverage for packages: list packages with at least @var{count} dependents (zero by default) for which substitutes are unavailable.  Dependent packages themselves are not listed: if @var{b} depends on @var{a} and @var{a} has no substitutes, only @var{a} is listed, even though @var{b} usually lacks substitutes as well.  The result looks like this:"
 msgstr "Informa de la cobertura de sustituciones para paquetes: enumera paquetes con al menos @var{número} dependientes (cero por omisión) para los cuales no haya sustituciones disponibles. Los paquetes dependientes en sí no se enumeran: si @var{b} depende de @var{a} y @var{a} no tiene sustituciones disponibles, únicamente se muestra @var{a}, aunque @var{b} normalmente no tenga sustituciones tampoco. El resultado es más o menos así:"
 
 #. type: example
-#: doc/guix.texi:10873
+#: doc/guix.texi:12792
 #, no-wrap
 msgid ""
 "$ guix weather --substitute-urls=@value{SUBSTITUTE-URL} -c 10\n"
@@ -20257,41 +23596,41 @@ msgstr ""
 "    @dots{}\n"
 
 #. type: table
-#: doc/guix.texi:10878
+#: doc/guix.texi:12797
 msgid "What this example shows is that @code{kcoreaddons} and presumably the 58 packages that depend on it have no substitutes at @code{ci.guix.info}; likewise for @code{qgpgme} and the 46 packages that depend on it."
 msgstr "Lo que este ejemplo muestra es que @code{kcoreaddons} y presumiblemente los 58 paquetes que dependen de él no tienen sustituciones disponibles en @code{ci.guix.info}; del mismo modo que @code{qgpgme} y los 46 paquetes que dependen de él."
 
 #. type: table
-#: doc/guix.texi:10882
+#: doc/guix.texi:12801
 msgid "If you are a Guix developer, or if you are taking care of this build farm, you'll probably want to have a closer look at these packages: they may simply fail to build."
 msgstr "Si es una desarrolladora Guix, o si se encuentra a cargo de esta granja de construcción, probablemente quiera inspeccionar estos paquetes con más detalle: simplemente puede que su construcción falle."
 
 #. type: item
-#: doc/guix.texi:10883
+#: doc/guix.texi:12802
 #, no-wrap
 msgid "--display-missing"
 msgstr "--display-missing"
 
 #. type: table
-#: doc/guix.texi:10885
+#: doc/guix.texi:12804
 msgid "Display the list of store items for which substitutes are missing."
 msgstr "Muestra los elementos del almacén para los que faltan las sustituciones."
 
 #. type: section
-#: doc/guix.texi:10888
+#: doc/guix.texi:12807
 #, no-wrap
 msgid "Invoking @command{guix processes}"
 msgstr "Invocación de @command{guix processes}"
 
 #. type: Plain text
-#: doc/guix.texi:10896
+#: doc/guix.texi:12815
 msgid "The @command{guix processes} command can be useful to developers and system administrators, especially on multi-user machines and on build farms: it lists the current sessions (connections to the daemon), as well as information about the processes involved@footnote{Remote sessions, when @command{guix-daemon} is started with @option{--listen} specifying a TCP endpoint, are @emph{not} listed.}.  Here's an example of the information it returns:"
 msgstr "La orden @command{guix processes} puede ser útil a desarrolladoras y administradoras de sistemas, especialmente en máquinas multiusuaria y en granjas de construcción: enumera las sesiones actuales (conexiones al daemon), así como información sobre los procesos envueltos@footnote{Las sesiones remotas, cuando @command{guix-daemon} se ha iniciado con @option{--listen} especificando un punto de conexión TCP, @emph{no} son enumeradas.}. A continuación puede verse un ejemplo de la información que devuelve:"
 
 # FUZZY
 # TODO: Actualizar cuando se traduzca guix
 #. type: example
-#: doc/guix.texi:10902
+#: doc/guix.texi:12821
 #, no-wrap
 msgid ""
 "$ sudo guix processes\n"
@@ -20309,7 +23648,7 @@ msgstr ""
 # FUZZY
 # TODO: Actualizar cuando se traduzca guix
 #. type: example
-#: doc/guix.texi:10906
+#: doc/guix.texi:12825
 #, no-wrap
 msgid ""
 "SessionPID: 19402\n"
@@ -20325,7 +23664,7 @@ msgstr ""
 # FUZZY
 # TODO: Actualizar cuando se traduzca guix
 #. type: example
-#: doc/guix.texi:10916
+#: doc/guix.texi:12835
 #, no-wrap
 msgid ""
 "SessionPID: 19444\n"
@@ -20351,28 +23690,28 @@ msgstr ""
 # FUZZY
 # TODO: Actualizar cuando se traduzca guix
 #. type: Plain text
-#: doc/guix.texi:10923
+#: doc/guix.texi:12842
 msgid "In this example we see that @command{guix-daemon} has three clients: @command{guix environment}, @command{guix publish}, and the Cuirass continuous integration tool; their process identifier (PID) is given by the @code{ClientPID} field.  The @code{SessionPID} field gives the PID of the @command{guix-daemon} sub-process of this particular session."
 msgstr "En este ejemplo vemos que @command{guix-daemon} tiene tres clientes: @command{guix environment}, @command{guix publish} y la herramienta de integración continua Cuirass; sus identificadores de proceso (PID) se muestran en el campo @code{ClientPID}. El campo @code{SessionPID} proporciona el PID del subproceso de @command{guix-daemon} de cada sesión en particular."
 
 # FUZZY
 # TODO: Actualizar cuando se traduzca guix
 #. type: Plain text
-#: doc/guix.texi:10930
-msgid "The @code{LockHeld} fields show which store items are currently locked by this session, which corresponds to store items being built or substituted (the @code{LockHeld} field is not displayed when @command{guix processes} is not running as root.)  Last, by looking at the @code{ChildProcess} field, we understand that these three builds are being offloaded (@pxref{Daemon Offload Setup})."
+#: doc/guix.texi:12849
+msgid "The @code{LockHeld} fields show which store items are currently locked by this session, which corresponds to store items being built or substituted (the @code{LockHeld} field is not displayed when @command{guix processes} is not running as root).  Last, by looking at the @code{ChildProcess} field, we understand that these three builds are being offloaded (@pxref{Daemon Offload Setup})."
 msgstr "El campo @code{LockHeld} muestra qué elementos del almacén están bloqueados actualmente por cada sesión, lo que corresponde a elementos del almacén en construcción o sustitución (el campo @code{LockHeld} no se muestra cuando @command{guix processes} no se ejecutó como root). Por último, mediante el campo @code{ChildProcess} entendemos que esas tres construcciones están siendo delegadas (@pxref{Daemon Offload Setup})."
 
 # FUZZY
 # TODO: Actualizar cuando se traduzca guix
 #. type: Plain text
-#: doc/guix.texi:10935
+#: doc/guix.texi:12854
 msgid "The output is in Recutils format so we can use the handy @command{recsel} command to select sessions of interest (@pxref{Selection Expressions,,, recutils, GNU recutils manual}).  As an example, the command shows the command line and PID of the client that triggered the build of a Perl package:"
 msgstr "La salida está en formato Recutils por lo que podemos usar la útil orden @command{recsel} para seleccionar sesiones de interés (@pxref{Selection Expressions,,, recutils, GNU recutils manual}). Como un ejemplo, la siguiente orden muestra la línea de órdenes y el PID del cliente que inició la construcción de un paquete Perl:"
 
 # FUZZY
 # TODO: Actualizar cuando se traduzca guix
 #. type: example
-#: doc/guix.texi:10941
+#: doc/guix.texi:12860
 #, no-wrap
 msgid ""
 "$ sudo guix processes | \\\n"
@@ -20386,90 +23725,90 @@ msgstr ""
 "ClientCommand: cuirass --cache-directory /var/cache/cuirass @dots{}\n"
 
 #. type: cindex
-#: doc/guix.texi:10946
+#: doc/guix.texi:12865
 #, no-wrap
 msgid "system configuration"
 msgstr "configuración del sistema"
 
 #. type: Plain text
-#: doc/guix.texi:10952
+#: doc/guix.texi:12871
 msgid "Guix System supports a consistent whole-system configuration mechanism.  By that we mean that all aspects of the global system configuration---such as the available system services, timezone and locale settings, user accounts---are declared in a single place.  Such a @dfn{system configuration} can be @dfn{instantiated}---i.e., effected."
 msgstr "El sistema Guix permite un mecanismo de configuración del sistema completo consistente. Con esto queremos decir que todos los aspectos de la configuración global del sistema---como los servicios disponibles, la zona horaria y la configuración de localización, las cuentas de usuarias---se declaran en un lugar único. Dicha @dfn{configuración del sistema} puede ser @dfn{instanciada}---es decir, hecha efectiva."
 
 #. type: Plain text
-#: doc/guix.texi:10962
+#: doc/guix.texi:12881
 msgid "One of the advantages of putting all the system configuration under the control of Guix is that it supports transactional system upgrades, and makes it possible to roll back to a previous system instantiation, should something go wrong with the new one (@pxref{Features}).  Another advantage is that it makes it easy to replicate the exact same configuration across different machines, or at different points in time, without having to resort to additional administration tools layered on top of the own tools of the system."
 msgstr "Una de las ventajas de poner toda la configuración del sistema bajo el control de Guix es que permite actualizaciones transaccionales del sistema, y hace posible volver a una instanciación previa del sistema, en caso de que haya algún problema con la nueva (@pxref{Features}). Otra ventaja es que hace fácil replicar exactamente la misma configuración entre máquinas diferentes, o en diferentes momentos, sin tener que utilizar herramientas de administración adicionales sobre las propias herramientas del sistema."
 
 #. type: Plain text
-#: doc/guix.texi:10967
+#: doc/guix.texi:12886
 msgid "This section describes this mechanism.  First we focus on the system administrator's viewpoint---explaining how the system is configured and instantiated.  Then we show how this mechanism can be extended, for instance to support new system services."
 msgstr "Esta sección describe este mecanismo. Primero nos enfocaremos en el punto de vista de la administradora del sistema---explicando cómo se configura e instancia el sistema. Después mostraremos cómo puede extenderse este mecanismo, por ejemplo para añadir nuevos servicios del sistema."
 
 #. type: Plain text
-#: doc/guix.texi:10996
+#: doc/guix.texi:12915
 msgid "The operating system is configured by providing an @code{operating-system} declaration in a file that can then be passed to the @command{guix system} command (@pxref{Invoking guix system}).  A simple setup, with the default system services, the default Linux-Libre kernel, initial RAM disk, and boot loader looks like this:"
-msgstr "El sistema operativo se configura proporcionando una declaración @code{operating-system} en un fichero que pueda ser proporcionado a la orden @command{guix system} (@pxref{Invoking guix system}). Una configuración simple, con los servicios predeterminados del sistema, el núcleo Linux-Libre predeterminado, un disco de RAM inicial y un cargador de arranque puede ser como sigue:"
+msgstr "El sistema operativo se configura proporcionando una declaración @code{operating-system} en un archivo que pueda ser proporcionado a la orden @command{guix system} (@pxref{Invoking guix system}). Una configuración simple, con los servicios predeterminados del sistema, el núcleo Linux-Libre predeterminado, un disco de RAM inicial y un cargador de arranque puede ser como sigue:"
 
 #. type: code{#1}
-#: doc/guix.texi:10997 doc/guix.texi:27149
+#: doc/guix.texi:12916 doc/guix.texi:31303
 #, no-wrap
 msgid "operating-system"
 msgstr "operating-system"
 
 #. type: include
-#: doc/guix.texi:10999
+#: doc/guix.texi:12918
 #, no-wrap
 msgid "os-config-bare-bones.texi"
 msgstr "os-config-bare-bones.texi"
 
 #. type: Plain text
-#: doc/guix.texi:11006
+#: doc/guix.texi:12925
 msgid "This example should be self-describing.  Some of the fields defined above, such as @code{host-name} and @code{bootloader}, are mandatory.  Others, such as @code{packages} and @code{services}, can be omitted, in which case they get a default value."
 msgstr "Este ejemplo debería ser auto-descriptivo. Algunos de los campos definidos anteriormente, como @code{host-name} y @code{bootloader}, son necesarios. Otros como @code{packages} y @code{services}, pueden omitirse, en cuyo caso obtienen un valor por defecto."
 
 #. type: Plain text
-#: doc/guix.texi:11011
+#: doc/guix.texi:12930
 msgid "Below we discuss the effect of some of the most important fields (@pxref{operating-system Reference}, for details about all the available fields), and how to @dfn{instantiate} the operating system using @command{guix system}."
 msgstr "Más adelante se muestran los efectos de algunos de los campos más importantes (@pxref{operating-system Reference}, para detalles acerca de todos los campos disponibles), y cómo @dfn{instanciar} el sistema operativo usando @command{guix system}."
 
 #. type: unnumberedsubsec
-#: doc/guix.texi:11012
+#: doc/guix.texi:12931
 #, no-wrap
 msgid "Bootloader"
 msgstr "Cargador de arranque"
 
 #. type: cindex
-#: doc/guix.texi:11014
+#: doc/guix.texi:12933
 #, no-wrap
 msgid "legacy boot, on Intel machines"
 msgstr "arranque obsoleto, en máquinas Intel"
 
 #. type: cindex
-#: doc/guix.texi:11015
+#: doc/guix.texi:12934
 #, no-wrap
 msgid "BIOS boot, on Intel machines"
 msgstr "arranque por BIOS, en máquinas Intel"
 
 #. type: cindex
-#: doc/guix.texi:11016
+#: doc/guix.texi:12935
 #, no-wrap
 msgid "UEFI boot"
 msgstr "arranque UEFI"
 
 #. type: cindex
-#: doc/guix.texi:11017
+#: doc/guix.texi:12936
 #, no-wrap
 msgid "EFI boot"
 msgstr "arranque EFI"
 
 #. type: Plain text
-#: doc/guix.texi:11023
+#: doc/guix.texi:12942
 msgid "The @code{bootloader} field describes the method that will be used to boot your system.  Machines based on Intel processors can boot in ``legacy'' BIOS mode, as in the example above.  However, more recent machines rely instead on the @dfn{Unified Extensible Firmware Interface} (UEFI) to boot.  In that case, the @code{bootloader} field should contain something along these lines:"
 msgstr "El campo @code{bootloader} describe el método que será usado para arrancar su sistema. Las máquinas basadas en procesadores Intel pueden arrancar en el ``obsoleto'' modo BIOS, como en el ejemplo previo. No obstante, máquinas más recientes usan la @dfn{Interfaz Unificada Extensible de Firmware} (UEFI) para arrancar. En ese caso, el capo @code{bootloader} debe contener algo parecido a esto:"
 
 #. type: lisp
-#: doc/guix.texi:11028
+#: doc/guix.texi:12947
 #, no-wrap
 msgid ""
 "(bootloader-configuration\n"
@@ -20481,29 +23820,29 @@ msgstr ""
 "  (target \"/boot/efi\"))\n"
 
 #. type: Plain text
-#: doc/guix.texi:11032
+#: doc/guix.texi:12951
 msgid "@xref{Bootloader Configuration}, for more information on the available configuration options."
 msgstr "@xref{Bootloader Configuration}, para más información sobre las opciones de configuración disponibles."
 
 #. type: unnumberedsubsec
-#: doc/guix.texi:11033
+#: doc/guix.texi:12952
 #, no-wrap
 msgid "Globally-Visible Packages"
 msgstr "Paquetes visibles globalmente"
 
 #. type: vindex
-#: doc/guix.texi:11035
+#: doc/guix.texi:12954
 #, no-wrap
 msgid "%base-packages"
 msgstr "%base-packages"
 
 #. type: Plain text
-#: doc/guix.texi:11048
-msgid "The @code{packages} field lists packages that will be globally visible on the system, for all user accounts---i.e., in every user's @code{PATH} environment variable---in addition to the per-user profiles (@pxref{Invoking guix package}).  The @code{%base-packages} variable provides all the tools one would expect for basic user and administrator tasks---including the GNU Core Utilities, the GNU Networking Utilities, the GNU Zile lightweight text editor, @command{find}, @command{grep}, etc.  The example above adds GNU@tie{}Screen to those, taken from the @code{(gnu packages screen)} module (@pxref{Package Modules}).  The @code{(list package output)} syntax can be used to add a specific output of a package:"
-msgstr "El campo @code{packages} enumera los paquetes que serán visibles globalmente en el sistema, para todas las cuentas de usuaria---es decir, en la variable de entorno @code{PATH} de cada usuaria---además de los perfiles por usuaria (@pxref{Invoking guix package}). La variable @code{%base-packages} proporciona todas las herramientas esperadas para tareas básicas y de administración---incluyendo las utilidades básicas GNU, las herramientas de red GNU, el editor de texto ligero GNU Zile, @command{find}, @command{grep}, etc. El ejemplo previo se añade GNU@tie{}Screen a estos, tomado del módulo @code{(gnu packages screen)} (@pxref{Package Modules}). La sintaxis @code{(list package output)} puede usarse para añadir una salida específica de un paquete:"
+#: doc/guix.texi:12967
+msgid "The @code{packages} field lists packages that will be globally visible on the system, for all user accounts---i.e., in every user's @env{PATH} environment variable---in addition to the per-user profiles (@pxref{Invoking guix package}).  The @code{%base-packages} variable provides all the tools one would expect for basic user and administrator tasks---including the GNU Core Utilities, the GNU Networking Utilities, the GNU Zile lightweight text editor, @command{find}, @command{grep}, etc.  The example above adds GNU@tie{}Screen to those, taken from the @code{(gnu packages screen)} module (@pxref{Package Modules}).  The @code{(list package output)} syntax can be used to add a specific output of a package:"
+msgstr "El campo @code{packages} enumera los paquetes que serán visibles globalmente en el sistema, para todas las cuentas de usuaria---es decir, en la variable de entorno @env{PATH} de cada usuaria---sin tener en cuenta los perfiles de cada usuaria (@pxref{Invoking guix package}). La variable @code{%base-packages} proporciona todas las herramientas esperadas para tareas básicas y de administración---incluyendo las utilidades básicas GNU, las herramientas de red GNU, el editor de texto ligero GNU Zile, @command{find}, @command{grep}, etc. El ejemplo previo se añade GNU@tie{}Screen a estos, tomado del módulo @code{(gnu packages screen)} (@pxref{Package Modules}). La sintaxis @code{(list package output)} puede usarse para añadir una salida específica de un paquete:"
 
 #. type: lisp
-#: doc/guix.texi:11052
+#: doc/guix.texi:12971
 #, no-wrap
 msgid ""
 "(use-modules (gnu packages))\n"
@@ -20515,7 +23854,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:11057
+#: doc/guix.texi:12976
 #, no-wrap
 msgid ""
 "(operating-system\n"
@@ -20529,18 +23868,18 @@ msgstr ""
 "                  %base-packages)))\n"
 
 #. type: findex
-#: doc/guix.texi:11059
+#: doc/guix.texi:12978
 #, no-wrap
 msgid "specification->package"
 msgstr "specification->package"
 
 #. type: Plain text
-#: doc/guix.texi:11068
+#: doc/guix.texi:12987
 msgid "Referring to packages by variable name, like @code{bind} above, has the advantage of being unambiguous; it also allows typos and such to be diagnosed right away as ``unbound variables''.  The downside is that one needs to know which module defines which package, and to augment the @code{use-package-modules} line accordingly.  To avoid that, one can use the @code{specification->package} procedure of the @code{(gnu packages)} module, which returns the best package for a given name or name and version:"
 msgstr "Referirse a los paquetes por nombre de variable, como antes a @code{bind}, tiene la ventaja de evitar ambigüedades; también permite que errores tipográficos y demás obtengan un diagnóstico directo como ``variables sin definir''. La parte problemática es que se necesita conocer qué módulo define qué paquete, y aumentar adecuadamente la línea de @code{use-package-modules}. Para evitar esto, se puede usar el procedimiento @code{specification->package} del módulo @code{(gnu packages)}, que devuelve el mejor paquete para un nombre dado, o nombre y versión:"
 
 #. type: lisp
-#: doc/guix.texi:11071
+#: doc/guix.texi:12990
 #, no-wrap
 msgid ""
 "(use-modules (gnu packages))\n"
@@ -20550,7 +23889,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:11077
+#: doc/guix.texi:12996
 #, no-wrap
 msgid ""
 "(operating-system\n"
@@ -20566,53 +23905,53 @@ msgstr ""
 "                    %base-packages)))\n"
 
 #. type: unnumberedsubsec
-#: doc/guix.texi:11079
+#: doc/guix.texi:12998
 #, no-wrap
 msgid "System Services"
 msgstr "Servicios del sistema"
 
 #. type: cindex
-#: doc/guix.texi:11081 doc/guix.texi:26072 doc/guix.texi:27362
+#: doc/guix.texi:13000 doc/guix.texi:30114 doc/guix.texi:31528
 #, no-wrap
 msgid "services"
 msgstr "services"
 
 #. type: vindex
-#: doc/guix.texi:11082
+#: doc/guix.texi:13001
 #, no-wrap
 msgid "%base-services"
 msgstr "%base-services"
 
 # FUZZY
 #. type: Plain text
-#: doc/guix.texi:11092
+#: doc/guix.texi:13011
 msgid "The @code{services} field lists @dfn{system services} to be made available when the system starts (@pxref{Services}).  The @code{operating-system} declaration above specifies that, in addition to the basic services, we want the OpenSSH secure shell daemon listening on port 2222 (@pxref{Networking Services, @code{openssh-service-type}}).  Under the hood, @code{openssh-service-type} arranges so that @command{sshd} is started with the right command-line options, possibly with supporting configuration files generated as needed (@pxref{Defining Services})."
-msgstr "El campo @code{services} enumera los @dfn{servicios del sistema} disponibles cuando el sistema arranque (@pxref{Services}). La declaración @code{operating-system} previa especifica que, además de los servicios básicos, queremos que el daemon de shell seguro OpenSSH espere conexiones por el puerto 2222 (@pxref{Networking Services, @code{openssh-service-type}}). En su implementación, @code{openssh-service-type} prepara todo para que @code{sshd} se inicie con las opciones de la línea de órdenes adecuadas, posiblemente generando bajo demanda los ficheros de configuración necesarios (@pxref{Defining Services})."
+msgstr "El campo @code{services} enumera los @dfn{servicios del sistema} disponibles cuando el sistema arranque (@pxref{Services}). La declaración @code{operating-system} previa especifica que, además de los servicios básicos, queremos que el daemon de shell seguro OpenSSH espere conexiones por el puerto 2222 (@pxref{Networking Services, @code{openssh-service-type}}). En su implementación, @code{openssh-service-type} prepara todo para que @code{sshd} se inicie con las opciones de la línea de órdenes adecuadas, posiblemente generando bajo demanda los archivos de configuración necesarios (@pxref{Defining Services})."
 
 #. type: cindex
-#: doc/guix.texi:11093
+#: doc/guix.texi:13012
 #, no-wrap
 msgid "customization, of services"
 msgstr "personalización, de servicios"
 
 #. type: findex
-#: doc/guix.texi:11094
+#: doc/guix.texi:13013
 #, no-wrap
 msgid "modify-services"
 msgstr "modify-services"
 
 #. type: Plain text
-#: doc/guix.texi:11098
+#: doc/guix.texi:13017
 msgid "Occasionally, instead of using the base services as is, you will want to customize them.  To do this, use @code{modify-services} (@pxref{Service Reference, @code{modify-services}}) to modify the list."
 msgstr "De manera ocasional, en vez de usar los servicios básicos tal y como vienen, puede querer personalizarlos. Para hacerlo, use @code{modify-services} (@pxref{Service Reference, @code{modify-services}}) para modificar la lista."
 
 #. type: Plain text
-#: doc/guix.texi:11103
+#: doc/guix.texi:13022
 msgid "For example, suppose you want to modify @code{guix-daemon} and Mingetty (the console log-in) in the @code{%base-services} list (@pxref{Base Services, @code{%base-services}}).  To do that, you can write the following in your operating system declaration:"
 msgstr "Por ejemplo, supongamos que quiere modificar @code{guix-daemon} y Mingetty (el punto de acceso al sistema por consola) en la lista @code{%base-services} (@pxref{Base Services, @code{%base-services}}). Para hacerlo, puede escribir lo siguiente en su declaración de sistema operativo:"
 
 #. type: lisp
-#: doc/guix.texi:11116
+#: doc/guix.texi:13039
 #, no-wrap
 msgid ""
 "(define %my-services\n"
@@ -20621,11 +23960,15 @@ msgid ""
 "    (guix-service-type config =>\n"
 "                       (guix-configuration\n"
 "                        (inherit config)\n"
-"                        (use-substitutes? #f)\n"
-"                        (extra-options '(\"--gc-keep-derivations\"))))\n"
+"                        ;; Fetch substitutes from example.org.\n"
+"                        (substitute-urls\n"
+"                          (list \"https://example.org/guix\"\n"
+"                                \"https://ci.guix.gnu.org\"))))\n"
 "    (mingetty-service-type config =>\n"
 "                           (mingetty-configuration\n"
-"                            (inherit config)))))\n"
+"                            (inherit config)\n"
+"                            ;; Automatially log in as \"guest\".\n"
+"                            (auto-login \"guest\")))))\n"
 "\n"
 msgstr ""
 "(define %mis-servicios\n"
@@ -20634,15 +23977,20 @@ msgstr ""
 "    (guix-service-type config =>\n"
 "                       (guix-configuration\n"
 "                        (inherit config)\n"
-"                        (use-substitutes? #f)\n"
-"                        (extra-options '(\"--gc-keep-derivations\"))))\n"
+"                        ;; Obtenemos sustituciones desde example.org.\n"
+"                        (substitute-urls\n"
+"                          (list \"https://example.org/guix\"\n"
+"                                \"https://ci.guix.gnu.org\"))))\n"
 "    (mingetty-service-type config =>\n"
 "                           (mingetty-configuration\n"
-"                            (inherit config)))))\n"
+"                            (inherit config)\n"
+"                            ;; Ingresamos automáticamente con\n"
+"                            ;; la cuenta \"guest\".\n"
+"                            (auto-login \"guest\")))))\n"
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:11120
+#: doc/guix.texi:13043
 #, no-wrap
 msgid ""
 "(operating-system\n"
@@ -20654,50 +24002,50 @@ msgstr ""
 "  (services %mis-servicios))\n"
 
 #. type: Plain text
-#: doc/guix.texi:11131
+#: doc/guix.texi:13054
 msgid "This changes the configuration---i.e., the service parameters---of the @code{guix-service-type} instance, and that of all the @code{mingetty-service-type} instances in the @code{%base-services} list.  Observe how this is accomplished: first, we arrange for the original configuration to be bound to the identifier @code{config} in the @var{body}, and then we write the @var{body} so that it evaluates to the desired configuration.  In particular, notice how we use @code{inherit} to create a new configuration which has the same values as the old configuration, but with a few modifications."
 msgstr "Esto modifica la configuración---es decir, los parámetros de los servicios---de la instancia @code{guix-service-type}, y de todas las instancias de @code{mingetty-service-type} en la lista @code{%base-services}. Observe cómo se consigue: primero, enlazamos la configuración actual al identificador @code{config} en el @var{cuerpo}, y entonces escribimos el @var{cuerpo} de manera que evalúe a la configuración deseada. En particular, fíjese como se usa @code{inherit} para crear una nueva configuración que tiene los mismos valores que la configuración antigua, pero con unas pocas modificaciones."
 
 #. type: Plain text
-#: doc/guix.texi:11138
+#: doc/guix.texi:13061
 msgid "The configuration for a typical ``desktop'' usage, with an encrypted root partition, the X11 display server, GNOME and Xfce (users can choose which of these desktop environments to use at the log-in screen by pressing @kbd{F1}), network management, power management, and more, would look like this:"
 msgstr "La configuración para un uso típico de ``escritorio'', con una partición de raíz cifrada, el servidor gráfico X11, GNOME y Xfce (las usuarias pueden escoger cual de estos entornos de escritorio usarán en la pantalla de inicio de sesión pulsando @kbd{F1}), gestión de red, gestión de energía y más, podría ser así:"
 
 #. type: include
-#: doc/guix.texi:11140
+#: doc/guix.texi:13063
 #, no-wrap
 msgid "os-config-desktop.texi"
 msgstr "os-config-desktop.texi"
 
 #. type: Plain text
-#: doc/guix.texi:11145
+#: doc/guix.texi:13068
 msgid "A graphical system with a choice of lightweight window managers instead of full-blown desktop environments would look like this:"
 msgstr "Un sistema gráfico con una selección de gestores de ventanas ligeros en vez de entornos de escritorio completos podría ser así:"
 
 #. type: include
-#: doc/guix.texi:11147
+#: doc/guix.texi:13070
 #, no-wrap
 msgid "os-config-lightweight-desktop.texi"
 msgstr "os-config-lightweight-desktop.texi"
 
 #. type: Plain text
-#: doc/guix.texi:11153
+#: doc/guix.texi:13076
 msgid "This example refers to the @file{/boot/efi} file system by its UUID, @code{1234-ABCD}.  Replace this UUID with the right UUID on your system, as returned by the @command{blkid} command."
-msgstr "Este ejemplo se refiere al sistema de ficheros @file{/boot/efi} por su UUID @code{1234-ABCD}. Substituya este UUID con el UUID correcto en su sistema, como el devuelto por la orden @command{blkid}."
+msgstr "Este ejemplo se refiere al sistema de archivos @file{/boot/efi} por su UUID @code{1234-ABCD}. Substituya este UUID con el UUID correcto en su sistema, como el devuelto por la orden @command{blkid}."
 
 # FUZZY
 #. type: Plain text
-#: doc/guix.texi:11157
+#: doc/guix.texi:13080
 msgid "@xref{Desktop Services}, for the exact list of services provided by @code{%desktop-services}.  @xref{X.509 Certificates}, for background information about the @code{nss-certs} package that is used here."
 msgstr "@xref{Desktop Services}, para la lista exacta de servicios proporcionados por @code{%desktop-services}. @xref{X.509 Certificates}, para información sobre el paquete @code{nss-certs} usado aquí."
 
 #. type: Plain text
-#: doc/guix.texi:11164
+#: doc/guix.texi:13087
 msgid "Again, @code{%desktop-services} is just a list of service objects.  If you want to remove services from there, you can do so using the procedures for list filtering (@pxref{SRFI-1 Filtering and Partitioning,,, guile, GNU Guile Reference Manual}).  For instance, the following expression returns a list that contains all the services in @code{%desktop-services} minus the Avahi service:"
 msgstr "De nuevo, @code{%desktop-services} es simplemente una lista de objetos de servicios. Si desea borrar servicios de aquí, puede hacerlo usando procedimientos de filtrado de listas (@pxref{SRFI-1 Filtering and Partitioning,,, guile, GNU Guile Reference Manual}). Por ejemplo, la siguiente expresión devuelve una lista que contiene todos los servicios en @code{%desktop-services} excepto el servicio Avahi:"
 
 #. type: lisp
-#: doc/guix.texi:11169
+#: doc/guix.texi:13092
 #, no-wrap
 msgid ""
 "(remove (lambda (service)\n"
@@ -20709,339 +24057,416 @@ msgstr ""
 "        %desktop-services)\n"
 
 #. type: unnumberedsubsec
-#: doc/guix.texi:11171
+#: doc/guix.texi:13094
 #, no-wrap
 msgid "Instantiating the System"
 msgstr "Instanciación del sistema"
 
 #. type: Plain text
-#: doc/guix.texi:11178
+#: doc/guix.texi:13101
 msgid "Assuming the @code{operating-system} declaration is stored in the @file{my-system-config.scm} file, the @command{guix system reconfigure my-system-config.scm} command instantiates that configuration, and makes it the default GRUB boot entry (@pxref{Invoking guix system})."
-msgstr "Asumiendo que la declaración de @code{operating-system} se encuentra en el fichero @file{mi-configuración-del-sistema.scm}, la orden @command{guix system mi-conf-del-sistema.scm} instancia esa configuración, y la convierte en la entrada predeterminada de GRUB en el arranque (@pxref{Invoking guix system})."
+msgstr "Asumiendo que la declaración de @code{operating-system} se encuentra en el archivo @file{mi-configuración-del-sistema.scm}, la orden @command{guix system mi-conf-del-sistema.scm} instancia esa configuración, y la convierte en la entrada predeterminada de GRUB en el arranque (@pxref{Invoking guix system})."
 
 #. type: Plain text
-#: doc/guix.texi:11186
+#: doc/guix.texi:13109
 msgid "The normal way to change the system configuration is by updating this file and re-running @command{guix system reconfigure}.  One should never have to touch files in @file{/etc} or to run commands that modify the system state such as @command{useradd} or @command{grub-install}.  In fact, you must avoid that since that would not only void your warranty but also prevent you from rolling back to previous versions of your system, should you ever need to."
-msgstr "La manera habitual de cambiar la configuración del sistema es actualizar este fichero y volver a ejecutar @command{guix system reconfigure}. Nunca se deberían tocar los ficheros en @file{/etc} o ejecutar órdenes que modifiquen el estado del sistema como @command{useradd} o @command{grub-install}. De hecho, debe evitarlo ya que no únicamente anularía su garantía sino que también le impediría volver a una versión previa de su sistema, en caso de necesitarlo."
+msgstr "La manera habitual de cambiar la configuración del sistema es actualizar este archivo y volver a ejecutar @command{guix system reconfigure}. Nunca se deberían tocar los archivos en @file{/etc} o ejecutar órdenes que modifiquen el estado del sistema como @command{useradd} o @command{grub-install}. De hecho, debe evitarlo ya que no únicamente anularía su garantía sino que también le impediría volver a una versión previa de su sistema, en caso de necesitarlo."
 
 #. type: cindex
-#: doc/guix.texi:11187
+#: doc/guix.texi:13110
 #, no-wrap
 msgid "roll-back, of the operating system"
 msgstr "vuelta-atrás, del sistema operativo"
 
 #. type: Plain text
-#: doc/guix.texi:11197
+#: doc/guix.texi:13120
 msgid "Speaking of roll-back, each time you run @command{guix system reconfigure}, a new @dfn{generation} of the system is created---without modifying or deleting previous generations.  Old system generations get an entry in the bootloader boot menu, allowing you to boot them in case something went wrong with the latest generation.  Reassuring, no? The @command{guix system list-generations} command lists the system generations available on disk.  It is also possible to roll back the system via the commands @command{guix system roll-back} and @command{guix system switch-generation}."
 msgstr "Hablando de vuelta atrás, cada vez que ejecuta @command{guix system reconfigure} se crea una nueva @dfn{generación} del sistema---sin modificar o borrar generaciones previas. Las generaciones previas tienen una entrada en el menú del cargador de arranque, lo que permite arrancarlas en caso de que algo funcionase mal en las últimas generaciones. Tranquilizador, ¿no? La orden @command{guix system list-generations} enumera las generaciones del sistema disponibles en el disco. Es también posible volver a una versión previa con las órdenes @command{guix system roll-back} y @command{guix system switch-generation}."
 
 #. type: Plain text
-#: doc/guix.texi:11203
+#: doc/guix.texi:13126
 msgid "Although the @command{guix system reconfigure} command will not modify previous generations, you must take care when the current generation is not the latest (e.g., after invoking @command{guix system roll-back}), since the operation might overwrite a later generation (@pxref{Invoking guix system})."
 msgstr "Aunque la orden @command{guix system reconfigure} no modificará las generaciones previas, debe tener cuidado cuando la generación actual no es la última (por ejemplo, después de invocar @command{guix system roll-back}), ya que la operación puede sobreescribir una generación posterior (@pxref{Invoking guix system})."
 
 #. type: unnumberedsubsec
-#: doc/guix.texi:11204
+#: doc/guix.texi:13127
 #, no-wrap
 msgid "The Programming Interface"
 msgstr "La interfaz programática"
 
 #. type: Plain text
-#: doc/guix.texi:11209
+#: doc/guix.texi:13132
 msgid "At the Scheme level, the bulk of an @code{operating-system} declaration is instantiated with the following monadic procedure (@pxref{The Store Monad}):"
 msgstr "A nivel Scheme, el grueso de una declaración @code{operating-system} se instancia con el siguiente procedimiento monádico (@pxref{The Store Monad}):"
 
 #. type: deffn
-#: doc/guix.texi:11210
+#: doc/guix.texi:13133
 #, no-wrap
 msgid "{Monadic Procedure} operating-system-derivation os"
 msgstr "{Procedimiento monádico} operating-system-derivation so"
 
 #. type: deffn
-#: doc/guix.texi:11213
+#: doc/guix.texi:13136
 msgid "Return a derivation that builds @var{os}, an @code{operating-system} object (@pxref{Derivations})."
 msgstr "Devuelve una derivación que construye @var{so}, un objeto @code{operating-system} (@pxref{Derivations})."
 
 #. type: deffn
-#: doc/guix.texi:11217
+#: doc/guix.texi:13140
 msgid "The output of the derivation is a single directory that refers to all the packages, configuration files, and other supporting files needed to instantiate @var{os}."
-msgstr "La salida de la derivación es un único directorio que hace referencia a todos los paquetes, ficheros de configuración y otros ficheros auxiliares necesarios para instanciar @var{so}."
+msgstr "La salida de la derivación es un único directorio que hace referencia a todos los paquetes, archivos de configuración y otros archivos auxiliares necesarios para instanciar @var{so}."
 
 # FUZZY
 #. type: Plain text
-#: doc/guix.texi:11222
+#: doc/guix.texi:13145
 msgid "This procedure is provided by the @code{(gnu system)} module.  Along with @code{(gnu services)} (@pxref{Services}), this module contains the guts of Guix System.  Make sure to visit it!"
 msgstr "Este procedimiento se proporciona por el módulo @code{(gnu system)}. Junto con @code{(gnu services)} (@pxref{Services}), este módulo contiene los entresijos del sistema Guix. ¡Asegúrese de echarle un vistazo!"
 
 #. type: section
-#: doc/guix.texi:11225
+#: doc/guix.texi:13148
 #, no-wrap
 msgid "@code{operating-system} Reference"
 msgstr "Referencia de @code{operating-system}"
 
 #. type: Plain text
-#: doc/guix.texi:11230
+#: doc/guix.texi:13153
 msgid "This section summarizes all the options available in @code{operating-system} declarations (@pxref{Using the Configuration System})."
 msgstr "Esta sección resume todas las opciones disponibles en las declaraciones de @code{operating-system} (@pxref{Using the Configuration System})."
 
 #. type: deftp
-#: doc/guix.texi:11231
+#: doc/guix.texi:13154
 #, no-wrap
 msgid "{Data Type} operating-system"
 msgstr "{Tipo de datos} operating-system"
 
 #. type: deftp
-#: doc/guix.texi:11235
+#: doc/guix.texi:13158
 msgid "This is the data type representing an operating system configuration.  By that, we mean all the global system configuration, not per-user configuration (@pxref{Using the Configuration System})."
 msgstr "Este es el tipo de datos que representa la configuración del sistema operativo. Con ello queremos decir toda la configuración global del sistema, no la configuración específica de las usuarias (@pxref{Using the Configuration System})."
 
 #. type: item
-#: doc/guix.texi:11237
+#: doc/guix.texi:13160
 #, no-wrap
-msgid "@code{kernel} (default: @var{linux-libre})"
+msgid "@code{kernel} (default: @code{linux-libre})"
 msgstr "@code{kernel} (predeterminado: @code{linux-libre})"
 
 #. type: table
-#: doc/guix.texi:11241
-msgid "The package object of the operating system kernel to use@footnote{Currently only the Linux-libre kernel is supported.  In the future, it will be possible to use the GNU@tie{}Hurd.}."
-msgstr "El objeto del paquete del núcleo del sistema operativo usado@footnote{Actualmente únicamente está disponible el núcleo Linux-libre. En el futuro será posible usar GNU@tie{}Hurd.}."
+#: doc/guix.texi:13165
+msgid "The package object of the operating system kernel to use@footnote{Currently only the Linux-libre kernel is fully supported.  Using GNU@tie{}mach with the GNU@tie{}Hurd is experimental and only available when building a virtual machine disk image.}."
+msgstr "El objeto del paquete del núcleo del sistema operativo usado@footnote{Actualmente únicamente está completamente implementado el núcleo Linux-libre. El uso de GNU@tie{}mach con GNU@tie{}Hurd es experimental y únicamente está disponible cuando se construye una imagen de disco para máquina virtual.}."
+
+#. type: code{#1}
+#: doc/guix.texi:13166 doc/guix.texi:26900
+#, no-wrap
+msgid "hurd"
+msgstr "hurd"
+
+#. type: item
+#: doc/guix.texi:13167
+#, no-wrap
+msgid "@code{hurd} (default: @code{#f})"
+msgstr "@code{hurd} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:13172
+msgid "The package object of the Hurd to be started by the kernel.  When this field is set, produce a GNU/Hurd operating system.  In that case, @code{kernel} must also be set to the @code{gnumach} package---the microkernel the Hurd runs on."
+msgstr "El objeto del paquete de Hurd iniciado por el núcleo. Cuando se proporciona este campo, produce un sistema operativo GNU/Hurd. En ese caso, @code{kernel} también debe contener el paquete @code{gnumach}---el micronúcleo sobre el que se ejecuta Hurd."
+
+#. type: quotation
+#: doc/guix.texi:13175
+msgid "This feature is experimental and only supported for disk images."
+msgstr "Esta característica es experimental y únicamente está implementada para imágenes de disco."
 
 #. type: item
-#: doc/guix.texi:11242
+#: doc/guix.texi:13177
 #, no-wrap
 msgid "@code{kernel-loadable-modules} (default: '())"
 msgstr "@code{kernel-loadable-modules} (predeterminados: @code{'()})"
 
 # FUZZY FUZZY
 #. type: table
-#: doc/guix.texi:11245
+#: doc/guix.texi:13180
 msgid "A list of objects (usually packages) to collect loadable kernel modules from--e.g. @code{(list ddcci-driver-linux)}."
 msgstr "Una lista de objetos (habitualmente paquetes) desde los que se obtendrán los módulos del núcleo--por ejemplo @code{(list ddcci-driver-linux)}."
 
 #. type: item
-#: doc/guix.texi:11246
+#: doc/guix.texi:13181
 #, no-wrap
-msgid "@code{kernel-arguments} (default: @code{'(\"quiet\")})"
-msgstr "@code{kernel-arguments} (predeterminados: @code{'(\"quiet\")})"
+msgid "@code{kernel-arguments} (default: @code{%default-kernel-arguments})"
+msgstr "@code{kernel-arguments} (predeterminados: @code{%default-kernel-arguments})"
 
 #. type: table
-#: doc/guix.texi:11249
+#: doc/guix.texi:13184
 msgid "List of strings or gexps representing additional arguments to pass on the command-line of the kernel---e.g., @code{(\"console=ttyS0\")}."
 msgstr "Lista de cadenas o expresiones-G que representan parámetros adicionales a pasar en la línea de órdenes del núcleo---por ejemplo, @code{(\"console=ttyS0\")}."
 
 #. type: code{#1}
-#: doc/guix.texi:11250 doc/guix.texi:26283 doc/guix.texi:26302
+#: doc/guix.texi:13185 doc/guix.texi:30326 doc/guix.texi:30345
 #, no-wrap
 msgid "bootloader"
 msgstr "bootloader"
 
 #. type: table
-#: doc/guix.texi:11252
+#: doc/guix.texi:13187
 msgid "The system bootloader configuration object.  @xref{Bootloader Configuration}."
 msgstr "El objeto de configuración del cargador de arranque del sistema. @xref{Bootloader Configuration}."
 
 #. type: code{#1}
-#: doc/guix.texi:11253 doc/guix.texi:26422
+#: doc/guix.texi:13188 doc/guix.texi:30515
 #, no-wrap
 msgid "label"
 msgstr "label"
 
 #. type: table
-#: doc/guix.texi:11256
+#: doc/guix.texi:13191
 msgid "This is the label (a string) as it appears in the bootloader's menu entry.  The default label includes the kernel name and version."
 msgstr "Es una etiqueta (una cadena) con la que aparecerá en el menú del cargador de arranque. La etiqueta predeterminada incluye el nombre y la versión del núcleo."
 
 #. type: item
-#: doc/guix.texi:11257 doc/guix.texi:14756 doc/guix.texi:26352
+#: doc/guix.texi:13192 doc/guix.texi:17310 doc/guix.texi:30445
 #, no-wrap
 msgid "@code{keyboard-layout} (default: @code{#f})"
 msgstr "@code{keyboard-layout} (predeterminada: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:11261
+#: doc/guix.texi:13196
 msgid "This field specifies the keyboard layout to use in the console.  It can be either @code{#f}, in which case the default keyboard layout is used (usually US English), or a @code{<keyboard-layout>} record."
 msgstr "Este campo especifica la distribución de teclado usada para la consola. Puede ser o bien @code{#f}, en cuyo caso se usa la distribución predeterminada (normalmente Inglés de EEUU), o un registro @code{<keyboard-layout>}."
 
 #. type: table
-#: doc/guix.texi:11266
+#: doc/guix.texi:13201
 msgid "This keyboard layout is in effect as soon as the kernel has booted.  For instance, it is the keyboard layout in effect when you type a passphrase if your root file system is on a @code{luks-device-mapping} mapped device (@pxref{Mapped Devices})."
-msgstr "Esta distribución de teclado se hace efectiva tan pronto el núcleo haya arrancado. Por ejemplo, la distribución de teclado está en efecto cuando introduzca una contraseña si su sistema de ficheros raíz se encuentra en un dispositivo traducido @code{luks-device-mapping} (@pxref{Mapped Devices})."
+msgstr "Esta distribución de teclado se hace efectiva tan pronto el núcleo haya arrancado. Por ejemplo, la distribución de teclado está en efecto cuando introduzca una contraseña si su sistema de archivos raíz se encuentra en un dispositivo traducido @code{luks-device-mapping} (@pxref{Mapped Devices})."
 
 # FUZZY
 #. type: quotation
-#: doc/guix.texi:11273
+#: doc/guix.texi:13208
 msgid "This does @emph{not} specify the keyboard layout used by the bootloader, nor that used by the graphical display server.  @xref{Bootloader Configuration}, for information on how to specify the bootloader's keyboard layout.  @xref{X Window}, for information on how to specify the keyboard layout used by the X Window System."
 msgstr "Esto @emph{no} especifica la distribución de teclado usada por el cargador de arranque, ni tampoco la usada por el servidor gráfico. @xref{Bootloader Configuration}, para información sobre cómo especificar la distribución de teclado del cargador de arranque. @xref{X Window}, para información sobre cómo especificar la distribución de teclado usada por el sistema de ventanas X."
 
 #. type: item
-#: doc/guix.texi:11275
+#: doc/guix.texi:13210
 #, no-wrap
 msgid "@code{initrd-modules} (default: @code{%base-initrd-modules})"
 msgstr "@code{initrd-modules} (predeterminados: @code{%base-initrd-modules})"
 
-#. type: code{#1}
-#: doc/guix.texi:11276 doc/guix.texi:26109 doc/guix.texi:26212
-#: doc/guix.texi:26447
+#. type: cindex
+#: doc/guix.texi:13211 doc/guix.texi:30151 doc/guix.texi:30255
 #, no-wrap
 msgid "initrd"
 msgstr "initrd"
 
 #. type: cindex
-#: doc/guix.texi:11277 doc/guix.texi:26110 doc/guix.texi:26213
+#: doc/guix.texi:13212 doc/guix.texi:30152 doc/guix.texi:30256
 #, no-wrap
 msgid "initial RAM disk"
-msgstr "disco inicial de RAM"
+msgstr "disco inicial en RAM"
 
 #. type: table
-#: doc/guix.texi:11280
+#: doc/guix.texi:13215
 msgid "The list of Linux kernel modules that need to be available in the initial RAM disk.  @xref{Initial RAM Disk}."
-msgstr "La lista de módulos del núcleo Linux que deben estar disponibles en el disco inicial de RAM. @xref{Initial RAM Disk}."
+msgstr "La lista de módulos del núcleo Linux que deben estar disponibles en el disco inicial en RAM. @xref{Initial RAM Disk}."
 
 #. type: item
-#: doc/guix.texi:11281
+#: doc/guix.texi:13216
 #, no-wrap
 msgid "@code{initrd} (default: @code{base-initrd})"
 msgstr "@code{initrd} (predeterminado: @code{base-initrd})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:11285
+#: doc/guix.texi:13220
 msgid "A procedure that returns an initial RAM disk for the Linux kernel.  This field is provided to support low-level customization and should rarely be needed for casual use.  @xref{Initial RAM Disk}."
-msgstr "Un procedimiento que devuelve un disco inicial de RAM para el núcleo Linux. Este campo se proporciona para permitir personalizaciones de bajo nivel y no debería ser necesario para un uso habitual. @xref{Initial RAM Disk}."
+msgstr "Un procedimiento que devuelve un disco inicial en RAM para el núcleo Linux. Este campo se proporciona para permitir personalizaciones de bajo nivel y no debería ser necesario para un uso habitual. @xref{Initial RAM Disk}."
 
 #. type: item
-#: doc/guix.texi:11286
+#: doc/guix.texi:13221
 #, no-wrap
 msgid "@code{firmware} (default: @code{%base-firmware})"
 msgstr "@code{firmware} (predeterminado: @code{%base-firmware})"
 
 #. type: cindex
-#: doc/guix.texi:11287
+#: doc/guix.texi:13222
 #, no-wrap
 msgid "firmware"
 msgstr "firmware"
 
 #. type: table
-#: doc/guix.texi:11289
+#: doc/guix.texi:13224
 msgid "List of firmware packages loadable by the operating system kernel."
 msgstr "Lista de paquetes de firmware que pueden ser cargados por el núcleo del sistema operativo."
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:11294
+#: doc/guix.texi:13229
 msgid "The default includes firmware needed for Atheros- and Broadcom-based WiFi devices (Linux-libre modules @code{ath9k} and @code{b43-open}, respectively).  @xref{Hardware Considerations}, for more info on supported hardware."
 msgstr "El valor predeterminado incluye el firmware necesario para dispositivos WiFi basados en Atheros y Broadcom (módulos Linux-libre @code{ath9k} y @code{b43-open}, respectivamente). @xref{Hardware Considerations}, para más información sobre hardware soportado."
 
 #. type: code{#1}
-#: doc/guix.texi:11295 doc/guix.texi:27168
+#: doc/guix.texi:13230 doc/guix.texi:31322
 #, no-wrap
 msgid "host-name"
 msgstr "host-name"
 
 #. type: table
-#: doc/guix.texi:11297
+#: doc/guix.texi:13232
 msgid "The host name."
 msgstr "El nombre de la máquina."
 
 #. type: code{#1}
-#: doc/guix.texi:11298
+#: doc/guix.texi:13233
 #, no-wrap
 msgid "hosts-file"
 msgstr "hosts-file"
 
 #. type: cindex
-#: doc/guix.texi:11299
+#: doc/guix.texi:13234
 #, no-wrap
 msgid "hosts file"
-msgstr "el fichero hosts"
+msgstr "el archivo hosts"
 
 #. type: table
-#: doc/guix.texi:11304
+#: doc/guix.texi:13239
 msgid "A file-like object (@pxref{G-Expressions, file-like objects}) for use as @file{/etc/hosts} (@pxref{Host Names,,, libc, The GNU C Library Reference Manual}).  The default is a file with entries for @code{localhost} and @var{host-name}."
-msgstr "Un objeto tipo-fichero (@pxref{G-Expressions, objetos ``tipo-fichero''}) para ser usado como @file{/etc/hosts} (@pxref{Host Names,,, libc, The GNU C Library Reference Manual}). El predeterminado es un fichero con entradas para @code{localhost} y @var{host-name}."
+msgstr "Un objeto tipo-archivo (@pxref{G-Expressions, objetos ``tipo-archivo''}) para ser usado como @file{/etc/hosts} (@pxref{Host Names,,, libc, The GNU C Library Reference Manual}). El predeterminado es un archivo con entradas para @code{localhost} y @var{host-name}."
 
 #. type: item
-#: doc/guix.texi:11305
+#: doc/guix.texi:13240
 #, no-wrap
 msgid "@code{mapped-devices} (default: @code{'()})"
 msgstr "@code{mapped-devices} (predeterminados: @code{'()})"
 
 # TODO (MAAV): Comprobar.
 #. type: table
-#: doc/guix.texi:11307
+#: doc/guix.texi:13242
 msgid "A list of mapped devices.  @xref{Mapped Devices}."
 msgstr "Una lista de dispositivos traducidos. @xref{Mapped Devices}."
 
 #. type: code{#1}
-#: doc/guix.texi:11308
+#: doc/guix.texi:13243
 #, no-wrap
 msgid "file-systems"
 msgstr "file-systems"
 
 #. type: table
-#: doc/guix.texi:11310
+#: doc/guix.texi:13245
 msgid "A list of file systems.  @xref{File Systems}."
-msgstr "Una lista de sistemas de ficheros. @xref{File Systems}."
+msgstr "Una lista de sistemas de archivos. @xref{File Systems}."
+
+# TODO: (MAAV) Comprobar como se ha hecho en otros proyectos.
+#. type: cindex
+#: doc/guix.texi:13246
+#, no-wrap
+msgid "swap devices"
+msgstr "dispositivos de intercambio"
+
+# FUZZY
+#. type: cindex
+#: doc/guix.texi:13247
+#, no-wrap
+msgid "swap space"
+msgstr "memoria de intercambio"
 
 #. type: item
-#: doc/guix.texi:11311
+#: doc/guix.texi:13248
 #, no-wrap
 msgid "@code{swap-devices} (default: @code{'()})"
 msgstr "@code{swap-devices} (predeterminados: @code{'()})"
 
-# TODO: (MAAV) Comprobar como se ha hecho en otros proyectos.
-#. type: cindex
-#: doc/guix.texi:11312
+#. type: table
+#: doc/guix.texi:13253
+msgid "A list of UUIDs, file system labels, or strings identifying devices or files to be used for ``swap space'' (@pxref{Memory Concepts,,, libc, The GNU C Library Reference Manual}).  Here are some examples:"
+msgstr "Lista de UUID, etiquetas de sistema de archivos o cadenas que identifiquen dispositivos o archivos que se usarán como espacio de intercambio (@pxref{Memory Concepts,,, libc, The GNU C Library Reference Manual}). A continuación puede encontrar algunos ejemplos:"
+
+#. type: item
+#: doc/guix.texi:13255
 #, no-wrap
-msgid "swap devices"
-msgstr "dispositivos de intercambio"
+msgid "(list (uuid \"4dab5feb-d176-45de-b287-9b0a6e4c01cb\"))"
+msgstr "(list (uuid \"4dab5feb-d176-45de-b287-9b0a6e4c01cb\"))"
 
 #. type: table
-#: doc/guix.texi:11319
-msgid "A list of strings identifying devices or files to be used for ``swap space'' (@pxref{Memory Concepts,,, libc, The GNU C Library Reference Manual}).  For example, @code{'(\"/dev/sda3\")} or @code{'(\"/swapfile\")}.  It is possible to specify a swap file in a file system on a mapped device, provided that the necessary device mapping and file system are also specified.  @xref{Mapped Devices} and @ref{File Systems}."
-msgstr "Una lista de cadenas que identifiquen dispositivos o ficheros usados como ``espacio de intercambio'' (@pxref{Memory Concepts,,, libc, The GNU C Library Reference Manual}). Por ejemplo @code{'(\"/dev/sda3\")} o @code{'(\"/fichero-intercambio\")}. Es posible especificar un fichero de intercambio en un sistema de ficheros en un dispositivo traducido, siempre que la traducción y el sistema de ficheros se especifiquen también. @xref{Mapped Devices} y @ref{File Systems}."
+#: doc/guix.texi:13259
+msgid "Use the swap partition with the given UUID.  You can learn the UUID of a Linux swap partition by running @command{swaplabel @var{device}}, where @var{device} is the @file{/dev} file name of that partition."
+msgstr "Se usa la partición de intercambio con el UUID proporcionado. Puede conocer el UUID de una partición de intercambio de Linux ejecutando @command{swaplabel @var{dispositivo}}, donde @var{dispositivo} es el nombre de archivo @file{/dev} de la partición."
+
+#. type: item
+#: doc/guix.texi:13260
+#, no-wrap
+msgid "(list (file-system-label \"swap\"))"
+msgstr "(list (file-system-label \"intercambio\"))"
+
+#. type: table
+#: doc/guix.texi:13264
+msgid "Use the partition with label @code{swap}.  Again, the @command{swaplabel} command allows you to view and change the label of a Linux swap partition."
+msgstr "Se usa la partición con etiqueta @code{intercambio}.  De nuevo, la orden @command{swaplabel} le permite ver y cambiar la etiqueta de una partitición de intercambio de Linux."
+
+#. type: item
+#: doc/guix.texi:13265
+#, no-wrap
+msgid "(list \"/swapfile\")"
+msgstr "(list \"/archivo-de-intercambio\")"
+
+#. type: table
+#: doc/guix.texi:13267
+msgid "Use the file @file{/swapfile} as swap space."
+msgstr "Se usa el archivo @file{/archivo-de-intercambio} como espacio de intercambio."
+
+#. type: item
+#: doc/guix.texi:13268
+#, no-wrap
+msgid "(list \"/dev/sda3\" \"/dev/sdb2\")"
+msgstr "(list \"/dev/sda3\" \"/dev/sdb2\")"
+
+#. type: table
+#: doc/guix.texi:13272
+msgid "Use the @file{/dev/sda3} and @file{/dev/sdb2} partitions as swap space.  We recommend referring to swap devices by UUIDs or labels as shown above instead."
+msgstr "Se usan las particiones @file{/dev/sda3} y @file{/dev/sdb2} como espacio de intercambio. Le recomendamos que haga referencia a los dispositivos de intercambio a través de UUID o etiquetas como se muestra en los ejemplos previos."
+
+#. type: table
+#: doc/guix.texi:13278
+msgid "It is possible to specify a swap file in a file system on a mapped device (under @file{/dev/mapper}), provided that the necessary device mapping and file system are also specified.  @xref{Mapped Devices} and @ref{File Systems}."
+msgstr "Es posible especificar un archivo de intercambio en un sistema de archivos en un dispositivo traducido (bajo @file{/dev/mapper}), siempre que la traducción y el sistema de archivos se especifiquen también. @xref{Mapped Devices} y @ref{File Systems}."
 
 #. type: item
-#: doc/guix.texi:11320
+#: doc/guix.texi:13279
 #, no-wrap
 msgid "@code{users} (default: @code{%base-user-accounts})"
 msgstr "@code{users} (predeterminadas: @code{%base-user-accounts})"
 
 #. type: itemx
-#: doc/guix.texi:11321
+#: doc/guix.texi:13280
 #, no-wrap
 msgid "@code{groups} (default: @code{%base-groups})"
 msgstr "@code{groups} (predeterminados: @code{%base-groups})"
 
 #. type: table
-#: doc/guix.texi:11323
+#: doc/guix.texi:13282
 msgid "List of user accounts and groups.  @xref{User Accounts}."
 msgstr "Lista de cuentas de usuaria y grupos. @xref{User Accounts}."
 
 #. type: table
-#: doc/guix.texi:11326
+#: doc/guix.texi:13285
 msgid "If the @code{users} list lacks a user account with UID@tie{}0, a ``root'' account with UID@tie{}0 is automatically added."
 msgstr "Si la lista de @code{usuarias} carece de una cuenta de usuaria con UID@tie{}0, una cuenta ``root'' con UID@tie{}0 se añade automáticamente."
 
 #. type: item
-#: doc/guix.texi:11327
+#: doc/guix.texi:13286
 #, no-wrap
 msgid "@code{skeletons} (default: @code{(default-skeletons)})"
 msgstr "@code{skeletons} (predeterminados: @code{(default-skeletons)})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:11331
-msgid "A list target file name/file-like object tuples (@pxref{G-Expressions, file-like objects}).  These are the skeleton files that will be added to the home directory of newly-created user accounts."
-msgstr "Una lista de tuplas de nombre de fichero de destino/objeto tipo-fichero (@pxref{G-Expressions, objetos ``tipo-fichero''}). Estos son los ficheros de esqueleto que se añadirán al directorio de las cuentas de usuaria que se creen."
+#: doc/guix.texi:13290
+msgid "A list of target file name/file-like object tuples (@pxref{G-Expressions, file-like objects}).  These are the skeleton files that will be added to the home directory of newly-created user accounts."
+msgstr "Una lista de tuplas de nombre de archivo de destino/objeto tipo-archivo (@pxref{G-Expressions, objetos ``tipo-archivo''}). Estos son los archivos de esqueleto que se añadirán al directorio de las cuentas de usuaria que se creen."
 
 #. type: table
-#: doc/guix.texi:11333
+#: doc/guix.texi:13292
 msgid "For instance, a valid value may look like this:"
 msgstr "Por ejemplo, un valor válido puede parecer algo así:"
 
 #. type: lisp
-#: doc/guix.texi:11339
+#: doc/guix.texi:13298
 #, no-wrap
 msgid ""
 "`((\".bashrc\" ,(plain-file \"bashrc\" \"echo Hello\\n\"))\n"
@@ -21055,84 +24480,96 @@ msgstr ""
 "                          (activate-readline)\")))\n"
 
 #. type: item
-#: doc/guix.texi:11341
+#: doc/guix.texi:13300
 #, no-wrap
 msgid "@code{issue} (default: @code{%default-issue})"
 msgstr "@code{issue} (predeterminado: @code{%default-issue})"
 
 #. type: table
-#: doc/guix.texi:11344
+#: doc/guix.texi:13303
 msgid "A string denoting the contents of the @file{/etc/issue} file, which is displayed when users log in on a text console."
-msgstr "Una cadena que denota el contenido del fichero @file{/etc/issue}, que se muestra cuando las usuarias ingresan al sistema en una consola de texto."
+msgstr "Una cadena que denota el contenido del archivo @file{/etc/issue}, que se muestra cuando las usuarias ingresan al sistema en una consola de texto."
 
 #. type: item
-#: doc/guix.texi:11345
+#: doc/guix.texi:13304
 #, no-wrap
 msgid "@code{packages} (default: @code{%base-packages})"
 msgstr "@code{packages} (predeterminados: @code{%base-packages})"
 
 #. type: table
-#: doc/guix.texi:11348
-msgid "The set of packages installed in the global profile, which is accessible at @file{/run/current-system/profile}."
-msgstr "El conjunto de paquetes instalados en el perfil global, que es accesible en @file{/run/current-system/profile}."
+#: doc/guix.texi:13308
+msgid "A list of packages to be installed in the global profile, which is accessible at @file{/run/current-system/profile}.  Each element is either a package variable or a package/output tuple.  Here's a simple example of both:"
+msgstr "Una lista de paquetes instalados en el perfil global, que es accesible en @file{/run/current-system/profile}. Cada elemento debe ser una variable de paquete o una tupla paquete/salida. A continuación se muestra un ejemplo de ambos tipos:"
+
+#. type: lisp
+#: doc/guix.texi:13313
+#, no-wrap
+msgid ""
+"(cons* git                     ; the default \"out\" output\n"
+"       (list git \"send-email\") ; another output of git\n"
+"       %base-packages)         ; the default set\n"
+msgstr ""
+"(cons* git                     ; la salida predeterminada \"out\" \n"
+"       (list git \"send-email\") ; otra salida de git\n"
+"       %base-packages)         ; el conjunto predeterminado\n"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:11352
+#: doc/guix.texi:13318
 msgid "The default set includes core utilities and it is good practice to install non-core utilities in user profiles (@pxref{Invoking guix package})."
 msgstr "El conjunto predeterminado incluye utilidades básicas y es una buena práctica instalar utilidades no-básicas en los perfiles de las usuarias (@pxref{Invoking guix package})."
 
 #. type: code{#1}
-#: doc/guix.texi:11353
+#: doc/guix.texi:13319
 #, no-wrap
 msgid "timezone"
 msgstr "timezone"
 
 #. type: table
-#: doc/guix.texi:11355
+#: doc/guix.texi:13321
 msgid "A timezone identifying string---e.g., @code{\"Europe/Paris\"}."
 msgstr "Una cadena que identifica la zona horaria---por ejemplo, @code{\"Europe/Paris\"}."
 
 #. type: table
-#: doc/guix.texi:11359
+#: doc/guix.texi:13325
 msgid "You can run the @command{tzselect} command to find out which timezone string corresponds to your region.  Choosing an invalid timezone name causes @command{guix system} to fail."
 msgstr "Puede ejecutar la orden @command{tzselect} para encontrar qué cadena de zona horaria corresponde con su región. Elegir una zona horaria no válida provoca un fallo en @command{guix system}."
 
 #. type: item
-#: doc/guix.texi:11360
+#: doc/guix.texi:13326 doc/guix.texi:18879
 #, no-wrap
 msgid "@code{locale} (default: @code{\"en_US.utf8\"})"
 msgstr "@code{locale} (predeterminado: @code{\"en_US.utf8\"})"
 
 #. type: table
-#: doc/guix.texi:11363
+#: doc/guix.texi:13329
 msgid "The name of the default locale (@pxref{Locale Names,,, libc, The GNU C Library Reference Manual}).  @xref{Locales}, for more information."
 msgstr "El nombre de la localización predeterminada (@pxref{Locale Names,,, libc, The GNU C Library Reference Manual}). @xref{Locales}, para más información."
 
 #. type: item
-#: doc/guix.texi:11364
+#: doc/guix.texi:13330
 #, no-wrap
 msgid "@code{locale-definitions} (default: @code{%default-locale-definitions})"
 msgstr "@code{locale-definitions} (predeterminadas: @code{%default-locale-definitions})"
 
 #. type: table
-#: doc/guix.texi:11367
+#: doc/guix.texi:13333
 msgid "The list of locale definitions to be compiled and that may be used at run time.  @xref{Locales}."
 msgstr "La lista de definiciones de localizaciones a compilar y que puede ser usada en tiempo de ejecución. @xref{Locales}."
 
 #. type: item
-#: doc/guix.texi:11368
+#: doc/guix.texi:13334
 #, no-wrap
 msgid "@code{locale-libcs} (default: @code{(list @var{glibc})})"
 msgstr "@code{locale-libcs} (predeterminadas: @code{(list @var{glibc})})"
 
 #. type: table
-#: doc/guix.texi:11372
+#: doc/guix.texi:13338
 msgid "The list of GNU@tie{}libc packages whose locale data and tools are used to build the locale definitions.  @xref{Locales}, for compatibility considerations that justify this option."
 msgstr "La lista de paquetes GNU@tie{}libc cuyos datos de localización y herramientas son usadas para las definiciones de localizaciones. @xref{Locales}, para consideraciones de compatibilidad que justifican esta opción."
 
 #. type: item
-#: doc/guix.texi:11373
+#: doc/guix.texi:13339
 #, no-wrap
 msgid "@code{name-service-switch} (default: @code{%default-nss})"
 msgstr "@code{name-service-switch} (predeterminado: @code{%default-nss})"
@@ -21140,47 +24577,47 @@ msgstr "@code{name-service-switch} (predeterminado: @code{%default-nss})"
 # FUZZY
 # TODO: Comprobar libc
 #. type: table
-#: doc/guix.texi:11377
+#: doc/guix.texi:13343
 msgid "Configuration of the libc name service switch (NSS)---a @code{<name-service-switch>} object.  @xref{Name Service Switch}, for details."
 msgstr "Configuración del selector de servicios de nombres de libc (NSS)---un objeto @code{<name-service-switch>}. @xref{Name Service Switch}, para detalles."
 
 #. type: item
-#: doc/guix.texi:11378
+#: doc/guix.texi:13344
 #, no-wrap
 msgid "@code{services} (default: @code{%base-services})"
 msgstr "@code{services} (predeterminados: @code{%base-services})"
 
 #. type: table
-#: doc/guix.texi:11380
+#: doc/guix.texi:13346
 msgid "A list of service objects denoting system services.  @xref{Services}."
 msgstr "Una lista de objetos service denotando los servicios del sistema. @xref{Services}."
 
 #. type: cindex
-#: doc/guix.texi:11381
+#: doc/guix.texi:13347
 #, no-wrap
 msgid "essential services"
 msgstr "servicios esenciales"
 
 #. type: item
-#: doc/guix.texi:11382
+#: doc/guix.texi:13348
 #, no-wrap
 msgid "@code{essential-services} (default: ...)"
 msgstr "@code{essential-services} (predeterminados: ...)"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:11387
+#: doc/guix.texi:13353
 msgid "The list of ``essential services''---i.e., things like instances of @code{system-service-type} and @code{host-name-service-type} (@pxref{Service Reference}), which are derived from the operating system definition itself.  As a user you should @emph{never} need to touch this field."
 msgstr "La lista de ``servicios esenciales''---es decir, cosas como instancias de @code{system-service-type} y @code{host-name-service-type} (@pxref{Service Reference}), las cuales se derivan de su definición de sistema operativo en sí. Como usuaria @emph{nunca} debería modificar este campo."
 
 #. type: item
-#: doc/guix.texi:11388
+#: doc/guix.texi:13354
 #, no-wrap
 msgid "@code{pam-services} (default: @code{(base-pam-services)})"
 msgstr "@code{pam-services} (predeterminados: @code{(base-pam-services)})"
 
 #. type: cindex
-#: doc/guix.texi:11389
+#: doc/guix.texi:13355
 #, no-wrap
 msgid "PAM"
 msgstr "PAM"
@@ -21188,69 +24625,69 @@ msgstr "PAM"
 # FUZZY
 # TODO: Comprobar PAM
 #. type: cindex
-#: doc/guix.texi:11390
+#: doc/guix.texi:13356
 #, no-wrap
 msgid "pluggable authentication modules"
 msgstr "módulos de identificación conectables"
 
 #. type: table
-#: doc/guix.texi:11393
+#: doc/guix.texi:13359
 msgid "Linux @dfn{pluggable authentication module} (PAM) services."
 msgstr "Servicios de los @dfn{módulos de identificación conectables} (PAM) de Linux."
 
 #. type: item
-#: doc/guix.texi:11394
+#: doc/guix.texi:13360
 #, no-wrap
-msgid "@code{setuid-programs} (default: @var{%setuid-programs})"
-msgstr "@code{setuid-programs} (predeterminados: @var{%setuid-programs})"
+msgid "@code{setuid-programs} (default: @code{%setuid-programs})"
+msgstr "@code{setuid-programs} (predeterminados: @code{%setuid-programs})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:11397
+#: doc/guix.texi:13363
 msgid "List of string-valued G-expressions denoting setuid programs.  @xref{Setuid Programs}."
 msgstr "Lista de expresiones-G con valores de cadena que denotan los programas setuid. @xref{Setuid Programs}."
 
 #. type: item
-#: doc/guix.texi:11398
+#: doc/guix.texi:13364
 #, no-wrap
-msgid "@code{sudoers-file} (default: @var{%sudoers-specification})"
-msgstr "@code{sudoers-file} (predeterminado: @var{%sudoers-specification})"
+msgid "@code{sudoers-file} (default: @code{%sudoers-specification})"
+msgstr "@code{sudoers-file} (predeterminado: @code{%sudoers-specification})"
 
 #. type: cindex
-#: doc/guix.texi:11399
+#: doc/guix.texi:13365
 #, no-wrap
 msgid "sudoers file"
-msgstr "fichero sudoers"
+msgstr "archivo sudoers"
 
 #. type: table
-#: doc/guix.texi:11402
+#: doc/guix.texi:13368
 msgid "The contents of the @file{/etc/sudoers} file as a file-like object (@pxref{G-Expressions, @code{local-file} and @code{plain-file}})."
-msgstr "El contenido de @file{/etc/sudoers} como un objeto tipo-fichero (@pxref{G-Expressions, @code{local-file} y @code{plain-file}})."
+msgstr "El contenido de @file{/etc/sudoers} como un objeto tipo-archivo (@pxref{G-Expressions, @code{local-file} y @code{plain-file}})."
 
 #. type: table
-#: doc/guix.texi:11407
+#: doc/guix.texi:13373
 msgid "This file specifies which users can use the @command{sudo} command, what they are allowed to do, and what privileges they may gain.  The default is that only @code{root} and members of the @code{wheel} group may use @code{sudo}."
-msgstr "Este fichero especifica qué usuarias pueden usar la orden @command{sudo}, lo que se les permite hacer y qué privilegios pueden obtener. El comportamiento predefinido es que únicamente @code{root} y los miembros del grupo @code{wheel} pueden usar @code{sudo}."
+msgstr "Este archivo especifica qué usuarias pueden usar la orden @command{sudo}, lo que se les permite hacer y qué privilegios pueden obtener. El comportamiento predefinido es que únicamente @code{root} y los miembros del grupo @code{wheel} pueden usar @code{sudo}."
 
 #. type: deffn
-#: doc/guix.texi:11410
+#: doc/guix.texi:13376
 #, no-wrap
 msgid "{Scheme Syntax} this-operating-system"
 msgstr "{Tipo de datos} this-operating-system"
 
 # FUZZY
 #. type: deffn
-#: doc/guix.texi:11413
+#: doc/guix.texi:13379
 msgid "When used in the @emph{lexical scope} of an operating system field definition, this identifier resolves to the operating system being defined."
 msgstr "Cuando se usa en el @emph{ámbito léxico} de un campo de una definición de sistema operativo, este identificador está enlazado al sistema operativo en definición."
 
 #. type: deffn
-#: doc/guix.texi:11416
+#: doc/guix.texi:13382
 msgid "The example below shows how to refer to the operating system being defined in the definition of the @code{label} field:"
 msgstr "El siguiente ejemplo muestra cómo hacer referencia al sistema operativo en definición en la definición del campo @code{label}:"
 
 #. type: lisp
-#: doc/guix.texi:11419 doc/guix.texi:14301
+#: doc/guix.texi:13385 doc/guix.texi:16720
 #, no-wrap
 msgid ""
 "(use-modules (gnu) (guix))\n"
@@ -21260,7 +24697,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:11424
+#: doc/guix.texi:13390
 #, no-wrap
 msgid ""
 "(operating-system\n"
@@ -21274,17 +24711,17 @@ msgstr ""
 "          (operating-system-kernel this-operating-system))))\n"
 
 #. type: deffn
-#: doc/guix.texi:11428
+#: doc/guix.texi:13394
 msgid "It is an error to refer to @code{this-operating-system} outside an operating system definition."
 msgstr "Es un error hacer referencia a @code{this-operating-system} fuera de una definición de sistema operativo."
 
 #. type: Plain text
-#: doc/guix.texi:11439
+#: doc/guix.texi:13405
 msgid "The list of file systems to be mounted is specified in the @code{file-systems} field of the operating system declaration (@pxref{Using the Configuration System}).  Each file system is declared using the @code{file-system} form, like this:"
-msgstr "La lista de sistemas de ficheros que deben montarse se especifica en el campo @code{file-systems} de la declaración del sistema operativo (@pxref{Using the Configuration System}). Cada sistema de ficheros se declara usando la forma @code{file-system}, como en el siguiente ejemplo:"
+msgstr "La lista de sistemas de archivos que deben montarse se especifica en el campo @code{file-systems} de la declaración del sistema operativo (@pxref{Using the Configuration System}). Cada sistema de archivos se declara usando la forma @code{file-system}, como en el siguiente ejemplo:"
 
 #. type: lisp
-#: doc/guix.texi:11445
+#: doc/guix.texi:13411
 #, no-wrap
 msgid ""
 "(file-system\n"
@@ -21298,68 +24735,68 @@ msgstr ""
 "  (type \"ext4\"))\n"
 
 #. type: Plain text
-#: doc/guix.texi:11449
+#: doc/guix.texi:13415
 msgid "As usual, some of the fields are mandatory---those shown in the example above---while others can be omitted.  These are described below."
 msgstr "Como es habitual, algunos de los campos son obligatorios---aquellos mostrados en el ejemplo previo---mientras que otros pueden omitirse. Se describen a continuación."
 
 #. type: deftp
-#: doc/guix.texi:11450
+#: doc/guix.texi:13416
 #, no-wrap
 msgid "{Data Type} file-system"
 msgstr "{Tipo de datos} file-system"
 
 #. type: deftp
-#: doc/guix.texi:11453
+#: doc/guix.texi:13419
 msgid "Objects of this type represent file systems to be mounted.  They contain the following members:"
-msgstr "Objetos de este tipo representan los sistemas de ficheros a montar. Contienen los siguientes campos:"
+msgstr "Objetos de este tipo representan los sistemas de archivos a montar. Contienen los siguientes campos:"
 
 #. type: item
-#: doc/guix.texi:11455 doc/guix.texi:11649
+#: doc/guix.texi:13421 doc/guix.texi:13765
 #, no-wrap
 msgid "type"
 msgstr "type"
 
 #. type: table
-#: doc/guix.texi:11458
+#: doc/guix.texi:13424
 msgid "This is a string specifying the type of the file system---e.g., @code{\"ext4\"}."
-msgstr "Este campo es una cadena que especifica el tipo de sistema de ficheros---por ejemplo, @code{\"ext4\"}."
+msgstr "Este campo es una cadena que especifica el tipo de sistema de archivos---por ejemplo, @code{\"ext4\"}."
 
 #. type: code{#1}
-#: doc/guix.texi:11459
+#: doc/guix.texi:13425
 #, no-wrap
 msgid "mount-point"
 msgstr "mount-point"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:11461
+#: doc/guix.texi:13427
 msgid "This designates the place where the file system is to be mounted."
-msgstr "Designa la ruta donde el sistema de ficheros debe montarse."
+msgstr "Designa la ruta donde el sistema de archivos debe montarse."
 
 #. type: code{#1}
-#: doc/guix.texi:11462
+#: doc/guix.texi:13428
 #, no-wrap
 msgid "device"
 msgstr "device"
 
 #. type: table
-#: doc/guix.texi:11472
+#: doc/guix.texi:13438
 msgid "This names the ``source'' of the file system.  It can be one of three things: a file system label, a file system UUID, or the name of a @file{/dev} node.  Labels and UUIDs offer a way to refer to file systems without having to hard-code their actual device name@footnote{Note that, while it is tempting to use @file{/dev/disk/by-uuid} and similar device names to achieve the same result, this is not recommended: These special device nodes are created by the udev daemon and may be unavailable at the time the device is mounted.}."
-msgstr "Nombra la ``fuente'' del sistema de ficheros. Puede ser una de estas tres opciones: una etiqueta de sistema de ficheros, un UUID de sistema de ficheros o el nombre de un nodo @file{/dev}. Las etiquetas y UUID ofrecen una forma de hacer referencia a sistemas de ficheros sin codificar su nombre de dispositivo actual@footnote{Fíjese que, aunque es tentador usa @file{/dev/disk/by-uuid} y nombres de dispositivo similares para obtener el mismo resultado, no es lo recomendado: estos nodo especiales de dispositivos se crean por el daemon udev y puede no estar disponible cuando el dispositivo sea montado.}."
+msgstr "Nombra la ``fuente'' del sistema de archivos. Puede ser una de estas tres opciones: una etiqueta de sistema de archivos, un UUID de sistema de archivos o el nombre de un nodo @file{/dev}. Las etiquetas y UUID ofrecen una forma de hacer referencia a sistemas de archivos sin codificar su nombre de dispositivo actual@footnote{Fíjese que, aunque es tentador usa @file{/dev/disk/by-uuid} y nombres de dispositivo similares para obtener el mismo resultado, no es lo recomendado: estos nodo especiales de dispositivos se crean por el daemon udev y puede no estar disponible cuando el dispositivo sea montado.}."
 
 #. type: findex
-#: doc/guix.texi:11473
+#: doc/guix.texi:13439
 #, no-wrap
 msgid "file-system-label"
 msgstr "file-system-label"
 
 #. type: table
-#: doc/guix.texi:11478
+#: doc/guix.texi:13444
 msgid "File system labels are created using the @code{file-system-label} procedure, UUIDs are created using @code{uuid}, and @file{/dev} node are plain strings.  Here's an example of a file system referred to by its label, as shown by the @command{e2label} command:"
-msgstr "Las etiquetas del sistema de ficheros se crean mediante el uso del procedimiento @code{file-system-label}, los UUID se crean mediante el uso de @code{uuid} y los nodos @file{/dev} son simples cadenas. A continuación se proporciona un ejemplo de un sistema de ficheros al que se hace referencia mediante su etiqueta, como es mostrada por la orden @command{e2label}:"
+msgstr "Las etiquetas del sistema de archivos se crean mediante el uso del procedimiento @code{file-system-label}, los UUID se crean mediante el uso de @code{uuid} y los nodos @file{/dev} son simples cadenas. A continuación se proporciona un ejemplo de un sistema de archivos al que se hace referencia mediante su etiqueta, como es mostrada por la orden @command{e2label}:"
 
 #. type: lisp
-#: doc/guix.texi:11484
+#: doc/guix.texi:13450
 #, no-wrap
 msgid ""
 "(file-system\n"
@@ -21372,19 +24809,19 @@ msgstr ""
 "  (type \"ext4\")\n"
 "  (device (file-system-label \"mi-home\")))\n"
 
-#. type: findex
-#: doc/guix.texi:11486
+#. type: code{#1}
+#: doc/guix.texi:13452 doc/guix.texi:29116
 #, no-wrap
 msgid "uuid"
 msgstr "uuid"
 
 #. type: table
-#: doc/guix.texi:11494
+#: doc/guix.texi:13460
 msgid "UUIDs are converted from their string representation (as shown by the @command{tune2fs -l} command) using the @code{uuid} form@footnote{The @code{uuid} form expects 16-byte UUIDs as defined in @uref{https://tools.ietf.org/html/rfc4122, RFC@tie{}4122}.  This is the form of UUID used by the ext2 family of file systems and others, but it is different from ``UUIDs'' found in FAT file systems, for instance.}, like this:"
-msgstr "Los UUID se convierten dede su representación en forma de cadena (como se muestra con la orden @command{tune2fs -l}) mediante el uso de la forma @code{uuid}@footnote{La forma @code{uuid} espera un UUID de 16 bytes como se define en la @uref{https://tools.ietf.org/html/rfc4122, RFC@tie{}4122}. Este es el formato de UUID que usan la familia de sistemas de ficheros ext2 y otros, pero es diferente de los ``UUID'' de los sistemas de ficheros FAT, por ejemplo.}, como sigue:"
+msgstr "Los UUID se convierten dede su representación en forma de cadena (como se muestra con la orden @command{tune2fs -l}) mediante el uso de la forma @code{uuid}@footnote{La forma @code{uuid} espera un UUID de 16 bytes como se define en la @uref{https://tools.ietf.org/html/rfc4122, RFC@tie{}4122}. Este es el formato de UUID que usan la familia de sistemas de archivos ext2 y otros, pero es diferente de los ``UUID'' de los sistemas de archivos FAT, por ejemplo.}, como sigue:"
 
 #. type: lisp
-#: doc/guix.texi:11500
+#: doc/guix.texi:13466
 #, no-wrap
 msgid ""
 "(file-system\n"
@@ -21398,272 +24835,511 @@ msgstr ""
 "  (device (uuid \"4dab5feb-d176-45de-b287-9b0a6e4c01cb\")))\n"
 
 #. type: table
-#: doc/guix.texi:11508
+#: doc/guix.texi:13474
 msgid "When the source of a file system is a mapped device (@pxref{Mapped Devices}), its @code{device} field @emph{must} refer to the mapped device name---e.g., @file{\"/dev/mapper/root-partition\"}.  This is required so that the system knows that mounting the file system depends on having the corresponding device mapping established."
-msgstr "Cuando la fuente de un sistema de ficheros es un dispositivo traducido (@pxref{Mapped Devices}), su campo @code{device} @emph{debe} hacer referencia al nombre del dispositivo traducido---por ejemplo, @file{\"/dev/mapper/particion-raiz\"}. Esto es necesario para que el sistema sepa que el montaje del sistema de ficheros depende del establecimiento de la traducción de dispositivos correspondiente."
+msgstr "Cuando la fuente de un sistema de archivos es un dispositivo traducido (@pxref{Mapped Devices}), su campo @code{device} @emph{debe} hacer referencia al nombre del dispositivo traducido---por ejemplo, @file{\"/dev/mapper/particion-raiz\"}. Esto es necesario para que el sistema sepa que el montaje del sistema de archivos depende del establecimiento de la traducción de dispositivos correspondiente."
 
 #. type: item
-#: doc/guix.texi:11509
+#: doc/guix.texi:13475
 #, no-wrap
 msgid "@code{flags} (default: @code{'()})"
 msgstr "@code{flags} (predeterminadas: @code{'()})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:11519
+#: doc/guix.texi:13485
 msgid "This is a list of symbols denoting mount flags.  Recognized flags include @code{read-only}, @code{bind-mount}, @code{no-dev} (disallow access to special files), @code{no-suid} (ignore setuid and setgid bits), @code{no-atime} (do not update file access times), @code{strict-atime} (update file access time), @code{lazy-time} (only update time on the in-memory version of the file inode), and @code{no-exec} (disallow program execution).  @xref{Mount-Unmount-Remount,,, libc, The GNU C Library Reference Manual}, for more information on these flags."
-msgstr "Es una lista de símbolos que indican opciones del montado. Las opciones reconocidas incluyen @code{read-only}@footnote{NdT: modo de sólo lectura.}, @code{bind-mount}@footnote{NdT: montaje enlazado.}, @code{no-dev} (prohibición del acceso a ficheros especiales), @code{no-suid} (ignora los bits setuid y setgid), @code{no-atime} (no actualiza la marca de tiempo del acceso a ficheros), @code{strict-atime} (actualiza la marca de tiempo del acceso a ficheros), @code{lazy-time} (únicamente actualiza la marca de tiempo en la versión en memoria del nodo-i) y @code{no-exec} (no permite de la ejecución de programas). @xref{Mount-Unmount-Remount,,, libc, The GNU C Library Reference Manual}, para más información sobre estas opciones."
+msgstr "Es una lista de símbolos que indican opciones del montado. Las opciones reconocidas incluyen @code{read-only}@footnote{NdT: modo de sólo lectura.}, @code{bind-mount}@footnote{NdT: montaje enlazado.}, @code{no-dev} (prohibición del acceso a archivos especiales), @code{no-suid} (ignora los bits setuid y setgid), @code{no-atime} (no actualiza la marca de tiempo del acceso a archivos), @code{strict-atime} (actualiza la marca de tiempo del acceso a archivos), @code{lazy-time} (únicamente actualiza la marca de tiempo en la versión en memoria del nodo-i) y @code{no-exec} (no permite de la ejecución de programas). @xref{Mount-Unmount-Remount,,, libc, The GNU C Library Reference Manual}, para más información sobre estas opciones."
 
 #. type: item
-#: doc/guix.texi:11520
+#: doc/guix.texi:13486
 #, no-wrap
 msgid "@code{options} (default: @code{#f})"
 msgstr "@code{options} (predeterminadas: @code{#f})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:11525
-msgid "This is either @code{#f}, or a string denoting mount options passed to the file system driver.  @xref{Mount-Unmount-Remount,,, libc, The GNU C Library Reference Manual}, for details and run @command{man 8 mount} for options for various file systems."
-msgstr "Es o bien @code{#f}, o bien una cadena que denota las opciones de montaje proporcionadas al controlador del sistema de ficheros. @xref{Mount-Unmount-Remount,,, libc, The GNU C Library Reference Manual} para obtener detalles, y ejecute @command{man 8 mount} para conocer las opciones de varios sistemas de ficheros."
+#: doc/guix.texi:13495
+msgid "This is either @code{#f}, or a string denoting mount options passed to the file system driver.  @xref{Mount-Unmount-Remount,,, libc, The GNU C Library Reference Manual}, for details and run @command{man 8 mount} for options for various file systems.  Note that the @code{file-system-options->alist} and @code{alist->file-system-options} procedures from @code{(gnu system file-systems)} can be used to convert file system options given as an association list to the string representation, and vice-versa."
+msgstr "Es o bien @code{#f}, o bien una cadena que denota las opciones de montaje proporcionadas al controlador del sistema de archivos. @xref{Mount-Unmount-Remount,,, libc, The GNU C Library Reference Manual} para obtener detalles, y ejecute @command{man 8 mount} para conocer las opciones de varios sistemas de archivos. Tenga en cuenta los procedimientos @code{file-system-options->alist} y @code{alist->file-system-options} de @code{(gnu system file-systems)} pueden usarse para convertir las opciones de sistema de archivos proporcionadas como una lista asociativa a su representación en cadena y viceversa."
 
 #. type: item
-#: doc/guix.texi:11526
+#: doc/guix.texi:13496
 #, no-wrap
 msgid "@code{mount?} (default: @code{#t})"
 msgstr "@code{mount?} (predeterminado: @code{#t})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:11531
+#: doc/guix.texi:13501
 msgid "This value indicates whether to automatically mount the file system when the system is brought up.  When set to @code{#f}, the file system gets an entry in @file{/etc/fstab} (read by the @command{mount} command) but is not automatically mounted."
-msgstr "Este valor indica si debe montarse el sistema de ficheros automáticamente al iniciar el sistema. Cuando se establece como @code{#f}, el sistema de ficheros tiene una entrada en @file{/etc/fstab} (el cual es leído por la orden @command{mount}) pero no se montará automáticamente."
+msgstr "Este valor indica si debe montarse el sistema de archivos automáticamente al iniciar el sistema. Cuando se establece como @code{#f}, el sistema de archivos tiene una entrada en @file{/etc/fstab} (el cual es leído por la orden @command{mount}) pero no se montará automáticamente."
 
 #. type: item
-#: doc/guix.texi:11532
+#: doc/guix.texi:13502
 #, no-wrap
 msgid "@code{needed-for-boot?} (default: @code{#f})"
 msgstr "@code{needed-for-boot?} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:11537
+#: doc/guix.texi:13507
 msgid "This Boolean value indicates whether the file system is needed when booting.  If that is true, then the file system is mounted when the initial RAM disk (initrd) is loaded.  This is always the case, for instance, for the root file system."
-msgstr "Este valor lógico indica si el sistema de ficheros es necesario para el arranque. Si es verdadero, el sistema de ficheros se monta al cargar el disco inicial de RAM (initrd). Este es siempre el caso, por ejemplo, para el sistema de ficheros raíz."
+msgstr "Este valor lógico indica si el sistema de archivos es necesario para el arranque. Si es verdadero, el sistema de archivos se monta al cargar el disco inicial en RAM (initrd). Este es siempre el caso, por ejemplo, para el sistema de archivos raíz."
 
 #. type: item
-#: doc/guix.texi:11538
+#: doc/guix.texi:13508
 #, no-wrap
 msgid "@code{check?} (default: @code{#t})"
 msgstr "@code{check?} (predeterminado: @code{#t})"
 
 #. type: table
-#: doc/guix.texi:11541
+#: doc/guix.texi:13511
 msgid "This Boolean indicates whether the file system needs to be checked for errors before being mounted."
-msgstr "Este valor lógico indica si el sistema de ficheros se debe comprobar en busca de errores antes de montarse."
+msgstr "Este valor lógico indica si el sistema de archivos se debe comprobar en busca de errores antes de montarse."
 
 #. type: item
-#: doc/guix.texi:11542
+#: doc/guix.texi:13512
 #, no-wrap
 msgid "@code{create-mount-point?} (default: @code{#f})"
 msgstr "@code{create-mount-point?} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:11544
+#: doc/guix.texi:13514
 msgid "When true, the mount point is created if it does not exist yet."
 msgstr "Cuando es verdadero, el punto de montaje es creado si no existía previamente."
 
 #. type: item
-#: doc/guix.texi:11545
+#: doc/guix.texi:13515
+#, no-wrap
+msgid "@code{mount-may-fail?} (default: @code{#f})"
+msgstr "@code{mount-may-fail?} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:13520
+msgid "When true, this indicates that mounting this file system can fail but that should not be considered an error.  This is useful in unusual cases; an example of this is @code{efivarfs}, a file system that can only be mounted on EFI/UEFI systems."
+msgstr "Cuando tiene valor verdadero indica que el montaje de este sistema de archivos puede fallar pero no debe considerarse un error. Es útil en casos poco habituales; un ejemplo de esto es @code{efivarfs}, un sistema de archivos que únicamente puede montarse en sistemas EFI/UEFI."
+
+#. type: item
+#: doc/guix.texi:13521
 #, no-wrap
 msgid "@code{dependencies} (default: @code{'()})"
 msgstr "@code{dependencies} (predeterminadas: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:11549
+#: doc/guix.texi:13525
 msgid "This is a list of @code{<file-system>} or @code{<mapped-device>} objects representing file systems that must be mounted or mapped devices that must be opened before (and unmounted or closed after) this one."
-msgstr "Una lista de objetos @code{<file-system>} o @code{<mapped-device>} que representan sistemas de ficheros que deben montarse o dispositivos traducidos que se deben abrir antes (y desmontar o cerrar después) que el declarado."
+msgstr "Una lista de objetos @code{<file-system>} o @code{<mapped-device>} que representan sistemas de archivos que deben montarse o dispositivos traducidos que se deben abrir antes (y desmontar o cerrar después) que el declarado."
 
 #. type: table
-#: doc/guix.texi:11553
+#: doc/guix.texi:13529
 msgid "As an example, consider a hierarchy of mounts: @file{/sys/fs/cgroup} is a dependency of @file{/sys/fs/cgroup/cpu} and @file{/sys/fs/cgroup/memory}."
 msgstr "Como ejemplo, considere la siguiente jerarquía de montajes: @file{/sys/fs/cgroup} es una dependencia de @file{/sys/fs/cgroup/cpu} y @file{/sys/fs/cgroup/memory}."
 
 #. type: table
-#: doc/guix.texi:11556
+#: doc/guix.texi:13532
 msgid "Another example is a file system that depends on a mapped device, for example for an encrypted partition (@pxref{Mapped Devices})."
-msgstr "Otro ejemplo es un sistema de ficheros que depende de un dispositivo traducido, por ejemplo una partición cifrada (@pxref{Mapped Devices})."
+msgstr "Otro ejemplo es un sistema de archivos que depende de un dispositivo traducido, por ejemplo una partición cifrada (@pxref{Mapped Devices})."
+
+#. type: deffn
+#: doc/guix.texi:13535
+#, no-wrap
+msgid "{Scheme Procedure} file-system-label @var{str}"
+msgstr "{Procedimiento Scheme} file-system-label @var{str}"
+
+#. type: deffn
+#: doc/guix.texi:13538
+msgid "This procedure returns an opaque file system label from @var{str}, a string:"
+msgstr "Este procedimiento devuelve un objeto opaco de etiqueta del sistema de archivos a partir de @var{str}, una cadena:"
+
+#. type: lisp
+#: doc/guix.texi:13542
+#, no-wrap
+msgid ""
+"(file-system-label \"home\")\n"
+"@result{} #<file-system-label \"home\">\n"
+msgstr ""
+"(file-system-label \"home\")\n"
+"@result{} #<file-system-label \"home\">\n"
+
+#. type: deffn
+#: doc/guix.texi:13546
+msgid "File system labels are used to refer to file systems by label rather than by device name.  See above for examples."
+msgstr "Las etiquetas del sistema de archivos se usan para hacer referencia a los sistemas de archivos por etiqueta en vez de por nombre de dispositivo. Puede haber encontrado previamente ejemplos en el texto."
 
 #. type: Plain text
-#: doc/guix.texi:11561
+#: doc/guix.texi:13550
 msgid "The @code{(gnu system file-systems)} exports the following useful variables."
 msgstr "El módulo @code{(gnu system file-systems)} exporta las siguientes variables útiles."
 
 #. type: defvr
-#: doc/guix.texi:11562
+#: doc/guix.texi:13551
 #, no-wrap
 msgid "{Scheme Variable} %base-file-systems"
 msgstr "{Variable Scheme} %base-file-systems"
 
 #. type: defvr
-#: doc/guix.texi:11567
-msgid "These are essential file systems that are required on normal systems, such as @var{%pseudo-terminal-file-system} and @var{%immutable-store} (see below.)  Operating system declarations should always contain at least these."
-msgstr "Estos son los sistemas de ficheros esenciales que se necesitan en sistemas normales, como @var{%pseudo-terminal-file-system} y @var{%immutable-store} (véase a continuación). Las declaraciones de sistemas operativos deben contener siempre estos al menos."
+#: doc/guix.texi:13556
+msgid "These are essential file systems that are required on normal systems, such as @code{%pseudo-terminal-file-system} and @code{%immutable-store} (see below).  Operating system declarations should always contain at least these."
+msgstr "Estos son los sistemas de archivos esenciales que se necesitan en sistemas normales, como @code{%pseudo-terminal-file-system} y @code{%immutable-store} (véase a continuación). Las declaraciones de sistemas operativos deben contener siempre estos al menos."
 
 #. type: defvr
-#: doc/guix.texi:11569
+#: doc/guix.texi:13558
 #, no-wrap
 msgid "{Scheme Variable} %pseudo-terminal-file-system"
 msgstr "{Variable Scheme} %pseudo-terminal-file-systems"
 
 #. type: defvr
-#: doc/guix.texi:11575
+#: doc/guix.texi:13564
 msgid "This is the file system to be mounted as @file{/dev/pts}.  It supports @dfn{pseudo-terminals} created @i{via} @code{openpty} and similar functions (@pxref{Pseudo-Terminals,,, libc, The GNU C Library Reference Manual}).  Pseudo-terminals are used by terminal emulators such as @command{xterm}."
-msgstr "El sistema de ficheros que debe montarse como @file{/dev/pts}. Permite la creación de @dfn{pseudoterminales} a través de @code{openpty} y funciones similares (@pxref{Pseudo-Terminals,,, libc, The GNU C Library Reference Manual}). Los pseudoterminales son usados por emuladores de terminales como @command{xterm}."
+msgstr "El sistema de archivos que debe montarse como @file{/dev/pts}. Permite la creación de @dfn{pseudoterminales} a través de @code{openpty} y funciones similares (@pxref{Pseudo-Terminals,,, libc, The GNU C Library Reference Manual}). Los pseudoterminales son usados por emuladores de terminales como @command{xterm}."
 
 #. type: defvr
-#: doc/guix.texi:11577
+#: doc/guix.texi:13566
 #, no-wrap
 msgid "{Scheme Variable} %shared-memory-file-system"
 msgstr "{Variable Scheme} %shared-memory-file-system"
 
 #. type: defvr
-#: doc/guix.texi:11581
+#: doc/guix.texi:13570
 msgid "This file system is mounted as @file{/dev/shm} and is used to support memory sharing across processes (@pxref{Memory-mapped I/O, @code{shm_open},, libc, The GNU C Library Reference Manual})."
-msgstr "Este sistema de ficheros se monta como @file{/dev/shm} y se usa para permitir el uso de memoria compartida entre procesos (@pxref{Memory-mapped I/O, @code{shm_open},, libc, The GNU C Library Reference Manual})."
+msgstr "Este sistema de archivos se monta como @file{/dev/shm} y se usa para permitir el uso de memoria compartida entre procesos (@pxref{Memory-mapped I/O, @code{shm_open},, libc, The GNU C Library Reference Manual})."
 
 #. type: defvr
-#: doc/guix.texi:11583
+#: doc/guix.texi:13572
 #, no-wrap
 msgid "{Scheme Variable} %immutable-store"
 msgstr "{Variable Scheme} %immutable-store"
 
 #. type: defvr
-#: doc/guix.texi:11588
+#: doc/guix.texi:13577
 msgid "This file system performs a read-only ``bind mount'' of @file{/gnu/store}, making it read-only for all the users including @code{root}.  This prevents against accidental modification by software running as @code{root} or by system administrators."
-msgstr "Este sistema de ficheros crea un montaje enlazado (``bind-mount'') de @file{/gnu/store}, permitiendo solo el acceso de lectura para todas las usuarias incluyendo a @code{root}. Esto previene modificaciones accidentales por software que se ejecuta como @code{root} o por las administradoras del sistema."
+msgstr "Este sistema de archivos crea un montaje enlazado (``bind-mount'') de @file{/gnu/store}, permitiendo solo el acceso de lectura para todas las usuarias incluyendo a @code{root}. Esto previene modificaciones accidentales por software que se ejecuta como @code{root} o por las administradoras del sistema."
 
 #. type: defvr
-#: doc/guix.texi:11591
+#: doc/guix.texi:13580
 msgid "The daemon itself is still able to write to the store: it remounts it read-write in its own ``name space.''"
 msgstr "El daemon sí es capaz de escribir en el almacén: vuelve a montar @file{/gnu/store} en modo lectura-escritura en su propio ``espacio de nombres''."
 
 #. type: defvr
-#: doc/guix.texi:11593
+#: doc/guix.texi:13582
 #, no-wrap
 msgid "{Scheme Variable} %binary-format-file-system"
 msgstr "{Variable Scheme} %binary-format-file-system"
 
 #. type: defvr
-#: doc/guix.texi:11597
+#: doc/guix.texi:13586
 msgid "The @code{binfmt_misc} file system, which allows handling of arbitrary executable file types to be delegated to user space.  This requires the @code{binfmt.ko} kernel module to be loaded."
-msgstr "El sistema de ficheros @code{binfmt_misc}, que permite que el manejo de tipos de ficheros ejecutables arbitrarios se delegue al espacio de usuaria. Necesita la carga del módulo del núcleo @code{binfmt.ko}."
+msgstr "El sistema de archivos @code{binfmt_misc}, que permite que el manejo de tipos de archivos ejecutables arbitrarios se delegue al espacio de usuaria. Necesita la carga del módulo del núcleo @code{binfmt.ko}."
 
 #. type: defvr
-#: doc/guix.texi:11599
+#: doc/guix.texi:13588
 #, no-wrap
 msgid "{Scheme Variable} %fuse-control-file-system"
 msgstr "{Variable Scheme} %fuse-control-file-system"
 
 #. type: defvr
-#: doc/guix.texi:11603
+#: doc/guix.texi:13592
 msgid "The @code{fusectl} file system, which allows unprivileged users to mount and unmount user-space FUSE file systems.  This requires the @code{fuse.ko} kernel module to be loaded."
-msgstr "El sistema de ficheros @code{fusectl}, que permite a usuarias sin privilegios montar y desmontar sistemas de ficheros de espacio de usuaria FUSE. Necesita la carga del módulo del núcleo @code{fuse.ko}."
+msgstr "El sistema de archivos @code{fusectl}, que permite a usuarias sin privilegios montar y desmontar sistemas de archivos de espacio de usuaria FUSE. Necesita la carga del módulo del núcleo @code{fuse.ko}."
+
+#. type: Plain text
+#: doc/guix.texi:13596
+msgid "The @code{(gnu system uuid)} module provides tools to deal with file system ``unique identifiers'' (UUIDs)."
+msgstr "El módulo @code{(gnu system uuid)} proporciona herramientas para tratar con ``identificadores únicos'' de sistemas de archivos (UUID)."
+
+#. type: deffn
+#: doc/guix.texi:13597
+#, no-wrap
+msgid "{Scheme Procedure} uuid @var{str} [@var{type}]"
+msgstr "{Procedimiento Scheme} uuid @var{str} [@var{tipo}]"
+
+#. type: deffn
+#: doc/guix.texi:13600
+msgid "Return an opaque UUID (unique identifier) object of the given @var{type} (a symbol) by parsing @var{str} (a string):"
+msgstr "Devuelve un objeto opaco de UUID (identificador único) del @var{tipo} (un símbolo) procesando @var{str} (una cadena):"
+
+#. type: lisp
+#: doc/guix.texi:13604
+#, no-wrap
+msgid ""
+"(uuid \"4dab5feb-d176-45de-b287-9b0a6e4c01cb\")\n"
+"@result{} #<<uuid> type: dce bv: @dots{}>\n"
+"\n"
+msgstr ""
+"(uuid \"4dab5feb-d176-45de-b287-9b0a6e4c01cb\")\n"
+"@result{} #<<uuid> type: dce bv: @dots{}>\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:13607
+#, no-wrap
+msgid ""
+"(uuid \"1234-ABCD\" 'fat)\n"
+"@result{} #<<uuid> type: fat bv: @dots{}>\n"
+msgstr ""
+"(uuid \"1234-ABCD\" 'fat)\n"
+"@result{} #<<uuid> type: fat bv: @dots{}>\n"
+
+#. type: deffn
+#: doc/guix.texi:13611
+msgid "@var{type} may be one of @code{dce}, @code{iso9660}, @code{fat}, @code{ntfs}, or one of the commonly found synonyms for these."
+msgstr "@var{tipo} puede ser @code{dce}, @code{iso9660}, @code{fat}, @code{ntfs}, o uno de sus sinónimos habitualmente usados para estos tipos."
+
+#. type: deffn
+#: doc/guix.texi:13614
+msgid "UUIDs are another way to unambiguously refer to file systems in operating system configuration.  See the examples above."
+msgstr "Los UUID son otra forma de hacer referencia de forma inequívoca a sistemas de archivos en la configuración de sistema operativo. Puede haber encontrado previamente ejemplos en el texto."
+
+#. type: subsection
+#: doc/guix.texi:13617 doc/guix.texi:13618
+#, no-wrap
+msgid "Btrfs file system"
+msgstr "Sistema de archivos Btrfs"
+
+#. type: Plain text
+#: doc/guix.texi:13624
+msgid "The Btrfs has special features, such as subvolumes, that merit being explained in more details.  The following section attempts to cover basic as well as complex uses of a Btrfs file system with the Guix System."
+msgstr "El sistema de archivos Btrfs tiene características especiales, como los subvolúmenes, que merecen una explicación más detallada. La siguiente sección intenta cubrir usos básicos así como usos complejos del sistema de archivos Btrfs con el sistema Guix."
+
+#. type: Plain text
+#: doc/guix.texi:13627
+msgid "In its simplest usage, a Btrfs file system can be described, for example, by:"
+msgstr "Con el uso más simple se puede describir un sistema de archivos Btrfs puede describirse, por ejemplo, del siguiente modo:"
+
+#. type: lisp
+#: doc/guix.texi:13633
+#, no-wrap
+msgid ""
+"(file-system\n"
+"  (mount-point \"/home\")\n"
+"  (type \"btrfs\")\n"
+"  (device (file-system-label \"my-home\")))\n"
+msgstr ""
+"(file-system\n"
+"  (mount-point \"/home\")\n"
+"  (type \"btrfs\")\n"
+"  (device (file-system-label \"mi-home\")))\n"
+
+#. type: Plain text
+#: doc/guix.texi:13639
+msgid "The example below is more complex, as it makes use of a Btrfs subvolume, named @code{rootfs}.  The parent Btrfs file system is labeled @code{my-btrfs-pool}, and is located on an encrypted device (hence the dependency on @code{mapped-devices}):"
+msgstr "El ejemplo siguiente es más complejo, ya que usa un subvolumen de Btrfs, llamado @code{rootfs}. El sistema de archivos tiene la etiqueta @code{mi-btrfs}, y se encuentra en un dispositivo cifrado (de aquí la dependencia de @code{mapped-devices}):"
+
+#. type: lisp
+#: doc/guix.texi:13647
+#, no-wrap
+msgid ""
+"(file-system\n"
+"  (device (file-system-label \"my-btrfs-pool\"))\n"
+"  (mount-point \"/\")\n"
+"  (type \"btrfs\")\n"
+"  (options \"subvol=rootfs\")\n"
+"  (dependencies mapped-devices))\n"
+msgstr ""
+"(file-system\n"
+"  (device (file-system-label \"mi-btrfs\"))\n"
+"  (mount-point \"/\")\n"
+"  (type \"btrfs\")\n"
+"  (options \"subvol=rootfs\")\n"
+"  (dependencies mapped-devices))\n"
+
+#. type: Plain text
+#: doc/guix.texi:13658
+msgid "Some bootloaders, for example GRUB, only mount a Btrfs partition at its top level during the early boot, and rely on their configuration to refer to the correct subvolume path within that top level.  The bootloaders operating in this way typically produce their configuration on a running system where the Btrfs partitions are already mounted and where the subvolume information is readily available.  As an example, @command{grub-mkconfig}, the configuration generator command shipped with GRUB, reads @file{/proc/self/mountinfo} to determine the top-level path of a subvolume."
+msgstr "Algunos cargadores de arranque, por ejemplo GRUB, únicamente montan una partición Btrfs en su nivel superior durante los momentos iniciales del arranque, y dependen de que su configuración haga referencia a la ruta correcta del subvolumen dentro de dicho nivel superior. Los cargadores de arranque que operan de este modo producen habitualmente su configuración en un sistema en ejecución donde las particiones Btrfs ya se encuentran montadas y donde la información de subvolúmenes está disponible. Como un ejemplo, @command{grub-mkconfig}, la herramienta de generación de configuración que viene con GRUB, lee @file{/proc/self/mountinfo} para determinar la ruta desde el nivel superior de un subvolumen."
+
+#. type: Plain text
+#: doc/guix.texi:13666
+msgid "The Guix System produces a bootloader configuration using the operating system configuration as its sole input; it is therefore necessary to extract the subvolume name on which @file{/gnu/store} lives (if any)  from that operating system configuration.  To better illustrate, consider a subvolume named 'rootfs' which contains the root file system data.  In such situation, the GRUB bootloader would only see the top level of the root Btrfs partition, e.g.:"
+msgstr "El sistema Guix produce una configuración para el cargador de arranque usando la configuración del sistema operativo como su única entrada; por lo tanto es necesario extraer la información del subvolumen en el que se encuentra @file{/gnu/store} (en caso de estar en alguno) de la configuración del sistema operativo. Para ilustrar esta situación mejor, considere un subvolumen que se llama 'rootfs' el cual contiene el sistema de archivos raiz. En esta situación, el cargador de arranque GRUB únicamente vería el nivel superior de la partición de raíz de Btrfs, por ejemplo:"
+
+#. type: example
+#: doc/guix.texi:13673
+#, no-wrap
+msgid ""
+"/                   (top level)\n"
+"├── rootfs          (subvolume directory)\n"
+"    ├── gnu         (normal directory)\n"
+"        ├── store   (normal directory)\n"
+"[...]\n"
+msgstr ""
+"/                   (nivel superior)\n"
+"├── rootfs          (directorio del subvolumen)\n"
+"    ├── gnu         (directorio normal)\n"
+"        ├── store   (directorio normal)\n"
+"[...]\n"
+
+#. type: Plain text
+#: doc/guix.texi:13678
+msgid "Thus, the subvolume name must be prepended to the @file{/gnu/store} path of the kernel, initrd binaries and any other files referred to in the GRUB configuration that must be found during the early boot."
+msgstr "Por lo tanto, el nombre del subvolumen debe añadirse al inicio de la ruta al núcleo, los binarios de initrd y otros archivos a los que haga referencia la configuración de GRUB en @file{/gnu/store}, para que puedan encontrarse en los momentos iniciales del arranque."
+
+#. type: Plain text
+#: doc/guix.texi:13681
+msgid "The next example shows a nested hierarchy of subvolumes and directories:"
+msgstr "El siguiente ejemplo muestra una jerarquía anidada de subvolúmenes y directorios:"
+
+#. type: example
+#: doc/guix.texi:13688
+#, no-wrap
+msgid ""
+"/                   (top level)\n"
+"├── rootfs          (subvolume)\n"
+"    ├── gnu         (normal directory)\n"
+"        ├── store   (subvolume)\n"
+"[...]\n"
+msgstr ""
+"/                   (nivel superior)\n"
+"├── rootfs          (subvolumen)\n"
+"    ├── gnu         (directorio normal)\n"
+"        ├── store   (subvolumen)\n"
+"[...]\n"
+
+#. type: Plain text
+#: doc/guix.texi:13695
+msgid "This scenario would work without mounting the 'store' subvolume.  Mounting 'rootfs' is sufficient, since the subvolume name matches its intended mount point in the file system hierarchy.  Alternatively, the 'store' subvolume could be referred to by setting the @code{subvol} option to either @code{/rootfs/gnu/store} or @code{rootfs/gnu/store}."
+msgstr "Este escenario funcionaría sin montar el subvolumen 'store'. Montar 'rootfs' es suficiente, puesto que el nombre del subvolumen corresponde con el punto de montaje deseado en la jerarquía del sistema de archivos. Alternativamente se puede hacer referencia el subvolumen 'store' proporcionando tanto el valor @code{/rootfs/gnu/store} como el valor @code{rootfs/gnu/store} a la opción @code{subvol}."
+
+#. type: Plain text
+#: doc/guix.texi:13697
+msgid "Finally, a more contrived example of nested subvolumes:"
+msgstr "Por último, un ejemplo más elaborado de subvolúmenes anidados:"
+
+#. type: example
+#: doc/guix.texi:13704
+#, no-wrap
+msgid ""
+"/                           (top level)\n"
+"├── root-snapshots          (subvolume)\n"
+"    ├── root-current        (subvolume)\n"
+"        ├── guix-store      (subvolume)\n"
+"[...]\n"
+msgstr ""
+"/                           (nivel superior)\n"
+"├── root-snapshots          (subvolumen)\n"
+"    ├── root-current        (subvolumen)\n"
+"        ├── guix-store      (subvolumen)\n"
+"[...]\n"
+
+#. type: Plain text
+#: doc/guix.texi:13711
+msgid "Here, the 'guix-store' subvolume doesn't match its intended mount point, so it is necessary to mount it.  The subvolume must be fully specified, by passing its file name to the @code{subvol} option.  To illustrate, the 'guix-store' subvolume could be mounted on @file{/gnu/store} by using a file system declaration such as:"
+msgstr "Aquí, el subvolumen 'guix-store' no corresponde con el punto de montaje deseado, por lo que es necesario montarlo. El subvolumen debe ser especificado completamente proporcionando su nombre de archivo a la opción @code{subvol}. Para ilustrar este ejemplo, el subvolumen 'guix-store' puede montarse en @file{/gnu/store} usando una declaración de sistema de archivos como la siguiente:"
+
+#. type: lisp
+#: doc/guix.texi:13719
+#, no-wrap
+msgid ""
+"(file-system\n"
+"  (device (file-system-label \"btrfs-pool-1\"))\n"
+"  (mount-point \"/gnu/store\")\n"
+"  (type \"btrfs\")\n"
+"  (options \"subvol=root-snapshots/root-current/guix-store,\\\n"
+"compress-force=zstd,space_cache=v2\"))\n"
+msgstr ""
+"(file-system\n"
+"  (device (file-system-label \"mi-otro-btrfs\"))\n"
+"  (mount-point \"/gnu/store\")\n"
+"  (type \"btrfs\")\n"
+"  (options \"subvol=root-snapshots/root-current/guix-store,\\\n"
+"compress-force=zstd,space_cache=v2\"))\n"
 
 #. type: cindex
-#: doc/guix.texi:11608
+#: doc/guix.texi:13724
 #, no-wrap
 msgid "device mapping"
 msgstr "traducción de dispositivos"
 
 # TODO: (MAAV) Comprobar como se ha hecho en otros proyectos.
 #. type: cindex
-#: doc/guix.texi:11609
+#: doc/guix.texi:13725
 #, no-wrap
 msgid "mapped devices"
 msgstr "dispositivos traducidos"
 
 #. type: Plain text
-#: doc/guix.texi:11627
+#: doc/guix.texi:13743
 msgid "The Linux kernel has a notion of @dfn{device mapping}: a block device, such as a hard disk partition, can be @dfn{mapped} into another device, usually in @code{/dev/mapper/}, with additional processing over the data that flows through it@footnote{Note that the GNU@tie{}Hurd makes no difference between the concept of a ``mapped device'' and that of a file system: both boil down to @emph{translating} input/output operations made on a file to operations on its backing store.  Thus, the Hurd implements mapped devices, like file systems, using the generic @dfn{translator} mechanism (@pxref{Translators,,, hurd, The GNU Hurd Reference Manual}).}.  A typical example is encryption device mapping: all writes to the mapped device are encrypted, and all reads are deciphered, transparently.  Guix extends this notion by considering any device or set of devices that are @dfn{transformed} in some way to create a new device; for instance, RAID devices are obtained by @dfn{assembling} several other devices, such as hard disks or partitions, into a new one that behaves as one partition.  Other examples, not yet implemented, are LVM logical volumes."
-msgstr "El núcleo Linux tiene una noción de @dfn{traducción de dispositivos}: un dispositivo de bloques, como una partición de disco duro, puede @dfn{traducirse} en otro dispositivo, habitualmente en @code{/dev/mapper/}, con un procesamiento adicional sobre los datos que fluyen a través de ella@footnote{Fíjese que GNU@tie{}Hurd no diferencia entre el concepto de un ``dispositivo traducido'' y el de un sistema de ficheros: ambos se reducen a @emph{traducir} operaciones de entrada/salida realizadas en un fichero a operaciones en su almacenamiento subyacente. Por tanto, Hurd implementa dispositivos traducidos, como sistemas de ficheros, usando el mecanismo genérico de @dfn{traducción} (@pxref{Translators,,, hurd, The GNU Hurd Reference Manual}).}. Un ejemplo típico es la traducción de dispositivos para el cifrado: todas las escrituras en el dispositivo traducido se cifran, y todas las lecturas se descifran, de forma transparente. Guix extiende esta noción considerando cualquier dispositivo o conjunto de dispositivos que son @dfn{transformados} de alguna manera para crear un nuevo dispositivo; por ejemplo, los dispositivos RAID se obtienen @dfn{ensamblando} otros dispositivos, como discos duros o particiones, en uno nuevo que se comporta como una partición. Otros ejemplos, todavía no implementados, son los volúmenes lógicos LVM."
+msgstr "El núcleo Linux tiene una noción de @dfn{traducción de dispositivos}: un dispositivo de bloques, como una partición de disco duro, puede @dfn{traducirse} en otro dispositivo, habitualmente en @code{/dev/mapper/}, con un procesamiento adicional sobre los datos que fluyen a través de ella@footnote{Fíjese que GNU@tie{}Hurd no diferencia entre el concepto de un ``dispositivo traducido'' y el de un sistema de archivos: ambos se reducen a @emph{traducir} operaciones de entrada/salida realizadas en un archivo a operaciones en su almacenamiento subyacente. Por tanto, Hurd implementa dispositivos traducidos, como sistemas de archivos, usando el mecanismo genérico de @dfn{traducción} (@pxref{Translators,,, hurd, The GNU Hurd Reference Manual}).}. Un ejemplo típico es la traducción de dispositivos para el cifrado: todas las escrituras en el dispositivo traducido se cifran, y todas las lecturas se descifran, de forma transparente. Guix extiende esta noción considerando cualquier dispositivo o conjunto de dispositivos que son @dfn{transformados} de alguna manera para crear un nuevo dispositivo; por ejemplo, los dispositivos RAID se obtienen @dfn{ensamblando} otros dispositivos, como discos duros o particiones, en uno nuevo que se comporta como una partición. Otros ejemplos, todavía no implementados, son los volúmenes lógicos LVM."
 
 #. type: Plain text
-#: doc/guix.texi:11630
+#: doc/guix.texi:13746
 msgid "Mapped devices are declared using the @code{mapped-device} form, defined as follows; for examples, see below."
 msgstr "Los dispositivos traducidos se declaran mediante el uso de la forma @code{mapped-device}, definida a continuación; ejemplos más adelante."
 
 #. type: deftp
-#: doc/guix.texi:11631
+#: doc/guix.texi:13747
 #, no-wrap
 msgid "{Data Type} mapped-device"
 msgstr "{Tipo de datos} mapped-device"
 
 #. type: deftp
-#: doc/guix.texi:11634
+#: doc/guix.texi:13750
 msgid "Objects of this type represent device mappings that will be made when the system boots up."
 msgstr "Objetos de este tipo representan traducciones de dispositivo que se llevarán a cabo cuando el sistema arranque."
 
 #. type: table
-#: doc/guix.texi:11640
+#: doc/guix.texi:13756
 msgid "This is either a string specifying the name of the block device to be mapped, such as @code{\"/dev/sda3\"}, or a list of such strings when several devices need to be assembled for creating a new one."
 msgstr "Puede ser tanto una cadena que especifica el nombre de un dispositivo de bloques a traducir, como @code{\"/dev/sda3\"}, o una lista de dichas cadenas cuando varios dispositivos necesitan ser ensamblados para crear uno nuevo."
 
 #. type: code{#1}
-#: doc/guix.texi:11641 doc/guix.texi:26327
+#: doc/guix.texi:13757 doc/guix.texi:30418
 #, no-wrap
 msgid "target"
 msgstr "target"
 
 #. type: table
-#: doc/guix.texi:11648
+#: doc/guix.texi:13764
 msgid "This string specifies the name of the resulting mapped device.  For kernel mappers such as encrypted devices of type @code{luks-device-mapping}, specifying @code{\"my-partition\"} leads to the creation of the @code{\"/dev/mapper/my-partition\"} device.  For RAID devices of type @code{raid-device-mapping}, the full device name such as @code{\"/dev/md0\"} needs to be given."
 msgstr "Esta cadena especifica el nombre del dispositivo traducido resultante. Para traductores del núcleo como dispositivos de cifrado del tipo @code{luks-device-mapping}, especificar @code{\"mi-particion\"} produce la creación del dispositivo @code{\"/dev/mapper/mi-particion\"}. Para dispositivos RAID de tipo @code{raid-device-mapping}, el nombre del dispositivo completo como @code{\"/dev/md0\"} debe ser proporcionado."
 
 #. type: table
-#: doc/guix.texi:11652
+#: doc/guix.texi:13768
 msgid "This must be a @code{mapped-device-kind} object, which specifies how @var{source} is mapped to @var{target}."
 msgstr "Debe ser un objeto @code{mapped-device-kind}, que especifica cómo @var{source} se traduce a @var{target}."
 
 #. type: defvr
-#: doc/guix.texi:11655
+#: doc/guix.texi:13771
 #, no-wrap
 msgid "{Scheme Variable} luks-device-mapping"
 msgstr "{Variable Scheme} luks-device-mapping"
 
 #. type: defvr
-#: doc/guix.texi:11659
+#: doc/guix.texi:13775
 msgid "This defines LUKS block device encryption using the @command{cryptsetup} command from the package with the same name.  It relies on the @code{dm-crypt} Linux kernel module."
 msgstr "Define el cifrado de bloques LUKS mediante el uso de la orden @command{cryptsetup} del paquete del mismo nombre. Depende del módulo @code{dm-crypt} del núcleo Linux."
 
 #. type: defvr
-#: doc/guix.texi:11661
+#: doc/guix.texi:13777
 #, no-wrap
 msgid "{Scheme Variable} raid-device-mapping"
 msgstr "{Variable Scheme} raid-device-mapping"
 
 #. type: defvr
-#: doc/guix.texi:11666
+#: doc/guix.texi:13782
 msgid "This defines a RAID device, which is assembled using the @code{mdadm} command from the package with the same name.  It requires a Linux kernel module for the appropriate RAID level to be loaded, such as @code{raid456} for RAID-4, RAID-5 or RAID-6, or @code{raid10} for RAID-10."
 msgstr "Define un dispositivo RAID, el cual se ensambla mediante el uso de la orden @code{mdadm} del paquete del mismo nombre. Requiere la carga del módulo del núcleo Linux para el nivel RAID apropiado, como @code{raid456} para RAID-4, RAID-5 o RAID-6, o @code{raid10} para RAID-10."
 
 #. type: cindex
-#: doc/guix.texi:11668
+#: doc/guix.texi:13784
 #, no-wrap
 msgid "disk encryption"
 msgstr "cifrado de disco"
 
 #. type: cindex
-#: doc/guix.texi:11669
+#: doc/guix.texi:13785
 #, no-wrap
 msgid "LUKS"
 msgstr "LUKS"
 
 #. type: Plain text
-#: doc/guix.texi:11677
+#: doc/guix.texi:13793
 msgid "The following example specifies a mapping from @file{/dev/sda3} to @file{/dev/mapper/home} using LUKS---the @url{https://gitlab.com/cryptsetup/cryptsetup,Linux Unified Key Setup}, a standard mechanism for disk encryption.  The @file{/dev/mapper/home} device can then be used as the @code{device} of a @code{file-system} declaration (@pxref{File Systems})."
 msgstr "El siguiente ejemplo especifica una traducción de @file{/dev/sda3} a @file{/dev/mapper/home} mediante el uso de LUKS---la @url{https://gitlab.com/cryptsetup/cryptsetup,configuración de claves unificada de Linux}, un mecanismo estándar para cifrado de disco. El dispositivo @file{/dev/mapper/home} puede usarse entonces como el campo @code{device} de una declaración @code{file-system} (@pxref{File Systems})."
 
 #. type: lisp
-#: doc/guix.texi:11683
+#: doc/guix.texi:13799
 #, no-wrap
 msgid ""
 "(mapped-device\n"
@@ -21677,23 +25353,23 @@ msgstr ""
 "  (type luks-device-mapping))\n"
 
 #. type: Plain text
-#: doc/guix.texi:11688
+#: doc/guix.texi:13804
 msgid "Alternatively, to become independent of device numbering, one may obtain the LUKS UUID (@dfn{unique identifier}) of the source device by a command like:"
 msgstr "De manera alternativa, para independizarse de la numeración de dispositivos, puede obtenerse el UUID LUKS (@dfn{identificador único}) del dispositivo fuente con una orden así:"
 
 #. type: example
-#: doc/guix.texi:11691
+#: doc/guix.texi:13807
 #, no-wrap
 msgid "cryptsetup luksUUID /dev/sda3\n"
 msgstr "cryptsetup luksUUID /dev/sda3\n"
 
 #. type: Plain text
-#: doc/guix.texi:11694
+#: doc/guix.texi:13810
 msgid "and use it as follows:"
 msgstr "y usarlo como sigue:"
 
 #. type: lisp
-#: doc/guix.texi:11700
+#: doc/guix.texi:13816
 #, no-wrap
 msgid ""
 "(mapped-device\n"
@@ -21708,24 +25384,24 @@ msgstr ""
 
 # FUZZY
 #. type: cindex
-#: doc/guix.texi:11702
+#: doc/guix.texi:13818
 #, no-wrap
 msgid "swap encryption"
 msgstr "cifrado del intercambio"
 
 # TODO: Comprobar traducción.
 #. type: Plain text
-#: doc/guix.texi:11708
+#: doc/guix.texi:13824
 msgid "It is also desirable to encrypt swap space, since swap space may contain sensitive data.  One way to accomplish that is to use a swap file in a file system on a device mapped via LUKS encryption.  In this way, the swap file is encrypted because the entire device is encrypted.  @xref{Preparing for Installation,,Disk Partitioning}, for an example."
-msgstr "También es deseable cifrar el espacio de intercambio, puesto que el espacio de intercambio puede contener información sensible. Una forma de conseguirlo es usar un fichero de intercambio en un sistema de ficheros en un dispositivo traducido a través del cifrado LUKS. @xref{Preparing for Installation,,Particionado del disco}, para un ejemplo."
+msgstr "También es deseable cifrar el espacio de intercambio, puesto que el espacio de intercambio puede contener información sensible. Una forma de conseguirlo es usar un archivo de intercambio en un sistema de archivos en un dispositivo traducido a través del cifrado LUKS. @xref{Preparing for Installation,,Particionado del disco}, para un ejemplo."
 
 #. type: Plain text
-#: doc/guix.texi:11711
+#: doc/guix.texi:13827
 msgid "A RAID device formed of the partitions @file{/dev/sda1} and @file{/dev/sdb1} may be declared as follows:"
 msgstr "Un dispositivo RAID formado por las particiones @file{/dev/sda1} y @file{/dev/sdb1} puede declararse como se muestra a continuación:"
 
 #. type: lisp
-#: doc/guix.texi:11717
+#: doc/guix.texi:13833
 #, no-wrap
 msgid ""
 "(mapped-device\n"
@@ -21739,35 +25415,35 @@ msgstr ""
 "  (type raid-device-mapping))\n"
 
 #. type: Plain text
-#: doc/guix.texi:11724
+#: doc/guix.texi:13840
 msgid "The @file{/dev/md0} device can then be used as the @code{device} of a @code{file-system} declaration (@pxref{File Systems}).  Note that the RAID level need not be given; it is chosen during the initial creation and formatting of the RAID device and is determined automatically later."
 msgstr "El dispositivo @file{/dev/md0} puede usarse entonces como el campo @code{device} de una declaración @code{file-system} (@pxref{File Systems}). Fíjese que no necesita proporcionar el nivel RAID; se selecciona durante la creación inicial y formato del dispositivo RAID y después se determina automáticamente."
 
 #. type: cindex
-#: doc/guix.texi:11729
+#: doc/guix.texi:13845
 #, no-wrap
 msgid "users"
 msgstr "usuarias"
 
 #. type: cindex
-#: doc/guix.texi:11730
+#: doc/guix.texi:13846
 #, no-wrap
 msgid "accounts"
 msgstr "cuentas"
 
 #. type: cindex
-#: doc/guix.texi:11731
+#: doc/guix.texi:13847
 #, no-wrap
 msgid "user accounts"
 msgstr "cuentas de usuaria"
 
 #. type: Plain text
-#: doc/guix.texi:11735
+#: doc/guix.texi:13851
 msgid "User accounts and groups are entirely managed through the @code{operating-system} declaration.  They are specified with the @code{user-account} and @code{user-group} forms:"
 msgstr "Los grupos y cuentas de usuaria se gestionan completamente a través de la declaración @code{operating-system}. Se especifican con las formas @code{user-account} y @code{user-group}:"
 
 #. type: lisp
-#: doc/guix.texi:11746
+#: doc/guix.texi:13861
 #, no-wrap
 msgid ""
 "(user-account\n"
@@ -21777,163 +25453,201 @@ msgid ""
 "                          \"audio\"   ;sound card\n"
 "                          \"video\"   ;video devices such as webcams\n"
 "                          \"cdrom\")) ;the good ol' CD-ROM\n"
-"  (comment \"Bob's sister\")\n"
-"  (home-directory \"/home/alice\"))\n"
+"  (comment \"Bob's sister\"))\n"
 msgstr ""
 "(user-account\n"
 "  (name \"alicia\")\n"
 "  (group \"users\")\n"
 "  (supplementary-groups '(\"wheel\"   ;permite usar sudo, etc.\n"
 "                          \"audio\"   ;tarjeta de sonido\n"
-"                          \"video\"   ;dispositivos de vídeo como cámaras\n"
+"                          \"video\"   ;dispositivos audivisuales como cámaras\n"
 "                          \"cdrom\")) ;el veterano CD-ROM\n"
-"  (comment \"hermana de Roberto\")\n"
-"  (home-directory \"/home/alicia\"))\n"
+"  (comment \"hermana de Roberto\"))\n"
 
 #. type: Plain text
-#: doc/guix.texi:11755
+#: doc/guix.texi:13865
+msgid "Here's a user account that uses a different shell and a custom home directory (the default would be @file{\"/home/bob\"}):"
+msgstr "Esta es una cuenta que usa un shell diferente y un directorio personalizado (el predeterminado sería @file{\"/home/rober\"}):"
+
+#. type: lisp
+#: doc/guix.texi:13873
+#, no-wrap
+msgid ""
+"(user-account\n"
+"  (name \"bob\")\n"
+"  (group \"users\")\n"
+"  (comment \"Alice's bro\")\n"
+"  (shell (file-append zsh \"/bin/zsh\"))\n"
+"  (home-directory \"/home/robert\"))\n"
+msgstr ""
+"(user-account\n"
+"  (name \"rober\")\n"
+"  (group \"users\")\n"
+"  (comment \"hermano de Alicia\")\n"
+"  (shell (file-append zsh \"/bin/zsh\"))\n"
+"  (home-directory \"/home/roberto\"))\n"
+
+#. type: Plain text
+#: doc/guix.texi:13882
 msgid "When booting or upon completion of @command{guix system reconfigure}, the system ensures that only the user accounts and groups specified in the @code{operating-system} declaration exist, and with the specified properties.  Thus, account or group creations or modifications made by directly invoking commands such as @command{useradd} are lost upon reconfiguration or reboot.  This ensures that the system remains exactly as declared."
 msgstr "Durante el arranque o tras la finalización de @command{guix system reconfigure}, el sistema se asegura de que únicamente las cuentas de usuaria y grupos especificados en la declaración @code{operating-system} existen, y con las propiedades especificadas. Por tanto, la creación o modificación de cuentas o grupos realizadas directamente invocando órdenes como @command{useradd} se pierden al reconfigurar o reiniciar el sistema. Esto asegura que el sistema permanece exactamente como se declaró."
 
 #. type: deftp
-#: doc/guix.texi:11756
+#: doc/guix.texi:13883
 #, no-wrap
 msgid "{Data Type} user-account"
 msgstr "{Tipo de datos} user-account"
 
 #. type: deftp
-#: doc/guix.texi:11759
+#: doc/guix.texi:13886
 msgid "Objects of this type represent user accounts.  The following members may be specified:"
 msgstr "Objetos de este tipo representan cuentas de usuaria. Los siguientes miembros pueden ser especificados:"
 
 #. type: table
-#: doc/guix.texi:11763
+#: doc/guix.texi:13890
 msgid "The name of the user account."
 msgstr "El nombre de la cuenta de usuaria."
 
 #. type: itemx
-#: doc/guix.texi:11764 doc/guix.texi:26063
+#: doc/guix.texi:13891 doc/guix.texi:30105
 #, no-wrap
 msgid "group"
 msgstr "group"
 
 #. type: cindex
-#: doc/guix.texi:11765 doc/guix.texi:11832
+#: doc/guix.texi:13892 doc/guix.texi:13971
 #, no-wrap
 msgid "groups"
 msgstr "grupos"
 
 #. type: table
-#: doc/guix.texi:11768
+#: doc/guix.texi:13895
 msgid "This is the name (a string) or identifier (a number) of the user group this account belongs to."
 msgstr "Este es el nombre (una cadena) o identificador (un número) del grupo de usuarias al que esta cuenta pertenece."
 
 #. type: item
-#: doc/guix.texi:11769
+#: doc/guix.texi:13896
 #, no-wrap
 msgid "@code{supplementary-groups} (default: @code{'()})"
 msgstr "@code{supplementary-groups} (predeterminados: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:11772
+#: doc/guix.texi:13899
 msgid "Optionally, this can be defined as a list of group names that this account belongs to."
 msgstr "Opcionalmente, esto puede definirse como una lista de nombres de grupo a los que esta cuenta pertenece."
 
 #. type: item
-#: doc/guix.texi:11773
+#: doc/guix.texi:13900
 #, no-wrap
 msgid "@code{uid} (default: @code{#f})"
 msgstr "@code{uid} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:11777
+#: doc/guix.texi:13904
 msgid "This is the user ID for this account (a number), or @code{#f}.  In the latter case, a number is automatically chosen by the system when the account is created."
 msgstr "Este es el ID de usuaria para esta cuenta (un número), o @code{#f}. En el último caso, un número es seleccionado automáticamente por el sistema cuando la cuenta es creada."
 
 #. type: item
-#: doc/guix.texi:11778
+#: doc/guix.texi:13905
 #, no-wrap
 msgid "@code{comment} (default: @code{\"\"})"
 msgstr "@code{comment} (predeterminado: @code{\"\"})"
 
 #. type: table
-#: doc/guix.texi:11780
+#: doc/guix.texi:13907
 msgid "A comment about the account, such as the account owner's full name."
 msgstr "Un comentario sobre la cuenta, como el nombre completo de la propietaria."
 
 #. type: code{#1}
-#: doc/guix.texi:11781
+#: doc/guix.texi:13908
 #, no-wrap
 msgid "home-directory"
 msgstr "home-directory"
 
 #. type: table
-#: doc/guix.texi:11783
+#: doc/guix.texi:13910
 msgid "This is the name of the home directory for the account."
 msgstr "Este es el nombre del directorio de usuaria de la cuenta."
 
 #. type: item
-#: doc/guix.texi:11784
+#: doc/guix.texi:13911
 #, no-wrap
 msgid "@code{create-home-directory?} (default: @code{#t})"
 msgstr "@code{create-home-directory?} (predeterminado: @code{#t})"
 
 #. type: table
-#: doc/guix.texi:11787
+#: doc/guix.texi:13914
 msgid "Indicates whether the home directory of this account should be created if it does not exist yet."
 msgstr "Indica si el directorio de usuaria de esta cuenta debe ser creado si no existe todavía."
 
 #. type: item
-#: doc/guix.texi:11788
+#: doc/guix.texi:13915
 #, no-wrap
 msgid "@code{shell} (default: Bash)"
 msgstr "@code{shell} (predeterminado: Bash)"
 
 #. type: table
-#: doc/guix.texi:11791
-msgid "This is a G-expression denoting the file name of a program to be used as the shell (@pxref{G-Expressions})."
-msgstr "Esto es una expresión-G denotando el nombre de fichero de un programa que será usado como shell (@pxref{G-Expressions})."
+#: doc/guix.texi:13919
+msgid "This is a G-expression denoting the file name of a program to be used as the shell (@pxref{G-Expressions}).  For example, you would refer to the Bash executable like this:"
+msgstr "Esto es una expresión-G denotando el nombre de archivo de un programa que será usado como shell (@pxref{G-Expressions}).  Por ejemplo, podría hacer referencia al ejecutable de Bash de este modo:"
+
+#. type: lisp
+#: doc/guix.texi:13922
+#, no-wrap
+msgid "(file-append bash \"/bin/bash\")\n"
+msgstr "(file-append bash \"/bin/bash\")\n"
+
+#. type: table
+#: doc/guix.texi:13926
+msgid "... and to the Zsh executable like that:"
+msgstr "... y al ejecutable de Zsh de este otro:"
+
+#. type: lisp
+#: doc/guix.texi:13929
+#, no-wrap
+msgid "(file-append zsh \"/bin/zsh\")\n"
+msgstr "(file-append zsh \"/bin/zsh\")\n"
 
 #. type: item
-#: doc/guix.texi:11792 doc/guix.texi:11850
+#: doc/guix.texi:13931 doc/guix.texi:13989
 #, no-wrap
 msgid "@code{system?} (default: @code{#f})"
 msgstr "@code{system?} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:11796
+#: doc/guix.texi:13935
 msgid "This Boolean value indicates whether the account is a ``system'' account.  System accounts are sometimes treated specially; for instance, graphical login managers do not list them."
 msgstr "Este valor lógico indica si la cuenta es una cuenta ``del sistema''. Las cuentas del sistema se tratan a veces de forma especial; por ejemplo, los gestores gráficos de inicio no las enumeran."
 
 #. type: anchor{#1}
-#: doc/guix.texi:11798
+#: doc/guix.texi:13937
 msgid "user-account-password"
 msgstr "user-account-password"
 
 #. type: cindex
-#: doc/guix.texi:11798
+#: doc/guix.texi:13937
 #, no-wrap
 msgid "password, for user accounts"
 msgstr "contraseña, para cuentas de usuaria"
 
 #. type: item
-#: doc/guix.texi:11799 doc/guix.texi:11854
+#: doc/guix.texi:13938 doc/guix.texi:13993 doc/guix.texi:29121
 #, no-wrap
 msgid "@code{password} (default: @code{#f})"
 msgstr "@code{password} (predeterminada: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:11805
+#: doc/guix.texi:13944
 msgid "You would normally leave this field to @code{#f}, initialize user passwords as @code{root} with the @command{passwd} command, and then let users change it with @command{passwd}.  Passwords set with @command{passwd} are of course preserved across reboot and reconfiguration."
 msgstr "Normalmente debería dejar este campo a @code{#f}, inicializar la contraseña de usuaria como @code{root} con la orden @command{passwd}, y entonces dejar a las usuarias cambiarla con @command{passwd}. Las contraseñas establecidas con @command{passwd} son, por supuesto, preservadas entre reinicio y reinicio, y entre reconfiguraciones."
 
 #. type: table
-#: doc/guix.texi:11809
+#: doc/guix.texi:13948
 msgid "If you @emph{do} want to set an initial password for an account, then this field must contain the encrypted password, as a string.  You can use the @code{crypt} procedure for this purpose:"
 msgstr "Si usted @emph{realmente quiere} tener una contraseña prefijada para una cuenta, entonces este campo debe contener la contraseña cifrada, como una cadena. Puede usar el procedimiento @code{crypt} para este fin:"
 
 #. type: lisp
-#: doc/guix.texi:11814
+#: doc/guix.texi:13953
 #, no-wrap
 msgid ""
 "(user-account\n"
@@ -21947,7 +25661,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:11817
+#: doc/guix.texi:13956
 #, no-wrap
 msgid ""
 "  ;; Specify a SHA-512-hashed initial password.\n"
@@ -21957,92 +25671,92 @@ msgstr ""
 "  (password (crypt \"ContraseñaInicial!\" \"$6$abc\")))\n"
 
 #. type: quotation
-#: doc/guix.texi:11823
+#: doc/guix.texi:13962
 msgid "The hash of this initial password will be available in a file in @file{/gnu/store}, readable by all the users, so this method must be used with care."
-msgstr "El hash de esta contraseña inicial estará disponible en un fichero en @file{/gnu/store}, legible por todas las usuarias, por lo que este método debe usarse con precaución."
+msgstr "El hash de esta contraseña inicial estará disponible en un archivo en @file{/gnu/store}, legible por todas las usuarias, por lo que este método debe usarse con precaución."
 
 #. type: table
-#: doc/guix.texi:11828
+#: doc/guix.texi:13967
 msgid "@xref{Passphrase Storage,,, libc, The GNU C Library Reference Manual}, for more information on password encryption, and @ref{Encryption,,, guile, GNU Guile Reference Manual}, for information on Guile's @code{crypt} procedure."
 msgstr "@xref{Passphrase Storage,,, libc, The GNU C Library Reference Manual}, para más información sobre el cifrado de contraseñas, y @ref{Encryption,,, guile, GNU Guile Reference Manual}, para información sobre el procedimiento de Guile @code{crypt}."
 
 #. type: Plain text
-#: doc/guix.texi:11834
+#: doc/guix.texi:13973
 msgid "User group declarations are even simpler:"
 msgstr "Las declaraciones de grupos incluso son más simples:"
 
 #. type: lisp
-#: doc/guix.texi:11837
+#: doc/guix.texi:13976
 #, no-wrap
 msgid "(user-group (name \"students\"))\n"
 msgstr "(user-group (name \"estudiantes\"))\n"
 
 #. type: deftp
-#: doc/guix.texi:11839
+#: doc/guix.texi:13978
 #, no-wrap
 msgid "{Data Type} user-group"
 msgstr "{Tipo de datos} user-group"
 
 #. type: deftp
-#: doc/guix.texi:11841
+#: doc/guix.texi:13980
 msgid "This type is for, well, user groups.  There are just a few fields:"
 msgstr "Este tipo es para grupos de usuarias. Hay únicamente unos pocos campos:"
 
 #. type: table
-#: doc/guix.texi:11845
+#: doc/guix.texi:13984
 msgid "The name of the group."
 msgstr "El nombre del grupo."
 
 #. type: item
-#: doc/guix.texi:11846
+#: doc/guix.texi:13985 doc/guix.texi:26987
 #, no-wrap
 msgid "@code{id} (default: @code{#f})"
 msgstr "@code{id} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:11849
+#: doc/guix.texi:13988
 msgid "The group identifier (a number).  If @code{#f}, a new number is automatically allocated when the group is created."
 msgstr "El identificador del grupo (un número). Si es @code{#f}, un nuevo número es reservado automáticamente cuando se crea el grupo."
 
 #. type: table
-#: doc/guix.texi:11853
+#: doc/guix.texi:13992
 msgid "This Boolean value indicates whether the group is a ``system'' group.  System groups have low numerical IDs."
 msgstr "Este valor booleano indica si el grupo es un grupo ``del sistema''. Los grupos del sistema tienen identificadores numéricos bajos."
 
 #. type: table
-#: doc/guix.texi:11857
+#: doc/guix.texi:13996
 msgid "What, user groups can have a password? Well, apparently yes.  Unless @code{#f}, this field specifies the password of the group."
 msgstr "¿Qué? ¿Los grupos de usuarias pueden tener una contraseña? Bueno, aparentemente sí. A menos que sea @code{#f}, este campo especifica la contraseña del grupo."
 
 #. type: Plain text
-#: doc/guix.texi:11863
+#: doc/guix.texi:14002
 msgid "For convenience, a variable lists all the basic user groups one may expect:"
 msgstr "Por conveniencia, una variable contiene una lista con todos los grupos de usuarias básicos que se puede esperar:"
 
 #. type: defvr
-#: doc/guix.texi:11864
+#: doc/guix.texi:14003
 #, no-wrap
 msgid "{Scheme Variable} %base-groups"
 msgstr "{Variable Scheme} %base-groups"
 
 #. type: defvr
-#: doc/guix.texi:11869
+#: doc/guix.texi:14008
 msgid "This is the list of basic user groups that users and/or packages expect to be present on the system.  This includes groups such as ``root'', ``wheel'', and ``users'', as well as groups used to control access to specific devices such as ``audio'', ``disk'', and ``cdrom''."
 msgstr "Esta es la lista de grupos de usuarias básicos que las usuarias y/o los paquetes esperan que estén presentes en el sistema. Esto incluye grupos como ``root'', ``wheel'' y ``users'', así como grupos usados para controlar el acceso a dispositivos específicos como ``audio'', ``disk'' y ``cdrom''."
 
 #. type: defvr
-#: doc/guix.texi:11871
+#: doc/guix.texi:14010
 #, no-wrap
 msgid "{Scheme Variable} %base-user-accounts"
 msgstr "{Variable Scheme} %base-user-accounts"
 
 #. type: defvr
-#: doc/guix.texi:11874
+#: doc/guix.texi:14013
 msgid "This is the list of basic system accounts that programs may expect to find on a GNU/Linux system, such as the ``nobody'' account."
 msgstr "Esta es la lista de cuentas de usuaria básicas que los programas pueden esperar encontrar en un sistema GNU/Linux, como la cuenta ``nobody''."
 
 #. type: defvr
-#: doc/guix.texi:11877
+#: doc/guix.texi:14016
 msgid "Note that the ``root'' account is not included here.  It is a special-case and is automatically added whether or not it is specified."
 msgstr "Fíjese que la cuenta de ``root'' no se incluye aquí. Es un caso especial y se añade automáticamente esté o no especificada."
 
@@ -22050,61 +25764,85 @@ msgstr "Fíjese que la cuenta de ``root'' no se incluye aquí. Es un caso especi
 #
 # MAAV: Suena fatal... :(
 #. type: cindex
-#: doc/guix.texi:11883
+#: doc/guix.texi:14022
 #, no-wrap
 msgid "keymap"
 msgstr "asociación de teclas"
 
 # FUZZY
 #. type: Plain text
-#: doc/guix.texi:11891
+#: doc/guix.texi:14030
 msgid "To specify what each key of your keyboard does, you need to tell the operating system what @dfn{keyboard layout} you want to use.  The default, when nothing is specified, is the US English QWERTY layout for 105-key PC keyboards.  However, German speakers will usually prefer the German QWERTZ layout, French speakers will want the AZERTY layout, and so on; hackers might prefer Dvorak or bépo, and they might even want to further customize the effect of some of the keys.  This section explains how to get that done."
 msgstr "Para especificar qué hace cada tecla de su teclado, necesita decirle al sistema operativo qué @dfn{distribución de teclado} desea usar. La predeterminada, cuando no se especifica ninguna, es la distribución QWERTY de 105 teclas para PC de teclado inglés estadounidense. No obstante, las personas germano-parlantes habitualmente prefieren la distribución QWERTZ alemana, las franco-parlantes desearán la distribución AZERTY, etcétera; las hackers pueden preferir Dvorak o bépo, y pueden incluso desear personalizar más aún el efecto de determinadas teclas. Esta sección explica cómo hacerlo."
 
 #. type: cindex
-#: doc/guix.texi:11892
+#: doc/guix.texi:14031
 #, no-wrap
 msgid "keyboard layout, definition"
 msgstr "distribución de teclado, definición"
 
 #. type: Plain text
-#: doc/guix.texi:11894
+#: doc/guix.texi:14033
 msgid "There are three components that will want to know about your keyboard layout:"
 msgstr "Hay tres componentes que desearán conocer la distribución de su teclado:"
 
 #. type: itemize
-#: doc/guix.texi:11901
+#: doc/guix.texi:14040
 msgid "The @emph{bootloader} may want to know what keyboard layout you want to use (@pxref{Bootloader Configuration, @code{keyboard-layout}}).  This is useful if you want, for instance, to make sure that you can type the passphrase of your encrypted root partition using the right layout."
 msgstr "El @emph{cargador de arranque} puede desear conocer cual es la distribución de teclado que desea usar (@pxref{Bootloader Configuration, @code{keyboard-layout}}). Esto es útil si desea, por ejemplo, asegurarse de que puede introducir la contraseña de cifrado de su partición raíz usando la distribución correcta."
 
 #. type: itemize
-#: doc/guix.texi:11906
+#: doc/guix.texi:14045
 msgid "The @emph{operating system kernel}, Linux, will need that so that the console is properly configured (@pxref{operating-system Reference, @code{keyboard-layout}})."
 msgstr "El @emph{núcleo del sistema operativo}, Linux, la necesitará de manera que la consola se configure de manera adecuada (@pxref{operating-system Reference, @code{keyboard-layout}})."
 
 #. type: itemize
-#: doc/guix.texi:11910
+#: doc/guix.texi:14049
 msgid "The @emph{graphical display server}, usually Xorg, also has its own idea of the keyboard layout (@pxref{X Window, @code{keyboard-layout}})."
 msgstr "El @emph{servidor gráfico}, habitualmente Xorg, también tiene su propia idea de distribución de teclado (@pxref{X Window, @code{keyboard-layout}})."
 
 #. type: Plain text
-#: doc/guix.texi:11914
+#: doc/guix.texi:14053
 msgid "Guix allows you to configure all three separately but, fortunately, it allows you to share the same keyboard layout for all three components."
 msgstr "Guix le permite configurar las tres distribuciones por separado pero, afortunadamente, también le permite compartir la misma distribución de teclado para los tres componentes."
 
 #. type: cindex
-#: doc/guix.texi:11915
+#: doc/guix.texi:14054
 #, no-wrap
 msgid "XKB, keyboard layouts"
 msgstr "XKB, distribuciones de teclado"
 
 #. type: Plain text
-#: doc/guix.texi:11923
-msgid "Keyboard layouts are represented by records created by the @code{keyboard-layout} procedure of @code{(gnu system keyboard)}.  Following the X Keyboard extension (XKB), each layout has four attributes: a name (often a language code such as ``fi'' for Finnish or ``jp'' for Japanese), an optional variant name, an optional keyboard model name, and a possibly empty list of additional options.  In most cases the layout name is all you care about.  Here are a few example:"
-msgstr "Las distribuciones de teclado se representan mediante registros creados con el procedimiento @code{keyboard-layout} de @code{(gnu system keyboard)}. A imagen de la extensión de teclado de X (XKB), cada distribución tiene cuatro atributos: un nombre (habitualmente un código de idioma como ``fi'' para finés o ``jp'' para japonés), un nombre opcional de variante, un nombre opcional de modelo de teclado y una lista posiblemente vacía de opciones adicionales. En la mayor parte de los casos el nombre de la distribución es lo único que le interesará. Aquí tiene algunos ejemplos:"
+#: doc/guix.texi:14062
+msgid "Keyboard layouts are represented by records created by the @code{keyboard-layout} procedure of @code{(gnu system keyboard)}.  Following the X Keyboard extension (XKB), each layout has four attributes: a name (often a language code such as ``fi'' for Finnish or ``jp'' for Japanese), an optional variant name, an optional keyboard model name, and a possibly empty list of additional options.  In most cases the layout name is all you care about."
+msgstr "Las distribuciones de teclado se representan mediante registros creados con el procedimiento @code{keyboard-layout} de @code{(gnu system keyboard)}. A imagen de la extensión de teclado de X (XKB), cada distribución tiene cuatro atributos: un nombre (habitualmente un código de idioma como ``fi'' para finés o ``jp'' para japonés), un nombre opcional de variante, un nombre opcional de modelo de teclado y una lista, puede que vacía, de opciones adicionales. En la mayor parte de los casos el nombre de la distribución es lo único que le interesará."
+
+#. type: deffn
+#: doc/guix.texi:14063
+#, no-wrap
+msgid "{Scheme Procedure} keyboard-layout @var{name} [@var{variant}] @"
+msgstr "{Procedimiento Scheme} keyboard-layout @var{nombre} [@var{variante}] @"
+
+#. type: deffn
+#: doc/guix.texi:14066
+msgid "[#:model] [#:options '()] Return a new keyboard layout with the given @var{name} and @var{variant}."
+msgstr ""
+"[#:model] [#:options '()]\n"
+"Devuelve una distribución de teclado para el @var{nombre} y la @var{variante} que se proporcionan."
+
+# FUZZY FUZZY
+#. type: deffn
+#: doc/guix.texi:14070
+msgid "@var{name} must be a string such as @code{\"fr\"}; @var{variant} must be a string such as @code{\"bepo\"} or @code{\"nodeadkeys\"}.  See the @code{xkeyboard-config} package for valid options."
+msgstr "@var{nombre} debe ser una cadena como @code{\"fr\"}; @var{variante} debe ser una cadena como @code{\"bepo\"} o @code{\"nodeadkeys\"}. Véase el paquete @code{xkeyboard-config} para las opciones válidas."
+
+#. type: Plain text
+#: doc/guix.texi:14073
+msgid "Here are a few examples:"
+msgstr "Estos son algunos ejemplos:"
 
 #. type: lisp
-#: doc/guix.texi:11928
+#: doc/guix.texi:14078
 #, no-wrap
 msgid ""
 ";; The German QWERTZ layout.  Here we assume a standard\n"
@@ -22118,7 +25856,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:11931
+#: doc/guix.texi:14081
 #, no-wrap
 msgid ""
 ";; The bépo variant of the French layout.\n"
@@ -22130,19 +25868,19 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:11934
+#: doc/guix.texi:14084
 #, no-wrap
 msgid ""
 ";; The Catalan layout.\n"
 "(keyboard-layout \"es\" \"cat\")\n"
 "\n"
 msgstr ""
-";; La distribución de teclado para catalán.\n"
+";; La distribución de teclado catalana.\n"
 "(keyboard-layout \"es\" \"cat\")\n"
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:11937
+#: doc/guix.texi:14087
 #, no-wrap
 msgid ""
 ";; Arabic layout with \"Alt-Shift\" to switch to US layout.\n"
@@ -22155,7 +25893,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:11944
+#: doc/guix.texi:14094
 #, no-wrap
 msgid ""
 ";; The Latin American Spanish layout.  In addition, the\n"
@@ -22175,7 +25913,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:11947
+#: doc/guix.texi:14097
 #, no-wrap
 msgid ""
 ";; The Russian layout for a ThinkPad keyboard.\n"
@@ -22187,7 +25925,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:11952
+#: doc/guix.texi:14102
 #, no-wrap
 msgid ""
 ";; The \"US international\" layout, which is the US layout plus\n"
@@ -22202,29 +25940,29 @@ msgstr ""
 "(keyboard-layout \"us\" \"intl\" #:model \"macbook78\")\n"
 
 #. type: Plain text
-#: doc/guix.texi:11956
+#: doc/guix.texi:14106
 msgid "See the @file{share/X11/xkb} directory of the @code{xkeyboard-config} package for a complete list of supported layouts, variants, and models."
 msgstr "Véase el directorio @file{share/X11/xkb} del paquete @code{xkeyboard-config} para una lista completa de implementaciones de distribuciones, variantes y modelos."
 
 #. type: cindex
-#: doc/guix.texi:11957
+#: doc/guix.texi:14107
 #, no-wrap
 msgid "keyboard layout, configuration"
 msgstr "distribución de teclado, configuración"
 
 #. type: Plain text
-#: doc/guix.texi:11961
+#: doc/guix.texi:14111
 msgid "Let's say you want your system to use the Turkish keyboard layout throughout your system---bootloader, console, and Xorg.  Here's what your system configuration would look like:"
 msgstr "Digamos que desea que su sistema use la distribución de teclado turca a lo largo de todo su sistema---cargador de arranque, consola y Xorg. Así es como sería su configuración del sistema:"
 
 #. type: findex
-#: doc/guix.texi:11962
+#: doc/guix.texi:14112
 #, no-wrap
 msgid "set-xorg-configuration"
 msgstr "set-xorg-configuration"
 
 #. type: lisp
-#: doc/guix.texi:11966
+#: doc/guix.texi:14116
 #, no-wrap
 msgid ""
 ";; Using the Turkish layout for the bootloader, the console,\n"
@@ -22236,7 +25974,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:11978
+#: doc/guix.texi:14128
 #, no-wrap
 msgid ""
 "(operating-system\n"
@@ -22264,77 +26002,77 @@ msgstr ""
 "                  %desktop-services)))\n"
 
 #. type: Plain text
-#: doc/guix.texi:11985
+#: doc/guix.texi:14135
 msgid "In the example above, for GRUB and for Xorg, we just refer to the @code{keyboard-layout} field defined above, but we could just as well refer to a different layout.  The @code{set-xorg-configuration} procedure communicates the desired Xorg configuration to the graphical log-in manager, by default GDM."
 msgstr "En el ejemplo previo, para GRUB y para Xorg, simplemente hemos hecho referencia al campo @code{keyboard-layout} definido previamente, pero también podíamos haber hecho referencia a una distribución diferente. El procedimiento @code{set-xorg-configuration} comunica la configuración de Xorg deseada al gestor gráfico de ingreso en el sistema, GDM por omisión."
 
 #. type: Plain text
-#: doc/guix.texi:11988
+#: doc/guix.texi:14138
 msgid "We've discussed how to specify the @emph{default} keyboard layout of your system when it starts, but you can also adjust it at run time:"
 msgstr "Hemos tratado cómo especificar la distribución @emph{predeterminada} del teclado de su sistema cuando arranca, pero también la puede modificar en tiempo de ejecución:"
 
 # FUZZY
 #. type: itemize
-#: doc/guix.texi:11993
+#: doc/guix.texi:14143
 msgid "If you're using GNOME, its settings panel has a ``Region & Language'' entry where you can select one or more keyboard layouts."
 msgstr "Si usa GNOME, su panel de configuración tiene una entrada de ``Región e Idioma'' donde puede seleccionar una o más distribuciones de teclado."
 
 #. type: itemize
-#: doc/guix.texi:11998
+#: doc/guix.texi:14148
 msgid "Under Xorg, the @command{setxkbmap} command (from the same-named package)  allows you to change the current layout.  For example, this is how you would change the layout to US Dvorak:"
 msgstr "En Xorg, la orden @command{setxkbmap} (del paquete con el mismo nombre) le permite cambiar la distribución en uso actualmente. Por ejemplo, así es como cambiaría a la distribución Dvorak estadounidense:"
 
 #. type: example
-#: doc/guix.texi:12001
+#: doc/guix.texi:14151
 #, no-wrap
 msgid "setxkbmap us dvorak\n"
 msgstr "setxkbmap us dvorak\n"
 
 #. type: itemize
-#: doc/guix.texi:12008
+#: doc/guix.texi:14158
 msgid "The @code{loadkeys} command changes the keyboard layout in effect in the Linux console.  However, note that @code{loadkeys} does @emph{not} use the XKB keyboard layout categorization described above.  The command below loads the French bépo layout:"
 msgstr "La orden @code{loadkeys} cambia la distribución de teclado en efecto en la consola Linux. No obstante, tenga en cuenta que @code{loadkeys} @emph{no} usa la categorización de distribuciones de XKB descrita previamente. La orden a continuación carga la distribución francesa bépo:"
 
 #. type: example
-#: doc/guix.texi:12011
+#: doc/guix.texi:14161
 #, no-wrap
 msgid "loadkeys fr-bepo\n"
 msgstr "loadkeys fr-bepo\n"
 
 #. type: cindex
-#: doc/guix.texi:12017
+#: doc/guix.texi:14167
 #, no-wrap
 msgid "locale"
 msgstr "localización"
 
 #. type: Plain text
-#: doc/guix.texi:12024
+#: doc/guix.texi:14174
 msgid "A @dfn{locale} defines cultural conventions for a particular language and region of the world (@pxref{Locales,,, libc, The GNU C Library Reference Manual}).  Each locale has a name that typically has the form @code{@var{language}_@var{territory}.@var{codeset}}---e.g., @code{fr_LU.utf8} designates the locale for the French language, with cultural conventions from Luxembourg, and using the UTF-8 encoding."
 msgstr "Una @dfn{localización} define convenciones culturales para una lengua y región del mundo particular (@pxref{Locales,,, libc, The GNU C Library Reference Manual}). Cada localización tiene un nombre que típicamente tiene la forma de @code{@var{lengua}_@var{territorio}.@var{codificación}}---por ejemplo, @code{fr_LU.utf8} designa la localización para la lengua francesa, con las convenciones culturales de Luxemburgo, usando la codificación UTF-8."
 
 #. type: cindex
-#: doc/guix.texi:12025
+#: doc/guix.texi:14175
 #, no-wrap
 msgid "locale definition"
 msgstr "definición de localización"
 
 #. type: Plain text
-#: doc/guix.texi:12029
+#: doc/guix.texi:14179
 msgid "Usually, you will want to specify the default locale for the machine using the @code{locale} field of the @code{operating-system} declaration (@pxref{operating-system Reference, @code{locale}})."
 msgstr "Normalmente deseará especificar la localización predeterminada para la máquina usando el campo @code{locale} de la declaración @code{operating-system} (@pxref{operating-system Reference, @code{locale}})."
 
 #. type: Plain text
-#: doc/guix.texi:12038
+#: doc/guix.texi:14188
 msgid "The selected locale is automatically added to the @dfn{locale definitions} known to the system if needed, with its codeset inferred from its name---e.g., @code{bo_CN.utf8} will be assumed to use the @code{UTF-8} codeset.  Additional locale definitions can be specified in the @code{locale-definitions} slot of @code{operating-system}---this is useful, for instance, if the codeset could not be inferred from the locale name.  The default set of locale definitions includes some widely used locales, but not all the available locales, in order to save space."
 msgstr "La localización seleccionada es automáticamente añadida a las @dfn{definiciones de localización} conocidas en el sistema si es necesario, con su codificación inferida de su nombre---por ejemplo, se asume que @code{bo_CN.utf8} usa la codificación @code{UTF-8}. Definiciones de localización adicionales pueden ser especificadas en el campo @code{locale-definitions} de @code{operating-system}---esto es util, por ejemplo, si la codificación no puede ser inferida del nombre de la localización. El conjunto predeterminado de definiciones de localización incluye algunas localizaciones ampliamente usadas, pero no todas las disponibles, para ahorrar espacio."
 
 #. type: Plain text
-#: doc/guix.texi:12041
+#: doc/guix.texi:14191
 msgid "For instance, to add the North Frisian locale for Germany, the value of that field may be:"
 msgstr "Por ejemplo, para añadir la localización del frisio del norte para Alemania, el valor de dicho campo puede ser:"
 
 #. type: lisp
-#: doc/guix.texi:12046
+#: doc/guix.texi:14196
 #, no-wrap
 msgid ""
 "(cons (locale-definition\n"
@@ -22346,12 +26084,12 @@ msgstr ""
 "      %default-locale-definitions)\n"
 
 #. type: Plain text
-#: doc/guix.texi:12050
+#: doc/guix.texi:14200
 msgid "Likewise, to save space, one might want @code{locale-definitions} to list only the locales that are actually used, as in:"
 msgstr "De mismo modo, para ahorrar espacio, se puede desear que @code{locale-definitions} contenga únicamente las localizaciones que son realmente usadas, como en:"
 
 #. type: lisp
-#: doc/guix.texi:12055
+#: doc/guix.texi:14205
 #, no-wrap
 msgid ""
 "(list (locale-definition\n"
@@ -22363,114 +26101,114 @@ msgstr ""
 "        (charset \"EUC-JP\")))\n"
 
 #. type: Plain text
-#: doc/guix.texi:12064
-msgid "The compiled locale definitions are available at @file{/run/current-system/locale/X.Y}, where @code{X.Y} is the libc version, which is the default location where the GNU@tie{}libc provided by Guix looks for locale data.  This can be overridden using the @code{LOCPATH} environment variable (@pxref{locales-and-locpath, @code{LOCPATH} and locale packages})."
-msgstr "Las definiciones de localización compiladas están disponibles en @file{/run/current-system/locale/X.Y}, donde @code{X.Y} es la versión de libc, que es la ruta donde la GNU@tie{}libc contenida en Guix buscará los datos de localización. Esto puede ser sobreescrito usando la variable de entorno @code{LOCPATH} (@pxref{locales-and-locpath, @code{LOCPATH} and locale packages})."
+#: doc/guix.texi:14214
+msgid "The compiled locale definitions are available at @file{/run/current-system/locale/X.Y}, where @code{X.Y} is the libc version, which is the default location where the GNU@tie{}libc provided by Guix looks for locale data.  This can be overridden using the @env{LOCPATH} environment variable (@pxref{locales-and-locpath, @env{LOCPATH} and locale packages})."
+msgstr "Las definiciones de localización compiladas están disponibles en @file{/run/current-system/locale/X.Y}, donde @code{X.Y} es la versión de libc, que es la ruta donde la GNU@tie{}libc contenida en Guix buscará los datos de localización. Esto puede ser sobreescrito usando la variable de entorno @env{LOCPATH} (@pxref{locales-and-locpath, @env{LOCPATH} and locale packages})."
 
 #. type: Plain text
-#: doc/guix.texi:12067
+#: doc/guix.texi:14217
 msgid "The @code{locale-definition} form is provided by the @code{(gnu system locale)} module.  Details are given below."
 msgstr "La forma @code{locale-definition} es proporcionada por el módulo @code{(gnu system locale)}. Los detalles se proporcionan a continuación."
 
 #. type: deftp
-#: doc/guix.texi:12068
+#: doc/guix.texi:14218
 #, no-wrap
 msgid "{Data Type} locale-definition"
 msgstr "{Tipo de datos} locale-definition"
 
 #. type: deftp
-#: doc/guix.texi:12070
+#: doc/guix.texi:14220
 msgid "This is the data type of a locale definition."
 msgstr "Este es el tipo de datos de una definición de localización."
 
 #. type: table
-#: doc/guix.texi:12076
+#: doc/guix.texi:14226
 msgid "The name of the locale.  @xref{Locale Names,,, libc, The GNU C Library Reference Manual}, for more information on locale names."
 msgstr "El nombre de la localización.  @xref{Locale Names,,, libc, The GNU C Library Reference Manual}, para más información sobre nombres de localizaciones."
 
 #. type: table
-#: doc/guix.texi:12080
+#: doc/guix.texi:14230
 msgid "The name of the source for that locale.  This is typically the @code{@var{language}_@var{territory}} part of the locale name."
 msgstr "El nombre de la fuente para dicha localización. Habitualmente es la parte @code{@var{idioma}_@var{territorio}} del nombre de localización."
 
 #. type: item
-#: doc/guix.texi:12081
+#: doc/guix.texi:14231
 #, no-wrap
 msgid "@code{charset} (default: @code{\"UTF-8\"})"
 msgstr "@code{charset} (predeterminado: @code{\"UTF-8\"})"
 
 #. type: table
-#: doc/guix.texi:12085
+#: doc/guix.texi:14235
 msgid "The ``character set'' or ``code set'' for that locale, @uref{https://www.iana.org/assignments/character-sets, as defined by IANA}."
 msgstr "La ``codificación de caracteres'' o ``conjunto de caracteres'' para dicha localización, @uref{https://www.iana.org/assignments/character-sets, como lo define IANA}."
 
 #. type: defvr
-#: doc/guix.texi:12089
+#: doc/guix.texi:14239
 #, no-wrap
 msgid "{Scheme Variable} %default-locale-definitions"
 msgstr "{Variable Scheme} %default-locale-definitions"
 
 #. type: defvr
-#: doc/guix.texi:12093
+#: doc/guix.texi:14243
 msgid "A list of commonly used UTF-8 locales, used as the default value of the @code{locale-definitions} field of @code{operating-system} declarations."
 msgstr "Una lista de localizaciones UTF-8 usadas de forma común, usada como valor predeterminado del campo @code{locale-definitions} en las declaraciones @code{operating-system}."
 
 #. type: cindex
-#: doc/guix.texi:12094
+#: doc/guix.texi:14244
 #, no-wrap
 msgid "locale name"
 msgstr "nombre de localización"
 
 #. type: cindex
-#: doc/guix.texi:12095
+#: doc/guix.texi:14245
 #, no-wrap
 msgid "normalized codeset in locale names"
 msgstr "codificación normalizada en los nombres de localizaciones"
 
 #. type: defvr
-#: doc/guix.texi:12101
+#: doc/guix.texi:14251
 msgid "These locale definitions use the @dfn{normalized codeset} for the part that follows the dot in the name (@pxref{Using gettextized software, normalized codeset,, libc, The GNU C Library Reference Manual}).  So for instance it has @code{uk_UA.utf8} but @emph{not}, say, @code{uk_UA.UTF-8}."
 msgstr "Estas definiciones de localizaciones usan la @dfn{codificación normalizada} para el fragmento tras el punto en el nombre (@pxref{Using gettextized software, normalized codeset,, libc, The GNU C Library Reference Manual}). Por lo que por ejemplo es válido @code{uk_UA.utf8} pero @emph{no}, digamos, @code{uk_UA.UTF-8}."
 
 #. type: subsection
-#: doc/guix.texi:12103
+#: doc/guix.texi:14253
 #, no-wrap
 msgid "Locale Data Compatibility Considerations"
 msgstr "Consideraciones sobre la compatibilidad de datos de localización"
 
 #. type: cindex
-#: doc/guix.texi:12105
+#: doc/guix.texi:14255
 #, no-wrap
 msgid "incompatibility, of locale data"
 msgstr "incompatibilidad, de datos de localización"
 
 #. type: Plain text
-#: doc/guix.texi:12112
+#: doc/guix.texi:14262
 msgid "@code{operating-system} declarations provide a @code{locale-libcs} field to specify the GNU@tie{}libc packages that are used to compile locale declarations (@pxref{operating-system Reference}).  ``Why would I care?'', you may ask.  Well, it turns out that the binary format of locale data is occasionally incompatible from one libc version to another."
 msgstr "Las declaraciones @code{operating-system} proporcionan un campo @code{locale-libcs} para especificar los paquetes GNU@tie{}libc que se usarán para compilar las declaraciones de localizaciones (@pxref{operating-system Reference}). ``¿Por qué debo preocuparme?'', puede preguntarse. Bueno, sucede que el formato binario de los datos de localización es ocasionalmente incompatible de una versión de libc a otra."
 
 #. type: Plain text
-#: doc/guix.texi:12124
-msgid "For instance, a program linked against libc version 2.21 is unable to read locale data produced with libc 2.22; worse, that program @emph{aborts} instead of simply ignoring the incompatible locale data@footnote{Versions 2.23 and later of GNU@tie{}libc will simply skip the incompatible locale data, which is already an improvement.}.  Similarly, a program linked against libc 2.22 can read most, but not all, of the locale data from libc 2.21 (specifically, @code{LC_COLLATE} data is incompatible); thus calls to @code{setlocale} may fail, but programs will not abort."
-msgstr "Por ejemplo, un programa enlazado con la versión 2.21 de libc no puede leer datos de localización producidos con libc 2.22; peor aún, ese programa @emph{aborta} en vez de simplemente ignorar los datos de localización incompatibles@footnote{Las versiones 2.23 y posteriores de GNU@tie{}libc simplemente ignorarán los datos de localización incompatibles, lo cual ya es un avance.}. De manera similar, un programa enlazado con libc 2.22 puede leer la mayor parte, pero no todo, de los datos de localización de libc 2.21 (específicamente, los datos @code{LC_COLLATE} son incompatibles); por tanto las llamadas a @code{setlocale} pueden fallar, pero los programas no abortarán."
+#: doc/guix.texi:14274
+msgid "For instance, a program linked against libc version 2.21 is unable to read locale data produced with libc 2.22; worse, that program @emph{aborts} instead of simply ignoring the incompatible locale data@footnote{Versions 2.23 and later of GNU@tie{}libc will simply skip the incompatible locale data, which is already an improvement.}.  Similarly, a program linked against libc 2.22 can read most, but not all, of the locale data from libc 2.21 (specifically, @env{LC_COLLATE} data is incompatible); thus calls to @code{setlocale} may fail, but programs will not abort."
+msgstr "Por ejemplo, un programa enlazado con la versión 2.21 de libc no puede leer datos de localización producidos con libc 2.22; peor aún, ese programa @emph{aborta} en vez de simplemente ignorar los datos de localización incompatibles@footnote{Las versiones 2.23 y posteriores de GNU@tie{}libc simplemente ignorarán los datos de localización incompatibles, lo cual ya es un avance.}. De manera similar, un programa enlazado con libc 2.22 puede leer la mayor parte, pero no todo, de los datos de localización de libc 2.21 (específicamente, los datos @env{LC_COLLATE} son incompatibles); por tanto las llamadas a @code{setlocale} pueden fallar, pero los programas no abortarán."
 
 #. type: Plain text
-#: doc/guix.texi:12129
+#: doc/guix.texi:14279
 msgid "The ``problem'' with Guix is that users have a lot of freedom: They can choose whether and when to upgrade software in their profiles, and might be using a libc version different from the one the system administrator used to build the system-wide locale data."
 msgstr "El ``problema'' con Guix es que las usuarias tienen mucha libertad: pueden elegir cuando e incluso si actualizar el software en sus perfiles, y pueden estar usando una versión de libc diferente de la que la administradora del sistema usó para construir los datos de localización comunes a todo el sistema."
 
 #. type: Plain text
-#: doc/guix.texi:12133
-msgid "Fortunately, unprivileged users can also install their own locale data and define @var{GUIX_LOCPATH} accordingly (@pxref{locales-and-locpath, @code{GUIX_LOCPATH} and locale packages})."
-msgstr "Por suerte, las usuarias sin privilegios también pueden instalar sus propios datos de localización y definir @var{GUIX_LOCPATH} adecuadamente (@pxref{locales-and-locpath, @code{GUIX_LOCPATH} y paquetes de localizaciones})."
+#: doc/guix.texi:14283
+msgid "Fortunately, unprivileged users can also install their own locale data and define @env{GUIX_LOCPATH} accordingly (@pxref{locales-and-locpath, @env{GUIX_LOCPATH} and locale packages})."
+msgstr "Por suerte, las usuarias sin privilegios también pueden instalar sus propios datos de localización y definir @env{GUIX_LOCPATH} de manera adecuada (@pxref{locales-and-locpath, @env{GUIX_LOCPATH} y paquetes de localizaciones})."
 
 #. type: Plain text
-#: doc/guix.texi:12140
+#: doc/guix.texi:14290
 msgid "Still, it is best if the system-wide locale data at @file{/run/current-system/locale} is built for all the libc versions actually in use on the system, so that all the programs can access it---this is especially crucial on a multi-user system.  To do that, the administrator can specify several libc packages in the @code{locale-libcs} field of @code{operating-system}:"
 msgstr "No obstante, es mejor si los datos de localización globales del sistema en @file{/run/current-system/locale} se construyen para todas las versiones de libc realmente en uso en el sistema, de manera que todos los programas puedan acceder a ellos---esto es especialmente crucial en un sistema multiusuaria. Para hacerlo, la administradora puede especificar varios paquetes libc en el campo @code{locale-libcs} de @code{operating-system}:"
 
 #. type: lisp
-#: doc/guix.texi:12143
+#: doc/guix.texi:14293
 #, no-wrap
 msgid ""
 "(use-package-modules base)\n"
@@ -22480,7 +26218,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:12147
+#: doc/guix.texi:14297
 #, no-wrap
 msgid ""
 "(operating-system\n"
@@ -22492,41 +26230,41 @@ msgstr ""
 "  (locale-libcs (list glibc-2.21 (canonical-package glibc))))\n"
 
 #. type: Plain text
-#: doc/guix.texi:12152
+#: doc/guix.texi:14302
 msgid "This example would lead to a system containing locale definitions for both libc 2.21 and the current version of libc in @file{/run/current-system/locale}."
 msgstr "Este ejemplo llevaría a un sistema que contiene definiciones de localización tanto para libc 2.21 como para la versión actual de libc en @file{/run/current-system/locale}."
 
 #. type: cindex
-#: doc/guix.texi:12157
+#: doc/guix.texi:14307
 #, no-wrap
 msgid "system services"
 msgstr "servicios del sistema"
 
 #. type: Plain text
-#: doc/guix.texi:12163
+#: doc/guix.texi:14313
 msgid "An important part of preparing an @code{operating-system} declaration is listing @dfn{system services} and their configuration (@pxref{Using the Configuration System}).  System services are typically daemons launched when the system boots, or other actions needed at that time---e.g., configuring network access."
 msgstr "Una parte importante de la preparación de una declaración @code{operating-system} es listar los @dfn{servicios del sistema} y su configuración (@pxref{Using the Configuration System}). Los servicios del sistema típicamente son daemon lanzados cuando el sistema arrancha, u otras acciones necesarias en ese momento---por ejemplo, configurar el acceso de red."
 
 #. type: Plain text
-#: doc/guix.texi:12170
+#: doc/guix.texi:14320
 msgid "Guix has a broad definition of ``service'' (@pxref{Service Composition}), but many services are managed by the GNU@tie{}Shepherd (@pxref{Shepherd Services}).  On a running system, the @command{herd} command allows you to list the available services, show their status, start and stop them, or do other specific operations (@pxref{Jump Start,,, shepherd, The GNU Shepherd Manual}).  For example:"
 msgstr "Guix tiene una definición amplia de ``servicio'' (@pxref{Service Composition}), pero muchos servicios se gestionan por GNU@tie{}Shepherd (@pxref{Shepherd Services}). En un sistema en ejecución, la orden @command{herd} le permite enumerar los servicios disponibles, mostrar su estado, arrancarlos y pararlos, o realizar otras acciones específicas (@pxref{Jump Start,,, shepherd, The GNU Shepherd Manual}). Por ejemplo:"
 
 #. type: example
-#: doc/guix.texi:12173
+#: doc/guix.texi:14323
 #, no-wrap
 msgid "# herd status\n"
 msgstr "# herd status\n"
 
 #. type: Plain text
-#: doc/guix.texi:12178
+#: doc/guix.texi:14328
 msgid "The above command, run as @code{root}, lists the currently defined services.  The @command{herd doc} command shows a synopsis of the given service and its associated actions:"
 msgstr "La orden previa, ejecutada como @code{root}, enumera los servicios actualmente definidos. La orden @command{herd doc} muestra una sinopsis del servicio proporcionado y sus acciones asociadas:"
 
 # FUZZY
 # MAAV: Actualizar cuando se traduzcan los servicios.
 #. type: example
-#: doc/guix.texi:12182
+#: doc/guix.texi:14332
 #, no-wrap
 msgid ""
 "# herd doc nscd\n"
@@ -22540,7 +26278,7 @@ msgstr ""
 # FUZZY
 # MAAV: Actualizar cuando se traduzcan los servicios.
 #. type: example
-#: doc/guix.texi:12185
+#: doc/guix.texi:14335
 #, no-wrap
 msgid ""
 "# herd doc nscd action invalidate\n"
@@ -22550,14 +26288,14 @@ msgstr ""
 "invalidate: Invalidate the given cache--e.g., 'hosts' for host name lookups.\n"
 
 #. type: Plain text
-#: doc/guix.texi:12190
+#: doc/guix.texi:14340
 msgid "The @command{start}, @command{stop}, and @command{restart} sub-commands have the effect you would expect.  For instance, the commands below stop the nscd service and restart the Xorg display server:"
 msgstr "Las ordenes internas @command{start}, @command{stop} y @command{restart} tienen el efecto de arrancar, parar y reiniciar el servicio, respectivamente. Por ejemplo, las siguientes órdenes paran el servicio nscd y reinician el servidor gráfico Xorg:"
 
 # FUZZY
 # MAAV: Actualizar cuando se traduzca shepherd
 #. type: example
-#: doc/guix.texi:12197
+#: doc/guix.texi:14347
 #, no-wrap
 msgid ""
 "# herd stop nscd\n"
@@ -22573,55 +26311,33 @@ msgstr ""
 "Service xorg-server has been started.\n"
 
 #. type: Plain text
-#: doc/guix.texi:12202
+#: doc/guix.texi:14352
 msgid "The following sections document the available services, starting with the core services, that may be used in an @code{operating-system} declaration."
 msgstr "Las siguientes secciones documentan los servicios disponibles, comenzando con los servicios básicos, que pueden ser usados en una declaración @code{operating-system}."
 
-#. type: subsection
-#: doc/guix.texi:12234 doc/guix.texi:19536 doc/guix.texi:19537
-#, no-wrap
-msgid "LDAP Services"
-msgstr "Servicios LDAP"
-
-#. type: menuentry
-#: doc/guix.texi:12234
-msgid "LDAP services."
-msgstr "Servicios LDAP."
-
-#. type: subsection
-#: doc/guix.texi:12234 doc/guix.texi:25335 doc/guix.texi:25336
-#, no-wrap
-msgid "Guix Services"
-msgstr "Servicios de Guix"
-
-#. type: menuentry
-#: doc/guix.texi:12234
-msgid "Services relating specifically to Guix."
-msgstr "Servicios relacionados específicamente con Guix."
-
 #. type: Plain text
-#: doc/guix.texi:12242
+#: doc/guix.texi:14394
 msgid "The @code{(gnu services base)} module provides definitions for the basic services that one expects from the system.  The services exported by this module are listed below."
 msgstr "El módulo @code{(gnu services base)} proporciona definiciones para los servicios básicos que se esperan en el sistema. Los servicios exportados por este módulo se enumeran a continuación."
 
 #. type: defvr
-#: doc/guix.texi:12243
+#: doc/guix.texi:14395
 #, no-wrap
 msgid "{Scheme Variable} %base-services"
 msgstr "{Variable Scheme} %base-services"
 
 #. type: defvr
-#: doc/guix.texi:12249
+#: doc/guix.texi:14401
 msgid "This variable contains a list of basic services (@pxref{Service Types and Services}, for more information on service objects) one would expect from the system: a login service (mingetty) on each tty, syslogd, the libc name service cache daemon (nscd), the udev device manager, and more."
 msgstr "Esta variable contiene una lista de servicios básicos (@pxref{Service Types and Services}, para más información sobre los objetos servicio) que se pueden esperar en el sistema: un servicio de ingreso al sistema (mingetty) en cada tty, syslogd, el daemon de la caché del servicio de nombres (nscd), el gestor de dispositivos udev, y más."
 
 #. type: defvr
-#: doc/guix.texi:12254
+#: doc/guix.texi:14406
 msgid "This is the default value of the @code{services} field of @code{operating-system} declarations.  Usually, when customizing a system, you will want to append services to @code{%base-services}, like this:"
 msgstr "Este es el valor predeterminado del campo @code{services} de las declaraciones @code{operating-system}. De manera habitual, cuando se personaliza el sistema, es deseable agregar servicios a @code{%base-services}, de esta forma:"
 
 #. type: lisp
-#: doc/guix.texi:12259
+#: doc/guix.texi:14411
 #, no-wrap
 msgid ""
 "(append (list (service avahi-service-type)\n"
@@ -22633,58 +26349,58 @@ msgstr ""
 "        %base-services)\n"
 
 #. type: defvr
-#: doc/guix.texi:12262
+#: doc/guix.texi:14414
 #, no-wrap
 msgid "{Scheme Variable} special-files-service-type"
 msgstr "{Variable Scheme} special-files-service-type"
 
 #. type: defvr
-#: doc/guix.texi:12265
+#: doc/guix.texi:14417
 msgid "This is the service that sets up ``special files'' such as @file{/bin/sh}; an instance of it is part of @code{%base-services}."
-msgstr "El servicio que establece ``ficheros especiales'' como @file{/bin/sh}; una instancia suya es parte de @code{%base-services}."
+msgstr "El servicio que establece ``archivos especiales'' como @file{/bin/sh}; una instancia suya es parte de @code{%base-services}."
 
 #. type: defvr
-#: doc/guix.texi:12269
+#: doc/guix.texi:14421
 msgid "The value associated with @code{special-files-service-type} services must be a list of tuples where the first element is the ``special file'' and the second element is its target.  By default it is:"
-msgstr "El valor asociado con servicios @code{special-file-service-type} debe ser una lista de tuplas donde el primer elemento es el ``fichero especial'' y el segundo elemento es su destino. El valor predeterminado es:"
+msgstr "El valor asociado con servicios @code{special-file-service-type} debe ser una lista de tuplas donde el primer elemento es el ``archivo especial'' y el segundo elemento es su destino. El valor predeterminado es:"
 
 #. type: file{#1}
-#: doc/guix.texi:12270
+#: doc/guix.texi:14422
 #, no-wrap
 msgid "/bin/sh"
 msgstr "/bin/sh"
 
 #. type: cindex
-#: doc/guix.texi:12271
+#: doc/guix.texi:14423
 #, no-wrap
 msgid "@file{sh}, in @file{/bin}"
 msgstr "@file{sh}, en @file{/bin}"
 
 #. type: lisp
-#: doc/guix.texi:12274
+#: doc/guix.texi:14426
 #, no-wrap
 msgid "`((\"/bin/sh\" ,(file-append bash \"/bin/sh\")))\n"
 msgstr "`((\"/bin/sh\" ,(file-append bash \"/bin/sh\")))\n"
 
 #. type: file{#1}
-#: doc/guix.texi:12276
+#: doc/guix.texi:14428
 #, no-wrap
 msgid "/usr/bin/env"
 msgstr "/usr/bin/env"
 
 #. type: cindex
-#: doc/guix.texi:12277
+#: doc/guix.texi:14429
 #, no-wrap
 msgid "@file{env}, in @file{/usr/bin}"
 msgstr "@file{env}, en @file{/usr/bin}"
 
 #. type: defvr
-#: doc/guix.texi:12280
+#: doc/guix.texi:14432
 msgid "If you want to add, say, @code{/usr/bin/env} to your system, you can change it to:"
 msgstr "Si quiere añadir, digamos, @code{/usr/bin/env} a su sistema, puede cambiar su valor por:"
 
 #. type: lisp
-#: doc/guix.texi:12284
+#: doc/guix.texi:14436
 #, no-wrap
 msgid ""
 "`((\"/bin/sh\" ,(file-append bash \"/bin/sh\"))\n"
@@ -22694,28 +26410,28 @@ msgstr ""
 "  (\"/usr/bin/env\" ,(file-append coreutils \"/bin/env\")))\n"
 
 #. type: defvr
-#: doc/guix.texi:12291
-msgid "Since this is part of @code{%base-services}, you can use @code{modify-services} to customize the set of special files (@pxref{Service Reference, @code{modify-services}}).  But the simple way to add a special file is @i{via} the @code{extra-special-file} procedure (see below.)"
-msgstr "Ya que es parte de @code{%base-services}, puede usar @code{modify-services} para personalizar el conjunto de ficheros especiales (@pxref{Service Reference, @code{modify-services}}). Pero una forma simple de añadir un fichero especial es usar el procedimiento @code{extra-special-file} (véase a continuación)."
+#: doc/guix.texi:14443
+msgid "Since this is part of @code{%base-services}, you can use @code{modify-services} to customize the set of special files (@pxref{Service Reference, @code{modify-services}}).  But the simple way to add a special file is @i{via} the @code{extra-special-file} procedure (see below)."
+msgstr "Ya que es parte de @code{%base-services}, puede usar @code{modify-services} para personalizar el conjunto de archivos especiales (@pxref{Service Reference, @code{modify-services}}). Pero una forma simple de añadir un archivo especial es usar el procedimiento @code{extra-special-file} (véase a continuación)."
 
 #. type: deffn
-#: doc/guix.texi:12293
+#: doc/guix.texi:14445
 #, no-wrap
 msgid "{Scheme Procedure} extra-special-file @var{file} @var{target}"
-msgstr "{Procedimiento Scheme} extra-special-file @var{fichero} @var{destino}"
+msgstr "{Procedimiento Scheme} extra-special-file @var{archivo} @var{destino}"
 
 #. type: deffn
-#: doc/guix.texi:12295
+#: doc/guix.texi:14447
 msgid "Use @var{target} as the ``special file'' @var{file}."
-msgstr "Usa @var{destino} como el ``fichero especial'' @var{fichero}."
+msgstr "Usa @var{destino} como el ``archivo especial'' @var{archivo}."
 
 #. type: deffn
-#: doc/guix.texi:12299
+#: doc/guix.texi:14451
 msgid "For example, adding the following lines to the @code{services} field of your operating system declaration leads to a @file{/usr/bin/env} symlink:"
 msgstr "Por ejemplo, la adición de las siguientes líneas al campo @code{services} de su declaración de sistema operativo genera @file{/usr/bin/env} como un enlace simbólico:"
 
 #. type: lisp
-#: doc/guix.texi:12303
+#: doc/guix.texi:14455
 #, no-wrap
 msgid ""
 "(extra-special-file \"/usr/bin/env\"\n"
@@ -22725,29 +26441,29 @@ msgstr ""
 "                    (file-append coreutils \"/bin/env\"))\n"
 
 #. type: deffn
-#: doc/guix.texi:12306
+#: doc/guix.texi:14458
 #, no-wrap
 msgid "{Scheme Procedure} host-name-service @var{name}"
 msgstr "{Procedimiento Scheme} host-name-service @var{nombre}"
 
 #. type: deffn
-#: doc/guix.texi:12308
+#: doc/guix.texi:14460
 msgid "Return a service that sets the host name to @var{name}."
 msgstr "Devuelve un servicio que establece el nombre de máquina a @var{nombre}."
 
 #. type: defvr
-#: doc/guix.texi:12310
+#: doc/guix.texi:14462
 #, no-wrap
 msgid "{Scheme Variable} console-font-service-type"
 msgstr "{Variable Scheme} console-font-service-type"
 
 #. type: defvr
-#: doc/guix.texi:12315
+#: doc/guix.texi:14467
 msgid "Install the given fonts on the specified ttys (fonts are per virtual console on the kernel Linux).  The value of this service is a list of tty/font pairs.  The font can be the name of a font provided by the @code{kbd} package or any valid argument to @command{setfont}, as in this example:"
 msgstr "Instala las tipografías proporcionadas en las consolas virtuales (tty) especificados (las tipografías se asocian a cada consola virtual con el núcleo Linux). El valor de este servicio es una lista de pares tty/tipografía. La tipografía puede ser el nombre de alguna de las proporcionadas por el paquete @code{kbd} o cualquier parámetro válido para la orden @command{setfont}, como en este ejemplo:"
 
 #. type: lisp
-#: doc/guix.texi:12324
+#: doc/guix.texi:14476
 #, no-wrap
 msgid ""
 "`((\"tty1\" . \"LatGrkCyr-8x16\")\n"
@@ -22767,179 +26483,179 @@ msgstr ""
 "                \"/share/consolefonts/ter-132n\"))) ; para HDPI\n"
 
 #. type: deffn
-#: doc/guix.texi:12327
+#: doc/guix.texi:14479
 #, no-wrap
 msgid "{Scheme Procedure} login-service @var{config}"
 msgstr "{Procedimiento Scheme} login-service @var{config}"
 
 #. type: deffn
-#: doc/guix.texi:12331
+#: doc/guix.texi:14483
 msgid "Return a service to run login according to @var{config}, a @code{<login-configuration>} object, which specifies the message of the day, among other things."
 msgstr "Devuelve un servicio para ejecutar el ingreso al sistema de acuerdo con @var{config}, un objeto @code{<login-configuration>}, que especifica el mensaje del día, entre otras cosas."
 
 #. type: deftp
-#: doc/guix.texi:12333
+#: doc/guix.texi:14485
 #, no-wrap
 msgid "{Data Type} login-configuration"
 msgstr "{Tipo de datos} login-configuration"
 
 #. type: deftp
-#: doc/guix.texi:12335
+#: doc/guix.texi:14487
 msgid "This is the data type representing the configuration of login."
 msgstr "Este es el tipo de datos que representa la configuración del ingreso al sistema."
 
 #. type: code{#1}
-#: doc/guix.texi:12338
+#: doc/guix.texi:14490
 #, no-wrap
 msgid "motd"
 msgstr "motd"
 
 #. type: cindex
-#: doc/guix.texi:12339
+#: doc/guix.texi:14491
 #, no-wrap
 msgid "message of the day"
 msgstr "mensaje del día"
 
 #. type: table
-#: doc/guix.texi:12341
+#: doc/guix.texi:14493
 msgid "A file-like object containing the ``message of the day''."
-msgstr "Un objeto tipo-fichero que contiene el ``mensaje del día''."
+msgstr "Un objeto tipo-archivo que contiene el ``mensaje del día''."
 
 #. type: item
-#: doc/guix.texi:12342 doc/guix.texi:14542
+#: doc/guix.texi:14494 doc/guix.texi:17095
 #, no-wrap
 msgid "@code{allow-empty-passwords?} (default: @code{#t})"
 msgstr "@code{allow-empty-passwords?} (predeterminado: @code{#t})"
 
 #. type: table
-#: doc/guix.texi:12345
+#: doc/guix.texi:14497
 msgid "Allow empty passwords by default so that first-time users can log in when the 'root' account has just been created."
 msgstr "Permite contraseñas vacías por defecto para que las primeras usuarias puedan ingresar en el sistema cuando la cuenta de ``root'' está recién creada."
 
 #. type: deffn
-#: doc/guix.texi:12349
+#: doc/guix.texi:14501
 #, no-wrap
 msgid "{Scheme Procedure} mingetty-service @var{config}"
 msgstr "{Procedimiento Scheme} mingetty-service @var{config}"
 
 #. type: deffn
-#: doc/guix.texi:12353
+#: doc/guix.texi:14505
 msgid "Return a service to run mingetty according to @var{config}, a @code{<mingetty-configuration>} object, which specifies the tty to run, among other things."
 msgstr "Devuelve un servicio para ejecutar mingetty de acuerdo con @var{config}, un objeto @code{<mingetty-configuration>}, que especifica el tty a ejecutar entre otras cosas."
 
 #. type: deftp
-#: doc/guix.texi:12355
+#: doc/guix.texi:14507
 #, no-wrap
 msgid "{Data Type} mingetty-configuration"
 msgstr "{Tipo de datos} mingetty-configuration"
 
 #. type: deftp
-#: doc/guix.texi:12358
+#: doc/guix.texi:14510
 msgid "This is the data type representing the configuration of Mingetty, which provides the default implementation of virtual console log-in."
 msgstr "Este es el tipo de datos que representa la configuración de Mingetty, el cual proporciona la implementación predeterminada de ingreso al sistema en las consolas virtuales."
 
 #. type: code{#1}
-#: doc/guix.texi:12361 doc/guix.texi:12397
+#: doc/guix.texi:14513 doc/guix.texi:14549 doc/guix.texi:29425
 #, no-wrap
 msgid "tty"
 msgstr "tty"
 
 #. type: table
-#: doc/guix.texi:12363
+#: doc/guix.texi:14515
 msgid "The name of the console this Mingetty runs on---e.g., @code{\"tty1\"}."
-msgstr "El sistema de la consola en la que se ejecuta este Mingetty---por ejemplo, @code{\"tty1\"}."
+msgstr "El nombre de la consola en la que se ejecuta este Mingetty---por ejemplo, @code{\"tty1\"}."
 
 #. type: item
-#: doc/guix.texi:12364 doc/guix.texi:12426 doc/guix.texi:12585
+#: doc/guix.texi:14516 doc/guix.texi:14578 doc/guix.texi:14737
 #, no-wrap
 msgid "@code{auto-login} (default: @code{#f})"
 msgstr "@code{auto-login} (predeterminado: @code{#f})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:12368
+#: doc/guix.texi:14520
 msgid "When true, this field must be a string denoting the user name under which the system automatically logs in.  When it is @code{#f}, a user name and password must be entered to log in."
 msgstr "Cuando sea verdadero, este campo debe ser una cadena que denote el nombre de usuaria bajo el cual el sistema ingresa automáticamente. Cuando es @code{#f}, se deben proporcionar un nombre de usuaria y una contraseña para ingresar en el sistema."
 
 #. type: item
-#: doc/guix.texi:12369
+#: doc/guix.texi:14521
 #, no-wrap
 msgid "@code{login-program} (default: @code{#f})"
 msgstr "@code{login-program} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:12373
+#: doc/guix.texi:14525
 msgid "This must be either @code{#f}, in which case the default log-in program is used (@command{login} from the Shadow tool suite), or a gexp denoting the name of the log-in program."
 msgstr "Debe ser @code{#f}, en cuyo caso se usa el programa predeterminado de ingreso al sistema (@command{login} de las herramientas Shadow), o una expresión-G que determine el nombre del programa de ingreso al sistema."
 
 #. type: item
-#: doc/guix.texi:12374
+#: doc/guix.texi:14526
 #, no-wrap
 msgid "@code{login-pause?} (default: @code{#f})"
 msgstr "@code{login-pause?} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:12377
+#: doc/guix.texi:14529
 msgid "When set to @code{#t} in conjunction with @var{auto-login}, the user will have to press a key before the log-in shell is launched."
 msgstr "Cuando es @code{#t} en conjunción con @var{auto-login}, la usuaria deberá presionar una tecla para lanzar el shell de ingreso al sistema."
 
 #. type: item
-#: doc/guix.texi:12378
+#: doc/guix.texi:14530
 #, no-wrap
 msgid "@code{mingetty} (default: @var{mingetty})"
 msgstr "@code{mingetty} (predeterminado: @var{mingetty})"
 
 #. type: table
-#: doc/guix.texi:12380
+#: doc/guix.texi:14532
 msgid "The Mingetty package to use."
 msgstr "El paquete Mingetty usado."
 
 #. type: deffn
-#: doc/guix.texi:12384
+#: doc/guix.texi:14536
 #, no-wrap
 msgid "{Scheme Procedure} agetty-service @var{config}"
 msgstr "{Procedure Scheme} agetty-service @var{config}"
 
 #. type: deffn
-#: doc/guix.texi:12388
+#: doc/guix.texi:14540
 msgid "Return a service to run agetty according to @var{config}, an @code{<agetty-configuration>} object, which specifies the tty to run, among other things."
 msgstr "Devuelve un servicio para ejecutar agetty de acuerdo con @var{config}, un objeto @code{<agetty-configuration>}, que especifica el tty a ejecutar entre otras cosas."
 
 #. type: deftp
-#: doc/guix.texi:12390
+#: doc/guix.texi:14542
 #, no-wrap
 msgid "{Data Type} agetty-configuration"
 msgstr "{Tipo de datos} agetty-configuration"
 
 #. type: deftp
-#: doc/guix.texi:12394
+#: doc/guix.texi:14546
 msgid "This is the data type representing the configuration of agetty, which implements virtual and serial console log-in.  See the @code{agetty(8)} man page for more information."
 msgstr "Este es el tipo de datos que representa la configuración de agetty, que implementa el ingreso al sistema en las consolas virtuales y serie. Véase la página de manual @code{agetty(8)} para más información."
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:12401
-msgid "The name of the console this agetty runs on, as a string---e.g., @code{\"ttyS0\"}. This argument is optional, it will default to a reasonable default serial port used by the kernel Linux."
+#: doc/guix.texi:14553
+msgid "The name of the console this agetty runs on, as a string---e.g., @code{\"ttyS0\"}.  This argument is optional, it will default to a reasonable default serial port used by the kernel Linux."
 msgstr "El nombre de la consola en la que se ejecuta este agetty, como una cadena---por ejemplo, @code{\"ttyS0\"}. Este parámetro es opcional, su valor predeterminado es un puerto serie razonable usado por el núcleo Linux."
 
 #. type: table
-#: doc/guix.texi:12405
+#: doc/guix.texi:14557
 msgid "For this, if there is a value for an option @code{agetty.tty} in the kernel command line, agetty will extract the device name of the serial port from it and use that."
 msgstr "Para ello, si hay un valor para una opción @code{agetty.tty} en la línea de órdenes del núcleo, agetty extraerá el nombre del dispositivo del puerto serie de allí y usará dicho valor."
 
 #. type: table
-#: doc/guix.texi:12409
+#: doc/guix.texi:14561
 msgid "If not and if there is a value for an option @code{console} with a tty in the Linux command line, agetty will extract the device name of the serial port from it and use that."
 msgstr "Si no y hay un valor para la opción @code{console} con un tty en la línea de órdenes de Linux, agetty extraerá el nombre del dispositivo del puerto serie de allí y usará dicho valor."
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:12413
+#: doc/guix.texi:14565
 msgid "In both cases, agetty will leave the other serial device settings (baud rate etc.)@: alone---in the hope that Linux pinned them to the correct values."
-msgstr "En ambos casos, agetty dejará el resto de configuración de dispositivos serie (tasa de transmisión, etc.)@: sin modificar---a la espera de que Linux los haya fijado a los valores correctos."
+msgstr "En ambos casos, agetty dejará el resto de configuración de dispositivos serie (tasa de transmisión, etc.)@: sin modificar---con la esperanza de que Linux haya proporcionado ya los valores correctos."
 
 #. type: item
-#: doc/guix.texi:12414 doc/guix.texi:25624
+#: doc/guix.texi:14566 doc/guix.texi:29566
 #, no-wrap
 msgid "@code{baud-rate} (default: @code{#f})"
 msgstr "@code{baud-rate} (predeterminado: @code{#f})"
@@ -22947,61 +26663,62 @@ msgstr "@code{baud-rate} (predeterminado: @code{#f})"
 # FUZZY
 # MAAV: Baud rate -> tasa de transmisión?
 #. type: table
-#: doc/guix.texi:12417
+#: doc/guix.texi:14569
 msgid "A string containing a comma-separated list of one or more baud rates, in descending order."
 msgstr "Una cadena que contenga una lista separada por comas de una o más tasas de transmisión, en orden descendiente."
 
 #. type: item
-#: doc/guix.texi:12418
+#: doc/guix.texi:14570
 #, no-wrap
 msgid "@code{term} (default: @code{#f})"
 msgstr "@code{term} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:12421
-msgid "A string containing the value used for the @code{TERM} environment variable."
-msgstr "Una cadena que contiene el valor usado para la variable de entorno @code{TERM}."
+#: doc/guix.texi:14573
+msgid "A string containing the value used for the @env{TERM} environment variable."
+msgstr "Una cadena que contiene el valor usado para la variable de entorno @env{TERM}."
 
 #. type: item
-#: doc/guix.texi:12422
+#: doc/guix.texi:14574
 #, no-wrap
 msgid "@code{eight-bits?} (default: @code{#f})"
 msgstr "@code{eight-bits?} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:12425
+#: doc/guix.texi:14577
 msgid "When @code{#t}, the tty is assumed to be 8-bit clean, and parity detection is disabled."
 msgstr "En caso de ser @code{#t}, se asume que el tty permite el paso de 8 bits, y la detección de paridad está desactivada."
 
 #. type: table
-#: doc/guix.texi:12429 doc/guix.texi:12588
+#: doc/guix.texi:14581 doc/guix.texi:14740
 msgid "When passed a login name, as a string, the specified user will be logged in automatically without prompting for their login name or password."
 msgstr "Cuando se proporciona un nombre de ingreso al sistema, como una cadena, la usuaria especificada ingresará automáticamente sin solicitar su nombre de ingreso ni su contraseña."
 
 #. type: item
-#: doc/guix.texi:12430
+#: doc/guix.texi:14582
 #, no-wrap
 msgid "@code{no-reset?} (default: @code{#f})"
 msgstr "@code{no-reset?} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:12432
+#: doc/guix.texi:14584
 msgid "When @code{#t}, don't reset terminal cflags (control modes)."
 msgstr "En caso de ser @code{#t}, no reinicia los modos de control del terminal (cflags)."
 
 #. type: item
-#: doc/guix.texi:12433
+#: doc/guix.texi:14585
 #, no-wrap
 msgid "@code{host} (default: @code{#f})"
 msgstr "@code{host} (predeterminado: @code{#f})"
 
+# FUZZY
 #. type: table
-#: doc/guix.texi:12436
-msgid "This accepts a string containing the \"login_host\", which will be written into the @file{/var/run/utmpx} file."
-msgstr "Acepta una cadena que contenga el \"nombre_de_máquina_de_ingreso\", que será escrito en el fichero @file{/var/run/utmpx}."
+#: doc/guix.texi:14588
+msgid "This accepts a string containing the ``login_host'', which will be written into the @file{/var/run/utmpx} file."
+msgstr "Acepta una cadena que contenga el ``nombre_de_máquina_de_ingreso'', que será escrito en el archivo @file{/var/run/utmpx}."
 
 #. type: item
-#: doc/guix.texi:12437
+#: doc/guix.texi:14589
 #, no-wrap
 msgid "@code{remote?} (default: @code{#f})"
 msgstr "@code{remote?} (predeterminado: @code{#f})"
@@ -23009,281 +26726,281 @@ msgstr "@code{remote?} (predeterminado: @code{#f})"
 # FUZZY
 # TODO (MAAV): Fakehost
 #. type: table
-#: doc/guix.texi:12441
+#: doc/guix.texi:14593
 msgid "When set to @code{#t} in conjunction with @var{host}, this will add an @code{-r} fakehost option to the command line of the login program specified in @var{login-program}."
 msgstr "Cuando se fija a @code{#t} en conjunción con @var{host}, se añadirá una opción @code{-r} \"fakehost\" a la línea de órdenes del programa de ingreso al sistema especificado en @var{login-program}."
 
 #. type: item
-#: doc/guix.texi:12442
+#: doc/guix.texi:14594
 #, no-wrap
 msgid "@code{flow-control?} (default: @code{#f})"
 msgstr "@code{flow-control?} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:12444
+#: doc/guix.texi:14596
 msgid "When set to @code{#t}, enable hardware (RTS/CTS) flow control."
 msgstr "Cuando es @code{#t}, activa el control de flujo hardware (RTS/CTS)."
 
 #. type: item
-#: doc/guix.texi:12445
+#: doc/guix.texi:14597
 #, no-wrap
 msgid "@code{no-issue?} (default: @code{#f})"
 msgstr "@code{no-issue?} (predeterminado: @code{#f})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:12448
+#: doc/guix.texi:14600
 msgid "When set to @code{#t}, the contents of the @file{/etc/issue} file will not be displayed before presenting the login prompt."
-msgstr "Cuando es @code{#t}, el contenido del fichero @file{/etc/issue} no se mostrará antes de presentar el mensaje de ingreso al sistema."
+msgstr "Cuando es @code{#t}, el contenido del archivo @file{/etc/issue} no se mostrará antes de presentar el mensaje de ingreso al sistema."
 
 #. type: item
-#: doc/guix.texi:12449
+#: doc/guix.texi:14601
 #, no-wrap
 msgid "@code{init-string} (default: @code{#f})"
 msgstr "@code{init-string} (predeterminada: @code{#f})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:12452
+#: doc/guix.texi:14604
 msgid "This accepts a string that will be sent to the tty or modem before sending anything else.  It can be used to initialize a modem."
 msgstr "Esto acepta una cadena que se enviará al tty o módem antes de mandar nada más. Puede usarse para inicializar un modem."
 
 #. type: item
-#: doc/guix.texi:12453
+#: doc/guix.texi:14605
 #, no-wrap
 msgid "@code{no-clear?} (default: @code{#f})"
 msgstr "@code{no-clear?} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:12456
+#: doc/guix.texi:14608
 msgid "When set to @code{#t}, agetty will not clear the screen before showing the login prompt."
 msgstr "Cuando es @code{#t}, agetty no limpiará la pantalla antes de mostrar el mensaje de ingreso al sistema."
 
 #. type: item
-#: doc/guix.texi:12457
+#: doc/guix.texi:14609
 #, no-wrap
 msgid "@code{login-program} (default: (file-append shadow \"/bin/login\"))"
 msgstr "@code{login-program} (predeterminado: (file-append shadow \"/bin/login\"))"
 
 #. type: table
-#: doc/guix.texi:12461
+#: doc/guix.texi:14613
 msgid "This must be either a gexp denoting the name of a log-in program, or unset, in which case the default value is the @command{login} from the Shadow tool suite."
 msgstr "Esto debe ser o bien una expresión-g que denote el nombre del programa de ingreso al sistema, o no debe proporcionarse, en cuyo caso el valor predeterminado es @command{login} del conjunto de herramientas Shadow."
 
 #. type: item
-#: doc/guix.texi:12462
+#: doc/guix.texi:14614
 #, no-wrap
 msgid "@code{local-line} (default: @code{#f})"
 msgstr "@code{local-line} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:12466
+#: doc/guix.texi:14618
 msgid "Control the CLOCAL line flag.  This accepts one of three symbols as arguments, @code{'auto}, @code{'always}, or @code{'never}. If @code{#f}, the default value chosen by agetty is @code{'auto}."
 msgstr "Controla el selector la línea CLOCAL. Acepta uno de estos tres símbolos como parámetros, @code{'auto}, @code{'always} (siempre) o @code{'never} (nunca). Si es @code{#f}, el valor predeterminado elegido por agetty es @code{'auto}."
 
 #. type: item
-#: doc/guix.texi:12467
+#: doc/guix.texi:14619
 #, no-wrap
 msgid "@code{extract-baud?} (default: @code{#f})"
 msgstr "@code{extract-baud?} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:12470
+#: doc/guix.texi:14622
 msgid "When set to @code{#t}, instruct agetty to try to extract the baud rate from the status messages produced by certain types of modems."
 msgstr "Cuando es @code{#t}, instruye a agetty para extraer la tasa de transmisión de los mensajes de estado producidos por ciertos tipos de módem."
 
 #. type: item
-#: doc/guix.texi:12471
+#: doc/guix.texi:14623
 #, no-wrap
 msgid "@code{skip-login?} (default: @code{#f})"
 msgstr "@code{skip-login?} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:12475
+#: doc/guix.texi:14627
 msgid "When set to @code{#t}, do not prompt the user for a login name.  This can be used with @var{login-program} field to use non-standard login systems."
 msgstr "Cuando es @code{#t}, no solicita el nombre de la usuaria para el ingreso al sistema. Puede usarse con el campo @var{login-program} para usar sistemas de ingreso no estándar."
 
 #. type: item
-#: doc/guix.texi:12476
+#: doc/guix.texi:14628
 #, no-wrap
 msgid "@code{no-newline?} (default: @code{#f})"
 msgstr "@code{no-newline?} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:12479
+#: doc/guix.texi:14631
 msgid "When set to @code{#t}, do not print a newline before printing the @file{/etc/issue} file."
-msgstr "Cuando es @code{#t}, no imprime una nueva línea antes de imprimir el fichero @file{/etc/issue}."
+msgstr "Cuando es @code{#t}, no imprime una nueva línea antes de imprimir el archivo @file{/etc/issue}."
 
 #. type: item
-#: doc/guix.texi:12481
+#: doc/guix.texi:14633
 #, no-wrap
 msgid "@code{login-options} (default: @code{#f})"
 msgstr "@code{login-options} (predeterminadas: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:12486
+#: doc/guix.texi:14638
 msgid "This option accepts a string containing options that are passed to the login program.  When used with the @var{login-program}, be aware that a malicious user could try to enter a login name containing embedded options that could be parsed by the login program."
 msgstr "Esta opción acepta una cadena que contenga opciones para proporcionar al programa de ingreso al sistema. Cuando se use con @var{login-program}, sea consciente de que una usuaria con malas intenciones podría intentar introducir un nombre que contuviese opciones embebidas que serían procesadas por el programa de ingreso."
 
 #. type: item
-#: doc/guix.texi:12487
+#: doc/guix.texi:14639
 #, no-wrap
 msgid "@code{login-pause} (default: @code{#f})"
 msgstr "@code{login-pause} (predeterminada: @code{#f})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:12491
+#: doc/guix.texi:14643
 msgid "When set to @code{#t}, wait for any key before showing the login prompt.  This can be used in conjunction with @var{auto-login} to save memory by lazily spawning shells."
 msgstr "Cuando es @code{#t}, espera la pulsación de cualquier tecla antes de mostrar el mensaje de ingreso al sistema. Esto puede usarse en conjunción con @var{auto-login} para ahorrar memoria lanzando cada shell cuando sea necesario."
 
 #. type: item
-#: doc/guix.texi:12492
+#: doc/guix.texi:14644
 #, no-wrap
 msgid "@code{chroot} (default: @code{#f})"
 msgstr "@code{chroot} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:12495
+#: doc/guix.texi:14647
 msgid "Change root to the specified directory.  This option accepts a directory path as a string."
 msgstr "Cambia la raíz al directorio especificado. Esta opción acepta una ruta de directorio como una cadena."
 
 #. type: item
-#: doc/guix.texi:12496
+#: doc/guix.texi:14648
 #, no-wrap
 msgid "@code{hangup?} (default: @code{#f})"
 msgstr "@code{hangup?} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:12499
+#: doc/guix.texi:14651
 msgid "Use the Linux system call @code{vhangup} to do a virtual hangup of the specified terminal."
 msgstr "Usa la llamada del sistema Linux @code{vhangup} para colgar de forma virtual el terminal especificado."
 
 #. type: item
-#: doc/guix.texi:12500
+#: doc/guix.texi:14652
 #, no-wrap
 msgid "@code{keep-baud?} (default: @code{#f})"
 msgstr "@code{keep-baud?} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:12504
+#: doc/guix.texi:14656
 msgid "When set to @code{#t}, try to keep the existing baud rate.  The baud rates from @var{baud-rate} are used when agetty receives a @key{BREAK} character."
 msgstr "Cuando es @code{#t}, prueba a mantener la tasa de transmisión existente. Las tasas de transmisión de @var{baud-rate} se usan cuando agetty recibe un carácter @key{BREAK}."
 
 #. type: item
-#: doc/guix.texi:12505
+#: doc/guix.texi:14657
 #, no-wrap
 msgid "@code{timeout} (default: @code{#f})"
 msgstr "@code{timeout} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:12508
+#: doc/guix.texi:14660
 msgid "When set to an integer value, terminate if no user name could be read within @var{timeout} seconds."
 msgstr "Cuando sea un valor entero, termina si no se pudo leer ningún nombre de usuaria en @var{timeout} segundos."
 
 #. type: item
-#: doc/guix.texi:12509
+#: doc/guix.texi:14661
 #, no-wrap
 msgid "@code{detect-case?} (default: @code{#f})"
 msgstr "@code{detect-case?} (predeterminado: @code{#f})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:12515
+#: doc/guix.texi:14667
 msgid "When set to @code{#t}, turn on support for detecting an uppercase-only terminal.  This setting will detect a login name containing only uppercase letters as indicating an uppercase-only terminal and turn on some upper-to-lower case conversions.  Note that this will not support Unicode characters."
 msgstr "Cuando es @code{#t}, activa la detección de terminales únicamente con mayúsculas. ESta configuración detectará un nombre de ingreso que contenga únicamente letras mayúsculas como un indicativo de un terminal con letras únicamente mayúsculas y activará las conversiones de mayúscula a minúscula. Tenga en cuenta que esto no permitirá caracteres Unicode."
 
 #. type: item
-#: doc/guix.texi:12516
+#: doc/guix.texi:14668
 #, no-wrap
 msgid "@code{wait-cr?} (default: @code{#f})"
 msgstr "@code{wait-cr?} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:12521
+#: doc/guix.texi:14673
 msgid "When set to @code{#t}, wait for the user or modem to send a carriage-return or linefeed character before displaying @file{/etc/issue} or login prompt.  This is typically used with the @var{init-string} option."
 msgstr "Cuando es @code{#t}, espera hasta que la usuaria o el modem envíen un carácter de retorno de carro o de salto de línea antes de mostrar @file{/etc/issue} o el mensaje de ingreso. Se usa de forma típica junto a la opción @var{init-string}."
 
 #. type: item
-#: doc/guix.texi:12522
+#: doc/guix.texi:14674
 #, no-wrap
 msgid "@code{no-hints?} (default: @code{#f})"
 msgstr "@code{no-hints?} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:12525
+#: doc/guix.texi:14677
 msgid "When set to @code{#t}, do not print hints about Num, Caps, and Scroll locks."
 msgstr "Cuando es @code{#t}, no imprime avisos sobre el bloqueo numérico, las mayúsculas o el bloqueo del desplazamiento."
 
 #. type: item
-#: doc/guix.texi:12526
+#: doc/guix.texi:14678
 #, no-wrap
 msgid "@code{no-hostname?} (default: @code{#f})"
 msgstr "@code{no-hostname?} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:12529
+#: doc/guix.texi:14681
 msgid "By default, the hostname is printed.  When this option is set to @code{#t}, no hostname will be shown at all."
 msgstr "El nombre de la máquina se imprime de forma predeterminada. Cuando esta opción es @code{#t}, no se mostrará ningún nombre de máquina."
 
 #. type: item
-#: doc/guix.texi:12530
+#: doc/guix.texi:14682
 #, no-wrap
 msgid "@code{long-hostname?} (default: @code{#f})"
 msgstr "@code{long-hostname?} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:12534
+#: doc/guix.texi:14686
 msgid "By default, the hostname is only printed until the first dot.  When this option is set to @code{#t}, the fully qualified hostname by @code{gethostname} or @code{getaddrinfo} is shown."
 msgstr "El nombre de máquina se imprime de forma predeterminada únicamente hasta el primer punto. Cuando esta opción es @code{#t}, se muestra el nombre completamente cualificado de la máquina mostrado por @code{gethostname} o @code{getaddrinfo}."
 
 #. type: item
-#: doc/guix.texi:12535
+#: doc/guix.texi:14687
 #, no-wrap
 msgid "@code{erase-characters} (default: @code{#f})"
 msgstr "@code{erase-characters} (predeterminado: @code{#f})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:12538
+#: doc/guix.texi:14690
 msgid "This option accepts a string of additional characters that should be interpreted as backspace when the user types their login name."
 msgstr "Esta opción acepta una cadena de caracteres adicionales que deben interpretarse como borrado del carácter anterior cuando la usuaria introduce su nombre de ingreso."
 
 #. type: item
-#: doc/guix.texi:12539
+#: doc/guix.texi:14691
 #, no-wrap
 msgid "@code{kill-characters} (default: @code{#f})"
 msgstr "@code{kill-characters} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:12543
-msgid "This option accepts a string that should be interpreted to mean \"ignore all previous characters\" (also called a \"kill\" character) when the user types their login name."
+#: doc/guix.texi:14695
+msgid "This option accepts a string that should be interpreted to mean ``ignore all previous characters'' (also called a ``kill'' character) when the user types their login name."
 msgstr "Esta opción acepta una cadena de que debe ser interpretada como ``ignora todos los caracteres anteriores'' (también llamado carácter ``kill'') cuando la usuaria introduce su nombre de ingreso."
 
 #. type: item
-#: doc/guix.texi:12544
+#: doc/guix.texi:14696
 #, no-wrap
 msgid "@code{chdir} (default: @code{#f})"
 msgstr "@code{chdir} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:12547
+#: doc/guix.texi:14699
 msgid "This option accepts, as a string, a directory path that will be changed to before login."
 msgstr "Esta opción acepta, como una cadena, una ruta de directorio que a la que se cambiará antes del ingreso al sistema."
 
 #. type: item
-#: doc/guix.texi:12548
+#: doc/guix.texi:14700
 #, no-wrap
 msgid "@code{delay} (default: @code{#f})"
 msgstr "@code{delay} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:12551
+#: doc/guix.texi:14703
 msgid "This options accepts, as an integer, the number of seconds to sleep before opening the tty and displaying the login prompt."
 msgstr "Esta opción acepta, como un entero, el número de segundos a esperar antes de abrir el tty y mostrar el mensaje de ingreso al sistema."
 
 #. type: item
-#: doc/guix.texi:12552
+#: doc/guix.texi:14704
 #, no-wrap
 msgid "@code{nice} (default: @code{#f})"
 msgstr "@code{nice} (predeterminado: @code{#f})"
@@ -23292,270 +27009,271 @@ msgstr "@code{nice} (predeterminado: @code{#f})"
 #
 # TODO (MAAV): Nice
 #. type: table
-#: doc/guix.texi:12555
+#: doc/guix.texi:14707
 msgid "This option accepts, as an integer, the nice value with which to run the @command{login} program."
 msgstr "Esta opción acepta, como un entero, el valor ``nice'' con el que se ejecutará el programa @command{login}."
 
 #. type: item
-#: doc/guix.texi:12556 doc/guix.texi:12787 doc/guix.texi:13605
-#: doc/guix.texi:20537 doc/guix.texi:22578
+#: doc/guix.texi:14708 doc/guix.texi:14975 doc/guix.texi:15804
+#: doc/guix.texi:23250 doc/guix.texi:25438 doc/guix.texi:26075
+#: doc/guix.texi:27782 doc/guix.texi:29896
 #, no-wrap
 msgid "@code{extra-options} (default: @code{'()})"
 msgstr "@code{extra-options} (predeterminadas: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:12559
-msgid "This option provides an \"escape hatch\" for the user to provide arbitrary command-line arguments to @command{agetty} as a list of strings."
-msgstr "Esta opción proporciona una \"trampilla de escape\" para que la usuaria proporcione parámetros de línea de órdenes adicionales a @command{agetty} como una lista de cadenas."
+#: doc/guix.texi:14711
+msgid "This option provides an ``escape hatch'' for the user to provide arbitrary command-line arguments to @command{agetty} as a list of strings."
+msgstr "Esta opción proporciona una ``trampilla de escape'' para que la usuaria proporcione parámetros de línea de órdenes adicionales a @command{agetty} como una lista de cadenas."
 
 #. type: deffn
-#: doc/guix.texi:12563
+#: doc/guix.texi:14715
 #, no-wrap
 msgid "{Scheme Procedure} kmscon-service-type @var{config}"
 msgstr "{Procedimiento Scheme} kmscon-service-type @var{config}"
 
 #. type: deffn
-#: doc/guix.texi:12567
+#: doc/guix.texi:14719
 msgid "Return a service to run @uref{https://www.freedesktop.org/wiki/Software/kmscon,kmscon} according to @var{config}, a @code{<kmscon-configuration>} object, which specifies the tty to run, among other things."
 msgstr "Devuelve un servicio que ejecuta @uref{https://www.freedesktop.org/wiki/Software/kmscon,kmscon} de acuerdo a @var{config}, un objeto @code{<kmscon-configuration>}, que especifica el tty sobre el que se ejecutará, entre otras cosas."
 
 #. type: deftp
-#: doc/guix.texi:12569
+#: doc/guix.texi:14721
 #, no-wrap
 msgid "{Data Type} kmscon-configuration"
 msgstr "{Tipo de datos} kmscon-configuration"
 
 #. type: deftp
-#: doc/guix.texi:12572
+#: doc/guix.texi:14724
 msgid "This is the data type representing the configuration of Kmscon, which implements virtual console log-in."
 msgstr "Este es el tipo de datos que representa la configuración de Kmscon, que implementa el ingreso al sistema en consolas virtuales."
 
 #. type: code{#1}
-#: doc/guix.texi:12575
+#: doc/guix.texi:14727
 #, no-wrap
 msgid "virtual-terminal"
 msgstr "virtual-terminal"
 
 #. type: table
-#: doc/guix.texi:12577
+#: doc/guix.texi:14729
 msgid "The name of the console this Kmscon runs on---e.g., @code{\"tty1\"}."
-msgstr "El sistema de la consola en la que se ejecuta este Kmscon---por ejemplo, @code{\"tty1\"}."
+msgstr "El nombre de la consola en la que se ejecuta este Kmscon---por ejemplo, @code{\"tty1\"}."
 
 #. type: item
-#: doc/guix.texi:12578
+#: doc/guix.texi:14730
 #, no-wrap
 msgid "@code{login-program} (default: @code{#~(string-append #$shadow \"/bin/login\")})"
 msgstr "@code{login-program} (predeterminado: @code{#~(string-append #$shadow \"/bin/login\")})"
 
 #. type: table
-#: doc/guix.texi:12581
+#: doc/guix.texi:14733
 msgid "A gexp denoting the name of the log-in program. The default log-in program is @command{login} from the Shadow tool suite."
 msgstr "Una expresión-g que denota el programa de ingreso al sistema. El programa de ingreso al sistema predeterminado es @command{login} del conjunto de herramientas Shadow."
 
 #. type: item
-#: doc/guix.texi:12582
+#: doc/guix.texi:14734
 #, no-wrap
 msgid "@code{login-arguments} (default: @code{'(\"-p\")})"
 msgstr "@code{login-arguments} (predeterminados: @code{'(\"-p\")})"
 
 #. type: table
-#: doc/guix.texi:12584
+#: doc/guix.texi:14736
 msgid "A list of arguments to pass to @command{login}."
 msgstr "Una lista de parámetros para proporcionar a @command{login}."
 
 #. type: item
-#: doc/guix.texi:12589
+#: doc/guix.texi:14741
 #, no-wrap
 msgid "@code{hardware-acceleration?} (default: #f)"
 msgstr "@code{hardware-acceleration?} (predeterminado: #f)"
 
 #. type: table
-#: doc/guix.texi:12591
+#: doc/guix.texi:14743
 msgid "Whether to use hardware acceleration."
 msgstr "Determina si se usará aceleración hardware."
 
 #. type: item
-#: doc/guix.texi:12592
+#: doc/guix.texi:14744
 #, no-wrap
 msgid "@code{kmscon} (default: @var{kmscon})"
 msgstr "@code{kmscon} (predeterminado: @var{kmscon})"
 
 #. type: table
-#: doc/guix.texi:12594
+#: doc/guix.texi:14746
 msgid "The Kmscon package to use."
 msgstr "El paquete Kmscon usado."
 
 # TODO: Comprobar traducción de libc
 #. type: cindex
-#: doc/guix.texi:12598
+#: doc/guix.texi:14750
 #, no-wrap
 msgid "name service cache daemon"
 msgstr "daemon de caché del servicio de nombres"
 
 #. type: cindex
-#: doc/guix.texi:12599
+#: doc/guix.texi:14751
 #, no-wrap
 msgid "nscd"
 msgstr "nscd"
 
 #. type: deffn
-#: doc/guix.texi:12600
+#: doc/guix.texi:14752
 #, no-wrap
 msgid "{Scheme Procedure} nscd-service [@var{config}] [#:glibc glibc] @"
 msgstr "{Procedimiento Scheme} nscd-service [@var{configuración}] [#:glibc glibc] @"
 
 #. type: deffn
-#: doc/guix.texi:12605
+#: doc/guix.texi:14757
 msgid "[#:name-services '()] Return a service that runs the libc name service cache daemon (nscd) with the given @var{config}---an @code{<nscd-configuration>} object.  @xref{Name Service Switch}, for an example."
 msgstr ""
 "[#:name-services '()]\n"
 "Devuelve un servicio que ejecuta el daemon de la caché del servicio de nombres (nscd) con la @var{configuración} proporcionada---un objeto @code{<nscd-configuration>}. @xref{Name Service Switch}, para un ejemplo."
 
 #. type: deffn
-#: doc/guix.texi:12607
+#: doc/guix.texi:14759
 msgid "For convenience, the Shepherd service for nscd provides the following actions:"
 msgstr "Por conveniencia, el servicio ncsd de Shepherd proporciona las siguientes acciones:"
 
 #. type: item
-#: doc/guix.texi:12609
+#: doc/guix.texi:14761
 #, no-wrap
 msgid "invalidate"
 msgstr "invalidate"
 
 #. type: cindex
-#: doc/guix.texi:12610
+#: doc/guix.texi:14762
 #, no-wrap
 msgid "cache invalidation, nscd"
 msgstr "invalidación de caché, nscd"
 
 #. type: cindex
-#: doc/guix.texi:12611
+#: doc/guix.texi:14763
 #, no-wrap
 msgid "nscd, cache invalidation"
 msgstr "nscd, invalidación de caché"
 
 #. type: table
-#: doc/guix.texi:12613
+#: doc/guix.texi:14765
 msgid "This invalidate the given cache.  For instance, running:"
 msgstr "Esto invalida la caché dada. Por ejemplo, ejecutar:"
 
 #. type: example
-#: doc/guix.texi:12616
+#: doc/guix.texi:14768
 #, no-wrap
 msgid "herd invalidate nscd hosts\n"
 msgstr "herd invalidate nscd hosts\n"
 
 #. type: table
-#: doc/guix.texi:12620
+#: doc/guix.texi:14772
 msgid "invalidates the host name lookup cache of nscd."
 msgstr "invalida la caché de búsqueda de nombres de máquinas de nscd."
 
 #. type: item
-#: doc/guix.texi:12621
+#: doc/guix.texi:14773
 #, no-wrap
 msgid "statistics"
 msgstr "statistics"
 
 #. type: table
-#: doc/guix.texi:12624
+#: doc/guix.texi:14776
 msgid "Running @command{herd statistics nscd} displays information about nscd usage and caches."
 msgstr "Ejecutar @command{herd statistics nscd} muestra información del uso nscd y la caché."
 
 #. type: defvr
-#: doc/guix.texi:12628
+#: doc/guix.texi:14780
 #, no-wrap
 msgid "{Scheme Variable} %nscd-default-configuration"
 msgstr "{Variable Scheme} %nscd-default-configuration"
 
 # FUZZY
 #. type: defvr
-#: doc/guix.texi:12632
-msgid "This is the default @code{<nscd-configuration>} value (see below) used by @code{nscd-service}.  It uses the caches defined by @var{%nscd-default-caches}; see below."
-msgstr "El valor del @code{<ncsd-configuration>} predeterminado (véase a continuación) usado por @code{nscd-service}. Usa los espacios de caché definidos por @var{%nscd-default-caches}; véase a continuación."
+#: doc/guix.texi:14784
+msgid "This is the default @code{<nscd-configuration>} value (see below) used by @code{nscd-service}.  It uses the caches defined by @code{%nscd-default-caches}; see below."
+msgstr "El valor del @code{<ncsd-configuration>} predeterminado (véase a continuación) usado por @code{nscd-service}. Usa los espacios de caché definidos por @code{%nscd-default-caches}; véase a continuación."
 
 #. type: deftp
-#: doc/guix.texi:12634
+#: doc/guix.texi:14786
 #, no-wrap
 msgid "{Data Type} nscd-configuration"
 msgstr "{Tipo de datos} nscd-configuration"
 
 #. type: deftp
-#: doc/guix.texi:12637
+#: doc/guix.texi:14789
 msgid "This is the data type representing the name service cache daemon (nscd)  configuration."
 msgstr "Este tipo de datos representa la configuración del daemon de caché del servicio de nombres (nscd)."
 
 #. type: item
-#: doc/guix.texi:12640
+#: doc/guix.texi:14792
 #, no-wrap
 msgid "@code{name-services} (default: @code{'()})"
 msgstr "@code{name-services} (predeterminados: @code{'()})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:12643
+#: doc/guix.texi:14795
 msgid "List of packages denoting @dfn{name services} that must be visible to the nscd---e.g., @code{(list @var{nss-mdns})}."
 msgstr "Lista de paquetes que indican los @dfn{servicios de nombres} que serán visibles al nscd---por ejemplo, @code{(list @var{nss-mdns})}."
 
 #. type: item
-#: doc/guix.texi:12644
+#: doc/guix.texi:14796
 #, no-wrap
 msgid "@code{glibc} (default: @var{glibc})"
 msgstr "@code{glibc} (predeterminada: @var{glibc})"
 
 #. type: table
-#: doc/guix.texi:12647
+#: doc/guix.texi:14799
 msgid "Package object denoting the GNU C Library providing the @command{nscd} command."
 msgstr "Paquete que denota la biblioteca C de GNU que proporciona la orden @command{nscd}."
 
 #. type: item
-#: doc/guix.texi:12648
+#: doc/guix.texi:14800
 #, no-wrap
 msgid "@code{log-file} (default: @code{\"/var/log/nscd.log\"})"
 msgstr "@code{log-file} (predeterminado: @code{\"/var/log/nscd.log\"})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:12651
+#: doc/guix.texi:14803
 msgid "Name of the nscd log file.  This is where debugging output goes when @code{debug-level} is strictly positive."
-msgstr "Nombre del fichero de registro de nscd. Aquí es donde se almacena la salida de depuración cuando @code{debug-level} es estrictamente positivo."
+msgstr "Nombre del archivo de registro de nscd. Aquí es donde se almacena la salida de depuración cuando @code{debug-level} es estrictamente positivo."
 
 #. type: item
-#: doc/guix.texi:12652
+#: doc/guix.texi:14804
 #, no-wrap
 msgid "@code{debug-level} (default: @code{0})"
 msgstr "@code{debug-level} (predeterminado: @code{0})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:12655
+#: doc/guix.texi:14807
 msgid "Integer denoting the debugging levels.  Higher numbers mean that more debugging output is logged."
 msgstr "Entero que indica el nivel de depuración. Números mayores significan que se registra más salida de depuración."
 
 #. type: item
-#: doc/guix.texi:12656
+#: doc/guix.texi:14808
 #, no-wrap
-msgid "@code{caches} (default: @var{%nscd-default-caches})"
-msgstr "@code{caches} (predeterminadas: @var{%nscd-default-caches})"
+msgid "@code{caches} (default: @code{%nscd-default-caches})"
+msgstr "@code{caches} (predeterminado: @code{%nscd-default-caches})"
 
 #. type: table
-#: doc/guix.texi:12659
+#: doc/guix.texi:14811
 msgid "List of @code{<nscd-cache>} objects denoting things to be cached; see below."
 msgstr "Lista de objetos @code{<nscd-cache>} que indican cosas a mantener en caché; véase a continuación."
 
 #. type: deftp
-#: doc/guix.texi:12663
+#: doc/guix.texi:14815
 #, no-wrap
 msgid "{Data Type} nscd-cache"
 msgstr "{Tipo de datos} nscd-cache"
 
 # FUZZY
 #. type: deftp
-#: doc/guix.texi:12665
+#: doc/guix.texi:14817
 msgid "Data type representing a cache database of nscd and its parameters."
 msgstr "Tipo de datos que representa una base de datos de caché de nscd y sus parámetros."
 
 #. type: cindex
-#: doc/guix.texi:12668 doc/guix.texi:16249
+#: doc/guix.texi:14820 doc/guix.texi:18835
 #, no-wrap
 msgid "database"
 msgstr "base de datos"
@@ -23563,18 +27281,18 @@ msgstr "base de datos"
 # FUZZY
 # TODO (MAAV): Caché
 #. type: table
-#: doc/guix.texi:12673
+#: doc/guix.texi:14825
 msgid "This is a symbol representing the name of the database to be cached.  Valid values are @code{passwd}, @code{group}, @code{hosts}, and @code{services}, which designate the corresponding NSS database (@pxref{NSS Basics,,, libc, The GNU C Library Reference Manual})."
 msgstr "Es un símbolo que representa el nombre de la base de datos de la que se actúa como caché. Se aceptan los valores @code{passwd}, @code{group}, @code{hosts} y @code{services}, que designan las bases de datos NSS correspondientes (@pxref{NSS Basics,,, libc, The GNU C Library Reference Manual})."
 
 #. type: code{#1}
-#: doc/guix.texi:12674
+#: doc/guix.texi:14826
 #, no-wrap
 msgid "positive-time-to-live"
 msgstr "positive-time-to-live"
 
 #. type: itemx
-#: doc/guix.texi:12675
+#: doc/guix.texi:14827
 #, no-wrap
 msgid "@code{negative-time-to-live} (default: @code{20})"
 msgstr "@code{negative-time-to-live} (predeterminado: @code{20})"
@@ -23582,62 +27300,62 @@ msgstr "@code{negative-time-to-live} (predeterminado: @code{20})"
 # FUZZY
 # TODO (MAAV): Caché
 #. type: table
-#: doc/guix.texi:12678
+#: doc/guix.texi:14830
 msgid "A number representing the number of seconds during which a positive or negative lookup result remains in cache."
 msgstr "Un número que representa el número de segundos durante los que una búsqueda positiva o negativa permanece en la caché."
 
 #. type: item
-#: doc/guix.texi:12679
+#: doc/guix.texi:14831
 #, no-wrap
 msgid "@code{check-files?} (default: @code{#t})"
 msgstr "@code{check-files?} (predeterminado: @code{#t})"
 
 #. type: table
-#: doc/guix.texi:12682
+#: doc/guix.texi:14834
 msgid "Whether to check for updates of the files corresponding to @var{database}."
-msgstr "Si se comprobará en busca de actualizaciones los ficheros que correspondan con @var{database}."
+msgstr "Si se comprobará en busca de actualizaciones los archivos que correspondan con @var{database}."
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:12686
+#: doc/guix.texi:14838
 msgid "For instance, when @var{database} is @code{hosts}, setting this flag instructs nscd to check for updates in @file{/etc/hosts} and to take them into account."
 msgstr "Por ejemplo, cuando @var{database} es @code{hosts}, la activación de esta opción instruye a nscd para comprobar actualizaciones en @file{/etc/hosts} y tenerlas en cuenta."
 
 #. type: item
-#: doc/guix.texi:12687
+#: doc/guix.texi:14839
 #, no-wrap
 msgid "@code{persistent?} (default: @code{#t})"
 msgstr "@code{persistent?} (predeterminada: @code{#t})"
 
 #. type: table
-#: doc/guix.texi:12689
+#: doc/guix.texi:14841
 msgid "Whether the cache should be stored persistently on disk."
 msgstr "Determina si la caché debe almacenarse de manera persistente en disco."
 
 #. type: item
-#: doc/guix.texi:12690
+#: doc/guix.texi:14842
 #, no-wrap
 msgid "@code{shared?} (default: @code{#t})"
 msgstr "@code{shared?} (predeterminado: @code{#t})"
 
 #. type: table
-#: doc/guix.texi:12692
+#: doc/guix.texi:14844
 msgid "Whether the cache should be shared among users."
 msgstr "Determina si la caché debe compartirse entre las usuarias."
 
 #. type: item
-#: doc/guix.texi:12693
+#: doc/guix.texi:14845
 #, no-wrap
 msgid "@code{max-database-size} (default: 32@tie{}MiB)"
 msgstr "@code{max-database-size} (predeterminado: 32@tie{}MiB)"
 
 #. type: table
-#: doc/guix.texi:12695
+#: doc/guix.texi:14847
 msgid "Maximum size in bytes of the database cache."
 msgstr "Tamaño máximo en bytes de la caché de la base de datos."
 
 #. type: defvr
-#: doc/guix.texi:12702
+#: doc/guix.texi:14854
 #, no-wrap
 msgid "{Scheme Variable} %nscd-default-caches"
 msgstr "{Variable Scheme} %nscd-default-caches"
@@ -23645,23 +27363,23 @@ msgstr "{Variable Scheme} %nscd-default-caches"
 # FUZZY
 # TODO (MAAV): Above...
 #. type: defvr
-#: doc/guix.texi:12705
+#: doc/guix.texi:14857
 msgid "List of @code{<nscd-cache>} objects used by default by @code{nscd-configuration} (see above)."
 msgstr "Lista de objetos @code{<nscd-cache>} usados por omisión por @code{nscd-configuration} (véase en la sección previa)"
 
 # FUZZY
 #. type: defvr
-#: doc/guix.texi:12711
+#: doc/guix.texi:14863
 msgid "It enables persistent and aggressive caching of service and host name lookups.  The latter provides better host name lookup performance, resilience in the face of unreliable name servers, and also better privacy---often the result of host name lookups is in local cache, so external name servers do not even need to be queried."
 msgstr "Activa el almacenamiento en caché persistente y agresivo de búsquedas de servicios y nombres de máquina. La última proporciona un mejor rendimiento en la búsqueda de nombres de máquina, resilencia en caso de nombres de servidor no confiables y también mejor privacidad---a menudo el resultado de las búsquedas de nombres de máquina está en la caché local, por lo que incluso ni es necesario consultar servidores de nombres externos."
 
 #. type: anchor{#1}
-#: doc/guix.texi:12714
+#: doc/guix.texi:14866
 msgid "syslog-configuration-type"
 msgstr "syslog-configuration-type"
 
 #. type: cindex
-#: doc/guix.texi:12714 doc/guix.texi:12730
+#: doc/guix.texi:14866 doc/guix.texi:14882
 #, no-wrap
 msgid "syslog"
 msgstr "syslog"
@@ -23669,306 +27387,352 @@ msgstr "syslog"
 # FUZZY
 # MAAV (TODO): Log
 #. type: cindex
-#: doc/guix.texi:12715 doc/guix.texi:13209
+#: doc/guix.texi:14867 doc/guix.texi:15405
 #, no-wrap
 msgid "logging"
 msgstr "logging"
 
 #. type: deftp
-#: doc/guix.texi:12716
+#: doc/guix.texi:14868
 #, no-wrap
 msgid "{Data Type} syslog-configuration"
 msgstr "{Tipo de datos} syslog-configuration"
 
 #. type: deftp
-#: doc/guix.texi:12718
+#: doc/guix.texi:14870
 msgid "This data type represents the configuration of the syslog daemon."
 msgstr "Este tipo de datos representa la configuración del daemon syslog."
 
 #. type: item
-#: doc/guix.texi:12720
+#: doc/guix.texi:14872
 #, no-wrap
 msgid "@code{syslogd} (default: @code{#~(string-append #$inetutils \"/libexec/syslogd\")})"
 msgstr "@code{syslogd} (predeterminado: @code{#~(string-append #$inetutils \"/libexec/syslogd\")})"
 
 #. type: table
-#: doc/guix.texi:12722
+#: doc/guix.texi:14874
 msgid "The syslog daemon to use."
 msgstr "El daemon syslog usado."
 
 #. type: item
-#: doc/guix.texi:12723
+#: doc/guix.texi:14875
 #, no-wrap
 msgid "@code{config-file} (default: @code{%default-syslog.conf})"
 msgstr "@code{config-file} (predeterminado: @code{%default-syslog.conf})"
 
 #. type: table
-#: doc/guix.texi:12725
+#: doc/guix.texi:14877
 msgid "The syslog configuration file to use."
-msgstr "El fichero de configuración de syslog usado."
+msgstr "El archivo de configuración de syslog usado."
 
 #. type: anchor{#1}
-#: doc/guix.texi:12730
+#: doc/guix.texi:14882
 msgid "syslog-service"
 msgstr "syslog-service"
 
 #. type: deffn
-#: doc/guix.texi:12731
+#: doc/guix.texi:14883
 #, no-wrap
 msgid "{Scheme Procedure} syslog-service @var{config}"
 msgstr "{Procedimiento Scheme} syslog-service @var{config}"
 
 #. type: deffn
-#: doc/guix.texi:12733
+#: doc/guix.texi:14885
 msgid "Return a service that runs a syslog daemon according to @var{config}."
 msgstr "Devuelve un servicio que ejecuta el daemon de syslog de acuerdo a @var{config}."
 
 #. type: deffn
-#: doc/guix.texi:12736
+#: doc/guix.texi:14888
 msgid "@xref{syslogd invocation,,, inetutils, GNU Inetutils}, for more information on the configuration file syntax."
-msgstr "@xref{syslogd invocation,,, inetutils, GNU Inetutils}, para más información sobre la sintaxis del fichero de configuración."
+msgstr "@xref{syslogd invocation,,, inetutils, GNU Inetutils}, para más información sobre la sintaxis del archivo de configuración."
 
 #. type: defvr
-#: doc/guix.texi:12738
+#: doc/guix.texi:14890
 #, no-wrap
 msgid "{Scheme Variable} guix-service-type"
 msgstr "{Variable Scheme} guix-service-type"
 
 #. type: defvr
-#: doc/guix.texi:12742
+#: doc/guix.texi:14894
 msgid "This is the type of the service that runs the build daemon, @command{guix-daemon} (@pxref{Invoking guix-daemon}).  Its value must be a @code{guix-configuration} record as described below."
 msgstr "El tipo de servicio que ejecuta el daemon de construcción, @command{guix-daemon} (@pxref{Invoking guix-daemon}). Su valor debe ser un registro @code{guix-configuration} como se describe a continuación."
 
 #. type: anchor{#1}
-#: doc/guix.texi:12745
+#: doc/guix.texi:14897
 msgid "guix-configuration-type"
 msgstr "guix-configuration-type"
 
 #. type: deftp
-#: doc/guix.texi:12745
+#: doc/guix.texi:14897
 #, no-wrap
 msgid "{Data Type} guix-configuration"
 msgstr "{Tipo de datos} guix-configuration"
 
 #. type: deftp
-#: doc/guix.texi:12748
+#: doc/guix.texi:14900
 msgid "This data type represents the configuration of the Guix build daemon.  @xref{Invoking guix-daemon}, for more information."
 msgstr "Este tipo de datos representa la configuración del daemon de construcción de Guix. @xref{Invoking guix-daemon}, para más información."
 
 #. type: item
-#: doc/guix.texi:12750
+#: doc/guix.texi:14902
 #, no-wrap
 msgid "@code{guix} (default: @var{guix})"
 msgstr "@code{guix} (predeterminado: @var{guix})"
 
 #. type: table
-#: doc/guix.texi:12752 doc/guix.texi:12986
+#: doc/guix.texi:14904 doc/guix.texi:15174
 msgid "The Guix package to use."
 msgstr "El paquete Guix usado."
 
 #. type: item
-#: doc/guix.texi:12753
+#: doc/guix.texi:14905
 #, no-wrap
 msgid "@code{build-group} (default: @code{\"guixbuild\"})"
 msgstr "@code{build-group} (predeterminado: @code{\"guixbuild\"})"
 
 #. type: table
-#: doc/guix.texi:12755
+#: doc/guix.texi:14907
 msgid "Name of the group for build user accounts."
 msgstr "El nombre del grupo de las cuentas de usuarias de construcción."
 
 #. type: item
-#: doc/guix.texi:12756
+#: doc/guix.texi:14908
 #, no-wrap
 msgid "@code{build-accounts} (default: @code{10})"
 msgstr "@code{build-accounts} (predeterminadas: @code{10})"
 
 #. type: table
-#: doc/guix.texi:12758
+#: doc/guix.texi:14910
 msgid "Number of build user accounts to create."
 msgstr "Número de cuentas de usuarias de construcción a crear."
 
 #. type: item
-#: doc/guix.texi:12759
+#: doc/guix.texi:14911
 #, no-wrap
 msgid "@code{authorize-key?} (default: @code{#t})"
 msgstr "@code{authorize-key?} (predeterminado: @code{#t})"
 
 #. type: table
-#: doc/guix.texi:12764
+#: doc/guix.texi:14916
 msgid "Whether to authorize the substitute keys listed in @code{authorized-keys}---by default that of @code{@value{SUBSTITUTE-SERVER}} (@pxref{Substitutes})."
 msgstr "Determina si se autoriza las claves de sustituciones listadas en @code{authorized-keys}---predeterminada la de @code{@value{SUBSTITUTE-SERVER}} (@pxref{Substitutes})."
 
+#. type: table
+#: doc/guix.texi:14922
+msgid "When @code{authorize-key?} is true, @file{/etc/guix/acl} cannot be changed by invoking @command{guix archive --authorize}.  You must instead adjust @code{guix-configuration} as you wish and reconfigure the system.  This ensures that your operating system configuration file is self-contained."
+msgstr "Cuando @code{authorize-key?} es verdadero, @file{/etc/guix/acl} no se puede cambiar a través de @command{guix archive --authorize}. En vez de eso debe ajustar @code{guix-configuration} como desee y reconfigurar el sistema. Esto asegura que la configuración de su sistema operativo es auto-contenida."
+
+#. type: quotation
+#: doc/guix.texi:14929
+msgid "When booting or reconfiguring to a system where @code{authorize-key?} is true, the existing @file{/etc/guix/acl} file is backed up as @file{/etc/guix/acl.bak} if it was determined to be a manually modified file.  This is to facilitate migration from earlier versions, which allowed for in-place modifications to @file{/etc/guix/acl}."
+msgstr "Cuando arranque o reconfigure a un sistema donde @code{authorize-key?} sea verdadero, se crea una copia de seguridad del archivo @file{/etc/guix/acl} existente como @file{/etc/guix/acl.bak} si se determina que el archivo se ha modificado de manera manual. Esto facilita la migración desde versiones anteriores, en las que se permitían las modificaciones directas del archivo @file{/etc/guix/acl}."
+
 #. type: vindex
-#: doc/guix.texi:12765
+#: doc/guix.texi:14931
 #, no-wrap
 msgid "%default-authorized-guix-keys"
 msgstr "%default-authorized-guix-keys"
 
 #. type: item
-#: doc/guix.texi:12766
+#: doc/guix.texi:14932
 #, no-wrap
 msgid "@code{authorized-keys} (default: @code{%default-authorized-guix-keys})"
 msgstr "@code{authorized-keys} (predeterminadas: @code{%default-authorized-guix-keys})"
 
 #. type: table
-#: doc/guix.texi:12770
-msgid "The list of authorized key files for archive imports, as a list of string-valued gexps (@pxref{Invoking guix archive}).  By default, it contains that of @code{@value{SUBSTITUTE-SERVER}} (@pxref{Substitutes})."
-msgstr "La lista de ficheros de claves autorizadas para importaciones de archivos, como una lista de expresiones-G que evalúan a cadenas (@pxref{Invoking guix archive}). Por defecto, contiene las de @code{@value{SUBSTITUTE-SERVER}} (@pxref{Substitutes})."
+#: doc/guix.texi:14937
+msgid "The list of authorized key files for archive imports, as a list of string-valued gexps (@pxref{Invoking guix archive}).  By default, it contains that of @code{@value{SUBSTITUTE-SERVER}} (@pxref{Substitutes}).  See @code{substitute-urls} below for an example on how to change it."
+msgstr "La lista de archivos de claves autorizadas para importaciones de archivos, como una lista de expresiones-G que evalúan a cadenas (@pxref{Invoking guix archive}). Por defecto, contiene las de @code{@value{SUBSTITUTE-SERVER}} (@pxref{Substitutes}). Véase @code{substitute-urls} a continuación para obtener un ejemplo de cómo cambiar este valor."
 
 #. type: item
-#: doc/guix.texi:12771
+#: doc/guix.texi:14938
 #, no-wrap
 msgid "@code{use-substitutes?} (default: @code{#t})"
 msgstr "@code{use-substitutes?} (predeterminado: @code{#t})"
 
 #. type: table
-#: doc/guix.texi:12773
+#: doc/guix.texi:14940
 msgid "Whether to use substitutes."
 msgstr "Determina si se usarán sustituciones."
 
 #. type: item
-#: doc/guix.texi:12774
+#: doc/guix.texi:14941
 #, no-wrap
 msgid "@code{substitute-urls} (default: @code{%default-substitute-urls})"
 msgstr "@code{substitute-urls} (predeterminado: @code{%default-substitute-urls})"
 
 #. type: table
-#: doc/guix.texi:12776
+#: doc/guix.texi:14943
 msgid "The list of URLs where to look for substitutes by default."
 msgstr "La lista de URLs donde se buscarán sustituciones por defecto."
 
+#. type: table
+#: doc/guix.texi:14950
+msgid "Suppose you would like to fetch substitutes from @code{guix.example.org} in addition to @code{@value{SUBSTITUTE-SERVER}}.  You will need to do two things: (1) add @code{guix.example.org} to @code{substitute-urls}, and (2) authorize its signing key, having done appropriate checks (@pxref{Substitute Server Authorization}).  The configuration below does exactly that:"
+msgstr "Supongamos que desea obtener sustituciones desde @code{guix.example.org} además de @code{@value{SUBSTITUTE-SERVER}}. Para ello debe hacer dos cosas: (1) añadir @code{guix.example.org} a @code{substitute-urls}, y (2) autorizar su clave de firma digital, tras realizar las comprobaciones adecuadas (@pxref{Substitute Server Authorization}). La siguiente configuración hace exáctamente eso:"
+
+#. type: lisp
+#: doc/guix.texi:14959
+#, no-wrap
+msgid ""
+"(guix-configuration\n"
+"  (substitute-urls\n"
+"   (append (list \"https://guix.example.org\")\n"
+"           %default-substitute-urls))\n"
+"  (authorized-keys\n"
+"   (append (list (local-file \"./guix.example.org-key.pub\"))\n"
+"           %default-authorized-guix-keys)))\n"
+msgstr ""
+"(guix-configuration\n"
+"  (substitute-urls\n"
+"   (append (list \"https://guix.example.org\")\n"
+"           %default-substitute-urls))\n"
+"  (authorized-keys\n"
+"   (append (list (local-file \"./guix.example.org-clave.pub\"))\n"
+"           %default-authorized-guix-keys)))\n"
+
+#. type: table
+#: doc/guix.texi:14964
+msgid "This example assumes that the file @file{./guix.example.org-key.pub} contains the public key that @code{guix.example.org} uses to sign substitutes."
+msgstr "Este ejemplo asume que el archivo @file{./guix.example.org-clave.pub} contiene la clave pública que @code{guix.example.org} usa para firmar las sustituciones."
+
 #. type: item
-#: doc/guix.texi:12777
+#: doc/guix.texi:14965
 #, no-wrap
 msgid "@code{max-silent-time} (default: @code{0})"
 msgstr "@code{max-silent-time} (predeterminado: @code{0})"
 
 #. type: itemx
-#: doc/guix.texi:12778
+#: doc/guix.texi:14966
 #, no-wrap
 msgid "@code{timeout} (default: @code{0})"
 msgstr "@code{timeout} (predeterminado: @code{0})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:12782
+#: doc/guix.texi:14970
 msgid "The number of seconds of silence and the number of seconds of activity, respectively, after which a build process times out.  A value of zero disables the timeout."
 msgstr "El número de segundos de silencio y el número de segundos de actividad respectivamente, tras los cuales el proceso de construcción supera el plazo. Un valor de cero proporciona plazos ilimitados."
 
 #. type: item
-#: doc/guix.texi:12783
+#: doc/guix.texi:14971
 #, no-wrap
 msgid "@code{log-compression} (default: @code{'bzip2})"
 msgstr "@code{log-compression} (predeterminado: @code{'bzip2})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:12786
+#: doc/guix.texi:14974
 msgid "The type of compression used for build logs---one of @code{gzip}, @code{bzip2}, or @code{none}."
 msgstr "El tipo de compresión usado en los log de construcción---o bien @code{gzip}, o bien @code{bzip2} o @code{none}."
 
 #. type: table
-#: doc/guix.texi:12789
+#: doc/guix.texi:14977
 msgid "List of extra command-line options for @command{guix-daemon}."
 msgstr "Lista de opciones de línea de órdenes adicionales para @command{guix-daemon}."
 
 #. type: item
-#: doc/guix.texi:12790
+#: doc/guix.texi:14978
 #, no-wrap
 msgid "@code{log-file} (default: @code{\"/var/log/guix-daemon.log\"})"
 msgstr "@code{log-file} (predeterminado: @code{\"/var/log/guix-daemon.log\"})"
 
 #. type: table
-#: doc/guix.texi:12793
+#: doc/guix.texi:14981
 msgid "File where @command{guix-daemon}'s standard output and standard error are written."
-msgstr "Fichero al que se escriben la salida estándar y la salida estándar de error de @command{guix-daemon}."
+msgstr "Archivo al que se escriben la salida estándar y la salida estándar de error de @command{guix-daemon}."
 
 #. type: cindex
-#: doc/guix.texi:12794
+#: doc/guix.texi:14982
 #, no-wrap
 msgid "HTTP proxy, for @code{guix-daemon}"
 msgstr "HTTP, proxy para @code{guix-daemon}"
 
 #. type: cindex
-#: doc/guix.texi:12795
+#: doc/guix.texi:14983
 #, no-wrap
 msgid "proxy, for @code{guix-daemon} HTTP access"
 msgstr "proxy, para el acceso HTTP de @code{guix-daemon}"
 
 #. type: item
-#: doc/guix.texi:12796
+#: doc/guix.texi:14984
 #, no-wrap
 msgid "@code{http-proxy} (default: @code{#f})"
 msgstr "@code{http-proxy} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:12799
+#: doc/guix.texi:14987
 msgid "The URL of the HTTP and HTTPS proxy used for downloading fixed-output derivations and substitutes."
 msgstr "La URL de los proxy HTTP y HTTPS que se usa para la descarga de derivaciones de salida fija y sustituciones."
 
 #. type: table
-#: doc/guix.texi:12802
+#: doc/guix.texi:14990
 msgid "It is also possible to change the daemon's proxy at run time through the @code{set-http-proxy} action, which restarts it:"
-msgstr "También es posible cambiar el proxy del daemon en tiempo te ejecución con la acción @code{set-http-proxy}, la cual lo reinicia:"
+msgstr "También es posible cambiar la pasarela del daemon en tiempo te ejecución con la acción @code{set-http-proxy}, la cual lo reinicia:"
 
 #. type: example
-#: doc/guix.texi:12805
+#: doc/guix.texi:14993
 #, no-wrap
 msgid "herd set-http-proxy guix-daemon http://localhost:8118\n"
 msgstr "herd set-http-proxy guix-daemon http://localhost:8118\n"
 
+# FUZZY
 #. type: table
-#: doc/guix.texi:12808
+#: doc/guix.texi:14996
 msgid "To clear the proxy settings, run:"
-msgstr "Para limpiar la configuración del proxy ejecute:"
+msgstr "Para desactivar el uso actual de una pasarela ejecute:"
 
 #. type: example
-#: doc/guix.texi:12811
+#: doc/guix.texi:14999
 #, no-wrap
 msgid "herd set-http-proxy guix-daemon\n"
 msgstr "herd set-http-proxy guix-daemon\n"
 
 #. type: item
-#: doc/guix.texi:12813
+#: doc/guix.texi:15001
 #, no-wrap
 msgid "@code{tmpdir} (default: @code{#f})"
 msgstr "@code{tmpdir} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:12815
+#: doc/guix.texi:15003
 msgid "A directory path where the @command{guix-daemon} will perform builds."
 msgstr "Una ruta de directorio donde @command{guix-daemon} realiza las construcciones."
 
 #. type: deffn
-#: doc/guix.texi:12819
+#: doc/guix.texi:15007
 #, no-wrap
 msgid "{Scheme Procedure} udev-service [#:udev @var{eudev} #:rules @code{'()}]"
 msgstr "{Procedimiento Scheme} udev-service [#:udev @var{eudev} #:rules @code{'()}]"
 
 #. type: deffn
-#: doc/guix.texi:12824
-msgid "Run @var{udev}, which populates the @file{/dev} directory dynamically.  udev rules can be provided as a list of files through the @var{rules} variable.  The procedures @code{udev-rule} and @code{file->udev-rule} from @code{(gnu services base)} simplify the creation of such rule files."
-msgstr "Ejecuta @var{udev}, que gestiona el contenido del directorio @file{/dev} de forma dinámica. Se pueden proporcionar reglas de udev como una lista de ficheros a través de la variable @var{rules}. Los procedimientos @code{udev-rule} y @code{file->udev-rule} de @code{(gnu services base)} simplifican la creación de dichos ficheros de reglas."
+#: doc/guix.texi:15013
+msgid "Run @var{udev}, which populates the @file{/dev} directory dynamically.  udev rules can be provided as a list of files through the @var{rules} variable.  The procedures @code{udev-rule}, @code{udev-rules-service} and @code{file->udev-rule} from @code{(gnu services base)} simplify the creation of such rule files."
+msgstr "Ejecuta @var{udev}, que gestiona el contenido del directorio @file{/dev} de forma dinámica. Se pueden proporcionar reglas de udev como una lista de archivos a través de la variable @var{rules}. Los procedimientos @code{udev-rule}, @code{udev-rules-service} y @code{file->udev-rule} de @code{(gnu services base)} simplifican la creación de dichos archivos de reglas."
 
 #. type: deffn
-#: doc/guix.texi:12826
+#: doc/guix.texi:15016
+msgid "The @command{herd rules udev} command, as root, returns the name of the directory containing all the active udev rules."
+msgstr "La orden @command{herd rules udev}, como root, devuelve el nombre del directorio que contiene todas las reglas udev activas."
+
+#. type: deffn
+#: doc/guix.texi:15018
 #, no-wrap
 msgid "{Scheme Procedure} udev-rule [@var{file-name} @var{contents}]"
-msgstr "{Procedimiento Scheme} udev-rule [@var{nombre-fichero} @var{contenido}]"
+msgstr "{Procedimiento Scheme} udev-rule [@var{nombre-archivo} @var{contenido}]"
 
 #. type: deffn
-#: doc/guix.texi:12829
+#: doc/guix.texi:15021
 msgid "Return a udev-rule file named @var{file-name} containing the rules defined by the @var{contents} literal."
-msgstr "Devuelve un fichero de reglas de udev con nombre @var{nombre-fichero} que contiene las reglas definidas en el literal @var{contenido}."
+msgstr "Devuelve un archivo de reglas de udev con nombre @var{nombre-archivo} que contiene las reglas definidas en el literal @var{contenido}."
 
 #. type: deffn
-#: doc/guix.texi:12833
+#: doc/guix.texi:15025
 msgid "In the following example, a rule for a USB device is defined to be stored in the file @file{90-usb-thing.rules}.  The rule runs a script upon detecting a USB device with a given product identifier."
-msgstr "En el ejemplo siguiente se define una regla para un dispositivo USB que será almacenada en el fichero @file{90-usb-cosa.rules}. Esta regla ejecuta un script cuando se detecta un dispositivo USB con un identificador de producto dado."
+msgstr "En el ejemplo siguiente se define una regla para un dispositivo USB que será almacenada en el archivo @file{90-usb-cosa.rules}. Esta regla ejecuta un script cuando se detecta un dispositivo USB con un identificador de producto dado."
 
 #. type: lisp
-#: doc/guix.texi:12841
+#: doc/guix.texi:15033
 #, no-wrap
 msgid ""
 "(define %example-udev-rule\n"
@@ -23986,55 +27750,58 @@ msgstr ""
 "                   \"RUN+=\\\"/ruta/al/ejecutable\\\"\")))\n"
 
 #. type: deffn
-#: doc/guix.texi:12845
-msgid "The @command{herd rules udev} command, as root, returns the name of the directory containing all the active udev rules."
-msgstr "La orden @command{herd rules udev}, como root, devuelve el nombre del directorio que contiene todas las reglas udev activas."
+#: doc/guix.texi:15036
+#, no-wrap
+msgid "{Scheme Procedure} udev-rules-service [@var{name} @var{rules}] @"
+msgstr "{Procedimiento Scheme} udev-rules-service [@var{nombre} @var{reglas}] @"
 
-#. type: Plain text
-#: doc/guix.texi:12848
-msgid "Here we show how the default @var{udev-service} can be extended with it."
-msgstr "Aquí se muestra cómo se puede extender el servicio @var{udev-service} predeterminado se puede extender con ella."
+# FUZZY
+#. type: deffn
+#: doc/guix.texi:15043
+msgid "[#:groups @var{groups}] Return a service that extends @code{udev-service-type } with @var{rules} and @code{account-service-type} with @var{groups} as system groups.  This works by creating a singleton service type @code{@var{name}-udev-rules}, of which the returned service is an instance."
+msgstr ""
+"[#:groups @var{grupos}]\n"
+"Devuelve un servicio que extiende @code{udev-service-type} con @var{reglas} y @code{account-service-type} con @var{grupos} como grupos del sistema. Esto funciona creando una instancia única del tipo de servicio @code{@var{nombre}-udev-rules}, del cual el servicio devuelto es una instancia."
+
+#. type: deffn
+#: doc/guix.texi:15046
+msgid "Here we show how it can be used to extend @code{udev-service-type} with the previously defined rule @code{%example-udev-rule}."
+msgstr "A continuación se muestra cómo se puede usar para extender @code{udev-service-type} con la regla  @code{%regla-ejemplo-udev} definida previamente."
 
 #. type: lisp
-#: doc/guix.texi:12858
+#: doc/guix.texi:15053
 #, no-wrap
 msgid ""
 "(operating-system\n"
 " ;; @dots{}\n"
 " (services\n"
-" (modify-services %desktop-services\n"
-"   (udev-service-type config =>\n"
-"     (udev-configuration (inherit config)\n"
-"      (rules (append (udev-configuration-rules config)\n"
-"                     (list %example-udev-rule))))))))\n"
+"   (cons (udev-rules-service 'usb-thing %example-udev-rule)\n"
+"         %desktop-services)))\n"
 msgstr ""
 "(operating-system\n"
 " ;; @dots{}\n"
 " (services\n"
-" (modify-services %desktop-services\n"
-"   (udev-service-type config =>\n"
-"     (udev-configuration (inherit config)\n"
-"      (rules (append (udev-configuration-rules config)\n"
-"                     (list %regla-ejemplo-udev))))))))\n"
+"   (cons (udev-rules-service 'usb-thing %regla-ejemplo-udev)\n"
+"         %desktop-services)))\n"
 
 #. type: deffn
-#: doc/guix.texi:12860
+#: doc/guix.texi:15056
 #, no-wrap
 msgid "{Scheme Procedure} file->udev-rule [@var{file-name} @var{file}]"
-msgstr "{Procedimiento Scheme} file->udev-rule [@var{nombre-fichero} @var{fichero}]"
+msgstr "{Procedimiento Scheme} file->udev-rule [@var{nombre-archivo} @var{archivo}]"
 
 #. type: deffn
-#: doc/guix.texi:12863
+#: doc/guix.texi:15059
 msgid "Return a udev file named @var{file-name} containing the rules defined within @var{file}, a file-like object."
-msgstr "Devuelve un fichero de udev con nombre @var{nombre-fichero} que contiene las reglas definidas en @var{fichero}, un objeto tipo-fichero."
+msgstr "Devuelve un archivo de udev con nombre @var{nombre-archivo} que contiene las reglas definidas en @var{archivo}, un objeto tipo-archivo."
 
 #. type: deffn
-#: doc/guix.texi:12865
+#: doc/guix.texi:15061
 msgid "The following example showcases how we can use an existing rule file."
-msgstr "El ejemplo siguiente muestra cómo podemos usar un fichero de reglas existente."
+msgstr "El ejemplo siguiente muestra cómo podemos usar un archivo de reglas existente."
 
 #. type: lisp
-#: doc/guix.texi:12870
+#: doc/guix.texi:15066
 #, no-wrap
 msgid ""
 "(use-modules (guix download)     ;for url-fetch\n"
@@ -24048,7 +27815,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:12881
+#: doc/guix.texi:15077
 #, no-wrap
 msgid ""
 "(define %android-udev-rules\n"
@@ -24074,17 +27841,17 @@ msgstr ""
 "        (base32 \"0lmmagpyb6xsq6zcr2w1cyx9qmjqmajkvrdbhjx32gqf1d9is003\"))))))\n"
 
 #. type: Plain text
-#: doc/guix.texi:12890
+#: doc/guix.texi:15086
 msgid "Additionally, Guix package definitions can be included in @var{rules} in order to extend the udev rules with the definitions found under their @file{lib/udev/rules.d} sub-directory.  In lieu of the previous @var{file->udev-rule} example, we could have used the @var{android-udev-rules} package which exists in Guix in the @code{(gnu packages android)} module."
 msgstr "Adicionalmente, las definiciones de paquete Gui pueden ser incluidas en @var{rules} para extender las reglas udev con las definiciones encontradas bajo su subdirectorio @file{lib/udev/rules.d}. En vez del ejemplo previo de @var{file->udev-rule}, podíamos haber usado el paquete @var{android-udev-rules} que existe en Guix en el módulo @code{(gnu packages android)}."
 
 #. type: Plain text
-#: doc/guix.texi:12899
-msgid "The following example shows how to use the @var{android-udev-rules} package so that the Android tool @command{adb} can detect devices without root privileges.  It also details how to create the @code{adbusers} group, which is required for the proper functioning of the rules defined within the @var{android-udev-rules} package.  To create such a group, we must define it both as part of the @var{supplementary-groups} of our @var{user-account} declaration, as well as in the @var{groups} field of the @var{operating-system} record."
-msgstr "El siguiente ejemplo muestra cómo usar el paquete @var{android-udev-rules} para que la herramienta de Android @command{adb} pueda detectar dispositivos sin privilegios de root. También detalla como crear el grupo @code{adbusers}, el cual se requiere para el funcionamiento correcto de las reglas definidas dentro del paquete @var{android-udev-rules}. Para crear tal grupo, debemos definirlo tanto como parte de @var{supplementary-groups} de la declaración de nuestra cuenta de usuaria @var{user-account}, así como en el campo @var{groups} del registro @var{operating-system}."
+#: doc/guix.texi:15095
+msgid "The following example shows how to use the @var{android-udev-rules} package so that the Android tool @command{adb} can detect devices without root privileges.  It also details how to create the @code{adbusers} group, which is required for the proper functioning of the rules defined within the @code{android-udev-rules} package.  To create such a group, we must define it both as part of the @code{supplementary-groups} of our @code{user-account} declaration, as well as in the @var{groups} of the @code{udev-rules-service} procedure."
+msgstr "El siguiente ejemplo muestra cómo usar el paquete @var{android-udev-rules} para que la herramienta de Android @command{adb} pueda detectar dispositivos sin privilegios de ``root''. También detalla como crear el grupo @code{adbusers}, el cual se requiere para el funcionamiento correcto de las reglas definidas dentro del paquete @code{android-udev-rules}. Para crear tal grupo, debemos definirlo tanto como parte de @var{supplementary-groups} de la declaración de nuestra cuenta de usuaria en @var{user-account}, así como en el parámetro @var{groups} del procedimiento @code{udev-rules-service}."
 
 #. type: lisp
-#: doc/guix.texi:12904
+#: doc/guix.texi:15100
 #, no-wrap
 msgid ""
 "(use-modules (gnu packages android)  ;for android-udev-rules\n"
@@ -24098,7 +27865,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:12912
+#: doc/guix.texi:15113
 #, no-wrap
 msgid ""
 "(operating-system\n"
@@ -24108,249 +27875,215 @@ msgid ""
 "                (supplementary-groups\n"
 "                 '(\"adbusers\"   ;for adb\n"
 "                   \"wheel\" \"netdev\" \"audio\" \"video\")))))\n"
-"\n"
+"  ;; @dots{}\n"
+"  (services\n"
+"    (cons (udev-rules-service 'android android-udev-rules\n"
+"                              #:groups '(\"adbusers\"))\n"
+"          %desktop-services)))\n"
 msgstr ""
 "(operating-system\n"
 "  ;; @dots{}\n"
 "  (users (cons (user-account\n"
 "                ;; @dots{}\n"
 "                (supplementary-groups\n"
-"                 '(\"adbusers\"   ;para adb\n"
+"                 '(\"adbusers\"   ;for adb\n"
 "                   \"wheel\" \"netdev\" \"audio\" \"video\")))))\n"
-"\n"
-
-#. type: lisp
-#: doc/guix.texi:12915
-#, no-wrap
-msgid ""
-"  (groups (cons (user-group (system? #t) (name \"adbusers\"))\n"
-"                %base-groups))\n"
-"\n"
-msgstr ""
-"  (groups (cons (user-group (system? #t) (name \"adbusers\"))\n"
-"                %base-groups))\n"
-"\n"
-
-#. type: lisp
-#: doc/guix.texi:12917
-#, no-wrap
-msgid ""
-"  ;; @dots{}\n"
-"\n"
-msgstr ""
 "  ;; @dots{}\n"
-"\n"
-
-#. type: lisp
-#: doc/guix.texi:12925
-#, no-wrap
-msgid ""
 "  (services\n"
-"   (modify-services %desktop-services\n"
-"     (udev-service-type\n"
-"      config =>\n"
-"      (udev-configuration (inherit config)\n"
-"                          (rules (cons android-udev-rules\n"
-"                                       (udev-configuration-rules config))))))))\n"
-msgstr ""
-"  (services\n"
-"   (modify-services %desktop-services\n"
-"     (udev-service-type\n"
-"      config =>\n"
-"      (udev-configuration (inherit config)\n"
-"                          (rules (cons android-udev-rules\n"
-"                                       (udev-configuration-rules config))))))))\n"
+"    (cons (udev-rules-service 'android android-udev-rules\n"
+"                              #:groups '(\"adbusers\"))\n"
+"          %desktop-services)))\n"
 
 #. type: defvr
-#: doc/guix.texi:12927
+#: doc/guix.texi:15115
 #, no-wrap
 msgid "{Scheme Variable} urandom-seed-service-type"
 msgstr "{Variable Scheme} urandom-seed-service-type"
 
 # FUZZY
 #. type: defvr
-#: doc/guix.texi:12932
-msgid "Save some entropy in @var{%random-seed-file} to seed @file{/dev/urandom} when rebooting.  It also tries to seed @file{/dev/urandom} from @file{/dev/hwrng} while booting, if @file{/dev/hwrng} exists and is readable."
-msgstr "Almacena alguna entropía en @var{%random-seed-file} para alimentar @file{/dev/urandom} cuando se reinicia. También intenta alimentar @file{/dev/urandom} con @file{/dev/hwrng} durante el arranque, si @file{/dev/hwrng} existe y se tienen permisos de lectura."
+#: doc/guix.texi:15120
+msgid "Save some entropy in @code{%random-seed-file} to seed @file{/dev/urandom} when rebooting.  It also tries to seed @file{/dev/urandom} from @file{/dev/hwrng} while booting, if @file{/dev/hwrng} exists and is readable."
+msgstr "Almacena alguna entropía en @code{%random-seed-file} para alimentar @file{/dev/urandom} cuando se reinicia. También intenta alimentar @file{/dev/urandom} con @file{/dev/hwrng} durante el arranque, si @file{/dev/hwrng} existe y se tienen permisos de lectura."
 
 #. type: defvr
-#: doc/guix.texi:12934
+#: doc/guix.texi:15122
 #, no-wrap
 msgid "{Scheme Variable} %random-seed-file"
 msgstr "{Variable Scheme} %random-seed-file"
 
 #. type: defvr
-#: doc/guix.texi:12938
+#: doc/guix.texi:15126
 msgid "This is the name of the file where some random bytes are saved by @var{urandom-seed-service} to seed @file{/dev/urandom} when rebooting.  It defaults to @file{/var/lib/random-seed}."
-msgstr "Es el nombre del fichero donde algunos bytes aleatorios son almacenados por el servicio @var{urandom-seed-service} para alimentar @file{/dev/urandom} durante el reinicio. Su valor predeterminado es @file{/var/lib/random-seed}."
+msgstr "Es el nombre del archivo donde algunos bytes aleatorios son almacenados por el servicio @var{urandom-seed-service} para alimentar @file{/dev/urandom} durante el reinicio. Su valor predeterminado es @file{/var/lib/random-seed}."
 
 #. type: cindex
-#: doc/guix.texi:12940
+#: doc/guix.texi:15128
 #, no-wrap
 msgid "mouse"
 msgstr "ratón"
 
 #. type: cindex
-#: doc/guix.texi:12941
+#: doc/guix.texi:15129
 #, no-wrap
 msgid "gpm"
 msgstr "gpm"
 
 #. type: defvr
-#: doc/guix.texi:12942
+#: doc/guix.texi:15130
 #, no-wrap
 msgid "{Scheme Variable} gpm-service-type"
 msgstr "{Variable Scheme} gpm-service-type"
 
 # FUZZY
 #. type: defvr
-#: doc/guix.texi:12947
+#: doc/guix.texi:15135
 msgid "This is the type of the service that runs GPM, the @dfn{general-purpose mouse daemon}, which provides mouse support to the Linux console.  GPM allows users to use the mouse in the console, notably to select, copy, and paste text."
 msgstr "Este es el tipo de servicio que ejecuta GPM, el @dfn{daemon de ratón de propósito general}, que permite el uso del ratón en la consola Linux. GPM permite a las usuarias el uso del ratón en la consola, notablemente la selección, copia y pegado de texto."
 
 #. type: defvr
-#: doc/guix.texi:12950
+#: doc/guix.texi:15138
 msgid "The value for services of this type must be a @code{gpm-configuration} (see below).  This service is not part of @code{%base-services}."
 msgstr "El valor para servicios de este tipo debe ser un objeto @code{gpm-configuration} (véase a continuación). Este servicio no es parte de @code{%base-services}."
 
 #. type: deftp
-#: doc/guix.texi:12952
+#: doc/guix.texi:15140
 #, no-wrap
 msgid "{Data Type} gpm-configuration"
 msgstr "{Tipo de datos} gpm-configuration"
 
 #. type: deftp
-#: doc/guix.texi:12954
+#: doc/guix.texi:15142
 msgid "Data type representing the configuration of GPM."
 msgstr "Tipo de datos que representa la configuración de GPM."
 
 #. type: item
-#: doc/guix.texi:12956
+#: doc/guix.texi:15144
 #, no-wrap
 msgid "@code{options} (default: @code{%default-gpm-options})"
 msgstr "@code{opciones} (predeterminadas: @code{%default-gpm-options})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:12961
+#: doc/guix.texi:15149
 msgid "Command-line options passed to @command{gpm}.  The default set of options instruct @command{gpm} to listen to mouse events on @file{/dev/input/mice}.  @xref{Command Line,,, gpm, gpm manual}, for more information."
 msgstr "Opciones de línea de órdenes proporcionadas a @command{gpm}. El conjunto predeterminado de opciones instruye a @command{gpm} para esperar eventos de ratón en @file{/dev/input/mice}. @xref{Command Line,,, gpm, gpm manual}, para más información."
 
 #. type: item
-#: doc/guix.texi:12962
+#: doc/guix.texi:15150
 #, no-wrap
 msgid "@code{gpm} (default: @code{gpm})"
 msgstr "@code{gpm} (predeterminado: @code{gpm})"
 
 #. type: table
-#: doc/guix.texi:12964
+#: doc/guix.texi:15152
 msgid "The GPM package to use."
 msgstr "El paquete GPM usado."
 
 #. type: anchor{#1}
-#: doc/guix.texi:12969
+#: doc/guix.texi:15157
 msgid "guix-publish-service-type"
 msgstr "guix-publish-service-type"
 
 #. type: deffn
-#: doc/guix.texi:12969
+#: doc/guix.texi:15157
 #, no-wrap
 msgid "{Scheme Variable} guix-publish-service-type"
 msgstr "{Variable Scheme} guix-publish-service-type"
 
 #. type: deffn
-#: doc/guix.texi:12973
+#: doc/guix.texi:15161
 msgid "This is the service type for @command{guix publish} (@pxref{Invoking guix publish}).  Its value must be a @code{guix-publish-configuration} object, as described below."
 msgstr "Este es el tipo de servicio para @command{guix publish} (@pxref{Invoking guix publish}). Su valor debe ser un objeto @code{guix-publish-configuration}, como se describe a continuación."
 
 # FUZZY
 #. type: deffn
-#: doc/guix.texi:12977
+#: doc/guix.texi:15165
 msgid "This assumes that @file{/etc/guix} already contains a signing key pair as created by @command{guix archive --generate-key} (@pxref{Invoking guix archive}).  If that is not the case, the service will fail to start."
 msgstr "Se asume que @file{/etc/guix} ya contiene el par de claves de firma como @command{guix archive --generate-key} lo crea (@pxref{Invoking guix archive}). Si no es el caso, el servicio fallará al arrancar."
 
 #. type: deftp
-#: doc/guix.texi:12979
+#: doc/guix.texi:15167
 #, no-wrap
 msgid "{Data Type} guix-publish-configuration"
 msgstr "{Tipo de datos} guix-publish-configuration"
 
 #. type: deftp
-#: doc/guix.texi:12982
+#: doc/guix.texi:15170
 msgid "Data type representing the configuration of the @code{guix publish} service."
 msgstr "Tipo de datos que representa la configuración del servicio @code{guix publish}."
 
 #. type: item
-#: doc/guix.texi:12984
+#: doc/guix.texi:15172
 #, no-wrap
 msgid "@code{guix} (default: @code{guix})"
 msgstr "@code{guix} (predeterminado: @code{guix})"
 
 #. type: item
-#: doc/guix.texi:12987
+#: doc/guix.texi:15175 doc/guix.texi:27637
 #, no-wrap
 msgid "@code{port} (default: @code{80})"
 msgstr "@code{port} (predeterminado: @code{80})"
 
 #. type: table
-#: doc/guix.texi:12989
+#: doc/guix.texi:15177
 msgid "The TCP port to listen for connections."
 msgstr "El puerto TCP en el que se esperan conexiones."
 
 #. type: item
-#: doc/guix.texi:12990 doc/guix.texi:22556
+#: doc/guix.texi:15178 doc/guix.texi:25416
 #, no-wrap
 msgid "@code{host} (default: @code{\"localhost\"})"
 msgstr "@code{host} (predeterminado: @code{\"localhost\"})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:12993
+#: doc/guix.texi:15181
 msgid "The host (and thus, network interface) to listen to.  Use @code{\"0.0.0.0\"} to listen on all the network interfaces."
 msgstr "La dirección de red (y, por tanto, la interfaz de red) en la que se esperarán conexiones. Use @code{\"0.0.0.0\"} para aceptar conexiones por todas las interfaces de red."
 
 #. type: item
-#: doc/guix.texi:12994
+#: doc/guix.texi:15182
 #, no-wrap
 msgid "@code{compression} (default: @code{'((\"gzip\" 3))})"
 msgstr "@code{compression} (predeterminada: @code{'((\"gzip\" 3))})"
 
 #. type: table
-#: doc/guix.texi:12998
+#: doc/guix.texi:15186
 msgid "This is a list of compression method/level tuple used when compressing substitutes.  For example, to compress all substitutes with @emph{both} lzip at level 7 and gzip at level 9, write:"
 msgstr "Es una lista de tuplas método de compresión/nivel usadas para la compresión de sustituciones. Por ejemplo, para comprimir todas las sustituciones @emph{tanto con} lzip a nivel 8 @emph{como con} gzip a nivel 9, escriba:"
 
 #. type: lisp
-#: doc/guix.texi:13001
+#: doc/guix.texi:15189
 #, no-wrap
 msgid "'((\"lzip\" 7) (\"gzip\" 9))\n"
 msgstr "'((\"lzip\" 7) (\"gzip\" 9))\n"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:13005
+#: doc/guix.texi:15193
 msgid "Level 9 achieves the best compression ratio at the expense of increased CPU usage, whereas level 1 achieves fast compression."
 msgstr "El nivel 9 obtiene la mejor relación de compresión con un incremento en el uso del procesador, mientras que el nivel 1 realiza la compresión rápido."
 
 #. type: table
-#: doc/guix.texi:13007
+#: doc/guix.texi:15195
 msgid "An empty list disables compression altogether."
 msgstr "Una lista vacía desactiva completamente la compresión."
 
 #. type: item
-#: doc/guix.texi:13008
+#: doc/guix.texi:15196
 #, no-wrap
 msgid "@code{nar-path} (default: @code{\"nar\"})"
 msgstr "@code{nar-path} (predeterminado: @code{\"nar\"})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:13011
-msgid "The URL path at which ``nars'' can be fetched.  @xref{Invoking guix publish, @code{--nar-path}}, for details."
-msgstr "La ruta URL desde la que se pueden obtener ``nars''. @xref{Invoking guix publish, @code{--nar-path}}, para más detalles."
+#: doc/guix.texi:15199
+msgid "The URL path at which ``nars'' can be fetched.  @xref{Invoking guix publish, @option{--nar-path}}, for details."
+msgstr "La ruta URL de la que se pueden obtener ``nars''. @xref{Invoking guix publish, @option{--nar-path}}, para más detalles."
 
 #. type: item
-#: doc/guix.texi:13012
+#: doc/guix.texi:15200
 #, no-wrap
 msgid "@code{cache} (default: @code{#f})"
 msgstr "@code{cache} (predeterminado: @code{#f})"
@@ -24358,104 +28091,116 @@ msgstr "@code{cache} (predeterminado: @code{#f})"
 # FUZZY
 # TODO (MAAV): Tradeoff
 #. type: table
-#: doc/guix.texi:13018
+#: doc/guix.texi:15206
 msgid "When it is @code{#f}, disable caching and instead generate archives on demand.  Otherwise, this should be the name of a directory---e.g., @code{\"/var/cache/guix/publish\"}---where @command{guix publish} caches archives and meta-data ready to be sent.  @xref{Invoking guix publish, @option{--cache}}, for more information on the tradeoffs involved."
 msgstr "Cuando es @code{#f}, desactiva la caché y genera los archivos bajo demanda. De otro modo, debería ser el nombre de un directorio---por ejemplo, @code{\"/var/cache/guix/publish\"}---donde @command{guix pubish} almacena los archivos y metadatos en caché listos para ser enviados. @xref{Invoking guix publish, @option{--cache}}, para más información sobre sus ventajas e inconvenientes."
 
 #. type: item
-#: doc/guix.texi:13019
+#: doc/guix.texi:15207
 #, no-wrap
 msgid "@code{workers} (default: @code{#f})"
 msgstr "@code{workers} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:13023
+#: doc/guix.texi:15211
 msgid "When it is an integer, this is the number of worker threads used for caching; when @code{#f}, the number of processors is used.  @xref{Invoking guix publish, @option{--workers}}, for more information."
 msgstr "Cuando es un entero, es el número de hilos de trabajo usados para la caché; cuando es @code{#f}, se usa el número de procesadores. @xref{Invoking guix publish, @option{--workers}}, para más información."
 
 #. type: item
-#: doc/guix.texi:13024
+#: doc/guix.texi:15212
+#, no-wrap
+msgid "@code{cache-bypass-threshold} (default: 10 MiB)"
+msgstr "@code{cache-bypass-threshold} (predeterminado: 10 MiB)"
+
+# FUZZY FUZZY
+#. type: table
+#: doc/guix.texi:15217
+msgid "When @code{cache} is true, this is the maximum size in bytes of a store item for which @command{guix publish} may bypass its cache in case of a cache miss.  @xref{Invoking guix publish, @option{--cache-bypass-threshold}}, for more information."
+msgstr "Cuando @code{cache} es verdadero, su valor indica el tamaño máximo en bytes de un elemento del almacén hasta el cual @command{guix publish} puede ignorar un fallo de caché y realizar la petición directamente.  @xref{Invoking guix publish, @option{--cache-bypass-threshold}} para obtener más información."
+
+#. type: item
+#: doc/guix.texi:15218
 #, no-wrap
 msgid "@code{ttl} (default: @code{#f})"
 msgstr "@code{ttl} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:13028
+#: doc/guix.texi:15222
 msgid "When it is an integer, this denotes the @dfn{time-to-live} in seconds of the published archives.  @xref{Invoking guix publish, @option{--ttl}}, for more information."
 msgstr "Cuando es un entero, denota el @dfn{tiempo de vida} en segundos de los archivos publicados. @xref{Invoking guix publish, @option{--ttl}}, para más información."
 
 #. type: anchor{#1}
-#: doc/guix.texi:13032
+#: doc/guix.texi:15226
 msgid "rngd-service"
 msgstr "rngd-service"
 
 #. type: deffn
-#: doc/guix.texi:13032
+#: doc/guix.texi:15226
 #, no-wrap
 msgid "{Scheme Procedure} rngd-service [#:rng-tools @var{rng-tools}] @"
 msgstr "{Procedimiento Scheme} rngd-service [#:rng-tools @var{rng-tools}] @"
 
 # FUZZY
 #. type: deffn
-#: doc/guix.texi:13037
+#: doc/guix.texi:15231
 msgid "[#:device \"/dev/hwrng\"] Return a service that runs the @command{rngd} program from @var{rng-tools} to add @var{device} to the kernel's entropy pool.  The service will fail if @var{device} does not exist."
 msgstr ""
 "[#:device \"/dev/hwrng\"]\n"
 "Devuelve un servicio que ejecuta el programa @command{rngd} de @var{rng-tools} para añadir @var{device} a la fuente de entropía del núcleo. El servicio emitirá un fallo si @var{device} no existe."
 
 #. type: anchor{#1}
-#: doc/guix.texi:13040
+#: doc/guix.texi:15234
 msgid "pam-limits-service"
 msgstr "pam-limits-service"
 
 #. type: cindex
-#: doc/guix.texi:13040
+#: doc/guix.texi:15234
 #, no-wrap
 msgid "session limits"
 msgstr "límites por sesión"
 
 #. type: cindex
-#: doc/guix.texi:13041
+#: doc/guix.texi:15235
 #, no-wrap
 msgid "ulimit"
 msgstr "ulimit"
 
 #. type: cindex
-#: doc/guix.texi:13042
+#: doc/guix.texi:15236
 #, no-wrap
 msgid "priority"
 msgstr "prioridad"
 
 #. type: cindex
-#: doc/guix.texi:13043
+#: doc/guix.texi:15237
 #, no-wrap
 msgid "realtime"
 msgstr "tiempo real"
 
 #. type: cindex
-#: doc/guix.texi:13044
+#: doc/guix.texi:15238
 #, no-wrap
 msgid "jackd"
 msgstr "jackd"
 
 #. type: deffn
-#: doc/guix.texi:13045
+#: doc/guix.texi:15239
 #, no-wrap
 msgid "{Scheme Procedure} pam-limits-service [#:limits @code{'()}]"
 msgstr "{Procedimiento Scheme} pam-limits-service [#:limits @code{'()}]"
 
 #. type: deffn
-#: doc/guix.texi:13052
+#: doc/guix.texi:15246
 msgid "Return a service that installs a configuration file for the @uref{http://linux-pam.org/Linux-PAM-html/sag-pam_limits.html, @code{pam_limits} module}.  The procedure optionally takes a list of @code{pam-limits-entry} values, which can be used to specify @code{ulimit} limits and nice priority limits to user sessions."
-msgstr "Devuelve un servicio que instala un fichero de configuración para el @uref{http://linux-pam.org/Linux-PAM-html/sag-pam_limits.html, módulo @code{pam_limits}}. El procedimiento toma de manera opcional una lista de valores @code{pam-limits-entry}, que se pueden usar para especificar límites @code{ulimit} y limites de prioridad ``nice'' para sesiones de usuaria."
+msgstr "Devuelve un servicio que instala un archivo de configuración para el @uref{http://linux-pam.org/Linux-PAM-html/sag-pam_limits.html, módulo @code{pam_limits}}. El procedimiento toma de manera opcional una lista de valores @code{pam-limits-entry}, que se pueden usar para especificar límites @code{ulimit} y limites de prioridad ``nice'' para sesiones de usuaria."
 
 #. type: deffn
-#: doc/guix.texi:13055
+#: doc/guix.texi:15249
 msgid "The following limits definition sets two hard and soft limits for all login sessions of users in the @code{realtime} group:"
 msgstr "Las siguientes definiciones de límites establecen dos límites ``hard'' y ``soft'' para todas las sesiones de ingreso al sistema de usuarias pertenecientes al grupo @code{realtime}:"
 
 #. type: lisp
-#: doc/guix.texi:13061
+#: doc/guix.texi:15255
 #, no-wrap
 msgid ""
 "(pam-limits-service\n"
@@ -24470,40 +28215,40 @@ msgstr ""
 
 # FUZZY
 #. type: deffn
-#: doc/guix.texi:13067
+#: doc/guix.texi:15261
 msgid "The first entry increases the maximum realtime priority for non-privileged processes; the second entry lifts any restriction of the maximum address space that can be locked in memory.  These settings are commonly used for real-time audio systems."
 msgstr "La primera entrada incrementa la prioridad máxima de tiempo real para procesos sin privilegios; la segunda entrada elimina cualquier restricción sobre el espacio de direcciones que puede bloquearse en memoria. Estas configuraciones se usan habitualmente para sistemas de sonido en tiempo real."
 
 #. type: cindex
-#: doc/guix.texi:13072
+#: doc/guix.texi:15266
 #, no-wrap
 msgid "cron"
 msgstr "cron"
 
 #. type: cindex
-#: doc/guix.texi:13073
+#: doc/guix.texi:15267
 #, no-wrap
 msgid "mcron"
 msgstr "mcron"
 
 #. type: cindex
-#: doc/guix.texi:13074
+#: doc/guix.texi:15268
 #, no-wrap
 msgid "scheduling jobs"
 msgstr "planificación de trabajos"
 
 #. type: Plain text
-#: doc/guix.texi:13081
+#: doc/guix.texi:15275
 msgid "The @code{(gnu services mcron)} module provides an interface to GNU@tie{}mcron, a daemon to run jobs at scheduled times (@pxref{Top,,, mcron, GNU@tie{}mcron}).  GNU@tie{}mcron is similar to the traditional Unix @command{cron} daemon; the main difference is that it is implemented in Guile Scheme, which provides a lot of flexibility when specifying the scheduling of jobs and their actions."
 msgstr "El módulo @code{(gnu services mcron)} proporciona una interfaz a GNU@tie{}mcron, un daemon para ejecutar trabajos planificados de antemano (@pxref{Top,,, mcron, GNU@tie{}mcron}). GNU@tie{}mcron es similar al daemon tradicional de Unix @command{cron}; la principal diferencia es que está implementado en Scheme Guile, que proporciona mucha flexibilidad cuando se especifica la planificación de trabajos y sus acciones."
 
 #. type: Plain text
-#: doc/guix.texi:13089
+#: doc/guix.texi:15283
 msgid "The example below defines an operating system that runs the @command{updatedb} (@pxref{Invoking updatedb,,, find, Finding Files})  and the @command{guix gc} commands (@pxref{Invoking guix gc}) daily, as well as the @command{mkid} command on behalf of an unprivileged user (@pxref{mkid invocation,,, idutils, ID Database Utilities}).  It uses gexps to introduce job definitions that are passed to mcron (@pxref{G-Expressions})."
 msgstr "El siguiente ejemplo define un sistema operativo que ejecuta las órdenes @command{updatedb} (@pxref{Invoking updatedb,,, find, Finding Files}) y @command{guix gc} (@pxref{Invoking guix gc}) de manera diaria, así como la orden @command{mkid} como una usuaria sin privilegios (@pxref{mkid invocation,,, idutils, ID Database Utilitites}). Usa expresiones-g para introducir definiciones de trabajos que serán proporcionados a mcron (@pxref{G-Expressions})."
 
 #. type: lisp
-#: doc/guix.texi:13093
+#: doc/guix.texi:15287
 #, no-wrap
 msgid ""
 "(use-modules (guix) (gnu) (gnu services mcron))\n"
@@ -24515,7 +28260,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:13102
+#: doc/guix.texi:15296
 #, no-wrap
 msgid ""
 "(define updatedb-job\n"
@@ -24539,7 +28284,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:13108
+#: doc/guix.texi:15302
 #, no-wrap
 msgid ""
 "(define garbage-collector-job\n"
@@ -24558,7 +28303,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:13115
+#: doc/guix.texi:15309
 #, no-wrap
 msgid ""
 "(define idutils-job\n"
@@ -24578,7 +28323,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:13124
+#: doc/guix.texi:15318
 #, no-wrap
 msgid ""
 "(operating-system\n"
@@ -24600,13 +28345,13 @@ msgstr ""
 "                  %base-services)))\n"
 
 #. type: Plain text
-#: doc/guix.texi:13131
+#: doc/guix.texi:15325
 msgid "For more complex jobs defined in Scheme where you need control over the top level, for instance to introduce a @code{use-modules} form, you can move your code to a separate program using the @code{program-file} procedure of the @code{(guix gexp)} module (@pxref{G-Expressions}).  The example below illustrates that."
 msgstr "Para trabajos más complejos definidos en Scheme donde necesita control en el ámbito global, por ejemplo para introducir una forma @code{use-modules}, puede mover su código a un programa separado usando el procedimiento @code{program-file} del módulo @code{(guix gexp)} (@pxref{G-Expressions}). El siguiente ejemplo ilustra este caso."
 
 # CHECK
 #. type: lisp
-#: doc/guix.texi:13158
+#: doc/guix.texi:15341
 #, no-wrap
 msgid ""
 "(define %battery-alert-job\n"
@@ -24618,22 +28363,12 @@ msgid ""
 "        (with-imported-modules (source-module-closure\n"
 "                                '((guix build utils)))\n"
 "          #~(begin\n"
-"              (define %min-level 20)\n"
 "              (use-modules (guix build utils)\n"
 "                           (ice-9 popen)\n"
 "                           (ice-9 regex)\n"
 "                           (ice-9 textual-ports)\n"
 "                           (srfi srfi-2))\n"
-"              (setenv \"LC_ALL\" \"C\")     ;ensure English output\n"
-"              (and-let* ((input-pipe (open-pipe*\n"
-"                                      OPEN_READ\n"
-"                                      #$(file-append acpi \"/bin/acpi\")))\n"
-"                         (output (get-string-all input-pipe))\n"
-"                         (m (string-match \"Discharging, ([0-9]+)%\" output))\n"
-"                         (level (string->number (match:substring m 1)))\n"
-"                         ((< level %min-level)))\n"
-"                (format #t \"warning: Battery level is low (~a%)~%\" level)\n"
-"                (invoke #$(file-append beep \"/bin/beep\") \"-r5\")))))))\n"
+"\n"
 msgstr ""
 "(define %tarea-alerta-bateria\n"
 "  ;; Pita cuando la carga de la batería es inferior a %CARGA-MIN\n"
@@ -24644,12 +28379,38 @@ msgstr ""
 "        (with-imported-modules (source-module-closure\n"
 "                                '((guix build utils)))\n"
 "          #~(begin\n"
-"              (define %carga-min 20)\n"
 "              (use-modules (guix build utils)\n"
 "                           (ice-9 popen)\n"
 "                           (ice-9 regex)\n"
 "                           (ice-9 textual-ports)\n"
 "                           (srfi srfi-2))\n"
+
+#. type: lisp
+#: doc/guix.texi:15343
+#, no-wrap
+msgid ""
+"              (define %min-level 20)\n"
+"\n"
+msgstr ""
+"              (define %carga-min 20)\n"
+"\n"
+
+# CHECK
+#. type: lisp
+#: doc/guix.texi:15354
+#, no-wrap
+msgid ""
+"              (setenv \"LC_ALL\" \"C\")     ;ensure English output\n"
+"              (and-let* ((input-pipe (open-pipe*\n"
+"                                      OPEN_READ\n"
+"                                      #$(file-append acpi \"/bin/acpi\")))\n"
+"                         (output (get-string-all input-pipe))\n"
+"                         (m (string-match \"Discharging, ([0-9]+)%\" output))\n"
+"                         (level (string->number (match:substring m 1)))\n"
+"                         ((< level %min-level)))\n"
+"                (format #t \"warning: Battery level is low (~a%)~%\" level)\n"
+"                (invoke #$(file-append beep \"/bin/beep\") \"-r5\")))))))\n"
+msgstr ""
 "              (setenv \"LC_ALL\" \"C\")     ;Procesado de cadenas en inglés\n"
 "              (and-let* ((entrada (open-pipe*\n"
 "                                   OPEN_READ\n"
@@ -24664,106 +28425,106 @@ msgstr ""
 "                (invoke #$(file-append beep \"/bin/beep\") \"-r5\")))))))\n"
 
 #. type: Plain text
-#: doc/guix.texi:13163
+#: doc/guix.texi:15359
 msgid "@xref{Guile Syntax, mcron job specifications,, mcron, GNU@tie{}mcron}, for more information on mcron job specifications.  Below is the reference of the mcron service."
 msgstr "@xref{Guile Syntax, mcron job specifications,, mcron, GNU@tie{}mcron}, para más información sobre las especificaciones de trabajos de mcron. A continuación se encuentra la referencia del servicio mcron."
 
 #. type: Plain text
-#: doc/guix.texi:13166
+#: doc/guix.texi:15362
 msgid "On a running system, you can use the @code{schedule} action of the service to visualize the mcron jobs that will be executed next:"
 msgstr "En un sistema en ejecución puede usar la acción @code{schedule} del servicio para visualizar los siguientes trabajos mcron que se ejecutarán:"
 
 #. type: example
-#: doc/guix.texi:13169
+#: doc/guix.texi:15365
 #, no-wrap
 msgid "# herd schedule mcron\n"
 msgstr "# herd schedule mcron\n"
 
 #. type: Plain text
-#: doc/guix.texi:13174
+#: doc/guix.texi:15370
 msgid "The example above lists the next five tasks that will be executed, but you can also specify the number of tasks to display:"
 msgstr "El ejemplo previo enumera las siguientes cinco tareas que se ejecutarán, pero también puede especificar el número de tareas a mostrar:"
 
 #. type: example
-#: doc/guix.texi:13177
+#: doc/guix.texi:15373
 #, no-wrap
 msgid "# herd schedule mcron 10\n"
 msgstr "# herd schedule mcron 10\n"
 
 #. type: defvr
-#: doc/guix.texi:13179
+#: doc/guix.texi:15375
 #, no-wrap
 msgid "{Scheme Variable} mcron-service-type"
 msgstr "{Variable Scheme} mcron-service-type"
 
 #. type: defvr
-#: doc/guix.texi:13182
+#: doc/guix.texi:15378
 msgid "This is the type of the @code{mcron} service, whose value is an @code{mcron-configuration} object."
 msgstr "Este es el tipo del servicio @code{mcron}, cuyo valor es un objeto @code{mcron-configuration}."
 
 #. type: defvr
-#: doc/guix.texi:13187
+#: doc/guix.texi:15383
 msgid "This service type can be the target of a service extension that provides it additional job specifications (@pxref{Service Composition}).  In other words, it is possible to define services that provide additional mcron jobs to run."
 msgstr "Este tipo de servicio puede ser objeto de una extensión de servicio que le proporciona especificaciones de trabajo adicionales (@pxref{Service Composition}). En otras palabras, es posible definir servicios que proporcionen trabajos mcron adicionales para su ejecución."
 
 #. type: deftp
-#: doc/guix.texi:13189
+#: doc/guix.texi:15385
 #, no-wrap
 msgid "{Data Type} mcron-configuration"
 msgstr "{Tipo de datos} mcron-configuration"
 
 #. type: deftp
-#: doc/guix.texi:13191
+#: doc/guix.texi:15387
 msgid "Data type representing the configuration of mcron."
 msgstr "Tipo de datos que representa la configuración de mcron."
 
 #. type: item
-#: doc/guix.texi:13193
+#: doc/guix.texi:15389
 #, no-wrap
 msgid "@code{mcron} (default: @var{mcron})"
 msgstr "@code{mcron} (predeterminado: @var{mcron})"
 
 #. type: table
-#: doc/guix.texi:13195
+#: doc/guix.texi:15391
 msgid "The mcron package to use."
 msgstr "El paquete mcron usado."
 
 #. type: code{#1}
-#: doc/guix.texi:13196 doc/guix.texi:13265
+#: doc/guix.texi:15392 doc/guix.texi:15461
 #, no-wrap
 msgid "jobs"
 msgstr "jobs"
 
 #. type: table
-#: doc/guix.texi:13200
+#: doc/guix.texi:15396
 msgid "This is a list of gexps (@pxref{G-Expressions}), where each gexp corresponds to an mcron job specification (@pxref{Syntax, mcron job specifications,, mcron, GNU@tie{}mcron})."
 msgstr "Es una lista de expresiones-G (@pxref{G-Expressions}), donde cada expresión-G corresponde a una especificación de trabajo de mcron (@pxref{Syntax, mcron job specifications,, mcron, GNU@tie{}mcron})."
 
 #. type: cindex
-#: doc/guix.texi:13207
+#: doc/guix.texi:15403
 #, no-wrap
 msgid "rottlog"
 msgstr "rottlog"
 
 # TODO: (MAAV) Comprobar otras traducciones.
 #. type: cindex
-#: doc/guix.texi:13208
+#: doc/guix.texi:15404
 #, no-wrap
 msgid "log rotation"
 msgstr "rotación de logs"
 
 #. type: Plain text
-#: doc/guix.texi:13215
+#: doc/guix.texi:15411
 msgid "Log files such as those found in @file{/var/log} tend to grow endlessly, so it's a good idea to @dfn{rotate} them once in a while---i.e., archive their contents in separate files, possibly compressed.  The @code{(gnu services admin)} module provides an interface to GNU@tie{}Rot[t]log, a log rotation tool (@pxref{Top,,, rottlog, GNU Rot[t]log Manual})."
-msgstr "Los ficheros de registro como los encontrados en @file{/var/log} tienden a crecer indefinidamente, de modo que es buena idea @dfn{llevar a cabo una rotación} de vez en cuando---es decir, archivar su contenido en ficheros distintos, posiblemente comprimidos. El módulo @code{(gnu services admin)} proporciona una interfaz con GNU@tie{}Rot[t]log, una herramienta de rotación de registros (@pxref{Top,,, rottlog, GNU Rot[t]log Manual})."
+msgstr "Los archivos de registro como los encontrados en @file{/var/log} tienden a crecer indefinidamente, de modo que es buena idea @dfn{llevar a cabo una rotación} de vez en cuando---es decir, archivar su contenido en archivos distintos, posiblemente comprimidos. El módulo @code{(gnu services admin)} proporciona una interfaz con GNU@tie{}Rot[t]log, una herramienta de rotación de registros (@pxref{Top,,, rottlog, GNU Rot[t]log Manual})."
 
 #. type: Plain text
-#: doc/guix.texi:13221
+#: doc/guix.texi:15417
 msgid "This service is part of @code{%base-services}, and thus enabled by default, with the default settings, for commonly encountered log files.  The example below shows how to extend it with an additional @dfn{rotation}, should you need to do that (usually, services that produce log files already take care of that):"
-msgstr "Este servicio es parte de @code{%base-services}, y por lo tanto se activa de manera predeterminada, con la configuración predeterminada, para ficheros de registro que se pueden encontrar habitualmente. El siguiente ejemplo muestra como extenderlo con una @dfn{rotación} adicional, en caso de que deba hacerlo (habitualmente los servicios que producen ficheros de registro ya lo hacen ellos mismos):"
+msgstr "Este servicio es parte de @code{%base-services}, y por lo tanto se activa de manera predeterminada, con la configuración predeterminada, para archivos de registro que se pueden encontrar habitualmente. El siguiente ejemplo muestra como extenderlo con una @dfn{rotación} adicional, en caso de que deba hacerlo (habitualmente los servicios que producen archivos de registro ya lo hacen ellos mismos):"
 
 #. type: lisp
-#: doc/guix.texi:13225
+#: doc/guix.texi:15421
 #, no-wrap
 msgid ""
 "(use-modules (guix) (gnu))\n"
@@ -24775,7 +28536,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:13229
+#: doc/guix.texi:15425
 #, no-wrap
 msgid ""
 "(define my-log-files\n"
@@ -24783,13 +28544,13 @@ msgid ""
 "  '(\"/var/log/something.log\" \"/var/log/another.log\"))\n"
 "\n"
 msgstr ""
-"(define mis-ficheros-de-registro\n"
-"  ;; Ficheros que deseo rotar.\n"
-"  '(\"/var/log/un-fichero.log\" \"/var/log/otro.log\"))\n"
+"(define mis-archivos-de-registro\n"
+"  ;; Archivos que deseo rotar.\n"
+"  '(\"/var/log/un-archivo.log\" \"/var/log/otro.log\"))\n"
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:13238
+#: doc/guix.texi:15434
 #, no-wrap
 msgid ""
 "(operating-system\n"
@@ -24807,98 +28568,98 @@ msgstr ""
 "                                  rottlog-service-type\n"
 "                                  (list (log-rotation\n"
 "                                         (frequency 'daily)\n"
-"                                         (files mis-ficheros-de-registro))))\n"
+"                                         (files mis-archivos-de-registro))))\n"
 "                  %base-services)))\n"
 
 #. type: defvr
-#: doc/guix.texi:13240
+#: doc/guix.texi:15436
 #, no-wrap
 msgid "{Scheme Variable} rottlog-service-type"
 msgstr "{Variable Scheme} rottlog-service-type"
 
 #. type: defvr
-#: doc/guix.texi:13243
+#: doc/guix.texi:15439
 msgid "This is the type of the Rottlog service, whose value is a @code{rottlog-configuration} object."
 msgstr "Este es el tipo del servicio Rottlog, cuyo valor es un objeto @code{rottlog-configuration}."
 
 #. type: defvr
-#: doc/guix.texi:13246
+#: doc/guix.texi:15442
 msgid "Other services can extend this one with new @code{log-rotation} objects (see below), thereby augmenting the set of files to be rotated."
-msgstr "Otros servicios pueden extenderlo con nuevos objetos @code{log-rotation} (véase a continuación), aumentando de dicho modo el conjunto de ficheros a rotar."
+msgstr "Otros servicios pueden extenderlo con nuevos objetos @code{log-rotation} (véase a continuación), aumentando de dicho modo el conjunto de archivos a rotar."
 
 #. type: defvr
-#: doc/guix.texi:13249
+#: doc/guix.texi:15445
 msgid "This service type can define mcron jobs (@pxref{Scheduled Job Execution}) to run the rottlog service."
 msgstr "Este servicio puede definir trabajos de mcron (@pxref{Scheduled Job Execution}) para ejecutar el servicio rottlog."
 
 #. type: deftp
-#: doc/guix.texi:13251
+#: doc/guix.texi:15447
 #, no-wrap
 msgid "{Data Type} rottlog-configuration"
 msgstr "{Tipo de datos} rottlog-configuration"
 
 #. type: deftp
-#: doc/guix.texi:13253
+#: doc/guix.texi:15449
 msgid "Data type representing the configuration of rottlog."
 msgstr "Tipo de datos que representa la configuración de rottlog."
 
 #. type: item
-#: doc/guix.texi:13255
+#: doc/guix.texi:15451
 #, no-wrap
 msgid "@code{rottlog} (default: @code{rottlog})"
 msgstr "@code{rottlog} (predeterminado: @code{rottlog})"
 
 #. type: table
-#: doc/guix.texi:13257
+#: doc/guix.texi:15453
 msgid "The Rottlog package to use."
 msgstr "El paquete Rottlog usado."
 
 #. type: item
-#: doc/guix.texi:13258
+#: doc/guix.texi:15454
 #, no-wrap
 msgid "@code{rc-file} (default: @code{(file-append rottlog \"/etc/rc\")})"
 msgstr "@code{rc-file} (predeterminado: @code{(file-append rottlog \"/etc/rc\")})"
 
 #. type: table
-#: doc/guix.texi:13261
+#: doc/guix.texi:15457
 msgid "The Rottlog configuration file to use (@pxref{Mandatory RC Variables,,, rottlog, GNU Rot[t]log Manual})."
-msgstr "El fichero de configuración de Rottlog usado (@pxref{Mandatory RC Variables,,, rottlog, GNU Rot[t]log Manual})."
+msgstr "El archivo de configuración de Rottlog usado (@pxref{Mandatory RC Variables,,, rottlog, GNU Rot[t]log Manual})."
 
 #. type: item
-#: doc/guix.texi:13262
+#: doc/guix.texi:15458
 #, no-wrap
 msgid "@code{rotations} (default: @code{%default-rotations})"
 msgstr "@code{rotations} (predeterminadas: @code{%default-rotations})"
 
 #. type: table
-#: doc/guix.texi:13264
+#: doc/guix.texi:15460
 msgid "A list of @code{log-rotation} objects as defined below."
 msgstr "Una lista de objetos @code{log-rotation} como se define a continuación."
 
 #. type: table
-#: doc/guix.texi:13268
+#: doc/guix.texi:15464
 msgid "This is a list of gexps where each gexp corresponds to an mcron job specification (@pxref{Scheduled Job Execution})."
 msgstr "Esta es una lista de expresiones-G donde cada expresión-G corresponde a una especificación de trabajo de mcron (@pxref{Scheduled Job Execution})."
 
 #. type: deftp
-#: doc/guix.texi:13271
+#: doc/guix.texi:15467
 #, no-wrap
 msgid "{Data Type} log-rotation"
 msgstr "{Tipo de datos} log-rotation"
 
 # FUZZY
 #. type: deftp
-#: doc/guix.texi:13273
+#: doc/guix.texi:15469
 msgid "Data type representing the rotation of a group of log files."
-msgstr "Tipo de datos que representa la rotación de un grupo de ficheros de log."
+msgstr "Tipo de datos que representa la rotación de un grupo de archivos de log."
 
 #. type: deftp
-#: doc/guix.texi:13277
+#: doc/guix.texi:15473
 msgid "Taking an example from the Rottlog manual (@pxref{Period Related File Examples,,, rottlog, GNU Rot[t]log Manual}), a log rotation might be defined like this:"
 msgstr "Tomando el ejemplo del manual de Rottlog (@pxref{Period Related File Examples,,, rottlog, GNU Rot[t]log Manual}), una rotación de registros se podría definir de esta manera:"
 
 #. type: lisp
-#: doc/guix.texi:13286
+#: doc/guix.texi:15482
 #, no-wrap
 msgid ""
 "(log-rotation\n"
@@ -24918,113 +28679,113 @@ msgstr ""
 "             \"nocompress\")))\n"
 
 #. type: deftp
-#: doc/guix.texi:13289
+#: doc/guix.texi:15485
 msgid "The list of fields is as follows:"
 msgstr "La lista de campos es como sigue:"
 
 #. type: item
-#: doc/guix.texi:13291
+#: doc/guix.texi:15487
 #, no-wrap
 msgid "@code{frequency} (default: @code{'weekly})"
 msgstr "@code{frequency} (predeterminada: @code{'weekly})"
 
 #. type: table
-#: doc/guix.texi:13293
+#: doc/guix.texi:15489
 msgid "The log rotation frequency, a symbol."
 msgstr "La frecuencia de rotación de logs, un símbolo."
 
 #. type: code{#1}
-#: doc/guix.texi:13294
+#: doc/guix.texi:15490
 #, no-wrap
 msgid "files"
 msgstr "files"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:13296
+#: doc/guix.texi:15492
 msgid "The list of files or file glob patterns to rotate."
-msgstr "La lista de ficheros o patrones extendidos de fichero a rotar."
+msgstr "La lista de archivos o patrones extendidos de archivo a rotar."
 
 #. type: item
-#: doc/guix.texi:13297
+#: doc/guix.texi:15493
 #, no-wrap
 msgid "@code{options} (default: @code{'()})"
 msgstr "@code{options} (predeterminadas: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:13300
+#: doc/guix.texi:15496
 msgid "The list of rottlog options for this rotation (@pxref{Configuration parameters,,, rottlog, GNU Rot[t]lg Manual})."
 msgstr "La lista de opciones de rottlog para esta rotación (@pxref{Configuration parameters,,, rottlog, GNU Rot[t]log Manual})."
 
 #. type: item
-#: doc/guix.texi:13301
+#: doc/guix.texi:15497
 #, no-wrap
 msgid "@code{post-rotate} (default: @code{#f})"
 msgstr "@code{post-rotate} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:13303
+#: doc/guix.texi:15499
 msgid "Either @code{#f} or a gexp to execute once the rotation has completed."
 msgstr "O bien @code{#f}, o bien una expresión-G que se ejecutará una vez la rotación se haya completado."
 
 #. type: defvr
-#: doc/guix.texi:13306
+#: doc/guix.texi:15502
 #, no-wrap
 msgid "{Scheme Variable} %default-rotations"
 msgstr "{Variable Scheme} %default-rotations"
 
 # FUZZY
 #. type: defvr
-#: doc/guix.texi:13309
-msgid "Specifies weekly rotation of @var{%rotated-files} and of @file{/var/log/guix-daemon.log}."
-msgstr "Especifica la rotación semanal de @var{%rotated-files} y de @file{/var/log/guix-daemon.log}."
+#: doc/guix.texi:15505
+msgid "Specifies weekly rotation of @code{%rotated-files} and of @file{/var/log/guix-daemon.log}."
+msgstr "Especifica la rotación semanal de @code{%rotated-files} y de @file{/var/log/guix-daemon.log}."
 
 #. type: defvr
-#: doc/guix.texi:13311
+#: doc/guix.texi:15507
 #, no-wrap
 msgid "{Scheme Variable} %rotated-files"
 msgstr "{Variable Scheme} %rotated-files"
 
 #. type: defvr
-#: doc/guix.texi:13315
+#: doc/guix.texi:15511
 msgid "The list of syslog-controlled files to be rotated.  By default it is: @code{'(\"/var/log/messages\" \"/var/log/secure\" \"/var/log/debug\" \\ \"/var/log/maillog\")}."
-msgstr "La lista de ficheros controlados por syslog que deben ser rotados. De manera predeterminada es @code{'(\"/var/log/messages\" \"/var/log/secure\" \"/var/log/maillog\")}."
+msgstr "La lista de archivos controlados por syslog que deben ser rotados. De manera predeterminada es @code{'(\"/var/log/messages\" \"/var/log/secure\" \"/var/log/maillog\")}."
 
 #. type: Plain text
-#: doc/guix.texi:13322
+#: doc/guix.texi:15518
 msgid "The @code{(gnu services networking)} module provides services to configure the network interface."
 msgstr "El módulo @code{(gnu services networking)} proporciona servicios para configurar la interfaz de red."
 
 #. type: cindex
-#: doc/guix.texi:13323
+#: doc/guix.texi:15519
 #, no-wrap
 msgid "DHCP, networking service"
 msgstr "DHCP, servicio de red"
 
 #. type: defvr
-#: doc/guix.texi:13324
+#: doc/guix.texi:15520
 #, no-wrap
 msgid "{Scheme Variable} dhcp-client-service-type"
 msgstr "{Variable Scheme} dhcp-client-service-type"
 
 #. type: defvr
-#: doc/guix.texi:13328
+#: doc/guix.texi:15524
 msgid "This is the type of services that run @var{dhcp}, a Dynamic Host Configuration Protocol (DHCP) client, on all the non-loopback network interfaces.  Its value is the DHCP client package to use, @code{isc-dhcp} by default."
 msgstr "Este es el tipo de los servicios que ejecutan @var{dhcp}, un cliente del protocolo de configuración dinámica de máquinas DHCP, en todas las interfaces de red no locales. Su valor es el paquete del cliente DHCP, @code{isc-dhcp} de manera predeterminada."
 
 #. type: deffn
-#: doc/guix.texi:13330
+#: doc/guix.texi:15526
 #, no-wrap
 msgid "{Scheme Procedure} dhcpd-service-type"
 msgstr "{Procedimiento Scheme} dhcpd-service-type"
 
 #. type: deffn
-#: doc/guix.texi:13334
+#: doc/guix.texi:15530
 msgid "This type defines a service that runs a DHCP daemon.  To create a service of this type, you must supply a @code{<dhcpd-configuration>}.  For example:"
 msgstr "Este tipo define un servicio que ejecuta el daemon DHCP. Para crear un servicio de este tipo debe proporcionar un objeto @code{<dhcpd-configuration>}. Por ejemplo:"
 
 #. type: lisp
-#: doc/guix.texi:13340
+#: doc/guix.texi:15536
 #, no-wrap
 msgid ""
 "(service dhcpd-service-type\n"
@@ -25038,115 +28799,115 @@ msgstr ""
 "          (interfaces '(\"enp0s25\"))))\n"
 
 #. type: deftp
-#: doc/guix.texi:13343
+#: doc/guix.texi:15539
 #, no-wrap
 msgid "{Data Type} dhcpd-configuration"
 msgstr "{Tipo de datos} dhcpd-configuration"
 
 #. type: item
-#: doc/guix.texi:13345
+#: doc/guix.texi:15541
 #, no-wrap
 msgid "@code{package} (default: @code{isc-dhcp})"
 msgstr "@code{package} (predeterminado: @code{isc-dhcp})"
 
 #. type: table
-#: doc/guix.texi:13350
+#: doc/guix.texi:15546
 msgid "The package that provides the DHCP daemon.  This package is expected to provide the daemon at @file{sbin/dhcpd} relative to its output directory.  The default package is the @uref{https://www.isc.org/products/DHCP, ISC's DHCP server}."
 msgstr "El paquete que proporciona el daemon DHCP. Se espera que este paquete proporcione el daemon en @file{sbin/dhcpd} de manera relativa a su directorio de salida. El paquete predeterminado es el @uref{https://www.isc.org/products/DHCP, servidor DHCP de ISC}."
 
 #. type: item
-#: doc/guix.texi:13350 doc/guix.texi:13602 doc/guix.texi:17839
+#: doc/guix.texi:15546 doc/guix.texi:15801 doc/guix.texi:20528
 #, no-wrap
 msgid "@code{config-file} (default: @code{#f})"
 msgstr "@code{config-file} (predeterminado: @code{#f})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:13355
+#: doc/guix.texi:15551
 msgid "The configuration file to use.  This is required.  It will be passed to @code{dhcpd} via its @code{-cf} option.  This may be any ``file-like'' object (@pxref{G-Expressions, file-like objects}).  See @code{man dhcpd.conf} for details on the configuration file syntax."
-msgstr "El fichero de configuración usado. Esta opción es necesaria. Se le proporcionará a @code{dhcpd} a través de su opción @code{-cf}. Puede ser cualquier objeto ``tipo-fichero'' (@pxref{G-Expressions, objetos ``tipo-fichero''}). Véase @code{man dhcpd.conf} para detalles sobre la sintaxis del fichero de configuración."
+msgstr "El archivo de configuración usado. Esta opción es necesaria. Se le proporcionará a @code{dhcpd} a través de su opción @code{-cf}. Puede ser cualquier objeto ``tipo-archivo'' (@pxref{G-Expressions, objetos ``tipo-archivo''}). Véase @code{man dhcpd.conf} para detalles sobre la sintaxis del archivo de configuración."
 
 #. type: item
-#: doc/guix.texi:13355
+#: doc/guix.texi:15551
 #, no-wrap
 msgid "@code{version} (default: @code{\"4\"})"
 msgstr "@code{version} (predeterminada: @code{\"4\"})"
 
 #. type: table
-#: doc/guix.texi:13360
+#: doc/guix.texi:15556
 msgid "The DHCP version to use.  The ISC DHCP server supports the values ``4'', ``6'', and ``4o6''.  These correspond to the @code{dhcpd} program options @code{-4}, @code{-6}, and @code{-4o6}.  See @code{man dhcpd} for details."
 msgstr "La versión DHCP usada. El servidor DHCP de ISC permite los valores ``4'', ``6'' y ``4o6''. Corresponden con las opciones @code{-4}, @code{-6} y @code{-4o6} del programa @code{dhcpd}. Véase @code{man dhcpd} para más detalles."
 
 #. type: item
-#: doc/guix.texi:13360
+#: doc/guix.texi:15556
 #, no-wrap
 msgid "@code{run-directory} (default: @code{\"/run/dhcpd\"})"
 msgstr "@code{run-directory} (predeterminado: @code{\"/run/dhcpd\"})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:13363
+#: doc/guix.texi:15559
 msgid "The run directory to use.  At service activation time, this directory will be created if it does not exist."
 msgstr "El directorio de ejecución usado. Durante la activación del servicio se creará en caso de no existir."
 
 #. type: item
-#: doc/guix.texi:13363
+#: doc/guix.texi:15559
 #, no-wrap
 msgid "@code{pid-file} (default: @code{\"/run/dhcpd/dhcpd.pid\"})"
 msgstr "@code{pid-file} (predeterminado: @code{\"/run/dhcpd/dhcpd.pid\"})"
 
 #. type: table
-#: doc/guix.texi:13366
+#: doc/guix.texi:15562
 msgid "The PID file to use.  This corresponds to the @code{-pf} option of @code{dhcpd}.  See @code{man dhcpd} for details."
-msgstr "El fichero de PID usado. Corresponde con la opción @code{-pf} de @code{dhcpd}. Véase @code{man dhcpd} para más detalles."
+msgstr "El archivo de PID usado. Corresponde con la opción @code{-pf} de @code{dhcpd}. Véase @code{man dhcpd} para más detalles."
 
 #. type: item
-#: doc/guix.texi:13366
+#: doc/guix.texi:15562
 #, no-wrap
 msgid "@code{interfaces} (default: @code{'()})"
 msgstr "@code{interfaces} (predeterminadas: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:13372
+#: doc/guix.texi:15568
 msgid "The names of the network interfaces on which dhcpd should listen for broadcasts.  If this list is not empty, then its elements (which must be strings) will be appended to the @code{dhcpd} invocation when starting the daemon.  It may not be necessary to explicitly specify any interfaces here; see @code{man dhcpd} for details."
 msgstr "Los nombres de las interfaces de red en las que dhcpd debería esperar retransmisiones. Si la lista no está vacía, entonces sus elementos (que deben ser cadenas) se añadirá a la invocación de @code{dhcpd} cuando se inicie el daemon. Puede no ser necesaria la especificación explícita aquí de ninguna interfaz; véase @code{man dhcpd} para más detalles."
 
 #. type: defvr
-#: doc/guix.texi:13375
+#: doc/guix.texi:15571
 #, no-wrap
 msgid "{Scheme Variable} static-networking-service-type"
 msgstr "{Variable Scheme} static-networking-service-type"
 
 #. type: defvr
-#: doc/guix.texi:13378
+#: doc/guix.texi:15574
 msgid "This is the type for statically-configured network interfaces."
 msgstr "Este es el tipo para las interfaces de red configuradas de forma estática."
 
 #. type: deffn
-#: doc/guix.texi:13380
+#: doc/guix.texi:15576
 #, no-wrap
 msgid "{Scheme Procedure} static-networking-service @var{interface} @var{ip} @"
 msgstr "{Procedimiento Scheme} static-networking-service @var{interfaz} @var{ip} @"
 
 #. type: deffn
-#: doc/guix.texi:13388
+#: doc/guix.texi:15584
 msgid "[#:netmask #f] [#:gateway #f] [#:name-servers @code{'()}] @ [#:requirement @code{'(udev)}] 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.  @var{requirement} can be used to declare a dependency on another service before configuring the interface."
 msgstr ""
 "[#:netmask #f] [#:gateway #f] [#:name-servers @code{'()}] @ [#:requirement @code{'(udev)}]\n"
 "Devuelve un servicio que activa la @var{interfaz} con la dirección @var{ip}. Si @var{netmask} es verdadero, se usa como máscara de red. Si @var{gateway} es verdadero, se usa como cadena que especifica la pasarela predeterminada de la red. @var{requirement} puede usarse para especificar una dependencia en otro servicio antes de configurar la interfaz."
 
 #. type: deffn
-#: doc/guix.texi:13393
+#: doc/guix.texi:15589
 msgid "This procedure can be called several times, one for each network interface of interest.  Behind the scenes what it does is extend @code{static-networking-service-type} with additional network interfaces to handle."
 msgstr "Se puede llamar a este procedimiento varias veces, una por cada interfaz de red sobre la que se tenga interés. Internamente, lo que hace es extender @code{static-networking-service-type} con interfaces de red adicionales que gestionar."
 
-#. type: deffn
-#: doc/guix.texi:13395
+#. type: defvr
+#: doc/guix.texi:15591 doc/guix.texi:26949
 msgid "For example:"
 msgstr "Por ejemplo:"
 
 #. type: lisp
-#: doc/guix.texi:13400
+#: doc/guix.texi:15596
 #, no-wrap
 msgid ""
 "(static-networking-service \"eno1\" \"192.168.1.82\"\n"
@@ -25158,213 +28919,207 @@ msgstr ""
 "                           #:name-servers '(\"192.168.1.2\"))\n"
 
 #. type: cindex
-#: doc/guix.texi:13403
+#: doc/guix.texi:15599
 #, no-wrap
 msgid "wicd"
 msgstr "wicd"
 
 #. type: cindex
-#: doc/guix.texi:13406
+#: doc/guix.texi:15602
 #, no-wrap
 msgid "network management"
 msgstr "gestión de red"
 
 #. type: deffn
-#: doc/guix.texi:13407
+#: doc/guix.texi:15603
 #, no-wrap
 msgid "{Scheme Procedure} wicd-service [#:wicd @var{wicd}]"
 msgstr "{Procedimiento Scheme} wicd-service [#:wicd @var{wicd}]"
 
 # FUZZY
 #. type: deffn
-#: doc/guix.texi:13410
+#: doc/guix.texi:15606
 msgid "Return a service that runs @url{https://launchpad.net/wicd,Wicd}, a network management daemon that aims to simplify wired and wireless networking."
 msgstr "Devuelve un servicio que ejecuta @url{https://launchpad.net/wicd,Wicd}, un daemon de gestión de red que intenta simplificar la gestión de redes cableadas e inalámbricas."
 
 #. type: deffn
-#: doc/guix.texi:13415
+#: doc/guix.texi:15611
 msgid "This service adds the @var{wicd} package to the global profile, providing several commands to interact with the daemon and configure networking: @command{wicd-client}, a graphical user interface, and the @command{wicd-cli} and @command{wicd-curses} user interfaces."
 msgstr "Este servicio añade @var{wicd} al perfil global, proporcionando varias ordenes destinadas a la interacción con el daemon y a la configuración de la red: @command{wicd-client}, una interfaz gráfica, y las interfaces de usuaria @command{wicd-cli} y @command{wicd-curses}."
 
 #. type: cindex
-#: doc/guix.texi:13417
+#: doc/guix.texi:15613
 #, no-wrap
 msgid "ModemManager"
 msgstr "ModemManager"
 
 #. type: defvr
-#: doc/guix.texi:13419
+#: doc/guix.texi:15615
 #, no-wrap
 msgid "{Scheme Variable} modem-manager-service-type"
 msgstr "{Variable Scheme} modem-manager-service-type"
 
 #. type: defvr
-#: doc/guix.texi:13424
+#: doc/guix.texi:15620
 msgid "This is the service type for the @uref{https://wiki.gnome.org/Projects/ModemManager, ModemManager} service. The value for this service type is a @code{modem-manager-configuration} record."
 msgstr "Este es el tipo de servicio para el servicio @uref{https://wiki.gnome.org/Projects/ModemManager, ModemManager}. El valor para este tipo de servicio es un registro @code{modem-manager-configuration}."
 
 #. type: defvr
-#: doc/guix.texi:13427 doc/guix.texi:13455 doc/guix.texi:13487
+#: doc/guix.texi:15623 doc/guix.texi:15651 doc/guix.texi:15683
 msgid "This service is part of @code{%desktop-services} (@pxref{Desktop Services})."
 msgstr "Este servicio es parte de @code{%desktop-services} (@pxref{Desktop Services})."
 
 #. type: deftp
-#: doc/guix.texi:13429
+#: doc/guix.texi:15625
 #, no-wrap
 msgid "{Data Type} modem-manager-configuration"
 msgstr "{Tipo de datos} modem-manager-configuration"
 
 #. type: deftp
-#: doc/guix.texi:13431
+#: doc/guix.texi:15627
 msgid "Data type representing the configuration of ModemManager."
 msgstr "Tipo de datos que representa la configuración de ModemManager."
 
 #. type: item
-#: doc/guix.texi:13433
+#: doc/guix.texi:15629
 #, no-wrap
 msgid "@code{modem-manager} (default: @code{modem-manager})"
 msgstr "@code{modem-manager} (predeterminado: @code{modem-manager})"
 
 #. type: table
-#: doc/guix.texi:13435
+#: doc/guix.texi:15631
 msgid "The ModemManager package to use."
 msgstr "El paquete de ModemManager usado."
 
 #. type: cindex
-#: doc/guix.texi:13439
+#: doc/guix.texi:15635
 #, no-wrap
 msgid "USB_ModeSwitch"
 msgstr "USB_ModeSwitch"
 
 #. type: cindex
-#: doc/guix.texi:13440
+#: doc/guix.texi:15636
 #, no-wrap
 msgid "Modeswitching"
 msgstr "Cambio de modo (modeswitch)"
 
 #. type: defvr
-#: doc/guix.texi:13442
+#: doc/guix.texi:15638
 #, no-wrap
 msgid "{Scheme Variable} usb-modeswitch-service-type"
 msgstr "{Variable Scheme} usb-modeswitch-service-type"
 
 #. type: defvr
-#: doc/guix.texi:13446
+#: doc/guix.texi:15642
 msgid "This is the service type for the @uref{https://www.draisberghof.de/usb_modeswitch/, USB_ModeSwitch} service. The value for this service type is a @code{usb-modeswitch-configuration} record."
 msgstr "Este es el tipo de servicio para el servicio @uref{https://www.draisberghof.de/usb_modeswitch/, USB_ModeSwitch}. El valor para este tipo de servicio es un registro @code{usb-modeswitch-configuration}."
 
 #. type: defvr
-#: doc/guix.texi:13452
+#: doc/guix.texi:15648
 msgid "When plugged in, some USB modems (and other USB devices) initially present themselves as a read-only storage medium and not as a modem.  They need to be @dfn{modeswitched} before they are usable.  The USB_ModeSwitch service type installs udev rules to automatically modeswitch these devices when they are plugged in."
 msgstr "Cuando se conectan, algunos modem USB (y otros dispositivos USB) se presentan inicialmente como medios de almacenamiento de sólo-lectura y no como un modem. Deben @dfn{cambiar de modo} antes de poder usarse. El tipo de servicio USB_ModeSwitch instala reglas de udev para cambiar automáticamente de modo cuando se conecten estos dispositivos."
 
 #. type: deftp
-#: doc/guix.texi:13457
+#: doc/guix.texi:15653
 #, no-wrap
 msgid "{Data Type} usb-modeswitch-configuration"
 msgstr "{Tipo de datos} usb-modeswitch-configuration"
 
 #. type: deftp
-#: doc/guix.texi:13459
+#: doc/guix.texi:15655
 msgid "Data type representing the configuration of USB_ModeSwitch."
 msgstr "Tipo de datos que representa la configuración de USB_ModeSwitch."
 
 #. type: item
-#: doc/guix.texi:13461
+#: doc/guix.texi:15657
 #, no-wrap
 msgid "@code{usb-modeswitch} (default: @code{usb-modeswitch})"
 msgstr "@code{usb-modeswitch} (predeterminado: @code{usb-modeswitch})"
 
 #. type: table
-#: doc/guix.texi:13463
+#: doc/guix.texi:15659
 msgid "The USB_ModeSwitch package providing the binaries for modeswitching."
 msgstr "El paquete USB_ModeSwitch que proporciona los binarios para el cambio de modo."
 
 #. type: item
-#: doc/guix.texi:13464
+#: doc/guix.texi:15660
 #, no-wrap
 msgid "@code{usb-modeswitch-data} (default: @code{usb-modeswitch-data})"
 msgstr "@code{usb-modeswitch-data} (predeterminado: @code{usb-modeswitch-data})"
 
 #. type: table
-#: doc/guix.texi:13467
+#: doc/guix.texi:15663
 msgid "The package providing the device data and udev rules file used by USB_ModeSwitch."
 msgstr "El paquete que proporciona los datos de dispositivos y las reglas de udev usadas por USB_ModeSwitch."
 
 #. type: item
-#: doc/guix.texi:13468
+#: doc/guix.texi:15664
 #, no-wrap
 msgid "@code{config-file} (default: @code{#~(string-append #$usb-modeswitch:dispatcher \"/etc/usb_modeswitch.conf\")})"
 msgstr "@code{config-file} (predeterminado: @code{#~(string-append #$usb-modeswitch:dispatcher \"/etc/usb_modeswitch.conf\")})"
 
 #. type: table
-#: doc/guix.texi:13473
+#: doc/guix.texi:15669
 msgid "Which config file to use for the USB_ModeSwitch dispatcher.  By default the config file shipped with USB_ModeSwitch is used which disables logging to @file{/var/log} among other default settings.  If set to @code{#f}, no config file is used."
-msgstr "Fichero de configuración usado para el gestor de eventos (dispatcher) de USB_ModeSwitch. De manera predeterminada se usa el fichero que viene con USB_ModeSwitch, que deshabilita el registro en @file{/var/log} junto a otras configuraciones. Si se proporciona @code{#f} no se usa ningún fichero de configuración. "
+msgstr "Archivo de configuración usado para el gestor de eventos (dispatcher) de USB_ModeSwitch. De manera predeterminada se usa el archivo que viene con USB_ModeSwitch, que deshabilita el registro en @file{/var/log} junto a otras configuraciones. Si se proporciona @code{#f} no se usa ningún archivo de configuración. "
 
 #. type: cindex
-#: doc/guix.texi:13477
+#: doc/guix.texi:15673
 #, no-wrap
 msgid "NetworkManager"
 msgstr "NetworkManager"
 
 #. type: defvr
-#: doc/guix.texi:13479
+#: doc/guix.texi:15675
 #, no-wrap
 msgid "{Scheme Variable} network-manager-service-type"
 msgstr "{Variable Scheme} network-manager-service-type"
 
 #. type: defvr
-#: doc/guix.texi:13484
+#: doc/guix.texi:15680
 msgid "This is the service type for the @uref{https://wiki.gnome.org/Projects/NetworkManager, NetworkManager} service. The value for this service type is a @code{network-manager-configuration} record."
 msgstr "Este es el tipo de servicio para el servicio @uref{https://wiki.gnome.org/Projects/NetworkManager, NetworkManager}. El valor para este tipo de servicio es un registro @code{network-manager-configuration}."
 
 #. type: deftp
-#: doc/guix.texi:13489
+#: doc/guix.texi:15685
 #, no-wrap
 msgid "{Data Type} network-manager-configuration"
 msgstr "{Tipo de datos} network-manager-configuration"
 
 #. type: deftp
-#: doc/guix.texi:13491
+#: doc/guix.texi:15687
 msgid "Data type representing the configuration of NetworkManager."
 msgstr "Tipo de datos que representa la configuración de NetworkManager."
 
 #. type: item
-#: doc/guix.texi:13493
+#: doc/guix.texi:15689
 #, no-wrap
 msgid "@code{network-manager} (default: @code{network-manager})"
 msgstr "@code{network-manager} (predeterminado: @code{network-manager})"
 
 #. type: table
-#: doc/guix.texi:13495
+#: doc/guix.texi:15691
 msgid "The NetworkManager package to use."
 msgstr "El paquete de NetworkManager usado."
 
 #. type: item
-#: doc/guix.texi:13496
+#: doc/guix.texi:15692
 #, no-wrap
 msgid "@code{dns} (default: @code{\"default\"})"
 msgstr "@code{dns} (predeterminado: @code{\"default\"})"
 
 #. type: table
-#: doc/guix.texi:13499
+#: doc/guix.texi:15695
 msgid "Processing mode for DNS, which affects how NetworkManager uses the @code{resolv.conf} configuration file."
-msgstr "Modo de procesamiento para DNS, que afecta la manera en la que NetworkManager usa el fichero de configuración @code{resolv.conf}."
-
-#. type: item
-#: doc/guix.texi:13501
-#, no-wrap
-msgid "default"
-msgstr "default"
+msgstr "Modo de procesamiento para DNS, que afecta la manera en la que NetworkManager usa el archivo de configuración @code{resolv.conf}."
 
 #. type: table
-#: doc/guix.texi:13504
+#: doc/guix.texi:15700
 msgid "NetworkManager will update @code{resolv.conf} to reflect the nameservers provided by currently active connections."
 msgstr "NetworkManager actualizará @code{resolv.conf} para reflejar los servidores de nombres proporcionados por las conexiones activas actualmente."
 
 #. type: item
-#: doc/guix.texi:13505
+#: doc/guix.texi:15701
 #, no-wrap
 msgid "dnsmasq"
 msgstr "dnsmasq"
@@ -25372,22 +29127,22 @@ msgstr "dnsmasq"
 # FUZZY
 # TODO (MAAV): split DNS
 #. type: table
-#: doc/guix.texi:13509
+#: doc/guix.texi:15705
 msgid "NetworkManager will run @code{dnsmasq} as a local caching nameserver, using a @dfn{conditional forwarding} configuration if you are connected to a VPN, and then update @code{resolv.conf} to point to the local nameserver."
 msgstr "NetworkManager ejecutará @code{dnsmasq} como una caché local del servicio de nombres, mediante un @dfn{reenvío condicional} si se encuentra conectada a una VPN, y actualiza posteriormente @code{resolv.conf} para apuntar al servidor de nombres local."
 
 #. type: table
-#: doc/guix.texi:13515
+#: doc/guix.texi:15711
 msgid "With this setting, you can share your network connection.  For example when you want to share your network connection to another laptop @i{via} an Ethernet cable, you can open @command{nm-connection-editor} and configure the Wired connection's method for IPv4 and IPv6 to be ``Shared to other computers'' and reestablish the connection (or reboot)."
 msgstr "Con esta configuración puede compartir su conexión de red. Por ejemplo, cuando desee compartir su conexión de red a otro equipo a través de un cable Ethernet, puede abrir @command{nm-connection-editor} y configurar el método de la conexión cableada para IPv4 y IPv6 ``Compartida con otros equipos'' y restablecer la conexión (o reiniciar)."
 
 #. type: table
-#: doc/guix.texi:13522
+#: doc/guix.texi:15718
 msgid "You can also set up a @dfn{host-to-guest connection} to QEMU VMs (@pxref{Installing Guix in a VM}).  With a host-to-guest connection, you can e.g.@: access a Web server running on the VM (@pxref{Web Services}) from a Web browser on your host system, or connect to the VM @i{via} SSH (@pxref{Networking Services, @code{openssh-service-type}}).  To set up a host-to-guest connection, run this command once:"
 msgstr "También puede configurar una @dfn{conexión anfitrión-invitado} a las máquinas virtuales de QEMU (@pxref{Installing Guix in a VM}).  Con una conexión anfitrión-invitado puede, por ejemplo, acceder a un servidor web que se ejecute en la máquina virtual (@pxref{Web Services}) desde un navegador web en su sistema anfitrión, o conectarse a la máquina virtual a través de SSH (@pxref{Networking Services, @code{openssh-service-type}}). Para configurar una conexión anfitrión-invitado, ejecute esta orden una única vez:"
 
 #. type: example
-#: doc/guix.texi:13529
+#: doc/guix.texi:15725
 #, no-wrap
 msgid ""
 "nmcli connection add type tun \\\n"
@@ -25403,50 +29158,50 @@ msgstr ""
 " ipv4.addresses 172.28.112.1/24\n"
 
 #. type: table
-#: doc/guix.texi:13534
+#: doc/guix.texi:15730
 msgid "Then each time you launch your QEMU VM (@pxref{Running Guix in a VM}), pass @option{-nic tap,ifname=tap0,script=no,downscript=no} to @command{qemu-system-...}."
 msgstr "Cada vez que arranque su máquina virtual de QEMU (@pxref{Running Guix in a VM}), proporcione @option{-nic tap,ifname=tap0,script=no,downscript=no} a @command{qemu-system-...}."
 
 #. type: table
-#: doc/guix.texi:13537
+#: doc/guix.texi:15733
 msgid "NetworkManager will not modify @code{resolv.conf}."
 msgstr "NetworkManager no modificará @code{resolv.conf}."
 
 #. type: item
-#: doc/guix.texi:13539
+#: doc/guix.texi:15735
 #, no-wrap
 msgid "@code{vpn-plugins} (default: @code{'()})"
 msgstr "@code{vpn-plugins} (predeterminados: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:13543
+#: doc/guix.texi:15739
 msgid "This is the list of available plugins for virtual private networks (VPNs).  An example of this is the @code{network-manager-openvpn} package, which allows NetworkManager to manage VPNs @i{via} OpenVPN."
 msgstr "Esta es la lista de módulos disponibles para redes privadas virtuales (VPN). Un ejemplo es el paquete @code{network-manager-openvpn}, que permite a NetworkManager la gestión de redes VPN a través de OpenVPN."
 
 #. type: cindex
-#: doc/guix.texi:13547
+#: doc/guix.texi:15743
 #, no-wrap
 msgid "Connman"
 msgstr "Connman"
 
 #. type: deffn
-#: doc/guix.texi:13548
+#: doc/guix.texi:15744
 #, no-wrap
 msgid "{Scheme Variable} connman-service-type"
 msgstr "{Variable Scheme} connman-service-type"
 
 #. type: deffn
-#: doc/guix.texi:13551
+#: doc/guix.texi:15747
 msgid "This is the service type to run @url{https://01.org/connman,Connman}, a network connection manager."
 msgstr "Este es el tipo de servicio para la ejecución de @url{https://01.org.connman,Connman}, un gestor de conexiones de red."
 
 #. type: deffn
-#: doc/guix.texi:13554
+#: doc/guix.texi:15750
 msgid "Its value must be an @code{connman-configuration} record as in this example:"
 msgstr "Su valor debe ser un registro @code{connman-configuration} como en este ejemplo:"
 
 #. type: lisp
-#: doc/guix.texi:13559
+#: doc/guix.texi:15755
 #, no-wrap
 msgid ""
 "(service connman-service-type\n"
@@ -25458,150 +29213,306 @@ msgstr ""
 "           (disable-vpn? #t)))\n"
 
 #. type: deffn
-#: doc/guix.texi:13562
+#: doc/guix.texi:15758
 msgid "See below for details about @code{connman-configuration}."
 msgstr "Véase a continuación más detalles sobre @code{connman-configuration}."
 
 #. type: deftp
-#: doc/guix.texi:13564
+#: doc/guix.texi:15760
 #, no-wrap
 msgid "{Data Type} connman-configuration"
 msgstr "{Tipo de datos} connman-configuration"
 
 #. type: deftp
-#: doc/guix.texi:13566
+#: doc/guix.texi:15762
 msgid "Data Type representing the configuration of connman."
 msgstr "Tipo de datos que representa la configuración de connman."
 
 #. type: item
-#: doc/guix.texi:13568
+#: doc/guix.texi:15764
 #, no-wrap
 msgid "@code{connman} (default: @var{connman})"
 msgstr "@code{connman} (predeterminado: @var{connman})"
 
 #. type: table
-#: doc/guix.texi:13570
+#: doc/guix.texi:15766
 msgid "The connman package to use."
 msgstr "El paquete connman usado."
 
 #. type: item
-#: doc/guix.texi:13571
+#: doc/guix.texi:15767
 #, no-wrap
 msgid "@code{disable-vpn?} (default: @code{#f})"
 msgstr "@code{disable-vpn?} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:13573
+#: doc/guix.texi:15769
 msgid "When true, disable connman's vpn plugin."
 msgstr "Cuando es verdadero, desactiva el módulo vpn de connman."
 
 #. type: cindex
-#: doc/guix.texi:13576
+#: doc/guix.texi:15772
 #, no-wrap
 msgid "WPA Supplicant"
 msgstr "WPA Supplicant"
 
 #. type: defvr
-#: doc/guix.texi:13577
+#: doc/guix.texi:15773
 #, no-wrap
 msgid "{Scheme Variable} wpa-supplicant-service-type"
 msgstr "{Variable Scheme} wpa-supplicant-service-type"
 
 #. type: defvr
-#: doc/guix.texi:13581
+#: doc/guix.texi:15777
 msgid "This is the service type to run @url{https://w1.fi/wpa_supplicant/,WPA supplicant}, an authentication daemon required to authenticate against encrypted WiFi or ethernet networks."
 msgstr "Este es el tipo de servicio para la ejecución de @url{https://w1.fi/wpa_supplicant/,WPA supplicant}, un daemon de identificación necesario para la identificación en redes WiFi o ethernet cifradas."
 
 #. type: deftp
-#: doc/guix.texi:13583
+#: doc/guix.texi:15779
 #, no-wrap
 msgid "{Data Type} wpa-supplicant-configuration"
 msgstr "{Tipo de datos} wpa-supplicant-configuration"
 
 #. type: deftp
-#: doc/guix.texi:13585
+#: doc/guix.texi:15781
 msgid "Data type representing the configuration of WPA Supplicant."
 msgstr "Tipo de datos que representa la configuración de WPA Supplicant."
 
 #. type: deftp
-#: doc/guix.texi:13587 doc/guix.texi:25268
+#: doc/guix.texi:15783 doc/guix.texi:28961
 msgid "It takes the following parameters:"
 msgstr "Toma los siguientes parámetros:"
 
 #. type: item
-#: doc/guix.texi:13589
+#: doc/guix.texi:15785
 #, no-wrap
 msgid "@code{wpa-supplicant} (default: @code{wpa-supplicant})"
 msgstr "@code{wpa-supplicant} (predeterminado: @code{wpa-supplicant})"
 
 #. type: table
-#: doc/guix.texi:13591
+#: doc/guix.texi:15787
 msgid "The WPA Supplicant package to use."
 msgstr "El paquete de WPA Supplicant usado."
 
 #. type: item
-#: doc/guix.texi:13592
+#: doc/guix.texi:15788
+#, no-wrap
+msgid "@code{requirement} (default: @code{'(user-processes loopback syslogd)}"
+msgstr "@code{requirement} (predeterminados: @code{'(user-processes loopback syslogd)}"
+
+#. type: table
+#: doc/guix.texi:15790
+msgid "List of services that should be started before WPA Supplicant starts."
+msgstr "Lista de servicios que deben iniciarse antes del arranque de WPA Supplicant."
+
+#. type: item
+#: doc/guix.texi:15791
 #, no-wrap
 msgid "@code{dbus?} (default: @code{#t})"
 msgstr "@code{dbus?} (predeterminado: @code{#t})"
 
 #. type: table
-#: doc/guix.texi:13594
+#: doc/guix.texi:15793
 msgid "Whether to listen for requests on D-Bus."
 msgstr "Si se escuchan o no peticiones en D-Bus."
 
 #. type: item
-#: doc/guix.texi:13595
+#: doc/guix.texi:15794
 #, no-wrap
 msgid "@code{pid-file} (default: @code{\"/var/run/wpa_supplicant.pid\"})"
 msgstr "@code{pid-file} (predeterminado: @code{\"/var/run/wpa_supplicant.pid\"})"
 
 #. type: table
-#: doc/guix.texi:13597
+#: doc/guix.texi:15796
 msgid "Where to store the PID file."
-msgstr "Dónde se almacena el fichero con el PID."
+msgstr "Dónde se almacena el archivo con el PID."
 
 #. type: item
-#: doc/guix.texi:13598
+#: doc/guix.texi:15797 doc/guix.texi:27406 doc/guix.texi:27548
 #, no-wrap
 msgid "@code{interface} (default: @code{#f})"
 msgstr "@code{interface} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:13601
+#: doc/guix.texi:15800
 msgid "If this is set, it must specify the name of a network interface that WPA supplicant will control."
 msgstr "En caso de proporcionarse un valor, debe especificar el nombre de la interfaz de red que WPA supplicant controlará."
 
 #. type: table
-#: doc/guix.texi:13604
+#: doc/guix.texi:15803
 msgid "Optional configuration file to use."
-msgstr "Fichero de configuración opcional usado."
+msgstr "Archivo de configuración opcional usado."
 
 #. type: table
-#: doc/guix.texi:13607
+#: doc/guix.texi:15806
 msgid "List of additional command-line arguments to pass to the daemon."
 msgstr "Lista de parámetros adicionales a pasar al daemon en la línea de órdenes."
 
 #. type: cindex
-#: doc/guix.texi:13610
+#: doc/guix.texi:15809
+#, no-wrap
+msgid "hostapd service, for Wi-Fi access points"
+msgstr "hostapd, servicio para puntos de acceso inalámbricos"
+
+#. type: cindex
+#: doc/guix.texi:15810
+#, no-wrap
+msgid "Wi-Fi access points, hostapd service"
+msgstr "puntos de acceso inalámbricos, servicio hostapd"
+
+#. type: defvr
+#: doc/guix.texi:15811
+#, no-wrap
+msgid "{Scheme Variable} hostapd-service-type"
+msgstr "{Variable Scheme} hostapd-service-type"
+
+#. type: defvr
+#: doc/guix.texi:15816
+msgid "This is the service type to run the @uref{https://w1.fi/hostapd/, hostapd} daemon to set up WiFi (IEEE 802.11) access points and authentication servers.  Its associated value must be a @code{hostapd-configuration} as shown below:"
+msgstr "Este es el tipo de servicio que ejecuta el daemon @uref{https://w1.fi/hostapd/, hostapd} para configurar puntos de acceso WiFi (IEEE 802.11) y servidores de identificación. Su valor debe ser un registro @code{hostapd-configuration} como en este ejemplo:"
+
+#. type: lisp
+#: doc/guix.texi:15824
+#, no-wrap
+msgid ""
+";; Use wlan1 to run the access point for \"My Network\".\n"
+"(service hostapd-service-type\n"
+"         (hostapd-configuration\n"
+"          (interface \"wlan1\")\n"
+"          (ssid \"My Network\")\n"
+"          (channel 12)))\n"
+msgstr ""
+";; Use wlan1 para ejecutar el punto de acceso para \"Mi red\".\n"
+"(service hostapd-service-type\n"
+"         (hostapd-configuration\n"
+"          (interface \"wlan1\")\n"
+"          (ssid \"Mi red\")\n"
+"          (channel 12)))\n"
+
+#. type: deftp
+#: doc/guix.texi:15827
+#, no-wrap
+msgid "{Data Type} hostapd-configuration"
+msgstr "{Tipo de datos} hostapd-configuration"
+
+#. type: deftp
+#: doc/guix.texi:15830
+msgid "This data type represents the configuration of the hostapd service, with the following fields:"
+msgstr "Este tipo de datos representa la configuración del servicio hostapd, y tiene los siguientes campos:"
+
+#. type: item
+#: doc/guix.texi:15832
+#, no-wrap
+msgid "@code{package} (default: @code{hostapd})"
+msgstr "@code{package} (predeterminado: @code{hostapd})"
+
+#. type: table
+#: doc/guix.texi:15834
+msgid "The hostapd package to use."
+msgstr "El paquete hostapd usado."
+
+#. type: item
+#: doc/guix.texi:15835
+#, no-wrap
+msgid "@code{interface} (default: @code{\"wlan0\"})"
+msgstr "@code{interface} (predeterminado: @code{\"wlan0\"})"
+
+#. type: table
+#: doc/guix.texi:15837
+msgid "The network interface to run the WiFi access point."
+msgstr "La interfaz de red en la que se establece el punto de acceso WiFi."
+
+#. type: code{#1}
+#: doc/guix.texi:15838
+#, no-wrap
+msgid "ssid"
+msgstr "ssid"
+
+#. type: table
+#: doc/guix.texi:15841
+msgid "The SSID (@dfn{service set identifier}), a string that identifies this network."
+msgstr "El SSID (@dfn{identificador del servicio}, del inglés ``service set identifier''), una cadena que identifica esta red."
+
+#. type: item
+#: doc/guix.texi:15842
+#, no-wrap
+msgid "@code{broadcast-ssid?} (default: @code{#t})"
+msgstr "@code{broadcast-ssid?} (predeterminado: @code{#t})"
+
+#. type: table
+#: doc/guix.texi:15844
+msgid "Whether to broadcast this SSID."
+msgstr "Determina si se emite este SSID."
+
+#. type: item
+#: doc/guix.texi:15845
+#, no-wrap
+msgid "@code{channel} (default: @code{1})"
+msgstr "@code{channel} (predeterminado: @code{1})"
+
+#. type: table
+#: doc/guix.texi:15847
+msgid "The WiFi channel to use."
+msgstr "El canal WiFi usado."
+
+#. type: item
+#: doc/guix.texi:15848
+#, no-wrap
+msgid "@code{driver} (default: @code{\"nl80211\"})"
+msgstr "@code{driver} (predeterminado: @code{\"nl80211\"})"
+
+#. type: table
+#: doc/guix.texi:15852
+msgid "The driver interface type.  @code{\"nl80211\"} is used with all Linux mac80211 drivers.  Use @code{\"none\"} if building hostapd as a standalone RADIUS server that does # not control any wireless/wired driver."
+msgstr "El tipo de controlador de la interfaz.  @code{\"nl80211\"} se usa con todos los controladores de mac80211 de Linux. Use @code{\"none\"} si está construyendo hostapd como un servidor RADIUS independiente que no controla ningún controlador de red cableada o inalámbrica."
+
+#. type: item
+#: doc/guix.texi:15853 doc/guix.texi:21353 doc/guix.texi:23399
+#, no-wrap
+msgid "@code{extra-settings} (default: @code{\"\"})"
+msgstr "@code{extra-settings} (predeterminado: @code{\"\"})"
+
+#. type: table
+#: doc/guix.texi:15857
+msgid "Extra settings to append as-is to the hostapd configuration file.  See @uref{https://w1.fi/cgit/hostap/plain/hostapd/hostapd.conf} for the configuration file reference."
+msgstr "Configuración adicional que se añade literalmente al archivo de configuración de hostapd. Véase @uref{https://w1.fi/cgit/hostap/plain/hostapd/hostapd.conf} para la referencia del archivo de configuración."
+
+#. type: defvr
+#: doc/guix.texi:15860
+#, no-wrap
+msgid "{Scheme Variable} simulated-wifi-service-type"
+msgstr "{Variable Scheme} simulated-wifi-service-type"
+
+#. type: defvr
+#: doc/guix.texi:15867
+msgid "This is the type of a service to simulate WiFi networking, which can be useful in virtual machines for testing purposes.  The service loads the Linux kernel @uref{https://www.kernel.org/doc/html/latest/networking/mac80211_hwsim/mac80211_hwsim.html, @code{mac80211_hwsim} module} and starts hostapd to create a pseudo WiFi network that can be seen on @code{wlan0}, by default."
+msgstr "Tipo de servicio que simula una red inalámbrica (``WiFi''), lo que puede ser útil en máquinas virtuales para realizar pruebas. El servicio carga el @uref{https://www.kernel.org/doc/html/latest/networking/mac80211_hwsim/mac80211_hwsim.html, módulo @code{mac80211_hwsim}} del núcleo Linux e inicia hostapd para crear una red inalámbrica virtual que puede verse en @code{wlan0}, de manera predeterminada."
+
+#. type: defvr
+#: doc/guix.texi:15869
+msgid "The service's value is a @code{hostapd-configuration} record."
+msgstr "El valor de este servicio es un registro @code{hostapd-configuration}."
+
+#. type: cindex
+#: doc/guix.texi:15871
 #, no-wrap
 msgid "iptables"
 msgstr "iptables"
 
 #. type: defvr
-#: doc/guix.texi:13611
+#: doc/guix.texi:15872
 #, no-wrap
 msgid "{Scheme Variable} iptables-service-type"
 msgstr "{Variable Scheme} iptables-service-type"
 
 #. type: defvr
-#: doc/guix.texi:13617
+#: doc/guix.texi:15878
 msgid "This is the service type to set up an iptables configuration.  iptables is a packet filtering framework supported by the Linux kernel.  This service supports configuring iptables for both IPv4 and IPv6.  A simple example configuration rejecting all incoming connections except those to the ssh port 22 is shown below."
 msgstr "Este es el tipo de servicio para la aplicación de configuración de iptables. iptables es un entorno de trabajo para el filtrado de paquetes implementado por el núcleo Linux. Este servicio permite la configuración de iptables tanto para IPv4 como IPv6. Un ejemplo simple de cómo rechazar todas las conexiones entrantes excepto aquellas al puerto 22 de ssh se muestra a continuación."
 
 # TODO: Revisar
 #. type: lisp
-#: doc/guix.texi:13637
+#: doc/guix.texi:15898
 #, no-wrap
 msgid ""
 "(service iptables-service-type\n"
@@ -25643,243 +29554,243 @@ msgstr ""
 "\"))))\n"
 
 #. type: deftp
-#: doc/guix.texi:13640
+#: doc/guix.texi:15901
 #, no-wrap
 msgid "{Data Type} iptables-configuration"
 msgstr "{Tipo de datos} iptables-configuration"
 
 #. type: deftp
-#: doc/guix.texi:13642
+#: doc/guix.texi:15903
 msgid "The data type representing the configuration of iptables."
 msgstr "El tipo de datos que representa la configuración de iptables."
 
 #. type: item
-#: doc/guix.texi:13644
+#: doc/guix.texi:15905
 #, no-wrap
 msgid "@code{iptables} (default: @code{iptables})"
 msgstr "@code{iptables} (predeterminado: @code{iptables})"
 
 #. type: table
-#: doc/guix.texi:13647
+#: doc/guix.texi:15908
 msgid "The iptables package that provides @code{iptables-restore} and @code{ip6tables-restore}."
 msgstr "El paquete iptables que proporciona @code{iptables-restore} y @code{ip6tables-restore}."
 
 #. type: item
-#: doc/guix.texi:13647
+#: doc/guix.texi:15908
 #, no-wrap
 msgid "@code{ipv4-rules} (default: @code{%iptables-accept-all-rules})"
 msgstr "@code{ipv4-rules} (predeterminado: @code{%iptables-accept-all-rules})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:13651
+#: doc/guix.texi:15912
 msgid "The iptables rules to use.  It will be passed to @code{iptables-restore}.  This may be any ``file-like'' object (@pxref{G-Expressions, file-like objects})."
-msgstr "Las reglas de iptables usadas. Se le proporcionarán a @code{iptables-restore}. Puede ser cualquier objeto ``tipo-fichero'' (@pxref{G-Expressions, objetos ``tipo-fichero''})."
+msgstr "Las reglas de iptables usadas. Se le proporcionarán a @code{iptables-restore}. Puede ser cualquier objeto ``tipo-archivo'' (@pxref{G-Expressions, objetos ``tipo-archivo''})."
 
 #. type: item
-#: doc/guix.texi:13651
+#: doc/guix.texi:15912
 #, no-wrap
 msgid "@code{ipv6-rules} (default: @code{%iptables-accept-all-rules})"
 msgstr "@code{ipv6-rules} (predeterminadas: @code{%iptables-accept-all-rules})"
 
 #. type: table
-#: doc/guix.texi:13655
+#: doc/guix.texi:15916
 msgid "The ip6tables rules to use.  It will be passed to @code{ip6tables-restore}.  This may be any ``file-like'' object (@pxref{G-Expressions, file-like objects})."
-msgstr "Las reglas de ip6tables usadas. Se le proporcionarán a @code{ip6tables-restore}. Puede ser cualquier objeto ``tipo-fichero'' (@pxref{G-Expressions, objetos ``tipo-fichero''})."
+msgstr "Las reglas de ip6tables usadas. Se le proporcionarán a @code{ip6tables-restore}. Puede ser cualquier objeto ``tipo-archivo'' (@pxref{G-Expressions, objetos ``tipo-archivo''})."
 
 #. type: cindex
-#: doc/guix.texi:13658
+#: doc/guix.texi:15919
 #, no-wrap
 msgid "nftables"
 msgstr "nftables"
 
 #. type: defvr
-#: doc/guix.texi:13659
+#: doc/guix.texi:15920
 #, no-wrap
 msgid "{Scheme Variable} nftables-service-type"
 msgstr "{Variable Scheme} nftables-service-type"
 
 #. type: defvr
-#: doc/guix.texi:13667
+#: doc/guix.texi:15928
 msgid "This is the service type to set up a nftables configuration.  nftables is a netfilter project that aims to replace the existing iptables, ip6tables, arptables and ebtables framework.  It provides a new packet filtering framework, a new user-space utility @command{nft}, and a compatibility layer for iptables.  This service comes with a default ruleset @code{%default-nftables-ruleset} that rejecting all incomming connections except those to the ssh port 22.  To use it, simply write:"
 msgstr "Es el tipo de servicio para levantar una configuración de nftables. nftables es un proyecto de netfilter que quiere reemplazar los entornos ya existentes iptables, ip6tables, arptables y ebtables. Proporciona un entorno de filtrado de paquetes nuevo, una utilidad @command{nft} de espacio de usuaria nueva y una capa de compatibilidad con iptables. El servicio viene con un conjunto de reglas predeterminado @code{%default-nftables-ruleset} que rechaza todas las conexiones entrantes excepto las del puerto 22. Para usarlo, simplemente escriba:"
 
 #. type: lisp
-#: doc/guix.texi:13670
+#: doc/guix.texi:15931
 #, no-wrap
 msgid "(service nftables-service-type)\n"
 msgstr "(service nftables-service-type)\n"
 
 #. type: deftp
-#: doc/guix.texi:13673
+#: doc/guix.texi:15934
 #, no-wrap
 msgid "{Data Type} nftables-configuration"
 msgstr "{Tipo de datos} nftables-configuration"
 
 #. type: deftp
-#: doc/guix.texi:13675
+#: doc/guix.texi:15936
 msgid "The data type representing the configuration of nftables."
 msgstr "El tipo de datos que representa la configuración de nftables."
 
 #. type: item
-#: doc/guix.texi:13677
+#: doc/guix.texi:15938
 #, no-wrap
 msgid "@code{package} (default: @code{nftables})"
 msgstr "@code{package} (predeterminado: @code{nftables})"
 
 #. type: table
-#: doc/guix.texi:13679
+#: doc/guix.texi:15940
 msgid "The nftables package that provides @command{nft}."
 msgstr "El paquete nftables que proporciona @command{nft}."
 
 #. type: item
-#: doc/guix.texi:13679
+#: doc/guix.texi:15940
 #, no-wrap
 msgid "@code{ruleset} (default: @code{%default-nftables-ruleset})"
 msgstr "@code{ruleset} (predeterminados: @code{%default-nftables-ruleset})"
 
 #. type: table
-#: doc/guix.texi:13682
+#: doc/guix.texi:15943
 msgid "The nftables ruleset to use.  This may be any ``file-like'' object (@pxref{G-Expressions, file-like objects})."
-msgstr "El conjunto de reglas de nftables usado. Puede ser cualquier objeto ``tipo-fichero'' (@pxref{G-Expressions, objetos ``tipo-fichero''})."
+msgstr "El conjunto de reglas de nftables usado. Puede ser cualquier objeto ``tipo-archivo'' (@pxref{G-Expressions, objetos ``tipo-archivo''})."
 
 #. type: cindex
-#: doc/guix.texi:13685
+#: doc/guix.texi:15946
 #, no-wrap
 msgid "NTP (Network Time Protocol), service"
 msgstr "NTP (protocolo de tiempo de red), servicio"
 
 #. type: cindex
-#: doc/guix.texi:13686
+#: doc/guix.texi:15947
 #, no-wrap
 msgid "ntpd, service for the Network Time Protocol daemon"
 msgstr "ntpd, servicio para el daemon del protocolo de tiempo de red NTP"
 
 #. type: cindex
-#: doc/guix.texi:13687
+#: doc/guix.texi:15948
 #, no-wrap
 msgid "real time clock"
 msgstr "reloj de tiempo real"
 
 #. type: defvr
-#: doc/guix.texi:13688
+#: doc/guix.texi:15949
 #, no-wrap
 msgid "{Scheme Variable} ntp-service-type"
 msgstr "{Variable Scheme} ntp-service-type"
 
 #. type: defvr
-#: doc/guix.texi:13692
+#: doc/guix.texi:15953
 msgid "This is the type of the service running the @uref{https://www.ntp.org, Network Time Protocol (NTP)} daemon, @command{ntpd}.  The daemon will keep the system clock synchronized with that of the specified NTP servers."
 msgstr "Este es el tipo del servicio que ejecuta el daemon del @uref{https://www.ntp.org, protocolo de tiempo en red (NTP)}, @command{ntpd}. El daemon mantendrá el reloj del sistema sincronizado con el de los servidores NTP especificados."
 
 #. type: defvr
-#: doc/guix.texi:13695
+#: doc/guix.texi:15956
 msgid "The value of this service is an @code{ntpd-configuration} object, as described below."
 msgstr "El valor de este servicio es un objeto @code{ntpd-configuration}, como se describe a continuación."
 
 #. type: deftp
-#: doc/guix.texi:13697
+#: doc/guix.texi:15958
 #, no-wrap
 msgid "{Data Type} ntp-configuration"
 msgstr "{Tipo de datos} ntp-configuration"
 
 #. type: deftp
-#: doc/guix.texi:13699
+#: doc/guix.texi:15960
 msgid "This is the data type for the NTP service configuration."
 msgstr "Este es el tipo de datos para la configuración del servicio NTP."
 
 #. type: item
-#: doc/guix.texi:13701
+#: doc/guix.texi:15962
 #, no-wrap
 msgid "@code{servers} (default: @code{%ntp-servers})"
 msgstr "@code{servers} (predeterminados: @code{%ntp-servers})"
 
 #. type: table
-#: doc/guix.texi:13705
+#: doc/guix.texi:15966
 msgid "This is the list of servers (@code{<ntp-server>} records) with which @command{ntpd} will be synchronized.  See the @code{ntp-server} data type definition below."
 msgstr "La lista de servidores (registros @code{<ntp-server>}) con los que la herramienta @command{ntpd} se sincronizará. Véase la información sobre el tipo de datos @code{ntp-server} a continuación."
 
 #. type: item
-#: doc/guix.texi:13706
+#: doc/guix.texi:15967
 #, no-wrap
 msgid "@code{allow-large-adjustment?} (default: @code{#t})"
 msgstr "@code{allow-large-adjustment?} (predeterminado: @code{#t})"
 
 #. type: table
-#: doc/guix.texi:13709
+#: doc/guix.texi:15970
 msgid "This determines whether @command{ntpd} is allowed to make an initial adjustment of more than 1,000 seconds."
 msgstr "Esto determina si se le permite a @command{ntpd} realizar un ajuste inicial de más de 1000 segundos."
 
 #. type: item
-#: doc/guix.texi:13710
+#: doc/guix.texi:15971
 #, no-wrap
 msgid "@code{ntp} (default: @code{ntp})"
 msgstr "@code{ntp} (predeterminado: @code{ntp})"
 
 #. type: table
-#: doc/guix.texi:13712
+#: doc/guix.texi:15973
 msgid "The NTP package to use."
 msgstr "El paquete NTP usado."
 
 #. type: defvr
-#: doc/guix.texi:13715
+#: doc/guix.texi:15976
 #, no-wrap
 msgid "{Scheme Variable} %ntp-servers"
 msgstr "{Variable Scheme} %ntp-servers"
 
 # FUZZY
 #. type: defvr
-#: doc/guix.texi:13718
+#: doc/guix.texi:15979
 msgid "List of host names used as the default NTP servers.  These are servers of the @uref{https://www.ntppool.org/en/, NTP Pool Project}."
 msgstr "Lista de nombres de máquinas usadas como servidores NTP predeterminados. Son servidores del @uref{https://www.ntppool.org/en/, NTP Pool Project}."
 
 #. type: deftp
-#: doc/guix.texi:13720
+#: doc/guix.texi:15981
 #, no-wrap
 msgid "{Data Type} ntp-server"
 msgstr "{Tipo de datos} ntp-server"
 
 #. type: deftp
-#: doc/guix.texi:13722
+#: doc/guix.texi:15983
 msgid "The data type representing the configuration of a NTP server."
 msgstr "Tipo de datos que representa la configuración de un servidor NTP."
 
 #. type: item
-#: doc/guix.texi:13724
+#: doc/guix.texi:15985
 #, no-wrap
 msgid "@code{type} (default: @code{'server})"
 msgstr "@code{type} (predeterminado: @code{'server})"
 
 #. type: table
-#: doc/guix.texi:13727
+#: doc/guix.texi:15988
 msgid "The type of the NTP server, given as a symbol. One of @code{'pool}, @code{'server}, @code{'peer}, @code{'broadcast} or @code{'manycastclient}."
 msgstr "El tipo del servidor NTP, proporcionado como un símbolo. Puede ser @code{'pool}, @code{'server}, @code{'peer}, @code{'broadcast} o @code{'manycastclient}."
 
 # FUZZY
 #. type: code{#1}
-#: doc/guix.texi:13728
+#: doc/guix.texi:15989
 #, no-wrap
 msgid "address"
 msgstr "address"
 
 #. type: table
-#: doc/guix.texi:13730
+#: doc/guix.texi:15991
 msgid "The address of the server, as a string."
 msgstr "La dirección del servidor, como una cadena."
 
 #. type: code{#1}
-#: doc/guix.texi:13731 doc/guix.texi:25682 doc/guix.texi:25702
+#: doc/guix.texi:15992 doc/guix.texi:29629 doc/guix.texi:29649
 #, no-wrap
 msgid "options"
 msgstr "options"
 
 #. type: table
-#: doc/guix.texi:13736
+#: doc/guix.texi:15997
 msgid "NTPD options to use with that specific server, given as a list of option names and/or of option names and values tuples. The following example define a server to use with the options @option{iburst} and @option{prefer}, as well as @option{version} 3 and a @option{maxpoll} time of 16 seconds."
 msgstr "Opciones de NTPD usadas en ese servidor específico, proporcionada como una lista de nombres de opciones y/o tuplas de nombre y valor. El siguiente ejemplo define un servidor con el que se usan las opciones @option{iburst} y @option{prefer}, así como @option{version} 3 y un tiempo de 16 segundos para @option{maxpoll}."
 
 #. type: example
-#: doc/guix.texi:13742
+#: doc/guix.texi:16003
 #, no-wrap
 msgid ""
 "(ntp-server\n"
@@ -25893,24 +29804,24 @@ msgstr ""
 " (options `(iburst (version 3) (maxpoll 16) prefer))))\n"
 
 #. type: cindex
-#: doc/guix.texi:13746
+#: doc/guix.texi:16007
 #, no-wrap
 msgid "OpenNTPD"
 msgstr "OpenNTPD"
 
 #. type: deffn
-#: doc/guix.texi:13747
+#: doc/guix.texi:16008
 #, no-wrap
 msgid "{Scheme Procedure} openntpd-service-type"
 msgstr "{Procedimiento Scheme} openntpd-service-type"
 
 #. type: deffn
-#: doc/guix.texi:13751
+#: doc/guix.texi:16012
 msgid "Run the @command{ntpd}, the Network Time Protocol (NTP) daemon, as implemented by @uref{http://www.openntpd.org, OpenNTPD}.  The daemon will keep the system clock synchronized with that of the given servers."
 msgstr "Ejecuta @command{ntpd}, el daemon del protocolo de tiempo en red (NTP), implementado por @uref{http://www.openntpd.org, OpenNTPD}. El daemon mantendrá el reloj del sistema sincronizado con el de los servidores proporcionados."
 
 #. type: lisp
-#: doc/guix.texi:13761
+#: doc/guix.texi:16022
 #, no-wrap
 msgid ""
 "(service\n"
@@ -25934,91 +29845,91 @@ msgstr ""
 "\n"
 
 #. type: defvr
-#: doc/guix.texi:13765
+#: doc/guix.texi:16026
 #, no-wrap
 msgid "{Scheme Variable} %openntpd-servers"
 msgstr "{Variable Scheme} %openntpd-servers"
 
 #. type: defvr
-#: doc/guix.texi:13768
-msgid "This variable is a list of the server addresses defined in @var{%ntp-servers}."
-msgstr "Esta variable es una lista de las direcciones de servidores definidos en @var{%ntp-servers}."
+#: doc/guix.texi:16029
+msgid "This variable is a list of the server addresses defined in @code{%ntp-servers}."
+msgstr "Esta variable es una lista de las direcciones de servidores definidos en @code{%ntp-servers}."
 
 #. type: deftp
-#: doc/guix.texi:13770
+#: doc/guix.texi:16031
 #, no-wrap
 msgid "{Data Type} openntpd-configuration"
 msgstr "{Tipo de datos} openntpd-configuration"
 
 #. type: item
-#: doc/guix.texi:13772
+#: doc/guix.texi:16033
 #, no-wrap
 msgid "@code{openntpd} (default: @code{(file-append openntpd \"/sbin/ntpd\")})"
 msgstr "@code{openntpd} (predeterminado: @code{(file-append openntpd \"/sbin/ntpd\")})"
 
 #. type: table
-#: doc/guix.texi:13774
+#: doc/guix.texi:16035
 msgid "The openntpd executable to use."
 msgstr "El ejecutable openntpd usado."
 
 #. type: item
-#: doc/guix.texi:13774
+#: doc/guix.texi:16035
 #, no-wrap
 msgid "@code{listen-on} (default: @code{'(\"127.0.0.1\" \"::1\")})"
 msgstr "@code{listen-on} (predeterminadas: @code{'(\"127.0.0.1\" \"::1\")})"
 
 #. type: table
-#: doc/guix.texi:13776
+#: doc/guix.texi:16037
 msgid "A list of local IP addresses or hostnames the ntpd daemon should listen on."
 msgstr "Una lista de direcciones IP o nombres de máquina en los que el daemon ntpd debe escuchar conexiones."
 
 #. type: item
-#: doc/guix.texi:13776
+#: doc/guix.texi:16037
 #, no-wrap
 msgid "@code{query-from} (default: @code{'()})"
 msgstr "@code{query-from} (predeterminadas: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:13778
+#: doc/guix.texi:16039
 msgid "A list of local IP address the ntpd daemon should use for outgoing queries."
 msgstr "Una lista de direcciones IP locales que el daemon ntpd debe usar para consultas salientes."
 
 #. type: item
-#: doc/guix.texi:13778
+#: doc/guix.texi:16039
 #, no-wrap
 msgid "@code{sensor} (default: @code{'()})"
 msgstr "@code{sensor} (predeterminados: @code{'()})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:13783
+#: doc/guix.texi:16044
 msgid "Specify a list of timedelta sensor devices ntpd should use.  @code{ntpd} will listen to each sensor that actually exists and ignore non-existent ones.  See @uref{https://man.openbsd.org/ntpd.conf, upstream documentation} for more information."
 msgstr "Especifica una lista de dispositivos de sensores de tiempo de ntpd debería usar. @code{ntpd} escuchará cada sensor que realmente exista e ignora los que no. Véase la @uref{https://man.openbsd.org/ntpd.conf, documentación de las desarrolladoras originales} para más información."
 
 #. type: item
-#: doc/guix.texi:13783
+#: doc/guix.texi:16044
 #, no-wrap
 msgid "@code{server} (default: @code{'()})"
 msgstr "@code{server} (predeterminado: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:13785
+#: doc/guix.texi:16046
 msgid "Specify a list of IP addresses or hostnames of NTP servers to synchronize to."
 msgstr "Especifica una lista de direcciones IP o nombres de máquina de servidores NTP con los que sincronizarse."
 
 #. type: item
-#: doc/guix.texi:13785
+#: doc/guix.texi:16046
 #, no-wrap
-msgid "@code{servers} (default: @var{%openntp-servers})"
-msgstr "@code{servers} (predeterminadas: @var{%openntp-servers})"
+msgid "@code{servers} (default: @code{%openntp-servers})"
+msgstr "@code{servers} (predeterminada: @code{%openntp-servers})"
 
 #. type: table
-#: doc/guix.texi:13787
+#: doc/guix.texi:16048
 msgid "Specify a list of IP addresses or hostnames of NTP pools to synchronize to."
 msgstr "Una lista de direcciones IP o nombres de máquina con los que el daemon ntpd se debe sincronizar."
 
 #. type: item
-#: doc/guix.texi:13787
+#: doc/guix.texi:16048
 #, no-wrap
 msgid "@code{constraint-from} (default: @code{'()})"
 msgstr "@code{constraint-from} (predeterminado: @code{'()})"
@@ -26026,57 +29937,57 @@ msgstr "@code{constraint-from} (predeterminado: @code{'()})"
 # FUZZY
 # TODO (MAAV): Reescribir probablemente.
 #. type: table
-#: doc/guix.texi:13794
+#: doc/guix.texi:16055
 msgid "@code{ntpd} can be configured to query the ‘Date’ from trusted HTTPS servers via TLS.  This time information is not used for precision but acts as an authenticated constraint, thereby reducing the impact of unauthenticated NTP man-in-the-middle attacks.  Specify a list of URLs, IP addresses or hostnames of HTTPS servers to provide a constraint."
 msgstr "@code{ntpd} puede configurarse para que solicite la fecha a través del campo ``Date'' de servidores HTTPS en los que se confíe a través de TLS. Esta información de tiempo no se usa por precisión pero actúa como una condición verificada, por tanto reduciendo el impacto de ataques mediante la intervención del tráfico con servidores NTP no verificados. Especifica una lista de URL, direcciones IP o nombres de máquina de servidores HTTPS que proporcionarán la condición."
 
 #. type: item
-#: doc/guix.texi:13794
+#: doc/guix.texi:16055
 #, no-wrap
 msgid "@code{constraints-from} (default: @code{'()})"
 msgstr "@code{constraints-from} (predeterminadas: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:13798
+#: doc/guix.texi:16059
 msgid "As with constraint from, specify a list of URLs, IP addresses or hostnames of HTTPS servers to provide a constraint.  Should the hostname resolve to multiple IP addresses, @code{ntpd} will calculate a median constraint from all of them."
 msgstr "Como en @var{constraint-from}, proporciona una lista de URL, direcciones IP o nombres de máquina de servidores HTTP para proporcionar la condición. En caso de que el nombre de máquina resuelva en múltiples direcciones IP, @code{ntpd} calculará la condición mediana de todas ellas."
 
 #. type: item
-#: doc/guix.texi:13798
+#: doc/guix.texi:16059
 #, no-wrap
 msgid "@code{allow-large-adjustment?} (default: @code{#f})"
 msgstr "@code{allow-large-adjustment?} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:13801
+#: doc/guix.texi:16062
 msgid "Determines if @code{ntpd} is allowed to make an initial adjustment of more than 180 seconds."
 msgstr "Determina si se permite a @code{ntpd} realizar un ajuste inicial de más de 180 segundos."
 
 #. type: cindex
-#: doc/guix.texi:13804
+#: doc/guix.texi:16065
 #, no-wrap
 msgid "inetd"
 msgstr "inetd"
 
 #. type: deffn
-#: doc/guix.texi:13805
+#: doc/guix.texi:16066
 #, no-wrap
 msgid "{Scheme variable} inetd-service-type"
 msgstr "{Variable Scheme} inetd-service-type"
 
 #. type: deffn
-#: doc/guix.texi:13810
+#: doc/guix.texi:16071
 msgid "This service runs the @command{inetd} (@pxref{inetd invocation,,, inetutils, GNU Inetutils}) daemon.  @command{inetd} listens for connections on internet sockets, and lazily starts the specified server program when a connection is made on one of these sockets."
 msgstr "Este servicio ejecuta el daemon @command{inetd} (@pxref{inetd invocation,,, inetutils, GNU Inetutils}). @command{inetd} escucha conexiones en sockets de internet, e inicia bajo demanda el programa servidor cuando se realiza una conexión en uno de esos sockets."
 
 # FUZZY
 #. type: deffn
-#: doc/guix.texi:13816
+#: doc/guix.texi:16077
 msgid "The value of this service is an @code{inetd-configuration} object.  The following example configures the @command{inetd} daemon to provide the built-in @command{echo} service, as well as an smtp service which forwards smtp traffic over ssh to a server @code{smtp-server} behind a gateway @code{hostname}:"
 msgstr "El valor de este servicio es un objeto @code{inetd-configuration}. El ejemplo siguiente configura el daemon @command{inetd} para proporcionar el servicio @command{echo} implementado por él mismo, así como un servicio smtp que reenvía el tráfico smtp por ssh a un servidor @code{servidor-smtp} tras la pasarela @code{máquina}:"
 
 #. type: lisp
-#: doc/guix.texi:13839
+#: doc/guix.texi:16100
 #, no-wrap
 msgid ""
 "(service\n"
@@ -26124,226 +30035,226 @@ msgstr ""
 "                \"-W\" \"servidor-smtp:25\" \"usuaria@@maquina\")))))))\n"
 
 #. type: deffn
-#: doc/guix.texi:13842
+#: doc/guix.texi:16103
 msgid "See below for more details about @code{inetd-configuration}."
 msgstr "A continuación se proporcionan más detalles acerca de @code{inetd-configuration}."
 
 #. type: deftp
-#: doc/guix.texi:13844
+#: doc/guix.texi:16105
 #, no-wrap
 msgid "{Data Type} inetd-configuration"
 msgstr "{Tipo de datos} inetd-configuration"
 
 #. type: deftp
-#: doc/guix.texi:13846
+#: doc/guix.texi:16107
 msgid "Data type representing the configuration of @command{inetd}."
 msgstr "Tipo de datos que representa la configuración de @command{inetd}."
 
 #. type: item
-#: doc/guix.texi:13848
+#: doc/guix.texi:16109
 #, no-wrap
 msgid "@code{program} (default: @code{(file-append inetutils \"/libexec/inetd\")})"
 msgstr "@code{program} (predeterminado: @code{(file-append inetutils \"/libexec/inetd\")})"
 
 #. type: table
-#: doc/guix.texi:13850
+#: doc/guix.texi:16111
 msgid "The @command{inetd} executable to use."
 msgstr "El ejecutable @command{inetd} usado."
 
 #. type: item
-#: doc/guix.texi:13851 doc/guix.texi:21373
+#: doc/guix.texi:16112 doc/guix.texi:24146
 #, no-wrap
 msgid "@code{entries} (default: @code{'()})"
 msgstr "@code{entries} (predeterminadas: @code{'()})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:13854
+#: doc/guix.texi:16115
 msgid "A list of @command{inetd} service entries.  Each entry should be created by the @code{inetd-entry} constructor."
 msgstr "Una lista de entradas de servicio de @command{inetd}. Cada entrada debe crearse con el constructor @code{inted-entry}."
 
 #. type: deftp
-#: doc/guix.texi:13857
+#: doc/guix.texi:16118
 #, no-wrap
 msgid "{Data Type} inetd-entry"
 msgstr "{Tipo de datos} inetd-entry"
 
 #. type: deftp
-#: doc/guix.texi:13861
+#: doc/guix.texi:16122
 msgid "Data type representing an entry in the @command{inetd} configuration.  Each entry corresponds to a socket where @command{inetd} will listen for requests."
 msgstr "Tipo de datos que representa una entrada en la configuración de @command{inetd}. Cada entrada corresponde a un socket en el que @command{inetd} escuchará a la espera de peticiones."
 
 #. type: item
-#: doc/guix.texi:13863
+#: doc/guix.texi:16124
 #, no-wrap
 msgid "@code{node} (default: @code{#f})"
 msgstr "@code{node} (predeterminado: @code{#f})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:13868
+#: doc/guix.texi:16129
 msgid "Optional string, a comma-separated list of local addresses @command{inetd} should use when listening for this service.  @xref{Configuration file,,, inetutils, GNU Inetutils} for a complete description of all options."
 msgstr "Cadena opcional, una lista separada por comas de direcciones locales que @command{inetd} debería usar cuando se escuche para este servicio. @xref{Configuration file,,, inetutils, GNU Inetutils} para una descripción completa de todas las opciones."
 
 #. type: table
-#: doc/guix.texi:13870
+#: doc/guix.texi:16131
 msgid "A string, the name must correspond to an entry in @code{/etc/services}."
 msgstr "Una cadena, el nombre debe corresponder con una entrada en @code{/etc/services}."
 
 #. type: code{#1}
-#: doc/guix.texi:13870
+#: doc/guix.texi:16131
 #, no-wrap
 msgid "socket-type"
 msgstr "socket-type"
 
 #. type: table
-#: doc/guix.texi:13873
+#: doc/guix.texi:16134
 msgid "One of @code{'stream}, @code{'dgram}, @code{'raw}, @code{'rdm} or @code{'seqpacket}."
 msgstr "Puede ser @code{'stream}, @code{'dgram}, @code{'raw}, @code{'rdm} o @code{'seqpacket}."
 
 #. type: code{#1}
-#: doc/guix.texi:13873
+#: doc/guix.texi:16134
 #, no-wrap
 msgid "protocol"
 msgstr "protocol"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:13875
+#: doc/guix.texi:16136
 msgid "A string, must correspond to an entry in @code{/etc/protocols}."
 msgstr "Una cadena, debe corresponder con una entrada en @code{/etc/protocols}."
 
 #. type: item
-#: doc/guix.texi:13875
+#: doc/guix.texi:16136
 #, no-wrap
 msgid "@code{wait?} (default: @code{#t})"
 msgstr "@code{wait?} (predeterminado: @code{#t})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:13878
+#: doc/guix.texi:16139
 msgid "Whether @command{inetd} should wait for the server to exit before listening to new service requests."
 msgstr "Si @command{inetd} debe esperar la salida del servidor antes de reiniciar la escucha de nuevas peticiones de servicio."
 
 #. type: table
-#: doc/guix.texi:13883
+#: doc/guix.texi:16144
 msgid "A string containing the user (and, optionally, group) name of the user as whom the server should run.  The group name can be specified in a suffix, separated by a colon or period, i.e.@: @code{\"user\"}, @code{\"user:group\"} or @code{\"user.group\"}."
 msgstr "Una cadena que contiene el nombre (y, opcionalmente, el grupo) de la usuaria como la que se deberá ejecutar el servidor. El nombe de grupo se puede especificar en un sufijo, separado por dos puntos o un punto normal, es decir @code{\"usuaria\"}, @code{\"usuaria:grupo\"} o @code{\"usuaria.grupo\"}."
 
 #. type: item
-#: doc/guix.texi:13883
+#: doc/guix.texi:16144
 #, no-wrap
 msgid "@code{program} (default: @code{\"internal\"})"
 msgstr "@code{program} (predeterminado: @code{\"internal\"})"
 
 #. type: table
-#: doc/guix.texi:13886
+#: doc/guix.texi:16147
 msgid "The server program which will serve the requests, or @code{\"internal\"} if @command{inetd} should use a built-in service."
 msgstr "El programa servidor que recibirá las peticiones, o @code{\"internal\"} si @command{inetd} debería usar un servicio implementado internamente."
 
 #. type: table
-#: doc/guix.texi:13891
+#: doc/guix.texi:16152
 msgid "A list strings or file-like objects, which are the server program's arguments, starting with the zeroth argument, i.e.@: the name of the program itself.  For @command{inetd}'s internal services, this entry must be @code{'()} or @code{'(\"internal\")}."
-msgstr "Una lista de cadenas u objetos ``tipo-fichero'', que serán los parámetros del programa servidor, empezando con el parámetro 0, es decir, el nombre del programa en sí mismo. Para los servicios internos de @command{inetd}, esta entrada debe ser @code{'()} o @code{'(\"internal\")}."
+msgstr "Una lista de cadenas u objetos ``tipo-archivo'', que serán los parámetros del programa servidor, empezando con el parámetro 0, es decir, el nombre del programa en sí mismo. Para los servicios internos de @command{inetd}, esta entrada debe ser @code{'()} o @code{'(\"internal\")}."
 
 #. type: deftp
-#: doc/guix.texi:13895
+#: doc/guix.texi:16156
 msgid "@xref{Configuration file,,, inetutils, GNU Inetutils} for a more detailed discussion of each configuration field."
 msgstr "@xref{Configuration file,,, inetutils, GNU Inetutils}, para una información más detallada sobre cada campo de la configuración."
 
 #. type: cindex
-#: doc/guix.texi:13897
+#: doc/guix.texi:16158
 #, no-wrap
 msgid "Tor"
 msgstr "Tor"
 
 #. type: defvr
-#: doc/guix.texi:13898
+#: doc/guix.texi:16159
 #, no-wrap
 msgid "{Scheme Variable} tor-service-type"
 msgstr "{Variable Scheme} tor-service-type"
 
 #. type: defvr
-#: doc/guix.texi:13903
+#: doc/guix.texi:16164
 msgid "This is the type for a service that runs the @uref{https://torproject.org, Tor} anonymous networking daemon.  The service is configured using a @code{<tor-configuration>} record.  By default, the Tor daemon runs as the @code{tor} unprivileged user, which is a member of the @code{tor} group."
 msgstr "Este es el tipo para un servicio que ejecuta el daemon de red anónima @uref{https://torproject.org, Tor}. El servicio se configura mediante un registro @code{<tor-configuration>}. De manera predeterminada, el daemon Tor se ejecuta como la usuaria sin privilegios @code{tor}, que es miembro del grupo @code{tor}."
 
 #. type: deftp
-#: doc/guix.texi:13906
+#: doc/guix.texi:16167
 #, no-wrap
 msgid "{Data Type} tor-configuration"
 msgstr "{Tipo de datos} tor-configuration"
 
 #. type: item
-#: doc/guix.texi:13908
+#: doc/guix.texi:16169
 #, no-wrap
 msgid "@code{tor} (default: @code{tor})"
 msgstr "@code{tor} (predeterminado: @code{tor})"
 
 #. type: table
-#: doc/guix.texi:13913
+#: doc/guix.texi:16174
 msgid "The package that provides the Tor daemon.  This package is expected to provide the daemon at @file{bin/tor} relative to its output directory.  The default package is the @uref{https://www.torproject.org, Tor Project's} implementation."
 msgstr "El paquete que proporciona el daemon Tor. Se espera que este paquete proporcione el daemon en @file{bin/tor} de manera relativa al directorio de su salida. El paquete predeterminado es la implementación del @uref{https://www.torproject.org, Proyecto Tor}."
 
 #. type: item
-#: doc/guix.texi:13914
+#: doc/guix.texi:16175
 #, no-wrap
 msgid "@code{config-file} (default: @code{(plain-file \"empty\" \"\")})"
 msgstr "@code{config-file} (predeterminado: @code{(plain-file \"empty\" \"\")})"
 
 #. type: table
-#: doc/guix.texi:13920
+#: doc/guix.texi:16181
 msgid "The configuration file to use.  It will be appended to a default configuration file, and the final configuration file will be passed to @code{tor} via its @code{-f} option.  This may be any ``file-like'' object (@pxref{G-Expressions, file-like objects}).  See @code{man tor} for details on the configuration file syntax."
-msgstr "El fichero de configuración usado. Se agregará al final del fichero de configuración predeterminado, y se proporcionará el fichero de configuración resultante a @code{tor} a través de su opción @code{-f}. Puede ser cualquier objeto ``tipo-fichero'' (@pxref{G-Expressions, objetos ``tipo-fichero''}). Véase @code{man tor} para detalles sobre la sintaxis del fichero de configuración."
+msgstr "El archivo de configuración usado. Se agregará al final del archivo de configuración predeterminado, y se proporcionará el archivo de configuración resultante a @code{tor} a través de su opción @code{-f}. Puede ser cualquier objeto ``tipo-archivo'' (@pxref{G-Expressions, objetos ``tipo-archivo''}). Véase @code{man tor} para detalles sobre la sintaxis del archivo de configuración."
 
 #. type: item
-#: doc/guix.texi:13921
+#: doc/guix.texi:16182
 #, no-wrap
 msgid "@code{hidden-services} (default: @code{'()})"
 msgstr "@code{hidden-services} (predeterminados: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:13927
+#: doc/guix.texi:16188
 msgid "The list of @code{<hidden-service>} records to use.  For any hidden service you include in this list, appropriate configuration to enable the hidden service will be automatically added to the default configuration file.  You may conveniently create @code{<hidden-service>} records using the @code{tor-hidden-service} procedure described below."
-msgstr "La lista de registros de servicios ocultos @code{<hidden-service>} usados. Para cada servicio oculto que añada en esta lista, se activará la configuración apropiada para su activación en el fichero de configuración predeterminado. Puede crear registros @code{<hidden-service>} de manera conveniente mediante el uso del procedimiento @code{tor-hidden-service} descrito a continuación."
+msgstr "La lista de registros de servicios ocultos @code{<hidden-service>} usados. Para cada servicio oculto que añada en esta lista, se activará la configuración apropiada para su activación en el archivo de configuración predeterminado. Puede crear registros @code{<hidden-service>} de manera conveniente mediante el uso del procedimiento @code{tor-hidden-service} descrito a continuación."
 
 #. type: item
-#: doc/guix.texi:13928
+#: doc/guix.texi:16189
 #, no-wrap
 msgid "@code{socks-socket-type} (default: @code{'tcp})"
 msgstr "@code{socks-socket-type} (predeterminado: @code{'tcp})"
 
 #. type: table
-#: doc/guix.texi:13935
+#: doc/guix.texi:16196
 msgid "The default socket type that Tor should use for its SOCKS socket.  This must be either @code{'tcp} or @code{'unix}.  If it is @code{'tcp}, then by default Tor will listen on TCP port 9050 on the loopback interface (i.e., localhost).  If it is @code{'unix}, then Tor will listen on the UNIX domain socket @file{/var/run/tor/socks-sock}, which will be made writable by members of the @code{tor} group."
 msgstr "El tipo socket predeterminado que Tor debe usar para su socket SOCKS. Debe ser @code{'tcp} i @code{'unix}. Si es @code{'tcp}, Tor escuchará en el puerto TCP 9050 de la interfaz local (es decir, localhost) de manera predeterminada. Si es @code{'unix}, tor escuchará en el socket de dominio de UNIX @file{/var/run/tor/socks-sock}, que tendrá permisos de escritura para miembros del grupo @code{tor}."
 
 # FUZZY
 # TODO (MAAV): Override.
 #. type: table
-#: doc/guix.texi:13940
+#: doc/guix.texi:16201
 msgid "If you want to customize the SOCKS socket in more detail, leave @code{socks-socket-type} at its default value of @code{'tcp} and use @code{config-file} to override the default by providing your own @code{SocksPort} option."
 msgstr "Si desea personalizar el socket SOCKS de manera más detallada, mantenga @code{socks-socket-type} con su valor predeterminado de @code{'tcp} y use @code{config-file} para modificar el valor predeterminado proporcionando su propia opción @code{SocksPort}."
 
 #. type: cindex
-#: doc/guix.texi:13943
+#: doc/guix.texi:16204
 #, no-wrap
 msgid "hidden service"
 msgstr "servicio oculto"
 
 #. type: deffn
-#: doc/guix.texi:13944
+#: doc/guix.texi:16205
 #, no-wrap
 msgid "{Scheme Procedure} tor-hidden-service @var{name} @var{mapping}"
 msgstr "{Procedimiento Scheme} tor-hidden-service @var{nombre} @var{relación}"
 
 #. type: deffn
-#: doc/guix.texi:13947
+#: doc/guix.texi:16208
 msgid "Define a new Tor @dfn{hidden service} called @var{name} and implementing @var{mapping}.  @var{mapping} is a list of port/host tuples, such as:"
 msgstr "Define un @dfn{servicio oculto} Tor llamado @var{nombre} y que implementa la @var{relación}. @var{relación} es una lista de tuplas puerto/máquina, como:"
 
 #. type: example
-#: doc/guix.texi:13951
+#: doc/guix.texi:16212
 #, no-wrap
 msgid ""
 " '((22 \"127.0.0.1:22\")\n"
@@ -26353,78 +30264,78 @@ msgstr ""
 "   (80 \"127.0.0.1:8080\"))\n"
 
 #. type: deffn
-#: doc/guix.texi:13955
+#: doc/guix.texi:16216
 msgid "In this example, port 22 of the hidden service is mapped to local port 22, and port 80 is mapped to local port 8080."
 msgstr "En este ejemplo, el puerto 22 del servicio oculto se asocia con el puerto 22 local, y el puerto 80 se asocia con el puerto 8080 local."
 
 #. type: deffn
-#: doc/guix.texi:13959
+#: doc/guix.texi:16220
 msgid "This creates a @file{/var/lib/tor/hidden-services/@var{name}} directory, where the @file{hostname} file contains the @code{.onion} host name for the hidden service."
-msgstr "Esto crea un directorio @file{/var/lib/tor/hidden-services/@var{nombre}}, donde el fichero @file{hostname} contiene el nombre de máquina @code{.onion} para el servicio oculto."
+msgstr "Esto crea un directorio @file{/var/lib/tor/hidden-services/@var{nombre}}, donde el archivo @file{hostname} contiene el nombre de máquina @code{.onion} para el servicio oculto."
 
 #. type: deffn
-#: doc/guix.texi:13962
+#: doc/guix.texi:16223
 msgid "See @uref{https://www.torproject.org/docs/tor-hidden-service.html.en, the Tor project's documentation} for more information."
 msgstr "Véase @uref{https://www.torproject.org/docs/tor-hidden-service.html.en, la documentación del proyecto Tor} para más información."
 
 #. type: Plain text
-#: doc/guix.texi:13965
+#: doc/guix.texi:16226
 msgid "The @code{(gnu services rsync)} module provides the following services:"
 msgstr "El módulo @code{(gnu services rsync)} proporciona los siguientes servicios:"
 
 # FUZZY
 # TODO (MAAV): Descargar, subir...
 #. type: Plain text
-#: doc/guix.texi:13969
+#: doc/guix.texi:16230
 msgid "You might want an rsync daemon if you have files that you want available so anyone (or just yourself) can download existing files or upload new files."
-msgstr "Puede ser que desee un daemon rsync si tiene ficheros que desee tener disponibles de modo que cualquiera (o simplemente usted) pueda descargar ficheros existentes o subir nuevos ficheros."
+msgstr "Puede ser que desee un daemon rsync si tiene archivos que desee tener disponibles de modo que cualquiera (o simplemente usted) pueda descargar archivos existentes o subir nuevos archivos."
 
 #. type: deffn
-#: doc/guix.texi:13970
+#: doc/guix.texi:16231
 #, no-wrap
 msgid "{Scheme Variable} rsync-service-type"
 msgstr "{Variable Scheme} rsync-service-type"
 
 #. type: deffn
-#: doc/guix.texi:13974
+#: doc/guix.texi:16235
 msgid "This is the service type for the @uref{https://rsync.samba.org, rsync} daemon, The value for this service type is a @command{rsync-configuration} record as in this example:"
 msgstr "Este es el tipo de servicio para el daemon @uref{https://rsync.samba.org, rsync}. El valor tipo de servicio es un registro @command{rsync-configuration} como en este ejemplo."
 
 #. type: lisp
-#: doc/guix.texi:13977
+#: doc/guix.texi:16238
 #, no-wrap
 msgid "(service rsync-service-type)\n"
 msgstr "(service rsync-service-type)\n"
 
 #. type: deffn
-#: doc/guix.texi:13980
+#: doc/guix.texi:16241
 msgid "See below for details about @code{rsync-configuration}."
 msgstr "Véase a continuación para detalles sobre @code{rsync-configuration}."
 
 #. type: deftp
-#: doc/guix.texi:13982
+#: doc/guix.texi:16243
 #, no-wrap
 msgid "{Data Type} rsync-configuration"
 msgstr "{Tipo de datos} rsync-configuration"
 
 #. type: deftp
-#: doc/guix.texi:13984
+#: doc/guix.texi:16245
 msgid "Data type representing the configuration for @code{rsync-service}."
 msgstr "Tipo de datos que representa la configuración para @code{rsync-service}."
 
 #. type: item
-#: doc/guix.texi:13986
+#: doc/guix.texi:16247
 #, no-wrap
 msgid "@code{package} (default: @var{rsync})"
 msgstr "@code{package} (predeterminado: @var{rsync})"
 
 #. type: table
-#: doc/guix.texi:13988
+#: doc/guix.texi:16249
 msgid "@code{rsync} package to use."
 msgstr "Paquete @code{rsync} usado."
 
 #. type: item
-#: doc/guix.texi:13989
+#: doc/guix.texi:16250
 #, no-wrap
 msgid "@code{port-number} (default: @code{873})"
 msgstr "@code{port-number} (predeterminado: @code{873})"
@@ -26433,172 +30344,172 @@ msgstr "@code{port-number} (predeterminado: @code{873})"
 # TODO (MAAV): ¿Esto es verdad? Juraría que es posible darle solo esa
 # capacidad a un programa al menos en linux...
 #. type: table
-#: doc/guix.texi:13993
+#: doc/guix.texi:16254
 msgid "TCP port on which @command{rsync} listens for incoming connections.  If port is less than @code{1024} @command{rsync} needs to be started as the @code{root} user and group."
 msgstr "Puerto TCP en el que @command{rsync} escucha conexiones entrantes. Si el puerto es menor a @code{1024}, @command{rsync} necesita iniciarse como @code{root}, tanto usuaria como grupo."
 
 #. type: item
-#: doc/guix.texi:13994
+#: doc/guix.texi:16255
 #, no-wrap
 msgid "@code{pid-file} (default: @code{\"/var/run/rsyncd/rsyncd.pid\"})"
 msgstr "@code{pid-file} (predeterminado: @code{\"/var/run/rsyncd/rsyncd.pid\"})"
 
 #. type: table
-#: doc/guix.texi:13996
+#: doc/guix.texi:16257
 msgid "Name of the file where @command{rsync} writes its PID."
-msgstr "Nombre del fichero donde @command{rsync} escribe su PID."
+msgstr "Nombre del archivo donde @command{rsync} escribe su PID."
 
 #. type: item
-#: doc/guix.texi:13997
+#: doc/guix.texi:16258
 #, no-wrap
 msgid "@code{lock-file} (default: @code{\"/var/run/rsyncd/rsyncd.lock\"})"
 msgstr "@code{lock-file} (predeterminado: @code{\"/var/run/rsyncd/rsyncd.lock\"})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:13999
+#: doc/guix.texi:16260
 msgid "Name of the file where @command{rsync} writes its lock file."
-msgstr "Nombre del fichero donde @command{rsync} escribe su fichero de bloqueo."
+msgstr "Nombre del archivo donde @command{rsync} escribe su archivo de bloqueo."
 
 #. type: item
-#: doc/guix.texi:14000
+#: doc/guix.texi:16261
 #, no-wrap
 msgid "@code{log-file} (default: @code{\"/var/log/rsyncd.log\"})"
 msgstr "@code{log-file} (predeterminado: @code{\"/var/log/rsyncd.log\"})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:14002
+#: doc/guix.texi:16263 doc/guix.texi:16700
 msgid "Name of the file where @command{rsync} writes its log file."
-msgstr "Nombre del fichero donde @command{rsync} escribe su fichero de registros."
+msgstr "Nombre del archivo donde @command{rsync} escribe su archivo de registros."
 
 #. type: item
-#: doc/guix.texi:14003
+#: doc/guix.texi:16264
 #, no-wrap
 msgid "@code{use-chroot?} (default: @var{#t})"
 msgstr "@code{use-chroot?} (predeterminado: @var{#t})"
 
 #. type: table
-#: doc/guix.texi:14005
+#: doc/guix.texi:16266
 msgid "Whether to use chroot for @command{rsync} shared directory."
 msgstr "Si se debe usar ``chroot'' en el directorio compartido de @command{rsync}."
 
 #. type: item
-#: doc/guix.texi:14006
+#: doc/guix.texi:16267
 #, no-wrap
 msgid "@code{share-path} (default: @file{/srv/rsync})"
 msgstr "@code{share-path} (predeterminado: @file{/srv/rsync})"
 
 #. type: table
-#: doc/guix.texi:14008
+#: doc/guix.texi:16269
 msgid "Location of the @command{rsync} shared directory."
 msgstr "Localización del directorio compartido de @command{rsync}."
 
 #. type: item
-#: doc/guix.texi:14009
+#: doc/guix.texi:16270
 #, no-wrap
 msgid "@code{share-comment} (default: @code{\"Rsync share\"})"
 msgstr "@code{share-comment} (predeterminado: @code{\"Rsync share\"})"
 
 #. type: table
-#: doc/guix.texi:14011
+#: doc/guix.texi:16272
 msgid "Comment of the @command{rsync} shared directory."
 msgstr "Comentario del directorio compartido de @command{rsync}."
 
 #. type: item
-#: doc/guix.texi:14012
+#: doc/guix.texi:16273
 #, no-wrap
 msgid "@code{read-only?} (default: @var{#f})"
 msgstr "@code{read-only?} (predeterminado: @var{#f})"
 
 #. type: table
-#: doc/guix.texi:14014
+#: doc/guix.texi:16275
 msgid "Read-write permissions to shared directory."
 msgstr "Permisos de lectura/escritura en el directorio compartido."
 
 #. type: item
-#: doc/guix.texi:14015
+#: doc/guix.texi:16276
 #, no-wrap
 msgid "@code{timeout} (default: @code{300})"
 msgstr "@code{timeout} (predeterminado: @code{300})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:14017
+#: doc/guix.texi:16278
 msgid "I/O timeout in seconds."
 msgstr "Plazo de la E/S en segundos."
 
 #. type: item
-#: doc/guix.texi:14018
+#: doc/guix.texi:16279
 #, no-wrap
 msgid "@code{user} (default: @var{\"root\"})"
 msgstr "@code{user} (predeterminada: @var{\"root\"})"
 
 #. type: table
-#: doc/guix.texi:14020
+#: doc/guix.texi:16281
 msgid "Owner of the @code{rsync} process."
 msgstr "Propietaria del proceso @code{rsync}."
 
 #. type: item
-#: doc/guix.texi:14021
+#: doc/guix.texi:16282
 #, no-wrap
 msgid "@code{group} (default: @var{\"root\"})"
 msgstr "@code{group} (predeterminado: @var{\"root\"})"
 
 #. type: table
-#: doc/guix.texi:14023
+#: doc/guix.texi:16284
 msgid "Group of the @code{rsync} process."
 msgstr "Grupo del proceso @code{rsync}."
 
 #. type: item
-#: doc/guix.texi:14024
+#: doc/guix.texi:16285
 #, no-wrap
 msgid "@code{uid} (default: @var{\"rsyncd\"})"
 msgstr "@code{uid} (predeterminado: @var{\"rsyncd\"})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:14027
+#: doc/guix.texi:16288
 msgid "User name or user ID that file transfers to and from that module should take place as when the daemon was run as @code{root}."
 msgstr "Nombre o ID de usuaria bajo la cual se efectúan las transferencias desde y hacia el módulo cuando el daemon se ejecuta como @code{root}."
 
 #. type: item
-#: doc/guix.texi:14028
+#: doc/guix.texi:16289
 #, no-wrap
 msgid "@code{gid} (default: @var{\"rsyncd\"})"
 msgstr "@code{gid} (predeterminado: @var{\"rsyncd\"})"
 
 #. type: table
-#: doc/guix.texi:14030
+#: doc/guix.texi:16291 doc/guix.texi:16685
 msgid "Group name or group ID that will be used when accessing the module."
 msgstr "Nombre o ID de grupo que se usa cuando se accede al módulo."
 
 # FUZZY
 #. type: Plain text
-#: doc/guix.texi:14035
+#: doc/guix.texi:16296
 msgid "Furthermore, @code{(gnu services ssh)} provides the following services."
 msgstr "Es más, @code{(gnu services ssh)} proporciona los siguientes servicios."
 
 #. type: cindex
-#: doc/guix.texi:14035 doc/guix.texi:14074 doc/guix.texi:27303
+#: doc/guix.texi:16296 doc/guix.texi:16335 doc/guix.texi:31468
 #, no-wrap
 msgid "SSH"
 msgstr "SSH"
 
 #. type: cindex
-#: doc/guix.texi:14036 doc/guix.texi:14075 doc/guix.texi:27304
+#: doc/guix.texi:16297 doc/guix.texi:16336 doc/guix.texi:31469
 #, no-wrap
 msgid "SSH server"
 msgstr "servidor SSH"
 
 #. type: deffn
-#: doc/guix.texi:14038
+#: doc/guix.texi:16299
 #, no-wrap
 msgid "{Scheme Procedure} lsh-service [#:host-key \"/etc/lsh/host-key\"] @"
 msgstr "{Procedimiento Scheme} lsh-service [#:host-key \"/etc/lsh/host-key\"] @"
 
 #. type: deffn
-#: doc/guix.texi:14047
+#: doc/guix.texi:16308
 msgid "[#:daemonic? #t] [#:interfaces '()] [#:port-number 22] @ [#:allow-empty-passwords? #f] [#:root-login? #f] @ [#:syslog-output? #t] [#:x11-forwarding? #t] @ [#:tcp/ip-forwarding? #t] [#:password-authentication? #t] @ [#:public-key-authentication? #t] [#:initialize? #t] Run the @command{lshd} program from @var{lsh} to listen on port @var{port-number}.  @var{host-key} must designate a file containing the host key, and readable only by root."
 msgstr ""
 "[#:daemonic? #t] [#:interfaces '()] [#:port-number 22] @\n"
@@ -26606,52 +30517,52 @@ msgstr ""
 "  [#:syslog-output? #t] [#:x11-forwarding? #t] @\n"
 "  [#:tcp/ip-forwarding? #t] [#:password-authentication? #t] @\n"
 "  [#:public-key-authentication? #t] [#:initialize? #t]\n"
-"Ejecuta el programa @command{lshd} de @var{lsh} para escuchar en el puerto @var{port-number}. @var{host-key} debe designar a un fichero que contiene la clave de la máquina, y que sea legible únicamente por root."
+"Ejecuta el programa @command{lshd} de @var{lsh} para escuchar en el puerto @var{port-number}. @var{host-key} debe designar a un archivo que contiene la clave de la máquina, y que sea legible únicamente por root."
 
 #. type: deffn
-#: doc/guix.texi:14053
+#: doc/guix.texi:16314
 msgid "When @var{daemonic?} is true, @command{lshd} will detach from the controlling terminal and log its output to syslogd, unless one sets @var{syslog-output?} to false.  Obviously, it also makes lsh-service depend on existence of syslogd service.  When @var{pid-file?} is true, @command{lshd} writes its PID to the file called @var{pid-file}."
-msgstr "Cuando @var{daemonic?} es verdadero, @command{lshd} se desligará del terminal de control y registrará su salida con syslogd, a menos que se establezca @var{syslog-output?} a falso. Obviamente, esto hace que lsh-dependa de la existencia de un servicio syslogd. Cuando @var{pid-file?} es verdadero, @command{lshd} escribe su PID al fichero llamado @var{pid-file}."
+msgstr "Cuando @var{daemonic?} es verdadero, @command{lshd} se desligará del terminal de control y registrará su salida con syslogd, a menos que se establezca @var{syslog-output?} a falso. Obviamente, esto hace que lsh-dependa de la existencia de un servicio syslogd. Cuando @var{pid-file?} es verdadero, @command{lshd} escribe su PID al archivo llamado @var{pid-file}."
 
 #. type: deffn
-#: doc/guix.texi:14057
+#: doc/guix.texi:16318
 msgid "When @var{initialize?} is true, automatically create the seed and host key upon service activation if they do not exist yet.  This may take long and require interaction."
 msgstr "Cuando @var{initialize?} es verdadero, crea automáticamente una semilla una clave de máquina una vez se active el servicio si no existen todavía. Puede tomar un tiempo prolongado y necesita interacción."
 
 #. type: deffn
-#: doc/guix.texi:14062
+#: doc/guix.texi:16323
 msgid "When @var{initialize?} is false, it is up to the user to initialize the randomness generator (@pxref{lsh-make-seed,,, lsh, LSH Manual}), and to create a key pair with the private key stored in file @var{host-key} (@pxref{lshd basics,,, lsh, LSH Manual})."
-msgstr "Cuando @var{initialize?} es falso, es cuestión de la usuaria la inicialización del generador aleatorio (@pxref{lsh-make-seed,,, lsh, LSH Manual}), la creación de un par de claves y el almacenamiento de la clave privada en el fichero @var{host-key} (@pxref{lshd basics,,, lsh, LSH Manual})."
+msgstr "Cuando @var{initialize?} es falso, es cuestión de la usuaria la inicialización del generador aleatorio (@pxref{lsh-make-seed,,, lsh, LSH Manual}), la creación de un par de claves y el almacenamiento de la clave privada en el archivo @var{host-key} (@pxref{lshd basics,,, lsh, LSH Manual})."
 
 #. type: deffn
-#: doc/guix.texi:14066
+#: doc/guix.texi:16327
 msgid "When @var{interfaces} is empty, lshd listens for connections on all the network interfaces; otherwise, @var{interfaces} must be a list of host names or addresses."
 msgstr "Cuando @var{interfaces} está vacío, lshd escucha conexiones en todas las interfaces de red; en otro caso, @var{interfaces} debe ser una lista de nombres de máquina o direcciones."
 
 #. type: deffn
-#: doc/guix.texi:14070
+#: doc/guix.texi:16331
 msgid "@var{allow-empty-passwords?} specifies whether to accept log-ins with empty passwords, and @var{root-login?} specifies whether to accept log-ins as root."
 msgstr "@var{allow-empty-passwords?} especifica si se aceptará el ingreso al sistema con una contraseña vacía y @var{root-login?} especifica si se acepta el ingreso al sistema como root."
 
 #. type: deffn
-#: doc/guix.texi:14072
+#: doc/guix.texi:16333
 msgid "The other options should be self-descriptive."
 msgstr "El resto de opciones deberían ser autodescriptivas."
 
 #. type: deffn
-#: doc/guix.texi:14076
+#: doc/guix.texi:16337
 #, no-wrap
 msgid "{Scheme Variable} openssh-service-type"
 msgstr "{Variable Scheme} openssh-service-type"
 
 # FUZZY
 #. type: deffn
-#: doc/guix.texi:14080
+#: doc/guix.texi:16341
 msgid "This is the type for the @uref{http://www.openssh.org, OpenSSH} secure shell daemon, @command{sshd}.  Its value must be an @code{openssh-configuration} record as in this example:"
 msgstr "Este es el tipo para el daemon de shell seguro @uref{http://www.openssh.org, OpenSSH}, @command{sshd}. Su valor debe ser un registro @code{openssh-configuration} como en este ejemplo:"
 
 #. type: lisp
-#: doc/guix.texi:14089
+#: doc/guix.texi:16350
 #, no-wrap
 msgid ""
 "(service openssh-service-type\n"
@@ -26671,17 +30582,17 @@ msgstr ""
 "               (\"rober\" ,(local-file \"rober.pub\"))))))\n"
 
 #. type: deffn
-#: doc/guix.texi:14092
+#: doc/guix.texi:16353
 msgid "See below for details about @code{openssh-configuration}."
 msgstr "Véase a continuación detalles sobre @code{openssh-configuration}."
 
 #. type: deffn
-#: doc/guix.texi:14095
+#: doc/guix.texi:16356
 msgid "This service can be extended with extra authorized keys, as in this example:"
 msgstr "Este servicio se puede extender con claves autorizadas adicionales, como en este ejemplo:"
 
 #. type: lisp
-#: doc/guix.texi:14100
+#: doc/guix.texi:16361
 #, no-wrap
 msgid ""
 "(service-extension openssh-service-type\n"
@@ -26693,93 +30604,104 @@ msgstr ""
 "                             ,(local-file \"carlos.pub\")))))\n"
 
 #. type: deftp
-#: doc/guix.texi:14103
+#: doc/guix.texi:16364
 #, no-wrap
 msgid "{Data Type} openssh-configuration"
 msgstr "{Tipo de datos} openssh-configuration"
 
 #. type: deftp
-#: doc/guix.texi:14105
+#: doc/guix.texi:16366
 msgid "This is the configuration record for OpenSSH's @command{sshd}."
 msgstr "Este es el registro de configuración para @command{sshd} de OpenSSH."
 
 #. type: item
-#: doc/guix.texi:14107
+#: doc/guix.texi:16368
+#, no-wrap
+msgid "@code{openssh} (default @var{openssh})"
+msgstr "@code{openssh} (predeterminado: @var{openssh})"
+
+#. type: table
+#: doc/guix.texi:16370
+msgid "The Openssh package to use."
+msgstr "El paquete OpenSSH usado."
+
+#. type: item
+#: doc/guix.texi:16371
 #, no-wrap
 msgid "@code{pid-file} (default: @code{\"/var/run/sshd.pid\"})"
 msgstr "@code{pid-file} (predeterminado: @code{\"/var/run/sshd.pid\"})"
 
 #. type: table
-#: doc/guix.texi:14109
+#: doc/guix.texi:16373
 msgid "Name of the file where @command{sshd} writes its PID."
-msgstr "Nombre del fichero donde @command{sshd} escribe su PID."
+msgstr "Nombre del archivo donde @command{sshd} escribe su PID."
 
 #. type: item
-#: doc/guix.texi:14110
+#: doc/guix.texi:16374
 #, no-wrap
 msgid "@code{port-number} (default: @code{22})"
 msgstr "@code{port-number} (predeterminado: @code{22})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:14112
+#: doc/guix.texi:16376
 msgid "TCP port on which @command{sshd} listens for incoming connections."
 msgstr "Puerto TCP en el que @command{sshd} espera conexiones entrantes."
 
 #. type: item
-#: doc/guix.texi:14113
+#: doc/guix.texi:16377
 #, no-wrap
 msgid "@code{permit-root-login} (default: @code{#f})"
 msgstr "@code{permit-root-login} (predeterminado: @code{#f})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:14118
+#: doc/guix.texi:16382
 msgid "This field determines whether and when to allow logins as root.  If @code{#f}, root logins are disallowed; if @code{#t}, they are allowed.  If it's the symbol @code{'without-password}, then root logins are permitted but not with password-based authentication."
-msgstr "Este fichero determina si y cuando se permite el ingreso al sistema como root. Si es @code{#f}, el ingreso como root no está permitido; si es @code{#f} está permitido. Si es el símbolo @code{'without-password}, se permite el ingreso al sistema como root pero no con identificación basada en contraseña."
+msgstr "Este archivo determina si y cuando se permite el ingreso al sistema como root. Si es @code{#f}, el ingreso como root no está permitido; si es @code{#f} está permitido. Si es el símbolo @code{'without-password}, se permite el ingreso al sistema como root pero no con identificación basada en contraseña."
 
 #. type: item
-#: doc/guix.texi:14119 doc/guix.texi:14280
+#: doc/guix.texi:16383 doc/guix.texi:16544
 #, no-wrap
 msgid "@code{allow-empty-passwords?} (default: @code{#f})"
 msgstr "@code{allow-empty-passwords?} (predeterminado: @code{#f})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:14122
+#: doc/guix.texi:16386
 msgid "When true, users with empty passwords may log in.  When false, they may not."
 msgstr "Cuando es verdadero, las usuarias con contraseñas vacías pueden ingresar en el sistema. Cuando es falso, no pueden."
 
 #. type: item
-#: doc/guix.texi:14123 doc/guix.texi:14283
+#: doc/guix.texi:16387 doc/guix.texi:16547
 #, no-wrap
 msgid "@code{password-authentication?} (default: @code{#t})"
 msgstr "@code{password-authentication?} (predeterminado: @code{#t})"
 
 #. type: table
-#: doc/guix.texi:14126
+#: doc/guix.texi:16390
 msgid "When true, users may log in with their password.  When false, they have other authentication methods."
 msgstr "Cuando es verdadero, las usuarias pueden ingresar al sistema con su contraseña. En caso falso, tienen otros métodos de identificación."
 
 #. type: item
-#: doc/guix.texi:14127
+#: doc/guix.texi:16391
 #, no-wrap
 msgid "@code{public-key-authentication?} (default: @code{#t})"
 msgstr "@code{public-key-authentication?} (predeterminado: @code{#t})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:14130
+#: doc/guix.texi:16394
 msgid "When true, users may log in using public key authentication.  When false, users have to use other authentication method."
 msgstr "Cuando es verdadero, las usuarias pueden ingresar en el sistema mediante el uso de clave publica para su identificación. Cuando es falso, las usuarias tienen que usar otros métodos de identificación."
 
 #. type: table
-#: doc/guix.texi:14133
+#: doc/guix.texi:16397
 msgid "Authorized public keys are stored in @file{~/.ssh/authorized_keys}.  This is used only by protocol version 2."
 msgstr "Las claves públicas autorizadas se almacenan en @file{~/.ssh/authorized_keys}. Se usa únicamente por la versión 2 del protocolo."
 
 #. type: item
-#: doc/guix.texi:14134
+#: doc/guix.texi:16398
 #, no-wrap
 msgid "@code{x11-forwarding?} (default: @code{#f})"
 msgstr "@code{x11-forwarding?} (predeterminado: @code{#f})"
@@ -26788,109 +30710,109 @@ msgstr "@code{x11-forwarding?} (predeterminado: @code{#f})"
 # TODO (MAAV): Forwarding -> retransmisión puede quedar
 # forzado. Repensar la frase al menos.
 #. type: table
-#: doc/guix.texi:14138
+#: doc/guix.texi:16402
 msgid "When true, forwarding of X11 graphical client connections is enabled---in other words, @command{ssh} options @option{-X} and @option{-Y} will work."
 msgstr "Cuando verdadero, la retransmisión de conexiones del cliente gráfico X11 está desactivada---en otras palabras, las opciones @option{-X} y @option{-Y} de @command{ssh} funcionarán."
 
 #. type: item
-#: doc/guix.texi:14139
+#: doc/guix.texi:16403
 #, no-wrap
 msgid "@code{allow-agent-forwarding?} (default: @code{#t})"
 msgstr "@code{allow-agent-forwarding?} (predeterminado: @code{#t})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:14141
+#: doc/guix.texi:16405
 msgid "Whether to allow agent forwarding."
 msgstr "Si se permite la retransmisión del agente de claves."
 
 #. type: item
-#: doc/guix.texi:14142
+#: doc/guix.texi:16406
 #, no-wrap
 msgid "@code{allow-tcp-forwarding?} (default: @code{#t})"
 msgstr "@code{allow-tcp-forwarding?} (predeterminado: @code{#t})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:14144
+#: doc/guix.texi:16408
 msgid "Whether to allow TCP forwarding."
 msgstr "Si se permite la retransmisión TCP."
 
 #. type: item
-#: doc/guix.texi:14145
+#: doc/guix.texi:16409
 #, no-wrap
 msgid "@code{gateway-ports?} (default: @code{#f})"
 msgstr "@code{gateway-ports?} (predeterminado: @code{#f})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:14147
+#: doc/guix.texi:16411
 msgid "Whether to allow gateway ports."
 msgstr "Si se permiten los puertos pasarela."
 
 #. type: item
-#: doc/guix.texi:14148
+#: doc/guix.texi:16412
 #, no-wrap
 msgid "@code{challenge-response-authentication?} (default: @code{#f})"
 msgstr "@code{challenge-response-authentication?} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:14151
+#: doc/guix.texi:16415
 msgid "Specifies whether challenge response authentication is allowed (e.g.@: via PAM)."
 msgstr "Especifica si la identificación mediante respuesta de desafío está permitida (por ejemplo, a través de PAM)."
 
 #. type: item
-#: doc/guix.texi:14152
+#: doc/guix.texi:16416
 #, no-wrap
 msgid "@code{use-pam?} (default: @code{#t})"
 msgstr "@code{use-pam?} (predeterminado: @code{#t})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:14158
+#: doc/guix.texi:16422
 msgid "Enables the Pluggable Authentication Module interface.  If set to @code{#t}, this will enable PAM authentication using @code{challenge-response-authentication?} and @code{password-authentication?}, in addition to PAM account and session module processing for all authentication types."
 msgstr "Permite el uso de la interfaz de módulos de identificación conectables (PAM). Si es @code{#t} se activará la identificación PAM mediante el uso de @code{challenge-response-authentication?} y @code{password-authentication?}, además del procesado de los módulos de cuenta usuaria y de sesión de PAM en todos los tipos de identificación."
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:14163
+#: doc/guix.texi:16427
 msgid "Because PAM challenge response authentication usually serves an equivalent role to password authentication, you should disable either @code{challenge-response-authentication?} or @code{password-authentication?}."
 msgstr "Debido a que la identificación mediante respuesta de desafío de PAM tiene un rol equivalente a la identificación por contraseña habitualmente, debería desactivar @code{challenge-response-authentication?} o @code{password-authentication?}."
 
 #. type: item
-#: doc/guix.texi:14164
+#: doc/guix.texi:16428
 #, no-wrap
 msgid "@code{print-last-log?} (default: @code{#t})"
 msgstr "@code{print-last-log?} (predeterminado: @code{#t})"
 
 #. type: table
-#: doc/guix.texi:14167
+#: doc/guix.texi:16431
 msgid "Specifies whether @command{sshd} should print the date and time of the last user login when a user logs in interactively."
 msgstr "Especifica si @command{sshd} debe imprimir la fecha y hora del último ingreso al sistema de la usuaria cuando una usuaria ingresa interactivamente."
 
 #. type: item
-#: doc/guix.texi:14168
+#: doc/guix.texi:16432
 #, no-wrap
 msgid "@code{subsystems} (default: @code{'((\"sftp\" \"internal-sftp\"))})"
 msgstr "@code{subsystems} (predeterminados: @code{'((\"sftp\" \"internal-sftp\"))})"
 
 #. type: table
-#: doc/guix.texi:14170
+#: doc/guix.texi:16434
 msgid "Configures external subsystems (e.g.@: file transfer daemon)."
-msgstr "Configura subsistemas externos (por ejemplo, el daemon de transmisión de ficheros)."
+msgstr "Configura subsistemas externos (por ejemplo, el daemon de transmisión de archivos)."
 
 #. type: table
-#: doc/guix.texi:14174
+#: doc/guix.texi:16438
 msgid "This is a list of two-element lists, each of which containing the subsystem name and a command (with optional arguments) to execute upon subsystem request."
 msgstr "Esta es una lista de listas de dos elementos, cada una de las cuales que contienen el nombre del subsistema y una orden (con parámetros opcionales) para ejecutar tras petición del subsistema."
 
 #. type: table
-#: doc/guix.texi:14177
-msgid "The command @command{internal-sftp} implements an in-process SFTP server.  Alternately, one can specify the @command{sftp-server} command:"
+#: doc/guix.texi:16441
+msgid "The command @command{internal-sftp} implements an in-process SFTP server.  Alternatively, one can specify the @command{sftp-server} command:"
 msgstr "La orden @command{internal-sftp} implementa un servidor SFTP dentro del mismo proceso. De manera alternativa, se puede especificar la orden @command{sftp-server}:"
 
 #. type: lisp
-#: doc/guix.texi:14182
+#: doc/guix.texi:16446
 #, no-wrap
 msgid ""
 "(service openssh-service-type\n"
@@ -26904,28 +30826,28 @@ msgstr ""
 "           `((\"sftp\" ,(file-append openssh \"/libexec/sftp-server\"))))))\n"
 
 #. type: item
-#: doc/guix.texi:14184
+#: doc/guix.texi:16448
 #, no-wrap
 msgid "@code{accepted-environment} (default: @code{'()})"
 msgstr "@code{accepted-environment} (predeterminado: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:14186
+#: doc/guix.texi:16450
 msgid "List of strings describing which environment variables may be exported."
 msgstr "Una lista de cadenas que describe qué variables de entorno pueden ser exportadas."
 
 #. type: table
-#: doc/guix.texi:14189
+#: doc/guix.texi:16453
 msgid "Each string gets on its own line.  See the @code{AcceptEnv} option in @code{man sshd_config}."
 msgstr "Cada cadena obtiene su propia línea. Véase la opción @code{AcceptEnv} en @code{man sshd_config}."
 
 #. type: table
-#: doc/guix.texi:14194
-msgid "This example allows ssh-clients to export the @code{COLORTERM} variable.  It is set by terminal emulators, which support colors.  You can use it in your shell's resource file to enable colors for the prompt and commands if this variable is set."
-msgstr "Este ejemplo permite a clientes ssh exportar la variable @code{COLORTERM}. La establecen emuladores de terminal que implementan colores. Puede usarla en su fichero de recursos del shell para permitir colores en la línea de órdenes y las propias ordenes si esta variable está definida."
+#: doc/guix.texi:16458
+msgid "This example allows ssh-clients to export the @env{COLORTERM} variable.  It is set by terminal emulators, which support colors.  You can use it in your shell's resource file to enable colors for the prompt and commands if this variable is set."
+msgstr "Este ejemplo permite a clientes ssh exportar la variable @env{COLORTERM}. La establecen emuladores de terminal que implementan colores. Puede usarla en su archivo de recursos del shell para permitir colores en la línea de órdenes y las propias ordenes si esta variable está definida."
 
 #. type: lisp
-#: doc/guix.texi:14199
+#: doc/guix.texi:16463
 #, no-wrap
 msgid ""
 "(service openssh-service-type\n"
@@ -26937,27 +30859,27 @@ msgstr ""
 "           (accepted-environment '(\"COLORTERM\"))))\n"
 
 #. type: item
-#: doc/guix.texi:14201
+#: doc/guix.texi:16465
 #, no-wrap
 msgid "@code{authorized-keys} (default: @code{'()})"
 msgstr "@code{authorized-keys} (predeterminadas: @code{'()})"
 
 #. type: cindex
-#: doc/guix.texi:14202
+#: doc/guix.texi:16466
 #, no-wrap
 msgid "authorized keys, SSH"
 msgstr "claves autorizadas, SSH"
 
 #. type: cindex
-#: doc/guix.texi:14203
+#: doc/guix.texi:16467
 #, no-wrap
 msgid "SSH authorized keys"
 msgstr "SSH, claves autorizadas"
 
 #. type: table
-#: doc/guix.texi:14207
+#: doc/guix.texi:16471
 msgid "This is the list of authorized keys.  Each element of the list is a user name followed by one or more file-like objects that represent SSH public keys.  For example:"
-msgstr "Esta es la lista de claves autorizadas. Cada elemento de la lista es un nombre de usuaria seguido de uno o más objetos ``tipo-fichero'' que representan claves públicas SSH. Por ejemplo:"
+msgstr "Esta es la lista de claves autorizadas. Cada elemento de la lista es un nombre de usuaria seguido de uno o más objetos ``tipo-archivo'' que representan claves públicas SSH. Por ejemplo:"
 
 # MAAV: Alice/Alicia y Bob/Rober son nombres muy comunes en el ámbito
 # informático, especialmente en el cifrado de donde vienen, y me parece
@@ -26966,7 +30888,7 @@ msgstr "Esta es la lista de claves autorizadas. Cada elemento de la lista es un
 # nadie... En cambio creo que estos nombres son de personas que
 # participan en el proyecto, por lo que los dejo tal cual.
 #. type: lisp
-#: doc/guix.texi:14214
+#: doc/guix.texi:16478
 #, no-wrap
 msgid ""
 "(openssh-configuration\n"
@@ -26984,44 +30906,44 @@ msgstr ""
 # MAAV: Ya que son personas reales, evito la referencia a su género y
 # hablo únicamente de la cuenta.
 #. type: table
-#: doc/guix.texi:14219
+#: doc/guix.texi:16483
 msgid "registers the specified public keys for user accounts @code{rekado}, @code{chris}, and @code{root}."
 msgstr "registra las claves públicas especificadas para las cuentas @code{rekado}, @code{chris} y @code{root}."
 
 #. type: table
-#: doc/guix.texi:14222
+#: doc/guix.texi:16486
 msgid "Additional authorized keys can be specified @i{via} @code{service-extension}."
 msgstr "Se pueden especificar claves autorizadas adicionales a través de @code{service-extension}."
 
 #. type: table
-#: doc/guix.texi:14225
+#: doc/guix.texi:16489
 msgid "Note that this does @emph{not} interfere with the use of @file{~/.ssh/authorized_keys}."
 msgstr "Tenga en cuenta que esto @emph{no} interfiere con el uso de @file{~/.ssh/authorized_keys}."
 
 #. type: item
-#: doc/guix.texi:14226
+#: doc/guix.texi:16490
 #, no-wrap
 msgid "@code{log-level} (default: @code{'info})"
 msgstr "@code{log-level} (predeterminado: @code{'info})"
 
 #. type: table
-#: doc/guix.texi:14230
+#: doc/guix.texi:16494
 msgid "This is a symbol specifying the logging level: @code{quiet}, @code{fatal}, @code{error}, @code{info}, @code{verbose}, @code{debug}, etc.  See the man page for @file{sshd_config} for the full list of level names."
 msgstr "Es un símbolo que especifica el nivel de detalle en los registros: @code{quiet}, @code{fatal}, @code{error}, @code{info}, @code{verbose}, @code{debug}, etc. Véase la página del manual de @file{sshd_config} para la lista completa de los nombres de nivel."
 
 #. type: item
-#: doc/guix.texi:14231 doc/guix.texi:20348
+#: doc/guix.texi:16495 doc/guix.texi:23061
 #, no-wrap
 msgid "@code{extra-content} (default: @code{\"\"})"
 msgstr "@code{extra-content} (predeterminado: @code{\"\"})"
 
 #. type: table
-#: doc/guix.texi:14236
+#: doc/guix.texi:16500
 msgid "This field can be used to append arbitrary text to the configuration file.  It is especially useful for elaborate configurations that cannot be expressed otherwise.  This configuration, for example, would generally disable root logins, but permit them from one specific IP address:"
-msgstr "Este campo puede usarse para agregar un texto arbitrario al fichero de configuración. Es especialmente útil para configuraciones elaboradas que no se puedan expresar de otro modo. Esta configuración, por ejemplo, generalmente desactivaría el ingreso al sistema como root, pero lo permite para una dirección IP específica:"
+msgstr "Este campo puede usarse para agregar un texto arbitrario al archivo de configuración. Es especialmente útil para configuraciones elaboradas que no se puedan expresar de otro modo. Esta configuración, por ejemplo, generalmente desactivaría el ingreso al sistema como root, pero lo permite para una dirección IP específica:"
 
 #. type: lisp
-#: doc/guix.texi:14242
+#: doc/guix.texi:16506
 #, no-wrap
 msgid ""
 "(openssh-configuration\n"
@@ -27035,23 +30957,23 @@ msgstr ""
 "  PermitRootLogin yes\"))\n"
 
 #. type: deffn
-#: doc/guix.texi:14247
+#: doc/guix.texi:16511
 #, no-wrap
 msgid "{Scheme Procedure} dropbear-service [@var{config}]"
 msgstr "{Procedimiento Scheme} dropbear-service [@var{config}]"
 
 #. type: deffn
-#: doc/guix.texi:14251
+#: doc/guix.texi:16515
 msgid "Run the @uref{https://matt.ucc.asn.au/dropbear/dropbear.html,Dropbear SSH daemon} with the given @var{config}, a @code{<dropbear-configuration>} object."
 msgstr "Ejecuta el @uref{https://matt.ucc.asn.au/dropbear/dropbear.html,daemon Dropbear SSH} con la @var{config}uración proporcionada, un objeto @code{<dropbear-configuration>}."
 
 #. type: deffn
-#: doc/guix.texi:14254
+#: doc/guix.texi:16518
 msgid "For example, to specify a Dropbear service listening on port 1234, add this call to the operating system's @code{services} field:"
 msgstr "Por ejemplo, para especificar un servicio Dropbear que escuche en el puerto 1234, añada esta llama al campo @code{services} de su sistema operativo:"
 
 #. type: lisp
-#: doc/guix.texi:14258
+#: doc/guix.texi:16522
 #, no-wrap
 msgid ""
 "(dropbear-service (dropbear-configuration\n"
@@ -27061,99 +30983,432 @@ msgstr ""
 "                    (port-number 1234)))\n"
 
 #. type: deftp
-#: doc/guix.texi:14261
+#: doc/guix.texi:16525
 #, no-wrap
 msgid "{Data Type} dropbear-configuration"
 msgstr "{Tipo de datos} dropbear-configuration"
 
 #. type: deftp
-#: doc/guix.texi:14263
+#: doc/guix.texi:16527
 msgid "This data type represents the configuration of a Dropbear SSH daemon."
 msgstr "Este tipo de datos representa la configuración del daemon Dropbear SSH."
 
 #. type: item
-#: doc/guix.texi:14265
+#: doc/guix.texi:16529
 #, no-wrap
 msgid "@code{dropbear} (default: @var{dropbear})"
 msgstr "@code{dropbear} (predeterminado: @var{dropbear})"
 
 #. type: table
-#: doc/guix.texi:14267
+#: doc/guix.texi:16531
 msgid "The Dropbear package to use."
 msgstr "El paquete de Dropbear usado."
 
 #. type: item
-#: doc/guix.texi:14268
+#: doc/guix.texi:16532
 #, no-wrap
 msgid "@code{port-number} (default: 22)"
 msgstr "@code{port-number} (predeterminado: 22)"
 
 #. type: table
-#: doc/guix.texi:14270
+#: doc/guix.texi:16534
 msgid "The TCP port where the daemon waits for incoming connections."
 msgstr "Puerto TCP donde el daemon espera conexiones entrantes."
 
 #. type: item
-#: doc/guix.texi:14271
+#: doc/guix.texi:16535
 #, no-wrap
 msgid "@code{syslog-output?} (default: @code{#t})"
 msgstr "@code{syslog-output?} (predeterminado: @code{#t})"
 
 #. type: table
-#: doc/guix.texi:14273
+#: doc/guix.texi:16537
 msgid "Whether to enable syslog output."
 msgstr "Determina si se envía la salida a syslog."
 
 #. type: item
-#: doc/guix.texi:14274
+#: doc/guix.texi:16538
 #, no-wrap
 msgid "@code{pid-file} (default: @code{\"/var/run/dropbear.pid\"})"
 msgstr "@code{pid-file} (predeterminado: @code{\"/var/run/dropbear.pid\"})"
 
 #. type: table
-#: doc/guix.texi:14276
+#: doc/guix.texi:16540
 msgid "File name of the daemon's PID file."
-msgstr "El nombre de fichero del fichero de PID del daemon."
+msgstr "El nombre de archivo del archivo de PID del daemon."
 
 #. type: item
-#: doc/guix.texi:14277
+#: doc/guix.texi:16541
 #, no-wrap
 msgid "@code{root-login?} (default: @code{#f})"
 msgstr "@code{root-login?} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:14279
+#: doc/guix.texi:16543
 msgid "Whether to allow @code{root} logins."
 msgstr "Si se permite el ingreso al sistema como @code{root}."
 
 #. type: table
-#: doc/guix.texi:14282
+#: doc/guix.texi:16546
 msgid "Whether to allow empty passwords."
 msgstr "Si se permiten las contraseñas vacías."
 
 #. type: table
-#: doc/guix.texi:14285
+#: doc/guix.texi:16549
 msgid "Whether to enable password-based authentication."
 msgstr "Determina si se usará identificación basada en contraseña."
 
+#. type: cindex
+#: doc/guix.texi:16552
+#, no-wrap
+msgid "AutoSSH"
+msgstr "AutoSSH"
+
+#. type: deffn
+#: doc/guix.texi:16553
+#, no-wrap
+msgid "{Scheme Variable} autossh-service-type"
+msgstr "{Variable Scheme} autossh-service-type"
+
+#. type: deffn
+#: doc/guix.texi:16561
+msgid "This is the type for the @uref{https://www.harding.motd.ca/autossh, AutoSSH} program that runs a copy of @command{ssh} and monitors it, restarting it as necessary should it die or stop passing traffic.  AutoSSH can be run manually from the command-line by passing arguments to the binary @command{autossh} from the package @code{autossh}, but it can also be run as a Guix service.  This latter use case is documented here."
+msgstr "Tipo del servicio para el programa @uref{https://www.harding.motd.ca/autossh, AutoSSH} que ejecuta una copia de @command{ssh} y la monitoriza, reiniciando la conexión en caso de que se rompa la conexión o deje de transmitir datos. AutoSSH puede ejecutarse manualmente en la línea de órdenes proporcionando los parámetros al binario @command{autossh} del paquete @code{autossh}, pero también se puede ejecutar como un servicio de Guix. Este último caso de uso se encuentra documentado aquí."
+
+#. type: deffn
+#: doc/guix.texi:16565
+msgid "AutoSSH can be used to forward local traffic to a remote machine using an SSH tunnel, and it respects the @file{~/.ssh/config} of the user it is run as."
+msgstr "AutoSSH se puede usar para retransmitir tráfico local a una máquina remota usando un túnel SSH, y respeta el archivo de configuración @file{~/.ssh/config} de la cuenta bajo la que se ejecute."
+
+#. type: deffn
+#: doc/guix.texi:16570
+msgid "For example, to specify a service running autossh as the user @code{pino} and forwarding all local connections to port @code{8081} to @code{remote:8081} using an SSH tunnel, add this call to the operating system's @code{services} field:"
+msgstr "Por ejemplo, para especificar un servicio que ejecute autossh con la cuenta @code{pino} y retransmita todas las conexiones locales al puerto @code{8081} hacia @code{remote:8081} usando un túnel SSH, añada esta llamada al campo @code{services} del sistema operativo:"
+
+#. type: lisp
+#: doc/guix.texi:16576
+#, no-wrap
+msgid ""
+"(service autossh-service-type\n"
+"         (autossh-configuration\n"
+"          (user \"pino\")\n"
+"          (ssh-options (list \"-T\" \"-N\" \"-L\" \"8081:localhost:8081\" \"remote.net\"))))\n"
+msgstr ""
+"(service autossh-service-type\n"
+"         (autossh-configuration\n"
+"          (user \"pino\")\n"
+"          (ssh-options (list \"-T\" \"-N\" \"-L\" \"8081:localhost:8081\" \"remote.net\"))))\n"
+
+#. type: deftp
+#: doc/guix.texi:16579
+#, no-wrap
+msgid "{Data Type} autossh-configuration"
+msgstr "{Tipo de datos} autossh-configuration"
+
+#. type: deftp
+#: doc/guix.texi:16581
+msgid "This data type represents the configuration of an AutoSSH service."
+msgstr "Este tipo de datos representa la configuración del servicio AutoSSH."
+
+#. type: item
+#: doc/guix.texi:16584
+#, no-wrap
+msgid "@code{user} (default @code{\"autossh\"})"
+msgstr "@code{user} (predeterminado: @code{\"autossh\"})"
+
+#. type: table
+#: doc/guix.texi:16587
+msgid "The user as which the AutoSSH service is to be run.  This assumes that the specified user exists."
+msgstr "La cuenta de usuaria con la cual se ejecuta el servicio AutoSSH. Se asume que existe dicha cuenta."
+
+#. type: item
+#: doc/guix.texi:16588
+#, no-wrap
+msgid "@code{poll} (default @code{600})"
+msgstr "@code{poll} (predeterminado: @code{600})"
+
+#. type: table
+#: doc/guix.texi:16590
+msgid "Specifies the connection poll time in seconds."
+msgstr "Especifica el tiempo de comprobación de la conexión en segundos."
+
+#. type: item
+#: doc/guix.texi:16591
+#, no-wrap
+msgid "@code{first-poll} (default @code{#f})"
+msgstr "@code{first-poll} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:16597
+msgid "Specifies how many seconds AutoSSH waits before the first connection test.  After this first test, polling is resumed at the pace defined in @code{poll}.  When set to @code{#f}, the first poll is not treated specially and will also use the connection poll specified in @code{poll}."
+msgstr "Especifica cuantos segundos espera AutoSSH antes de la primera prueba de conexión. Tras esta primera prueba las comprobaciones se realizan con la frecuencia definida en @code{poll}. Cuando se proporciona el valor @code{#f} la primera comprobación no se trata de manera especial y también usará el valor especificado en @code{poll}."
+
+#. type: item
+#: doc/guix.texi:16598
+#, no-wrap
+msgid "@code{gate-time} (default @code{30})"
+msgstr "@code{gate-time} (predeterminado: @code{30})"
+
+#. type: table
+#: doc/guix.texi:16601
+msgid "Specifies how many seconds an SSH connection must be active before it is considered successful."
+msgstr "Especifica cuantos segundos debe estar activa una conexión SSH antes de que se considere satisfactoria."
+
+#. type: item
+#: doc/guix.texi:16602
+#, no-wrap
+msgid "@code{log-level} (default @code{1})"
+msgstr "@code{log-level} (predeterminado: @code{1})"
+
+#. type: table
+#: doc/guix.texi:16605
+msgid "The log level, corresponding to the levels used by syslog---so @code{0} is the most silent while @code{7} is the chattiest."
+msgstr "El nivel de registro, corresponde con los niveles usados por---por lo que @code{0} es el más silencioso y @code{7} el que contiene más información."
+
+#. type: item
+#: doc/guix.texi:16606
+#, no-wrap
+msgid "@code{max-start} (default @code{#f})"
+msgstr "@code{max-start} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:16609
+msgid "The maximum number of times SSH may be (re)started before AutoSSH exits.  When set to @code{#f}, no maximum is configured and AutoSSH may restart indefinitely."
+msgstr "El número de veces máximo que puede lanzarse (o reiniciarse) SSH antes de que AutoSSH termine. Cuando se proporciona @code{#f}, no existe un máximo por lo que AutoSSH puede reiniciar la conexión indefinidamente."
+
+#. type: item
+#: doc/guix.texi:16610
+#, no-wrap
+msgid "@code{message} (default @code{\"\"})"
+msgstr "@code{message} (predeterminado: @code{\"\"})"
+
+#. type: table
+#: doc/guix.texi:16612
+msgid "The message to append to the echo message sent when testing connections."
+msgstr "El mensaje que se añade al mensaje de eco que se envía cuando se prueban las conexiones."
+
+#. type: item
+#: doc/guix.texi:16613
+#, no-wrap
+msgid "@code{port} (default @code{\"0\"})"
+msgstr "@code{port} (predeterminado: @code{\"0\"})"
+
+#. type: table
+#: doc/guix.texi:16623
+msgid "The ports used for monitoring the connection.  When set to @code{\"0\"}, monitoring is disabled.  When set to @code{\"@var{n}\"} where @var{n} is a positive integer, ports @var{n} and @var{n}+1 are used for monitoring the connection, such that port @var{n} is the base monitoring port and @code{n+1} is the echo port.  When set to @code{\"@var{n}:@var{m}\"} where @var{n} and @var{m} are positive integers, the ports @var{n} and @var{m} are used for monitoring the connection, such that port @var{n} is the base monitoring port and @var{m} is the echo port."
+msgstr "Los puertos usados para la monitorización de la conexión. Cuando se proporciona @code{\"0\"}, se desactiva la monitorización. Cuando se proporciona @code{\"@var{n}\"} donde @var{n} es un entero positivo, los puertos @var{n} y @var{n}+1 se usan para monitorizar la conexión, de tal modo que el puerto @var{n} es el puerto base de monitorización y @code{n+1} es el puerto de eco. Cuando se proporciona @code{\"@var{n}:@var{m}\"} donde @var{n} y @var{m} son enteros positivos, los puertos @var{n} y @var{m} se usan para monitorizar la conexión, de tal modo que @var{n} es el puerto base de monitorización y @var{m} es el puerto de eco."
+
+#. type: item
+#: doc/guix.texi:16624
+#, no-wrap
+msgid "@code{ssh-options} (default @code{'()})"
+msgstr "@code{ssh-options} (predeterminados: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:16628
+msgid "The list of command-line arguments to pass to @command{ssh} when it is run.  Options @option{-f} and @option{-M} are reserved for AutoSSH and may cause undefined behaviour."
+msgstr "Lista de parámetros de línea de órdenes proporcionados a @command{ssh} cuando se ejecuta. Las opciones @option{-f} y @option{-M} están reservadas para AutoSSH y pueden causar un comportamiento indefinido."
+
+#. type: cindex
+#: doc/guix.texi:16632
+#, no-wrap
+msgid "WebSSH"
+msgstr "WebSSH"
+
+#. type: deffn
+#: doc/guix.texi:16633
+#, no-wrap
+msgid "{Scheme Variable} webssh-service-type"
+msgstr "{Variable Scheme} webssh-service-type"
+
+#. type: deffn
+#: doc/guix.texi:16639
+msgid "This is the type for the @uref{https://webssh.huashengdun.org/, WebSSH} program that runs a web SSH client.  WebSSH can be run manually from the command-line by passing arguments to the binary @command{wssh} from the package @code{webssh}, but it can also be run as a Guix service.  This latter use case is documented here."
+msgstr "Tipo para el programa @uref{https://webssh.huashengdun.org/, WebSSH} que ejecuta un cliente SSH web.  WebSSH puede ejecutarse manualmente en la línea de órdenes proporcionando los parámetros al binario @command{wssh} del paquete @code{webssh}, pero también se puede ejecutar como un servicio de Guix. Este último caso de uso se encuentra documentado aquí."
+
+# FUZZY
+#. type: deffn
+#: doc/guix.texi:16645
+msgid "For example, to specify a service running WebSSH on loopback interface on port @code{8888} with reject policy with a list of allowed to connection hosts, and NGINX as a reverse-proxy to this service listening for HTTPS connection, add this call to the operating system's @code{services} field:"
+msgstr "Por ejemplo, para especificar un servicio que ejecute WebSSH en la interfaz de red local sobre el puerto @code{8888} con una política de rechazo predeterminado con una lista de máquinas a las que se les permite explícitamente la conexión, y NGINX como pasarela inversa de este servicio a la escucha de conexiones HTTPS, añada esta llamada al campo @code{services} de su declaración de sistema operativo:"
+
+#. type: lisp
+#: doc/guix.texi:16653
+#, no-wrap
+msgid ""
+"(service webssh-service-type\n"
+"  (webssh-configuration (address \"127.0.0.1\")\n"
+"                        (port 8888)\n"
+"                        (policy 'reject)\n"
+"                        (known-hosts '(\"localhost ecdsa-sha2-nistp256 AAAA…\"\n"
+"                                       \"127.0.0.1 ecdsa-sha2-nistp256 AAAA…\"))))\n"
+"\n"
+msgstr ""
+"(service webssh-service-type\n"
+"  (webssh-configuration (address \"127.0.0.1\")\n"
+"                        (port 8888)\n"
+"                        (policy 'reject)\n"
+"                        (known-hosts '(\"localhost ecdsa-sha2-nistp256 AAAA…\"\n"
+"                                       \"127.0.0.1 ecdsa-sha2-nistp256 AAAA…\"))))\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:16669
+#, no-wrap
+msgid ""
+"(service nginx-service-type\n"
+"         (nginx-configuration\n"
+"          (server-blocks\n"
+"           (list\n"
+"            (nginx-server-configuration\n"
+"             (inherit %webssh-configuration-nginx)\n"
+"             (server-name '(\"webssh.example.com\"))\n"
+"             (listen '(\"443 ssl\"))\n"
+"             (ssl-certificate (letsencrypt-certificate \"webssh.example.com\"))\n"
+"             (ssl-certificate-key (letsencrypt-key \"webssh.example.com\"))\n"
+"             (locations\n"
+"              (cons (nginx-location-configuration\n"
+"                     (uri \"/.well-known\")\n"
+"                     (body '(\"root /var/www;\")))\n"
+"                    (nginx-server-configuration-locations %webssh-configuration-nginx))))))))\n"
+msgstr ""
+"(service nginx-service-type\n"
+"         (nginx-configuration\n"
+"          (server-blocks\n"
+"           (list\n"
+"            (nginx-server-configuration\n"
+"             (inherit %webssh-configuration-nginx)\n"
+"             (server-name '(\"webssh.example.com\"))\n"
+"             (listen '(\"443 ssl\"))\n"
+"             (ssl-certificate (letsencrypt-certificate \"webssh.example.com\"))\n"
+"             (ssl-certificate-key (letsencrypt-key \"webssh.example.com\"))\n"
+"             (locations\n"
+"              (cons (nginx-location-configuration\n"
+"                     (uri \"/.well-known\")\n"
+"                     (body '(\"root /var/www;\")))\n"
+"                    (nginx-server-configuration-locations %webssh-configuration-nginx))))))))\n"
+
+#. type: deftp
+#: doc/guix.texi:16672
+#, no-wrap
+msgid "{Data Type} webssh-configuration"
+msgstr "{Tipo de datos} webssh-configuration"
+
+#. type: deftp
+#: doc/guix.texi:16674
+msgid "Data type representing the configuration for @code{webssh-service}."
+msgstr "Tipo de datos que representa la configuración para @code{webssh-service}."
+
+#. type: item
+#: doc/guix.texi:16676
+#, no-wrap
+msgid "@code{package} (default: @var{webssh})"
+msgstr "@code{package} (predeterminado: @var{webssh})"
+
+#. type: table
+#: doc/guix.texi:16678
+msgid "@code{webssh} package to use."
+msgstr "Paquete @code{webssh} usado."
+
+#. type: item
+#: doc/guix.texi:16679
+#, no-wrap
+msgid "@code{user-name} (default: @var{\"webssh\"})"
+msgstr "@code{user-name} (predeterminado: @var{\"webssh\"})"
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:16682
+msgid "User name or user ID that file transfers to and from that module should take place."
+msgstr "Nombre o ID de usuaria bajo la cual se efectúan las transferencias desde y hacia el módulo."
+
+#. type: item
+#: doc/guix.texi:16683
+#, no-wrap
+msgid "@code{group-name} (default: @var{\"webssh\"})"
+msgstr "@code{group-name} (predeterminado: @var{\"webssh\"})"
+
+#. type: item
+#: doc/guix.texi:16686
+#, no-wrap
+msgid "@code{address} (default: @var{#f})"
+msgstr "@code{address} (predeterminada: @var{#f})"
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:16688
+msgid "IP address on which @command{webssh} listens for incoming connections."
+msgstr "Dirección IP en la que @command{webssh} espera conexiones entrantes."
+
+#. type: item
+#: doc/guix.texi:16689
+#, no-wrap
+msgid "@code{port} (default: @var{8888})"
+msgstr "@code{port} (predeterminado: @var{8888})"
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:16691
+msgid "TCP port on which @command{webssh} listens for incoming connections."
+msgstr "Puerto TCP en el que @command{webssh} espera conexiones entrantes."
+
+#. type: item
+#: doc/guix.texi:16692
+#, no-wrap
+msgid "@code{policy} (default: @var{#f})"
+msgstr "@code{policy} (predeterminada: @var{#f})"
+
+#. type: table
+#: doc/guix.texi:16694
+msgid "Connection policy.  @var{reject} policy requires to specify @var{known-hosts}."
+msgstr "Política de conexión.  La política @var{reject} necesita que se especifique un valor en @var{known-hosts}."
+
+#. type: item
+#: doc/guix.texi:16695
+#, no-wrap
+msgid "@code{known-hosts} (default: @var{'()})"
+msgstr "@code{known-hosts} (predeterminada: @var{'()})"
+
+#. type: table
+#: doc/guix.texi:16697
+msgid "List of hosts which allowed for SSH connection from @command{webssh}."
+msgstr "Lista de máquinas a las que se permite realizar conexiones SSH desde @command{webssh}."
+
+#. type: item
+#: doc/guix.texi:16698
+#, no-wrap
+msgid "@code{log-file} (default: @file{\"/var/log/webssh.log\"})"
+msgstr "@code{log-file} (predeterminado: @file{\"/var/log/webssh.log\"})"
+
+#. type: item
+#: doc/guix.texi:16701
+#, no-wrap
+msgid "@code{log-level} (default: @var{#f})"
+msgstr "@code{log-level} (predeterminado: @var{#f})"
+
+#. type: table
+#: doc/guix.texi:16703
+msgid "Logging level."
+msgstr "Nivel de registro."
+
 #. type: defvr
-#: doc/guix.texi:14288
+#: doc/guix.texi:16707
 #, no-wrap
 msgid "{Scheme Variable} %facebook-host-aliases"
 msgstr "{Variable Scheme} %facebook-host-aliases"
 
 #. type: defvr
-#: doc/guix.texi:14294
+#: doc/guix.texi:16713
 msgid "This variable contains a string for use in @file{/etc/hosts} (@pxref{Host Names,,, libc, The GNU C Library Reference Manual}).  Each line contains a entry that maps a known server name of the Facebook on-line service---e.g., @code{www.facebook.com}---to the local host---@code{127.0.0.1} or its IPv6 equivalent, @code{::1}."
 msgstr "Esta variable contiene una cadena para su uso en @file{/etc/hosts} (@pxref{Host Names,,, libc, The GNU C Library Reference Manual}). Cada línea contiene una entrada que asocia un nombre de servidor conocido del servicio en línea Facebook---por ejemplo, @code{www.facebook.com}---a la máquina local---@code{127.0.0.1} o su equivalente IPv6, @code{::1}."
 
 #. type: defvr
-#: doc/guix.texi:14298
+#: doc/guix.texi:16717
 msgid "This variable is typically used in the @code{hosts-file} field of an @code{operating-system} declaration (@pxref{operating-system Reference, @file{/etc/hosts}}):"
 msgstr "Esta variable habitualmente se usa en el campo @code{hosts-file} de una declaración @code{operating-system} (@pxref{operating-system Reference, @file{/etc/hosts}}):"
 
 #. type: lisp
-#: doc/guix.texi:14311
+#: doc/guix.texi:16730
 #, no-wrap
 msgid ""
 "(operating-system\n"
@@ -27170,98 +31425,98 @@ msgstr ""
 "  (host-name \"micompu\")\n"
 "  ;; ...\n"
 "  (hosts-file\n"
-"    ;; Crea un fichero /etc/hosts file con alias para \"localhost\"\n"
+"    ;; Crea un archivo /etc/hosts file con alias para \"localhost\"\n"
 "    ;; y \"micompu\", así como los servidores de facebook.\n"
 "    (plain-file \"hosts\"\n"
 "                (string-append (local-host-aliases host-name)\n"
 "                               %facebook-host-aliases))))\n"
 
 #. type: defvr
-#: doc/guix.texi:14315
+#: doc/guix.texi:16734
 msgid "This mechanism can prevent programs running locally, such as Web browsers, from accessing Facebook."
 msgstr "Este mecanismo puede impedir a los programas que se ejecutan localmente, como navegadores Web, el acceso a Facebook."
 
 #. type: Plain text
-#: doc/guix.texi:14318
+#: doc/guix.texi:16737
 msgid "The @code{(gnu services avahi)} provides the following definition."
 msgstr "El módulo @code{(gnu services avahi)} proporciona la siguiente definición."
 
 #. type: defvr
-#: doc/guix.texi:14319
+#: doc/guix.texi:16738
 #, no-wrap
 msgid "{Scheme Variable} avahi-service-type"
 msgstr "{Variable Scheme} avahi-service-type"
 
 # FUZZY
 #. type: defvr
-#: doc/guix.texi:14324
-msgid "This is the service that runs @command{avahi-daemon}, a system-wide mDNS/DNS-SD responder that allows for service discovery and ``zero-configuration'' host name lookups (see @uref{https://avahi.org/}).  Its value must be a @code{zero-configuration} record---see below."
-msgstr "Es el servicio que ejecuta @command{avahi-daemon}, un servidor mDNS/DNS-SD a nivel del sistema que permite el descubrimiento de servicios y la búsqueda de nombres de máquina ``sin configuración/cero configuración'' (véase @uref{https://avahi.org/}). Su valor debe ser un registro @code{zero-configuration}---véase a continuación. "
+#: doc/guix.texi:16743
+msgid "This is the service that runs @command{avahi-daemon}, a system-wide mDNS/DNS-SD responder that allows for service discovery and ``zero-configuration'' host name lookups (see @uref{https://avahi.org/}).  Its value must be an @code{avahi-configuration} record---see below."
+msgstr "Es el servicio que ejecuta @command{avahi-daemon}, un servidor mDNS/DNS-SD a nivel del sistema que permite el descubrimiento de servicios y la búsqueda de nombres de máquina ``sin configuración'' (``zero-configuration'', véase @uref{https://avahi.org/}). Su valor debe ser un registro @code{avahi-configuration}---véase a continuación. "
 
 # FUZZY
 #. type: defvr
-#: doc/guix.texi:14329
+#: doc/guix.texi:16748
 msgid "This service extends the name service cache daemon (nscd) so that it can resolve @code{.local} host names using @uref{https://0pointer.de/lennart/projects/nss-mdns/, nss-mdns}.  @xref{Name Service Switch}, for information on host name resolution."
 msgstr "Este servicio extiende el daemon de la caché del servicio de nombres (nscd) de manera que pueda resolver nombres de máquina @code{.local} mediante el uso de @uref{https://0pointer.de/lennart/projects/nss-mdns, nss-mds}. @xref{Name Service Switch}, para información sobre la resolución de nombres de máquina."
 
 # FUZZY
 #. type: defvr
-#: doc/guix.texi:14332
+#: doc/guix.texi:16751
 msgid "Additionally, add the @var{avahi} package to the system profile so that commands such as @command{avahi-browse} are directly usable."
 msgstr "De manera adicional, añade el paquete @var{avahi} al perfil del sistema de manera que ordenes como @command{avahi-browse} estén disponibles de manera directa."
 
 #. type: deftp
-#: doc/guix.texi:14334
+#: doc/guix.texi:16753
 #, no-wrap
 msgid "{Data Type} avahi-configuration"
 msgstr "{Tipo de datos} avahi-configuration"
 
 #. type: deftp
-#: doc/guix.texi:14336
+#: doc/guix.texi:16755
 msgid "Data type representation the configuration for Avahi."
 msgstr "Tipo de datos que representa la configuración de Avahi."
 
 #. type: item
-#: doc/guix.texi:14339
+#: doc/guix.texi:16758
 #, no-wrap
 msgid "@code{host-name} (default: @code{#f})"
 msgstr "@code{host-name} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:14342
+#: doc/guix.texi:16761
 msgid "If different from @code{#f}, use that as the host name to publish for this machine; otherwise, use the machine's actual host name."
 msgstr "Si es diferente de @code{#f}, se usa como el nombre de máquina a publicar para esta máquina; en otro caso, usa el nombre actual de la máquina."
 
 #. type: item
-#: doc/guix.texi:14343
+#: doc/guix.texi:16762
 #, no-wrap
 msgid "@code{publish?} (default: @code{#t})"
 msgstr "@code{publish?} (predeterminado: @code{#t})"
 
 #. type: table
-#: doc/guix.texi:14346
+#: doc/guix.texi:16765
 msgid "When true, allow host names and services to be published (broadcast) over the network."
 msgstr "Cuando es verdadero, permite la publicación (retransmisión) de nombres de máquina y servicios a través de la red."
 
 #. type: item
-#: doc/guix.texi:14347
+#: doc/guix.texi:16766
 #, no-wrap
 msgid "@code{publish-workstation?} (default: @code{#t})"
 msgstr "@code{publish-workstation?} (predeterminado: @code{#t})"
 
 #. type: table
-#: doc/guix.texi:14351
+#: doc/guix.texi:16770
 msgid "When true, @command{avahi-daemon} publishes the machine's host name and IP address via mDNS on the local network.  To view the host names published on your local network, you can run:"
 msgstr "Cuando es verdadero, @command{avahi-daemon} publica el nombre de máquina y la dirección IP a través de mDNS en la red local. Para ver los nombres de máquina publicados en su red local, puede ejecutar:"
 
 #. type: example
-#: doc/guix.texi:14354
+#: doc/guix.texi:16773
 #, no-wrap
 msgid "avahi-browse _workstation._tcp\n"
 msgstr "avahi-browse _workstation._tcp\n"
 
 #. type: item
-#: doc/guix.texi:14356
+#: doc/guix.texi:16775
 #, no-wrap
 msgid "@code{wide-area?} (default: @code{#f})"
 msgstr "@code{wide-area?} (predeterminado: @code{#f})"
@@ -27270,91 +31525,91 @@ msgstr "@code{wide-area?} (predeterminado: @code{#f})"
 # TODO (MAAV): Necesito más conocimiento sobre el ámbito para poder
 # traducirlo bien...
 #. type: table
-#: doc/guix.texi:14358
+#: doc/guix.texi:16777
 msgid "When true, DNS-SD over unicast DNS is enabled."
 msgstr "Cuando es verdadero, se permite DNS-SD sobre DNS unicast."
 
 #. type: item
-#: doc/guix.texi:14359
+#: doc/guix.texi:16778
 #, no-wrap
 msgid "@code{ipv4?} (default: @code{#t})"
 msgstr "@code{ipv4?} (predeterminado: @code{#t})"
 
 #. type: itemx
-#: doc/guix.texi:14360
+#: doc/guix.texi:16779
 #, no-wrap
 msgid "@code{ipv6?} (default: @code{#t})"
 msgstr "@code{ipv6?} (predeterminado: @code{#t})"
 
 #. type: table
-#: doc/guix.texi:14362
+#: doc/guix.texi:16781
 msgid "These fields determine whether to use IPv4/IPv6 sockets."
 msgstr "Estos campos determinan si usar sockets IPv4/IPv6."
 
 #. type: item
-#: doc/guix.texi:14363
+#: doc/guix.texi:16782
 #, no-wrap
 msgid "@code{domains-to-browse} (default: @code{'()})"
 msgstr "@code{domains-to-browse} (predeterminado: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:14365
+#: doc/guix.texi:16784
 msgid "This is a list of domains to browse."
 msgstr "Esta es la lista de dominios a explorar."
 
 #. type: deffn
-#: doc/guix.texi:14368
+#: doc/guix.texi:16787
 #, no-wrap
 msgid "{Scheme Variable} openvswitch-service-type"
 msgstr "{Variable Scheme} openvswitch-service-type"
 
 #. type: deffn
-#: doc/guix.texi:14372
+#: doc/guix.texi:16791
 msgid "This is the type of the @uref{https://www.openvswitch.org, Open vSwitch} service, whose value should be an @code{openvswitch-configuration} object."
 msgstr "Este es el tipo del servicio @uref{https://www.openvswitch.org, Open vSwitch}, cuyo valor debe ser un objeto @code{openvswitch-configuration}."
 
 #. type: deftp
-#: doc/guix.texi:14374
+#: doc/guix.texi:16793
 #, no-wrap
 msgid "{Data Type} openvswitch-configuration"
 msgstr "{Tipo de datos} openvswitch-configuration"
 
 # FUZZY FUZZY FUZZY
 #. type: deftp
-#: doc/guix.texi:14378
+#: doc/guix.texi:16797
 msgid "Data type representing the configuration of Open vSwitch, a multilayer virtual switch which is designed to enable massive network automation through programmatic extension."
 msgstr "Tipo de datos que representa la configuración de Open vSwitch, un switch virtual multicapa que está diseñado para permitir una automatización masiva en la red a través de extensión programática."
 
 #. type: item
-#: doc/guix.texi:14380
+#: doc/guix.texi:16799
 #, no-wrap
 msgid "@code{package} (default: @var{openvswitch})"
 msgstr "@code{package} (predeterminado: @var{openvswitch})"
 
 #. type: table
-#: doc/guix.texi:14382
+#: doc/guix.texi:16801
 msgid "Package object of the Open vSwitch."
 msgstr "El objeto paquete de Open vSwitch."
 
 #. type: defvr
-#: doc/guix.texi:14386
+#: doc/guix.texi:16805
 #, no-wrap
 msgid "{Scheme Variable} pagekite-service-type"
 msgstr "{Variable Scheme} pagekite-service-type"
 
 # FUZZY
 #. type: defvr
-#: doc/guix.texi:14391
+#: doc/guix.texi:16810
 msgid "This is the service type for the @uref{https://pagekite.net, PageKite} service, a tunneling solution for making localhost servers publicly visible, even from behind restrictive firewalls or NAT without forwarded ports.  The value for this service type is a @code{pagekite-configuration} record."
 msgstr "El tipo de servicio para el servicio @uref{https://pagekite.net, PageKite}, una solución de encaminado para hacer servidores de la red local visibles públicamente, incluso detrás de cortafuegos restrictivos o NAT sin redirección de puertos. El valor para este servicio es un registro @code{pagekite-configuration}."
 
 #. type: defvr
-#: doc/guix.texi:14393
+#: doc/guix.texi:16812
 msgid "Here's an example exposing the local HTTP and SSH daemons:"
 msgstr "Este es un ejemplo que expone los daemon HTTP y SSH locales:"
 
 #. type: lisp
-#: doc/guix.texi:14400
+#: doc/guix.texi:16819
 #, no-wrap
 msgid ""
 "(service pagekite-service-type\n"
@@ -27370,295 +31625,513 @@ msgstr ""
 "           (extra-file \"/etc/pagekite.rc\")))\n"
 
 #. type: deftp
-#: doc/guix.texi:14403
+#: doc/guix.texi:16822
 #, no-wrap
 msgid "{Data Type} pagekite-configuration"
 msgstr "{Tipo de datos} pagekite-configuration"
 
 #. type: deftp
-#: doc/guix.texi:14405
+#: doc/guix.texi:16824
 msgid "Data type representing the configuration of PageKite."
 msgstr "Tipo de datos que representa la configuración de PageKite."
 
 #. type: item
-#: doc/guix.texi:14407
+#: doc/guix.texi:16826
 #, no-wrap
 msgid "@code{package} (default: @var{pagekite})"
 msgstr "@code{package} (predeterminado: @var{pagekite})"
 
 #. type: table
-#: doc/guix.texi:14409
+#: doc/guix.texi:16828
 msgid "Package object of PageKite."
 msgstr "El objeto paquete de PageKite."
 
 #. type: item
-#: doc/guix.texi:14410
+#: doc/guix.texi:16829
 #, no-wrap
 msgid "@code{kitename} (default: @code{#f})"
 msgstr "@code{kitename} (predeterminado: @code{#f})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:14412
+#: doc/guix.texi:16831
 msgid "PageKite name for authenticating to the frontend server."
 msgstr "Nombre de PageKite para la identificación con el servidor de fachada."
 
 #. type: item
-#: doc/guix.texi:14413
+#: doc/guix.texi:16832
 #, no-wrap
 msgid "@code{kitesecret} (default: @code{#f})"
 msgstr "@code{kitesecret} (predeterminado: @code{#f})"
 
 # FUZZY FUZZY FUZZY
 #. type: table
-#: doc/guix.texi:14416
+#: doc/guix.texi:16835
 msgid "Shared secret for authenticating to the frontend server.  You should probably put this inside @code{extra-file} instead."
 msgstr "Secreto compartido para la comunicación con el servidor. Probablemente debería almacenarlo dentro @code{extra-file} en vez de aquí."
 
 #. type: item
-#: doc/guix.texi:14417
+#: doc/guix.texi:16836
 #, no-wrap
 msgid "@code{frontend} (default: @code{#f})"
 msgstr "@code{frontend} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:14420
+#: doc/guix.texi:16839
 msgid "Connect to the named PageKite frontend server instead of the @uref{https://pagekite.net,,pagekite.net} service."
 msgstr "Conecta al servidor de fachada de PageKite con este nombre en vez de al servicio de @uref{https://pagekite.net,,pagekite.net}."
 
 #. type: item
-#: doc/guix.texi:14421
+#: doc/guix.texi:16840
 #, no-wrap
 msgid "@code{kites} (default: @code{'(\"http:@@kitename:localhost:80:@@kitesecret\")})"
 msgstr "@code{kites} (predeterminados: @code{'(\"http:@@kitename:localhost:80:@@kitesecret\")})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:14424
+#: doc/guix.texi:16843
 msgid "List of service kites to use.  Exposes HTTP on port 80 by default. The format is @code{proto:kitename:host:port:secret}."
 msgstr "Lista de servicios de publicación (kite) usados. Expone HTTP en el puerto 80 de manera predeterminada. El formato es @code{protocolo:nombre-kite:máquina:puerto:secreto}."
 
 #. type: item
-#: doc/guix.texi:14425
+#: doc/guix.texi:16844
 #, no-wrap
 msgid "@code{extra-file} (default: @code{#f})"
 msgstr "@code{extra-file} (predeterminado: @code{#f})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:14428
+#: doc/guix.texi:16847
 msgid "Extra configuration file to read, which you are expected to create manually.  Use this to add additional options and manage shared secrets out-of-band."
-msgstr "Fichero adicional de configuración que debe leerse, el cual se espera que sea creado de forma manual. Úselo para añadir opciones adicionales y gestionar secretos compartidos fuera de banda."
+msgstr "Archivo adicional de configuración que debe leerse, el cual se espera que sea creado de forma manual. Úselo para añadir opciones adicionales y gestionar secretos compartidos fuera de banda."
 
 #. type: cindex
-#: doc/guix.texi:14435
+#: doc/guix.texi:16854
+#, no-wrap
+msgid "unattended upgrades"
+msgstr "actualizaciones desatendidas"
+
+#. type: cindex
+#: doc/guix.texi:16855
+#, no-wrap
+msgid "upgrades, unattended"
+msgstr "desatendidas, actualizaciones"
+
+#. type: Plain text
+#: doc/guix.texi:16860
+msgid "Guix provides a service to perform @emph{unattended upgrades}: periodically, the system automatically reconfigures itself from the latest Guix.  Guix System has several properties that make unattended upgrades safe:"
+msgstr "Guix proporciona un servicio para realizar @emph{actualizaciones desatendidas}: periodicamente el sistema se reconfigura automáticamente con la última revisión de Guix. El sistema Guix tiene varias propiedades que hacen que las actualizaciones desatendidas sean seguras:"
+
+#. type: itemize
+#: doc/guix.texi:16865
+msgid "upgrades are transactional (either the upgrade succeeds or it fails, but you cannot end up with an ``in-between'' system state);"
+msgstr "las actualizaciones son transaccionales (o bien la actualización se lleva a cabo con éxito o bien falla, pero no puede acabar en un estado ``intermedio'' del sistema);"
+
+#. type: itemize
+#: doc/guix.texi:16869
+msgid "the upgrade log is kept---you can view it with @command{guix system list-generations}---and you can roll back to any previous generation, should the upgraded system fail to behave as intended;"
+msgstr "el registro de actualizaciones se mantiene---puede acceder a dicho registro con @command{guix system list-generations}---y puede volver a una generación previa, en caso de que alguna generación no funcione como desee;"
+
+#. type: itemize
+#: doc/guix.texi:16872
+msgid "channel code is authenticated so you know you can only run genuine code (@pxref{Channels});"
+msgstr "el código del canal se verifica de modo que únicamente pueda ejecutar código que ha sido firmado (@pxref{Channels});"
+
+# FUZZY
+#. type: itemize
+#: doc/guix.texi:16875
+msgid "@command{guix system reconfigure} prevents downgrades, which makes it immune to @dfn{downgrade attacks}."
+msgstr "@command{guix system reconfigure} evita la instalación de versiones previas, que lo hace inmune a @dfn{ataques de versión anterior}."
+
+#. type: Plain text
+#: doc/guix.texi:16880
+msgid "To set up unattended upgrades, add an instance of @code{unattended-upgrade-service-type} like the one below to the list of your operating system services:"
+msgstr "Para configurar las actualizaciones desatendidas, añada una instancia de @code{unattended-upgrade-service-type} como la que se muestra a continuación a la lista de servicios de su sistema operativo:"
+
+#. type: lisp
+#: doc/guix.texi:16883
+#, no-wrap
+msgid "(service unattended-upgrade-service-type)\n"
+msgstr "(service unattended-upgrade-service-type)\n"
+
+#. type: Plain text
+#: doc/guix.texi:16890
+msgid "The defaults above set up weekly upgrades: every Sunday at midnight.  You do not need to provide the operating system configuration file: it uses @file{/run/current-system/configuration.scm}, which ensures it always uses your latest configuration---@pxref{provenance-service-type}, for more information about this file."
+msgstr "El valor predeterminado configura actualizaciones semanales: cada domingo a medianoche. No es necesario que proporcione el archivo de configuración de su sistema operativo: el servicio usa @file{/run/current-system/configuration.scm}, lo que asegura el uso de su última configuración---@pxref{provenance-service-type}, para obtener más información sobre este archivo."
+
+# FUZZY FUZZY
+# TODO (MAAV): as per
+#. type: Plain text
+#: doc/guix.texi:16896
+msgid "There are several things that can be configured, in particular the periodicity and services (daemons) to be restarted upon completion.  When the upgrade is successful, the service takes care of deleting system generations older that some threshold, as per @command{guix system delete-generations}.  See the reference below for details."
+msgstr "Hay varios aspectos que se pueden configurar, en particular la periodicidad y los servicios (daemon) que se reiniciarán tras completar la actualización. Cuando la actualización se lleva a cabo satisfactoriamente el servicio se encarga de borrar las generaciones del sistema cuya antigüedad es superior a determinado valor, usando @command{guix system delete-generations}. Véase la referencia a continuación para obtener más detalles."
+
+#. type: Plain text
+#: doc/guix.texi:16900
+msgid "To ensure that upgrades are actually happening, you can run @command{guix system describe}.  To investigate upgrade failures, visit the unattended upgrade log file (see below)."
+msgstr "Para asegurar que las actualizaciones se están levando a cabo realmente, puede ejecutar @command{guix system describe}. Para investigar fallos en las actualizaciones, visite el archivo de registro de las actualizaciones desatendidas (véase a continuación)."
+
+#. type: defvr
+#: doc/guix.texi:16901
+#, no-wrap
+msgid "{Scheme Variable} unattended-upgrade-service-type"
+msgstr "{Variable Scheme} unattended-upgrade-service-type"
+
+#. type: defvr
+#: doc/guix.texi:16905
+msgid "This is the service type for unattended upgrades.  It sets up an mcron job (@pxref{Scheduled Job Execution}) that runs @command{guix system reconfigure} from the latest version of the specified channels."
+msgstr "Es el tipo de servicio para las actualizaciones desatendidas. Configura un trabajo de mcron (@pxref{Scheduled Job Execution}) que ejecuta @command{guix system reconfigure} a partir de la última versión de los canales especificados."
+
+#. type: defvr
+#: doc/guix.texi:16908
+msgid "Its value must be a @code{unattended-upgrade-configuration} record (see below)."
+msgstr "Su valor debe ser un registro @code{unattended-upgrade-configuration} (véase a continuación)."
+
+#. type: deftp
+#: doc/guix.texi:16910
+#, no-wrap
+msgid "{Data Type} unattended-upgrade-configuration"
+msgstr "{Tipo de datos} unattended-upgrade-configuration"
+
+# FUZZY
+#. type: deftp
+#: doc/guix.texi:16913
+msgid "This data type represents the configuration of the unattended upgrade service.  The following fields are available:"
+msgstr "Este tipo de datos representa la configuración del servicio de actualizaciones desatendidas. Los siguientes campos están disponibles:"
+
+#. type: item
+#: doc/guix.texi:16915
+#, no-wrap
+msgid "@code{schedule} (default: @code{\"30 01 * * 0\"})"
+msgstr "@code{schedule} (predeterminada: @code{\"30 01 * * 0\"})"
+
+#. type: table
+#: doc/guix.texi:16919
+msgid "This is the schedule of upgrades, expressed as a gexp containing an mcron job schedule (@pxref{Guile Syntax, mcron job specifications,, mcron, GNU@tie{}mcron})."
+msgstr "La planificación de las actualizaciones, expresada en una expresión-G que contiene una planificación de trabajo de mcron (@pxref{Syntax, mcron job specifications,, mcron, GNU@tie{}mcron})."
+
+#. type: item
+#: doc/guix.texi:16920
+#, no-wrap
+msgid "@code{channels} (default: @code{#~%default-channels})"
+msgstr "@code{channels} (predeterminada: @code{#~%default-channels})"
+
+#. type: table
+#: doc/guix.texi:16924
+msgid "This gexp specifies the channels to use for the upgrade (@pxref{Channels}).  By default, the tip of the official @code{guix} channel is used."
+msgstr "Esta expresión-G especifica los canales usados para la actualización (@pxref{Channels}). De manera predeterminada, se usa la última revisión del canal oficial @code{guix}."
+
+#. type: item
+#: doc/guix.texi:16925
+#, no-wrap
+msgid "@code{operating-system-file} (default: @code{\"/run/current-system/configuration.scm\"})"
+msgstr "@code{operating-system-file} (predeterminado: @code{\"/run/current-system/configuration.scm\"})"
+
+#. type: table
+#: doc/guix.texi:16928
+msgid "This field specifies the operating system configuration file to use.  The default is to reuse the config file of the current configuration."
+msgstr "Este campo especifica el archivo de configuración del sistema operativo usado. El valor predeterminado reutiliza el archivo de configuración de la configuración actual."
+
+#. type: table
+#: doc/guix.texi:16934
+msgid "There are cases, though, where referring to @file{/run/current-system/configuration.scm} is not enough, for instance because that file refers to extra files (SSH public keys, extra configuration files, etc.) @i{via} @code{local-file} and similar constructs.  For those cases, we recommend something along these lines:"
+msgstr "No obstante hay casos en los que no es suficiente hacer referencia a @file{/run/current-system/configuration.scm}, por ejemplo porque dicho archivo hace referencia a archivos adicionales (claves públicas de SSH, archivos de configuración adicionales, etcétera) a través de @code{local-file} y construcciones similares. Para estos casos recomendamos una configuración parecida a esta:"
+
+#. type: lisp
+#: doc/guix.texi:16940
+#, no-wrap
+msgid ""
+"(unattended-upgrade-configuration\n"
+"  (operating-system-file\n"
+"    (file-append (local-file \".\" \"config-dir\" #:recursive? #t)\n"
+"                 \"/config.scm\")))\n"
+msgstr ""
+"(unattended-upgrade-configuration\n"
+"  (operating-system-file\n"
+"    (file-append (local-file \".\" \"config-dir\" #:recursive? #t)\n"
+"                 \"/config.scm\")))\n"
+
+#. type: table
+#: doc/guix.texi:16947
+msgid "The effect here is to import all of the current directory into the store, and to refer to @file{config.scm} within that directory.  Therefore, uses of @code{local-file} within @file{config.scm} will work as expected.  @xref{G-Expressions}, for information about @code{local-file} and @code{file-append}."
+msgstr "El efecto que esto tiene es la importación del directorio actual al completo en el almacén, y hace referencia a @file{config.scm} dentro de dicho directorio. Por lo tanto, los usos de @code{local-file} dentro de @file{config.scm} funcionarán como se espera.  @xref{G-Expressions} para más información acerca de @code{local-file} y @code{file-append}."
+
+#. type: item
+#: doc/guix.texi:16948
+#, no-wrap
+msgid "@code{services-to-restart} (default: @code{'(mcron)})"
+msgstr "@code{services-to-restart} (predeterminados: @code{'(mcron)})"
+
+#. type: table
+#: doc/guix.texi:16951
+msgid "This field specifies the Shepherd services to restart when the upgrade completes."
+msgstr "Este campo especifica los servicios de Shepherd que se reiniciarán cuando se complete una actualización."
+
+#. type: table
+#: doc/guix.texi:16958
+msgid "Those services are restarted right away upon completion, as with @command{herd restart}, which ensures that the latest version is running---remember that by default @command{guix system reconfigure} only restarts services that are not currently running, which is conservative: it minimizes disruption but leaves outdated services running."
+msgstr "Estos servicios se reinician tras completarse la actualización, como ejecutando @command{herd restart}, lo que asegura la ejecución de la última versión---recuerde que de manera predeterminada @command{guix system reconfigure} únicamente reinicia los servicios que no se están ejecutando en este momento, lo que es una aproximación conservadora: minimiza la disrupción pero mantiene servicios en ejecución con código previo a la actualización."
+
+#. type: table
+#: doc/guix.texi:16961
+msgid "By default, the @code{mcron} service is restarted.  This ensures that the latest version of the unattended upgrade job will be used next time."
+msgstr "De manera predeterminada se reinicia el servicio @code{mcron}. Esto asegura que la última versión del trabajo de actualización desatendida será la que se use la próxima vez."
+
+#. type: item
+#: doc/guix.texi:16962
+#, no-wrap
+msgid "@code{system-expiration} (default: @code{(* 3 30 24 3600)})"
+msgstr "@code{system-expiration} (predeterminado: @code{(* 3 30 24 3600)})"
+
+#. type: table
+#: doc/guix.texi:16966
+msgid "This is the expiration time in seconds for system generations.  System generations older that this amount of time are deleted with @command{guix system delete-generations} when an upgrade completes."
+msgstr "Tiempo de expiración en segundos de las generaciones del sistema. Las generaciones del sistema cuya antigüedad sea mayor que esta cantidad de tiempo se borran con @command{guix system delete-generations} cuando se completa una actualización."
+
+#. type: quotation
+#: doc/guix.texi:16971
+msgid "The unattended upgrade service does not run the garbage collector.  You will probably want to set up your own mcron job to run @command{guix gc} periodically."
+msgstr "El servicio de actualizaciones desatendidas no ejecuta el proceso de recolección de basura. Probablemente quiera añadir su propio trabajo a mcron para ejecutar @command{guix gc} de manera periódica."
+
+#. type: item
+#: doc/guix.texi:16973
+#, no-wrap
+msgid "@code{maximum-duration} (default: @code{3600})"
+msgstr "@code{maximum-duration} (predeterminado: @code{3600})"
+
+#. type: table
+#: doc/guix.texi:16976
+msgid "Maximum duration in seconds for the upgrade; past that time, the upgrade aborts."
+msgstr "Duración máxima en segundos de la actualización; tras pasar este tiempo se aborta la actualización."
+
+#. type: table
+#: doc/guix.texi:16979
+msgid "This is primarily useful to ensure the upgrade does not end up rebuilding or re-downloading ``the world''."
+msgstr "Esto es útil principalmente para asegurar que una actualización no reconstruye o vuelve a descargarse ``el mundo entero''."
+
+#. type: item
+#: doc/guix.texi:16980
+#, no-wrap
+msgid "@code{log-file} (default: @code{\"/var/log/unattended-upgrade.log\"})"
+msgstr "@code{log-file} (predeterminado: @code{\"/var/log/unattended-upgrade.log\"})"
+
+#. type: table
+#: doc/guix.texi:16982
+msgid "File where unattended upgrades are logged."
+msgstr "Archivo donde se registran las actualizaciones desatendidas."
+
+#. type: cindex
+#: doc/guix.texi:16988
 #, no-wrap
 msgid "X11"
 msgstr "X11"
 
 # XXX: Dudas de traducción...
 #. type: cindex
-#: doc/guix.texi:14436
+#: doc/guix.texi:16989
 #, no-wrap
 msgid "X Window System"
 msgstr "sistema X Window"
 
 #. type: cindex
-#: doc/guix.texi:14437 doc/guix.texi:14689
+#: doc/guix.texi:16990 doc/guix.texi:17243
 #, no-wrap
 msgid "login manager"
 msgstr "gestor de ingreso en el sistema"
 
 #. type: Plain text
-#: doc/guix.texi:14442
+#: doc/guix.texi:16995
 msgid "Support for the X Window graphical display system---specifically Xorg---is provided by the @code{(gnu services xorg)} module.  Note that there is no @code{xorg-service} procedure.  Instead, the X server is started by the @dfn{login manager}, by default the GNOME Display Manager (GDM)."
 msgstr "El sistema gráfico X Window---específicamente Xorg---se proporciona en el módulo @code{(gnu services xorg)}. Fíjese que no existe un procedimiento @code{xorg-service}. En vez de eso, el servidor X se inicia por el @dfn{gestor de ingreso al sistema}, de manera predeterminada el gestor de acceso de GNOME (GDM)."
 
 #. type: cindex
-#: doc/guix.texi:14443
+#: doc/guix.texi:16996
 #, no-wrap
 msgid "GDM"
 msgstr "GDM"
 
 #. type: cindex
-#: doc/guix.texi:14444
+#: doc/guix.texi:16997
 #, no-wrap
 msgid "GNOME, login manager"
 msgstr "GNOME, gestor de ingreso al sistema"
 
 # FUZZY
 #. type: Plain text
-#: doc/guix.texi:14448
+#: doc/guix.texi:17001
 msgid "GDM of course allows users to log in into window managers and desktop environments other than GNOME; for those using GNOME, GDM is required for features such as automatic screen locking."
 msgstr "GDM por supuesto que permite a las usuarias ingresar al sistema con gestores de ventanas y entornos de escritorio distintos a GNOME; para aquellas que usan GNOME, GDM es necesario para características como el bloqueo automático de pantalla."
 
 #. type: cindex
-#: doc/guix.texi:14449
+#: doc/guix.texi:17002
 #, no-wrap
 msgid "window manager"
 msgstr "gestor de ventanas"
 
 # FUZZY
 #. type: Plain text
-#: doc/guix.texi:14454
+#: doc/guix.texi:17007
 msgid "To use X11, you must install at least one @dfn{window manager}---for example the @code{windowmaker} or @code{openbox} packages---preferably by adding it to the @code{packages} field of your operating system definition (@pxref{operating-system Reference, system-wide packages})."
 msgstr "Para usar X11, debe instalar al menos un @dfn{gestor de ventanas}---por ejemplo los paquetes @code{windowmaker} o @code{openbox}---, preferiblemente añadiendo el que desee al campo @code{packages} de su definición de sistema operativo (@pxref{operating-system Reference, paquetes del sistema})."
 
 #. type: defvr
-#: doc/guix.texi:14455
+#: doc/guix.texi:17008
 #, no-wrap
 msgid "{Scheme Variable} gdm-service-type"
 msgstr "{Variable Scheme} gdm-service-type"
 
 # FUZZY
 #. type: defvr
-#: doc/guix.texi:14460
-msgid "This is the type for the @uref{https://wiki.gnome.org/Projects/GDM/, GNOME Desktop Manager} (GDM), a program that manages graphical display servers and handles graphical user logins.  Its value must be a @code{gdm-configuration} (see below.)"
+#: doc/guix.texi:17013
+msgid "This is the type for the @uref{https://wiki.gnome.org/Projects/GDM/, GNOME Desktop Manager} (GDM), a program that manages graphical display servers and handles graphical user logins.  Its value must be a @code{gdm-configuration} (see below)."
 msgstr "Este es el tipo para el @uref{https://wiki.gnome.org/Projects/GDM/, gestor de acceso de GNOME} (GDM), un programa que gestiona servidores gráficos y maneja de forma gráfica el ingreso al sistema de usuarias. Su valor debe ser un@code{gdm-configuration} (véase a continuación). "
 
 #. type: cindex
-#: doc/guix.texi:14461
+#: doc/guix.texi:17014
 #, no-wrap
 msgid "session types (X11)"
 msgstr "tipos de sesión (X11)"
 
 #. type: cindex
-#: doc/guix.texi:14462
+#: doc/guix.texi:17015
 #, no-wrap
 msgid "X11 session types"
 msgstr "X11, tipos de sesión"
 
 # FUZZY
 #. type: defvr
-#: doc/guix.texi:14468
+#: doc/guix.texi:17021
 msgid "GDM looks for @dfn{session types} described by the @file{.desktop} files in @file{/run/current-system/profile/share/xsessions} and allows users to choose a session from the log-in screen.  Packages such as @code{gnome}, @code{xfce}, and @code{i3} provide @file{.desktop} files; adding them to the system-wide set of packages automatically makes them available at the log-in screen."
-msgstr "GDM busca @dfn{tipos de sesión} descritos por los ficheros @file{.desktop} en @file{/run/current-system/profile/share/xsessions} y permite a las usuarias seleccionar una sesión en la pantalla de ingreso. Paquetes como @code{gnome}, @code{xfce} y @code{i3} proporcionan ficheros @file{.desktop}; su adición a la lista global de paquetes hace que estén automáticamente disponibles en la pantalla de ingreso al sistema."
+msgstr "GDM busca @dfn{tipos de sesión} descritos por los archivos @file{.desktop} en @file{/run/current-system/profile/share/xsessions} y permite a las usuarias seleccionar una sesión en la pantalla de ingreso. Paquetes como @code{gnome}, @code{xfce} y @code{i3} proporcionan archivos @file{.desktop}; su adición a la lista global de paquetes hace que estén automáticamente disponibles en la pantalla de ingreso al sistema."
 
 #. type: defvr
-#: doc/guix.texi:14472
+#: doc/guix.texi:17025
 msgid "In addition, @file{~/.xsession} files are honored.  When available, @file{~/.xsession} must be an executable that starts a window manager and/or other X clients."
-msgstr "Además, se respetan los ficheros @file{~/.xsession}. Cuando esté disponible, @file{~/.xsession} debe ser un ejecutable que inicie un gestor de ventanas y/o otros clientes de X."
+msgstr "Además, se respetan los archivos @file{~/.xsession}. Cuando esté disponible, @file{~/.xsession} debe ser un ejecutable que inicie un gestor de ventanas y/o otros clientes de X."
 
 #. type: deftp
-#: doc/guix.texi:14474
+#: doc/guix.texi:17027
 #, no-wrap
 msgid "{Data Type} gdm-configuration"
 msgstr "{Tipo de datos} gdm-configuration"
 
 #. type: item
-#: doc/guix.texi:14476 doc/guix.texi:14545
+#: doc/guix.texi:17029 doc/guix.texi:17098
 #, no-wrap
 msgid "@code{auto-login?} (default: @code{#f})"
 msgstr "@code{auto-login?} (predeterminado: @code{#f})"
 
 #. type: itemx
-#: doc/guix.texi:14477
+#: doc/guix.texi:17030
 #, no-wrap
 msgid "@code{default-user} (default: @code{#f})"
 msgstr "@code{default-user} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:14479
+#: doc/guix.texi:17032
 msgid "When @code{auto-login?} is false, GDM presents a log-in screen."
 msgstr "Cuando @code{auto-login?} es falso, GDM presenta una pantalla de ingreso."
 
 #. type: table
-#: doc/guix.texi:14482
+#: doc/guix.texi:17035
 msgid "When @code{auto-login?} is true, GDM logs in directly as @code{default-user}."
 msgstr "Cuando @code{auto-login?} es verdadero, GDM ingresa directamente al sistema como @code{default-user}."
 
 #. type: item
-#: doc/guix.texi:14483 doc/guix.texi:18986 doc/guix.texi:20665
+#: doc/guix.texi:17036 doc/guix.texi:21676 doc/guix.texi:23378
+#: doc/guix.texi:27426 doc/guix.texi:27455 doc/guix.texi:27484
+#: doc/guix.texi:27511 doc/guix.texi:27566 doc/guix.texi:27591
+#: doc/guix.texi:27618 doc/guix.texi:27644 doc/guix.texi:27686
 #, no-wrap
 msgid "@code{debug?} (default: @code{#f})"
 msgstr "@code{debug?} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:14485
+#: doc/guix.texi:17038
 msgid "When true, GDM writes debug messages to its log."
 msgstr "Cuando tiene valor verdadero, GDM escribe los mensajes de depuración en su registro."
 
 #. type: item
-#: doc/guix.texi:14486
+#: doc/guix.texi:17039
 #, no-wrap
 msgid "@code{gnome-shell-assets} (default: ...)"
 msgstr "@code{gnome-shell-assets} (predeterminados: ...)"
 
 # FUZZY FUZZY FUZZY
 #. type: table
-#: doc/guix.texi:14488
+#: doc/guix.texi:17041
 msgid "List of GNOME Shell assets needed by GDM: icon theme, fonts, etc."
 msgstr "Lista de activos de GNOME Shell necesarios para GDM: tema de iconos, fuentes, etc.cc"
 
 #. type: item
-#: doc/guix.texi:14489
+#: doc/guix.texi:17042
 #, no-wrap
 msgid "@code{xorg-configuration} (default: @code{(xorg-configuration)})"
 msgstr "@code{xorg-configuration} (predeterminada: @code{(xorg-configuration)})"
 
 #. type: table
-#: doc/guix.texi:14491 doc/guix.texi:14572 doc/guix.texi:14655
+#: doc/guix.texi:17044 doc/guix.texi:17125 doc/guix.texi:17209
 msgid "Configuration of the Xorg graphical server."
 msgstr "Configuración del servidor gráfico Xorg."
 
 #. type: item
-#: doc/guix.texi:14492
+#: doc/guix.texi:17045
 #, no-wrap
 msgid "@code{xsession} (default: @code{(xinitrc)})"
 msgstr "@code{xsession} (predeterminado: @code{(xinitrc)})"
 
 #. type: table
-#: doc/guix.texi:14494 doc/guix.texi:14670
+#: doc/guix.texi:17047 doc/guix.texi:17224
 msgid "Script to run before starting a X session."
 msgstr "Guión a ejecutar antes de iniciar una sesión X."
 
 #. type: item
-#: doc/guix.texi:14495
+#: doc/guix.texi:17048
 #, no-wrap
 msgid "@code{dbus-daemon} (default: @code{dbus-daemon-wrapper})"
 msgstr "@code{dbus-daemon} (predeterminado: @code{dbus-daemon-wrapper})"
 
 #. type: table
-#: doc/guix.texi:14497
+#: doc/guix.texi:17050
 msgid "File name of the @code{dbus-daemon} executable."
-msgstr "El nombre de fichero del ejecutable @code{dbus-daemon}."
+msgstr "El nombre de archivo del ejecutable @code{dbus-daemon}."
 
 #. type: item
-#: doc/guix.texi:14498
+#: doc/guix.texi:17051
 #, no-wrap
 msgid "@code{gdm} (default: @code{gdm})"
 msgstr "@code{gdm} (predeterminado: @code{gdm})"
 
 #. type: table
-#: doc/guix.texi:14500
+#: doc/guix.texi:17053
 msgid "The GDM package to use."
 msgstr "El paquete GDM usado."
 
 #. type: defvr
-#: doc/guix.texi:14503
+#: doc/guix.texi:17056
 #, no-wrap
 msgid "{Scheme Variable} slim-service-type"
 msgstr "{Variable Scheme} slim-service-type"
 
 # FUZZY
 #. type: defvr
-#: doc/guix.texi:14505
+#: doc/guix.texi:17058
 msgid "This is the type for the SLiM graphical login manager for X11."
 msgstr "Este es el tipo para el gestor de ingreso al sistema gráfico para X11 SLiM."
 
 # FUZZY
 #. type: defvr
-#: doc/guix.texi:14509
+#: doc/guix.texi:17062
 msgid "Like GDM, SLiM looks for session types described by @file{.desktop} files and allows users to choose a session from the log-in screen using @kbd{F1}.  It also honors @file{~/.xsession} files."
-msgstr "Como GDM, SLiM busca tipos de sesión descritos por ficheros @file{.desktop} y permite a las usuarias la selección de sesión en la pantalla de ingreso al sistema mediante el uso de @kbd{F1}. También respeta los ficheros @file{~/.xsession}."
+msgstr "Como GDM, SLiM busca tipos de sesión descritos por archivos @file{.desktop} y permite a las usuarias la selección de sesión en la pantalla de ingreso al sistema mediante el uso de @kbd{F1}. También respeta los archivos @file{~/.xsession}."
 
 #. type: defvr
-#: doc/guix.texi:14516
+#: doc/guix.texi:17069
 msgid "Unlike GDM, SLiM does not spawn the user session on a different VT after logging in, which means that you can only start one graphical session.  If you want to be able to run multiple graphical sessions at the same time you have to add multiple SLiM services to your system services.  The following example shows how to replace the default GDM service with two SLiM services on tty7 and tty8."
 msgstr "Al contrario que GDM, SLiM no lanza las sesiones de las usuarias en terminales virtuales diferentes al usado para el ingreso, lo que significa que únicamente puede iniciar una sesión gráfica. Si desea ejecutar varias sesiones gráficas de manera simultánea, debe añadir múltiples servicios de SLiM a los servicios de su sistema. El ejemplo siguiente muestra cómo sustituir el servicio GDM predeterminado con dos servicios de SLiM en tty7 y tty8."
 
 #. type: lisp
-#: doc/guix.texi:14522
+#: doc/guix.texi:17075
 #, no-wrap
 msgid ""
 "(use-modules (gnu services)\n"
@@ -27674,7 +32147,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:14534
+#: doc/guix.texi:17087
 #, no-wrap
 msgid ""
 "(operating-system\n"
@@ -27702,482 +32175,482 @@ msgstr ""
 "                           %desktop-services))))\n"
 
 #. type: deftp
-#: doc/guix.texi:14538
+#: doc/guix.texi:17091
 #, no-wrap
 msgid "{Data Type} slim-configuration"
 msgstr "{Tipo de datos} slim-configuration"
 
 #. type: deftp
-#: doc/guix.texi:14540
+#: doc/guix.texi:17093
 msgid "Data type representing the configuration of @code{slim-service-type}."
 msgstr "Tipo de datos que representa la configuración de @code{slim-service-type}."
 
 #. type: table
-#: doc/guix.texi:14544
+#: doc/guix.texi:17097
 msgid "Whether to allow logins with empty passwords."
 msgstr "Si se permite el ingreso al sistema con contraseñas vacías."
 
 #. type: itemx
-#: doc/guix.texi:14546
+#: doc/guix.texi:17099
 #, no-wrap
 msgid "@code{default-user} (default: @code{\"\"})"
 msgstr "@code{default-user} (predeterminado: @code{\"\"})"
 
 #. type: table
-#: doc/guix.texi:14548
+#: doc/guix.texi:17101
 msgid "When @code{auto-login?} is false, SLiM presents a log-in screen."
 msgstr "Cuando @code{auto-login?} es falso, SLiM presenta una pantalla de ingreso."
 
 #. type: table
-#: doc/guix.texi:14551
+#: doc/guix.texi:17104
 msgid "When @code{auto-login?} is true, SLiM logs in directly as @code{default-user}."
 msgstr "Cuando @code{auto-login?} es verdadero, SLiM ingresa en el sistema directamente como @code{default-user}."
 
 #. type: item
-#: doc/guix.texi:14552
+#: doc/guix.texi:17105
 #, no-wrap
 msgid "@code{theme} (default: @code{%default-slim-theme})"
 msgstr "@code{theme} (predeterminado: @code{%default-slim-theme})"
 
 #. type: itemx
-#: doc/guix.texi:14553
+#: doc/guix.texi:17106
 #, no-wrap
 msgid "@code{theme-name} (default: @code{%default-slim-theme-name})"
 msgstr "@code{theme-name} (predeterminado: @code{%default-slim-theme-name})"
 
 #. type: table
-#: doc/guix.texi:14555
+#: doc/guix.texi:17108
 msgid "The graphical theme to use and its name."
 msgstr "El tema gráfico usado y su nombre."
 
 #. type: item
-#: doc/guix.texi:14556
+#: doc/guix.texi:17109
 #, no-wrap
 msgid "@code{auto-login-session} (default: @code{#f})"
 msgstr "@code{auto-login-session} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:14559
+#: doc/guix.texi:17112
 msgid "If true, this must be the name of the executable to start as the default session---e.g., @code{(file-append windowmaker \"/bin/windowmaker\")}."
 msgstr "Si es verdadero, debe ser el nombre del ejecutable a arrancar como la sesión predeterminada---por ejemplo, @code{(file-append windowmaker \"/bin/windowmaker\")}."
 
 #. type: table
-#: doc/guix.texi:14563
+#: doc/guix.texi:17116
 msgid "If false, a session described by one of the available @file{.desktop} files in @code{/run/current-system/profile} and @code{~/.guix-profile} will be used."
-msgstr "Si es falso, se usará una sesión de las descritas en uno de los ficheros @file{.desktop} disponibles en @code{/run/current-system/profile} y @code{~/.guix-profile}."
+msgstr "Si es falso, se usará una sesión de las descritas en uno de los archivos @file{.desktop} disponibles en @code{/run/current-system/profile} y @code{~/.guix-profile}."
 
 #. type: quotation
-#: doc/guix.texi:14568
+#: doc/guix.texi:17121
 msgid "You must install at least one window manager in the system profile or in your user profile.  Failing to do that, if @code{auto-login-session} is false, you will be unable to log in."
 msgstr "Debe instalar al menos un gestor de ventanas en el perfil del sistema o en su perfil de usuaria. En caso de no hacerlo, si @code{auto-login-session} es falso, no podrá ingresar al sistema."
 
 #. type: item
-#: doc/guix.texi:14570 doc/guix.texi:14653
+#: doc/guix.texi:17123 doc/guix.texi:17207
 #, no-wrap
 msgid "@code{xorg-configuration} (default @code{(xorg-configuration)})"
 msgstr "@code{xorg-configuration} (predeterminada @code{(xorg-configuration)})"
 
 #. type: item
-#: doc/guix.texi:14573
+#: doc/guix.texi:17126
 #, no-wrap
 msgid "@code{display} (default @code{\":0\"})"
 msgstr "@code{display} (predeterminada: @code{\":0\"})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:14575
+#: doc/guix.texi:17128
 msgid "The display on which to start the Xorg graphical server."
 msgstr "La pantalla en la que se iniciará el servidor gráfico Xorg."
 
 #. type: item
-#: doc/guix.texi:14576
+#: doc/guix.texi:17129
 #, no-wrap
 msgid "@code{vt} (default @code{\"vt7\"})"
 msgstr "@code{vt} (predeterminado: @code{\"vt7\"})"
 
 #. type: table
-#: doc/guix.texi:14578
+#: doc/guix.texi:17131
 msgid "The VT on which to start the Xorg graphical server."
 msgstr "El terminal virtual (VT) en el que se iniciará el servidor gráfico Xorg."
 
 #. type: item
-#: doc/guix.texi:14579
+#: doc/guix.texi:17132
 #, no-wrap
 msgid "@code{xauth} (default: @code{xauth})"
 msgstr "@code{xauth} (predeterminado: @code{xauth})"
 
 #. type: table
-#: doc/guix.texi:14581
+#: doc/guix.texi:17134
 msgid "The XAuth package to use."
 msgstr "El paquete XAuth usado."
 
 #. type: item
-#: doc/guix.texi:14582
+#: doc/guix.texi:17135
 #, no-wrap
 msgid "@code{shepherd} (default: @code{shepherd})"
 msgstr "@code{shepherd} (predeterminado: @code{shepherd})"
 
 #. type: table
-#: doc/guix.texi:14585
+#: doc/guix.texi:17138
 msgid "The Shepherd package used when invoking @command{halt} and @command{reboot}."
 msgstr "El paquete de Shepherd usado para la invocación de @command{halt} y @command{reboot}."
 
 #. type: item
-#: doc/guix.texi:14586
+#: doc/guix.texi:17139
 #, no-wrap
 msgid "@code{sessreg} (default: @code{sessreg})"
 msgstr "@code{sessreg} (predeterminado: @code{sessreg})"
 
 #. type: table
-#: doc/guix.texi:14588
+#: doc/guix.texi:17141
 msgid "The sessreg package used in order to register the session."
 msgstr "El paquete sessreg usado para el registro de la sesión."
 
 #. type: item
-#: doc/guix.texi:14589
+#: doc/guix.texi:17142
 #, no-wrap
 msgid "@code{slim} (default: @code{slim})"
 msgstr "@code{slim} (predeterminado: @code{slim})"
 
 #. type: table
-#: doc/guix.texi:14591
+#: doc/guix.texi:17144
 msgid "The SLiM package to use."
 msgstr "El paquete SLiM usado."
 
 #. type: defvr
-#: doc/guix.texi:14594 doc/guix.texi:26480
+#: doc/guix.texi:17147
 #, no-wrap
 msgid "{Scheme Variable} %default-theme"
 msgstr "{Variable Scheme} %default-theme"
 
 #. type: defvrx
-#: doc/guix.texi:14595
+#: doc/guix.texi:17148
 #, no-wrap
 msgid "{Scheme Variable} %default-theme-name"
 msgstr "{Variable Scheme} %default-theme-name"
 
 #. type: defvr
-#: doc/guix.texi:14597
+#: doc/guix.texi:17150
 msgid "The default SLiM theme and its name."
 msgstr "El tema predeterminado de SLiM y su nombre."
 
 #. type: deftp
-#: doc/guix.texi:14600 doc/guix.texi:14706
+#: doc/guix.texi:17153 doc/guix.texi:17260
 #, no-wrap
 msgid "{Data Type} sddm-configuration"
 msgstr "{Tipo de datos} sddm-configuration"
 
 #. type: deftp
-#: doc/guix.texi:14602
-msgid "This is the data type representing the sddm service configuration."
-msgstr "Este es el tipo de datos para la configuración del servicio sddm."
+#: doc/guix.texi:17155
+msgid "This is the data type representing the SDDM service configuration."
+msgstr "Tipo de datos que representa la configuración del servicio SDDM."
 
 #. type: item
-#: doc/guix.texi:14604
+#: doc/guix.texi:17157
 #, no-wrap
 msgid "@code{display-server} (default: \"x11\")"
 msgstr "@code{display-server} (predeterminado: \"x11\")"
 
 #. type: table
-#: doc/guix.texi:14607
-msgid "Select display server to use for the greeter. Valid values are \"x11\" or \"wayland\"."
-msgstr "Selecciona el servidor de pantalla usado para el saludo. Los valores validos son \"11\" o \"wayland\"."
+#: doc/guix.texi:17160
+msgid "Select display server to use for the greeter.  Valid values are @samp{\"x11\"} or @samp{\"wayland\"}."
+msgstr "Selecciona el servidor de pantalla usado para el saludo. Los valores validos son @samp{\"x11\"} o @samp{\"wayland\"}."
 
 #. type: item
-#: doc/guix.texi:14608
+#: doc/guix.texi:17161
 #, no-wrap
 msgid "@code{numlock} (default: \"on\")"
 msgstr "@code{numlock} (predeterminado: \"on\")"
 
 #. type: table
-#: doc/guix.texi:14610
-msgid "Valid values are \"on\", \"off\" or \"none\"."
-msgstr "Se aceptan los valores \"on\", \"off\" y \"none\"."
+#: doc/guix.texi:17163
+msgid "Valid values are @samp{\"on\"}, @samp{\"off\"} or @samp{\"none\"}."
+msgstr "Son valores válidos @samp{\"on\"}, @samp{\"off\"} o @samp{\"none\"}."
 
 #. type: item
-#: doc/guix.texi:14611
+#: doc/guix.texi:17164
 #, no-wrap
 msgid "@code{halt-command} (default @code{#~(string-apppend #$shepherd \"/sbin/halt\")})"
 msgstr "@code{halt-command} (predeterminado @code{#~(string-apppend #$shepherd \"/sbin/halt\")})"
 
 #. type: table
-#: doc/guix.texi:14613
+#: doc/guix.texi:17166
 msgid "Command to run when halting."
 msgstr "Orden a ejecutar para parar el sistema."
 
 #. type: item
-#: doc/guix.texi:14614
+#: doc/guix.texi:17167
 #, no-wrap
 msgid "@code{reboot-command} (default @code{#~(string-append #$shepherd \"/sbin/reboot\")})"
 msgstr "@code{reboot-command} (predeterminado @code{#~(string-append #$shepherd \"/sbin/reboot\")})"
 
 #. type: table
-#: doc/guix.texi:14616
+#: doc/guix.texi:17169
 msgid "Command to run when rebooting."
 msgstr "Orden a ejecutar para reiniciar el sistema."
 
 #. type: item
-#: doc/guix.texi:14617
+#: doc/guix.texi:17170
 #, no-wrap
 msgid "@code{theme} (default \"maldives\")"
 msgstr "@code{theme} (predeterminado \"maldives\")"
 
 #. type: table
-#: doc/guix.texi:14619
-msgid "Theme to use. Default themes provided by SDDM are \"elarun\", \"maldives\" or \"maya\"."
-msgstr "Tema usado. Los temas predeterminados proporcionados por SDDM son \"elarun\", \"maldives\" o \"maya\"."
+#: doc/guix.texi:17173
+msgid "Theme to use.  Default themes provided by SDDM are @samp{\"elarun\"}, @samp{\"maldives\"} or @samp{\"maya\"}."
+msgstr "Tema usado. Los temas predeterminados proporcionados por SDDM son @samp{\"elarun\"}, @samp{\"maldives\"} o @samp{\"maya\"}."
 
 #. type: item
-#: doc/guix.texi:14620
+#: doc/guix.texi:17174
 #, no-wrap
 msgid "@code{themes-directory} (default \"/run/current-system/profile/share/sddm/themes\")"
 msgstr "@code{themes-directory} (predeterminado \"/run/current-system/profile/share/sddm/themes\")"
 
 #. type: table
-#: doc/guix.texi:14622
+#: doc/guix.texi:17176
 msgid "Directory to look for themes."
 msgstr "Directorio en el que buscar temas."
 
 #. type: item
-#: doc/guix.texi:14623
+#: doc/guix.texi:17177
 #, no-wrap
 msgid "@code{faces-directory} (default \"/run/current-system/profile/share/sddm/faces\")"
 msgstr "@code{faces-directory} (predeterminado \"/run/current-system/profile/share/sddm/faces\")"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:14625
+#: doc/guix.texi:17179
 msgid "Directory to look for faces."
 msgstr "Directorio en el que buscar caras."
 
 #. type: item
-#: doc/guix.texi:14626
+#: doc/guix.texi:17180
 #, no-wrap
 msgid "@code{default-path} (default \"/run/current-system/profile/bin\")"
 msgstr "@code{default-path} (predeterminado \"/run/current-system/profile/bin\")"
 
 #. type: table
-#: doc/guix.texi:14628
+#: doc/guix.texi:17182
 msgid "Default PATH to use."
 msgstr "El valor predeterminado del PATH."
 
 #. type: item
-#: doc/guix.texi:14629
+#: doc/guix.texi:17183
 #, no-wrap
 msgid "@code{minimum-uid} (default: 1000)"
 msgstr "@code{minimum-uid} (predeterminado: 1000)"
 
 #. type: table
-#: doc/guix.texi:14631
+#: doc/guix.texi:17185
 msgid "Minimum UID displayed in SDDM and allowed for log-in."
 msgstr "UID mínimo mostrado en SDDM y al que se le permite el acceso."
 
 #. type: item
-#: doc/guix.texi:14632
+#: doc/guix.texi:17186
 #, no-wrap
 msgid "@code{maximum-uid} (default: 2000)"
 msgstr "@code{maximum-uid} (predeterminado: 2000)"
 
 #. type: table
-#: doc/guix.texi:14634
+#: doc/guix.texi:17188
 msgid "Maximum UID to display in SDDM."
 msgstr "UID máximo mostrado en SDDM."
 
 #. type: item
-#: doc/guix.texi:14635
+#: doc/guix.texi:17189
 #, no-wrap
 msgid "@code{remember-last-user?} (default #t)"
 msgstr "@code{remember-last-user?} (predeterminado #t)"
 
 #. type: table
-#: doc/guix.texi:14637
+#: doc/guix.texi:17191
 msgid "Remember last user."
 msgstr "Recuerda la última usuaria."
 
 #. type: item
-#: doc/guix.texi:14638
+#: doc/guix.texi:17192
 #, no-wrap
 msgid "@code{remember-last-session?} (default #t)"
 msgstr "@code{remember-last-session?} (predeterminado #t)"
 
 #. type: table
-#: doc/guix.texi:14640
+#: doc/guix.texi:17194
 msgid "Remember last session."
 msgstr "Recuerda la última sesión."
 
 #. type: item
-#: doc/guix.texi:14641
+#: doc/guix.texi:17195
 #, no-wrap
 msgid "@code{hide-users} (default \"\")"
 msgstr "@code{hide-users} (predeterminado \"\")"
 
 #. type: table
-#: doc/guix.texi:14643
+#: doc/guix.texi:17197
 msgid "Usernames to hide from SDDM greeter."
 msgstr "Nombres de usuaria a ocultar de la pantalla de inicio de SDDM."
 
 #. type: item
-#: doc/guix.texi:14644
+#: doc/guix.texi:17198
 #, no-wrap
 msgid "@code{hide-shells} (default @code{#~(string-append #$shadow \"/sbin/nologin\")})"
 msgstr "@code{hide-shells} (predeterminado @code{#~(string-append #$shadow \"/sbin/nologin\")})"
 
 #. type: table
-#: doc/guix.texi:14646
+#: doc/guix.texi:17200
 msgid "Users with shells listed will be hidden from the SDDM greeter."
 msgstr "Las usuarias que tengan alguno de los shell enumerados se ocultarán de la pantalla de inicio de SDDM."
 
 #. type: item
-#: doc/guix.texi:14647
+#: doc/guix.texi:17201
 #, no-wrap
 msgid "@code{session-command} (default @code{#~(string-append #$sddm \"/share/sddm/scripts/wayland-session\")})"
 msgstr "@code{session-command} (predeterminado @code{#~(string-append #$sddm \"/share/sddm/scripts/wayland-session\")})"
 
 #. type: table
-#: doc/guix.texi:14649
+#: doc/guix.texi:17203
 msgid "Script to run before starting a wayland session."
 msgstr "Guión a ejecutar antes de iniciar una sesión wayland."
 
 #. type: item
-#: doc/guix.texi:14650
+#: doc/guix.texi:17204
 #, no-wrap
 msgid "@code{sessions-directory} (default \"/run/current-system/profile/share/wayland-sessions\")"
 msgstr "@code{sessions-directory} (predeterminado \"/run/current-system/profile/share/wayland-sessions\")"
 
 #. type: table
-#: doc/guix.texi:14652
+#: doc/guix.texi:17206
 msgid "Directory to look for desktop files starting wayland sessions."
-msgstr "Directorio en el que buscar ficheros desktop que inicien sesiones wayland."
+msgstr "Directorio en el que buscar archivos desktop que inicien sesiones wayland."
 
 #. type: item
-#: doc/guix.texi:14656
+#: doc/guix.texi:17210
 #, no-wrap
 msgid "@code{xauth-path} (default @code{#~(string-append #$xauth \"/bin/xauth\")})"
 msgstr "@code{xauth-path} (predeterminado @code{#~(string-append #$xauth \"/bin/xauth\")})"
 
 #. type: table
-#: doc/guix.texi:14658
+#: doc/guix.texi:17212
 msgid "Path to xauth."
 msgstr "Ruta de xauth."
 
 #. type: item
-#: doc/guix.texi:14659
+#: doc/guix.texi:17213
 #, no-wrap
 msgid "@code{xephyr-path} (default @code{#~(string-append #$xorg-server \"/bin/Xephyr\")})"
 msgstr "@code{xephyr-path} (predeterminado @code{#~(string-append #$xorg-server \"/bin/Xephyr\")})"
 
 #. type: table
-#: doc/guix.texi:14661
+#: doc/guix.texi:17215
 msgid "Path to Xephyr."
 msgstr "Ruta de Xephyr."
 
 #. type: item
-#: doc/guix.texi:14662
+#: doc/guix.texi:17216
 #, no-wrap
 msgid "@code{xdisplay-start} (default @code{#~(string-append #$sddm \"/share/sddm/scripts/Xsetup\")})"
 msgstr "@code{xdisplay-start} (predeterminado @code{#~(string-append #$sddm \"/share/sddm/scripts/Xsetup\")})"
 
 #. type: table
-#: doc/guix.texi:14664
+#: doc/guix.texi:17218
 msgid "Script to run after starting xorg-server."
 msgstr "Guión a ejecutar tras iniciar xorg-server."
 
 #. type: item
-#: doc/guix.texi:14665
+#: doc/guix.texi:17219
 #, no-wrap
 msgid "@code{xdisplay-stop} (default @code{#~(string-append #$sddm \"/share/sddm/scripts/Xstop\")})"
 msgstr "@code{xdisplay-stop} (predeterminado @code{#~(string-append #$sddm \"/share/sddm/scripts/Xstop\")})"
 
 #. type: table
-#: doc/guix.texi:14667
+#: doc/guix.texi:17221
 msgid "Script to run before stopping xorg-server."
 msgstr "Guión a ejecutar antes de parar xorg-server."
 
 #. type: item
-#: doc/guix.texi:14668
+#: doc/guix.texi:17222
 #, no-wrap
 msgid "@code{xsession-command} (default: @code{xinitrc})"
 msgstr "@code{xsession-command} (predeterminado: @code{xinitrc})"
 
 #. type: item
-#: doc/guix.texi:14671
+#: doc/guix.texi:17225
 #, no-wrap
 msgid "@code{xsessions-directory} (default: \"/run/current-system/profile/share/xsessions\")"
 msgstr "@code{xsessions-directory} (predeterminado: \"/run/current-system/profile/share/xsessions\")"
 
 #. type: table
-#: doc/guix.texi:14673
+#: doc/guix.texi:17227
 msgid "Directory to look for desktop files starting X sessions."
-msgstr "Directorio para buscar ficheros desktop que inicien sesiones X."
+msgstr "Directorio para buscar archivos desktop que inicien sesiones X."
 
 #. type: item
-#: doc/guix.texi:14674
+#: doc/guix.texi:17228
 #, no-wrap
 msgid "@code{minimum-vt} (default: 7)"
 msgstr "@code{minimum-vt} (predeterminado: 7)"
 
 #. type: table
-#: doc/guix.texi:14676
+#: doc/guix.texi:17230
 msgid "Minimum VT to use."
 msgstr "VT mínimo usado."
 
 #. type: item
-#: doc/guix.texi:14677
+#: doc/guix.texi:17231
 #, no-wrap
 msgid "@code{auto-login-user} (default \"\")"
 msgstr "@code{auto-login-user} (predeterminado \"\")"
 
 #. type: table
-#: doc/guix.texi:14679
+#: doc/guix.texi:17233
 msgid "User to use for auto-login."
 msgstr "Usuaria usada para el ingreso automático en el sistema."
 
 #. type: item
-#: doc/guix.texi:14680
+#: doc/guix.texi:17234
 #, no-wrap
 msgid "@code{auto-login-session} (default \"\")"
 msgstr "@code{auto-login-session} (predeterminado \"\")"
 
 #. type: table
-#: doc/guix.texi:14682
+#: doc/guix.texi:17236
 msgid "Desktop file to use for auto-login."
-msgstr "Fichero desktop usado para el ingreso automático en el sistema."
+msgstr "Archivo desktop usado para el ingreso automático en el sistema."
 
 #. type: item
-#: doc/guix.texi:14683
+#: doc/guix.texi:17237
 #, no-wrap
 msgid "@code{relogin?} (default #f)"
 msgstr "@code{relogin?} (predeterminado #f)"
 
 #. type: table
-#: doc/guix.texi:14685
+#: doc/guix.texi:17239
 msgid "Relogin after logout."
 msgstr "Volver a ingresar en el sistema tras salir."
 
 #. type: cindex
-#: doc/guix.texi:14690
+#: doc/guix.texi:17244
 #, no-wrap
 msgid "X11 login"
 msgstr "X11, ingreso al sistema"
 
 #. type: defvr
-#: doc/guix.texi:14691
+#: doc/guix.texi:17245
 #, no-wrap
 msgid "{Scheme Variable} sddm-service-type"
 msgstr "{Variable Scheme} sddm-service-type"
 
 #. type: defvr
-#: doc/guix.texi:14695
+#: doc/guix.texi:17249
 msgid "This is the type of the service to run the @uref{https://github.com/sddm/sddm,SDDM display manager}.  Its value must be a @code{sddm-configuration} record (see below)."
 msgstr "Es el tipo del servicio que ejecuta el @uref{https://github.com/sddm/sddm, gestor de entrada SDDM}. Su valor es un registro @code{sddm-configuration} (véase a continuación)."
 
 #. type: defvr
-#: doc/guix.texi:14697
+#: doc/guix.texi:17251
 msgid "Here's an example use:"
 msgstr "Este es un ejemplo de su uso:"
 
 #. type: lisp
-#: doc/guix.texi:14703
+#: doc/guix.texi:17257
 #, no-wrap
 msgid ""
 "(service sddm-service-type\n"
@@ -28191,118 +32664,118 @@ msgstr ""
 "           (auto-login-session \"xfce.desktop\")))\n"
 
 #. type: deftp
-#: doc/guix.texi:14709
+#: doc/guix.texi:17263
 msgid "This data type represents the configuration of the SDDM login manager.  The available fields are:"
 msgstr "Este tipo de datos representa la configuración del gestor de ingreso al sistema SDDM. Los campos disponibles son:"
 
 #. type: item
-#: doc/guix.texi:14711
+#: doc/guix.texi:17265
 #, no-wrap
 msgid "@code{sddm} (default: @code{sddm})"
 msgstr "@code{sddm} (predeterminado: @code{sddm})"
 
 #. type: table
-#: doc/guix.texi:14713
+#: doc/guix.texi:17267
 msgid "The SDDM package to use."
 msgstr "El paquete SDDM usado."
 
 #. type: item
-#: doc/guix.texi:14714
+#: doc/guix.texi:17268
 #, no-wrap
 msgid "@code{display-server} (default: @code{\"x11\"})"
 msgstr "@code{display-server} (predeterminado: @code{\"x11\"})"
 
 #. type: table
-#: doc/guix.texi:14716
+#: doc/guix.texi:17270
 msgid "This must be either @code{\"x11\"} or @code{\"wayland\"}."
 msgstr "Debe ser o bien @code{\"x11\"} o bien @code{\"wayland\"}."
 
 #. type: item
-#: doc/guix.texi:14719
+#: doc/guix.texi:17273
 #, no-wrap
 msgid "@code{auto-login-user} (default: @code{\"\"})"
 msgstr "@code{auto-login-user} (predeterminado: @code{\"\"})"
 
 #. type: table
-#: doc/guix.texi:14722
+#: doc/guix.texi:17276
 msgid "If non-empty, this is the user account under which to log in automatically."
 msgstr "Si no está vacío, es la cuenta de usuaria que ingresará al sistema de manera automática."
 
 #. type: item
-#: doc/guix.texi:14723
+#: doc/guix.texi:17277
 #, no-wrap
 msgid "@code{auto-login-session} (default: @code{\"\"})"
 msgstr "@code{auto-login-session} (predeterminada: @code{\"\"})"
 
 #. type: table
-#: doc/guix.texi:14726
+#: doc/guix.texi:17280
 msgid "If non-empty, this is the @file{.desktop} file name to use as the auto-login session."
-msgstr "Si no está vacío, es el nombre de fichero @file{.desktop} usado en el ingreso automático al sistema."
+msgstr "Si no está vacío, es el nombre de archivo @file{.desktop} usado en el ingreso automático al sistema."
 
 #. type: cindex
-#: doc/guix.texi:14729
+#: doc/guix.texi:17283
 #, no-wrap
 msgid "Xorg, configuration"
 msgstr "Xorg, configuración"
 
 #. type: deftp
-#: doc/guix.texi:14730
+#: doc/guix.texi:17284
 #, no-wrap
 msgid "{Data Type} xorg-configuration"
 msgstr "{Tipo de datos} xorg-configuration"
 
 # FUZZY
 #. type: deftp
-#: doc/guix.texi:14735
-msgid "This data type represents the configuration of the Xorg graphical display server.  Note that there is not Xorg service; instead, the X server is started by a ``display manager'' such as GDM, SDDM, and SLiM.  Thus, the configuration of these display managers aggregates an @code{xorg-configuration} record."
+#: doc/guix.texi:17289
+msgid "This data type represents the configuration of the Xorg graphical display server.  Note that there is no Xorg service; instead, the X server is started by a ``display manager'' such as GDM, SDDM, and SLiM.  Thus, the configuration of these display managers aggregates an @code{xorg-configuration} record."
 msgstr "Este tipo de datos representa la configuración del servidor gráfico Xorg. Fíjese que no existe un servicio Xorg; en vez de eso, el servidor X es iniciado por un ``gestor de pantalla'' como GDM, SDDM y SLiM. Por tanto, la configuración de estos gestores de pantalla agrega un registro @code{xorg-configuration}."
 
 #. type: item
-#: doc/guix.texi:14737
+#: doc/guix.texi:17291
 #, no-wrap
 msgid "@code{modules} (default: @code{%default-xorg-modules})"
 msgstr "@code{modules} (predeterminados: @code{%default-xorg-modules})"
 
 #. type: table
-#: doc/guix.texi:14740
+#: doc/guix.texi:17294
 msgid "This is a list of @dfn{module packages} loaded by the Xorg server---e.g., @code{xf86-video-vesa}, @code{xf86-input-keyboard}, and so on."
 msgstr "Esta es la lista de @dfn{paquetes de módulos} cargados por el servidor Xorg---por ejemplo, @code{xf86-video-vesa}, @code{xf86-input-keyboard}, etcétera."
 
 #. type: item
-#: doc/guix.texi:14741
+#: doc/guix.texi:17295
 #, no-wrap
 msgid "@code{fonts} (default: @code{%default-xorg-fonts})"
 msgstr "@code{fonts} (predeterminadas: @code{%default-xorg-fonts})"
 
 #. type: table
-#: doc/guix.texi:14743
+#: doc/guix.texi:17297
 msgid "This is a list of font directories to add to the server's @dfn{font path}."
 msgstr "Es una lista de directorios de tipografías a añadir a la @dfn{ruta de tipografías} del servidor."
 
 #. type: item
-#: doc/guix.texi:14744
+#: doc/guix.texi:17298
 #, no-wrap
 msgid "@code{drivers} (default: @code{'()})"
 msgstr "@code{drivers} (predeterminados: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:14748
+#: doc/guix.texi:17302
 msgid "This must be either the empty list, in which case Xorg chooses a graphics driver automatically, or a list of driver names that will be tried in this order---e.g., @code{(\"modesetting\" \"vesa\")}."
 msgstr "Debe ser o bien la lista vacía, en cuyo caso Xorg selecciona el controlador gráfico automáticamente, o una lista de nombres de controladores que se intentarán en el orden especificado---por ejemplo, @code{(\"modesetting\" \"vesa\")}."
 
 #. type: item
-#: doc/guix.texi:14749
+#: doc/guix.texi:17303
 #, no-wrap
 msgid "@code{resolutions} (default: @code{'()})"
 msgstr "@code{resolutions} (predeterminadas: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:14753
+#: doc/guix.texi:17307
 msgid "When @code{resolutions} is the empty list, Xorg chooses an appropriate screen resolution.  Otherwise, it must be a list of resolutions---e.g., @code{((1024 768) (640 480))}."
 msgstr "Cuando @code{resolutions} es la lista vacía, Xorg selecciona una resolución de pantalla adecuada. En otro caso, debe ser una lista de resoluciones---por ejemplo, @code{((1024 768) (640 480))}."
 
 #. type: cindex
-#: doc/guix.texi:14754
+#: doc/guix.texi:17308
 #, no-wrap
 msgid "keyboard layout, for Xorg"
 msgstr "distribución de teclado, para Xorg"
@@ -28311,62 +32784,62 @@ msgstr "distribución de teclado, para Xorg"
 # TODO (MAAV): No me acaba de gustar mapa para asociación... aunque un
 # mapa es una asociación en sí.
 #. type: cindex
-#: doc/guix.texi:14755
+#: doc/guix.texi:17309
 #, no-wrap
 msgid "keymap, for Xorg"
 msgstr "mapa de teclas, para Xorg"
 
 #. type: table
-#: doc/guix.texi:14759
+#: doc/guix.texi:17313
 msgid "If this is @code{#f}, Xorg uses the default keyboard layout---usually US English (``qwerty'') for a 105-key PC keyboard."
 msgstr "Si es @code{#f}, Xorg usa la distribución de teclado predeterminada---normalmente inglés de EEUU (``qwerty'') para un teclado de PC de 105 teclas."
 
 #. type: table
-#: doc/guix.texi:14763
+#: doc/guix.texi:17317
 msgid "Otherwise this must be a @code{keyboard-layout} object specifying the keyboard layout in use when Xorg is running.  @xref{Keyboard Layout}, for more information on how to specify the keyboard layout."
 msgstr "En otro caso, debe ser un objeto @code{keyboard-layout} que especifique la distribución de teclado usada para la ejecución de Xorg. @xref{Keyboard Layout}, para más información sobre cómo especificar la distribución de teclado."
 
 #. type: item
-#: doc/guix.texi:14764
+#: doc/guix.texi:17318 doc/guix.texi:18973 doc/guix.texi:29891
 #, no-wrap
 msgid "@code{extra-config} (default: @code{'()})"
 msgstr "@code{extra-config} (predeterminada: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:14767
+#: doc/guix.texi:17321 doc/guix.texi:29895
 msgid "This is a list of strings or objects appended to the configuration file.  It is used to pass extra text to be added verbatim to the configuration file."
-msgstr "Es una lista de cadenas u objetos añadida al final del fichero de configuración. Se usa para proporcionar texto adicional para ser introducido de forma literal en el fichero de configuración."
+msgstr "Es una lista de cadenas u objetos añadida al final del archivo de configuración. Se usa para proporcionar texto adicional para ser introducido de forma literal en el archivo de configuración."
 
 #. type: item
-#: doc/guix.texi:14768
+#: doc/guix.texi:17322
 #, no-wrap
 msgid "@code{server} (default: @code{xorg-server})"
 msgstr "@code{server} (predeterminado: @code{xorg-server})"
 
 #. type: table
-#: doc/guix.texi:14770
+#: doc/guix.texi:17324
 msgid "This is the package providing the Xorg server."
 msgstr "Este es el paquete que proporciona el servidor Xorg."
 
 #. type: item
-#: doc/guix.texi:14771
+#: doc/guix.texi:17325
 #, no-wrap
 msgid "@code{server-arguments} (default: @code{%default-xorg-server-arguments})"
 msgstr "@code{server-arguments} (predeterminados: @code{%default-xorg-server-arguments})"
 
 #. type: table
-#: doc/guix.texi:14774
+#: doc/guix.texi:17328
 msgid "This is the list of command-line arguments to pass to the X server.  The default is @code{-nolisten tcp}."
 msgstr "Es la lista de parámetros de línea de órdenes que se proporcionarán al servidor X. El valor predeterminado es @code{-nolisten tcp}."
 
 #. type: deffn
-#: doc/guix.texi:14777
+#: doc/guix.texi:17331
 #, no-wrap
 msgid "{Scheme Procedure} set-xorg-configuration @var{config} @"
 msgstr "{Procedimiento Scheme} set-xorg-configuration @var{config} @"
 
 #. type: deffn
-#: doc/guix.texi:14781
+#: doc/guix.texi:17335
 msgid "[@var{login-manager-service-type}] Tell the log-in manager (of type @var{login-manager-service-type}) to use @var{config}, an @code{<xorg-configuration>} record."
 msgstr ""
 "[@var{tipo-de-servicio-del-gestor-de-pantalla}]\n"
@@ -28374,92 +32847,90 @@ msgstr ""
 "Le dice al gestor de pantalla (de tipo @var{tipo-de-servicio-del-gestor-de-pantalla}) que use @var{config}, un registro @code{<xorg-configuration>}."
 
 #. type: deffn
-#: doc/guix.texi:14785
+#: doc/guix.texi:17339
 msgid "Since the Xorg configuration is embedded in the log-in manager's configuration---e.g., @code{gdm-configuration}---this procedure provides a shorthand to set the Xorg configuration."
 msgstr "Debido a que la configuración de Xorg se embebe en la configuración del gestor de ingreso en el sistema---por ejemplo, @code{gdm-configuration}---este procedimiento proporciona un atajo para establecer la configuración de Xorg."
 
 #. type: deffn
-#: doc/guix.texi:14787
+#: doc/guix.texi:17341
 #, no-wrap
 msgid "{Scheme Procedure} xorg-start-command [@var{config}]"
 msgstr "{Procedimiento Scheme} xorg-start-command [@var{config}]"
 
 #. type: deffn
-#: doc/guix.texi:14791
+#: doc/guix.texi:17345
 msgid "Return a @code{startx} script in which the modules, fonts, etc. specified in @var{config}, are available.  The result should be used in place of @code{startx}."
 msgstr "Devuelve un script @code{startx} en el que los módulos, las tipografías, etcétera, especificadas en @var{config} están disponibles. El resultado debe usarse en lugar de @code{startx}."
 
 #. type: deffn
-#: doc/guix.texi:14793
+#: doc/guix.texi:17347
 msgid "Usually the X server is started by a login manager."
 msgstr "Habitualmente el servidor X es iniciado por un gestor de ingreso al sistema."
 
 #. type: deffn
-#: doc/guix.texi:14796
+#: doc/guix.texi:17350
 #, no-wrap
 msgid "{Scheme Procedure} screen-locker-service @var{package} [@var{program}]"
 msgstr "{Procedimiento Scheme} screen-locker-service @var{paquete} [@var{programa}]"
 
 #. type: deffn
-#: doc/guix.texi:14800
+#: doc/guix.texi:17354
 msgid "Add @var{package}, a package for a screen locker or screen saver whose command is @var{program}, to the set of setuid programs and add a PAM entry for it.  For example:"
 msgstr "Añade @var{paquete}, un paquete para un bloqueador de sesión o un salvapantallas cuya orden es @var{programa}, al conjunto de programas setuid y añade una entrada PAM para él. Por ejemplo:"
 
 #. type: lisp
-#: doc/guix.texi:14803
+#: doc/guix.texi:17357
 #, no-wrap
 msgid "(screen-locker-service xlockmore \"xlock\")\n"
 msgstr "(screen-locker-service xlockmore \"xlock\")\n"
 
 #. type: deffn
-#: doc/guix.texi:14806
+#: doc/guix.texi:17360
 msgid "makes the good ol' XlockMore usable."
 msgstr "permite usar el viejo XlockMore."
 
 # FUZZY
-# TODO (MAAV): Soporte...
 #. type: cindex
-#: doc/guix.texi:14812
+#: doc/guix.texi:17366
 #, no-wrap
 msgid "printer support with CUPS"
-msgstr "soporte de impresión con CUPS"
+msgstr "uso de impresoras mediante CUPS"
 
 # FUZZY
-# TODO (MAAV): Soporte...
 #. type: Plain text
-#: doc/guix.texi:14816
+#: doc/guix.texi:17370
 msgid "The @code{(gnu services cups)} module provides a Guix service definition for the CUPS printing service.  To add printer support to a Guix system, add a @code{cups-service} to the operating system definition:"
-msgstr "El módulo @code{(gnu services cups)} proporciona una definición de servicio Guix para el servicio de impresión CUPS. Para añadir el soporte de impresión en un sistema Guix, añada un servicio @code{cups-service} en su definición de sistema operativo:"
+msgstr "El módulo @code{(gnu services cups)} proporciona una definición de servicio Guix para el servicio de impresión CUPS. Para usar impresoras en un sistema Guix, añada un servicio @code{cups-service} en su definición de sistema operativo:"
 
 #. type: deffn
-#: doc/guix.texi:14817
+#: doc/guix.texi:17371
 #, no-wrap
 msgid "{Scheme Variable} cups-service-type"
 msgstr "{Variable Scheme} cups-service-type"
 
 #. type: deffn
-#: doc/guix.texi:14821
+#: doc/guix.texi:17375
 msgid "The service type for the CUPS print server.  Its value should be a valid CUPS configuration (see below).  To use the default settings, simply write:"
 msgstr "El tipo de servicio para el servidor de impresión CUPS. Su valor debe ser una configuración de CUPS válida (véase a continuación). Para usar la configuración predeterminada, simplemente escriba:"
 
 #. type: lisp
-#: doc/guix.texi:14823
+#: doc/guix.texi:17377
 #, no-wrap
 msgid "(service cups-service-type)\n"
 msgstr "(service cups-service-type)\n"
 
 #. type: Plain text
-#: doc/guix.texi:14833
+#: doc/guix.texi:17387
 msgid "The CUPS configuration controls the basic things about your CUPS installation: what interfaces it listens on, what to do if a print job fails, how much logging to do, and so on.  To actually add a printer, you have to visit the @url{http://localhost:631} URL, or use a tool such as GNOME's printer configuration services.  By default, configuring a CUPS service will generate a self-signed certificate if needed, for secure connections to the print server."
 msgstr "La configuración de CUPS controla los aspectos básicos de su instalación de CUPS: sobre qué interfaces se escuchará, qué hacer si falla un trabajo de impresión, cuanta información registrar, etcétera. Para realmente añadir una impresora, debe visitar la URL @url{http://localhost:631}, o usar una herramienta como los servicios de configuración de impresión de GNOME. De manera predeterminada, la configuración de un servicio CUPS generará un certificado auto-firmado en caso de ser necesario, para ofrecer conexiones seguras con el servidor de impresión."
 
 #. type: Plain text
-#: doc/guix.texi:14838
+#: doc/guix.texi:17392
 msgid "Suppose you want to enable the Web interface of CUPS and also add support for Epson printers @i{via} the @code{escpr} package and for HP printers @i{via} the @code{hplip-minimal} package.  You can do that directly, like this (you need to use the @code{(gnu packages cups)} module):"
 msgstr "Suponiendo que desease activar la interfaz Web de CUPS, y también añadir el paquete @code{escpr} para comunicarse con impresoras Epson y el paquete @code{hplip-minimal} para hacerlo con impresoras HP. Puede hacerlo directamente, de esta manera (debe usar el módulo @code{(gnu packages cups)}:"
 
 #. type: lisp
-#: doc/guix.texi:14845
+#: doc/guix.texi:17399
 #, no-wrap
 msgid ""
 "(service cups-service-type\n"
@@ -28475,439 +32946,439 @@ msgstr ""
 "             (list cups-filters escpr hplip-minimal))))\n"
 
 #. type: Plain text
-#: doc/guix.texi:14850
+#: doc/guix.texi:17404
 msgid "Note: If you wish to use the Qt5 based GUI which comes with the hplip package then it is suggested that you install the @code{hplip} package, either in your OS configuration file or as your user."
 msgstr "Fíjese: Si desea usar la interfaz gráfica basada en Qt5 que viene con el paquete hplip se le sugiere que instale el paquete @code{hplip}, o bien en su configuración del sistema operativo o bien como su usuaria."
 
 #. type: Plain text
-#: doc/guix.texi:14857
+#: doc/guix.texi:17411
 msgid "The available configuration parameters follow.  Each parameter definition is preceded by its type; for example, @samp{string-list foo} indicates that the @code{foo} parameter should be specified as a list of strings.  There is also a way to specify the configuration as a string, if you have an old @code{cupsd.conf} file that you want to port over from some other system; see the end for more details."
-msgstr "A continuación se encuentran los parámetros de configuración disponibles. El tipo de cada parámetro antecede la definición del mismo; por ejemplo, @samp{string-list foo} indica que el parámetro @code{foo} debe especificarse como una lista de cadenas. También existe la posibilidad de especificar la configuración como una cadena, si tiene un fichero @code{cupsd.conf} antiguo que quiere trasladar a otro sistema; véase el final para más detalles."
+msgstr "A continuación se encuentran los parámetros de configuración disponibles. El tipo de cada parámetro antecede la definición del mismo; por ejemplo, @samp{string-list foo} indica que el parámetro @code{foo} debe especificarse como una lista de cadenas. También existe la posibilidad de especificar la configuración como una cadena, si tiene un archivo @code{cupsd.conf} antiguo que quiere trasladar a otro sistema; véase el final para más detalles."
 
 #. type: Plain text
-#: doc/guix.texi:14868
+#: doc/guix.texi:17422
 msgid "Available @code{cups-configuration} fields are:"
 msgstr "Los campos disponibles de @code{cups-configuration} son:"
 
 #. type: deftypevr
-#: doc/guix.texi:14869
+#: doc/guix.texi:17423
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} package cups"
 msgstr "{parámetro de @code{cups-configuration}} package cups"
 
 #. type: deftypevr
-#: doc/guix.texi:14871 doc/guix.texi:15639
+#: doc/guix.texi:17425 doc/guix.texi:18193
 msgid "The CUPS package."
 msgstr "El paquete CUPS."
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:14873
+#: doc/guix.texi:17427
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} package-list extensions"
 msgstr "{parámetro de @code{cups-configuration}} lista-paquetes extensions"
 
 #. type: deftypevr
-#: doc/guix.texi:14875
+#: doc/guix.texi:17429
 msgid "Drivers and other extensions to the CUPS package."
 msgstr "Controladores y otras extensiones al paquete CUPS."
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:14877
+#: doc/guix.texi:17431
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} files-configuration files-configuration"
-msgstr "{parámetro de @code{cups-configuration}} ficheros-conf files-configuration"
+msgstr "{parámetro de @code{cups-configuration}} archivos-conf files-configuration"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:14880
+#: doc/guix.texi:17434
 msgid "Configuration of where to write logs, what directories to use for print spools, and related privileged configuration parameters."
 msgstr "Configuración sobre dónde escribir los registros, qué directorios usar para las colas de impresión y parámetros de configuración privilegiados relacionados."
 
 #. type: deftypevr
-#: doc/guix.texi:14882
+#: doc/guix.texi:17436
 msgid "Available @code{files-configuration} fields are:"
 msgstr "Los campos disponibles de @code{files-configuration} son:"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:14883
+#: doc/guix.texi:17437
 #, no-wrap
 msgid "{@code{files-configuration} parameter} log-location access-log"
 msgstr "{parámetro de @code{files-configuration}} ruta-registro access-log"
 
 #. type: deftypevr
-#: doc/guix.texi:14891
+#: doc/guix.texi:17445
 msgid "Defines the access log filename.  Specifying a blank filename disables access log generation.  The value @code{stderr} causes log entries to be sent to the standard error file when the scheduler is running in the foreground, or to the system log daemon when run in the background.  The value @code{syslog} causes log entries to be sent to the system log daemon.  The server name may be included in filenames using the string @code{%s}, as in @code{/var/log/cups/%s-access_log}."
-msgstr "Define el nombre de fichero del registro de acceso. La especificación de un nombre de fichero en blanco desactiva la generación de registros de acceso. El valor @code{stderr} hace que las entradas de registro se envíen al fichero de la salida estándar de error cuando el planificador se ejecute en primer plano, o al daemon de registro del sistema cuando se ejecute en segundo plano. El valor @code{syslog} envía las entradas de registro al daemon de registro del sistema. El nombre de servidor puede incluirse en los nombres de fichero mediante el uso de la cadena @code{%s}, como en @code{/var/log/cups/%s-access_log}."
+msgstr "Define el nombre de archivo del registro de acceso. La especificación de un nombre de archivo en blanco desactiva la generación de registros de acceso. El valor @code{stderr} hace que las entradas de registro se envíen al archivo de la salida estándar de error cuando el planificador se ejecute en primer plano, o al daemon de registro del sistema cuando se ejecute en segundo plano. El valor @code{syslog} envía las entradas de registro al daemon de registro del sistema. El nombre de servidor puede incluirse en los nombres de archivo mediante el uso de la cadena @code{%s}, como en @code{/var/log/cups/%s-access_log}."
 
 #. type: deftypevr
-#: doc/guix.texi:14893
+#: doc/guix.texi:17447
 msgid "Defaults to @samp{\"/var/log/cups/access_log\"}."
 msgstr "El valor predeterminado es @samp{\"/var/log/cups/access_log\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:14895
+#: doc/guix.texi:17449
 #, no-wrap
 msgid "{@code{files-configuration} parameter} file-name cache-dir"
-msgstr "{parámetro de @code{files-configuration}} nombre-fichero cache-dir"
+msgstr "{parámetro de @code{files-configuration}} nombre-archivo cache-dir"
 
 #. type: deftypevr
-#: doc/guix.texi:14897
+#: doc/guix.texi:17451
 msgid "Where CUPS should cache data."
 msgstr "Donde CUPS debe almacenar los datos de la caché."
 
 #. type: deftypevr
-#: doc/guix.texi:14899
+#: doc/guix.texi:17453
 msgid "Defaults to @samp{\"/var/cache/cups\"}."
 msgstr "El valor predeterminado es @samp{\"/var/cache/cups\"}."
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:14901
+#: doc/guix.texi:17455
 #, no-wrap
 msgid "{@code{files-configuration} parameter} string config-file-perm"
 msgstr "{parámetro de @code{files-configuration}} string config-file-perm"
 
 #. type: deftypevr
-#: doc/guix.texi:14904
+#: doc/guix.texi:17458
 msgid "Specifies the permissions for all configuration files that the scheduler writes."
-msgstr "Especifica los permisos para todos los ficheros de configuración que escriba el planficador."
+msgstr "Especifica los permisos para todos los archivos de configuración que escriba el planficador."
 
 #. type: deftypevr
-#: doc/guix.texi:14910
+#: doc/guix.texi:17464
 msgid "Note that the permissions for the printers.conf file are currently masked to only allow access from the scheduler user (typically root).  This is done because printer device URIs sometimes contain sensitive authentication information that should not be generally known on the system.  There is no way to disable this security feature."
-msgstr "Tenga en cuenta que los permisos para el fichero printers.conf están configurados actualmente de modo que únicamente la usuaria del planificador (habitualmente root) tenga acceso. Se hace de esta manera debido a que las URI de las impresoras a veces contienen información sensible sobre la identificación que no debería conocerse de manera general en el sistema. No hay forma de desactivar esta característica de seguridad."
+msgstr "Tenga en cuenta que los permisos para el archivo printers.conf están configurados actualmente de modo que únicamente la usuaria del planificador (habitualmente root) tenga acceso. Se hace de esta manera debido a que las URI de las impresoras a veces contienen información sensible sobre la identificación que no debería conocerse de manera general en el sistema. No hay forma de desactivar esta característica de seguridad."
 
 #. type: deftypevr
-#: doc/guix.texi:14912
+#: doc/guix.texi:17466
 msgid "Defaults to @samp{\"0640\"}."
 msgstr "El valor predeterminado es @samp{\"0640\"}."
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:14914
+#: doc/guix.texi:17468
 #, no-wrap
 msgid "{@code{files-configuration} parameter} log-location error-log"
 msgstr "{parámetro de @code{files-configuration}} ruta-registro error-log"
 
 #. type: deftypevr
-#: doc/guix.texi:14922
+#: doc/guix.texi:17476
 msgid "Defines the error log filename.  Specifying a blank filename disables error log generation.  The value @code{stderr} causes log entries to be sent to the standard error file when the scheduler is running in the foreground, or to the system log daemon when run in the background.  The value @code{syslog} causes log entries to be sent to the system log daemon.  The server name may be included in filenames using the string @code{%s}, as in @code{/var/log/cups/%s-error_log}."
-msgstr "Define el nombre de fichero del registro de error. La especificación de un nombre de fichero en blanco desactiva la generación de registros de error. El valor @code{stderr} hace que las entradas del registro se envíen al fichero de la salida de error estándar cuando el planificador se ejecute en primer plano, o al daemon de registro del sistema cuando se ejecute en segundo plano. El valor @code{syslog} provoca que las entradas del registro se envíen al daemon de registro del sistema. El nombre del servidor puede incluirse en los nombres de fichero mediante el uso de la cadena @code{%s}, como en @code{/var/log/cups/%s-error_log}."
+msgstr "Define el nombre de archivo del registro de error. La especificación de un nombre de archivo en blanco desactiva la generación de registros de error. El valor @code{stderr} hace que las entradas del registro se envíen al archivo de la salida de error estándar cuando el planificador se ejecute en primer plano, o al daemon de registro del sistema cuando se ejecute en segundo plano. El valor @code{syslog} provoca que las entradas del registro se envíen al daemon de registro del sistema. El nombre del servidor puede incluirse en los nombres de archivo mediante el uso de la cadena @code{%s}, como en @code{/var/log/cups/%s-error_log}."
 
 #. type: deftypevr
-#: doc/guix.texi:14924
+#: doc/guix.texi:17478
 msgid "Defaults to @samp{\"/var/log/cups/error_log\"}."
 msgstr "El valor predeterminado es @samp{\"/var/log/cups/error_log\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:14926
+#: doc/guix.texi:17480
 #, no-wrap
 msgid "{@code{files-configuration} parameter} string fatal-errors"
 msgstr "{parámetro de @code{files-configuration}} string fatal-errors"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:14929
+#: doc/guix.texi:17483
 msgid "Specifies which errors are fatal, causing the scheduler to exit.  The kind strings are:"
 msgstr "Especifica qué errores son fatales, los cuales provocan la salida del planificador. El tipo de cadenas son:"
 
 #. type: table
-#: doc/guix.texi:14933
+#: doc/guix.texi:17487
 msgid "No errors are fatal."
 msgstr "Ningún error es fatal."
 
 #. type: table
-#: doc/guix.texi:14936
+#: doc/guix.texi:17490
 msgid "All of the errors below are fatal."
 msgstr "Todos los errores a continuación son fatales."
 
 #. type: item
-#: doc/guix.texi:14937
+#: doc/guix.texi:17491
 #, no-wrap
 msgid "browse"
 msgstr "browse"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:14940
+#: doc/guix.texi:17494
 msgid "Browsing initialization errors are fatal, for example failed connections to the DNS-SD daemon."
 msgstr "Los errores de la inicialización de exploración son fatales, por ejemplo las conexiones fallidas al daemon DNS-SD."
 
 #. type: item
-#: doc/guix.texi:14941
+#: doc/guix.texi:17495
 #, no-wrap
 msgid "config"
 msgstr "config"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:14943
+#: doc/guix.texi:17497
 msgid "Configuration file syntax errors are fatal."
-msgstr "Los errores de sintaxis en el fichero de configuración son fatales."
+msgstr "Los errores de sintaxis en el archivo de configuración son fatales."
 
 #. type: item
-#: doc/guix.texi:14944
+#: doc/guix.texi:17498
 #, no-wrap
 msgid "listen"
 msgstr "listen"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:14947
+#: doc/guix.texi:17501
 msgid "Listen or Port errors are fatal, except for IPv6 failures on the loopback or @code{any} addresses."
 msgstr "Los errores de escucha o de puertos son fatales, excepto fallos IPv6 en la red local o en direcciones @code{any}."
 
 #. type: item
-#: doc/guix.texi:14948
+#: doc/guix.texi:17502
 #, no-wrap
 msgid "log"
 msgstr "log"
 
 #. type: table
-#: doc/guix.texi:14950
+#: doc/guix.texi:17504
 msgid "Log file creation or write errors are fatal."
-msgstr "Los errores de creación o escritura en el fichero de registros son fatales."
+msgstr "Los errores de creación o escritura en el archivo de registros son fatales."
 
 #. type: item
-#: doc/guix.texi:14951
+#: doc/guix.texi:17505
 #, no-wrap
 msgid "permissions"
 msgstr "permissions"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:14954
+#: doc/guix.texi:17508
 msgid "Bad startup file permissions are fatal, for example shared TLS certificate and key files with world-read permissions."
-msgstr "La mala configuración de los permisos de los ficheros al inicio son fatales, por ejemplo certificados TLS compartidos y ficheros de claves con permisos de escritura para todo el mundo."
+msgstr "La mala configuración de los permisos de los archivos al inicio son fatales, por ejemplo certificados TLS compartidos y archivos de claves con permisos de escritura para todo el mundo."
 
 #. type: deftypevr
-#: doc/guix.texi:14957
+#: doc/guix.texi:17511
 msgid "Defaults to @samp{\"all -browse\"}."
 msgstr "El valor predeterminado es @samp{\"all -browse\"}."
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:14959
+#: doc/guix.texi:17513
 #, no-wrap
 msgid "{@code{files-configuration} parameter} boolean file-device?"
 msgstr "{parámetro de @code{files-configuration}} boolean file-device?"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:14962
+#: doc/guix.texi:17516
 msgid "Specifies whether the file pseudo-device can be used for new printer queues.  The URI @uref{file:///dev/null} is always allowed."
-msgstr "Especifica si el pseudo-dispositivo del fichero puede usarse para nuevas colas de impresión. Siempre se permite la URI @uref{file:///dev/null}."
-
-#. type: deftypevr
-#: doc/guix.texi:14964 doc/guix.texi:15034 doc/guix.texi:15076
-#: doc/guix.texi:15096 doc/guix.texi:15102 doc/guix.texi:15118
-#: doc/guix.texi:15206 doc/guix.texi:15300 doc/guix.texi:15613
-#: doc/guix.texi:15626 doc/guix.texi:17930 doc/guix.texi:18036
-#: doc/guix.texi:18101 doc/guix.texi:18110 doc/guix.texi:21998
-#: doc/guix.texi:22012 doc/guix.texi:22034 doc/guix.texi:22149
-#: doc/guix.texi:22163 doc/guix.texi:22184 doc/guix.texi:22205
-#: doc/guix.texi:22212 doc/guix.texi:22257 doc/guix.texi:22264
-#: doc/guix.texi:22772 doc/guix.texi:22786 doc/guix.texi:22958
-#: doc/guix.texi:23003 doc/guix.texi:23090 doc/guix.texi:23291
-#: doc/guix.texi:23324 doc/guix.texi:23464 doc/guix.texi:23475
-#: doc/guix.texi:23725 doc/guix.texi:24367 doc/guix.texi:24376
-#: doc/guix.texi:24384 doc/guix.texi:24392 doc/guix.texi:24408
-#: doc/guix.texi:24424 doc/guix.texi:24432 doc/guix.texi:24440
-#: doc/guix.texi:24449 doc/guix.texi:24458 doc/guix.texi:24474
-#: doc/guix.texi:24538 doc/guix.texi:24644 doc/guix.texi:24652
-#: doc/guix.texi:24660 doc/guix.texi:24685 doc/guix.texi:24739
-#: doc/guix.texi:24787 doc/guix.texi:24988 doc/guix.texi:24995
+msgstr "Especifica si el pseudo-dispositivo del archivo puede usarse para nuevas colas de impresión. Siempre se permite la URI @uref{file:///dev/null}."
+
+#. type: deftypevr
+#: doc/guix.texi:17518 doc/guix.texi:17588 doc/guix.texi:17630
+#: doc/guix.texi:17650 doc/guix.texi:17656 doc/guix.texi:17672
+#: doc/guix.texi:17760 doc/guix.texi:17854 doc/guix.texi:18167
+#: doc/guix.texi:18180 doc/guix.texi:20619 doc/guix.texi:20725
+#: doc/guix.texi:20790 doc/guix.texi:20799 doc/guix.texi:24844
+#: doc/guix.texi:24858 doc/guix.texi:24880 doc/guix.texi:24995
+#: doc/guix.texi:25009 doc/guix.texi:25030 doc/guix.texi:25051
+#: doc/guix.texi:25058 doc/guix.texi:25103 doc/guix.texi:25110
+#: doc/guix.texi:25632 doc/guix.texi:25646 doc/guix.texi:25818
+#: doc/guix.texi:25863 doc/guix.texi:25950 doc/guix.texi:26152
+#: doc/guix.texi:26185 doc/guix.texi:26325 doc/guix.texi:26336
+#: doc/guix.texi:26587 doc/guix.texi:28060 doc/guix.texi:28069
+#: doc/guix.texi:28077 doc/guix.texi:28085 doc/guix.texi:28101
+#: doc/guix.texi:28117 doc/guix.texi:28125 doc/guix.texi:28133
+#: doc/guix.texi:28142 doc/guix.texi:28151 doc/guix.texi:28167
+#: doc/guix.texi:28231 doc/guix.texi:28337 doc/guix.texi:28345
+#: doc/guix.texi:28353 doc/guix.texi:28378 doc/guix.texi:28432
+#: doc/guix.texi:28480 doc/guix.texi:28681 doc/guix.texi:28688
 msgid "Defaults to @samp{#f}."
 msgstr "El valor predeterminado es @samp{#f}"
 
 #. type: deftypevr
-#: doc/guix.texi:14966
+#: doc/guix.texi:17520
 #, no-wrap
 msgid "{@code{files-configuration} parameter} string group"
 msgstr "{parámetro de @code{files-configuration}} string group"
 
 #. type: deftypevr
-#: doc/guix.texi:14969
+#: doc/guix.texi:17523
 msgid "Specifies the group name or ID that will be used when executing external programs."
 msgstr "Especifica el nombre de grupo o ID usado para la ejecución de programas externos."
 
 #. type: deftypevr
-#: doc/guix.texi:14971 doc/guix.texi:15051
+#: doc/guix.texi:17525 doc/guix.texi:17605
 msgid "Defaults to @samp{\"lp\"}."
 msgstr "El valor predeterminado es @samp{\"lp\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:14973
+#: doc/guix.texi:17527
 #, no-wrap
 msgid "{@code{files-configuration} parameter} string log-file-perm"
 msgstr "{parámetro de @code{files-configuration}} string log-file-perm"
 
 #. type: deftypevr
-#: doc/guix.texi:14975
+#: doc/guix.texi:17529
 msgid "Specifies the permissions for all log files that the scheduler writes."
-msgstr "Especifica los permisos para todos los ficheros de registro que el planificador escriba."
+msgstr "Especifica los permisos para todos los archivos de registro que el planificador escriba."
 
 #. type: deftypevr
-#: doc/guix.texi:14977
+#: doc/guix.texi:17531
 msgid "Defaults to @samp{\"0644\"}."
 msgstr "El valor predeterminado es @samp{\"0644\"}."
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:14979
+#: doc/guix.texi:17533
 #, no-wrap
 msgid "{@code{files-configuration} parameter} log-location page-log"
 msgstr "{parámetro de @code{files-configuration}} ruta-registro page-log"
 
 #. type: deftypevr
-#: doc/guix.texi:14987
+#: doc/guix.texi:17541
 msgid "Defines the page log filename.  Specifying a blank filename disables page log generation.  The value @code{stderr} causes log entries to be sent to the standard error file when the scheduler is running in the foreground, or to the system log daemon when run in the background.  The value @code{syslog} causes log entries to be sent to the system log daemon.  The server name may be included in filenames using the string @code{%s}, as in @code{/var/log/cups/%s-page_log}."
-msgstr "Define el nombre de fichero del registro de páginas. La especificación de un nombre de fichero en blanco desactiva la generación de registro de páginas. El valor @code{stderr} hace que las entradas del registro se envíen al fichero de la salida de error cuando el planificador se ejecute en primer plano, o al daemon de registro del sistema cuando se ejecuten en segundo plano. El valor @code{syslog} provoca que las entradas del registro se envíen al daemon de registro del sistema. El nombre del servidor puede incluirse en los nombres de fichero mediante el uso de la cadena @code{%s}, como en @code{/var/log/cups/%s-page_log}."
+msgstr "Define el nombre de archivo del registro de páginas. La especificación de un nombre de archivo en blanco desactiva la generación de registro de páginas. El valor @code{stderr} hace que las entradas del registro se envíen al archivo de la salida de error cuando el planificador se ejecute en primer plano, o al daemon de registro del sistema cuando se ejecuten en segundo plano. El valor @code{syslog} provoca que las entradas del registro se envíen al daemon de registro del sistema. El nombre del servidor puede incluirse en los nombres de archivo mediante el uso de la cadena @code{%s}, como en @code{/var/log/cups/%s-page_log}."
 
 #. type: deftypevr
-#: doc/guix.texi:14989
+#: doc/guix.texi:17543
 msgid "Defaults to @samp{\"/var/log/cups/page_log\"}."
 msgstr "El valor predeterminado es @samp{\"/var/log/cups/page_log\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:14991
+#: doc/guix.texi:17545
 #, no-wrap
 msgid "{@code{files-configuration} parameter} string remote-root"
 msgstr "{parámetro de @code{files-configuration}} string remote-root"
 
 #. type: deftypevr
-#: doc/guix.texi:14994
+#: doc/guix.texi:17548
 msgid "Specifies the username that is associated with unauthenticated accesses by clients claiming to be the root user.  The default is @code{remroot}."
 msgstr "Especifica el nombre de la usuaria asociado con accesos sin identificación por parte de clientes que digan ser la usuaria root. La usuaria predeterminada es @code{remroot}."
 
 #. type: deftypevr
-#: doc/guix.texi:14996
+#: doc/guix.texi:17550
 msgid "Defaults to @samp{\"remroot\"}."
 msgstr "El valor predeterminado es @samp{\"remroot\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:14998
+#: doc/guix.texi:17552
 #, no-wrap
 msgid "{@code{files-configuration} parameter} file-name request-root"
-msgstr "{parámetro de @code{files-configuration}} nombre-fichero request-root"
+msgstr "{parámetro de @code{files-configuration}} nombre-archivo request-root"
 
 #. type: deftypevr
-#: doc/guix.texi:15001
+#: doc/guix.texi:17555
 msgid "Specifies the directory that contains print jobs and other HTTP request data."
 msgstr "Especifica el directorio que contiene los trabajos de impresión y otros datos de peticiones HTTP."
 
 #. type: deftypevr
-#: doc/guix.texi:15003
+#: doc/guix.texi:17557
 msgid "Defaults to @samp{\"/var/spool/cups\"}."
 msgstr "El valor predeterminado es @samp{\"/var/spool/cups\"}."
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:15005
+#: doc/guix.texi:17559
 #, no-wrap
 msgid "{@code{files-configuration} parameter} sandboxing sandboxing"
 msgstr "{parámetro de @code{files-configuration}} aislamiento sandboxing"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:15010
+#: doc/guix.texi:17564
 msgid "Specifies the level of security sandboxing that is applied to print filters, backends, and other child processes of the scheduler; either @code{relaxed} or @code{strict}.  This directive is currently only used/supported on macOS."
 msgstr "Especifica el nivel de seguridad del aislamiento (sandbox) que se aplica sobre los filtros de impresión, motores y otros procesos lanzados por el planificador; o bien @code{relaxed} o bien @code{strict}. Esta directiva únicamente tiene uso actualmente en macOS."
 
 #. type: deftypevr
-#: doc/guix.texi:15012
+#: doc/guix.texi:17566
 msgid "Defaults to @samp{strict}."
 msgstr "El valor predeterminado es @samp{strict}."
 
 #. type: deftypevr
-#: doc/guix.texi:15014
+#: doc/guix.texi:17568
 #, no-wrap
 msgid "{@code{files-configuration} parameter} file-name server-keychain"
-msgstr "{parámetro de @code{files-configuration}} nombre-fichero server-keychain"
+msgstr "{parámetro de @code{files-configuration}} nombre-archivo server-keychain"
 
 # FUZZY FUZZY
 #. type: deftypevr
-#: doc/guix.texi:15019
-msgid "Specifies the location of TLS certificates and private keys.  CUPS will look for public and private keys in this directory: a @code{.crt} files for PEM-encoded certificates and corresponding @code{.key} files for PEM-encoded private keys."
-msgstr "Especifica la localización de los certificados TLS y las claves privadas. CUPS buscará claves públicas y privadas en este directorio: un fichero @code{.crt} para certificados codificados con PEM y los correspondientes fichero @code{.key} para las claves privadas codificadas con PEM."
+#: doc/guix.texi:17573
+msgid "Specifies the location of TLS certificates and private keys.  CUPS will look for public and private keys in this directory: @file{.crt} files for PEM-encoded certificates and corresponding @file{.key} files for PEM-encoded private keys."
+msgstr "Especifica la localización de los certificados TLS y las claves privadas. CUPS buscará claves públicas y privadas en este directorio: un archivo @file{.crt} para certificados codificados con PEM y los correspondientes archivo @file{.key} para las claves privadas codificadas con PEM."
 
 #. type: deftypevr
-#: doc/guix.texi:15021
+#: doc/guix.texi:17575
 msgid "Defaults to @samp{\"/etc/cups/ssl\"}."
 msgstr "El valor predeterminado es @samp{\"/etc/cups/ssl\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:15023
+#: doc/guix.texi:17577
 #, no-wrap
 msgid "{@code{files-configuration} parameter} file-name server-root"
-msgstr "{parámetro de @code{files-configuration}} nombre-fichero server-root"
+msgstr "{parámetro de @code{files-configuration}} nombre-archivo server-root"
 
 #. type: deftypevr
-#: doc/guix.texi:15025
+#: doc/guix.texi:17579
 msgid "Specifies the directory containing the server configuration files."
-msgstr "Especifica el directorio que contiene los ficheros de configuración del servidor."
+msgstr "Especifica el directorio que contiene los archivos de configuración del servidor."
 
 #. type: deftypevr
-#: doc/guix.texi:15027
+#: doc/guix.texi:17581
 msgid "Defaults to @samp{\"/etc/cups\"}."
 msgstr "El valor predeterminado es @samp{\"/etc/cups\"}."
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:15029
+#: doc/guix.texi:17583
 #, no-wrap
 msgid "{@code{files-configuration} parameter} boolean sync-on-close?"
 msgstr "{parámetro de @code{files-configuration}} boolean sync-on-close?"
 
 #. type: deftypevr
-#: doc/guix.texi:15032
+#: doc/guix.texi:17586
 msgid "Specifies whether the scheduler calls fsync(2) after writing configuration or state files."
-msgstr "Especifica si el planificador llama fsync(2) tras la escritura de los ficheros de configuración o estado."
+msgstr "Especifica si el planificador llama fsync(2) tras la escritura de los archivos de configuración o estado."
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:15036
+#: doc/guix.texi:17590
 #, no-wrap
 msgid "{@code{files-configuration} parameter} space-separated-string-list system-group"
 msgstr "{parámetro de @code{files-configuration}} cadenas-separadas-por-espacios system-group"
 
 #. type: deftypevr
-#: doc/guix.texi:15038
+#: doc/guix.texi:17592
 msgid "Specifies the group(s) to use for @code{@@SYSTEM} group authentication."
 msgstr "Especifica el o los grupos usados para la identificación del grupo @code{@@SYSTEM}."
 
 #. type: deftypevr
-#: doc/guix.texi:15040
+#: doc/guix.texi:17594
 #, no-wrap
 msgid "{@code{files-configuration} parameter} file-name temp-dir"
-msgstr "{parámetro de @code{files-configuration}} nombre-fichero temp-dir"
+msgstr "{parámetro de @code{files-configuration}} nombre-archivo temp-dir"
 
 #. type: deftypevr
-#: doc/guix.texi:15042
+#: doc/guix.texi:17596
 msgid "Specifies the directory where temporary files are stored."
-msgstr "Especifica el directorio donde se escriben los ficheros temporales."
+msgstr "Especifica el directorio donde se escriben los archivos temporales."
 
 #. type: deftypevr
-#: doc/guix.texi:15044
+#: doc/guix.texi:17598
 msgid "Defaults to @samp{\"/var/spool/cups/tmp\"}."
 msgstr "El valor predeterminado es @samp{\"/var/spool/cups/tmp\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:15046
+#: doc/guix.texi:17600
 #, no-wrap
 msgid "{@code{files-configuration} parameter} string user"
 msgstr "{parámetro de @code{files-configuration}} string user"
 
 #. type: deftypevr
-#: doc/guix.texi:15049
+#: doc/guix.texi:17603
 msgid "Specifies the user name or ID that is used when running external programs."
 msgstr "Especifica el nombre de usuaria o ID usado para la ejecución de programas externos."
 
 #. type: deftypevr
-#: doc/guix.texi:15053
+#: doc/guix.texi:17607
 #, no-wrap
 msgid "{@code{files-configuration} parameter} string set-env"
 msgstr "{parámetro de @code{files-configuration}} string set-env"
@@ -28915,332 +33386,331 @@ msgstr "{parámetro de @code{files-configuration}} string set-env"
 # FUZZY
 # TODO (MAAV): Repensar.
 #. type: deftypevr
-#: doc/guix.texi:15055
+#: doc/guix.texi:17609
 msgid "Set the specified environment variable to be passed to child processes."
 msgstr "Establece el valor de la variable de entorno especificada que se proporcionará a los procesos lanzados."
 
 #. type: deftypevr
-#: doc/guix.texi:15057
+#: doc/guix.texi:17611
 msgid "Defaults to @samp{\"variable value\"}."
 msgstr "El valor predeterminado es @samp{\"variable value\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:15060
+#: doc/guix.texi:17614
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} access-log-level access-log-level"
 msgstr "{parámetro de @code{cups-configuration}} nivel-registro-acceso access-log-level"
 
 #. type: deftypevr
-#: doc/guix.texi:15067
+#: doc/guix.texi:17621
 msgid "Specifies the logging level for the AccessLog file.  The @code{config} level logs when printers and classes are added, deleted, or modified and when configuration files are accessed or updated.  The @code{actions} level logs when print jobs are submitted, held, released, modified, or canceled, and any of the conditions for @code{config}.  The @code{all} level logs all requests."
-msgstr "Especifica el nivel de registro para el fichero AccessLog. El nivel @code{config} registra la adición, borrado o modificación de impresoras y clases, y el acceso y modificación de los ficheros de configuración. El nivel @code{actions} registra cuando los trabajos de impresión se envían, mantienen a la espera, liberan, modifican o cancelan, además de todas las condiciones de @code{config}. El nivel @code{all} registra todas las peticiones."
+msgstr "Especifica el nivel de registro para el archivo AccessLog. El nivel @code{config} registra la adición, borrado o modificación de impresoras y clases, y el acceso y modificación de los archivos de configuración. El nivel @code{actions} registra cuando los trabajos de impresión se envían, mantienen a la espera, liberan, modifican o cancelan, además de todas las condiciones de @code{config}. El nivel @code{all} registra todas las peticiones."
 
 #. type: deftypevr
-#: doc/guix.texi:15069
+#: doc/guix.texi:17623
 msgid "Defaults to @samp{actions}."
 msgstr "El valor predeterminado es @samp{actions}."
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:15071
+#: doc/guix.texi:17625
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} boolean auto-purge-jobs?"
 msgstr "{parámetro de @code{cups-configuration}} boolean auto-purge-jobs?"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:15074
+#: doc/guix.texi:17628
 msgid "Specifies whether to purge job history data automatically when it is no longer required for quotas."
 msgstr "Especifica si se purgan los datos del histórico de trabajos de manera automática cuando ya no son necesarios para las cuotas."
 
 #. type: deftypevr
-#: doc/guix.texi:15078
+#: doc/guix.texi:17632
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} comma-separated-string-list browse-dns-sd-sub-types"
 msgstr "{parámetro de @code{cups-configuration}} lista-cadenas-separada-comas browse-dns-sd-sub-types"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:15082
+#: doc/guix.texi:17636
 msgid "Specifies a list of DNS-SD sub-types to advertise for each shared printer.  For example, @samp{\"_cups\" \"_print\"} will tell network clients that both CUPS sharing and IPP Everywhere are supported."
 msgstr "Especifica una lista de subtipos de DNS-SD anunciados por cada impresora compartida. Por ejemplo, @samp{\"_cups\" \"_print\"} le dirá a los clientes de red que se implementa tanto la compartición con CUPS como IPP Everywhere."
 
 #. type: deftypevr
-#: doc/guix.texi:15084
+#: doc/guix.texi:17638
 msgid "Defaults to @samp{\"_cups\"}."
 msgstr "El valor predeterminado es @samp{\"_cups\"}."
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:15086
+#: doc/guix.texi:17640
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} browse-local-protocols browse-local-protocols"
 msgstr "{parámetro de @code{cups-configuration}} protocolos browse-local-protocols"
 
 #. type: deftypevr
-#: doc/guix.texi:15088
+#: doc/guix.texi:17642
 msgid "Specifies which protocols to use for local printer sharing."
 msgstr "Especifica qué protocolos deben usarse para compartir las impresoras locales."
 
 #. type: deftypevr
-#: doc/guix.texi:15090
+#: doc/guix.texi:17644
 msgid "Defaults to @samp{dnssd}."
 msgstr "El valor predeterminado es @samp{dnssd}."
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:15092
+#: doc/guix.texi:17646
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} boolean browse-web-if?"
 msgstr "{parámetro de @code{cups-configuration}} boolean browse-web-if?"
 
 #. type: deftypevr
-#: doc/guix.texi:15094
+#: doc/guix.texi:17648
 msgid "Specifies whether the CUPS web interface is advertised."
 msgstr "Especifica si se anuncia la interfaz web de CUPS."
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:15098
+#: doc/guix.texi:17652
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} boolean browsing?"
 msgstr "{parámetro de @code{cups-configuration}} boolean browsing?"
 
 #. type: deftypevr
-#: doc/guix.texi:15100
+#: doc/guix.texi:17654
 msgid "Specifies whether shared printers are advertised."
 msgstr "Especifica si se anuncian las impresoras compartidas."
 
 #. type: deftypevr
-#: doc/guix.texi:15104
+#: doc/guix.texi:17658
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} string classification"
 msgstr "{parámetro de @code{cups-configuration}} string classification"
 
 # FUZZY
-# TODO (MAAV): Revisar traducción, ya que es un poco interpretación.
-#. type: deftypevr
-#: doc/guix.texi:15109
-msgid "Specifies the security classification of the server.  Any valid banner name can be used, including \"classified\", \"confidential\", \"secret\", \"topsecret\", and \"unclassified\", or the banner can be omitted to disable secure printing functions."
-msgstr "Especifica la clasificación de seguridad del servidor. Se puede usar cualquier nombre válido para anunciar la identificación del nivel de seguridad en inglés, incluyendo \"classified\", \"confidential\", \"secret\", \"topsecret\" y \"unclassified\"@footnote{NdT: La traducción de los niveles sería ``clasificado'', ``confidencial'', ``secreto'', ``alto secreto'' y ``desclasificado'', respectivamente}, o el anuncio puede omitirse para desactivar las funciones de impresión segura."
-
-#. type: deftypevr
-#: doc/guix.texi:15111 doc/guix.texi:15448 doc/guix.texi:17151
-#: doc/guix.texi:17163 doc/guix.texi:17937 doc/guix.texi:17951
-#: doc/guix.texi:17958 doc/guix.texi:17965 doc/guix.texi:17995
-#: doc/guix.texi:18093 doc/guix.texi:19156 doc/guix.texi:19182
-#: doc/guix.texi:19218 doc/guix.texi:19283 doc/guix.texi:19322
-#: doc/guix.texi:19381 doc/guix.texi:19390 doc/guix.texi:23430
-#: doc/guix.texi:23438 doc/guix.texi:23446 doc/guix.texi:23454
-#: doc/guix.texi:23732 doc/guix.texi:24210 doc/guix.texi:24218
-#: doc/guix.texi:24226 doc/guix.texi:24334 doc/guix.texi:24359
-#: doc/guix.texi:24490 doc/guix.texi:24498 doc/guix.texi:24506
-#: doc/guix.texi:24514 doc/guix.texi:24522 doc/guix.texi:24530
-#: doc/guix.texi:24553 doc/guix.texi:24561 doc/guix.texi:24613
-#: doc/guix.texi:24629 doc/guix.texi:24637 doc/guix.texi:24676
-#: doc/guix.texi:24699 doc/guix.texi:24721 doc/guix.texi:24728
-#: doc/guix.texi:24763 doc/guix.texi:24771 doc/guix.texi:24795
-#: doc/guix.texi:24827 doc/guix.texi:24856 doc/guix.texi:24863
-#: doc/guix.texi:24870 doc/guix.texi:24878 doc/guix.texi:24892
-#: doc/guix.texi:24901 doc/guix.texi:24911 doc/guix.texi:24918
-#: doc/guix.texi:24925 doc/guix.texi:24932 doc/guix.texi:25003
-#: doc/guix.texi:25010 doc/guix.texi:25017 doc/guix.texi:25026
-#: doc/guix.texi:25042 doc/guix.texi:25049 doc/guix.texi:25056
-#: doc/guix.texi:25063 doc/guix.texi:25071 doc/guix.texi:25079
+#. type: deftypevr
+#: doc/guix.texi:17663
+msgid "Specifies the security classification of the server.  Any valid banner name can be used, including @samp{\"classified\"}, @samp{\"confidential\"}, @samp{\"secret\"}, @samp{\"topsecret\"}, and @samp{\"unclassified\"}, or the banner can be omitted to disable secure printing functions."
+msgstr "Especifica la clasificación de seguridad del servidor. Se puede usar cualquier nombre válido para anunciar la identificación del nivel de seguridad, incluyendo @samp{\"classified\"}, @samp{\"confidential\"}, @samp{\"secret\"}, @samp{\"topsecret\"} y @samp{\"unclassified\"}, o el anuncio puede omitirse para desactivar las funciones de impresión segura."
+
+#. type: deftypevr
+#: doc/guix.texi:17665 doc/guix.texi:18002 doc/guix.texi:19840
+#: doc/guix.texi:19852 doc/guix.texi:20626 doc/guix.texi:20640
+#: doc/guix.texi:20647 doc/guix.texi:20654 doc/guix.texi:20684
+#: doc/guix.texi:20782 doc/guix.texi:21846 doc/guix.texi:21872
+#: doc/guix.texi:21908 doc/guix.texi:21973 doc/guix.texi:22012
+#: doc/guix.texi:22071 doc/guix.texi:22080 doc/guix.texi:26291
+#: doc/guix.texi:26299 doc/guix.texi:26307 doc/guix.texi:26315
+#: doc/guix.texi:26594 doc/guix.texi:27903 doc/guix.texi:27911
+#: doc/guix.texi:27919 doc/guix.texi:28027 doc/guix.texi:28052
+#: doc/guix.texi:28183 doc/guix.texi:28191 doc/guix.texi:28199
+#: doc/guix.texi:28207 doc/guix.texi:28215 doc/guix.texi:28223
+#: doc/guix.texi:28246 doc/guix.texi:28254 doc/guix.texi:28306
+#: doc/guix.texi:28322 doc/guix.texi:28330 doc/guix.texi:28369
+#: doc/guix.texi:28392 doc/guix.texi:28414 doc/guix.texi:28421
+#: doc/guix.texi:28456 doc/guix.texi:28464 doc/guix.texi:28488
+#: doc/guix.texi:28520 doc/guix.texi:28549 doc/guix.texi:28556
+#: doc/guix.texi:28563 doc/guix.texi:28571 doc/guix.texi:28585
+#: doc/guix.texi:28594 doc/guix.texi:28604 doc/guix.texi:28611
+#: doc/guix.texi:28618 doc/guix.texi:28625 doc/guix.texi:28696
+#: doc/guix.texi:28703 doc/guix.texi:28710 doc/guix.texi:28719
+#: doc/guix.texi:28735 doc/guix.texi:28742 doc/guix.texi:28749
+#: doc/guix.texi:28756 doc/guix.texi:28764 doc/guix.texi:28772
 msgid "Defaults to @samp{\"\"}."
 msgstr "El valor predeterminado es @samp{\"\"}."
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:15113
+#: doc/guix.texi:17667
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} boolean classify-override?"
 msgstr "{parámetro de @code{cups-configuration}} boolean classify-override?"
 
 # FUZZY FUZZY
 #. type: deftypevr
-#: doc/guix.texi:15116
+#: doc/guix.texi:17670
 msgid "Specifies whether users may override the classification (cover page) of individual print jobs using the @code{job-sheets} option."
 msgstr "Especifica si las usuarias pueden modificar la clasificación (página de portada) de trabajos de impresión individuales mediante el uso de la opción @code{job-sheets}."
 
 #. type: deftypevr
-#: doc/guix.texi:15120
+#: doc/guix.texi:17674
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} default-auth-type default-auth-type"
 msgstr "{parámetro de @code{cups-configuration}} tipo-id-pred default-auth-type"
 
 #. type: deftypevr
-#: doc/guix.texi:15122
+#: doc/guix.texi:17676
 msgid "Specifies the default type of authentication to use."
 msgstr "Especifica el tipo de identificación usado por omisión."
 
 #. type: deftypevr
-#: doc/guix.texi:15124
+#: doc/guix.texi:17678
 msgid "Defaults to @samp{Basic}."
 msgstr "El valor predeterminado es @samp{Basic}."
 
 #. type: deftypevr
-#: doc/guix.texi:15126
+#: doc/guix.texi:17680
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} default-encryption default-encryption"
 msgstr "{parámetro de @code{cups-configuration}} cifrado-pred default-encryption"
 
 # FUZZY FUZZY
 #. type: deftypevr
-#: doc/guix.texi:15128
+#: doc/guix.texi:17682
 msgid "Specifies whether encryption will be used for authenticated requests."
 msgstr "Especifica si se usará cifrado para peticiones con identificación."
 
 #. type: deftypevr
-#: doc/guix.texi:15130
+#: doc/guix.texi:17684
 msgid "Defaults to @samp{Required}."
 msgstr "El valor predeterminado es @samp{Required}."
 
 #. type: deftypevr
-#: doc/guix.texi:15132
+#: doc/guix.texi:17686
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} string default-language"
 msgstr "{parámetro de @code{cups-configuration}} string default-language"
 
 #. type: deftypevr
-#: doc/guix.texi:15134
+#: doc/guix.texi:17688
 msgid "Specifies the default language to use for text and web content."
 msgstr "Especifica el idioma predeterminado usado para el texto y contenido de la web."
 
 #. type: deftypevr
-#: doc/guix.texi:15136
+#: doc/guix.texi:17690
 msgid "Defaults to @samp{\"en\"}."
 msgstr "El valor predeterminado es @samp{\"en\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:15138
+#: doc/guix.texi:17692
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} string default-paper-size"
 msgstr "{parámetro de @code{cups-configuration}} cadena default-paper-size"
 
 #. type: deftypevr
-#: doc/guix.texi:15143
+#: doc/guix.texi:17697
 msgid "Specifies the default paper size for new print queues.  @samp{\"Auto\"} uses a locale-specific default, while @samp{\"None\"} specifies there is no default paper size.  Specific size names are typically @samp{\"Letter\"} or @samp{\"A4\"}."
 msgstr "Especifica el tamaño predeterminado del papel para colas de impresión nuevas. @samp{\"Auto\"} usa el valor predeterminado de la localización, mientras que @samp{\"None\"} especifica que no hay un tamaño de papel predeterminado. Los nombres de tamaños específicos habitualmente son @samp{\"Letter\"} o @samp{\"A4\"}@footnote{NdT: @samp{Letter} es el formato estándar de ANSI, de 215,9x279,4 milímetros de tamaño, mientras que A4 es el formato estándar de ISO, de 210x297 milímetros de tamaño.}."
 
 #. type: deftypevr
-#: doc/guix.texi:15145
+#: doc/guix.texi:17699
 msgid "Defaults to @samp{\"Auto\"}."
 msgstr "El valor predeterminado es @samp{\"Auto\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:15147
+#: doc/guix.texi:17701
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} string default-policy"
 msgstr "{parámetro de @code{cups-configuration}} string default-policy"
 
 #. type: deftypevr
-#: doc/guix.texi:15149
+#: doc/guix.texi:17703
 msgid "Specifies the default access policy to use."
 msgstr "Especifica la política de acceso usada por omisión."
 
 #. type: deftypevr
-#: doc/guix.texi:15151
+#: doc/guix.texi:17705
 msgid "Defaults to @samp{\"default\"}."
 msgstr "El valor predeterminado es @samp{\"default\"}."
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:15153
+#: doc/guix.texi:17707
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} boolean default-shared?"
 msgstr "{parámetro de @code{cups-configuration}} boolean default-shared?"
 
 #. type: deftypevr
-#: doc/guix.texi:15155
+#: doc/guix.texi:17709
 msgid "Specifies whether local printers are shared by default."
 msgstr "Especifica si las impresoras locales se comparten de manera predeterminada."
 
 #. type: deftypevr
-#: doc/guix.texi:15157 doc/guix.texi:15237 doc/guix.texi:15533
-#: doc/guix.texi:18027 doc/guix.texi:18078 doc/guix.texi:18085
-#: doc/guix.texi:21827 doc/guix.texi:21855 doc/guix.texi:21975
-#: doc/guix.texi:21982 doc/guix.texi:21990 doc/guix.texi:22027
-#: doc/guix.texi:22041 doc/guix.texi:22126 doc/guix.texi:22133
-#: doc/guix.texi:22141 doc/guix.texi:22639 doc/guix.texi:22779
-#: doc/guix.texi:22965 doc/guix.texi:22972 doc/guix.texi:22994
-#: doc/guix.texi:23033 doc/guix.texi:23053 doc/guix.texi:23067
-#: doc/guix.texi:23279 doc/guix.texi:24312 doc/guix.texi:24400
-#: doc/guix.texi:24416 doc/guix.texi:24466
+#: doc/guix.texi:17711 doc/guix.texi:17791 doc/guix.texi:18087
+#: doc/guix.texi:20716 doc/guix.texi:20767 doc/guix.texi:20774
+#: doc/guix.texi:24673 doc/guix.texi:24701 doc/guix.texi:24821
+#: doc/guix.texi:24828 doc/guix.texi:24836 doc/guix.texi:24873
+#: doc/guix.texi:24887 doc/guix.texi:24972 doc/guix.texi:24979
+#: doc/guix.texi:24987 doc/guix.texi:25499 doc/guix.texi:25639
+#: doc/guix.texi:25825 doc/guix.texi:25832 doc/guix.texi:25854
+#: doc/guix.texi:25893 doc/guix.texi:25913 doc/guix.texi:25927
+#: doc/guix.texi:26140 doc/guix.texi:28005 doc/guix.texi:28093
+#: doc/guix.texi:28109 doc/guix.texi:28159
 msgid "Defaults to @samp{#t}."
 msgstr "El valor predeterminado es @samp{#t}"
 
 #. type: deftypevr
-#: doc/guix.texi:15159
+#: doc/guix.texi:17713
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer dirty-clean-interval"
 msgstr "{parámetro de @code{cups-configuration}} entero-no-negativo dirty-clean-interval"
 
 #. type: deftypevr
-#: doc/guix.texi:15163
+#: doc/guix.texi:17717
 msgid "Specifies the delay for updating of configuration and state files, in seconds.  A value of 0 causes the update to happen as soon as possible, typically within a few milliseconds."
-msgstr "Especifica el retraso para la actualización de los ficheros de configuración y estado, en segundo. Un valor de 0 hace que la actualización se lleve a cabo tan pronto sea posible, en algunos milisegundos habitualmente."
+msgstr "Especifica el retraso para la actualización de los archivos de configuración y estado, en segundo. Un valor de 0 hace que la actualización se lleve a cabo tan pronto sea posible, en algunos milisegundos habitualmente."
 
 #. type: deftypevr
-#: doc/guix.texi:15165 doc/guix.texi:15213 doc/guix.texi:15222
-#: doc/guix.texi:15243 doc/guix.texi:15540
+#: doc/guix.texi:17719 doc/guix.texi:17767 doc/guix.texi:17776
+#: doc/guix.texi:17797 doc/guix.texi:18094
 msgid "Defaults to @samp{30}."
 msgstr "El valor predeterminado es @samp{30}."
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:15167
+#: doc/guix.texi:17721
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} error-policy error-policy"
 msgstr "{parámetro de @code{cups-configuration}} política-error error-policy"
 
 #. type: deftypevr
-#: doc/guix.texi:15173
+#: doc/guix.texi:17727
 msgid "Specifies what to do when an error occurs.  Possible values are @code{abort-job}, which will discard the failed print job; @code{retry-job}, which will retry the job at a later time; @code{retry-current-job}, which retries the failed job immediately; and @code{stop-printer}, which stops the printer."
 msgstr "Especifica qué hacer cuando ocurra un error. Los valores posibles son @code{abort-job}, que descartará el trabajo de impresión fallido; @code{retry-job}, que intentará llevar de nuevo a cabo el trabajo en un momento posterior; @code{retry-current-job}, que reintenta el trabajo que falló de manera inmediata; y @code{stop-printer}, que para la impresora."
 
 #. type: deftypevr
-#: doc/guix.texi:15175
+#: doc/guix.texi:17729
 msgid "Defaults to @samp{stop-printer}."
 msgstr "El valor predeterminado es @samp{stop-printer}."
 
 #. type: deftypevr
-#: doc/guix.texi:15177
+#: doc/guix.texi:17731
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer filter-limit"
 msgstr "{parámetro de @code{cups-configuration}} entero-no-negativo filter-limit"
 
 #. type: deftypevr
-#: doc/guix.texi:15185
+#: doc/guix.texi:17739
 msgid "Specifies the maximum cost of filters that are run concurrently, which can be used to minimize disk, memory, and CPU resource problems.  A limit of 0 disables filter limiting.  An average print to a non-PostScript printer needs a filter limit of about 200.  A PostScript printer needs about half that (100).  Setting the limit below these thresholds will effectively limit the scheduler to printing a single job at any time."
 msgstr "Especifica el coste máximo de filtros que se ejecutan de manera concurrente, lo que puede usarse para minimizar problemas de recursos de disco, memoria y procesador. Un límite de 0 desactiva la limitación del filtrado. Una impresión media con una impresora no-PostScript necesita una limitación del filtrado de 200 más o menos. Una impresora PostScript necesita cerca de la mitad (100). Establecer un límite por debajo de estos valores limitará de forma efectiva al planificador a la ejecución de un único trabajo de impresión en cualquier momento."
 
 #. type: deftypevr
-#: doc/guix.texi:15187 doc/guix.texi:15195 doc/guix.texi:15250
-#: doc/guix.texi:15366 doc/guix.texi:15380 doc/guix.texi:15387
-#: doc/guix.texi:16593 doc/guix.texi:16609 doc/guix.texi:17255
-#: doc/guix.texi:17267 doc/guix.texi:18046 doc/guix.texi:18055
-#: doc/guix.texi:18063 doc/guix.texi:18071 doc/guix.texi:22655
-#: doc/guix.texi:22980 doc/guix.texi:24305 doc/guix.texi:24605
-#: doc/guix.texi:24779
+#: doc/guix.texi:17741 doc/guix.texi:17749 doc/guix.texi:17804
+#: doc/guix.texi:17920 doc/guix.texi:17934 doc/guix.texi:17941
+#: doc/guix.texi:19282 doc/guix.texi:19298 doc/guix.texi:19944
+#: doc/guix.texi:19956 doc/guix.texi:20735 doc/guix.texi:20744
+#: doc/guix.texi:20752 doc/guix.texi:20760 doc/guix.texi:25515
+#: doc/guix.texi:25840 doc/guix.texi:27998 doc/guix.texi:28298
+#: doc/guix.texi:28472
 msgid "Defaults to @samp{0}."
 msgstr "El valor predeterminado es @samp{0}."
 
 #. type: deftypevr
-#: doc/guix.texi:15189
+#: doc/guix.texi:17743
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer filter-nice"
 msgstr "{parámetro de @code{cups-configuration}} entero-no-negativo filter-nice"
 
 # FUZZY FUZZY
 #. type: deftypevr
-#: doc/guix.texi:15193
+#: doc/guix.texi:17747
 msgid "Specifies the scheduling priority of filters that are run to print a job.  The nice value ranges from 0, the highest priority, to 19, the lowest priority."
 msgstr "Especifica la prioridad de planificación de los filtros que se ejecuten para la impresión de un trabajo. El valor de ``nice'' va desde 0, la mayor prioridad, a 19, la menor prioridad."
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:15197
+#: doc/guix.texi:17751
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} host-name-lookups host-name-lookups"
 msgstr "{parámetro de @code{cups-configuration}} búsqueda-nombres-máquina host-name-lookups"
@@ -29252,58 +33722,58 @@ msgstr "{parámetro de @code{cups-configuration}} búsqueda-nombres-máquina hos
 # más bien no debería tener un valor falso a no ser que se quiera
 # publicar el servicio de manera pública?
 #. type: deftypevr
-#: doc/guix.texi:15204
+#: doc/guix.texi:17758
 msgid "Specifies whether to do reverse lookups on connecting clients.  The @code{double} setting causes @code{cupsd} to verify that the hostname resolved from the address matches one of the addresses returned for that hostname.  Double lookups also prevent clients with unregistered addresses from connecting to your server.  Only set this option to @code{#t} or @code{double} if absolutely required."
 msgstr "Especifica si se realizarán las búsquedas inversas en las conexiones de clientes. La opción @code{double} instruye a @code{cupsd} para que verifique que el nombre de máquina al que resuelve la dirección corresponde con la dirección devuelta por dicho nombre de máquina. Las búsquedas dobles también evitan que clientes con direcciones sin registrar se conecten a su servidor. Configure esta opción con @code{#t} o @code{double} únicamente si es absolutamente necesario."
 
 #. type: deftypevr
-#: doc/guix.texi:15208
+#: doc/guix.texi:17762
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer job-kill-delay"
 msgstr "{parámetro de @code{cups-configuration}} entero-no-negativo job-kill-delay"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:15211
+#: doc/guix.texi:17765
 msgid "Specifies the number of seconds to wait before killing the filters and backend associated with a canceled or held job."
 msgstr "Especifica el número de segundos a esperar antes de terminar los filtros y el motor asociados con un trabajo cancelado o puesto en espera."
 
 #. type: deftypevr
-#: doc/guix.texi:15215
+#: doc/guix.texi:17769
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer job-retry-interval"
 msgstr "{parámetro de @code{cups-configuration}} entero-no-negativo job-retry-interval"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:15220
+#: doc/guix.texi:17774
 msgid "Specifies the interval between retries of jobs in seconds.  This is typically used for fax queues but can also be used with normal print queues whose error policy is @code{retry-job} or @code{retry-current-job}."
 msgstr "Especifica el intervalo entre los reintentos de trabajos en segundos. Se usa de manera habitual en colas de fax pero también puede usarse con colas de impresión normales cuya política de error sea @code{retry-job} o @code{retry-current-job}."
 
 #. type: deftypevr
-#: doc/guix.texi:15224
+#: doc/guix.texi:17778
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer job-retry-limit"
 msgstr "{parámetro de @code{cups-configuration}} entero-no-negativo job-retry-limit"
 
 #. type: deftypevr
-#: doc/guix.texi:15229
+#: doc/guix.texi:17783
 msgid "Specifies the number of retries that are done for jobs.  This is typically used for fax queues but can also be used with normal print queues whose error policy is @code{retry-job} or @code{retry-current-job}."
 msgstr "Especifica el número de reintentos que se llevan a cabo con los trabajos. De manera habitual se usa con colas de fax pero también puede usarse con colas de impresión normal cuya política de error sea @code{retry-job} o @code{retry-current-job}."
 
 #. type: deftypevr
-#: doc/guix.texi:15231 doc/guix.texi:23531 doc/guix.texi:23551
-#: doc/guix.texi:23567 doc/guix.texi:23581 doc/guix.texi:23588
-#: doc/guix.texi:23595 doc/guix.texi:23602 doc/guix.texi:23761
-#: doc/guix.texi:23777 doc/guix.texi:23784 doc/guix.texi:23791
-#: doc/guix.texi:23802 doc/guix.texi:24257 doc/guix.texi:24265
-#: doc/guix.texi:24273 doc/guix.texi:24297
+#: doc/guix.texi:17785 doc/guix.texi:26392 doc/guix.texi:26412
+#: doc/guix.texi:26428 doc/guix.texi:26442 doc/guix.texi:26449
+#: doc/guix.texi:26456 doc/guix.texi:26463 doc/guix.texi:26623
+#: doc/guix.texi:26639 doc/guix.texi:26646 doc/guix.texi:26653
+#: doc/guix.texi:26664 doc/guix.texi:27950 doc/guix.texi:27958
+#: doc/guix.texi:27966 doc/guix.texi:27990
 msgid "Defaults to @samp{5}."
 msgstr "El valor predeterminado es @samp{5}."
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:15233
+#: doc/guix.texi:17787
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} boolean keep-alive?"
 msgstr "{parámetro de @code{cups-configuration}} boolean keep-alive?"
@@ -29313,12 +33783,12 @@ msgstr "{parámetro de @code{cups-configuration}} boolean keep-alive?"
 # MAAV (Duda): Keep-alive podría ser mantenimiento del canal, pero
 # también es parte del protocolo...
 #. type: deftypevr
-#: doc/guix.texi:15235
+#: doc/guix.texi:17789
 msgid "Specifies whether to support HTTP keep-alive connections."
 msgstr "Especifica si se permiten conexiones ``keep-alive'' de HTTP."
 
 #. type: deftypevr
-#: doc/guix.texi:15239
+#: doc/guix.texi:17793
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer keep-alive-timeout"
 msgstr "{parámetro de @code{cups-configuration}} entero-no-negativo keep-alive-timeout"
@@ -29327,305 +33797,305 @@ msgstr "{parámetro de @code{cups-configuration}} entero-no-negativo keep-alive-
 #
 # TODO (MAAV): Repensar idle.
 #. type: deftypevr
-#: doc/guix.texi:15241
+#: doc/guix.texi:17795
 msgid "Specifies how long an idle client connection remains open, in seconds."
 msgstr "Especifica por cuanto tiempo permanece abierta una conexión de cliente en estado de espera, en segundos."
 
 #. type: deftypevr
-#: doc/guix.texi:15245
+#: doc/guix.texi:17799
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer limit-request-body"
 msgstr "{parámetro de @code{cups-configuration}} entero-no-negativo limit-request-body"
 
 #. type: deftypevr
-#: doc/guix.texi:15248
+#: doc/guix.texi:17802
 msgid "Specifies the maximum size of print files, IPP requests, and HTML form data.  A limit of 0 disables the limit check."
-msgstr "Especifica el tamaño máximo de los ficheros de impresión, peticiones IPP y datos de formularios HTTP. Un límite de 0 desactiva la comprobación del límite."
+msgstr "Especifica el tamaño máximo de los archivos de impresión, peticiones IPP y datos de formularios HTTP. Un límite de 0 desactiva la comprobación del límite."
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:15252
+#: doc/guix.texi:17806
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} multiline-string-list listen"
 msgstr "{parámetro de @code{cups-configuration}} lista-cadenas-multilínea listen"
 
 #. type: deftypevr
-#: doc/guix.texi:15259
+#: doc/guix.texi:17813
 msgid "Listens on the specified interfaces for connections.  Valid values are of the form @var{address}:@var{port}, where @var{address} is either an IPv6 address enclosed in brackets, an IPv4 address, or @code{*} to indicate all addresses.  Values can also be file names of local UNIX domain sockets.  The Listen directive is similar to the Port directive but allows you to restrict access to specific interfaces or networks."
-msgstr "Escucha a la espera de conexiones en las interfaces especificadas. Se aceptan valores con la forma @var{dirección}:@var{puerto}, donde @var{dirección} es o bien una dirección IPv6 entre corchetes, una dirección IPv4 o @code{*} para indicar todas las direcciones. Los valores también pueden ser nombres de fichero de sockets de dominio de UNIX locales. La directiva ``Listen'' es similar a la directiva ``Port'', pero le permite la restricción del acceso a interfaces o redes específicas."
+msgstr "Escucha a la espera de conexiones en las interfaces especificadas. Se aceptan valores con la forma @var{dirección}:@var{puerto}, donde @var{dirección} es o bien una dirección IPv6 entre corchetes, una dirección IPv4 o @code{*} para indicar todas las direcciones. Los valores también pueden ser nombres de archivo de sockets de dominio de UNIX locales. La directiva ``Listen'' es similar a la directiva ``Port'', pero le permite la restricción del acceso a interfaces o redes específicas."
 
 #. type: deftypevr
-#: doc/guix.texi:15261
+#: doc/guix.texi:17815
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer listen-back-log"
 msgstr "{parámetro de @code{cups-configuration}} entero-no-negativo listen-back-log"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:15268
+#: doc/guix.texi:17822
 msgid "Specifies the number of pending connections that will be allowed.  This normally only affects very busy servers that have reached the MaxClients limit, but can also be triggered by large numbers of simultaneous connections.  When the limit is reached, the operating system will refuse additional connections until the scheduler can accept the pending ones."
 msgstr "Especifica el número de conexiones pendientes permitidas. Habitualmente afecta de manera exclusiva a servidores con mucha carga de trabajo que han alcanzado el límite de clientes ``MaxClients'', pero también puede ser provocado por grandes números de conexiones simultaneas. Cuando se alcanza el límite, el sistema operativo rechaza conexiones adicionales hasta que el planificador pueda aceptar las pendientes."
 
 #. type: deftypevr
-#: doc/guix.texi:15270
+#: doc/guix.texi:17824
 msgid "Defaults to @samp{128}."
 msgstr "El valor predeterminado es @samp{128}."
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:15272
+#: doc/guix.texi:17826
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} location-access-control-list location-access-controls"
 msgstr "{parámetro de @code{cups-configuration}} lista-location-access-control location-access-controls"
 
 #. type: deftypevr
-#: doc/guix.texi:15274
+#: doc/guix.texi:17828
 msgid "Specifies a set of additional access controls."
 msgstr "Especifica un conjunto adicional de controles de acceso."
 
 #. type: deftypevr
-#: doc/guix.texi:15276
+#: doc/guix.texi:17830
 msgid "Available @code{location-access-controls} fields are:"
 msgstr "Los campos disponibles de @code{location-access-controls} son:"
 
 #. type: deftypevr
-#: doc/guix.texi:15277
+#: doc/guix.texi:17831
 #, no-wrap
 msgid "{@code{location-access-controls} parameter} file-name path"
-msgstr "{parámetro de @code{location-access-controls}} nombre-fichero path"
+msgstr "{parámetro de @code{location-access-controls}} nombre-archivo path"
 
 #. type: deftypevr
-#: doc/guix.texi:15279
+#: doc/guix.texi:17833
 msgid "Specifies the URI path to which the access control applies."
 msgstr "Especifica la ruta URI sobre la que el control de acceso tendrá efecto."
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:15281
+#: doc/guix.texi:17835
 #, no-wrap
 msgid "{@code{location-access-controls} parameter} access-control-list access-controls"
 msgstr "{parámetro de @code{location-access-controls}} lista-access-control access-controls"
 
 #. type: deftypevr
-#: doc/guix.texi:15284
+#: doc/guix.texi:17838
 msgid "Access controls for all access to this path, in the same format as the @code{access-controls} of @code{operation-access-control}."
 msgstr "Controles de acceso para todos los accesos a esta ruta, en el mismo formato que @code{access-controls} de @code{operation-access-control}."
 
 #. type: deftypevr
-#: doc/guix.texi:15286 doc/guix.texi:15292 doc/guix.texi:15306
-#: doc/guix.texi:15313 doc/guix.texi:15455 doc/guix.texi:15514
-#: doc/guix.texi:15592 doc/guix.texi:15606 doc/guix.texi:17741
-#: doc/guix.texi:17944 doc/guix.texi:17972 doc/guix.texi:18002
-#: doc/guix.texi:18117 doc/guix.texi:18130 doc/guix.texi:18137
-#: doc/guix.texi:19226 doc/guix.texi:19330 doc/guix.texi:19755
-#: doc/guix.texi:19763 doc/guix.texi:20008 doc/guix.texi:21886
-#: doc/guix.texi:22048 doc/guix.texi:22243 doc/guix.texi:23422
-#: doc/guix.texi:23482 doc/guix.texi:23490 doc/guix.texi:24320
-#: doc/guix.texi:24327 doc/guix.texi:24669 doc/guix.texi:24747
-#: doc/guix.texi:24841 doc/guix.texi:24849 doc/guix.texi:24885
-#: doc/guix.texi:25035 doc/guix.texi:25086 doc/guix.texi:25095
+#: doc/guix.texi:17840 doc/guix.texi:17846 doc/guix.texi:17860
+#: doc/guix.texi:17867 doc/guix.texi:18009 doc/guix.texi:18068
+#: doc/guix.texi:18146 doc/guix.texi:18160 doc/guix.texi:20430
+#: doc/guix.texi:20633 doc/guix.texi:20661 doc/guix.texi:20691
+#: doc/guix.texi:20806 doc/guix.texi:20819 doc/guix.texi:20826
+#: doc/guix.texi:21916 doc/guix.texi:22020 doc/guix.texi:22446
+#: doc/guix.texi:22454 doc/guix.texi:22699 doc/guix.texi:24732
+#: doc/guix.texi:24894 doc/guix.texi:25089 doc/guix.texi:26283
+#: doc/guix.texi:26343 doc/guix.texi:26351 doc/guix.texi:28013
+#: doc/guix.texi:28020 doc/guix.texi:28362 doc/guix.texi:28440
+#: doc/guix.texi:28534 doc/guix.texi:28542 doc/guix.texi:28578
+#: doc/guix.texi:28728 doc/guix.texi:28779 doc/guix.texi:28788
 msgid "Defaults to @samp{()}."
 msgstr "El valor predeterminado es @samp{()}."
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:15288
+#: doc/guix.texi:17842
 #, no-wrap
 msgid "{@code{location-access-controls} parameter} method-access-control-list method-access-controls"
 msgstr "{parámetro de @code{location-access-controls}} lista-method-access-control method-access-controls"
 
 # FUZZY FUZZY
 #. type: deftypevr
-#: doc/guix.texi:15290
+#: doc/guix.texi:17844
 msgid "Access controls for method-specific access to this path."
 msgstr "Controles de acceso para accesos con métodos específicos para esta ruta."
 
 #. type: deftypevr
-#: doc/guix.texi:15294
+#: doc/guix.texi:17848
 msgid "Available @code{method-access-controls} fields are:"
 msgstr "Los campos disponibles de @code{method-access-controls} son:"
 
 #. type: deftypevr
-#: doc/guix.texi:15295
+#: doc/guix.texi:17849
 #, no-wrap
 msgid "{@code{method-access-controls} parameter} boolean reverse?"
 msgstr "{parámetro de @code{method-access-controls}} boolean reverse?"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:15298
+#: doc/guix.texi:17852
 msgid "If @code{#t}, apply access controls to all methods except the listed methods.  Otherwise apply to only the listed methods."
 msgstr "Si es @code{#t}, los controles de acceso son efectivos con todos los métodos excepto los métodos listados. En otro caso, son efectivos únicamente con los métodos listados."
 
 #. type: deftypevr
-#: doc/guix.texi:15302
+#: doc/guix.texi:17856
 #, no-wrap
 msgid "{@code{method-access-controls} parameter} method-list methods"
 msgstr "{parámetro de @code{method-access-controls}} lista-métodos methods"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:15304
+#: doc/guix.texi:17858
 msgid "Methods to which this access control applies."
 msgstr "Métodos con los cuales este control de acceso es efectivo."
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:15308
+#: doc/guix.texi:17862
 #, no-wrap
 msgid "{@code{method-access-controls} parameter} access-control-list access-controls"
 msgstr "{parámetro de @code{method-access-controls}} lista-control-acceso access-controls"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:15311
-msgid "Access control directives, as a list of strings.  Each string should be one directive, such as \"Order allow,deny\"."
-msgstr "Directivas de control de acceso, como una lista de cadenas. Cada cadena debe ser una directiva, como \"Order allow,deny\"."
+#: doc/guix.texi:17865
+msgid "Access control directives, as a list of strings.  Each string should be one directive, such as @samp{\"Order allow,deny\"}."
+msgstr "Directivas de control de acceso, como una lista de cadenas. Cada cadena debe ser una directiva, como @samp{\"Order allow,deny\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:15317
+#: doc/guix.texi:17871
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer log-debug-history"
 msgstr "{parámetro de @code{cups-configuration}} entero-no-negativo log-debug-history"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:15321
+#: doc/guix.texi:17875
 msgid "Specifies the number of debugging messages that are retained for logging if an error occurs in a print job.  Debug messages are logged regardless of the LogLevel setting."
 msgstr "Especifica el número de mensajes de depuración que se retienen para el registro si sucede un error en un trabajo de impresión. Los mensajes de depuración se registran independientemente de la configuración de ``LogLevel''."
 
 #. type: deftypevr
-#: doc/guix.texi:15323 doc/guix.texi:15344 doc/guix.texi:15351
-#: doc/guix.texi:17501 doc/guix.texi:22228
+#: doc/guix.texi:17877 doc/guix.texi:17898 doc/guix.texi:17905
+#: doc/guix.texi:20190 doc/guix.texi:25074
 msgid "Defaults to @samp{100}."
 msgstr "El valor predeterminado es @samp{100}."
 
 #. type: deftypevr
-#: doc/guix.texi:15325
+#: doc/guix.texi:17879
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} log-level log-level"
 msgstr "{parámetro de @code{cups-configuration}} nivel-registro log-level"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:15328
+#: doc/guix.texi:17882
 msgid "Specifies the level of logging for the ErrorLog file.  The value @code{none} stops all logging while @code{debug2} logs everything."
-msgstr "Especifica el nivel de depuración del fichero ``ErrorLog''. El valor @code{none} inhibe todos los registros mientras que @code{debug2} registra todo."
+msgstr "Especifica el nivel de depuración del archivo ``ErrorLog''. El valor @code{none} inhibe todos los registros mientras que @code{debug2} registra todo."
 
 #. type: deftypevr
-#: doc/guix.texi:15330
+#: doc/guix.texi:17884
 msgid "Defaults to @samp{info}."
 msgstr "El valor predeterminado es @samp{info}"
 
 #. type: deftypevr
-#: doc/guix.texi:15332
+#: doc/guix.texi:17886
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} log-time-format log-time-format"
 msgstr "{parámetro de @code{cups-configuration}} formato-tiempo-registro log-time-format"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:15335
+#: doc/guix.texi:17889
 msgid "Specifies the format of the date and time in the log files.  The value @code{standard} logs whole seconds while @code{usecs} logs microseconds."
-msgstr "Especifica el formato de la fecha y el tiempo en los ficheros de registro. El valor @code{standard} registra con segundos completos mientras que @code{usecs} registra con microsegundos."
+msgstr "Especifica el formato de la fecha y el tiempo en los archivos de registro. El valor @code{standard} registra con segundos completos mientras que @code{usecs} registra con microsegundos."
 
 #. type: deftypevr
-#: doc/guix.texi:15337
+#: doc/guix.texi:17891
 msgid "Defaults to @samp{standard}."
 msgstr "El valor predeterminado es @samp{standard}."
 
 #. type: deftypevr
-#: doc/guix.texi:15339
+#: doc/guix.texi:17893
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer max-clients"
 msgstr "{parámetro de @code{cups-configuration}} entero-no-negativo max-clients"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:15342
+#: doc/guix.texi:17896
 msgid "Specifies the maximum number of simultaneous clients that are allowed by the scheduler."
 msgstr "Especifica el número de clientes simultáneos máximo que son admitidos por el planificador."
 
 #. type: deftypevr
-#: doc/guix.texi:15346
+#: doc/guix.texi:17900
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer max-clients-per-host"
 msgstr "{parámetro de @code{cups-configuration}} entero-no-negativo max-clients-per-host"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:15349
+#: doc/guix.texi:17903
 msgid "Specifies the maximum number of simultaneous clients that are allowed from a single address."
 msgstr "Especifica el número de clientes simultáneos máximo que se permiten desde una única dirección."
 
 #. type: deftypevr
-#: doc/guix.texi:15353
+#: doc/guix.texi:17907
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer max-copies"
 msgstr "{parámetro de @code{cups-configuration}} entero-no-negativo max-copies"
 
 #. type: deftypevr
-#: doc/guix.texi:15356
+#: doc/guix.texi:17910
 msgid "Specifies the maximum number of copies that a user can print of each job."
 msgstr "Especifica el número de copias máximo que una usuaria puede imprimir con cada trabajo."
 
 #. type: deftypevr
-#: doc/guix.texi:15358
+#: doc/guix.texi:17912
 msgid "Defaults to @samp{9999}."
 msgstr "El valor predeterminado es @samp{9999}."
 
 #. type: deftypevr
-#: doc/guix.texi:15360
+#: doc/guix.texi:17914
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer max-hold-time"
 msgstr "{parámetro de @code{cups-configuration}} entero-no-negativo max-hold-time"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:15364
+#: doc/guix.texi:17918
 msgid "Specifies the maximum time a job may remain in the @code{indefinite} hold state before it is canceled.  A value of 0 disables cancellation of held jobs."
 msgstr "Especifica el tiempo máximo que un trabajo puede permanecer en el estado de espera @code{indefinite} antes de su cancelación. Un valor de 0 desactiva la cancelación de trabajos en espera."
 
 #. type: deftypevr
-#: doc/guix.texi:15368
+#: doc/guix.texi:17922
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer max-jobs"
 msgstr "{parámetro de @code{cups-configuration}} entero-no-negativo max-jobs"
 
 #. type: deftypevr
-#: doc/guix.texi:15371
+#: doc/guix.texi:17925
 msgid "Specifies the maximum number of simultaneous jobs that are allowed.  Set to 0 to allow an unlimited number of jobs."
 msgstr "Especifica el número de trabajos simultáneos máximo permitido. El valor 0 permite un número ilimitado de trabajos."
 
 #. type: deftypevr
-#: doc/guix.texi:15373
+#: doc/guix.texi:17927
 msgid "Defaults to @samp{500}."
 msgstr "El valor predeterminado es @samp{500}."
 
 #. type: deftypevr
-#: doc/guix.texi:15375
+#: doc/guix.texi:17929
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer max-jobs-per-printer"
 msgstr "{parámetro de @code{cups-configuration}} entero-no-negativo max-jobs-per-printer"
 
 #. type: deftypevr
-#: doc/guix.texi:15378
+#: doc/guix.texi:17932
 msgid "Specifies the maximum number of simultaneous jobs that are allowed per printer.  A value of 0 allows up to MaxJobs jobs per printer."
 msgstr "Especifica el número de trabajos simultáneos máximo que se permite por impresora. Un valor de 0 permite hasta ``MaxJobs'' por impresora."
 
 #. type: deftypevr
-#: doc/guix.texi:15382
+#: doc/guix.texi:17936
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer max-jobs-per-user"
 msgstr "{parámetro de @code{cups-configuration}} entero-no-negativo max-jobs-per-user"
 
 #. type: deftypevr
-#: doc/guix.texi:15385
+#: doc/guix.texi:17939
 msgid "Specifies the maximum number of simultaneous jobs that are allowed per user.  A value of 0 allows up to MaxJobs jobs per user."
 msgstr "Especifica el número de trabajos simultáneos máximo que se permite por usuaria. Un valor de 0 permite hasta ``MaxJobs'' por usuaria."
 
 #. type: deftypevr
-#: doc/guix.texi:15389
+#: doc/guix.texi:17943
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer max-job-time"
 msgstr "{parámetro de @code{cups-configuration}} entero-no-negativo max-job-time"
@@ -29633,197 +34103,197 @@ msgstr "{parámetro de @code{cups-configuration}} entero-no-negativo max-job-tim
 # FUZZY
 # TODO (MAAV): Revisar, repensar nota, rehacer traducción...
 #. type: deftypevr
-#: doc/guix.texi:15392
-msgid "Specifies the maximum time a job may take to print before it is canceled, in seconds.  Set to 0 to disable cancellation of \"stuck\" jobs."
-msgstr "Especifica el tiempo de duración de la impresión máximo que un trabajo puede tomar antes de ser cancelado, en segundos. El valor 0 desactiva la cancelación de trabajos ``atascados''@footnote{El estado es @samp{stuck} en inglés.}."
+#: doc/guix.texi:17946
+msgid "Specifies the maximum time a job may take to print before it is canceled, in seconds.  Set to 0 to disable cancellation of ``stuck'' jobs."
+msgstr "Especifica el tiempo de duración de la impresión máximo que un trabajo puede tomar antes de ser cancelado, en segundos. El valor 0 desactiva la cancelación de trabajos ``atascados''."
 
 #. type: deftypevr
-#: doc/guix.texi:15394
+#: doc/guix.texi:17948
 msgid "Defaults to @samp{10800}."
 msgstr "El valor predeterminado es @samp{10800}."
 
 #. type: deftypevr
-#: doc/guix.texi:15396
+#: doc/guix.texi:17950
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer max-log-size"
 msgstr "{parámetro de @code{cups-configuration}} entero-no-negativo max-log-size"
 
 #. type: deftypevr
-#: doc/guix.texi:15399
+#: doc/guix.texi:17953
 msgid "Specifies the maximum size of the log files before they are rotated, in bytes.  The value 0 disables log rotation."
-msgstr "Especifica el tamaño máximo de los ficheros de registro antes de su rotación, en bytes. El valor 0 desactiva la rotación de registros."
+msgstr "Especifica el tamaño máximo de los archivos de registro antes de su rotación, en bytes. El valor 0 desactiva la rotación de registros."
 
 #. type: deftypevr
-#: doc/guix.texi:15401
+#: doc/guix.texi:17955
 msgid "Defaults to @samp{1048576}."
 msgstr "El valor predeterminado es @samp{1048576}."
 
 #. type: deftypevr
-#: doc/guix.texi:15403
+#: doc/guix.texi:17957
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer multiple-operation-timeout"
 msgstr "{parámetro de @code{cups-configuration}} entero-no-negativo multiple-operation-timeout"
 
 #. type: deftypevr
-#: doc/guix.texi:15406
+#: doc/guix.texi:17960
 msgid "Specifies the maximum amount of time to allow between files in a multiple file print job, in seconds."
-msgstr "Especifica el tiempo máximo permitido entre ficheros en un trabajo de impresión con múltiples ficheros, en segundos."
+msgstr "Especifica el tiempo máximo permitido entre archivos en un trabajo de impresión con múltiples archivos, en segundos."
 
 #. type: deftypevr
-#: doc/guix.texi:15408 doc/guix.texi:15619 doc/guix.texi:21820
+#: doc/guix.texi:17962 doc/guix.texi:18173 doc/guix.texi:24666
 msgid "Defaults to @samp{300}."
 msgstr "El valor predeterminado es @samp{300}."
 
 #. type: deftypevr
-#: doc/guix.texi:15410
+#: doc/guix.texi:17964
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} string page-log-format"
 msgstr "{parámetro de @code{cups-configuration}} string page-log-format"
 
 #. type: deftypevr
-#: doc/guix.texi:15415
+#: doc/guix.texi:17969
 msgid "Specifies the format of PageLog lines.  Sequences beginning with percent (@samp{%}) characters are replaced with the corresponding information, while all other characters are copied literally.  The following percent sequences are recognized:"
 msgstr "Especifica el formato de las líneas PageLog. Las secuencias de caracteres que comiencen con el signo de porcentaje (@samp{%}) se reemplazan con la información correspondiente, mientras que el resto de caracteres se copia de manera literal. Se reconocen las siguientes secuencias:"
 
 #. type: item
-#: doc/guix.texi:15417
+#: doc/guix.texi:17971
 #, no-wrap
 msgid "%%"
 msgstr "%%"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:15419
+#: doc/guix.texi:17973
 msgid "insert a single percent character"
 msgstr "inserta literalmente un símbolo de porcentaje"
 
 #. type: item
-#: doc/guix.texi:15420
+#: doc/guix.texi:17974
 #, no-wrap
 msgid "%@{name@}"
 msgstr "%@{nombre@}"
 
 #. type: table
-#: doc/guix.texi:15422
+#: doc/guix.texi:17976
 msgid "insert the value of the specified IPP attribute"
 msgstr "inserta el valor del atributo IPP especificado"
 
 #. type: item
-#: doc/guix.texi:15423
+#: doc/guix.texi:17977
 #, no-wrap
 msgid "%C"
 msgstr "%C"
 
 #. type: table
-#: doc/guix.texi:15425
+#: doc/guix.texi:17979
 msgid "insert the number of copies for the current page"
 msgstr "inserta el número de copias para la página actual"
 
 #. type: item
-#: doc/guix.texi:15426
+#: doc/guix.texi:17980
 #, no-wrap
 msgid "%P"
 msgstr "%P"
 
 #. type: table
-#: doc/guix.texi:15428
+#: doc/guix.texi:17982
 msgid "insert the current page number"
 msgstr "inserta el número de página actual"
 
 #. type: item
-#: doc/guix.texi:15429
+#: doc/guix.texi:17983
 #, no-wrap
 msgid "%T"
 msgstr "%T"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:15431
+#: doc/guix.texi:17985
 msgid "insert the current date and time in common log format"
 msgstr "inserta la fecha y hora actuales en el formato común de registro"
 
 #. type: item
-#: doc/guix.texi:15432
+#: doc/guix.texi:17986
 #, no-wrap
 msgid "%j"
 msgstr "%j"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:15434
+#: doc/guix.texi:17988
 msgid "insert the job ID"
 msgstr "introduce el ID del trabajo"
 
 #. type: item
-#: doc/guix.texi:15435 doc/guix.texi:17111
+#: doc/guix.texi:17989 doc/guix.texi:19800
 #, no-wrap
 msgid "%p"
 msgstr "%p"
 
 #. type: table
-#: doc/guix.texi:15437
+#: doc/guix.texi:17991
 msgid "insert the printer name"
 msgstr "inserta el nombre de impresora"
 
 #. type: item
-#: doc/guix.texi:15438 doc/guix.texi:17134
+#: doc/guix.texi:17992 doc/guix.texi:19823
 #, no-wrap
 msgid "%u"
 msgstr "%u"
 
 #. type: table
-#: doc/guix.texi:15440
+#: doc/guix.texi:17994
 msgid "insert the username"
 msgstr "inserta el nombre de usuaria"
 
 #. type: deftypevr
-#: doc/guix.texi:15446
+#: doc/guix.texi:18000
 msgid "A value of the empty string disables page logging.  The string @code{%p %u %j %T %P %C %@{job-billing@} %@{job-originating-host-name@} %@{job-name@} %@{media@} %@{sides@}} creates a page log with the standard items."
 msgstr "La cadena vacía desactiva el registro de página. La cadena @code{%p %u %j %T %P %C %@{job-billing@} %@{job-originating-host-name@} %@{job-name@} %@{media@} %@{sides@}} crea un registro de página con los elementos estándar."
 
 #. type: deftypevr
-#: doc/guix.texi:15450
+#: doc/guix.texi:18004
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} environment-variables environment-variables"
 msgstr "{parámetro de @code{cups-configuration}} variables-entorno environment-variables"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:15453
+#: doc/guix.texi:18007
 msgid "Passes the specified environment variable(s) to child processes; a list of strings."
 msgstr "Proporciona la o las variables de entorno especificadas a los procesos iniciados; una lista de cadenas."
 
 #. type: deftypevr
-#: doc/guix.texi:15457
+#: doc/guix.texi:18011
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} policy-configuration-list policies"
 msgstr "{parámetro de @code{cups-configuration}} lista-policy-configuration policies"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:15459
+#: doc/guix.texi:18013
 msgid "Specifies named access control policies."
 msgstr "Especifica las políticas de control de acceso con nombre."
 
 #. type: deftypevr
-#: doc/guix.texi:15461
+#: doc/guix.texi:18015
 msgid "Available @code{policy-configuration} fields are:"
 msgstr "Los campos disponibles de @code{policy-configuration} son:"
 
 #. type: deftypevr
-#: doc/guix.texi:15462
+#: doc/guix.texi:18016
 #, no-wrap
 msgid "{@code{policy-configuration} parameter} string name"
 msgstr "{parámetro de @code{policy-configuration}} string name"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:15464
+#: doc/guix.texi:18018
 msgid "Name of the policy."
 msgstr "El nombre de la política."
 
 #. type: deftypevr
-#: doc/guix.texi:15466
+#: doc/guix.texi:18020
 #, no-wrap
 msgid "{@code{policy-configuration} parameter} string job-private-access"
 msgstr "{parámetro de @code{policy-configuration}} string job-private-access"
@@ -29832,110 +34302,110 @@ msgstr "{parámetro de @code{policy-configuration}} string job-private-access"
 # TODO (MAAV): Repensar map -> se sustituye con
 #              y reifies -> se traduce en
 #. type: deftypevr
-#: doc/guix.texi:15476
+#: doc/guix.texi:18030
 msgid "Specifies an access list for a job's private values.  @code{@@ACL} maps to the printer's requesting-user-name-allowed or requesting-user-name-denied values.  @code{@@OWNER} maps to the job's owner.  @code{@@SYSTEM} maps to the groups listed for the @code{system-group} field of the @code{files-config} configuration, which is reified into the @code{cups-files.conf(5)} file.  Other possible elements of the access list include specific user names, and @code{@@@var{group}} to indicate members of a specific group.  The access list may also be simply @code{all} or @code{default}."
-msgstr "Especifica una lista de acceso para los valores privados de un trabajo. @code{@@ACL} se sustituye con los valores ``requesting-user-name-allowed'' o ``requesting-user-name-denied'' de la impresora. @code{@@OWNER} se sustituye con la propietaria del trabajo. @code{@@SYSTEM} se sustituye con los grupos enumerados en el campo @code{system-group} de la configuración @code{files-config}, que se traduce en el fichero @code{cups-files.conf(5)}. Otros elementos de configuración de la lista de acceso posibles incluyen nombres de usuaria específicos y @code{@@@var{group}} para indicar miembros de un grupo específico. La lista de acceso también puede simplemente ser @code{all} o @code{default}."
+msgstr "Especifica una lista de acceso para los valores privados de un trabajo. @code{@@ACL} se sustituye con los valores ``requesting-user-name-allowed'' o ``requesting-user-name-denied'' de la impresora. @code{@@OWNER} se sustituye con la propietaria del trabajo. @code{@@SYSTEM} se sustituye con los grupos enumerados en el campo @code{system-group} de la configuración @code{files-config}, que se traduce en el archivo @code{cups-files.conf(5)}. Otros elementos de configuración de la lista de acceso posibles incluyen nombres de usuaria específicos y @code{@@@var{group}} para indicar miembros de un grupo específico. La lista de acceso también puede simplemente ser @code{all} o @code{default}."
 
 #. type: deftypevr
-#: doc/guix.texi:15478 doc/guix.texi:15500
+#: doc/guix.texi:18032 doc/guix.texi:18054
 msgid "Defaults to @samp{\"@@OWNER @@SYSTEM\"}."
 msgstr "El valor predeterminado es @samp{\"@@OWNER @@SYSTEM\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:15480
+#: doc/guix.texi:18034
 #, no-wrap
 msgid "{@code{policy-configuration} parameter} string job-private-values"
 msgstr "{parámetro de @code{policy-configuration}} string job-private-values"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:15483 doc/guix.texi:15505
+#: doc/guix.texi:18037 doc/guix.texi:18059
 msgid "Specifies the list of job values to make private, or @code{all}, @code{default}, or @code{none}."
 msgstr "Especifica la lista de valores de trabajos a hacer privados, o bien @code{all}, @code{default}, o @code{none}."
 
 #. type: deftypevr
-#: doc/guix.texi:15486
+#: doc/guix.texi:18040
 msgid "Defaults to @samp{\"job-name job-originating-host-name job-originating-user-name phone\"}."
 msgstr "El valor predeterminado es @samp{\"job-name job-originating-host-name job-originating-user-name phone\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:15488
+#: doc/guix.texi:18042
 #, no-wrap
 msgid "{@code{policy-configuration} parameter} string subscription-private-access"
 msgstr "{parámetro de @code{policy-configuration}} string subscription-private-access"
 
 #. type: deftypevr
-#: doc/guix.texi:15498
+#: doc/guix.texi:18052
 msgid "Specifies an access list for a subscription's private values.  @code{@@ACL} maps to the printer's requesting-user-name-allowed or requesting-user-name-denied values.  @code{@@OWNER} maps to the job's owner.  @code{@@SYSTEM} maps to the groups listed for the @code{system-group} field of the @code{files-config} configuration, which is reified into the @code{cups-files.conf(5)} file.  Other possible elements of the access list include specific user names, and @code{@@@var{group}} to indicate members of a specific group.  The access list may also be simply @code{all} or @code{default}."
-msgstr "Especifica una lista de acceso para los valores privados de una subscripción. @code{@@ACL} se sustituye con los valores ``requesting-user-name-allowed'' o ``requesting-user-name-denied'' de la impresora. @code{@@OWNER} se sustituye con la propietaria del trabajo. @code{@@SYSTEM} se sustituye con los grupos enumerados en el campo @code{system-group} de la configuración @code{files-config}, que se traduce en el fichero @code{cups-files.conf(5)}. Otros elementos de configuración de la lista de acceso posibles incluyen nombres de usuaria específicos y @code{@@@var{group}} para indicar miembros de un grupo específico. La lista de acceso también puede simplemente ser @code{all} o @code{default}."
+msgstr "Especifica una lista de acceso para los valores privados de una subscripción. @code{@@ACL} se sustituye con los valores ``requesting-user-name-allowed'' o ``requesting-user-name-denied'' de la impresora. @code{@@OWNER} se sustituye con la propietaria del trabajo. @code{@@SYSTEM} se sustituye con los grupos enumerados en el campo @code{system-group} de la configuración @code{files-config}, que se traduce en el archivo @code{cups-files.conf(5)}. Otros elementos de configuración de la lista de acceso posibles incluyen nombres de usuaria específicos y @code{@@@var{group}} para indicar miembros de un grupo específico. La lista de acceso también puede simplemente ser @code{all} o @code{default}."
 
 #. type: deftypevr
-#: doc/guix.texi:15502
+#: doc/guix.texi:18056
 #, no-wrap
 msgid "{@code{policy-configuration} parameter} string subscription-private-values"
 msgstr "{parámetro de @code{policy-configuration}} string subscription-private-values"
 
 #. type: deftypevr
-#: doc/guix.texi:15508
+#: doc/guix.texi:18062
 msgid "Defaults to @samp{\"notify-events notify-pull-method notify-recipient-uri notify-subscriber-user-name notify-user-data\"}."
 msgstr "El valor predeterminado es @samp{\"notify-events notify-pull-method notify-recipient-uri notify-subscriber-user-name notify-user-data\"}."
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:15510
+#: doc/guix.texi:18064
 #, no-wrap
 msgid "{@code{policy-configuration} parameter} operation-access-control-list access-controls"
 msgstr "{parámetro de @code{policy-configuration}} lista-operation-access-control access-controls"
 
 #. type: deftypevr
-#: doc/guix.texi:15512
+#: doc/guix.texi:18066
 msgid "Access control by IPP operation."
 msgstr "Control de acceso para operaciones de IPP."
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:15517
+#: doc/guix.texi:18071
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} boolean-or-non-negative-integer preserve-job-files"
 msgstr "{parámetro de @code{cups-configuration}} boolean-o-entero-no-negativo preserve-job-files"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:15522
+#: doc/guix.texi:18076
 msgid "Specifies whether job files (documents) are preserved after a job is printed.  If a numeric value is specified, job files are preserved for the indicated number of seconds after printing.  Otherwise a boolean value applies indefinitely."
-msgstr "Especifica si los ficheros del trabajo (documentos) se preservan tras la impresión de un trabajo. Si se especifica un valor numérico, los ficheros del trabajo se preservan durante el número indicado de segundos tras la impresión. En otro caso, el valor booleano determina la conservación de manera indefinida."
+msgstr "Especifica si los archivos del trabajo (documentos) se preservan tras la impresión de un trabajo. Si se especifica un valor numérico, los archivos del trabajo se preservan durante el número indicado de segundos tras la impresión. En otro caso, el valor booleano determina la conservación de manera indefinida."
 
 #. type: deftypevr
-#: doc/guix.texi:15524
+#: doc/guix.texi:18078
 msgid "Defaults to @samp{86400}."
 msgstr "El valor predeterminado es @samp{86400}."
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:15526
+#: doc/guix.texi:18080
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} boolean-or-non-negative-integer preserve-job-history"
 msgstr "{parámetro de @code{cups-configuration}} boolean-o-entero-no-negativo preserve-job-history"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:15531
+#: doc/guix.texi:18085
 msgid "Specifies whether the job history is preserved after a job is printed.  If a numeric value is specified, the job history is preserved for the indicated number of seconds after printing.  If @code{#t}, the job history is preserved until the MaxJobs limit is reached."
 msgstr "Especifica si la historia del trabajo se preserva tras la impresión de un trabajo. Si se especifica un valor numérico, la historia del trabajo se conserva tras la impresión el número de segundos indicado. Si es @code{#t}, la historia del trabajo se conserva hasta que se alcance el límite de trabajos ``MaxJobs''."
 
 #. type: deftypevr
-#: doc/guix.texi:15535
+#: doc/guix.texi:18089
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer reload-timeout"
 msgstr "{parámetro de @code{cups-configuration}} entero-no-negativo reload-timeout"
 
 #. type: deftypevr
-#: doc/guix.texi:15538
+#: doc/guix.texi:18092
 msgid "Specifies the amount of time to wait for job completion before restarting the scheduler."
 msgstr "Especifica el tiempo a esperar hasta la finalización del trabajo antes de reiniciar el planificador."
 
 #. type: deftypevr
-#: doc/guix.texi:15542
+#: doc/guix.texi:18096
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} string rip-cache"
 msgstr "{parámetro de @code{cups-configuration}} string rip-cache"
@@ -29947,97 +34417,97 @@ msgstr "{parámetro de @code{cups-configuration}} string rip-cache"
 # de la documentación, pero debería buscar una traducción más específica
 # para bitmap.
 #. type: deftypevr
-#: doc/guix.texi:15545
+#: doc/guix.texi:18099
 msgid "Specifies the maximum amount of memory to use when converting documents into bitmaps for a printer."
 msgstr "Especifica la cantidad máxima de memoria usada durante la conversión de documentos en imágenes para una impresora."
 
 #. type: deftypevr
-#: doc/guix.texi:15547
+#: doc/guix.texi:18101
 msgid "Defaults to @samp{\"128m\"}."
 msgstr "El valor predeterminado es @samp{\"128m\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:15549
+#: doc/guix.texi:18103
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} string server-admin"
 msgstr "{parámetro de @code{cups-configuration}} string server-admin"
 
 #. type: deftypevr
-#: doc/guix.texi:15551
+#: doc/guix.texi:18105
 msgid "Specifies the email address of the server administrator."
 msgstr "Especifica la dirección de correo electrónico de la administradora del servidor."
 
 #. type: deftypevr
-#: doc/guix.texi:15553
+#: doc/guix.texi:18107
 msgid "Defaults to @samp{\"root@@localhost.localdomain\"}."
 msgstr "El valor predeterminado es @samp{\"root@@localhost.localdomain\"}."
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:15555
+#: doc/guix.texi:18109
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} host-name-list-or-* server-alias"
 msgstr "{parámetro de @code{cups-configuration}} lista-nombres-máquina-o-* server-alias"
 
 # TODO (MAAV): Revisar ataques.
 #. type: deftypevr
-#: doc/guix.texi:15563
+#: doc/guix.texi:18117
 msgid "The ServerAlias directive is used for HTTP Host header validation when clients connect to the scheduler from external interfaces.  Using the special name @code{*} can expose your system to known browser-based DNS rebinding attacks, even when accessing sites through a firewall.  If the auto-discovery of alternate names does not work, we recommend listing each alternate name with a ServerAlias directive instead of using @code{*}."
 msgstr "La directiva ServerAlias se usa para la validación de la cabecera HTTP Host cuando los clientes se conecten al planificador desde interfaces externas. El uso del nombre especial @code{*} puede exponer su sistema a ataques basados en el navegador web de reenlazado DNS ya conocidos, incluso cuando se accede a páginas a través de un cortafuegos. Si el descubrimiento automático de nombres alternativos no funcionase, le recomendamos enumerar cada nombre alternativo con una directiva ServerAlias en vez del uso de @code{*}."
 
 #. type: deftypevr
-#: doc/guix.texi:15565
+#: doc/guix.texi:18119
 msgid "Defaults to @samp{*}."
 msgstr "El valor predeterminado es @samp{*}."
 
 #. type: deftypevr
-#: doc/guix.texi:15567
+#: doc/guix.texi:18121
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} string server-name"
 msgstr "{parámetro de @code{cups-configuration}} string server-name"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:15569
+#: doc/guix.texi:18123
 msgid "Specifies the fully-qualified host name of the server."
 msgstr "Especifica el nombre de máquina completamente cualificado del servidor."
 
 #. type: deftypevr
-#: doc/guix.texi:15571 doc/guix.texi:19353 doc/guix.texi:19397
+#: doc/guix.texi:18125 doc/guix.texi:22043 doc/guix.texi:22087
 msgid "Defaults to @samp{\"localhost\"}."
 msgstr "El valor predeterminado es @samp{\"localhost\"}."
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:15573
+#: doc/guix.texi:18127
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} server-tokens server-tokens"
 msgstr "{parámetro de @code{cups-configuration}} server-tokens server-tokens"
 
 #. type: deftypevr
-#: doc/guix.texi:15581
+#: doc/guix.texi:18135
 msgid "Specifies what information is included in the Server header of HTTP responses.  @code{None} disables the Server header.  @code{ProductOnly} reports @code{CUPS}.  @code{Major} reports @code{CUPS 2}.  @code{Minor} reports @code{CUPS 2.0}.  @code{Minimal} reports @code{CUPS 2.0.0}.  @code{OS} reports @code{CUPS 2.0.0 (@var{uname})} where @var{uname} is the output of the @code{uname} command.  @code{Full} reports @code{CUPS 2.0.0 (@var{uname}) IPP/2.0}."
 msgstr "Especifica qué información se incluye en la cabecera Server de las respuestas HTTP. @code{None} desactiva la cabecera Server. @code{ProductOnly} proporciona @code{CUPS}. @code{Major} proporciona @code{CUPS 2}. @code{Minor} proporciona @code{CUPS 2.0}. @code{Minimap} proporciona @code{CUPS 2.0.0}. @code{OS} proporciona @code{CUPS 2.0.0 (@var{uname})} donde @var{uname} es la salida de la orden @code{uname}. @code{Full} proporciona @code{CUPS 2.0.0 (@var{uname}) IPP/2.0}."
 
 #. type: deftypevr
-#: doc/guix.texi:15583
+#: doc/guix.texi:18137
 msgid "Defaults to @samp{Minimal}."
 msgstr "El valor predeterminado es @samp{Minimal}."
 
 #. type: deftypevr
-#: doc/guix.texi:15585
+#: doc/guix.texi:18139
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} multiline-string-list ssl-listen"
 msgstr "{parámetro de @code{cups-configuration}} lista-cadenas-multilínea ssl-listen"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:15590
+#: doc/guix.texi:18144
 msgid "Listens on the specified interfaces for encrypted connections.  Valid values are of the form @var{address}:@var{port}, where @var{address} is either an IPv6 address enclosed in brackets, an IPv4 address, or @code{*} to indicate all addresses."
 msgstr "Escucha en las interfaces especificadas a la espera de conexiones cifradas. Se aceptan valores con la forma @var{dirección}:@var{puerto}, siendo @var{dirección} o bien una dirección IPv6 entre corchetes, o bien una dirección IPv4, o bien @code{*} que representa todas las direcciones."
 
 #. type: deftypevr
-#: doc/guix.texi:15594
+#: doc/guix.texi:18148
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} ssl-options ssl-options"
 msgstr "{parámetro de @code{cups-configuration}} opciones-ssl ssl-options"
@@ -30045,13 +34515,13 @@ msgstr "{parámetro de @code{cups-configuration}} opciones-ssl ssl-options"
 # FUZZY
 # TODO (MAAV): Repensar
 #. type: deftypevr
-#: doc/guix.texi:15604
+#: doc/guix.texi:18158
 msgid "Sets encryption options.  By default, CUPS only supports encryption using TLS v1.0 or higher using known secure cipher suites.  Security is reduced when @code{Allow} options are used, and enhanced when @code{Deny} options are used.  The @code{AllowRC4} option enables the 128-bit RC4 cipher suites, which are required for some older clients.  The @code{AllowSSL3} option enables SSL v3.0, which is required for some older clients that do not support TLS v1.0.  The @code{DenyCBC} option disables all CBC cipher suites.  The @code{DenyTLS1.0} option disables TLS v1.0 support - this sets the minimum protocol version to TLS v1.1."
 msgstr "Determina las opciones de cifrado. De manera predeterminada, CUPS permite únicamente el cifrado mediante TLS v1.0 o superior mediante el uso de modelos de cifrado de conocida seguridad. La seguridad se reduce cuando se usan opciones @code{Allow} y se aumenta cuando se usan opciones @code{Deny}. La opción @code{AllowRC4} permite el cifrado RC4 de 128 bits, necesario para algunos clientes antiguos que no implementan los modelos más modernos. La opción @code{AllowSSL3} desactiva SSL v3.0, necesario para algunos clientes antiguos que no implementan TLS v1.0. La opción @code{DenyCBC} desactiva todos los modelos de cifrado CBC. La opción @code{DenyTLS1.0} desactiva TLS v1.0---esto fuerza la versión mínima del protocolo a TLS v1.1."
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:15608
+#: doc/guix.texi:18162
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} boolean strict-conformance?"
 msgstr "{parámetro de @code{cups-configuration}} boolean strict-conformance?"
@@ -30059,79 +34529,79 @@ msgstr "{parámetro de @code{cups-configuration}} boolean strict-conformance?"
 # FUZZY
 # TODO (MAAV): Repensar.
 #. type: deftypevr
-#: doc/guix.texi:15611
+#: doc/guix.texi:18165
 msgid "Specifies whether the scheduler requires clients to strictly adhere to the IPP specifications."
 msgstr "Especifica si el planificador exige que los clientes se adhieran de manera estricta a las especificaciones IPP."
 
 #. type: deftypevr
-#: doc/guix.texi:15615
+#: doc/guix.texi:18169
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer timeout"
 msgstr "{parámetro de @code{cups-configuration}} entero-no-negativo timeout"
 
 #. type: deftypevr
-#: doc/guix.texi:15617
+#: doc/guix.texi:18171
 msgid "Specifies the HTTP request timeout, in seconds."
 msgstr "Especifica el plazo de las peticiones HTTP, en segundos."
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:15622
+#: doc/guix.texi:18176
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} boolean web-interface?"
 msgstr "{parámetro de @code{cups-configuration}} boolean web-interface?"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:15624
+#: doc/guix.texi:18178
 msgid "Specifies whether the web interface is enabled."
 msgstr "Especifica si se debe activar la interfaz web."
 
 #. type: Plain text
-#: doc/guix.texi:15634
+#: doc/guix.texi:18188
 msgid "At this point you're probably thinking ``oh dear, Guix manual, I like you but you can stop already with the configuration options''.  Indeed.  However, one more point: it could be that you have an existing @code{cupsd.conf} that you want to use.  In that case, you can pass an @code{opaque-cups-configuration} as the configuration of a @code{cups-service-type}."
-msgstr "En este punto probablemente esté pensando, ``querido manual de Guix, me gusta todo esto, pero... ¡¿cuando se acaban las opciones de configuración?!''. De hecho ya terminan. No obstante, hay un punto más: puede ser que ya tenga un fichero @code{cupsd.conf} que desee usar. En ese caso, puede proporcionar un objeto @code{opaque-cups-configuration} como la configuración de @code{cups-service-type}."
+msgstr "En este punto probablemente esté pensando, ``querido manual de Guix, me gusta todo esto, pero... ¡¿cuando se acaban las opciones de configuración?!''. De hecho ya terminan. No obstante, hay un punto más: puede ser que ya tenga un archivo @code{cupsd.conf} que desee usar. En ese caso, puede proporcionar un objeto @code{opaque-cups-configuration} como la configuración de @code{cups-service-type}."
 
 #. type: Plain text
-#: doc/guix.texi:15636
+#: doc/guix.texi:18190
 msgid "Available @code{opaque-cups-configuration} fields are:"
 msgstr "Los campos disponibles de @code{opaque-cups-configuration} son:"
 
 #. type: deftypevr
-#: doc/guix.texi:15637
+#: doc/guix.texi:18191
 #, no-wrap
 msgid "{@code{opaque-cups-configuration} parameter} package cups"
 msgstr "{parámetro de @code{opaque-cups-configuration}} paquete cups"
 
 #. type: deftypevr
-#: doc/guix.texi:15641
+#: doc/guix.texi:18195
 #, no-wrap
 msgid "{@code{opaque-cups-configuration} parameter} string cupsd.conf"
 msgstr "{parámetro de @code{opaque-cups-configuration}} string cupsd.conf"
 
 #. type: deftypevr
-#: doc/guix.texi:15643
+#: doc/guix.texi:18197
 msgid "The contents of the @code{cupsd.conf}, as a string."
 msgstr "El contenido de @code{cupsd.conf}, como una cadena."
 
 #. type: deftypevr
-#: doc/guix.texi:15645
+#: doc/guix.texi:18199
 #, no-wrap
 msgid "{@code{opaque-cups-configuration} parameter} string cups-files.conf"
 msgstr "{parámetro de @code{opaque-cups-configuration}} string cups-files.conf"
 
 #. type: deftypevr
-#: doc/guix.texi:15647
+#: doc/guix.texi:18201
 msgid "The contents of the @code{cups-files.conf} file, as a string."
-msgstr "El contenido del fichero @code{cups-files.conf}, como una cadena."
+msgstr "El contenido del archivo @code{cups-files.conf}, como una cadena."
 
 #. type: Plain text
-#: doc/guix.texi:15652
+#: doc/guix.texi:18206
 msgid "For example, if your @code{cupsd.conf} and @code{cups-files.conf} are in strings of the same name, you could instantiate a CUPS service like this:"
-msgstr "Por ejemplo, si el contenido de sus ficheros @code{cupsd.conf} y @code{cups-files.conf} estuviese en cadenas del mismo nombre, podría instanciar un servicio CUPS de esta manera:"
+msgstr "Por ejemplo, si el contenido de sus archivos @code{cupsd.conf} y @code{cups-files.conf} estuviese en cadenas del mismo nombre, podría instanciar un servicio CUPS de esta manera:"
 
 #. type: lisp
-#: doc/guix.texi:15658
+#: doc/guix.texi:18212
 #, no-wrap
 msgid ""
 "(service cups-service-type\n"
@@ -30145,200 +34615,238 @@ msgstr ""
 "           (cups-files.conf cups-files.conf)))\n"
 
 #. type: Plain text
-#: doc/guix.texi:15669
+#: doc/guix.texi:18223
 msgid "The @code{(gnu services desktop)} module provides services that are usually useful in the context of a ``desktop'' setup---that is, on a machine running a graphical display server, possibly with graphical user interfaces, etc.  It also defines services that provide specific desktop environments like GNOME, Xfce or MATE."
 msgstr "El módulo @code{(gnu services desktop)} proporciona servicios que son útiles habitualmente en el contexto de una configuración de ``escritorio''---es decir, en una máquina que ejecute un servidor gráfico, posiblemente con interfaces gráficas, etcétera. También define servicios que proporcionan entornos de escritorio específicos como GNOME, Xfce o MATE."
 
 #. type: Plain text
-#: doc/guix.texi:15673
+#: doc/guix.texi:18227
 msgid "To simplify things, the module defines a variable containing the set of services that users typically expect on a machine with a graphical environment and networking:"
 msgstr "Para simplificar las cosas, el módulo define una variable que contiene el conjunto de servicios que las usuarias esperarían de manera habitual junto a un entorno gráfico y de red:"
 
 #. type: defvr
-#: doc/guix.texi:15674
+#: doc/guix.texi:18228
 #, no-wrap
 msgid "{Scheme Variable} %desktop-services"
 msgstr "{Variable Scheme} %desktop-services"
 
 #. type: defvr
-#: doc/guix.texi:15677
+#: doc/guix.texi:18231
 msgid "This is a list of services that builds upon @code{%base-services} and adds or adjusts services for a typical ``desktop'' setup."
 msgstr "Es una lista de servicios que se construye en base a @code{%base-services} y añade o ajusta servicios para una configuración de ``escritorio'' típica."
 
 # FUZZY
 # TODO (MAAV): Seat manager -> gestor de asientos??? Repensar.
 #. type: defvr
-#: doc/guix.texi:15688
+#: doc/guix.texi:18242
 msgid "In particular, it adds a graphical login manager (@pxref{X Window, @code{gdm-service-type}}), screen lockers, a network management tool (@pxref{Networking Services, @code{network-manager-service-type}}) with modem support (@pxref{Networking Services, @code{modem-manager-service-type}}), energy and color management services, the @code{elogind} login and seat manager, the Polkit privilege service, the GeoClue location service, the AccountsService daemon that allows authorized users change system passwords, an NTP client (@pxref{Networking Services}), the Avahi daemon, and has the name service switch service configured to be able to use @code{nss-mdns} (@pxref{Name Service Switch, mDNS})."
 msgstr "En particular, añade un gestor de ingreso al sistema gráfico (@pxref{X Window, @code{gdm-service-type}}), herramientas para el bloqueo de la pantalla, una herramienta de gestión de redes (@pxref{Networking Services, @code{network-manager-service-type}}) y gestión de modem (@pxref{Networking Services, @code{modem-manager-service-type}}), servicios de gestión de la energía y el color, el gestor de asientos e ingresos al sistema @code{elogind}, el servicio de privilegios Polkit, el servicio de geolocalización GeoClue, el daemon AccountsService que permite a las usuarias autorizadas el cambio de contraseñas del sistema, un cliente NTP (@pxref{Networking Services}), el daemon Avahi y configura el servicio del selector de servicios de nombres para que pueda usar @code{nss-mdns} (@pxref{Name Service Switch, mDNS}). "
 
 #. type: Plain text
-#: doc/guix.texi:15693
+#: doc/guix.texi:18247
 msgid "The @code{%desktop-services} variable can be used as the @code{services} field of an @code{operating-system} declaration (@pxref{operating-system Reference, @code{services}})."
 msgstr "La variable @code{%desktop-services} puede usarse como el campo @code{services} de una declaración @code{operating-system} (@pxref{operating-system Reference, @code{services}})."
 
 #. type: Plain text
-#: doc/guix.texi:15716
-msgid "Additionally, the @code{gnome-desktop-service-type}, @code{xfce-desktop-service}, @code{mate-desktop-service-type} and @code{enlightenment-desktop-service-type} procedures can add GNOME, Xfce, MATE and/or Enlightenment to a system.  To ``add GNOME'' means that system-level services like the backlight adjustment helpers and the power management utilities are added to the system, extending @code{polkit} and @code{dbus} appropriately, allowing GNOME to operate with elevated privileges on a limited number of special-purpose system interfaces.  Additionally, adding a service made by @code{gnome-desktop-service-type} adds the GNOME metapackage to the system profile.  Likewise, adding the Xfce service not only adds the @code{xfce} metapackage to the system profile, but it also gives the Thunar file manager the ability to open a ``root-mode'' file management window, if the user authenticates using the administrator's password via the standard polkit graphical interface.  To ``add MATE'' means that @code{polkit} and @code{dbus} are extended appropriately, allowing MATE to operate with elevated privileges on a limited number of special-purpose system interfaces.  Additionally, adding a service of type @code{mate-desktop-service-type} adds the MATE metapackage to the system profile.  ``Adding Enlightenment'' means that @code{dbus} is extended appropriately, and several of Enlightenment's binaries are set as setuid, allowing Enlightenment's screen locker and other functionality to work as expected."
-msgstr "De manera adicional, los procedimientos @code{gnome-desktop-service-type}, @code{xfce-desktop-service}, @code{mate-desktop-service-type} y @code{enlightenment-desktop-service-type} pueden añadir GNOME, Xfce, MATE y/o Enlightenment al sistema. ``Añadir GNOME'' significa que servicios a nivel de sistema como las herramientas de ayuda para el ajuste de la intensidad de luz de la pantalla y de gestión de energía se añaden al sistema, extendiendo @code{polkit} y @code{dbus} de manera apropiada, y permitiendo a GNOME operar con privilegios elevados en un número de interfaces del sistema de propósito especial. Además, la adición de un servicio generado por @code{gnome-desktop-service-type} añade el metapaquete GNOME al perfil del sistema. Del mismo modo, la adición del servicio Xfde no añade únicamente el metapaquete @code{xfce} al perfil del sistema, sino que también le proporciona al gestor de ficheros Thunar la posibilidad de abrir una ventana de gestión de ficheros en ``modo root'', si la usuaria se identifica mediante la contraseña de administración a través de la interfaz gráfica estándar polkit. ``Añadir MATE'' significa que @code{polkit} y @code{dbus} se extienden de manera apropiada, permitiendo a MATE operar con privilegios elevados en un número de interfaces del sistema de propósito especial. De manera adicional, la adición de un servicio de tipo @code{mate-desktop-service-type} añade el metapaquete MATE al perfil del sistema. ``Añadir Enlightenment'' significa que @code{dbus} se extiende de manera apropiada y varios ejecutables de Enlightenment se marcan como ``setuid'', para permitir el funcionamiento esperado del sistema bloqueo de pantalla de Enlightenment entre otras funcionalidades."
+#: doc/guix.texi:18270
+msgid "Additionally, the @code{gnome-desktop-service-type}, @code{xfce-desktop-service}, @code{mate-desktop-service-type}, @code{lxqt-desktop-service-type} and @code{enlightenment-desktop-service-type} procedures can add GNOME, Xfce, MATE and/or Enlightenment to a system.  To ``add GNOME'' means that system-level services like the backlight adjustment helpers and the power management utilities are added to the system, extending @code{polkit} and @code{dbus} appropriately, allowing GNOME to operate with elevated privileges on a limited number of special-purpose system interfaces.  Additionally, adding a service made by @code{gnome-desktop-service-type} adds the GNOME metapackage to the system profile.  Likewise, adding the Xfce service not only adds the @code{xfce} metapackage to the system profile, but it also gives the Thunar file manager the ability to open a ``root-mode'' file management window, if the user authenticates using the administrator's password via the standard polkit graphical interface.  To ``add MATE'' means that @code{polkit} and @code{dbus} are extended appropriately, allowing MATE to operate with elevated privileges on a limited number of special-purpose system interfaces.  Additionally, adding a service of type @code{mate-desktop-service-type} adds the MATE metapackage to the system profile.  ``Adding Enlightenment'' means that @code{dbus} is extended appropriately, and several of Enlightenment's binaries are set as setuid, allowing Enlightenment's screen locker and other functionality to work as expected."
+msgstr "De manera adicional, los procedimientos @code{gnome-desktop-service-type}, @code{xfce-desktop-service}, @code{mate-desktop-service-type}, @code{lxqt-desktop-service-type} y @code{enlightenment-desktop-service-type} pueden añadir GNOME, Xfce, MATE y/o Enlightenment al sistema. ``Añadir GNOME'' significa que servicios a nivel de sistema como las herramientas de ayuda para el ajuste de la intensidad de luz de la pantalla y de gestión de energía se añaden al sistema, extendiendo @code{polkit} y @code{dbus} de manera apropiada, y permitiendo a GNOME operar con privilegios elevados en un número de interfaces del sistema de propósito especial. Además, la adición de un servicio generado por @code{gnome-desktop-service-type} añade el metapaquete GNOME al perfil del sistema. Del mismo modo, la adición del servicio Xfde no añade únicamente el metapaquete @code{xfce} al perfil del sistema, sino que también le proporciona al gestor de archivos Thunar la posibilidad de abrir una ventana de gestión de archivos en ``modo root'', si la usuaria se identifica mediante la contraseña de administración a través de la interfaz gráfica estándar polkit. ``Añadir MATE'' significa que @code{polkit} y @code{dbus} se extienden de manera apropiada, permitiendo a MATE operar con privilegios elevados en un número de interfaces del sistema de propósito especial. De manera adicional, la adición de un servicio de tipo @code{mate-desktop-service-type} añade el metapaquete MATE al perfil del sistema. ``Añadir Enlightenment'' significa que @code{dbus} se extiende de manera apropiada y varios ejecutables de Enlightenment se marcan como ``setuid'', para permitir el funcionamiento esperado del sistema bloqueo de pantalla de Enlightenment entre otras funcionalidades."
 
 # FUZZY
 #. type: Plain text
-#: doc/guix.texi:15725
+#: doc/guix.texi:18279
 msgid "The desktop environments in Guix use the Xorg display server by default.  If you'd like to use the newer display server protocol called Wayland, you need to use the @code{sddm-service} instead of GDM as the graphical login manager.  You should then select the ``GNOME (Wayland)'' session in SDDM.  Alternatively you can also try starting GNOME on Wayland manually from a TTY with the command ``XDG_SESSION_TYPE=wayland exec dbus-run-session gnome-session``.  Currently only GNOME has support for Wayland."
 msgstr "Los entornos de escritorio en Guix usan el servidor gráfico Xorg de manera predeterminada. Si desea usar el protocolo de servidor gráfico más nuevo llamado Wayland, debe usar el servicio @code{sddm-service} en vez de GDM como gestor gráfico de ingreso al sistema. Una vez hecho, debe seleccionar la sesión ``GNOME (Wayland)'' en SDDM. Alternativamente, puede intentar iniciar GNOME en Wayland de manera manual desde una TTY con la orden ``XDG_SESSION_TYPE=wayland exec dbus-run-session gnome-session''. Actualmente únicamente GNOME tiene implementación para Wayland."
 
 #. type: defvr
-#: doc/guix.texi:15726
+#: doc/guix.texi:18280
 #, no-wrap
 msgid "{Scheme Variable} gnome-desktop-service-type"
 msgstr "{Variable Scheme} gnome-desktop-service-type"
 
 #. type: defvr
-#: doc/guix.texi:15730
-msgid "This is the type of the service that adds the @uref{https://www.gnome.org, GNOME} desktop environment.  Its value is a @code{gnome-desktop-configuration} object (see below.)"
+#: doc/guix.texi:18284
+msgid "This is the type of the service that adds the @uref{https://www.gnome.org, GNOME} desktop environment.  Its value is a @code{gnome-desktop-configuration} object (see below)."
 msgstr "Es el tipo del servicio que añade el entorno de escritorio @uref{https://www.gnome.org, GNOME}. Su valor es un objeto @code{gnome-desktop-configuration} (véase a continuación)."
 
 #. type: defvr
-#: doc/guix.texi:15733
+#: doc/guix.texi:18287
 msgid "This service adds the @code{gnome} package to the system profile, and extends polkit with the actions from @code{gnome-settings-daemon}."
 msgstr "Este servicio añade el paquete @code{gnome} al perfil del sistema, y extiende polkit con las acciones de @code{gnome-settings-daemon}."
 
 #. type: deftp
-#: doc/guix.texi:15735
+#: doc/guix.texi:18289
 #, no-wrap
 msgid "{Data Type} gnome-desktop-configuration"
 msgstr "{Tipo de datos} gnome-desktop-configuration"
 
 #. type: deftp
-#: doc/guix.texi:15737
+#: doc/guix.texi:18291
 msgid "Configuration record for the GNOME desktop environment."
 msgstr "Registro de configuración para el entorno de escritorio GNOME."
 
 #. type: item
-#: doc/guix.texi:15739
+#: doc/guix.texi:18293
 #, no-wrap
 msgid "@code{gnome} (default: @code{gnome})"
 msgstr "@code{gnome} (predeterminado: @code{gnome})"
 
 #. type: table
-#: doc/guix.texi:15741
+#: doc/guix.texi:18295
 msgid "The GNOME package to use."
 msgstr "El paquete GNOME usado."
 
 #. type: defvr
-#: doc/guix.texi:15744
+#: doc/guix.texi:18298
 #, no-wrap
 msgid "{Scheme Variable} xfce-desktop-service-type"
 msgstr "{Variable Scheme} xfce-desktop-service-type"
 
 #. type: defvr
-#: doc/guix.texi:15748
-msgid "This is the type of a service to run the @uref{Xfce, https://xfce.org/} desktop environment.  Its value is an @code{xfce-desktop-configuration} object (see below.)"
+#: doc/guix.texi:18302
+msgid "This is the type of a service to run the @uref{Xfce, https://xfce.org/} desktop environment.  Its value is an @code{xfce-desktop-configuration} object (see below)."
 msgstr "Este es el tipo de un servicio para ejecutar el entorno de escritorio @uref{Xfce, https://xfce.org}. Su valor es un objeto @code{xfce-desktop-configuration} (véase a continuación)."
 
 # FUZZY
 #. type: defvr
-#: doc/guix.texi:15753
+#: doc/guix.texi:18307
 msgid "This service adds the @code{xfce} package to the system profile, and extends polkit with the ability for @code{thunar} to manipulate the file system as root from within a user session, after the user has authenticated with the administrator's password."
-msgstr "Este servicio añade el paquete @code{xfce} al perfil del sistema, y extiende polkit con la capacidad de @code{thunar} para manipular el sistema de ficheros como root dentro de una sesión de usuaria, tras la identificación de la usuaria con la contraseña de administración."
+msgstr "Este servicio añade el paquete @code{xfce} al perfil del sistema, y extiende polkit con la capacidad de @code{thunar} para manipular el sistema de archivos como root dentro de una sesión de usuaria, tras la identificación de la usuaria con la contraseña de administración."
 
 #. type: deftp
-#: doc/guix.texi:15755
+#: doc/guix.texi:18309
 #, no-wrap
 msgid "{Data Type} xfce-desktop-configuration"
 msgstr "{Tipo de datos} xfce-desktop-configuration"
 
 #. type: deftp
-#: doc/guix.texi:15757
+#: doc/guix.texi:18311
 msgid "Configuration record for the Xfce desktop environment."
 msgstr "Registro de configuración para el entorno de escritorio Xfce."
 
 #. type: item
-#: doc/guix.texi:15759
+#: doc/guix.texi:18313
 #, no-wrap
 msgid "@code{xfce} (default: @code{xfce})"
 msgstr "@code{xfce} (predeterminado: @code{xfce})"
 
 #. type: table
-#: doc/guix.texi:15761
+#: doc/guix.texi:18315
 msgid "The Xfce package to use."
 msgstr "El paquete Xfce usado."
 
 #. type: deffn
-#: doc/guix.texi:15764
+#: doc/guix.texi:18318
 #, no-wrap
 msgid "{Scheme Variable} mate-desktop-service-type"
 msgstr "{Variable Scheme} mate-desktop-service-type"
 
 #. type: deffn
-#: doc/guix.texi:15768
-msgid "This is the type of the service that runs the @uref{https://mate-desktop.org/, MATE desktop environment}.  Its value is a @code{mate-desktop-configuration} object (see below.)"
+#: doc/guix.texi:18322
+msgid "This is the type of the service that runs the @uref{https://mate-desktop.org/, MATE desktop environment}.  Its value is a @code{mate-desktop-configuration} object (see below)."
 msgstr "Es el tipo del servicio que ejecuta el @uref{https://mate-desktop.org/, entorno de escritorio MATE}. Su valor es un objeto @code{mate-desktop-configuration} (véase a continuación)."
 
 #. type: deffn
-#: doc/guix.texi:15772
+#: doc/guix.texi:18326
 msgid "This service adds the @code{mate} package to the system profile, and extends polkit with the actions from @code{mate-settings-daemon}."
 msgstr "Este servicio añade el paquete @code{mate} al perfil del sistema, y extiende polkit con acciones de @code{mate-settings-daemon}."
 
 #. type: deftp
-#: doc/guix.texi:15774
+#: doc/guix.texi:18328
 #, no-wrap
 msgid "{Data Type} mate-desktop-configuration"
 msgstr "{Tipo de datos} mate-desktop-configuration"
 
 #. type: deftp
-#: doc/guix.texi:15776
+#: doc/guix.texi:18330
 msgid "Configuration record for the MATE desktop environment."
 msgstr "Registro de configuración para el entorno de escritorio MATE."
 
 #. type: item
-#: doc/guix.texi:15778
+#: doc/guix.texi:18332
 #, no-wrap
 msgid "@code{mate} (default: @code{mate})"
 msgstr "@code{mate} (predeterminado: @code{mate})"
 
 #. type: table
-#: doc/guix.texi:15780
+#: doc/guix.texi:18334
 msgid "The MATE package to use."
 msgstr "El paquete MATE usado."
 
 #. type: deffn
-#: doc/guix.texi:15783
+#: doc/guix.texi:18337
+#, no-wrap
+msgid "{Scheme Variable} lxqt-desktop-service-type"
+msgstr "{Variable Scheme} lxqt-desktop-service-type"
+
+#. type: deffn
+#: doc/guix.texi:18341
+msgid "This is the type of the service that runs the @uref{https://lxqt.github.io, LXQt desktop environment}.  Its value is a @code{lxqt-desktop-configuration} object (see below)."
+msgstr "Es el tipo del servicio que ejecuta el @uref{https://lxqt.github.io, entorno de escritorio LXQt}. Su valor es un objeto @code{lxqt-desktop-configuration} (véase a continuación)."
+
+#. type: deffn
+#: doc/guix.texi:18344
+msgid "This service adds the @code{lxqt} package to the system profile."
+msgstr "Este servicio añade el paquete @code{lxqt} al perfil del sistema."
+
+#. type: deftp
+#: doc/guix.texi:18346
+#, no-wrap
+msgid "{Data Type} lxqt-desktop-configuration"
+msgstr "{Tipo de datos} lxqt-desktop-configuration"
+
+#. type: deftp
+#: doc/guix.texi:18348
+msgid "Configuration record for the LXQt desktop environment."
+msgstr "Registro de configuración para el entorno de escritorio LXQt."
+
+#. type: item
+#: doc/guix.texi:18350
+#, no-wrap
+msgid "@code{lxqt} (default: @code{lxqt})"
+msgstr "@code{lxqt} (predeterminado: @code{lxqt})"
+
+#. type: table
+#: doc/guix.texi:18352
+msgid "The LXQT package to use."
+msgstr "El paquete LXQT usado."
+
+#. type: deffn
+#: doc/guix.texi:18355
 #, no-wrap
 msgid "{Scheme Variable} enlightenment-desktop-service-type"
 msgstr "{Variable Scheme} enlightenment-desktop-service-type"
 
 # FUZZY
 #. type: deffn
-#: doc/guix.texi:15786
+#: doc/guix.texi:18358
 msgid "Return a service that adds the @code{enlightenment} package to the system profile, and extends dbus with actions from @code{efl}."
 msgstr "Devuelve un servicio que añade el paquete @code{enlightenment} al perfil del sistema, y extiende dbus con acciones de @code{efl}."
 
 #. type: deftp
-#: doc/guix.texi:15788
+#: doc/guix.texi:18360
 #, no-wrap
 msgid "{Data Type} enlightenment-desktop-service-configuration"
 msgstr "{Tipo de datos} enlightenment-desktop-service-configuration"
 
 #. type: item
-#: doc/guix.texi:15790
+#: doc/guix.texi:18362
 #, no-wrap
 msgid "@code{enlightenment} (default: @code{enlightenment})"
 msgstr "@code{enlightenment} (predeterminado: @code{enlightenment})"
 
 #. type: table
-#: doc/guix.texi:15792
+#: doc/guix.texi:18364
 msgid "The enlightenment package to use."
 msgstr "El paquete enlightenment usado."
 
 #. type: Plain text
-#: doc/guix.texi:15800
+#: doc/guix.texi:18372
 msgid "Because the GNOME, Xfce and MATE desktop services pull in so many packages, the default @code{%desktop-services} variable doesn't include any of them by default.  To add GNOME, Xfce or MATE, just @code{cons} them onto @code{%desktop-services} in the @code{services} field of your @code{operating-system}:"
 msgstr "Debido a que los servicios de escritorio GNOME, Xfce y MATE incorporan tantos paquetes, la variable @code{%desktop-services} no incluye ninguno de manera predeterminada. Para añadir GNOME, Xfce o MATE, simplemente use @code{cons} junto a @code{%desktop-services} en el campo @code{services} de su declaración @code{operating-system}:"
 
 #. type: lisp
-#: doc/guix.texi:15811
+#: doc/guix.texi:18383
 #, no-wrap
 msgid ""
 "(use-modules (gnu))\n"
@@ -30363,17 +34871,17 @@ msgstr ""
 "  ...)\n"
 
 #. type: Plain text
-#: doc/guix.texi:15815
+#: doc/guix.texi:18387
 msgid "These desktop environments will then be available as options in the graphical login window."
 msgstr "Una vez realizado, estos entornos de escritorio se encontrarán como opciones disponibles en la ventana del gestor gráfico de ingreso al sistema."
 
 #. type: Plain text
-#: doc/guix.texi:15819
+#: doc/guix.texi:18391
 msgid "The actual service definitions included in @code{%desktop-services} and provided by @code{(gnu services dbus)} and @code{(gnu services desktop)} are described below."
 msgstr "Las definiciones de servicio incluidas realmente en @code{%desktop-services} y proporcionadas por @code{(gnu services dbus)} y @code{(gnu services desktop)} se describen a continuación."
 
 #. type: deffn
-#: doc/guix.texi:15820
+#: doc/guix.texi:18392
 #, no-wrap
 msgid "{Scheme Procedure} dbus-service [#:dbus @var{dbus}] [#:services '()]"
 msgstr "{Procedimiento Scheme} dbus-service [#:dbus @var{dbus}] [#:services '()]"
@@ -30381,513 +34889,519 @@ msgstr "{Procedimiento Scheme} dbus-service [#:dbus @var{dbus}] [#:services '()]
 # FUZZY
 # TODO (MAAV): Soporte, configuración... :(
 #. type: deffn
-#: doc/guix.texi:15823
+#: doc/guix.texi:18395
 msgid "Return a service that runs the ``system bus'', using @var{dbus}, with support for @var{services}."
 msgstr "Devuelve un servicio que ejecuta el ``bus del sistema'', mediante el uso de @var{dbus}, con configuración para @var{services}."
 
 # FUZZY
 # TODO (MAAV): Repensar
 #. type: deffn
-#: doc/guix.texi:15827
+#: doc/guix.texi:18399
 msgid "@uref{https://dbus.freedesktop.org/, D-Bus} is an inter-process communication facility.  Its system bus is used to allow system services to communicate and to be notified of system-wide events."
 msgstr "@uref{https://dbus.freedesktop.org/, D-Bus} es una herramienta para la facilitación de intercomunicación entre procesos. Su bus del sistema se usa para permitir la comunicación entre y la notificación de eventos a nivel de sistema a los servicios."
 
 #. type: deffn
-#: doc/guix.texi:15832
+#: doc/guix.texi:18404
 msgid "@var{services} must be a list of packages that provide an @file{etc/dbus-1/system.d} directory containing additional D-Bus configuration and policy files.  For example, to allow avahi-daemon to use the system bus, @var{services} must be equal to @code{(list avahi)}."
-msgstr "@var{services} debe ser una lista de paquetes que proporcionen un directorio @file{etc/dbus-1/system.d} que contenga ficheros de configuración y políticas adicionales de D-Bus. Por ejemplo, para permitir a avahi-daemon el uso del bus del sistema, @var{services} debe tener el valor @code{(list avahi)}."
+msgstr "@var{services} debe ser una lista de paquetes que proporcionen un directorio @file{etc/dbus-1/system.d} que contenga archivos de configuración y políticas adicionales de D-Bus. Por ejemplo, para permitir a avahi-daemon el uso del bus del sistema, @var{services} debe tener el valor @code{(list avahi)}."
 
 #. type: deffn
-#: doc/guix.texi:15834
+#: doc/guix.texi:18406
 #, no-wrap
 msgid "{Scheme Procedure} elogind-service [#:config @var{config}]"
 msgstr "{Procedimiento Scheme} elogind-service [#:config @var{config}]"
 
 #. type: deffn
-#: doc/guix.texi:15840
+#: doc/guix.texi:18412
 msgid "Return a service that runs the @code{elogind} login and seat management daemon.  @uref{https://github.com/elogind/elogind, Elogind} exposes a D-Bus interface that can be used to know which users are logged in, know what kind of sessions they have open, suspend the system, inhibit system suspend, reboot the system, and other tasks."
 msgstr "Devuelve un servicio que ejecuta el daemon de gestión de ingreso al sistema y de asientos @code{elogind}. @uref{https://github.com/elogind/elogind, Elogind} expone una interfaz D-Bus que puede usarse para conocer las usuarias que han ingresado en el sistema, conocer qué tipo de sesiones tienen abiertas, suspender el sistema o inhibir su suspensión, reiniciar el sistema y otras tareas."
 
 # FUZZY
 # TODO (MAAV): Repensar forma
 #. type: deffn
-#: doc/guix.texi:15844
+#: doc/guix.texi:18416
 msgid "Elogind handles most system-level power events for a computer, for example suspending the system when a lid is closed, or shutting it down when the power button is pressed."
 msgstr "Elogind maneja la mayor parte de los eventos a nivel de sistema de alimentación de su máquina, por ejemplo mediante la suspensión del sistema cuando se cierre la tapa, o mediante el apagado al pulsar la tecla correspondiente."
 
 #. type: deffn
-#: doc/guix.texi:15849
+#: doc/guix.texi:18421
 msgid "The @var{config} keyword argument specifies the configuration for elogind, and should be the result of an @code{(elogind-configuration (@var{parameter} @var{value})...)} invocation.  Available parameters and their default values are:"
 msgstr "El parámetro @var{config} especifica la configuración de elogind, y debería resultar en una invocación @code{(elogind-configuration (@var{parámetro} @var{valor})...)}. Los parámetros disponibles y sus valores predeterminados son:"
 
 #. type: item
-#: doc/guix.texi:15851
+#: doc/guix.texi:18423
 #, no-wrap
 msgid "kill-user-processes?"
 msgstr "kill-user-processes?"
 
 #. type: code{#1}
-#: doc/guix.texi:15853 doc/guix.texi:15871 doc/guix.texi:15873
-#: doc/guix.texi:15875 doc/guix.texi:15887
+#: doc/guix.texi:18425 doc/guix.texi:18445 doc/guix.texi:18447
+#: doc/guix.texi:18449 doc/guix.texi:18461
 msgid "#f"
 msgstr "#f"
 
 #. type: item
-#: doc/guix.texi:15853
+#: doc/guix.texi:18425
 #, no-wrap
 msgid "kill-only-users"
 msgstr "kill-only-users"
 
 #. type: code{#1}
-#: doc/guix.texi:15855 doc/guix.texi:15893
+#: doc/guix.texi:18427 doc/guix.texi:18467
 msgid "()"
 msgstr "()"
 
 #. type: item
-#: doc/guix.texi:15855
+#: doc/guix.texi:18427
 #, no-wrap
 msgid "kill-exclude-users"
 msgstr "kill-exclude-users"
 
 #. type: code{#1}
-#: doc/guix.texi:15857
+#: doc/guix.texi:18429
 msgid "(\"root\")"
 msgstr "(\"root\")"
 
 #. type: item
-#: doc/guix.texi:15857
+#: doc/guix.texi:18429
 #, no-wrap
 msgid "inhibit-delay-max-seconds"
 msgstr "inhibit-delay-max-seconds"
 
 #. type: code{#1}
-#: doc/guix.texi:15859
+#: doc/guix.texi:18431
 msgid "5"
 msgstr "5"
 
 #. type: item
-#: doc/guix.texi:15859
+#: doc/guix.texi:18431
 #, no-wrap
 msgid "handle-power-key"
 msgstr "handle-power-key"
 
 #. type: code{#1}
-#: doc/guix.texi:15861
+#: doc/guix.texi:18433
 msgid "poweroff"
 msgstr "poweroff"
 
 #. type: item
-#: doc/guix.texi:15861
+#: doc/guix.texi:18433
 #, no-wrap
 msgid "handle-suspend-key"
 msgstr "handle-suspend-key"
 
 #. type: code{#1}
-#: doc/guix.texi:15863 doc/guix.texi:15867
+#: doc/guix.texi:18435 doc/guix.texi:18439
 msgid "suspend"
 msgstr "suspend"
 
 #. type: item
-#: doc/guix.texi:15863
+#: doc/guix.texi:18435
 #, no-wrap
 msgid "handle-hibernate-key"
 msgstr "handle-hibernate-key"
 
 #. type: code{#1}
-#: doc/guix.texi:15865
+#: doc/guix.texi:18437
 msgid "hibernate"
 msgstr "hibernate"
 
 #. type: item
-#: doc/guix.texi:15865
+#: doc/guix.texi:18437
 #, no-wrap
 msgid "handle-lid-switch"
 msgstr "handle-lid-switch"
 
 #. type: item
-#: doc/guix.texi:15867
+#: doc/guix.texi:18439
 #, no-wrap
 msgid "handle-lid-switch-docked"
 msgstr "handle-lid-switch-docked"
 
 #. type: code{#1}
-#: doc/guix.texi:15869 doc/guix.texi:15881
+#: doc/guix.texi:18441 doc/guix.texi:18443 doc/guix.texi:18455
 msgid "ignore"
 msgstr "ignore"
 
 #. type: item
-#: doc/guix.texi:15869
+#: doc/guix.texi:18441
+#, no-wrap
+msgid "handle-lid-switch-external-power"
+msgstr "handle-lid-switch-external-power"
+
+#. type: item
+#: doc/guix.texi:18443
 #, no-wrap
 msgid "power-key-ignore-inhibited?"
 msgstr "power-key-ignore-inhibited?"
 
 #. type: item
-#: doc/guix.texi:15871
+#: doc/guix.texi:18445
 #, no-wrap
 msgid "suspend-key-ignore-inhibited?"
 msgstr "suspend-key-ignore-inhibited?"
 
 #. type: item
-#: doc/guix.texi:15873
+#: doc/guix.texi:18447
 #, no-wrap
 msgid "hibernate-key-ignore-inhibited?"
 msgstr "hibernate-key-ignore-inhibited?"
 
 #. type: item
-#: doc/guix.texi:15875
+#: doc/guix.texi:18449
 #, no-wrap
 msgid "lid-switch-ignore-inhibited?"
 msgstr "lid-switch-ignore-inhibited?"
 
 #. type: code{#1}
-#: doc/guix.texi:15877 doc/guix.texi:15889
+#: doc/guix.texi:18451 doc/guix.texi:18463
 msgid "#t"
 msgstr "#t"
 
 #. type: item
-#: doc/guix.texi:15877
+#: doc/guix.texi:18451
 #, no-wrap
 msgid "holdoff-timeout-seconds"
 msgstr "holdoff-timeout-seconds"
 
 #. type: code{#1}
-#: doc/guix.texi:15879
+#: doc/guix.texi:18453
 msgid "30"
 msgstr "30"
 
 #. type: item
-#: doc/guix.texi:15879
+#: doc/guix.texi:18453
 #, no-wrap
 msgid "idle-action"
 msgstr "idle-action"
 
 #. type: item
-#: doc/guix.texi:15881
+#: doc/guix.texi:18455
 #, no-wrap
 msgid "idle-action-seconds"
 msgstr "idle-action-seconds"
 
 #. type: code{#1}
-#: doc/guix.texi:15883
+#: doc/guix.texi:18457
 msgid "(* 30 60)"
 msgstr "(* 30 60)"
 
 #. type: item
-#: doc/guix.texi:15883
+#: doc/guix.texi:18457
 #, no-wrap
 msgid "runtime-directory-size-percent"
 msgstr "runtime-directory-size-percent"
 
 #. type: code{#1}
-#: doc/guix.texi:15885
+#: doc/guix.texi:18459
 msgid "10"
 msgstr "10"
 
 #. type: item
-#: doc/guix.texi:15885
+#: doc/guix.texi:18459
 #, no-wrap
 msgid "runtime-directory-size"
 msgstr "runtime-directory-size"
 
 #. type: item
-#: doc/guix.texi:15887
+#: doc/guix.texi:18461
 #, no-wrap
 msgid "remove-ipc?"
 msgstr "remove-ipc?"
 
 #. type: item
-#: doc/guix.texi:15889
+#: doc/guix.texi:18463
 #, no-wrap
 msgid "suspend-state"
 msgstr "suspend-state"
 
 #. type: code{#1}
-#: doc/guix.texi:15891
+#: doc/guix.texi:18465
 msgid "(\"mem\" \"standby\" \"freeze\")"
 msgstr "(\"mem\" \"standby\" \"freeze\")"
 
 #. type: item
-#: doc/guix.texi:15891
+#: doc/guix.texi:18465
 #, no-wrap
 msgid "suspend-mode"
 msgstr "suspend-mode"
 
 #. type: item
-#: doc/guix.texi:15893
+#: doc/guix.texi:18467
 #, no-wrap
 msgid "hibernate-state"
 msgstr "hibernate-state"
 
 #. type: code{#1}
-#: doc/guix.texi:15895 doc/guix.texi:15899
+#: doc/guix.texi:18469 doc/guix.texi:18473
 msgid "(\"disk\")"
 msgstr "(\"disk\")"
 
 #. type: item
-#: doc/guix.texi:15895
+#: doc/guix.texi:18469
 #, no-wrap
 msgid "hibernate-mode"
 msgstr "hibernate-mode"
 
 #. type: code{#1}
-#: doc/guix.texi:15897
+#: doc/guix.texi:18471
 msgid "(\"platform\" \"shutdown\")"
 msgstr "(\"platform\" \"shutdown\")"
 
 #. type: item
-#: doc/guix.texi:15897
+#: doc/guix.texi:18471
 #, no-wrap
 msgid "hybrid-sleep-state"
 msgstr "hybrid-sleep-state"
 
 #. type: item
-#: doc/guix.texi:15899
+#: doc/guix.texi:18473
 #, no-wrap
 msgid "hybrid-sleep-mode"
 msgstr "hybrid-sleep-mode"
 
 #. type: code{#1}
-#: doc/guix.texi:15901
+#: doc/guix.texi:18475
 msgid "(\"suspend\" \"platform\" \"shutdown\")"
 msgstr "(\"suspend\" \"platform\" \"shutdown\")"
 
 #. type: deffn
-#: doc/guix.texi:15904
+#: doc/guix.texi:18478
 #, no-wrap
 msgid "{Scheme Procedure} accountsservice-service @"
 msgstr "{Procedimiento Scheme} accountsservice-service @"
 
 #. type: deffn
-#: doc/guix.texi:15912
+#: doc/guix.texi:18486
 msgid "[#:accountsservice @var{accountsservice}] Return a service that runs AccountsService, a system service that can list available accounts, change their passwords, and so on.  AccountsService integrates with PolicyKit to enable unprivileged users to acquire the capability to modify their system configuration.  @uref{https://www.freedesktop.org/wiki/Software/AccountsService/, the accountsservice web site} for more information."
 msgstr ""
 "[#:accountsservice @var{accountsservice}]\n"
 "Devuelve un servicio que ejecuta AccountsService, un servicio del sistema para la enumeración de cuentas disponibles, el cambio de sus contraseñas, etcétera. AccountsService se integra con PolicyKit para permitir a las usuarias sin privilegios la adquisición de la capacidad de modificar la configuración de su sistema. Véase @uref{https://www.freedesktop.org/wiki/Software/AccountsService/, la página web de AccountsService} para más información."
 
 #. type: deffn
-#: doc/guix.texi:15915
+#: doc/guix.texi:18489
 msgid "The @var{accountsservice} keyword argument is the @code{accountsservice} package to expose as a service."
 msgstr "El parámetro @var{accountsservice} es el paquete @code{accountsservice} que se expondrá como un servicio."
 
 #. type: deffn
-#: doc/guix.texi:15917
+#: doc/guix.texi:18491
 #, no-wrap
 msgid "{Scheme Procedure} polkit-service @"
 msgstr "{Procedimiento Scheme} polkit-service @"
 
 #. type: deffn
-#: doc/guix.texi:15926
+#: doc/guix.texi:18500
 msgid "[#:polkit @var{polkit}] Return a service that runs the @uref{https://www.freedesktop.org/wiki/Software/polkit/, Polkit privilege management service}, which allows system administrators to grant access to privileged operations in a structured way.  By querying the Polkit service, a privileged system component can know when it should grant additional capabilities to ordinary users.  For example, an ordinary user can be granted the capability to suspend the system if the user is logged in locally."
 msgstr ""
 "[#:polkit @var{polkit}]\n"
 "Devuelve un servicio que ejecuta el @uref{https://www.freedesktop.org/wiki/Software/polkit/, servicio de gestión de privilegios Polkit}, que permite a las administradoras del sistema la concesión de permisos sobre operaciones privilegiadas de manera estructurada. Mediante las consultas al servicio Polkit, un componente del sistema con privilegios puede conocer cuando debe conceder capacidades adicionales a usuarias ordinarias. Por ejemplo, se le puede conceder la capacidad a una usuaria ordinaria de suspender el sistema si la usuaria ingresó de forma local."
 
 #. type: defvr
-#: doc/guix.texi:15928
+#: doc/guix.texi:18502
 #, no-wrap
 msgid "{Scheme Variable} polkit-wheel-service"
 msgstr "{Variable Scheme} polkit-wheel-service"
 
 # FUZZY
 #. type: defvr
-#: doc/guix.texi:15933
+#: doc/guix.texi:18507
 msgid "Service that adds the @code{wheel} group as admins to the Polkit service.  This makes it so that users in the @code{wheel} group are queried for their own passwords when performing administrative actions instead of @code{root}'s, similar to the behaviour used by @code{sudo}."
 msgstr "Servicio que añade a las usuarias del grupo @code{wheel} como administradoras del servicio Polkit. Esto hace que se solicite su propia contraseña a las usuarias del grupo @code{wheel} cuando realicen acciones administrativas en vez de la contraseña de @code{root}, de manera similar al comportamiento de @code{sudo}."
 
 #. type: defvr
-#: doc/guix.texi:15935
+#: doc/guix.texi:18509
 #, no-wrap
 msgid "{Scheme Variable} upower-service-type"
 msgstr "{Variable Scheme} upower-service-type"
 
 #. type: defvr
-#: doc/guix.texi:15939
+#: doc/guix.texi:18513
 msgid "Service that runs @uref{https://upower.freedesktop.org/, @command{upowerd}}, a system-wide monitor for power consumption and battery levels, with the given configuration settings."
 msgstr "Servicio que ejecuta @uref{https://upower.freedesktop.org/}, @command{upowerd}, un monitor a nivel de sistema de consumo de energía y niveles de batería, con las opciones de configuración proporcionadas."
 
 #. type: defvr
-#: doc/guix.texi:15942
+#: doc/guix.texi:18516
 msgid "It implements the @code{org.freedesktop.UPower} D-Bus interface, and is notably used by GNOME."
 msgstr "Implementa la interfaz D-Bus @code{org.freedesktop.UPower}, y se usa de forma notable en GNOME."
 
 #. type: deftp
-#: doc/guix.texi:15944
+#: doc/guix.texi:18518
 #, no-wrap
 msgid "{Data Type} upower-configuration"
 msgstr "{Tipo de datos} upower-configuration"
 
 #. type: deftp
-#: doc/guix.texi:15946
+#: doc/guix.texi:18520
 msgid "Data type representation the configuration for UPower."
 msgstr "Tipo de datos que representa la configuración de UPower."
 
 #. type: item
-#: doc/guix.texi:15949
+#: doc/guix.texi:18523
 #, no-wrap
 msgid "@code{upower} (default: @var{upower})"
 msgstr "@code{upower} (predeterminado: @var{upower})"
 
 #. type: table
-#: doc/guix.texi:15951
+#: doc/guix.texi:18525
 msgid "Package to use for @code{upower}."
 msgstr "Paquete usado para @code{upower}."
 
 #. type: item
-#: doc/guix.texi:15952
+#: doc/guix.texi:18526
 #, no-wrap
 msgid "@code{watts-up-pro?} (default: @code{#f})"
 msgstr "@code{watts-up-pro?} (predeterminado: @code{#f})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:15954
+#: doc/guix.texi:18528
 msgid "Enable the Watts Up Pro device."
 msgstr "Permite el uso del dispositivo Watts Up Pro."
 
 #. type: item
-#: doc/guix.texi:15955
+#: doc/guix.texi:18529
 #, no-wrap
 msgid "@code{poll-batteries?} (default: @code{#t})"
 msgstr "@code{poll-batteries?} (predeterminado: @code{#t})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:15957
+#: doc/guix.texi:18531
 msgid "Enable polling the kernel for battery level changes."
 msgstr "Usa el servicio de consulta del núcleo para los cambios en niveles de batería."
 
 #. type: item
-#: doc/guix.texi:15958
+#: doc/guix.texi:18532
 #, no-wrap
 msgid "@code{ignore-lid?} (default: @code{#f})"
 msgstr "@code{ignore-lid?} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:15960
+#: doc/guix.texi:18534
 msgid "Ignore the lid state, this can be useful if it's incorrect on a device."
 msgstr "Ignora el estado de la tapa, puede ser útil en caso de ser incorrecto un dispositivo determinado."
 
 #. type: item
-#: doc/guix.texi:15961
+#: doc/guix.texi:18535
 #, no-wrap
 msgid "@code{use-percentage-for-policy?} (default: @code{#f})"
 msgstr "@code{use-percentage-for-policy?} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:15964
+#: doc/guix.texi:18538
 msgid "Whether battery percentage based policy should be used.  The default is to use the time left, change to @code{#t} to use the percentage."
 msgstr "Determina si se debe usar la política basada en el porcentaje de batería. La opción predeterminada es el uso del tiempo restante, cambie a @code{#t} para usar el porcentaje."
 
 #. type: item
-#: doc/guix.texi:15965
+#: doc/guix.texi:18539
 #, no-wrap
 msgid "@code{percentage-low} (default: @code{10})"
 msgstr "@code{percentage-low} (predeterminado: @code{10})"
 
 #. type: table
-#: doc/guix.texi:15968
+#: doc/guix.texi:18542
 msgid "When @code{use-percentage-for-policy?} is @code{#t}, this sets the percentage at which the battery is considered low."
 msgstr "Cuando @code{use-percentaje-for-policy?} es @code{#t}, determina el porcentaje en el que la carga de la batería se considera baja."
 
 #. type: item
-#: doc/guix.texi:15969
+#: doc/guix.texi:18543
 #, no-wrap
 msgid "@code{percentage-critical} (default: @code{3})"
 msgstr "@code{percentage-critical} (predeterminado: @code{3})"
 
 #. type: table
-#: doc/guix.texi:15972
+#: doc/guix.texi:18546
 msgid "When @code{use-percentage-for-policy?} is @code{#t}, this sets the percentage at which the battery is considered critical."
 msgstr "Cuando @code{use-percentaje-for-policy?} es @code{#t}, determina el porcentaje en el que la carga de la batería se considera crítica."
 
 #. type: item
-#: doc/guix.texi:15973
+#: doc/guix.texi:18547
 #, no-wrap
 msgid "@code{percentage-action} (default: @code{2})"
 msgstr "@code{percentage-action} (predeterminado: @code{2})"
 
 #. type: table
-#: doc/guix.texi:15976
+#: doc/guix.texi:18550
 msgid "When @code{use-percentage-for-policy?} is @code{#t}, this sets the percentage at which action will be taken."
 msgstr "Cuando @code{use-percentaje-for-policy?} es @code{#t}, determina el porcentaje en el que se tomará la acción."
 
 #. type: item
-#: doc/guix.texi:15977
+#: doc/guix.texi:18551
 #, no-wrap
 msgid "@code{time-low} (default: @code{1200})"
 msgstr "@code{time-low} (predeterminado: @code{1200})"
 
 #. type: table
-#: doc/guix.texi:15980
+#: doc/guix.texi:18554
 msgid "When @code{use-time-for-policy?} is @code{#f}, this sets the time remaining in seconds at which the battery is considered low."
 msgstr "Cuando @code{use-percentaje-for-policy?} es @code{#t}, determina el tiempo restante en segundos con el que carga de la batería se considera baja."
 
 #. type: item
-#: doc/guix.texi:15981
+#: doc/guix.texi:18555
 #, no-wrap
 msgid "@code{time-critical} (default: @code{300})"
 msgstr "@code{time-critical} (predeterminado: @code{300})"
 
 #. type: table
-#: doc/guix.texi:15984
+#: doc/guix.texi:18558
 msgid "When @code{use-time-for-policy?} is @code{#f}, this sets the time remaining in seconds at which the battery is considered critical."
 msgstr "Cuando @code{use-percentaje-for-policy?} es @code{#t}, determina el tiempo restante en segundos con el que carga de la batería se considera crítica."
 
 #. type: item
-#: doc/guix.texi:15985
+#: doc/guix.texi:18559
 #, no-wrap
 msgid "@code{time-action} (default: @code{120})"
 msgstr "@code{time-action} (predeterminado: @code{120})"
 
 #. type: table
-#: doc/guix.texi:15988
+#: doc/guix.texi:18562
 msgid "When @code{use-time-for-policy?} is @code{#f}, this sets the time remaining in seconds at which action will be taken."
 msgstr "Cuando @code{use-percentaje-for-policy?} es @code{#t}, determina el tiempo restante en segundos con el que se tomará la acción."
 
 #. type: item
-#: doc/guix.texi:15989
+#: doc/guix.texi:18563
 #, no-wrap
 msgid "@code{critical-power-action} (default: @code{'hybrid-sleep})"
 msgstr "@code{critical-power-action} (predeterminada: @code{'hybrid-sleep})"
 
 #. type: table
-#: doc/guix.texi:15992
+#: doc/guix.texi:18566
 msgid "The action taken when @code{percentage-action} or @code{time-action} is reached (depending on the configuration of @code{use-percentage-for-policy?})."
 msgstr "La acción tomada cuando se alcanza @code{percentage-action} o @code{time-action} (dependiendo de la configuración de @code{use-percentage-for-policy?})."
 
 #. type: table
-#: doc/guix.texi:15994
+#: doc/guix.texi:18568
 msgid "Possible values are:"
 msgstr "Los valores posibles son:"
 
 #. type: code{#1}
-#: doc/guix.texi:15998
+#: doc/guix.texi:18572
 msgid "'power-off"
 msgstr "'power-off"
 
 #. type: code{#1}
-#: doc/guix.texi:16001
+#: doc/guix.texi:18575
 msgid "'hibernate"
 msgstr "'hibernate"
 
 #. type: itemize
-#: doc/guix.texi:16004
+#: doc/guix.texi:18578
 msgid "@code{'hybrid-sleep}."
 msgstr "@code{'hybrid-sleep}."
 
 #. type: deffn
-#: doc/guix.texi:16009
+#: doc/guix.texi:18583
 #, no-wrap
 msgid "{Scheme Procedure} udisks-service [#:udisks @var{udisks}]"
 msgstr "{Procedimiento Scheme} udisks-service [#:udisks @var{udisks}]"
 
 #. type: deffn
-#: doc/guix.texi:16014
-msgid "Return a service for @uref{https://udisks.freedesktop.org/docs/latest/, UDisks}, a @dfn{disk management} daemon that provides user interfaces with notifications and ways to mount/unmount disks.  Programs that talk to UDisks include the @command{udisksctl} command, part of UDisks, and GNOME Disks."
-msgstr "Devuelve un servicio para @uref{https://udisks.freedesktop.org/docs/latest/, UDisks}, un daemon de @dfn{gestión de discos} que proporciona interfaces de usuaria con notificaciones y formas de montar/desmontar discos.  Los programas que se comunican con UDisk incluyen la orden @command{udisksctl}, parte de UDisks, y la utilidad ``Discos'' de GNOME."
+#: doc/guix.texi:18593
+msgid "Return a service for @uref{https://udisks.freedesktop.org/docs/latest/, UDisks}, a @dfn{disk management} daemon that provides user interfaces with notifications and ways to mount/unmount disks.  Programs that talk to UDisks include the @command{udisksctl} command, part of UDisks, and GNOME Disks.  Note that Udisks relies on the @command{mount} command, so it will only be able to use the file-system utilities installed in the system profile.  For example if you want to be able to mount NTFS file-systems in read and write fashion, you'll need to have @code{ntfs-3g} installed system-wide."
+msgstr "Devuelve un servicio para @uref{https://udisks.freedesktop.org/docs/latest/, UDisks}, un daemon de @dfn{gestión de discos} que proporciona interfaces de usuaria con notificaciones y formas de montar/desmontar discos.  Los programas que se comunican con UDisk incluyen la orden @command{udisksctl}, parte de UDisks, y la utilidad ``Discos'' de GNOME. Tenga en cuenta que Udisks depende de la orden @command{mount}, de modo que únicamente será capaz de usar utilidades para sistemas de archivos instaladas en el perfil del sistema. Si quiere, por ejemplo, poder montar sistemas de archivos NTFS en modo lectura/escritura, debe instalar @code{ntfs-3g} en su sistema operativo."
 
 #. type: deffn
-#: doc/guix.texi:16016
+#: doc/guix.texi:18595
 #, no-wrap
 msgid "{Scheme Variable} colord-service-type"
 msgstr "{Variable Scheme} colord-service-type"
@@ -30895,250 +35409,250 @@ msgstr "{Variable Scheme} colord-service-type"
 # FUZZY
 # TODO (MAAV): Escáner??
 #. type: deffn
-#: doc/guix.texi:16023
+#: doc/guix.texi:18602
 msgid "This is the type of the service that runs @command{colord}, a system service with a D-Bus interface to manage the color profiles of input and output devices such as screens and scanners.  It is notably used by the GNOME Color Manager graphical tool.  See @uref{https://www.freedesktop.org/software/colord/, the colord web site} for more information."
 msgstr "Devuelve un servicio que ejecuta @command{colord}, un servicio del sistema con una interfaz D-Bus para la gestión de perfiles de dispositivos de entrada y salida como la pantalla y el escáner. Se usa de forma notable por parte de la herramienta gráfica de ``Gestión de color'' de GNOME. Véase @uref{https://www.freedesktop.org/software/colord/, la página web de colord} para más información."
 
 #. type: deffn
-#: doc/guix.texi:16025
+#: doc/guix.texi:18604
 #, no-wrap
 msgid "{Scheme Procedure} geoclue-application name [#:allowed? #t] [#:system? #f] [#:users '()]"
 msgstr "{Procedimiento Scheme} geoclue-application-name [#:allowed? #t] [#:system? #f] [#:users '()]"
 
 # FUZZY
 #. type: deffn
-#: doc/guix.texi:16034
+#: doc/guix.texi:18613
 msgid "Return a configuration allowing an application to access GeoClue location data.  @var{name} is the Desktop ID of the application, without the @code{.desktop} part.  If @var{allowed?} is true, the application will have access to location information by default.  The boolean @var{system?} value indicates whether an application is a system component or not.  Finally @var{users} is a list of UIDs of all users for which this application is allowed location info access.  An empty users list means that all users are allowed."
 msgstr "Devuelve una configuración que permite a una aplicación el acceso a los datos de posicionamiento de GeoClue. @var{nombre} es el Desktop ID de la aplicación, sin la parte @code{.desktop}. Si el valor de @var{allowed?} es verdadero, la aplicación tendrá acceso a la información de posicionamiento de manera predeterminada. El valor booleano @var{system?} indica si una aplicación es un componente de sistema o no. Por último, @var{users} es una lista de UID de todas las usuarias para las que esta aplicación tiene permitido el acceso de información. Una lista de usuarias vacía significa que se permiten todas las usuarias."
 
 #. type: cindex
-#: doc/guix.texi:16036
+#: doc/guix.texi:18615
 #, no-wrap
 msgid "scanner access"
 msgstr "acceso al escáner"
 
 #. type: deffn
-#: doc/guix.texi:16037
+#: doc/guix.texi:18616
 #, no-wrap
 msgid "{Scheme Procedure} sane-service-type"
 msgstr "{Procedimiento Scheme} sane-service-type"
 
 #. type: deffn
-#: doc/guix.texi:16041
+#: doc/guix.texi:18620
 msgid "This service provides access to scanners @i{via} @uref{http://www.sane-project.org, SANE} by installing the necessary udev rules."
 msgstr "Este servicio proporciona acceso a escáner a través de @uref{http://www.sane-project.org, SANE} instalando las reglas de udev necesarias."
 
 #. type: defvr
-#: doc/guix.texi:16043
+#: doc/guix.texi:18622
 #, no-wrap
 msgid "{Scheme Variable} %standard-geoclue-applications"
 msgstr "{Variable Scheme} %standard-geoclue-applications"
 
 # FUZZY
 #. type: defvr
-#: doc/guix.texi:16050
+#: doc/guix.texi:18629
 msgid "The standard list of well-known GeoClue application configurations, granting authority to the GNOME date-and-time utility to ask for the current location in order to set the time zone, and allowing the IceCat and Epiphany web browsers to request location information.  IceCat and Epiphany both query the user before allowing a web page to know the user's location."
 msgstr "La lista estándar de configuraciones de GeoClue de aplicaciones conocidas, proporcionando autoridad a la utilidad de fecha y hora de GNOME para obtener la localización actual para ajustar la zona horaria, y permitiendo que los navegadores Icecat y Epiphany puedan solicitar información de localización. Tanto IceCat como Epiphany solicitan permiso a la usuaria antes de permitir a una página web conocer la ubicación de la usuaria."
 
 #. type: deffn
-#: doc/guix.texi:16052
+#: doc/guix.texi:18631
 #, no-wrap
 msgid "{Scheme Procedure} geoclue-service [#:colord @var{colord}] @"
 msgstr "{Procedimiento Scheme} geoclue-service [#:colord @var{colord}] @"
 
 #. type: deffn
-#: doc/guix.texi:16065
+#: doc/guix.texi:18644
 msgid "[#:whitelist '()] @ [#:wifi-geolocation-url \"https://location.services.mozilla.com/v1/geolocate?key=geoclue\"] @ [#:submit-data? #f] [#:wifi-submission-url \"https://location.services.mozilla.com/v1/submit?key=geoclue\"] @ [#:submission-nick \"geoclue\"] @ [#:applications %standard-geoclue-applications] Return a service that runs the GeoClue location service.  This service provides a D-Bus interface to allow applications to request access to a user's physical location, and optionally to add information to online location databases.  See @uref{https://wiki.freedesktop.org/www/Software/GeoClue/, the GeoClue web site} for more information."
 msgstr ""
 "[#:whitelist '()] @ [#:wifi-geolocation-url \"https://location.services.mozilla.com/v1/geolocate?key=geoclue\"] @ [#:submit-data? #f] [#:wifi-submission-url \"https://location.services.mozilla.com/v1/submit?key=geoclue\"] @ [#:submission-nick \"geoclue\"] @ [#:applications %standard-geoclue-applications]\n"
 "Devuelve un servicio que ejecuta el servicio de posicionamiento GeoClue.  Proporciona una interfaz D-Bus que permite a las aplicaciones solicitar una posición física de la usuaria, y de manera opcional añadir información a bases de datos de posicionamiento en línea.  Véase @uref{https://wiki.freedesktop.org/www/Software/GeoClue/, la página web de GeoClue} para obtener más información."
 
 #. type: deffn
-#: doc/guix.texi:16067
+#: doc/guix.texi:18646
 #, no-wrap
 msgid "{Scheme Procedure} bluetooth-service [#:bluez @var{bluez}] @"
 msgstr "{Procedimiento Scheme} bluetooth-service [#:bluez @var{bluez}] @"
 
 # FUZZY
 #. type: deffn
-#: doc/guix.texi:16074
+#: doc/guix.texi:18653
 msgid "[@w{#:auto-enable? #f}] Return a service that runs the @command{bluetoothd} daemon, which manages all the Bluetooth devices and provides a number of D-Bus interfaces.  When AUTO-ENABLE? is true, the bluetooth controller is powered automatically at boot, which can be useful when using a bluetooth keyboard or mouse."
 msgstr ""
 "[@w{#:auto-enable? #f}]\n"
 "Devuelve un servicio que ejecuta el daemon @command{bluetoothd} que gestiona todos los dispositivos Bluetooth y proporciona cierto número de interfaces D-Bus. Cuando @var{auto-enable?} es verdadero, el controlador bluetooth tendrá alimentación automáticamente tras el arranque, lo que puede ser útil si se posee un teclado o un ratón bluetooth."
 
 #. type: deffn
-#: doc/guix.texi:16076
+#: doc/guix.texi:18655
 msgid "Users need to be in the @code{lp} group to access the D-Bus service."
 msgstr "Las usuarias necesitan la pertenencia al grupo @code{lp} para el acceso al servicio D-Bus."
 
 #. type: defvr
-#: doc/guix.texi:16078
+#: doc/guix.texi:18657
 #, no-wrap
 msgid "{Scheme Variable} gnome-keyring-service-type"
 msgstr "{Variable Scheme} gnome-keyring-service-type"
 
 #. type: defvr
-#: doc/guix.texi:16082
-msgid "This is the type of the service that adds the @uref{https://wiki.gnome.org/Projects/GnomeKeyring, GNOME Keyring}.  Its value is a @code{gnome-keyring-configuration} object (see below.)"
+#: doc/guix.texi:18661
+msgid "This is the type of the service that adds the @uref{https://wiki.gnome.org/Projects/GnomeKeyring, GNOME Keyring}.  Its value is a @code{gnome-keyring-configuration} object (see below)."
 msgstr "Es el tipo del servicio que añade el entorno de escritorio el @uref{https://wiki.gnome.org/Projects/GnomeKeyring, anillo de claves de GNOME}. Su valor es un objeto @code{gnome-keyring-configuration} (véase a continuación)."
 
 #. type: defvr
-#: doc/guix.texi:16086
+#: doc/guix.texi:18665
 msgid "This service adds the @code{gnome-keyring} package to the system profile and extends PAM with entries using @code{pam_gnome_keyring.so}, unlocking a user's login keyring when they log in or setting its password with passwd."
 msgstr "Este servicio añade el paquete @code{gnome-keyring} al perfil del sistema y extiende PAM con entradas que usan @code{pam_gnome_keyring.so}, las cuales desbloquean el anillo de claves del sistema de la usuaria cuando ingrese en el sistema o cambie su contraseña con passwd."
 
 #. type: deftp
-#: doc/guix.texi:16088
+#: doc/guix.texi:18667
 #, no-wrap
 msgid "{Data Type} gnome-keyring-configuration"
 msgstr "{Tipo de datos} gnome-keyring-configuration"
 
 #. type: deftp
-#: doc/guix.texi:16090
+#: doc/guix.texi:18669
 msgid "Configuration record for the GNOME Keyring service."
 msgstr "Registro de configuración para el servicio del anillo de claves de GNOME."
 
 #. type: item
-#: doc/guix.texi:16092
+#: doc/guix.texi:18671
 #, no-wrap
 msgid "@code{keyring} (default: @code{gnome-keyring})"
 msgstr "@code{keyring} (predeterminado: @code{gnome-keyring})"
 
 #. type: table
-#: doc/guix.texi:16094
+#: doc/guix.texi:18673
 msgid "The GNOME keyring package to use."
 msgstr "El paquete GNOME keyring usado."
 
 #. type: code{#1}
-#: doc/guix.texi:16095
+#: doc/guix.texi:18674
 #, no-wrap
 msgid "pam-services"
 msgstr "pam-services"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:16100
+#: doc/guix.texi:18679
 msgid "A list of @code{(@var{service} . @var{kind})} pairs denoting PAM services to extend, where @var{service} is the name of an existing service to extend and @var{kind} is one of @code{login} or @code{passwd}."
 msgstr "Una lista de pares @code{(@var{servicio} . @var{tipo})} que denotan los servicios de PAM que deben extenderse, donde @var{servicio} es el nombre de un servicio existente que debe extenderse y @var{tipo} es @code{login} o @code{passwd}."
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:16106
+#: doc/guix.texi:18685
 msgid "If @code{login} is given, it adds an optional @code{pam_gnome_keyring.so} to the auth block without arguments and to the session block with @code{auto_start}.  If @code{passwd} is given, it adds an optional @code{pam_gnome_keyring.so} to the password block without arguments."
 msgstr "Si se proporciona @code{login}, añade un campo opcional @code{pam_gnome_keyring.so} al bloque de identificación sin parámetros y al bloque de sesión con @code{auto_start}. Si se proporciona @code{passwd}, añade un campo opcional @code{pam_gnome_keyring.so} al bloque de contraseña sin parámetros."
 
 #. type: table
-#: doc/guix.texi:16109
+#: doc/guix.texi:18688
 msgid "By default, this field contains ``gdm-password'' with the value @code{login} and ``passwd'' is with the value @code{passwd}."
 msgstr "De manera predeterminada, este campo contiene ``gdm-password'' con el valor @code{login} y ``passwd'' tiene valor @code{passwd}."
 
 # FUZZY
 #. type: cindex
-#: doc/guix.texi:16116
+#: doc/guix.texi:18695
 #, no-wrap
 msgid "sound support"
 msgstr "sonido"
 
 #. type: cindex
-#: doc/guix.texi:16117
+#: doc/guix.texi:18696
 #, no-wrap
 msgid "ALSA"
 msgstr "ALSA"
 
 # FUZZY
 #. type: cindex
-#: doc/guix.texi:16118
+#: doc/guix.texi:18697
 #, no-wrap
 msgid "PulseAudio, sound support"
 msgstr "PulseAudio, sonido"
 
 # FUZZY
 #. type: Plain text
-#: doc/guix.texi:16123
+#: doc/guix.texi:18702
 msgid "The @code{(gnu services sound)} module provides a service to configure the Advanced Linux Sound Architecture (ALSA) system, which makes PulseAudio the preferred ALSA output driver."
 msgstr "El módulo @code{(gnu services sound)} proporciona un servicio para la configuración del sistema ALSA (arquitectura avanzada de sonido de Linux), el cual establece PulseAudio como el controlador de ALSA preferido para salida de sonido."
 
 #. type: deffn
-#: doc/guix.texi:16124
+#: doc/guix.texi:18703
 #, no-wrap
 msgid "{Scheme Variable} alsa-service-type"
 msgstr "{Variable Scheme} alsa-service-type"
 
 #. type: deffn
-#: doc/guix.texi:16129
+#: doc/guix.texi:18708
 msgid "This is the type for the @uref{https://alsa-project.org/, Advanced Linux Sound Architecture} (ALSA) system, which generates the @file{/etc/asound.conf} configuration file.  The value for this type is a @command{alsa-configuration} record as in this example:"
-msgstr "Es el tipo para el sistema @uref{https://alsa-project.org/, ALSA} (Arquitectura de sonido avanzada de Linux), que genera el fichero de configuración @file{/etc/asound.conf}. El valor para este tipo es un registro @command{alsa-configuration} como en el ejemplo:"
+msgstr "Es el tipo para el sistema @uref{https://alsa-project.org/, ALSA} (Arquitectura de sonido avanzada de Linux), que genera el archivo de configuración @file{/etc/asound.conf}. El valor para este tipo es un registro @command{alsa-configuration} como en el ejemplo:"
 
 #. type: lisp
-#: doc/guix.texi:16132
+#: doc/guix.texi:18711
 #, no-wrap
 msgid "(service alsa-service-type)\n"
 msgstr "(service alsa-service-type)\n"
 
 #. type: deffn
-#: doc/guix.texi:16135
+#: doc/guix.texi:18714
 msgid "See below for details about @code{alsa-configuration}."
 msgstr "Véase a continuación más detalles sobre @code{alsa-configuration}."
 
 #. type: deftp
-#: doc/guix.texi:16137
+#: doc/guix.texi:18716
 #, no-wrap
 msgid "{Data Type} alsa-configuration"
 msgstr "{Tipo de datos} alsa-configuration"
 
 #. type: deftp
-#: doc/guix.texi:16139
+#: doc/guix.texi:18718
 msgid "Data type representing the configuration for @code{alsa-service}."
 msgstr "Tipo de datos que representa la configuración para @code{alsa-service}."
 
 #. type: item
-#: doc/guix.texi:16141
+#: doc/guix.texi:18720
 #, no-wrap
 msgid "@code{alsa-plugins} (default: @var{alsa-plugins})"
 msgstr "@code{alsa-plugins} (predeterminados: @var{alsa-plugins})"
 
 #. type: table
-#: doc/guix.texi:16143
+#: doc/guix.texi:18722
 msgid "@code{alsa-plugins} package to use."
 msgstr "El paquete @code{alsa-plugins} usado."
 
 #. type: item
-#: doc/guix.texi:16144
+#: doc/guix.texi:18723
 #, no-wrap
 msgid "@code{pulseaudio?} (default: @var{#t})"
 msgstr "@code{pulseaudio?} (predeterminado: @var{#t})"
 
 #. type: table
-#: doc/guix.texi:16147
+#: doc/guix.texi:18726
 msgid "Whether ALSA applications should transparently be made to use the @uref{https://www.pulseaudio.org/, PulseAudio} sound server."
 msgstr "Determina si las aplicaciones ALSA deben usar el servidor de sonido @uref{https://www.pulseaudio.org/, PulseAudio} de manera transparente."
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:16151
+#: doc/guix.texi:18730
 msgid "Using PulseAudio allows you to run several sound-producing applications at the same time and to individual control them @i{via} @command{pavucontrol}, among other things."
 msgstr "El uso de PulseAudio le permite la ejecución de varias aplicaciones que produzcan sonido al mismo tiempo y su control individual mediante @command{pavucontrol}, entre otras opciones."
 
 #. type: item
-#: doc/guix.texi:16152
+#: doc/guix.texi:18731
 #, no-wrap
 msgid "@code{extra-options} (default: @var{\"\"})"
 msgstr "@code{extra-options} (predeterminado: @var{\"\"})"
 
 #. type: table
-#: doc/guix.texi:16154
+#: doc/guix.texi:18733
 msgid "String to append to the @file{/etc/asound.conf} file."
-msgstr "Cadena a añadir al final del fichero @file{/etc/asound.conf}."
+msgstr "Cadena a añadir al final del archivo @file{/etc/asound.conf}."
 
 # FUZZY
 #. type: Plain text
-#: doc/guix.texi:16160
+#: doc/guix.texi:18739
 msgid "Individual users who want to override the system configuration of ALSA can do it with the @file{~/.asoundrc} file:"
-msgstr "Las usuarias individuales que deseen forzar la configuración de ALSA en el sistema para sus cuentas pueden hacerlo con el fichero @file{~/.asoundrc}:"
+msgstr "Las usuarias individuales que deseen forzar la configuración de ALSA en el sistema para sus cuentas pueden hacerlo con el archivo @file{~/.asoundrc}:"
 
 #. type: example
-#: doc/guix.texi:16166
+#: doc/guix.texi:18745
 #, no-wrap
 msgid ""
 "# In guix, we have to specify the absolute path for plugins.\n"
@@ -31154,7 +35668,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:16175
+#: doc/guix.texi:18754
 #, no-wrap
 msgid ""
 "# Routing ALSA to jack:\n"
@@ -31178,7 +35692,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:16181
+#: doc/guix.texi:18760
 #, no-wrap
 msgid ""
 "  capture_ports @{\n"
@@ -31196,7 +35710,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:16188
+#: doc/guix.texi:18767
 #, no-wrap
 msgid ""
 "pcm.!default @{\n"
@@ -31214,102 +35728,105 @@ msgstr ""
 "@}\n"
 
 #. type: Plain text
-#: doc/guix.texi:16192
+#: doc/guix.texi:18771
 msgid "See @uref{https://www.alsa-project.org/main/index.php/Asoundrc} for the details."
 msgstr "Véase @uref{https://www.alsa-project.org/main/index.php/Asoundrc} para obtener más detalles."
 
 #. type: deffn
-#: doc/guix.texi:16193
+#: doc/guix.texi:18772
 #, no-wrap
 msgid "{Scheme Variable} pulseaudio-service-type"
 msgstr "{Variable Scheme} pulseaudio-service-type"
 
 #. type: deffn
-#: doc/guix.texi:16197
+#: doc/guix.texi:18776
 msgid "This is the type for the @uref{https://www.pulseaudio.org/, PulseAudio} sound server.  It exists to allow system overrides of the default settings via @code{pulseaudio-configuration}, see below."
 msgstr "Tipo de servicio del servidor de sonido @url{https://www.pulseaudio.org/, PulseAudio/,PulseAudio}. Existe para permitir los cambios a nivel de sistema de la configuración predeterminada a través de @code{pulseaudio-configuration}, véase a continuación."
 
+#. type: quotation
+#: doc/guix.texi:18782
+msgid "This service overrides per-user configuration files.  If you want PulseAudio to honor configuration files in @file{~/.config/pulse} you have to unset the environment variables @env{PULSE_CONFIG} and @env{PULSE_CLIENTCONFIG} in your @file{~/.bash_profile}."
+msgstr "Este servicio hace que se ignoren los archivos de configuración de cada usuaria. Si desea que PulseAudio respete los archivos de configuración en @file{~/.config/pulse} tiene que eliminar del entorno (con @code{unset}) las variables @env{PULSE_CONFIG} y @env{PULSE_CLIENTCONFIG} en su archivo @file{~/.bash_profile}."
+
 # FUZZY
 #. type: quotation
-#: doc/guix.texi:16204
+#: doc/guix.texi:18790
 msgid "This service on its own does not ensure, that the @code{pulseaudio} package exists on your machine.  It merely adds configuration files for it, as detailed below.  In the (admittedly unlikely) case, that you find yourself without a @code{pulseaudio} package, consider enabling it through the @code{alsa-service-type} above."
-msgstr "Este servicio no asegura en sí que el paquete @code{pulseaudio} exista en su máquina. Únicamente añade los ficheros de configuración, como se detalla a continuación. En el caso (ciertamente poco probable), de que se encuentre si un paquete pulseaudio @code{pulseaudio}, considere activarlo a través del tipo @code{alsa-service-type} mostrado previamente."
+msgstr "Este servicio no asegura en sí que el paquete @code{pulseaudio} exista en su máquina. Únicamente añade los archivos de configuración, como se detalla a continuación. En el caso (ciertamente poco probable), de que se encuentre si un paquete pulseaudio @code{pulseaudio}, considere activarlo a través del tipo @code{alsa-service-type} mostrado previamente."
 
 #. type: deftp
-#: doc/guix.texi:16207
+#: doc/guix.texi:18793
 #, no-wrap
 msgid "{Data Type} pulseaudio-configuration"
 msgstr "{Tipo de datos} pulseaudio-configuration"
 
 #. type: deftp
-#: doc/guix.texi:16209
+#: doc/guix.texi:18795
 msgid "Data type representing the configuration for @code{pulseaudio-service}."
 msgstr "Tipo de datos que representa la configuración para @code{pulseaudio-service}."
 
 #. type: item
-#: doc/guix.texi:16211
+#: doc/guix.texi:18797
 #, no-wrap
-msgid "@var{client-conf} (default: @code{'()})"
-msgstr "@var{client-conf} (predeterminada: @code{'()})"
+msgid "@code{client-conf} (default: @code{'()})"
+msgstr "@code{client-conf} (predeterminada: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:16216
+#: doc/guix.texi:18802
 msgid "List of settings to set in @file{client.conf}.  Accepts a list of strings or a symbol-value pairs.  A string will be inserted as-is with a newline added.  A pair will be formatted as ``key = value'', again with a newline added."
 msgstr "Lista de opciones de configuración de @file{client.conf}. Acepta una lista de cadenas o pares símbolo-valor. Las cadenas se introducirán literalmente añadiendo un salto de línea. Los pares tendrán formato ``clave = valor'', de nuevo añadiendo un salto de línea."
 
 #. type: item
-#: doc/guix.texi:16217
+#: doc/guix.texi:18803
 #, no-wrap
-msgid "@var{daemon-conf} (default: @code{'((flat-volumes . no))})"
-msgstr "@var{daemon-conf} (predeterminada: @code{'((flat-volumes . no))})"
+msgid "@code{daemon-conf} (default: @code{'((flat-volumes . no))})"
+msgstr "@code{daemon-conf} (predeterminada: @code{'((flat-volumes . no))})"
 
 #. type: table
-#: doc/guix.texi:16220
+#: doc/guix.texi:18806
 msgid "List of settings to set in @file{daemon.conf}, formatted just like @var{client-conf}."
 msgstr "Lista de opciones de configuración de @file{daemon.conf}, con el mismo formato que @var{client-conf}."
 
 #. type: item
-#: doc/guix.texi:16221
+#: doc/guix.texi:18807
 #, no-wrap
-msgid "@var{script-file} (default: @code{(file-append pulseaudio \"/etc/pulse/default.pa\")})"
-msgstr "@var{script-file} (predeterminado: @code{(file-append pulseaudio \"/etc/pulse/default.pa\")})"
+msgid "@code{script-file} (default: @code{(file-append pulseaudio \"/etc/pulse/default.pa\")})"
+msgstr "@code{script-file} (predeterminado: @code{(file-append pulseaudio \"/etc/pulse/default.pa\")})"
 
-# TODO: Typo
 #. type: table
-#: doc/guix.texi:16223
-msgid "Script file to use as as @file{default.pa}."
-msgstr "Fichero del guión usado como @file{default.pa}"
+#: doc/guix.texi:18809
+msgid "Script file to use as @file{default.pa}."
+msgstr "Archivo del guión usado como @file{default.pa}"
 
 #. type: item
-#: doc/guix.texi:16224
+#: doc/guix.texi:18810
 #, no-wrap
-msgid "@var{system-script-file} (default: @code{(file-append pulseaudio \"/etc/pulse/system.pa\")})"
-msgstr "@var{system-script-file} (predeterminado: @code{(file-append pulseaudio \"/etc/pulse/system.pa\")})"
+msgid "@code{system-script-file} (default: @code{(file-append pulseaudio \"/etc/pulse/system.pa\")})"
+msgstr "@code{system-script-file} (predeterminado: @code{(file-append pulseaudio \"/etc/pulse/system.pa\")})"
 
-# TODO: Typo
 #. type: table
-#: doc/guix.texi:16226
-msgid "Script file to use as as @file{system.pa}."
-msgstr "Fichero del guión usado como @file{system.pa}"
+#: doc/guix.texi:18812
+msgid "Script file to use as @file{system.pa}."
+msgstr "Archivo del guión usado como @file{system.pa}"
 
 #. type: deffn
-#: doc/guix.texi:16229
+#: doc/guix.texi:18815
 #, no-wrap
 msgid "{Scheme Variable} ladspa-service-type"
 msgstr "{Variable Scheme} ladspa-service-type"
 
 #. type: deffn
-#: doc/guix.texi:16232
+#: doc/guix.texi:18818
 msgid "This service sets the @var{LADSPA_PATH} variable, so that programs, which respect it, e.g. PulseAudio, can load LADSPA plugins."
 msgstr "Este servicio proporciona valor a la variable @var{LADSPA_PATH}, de manera que los programas que lo tengan en cuenta, por ejemplo PulseAudio, puedan cargar módulos LADSPA."
 
 #. type: deffn
-#: doc/guix.texi:16235
+#: doc/guix.texi:18821
 msgid "The following example will setup the service to enable modules from the @code{swh-plugins} package:"
 msgstr "El siguiente ejemplo configura el servicio para permitir la activación de los módulos del paquete @code{swh-plugins}:"
 
 #. type: lisp
-#: doc/guix.texi:16239
+#: doc/guix.texi:18825
 #, no-wrap
 msgid ""
 "(service ladspa-service-type\n"
@@ -31319,59 +35836,153 @@ msgstr ""
 "         (ladspa-configuration (plugins (list swh-plugins))))\n"
 
 #. type: deffn
-#: doc/guix.texi:16243
+#: doc/guix.texi:18829
 msgid "See @uref{http://plugin.org.uk/ladspa-swh/docs/ladspa-swh.html} for the details."
 msgstr "Véase @uref{http://plugin.org.uk/ladspa-swh/docs/ladspa-swh.html} para obtener más detalles."
 
 #. type: cindex
-#: doc/guix.texi:16250
+#: doc/guix.texi:18836
 #, no-wrap
 msgid "SQL"
 msgstr "SQL"
 
 #. type: Plain text
-#: doc/guix.texi:16252
+#: doc/guix.texi:18838
 msgid "The @code{(gnu services databases)} module provides the following services."
 msgstr "El módulo @code{(gnu services databases)} proporciona los siguientes servicios."
 
-#. type: deffn
-#: doc/guix.texi:16253
+#. type: subsubheading
+#: doc/guix.texi:18839
 #, no-wrap
-msgid "{Scheme Procedure} postgresql-service [#:postgresql postgresql] @"
-msgstr "{Procedimiento Scheme} postgresql-service [#:postgresql postgresql] @"
+msgid "PostgreSQL"
+msgstr "PostgreSQL"
 
-#. type: deffn
-#: doc/guix.texi:16258
-msgid "[#:config-file] [#:data-directory ``/var/lib/postgresql/data''] @ [#:port 5432] [#:locale ``en_US.utf8''] [#:extension-packages '()] Return a service that runs @var{postgresql}, the PostgreSQL database server."
+#. type: Plain text
+#: doc/guix.texi:18843
+msgid "The following example describes a PostgreSQL service with the default configuration."
+msgstr "El ejemplo siguiente describe un servicio PostgreSQL con su configuración predeterminada."
+
+#. type: lisp
+#: doc/guix.texi:18848
+#, no-wrap
+msgid ""
+"(service postgresql-service-type\n"
+"         (postgresql-configuration\n"
+"          (postgresql postgresql-10)))\n"
 msgstr ""
-"[#:config-file] [#:data-directory ``/var/lib/postgresql/data''] @ [#:port 5432] [#:locale ``en_US.utf8''] [#:extension-packages '()]\n"
-"Devuelve un servicio que ejecuta @var{postgresql}, el servidor de bases de datos PostgreSQL."
+"(service postgresql-service-type\n"
+"         (postgresql-configuration\n"
+"          (postgresql postgresql-10)))\n"
 
-#. type: deffn
-#: doc/guix.texi:16262
-msgid "The PostgreSQL daemon loads its runtime configuration from @var{config-file}, creates a database cluster with @var{locale} as the default locale, stored in @var{data-directory}.  It then listens on @var{port}."
-msgstr "El daemon de PostgreSQL carga su configuración de tiempo de ejecución desde @var{config-file}, crea un cluster de bases de datos con @var{locale} como la localización predeterminada, almacenado en @var{data-directory}. Una vez hecho esto, escucha en @var{port}."
+#. type: Plain text
+#: doc/guix.texi:18854
+msgid "If the services fails to start, it may be due to an incompatible cluster already present in @var{data-directory}.  Adjust it (or, if you don't need the cluster anymore, delete @var{data-directory}), then restart the service."
+msgstr "Si los servicios fallan al arrancar puede deberse a que ya se encuentra presente otro cluster incompatible en @var{data-directory}. Puede modificar el valor (o, si no necesita más dicho cluster, borrar @var{data-directory}), y reiniciar el servicio."
+
+#. type: Plain text
+#: doc/guix.texi:18861
+msgid "Peer authentication is used by default and the @code{postgres} user account has no shell, which prevents the direct execution of @code{psql} commands as this user.  To use @code{psql}, you can temporarily log in as @code{postgres} using a shell, create a PostgreSQL superuser with the same name as one of the system users and then create the associated database."
+msgstr "La identificación de pares se usa de manera predeterminada y la cuenta de usuaria @code{postgres} no tiene intérprete predeterminado, lo que evita la ejecución directa de órdenes @code{psql} bajo dicha cuenta.  Para usar @code{psql}, puede ingresar temporalmente al sistema como @code{postgres} usando un intérprete de órdenes, crear una cuenta de administración de PostgreSQL con el mismo nombre de una de las usuarias del sistema y, tras esto, crear la base de datos asociada."
+
+#. type: example
+#: doc/guix.texi:18866
+#, no-wrap
+msgid ""
+"sudo -u postgres -s /bin/sh\n"
+"createuser --interactive\n"
+"createdb $MY_USER_LOGIN      # Replace appropriately.\n"
+msgstr ""
+"sudo -u postgres -s /bin/sh\n"
+"createuser --interactive\n"
+"createdb $MI_CUENTA_DE_USUARIA  # Sustituir por el valor apropiado.\n"
+
+#. type: deftp
+#: doc/guix.texi:18868
+#, no-wrap
+msgid "{Data Type} postgresql-configuration"
+msgstr "{Tipo de datos} postgresql-configuration"
+
+#. type: deftp
+#: doc/guix.texi:18871
+msgid "Data type representing the configuration for the @code{postgresql-service-type}."
+msgstr "Tipo de datos que representa la configuración de @code{postgresql-service-type}."
+
+#. type: code{#1}
+#: doc/guix.texi:18873
+#, no-wrap
+msgid "postgresql"
+msgstr "postgresql"
+
+#. type: table
+#: doc/guix.texi:18875
+msgid "PostgreSQL package to use for the service."
+msgstr "El paquete PostgreSQL usado para este servicio."
+
+#. type: item
+#: doc/guix.texi:18876
+#, no-wrap
+msgid "@code{port} (default: @code{5432})"
+msgstr "@code{port} (predeterminado: @code{5432})"
+
+#. type: table
+#: doc/guix.texi:18878
+msgid "Port on which PostgreSQL should listen."
+msgstr "Puerto en el que debe escuchar PostgreSQL."
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:18881
+msgid "Locale to use as the default when creating the database cluster."
+msgstr "Localización predeterminada cuando se crea el cluster de la base de datos."
+
+#. type: item
+#: doc/guix.texi:18882
+#, no-wrap
+msgid "@code{config-file} (default: @code{(postgresql-config-file)})"
+msgstr "@code{config-file} (predeterminado: @code{(postgresql-config-file)})"
+
+#. type: table
+#: doc/guix.texi:18886
+msgid "The configuration file to use when running PostgreSQL.  The default behaviour uses the postgresql-config-file record with the default values for the fields."
+msgstr "Archivo de configuración usado para la ejecución de PostgreSQL. El comportamiento predeterminado usa el registro @code{postgresql-config-file} con los valores predeterminados de los campos."
+
+#. type: item
+#: doc/guix.texi:18887
+#, no-wrap
+msgid "@code{data-directory} (default: @code{\"/var/lib/postgresql/data\"})"
+msgstr "@code{data-directory} (predeterminado: @code{\"/var/lib/postgresql/data\"})"
+
+#. type: table
+#: doc/guix.texi:18889
+msgid "Directory in which to store the data."
+msgstr "Directorio en el que se almacenan los datos."
+
+#. type: item
+#: doc/guix.texi:18890
+#, no-wrap
+msgid "@code{extension-packages} (default: @code{'()})"
+msgstr "@code{extension-packages} (predeterminado: @code{'()})"
 
 # FUZZY
 #. type: cindex
-#: doc/guix.texi:16263
+#: doc/guix.texi:18891
 #, no-wrap
 msgid "postgresql extension-packages"
 msgstr "paquetes de extensión de postgresql (extension-packages)"
 
-#. type: deffn
-#: doc/guix.texi:16268
+#. type: table
+#: doc/guix.texi:18896
 msgid "Additional extensions are loaded from packages listed in @var{extension-packages}.  Extensions are available at runtime.  For instance, to create a geographic database using the @code{postgis} extension, a user can configure the postgresql-service as in this example:"
 msgstr "Las extensiones adicionales se cargan de paquetes enumerados en @var{extension-packages}. Las extensiones están disponibles en tiempo de ejecución. Por ejemplo, para crear una base de datos geográfica con la extensión @code{postgis}, una usuaria podría configurar el servicio postgresql-service como en este ejemplo:"
 
 #. type: cindex
-#: doc/guix.texi:16269
+#: doc/guix.texi:18897
 #, no-wrap
 msgid "postgis"
 msgstr "postgis"
 
 #. type: lisp
-#: doc/guix.texi:16272
+#: doc/guix.texi:18900
 #, no-wrap
 msgid ""
 "(use-package-modules databases geo)\n"
@@ -31381,7 +35992,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:16282
+#: doc/guix.texi:18913
 #, no-wrap
 msgid ""
 "(operating-system\n"
@@ -31391,7 +36002,10 @@ msgid ""
 "  (packages (cons* postgresql %base-packages))\n"
 "  (services\n"
 "    (cons*\n"
-"      (postgresql-service #:extension-packages (list postgis))\n"
+"      (service postgresql-service-type\n"
+"               (postgresql-configuration\n"
+"                (postgresql postgresql-10)\n"
+"                (extension-packages (list postgis))))\n"
 "      %base-services)))\n"
 msgstr ""
 "(operating-system\n"
@@ -31401,17 +36015,20 @@ msgstr ""
 "  (packages (cons* postgresql %base-packages))\n"
 "  (services\n"
 "    (cons*\n"
-"      (postgresql-service #:extension-packages (list postgis))\n"
+"      (service postgresql-service-type\n"
+"               (postgresql-configuration\n"
+"                (postgresql postgresql-10)\n"
+"                (extension-packages (list postgis))))\n"
 "      %base-services)))\n"
 
 # FUZZY
-#. type: deffn
-#: doc/guix.texi:16286
+#. type: table
+#: doc/guix.texi:18917
 msgid "Then the extension becomes visible and you can initialise an empty geographic database in this way:"
 msgstr "Una vez hecho, la extensión estará visible y podrá inicializar una base de datos geográfica de este modo:"
 
 #. type: example
-#: doc/guix.texi:16293
+#: doc/guix.texi:18924
 #, no-wrap
 msgid ""
 "psql -U postgres\n"
@@ -31428,329 +36045,444 @@ msgstr ""
 
 # FUZZY
 # TODO (MAAV): Revisar
-#. type: deffn
-#: doc/guix.texi:16298
+#. type: table
+#: doc/guix.texi:18929
 msgid "There is no need to add this field for contrib extensions such as hstore or dblink as they are already loadable by postgresql.  This field is only required to add extensions provided by other packages."
 msgstr "No es necesaria la adición de este campo para extensiones incluidas en la distribución oficial@footnote{NdT: ``contrib'' de ``contributed'' en inglés, ``contribuciones'' podría entenderse en castellano.} como hstore o dblink, puesto que ya pueden cargarse en postgresql. Este campo únicamente es necesario para extensiones proporcionadas por otros paquetes."
 
+#. type: deftp
+#: doc/guix.texi:18933
+#, no-wrap
+msgid "{Data Type} postgresql-config-file"
+msgstr "{Tipo de datos} postgresql-config-file"
+
+#. type: deftp
+#: doc/guix.texi:18939
+msgid "Data type representing the PostgreSQL configuration file.  As shown in the following example, this can be used to customize the configuration of PostgreSQL.  Note that you can use any G-expression or filename in place of this record, if you already have a configuration file you'd like to use for example."
+msgstr "Tipo de datos que representa el archivo de configuración de PostgreSQL. Como se muestra en el siguiente ejemplo, se puede usar para personalizar la configuración de PostgreSQL. Tenga en cuenta que puede usar cualquier expresión-G o nombre de archivo en lugar de este registro, en caso de que, por ejemplo, ya tenga un archivo que desee usar."
+
+#. type: lisp
+#: doc/guix.texi:18959
+#, no-wrap
+msgid ""
+"(service postgresql-service-type\n"
+"         (postgresql-configuration\n"
+"          (config-file\n"
+"           (postgresql-config-file\n"
+"            (log-destination \"stderr\")\n"
+"            (hba-file\n"
+"             (plain-file \"pg_hba.conf\"\n"
+"                         \"\n"
+"local\tall\tall\t\t\ttrust\n"
+"host\tall\tall\t127.0.0.1/32 \tmd5\n"
+"host\tall\tall\t::1/128 \tmd5\"))\n"
+"            (extra-config\n"
+"             '((\"session_preload_libraries\"     \"'auto_explain'\")\n"
+"               (\"random_page_cost\"              \"2\")\n"
+"               (\"auto_explain.log_min_duration\" \"'100ms'\")\n"
+"               (\"work_mem\"                      \"'500MB'\")\n"
+"               (\"logging_collector\"             \"on\")\n"
+"               (\"log_directory\"                 \"'/var/log/postgresql'\")))))))\n"
+msgstr ""
+"(service postgresql-service-type\n"
+"         (postgresql-configuration\n"
+"          (config-file\n"
+"           (postgresql-config-file\n"
+"            (log-destination \"stderr\")\n"
+"            (hba-file\n"
+"             (plain-file \"pg_hba.conf\"\n"
+"                         \"\n"
+"local\tall\tall\t\t\ttrust\n"
+"host\tall\tall\t127.0.0.1/32 \tmd5\n"
+"host\tall\tall\t::1/128 \tmd5\"))\n"
+"            (extra-config\n"
+"             '((\"session_preload_libraries\"     \"'auto_explain'\")\n"
+"               (\"random_page_cost\"              \"2\")\n"
+"               (\"auto_explain.log_min_duration\" \"'100ms'\")\n"
+"               (\"work_mem\"                      \"'500MB'\")\n"
+"               (\"logging_collector\"             \"on\")\n"
+"               (\"log_directory\"                 \"'/var/log/postgresql'\")))))))\n"
+
+#. type: item
+#: doc/guix.texi:18962
+#, no-wrap
+msgid "@code{log-destination} (default: @code{\"syslog\"})"
+msgstr "@code{log-destination} (predeterminado: @code{\"syslog\"})"
+
+#. type: table
+#: doc/guix.texi:18965
+msgid "The logging method to use for PostgreSQL.  Multiple values are accepted, separated by commas."
+msgstr "El método de registro usado por PostgreSQL. Se admiten múltiples valores separados por comas."
+
+#. type: item
+#: doc/guix.texi:18966
+#, no-wrap
+msgid "@code{hba-file} (default: @code{%default-postgres-hba})"
+msgstr "@code{hba-file} (predeterminado: @code{%default-postgres-hba})"
+
+#. type: table
+#: doc/guix.texi:18969
+msgid "Filename or G-expression for the host-based authentication configuration."
+msgstr "Nombre de archivo o expresión-G para la configuración de identificación basada en nombres de máquina."
+
+#. type: item
+#: doc/guix.texi:18970
+#, no-wrap
+msgid "@code{ident-file} (default: @code{%default-postgres-ident})"
+msgstr "@code{ident-file} (predeterminado: @code{%default-postgres-ident})"
+
+#. type: table
+#: doc/guix.texi:18972
+msgid "Filename or G-expression for the user name mapping configuration."
+msgstr "Nombre de archivo o expresión-G para la configuración de asociación de nombres de usuaria."
+
+#. type: table
+#: doc/guix.texi:18977
+msgid "List of additional keys and values to include in the PostgreSQL config file.  Each entry in the list should be a list where the first element is the key, and the remaining elements are the values."
+msgstr "Claves y valores adicionales que se incluirán en el archivo de configuración de PostgreSQL. Cada entrada en la lista debe ser una lista cuyo primer elemento sea la clave y los elementos restantes son los valores."
+
+#. type: subsubheading
+#: doc/guix.texi:18981
+#, no-wrap
+msgid "MariaDB/MySQL"
+msgstr "MariaDB/MySQL"
+
 #. type: deffn
-#: doc/guix.texi:16300
+#: doc/guix.texi:18983
 #, no-wrap
 msgid "{Scheme Procedure} mysql-service [#:config (mysql-configuration)]"
 msgstr "{Procedimiento Scheme} mysql-service [#:config (mysql-configuration)]"
 
 #. type: deffn
-#: doc/guix.texi:16303
+#: doc/guix.texi:18986
 msgid "Return a service that runs @command{mysqld}, the MySQL or MariaDB database server."
 msgstr "Devuelve un servicio que ejecuta @command{mysqld}, el servidor de base de datos MySQL o MariaDB."
 
 #. type: deffn
-#: doc/guix.texi:16306
+#: doc/guix.texi:18989
 msgid "The optional @var{config} argument specifies the configuration for @command{mysqld}, which should be a @code{<mysql-configuration>} object."
 msgstr "El parámetro opcional @var{config} especifica la configuración para @command{mysqld}, que debe ser un objeto @code{<mysql-configuration>}."
 
 #. type: deftp
-#: doc/guix.texi:16308
+#: doc/guix.texi:18991
 #, no-wrap
 msgid "{Data Type} mysql-configuration"
 msgstr "{Tipo de datos} mysql-configuration"
 
 #. type: deftp
-#: doc/guix.texi:16310
+#: doc/guix.texi:18993
 msgid "Data type representing the configuration of @var{mysql-service}."
 msgstr "Tipo de datos que representa la configuración para @code{mysql-service}."
 
 #. type: item
-#: doc/guix.texi:16312
+#: doc/guix.texi:18995
 #, no-wrap
 msgid "@code{mysql} (default: @var{mariadb})"
 msgstr "@code{mysql} (predeterminado: @var{mariadb})"
 
 #. type: table
-#: doc/guix.texi:16315
+#: doc/guix.texi:18998
 msgid "Package object of the MySQL database server, can be either @var{mariadb} or @var{mysql}."
 msgstr "Objeto de paquete del servidor de bases de datos MySQL, puede ser tanto @var{mariadb} como @var{mysql}."
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:16318
+#: doc/guix.texi:19001
 msgid "For MySQL, a temporary root password will be displayed at activation time.  For MariaDB, the root password is empty."
 msgstr "Para MySQL, se mostrará una contraseña de root temporal durante el tiempo de activación.  Para MariaDB, la contraseña de root está vacía."
 
 #. type: item
-#: doc/guix.texi:16319
+#: doc/guix.texi:19002
 #, no-wrap
 msgid "@code{port} (default: @code{3306})"
 msgstr "@code{port} (predeterminado: @code{3306})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:16321
+#: doc/guix.texi:19004
 msgid "TCP port on which the database server listens for incoming connections."
 msgstr "Puerto TCP en el que escucha el servidor de bases de datos a la espera de conexiones entrantes."
 
+#. type: subsubheading
+#: doc/guix.texi:19007
+#, no-wrap
+msgid "Memcached"
+msgstr "Memcached"
+
 #. type: defvr
-#: doc/guix.texi:16324
+#: doc/guix.texi:19009
 #, no-wrap
 msgid "{Scheme Variable} memcached-service-type"
 msgstr "{Variable Scheme} memcached-service-type"
 
 # FUZZY
 #. type: defvr
-#: doc/guix.texi:16328
+#: doc/guix.texi:19013
 msgid "This is the service type for the @uref{https://memcached.org/, Memcached} service, which provides a distributed in memory cache.  The value for the service type is a @code{memcached-configuration} object."
 msgstr "Este es el tipo de servicio para el servicio @uref{https://memcached.org/, Memcached}, que proporciona caché distribuida en memoria.  El valor para este tipo de servicio es un objeto @code{memcached-configuration}."
 
 #. type: lisp
-#: doc/guix.texi:16332
+#: doc/guix.texi:19017
 #, no-wrap
 msgid "(service memcached-service-type)\n"
 msgstr "(service memcached-service-type)\n"
 
 #. type: deftp
-#: doc/guix.texi:16334
+#: doc/guix.texi:19019
 #, no-wrap
 msgid "{Data Type} memcached-configuration"
 msgstr "{Tipo de datos} memcached-configuration"
 
 #. type: deftp
-#: doc/guix.texi:16336
+#: doc/guix.texi:19021
 msgid "Data type representing the configuration of memcached."
 msgstr "Tipo de datos que representa la configuración de memcached."
 
 #. type: item
-#: doc/guix.texi:16338
+#: doc/guix.texi:19023
 #, no-wrap
 msgid "@code{memcached} (default: @code{memcached})"
 msgstr "@code{memcached} (predeterminado: @code{memcached})"
 
 #. type: table
-#: doc/guix.texi:16340
+#: doc/guix.texi:19025
 msgid "The Memcached package to use."
 msgstr "El paquete de Memcached usado."
 
 #. type: item
-#: doc/guix.texi:16341
+#: doc/guix.texi:19026
 #, no-wrap
 msgid "@code{interfaces} (default: @code{'(\"0.0.0.0\")})"
 msgstr "@code{interfaces} (predeterminadas: @code{'(\"0.0.0.0\")})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:16343
+#: doc/guix.texi:19028
 msgid "Network interfaces on which to listen."
 msgstr "Interfaces de red por las que se esperan conexiones."
 
 #. type: item
-#: doc/guix.texi:16344
+#: doc/guix.texi:19029
 #, no-wrap
 msgid "@code{tcp-port} (default: @code{11211})"
 msgstr "@code{tcp-port} (predeterminado: @code{11211})"
 
 #. type: table
-#: doc/guix.texi:16346
+#: doc/guix.texi:19031
 msgid "Port on which to accept connections on,"
 msgstr "Puerto en el que se deben aceptar conexiones,"
 
 #. type: item
-#: doc/guix.texi:16347
+#: doc/guix.texi:19032
 #, no-wrap
 msgid "@code{udp-port} (default: @code{11211})"
 msgstr "@code{udp-port} (predeterminado: @code{11211})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:16350
+#: doc/guix.texi:19035
 msgid "Port on which to accept UDP connections on, a value of 0 will disable listening on a UDP socket."
 msgstr "Puerto en el que se deben aceptar conexiones UDP, el valor 0 desactiva la escucha en un socket UDP."
 
 #. type: item
-#: doc/guix.texi:16351
+#: doc/guix.texi:19036
 #, no-wrap
 msgid "@code{additional-options} (default: @code{'()})"
 msgstr "@code{additional-options} (predeterminadas: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:16353
+#: doc/guix.texi:19038
 msgid "Additional command line options to pass to @code{memcached}."
 msgstr "Opciones de línea de órdenes adicionales que se le proporcionarán a @code{memcached}."
 
+#. type: subsubheading
+#: doc/guix.texi:19041
+#, no-wrap
+msgid "MongoDB"
+msgstr "MongoDB"
+
 #. type: defvr
-#: doc/guix.texi:16356
+#: doc/guix.texi:19043
 #, no-wrap
 msgid "{Scheme Variable} mongodb-service-type"
 msgstr "{Variable Scheme} mongodb-service-type"
 
 #. type: defvr
-#: doc/guix.texi:16359
+#: doc/guix.texi:19046
 msgid "This is the service type for @uref{https://www.mongodb.com/, MongoDB}.  The value for the service type is a @code{mongodb-configuration} object."
 msgstr "Este es el tipo de servicio para @uref{https://www.mongodb.com/, MongoDB}. El valor para este tipo de servicio es un objeto @code{mongodb-configuration}."
 
 #. type: lisp
-#: doc/guix.texi:16363
+#: doc/guix.texi:19050
 #, no-wrap
 msgid "(service mongodb-service-type)\n"
 msgstr "(service mongodb-service-type)\n"
 
 #. type: deftp
-#: doc/guix.texi:16365
+#: doc/guix.texi:19052
 #, no-wrap
 msgid "{Data Type} mongodb-configuration"
 msgstr "{Tipo de datos} mongodb-configuration"
 
 #. type: deftp
-#: doc/guix.texi:16367
+#: doc/guix.texi:19054
 msgid "Data type representing the configuration of mongodb."
 msgstr "Tipo de datos que representa la configuración de GPM."
 
 #. type: item
-#: doc/guix.texi:16369
+#: doc/guix.texi:19056
 #, no-wrap
 msgid "@code{mongodb} (default: @code{mongodb})"
 msgstr "@code{mongodb} (predeterminado: @code{mongodb})"
 
 #. type: table
-#: doc/guix.texi:16371
+#: doc/guix.texi:19058
 msgid "The MongoDB package to use."
 msgstr "El paquete MongoDB usado."
 
 #. type: item
-#: doc/guix.texi:16372
+#: doc/guix.texi:19059
 #, no-wrap
 msgid "@code{config-file} (default: @code{%default-mongodb-configuration-file})"
 msgstr "@code{config-file} (predeterminado: @code{%default-mongodb-configuration-file})"
 
 #. type: table
-#: doc/guix.texi:16374
+#: doc/guix.texi:19061
 msgid "The configuration file for MongoDB."
-msgstr "El fichero de configuración de MongoDB."
+msgstr "El archivo de configuración de MongoDB."
 
 #. type: item
-#: doc/guix.texi:16375
+#: doc/guix.texi:19062
 #, no-wrap
 msgid "@code{data-directory} (default: @code{\"/var/lib/mongodb\"})"
 msgstr "@code{data-directory} (predeterminado: @code{\"/var/lib/mongodb\"})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:16379
+#: doc/guix.texi:19066
 msgid "This value is used to create the directory, so that it exists and is owned by the mongodb user.  It should match the data-directory which MongoDB is configured to use through the configuration file."
-msgstr "Este valor se usa para la creación del directorio, de modo que exista y sea propiedad de la usuaria mongodb. Debe corresponder con el directorio de datos para el que se ha configurado MongoDB a través del fichero de configuración."
+msgstr "Este valor se usa para la creación del directorio, de modo que exista y sea propiedad de la usuaria mongodb. Debe corresponder con el directorio de datos para el que se ha configurado MongoDB a través del archivo de configuración."
+
+#. type: subsubheading
+#: doc/guix.texi:19069
+#, no-wrap
+msgid "Redis"
+msgstr "Redis"
 
 #. type: defvr
-#: doc/guix.texi:16382
+#: doc/guix.texi:19071
 #, no-wrap
 msgid "{Scheme Variable} redis-service-type"
 msgstr "{Variable Scheme} redis-service-type"
 
 #. type: defvr
-#: doc/guix.texi:16385
+#: doc/guix.texi:19074
 msgid "This is the service type for the @uref{https://redis.io/, Redis} key/value store, whose value is a @code{redis-configuration} object."
 msgstr "Es el tipo de servicio para el almacén de clave/valor @uref{https://redis.io/, Redis}, cuyo valor es un objeto @code{redis-configuration}."
 
 #. type: deftp
-#: doc/guix.texi:16387
+#: doc/guix.texi:19076
 #, no-wrap
 msgid "{Data Type} redis-configuration"
 msgstr "{Tipo de datos} redis-configuration"
 
 #. type: deftp
-#: doc/guix.texi:16389
+#: doc/guix.texi:19078
 msgid "Data type representing the configuration of redis."
 msgstr "Tipo de datos que representa la configuración de redis."
 
 #. type: item
-#: doc/guix.texi:16391
+#: doc/guix.texi:19080
 #, no-wrap
 msgid "@code{redis} (default: @code{redis})"
 msgstr "@code{redis} (predeterminado: @code{redis})"
 
 #. type: table
-#: doc/guix.texi:16393
+#: doc/guix.texi:19082
 msgid "The Redis package to use."
 msgstr "El paquete Redis usado."
 
 #. type: item
-#: doc/guix.texi:16394
+#: doc/guix.texi:19083
 #, no-wrap
 msgid "@code{bind} (default: @code{\"127.0.0.1\"})"
 msgstr "@code{bind} (predeterminada: @code{\"127.0.0.1\"})"
 
 #. type: table
-#: doc/guix.texi:16396
+#: doc/guix.texi:19085
 msgid "Network interface on which to listen."
 msgstr "La interfaz de red en la que se escucha."
 
 #. type: item
-#: doc/guix.texi:16397
+#: doc/guix.texi:19086
 #, no-wrap
 msgid "@code{port} (default: @code{6379})"
 msgstr "@code{port} (predeterminado: @code{6379})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:16400
+#: doc/guix.texi:19089
 msgid "Port on which to accept connections on, a value of 0 will disable listening on a TCP socket."
 msgstr "Puerto en el que se aceptan conexiones, el valor 0 desactiva la escucha en un socket TCP."
 
 #. type: item
-#: doc/guix.texi:16401
+#: doc/guix.texi:19090
 #, no-wrap
 msgid "@code{working-directory} (default: @code{\"/var/lib/redis\"})"
 msgstr "@code{working-directory} (predeterminado: @code{\"/var/lib/redis\"})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:16403
+#: doc/guix.texi:19092
 msgid "Directory in which to store the database and related files."
-msgstr "Directorio en el que se almacena los ficheros de base de datos y relacionados."
+msgstr "Directorio en el que se almacena los archivos de base de datos y relacionados."
 
 #. type: cindex
-#: doc/guix.texi:16409
+#: doc/guix.texi:19098
 #, no-wrap
 msgid "mail"
 msgstr "correo"
 
-#. type: code{#1}
-#: doc/guix.texi:16410 doc/guix.texi:21133
+#. type: cindex
+#: doc/guix.texi:19099
 #, no-wrap
 msgid "email"
 msgstr "correo electrónico (email)"
 
 #. type: Plain text
-#: doc/guix.texi:16415
+#: doc/guix.texi:19104
 msgid "The @code{(gnu services mail)} module provides Guix service definitions for email services: IMAP, POP3, and LMTP servers, as well as mail transport agents (MTAs).  Lots of acronyms! These services are detailed in the subsections below."
 msgstr "El módulo @code{(gnu services mail)} proporciona definiciones de servicios Guix para servicios de correo electrónico: servidores IMAP, POP3 y LMTP, así como agentes de transporte de correo (MTA). ¡Muchos acrónimos! Estos servicios se detallan en las subsecciones a continuación."
 
 #. type: subsubheading
-#: doc/guix.texi:16416
+#: doc/guix.texi:19105
 #, no-wrap
 msgid "Dovecot Service"
 msgstr "Servicio Dovecot"
 
 #. type: deffn
-#: doc/guix.texi:16418
+#: doc/guix.texi:19107
 #, no-wrap
 msgid "{Scheme Procedure} dovecot-service [#:config (dovecot-configuration)]"
 msgstr "{Procedimiento Scheme} dovecot-service [#:config (dovecot-configuration)]"
 
 #. type: deffn
-#: doc/guix.texi:16420
+#: doc/guix.texi:19109
 msgid "Return a service that runs the Dovecot IMAP/POP3/LMTP mail server."
 msgstr "Devuelve un servicio que ejecuta el servidor de correo IMAP/POP3/LMTP Dovecot."
 
 #. type: Plain text
-#: doc/guix.texi:16430
+#: doc/guix.texi:19119
 msgid "By default, Dovecot does not need much configuration; the default configuration object created by @code{(dovecot-configuration)} will suffice if your mail is delivered to @code{~/Maildir}.  A self-signed certificate will be generated for TLS-protected connections, though Dovecot will also listen on cleartext ports by default.  There are a number of options, though, which mail administrators might need to change, and as is the case with other services, Guix allows the system administrator to specify these parameters via a uniform Scheme interface."
 msgstr "Habitualmente Dovecot no necesita mucha configuración; el objeto de configuración predeterminado creado por @code{(dovecot-configuration)} es suficiente si su correo se entrega en @code{~/Maildir}. Un certificado auto-firmado se generará para las conexiones protegidas por TLS, aunque Dovecot también escuchará en puertos sin cifrar de manera predeterminada. Existe un amplio número de opciones no obstante, las cuales las administradoras del correo puede que deban cambiar, y como en el caso de otros servicios, Guix permite a la administradora del sistema la especificación de dichos parámetros a través de una interfaz Scheme uniforme."
 
 #. type: Plain text
-#: doc/guix.texi:16433
+#: doc/guix.texi:19122
 msgid "For example, to specify that mail is located at @code{maildir~/.mail}, one would instantiate the Dovecot service like this:"
 msgstr "Por ejemplo, para especificar que el correo se encuentra en @code{maildir:~/.correo}, se debe instanciar el servicio de Dovecot de esta manera:"
 
 #. type: lisp
-#: doc/guix.texi:16438
+#: doc/guix.texi:19127
 #, no-wrap
 msgid ""
 "(dovecot-service #:config\n"
@@ -31763,550 +36495,550 @@ msgstr ""
 
 # FUZZY
 #. type: Plain text
-#: doc/guix.texi:16446
+#: doc/guix.texi:19135
 msgid "The available configuration parameters follow.  Each parameter definition is preceded by its type; for example, @samp{string-list foo} indicates that the @code{foo} parameter should be specified as a list of strings.  There is also a way to specify the configuration as a string, if you have an old @code{dovecot.conf} file that you want to port over from some other system; see the end for more details."
-msgstr "A continuación se encuentran los parámetros de configuración disponibles. El tipo de cada parámetro antecede la definición del mismo; por ejemplo, @samp{string-list foo} indica que el parámetro @code{foo} debe especificarse como una lista de cadenas. También existe la posibilidad de especificar la configuración como una cadena, si tiene un fichero @code{dovecot.conf} antiguo que quiere trasladar a otro sistema; véase el final para más detalles."
+msgstr "A continuación se encuentran los parámetros de configuración disponibles. El tipo de cada parámetro antecede la definición del mismo; por ejemplo, @samp{string-list foo} indica que el parámetro @code{foo} debe especificarse como una lista de cadenas. También existe la posibilidad de especificar la configuración como una cadena, si tiene un archivo @code{dovecot.conf} antiguo que quiere trasladar a otro sistema; véase el final para más detalles."
 
 #. type: Plain text
-#: doc/guix.texi:16456
+#: doc/guix.texi:19145
 msgid "Available @code{dovecot-configuration} fields are:"
 msgstr "Los campos disponibles de @code{dovecot-configuration} son:"
 
 #. type: deftypevr
-#: doc/guix.texi:16457
+#: doc/guix.texi:19146
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} package dovecot"
 msgstr "{parámetro de @code{dovecot-configuration}} package dovecot"
 
 #. type: deftypevr
-#: doc/guix.texi:16459 doc/guix.texi:17765
+#: doc/guix.texi:19148 doc/guix.texi:20454
 msgid "The dovecot package."
 msgstr "El paquete dovecot."
 
 #. type: deftypevr
-#: doc/guix.texi:16461
+#: doc/guix.texi:19150
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} comma-separated-string-list listen"
 msgstr "{parámetro de @code{dovecot-configuration}} lista-cadenas-separada-comas listen"
 
 #. type: deftypevr
-#: doc/guix.texi:16467
+#: doc/guix.texi:19156
 msgid "A list of IPs or hosts where to listen for connections.  @samp{*} listens on all IPv4 interfaces, @samp{::} listens on all IPv6 interfaces.  If you want to specify non-default ports or anything more complex, customize the address and port fields of the @samp{inet-listener} of the specific services you are interested in."
 msgstr "Una lista de direcciones IP o nombres de máquina donde se escucharán conexiones. @samp{*} escucha en todas las interfaces IPv4, @samp{::} escucha en todas las interfaces IPv6. Si desea especificar puertos distintos a los predefinidos o algo más complejo, personalice los campos de dirección y puerto del @samp{inet-listener} de los servicios específicos en los que tenga interés."
 
 #. type: deftypevr
-#: doc/guix.texi:16469
+#: doc/guix.texi:19158
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} protocol-configuration-list protocols"
 msgstr "{parámetro de @code{dovecot-configuration}} lista-protocol-configuration protocols"
 
 #. type: deftypevr
-#: doc/guix.texi:16472
+#: doc/guix.texi:19161
 msgid "List of protocols we want to serve.  Available protocols include @samp{imap}, @samp{pop3}, and @samp{lmtp}."
 msgstr "Lista de protocolos que se desea ofrecer. Los protocolos disponibles incluyen @samp{imap}, @samp{pop3} y @samp{lmtp}."
 
 #. type: deftypevr
-#: doc/guix.texi:16474
+#: doc/guix.texi:19163
 msgid "Available @code{protocol-configuration} fields are:"
 msgstr "Los campos disponibles de @code{protocol-configuration} son:"
 
 #. type: deftypevr
-#: doc/guix.texi:16475
+#: doc/guix.texi:19164
 #, no-wrap
 msgid "{@code{protocol-configuration} parameter} string name"
 msgstr "{parámetro de @code{protocol-configuration}} string name"
 
 #. type: deftypevr
-#: doc/guix.texi:16477
+#: doc/guix.texi:19166
 msgid "The name of the protocol."
 msgstr "El nombre del protocolo."
 
 #. type: deftypevr
-#: doc/guix.texi:16479
+#: doc/guix.texi:19168
 #, no-wrap
 msgid "{@code{protocol-configuration} parameter} string auth-socket-path"
 msgstr "{parámetro de @code{protocol-configuration}} string auth-socket-path"
 
 #. type: deftypevr
-#: doc/guix.texi:16483
+#: doc/guix.texi:19172
 msgid "UNIX socket path to the master authentication server to find users.  This is used by imap (for shared users) and lda.  It defaults to @samp{\"/var/run/dovecot/auth-userdb\"}."
 msgstr "Ruta del socket de UNIX del servidor de identificación maestro para la búsqueda de usuarias. Se usa por parte de imap (para usuarias compartidas) y lda. Su valor predeterminado es @samp{\"/var/run/dovecot/auth-userdb\"}."
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:16485
+#: doc/guix.texi:19174
 #, no-wrap
 msgid "{@code{protocol-configuration} parameter} space-separated-string-list mail-plugins"
 msgstr "{parámetro de @code{protocol-configuration}} list-cadenas-separada-espacios mail-plugins"
 
 #. type: deftypevr
-#: doc/guix.texi:16487
+#: doc/guix.texi:19176
 msgid "Space separated list of plugins to load."
 msgstr "Lista separada por espacios de módulos a cargar."
 
 #. type: deftypevr
-#: doc/guix.texi:16489
+#: doc/guix.texi:19178
 #, no-wrap
 msgid "{@code{protocol-configuration} parameter} non-negative-integer mail-max-userip-connections"
 msgstr "{parámetro de @code{protocol-configuration}} entero-no-negativo mail-max-userip-connections"
 
 #. type: deftypevr
-#: doc/guix.texi:16493
+#: doc/guix.texi:19182
 msgid "Maximum number of IMAP connections allowed for a user from each IP address.  NOTE: The username is compared case-sensitively.  Defaults to @samp{10}."
 msgstr ""
 "Número máximo de conexiones IMAP permitido para una usuaria desde cada dirección IP. ATENCIÓN: El nombre de usuaria es sensible a las mayúsculas.\n"
 "Su valor predeterminado es @samp{10}."
 
 #. type: deftypevr
-#: doc/guix.texi:16497
+#: doc/guix.texi:19186
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} service-configuration-list services"
 msgstr "{parámetro de @code{dovecot-configuration}} lista-service-configuration services"
 
 #. type: deftypevr
-#: doc/guix.texi:16501
+#: doc/guix.texi:19190
 msgid "List of services to enable.  Available services include @samp{imap}, @samp{imap-login}, @samp{pop3}, @samp{pop3-login}, @samp{auth}, and @samp{lmtp}."
 msgstr "Lista de servicios activados. Los servicios disponibles incluyen @samp{imap}, @samp{imap-login}, @samp{pop3}, @samp{pop3-login}, @samp{auth} y @samp{lmtp}."
 
 #. type: deftypevr
-#: doc/guix.texi:16503
+#: doc/guix.texi:19192
 msgid "Available @code{service-configuration} fields are:"
 msgstr "Los campos disponibles de @code{service-configuration} son:"
 
 #. type: deftypevr
-#: doc/guix.texi:16504
+#: doc/guix.texi:19193
 #, no-wrap
 msgid "{@code{service-configuration} parameter} string kind"
 msgstr "{parámetro de @code{service-configuration}} string kind"
 
 #. type: deftypevr
-#: doc/guix.texi:16509
+#: doc/guix.texi:19198
 msgid "The service kind.  Valid values include @code{director}, @code{imap-login}, @code{pop3-login}, @code{lmtp}, @code{imap}, @code{pop3}, @code{auth}, @code{auth-worker}, @code{dict}, @code{tcpwrap}, @code{quota-warning}, or anything else."
 msgstr "El tipo del servicio. Entre los valores aceptados se incluye @code{director}, @code{imap-login}, @code{pop3-login}, @code{lmtp}, @code{imap}, @code{pop3}, @code{auth}, @code{auth-worker}, @code{dict}, @code{tcpwrap}, @code{quota-warning} o cualquier otro."
 
 #. type: deftypevr
-#: doc/guix.texi:16511
+#: doc/guix.texi:19200
 #, no-wrap
 msgid "{@code{service-configuration} parameter} listener-configuration-list listeners"
 msgstr "{parámetro de @code{service-configuration}} lista-listener-configuration listeners"
 
 #. type: deftypevr
-#: doc/guix.texi:16516
+#: doc/guix.texi:19205
 msgid "Listeners for the service.  A listener is either a @code{unix-listener-configuration}, a @code{fifo-listener-configuration}, or an @code{inet-listener-configuration}.  Defaults to @samp{()}."
 msgstr ""
 "Procesos de escucha para el servicio.  Un proceso de escucha es un objeto @code{unix-listener-configuration}, un objeto @code{fifo-listener-configuration} o un objeto @code{inet-listener-configuration}.\n"
 "Su valor predeterminado es @samp{()}."
 
 #. type: deftypevr
-#: doc/guix.texi:16518
+#: doc/guix.texi:19207
 msgid "Available @code{unix-listener-configuration} fields are:"
 msgstr "Los campos disponibles de @code{unix-listener-configuration} son:"
 
 #. type: deftypevr
-#: doc/guix.texi:16519
+#: doc/guix.texi:19208
 #, no-wrap
 msgid "{@code{unix-listener-configuration} parameter} string path"
 msgstr "{parámetro de @code{unix-listener-configuration}} string path"
 
 #. type: deftypevr
-#: doc/guix.texi:16522 doc/guix.texi:16545
+#: doc/guix.texi:19211 doc/guix.texi:19234
 msgid "Path to the file, relative to @code{base-dir} field.  This is also used as the section name."
-msgstr "Ruta al fichero, relativa al campo @code{base-dir}. También se usa como nombre de la sección."
+msgstr "Ruta al archivo, relativa al campo @code{base-dir}. También se usa como nombre de la sección."
 
 #. type: deftypevr
-#: doc/guix.texi:16524
+#: doc/guix.texi:19213
 #, no-wrap
 msgid "{@code{unix-listener-configuration} parameter} string mode"
 msgstr "{parámetro de @code{unix-listener-configuration}} string mode"
 
 #. type: deftypevr
-#: doc/guix.texi:16527 doc/guix.texi:16550
+#: doc/guix.texi:19216 doc/guix.texi:19239
 msgid "The access mode for the socket.  Defaults to @samp{\"0600\"}."
 msgstr ""
 "Modo de acceso del socket.\n"
 "Su valor predeterminado es @samp{\"0600\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16529
+#: doc/guix.texi:19218
 #, no-wrap
 msgid "{@code{unix-listener-configuration} parameter} string user"
 msgstr "{parámetro de @code{unix-listener-configuration}} string user"
 
 #. type: deftypevr
-#: doc/guix.texi:16532 doc/guix.texi:16555
+#: doc/guix.texi:19221 doc/guix.texi:19244
 msgid "The user to own the socket.  Defaults to @samp{\"\"}."
 msgstr ""
 "Usuaria que posee el socket.\n"
 "Su valor predeterminado es @samp{\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16534
+#: doc/guix.texi:19223
 #, no-wrap
 msgid "{@code{unix-listener-configuration} parameter} string group"
 msgstr "{parámetro de @code{unix-listener-configuration}} string group"
 
 #. type: deftypevr
-#: doc/guix.texi:16537 doc/guix.texi:16560
+#: doc/guix.texi:19226 doc/guix.texi:19249
 msgid "The group to own the socket.  Defaults to @samp{\"\"}."
 msgstr ""
 "Grupo que posee el socket.\n"
 "Su valor predeterminado es @samp{\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16541
+#: doc/guix.texi:19230
 msgid "Available @code{fifo-listener-configuration} fields are:"
 msgstr "Los campos disponibles de @code{fifo-listener-configuration} son:"
 
 #. type: deftypevr
-#: doc/guix.texi:16542
+#: doc/guix.texi:19231
 #, no-wrap
 msgid "{@code{fifo-listener-configuration} parameter} string path"
 msgstr "{parámetro de @code{fifo-listener-configuration}} string path"
 
 #. type: deftypevr
-#: doc/guix.texi:16547
+#: doc/guix.texi:19236
 #, no-wrap
 msgid "{@code{fifo-listener-configuration} parameter} string mode"
 msgstr "{parámetro de @code{fifo-listener-configuration}} string mode"
 
 #. type: deftypevr
-#: doc/guix.texi:16552
+#: doc/guix.texi:19241
 #, no-wrap
 msgid "{@code{fifo-listener-configuration} parameter} string user"
 msgstr "{parámetro de @code{fifo-listener-configuration}} string user"
 
 #. type: deftypevr
-#: doc/guix.texi:16557
+#: doc/guix.texi:19246
 #, no-wrap
 msgid "{@code{fifo-listener-configuration} parameter} string group"
 msgstr "{parámetro de @code{fifo-listener-configuration}} string group"
 
 #. type: deftypevr
-#: doc/guix.texi:16564
+#: doc/guix.texi:19253
 msgid "Available @code{inet-listener-configuration} fields are:"
 msgstr "Los campos disponibles de @code{inet-listener-configuration} son:"
 
 #. type: deftypevr
-#: doc/guix.texi:16565
+#: doc/guix.texi:19254
 #, no-wrap
 msgid "{@code{inet-listener-configuration} parameter} string protocol"
 msgstr "{parámetro de @code{inet-listener-configuration}} string protocol"
 
 #. type: deftypevr
-#: doc/guix.texi:16567
+#: doc/guix.texi:19256
 msgid "The protocol to listen for."
 msgstr "El protocolo con el que se esperan las conexiones."
 
 #. type: deftypevr
-#: doc/guix.texi:16569
+#: doc/guix.texi:19258
 #, no-wrap
 msgid "{@code{inet-listener-configuration} parameter} string address"
 msgstr "{parámetro de @code{inet-listener-configuration}} string address"
 
 #. type: deftypevr
-#: doc/guix.texi:16572
+#: doc/guix.texi:19261
 msgid "The address on which to listen, or empty for all addresses.  Defaults to @samp{\"\"}."
 msgstr ""
 "La dirección en la que se escuchará, o vacío para escuchar en todas las direcciones.\n"
 "Su valor predeterminado es @samp{\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16574
+#: doc/guix.texi:19263
 #, no-wrap
 msgid "{@code{inet-listener-configuration} parameter} non-negative-integer port"
 msgstr "{parámetro de @code{inet-listener-configuration}} entero-no-negativo port"
 
 #. type: deftypevr
-#: doc/guix.texi:16576
+#: doc/guix.texi:19265
 msgid "The port on which to listen."
 msgstr "El puerto en el que esperarán conexiones."
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:16578
+#: doc/guix.texi:19267
 #, no-wrap
 msgid "{@code{inet-listener-configuration} parameter} boolean ssl?"
 msgstr "{parámetro de @code{inet-listener-configuration}} boolean ssl?"
 
 #. type: deftypevr
-#: doc/guix.texi:16582
+#: doc/guix.texi:19271
 msgid "Whether to use SSL for this service; @samp{yes}, @samp{no}, or @samp{required}.  Defaults to @samp{#t}."
 msgstr ""
 "Si se usará SSL para este servicio; @samp{yes} (sí), @samp{no} o @samp{required} (necesario).\n"
 "Su valor predeterminado es @samp{#t}."
 
 #. type: deftypevr
-#: doc/guix.texi:16586
+#: doc/guix.texi:19275
 #, no-wrap
 msgid "{@code{service-configuration} parameter} non-negative-integer client-limit"
 msgstr "{parámetro de @code{service-configuration}} entero-no-negativo client-limit"
 
 #. type: deftypevr
-#: doc/guix.texi:16591
+#: doc/guix.texi:19280
 msgid "Maximum number of simultaneous client connections per process.  Once this number of connections is received, the next incoming connection will prompt Dovecot to spawn another process.  If set to 0, @code{default-client-limit} is used instead."
 msgstr "Número máximo de conexiones simultáneas por cliente por proceso. Una vez se reciba este número de conexiones, la siguiente conexión entrante solicitará a Dovecot el inicio de un nuevo proceso. Si se proporciona el valor 0, se usa @code{default-client-limit}."
 
 #. type: deftypevr
-#: doc/guix.texi:16596
+#: doc/guix.texi:19285
 #, no-wrap
 msgid "{@code{service-configuration} parameter} non-negative-integer service-count"
 msgstr "{parámetro de @code{service-configuration}} entero-no-negativo service-count"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:16601
+#: doc/guix.texi:19290
 msgid "Number of connections to handle before starting a new process.  Typically the only useful values are 0 (unlimited) or 1.  1 is more secure, but 0 is faster.  <doc/wiki/LoginProcess.txt>.  Defaults to @samp{1}."
 msgstr ""
 "Número de conexiones a manejar antes de iniciar un nuevo proceso. Habitualmente los únicos valores útiles son 0 (ilimitadas) o 1. 1 es más seguro, pero 0 es más rápido. <doc/wiki/LoginProcess.txt>.\n"
 "Su valor predeterminado es @samp{1}."
 
 #. type: deftypevr
-#: doc/guix.texi:16604
+#: doc/guix.texi:19293
 #, no-wrap
 msgid "{@code{service-configuration} parameter} non-negative-integer process-limit"
 msgstr "{parámetro de @code{service-configuration}} entero-no-negativo process-limit"
 
 #. type: deftypevr
-#: doc/guix.texi:16607
+#: doc/guix.texi:19296
 msgid "Maximum number of processes that can exist for this service.  If set to 0, @code{default-process-limit} is used instead."
 msgstr "Número máximo de procesos que pueden existir para este servicio. Si se proporciona el valor 0, se usa @code{default-process-limit}."
 
 #. type: deftypevr
-#: doc/guix.texi:16612
+#: doc/guix.texi:19301
 #, no-wrap
 msgid "{@code{service-configuration} parameter} non-negative-integer process-min-avail"
 msgstr "{parámetro de @code{service-configuration}} entero-no-negativo process-min-avail"
 
 #. type: deftypevr
-#: doc/guix.texi:16615
+#: doc/guix.texi:19304
 msgid "Number of processes to always keep waiting for more connections.  Defaults to @samp{0}."
 msgstr "Número de procesos que siempre permanecerán a la espera de más conexiones. Su valor predeterminado es @samp{0}."
 
 #. type: deftypevr
-#: doc/guix.texi:16617
+#: doc/guix.texi:19306
 #, no-wrap
 msgid "{@code{service-configuration} parameter} non-negative-integer vsz-limit"
 msgstr "{parámetro de @code{service-configuration}} entero-no-negativo vsz-limit"
 
 #. type: deftypevr
-#: doc/guix.texi:16621
+#: doc/guix.texi:19310
 msgid "If you set @samp{service-count 0}, you probably need to grow this.  Defaults to @samp{256000000}."
 msgstr "Si proporciona @samp{service-count 0}, probablemente necesitará incrementar este valor. Su valor predeterminado es @samp{256000000}."
 
 #. type: deftypevr
-#: doc/guix.texi:16625
+#: doc/guix.texi:19314
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} dict-configuration dict"
 msgstr "{parámetro de @code{dovecot-configuration}} dict-configuration dict"
 
 #. type: deftypevr
-#: doc/guix.texi:16628
+#: doc/guix.texi:19317
 msgid "Dict configuration, as created by the @code{dict-configuration} constructor."
 msgstr "Configuración de Dict, como la creada por el constructor @code{dict-configuration}."
 
 #. type: deftypevr
-#: doc/guix.texi:16630
+#: doc/guix.texi:19319
 msgid "Available @code{dict-configuration} fields are:"
 msgstr "Los campos disponibles de @code{dict-configuration} son:"
 
 #. type: deftypevr
-#: doc/guix.texi:16631
+#: doc/guix.texi:19320
 #, no-wrap
 msgid "{@code{dict-configuration} parameter} free-form-fields entries"
 msgstr "{parámetro de @code{dict-configuration}} campos-libres entries"
 
 #. type: deftypevr
-#: doc/guix.texi:16634
+#: doc/guix.texi:19323
 msgid "A list of key-value pairs that this dict should hold.  Defaults to @samp{()}."
 msgstr ""
 "Una lista de pares clave-valor que este diccionario debe incorporar.\n"
 "Su valor predeterminado es @samp{()}."
 
 #. type: deftypevr
-#: doc/guix.texi:16638
+#: doc/guix.texi:19327
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} passdb-configuration-list passdbs"
 msgstr "{parámetro de @code{dovecot-configuration}} lista-passdb-configuration passdbs"
 
 #. type: deftypevr
-#: doc/guix.texi:16641
+#: doc/guix.texi:19330
 msgid "A list of passdb configurations, each one created by the @code{passdb-configuration} constructor."
 msgstr "Una lista de configuraciones de passdb, cada una creada por el constructor @code{passdb-configuration}."
 
 #. type: deftypevr
-#: doc/guix.texi:16643
+#: doc/guix.texi:19332
 msgid "Available @code{passdb-configuration} fields are:"
 msgstr "Los campos disponibles de @code{passdb-configuration} son:"
 
 #. type: deftypevr
-#: doc/guix.texi:16644
+#: doc/guix.texi:19333
 #, no-wrap
 msgid "{@code{passdb-configuration} parameter} string driver"
 msgstr "{parámetro de @code{passdb-configuration}} string driver"
 
 #. type: deftypevr
-#: doc/guix.texi:16649
+#: doc/guix.texi:19338
 msgid "The driver that the passdb should use.  Valid values include @samp{pam}, @samp{passwd}, @samp{shadow}, @samp{bsdauth}, and @samp{static}.  Defaults to @samp{\"pam\"}."
 msgstr ""
 "El controlador que passdb debe usar. Entre los valores aceptados se incluye @samp{pam}, @samp{passwd}, @samp{shadow}, @samp{bsdauth} y @samp{static}.\n"
 "Su valor predeterminado es @samp{\"pam\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16651
+#: doc/guix.texi:19340
 #, no-wrap
 msgid "{@code{passdb-configuration} parameter} space-separated-string-list args"
 msgstr "{parámetro de @code{passdb-configuration}} lista-cadenas-separada-espacios args"
 
 #. type: deftypevr
-#: doc/guix.texi:16654
+#: doc/guix.texi:19343
 msgid "Space separated list of arguments to the passdb driver.  Defaults to @samp{\"\"}."
 msgstr ""
 "Lista de parámetros separados por espacios para proporcionar al controlador passdb.\n"
 "Su valor predeterminado es @samp{\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16658
+#: doc/guix.texi:19347
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} userdb-configuration-list userdbs"
 msgstr "{parámetro de @code{dovecot-configuration}} lista-userdb-configuration userdbs"
 
 #. type: deftypevr
-#: doc/guix.texi:16661
+#: doc/guix.texi:19350
 msgid "List of userdb configurations, each one created by the @code{userdb-configuration} constructor."
 msgstr "Lista de configuraciones userdb, cada una creada por el constructor @code{userdb-configuration}."
 
 #. type: deftypevr
-#: doc/guix.texi:16663
+#: doc/guix.texi:19352
 msgid "Available @code{userdb-configuration} fields are:"
 msgstr "Los campos disponibles de @code{userdb-configuration} son:"
 
 #. type: deftypevr
-#: doc/guix.texi:16664
+#: doc/guix.texi:19353
 #, no-wrap
 msgid "{@code{userdb-configuration} parameter} string driver"
 msgstr "{parámetro de @code{userdb-configuration}} string driver"
 
 #. type: deftypevr
-#: doc/guix.texi:16668
+#: doc/guix.texi:19357
 msgid "The driver that the userdb should use.  Valid values include @samp{passwd} and @samp{static}.  Defaults to @samp{\"passwd\"}."
 msgstr ""
 "El controlador que userdb debe usar. Entre los valores aceptados se incluye @samp{passwd} y @samp{static}.\n"
 "Su valor predeterminado es @samp{\"passwd\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16670
+#: doc/guix.texi:19359
 #, no-wrap
 msgid "{@code{userdb-configuration} parameter} space-separated-string-list args"
 msgstr "{parámetro de @code{userdb-configuration}} lista-cadenas-separada-espacios args"
 
 #. type: deftypevr
-#: doc/guix.texi:16673
+#: doc/guix.texi:19362
 msgid "Space separated list of arguments to the userdb driver.  Defaults to @samp{\"\"}."
 msgstr ""
 "Lista separada por espacios de parámetros usados para el controlador userdb.\n"
 "Su valor predeterminado es @samp{\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16675
+#: doc/guix.texi:19364
 #, no-wrap
 msgid "{@code{userdb-configuration} parameter} free-form-args override-fields"
 msgstr "{parámetro de @code{userdb-configuration}} parámetros-libres override-fields"
 
 #. type: deftypevr
-#: doc/guix.texi:16678
+#: doc/guix.texi:19367
 msgid "Override fields from passwd.  Defaults to @samp{()}."
 msgstr ""
 "Sustituye los valores de campos de passwd.\n"
 "Su valor predeterminado es @samp{()}."
 
 #. type: deftypevr
-#: doc/guix.texi:16682
+#: doc/guix.texi:19371
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} plugin-configuration plugin-configuration"
 msgstr "{parámetro de @code{dovecot-configuration}} plugin-configuration plugin-configuration"
 
 #. type: deftypevr
-#: doc/guix.texi:16685
+#: doc/guix.texi:19374
 msgid "Plug-in configuration, created by the @code{plugin-configuration} constructor."
 msgstr "Configuración del módulo, creada por el constructor @code{plugin-configuration}."
 
 #. type: deftypevr
-#: doc/guix.texi:16687
+#: doc/guix.texi:19376
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} list-of-namespace-configuration namespaces"
 msgstr "{parámetro de @code{dovecot-configuration}} lista-namespace-configuration namespaces"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:16690
+#: doc/guix.texi:19379
 msgid "List of namespaces.  Each item in the list is created by the @code{namespace-configuration} constructor."
 msgstr "Lista de espacios de nombres. Cada elemento de la lista debe crearse con el constructor @code{namespace-configuration}."
 
 #. type: deftypevr
-#: doc/guix.texi:16692
+#: doc/guix.texi:19381
 msgid "Available @code{namespace-configuration} fields are:"
 msgstr "Los campos disponibles de @code{namespace-configuration} son:"
 
 #. type: deftypevr
-#: doc/guix.texi:16693
+#: doc/guix.texi:19382
 #, no-wrap
 msgid "{@code{namespace-configuration} parameter} string name"
 msgstr "{parámetro de @code{namespace-configuration}} string name"
 
 #. type: deftypevr
-#: doc/guix.texi:16695
+#: doc/guix.texi:19384
 msgid "Name for this namespace."
 msgstr "Nombre para este espacio de nombres."
 
 #. type: deftypevr
-#: doc/guix.texi:16697
+#: doc/guix.texi:19386
 #, no-wrap
 msgid "{@code{namespace-configuration} parameter} string type"
 msgstr "{parámetro de @code{namespace-configuration}} string type"
 
 #. type: deftypevr
-#: doc/guix.texi:16700
+#: doc/guix.texi:19389
 msgid "Namespace type: @samp{private}, @samp{shared} or @samp{public}.  Defaults to @samp{\"private\"}."
 msgstr ""
 "Tipo del espacio de nombres: @samp{private}, @samp{shared} o @samp{public}.\n"
 "Su valor predeterminado es @samp{\"private\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16702
+#: doc/guix.texi:19391
 #, no-wrap
 msgid "{@code{namespace-configuration} parameter} string separator"
 msgstr "{parámetro de @code{namespace-configuration}} string separator"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:16708
+#: doc/guix.texi:19397
 msgid "Hierarchy separator to use. You should use the same separator for all namespaces or some clients get confused.  @samp{/} is usually a good one.  The default however depends on the underlying mail storage format.  Defaults to @samp{\"\"}."
 msgstr ""
 "Separador jerárquico usado. Debe usar el mismo separador para todos los espacios de nombres o algunos clientes pueden confundirse. Habitualmente @samp{/} es un buen valor. El valor predeterminado depende no obstante del formato del almacenamiento de correo subyacente.\n"
 "Su valor predeterminado es @samp{\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16710
+#: doc/guix.texi:19399
 #, no-wrap
 msgid "{@code{namespace-configuration} parameter} string prefix"
 msgstr "{parámetro de @code{namespace-configuration}} string prefix"
 
 #. type: deftypevr
-#: doc/guix.texi:16714
+#: doc/guix.texi:19403
 msgid "Prefix required to access this namespace.  This needs to be different for all namespaces. For example @samp{Public/}.  Defaults to @samp{\"\"}."
 msgstr ""
 "Prefijo necesario para el acceso a este espacio de nombres. Tiene que ser necesario para todos los espacios de nombres. Por ejemplo @samp{Public/}.\n"
 "Su valor predeterminado es @samp{\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16716
+#: doc/guix.texi:19405
 #, no-wrap
 msgid "{@code{namespace-configuration} parameter} string location"
 msgstr "{parámetro de @code{namespace-configuration}} string location"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:16720
+#: doc/guix.texi:19409
 msgid "Physical location of the mailbox. This is in the same format as mail_location, which is also the default for it.  Defaults to @samp{\"\"}."
 msgstr ""
 "Localización física de la bandeja de correo. En el mismo formato que la localización del correo, que también es su valor predeterminado.\n"
@@ -32314,14 +37046,14 @@ msgstr ""
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:16722
+#: doc/guix.texi:19411
 #, no-wrap
 msgid "{@code{namespace-configuration} parameter} boolean inbox?"
 msgstr "{parámetro de @code{namespace-configuration}} boolean inbox?"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:16726
+#: doc/guix.texi:19415
 msgid "There can be only one INBOX, and this setting defines which namespace has it.  Defaults to @samp{#f}."
 msgstr ""
 "Únicamente puede existir una bandeja de entrada (INBOX), y esta configuración define qué espacio de nombres la posee.\n"
@@ -32329,13 +37061,13 @@ msgstr ""
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:16728
+#: doc/guix.texi:19417
 #, no-wrap
 msgid "{@code{namespace-configuration} parameter} boolean hidden?"
 msgstr "{parámetro de @code{namespace-configuration}} boolean hidden?"
 
 #. type: deftypevr
-#: doc/guix.texi:16736
+#: doc/guix.texi:19425
 msgid "If namespace is hidden, it's not advertised to clients via NAMESPACE extension. You'll most likely also want to set @samp{list? #f}.  This is mostly useful when converting from another server with different namespaces which you want to deprecate but still keep working.  For example you can create hidden namespaces with prefixes @samp{~/mail/}, @samp{~%u/mail/} and @samp{mail/}.  Defaults to @samp{#f}."
 msgstr ""
 "Si un espacio de nombres está oculto, no se anuncia a los clientes a través de la extensión NAMESPACE. Lo más probable es que también desee proporcionar @samp{list? #f}. Es útil principalmente durante la conversión desde otro servidor de correo con espacios de nombres distintos que desea marcar como obsoletos pero que todavía funcionan. Por ejemplo, puede crear espacios de nombres ocultos con prefijos @samp{~/mail}, @samp{~%u/mail} y @samp{mail/}.\n"
@@ -32343,13 +37075,13 @@ msgstr ""
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:16738
+#: doc/guix.texi:19427
 #, no-wrap
 msgid "{@code{namespace-configuration} parameter} boolean list?"
 msgstr "{parámetro de @code{namespace-configuration}} boolean list?"
 
 #. type: deftypevr
-#: doc/guix.texi:16744
+#: doc/guix.texi:19433
 msgid "Show the mailboxes under this namespace with the LIST command. This makes the namespace visible for clients that do not support the NAMESPACE extension.  The special @code{children} value lists child mailboxes, but hides the namespace prefix.  Defaults to @samp{#t}."
 msgstr ""
 "Muestra las bandejas de correo bajo este espacio de nombres con la orden LIST. Hace que el espacio de nombres sea visible para clientes que no permiten la extensión NAMESPACE. El valor especial @code{children} enumera las bandejas de correo descendientes, pero oculta el prefijo del espacio de nombres.\n"
@@ -32357,122 +37089,122 @@ msgstr ""
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:16746
+#: doc/guix.texi:19435
 #, no-wrap
 msgid "{@code{namespace-configuration} parameter} boolean subscriptions?"
 msgstr "{parámetro de @code{namespace-configuration}} boolean subscriptions?"
 
 #. type: deftypevr
-#: doc/guix.texi:16751
+#: doc/guix.texi:19440
 msgid "Namespace handles its own subscriptions.  If set to @code{#f}, the parent namespace handles them.  The empty prefix should always have this as @code{#t}).  Defaults to @samp{#t}."
 msgstr ""
 "El espacio de nombres maneja sus propias subscripciones. Si es @code{#f}, el espacio de nombres superior las maneja. El prefijo vacío siempre debe tener este valor como @code{#t}.\n"
 "Su valor predeterminado es @samp{#t}."
 
 #. type: deftypevr
-#: doc/guix.texi:16753
+#: doc/guix.texi:19442
 #, no-wrap
 msgid "{@code{namespace-configuration} parameter} mailbox-configuration-list mailboxes"
 msgstr "{parámetro de @code{namespace-configuration}} lista-mailbox-configuration mailboxes"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:16756
+#: doc/guix.texi:19445
 msgid "List of predefined mailboxes in this namespace.  Defaults to @samp{()}."
 msgstr ""
 "Lista de bandejas de correo predefinidas en este espacio de nombres.\n"
 "Su valor predeterminado es @samp{()}."
 
 #. type: deftypevr
-#: doc/guix.texi:16758
+#: doc/guix.texi:19447
 msgid "Available @code{mailbox-configuration} fields are:"
 msgstr "Los campos disponibles de @code{mailbox-configuration} son:"
 
 #. type: deftypevr
-#: doc/guix.texi:16759
+#: doc/guix.texi:19448
 #, no-wrap
 msgid "{@code{mailbox-configuration} parameter} string name"
 msgstr "{parámetro de @code{mailbox-configuration}} string name"
 
 #. type: deftypevr
-#: doc/guix.texi:16761
+#: doc/guix.texi:19450
 msgid "Name for this mailbox."
 msgstr "Nombre de esta bandeja de correo."
 
 #. type: deftypevr
-#: doc/guix.texi:16763
+#: doc/guix.texi:19452
 #, no-wrap
 msgid "{@code{mailbox-configuration} parameter} string auto"
 msgstr "{parámetro de @code{mailbox-configuration}} string auto"
 
 #. type: deftypevr
-#: doc/guix.texi:16767
+#: doc/guix.texi:19456
 msgid "@samp{create} will automatically create this mailbox.  @samp{subscribe} will both create and subscribe to the mailbox.  Defaults to @samp{\"no\"}."
 msgstr ""
 "Con @samp{create} se crea de forma automática esta bandeja de correo. Con @samp{subscribe} se crea y se suscribe a la bandeja de correo.\n"
 "Su valor predeterminado es @samp{\"no\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16769
+#: doc/guix.texi:19458
 #, no-wrap
 msgid "{@code{mailbox-configuration} parameter} space-separated-string-list special-use"
 msgstr "{parámetro de @code{mailbox-configuration}} lista-cadenas-separada-espacios special-use"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:16774
+#: doc/guix.texi:19463
 msgid "List of IMAP @code{SPECIAL-USE} attributes as specified by RFC 6154.  Valid values are @code{\\All}, @code{\\Archive}, @code{\\Drafts}, @code{\\Flagged}, @code{\\Junk}, @code{\\Sent}, and @code{\\Trash}.  Defaults to @samp{()}."
 msgstr ""
 "Lista de atributos @code{SPECIAL-USE} de IMAP como se especifican en el RFC 6154. Entre los valores aceptados se incluye @code{\\All}, @code{\\Archive}, @code{\\Drafts}, @code{\\Flagged}, @code{\\Junk}, @code{\\Sent} y @code{\\Trash}.\n"
 "Su valor predeterminado es @samp{()}."
 
 #. type: deftypevr
-#: doc/guix.texi:16780
+#: doc/guix.texi:19469
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} file-name base-dir"
-msgstr "{parámetro de @code{dovecot-configuration}} nombre-fichero base-dir"
+msgstr "{parámetro de @code{dovecot-configuration}} nombre-archivo base-dir"
 
 #. type: deftypevr
-#: doc/guix.texi:16783
+#: doc/guix.texi:19472
 msgid "Base directory where to store runtime data.  Defaults to @samp{\"/var/run/dovecot/\"}."
 msgstr ""
 "Directorio base donde se almacenan los datos de tiempo de ejecución.\n"
 "Su valor predeterminado es @samp{\"/var/run/dovecot/\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16785
+#: doc/guix.texi:19474
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string login-greeting"
 msgstr "{parámetro de @code{dovecot-configuration}} string login-greeting"
 
 #. type: deftypevr
-#: doc/guix.texi:16788
+#: doc/guix.texi:19477
 msgid "Greeting message for clients.  Defaults to @samp{\"Dovecot ready.\"}."
 msgstr ""
 "Mensaje de saludo para clientes.\n"
 "Su valor predeterminado es @samp{\"Dovecot ready.\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16790
+#: doc/guix.texi:19479
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} space-separated-string-list login-trusted-networks"
 msgstr "{parámetro de @code{dovecot-configuration}} lista-cadenas-separada-espacios login-trusted-networks"
 
 #. type: deftypevr
-#: doc/guix.texi:16797
+#: doc/guix.texi:19486
 msgid "List of trusted network ranges.  Connections from these IPs are allowed to override their IP addresses and ports (for logging and for authentication checks).  @samp{disable-plaintext-auth} is also ignored for these networks.  Typically you would specify your IMAP proxy servers here.  Defaults to @samp{()}."
 msgstr ""
 "Lista de rangos de red en los que se confía. Las conexiones desde estas IP tienen permitido forzar sus direcciones IP y puertos (para el registro y las comprobaciones de identidad). @samp{disable-plaintext-auth} también se ignora en estas redes. Habitualmente aquí se especificarían los servidores proxy IMAP.\n"
 "Su valor predeterminado es @samp{()}."
 
 #. type: deftypevr
-#: doc/guix.texi:16799
+#: doc/guix.texi:19488
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} space-separated-string-list login-access-sockets"
 msgstr "{parámetro de @code{dovecot-configuration}} lista-cadenas-separada-espacios login-access-sockets"
 
 #. type: deftypevr
-#: doc/guix.texi:16802
+#: doc/guix.texi:19491
 msgid "List of login access check sockets (e.g.@: tcpwrap).  Defaults to @samp{()}."
 msgstr ""
 "Lista de sockets para la comprobación de acceso al sistema (por ejemplo tcpwrap).\n"
@@ -32480,13 +37212,13 @@ msgstr ""
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:16804
+#: doc/guix.texi:19493
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean verbose-proctitle?"
 msgstr "{parámetro de @code{dovecot-configuration}} boolean verbose-proctitle?"
 
 #. type: deftypevr
-#: doc/guix.texi:16810
+#: doc/guix.texi:19499
 msgid "Show more verbose process titles (in ps).  Currently shows user name and IP address.  Useful for seeing who is actually using the IMAP processes (e.g.@: shared mailboxes or if the same uid is used for multiple accounts).  Defaults to @samp{#f}."
 msgstr ""
 "Muestra títulos de procesamiento más detallados (en la postdata). Actualmente muestra el nombre de la usuaria y su dirección IP. Es útil para ver quién está usando procesos IMAP realmente (por ejemplo bandejas de correo compartidas o si el mismo identificador numérico de usuaria se usa para varias cuentas).\n"
@@ -32494,215 +37226,215 @@ msgstr ""
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:16812
+#: doc/guix.texi:19501
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean shutdown-clients?"
 msgstr "{parámetro de @code{dovecot-configuration}} boolean shutdown-clients?"
 
 #. type: deftypevr
-#: doc/guix.texi:16818
+#: doc/guix.texi:19507
 msgid "Should all processes be killed when Dovecot master process shuts down.  Setting this to @code{#f} means that Dovecot can be upgraded without forcing existing client connections to close (although that could also be a problem if the upgrade is e.g.@: due to a security fix).  Defaults to @samp{#t}."
 msgstr ""
 "Determina si se deben finalizar todos los procesos cuando el proceso maestro de Dovecot termine su ejecución. El valor @code{#f} significa que Dovecot puede actualizarse sin forzar el cierre de las conexiones existentes (aunque esto puede ser un problema si la actualización se debe, por ejemplo, a la corrección de una vulnerabilidad).\n"
 "Su valor predeterminado es @samp{#t}."
 
 #. type: deftypevr
-#: doc/guix.texi:16820
+#: doc/guix.texi:19509
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} non-negative-integer doveadm-worker-count"
 msgstr "{parámetro de @code{dovecot-configuration}} entero-no-negativo doveadm-worker-count"
 
 #. type: deftypevr
-#: doc/guix.texi:16824
+#: doc/guix.texi:19513
 msgid "If non-zero, run mail commands via this many connections to doveadm server, instead of running them directly in the same process.  Defaults to @samp{0}."
 msgstr ""
-"Si es no-cero, ejecuta las ordenes del correo a través de este número de conexiones al servidor doveadm, en vez de ejecutarlas directamente en el mismo proceso.\n"
+"Si no es cero, ejecuta las ordenes del correo a través de este número de conexiones al servidor doveadm, en vez de ejecutarlas directamente en el mismo proceso.\n"
 "Su valor predeterminado es @samp{0}."
 
 #. type: deftypevr
-#: doc/guix.texi:16826
+#: doc/guix.texi:19515
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string doveadm-socket-path"
 msgstr "{parámetro de @code{dovecot-configuration}} string doveadm-socket-path"
 
 #. type: deftypevr
-#: doc/guix.texi:16829
+#: doc/guix.texi:19518
 msgid "UNIX socket or host:port used for connecting to doveadm server.  Defaults to @samp{\"doveadm-server\"}."
 msgstr ""
 "Socket UNIX o máquina:puerto usados para la conexión al servidor doveadm.\n"
 "Su valor predeterminado es @samp{\"doveadm-server\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16831
+#: doc/guix.texi:19520
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} space-separated-string-list import-environment"
 msgstr "{parámetro de @code{dovecot-configuration}} lista-cadenas-separada-espacios import-environment"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:16835
+#: doc/guix.texi:19524
 msgid "List of environment variables that are preserved on Dovecot startup and passed down to all of its child processes.  You can also give key=value pairs to always set specific settings."
 msgstr "Lista de variables de entorno que se preservan al inicio de Dovecot y se proporcionan a los procesos iniciados. También puede proporcionar pares clave=valor para proporcionar siempre dicha configuración específica."
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:16837
+#: doc/guix.texi:19526
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean disable-plaintext-auth?"
 msgstr "{parámetro de @code{dovecot-configuration}} boolean disable-plaintext-auth?"
 
 #. type: deftypevr
-#: doc/guix.texi:16844
+#: doc/guix.texi:19533
 msgid "Disable LOGIN command and all other plaintext authentications unless SSL/TLS is used (LOGINDISABLED capability).  Note that if the remote IP matches the local IP (i.e.@: you're connecting from the same computer), the connection is considered secure and plaintext authentication is allowed.  See also ssl=required setting.  Defaults to @samp{#t}."
 msgstr ""
 "Desactiva la orden LOGIN y todas las otras identificaciones en texto plano a menos que se use SSL/TLS (capacidad LOGINDISABLED). Tenga en cuenta que si la IP remota coincide con la IP local (es decir, se ha conectado desde la misma máquina), la conexión se considera segura y se permite la identificación en texto plano. Véase también la configuración ssl=required.\n"
 "Su valor predeterminado es @samp{#t}."
 
 #. type: deftypevr
-#: doc/guix.texi:16846
+#: doc/guix.texi:19535
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} non-negative-integer auth-cache-size"
 msgstr "{parámetro de @code{dovecot-configuration}} entero-no-negativo auth-cache-size"
 
 #. type: deftypevr
-#: doc/guix.texi:16851
+#: doc/guix.texi:19540
 msgid "Authentication cache size (e.g.@: @samp{#e10e6}).  0 means it's disabled.  Note that bsdauth, PAM and vpopmail require @samp{cache-key} to be set for caching to be used.  Defaults to @samp{0}."
 msgstr ""
 "Tamaño de la caché de identificaciones (por ejemplo, @samp{#e10e6}. 0 significa que está desactivada. Tenga en cuenta que bsdauth, PAM y vpopmail necesitan un valor en @samp{cache-key} para que se use la caché.\n"
 "Su valor predeterminado es @samp{0}."
 
 #. type: deftypevr
-#: doc/guix.texi:16853
+#: doc/guix.texi:19542
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string auth-cache-ttl"
 msgstr "{parámetro de @code{dovecot-configuration}} string auth-cache-ttl"
 
 #. type: deftypevr
-#: doc/guix.texi:16861
+#: doc/guix.texi:19550
 msgid "Time to live for cached data.  After TTL expires the cached record is no longer used, *except* if the main database lookup returns internal failure.  We also try to handle password changes automatically: If user's previous authentication was successful, but this one wasn't, the cache isn't used.  For now this works only with plaintext authentication.  Defaults to @samp{\"1 hour\"}."
 msgstr ""
 "Tiempo de vida de los datos almacenados en caché. Los registros de caché no se usan tras su expiración, *excepto* si la base de datos principal devuelve un fallo interno. También se intentan manejar los cambios de contraseña de manera automática: si la identificación previa de la usuaria fue satisfactoria, pero no esta última, la caché no se usa. En estos momentos únicamente funciona con identificación en texto plano.\n"
 "Su valor predeterminado es @samp{\"1 hour\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16863
+#: doc/guix.texi:19552
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string auth-cache-negative-ttl"
 msgstr "{parámetro de @code{dovecot-configuration}} string auth-cache-negative-ttl"
 
 #. type: deftypevr
-#: doc/guix.texi:16867
+#: doc/guix.texi:19556
 msgid "TTL for negative hits (user not found, password mismatch).  0 disables caching them completely.  Defaults to @samp{\"1 hour\"}."
 msgstr ""
 "Tiempo de vida para fallos de búsqueda en la caché (usuaria no encontrada, la contraseña no coincide). 0 desactiva completamente su almacenamiento en caché.\n"
 "Su valor predeterminado es @samp{\"1 hour\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16869
+#: doc/guix.texi:19558
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} space-separated-string-list auth-realms"
 msgstr "{parámetro de @code{dovecot-configuration}} lista-cadenas-separada-espacios auth-realms"
 
 #. type: deftypevr
-#: doc/guix.texi:16875
+#: doc/guix.texi:19564
 msgid "List of realms for SASL authentication mechanisms that need them.  You can leave it empty if you don't want to support multiple realms.  Many clients simply use the first one listed here, so keep the default realm first.  Defaults to @samp{()}."
 msgstr ""
 "Lista de dominios para los mecanismos de identificación de SASL que necesite. Puede dejarla vacía si no desea permitir múltiples dominios. Muchos clientes simplemente usarán el primero de la lista, por lo que debe mantener el dominio predeterminado en primera posición.\n"
 "Su valor predeterminado es @samp{()}."
 
 #. type: deftypevr
-#: doc/guix.texi:16877
+#: doc/guix.texi:19566
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string auth-default-realm"
 msgstr "{parámetro de @code{dovecot-configuration}} string auth-default-realm"
 
 #. type: deftypevr
-#: doc/guix.texi:16882
+#: doc/guix.texi:19571
 msgid "Default realm/domain to use if none was specified.  This is used for both SASL realms and appending @@domain to username in plaintext logins.  Defaults to @samp{\"\"}."
 msgstr ""
 "Dominio predeterminado usado en caso de no especificar ninguno. Esto se usa tanto en dominios SASL y como al añadir @@dominio al nombre de usuaria en los ingresos al sistema a través de texto en claro.\n"
 "Su valor predeterminado es @samp{\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16884
+#: doc/guix.texi:19573
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string auth-username-chars"
 msgstr "{parámetro de @code{dovecot-configuration}} string auth-username-chars"
 
 #. type: deftypevr
-#: doc/guix.texi:16891
+#: doc/guix.texi:19580
 msgid "List of allowed characters in username.  If the user-given username contains a character not listed in here, the login automatically fails.  This is just an extra check to make sure user can't exploit any potential quote escaping vulnerabilities with SQL/LDAP databases.  If you want to allow all characters, set this value to empty.  Defaults to @samp{\"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890.-_@@\"}."
 msgstr ""
 "Lista de caracteres permitidos en los nombres de usuaria. Si el nombre de usuaria proporcionado contiene un carácter no enumerado aquí, el login falla automáticamente. Es únicamente una comprobación adicional para asegurarse de que las usuarias no pueden explotar ninguna potencial vulnerabilidad con el escape de comillas en bases de datos SQL/LDAP. Si desea permitir todos los caracteres, establezca este valor a la cadena vacía.\n"
 "Su valor predeterminado es @samp{\"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890.-_@@\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16893
+#: doc/guix.texi:19582
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string auth-username-translation"
 msgstr "{parámetro de @code{dovecot-configuration}} string auth-username-translation"
 
 #. type: deftypevr
-#: doc/guix.texi:16899
+#: doc/guix.texi:19588
 msgid "Username character translations before it's looked up from databases.  The value contains series of from -> to characters.  For example @samp{#@@/@@} means that @samp{#} and @samp{/} characters are translated to @samp{@@}.  Defaults to @samp{\"\"}."
 msgstr ""
 "Traducciones de caracteres de nombres de usuaria antes de que se busque en las bases de datos. El valor contiene series de caracteres \"original -> transformado\". Por ejemplo @samp{#@@/@@} significa que @samp{#} y @samp{/} se traducen en @samp{@@}.\n"
 "Su valor predeterminado es @samp{\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16901
+#: doc/guix.texi:19590
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string auth-username-format"
 msgstr "{parámetro de @code{dovecot-configuration}} string auth-username-format"
 
 #. type: deftypevr
-#: doc/guix.texi:16908
+#: doc/guix.texi:19597
 msgid "Username formatting before it's looked up from databases.  You can use the standard variables here, e.g.@: %Lu would lowercase the username, %n would drop away the domain if it was given, or @samp{%n-AT-%d} would change the @samp{@@} into @samp{-AT-}.  This translation is done after @samp{auth-username-translation} changes.  Defaults to @samp{\"%Lu\"}."
 msgstr ""
 "Formato proporcionado al nombre de usuaria antes de buscarlo en las bases de datos. Puede usar variables estándar aquí, por ejemplo %Lu transformará el nombre a minúsculas, %n eliminará el fragmento del dominio si se proporcionó, o @samp{%n-AT-%d} cambiaría @samp{@@} en @samp{-AT-}. Esta traducción se realiza tras los cambios de @samp{auth-username-translation}.\n"
 "Su valor predeterminado es @samp{\"%Lu\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16910
+#: doc/guix.texi:19599
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string auth-master-user-separator"
 msgstr "{parámetro de @code{dovecot-configuration}} string auth-master-user-separator"
 
 #. type: deftypevr
-#: doc/guix.texi:16918
+#: doc/guix.texi:19607
 msgid "If you want to allow master users to log in by specifying the master username within the normal username string (i.e.@: not using SASL mechanism's support for it), you can specify the separator character here.  The format is then <username><separator><master username>.  UW-IMAP uses @samp{*} as the separator, so that could be a good choice.  Defaults to @samp{\"\"}."
 msgstr ""
 "Si desea permitir que usuarias maestras ingresen mediante la especificación del nombre de usuaria maestra dentro de la cadena de nombre de usuaria normal (es decir, sin usar el mecanismo para ello implementado por SASL), puede especificar aquí el carácter separador. El formato es entonces <usuaria><separador><usuaria maestra>. UW-IMAP usa @samp{*} como separador, por lo que esa puede ser una buena elección.\n"
 "Su valor predeterminado es @samp{\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16920
+#: doc/guix.texi:19609
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string auth-anonymous-username"
 msgstr "{parámetro de @code{dovecot-configuration}} string auth-anonymous-username"
 
 #. type: deftypevr
-#: doc/guix.texi:16924
+#: doc/guix.texi:19613
 msgid "Username to use for users logging in with ANONYMOUS SASL mechanism.  Defaults to @samp{\"anonymous\"}."
 msgstr ""
 "Usuaria usada para las usuarias que ingresen al sistema con el mecanismo de SASL ANONYMOUS.\n"
 "Su valor predeterminado es @samp{\"anonymous\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16926
+#: doc/guix.texi:19615
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} non-negative-integer auth-worker-max-count"
 msgstr "{parámetro de @code{dovecot-configuration}} entero-no-negativo auth-worker-max-count"
 
 #. type: deftypevr
-#: doc/guix.texi:16931
+#: doc/guix.texi:19620
 msgid "Maximum number of dovecot-auth worker processes.  They're used to execute blocking passdb and userdb queries (e.g.@: MySQL and PAM).  They're automatically created and destroyed as needed.  Defaults to @samp{30}."
 msgstr ""
 "Número máximo de procesos de trabajo dovecot-auth. Se usan para la ejecución de consultas bloqueantes a passdb y userdb (por ejemplo MySQL y PAM). Se crean y destruyen bajo demanda de manera automática.\n"
 "Su valor predeterminado es @samp{30}."
 
 #. type: deftypevr
-#: doc/guix.texi:16933
+#: doc/guix.texi:19622
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string auth-gssapi-hostname"
 msgstr "{parámetro de @code{dovecot-configuration}} string auth-gssapi-hostname"
@@ -32710,62 +37442,62 @@ msgstr "{parámetro de @code{dovecot-configuration}} string auth-gssapi-hostname
 # FUZZY
 # TODO (MAAV): Keytab
 #. type: deftypevr
-#: doc/guix.texi:16938
+#: doc/guix.texi:19627
 msgid "Host name to use in GSSAPI principal names.  The default is to use the name returned by gethostname().  Use @samp{$ALL} (with quotes) to allow all keytab entries.  Defaults to @samp{\"\"}."
 msgstr ""
 "Nombre de máquina usado en los nombres de GSSAPI principales. Por omisión se usa el nombre devuelto por gethostname(). Use @samp{$ALL} (con comillas) para permitir todas las entradas keytab.\n"
 "Su valor predeterminado es @samp{\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16940
+#: doc/guix.texi:19629
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string auth-krb5-keytab"
 msgstr "{parámetro de @code{dovecot-configuration}} string auth-krb5-keytab"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:16946
+#: doc/guix.texi:19635
 msgid "Kerberos keytab to use for the GSSAPI mechanism.  Will use the system default (usually @file{/etc/krb5.keytab}) if not specified.  You may need to change the auth service to run as root to be able to read this file.  Defaults to @samp{\"\"}."
 msgstr ""
-"Keytab de Kerberos usado para el mecanismo GSSAPI. Si no se especifica ninguno, se usa el predeterminado del sistema (habitualmente @file{/etc/krb5.keytab}). Puede ser necesario cambiar el servicio auth para que se ejecute como root y tenga permisos de lectura sobre este fichero.\n"
+"Keytab de Kerberos usado para el mecanismo GSSAPI. Si no se especifica ninguno, se usa el predeterminado del sistema (habitualmente @file{/etc/krb5.keytab}). Puede ser necesario cambiar el servicio auth para que se ejecute como root y tenga permisos de lectura sobre este archivo.\n"
 "Su valor predeterminado es @samp{\"\"}."
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:16948
+#: doc/guix.texi:19637
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean auth-use-winbind?"
 msgstr "{parámetro de @code{dovecot-configuration}} boolean auth-use-winbind?"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:16953
+#: doc/guix.texi:19642
 msgid "Do NTLM and GSS-SPNEGO authentication using Samba's winbind daemon and @samp{ntlm-auth} helper.  <doc/wiki/Authentication/Mechanisms/Winbind.txt>.  Defaults to @samp{#f}."
 msgstr ""
 "Se identifica con NTLM y GSS-SPNEGO mediante el uso del daemon winbind de Samba y la herramienta auxiliar @samp{ntlm-auth}. <doc/wiki/Authentication/Mechanisms/Winbind.txt>.\n"
 "Su valor predeterminado es @samp{#f}."
 
 #. type: deftypevr
-#: doc/guix.texi:16955
+#: doc/guix.texi:19644
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} file-name auth-winbind-helper-path"
-msgstr "{parámetro de @code{dovecot-configuration}} nombre-fichero auth-winbind-helper-path"
+msgstr "{parámetro de @code{dovecot-configuration}} nombre-archivo auth-winbind-helper-path"
 
 #. type: deftypevr
-#: doc/guix.texi:16958
+#: doc/guix.texi:19647
 msgid "Path for Samba's @samp{ntlm-auth} helper binary.  Defaults to @samp{\"/usr/bin/ntlm_auth\"}."
 msgstr ""
 "Ruta al binario de la herramienta auxiliar @samp{ntlm-auth} de Samba.\n"
 "Su valor predeterminado es @samp{\"/usr/bin/ntlm_auth\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16960
+#: doc/guix.texi:19649
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string auth-failure-delay"
 msgstr "{parámetro de @code{dovecot-configuration}} string auth-failure-delay"
 
 #. type: deftypevr
-#: doc/guix.texi:16963
+#: doc/guix.texi:19652
 msgid "Time to delay before replying to failed authentications.  Defaults to @samp{\"2 secs\"}."
 msgstr ""
 "Tiempo de espera antes de responder a identificaciones fallidas.\n"
@@ -32773,13 +37505,13 @@ msgstr ""
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:16965
+#: doc/guix.texi:19654
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean auth-ssl-require-client-cert?"
 msgstr "{parámetro de @code{dovecot-configuration}} boolean auth-ssl-require-client-cert?"
 
 #. type: deftypevr
-#: doc/guix.texi:16969
+#: doc/guix.texi:19658
 msgid "Require a valid SSL client certificate or the authentication fails.  Defaults to @samp{#f}."
 msgstr ""
 "Es necesario un certificado de cliente SSL válido o falla la identificación.\n"
@@ -32787,143 +37519,143 @@ msgstr ""
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:16971
+#: doc/guix.texi:19660
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean auth-ssl-username-from-cert?"
 msgstr "{parámetro de @code{dovecot-configuration}} boolean auth-ssl-username-from-cert?"
 
 #. type: deftypevr
-#: doc/guix.texi:16976
+#: doc/guix.texi:19665
 msgid "Take the username from client's SSL certificate, using @code{X509_NAME_get_text_by_NID()} which returns the subject's DN's CommonName.  Defaults to @samp{#f}."
 msgstr ""
 "Toma el nombre de usuaria del certificado de cliente SSL, mediante el uso de @code{X509_NAME_get_text_by_NID()}, que devuelve el nombre común (CommonName) del nombre de dominio (DN) del sujeto del certificado.\n"
 "Su valor predeterminado es @samp{#f}."
 
 #. type: deftypevr
-#: doc/guix.texi:16978
+#: doc/guix.texi:19667
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} space-separated-string-list auth-mechanisms"
 msgstr "{parámetro de @code{dovecot-configuration}} lista-cadenas-separada-espacios auth-mechanisms"
 
 #. type: deftypevr
-#: doc/guix.texi:16984
+#: doc/guix.texi:19673
 msgid "List of wanted authentication mechanisms.  Supported mechanisms are: @samp{plain}, @samp{login}, @samp{digest-md5}, @samp{cram-md5}, @samp{ntlm}, @samp{rpa}, @samp{apop}, @samp{anonymous}, @samp{gssapi}, @samp{otp}, @samp{skey}, and @samp{gss-spnego}.  NOTE: See also @samp{disable-plaintext-auth} setting."
 msgstr "Lista de mecanismos de identificación deseados. Los mecanismos permitidos son: @samp{plain}, @samp{login}, @samp{digest-md5}, @samp{cram-md5}, @samp{ntlm}, @samp{rpa}, @samp{apop}, @samp{anonymous}, @samp{gssapi}, @samp{otp}, @samp{key}, and @samp{gss-spnego}.  ATENCIÓN: Véase también la opción de configuración @samp{disable-plaintext-auth}."
 
 #. type: deftypevr
-#: doc/guix.texi:16986
+#: doc/guix.texi:19675
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} space-separated-string-list director-servers"
 msgstr "{parámetro de @code{dovecot-configuration}} lista-cadenas-separada-espacios director-servers"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:16991
+#: doc/guix.texi:19680
 msgid "List of IPs or hostnames to all director servers, including ourself.  Ports can be specified as ip:port.  The default port is the same as what director service's @samp{inet-listener} is using.  Defaults to @samp{()}."
 msgstr ""
 "Lista de IP o nombres de máquina de los servidores directores, incluyendo este mismo. Los puertos se pueden especificar como ip:puerto. El puerto predeterminado es el mismo que el usado por el servicio director @samp{inet-listener}.\n"
 "Su valor predeterminado es @samp{()}."
 
 #. type: deftypevr
-#: doc/guix.texi:16993
+#: doc/guix.texi:19682
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} space-separated-string-list director-mail-servers"
 msgstr "{parámetro de @code{dovecot-configuration}} lista-cadenas-separada-espacios director-mail-servers"
 
 #. type: deftypevr
-#: doc/guix.texi:16997
+#: doc/guix.texi:19686
 msgid "List of IPs or hostnames to all backend mail servers.  Ranges are allowed too, like 10.0.0.10-10.0.0.30.  Defaults to @samp{()}."
 msgstr ""
 "Lista de IP o nombres de máquina de los servidores motores de correo. Se permiten también rangos, como 10.0.0.10-10.0.0.30.\n"
 "Su valor predeterminado es @samp{()}."
 
 #. type: deftypevr
-#: doc/guix.texi:16999
+#: doc/guix.texi:19688
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string director-user-expire"
 msgstr "{parámetro de @code{dovecot-configuration}} string director-user-expire"
 
 #. type: deftypevr
-#: doc/guix.texi:17003
+#: doc/guix.texi:19692
 msgid "How long to redirect users to a specific server after it no longer has any connections.  Defaults to @samp{\"15 min\"}."
 msgstr ""
 "Por cuanto tiempo se redirige a las usuarias a un servidor específico tras pasar ese tiempo sin conexiones.\n"
 "Su valor predeterminado es @samp{\"15 min\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17005
+#: doc/guix.texi:19694
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string director-username-hash"
 msgstr "{parámetro de @code{dovecot-configuration}} string director-username-hash"
 
 #. type: deftypevr
-#: doc/guix.texi:17010
+#: doc/guix.texi:19699
 msgid "How the username is translated before being hashed.  Useful values include %Ln if user can log in with or without @@domain, %Ld if mailboxes are shared within domain.  Defaults to @samp{\"%Lu\"}."
 msgstr ""
 "Cómo se traduce el nombre de usuaria antes de aplicar el hash. Entre los valores útiles se incluye %Ln si la usuaria puede ingresar en el sistema con o sin @@dominio, %Ld si las bandejas de correo se comparten dentro del dominio.\n"
 "Su valor predeterminado es @samp{\"%Lu\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17012
+#: doc/guix.texi:19701
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string log-path"
 msgstr "{parámetro de @code{dovecot-configuration}} string log-path"
 
 #. type: deftypevr
-#: doc/guix.texi:17016
+#: doc/guix.texi:19705
 msgid "Log file to use for error messages.  @samp{syslog} logs to syslog, @samp{/dev/stderr} logs to stderr.  Defaults to @samp{\"syslog\"}."
 msgstr ""
-"Fichero de registro usado para los mensajes de error. @samp{syslog} los envía a syslog, @samp{\"/dev/stderr\"} a la salida de error estándar.\n"
+"Archivo de registro usado para los mensajes de error. @samp{syslog} los envía a syslog, @samp{\"/dev/stderr\"} a la salida de error estándar.\n"
 "Su valor predeterminado es @samp{\"syslog\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17018
+#: doc/guix.texi:19707
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string info-log-path"
 msgstr "{parámetro de @code{dovecot-configuration}} string info-log-path"
 
 #. type: deftypevr
-#: doc/guix.texi:17022
+#: doc/guix.texi:19711
 msgid "Log file to use for informational messages.  Defaults to @samp{log-path}.  Defaults to @samp{\"\"}."
 msgstr ""
-"Fichero de registro usado para los mensajes informativos. Por omisión se usa @samp{log-path}.\n"
+"Archivo de registro usado para los mensajes informativos. Por omisión se usa @samp{log-path}.\n"
 "Su valor predeterminado es @samp{\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17024
+#: doc/guix.texi:19713
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string debug-log-path"
 msgstr "{parámetro de @code{dovecot-configuration}} string debug-log-path"
 
 #. type: deftypevr
-#: doc/guix.texi:17028
+#: doc/guix.texi:19717
 msgid "Log file to use for debug messages.  Defaults to @samp{info-log-path}.  Defaults to @samp{\"\"}."
 msgstr ""
-"Fichero de registro usado para los mensajes de depuración. Por omisión se usa @samp{info-log-path}.\n"
+"Archivo de registro usado para los mensajes de depuración. Por omisión se usa @samp{info-log-path}.\n"
 "Su valor predeterminado es @samp{\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17030
+#: doc/guix.texi:19719
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string syslog-facility"
 msgstr "{parámetro de @code{dovecot-configuration}} string syslog-facility"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:17035
+#: doc/guix.texi:19724
 msgid "Syslog facility to use if you're logging to syslog.  Usually if you don't want to use @samp{mail}, you'll use local0..local7.  Also other standard facilities are supported.  Defaults to @samp{\"mail\"}."
 msgstr ""
 "Subsistema de syslog (facility) usado si se envía el registro a syslog. De manera habitual, si desea que no se use @samp{mail}, se usará local0..local7. Otros subsistemas estándar también están implementados.\n"
 "Su valor predeterminado es @samp{\"mail\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17037
+#: doc/guix.texi:19726
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean auth-verbose?"
 msgstr "{parámetro de @code{dovecot-configuration}} boolean auth-verbose?"
 
 #. type: deftypevr
-#: doc/guix.texi:17041
+#: doc/guix.texi:19730
 msgid "Log unsuccessful authentication attempts and the reasons why they failed.  Defaults to @samp{#f}."
 msgstr ""
 "Registra los intentos de identificación infructuosos y las razones por los que fallaron.\n"
@@ -32931,14 +37663,14 @@ msgstr ""
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:17043
+#: doc/guix.texi:19732
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string auth-verbose-passwords"
 msgstr "{parámetro de @code{dovecot-configuration}} string auth-verbose-passwords"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:17050
+#: doc/guix.texi:19739
 msgid "In case of password mismatches, log the attempted password.  Valid values are no, plain and sha1.  sha1 can be useful for detecting brute force password attempts vs.  user simply trying the same password over and over again.  You can also truncate the value to n chars by appending \":n\" (e.g.@: sha1:6).  Defaults to @samp{\"no\"}."
 msgstr ""
 "En caso de no coincidir la contraseña, registra la contraseña que se intentó. Los valores aceptados son ``no'', ``plain'' y ``sha1''. ``sha1'' puede ser útil para diferenciar intentos de descubrir la contraseña por fuerza bruta frente a una usuaria simplemente intentando la misma contraseña una y otra vez. También puede recortar el valor a n caracteres mediante la adición de \":n\" (por ejemplo ``sha1:6'').\n"
@@ -32946,14 +37678,14 @@ msgstr ""
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:17052
+#: doc/guix.texi:19741
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean auth-debug?"
 msgstr "{parámetro de @code{dovecot-configuration}} boolean auth-debug?"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:17056
+#: doc/guix.texi:19745
 msgid "Even more verbose logging for debugging purposes.  Shows for example SQL queries.  Defaults to @samp{#f}."
 msgstr ""
 "Registros aún más detallados para facilitar la depuración. Muestra, por ejemplo, las consultas SQL.\n"
@@ -32961,14 +37693,14 @@ msgstr ""
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:17058
+#: doc/guix.texi:19747
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean auth-debug-passwords?"
 msgstr "{parámetro de @code{dovecot-configuration}} boolean auth-debug-passwords?"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:17063
+#: doc/guix.texi:19752
 msgid "In case of password mismatches, log the passwords and used scheme so the problem can be debugged.  Enabling this also enables @samp{auth-debug}.  Defaults to @samp{#f}."
 msgstr ""
 "En caso de no coincidir la contraseña, registra las contraseñas y esquema usadas de manera que el problema se pueda depurar. La activación de este valor también provoca la activación de @samp{auth-debug}.\n"
@@ -32976,14 +37708,14 @@ msgstr ""
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:17065
+#: doc/guix.texi:19754
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean mail-debug?"
 msgstr "{parámetro de @code{dovecot-configuration}} boolean mail-debug?"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:17069
+#: doc/guix.texi:19758
 msgid "Enable mail process debugging.  This can help you figure out why Dovecot isn't finding your mails.  Defaults to @samp{#f}."
 msgstr ""
 "Permite la depuración de los procesos de correo. Puede ayudarle a comprender los motivos en caso de que Dovecot no encuentre sus correos.\n"
@@ -32991,1504 +37723,1504 @@ msgstr ""
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:17071
+#: doc/guix.texi:19760
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean verbose-ssl?"
 msgstr "{parámetro de @code{dovecot-configuration}} boolean verbose-ssl?"
 
 #. type: deftypevr
-#: doc/guix.texi:17074
+#: doc/guix.texi:19763
 msgid "Show protocol level SSL errors.  Defaults to @samp{#f}."
 msgstr ""
 "Muestra los errores a nivel de protocolo SSL.\n"
 "Su valor predeterminado es @samp{#f}."
 
 #. type: deftypevr
-#: doc/guix.texi:17076
+#: doc/guix.texi:19765
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string log-timestamp"
 msgstr "{parámetro de @code{dovecot-configuration}} string log-timestamp"
 
 #. type: deftypevr
-#: doc/guix.texi:17080
+#: doc/guix.texi:19769
 msgid "Prefix for each line written to log file.  % codes are in strftime(3) format.  Defaults to @samp{\"\\\"%b %d %H:%M:%S \\\"\"}."
 msgstr ""
-"Prefijo de cada línea registrada en el fichero. Los códigos % tienen el formato de strftime(3).\n"
+"Prefijo de cada línea registrada en el archivo. Los códigos % tienen el formato de strftime(3).\n"
 "Su valor predeterminado es @samp{\"\\\"%b %d %H:%M:%S \\\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17082
+#: doc/guix.texi:19771
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} space-separated-string-list login-log-format-elements"
 msgstr "{parámetro de @code{dovecot-configuration}} lista-cadenas-separada-espacios login-log-format-elements"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:17086
+#: doc/guix.texi:19775
 msgid "List of elements we want to log.  The elements which have a non-empty variable value are joined together to form a comma-separated string."
 msgstr "Lista de elementos que se desea registrar. Los elementos que tengan valor de variable no-vacía se unen para la formación de una cadena separada por comas."
 
 #. type: deftypevr
-#: doc/guix.texi:17088
+#: doc/guix.texi:19777
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string login-log-format"
 msgstr "{parámetro de @code{dovecot-configuration}} string login-log-format"
 
 #. type: deftypevr
-#: doc/guix.texi:17092
+#: doc/guix.texi:19781
 msgid "Login log format.  %s contains @samp{login-log-format-elements} string, %$ contains the data we want to log.  Defaults to @samp{\"%$: %s\"}."
 msgstr ""
 "Formato del registro de ingresos al sistema. %s contiene la cadena @samp{login-log-format-elements}, %$ contiene los datos que se desean registrar.\n"
 "Su valor predeterminado es @samp{\"%$: %s\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17094
+#: doc/guix.texi:19783
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string mail-log-prefix"
 msgstr "{parámetro de @code{dovecot-configuration}} string mail-log-prefix"
 
 #. type: deftypevr
-#: doc/guix.texi:17098
+#: doc/guix.texi:19787
 msgid "Log prefix for mail processes.  See doc/wiki/Variables.txt for list of possible variables you can use.  Defaults to @samp{\"\\\"%s(%u)<%@{pid@}><%@{session@}>: \\\"\"}."
 msgstr ""
 "Prefijo de los registros de procesos de correo. Véase doc/wiki/Variables.txt para obtener una lista de variables que puede usar.\n"
 "Su valor predeterminado es @samp{\"\\\"%s(%u)<%@{pid@}><%@{session@}>: \\\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17100
+#: doc/guix.texi:19789
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string deliver-log-format"
 msgstr "{parámetro de @code{dovecot-configuration}} string deliver-log-format"
 
 #. type: deftypevr
-#: doc/guix.texi:17102
+#: doc/guix.texi:19791
 msgid "Format to use for logging mail deliveries.  You can use variables:"
 msgstr "Formato usado para el registro de las entregas de correo. Puede usar las variables:"
 
 #. type: item
-#: doc/guix.texi:17103
+#: doc/guix.texi:19792
 #, no-wrap
 msgid "%$"
 msgstr "%$"
 
 #. type: table
-#: doc/guix.texi:17105
+#: doc/guix.texi:19794
 msgid "Delivery status message (e.g.@: @samp{saved to INBOX})"
 msgstr "Mensaje de estado de entrega (por ejemplo: @samp{saved to INBOX})"
 
 #. type: item
-#: doc/guix.texi:17105
+#: doc/guix.texi:19794
 #, no-wrap
 msgid "%m"
 msgstr "%m"
 
 #. type: table
-#: doc/guix.texi:17107
+#: doc/guix.texi:19796
 msgid "Message-ID"
 msgstr "Message-ID"
 
 #. type: item
-#: doc/guix.texi:17107 doc/guix.texi:17639
+#: doc/guix.texi:19796 doc/guix.texi:20328
 #, no-wrap
 msgid "%s"
 msgstr "%s"
 
 #. type: table
-#: doc/guix.texi:17109
+#: doc/guix.texi:19798
 msgid "Subject"
 msgstr "Asunto"
 
 #. type: item
-#: doc/guix.texi:17109
+#: doc/guix.texi:19798
 #, no-wrap
 msgid "%f"
 msgstr "%f"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:17111
+#: doc/guix.texi:19800
 msgid "From address"
 msgstr "De (dirección)"
 
 #. type: table
-#: doc/guix.texi:17113
+#: doc/guix.texi:19802
 msgid "Physical size"
 msgstr "Tamaño físico"
 
 #. type: item
-#: doc/guix.texi:17113
+#: doc/guix.texi:19802
 #, no-wrap
 msgid "%w"
 msgstr "%w"
 
 #. type: table
-#: doc/guix.texi:17115
+#: doc/guix.texi:19804
 msgid "Virtual size."
 msgstr "Tamaño virtual."
 
 #. type: deftypevr
-#: doc/guix.texi:17117
+#: doc/guix.texi:19806
 msgid "Defaults to @samp{\"msgid=%m: %$\"}."
 msgstr "El valor predeterminado es @samp{\"msgid=%m: %$\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17119
+#: doc/guix.texi:19808
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string mail-location"
 msgstr "{parámetro de @code{dovecot-configuration}} string mail-location"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:17124
+#: doc/guix.texi:19813
 msgid "Location for users' mailboxes.  The default is empty, which means that Dovecot tries to find the mailboxes automatically.  This won't work if the user doesn't yet have any mail, so you should explicitly tell Dovecot the full location."
 msgstr "Localización de las bandejas de correo de las usuarias. El valor predeterminado está vacío, lo que significa que Dovecot intenta encontrar las bandejas de correo de manera automática. Esto no funciona si la usuaria no tiene todavía ningún correo, por lo que debe proporcionarle a Dovecot la ruta completa."
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:17130
-msgid "If you're using mbox, giving a path to the INBOX file (e.g.@: /var/mail/%u) isn't enough.  You'll also need to tell Dovecot where the other mailboxes are kept.  This is called the \"root mail directory\", and it must be the first path given in the @samp{mail-location} setting."
-msgstr "Si usa mbox, proporcionar una ruta al fichero de la bandeja entrada ``INBOX'' (por ejemplo /var/mail/%u) no es suficiente. También debe proporcionarle a Dovecot la ruta de otras bandejas de correo. Este es el llamado ``directorio de correo raíz'', y debe ser la primera ruta proporcionada en la opción @samp{mail-location}. "
+#: doc/guix.texi:19819
+msgid "If you're using mbox, giving a path to the INBOX file (e.g.@: @file{/var/mail/%u}) isn't enough.  You'll also need to tell Dovecot where the other mailboxes are kept.  This is called the @emph{root mail directory}, and it must be the first path given in the @samp{mail-location} setting."
+msgstr "Si usa mbox, proporcionar una ruta al archivo de la bandeja entrada ``INBOX'' (por ejemplo @file{/var/mail/%u}) no es suficiente. También debe proporcionarle a Dovecot la ruta de otras bandejas de correo. Este es el llamado @emph{directorio de correo raíz}, y debe ser la primera ruta proporcionada en la opción @samp{mail-location}. "
 
 #. type: deftypevr
-#: doc/guix.texi:17132
-msgid "There are a few special variables you can use, eg.:"
+#: doc/guix.texi:19821
+msgid "There are a few special variables you can use, e.g.:"
 msgstr "Existen algunas variables especiales que puede usar, por ejemplo:"
 
 #. type: table
-#: doc/guix.texi:17136
+#: doc/guix.texi:19825
 msgid "username"
 msgstr "nombre de usuaria"
 
 #. type: item
-#: doc/guix.texi:17136 doc/guix.texi:17635
+#: doc/guix.texi:19825 doc/guix.texi:20324
 #, no-wrap
 msgid "%n"
 msgstr "%n"
 
 #. type: table
-#: doc/guix.texi:17138
+#: doc/guix.texi:19827
 msgid "user part in user@@domain, same as %u if there's no domain"
 msgstr "parte de la usuaria en usuaria@@dominio, idéntica a %u si no existe dominio"
 
 #. type: item
-#: doc/guix.texi:17138
+#: doc/guix.texi:19827
 #, no-wrap
 msgid "%d"
 msgstr "%d"
 
 #. type: table
-#: doc/guix.texi:17140
+#: doc/guix.texi:19829
 msgid "domain part in user@@domain, empty if there's no domain"
 msgstr "parte del dominio en usuaria@@dominio, vacía si no existe dominio"
 
 #. type: item
-#: doc/guix.texi:17140
+#: doc/guix.texi:19829
 #, no-wrap
 msgid "%h"
 msgstr "%h"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:17142
+#: doc/guix.texi:19831
 msgid "home director"
 msgstr "directorio de la usuaria"
 
 #. type: deftypevr
-#: doc/guix.texi:17145
+#: doc/guix.texi:19834
 msgid "See doc/wiki/Variables.txt for full list.  Some examples:"
 msgstr "Véase doc/wiki/Variables.txt para obtener una lista completa. Algunos ejemplos:"
 
 #. type: item
-#: doc/guix.texi:17146
+#: doc/guix.texi:19835
 #, no-wrap
 msgid "maildir:~/Maildir"
 msgstr "maildir:~/Correo"
 
 #. type: item
-#: doc/guix.texi:17147
+#: doc/guix.texi:19836
 #, no-wrap
 msgid "mbox:~/mail:INBOX=/var/mail/%u"
 msgstr "mbox:~/correo:INBOX=/var/mail/%u"
 
 #. type: item
-#: doc/guix.texi:17148
+#: doc/guix.texi:19837
 #, no-wrap
 msgid "mbox:/var/mail/%d/%1n/%n:INDEX=/var/indexes/%d/%1n/%"
 msgstr "mbox:/var/mail/%d/%1n/%n:INDEX=/var/indexes/%d/%1n/%"
 
 #. type: deftypevr
-#: doc/guix.texi:17153
+#: doc/guix.texi:19842
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string mail-uid"
 msgstr "{parámetro de @code{dovecot-configuration}} string mail-uid"
 
 # FUZZY FUZZY FUZZY
 #. type: deftypevr
-#: doc/guix.texi:17158
+#: doc/guix.texi:19847
 msgid "System user and group used to access mails.  If you use multiple, userdb can override these by returning uid or gid fields.  You can use either numbers or names.  <doc/wiki/UserIds.txt>.  Defaults to @samp{\"\"}."
 msgstr ""
 "Usuaria del sistema y grupo que realizan el acceso al correo. Si se usan varias, userdb puede forzar su valor al devolver campos uid o gid. Se pueden usar tanto identificadores numéricos como nominales. <doc/wiki/UserIds.txt>.\n"
 "Su valor predeterminado es @samp{\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17160
+#: doc/guix.texi:19849
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string mail-gid"
 msgstr "{parámetro de @code{dovecot-configuration}} string mail-gid"
 
 #. type: deftypevr
-#: doc/guix.texi:17165
+#: doc/guix.texi:19854
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string mail-privileged-group"
 msgstr "{parámetro de @code{dovecot-configuration}} string mail-privileged-group"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:17171
-msgid "Group to enable temporarily for privileged operations.  Currently this is used only with INBOX when either its initial creation or dotlocking fails.  Typically this is set to \"mail\" to give access to /var/mail.  Defaults to @samp{\"\"}."
+#: doc/guix.texi:19860
+msgid "Group to enable temporarily for privileged operations.  Currently this is used only with INBOX when either its initial creation or dotlocking fails.  Typically this is set to @samp{\"mail\"} to give access to @file{/var/mail}.  Defaults to @samp{\"\"}."
 msgstr ""
-"Grupo para permitir de forma temporal operaciones privilegiadas. Actualmente esto se usa únicamente con la bandeja de entrada (INBOX), cuando su creación inicial o el bloqueo con fichero .lock falle. Habitualmente se le proporciona el valor \"mail\" para tener acceso a /var/mail.\n"
+"Grupo para permitir de forma temporal operaciones privilegiadas. Actualmente esto se usa únicamente con la bandeja de entrada (INBOX), cuando su creación inicial o el bloqueo con archivo @file{.lock} falle. Habitualmente se le proporciona el valor @samp{\"mail\"} para tener acceso a @file{/var/mail}.\n"
 "Su valor predeterminado es @samp{\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17173
+#: doc/guix.texi:19862
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string mail-access-groups"
 msgstr "{parámetro de @code{dovecot-configuration}} string mail-access-groups"
 
 # FUZZY FUZZY
 #. type: deftypevr
-#: doc/guix.texi:17181
-msgid "Grant access to these supplementary groups for mail processes.  Typically these are used to set up access to shared mailboxes.  Note that it may be dangerous to set these if users can create symlinks (e.g.@: if \"mail\" group is set here, ln -s /var/mail ~/mail/var could allow a user to delete others' mailboxes, or ln -s /secret/shared/box ~/mail/mybox would allow reading it).  Defaults to @samp{\"\"}."
+#: doc/guix.texi:19870
+msgid "Grant access to these supplementary groups for mail processes.  Typically these are used to set up access to shared mailboxes.  Note that it may be dangerous to set these if users can create symlinks (e.g.@: if @samp{mail} group is set here, @code{ln -s /var/mail ~/mail/var} could allow a user to delete others' mailboxes, or @code{ln -s /secret/shared/box ~/mail/mybox} would allow reading it).  Defaults to @samp{\"\"}."
 msgstr ""
-"Proporciona acceso a estos grupos suplementarios a los procesos de correo. Habitualmente se usan para configurar el acceso a bandejas de correo compartidas. Tenga en cuenta que puede ser peligroso establecerlos si las usuarias pueden crear enlaces simbólicos (por ejemplo si se configura el grupo \"mail\" aquí, ln -s /var/mail ~/mail/var puede permitir a una usuaria borrar las bandejas de correo de otras usuarias, o ln -s /bandeja/compartida/secreta ~/mail/mibandeja permitiría su lectura).\n"
+"Proporciona acceso a estos grupos suplementarios a los procesos de correo. Habitualmente se usan para configurar el acceso a bandejas de correo compartidas. Tenga en cuenta que puede ser peligroso establecerlos si las usuarias pueden crear enlaces simbólicos (por ejemplo si se configura el grupo @samp{mail} aquí, @code{ln -s /var/mail ~/mail/var} puede permitir a una usuaria borrar las bandejas de correo de otras usuarias, o @code{ln -s /bandeja/compartida/secreta ~/mail/mibandeja} permitiría su lectura).\n"
 "Su valor predeterminado es @samp{\"\"}."
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:17183
+#: doc/guix.texi:19872
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean mail-full-filesystem-access?"
 msgstr "{parámetro de @code{dovecot-configuration}} boolean mail-full-filesystem-access?"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:17189
-msgid "Allow full file system access to clients.  There's no access checks other than what the operating system does for the active UID/GID.  It works with both maildir and mboxes, allowing you to prefix mailboxes names with e.g.@: /path/ or ~user/.  Defaults to @samp{#f}."
+#: doc/guix.texi:19878
+msgid "Allow full file system access to clients.  There's no access checks other than what the operating system does for the active UID/GID.  It works with both maildir and mboxes, allowing you to prefix mailboxes names with e.g.@: @file{/path/} or @file{~user/}.  Defaults to @samp{#f}."
 msgstr ""
-"Permite a los clientes acceso completo al sistema de ficheros. No existen otros controles de acceso que los realizados por el sistema operativo para los identificadores UID/GID activos. Funciona tanto con maildir como con mbox, lo que permite la adición de un prefijo a los nombres de las bandejas de correo como /ruta/ o ~usuaria/.\n"
+"Permite a los clientes acceso completo al sistema de archivos. No existen otros controles de acceso que los realizados por el sistema operativo para los identificadores UID/GID activos. Funciona tanto con maildir como con mbox, lo que permite la adición de un prefijo a los nombres de las bandejas de correo como por ejemplo @file{/ruta/} o @file{~usuaria/}.\n"
 "Su valor predeterminado es @samp{#f}."
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:17191
+#: doc/guix.texi:19880
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean mmap-disable?"
 msgstr "{parámetro de @code{dovecot-configuration}} boolean mmap-disable?"
 
 #. type: deftypevr
-#: doc/guix.texi:17195
-msgid "Don't use mmap() at all.  This is required if you store indexes to shared file systems (NFS or clustered file system).  Defaults to @samp{#f}."
+#: doc/guix.texi:19884
+msgid "Don't use @code{mmap()} at all.  This is required if you store indexes to shared file systems (NFS or clustered file system).  Defaults to @samp{#f}."
 msgstr ""
-"No usa mmap() en absoluto. Es necesario si almacena índices en sistemas de ficheros compartidos (NFS o sistemas de ficheros en cluster).\n"
+"No usa @code{mmap()} en absoluto. Es necesario si almacena índices en sistemas de archivos compartidos (NFS o sistemas de archivos en cluster).\n"
 "Su valor predeterminado es @samp{#f}."
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:17197
+#: doc/guix.texi:19886
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean dotlock-use-excl?"
 msgstr "{parámetro de @code{dovecot-configuration}} boolean dotlock-use-excl?"
 
 # FUZZY FUZZY
 #. type: deftypevr
-#: doc/guix.texi:17202
+#: doc/guix.texi:19891
 msgid "Rely on @samp{O_EXCL} to work when creating dotlock files.  NFS supports @samp{O_EXCL} since version 3, so this should be safe to use nowadays by default.  Defaults to @samp{#t}."
 msgstr ""
-"Confía en el correcto funcionamiento de @samp{O_EXCL} para la creación de ficheros de bloqueo dotlock. NFS implementa @samp{O_EXCL} desde la versión 3, por lo que debería ser seguro usarlo hoy en día de manera predeterminada.\n"
+"Confía en el correcto funcionamiento de @samp{O_EXCL} para la creación de archivos de bloqueo dotlock. NFS implementa @samp{O_EXCL} desde la versión 3, por lo que debería ser seguro usarlo hoy en día de manera predeterminada.\n"
 "Su valor predeterminado es @samp{#t}."
 
 #. type: deftypevr
-#: doc/guix.texi:17204
+#: doc/guix.texi:19893
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string mail-fsync"
 msgstr "{parámetro de @code{dovecot-configuration}} string mail-fsync"
 
 #. type: deftypevr
-#: doc/guix.texi:17206
+#: doc/guix.texi:19895
 msgid "When to use fsync() or fdatasync() calls:"
 msgstr "Cuando se usarán las llamadas fsync() o fdatasync():"
 
 #. type: item
-#: doc/guix.texi:17207
+#: doc/guix.texi:19896
 #, no-wrap
 msgid "optimized"
 msgstr "optimized"
 
 #. type: table
-#: doc/guix.texi:17209
+#: doc/guix.texi:19898
 msgid "Whenever necessary to avoid losing important data"
 msgstr "Cuando sea necesario para evitar la perdida de datos importantes"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:17211
-msgid "Useful with e.g.@: NFS when write()s are delayed"
-msgstr "Útil con, por ejemplo, NFS, donde las escrituras con write() se retrasan"
+#: doc/guix.texi:19900
+msgid "Useful with e.g.@: NFS when @code{write()}s are delayed"
+msgstr "Útil con, por ejemplo, NFS, donde las escrituras con @code{write()} se aplazan"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:17213
+#: doc/guix.texi:19902
 msgid "Never use it (best performance, but crashes can lose data)."
 msgstr "Nunca se usa (mejor rendimiento, pero los fallos pueden producir pérdida de datos)"
 
 #. type: deftypevr
-#: doc/guix.texi:17215
+#: doc/guix.texi:19904
 msgid "Defaults to @samp{\"optimized\"}."
 msgstr "Su valor predeterminado es @samp{\"optimized\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17217
+#: doc/guix.texi:19906
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean mail-nfs-storage?"
 msgstr "{parámetro de @code{dovecot-configuration}} boolean mail-nfs-storage?"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:17222
+#: doc/guix.texi:19911
 msgid "Mail storage exists in NFS.  Set this to yes to make Dovecot flush NFS caches whenever needed.  If you're using only a single mail server this isn't needed.  Defaults to @samp{#f}."
 msgstr ""
 "El almacenamiento del correo se encuentra en NFS. Proporcionar un valor afirmativo provoca que Dovecot vacíe la caché de NFS cuando sea necesario. Si únicamente está usando un servidor de correo único esto no es necesario.\n"
 "Su valor predeterminado es @samp{#f}."
 
 #. type: deftypevr
-#: doc/guix.texi:17224
+#: doc/guix.texi:19913
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean mail-nfs-index?"
 msgstr "{parámetro de @code{dovecot-configuration}} boolean mail-nfs-index?"
 
 #. type: deftypevr
-#: doc/guix.texi:17228
+#: doc/guix.texi:19917
 msgid "Mail index files also exist in NFS.  Setting this to yes requires @samp{mmap-disable? #t} and @samp{fsync-disable? #f}.  Defaults to @samp{#f}."
 msgstr ""
-"Los ficheros de índice de correo también se encuentran en NFS. Para proporcionar un valor afirmativo es necesario también proporcionar @samp{mmap-disable? #t} y @samp{fsync-disable? #f}.\n"
+"Los archivos de índice de correo también se encuentran en NFS. Para proporcionar un valor afirmativo es necesario también proporcionar @samp{mmap-disable? #t} y @samp{fsync-disable? #f}.\n"
 "Su valor predeterminado es @samp{#f}."
 
 #. type: deftypevr
-#: doc/guix.texi:17230
+#: doc/guix.texi:19919
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string lock-method"
 msgstr "{parámetro de @code{dovecot-configuration}} string lock-method"
 
 # FUZZY FUZZY
 #. type: deftypevr
-#: doc/guix.texi:17236
+#: doc/guix.texi:19925
 msgid "Locking method for index files.  Alternatives are fcntl, flock and dotlock.  Dotlocking uses some tricks which may create more disk I/O than other locking methods.  NFS users: flock doesn't work, remember to change @samp{mmap-disable}.  Defaults to @samp{\"fcntl\"}."
 msgstr ""
-"Método de bloqueo para los ficheros de índice. Las alternativas son fcntl, flock y dotlock. Dotlock utiliza técnicas que pueden provocar un consumo de E/S mayor que otros métodos de bloqueo. Usuarias de NFS: flock no funciona, recuerde que se debe cambiar @samp{mmap-disable}.\n"
+"Método de bloqueo para los archivos de índice. Las alternativas son fcntl, flock y dotlock. Dotlock utiliza técnicas que pueden provocar un consumo de E/S mayor que otros métodos de bloqueo. Usuarias de NFS: flock no funciona, recuerde que se debe cambiar @samp{mmap-disable}.\n"
 "Su valor predeterminado es @samp{\"fcntl\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17238
+#: doc/guix.texi:19927
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} file-name mail-temp-dir"
-msgstr "{parámetro de @code{dovecot-configuration}} nombre-fichero mail-temp-dir"
+msgstr "{parámetro de @code{dovecot-configuration}} nombre-archivo mail-temp-dir"
 
 #. type: deftypevr
-#: doc/guix.texi:17242
+#: doc/guix.texi:19931
 msgid "Directory in which LDA/LMTP temporarily stores incoming mails >128 kB.  Defaults to @samp{\"/tmp\"}."
 msgstr ""
 "Directorio en el que LDA/LMTP almacena de manera temporal correos entrantes de de más de 128 kB.\n"
 "Su valor predeterminado es @samp{\"/tmp\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17244
+#: doc/guix.texi:19933
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} non-negative-integer first-valid-uid"
 msgstr "{parámetro de @code{dovecot-configuration}} entero-no-negativo first-valid-uid"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:17250
+#: doc/guix.texi:19939
 msgid "Valid UID range for users.  This is mostly to make sure that users can't log in as daemons or other system users.  Note that denying root logins is hardcoded to dovecot binary and can't be done even if @samp{first-valid-uid} is set to 0.  Defaults to @samp{500}."
 msgstr ""
 "Rango de UID aceptado para las usuarias. Principalmente es para asegurarse de que las usuarias no pueden ingresar en el sistema como un daemon u otras usuarias del sistema. Tenga en cuenta que el binario de dovecot tiene código que impide el ingreso al sistema como root y no puede llevarse a cabo incluso aunque @samp{first-valid-uid} tenga el valor 0.\n"
 "Su valor predeterminado es @samp{500}."
 
 #. type: deftypevr
-#: doc/guix.texi:17252
+#: doc/guix.texi:19941
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} non-negative-integer last-valid-uid"
 msgstr "{parámetro de @code{dovecot-configuration}} entero-no-negativo last-valid-uid"
 
 #. type: deftypevr
-#: doc/guix.texi:17257
+#: doc/guix.texi:19946
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} non-negative-integer first-valid-gid"
 msgstr "{parámetro de @code{dovecot-configuration}} entero-no-negativo first-valid-gid"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:17262
+#: doc/guix.texi:19951
 msgid "Valid GID range for users.  Users having non-valid GID as primary group ID aren't allowed to log in.  If user belongs to supplementary groups with non-valid GIDs, those groups are not set.  Defaults to @samp{1}."
 msgstr ""
 "Rango de GID aceptado para las usuarias. Las usuarias que no posean GID válido como ID primario de grupo no tienen permitido el ingreso al sistema. Si la usuaria es miembro de grupos suplementarios con GID no válido, no se activan dichos grupos.\n"
 "Su valor predeterminado es @samp{1}."
 
 #. type: deftypevr
-#: doc/guix.texi:17264
+#: doc/guix.texi:19953
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} non-negative-integer last-valid-gid"
 msgstr "{parámetro de @code{dovecot-configuration}} entero-no-negativo last-valid-gid"
 
 #. type: deftypevr
-#: doc/guix.texi:17269
+#: doc/guix.texi:19958
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} non-negative-integer mail-max-keyword-length"
 msgstr "{parámetro de @code{dovecot-configuration}} entero-no-negativo mail-max-keyword-length"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:17273
+#: doc/guix.texi:19962
 msgid "Maximum allowed length for mail keyword name.  It's only forced when trying to create new keywords.  Defaults to @samp{50}."
 msgstr ""
 "Longitud máxima permitida para nombres de palabras clave del correo. El límite actúa únicamente en la creación de nuevas palabras clave.\n"
 "Su valor predeterminado es @samp{50}."
 
 #. type: deftypevr
-#: doc/guix.texi:17275
+#: doc/guix.texi:19964
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} colon-separated-file-name-list valid-chroot-dirs"
 msgstr "{parámetro de @code{dovecot-configuration}} lista-archivos-sep-dos-puntos valid-chroot-dirs"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:17285
-msgid "List of directories under which chrooting is allowed for mail processes (i.e.@: /var/mail will allow chrooting to /var/mail/foo/bar too).  This setting doesn't affect @samp{login-chroot} @samp{mail-chroot} or auth chroot settings.  If this setting is empty, \"/./\" in home dirs are ignored.  WARNING: Never add directories here which local users can modify, that may lead to root exploit.  Usually this should be done only if you don't allow shell access for users.  <doc/wiki/Chrooting.txt>.  Defaults to @samp{()}."
+#: doc/guix.texi:19974
+msgid "List of directories under which chrooting is allowed for mail processes (i.e.@: @file{/var/mail} will allow chrooting to @file{/var/mail/foo/bar} too).  This setting doesn't affect @samp{login-chroot} @samp{mail-chroot} or auth chroot settings.  If this setting is empty, @samp{/./} in home dirs are ignored.  WARNING: Never add directories here which local users can modify, that may lead to root exploit.  Usually this should be done only if you don't allow shell access for users.  <doc/wiki/Chrooting.txt>.  Defaults to @samp{()}."
 msgstr ""
-"Lista de directorios bajo los que se permite realizar la llamada al sistema chroot a procesos de correo (es decir, /var/mail permitiría realizar la llamada también en /var/mail/sub/directorio).  Esta configuración no afecta a la configuración de @samp{login-chroot}, @samp{mail-chroot} o la de chroot para identificación. En caso de estar vacía, se ignora \"/./\" en los directorios de usuarias.  AVISO: Nunca añada directorios que las usuarias locales puedan modificar, puesto que podría permitir vulnerar el control de acceso como root.  Habitualmente esta opción se activa únicamente si no permite a las usuarias acceder a un shell.  <doc/wiki/Chrooting.txt>.\n"
+"Lista de directorios bajo los que se permite realizar la llamada al sistema chroot a procesos de correo (es decir, @file{/var/mail} permitiría realizar la llamada también en @file{/var/mail/sub/directorio}).  Esta configuración no afecta a la configuración de @samp{login-chroot}, @samp{mail-chroot} o la de chroot para identificación. En caso de estar vacía, se ignora @samp{\"/./\"} en los directorios de usuarias. AVISO: Nunca añada directorios que las usuarias locales puedan modificar, puesto que podría permitir vulnerar el control de acceso como ``root''.  Habitualmente esta opción se activa únicamente si no permite a las usuarias acceder a un intérprete de órdenes.  <doc/wiki/Chrooting.txt>.\n"
 "Su valor predeterminado es @samp{()}."
 
 #. type: deftypevr
-#: doc/guix.texi:17287
+#: doc/guix.texi:19976
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string mail-chroot"
 msgstr "{parámetro de @code{dovecot-configuration}} string mail-chroot"
 
 #. type: deftypevr
-#: doc/guix.texi:17296
-msgid "Default chroot directory for mail processes.  This can be overridden for specific users in user database by giving /./ in user's home directory (e.g.@: /home/./user chroots into /home).  Note that usually there is no real need to do chrooting, Dovecot doesn't allow users to access files outside their mail directory anyway.  If your home directories are prefixed with the chroot directory, append \"/.\"@: to @samp{mail-chroot}.  <doc/wiki/Chrooting.txt>.  Defaults to @samp{\"\"}."
+#: doc/guix.texi:19985
+msgid "Default chroot directory for mail processes.  This can be overridden for specific users in user database by giving @samp{/./} in user's home directory (e.g.@: @samp{/home/./user} chroots into @file{/home}).  Note that usually there is no real need to do chrooting, Dovecot doesn't allow users to access files outside their mail directory anyway.  If your home directories are prefixed with the chroot directory, append @samp{/.} to @samp{mail-chroot}.  <doc/wiki/Chrooting.txt>.  Defaults to @samp{\"\"}."
 msgstr ""
-"Directorio predeterminado de la llamada al sistema chroot para los procesos de correo. El valor puede forzarse para usuarias específicas en la base de datos proporcionando /./ en el directorio de la usuaria (por ejemplo, /home/./usuaria llama a chroot con /home). Tenga en cuenta que habitualmente no es necesario llamar a chroot, Dovecot no permite a las usuarias el acceso a ficheros más allá de su directorio de correo en cualquier caso. Si sus directorios de usuaria contienen el directorio de chroot como prefijo, agregue \"/.\"@: al final de @samp{mail-chroot}. <doc/wiki/Chrooting.txt>.\n"
+"Directorio predeterminado de la llamada al sistema chroot para los procesos de correo. El valor puede forzarse para usuarias específicas en la base de datos proporcionando @samp{/./} en el directorio de la usuaria (por ejemplo, @samp{/home/./usuaria} llama a chroot con @file{/home}). Tenga en cuenta que habitualmente no es necesario llamar a chroot, Dovecot no permite a las usuarias el acceso a archivos más allá de su directorio de correo en cualquier caso. Si sus directorios de usuaria contienen el directorio de chroot como prefijo, agregue @samp{/.} al final de @samp{mail-chroot}. <doc/wiki/Chrooting.txt>.\n"
 "Su valor predeterminado es @samp{\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17298
+#: doc/guix.texi:19987
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} file-name auth-socket-path"
-msgstr "{parámetro de @code{dovecot-configuration}} nombre-fichero auth-socket-path"
+msgstr "{parámetro de @code{dovecot-configuration}} nombre-archivo auth-socket-path"
 
 #. type: deftypevr
-#: doc/guix.texi:17302
+#: doc/guix.texi:19991
 msgid "UNIX socket path to master authentication server to find users.  This is used by imap (for shared users) and lda.  Defaults to @samp{\"/var/run/dovecot/auth-userdb\"}."
 msgstr ""
 "Ruta al socket de UNIX al servidor maestro de identificación para la búsqueda de usuarias. Se usa por parte de imap (para usuarias compartidas) y lda.\n"
 "Su valor predeterminado es @samp{\"/var/run/dovecot/auth-userdb\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17304
+#: doc/guix.texi:19993
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} file-name mail-plugin-dir"
-msgstr "{parámetro de @code{dovecot-configuration}} nombre-fichero mail-plugin-dir"
+msgstr "{parámetro de @code{dovecot-configuration}} nombre-archivo mail-plugin-dir"
 
 #. type: deftypevr
-#: doc/guix.texi:17307
+#: doc/guix.texi:19996
 msgid "Directory where to look up mail plugins.  Defaults to @samp{\"/usr/lib/dovecot\"}."
 msgstr ""
 "Directorio en el que se buscarán módulos de correo.\n"
 "Su valor predeterminado es @samp{\"/usr/lib/dovecot\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17309
+#: doc/guix.texi:19998
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} space-separated-string-list mail-plugins"
 msgstr "{parámetro de @code{dovecot-configuration}} lista-cadena-separada-espacios mail-plugins"
 
 #. type: deftypevr
-#: doc/guix.texi:17313
+#: doc/guix.texi:20002
 msgid "List of plugins to load for all services.  Plugins specific to IMAP, LDA, etc.@: are added to this list in their own .conf files.  Defaults to @samp{()}."
 msgstr ""
-"Lista de módulos cargados en todos los servicios. Los módulos específicos para IMAP, LDA, etc.@: se añaden en esta lista en sus propios ficheros .conf.\n"
+"Lista de módulos cargados en todos los servicios. Los módulos específicos para IMAP, LDA, etc.@: se añaden en esta lista en sus propios archivos .conf.\n"
 "Su valor predeterminado es @samp{()}."
 
 #. type: deftypevr
-#: doc/guix.texi:17315
+#: doc/guix.texi:20004
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} non-negative-integer mail-cache-min-mail-count"
 msgstr "{parámetro de @code{dovecot-configuration}} entero-no-negativo mail-cache-min-mail-count"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:17320
+#: doc/guix.texi:20009
 msgid "The minimum number of mails in a mailbox before updates are done to cache file.  This allows optimizing Dovecot's behavior to do less disk writes at the cost of more disk reads.  Defaults to @samp{0}."
 msgstr ""
-"El número mínimo de correos en una bandeja antes de que las actualizaciones se realicen en un fichero de caché. Permite optimizar el comportamiento de Dovecot para reducir la tasa de escritura en el disco, lo que produce un aumento de la tasa de lectura.\n"
+"El número mínimo de correos en una bandeja antes de que las actualizaciones se realicen en un archivo de caché. Permite optimizar el comportamiento de Dovecot para reducir la tasa de escritura en el disco, lo que produce un aumento de la tasa de lectura.\n"
 "Su valor predeterminado es @samp{0}."
 
 #. type: deftypevr
-#: doc/guix.texi:17322
+#: doc/guix.texi:20011
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string mailbox-idle-check-interval"
 msgstr "{parámetro de @code{dovecot-configuration}} string mailbox-idle-check-interval"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:17329
+#: doc/guix.texi:20018
 msgid "When IDLE command is running, mailbox is checked once in a while to see if there are any new mails or other changes.  This setting defines the minimum time to wait between those checks.  Dovecot can also use dnotify, inotify and kqueue to find out immediately when changes occur.  Defaults to @samp{\"30 secs\"}."
 msgstr ""
 "Cuando se ejecute la orden IDLE, la bandeja de correo se comprueba de vez en cuando para comprobar si existen nuevos correos o se han producido otros cambios. Esta configuración define el tiempo mínimo entre dichas comprobaciones. Dovecot también puede usar dnotify, inotify y kqueue para recibir información inmediata sobre los cambios que ocurran.\n"
 "Su valor predeterminado es @samp{\"30 secs\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17331
+#: doc/guix.texi:20020
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean mail-save-crlf?"
 msgstr "{parámetro de @code{dovecot-configuration}} boolean mail-save-crlf?"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:17338
+#: doc/guix.texi:20027
 msgid "Save mails with CR+LF instead of plain LF.  This makes sending those mails take less CPU, especially with sendfile() syscall with Linux and FreeBSD.  But it also creates a bit more disk I/O which may just make it slower.  Also note that if other software reads the mboxes/maildirs, they may handle the extra CRs wrong and cause problems.  Defaults to @samp{#f}."
 msgstr ""
 "Almacena los correos con CR+LF en vez de únicamente LF. Provoca que el envío de dichos correos use menos el procesados, especialmente al usar la llamada al sistema sendfile() con Linux y FreeBSD. Pero también aumenta la tasa de E/S del disco, lo que puede ralentizar el proceso. También tenga en cuenta que si otro software lee las bandejas mbox/maildir, se pueden tratar de forma incorrecta los caracteres CR adicionales, lo que puede provocar problemas.\n"
 "Su valor predeterminado es @samp{#f}."
 
 #. type: deftypevr
-#: doc/guix.texi:17340
+#: doc/guix.texi:20029
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean maildir-stat-dirs?"
 msgstr "{parámetro de @code{dovecot-configuration}} boolean maildir-stat-dirs?"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:17348
+#: doc/guix.texi:20037
 msgid "By default LIST command returns all entries in maildir beginning with a dot.  Enabling this option makes Dovecot return only entries which are directories.  This is done by stat()ing each entry, so it causes more disk I/O.  (For systems setting struct @samp{dirent->d_type} this check is free and it's done always regardless of this setting).  Defaults to @samp{#f}."
 msgstr ""
 "De manera predeterminada la orden LIST devuelve todas las entradas en maildir cuyo nombre empiece en punto. La activación de esta opción hace que Dovecot únicamente devuelva las entradas que sean directorios. Esto se lleva a cabo llamando a stat() con cada entrada, lo que causa mayor E/S del disco. (En sistemas que proporcionen valor a @samp{dirent->d_type} esta comprobación no tiene coste alguno y se realiza siempre independientemente del valor configurado aquí).\n"
 "Su valor predeterminado es @samp{#f}."
 
 #. type: deftypevr
-#: doc/guix.texi:17350
+#: doc/guix.texi:20039
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean maildir-copy-with-hardlinks?"
 msgstr "{parámetro de @code{dovecot-configuration}} boolean maildir-copy-with-hardlinks?"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:17355
+#: doc/guix.texi:20044
 msgid "When copying a message, do it with hard links whenever possible.  This makes the performance much better, and it's unlikely to have any side effects.  Defaults to @samp{#t}."
 msgstr ""
 "Cuando se copia un mensaje, se usan enlaces duros cuando sea posible. Esto mejora mucho el rendimiento, y es difícil que produzca algún efecto secundario.\n"
 "Su valor predeterminado es @samp{#t}."
 
 #. type: deftypevr
-#: doc/guix.texi:17357
+#: doc/guix.texi:20046
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean maildir-very-dirty-syncs?"
 msgstr "{parámetro de @code{dovecot-configuration}} boolean maildir-very-dirty-syncs?"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:17362
+#: doc/guix.texi:20051
 msgid "Assume Dovecot is the only MUA accessing Maildir: Scan cur/ directory only when its mtime changes unexpectedly or when we can't find the mail otherwise.  Defaults to @samp{#f}."
 msgstr ""
 "Asume que Dovecot es el único MUA que accede a maildir: Recorre el directorio cur/ únicamente cuando cambie su mtime de manera inesperada o cuando no se pueda encontrar el correo de otra manera.\n"
 "Su valor predeterminado es @samp{#f}."
 
 #. type: deftypevr
-#: doc/guix.texi:17364
+#: doc/guix.texi:20053
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} space-separated-string-list mbox-read-locks"
 msgstr "{parámetro de @code{dovecot-configuration}} lista-cadena-separada-espacios mbox-read-locks"
 
 #. type: deftypevr
-#: doc/guix.texi:17367
+#: doc/guix.texi:20056
 msgid "Which locking methods to use for locking mbox.  There are four available:"
 msgstr "Qué métodos de bloqueo deben usarse para el bloque de mbox. Hay cuatro disponibles:"
 
 #. type: item
-#: doc/guix.texi:17369
+#: doc/guix.texi:20058
 #, no-wrap
 msgid "dotlock"
 msgstr "dotlock"
 
 #. type: table
-#: doc/guix.texi:17373
+#: doc/guix.texi:20062
 msgid "Create <mailbox>.lock file.  This is the oldest and most NFS-safe solution.  If you want to use /var/mail/ like directory, the users will need write access to that directory."
-msgstr "Crea un fichero <bandeja>.lock. Esta es la solución más antigua y más segura con NFS. Si desea usar un directorio como /var/mail/, las usuarias necesitarán acceso de escritura a dicho directorio."
+msgstr "Crea un archivo <bandeja>.lock. Esta es la solución más antigua y más segura con NFS. Si desea usar un directorio como /var/mail/, las usuarias necesitarán acceso de escritura a dicho directorio."
 
 #. type: item
-#: doc/guix.texi:17373
+#: doc/guix.texi:20062
 #, no-wrap
 msgid "dotlock-try"
 msgstr "dotlock-try"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:17376
+#: doc/guix.texi:20065
 msgid "Same as dotlock, but if it fails because of permissions or because there isn't enough disk space, just skip it."
 msgstr "Lo mismo que dotlock, pero si se produce un fallo debido a los permisos o a que no existe suficiente espacio en disco, simplemente se omite el bloqueo."
 
 #. type: item
-#: doc/guix.texi:17376
+#: doc/guix.texi:20065
 #, no-wrap
 msgid "fcntl"
 msgstr "fcntl"
 
 #. type: table
-#: doc/guix.texi:17378
+#: doc/guix.texi:20067
 msgid "Use this if possible.  Works with NFS too if lockd is used."
 msgstr "Use este a ser posible. Funciona también con NFS si se usa lockd."
 
 #. type: item
-#: doc/guix.texi:17378
+#: doc/guix.texi:20067
 #, no-wrap
 msgid "flock"
 msgstr "flock"
 
 #. type: table
-#: doc/guix.texi:17380 doc/guix.texi:17382
+#: doc/guix.texi:20069 doc/guix.texi:20071
 msgid "May not exist in all systems.  Doesn't work with NFS."
 msgstr "Puede no existir en todos los sistemas. No funciona con NFS."
 
 #. type: item
-#: doc/guix.texi:17380
+#: doc/guix.texi:20069
 #, no-wrap
 msgid "lockf"
 msgstr "lockf"
 
 #. type: deftypevr
-#: doc/guix.texi:17388
+#: doc/guix.texi:20077
 msgid "You can use multiple locking methods; if you do the order they're declared in is important to avoid deadlocks if other MTAs/MUAs are using multiple locking methods as well.  Some operating systems don't allow using some of them simultaneously."
 msgstr "Puede usar múltiples métodos de bloqueo; en ese caso el orden en el que se declaran es importante para evitar situaciones de bloqueo mutuo en caso de que otros MTA/MUA usen también múltiples métodos de bloqueo. Algunos sistemas operativos no permiten el uso de varios de ellos de manera simultánea."
 
 #. type: deftypevr
-#: doc/guix.texi:17390
+#: doc/guix.texi:20079
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} space-separated-string-list mbox-write-locks"
 msgstr "{parámetro de @code{dovecot-configuration}} lista-cadena-separada-espacios mbox-write-locks"
 
 #. type: deftypevr
-#: doc/guix.texi:17394
+#: doc/guix.texi:20083
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string mbox-lock-timeout"
 msgstr "{parámetro de @code{dovecot-configuration}} string mbox-lock-timeout"
 
 #. type: deftypevr
-#: doc/guix.texi:17397
+#: doc/guix.texi:20086
 msgid "Maximum time to wait for lock (all of them) before aborting.  Defaults to @samp{\"5 mins\"}."
 msgstr ""
-"Tiempo máximo esperado hasta el bloqueo (de todos los ficheros) antes de interrumpir la operación.\n"
+"Tiempo máximo esperado hasta el bloqueo (de todos los archivos) antes de interrumpir la operación.\n"
 "Su valor predeterminado es @samp{\"5 mins\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17399
+#: doc/guix.texi:20088
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string mbox-dotlock-change-timeout"
 msgstr "{parámetro de @code{dovecot-configuration}} string mbox-dotlock-change-timeout"
 
 #. type: deftypevr
-#: doc/guix.texi:17403
+#: doc/guix.texi:20092
 msgid "If dotlock exists but the mailbox isn't modified in any way, override the lock file after this much time.  Defaults to @samp{\"2 mins\"}."
 msgstr ""
-"Si existe el fichero dotlock pero la bandeja no se ha modificado de ninguna manera, ignora el fichero de bloqueo tras este tiempo.\n"
+"Si existe el archivo dotlock pero la bandeja no se ha modificado de ninguna manera, ignora el archivo de bloqueo tras este tiempo.\n"
 "Su valor predeterminado es @samp{\"2 mins\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17405
+#: doc/guix.texi:20094
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean mbox-dirty-syncs?"
 msgstr "{parámetro de @code{dovecot-configuration}} boolean mbox-dirty-syncs?"
 
 #. type: deftypevr
-#: doc/guix.texi:17416
+#: doc/guix.texi:20105
 msgid "When mbox changes unexpectedly we have to fully read it to find out what changed.  If the mbox is large this can take a long time.  Since the change is usually just a newly appended mail, it'd be faster to simply read the new mails.  If this setting is enabled, Dovecot does this but still safely fallbacks to re-reading the whole mbox file whenever something in mbox isn't how it's expected to be.  The only real downside to this setting is that if some other MUA changes message flags, Dovecot doesn't notice it immediately.  Note that a full sync is done with SELECT, EXAMINE, EXPUNGE and CHECK commands.  Defaults to @samp{#t}."
 msgstr ""
-"Cuando el fichero mbox cambie de manera inesperada, se tiene que leer completamente para encontrar los cambios. Si es grande puede tardar bastante tiempo. Deido a que el cambio habitualmente es un nuevo correo añadido al final, sería más rápido únicamente leer los correos nuevos. Si se activa esta opción, Dovecot hace esto pero de todos modos vuelve a leer el fichero mbox al completo cuando algo en la bandeja no se encuentra como se esperaba. La única desventaja real de esta configuración es que si otro MUA cambia las opciones de los mensajes, Dovecot no tiene constancia de ello de manera inmediata. Tenga en cuenta que una sincronización completa se lleva a cabo con las órdenes SELECT, EXAMINE, EXPUNGE y CHECK.\n"
+"Cuando el archivo mbox cambie de manera inesperada, se tiene que leer completamente para encontrar los cambios. Si es grande puede tardar bastante tiempo. Deido a que el cambio habitualmente es un nuevo correo añadido al final, sería más rápido únicamente leer los correos nuevos. Si se activa esta opción, Dovecot hace esto pero de todos modos vuelve a leer el archivo mbox al completo cuando algo en la bandeja no se encuentra como se esperaba. La única desventaja real de esta configuración es que si otro MUA cambia las opciones de los mensajes, Dovecot no tiene constancia de ello de manera inmediata. Tenga en cuenta que una sincronización completa se lleva a cabo con las órdenes SELECT, EXAMINE, EXPUNGE y CHECK.\n"
 "Su valor predeterminado es @samp{#t}."
 
 #. type: deftypevr
-#: doc/guix.texi:17418
+#: doc/guix.texi:20107
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean mbox-very-dirty-syncs?"
 msgstr "{parámetro de @code{dovecot-configuration}} boolean mbox-very-dirty-syncs?"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:17423
+#: doc/guix.texi:20112
 msgid "Like @samp{mbox-dirty-syncs}, but don't do full syncs even with SELECT, EXAMINE, EXPUNGE or CHECK commands.  If this is set, @samp{mbox-dirty-syncs} is ignored.  Defaults to @samp{#f}."
 msgstr ""
 "Como @samp{mbox-dirty-syncs}, pero no realiza sincronizaciones completas tampoco con las órdenes SELECT, EXAMINE, EXPUNGE o CHECK. Si se configura este valor, @samp{mbox-dirty-syncs} se ignora.\n"
 "Su valor predeterminado es @samp{#f}."
 
 #. type: deftypevr
-#: doc/guix.texi:17425
+#: doc/guix.texi:20114
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean mbox-lazy-writes?"
 msgstr "{parámetro de @code{dovecot-configuration}} boolean mbox-lazy-writes?"
 
 # FUZZY FUZZY
 #. type: deftypevr
-#: doc/guix.texi:17431
+#: doc/guix.texi:20120
 msgid "Delay writing mbox headers until doing a full write sync (EXPUNGE and CHECK commands and when closing the mailbox).  This is especially useful for POP3 where clients often delete all mails.  The downside is that our changes aren't immediately visible to other MUAs.  Defaults to @samp{#t}."
 msgstr ""
 "Retrasa la escritura de las cabeceras de mbox hasta que se realice una escritura completa sincronizada (con las órdenes EXPUNGE y CHECK, y al cerrar la bandeja de correo). Es útil especialmente con POP3, donde el cliente habitualmente borra todos los correos. La desventaja es que nuestros cambios no son visibles para otros MUA de manera inmediata.\n"
 "Su valor predeterminado es @samp{#t}."
 
 #. type: deftypevr
-#: doc/guix.texi:17433
+#: doc/guix.texi:20122
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} non-negative-integer mbox-min-index-size"
 msgstr "{parámetro de @code{dovecot-configuration}} entero-no-negativo mbox-min-index-size"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:17438
+#: doc/guix.texi:20127
 msgid "If mbox size is smaller than this (e.g.@: 100k), don't write index files.  If an index file already exists it's still read, just not updated.  Defaults to @samp{0}."
 msgstr ""
-"Si el tamaño del fichero mbox es menor que este valor (por ejemplo, 100k), no escribe ficheros de índice. Si el fichero de índice ya existe, todavía se usa para la lectura, pero no se actualiza.\n"
+"Si el tamaño del archivo mbox es menor que este valor (por ejemplo, 100k), no escribe archivos de índice. Si el archivo de índice ya existe, todavía se usa para la lectura, pero no se actualiza.\n"
 "Su valor predeterminado es @samp{0}."
 
 #. type: deftypevr
-#: doc/guix.texi:17440
+#: doc/guix.texi:20129
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} non-negative-integer mdbox-rotate-size"
 msgstr "{parámetro de @code{dovecot-configuration}} entero-no-negativo mdbox-rotate-size"
 
 #. type: deftypevr
-#: doc/guix.texi:17443
+#: doc/guix.texi:20132
 msgid "Maximum dbox file size until it's rotated.  Defaults to @samp{10000000}."
 msgstr ""
-"Tamaño máximo del fichero dbox hasta su rotación.\n"
+"Tamaño máximo del archivo dbox hasta su rotación.\n"
 "Su valor predeterminado es @samp{10000000}."
 
 #. type: deftypevr
-#: doc/guix.texi:17445
+#: doc/guix.texi:20134
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string mdbox-rotate-interval"
 msgstr "{parámetro de @code{dovecot-configuration}} string mdbox-rotate-interval"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:17450
+#: doc/guix.texi:20139
 msgid "Maximum dbox file age until it's rotated.  Typically in days.  Day begins from midnight, so 1d = today, 2d = yesterday, etc.  0 = check disabled.  Defaults to @samp{\"1d\"}."
 msgstr ""
-"Antigüedad máxima del fichero dbox hasta que se produce su rotación. Habitualmente en días. El día comienza a medianoche, por lo que 1d = hoy, 2d = ayer, etcétera. 0 = comprobación desactivada.\n"
+"Antigüedad máxima del archivo dbox hasta que se produce su rotación. Habitualmente en días. El día comienza a medianoche, por lo que 1d = hoy, 2d = ayer, etcétera. 0 = comprobación desactivada.\n"
 "Su valor predeterminado es @samp{\"1d\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17452
+#: doc/guix.texi:20141
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean mdbox-preallocate-space?"
 msgstr "{parámetro de @code{dovecot-configuration}} boolean mdbox-preallocate-space?"
 
 #. type: deftypevr
-#: doc/guix.texi:17457
+#: doc/guix.texi:20146
 msgid "When creating new mdbox files, immediately preallocate their size to @samp{mdbox-rotate-size}.  This setting currently works only in Linux with some file systems (ext4, xfs).  Defaults to @samp{#f}."
 msgstr ""
-"Cuando se crean nuevos ficheros mdbox, reserva inmediatamente un tamaño de @samp{mbox-rotate-size}. Actualmente esta configuración funciona únicamente en Linux con determinados sistemas de ficheros (ext4, xfs).\n"
+"Cuando se crean nuevos archivos mdbox, reserva inmediatamente un tamaño de @samp{mbox-rotate-size}. Actualmente esta configuración funciona únicamente en Linux con determinados sistemas de archivos (ext4, xfs).\n"
 "Su valor predeterminado es @samp{#f}."
 
 #. type: deftypevr
-#: doc/guix.texi:17459
+#: doc/guix.texi:20148
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string mail-attachment-dir"
 msgstr "{parámetro de @code{dovecot-configuration}} string mail-attachment-dir"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:17463
+#: doc/guix.texi:20152
 msgid "sdbox and mdbox support saving mail attachments to external files, which also allows single instance storage for them.  Other backends don't support this for now."
-msgstr "sdbox y mdbox permiten el almacenamiento de adjuntos en ficheros externos, lo que permite también su almacenamiento único. Otros motores no lo permiten por el momento."
+msgstr "sdbox y mdbox permiten el almacenamiento de adjuntos en archivos externos, lo que permite también su almacenamiento único. Otros motores no lo permiten por el momento."
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:17465
+#: doc/guix.texi:20154
 msgid "WARNING: This feature hasn't been tested much yet.  Use at your own risk."
 msgstr "AVISO: Esta característica todavía no se ha probado mucho. Su uso queda bajo su propia responsabilidad."
 
 #. type: deftypevr
-#: doc/guix.texi:17468
+#: doc/guix.texi:20157
 msgid "Directory root where to store mail attachments.  Disabled, if empty.  Defaults to @samp{\"\"}."
 msgstr ""
 "Directorio raíz donde almacenar los adjuntos de los correos. Se desactiva en caso de estar vacío.\n"
 "Su valor predeterminado es @samp{\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17470
+#: doc/guix.texi:20159
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} non-negative-integer mail-attachment-min-size"
 msgstr "{parámetro de @code{dovecot-configuration}} entero-no-negativo mail-attachment-min-size"
 
 #. type: deftypevr
-#: doc/guix.texi:17475
+#: doc/guix.texi:20164
 msgid "Attachments smaller than this aren't saved externally.  It's also possible to write a plugin to disable saving specific attachments externally.  Defaults to @samp{128000}."
 msgstr ""
 "Los adjuntos de menor tamaño que este valor no se almacenan externamente. También es posible la escritura de un módulo que deshabilite el almacenamiento externo de adjuntos específicos.\n"
 "Su valor predeterminado es @samp{128000}."
 
 #. type: deftypevr
-#: doc/guix.texi:17477
+#: doc/guix.texi:20166
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string mail-attachment-fs"
 msgstr "{parámetro de @code{dovecot-configuration}} string mail-attachment-fs"
 
 #. type: deftypevr
-#: doc/guix.texi:17479
+#: doc/guix.texi:20168
 msgid "File system backend to use for saving attachments:"
-msgstr "Motor del sistema de ficheros usado para el almacenamiento de adjuntos:"
+msgstr "Motor del sistema de archivos usado para el almacenamiento de adjuntos:"
 
 #. type: item
-#: doc/guix.texi:17480
+#: doc/guix.texi:20169
 #, no-wrap
 msgid "posix"
 msgstr "posix"
 
 #. type: table
-#: doc/guix.texi:17482
+#: doc/guix.texi:20171
 msgid "No SiS done by Dovecot (but this might help FS's own deduplication)"
-msgstr "Dovecot no lleva a cabo el SiS (aunque esto puede ayudar a la deduplicación del propio sistema de ficheros)"
+msgstr "Dovecot no lleva a cabo el SiS (aunque esto puede ayudar a la deduplicación del propio sistema de archivos)"
 
 #. type: item
-#: doc/guix.texi:17482
+#: doc/guix.texi:20171
 #, no-wrap
 msgid "sis posix"
 msgstr "sis posix"
 
 #. type: table
-#: doc/guix.texi:17484
+#: doc/guix.texi:20173
 msgid "SiS with immediate byte-by-byte comparison during saving"
 msgstr "SiS con comparación inmediata byte-por-byte durante el almacenamiento."
 
 #. type: item
-#: doc/guix.texi:17484
+#: doc/guix.texi:20173
 #, no-wrap
 msgid "sis-queue posix"
 msgstr "sis-queue posix"
 
 #. type: table
-#: doc/guix.texi:17486
+#: doc/guix.texi:20175
 msgid "SiS with delayed comparison and deduplication."
 msgstr "SiS mediante comparación retrasada y deduplicación."
 
 #. type: deftypevr
-#: doc/guix.texi:17488
+#: doc/guix.texi:20177
 msgid "Defaults to @samp{\"sis posix\"}."
 msgstr "El valor predeterminado es @samp{\"sis posix\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17490
+#: doc/guix.texi:20179
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string mail-attachment-hash"
 msgstr "{parámetro de @code{dovecot-configuration}} string mail-attachment-hash"
 
 #. type: deftypevr
-#: doc/guix.texi:17496
+#: doc/guix.texi:20185
 msgid "Hash format to use in attachment filenames.  You can add any text and variables: @code{%@{md4@}}, @code{%@{md5@}}, @code{%@{sha1@}}, @code{%@{sha256@}}, @code{%@{sha512@}}, @code{%@{size@}}.  Variables can be truncated, e.g.@: @code{%@{sha256:80@}} returns only first 80 bits.  Defaults to @samp{\"%@{sha1@}\"}."
 msgstr ""
-"Formato del hash usado en los ficheros adjuntos. Puede añadir cualquier texto y variables: @code{%@{md4@}}, @code{%@{md5@}}, @code{%@{sha1@}}, @code{%@{sha256@}}, @code{%@{sha512@}}, @code{%@{size@}}.  Las variables pueden reducirse, por ejemplo @code{%@{sha256:80@}} devuelve únicamente los primeros 80 bits.\n"
+"Formato del hash usado en los archivos adjuntos. Puede añadir cualquier texto y variables: @code{%@{md4@}}, @code{%@{md5@}}, @code{%@{sha1@}}, @code{%@{sha256@}}, @code{%@{sha512@}}, @code{%@{size@}}.  Las variables pueden reducirse, por ejemplo @code{%@{sha256:80@}} devuelve únicamente los primeros 80 bits.\n"
 "Su valor predeterminado es @samp{\"%@{sha1@}\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17498
+#: doc/guix.texi:20187
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} non-negative-integer default-process-limit"
 msgstr "{parámetro de @code{dovecot-configuration}} entero-no-negativo default-process-limit"
 
 #. type: deftypevr
-#: doc/guix.texi:17503
+#: doc/guix.texi:20192
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} non-negative-integer default-client-limit"
 msgstr "{parámetro de @code{dovecot-configuration}} entero-no-negativo default-client-limit"
 
 #. type: deftypevr
-#: doc/guix.texi:17506 doc/guix.texi:23516
+#: doc/guix.texi:20195 doc/guix.texi:26377
 msgid "Defaults to @samp{1000}."
 msgstr "El valor predeterminado es @samp{1000}."
 
 #. type: deftypevr
-#: doc/guix.texi:17508
+#: doc/guix.texi:20197
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} non-negative-integer default-vsz-limit"
 msgstr "{parámetro de @code{dovecot-configuration}} entero-no-negativo default-vsz-limit"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:17513
+#: doc/guix.texi:20202
 msgid "Default VSZ (virtual memory size) limit for service processes.  This is mainly intended to catch and kill processes that leak memory before they eat up everything.  Defaults to @samp{256000000}."
 msgstr ""
 "Límite predeterminado del tamaño de memoria virtual (VSZ) para procesos del servicio. Esta principalmente orientado a la captura y parada de procesos que pierden memoria antes de que utilicen toda la disponible.\n"
 "Su valor predeterminado es @samp{256000000}."
 
 #. type: deftypevr
-#: doc/guix.texi:17515
+#: doc/guix.texi:20204
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string default-login-user"
 msgstr "{parámetro de @code{dovecot-configuration}} string default-login-user"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:17520
+#: doc/guix.texi:20209
 msgid "Login user is internally used by login processes.  This is the most untrusted user in Dovecot system.  It shouldn't have access to anything at all.  Defaults to @samp{\"dovenull\"}."
 msgstr ""
 "Usuaria de ingreso al sistema para los procesos de ingreso al sistema. Es la usuaria en la que menos se confía en el sistema Dovecot. No debería tener acceso a nada en absoluto.\n"
 "Su valor predeterminado es @samp{\"dovenull\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17522
+#: doc/guix.texi:20211
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string default-internal-user"
 msgstr "{parámetro de @code{dovecot-configuration}} string default-internal-user"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:17527
+#: doc/guix.texi:20216
 msgid "Internal user is used by unprivileged processes.  It should be separate from login user, so that login processes can't disturb other processes.  Defaults to @samp{\"dovecot\"}."
 msgstr ""
 "Usuaria interna usada por procesos sin privilegios. Debería ser distinta a la usuaria de ingreso, de modo que los procesos de ingreso al sistema no interfieran con otros procesos.\n"
 "Su valor predeterminado es @samp{\"dovecot\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17529
+#: doc/guix.texi:20218
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string ssl?"
 msgstr "{parámetro de @code{dovecot-configuration}} string ssl?"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:17532
+#: doc/guix.texi:20221
 msgid "SSL/TLS support: yes, no, required.  <doc/wiki/SSL.txt>.  Defaults to @samp{\"required\"}."
 msgstr ""
 "Si se permite SSL/TLS: @samp{yes} (sí), @samp{no}, @samp{required} (necesario). <doc/wiki/SSL.txt>.\n"
 "Su valor predeterminado es @samp{\"required\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17534
+#: doc/guix.texi:20223
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string ssl-cert"
 msgstr "{parámetro de @code{dovecot-configuration}} string ssl-cert"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:17537
+#: doc/guix.texi:20226
 msgid "PEM encoded X.509 SSL/TLS certificate (public key).  Defaults to @samp{\"</etc/dovecot/default.pem\"}."
 msgstr ""
 "Certificado X.509 de SSL/TLS codificado con PEM (clave pública).\n"
 "Su valor predeterminado es @samp{\"</etc/dovecot/default.pem\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17539
+#: doc/guix.texi:20228
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string ssl-key"
 msgstr "{parámetro de @code{dovecot-configuration}} string ssl-key"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:17544
+#: doc/guix.texi:20233
 msgid "PEM encoded SSL/TLS private key.  The key is opened before dropping root privileges, so keep the key file unreadable by anyone but root.  Defaults to @samp{\"</etc/dovecot/private/default.pem\"}."
 msgstr ""
 "Clave privada de SSL/TLS codificada con PEM. La clave se abre antes de renunciar a los privilegios de root, por lo que debe mantenerse legible únicamente para root.\n"
 "Su valor predeterminado es @samp{\"</etc/dovecot/private/default.pem\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17546
+#: doc/guix.texi:20235
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string ssl-key-password"
 msgstr "{parámetro de @code{dovecot-configuration}} string ssl-key-password"
 
 #. type: deftypevr
-#: doc/guix.texi:17552
+#: doc/guix.texi:20241
 msgid "If key file is password protected, give the password here.  Alternatively give it when starting dovecot with -p parameter.  Since this file is often world-readable, you may want to place this setting instead to a different.  Defaults to @samp{\"\"}."
 msgstr ""
-"Si el fichero de la clave está protegido por contraseña, introduzca dicha contraseña aquí. De manera alternativa, puede proporcionarla al iniciar dovecot con el parámetro -p. Como este fichero es habitualmente legible por todo el mundo, puede que desee desplazar esta opción a un fichero diferente.\n"
+"Si el archivo de la clave está protegido por contraseña, introduzca dicha contraseña aquí. De manera alternativa, puede proporcionarla al iniciar dovecot con el parámetro -p. Como este archivo es habitualmente legible por todo el mundo, puede que desee desplazar esta opción a un archivo diferente.\n"
 "Su valor predeterminado es @samp{\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17554
+#: doc/guix.texi:20243
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string ssl-ca"
 msgstr "{parámetro de @code{dovecot-configuration}} string ssl-ca"
 
 #. type: deftypevr
-#: doc/guix.texi:17560
+#: doc/guix.texi:20249
 msgid "PEM encoded trusted certificate authority.  Set this only if you intend to use @samp{ssl-verify-client-cert? #t}.  The file should contain the CA certificate(s) followed by the matching CRL(s).  (e.g.@: @samp{ssl-ca </etc/ssl/certs/ca.pem}).  Defaults to @samp{\"\"}."
 msgstr ""
-"Certificado usado como autoridad de certificación de confianza codificado en PEM. Configure este valor únicamente si tiene intención de usar @samp{ssl-verify-client-cert? #t}. El fichero debe contener el fichero de la o las AC seguido de las CRL correspondientes (por ejemplo, @samp{ssl-ca </etc/ssl/certs/ca.pem}).\n"
+"Certificado usado como autoridad de certificación de confianza codificado en PEM. Configure este valor únicamente si tiene intención de usar @samp{ssl-verify-client-cert? #t}. El archivo debe contener el archivo de la o las AC seguido de las CRL correspondientes (por ejemplo, @samp{ssl-ca </etc/ssl/certs/ca.pem}).\n"
 "Su valor predeterminado es @samp{\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17562
+#: doc/guix.texi:20251
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean ssl-require-crl?"
 msgstr "{parámetro de @code{dovecot-configuration}} boolean ssl-require-crl?"
 
 #. type: deftypevr
-#: doc/guix.texi:17565
+#: doc/guix.texi:20254
 msgid "Require that CRL check succeeds for client certificates.  Defaults to @samp{#t}."
 msgstr ""
 "Es necesario que la comprobación de CRL sea satisfactoria para certificados de clientes..\n"
 "Su valor predeterminado es @samp{#t}."
 
 #. type: deftypevr
-#: doc/guix.texi:17567
+#: doc/guix.texi:20256
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean ssl-verify-client-cert?"
 msgstr "{parámetro de @code{dovecot-configuration}} boolean ssl-verify-client-cert?"
 
 #. type: deftypevr
-#: doc/guix.texi:17571
+#: doc/guix.texi:20260
 msgid "Request client to send a certificate.  If you also want to require it, set @samp{auth-ssl-require-client-cert? #t} in auth section.  Defaults to @samp{#f}."
 msgstr ""
 "Solicita al cliente el envío de un certificado. Si también desea que sea un requisito, proporcione @samp{auth-ssl-require-client-cert? #t} en la sección de identificación.\n"
 "Su valor predeterminado es @samp{#f}."
 
 #. type: deftypevr
-#: doc/guix.texi:17573
+#: doc/guix.texi:20262
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string ssl-cert-username-field"
 msgstr "{parámetro de @code{dovecot-configuration}} string ssl-cert-username-field"
 
 #. type: deftypevr
-#: doc/guix.texi:17578
+#: doc/guix.texi:20267
 msgid "Which field from certificate to use for username.  commonName and x500UniqueIdentifier are the usual choices.  You'll also need to set @samp{auth-ssl-username-from-cert? #t}.  Defaults to @samp{\"commonName\"}."
 msgstr ""
 "Cual es el campo del certificado que determina el nombre de usuaria. ``commonName'' y ``x500UniqueIdentifier'' son las opciones habituales. También tendrá proporcionar @samp{auth-ssl-username-from-cert? #t}.\n"
 "Su valor predeterminado es @samp{\"commonName\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17580
+#: doc/guix.texi:20269
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string ssl-min-protocol"
 msgstr "{parámetro de @code{dovecot-configuration}} string ssl-min-protocol"
 
 #. type: deftypevr
-#: doc/guix.texi:17583
+#: doc/guix.texi:20272
 msgid "Minimum SSL protocol version to accept.  Defaults to @samp{\"TLSv1\"}."
 msgstr ""
 "Versión mínima aceptada del protocolo SSL.\n"
 "Su valor predeterminado es @samp{\"TLSv1\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17585
+#: doc/guix.texi:20274
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string ssl-cipher-list"
 msgstr "{parámetro de @code{dovecot-configuration}} string ssl-cipher-list"
 
 #. type: deftypevr
-#: doc/guix.texi:17588
+#: doc/guix.texi:20277
 msgid "SSL ciphers to use.  Defaults to @samp{\"ALL:!kRSA:!SRP:!kDHd:!DSS:!aNULL:!eNULL:!EXPORT:!DES:!3DES:!MD5:!PSK:!RC4:!ADH:!LOW@@STRENGTH\"}."
 msgstr ""
 "Protocolos de cifrado de SSL usados.\n"
 "Su valor predeterminado es @samp{\"ALL:!kRSA:!SRP:!kDHd:!DSS:!aNULL:!eNULL:!EXPORT:!DES:!3DES:!MD5:!PSK:!RC4:!ADH:!LOW@@STRENGTH\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17590
+#: doc/guix.texi:20279
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string ssl-crypto-device"
 msgstr "{parámetro de @code{dovecot-configuration}} string ssl-crypto-device"
 
 #. type: deftypevr
-#: doc/guix.texi:17593
+#: doc/guix.texi:20282
 msgid "SSL crypto device to use, for valid values run \"openssl engine\".  Defaults to @samp{\"\"}."
 msgstr ""
 "Dispositivo de cifrado de SSL usado, ejecute \"openssl engine\" para obtener los valores aceptados.\n"
 "Su valor predeterminado es @samp{\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17595
+#: doc/guix.texi:20284
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string postmaster-address"
 msgstr "{parámetro de @code{dovecot-configuration}} string postmaster-address"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:17599
+#: doc/guix.texi:20288
 msgid "Address to use when sending rejection mails.  %d expands to recipient domain.  Defaults to @samp{\"postmaster@@%d\"}."
 msgstr ""
 "Dirección usada cuando se notifiquen correos rechazados. %d expande al dominio receptor.\n"
 "Su valor predeterminado es @samp{\"postmaster@@%d\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17601
+#: doc/guix.texi:20290
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string hostname"
 msgstr "{parámetro de @code{dovecot-configuration}} string hostname"
 
 #. type: deftypevr
-#: doc/guix.texi:17605
+#: doc/guix.texi:20294
 msgid "Hostname to use in various parts of sent mails (e.g.@: in Message-Id)  and in LMTP replies.  Default is the system's real hostname@@domain.  Defaults to @samp{\"\"}."
 msgstr ""
 "Nombre de máquina usado en diversas partes de los correos enviados (por ejemplo, en Message-Id) y en las respuestas LMTP. Su valor predeterminado es <el nombre real de la máquina>@@dominio.\n"
 "Su valor predeterminado es @samp{\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17607
+#: doc/guix.texi:20296
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean quota-full-tempfail?"
 msgstr "{parámetro de @code{dovecot-configuration}} boolean quota-full-tempfail?"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:17611
+#: doc/guix.texi:20300
 msgid "If user is over quota, return with temporary failure instead of bouncing the mail.  Defaults to @samp{#f}."
 msgstr ""
 "Si la usuaria supera la cuota, devuelve un fallo temporal en vez de rechazar el correo.\n"
 "Su valor predeterminado es @samp{#f}."
 
 #. type: deftypevr
-#: doc/guix.texi:17613
+#: doc/guix.texi:20302
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} file-name sendmail-path"
-msgstr "{parámetro de @code{dovecot-configuration}} nombre-fichero sendmail-path"
+msgstr "{parámetro de @code{dovecot-configuration}} nombre-archivo sendmail-path"
 
 #. type: deftypevr
-#: doc/guix.texi:17616
+#: doc/guix.texi:20305
 msgid "Binary to use for sending mails.  Defaults to @samp{\"/usr/sbin/sendmail\"}."
 msgstr ""
 "Binario usado para el envío de correos.\n"
 "Su valor predeterminado es @samp{\"/usr/sbin/sendmail\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17618
+#: doc/guix.texi:20307
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string submission-host"
 msgstr "{parámetro de @code{dovecot-configuration}} string submission-host"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:17622
+#: doc/guix.texi:20311
 msgid "If non-empty, send mails via this SMTP host[:port] instead of sendmail.  Defaults to @samp{\"\"}."
 msgstr ""
 "Si no está vacío, envía el correo a través de esta máquina[:puerto] SMTP en vez de usar sendmail\n"
 "Su valor predeterminado es @samp{\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17624
+#: doc/guix.texi:20313
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string rejection-subject"
 msgstr "{parámetro de @code{dovecot-configuration}} string rejection-subject"
 
 #. type: deftypevr
-#: doc/guix.texi:17628
+#: doc/guix.texi:20317
 msgid "Subject: header to use for rejection mails.  You can use the same variables as for @samp{rejection-reason} below.  Defaults to @samp{\"Rejected: %s\"}."
 msgstr ""
 "Asunto: cabecera usada en el rechazo de correos. Puede usar las mismas variables que las indicadas en @samp{rejection-reason} a continuación.\n"
 "Su valor predeterminado es @samp{\"Rejected: %s\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17630
+#: doc/guix.texi:20319
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string rejection-reason"
 msgstr "{parámetro de @code{dovecot-configuration}} string rejection-reason"
 
 #. type: deftypevr
-#: doc/guix.texi:17633
+#: doc/guix.texi:20322
 msgid "Human readable error message for rejection mails.  You can use variables:"
 msgstr "Mensaje de error legible por personas para el rechazo de correos. Puede usar variables:"
 
 #. type: table
-#: doc/guix.texi:17637
+#: doc/guix.texi:20326
 msgid "CRLF"
 msgstr "CRLF"
 
 #. type: item
-#: doc/guix.texi:17637
+#: doc/guix.texi:20326
 #, no-wrap
 msgid "%r"
 msgstr "%r"
 
 #. type: table
-#: doc/guix.texi:17639
+#: doc/guix.texi:20328
 msgid "reason"
 msgstr "razón"
 
 #. type: table
-#: doc/guix.texi:17641
+#: doc/guix.texi:20330
 msgid "original subject"
 msgstr "asunto original"
 
 #. type: item
-#: doc/guix.texi:17641
+#: doc/guix.texi:20330
 #, no-wrap
 msgid "%t"
 msgstr "%t"
 
 #. type: table
-#: doc/guix.texi:17643
+#: doc/guix.texi:20332
 msgid "recipient"
 msgstr "receptora"
 
 #. type: deftypevr
-#: doc/guix.texi:17645
+#: doc/guix.texi:20334
 msgid "Defaults to @samp{\"Your message to <%t> was automatically rejected:%n%r\"}."
 msgstr "El valor predeterminado es @samp{\"Your message to <%t> was automatically rejected:%n%r\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17647
+#: doc/guix.texi:20336
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string recipient-delimiter"
 msgstr "{parámetro de @code{dovecot-configuration}} string recipient-delimiter"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:17651
+#: doc/guix.texi:20340
 msgid "Delimiter character between local-part and detail in email address.  Defaults to @samp{\"+\"}."
 msgstr "Carácter delimitador entre la parte local y el detalle en las direcciones de correo. Su valor predeterminado es @samp{\"+\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17653
+#: doc/guix.texi:20342
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string lda-original-recipient-header"
 msgstr "{parámetro de @code{dovecot-configuration}} string lda-original-recipient-header"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:17659
+#: doc/guix.texi:20348
 msgid "Header where the original recipient address (SMTP's RCPT TO: address) is taken from if not available elsewhere.  With dovecot-lda -a parameter overrides this.  A commonly used header for this is X-Original-To.  Defaults to @samp{\"\"}."
 msgstr ""
 "Cabecera de donde se obtiene la dirección receptora original (la dirección de SMTP RCPT TO:) en caso de no estar disponible en otro lugar. El parámetro -a de dovecot-lda reemplaza este valor. Una cabecera usada para esto de manera común es X-Original-To.\n"
 "Su valor predeterminado es @samp{\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17661
+#: doc/guix.texi:20350
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean lda-mailbox-autocreate?"
 msgstr "{parámetro de @code{dovecot-configuration}} boolean lda-mailbox-autocreate?"
 
 #. type: deftypevr
-#: doc/guix.texi:17665
+#: doc/guix.texi:20354
 msgid "Should saving a mail to a nonexistent mailbox automatically create it?.  Defaults to @samp{#f}."
 msgstr ""
 "¿Se debe crear una bandeja de correo no existente de manera automática al almacenar un correo?\n"
 "Su valor predeterminado es @samp{#f}."
 
 #. type: deftypevr
-#: doc/guix.texi:17667
+#: doc/guix.texi:20356
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean lda-mailbox-autosubscribe?"
 msgstr "{parámetro de @code{dovecot-configuration}} boolean lda-mailbox-autosubscribe?"
 
 #. type: deftypevr
-#: doc/guix.texi:17671
+#: doc/guix.texi:20360
 msgid "Should automatically created mailboxes be also automatically subscribed?.  Defaults to @samp{#f}."
 msgstr ""
 "¿También Se deben crear suscripciones de manera automática a las bandejas de correo creadas?\n"
 "Su valor predeterminado es @samp{#f}."
 
 #. type: deftypevr
-#: doc/guix.texi:17673
+#: doc/guix.texi:20362
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} non-negative-integer imap-max-line-length"
 msgstr "{parámetro de @code{dovecot-configuration}} entero-no-negativo imap-max-line-length"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:17679
+#: doc/guix.texi:20368
 msgid "Maximum IMAP command line length.  Some clients generate very long command lines with huge mailboxes, so you may need to raise this if you get \"Too long argument\" or \"IMAP command line too large\" errors often.  Defaults to @samp{64000}."
 msgstr ""
 "Longitud máxima de la línea de órdenes de IMAP. Algunos clientes generan líneas de órdenes muy largas con bandejas de correo enormes, por lo que debe incrementarlo si recibe los errores ``Too long argument'' (parámetro demasiado largo) o \"IMAP command line too large\" (línea de órdenes de IMAP demasiado grande).\n"
 "Su valor predeterminado es @samp{64000}."
 
 #. type: deftypevr
-#: doc/guix.texi:17681
+#: doc/guix.texi:20370
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string imap-logout-format"
 msgstr "{parámetro de @code{dovecot-configuration}} string imap-logout-format"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:17683
+#: doc/guix.texi:20372
 msgid "IMAP logout format string:"
 msgstr "Formato de la cadena de IMAP de salida del sistema:"
 
 #. type: item
-#: doc/guix.texi:17684
+#: doc/guix.texi:20373
 #, no-wrap
 msgid "%i"
 msgstr "%i"
 
 #. type: table
-#: doc/guix.texi:17686
+#: doc/guix.texi:20375
 msgid "total number of bytes read from client"
 msgstr "número total de bytes leídos del cliente"
 
 #. type: item
-#: doc/guix.texi:17686
+#: doc/guix.texi:20375
 #, no-wrap
 msgid "%o"
 msgstr "%o"
 
 #. type: table
-#: doc/guix.texi:17688
+#: doc/guix.texi:20377
 msgid "total number of bytes sent to client."
 msgstr "número total de bytes enviados al cliente."
 
 #. type: deftypevr
-#: doc/guix.texi:17691
+#: doc/guix.texi:20380
 msgid "See @file{doc/wiki/Variables.txt} for a list of all the variables you can use.  Defaults to @samp{\"in=%i out=%o deleted=%@{deleted@} expunged=%@{expunged@} trashed=%@{trashed@} hdr_count=%@{fetch_hdr_count@} hdr_bytes=%@{fetch_hdr_bytes@} body_count=%@{fetch_body_count@} body_bytes=%@{fetch_body_bytes@}\"}."
 msgstr ""
 "Véase @file{doc/wiki/Variables.txt} para obtener una lista completa de todas las variables que puede usar.\n"
 "Su valor predeterminado es @samp{\"in=%i out=%o deleted=%@{deleted@} expunged=%@{expunged@} trashed=%@{trashed@} hdr_count=%@{fetch_hdr_count@} hdr_bytes=%@{fetch_hdr_bytes@} body_count=%@{fetch_body_count@} body_bytes=%@{fetch_body_bytes@}\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17693
+#: doc/guix.texi:20382
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string imap-capability"
 msgstr "{parámetro de @code{dovecot-configuration}} string imap-capability"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:17697
+#: doc/guix.texi:20386
 msgid "Override the IMAP CAPABILITY response.  If the value begins with '+', add the given capabilities on top of the defaults (e.g.@: +XFOO XBAR).  Defaults to @samp{\"\"}."
 msgstr ""
 "Fuerza el valor de la respuesta de IMAP CAPABILITY. Si el valor comienza con '+', añade las capacidades especificadas sobre las predeterminadas (por ejemplo, +XFOO XBAR).\n"
 "Su valor predeterminado es @samp{\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17699
+#: doc/guix.texi:20388
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string imap-idle-notify-interval"
 msgstr "{parámetro de @code{dovecot-configuration}} string imap-idle-notify-interval"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:17703
+#: doc/guix.texi:20392
 msgid "How long to wait between \"OK Still here\" notifications when client is IDLEing.  Defaults to @samp{\"2 mins\"}."
 msgstr ""
 "Durante cuanto tiempo se espera entre notificaciones \"OK Still here\" cuando el cliente se encuentre en estado IDLE.\n"
 "Su valor predeterminado es @samp{\"2 mins\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17705
+#: doc/guix.texi:20394
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string imap-id-send"
 msgstr "{parámetro de @code{dovecot-configuration}} string imap-id-send"
 
 #. type: deftypevr
-#: doc/guix.texi:17711
+#: doc/guix.texi:20400
 msgid "ID field names and values to send to clients.  Using * as the value makes Dovecot use the default value.  The following fields have default values currently: name, version, os, os-version, support-url, support-email.  Defaults to @samp{\"\"}."
 msgstr ""
 "Nombres y valores de campos de identificación (ID) que se enviarán a los clientes. El uso de * como un valor hace que Dovecot utilice el valor predeterminado. Los siguientes campos tienen actualmente valores predeterminados: name, version, os, os-version, support-url, support-email.\n"
 "Su valor predeterminado es @samp{\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17713
+#: doc/guix.texi:20402
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string imap-id-log"
 msgstr "{parámetro de @code{dovecot-configuration}} string imap-id-log"
 
 #. type: deftypevr
-#: doc/guix.texi:17716
+#: doc/guix.texi:20405
 msgid "ID fields sent by client to log.  * means everything.  Defaults to @samp{\"\"}."
 msgstr ""
 "Campos de identificación (ID) enviados para su registro por cliente. @code{*} significa todos.\n"
 "Su valor predeterminado es @samp{\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17718
+#: doc/guix.texi:20407
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} space-separated-string-list imap-client-workarounds"
 msgstr "{parámetro de @code{dovecot-configuration}} lista-cadena-separada-espacios imap-client-workarounds"
 
 #. type: deftypevr
-#: doc/guix.texi:17720
+#: doc/guix.texi:20409
 msgid "Workarounds for various client bugs:"
 msgstr "Soluciones temporales para varios errores de clientes:"
 
 #. type: item
-#: doc/guix.texi:17722
+#: doc/guix.texi:20411
 #, no-wrap
 msgid "delay-newmail"
 msgstr "delay-newmail"
 
 #. type: table
-#: doc/guix.texi:17729
+#: doc/guix.texi:20418
 msgid "Send EXISTS/RECENT new mail notifications only when replying to NOOP and CHECK commands.  Some clients ignore them otherwise, for example OSX Mail (<v2.1).  Outlook Express breaks more badly though, without this it may show user \"Message no longer in server\" errors.  Note that OE6 still breaks even with this workaround if synchronization is set to \"Headers Only\"."
 msgstr "Envía notificaciones de nuevo correo EXISTS/RECENT únicamente en respuesta a ordenes NOOP o CHECK. Algunos clientes las ignoran en otro caso, por ejemplo OSX Mail (<v2.1). Outlook Express tiene problemas mayores no obstante, sin esto puede mostrar a la usuaria errores \"Message no longer in server\". Tenga en cuenta que OE6 también falla con esta solución temporal si la sincronización se establece como \"Headers Only\"."
 
 #. type: item
-#: doc/guix.texi:17730
+#: doc/guix.texi:20419
 #, no-wrap
 msgid "tb-extra-mailbox-sep"
 msgstr "tb-extra-mailbox-sep"
 
 #. type: table
-#: doc/guix.texi:17734
+#: doc/guix.texi:20423
 msgid "Thunderbird gets somehow confused with LAYOUT=fs (mbox and dbox) and adds extra @samp{/} suffixes to mailbox names.  This option causes Dovecot to ignore the extra @samp{/} instead of treating it as invalid mailbox name."
 msgstr "Thunderbird se confunde de algún modo con LAYOUT=fs (mbox y dbox) y añade sufijos @samp{/} adicionales a los nombres de las bandejas de correo. Esta opción hace que Dovecot ignore el carácter @samp{/} adicional en vez de tratarlo como un nombre de bandeja de correo no válido."
 
 #. type: item
-#: doc/guix.texi:17735
+#: doc/guix.texi:20424
 #, no-wrap
 msgid "tb-lsub-flags"
 msgstr "tb-lsub-flags"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:17739
+#: doc/guix.texi:20428
 msgid "Show \\Noselect flags for LSUB replies with LAYOUT=fs (e.g.@: mbox).  This makes Thunderbird realize they aren't selectable and show them greyed out, instead of only later giving \"not selectable\" popup error."
 msgstr "Muestra las opciones \\Noselect para respuestas LSUB con LAYOUT=fs (por ejemplo mbox). Esto permite a Thunderbird ser consciente de que no se pueden seleccionar y mostrarlas en gris, en vez de únicamente mostrar después el mensaje de error \"no seleccionable\"."
 
 #. type: deftypevr
-#: doc/guix.texi:17743
+#: doc/guix.texi:20432
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string imap-urlauth-host"
 msgstr "{parámetro de @code{dovecot-configuration}} string imap-urlauth-host"
 
 #. type: deftypevr
-#: doc/guix.texi:17746
+#: doc/guix.texi:20435
 msgid "Host allowed in URLAUTH URLs sent by client.  \"*\" allows all.  Defaults to @samp{\"\"}."
 msgstr "Máquina permitida en las URL URLAUTH enviadas por el cliente. \"*\" permite todas. Su valor predeterminado es @samp{\"\"}."
 
 #. type: Plain text
-#: doc/guix.texi:17754
+#: doc/guix.texi:20443
 msgid "Whew! Lots of configuration options.  The nice thing about it though is that Guix has a complete interface to Dovecot's configuration language.  This allows not only a nice way to declare configurations, but also offers reflective capabilities as well: users can write code to inspect and transform configurations from within Scheme."
 msgstr "¡Miau! Muchas opciones de configuración. Lo bueno es que Guix tiene una interfaz completa al lenguage de configuración de Dovecot. Esto no permite únicamente declarar configuraciones de forma bonita, sino que también ofrece capacidades reflexivas: las usuarias pueden escribir código en Scheme para inspeccionar y transformar configuraciones."
 
 #. type: Plain text
-#: doc/guix.texi:17760
+#: doc/guix.texi:20449
 msgid "However, it could be that you just want to get a @code{dovecot.conf} up and running.  In that case, you can pass an @code{opaque-dovecot-configuration} as the @code{#:config} parameter to @code{dovecot-service}.  As its name indicates, an opaque configuration does not have easy reflective capabilities."
-msgstr "No obstante, puede ser que únicamente desee usar un fichero @code{dovecot.conf} existente. En ese caso, puede proporcionar un objeto @code{opaque-dovecot-configuration} como parámetro @code{#:config} a @code{dovecot-service}. Como su nombre en inglés indica, una configuración opaca no tiene gran capacidad reflexiva."
+msgstr "No obstante, puede ser que únicamente desee usar un archivo @code{dovecot.conf} existente. En ese caso, puede proporcionar un objeto @code{opaque-dovecot-configuration} como parámetro @code{#:config} a @code{dovecot-service}. Como su nombre en inglés indica, una configuración opaca no tiene gran capacidad reflexiva."
 
 #. type: Plain text
-#: doc/guix.texi:17762
+#: doc/guix.texi:20451
 msgid "Available @code{opaque-dovecot-configuration} fields are:"
 msgstr "Los campos disponibles de @code{opaque-dovecot-configuration} son:"
 
 #. type: deftypevr
-#: doc/guix.texi:17763
+#: doc/guix.texi:20452
 #, no-wrap
 msgid "{@code{opaque-dovecot-configuration} parameter} package dovecot"
 msgstr "{parámetro de @code{opaque-dovecot-configuration}} package dovecot"
 
 #. type: deftypevr
-#: doc/guix.texi:17767
+#: doc/guix.texi:20456
 #, no-wrap
 msgid "{@code{opaque-dovecot-configuration} parameter} string string"
 msgstr "{parámetro de @code{opaque-dovecot-configuration}} string string"
 
 #. type: deftypevr
-#: doc/guix.texi:17769
+#: doc/guix.texi:20458
 msgid "The contents of the @code{dovecot.conf}, as a string."
 msgstr "El contenido de @code{dovecot.conf}, como una cadena."
 
 #. type: Plain text
-#: doc/guix.texi:17773
+#: doc/guix.texi:20462
 msgid "For example, if your @code{dovecot.conf} is just the empty string, you could instantiate a dovecot service like this:"
 msgstr "Por ejemplo, si su @code{dovecot.conf} fuese simplemente la cadena vacía, podría instanciar un servicio dovecot de esta manera:"
 
 #. type: lisp
-#: doc/guix.texi:17778
+#: doc/guix.texi:20467
 #, no-wrap
 msgid ""
 "(dovecot-service #:config\n"
@@ -34500,24 +39232,24 @@ msgstr ""
 "                  (string \"\")))\n"
 
 #. type: subsubheading
-#: doc/guix.texi:17780
+#: doc/guix.texi:20469
 #, no-wrap
 msgid "OpenSMTPD Service"
 msgstr "Servicio OpenSMTPD"
 
 #. type: deffn
-#: doc/guix.texi:17782
+#: doc/guix.texi:20471
 #, no-wrap
 msgid "{Scheme Variable} opensmtpd-service-type"
 msgstr "{Variable Scheme} opensmtpd-service-type"
 
 #. type: deffn
-#: doc/guix.texi:17786
+#: doc/guix.texi:20475
 msgid "This is the type of the @uref{https://www.opensmtpd.org, OpenSMTPD} service, whose value should be an @code{opensmtpd-configuration} object as in this example:"
 msgstr "Es el tipo del servicio @uref{https://www.opensmtpd.org, OpenSMTPD}, cuyo valor debe ser un objeto @code{opensmtpd-configuration} como en este ejemplo:"
 
 #. type: lisp
-#: doc/guix.texi:17791
+#: doc/guix.texi:20480
 #, no-wrap
 msgid ""
 "(service opensmtpd-service-type\n"
@@ -34529,75 +39261,75 @@ msgstr ""
 "           (config-file (local-file \"./mi-smtpd.conf\"))))\n"
 
 #. type: deftp
-#: doc/guix.texi:17794
+#: doc/guix.texi:20483
 #, no-wrap
 msgid "{Data Type} opensmtpd-configuration"
 msgstr "{Tipo de datos} opensmtpd-configuration"
 
 #. type: deftp
-#: doc/guix.texi:17796
+#: doc/guix.texi:20485
 msgid "Data type representing the configuration of opensmtpd."
 msgstr "Tipo de datos que representa la configuración de opensmtpd."
 
 #. type: item
-#: doc/guix.texi:17798
+#: doc/guix.texi:20487
 #, no-wrap
 msgid "@code{package} (default: @var{opensmtpd})"
 msgstr "@code{package} (predeterminado: @var{opensmtpd})"
 
 #. type: table
-#: doc/guix.texi:17800
+#: doc/guix.texi:20489
 msgid "Package object of the OpenSMTPD SMTP server."
 msgstr "El objeto paquete del servidor SMTP OpenSMTPD."
 
 #. type: item
-#: doc/guix.texi:17801
+#: doc/guix.texi:20490
 #, no-wrap
 msgid "@code{config-file} (default: @code{%default-opensmtpd-file})"
 msgstr "@code{config-file} (predeterminado: @code{%default-opensmtpd-file})"
 
 #. type: table
-#: doc/guix.texi:17806
+#: doc/guix.texi:20495
 msgid "File-like object of the OpenSMTPD configuration file to use.  By default it listens on the loopback network interface, and allows for mail from users and daemons on the local machine, as well as permitting email to remote servers.  Run @command{man smtpd.conf} for more information."
-msgstr "Objeto ``tipo-fichero'' del fichero de configuración de OpenSMTPD usado. De manera predeterminada escucha en la interfaz de red local, y pone a disposición de usuarias y daemon de la máquina local el servicio de correo, así como el envío de correo a servidores remotos. Ejecute @command{man smtpd.conf} para obtener más información."
+msgstr "Objeto ``tipo-archivo'' del archivo de configuración de OpenSMTPD usado. De manera predeterminada escucha en la interfaz de red local, y pone a disposición de usuarias y daemon de la máquina local el servicio de correo, así como el envío de correo a servidores remotos. Ejecute @command{man smtpd.conf} para obtener más información."
 
 #. type: subsubheading
-#: doc/guix.texi:17810
+#: doc/guix.texi:20499
 #, no-wrap
 msgid "Exim Service"
 msgstr "Servicio Exim"
 
 #. type: cindex
-#: doc/guix.texi:17812
+#: doc/guix.texi:20501
 #, no-wrap
 msgid "mail transfer agent (MTA)"
 msgstr "agente para el envío de correo (MTA)"
 
 #. type: cindex
-#: doc/guix.texi:17813
+#: doc/guix.texi:20502
 #, no-wrap
 msgid "MTA (mail transfer agent)"
 msgstr "MTA (agente para el envío de correo)"
 
 #. type: cindex
-#: doc/guix.texi:17814
+#: doc/guix.texi:20503
 #, no-wrap
 msgid "SMTP"
 msgstr "SMTP"
 
 #. type: deffn
-#: doc/guix.texi:17816
+#: doc/guix.texi:20505
 #, no-wrap
 msgid "{Scheme Variable} exim-service-type"
 msgstr "{Variable Scheme} exim-service-type"
 
 #. type: deffn
-#: doc/guix.texi:17820
+#: doc/guix.texi:20509
 msgid "This is the type of the @uref{https://exim.org, Exim} mail transfer agent (MTA), whose value should be an @code{exim-configuration} object as in this example:"
 msgstr "Este es el tipo del agente de transferencia de correo (MTA) @uref{https://exim.org, Exim}, cuyo valor debe ser un objeto @code{exim-configuration} como en este ejemplo:"
 
 #. type: lisp
-#: doc/guix.texi:17825
+#: doc/guix.texi:20514
 #, no-wrap
 msgid ""
 "(service exim-service-type\n"
@@ -34609,556 +39341,556 @@ msgstr ""
 "           (config-file (local-file \"./mi-exim.conf\"))))\n"
 
 #. type: Plain text
-#: doc/guix.texi:17831
+#: doc/guix.texi:20520
 msgid "In order to use an @code{exim-service-type} service you must also have a @code{mail-aliases-service-type} service present in your @code{operating-system} (even if it has no aliases)."
 msgstr "Para usar un servicio @code{exim-service-type} debe tener también un servicio @code{mail-aliases-service-type} presente en su declaración @code{operating-system} (incluso aunque no exista ningún alias)."
 
 #. type: deftp
-#: doc/guix.texi:17832
+#: doc/guix.texi:20521
 #, no-wrap
 msgid "{Data Type} exim-configuration"
 msgstr "{Tipo de datos} exim-configuration"
 
 #. type: deftp
-#: doc/guix.texi:17834
+#: doc/guix.texi:20523
 msgid "Data type representing the configuration of exim."
 msgstr "Tipo de datos que representa la configuración de exim."
 
 #. type: item
-#: doc/guix.texi:17836
+#: doc/guix.texi:20525
 #, no-wrap
 msgid "@code{package} (default: @var{exim})"
 msgstr "@code{package} (predeterminado: @var{exim})"
 
 #. type: table
-#: doc/guix.texi:17838
+#: doc/guix.texi:20527
 msgid "Package object of the Exim server."
 msgstr "El objeto paquete del servidor Exim."
 
 #. type: table
-#: doc/guix.texi:17845
+#: doc/guix.texi:20534
 msgid "File-like object of the Exim configuration file to use. If its value is @code{#f} then use the default configuration file from the package provided in @code{package}. The resulting configuration file is loaded after setting the @code{exim_user} and @code{exim_group} configuration variables."
-msgstr "Objeto ``tipo-fichero'' del fichero de configuración de Exim usado. Si su valor es @code{#f} se usa el fichero de configuración predefinido proporcionado por el paquete en @code{package}. El fichero de configuración resultante se carga tras fijar las variables de configuración @code{exim_user} y @code{exim_group}."
+msgstr "Objeto ``tipo-archivo'' del archivo de configuración de Exim usado. Si su valor es @code{#f} se usa el archivo de configuración predefinido proporcionado por el paquete en @code{package}. El archivo de configuración resultante se carga tras establecer el valor de las variables de configuración @code{exim_user} y @code{exim_group}."
 
 #. type: subsubheading
-#: doc/guix.texi:17849
+#: doc/guix.texi:20538
 #, no-wrap
 msgid "Getmail service"
 msgstr "Servicio Getmail"
 
 #. type: cindex
-#: doc/guix.texi:17851
+#: doc/guix.texi:20540
 #, no-wrap
 msgid "IMAP"
 msgstr "IMAP"
 
 #. type: cindex
-#: doc/guix.texi:17852
+#: doc/guix.texi:20541
 #, no-wrap
 msgid "POP"
 msgstr "POP"
 
 #. type: deffn
-#: doc/guix.texi:17854
+#: doc/guix.texi:20543
 #, no-wrap
 msgid "{Scheme Variable} getmail-service-type"
 msgstr "{Variable Scheme} getmail-service-type"
 
 #. type: deffn
-#: doc/guix.texi:17857
+#: doc/guix.texi:20546
 msgid "This is the type of the @uref{http://pyropus.ca/software/getmail/, Getmail} mail retriever, whose value should be an @code{getmail-configuration}."
 msgstr "El tipo del receptor de correo @uref{http://pyropus.ca/software/getmail/, Getmail}, cuyo valor debe ser un objeto @code{getmail-configuration}."
 
 #. type: Plain text
-#: doc/guix.texi:17860
+#: doc/guix.texi:20549
 msgid "Available @code{getmail-configuration} fields are:"
 msgstr "Los campos disponibles de @code{getmail-configuration} son:"
 
 #. type: deftypevr
-#: doc/guix.texi:17861
+#: doc/guix.texi:20550
 #, no-wrap
 msgid "{@code{getmail-configuration} parameter} symbol name"
 msgstr "{parámetro de @code{getmail-configuration}} símbolo name"
 
 #. type: deftypevr
-#: doc/guix.texi:17863
+#: doc/guix.texi:20552
 msgid "A symbol to identify the getmail service."
 msgstr "Un símbolo que identifique el servicio getmail."
 
 #. type: deftypevr
-#: doc/guix.texi:17865
+#: doc/guix.texi:20554
 msgid "Defaults to @samp{\"unset\"}."
 msgstr "El valor predeterminado es @samp{\"unset\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17868
+#: doc/guix.texi:20557
 #, no-wrap
 msgid "{@code{getmail-configuration} parameter} package package"
 msgstr "{parámetro de @code{getmail-configuration}} package package"
 
 #. type: deftypevr
-#: doc/guix.texi:17870
+#: doc/guix.texi:20559
 msgid "The getmail package to use."
 msgstr "El paquete getmail usado."
 
 #. type: deftypevr
-#: doc/guix.texi:17873
+#: doc/guix.texi:20562
 #, no-wrap
 msgid "{@code{getmail-configuration} parameter} string user"
 msgstr "{parámetro de @code{getmail-configuration}} string user"
 
 #. type: deftypevr
-#: doc/guix.texi:17875
+#: doc/guix.texi:20564
 msgid "The user to run getmail as."
 msgstr "Usuaria que ejecuta getmail."
 
 #. type: deftypevr
-#: doc/guix.texi:17877 doc/guix.texi:17884
+#: doc/guix.texi:20566 doc/guix.texi:20573
 msgid "Defaults to @samp{\"getmail\"}."
 msgstr "El valor predeterminado es @samp{\"getmail\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17880
+#: doc/guix.texi:20569
 #, no-wrap
 msgid "{@code{getmail-configuration} parameter} string group"
 msgstr "{parámetro de @code{getmail-configuration}} string group"
 
 #. type: deftypevr
-#: doc/guix.texi:17882
+#: doc/guix.texi:20571
 msgid "The group to run getmail as."
 msgstr "Grupo que ejecuta getmail."
 
 #. type: deftypevr
-#: doc/guix.texi:17887
+#: doc/guix.texi:20576
 #, no-wrap
 msgid "{@code{getmail-configuration} parameter} string directory"
 msgstr "{parámetro de @code{getmail-configuration}} string directory"
 
 #. type: deftypevr
-#: doc/guix.texi:17889
+#: doc/guix.texi:20578
 msgid "The getmail directory to use."
 msgstr "El directorio usado para getmail."
 
 #. type: deftypevr
-#: doc/guix.texi:17891
+#: doc/guix.texi:20580
 msgid "Defaults to @samp{\"/var/lib/getmail/default\"}."
 msgstr "El valor predeterminado es @samp{\"/var/lib/getmail/default\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17894
+#: doc/guix.texi:20583
 #, no-wrap
 msgid "{@code{getmail-configuration} parameter} getmail-configuration-file rcfile"
 msgstr "{parámetro de @code{getmail-configuration}} getmail-configuration-file rcfile"
 
 #. type: deftypevr
-#: doc/guix.texi:17896
+#: doc/guix.texi:20585
 msgid "The getmail configuration file to use."
-msgstr "El fichero de configuración de getmail usado."
+msgstr "El archivo de configuración de getmail usado."
 
 #. type: deftypevr
-#: doc/guix.texi:17898
+#: doc/guix.texi:20587
 msgid "Available @code{getmail-configuration-file} fields are:"
 msgstr "Los campos disponibles de @code{getmail-configuration-file} son:"
 
 #. type: deftypevr
-#: doc/guix.texi:17899
+#: doc/guix.texi:20588
 #, no-wrap
 msgid "{@code{getmail-configuration-file} parameter} getmail-retriever-configuration retriever"
 msgstr "{parámetro de @code{getmail-configuration-file}} getmail-retriever-configuration retriever"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:17901
+#: doc/guix.texi:20590
 msgid "What mail account to retrieve mail from, and how to access that account."
 msgstr "De qué cuenta de correo obtener el correo, y cómo acceder a dicha cuenta."
 
 #. type: deftypevr
-#: doc/guix.texi:17903
+#: doc/guix.texi:20592
 msgid "Available @code{getmail-retriever-configuration} fields are:"
 msgstr "Los campos disponibles de @code{getmail-retriever-configuration} son:"
 
 #. type: deftypevr
-#: doc/guix.texi:17904
+#: doc/guix.texi:20593
 #, no-wrap
 msgid "{@code{getmail-retriever-configuration} parameter} string type"
 msgstr "{parámetro de @code{getmail-retriever-configuration}} string type"
 
 #. type: deftypevr
-#: doc/guix.texi:17907
+#: doc/guix.texi:20596
 msgid "The type of mail retriever to use.  Valid values include @samp{passwd} and @samp{static}."
 msgstr "El controlador que userdb debe usar. Entre los valores aceptados se incluye @samp{passwd} y @samp{static}."
 
 #. type: deftypevr
-#: doc/guix.texi:17909
+#: doc/guix.texi:20598
 msgid "Defaults to @samp{\"SimpleIMAPSSLRetriever\"}."
 msgstr "El valor predeterminado es @samp{\"SimpleIMAPSSLRetriever\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17912
+#: doc/guix.texi:20601
 #, no-wrap
 msgid "{@code{getmail-retriever-configuration} parameter} string server"
 msgstr "{parámetro de @code{getmail-retriever-configuration}} string server"
 
 #. type: deftypevr
-#: doc/guix.texi:17914 doc/guix.texi:17921
+#: doc/guix.texi:20603 doc/guix.texi:20610
 msgid "Username to login to the mail server with."
 msgstr "Usuaria que ejecutará el servidor de correo."
 
 #. type: deftypevr
-#: doc/guix.texi:17916 doc/guix.texi:17923 doc/guix.texi:17987
+#: doc/guix.texi:20605 doc/guix.texi:20612 doc/guix.texi:20676
 msgid "Defaults to @samp{unset}."
 msgstr "El valor predeterminado es @samp{unset}."
 
 #. type: deftypevr
-#: doc/guix.texi:17919
+#: doc/guix.texi:20608
 #, no-wrap
 msgid "{@code{getmail-retriever-configuration} parameter} string username"
 msgstr "{parámetro de @code{getmail-retriever-configuration}} string username"
 
 #. type: deftypevr
-#: doc/guix.texi:17926
+#: doc/guix.texi:20615
 #, no-wrap
 msgid "{@code{getmail-retriever-configuration} parameter} non-negative-integer port"
 msgstr "{parámetro de @code{getmail-retriever-configuration}} entero-no-negativo port"
 
 #. type: deftypevr
-#: doc/guix.texi:17928
+#: doc/guix.texi:20617
 msgid "Port number to connect to."
 msgstr "Número de puerto al que conectarse."
 
 #. type: deftypevr
-#: doc/guix.texi:17933
+#: doc/guix.texi:20622
 #, no-wrap
 msgid "{@code{getmail-retriever-configuration} parameter} string password"
 msgstr "{parámetro de @code{getmail-retriever-configuration}} string password"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:17935 doc/guix.texi:17942
+#: doc/guix.texi:20624 doc/guix.texi:20631
 msgid "Override fields from passwd."
 msgstr "Sustituye los valores de campos de passwd."
 
 #. type: deftypevr
-#: doc/guix.texi:17940
+#: doc/guix.texi:20629
 #, no-wrap
 msgid "{@code{getmail-retriever-configuration} parameter} list password-command"
 msgstr "{parámetro de @code{getmail-retriever-configuration}} list password-command"
 
 #. type: deftypevr
-#: doc/guix.texi:17947
+#: doc/guix.texi:20636
 #, no-wrap
 msgid "{@code{getmail-retriever-configuration} parameter} string keyfile"
 msgstr "{parámetro de @code{getmail-retriever-configuration}} string keyfile"
 
 #. type: deftypevr
-#: doc/guix.texi:17949
+#: doc/guix.texi:20638
 msgid "PEM-formatted key file to use for the TLS negotiation."
-msgstr "Fichero de claves con formato PEM usado para la negociación TLS."
+msgstr "Archivo de claves con formato PEM usado para la negociación TLS."
 
 #. type: deftypevr
-#: doc/guix.texi:17954
+#: doc/guix.texi:20643
 #, no-wrap
 msgid "{@code{getmail-retriever-configuration} parameter} string certfile"
 msgstr "{parámetro de @code{getmail-retriever-configuration}} string certfile"
 
 #. type: deftypevr
-#: doc/guix.texi:17956
+#: doc/guix.texi:20645
 msgid "PEM-formatted certificate file to use for the TLS negotiation."
-msgstr "Fichero de certificado con formato PEM usado para la negociación TLS."
+msgstr "Archivo de certificado con formato PEM usado para la negociación TLS."
 
 #. type: deftypevr
-#: doc/guix.texi:17961
+#: doc/guix.texi:20650
 #, no-wrap
 msgid "{@code{getmail-retriever-configuration} parameter} string ca-certs"
 msgstr "{parámetro de @code{getmail-retriever-configuration}} string ca-certs"
 
 #. type: deftypevr
-#: doc/guix.texi:17963
+#: doc/guix.texi:20652
 msgid "CA certificates to use."
 msgstr "Certificados de autoridad de certificación (CA) usados."
 
 #. type: deftypevr
-#: doc/guix.texi:17968
+#: doc/guix.texi:20657
 #, no-wrap
 msgid "{@code{getmail-retriever-configuration} parameter} parameter-alist extra-parameters"
 msgstr "{parámetro de @code{getmail-retriever-configuration}} parameter-alist extra-parameters"
 
 #. type: deftypevr
-#: doc/guix.texi:17970
+#: doc/guix.texi:20659
 msgid "Extra retriever parameters."
 msgstr "Parámetros adicionales del receptor de correo."
 
 #. type: deftypevr
-#: doc/guix.texi:17977
+#: doc/guix.texi:20666
 #, no-wrap
 msgid "{@code{getmail-configuration-file} parameter} getmail-destination-configuration destination"
 msgstr "{parámetro de @code{getmail-configuration-file}} getmail-destination-configuration destination"
 
 #. type: deftypevr
-#: doc/guix.texi:17979
+#: doc/guix.texi:20668
 msgid "What to do with retrieved messages."
 msgstr "Qué hacer con los mensajes obtenidos."
 
 #. type: deftypevr
-#: doc/guix.texi:17981
+#: doc/guix.texi:20670
 msgid "Available @code{getmail-destination-configuration} fields are:"
 msgstr "Los campos disponibles de @code{getmail-destination-configuration} son:"
 
 #. type: deftypevr
-#: doc/guix.texi:17982
+#: doc/guix.texi:20671
 #, no-wrap
 msgid "{@code{getmail-destination-configuration} parameter} string type"
 msgstr "{parámetro de @code{getmail-destination-configuration}} string type"
 
 #. type: deftypevr
-#: doc/guix.texi:17985
+#: doc/guix.texi:20674
 msgid "The type of mail destination.  Valid values include @samp{Maildir}, @samp{Mboxrd} and @samp{MDA_external}."
 msgstr "Tipo de destino del correo. Entre los valores válidos se incluye @samp{Maildir}, @samp{Mboxrd} y @samp{MDA_external}."
 
 #. type: deftypevr
-#: doc/guix.texi:17990
+#: doc/guix.texi:20679
 #, no-wrap
 msgid "{@code{getmail-destination-configuration} parameter} string-or-filelike path"
 msgstr "{parámetro de @code{getmail-destination-configuration}} string-or-filelike path"
 
 #. type: deftypevr
-#: doc/guix.texi:17993
+#: doc/guix.texi:20682
 msgid "The path option for the mail destination.  The behaviour depends on the chosen type."
 msgstr "Opción de ruta para el destino del correo. El comportamiento depende del tipo seleccionado."
 
 #. type: deftypevr
-#: doc/guix.texi:17998
+#: doc/guix.texi:20687
 #, no-wrap
 msgid "{@code{getmail-destination-configuration} parameter} parameter-alist extra-parameters"
 msgstr "{parámetro de @code{getmail-destination-configuration}} parameter-alist extra-parameters"
 
 #. type: deftypevr
-#: doc/guix.texi:18000
+#: doc/guix.texi:20689
 msgid "Extra destination parameters"
 msgstr "Parámetros adicionales del destino."
 
 #. type: deftypevr
-#: doc/guix.texi:18007
+#: doc/guix.texi:20696
 #, no-wrap
 msgid "{@code{getmail-configuration-file} parameter} getmail-options-configuration options"
 msgstr "{parámetro de @code{getmail-configuration-file}} getmail-options-configuration options"
 
 #. type: deftypevr
-#: doc/guix.texi:18009
+#: doc/guix.texi:20698
 msgid "Configure getmail."
 msgstr "Configuración de getmail."
 
 #. type: deftypevr
-#: doc/guix.texi:18011
+#: doc/guix.texi:20700
 msgid "Available @code{getmail-options-configuration} fields are:"
 msgstr "Los campos disponibles de @code{getmail-options-configuration} son:"
 
 #. type: deftypevr
-#: doc/guix.texi:18012
+#: doc/guix.texi:20701
 #, no-wrap
 msgid "{@code{getmail-options-configuration} parameter} non-negative-integer verbose"
 msgstr "{parámetro de @code{getmail-options-configuration}} entero-no-negativo verbose"
 
 #. type: deftypevr
-#: doc/guix.texi:18017
+#: doc/guix.texi:20706
 msgid "If set to @samp{0}, getmail will only print warnings and errors.  A value of @samp{1} means that messages will be printed about retrieving and deleting messages.  If set to @samp{2}, getmail will print messages about each of it's actions."
 msgstr "Si tiene valor @samp{0}, getmail únicamente imprimirá mensajes de aviso y errores. El valor @samp{1} significa que se imprimirán mensajes acerca de la recepción y el borrado de mensajes. Si tiene valor @samp{2}, getmail imprimirá mensajes con cada una de sus acciones."
 
 #. type: deftypevr
-#: doc/guix.texi:18019 doc/guix.texi:22987 doc/guix.texi:23574
-#: doc/guix.texi:23718
+#: doc/guix.texi:20708 doc/guix.texi:25847 doc/guix.texi:26435
+#: doc/guix.texi:26580
 msgid "Defaults to @samp{1}."
 msgstr "El valor predeterminado es @samp{1}."
 
 #. type: deftypevr
-#: doc/guix.texi:18022
+#: doc/guix.texi:20711
 #, no-wrap
 msgid "{@code{getmail-options-configuration} parameter} boolean read-all"
 msgstr "{parámetro de @code{getmail-options-configuration}} boolean read-all"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:18025
+#: doc/guix.texi:20714
 msgid "If true, getmail will retrieve all available messages.  Otherwise it will only retrieve messages it hasn't seen previously."
 msgstr "Si es verdadero, getmail obtendrá todos los mensajes disponibles. En otro caso, únicamente recupera mensajes que no se hayan visto previamente."
 
 #. type: deftypevr
-#: doc/guix.texi:18030
+#: doc/guix.texi:20719
 #, no-wrap
 msgid "{@code{getmail-options-configuration} parameter} boolean delete"
 msgstr "{parámetro de @code{getmail-options-configuration}} boolean delete"
 
 #. type: deftypevr
-#: doc/guix.texi:18034
+#: doc/guix.texi:20723
 msgid "If set to true, messages will be deleted from the server after retrieving and successfully delivering them.  Otherwise, messages will be left on the server."
 msgstr "Si se proporciona un valor verdadero, los mensajes se borrarán del servidor tras su recuperación y entrega posterior satisfactoria. En otro caso, los mensajes permanecerán en el servidor."
 
 #. type: deftypevr
-#: doc/guix.texi:18039
+#: doc/guix.texi:20728
 #, no-wrap
 msgid "{@code{getmail-options-configuration} parameter} non-negative-integer delete-after"
 msgstr "{parámetro de @code{getmail-options-configuration}} entero-no-negativo delete-after"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:18044
+#: doc/guix.texi:20733
 msgid "Getmail will delete messages this number of days after seeing them, if they have been delivered.  This means messages will be left on the server this number of days after delivering them.  A value of @samp{0} disabled this feature."
 msgstr "Getmail borrará los mensajes tras este número de días después de haberlos visto, si han sido entregados. Esto significa que los mensajes se mantendrán en el servidor este número de días tras entregarlos. El valor @samp{0} desactiva esta característica."
 
 #. type: deftypevr
-#: doc/guix.texi:18049
+#: doc/guix.texi:20738
 #, no-wrap
 msgid "{@code{getmail-options-configuration} parameter} non-negative-integer delete-bigger-than"
 msgstr "{parámetro de @code{getmail-options-configuration}} entero-no-negativo delete-bigger-than"
 
 #. type: deftypevr
-#: doc/guix.texi:18053
+#: doc/guix.texi:20742
 msgid "Delete messages larger than this of bytes after retrieving them, even if the delete and delete-after options are disabled.  A value of @samp{0} disables this feature."
 msgstr "Borra los mensajes de tamaño mayor que estos bytes tras recibirlos, incluso si las opciones ``delete'' y ``delete-after'' están desactivadas. El valor @samp{0} desactiva esta característica."
 
 #. type: deftypevr
-#: doc/guix.texi:18058
+#: doc/guix.texi:20747
 #, no-wrap
 msgid "{@code{getmail-options-configuration} parameter} non-negative-integer max-bytes-per-session"
 msgstr "{parámetro de @code{getmail-options-configuration}} entero-no-negativo max-bytes-per-session"
 
 #. type: deftypevr
-#: doc/guix.texi:18061
+#: doc/guix.texi:20750
 msgid "Retrieve messages totalling up to this number of bytes before closing the session with the server.  A value of @samp{0} disables this feature."
 msgstr "Obtiene mensajes hasta este número de bytes en total antes de cerrar la sesión con el servidor. El valor @samp{0} desactiva esta característica."
 
 #. type: deftypevr
-#: doc/guix.texi:18066
+#: doc/guix.texi:20755
 #, no-wrap
 msgid "{@code{getmail-options-configuration} parameter} non-negative-integer max-message-size"
 msgstr "{parámetro de @code{getmail-options-configuration}} entero-no-negativo max-message-size"
 
 #. type: deftypevr
-#: doc/guix.texi:18069
+#: doc/guix.texi:20758
 msgid "Don't retrieve messages larger than this number of bytes.  A value of @samp{0} disables this feature."
 msgstr "No obtiene mensajes con mayor tamaño que este número de bytes. El valor @samp{0} desactiva esta característica."
 
 #. type: deftypevr
-#: doc/guix.texi:18074
+#: doc/guix.texi:20763
 #, no-wrap
 msgid "{@code{getmail-options-configuration} parameter} boolean delivered-to"
 msgstr "{parámetro de @code{getmail-options-configuration}} boolean delivered-to"
 
 #. type: deftypevr
-#: doc/guix.texi:18076
+#: doc/guix.texi:20765
 msgid "If true, getmail will add a Delivered-To header to messages."
 msgstr "Si es verdadero, getmail añadirá una cabecera ``Delivered-To'' a los mensajes."
 
 #. type: deftypevr
-#: doc/guix.texi:18081
+#: doc/guix.texi:20770
 #, no-wrap
 msgid "{@code{getmail-options-configuration} parameter} boolean received"
 msgstr "{parámetro de @code{getmail-options-configuration}} boolean received"
 
 #. type: deftypevr
-#: doc/guix.texi:18083
+#: doc/guix.texi:20772
 msgid "If set, getmail adds a Received header to the messages."
 msgstr "Si es verdadero, getmail añadirá una cabecera ``Received'' a los mensajes."
 
 #. type: deftypevr
-#: doc/guix.texi:18088
+#: doc/guix.texi:20777
 #, no-wrap
 msgid "{@code{getmail-options-configuration} parameter} string message-log"
 msgstr "{parámetro de @code{getmail-options-configuration}} string message-log"
 
 #. type: deftypevr
-#: doc/guix.texi:18091
+#: doc/guix.texi:20780
 msgid "Getmail will record a log of its actions to the named file.  A value of @samp{\"\"} disables this feature."
-msgstr "Getmail generará un registro de sus acciones en el fichero nombrado. El valor @samp{\"\"} desactiva esta característica."
+msgstr "Getmail generará un registro de sus acciones en el archivo nombrado. El valor @samp{\"\"} desactiva esta característica."
 
 #. type: deftypevr
-#: doc/guix.texi:18096
+#: doc/guix.texi:20785
 #, no-wrap
 msgid "{@code{getmail-options-configuration} parameter} boolean message-log-syslog"
 msgstr "{parámetro de @code{getmail-options-configuration}} boolean message-log-syslog"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:18099
+#: doc/guix.texi:20788
 msgid "If true, getmail will record a log of its actions using the system logger."
 msgstr "Si es verdadero, getmail registrará sus acciones a través del registro del sistema."
 
 #. type: deftypevr
-#: doc/guix.texi:18104
+#: doc/guix.texi:20793
 #, no-wrap
 msgid "{@code{getmail-options-configuration} parameter} boolean message-log-verbose"
 msgstr "{parámetro de @code{getmail-options-configuration}} boolean message-log-verbose"
 
 #. type: deftypevr
-#: doc/guix.texi:18108
+#: doc/guix.texi:20797
 msgid "If true, getmail will log information about messages not retrieved and the reason for not retrieving them, as well as starting and ending information lines."
 msgstr "Si es verdadero, getmail registrará información sobre los mensajes que no se hayan podido recuperar y la razón para no hacerlo, así como líneas de inicio y fin informativas."
 
 #. type: deftypevr
-#: doc/guix.texi:18113
+#: doc/guix.texi:20802
 #, no-wrap
 msgid "{@code{getmail-options-configuration} parameter} parameter-alist extra-parameters"
 msgstr "{parámetro de @code{getmail-options-configuration}} parameter-alist extra-parameters"
 
 #. type: deftypevr
-#: doc/guix.texi:18115
+#: doc/guix.texi:20804
 msgid "Extra options to include."
 msgstr "Opciones adicionales a incluir."
 
 #. type: deftypevr
-#: doc/guix.texi:18124
+#: doc/guix.texi:20813
 #, no-wrap
 msgid "{@code{getmail-configuration} parameter} list idle"
 msgstr "{parámetro de @code{getmail-configuration}} lista idle"
 
 #. type: deftypevr
-#: doc/guix.texi:18128
+#: doc/guix.texi:20817
 msgid "A list of mailboxes that getmail should wait on the server for new mail notifications.  This depends on the server supporting the IDLE extension."
 msgstr "Una lista de bandejas de correo en las que getmail debe esperar en el servidor nuevas notificaciones de correo. Esto depende de que el servidor implemente la extensión IDLE."
 
 #. type: deftypevr
-#: doc/guix.texi:18133
+#: doc/guix.texi:20822
 #, no-wrap
 msgid "{@code{getmail-configuration} parameter} list environment-variables"
 msgstr "{parámetro de @code{getmail-configuration}} lista environment-variables"
 
 #. type: deftypevr
-#: doc/guix.texi:18135
+#: doc/guix.texi:20824
 msgid "Environment variables to set for getmail."
 msgstr "Variables de entorno proporcionadas a getmail."
 
 #. type: subsubheading
-#: doc/guix.texi:18140
+#: doc/guix.texi:20829
 #, no-wrap
 msgid "Mail Aliases Service"
 msgstr "Servicios de alias de correo"
 
 #. type: cindex
-#: doc/guix.texi:18142
+#: doc/guix.texi:20831
 #, no-wrap
 msgid "email aliases"
 msgstr "correo electrónico, alias"
 
 #. type: cindex
-#: doc/guix.texi:18143
+#: doc/guix.texi:20832
 #, no-wrap
 msgid "aliases, for email addresses"
 msgstr "alias, para direcciones de correo electrónico"
 
 #. type: deffn
-#: doc/guix.texi:18145
+#: doc/guix.texi:20834
 #, no-wrap
 msgid "{Scheme Variable} mail-aliases-service-type"
 msgstr "{Variable Scheme} mail-aliases-service-type"
 
 # FUZZY
 #. type: deffn
-#: doc/guix.texi:18148
+#: doc/guix.texi:20837
 msgid "This is the type of the service which provides @code{/etc/aliases}, specifying how to deliver mail to users on this system."
 msgstr "Este es el tipo del servicio que proporciona @code{/etc/aliases}, donde se especifica cómo entregar el correo a las usuarias de este sistema."
 
 #. type: lisp
-#: doc/guix.texi:18153
+#: doc/guix.texi:20842
 #, no-wrap
 msgid ""
 "(service mail-aliases-service-type\n"
@@ -35170,34 +39902,34 @@ msgstr ""
 "           (\"rober\" \"rober@@example.com\" \"rober@@example2.com\")))\n"
 
 #. type: Plain text
-#: doc/guix.texi:18161
+#: doc/guix.texi:20850
 msgid "The configuration for a @code{mail-aliases-service-type} service is an association list denoting how to deliver mail that comes to this system. Each entry is of the form @code{(alias addresses ...)}, with @code{alias} specifying the local alias and @code{addresses} specifying where to deliver this user's mail."
 msgstr "La configuración del servicio @code{mail-aliases-service-type} es una lista asociada que indica cómo se debe entregar el correo que viene del sistema. Cada entrada tiene la forma @code{(alias direcciones ...)}, siendo @code{alias} un alias (nombre) local y @code{direcciones} especifica dónde se debe entregar el correo de esta usuaria."
 
 #. type: Plain text
-#: doc/guix.texi:18167
+#: doc/guix.texi:20856
 msgid "The aliases aren't required to exist as users on the local system. In the above example, there doesn't need to be a @code{postmaster} entry in the @code{operating-system}'s @code{user-accounts} in order to deliver the @code{postmaster} mail to @code{bob} (which subsequently would deliver mail to @code{bob@@example.com} and @code{bob@@example2.com})."
 msgstr "No es necesario que los alias existan como usuarias en el sistema local. En el ejemplo previo, no es necesario que exista una entrada @code{postmaster} en el campo @code{user-accounts} de @code{operating-system} para que el correo de @code{postmaster} se entregue a @code{rober} (que a su vez entregará el correo a @code{rober@@example.com} y @code{rober@@example2.com})."
 
 #. type: cindex
-#: doc/guix.texi:18168 doc/guix.texi:18169
+#: doc/guix.texi:20857 doc/guix.texi:20858
 #, no-wrap
 msgid "GNU Mailutils IMAP4 Daemon"
 msgstr "daemon de IMAP3 de GNU Mailutils"
 
 #. type: deffn
-#: doc/guix.texi:18171
+#: doc/guix.texi:20860
 #, no-wrap
 msgid "{Scheme Variable} imap4d-service-type"
 msgstr "{Variable Scheme} imap4d-service-type"
 
 #. type: deffn
-#: doc/guix.texi:18175
+#: doc/guix.texi:20864
 msgid "This is the type of the GNU Mailutils IMAP4 Daemon (@pxref{imap4d,,, mailutils, GNU Mailutils Manual}), whose value should be an @code{imap4d-configuration} object as in this example:"
 msgstr "Es el tipo del daemon IMAP4 de GNU Mailutils (@pxref{imap4d,,, mailutils, GNU Mailutils Manual}), cuyo valor debe ser un objeto @code{imap4d-configuration} como en este ejemplo:"
 
 #. type: lisp
-#: doc/guix.texi:18180
+#: doc/guix.texi:20869
 #, no-wrap
 msgid ""
 "(service imap4d-service-type\n"
@@ -35209,80 +39941,80 @@ msgstr ""
 "           (config-file (local-file \"imap4d.conf\"))))\n"
 
 #. type: deftp
-#: doc/guix.texi:18183
+#: doc/guix.texi:20872
 #, no-wrap
 msgid "{Data Type} imap4d-configuration"
 msgstr "{Tipo de datos} imap4d-configuration"
 
 #. type: deftp
-#: doc/guix.texi:18185
+#: doc/guix.texi:20874
 msgid "Data type representing the configuration of @command{imap4d}."
 msgstr "Tipo de datos que representa la configuración de @command{imap4d}."
 
 #. type: item
-#: doc/guix.texi:18187
+#: doc/guix.texi:20876
 #, no-wrap
 msgid "@code{package} (default: @code{mailutils})"
 msgstr "@code{package} (predeterminado: @code{mailutils})"
 
 #. type: table
-#: doc/guix.texi:18189
+#: doc/guix.texi:20878
 msgid "The package that provides @command{imap4d}."
 msgstr "El paquete que proporciona @command{imap4d}."
 
 #. type: item
-#: doc/guix.texi:18190
+#: doc/guix.texi:20879
 #, no-wrap
 msgid "@code{config-file} (default: @code{%default-imap4d-config-file})"
 msgstr "@code{config-file} (predeterminado: @code{%default-imap4d-config-file})"
 
 #. type: table
-#: doc/guix.texi:18194
+#: doc/guix.texi:20883
 msgid "File-like object of the configuration file to use, by default it will listen on TCP port 143 of @code{localhost}.  @xref{Conf-imap4d,,, mailutils, GNU Mailutils Manual}, for details."
-msgstr "Objeto ``tipo-fichero'' con el fichero de configuración usado, de manera predeterminada escucha en el puerto TCP 143 de @code{localhost}. @xref{Conf-imap4d,,, mailutils, GNU Mailutils Manual}, para más detalles."
+msgstr "Objeto ``tipo-archivo'' con el archivo de configuración usado, de manera predeterminada escucha en el puerto TCP 143 de @code{localhost}. @xref{Conf-imap4d,,, mailutils, GNU Mailutils Manual}, para más detalles."
 
 #. type: cindex
-#: doc/guix.texi:18201
+#: doc/guix.texi:20890
 #, no-wrap
 msgid "messaging"
 msgstr "mensajería"
 
 #. type: cindex
-#: doc/guix.texi:18202
+#: doc/guix.texi:20891
 #, no-wrap
 msgid "jabber"
 msgstr "jabber"
 
 #. type: cindex
-#: doc/guix.texi:18203
+#: doc/guix.texi:20892
 #, no-wrap
 msgid "XMPP"
 msgstr "XMPP"
 
 #. type: Plain text
-#: doc/guix.texi:18206
-msgid "The @code{(gnu services messaging)} module provides Guix service definitions for messaging services: currently only Prosody is supported."
-msgstr "El módulo @code{(gnu services messaging)} proporciona definiciones de servicios Guix para servicios de mensajería: actualmente únicamente Prosody está implementado."
+#: doc/guix.texi:20896
+msgid "The @code{(gnu services messaging)} module provides Guix service definitions for messaging services.  Currently it provides the following services:"
+msgstr "El módulo @code{(gnu services messaging)} proporciona definiciones de servicios Guix para servicios de mensajería. Actualmente proporciona los siguientes servicios:"
 
 #. type: subsubheading
-#: doc/guix.texi:18207
+#: doc/guix.texi:20897
 #, no-wrap
 msgid "Prosody Service"
 msgstr "Servicio Prosody"
 
 #. type: deffn
-#: doc/guix.texi:18209
+#: doc/guix.texi:20899
 #, no-wrap
 msgid "{Scheme Variable} prosody-service-type"
 msgstr "{Variable Scheme} prosody-service-type"
 
 #. type: deffn
-#: doc/guix.texi:18213
+#: doc/guix.texi:20903
 msgid "This is the type for the @uref{https://prosody.im, Prosody XMPP communication server}.  Its value must be a @code{prosody-configuration} record as in this example:"
 msgstr "Este es el tipo para el @uref{https://prosody.im, servidor de comunicaciones XMPP Prosody}. Su valor debe ser un registro @code{prosody-configuration} como en este ejemplo:"
 
 #. type: lisp
-#: doc/guix.texi:18228
+#: doc/guix.texi:20918
 #, no-wrap
 msgid ""
 "(service prosody-service-type\n"
@@ -35314,187 +40046,187 @@ msgstr ""
 "             (domain \"ejemplo.net\"))))))\n"
 
 #. type: deffn
-#: doc/guix.texi:18231
+#: doc/guix.texi:20921
 msgid "See below for details about @code{prosody-configuration}."
 msgstr "Véase a continuación detalles acerca de @code{prosody-configuration}."
 
 # FUZZY
 #. type: Plain text
-#: doc/guix.texi:18237
+#: doc/guix.texi:20927
 msgid "By default, Prosody does not need much configuration.  Only one @code{virtualhosts} field is needed: it specifies the domain you wish Prosody to serve."
 msgstr "De manera predeterminada, Prosody no necesita demasiada configuración. Únicamente un campo @code{virtualhost} es necesario: especifica el dominio en el que se desea que Prosody proporcione el servicio."
 
 #. type: Plain text
-#: doc/guix.texi:18240
+#: doc/guix.texi:20930
 msgid "You can perform various sanity checks on the generated configuration with the @code{prosodyctl check} command."
 msgstr "Puede realizar varias comprobaciones preliminares sobre la configuración generada con la orden @code{prosodyctl check}."
 
 #. type: Plain text
-#: doc/guix.texi:18244
+#: doc/guix.texi:20934
 msgid "Prosodyctl will also help you to import certificates from the @code{letsencrypt} directory so that the @code{prosody} user can access them.  See @url{https://prosody.im/doc/letsencrypt}."
 msgstr "Prosodyctl también le ayudará con la importación de certificados del directorio @code{letsencrypt} de modo que la usuaria @code{prosody} puede acceder a ellos. Véase @url{https://prosody.im/doc/letsencrypt}."
 
 #. type: example
-#: doc/guix.texi:18247
+#: doc/guix.texi:20937
 #, no-wrap
 msgid "prosodyctl --root cert import /etc/letsencrypt/live\n"
 msgstr "prosodyctl --root cert import /etc/letsencrypt/live\n"
 
 #. type: Plain text
-#: doc/guix.texi:18254
+#: doc/guix.texi:20944
 msgid "The available configuration parameters follow.  Each parameter definition is preceded by its type; for example, @samp{string-list foo} indicates that the @code{foo} parameter should be specified as a list of strings.  Types starting with @code{maybe-} denote parameters that won't show up in @code{prosody.cfg.lua} when their value is @code{'disabled}."
 msgstr "A continuación se encuentran los parámetros de configuración disponibles. El tipo de cada parámetro antecede la definición del mismo; por ejemplo, @samp{string-list foo} indica que el parámetro @code{foo} debe especificarse como una lista de cadenas. Los tipos que empiezan con @code{maybe-} identifican parámetros que no aparecerán en @code{prosody.cfg.lua} cuando su valor sea @code{'disabled}."
 
 #. type: Plain text
-#: doc/guix.texi:18258
+#: doc/guix.texi:20948
 msgid "There is also a way to specify the configuration as a string, if you have an old @code{prosody.cfg.lua} file that you want to port over from some other system; see the end for more details."
-msgstr "También existe la posibilidad de especificar la configuración como una cadena, por si tiene un fichero @code{prosody.cfg.lua} antiguo que desea transportar desde otro sistema; véase más detalles al final."
+msgstr "También existe la posibilidad de especificar la configuración como una cadena, por si tiene un archivo @code{prosody.cfg.lua} antiguo que desea transportar desde otro sistema; véase más detalles al final."
 
 #. type: Plain text
-#: doc/guix.texi:18261
+#: doc/guix.texi:20951
 msgid "The @code{file-object} type designates either a file-like object (@pxref{G-Expressions, file-like objects}) or a file name."
-msgstr "El tipo @code{file-object} designa o bien un objeto ``tipo-fichero'' (@pxref{G-Expressions, objetos ``tipo-fichero''}) o un nombre de fichero."
+msgstr "El tipo @code{file-object} designa o bien un objeto ``tipo-archivo'' (@pxref{G-Expressions, objetos ``tipo-archivo''}) o un nombre de archivo."
 
 #. type: Plain text
-#: doc/guix.texi:18271
+#: doc/guix.texi:20961
 msgid "Available @code{prosody-configuration} fields are:"
 msgstr "Los campos disponibles de @code{prosody-configuration} son:"
 
 #. type: deftypevr
-#: doc/guix.texi:18272
+#: doc/guix.texi:20962
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} package prosody"
 msgstr "{parámetro de @code{prosody-configuration}} package prosody"
 
 #. type: deftypevr
-#: doc/guix.texi:18274
+#: doc/guix.texi:20964
 msgid "The Prosody package."
 msgstr "El paquete Prosody."
 
 #. type: deftypevr
-#: doc/guix.texi:18276
+#: doc/guix.texi:20966
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} file-name data-path"
-msgstr "{parámetro de @code{prosody-configuration}} nombre-fichero data-path"
+msgstr "{parámetro de @code{prosody-configuration}} nombre-archivo data-path"
 
 #. type: deftypevr
-#: doc/guix.texi:18280
+#: doc/guix.texi:20970
 msgid "Location of the Prosody data storage directory.  See @url{https://prosody.im/doc/configure}.  Defaults to @samp{\"/var/lib/prosody\"}."
 msgstr ""
 "Ruta del directorio de almacenamiento de datos de Prosody. Véase @url{https://prosody.im/doc/configure}.\n"
 "Su valor predeterminado es @samp{\"/var/lib/prosody\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:18282
+#: doc/guix.texi:20972
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} file-object-list plugin-paths"
 msgstr "{parámetro de @code{prosody-configuration}} lista-file-object plugin-paths"
 
 #. type: deftypevr
-#: doc/guix.texi:18286
+#: doc/guix.texi:20976
 msgid "Additional plugin directories.  They are searched in all the specified paths in order.  See @url{https://prosody.im/doc/plugins_directory}.  Defaults to @samp{()}."
 msgstr ""
 "Directorios de módulos adicionales. Los módulos se buscan en orden en todas las rutas especificadas. Véase @url{https://prosody.im/doc/plugins_directory}.\n"
 "Su valor predeterminado es @samp{()}."
 
 #. type: deftypevr
-#: doc/guix.texi:18288
+#: doc/guix.texi:20978
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} file-name certificates"
-msgstr "{parámetro de @code{prosody-configuration}} nombre-fichero certificates"
+msgstr "{parámetro de @code{prosody-configuration}} nombre-archivo certificates"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:18293
+#: doc/guix.texi:20983
 msgid "Every virtual host and component needs a certificate so that clients and servers can securely verify its identity.  Prosody will automatically load certificates/keys from the directory specified here.  Defaults to @samp{\"/etc/prosody/certs\"}."
 msgstr ""
 "Cada máquina virtual y componente necesitan un certificado de manera que los clientes y servidores puedan verificar su identidad de manera segura. Prosody cargará de manera automática certificados/claves del directorio especificado aquí.\n"
 "Su valor predeterminado es @samp{\"/etc/prosody/certs\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:18295
+#: doc/guix.texi:20985
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} string-list admins"
 msgstr "{parámetro de @code{prosody-configuration}} lista-string admins"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:18301
+#: doc/guix.texi:20991
 msgid "This is a list of accounts that are admins for the server.  Note that you must create the accounts separately.  See @url{https://prosody.im/doc/admins} and @url{https://prosody.im/doc/creating_accounts}.  Example: @code{(admins '(\"user1@@example.com\" \"user2@@example.net\"))} Defaults to @samp{()}."
 msgstr ""
 "Es una lista de cuentas con permisos de administración en el servidor. Tenga en cuenta que debe crear las cuentas de manera separada. Véase @url{https://prosody.im/doc/admins} y @url{https://prosody.im/doc/creating_accounts}.  Ejemplo: @code{(admins '(\"usuaria1@@example.com\" \"usuaria2@@example.net\"))}\n"
 "Su valor predeterminado es @samp{()}."
 
 #. type: deftypevr
-#: doc/guix.texi:18303
+#: doc/guix.texi:20993
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} boolean use-libevent?"
 msgstr "{parámetro de @code{prosody-configuration}} boolean use-libevent?"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:18307
+#: doc/guix.texi:20997
 msgid "Enable use of libevent for better performance under high load.  See @url{https://prosody.im/doc/libevent}.  Defaults to @samp{#f}."
 msgstr ""
 "Activa el uso de libevent para mejorar el rendimiento bajo altas cargas de trabajo. Véase @url{https://prosody.im/doc/libevent}.\n"
 "Su valor predeterminado es @samp{#f}."
 
 #. type: deftypevr
-#: doc/guix.texi:18309
+#: doc/guix.texi:20999
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} module-list modules-enabled"
 msgstr "{parámetro de @code{prosody-configuration}} lista-módulos modules-enabled"
 
 # FUZZY FUZZY
 #. type: deftypevr
-#: doc/guix.texi:18315
+#: doc/guix.texi:21005
 msgid "This is the list of modules Prosody will load on startup.  It looks for @code{mod_modulename.lua} in the plugins folder, so make sure that exists too.  Documentation on modules can be found at: @url{https://prosody.im/doc/modules}.  Defaults to @samp{(\"roster\" \"saslauth\" \"tls\" \"dialback\" \"disco\" \"carbons\" \"private\" \"blocklist\" \"vcard\" \"version\" \"uptime\" \"time\" \"ping\" \"pep\" \"register\" \"admin_adhoc\")}."
 msgstr ""
-"La lista de módulos de Prosody cargada durante el arranque. Busca en el fichero de módulos @code{mod_nombremodulo.lua}, por lo que asegúrese de que también exista. La documentación de los módulos puede encontrarse en: @url{https://prosody.im/doc/modules}.\n"
+"La lista de módulos de Prosody cargada durante el arranque. Busca en el archivo de módulos @code{mod_nombremodulo.lua}, por lo que asegúrese de que también exista. La documentación de los módulos puede encontrarse en: @url{https://prosody.im/doc/modules}.\n"
 "Su valor predeterminado es @samp{(\"roster\" \"saslauth\" \"tls\" \"dialback\" \"disco\" \"carbons\" \"private\" \"blocklist\" \"vcard\" \"version\" \"uptime\" \"time\" \"ping\" \"pep\" \"register\" \"admin_adhoc\")}."
 
 #. type: deftypevr
-#: doc/guix.texi:18317
+#: doc/guix.texi:21007
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} string-list modules-disabled"
 msgstr "{parámetro de @code{prosody-configuration}} lista-string modules-disabled"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:18321
+#: doc/guix.texi:21011
 msgid "@samp{\"offline\"}, @samp{\"c2s\"} and @samp{\"s2s\"} are auto-loaded, but should you want to disable them then add them to this list.  Defaults to @samp{()}."
 msgstr ""
 "@samp{\"offline\"}, @samp{\"c2s\"} y @samp{\"s2s\"} se cargan de manera automática, pero puede desactivarlos si los añade a esta lista.\n"
 "Su valor predeterminado es @samp{()}."
 
 #. type: deftypevr
-#: doc/guix.texi:18323
+#: doc/guix.texi:21013
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} file-object groups-file"
 msgstr "{parámetro de @code{prosody-configuration}} file-object groups-file"
 
 #. type: deftypevr
-#: doc/guix.texi:18328
+#: doc/guix.texi:21018
 msgid "Path to a text file where the shared groups are defined.  If this path is empty then @samp{mod_groups} does nothing.  See @url{https://prosody.im/doc/modules/mod_groups}.  Defaults to @samp{\"/var/lib/prosody/sharedgroups.txt\"}."
 msgstr ""
-"Ruta a un fichero de texto donde se definan los grupos compartidos. Si esta ruta está vacía, @samp{mod_groups} no hace nada. Véase @url{https://prosody.im/doc/modules/mod_groups}.\n"
+"Ruta a un archivo de texto donde se definan los grupos compartidos. Si esta ruta está vacía, @samp{mod_groups} no hace nada. Véase @url{https://prosody.im/doc/modules/mod_groups}.\n"
 "Su valor predeterminado es @samp{\"/var/lib/prosody/sharedgroups.txt\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:18330
+#: doc/guix.texi:21020
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} boolean allow-registration?"
 msgstr "{parámetro de @code{prosody-configuration}} boolean allow-registration?"
 
 #. type: deftypevr
-#: doc/guix.texi:18334
+#: doc/guix.texi:21024
 msgid "Disable account creation by default, for security.  See @url{https://prosody.im/doc/creating_accounts}.  Defaults to @samp{#f}."
 msgstr ""
 "Desactiva la creación de cuentas de manera predeterminada, por seguridad. Véase @url{https://prosody.im/doc/creating_accounts}.\n"
 "Su valor predeterminado es @samp{#f}."
 
 #. type: deftypevr
-#: doc/guix.texi:18336
+#: doc/guix.texi:21026
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} maybe-ssl-configuration ssl"
 msgstr "{parámetro de @code{prosody-configuration}} maybe-ssl-configuration ssl"
@@ -35503,143 +40235,143 @@ msgstr "{parámetro de @code{prosody-configuration}} maybe-ssl-configuration ssl
 # grados penitenciarios. La vulnerabilidad se trabaja de manera activa y
 # asume la posibilidad de errores y fallos.
 #. type: deftypevr
-#: doc/guix.texi:18341
+#: doc/guix.texi:21031
 msgid "These are the SSL/TLS-related settings.  Most of them are disabled so to use Prosody's defaults.  If you do not completely understand these options, do not add them to your config, it is easy to lower the security of your server using them.  See @url{https://prosody.im/doc/advanced_ssl_config}."
 msgstr "Estas opciones de configuración están relacionadas con SSL/TLS. La mayor parte no se proporcionan para usar los valores predeterminados de Prosody. Si no entiende completamente estas opciones, no las añada a su configuración, es fácil aumentar la vulnerabilidad de su servidor si las usa. Véase @url{https://prosody.im/doc/advanced_ssl_config}."
 
 #. type: deftypevr
-#: doc/guix.texi:18343
+#: doc/guix.texi:21033
 msgid "Available @code{ssl-configuration} fields are:"
 msgstr "Los campos disponibles de @code{ssl-configuration} son:"
 
 #. type: deftypevr
-#: doc/guix.texi:18344
+#: doc/guix.texi:21034
 #, no-wrap
 msgid "{@code{ssl-configuration} parameter} maybe-string protocol"
 msgstr "{parámetro de @code{ssl-configuration}} maybe-string protocol"
 
 #. type: deftypevr
-#: doc/guix.texi:18346
+#: doc/guix.texi:21036
 msgid "This determines what handshake to use."
 msgstr "Determina el inicio del protocolo usado (handshake)."
 
 #. type: deftypevr
-#: doc/guix.texi:18348
+#: doc/guix.texi:21038
 #, no-wrap
 msgid "{@code{ssl-configuration} parameter} maybe-file-name key"
-msgstr "{parámetro de @code{ssl-configuration}} maybe-nombre-fichero key"
+msgstr "{parámetro de @code{ssl-configuration}} maybe-nombre-archivo key"
 
 #. type: deftypevr
-#: doc/guix.texi:18350
+#: doc/guix.texi:21040
 msgid "Path to your private key file."
-msgstr "Ruta a su fichero de clave privada."
+msgstr "Ruta a su archivo de clave privada."
 
 #. type: deftypevr
-#: doc/guix.texi:18352
+#: doc/guix.texi:21042
 #, no-wrap
 msgid "{@code{ssl-configuration} parameter} maybe-file-name certificate"
-msgstr "{parámetro de @code{ssl-configuration}} maybe-nombre-fichero certificate"
+msgstr "{parámetro de @code{ssl-configuration}} maybe-nombre-archivo certificate"
 
 #. type: deftypevr
-#: doc/guix.texi:18354
+#: doc/guix.texi:21044
 msgid "Path to your certificate file."
-msgstr "Ruta al fichero de su certificado."
+msgstr "Ruta al archivo de su certificado."
 
 #. type: deftypevr
-#: doc/guix.texi:18356
+#: doc/guix.texi:21046
 #, no-wrap
 msgid "{@code{ssl-configuration} parameter} file-object capath"
 msgstr "{parámetro de @code{ssl-configuration}} file-object capath"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:18360
+#: doc/guix.texi:21050
 msgid "Path to directory containing root certificates that you wish Prosody to trust when verifying the certificates of remote servers.  Defaults to @samp{\"/etc/ssl/certs\"}."
 msgstr ""
 "Ruta al directorio que contiene los certificados raíz en los que desea que Prosody confíe al verificar los certificados de servidores remotos.\n"
 "Su valor predeterminado es @samp{\"/etc/ssl/certs\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:18362
+#: doc/guix.texi:21052
 #, no-wrap
 msgid "{@code{ssl-configuration} parameter} maybe-file-object cafile"
 msgstr "{parámetro de @code{ssl-configuration}} maybe-file-object cafile"
 
 #. type: deftypevr
-#: doc/guix.texi:18365
+#: doc/guix.texi:21055
 msgid "Path to a file containing root certificates that you wish Prosody to trust.  Similar to @code{capath} but with all certificates concatenated together."
-msgstr "Ruta al fichero que contiene los certificados raíz en los que desea que Prosody confíe. Es similar a @code{capath} pero con todos los certificados concatenados en el mismo fichero."
+msgstr "Ruta al archivo que contiene los certificados raíz en los que desea que Prosody confíe. Es similar a @code{capath} pero con todos los certificados concatenados en el mismo archivo."
 
 #. type: deftypevr
-#: doc/guix.texi:18367
+#: doc/guix.texi:21057
 #, no-wrap
 msgid "{@code{ssl-configuration} parameter} maybe-string-list verify"
 msgstr "{parámetro de @code{ssl-configuration}} maybe-lista-string verify"
 
 #. type: deftypevr
-#: doc/guix.texi:18370
+#: doc/guix.texi:21060
 msgid "A list of verification options (these mostly map to OpenSSL's @code{set_verify()} flags)."
 msgstr "Una lista de opciones de verificación (son de manera prácticamente directa las opciones de @code{set_verify()} de OpenSSL)."
 
 #. type: deftypevr
-#: doc/guix.texi:18372
+#: doc/guix.texi:21062
 #, no-wrap
 msgid "{@code{ssl-configuration} parameter} maybe-string-list options"
 msgstr "{parámetro de @code{ssl-configuration}} maybe-lista-string options"
 
 #. type: deftypevr
-#: doc/guix.texi:18376
+#: doc/guix.texi:21066
 msgid "A list of general options relating to SSL/TLS.  These map to OpenSSL's @code{set_options()}.  For a full list of options available in LuaSec, see the LuaSec source."
-msgstr "Una lista de opciones generales relacionadas con SSL/TLS. Se relacionan directamente con las opciones @code{set_options()} de OpenSSL. Para obtener una lista completa de las opciones disponibles en LuaSec, véase los ficheros de fuentes de LuaSec."
+msgstr "Una lista de opciones generales relacionadas con SSL/TLS. Se relacionan directamente con las opciones @code{set_options()} de OpenSSL. Para obtener una lista completa de las opciones disponibles en LuaSec, véase los archivos de fuentes de LuaSec."
 
 #. type: deftypevr
-#: doc/guix.texi:18378
+#: doc/guix.texi:21068
 #, no-wrap
 msgid "{@code{ssl-configuration} parameter} maybe-non-negative-integer depth"
 msgstr "{parámetro de @code{ssl-configuration}} maybe-entero-no-negativo depth"
 
 #. type: deftypevr
-#: doc/guix.texi:18381
+#: doc/guix.texi:21071
 msgid "How long a chain of certificate authorities to check when looking for a trusted root certificate."
 msgstr "Cómo de larga puede ser la cadena de autoridades de certificación a comprobar cuando se busque un certificado de confianza."
 
 #. type: deftypevr
-#: doc/guix.texi:18383
+#: doc/guix.texi:21073
 #, no-wrap
 msgid "{@code{ssl-configuration} parameter} maybe-string ciphers"
 msgstr "{parámetro de @code{ssl-configuration}} maybe-string ciphers"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:18386
+#: doc/guix.texi:21076
 msgid "An OpenSSL cipher string.  This selects what ciphers Prosody will offer to clients, and in what order."
 msgstr "Una cadena de algoritmos de cifrado de OpenSSL. Selecciona que algoritmos ofrecerá Prosody a los clientes, y en qué orden."
 
 #. type: deftypevr
-#: doc/guix.texi:18388
+#: doc/guix.texi:21078
 #, no-wrap
 msgid "{@code{ssl-configuration} parameter} maybe-file-name dhparam"
-msgstr "{parámetro de @code{ssl-configuration}} maybe-nombre-fichero dhparam"
+msgstr "{parámetro de @code{ssl-configuration}} maybe-nombre-archivo dhparam"
 
 #. type: deftypevr
-#: doc/guix.texi:18392
+#: doc/guix.texi:21082
 msgid "A path to a file containing parameters for Diffie-Hellman key exchange.  You can create such a file with: @code{openssl dhparam -out /etc/prosody/certs/dh-2048.pem 2048}"
-msgstr "Una ruta a un fichero que contenga parámetros para el intercambio de claves Diffie-Hellman. Puede crear un fichero de este tipo con: @code{openssl dhparam -out /etc/prosody/certs/dh-2048.pem 2048}"
+msgstr "Una ruta a un archivo que contenga parámetros para el intercambio de claves Diffie-Hellman. Puede crear un archivo de este tipo con: @code{openssl dhparam -out /etc/prosody/certs/dh-2048.pem 2048}"
 
 #. type: deftypevr
-#: doc/guix.texi:18394
+#: doc/guix.texi:21084
 #, no-wrap
 msgid "{@code{ssl-configuration} parameter} maybe-string curve"
 msgstr "{parámetro de @code{ssl-configuration}} maybe-string curve"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:18397
-msgid "Curve for Elliptic curve Diffie-Hellman. Prosody's default is @samp{\"secp384r1\"}."
+#: doc/guix.texi:21087
+msgid "Curve for Elliptic curve Diffie-Hellman.  Prosody's default is @samp{\"secp384r1\"}."
 msgstr "Curva para el protocolo Diffie-Hellman de curva elíptica. El valor predeterminado de Prosody es @samp{\"secp384r1\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:18399
+#: doc/guix.texi:21089
 #, no-wrap
 msgid "{@code{ssl-configuration} parameter} maybe-string-list verifyext"
 msgstr "{parámetro de @code{ssl-configuration}} maybe-string-list verifyext"
@@ -35647,380 +40379,380 @@ msgstr "{parámetro de @code{ssl-configuration}} maybe-string-list verifyext"
 # FUZZY
 # TODO (MAAV): Comprobar.
 #. type: deftypevr
-#: doc/guix.texi:18401
-msgid "A list of \"extra\" verification options."
+#: doc/guix.texi:21091
+msgid "A list of ``extra'' verification options."
 msgstr "Una lista de opciones de verificación adicionales."
 
 #. type: deftypevr
-#: doc/guix.texi:18403
+#: doc/guix.texi:21093
 #, no-wrap
 msgid "{@code{ssl-configuration} parameter} maybe-string password"
 msgstr "{parámetro de @code{ssl-configuration}} maybe-string password"
 
 #. type: deftypevr
-#: doc/guix.texi:18405
+#: doc/guix.texi:21095
 msgid "Password for encrypted private keys."
 msgstr "Contraseña para claves privadas cifradas."
 
 #. type: deftypevr
-#: doc/guix.texi:18409
+#: doc/guix.texi:21099
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} boolean c2s-require-encryption?"
 msgstr "{parámetro de @code{prosody-configuration}} boolean c2s-require-encryption?"
 
 #. type: deftypevr
-#: doc/guix.texi:18413
+#: doc/guix.texi:21103
 msgid "Whether to force all client-to-server connections to be encrypted or not.  See @url{https://prosody.im/doc/modules/mod_tls}.  Defaults to @samp{#f}."
 msgstr ""
 "Determina si se fuerza que todas las conexiones cliente-servidor vayan cifradas o no. Véase @url{https://prosody.im/doc/modules/mod_tls}.\n"
 "Su valor predeterminado es @samp{#f}."
 
 #. type: deftypevr
-#: doc/guix.texi:18415
+#: doc/guix.texi:21105
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} string-list disable-sasl-mechanisms"
 msgstr "{parámetro de @code{prosody-configuration}} lista-string disable-sasl-mechanisms"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:18419
+#: doc/guix.texi:21109
 msgid "Set of mechanisms that will never be offered.  See @url{https://prosody.im/doc/modules/mod_saslauth}.  Defaults to @samp{(\"DIGEST-MD5\")}."
 msgstr ""
 "Conjunto de mecanismos que no se ofrecerán nunca. Véase @url{https://prosody.im/doc/modules/mod_saslauth}.\n"
 "Su valor predeterminado es @samp{(\"DIGEST-MD5\")}."
 
 #. type: deftypevr
-#: doc/guix.texi:18421
+#: doc/guix.texi:21111
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} boolean s2s-require-encryption?"
 msgstr "{parámetro de @code{prosody-configuration}} boolean s2s-require-encryption?"
 
 #. type: deftypevr
-#: doc/guix.texi:18425
+#: doc/guix.texi:21115
 msgid "Whether to force all server-to-server connections to be encrypted or not.  See @url{https://prosody.im/doc/modules/mod_tls}.  Defaults to @samp{#f}."
 msgstr ""
 "Determina si se fuerza que todas las conexiones servidor-servidor vayan cifradas o no. Véase @url{https://prosody.im/doc/modules/mod_tls}.\n"
 "Su valor predeterminado es @samp{#f}."
 
 #. type: deftypevr
-#: doc/guix.texi:18427
+#: doc/guix.texi:21117
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} boolean s2s-secure-auth?"
 msgstr "{parámetro de @code{prosody-configuration}} boolean s2s-secure-auth?"
 
 #. type: deftypevr
-#: doc/guix.texi:18433
+#: doc/guix.texi:21123
 msgid "Whether to require encryption and certificate authentication.  This provides ideal security, but requires servers you communicate with to support encryption AND present valid, trusted certificates.  See @url{https://prosody.im/doc/s2s#security}.  Defaults to @samp{#f}."
 msgstr ""
 "Determina si el cifrado y la identificación mediante certificado son necesarias. Esto proporciona una seguridad ideal, pero necesita que los servidores con los que se comunique permitan cifrado y tengan presentes certificados válidos en los que se tenga confianza. Véase @url{https://prosody.im/doc/s2s#security}.\n"
 "Su valor predeterminado es @samp{#f}."
 
 #. type: deftypevr
-#: doc/guix.texi:18435
+#: doc/guix.texi:21125
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} string-list s2s-insecure-domains"
 msgstr "{parámetro de @code{prosody-configuration}} lista-string s2s-insecure-domains"
 
 #. type: deftypevr
-#: doc/guix.texi:18441
+#: doc/guix.texi:21131
 msgid "Many servers don't support encryption or have invalid or self-signed certificates.  You can list domains here that will not be required to authenticate using certificates.  They will be authenticated using DNS.  See @url{https://prosody.im/doc/s2s#security}.  Defaults to @samp{()}."
 msgstr ""
 "Muchos servidores no permiten el cifrado o tienen certificados auto-firmados. Puede proporcionar aquí una lista de dominios que no necesitarán la identificación mediante certificado. Se identificarán mediante DNS. Véase @url{https://prosody.im/doc/s2s#security}.\n"
 "Su valor predeterminado es @samp{()}."
 
 #. type: deftypevr
-#: doc/guix.texi:18443
+#: doc/guix.texi:21133
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} string-list s2s-secure-domains"
 msgstr "{parámetro de @code{prosody-configuration}} lista-string s2s-secure-domains"
 
 #. type: deftypevr
-#: doc/guix.texi:18448
+#: doc/guix.texi:21138
 msgid "Even if you leave @code{s2s-secure-auth?} disabled, you can still require valid certificates for some domains by specifying a list here.  See @url{https://prosody.im/doc/s2s#security}.  Defaults to @samp{()}."
 msgstr ""
 "Aún en el caso de mantener @code{s2s-secure-auth?}, puede exigir certificados válidos para algunos dominios especificando una lista aquí. Véase @url{https://prosody.im/doc/s2s#security}.\n"
 "Su valor predeterminado es @samp{()}."
 
 #. type: deftypevr
-#: doc/guix.texi:18450
+#: doc/guix.texi:21140
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} string authentication"
 msgstr "{parámetro de @code{prosody-configuration}} string authentication"
 
 # TODO: Parche por punto tras el último enlace.
 #. type: deftypevr
-#: doc/guix.texi:18458
+#: doc/guix.texi:21148
 msgid "Select the authentication backend to use.  The default provider stores passwords in plaintext and uses Prosody's configured data storage to store the authentication data.  If you do not trust your server please see @url{https://prosody.im/doc/modules/mod_auth_internal_hashed} for information about using the hashed backend.  See also @url{https://prosody.im/doc/authentication} Defaults to @samp{\"internal_plain\"}."
 msgstr ""
 "Selecciona el motor de identificación usado. La implementación predeterminada almacena las contraseñas en texto claro y usa el almacenamiento de datos configurado en Prosody para los datos de identificación. Si no confía en su servidor le recomendamos que visite @url{https://prosody.im/doc/modules/mod_auth_internal_hashed} para obtener información sobre el motor de almacenamiento tras hash. Véase también @url{https://prosody.im/doc/authentication}.\n"
 "Su valor predeterminado es @samp{\"internal_plain\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:18460
+#: doc/guix.texi:21150
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} maybe-string log"
 msgstr "{parámetro de @code{prosody-configuration}} maybe-string log"
 
 #. type: deftypevr
-#: doc/guix.texi:18464
+#: doc/guix.texi:21154
 msgid "Set logging options.  Advanced logging configuration is not yet supported by the Prosody service.  See @url{https://prosody.im/doc/logging}.  Defaults to @samp{\"*syslog\"}."
 msgstr ""
 "Determina las opciones del registro. La configuración avanzada del registro no está implementada todavía para el servicio Prosody. Véase @url{https://prosody.im/doc/logging}.\n"
 "Su valor predeterminado es @samp{\"*syslog\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:18466
+#: doc/guix.texi:21156
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} file-name pidfile"
-msgstr "{parámetro de @code{prosody-configuration}} nombre-fichero pidfile"
+msgstr "{parámetro de @code{prosody-configuration}} nombre-archivo pidfile"
 
 #. type: deftypevr
-#: doc/guix.texi:18469
+#: doc/guix.texi:21159
 msgid "File to write pid in.  See @url{https://prosody.im/doc/modules/mod_posix}.  Defaults to @samp{\"/var/run/prosody/prosody.pid\"}."
 msgstr ""
-"Fichero en el que se escribirá el PID. Véase @url{https://prosody.im/doc/modules/mod_posix}.\n"
+"Archivo en el que se escribirá el PID. Véase @url{https://prosody.im/doc/modules/mod_posix}.\n"
 "Su valor predeterminado es @samp{\"/var/run/prosody/prosody.pid\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:18471
+#: doc/guix.texi:21161
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} maybe-non-negative-integer http-max-content-size"
 msgstr "{parámetro de @code{prosody-configuration}} maybe-entero-no-negativo http-max-content-size"
 
 #. type: deftypevr
-#: doc/guix.texi:18473
+#: doc/guix.texi:21163
 msgid "Maximum allowed size of the HTTP body (in bytes)."
 msgstr "Tamaño máximo permitido del cuerpo (body) HTTP (en bytes)"
 
 #. type: deftypevr
-#: doc/guix.texi:18475
+#: doc/guix.texi:21165
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} maybe-string http-external-url"
 msgstr "{parámetro de @code{prosody-configuration}} maybe-string http-external-url"
 
 #. type: deftypevr
-#: doc/guix.texi:18480
+#: doc/guix.texi:21170
 msgid "Some modules expose their own URL in various ways.  This URL is built from the protocol, host and port used.  If Prosody sits behind a proxy, the public URL will be @code{http-external-url} instead.  See @url{https://prosody.im/doc/http#external_url}."
 msgstr "Algunos módulos exponen sus propias URL de diversas maneras. Esta URL se construye en base al protocolo, máquina y puerto usados. Si Prosody se encuentra tras un proxy, se usara @code{http-external-url} como URL pública. Véase @url{https://prosody.im/doc/http#external_url}."
 
 #. type: deftypevr
-#: doc/guix.texi:18482
+#: doc/guix.texi:21172
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} virtualhost-configuration-list virtualhosts"
 msgstr "{parámetro de @code{prosody-configuration}} lista-virtualhost-configuration virtualhosts"
 
 #. type: deftypevr
-#: doc/guix.texi:18487
+#: doc/guix.texi:21177
 msgid "A host in Prosody is a domain on which user accounts can be created.  For example if you want your users to have addresses like @samp{\"john.smith@@example.com\"} then you need to add a host @samp{\"example.com\"}.  All options in this list will apply only to this host."
 msgstr "Una máquina (host) en Prosody es un dominio en el que se pueden crear cuentas de usuaria. Por ejemplo, si desea que sus usuarias tengan direcciones como @samp{\"juan.herrero@@example.com\"} necesitará añadir una máquina @samp{\"example.com\"}. Todas las opciones en esta lista son efectivas únicamente en esa máquina."
 
 #. type: deftypevr
-#: doc/guix.texi:18493
-msgid "Note: the name \"virtual\" host is used in configuration to avoid confusion with the actual physical host that Prosody is installed on.  A single Prosody instance can serve many domains, each one defined as a VirtualHost entry in Prosody's configuration.  Conversely a server that hosts a single domain would have just one VirtualHost entry."
-msgstr "Fíjese: el nombre de máquina \"virtual\" se usa en la configuración para evitar confusión con la máquina física en la que Prosody se encuentra instalado. Una única instancia de Prosody puede proporcionar servicio para muchos dominos, cada uno definido como una entrada de máquina virtual (VirtualHost) en la configuración de Prosody. De manera alternativa, un servidor que aloja un único dominio puede tener una única entrada VirtualHost."
+#: doc/guix.texi:21183
+msgid "Note: the name @emph{virtual} host is used in configuration to avoid confusion with the actual physical host that Prosody is installed on.  A single Prosody instance can serve many domains, each one defined as a VirtualHost entry in Prosody's configuration.  Conversely a server that hosts a single domain would have just one VirtualHost entry."
+msgstr "Fíjese: el nombre de máquina @emph{virtual} se usa en la configuración para evitar confusión con la máquina física en la que Prosody se encuentra instalado. Una única instancia de Prosody puede proporcionar servicio para muchos dominos, cada uno definido como una entrada de máquina virtual (VirtualHost) en la configuración de Prosody. De manera alternativa, un servidor que aloja un único dominio puede tener una única entrada VirtualHost."
 
 #. type: deftypevr
-#: doc/guix.texi:18495
+#: doc/guix.texi:21185
 msgid "See @url{https://prosody.im/doc/configure#virtual_host_settings}."
 msgstr "Véase @url{https://prosody.im/doc/configure#virtual_host_settings}."
 
 #. type: deftypevr
-#: doc/guix.texi:18497
+#: doc/guix.texi:21187
 msgid "Available @code{virtualhost-configuration} fields are:"
 msgstr "Los campos disponibles de @code{virtualhost-configuration} son:"
 
 #. type: deftypevr
-#: doc/guix.texi:18499 doc/guix.texi:18521 doc/guix.texi:18574
+#: doc/guix.texi:21189 doc/guix.texi:21211 doc/guix.texi:21264
 msgid "all these @code{prosody-configuration} fields: @code{admins}, @code{use-libevent?}, @code{modules-enabled}, @code{modules-disabled}, @code{groups-file}, @code{allow-registration?}, @code{ssl}, @code{c2s-require-encryption?}, @code{disable-sasl-mechanisms}, @code{s2s-require-encryption?}, @code{s2s-secure-auth?}, @code{s2s-insecure-domains}, @code{s2s-secure-domains}, @code{authentication}, @code{log}, @code{http-max-content-size}, @code{http-external-url}, @code{raw-content}, plus:"
 msgstr "todos estos campos de @code{prosody-configuration}: @code{admins}, @code{use-libevent?}, @code{modules-enabled}, @code{modules-disabled}, @code{groups-file}, @code{allow-registration?}, @code{ssl}, @code{c2s-require-encryption?}, @code{disable-sasl-mechanisms}, @code{s2s-require-encryption?}, @code{s2s-secure-auth?}, @code{s2s-insecure-domains}, @code{s2s-secure-domains}, @code{authentication}, @code{log}, @code{http-max-content-size}, @code{http-external-url}, @code{raw-content}, además de:"
 
 #. type: deftypevr
-#: doc/guix.texi:18499
+#: doc/guix.texi:21189
 #, no-wrap
 msgid "{@code{virtualhost-configuration} parameter} string domain"
 msgstr "{parámetro de @code{virtualhost-configuration}} string domain"
 
 #. type: deftypevr
-#: doc/guix.texi:18501
+#: doc/guix.texi:21191
 msgid "Domain you wish Prosody to serve."
 msgstr "Dominio en el que desea que Prosody proporcione servicio."
 
 #. type: deftypevr
-#: doc/guix.texi:18505
+#: doc/guix.texi:21195
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} int-component-configuration-list int-components"
 msgstr "{parámetro de @code{prosody-configuration}} lista-int-component-configuration int-components"
 
 #. type: deftypevr
-#: doc/guix.texi:18510
+#: doc/guix.texi:21200
 msgid "Components are extra services on a server which are available to clients, usually on a subdomain of the main server (such as @samp{\"mycomponent.example.com\"}).  Example components might be chatroom servers, user directories, or gateways to other protocols."
 msgstr "Los componentes son servicios adicionales en un servidor que están disponibles a los clientes, habitualmente en un subdominio del servidor principal (como por ejemplo @samp{\"micomponente.example.com\"}). Algunos ejemplos de componentes pueden ser los servidores de salas de conversación, los directorios de usuarias o las pasarelas a otros protocolos."
 
 #. type: deftypevr
-#: doc/guix.texi:18514
+#: doc/guix.texi:21204
 msgid "Internal components are implemented with Prosody-specific plugins.  To add an internal component, you simply fill the hostname field, and the plugin you wish to use for the component."
 msgstr "Los componentes internos se implementan con módulos específicos de Prosody. Para añadir un componente interno, simplemente rellene el campo del nombre de máquina, y el módulo que desea usar para el componente."
 
 #. type: deftypevr
-#: doc/guix.texi:18517
+#: doc/guix.texi:21207
 msgid "See @url{https://prosody.im/doc/components}.  Defaults to @samp{()}."
 msgstr ""
 "Véase @url{https://prosody.im/doc/components}.\n"
 "Su valor predeterminado es @samp{()}."
 
 #. type: deftypevr
-#: doc/guix.texi:18519
+#: doc/guix.texi:21209
 msgid "Available @code{int-component-configuration} fields are:"
 msgstr "Los campos disponibles de @code{int-component-configuration} son:"
 
 #. type: deftypevr
-#: doc/guix.texi:18521
+#: doc/guix.texi:21211
 #, no-wrap
 msgid "{@code{int-component-configuration} parameter} string hostname"
 msgstr "{parámetro de @code{int-component-configuration}} string hostname"
 
 #. type: deftypevr
-#: doc/guix.texi:18523 doc/guix.texi:18580
+#: doc/guix.texi:21213 doc/guix.texi:21270
 msgid "Hostname of the component."
 msgstr "Nombre de máquina del componente."
 
 #. type: deftypevr
-#: doc/guix.texi:18525
+#: doc/guix.texi:21215
 #, no-wrap
 msgid "{@code{int-component-configuration} parameter} string plugin"
 msgstr "{parámetro de @code{int-component-configuration}} string plugin"
 
 #. type: deftypevr
-#: doc/guix.texi:18527
+#: doc/guix.texi:21217
 msgid "Plugin you wish to use for the component."
 msgstr "Módulo que desea usar para el componente."
 
 #. type: deftypevr
-#: doc/guix.texi:18529
+#: doc/guix.texi:21219
 #, no-wrap
 msgid "{@code{int-component-configuration} parameter} maybe-mod-muc-configuration mod-muc"
 msgstr "{parámetro de @code{int-component-configuration}} maybe-mod-muc-configuration mod-muc"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:18532
+#: doc/guix.texi:21222
 msgid "Multi-user chat (MUC) is Prosody's module for allowing you to create hosted chatrooms/conferences for XMPP users."
 msgstr "Multi-user chat (MUC) es el módulo de Prosody que permite la creación de salas de conversación/conferencias para usuarias XMPP. "
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:18536
-msgid "General information on setting up and using multi-user chatrooms can be found in the \"Chatrooms\" documentation (@url{https://prosody.im/doc/chatrooms}), which you should read if you are new to XMPP chatrooms."
-msgstr "Información general sobre la configuración y el uso de las salas de conversación multi-usuaria puede encontrarse en la documentación \"Chatrooms\" (@url{https://prosody.im/doc/chatrooms}), que debería leer si no conoce las salas de conversación de XMPP."
+#: doc/guix.texi:21226
+msgid "General information on setting up and using multi-user chatrooms can be found in the ``Chatrooms'' documentation (@url{https://prosody.im/doc/chatrooms}), which you should read if you are new to XMPP chatrooms."
+msgstr "Información general sobre la configuración y el uso de las salas de conversación multi-usuaria puede encontrarse en la documentación ``Chatrooms'' (@url{https://prosody.im/doc/chatrooms}), que debería leer si no conoce las salas de conversación de XMPP."
 
 #. type: deftypevr
-#: doc/guix.texi:18538
+#: doc/guix.texi:21228
 msgid "See also @url{https://prosody.im/doc/modules/mod_muc}."
 msgstr "Véase también @url{https://prosody.im/doc/modules/mod_muc}."
 
 #. type: deftypevr
-#: doc/guix.texi:18540
+#: doc/guix.texi:21230
 msgid "Available @code{mod-muc-configuration} fields are:"
 msgstr "Los campos disponibles de @code{mod-muc-configuration} son:"
 
 #. type: deftypevr
-#: doc/guix.texi:18541
+#: doc/guix.texi:21231
 #, no-wrap
 msgid "{@code{mod-muc-configuration} parameter} string name"
 msgstr "{parámetro de @code{mod-muc-configuration}} string name"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:18544
+#: doc/guix.texi:21234
 msgid "The name to return in service discovery responses.  Defaults to @samp{\"Prosody Chatrooms\"}."
 msgstr ""
 "El nombre devuelto en las respuestas de descubrimiento de servicios.\n"
 "Su valor predeterminado es @samp{\"Prosody Chatrooms\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:18546
+#: doc/guix.texi:21236
 #, no-wrap
 msgid "{@code{mod-muc-configuration} parameter} string-or-boolean restrict-room-creation"
 msgstr "{parámetro de @code{mod-muc-configuration}} string-o-boolean restrict-room-creation"
 
 #. type: deftypevr
-#: doc/guix.texi:18553
+#: doc/guix.texi:21243
 msgid "If @samp{#t}, this will only allow admins to create new chatrooms.  Otherwise anyone can create a room.  The value @samp{\"local\"} restricts room creation to users on the service's parent domain.  E.g.@: @samp{user@@example.com} can create rooms on @samp{rooms.example.com}.  The value @samp{\"admin\"} restricts to service administrators only.  Defaults to @samp{#f}."
 msgstr ""
 "Si es @samp{#t}, únicamente se permitirá a las administradoras la creación de nuevas salas de conversación. En otro caso cualquiera puede crear una sala. El valor @samp{\"local\"} restringe la creación a usuarias en el dominio superior del servicio. Por ejemplo @samp{usuaria@@example.com} puede crear grupos en @samp{rooms.example.com}. El valor @samp{\"admin\"} restringe el servicio a las administradoras únicamente.\n"
 "Su valor predeterminado es @samp{#f}."
 
 #. type: deftypevr
-#: doc/guix.texi:18555
+#: doc/guix.texi:21245
 #, no-wrap
 msgid "{@code{mod-muc-configuration} parameter} non-negative-integer max-history-messages"
 msgstr "{parámetro de @code{mod-muc-configuration}} entero-no-negativo max-history-messages"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:18559
+#: doc/guix.texi:21249
 msgid "Maximum number of history messages that will be sent to the member that has just joined the room.  Defaults to @samp{20}."
 msgstr ""
 "Número máximo de mensajes históricos que se enviarán a quien se acabe de unir a la sala.\n"
 "Su valor predeterminado es @samp{20}."
 
 #. type: deftypevr
-#: doc/guix.texi:18565
+#: doc/guix.texi:21255
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} ext-component-configuration-list ext-components"
 msgstr "{parámetro de @code{prosody-configuration}} lista-ext-component-configuration ext-components"
 
 # FUZZY FUZZY
 #. type: deftypevr
-#: doc/guix.texi:18570
+#: doc/guix.texi:21260
 msgid "External components use XEP-0114, which most standalone components support.  To add an external component, you simply fill the hostname field.  See @url{https://prosody.im/doc/components}.  Defaults to @samp{()}."
 msgstr ""
 "Los componentes externos usan XEP-0114, el cual se implementa en la mayor parte de componentes independientes. Para añadir un componente externo, simplemente rellene el campo de nombre de máquina (hostname). Véase @url{httos://prosody.im/doc/components}.\n"
 "Su valor predeterminado es @samp{()}."
 
 #. type: deftypevr
-#: doc/guix.texi:18572
+#: doc/guix.texi:21262
 msgid "Available @code{ext-component-configuration} fields are:"
 msgstr "Los campos disponibles de @code{ext-component-configuration} son:"
 
 #. type: deftypevr
-#: doc/guix.texi:18574
+#: doc/guix.texi:21264
 #, no-wrap
 msgid "{@code{ext-component-configuration} parameter} string component-secret"
 msgstr "{parámetro de @code{ext-component-configuration}} string component-secret"
 
 #. type: deftypevr
-#: doc/guix.texi:18576
+#: doc/guix.texi:21266
 msgid "Password which the component will use to log in."
 msgstr "Contraseña usada por el componente para el ingreso al sistema."
 
 #. type: deftypevr
-#: doc/guix.texi:18578
+#: doc/guix.texi:21268
 #, no-wrap
 msgid "{@code{ext-component-configuration} parameter} string hostname"
 msgstr "{parámetro de @code{ext-component-configuration}} string hostname"
 
 #. type: deftypevr
-#: doc/guix.texi:18584
+#: doc/guix.texi:21274
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} non-negative-integer-list component-ports"
 msgstr "{parámetro de @code{prosody-configuration}} lista-entero-no-negativo component-ports"
 
 #. type: deftypevr
-#: doc/guix.texi:18587
+#: doc/guix.texi:21277
 msgid "Port(s) Prosody listens on for component connections.  Defaults to @samp{(5347)}."
 msgstr ""
 "Puerto o puertos en los que prosody escucha conexiones de componentes.\n"
 "Su valor predeterminado es @samp{(5347)}."
 
 #. type: deftypevr
-#: doc/guix.texi:18589
+#: doc/guix.texi:21279
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} string component-interface"
 msgstr "{parámetro de @code{prosody-configuration}} string component-interface"
 
 #. type: deftypevr
-#: doc/guix.texi:18592
+#: doc/guix.texi:21282
 msgid "Interface Prosody listens on for component connections.  Defaults to @samp{\"127.0.0.1\"}."
 msgstr ""
 "Interfaz en la que Prosody escucha conexiones de componentes.\n"
@@ -36028,50 +40760,50 @@ msgstr ""
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:18594
+#: doc/guix.texi:21284
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} maybe-raw-content raw-content"
 msgstr "{parámetro de @code{prosody-configuration}} maybe-raw-content raw-content"
 
 #. type: deftypevr
-#: doc/guix.texi:18596
+#: doc/guix.texi:21286
 msgid "Raw content that will be added to the configuration file."
-msgstr "Contenido que se añadirá directamente al fichero de configuración."
+msgstr "Contenido que se añadirá directamente al archivo de configuración."
 
 #. type: Plain text
-#: doc/guix.texi:18604
+#: doc/guix.texi:21294
 msgid "It could be that you just want to get a @code{prosody.cfg.lua} up and running.  In that case, you can pass an @code{opaque-prosody-configuration} record as the value of @code{prosody-service-type}.  As its name indicates, an opaque configuration does not have easy reflective capabilities.  Available @code{opaque-prosody-configuration} fields are:"
-msgstr "Puede ser que únicamente desee usar un fichero @code{prosody.cfg.lua} ya creado. En ese caso, puede proporcionar un registro @code{opaque-prosody-configuration} como el valor de @code{prosody-service-type}. Como su nombre en inglés indica, una configuración opaca no tiene gran capacidad reflexiva. Los campos disponibles de @code{opaque-prosody-configuration} son:"
+msgstr "Puede ser que únicamente desee usar un archivo @code{prosody.cfg.lua} ya creado. En ese caso, puede proporcionar un registro @code{opaque-prosody-configuration} como el valor de @code{prosody-service-type}. Como su nombre en inglés indica, una configuración opaca no tiene gran capacidad reflexiva. Los campos disponibles de @code{opaque-prosody-configuration} son:"
 
 #. type: deftypevr
-#: doc/guix.texi:18605
+#: doc/guix.texi:21295
 #, no-wrap
 msgid "{@code{opaque-prosody-configuration} parameter} package prosody"
 msgstr "{parámetro de @code{opaque-prosody-configuration}} package prosody"
 
 #. type: deftypevr
-#: doc/guix.texi:18607
+#: doc/guix.texi:21297
 msgid "The prosody package."
 msgstr "El paquete prosody."
 
 #. type: deftypevr
-#: doc/guix.texi:18609
+#: doc/guix.texi:21299
 #, no-wrap
 msgid "{@code{opaque-prosody-configuration} parameter} string prosody.cfg.lua"
 msgstr "{parámetro de @code{opaque-prosody-configuration}} string prosody.cfg.lua"
 
 #. type: deftypevr
-#: doc/guix.texi:18611
+#: doc/guix.texi:21301
 msgid "The contents of the @code{prosody.cfg.lua} to use."
 msgstr "El contenido usado para @code{prosody.cfg.lua}."
 
 #. type: Plain text
-#: doc/guix.texi:18615
+#: doc/guix.texi:21305
 msgid "For example, if your @code{prosody.cfg.lua} is just the empty string, you could instantiate a prosody service like this:"
 msgstr "Por ejemplo, si su @code{prosody.cfg.lua} es simplemente la cadena vacía, podría instanciar el servicio de Prosody de esta manera:"
 
 #. type: lisp
-#: doc/guix.texi:18620
+#: doc/guix.texi:21310
 #, no-wrap
 msgid ""
 "(service prosody-service-type\n"
@@ -36083,218 +40815,212 @@ msgstr ""
 "          (prosody.cfg.lua \"\")))\n"
 
 #. type: subsubheading
-#: doc/guix.texi:18624
+#: doc/guix.texi:21314
 #, no-wrap
 msgid "BitlBee Service"
 msgstr "Servicio BitlBee"
 
 #. type: cindex
-#: doc/guix.texi:18626 doc/guix.texi:18670
+#: doc/guix.texi:21316 doc/guix.texi:21360
 #, no-wrap
 msgid "IRC (Internet Relay Chat)"
 msgstr "IRC (Internet Relay Chat)"
 
 #. type: cindex
-#: doc/guix.texi:18627
+#: doc/guix.texi:21317
 #, no-wrap
 msgid "IRC gateway"
 msgstr "pasarela IRC"
 
 #. type: Plain text
-#: doc/guix.texi:18630
+#: doc/guix.texi:21320
 msgid "@url{https://bitlbee.org,BitlBee} is a gateway that provides an IRC interface to a variety of messaging protocols such as XMPP."
 msgstr "@url{https://bitlbee.org,BitlBee} es una pasarela que proporciona una interfaz IRC a una variedad de protocolos como XMPP."
 
 #. type: defvr
-#: doc/guix.texi:18631
+#: doc/guix.texi:21321
 #, no-wrap
 msgid "{Scheme Variable} bitlbee-service-type"
 msgstr "{Variable Scheme} bitlbee-service-type"
 
 #. type: defvr
-#: doc/guix.texi:18635
+#: doc/guix.texi:21325
 msgid "This is the service type for the @url{https://bitlbee.org,BitlBee} IRC gateway daemon.  Its value is a @code{bitlbee-configuration} (see below)."
 msgstr "Este es el tipo de servicio para el daemon de pasarela IRC @url{https://bitlbee.org,BitlBee}.  Su valor es un @code{bitlbee-configuration} (véase a continuación)."
 
 #. type: defvr
-#: doc/guix.texi:18638
+#: doc/guix.texi:21328
 msgid "To have BitlBee listen on port 6667 on localhost, add this line to your services:"
 msgstr "Para que BitlBee escuche en el puerto 6667 de localhost, añada esta línea a sus servicios:"
 
 #. type: lisp
-#: doc/guix.texi:18641
+#: doc/guix.texi:21331
 #, no-wrap
 msgid "(service bitlbee-service-type)\n"
 msgstr "(service bitlbee-service-type)\n"
 
 #. type: deftp
-#: doc/guix.texi:18644
+#: doc/guix.texi:21334
 #, no-wrap
 msgid "{Data Type} bitlbee-configuration"
 msgstr "{Tipo de datos} bitlbee-configuration"
 
 #. type: deftp
-#: doc/guix.texi:18646
+#: doc/guix.texi:21336
 msgid "This is the configuration for BitlBee, with the following fields:"
 msgstr "Esta es la configuración para BitlBee, con los siguientes campos:"
 
 #. type: item
-#: doc/guix.texi:18648
+#: doc/guix.texi:21338
 #, no-wrap
 msgid "@code{interface} (default: @code{\"127.0.0.1\"})"
 msgstr "@code{interface} (predeterminada: @code{\"127.0.0.1\"})"
 
 #. type: itemx
-#: doc/guix.texi:18649
+#: doc/guix.texi:21339
 #, no-wrap
 msgid "@code{port} (default: @code{6667})"
 msgstr "@code{port} (predeterminado: @code{6667})"
 
 #. type: table
-#: doc/guix.texi:18652
+#: doc/guix.texi:21342
 msgid "Listen on the network interface corresponding to the IP address specified in @var{interface}, on @var{port}."
 msgstr "Escucha en la interfaz de red correspondiente a la dirección IP especificada en @var{interface}, en el puerto @var{port}."
 
 #. type: table
-#: doc/guix.texi:18656
+#: doc/guix.texi:21346
 msgid "When @var{interface} is @code{127.0.0.1}, only local clients can connect; when it is @code{0.0.0.0}, connections can come from any networking interface."
 msgstr "Cuando @var{interface} es @code{127.0.0.1}, únicamente se permite la conexión de clientes locales; cuando es @code{0.0.0.0}, las conexiones pueden venir de cualquier interfaz de red."
 
 #. type: item
-#: doc/guix.texi:18657
+#: doc/guix.texi:21347
 #, no-wrap
 msgid "@code{bitlbee} (default: @code{bitlbee})"
 msgstr "@code{bitlbee} (predeterminado: @code{bitlbee})"
 
 #. type: table
-#: doc/guix.texi:18659
+#: doc/guix.texi:21349
 msgid "The BitlBee package to use."
 msgstr "El paquete BitlBee usado."
 
 #. type: item
-#: doc/guix.texi:18660
+#: doc/guix.texi:21350
 #, no-wrap
 msgid "@code{plugins} (default: @code{'()})"
 msgstr "@code{plugins} (predeterminados: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:18662
+#: doc/guix.texi:21352
 msgid "List of plugin packages to use---e.g., @code{bitlbee-discord}."
 msgstr "Lista de paquetes de módulos usados---por ejemplo, @code{bitlbee-discord}."
 
-#. type: item
-#: doc/guix.texi:18663 doc/guix.texi:20686
-#, no-wrap
-msgid "@code{extra-settings} (default: @code{\"\"})"
-msgstr "@code{extra-settings} (predeterminado: @code{\"\"})"
-
 #. type: table
-#: doc/guix.texi:18665
+#: doc/guix.texi:21355
 msgid "Configuration snippet added as-is to the BitlBee configuration file."
-msgstr "Fragmento de configuración añadido tal cual al fichero de configuración de BitlBee."
+msgstr "Fragmento de configuración añadido tal cual al archivo de configuración de BitlBee."
 
 #. type: subsubheading
-#: doc/guix.texi:18668
+#: doc/guix.texi:21358
 #, no-wrap
 msgid "Quassel Service"
 msgstr "Servicio Quassel"
 
 #. type: Plain text
-#: doc/guix.texi:18674
+#: doc/guix.texi:21364
 msgid "@url{https://quassel-irc.org/,Quassel} is a distributed IRC client, meaning that one or more clients can attach to and detach from the central core."
 msgstr "@url{https://quassel-irc.org/,Quassel} es un cliente IRC distribuido, lo que significa que uno o más clientes se pueden conectar y desconectar del núcleo central."
 
 #. type: defvr
-#: doc/guix.texi:18675
+#: doc/guix.texi:21365
 #, no-wrap
 msgid "{Scheme Variable} quassel-service-type"
 msgstr "{Variable Scheme} quassel-service-type"
 
 #. type: defvr
-#: doc/guix.texi:18679
+#: doc/guix.texi:21369
 msgid "This is the service type for the @url{https://quassel-irc.org/,Quassel} IRC backend daemon.  Its value is a @code{quassel-configuration} (see below)."
 msgstr "Es el tipo de servicio del daemon del motor IRC de @url{https://quassel-irc.org/,Quassel}.  Su valor es un @code{quassel-configuration} (véase a continuación)."
 
 #. type: deftp
-#: doc/guix.texi:18681
+#: doc/guix.texi:21371
 #, no-wrap
 msgid "{Data Type} quassel-configuration"
 msgstr "{Tipo de datos} quassel-configuration"
 
 #. type: deftp
-#: doc/guix.texi:18683
+#: doc/guix.texi:21373
 msgid "This is the configuration for Quassel, with the following fields:"
 msgstr "Es la configuración para Quassel, con los siguientes campos:"
 
 #. type: item
-#: doc/guix.texi:18685
+#: doc/guix.texi:21375
 #, no-wrap
 msgid "@code{quassel} (default: @code{quassel})"
 msgstr "@code{quassel} (predeterminado: @code{quassel})"
 
 #. type: table
-#: doc/guix.texi:18687
+#: doc/guix.texi:21377
 msgid "The Quassel package to use."
 msgstr "El paquete Quassel usado."
 
 #. type: item
-#: doc/guix.texi:18688
+#: doc/guix.texi:21378
 #, no-wrap
 msgid "@code{interface} (default: @code{\"::,0.0.0.0\"})"
 msgstr "@code{interface} (predeterminada: @code{\"::,0.0.0.0\"})"
 
 #. type: item
-#: doc/guix.texi:18689
+#: doc/guix.texi:21379
 #, no-wrap
 msgid "@code{port} (default: @code{4242})"
 msgstr "@code{port} (predeterminado: @code{4242})"
 
 #. type: table
-#: doc/guix.texi:18693
+#: doc/guix.texi:21383
 msgid "Listen on the network interface(s) corresponding to the IPv4 or IPv6 interfaces specified in the comma delimited @var{interface}, on @var{port}."
 msgstr "Escucha en la o las interfaces de red que correspondan con las direcciones IPv4 o IPv6 delimitadas por comas especificadas en @var{interface}, en el puerto @var{port}."
 
 #. type: item
-#: doc/guix.texi:18694
+#: doc/guix.texi:21384
 #, no-wrap
 msgid "@code{loglevel} (default: @code{\"Info\"})"
 msgstr "@code{loglevel} (predeterminado: @code{\"Info\"})"
 
 #. type: table
-#: doc/guix.texi:18697
+#: doc/guix.texi:21387
 msgid "The level of logging desired.  Accepted values are Debug, Info, Warning and Error."
 msgstr "El nivel de registro deseado. Los valores aceptados son Debug, Info, Warning y Error."
 
 #. type: cindex
-#: doc/guix.texi:18703
+#: doc/guix.texi:21393
 #, no-wrap
 msgid "Murmur (VoIP server)"
 msgstr "Murmur (servidor VoIP)"
 
 #. type: cindex
-#: doc/guix.texi:18704
+#: doc/guix.texi:21394
 #, no-wrap
 msgid "VoIP server"
 msgstr "servidor VoIP"
 
 #. type: Plain text
-#: doc/guix.texi:18708
+#: doc/guix.texi:21398
 msgid "This section describes how to set up and run a Murmur server.  Murmur is the server of the @uref{https://mumble.info, Mumble} voice-over-IP (VoIP) suite."
 msgstr "Esta sección describe como configurar y poner en marcha un servidor Murmur. Murmur es el servidor del paquete de voz-IP (VoIP) @uref{https://mumble.info, Muble}"
 
 #. type: deftp
-#: doc/guix.texi:18709
+#: doc/guix.texi:21399
 #, no-wrap
 msgid "{Data Type} murmur-configuration"
 msgstr "{Tipo de datos} murmur-configuration"
 
 #. type: deftp
-#: doc/guix.texi:18712
+#: doc/guix.texi:21402
 msgid "The service type for the Murmur server.  An example configuration can look like this:"
 msgstr "El tipo de servicio del servidor Murmur. Una ejemplo de configuración podría ser el siguiente:"
 
 #. type: lisp
-#: doc/guix.texi:18721
+#: doc/guix.texi:21411
 #, no-wrap
 msgid ""
 "(service murmur-service-type\n"
@@ -36314,180 +41040,180 @@ msgstr ""
 "          (ssl-key \"/etc/letsencrypt/live/mumble.example.com/privkey.pem\")))\n"
 
 #. type: deftp
-#: doc/guix.texi:18725
+#: doc/guix.texi:21415
 msgid "After reconfiguring your system, you can manually set the murmur @code{SuperUser} password with the command that is printed during the activation phase."
 msgstr "Tras reconfigurar su sistema, puede establecer manualmente la contraseña de @code{SuperUser} de Murmur con la orden que se imprime durante el proceso de activación."
 
 # FUZZY
 #. type: deftp
-#: doc/guix.texi:18734
+#: doc/guix.texi:21424
 msgid "It is recommended to register a normal Mumble user account and grant it admin or moderator rights.  You can use the @code{mumble} client to login as new normal user, register yourself, and log out.  For the next step login with the name @code{SuperUser} use the @code{SuperUser} password that you set previously, and grant your newly registered mumble user administrator or moderator rights and create some channels."
 msgstr "Se recomienda el registro de una cuenta de usuaria normal de Mumble y la concesión de permisos de administración o moderación. Puede usar el cliente @code{mumble} para ingresar como una nueva usuaria normal, registrarse usted misma, y salir del sistema. En el siguiente paso ingrese en el sistema con el nombre @code{SuperUser}, use la contraseña de @code{SuperUser} que fue establecida con anterioridad, y conceda los permisos de administración o moderación a su usuaria de nombre creada anteriormente y cree algunos canales."
 
 #. type: deftp
-#: doc/guix.texi:18736
+#: doc/guix.texi:21426
 msgid "Available @code{murmur-configuration} fields are:"
 msgstr "Los campos disponibles de @code{murmur-configuration} son:"
 
 #. type: item
-#: doc/guix.texi:18738
+#: doc/guix.texi:21428
 #, no-wrap
 msgid "@code{package} (default: @code{mumble})"
 msgstr "@code{package} (predeterminado: @code{mumble})"
 
 #. type: table
-#: doc/guix.texi:18740
+#: doc/guix.texi:21430
 msgid "Package that contains @code{bin/murmurd}."
 msgstr "Paquete que contiene @code{bin/murmurd}."
 
 #. type: item
-#: doc/guix.texi:18741
+#: doc/guix.texi:21431
 #, no-wrap
 msgid "@code{user} (default: @code{\"murmur\"})"
 msgstr "@code{user} (predeterminado: @code{\"murmur\"})"
 
 #. type: table
-#: doc/guix.texi:18743
+#: doc/guix.texi:21433
 msgid "User who will run the Murmur server."
 msgstr "Usuaria que ejecutará el servidor Murmur."
 
 #. type: item
-#: doc/guix.texi:18744
+#: doc/guix.texi:21434
 #, no-wrap
 msgid "@code{group} (default: @code{\"murmur\"})"
 msgstr "@code{group} (predeterminado: @code{\"murmur\"})"
 
 #. type: table
-#: doc/guix.texi:18746
+#: doc/guix.texi:21436
 msgid "Group of the user who will run the murmur server."
 msgstr "Grupo de la usuaria que ejecutará el servidor murmur."
 
 #. type: item
-#: doc/guix.texi:18747
+#: doc/guix.texi:21437
 #, no-wrap
 msgid "@code{port} (default: @code{64738})"
 msgstr "@code{port} (predeterminado: @code{64738})"
 
 #. type: table
-#: doc/guix.texi:18749
+#: doc/guix.texi:21439
 msgid "Port on which the server will listen."
 msgstr "Puerto en el que escucha el servidor."
 
 #. type: item
-#: doc/guix.texi:18750
+#: doc/guix.texi:21440
 #, no-wrap
 msgid "@code{welcome-text} (default: @code{\"\"})"
 msgstr "@code{welcome-text} (predeterminado: @code{\"\"})"
 
 #. type: table
-#: doc/guix.texi:18752
+#: doc/guix.texi:21442
 msgid "Welcome text sent to clients when they connect."
 msgstr "Mensaje de bienvenida enviado a clientes tras su conexión."
 
 #. type: item
-#: doc/guix.texi:18753
+#: doc/guix.texi:21443
 #, no-wrap
 msgid "@code{server-password} (default: @code{\"\"})"
 msgstr "@code{server-password} (predeterminada: @code{\"\"})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:18755
+#: doc/guix.texi:21445
 msgid "Password the clients have to enter in order to connect."
 msgstr "Contraseña que debe introducirse para poder conectarse."
 
 #. type: item
-#: doc/guix.texi:18756
+#: doc/guix.texi:21446
 #, no-wrap
 msgid "@code{max-users} (default: @code{100})"
 msgstr "@code{max-users} (predeterminados: @code{100})"
 
 #. type: table
-#: doc/guix.texi:18758
+#: doc/guix.texi:21448
 msgid "Maximum of users that can be connected to the server at once."
 msgstr "Número máximo de usuarias que pueden estar conectadas a la vez al servidor."
 
 #. type: item
-#: doc/guix.texi:18759
+#: doc/guix.texi:21449
 #, no-wrap
 msgid "@code{max-user-bandwidth} (default: @code{#f})"
 msgstr "@code{max-user-bandwidth} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:18761
+#: doc/guix.texi:21451
 msgid "Maximum voice traffic a user can send per second."
 msgstr "Tráfico de voz máximo que una usuaria puede mandar por segundo."
 
 #. type: item
-#: doc/guix.texi:18762
+#: doc/guix.texi:21452
 #, no-wrap
 msgid "@code{database-file} (default: @code{\"/var/lib/murmur/db.sqlite\"})"
 msgstr "@code{database-file} (predeterminado: @code{\"/var/lib/murmur/db.sqlite\"})"
 
 #. type: table
-#: doc/guix.texi:18765
+#: doc/guix.texi:21455
 msgid "File name of the sqlite database.  The service's user will become the owner of the directory."
-msgstr "Nombre de fichero de la base de datos sqlite. La usuaria del servicio se convertirá en propietaria del directorio."
+msgstr "Nombre de archivo de la base de datos sqlite. La usuaria del servicio se convertirá en propietaria del directorio."
 
 #. type: item
-#: doc/guix.texi:18766
+#: doc/guix.texi:21456
 #, no-wrap
 msgid "@code{log-file} (default: @code{\"/var/log/murmur/murmur.log\"})"
 msgstr "@code{log-file} (predeterminado: @code{\"/var/log/murmur/murmur.log\"})"
 
 #. type: table
-#: doc/guix.texi:18769
+#: doc/guix.texi:21459
 msgid "File name of the log file.  The service's user will become the owner of the directory."
-msgstr "Nombre de fichero del fichero de registro. La usuaria del servicio se convertirá en propietaria del directorio."
+msgstr "Nombre de archivo del archivo de registro. La usuaria del servicio se convertirá en propietaria del directorio."
 
 #. type: item
-#: doc/guix.texi:18770
+#: doc/guix.texi:21460
 #, no-wrap
 msgid "@code{autoban-attempts} (default: @code{10})"
 msgstr "@code{autoban-attempts} (predeterminados: @code{10})"
 
 #. type: table
-#: doc/guix.texi:18773
+#: doc/guix.texi:21463
 msgid "Maximum number of logins a user can make in @code{autoban-timeframe} without getting auto banned for @code{autoban-time}."
 msgstr "Número máximo de ingresos al sistema que una usuaria puede llevar a cabo en @code{autoban-timeframe} sin bloquearse su acceso durante @code{autoban-time}."
 
 #. type: item
-#: doc/guix.texi:18774
+#: doc/guix.texi:21464
 #, no-wrap
 msgid "@code{autoban-timeframe} (default: @code{120})"
 msgstr "@code{autoban-timeframe} (predeterminado: @code{120})"
 
 #. type: table
-#: doc/guix.texi:18776
+#: doc/guix.texi:21466
 msgid "Timeframe for autoban in seconds."
 msgstr "Marco de tiempo del bloqueo automático en segundos."
 
 #. type: item
-#: doc/guix.texi:18777
+#: doc/guix.texi:21467
 #, no-wrap
 msgid "@code{autoban-time} (default: @code{300})"
 msgstr "@code{autoban-time} (predeterminado: @code{300})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:18780
+#: doc/guix.texi:21470
 msgid "Amount of time in seconds for which a client gets banned when violating the autoban limits."
 msgstr "Duración en segundos del periodo que permanecerá bloqueado un cliente cuando viole los límites de bloqueo automático."
 
 #. type: item
-#: doc/guix.texi:18781
+#: doc/guix.texi:21471
 #, no-wrap
 msgid "@code{opus-threshold} (default: @code{100})"
 msgstr "@code{opus-threshold} (predeterminado: @code{100})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:18784
+#: doc/guix.texi:21474
 msgid "Percentage of clients that need to support opus before switching over to opus audio codec."
 msgstr "Porcentaje de clientes que tienen que permitir opus antes de cambiar al algoritmo de sonido opus."
 
 #. type: item
-#: doc/guix.texi:18785
+#: doc/guix.texi:21475
 #, no-wrap
 msgid "@code{channel-nesting-limit} (default: @code{10})"
 msgstr "@code{channel-nesting-limit} (predeterminado: @code{10})"
@@ -36495,335 +41221,329 @@ msgstr "@code{channel-nesting-limit} (predeterminado: @code{10})"
 # FUZZY
 # TODO (MAAV): No me sale la palabra...
 #. type: table
-#: doc/guix.texi:18787
+#: doc/guix.texi:21477
 msgid "How deep channels can be nested at maximum."
 msgstr "Cual puede ser el nivel de recursión de los canales."
 
 #. type: item
-#: doc/guix.texi:18788
+#: doc/guix.texi:21478
 #, no-wrap
 msgid "@code{channelname-regex} (default: @code{#f})"
 msgstr "@code{channelname-regex} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:18790
+#: doc/guix.texi:21480
 msgid "A string in form of a Qt regular expression that channel names must conform to."
 msgstr "Una cadena en forma de expresión regular Qt que deben cumplir los nombres de canal."
 
 #. type: item
-#: doc/guix.texi:18791
+#: doc/guix.texi:21481
 #, no-wrap
 msgid "@code{username-regex} (default: @code{#f})"
 msgstr "@code{username-regex} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:18793
+#: doc/guix.texi:21483
 msgid "A string in form of a Qt regular expression that user names must conform to."
 msgstr "Una cadena en forma de expresión regular Qt que deben cumplir los nombres de usuaria."
 
 #. type: item
-#: doc/guix.texi:18794
+#: doc/guix.texi:21484
 #, no-wrap
 msgid "@code{text-message-length} (default: @code{5000})"
 msgstr "@code{text-message-length} (predeterminado: @code{5000})"
 
 #. type: table
-#: doc/guix.texi:18796
+#: doc/guix.texi:21486
 msgid "Maximum size in bytes that a user can send in one text chat message."
 msgstr "Número máximo de bytes que una usuaria puede enviar en un mensaje de texto."
 
 #. type: item
-#: doc/guix.texi:18797
+#: doc/guix.texi:21487
 #, no-wrap
 msgid "@code{image-message-length} (default: @code{(* 128 1024)})"
 msgstr "@code{image-message-length} (predeterminado: @code{(* 128 1024)})"
 
 #. type: table
-#: doc/guix.texi:18799
+#: doc/guix.texi:21489
 msgid "Maximum size in bytes that a user can send in one image message."
 msgstr "Número máximo de bytes que una usuaria puede enviar en un mensaje de imagen."
 
 #. type: item
-#: doc/guix.texi:18800
+#: doc/guix.texi:21490
 #, no-wrap
 msgid "@code{cert-required?} (default: @code{#f})"
 msgstr "@code{cert-required?} (predeterminado: @code{#f})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:18803
+#: doc/guix.texi:21493
 msgid "If it is set to @code{#t} clients that use weak password authentication will not be accepted. Users must have completed the certificate wizard to join."
 msgstr "Si su valor es @code{#t} no se aceptarán los clientes que usen identificación débil por contraseña. Las usuarias deben haber completado la herramienta de creación de certificado para unirse."
 
 #. type: item
-#: doc/guix.texi:18804
+#: doc/guix.texi:21494
 #, no-wrap
 msgid "@code{remember-channel?} (default: @code{#f})"
 msgstr "@code{remember-channel?} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:18807
+#: doc/guix.texi:21497
 msgid "Should murmur remember the last channel each user was in when they disconnected and put them into the remembered channel when they rejoin."
 msgstr "Si murmur debe recordar el último canal en el que estaba cada usuaria cuando se desconectó y debe colocarla en el canal recordado cuando vuelva a unirse."
 
 #. type: item
-#: doc/guix.texi:18808
+#: doc/guix.texi:21498
 #, no-wrap
 msgid "@code{allow-html?} (default: @code{#f})"
 msgstr "@code{allow-html?} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:18810
+#: doc/guix.texi:21500
 msgid "Should html be allowed in text messages, user comments, and channel descriptions."
 msgstr "Si se permite html en mensajes de texto, comentarios de usuaria y descripciones de canal."
 
 #. type: item
-#: doc/guix.texi:18811
+#: doc/guix.texi:21501
 #, no-wrap
 msgid "@code{allow-ping?} (default: @code{#f})"
 msgstr "@code{allow-ping?} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:18815
+#: doc/guix.texi:21505
 msgid "Setting to true exposes the current user count, the maximum user count, and the server's maximum bandwidth per client to unauthenticated users. In the Mumble client, this information is shown in the Connect dialog."
 msgstr "Proporcionar un valor verdadero expone el número de usuarias actual, el número máximo de usuarias y el ancho de banda máximo del servidor por cliente a usuarias sin identificación. En el cliente Muble, esta información se muestra en el diálogo Connect/Conexión."
 
 #. type: table
-#: doc/guix.texi:18817
+#: doc/guix.texi:21507
 msgid "Disabling this setting will prevent public listing of the server."
 msgstr "Desactivar esta opción impedirá la escucha pública en el servidor."
 
 #. type: item
-#: doc/guix.texi:18818
+#: doc/guix.texi:21508
 #, no-wrap
 msgid "@code{bonjour?} (default: @code{#f})"
 msgstr "@code{bonjour?} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:18820
+#: doc/guix.texi:21510
 msgid "Should the server advertise itself in the local network through the bonjour protocol."
 msgstr "Si el servidor debe anunciarse a sí mismo en la red local a través del protocolo ``bonjour''."
 
 #. type: item
-#: doc/guix.texi:18821
+#: doc/guix.texi:21511
 #, no-wrap
 msgid "@code{send-version?} (default: @code{#f})"
 msgstr "@code{send-version?} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:18823
+#: doc/guix.texi:21513
 msgid "Should the murmur server version be exposed in ping requests."
 msgstr "Si se debe exponer la versión del servidor murmur en las peticiones ping."
 
 #. type: item
-#: doc/guix.texi:18824
+#: doc/guix.texi:21514
 #, no-wrap
 msgid "@code{log-days} (default: @code{31})"
 msgstr "@code{log-days} (predeterminado: @code{31})"
 
 #. type: table
-#: doc/guix.texi:18828
+#: doc/guix.texi:21518
 msgid "Murmur also stores logs in the database, which are accessible via RPC.  The default is 31 days of months, but you can set this setting to 0 to keep logs forever, or -1 to disable logging to the database."
 msgstr "Murmur también almacena registros en la base de datos, los cuales son accesibles mediante RPC. El valor predeterminado es 31 días del mes, pero puede establecer esta configuración a 0 para mantener los registros para siempre, o -1 para desactivar el registro en la base de datos."
 
 #. type: item
-#: doc/guix.texi:18829
+#: doc/guix.texi:21519
 #, no-wrap
 msgid "@code{obfuscate-ips?} (default: @code{#t})"
 msgstr "@code{obfuscate-ips?} (predeterminado: @code{#t})"
 
 #. type: table
-#: doc/guix.texi:18831
+#: doc/guix.texi:21521
 msgid "Should logged ips be obfuscated to protect the privacy of users."
 msgstr "Si las IP registradas deben ofuscarse para proteger la privacidad de las usuarias."
 
 #. type: item
-#: doc/guix.texi:18832
+#: doc/guix.texi:21522
 #, no-wrap
 msgid "@code{ssl-cert} (default: @code{#f})"
 msgstr "@code{ssl-cert} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:18834
+#: doc/guix.texi:21524
 msgid "File name of the SSL/TLS certificate used for encrypted connections."
-msgstr "Nombre del fichero del certificado SSL/TLS usado para conexiones cifradas."
+msgstr "Nombre del archivo del certificado SSL/TLS usado para conexiones cifradas."
 
 #. type: lisp
-#: doc/guix.texi:18837
+#: doc/guix.texi:21527
 #, no-wrap
 msgid "(ssl-cert \"/etc/letsencrypt/live/example.com/fullchain.pem\")\n"
 msgstr "(ssl-cert \"/etc/letsencrypt/live/example.com/fullchain.pem\")\n"
 
 #. type: item
-#: doc/guix.texi:18838
+#: doc/guix.texi:21528
 #, no-wrap
 msgid "@code{ssl-key} (default: @code{#f})"
 msgstr "@code{ssl-key} (predeterminada: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:18840
+#: doc/guix.texi:21530
 msgid "Filepath to the ssl private key used for encrypted connections."
-msgstr "Ruta de fichero de la clave privada de ssl usada para las conexiones cifradas."
+msgstr "Ruta de archivo de la clave privada de ssl usada para las conexiones cifradas."
 
 #. type: lisp
-#: doc/guix.texi:18842
+#: doc/guix.texi:21532
 #, no-wrap
 msgid "(ssl-key \"/etc/letsencrypt/live/example.com/privkey.pem\")\n"
 msgstr "(ssl-key \"/etc/letsencrypt/live/example.com/privkey.pem\")\n"
 
 #. type: item
-#: doc/guix.texi:18844
+#: doc/guix.texi:21534
 #, no-wrap
 msgid "@code{ssl-dh-params} (default: @code{#f})"
 msgstr "@code{ssl-dh-params} (predeterminado: @code{#f})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:18849
+#: doc/guix.texi:21539
 msgid "File name of a PEM-encoded file with Diffie-Hellman parameters for the SSL/TLS encryption.  Alternatively you set it to @code{\"@@ffdhe2048\"}, @code{\"@@ffdhe3072\"}, @code{\"@@ffdhe4096\"}, @code{\"@@ffdhe6144\"} or @code{\"@@ffdhe8192\"} to use bundled parameters from RFC 7919."
-msgstr "Nombre del fichero codificado con PEM con parámetros Diffie-Hellman para el cifrado SSL/TLS. De manera alternativa puede establecer su valor a @code{\"@@ffdhe2048\"}, @code{\"@@ffdhe3072\"}, @code{\"@@ffdhe4096\"}, @code{\"@@ffdhe6144\"} o @code{\"@@ffdhe8192\"} para usar los parámetros contenidos en el RFC 7919."
+msgstr "Nombre del archivo codificado con PEM con parámetros Diffie-Hellman para el cifrado SSL/TLS. De manera alternativa puede establecer su valor a @code{\"@@ffdhe2048\"}, @code{\"@@ffdhe3072\"}, @code{\"@@ffdhe4096\"}, @code{\"@@ffdhe6144\"} o @code{\"@@ffdhe8192\"} para usar los parámetros contenidos en el RFC 7919."
 
 #. type: item
-#: doc/guix.texi:18850
+#: doc/guix.texi:21540
 #, no-wrap
 msgid "@code{ssl-ciphers} (default: @code{#f})"
 msgstr "@code{ssl-ciphers} (predeterminado: @code{#f})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:18853
+#: doc/guix.texi:21543
 msgid "The @code{ssl-ciphers} option chooses the cipher suites to make available for use in SSL/TLS."
 msgstr "La opción @code{ssl-ciphers} selecciona los protocolos de cifrado disponibles para su uso en SSL/TLS."
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:18857
+#: doc/guix.texi:21547
 msgid "This option is specified using @uref{https://www.openssl.org/docs/apps/ciphers.html#CIPHER-LIST-FORMAT, OpenSSL cipher list notation}."
 msgstr "Esta opción se especifica mediante el uso de la @uref{https://www.openssl.org/docs/apps/ciphers.html#CIPHER-LIST-FORMAT, notación de listas de prot. de cifrado de OpenSSL}."
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:18862
+#: doc/guix.texi:21552
 msgid "It is recommended that you try your cipher string using 'openssl ciphers <string>' before setting it here, to get a feel for which cipher suites you will get.  After setting this option, it is recommend that you inspect your Murmur log to ensure that Murmur is using the cipher suites that you expected it to."
 msgstr "Se recomienda que pruebe su cadena de protocolos con 'openssl ciphers <cadena>' antes de configurarla aquí, para que compruebe que protocolos obtendrá. Tras establecer el valor de esta opción se recomienda que inspeccione el registro de Murmur para asegurarse de que Murmur usa los protocolos que esperaba que usase."
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:18866
+#: doc/guix.texi:21556
 msgid "Note: Changing this option may impact the backwards compatibility of your Murmur server, and can remove the ability for older Mumble clients to be able to connect to it."
 msgstr "Fíjese: El cambio de esta opción puede impactar en la compatibilidad con versiones anteriores de su servidor Murmur, y puede eliminar la posibilidad de conexión desde clientes Mumble antiguos."
 
 #. type: item
-#: doc/guix.texi:18867
+#: doc/guix.texi:21557
 #, no-wrap
 msgid "@code{public-registration} (default: @code{#f})"
 msgstr "@code{public-registration} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:18869
+#: doc/guix.texi:21559
 msgid "Must be a @code{<murmur-public-registration-configuration>} record or @code{#f}."
 msgstr "Debe ser un registro @code{<murmur-public-registration-configuration>} o @code{#f}."
 
 #. type: table
-#: doc/guix.texi:18874
+#: doc/guix.texi:21564
 msgid "You can optionally register your server in the public server list that the @code{mumble} client shows on startup.  You cannot register your server if you have set a @code{server-password}, or set @code{allow-ping} to @code{#f}."
 msgstr "Puede registrar de manera opcional su servidor en la lista pública de servidores que el cliente @code{mumble} muestra al inicio. No puede registrar su servidor si tiene establecida una contraseña para el servidor (@code{server-password}), o establece @code{allow-ping} como @code{#f}."
 
 #. type: table
-#: doc/guix.texi:18876
+#: doc/guix.texi:21566
 msgid "It might take a few hours until it shows up in the public list."
 msgstr "Puede tomar algunas horas hasta que se muestre en la lista pública."
 
 #. type: item
-#: doc/guix.texi:18877 doc/guix.texi:20308
+#: doc/guix.texi:21567 doc/guix.texi:22999
 #, no-wrap
 msgid "@code{file} (default: @code{#f})"
 msgstr "@code{file} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:18879
+#: doc/guix.texi:21569
 msgid "Optional alternative override for this configuration."
 msgstr "Forma opcional alternativa de forzar el valor de esta configuración."
 
 #. type: deftp
-#: doc/guix.texi:18882
+#: doc/guix.texi:21572
 #, no-wrap
 msgid "{Data Type} murmur-public-registration-configuration"
 msgstr "{Tipo de datos} murmur-public-registration-configuration"
 
 #. type: deftp
-#: doc/guix.texi:18884
+#: doc/guix.texi:21574
 msgid "Configuration for public registration of a murmur service."
 msgstr "Configuración para registro público de un servicio de murmur."
 
 #. type: table
-#: doc/guix.texi:18888
+#: doc/guix.texi:21578
 msgid "This is a display name for your server. Not to be confused with the hostname."
 msgstr "Este es el nombre mostrado de su servidor. No debe confundirse con el nombre de máquina."
 
 #. type: itemx
-#: doc/guix.texi:18889 doc/guix.texi:26069
+#: doc/guix.texi:21579 doc/guix.texi:30111
 #, no-wrap
 msgid "password"
 msgstr "password"
 
 #. type: table
-#: doc/guix.texi:18892
+#: doc/guix.texi:21582
 msgid "A password to identify your registration.  Subsequent updates will need the same password. Don't lose your password."
 msgstr "Una contraseña para identificar su registro. Las actualizaciones siguientes necesitarán la misma contraseña. No pierda su contraseña."
 
-#. type: code{#1}
-#: doc/guix.texi:18893
-#, no-wrap
-msgid "url"
-msgstr "url"
-
 #. type: table
-#: doc/guix.texi:18896
+#: doc/guix.texi:21586
 msgid "This should be a @code{http://} or @code{https://} link to your web site."
 msgstr "Debe ser un enlace @code{http://} o @code{https://} a su página web."
 
 #. type: item
-#: doc/guix.texi:18897
+#: doc/guix.texi:21587
 #, no-wrap
 msgid "@code{hostname} (default: @code{#f})"
 msgstr "@code{hostname} (predeterminado: @code{#f})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:18900
+#: doc/guix.texi:21590
 msgid "By default your server will be listed by its IP address.  If it is set your server will be linked by this host name instead."
 msgstr "De manera predeterminada su servidor se enumerará por sus direcciones IP. Si se usa esta opción, en vez de eso se enlazará a través de este nombre de máquina."
 
 #. type: subsubheading
-#: doc/guix.texi:18908
+#: doc/guix.texi:21598
 #, no-wrap
 msgid "Tailon Service"
 msgstr "Servicio Tailon"
 
 #. type: Plain text
-#: doc/guix.texi:18912
+#: doc/guix.texi:21602
 msgid "@uref{https://tailon.readthedocs.io/, Tailon} is a web application for viewing and searching log files."
-msgstr "@uref{https://tailon.readthedocs.io/, Tailon} es una aplicación web para la visualización y búsqueda en ficheros de registro."
+msgstr "@uref{https://tailon.readthedocs.io/, Tailon} es una aplicación web para la visualización y búsqueda en archivos de registro."
 
 #. type: Plain text
-#: doc/guix.texi:18915
+#: doc/guix.texi:21605
 msgid "The following example will configure the service with default values.  By default, Tailon can be accessed on port 8080 (@code{http://localhost:8080})."
 msgstr "El ejemplo siguiente configura el servicio con los valores predeterminados. Por omisión, se puede acceder a Tailon en el puerto 8080 (@code{http://localhost:8080})."
 
 #. type: lisp
-#: doc/guix.texi:18918
+#: doc/guix.texi:21608
 #, no-wrap
 msgid "(service tailon-service-type)\n"
 msgstr "(service tailon-service-type)\n"
 
 #. type: Plain text
-#: doc/guix.texi:18922
+#: doc/guix.texi:21612
 msgid "The following example customises more of the Tailon configuration, adding @command{sed} to the list of allowed commands."
 msgstr "El ejemplo siguiente personaliza más la configuración de Tailon, añadiendo @command{sed} a la lista de órdenes permitidas."
 
 #. type: lisp
-#: doc/guix.texi:18929
+#: doc/guix.texi:21619
 #, no-wrap
 msgid ""
 "(service tailon-service-type\n"
@@ -36839,34 +41559,34 @@ msgstr ""
 "               (allowed-commands '(\"tail\" \"grep\" \"awk\" \"sed\"))))))\n"
 
 #. type: deftp
-#: doc/guix.texi:18932
+#: doc/guix.texi:21622
 #, no-wrap
 msgid "{Data Type} tailon-configuration"
 msgstr "{Tipo de datos} tailon-configuration"
 
 #. type: deftp
-#: doc/guix.texi:18935
+#: doc/guix.texi:21625
 msgid "Data type representing the configuration of Tailon.  This type has the following parameters:"
 msgstr "Tipo de datos que representa la configuración de Tailon. Este tipo tiene los siguientes parámetros:"
 
 #. type: item
-#: doc/guix.texi:18937
+#: doc/guix.texi:21627
 #, no-wrap
 msgid "@code{config-file} (default: @code{(tailon-configuration-file)})"
 msgstr "@code{config-file} (predeterminado: @code{(tailon-configuration-file)})"
 
 #. type: table
-#: doc/guix.texi:18941
+#: doc/guix.texi:21631
 msgid "The configuration file to use for Tailon. This can be set to a @dfn{tailon-configuration-file} record value, or any gexp (@pxref{G-Expressions})."
-msgstr "El fichero de configuración usado por Tailon. Su valor puede ser un registro @code{tailon-configuration-file} o cualquier expresión-G (@pxref{G-Expressions})."
+msgstr "El archivo de configuración usado por Tailon. Su valor puede ser un registro @code{tailon-configuration-file} o cualquier expresión-G (@pxref{G-Expressions})."
 
 #. type: table
-#: doc/guix.texi:18944
+#: doc/guix.texi:21634
 msgid "For example, to instead use a local file, the @code{local-file} function can be used:"
-msgstr "Por ejemplo, para usar un fichero local, se puede usar la función @code{local-file}:"
+msgstr "Por ejemplo, para usar un archivo local, se puede usar la función @code{local-file}:"
 
 #. type: lisp
-#: doc/guix.texi:18949
+#: doc/guix.texi:21639
 #, no-wrap
 msgid ""
 "(service tailon-service-type\n"
@@ -36878,74 +41598,74 @@ msgstr ""
 "           (config-file (local-file \"./mi-tailon.conf\"))))\n"
 
 #. type: item
-#: doc/guix.texi:18951
+#: doc/guix.texi:21641
 #, no-wrap
 msgid "@code{package} (default: @code{tailon})"
 msgstr "@code{package} (predeterminado: @code{tailon})"
 
 #. type: table
-#: doc/guix.texi:18953
+#: doc/guix.texi:21643
 msgid "The tailon package to use."
 msgstr "El paquete tailon usado."
 
 #. type: deftp
-#: doc/guix.texi:18957
+#: doc/guix.texi:21647
 #, no-wrap
 msgid "{Data Type} tailon-configuration-file"
 msgstr "{Tipo de datos} tailon-configuration-file"
 
 #. type: deftp
-#: doc/guix.texi:18960
+#: doc/guix.texi:21650
 msgid "Data type representing the configuration options for Tailon.  This type has the following parameters:"
 msgstr "Tipo de datos que representa las opciones de configuración de Tailon. Este tipo tiene los siguientes parámetros:"
 
 #. type: item
-#: doc/guix.texi:18962
+#: doc/guix.texi:21652
 #, no-wrap
 msgid "@code{files} (default: @code{(list \"/var/log\")})"
 msgstr "@code{files} (predeterminados: @code{(list \"/var/log\")})"
 
 #. type: table
-#: doc/guix.texi:18967
+#: doc/guix.texi:21657
 msgid "List of files to display. The list can include strings for a single file or directory, or a list, where the first item is the name of a subsection, and the remaining items are the files or directories in that subsection."
-msgstr "Lista de ficheros a mostrar. La lista puede incluir cadenas para un único fichero o directorio, o una lista, donde el primer elemento es el nombre de la subsección, y los elementos restantes son los ficheros o directorios de dicha subsección."
+msgstr "Lista de archivos a mostrar. La lista puede incluir cadenas para un único archivo o directorio, o una lista, donde el primer elemento es el nombre de la subsección, y los elementos restantes son los archivos o directorios de dicha subsección."
 
 #. type: item
-#: doc/guix.texi:18968
+#: doc/guix.texi:21658
 #, no-wrap
 msgid "@code{bind} (default: @code{\"localhost:8080\"})"
 msgstr "@code{bind} (predeterminado: @code{\"localhost:8080\"})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:18970
+#: doc/guix.texi:21660
 msgid "Address and port to which Tailon should bind on."
 msgstr "Dirección y puerto al que Tailon debe asociarse."
 
 #. type: item
-#: doc/guix.texi:18971
+#: doc/guix.texi:21661
 #, no-wrap
 msgid "@code{relative-root} (default: @code{#f})"
 msgstr "@code{relative-root} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:18973
+#: doc/guix.texi:21663
 msgid "URL path to use for Tailon, set to @code{#f} to not use a path."
 msgstr "Ruta URL usada por Tailon, use @code{#f} para no usar una ruta."
 
 #. type: item
-#: doc/guix.texi:18974
+#: doc/guix.texi:21664
 #, no-wrap
 msgid "@code{allow-transfers?} (default: @code{#t})"
 msgstr "@code{allow-transfers?} (predeterminado: @code{#t})"
 
 #. type: table
-#: doc/guix.texi:18976
+#: doc/guix.texi:21666
 msgid "Allow downloading the log files in the web interface."
-msgstr "Permite la descarga de ficheros de registro en la interfaz web."
+msgstr "Permite la descarga de archivos de registro en la interfaz web."
 
 #. type: item
-#: doc/guix.texi:18977
+#: doc/guix.texi:21667
 #, no-wrap
 msgid "@code{follow-names?} (default: @code{#t})"
 msgstr "@code{follow-names?} (predeterminado: @code{#t})"
@@ -36953,43 +41673,43 @@ msgstr "@code{follow-names?} (predeterminado: @code{#t})"
 # FUZZY
 #
 # TODO (MAAV): Tailing (igual que tailon) vienen de tail, pero en
-# castellano la cola del fichero puede tener todo tipo de significados
+# castellano la cola del archivo puede tener todo tipo de significados
 # dependiendo de la región... Lo dejo como lectura a falta de mejores
 # ideas.
 #. type: table
-#: doc/guix.texi:18979
+#: doc/guix.texi:21669
 msgid "Allow tailing of not-yet existent files."
-msgstr "Permite la lectura de ficheros todavía no existentes."
+msgstr "Permite la lectura de archivos todavía no existentes."
 
 #. type: item
-#: doc/guix.texi:18980
+#: doc/guix.texi:21670
 #, no-wrap
 msgid "@code{tail-lines} (default: @code{200})"
 msgstr "@code{tail-lines} (predeterminado: @code{200})"
 
 #. type: table
-#: doc/guix.texi:18982
+#: doc/guix.texi:21672
 msgid "Number of lines to read initially from each file."
-msgstr "Número de líneas a leer inicialmente de cada fichero."
+msgstr "Número de líneas a leer inicialmente de cada archivo."
 
 #. type: item
-#: doc/guix.texi:18983
+#: doc/guix.texi:21673
 #, no-wrap
 msgid "@code{allowed-commands} (default: @code{(list \"tail\" \"grep\" \"awk\")})"
 msgstr "@code{allowed-commands} (predeterminadas: @code{(list \"tail\" \"grep\" \"awk\")})"
 
 #. type: table
-#: doc/guix.texi:18985
+#: doc/guix.texi:21675
 msgid "Commands to allow running. By default, @code{sed} is disabled."
 msgstr "Órdenes cuya ejecución está permitida. Por defecto, @code{sed} está desactivado."
 
 #. type: table
-#: doc/guix.texi:18988
+#: doc/guix.texi:21678
 msgid "Set @code{debug?} to @code{#t} to show debug messages."
 msgstr "Proporcione el valor @code{#t} en @code{debug?} para mostrar mensajes de depuración."
 
 #. type: item
-#: doc/guix.texi:18989
+#: doc/guix.texi:21679
 #, no-wrap
 msgid "@code{wrap-lines} (default: @code{#t})"
 msgstr "@code{wrap-lines} (predeterminado: @code{#t})"
@@ -36998,34 +41718,34 @@ msgstr "@code{wrap-lines} (predeterminado: @code{#t})"
 #
 # TODO (MAAV): Repensar traducción de wrap
 #. type: table
-#: doc/guix.texi:18993
+#: doc/guix.texi:21683
 msgid "Initial line wrapping state in the web interface. Set to @code{#t} to initially wrap lines (the default), or to @code{#f} to initially not wrap lines."
 msgstr "Estado inicial del recorte de líneas en la interfaz web. El valor @code{#t} hace que las líneas se recorten inicialmente (comportamiento predeterminado), y el valor @code{#f} hace que no se recorten de manera inicial."
 
 #. type: item
-#: doc/guix.texi:18994
+#: doc/guix.texi:21684
 #, no-wrap
 msgid "@code{http-auth} (default: @code{#f})"
 msgstr "@code{http-auth} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:18998
+#: doc/guix.texi:21688
 msgid "HTTP authentication type to use. Set to @code{#f} to disable authentication (the default). Supported values are @code{\"digest\"} or @code{\"basic\"}."
 msgstr "Identificación de HTTP usada. Use @code{#f} para no permitir la identificación (el valor predeterminado). Los valores permitidos son @code{\"digest\"} o @code{\"basic\"}."
 
 #. type: item
-#: doc/guix.texi:18999
+#: doc/guix.texi:21689
 #, no-wrap
 msgid "@code{users} (default: @code{#f})"
 msgstr "@code{users} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:19004
+#: doc/guix.texi:21694
 msgid "If HTTP authentication is enabled (see @code{http-auth}), access will be restricted to the credentials provided here. To configure users, use a list of pairs, where the first element of the pair is the username, and the 2nd element of the pair is the password."
 msgstr "Si la identificación de HTTP está activa (véase @code{http-auth}), el acceso se restringirá a las credenciales proporcionadas aquí. Para configurar usuarias, use una lista de pares, donde el primer elemento del par es el nombre de la usuaria, y el segundo elemento del par es la contraseña."
 
 #. type: lisp
-#: doc/guix.texi:19010
+#: doc/guix.texi:21700
 #, no-wrap
 msgid ""
 "(tailon-configuration-file\n"
@@ -37039,36 +41759,36 @@ msgstr ""
 "               (\"usuaria2\" . \"contraseña2\"))))\n"
 
 #. type: subsubheading
-#: doc/guix.texi:19016
+#: doc/guix.texi:21706
 #, no-wrap
 msgid "Darkstat Service"
 msgstr "Servicio Darkstat"
 
 #. type: cindex
-#: doc/guix.texi:19017
+#: doc/guix.texi:21707
 #, no-wrap
 msgid "darkstat"
 msgstr "darkstat"
 
 # FUZZY
 #. type: Plain text
-#: doc/guix.texi:19020
+#: doc/guix.texi:21710
 msgid "Darkstat is a packet sniffer that captures network traffic, calculates statistics about usage, and serves reports over HTTP."
 msgstr "Darkstat es un programa de interceptación de paquetes que captura el tráfico de la red, calcula estadísticas sobre su uso y proporciona informes a través de HTTP."
 
 #. type: defvar
-#: doc/guix.texi:19021
+#: doc/guix.texi:21711
 #, no-wrap
 msgid "{Scheme Variable} darkstat-service-type"
 msgstr "{Variable Scheme} darkstat-service-type"
 
 #. type: defvar
-#: doc/guix.texi:19026
+#: doc/guix.texi:21716
 msgid "This is the service type for the @uref{https://unix4lyfe.org/darkstat/, darkstat} service, its value must be a @code{darkstat-configuration} record as in this example:"
 msgstr "Este es el tipo de servicio del servicio @uref{https://unix4lyfe.org/darkstat/, darkstat}, su valor debe ser un registro @code{darkstat-configuration} como en este ejemplo:"
 
 #. type: lisp
-#: doc/guix.texi:19031
+#: doc/guix.texi:21721
 #, no-wrap
 msgid ""
 "(service darkstat-service-type\n"
@@ -37080,103 +41800,103 @@ msgstr ""
 "           (interface \"eno1\")))\n"
 
 #. type: deftp
-#: doc/guix.texi:19034
+#: doc/guix.texi:21724
 #, no-wrap
 msgid "{Data Type} darkstat-configuration"
 msgstr "{Tipo de datos} darkstat-configuration"
 
 #. type: deftp
-#: doc/guix.texi:19036
+#: doc/guix.texi:21726
 msgid "Data type representing the configuration of @command{darkstat}."
 msgstr "Tipo de datos que representa la configuración de @command{darkstat}."
 
 #. type: item
-#: doc/guix.texi:19038
+#: doc/guix.texi:21728
 #, no-wrap
 msgid "@code{package} (default: @code{darkstat})"
 msgstr "@code{package} (predeterminado: @code{darkstat})"
 
 #. type: table
-#: doc/guix.texi:19040
+#: doc/guix.texi:21730
 msgid "The darkstat package to use."
 msgstr "El paquete darkstat usado."
 
 #. type: code{#1}
-#: doc/guix.texi:19041
+#: doc/guix.texi:21731
 #, no-wrap
 msgid "interface"
 msgstr "interface"
 
 #. type: table
-#: doc/guix.texi:19043
+#: doc/guix.texi:21733
 msgid "Capture traffic on the specified network interface."
 msgstr "Captura el tráfico en la interfaz de red especificada."
 
 #. type: item
-#: doc/guix.texi:19044
+#: doc/guix.texi:21734
 #, no-wrap
 msgid "@code{port} (default: @code{\"667\"})"
 msgstr "@code{port} (predeterminado: @code{\"667\"})"
 
 #. type: table
-#: doc/guix.texi:19046
+#: doc/guix.texi:21736
 msgid "Bind the web interface to the specified port."
 msgstr "Asocia la interfaz web al puerto especificado."
 
 #. type: item
-#: doc/guix.texi:19047
+#: doc/guix.texi:21737
 #, no-wrap
 msgid "@code{bind-address} (default: @code{\"127.0.0.1\"})"
 msgstr "@code{bind-address} (predeterminada: @code{\"127.0.0.1\"})"
 
 #. type: table
-#: doc/guix.texi:19049 doc/guix.texi:19087
+#: doc/guix.texi:21739 doc/guix.texi:21777
 msgid "Bind the web interface to the specified address."
 msgstr "Asocia la interfaz web a la dirección especificada."
 
 #. type: item
-#: doc/guix.texi:19050
+#: doc/guix.texi:21740
 #, no-wrap
 msgid "@code{base} (default: @code{\"/\"})"
 msgstr "@code{base} (predeterminada: @code{\"/\"})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:19053
+#: doc/guix.texi:21743
 msgid "Specify the path of the base URL.  This can be useful if @command{darkstat} is accessed via a reverse proxy."
 msgstr "Especifica la ruta de la URL base. Puede ser util si @command{darkstat} se accede a través de un proxy inverso."
 
 # FUZZY
 #. type: subsubheading
-#: doc/guix.texi:19057
+#: doc/guix.texi:21747
 #, no-wrap
 msgid "Prometheus Node Exporter Service"
 msgstr "Servicio del exportador de nodos Prometheus"
 
 #. type: cindex
-#: doc/guix.texi:19059
+#: doc/guix.texi:21749
 #, no-wrap
 msgid "prometheus-node-exporter"
 msgstr "prometheus-node-exporter"
 
 #. type: Plain text
-#: doc/guix.texi:19064
+#: doc/guix.texi:21754
 msgid "The Prometheus ``node exporter'' makes hardware and operating system statistics provided by the Linux kernel available for the Prometheus monitoring system.  This service should be deployed on all physical nodes and virtual machines, where monitoring these statistics is desirable."
 msgstr "El ``exportador de nodos'' Prometheus pone a disposición del sistema de monitorización Prometheus las estadísticas de hardware y el sistema operativo proporcionadas por el núcleo Linux. Este servicio debe desplegarse en todos los nodos físicos y máquinas virtuales, donde la monitorización de estas estadísticas sea deseable."
 
 #. type: defvar
-#: doc/guix.texi:19065
+#: doc/guix.texi:21755
 #, no-wrap
 msgid "{Scheme variable} prometheus-node-exporter-service-type"
 msgstr "{Variable Scheme} prometheus-node-exporter-service-type"
 
 #. type: defvar
-#: doc/guix.texi:19070
+#: doc/guix.texi:21760
 msgid "This is the service type for the @uref{https://github.com/prometheus/node_exporter/, prometheus-node-exporter} service, its value must be a @code{prometheus-node-exporter-configuration} record as in this example:"
 msgstr "Este es el tipo de servicio del servicio @uref{https://github.com/prometheus/node_exporter/, prometheus-node-exporter}, su valor debe ser un registro @code{prometheus-node-exporter-configuration} como en este ejemplo:"
 
 #. type: lisp
-#: doc/guix.texi:19075
+#: doc/guix.texi:21765
 #, no-wrap
 msgid ""
 "(service prometheus-node-exporter-service-type\n"
@@ -37188,612 +41908,612 @@ msgstr ""
 "           (web-listen-address \":9100\")))\n"
 
 #. type: deftp
-#: doc/guix.texi:19078
+#: doc/guix.texi:21768
 #, no-wrap
 msgid "{Data Type} prometheus-node-exporter-configuration"
 msgstr "{Tipo de datos} prometheus-node-exporter-configuration"
 
 #. type: deftp
-#: doc/guix.texi:19080
+#: doc/guix.texi:21770
 msgid "Data type representing the configuration of @command{node_exporter}."
 msgstr "Tipo de datos que representa la configuración de @command{node_exporter}."
 
 #. type: item
-#: doc/guix.texi:19082
+#: doc/guix.texi:21772
 #, no-wrap
 msgid "@code{package} (default: @code{go-github-com-prometheus-node-exporter})"
 msgstr "@code{package} (predeterminado: @code{go-github-com-prometheus-node-exporter})"
 
 #. type: table
-#: doc/guix.texi:19084
+#: doc/guix.texi:21774
 msgid "The prometheus-node-exporter package to use."
 msgstr "El paquete prometheus-node-exporter usado."
 
 #. type: item
-#: doc/guix.texi:19085
+#: doc/guix.texi:21775
 #, no-wrap
 msgid "@code{web-listen-address} (default: @code{\":9100\"})"
 msgstr "@code{web-listen-address} (predeterminada: @code{\":9100\"})"
 
 #. type: subsubheading
-#: doc/guix.texi:19091
+#: doc/guix.texi:21781
 #, no-wrap
 msgid "Zabbix server"
 msgstr "Servidor Zabbix"
 
 #. type: cindex
-#: doc/guix.texi:19092
+#: doc/guix.texi:21782
 #, no-wrap
 msgid "zabbix zabbix-server"
 msgstr "zabbix zabbix-server"
 
 #. type: Plain text
-#: doc/guix.texi:19095
+#: doc/guix.texi:21785
 msgid "Zabbix provides monitoring metrics, among others network utilization, CPU load and disk space consumption:"
 msgstr "Zabbix proporciona métricas de monitorización, entre otras el uso de red, la carga de la CPU y el consumo de espacio en disco:"
 
 #. type: item
-#: doc/guix.texi:19097
+#: doc/guix.texi:21787
 #, no-wrap
 msgid "High performance, high capacity (able to monitor hundreds of thousands of devices)."
 msgstr "Alto rendimiento, alta capacidad (capaz de monitorizar cientos de miles de dispositivos)."
 
 #. type: item
-#: doc/guix.texi:19098
+#: doc/guix.texi:21788
 #, no-wrap
 msgid "Auto-discovery of servers and network devices and interfaces."
 msgstr "Detección automática de servidores, dispositivos de red e interfaces."
 
 #. type: item
-#: doc/guix.texi:19099
+#: doc/guix.texi:21789
 #, no-wrap
 msgid "Low-level discovery, allows to automatically start monitoring new items, file systems or network interfaces among others."
-msgstr "Descubrimiento a bajo nivel, que permite el inicio automático de la monitorización de nuevos elementos, sistemas de ficheros o interfaces de red entre otros."
+msgstr "Descubrimiento a bajo nivel, que permite el inicio automático de la monitorización de nuevos elementos, sistemas de archivos o interfaces de red entre otros."
 
 #. type: item
-#: doc/guix.texi:19100
+#: doc/guix.texi:21790
 #, no-wrap
 msgid "Distributed monitoring with centralized web administration."
 msgstr "Monitorización distribuida con administración web centralizada."
 
 #. type: item
-#: doc/guix.texi:19101
+#: doc/guix.texi:21791
 #, no-wrap
 msgid "Native high performance agents."
 msgstr "Agentes nativos de alto rendimiento."
 
 #. type: item
-#: doc/guix.texi:19102
+#: doc/guix.texi:21792
 #, no-wrap
 msgid "SLA, and ITIL KPI metrics on reporting."
 msgstr "Métricas SLA y KPI ITIL en los informes."
 
 # FUZZY
 #. type: item
-#: doc/guix.texi:19103
+#: doc/guix.texi:21793
 #, no-wrap
 msgid "High-level (business) view of monitored resources through user-defined visual console screens and dashboards."
 msgstr "Visión de alto nivel (negocio) de los recursos monitorizados a través de pantallas de consola visual y paneles definidas por la usuaria."
 
 #. type: item
-#: doc/guix.texi:19104
+#: doc/guix.texi:21794
 #, no-wrap
 msgid "Remote command execution through Zabbix proxies."
 msgstr "Ejecución remota de ordenes a través de un proxy Zabbix."
 
 #. type: Plain text
-#: doc/guix.texi:19110
+#: doc/guix.texi:21800
 msgid "Available @code{zabbix-server-configuration} fields are:"
 msgstr "Los campos disponibles de @code{zabbix-server-configuration} son:"
 
 #. type: deftypevr
-#: doc/guix.texi:19111
+#: doc/guix.texi:21801
 #, no-wrap
 msgid "{@code{zabbix-server-configuration} parameter} package zabbix-server"
 msgstr "{parámetro de @code{zabbix-server-configuration}} package zabbix-server"
 
 #. type: deftypevr
-#: doc/guix.texi:19113
+#: doc/guix.texi:21803
 msgid "The zabbix-server package."
 msgstr "El paquete zabbix-server."
 
 #. type: deftypevr
-#: doc/guix.texi:19116
+#: doc/guix.texi:21806
 #, no-wrap
 msgid "{@code{zabbix-server-configuration} parameter} string user"
 msgstr "{parámetro de @code{zabbix-server-configuration}} string user"
 
 #. type: deftypevr
-#: doc/guix.texi:19118
+#: doc/guix.texi:21808
 msgid "User who will run the Zabbix server."
 msgstr "Usuaria que ejecutará el servidor Zabbix."
 
 #. type: deftypevr
-#: doc/guix.texi:19120 doc/guix.texi:19127 doc/guix.texi:19141
-#: doc/guix.texi:19148 doc/guix.texi:19249 doc/guix.texi:19256
-#: doc/guix.texi:19367 doc/guix.texi:19374
+#: doc/guix.texi:21810 doc/guix.texi:21817 doc/guix.texi:21831
+#: doc/guix.texi:21838 doc/guix.texi:21939 doc/guix.texi:21946
+#: doc/guix.texi:22057 doc/guix.texi:22064
 msgid "Defaults to @samp{\"zabbix\"}."
 msgstr "El valor predeterminado es @samp{\"zabbix\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:19123
+#: doc/guix.texi:21813
 #, no-wrap
 msgid "{@code{zabbix-server-configuration} parameter} group group"
 msgstr "{parámetro de @code{zabbix-server-configuration}} grupo group"
 
 #. type: deftypevr
-#: doc/guix.texi:19125
+#: doc/guix.texi:21815
 msgid "Group who will run the Zabbix server."
 msgstr "Grupo que ejecutará el servidor Zabbix."
 
 #. type: deftypevr
-#: doc/guix.texi:19130
+#: doc/guix.texi:21820
 #, no-wrap
 msgid "{@code{zabbix-server-configuration} parameter} string db-host"
 msgstr "{parámetro de @code{zabbix-server-configuration}} string db-host"
 
 #. type: deftypevr
-#: doc/guix.texi:19132 doc/guix.texi:19351
+#: doc/guix.texi:21822 doc/guix.texi:22041
 msgid "Database host name."
 msgstr "El nombre de máquina de la base de datos."
 
 #. type: deftypevr
-#: doc/guix.texi:19134
+#: doc/guix.texi:21824
 msgid "Defaults to @samp{\"127.0.0.1\"}."
 msgstr "El valor predeterminado es @samp{\"127.0.0.1\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:19137
+#: doc/guix.texi:21827
 #, no-wrap
 msgid "{@code{zabbix-server-configuration} parameter} string db-name"
 msgstr "{parámetro de @code{zabbix-server-configuration}} string db-name"
 
 #. type: deftypevr
-#: doc/guix.texi:19139 doc/guix.texi:19365
+#: doc/guix.texi:21829 doc/guix.texi:22055
 msgid "Database name."
 msgstr "Nombre de la base de datos."
 
 #. type: deftypevr
-#: doc/guix.texi:19144
+#: doc/guix.texi:21834
 #, no-wrap
 msgid "{@code{zabbix-server-configuration} parameter} string db-user"
 msgstr "{parámetro de @code{zabbix-server-configuration}} string db-user"
 
 #. type: deftypevr
-#: doc/guix.texi:19146 doc/guix.texi:19372
+#: doc/guix.texi:21836 doc/guix.texi:22062
 msgid "Database user."
 msgstr "Usuaria de la base de datos."
 
 #. type: deftypevr
-#: doc/guix.texi:19151
+#: doc/guix.texi:21841
 #, no-wrap
 msgid "{@code{zabbix-server-configuration} parameter} string db-password"
 msgstr "{parámetro de @code{zabbix-server-configuration}} string db-password"
 
 #. type: deftypevr
-#: doc/guix.texi:19154
+#: doc/guix.texi:21844
 msgid "Database password.  Please, use @code{include-files} with @code{DBPassword=SECRET} inside a specified file instead."
-msgstr "Contraseña de la base de datos. Por favor, en vez de esto use @code{include-files} con @code{DBPassword=SECRET} dentro de un fichero especificado."
+msgstr "Contraseña de la base de datos. Por favor, en vez de esto use @code{include-files} con @code{DBPassword=SECRET} dentro de un archivo especificado."
 
 #. type: deftypevr
-#: doc/guix.texi:19159
+#: doc/guix.texi:21849
 #, no-wrap
 msgid "{@code{zabbix-server-configuration} parameter} number db-port"
 msgstr "{parámetro de @code{zabbix-server-configuration}} number db-port"
 
 #. type: deftypevr
-#: doc/guix.texi:19161 doc/guix.texi:19358
+#: doc/guix.texi:21851 doc/guix.texi:22048
 msgid "Database port."
 msgstr "Puerto de la base de datos."
 
 #. type: deftypevr
-#: doc/guix.texi:19163 doc/guix.texi:19360
+#: doc/guix.texi:21853 doc/guix.texi:22050
 msgid "Defaults to @samp{5432}."
 msgstr "El valor predeterminado es @samp{5432}."
 
 #. type: deftypevr
-#: doc/guix.texi:19166
+#: doc/guix.texi:21856
 #, no-wrap
 msgid "{@code{zabbix-server-configuration} parameter} string log-type"
 msgstr "{parámetro de @code{zabbix-server-configuration}} string log-type"
 
 #. type: deftypevr
-#: doc/guix.texi:19168 doc/guix.texi:19269
+#: doc/guix.texi:21858 doc/guix.texi:21959
 msgid "Specifies where log messages are written to:"
 msgstr "Especifica donde se escriben los mensajes de registro:"
 
 #. type: itemize
-#: doc/guix.texi:19172 doc/guix.texi:19273
+#: doc/guix.texi:21862 doc/guix.texi:21963
 msgid "@code{system} - syslog."
 msgstr "@code{system} - syslog."
 
 #. type: itemize
-#: doc/guix.texi:19175 doc/guix.texi:19276
+#: doc/guix.texi:21865 doc/guix.texi:21966
 msgid "@code{file} - file specified with @code{log-file} parameter."
-msgstr "@code{file} - fichero especificado con el parámetro @code{log-file}."
+msgstr "@code{file} - archivo especificado con el parámetro @code{log-file}."
 
 #. type: itemize
-#: doc/guix.texi:19178 doc/guix.texi:19279
+#: doc/guix.texi:21868 doc/guix.texi:21969
 msgid "@code{console} - standard output."
 msgstr "@code{console} - salida estándar."
 
 #. type: deftypevr
-#: doc/guix.texi:19185
+#: doc/guix.texi:21875
 #, no-wrap
 msgid "{@code{zabbix-server-configuration} parameter} string log-file"
 msgstr "{parámetro de @code{zabbix-server-configuration}} string log-file"
 
 #. type: deftypevr
-#: doc/guix.texi:19187 doc/guix.texi:19288
+#: doc/guix.texi:21877 doc/guix.texi:21978
 msgid "Log file name for @code{log-type} @code{file} parameter."
-msgstr "Nombre del fichero de registro para el parámetro @code{file} de @code{log-type}."
+msgstr "Nombre del archivo de registro para el parámetro @code{file} de @code{log-type}."
 
 #. type: deftypevr
-#: doc/guix.texi:19189
+#: doc/guix.texi:21879
 msgid "Defaults to @samp{\"/var/log/zabbix/server.log\"}."
 msgstr "El valor predeterminado es @samp{\"/var/log/zabbix/server.log\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:19192
+#: doc/guix.texi:21882
 #, no-wrap
 msgid "{@code{zabbix-server-configuration} parameter} string pid-file"
 msgstr "{parámetro de @code{zabbix-server-configuration}} string pid-file"
 
 #. type: deftypevr
-#: doc/guix.texi:19194 doc/guix.texi:19295
+#: doc/guix.texi:21884 doc/guix.texi:21985
 msgid "Name of PID file."
-msgstr "Nombre del fichero de PID."
+msgstr "Nombre del archivo de PID."
 
 #. type: deftypevr
-#: doc/guix.texi:19196
+#: doc/guix.texi:21886
 msgid "Defaults to @samp{\"/var/run/zabbix/zabbix_server.pid\"}."
 msgstr "El valor predeterminado es @samp{\"/var/run/zabbix/zabbix_server.pid\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:19199
+#: doc/guix.texi:21889
 #, no-wrap
 msgid "{@code{zabbix-server-configuration} parameter} string ssl-ca-location"
 msgstr "{parámetro de @code{zabbix-server-configuration}} string ssl-ca-location"
 
 #. type: deftypevr
-#: doc/guix.texi:19202
+#: doc/guix.texi:21892
 msgid "The location of certificate authority (CA) files for SSL server certificate verification."
-msgstr "La localización de los ficheros de autoridades de certificación (CA) para la verificación de certificados SSL de los servidores."
+msgstr "La localización de los archivos de autoridades de certificación (CA) para la verificación de certificados SSL de los servidores."
 
 #. type: deftypevr
-#: doc/guix.texi:19204
+#: doc/guix.texi:21894
 msgid "Defaults to @samp{\"/etc/ssl/certs/ca-certificates.crt\"}."
 msgstr "El valor predeterminado es @samp{\"/etc/ssl/certs/ca-certificates.crt\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:19207
+#: doc/guix.texi:21897
 #, no-wrap
 msgid "{@code{zabbix-server-configuration} parameter} string ssl-cert-location"
 msgstr "{parámetro de @code{zabbix-server-configuration}} string ssl-cert-location"
 
 #. type: deftypevr
-#: doc/guix.texi:19209
+#: doc/guix.texi:21899
 msgid "Location of SSL client certificates."
 msgstr "Localización de los certificados SSL de los clientes."
 
 #. type: deftypevr
-#: doc/guix.texi:19211
+#: doc/guix.texi:21901
 msgid "Defaults to @samp{\"/etc/ssl/certs\"}."
 msgstr "El valor predeterminado es @samp{\"/etc/ssl/certs\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:19214
+#: doc/guix.texi:21904
 #, no-wrap
 msgid "{@code{zabbix-server-configuration} parameter} string extra-options"
 msgstr "{parámetro de @code{zabbix-server-configuration}} string extra-options"
 
 #. type: deftypevr
-#: doc/guix.texi:19216 doc/guix.texi:19320
+#: doc/guix.texi:21906 doc/guix.texi:22010
 msgid "Extra options will be appended to Zabbix server configuration file."
-msgstr "Opciones adicionales que se añadirán al final del fichero de configuración de Zabbix."
+msgstr "Opciones adicionales que se añadirán al final del archivo de configuración de Zabbix."
 
 #. type: deftypevr
-#: doc/guix.texi:19221
+#: doc/guix.texi:21911
 #, no-wrap
 msgid "{@code{zabbix-server-configuration} parameter} include-files include-files"
-msgstr "{parámetro de @code{zabbix-server-configuration}} ficheros-incluidos include-files"
+msgstr "{parámetro de @code{zabbix-server-configuration}} archivos-incluidos include-files"
 
 #. type: deftypevr
-#: doc/guix.texi:19224 doc/guix.texi:19328
+#: doc/guix.texi:21914 doc/guix.texi:22018
 msgid "You may include individual files or all files in a directory in the configuration file."
-msgstr "Puede incluir ficheros individuales o todos los ficheros en un directorio en el fichero de configuración."
+msgstr "Puede incluir archivos individuales o todos los archivos en un directorio en el archivo de configuración."
 
 #. type: subsubheading
-#: doc/guix.texi:19231
+#: doc/guix.texi:21921
 #, no-wrap
 msgid "Zabbix agent"
 msgstr "Agente Zabbix"
 
 #. type: cindex
-#: doc/guix.texi:19232
+#: doc/guix.texi:21922
 #, no-wrap
 msgid "zabbix zabbix-agent"
 msgstr "zabbix zabbix-agent"
 
 #. type: Plain text
-#: doc/guix.texi:19235
+#: doc/guix.texi:21925
 msgid "Zabbix agent gathers information for Zabbix server."
 msgstr "El agente Zabbix (zabbix-agent) obtiene información del servidor Zabbix."
 
 #. type: Plain text
-#: doc/guix.texi:19239
+#: doc/guix.texi:21929
 msgid "Available @code{zabbix-agent-configuration} fields are:"
 msgstr "Los campos disponibles de @code{zabbix-agent-configuration} son:"
 
 #. type: deftypevr
-#: doc/guix.texi:19240
+#: doc/guix.texi:21930
 #, no-wrap
 msgid "{@code{zabbix-agent-configuration} parameter} package zabbix-agent"
 msgstr "{parámetro de @code{zabbix-agent-configuration}} package zabbix-agent"
 
 #. type: deftypevr
-#: doc/guix.texi:19242
+#: doc/guix.texi:21932
 msgid "The zabbix-agent package."
 msgstr "El paquete zabbix-agent."
 
 #. type: deftypevr
-#: doc/guix.texi:19245
+#: doc/guix.texi:21935
 #, no-wrap
 msgid "{@code{zabbix-agent-configuration} parameter} string user"
 msgstr "{parámetro de @code{zabbix-agent-configuration}} string user"
 
 #. type: deftypevr
-#: doc/guix.texi:19247
+#: doc/guix.texi:21937
 msgid "User who will run the Zabbix agent."
 msgstr "Usuaria que ejecutará el agente Zabbix."
 
 #. type: deftypevr
-#: doc/guix.texi:19252
+#: doc/guix.texi:21942
 #, no-wrap
 msgid "{@code{zabbix-agent-configuration} parameter} group group"
 msgstr "{parámetro de @code{zabbix-agent-configuration}} grupo group"
 
 #. type: deftypevr
-#: doc/guix.texi:19254
+#: doc/guix.texi:21944
 msgid "Group who will run the Zabbix agent."
 msgstr "Grupo que ejecutará el agente Zabbix."
 
 #. type: deftypevr
-#: doc/guix.texi:19259
+#: doc/guix.texi:21949
 #, no-wrap
 msgid "{@code{zabbix-agent-configuration} parameter} string hostname"
 msgstr "{parámetro de @code{zabbix-agent-configuration}} string hostname"
 
 #. type: deftypevr
-#: doc/guix.texi:19262
+#: doc/guix.texi:21952
 msgid "Unique, case sensitive hostname which is required for active checks and must match hostname as configured on the server."
 msgstr "Nombre de máquina único y sensible a mayúsculas que es necesario para la comprobaciones activas y debe corresponder con el nombre de máquina configurado en el servidor."
 
 #. type: deftypevr
-#: doc/guix.texi:19264
+#: doc/guix.texi:21954
 msgid "Defaults to @samp{\"Zabbix server\"}."
 msgstr "El valor predeterminado es @samp{\"Zabbix server\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:19267
+#: doc/guix.texi:21957
 #, no-wrap
 msgid "{@code{zabbix-agent-configuration} parameter} string log-type"
 msgstr "{parámetro de @code{zabbix-agent-configuration}} string log-type"
 
 #. type: deftypevr
-#: doc/guix.texi:19286
+#: doc/guix.texi:21976
 #, no-wrap
 msgid "{@code{zabbix-agent-configuration} parameter} string log-file"
 msgstr "{parámetro de @code{zabbix-agent-configuration}} string log-file"
 
 #. type: deftypevr
-#: doc/guix.texi:19290
+#: doc/guix.texi:21980
 msgid "Defaults to @samp{\"/var/log/zabbix/agent.log\"}."
 msgstr "El valor predeterminado es @samp{\"/var/log/zabbix/agent.log\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:19293
+#: doc/guix.texi:21983
 #, no-wrap
 msgid "{@code{zabbix-agent-configuration} parameter} string pid-file"
 msgstr "{parámetro de @code{zabbix-agent-configuration}} string pid-file"
 
 #. type: deftypevr
-#: doc/guix.texi:19297
+#: doc/guix.texi:21987
 msgid "Defaults to @samp{\"/var/run/zabbix/zabbix_agent.pid\"}."
 msgstr "El valor predeterminado es @samp{\"/var/run/zabbix/zabbix_agent.pid\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:19300
+#: doc/guix.texi:21990
 #, no-wrap
 msgid "{@code{zabbix-agent-configuration} parameter} list server"
 msgstr "{parámetro de @code{zabbix-agent-configuration}} lista server"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:19304
+#: doc/guix.texi:21994
 msgid "List of IP addresses, optionally in CIDR notation, or hostnames of Zabbix servers and Zabbix proxies.  Incoming connections will be accepted only from the hosts listed here."
 msgstr "Lista de direcciones IP, opcionalmente en notación CIDR, o nombres de máquina de servidores y proxy Zabbix. Se aceptarán conexiones entrantes únicamente desde las máquinas proporcionadas aquí."
 
 #. type: deftypevr
-#: doc/guix.texi:19306 doc/guix.texi:19315
+#: doc/guix.texi:21996 doc/guix.texi:22005
 msgid "Defaults to @samp{(\"127.0.0.1\")}."
 msgstr "El valor predeterminado es @samp{\"127.0.0.1\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:19309
+#: doc/guix.texi:21999
 #, no-wrap
 msgid "{@code{zabbix-agent-configuration} parameter} list server-active"
 msgstr "{parámetro de @code{zabbix-agent-configuration}} lista server-active"
 
 #. type: deftypevr
-#: doc/guix.texi:19313
+#: doc/guix.texi:22003
 msgid "List of IP:port (or hostname:port) pairs of Zabbix servers and Zabbix proxies for active checks.  If port is not specified, default port is used.  If this parameter is not specified, active checks are disabled."
 msgstr "Lista de pares IP:puerto (o máquina:puerto) de servidores Zabbix y servidores Zabbix para las comprobaciones activas. Si no se especifica un puerto, se usa el puerto predeterminado. Si no se especifica este parámetro, las comprobaciones activas se desactivan."
 
 #. type: deftypevr
-#: doc/guix.texi:19318
+#: doc/guix.texi:22008
 #, no-wrap
 msgid "{@code{zabbix-agent-configuration} parameter} string extra-options"
 msgstr "{parámetro de @code{zabbix-agent-configuration}} string extra-options"
 
 #. type: deftypevr
-#: doc/guix.texi:19325
+#: doc/guix.texi:22015
 #, no-wrap
 msgid "{@code{zabbix-agent-configuration} parameter} include-files include-files"
-msgstr "{parámetro de @code{zabbix-agent-configuration}} ficheros-incluidos include-files"
+msgstr "{parámetro de @code{zabbix-agent-configuration}} archivos-incluidos include-files"
 
 #. type: subsubheading
-#: doc/guix.texi:19335
+#: doc/guix.texi:22025
 #, no-wrap
 msgid "Zabbix front-end"
 msgstr "Motor de visualización de Zabbix"
 
 #. type: cindex
-#: doc/guix.texi:19336
+#: doc/guix.texi:22026
 #, no-wrap
 msgid "zabbix zabbix-front-end"
 msgstr "zabbix zabbix-front-end"
 
 #. type: Plain text
-#: doc/guix.texi:19339
+#: doc/guix.texi:22029
 msgid "This service provides a WEB interface to Zabbix server."
 msgstr "Este servicio proporciona una interfaz Web al servidor Zabbix."
 
 #. type: Plain text
-#: doc/guix.texi:19343
+#: doc/guix.texi:22033
 msgid "Available @code{zabbix-front-end-configuration} fields are:"
 msgstr "Los campos disponibles de @code{zabbix-front-end-configuration} son:"
 
 #. type: deftypevr
-#: doc/guix.texi:19344
+#: doc/guix.texi:22034
 #, no-wrap
 msgid "{@code{zabbix-front-end-configuration} parameter} nginx-server-configuration-list nginx"
 msgstr "{parámetro de @code{zabbix-front-end-configuration}} lista-nginx-server-configuration nginx"
 
 #. type: deftypevr
-#: doc/guix.texi:19346 doc/guix.texi:24202
+#: doc/guix.texi:22036 doc/guix.texi:27895
 msgid "NGINX configuration."
 msgstr "Configuración de NGINX."
 
 #. type: deftypevr
-#: doc/guix.texi:19349
+#: doc/guix.texi:22039
 #, no-wrap
 msgid "{@code{zabbix-front-end-configuration} parameter} string db-host"
 msgstr "{parámetro de @code{zabbix-front-end-configuration}} string db-host"
 
 #. type: deftypevr
-#: doc/guix.texi:19356
+#: doc/guix.texi:22046
 #, no-wrap
 msgid "{@code{zabbix-front-end-configuration} parameter} number db-port"
 msgstr "{parámetro de @code{zabbix-front-end-configuration}} number db-port"
 
 #. type: deftypevr
-#: doc/guix.texi:19363
+#: doc/guix.texi:22053
 #, no-wrap
 msgid "{@code{zabbix-front-end-configuration} parameter} string db-name"
 msgstr "{parámetro de @code{zabbix-front-end-configuration}} string db-name"
 
 #. type: deftypevr
-#: doc/guix.texi:19370
+#: doc/guix.texi:22060
 #, no-wrap
 msgid "{@code{zabbix-front-end-configuration} parameter} string db-user"
 msgstr "{parámetro de @code{zabbix-front-end-configuration}} string db-user"
 
 #. type: deftypevr
-#: doc/guix.texi:19377
+#: doc/guix.texi:22067
 #, no-wrap
 msgid "{@code{zabbix-front-end-configuration} parameter} string db-password"
 msgstr "{parámetro de @code{zabbix-front-end-configuration}} string db-password"
 
 #. type: deftypevr
-#: doc/guix.texi:19379
+#: doc/guix.texi:22069
 msgid "Database password.  Please, use @code{db-secret-file} instead."
 msgstr "Contraseña de la base de datos. Por favor, en vez de esto use @code{db-secret-file}."
 
 #. type: deftypevr
-#: doc/guix.texi:19384
+#: doc/guix.texi:22074
 #, no-wrap
 msgid "{@code{zabbix-front-end-configuration} parameter} string db-secret-file"
 msgstr "{parámetro de @code{zabbix-front-end-configuration}} string db-secret-file"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:19388
+#: doc/guix.texi:22078
 msgid "Secret file which will be appended to @file{zabbix.conf.php} file.  This file contains credentials for use by Zabbix front-end.  You are expected to create it manually."
-msgstr "Fichero secreto que se añadirá al final del fichero @file{zabbix.conf.php}. Este fichero contiene las credenciales usadas por el motor de visualización de Zabbix. Se espera que usted lo cree manualmente."
+msgstr "Archivo secreto que se añadirá al final del archivo @file{zabbix.conf.php}. Este archivo contiene las credenciales usadas por el motor de visualización de Zabbix. Se espera que usted lo cree manualmente."
 
 #. type: deftypevr
-#: doc/guix.texi:19393
+#: doc/guix.texi:22083
 #, no-wrap
 msgid "{@code{zabbix-front-end-configuration} parameter} string zabbix-host"
 msgstr "{parámetro de @code{zabbix-front-end-configuration}} string zabbix-host"
 
 #. type: deftypevr
-#: doc/guix.texi:19395
+#: doc/guix.texi:22085
 msgid "Zabbix server hostname."
 msgstr "Nombre de máquina del servidor Zabbix."
 
 #. type: deftypevr
-#: doc/guix.texi:19400
+#: doc/guix.texi:22090
 #, no-wrap
 msgid "{@code{zabbix-front-end-configuration} parameter} number zabbix-port"
 msgstr "{parámetro de @code{zabbix-front-end-configuration}} number zabbix-port"
 
 #. type: deftypevr
-#: doc/guix.texi:19402
+#: doc/guix.texi:22092
 msgid "Zabbix server port."
 msgstr "Puerto del servidor Zabbix."
 
 #. type: deftypevr
-#: doc/guix.texi:19404
+#: doc/guix.texi:22094
 msgid "Defaults to @samp{10051}."
 msgstr "El valor predeterminado es @samp{10051}."
 
 #. type: cindex
-#: doc/guix.texi:19412
+#: doc/guix.texi:22102
 #, no-wrap
 msgid "Kerberos"
 msgstr "Kerberos"
 
 #. type: Plain text
-#: doc/guix.texi:19416
+#: doc/guix.texi:22106
 msgid "The @code{(gnu services kerberos)} module provides services relating to the authentication protocol @dfn{Kerberos}."
 msgstr "El módulo @code{(gnu services kerberos)} proporciona servicios relacionados con el protocolo de identificación @dfn{Kerberos}."
 
 #. type: subsubheading
-#: doc/guix.texi:19417
+#: doc/guix.texi:22107
 #, no-wrap
 msgid "Krb5 Service"
 msgstr "Servicio Krb5"
 
 #. type: Plain text
-#: doc/guix.texi:19424
+#: doc/guix.texi:22114
 msgid "Programs using a Kerberos client library normally expect a configuration file in @file{/etc/krb5.conf}.  This service generates such a file from a definition provided in the operating system declaration.  It does not cause any daemon to be started."
-msgstr "Los programas que usan una biblioteca cliente de Kerberos habitualmente esperan un fichero de configuración en la ruta @file{/etc/krb5.conf}. Este servicio genera dicho fichero desde una definición proporcionada en la declaración de sistema operativo. Esto no causa el inicio de ningún daemon."
+msgstr "Los programas que usan una biblioteca cliente de Kerberos habitualmente esperan un archivo de configuración en la ruta @file{/etc/krb5.conf}. Este servicio genera dicho archivo desde una definición proporcionada en la declaración de sistema operativo. Esto no causa el inicio de ningún daemon."
 
 #. type: Plain text
-#: doc/guix.texi:19428
+#: doc/guix.texi:22118
 msgid "No ``keytab'' files are provided by this service---you must explicitly create them.  This service is known to work with the MIT client library, @code{mit-krb5}.  Other implementations have not been tested."
-msgstr "Este servicio no crea ningún fichero ``keytab''---debe crearlos explícitamente usted. Se ha comprobado que este servicio funciona con la biblioteca de cliente @code{mit-krb5} del MIT. No se han probado otras implementaciones."
+msgstr "Este servicio no crea ningún archivo ``keytab''---debe crearlos explícitamente usted. Se ha comprobado que este servicio funciona con la biblioteca de cliente @code{mit-krb5} del MIT. No se han probado otras implementaciones."
 
 #. type: defvr
-#: doc/guix.texi:19429
+#: doc/guix.texi:22119
 #, no-wrap
 msgid "{Scheme Variable} krb5-service-type"
 msgstr "{Variable Scheme} krb5-service-type"
 
 #. type: defvr
-#: doc/guix.texi:19431
+#: doc/guix.texi:22121
 msgid "A service type for Kerberos 5 clients."
 msgstr "Un tipo de servicio para clientes Kerberos 5."
 
 #. type: Plain text
-#: doc/guix.texi:19435
+#: doc/guix.texi:22125
 msgid "Here is an example of its use:"
 msgstr "Este es un ejemplo de su uso:"
 
 #. type: lisp
-#: doc/guix.texi:19449
+#: doc/guix.texi:22139
 #, no-wrap
 msgid ""
 "(service krb5-service-type\n"
@@ -37825,57 +42545,57 @@ msgstr ""
 "                    (kdc \"keys.argrx.edu\"))))))\n"
 
 #. type: Plain text
-#: doc/guix.texi:19453
+#: doc/guix.texi:22143
 msgid "This example provides a Kerberos@tie{}5 client configuration which:"
 msgstr "Este ejemplo proporciona una configuración de cliente Kerberos@tie{}5 que:"
 
 # FIXME: Cuidado con esta zona.
 #. type: item
-#: doc/guix.texi:19454
+#: doc/guix.texi:22144
 #, no-wrap
 msgid "Recognizes two realms, @i{viz:} ``EXAMPLE.COM'' and ``ARGRX.EDU'', both"
 msgstr "Reconoce dos dominios, @i{sean:} ``EXAMPLE.COM'' y ``ARGRX.EDU'', los cuales"
 
 # FIXME: Cuidado con esta zona.
 #. type: itemize
-#: doc/guix.texi:19456
+#: doc/guix.texi:22146
 msgid "of which have distinct administration servers and key distribution centers;"
 msgstr "tienen distintos servidores administrativos y centros de distribución de claves;"
 
 # FIXME: Cuidado con esta zona.
 #. type: item
-#: doc/guix.texi:19456
+#: doc/guix.texi:22146
 #, no-wrap
 msgid "Will default to the realm ``EXAMPLE.COM'' if the realm is not explicitly"
 msgstr "El valor predeterminado será ``EXAMPLE.COM'' si no se especifica el dominio"
 
 # FIXME: Cuidado con esta zona.
 #. type: itemize
-#: doc/guix.texi:19458
+#: doc/guix.texi:22148
 msgid "specified by clients;"
 msgstr "explícitamente por parte del cliente."
 
 # FIXME: Cuidado con esta zona.
 #. type: item
-#: doc/guix.texi:19458
+#: doc/guix.texi:22148
 #, no-wrap
 msgid "Accepts services which only support encryption types known to be weak."
 msgstr "Acepta servicios cuyos únicos tipos de cifrado implementados se sabe que son débiles."
 
 # TODO: Revisar
 #. type: Plain text
-#: doc/guix.texi:19466
+#: doc/guix.texi:22156
 msgid "The @code{krb5-realm} and @code{krb5-configuration} types have many fields.  Only the most commonly used ones are described here.  For a full list, and more detailed explanation of each, see the MIT @uref{https://web.mit.edu/kerberos/krb5-devel/doc/admin/conf_files/krb5_conf.html,,krb5.conf} documentation."
 msgstr "Los tipos @code{krb5-realm} y @code{krb5-configuration} contienen muchos campos.  Aquí se describen únicamente los más habitualmente usados.  Para obtener una lista complete y una explicación detallada de cada campo, véase la documentación de @uref{https://web.mit.edu/kerberos/krb5-devel/doc/admin/conf_files/krb5_conf.html,,krb5.conf}."
 
 #. type: deftp
-#: doc/guix.texi:19468
+#: doc/guix.texi:22158
 #, no-wrap
 msgid "{Data Type} krb5-realm"
 msgstr "{Tipo de datos} krb5-realm"
 
 #. type: cindex
-#: doc/guix.texi:19469
+#: doc/guix.texi:22159
 #, no-wrap
 msgid "realm, kerberos"
 msgstr "dominio (realm), kerberos"
@@ -37883,52 +42603,52 @@ msgstr "dominio (realm), kerberos"
 # FUZZY
 # TODO (MAAV): fully qualified name
 #. type: table
-#: doc/guix.texi:19475
+#: doc/guix.texi:22165
 msgid "This field is a string identifying the name of the realm.  A common convention is to use the fully qualified DNS name of your organization, converted to upper case."
 msgstr "Este campo es una cadena que identifica el nombre del dominio. Una convención habitual es el uso del nombre completo de DNS de su organización, convertido a mayúsculas."
 
 #. type: code{#1}
-#: doc/guix.texi:19476
+#: doc/guix.texi:22166
 #, no-wrap
 msgid "admin-server"
 msgstr "admin-server"
 
 #. type: table
-#: doc/guix.texi:19479
+#: doc/guix.texi:22169
 msgid "This field is a string identifying the host where the administration server is running."
 msgstr "Este campo es una cadena que identifica la máquina donde se ejecuta el servidor administrativo."
 
 #. type: code{#1}
-#: doc/guix.texi:19480
+#: doc/guix.texi:22170
 #, no-wrap
 msgid "kdc"
 msgstr "kdc"
 
 #. type: table
-#: doc/guix.texi:19483
+#: doc/guix.texi:22173
 msgid "This field is a string identifying the key distribution center for the realm."
 msgstr "Este campo es una cadena que identifica el centro de distribución de claves para el dominio."
 
 #. type: deftp
-#: doc/guix.texi:19486
+#: doc/guix.texi:22176
 #, no-wrap
 msgid "{Data Type} krb5-configuration"
 msgstr "{Tipo de datos} krb5-configuration"
 
 #. type: item
-#: doc/guix.texi:19489
+#: doc/guix.texi:22179
 #, no-wrap
 msgid "@code{allow-weak-crypto?} (default: @code{#f})"
 msgstr "@code{allow-weak-crypto?} (predeterminado: @code{#f})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:19492
+#: doc/guix.texi:22182
 msgid "If this flag is @code{#t} then services which only offer encryption algorithms known to be weak will be accepted."
 msgstr "Si esta opción es @code{#t} se aceptarán los servicios que únicamente ofrezcan algoritmos de cifrado que se conozca que son débiles."
 
 #. type: item
-#: doc/guix.texi:19493
+#: doc/guix.texi:22183
 #, no-wrap
 msgid "@code{default-realm} (default: @code{#f})"
 msgstr "@code{default-realm} (predeterminado: @code{#f})"
@@ -37936,110 +42656,110 @@ msgstr "@code{default-realm} (predeterminado: @code{#f})"
 # FUZZY FUZZY FUZZY
 # TODO (MAAV): Kerberos Principal = primary/instance@REALM
 #. type: table
-#: doc/guix.texi:19500
+#: doc/guix.texi:22190
 msgid "This field should be a string identifying the default Kerberos realm for the client.  You should set this field to the name of your Kerberos realm.  If this value is @code{#f} then a realm must be specified with every Kerberos principal when invoking programs such as @command{kinit}."
 msgstr "Este campo debe ser una cadena que identifique el dominio predeterminado de Kerberos para los clientes. Debería proporcionar el nombre de su dominio Kerberos. Si este valor es @code{#f}, el dominio debe especificarse en cada principal de Kerberos cuando se invoquen programas como @command{kinit}."
 
 #. type: code{#1}
-#: doc/guix.texi:19501
+#: doc/guix.texi:22191
 #, no-wrap
 msgid "realms"
 msgstr "realms"
 
 #. type: table
-#: doc/guix.texi:19506
+#: doc/guix.texi:22196
 msgid "This should be a non-empty list of @code{krb5-realm} objects, which clients may access.  Normally, one of them will have a @code{name} field matching the @code{default-realm} field."
 msgstr "Debe ser una lista no vacía de objetos @code{krb5-realm}, accesibles por los clientes. Normalmente, uno de ellos tendrá un campo @code{name} que corresponda con el campo @code{default-realm}."
 
 #. type: subsubheading
-#: doc/guix.texi:19510
+#: doc/guix.texi:22200
 #, no-wrap
 msgid "PAM krb5 Service"
 msgstr "Servicio krb5 de PAM"
 
 #. type: cindex
-#: doc/guix.texi:19511
+#: doc/guix.texi:22201
 #, no-wrap
 msgid "pam-krb5"
 msgstr "pam-krb5"
 
 # FUZZY
 #. type: Plain text
-#: doc/guix.texi:19517
+#: doc/guix.texi:22207
 msgid "The @code{pam-krb5} service allows for login authentication and password management via Kerberos.  You will need this service if you want PAM enabled applications to authenticate users using Kerberos."
 msgstr "El servicio @code{pam-krb5} le permite la identificación para el ingreso al sistema y la gestión de contraseñas mediante Kerberos. Este servicio es necesario si desea que aplicaciones que permiten PAM lleven a cabo la identificación de usuarias mediante el uso de Kerberos."
 
 #. type: defvr
-#: doc/guix.texi:19518
+#: doc/guix.texi:22208
 #, no-wrap
 msgid "{Scheme Variable} pam-krb5-service-type"
 msgstr "{Variable Scheme} pam-krb5-service-type"
 
 #. type: defvr
-#: doc/guix.texi:19520
+#: doc/guix.texi:22210
 msgid "A service type for the Kerberos 5 PAM module."
 msgstr "Un tipo de servicio para el módulo PAM de Kerberos 5."
 
 #. type: deftp
-#: doc/guix.texi:19522
+#: doc/guix.texi:22212
 #, no-wrap
 msgid "{Data Type} pam-krb5-configuration"
 msgstr "{Tipo de datos} pam-krb5-configuration"
 
 #. type: deftp
-#: doc/guix.texi:19525
+#: doc/guix.texi:22215
 msgid "Data type representing the configuration of the Kerberos 5 PAM module.  This type has the following parameters:"
 msgstr "Tipo de datos que representa la configuración del módulo PAM de Kerberos 5. Este tipo tiene los siguientes parámetros:"
 
 #. type: item
-#: doc/guix.texi:19526
+#: doc/guix.texi:22216
 #, no-wrap
 msgid "@code{pam-krb5} (default: @code{pam-krb5})"
 msgstr "@code{pam-krb5} (predeterminado: @code{pam-krb5})"
 
 #. type: table
-#: doc/guix.texi:19528
+#: doc/guix.texi:22218
 msgid "The pam-krb5 package to use."
 msgstr "El paquete pam-krb5 usado."
 
 #. type: item
-#: doc/guix.texi:19529
+#: doc/guix.texi:22219
 #, no-wrap
 msgid "@code{minimum-uid} (default: @code{1000})"
 msgstr "@code{minimum-uid} (predeterminado: @code{1000})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:19532
+#: doc/guix.texi:22222
 msgid "The smallest user ID for which Kerberos authentications should be attempted.  Local accounts with lower values will silently fail to authenticate."
 msgstr "El ID de usuaria mínimo con el que se permitirán los intentos de identificación con Kerberos. El proceso de identificación de las cuentas locales con valores menores fallará de manera silenciosa."
 
 #. type: cindex
-#: doc/guix.texi:19538
+#: doc/guix.texi:22228
 #, no-wrap
 msgid "LDAP"
 msgstr "LDAP"
 
 #. type: cindex
-#: doc/guix.texi:19539
+#: doc/guix.texi:22229
 #, no-wrap
 msgid "nslcd, LDAP service"
 msgstr "nslcd, servicio LDAP"
 
 # FUZZY
 #. type: Plain text
-#: doc/guix.texi:19546
+#: doc/guix.texi:22236
 msgid "The @code{(gnu services authentication)} module provides the @code{nslcd-service-type}, which can be used to authenticate against an LDAP server.  In addition to configuring the service itself, you may want to add @code{ldap} as a name service to the Name Service Switch. @xref{Name Service Switch} for detailed information."
 msgstr "El módulo @code{(gnu services authentication)} proporciona el tipo @code{nslcd-service-type}, que puede usarse para la identificación a través de un servidor LDAP. Además de la configuración del servicio en sí, puede desear añadir @code{ldap} como servicio de nombres en el selector de servicios de nombres (NSS). @xref{Name Service Switch} para información detallada."
 
 # FUZZY
 #. type: Plain text
-#: doc/guix.texi:19550
+#: doc/guix.texi:22240
 msgid "Here is a simple operating system declaration with a default configuration of the @code{nslcd-service-type} and a Name Service Switch configuration that consults the @code{ldap} name service last:"
 msgstr "Aquí se encuentra una declaración simple de sistema operativo con la configuración predeterminada de @code{nslcd-service-type} y una configuración del selector de servicios de nombre que consulta en último lugar al servicios de nombres @code{ldap}:"
 
 #. type: lisp
-#: doc/guix.texi:19573
+#: doc/guix.texi:22263
 #, no-wrap
 msgid ""
 "(use-service-modules authentication)\n"
@@ -38087,700 +42807,700 @@ msgstr ""
 "      (gshadow  services)))))\n"
 
 #. type: Plain text
-#: doc/guix.texi:19578
+#: doc/guix.texi:22268
 msgid "Available @code{nslcd-configuration} fields are:"
 msgstr "Los campos disponibles de @code{nslcd-configuration} son:"
 
 #. type: deftypevr
-#: doc/guix.texi:19579
+#: doc/guix.texi:22269
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} package nss-pam-ldapd"
 msgstr "{parámetro de @code{nslcd-configuration}} package nss-pam-ldapd"
 
 #. type: deftypevr
-#: doc/guix.texi:19581
+#: doc/guix.texi:22271
 msgid "The @code{nss-pam-ldapd} package to use."
 msgstr "El paquete @code{nss-pam-ldapd} usado."
 
 #. type: deftypevr
-#: doc/guix.texi:19584
+#: doc/guix.texi:22274
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-number threads"
 msgstr "{parámetro de @code{nslcd-configuration}} maybe-number threads"
 
 #. type: deftypevr
-#: doc/guix.texi:19588
+#: doc/guix.texi:22278
 msgid "The number of threads to start that can handle requests and perform LDAP queries.  Each thread opens a separate connection to the LDAP server.  The default is to start 5 threads."
 msgstr "El número de hilos a iniciar que pueden gestionar peticiones y realizar consultas en LDAP. Cada hilo abre una conexión separada al servidor LDAP. Se inician 5 hilos de manera predeterminada."
 
 #. type: deftypevr
-#: doc/guix.texi:19590 doc/guix.texi:19632 doc/guix.texi:19640
-#: doc/guix.texi:19648 doc/guix.texi:19656 doc/guix.texi:19665
-#: doc/guix.texi:19673 doc/guix.texi:19680 doc/guix.texi:19688
-#: doc/guix.texi:19696 doc/guix.texi:19706 doc/guix.texi:19713
-#: doc/guix.texi:19737 doc/guix.texi:19745 doc/guix.texi:19771
-#: doc/guix.texi:19780 doc/guix.texi:19789 doc/guix.texi:19798
-#: doc/guix.texi:19807 doc/guix.texi:19816 doc/guix.texi:19824
-#: doc/guix.texi:19832 doc/guix.texi:19839 doc/guix.texi:19847
-#: doc/guix.texi:19854 doc/guix.texi:19862 doc/guix.texi:19870
-#: doc/guix.texi:19879 doc/guix.texi:19888 doc/guix.texi:19896
-#: doc/guix.texi:19904 doc/guix.texi:19912 doc/guix.texi:19923
-#: doc/guix.texi:19933 doc/guix.texi:19944 doc/guix.texi:19953
-#: doc/guix.texi:19963 doc/guix.texi:19971 doc/guix.texi:19982
-#: doc/guix.texi:19991 doc/guix.texi:20001 doc/guix.texi:22685
-#: doc/guix.texi:22692 doc/guix.texi:22699 doc/guix.texi:22706
-#: doc/guix.texi:22713 doc/guix.texi:22720 doc/guix.texi:22728
-#: doc/guix.texi:22736 doc/guix.texi:22743 doc/guix.texi:22750
-#: doc/guix.texi:22757 doc/guix.texi:22764 doc/guix.texi:22794
-#: doc/guix.texi:22832 doc/guix.texi:22839 doc/guix.texi:22848
-#: doc/guix.texi:22870 doc/guix.texi:22878 doc/guix.texi:22885
-#: doc/guix.texi:23040 doc/guix.texi:23060 doc/guix.texi:23075
-#: doc/guix.texi:23082 doc/guix.texi:24940 doc/guix.texi:24948
-#: doc/guix.texi:24956 doc/guix.texi:24964 doc/guix.texi:24972
-#: doc/guix.texi:24980
+#: doc/guix.texi:22280 doc/guix.texi:22323 doc/guix.texi:22331
+#: doc/guix.texi:22339 doc/guix.texi:22347 doc/guix.texi:22356
+#: doc/guix.texi:22364 doc/guix.texi:22371 doc/guix.texi:22379
+#: doc/guix.texi:22387 doc/guix.texi:22397 doc/guix.texi:22404
+#: doc/guix.texi:22428 doc/guix.texi:22436 doc/guix.texi:22462
+#: doc/guix.texi:22471 doc/guix.texi:22480 doc/guix.texi:22489
+#: doc/guix.texi:22498 doc/guix.texi:22507 doc/guix.texi:22515
+#: doc/guix.texi:22523 doc/guix.texi:22530 doc/guix.texi:22538
+#: doc/guix.texi:22545 doc/guix.texi:22553 doc/guix.texi:22561
+#: doc/guix.texi:22570 doc/guix.texi:22579 doc/guix.texi:22587
+#: doc/guix.texi:22595 doc/guix.texi:22603 doc/guix.texi:22614
+#: doc/guix.texi:22624 doc/guix.texi:22635 doc/guix.texi:22644
+#: doc/guix.texi:22654 doc/guix.texi:22662 doc/guix.texi:22673
+#: doc/guix.texi:22682 doc/guix.texi:22692 doc/guix.texi:25545
+#: doc/guix.texi:25552 doc/guix.texi:25559 doc/guix.texi:25566
+#: doc/guix.texi:25573 doc/guix.texi:25580 doc/guix.texi:25588
+#: doc/guix.texi:25596 doc/guix.texi:25603 doc/guix.texi:25610
+#: doc/guix.texi:25617 doc/guix.texi:25624 doc/guix.texi:25654
+#: doc/guix.texi:25692 doc/guix.texi:25699 doc/guix.texi:25708
+#: doc/guix.texi:25730 doc/guix.texi:25738 doc/guix.texi:25745
+#: doc/guix.texi:25900 doc/guix.texi:25920 doc/guix.texi:25935
+#: doc/guix.texi:25942 doc/guix.texi:28633 doc/guix.texi:28641
+#: doc/guix.texi:28649 doc/guix.texi:28657 doc/guix.texi:28665
+#: doc/guix.texi:28673
 msgid "Defaults to @samp{disabled}."
 msgstr "El valor predeterminado es @samp{disabled}."
 
 #. type: deftypevr
-#: doc/guix.texi:19593
+#: doc/guix.texi:22283
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} string uid"
 msgstr "{parámetro de @code{nslcd-configuration}} string uid"
 
 #. type: deftypevr
-#: doc/guix.texi:19595
+#: doc/guix.texi:22285
 msgid "This specifies the user id with which the daemon should be run."
 msgstr "Especifica el id de usuaria con el que debe ejecutarse el daemon."
 
 #. type: deftypevr
-#: doc/guix.texi:19597 doc/guix.texi:19604
+#: doc/guix.texi:22287 doc/guix.texi:22294
 msgid "Defaults to @samp{\"nslcd\"}."
 msgstr "El valor predeterminado es @samp{\"nslcd\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:19600
+#: doc/guix.texi:22290
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} string gid"
 msgstr "{parámetro de @code{nslcd-configuration}} string gid"
 
 #. type: deftypevr
-#: doc/guix.texi:19602
+#: doc/guix.texi:22292
 msgid "This specifies the group id with which the daemon should be run."
 msgstr "Especifica el id de grupo con el que debe ejecutarse el daemon."
 
 #. type: deftypevr
-#: doc/guix.texi:19607
+#: doc/guix.texi:22297
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} log-option log"
 msgstr "{parámetro de @code{nslcd-configuration}} opción-registro log"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:19614
-msgid "This option controls the way logging is done via a list containing SCHEME and LEVEL.  The SCHEME argument may either be the symbols \"none\" or \"syslog\", or an absolute file name.  The LEVEL argument is optional and specifies the log level.  The log level may be one of the following symbols: \"crit\", \"error\", \"warning\", \"notice\", \"info\" or \"debug\".  All messages with the specified log level or higher are logged."
-msgstr "Esta opción controla la forma en la que se realiza el registro a través de una lista que contiene ESQUEMA y NIVEL. El parámetro ESQUEMA puede ser o bien los símbolos \"none\" o \"syslog\", o la ruta absoluta de un fichero. El parámetro NIVEL es opcional y especifica el nivel de registro. El nivel de registro puede ser uno de los siguientes símbolos: \"crit\", \"error\", \"warning\", \"notice\", \"info\" o \"debug\". Se registran todos los mensajes con el nivel especificado o uno superior."
+#: doc/guix.texi:22305
+msgid "This option controls the way logging is done via a list containing SCHEME and LEVEL.  The SCHEME argument may either be the symbols @samp{none} or @samp{syslog}, or an absolute file name.  The LEVEL argument is optional and specifies the log level.  The log level may be one of the following symbols: @samp{crit}, @samp{error}, @samp{warning}, @samp{notice}, @samp{info} or @samp{debug}.  All messages with the specified log level or higher are logged."
+msgstr "Esta opción controla la forma en la que se realiza el registro a través de una lista que contiene ESQUEMA y NIVEL. El parámetro ESQUEMA puede ser o bien los símbolos @samp{none} o @samp{syslog}, o la ruta absoluta de un archivo. El parámetro NIVEL es opcional y especifica el nivel de registro. El nivel de registro puede ser uno de los siguientes símbolos: @samp{crit}, @samp{error}, @samp{warning}, @samp{notice}, @samp{info} o @samp{debug}. Se registran todos los mensajes con el nivel especificado o con un nivel superior."
 
 #. type: deftypevr
-#: doc/guix.texi:19616
+#: doc/guix.texi:22307
 msgid "Defaults to @samp{(\"/var/log/nslcd\" info)}."
 msgstr "El valor predeterminado es @samp{(\"/var/log/nslcd\" info)}."
 
 #. type: deftypevr
-#: doc/guix.texi:19619
+#: doc/guix.texi:22310
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} list uri"
 msgstr "{parámetro de @code{nslcd-configuration}} lista uri"
 
 # FUZZY FUZZY
 #. type: deftypevr
-#: doc/guix.texi:19622
+#: doc/guix.texi:22313
 msgid "The list of LDAP server URIs.  Normally, only the first server will be used with the following servers as fall-back."
 msgstr "La lista de URI de servidores LDAP. Normalmente, únicamente se usará el primer servidor y los siguientes se usan en caso de fallo."
 
 #. type: deftypevr
-#: doc/guix.texi:19624
+#: doc/guix.texi:22315
 msgid "Defaults to @samp{(\"ldap://localhost:389/\")}."
 msgstr "El valor predeterminado es @samp{\"ldap://localhost:389/\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:19627
+#: doc/guix.texi:22318
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-string ldap-version"
 msgstr "{parámetro de @code{nslcd-configuration}} maybe-string ldap-version"
 
 #. type: deftypevr
-#: doc/guix.texi:19630
+#: doc/guix.texi:22321
 msgid "The version of the LDAP protocol to use.  The default is to use the maximum version supported by the LDAP library."
 msgstr "La versión del protocolo LDAP usada. El valor predeterminado usa la versión máxima implementada por la biblioteca LDAP."
 
 #. type: deftypevr
-#: doc/guix.texi:19635
+#: doc/guix.texi:22326
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-string binddn"
 msgstr "{parámetro de @code{nslcd-configuration}} maybe-string binddn"
 
 #. type: deftypevr
-#: doc/guix.texi:19638
+#: doc/guix.texi:22329
 msgid "Specifies the distinguished name with which to bind to the directory server for lookups.  The default is to bind anonymously."
 msgstr "Especifica el nombre distinguido con el que enlazarse en el servidor de directorio para las búsquedas. El valor predeterminado se enlaza de forma anónima."
 
 #. type: deftypevr
-#: doc/guix.texi:19643
+#: doc/guix.texi:22334
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-string bindpw"
 msgstr "{parámetro de @code{nslcd-configuration}} maybe-string bindpw"
 
 # FUZZY FUZZY
 #. type: deftypevr
-#: doc/guix.texi:19646
+#: doc/guix.texi:22337
 msgid "Specifies the credentials with which to bind.  This option is only applicable when used with binddn."
 msgstr "Especifica las credenciales usadas para el enlace. Esta opción tiene utilidad únicamente cuando se usa con binddn."
 
 #. type: deftypevr
-#: doc/guix.texi:19651
+#: doc/guix.texi:22342
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-string rootpwmoddn"
 msgstr "{parámetro de @code{nslcd-configuration}} maybe-string rootpwmoddn"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:19654
+#: doc/guix.texi:22345
 msgid "Specifies the distinguished name to use when the root user tries to modify a user's password using the PAM module."
 msgstr "Especifica el nombre distinguido usado cuando la usuaria root intenta modificar la contraseña de una usuaria mediante el módulo de PAM."
 
 #. type: deftypevr
-#: doc/guix.texi:19659
+#: doc/guix.texi:22350
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-string rootpwmodpw"
 msgstr "{parámetro de @code{nslcd-configuration}} maybe-string rootpwmodpw"
 
 # FUZZY FUZZY
 #. type: deftypevr
-#: doc/guix.texi:19663
+#: doc/guix.texi:22354
 msgid "Specifies the credentials with which to bind if the root user tries to change a user's password.  This option is only applicable when used with rootpwmoddn"
 msgstr "Especifica las credenciales con las que enlazarse si la usuaria root intenta cambiar la contraseña de una usuaria. Esta opción tiene utilidad únicamente cuando se usa con rootpwmoddn."
 
 #. type: deftypevr
-#: doc/guix.texi:19668
+#: doc/guix.texi:22359
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-string sasl-mech"
 msgstr "{parámetro de @code{nslcd-configuration}} maybe-string sasl-mech"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:19671
+#: doc/guix.texi:22362
 msgid "Specifies the SASL mechanism to be used when performing SASL authentication."
 msgstr "Especifica el mecanismo de SASL usado cuando se realice la identificación con SASL."
 
 #. type: deftypevr
-#: doc/guix.texi:19676
+#: doc/guix.texi:22367
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-string sasl-realm"
 msgstr "{parámetro de @code{nslcd-configuration}} maybe-string sasl-realm"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:19678
+#: doc/guix.texi:22369
 msgid "Specifies the SASL realm to be used when performing SASL authentication."
 msgstr "Especifica el dominio de SASL usado cuando se realice la identificación con SASL."
 
 #. type: deftypevr
-#: doc/guix.texi:19683
+#: doc/guix.texi:22374
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-string sasl-authcid"
 msgstr "{parámetro de @code{nslcd-configuration}} maybe-string sasl-authcid"
 
 # FUZZY FUZZY
 #. type: deftypevr
-#: doc/guix.texi:19686
+#: doc/guix.texi:22377
 msgid "Specifies the authentication identity to be used when performing SASL authentication."
 msgstr "Especifica la identidad de verificación usada cuando se realice la identificación con SASL."
 
 #. type: deftypevr
-#: doc/guix.texi:19691
+#: doc/guix.texi:22382
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-string sasl-authzid"
 msgstr "{parámetro de @code{nslcd-configuration}} maybe-string sasl-authzid"
 
 # FUZZY FUZZY
 #. type: deftypevr
-#: doc/guix.texi:19694
+#: doc/guix.texi:22385
 msgid "Specifies the authorization identity to be used when performing SASL authentication."
 msgstr "Especifica la identidad de autorización usada cuando se realice la identificación con SASL."
 
 #. type: deftypevr
-#: doc/guix.texi:19699
+#: doc/guix.texi:22390
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-boolean sasl-canonicalize?"
 msgstr "{parámetro de @code{nslcd-configuration}} maybe-boolean sasl-canonicalize?"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:19704
+#: doc/guix.texi:22395
 msgid "Determines whether the LDAP server host name should be canonicalised.  If this is enabled the LDAP library will do a reverse host name lookup.  By default, it is left up to the LDAP library whether this check is performed or not."
 msgstr "Determina si el nombre de máquina del servidor LDAP debe transformarse a su forma canónica. Si se activa, la librería LDAP realizará una búsqueda inversa de nombre de máquina. De manera predeterminada, se delega en la biblioteca la decisión de realizar esta comprobación o no."
 
 #. type: deftypevr
-#: doc/guix.texi:19709
+#: doc/guix.texi:22400
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-string krb5-ccname"
 msgstr "{parámetro de @code{nslcd-configuration}} maybe-string krb5-ccname"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:19711
+#: doc/guix.texi:22402
 msgid "Set the name for the GSS-API Kerberos credentials cache."
 msgstr "Establece el nombre para la caché de credenciales GSS-API de Kerberos."
 
 #. type: deftypevr
-#: doc/guix.texi:19716
+#: doc/guix.texi:22407
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} string base"
 msgstr "{parámetro de @code{nslcd-configuration}} string base"
 
 #. type: deftypevr
-#: doc/guix.texi:19718
+#: doc/guix.texi:22409
 msgid "The directory search base."
 msgstr "El directorio de búsqueda base."
 
 #. type: deftypevr
-#: doc/guix.texi:19720
+#: doc/guix.texi:22411
 msgid "Defaults to @samp{\"dc=example,dc=com\"}."
 msgstr "El valor predeterminado es @samp{\"dc=example,dc=com\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:19723
+#: doc/guix.texi:22414
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} scope-option scope"
 msgstr "{parámetro de @code{nslcd-configuration}} opción-de-ámbito scope"
 
 #. type: deftypevr
-#: doc/guix.texi:19727
+#: doc/guix.texi:22418
 msgid "Specifies the search scope (subtree, onelevel, base or children).  The default scope is subtree; base scope is almost never useful for name service lookups; children scope is not supported on all servers."
 msgstr "Especifica el ámbito de búsqueda (subtree, oneleve, base o children). El ámbito predeterminado es subtree; el ámbito base casi nunca es útil para búsquedas del servicio de nombres; el ámbito children no está implementado en todos los servidores."
 
 #. type: deftypevr
-#: doc/guix.texi:19729
+#: doc/guix.texi:22420
 msgid "Defaults to @samp{(subtree)}."
 msgstr "El valor predeterminado es @samp{(subtree)}."
 
 #. type: deftypevr
-#: doc/guix.texi:19732
+#: doc/guix.texi:22423
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-deref-option deref"
 msgstr "{parámetro de @code{nslcd-configuration}} maybe-deref-option deref"
 
 #. type: deftypevr
-#: doc/guix.texi:19735
+#: doc/guix.texi:22426
 msgid "Specifies the policy for dereferencing aliases.  The default policy is to never dereference aliases."
 msgstr "Especifica la política para seguir las referencias de los alias. La política predeterminada es nunca seguir las referencias de los alias."
 
 #. type: deftypevr
-#: doc/guix.texi:19740
+#: doc/guix.texi:22431
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-boolean referrals"
 msgstr "{parámetro de @code{nslcd-configuration}} maybe-boolean referrals"
 
 #. type: deftypevr
-#: doc/guix.texi:19743
+#: doc/guix.texi:22434
 msgid "Specifies whether automatic referral chasing should be enabled.  The default behaviour is to chase referrals."
 msgstr "Especifica si el seguimiento automático de referencias debe activarse. El seguimiento de referencias es comportamiento predeterminado."
 
 #. type: deftypevr
-#: doc/guix.texi:19748
+#: doc/guix.texi:22439
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} list-of-map-entries maps"
 msgstr "{parámetro de @code{nslcd-configuration}} lista-asociación-entrada maps"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:19753
+#: doc/guix.texi:22444
 msgid "This option allows for custom attributes to be looked up instead of the default RFC 2307 attributes.  It is a list of maps, each consisting of the name of a map, the RFC 2307 attribute to match and the query expression for the attribute as it is available in the directory."
 msgstr "Esta opción permite que se busquen atributos personalizados en vez de los atributos predeterminados de RFC 2307. Es una lista de asociaciones, de las que cada una consiste en el nombre de la asociación, el atributo de RFC 2307 al que corresponde y la expresión de búsqueda del atributo en la forma que esté disponible en el directorio."
 
 #. type: deftypevr
-#: doc/guix.texi:19758
+#: doc/guix.texi:22449
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} list-of-filter-entries filters"
 msgstr "{parámetro de @code{nslcd-configuration}} lista-asociación-entrada filters"
 
 # FUZZY FUZZY
 #. type: deftypevr
-#: doc/guix.texi:19761
+#: doc/guix.texi:22452
 msgid "A list of filters consisting of the name of a map to which the filter applies and an LDAP search filter expression."
 msgstr "Una lista de filtros que consiste en el nombre de una asociación a la que se aplica el filtro y una expresión de filtrado de búsqueda de LDAP."
 
 #. type: deftypevr
-#: doc/guix.texi:19766
+#: doc/guix.texi:22457
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-number bind-timelimit"
 msgstr "{parámetro de @code{nslcd-configuration}} maybe-number bind-timelimit"
 
 #. type: deftypevr
-#: doc/guix.texi:19769
+#: doc/guix.texi:22460
 msgid "Specifies the time limit in seconds to use when connecting to the directory server.  The default value is 10 seconds."
 msgstr "Especifica el tiempo límite usado en segundos durante la conexión al servidor de directorio. El valor predeterminado son 10 segundos."
 
 #. type: deftypevr
-#: doc/guix.texi:19774
+#: doc/guix.texi:22465
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-number timelimit"
 msgstr "{parámetro de @code{nslcd-configuration}} maybe-number timelimit"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:19778
+#: doc/guix.texi:22469
 msgid "Specifies the time limit (in seconds) to wait for a response from the LDAP server.  A value of zero, which is the default, is to wait indefinitely for searches to be completed."
 msgstr "Especifica el tiempo límite (en segundos) durante el que se esperará una respuesta del servidor LDAP. Un valor de cero, por omisión, hace que se espere de manera indefinida hasta que las búsquedas se completen."
 
 #. type: deftypevr
-#: doc/guix.texi:19783
+#: doc/guix.texi:22474
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-number idle-timelimit"
 msgstr "{parámetro de @code{nslcd-configuration}} maybe-number idle-timelimit"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:19787
+#: doc/guix.texi:22478
 msgid "Specifies the period if inactivity (in seconds) after which the con‐ nection to the LDAP server will be closed.  The default is not to time out connections."
 msgstr "Especifica el periodo de inactividad (en segundos) tras el cual se cerrará la conexión con el servidor LDAP. El valor predeterminado no cierra las conexiones por inactividad."
 
 #. type: deftypevr
-#: doc/guix.texi:19792
+#: doc/guix.texi:22483
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-number reconnect-sleeptime"
 msgstr "{parámetro de @code{nslcd-configuration}} maybe-number reconnect-sleeptime"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:19796
+#: doc/guix.texi:22487
 msgid "Specifies the number of seconds to sleep when connecting to all LDAP servers fails.  By default one second is waited between the first failure and the first retry."
 msgstr "Especifica en número de segundos que se dormirá cuando falle la conexión a todos los servidores LDAP. De manera predeterminada se espera un segundo entre el primer fallo y el primer reintento."
 
 #. type: deftypevr
-#: doc/guix.texi:19801
+#: doc/guix.texi:22492
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-number reconnect-retrytime"
 msgstr "{parámetro de @code{nslcd-configuration}} maybe-number reconnect-retrytime"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:19805
+#: doc/guix.texi:22496
 msgid "Specifies the time after which the LDAP server is considered to be permanently unavailable.  Once this time is reached retries will be done only once per this time period.  The default value is 10 seconds."
 msgstr "Especifica el tiempo tras el cual el servidor LDAP se considera no disponible de manera permanente. Una vez se alcance este tiempo, los reintentos se realizarán una vez en cada periodo de tiempo igual al especificado. El valor predeterminado es 10 segundos."
 
 #. type: deftypevr
-#: doc/guix.texi:19810
+#: doc/guix.texi:22501
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-ssl-option ssl"
 msgstr "{parámetro de @code{nslcd-configuration}} maybe-ssl-option ssl"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:19814
+#: doc/guix.texi:22505
 msgid "Specifies whether to use SSL/TLS or not (the default is not to).  If 'start-tls is specified then StartTLS is used rather than raw LDAP over SSL."
 msgstr "Determina si se usa SSL/TLS o no (el comportamiento predeterminado es no hacerlo). Si se especifica 'start-tls, se usa StartTLS en vez de la transmisión del protocolo LDAP en crudo sobre SSL."
 
 #. type: deftypevr
-#: doc/guix.texi:19819
+#: doc/guix.texi:22510
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-tls-reqcert-option tls-reqcert"
 msgstr "{parámetro de @code{nslcd-configuration}} maybe-tls-reqcert-option tls-reqcert"
 
 #. type: deftypevr
-#: doc/guix.texi:19822
+#: doc/guix.texi:22513
 msgid "Specifies what checks to perform on a server-supplied certificate.  The meaning of the values is described in the ldap.conf(5) manual page."
 msgstr "Especifica las comprobaciones que se deben realizar con un certificado proporcionado por el servidor. El significado de los valores se describe en la página de manual de ldap.conf(5). "
 
 #. type: deftypevr
-#: doc/guix.texi:19827
+#: doc/guix.texi:22518
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-string tls-cacertdir"
 msgstr "{parámetro de @code{nslcd-configuration}} maybe-string tls-cacertdir"
 
 #. type: deftypevr
-#: doc/guix.texi:19830
+#: doc/guix.texi:22521
 msgid "Specifies the directory containing X.509 certificates for peer authen‐ tication.  This parameter is ignored when using GnuTLS."
 msgstr "Especifica el directorio que contiene los certificados X.509 para la identificación de pares. Este parámetro se ignora si se usa GnuTLS."
 
 #. type: deftypevr
-#: doc/guix.texi:19835
+#: doc/guix.texi:22526
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-string tls-cacertfile"
 msgstr "{parámetro de @code{nslcd-configuration}} maybe-string tls-cacertfile"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:19837
+#: doc/guix.texi:22528
 msgid "Specifies the path to the X.509 certificate for peer authentication."
 msgstr "Especifica la ruta al certificado X.509 para la identificación de pares."
 
 #. type: deftypevr
-#: doc/guix.texi:19842
+#: doc/guix.texi:22533
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-string tls-randfile"
 msgstr "{parámetro de @code{nslcd-configuration}} maybe-string tls-randfile"
 
 #. type: deftypevr
-#: doc/guix.texi:19845
+#: doc/guix.texi:22536
 msgid "Specifies the path to an entropy source.  This parameter is ignored when using GnuTLS."
 msgstr "Especifica la ruta de la fuente de entropía. Este parámetro se ignora si se usa GnuTLS."
 
 #. type: deftypevr
-#: doc/guix.texi:19850
+#: doc/guix.texi:22541
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-string tls-ciphers"
 msgstr "{parámetro de @code{nslcd-configuration}} maybe-string tls-ciphers"
 
 #. type: deftypevr
-#: doc/guix.texi:19852
+#: doc/guix.texi:22543
 msgid "Specifies the ciphers to use for TLS as a string."
 msgstr "Especifica como una cadena los algoritmos de cifrado usados para TLS."
 
 #. type: deftypevr
-#: doc/guix.texi:19857
+#: doc/guix.texi:22548
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-string tls-cert"
 msgstr "{parámetro de @code{nslcd-configuration}} maybe-string tls-cert"
 
 #. type: deftypevr
-#: doc/guix.texi:19860
+#: doc/guix.texi:22551
 msgid "Specifies the path to the file containing the local certificate for client TLS authentication."
-msgstr "Especifica la ruta al fichero que contiene el certificado local para la identificación de clientes con TLS."
+msgstr "Especifica la ruta al archivo que contiene el certificado local para la identificación de clientes con TLS."
 
 #. type: deftypevr
-#: doc/guix.texi:19865
+#: doc/guix.texi:22556
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-string tls-key"
 msgstr "{parámetro de @code{nslcd-configuration}} maybe-string tls-key"
 
 #. type: deftypevr
-#: doc/guix.texi:19868
+#: doc/guix.texi:22559
 msgid "Specifies the path to the file containing the private key for client TLS authentication."
-msgstr "Especifica la ruta al fichero que contiene la clave privada para la identificación de clientes con TLS."
+msgstr "Especifica la ruta al archivo que contiene la clave privada para la identificación de clientes con TLS."
 
 #. type: deftypevr
-#: doc/guix.texi:19873
+#: doc/guix.texi:22564
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-number pagesize"
 msgstr "{parámetro de @code{nslcd-configuration}} maybe-number pagesize"
 
 # FUZZY FUZZY FUZZY
 #. type: deftypevr
-#: doc/guix.texi:19877
+#: doc/guix.texi:22568
 msgid "Set this to a number greater than 0 to request paged results from the LDAP server in accordance with RFC2696.  The default (0) is to not request paged results."
 msgstr "Proporcione un valor superior a 0 para solicitar al servidor LDAP que proporcione los resultados divididos en páginas de acuerdo con el RFC2696. El valor predeterminado (0) no solicita resultados divididos en páginas."
 
 #. type: deftypevr
-#: doc/guix.texi:19882
+#: doc/guix.texi:22573
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-ignore-users-option nss-initgroups-ignoreusers"
 msgstr "{parámetro de @code{nslcd-configuration}} maybe-ignore-users-option nss-initgroups-ignoreusers"
 
 # FUZZY FUZZY
 #. type: deftypevr
-#: doc/guix.texi:19886
+#: doc/guix.texi:22577
 msgid "This option prevents group membership lookups through LDAP for the specified users.  Alternatively, the value 'all-local may be used.  With that value nslcd builds a full list of non-LDAP users on startup."
 msgstr "Esta opción previene las búsquedas de pertenencia a grupos a través de LDAP sobre las usuarias especificadas. De manera alternativa, se puede usar el valor 'all-local. Con dicho valor nslcd construye al inicio una lista completa de usuarias que no se encuentren en LDAP."
 
 #. type: deftypevr
-#: doc/guix.texi:19891
+#: doc/guix.texi:22582
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-number nss-min-uid"
 msgstr "{parámetro de @code{nslcd-configuration}} maybe-number nss-min-uid"
 
 # FUZZY FUZZY
 #. type: deftypevr
-#: doc/guix.texi:19894
+#: doc/guix.texi:22585
 msgid "This option ensures that LDAP users with a numeric user id lower than the specified value are ignored."
 msgstr "Esta opción hace que se ignoren las usuarias de LDAP con un identificador numérico inferior al valor especificado."
 
 #. type: deftypevr
-#: doc/guix.texi:19899
+#: doc/guix.texi:22590
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-number nss-uid-offset"
 msgstr "{parámetro de @code{nslcd-configuration}} maybe-number nss-uid-offset"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:19902
+#: doc/guix.texi:22593
 msgid "This option specifies an offset that is added to all LDAP numeric user ids.  This can be used to avoid user id collisions with local users."
 msgstr "Esta opción especifica un desplazamiento que se añade a todos los identificadores numéricos de usuaria de LDAP. Puede usarse para evitar colisiones de identificadores con usuarias locales."
 
 #. type: deftypevr
-#: doc/guix.texi:19907
+#: doc/guix.texi:22598
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-number nss-gid-offset"
 msgstr "{parámetro de @code{nslcd-configuration}} maybe-number nss-gid-offset"
 
 #. type: deftypevr
-#: doc/guix.texi:19910
+#: doc/guix.texi:22601
 msgid "This option specifies an offset that is added to all LDAP numeric group ids.  This can be used to avoid user id collisions with local groups."
 msgstr "Esta opción especifica un desplazamiento que se añade a todos los identificadores numéricos de grupos de LDAP. Puede usarse para evitar colisiones de identificadores con grupos locales."
 
 #. type: deftypevr
-#: doc/guix.texi:19915
+#: doc/guix.texi:22606
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-boolean nss-nested-groups"
 msgstr "{parámetro de @code{nslcd-configuration}} maybe-boolean nss-nested-groups"
 
 #. type: deftypevr
-#: doc/guix.texi:19921
+#: doc/guix.texi:22612
 msgid "If this option is set, the member attribute of a group may point to another group.  Members of nested groups are also returned in the higher level group and parent groups are returned when finding groups for a specific user.  The default is not to perform extra searches for nested groups."
 msgstr "Cuando se activa esta opción, un grupo puede contener como atributo la pertenencia a otro grupo. Los miembros de grupos anidados se devuelven en el grupo superior y los grupos superiores se devuelven cuando se busquen los grupos de una usuaria específica. El valor predeterminado determina que no se realicen búsquedas adicionales para grupos anidados."
 
 #. type: deftypevr
-#: doc/guix.texi:19926
+#: doc/guix.texi:22617
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-boolean nss-getgrent-skipmembers"
 msgstr "{parámetro de @code{nslcd-configuration}} maybe-boolean nss-getgrent-skipmembers"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:19931
+#: doc/guix.texi:22622
 msgid "If this option is set, the group member list is not retrieved when looking up groups.  Lookups for finding which groups a user belongs to will remain functional so the user will likely still get the correct groups assigned on login."
 msgstr "Cuando se activa esta opción, la lista de miembros de un grupo no se obtiene en las búsquedas de grupos. Las búsquedas que busquen los grupos de los que una usuaria es miembro continuarán funcionando de manera que probablemente a la usuaria se le asignen los grupos correctos durante el ingreso al sistema."
 
 #. type: deftypevr
-#: doc/guix.texi:19936
+#: doc/guix.texi:22627
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-boolean nss-disable-enumeration"
 msgstr "{parámetro de @code{nslcd-configuration}} maybe-boolean nss-disable-enumeration"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:19942
+#: doc/guix.texi:22633
 msgid "If this option is set, functions which cause all user/group entries to be loaded from the directory will not succeed in doing so.  This can dramatically reduce LDAP server load in situations where there are a great number of users and/or groups.  This option is not recommended for most configurations."
 msgstr "Cuando se activa esta opción, las funciones que provocan la carga de todas las entradas usuaria/grupo del directorio no tendrán éxito al realizarlo. Esto puede reducir de forma dramática la carga del servidor LDAP cuando existe un gran número de usuarias y/o grupos. Esta opción no se recomienda para la mayoría de las configuraciones."
 
 #. type: deftypevr
-#: doc/guix.texi:19947
+#: doc/guix.texi:22638
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-string validnames"
 msgstr "{parámetro de @code{nslcd-configuration}} maybe-string validnames"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:19951
+#: doc/guix.texi:22642
 msgid "This option can be used to specify how user and group names are verified within the system.  This pattern is used to check all user and group names that are requested and returned from LDAP."
 msgstr "Esta opción puede usarse para especificar cómo se verifican en el sistema los nombres de usuaria y grupo. Este patrón se usa para comprobar todos los nombres de usuarias y grupos que se soliciten y proporcionen a través de LDAP."
 
 #. type: deftypevr
-#: doc/guix.texi:19956
+#: doc/guix.texi:22647
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-boolean ignorecase"
 msgstr "{parámetro de @code{nslcd-configuration}} maybe-boolean ignorecase"
 
 # FUZZY FUZZY FUZZY
 #. type: deftypevr
-#: doc/guix.texi:19961
+#: doc/guix.texi:22652
 msgid "This specifies whether or not to perform searches using case-insensitive matching.  Enabling this could open up the system to authorization bypass vulnerabilities and introduce nscd cache poisoning vulnerabilities which allow denial of service."
 msgstr "Especifica si se realizarán las búsquedas sin diferenciar mayúsculas y minúsculas o no. Su activación puede abrir puntos vulnerables que permitan la omisión de las comprobaciones de autorización e introducir vulnerabilidades que permitan el envenenamiento de la caché de nscd, lo que puede provocar la denegación del servicio."
 
 #. type: deftypevr
-#: doc/guix.texi:19966
+#: doc/guix.texi:22657
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-boolean pam-authc-ppolicy"
 msgstr "{parámetro de @code{nslcd-configuration}} maybe-boolean pam-authc-ppolicy"
 
 #. type: deftypevr
-#: doc/guix.texi:19969
+#: doc/guix.texi:22660
 msgid "This option specifies whether password policy controls are requested and handled from the LDAP server when performing user authentication."
 msgstr "Esta opción determina si los controles de la política de contraseñas se solicitan y manejan desde el servidor LDAP cuando se realice la identificación de usuarias."
 
 #. type: deftypevr
-#: doc/guix.texi:19974
+#: doc/guix.texi:22665
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-string pam-authc-search"
 msgstr "{parámetro de @code{nslcd-configuration}} maybe-string pam-authc-search"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:19980
+#: doc/guix.texi:22671
 msgid "By default nslcd performs an LDAP search with the user's credentials after BIND (authentication) to ensure that the BIND operation was successful.  The default search is a simple check to see if the user's DN exists.  A search filter can be specified that will be used instead.  It should return at least one entry."
 msgstr "De manera predeterminada nslcd realiza una búsqueda LDAP con las credenciales de la usuaria tras la orden BIND (identificación) para asegurarse de que la opción BIND fue satisfactoria. La búsqueda predeterminada es una simple comprobación de la existencia del DN de la usuaria. Se puede especificar un filtro de búsqueda que se usará en vez de dicha búsqueda. Debe devolver al menos una entrada."
 
 #. type: deftypevr
-#: doc/guix.texi:19985
+#: doc/guix.texi:22676
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-string pam-authz-search"
 msgstr "{parámetro de @code{nslcd-configuration}} maybe-string pam-authz-search"
 
 #. type: deftypevr
-#: doc/guix.texi:19989
+#: doc/guix.texi:22680
 msgid "This option allows flexible fine tuning of the authorisation check that should be performed.  The search filter specified is executed and if any entries match, access is granted, otherwise access is denied."
 msgstr "Esta opción permite la configuración detallada de las comprobaciones de autorización que deben realizarse. El filtro de búsqueda especificado es ejecutado, y si cualquier entrada corresponde se permite el acceso, el cual se deniega en caso contrario."
 
 #. type: deftypevr
-#: doc/guix.texi:19994
+#: doc/guix.texi:22685
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-string pam-password-prohibit-message"
 msgstr "{parámetro de @code{nslcd-configuration}} maybe-string pam-password-prohibit-message"
 
 #. type: deftypevr
-#: doc/guix.texi:19999
+#: doc/guix.texi:22690
 msgid "If this option is set password modification using pam_ldap will be denied and the specified message will be presented to the user instead.  The message can be used to direct the user to an alternative means of changing their password."
 msgstr "Si se proporciona esta opción, se denegará la modificación de contraseñas a través de pam_ldap y en vez de ello el mensaje especificado se presentará a la usuaria. El mensaje puede usarse para redirigir a la usuaria a un medio alternativo para el cambio de su contraseña."
 
 #. type: deftypevr
-#: doc/guix.texi:20004
+#: doc/guix.texi:22695
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} list pam-services"
 msgstr "{parámetro de @code{nslcd-configuration}} lista pam-services"
 
 #. type: deftypevr
-#: doc/guix.texi:20006
+#: doc/guix.texi:22697
 msgid "List of pam service names for which LDAP authentication should suffice."
 msgstr "Lista de nombres de servicio de PAM para los que la identificación de LDAP debería ser suficiente."
 
 #. type: cindex
-#: doc/guix.texi:20017
+#: doc/guix.texi:22708
 #, no-wrap
 msgid "web"
 msgstr "web"
 
 #. type: cindex
-#: doc/guix.texi:20018
+#: doc/guix.texi:22709
 #, no-wrap
 msgid "www"
 msgstr "www"
 
 #. type: cindex
-#: doc/guix.texi:20019
+#: doc/guix.texi:22710
 #, no-wrap
 msgid "HTTP"
 msgstr "HTTP"
 
 #. type: Plain text
-#: doc/guix.texi:20022
+#: doc/guix.texi:22713
 msgid "The @code{(gnu services web)} module provides the Apache HTTP Server, the nginx web server, and also a fastcgi wrapper daemon."
 msgstr "El módulo @code{(gnu services web)} proporciona el servidor HTTP Apache, el servidor web nginx y también un recubrimiento del daemon de fastcgi."
 
 #. type: subsubheading
-#: doc/guix.texi:20023
+#: doc/guix.texi:22714
 #, no-wrap
 msgid "Apache HTTP Server"
 msgstr "Servidor HTTP Apache"
 
 #. type: deffn
-#: doc/guix.texi:20025
+#: doc/guix.texi:22716
 #, no-wrap
 msgid "{Scheme Variable} httpd-service-type"
 msgstr "{Variable Scheme} httpd-service-type"
 
 # FUZZY
 #. type: deffn
-#: doc/guix.texi:20029
+#: doc/guix.texi:22720
 msgid "Service type for the @uref{https://httpd.apache.org/,Apache HTTP} server (@dfn{httpd}).  The value for this service type is a @code{httpd-configuration} record."
 msgstr "Tipo de servicio para el servidor @uref{https://httpd.apache.org/, Apache HTTP} (@dfn{httpd}).  El valor para este tipo de servicio es un registro @code{httpd-configuration}."
 
 #. type: deffn
-#: doc/guix.texi:20031 doc/guix.texi:20212
+#: doc/guix.texi:22722 doc/guix.texi:22903
 msgid "A simple example configuration is given below."
 msgstr "Un ejemplo de configuración simple se proporciona a continuación."
 
 #. type: lisp
-#: doc/guix.texi:20039
+#: doc/guix.texi:22730
 #, no-wrap
 msgid ""
 "(service httpd-service-type\n"
@@ -38799,12 +43519,12 @@ msgstr ""
 
 # FUZZY
 #. type: deffn
-#: doc/guix.texi:20043
+#: doc/guix.texi:22734
 msgid "Other services can also extend the @code{httpd-service-type} to add to the configuration."
 msgstr "Otros servicios también pueden extender el tipo @code{httpd-service-type} para añadir su contribución a la configuración."
 
 #. type: lisp
-#: doc/guix.texi:20052 doc/guix.texi:20192
+#: doc/guix.texi:22743 doc/guix.texi:22883
 #, no-wrap
 msgid ""
 "(simple-service 'www.example.com-server httpd-service-type\n"
@@ -38824,117 +43544,117 @@ msgstr ""
 "                                       \"\\n\")))))\n"
 
 #. type: Plain text
-#: doc/guix.texi:20058
+#: doc/guix.texi:22749
 msgid "The details for the @code{httpd-configuration}, @code{httpd-module}, @code{httpd-config-file} and @code{httpd-virtualhost} record types are given below."
 msgstr "Los detalles de los tipos de registro @code{httpd-configuration}, @code{httpd-module}, @code{httpd-config-file} y @code{httpd-virtualhost} se proporcionan a continuación."
 
 #. type: deffn
-#: doc/guix.texi:20059
+#: doc/guix.texi:22750
 #, no-wrap
 msgid "{Data Type} httpd-configuration"
 msgstr "{Tipo de datos} httpd-configuration"
 
 #. type: deffn
-#: doc/guix.texi:20061
+#: doc/guix.texi:22752
 msgid "This data type represents the configuration for the httpd service."
 msgstr "Este tipo de datos representa la configuración del servicio httpd."
 
 #. type: item
-#: doc/guix.texi:20063
+#: doc/guix.texi:22754
 #, no-wrap
 msgid "@code{package} (default: @code{httpd})"
 msgstr "@code{package} (predeterminado: @code{httpd})"
 
 #. type: table
-#: doc/guix.texi:20065
+#: doc/guix.texi:22756
 msgid "The httpd package to use."
 msgstr "El paquete httpd usado."
 
 #. type: item
-#: doc/guix.texi:20066 doc/guix.texi:20155
+#: doc/guix.texi:22757 doc/guix.texi:22846
 #, no-wrap
 msgid "@code{pid-file} (default: @code{\"/var/run/httpd\"})"
 msgstr "@code{pid-file} (predeterminado: @code{\"/var/run/httpd\"})"
 
 #. type: table
-#: doc/guix.texi:20068
+#: doc/guix.texi:22759
 msgid "The pid file used by the shepherd-service."
-msgstr "El fichero pid usado por el servicio de Shepherd."
+msgstr "El archivo pid usado por el servicio de Shepherd."
 
 #. type: item
-#: doc/guix.texi:20069
+#: doc/guix.texi:22760
 #, no-wrap
 msgid "@code{config} (default: @code{(httpd-config-file)})"
 msgstr "@code{config} (predeterminado: @code{(httpd-config-file)})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:20074
+#: doc/guix.texi:22765
 msgid "The configuration file to use with the httpd service. The default value is a @code{httpd-config-file} record, but this can also be a different G-expression that generates a file, for example a @code{plain-file}. A file outside of the store can also be specified through a string."
-msgstr "El fichero de configuración usado por el servicio httpd. El valor predeterminado es un registro @code{httpd-config-file}, pero también puede ser una expresión-G diferente que genere un fichero, por ejemplo mediante el uso de @code{plain-file}. Un fichero externo al almacén se puede especificar mediante una cadena."
+msgstr "El archivo de configuración usado por el servicio httpd. El valor predeterminado es un registro @code{httpd-config-file}, pero también puede ser una expresión-G diferente que genere un archivo, por ejemplo mediante el uso de @code{plain-file}. Un archivo externo al almacén se puede especificar mediante una cadena."
 
 #. type: deffn
-#: doc/guix.texi:20078
+#: doc/guix.texi:22769
 #, no-wrap
 msgid "{Data Type} httpd-module"
 msgstr "{Tipo de datos} httpd-module"
 
 #. type: deffn
-#: doc/guix.texi:20080
+#: doc/guix.texi:22771
 msgid "This data type represents a module for the httpd service."
 msgstr "Este es el tipo de datos que representa un módulo para el servicio httpd."
 
 #. type: table
-#: doc/guix.texi:20084
+#: doc/guix.texi:22775
 msgid "The name of the module."
 msgstr "El nombre del módulo."
 
 #. type: table
-#: doc/guix.texi:20090
+#: doc/guix.texi:22781
 msgid "The file for the module. This can be relative to the httpd package being used, the absolute location of a file, or a G-expression for a file within the store, for example @code{(file-append mod-wsgi \"/modules/mod_wsgi.so\")}."
-msgstr "El fichero para el módulo. La ruta puede ser relativa al paquete httpd usado, la ruta absoluta de un fichero, o una expresión-G para un fichero dentro del almacén, por ejemplo @code{(file-append mod-wsgi \"/modules/mod_wsgi.so\")}."
+msgstr "El archivo para el módulo. La ruta puede ser relativa al paquete httpd usado, la ruta absoluta de un archivo, o una expresión-G para un archivo dentro del almacén, por ejemplo @code{(file-append mod-wsgi \"/modules/mod_wsgi.so\")}."
 
 #. type: defvr
-#: doc/guix.texi:20094
+#: doc/guix.texi:22785
 #, no-wrap
 msgid "{Scheme Variable} %default-httpd-modules"
 msgstr "{Variable Scheme} %default-httpd-modules"
 
 #. type: defvr
-#: doc/guix.texi:20096
+#: doc/guix.texi:22787
 msgid "A default list of @code{httpd-module} objects."
 msgstr "Una lista de objetos @code{httpd-module} predeterminados."
 
 #. type: deffn
-#: doc/guix.texi:20098
+#: doc/guix.texi:22789
 #, no-wrap
 msgid "{Data Type} httpd-config-file"
 msgstr "{Tipo de datos} httpd-config-file"
 
 #. type: deffn
-#: doc/guix.texi:20100
+#: doc/guix.texi:22791
 msgid "This data type represents a configuration file for the httpd service."
-msgstr "Este tipo de datos representa un fichero de configuración para el servicio httpd."
+msgstr "Este tipo de datos representa un archivo de configuración para el servicio httpd."
 
 #. type: item
-#: doc/guix.texi:20102
+#: doc/guix.texi:22793
 #, no-wrap
 msgid "@code{modules} (default: @code{%default-httpd-modules})"
 msgstr "@code{modules} (predeterminados: @code{%default-httpd-modules})"
 
 # FUZZY FUZZY
 #. type: table
-#: doc/guix.texi:20105
+#: doc/guix.texi:22796
 msgid "The modules to load. Additional modules can be added here, or loaded by additional configuration."
 msgstr "Módulos que deben cargarse. Aquí pueden añadir módulos adicionales, o que se carguen en la configuración adicional."
 
 #. type: table
-#: doc/guix.texi:20108
+#: doc/guix.texi:22799
 msgid "For example, in order to handle requests for PHP files, you can use Apache’s @code{mod_proxy_fcgi} module along with @code{php-fpm-service-type}:"
-msgstr "Por ejemplo, para manejar las peticiones de ficheros PHP, puede usar el módulo @code{mod_proxy_fcgi} de Apache junto con @code{php-fpm-service-type}:"
+msgstr "Por ejemplo, para manejar las peticiones de archivos PHP, puede usar el módulo @code{mod_proxy_fcgi} de Apache junto con @code{php-fpm-service-type}:"
 
 #. type: lisp
-#: doc/guix.texi:20130
+#: doc/guix.texi:22821
 #, no-wrap
 msgid ""
 "(service httpd-service-type\n"
@@ -38980,170 +43700,170 @@ msgstr ""
 "          (socket-group \"httpd\")))\n"
 
 #. type: item
-#: doc/guix.texi:20132
+#: doc/guix.texi:22823
 #, no-wrap
 msgid "@code{server-root} (default: @code{httpd})"
 msgstr "@code{server-root} (predeterminado: @code{httpd})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:20136
+#: doc/guix.texi:22827
 msgid "The @code{ServerRoot} in the configuration file, defaults to the httpd package. Directives including @code{Include} and @code{LoadModule} are taken as relative to the server root."
-msgstr "El campo @code{ServerRoot} (raíz del servidor) en el fichero de configuración, cuyo valor predeterminado apunta al paquete httpd. Directivas como @code{Include} and @code{LoadModule} se interpretan como relativas a la raíz del servidor."
+msgstr "El campo @code{ServerRoot} (raíz del servidor) en el archivo de configuración, cuyo valor predeterminado apunta al paquete httpd. Directivas como @code{Include} and @code{LoadModule} se interpretan como relativas a la raíz del servidor."
 
 #. type: item
-#: doc/guix.texi:20137
+#: doc/guix.texi:22828
 #, no-wrap
 msgid "@code{server-name} (default: @code{#f})"
 msgstr "@code{server-name} (predeterminado: @code{#f})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:20141
+#: doc/guix.texi:22832
 msgid "The @code{ServerName} in the configuration file, used to specify the request scheme, hostname and port that the server uses to identify itself."
-msgstr "El campo @code{ServerName} (nombre del servidor) en el fichero de configuración, el cual se usa para especificar el esquema de peticiones, nombre de máquina y puerto que el servidor usa para su propia identificación."
+msgstr "El campo @code{ServerName} (nombre del servidor) en el archivo de configuración, el cual se usa para especificar el esquema de peticiones, nombre de máquina y puerto que el servidor usa para su propia identificación."
 
 #. type: table
-#: doc/guix.texi:20145
+#: doc/guix.texi:22836
 msgid "This doesn't need to be set in the server config, and can be specified in virtual hosts. The default is @code{#f} to not specify a @code{ServerName}."
 msgstr "No es necesario proporcionar un valor en la configuración del servidor, y puede especificarse en las máquinas virtuales. El valor predeterminado es @code{#f} que no especifica un campo @code{ServerName}."
 
 #. type: item
-#: doc/guix.texi:20146
+#: doc/guix.texi:22837
 #, no-wrap
 msgid "@code{document-root} (default: @code{\"/srv/http\"})"
 msgstr "@code{document-root} (predeterminado: @code{\"/srv/http\"})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:20148
+#: doc/guix.texi:22839
 msgid "The @code{DocumentRoot} from which files will be served."
 msgstr "La raíz (@code{DocumentRoot}) desde la que se proporcionan los archivos."
 
 #. type: item
-#: doc/guix.texi:20149
+#: doc/guix.texi:22840
 #, no-wrap
 msgid "@code{listen} (default: @code{'(\"80\")})"
 msgstr "@code{listen} (predeterminado: @code{'(\"80\")})"
 
 #. type: table
-#: doc/guix.texi:20154
+#: doc/guix.texi:22845
 msgid "The list of values for the @code{Listen} directives in the config file. The value should be a list of strings, when each string can specify the port number to listen on, and optionally the IP address and protocol to use."
-msgstr "La lista de valores para las directivas @code{Listen} en el fichero de configuración. El valor debe ser una lista de cadenas, donde cada cadena puede especificar el número de puerto en el que se escucha, y de manera opcional la dirección IP y el protocolo usados."
+msgstr "La lista de valores para las directivas @code{Listen} en el archivo de configuración. El valor debe ser una lista de cadenas, donde cada cadena puede especificar el número de puerto en el que se escucha, y de manera opcional la dirección IP y el protocolo usados."
 
 #. type: table
-#: doc/guix.texi:20159
+#: doc/guix.texi:22850
 msgid "The @code{PidFile} to use. This should match the @code{pid-file} set in the @code{httpd-configuration} so that the Shepherd service is configured correctly."
-msgstr "El fichero de PID usado (@code{PidFile}). Debe corresponder con el valor de @code{pid-file} proporcionado en @code{httpd-configuration} de manera que el servicio de Shepherd se configure de manera correcta."
+msgstr "El archivo de PID usado (@code{PidFile}). Debe corresponder con el valor de @code{pid-file} proporcionado en @code{httpd-configuration} de manera que el servicio de Shepherd se configure de manera correcta."
 
 #. type: item
-#: doc/guix.texi:20160
+#: doc/guix.texi:22851
 #, no-wrap
 msgid "@code{error-log} (default: @code{\"/var/log/httpd/error_log\"})"
 msgstr "@code{error-log} (predeterminado: @code{\"/var/log/httpd/error_log\"})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:20162
+#: doc/guix.texi:22853
 msgid "The @code{ErrorLog} to which the server will log errors."
-msgstr "El fichero @code{ErrorLog} en el que el servidor registrará los errores."
+msgstr "El archivo @code{ErrorLog} en el que el servidor registrará los errores."
 
 #. type: item
-#: doc/guix.texi:20163 doc/guix.texi:20702
+#: doc/guix.texi:22854 doc/guix.texi:23415
 #, no-wrap
 msgid "@code{user} (default: @code{\"httpd\"})"
 msgstr "@code{user} (predeterminada: @code{\"httpd\"})"
 
 #. type: table
-#: doc/guix.texi:20165
+#: doc/guix.texi:22856
 msgid "The @code{User} which the server will answer requests as."
 msgstr "La usuaria como la que el servidor responderá a las peticiones."
 
 #. type: item
-#: doc/guix.texi:20166
+#: doc/guix.texi:22857
 #, no-wrap
 msgid "@code{group} (default: @code{\"httpd\"})"
 msgstr "@code{group} (predeterminado: @code{\"httpd\"})"
 
 #. type: table
-#: doc/guix.texi:20168
+#: doc/guix.texi:22859
 msgid "The @code{Group} which the server will answer requests as."
 msgstr "El grupo como el que el servidor responderá a las peticiones."
 
 #. type: item
-#: doc/guix.texi:20169
+#: doc/guix.texi:22860
 #, no-wrap
 msgid "@code{extra-config} (default: @code{(list \"TypesConfig etc/httpd/mime.types\")})"
 msgstr "@code{extra-config} (predeterminadas: @code{(list \"TypesConfig etc/httpd/mime.types\")})"
 
 #. type: table
-#: doc/guix.texi:20172
+#: doc/guix.texi:22863
 msgid "A flat list of strings and G-expressions which will be added to the end of the configuration file."
-msgstr "Una lista de cadenas y expresiones-G que se añadirán al final del fichero de configuración."
+msgstr "Una lista de cadenas y expresiones-G que se añadirán al final del archivo de configuración."
 
 #. type: table
-#: doc/guix.texi:20175
+#: doc/guix.texi:22866
 msgid "Any values which the service is extended with will be appended to this list."
 msgstr "Los valores con los que se extiende el servicio se añaden al final de esta lista."
 
 #. type: deffn
-#: doc/guix.texi:20179
+#: doc/guix.texi:22870
 #, no-wrap
 msgid "{Data Type} httpd-virtualhost"
 msgstr "{Tipo de datos} httpd-virtualhost"
 
 #. type: deffn
-#: doc/guix.texi:20181
+#: doc/guix.texi:22872
 msgid "This data type represents a virtualhost configuration block for the httpd service."
 msgstr "Este tipo de datos representa un bloque de configuración de máquina virtual del servicio httpd."
 
 # FUZZY
 #. type: deffn
-#: doc/guix.texi:20183
+#: doc/guix.texi:22874
 msgid "These should be added to the extra-config for the httpd-service."
 msgstr "Se deben añadir a la configuración adicional extra-config del servicio httpd-service."
 
 #. type: code{#1}
-#: doc/guix.texi:20195
+#: doc/guix.texi:22886
 #, no-wrap
 msgid "addresses-and-ports"
 msgstr "addresses-and-ports"
 
 #. type: table
-#: doc/guix.texi:20197
+#: doc/guix.texi:22888
 msgid "The addresses and ports for the @code{VirtualHost} directive."
 msgstr "Las direcciones y puertos de la directiva @code{VirtualHost}."
 
 #. type: code{#1}
-#: doc/guix.texi:20198
+#: doc/guix.texi:22889
 #, no-wrap
 msgid "contents"
 msgstr "contents"
 
 #. type: table
-#: doc/guix.texi:20201
+#: doc/guix.texi:22892
 msgid "The contents of the @code{VirtualHost} directive, this should be a list of strings and G-expressions."
 msgstr "El contenido de la directiva @code{VirtualHost}; debe ser una lista de cadenas y expresiones-G."
 
 #. type: subsubheading
-#: doc/guix.texi:20205
+#: doc/guix.texi:22896
 #, no-wrap
 msgid "NGINX"
 msgstr "NGINX"
 
 #. type: deffn
-#: doc/guix.texi:20207
+#: doc/guix.texi:22898
 #, no-wrap
 msgid "{Scheme Variable} nginx-service-type"
 msgstr "{Variable Scheme} nginx-service-type"
 
 #. type: deffn
-#: doc/guix.texi:20210
+#: doc/guix.texi:22901
 msgid "Service type for the @uref{https://nginx.org/,NGinx} web server.  The value for this service type is a @code{<nginx-configuration>} record."
 msgstr "Tipo de servicio para el servidor web @uref{https://nginx.org/,NGinx}. El valor para este tipo de servicio es un registro @code{<nginx-configuration>}."
 
 #. type: lisp
-#: doc/guix.texi:20220 doc/guix.texi:20274
+#: doc/guix.texi:22911 doc/guix.texi:22965
 #, no-wrap
 msgid ""
 "(service nginx-service-type\n"
@@ -39161,12 +43881,12 @@ msgstr ""
 "                     (root \"/srv/http/www.example.com\"))))))\n"
 
 #. type: deffn
-#: doc/guix.texi:20225
+#: doc/guix.texi:22916
 msgid "In addition to adding server blocks to the service configuration directly, this service can be extended by other services to add server blocks, as in this example:"
 msgstr "Además de añadiendo bloques de servidor a la configuración del servicio de manera directa, este servicio puede extenderse con otros servicios para añadir bloques de servidor, como en este ejemplo:"
 
 #. type: lisp
-#: doc/guix.texi:20231
+#: doc/guix.texi:22922
 #, no-wrap
 msgid ""
 "(simple-service 'my-extra-server nginx-service-type\n"
@@ -39181,92 +43901,92 @@ msgstr ""
 
 # FUZZY
 #. type: Plain text
-#: doc/guix.texi:20242
+#: doc/guix.texi:22933
 msgid "At startup, @command{nginx} has not yet read its configuration file, so it uses a default file to log error messages.  If it fails to load its configuration file, that is where error messages are logged.  After the configuration file is loaded, the default error log file changes as per configuration.  In our case, startup error messages can be found in @file{/var/run/nginx/logs/error.log}, and after configuration in @file{/var/log/nginx/error.log}.  The second location can be changed with the @var{log-directory} configuration option."
-msgstr "Durante su inicio, @command{nginx} no ha leído todavía su fichero de configuración, por lo que usa un fichero predeterminado para registrar los mensajes de error. Si se produce algún fallo al cargar su fichero de configuración, allí es donde se registran los mensajes de error. Tras la carga del fichero de configuración, el fichero de registro de errores predeterminado cambia al especificado allí. En nuestro caso, los mensajes de error durante el inicio se pueden encontrar en @file{/var/run/nginx/logs/error.log}, y tras la configuración en @file{/var/log/nginx/error.log}. La segunda ruta puede cambiarse con las opciones de configuración @var{log-directory}."
+msgstr "Durante su inicio, @command{nginx} no ha leído todavía su archivo de configuración, por lo que usa un archivo predeterminado para registrar los mensajes de error. Si se produce algún fallo al cargar su archivo de configuración, allí es donde se registran los mensajes de error. Tras la carga del archivo de configuración, el archivo de registro de errores predeterminado cambia al especificado allí. En nuestro caso, los mensajes de error durante el inicio se pueden encontrar en @file{/var/run/nginx/logs/error.log}, y tras la configuración en @file{/var/log/nginx/error.log}. La segunda ruta puede cambiarse con las opciones de configuración @var{log-directory}."
 
 #. type: deffn
-#: doc/guix.texi:20243
+#: doc/guix.texi:22934
 #, no-wrap
 msgid "{Data Type} nginx-configuration"
 msgstr "{Tipo de datos} nginx-configuration"
 
 #. type: deffn
-#: doc/guix.texi:20247
+#: doc/guix.texi:22938
 msgid "This data type represents the configuration for NGinx. Some configuration can be done through this and the other provided record types, or alternatively, a config file can be provided."
-msgstr "Este tipo de datos representa la configuración para NGinx. Alguna configuración puede llevarse a cabo a través de este y otros tipos de registro proporcionados, o de manera alternativa se puede proporcionar un fichero de configuración."
+msgstr "Este tipo de datos representa la configuración para NGinx. Alguna configuración puede llevarse a cabo a través de este y otros tipos de registro proporcionados, o de manera alternativa se puede proporcionar un archivo de configuración."
 
 #. type: item
-#: doc/guix.texi:20249
+#: doc/guix.texi:22940
 #, no-wrap
 msgid "@code{nginx} (default: @code{nginx})"
 msgstr "@code{nginx} (predeterminado: @code{nginx})"
 
 #. type: table
-#: doc/guix.texi:20251
+#: doc/guix.texi:22942
 msgid "The nginx package to use."
 msgstr "El paquete nginx usado."
 
 #. type: item
-#: doc/guix.texi:20252
+#: doc/guix.texi:22943
 #, no-wrap
 msgid "@code{log-directory} (default: @code{\"/var/log/nginx\"})"
 msgstr "@code{log-directory} (predeterminado: @code{\"/var/log/nginx\"})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:20254
+#: doc/guix.texi:22945
 msgid "The directory to which NGinx will write log files."
-msgstr "Directorio en el que NGinx escribirá los ficheros de registro."
+msgstr "Directorio en el que NGinx escribirá los archivos de registro."
 
 #. type: item
-#: doc/guix.texi:20255
+#: doc/guix.texi:22946
 #, no-wrap
 msgid "@code{run-directory} (default: @code{\"/var/run/nginx\"})"
 msgstr "@code{run-directory} (predeterminado: @code{\"/var/run/nginx\"})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:20258
+#: doc/guix.texi:22949
 msgid "The directory in which NGinx will create a pid file, and write temporary files."
-msgstr "Directorio en el que NGinx crea el fichero de PID, y escribe ficheros temporales."
+msgstr "Directorio en el que NGinx crea el archivo de PID, y escribe archivos temporales."
 
 #. type: item
-#: doc/guix.texi:20259
+#: doc/guix.texi:22950
 #, no-wrap
 msgid "@code{server-blocks} (default: @code{'()})"
 msgstr "@code{server-blocks} (predeterminados: @code{'()})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:20263
+#: doc/guix.texi:22954
 msgid "A list of @dfn{server blocks} to create in the generated configuration file, the elements should be of type @code{<nginx-server-configuration>}."
-msgstr "Una lista de @dfn{bloques de servidor} que se crearán en el fichero de configuración generado; los elementos deben ser del tipo @code{<nginx-server-configuration>}."
+msgstr "Una lista de @dfn{bloques de servidor} que se crearán en el archivo de configuración generado; los elementos deben ser del tipo @code{<nginx-server-configuration>}."
 
 #. type: table
-#: doc/guix.texi:20267
+#: doc/guix.texi:22958
 msgid "The following example would setup NGinx to serve @code{www.example.com} from the @code{/srv/http/www.example.com} directory, without using HTTPS."
 msgstr "El ejemplo siguiente configura NGinx para proporcionar @code{www.example.com} a partir del directorio @code{/srv/http/www.example.com}, sin usar HTTPS."
 
 #. type: item
-#: doc/guix.texi:20276
+#: doc/guix.texi:22967
 #, no-wrap
 msgid "@code{upstream-blocks} (default: @code{'()})"
 msgstr "@code{upstream-blocks} (predeterminados: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:20280
+#: doc/guix.texi:22971
 msgid "A list of @dfn{upstream blocks} to create in the generated configuration file, the elements should be of type @code{<nginx-upstream-configuration>}."
-msgstr "Una lista de @dfn{bloques upstream} creada en el fichero de configuración generado, los elementos deben ser del tipo @code{<nginx-upstream-configuration>}."
+msgstr "Una lista de @dfn{bloques upstream} creada en el archivo de configuración generado, los elementos deben ser del tipo @code{<nginx-upstream-configuration>}."
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:20287
+#: doc/guix.texi:22978
 msgid "Configuring upstreams through the @code{upstream-blocks} can be useful when combined with @code{locations} in the @code{<nginx-server-configuration>} records.  The following example creates a server configuration with one location configuration, that will proxy requests to a upstream configuration, which will handle requests with two servers."
 msgstr "La configuración de proveedores a través de @code{upstream-blocks} puede ser útil al combinarse con @code{location} en los registros @code{<nginx-server-configuration>}. El siguiente ejemplo crea la configuración de un servidor con una configuración de ruta, que hará de intermediaria en las peticiones a la configuración de proveedores, que delegarán las peticiones en dos servidores."
 
 #. type: lisp
-#: doc/guix.texi:20306
+#: doc/guix.texi:22997
 #, no-wrap
 msgid ""
 "(service\n"
@@ -39307,73 +44027,121 @@ msgstr ""
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:20314
+#: doc/guix.texi:23005
 msgid "If a configuration @var{file} is provided, this will be used, rather than generating a configuration file from the provided @code{log-directory}, @code{run-directory}, @code{server-blocks} and @code{upstream-blocks}.  For proper operation, these arguments should match what is in @var{file} to ensure that the directories are created when the service is activated."
-msgstr "Si se proporciona un fichero de configuración con @var{file}, se usará este, en vez de generar un fichero de configuración a partir de los parámetros @code{log-directory}, @code{run-directory}, @code{server-blocks} y @code{upstream-blocks} proporcionados. Para conseguir un funcionamiento adecuado, estos parámetros deben corresponder con el contenido de @var{file}, lo que asegura que los directorios se hayan creado durante la activación del servicio."
+msgstr "Si se proporciona un archivo de configuración con @var{file}, se usará este, en vez de generar un archivo de configuración a partir de los parámetros @code{log-directory}, @code{run-directory}, @code{server-blocks} y @code{upstream-blocks} proporcionados. Para conseguir un funcionamiento adecuado, estos parámetros deben corresponder con el contenido de @var{file}, lo que asegura que los directorios se hayan creado durante la activación del servicio."
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:20318
+#: doc/guix.texi:23009
 msgid "This can be useful if you have an existing configuration file, or it's not possible to do what is required through the other parts of the nginx-configuration record."
-msgstr "Esto puede ser útil si ya dispone de un fichero de configuración, o no es posible hacer lo que necesita con el resto de opciones del registro nginx-configuration."
+msgstr "Esto puede ser útil si ya dispone de un archivo de configuración, o no es posible hacer lo que necesita con el resto de opciones del registro nginx-configuration."
 
 #. type: item
-#: doc/guix.texi:20319
+#: doc/guix.texi:23010
 #, no-wrap
 msgid "@code{server-names-hash-bucket-size} (default: @code{#f})"
 msgstr "@code{server-names-hash-bucket-size} (predeterminado: @code{#f})"
 
 # FUZZY FUZZY FUZZY
 #. type: table
-#: doc/guix.texi:20322
+#: doc/guix.texi:23013
 msgid "Bucket size for the server names hash tables, defaults to @code{#f} to use the size of the processors cache line."
 msgstr "Tamaño del cubo para las tablas hash de los nombres de servidor, cuyo valor predeterminado es @code{#f} para que se use el tamaño de la línea de caché de los procesadores."
 
 #. type: item
-#: doc/guix.texi:20323
+#: doc/guix.texi:23014
 #, no-wrap
 msgid "@code{server-names-hash-bucket-max-size} (default: @code{#f})"
 msgstr "@code{server-names-hash-bucket-max-size} (predeterminado: @code{#f})"
 
 # FUZZY FUZZY FUZZY
 #. type: table
-#: doc/guix.texi:20325
+#: doc/guix.texi:23016
 msgid "Maximum bucket size for the server names hash tables."
 msgstr "Tamaño máximo del cubo para las tablas hash de nombres de servidor."
 
 #. type: table
-#: doc/guix.texi:20329
+#: doc/guix.texi:23020
 msgid "List of nginx dynamic modules to load.  This should be a list of file names of loadable modules, as in this example:"
-msgstr "Lista de módulos dinámicos de nginx cargados. Debe ser una lista de nombres de fichero de módulos cargables, como en este ejemplo:"
+msgstr "Lista de módulos dinámicos de nginx cargados. Debe ser una lista de nombres de archivo de módulos cargables, como en este ejemplo:"
 
 #. type: lisp
-#: doc/guix.texi:20335
+#: doc/guix.texi:23028
 #, no-wrap
 msgid ""
 "(modules\n"
 " (list\n"
 "  (file-append nginx-accept-language-module \"\\\n"
-"/etc/nginx/modules/ngx_http_accept_language_module.so\")))\n"
+"/etc/nginx/modules/ngx_http_accept_language_module.so\")\n"
+"  (file-append nginx-lua-module \"\\\n"
+"/etc/nginx/modules/ngx_http_lua_module.so\")))\n"
 msgstr ""
 "(modules\n"
 " (list\n"
 "  (file-append nginx-accept-language-module \"\\\n"
-"/etc/nginx/modules/ngx_http_accept_language_module.so\")))\n"
+"/etc/nginx/modules/ngx_http_accept_language_module.so\")\n"
+"  (file-append nginx-lua-module \"\\\n"
+"/etc/nginx/modules/ngx_http_lua_module.so\")))\n"
+
+#. type: item
+#: doc/guix.texi:23030
+#, no-wrap
+msgid "@code{lua-package-path} (default: @code{'()})"
+msgstr "@code{lua-package-path} (predeterminada: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:23033
+msgid "List of nginx lua packages to load.  This should be a list of package names of loadable lua modules, as in this example:"
+msgstr "Lista de paquetes de lua para nginx cargados. Debe ser una lista de nombres de archivo de módulos cargables, como en este ejemplo:"
+
+#. type: lisp
+#: doc/guix.texi:23040
+#, no-wrap
+msgid ""
+"(lua-package-path (list lua-resty-core\n"
+"                        lua-resty-lrucache\n"
+"                        lua-resty-signal\n"
+"                        lua-tablepool\n"
+"                        lua-resty-shell))\n"
+msgstr ""
+"(lua-package-path (list lua-resty-core\n"
+"                        lua-resty-lrucache\n"
+"                        lua-resty-signal\n"
+"                        lua-tablepool\n"
+"                        lua-resty-shell))\n"
+
+#. type: item
+#: doc/guix.texi:23042
+#, no-wrap
+msgid "@code{lua-package-cpath} (default: @code{'()})"
+msgstr "@code{lua-package-cpath} (predeterminada: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:23045
+msgid "List of nginx lua C packages to load.  This should be a list of package names of loadable lua C modules, as in this example:"
+msgstr "Lista de paquetes C de lua para nginx cargados. Debe ser una lista de nombres de archivo de módulos cargables, como en este ejemplo:"
+
+#. type: lisp
+#: doc/guix.texi:23048
+#, no-wrap
+msgid "(lua-package-cpath (list lua-resty-signal))\n"
+msgstr "(lua-package-cpath (list lua-resty-signal))\n"
 
 #. type: item
-#: doc/guix.texi:20337
+#: doc/guix.texi:23050
 #, no-wrap
 msgid "@code{global-directives} (default: @code{'((events . ()))})"
 msgstr "@code{global-directives} (predeterminadas: @code{'((events . ()))})"
 
 # FUZZY FUZZY
 #. type: table
-#: doc/guix.texi:20340
+#: doc/guix.texi:23053
 msgid "Association list of global directives for the top level of the nginx configuration.  Values may themselves be association lists."
 msgstr "Lista asociativa de directivas globales para el nivel superior de la configuración de nginx. Los valores en sí mismos pueden ser listas asociativas."
 
 #. type: lisp
-#: doc/guix.texi:20346
+#: doc/guix.texi:23059
 #, no-wrap
 msgid ""
 "(global-directives\n"
@@ -39387,322 +44155,321 @@ msgstr ""
 "   (events . ((worker_connections . 1024)))))\n"
 
 #. type: table
-#: doc/guix.texi:20351
+#: doc/guix.texi:23064
 msgid "Extra content for the @code{http} block.  Should be string or a string valued G-expression."
 msgstr "Contenido adicional para el bloque @code{http}. Debe ser una cadena o una expresión-G que evalúe a una cadena."
 
 #. type: deftp
-#: doc/guix.texi:20355
+#: doc/guix.texi:23068
 #, no-wrap
 msgid "{Data Type} nginx-server-configuration"
 msgstr "{Tipo de datos} nginx-server-configuration"
 
 #. type: deftp
-#: doc/guix.texi:20358
+#: doc/guix.texi:23071
 msgid "Data type representing the configuration of an nginx server block.  This type has the following parameters:"
 msgstr "Tipo de datos que representa la configuración de un bloque de servidor nginx. Este tipo tiene los siguientes parámetros:"
 
 #. type: item
-#: doc/guix.texi:20360
+#: doc/guix.texi:23073
 #, no-wrap
 msgid "@code{listen} (default: @code{'(\"80\" \"443 ssl\")})"
 msgstr "@code{listen} (predeterminadas: @code{'(\"80\" \"443 ssl\")})"
 
 #. type: table
-#: doc/guix.texi:20365
+#: doc/guix.texi:23078
 msgid "Each @code{listen} directive sets the address and port for IP, or the path for a UNIX-domain socket on which the server will accept requests.  Both address and port, or only address or only port can be specified.  An address may also be a hostname, for example:"
 msgstr "Cada directiva @code{listen} establece la dirección y el puerto para IP, o la ruta para un socket de dominio de UNIX sobre el que el servidor acepta peticiones. Se puede especificar tanto dirección y puerto como únicamente la dirección o únicamente el puerto. Una dirección puede ser también un nombre de máquina, por ejemplo:"
 
 #. type: lisp
-#: doc/guix.texi:20368
+#: doc/guix.texi:23081
 #, no-wrap
 msgid "'(\"127.0.0.1:8000\" \"127.0.0.1\" \"8000\" \"*:8000\" \"localhost:8000\")\n"
 msgstr "'(\"127.0.0.1:8000\" \"127.0.0.1\" \"8000\" \"*:8000\" \"localhost:8000\")\n"
 
 #. type: item
-#: doc/guix.texi:20370
+#: doc/guix.texi:23083
 #, no-wrap
 msgid "@code{server-name} (default: @code{(list 'default)})"
 msgstr "@code{server-name} (predeterminados: @code{(list 'default)})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:20373
+#: doc/guix.texi:23086
 msgid "A list of server names this server represents. @code{'default} represents the default server for connections matching no other server."
 msgstr "Una lista de nombres de servidor que este servidor representa. @code{'default} representa el servidor predeterminado para conexiones que no correspondan a otro servidor."
 
 #. type: item
-#: doc/guix.texi:20374
+#: doc/guix.texi:23087
 #, no-wrap
 msgid "@code{root} (default: @code{\"/srv/http\"})"
 msgstr "@code{root} (predeterminada: @code{\"/srv/http\"})"
 
 #. type: table
-#: doc/guix.texi:20376
+#: doc/guix.texi:23089
 msgid "Root of the website nginx will serve."
 msgstr "Raíz del sitio web que nginx proporcionará."
 
 #. type: item
-#: doc/guix.texi:20377
+#: doc/guix.texi:23090
 #, no-wrap
 msgid "@code{locations} (default: @code{'()})"
 msgstr "@code{locations} (predeterminado: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:20381
+#: doc/guix.texi:23094
 msgid "A list of @dfn{nginx-location-configuration} or @dfn{nginx-named-location-configuration} records to use within this server block."
 msgstr "Una lista de registros @dfn{nginx-location-configuration} o @dfn{nginx-named-location-configuration} usados dentro de este bloque de servidor."
 
 #. type: item
-#: doc/guix.texi:20382
+#: doc/guix.texi:23095
 #, no-wrap
 msgid "@code{index} (default: @code{(list \"index.html\")})"
 msgstr "@code{index} (predeterminado: @code{(list \"index.html\")})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:20385
+#: doc/guix.texi:23098
 msgid "Index files to look for when clients ask for a directory.  If it cannot be found, Nginx will send the list of files in the directory."
-msgstr "Ficheros de índice buscados cuando los clientes solicitan un directorio. Si no se encuentra ninguno, Nginx enviará la lista de ficheros del directorio."
+msgstr "Archivos de índice buscados cuando los clientes solicitan un directorio. Si no se encuentra ninguno, Nginx enviará la lista de archivos del directorio."
 
 #. type: item
-#: doc/guix.texi:20386
+#: doc/guix.texi:23099
 #, no-wrap
 msgid "@code{try-files} (default: @code{'()})"
 msgstr "@code{try-files} (predeterminado: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:20389
+#: doc/guix.texi:23102
 msgid "A list of files whose existence is checked in the specified order.  @code{nginx} will use the first file it finds to process the request."
-msgstr "Una lista de ficheros cuya existencia se comprueba en el orden especificado. @code{nginx} usará el primer fichero que encuentre para procesar la petición."
+msgstr "Una lista de archivos cuya existencia se comprueba en el orden especificado. @code{nginx} usará el primer archivo que encuentre para procesar la petición."
 
 #. type: item
-#: doc/guix.texi:20390
+#: doc/guix.texi:23103
 #, no-wrap
 msgid "@code{ssl-certificate} (default: @code{#f})"
 msgstr "@code{ssl-certificate} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:20393
+#: doc/guix.texi:23106
 msgid "Where to find the certificate for secure connections.  Set it to @code{#f} if you don't have a certificate or you don't want to use HTTPS."
 msgstr "Lugar donde se encuentra el certificado para conexiones seguras. Proporcione @code{#f} si no dispone de un certificado o no desea usar HTTPS."
 
 #. type: item
-#: doc/guix.texi:20394
+#: doc/guix.texi:23107
 #, no-wrap
 msgid "@code{ssl-certificate-key} (default: @code{#f})"
 msgstr "@code{ssl-certificate-key} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:20397
+#: doc/guix.texi:23110
 msgid "Where to find the private key for secure connections.  Set it to @code{#f} if you don't have a key or you don't want to use HTTPS."
 msgstr "Lugar donde se encuentra la clave privada para conexiones seguras. Proporcione @code{#f} si no dispone de una clave o no desea usar HTTPS."
 
 #. type: item
-#: doc/guix.texi:20398
+#: doc/guix.texi:23111
 #, no-wrap
 msgid "@code{server-tokens?} (default: @code{#f})"
 msgstr "@code{server-tokens?} (predeterminado: @code{#f})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:20400
+#: doc/guix.texi:23113
 msgid "Whether the server should add its configuration to response."
 msgstr "Determina si el servidor debe añadir su configuración a las respuestas."
 
 #. type: item
-#: doc/guix.texi:20401
+#: doc/guix.texi:23114
 #, no-wrap
 msgid "@code{raw-content} (default: @code{'()})"
 msgstr "@code{raw-content} (predeterminado: @code{'()})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:20403
+#: doc/guix.texi:23116
 msgid "A list of raw lines added to the server block."
 msgstr "Una lista de líneas que se añadirán literalmente al bloque del servidor."
 
 #. type: deftp
-#: doc/guix.texi:20407
+#: doc/guix.texi:23120
 #, no-wrap
 msgid "{Data Type} nginx-upstream-configuration"
 msgstr "{Tipo de datos} nginx-upstream-configuration"
 
 #. type: deftp
-#: doc/guix.texi:20410
+#: doc/guix.texi:23123
 msgid "Data type representing the configuration of an nginx @code{upstream} block.  This type has the following parameters:"
 msgstr "Tipo de datos que representa la configuración de un bloque @code{upstream} de nginx. Este tipo tiene los siguientes parámetros:"
 
 #. type: table
-#: doc/guix.texi:20414
+#: doc/guix.texi:23127
 msgid "Name for this group of servers."
 msgstr "Nombre para este grupo de servidores."
 
 #. type: code{#1}
-#: doc/guix.texi:20415
+#: doc/guix.texi:23128
 #, no-wrap
 msgid "servers"
 msgstr "servers"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:20422
+#: doc/guix.texi:23135
 msgid "Specify the addresses of the servers in the group.  The address can be specified as a IP address (e.g.@: @samp{127.0.0.1}), domain name (e.g.@: @samp{backend1.example.com}) or a path to a UNIX socket using the prefix @samp{unix:}.  For addresses using an IP address or domain name, the default port is 80, and a different port can be specified explicitly."
 msgstr "Especifica las direcciones de los servidores en el grupo. Las direcciones se pueden proporcionar mediante direcciones IP (por ejemplo @samp{127.0.0.1}), nombres de dominio (por ejemplo @samp{maquina1.example.com}) o rutas de socket de UNIX mediante el prefijo @samp{unix:}. El puerto predeterminado para las direcciones IP o nombres de dominio es el 80, y se puede proporcionar un puerto de manera explícita."
 
 #. type: deftp
-#: doc/guix.texi:20426
+#: doc/guix.texi:23139
 #, no-wrap
 msgid "{Data Type} nginx-location-configuration"
 msgstr "{Tipo de datos} nginx-location-configuration"
 
 #. type: deftp
-#: doc/guix.texi:20429
+#: doc/guix.texi:23142
 msgid "Data type representing the configuration of an nginx @code{location} block.  This type has the following parameters:"
 msgstr "Tipo de datos que representa la configuración de un bloque @code{location} de nginx. Este tipo tiene los siguientes parámetros:"
 
 #. type: table
-#: doc/guix.texi:20433
+#: doc/guix.texi:23146
 msgid "URI which this location block matches."
 msgstr "URI a la que corresponde este bloque de location."
 
 #. type: anchor{#1}
-#: doc/guix.texi:20435
+#: doc/guix.texi:23148
 msgid "nginx-location-configuration body"
 msgstr "cuerpo de nginx-location-configuration"
 
 #. type: code{#1}
-#: doc/guix.texi:20435 doc/guix.texi:20456
+#: doc/guix.texi:23148 doc/guix.texi:23169
 #, no-wrap
 msgid "body"
 msgstr "body"
 
 #. type: table
-#: doc/guix.texi:20442
+#: doc/guix.texi:23155
 msgid "Body of the location block, specified as a list of strings. This can contain many configuration directives.  For example, to pass requests to a upstream server group defined using an @code{nginx-upstream-configuration} block, the following directive would be specified in the body @samp{(list \"proxy_pass http://upstream-name;\")}."
 msgstr "Cuerpo del bloque de localización ``location'', especificado como una lista de cadenas. Puede contener muchas directivas de configuración. Por ejemplo, para pasar las peticiones a un grupo de servidores proveedores definido mediante el uso de un bloque @code{nginx-upstream-configuration}, se especificaría la siguiente directiva en el cuerpo @samp{(list \\\"proxy_pass http://nombre-proveedor;\\\")}."
 
 #. type: deftp
-#: doc/guix.texi:20446
+#: doc/guix.texi:23159
 #, no-wrap
 msgid "{Data Type} nginx-named-location-configuration"
 msgstr "{Tipo de datos} nginx-named-location-configuration"
 
 #. type: deftp
-#: doc/guix.texi:20451
+#: doc/guix.texi:23164
 msgid "Data type representing the configuration of an nginx named location block.  Named location blocks are used for request redirection, and not used for regular request processing.  This type has the following parameters:"
 msgstr "Tipo de datos que representa la configuración de un bloque de localización con nombre de nginx. Los bloques de localizaciones con nombre se usan para la redirección de peticiones, y no se usan para el procesamiento regular de peticiones. Este tipo tiene los siguientes parámetros:"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:20455
+#: doc/guix.texi:23168
 msgid "Name to identify this location block."
 msgstr "Nombre que identifica este bloque de dirección @code{location}."
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:20461
+#: doc/guix.texi:23174
 msgid "@xref{nginx-location-configuration body}, as the body for named location blocks can be used in a similar way to the @code{nginx-location-configuration body}.  One restriction is that the body of a named location block cannot contain location blocks."
 msgstr "@xref{cuerpo de nginx-location-configuration}, como el cuerpo de los bloques de localizaciones con nombre puede usarse de manera similar al @code{cuerpo de nginx-location-configuration}. Una restricción es que el cuerpo de una localización con nombre no puede contener bloques de localizaciones."
 
 #. type: subsubheading
-#: doc/guix.texi:20465
+#: doc/guix.texi:23178
 #, no-wrap
 msgid "Varnish Cache"
 msgstr "Caché Varnish"
 
 #. type: cindex
-#: doc/guix.texi:20466
+#: doc/guix.texi:23179
 #, no-wrap
 msgid "Varnish"
 msgstr "Varnish"
 
-# FUZZY
 #. type: Plain text
-#: doc/guix.texi:20471
+#: doc/guix.texi:23184
 msgid "Varnish is a fast cache server that sits in between web applications and end users.  It proxies requests from clients and caches the accessed URLs such that multiple requests for the same resource only creates one request to the back-end."
-msgstr "Varnish es un servidor de caché rápida que se coloca entre aplicaciones web y usuarios finales. Hace de intermediario (proxy) en las peticiones de los clientes y almacena en caché las URL a las que se accede de manera que múltiples peticiones al mismo recurso únicamente creen una petición al motor."
+msgstr "Varnish es un servidor de caché rápida que se coloca entre aplicaciones web y usuarios finales. Redirige peticiones a los clientes y almacena en caché las URL a las que se accede de manera que múltiples peticiones al mismo recurso únicamente creen una petición al motor."
 
 #. type: defvr
-#: doc/guix.texi:20472
+#: doc/guix.texi:23185
 #, no-wrap
 msgid "{Scheme Variable} varnish-service-type"
 msgstr "{Variable Scheme} varnish-service-type"
 
 #. type: defvr
-#: doc/guix.texi:20474
+#: doc/guix.texi:23187
 msgid "Service type for the Varnish daemon."
 msgstr "Tipo de servicio para el daemon Varnish."
 
 #. type: deftp
-#: doc/guix.texi:20476
+#: doc/guix.texi:23189
 #, no-wrap
 msgid "{Data Type} varnish-configuration"
 msgstr "{Tipo de datos} varnish-configuration"
 
 #. type: deftp
-#: doc/guix.texi:20479
+#: doc/guix.texi:23192
 msgid "Data type representing the @code{varnish} service configuration.  This type has the following parameters:"
 msgstr "Tipo de datos que representa la configuración del servicio @code{varnish}. Este tipo tiene los siguientes parámetros:"
 
 #. type: item
-#: doc/guix.texi:20481
+#: doc/guix.texi:23194
 #, no-wrap
 msgid "@code{package} (default: @code{varnish})"
 msgstr "@code{package} (predeterminado: @code{varnish})"
 
 #. type: table
-#: doc/guix.texi:20483
+#: doc/guix.texi:23196
 msgid "The Varnish package to use."
 msgstr "El paquete Varnish usado."
 
 #. type: item
-#: doc/guix.texi:20484
+#: doc/guix.texi:23197
 #, no-wrap
 msgid "@code{name} (default: @code{\"default\"})"
 msgstr "@code{name} (predeterminado: @code{\"default\"})"
 
 #. type: table
-#: doc/guix.texi:20489
+#: doc/guix.texi:23202
 msgid "A name for this Varnish instance.  Varnish will create a directory in @file{/var/varnish/} with this name and keep temporary files there.  If the name starts with a forward slash, it is interpreted as an absolute directory name."
-msgstr "Un nombre para esta instancia de Varnish. Varnish creará un directorio en @file{/var/varnish} con este nombre y mantendrá allí los ficheros temporales. Si el nombre comienza con una barra, se interpreta como un nombre absoluto de directorio."
+msgstr "Un nombre para esta instancia de Varnish. Varnish creará un directorio en @file{/var/varnish} con este nombre y mantendrá allí los archivos temporales. Si el nombre comienza con una barra, se interpreta como un nombre absoluto de directorio."
 
 #. type: table
-#: doc/guix.texi:20492
+#: doc/guix.texi:23205
 msgid "Pass the @code{-n} argument to other Varnish programs to connect to the named instance, e.g.@: @command{varnishncsa -n default}."
 msgstr "Proporcione el parámetro @code{-n} a otros programas de Varnish para que se conecten a la instancia de dicho nombre, por ejemplo @command{varnishncsa -n default}."
 
 #. type: item
-#: doc/guix.texi:20493
+#: doc/guix.texi:23206
 #, no-wrap
 msgid "@code{backend} (default: @code{\"localhost:8080\"})"
 msgstr "@code{backend} (predeterminado: @code{\"localhost:8080\"})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:20495
+#: doc/guix.texi:23208
 msgid "The backend to use.  This option has no effect if @code{vcl} is set."
 msgstr "Motor usado. Esta opción no tiene efecto si se usa @code{vcl}."
 
 #. type: item
-#: doc/guix.texi:20496
+#: doc/guix.texi:23209
 #, no-wrap
 msgid "@code{vcl} (default: #f)"
 msgstr "@code{vcl} (predeterminado: #f)"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:20501
+#: doc/guix.texi:23214
 msgid "The @dfn{VCL} (Varnish Configuration Language) program to run.  If this is @code{#f}, Varnish will proxy @code{backend} using the default configuration.  Otherwise this must be a file-like object with valid VCL syntax."
-msgstr "El programa @dfn{VCL} (lenguaje de configuración de Varnish) ejecutado. Si se proporciona @code{#f}, Varnish actuará de intermediario (proxy) de @code{backend} usando la configuración predeterminada. En otro caso debe ser un objeto ``tipo-fichero'' con sintaxis válida para VCL."
+msgstr "El programa @dfn{VCL} (lenguaje de configuración de Varnish) ejecutado. Si se proporciona @code{#f}, Varnish llevará a cabo las redirecciones al motor (@code{backend}) usando la configuración predeterminada. En otro caso debe ser un objeto ``tipo-archivo'' con sintaxis válida para VCL."
 
 #. type: table
-#: doc/guix.texi:20505
+#: doc/guix.texi:23218
 msgid "For example, to mirror @url{https://www.gnu.org,www.gnu.org} with VCL you can do something along these lines:"
 msgstr "Por ejemplo, para proporcionar un espejo de @url{https://www.gnu.org,www.gnu.org} con VCL podría escribir algo parecido a esto:"
 
 #. type: lisp
-#: doc/guix.texi:20511
+#: doc/guix.texi:23224
 #, no-wrap
 msgid ""
 "(define %gnu-mirror\n"
@@ -39718,7 +44485,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:20519
+#: doc/guix.texi:23232
 #, no-wrap
 msgid ""
 "(operating-system\n"
@@ -39738,85 +44505,85 @@ msgstr ""
 "                  %base-services)))\n"
 
 #. type: table
-#: doc/guix.texi:20523
+#: doc/guix.texi:23236
 msgid "The configuration of an already running Varnish instance can be inspected and changed using the @command{varnishadm} program."
 msgstr "La configuración de una instancia de Varnish ya en ejecución se puede inspeccionar y cambiar mediante el uso de la orden @command{varnishadm}."
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:20527
+#: doc/guix.texi:23240
 msgid "Consult the @url{https://varnish-cache.org/docs/,Varnish User Guide} and @url{https://book.varnish-software.com/4.0/,Varnish Book} for comprehensive documentation on Varnish and its configuration language."
 msgstr "Consulte la @url{https://varnish-cache.org/docs/,guía de usuaria de Varnish} y @url{https://book.varnish-software.com/4.0/,el libro de Varnish} para obtener la documentación completa de Varnish y su lenguaje de configuración."
 
 #. type: item
-#: doc/guix.texi:20528
+#: doc/guix.texi:23241
 #, no-wrap
 msgid "@code{listen} (default: @code{'(\"localhost:80\")})"
 msgstr "@code{listen} (predeterminada: @code{'(\"localhost:80\")})"
 
 #. type: table
-#: doc/guix.texi:20530
+#: doc/guix.texi:23243
 msgid "List of addresses Varnish will listen on."
 msgstr "Lista de direcciones en las que Varnish escucha."
 
 #. type: item
-#: doc/guix.texi:20531
+#: doc/guix.texi:23244
 #, no-wrap
 msgid "@code{storage} (default: @code{'(\"malloc,128m\")})"
 msgstr "@code{storage} (predeterminado: @code{'(\"malloc,128m\")})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:20533
+#: doc/guix.texi:23246
 msgid "List of storage backends that will be available in VCL."
 msgstr "Lista de motores de almacenamiento que estarán disponibles en VCL."
 
 #. type: item
-#: doc/guix.texi:20534
+#: doc/guix.texi:23247
 #, no-wrap
 msgid "@code{parameters} (default: @code{'()})"
 msgstr "@code{parameters} (predeterminados: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:20536
+#: doc/guix.texi:23249
 msgid "List of run-time parameters in the form @code{'((\"parameter\" . \"value\"))}."
 msgstr "Lista de parámetros de tiempo de ejecución con la forma @code{'((\"parámetro\" . \"valor\"))}."
 
 #. type: table
-#: doc/guix.texi:20539
+#: doc/guix.texi:23252
 msgid "Additional arguments to pass to the @command{varnishd} process."
 msgstr "Parámetros adicionales a proporcional al proceso @command{varnishd}."
 
 #. type: cindex
-#: doc/guix.texi:20543 doc/guix.texi:20544
+#: doc/guix.texi:23256 doc/guix.texi:23257
 #, no-wrap
 msgid "Patchwork"
 msgstr "Patchwork"
 
 # FUZZY
 #. type: Plain text
-#: doc/guix.texi:20547
+#: doc/guix.texi:23260
 msgid "Patchwork is a patch tracking system.  It can collect patches sent to a mailing list, and display them in a web interface."
 msgstr "Patchwork es un sistema de seguimiento de parches. Puede recolectar parches enviados a listas de correo y mostrarlos en una interfaz web."
 
 #. type: defvr
-#: doc/guix.texi:20548
+#: doc/guix.texi:23261
 #, no-wrap
 msgid "{Scheme Variable} patchwork-service-type"
 msgstr "{Variable Scheme} patchwork-service-type"
 
 #. type: defvr
-#: doc/guix.texi:20550
+#: doc/guix.texi:23263
 msgid "Service type for Patchwork."
 msgstr "Tipo de servicio para Patchwork."
 
 #. type: Plain text
-#: doc/guix.texi:20554
+#: doc/guix.texi:23267
 msgid "The following example is an example of a minimal service for Patchwork, for the @code{patchwork.example.com} domain."
 msgstr "El siguiente ejemplo muestra un servicio mínimo para Patchwork, para el dominio @code{patchwork.example.com}."
 
 #. type: lisp
-#: doc/guix.texi:20574
+#: doc/guix.texi:23287
 #, no-wrap
 msgid ""
 "(service patchwork-service-type\n"
@@ -39861,497 +44628,497 @@ msgstr ""
 
 # FUZZY
 #. type: Plain text
-#: doc/guix.texi:20580
+#: doc/guix.texi:23293
 msgid "There are three records for configuring the Patchwork service.  The @code{<patchwork-configuration>} relates to the configuration for Patchwork within the HTTPD service."
 msgstr "Existen tres registros para la configuración del servicio de Patchwork. El registro @code{<patchwork-configuration>} está relacionado con la configuración de Patchwork dentro del servicio HTTPD."
 
 #. type: Plain text
-#: doc/guix.texi:20584
+#: doc/guix.texi:23297
 msgid "The @code{settings-module} field within the @code{<patchwork-configuration>} record can be populated with the @code{<patchwork-settings-module>} record, which describes a settings module that is generated within the Guix store."
 msgstr "El campo @code{settings-module} dentro del registro @code{<patchwork-configuration>} puede rellenarse con un registro @code{<patchwork-settings-module>}, que describe un módulo de configuración generado dentro del almacén de Guix."
 
 #. type: Plain text
-#: doc/guix.texi:20588
+#: doc/guix.texi:23301
 msgid "For the @code{database-configuration} field within the @code{<patchwork-settings-module>}, the @code{<patchwork-database-configuration>} must be used."
 msgstr "En el campo @code{database-configuration} dentro del registro @code{<patchwork-settings-module>}, debe usarse @code{<patchwork-database-configuration>}."
 
 #. type: deftp
-#: doc/guix.texi:20589
+#: doc/guix.texi:23302
 #, no-wrap
 msgid "{Data Type} patchwork-configuration"
 msgstr "{Tipo de datos} patchwork-configuration"
 
 #. type: deftp
-#: doc/guix.texi:20592
+#: doc/guix.texi:23305
 msgid "Data type representing the Patchwork service configuration.  This type has the following parameters:"
 msgstr "Tipo de datos que representa la configuración del servicio Patchwok. Este tipo tiene los siguientes parámetros:"
 
 #. type: item
-#: doc/guix.texi:20594
+#: doc/guix.texi:23307
 #, no-wrap
 msgid "@code{patchwork} (default: @code{patchwork})"
 msgstr "@code{patchwork} (predeterminado: @code{patchwork})"
 
 #. type: table
-#: doc/guix.texi:20596
+#: doc/guix.texi:23309
 msgid "The Patchwork package to use."
 msgstr "El paquete Patchwork usado."
 
 #. type: code{#1}
-#: doc/guix.texi:20597
+#: doc/guix.texi:23310
 #, no-wrap
 msgid "domain"
 msgstr "domain"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:20600
+#: doc/guix.texi:23313
 msgid "The domain to use for Patchwork, this is used in the HTTPD service virtual host."
 msgstr "Dominio usado por Patchwork, se usa en el servicio HTTPD como ``virtual host''."
 
 #. type: code{#1}
-#: doc/guix.texi:20601
+#: doc/guix.texi:23314
 #, no-wrap
 msgid "settings-module"
 msgstr "settings-module"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:20607
+#: doc/guix.texi:23320
 msgid "The settings module to use for Patchwork. As a Django application, Patchwork is configured with a Python module containing the settings. This can either be an instance of the @code{<patchwork-settings-module>} record, any other record that represents the settings in the store, or a directory outside of the store."
 msgstr "Módulo de configuración usado para Patchwork. Como una aplicación de Django, Patchwork se configura con un módulo Python que contiene los valores de configuración. Esto puede ser una instancia de un registro @code{<patchwork-settings-module>}, cualquier otro registro que represente la configuración en el almacén, o un directorio fuera del almacén."
 
 #. type: item
-#: doc/guix.texi:20608
+#: doc/guix.texi:23321
 #, no-wrap
 msgid "@code{static-path}  (default: @code{\"/static/\"})"
 msgstr "@code{static-path}  (predeterminada: @code{\"/static/\"})"
 
 #. type: table
-#: doc/guix.texi:20610
+#: doc/guix.texi:23323
 msgid "The path under which the HTTPD service should serve the static files."
-msgstr "Ruta bajo la cual el servicio HTTPD proporciona ficheros estáticos."
+msgstr "Ruta bajo la cual el servicio HTTPD proporciona archivos estáticos."
 
 #. type: code{#1}
-#: doc/guix.texi:20611
+#: doc/guix.texi:23324
 #, no-wrap
 msgid "getmail-retriever-config"
 msgstr "getmail-retriever-config"
 
 #. type: table
-#: doc/guix.texi:20615
+#: doc/guix.texi:23328
 msgid "The getmail-retriever-configuration record value to use with Patchwork. Getmail will be configured with this value, the messages will be delivered to Patchwork."
 msgstr "El valor del registro @code{getmail-retriever-configuration} usado con Patchwork. En caso de configurar Getmail con este valor, los mensajes se proporcionan a Patchwork."
 
 #. type: deftp
-#: doc/guix.texi:20619
+#: doc/guix.texi:23332
 #, no-wrap
 msgid "{Data Type} patchwork-settings-module"
 msgstr "{Tipo de datos} patchwork-settings-module"
 
 #. type: deftp
-#: doc/guix.texi:20624
+#: doc/guix.texi:23337
 msgid "Data type representing a settings module for Patchwork.  Some of these settings relate directly to Patchwork, but others relate to Django, the web framework used by Patchwork, or the Django Rest Framework library.  This type has the following parameters:"
 msgstr "Tipo de datos que representa un módulo de configuración de Patchwork. Algunas de estas opciones están directamente relacionadas con Patchwork, pero otras son relativas a Django, el entorno web usado Patchwork, o la biblioteca Django Rest Framework. Este tipo tiene los siguientes parámetros:"
 
 #. type: item
-#: doc/guix.texi:20626
+#: doc/guix.texi:23339
 #, no-wrap
 msgid "@code{database-configuration} (default: @code{(patchwork-database-configuration)})"
 msgstr "@code{database-configuration} (predeterminada: @code{(patchwork-database-configuration)})"
 
 #. type: table
-#: doc/guix.texi:20629
+#: doc/guix.texi:23342
 msgid "The database connection settings used for Patchwork.  See the @code{<patchwork-database-configuration>} record type for more information."
 msgstr "La configuración de la conexión a la base de datos usada para Patchwork. Véase el tipo de registro @code{<patchwork-database-configuration>} para más información."
 
 #. type: item
-#: doc/guix.texi:20630
+#: doc/guix.texi:23343
 #, no-wrap
 msgid "@code{secret-key-file} (default: @code{\"/etc/patchwork/django-secret-key\"})"
 msgstr "@code{secret-key-file} (predeterminado: @code{\"/etc/patchwork/django-secret-key\"})"
 
 #. type: table
-#: doc/guix.texi:20633
+#: doc/guix.texi:23346
 msgid "Patchwork, as a Django web application uses a secret key for cryptographically signing values.  This file should contain a unique unpredictable value."
-msgstr "Patchwork, como una aplicación web Django, usa una clave secreta para firmar criptográficamente valores. Este fichero debe contener un valor único e impredecible."
+msgstr "Patchwork, como una aplicación web Django, usa una clave secreta para firmar criptográficamente valores. Este archivo debe contener un valor único e impredecible."
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:20636
+#: doc/guix.texi:23349
 msgid "If this file does not exist, it will be created and populated with a random value by the patchwork-setup shepherd service."
-msgstr "Si este fichero no existe, el servicio de Shepherd patchwork-setup lo creará y rellenará con un valor aleatorio."
+msgstr "Si este archivo no existe, el servicio de Shepherd patchwork-setup lo creará y rellenará con un valor aleatorio."
 
 #. type: table
-#: doc/guix.texi:20638
+#: doc/guix.texi:23351
 msgid "This setting relates to Django."
 msgstr "Esta configuración está relacionada con Django."
 
 #. type: code{#1}
-#: doc/guix.texi:20639
+#: doc/guix.texi:23352
 #, no-wrap
 msgid "allowed-hosts"
 msgstr "allowed-hosts"
 
 #. type: table
-#: doc/guix.texi:20642
+#: doc/guix.texi:23355
 msgid "A list of valid hosts for this Patchwork service. This should at least include the domain specified in the @code{<patchwork-configuration>} record."
 msgstr "Lista de nombres de máquina válidos para este servicio Patchwork. Al menos debe incluir el dominio especificado en el registro @code{<patchwork-configuration>}."
 
 #. type: table
-#: doc/guix.texi:20644 doc/guix.texi:20658 doc/guix.texi:20664
-#: doc/guix.texi:20670
+#: doc/guix.texi:23357 doc/guix.texi:23371 doc/guix.texi:23377
+#: doc/guix.texi:23383
 msgid "This is a Django setting."
 msgstr "Esta es una opción de configuración de Django."
 
 #. type: code{#1}
-#: doc/guix.texi:20645
+#: doc/guix.texi:23358
 #, no-wrap
 msgid "default-from-email"
 msgstr "default-from-email"
 
 #. type: table
-#: doc/guix.texi:20647
+#: doc/guix.texi:23360
 msgid "The email address from which Patchwork should send email by default."
 msgstr "La dirección de correo desde de la que Patchwork debe enviar el correo de manera predeterminada."
 
 #. type: table
-#: doc/guix.texi:20649 doc/guix.texi:20675 doc/guix.texi:20680
-#: doc/guix.texi:20685
+#: doc/guix.texi:23362 doc/guix.texi:23388 doc/guix.texi:23393
+#: doc/guix.texi:23398
 msgid "This is a Patchwork setting."
 msgstr "Esta es una opción de configuración de Patchwork."
 
 #. type: item
-#: doc/guix.texi:20650
+#: doc/guix.texi:23363
 #, no-wrap
 msgid "@code{static-url} (default: @code{#f})"
 msgstr "@code{static-url} (predeterminada: @code{#f})"
 
 # FUZZY FUZZY
 #. type: table
-#: doc/guix.texi:20653
+#: doc/guix.texi:23366
 msgid "The URL to use when serving static assets. It can be part of a URL, or a full URL, but must end in a @code{/}."
 msgstr "La URL usada para proporcionar objetos estáticos. Puede ser parte de una URL, o una URL completa, pero debe terminar en @code{/}."
 
 #. type: table
-#: doc/guix.texi:20656
+#: doc/guix.texi:23369
 msgid "If the default value is used, the @code{static-path} value from the @code{<patchwork-configuration>} record will be used."
 msgstr "Si se usa el valor predeterminado, se usará el valor de @code{static-path} del registro @code{<patchwork-configuration>}."
 
 #. type: item
-#: doc/guix.texi:20659
+#: doc/guix.texi:23372
 #, no-wrap
 msgid "@code{admins} (default: @code{'()})"
 msgstr "@code{admins} (predeterminadas: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:20662
+#: doc/guix.texi:23375
 msgid "Email addresses to send the details of errors that occur.  Each value should be a list containing two elements, the name and then the email address."
 msgstr "Direcciones de correo electrónico a las que enviar los detalles de los errores que ocurran. Cada valor debe ser una lista que contenga dos elementos, el nombre y la dirección de correo electrónico en dicho orden."
 
 #. type: table
-#: doc/guix.texi:20668
+#: doc/guix.texi:23381
 msgid "Whether to run Patchwork in debug mode.  If set to @code{#t}, detailed error messages will be shown."
 msgstr "Determina si se ejecuta Patchwork en modo de depuración. Si se proporciona @code{#t}, se mostrarán mensajes de error detallados."
 
 #. type: item
-#: doc/guix.texi:20671
+#: doc/guix.texi:23384
 #, no-wrap
 msgid "@code{enable-rest-api?} (default: @code{#t})"
 msgstr "@code{enable-rest-api?} (predeterminado: @code{#t})"
 
 #. type: table
-#: doc/guix.texi:20673
+#: doc/guix.texi:23386
 msgid "Whether to enable the Patchwork REST API."
 msgstr "Determina si se activa el API REST de Patchwork."
 
 #. type: item
-#: doc/guix.texi:20676
+#: doc/guix.texi:23389
 #, no-wrap
 msgid "@code{enable-xmlrpc?} (default: @code{#t})"
 msgstr "@code{enable-xmlrpc?} (predeterminado: @code{#t})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:20678
+#: doc/guix.texi:23391
 msgid "Whether to enable the XML RPC API."
 msgstr "Determina si se activa el API XML RPC."
 
 #. type: item
-#: doc/guix.texi:20681
+#: doc/guix.texi:23394
 #, no-wrap
 msgid "@code{force-https-links?} (default: @code{#t})"
 msgstr "@code{force-https-links?} (predeterminado: @code{#t})"
 
 #. type: table
-#: doc/guix.texi:20683
+#: doc/guix.texi:23396
 msgid "Whether to use HTTPS links on Patchwork pages."
 msgstr "Determina si se usan enlaces HTTPS en las páginas de Patchwork."
 
 #. type: table
-#: doc/guix.texi:20688
+#: doc/guix.texi:23401
 msgid "Extra code to place at the end of the Patchwork settings module."
 msgstr "Código adicional que colocar al final del módulo de configuración de Patchwork."
 
 #. type: deftp
-#: doc/guix.texi:20692
+#: doc/guix.texi:23405
 #, no-wrap
 msgid "{Data Type} patchwork-database-configuration"
 msgstr "{Tipo de datos} patchwork-database-configuration"
 
 #. type: deftp
-#: doc/guix.texi:20694
+#: doc/guix.texi:23407
 msgid "Data type representing the database configuration for Patchwork."
 msgstr "Tipo de datos que representa la configuración de base de datos de Patchwork."
 
 #. type: item
-#: doc/guix.texi:20696
+#: doc/guix.texi:23409
 #, no-wrap
 msgid "@code{engine} (default: @code{\"django.db.backends.postgresql_psycopg2\"})"
 msgstr "@code{engine} (predeterminado: @code{\"django.db.backends.postgresql_psycopg2\"})"
 
 #. type: table
-#: doc/guix.texi:20698
+#: doc/guix.texi:23411
 msgid "The database engine to use."
 msgstr "Motor de base de datos usado."
 
 #. type: item
-#: doc/guix.texi:20699
+#: doc/guix.texi:23412
 #, no-wrap
 msgid "@code{name} (default: @code{\"patchwork\"})"
 msgstr "@code{name} (predeterminado: @code{\"patchwork\"})"
 
 #. type: table
-#: doc/guix.texi:20701
+#: doc/guix.texi:23414
 msgid "The name of the database to use."
 msgstr "Nombre de la base de datos usada."
 
 #. type: table
-#: doc/guix.texi:20704
+#: doc/guix.texi:23417
 msgid "The user to connect to the database as."
 msgstr "Usuaria usada para la conexión a la base de datos."
 
 #. type: item
-#: doc/guix.texi:20705
+#: doc/guix.texi:23418
 #, no-wrap
 msgid "@code{password} (default: @code{\"\"})"
 msgstr "@code{password} (predeterminada: @code{\"\"})"
 
 #. type: table
-#: doc/guix.texi:20707
+#: doc/guix.texi:23420
 msgid "The password to use when connecting to the database."
 msgstr "Contraseña usada para la conexión a la base de datos."
 
 #. type: item
-#: doc/guix.texi:20708
+#: doc/guix.texi:23421
 #, no-wrap
 msgid "@code{host} (default: @code{\"\"})"
 msgstr "@code{host} (predeterminada: @code{\"\"})"
 
 #. type: table
-#: doc/guix.texi:20710
+#: doc/guix.texi:23423
 msgid "The host to make the database connection to."
 msgstr "Máquina usada para la conexión a la base de datos."
 
 #. type: item
-#: doc/guix.texi:20711
+#: doc/guix.texi:23424
 #, no-wrap
 msgid "@code{port} (default: @code{\"\"})"
 msgstr "@code{port} (predeterminado: @code{\"\"})"
 
 #. type: table
-#: doc/guix.texi:20713
+#: doc/guix.texi:23426
 msgid "The port on which to connect to the database."
 msgstr "Puerto en el que se conecta a la base de datos."
 
 #. type: subsubheading
-#: doc/guix.texi:20717
+#: doc/guix.texi:23430
 #, no-wrap
 msgid "Mumi"
 msgstr "Mumi"
 
 #. type: cindex
-#: doc/guix.texi:20719
+#: doc/guix.texi:23432
 #, no-wrap
 msgid "Mumi, Debbugs Web interface"
 msgstr "Mumi, interfaz web de Debbugs"
 
 #. type: cindex
-#: doc/guix.texi:20720
+#: doc/guix.texi:23433
 #, no-wrap
 msgid "Debbugs, Mumi Web interface"
 msgstr "Debbugs, interfaz web Mumi"
 
 #. type: Plain text
-#: doc/guix.texi:20725
+#: doc/guix.texi:23438
 msgid "@uref{https://git.elephly.net/gitweb.cgi?p=software/mumi.git, Mumi} is a Web interface to the Debbugs bug tracker, by default for @uref{https://bugs.gnu.org, the GNU instance}.  Mumi is a Web server, but it also fetches and indexes mail retrieved from Debbugs."
 msgstr "@uref{https://git.elephly.net/gitweb.cgi?p=software/mumi.git, Mumi} es una interfaz web al gestor de incidencias Debbugs, de manera predeterminada apunta a @uref{https://bugs.gnu.org, la instancia de GNU}.  Mumi es un servidor web, pero también obtiene e indexa los correos recibidos de Debbugs."
 
 #. type: defvr
-#: doc/guix.texi:20726
+#: doc/guix.texi:23439
 #, no-wrap
 msgid "{Scheme Variable} mumi-service-type"
 msgstr "{Variable Scheme} mumi-service-type"
 
 #. type: defvr
-#: doc/guix.texi:20728
+#: doc/guix.texi:23441
 msgid "This is the service type for Mumi."
 msgstr "El tipo de servicio para Mumi."
 
 #. type: deftp
-#: doc/guix.texi:20730
+#: doc/guix.texi:23443
 #, no-wrap
 msgid "{Data Type} mumi-configuration"
 msgstr "{Tipo de datos} mumi-configuration"
 
 #. type: deftp
-#: doc/guix.texi:20733
+#: doc/guix.texi:23446
 msgid "Data type representing the Mumi service configuration.  This type has the following fields:"
 msgstr "Tipo de datos que representa la configuración del servicio Mumi. Este tipo tiene los siguientes campos:"
 
 #. type: item
-#: doc/guix.texi:20735
+#: doc/guix.texi:23448
 #, no-wrap
 msgid "@code{mumi} (default: @code{mumi})"
 msgstr "@code{mumi} (predeterminado: @code{mumi})"
 
 #. type: table
-#: doc/guix.texi:20737
+#: doc/guix.texi:23450
 msgid "The Mumi package to use."
 msgstr "El paquete Mumi usado."
 
 #. type: item
-#: doc/guix.texi:20738
+#: doc/guix.texi:23451
 #, no-wrap
 msgid "@code{mailer?} (default: @code{#true})"
 msgstr "@code{mailer?} (predeterminado: @code{#true})"
 
 #. type: table
-#: doc/guix.texi:20740
+#: doc/guix.texi:23453
 msgid "Whether to enable or disable the mailer component."
 msgstr "Determina si se activa o desactiva el componente de correo @code{mailer}."
 
 #. type: code{#1}
-#: doc/guix.texi:20741
+#: doc/guix.texi:23454
 #, no-wrap
 msgid "mumi-configuration-sender"
 msgstr "mumi-configuration-sender"
 
 #. type: table
-#: doc/guix.texi:20743
+#: doc/guix.texi:23456
 msgid "The email address used as the sender for comments."
 msgstr "La dirección de correo usada como remitente para los comentarios."
 
 #. type: code{#1}
-#: doc/guix.texi:20744
+#: doc/guix.texi:23457
 #, no-wrap
 msgid "mumi-configuration-smtp"
 msgstr "mumi-configuration-smtp"
 
 #. type: table
-#: doc/guix.texi:20749
+#: doc/guix.texi:23462
 msgid "A URI to configure the SMTP settings for Mailutils.  This could be something like @code{sendmail:///path/to/bin/msmtp} or any other URI supported by Mailutils.  @xref{SMTP Mailboxes, SMTP Mailboxes,, mailutils, GNU@tie{}Mailutils}."
 msgstr "Una URI para las opciones de configuración de SMTP de Mailutils. Puede ser algo parecido a @code{sendmail:///ruta/de/bin/msmtp} o cualquier otra URI implementada por Mailutils.  @xref{SMTP Mailboxes, SMTP Mailboxes,, mailutils, GNU@tie{}Mailutils}."
 
 #. type: subsubheading
-#: doc/guix.texi:20754
+#: doc/guix.texi:23467
 #, no-wrap
 msgid "FastCGI"
 msgstr "FastCGI"
 
 #. type: cindex
-#: doc/guix.texi:20755
+#: doc/guix.texi:23468
 #, no-wrap
 msgid "fastcgi"
 msgstr "fastcgi"
 
 #. type: cindex
-#: doc/guix.texi:20756
+#: doc/guix.texi:23469
 #, no-wrap
 msgid "fcgiwrap"
 msgstr "fcgiwrap"
 
 #. type: Plain text
-#: doc/guix.texi:20763
+#: doc/guix.texi:23476
 msgid "FastCGI is an interface between the front-end and the back-end of a web service.  It is a somewhat legacy facility; new web services should generally just talk HTTP between the front-end and the back-end.  However there are a number of back-end services such as PHP or the optimized HTTP Git repository access that use FastCGI, so we have support for it in Guix."
 msgstr "FastCGI es una interfaz entre la presentación (front-end) y el motor (back-end) de un servicio web. Es en cierto modo una característica antigua; los nuevos servicios web generalmente únicamente se comunican con HTTP entre ambas partes. No obstante, existe cierto número de servicios de motor como PHP o el acceso HTTP optimizado para repositorios Git que usan FastCGI, por lo que debemos incluirlo en Guix."
 
 #. type: Plain text
-#: doc/guix.texi:20770
+#: doc/guix.texi:23483
 msgid "To use FastCGI, you configure the front-end web server (e.g., nginx) to dispatch some subset of its requests to the fastcgi backend, which listens on a local TCP or UNIX socket.  There is an intermediary @code{fcgiwrap} program that sits between the actual backend process and the web server.  The front-end indicates which backend program to run, passing that information to the @code{fcgiwrap} process."
 msgstr "Para usar FastCGI debe configurar el servidor web de entrada@footnote{NdT: Front-end en inglés.} (por ejemplo, ngnix) para delegar un subconjunto de sus peticiones al motor fastcgi, que escucha en un puerto TCP local o en un socket de UNIX. Existe un programa de intermediación llamado @code{fcgiwrap} que se posiciona entre el proceso del motor y el servidor web. El servidor indica el programa del motor usado, proporcionando dicha información al proceso @code{fcgiwrap}."
 
 #. type: defvr
-#: doc/guix.texi:20771
+#: doc/guix.texi:23484
 #, no-wrap
 msgid "{Scheme Variable} fcgiwrap-service-type"
 msgstr "{Variable Scheme} fcgiwrap-service-type"
 
 #. type: defvr
-#: doc/guix.texi:20773
+#: doc/guix.texi:23486
 msgid "A service type for the @code{fcgiwrap} FastCGI proxy."
-msgstr "El tipo de servicio para el proxy FastCGI @code{fcgiwrap}."
+msgstr "El tipo de servicio para la pasarela FastCGI @code{fcgiwrap}."
 
 #. type: deftp
-#: doc/guix.texi:20775
+#: doc/guix.texi:23488
 #, no-wrap
 msgid "{Data Type} fcgiwrap-configuration"
 msgstr "{Tipo de datos} fcgiwrap-configuration"
 
 #. type: deftp
-#: doc/guix.texi:20778
+#: doc/guix.texi:23491
 msgid "Data type representing the configuration of the @code{fcgiwrap} service.  This type has the following parameters:"
 msgstr "Tipo de datos que representa la configuración del servicio @code{fcgiwrap}. Este tipo tiene los siguientes parámetros:"
 
 #. type: item
-#: doc/guix.texi:20779
+#: doc/guix.texi:23492
 #, no-wrap
 msgid "@code{package} (default: @code{fcgiwrap})"
 msgstr "@code{package} (predeterminado: @code{fcgiwrap})"
 
 #. type: table
-#: doc/guix.texi:20781
+#: doc/guix.texi:23494
 msgid "The fcgiwrap package to use."
 msgstr "El paquete fcgiwrap usado."
 
 #. type: item
-#: doc/guix.texi:20782
+#: doc/guix.texi:23495
 #, no-wrap
 msgid "@code{socket} (default: @code{tcp:127.0.0.1:9000})"
 msgstr "@code{socket} (predeterminado: @code{tcp:127.0.0.1:9000})"
 
 #. type: table
-#: doc/guix.texi:20788
+#: doc/guix.texi:23501
 msgid "The socket on which the @code{fcgiwrap} process should listen, as a string.  Valid @var{socket} values include @code{unix:@var{/path/to/unix/socket}}, @code{tcp:@var{dot.ted.qu.ad}:@var{port}} and @code{tcp6:[@var{ipv6_addr}]:port}."
 msgstr "El socket donde el proceso @code{fcgiwrap} deba escuchar, como una cadena.  Los valores adecuados para @var{socket} socket incluyen @code{unix:@var{/ruta/al/socket/unix}}, @code{tcp:@var{dirección.ip.con.puntos}:@var{puerto}} and @code{tcp6:[@var{dirección_ipv6}]:puerto}."
 
 #. type: item
-#: doc/guix.texi:20789
+#: doc/guix.texi:23502
 #, no-wrap
 msgid "@code{user} (default: @code{fcgiwrap})"
 msgstr "@code{user} (predeterminado: @code{fcgiwrap})"
 
 #. type: itemx
-#: doc/guix.texi:20790
+#: doc/guix.texi:23503
 #, no-wrap
 msgid "@code{group} (default: @code{fcgiwrap})"
 msgstr "@code{group} (predeterminado: @code{fcgiwrap})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:20795
+#: doc/guix.texi:23508
 msgid "The user and group names, as strings, under which to run the @code{fcgiwrap} process.  The @code{fastcgi} service will ensure that if the user asks for the specific user or group names @code{fcgiwrap} that the corresponding user and/or group is present on the system."
 msgstr "Los nombres de usuaria y grupo, como cadenas, con los que se ejecutará el proceso @code{fcgiwrap}. El servicio @code{fastcgi} se asegura, en caso de solicitar específicamente el uso de nombres de usuaria o grupo @code{fcgiwrap}, que la usuaria y/o grupo correspondientes se encuentren presentes en el sistema."
 
 # FUZZY FUZZY FUZZY
 # TODO (MAAV): Repensar
 #. type: table
-#: doc/guix.texi:20802
+#: doc/guix.texi:23515
 msgid "It is possible to configure a FastCGI-backed web service to pass HTTP authentication information from the front-end to the back-end, and to allow @code{fcgiwrap} to run the back-end process as a corresponding local user.  To enable this capability on the back-end, run @code{fcgiwrap} as the @code{root} user and group.  Note that this capability also has to be configured on the front-end as well."
 msgstr "Es posible configurar un servicio web proporcionado por FastCGI para que el servidor de fachada proporcione la información de identificación HTTP al motor, y para permitir que @code{fcgiwrap} se ejecute en el proceso del motor como la usuaria local correspondiente. Para activar esta funcionalidad en el motor, ejecute @code{fcgiwrap} mediante la usuaria y grupo @code{root}. Tenga en cuenta de que esta funcionalidad debe configurarse del mismo modo en el servidor de fachada."
 
 #. type: cindex
-#: doc/guix.texi:20805
+#: doc/guix.texi:23518
 #, no-wrap
 msgid "php-fpm"
 msgstr "php-fpm"
@@ -40359,233 +45126,233 @@ msgstr "php-fpm"
 # FUZZY
 # TODO (MAAV): Site... Repensar.
 #. type: Plain text
-#: doc/guix.texi:20808
+#: doc/guix.texi:23521
 msgid "PHP-FPM (FastCGI Process Manager) is an alternative PHP FastCGI implementation with some additional features useful for sites of any size."
 msgstr "PHP-FPM (FastCGI Process Manager) es una implementación alternativa de FastCGI en PHP con algunas características adicionales útiles para sitios de cualquier tamaño."
 
 #. type: Plain text
-#: doc/guix.texi:20810
+#: doc/guix.texi:23523
 msgid "These features include:"
 msgstr "Estas características incluyen:"
 
 #. type: item
-#: doc/guix.texi:20811
+#: doc/guix.texi:23524
 #, no-wrap
 msgid "Adaptive process spawning"
 msgstr "Lanzamiento adaptativo de procesos"
 
 #. type: item
-#: doc/guix.texi:20812
+#: doc/guix.texi:23525
 #, no-wrap
 msgid "Basic statistics (similar to Apache's mod_status)"
 msgstr "Estadísticas básicas (similares a mod_status de Apache)"
 
 # FUZZY
 #. type: item
-#: doc/guix.texi:20813
+#: doc/guix.texi:23526
 #, no-wrap
 msgid "Advanced process management with graceful stop/start"
 msgstr "Gestión avanzada de procesos con parada/arranque coordinados"
 
 #. type: item
-#: doc/guix.texi:20814
+#: doc/guix.texi:23527
 #, no-wrap
 msgid "Ability to start workers with different uid/gid/chroot/environment"
 msgstr "Capacidad de iniciar procesos de trbajo con diferentes uid/gid/chroor/entorno"
 
 #. type: itemize
-#: doc/guix.texi:20816
+#: doc/guix.texi:23529
 msgid "and different php.ini (replaces safe_mode)"
 msgstr "y diferentes php.ini (reemplaza a safe_mode)"
 
 #. type: item
-#: doc/guix.texi:20816
+#: doc/guix.texi:23529
 #, no-wrap
 msgid "Stdout & stderr logging"
 msgstr "Registro a través de la salida estándar y de error"
 
 #. type: item
-#: doc/guix.texi:20817
+#: doc/guix.texi:23530
 #, no-wrap
 msgid "Emergency restart in case of accidental opcode cache destruction"
 msgstr "Reinicio de emergencia en caso de destrucción accidental de la caché de opcode"
 
 #. type: item
-#: doc/guix.texi:20818
+#: doc/guix.texi:23531
 #, no-wrap
 msgid "Accelerated upload support"
 msgstr "Posibilidad de subida acelerada"
 
 #. type: item
-#: doc/guix.texi:20819
+#: doc/guix.texi:23532
 #, no-wrap
 msgid "Support for a \"slowlog\""
 msgstr "Posibilidad de un \"slowlog\""
 
 #. type: item
-#: doc/guix.texi:20820
+#: doc/guix.texi:23533
 #, no-wrap
 msgid "Enhancements to FastCGI, such as fastcgi_finish_request() -"
 msgstr "Mejoras a FastCGI, como fastcgi_finish_request() -"
 
 #. type: itemize
-#: doc/guix.texi:20823
+#: doc/guix.texi:23536
 msgid "a special function to finish request & flush all data while continuing to do something time-consuming (video converting, stats processing, etc.)"
-msgstr "una función especial para terminar una petición y enviar todos los datos mientras que se continua haciendo una tarea de alto consumo de tiempo (conversión de vídeo, procesamiento de estadísticas, etcétera)."
+msgstr "una función especial para terminar una petición y enviar todos los datos mientras que se continua haciendo una tarea de alto consumo de tiempo (conversión de datos audiovisuales, procesamiento de estadísticas, etcétera)."
 
 #. type: Plain text
-#: doc/guix.texi:20825
+#: doc/guix.texi:23538
 msgid "...@: and much more."
 msgstr "...@: y muchas más."
 
 #. type: defvr
-#: doc/guix.texi:20826
+#: doc/guix.texi:23539
 #, no-wrap
 msgid "{Scheme Variable} php-fpm-service-type"
 msgstr "{Variable Scheme} php-fpm-service-type"
 
 #. type: defvr
-#: doc/guix.texi:20828
+#: doc/guix.texi:23541
 msgid "A Service type for @code{php-fpm}."
 msgstr "Un tipo de servicio para @code{php-fpm}."
 
 #. type: deftp
-#: doc/guix.texi:20830
+#: doc/guix.texi:23543
 #, no-wrap
 msgid "{Data Type} php-fpm-configuration"
 msgstr "{Tipo de datos} php-fpm-configuration"
 
 #. type: deftp
-#: doc/guix.texi:20832
+#: doc/guix.texi:23545
 msgid "Data Type for php-fpm service configuration."
 msgstr "Tipo de datos para la configuración del servicio php-fpm."
 
 #. type: item
-#: doc/guix.texi:20833
+#: doc/guix.texi:23546
 #, no-wrap
 msgid "@code{php} (default: @code{php})"
 msgstr "@code{php} (predeterminado: @code{php})"
 
 #. type: table
-#: doc/guix.texi:20835
+#: doc/guix.texi:23548
 msgid "The php package to use."
 msgstr "El paquete php usado."
 
 #. type: item
-#: doc/guix.texi:20835
+#: doc/guix.texi:23548
 #, no-wrap
 msgid "@code{socket} (default: @code{(string-append \"/var/run/php\" (version-major (package-version php)) \"-fpm.sock\")})"
 msgstr "@code{socket} (predeterminado: @code{(string-append \"/var/run/php\" (version-major (package-version php)) \"-fpm.sock\")})"
 
 #. type: table
-#: doc/guix.texi:20837
+#: doc/guix.texi:23550
 msgid "The address on which to accept FastCGI requests.  Valid syntaxes are:"
 msgstr "La dirección desde la que FastCGI acepta peticiones. Las sintaxis válidas son:"
 
 #. type: code{#1}
-#: doc/guix.texi:20838
+#: doc/guix.texi:23551
 #, no-wrap
 msgid "\"ip.add.re.ss:port\""
 msgstr "\"dir.ecc.ión.ip:puerto\""
 
 #. type: table
-#: doc/guix.texi:20840
+#: doc/guix.texi:23553
 msgid "Listen on a TCP socket to a specific address on a specific port."
 msgstr "Escucha con un socket TCP en la dirección especificada en un puerto específico."
 
 #. type: code{#1}
-#: doc/guix.texi:20840
+#: doc/guix.texi:23553
 #, no-wrap
 msgid "\"port\""
 msgstr "\"puerto\""
 
 #. type: table
-#: doc/guix.texi:20842
+#: doc/guix.texi:23555
 msgid "Listen on a TCP socket to all addresses on a specific port."
 msgstr "Escucha en un socket TCP en todas las direcciones sobre un puerto específico."
 
 #. type: code{#1}
-#: doc/guix.texi:20842
+#: doc/guix.texi:23555
 #, no-wrap
 msgid "\"/path/to/unix/socket\""
 msgstr "\"/ruta/a/socket/unix\""
 
 #. type: table
-#: doc/guix.texi:20844
+#: doc/guix.texi:23557
 msgid "Listen on a unix socket."
 msgstr "Escucha en un socket Unix."
 
 #. type: item
-#: doc/guix.texi:20846
+#: doc/guix.texi:23559
 #, no-wrap
 msgid "@code{user} (default: @code{php-fpm})"
 msgstr "@code{user} (predeterminada: @code{php-fpm})"
 
 #. type: table
-#: doc/guix.texi:20848
+#: doc/guix.texi:23561
 msgid "User who will own the php worker processes."
 msgstr "Usuaria que poseerá los procesos de trabajo de php."
 
 #. type: item
-#: doc/guix.texi:20848
+#: doc/guix.texi:23561
 #, no-wrap
 msgid "@code{group} (default: @code{php-fpm})"
 msgstr "@code{group} (predeterminado: @code{php-fpm})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:20850
+#: doc/guix.texi:23563
 msgid "Group of the worker processes."
 msgstr "Grupo de los procesos de trabajo."
 
 #. type: item
-#: doc/guix.texi:20850
+#: doc/guix.texi:23563
 #, no-wrap
 msgid "@code{socket-user} (default: @code{php-fpm})"
 msgstr "@code{socket-user} (predeterminado: @code{php-fpm})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:20852
+#: doc/guix.texi:23565
 msgid "User who can speak to the php-fpm socket."
 msgstr "Usuaria que puede comunicarse con el socket de php-fpm."
 
 #. type: item
-#: doc/guix.texi:20852
+#: doc/guix.texi:23565
 #, no-wrap
 msgid "@code{socket-group} (default: @code{nginx})"
 msgstr "@code{socket-group} (predeterminado: @code{nginx})"
 
 #. type: table
-#: doc/guix.texi:20854
+#: doc/guix.texi:23567
 msgid "Group that can speak to the php-fpm socket."
 msgstr "Grupo que puede comunicarse con el socket de php-fpm."
 
 #. type: item
-#: doc/guix.texi:20854
+#: doc/guix.texi:23567
 #, no-wrap
 msgid "@code{pid-file} (default: @code{(string-append \"/var/run/php\" (version-major (package-version php)) \"-fpm.pid\")})"
 msgstr "@code{pid-file} (predeterminado: @code{(string-append \"/var/run/php\" (version-major (package-version php)) \"-fpm.pid\")})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:20857
+#: doc/guix.texi:23570
 msgid "The process id of the php-fpm process is written to this file once the service has started."
-msgstr "El identificador de proceso del proceso de php-fpm se escribe en este fichero cuando se ha iniciado el servicio."
+msgstr "El identificador de proceso del proceso de php-fpm se escribe en este archivo cuando se ha iniciado el servicio."
 
 #. type: item
-#: doc/guix.texi:20857
+#: doc/guix.texi:23570
 #, no-wrap
 msgid "@code{log-file} (default: @code{(string-append \"/var/log/php\" (version-major (package-version php)) \"-fpm.log\")})"
 msgstr "@code{log-file} (predeterminado: @code{(string-append \"/var/log/php\" (version-major (package-version php)) \"-fpm.log\")})"
 
 #. type: table
-#: doc/guix.texi:20859
+#: doc/guix.texi:23572
 msgid "Log for the php-fpm master process."
 msgstr "Registro del proceso maestro de php-fpm."
 
 #. type: item
-#: doc/guix.texi:20859
+#: doc/guix.texi:23572
 #, no-wrap
 msgid "@code{process-manager} (default: @code{(php-fpm-dynamic-process-manager-configuration)})"
 msgstr "@code{process-manager} (predeterminado: @code{(php-fpm-dynamic-process-manager-configuration)})"
@@ -40594,183 +45361,238 @@ msgstr "@code{process-manager} (predeterminado: @code{(php-fpm-dynamic-process-m
 # tipos. Y no encuentro una forma de traducirlo de forma genérica y que
 # me suene bien...
 #. type: table
-#: doc/guix.texi:20862
+#: doc/guix.texi:23575
 msgid "Detailed settings for the php-fpm process manager.  Must be one of:"
 msgstr "Configuración detallada para el gestor de procesos php-fpm. Debe ser uno de los siguientes tipos:"
 
 #. type: code{#1}
-#: doc/guix.texi:20863
+#: doc/guix.texi:23576
 #, no-wrap
 msgid "<php-fpm-dynamic-process-manager-configuration>"
 msgstr "<php-fpm-dynamic-process-manager-configuration>"
 
 #. type: code{#1}
-#: doc/guix.texi:20864
+#: doc/guix.texi:23577
 #, no-wrap
 msgid "<php-fpm-static-process-manager-configuration>"
 msgstr "<php-fpm-static-process-manager-configuration>"
 
 #. type: code{#1}
-#: doc/guix.texi:20865
+#: doc/guix.texi:23578
 #, no-wrap
 msgid "<php-fpm-on-demand-process-manager-configuration>"
 msgstr "<php-fpm-on-demand-process-manager-configuration>"
 
 #. type: item
-#: doc/guix.texi:20867
+#: doc/guix.texi:23580
 #, no-wrap
 msgid "@code{display-errors} (default @code{#f})"
 msgstr "@code{display-errors} (predeterminado @code{#f})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:20872
+#: doc/guix.texi:23585
 msgid "Determines whether php errors and warning should be sent to clients and displayed in their browsers.  This is useful for local php development, but a security risk for public sites, as error messages can reveal passwords and personal data."
 msgstr "Determina si los errores y avisos de php deben enviarse a los clientes para que se muestren en sus navegadores. Esto es útil para la programación local con php, pero un riesgo para la seguridad de sitios públicos, ya que los mensajes de error pueden revelar contraseñas y datos personales."
 
 #. type: item
-#: doc/guix.texi:20872
+#: doc/guix.texi:23585
 #, no-wrap
 msgid "@code{timezone} (default @code{#f})"
 msgstr "@code{timezone} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:20874
+#: doc/guix.texi:23587
 msgid "Specifies @code{php_admin_value[date.timezone]} parameter."
 msgstr "Especifica el parámetro @code{php_admin_value[date.timezone]}."
 
 #. type: item
-#: doc/guix.texi:20874
+#: doc/guix.texi:23587
 #, no-wrap
 msgid "@code{workers-logfile} (default @code{(string-append \"/var/log/php\" (version-major (package-version php)) \"-fpm.www.log\")})"
 msgstr "@code{workers-logfile} (predeterminado @code{(string-append \"/var/log/php\" (version-major (package-version php)) \"-fpm.www.log\")})"
 
 #. type: table
-#: doc/guix.texi:20877
+#: doc/guix.texi:23590
 msgid "This file will log the @code{stderr} outputs of php worker processes.  Can be set to @code{#f} to disable logging."
-msgstr "Este fichero registrará las salidas por @code{stderr} de los procesos de trabajo de php. Puede proporcionarse @code{#f} para desactivar el registro."
+msgstr "Este archivo registrará las salidas por @code{stderr} de los procesos de trabajo de php. Puede proporcionarse @code{#f} para desactivar el registro."
 
 #. type: item
-#: doc/guix.texi:20877
+#: doc/guix.texi:23590
 #, no-wrap
 msgid "@code{file} (default @code{#f})"
 msgstr "@code{file} (predeterminado @code{#f})"
 
 #. type: table
-#: doc/guix.texi:20880
+#: doc/guix.texi:23593
 msgid "An optional override of the whole configuration.  You can use the @code{mixed-text-file} function or an absolute filepath for it."
-msgstr "Sustituye opcionalmente la configuración al completo. Puede usar la función @code{mixed-text-file} o una ruta absoluta de un fichero para hacerlo."
+msgstr "Sustituye opcionalmente la configuración al completo. Puede usar la función @code{mixed-text-file} o una ruta absoluta de un archivo para hacerlo."
+
+#. type: item
+#: doc/guix.texi:23593
+#, no-wrap
+msgid "@code{php-ini-file} (default @code{#f})"
+msgstr "@code{php-ini-file} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:23597
+msgid "An optional override of the default php settings.  It may be any ``file-like'' object (@pxref{G-Expressions, file-like objects}).  You can use the @code{mixed-text-file} function or an absolute filepath for it."
+msgstr "Sustituye opcionalmente la configuración predeterminada de php. Puede ser cualquier objeto ``tipo-archivo'' (@pxref{G-Expressions, file-like objects}). Puede usar la función @code{mixed-text-file} o una ruta absoluta de un archivo para hacerlo."
+
+#. type: table
+#: doc/guix.texi:23601
+msgid "For local development it is useful to set a higher timeout and memory limit for spawned php processes.  This be accomplished with the following operating system configuration snippet:"
+msgstr "Para el desarrollo local es útil proporcionar valores mayores para los plazos y límites de memoria de los procesos php lanzados. Esto puede obtenerse con el siguiente fragmento de la configuración de sistema operativo:"
+
+#. type: lisp
+#: doc/guix.texi:23606
+#, no-wrap
+msgid ""
+"(define %local-php-ini\n"
+"  (plain-file \"php.ini\"\n"
+"              \"memory_limit = 2G\n"
+"max_execution_time = 1800\"))\n"
+"\n"
+msgstr ""
+"(define %php-ini-local\n"
+"  (plain-file \"php.ini\"\n"
+"              \"memory_limit = 2G\n"
+"max_execution_time = 1800\"))\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:23613
+#, no-wrap
+msgid ""
+"(operating-system\n"
+"  ;; @dots{}\n"
+"  (services (cons (service php-fpm-service-type\n"
+"                           (php-fpm-configuration\n"
+"                            (php-ini-file %local-php-ini)))\n"
+"                  %base-services)))\n"
+msgstr ""
+"(operating-system\n"
+"  ;; @dots{}\n"
+"  (services (cons (service php-fpm-service-type\n"
+"                           (php-fpm-configuration\n"
+"                            (php-ini-file %php-ini-local)))\n"
+"                  %base-services)))\n"
+
+#. type: table
+#: doc/guix.texi:23618
+msgid "Consult the @url{https://www.php.net/manual/en/ini.core.php,core php.ini directives} for comprehensive documentation on the acceptable @file{php.ini} directives."
+msgstr "Consulte las @url{https://www.php.net/manual/en/ini.core.php,directivas principales de php.ini} para obtener una documentación extensa de las directivas aceptables en el archivo @file{php.ini}."
 
 #. type: deftp
-#: doc/guix.texi:20883
+#: doc/guix.texi:23621
 #, no-wrap
 msgid "{Data type} php-fpm-dynamic-process-manager-configuration"
 msgstr "{Tipo de datos} php-fpm-dynamic-process-manager-configuration"
 
 # FUZZY
 #. type: deftp
-#: doc/guix.texi:20887
+#: doc/guix.texi:23625
 msgid "Data Type for the @code{dynamic} php-fpm process manager.  With the @code{dynamic} process manager, spare worker processes are kept around based on it's configured limits."
 msgstr "Tipo de datos para el gestor de procesos @code{dynamic} de php-fpm. Con el gestor de procesos @code{dynamic}, se mantienen procesos de trabajo disponibles en base a los límites configurados."
 
 #. type: item
-#: doc/guix.texi:20888 doc/guix.texi:20904 doc/guix.texi:20914
+#: doc/guix.texi:23626 doc/guix.texi:23642 doc/guix.texi:23652
 #, no-wrap
 msgid "@code{max-children} (default: @code{5})"
 msgstr "@code{max-children} (predeterminados: @code{5})"
 
 #. type: table
-#: doc/guix.texi:20890 doc/guix.texi:20906 doc/guix.texi:20916
+#: doc/guix.texi:23628 doc/guix.texi:23644 doc/guix.texi:23654
 msgid "Maximum of worker processes."
 msgstr "Número máximo de procesos de trabajo."
 
 #. type: item
-#: doc/guix.texi:20890
+#: doc/guix.texi:23628
 #, no-wrap
 msgid "@code{start-servers} (default: @code{2})"
 msgstr "@code{start-servers} (predeterminados: @code{2})"
 
 #. type: table
-#: doc/guix.texi:20892
+#: doc/guix.texi:23630
 msgid "How many worker processes should be started on start-up."
 msgstr "Cuantos procesos de trabajo deben ejecutarse al inicio."
 
 #. type: item
-#: doc/guix.texi:20892
+#: doc/guix.texi:23630
 #, no-wrap
 msgid "@code{min-spare-servers} (default: @code{1})"
 msgstr "@code{min-spare-servers} (predeterminado: @code{1})"
 
 #. type: table
-#: doc/guix.texi:20894
+#: doc/guix.texi:23632
 msgid "How many spare worker processes should be kept around at minimum."
 msgstr "Cuantos procesos de trabajo deben mantenerse disponibles como mínimo."
 
 #. type: item
-#: doc/guix.texi:20894
+#: doc/guix.texi:23632
 #, no-wrap
 msgid "@code{max-spare-servers} (default: @code{3})"
 msgstr "@code{max-spare-servers} (predeterminados: @code{3})"
 
 #. type: table
-#: doc/guix.texi:20896
+#: doc/guix.texi:23634
 msgid "How many spare worker processes should be kept around at maximum."
 msgstr "Cuantos procesos de trabajo deben mantenerse disponibles como máximo."
 
 #. type: deftp
-#: doc/guix.texi:20899
+#: doc/guix.texi:23637
 #, no-wrap
 msgid "{Data type} php-fpm-static-process-manager-configuration"
 msgstr "{Tipo de datos} php-fpm-static-process-manager-configuration"
 
 #. type: deftp
-#: doc/guix.texi:20903
+#: doc/guix.texi:23641
 msgid "Data Type for the @code{static} php-fpm process manager.  With the @code{static} process manager, an unchanging number of worker processes are created."
 msgstr "Tipo de datos para el gestor de procesos @code{static} de php-fpm. Con el gestor de procesos @code{static}, se crea un número fijo de procesos de trabajo."
 
 #. type: deftp
-#: doc/guix.texi:20909
+#: doc/guix.texi:23647
 #, no-wrap
 msgid "{Data type} php-fpm-on-demand-process-manager-configuration"
 msgstr "{Tipo de datos} php-fpm-on-demand-process-manager-configuration"
 
 #. type: deftp
-#: doc/guix.texi:20913
+#: doc/guix.texi:23651
 msgid "Data Type for the @code{on-demand} php-fpm process manager.  With the @code{on-demand} process manager, worker processes are only created as requests arrive."
 msgstr "Tipo de datos para el gestor de procesos @code{on-demand} de php-fpm. Con el gestor de procesos @code{on-demand}, se crean procesos de trabajo únicamente cuando se reciben peticiones."
 
 #. type: item
-#: doc/guix.texi:20916
+#: doc/guix.texi:23654
 #, no-wrap
 msgid "@code{process-idle-timeout} (default: @code{10})"
 msgstr "@code{process-idle-timeout} (predeterminado: @code{10})"
 
 # FUZZY FUZZY
 #. type: table
-#: doc/guix.texi:20918
+#: doc/guix.texi:23656
 msgid "The time in seconds after which a process with no requests is killed."
 msgstr "El tiempo en segundos tras el cual un proceso sin peticiones será eliminado."
 
 #. type: deffn
-#: doc/guix.texi:20922
+#: doc/guix.texi:23660
 #, no-wrap
-msgid "{Scheme Procedure} nginx-php-fpm-location @"
-msgstr "{Procedimiento Scheme} nginx-php-fpm-location @"
+msgid "{Scheme Procedure} nginx-php-location @"
+msgstr "{Procedimiento Scheme} nginx-php-location @"
 
 #. type: deffn
-#: doc/guix.texi:20928
+#: doc/guix.texi:23666
 msgid "[#:nginx-package nginx] @ [socket (string-append \"/var/run/php\" @ (version-major (package-version php)) @ \"-fpm.sock\")] A helper function to quickly add php to an @code{nginx-server-configuration}."
 msgstr ""
 "[#:nginx-package nginx] @ [socket (string-append \"/var/run/php\" @ (version-major (package-version php)) @ \"-fpm.sock\")]\n"
 "Función auxiliar para añadir php a una configuración @code{nginx-server-configuration} rápidamente."
 
 #. type: Plain text
-#: doc/guix.texi:20931
+#: doc/guix.texi:23669
 msgid "A simple services setup for nginx with php can look like this:"
 msgstr "Una configuración simple de servicios para nginx con php puede ser más o menos así:"
 
 #. type: lisp
-#: doc/guix.texi:20944
+#: doc/guix.texi:23682
 #, no-wrap
 msgid ""
 "(services (cons* (service dhcp-client-service-type)\n"
@@ -40800,37 +45622,37 @@ msgstr ""
 "                 %base-services))\n"
 
 #. type: cindex
-#: doc/guix.texi:20946
+#: doc/guix.texi:23684
 #, no-wrap
 msgid "cat-avatar-generator"
 msgstr "cat-avatar-generator"
 
 #. type: Plain text
-#: doc/guix.texi:20950
+#: doc/guix.texi:23688
 msgid "The cat avatar generator is a simple service to demonstrate the use of php-fpm in @code{Nginx}.  It is used to generate cat avatar from a seed, for instance the hash of a user's email address."
 msgstr "El generadores de avatares de gato es un servicio simple para demostrar el uso de php-fpm en @code{Nginx}. Se usa para generar un avatar de gato desde una semilla, por ejemplo el hash de la dirección de correo de la usuaria."
 
 #. type: deffn
-#: doc/guix.texi:20951
+#: doc/guix.texi:23689
 #, no-wrap
 msgid "{Scheme Procedure} cat-avatar-generator-service @"
 msgstr "{Procedimiento Scheme} cat-avatar-generator-service @"
 
 # FUZZY
 #. type: deffn
-#: doc/guix.texi:20959
+#: doc/guix.texi:23697
 msgid "[#:cache-dir \"/var/cache/cat-avatar-generator\"] @ [#:package cat-avatar-generator] @ [#:configuration (nginx-server-configuration)] Returns an nginx-server-configuration that inherits @code{configuration}.  It extends the nginx configuration to add a server block that serves @code{package}, a version of cat-avatar-generator.  During execution, cat-avatar-generator will be able to use @code{cache-dir} as its cache directory."
 msgstr ""
 "[#:cache-dir \"/var/cache/cat-avatar-generator\"] @ [#:package cat-avatar-generator] @ [#:configuration (nginx-server-configuration)]\n"
 "Devuelve una configuración de nginx-server-configuration que hereda de @code{configuration}.  Extiende la configuración de nginx para añadir un bloque de servidor que proporciona @code{package}, una versión de cat-avatar-generator. Durante su ejecución, cat-avatar-generator podrá usar @code{cache-dir} como su directorio de caché."
 
 #. type: Plain text
-#: doc/guix.texi:20962
+#: doc/guix.texi:23700
 msgid "A simple setup for cat-avatar-generator can look like this:"
 msgstr "Una configuración simple para cat-avatar-generator puede ser más o menos así:"
 
 #. type: lisp
-#: doc/guix.texi:20969
+#: doc/guix.texi:23707
 #, no-wrap
 msgid ""
 "(services (cons* (cat-avatar-generator-service\n"
@@ -40848,158 +45670,158 @@ msgstr ""
 "                 %base-services))\n"
 
 #. type: subsubheading
-#: doc/guix.texi:20971
+#: doc/guix.texi:23709
 #, no-wrap
 msgid "Hpcguix-web"
 msgstr "Hpcguix-web"
 
 #. type: cindex
-#: doc/guix.texi:20973
+#: doc/guix.texi:23711
 #, no-wrap
 msgid "hpcguix-web"
 msgstr "hpcguix-web"
 
 # FUZZY
 #. type: Plain text
-#: doc/guix.texi:20978
+#: doc/guix.texi:23716
 msgid "The @uref{https://github.com/UMCUGenetics/hpcguix-web/, hpcguix-web} program is a customizable web interface to browse Guix packages, initially designed for users of high-performance computing (HPC)  clusters."
 msgstr "El programa @uref{https://github.com/UMCUGenetics/hpcguix-web/, hpcguix-web} es una interfaz web personalizable para buscar paquetes de Guix, diseñado inicialmente para usuarias de clusters de computación de alto rendimiento (HPC)."
 
 #. type: defvr
-#: doc/guix.texi:20979
+#: doc/guix.texi:23717
 #, no-wrap
 msgid "{Scheme Variable} hpcguix-web-service-type"
 msgstr "{Variable Scheme} hpcguix-web-service-type"
 
 #. type: defvr
-#: doc/guix.texi:20981
+#: doc/guix.texi:23719
 msgid "The service type for @code{hpcguix-web}."
 msgstr "El tipo de servicio para @code{hpcguix-web}."
 
 #. type: deftp
-#: doc/guix.texi:20983
+#: doc/guix.texi:23721
 #, no-wrap
 msgid "{Data Type} hpcguix-web-configuration"
 msgstr "{Tipo de datos} hpcguix-web-configuration"
 
 #. type: deftp
-#: doc/guix.texi:20985
+#: doc/guix.texi:23723
 msgid "Data type for the hpcguix-web service configuration."
 msgstr "El tipo de datos para la configuración del servicio hpcguix-web."
 
 #. type: code{#1}
-#: doc/guix.texi:20987
+#: doc/guix.texi:23725
 #, no-wrap
 msgid "specs"
 msgstr "specs"
 
 #. type: table
-#: doc/guix.texi:20990
+#: doc/guix.texi:23728
 msgid "A gexp (@pxref{G-Expressions}) specifying the hpcguix-web service configuration.  The main items available in this spec are:"
 msgstr "Una expresión-G (@pxref{G-Expressions}) que especifica la configuración del servicio hpcguix-web. Los elementos principales en esta especificación son:"
 
 #. type: item
-#: doc/guix.texi:20992
+#: doc/guix.texi:23730
 #, no-wrap
 msgid "@code{title-prefix} (default: @code{\"hpcguix | \"})"
 msgstr "@code{title-prefix} (predeterminado: @code{\"hpcguix | \"})"
 
 #. type: table
-#: doc/guix.texi:20994
+#: doc/guix.texi:23732
 msgid "The page title prefix."
 msgstr "El prefijo del título de la página."
 
 #. type: item
-#: doc/guix.texi:20995
+#: doc/guix.texi:23733
 #, no-wrap
 msgid "@code{guix-command} (default: @code{\"guix\"})"
 msgstr "@code{guix-command} (predeterminada: @code{\"guix\"})"
 
 #. type: table
-#: doc/guix.texi:20997
+#: doc/guix.texi:23735
 msgid "The @command{guix} command."
 msgstr "La orden @command{guix}."
 
 #. type: item
-#: doc/guix.texi:20998
+#: doc/guix.texi:23736
 #, no-wrap
 msgid "@code{package-filter-proc} (default: @code{(const #t)})"
 msgstr "@code{package-filter-proc} (predeterminado: @code{(const #t)})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:21000
+#: doc/guix.texi:23738
 msgid "A procedure specifying how to filter packages that are displayed."
 msgstr "Un procedimiento que especifica cómo filtrar los paquetes mostrados."
 
 #. type: item
-#: doc/guix.texi:21001
+#: doc/guix.texi:23739
 #, no-wrap
 msgid "@code{package-page-extension-proc} (default: @code{(const '())})"
 msgstr "@code{package-page-extension-proc} (predeterminado: @code{(const '())})"
 
 #. type: table
-#: doc/guix.texi:21003
+#: doc/guix.texi:23741
 msgid "Extension package for @code{hpcguix-web}."
 msgstr "Paquete de extensión para @code{hpcguix-web}."
 
 #. type: item
-#: doc/guix.texi:21004
+#: doc/guix.texi:23742
 #, no-wrap
 msgid "@code{menu} (default: @code{'()})"
 msgstr "@code{menu} (predeterminadas: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:21006
+#: doc/guix.texi:23744
 msgid "Additional entry in page @code{menu}."
 msgstr "Entradas adicionales en el menú de la página."
 
 #. type: item
-#: doc/guix.texi:21007
+#: doc/guix.texi:23745
 #, no-wrap
 msgid "@code{channels} (default: @code{%default-channels})"
 msgstr "@code{channels} (predeterminados: @code{%default-channels})"
 
 #. type: table
-#: doc/guix.texi:21009
+#: doc/guix.texi:23747
 msgid "List of channels from which the package list is built (@pxref{Channels})."
 msgstr "Lista de canales desde los que se construye la lista de paquetes (@pxref{Channels})."
 
 #. type: item
-#: doc/guix.texi:21010
+#: doc/guix.texi:23748
 #, no-wrap
 msgid "@code{package-list-expiration} (default: @code{(* 12 3600)})"
 msgstr "@code{package-list-expiration} (predeterminado: @code{(* 12 3600)})"
 
 #. type: table
-#: doc/guix.texi:21013
+#: doc/guix.texi:23751
 msgid "The expiration time, in seconds, after which the package list is rebuilt from the latest instances of the given channels."
 msgstr "El tiempo de expiración, en segundos, tras el cual la lista de paquetes se reconstruye desde las últimas instancias de los canales proporcionados."
 
 #. type: table
-#: doc/guix.texi:21018
+#: doc/guix.texi:23756
 msgid "See the hpcguix-web repository for a @uref{https://github.com/UMCUGenetics/hpcguix-web/blob/master/hpcweb-configuration.scm, complete example}."
 msgstr "Véase el repositorio de hpcguix-web para un @uref{https://github.com/UMCUGenetics/hpcguix-web/blob/master/hpcweb-configuration.scm, ejemplo completo}."
 
 #. type: item
-#: doc/guix.texi:21019
+#: doc/guix.texi:23757
 #, no-wrap
 msgid "@code{package} (default: @code{hpcguix-web})"
 msgstr "@code{package} (predeterminado: @code{hpcguix-web})"
 
 #. type: table
-#: doc/guix.texi:21021
+#: doc/guix.texi:23759
 msgid "The hpcguix-web package to use."
 msgstr "El paquete hpcguix-web usado."
 
 # FUZZY
 #. type: Plain text
-#: doc/guix.texi:21025
+#: doc/guix.texi:23763
 msgid "A typical hpcguix-web service declaration looks like this:"
 msgstr "Una declaración típica del servicio hpcguix-web es más o menos así:"
 
 #. type: lisp
-#: doc/guix.texi:21034
+#: doc/guix.texi:23772
 #, no-wrap
 msgid ""
 "(service hpcguix-web-service-type\n"
@@ -41020,35 +45842,102 @@ msgstr ""
 
 # FUZZY
 #. type: quotation
-#: doc/guix.texi:21041
+#: doc/guix.texi:23779
 msgid "The hpcguix-web service periodically updates the package list it publishes by pulling channels from Git.  To that end, it needs to access X.509 certificates so that it can authenticate Git servers when communicating over HTTPS, and it assumes that @file{/etc/ssl/certs} contains those certificates."
 msgstr "El servicio hpcguix-web actualiza periódicamente la lista de paquetes que publica obteniendo canales con Git. Para ello, necesita acceder a certificados X.509 de manera que pueda validar los servidores Git durante la comunicación con HTTPS, y asume que @file{/etc/ssl/certs} contiene dichos certificados."
 
 #. type: quotation
-#: doc/guix.texi:21045
+#: doc/guix.texi:23783
 msgid "Thus, make sure to add @code{nss-certs} or another certificate package to the @code{packages} field of your configuration.  @ref{X.509 Certificates}, for more information on X.509 certificates."
 msgstr "Por lo tanto, asegúrese de añadir @code{nss-certs} u otro paquete de certificados al campo @code{packages} de su configuración. @ref{X.509 Certificates}, para más información sobre certificados X.509."
 
 #. type: cindex
-#: doc/guix.texi:21050
+#: doc/guix.texi:23785 doc/guix.texi:23787
+#, no-wrap
+msgid "gmnisrv"
+msgstr "gmnisrv"
+
+#. type: Plain text
+#: doc/guix.texi:23790
+msgid "The @uref{https://git.sr.ht/~sircmpwn/gmnisrv, gmnisrv} program is a simple @uref{https://gemini.circumlunar.space/, Gemini} protocol server."
+msgstr "El programa @uref{https://git.sr.ht/~sircmpwn/gmnisrv, gmnisrv} es un servidor simple del protocolo @uref{https://gemini.circumlunar.space/, Gemini}."
+
+#. type: deffn
+#: doc/guix.texi:23791
+#, no-wrap
+msgid "{Scheme Variable} gmnisrv-service-type"
+msgstr "{Variable Scheme} gmnisrv-service-type"
+
+#. type: deffn
+#: doc/guix.texi:23794
+msgid "This is the type of the gmnisrv service, whose value should be a @code{gmnisrv-configuration} object, as in this example:"
+msgstr "Es el tipo del servicio gmnisrv, cuyo valor debe ser un objeto @code{gmniserv-configuration} como en este ejemplo:"
+
+#. type: lisp
+#: doc/guix.texi:23799
+#, no-wrap
+msgid ""
+"(service gmnisrv-service-type\n"
+"         (gmnisrv-configuration\n"
+"           (config-file (local-file \"./my-gmnisrv.ini\"))))\n"
+msgstr ""
+"(service gmnisrv-service-type\n"
+"         (gmnisrv-configuration\n"
+"           (config-file (local-file \"./mi-gmnisrv.ini\"))))\n"
+
+#. type: deftp
+#: doc/guix.texi:23802
+#, no-wrap
+msgid "{Data Type} gmnisrv-configuration"
+msgstr "{Tipo de datos} gmnisrv-configuration"
+
+#. type: deftp
+#: doc/guix.texi:23804
+msgid "Data type representing the configuration of gmnisrv."
+msgstr "Tipo de datos que representa la configuración de gmnisrv."
+
+#. type: item
+#: doc/guix.texi:23806
+#, no-wrap
+msgid "@code{package} (default: @var{gmnisrv})"
+msgstr "@code{package} (predeterminado: @var{gmnisrv})"
+
+#. type: table
+#: doc/guix.texi:23808
+msgid "Package object of the gmnisrv server."
+msgstr "El objeto paquete del servidor gmnisrv."
+
+#. type: item
+#: doc/guix.texi:23809
+#, no-wrap
+msgid "@code{config-file} (default: @code{%default-gmnisrv-config-file})"
+msgstr "@code{config-file} (predeterminado: @code{%default-gmnisrv-config-file})"
+
+#. type: table
+#: doc/guix.texi:23815
+msgid "File-like object of the gmnisrv configuration file to use.  The default configuration listens on port 1965 and serves files from @file{/srv/gemini}.  Certificates are stored in @file{/var/lib/gemini/certs}.  For more information, run @command{man gmnisrv} and @command{man gmnisrv.ini}."
+msgstr "Objeto tipo-archivo del archivo de configuración de gmnisrv usado. La configuración predeterminada escucha en el puerto 1965 y proporciona archivos desde @file{/srv/gemini}. Los certificados se almacenan en @file{/var/lib/gemini/certs}. Puede ejecutar las ordenes @command{man gmnisrv} y @command{man gmnisrv.ini} para obtener más información."
+
+#. type: cindex
+#: doc/guix.texi:23822
 #, no-wrap
 msgid "Web"
 msgstr "Web"
 
 #. type: cindex
-#: doc/guix.texi:21051
+#: doc/guix.texi:23823
 #, no-wrap
 msgid "HTTP, HTTPS"
 msgstr "HTTP, HTTPS"
 
 #. type: cindex
-#: doc/guix.texi:21052
+#: doc/guix.texi:23824
 #, no-wrap
 msgid "Let's Encrypt"
 msgstr "Let's Encrypt"
 
 #. type: cindex
-#: doc/guix.texi:21053
+#: doc/guix.texi:23825
 #, no-wrap
 msgid "TLS certificates"
 msgstr "certificados TLS"
@@ -41056,45 +45945,45 @@ msgstr "certificados TLS"
 # FUZZY
 # TODO (MAAV): Repensar.
 #. type: Plain text
-#: doc/guix.texi:21060
+#: doc/guix.texi:23832
 msgid "The @code{(gnu services certbot)} module provides a service to automatically obtain a valid TLS certificate from the Let's Encrypt certificate authority.  These certificates can then be used to serve content securely over HTTPS or other TLS-based protocols, with the knowledge that the client will be able to verify the server's authenticity."
 msgstr "El módulo @code{(gnu services certbot)} proporciona un servicio para la obtención automática de un certificado TLS válido de la autoridad de certificación Let's Encrypt. Estos certificados pueden usarse para proporcionar contenido de forma segura sobre HTTPS u otros protocolos basados en TLS, con el conocimiento de que el cliente podrá verificar la autenticidad del servidor."
 
 #. type: Plain text
-#: doc/guix.texi:21072
+#: doc/guix.texi:23844
 msgid "@url{https://letsencrypt.org/, Let's Encrypt} provides the @code{certbot} tool to automate the certification process.  This tool first securely generates a key on the server.  It then makes a request to the Let's Encrypt certificate authority (CA) to sign the key.  The CA checks that the request originates from the host in question by using a challenge-response protocol, requiring the server to provide its response over HTTP.  If that protocol completes successfully, the CA signs the key, resulting in a certificate.  That certificate is valid for a limited period of time, and therefore to continue to provide TLS services, the server needs to periodically ask the CA to renew its signature."
 msgstr "@url{https://letsencrypt.org/, Let's Encrypt} proporciona la herramienta @code{certbot} para automatizar el proceso de certificación. Esta herramienta genera primero de manera segura una clave en el servidor. Una vez hecho realiza una petición a la autoridad de certificación (AC, CA en inglés) Let's Encrypt para que firme la clave. La AC comprueba que la petición se origina en la máquina en cuestión mediante un protocolo de desafío-respuesta, esperando que el servidor proporcione su respuesta a través de HTTP. Si dicho protocolo se completa de manera satisfactoria, la AC firma la clave, resultando en un certificado. Dicho certificado es válido por un periodo de tiempo limitado y, por tanto, para continuar proporcionando servicios TLS, el servidor necesita solicitar a la AC periódicamente la renovación de su firma."
 
 #. type: Plain text
-#: doc/guix.texi:21079
+#: doc/guix.texi:23851
 msgid "The certbot service automates this process: the initial key generation, the initial certification request to the Let's Encrypt service, the web server challenge/response integration, writing the certificate to disk, the automated periodic renewals, and the deployment tasks associated with the renewal (e.g.@: reloading services, copying keys with different permissions)."
 msgstr "El servicio certbot automatiza este proceso: la generación inicial de la clave, la petición inicial de certificación al servicio Let's Encrypt, la integración del desafío/respuesta en el servidor web, la escritura del certificado en disco, las renovaciones periódicas automáticas y el despliegue de tareas asociadas con la renovación (por ejemplo la recarga de servicios y la copia de claves con diferentes permisos)."
 
 # FUZZY
 #. type: Plain text
-#: doc/guix.texi:21085
+#: doc/guix.texi:23857
 msgid "Certbot is run twice a day, at a random minute within the hour.  It won't do anything until your certificates are due for renewal or revoked, but running it regularly would give your service a chance of staying online in case a Let's Encrypt-initiated revocation happened for some reason."
 msgstr "Certbot se ejecuta dos veces al día, en un minuto aleatorio dentro de la hora. No hará nada hasta que sus certificados estén pendientes de renovación o sean revocados, pero su ejecución regular propociona a su servicio la oportunidad de permanecer en línea en caso de que se produzca una revocación iniciada por Let's Encrypt por alguna razón."
 
 # FUZZY
 #. type: Plain text
-#: doc/guix.texi:21089
+#: doc/guix.texi:23861
 msgid "By using this service, you agree to the ACME Subscriber Agreement, which can be found there: @url{https://acme-v01.api.letsencrypt.org/directory}."
 msgstr "Mediante el uso de este servicio, usted acepta el acuerdo de suscripción ACME, que se puede encontrar aquí: @url{https://acme-v01.api.letsencrypt.org/directory}."
 
 #. type: defvr
-#: doc/guix.texi:21090
+#: doc/guix.texi:23862
 #, no-wrap
 msgid "{Scheme Variable} certbot-service-type"
 msgstr "{Variable Scheme} certbot-service-type"
 
 #. type: defvr
-#: doc/guix.texi:21093
+#: doc/guix.texi:23865
 msgid "A service type for the @code{certbot} Let's Encrypt client.  Its value must be a @code{certbot-configuration} record as in this example:"
 msgstr "Un tipo de servicio para el cliente de Let's Encrypt @code{certbot}. Su valor debe ser un registro @code{certbot-configuration} como en este ejemplo:"
 
 #. type: lisp
-#: doc/guix.texi:21100
+#: doc/guix.texi:23872
 #, no-wrap
 msgid ""
 "(define %nginx-deploy-hook\n"
@@ -41112,7 +46001,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:21111
+#: doc/guix.texi:23883
 #, no-wrap
 msgid ""
 "(service certbot-service-type\n"
@@ -41138,209 +46027,214 @@ msgstr ""
 "             (domains '(\"bar.example.net\")))))))\n"
 
 #. type: defvr
-#: doc/guix.texi:21114
+#: doc/guix.texi:23886
 msgid "See below for details about @code{certbot-configuration}."
 msgstr "Véase a continuación los detalles de @code{certbot-configuration}."
 
 #. type: deftp
-#: doc/guix.texi:21116
+#: doc/guix.texi:23888
 #, no-wrap
 msgid "{Data Type} certbot-configuration"
 msgstr "{Tipo de datos} certbot-configuration"
 
 #. type: deftp
-#: doc/guix.texi:21119
+#: doc/guix.texi:23891
 msgid "Data type representing the configuration of the @code{certbot} service.  This type has the following parameters:"
 msgstr "Tipo de datos que representa la configuración del servicio @code{certbot}. Este tipo tiene los siguientes parámetros:"
 
 #. type: item
-#: doc/guix.texi:21121
+#: doc/guix.texi:23893
 #, no-wrap
 msgid "@code{package} (default: @code{certbot})"
 msgstr "@code{package} (predeterminado: @code{certbot})"
 
 #. type: table
-#: doc/guix.texi:21123
+#: doc/guix.texi:23895
 msgid "The certbot package to use."
 msgstr "El paquete certbot usado."
 
 #. type: item
-#: doc/guix.texi:21124
+#: doc/guix.texi:23896
 #, no-wrap
 msgid "@code{webroot} (default: @code{/var/www})"
 msgstr "@code{webroot} (predeterminado: @code{/var/www})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:21127
+#: doc/guix.texi:23899
 msgid "The directory from which to serve the Let's Encrypt challenge/response files."
-msgstr "Directorio desde el que se proporcionan los ficheros de desafío/respuesta de Let's Encrypt."
+msgstr "Directorio desde el que se proporcionan los archivos de desafío/respuesta de Let's Encrypt."
 
 #. type: item
-#: doc/guix.texi:21128
+#: doc/guix.texi:23900
 #, no-wrap
 msgid "@code{certificates} (default: @code{()})"
 msgstr "@code{certificates} (predeterminados: @code{()})"
 
 #. type: table
-#: doc/guix.texi:21132
+#: doc/guix.texi:23904
 msgid "A list of @code{certificates-configuration}s for which to generate certificates and request signatures.  Each certificate has a @code{name} and several @code{domains}."
 msgstr "Una lista de configuraciones @code{certificates-configuration} para los cuales se generan certificados y se solicitan firmas. Cada certificado tiene un nombre (@code{name}) y varios dominios (@code{domains})."
 
-# FUZZY
+#. type: item
+#: doc/guix.texi:23905
+#, no-wrap
+msgid "@code{email} (default: @code{#f})"
+msgstr "@code{email} (predeterminado: @code{#f})"
+
 #. type: table
-#: doc/guix.texi:21136
-msgid "Mandatory email used for registration, recovery contact, and important account notifications."
-msgstr "Correo electrónico obligatorio usado para el registro, contacto de recuperación y notificaciones importantes de la cuenta."
+#: doc/guix.texi:23909
+msgid "Optional email address used for registration and recovery contact.  Setting this is encouraged as it allows you to receive important notifications about the account and issued certificates."
+msgstr "Dirección de correo electrónico opcional usada para el registro y el contacto de recuperación. Se recomienda que proporcione un valor ya que le permite recibir importantes notificaciones acerca de la cuenta y los certificados emitidos."
 
 #. type: item
-#: doc/guix.texi:21137
+#: doc/guix.texi:23910
 #, no-wrap
 msgid "@code{server} (default: @code{#f})"
 msgstr "@code{server} (predeterminada: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:21140
+#: doc/guix.texi:23913
 msgid "Optional URL of ACME server.  Setting this overrides certbot's default, which is the Let's Encrypt server."
 msgstr "URL opcional del servidor ACME. Esta configuración cambia el valor predeterminado de certbot, que es el servidor de Let's Encrypt."
 
 #. type: item
-#: doc/guix.texi:21141
+#: doc/guix.texi:23914
 #, no-wrap
 msgid "@code{rsa-key-size} (default: @code{2048})"
 msgstr "@code{rsa-key-size} (predeterminado: @code{2048})"
 
 #. type: table
-#: doc/guix.texi:21143
+#: doc/guix.texi:23916
 msgid "Size of the RSA key."
 msgstr "Tamaño de la clave RSA."
 
 #. type: item
-#: doc/guix.texi:21144
+#: doc/guix.texi:23917
 #, no-wrap
 msgid "@code{default-location} (default: @i{see below})"
 msgstr "@code{default-location} (predeterminada: @i{véase a continuación})"
 
 #. type: table
-#: doc/guix.texi:21153
+#: doc/guix.texi:23926
 msgid "The default @code{nginx-location-configuration}.  Because @code{certbot} needs to be able to serve challenges and responses, it needs to be able to run a web server.  It does so by extending the @code{nginx} web service with an @code{nginx-server-configuration} listening on the @var{domains} on port 80, and which has a @code{nginx-location-configuration} for the @code{/.well-known/} URI path subspace used by Let's Encrypt.  @xref{Web Services}, for more on these nginx configuration data types."
 msgstr "La configuración @code{nginx-location-configuration} predeterminada. Debido a que @code{certbot} necesita proporcionar desafíos y respuestas, necesita ser capaz de ejecutar un servidor web. Se lleva a cabo extendiendo el servicio web @code{nginx} con una configuración @code{nginx-server-configuration} que escucha en los dominios @var{domains} en el puerto 80, y que contiene una configuración @code{nginx-location-configuration} para el subespacio de rutas URI @code{/.well-known/} usado por Let's Encrypt. @xref{Web Services}, para más información sobre estos tipos de datos de configuración de nginx."
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:21157
+#: doc/guix.texi:23930
 msgid "Requests to other URL paths will be matched by the @code{default-location}, which if present is added to all @code{nginx-server-configuration}s."
 msgstr "Las peticiones a otras rutas URL se compararán contra la dirección predeterminada @code{default-location}, la cual, en caso de estar presente, se añade a todas las configuraciones @code{nginx-server-configuration}."
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:21161
+#: doc/guix.texi:23934
 msgid "By default, the @code{default-location} will issue a redirect from @code{http://@var{domain}/...} to @code{https://@var{domain}/...}, leaving you to define what to serve on your site via @code{https}."
 msgstr "De manera predeterminada, la dirección predeterminada @code{default-location} emitirá una redirección @code{http://@var{dominio}/...} a @code{https://@var{dominio}/...}, lo que le permite definir qué proporcionará en su sitio web a través de @code{https}."
 
 #. type: table
-#: doc/guix.texi:21163
+#: doc/guix.texi:23936
 msgid "Pass @code{#f} to not issue a default location."
 msgstr "Proporcione @code{#f} para no emitir una dirección predeterminada."
 
 #. type: deftp
-#: doc/guix.texi:21166
+#: doc/guix.texi:23939
 #, no-wrap
 msgid "{Data Type} certificate-configuration"
 msgstr "{Tipo de datos} certificate-configuration"
 
 #. type: deftp
-#: doc/guix.texi:21169
+#: doc/guix.texi:23942
 msgid "Data type representing the configuration of a certificate.  This type has the following parameters:"
 msgstr "Tipo de datos que representa la configuración de un certificado. Este tipo tiene los siguientes parámetros:"
 
 #. type: item
-#: doc/guix.texi:21171
+#: doc/guix.texi:23944
 #, no-wrap
 msgid "@code{name} (default: @i{see below})"
 msgstr "@code{name} (predeterminado: @i{vea a continuación})"
 
 #. type: table
-#: doc/guix.texi:21175
+#: doc/guix.texi:23948
 msgid "This name is used by Certbot for housekeeping and in file paths; it doesn't affect the content of the certificate itself.  To see certificate names, run @code{certbot certificates}."
-msgstr "Este nombre se usa por Certbot para su mantenimiento interno y en las rutas de ficheros; no afecta al contenido del certificado en sí mismo. Para ver los nombres de certificados, ejecute @code{certbot certificates}."
+msgstr "Este nombre se usa por Certbot para su mantenimiento interno y en las rutas de archivos; no afecta al contenido del certificado en sí mismo. Para ver los nombres de certificados, ejecute @code{certbot certificates}."
 
 #. type: table
-#: doc/guix.texi:21177
+#: doc/guix.texi:23950
 msgid "Its default is the first provided domain."
 msgstr "Su valor predeterminado es el primer dominio proporcionado."
 
 #. type: item
-#: doc/guix.texi:21178
+#: doc/guix.texi:23951
 #, no-wrap
 msgid "@code{domains} (default: @code{()})"
 msgstr "@code{domains} (predeterminado: @code{()})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:21181
+#: doc/guix.texi:23954
 msgid "The first domain provided will be the subject CN of the certificate, and all domains will be Subject Alternative Names on the certificate."
 msgstr "El primer dominio proporcionado será el sujeto del nombre común (CN) del certificado, y todos los dominios serán nombres alternativos (Subject Alternative Names) en el certificado."
 
 #. type: item
-#: doc/guix.texi:21182
+#: doc/guix.texi:23955
 #, no-wrap
 msgid "@code{challenge} (default: @code{#f})"
 msgstr "@code{challenge} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:21189
+#: doc/guix.texi:23962
 msgid "The challenge type that has to be run by certbot.  If @code{#f} is specified, default to the HTTP challenge.  If a value is specified, defaults to the manual plugin (see @code{authentication-hook}, @code{cleanup-hook} and the documentation at @url{https://certbot.eff.org/docs/using.html#hooks}), and gives Let's Encrypt permission to log the public IP address of the requesting machine."
 msgstr "El tipo de desafío que debe ejecutar certbot. Si se especifica @code{#f}, el valor por omisión es desafío HTTP. Si se especifica un valor, el valor por omisión es el módulo manual (véase @code{authentication-hook}, @code{cleanup-hook} y la documentación en @url{https://certbot.eff.org/docs/using.html#hooks}), y concede permiso a Let's Encrypt para registrar la IP pública de la máquina que realiza la petición."
 
 #. type: item
-#: doc/guix.texi:21190
+#: doc/guix.texi:23963
 #, no-wrap
 msgid "@code{authentication-hook} (default: @code{#f})"
 msgstr "@code{authentication-hook} (predeterminado: @code{#t})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:21196
+#: doc/guix.texi:23969
 msgid "Command to be run in a shell once for each certificate challenge to be answered.  For this command, the shell variable @code{$CERTBOT_DOMAIN} will contain the domain being authenticated, @code{$CERTBOT_VALIDATION} contains the validation string and @code{$CERTBOT_TOKEN} contains the file name of the resource requested when performing an HTTP-01 challenge."
-msgstr "Orden ejecutada en un shell una vez por cada desafío de certificado que debe contestarse. Durante su ejecución, la variable del shell @code{$CERTBOT_DOMAIN} contiene el dominio que se está validando, @code{$CERTBOT_VALIDATION} contiene la cadena de validación y @code{$CERTBOT_TOKEN} contiene el nombre de fichero del recurso solicitado cuando se realiza el desafío HTTP-01."
+msgstr "Orden ejecutada en un shell una vez por cada desafío de certificado que debe contestarse. Durante su ejecución, la variable del shell @code{$CERTBOT_DOMAIN} contiene el dominio que se está validando, @code{$CERTBOT_VALIDATION} contiene la cadena de validación y @code{$CERTBOT_TOKEN} contiene el nombre de archivo del recurso solicitado cuando se realiza el desafío HTTP-01."
 
 #. type: item
-#: doc/guix.texi:21197
+#: doc/guix.texi:23970
 #, no-wrap
 msgid "@code{cleanup-hook} (default: @code{#f})"
 msgstr "@code{cleanup-hook} (predeterminado: @code{#f})"
 
 # FUZZY FUZZY FUZZY
 #. type: table
-#: doc/guix.texi:21203
+#: doc/guix.texi:23976
 msgid "Command to be run in a shell once for each certificate challenge that have been answered by the @code{auth-hook}.  For this command, the shell variables available in the @code{auth-hook} script are still available, and additionally @code{$CERTBOT_AUTH_OUTPUT} will contain the standard output of the @code{auth-hook} script."
 msgstr "Orden ejecutada en un shell una vez por cada desafío de certificado que haya sido contestado por @code{auth-hook}. Durante su ejecución, las variables del shell disponibles en el script @code{auth-hook} todavía están disponibles, y adicionalmente @code{$CERTBOT_AUTH_OUTPUT} contendrá la salida estándar que produjo @code{auth-hook}."
 
 #. type: item
-#: doc/guix.texi:21204
+#: doc/guix.texi:23977
 #, no-wrap
 msgid "@code{deploy-hook} (default: @code{#f})"
 msgstr "@code{deploy-hook} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:21212
+#: doc/guix.texi:23985
 msgid "Command to be run in a shell once for each successfully issued certificate.  For this command, the shell variable @code{$RENEWED_LINEAGE} will point to the config live subdirectory (for example, @samp{\"/etc/letsencrypt/live/example.com\"}) containing the new certificates and keys; the shell variable @code{$RENEWED_DOMAINS} will contain a space-delimited list of renewed certificate domains (for example, @samp{\"example.com www.example.com\"}."
 msgstr "Orden ejecutada en un shell una vez por cada certificado emitido satisfactoriamente. Durante su ejecución, la variable del shell @code{$RENEWED_LINEAGE} apuntará al subdirectorio live de configuración (por ejemplo, @samp{\"/etc/letsencrypt/live/example.com\"}) que contiene las nuevas claves y certificados; la variable del shell @code{$RENEWED_DOMAINS} contendrá una lista delimitada por espacios de certificados de dominio renovados (por ejemplo, @samp{\"example.com www.example.com\"})."
 
 #. type: Plain text
-#: doc/guix.texi:21219
+#: doc/guix.texi:23992
 msgid "For each @code{certificate-configuration}, the certificate is saved to @code{/etc/letsencrypt/live/@var{name}/fullchain.pem} and the key is saved to @code{/etc/letsencrypt/live/@var{name}/privkey.pem}."
 msgstr "Para cada configuración @code{certificate-configuration}, el certificado se almacena @code{/etc/letsencrypt/live/@var{name}/fullchain.pem} y la clave se almacena en @code{/etc/letsencrypt/live/@var{name}/privkey.pem}."
 
 #. type: cindex
-#: doc/guix.texi:21221
+#: doc/guix.texi:23994
 #, no-wrap
 msgid "DNS (domain name system)"
 msgstr "DNS (sistema de nombres de dominio)"
 
 #. type: cindex
-#: doc/guix.texi:21222
+#: doc/guix.texi:23995
 #, no-wrap
 msgid "domain name system (DNS)"
 msgstr "sistema de nombres de dominio (DNS)"
@@ -41348,25 +46242,25 @@ msgstr "sistema de nombres de dominio (DNS)"
 # FUZZY
 # TODO (MAAV): Authoritative??
 #. type: Plain text
-#: doc/guix.texi:21230
+#: doc/guix.texi:24003
 msgid "The @code{(gnu services dns)} module provides services related to the @dfn{domain name system} (DNS).  It provides a server service for hosting an @emph{authoritative} DNS server for multiple zones, slave or master.  This service uses @uref{https://www.knot-dns.cz/, Knot DNS}.  And also a caching and forwarding DNS server for the LAN, which uses @uref{http://www.thekelleys.org.uk/dnsmasq/doc.html, dnsmasq}."
 msgstr "El módulo @code{(gnu services dns)} proporciona servicios relacionados con el @dfn{sistema de nombres de dominio} (DNS). Proporciona un servicio de servidor para el alojamiento de un servidor @emph{autorizado} DNS para múltiples zonas, esclavo o maestro. Este servicio usa @uref{https://www.knot-dns.cz/, Knot DNS}. Y también un servidor de caché y reenvío de DNS para la red local, que usa @uref{http://www.thekelleys.org.uk/dnsmasq/doc.html, dnsmasq}."
 
 #. type: subsubheading
-#: doc/guix.texi:21231
+#: doc/guix.texi:24004
 #, no-wrap
 msgid "Knot Service"
 msgstr "Servicio Knot"
 
 # FUZZY FUZZY
 #. type: Plain text
-#: doc/guix.texi:21235
+#: doc/guix.texi:24008
 msgid "An example configuration of an authoritative server for two zones, one master and one slave, is:"
 msgstr "Esta es una configuración de ejemplo de un servidor de autoridad para dos zonas, una maestra y otra esclava:"
 
 # FUZZY
 #. type: lisp
-#: doc/guix.texi:21242
+#: doc/guix.texi:24015
 #, no-wrap
 msgid ""
 "(define-zone-entries example.org.zone\n"
@@ -41385,7 +46279,7 @@ msgstr ""
 
 # FUZZY
 #. type: lisp
-#: doc/guix.texi:21249
+#: doc/guix.texi:24022
 #, no-wrap
 msgid ""
 "(define master-zone\n"
@@ -41406,7 +46300,7 @@ msgstr ""
 
 # FUZZY
 #. type: lisp
-#: doc/guix.texi:21255
+#: doc/guix.texi:24028
 #, no-wrap
 msgid ""
 "(define slave-zone\n"
@@ -41425,7 +46319,7 @@ msgstr ""
 
 # FUZZY
 #. type: lisp
-#: doc/guix.texi:21260
+#: doc/guix.texi:24033
 #, no-wrap
 msgid ""
 "(define plop-master\n"
@@ -41442,7 +46336,7 @@ msgstr ""
 
 # FUZZY
 #. type: lisp
-#: doc/guix.texi:21269
+#: doc/guix.texi:24042
 #, no-wrap
 msgid ""
 "(operating-system\n"
@@ -41464,292 +46358,286 @@ msgstr ""
 "                   %base-services)))\n"
 
 #. type: deffn
-#: doc/guix.texi:21271
+#: doc/guix.texi:24044
 #, no-wrap
 msgid "{Scheme Variable} knot-service-type"
 msgstr "{Variable Scheme} knot-service-type"
 
 #. type: deffn
-#: doc/guix.texi:21273
+#: doc/guix.texi:24046
 msgid "This is the type for the Knot DNS server."
 msgstr "Este es el tipo de datos para el servidor DNS Knot."
 
 # FUZZY
 #. type: deffn
-#: doc/guix.texi:21281
+#: doc/guix.texi:24054
 msgid "Knot DNS is an authoritative DNS server, meaning that it can serve multiple zones, that is to say domain names you would buy from a registrar.  This server is not a resolver, meaning that it can only resolve names for which it is authoritative.  This server can be configured to serve zones as a master server or a slave server as a per-zone basis.  Slave zones will get their data from masters, and will serve it as an authoritative server.  From the point of view of a resolver, there is no difference between master and slave."
 msgstr "Knot DNS es un servidor de autoridad de DNS, lo que significa que puede servir múltiples zonas, es decir, nombres de dominio que compraría a una autoridad de registro de nombres. Este servidor no es un resolvedor, lo que significa que sólo puede resolver nombres para los que tiene autoridad. Este servidor puede configurarse para servir zonas como servidor maestro o como servidor esclavo con una granularidad al nivel de zona. Las zonas esclavas obtendrán sus datos de los servidores maestros, y las proporcionarán como un servidor de autoridad. Desde el punto de vista de un resolvedor, no hay diferencia entre servidor maestro y esclavo."
 
 #. type: deffn
-#: doc/guix.texi:21283
+#: doc/guix.texi:24056
 msgid "The following data types are used to configure the Knot DNS server:"
 msgstr "Los siguientes tipos de datos se usan para configurar el servidor DNS Knot:"
 
 #. type: deftp
-#: doc/guix.texi:21285
+#: doc/guix.texi:24058
 #, no-wrap
 msgid "{Data Type} knot-key-configuration"
 msgstr "{Tipo de datos} knot-key-configuration"
 
 #. type: deftp
-#: doc/guix.texi:21288
+#: doc/guix.texi:24061
 msgid "Data type representing a key.  This type has the following parameters:"
 msgstr "Tipo de datos que representa una clave. Este tipo tiene los siguientes parámetros:"
 
 #. type: item
-#: doc/guix.texi:21290 doc/guix.texi:21310 doc/guix.texi:21425
-#: doc/guix.texi:21451 doc/guix.texi:21486
+#: doc/guix.texi:24063 doc/guix.texi:24083 doc/guix.texi:24198
+#: doc/guix.texi:24224 doc/guix.texi:24259
 #, no-wrap
 msgid "@code{id} (default: @code{\"\"})"
 msgstr "@code{id} (predeterminado: @code{\"\"})"
 
 #. type: table
-#: doc/guix.texi:21293
+#: doc/guix.texi:24066 doc/guix.texi:24086
 msgid "An identifier for other configuration fields to refer to this key. IDs must be unique and must not be empty."
 msgstr "Un identificador para que otros campos de configuración hagan referencia a esta clave. Los identificadores deben ser únicos y no deben estar vacíos."
 
 #. type: item
-#: doc/guix.texi:21294
+#: doc/guix.texi:24067
 #, no-wrap
 msgid "@code{algorithm} (default: @code{#f})"
 msgstr "@code{algorithm} (predeterminado: @code{#f})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:21298
+#: doc/guix.texi:24071
 msgid "The algorithm to use.  Choose between @code{#f}, @code{'hmac-md5}, @code{'hmac-sha1}, @code{'hmac-sha224}, @code{'hmac-sha256}, @code{'hmac-sha384} and @code{'hmac-sha512}."
 msgstr "El algoritmo usado. Debe seleccionarse entre @code{#f}, @code{'hmac-md5}, @code{'hmac-sha1}, @code{'hmac-sha224}, @code{'hmac-sha256}, @code{'hmac-sha384} y @code{'hmac-sha512}."
 
 #. type: item
-#: doc/guix.texi:21299
+#: doc/guix.texi:24072
 #, no-wrap
 msgid "@code{secret} (default: @code{\"\"})"
 msgstr "@code{secret} (predeterminado: @code{\"\"})"
 
 #. type: table
-#: doc/guix.texi:21301
+#: doc/guix.texi:24074
 msgid "The secret key itself."
 msgstr "La clave secreta en sí."
 
 #. type: deftp
-#: doc/guix.texi:21305
+#: doc/guix.texi:24078
 #, no-wrap
 msgid "{Data Type} knot-acl-configuration"
 msgstr "{Tipo de datos} knot-acl-configuration"
 
 #. type: deftp
-#: doc/guix.texi:21308
+#: doc/guix.texi:24081
 msgid "Data type representing an Access Control List (ACL) configuration.  This type has the following parameters:"
 msgstr "Tipo de datos que representa una configuración de lista de control de acceso (ACL). Este tipo tiene los siguientes parámetros:"
 
-# TODO: Enviar parche!
-#. type: table
-#: doc/guix.texi:21313
-msgid "An identifier for ether configuration fields to refer to this key. IDs must be unique and must not be empty."
-msgstr "Un identificador para que otros campos de configuración hagan referencia a esta clave. Los identificadores deben ser únicos y no deben estar vacíos."
-
 #. type: item
-#: doc/guix.texi:21314 doc/guix.texi:21429
+#: doc/guix.texi:24087 doc/guix.texi:24202
 #, no-wrap
 msgid "@code{address} (default: @code{'()})"
 msgstr "@code{address} (predeterminada: @code{'()})"
 
 # FUZZY FUZZY
 #. type: table
-#: doc/guix.texi:21318
+#: doc/guix.texi:24091
 msgid "An ordered list of IP addresses, network subnets, or network ranges represented with strings.  The query must match one of them.  Empty value means that address match is not required."
 msgstr "Lista ordenada de direcciones IP, subredes o rangos de red representadas como cadenas. La búsqueda debe corresponder con alguna. El valor vacío significa que la comprobación de correspondencia de la dirección no es necesaria."
 
 #. type: item
-#: doc/guix.texi:21319
+#: doc/guix.texi:24092
 #, no-wrap
 msgid "@code{key} (default: @code{'()})"
 msgstr "@code{key} (predeterminada: @code{'()})"
 
 # FUZZY FUZZY
 #. type: table
-#: doc/guix.texi:21323
+#: doc/guix.texi:24096
 msgid "An ordered list of references to keys represented with strings.  The string must match a key ID defined in a @code{knot-key-configuration}.  No key means that a key is not require to match that ACL."
 msgstr "Lista ordenada de referencias a claves representadas como cadenas. La cadena debe corresponder con un ID de clave definido en @code{knot-key-configuration}. Ninguna clave significa que la comprobación de claves no es necesaria para este control de acceso (ACL)."
 
 #. type: item
-#: doc/guix.texi:21324
+#: doc/guix.texi:24097
 #, no-wrap
 msgid "@code{action} (default: @code{'()})"
 msgstr "@code{action} (predeterminada: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:21328
+#: doc/guix.texi:24101
 msgid "An ordered list of actions that are permitted or forbidden by this ACL.  Possible values are lists of zero or more elements from @code{'transfer}, @code{'notify} and @code{'update}."
 msgstr "Lista ordenada de acciones que se permiten o deniegan por este control de acceso (ACL). Los valores posibles son listas de cero o más elementos entre @code{'transfer}, @code{'notify} y @code{'update}."
 
 #. type: item
-#: doc/guix.texi:21329
+#: doc/guix.texi:24102
 #, no-wrap
 msgid "@code{deny?} (default: @code{#f})"
 msgstr "@code{deny?} (predeterminado: @code{#f})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:21332
+#: doc/guix.texi:24105
 msgid "When true, the ACL defines restrictions.  Listed actions are forbidden.  When false, listed actions are allowed."
 msgstr "Cuando es verdadero, este ACL define restricciones. Las acciones enumeradas no se permiten. Cuando es falso, las acciones enumeradas se permiten."
 
 #. type: deftp
-#: doc/guix.texi:21336
+#: doc/guix.texi:24109
 #, no-wrap
 msgid "{Data Type} zone-entry"
 msgstr "{Tipo de datos} zone-entry"
 
 #. type: deftp
-#: doc/guix.texi:21339
+#: doc/guix.texi:24112
 msgid "Data type representing a record entry in a zone file.  This type has the following parameters:"
-msgstr "Tipo de datos que representa una entrada de registro en un fichero de zona. Este tipo tiene los siguientes parámetros:"
+msgstr "Tipo de datos que representa una entrada de registro en un archivo de zona. Este tipo tiene los siguientes parámetros:"
 
 #. type: item
-#: doc/guix.texi:21341
+#: doc/guix.texi:24114
 #, no-wrap
 msgid "@code{name} (default: @code{\"@@\"})"
 msgstr "@code{name} (predeterminado: @code{\"@@\"})"
 
 #. type: table
-#: doc/guix.texi:21347
+#: doc/guix.texi:24120
 msgid "The name of the record.  @code{\"@@\"} refers to the origin of the zone.  Names are relative to the origin of the zone.  For example, in the @code{example.org} zone, @code{\"ns.example.org\"} actually refers to @code{ns.example.org.example.org}.  Names ending with a dot are absolute, which means that @code{\"ns.example.org.\"} refers to @code{ns.example.org}."
 msgstr "El nombre del registro.  @code{\"@@\"} hace referencia al origen de la zona. Los nombres son relativos al origen de la zona. Por ejemplo, en la zona @code{example.org}, @code{\"ns.example.org\"} en realidad hace referencia a @code{ns.example.org.example.org}. Los nombres que terminan en un punto se consideran absolutos, lo que significa que @code{\"ns.example.org.\"} hace referencia a @code{ns.example.org}."
 
 #. type: item
-#: doc/guix.texi:21348
+#: doc/guix.texi:24121
 #, no-wrap
 msgid "@code{ttl} (default: @code{\"\"})"
 msgstr "@code{ttl} (predeterminado: @code{\"\"})"
 
 #. type: table
-#: doc/guix.texi:21350
+#: doc/guix.texi:24123
 msgid "The Time-To-Live (TTL) of this record.  If not set, the default TTL is used."
 msgstr "El tiempo de vida (TTL) de este registro. Si no se proporciona, se usa el TTL predeterminado."
 
 #. type: item
-#: doc/guix.texi:21351
+#: doc/guix.texi:24124
 #, no-wrap
 msgid "@code{class} (default: @code{\"IN\"})"
 msgstr "@code{class} (predeterminada: @code{\"IN\"})"
 
 #. type: table
-#: doc/guix.texi:21354
+#: doc/guix.texi:24127
 msgid "The class of the record.  Knot currently supports only @code{\"IN\"} and partially @code{\"CH\"}."
 msgstr "La clase del registro. Actualmente Knot implementa únicamente @code{\"IN\"} y parcialmente @code{\"CH\"}."
 
 #. type: item
-#: doc/guix.texi:21355
+#: doc/guix.texi:24128
 #, no-wrap
 msgid "@code{type} (default: @code{\"A\"})"
 msgstr "@code{type} (predeterminado: @code{\"A\"})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:21359
+#: doc/guix.texi:24132
 msgid "The type of the record.  Common types include A (IPv4 address), AAAA (IPv6 address), NS (Name Server) and MX (Mail eXchange).  Many other types are defined."
 msgstr "El tipo del registro. Los tipos comunes incluyen A (dirección IPv4), AAAA (dirección IPv6), NS (servidor de nombres@footnote{Name Server en inglés.}) y MX (pasarela de correo@footnote{Mail eXchange en inglés}). Otros muchos tipos distintos se encuentran definidos."
 
 #. type: item
-#: doc/guix.texi:21360
+#: doc/guix.texi:24133
 #, no-wrap
 msgid "@code{data} (default: @code{\"\"})"
 msgstr "@code{data} (predeterminados: @code{\"\"})"
 
 #. type: table
-#: doc/guix.texi:21364
+#: doc/guix.texi:24137
 msgid "The data contained in the record.  For instance an IP address associated with an A record, or a domain name associated with an NS record.  Remember that domain names are relative to the origin unless they end with a dot."
 msgstr "Los datos que contiene el registro. Por ejemplo, una dirección IP asociada con un registro A, o un nombre de dominio asociado con un registro NS. Recuerde que los nombres de dominio son relativos al origen a menos que terminen con punto."
 
 #. type: deftp
-#: doc/guix.texi:21368
+#: doc/guix.texi:24141
 #, no-wrap
 msgid "{Data Type} zone-file"
 msgstr "{Tipo de datos} zone-file"
 
 #. type: deftp
-#: doc/guix.texi:21371
+#: doc/guix.texi:24144
 msgid "Data type representing the content of a zone file.  This type has the following parameters:"
-msgstr "Tipo de datos que representa el contenido de un fichero de zona. Este tipo tiene los siguientes parámetros:"
+msgstr "Tipo de datos que representa el contenido de un archivo de zona. Este tipo tiene los siguientes parámetros:"
 
 # FUZZY
 # TODO (MAAV): Revisar traducción.
 #. type: table
-#: doc/guix.texi:21380
+#: doc/guix.texi:24153
 msgid "The list of entries.  The SOA record is taken care of, so you don't need to put it in the list of entries.  This list should probably contain an entry for your primary authoritative DNS server.  Other than using a list of entries directly, you can use @code{define-zone-entries} to define a object containing the list of entries more easily, that you can later pass to the @code{entries} field of the @code{zone-file}."
-msgstr "La lista de entradas. El registro SOA se genera automáticamente, por lo que no necesita ponerlo en la lista de entradas. Esta lista probablemente debería contener una entrada apuntando a su servidor DNS de autoridad. En vez de usar una lista de entradas directamente, puede usar @code{define-zone-entries} para definir un objeto que contenga la lista de entradas más fácilmente, que posteriormente puede proporcionar en el campo @code{entries} del fichero @code{zone-file}."
+msgstr "La lista de entradas. El registro SOA se genera automáticamente, por lo que no necesita ponerlo en la lista de entradas. Esta lista probablemente debería contener una entrada apuntando a su servidor DNS de autoridad. En vez de usar una lista de entradas directamente, puede usar @code{define-zone-entries} para definir un objeto que contenga la lista de entradas más fácilmente, que posteriormente puede proporcionar en el campo @code{entries} del archivo @code{zone-file}."
 
 #. type: item
-#: doc/guix.texi:21381
+#: doc/guix.texi:24154
 #, no-wrap
 msgid "@code{origin} (default: @code{\"\"})"
 msgstr "@code{origin} (predeterminado: @code{\"\"})"
 
 #. type: table
-#: doc/guix.texi:21383
+#: doc/guix.texi:24156
 msgid "The name of your zone.  This parameter cannot be empty."
 msgstr "El nombre de su zona. Este parámetro no puede estar vacío."
 
 #. type: item
-#: doc/guix.texi:21384
+#: doc/guix.texi:24157
 #, no-wrap
 msgid "@code{ns} (default: @code{\"ns\"})"
 msgstr "@code{ns} (predeterminado: @code{\"ns\"})"
 
 # FUZZY FUZZY
 #. type: table
-#: doc/guix.texi:21389
+#: doc/guix.texi:24162
 msgid "The domain of your primary authoritative DNS server.  The name is relative to the origin, unless it ends with a dot.  It is mandatory that this primary DNS server corresponds to an NS record in the zone and that it is associated to an IP address in the list of entries."
 msgstr "El dominio de su servidor DNS primario de autoridad. El nombre es relativo al origen, a menos que termine en punto. Es obligatorio que este servidor DNS primario corresponda con un registro NS en la zona y que esté asociado a una dirección IP en la lista de entradas."
 
 #. type: item
-#: doc/guix.texi:21390
+#: doc/guix.texi:24163
 #, no-wrap
 msgid "@code{mail} (default: @code{\"hostmaster\"})"
 msgstr "@code{mail} (predeterminado: @code{\"hostmaster\"})"
 
 #. type: table
-#: doc/guix.texi:21393
+#: doc/guix.texi:24166
 msgid "An email address people can contact you at, as the owner of the zone.  This is translated as @code{<mail>@@<origin>}."
 msgstr "Dirección de correo a través de la cual la gente puede contactar con usted, como propietaria de la zona. Se traduce a @code{<mail>@@<origin>}."
 
 #. type: item
-#: doc/guix.texi:21394
+#: doc/guix.texi:24167
 #, no-wrap
 msgid "@code{serial} (default: @code{1})"
 msgstr "@code{serial} (predeterminado: @code{1})"
 
 # FUZZY FUZZY
 #. type: table
-#: doc/guix.texi:21398
+#: doc/guix.texi:24171
 msgid "The serial number of the zone.  As this is used to keep track of changes by both slaves and resolvers, it is mandatory that it @emph{never} decreases.  Always increment it when you make a change in your zone."
 msgstr "Número serie de la zona. Como se usa para tener constancia de los cambios tanto en servidores esclavos como en resolvedores, es obligatorio que @emph{nunca} decremente. Incremente su valor siempre que haga cambios en su zona."
 
 #. type: item
-#: doc/guix.texi:21399
+#: doc/guix.texi:24172
 #, no-wrap
 msgid "@code{refresh} (default: @code{(* 2 24 3600)})"
 msgstr "@code{refresh} (predeterminado: @code{(* 2 24 3600)})"
 
 #. type: table
-#: doc/guix.texi:21403
+#: doc/guix.texi:24176
 msgid "The frequency at which slaves will do a zone transfer.  This value is a number of seconds.  It can be computed by multiplications or with @code{(string->duration)}."
 msgstr "La frecuencia con la que los servidores esclavos realizarán una transferencia de zona. Este valor es un número de segundos. Puede calcularse con multiplicaciones o con @code{(string->duration)}."
 
 #. type: item
-#: doc/guix.texi:21404
+#: doc/guix.texi:24177
 #, no-wrap
 msgid "@code{retry} (default: @code{(* 15 60)})"
 msgstr "@code{retry} (predeterminado: @code{(* 15 60)})"
 
 #. type: table
-#: doc/guix.texi:21407
+#: doc/guix.texi:24180
 msgid "The period after which a slave will retry to contact its master when it fails to do so a first time."
 msgstr "El periodo tras el cual un servidor esclavo reintentará el contacto con su maestro cuando falle al intentarlo la primera vez."
 
 #. type: item
-#: doc/guix.texi:21408
+#: doc/guix.texi:24181
 #, no-wrap
 msgid "@code{expiry} (default: @code{(* 14 24 3600)})"
 msgstr "@code{expiry} (predeterminado: @code{(* 14 24 3600)})"
@@ -41757,616 +46645,616 @@ msgstr "@code{expiry} (predeterminado: @code{(* 14 24 3600)})"
 # FUZZY FUZZY
 # TODO (MAAV): Resolvedor?
 #. type: table
-#: doc/guix.texi:21412
+#: doc/guix.texi:24185
 msgid "Default TTL of records.  Existing records are considered correct for at most this amount of time.  After this period, resolvers will invalidate their cache and check again that it still exists."
 msgstr "Tiempo de vida (TTL) predeterminado de los registros. Los registros existentes se consideran correctos durante al menos este periodo de tiempo. Tras este periodo, los resolvedores invalidarán su caché y comprobarán de nuevo que todavía exista."
 
 #. type: item
-#: doc/guix.texi:21413
+#: doc/guix.texi:24186
 #, no-wrap
 msgid "@code{nx} (default: @code{3600})"
 msgstr "@code{nx} (predeterminado: @code{3600})"
 
 #. type: table
-#: doc/guix.texi:21416
+#: doc/guix.texi:24189
 msgid "Default TTL of inexistant records.  This delay is usually short because you want your new domains to reach everyone quickly."
 msgstr "Tiempo de vida (TTL) de los registros inexistentes. Este retraso es habitualmente corto ya que deseará que sus nuevos dominios estén disponibles para cualquiera rápidamente."
 
 #. type: deftp
-#: doc/guix.texi:21420
+#: doc/guix.texi:24193
 #, no-wrap
 msgid "{Data Type} knot-remote-configuration"
 msgstr "{Tipo de datos} knot-remote-configuration"
 
 #. type: deftp
-#: doc/guix.texi:21423
+#: doc/guix.texi:24196
 msgid "Data type representing a remote configuration.  This type has the following parameters:"
 msgstr "Tipo de datos que representa una configuración remota. Este tipo tiene los siguientes parámetros:"
 
 #. type: table
-#: doc/guix.texi:21428
+#: doc/guix.texi:24201
 msgid "An identifier for other configuration fields to refer to this remote. IDs must be unique and must not be empty."
 msgstr "Un identificador para que otros campos de configuración hagan referencia a esta configuración remota. Los identificadores deben ser únicos y no deben estar vacíos."
 
 #. type: table
-#: doc/guix.texi:21433
+#: doc/guix.texi:24206
 msgid "An ordered list of destination IP addresses.  Addresses are tried in sequence.  An optional port can be given with the @@ separator.  For instance: @code{(list \"1.2.3.4\" \"2.3.4.5@@53\")}.  Default port is 53."
 msgstr "Una lista ordenada de direcciones IP de destino. Las direcciones se prueban en secuencia. Opcionalmente se puede proporcionar el puerto con el separador @@. Por ejemplo: @code{(list \"1.2.3.4\" \"2.3.4.5@@53\")}. El puerto predeterminado es el 53."
 
 #. type: item
-#: doc/guix.texi:21434
+#: doc/guix.texi:24207
 #, no-wrap
 msgid "@code{via} (default: @code{'()})"
 msgstr "@code{via} (predeterminada: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:21438
+#: doc/guix.texi:24211
 msgid "An ordered list of source IP addresses.  An empty list will have Knot choose an appropriate source IP.  An optional port can be given with the @@ separator.  The default is to choose at random."
 msgstr "Una lista ordenada de direcciones IP de fuente. Una lista vacía hará que Knot seleccione una fuente IP apropiada. Opcionalmente se puede proporcionar el puerto con el separador @@. De manera predeterminada se selecciona al azar."
 
 #. type: item
-#: doc/guix.texi:21439
+#: doc/guix.texi:24212
 #, no-wrap
 msgid "@code{key} (default: @code{#f})"
 msgstr "@code{key} (predeterminada: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:21442
+#: doc/guix.texi:24215
 msgid "A reference to a key, that is a string containing the identifier of a key defined in a @code{knot-key-configuration} field."
 msgstr "Referencia a una clave, esto es una cadena que contiene el identificador de una clave definida en el campo @code{knot-key-configuration}."
 
 #. type: deftp
-#: doc/guix.texi:21446
+#: doc/guix.texi:24219
 #, no-wrap
 msgid "{Data Type} knot-keystore-configuration"
 msgstr "{Tipo de datos} knot-keystore-configuration"
 
 # FUZZY
 #. type: deftp
-#: doc/guix.texi:21449
+#: doc/guix.texi:24222
 msgid "Data type representing a keystore to hold dnssec keys.  This type has the following parameters:"
 msgstr "Tipo de datos que representa un almacén de claves para alojar claves de dnssec. Este tipo tiene los siguientes parámetros:"
 
 #. type: table
-#: doc/guix.texi:21453
+#: doc/guix.texi:24226
 msgid "The id of the keystore.  It must not be empty."
 msgstr "El identificador del almacén de claves. No debe estar vacío."
 
 #. type: item
-#: doc/guix.texi:21454
+#: doc/guix.texi:24227
 #, no-wrap
 msgid "@code{backend} (default: @code{'pem})"
 msgstr "@code{backend} (predeterminado: @code{'pem})"
 
 #. type: table
-#: doc/guix.texi:21456
+#: doc/guix.texi:24229
 msgid "The backend to store the keys in.  Can be @code{'pem} or @code{'pkcs11}."
 msgstr "El motor en el que se almacenan las claves. Puede ser @code{'pem} o @code{'pkcs11}."
 
 #. type: item
-#: doc/guix.texi:21457
+#: doc/guix.texi:24230
 #, no-wrap
 msgid "@code{config} (default: @code{\"/var/lib/knot/keys/keys\"})"
 msgstr "@code{config} (predeterminada: @code{\"/var/lib/knot/keys/keys\"})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:21461
+#: doc/guix.texi:24234
 msgid "The configuration string of the backend.  An example for the PKCS#11 is: @code{\"pkcs11:token=knot;pin-value=1234 /gnu/store/.../lib/pkcs11/libsofthsm2.so\"}.  For the pem backend, the string represents a path in the file system."
-msgstr "La cadena de configuración del motor.  Un ejemplo para PKCS#11 es: @code{\"pkcs11:token=knot;pin-value=1234 /gnu/store/.../lib/pkcs11/libsofthsm2.so\"}. La cadena representa una ruta en el sistema de ficheros para el motor pem."
+msgstr "La cadena de configuración del motor.  Un ejemplo para PKCS#11 es: @code{\"pkcs11:token=knot;pin-value=1234 /gnu/store/.../lib/pkcs11/libsofthsm2.so\"}. La cadena representa una ruta en el sistema de archivos para el motor pem."
 
 #. type: deftp
-#: doc/guix.texi:21465
+#: doc/guix.texi:24238
 #, no-wrap
 msgid "{Data Type} knot-policy-configuration"
 msgstr "{Tipo de datos} knot-policy-configuration"
 
 # FUZZY
 #. type: deftp
-#: doc/guix.texi:21469
+#: doc/guix.texi:24242
 msgid "Data type representing a dnssec policy.  Knot DNS is able to automatically sign your zones.  It can either generate and manage your keys automatically or use keys that you generate."
 msgstr "Tipo de datos que representa una política de dnssec. El DNS Knot es capaz de firmar automáticamente sus zonas. Puede generar y gestionar sus claves de manera automática o usar las claves que usted genere."
 
 #. type: deftp
-#: doc/guix.texi:21476
+#: doc/guix.texi:24249
 msgid "Dnssec is usually implemented using two keys: a Key Signing Key (KSK) that is used to sign the second, and a Zone Signing Key (ZSK) that is used to sign the zone.  In order to be trusted, the KSK needs to be present in the parent zone (usually a top-level domain).  If your registrar supports dnssec, you will have to send them your KSK's hash so they can add a DS record in their zone.  This is not automated and need to be done each time you change your KSK."
 msgstr "Dnssec se implementa habitualmente usando dos claves: una clave para firma de claves (KSK) que se usa para firmar la segunda, y una clave para firma de zona (ZSK) que se usa para firmar la zona. Para establecer la confianza, la KSK necesita estar presente en la zona padre (habitualmente un dominio de nivel superior). Si su entidad de registro permite dnssec, debe mandarle el hash de su KSK de manera que puedan añadir un registro DS en su zona. No es automático y debe realizarse cada vez que cambie su KSK."
 
 #. type: deftp
-#: doc/guix.texi:21482
+#: doc/guix.texi:24255
 msgid "The policy also defines the lifetime of keys.  Usually, ZSK can be changed easily and use weaker cryptographic functions (they use lower parameters) in order to sign records quickly, so they are changed often.  The KSK however requires manual interaction with the registrar, so they are changed less often and use stronger parameters because they sign only one record."
 msgstr "La política también define el tiempo de vida de las claves. Habitualmente, la ZSK puede cambiarse fácilmente y usa funciones criptográficas más débiles (usa parámetros de menor magnitud) para firmar los registros rápidamente, ya que cambian habitualmente. No obstante, la KSK requiere interacción manual con la entidad de registro, por lo que se cambia menos habitualmente y usa parámetros más fuertes debido a que únicamente firma un registro."
 
 #. type: deftp
-#: doc/guix.texi:21484
+#: doc/guix.texi:24257
 msgid "This type has the following parameters:"
 msgstr "Este tipo tiene los siguientes parámetros:"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:21488
+#: doc/guix.texi:24261
 msgid "The id of the policy.  It must not be empty."
 msgstr "El identificador de la política. No debe estar vacío."
 
 #. type: item
-#: doc/guix.texi:21489
+#: doc/guix.texi:24262
 #, no-wrap
 msgid "@code{keystore} (default: @code{\"default\"})"
 msgstr "@code{keystore} (predeterminado: @code{\"default\"})"
 
 #. type: table
-#: doc/guix.texi:21494
+#: doc/guix.texi:24267
 msgid "A reference to a keystore, that is a string containing the identifier of a keystore defined in a @code{knot-keystore-configuration} field.  The @code{\"default\"} identifier means the default keystore (a kasp database that was setup by this service)."
 msgstr "Referencia a un almacén de claves, es decir una cadena que contiene el identificador de un almacén de claves definido en un campo de @code{knot-keystore-configuration}. El identificador predeterminado @code{\"default\"} implica el uso del almacén de claves predeterminado (una base de datos kasp que se configura para este servicio)."
 
 #. type: item
-#: doc/guix.texi:21495
+#: doc/guix.texi:24268
 #, no-wrap
 msgid "@code{manual?} (default: @code{#f})"
 msgstr "@code{manual?} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:21497
+#: doc/guix.texi:24270
 msgid "Whether the key management is manual or automatic."
 msgstr "Si la gestión de claves es manual o automática."
 
 #. type: item
-#: doc/guix.texi:21498
+#: doc/guix.texi:24271
 #, no-wrap
 msgid "@code{single-type-signing?} (default: @code{#f})"
 msgstr "@code{single-type-signing?} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:21500
+#: doc/guix.texi:24273
 msgid "When @code{#t}, use the Single-Type Signing Scheme."
 msgstr "Cuando sea @code{#t}, usa el esquema de firma de tipo único (Single-Type Signing Scheme)."
 
 #. type: item
-#: doc/guix.texi:21501
+#: doc/guix.texi:24274
 #, no-wrap
 msgid "@code{algorithm} (default: @code{\"ecdsap256sha256\"})"
 msgstr "@code{algorithm} (predeterminado: @code{\"ecdsap256sha256\"})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:21503
+#: doc/guix.texi:24276
 msgid "An algorithm of signing keys and issued signatures."
 msgstr "Algoritmo para las claves de firma y las firmas emitidas."
 
 #. type: item
-#: doc/guix.texi:21504
+#: doc/guix.texi:24277
 #, no-wrap
 msgid "@code{ksk-size} (default: @code{256})"
 msgstr "@code{ksk-size} (predeterminado: @code{256})"
 
 #. type: table
-#: doc/guix.texi:21507
+#: doc/guix.texi:24280
 msgid "The length of the KSK.  Note that this value is correct for the default algorithm, but would be unsecure for other algorithms."
 msgstr "La longitud de la KSK. Fíjese que este valor es correcto para el algoritmo predeterminado, pero sería inseguro para otros algoritmos."
 
 #. type: item
-#: doc/guix.texi:21508
+#: doc/guix.texi:24281
 #, no-wrap
 msgid "@code{zsk-size} (default: @code{256})"
 msgstr "@code{zsk-size} (predeterminado: @code{256})"
 
 #. type: table
-#: doc/guix.texi:21511
+#: doc/guix.texi:24284
 msgid "The length of the ZSK.  Note that this value is correct for the default algorithm, but would be unsecure for other algorithms."
 msgstr "La longitud de la ZSK. Fíjese que este valor es correcto para el algoritmo predeterminado, pero sería inseguro para otros algoritmos."
 
 #. type: item
-#: doc/guix.texi:21512
+#: doc/guix.texi:24285
 #, no-wrap
 msgid "@code{dnskey-ttl} (default: @code{'default})"
 msgstr "@code{dnskey-ttl} (predeterminado: @code{'default})"
 
 #. type: table
-#: doc/guix.texi:21515
+#: doc/guix.texi:24288
 msgid "The TTL value for DNSKEY records added into zone apex.  The special @code{'default} value means same as the zone SOA TTL."
 msgstr "El valor del tiempo de vida (TTL) de los registros DNSKEY añadidos al ``apex'' de la zona. El valor especial @code{'default} significa el mismo valor que el TTL del SOA de la zona."
 
 #. type: item
-#: doc/guix.texi:21516
+#: doc/guix.texi:24289
 #, no-wrap
 msgid "@code{zsk-lifetime} (default: @code{(* 30 24 3600)})"
 msgstr "@code{zsk-lifetime} (predeterminado: @code{(* 30 24 3600)})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:21518
+#: doc/guix.texi:24291
 msgid "The period between ZSK publication and the next rollover initiation."
 msgstr "El periodo entre la publicación de la ZSK y el inicio del siguiente ciclo de renovación."
 
 #. type: item
-#: doc/guix.texi:21519
+#: doc/guix.texi:24292
 #, no-wrap
 msgid "@code{propagation-delay} (default: @code{(* 24 3600)})"
 msgstr "@code{propagation-delay} (predeterminado: @code{(* 24 3600)})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:21522
+#: doc/guix.texi:24295
 msgid "An extra delay added for each key rollover step.  This value should be high enough to cover propagation of data from the master server to all slaves."
 msgstr "Retraso adicional añadido por cada paso del ciclo de renovación de clave. Este valor debe ser suficientemente alto para cubrir la propagación de datos del servidor maestro a todos los esclavos."
 
 #. type: item
-#: doc/guix.texi:21523
+#: doc/guix.texi:24296
 #, no-wrap
 msgid "@code{rrsig-lifetime} (default: @code{(* 14 24 3600)})"
 msgstr "@code{rrsig-lifetime} (predeterminado: @code{(* 14 24 3600)})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:21525
+#: doc/guix.texi:24298
 msgid "A validity period of newly issued signatures."
 msgstr "Periodo de validez para las nuevas firmas emitidas."
 
 #. type: item
-#: doc/guix.texi:21526
+#: doc/guix.texi:24299
 #, no-wrap
 msgid "@code{rrsig-refresh} (default: @code{(* 7 24 3600)})"
 msgstr "@code{rrsig-refresh} (predeterminado: @code{(* 7 24 3600)})"
 
 #. type: table
-#: doc/guix.texi:21528
+#: doc/guix.texi:24301
 msgid "A period how long before a signature expiration the signature will be refreshed."
 msgstr "Periodo de antelación con el que se realiza el refresco de la firma antes de una expiración de la misma."
 
 #. type: item
-#: doc/guix.texi:21529
+#: doc/guix.texi:24302
 #, no-wrap
 msgid "@code{nsec3?} (default: @code{#f})"
 msgstr "@code{nsec3?} (predeterminado: @code{#f})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:21531
+#: doc/guix.texi:24304
 msgid "When @code{#t}, NSEC3 will be used instead of NSEC."
 msgstr "Si es @code{#t}, se usa NSEC3 en vez de NSEC."
 
 #. type: item
-#: doc/guix.texi:21532
+#: doc/guix.texi:24305
 #, no-wrap
 msgid "@code{nsec3-iterations} (default: @code{5})"
 msgstr "@code{nsec3-iterations} (predeterminado: @code{5})"
 
 # FUZZY FUZZY
 #. type: table
-#: doc/guix.texi:21534
+#: doc/guix.texi:24307
 msgid "The number of additional times the hashing is performed."
 msgstr "Número de ejecuciones adicionales de la operación de hash."
 
 #. type: item
-#: doc/guix.texi:21535
+#: doc/guix.texi:24308
 #, no-wrap
 msgid "@code{nsec3-salt-length} (default: @code{8})"
 msgstr "@code{nsec3-salt-length} (predeterminado: @code{8})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:21538
+#: doc/guix.texi:24311
 msgid "The length of a salt field in octets, which is appended to the original owner name before hashing."
 msgstr "La longitud del campo ``salt'' en octetos, que se añade al nombre de la propietaria original antes de ejecutar la operación de hash."
 
 #. type: item
-#: doc/guix.texi:21539
+#: doc/guix.texi:24312
 #, no-wrap
 msgid "@code{nsec3-salt-lifetime} (default: @code{(* 30 24 3600)})"
 msgstr "@code{nsec3-salt-lifetime} (predeterminado: @code{(* 30 24 3600)})"
 
 # FUZZY FUZZY FUZZY
 #. type: table
-#: doc/guix.texi:21541
+#: doc/guix.texi:24314
 msgid "The validity period of newly issued salt field."
 msgstr "El periodo de validez de los campos ``salt'' que se generen."
 
 #. type: deftp
-#: doc/guix.texi:21545
+#: doc/guix.texi:24318
 #, no-wrap
 msgid "{Data Type} knot-zone-configuration"
 msgstr "{Tipo de datos} knot-zone-configuration"
 
 #. type: deftp
-#: doc/guix.texi:21548
+#: doc/guix.texi:24321
 msgid "Data type representing a zone served by Knot.  This type has the following parameters:"
 msgstr "Tipo de datos que representa una zona ofrecida por Knot. Este tipo tiene los siguientes parámetros:"
 
 #. type: item
-#: doc/guix.texi:21550
+#: doc/guix.texi:24323
 #, no-wrap
 msgid "@code{domain} (default: @code{\"\"})"
 msgstr "@code{domain} (predeterminado: @code{\"\"})"
 
 # FUZZY FUZZY
 #. type: table
-#: doc/guix.texi:21552
+#: doc/guix.texi:24325
 msgid "The domain served by this configuration.  It must not be empty."
 msgstr "El dominio ofrecido con esta configuración. No debe estar vacío."
 
 #. type: item
-#: doc/guix.texi:21553
+#: doc/guix.texi:24326
 #, no-wrap
 msgid "@code{file} (default: @code{\"\"})"
 msgstr "@code{file} (predeterminado: @code{\"\"})"
 
 #. type: table
-#: doc/guix.texi:21556
+#: doc/guix.texi:24329
 msgid "The file where this zone is saved.  This parameter is ignored by master zones.  Empty means default location that depends on the domain name."
-msgstr "El fichero donde se almacena esta zona. Este parámetro se ignora para zonas maestras. Vacío significa la ruta predeterminada que depende del nombre del dominio."
+msgstr "El archivo donde se almacena esta zona. Este parámetro se ignora para zonas maestras. Vacío significa la ruta predeterminada que depende del nombre del dominio."
 
 #. type: item
-#: doc/guix.texi:21557
+#: doc/guix.texi:24330
 #, no-wrap
 msgid "@code{zone} (default: @code{(zone-file)})"
 msgstr "@code{zone} (predeterminado: @code{(zone-file)})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:21560
+#: doc/guix.texi:24333
 msgid "The content of the zone file.  This parameter is ignored by slave zones.  It must contain a zone-file record."
-msgstr "El contenido del fichero de zona. Este parámetro se ignora para zonas esclavas. Debe contener un registro de fichero de zona."
+msgstr "El contenido del archivo de zona. Este parámetro se ignora para zonas esclavas. Debe contener un registro de archivo de zona."
 
 #. type: item
-#: doc/guix.texi:21561
+#: doc/guix.texi:24334
 #, no-wrap
 msgid "@code{master} (default: @code{'()})"
 msgstr "@code{master} (predeterminado: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:21564
+#: doc/guix.texi:24337
 msgid "A list of master remotes.  When empty, this zone is a master.  When set, this zone is a slave.  This is a list of remotes identifiers."
 msgstr "Lista de maestros remotos. Cuando está vacía, esta zona es maestra. Cuando tiene contenido, esta zona es esclava. Es una lista de identificadores remotos."
 
 #. type: item
-#: doc/guix.texi:21565
+#: doc/guix.texi:24338
 #, no-wrap
 msgid "@code{ddns-master} (default: @code{#f})"
 msgstr "@code{ddns-master} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:21568
+#: doc/guix.texi:24341
 msgid "The main master.  When empty, it defaults to the first master in the list of masters."
 msgstr "Maestro principal. Cuando está vacío, apunta de manera predeterminada al primer maestro en la lista de maestros."
 
 #. type: item
-#: doc/guix.texi:21569
+#: doc/guix.texi:24342
 #, no-wrap
 msgid "@code{notify} (default: @code{'()})"
 msgstr "@code{notify} (predeterminado: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:21571
+#: doc/guix.texi:24344
 msgid "A list of slave remote identifiers."
 msgstr "Una lista de identificadores remotos de esclavos."
 
 #. type: item
-#: doc/guix.texi:21572
+#: doc/guix.texi:24345
 #, no-wrap
 msgid "@code{acl} (default: @code{'()})"
 msgstr "@code{acl} (predeterminado: @code{'()})"
 
 # FUZZY FUZZY
 #. type: table
-#: doc/guix.texi:21574
+#: doc/guix.texi:24347
 msgid "A list of acl identifiers."
 msgstr "Lista de identificadores acl."
 
 #. type: item
-#: doc/guix.texi:21575
+#: doc/guix.texi:24348
 #, no-wrap
 msgid "@code{semantic-checks?} (default: @code{#f})"
 msgstr "@code{semantic-checks?} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:21577
+#: doc/guix.texi:24350
 msgid "When set, this adds more semantic checks to the zone."
 msgstr "Cuando es verdadero, añade más comprobaciones semánticas a la zona."
 
 #. type: item
-#: doc/guix.texi:21578
+#: doc/guix.texi:24351
 #, no-wrap
 msgid "@code{disable-any?} (default: @code{#f})"
 msgstr "@code{disable-any?} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:21580
+#: doc/guix.texi:24353
 msgid "When set, this forbids queries of the ANY type."
 msgstr "Cuando es verdadero, no permite consultas de tipo ANY."
 
 #. type: item
-#: doc/guix.texi:21581
+#: doc/guix.texi:24354
 #, no-wrap
 msgid "@code{zonefile-sync} (default: @code{0})"
 msgstr "@code{zonefile-sync} (predeterminado: @code{0})"
 
 #. type: table
-#: doc/guix.texi:21584
+#: doc/guix.texi:24357
 msgid "The delay between a modification in memory and on disk.  0 means immediate synchronization."
 msgstr "El retraso entre una modificación en memoria y en disco. 0 significa sincronización inmediata."
 
 #. type: item
-#: doc/guix.texi:21585
+#: doc/guix.texi:24358
 #, no-wrap
 msgid "@code{zonefile-load} (default: @code{#f})"
 msgstr "@code{zonefile-load} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:21588
+#: doc/guix.texi:24361
 msgid "The way the zone file contents are applied during zone load.  Possible values are:"
-msgstr "La forma en la que los contenidos del fichero de zona se aplican durante la carga de la zona. Los valores posibles son:"
+msgstr "La forma en la que los contenidos del archivo de zona se aplican durante la carga de la zona. Los valores posibles son:"
 
 #. type: item
-#: doc/guix.texi:21590
+#: doc/guix.texi:24363
 #, no-wrap
 msgid "@code{#f} for using the default value from Knot,"
 msgstr "@code{#f} para obtener el valor predeterminado de Knot,"
 
 #. type: item
-#: doc/guix.texi:21591
+#: doc/guix.texi:24364
 #, no-wrap
 msgid "@code{'none} for not using the zone file at all,"
-msgstr "@code{'none} para no usar el fichero de zona en absoluto,"
+msgstr "@code{'none} para no usar el archivo de zona en absoluto,"
 
 #. type: item
-#: doc/guix.texi:21592
+#: doc/guix.texi:24365
 #, no-wrap
 msgid "@code{'difference} for computing the difference between already available"
 msgstr "@code{'difference} para calcular la diferencia entre los contenidos disponibles"
 
 #. type: itemize
-#: doc/guix.texi:21594
+#: doc/guix.texi:24367
 msgid "contents and zone contents and applying it to the current zone contents,"
 msgstr "actualmente y los contenidos de la zona y los aplica a los contenidos actuales de la zona actual,"
 
 #. type: item
-#: doc/guix.texi:21594
+#: doc/guix.texi:24367
 #, no-wrap
 msgid "@code{'difference-no-serial} for the same as @code{'difference}, but"
 msgstr "@code{'difference-no-serial} es igual que @code{'difference}, pero"
 
 #. type: itemize
-#: doc/guix.texi:21597
+#: doc/guix.texi:24370
 msgid "ignoring the SOA serial in the zone file, while the server takes care of it automatically."
-msgstr "ignora el código serie SOA en el fichero de zona, mientras que el servidor se hace cargo de él de manera automática."
+msgstr "ignora el código serie SOA en el archivo de zona, mientras que el servidor se hace cargo de él de manera automática."
 
 #. type: item
-#: doc/guix.texi:21597
+#: doc/guix.texi:24370
 #, no-wrap
 msgid "@code{'whole} for loading zone contents from the zone file."
-msgstr "@code{'whole} para cargar los contenidos de la zona del fichero de zona."
+msgstr "@code{'whole} para cargar los contenidos de la zona del archivo de zona."
 
 #. type: item
-#: doc/guix.texi:21600
+#: doc/guix.texi:24373
 #, no-wrap
 msgid "@code{journal-content} (default: @code{#f})"
 msgstr "@code{journal-content} (predeterminado: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:21605
+#: doc/guix.texi:24378
 msgid "The way the journal is used to store zone and its changes.  Possible values are @code{'none} to not use it at all, @code{'changes} to store changes and @code{'all} to store contents.  @code{#f} does not set this option, so the default value from Knot is used."
 msgstr "La forma en la que se usa el diario para almacenar la zona y sus cambios. Los posibles valores son @code{'none} para no usarlo en absoluto, @code{'changes} para almacenar los cambios y @code{'all} para almacenar los contenidos. @code{#f} proporciona un valor a esta opción, por lo que se usa el valor predeterminado de Knot."
 
 #. type: item
-#: doc/guix.texi:21606
+#: doc/guix.texi:24379
 #, no-wrap
 msgid "@code{max-journal-usage} (default: @code{#f})"
 msgstr "@code{max-journal-usage} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:21609
+#: doc/guix.texi:24382
 msgid "The maximum size for the journal on disk.  @code{#f} does not set this option, so the default value from Knot is used."
 msgstr "Tamaño máximo del diario en disco. @code{#f} no proporciona un valor a esta opción, por lo que se usa el valor predeterminado de Knot."
 
 #. type: item
-#: doc/guix.texi:21610
+#: doc/guix.texi:24383
 #, no-wrap
 msgid "@code{max-journal-depth} (default: @code{#f})"
 msgstr "@code{max-journal-depth} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:21613
+#: doc/guix.texi:24386
 msgid "The maximum size of the history.  @code{#f} does not set this option, so the default value from Knot is used."
 msgstr "Tamaño máximo de la historia. @code{#f} proporciona un valor a esta opción, por lo que se usa el valor predeterminado de Knot."
 
 #. type: item
-#: doc/guix.texi:21614
+#: doc/guix.texi:24387
 #, no-wrap
 msgid "@code{max-zone-size} (default: @code{#f})"
 msgstr "@code{max-zone-size} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:21618
+#: doc/guix.texi:24391
 msgid "The maximum size of the zone file.  This limit is enforced for incoming transfer and updates.  @code{#f} does not set this option, so the default value from Knot is used."
-msgstr "Tamaño máximo del fichero de zona. Este límite se usa para transferencias entrantes y actualizaciones. @code{#f} no proporciona un valor a esta opción, por lo que se usa el valor predeterminado de Knot."
+msgstr "Tamaño máximo del archivo de zona. Este límite se usa para transferencias entrantes y actualizaciones. @code{#f} no proporciona un valor a esta opción, por lo que se usa el valor predeterminado de Knot."
 
 #. type: item
-#: doc/guix.texi:21619
+#: doc/guix.texi:24392
 #, no-wrap
 msgid "@code{dnssec-policy} (default: @code{#f})"
 msgstr "@code{dnssec-policy} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:21623
+#: doc/guix.texi:24396
 msgid "A reference to a @code{knot-policy-configuration} record, or the special name @code{\"default\"}.  If the value is @code{#f}, there is no dnssec signing on this zone."
 msgstr "Una referencia a un registro de @code{knot-policy-configuration}, o el nombre especial @code{\"default\"}. Si el valor es @code{#f}, no se realiza firma dnssec en esta zona."
 
 #. type: item
-#: doc/guix.texi:21624
+#: doc/guix.texi:24397
 #, no-wrap
 msgid "@code{serial-policy} (default: @code{'increment})"
 msgstr "@code{serial-policy} (predeterminado: @code{'increment})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:21626
+#: doc/guix.texi:24399
 msgid "A policy between @code{'increment} and @code{'unixtime}."
 msgstr "Una política entre @code{'increment} y @code{'unixtime}."
 
 #. type: deftp
-#: doc/guix.texi:21630
+#: doc/guix.texi:24403
 #, no-wrap
 msgid "{Data Type} knot-configuration"
 msgstr "{Tipo de datos} knot-configuration"
 
 #. type: deftp
-#: doc/guix.texi:21633
+#: doc/guix.texi:24406
 msgid "Data type representing the Knot configuration.  This type has the following parameters:"
 msgstr "Tipo de datos que representa la configuración Knot. Este tipo tiene los siguientes parámetros:"
 
 #. type: item
-#: doc/guix.texi:21635
+#: doc/guix.texi:24408
 #, no-wrap
 msgid "@code{knot} (default: @code{knot})"
 msgstr "@code{knot} (predeterminado: @code{knot})"
 
 #. type: table
-#: doc/guix.texi:21637
+#: doc/guix.texi:24410
 msgid "The Knot package."
 msgstr "El paquete Knot."
 
 #. type: item
-#: doc/guix.texi:21638
+#: doc/guix.texi:24411
 #, no-wrap
 msgid "@code{run-directory} (default: @code{\"/var/run/knot\"})"
 msgstr "@code{run-directory} (predeterminado: @code{\"/var/run/knot\"})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:21640
+#: doc/guix.texi:24413
 msgid "The run directory.  This directory will be used for pid file and sockets."
-msgstr "El directorio de ejecución. Este directorio se usará para los ficheros de PID y de sockets."
+msgstr "El directorio de ejecución. Este directorio se usará para los archivos de PID y de sockets."
 
 #. type: item
-#: doc/guix.texi:21641
+#: doc/guix.texi:24414
 #, no-wrap
 msgid "@code{includes} (default: @code{'()})"
 msgstr "@code{includes} (predeterminada: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:21644
+#: doc/guix.texi:24417
 msgid "A list of strings or file-like objects denoting other files that must be included at the top of the configuration file."
-msgstr "Una lista de cadenas u objetos ``tipo-fichero'' que denota otros ficheros que deben incluirse al inicio del fichero de configuración."
+msgstr "Una lista de cadenas u objetos ``tipo-archivo'' que denota otros archivos que deben incluirse al inicio del archivo de configuración."
 
 #. type: cindex
-#: doc/guix.texi:21645
+#: doc/guix.texi:24418
 #, no-wrap
 msgid "secrets, Knot service"
 msgstr "secretos, servicio Knot"
 
 #. type: table
-#: doc/guix.texi:21651
+#: doc/guix.texi:24424
 msgid "This can be used to manage secrets out-of-band.  For example, secret keys may be stored in an out-of-band file not managed by Guix, and thus not visible in @file{/gnu/store}---e.g., you could store secret key configuration in @file{/etc/knot/secrets.conf} and add this file to the @code{includes} list."
-msgstr "Puede usarse para gestionar secretos en un canal separado. Por ejemplo, las claves secretas pueden almacenarse en un fichero fuera de banda no gestionado por Guix, y por tanto no visible en @file{/gnu/store}---por ejemplo, puede almacenar su configuración de clave secreta en @file{/etc/knot/secrets.conf} e incluir este fichero en la lista @code{includes}."
+msgstr "Puede usarse para gestionar secretos en un canal separado. Por ejemplo, las claves secretas pueden almacenarse en un archivo fuera de banda no gestionado por Guix, y por tanto no visible en @file{/gnu/store}---por ejemplo, puede almacenar su configuración de clave secreta en @file{/etc/knot/secrets.conf} e incluir este archivo en la lista @code{includes}."
 
 # FUZZY FUZZY
 #. type: table
-#: doc/guix.texi:21656
+#: doc/guix.texi:24429
 msgid "One can generate a secret tsig key (for nsupdate and zone transfers with the keymgr command from the knot package.  Note that the package is not automatically installed by the service.  The following example shows how to generate a new tsig key:"
 msgstr "Se puede generar una clave secreta tsig (para nsupdate y transferencias de zona) con la orden keymgr del paquete knot. Tenga en cuenta que el paquete no se instala automáticamente con el servicio. El ejemplo siguiente muestra como generar una clave tsig nueva:"
 
 #. type: example
-#: doc/guix.texi:21660
+#: doc/guix.texi:24433
 #, no-wrap
 msgid ""
 "keymgr -t mysecret > /etc/knot/secrets.conf\n"
@@ -42376,106 +47264,106 @@ msgstr ""
 "chmod 600 /etc/knot/secrets.conf\n"
 
 #. type: table
-#: doc/guix.texi:21666
+#: doc/guix.texi:24439
 msgid "Also note that the generated key will be named @var{mysecret}, so it is the name that needs to be used in the @var{key} field of the @code{knot-acl-configuration} record and in other places that need to refer to that key."
 msgstr "Tenga también en cuenta que la clave generada se llamará @var{misecreto}, de modo que ese nombre es el que debe usarse en el campo @var{key} del registro @code{knot-acl-configuration} y en otros lugares que hagan referencia a esa clave."
 
 #. type: table
-#: doc/guix.texi:21668
+#: doc/guix.texi:24441
 msgid "It can also be used to add configuration not supported by this interface."
 msgstr "También puede usarse para añadir configuración no implementada por esta interfaz."
 
 #. type: item
-#: doc/guix.texi:21669
+#: doc/guix.texi:24442
 #, no-wrap
 msgid "@code{listen-v4} (default: @code{\"0.0.0.0\"})"
 msgstr "@code{listen-v4} (predeterminada: @code{\"0.0.0.0\"})"
 
 #. type: table
-#: doc/guix.texi:21671 doc/guix.texi:21674
+#: doc/guix.texi:24444 doc/guix.texi:24447
 msgid "An ip address on which to listen."
 msgstr "La dirección IP en la que escuchar."
 
 #. type: item
-#: doc/guix.texi:21672
+#: doc/guix.texi:24445
 #, no-wrap
 msgid "@code{listen-v6} (default: @code{\"::\"})"
 msgstr "@code{listen-v6} (predeterminada: @code{\"::\"})"
 
 #. type: item
-#: doc/guix.texi:21675
+#: doc/guix.texi:24448
 #, no-wrap
 msgid "@code{listen-port} (default: @code{53})"
 msgstr "@code{listen-port} (predeterminado: @code{53})"
 
 #. type: table
-#: doc/guix.texi:21677
+#: doc/guix.texi:24450
 msgid "A port on which to listen."
 msgstr "El puerto en el que escuchar."
 
 #. type: item
-#: doc/guix.texi:21678
+#: doc/guix.texi:24451
 #, no-wrap
 msgid "@code{keys} (default: @code{'()})"
 msgstr "@code{keys} (predeterminada: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:21680
+#: doc/guix.texi:24453
 msgid "The list of knot-key-configuration used by this configuration."
 msgstr "La lista de configuraciones knot-key-configuration usadas por esta configuración."
 
 #. type: item
-#: doc/guix.texi:21681
+#: doc/guix.texi:24454
 #, no-wrap
 msgid "@code{acls} (default: @code{'()})"
 msgstr "@code{acls} (predeterminado: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:21683
+#: doc/guix.texi:24456
 msgid "The list of knot-acl-configuration used by this configuration."
 msgstr "La lista de configuraciones knot-acl-configuration usadas por esta configuración."
 
 #. type: item
-#: doc/guix.texi:21684
+#: doc/guix.texi:24457
 #, no-wrap
 msgid "@code{remotes} (default: @code{'()})"
 msgstr "@code{remotes} (predeterminada: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:21686
+#: doc/guix.texi:24459
 msgid "The list of knot-remote-configuration used by this configuration."
 msgstr "La lista de configuraciones knot-remote-configuration usadas por esta configuración."
 
 #. type: item
-#: doc/guix.texi:21687
+#: doc/guix.texi:24460
 #, no-wrap
 msgid "@code{zones} (default: @code{'()})"
 msgstr "@code{zones} (predeterminada: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:21689
+#: doc/guix.texi:24462
 msgid "The list of knot-zone-configuration used by this configuration."
 msgstr "La lista de configuraciones knot-zone-configuration usadas por esta configuración."
 
 #. type: subsubheading
-#: doc/guix.texi:21693
+#: doc/guix.texi:24466
 #, no-wrap
 msgid "Knot Resolver Service"
 msgstr "Servicio de resolución de Knot"
 
 #. type: deffn
-#: doc/guix.texi:21695
+#: doc/guix.texi:24468
 #, no-wrap
 msgid "{Scheme Variable} knot-resolver-service-type"
 msgstr "{Variable Scheme} knot-resolver-service-type"
 
 #. type: deffn
-#: doc/guix.texi:21698
-msgid "This this the type of the knot resolver service, whose value should be an @code{knot-resolver-configuration} object as in this example:"
+#: doc/guix.texi:24471
+msgid "This is the type of the knot resolver service, whose value should be an @code{knot-resolver-configuration} object as in this example:"
 msgstr "El tipo del servicio de resolución de knot, cuyo valor debe ser un objeto @code{knot-resolver-configuration} como en este ejemplo:"
 
 #. type: lisp
-#: doc/guix.texi:21708
+#: doc/guix.texi:24481
 #, no-wrap
 msgid ""
 "(service knot-resolver-service-type\n"
@@ -42497,74 +47385,74 @@ msgstr ""
 "\"))))\n"
 
 #. type: deffn
-#: doc/guix.texi:21711
+#: doc/guix.texi:24484
 msgid "For more information, refer its @url{https://knot-resolver.readthedocs.org/en/stable/daemon.html#configuration, manual}."
 msgstr "Para más información, véase su @url{https://knot-resolver.readthedocs.org/en/stable/daemon.html#configuration, manual}."
 
 #. type: deftp
-#: doc/guix.texi:21713
+#: doc/guix.texi:24486
 #, no-wrap
 msgid "{Data Type} knot-resolver-configuration"
 msgstr "{Tipo de datos} knot-resolver-configuration"
 
 #. type: deftp
-#: doc/guix.texi:21715
+#: doc/guix.texi:24488
 msgid "Data type representing the configuration of knot-resolver."
 msgstr "Tipo de datos que representa la configuración de knot-resolver."
 
 #. type: item
-#: doc/guix.texi:21717
+#: doc/guix.texi:24490
 #, no-wrap
 msgid "@code{package} (default: @var{knot-resolver})"
 msgstr "@code{package} (predeterminado: @var{knot-resolver})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:21719
+#: doc/guix.texi:24492
 msgid "Package object of the knot DNS resolver."
 msgstr "El objeto paquete de la resolución de DNS de knot."
 
 #. type: item
-#: doc/guix.texi:21720
+#: doc/guix.texi:24493
 #, no-wrap
 msgid "@code{kresd-config-file} (default: %kresd.conf)"
 msgstr "@code{kresd-config-file} (predeterminado: %kresd.conf)"
 
 #. type: table
-#: doc/guix.texi:21723
+#: doc/guix.texi:24496
 msgid "File-like object of the kresd configuration file to use, by default it will listen on @code{127.0.0.1} and @code{::1}."
-msgstr "Objeto ``tipo-fichero'' con el fichero de configuración de kresd usado, de manera predeterminada escucha en @code{127.0.0.1} y @code{::1}."
+msgstr "Objeto ``tipo-archivo'' con el archivo de configuración de kresd usado, de manera predeterminada escucha en @code{127.0.0.1} y @code{::1}."
 
 #. type: item
-#: doc/guix.texi:21724
+#: doc/guix.texi:24497
 #, no-wrap
 msgid "@code{garbage-collection-interval} (default: 1000)"
 msgstr "@code{garbage-collection-interval} (predeterminado: 1000)"
 
 #. type: table
-#: doc/guix.texi:21726
+#: doc/guix.texi:24499
 msgid "Number of milliseconds for @code{kres-cache-gc} to periodically trim the cache."
 msgstr "Número de milisegundos tras los que @code{kres-cache-gc} realiza una limpieza periódica de la caché."
 
 #. type: subsubheading
-#: doc/guix.texi:21731
+#: doc/guix.texi:24504
 #, no-wrap
 msgid "Dnsmasq Service"
 msgstr "Servicio Dnsmasq"
 
 #. type: deffn
-#: doc/guix.texi:21733
+#: doc/guix.texi:24506
 #, no-wrap
 msgid "{Scheme Variable} dnsmasq-service-type"
 msgstr "{Variable Scheme} dnsmasq-service-type"
 
 #. type: deffn
-#: doc/guix.texi:21736
+#: doc/guix.texi:24509
 msgid "This is the type of the dnsmasq service, whose value should be an @code{dnsmasq-configuration} object as in this example:"
 msgstr "Es el tipo del servicio dnsmasq, cuyo valor debe ser un objeto @code{dnsmasq-configuration} como en este ejemplo:"
 
 #. type: lisp
-#: doc/guix.texi:21742
+#: doc/guix.texi:24515
 #, no-wrap
 msgid ""
 "(service dnsmasq-service-type\n"
@@ -42578,73 +47466,73 @@ msgstr ""
 "           (servers '(\"192.168.1.1\"))))\n"
 
 #. type: deftp
-#: doc/guix.texi:21745
+#: doc/guix.texi:24518
 #, no-wrap
 msgid "{Data Type} dnsmasq-configuration"
 msgstr "{Tipo de datos} dnsmasq-configuration"
 
 #. type: deftp
-#: doc/guix.texi:21747
+#: doc/guix.texi:24520
 msgid "Data type representing the configuration of dnsmasq."
 msgstr "Tipo de datos que representa la configuración de dnsmasq."
 
 #. type: item
-#: doc/guix.texi:21749
+#: doc/guix.texi:24522
 #, no-wrap
 msgid "@code{package} (default: @var{dnsmasq})"
 msgstr "@code{package} (predeterminado: @var{dnsmasq})"
 
 #. type: table
-#: doc/guix.texi:21751
+#: doc/guix.texi:24524
 msgid "Package object of the dnsmasq server."
 msgstr "El objeto paquete del servidor dnsmasq."
 
 #. type: item
-#: doc/guix.texi:21752
+#: doc/guix.texi:24525
 #, no-wrap
 msgid "@code{no-hosts?} (default: @code{#f})"
 msgstr "@code{no-hosts?} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:21754
+#: doc/guix.texi:24527
 msgid "When true, don't read the hostnames in /etc/hosts."
 msgstr "Cuando es verdadero, no lee los nombres de máquina en /etc/hosts."
 
 #. type: item
-#: doc/guix.texi:21755
+#: doc/guix.texi:24528
 #, no-wrap
 msgid "@code{port} (default: @code{53})"
 msgstr "@code{port} (predeterminado: @code{53})"
 
 #. type: table
-#: doc/guix.texi:21758
+#: doc/guix.texi:24531
 msgid "The port to listen on.  Setting this to zero completely disables DNS responses, leaving only DHCP and/or TFTP functions."
 msgstr "El puerto sobre el que se escucha. Proporcionar el valor cero deshabilita las respuestas DNS completamente, dejando las funciones DHCP y/o TFTP únicamente."
 
 #. type: item
-#: doc/guix.texi:21759
+#: doc/guix.texi:24532
 #, no-wrap
 msgid "@code{local-service?} (default: @code{#t})"
 msgstr "@code{local-service?} (predeterminado: @code{#t})"
 
 #. type: table
-#: doc/guix.texi:21762
+#: doc/guix.texi:24535
 msgid "Accept DNS queries only from hosts whose address is on a local subnet, ie a subnet for which an interface exists on the server."
 msgstr "Acepta peticiones DNS únicamente de máquinas cuya dirección esté en una subred local, es decir, subred para la que existe una interfaz en el servidor."
 
 #. type: item
-#: doc/guix.texi:21763
+#: doc/guix.texi:24536
 #, no-wrap
 msgid "@code{listen-addresses} (default: @code{'()})"
 msgstr "@code{listen-addresses} (predeterminadas: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:21765
+#: doc/guix.texi:24538
 msgid "Listen on the given IP addresses."
 msgstr "Escucha en las direcciones IP proporcionadas."
 
 #. type: item
-#: doc/guix.texi:21766
+#: doc/guix.texi:24539
 #, no-wrap
 msgid "@code{resolv-file} (default: @code{\"/etc/resolv.conf\"})"
 msgstr "@code{resolv-file} (predeterminado: @code{\"/etc/resolv.conf\"})"
@@ -42652,939 +47540,1114 @@ msgstr "@code{resolv-file} (predeterminado: @code{\"/etc/resolv.conf\"})"
 # FUZZY
 # TODO!!!
 #. type: table
-#: doc/guix.texi:21768
+#: doc/guix.texi:24541
 msgid "The file to read the IP address of the upstream nameservers from."
-msgstr "Fichero en el que se obtienen las direcciones IP de los servidores de nombres desde los que se obtienen datos."
+msgstr "Archivo en el que se obtienen las direcciones IP de los servidores de nombres desde los que se obtienen datos."
 
 #. type: item
-#: doc/guix.texi:21769
+#: doc/guix.texi:24542
 #, no-wrap
 msgid "@code{no-resolv?} (default: @code{#f})"
 msgstr "@code{no-resolv?} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:21771
+#: doc/guix.texi:24544
 msgid "When true, don't read @var{resolv-file}."
 msgstr "Cuando tiene valor verdadero, no se lee @var{resolv-file}."
 
 #. type: item
-#: doc/guix.texi:21772
+#: doc/guix.texi:24545
 #, no-wrap
 msgid "@code{servers} (default: @code{'()})"
 msgstr "@code{servers} (predeterminados: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:21774
+#: doc/guix.texi:24547
 msgid "Specify IP address of upstream servers directly."
 msgstr "Especifica directamente la dirección IP de los servidores proveedores."
 
 #. type: item
-#: doc/guix.texi:21775
+#: doc/guix.texi:24548
+#, no-wrap
+msgid "@code{addresses} (default: @code{'()})"
+msgstr "@code{addresses} (predeterminado: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:24552
+msgid "For each entry, specify an IP address to return for any host in the given domains.  Queries in the domains are never forwarded and always replied to with the specified IP address."
+msgstr "Cada entrada especifica una dirección IP devuelta por cualquiera de las máquinas en los dominios proporcionados. Las búsquedas dentro de los dominios nunca se redirigen y siempre se devuelve la dirección IP especificada."
+
+#. type: table
+#: doc/guix.texi:24554
+msgid "This is useful for redirecting hosts locally, for example:"
+msgstr "Es útil para redirigir máquinas localmente, como en este ejemplo:"
+
+#. type: lisp
+#: doc/guix.texi:24563
+#, no-wrap
+msgid ""
+"(service dnsmasq-service-type\n"
+"         (dnsmasq-configuration\n"
+"           (addresses\n"
+"             '(; Redirect to a local web-server.\n"
+"               \"/example.org/127.0.0.1\"\n"
+"               ; Redirect subdomain to a specific IP.\n"
+"               \"/subdomain.example.org/192.168.1.42\"))))\n"
+msgstr ""
+"(service dnsmasq-service-type\n"
+"         (dnsmasq-configuration\n"
+"           (addresses\n"
+"             '(; Redirecciona a un servidor web local.\n"
+"               \"/example.org/127.0.0.1\"\n"
+"               ; Redirecciona un dominio a una IP específica.\n"
+"               \"/subdomain.example.org/192.168.1.42\"))))\n"
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:24566
+msgid "Note that rules in @file{/etc/hosts} take precedence over this."
+msgstr "Tenga en cuenta que las reglas en el archivo @file{/etc/hosts} tienen precedencia sobre esto."
+
+#. type: item
+#: doc/guix.texi:24567
 #, no-wrap
 msgid "@code{cache-size} (default: @code{150})"
 msgstr "@code{cache-size} (predeterminado: @code{150})"
 
 #. type: table
-#: doc/guix.texi:21778
+#: doc/guix.texi:24570
 msgid "Set the size of dnsmasq's cache.  Setting the cache size to zero disables caching."
 msgstr "Establece el tamaño de la caché de dnsmasq. Proporcionar el valor cero desactiva el almacenamiento en caché."
 
 #. type: item
-#: doc/guix.texi:21779
+#: doc/guix.texi:24571
 #, no-wrap
 msgid "@code{negative-cache?} (default: @code{#t})"
 msgstr "@code{negative-cache?} (predeterminado: @code{#t})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:21781
+#: doc/guix.texi:24573
 msgid "When false, disable negative caching."
 msgstr "Cuando es falso, desactiva la caché negativa."
 
+#. type: item
+#: doc/guix.texi:24574
+#, no-wrap
+msgid "@code{tftp-enable?} (default: @code{#f})"
+msgstr "@code{tftp-enable?} (predeterminado: @code{#f})"
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:24576
+msgid "Whether to enable the built-in TFTP server."
+msgstr "Determina si se activa el servidor TFTP incluido."
+
+#. type: item
+#: doc/guix.texi:24577
+#, no-wrap
+msgid "@code{tftp-no-fail?} (default: @code{#f})"
+msgstr "@code{tftp-no-fail?} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:24579
+msgid "If true, does not fail dnsmasq if the TFTP server could not start up."
+msgstr "Si es verdadero, dnsmasq no falla si el servidor TFTP no se ha podido arrancar."
+
+#. type: item
+#: doc/guix.texi:24580
+#, no-wrap
+msgid "@code{tftp-single-port?} (default: @code{#f})"
+msgstr "@code{tftp-single-port?} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:24582
+msgid "Whether to use only one single port for TFTP."
+msgstr "Determina si se un único puerto para TFTP."
+
+#. type: item
+#: doc/guix.texi:24583
+#, no-wrap
+msgid "@code{tftp-secure?} (default: @code{#f})"
+msgstr "@code{tftp-secure?} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:24585
+msgid "If true, only files owned by the user running the dnsmasq process are accessible."
+msgstr "Si es verdadero, únicamente los archivos propiedad de la cuenta que ejecuta el proceso dnsmasq están accesibles."
+
+#. type: table
+#: doc/guix.texi:24589
+msgid "If dnsmasq is being run as root, different rules apply: @code{tftp-secure?} has no effect, but only files which have the world-readable bit set are accessible."
+msgstr "Si se ejecuta dnsmasq como ``root'', se aplican diferentes reglas: @code{tftp-secure?} no tiene efecto, únicamente los archivos que tengan permiso de lectura global el mundo serán accesibles."
+
+#. type: item
+#: doc/guix.texi:24590
+#, no-wrap
+msgid "@code{tftp-max} (default: @code{#f})"
+msgstr "@code{tftp-max} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:24592
+msgid "If set, sets the maximal number of concurrent connections allowed."
+msgstr "Cuando se proporciona un valor indica el número máximo de conexiones simultáneas permitidas."
+
+#. type: item
+#: doc/guix.texi:24593
+#, no-wrap
+msgid "@code{tftp-mtu} (default: @code{#f})"
+msgstr "@code{tftp-mtu} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:24595
+msgid "If set, sets the MTU for TFTP packets to that value."
+msgstr "Si se proporciona un valor, establece el tamaño de la unidad de transmisión de mensajes (MTU) para los paquetes TFTP a dicho valor."
+
+#. type: item
+#: doc/guix.texi:24596
+#, no-wrap
+msgid "@code{tftp-no-blocksize?} (default: @code{#f})"
+msgstr "@code{tftp-no-blocksize?} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:24598
+msgid "If true, stops the TFTP server from negotiating the blocksize with a client."
+msgstr "Si es verdadero, impide al servidor TFTP la negociación del tamaño del bloque con un cliente."
+
+#. type: item
+#: doc/guix.texi:24599
+#, no-wrap
+msgid "@code{tftp-lowercase?} (default: @code{#f})"
+msgstr "@code{tftp-lowercase?} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:24601
+msgid "Whether to convert all filenames in TFTP requests to lowercase."
+msgstr "Determina si se convierten a minúsculas todos los nombres de archivo en peticiones TFTP."
+
+#. type: item
+#: doc/guix.texi:24602
+#, no-wrap
+msgid "@code{tftp-port-range} (default: @code{#f})"
+msgstr "@code{tftp-port-range} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:24605
+msgid "If set, fixes the dynamical ports (one per client) to the given range (@code{\"<start>,<end>\"})."
+msgstr "Si se proporciona un valor, este establece el rango (@code{\"<inicio>,<fin>\"}) de puertos dinámicos (uno por cliente) usados."
+
+#. type: item
+#: doc/guix.texi:24606
+#, no-wrap
+msgid "@code{tftp-root} (default: @code{/var/empty,lo})"
+msgstr "@code{tftp-root} (predeterminado: @code{/var/empty,lo})"
+
+#. type: table
+#: doc/guix.texi:24613
+msgid "Look for files to transfer using TFTP relative to the given directory.  When this is set, TFTP paths which include \"..\" are rejected, to stop clients getting outside the specified root. Absolute paths (starting with /) are allowed, but they must be within the tftp-root. If the optional interface argument is given, the directory is only used for TFTP requests via that interface."
+msgstr "Busca archivos a transferir usando TFTP de manera relativa a dicho directorio. Cuando se proporcione un valor, las rutas TFTP que incluyan \"..\" se rechazan, para evitar que los clientes accedan fuera de la raíz especificada. Las rutas absolutas (cuyo inicio es /) se permiten, pero deben apuntar dentro de @code{tftp-root}. Si se proporciona el parámetro opcional de interfaz, el directorio se usa únicamente para las peticiones TFTP a través de dicha interfaz."
+
+#. type: item
+#: doc/guix.texi:24614
+#, no-wrap
+msgid "@code{tftp-unique-root} (default: @code{#f})"
+msgstr "@code{tftp-unique-root} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:24619
+msgid "If set, add the IP or hardware address of the TFTP client as a path component on the end of the TFTP-root.  Only valid if a TFTP root is set and the directory exists.  Defaults to adding IP address (in standard dotted-quad format)."
+msgstr "Si se proporciona un valor, añade la dirección IP o hardware del cliente TFTP como un componente de la ruta tras el final de @code{tftp-root}. Es válido únicamente si se proporciona una raíz para TFTP y el directorio existe. El valor predeterminado añade la dirección IP (en el formato estándar de cuatro cifras separadas por puntos)."
+
+# FUZZY FUZZY
+#. type: table
+#: doc/guix.texi:24627
+msgid "For instance, if --tftp-root is \"/tftp\" and client 1.2.3.4 requests file \"myfile\" then the effective path will be \"/tftp/1.2.3.4/myfile\" if /tftp/1.2.3.4 exists or /tftp/myfile otherwise. When \"=mac\" is specified it will append the MAC address instead, using lowercase zero padded digits separated by dashes, e.g.: 01-02-03-04-aa-bb Note that resolving MAC addresses is only possible if the client is in the local network or obtained a DHCP lease from dnsmasq."
+msgstr "Por ejmplo, si --tftp-root es \"/tftp\" y el cliente 1.2.3.4 solicita el archivo \"miarchivo\" la ruta efectiva sería \"/tftp/1.2.3.4/miarchivo\" si /tftp/1.2.3.4 existe o \"/tftp/miarchivo\" en otro caso. Cuando se especifica \"=mac\" se añade la dirección MAC en vez de la IP, usando pares de dígitos (usando 0 si es necesario) separados por guiones, por ejemplo: 01-02-03-04-aa-bb.  Tenga en cuenta que la resolución de direcciones MAC es posible únicamente si el cliente está en la red local o ha obtenido una cesión DHCP de dnsmasq."
+
 #. type: subsubheading
-#: doc/guix.texi:21785
+#: doc/guix.texi:24631
 #, no-wrap
 msgid "ddclient Service"
 msgstr "Servicio ddclient"
 
 #. type: cindex
-#: doc/guix.texi:21787
+#: doc/guix.texi:24633
 #, no-wrap
 msgid "ddclient"
 msgstr "ddclient"
 
 #. type: Plain text
-#: doc/guix.texi:21791
+#: doc/guix.texi:24637
 msgid "The ddclient service described below runs the ddclient daemon, which takes care of automatically updating DNS entries for service providers such as @uref{https://dyn.com/dns/, Dyn}."
 msgstr "El servicio de ddclient descrito a continuación ejecuta el daemon ddclient, que se encarga de actualizar automáticamente entradas DNS para proveedores de servicio como @uref{https://dyn.com/dns/, Dyn}."
 
 #. type: Plain text
-#: doc/guix.texi:21794
+#: doc/guix.texi:24640
 msgid "The following example show instantiates the service with its default configuration:"
 msgstr "El ejemplo siguiente muestra como instanciar el servicio con su configuración predeterminada."
 
 #. type: lisp
-#: doc/guix.texi:21797
+#: doc/guix.texi:24643
 #, no-wrap
 msgid "(service ddclient-service-type)\n"
 msgstr "(service ddclient-service-type)\n"
 
 #. type: Plain text
-#: doc/guix.texi:21806
-msgid "Note that ddclient needs to access credentials that are stored in a @dfn{secret file}, by default @file{/etc/ddclient/secrets} (see @code{secret-file} below.)  You are expected to create this file manually, in an ``out-of-band'' fashion (you @emph{could} make this file part of the service configuration, for instance by using @code{plain-file}, but it will be world-readable @i{via} @file{/gnu/store}.)  See the examples in the @file{share/ddclient} directory of the @code{ddclient} package."
-msgstr "Fíjese que ddclient necesita acceder a las credenciales que se almacenan en un @dfn{fichero de secretos}, de manera predeterminada @file{/etc/ddclient/secrets} (véase @code{secret-file} a continuación). Se espera que genere este fichero manualmente, ``fuera de banda'' (@emph{puede} incluir este fichero en la configuración del servicio, por ejemplo mediante el uso de @code{plain-file}, pero sera legible por todo el mundo a través de @file{/gnu/store}). Véase los ejemplos en el directorio @file{share/ddclient} del paquete @code{ddclient}."
+#: doc/guix.texi:24652
+msgid "Note that ddclient needs to access credentials that are stored in a @dfn{secret file}, by default @file{/etc/ddclient/secrets} (see @code{secret-file} below).  You are expected to create this file manually, in an ``out-of-band'' fashion (you @emph{could} make this file part of the service configuration, for instance by using @code{plain-file}, but it will be world-readable @i{via} @file{/gnu/store}).  See the examples in the @file{share/ddclient} directory of the @code{ddclient} package."
+msgstr "Fíjese que ddclient necesita acceder a las credenciales que se almacenan en un @dfn{archivo de secretos}, de manera predeterminada @file{/etc/ddclient/secrets} (véase @code{secret-file} a continuación). Se espera que genere este archivo manualmente, ``fuera de banda'' (@emph{puede} incluir este archivo en la configuración del servicio, por ejemplo mediante el uso de @code{plain-file}, pero sera legible por todo el mundo a través de @file{/gnu/store}). Véase los ejemplos en el directorio @file{share/ddclient} del paquete @code{ddclient}."
 
 #. type: Plain text
-#: doc/guix.texi:21810
+#: doc/guix.texi:24656
 msgid "Available @code{ddclient-configuration} fields are:"
 msgstr "Los campos disponibles de @code{ddclient-configuration} son:"
 
 #. type: deftypevr
-#: doc/guix.texi:21811
+#: doc/guix.texi:24657
 #, no-wrap
 msgid "{@code{ddclient-configuration} parameter} package ddclient"
 msgstr "{parámetro de @code{ddclient-configuration}} package ddclient"
 
 #. type: deftypevr
-#: doc/guix.texi:21813
+#: doc/guix.texi:24659
 msgid "The ddclient package."
 msgstr "El paquete ddclient."
 
 #. type: deftypevr
-#: doc/guix.texi:21816
+#: doc/guix.texi:24662
 #, no-wrap
 msgid "{@code{ddclient-configuration} parameter} integer daemon"
 msgstr "{parámetro de @code{ddclient-configuration}} integer daemon"
 
 #. type: deftypevr
-#: doc/guix.texi:21818
+#: doc/guix.texi:24664
 msgid "The period after which ddclient will retry to check IP and domain name."
 msgstr "Periodo tras el cual ddclient reintentará la comprobación de IP y de nombre de dominio."
 
 #. type: deftypevr
-#: doc/guix.texi:21823
+#: doc/guix.texi:24669
 #, no-wrap
 msgid "{@code{ddclient-configuration} parameter} boolean syslog"
 msgstr "{parámetro de @code{ddclient-configuration}} boolean syslog"
 
 #. type: deftypevr
-#: doc/guix.texi:21825
+#: doc/guix.texi:24671
 msgid "Use syslog for the output."
 msgstr "Usa syslog para la salida."
 
 #. type: deftypevr
-#: doc/guix.texi:21830
+#: doc/guix.texi:24676
 #, no-wrap
 msgid "{@code{ddclient-configuration} parameter} string mail"
 msgstr "{parámetro de @code{ddclient-configuration}} string mail"
 
 #. type: deftypevr
-#: doc/guix.texi:21832
+#: doc/guix.texi:24678
 msgid "Mail to user."
 msgstr "Envía por correo a la usuaria."
 
 #. type: deftypevr
-#: doc/guix.texi:21834 doc/guix.texi:21841 doc/guix.texi:23341
+#: doc/guix.texi:24680 doc/guix.texi:24687 doc/guix.texi:26202
 msgid "Defaults to @samp{\"root\"}."
 msgstr "El valor predeterminado es @samp{\"root\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:21837
+#: doc/guix.texi:24683
 #, no-wrap
 msgid "{@code{ddclient-configuration} parameter} string mail-failure"
 msgstr "{parámetro de @code{ddclient-configuration}} string mail-failure"
 
 #. type: deftypevr
-#: doc/guix.texi:21839
+#: doc/guix.texi:24685
 msgid "Mail failed update to user."
 msgstr "Envía por correo las actualizaciones fallidas a la usuaria."
 
 #. type: deftypevr
-#: doc/guix.texi:21844
+#: doc/guix.texi:24690
 #, no-wrap
 msgid "{@code{ddclient-configuration} parameter} string pid"
 msgstr "{parámetro de @code{ddclient-configuration}} string pid"
 
 #. type: deftypevr
-#: doc/guix.texi:21846
+#: doc/guix.texi:24692
 msgid "The ddclient PID file."
-msgstr "El fichero de PID de ddclient."
+msgstr "El archivo de PID de ddclient."
 
 #. type: deftypevr
-#: doc/guix.texi:21848
+#: doc/guix.texi:24694
 msgid "Defaults to @samp{\"/var/run/ddclient/ddclient.pid\"}."
 msgstr "El valor predeterminado es @samp{\"/var/run/ddclient/ddclient.pid\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:21851
+#: doc/guix.texi:24697
 #, no-wrap
 msgid "{@code{ddclient-configuration} parameter} boolean ssl"
 msgstr "{parámetro de @code{ddclient-configuration}} boolean ssl"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:21853
+#: doc/guix.texi:24699
 msgid "Enable SSL support."
 msgstr "Permite el uso de SSL."
 
 #. type: deftypevr
-#: doc/guix.texi:21858
+#: doc/guix.texi:24704
 #, no-wrap
 msgid "{@code{ddclient-configuration} parameter} string user"
 msgstr "{parámetro de @code{ddclient-configuration}} string user"
 
 #. type: deftypevr
-#: doc/guix.texi:21861
+#: doc/guix.texi:24707
 msgid "Specifies the user name or ID that is used when running ddclient program."
 msgstr "Especifica el nombre de usuaria o ID usado para la ejecución del programa ddclient."
 
 #. type: deftypevr
-#: doc/guix.texi:21863 doc/guix.texi:21870
+#: doc/guix.texi:24709 doc/guix.texi:24716
 msgid "Defaults to @samp{\"ddclient\"}."
 msgstr "El valor predeterminado es @samp{\"ddclient\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:21866
+#: doc/guix.texi:24712
 #, no-wrap
 msgid "{@code{ddclient-configuration} parameter} string group"
 msgstr "{parámetro de @code{ddclient-configuration}} string group"
 
 #. type: deftypevr
-#: doc/guix.texi:21868
+#: doc/guix.texi:24714
 msgid "Group of the user who will run the ddclient program."
 msgstr "Grupo de la usuaria que ejecutará el servidor ddclient."
 
 #. type: deftypevr
-#: doc/guix.texi:21873
+#: doc/guix.texi:24719
 #, no-wrap
 msgid "{@code{ddclient-configuration} parameter} string secret-file"
 msgstr "{parámetro de @code{ddclient-configuration}} string secret-file"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:21877
+#: doc/guix.texi:24723
 msgid "Secret file which will be appended to @file{ddclient.conf} file.  This file contains credentials for use by ddclient.  You are expected to create it manually."
-msgstr "Fichero secreto que se añadirá al final del fichero @file{ddclient.conf}. Este fichero contiene las credenciales usadas por ddclient. Se espera que usted lo cree manualmente."
+msgstr "Archivo secreto que se añadirá al final del archivo @file{ddclient.conf}. Este archivo contiene las credenciales usadas por ddclient. Se espera que usted lo cree manualmente."
 
 #. type: deftypevr
-#: doc/guix.texi:21879
+#: doc/guix.texi:24725
 msgid "Defaults to @samp{\"/etc/ddclient/secrets.conf\"}."
 msgstr "El valor predeterminado es @samp{\"/etc/ddclient/secrets.conf\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:21882
+#: doc/guix.texi:24728
 #, no-wrap
 msgid "{@code{ddclient-configuration} parameter} list extra-options"
 msgstr "{parámetro de @code{ddclient-configuration}} lista extra-options"
 
 #. type: deftypevr
-#: doc/guix.texi:21884
+#: doc/guix.texi:24730
 msgid "Extra options will be appended to @file{ddclient.conf} file."
-msgstr "Opciones adicionales a agregar al final del fichero @file{ddclient.conf}."
+msgstr "Opciones adicionales a agregar al final del archivo @file{ddclient.conf}."
 
 #. type: cindex
-#: doc/guix.texi:21895
+#: doc/guix.texi:24741
 #, no-wrap
 msgid "VPN (virtual private network)"
 msgstr "VPN (red privada virtual)"
 
 #. type: cindex
-#: doc/guix.texi:21896
+#: doc/guix.texi:24742
 #, no-wrap
 msgid "virtual private network (VPN)"
 msgstr "red privada virtual (VPN)"
 
 #. type: Plain text
-#: doc/guix.texi:21902
+#: doc/guix.texi:24748
 msgid "The @code{(gnu services vpn)} module provides services related to @dfn{virtual private networks} (VPNs).  It provides a @emph{client} service for your machine to connect to a VPN, and a @emph{server} service for your machine to host a VPN.  Both services use @uref{https://openvpn.net/, OpenVPN}."
 msgstr "El módulo @code{(gnu services vpn)} proporciona servicios relacionados con las @dfn{redes privadas virtuales} (VPN). Proporciona un servicio @emph{cliente} para que su máquina se conecte a una VPN, y un servicio @emph{servidor} para que su máquina aloje una VPN. Ambos servicios usan @uref{https://openvpn.net/, OpenVPN}."
 
 #. type: deffn
-#: doc/guix.texi:21903
+#: doc/guix.texi:24749
 #, no-wrap
 msgid "{Scheme Procedure} openvpn-client-service @"
 msgstr "{Procedimiento Scheme} openvpn-client-service @"
 
 #. type: deffn
-#: doc/guix.texi:21905
+#: doc/guix.texi:24751
 msgid "[#:config (openvpn-client-configuration)]"
 msgstr "[#:config (openvpn-client-configuration)]"
 
 #. type: deffn
-#: doc/guix.texi:21907
+#: doc/guix.texi:24753
 msgid "Return a service that runs @command{openvpn}, a VPN daemon, as a client."
 msgstr "Devuelve un servicio que ejecuta @command{openvpn}, un daemon VPN, como cliente."
 
 #. type: deffn
-#: doc/guix.texi:21909
+#: doc/guix.texi:24755
 #, no-wrap
 msgid "{Scheme Procedure} openvpn-server-service @"
 msgstr "{Procedimiento Scheme} openvpn-server-service @"
 
 #. type: deffn
-#: doc/guix.texi:21911
+#: doc/guix.texi:24757
 msgid "[#:config (openvpn-server-configuration)]"
 msgstr "[#:config (openvpn-server-configuration)]"
 
 #. type: deffn
-#: doc/guix.texi:21913
+#: doc/guix.texi:24759
 msgid "Return a service that runs @command{openvpn}, a VPN daemon, as a server."
 msgstr "Devuelve un servicio que ejecuta @command{openvpn}, un daemon VPN, como servidor."
 
 #. type: deffn
-#: doc/guix.texi:21915
+#: doc/guix.texi:24761
 msgid "Both can be run simultaneously."
 msgstr "Pueden ejecutarse simultáneamente."
 
 #. type: Plain text
-#: doc/guix.texi:21920
+#: doc/guix.texi:24766
 msgid "Available @code{openvpn-client-configuration} fields are:"
 msgstr "Los campos disponibles de @code{openvpn-client-configuration} son:"
 
 #. type: deftypevr
-#: doc/guix.texi:21921
+#: doc/guix.texi:24767
 #, no-wrap
 msgid "{@code{openvpn-client-configuration} parameter} package openvpn"
 msgstr "{parámetro de @code{openvpn-client-configuration}} package openvpn"
 
 #. type: deftypevr
-#: doc/guix.texi:21923 doc/guix.texi:22074
+#: doc/guix.texi:24769 doc/guix.texi:24920
 msgid "The OpenVPN package."
 msgstr "El paquete OpenVPN."
 
 #. type: deftypevr
-#: doc/guix.texi:21926
+#: doc/guix.texi:24772
 #, no-wrap
 msgid "{@code{openvpn-client-configuration} parameter} string pid-file"
 msgstr "{parámetro de @code{openvpn-client-configuration}} string pid-file"
 
 #. type: deftypevr
-#: doc/guix.texi:21928 doc/guix.texi:22079
+#: doc/guix.texi:24774 doc/guix.texi:24925
 msgid "The OpenVPN pid file."
-msgstr "El fichero de pid de OpenVPN."
+msgstr "El archivo de pid de OpenVPN."
 
 #. type: deftypevr
-#: doc/guix.texi:21930 doc/guix.texi:22081
+#: doc/guix.texi:24776 doc/guix.texi:24927
 msgid "Defaults to @samp{\"/var/run/openvpn/openvpn.pid\"}."
 msgstr "El valor predeterminado es @samp{\"/var/run/openvpn/openvpn.pid\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:21933
+#: doc/guix.texi:24779
 #, no-wrap
 msgid "{@code{openvpn-client-configuration} parameter} proto proto"
 msgstr "{parámetro de @code{openvpn-client-configuration}} protocolo proto"
 
 #. type: deftypevr
-#: doc/guix.texi:21936 doc/guix.texi:22087
+#: doc/guix.texi:24782 doc/guix.texi:24933
 msgid "The protocol (UDP or TCP) used to open a channel between clients and servers."
 msgstr "El protocolo (UDP o TCP) usado para la apertura del canal entre clientes y servidores."
 
 #. type: deftypevr
-#: doc/guix.texi:21938 doc/guix.texi:22089
+#: doc/guix.texi:24784 doc/guix.texi:24935
 msgid "Defaults to @samp{udp}."
 msgstr "El valor predeterminado es @samp{udp}."
 
 #. type: deftypevr
-#: doc/guix.texi:21941
+#: doc/guix.texi:24787
 #, no-wrap
 msgid "{@code{openvpn-client-configuration} parameter} dev dev"
 msgstr "{parámetro de @code{openvpn-client-configuration}} dispositivo dev"
 
 #. type: deftypevr
-#: doc/guix.texi:21943 doc/guix.texi:22094
+#: doc/guix.texi:24789 doc/guix.texi:24940
 msgid "The device type used to represent the VPN connection."
 msgstr "El tipo de dispositivo usado para representar la conexión VPN."
 
 #. type: deftypevr
-#: doc/guix.texi:21945 doc/guix.texi:22096
+#: doc/guix.texi:24791 doc/guix.texi:24942
 msgid "Defaults to @samp{tun}."
 msgstr "El valor predeterminado es @samp{tun}."
 
 #. type: deftypevr
-#: doc/guix.texi:21948
+#: doc/guix.texi:24794
 #, no-wrap
 msgid "{@code{openvpn-client-configuration} parameter} string ca"
 msgstr "{parámetro de @code{openvpn-client-configuration}} string ca"
 
 #. type: deftypevr
-#: doc/guix.texi:21950 doc/guix.texi:22101
+#: doc/guix.texi:24796 doc/guix.texi:24947
 msgid "The certificate authority to check connections against."
 msgstr "La autoridad de certificación contra la que se comprueban las conexiones."
 
 #. type: deftypevr
-#: doc/guix.texi:21952 doc/guix.texi:22103
+#: doc/guix.texi:24798 doc/guix.texi:24949
 msgid "Defaults to @samp{\"/etc/openvpn/ca.crt\"}."
 msgstr "El valor predeterminado es @samp{\"/etc/openvpn/ca.crt\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:21955
+#: doc/guix.texi:24801
 #, no-wrap
 msgid "{@code{openvpn-client-configuration} parameter} string cert"
 msgstr "{parámetro de @code{openvpn-client-configuration}} string cert"
 
 #. type: deftypevr
-#: doc/guix.texi:21958 doc/guix.texi:22109
+#: doc/guix.texi:24804 doc/guix.texi:24955
 msgid "The certificate of the machine the daemon is running on.  It should be signed by the authority given in @code{ca}."
 msgstr "El certificado de la máquina en la que se ejecuta el daemon. Debe estar firmado por la autoridad proporcionada en @code{ca}."
 
 #. type: deftypevr
-#: doc/guix.texi:21960 doc/guix.texi:22111
+#: doc/guix.texi:24806 doc/guix.texi:24957
 msgid "Defaults to @samp{\"/etc/openvpn/client.crt\"}."
 msgstr "El valor predeterminado es @samp{\"/etc/openvpn/client.crt\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:21963
+#: doc/guix.texi:24809
 #, no-wrap
 msgid "{@code{openvpn-client-configuration} parameter} string key"
 msgstr "{parámetro de @code{openvpn-client-configuration}} string key"
 
 #. type: deftypevr
-#: doc/guix.texi:21966 doc/guix.texi:22117
+#: doc/guix.texi:24812 doc/guix.texi:24963
 msgid "The key of the machine the daemon is running on.  It must be the key whose certificate is @code{cert}."
 msgstr "La clave de la máquina en la que se ejecuta el daemon. Debe ser la clave cuyo certificado es @code{cert}."
 
 #. type: deftypevr
-#: doc/guix.texi:21968 doc/guix.texi:22119
+#: doc/guix.texi:24814 doc/guix.texi:24965
 msgid "Defaults to @samp{\"/etc/openvpn/client.key\"}."
 msgstr "El valor predeterminado es @samp{\"/etc/openvpn/client.key\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:21971
+#: doc/guix.texi:24817
 #, no-wrap
 msgid "{@code{openvpn-client-configuration} parameter} boolean comp-lzo?"
 msgstr "{parámetro de @code{openvpn-client-configuration}} boolean comp-lzo?"
 
 #. type: deftypevr
-#: doc/guix.texi:21973 doc/guix.texi:22124
+#: doc/guix.texi:24819 doc/guix.texi:24970
 msgid "Whether to use the lzo compression algorithm."
 msgstr "Determina si se usa el algoritmo de compresión lzo."
 
 #. type: deftypevr
-#: doc/guix.texi:21978
+#: doc/guix.texi:24824
 #, no-wrap
 msgid "{@code{openvpn-client-configuration} parameter} boolean persist-key?"
 msgstr "{parámetro de @code{openvpn-client-configuration}} boolean persist-key?"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:21980 doc/guix.texi:22131
+#: doc/guix.texi:24826 doc/guix.texi:24977
 msgid "Don't re-read key files across SIGUSR1 or --ping-restart."
-msgstr "No vuelve a leer los ficheros de claves tras la señal SIGUSR1 o --ping-restart."
+msgstr "No vuelve a leer los archivos de claves tras la señal SIGUSR1 o --ping-restart."
 
 #. type: deftypevr
-#: doc/guix.texi:21985
+#: doc/guix.texi:24831
 #, no-wrap
 msgid "{@code{openvpn-client-configuration} parameter} boolean persist-tun?"
 msgstr "{parámetro de @code{openvpn-client-configuration}} boolean persist-tun?"
 
 #. type: deftypevr
-#: doc/guix.texi:21988 doc/guix.texi:22139
+#: doc/guix.texi:24834 doc/guix.texi:24985
 msgid "Don't close and reopen TUN/TAP device or run up/down scripts across SIGUSR1 or --ping-restart restarts."
 msgstr "No cierra y reabre el dispositivo TUN/TAP o ejecuta los guiones de parada e inicio tras el reinicio provocado por SIGUSR1 o --ping-restart."
 
 #. type: deftypevr
-#: doc/guix.texi:21993
+#: doc/guix.texi:24839
 #, no-wrap
 msgid "{@code{openvpn-client-configuration} parameter} boolean fast-io?"
 msgstr "{parámetro de @code{openvpn-client-configuration}} boolean fast-io?"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:21996 doc/guix.texi:22147
+#: doc/guix.texi:24842 doc/guix.texi:24993
 msgid "(Experimental) Optimize TUN/TAP/UDP I/O writes by avoiding a call to poll/epoll/select prior to the write operation."
 msgstr "(Experimental) Optimiza las escrituras de E/S de TUN/TAP/UDP evitando llamar poll/epoll/select antes de la operación de escritura (@code{write})."
 
 #. type: deftypevr
-#: doc/guix.texi:22000
+#: doc/guix.texi:24846
 #, no-wrap
 msgid "{@code{openvpn-client-configuration} parameter} number verbosity"
 msgstr "{parámetro de @code{openvpn-client-configuration}} number verbosity"
 
 #. type: deftypevr
-#: doc/guix.texi:22002 doc/guix.texi:22153
+#: doc/guix.texi:24848 doc/guix.texi:24999
 msgid "Verbosity level."
 msgstr "Nivel de detalle en los mensajes."
 
 #. type: deftypevr
-#: doc/guix.texi:22004 doc/guix.texi:22155 doc/guix.texi:23609
-#: doc/guix.texi:23832
+#: doc/guix.texi:24850 doc/guix.texi:25001 doc/guix.texi:26470
+#: doc/guix.texi:26694
 msgid "Defaults to @samp{3}."
 msgstr "El valor predeterminado es @samp{3}."
 
 #. type: deftypevr
-#: doc/guix.texi:22007
+#: doc/guix.texi:24853
 #, no-wrap
 msgid "{@code{openvpn-client-configuration} parameter} tls-auth-client tls-auth"
 msgstr "{parámetro de @code{openvpn-client-configuration}} cliente-tls-auth tls-auth"
 
 #. type: deftypevr
-#: doc/guix.texi:22010 doc/guix.texi:22161
+#: doc/guix.texi:24856 doc/guix.texi:25007
 msgid "Add an additional layer of HMAC authentication on top of the TLS control channel to protect against DoS attacks."
 msgstr "Añade una capa adicional de verificación HMAC sobre el canal de control TLS para protección contra ataques de denegación de servicio (DoS)."
 
 #. type: deftypevr
-#: doc/guix.texi:22015
+#: doc/guix.texi:24861
 #, no-wrap
 msgid "{@code{openvpn-client-configuration} parameter} maybe-string auth-user-pass"
 msgstr "{parámetro de @code{openvpn-client-configuration}} maybe-string auth-user-pass"
 
 #. type: deftypevr
-#: doc/guix.texi:22019
+#: doc/guix.texi:24865
 msgid "Authenticate with server using username/password.  The option is a file containing username/password on 2 lines.  Do not use a file-like object as it would be added to the store and readable by any user."
-msgstr "Activa la identificación con el servidor mediante el uso de usuaria/contraseña. La opción es un fichero que contiene en dos líneas el nombre de usuaria y la contraseña. No use un objeto tipo-fichero, ya que se añadiría al almacén y sería legible para cualquier usuaria."
+msgstr "Activa la identificación con el servidor mediante el uso de usuaria/contraseña. La opción es un archivo que contiene en dos líneas el nombre de usuaria y la contraseña. No use un objeto tipo-archivo, ya que se añadiría al almacén y sería legible para cualquier usuaria."
 
 #. type: deftypevr
-#: doc/guix.texi:22021
+#: doc/guix.texi:24867
 msgid "Defaults to @samp{'disabled}."
 msgstr "El valor predeterminado es @samp{'disabled}."
 
 #. type: deftypevr
-#: doc/guix.texi:22023
+#: doc/guix.texi:24869
 #, no-wrap
 msgid "{@code{openvpn-client-configuration} parameter} key-usage verify-key-usage?"
 msgstr "{parámetro de @code{openvpn-client-configuration}} key-usage verify-key-usage?"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:22025
+#: doc/guix.texi:24871
 msgid "Whether to check the server certificate has server usage extension."
 msgstr "Si se comprueba que el certificado del servidor tenga la extensión de uso de servidor."
 
 #. type: deftypevr
-#: doc/guix.texi:22030
+#: doc/guix.texi:24876
 #, no-wrap
 msgid "{@code{openvpn-client-configuration} parameter} bind bind?"
 msgstr "{parámetro de @code{openvpn-client-configuration}} bind bind?"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:22032
+#: doc/guix.texi:24878
 msgid "Bind to a specific local port number."
 msgstr "Asociación a un número específico de puerto local."
 
 #. type: deftypevr
-#: doc/guix.texi:22037
+#: doc/guix.texi:24883
 #, no-wrap
 msgid "{@code{openvpn-client-configuration} parameter} resolv-retry resolv-retry?"
 msgstr "{parámetro de @code{openvpn-client-configuration}} resolv-retry resolv-retry?"
 
 #. type: deftypevr
-#: doc/guix.texi:22039
+#: doc/guix.texi:24885
 msgid "Retry resolving server address."
 msgstr "Reintentos de resolución de la dirección del servidor."
 
 #. type: deftypevr
-#: doc/guix.texi:22044
+#: doc/guix.texi:24890
 #, no-wrap
 msgid "{@code{openvpn-client-configuration} parameter} openvpn-remote-list remote"
 msgstr "{parámetro @code{openvpn-client-configuration}} lista-openvpn-remote remote"
 
 #. type: deftypevr
-#: doc/guix.texi:22046
+#: doc/guix.texi:24892
 msgid "A list of remote servers to connect to."
 msgstr "Una lista de servidores remotos a los que conectarse."
 
 #. type: deftypevr
-#: doc/guix.texi:22050
+#: doc/guix.texi:24896
 msgid "Available @code{openvpn-remote-configuration} fields are:"
 msgstr "Los campos disponibles de @code{openvpn-remote-configuration} son:"
 
 #. type: deftypevr
-#: doc/guix.texi:22051
+#: doc/guix.texi:24897
 #, no-wrap
 msgid "{@code{openvpn-remote-configuration} parameter} string name"
 msgstr "{parámetro de @code{openvpn-remote-configuration}} string name"
 
 #. type: deftypevr
-#: doc/guix.texi:22053
+#: doc/guix.texi:24899
 msgid "Server name."
 msgstr "Nombre del servidor."
 
 #. type: deftypevr
-#: doc/guix.texi:22055
+#: doc/guix.texi:24901
 msgid "Defaults to @samp{\"my-server\"}."
 msgstr "El valor predeterminado es @samp{\"my-server\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:22058
+#: doc/guix.texi:24904
 #, no-wrap
 msgid "{@code{openvpn-remote-configuration} parameter} number port"
 msgstr "{parámetro de @code{openvpn-remote-configuration}} number port"
 
 #. type: deftypevr
-#: doc/guix.texi:22060
+#: doc/guix.texi:24906
 msgid "Port number the server listens to."
 msgstr "Puerto en el que escucha el servidor."
 
 #. type: deftypevr
-#: doc/guix.texi:22062 doc/guix.texi:22170
+#: doc/guix.texi:24908 doc/guix.texi:25016
 msgid "Defaults to @samp{1194}."
 msgstr "El valor predeterminado es @samp{1194}."
 
 #. type: Plain text
-#: doc/guix.texi:22071
+#: doc/guix.texi:24917
 msgid "Available @code{openvpn-server-configuration} fields are:"
 msgstr "Los campos disponibles de @code{openvpn-server-configuration} son:"
 
 #. type: deftypevr
-#: doc/guix.texi:22072
+#: doc/guix.texi:24918
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} package openvpn"
 msgstr "{parámetro de @code{openvpn-server-configuration}} package openvpn"
 
 #. type: deftypevr
-#: doc/guix.texi:22077
+#: doc/guix.texi:24923
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} string pid-file"
 msgstr "{parámetro de @code{openvpn-server-configuration}} string pid-file"
 
 #. type: deftypevr
-#: doc/guix.texi:22084
+#: doc/guix.texi:24930
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} proto proto"
 msgstr "{parámetro de @code{openvpn-server-configuration}} protocolo proto"
 
 #. type: deftypevr
-#: doc/guix.texi:22092
+#: doc/guix.texi:24938
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} dev dev"
 msgstr "{parámetro de @code{openvpn-server-configuration}} dispositivo dev"
 
 #. type: deftypevr
-#: doc/guix.texi:22099
+#: doc/guix.texi:24945
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} string ca"
 msgstr "{parámetro de @code{openvpn-server-configuration}} string ca"
 
 #. type: deftypevr
-#: doc/guix.texi:22106
+#: doc/guix.texi:24952
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} string cert"
 msgstr "{parámetro de @code{openvpn-server-configuration}} string cert"
 
 #. type: deftypevr
-#: doc/guix.texi:22114
+#: doc/guix.texi:24960
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} string key"
 msgstr "{parámetro de @code{openvpn-server-configuration}} string key"
 
 #. type: deftypevr
-#: doc/guix.texi:22122
+#: doc/guix.texi:24968
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} boolean comp-lzo?"
 msgstr "{parámetro de @code{openvpn-server-configuration}} boolean comp-lzo?"
 
 #. type: deftypevr
-#: doc/guix.texi:22129
+#: doc/guix.texi:24975
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} boolean persist-key?"
 msgstr "{parámetro de @code{openvpn-server-configuration}} boolean persist-key?"
 
 #. type: deftypevr
-#: doc/guix.texi:22136
+#: doc/guix.texi:24982
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} boolean persist-tun?"
 msgstr "{parámetro de @code{openvpn-server-configuration}} boolean persist-tun?"
 
 #. type: deftypevr
-#: doc/guix.texi:22144
+#: doc/guix.texi:24990
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} boolean fast-io?"
 msgstr "{parámetro de @code{openvpn-server-configuration}} boolean fast-io?"
 
 #. type: deftypevr
-#: doc/guix.texi:22151
+#: doc/guix.texi:24997
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} number verbosity"
 msgstr "{parámetro de @code{openvpn-server-configuration}} number verbosity"
 
 #. type: deftypevr
-#: doc/guix.texi:22158
+#: doc/guix.texi:25004
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} tls-auth-server tls-auth"
 msgstr "{parámetro de @code{openvpn-server-configuration}} servidor-tls-auth tls-auth"
 
 #. type: deftypevr
-#: doc/guix.texi:22166
+#: doc/guix.texi:25012
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} number port"
 msgstr "{parámetro de @code{openvpn-server-configuration}} number port"
 
 #. type: deftypevr
-#: doc/guix.texi:22168
+#: doc/guix.texi:25014
 msgid "Specifies the port number on which the server listens."
 msgstr "Especifica el número de puerto en el que escucha el servidor."
 
 #. type: deftypevr
-#: doc/guix.texi:22173
+#: doc/guix.texi:25019
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} ip-mask server"
 msgstr "{parámetro de @code{openvpn-server-configuration}} ip-máscara server"
 
 #. type: deftypevr
-#: doc/guix.texi:22175
+#: doc/guix.texi:25021
 msgid "An ip and mask specifying the subnet inside the virtual network."
 msgstr "Una IP y una máscara que especifiquen la subred dentro de la red virtual."
 
 #. type: deftypevr
-#: doc/guix.texi:22177
+#: doc/guix.texi:25023
 msgid "Defaults to @samp{\"10.8.0.0 255.255.255.0\"}."
 msgstr "El valor predeterminado es @samp{\"10.8.0.0 255.255.255.0\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:22180
+#: doc/guix.texi:25026
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} cidr6 server-ipv6"
 msgstr "{parámetro de @code{openvpn-server-configuration}} cidr6 server-ipv6"
 
 #. type: deftypevr
-#: doc/guix.texi:22182
+#: doc/guix.texi:25028
 msgid "A CIDR notation specifying the IPv6 subnet inside the virtual network."
 msgstr "La especificación de una subred IPv6 dentro de la red virtual en notación CIDR."
 
 #. type: deftypevr
-#: doc/guix.texi:22187
+#: doc/guix.texi:25033
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} string dh"
 msgstr "{parámetro de @code{openvpn-server-configuration}} string dh"
 
 #. type: deftypevr
-#: doc/guix.texi:22189
+#: doc/guix.texi:25035
 msgid "The Diffie-Hellman parameters file."
-msgstr "El fichero de parámetros Diffie-Hellman."
+msgstr "El archivo de parámetros Diffie-Hellman."
 
 #. type: deftypevr
-#: doc/guix.texi:22191
+#: doc/guix.texi:25037
 msgid "Defaults to @samp{\"/etc/openvpn/dh2048.pem\"}."
 msgstr "El valor predeterminado es @samp{\"/etc/openvpn/dh2048.pem\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:22194
+#: doc/guix.texi:25040
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} string ifconfig-pool-persist"
 msgstr "{parámetro de @code{openvpn-server-configuration}} string ifconfig-pool-persist"
 
 #. type: deftypevr
-#: doc/guix.texi:22196
+#: doc/guix.texi:25042
 msgid "The file that records client IPs."
-msgstr "El fichero que registra IP de clientes."
+msgstr "El archivo que registra IP de clientes."
 
 #. type: deftypevr
-#: doc/guix.texi:22198
+#: doc/guix.texi:25044
 msgid "Defaults to @samp{\"/etc/openvpn/ipp.txt\"}."
 msgstr "El valor predeterminado es @samp{\"/etc/openvpn/ipp.txt\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:22201
+#: doc/guix.texi:25047
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} gateway redirect-gateway?"
 msgstr "{parámetro de @code{openvpn-server-configuration}} gateway redirect-gateway?"
 
 #. type: deftypevr
-#: doc/guix.texi:22203
+#: doc/guix.texi:25049
 msgid "When true, the server will act as a gateway for its clients."
 msgstr "Cuando sea verdadero, el servidor actuará como una pasarela para sus clientes."
 
 #. type: deftypevr
-#: doc/guix.texi:22208
+#: doc/guix.texi:25054
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} boolean client-to-client?"
 msgstr "{parámetro de @code{openvpn-server-configuration}} boolean client-to-client?"
 
 #. type: deftypevr
-#: doc/guix.texi:22210
+#: doc/guix.texi:25056
 msgid "When true, clients are allowed to talk to each other inside the VPN."
 msgstr "Cuando es verdadero, se permite la comunicación entre clientes dentro de la VPN."
 
 #. type: deftypevr
-#: doc/guix.texi:22215
+#: doc/guix.texi:25061
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} keepalive keepalive"
 msgstr "{parámetro de @code{openvpn-server-configuration}} keepalive keepalive"
 
 #. type: deftypevr
-#: doc/guix.texi:22221
+#: doc/guix.texi:25067
 msgid "Causes ping-like messages to be sent back and forth over the link so that each side knows when the other side has gone down.  @code{keepalive} requires a pair.  The first element is the period of the ping sending, and the second element is the timeout before considering the other side down."
 msgstr "Hace que se envíen mensajes tipo-ping en ambas direcciones a través del enlace de modo que cada extremo conozca si el otro extremo no está disponible. @code{keepalive} necesita un par. El primer elemento es el periodo de envío de ping, y el segundo elemento es el plazo máximo antes de considerar que el otro extremo no está disponible."
 
 #. type: deftypevr
-#: doc/guix.texi:22224
+#: doc/guix.texi:25070
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} number max-clients"
 msgstr "{parámetro de @code{openvpn-server-configuration}} number max-clients"
 
 #. type: deftypevr
-#: doc/guix.texi:22226
+#: doc/guix.texi:25072
 msgid "The maximum number of clients."
 msgstr "Número máximo de clientes."
 
 #. type: deftypevr
-#: doc/guix.texi:22231
+#: doc/guix.texi:25077
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} string status"
 msgstr "{parámetro de @code{openvpn-server-configuration}} string status"
 
 #. type: deftypevr
-#: doc/guix.texi:22234
+#: doc/guix.texi:25080
 msgid "The status file.  This file shows a small report on current connection.  It is truncated and rewritten every minute."
-msgstr "El fichero de estado. Este fichero muestra un pequeño informe sobre la conexión actual. Su contenido se borra y se reescribe cada minuto."
+msgstr "El archivo de estado. Este archivo muestra un pequeño informe sobre la conexión actual. Su contenido se borra y se reescribe cada minuto."
 
 #. type: deftypevr
-#: doc/guix.texi:22236
+#: doc/guix.texi:25082
 msgid "Defaults to @samp{\"/var/run/openvpn/status\"}."
 msgstr "El valor predeterminado es @samp{\"/var/run/openvpn/status\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:22239
+#: doc/guix.texi:25085
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} openvpn-ccd-list client-config-dir"
 msgstr "{parámetro de @code{openvpn-server-configuration}} lista-openvpn-ccd client-config-dir"
 
 #. type: deftypevr
-#: doc/guix.texi:22241
+#: doc/guix.texi:25087
 msgid "The list of configuration for some clients."
 msgstr "Lista de configuración para algunos clientes."
 
 #. type: deftypevr
-#: doc/guix.texi:22245
+#: doc/guix.texi:25091
 msgid "Available @code{openvpn-ccd-configuration} fields are:"
 msgstr "Los campos disponibles de @code{openvpn-ccd-configuration} son:"
 
 #. type: deftypevr
-#: doc/guix.texi:22246
+#: doc/guix.texi:25092
 #, no-wrap
 msgid "{@code{openvpn-ccd-configuration} parameter} string name"
 msgstr "{parámetro de @code{openvpn-ccd-configuration}} string name"
 
 #. type: deftypevr
-#: doc/guix.texi:22248
+#: doc/guix.texi:25094
 msgid "Client name."
 msgstr "Nombre del cliente."
 
 #. type: deftypevr
-#: doc/guix.texi:22250
+#: doc/guix.texi:25096
 msgid "Defaults to @samp{\"client\"}."
 msgstr "El valor predeterminado es @samp{\"client\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:22253
+#: doc/guix.texi:25099
 #, no-wrap
 msgid "{@code{openvpn-ccd-configuration} parameter} ip-mask iroute"
 msgstr "{parámetro de @code{openvpn-ccd-configuration}} ip-máscara iroute"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:22255
+#: doc/guix.texi:25101
 msgid "Client own network"
 msgstr "Red propia del cliente"
 
 #. type: deftypevr
-#: doc/guix.texi:22260
+#: doc/guix.texi:25106
 #, no-wrap
 msgid "{@code{openvpn-ccd-configuration} parameter} ip-mask ifconfig-push"
 msgstr "{parámetro de @code{openvpn-ccd-configuration}} ip-máscara ifconfig-push"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:22262
+#: doc/guix.texi:25108
 msgid "Client VPN IP."
 msgstr "IP de la VPN del cliente."
 
 #. type: cindex
-#: doc/guix.texi:22275
+#: doc/guix.texi:25121
 #, no-wrap
 msgid "NFS"
 msgstr "NFS"
 
 #. type: Plain text
-#: doc/guix.texi:22280
+#: doc/guix.texi:25126
 msgid "The @code{(gnu services nfs)} module provides the following services, which are most commonly used in relation to mounting or exporting directory trees as @dfn{network file systems} (NFS)."
-msgstr "El módulo @code{(gnu services nfs)} proporciona los siguientes servicios, que se usan habitualmente en relación con el montado o la exportación de árboles de directorios como @dfn{sistemas de ficheros en red} (NFS)."
+msgstr "El módulo @code{(gnu services nfs)} proporciona los siguientes servicios, que se usan habitualmente en relación con el montado o la exportación de árboles de directorios como @dfn{sistemas de archivos en red} (NFS)."
 
 #. type: Plain text
-#: doc/guix.texi:22284
+#: doc/guix.texi:25130
 msgid "While it is possible to use the individual components that together make up a Network File System service, we recommended to configure an NFS server with the @code{nfs-service-type}."
-msgstr "Mientras que es posible usar los componentes individuales de forma conjunta para proporcionar un servicio del sistema de ficheros en red NFS, recomendamos la configuración de un servidor NFS mediante @code{nfs-service-type}."
+msgstr "Mientras que es posible usar los componentes individuales de forma conjunta para proporcionar un servicio del sistema de archivos en red NFS, recomendamos la configuración de un servidor NFS mediante @code{nfs-service-type}."
 
 #. type: subsubheading
-#: doc/guix.texi:22285
+#: doc/guix.texi:25131
 #, no-wrap
 msgid "NFS Service"
 msgstr "Servicio NFS"
 
 #. type: cindex
-#: doc/guix.texi:22286
+#: doc/guix.texi:25132
 #, no-wrap
 msgid "NFS, server"
 msgstr "NFS, servidor"
 
 #. type: Plain text
-#: doc/guix.texi:22291
+#: doc/guix.texi:25137
 msgid "The NFS service takes care of setting up all NFS component services, kernel configuration file systems, and installs configuration files in the locations that NFS expects."
-msgstr "El servicio NFS se hace cargo de configurar todos los servicios de componentes de NFS, la configuración del núcleo de sistemas de ficheros e instala los ficheros de configuración en las rutas que NFS espera."
+msgstr "El servicio NFS se hace cargo de configurar todos los servicios de componentes de NFS, la configuración del núcleo de sistemas de archivos e instala los archivos de configuración en las rutas que NFS espera."
 
 #. type: defvr
-#: doc/guix.texi:22292
+#: doc/guix.texi:25138
 #, no-wrap
 msgid "{Scheme Variable} nfs-service-type"
 msgstr "{Variable Scheme} nfs-service-type"
 
 #. type: defvr
-#: doc/guix.texi:22294
+#: doc/guix.texi:25140
 msgid "A service type for a complete NFS server."
 msgstr "Este es el tipo de datos para un servidor NFS completo."
 
 #. type: deftp
-#: doc/guix.texi:22296
+#: doc/guix.texi:25142
 #, no-wrap
 msgid "{Data Type} nfs-configuration"
 msgstr "{Tipo de datos} nfs-configuration"
 
 #. type: deftp
-#: doc/guix.texi:22299
+#: doc/guix.texi:25145
 msgid "This data type represents the configuration of the NFS service and all of its subsystems."
 msgstr "Este tipo de datos representa la configuración del servicio NFS y todos sus subsistemas."
 
 #. type: deftp
-#: doc/guix.texi:22301
+#: doc/guix.texi:25147
 msgid "It has the following parameters:"
 msgstr "Tiene los siguientes parámetros:"
 
 #. type: item
-#: doc/guix.texi:22302 doc/guix.texi:22421 doc/guix.texi:22446
+#: doc/guix.texi:25148 doc/guix.texi:25273 doc/guix.texi:25298
 #, no-wrap
 msgid "@code{nfs-utils} (default: @code{nfs-utils})"
 msgstr "@code{nfs-utils} (predeterminado: @code{nfs-utils})"
 
 #. type: table
-#: doc/guix.texi:22304
+#: doc/guix.texi:25150
 msgid "The nfs-utils package to use."
 msgstr "El paquete nfs-utils usado."
 
 #. type: item
-#: doc/guix.texi:22305
+#: doc/guix.texi:25151
 #, no-wrap
 msgid "@code{nfs-versions} (default: @code{'(\"4.2\" \"4.1\" \"4.0\")})"
 msgstr "@code{nfs-versions} (predeterminadas: @code{'(\"4.2\" \"4.1\" \"4.0\")})"
 
 #. type: table
-#: doc/guix.texi:22308
+#: doc/guix.texi:25154
 msgid "If a list of string values is provided, the @command{rpc.nfsd} daemon will be limited to supporting the given versions of the NFS protocol."
 msgstr "Si se proporciona como valor una lista de cadenas, el daemon @command{rpc.nfsd} se limitará a la implementación de las versiones del protocolo NFS proporcionadas."
 
 #. type: item
-#: doc/guix.texi:22309
+#: doc/guix.texi:25155
 #, no-wrap
 msgid "@code{exports} (default: @code{'()})"
 msgstr "@code{exports} (predeterminada: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:22314
+#: doc/guix.texi:25160
 msgid "This is a list of directories the NFS server should export.  Each entry is a list consisting of two elements: a directory name and a string containing all options.  This is an example in which the directory @file{/export} is served to all NFS clients as a read-only share:"
 msgstr "Una lista de directorios que el servidor NFS debe exportar. Cada entrada es una lista que consiste en dos elementos: un nombre de directorio y una cadena que contiene todas las opciones. Este es un ejemplo en el que el directorio @file{/exportado} se proporciona a todos los clientes NFS en modo de solo-lectura:"
 
 #. type: lisp
-#: doc/guix.texi:22320
+#: doc/guix.texi:25166
 #, no-wrap
 msgid ""
 "(nfs-configuration\n"
@@ -43598,288 +48661,310 @@ msgstr ""
 "     \"*(ro,insecure,no_subtree_check,crossmnt,fsid=0)\"))))\n"
 
 #. type: item
-#: doc/guix.texi:22322
+#: doc/guix.texi:25168
 #, no-wrap
 msgid "@code{rpcmountd-port} (default: @code{#f})"
 msgstr "@code{rpcmountd-port} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:22324
+#: doc/guix.texi:25170
 msgid "The network port that the @command{rpc.mountd} daemon should use."
 msgstr "El puerto de red que el daemon @command{rpc.mountd} debe usar."
 
 #. type: item
-#: doc/guix.texi:22325
+#: doc/guix.texi:25171
 #, no-wrap
 msgid "@code{rpcstatd-port} (default: @code{#f})"
 msgstr "@code{rpcstatd-port} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:22327
+#: doc/guix.texi:25173
 msgid "The network port that the @command{rpc.statd} daemon should use."
 msgstr "El puerto de red que el daemon @command{rpc.statd} debe usar."
 
 #. type: item
-#: doc/guix.texi:22328 doc/guix.texi:22370
+#: doc/guix.texi:25174 doc/guix.texi:25222
 #, no-wrap
 msgid "@code{rpcbind} (default: @code{rpcbind})"
 msgstr "@code{rpcbind} (predeterminado: @code{rpcbind})"
 
 #. type: table
-#: doc/guix.texi:22330 doc/guix.texi:22372
+#: doc/guix.texi:25176 doc/guix.texi:25224
 msgid "The rpcbind package to use."
 msgstr "El paquete rpcbind usado."
 
 #. type: item
-#: doc/guix.texi:22331
+#: doc/guix.texi:25177
 #, no-wrap
 msgid "@code{idmap-domain} (default: @code{\"localdomain\"})"
 msgstr "@code{idmap-domain} (predeterminado: @code{\"localdomain\"})"
 
 #. type: table
-#: doc/guix.texi:22333
+#: doc/guix.texi:25179
 msgid "The local NFSv4 domain name."
 msgstr "El nombre de dominio local de NFSv4."
 
 #. type: item
-#: doc/guix.texi:22334
+#: doc/guix.texi:25180
 #, no-wrap
 msgid "@code{nfsd-port} (default: @code{2049})"
 msgstr "@code{nfsd-port} (predeterminado: @code{2049})"
 
 #. type: table
-#: doc/guix.texi:22336
+#: doc/guix.texi:25182
 msgid "The network port that the @command{nfsd} daemon should use."
 msgstr "El puerto de red que el daemon @command{nfsd} debe usar."
 
 #. type: item
-#: doc/guix.texi:22337
+#: doc/guix.texi:25183
 #, no-wrap
 msgid "@code{nfsd-threads} (default: @code{8})"
 msgstr "@code{nfsd-threads} (predeterminado: @code{8})"
 
 #. type: table
-#: doc/guix.texi:22339
+#: doc/guix.texi:25185
 msgid "The number of threads used by the @command{nfsd} daemon."
 msgstr "Número de hilos usados en el daemon @command{nfsd}."
 
 #. type: item
-#: doc/guix.texi:22340 doc/guix.texi:22424 doc/guix.texi:22449
+#: doc/guix.texi:25186
+#, no-wrap
+msgid "@code{nfsd-tcp?} (default: @code{#t})"
+msgstr "@code{nfsd-tcp?} (predeterminado: @code{#t})"
+
+#. type: table
+#: doc/guix.texi:25188
+msgid "Whether the @command{nfsd} daemon should listen on a TCP socket."
+msgstr "Determina si el daemon @command{nfsd} debe escuchar en un puerto TCP."
+
+#. type: item
+#: doc/guix.texi:25189
+#, no-wrap
+msgid "@code{nfsd-udp?} (default: @code{#f})"
+msgstr "@code{nfsd-udp?} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:25191
+msgid "Whether the @command{nfsd} daemon should listen on a UDP socket."
+msgstr "Determina si el daemon @command{nfsd} debe escuchar en un puerto UDP."
+
+#. type: item
+#: doc/guix.texi:25192 doc/guix.texi:25276 doc/guix.texi:25301
 #, no-wrap
 msgid "@code{pipefs-directory} (default: @code{\"/var/lib/nfs/rpc_pipefs\"})"
 msgstr "@code{pipefs-directory} (predeterminado: @code{\"/var/lib/nfs/rpc_pipefs\"})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:22342 doc/guix.texi:22426 doc/guix.texi:22451
+#: doc/guix.texi:25194 doc/guix.texi:25278 doc/guix.texi:25303
 msgid "The directory where the pipefs file system is mounted."
-msgstr "El directorio donde el sistema de ficheros pipefs debe montarse."
+msgstr "El directorio donde el sistema de archivos pipefs debe montarse."
 
 #. type: item
-#: doc/guix.texi:22343
+#: doc/guix.texi:25195
 #, no-wrap
 msgid "@code{debug} (default: @code{'()\"})"
 msgstr "@code{debug} (predeterminada: @code{'()\"})"
 
 #. type: table
-#: doc/guix.texi:22347
+#: doc/guix.texi:25199
 msgid "A list of subsystems for which debugging output should be enabled.  This is a list of symbols.  Any of these symbols are valid: @code{nfsd}, @code{nfs}, @code{rpc}, @code{idmap}, @code{statd}, or @code{mountd}."
 msgstr "Una lista de subsistemas para los cuales debe activarse la salida de depuración. Es una lista de símbolos. Cualquiera de estos símbolos son válidos: @code{nfsd}, @code{nfs}, @code{rpc}, @code{idmap}, @code{statd} o @code{mountd}."
 
 #. type: Plain text
-#: doc/guix.texi:22352
+#: doc/guix.texi:25204
 msgid "If you don't need a complete NFS service or prefer to build it yourself you can use the individual component services that are documented below."
 msgstr "Si no necesita un servicio NFS completo o prefiere construirlo por su cuenta puede usar los componentes individuales que se documentan a continuación."
 
 #. type: subsubheading
-#: doc/guix.texi:22353
+#: doc/guix.texi:25205
 #, no-wrap
 msgid "RPC Bind Service"
 msgstr "Servicio RPC Bind"
 
 #. type: cindex
-#: doc/guix.texi:22354
+#: doc/guix.texi:25206
 #, no-wrap
 msgid "rpcbind"
 msgstr "rpcbind"
 
 #. type: Plain text
-#: doc/guix.texi:22360
+#: doc/guix.texi:25212
 msgid "The RPC Bind service provides a facility to map program numbers into universal addresses.  Many NFS related services use this facility.  Hence it is automatically started when a dependent service starts."
 msgstr "El servicio RPC Bind proporciona una forma de asociar números de programa con direcciones universales. Muchos servicios relacionados con NFS usan esta característica. De ahí que se inicie automáticamente cuando un servicio dependiente se inicia."
 
 #. type: defvr
-#: doc/guix.texi:22361
+#: doc/guix.texi:25213
 #, no-wrap
 msgid "{Scheme Variable} rpcbind-service-type"
 msgstr "{Variable Scheme} rpcbind-service-type"
 
 #. type: defvr
-#: doc/guix.texi:22363
+#: doc/guix.texi:25215
 msgid "A service type for the RPC portmapper daemon."
 msgstr "Un tipo de servicio para el daemon de asignación de puertos RPC."
 
 #. type: deftp
-#: doc/guix.texi:22366
+#: doc/guix.texi:25218
 #, no-wrap
 msgid "{Data Type} rpcbind-configuration"
 msgstr "{Tipo de datos} rpcbind-configuration"
 
 #. type: deftp
-#: doc/guix.texi:22369
+#: doc/guix.texi:25221
 msgid "Data type representing the configuration of the RPC Bind Service.  This type has the following parameters:"
 msgstr "Tipo de datos que representa la configuración del servicio RPC Bind. Este tipo tiene los siguientes parámetros:"
 
 #. type: item
-#: doc/guix.texi:22373
+#: doc/guix.texi:25225
 #, no-wrap
 msgid "@code{warm-start?} (default: @code{#t})"
 msgstr "@code{warm-start?} (predeterminado: @code{#t})"
 
 #. type: table
-#: doc/guix.texi:22377
+#: doc/guix.texi:25229
 msgid "If this parameter is @code{#t}, then the daemon will read a state file on startup thus reloading state information saved by a previous instance."
-msgstr "Si este parámetro es @code{#t}, el daemon leerá el fichero de estado durante el arranche, por tanto recargando la información del estado almacenada por la instancia previa."
+msgstr "Si este parámetro es @code{#t}, el daemon leerá el archivo de estado durante el arranche, por tanto recargando la información del estado almacenada por la instancia previa."
 
 #. type: subsubheading
-#: doc/guix.texi:22381
+#: doc/guix.texi:25233
 #, no-wrap
 msgid "Pipefs Pseudo File System"
-msgstr "Pseudo-sistema de ficheros pipefs"
+msgstr "Pseudo-sistema de archivos pipefs"
 
 #. type: cindex
-#: doc/guix.texi:22382
+#: doc/guix.texi:25234
 #, no-wrap
 msgid "pipefs"
 msgstr "pipefs"
 
 #. type: cindex
-#: doc/guix.texi:22383
+#: doc/guix.texi:25235
 #, no-wrap
 msgid "rpc_pipefs"
 msgstr "rpc_pipefs"
 
 #. type: Plain text
-#: doc/guix.texi:22387
+#: doc/guix.texi:25239
 msgid "The pipefs file system is used to transfer NFS related data between the kernel and user space programs."
-msgstr "El sistema de ficheros pipefs se usa para transferir datos relacionados con NFS entre el núcleo y los programas de espacio de usuaria."
+msgstr "El sistema de archivos pipefs se usa para transferir datos relacionados con NFS entre el núcleo y los programas de espacio de usuaria."
 
 #. type: defvr
-#: doc/guix.texi:22388
+#: doc/guix.texi:25240
 #, no-wrap
 msgid "{Scheme Variable} pipefs-service-type"
 msgstr "{Variable Scheme} pipefs-service-type"
 
 #. type: defvr
-#: doc/guix.texi:22390
+#: doc/guix.texi:25242
 msgid "A service type for the pipefs pseudo file system."
-msgstr "Un tipo de servicio para el pseudo-sistema de ficheros pipefs."
+msgstr "Un tipo de servicio para el pseudo-sistema de archivos pipefs."
 
 #. type: deftp
-#: doc/guix.texi:22392
+#: doc/guix.texi:25244
 #, no-wrap
 msgid "{Data Type} pipefs-configuration"
 msgstr "{Tipo de datos} pipefs-configuration"
 
 #. type: deftp
-#: doc/guix.texi:22395
+#: doc/guix.texi:25247
 msgid "Data type representing the configuration of the pipefs pseudo file system service.  This type has the following parameters:"
-msgstr "Tipo de datos que representa la configuración del servicio del pseudo-sistema de ficheros pipefs. Este tipo tiene los siguientes parámetros:"
+msgstr "Tipo de datos que representa la configuración del servicio del pseudo-sistema de archivos pipefs. Este tipo tiene los siguientes parámetros:"
 
 #. type: item
-#: doc/guix.texi:22396
+#: doc/guix.texi:25248
 #, no-wrap
 msgid "@code{mount-point} (default: @code{\"/var/lib/nfs/rpc_pipefs\"})"
 msgstr "@code{mount-point} (predeterminado: @code{\"/var/lib/nfs/rpc_pipefs\"})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:22398
+#: doc/guix.texi:25250
 msgid "The directory to which the file system is to be attached."
-msgstr "El directorio al que se debe asociar el sistema de ficheros."
+msgstr "El directorio al que se debe asociar el sistema de archivos."
 
 #. type: subsubheading
-#: doc/guix.texi:22402
+#: doc/guix.texi:25254
 #, no-wrap
 msgid "GSS Daemon Service"
 msgstr "Servicio del daemon GSS"
 
 #. type: cindex
-#: doc/guix.texi:22403
+#: doc/guix.texi:25255
 #, no-wrap
 msgid "GSSD"
 msgstr "GSSD"
 
 #. type: cindex
-#: doc/guix.texi:22404
+#: doc/guix.texi:25256
 #, no-wrap
 msgid "GSS"
 msgstr "GSS"
 
 #. type: cindex
-#: doc/guix.texi:22405
+#: doc/guix.texi:25257
 #, no-wrap
 msgid "global security system"
 msgstr "sistema de seguridad global (GSS)"
 
 # FUZZY
 #. type: Plain text
-#: doc/guix.texi:22412
+#: doc/guix.texi:25264
 msgid "The @dfn{global security system} (GSS) daemon provides strong security for RPC based protocols.  Before exchanging RPC requests an RPC client must establish a security context.  Typically this is done using the Kerberos command @command{kinit} or automatically at login time using PAM services (@pxref{Kerberos Services})."
 msgstr "El daemon @dfn{sistema de seguridad global} (GSS) proporciona fuertes garantías de seguridad para protocolos basados en RPC. Antes de intercambiar peticiones RPC el cliente debe establecer un contexto de seguridad. Habitualmente esto se lleva a cabo con el uso de la orden @command{kinit}o automáticamente durante el ingreso al sistema mediante el uso de servicios PAM (@pxref{Kerberos Services})."
 
 #. type: defvr
-#: doc/guix.texi:22413
+#: doc/guix.texi:25265
 #, no-wrap
 msgid "{Scheme Variable} gss-service-type"
 msgstr "{Variable Scheme} gss-service-type"
 
 #. type: defvr
-#: doc/guix.texi:22415
+#: doc/guix.texi:25267
 msgid "A service type for the Global Security System (GSS) daemon."
 msgstr "Un tipo de servicio para el daemon del sistema de seguridad global (GSS)."
 
 #. type: deftp
-#: doc/guix.texi:22417
+#: doc/guix.texi:25269
 #, no-wrap
 msgid "{Data Type} gss-configuration"
 msgstr "{Tipo de datos} gss-configuration"
 
 #. type: deftp
-#: doc/guix.texi:22420
+#: doc/guix.texi:25272
 msgid "Data type representing the configuration of the GSS daemon service.  This type has the following parameters:"
 msgstr "Tipo de datos que representa la configuración del servicio del daemon GSS. Este tipo tiene los siguientes parámetros:"
 
 #. type: table
-#: doc/guix.texi:22423
+#: doc/guix.texi:25275
 msgid "The package in which the @command{rpc.gssd} command is to be found."
 msgstr "Paquete en el que se encuentra la orden @command{rpc.gssd}."
 
 #. type: subsubheading
-#: doc/guix.texi:22431
+#: doc/guix.texi:25283
 #, no-wrap
 msgid "IDMAP Daemon Service"
 msgstr "Servicio del daemon IDMAP"
 
 #. type: cindex
-#: doc/guix.texi:22432
+#: doc/guix.texi:25284
 #, no-wrap
 msgid "idmapd"
 msgstr "idmapd"
 
 #. type: cindex
-#: doc/guix.texi:22433
+#: doc/guix.texi:25285
 #, no-wrap
 msgid "name mapper"
 msgstr "servicio de asociación de nombres"
 
 #. type: Plain text
-#: doc/guix.texi:22437
+#: doc/guix.texi:25289
 msgid "The idmap daemon service provides mapping between user IDs and user names.  Typically it is required in order to access file systems mounted via NFSv4."
-msgstr "El servicio del daemon idmap proporciona una asociación entre identificadores de usuaria y nombres de usuaria. Habitualmente es necesario para acceder sistemas de ficheros montados con NFSv4."
+msgstr "El servicio del daemon idmap proporciona una asociación entre identificadores de usuaria y nombres de usuaria. Habitualmente es necesario para acceder sistemas de archivos montados con NFSv4."
 
 #. type: defvr
-#: doc/guix.texi:22438
+#: doc/guix.texi:25290
 #, no-wrap
 msgid "{Scheme Variable} idmap-service-type"
 msgstr "{Variable Scheme} idmap-service-type"
@@ -43887,78 +48972,78 @@ msgstr "{Variable Scheme} idmap-service-type"
 # FUZZY
 # TODO (MAAV): Mejorar traducción...
 #. type: defvr
-#: doc/guix.texi:22440
+#: doc/guix.texi:25292
 msgid "A service type for the Identity Mapper (IDMAP) daemon."
 msgstr "Un tipo de servicio para el daemon de asociación de identidades (IDMAP)."
 
 #. type: deftp
-#: doc/guix.texi:22442
+#: doc/guix.texi:25294
 #, no-wrap
 msgid "{Data Type} idmap-configuration"
 msgstr "{Tipo de datos} idmap-configuration"
 
 #. type: deftp
-#: doc/guix.texi:22445
+#: doc/guix.texi:25297
 msgid "Data type representing the configuration of the IDMAP daemon service.  This type has the following parameters:"
 msgstr "Tipo de datos que representa la configuración del servicio del daemon IDMAP. Este tipo tiene los siguientes parámetros:"
 
 #. type: table
-#: doc/guix.texi:22448
+#: doc/guix.texi:25300
 msgid "The package in which the @command{rpc.idmapd} command is to be found."
 msgstr "Paquete en el que se encuentra la orden @command{rpc.idmapd}."
 
 #. type: item
-#: doc/guix.texi:22452
+#: doc/guix.texi:25304
 #, no-wrap
 msgid "@code{domain} (default: @code{#f})"
 msgstr "@code{domain} (predeterminado: @code{#f})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:22456
+#: doc/guix.texi:25308
 msgid "The local NFSv4 domain name.  This must be a string or @code{#f}.  If it is @code{#f} then the daemon will use the host's fully qualified domain name."
 msgstr "El nombre de dominio local de NFSv4. Debe ser una cadena o @code{#f}. Si es @code{#f} el daemon usará el nombre de dominio totalmente cualificado de la máquina."
 
 #. type: item
-#: doc/guix.texi:22457
+#: doc/guix.texi:25309
 #, no-wrap
 msgid "@code{verbosity} (default: @code{0})"
 msgstr "@code{verbosity} (predeterminado: @code{0})"
 
 # FUZZY FUZZY
 #. type: table
-#: doc/guix.texi:22459
+#: doc/guix.texi:25311
 msgid "The verbosity level of the daemon."
 msgstr "El nivel de información de los mensajes del daemon."
 
 #. type: Plain text
-#: doc/guix.texi:22470
+#: doc/guix.texi:25322
 msgid "@uref{https://git.savannah.gnu.org/cgit/guix/guix-cuirass.git, Cuirass} is a continuous integration tool for Guix.  It can be used both for development and for providing substitutes to others (@pxref{Substitutes})."
 msgstr "@uref{https://git.savannah.gnu.org/cgit/guix/guix-cuirass.git, Cuirass} es una herramienta de integración continua para Guix. Puede usarse tanto para el desarrollo como para proporcionar sustituciones a otras personas (@pxref{Substitutes})."
 
 #. type: Plain text
-#: doc/guix.texi:22472
+#: doc/guix.texi:25324
 msgid "The @code{(gnu services cuirass)} module provides the following service."
 msgstr "El módulo @code{(gnu services cuirass)} proporciona el siguiente servicio."
 
 #. type: defvr
-#: doc/guix.texi:22473
+#: doc/guix.texi:25325
 #, no-wrap
 msgid "{Scheme Procedure} cuirass-service-type"
 msgstr "{Procedimiento Scheme} cuirass-service-type"
 
 #. type: defvr
-#: doc/guix.texi:22476
+#: doc/guix.texi:25328
 msgid "The type of the Cuirass service.  Its value must be a @code{cuirass-configuration} object, as described below."
 msgstr "El tipo del servicio Cuirass. Su valor debe ser un objeto @code{cuirass-configuration}, como se describe a continuación."
 
 #. type: Plain text
-#: doc/guix.texi:22483
-msgid "To add build jobs, you have to set the @code{specifications} field of the configuration.  Here is an example of a service that polls the Guix repository and builds the packages from a manifest.  Some of the packages are defined in the @code{\"custom-packages\"} input, which is the equivalent of @code{GUIX_PACKAGE_PATH}."
-msgstr "Para añadir trabajos de construcción, debe proporcionarlos en el campo @code{specifications} de la configuración. A continuación se encuentra un ejemplo de un servicio que consulta el repositorio de Guix y construye los paquetes de un manifiesto. Algunos de los paquetes se definen en la entrada @code{\"custom-packages\"}, que es el equivalente de @code{GUIX_PACKAGE_PATH}."
+#: doc/guix.texi:25335
+msgid "To add build jobs, you have to set the @code{specifications} field of the configuration.  Here is an example of a service that polls the Guix repository and builds the packages from a manifest.  Some of the packages are defined in the @code{\"custom-packages\"} input, which is the equivalent of @env{GUIX_PACKAGE_PATH}."
+msgstr "Para añadir trabajos de construcción, debe proporcionarlos en el campo @code{specifications} de la configuración. A continuación se encuentra un ejemplo de un servicio que consulta el repositorio de Guix y construye los paquetes de un manifiesto. Algunos de los paquetes se definen en la entrada @code{\"custom-packages\"}, que es el equivalente de @env{GUIX_PACKAGE_PATH}."
 
 #. type: lisp
-#: doc/guix.texi:22511
+#: doc/guix.texi:25363
 #, no-wrap
 msgid ""
 "(define %cuirass-specs\n"
@@ -44018,7 +49103,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:22515
+#: doc/guix.texi:25367
 #, no-wrap
 msgid ""
 "(service cuirass-service-type\n"
@@ -44030,1126 +49115,1151 @@ msgstr ""
 "          (specifications %especificacion-de-cuirass)))\n"
 
 #. type: Plain text
-#: doc/guix.texi:22520
+#: doc/guix.texi:25372
 msgid "While information related to build jobs is located directly in the specifications, global settings for the @command{cuirass} process are accessible in other @code{cuirass-configuration} fields."
 msgstr "Mientras que la información de los trabajos de construcción se encuentra directamente en las especificaciones, la configuración global del proceso @command{cuirass} está accesible en otros campos de @code{cuirass-configuration}."
 
 #. type: deftp
-#: doc/guix.texi:22521
+#: doc/guix.texi:25373
 #, no-wrap
 msgid "{Data Type} cuirass-configuration"
 msgstr "{Tipo de datos} cuirass-configuration"
 
 #. type: deftp
-#: doc/guix.texi:22523
+#: doc/guix.texi:25375
 msgid "Data type representing the configuration of Cuirass."
 msgstr "Tipo de datos que representa la configuración de Cuirass."
 
 #. type: item
-#: doc/guix.texi:22525
+#: doc/guix.texi:25377
 #, no-wrap
 msgid "@code{log-file} (default: @code{\"/var/log/cuirass.log\"})"
 msgstr "@code{log-file} (predeterminado: @code{\"/var/log/cuirass.log\"})"
 
 #. type: table
-#: doc/guix.texi:22527
+#: doc/guix.texi:25379
 msgid "Location of the log file."
-msgstr "Localización del fichero de registro."
+msgstr "Localización del archivo de registro."
 
 #. type: item
-#: doc/guix.texi:22528
+#: doc/guix.texi:25380
 #, no-wrap
 msgid "@code{web-log-file} (default: @code{\"/var/log/cuirass-web.log\"})"
 msgstr "@code{web-log-file} (predeterminado: @code{\"/var/log/cuirass-web.log\"})"
 
 #. type: table
-#: doc/guix.texi:22530
+#: doc/guix.texi:25382
 msgid "Location of the log file used by the web interface."
-msgstr "Localización del fichero de registro usado por la interfaz web."
+msgstr "Localización del archivo de registro usado por la interfaz web."
 
 #. type: item
-#: doc/guix.texi:22531
+#: doc/guix.texi:25383
+#, no-wrap
+msgid "@code{queries-log-file} (default: @code{#f})"
+msgstr "@code{queries-log-file} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:25386
+msgid "Location of the SQL queries log file. By default, SQL queries logging is disabled."
+msgstr "Localización del archivo de registro de las consultas SQL. El registro de consultas SQL no se activa de manera predeterminada."
+
+#. type: item
+#: doc/guix.texi:25387
+#, no-wrap
+msgid "@code{web-queries-log-file} (default: @code{#f})"
+msgstr "@code{web-queries-log-file} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:25390
+msgid "Location of the web SQL queries log file. By default, web SQL queries logging is disabled."
+msgstr "Localización del archivo de registro de consultas SQL web. El registro de consultas SQL web no se activa de manera predeterminada."
+
+#. type: item
+#: doc/guix.texi:25391
 #, no-wrap
 msgid "@code{cache-directory} (default: @code{\"/var/cache/cuirass\"})"
 msgstr "@code{cache-directory} (predeterminado: @code{\"/var/cache/cuirass\"})"
 
 #. type: table
-#: doc/guix.texi:22533
+#: doc/guix.texi:25393
 msgid "Location of the repository cache."
 msgstr "Localización de la caché del repositorio."
 
 #. type: item
-#: doc/guix.texi:22534
+#: doc/guix.texi:25394
 #, no-wrap
 msgid "@code{user} (default: @code{\"cuirass\"})"
 msgstr "@code{user} (predeterminado: @code{\"cuirass\"})"
 
 #. type: table
-#: doc/guix.texi:22536
+#: doc/guix.texi:25396
 msgid "Owner of the @code{cuirass} process."
 msgstr "Propietaria del proceso @code{cuirass}."
 
 #. type: item
-#: doc/guix.texi:22537
+#: doc/guix.texi:25397
 #, no-wrap
 msgid "@code{group} (default: @code{\"cuirass\"})"
 msgstr "@code{group} (predeterminado: @code{\"cuirass\"})"
 
 #. type: table
-#: doc/guix.texi:22539
+#: doc/guix.texi:25399
 msgid "Owner's group of the @code{cuirass} process."
 msgstr "Grupo propietario del proceso @code{cuirass}."
 
 #. type: item
-#: doc/guix.texi:22540
+#: doc/guix.texi:25400
 #, no-wrap
 msgid "@code{interval} (default: @code{60})"
 msgstr "@code{interval} (predeterminado: @code{60})"
 
 #. type: table
-#: doc/guix.texi:22543
+#: doc/guix.texi:25403
 msgid "Number of seconds between the poll of the repositories followed by the Cuirass jobs."
 msgstr "Número de segundos entre las consulta de repositorios seguida de los trabajos de Cuirass."
 
 #. type: item
-#: doc/guix.texi:22544
+#: doc/guix.texi:25404
 #, no-wrap
 msgid "@code{database} (default: @code{\"/var/lib/cuirass/cuirass.db\"})"
 msgstr "@code{database} (predeterminada: @code{\"/var/lib/cuirass/cuirass.db\"})"
 
 #. type: table
-#: doc/guix.texi:22547
+#: doc/guix.texi:25407
 msgid "Location of sqlite database which contains the build results and previously added specifications."
 msgstr "Ruta de la base de datos sqlite que contiene los resultados de construcción y las especificaciones añadidas previamente."
 
 #. type: item
-#: doc/guix.texi:22548
+#: doc/guix.texi:25408
 #, no-wrap
 msgid "@code{ttl} (default: @code{(* 30 24 3600)})"
 msgstr "@code{ttl} (predeterminado: @code{(* 30 24 3600)})"
 
 #. type: table
-#: doc/guix.texi:22552
+#: doc/guix.texi:25412
 msgid "Specifies the time-to-live (TTL) in seconds of garbage collector roots that are registered for build results.  This means that build results are protected from garbage collection for at least @var{ttl} seconds."
 msgstr "Especifica el tiempo de vida (TTL) en segundos de las raíces del recolector de basura que se registran con resultados de construcciones. Esto significa que los resultados de las construcciones se protegen de la recolección de basura al menos @var{ttl} segundos."
 
 #. type: item
-#: doc/guix.texi:22553
+#: doc/guix.texi:25413
 #, no-wrap
 msgid "@code{port} (default: @code{8081})"
 msgstr "@code{port} (predeterminado: @code{8081})"
 
 #. type: table
-#: doc/guix.texi:22555
+#: doc/guix.texi:25415
 msgid "Port number used by the HTTP server."
 msgstr "Número de puerto usado por el servidor HTTP."
 
 #. type: table
-#: doc/guix.texi:22559
+#: doc/guix.texi:25419
 msgid "Listen on the network interface for @var{host}.  The default is to accept connections from localhost."
 msgstr "Escucha en la interfaz de red de la dirección @var{host}. El comportamiento predeterminado es aceptar conexiones desde la red local."
 
 #. type: item
-#: doc/guix.texi:22560
+#: doc/guix.texi:25420
 #, no-wrap
 msgid "@code{specifications} (default: @code{#~'()})"
 msgstr "@code{specifications} (predeterminada: @code{#~'()})"
 
 #. type: table
-#: doc/guix.texi:22566
+#: doc/guix.texi:25426
 msgid "A gexp (@pxref{G-Expressions}) that evaluates to a list of specifications, where a specification is an association list (@pxref{Associations Lists,,, guile, GNU Guile Reference Manual}) whose keys are keywords (@code{#:keyword-example}) as shown in the example above."
 msgstr "Una expresión-G (@pxref{G-Expressions}) que evalúa a una lista de especificaciones, donde una especificación es una lista asociativa (@pxref{Associations Lists,,, guile, GNU Guile Reference Manual}) cuyas claves son palabras claves (@code{#:ejemplo-de-palabra-clave}) como se muestra en el ejemplo anterior."
 
 #. type: item
-#: doc/guix.texi:22567
+#: doc/guix.texi:25427
 #, no-wrap
 msgid "@code{use-substitutes?} (default: @code{#f})"
 msgstr "@code{use-substitutes?} (predeterminado: @code{#f})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:22570
+#: doc/guix.texi:25430
 msgid "This allows using substitutes to avoid building every dependencies of a job from source."
 msgstr "Permite el uso de sustituciones para evitar la construcción desde las fuentes de todas las dependencias de un trabajo."
 
 #. type: item
-#: doc/guix.texi:22571 doc/guix.texi:27869
+#: doc/guix.texi:25431 doc/guix.texi:32053
 #, no-wrap
 msgid "@code{one-shot?} (default: @code{#f})"
 msgstr "@code{one-shot?} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:22573
+#: doc/guix.texi:25433
 msgid "Only evaluate specifications and build derivations once."
 msgstr "Evalúa las especificaciones y construye las derivaciones solo una vez."
 
 #. type: item
-#: doc/guix.texi:22574
+#: doc/guix.texi:25434
 #, no-wrap
 msgid "@code{fallback?} (default: @code{#f})"
 msgstr "@code{fallback?} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:22577
+#: doc/guix.texi:25437
 msgid "When substituting a pre-built binary fails, fall back to building packages locally."
 msgstr "Cuando la sustitución de un binario preconstruido falle, se intentará la construcción local de los paquetes."
 
 #. type: table
-#: doc/guix.texi:22580
+#: doc/guix.texi:25440
 msgid "Extra options to pass when running the Cuirass processes."
 msgstr "Opciones adicionales proporcionadas a los procesos de Cuirass."
 
 #. type: item
-#: doc/guix.texi:22581
+#: doc/guix.texi:25441
 #, no-wrap
 msgid "@code{cuirass} (default: @code{cuirass})"
 msgstr "@code{cuirass} (predeterminado: @code{cuirass})"
 
 #. type: table
-#: doc/guix.texi:22583
+#: doc/guix.texi:25443
 msgid "The Cuirass package to use."
 msgstr "El paquete Cuirass usado."
 
 #. type: cindex
-#: doc/guix.texi:22589
+#: doc/guix.texi:25449
 #, no-wrap
 msgid "tlp"
 msgstr "tlp"
 
 #. type: cindex
-#: doc/guix.texi:22590
+#: doc/guix.texi:25450
 #, no-wrap
 msgid "power management with TLP"
 msgstr "gestión de energía con TLP"
 
 #. type: subsubheading
-#: doc/guix.texi:22591
+#: doc/guix.texi:25451
 #, no-wrap
 msgid "TLP daemon"
 msgstr "Daemon TLP"
 
 #. type: Plain text
-#: doc/guix.texi:22595
+#: doc/guix.texi:25455
 msgid "The @code{(gnu services pm)} module provides a Guix service definition for the Linux power management tool TLP."
 msgstr "El módulo @code{(gnu services pm)} proporciona una definición de servicio Guix para la herramienta de gestión de energía de Linux TLP."
 
 #. type: Plain text
-#: doc/guix.texi:22601
+#: doc/guix.texi:25461
 msgid "TLP enables various powersaving modes in userspace and kernel.  Contrary to @code{upower-service}, it is not a passive, monitoring tool, as it will apply custom settings each time a new power source is detected.  More information can be found at @uref{https://linrunner.de/en/tlp/tlp.html, TLP home page}."
 msgstr "TLP activa varios modos de ahorro de energía en el núcleo y en espacio de usuaria. Al contrario que @code{upower-service}, no es una herramienta de monitorización pasiva, puesto que aplicará una nueva configuración personalizada cada vez que se detecte una nueva fuente de energía/alimentación. Puede encontrar más información en @uref{https://linrunner.de/en/tlp/tlp.html, la página de TLP}."
 
 #. type: deffn
-#: doc/guix.texi:22602
+#: doc/guix.texi:25462
 #, no-wrap
 msgid "{Scheme Variable} tlp-service-type"
 msgstr "{Variable Scheme} tlp-service-type"
 
 #. type: deffn
-#: doc/guix.texi:22606
-msgid "The service type for the TLP tool.  Its value should be a valid TLP configuration (see below).  To use the default settings, simply write:"
-msgstr "El tipo de servicio para la herramienta TLP. Su valor debe ser una configuración de TLP válida (véase a continuación). Para usar la configuración predeterminada, simplemente escriba:"
+#: doc/guix.texi:25466
+msgid "The service type for the TLP tool.  The default settings are optimised for battery life on most systems, but you can tweak them to your heart's content by adding a valid @code{tlp-configuration}:"
+msgstr "EL tipo de servicio para la herramienta TLP. La configuración predeterminada está optimizada para la vida de la batería en la mayoría de los sistemas, pero puede modificarla al completo con las opciones que desee proporcionando un objeto @code{tlp-configuration} válido:"
 
 #. type: lisp
-#: doc/guix.texi:22608
+#: doc/guix.texi:25471
 #, no-wrap
-msgid "(service tlp-service-type)\n"
-msgstr "(service tlp-service-type)\n"
-
-#. type: Plain text
-#: doc/guix.texi:22613
-msgid "By default TLP does not need much configuration but most TLP parameters can be tweaked using @code{tlp-configuration}."
-msgstr "De manera predeterminada TLP no necesita mucha configuración, pero los parámetros de TLP se pueden ajustar mediante el uso de @code{tlp-configuration}."
+msgid ""
+"(service tlp-service-type\n"
+"         (tlp-configuration\n"
+"          (cpu-scaling-governor-on-ac (list \"performance\"))\n"
+"          (sched-powersave-on-bat? #t)))\n"
+msgstr ""
+"(service tlp-service-type\n"
+"         (tlp-configuration\n"
+"          (cpu-scaling-governor-on-ac (list \"performance\"))\n"
+"          (sched-powersave-on-bat? #t)))\n"
 
 #. type: Plain text
-#: doc/guix.texi:22619
+#: doc/guix.texi:25479
 msgid "Each parameter definition is preceded by its type; for example, @samp{boolean foo} indicates that the @code{foo} parameter should be specified as a boolean.  Types starting with @code{maybe-} denote parameters that won't show up in TLP config file when their value is @code{'disabled}."
-msgstr "El tipo de cada parámetro antecede la definición del mismo; por ejemplo, @samp{boolean foo} indica que el parámetro @code{foo} debe especificarse como un valor lógico booleano. Los tipos que empiezan con @code{maybe-} indican parámetros que no aparecerán en el fichero de configuración de TLP cuando su valor sea @code{'disabled}."
+msgstr "El tipo de cada parámetro antecede la definición del mismo; por ejemplo, @samp{boolean foo} indica que el parámetro @code{foo} debe especificarse como un valor lógico booleano. Los tipos que empiezan con @code{maybe-} indican parámetros que no aparecerán en el archivo de configuración de TLP cuando su valor sea @code{'disabled}."
 
 #. type: Plain text
-#: doc/guix.texi:22629
+#: doc/guix.texi:25489
 msgid "Available @code{tlp-configuration} fields are:"
 msgstr "Los campos disponibles de @code{tlp-configuration} son:"
 
 #. type: deftypevr
-#: doc/guix.texi:22630
+#: doc/guix.texi:25490
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} package tlp"
 msgstr "{parámetro de @code{tlp-configuration}} package tlp"
 
 #. type: deftypevr
-#: doc/guix.texi:22632
+#: doc/guix.texi:25492
 msgid "The TLP package."
 msgstr "El paquete TLP."
 
 #. type: deftypevr
-#: doc/guix.texi:22635
+#: doc/guix.texi:25495
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} boolean tlp-enable?"
 msgstr "{parámetro de @code{tlp-configuration}} boolean tlp-enable?"
 
 #. type: deftypevr
-#: doc/guix.texi:22637
+#: doc/guix.texi:25497
 msgid "Set to true if you wish to enable TLP."
 msgstr "Proporcione un valor verdadero si desea activar TLP."
 
 #. type: deftypevr
-#: doc/guix.texi:22642
+#: doc/guix.texi:25502
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} string tlp-default-mode"
 msgstr "{parámetro de @code{tlp-configuration}} string tlp-default-mode"
 
 #. type: deftypevr
-#: doc/guix.texi:22645
+#: doc/guix.texi:25505
 msgid "Default mode when no power supply can be detected.  Alternatives are AC and BAT."
 msgstr "Modo predeterminado cuando no se puede detectar una fuente de alimentación. Las alternativas son AC (corriente alterna) y BAT (batería)."
 
 #. type: deftypevr
-#: doc/guix.texi:22647
+#: doc/guix.texi:25507
 msgid "Defaults to @samp{\"AC\"}."
 msgstr "El valor predeterminado es @samp{\"AC\"} (corriente alterna)."
 
 #. type: deftypevr
-#: doc/guix.texi:22650
+#: doc/guix.texi:25510
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} non-negative-integer disk-idle-secs-on-ac"
 msgstr "{parámetro de @code{tlp-configuration}} entero-no-negativo disk-idle-secs-on-ac"
 
 #. type: deftypevr
-#: doc/guix.texi:22653
+#: doc/guix.texi:25513
 msgid "Number of seconds Linux kernel has to wait after the disk goes idle, before syncing on AC."
 msgstr "Número de segundos que el núcleo Linux debe esperar desde que el disco se queda en espera, antes de sincronizar en corriente alterna (AC)."
 
 #. type: deftypevr
-#: doc/guix.texi:22658
+#: doc/guix.texi:25518
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} non-negative-integer disk-idle-secs-on-bat"
 msgstr "{parámetro de @code{tlp-configuration}} entero-no-negativo disk-idle-secs-on-bat"
 
 #. type: deftypevr
-#: doc/guix.texi:22660
+#: doc/guix.texi:25520
 msgid "Same as @code{disk-idle-ac} but on BAT mode."
 msgstr "Igual que @code{disk-idle-ac} pero en modo BAT (batería)."
 
 #. type: deftypevr
-#: doc/guix.texi:22662
+#: doc/guix.texi:25522
 msgid "Defaults to @samp{2}."
 msgstr "El valor predeterminado es @samp{2}."
 
 #. type: deftypevr
-#: doc/guix.texi:22665
+#: doc/guix.texi:25525
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} non-negative-integer max-lost-work-secs-on-ac"
 msgstr "{parámetro de @code{tlp-configuration}} entero-no-negativo max-lost-work-secs-on-ac"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:22667
+#: doc/guix.texi:25527
 msgid "Dirty pages flushing periodicity, expressed in seconds."
 msgstr "Periodicidad de la evacuación de las páginas sucias, expresada en segundos."
 
 #. type: deftypevr
-#: doc/guix.texi:22669 doc/guix.texi:22892 doc/guix.texi:24281
-#: doc/guix.texi:24289
+#: doc/guix.texi:25529 doc/guix.texi:25752 doc/guix.texi:27974
+#: doc/guix.texi:27982
 msgid "Defaults to @samp{15}."
 msgstr "El valor predeterminado es @samp{15}."
 
 #. type: deftypevr
-#: doc/guix.texi:22672
+#: doc/guix.texi:25532
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} non-negative-integer max-lost-work-secs-on-bat"
 msgstr "{parámetro de @code{tlp-configuration}} entero-no-negativo max-lost-work-secs-on-bat"
 
 #. type: deftypevr
-#: doc/guix.texi:22674
+#: doc/guix.texi:25534
 msgid "Same as @code{max-lost-work-secs-on-ac} but on BAT mode."
 msgstr "Igual que @code{max-lost-work-secs-on-ac} pero en modo BAT (batería)."
 
 #. type: deftypevr
-#: doc/guix.texi:22676
+#: doc/guix.texi:25536
 msgid "Defaults to @samp{60}."
 msgstr "El valor predeterminado es @samp{60}."
 
 #. type: deftypevr
-#: doc/guix.texi:22679
+#: doc/guix.texi:25539
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-space-separated-string-list cpu-scaling-governor-on-ac"
 msgstr "{parámetro de @code{tlp-configuration}} maybe-lista-cadena-separada-espacios cpu-scaling-governor-on-ac"
 
 #. type: deftypevr
-#: doc/guix.texi:22683
+#: doc/guix.texi:25543
 msgid "CPU frequency scaling governor on AC mode.  With intel_pstate driver, alternatives are powersave and performance.  With acpi-cpufreq driver, alternatives are ondemand, powersave, performance and conservative."
 msgstr "Gobernador de escalado de frecuencia del procesador en modo de corriente alterna (AC). Con el controlador intel_pstate, las alternativas son ``powersave'' (ahorro de energía) y ``performance'' (rendimiento). Con el controlador acpi-cpufreq, las alternativas son ``ondemand'' (bajo demanda), ``powersave'', ``performance'' y ``conservative'' (conservativo)."
 
 #. type: deftypevr
-#: doc/guix.texi:22688
+#: doc/guix.texi:25548
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-space-separated-string-list cpu-scaling-governor-on-bat"
 msgstr "{parámetro de @code{tlp-configuration}} maybe-lista-cadena-separada-espacios cpu-scaling-governor-on-bat"
 
 #. type: deftypevr
-#: doc/guix.texi:22690
+#: doc/guix.texi:25550
 msgid "Same as @code{cpu-scaling-governor-on-ac} but on BAT mode."
 msgstr "Igual que @code{max-lost-work-secs-on-ac} pero en modo BAT (batería)."
 
 #. type: deftypevr
-#: doc/guix.texi:22695
+#: doc/guix.texi:25555
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-scaling-min-freq-on-ac"
 msgstr "{parámetro de @code{tlp-configuration}} maybe-entero-no-negativo cpu-scaling-min-freq-on-ac"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:22697
+#: doc/guix.texi:25557
 msgid "Set the min available frequency for the scaling governor on AC."
 msgstr "Establece la frecuencia mínima disponible para el controlador de escalado en AC."
 
 #. type: deftypevr
-#: doc/guix.texi:22702
+#: doc/guix.texi:25562
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-scaling-max-freq-on-ac"
 msgstr "{parámetro de @code{tlp-configuration}} maybe-entero-no-negativo cpu-scaling-max-freq-on-ac"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:22704
+#: doc/guix.texi:25564
 msgid "Set the max available frequency for the scaling governor on AC."
 msgstr "Establece la frecuencia máxima disponible para el controlador de escalado en AC."
 
 #. type: deftypevr
-#: doc/guix.texi:22709
+#: doc/guix.texi:25569
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-scaling-min-freq-on-bat"
 msgstr "{parámetro de @code{tlp-configuration}} maybe-entero-no-negativo cpu-scaling-min-freq-on-bat"
 
 #. type: deftypevr
-#: doc/guix.texi:22711
+#: doc/guix.texi:25571
 msgid "Set the min available frequency for the scaling governor on BAT."
 msgstr "Establece la frecuencia mínima disponible para el controlador de escalado en BAT."
 
 #. type: deftypevr
-#: doc/guix.texi:22716
+#: doc/guix.texi:25576
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-scaling-max-freq-on-bat"
 msgstr "{parámetro de @code{tlp-configuration}} maybe-entero-no-negativo cpu-scaling-max-freq-on-bat"
 
 #. type: deftypevr
-#: doc/guix.texi:22718
+#: doc/guix.texi:25578
 msgid "Set the max available frequency for the scaling governor on BAT."
 msgstr "Establece la frecuencia máxima disponible para el controlador de escalado en BAT."
 
 #. type: deftypevr
-#: doc/guix.texi:22723
+#: doc/guix.texi:25583
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-min-perf-on-ac"
 msgstr "{parámetro de @code{tlp-configuration}} maybe-entero-no-negativo cpu-min-perf-on-ac"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:22726
+#: doc/guix.texi:25586
 msgid "Limit the min P-state to control the power dissipation of the CPU, in AC mode.  Values are stated as a percentage of the available performance."
 msgstr "Limita el estado-P mínimo para controlar la disipación de potencia del procesador en modo AC. Los valores se indican como un porcentaje de rendimiento disponible."
 
 #. type: deftypevr
-#: doc/guix.texi:22731
+#: doc/guix.texi:25591
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-max-perf-on-ac"
 msgstr "{parámetro de @code{tlp-configuration}} maybe-entero-no-negativo cpu-max-perf-on-ac"
 
 #. type: deftypevr
-#: doc/guix.texi:22734
+#: doc/guix.texi:25594
 msgid "Limit the max P-state to control the power dissipation of the CPU, in AC mode.  Values are stated as a percentage of the available performance."
 msgstr "Limita el estado-P máximo para controlar la disipación de potencia del procesador en modo AC. Los valores se indican como un porcentaje de rendimiento disponible."
 
 #. type: deftypevr
-#: doc/guix.texi:22739
+#: doc/guix.texi:25599
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-min-perf-on-bat"
 msgstr "{parámetro de @code{tlp-configuration}} maybe-entero-no-negativo cpu-min-perf-on-bat"
 
 #. type: deftypevr
-#: doc/guix.texi:22741
+#: doc/guix.texi:25601
 msgid "Same as @code{cpu-min-perf-on-ac} on BAT mode."
 msgstr "Igual que @code{cpu-min-perf-on-ac} pero en modo BAT (batería)."
 
 #. type: deftypevr
-#: doc/guix.texi:22746
+#: doc/guix.texi:25606
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-max-perf-on-bat"
 msgstr "{parámetro de @code{tlp-configuration}} maybe-entero-no-negativo cpu-max-perf-on-bat"
 
 #. type: deftypevr
-#: doc/guix.texi:22748
+#: doc/guix.texi:25608
 msgid "Same as @code{cpu-max-perf-on-ac} on BAT mode."
 msgstr "Igual que @code{cpu-max-perf-on-ac} pero en modo BAT (batería)."
 
 #. type: deftypevr
-#: doc/guix.texi:22753
+#: doc/guix.texi:25613
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-boolean cpu-boost-on-ac?"
 msgstr "{parámetro de @code{tlp-configuration}} maybe-boolean cpu-boost-on-ac?"
 
 #. type: deftypevr
-#: doc/guix.texi:22755
+#: doc/guix.texi:25615
 msgid "Enable CPU turbo boost feature on AC mode."
 msgstr "Activa la característica ``turbo boost'' del procesador en modo AC (corriente alterna)."
 
 #. type: deftypevr
-#: doc/guix.texi:22760
+#: doc/guix.texi:25620
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-boolean cpu-boost-on-bat?"
 msgstr "{parámetro de @code{tlp-configuration}} maybe-boolean cpu-boost-on-bat?"
 
 #. type: deftypevr
-#: doc/guix.texi:22762
+#: doc/guix.texi:25622
 msgid "Same as @code{cpu-boost-on-ac?} on BAT mode."
 msgstr "Igual que @code{cpu-boost-on-ac} pero en modo BAT (batería)."
 
 #. type: deftypevr
-#: doc/guix.texi:22767
+#: doc/guix.texi:25627
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} boolean sched-powersave-on-ac?"
 msgstr "{parámetro de @code{tlp-configuration}} boolean sched-powersave-on-ac?"
 
 #. type: deftypevr
-#: doc/guix.texi:22770
+#: doc/guix.texi:25630
 msgid "Allow Linux kernel to minimize the number of CPU cores/hyper-threads used under light load conditions."
 msgstr "Permite al núcleo Linux minimizar el número de núcleos/hyper-thread del procesador usados bajo condiciones de baja carga."
 
 #. type: deftypevr
-#: doc/guix.texi:22775
+#: doc/guix.texi:25635
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} boolean sched-powersave-on-bat?"
 msgstr "{parámetro de @code{tlp-configuration}} boolean sched-powersave-on-bat?"
 
 #. type: deftypevr
-#: doc/guix.texi:22777
+#: doc/guix.texi:25637
 msgid "Same as @code{sched-powersave-on-ac?} but on BAT mode."
 msgstr "Igual que @code{sched-powersave-on-ac?} pero en modo BAT (batería)."
 
 #. type: deftypevr
-#: doc/guix.texi:22782
+#: doc/guix.texi:25642
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} boolean nmi-watchdog?"
 msgstr "{parámetro de @code{tlp-configuration}} boolean nmi-watchdog?"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:22784
+#: doc/guix.texi:25644
 msgid "Enable Linux kernel NMI watchdog."
 msgstr "Activa el proceso guardián (watchdog) NMI del núcleo Linux."
 
 #. type: deftypevr
-#: doc/guix.texi:22789
+#: doc/guix.texi:25649
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-string phc-controls"
 msgstr "{parámetro de @code{tlp-configuration}} maybe-string phc-controls"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:22792
+#: doc/guix.texi:25652
 msgid "For Linux kernels with PHC patch applied, change CPU voltages.  An example value would be @samp{\"F:V F:V F:V F:V\"}."
 msgstr "Para núcleos Linux con el parche PHC aplicado, cambia los voltajes del procesador. Un valor de ejemplo sería @samp{\"F:V F:V F:V F:V\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:22797
+#: doc/guix.texi:25657
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} string energy-perf-policy-on-ac"
 msgstr "{parámetro de @code{tlp-configuration}} string energy-perf-policy-on-ac"
 
 #. type: deftypevr
-#: doc/guix.texi:22800
+#: doc/guix.texi:25660
 msgid "Set CPU performance versus energy saving policy on AC.  Alternatives are performance, normal, powersave."
 msgstr "Establece la política de alto rendimiento del procesador en vez del ahorro de energía mientras durante el uso de corriente alterna (AC). Las alternativas son ``performance'' (alto rendimiento), ``normal'' y ``powersave'' (ahorro de energía)."
 
 #. type: deftypevr
-#: doc/guix.texi:22802 doc/guix.texi:22900 doc/guix.texi:22930
+#: doc/guix.texi:25662 doc/guix.texi:25760 doc/guix.texi:25790
 msgid "Defaults to @samp{\"performance\"}."
 msgstr "El valor predeterminado es @samp{\"performance\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:22805
+#: doc/guix.texi:25665
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} string energy-perf-policy-on-bat"
 msgstr "{parámetro de @code{tlp-configuration}} string energy-perf-policy-on-bat"
 
 #. type: deftypevr
-#: doc/guix.texi:22807
+#: doc/guix.texi:25667
 msgid "Same as @code{energy-perf-policy-ac} but on BAT mode."
 msgstr "Igual que @code{energy-perf-policy-ac} pero en modo BAT (batería)."
 
 #. type: deftypevr
-#: doc/guix.texi:22809 doc/guix.texi:22907
+#: doc/guix.texi:25669 doc/guix.texi:25767
 msgid "Defaults to @samp{\"powersave\"}."
 msgstr "El valor predeterminado es @samp{\"powersave\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:22812
+#: doc/guix.texi:25672
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} space-separated-string-list disks-devices"
 msgstr "{parámetro de @code{tlp-configuration}} lista-cadena-separada-espacios disks-devices"
 
 #. type: deftypevr
-#: doc/guix.texi:22814
+#: doc/guix.texi:25674
 msgid "Hard disk devices."
 msgstr "Dispositivos de disco duro."
 
 #. type: deftypevr
-#: doc/guix.texi:22817
+#: doc/guix.texi:25677
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} space-separated-string-list disk-apm-level-on-ac"
 msgstr "{parámetro de @code{tlp-configuration}} lista-cadena-separada-espacios disk-apm-level-on-ac"
 
 #. type: deftypevr
-#: doc/guix.texi:22819
+#: doc/guix.texi:25679
 msgid "Hard disk advanced power management level."
 msgstr "Nivel de APM (gestión avanzada de energía) del disco duro."
 
 #. type: deftypevr
-#: doc/guix.texi:22822
+#: doc/guix.texi:25682
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} space-separated-string-list disk-apm-level-on-bat"
 msgstr "{parámetro de @code{tlp-configuration}} lista-cadena-separada-espacios disk-apm-level-on-bat"
 
 #. type: deftypevr
-#: doc/guix.texi:22824
+#: doc/guix.texi:25684
 msgid "Same as @code{disk-apm-bat} but on BAT mode."
 msgstr "Igual que @code{disk-apm-bat} pero en modo BAT (batería)."
 
 #. type: deftypevr
-#: doc/guix.texi:22827
+#: doc/guix.texi:25687
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-space-separated-string-list disk-spindown-timeout-on-ac"
 msgstr "{parámetro de @code{tlp-configuration}} maybe-lista-cadena-separada-espacios disk-spindown-timeout-on-ac"
 
 #. type: deftypevr
-#: doc/guix.texi:22830
+#: doc/guix.texi:25690
 msgid "Hard disk spin down timeout.  One value has to be specified for each declared hard disk."
 msgstr "Plazo para la parada rotacional del disco duro. Se debe especificar un valor por cada disco duro declarado."
 
 #. type: deftypevr
-#: doc/guix.texi:22835
+#: doc/guix.texi:25695
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-space-separated-string-list disk-spindown-timeout-on-bat"
 msgstr "{parámetro de @code{tlp-configuration}} maybe-lista-cadena-separada-espacios disk-spindown-timeout-on-bat"
 
 #. type: deftypevr
-#: doc/guix.texi:22837
+#: doc/guix.texi:25697
 msgid "Same as @code{disk-spindown-timeout-on-ac} but on BAT mode."
 msgstr "Igual que @code{disk-spindown-timeout-on-ac} pero en modo BAT (batería)."
 
 #. type: deftypevr
-#: doc/guix.texi:22842
+#: doc/guix.texi:25702
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-space-separated-string-list disk-iosched"
 msgstr "{parámetro de @code{tlp-configuration}} maybe-lista-cadena-separada-espacios disk-iosched"
 
 #. type: deftypevr
-#: doc/guix.texi:22846
+#: doc/guix.texi:25706
 msgid "Select IO scheduler for disk devices.  One value has to be specified for each declared hard disk.  Example alternatives are cfq, deadline and noop."
 msgstr "Selecciona el planificador de E/S para dispositivos de disco. Se debe especificar un valor por cada disco duro declarado. Ejemplos de alternativas son ``cfq'', ``deadline'' y ``noop''."
 
 #. type: deftypevr
-#: doc/guix.texi:22851
+#: doc/guix.texi:25711
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} string sata-linkpwr-on-ac"
 msgstr "{parámetro de @code{tlp-configuration}} string sata-linkpwr-on-ac"
 
 #. type: deftypevr
-#: doc/guix.texi:22854
+#: doc/guix.texi:25714
 msgid "SATA aggressive link power management (ALPM) level.  Alternatives are min_power, medium_power, max_performance."
 msgstr "Nivel de gestión agresiva de energía del enlace (ALPM) de SATA. Las alternativas son ``min_power'' (energía mínima), ``medium_power'' (energía media) y ``max_performance'' (máximo rendimiento)."
 
 #. type: deftypevr
-#: doc/guix.texi:22856
+#: doc/guix.texi:25716
 msgid "Defaults to @samp{\"max_performance\"}."
 msgstr "El valor predeterminado es @samp{\"max_performance\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:22859
+#: doc/guix.texi:25719
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} string sata-linkpwr-on-bat"
 msgstr "{parámetro de @code{tlp-configuration}} string sata-linkpwr-on-bat"
 
 #. type: deftypevr
-#: doc/guix.texi:22861
+#: doc/guix.texi:25721
 msgid "Same as @code{sata-linkpwr-ac} but on BAT mode."
 msgstr "Igual que @code{sata-linkpwr-ac} pero en modo BAT (batería)."
 
 #. type: deftypevr
-#: doc/guix.texi:22863
+#: doc/guix.texi:25723
 msgid "Defaults to @samp{\"min_power\"}."
 msgstr "El valor predeterminado es @samp{\"min_power\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:22866
+#: doc/guix.texi:25726
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-string sata-linkpwr-blacklist"
 msgstr "{parámetro de @code{tlp-configuration}} maybe-string sata-linkpwr-blacklist"
 
 #. type: deftypevr
-#: doc/guix.texi:22868
+#: doc/guix.texi:25728
 msgid "Exclude specified SATA host devices for link power management."
 msgstr "Excluye los dispositivos SATA especificados de la gestión de energía del enlace."
 
 #. type: deftypevr
-#: doc/guix.texi:22873
+#: doc/guix.texi:25733
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-on-off-boolean ahci-runtime-pm-on-ac?"
 msgstr "{parámetro de @code{tlp-configuration}} maybe-on-off-boolean ahci-runtime-pm-on-ac?"
 
 #. type: deftypevr
-#: doc/guix.texi:22876
+#: doc/guix.texi:25736
 msgid "Enable Runtime Power Management for AHCI controller and disks on AC mode."
 msgstr "Activa la gestión de energía de tiempo de ejecución para controladores AHCI y discos en modo AC."
 
 #. type: deftypevr
-#: doc/guix.texi:22881
+#: doc/guix.texi:25741
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-on-off-boolean ahci-runtime-pm-on-bat?"
 msgstr "{parámetro de @code{tlp-configuration}} maybe-on-off-boolean ahci-runtime-pm-on-bat?"
 
 #. type: deftypevr
-#: doc/guix.texi:22883
+#: doc/guix.texi:25743
 msgid "Same as @code{ahci-runtime-pm-on-ac} on BAT mode."
 msgstr "Igual que @code{ahci-runtime-pm-on-ac} pero en modo BAT (batería)."
 
 #. type: deftypevr
-#: doc/guix.texi:22888
+#: doc/guix.texi:25748
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} non-negative-integer ahci-runtime-pm-timeout"
 msgstr "{parámetro de @code{tlp-configuration}} entero-no-negativo ahci-runtime-pm-timeout"
 
 #. type: deftypevr
-#: doc/guix.texi:22890
+#: doc/guix.texi:25750
 msgid "Seconds of inactivity before disk is suspended."
 msgstr "Segundos de inactividad antes de suspender el disco."
 
 #. type: deftypevr
-#: doc/guix.texi:22895
+#: doc/guix.texi:25755
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} string pcie-aspm-on-ac"
 msgstr "{parámetro de @code{tlp-configuration}} string pcie-aspm-on-ac"
 
 #. type: deftypevr
-#: doc/guix.texi:22898
+#: doc/guix.texi:25758
 msgid "PCI Express Active State Power Management level.  Alternatives are default, performance, powersave."
 msgstr "Nivel de gestión de energía de estado activo de PCI Express. Las alternativas son ``default'' (predeterminado), ``performance'' (rendimiento) y ``powersave'' (ahorro de energía)."
 
 #. type: deftypevr
-#: doc/guix.texi:22903
+#: doc/guix.texi:25763
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} string pcie-aspm-on-bat"
 msgstr "{parámetro de @code{tlp-configuration}} string pcie-aspm-on-bat"
 
 #. type: deftypevr
-#: doc/guix.texi:22905
+#: doc/guix.texi:25765
 msgid "Same as @code{pcie-aspm-ac} but on BAT mode."
 msgstr "Igual que @code{pcie-aspm-ac} pero en modo BAT (batería)."
 
 #. type: deftypevr
-#: doc/guix.texi:22910
+#: doc/guix.texi:25770
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} string radeon-power-profile-on-ac"
 msgstr "{parámetro de @code{tlp-configuration}} string radeon-power-profile-on-ac"
 
 #. type: deftypevr
-#: doc/guix.texi:22913
+#: doc/guix.texi:25773
 msgid "Radeon graphics clock speed level.  Alternatives are low, mid, high, auto, default."
 msgstr "Nivel de velocidad de reloj de gráficos Radeon. Las alternativas son ``low'' (bajo), ``mid'' (medio), ``high'' (alto), ``auto'' (automático) y ``default'' (predeterminado)."
 
 #. type: deftypevr
-#: doc/guix.texi:22915
+#: doc/guix.texi:25775
 msgid "Defaults to @samp{\"high\"}."
 msgstr "El valor predeterminado es @samp{\"high\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:22918
+#: doc/guix.texi:25778
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} string radeon-power-profile-on-bat"
 msgstr "{parámetro de @code{tlp-configuration}} string radeon-power-profile-on-bat"
 
 #. type: deftypevr
-#: doc/guix.texi:22920
+#: doc/guix.texi:25780
 msgid "Same as @code{radeon-power-ac} but on BAT mode."
 msgstr "Igual que @code{radeon-power-ac} pero en modo BAT (batería)."
 
 #. type: deftypevr
-#: doc/guix.texi:22922
+#: doc/guix.texi:25782
 msgid "Defaults to @samp{\"low\"}."
 msgstr "El valor predeterminado es @samp{\"low\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:22925
+#: doc/guix.texi:25785
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} string radeon-dpm-state-on-ac"
 msgstr "{parámetro de @code{tlp-configuration}} string radeon-dpm-state-on-ac"
 
 #. type: deftypevr
-#: doc/guix.texi:22928
+#: doc/guix.texi:25788
 msgid "Radeon dynamic power management method (DPM).  Alternatives are battery, performance."
 msgstr "Método de gestión de energía dinámica (DPM) de Radeon. Las alternativas son ``battery'' (batería) y ``performance'' (rendimiento)."
 
 #. type: deftypevr
-#: doc/guix.texi:22933
+#: doc/guix.texi:25793
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} string radeon-dpm-state-on-bat"
 msgstr "{parámetro de @code{tlp-configuration}} string radeon-dpm-state-on-bat"
 
 #. type: deftypevr
-#: doc/guix.texi:22935
+#: doc/guix.texi:25795
 msgid "Same as @code{radeon-dpm-state-ac} but on BAT mode."
 msgstr "Igual que @code{radeon-dpm-state-ac} pero en modo BAT (batería)."
 
 #. type: deftypevr
-#: doc/guix.texi:22937
+#: doc/guix.texi:25797
 msgid "Defaults to @samp{\"battery\"}."
 msgstr "El valor predeterminado es @samp{\"battery\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:22940
+#: doc/guix.texi:25800
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} string radeon-dpm-perf-level-on-ac"
 msgstr "{parámetro de @code{tlp-configuration}} string radeon-dpm-perf-level-on-ac"
 
 #. type: deftypevr
-#: doc/guix.texi:22942
+#: doc/guix.texi:25802
 msgid "Radeon DPM performance level.  Alternatives are auto, low, high."
 msgstr "Nivel de rendimiento del DPM de Radeon. Las alternativas son ``auto'' (automático), ``low'' (bajo) y ``high'' (alto)."
 
 #. type: deftypevr
-#: doc/guix.texi:22944 doc/guix.texi:22951 doc/guix.texi:23025
+#: doc/guix.texi:25804 doc/guix.texi:25811 doc/guix.texi:25885
 msgid "Defaults to @samp{\"auto\"}."
 msgstr "El valor predeterminado es @samp{\"auto\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:22947
+#: doc/guix.texi:25807
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} string radeon-dpm-perf-level-on-bat"
 msgstr "{parámetro de @code{tlp-configuration}} string radeon-dpm-perf-level-on-bat"
 
 #. type: deftypevr
-#: doc/guix.texi:22949
+#: doc/guix.texi:25809
 msgid "Same as @code{radeon-dpm-perf-ac} but on BAT mode."
 msgstr "Igual que @code{radeon-dpm-perf-ac} pero en modo BAT (batería)."
 
 #. type: deftypevr
-#: doc/guix.texi:22954
+#: doc/guix.texi:25814
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} on-off-boolean wifi-pwr-on-ac?"
 msgstr "{parámetro de @code{tlp-configuration}} on-off-boolean wifi-pwr-on-ac?"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:22956
+#: doc/guix.texi:25816
 msgid "Wifi power saving mode."
 msgstr "Modo de ahorro de energía de Wifi."
 
 #. type: deftypevr
-#: doc/guix.texi:22961
+#: doc/guix.texi:25821
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} on-off-boolean wifi-pwr-on-bat?"
 msgstr "{parámetro de @code{tlp-configuration}} on-off-boolean wifi-pwr-on-bat?"
 
 #. type: deftypevr
-#: doc/guix.texi:22963
+#: doc/guix.texi:25823
 msgid "Same as @code{wifi-power-ac?} but on BAT mode."
 msgstr "Igual que @code{wifi-power-ac?} pero en modo BAT (batería)."
 
 #. type: deftypevr
-#: doc/guix.texi:22968
+#: doc/guix.texi:25828
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} y-n-boolean wol-disable?"
 msgstr "{parámetro de @code{tlp-configuration}} y-n-boolean wol-disable?"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:22970
+#: doc/guix.texi:25830
 msgid "Disable wake on LAN."
 msgstr "Desactiva el encendido desde la red local (wake on LAN)."
 
 #. type: deftypevr
-#: doc/guix.texi:22975
+#: doc/guix.texi:25835
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} non-negative-integer sound-power-save-on-ac"
 msgstr "{parámetro de @code{tlp-configuration}} entero-no-negativo sound-power-save-on-ac"
 
 #. type: deftypevr
-#: doc/guix.texi:22978
+#: doc/guix.texi:25838
 msgid "Timeout duration in seconds before activating audio power saving on Intel HDA and AC97 devices.  A value of 0 disables power saving."
 msgstr "Duración en segundos del plazo antes de activar el ahorro de energía de audio en dispositivos Intel HDA y AC97. El valor 0 desactiva el ahorro de energía."
 
 #. type: deftypevr
-#: doc/guix.texi:22983
+#: doc/guix.texi:25843
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} non-negative-integer sound-power-save-on-bat"
 msgstr "{parámetro de @code{tlp-configuration}} entero-no-negativo sound-power-save-on-bat"
 
 #. type: deftypevr
-#: doc/guix.texi:22985
+#: doc/guix.texi:25845
 msgid "Same as @code{sound-powersave-ac} but on BAT mode."
 msgstr "Igual que @code{sound-powersave-ac} pero en modo BAT (batería)."
 
 #. type: deftypevr
-#: doc/guix.texi:22990
+#: doc/guix.texi:25850
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} y-n-boolean sound-power-save-controller?"
 msgstr "{parámetro de @code{tlp-configuration}} y-n-boolean sound-power-save-controller?"
 
 #. type: deftypevr
-#: doc/guix.texi:22992
+#: doc/guix.texi:25852
 msgid "Disable controller in powersaving mode on Intel HDA devices."
 msgstr "Desactiva el controlador en modo de ahorro de energía en dispositivos Intel HDA."
 
 #. type: deftypevr
-#: doc/guix.texi:22997
+#: doc/guix.texi:25857
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} boolean bay-poweroff-on-bat?"
 msgstr "{parámetro de @code{tlp-configuration}} boolean bay-poweroff-on-bat?"
 
 #. type: deftypevr
-#: doc/guix.texi:23001
+#: doc/guix.texi:25861
 msgid "Enable optical drive in UltraBay/MediaBay on BAT mode.  Drive can be powered on again by releasing (and reinserting) the eject lever or by pressing the disc eject button on newer models."
 msgstr "Activa las unidades ópticas en UltraBay/MediaBay en modo BAT. La unidad puede volver a alimentarse liberando (y reinsertando) la palanca de eyección o presionando el botón de eyección de disco en modelos más modernos."
 
 #. type: deftypevr
-#: doc/guix.texi:23006
+#: doc/guix.texi:25866
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} string bay-device"
 msgstr "{parámetro de @code{tlp-configuration}} string bay-device"
 
 #. type: deftypevr
-#: doc/guix.texi:23008
+#: doc/guix.texi:25868
 msgid "Name of the optical drive device to power off."
 msgstr "Nombre de la unidad de dispositivos ópticos a apagar."
 
 #. type: deftypevr
-#: doc/guix.texi:23010
+#: doc/guix.texi:25870
 msgid "Defaults to @samp{\"sr0\"}."
 msgstr "El valor predeterminado es @samp{\"sr0\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:23013
+#: doc/guix.texi:25873
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} string runtime-pm-on-ac"
 msgstr "{parámetro de @code{tlp-configuration}} string runtime-pm-on-ac"
 
 #. type: deftypevr
-#: doc/guix.texi:23016
+#: doc/guix.texi:25876
 msgid "Runtime Power Management for PCI(e) bus devices.  Alternatives are on and auto."
 msgstr "Gestión de energía en tiempo de ejecución para dispositivos de bus PCI(e). Las alternativas son ``on'' y ``auto''."
 
 #. type: deftypevr
-#: doc/guix.texi:23018
+#: doc/guix.texi:25878
 msgid "Defaults to @samp{\"on\"}."
 msgstr "El valor predeterminado es @samp{\"on\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:23021
+#: doc/guix.texi:25881
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} string runtime-pm-on-bat"
 msgstr "{parámetro de @code{tlp-configuration}} string runtime-pm-on-bat"
 
 #. type: deftypevr
-#: doc/guix.texi:23023
+#: doc/guix.texi:25883
 msgid "Same as @code{runtime-pm-ac} but on BAT mode."
 msgstr "Igual que @code{runtime-pm-ac} pero en modo BAT (batería)."
 
 #. type: deftypevr
-#: doc/guix.texi:23028
+#: doc/guix.texi:25888
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} boolean runtime-pm-all?"
 msgstr "{parámetro de @code{tlp-configuration}} boolean runtime-pm-all?"
 
 #. type: deftypevr
-#: doc/guix.texi:23031
+#: doc/guix.texi:25891
 msgid "Runtime Power Management for all PCI(e) bus devices, except blacklisted ones."
 msgstr "Gestión de energía en tiempo de ejecución (Runtime Power Management) para todos los dispositivos del bus PCI(e), excepto los excluidos."
 
 #. type: deftypevr
-#: doc/guix.texi:23036
+#: doc/guix.texi:25896
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-space-separated-string-list runtime-pm-blacklist"
 msgstr "{parámetro de @code{tlp-configuration}} maybe-lista-cadena-separada-espacios runtime-pm-blacklist"
 
 #. type: deftypevr
-#: doc/guix.texi:23038
+#: doc/guix.texi:25898
 msgid "Exclude specified PCI(e) device addresses from Runtime Power Management."
 msgstr "Excluye las direcciones de dispositivo PCI(e) especificadas de la gestión de energía en tiempo de ejecución (Runtime Power Management)."
 
 #. type: deftypevr
-#: doc/guix.texi:23043
+#: doc/guix.texi:25903
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} space-separated-string-list runtime-pm-driver-blacklist"
 msgstr "{parámetro de @code{tlp-configuration}} lista-cadena-separada-espacios runtime-pm-driver-blacklist"
 
 #. type: deftypevr
-#: doc/guix.texi:23046
+#: doc/guix.texi:25906
 msgid "Exclude PCI(e) devices assigned to the specified drivers from Runtime Power Management."
 msgstr "Excluye los dispositivos PCI(e) asignados a los controladores especificados de la gestión de energía en tiempo de ejecución (Runtime Power Management)."
 
 #. type: deftypevr
-#: doc/guix.texi:23049
+#: doc/guix.texi:25909
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} boolean usb-autosuspend?"
 msgstr "{parámetro de @code{tlp-configuration}} boolean usb-autosuspend?"
 
 #. type: deftypevr
-#: doc/guix.texi:23051
+#: doc/guix.texi:25911
 msgid "Enable USB autosuspend feature."
 msgstr "Permite la suspensión automática de USB."
 
 #. type: deftypevr
-#: doc/guix.texi:23056
+#: doc/guix.texi:25916
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-string usb-blacklist"
 msgstr "{parámetro de @code{tlp-configuration}} maybe-string usb-blacklist"
 
 #. type: deftypevr
-#: doc/guix.texi:23058
+#: doc/guix.texi:25918
 msgid "Exclude specified devices from USB autosuspend."
 msgstr "Excluye los dispositivos especificados de la suspensión automática de USB."
 
 #. type: deftypevr
-#: doc/guix.texi:23063
+#: doc/guix.texi:25923
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} boolean usb-blacklist-wwan?"
 msgstr "{parámetro de @code{tlp-configuration}} boolean usb-blacklist-wwan?"
 
 #. type: deftypevr
-#: doc/guix.texi:23065
+#: doc/guix.texi:25925
 msgid "Exclude WWAN devices from USB autosuspend."
 msgstr "Excluye los dispositivos WWAN de la suspensión automática de USB."
 
 #. type: deftypevr
-#: doc/guix.texi:23070
+#: doc/guix.texi:25930
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-string usb-whitelist"
 msgstr "{parámetro de @code{tlp-configuration}} maybe-string usb-whitelist"
 
 #. type: deftypevr
-#: doc/guix.texi:23073
+#: doc/guix.texi:25933
 msgid "Include specified devices into USB autosuspend, even if they are already excluded by the driver or via @code{usb-blacklist-wwan?}."
 msgstr "Incluye los dispositivos especificados en la suspensión automática de USB, incluso cuando están excluidos por el controlador o a través de @code{usb-blacklist-wwan?}."
 
 #. type: deftypevr
-#: doc/guix.texi:23078
+#: doc/guix.texi:25938
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-boolean usb-autosuspend-disable-on-shutdown?"
 msgstr "{parámetro de @code{tlp-configuration}} maybe-boolean usb-autosuspend-disable-on-shutdown?"
 
 #. type: deftypevr
-#: doc/guix.texi:23080
+#: doc/guix.texi:25940
 msgid "Enable USB autosuspend before shutdown."
 msgstr "Activa la suspensión automática de USB antes del apagado."
 
 #. type: deftypevr
-#: doc/guix.texi:23085
+#: doc/guix.texi:25945
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} boolean restore-device-state-on-startup?"
 msgstr "{parámetro de @code{tlp-configuration}} boolean restore-device-state-on-startup?"
 
 #. type: deftypevr
-#: doc/guix.texi:23088
+#: doc/guix.texi:25948
 msgid "Restore radio device state (bluetooth, wifi, wwan) from previous shutdown on system startup."
 msgstr "Restablece el estado de los dispositivos de radio (bluetooth, wifi, wwan) previo al apagado durante el arranque del sistema."
 
 #. type: cindex
-#: doc/guix.texi:23093
+#: doc/guix.texi:25953
 #, no-wrap
 msgid "thermald"
 msgstr "thermald"
 
 #. type: cindex
-#: doc/guix.texi:23094
+#: doc/guix.texi:25954
 #, no-wrap
 msgid "CPU frequency scaling with thermald"
 msgstr "escalado de frecuencia de la CPU con thermald"
 
 #. type: subsubheading
-#: doc/guix.texi:23095
+#: doc/guix.texi:25955
 #, no-wrap
 msgid "Thermald daemon"
 msgstr "Daemon Thermald"
 
 #. type: Plain text
-#: doc/guix.texi:23099
+#: doc/guix.texi:25959
 msgid "The @code{(gnu services pm)} module provides an interface to thermald, a CPU frequency scaling service which helps prevent overheating."
 msgstr "El módulo @code{(gnu services pm)} proporciona una interfaz con thermald, un servicio de escalado de frecuencia de la CPU que ayuda a prevenir el sobrecalentamiento."
 
 #. type: defvr
-#: doc/guix.texi:23100
+#: doc/guix.texi:25960
 #, no-wrap
 msgid "{Scheme Variable} thermald-service-type"
 msgstr "{Variable Scheme} thermald-service-type"
 
 #. type: defvr
-#: doc/guix.texi:23105
+#: doc/guix.texi:25965
 msgid "This is the service type for @uref{https://01.org/linux-thermal-daemon/, thermald}, the Linux Thermal Daemon, which is responsible for controlling the thermal state of processors and preventing overheating."
 msgstr "Este es el tipo de servicio para @uref{https://01.org/linux-thermal-daemon/, thermald}, el daemon Thermal de Linux, que es responsable del control del estado térmico de los procesadores y la prevención del sobrecalentamiento."
 
 #. type: deftp
-#: doc/guix.texi:23107
+#: doc/guix.texi:25967
 #, no-wrap
 msgid "{Data Type} thermald-configuration"
 msgstr "{Tipo de datos} thermald-configuration"
 
 #. type: deftp
-#: doc/guix.texi:23109
+#: doc/guix.texi:25969
 msgid "Data type representing the configuration of @code{thermald-service-type}."
 msgstr "Tipo de datos que representa la configuración de @code{thermald-service-type}."
 
 #. type: item
-#: doc/guix.texi:23111
+#: doc/guix.texi:25971
 #, no-wrap
 msgid "@code{ignore-cpuid-check?} (default: @code{#f})"
 msgstr "@code{ignore-cpuid-check?} (predeterminado: @code{#f})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:23113
+#: doc/guix.texi:25973
 msgid "Ignore cpuid check for supported CPU models."
 msgstr "Ignora la comprobación de cpuid durante la comprobación de procesadores permitidos."
 
 #. type: item
-#: doc/guix.texi:23114
+#: doc/guix.texi:25974
 #, no-wrap
 msgid "@code{thermald} (default: @var{thermald})"
 msgstr "@code{thermald} (predeterminado: @var{thermald})"
 
 #. type: table
-#: doc/guix.texi:23116
+#: doc/guix.texi:25976
 msgid "Package object of thermald."
 msgstr "El objeto paquete de thermald."
 
 #. type: Plain text
-#: doc/guix.texi:23125
+#: doc/guix.texi:25985
 msgid "The @code{(gnu services audio)} module provides a service to start MPD (the Music Player Daemon)."
 msgstr "El módulo @code{(gnu services audio)} proporciona un servicio para iniciar MPD (el daemon de reproducción de música)."
 
 #. type: cindex
-#: doc/guix.texi:23126
+#: doc/guix.texi:25986
 #, no-wrap
 msgid "mpd"
 msgstr "mpd"
 
 #. type: subsubheading
-#: doc/guix.texi:23127
+#: doc/guix.texi:25987
 #, no-wrap
 msgid "Music Player Daemon"
 msgstr "Daemon de reproducción de música (MPD)"
 
 #. type: Plain text
-#: doc/guix.texi:23132
+#: doc/guix.texi:25992
 msgid "The Music Player Daemon (MPD) is a service that can play music while being controlled from the local machine or over the network by a variety of clients."
 msgstr "El daemon de reproducción de música (MPD) es un servicio que puede reproducir música mientras se controla desde la máquina local o sobre una red por una multitud de clientes."
 
 #. type: Plain text
-#: doc/guix.texi:23135
+#: doc/guix.texi:25995
 msgid "The following example shows how one might run @code{mpd} as user @code{\"bob\"} on port @code{6666}.  It uses pulseaudio for output."
 msgstr "El siguiente ejemplo muestra como se puede ejecutar @code{mpd} como @code{\"rober\"} en el puerto @code{6666}. Usa pulseaudio para su salida."
 
 #. type: lisp
-#: doc/guix.texi:23141
+#: doc/guix.texi:26001
 #, no-wrap
 msgid ""
 "(service mpd-service-type\n"
@@ -45163,226 +50273,219 @@ msgstr ""
 "          (port \"6666\")))\n"
 
 #. type: defvr
-#: doc/guix.texi:23143
+#: doc/guix.texi:26003
 #, no-wrap
 msgid "{Scheme Variable} mpd-service-type"
 msgstr "{Variable Scheme} mpd-service-type"
 
 #. type: defvr
-#: doc/guix.texi:23145
+#: doc/guix.texi:26005
 msgid "The service type for @command{mpd}"
 msgstr "El tipo de servicio para @command{mpd}."
 
 #. type: deftp
-#: doc/guix.texi:23147
+#: doc/guix.texi:26007
 #, no-wrap
 msgid "{Data Type} mpd-configuration"
 msgstr "{Tipo de datos} mpd-configuration"
 
 #. type: deftp
-#: doc/guix.texi:23149
+#: doc/guix.texi:26009
 msgid "Data type representing the configuration of @command{mpd}."
 msgstr "Tipo de datos que representa la configuración de @command{mpd}."
 
 #. type: item
-#: doc/guix.texi:23151
+#: doc/guix.texi:26011
 #, no-wrap
 msgid "@code{user} (default: @code{\"mpd\"})"
 msgstr "@code{user} (predeterminada: @code{\"mpd\"})"
 
 #. type: table
-#: doc/guix.texi:23153
+#: doc/guix.texi:26013
 msgid "The user to run mpd as."
 msgstr "Usuaria que ejecuta mpd."
 
 #. type: item
-#: doc/guix.texi:23154
+#: doc/guix.texi:26014
 #, no-wrap
 msgid "@code{music-dir} (default: @code{\"~/Music\"})"
 msgstr "@code{music-dir} (predeterminado: @code{\"~/Music\"})"
 
 #. type: table
-#: doc/guix.texi:23156
+#: doc/guix.texi:26016
 msgid "The directory to scan for music files."
-msgstr "El directorio para buscar ficheros de música."
+msgstr "El directorio para buscar archivos de música."
 
 #. type: item
-#: doc/guix.texi:23157
+#: doc/guix.texi:26017
 #, no-wrap
 msgid "@code{playlist-dir} (default: @code{\"~/.mpd/playlists\"})"
 msgstr "@code{playlist-dir} (predeterminado: @code{\"~/.mpd/playlists\"})"
 
 #. type: table
-#: doc/guix.texi:23159
+#: doc/guix.texi:26019
 msgid "The directory to store playlists."
 msgstr "El directorio para almacenar listas de reproducción."
 
 #. type: item
-#: doc/guix.texi:23160
+#: doc/guix.texi:26020
 #, no-wrap
 msgid "@code{db-file} (default: @code{\"~/.mpd/tag_cache\"})"
 msgstr "@code{db-file} (predeterminado: @code{\"~/.mpd/tag_cache\"})"
 
 #. type: table
-#: doc/guix.texi:23162
+#: doc/guix.texi:26022
 msgid "The location of the music database."
 msgstr "La localización de la base de datos de música."
 
 #. type: item
-#: doc/guix.texi:23163
+#: doc/guix.texi:26023
 #, no-wrap
 msgid "@code{state-file} (default: @code{\"~/.mpd/state\"})"
 msgstr "@code{state-file} (predeterminado: @code{\"~/.mpd/state\"})"
 
 #. type: table
-#: doc/guix.texi:23165
+#: doc/guix.texi:26025
 msgid "The location of the file that stores current MPD's state."
-msgstr "La localización del fichero que almacena el estado actual de MPD."
+msgstr "La localización del archivo que almacena el estado actual de MPD."
 
 #. type: item
-#: doc/guix.texi:23166
+#: doc/guix.texi:26026
 #, no-wrap
 msgid "@code{sticker-file} (default: @code{\"~/.mpd/sticker.sql\"})"
 msgstr "@code{sticker-file} (predeterminado: @code{\"~/.mpd/sticker.sql\"})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:23168
+#: doc/guix.texi:26028
 msgid "The location of the sticker database."
 msgstr "La localización de la base de datos de pegatinas."
 
 #. type: item
-#: doc/guix.texi:23169
+#: doc/guix.texi:26029
 #, no-wrap
 msgid "@code{port} (default: @code{\"6600\"})"
 msgstr "@code{port} (predeterminado: @code{\"6600\"})"
 
 #. type: table
-#: doc/guix.texi:23171
+#: doc/guix.texi:26031
 msgid "The port to run mpd on."
 msgstr "Puerto sobre el que se ejecuta mpd."
 
 #. type: item
-#: doc/guix.texi:23172
+#: doc/guix.texi:26032
 #, no-wrap
 msgid "@code{address} (default: @code{\"any\"})"
 msgstr "@code{address} (predeterminada: @code{\"any\"})"
 
 #. type: table
-#: doc/guix.texi:23175
+#: doc/guix.texi:26035
 msgid "The address that mpd will bind to.  To use a Unix domain socket, an absolute path can be specified here."
 msgstr "Dirección a la que mpd se asociará. Para usar un socket de dominio de Unix puede especificarse una ruta absoluta."
 
 #. type: item
-#: doc/guix.texi:23176
+#: doc/guix.texi:26036
 #, no-wrap
 msgid "@code{outputs} (default: @code{\"(list (mpd-output))\"})"
 msgstr "@code{outputs} (predeterminadas: @code{\"(list (mpd-output))\"})"
 
 #. type: table
-#: doc/guix.texi:23178
+#: doc/guix.texi:26038
 msgid "The audio outputs that MPD can use.  By default this is a single output using pulseaudio."
 msgstr "Las salidas de audio que MPD puede usar. De manera predeterminada es una salida de audio única usando pulseaudio."
 
 #. type: deftp
-#: doc/guix.texi:23182
+#: doc/guix.texi:26042
 #, no-wrap
 msgid "{Data Type} mpd-output"
 msgstr "{Tipo de datos} mpd-output"
 
 #. type: deftp
-#: doc/guix.texi:23184
+#: doc/guix.texi:26044
 msgid "Data type representing an @command{mpd} audio output."
 msgstr "Tipo de datos que representa una salida de audio de @command{mpd}."
 
 #. type: item
-#: doc/guix.texi:23186
+#: doc/guix.texi:26046
 #, no-wrap
 msgid "@code{name} (default: @code{\"MPD\"})"
 msgstr "@code{name} (predeterminado: @code{\"MPD\"})"
 
 #. type: table
-#: doc/guix.texi:23188
+#: doc/guix.texi:26048
 msgid "The name of the audio output."
 msgstr "Nombre de la salida de audio."
 
 #. type: item
-#: doc/guix.texi:23189
+#: doc/guix.texi:26049
 #, no-wrap
 msgid "@code{type} (default: @code{\"pulse\"})"
 msgstr "@code{type} (predeterminado: @code{\"pulse\"})"
 
 #. type: table
-#: doc/guix.texi:23191
+#: doc/guix.texi:26051
 msgid "The type of audio output."
 msgstr "Tipo de la salida de audio."
 
 #. type: item
-#: doc/guix.texi:23192
+#: doc/guix.texi:26052
 #, no-wrap
 msgid "@code{enabled?} (default: @code{#t})"
 msgstr "@code{enabled?} (predeterminado: @code{#t})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:23197
+#: doc/guix.texi:26057
 msgid "Specifies whether this audio output is enabled when MPD is started.  By default, all audio outputs are enabled.  This is just the default setting when there is no state file; with a state file, the previous state is restored."
-msgstr "Especifica si esta salida de audio se activa cuando se inicia MPD. De manera predeterminada se activan todas las salidas de audio. Esta es la configuración predeterminada cuando no existe un fichero de estado; con un fichero de estado se restaura el estado anterior."
+msgstr "Especifica si esta salida de audio se activa cuando se inicia MPD. De manera predeterminada se activan todas las salidas de audio. Esta es la configuración predeterminada cuando no existe un archivo de estado; con un archivo de estado se restaura el estado anterior."
 
 #. type: item
-#: doc/guix.texi:23198
+#: doc/guix.texi:26058
 #, no-wrap
 msgid "@code{tags?} (default: @code{#t})"
 msgstr "@code{tags?} (predeterminado: @code{#t})"
 
 #. type: table
-#: doc/guix.texi:23202
+#: doc/guix.texi:26062
 msgid "If set to @code{#f}, then MPD will not send tags to this output.  This is only useful for output plugins that can receive tags, for example the @code{httpd} output plugin."
 msgstr "Si se proporciona el valor @code{#f} MPD no envia etiquetas a esta salida. Es útil únicamente para módulos de salida que pueden recibir etiquetas, por ejemplo el módulo de salida @code{httpd}."
 
 #. type: item
-#: doc/guix.texi:23203
+#: doc/guix.texi:26063
 #, no-wrap
 msgid "@code{always-on?} (default: @code{#f})"
 msgstr "@code{always-on?} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:23207
+#: doc/guix.texi:26067
 msgid "If set to @code{#t}, then MPD attempts to keep this audio output always open. This may be useful for streaming servers, when you don’t want to disconnect all listeners even when playback is accidentally stopped."
 msgstr "Si se proporciona el valor @code{#t} MPD intenta mantener abierta siempre esta salida de audio. Puede ser útil para servidores de retransmisión, donde no desea que todos los clientes se desconecten incluso cuando la reproducción se pare accidentalmente."
 
 #. type: code{#1}
-#: doc/guix.texi:23208
+#: doc/guix.texi:26068
 #, no-wrap
 msgid "mixer-type"
 msgstr "mixer-type"
 
 # TODO: Typo
 #. type: table
-#: doc/guix.texi:23214
+#: doc/guix.texi:26074
 msgid "This field accepts a symbol that specifies which mixer should be used for this audio output: the @code{hardware} mixer, the @code{software} mixer, the @code{null} mixer (allows setting the volume, but with no effect; this can be used as a trick to implement an external mixer External Mixer) or no mixer (@code{none})."
 msgstr "Este campo acepta un símbolo que especifica que mezclador debe usarse para esta salida de audio: el mezclador @code{hardware}, el mezclador @code{software}, el mezclador @code{null} (permite manejar el volumen pero sin ningún efecto; puede usarse para implementar un mezclador externo) o ningún mezclador (@code{none})."
 
-# TODO: Probablemente un error, comprobar. Typo
-#. type: item
-#: doc/guix.texi:23215
-#, no-wrap
-msgid "@code{extra-options} (default: @code{'()\"})"
-msgstr "@code{extra-options} (predeterminadas: @code{'()\"})"
-
 # FUZZY
 #. type: table
-#: doc/guix.texi:23218
+#: doc/guix.texi:26078
 msgid "An association list of option symbols to string values to be appended to the audio output configuration."
 msgstr "Una lista asociativa de símbolos de opción con valores de cadenas que se añadirán al final de la configuración de las salidas de audio."
 
 #. type: Plain text
-#: doc/guix.texi:23224
+#: doc/guix.texi:26084
 msgid "The following example shows a configuration of @code{mpd} that provides an HTTP audio streaming output."
 msgstr "El ejemplo siguiente muestra una configuración de @code{mpd} que proporciona una salida de retransmisión de audio por HTTP."
 
 #. type: lisp
-#: doc/guix.texi:23236
+#: doc/guix.texi:26096
 #, no-wrap
 msgid ""
 "(service mpd-service-type\n"
@@ -45407,42 +50510,36 @@ msgstr ""
 "                      `((encoder . \"vorbis\")\n"
 "                        (port    . \"8080\"))))))))\n"
 
-#. type: subsection
-#: doc/guix.texi:23240
-#, no-wrap
-msgid "Virtualization services"
-msgstr "Servicios de virtualización"
-
 #. type: Plain text
-#: doc/guix.texi:23245
+#: doc/guix.texi:26105
 msgid "The @code{(gnu services virtualization)} module provides services for the libvirt and virtlog daemons, as well as other virtualization-related services."
 msgstr "El módulo @code{(gnu services virtualization)} proporciona servicios para los daemon libvirt y virtlog, así como otros servicios relacionados con la virtualización."
 
 #. type: subsubheading
-#: doc/guix.texi:23246
+#: doc/guix.texi:26106
 #, no-wrap
 msgid "Libvirt daemon"
 msgstr "Daemon de Libvirt"
 
 # FUZZY
 #. type: Plain text
-#: doc/guix.texi:23250
+#: doc/guix.texi:26111
 msgid "@code{libvirtd} is the server side daemon component of the libvirt virtualization management system. This daemon runs on host servers and performs required management tasks for virtualized guests."
 msgstr "@code{libvirtd} es un daemon del que se compone el lado del servidor del sistema de gestión de virtualización libvirt. Este daemon se ejecuta en las máquinas servidoras y realiza las tareas de gestión necesarias para los sistemas virtualizados."
 
 #. type: deffn
-#: doc/guix.texi:23251
+#: doc/guix.texi:26112
 #, no-wrap
 msgid "{Scheme Variable} libvirt-service-type"
 msgstr "{Variable Scheme} libvirt-service-type"
 
 #. type: deffn
-#: doc/guix.texi:23254
+#: doc/guix.texi:26115
 msgid "This is the type of the @uref{https://libvirt.org, libvirt daemon}.  Its value must be a @code{libvirt-configuration}."
 msgstr "Este es el tipo para el @uref{https://libvirt.org, daemon de libvirt}. Su valor debe ser un objeto @code{libvirt-configuration}."
 
 #. type: lisp
-#: doc/guix.texi:23260
+#: doc/guix.texi:26121
 #, no-wrap
 msgid ""
 "(service libvirt-service-type\n"
@@ -45456,654 +50553,646 @@ msgstr ""
 "          (tls-port \"16555\")))\n"
 
 #. type: Plain text
-#: doc/guix.texi:23265
+#: doc/guix.texi:26126
 msgid "Available @code{libvirt-configuration} fields are:"
 msgstr "Los campos disponibles de @code{libvirt-configuration} son:"
 
 #. type: deftypevr
-#: doc/guix.texi:23266
+#: doc/guix.texi:26127
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} package libvirt"
 msgstr "{parámetro de @code{libvirt-configuration}} package libvirt"
 
 #. type: deftypevr
-#: doc/guix.texi:23268
+#: doc/guix.texi:26129
 msgid "Libvirt package."
 msgstr "Paquete libvirt."
 
 #. type: deftypevr
-#: doc/guix.texi:23271
+#: doc/guix.texi:26132
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} boolean listen-tls?"
 msgstr "{parámetro de @code{libvirt-configuration}} boolean listen-tls?"
 
-# FUZZY
-# TODO: Enviar parche.
 #. type: deftypevr
-#: doc/guix.texi:23274
-msgid "Flag listening for secure TLS connections on the public TCP/IP port.  must set @code{listen} for this to have any effect."
+#: doc/guix.texi:26135
+msgid "Flag listening for secure TLS connections on the public TCP/IP port.  You must set @code{listen} for this to have any effect."
 msgstr "Opción para la escucha de conexiones seguras TLS en el puerto TCP/IP público. Debe haberse proporcionado valor a @code{listen} para que tenga algún efecto."
 
 #. type: deftypevr
-#: doc/guix.texi:23277
+#: doc/guix.texi:26138
 msgid "It is necessary to setup a CA and issue server certificates before using this capability."
 msgstr "Es necesario configurar una autoridad de certificación (CA) y emitir certificados de servidor antes de usar esta característica."
 
 #. type: deftypevr
-#: doc/guix.texi:23282
+#: doc/guix.texi:26143
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} boolean listen-tcp?"
 msgstr "{parámetro de @code{libvirt-configuration}} boolean listen-tcp?"
 
-# FUZZY
-# TODO: Enviar parche.
 #. type: deftypevr
-#: doc/guix.texi:23285
-msgid "Listen for unencrypted TCP connections on the public TCP/IP port.  must set @code{listen} for this to have any effect."
+#: doc/guix.texi:26146
+msgid "Listen for unencrypted TCP connections on the public TCP/IP port.  You must set @code{listen} for this to have any effect."
 msgstr "Escucha de conexiones TCP sin cifrar en el puerto TCP/IP público. Debe haberse proporcionado valor a @code{listen} para que tenga algún efecto."
 
-# TODO: Enviar parche.
 #. type: deftypevr
-#: doc/guix.texi:23289
-msgid "Using the TCP socket requires SASL authentication by default.  Only SASL mechanisms which support data encryption are allowed.  This is DIGEST_MD5 and GSSAPI (Kerberos5)"
+#: doc/guix.texi:26150
+msgid "Using the TCP socket requires SASL authentication by default.  Only SASL mechanisms which support data encryption are allowed.  This is DIGEST_MD5 and GSSAPI (Kerberos5)."
 msgstr "El uso del socket TCP necesita de manera predeterminada identificación SASL. Únicamente se permiten mecanismos SASL que implementen cifrado de datos. Estos son DIGEST_MD5 y GSSAPI (Kerberos5)."
 
 #. type: deftypevr
-#: doc/guix.texi:23294
+#: doc/guix.texi:26155
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string tls-port"
 msgstr "{parámetro de @code{libvirt-configuration}} string tls-port"
 
-# TODO: Enviar parche.
 #. type: deftypevr
-#: doc/guix.texi:23297
-msgid "Port for accepting secure TLS connections This can be a port number, or service name"
+#: doc/guix.texi:26158
+msgid "Port for accepting secure TLS connections.  This can be a port number, or service name."
 msgstr "Puerto en el que se aceptan conexiones seguras. Puede ser un número de puerto o un nombre de servicio."
 
 #. type: deftypevr
-#: doc/guix.texi:23299
+#: doc/guix.texi:26160
 msgid "Defaults to @samp{\"16514\"}."
 msgstr "El valor predeterminado es @samp{\"16514\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:23302
+#: doc/guix.texi:26163
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string tcp-port"
 msgstr "{parámetro de @code{libvirt-configuration}} string tcp-port"
 
-# TODO: Enviar parche
 #. type: deftypevr
-#: doc/guix.texi:23305
-msgid "Port for accepting insecure TCP connections This can be a port number, or service name"
+#: doc/guix.texi:26166
+msgid "Port for accepting insecure TCP connections.  This can be a port number, or service name."
 msgstr "Puerto en el que se aceptan conexiones inseguras. Puede ser un número de puerto o un nombre de servicio."
 
 #. type: deftypevr
-#: doc/guix.texi:23307
+#: doc/guix.texi:26168
 msgid "Defaults to @samp{\"16509\"}."
 msgstr "El valor predeterminado es @samp{\"16509\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:23310
+#: doc/guix.texi:26171
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string listen-addr"
 msgstr "{parámetro de @code{libvirt-configuration}} string listen-addr"
 
 #. type: deftypevr
-#: doc/guix.texi:23312
+#: doc/guix.texi:26173
 msgid "IP address or hostname used for client connections."
 msgstr "Dirección IP o nombre de máquina usado para las conexiones de clientes."
 
 #. type: deftypevr
-#: doc/guix.texi:23314
+#: doc/guix.texi:26175
 msgid "Defaults to @samp{\"0.0.0.0\"}."
 msgstr "El valor predeterminado es @samp{\"0.0.0.0\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:23317
+#: doc/guix.texi:26178
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} boolean mdns-adv?"
 msgstr "{parámetro de @code{libvirt-configuration}} boolean mdns-adv?"
 
 #. type: deftypevr
-#: doc/guix.texi:23319
+#: doc/guix.texi:26180
 msgid "Flag toggling mDNS advertisement of the libvirt service."
 msgstr "Opción que determina el anuncio mDNS del servicio libvirt."
 
 #. type: deftypevr
-#: doc/guix.texi:23322
+#: doc/guix.texi:26183
 msgid "Alternatively can disable for all services on a host by stopping the Avahi daemon."
 msgstr "De manera alternativa puede desactivarse para todos los servicios en una máquina parando el daemon Avahi."
 
 #. type: deftypevr
-#: doc/guix.texi:23327
+#: doc/guix.texi:26188
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string mdns-name"
 msgstr "{parámetro de @code{libvirt-configuration}} string mdns-name"
 
 # FUZZY FUZZY
 #. type: deftypevr
-#: doc/guix.texi:23330
+#: doc/guix.texi:26191
 msgid "Default mDNS advertisement name.  This must be unique on the immediate broadcast network."
 msgstr "Nombre predeterminado del anuncio mDNS. Debe ser único en la red de distribución inmediata."
 
 #. type: deftypevr
-#: doc/guix.texi:23332
+#: doc/guix.texi:26193
 msgid "Defaults to @samp{\"Virtualization Host <hostname>\"}."
 msgstr "El valor predeterminado es @samp{\"Virtualization Host <hostname>\"}.<"
 
 #. type: deftypevr
-#: doc/guix.texi:23335
+#: doc/guix.texi:26196
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string unix-sock-group"
 msgstr "{parámetro de @code{libvirt-configuration}} string unix-sock-group"
 
 #. type: deftypevr
-#: doc/guix.texi:23339
+#: doc/guix.texi:26200
 msgid "UNIX domain socket group ownership.  This can be used to allow a 'trusted' set of users access to management capabilities without becoming root."
 msgstr "Grupo propietario del socket de dominio de UNIX. Puede usarse para permitir a un conjunto de usuarias ``de confianza'' acceso a las funcionalidades de gestión sin convertirse en root."
 
 #. type: deftypevr
-#: doc/guix.texi:23344
+#: doc/guix.texi:26205
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string unix-sock-ro-perms"
 msgstr "{parámetro de @code{libvirt-configuration}} string unix-sock-ro-perms"
 
 #. type: deftypevr
-#: doc/guix.texi:23347
+#: doc/guix.texi:26208
 msgid "UNIX socket permissions for the R/O socket.  This is used for monitoring VM status only."
 msgstr "Permisos del socket UNIX de sólo lectura@footnote{R/O: Read-Only en inglés.}. Se usa únicamente para monitorizar el estado de las máquinas virtuales."
 
 #. type: deftypevr
-#: doc/guix.texi:23349 doc/guix.texi:23367
+#: doc/guix.texi:26210 doc/guix.texi:26228
 msgid "Defaults to @samp{\"0777\"}."
 msgstr "El valor predeterminado es @samp{\"0777\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:23352
+#: doc/guix.texi:26213
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string unix-sock-rw-perms"
 msgstr "{parámetro de @code{libvirt-configuration}} string unix-sock-rw-perms"
 
 #. type: deftypevr
-#: doc/guix.texi:23356
+#: doc/guix.texi:26217
 msgid "UNIX socket permissions for the R/W socket.  Default allows only root.  If PolicyKit is enabled on the socket, the default will change to allow everyone (eg, 0777)"
 msgstr "Permisos del socket UNIX de lectura/escritura@footnote{R/W: Read-Write en inglés.}. El valor predeterminado únicamente permite acceso a root. Si PolicyKit se encuentra activo en el socket, el valor predeterminado cambiará para permitir acceso universal (es decir, 0777)."
 
 #. type: deftypevr
-#: doc/guix.texi:23358
+#: doc/guix.texi:26219
 msgid "Defaults to @samp{\"0770\"}."
 msgstr "El valor predeterminado es @samp{\"0770\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:23361
+#: doc/guix.texi:26222
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string unix-sock-admin-perms"
 msgstr "{parámetro de @code{libvirt-configuration}} string unix-sock-admin-perms"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:23365
+#: doc/guix.texi:26226
 msgid "UNIX socket permissions for the admin socket.  Default allows only owner (root), do not change it unless you are sure to whom you are exposing the access to."
 msgstr "Permisos del socket UNIX de administración. El valor predeterminado únicamente permite acceso a la propietaria (root), no lo cambie a menos que esté completamente segura de a quién expone el acceso."
 
 #. type: deftypevr
-#: doc/guix.texi:23370
+#: doc/guix.texi:26231
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string unix-sock-dir"
 msgstr "{parámetro de @code{libvirt-configuration}} string unix-sock-dir"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:23372
+#: doc/guix.texi:26233
 msgid "The directory in which sockets will be found/created."
 msgstr "Directorio en el que los sockets se encuentran/crean."
 
 #. type: deftypevr
-#: doc/guix.texi:23374
+#: doc/guix.texi:26235
 msgid "Defaults to @samp{\"/var/run/libvirt\"}."
 msgstr "El valor predeterminado es @samp{\"/var/run/libvirt\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:23377
+#: doc/guix.texi:26238
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string auth-unix-ro"
 msgstr "{parámetro de @code{libvirt-configuration}} string auth-unix-ro"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:23380
+#: doc/guix.texi:26241
 msgid "Authentication scheme for UNIX read-only sockets.  By default socket permissions allow anyone to connect"
 msgstr "Esquema de identificación para los sockets de solo-lectura de UNIX. Los permisos predeterminados del socket permiten la conexión de cualquier usuaria."
 
 #. type: deftypevr
-#: doc/guix.texi:23382 doc/guix.texi:23391
+#: doc/guix.texi:26243 doc/guix.texi:26252
 msgid "Defaults to @samp{\"polkit\"}."
 msgstr "El valor predeterminado es @samp{\"polkit\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:23385
+#: doc/guix.texi:26246
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string auth-unix-rw"
 msgstr "{parámetro de @code{libvirt-configuration}} string auth-unix-rw"
 
 #. type: deftypevr
-#: doc/guix.texi:23389
+#: doc/guix.texi:26250
 msgid "Authentication scheme for UNIX read-write sockets.  By default socket permissions only allow root.  If PolicyKit support was compiled into libvirt, the default will be to use 'polkit' auth."
 msgstr "Esquema de identificación para los sockets de lectura/escritura de UNIX. Los permisos predeterminados del socket permiten la conexión únicamente a root. Si se activó en la compilación de libvirt la interoperabilidad con PolicyKit, el valor predeterminado es usar la identificación ``policykit''."
 
 #. type: deftypevr
-#: doc/guix.texi:23394
+#: doc/guix.texi:26255
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string auth-tcp"
 msgstr "{parámetro de @code{libvirt-configuration}} string auth-tcp"
 
 #. type: deftypevr
-#: doc/guix.texi:23398
+#: doc/guix.texi:26259
 msgid "Authentication scheme for TCP sockets.  If you don't enable SASL, then all TCP traffic is cleartext.  Don't do this outside of a dev/test scenario."
 msgstr "Esquema de identificación para los sockets TCP. Si no activa SASL, todo el tráfico TCP estará en texto plano. No lo haga más allá de un escenario de desarrollo/pruebas."
 
 #. type: deftypevr
-#: doc/guix.texi:23400
+#: doc/guix.texi:26261
 msgid "Defaults to @samp{\"sasl\"}."
 msgstr "El valor predeterminado es @samp{\"sasl\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:23403
+#: doc/guix.texi:26264
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string auth-tls"
 msgstr "{parámetro de @code{libvirt-configuration}} string auth-tls"
 
 #. type: deftypevr
-#: doc/guix.texi:23407
+#: doc/guix.texi:26268
 msgid "Authentication scheme for TLS sockets.  TLS sockets already have encryption provided by the TLS layer, and limited authentication is done by certificates."
 msgstr "Esquema de identificación para los sockets TLS. Los sockets TLS ya se encuentran cifrados gracias a la capa TLS, y una identificación limitada se realiza con los certificados."
 
 #. type: deftypevr
-#: doc/guix.texi:23410
+#: doc/guix.texi:26271
 msgid "It is possible to make use of any SASL authentication mechanism as well, by using 'sasl' for this option"
 msgstr "También es posible hacer uso de cualquier mecanismo de identificación SASL proporcionando ``sasl'' en esta opción."
 
 #. type: deftypevr
-#: doc/guix.texi:23412
+#: doc/guix.texi:26273
 msgid "Defaults to @samp{\"none\"}."
 msgstr "El valor predeterminado es @samp{\"none\"}."
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:23415
+#: doc/guix.texi:26276
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} optional-list access-drivers"
 msgstr "{parámetro de @code{libvirt-configuration}} lista-opcional access-drivers"
 
 #. type: deftypevr
-#: doc/guix.texi:23417
+#: doc/guix.texi:26278
 msgid "API access control scheme."
 msgstr "Esquema de la API de control de acceso."
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:23420
+#: doc/guix.texi:26281
 msgid "By default an authenticated user is allowed access to all APIs.  Access drivers can place restrictions on this."
 msgstr "De manera predeterminada una usuaria identificada puede acceder a todas las API. Los controladores de acceso pueden incluir restricciones de acceso sobre ello."
 
 #. type: deftypevr
-#: doc/guix.texi:23425
+#: doc/guix.texi:26286
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string key-file"
 msgstr "{parámetro de @code{libvirt-configuration}} string key-file"
 
 #. type: deftypevr
-#: doc/guix.texi:23428
+#: doc/guix.texi:26289
 msgid "Server key file path.  If set to an empty string, then no private key is loaded."
-msgstr "Ruta del fichero con la clave del servidor. Si se proporciona una cadena vacía, no se carga ninguna clave privada."
+msgstr "Ruta del archivo con la clave del servidor. Si se proporciona una cadena vacía, no se carga ninguna clave privada."
 
 #. type: deftypevr
-#: doc/guix.texi:23433
+#: doc/guix.texi:26294
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string cert-file"
 msgstr "{parámetro de @code{libvirt-configuration}} string cert-file"
 
 #. type: deftypevr
-#: doc/guix.texi:23436
+#: doc/guix.texi:26297
 msgid "Server key file path.  If set to an empty string, then no certificate is loaded."
-msgstr "Ruta del fichero con la clave del servidor. Si se proporciona una cadena vacía, no se carga ningún certificado."
+msgstr "Ruta del archivo con la clave del servidor. Si se proporciona una cadena vacía, no se carga ningún certificado."
 
 #. type: deftypevr
-#: doc/guix.texi:23441
+#: doc/guix.texi:26302
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string ca-file"
 msgstr "{parámetro de @code{libvirt-configuration}} string ca-file"
 
 #. type: deftypevr
-#: doc/guix.texi:23444
+#: doc/guix.texi:26305
 msgid "Server key file path.  If set to an empty string, then no CA certificate is loaded."
-msgstr "Ruta del fichero con la clave del servidor. Si se proporciona una cadena vacía, no se carga ningún certificado de CA."
+msgstr "Ruta del archivo con la clave del servidor. Si se proporciona una cadena vacía, no se carga ningún certificado de CA."
 
 #. type: deftypevr
-#: doc/guix.texi:23449
+#: doc/guix.texi:26310
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string crl-file"
 msgstr "{parámetro de @code{libvirt-configuration}} string crl-file"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:23452
+#: doc/guix.texi:26313
 msgid "Certificate revocation list path.  If set to an empty string, then no CRL is loaded."
 msgstr "Ruta de la lista de revocaciones de certificado. Si se proporciona una cadena vacía, no se carga ninguna lista."
 
 #. type: deftypevr
-#: doc/guix.texi:23457
+#: doc/guix.texi:26318
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} boolean tls-no-sanity-cert"
 msgstr "{parámetro de @code{libvirt-configuration}} boolean tls-no-sanity-cert"
 
 #. type: deftypevr
-#: doc/guix.texi:23459
+#: doc/guix.texi:26320
 msgid "Disable verification of our own server certificates."
 msgstr "Desactiva la verificación de los propios certificados del servidor."
 
 #. type: deftypevr
-#: doc/guix.texi:23462
+#: doc/guix.texi:26323
 msgid "When libvirtd starts it performs some sanity checks against its own certificates."
 msgstr "Cuando libvirtd arranca, realiza algunas comprobaciones básicas sobre sus propios certificados."
 
 #. type: deftypevr
-#: doc/guix.texi:23467
+#: doc/guix.texi:26328
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} boolean tls-no-verify-cert"
 msgstr "{parámetro de @code{libvirt-configuration}} boolean tls-no-verify-cert"
 
 #. type: deftypevr
-#: doc/guix.texi:23469
+#: doc/guix.texi:26330
 msgid "Disable verification of client certificates."
 msgstr "Desactiva la verificación de certificados de clientes."
 
 #. type: deftypevr
-#: doc/guix.texi:23473
+#: doc/guix.texi:26334
 msgid "Client certificate verification is the primary authentication mechanism.  Any client which does not present a certificate signed by the CA will be rejected."
 msgstr "La verificación de certificados de cliente es el mecanismo primario de identificación. Se rechazará cualquier cliente que no presente un certificado firmado por la autoridad de certificación (CA)."
 
 #. type: deftypevr
-#: doc/guix.texi:23478
+#: doc/guix.texi:26339
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} optional-list tls-allowed-dn-list"
 msgstr "{parámetro de @code{libvirt-configuration}} lista-opcional tls-allowed-dn-list"
 
 # FUZZY FUZZY FUZZY
 #. type: deftypevr
-#: doc/guix.texi:23480
+#: doc/guix.texi:26341
 msgid "Whitelist of allowed x509 Distinguished Name."
 msgstr "Lista de nombres distinguidos (DN) x509 permitidos."
 
 #. type: deftypevr
-#: doc/guix.texi:23485
+#: doc/guix.texi:26346
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} optional-list sasl-allowed-usernames"
 msgstr "{parámetro de @code{libvirt-configuration}} lista-opcional sasl-allowed-usernames"
 
 # FUZZY FUZZY FUZZY
 #. type: deftypevr
-#: doc/guix.texi:23488
+#: doc/guix.texi:26349
 msgid "Whitelist of allowed SASL usernames.  The format for username depends on the SASL authentication mechanism."
 msgstr "Lista de nombres de usuaria SASL permitidos. El formato para el nombre de la usuaria depende del mecanismo de identificación SASL."
 
 #. type: deftypevr
-#: doc/guix.texi:23493
+#: doc/guix.texi:26354
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string tls-priority"
 msgstr "{parámetro de @code{libvirt-configuration}} string tls-priority"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:23497
-msgid "Override the compile time default TLS priority string.  The default is usually \"NORMAL\" unless overridden at build time.  Only set this is it is desired for libvirt to deviate from the global default settings."
-msgstr "Cambia el valor de la cadena de prioridad de TLS predeterminada en tiempo de compilación. El valor predeterminado habitualmente es \"NORMAL\" a menos que se cambiase en tiempo de compilación. Proporcione este valor únicamente si desea que libvirt se desvíe de la configuración global predeterminada."
+#: doc/guix.texi:26358
+msgid "Override the compile time default TLS priority string.  The default is usually @samp{\"NORMAL\"} unless overridden at build time.  Only set this is it is desired for libvirt to deviate from the global default settings."
+msgstr "Cambia el valor de la cadena de prioridad de TLS predeterminada en tiempo de compilación. El valor predeterminado habitualmente es @samp{\"NORMAL\"} a menos que se cambiase en tiempo de compilación. Proporcione este valor únicamente si desea que libvirt se desvíe de la configuración global predeterminada."
 
 #. type: deftypevr
-#: doc/guix.texi:23499
+#: doc/guix.texi:26360
 msgid "Defaults to @samp{\"NORMAL\"}."
 msgstr "El valor predeterminado es @samp{\"NORMAL\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:23502
+#: doc/guix.texi:26363
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer max-clients"
 msgstr "{parámetro de @code{libvirt-configuration}} integer max-clients"
 
 #. type: deftypevr
-#: doc/guix.texi:23505 doc/guix.texi:23928
+#: doc/guix.texi:26366 doc/guix.texi:26790
 msgid "Maximum number of concurrent client connections to allow over all sockets combined."
 msgstr "Número máximo de conexiones concurrentes de clientes permitidas en todos los sockets combinados."
 
 #. type: deftypevr
-#: doc/guix.texi:23507
+#: doc/guix.texi:26368
 msgid "Defaults to @samp{5000}."
 msgstr "El valor predeterminado es @samp{5000}."
 
 #. type: deftypevr
-#: doc/guix.texi:23510
+#: doc/guix.texi:26371
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer max-queued-clients"
 msgstr "{parámetro de @code{libvirt-configuration}} integer max-queued-clients"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:23514
+#: doc/guix.texi:26375
 msgid "Maximum length of queue of connections waiting to be accepted by the daemon.  Note, that some protocols supporting retransmission may obey this so that a later reattempt at connection succeeds."
 msgstr "Longitud máxima de la cola de conexiones a la espera de ser aceptadas por el daemon. Fíjese que algunos protocolos que implementan la retransmisión pueden obedecer esto de manera que un intento posterior de conexión tenga éxito."
 
 #. type: deftypevr
-#: doc/guix.texi:23519
+#: doc/guix.texi:26380
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer max-anonymous-clients"
 msgstr "{parámetro de @code{libvirt-configuration}} integer max-anonymous-clients"
 
 #. type: deftypevr
-#: doc/guix.texi:23522
+#: doc/guix.texi:26383
 msgid "Maximum length of queue of accepted but not yet authenticated clients.  Set this to zero to turn this feature off"
 msgstr "Longitud máxima de la cola de clientes aceptados pero no identificados todavía. Proporcione el valor cero para desactivar esta característica."
 
 #. type: deftypevr
-#: doc/guix.texi:23524 doc/guix.texi:23542 doc/guix.texi:23558
+#: doc/guix.texi:26385 doc/guix.texi:26403 doc/guix.texi:26419
 msgid "Defaults to @samp{20}."
 msgstr "El valor predeterminado es @samp{20}."
 
 #. type: deftypevr
-#: doc/guix.texi:23527
+#: doc/guix.texi:26388
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer min-workers"
 msgstr "{parámetro de @code{libvirt-configuration}} integer min-workers"
 
 #. type: deftypevr
-#: doc/guix.texi:23529
+#: doc/guix.texi:26390
 msgid "Number of workers to start up initially."
 msgstr "Número de procesos de trabajo que se lanzarán inicialmente."
 
 #. type: deftypevr
-#: doc/guix.texi:23534
+#: doc/guix.texi:26395
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer max-workers"
 msgstr "{parámetro de @code{libvirt-configuration}} integer max-workers"
 
 #. type: deftypevr
-#: doc/guix.texi:23536
+#: doc/guix.texi:26397
 msgid "Maximum number of worker threads."
 msgstr "Número máximo de hilos de trabajo."
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:23540
+#: doc/guix.texi:26401
 msgid "If the number of active clients exceeds @code{min-workers}, then more threads are spawned, up to max_workers limit.  Typically you'd want max_workers to equal maximum number of clients allowed."
 msgstr "Si el número de clientes excede @code{min-workers}, se lanzan más hilos, hasta el límite @code{max-workers}. Habitualmente se desea que @code{max-workers} sea igual al número máximo de clientes permitido."
 
 #. type: deftypevr
-#: doc/guix.texi:23545
+#: doc/guix.texi:26406
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer prio-workers"
 msgstr "{parámetro de @code{libvirt-configuration}} integer prio-workers"
 
 # FUZZY FUZZY
 #. type: deftypevr
-#: doc/guix.texi:23549
+#: doc/guix.texi:26410
 msgid "Number of priority workers.  If all workers from above pool are stuck, some calls marked as high priority (notably domainDestroy) can be executed in this pool."
 msgstr "Número de procesos de trabajo prioritarios. Si todos los hilos de trabajo del conjunto previo se encuentran bloqueados, algunas llamadas marcadas como de alta prioridad (notablemente domainDestroy) pueden ejecutarse en este conjunto de hilos."
 
 #. type: deftypevr
-#: doc/guix.texi:23554
+#: doc/guix.texi:26415
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer max-requests"
 msgstr "{parámetro de @code{libvirt-configuration}} integer max-requests"
 
 #. type: deftypevr
-#: doc/guix.texi:23556
+#: doc/guix.texi:26417
 msgid "Total global limit on concurrent RPC calls."
 msgstr "Límite global total de llamadas RPC concurrentes."
 
 #. type: deftypevr
-#: doc/guix.texi:23561
+#: doc/guix.texi:26422
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer max-client-requests"
 msgstr "{parámetro de @code{libvirt-configuration}} integer max-client-requests"
 
 #. type: deftypevr
-#: doc/guix.texi:23565
+#: doc/guix.texi:26426
 msgid "Limit on concurrent requests from a single client connection.  To avoid one client monopolizing the server this should be a small fraction of the global max_requests and max_workers parameter."
 msgstr "Límite de peticiones concurrentes desde una única conexión de cliente. Para evitar que un cliente monopolice el servidor esto debe ser una pequeña fracción de los parámetros globales ``max_requests'' y ``max_workers''."
 
 #. type: deftypevr
-#: doc/guix.texi:23570
+#: doc/guix.texi:26431
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer admin-min-workers"
 msgstr "{parámetro de @code{libvirt-configuration}} integer admin-min-workers"
 
 #. type: deftypevr
-#: doc/guix.texi:23572
+#: doc/guix.texi:26433
 msgid "Same as @code{min-workers} but for the admin interface."
 msgstr "Igual que @code{min-workers} pero para la interfaz de administración."
 
 #. type: deftypevr
-#: doc/guix.texi:23577
+#: doc/guix.texi:26438
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer admin-max-workers"
 msgstr "{parámetro de @code{libvirt-configuration}} integer admin-max-workers"
 
 #. type: deftypevr
-#: doc/guix.texi:23579
+#: doc/guix.texi:26440
 msgid "Same as @code{max-workers} but for the admin interface."
 msgstr "Igual que @code{max-workers} pero para la interfaz de administración."
 
 #. type: deftypevr
-#: doc/guix.texi:23584
+#: doc/guix.texi:26445
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer admin-max-clients"
 msgstr "{parámetro de @code{libvirt-configuration}} integer admin-max-clients"
 
 #. type: deftypevr
-#: doc/guix.texi:23586
+#: doc/guix.texi:26447
 msgid "Same as @code{max-clients} but for the admin interface."
 msgstr "Igual que @code{max-clients} pero para la interfaz de administración."
 
 #. type: deftypevr
-#: doc/guix.texi:23591
+#: doc/guix.texi:26452
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer admin-max-queued-clients"
 msgstr "{parámetro de @code{libvirt-configuration}} integer admin-max-queued-clients"
 
 #. type: deftypevr
-#: doc/guix.texi:23593
+#: doc/guix.texi:26454
 msgid "Same as @code{max-queued-clients} but for the admin interface."
 msgstr "Igual que @code{max-queued-clients} pero para la interfaz de administración."
 
 #. type: deftypevr
-#: doc/guix.texi:23598
+#: doc/guix.texi:26459
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer admin-max-client-requests"
 msgstr "{parámetro de @code{libvirt-configuration}} integer admin-max-client-requests"
 
 #. type: deftypevr
-#: doc/guix.texi:23600
+#: doc/guix.texi:26461
 msgid "Same as @code{max-client-requests} but for the admin interface."
 msgstr "Igual que @code{max-client-requests} pero para la interfaz de administración."
 
 #. type: deftypevr
-#: doc/guix.texi:23605
+#: doc/guix.texi:26466
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer log-level"
 msgstr "{parámetro de @code{libvirt-configuration}} integer log-level"
 
 #. type: deftypevr
-#: doc/guix.texi:23607 doc/guix.texi:23830
+#: doc/guix.texi:26468 doc/guix.texi:26692
 msgid "Logging level.  4 errors, 3 warnings, 2 information, 1 debug."
 msgstr "Nivel de registro.  4 errores, 3 avisos, 2 información, 1 depuración."
 
 #. type: deftypevr
-#: doc/guix.texi:23612
+#: doc/guix.texi:26473
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string log-filters"
 msgstr "{parámetro de @code{libvirt-configuration}} string log-filters"
 
 #. type: deftypevr
-#: doc/guix.texi:23614 doc/guix.texi:23837
+#: doc/guix.texi:26475 doc/guix.texi:26699
 msgid "Logging filters."
 msgstr "Filtros del registro."
 
-# TODO: Enviar parche.
 #. type: deftypevr
-#: doc/guix.texi:23617 doc/guix.texi:23840
-msgid "A filter allows to select a different logging level for a given category of logs The format for a filter is one of:"
+#: doc/guix.texi:26478
+msgid "A filter allows to select a different logging level for a given category of logs.  The format for a filter is one of:"
 msgstr "Un filtro permite la selección de un nivel de registro diferente para una categoría dada de registros. El formato del filtro es uno de los siguientes:"
 
 #. type: itemize
-#: doc/guix.texi:23621 doc/guix.texi:23844
+#: doc/guix.texi:26482 doc/guix.texi:26706
 msgid "x:name"
 msgstr "x:nombre"
 
 #. type: itemize
-#: doc/guix.texi:23624 doc/guix.texi:23847
+#: doc/guix.texi:26485 doc/guix.texi:26709
 msgid "x:+name"
 msgstr "x:+nombre"
 
 #. type: deftypevr
-#: doc/guix.texi:23634 doc/guix.texi:23857
-msgid "where @code{name} is a string which is matched against the category given in the @code{VIR_LOG_INIT()} at the top of each libvirt source file, e.g., \"remote\", \"qemu\", or \"util.json\" (the name in the filter can be a substring of the full category name, in order to match multiple similar categories), the optional \"+\" prefix tells libvirt to log stack trace for each message matching name, and @code{x} is the minimal level where matching messages should be logged:"
-msgstr "donde @code{nombre} es una cadena contra la que se compara la categoría proporcionada en la llamada @code{VIR_LOG_INIT()} al principio de cada fichero de fuentes de libvirt, por ejemplo \"remote\", \"qemu\" o \"util.json\" (el nombre en el filtro puede ser una subcadena del nombre completo de la categoría, para aceptar múltiples categorías con nombres similares), el prefijo opcional \"+\" indica a libvirt que registre la pila de llamadas en cada mensaje con el nombre correspondiente, y @code{x} es el nivel mínimo de los mensajes que deben registrarse:"
+#: doc/guix.texi:26496
+msgid "where @code{name} is a string which is matched against the category given in the @code{VIR_LOG_INIT()} at the top of each libvirt source file, e.g., @samp{\"remote\"}, @samp{\"qemu\"}, or @samp{\"util.json\"} (the name in the filter can be a substring of the full category name, in order to match multiple similar categories), the optional @samp{\"+\"} prefix tells libvirt to log stack trace for each message matching name, and @code{x} is the minimal level where matching messages should be logged:"
+msgstr "donde @code{nombre} es una cadena contra la que se compara la categoría proporcionada en la llamada @code{VIR_LOG_INIT()} al principio de cada archivo de fuentes de libvirt, por ejemplo @samp{\"remote\"}, @samp{\"qemu\"} o @samp{\"util.json\"} (el nombre en el filtro puede ser una subcadena del nombre completo de la categoría, para aceptar múltiples categorías con nombres similares), el prefijo opcional @samp{\"+\"} indica a libvirt que registre la pila de llamadas en cada mensaje con el nombre correspondiente, y @code{x} es el nivel mínimo de los mensajes que deben registrarse:"
 
 #. type: itemize
-#: doc/guix.texi:23638 doc/guix.texi:23683 doc/guix.texi:23861
-#: doc/guix.texi:23906
+#: doc/guix.texi:26500 doc/guix.texi:26545 doc/guix.texi:26723
+#: doc/guix.texi:26768
 msgid "1: DEBUG"
 msgstr "1: DEBUG (depuración)"
 
 #. type: itemize
-#: doc/guix.texi:23641 doc/guix.texi:23686 doc/guix.texi:23864
-#: doc/guix.texi:23909
+#: doc/guix.texi:26503 doc/guix.texi:26548 doc/guix.texi:26726
+#: doc/guix.texi:26771
 msgid "2: INFO"
 msgstr "2: INFO (información)"
 
 #. type: itemize
-#: doc/guix.texi:23644 doc/guix.texi:23689 doc/guix.texi:23867
-#: doc/guix.texi:23912
+#: doc/guix.texi:26506 doc/guix.texi:26551 doc/guix.texi:26729
+#: doc/guix.texi:26774
 msgid "3: WARNING"
 msgstr "3: WARNING (aviso)"
 
 #. type: itemize
-#: doc/guix.texi:23647 doc/guix.texi:23692 doc/guix.texi:23870
-#: doc/guix.texi:23915
+#: doc/guix.texi:26509 doc/guix.texi:26554 doc/guix.texi:26732
+#: doc/guix.texi:26777
 msgid "4: ERROR"
 msgstr "4: ERROR"
 
 #. type: deftypevr
-#: doc/guix.texi:23652 doc/guix.texi:23875
+#: doc/guix.texi:26514 doc/guix.texi:26737
 msgid "Multiple filters can be defined in a single filters statement, they just need to be separated by spaces."
 msgstr "Se pueden definir en una única sentencia múltiples filtros, únicamente hace falta separarlos por espacios."
 
 #. type: deftypevr
-#: doc/guix.texi:23654 doc/guix.texi:23877
+#: doc/guix.texi:26516 doc/guix.texi:26739
 msgid "Defaults to @samp{\"3:remote 4:event\"}."
 msgstr "El valor predeterminado es @samp{\"3:remote 4:event\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:23657
+#: doc/guix.texi:26519
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string log-outputs"
 msgstr "{parámetro de @code{libvirt-configuration}} string log-outputs"
@@ -46111,248 +51200,248 @@ msgstr "{parámetro de @code{libvirt-configuration}} string log-outputs"
 # FUZZY
 # MAAV (TODO): Log
 #. type: deftypevr
-#: doc/guix.texi:23659 doc/guix.texi:23882
+#: doc/guix.texi:26521 doc/guix.texi:26744
 msgid "Logging outputs."
 msgstr "Salidas de log."
 
 # FUZZY
 # MAAV (TODO): Log
 #. type: deftypevr
-#: doc/guix.texi:23662
+#: doc/guix.texi:26524
 msgid "An output is one of the places to save logging information.  The format for an output can be:"
 msgstr "Una salida es uno de esos lugares para almacenar información de logging. El formato para una salida puede ser:"
 
 #. type: item
-#: doc/guix.texi:23664 doc/guix.texi:23887
+#: doc/guix.texi:26526 doc/guix.texi:26749
 #, no-wrap
 msgid "x:stderr"
 msgstr "x:stderr"
 
 #. type: table
-#: doc/guix.texi:23666 doc/guix.texi:23889
+#: doc/guix.texi:26528 doc/guix.texi:26751
 msgid "output goes to stderr"
 msgstr "la salida va a stderr"
 
 #. type: item
-#: doc/guix.texi:23667 doc/guix.texi:23890
+#: doc/guix.texi:26529 doc/guix.texi:26752
 #, no-wrap
 msgid "x:syslog:name"
 msgstr "x:syslog:nombre"
 
 #. type: table
-#: doc/guix.texi:23669 doc/guix.texi:23892
+#: doc/guix.texi:26531 doc/guix.texi:26754
 msgid "use syslog for the output and use the given name as the ident"
 msgstr "usa syslog para la salida y usa el nombre proporcionado como identificador"
 
 #. type: item
-#: doc/guix.texi:23670 doc/guix.texi:23893
+#: doc/guix.texi:26532 doc/guix.texi:26755
 #, no-wrap
 msgid "x:file:file_path"
-msgstr "x:file:ruta_fichero"
+msgstr "x:file:ruta_archivo"
 
 #. type: table
-#: doc/guix.texi:23672 doc/guix.texi:23895
+#: doc/guix.texi:26534 doc/guix.texi:26757
 msgid "output to a file, with the given filepath"
-msgstr "encamina la salida a un fichero, con la ruta proporcionada"
+msgstr "encamina la salida a un archivo, con la ruta proporcionada"
 
 #. type: item
-#: doc/guix.texi:23673 doc/guix.texi:23896
+#: doc/guix.texi:26535 doc/guix.texi:26758
 #, no-wrap
 msgid "x:journald"
 msgstr "x:journald"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:23675 doc/guix.texi:23898
+#: doc/guix.texi:26537 doc/guix.texi:26760
 msgid "output to journald logging system"
 msgstr "usa el sistema de logging journald"
 
 #. type: deftypevr
-#: doc/guix.texi:23679 doc/guix.texi:23902
+#: doc/guix.texi:26541 doc/guix.texi:26764
 msgid "In all case the x prefix is the minimal level, acting as a filter"
 msgstr "En todos los casos el prefijo x es el nivel mínimo, que actúa como filtro"
 
 #. type: deftypevr
-#: doc/guix.texi:23697 doc/guix.texi:23920
+#: doc/guix.texi:26559 doc/guix.texi:26782
 msgid "Multiple outputs can be defined, they just need to be separated by spaces."
 msgstr "Se pueden definir salidas múltiples, únicamente deben separarse por espacios."
 
 #. type: deftypevr
-#: doc/guix.texi:23699 doc/guix.texi:23922
+#: doc/guix.texi:26561 doc/guix.texi:26784
 msgid "Defaults to @samp{\"3:stderr\"}."
 msgstr "El valor predeterminado es @samp{\"3:stderr\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:23702
+#: doc/guix.texi:26564
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer audit-level"
 msgstr "{parámetro de @code{libvirt-configuration}} integer audit-level"
 
 #. type: deftypevr
-#: doc/guix.texi:23704
+#: doc/guix.texi:26566
 msgid "Allows usage of the auditing subsystem to be altered"
 msgstr "Permite la alteración del uso del sistema de auditoría."
 
 #. type: itemize
-#: doc/guix.texi:23708
+#: doc/guix.texi:26570
 msgid "0: disable all auditing"
 msgstr "0: desactiva la auditoría"
 
 #. type: itemize
-#: doc/guix.texi:23711
+#: doc/guix.texi:26573
 msgid "1: enable auditing, only if enabled on host"
 msgstr "1: activa la auditoría, únicamente si está activado en la máquina"
 
 #. type: itemize
-#: doc/guix.texi:23714
+#: doc/guix.texi:26576
 msgid "2: enable auditing, and exit if disabled on host."
 msgstr "2: activa la auditoría, y sale si está desactivada en la máquina."
 
 #. type: deftypevr
-#: doc/guix.texi:23721
+#: doc/guix.texi:26583
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} boolean audit-logging"
 msgstr "{parámetro de @code{libvirt-configuration}} boolean audit-logging"
 
 #. type: deftypevr
-#: doc/guix.texi:23723
+#: doc/guix.texi:26585
 msgid "Send audit messages via libvirt logging infrastructure."
 msgstr "Envía los mensajes de auditoría a través de la infraestructura de registro de libvirt."
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:23728
+#: doc/guix.texi:26590
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} optional-string host-uuid"
 msgstr "{parámetro de @code{libvirt-configuration}} string-opcional host-uuid"
 
 #. type: deftypevr
-#: doc/guix.texi:23730
+#: doc/guix.texi:26592
 msgid "Host UUID.  UUID must not have all digits be the same."
 msgstr "UUID de la máquina anfitriona. No pueden ser iguales todos los dígitos del UUID."
 
 #. type: deftypevr
-#: doc/guix.texi:23735
+#: doc/guix.texi:26597
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string host-uuid-source"
 msgstr "{parámetro de @code{libvirt-configuration}} string host-uuid-source"
 
 #. type: deftypevr
-#: doc/guix.texi:23737
+#: doc/guix.texi:26599
 msgid "Source to read host UUID."
 msgstr "Fuente de lectura del UUID de la máquina anfitriona."
 
 #. type: itemize
-#: doc/guix.texi:23741
+#: doc/guix.texi:26603
 msgid "@code{smbios}: fetch the UUID from @code{dmidecode -s system-uuid}"
 msgstr "@code{smbios}: obtiene el UUID de @code{dmidecode -s system-uuid}"
 
 #. type: itemize
-#: doc/guix.texi:23744
+#: doc/guix.texi:26606
 msgid "@code{machine-id}: fetch the UUID from @code{/etc/machine-id}"
 msgstr "@code{machine-id}: obtiene el UUID de @code{/etc/machine-id}"
 
 #. type: deftypevr
-#: doc/guix.texi:23749
+#: doc/guix.texi:26611
 msgid "If @code{dmidecode} does not provide a valid UUID a temporary UUID will be generated."
 msgstr "Si @code{dmidecode} no proporciona un UUID válido, se generará un UUID temporal."
 
 #. type: deftypevr
-#: doc/guix.texi:23751
+#: doc/guix.texi:26613
 msgid "Defaults to @samp{\"smbios\"}."
 msgstr "El valor predeterminado es @samp{\"smbios\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:23754
+#: doc/guix.texi:26616
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer keepalive-interval"
 msgstr "{parámetro de @code{libvirt-configuration}} integer keepalive-interval"
 
 #. type: deftypevr
-#: doc/guix.texi:23759
+#: doc/guix.texi:26621
 msgid "A keepalive message is sent to a client after @code{keepalive_interval} seconds of inactivity to check if the client is still responding.  If set to -1, libvirtd will never send keepalive requests; however clients can still send them and the daemon will send responses."
 msgstr "Un mensaje ``keepalive'' se envía al cliente tras @code{keepalive_interval} segundos de inactividad para comprobar si el cliente todavía responde. Si se proporciona el valor -1, libvirtd nunca enviará peticiones ``keepalive''; no obstante los clientes todavía pueden mandarlas y el daemon enviará las respuestas."
 
 #. type: deftypevr
-#: doc/guix.texi:23764
+#: doc/guix.texi:26626
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer keepalive-count"
 msgstr "{parámetro de @code{libvirt-configuration}} integer keepalive-count"
 
 #. type: deftypevr
-#: doc/guix.texi:23768
+#: doc/guix.texi:26630
 msgid "Maximum number of keepalive messages that are allowed to be sent to the client without getting any response before the connection is considered broken."
 msgstr "Número máximo de mensajes ``keepalive'' que se permite enviar a un cliente sin obtener respuesta antes de considerar que se ha roto la conexión."
 
 #. type: deftypevr
-#: doc/guix.texi:23775
+#: doc/guix.texi:26637
 msgid "In other words, the connection is automatically closed approximately after @code{keepalive_interval * (keepalive_count + 1)} seconds since the last message received from the client.  When @code{keepalive-count} is set to 0, connections will be automatically closed after @code{keepalive-interval} seconds of inactivity without sending any keepalive messages."
 msgstr "En otras palabras, la conexión se cierra automáticamente tras @code{keepalive_interval * (keepalive_count + 1)} segundos tras la última recepción de un mensaje desde el cliente. Cuando @code{keepalive_count} tiene valor 0, las conexiones se cerrarán automáticamente tras @code{keepalive-interval} segundos de inactividad sin mandar ningún mensaje ``keepalive''."
 
 #. type: deftypevr
-#: doc/guix.texi:23780
+#: doc/guix.texi:26642
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer admin-keepalive-interval"
 msgstr "{parámetro de @code{libvirt-configuration}} integer admin-keepalive-interval"
 
 #. type: deftypevr
-#: doc/guix.texi:23782 doc/guix.texi:23789
+#: doc/guix.texi:26644 doc/guix.texi:26651
 msgid "Same as above but for admin interface."
 msgstr "Igual que la opción anterior pero para la interfaz de administración."
 
 #. type: deftypevr
-#: doc/guix.texi:23787
+#: doc/guix.texi:26649
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer admin-keepalive-count"
 msgstr "{parámetro de @code{libvirt-configuration}} integer admin-keepalive-count"
 
 #. type: deftypevr
-#: doc/guix.texi:23794
+#: doc/guix.texi:26656
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer ovs-timeout"
 msgstr "{parámetro de @code{libvirt-configuration}} integer ovs-timeout"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:23796
+#: doc/guix.texi:26658
 msgid "Timeout for Open vSwitch calls."
 msgstr "Plazo máximo para las llamadas a Open vSwitch."
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:23800
+#: doc/guix.texi:26662
 msgid "The @code{ovs-vsctl} utility is used for the configuration and its timeout option is set by default to 5 seconds to avoid potential infinite waits blocking libvirt."
 msgstr "La utilidad @code{ovs-vsctl} se usa para la configuración y su opción de plazo máximo (timeout) tiene un valor de 5 segundos de manera predeterminada para evitar que esperas potencialmente infinitas bloqueen libvirt."
 
 #. type: subsubheading
-#: doc/guix.texi:23807
+#: doc/guix.texi:26669
 #, no-wrap
 msgid "Virtlog daemon"
 msgstr "Daemon Virtlog"
 
 #. type: Plain text
-#: doc/guix.texi:23810
+#: doc/guix.texi:26672
 msgid "The virtlogd service is a server side daemon component of libvirt that is used to manage logs from virtual machine consoles."
 msgstr "El servicio virtlogd es un daemon del que se compone el lado servidor de libvirt cuya finalidad es la gestión del registro de las consolas de las máquinas virtuales."
 
 #. type: Plain text
-#: doc/guix.texi:23816
+#: doc/guix.texi:26678
 msgid "This daemon is not used directly by libvirt client applications, rather it is called on their behalf by @code{libvirtd}. By maintaining the logs in a standalone daemon, the main @code{libvirtd} daemon can be restarted without risk of losing logs. The @code{virtlogd} daemon has the ability to re-exec()  itself upon receiving @code{SIGUSR1}, to allow live upgrades without downtime."
 msgstr "Este daemon no se usa directamente en aplicaciones cliente de libvirt, sino que @code{libvirtd} lo invoca en su nombre. Al mantener los registros en un daemon independiente, el daemon @code{libvirtd} puede reiniciarse sin correr el riesgo de perder registros. El daemon @code{virtlogd} tiene la capacidad de ejecutar exec() sobre sí mismo al recibir @code{SIGUSR1}, para permitir actualizaciones en vivo sin tiempo de parada."
 
 #. type: deffn
-#: doc/guix.texi:23817
+#: doc/guix.texi:26679
 #, no-wrap
 msgid "{Scheme Variable} virtlog-service-type"
 msgstr "{Variable Scheme} virtlog-service-type"
 
 #. type: deffn
-#: doc/guix.texi:23820
+#: doc/guix.texi:26682
 msgid "This is the type of the virtlog daemon.  Its value must be a @code{virtlog-configuration}."
 msgstr "Este es el tipo del daemon virtlog. Su valor debe ser un objeto @code{virtlog-configuration}."
 
 #. type: lisp
-#: doc/guix.texi:23825
+#: doc/guix.texi:26687
 #, no-wrap
 msgid ""
 "(service virtlog-service-type\n"
@@ -46364,19 +51453,30 @@ msgstr ""
 "          (max-clients 1000)))\n"
 
 #. type: deftypevr
-#: doc/guix.texi:23828
+#: doc/guix.texi:26690
 #, no-wrap
 msgid "{@code{virtlog-configuration} parameter} integer log-level"
 msgstr "{parámetro de @code{virtlog-configuration}} integer log-level"
 
 #. type: deftypevr
-#: doc/guix.texi:23835
+#: doc/guix.texi:26697
 #, no-wrap
 msgid "{@code{virtlog-configuration} parameter} string log-filters"
 msgstr "{parámetro de @code{virtlog-configuration}} string log-filters"
 
+# TODO: Enviar parche.
 #. type: deftypevr
-#: doc/guix.texi:23880
+#: doc/guix.texi:26702
+msgid "A filter allows to select a different logging level for a given category of logs The format for a filter is one of:"
+msgstr "Un filtro permite la selección de un nivel de registro diferente para una categoría dada de registros. El formato del filtro es uno de los siguientes:"
+
+#. type: deftypevr
+#: doc/guix.texi:26719
+msgid "where @code{name} is a string which is matched against the category given in the @code{VIR_LOG_INIT()} at the top of each libvirt source file, e.g., \"remote\", \"qemu\", or \"util.json\" (the name in the filter can be a substring of the full category name, in order to match multiple similar categories), the optional \"+\" prefix tells libvirt to log stack trace for each message matching name, and @code{x} is the minimal level where matching messages should be logged:"
+msgstr "donde @code{nombre} es una cadena contra la que se compara la categoría proporcionada en la llamada @code{VIR_LOG_INIT()} al principio de cada archivo de fuentes de libvirt, por ejemplo \"remote\", \"qemu\" o \"util.json\" (el nombre en el filtro puede ser una subcadena del nombre completo de la categoría, para aceptar múltiples categorías con nombres similares), el prefijo opcional \"+\" indica a libvirt que registre la pila de llamadas en cada mensaje con el nombre correspondiente, y @code{x} es el nivel mínimo de los mensajes que deben registrarse:"
+
+#. type: deftypevr
+#: doc/guix.texi:26742
 #, no-wrap
 msgid "{@code{virtlog-configuration} parameter} string log-outputs"
 msgstr "{parámetro de @code{virtlog-configuration}} string log-outputs"
@@ -46384,146 +51484,151 @@ msgstr "{parámetro de @code{virtlog-configuration}} string log-outputs"
 # FUZZY
 # MAAV (TODO): Log
 #. type: deftypevr
-#: doc/guix.texi:23885
+#: doc/guix.texi:26747
 msgid "An output is one of the places to save logging information The format for an output can be:"
 msgstr "Una salida es uno de esos lugares para almacenar información de logging. El formato para una salida puede ser:"
 
 #. type: deftypevr
-#: doc/guix.texi:23925
+#: doc/guix.texi:26787
 #, no-wrap
 msgid "{@code{virtlog-configuration} parameter} integer max-clients"
 msgstr "{parámetro de @code{virtlog-configuration}} integer max-clients"
 
 #. type: deftypevr
-#: doc/guix.texi:23930
+#: doc/guix.texi:26792
 msgid "Defaults to @samp{1024}."
 msgstr "El valor predeterminado es @samp{1024}."
 
 #. type: deftypevr
-#: doc/guix.texi:23933
+#: doc/guix.texi:26795
 #, no-wrap
 msgid "{@code{virtlog-configuration} parameter} integer max-size"
 msgstr "{parámetro de @code{virtlog-configuration}} integer max-size"
 
 #. type: deftypevr
-#: doc/guix.texi:23935
+#: doc/guix.texi:26797
 msgid "Maximum file size before rolling over."
-msgstr "Tamaño máximo del fichero antes de pasar al siguiente."
+msgstr "Tamaño máximo del archivo antes de pasar al siguiente."
 
 #. type: deftypevr
-#: doc/guix.texi:23937
+#: doc/guix.texi:26799
 msgid "Defaults to @samp{2MB}"
 msgstr "El valor predeterminado es @samp{2MB}."
 
 #. type: deftypevr
-#: doc/guix.texi:23940
+#: doc/guix.texi:26802
 #, no-wrap
 msgid "{@code{virtlog-configuration} parameter} integer max-backups"
 msgstr "{parámetro de @code{virtlog-configuration}} integer max-backups"
 
 # FUZZY FUZZY
 #. type: deftypevr
-#: doc/guix.texi:23942
+#: doc/guix.texi:26804
 msgid "Maximum number of backup files to keep."
-msgstr "Número máximo de ficheros de backup que se deben mantener."
+msgstr "Número máximo de archivos de backup que se deben mantener."
 
 #. type: deftypevr
-#: doc/guix.texi:23944
+#: doc/guix.texi:26806
 msgid "Defaults to @samp{3}"
 msgstr "El valor predeterminado es @samp{3}."
 
+#. type: anchor{#1}
+#: doc/guix.texi:26810
+msgid "transparent-emulation-qemu"
+msgstr "transparent-emulation-qemu"
+
 #. type: subsubheading
-#: doc/guix.texi:23947
+#: doc/guix.texi:26810
 #, no-wrap
 msgid "Transparent Emulation with QEMU"
 msgstr "Emulación transparente con QEMU"
 
 #. type: cindex
-#: doc/guix.texi:23949
+#: doc/guix.texi:26812
 #, no-wrap
 msgid "emulation"
 msgstr "emulación"
 
 #. type: code{#1}
-#: doc/guix.texi:23950
+#: doc/guix.texi:26813
 #, no-wrap
 msgid "binfmt_misc"
 msgstr "binfmt_misc"
 
 #. type: Plain text
-#: doc/guix.texi:23956
-msgid "@code{qemu-binfmt-service-type} provides support for transparent emulation of program binaries built for different architectures---e.g., it allows you to transparently execute an ARMv7 program on an x86_64 machine.  It achieves this by combining the @uref{https://www.qemu.org, QEMU} emulator and the @code{binfmt_misc} feature of the kernel Linux."
-msgstr "@code{qemu-binfmt-service-type} proporciona la capacidad de emular transparentemente programas binarios construidos para arquitecturas diferentes---por ejemplo, le permite ejecutar de manera transparente un programa de ARMv7 en una máquina x86_64. Esto se consigue mediante la combinación del emulador @uref{https://www.qemu.org, QEMU} y la característica @code{binfmt_misc} del núcleo Linux."
+#: doc/guix.texi:26821
+msgid "@code{qemu-binfmt-service-type} provides support for transparent emulation of program binaries built for different architectures---e.g., it allows you to transparently execute an ARMv7 program on an x86_64 machine.  It achieves this by combining the @uref{https://www.qemu.org, QEMU} emulator and the @code{binfmt_misc} feature of the kernel Linux.  This feature only allows you to emulate GNU/Linux on a different architecture, but see below for GNU/Hurd support."
+msgstr "@code{qemu-binfmt-service-type} proporciona la capacidad de emular transparentemente programas binarios construidos para arquitecturas diferentes---por ejemplo, le permite ejecutar de manera transparente un programa de ARMv7 en una máquina x86_64. Esto se consigue mediante la combinación del emulador @uref{https://www.qemu.org, QEMU} y la característica @code{binfmt_misc} del núcleo Linux. Esta característica únicamente le permite emular GNU/Linux en una arquitectura diferente, pero más adelante puede ver como implementar también GNU/Hurd."
 
 #. type: defvr
-#: doc/guix.texi:23957
+#: doc/guix.texi:26822
 #, no-wrap
 msgid "{Scheme Variable} qemu-binfmt-service-type"
 msgstr "{Variable Scheme} qemu-binfmt-service-type"
 
 #. type: defvr
-#: doc/guix.texi:23962
+#: doc/guix.texi:26827
 msgid "This is the type of the QEMU/binfmt service for transparent emulation.  Its value must be a @code{qemu-binfmt-configuration} object, which specifies the QEMU package to use as well as the architecture we want to emulated:"
 msgstr "Este es el tipo del servicio de emulación transparente QEMU/binfmt. Su valor debe ser un objeto @code{qemu-binfmt-configuration}, que especifica el paquete QEMU usado así como las arquitecturas que se desean emular:"
 
 #. type: lisp
-#: doc/guix.texi:23967
+#: doc/guix.texi:26832
 #, no-wrap
 msgid ""
 "(service qemu-binfmt-service-type\n"
 "         (qemu-binfmt-configuration\n"
-"           (platforms (lookup-qemu-platforms \"arm\" \"aarch64\" \"mips64el\"))))\n"
+"           (platforms (lookup-qemu-platforms \"arm\" \"aarch64\"))))\n"
 msgstr ""
 "(service qemu-binfmt-service-type\n"
 "         (qemu-binfmt-configuration\n"
-"           (platforms (lookup-qemu-platforms \"arm\" \"aarch64\" \"mips64el\"))))\n"
+"           (platforms (lookup-qemu-platforms \"arm\" \"aarch64\"))))\n"
 
 #. type: defvr
-#: doc/guix.texi:23973
+#: doc/guix.texi:26838
 msgid "In this example, we enable transparent emulation for the ARM and aarch64 platforms.  Running @code{herd stop qemu-binfmt} turns it off, and running @code{herd start qemu-binfmt} turns it back on (@pxref{Invoking herd, the @command{herd} command,, shepherd, The GNU Shepherd Manual})."
 msgstr "En este ejemplo se activa la emulación transparente para las plataformas ARM y aarch64. La ejecución de @code{herd stop qemu-binfmt} la desactiva, y la ejecución de @code{herd start qemu-binfmt} la vuelve a activar (@pxref{Invoking herd, the @command{herd} command,, shepherd, The GNU Shepherd Manual})."
 
 #. type: deftp
-#: doc/guix.texi:23975
+#: doc/guix.texi:26840
 #, no-wrap
 msgid "{Data Type} qemu-binfmt-configuration"
 msgstr "{Tipo de datos} qemu-binfmt-configuration"
 
 #. type: deftp
-#: doc/guix.texi:23977
+#: doc/guix.texi:26842
 msgid "This is the configuration for the @code{qemu-binfmt} service."
 msgstr "Esta es la configuración para el servicio @code{qemu-binfmt}."
 
 #. type: item
-#: doc/guix.texi:23979
+#: doc/guix.texi:26844
 #, no-wrap
 msgid "@code{platforms} (default: @code{'()})"
 msgstr "@code{platforms} (predeterminadas: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:23982
+#: doc/guix.texi:26847
 msgid "The list of emulated QEMU platforms.  Each item must be a @dfn{platform object} as returned by @code{lookup-qemu-platforms} (see below)."
 msgstr "Lista de plataformas de QEMU emuladas. Cada elemento debe ser un @dfn{objeto de plataforma} como los devueltos por @code{lookup-qemu-platforms} (véase a continuación)."
 
 #. type: item
-#: doc/guix.texi:23983
+#: doc/guix.texi:26848
 #, no-wrap
 msgid "@code{guix-support?} (default: @code{#f})"
 msgstr "@code{guix-support?} (predeterminado: @code{#f})"
 
 # FUZZY FUZZY
 #. type: table
-#: doc/guix.texi:23989
-msgid "When it is true, QEMU and all its dependencies are added to the build environment of @command{guix-daemon} (@pxref{Invoking guix-daemon, @code{--chroot-directory} option}).  This allows the @code{binfmt_misc} handlers to be used within the build environment, which in turn means that you can transparently build programs for another architecture."
-msgstr "Cuando su valor es verdadero, QEMU y todas sus dependencias se añaden al entorno de construcción de @command{guix-daemon} (@pxref{Invoking guix-daemon, opción @code{--chroot-directory}}). Esto permite que se usen los controladores @code{binfmt_misc} dentro del entorno de construcción, lo que permite construir transparentemente programas para otra arquitectura."
+#: doc/guix.texi:26854
+msgid "When it is true, QEMU and all its dependencies are added to the build environment of @command{guix-daemon} (@pxref{Invoking guix-daemon, @option{--chroot-directory} option}).  This allows the @code{binfmt_misc} handlers to be used within the build environment, which in turn means that you can transparently build programs for another architecture."
+msgstr "Cuando su valor es verdadero, QEMU y todas sus dependencias se añaden al entorno de construcción de @command{guix-daemon} (@pxref{Invoking guix-daemon, opción @option{--chroot-directory}}). Esto permite que se usen los controladores @code{binfmt_misc} dentro del entorno de construcción, lo que permite construir transparentemente programas para otra arquitectura."
 
 #. type: table
-#: doc/guix.texi:23992
+#: doc/guix.texi:26857
 msgid "For example, let's suppose you're on an x86_64 machine and you have this service:"
 msgstr "Por ejemplo, supongamos que está en una máquina x86_64 y tiene este servicio:"
 
 #. type: lisp
-#: doc/guix.texi:23998
+#: doc/guix.texi:26863
 #, no-wrap
 msgid ""
 "(service qemu-binfmt-service-type\n"
@@ -46537,268 +51642,1820 @@ msgstr ""
 "           (guix-support? #t)))\n"
 
 #. type: table
-#: doc/guix.texi:24001
+#: doc/guix.texi:26866
 msgid "You can run:"
 msgstr "Puede ejecutar:"
 
 #. type: example
-#: doc/guix.texi:24004
+#: doc/guix.texi:26869
 #, no-wrap
 msgid "guix build -s armhf-linux inkscape\n"
 msgstr "guix build -s armhf-linux inkscape\n"
 
 #. type: table
-#: doc/guix.texi:24011
+#: doc/guix.texi:26876
 msgid "and it will build Inkscape for ARMv7 @emph{as if it were a native build}, transparently using QEMU to emulate the ARMv7 CPU.  Pretty handy if you'd like to test a package build for an architecture you don't have access to!"
 msgstr "Y construirá Inkscape para ARMv7 @emph{como si fuese una construcción nativa}, de manera transparente mediante el uso de QEMU para emular la CPU ARMv7. ¡Muy útil si quisiera probar la construcción de un paquete en una arquitectura a la que no tenga acceso!"
 
 #. type: item
-#: doc/guix.texi:24012
+#: doc/guix.texi:26877
 #, no-wrap
 msgid "@code{qemu} (default: @code{qemu})"
 msgstr "@code{qemu} (predeterminado: @code{qemu})"
 
 #. type: table
-#: doc/guix.texi:24014
+#: doc/guix.texi:26879 doc/guix.texi:26973
 msgid "The QEMU package to use."
 msgstr "El paquete QEMU usado."
 
 #. type: deffn
-#: doc/guix.texi:24017
+#: doc/guix.texi:26882
 #, no-wrap
 msgid "{Scheme Procedure} lookup-qemu-platforms @var{platforms}@dots{}"
 msgstr "{Procedimiento Scheme} lookup-qemu-platforms @var{plataformas}@dots{}"
 
 #. type: deffn
-#: doc/guix.texi:24022
+#: doc/guix.texi:26887
 msgid "Return the list of QEMU platform objects corresponding to @var{platforms}@dots{}.  @var{platforms} must be a list of strings corresponding to platform names, such as @code{\"arm\"}, @code{\"sparc\"}, @code{\"mips64el\"}, and so on."
 msgstr "Devuelve la lista de objetos de plataforma de QEMU que corresponden a @var{plataformas}@dots{}. @var{plataformas} debe ser una lista de cadenas que correspondan con nombres de plataforma, como @code{\"arm\"}, @code{\"sparc\"}, @code{\"mips64el\"}, etcétera."
 
 #. type: deffn
-#: doc/guix.texi:24024
+#: doc/guix.texi:26889
 #, no-wrap
 msgid "{Scheme Procedure} qemu-platform? @var{obj}"
 msgstr "{Procedimiento Scheme} qemu-platform? @var{obj}"
 
 #. type: deffn
-#: doc/guix.texi:24026
+#: doc/guix.texi:26891
 msgid "Return true if @var{obj} is a platform object."
 msgstr "Devuelve verdadero si @var{obj} es un objeto de plataforma."
 
 #. type: deffn
-#: doc/guix.texi:24028
+#: doc/guix.texi:26893
 #, no-wrap
 msgid "{Scheme Procedure} qemu-platform-name @var{platform}"
 msgstr "{Procedimiento Scheme} qemu-platform-name @var{plataforma}"
 
 #. type: deffn
-#: doc/guix.texi:24030
+#: doc/guix.texi:26895
 msgid "Return the name of @var{platform}---a string such as @code{\"arm\"}."
 msgstr "Devuelve el nombre de @var{plataforma}---una cadena como @code{\"arm\"}."
 
+# FUZZY
+#. type: subsubheading
+#: doc/guix.texi:26898
+#, no-wrap
+msgid "The Hurd in a Virtual Machine"
+msgstr "Hurd en una máquina virtual"
+
+# FUZZY
+#. type: cindex
+#: doc/guix.texi:26901
+#, no-wrap
+msgid "the Hurd"
+msgstr "Hurd"
+
+# FUZZY
+#. type: cindex
+#: doc/guix.texi:26902
+#, no-wrap
+msgid "childhurd"
+msgstr "childhurd"
+
+#. type: Plain text
+#: doc/guix.texi:26910
+msgid "Service @code{hurd-vm} provides support for running GNU/Hurd in a virtual machine (VM), a so-called @dfn{childhurd}.  This service is meant to be used on GNU/Linux and the given GNU/Hurd operating system configuration is cross-compiled.  The virtual machine is a Shepherd service that can be referred to by the names @code{hurd-vm} and @code{childhurd} and be controlled with commands such as:"
+msgstr "El servicio @code{hurd-vm} implementa la ejecución de GNU/Hurd en una máquina virtual (VM), llamado @dfn{childhurd}. Este servicio está destinado para su uson GNU/Linux y la configuración de sistema operativo de GNU/Hurd se compila de manera cruzada. La máquina virtual es un servicio de Shepherd al que se puede hacer referencia a través de los nombres @code{hurd-vm} y @code{childhurd} y se puede controlar mediante órdenes como las siguientes:"
+
+#. type: example
+#: doc/guix.texi:26914
+#, no-wrap
+msgid ""
+"herd start hurd-vm\n"
+"herd stop childhurd\n"
+msgstr ""
+"herd start hurd-vm\n"
+"herd stop childhurd\n"
+
+#. type: Plain text
+#: doc/guix.texi:26918
+msgid "When the service is running, you can view its console by connecting to it with a VNC client, for example with:"
+msgstr "Cuando el servicio se encuentra en ejecución, puede ver su consola a través de una conexión con un cliente VNC, por ejemplo con:"
+
+#. type: example
+#: doc/guix.texi:26922
+#, no-wrap
+msgid ""
+"guix environment --ad-hoc tigervnc-client -- \\\n"
+"         vncviewer localhost:5900\n"
+msgstr ""
+"guix environment --ad-hoc tigervnc-client -- \\\n"
+"         vncviewer localhost:5900\n"
+
+# FUZZY
+#. type: Plain text
+#: doc/guix.texi:26928
+msgid "The default configuration (see @code{hurd-vm-configuration} below)  spawns a secure shell (SSH) server in your GNU/Hurd system, which QEMU (the virtual machine emulator) redirects to port 10222 on the host.  Thus, you can connect over SSH to the childhurd with:"
+msgstr "La configuración predeterminada (véase @code{hurd-vm-configuration} a continuación) lanza un servidor del intérprete de órdenes seguro (SSH) en su sistema GNU/Hurd, el cual QEMU (el emulador de máquina virtual) redirige al puerto 10222 de la máquina anfitriona. Por tanto se puede conectar a Hurd a través de SSH con:"
+
+#. type: example
+#: doc/guix.texi:26931
+#, no-wrap
+msgid "ssh root@@localhost -p 10022\n"
+msgstr "ssh root@@localhost -p 10022\n"
+
+#. type: Plain text
+#: doc/guix.texi:26940
+msgid "The childhurd is volatile and stateless: it starts with a fresh root file system every time you restart it.  By default though, all the files under @file{/etc/childhurd} on the host are copied as is to the root file system of the childhurd when it boots.  This allows you to initialize ``secrets'' inside the VM: SSH host keys, authorized substitute keys, and so on---see the explanation of @code{secret-root} below."
+msgstr "childhurd es volátil y carece de estado: comienza con un sistema de archivos raíz creado de cero cada vez que lo reinicia. No obstante de manera predeterminada todos los archivos en la ruta @file{/etc/childhurd} de la máquina anfitriona se copian al sistema de archivos raíz de childhurd cuando arranca. Esto permite que configure ``secretos'' dentro de la máquina virtual: claves de SSH de la máquina, claves de sustituciones autorizadas, etcétera---véase la explicación de @code{secret-root} a continuación."
+
+#. type: defvr
+#: doc/guix.texi:26941
+#, no-wrap
+msgid "{Scheme Variable} hurd-vm-service-type"
+msgstr "{Variable Scheme} hurd-vm-service-type"
+
+#. type: defvr
+#: doc/guix.texi:26947
+msgid "This is the type of the Hurd in a Virtual Machine service.  Its value must be a @code{hurd-vm-configuration} object, which specifies the operating system (@pxref{operating-system Reference}) and the disk size for the Hurd Virtual Machine, the QEMU package to use as well as the options for running it."
+msgstr "El tipo del servicio que ejecuta Hurd en una máquina virtual. Su valor debe ser un objeto @code{hurd-vm-configuration}, que especifica el sistema operativo (@pxref{operating-system Reference}) y el tamaño del disco para la máquina virtual de Hurd, el paquete de QEMU usado así como las opciones de ejecución."
+
+#. type: lisp
+#: doc/guix.texi:26955
+#, no-wrap
+msgid ""
+"(service hurd-vm-service-type\n"
+"         (hurd-vm-configuration\n"
+"          (disk-size (* 5000 (expt 2 20))) ;5G\n"
+"          (memory-size 1024)))             ;1024MiB\n"
+msgstr ""
+"(service hurd-vm-service-type\n"
+"         (hurd-vm-configuration\n"
+"          (disk-size (* 5000 (expt 2 20))) ;5G\n"
+"          (memory-size 1024)))             ;1024MiB\n"
+
+#. type: defvr
+#: doc/guix.texi:26959
+msgid "would create a disk image big enough to build GNU@tie{}Hello, with some extra memory."
+msgstr "crearía una imagen de disco suficientemente grande para construir GNU@tie{}Hello, con algo de memoria adicional."
+
+#. type: deftp
+#: doc/guix.texi:26961
+#, no-wrap
+msgid "{Data Type} hurd-vm-configuration"
+msgstr "{Tipo de datos} hurd-vm-configuration"
+
+#. type: deftp
+#: doc/guix.texi:26964
+msgid "The data type representing the configuration for @code{hurd-vm-service-type}."
+msgstr "Tipo de datos que representa la configuración de @code{hurd-vm-service-type}."
+
+#. type: item
+#: doc/guix.texi:26966
+#, no-wrap
+msgid "@code{os} (default: @var{%hurd-vm-operating-system})"
+msgstr "@code{os} (predeterminado: @var{%hurd-vm-operating-system})"
+
+#. type: table
+#: doc/guix.texi:26970
+msgid "The operating system to instantiate.  This default is bare-bones with a permissive OpenSSH secure shell daemon listening on port 2222 (@pxref{Networking Services, @code{openssh-service-type}})."
+msgstr "El sistema operativo instanciado. El valor predeterminado es un sistema mínimo con un daemon del intérprete de comandos seguro OpenSSH configurado de forma permisiva asociado al puerto 2222 (@pxref{Networking Services, @code{openssh-service-type}})."
+
+#. type: item
+#: doc/guix.texi:26971
+#, no-wrap
+msgid "@code{qemu} (default: @code{qemu-minimal})"
+msgstr "@code{qemu} (predeterminado: @code{qemu-minimal})"
+
+#. type: item
+#: doc/guix.texi:26974
+#, no-wrap
+msgid "@code{image} (default: @var{hurd-vm-disk-image})"
+msgstr "@code{image} (predeterminado: @var{hurd-vm-disk-image})"
+
+#. type: table
+#: doc/guix.texi:26977
+msgid "The procedure used to build the disk-image built from this configuration."
+msgstr "El procedimiento usado para construir la imagen de disco construida a partir de esta configuración."
+
+#. type: item
+#: doc/guix.texi:26978
+#, no-wrap
+msgid "@code{disk-size} (default: @code{'guess})"
+msgstr "@code{disk-size} (predeterminado: @code{'guess})"
+
+#. type: table
+#: doc/guix.texi:26980
+msgid "The size of the disk image."
+msgstr "El tamaño de la imagen de disco."
+
+#. type: item
+#: doc/guix.texi:26981
+#, no-wrap
+msgid "@code{memory-size} (default: @code{512})"
+msgstr "@code{memory-size} (predeterminado: @code{512})"
+
+#. type: table
+#: doc/guix.texi:26983
+msgid "The memory size of the Virtual Machine in mebibytes."
+msgstr "El tamaño de la memoria de la máquina virtual en mebibytes."
+
+#. type: item
+#: doc/guix.texi:26984
+#, no-wrap
+msgid "@code{options} (default: @code{'(\"--snapshot\")})"
+msgstr "@code{options} (predeterminadas: @code{'(\"--snapshot\")})"
+
+#. type: table
+#: doc/guix.texi:26986
+msgid "The extra options for running QEMU."
+msgstr "Opciones adicionales para ejecutar QEMU."
+
+#. type: table
+#: doc/guix.texi:26991
+msgid "If set, a non-zero positive integer used to parameterize Childhurd instances.  It is appended to the service's name, e.g. @code{childhurd1}."
+msgstr "Si se proporciona un valor, debe ser un entero positivo no nulo usado para parametrizar las instancias Childhurd. Se añade al nombre del servicio, por ejemplo @code{childhurd1}."
+
+#. type: item
+#: doc/guix.texi:26992
+#, no-wrap
+msgid "@code{net-options} (default: @var{hurd-vm-net-options})"
+msgstr "@code{net-options} (predeterminado: @var{hurd-vm-net-options})"
+
+#. type: table
+#: doc/guix.texi:26994
+msgid "The procedure used to produce the list of QEMU networking options."
+msgstr "El procedimiento usado para producir la lista de opciones de red para QEMU."
+
+#. type: table
+#: doc/guix.texi:26996
+msgid "By default, it produces"
+msgstr "De manera predeterminada produce"
+
+#. type: lisp
+#: doc/guix.texi:27003
+#, no-wrap
+msgid ""
+"'(\"--device\" \"rtl8139,netdev=net0\"\n"
+"  \"--netdev\" \"user,id=net0\\\n"
+"              ,hostfwd=tcp:127.0.0.1:@var{secrets-port}-:1004\\\n"
+"              ,hostfwd=tcp:127.0.0.1:@var{ssh-port}-:2222\\\n"
+"              ,hostfwd=tcp:127.0.0.1:@var{vnc-port}-:5900\")\n"
+msgstr ""
+"'(\"--device\" \"rtl8139,netdev=net0\"\n"
+"  \"--netdev\" \"user,id=net0\\\n"
+"              ,hostfwd=tcp:127.0.0.1:@var{secrets-port}-:1004\\\n"
+"              ,hostfwd=tcp:127.0.0.1:@var{ssh-port}-:2222\\\n"
+"              ,hostfwd=tcp:127.0.0.1:@var{vnc-port}-:5900\")\n"
+
+#. type: table
+#: doc/guix.texi:27006
+msgid "with forwarded ports:"
+msgstr "con los siguientes puertos redirigidos:"
+
+# TODO: Enviar parche
+#. type: example
+#: doc/guix.texi:27011
+#, no-wrap
+msgid ""
+"@var{secrets-port}: @code{(+ 11004 (* 1000 @var{ID}))}\n"
+"@var{ssh-port}: @code{(+ 10022 (* 1000 @var{ID}))}\n"
+"@var{vnc-port}: @code{(+ 15900 (* 1000 @var{ID}))}\n"
+msgstr ""
+"@var{secrets-port}: @code{(+ 11004 (* 1000 @var{ID}))}\n"
+"@var{ssh-port}: @code{(+ 10022 (* 1000 @var{ID}))}\n"
+"@var{vnc-port}: @code{(+ 15900 (* 1000 @var{ID}))}\n"
+
+#. type: item
+#: doc/guix.texi:27013
+#, no-wrap
+msgid "@code{secret-root} (default: @file{/etc/childhurd})"
+msgstr "@code{secret-root} (predeterminado: @file{/etc/childhurd})"
+
+#. type: table
+#: doc/guix.texi:27018
+msgid "The root directory with out-of-band secrets to be installed into the childhurd once it runs.  Childhurds are volatile which means that on every startup, secrets such as the SSH host keys and Guix signing key are recreated."
+msgstr "El directorio raíz que contiene los secretos fuera-de-banda que serán instalados en childhurd cuando se ejecute. Los childhurd son volátiles lo que significa que cada arranque los secretos como las claves de SSH de la máquina y la clave de firma de Guix se regeneran."
+
+#. type: table
+#: doc/guix.texi:27022
+msgid "If the @file{/etc/childhurd} directory does not exist, the @code{secret-service} running in the Childhurd will be sent an empty list of secrets."
+msgstr "Si el directorio @file{/etc/childhurd} no existe, el servicio @code{secret-service} que se ejecuta en childhurd recibirá una lista vacía de secretos."
+
+#. type: table
+#: doc/guix.texi:27025
+msgid "By default, the service automatically populates @file{/etc/childhurd} with the following non-volatile secrets, unless they already exist:"
+msgstr "De manera predeterminada el servicio crea @file{/etc/childhurd} con los siguientes secretos no volátiles, a no ser que ya existan:"
+
+#. type: example
+#: doc/guix.texi:27034
+#, no-wrap
+msgid ""
+"/etc/childhurd/etc/guix/acl\n"
+"/etc/childhurd/etc/guix/signing-key.pub\n"
+"/etc/childhurd/etc/guix/signing-key.sec\n"
+"/etc/childhurd/etc/ssh/ssh_host_ed25519_key\n"
+"/etc/childhurd/etc/ssh/ssh_host_ecdsa_key\n"
+"/etc/childhurd/etc/ssh/ssh_host_ed25519_key.pub\n"
+"/etc/childhurd/etc/ssh/ssh_host_ecdsa_key.pub\n"
+msgstr ""
+"/etc/childhurd/etc/guix/acl\n"
+"/etc/childhurd/etc/guix/signing-key.pub\n"
+"/etc/childhurd/etc/guix/signing-key.sec\n"
+"/etc/childhurd/etc/ssh/ssh_host_ed25519_key\n"
+"/etc/childhurd/etc/ssh/ssh_host_ecdsa_key\n"
+"/etc/childhurd/etc/ssh/ssh_host_ed25519_key.pub\n"
+"/etc/childhurd/etc/ssh/ssh_host_ecdsa_key.pub\n"
+
+#. type: table
+#: doc/guix.texi:27038
+msgid "These files are automatically sent to the guest Hurd VM when it boots, including permissions."
+msgstr "Estos archivos se envían automáticamente a la máquina virtual de Hurd cuando arranca, incluyendo sus permisos."
+
+#. type: cindex
+#: doc/guix.texi:27039
+#, no-wrap
+msgid "childhurd, offloading"
+msgstr "childhurd, delegación de trabajo"
+
+#. type: cindex
+#: doc/guix.texi:27040
+#, no-wrap
+msgid "Hurd, offloading"
+msgstr "Hurd, delegación de trabajo"
+
+#. type: table
+#: doc/guix.texi:27044
+msgid "Having these files in place means that only a couple of things are missing to allow the host to offload @code{i586-gnu} builds to the childhurd:"
+msgstr "Tener todos estos archivos en un único lugar significa que únicamente faltan un par de detalles para permitir a la máquina anfitriona delegar las construcciones de @code{i586-gnu} en childhurd:"
+
+#. type: enumerate
+#: doc/guix.texi:27049
+msgid "Authorizing the childhurd's key on the host so that the host accepts build results coming from the childhurd, which can be done like so:"
+msgstr "Autorizar la clave de childhurd en la máquina anfitriona de modo que esta acepte las construcciones que provengan de childhurd, lo que puede hacerse de este modo:"
+
+#. type: example
+#: doc/guix.texi:27053
+#, no-wrap
+msgid ""
+"guix archive --authorize < \\\n"
+"  /etc/childhurd/etc/guix/signing-key.pub\n"
+msgstr ""
+"guix archive --authorize < \\\n"
+"  /etc/childhurd/etc/guix/signing-key.pub\n"
+
+#. type: enumerate
+#: doc/guix.texi:27058
+msgid "Adding the childhurd to @file{/etc/guix/machines.scm} (@pxref{Daemon Offload Setup})."
+msgstr "Añadir childhurd a @file{/etc/guix/machines.scm} (@pxref{Daemon Offload Setup})."
+
+#. type: table
+#: doc/guix.texi:27062
+msgid "We're working towards making that happen automatically---get in touch with us at @email{guix-devel@@gnu.org} to discuss it!"
+msgstr "Estamos trabajando para que esto se haga de forma automática---¡póngase en contacto con nosotras a través de @email{guix-devel@@gnu.org} para hablar sobre ello!"
+
+#. type: Plain text
+#: doc/guix.texi:27069
+msgid "Note that by default the VM image is volatile, i.e., once stopped the contents are lost.  If you want a stateful image instead, override the configuration's @code{image} and @code{options} without the @code{--snapshot} flag using something along these lines:"
+msgstr "Tenga en cuenta que la imagen de la máquina virtual es volátil, es decir, los contenidos se pierden cuando se para. Si desea una imagen que mantenga el estado puede modificar la configuración de @code{image} y @code{options} sin la opción @code{--snapshot} usando algo parecido a esto:"
+
+#. type: lisp
+#: doc/guix.texi:27075
+#, no-wrap
+msgid ""
+"(service hurd-vm-service-type\n"
+"         (hurd-vm-configuration\n"
+"          (image   (const \"/out/of/store/writable/hurd.img\"))\n"
+"          (options '())))\n"
+msgstr ""
+"(service hurd-vm-service-type\n"
+"         (hurd-vm-configuration\n"
+"          (image   (const \"/no/almacen/y/perm/escritura/hurd.img\"))\n"
+"          (options '())))\n"
+
+#. type: subsubheading
+#: doc/guix.texi:27077
+#, no-wrap
+msgid "Ganeti"
+msgstr "Ganeti"
+
+#. type: cindex
+#: doc/guix.texi:27079
+#, no-wrap
+msgid "ganeti"
+msgstr "ganeti"
+
+#. type: quotation
+#: doc/guix.texi:27086
+msgid "This service is considered experimental.  Configuration options may be changed in a backwards-incompatible manner, and not all features have been thorougly tested.  Users of this service are encouraged to share their experience at @email{guix-devel@@gnu.org}."
+msgstr "Este servicio se considera experimental. Las opciones de configuración pueden cambiar de manera incompatible con versiones previas, y no todas las características han sido probadas en profundidad. Se recomienda a quienes usen este servicio que compartan su experiencia en @email{guix-devel@@gnu.org}."
+
+# FUZZY
+#. type: Plain text
+#: doc/guix.texi:27096
+msgid "Ganeti is a virtual machine management system.  It is designed to keep virtual machines running on a cluster of servers even in the event of hardware failures, and to make maintenance and recovery tasks easy.  It consists of multiple services which are described later in this section.  In addition to the Ganeti service, you will need the OpenSSH service (@pxref{Networking Services, @code{openssh-service-type}}), and update the @file{/etc/hosts} file (@pxref{operating-system Reference, @code{hosts-file}}) with the cluster name and address (or use a DNS server)."
+msgstr "Ganeti es un sistema de gestión de máquinas virtuales. Está diseñado para mantener máquinas virtuales ejecutándose en un cluster de servidores incluso en casos de fallos de hardware, y para facilitar las tareas de mantenimiento y recuperación. Consiste en múltiples servicios que se describen a lo largo de esta sección. Además del servicio de Ganeti, necesitará el servicio OpenSSH (@pxref{Networking Services, @code{openssh-service-type}}), y actualizar el archivo @file{/etc/hosts} (@pxref{operating-system Reference, @code{hosts-file}}) con el nombre del cluster y su dirección (o usar un servidor DNS)."
+
+#. type: Plain text
+#: doc/guix.texi:27101
+msgid "All nodes participating in a Ganeti cluster should have the same Ganeti and @file{/etc/hosts} configuration.  Here is an example configuration for a Ganeti cluster node that supports multiple storage backends, and installs the @code{debootstrap} and @code{guix} @dfn{OS providers}:"
+msgstr "Todos los nodos que participan en el cluster de Ganeti deben tener la misma configuración de Ganeti y en el archivo @file{/etc/hosts}. A continuación se encuentra un ejemplo de configuración para un nodo del cluster de Ganeti que implementa varios motores de almacenamiento, e instala los @dfn{proveedores de sistema operativo} @code{debootstrap} y @code{guix}:"
+
+#. type: lisp
+#: doc/guix.texi:27111
+#, no-wrap
+msgid ""
+"(use-package-modules virtualization)\n"
+"(use-service-modules base ganeti networking ssh)\n"
+"(operating-system\n"
+"  ;; @dots{}\n"
+"  (host-name \"node1\")\n"
+"  (hosts-file (plain-file \"hosts\" (format #f \"\n"
+"127.0.0.1       localhost\n"
+"::1             localhost\n"
+"\n"
+msgstr ""
+"(use-package-modules virtualization)\n"
+"(use-service-modules base ganeti networking ssh)\n"
+"(operating-system\n"
+"  ;; @dots{}\n"
+"  (host-name \"nodo1\")\n"
+"  (hosts-file (plain-file \"hosts\" (format #f \"\n"
+"127.0.0.1       localhost\n"
+"::1             localhost\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:27116
+#, no-wrap
+msgid ""
+"192.168.1.200   ganeti.example.com\n"
+"192.168.1.201   node1.example.com node1\n"
+"192.168.1.202   node2.example.com node2\n"
+"\")))\n"
+"\n"
+msgstr ""
+"192.168.1.200   ganeti.example.com\n"
+"192.168.1.201   nodo1.example.com nodo1\n"
+"192.168.1.202   nodo2.example.com nodo2\n"
+"\")))\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:27130
+#, no-wrap
+msgid ""
+"  ;; Install QEMU so we can use KVM-based instances, and LVM, DRBD and Ceph\n"
+"  ;; in order to use the \"plain\", \"drbd\" and \"rbd\" storage backends.\n"
+"  (packages (append (map specification->package\n"
+"                         '(\"qemu\" \"lvm2\" \"drbd-utils\" \"ceph\"\n"
+"                           ;; Add the debootstrap and guix OS providers.\n"
+"                           \"ganeti-instance-guix\" \"ganeti-instance-debootstrap\"))\n"
+"                    %base-packages))\n"
+"  (services\n"
+"   (append (list (static-networking-service \"eth0\" \"192.168.1.201\"\n"
+"                                            #:netmask \"255.255.255.0\"\n"
+"                                            #:gateway \"192.168.1.254\"\n"
+"                                            #:name-servers '(\"192.168.1.252\"\n"
+"                                                             \"192.168.1.253\"))\n"
+"\n"
+msgstr ""
+"  ;; Instala QEMU de modo que podamos usar instancias basadas en KVM,\n"
+"  ;; y LVM, DRBD y Ceph para usar los motores de almacenamiento\n"
+"  ;; \"plain\", \"drbd\" y \"rbd\".\n"
+"  (packages (append (map specification->package\n"
+"                         '(\"qemu\" \"lvm2\" \"drbd-utils\" \"ceph\"\n"
+"                           ;; Añade los proveedores de SO guix...\n"
+"                           \"ganeti-instance-guix\"\n"
+"                           ;; ... y debootstrap.\n"
+"                           \"ganeti-instance-debootstrap\"))\n"
+"                    %base-packages))\n"
+"  (services\n"
+"   (append (list (static-networking-service \"eth0\" \"192.168.1.201\"\n"
+"                                            #:netmask \"255.255.255.0\"\n"
+"                                            #:gateway \"192.168.1.254\"\n"
+"                                            #:name-servers '(\"192.168.1.252\"\n"
+"                                                             \"192.168.1.253\"))\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:27135
+#, no-wrap
+msgid ""
+"                 ;; Ganeti uses SSH to communicate between nodes.\n"
+"                 (service openssh-service-type\n"
+"                          (openssh-configuration\n"
+"                           (permit-root-login 'without-password)))\n"
+"\n"
+msgstr ""
+"                 ;; Ganeti usa SSH para la comunicación entre nodos.\n"
+"                 (service openssh-service-type\n"
+"                          (openssh-configuration\n"
+"                           (permit-root-login 'without-password)))\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:27145
+#, no-wrap
+msgid ""
+"                 (service ganeti-service-type\n"
+"                          (ganeti-configuration\n"
+"                           ;; This list specifies allowed file system paths\n"
+"                           ;; for storing virtual machine images.\n"
+"                           (file-storage-paths '(\"/srv/ganeti/file-storage\"))\n"
+"                           ;; This variable configures a single \"variant\" for\n"
+"                           ;; both Debootstrap and Guix that works with KVM.\n"
+"                           (os %default-ganeti-os))))\n"
+"           %base-services)))\n"
+msgstr ""
+"                 (service ganeti-service-type\n"
+"                          (ganeti-configuration\n"
+"                           ;; Esta lista especifica las rutas del\n"
+"                           ;; sistema de archivos permitidas para el\n"
+"                           ;; almacenamiento de imágenes de máquinas\n"
+"                           ;; viruales.\n"
+"                           (file-storage-paths '(\"/srv/ganeti/almacenamiento\"))\n"
+"                           ;; Esta variable configura una única\n"
+"                           ;; \"variación\" tanto para Debootstrap como\n"
+"                           ;; Guix que funciona con KVM.\n"
+"                           (os %default-ganeti-os))))\n"
+"           %base-services)))\n"
+
+# FUZZY
+#. type: Plain text
+#: doc/guix.texi:27153
+msgid "Users are advised to read the @url{http://docs.ganeti.org/ganeti/master/html/admin.html,Ganeti administrators guide} to learn about the various cluster options and day-to-day operations.  There is also a @url{https://guix.gnu.org/blog/2020/running-a-ganeti-cluster-on-guix/,blog post} describing how to configure and initialize a small cluster."
+msgstr "Se recomienda la lectura de la @url{http://docs.ganeti.org/ganeti/master/html/admin.html,guía de administración de Ganeti} a quienes usen este software para aprender distintas opciones del cluster y operaciones diarias. También existe este @url{https://guix.gnu.org/blog/2020/running-a-ganeti-cluster-on-guix/,articulo del blog} que describe cómo configurar e inicializar un pequeño cluster."
+
+#. type: defvr
+#: doc/guix.texi:27154
+#, no-wrap
+msgid "{Scheme Variable} ganeti-service-type"
+msgstr "{Variable Scheme} ganeti-service-type"
+
+#. type: defvr
+#: doc/guix.texi:27157
+msgid "This is a service type that includes all the various services that Ganeti nodes should run."
+msgstr "Tipo de servicio que incluye todos los distintos servicios que los nodos Ganeti deben ejecutar."
+
+# FUZZY FUZZY
+# (MAAV) CLI -> command line interface (?)
+#. type: defvr
+#: doc/guix.texi:27162
+msgid "Its value is a @code{ganeti-configuration} object that defines the package to use for CLI operations, as well as configuration for the various daemons.  Allowed file storage paths and available guest operating systems are also configured through this data type."
+msgstr "Su valor es un objeto @code{ganeti-configuration} que define usado para las operaciones de línea de órdenes, así como la configuración para varios daemon. Las rutas de almacenamiento permitidas y los sistemas operativos disponibles para hospedar también se configuran a través de este tipo de datos."
+
+#. type: deftp
+#: doc/guix.texi:27164
+#, no-wrap
+msgid "{Data Type} ganeti-configuration"
+msgstr "{Tipo de datos} ganeti-configuration"
+
+#. type: deftp
+#: doc/guix.texi:27166
+msgid "The @code{ganeti} service takes the following configuration options:"
+msgstr "El servicio @code{ganeti} proporciona las siguientes opciones de configuración:"
+
+#. type: item
+#: doc/guix.texi:27168 doc/guix.texi:27396 doc/guix.texi:27446
+#: doc/guix.texi:27476 doc/guix.texi:27503 doc/guix.texi:27535
+#: doc/guix.texi:27588 doc/guix.texi:27608 doc/guix.texi:27634
+#: doc/guix.texi:27667 doc/guix.texi:27707
+#, no-wrap
+msgid "@code{ganeti} (default: @code{ganeti})"
+msgstr "@code{ganeti} (predeterminado: @code{ganeti})"
+
+#. type: table
+#: doc/guix.texi:27173
+msgid "The @code{ganeti} package to use.  It will be installed to the system profile and make @command{gnt-cluster}, @command{gnt-instance}, etc available.  Note that the value specified here does not affect the other services as each refer to a specific @code{ganeti} package (see below)."
+msgstr "El paquete @code{ganeti} usado. Dicho paquete se instala en el perfil del sistema y hace que las órdenes @command{gnt-cluster}, @command{gnt-instance}, etcétera, estén disponibles. Tenga en cuenta que el valor especificado aquí no afecta a otros servicios ya que cada uno hace referencia a su paquete @code{ganeti} específico (véase a continuación)."
+
+#. type: item
+#: doc/guix.texi:27174
+#, no-wrap
+msgid "@code{noded-configuration} (default: @code{(ganeti-noded-configuration)})"
+msgstr "@code{noded-configuration} (predeterminado: @code{(ganeti-noded-configuration)})"
+
+#. type: itemx
+#: doc/guix.texi:27175
+#, no-wrap
+msgid "@code{confd-configuration} (default: @code{(ganeti-confd-configuration)})"
+msgstr "@code{confd-configuration} (predeterminado: @code{(ganeti-confd-configuration)})"
+
+#. type: itemx
+#: doc/guix.texi:27176
+#, no-wrap
+msgid "@code{wconfd-configuration} (default: @code{(ganeti-wconfd-configuration)})"
+msgstr "@code{wconfd-configuration} (predeterminado: @code{(ganeti-wconfd-configuration)})"
+
+#. type: itemx
+#: doc/guix.texi:27177
+#, no-wrap
+msgid "@code{luxid-configuration} (default: @code{(ganeti-luxid-configuration)})"
+msgstr "@code{luxid-configuration} (predeterminado: @code{(ganeti-luxid-configuration)})"
+
+#. type: itemx
+#: doc/guix.texi:27178
+#, no-wrap
+msgid "@code{rapi-configuration} (default: @code{(ganeti-rapi-configuration)})"
+msgstr "@code{rapi-configuration} (predeterminado: @code{(ganeti-rapi-configuration)})"
+
+#. type: itemx
+#: doc/guix.texi:27179
+#, no-wrap
+msgid "@code{kvmd-configuration} (default: @code{(ganeti-kvmd-configuration)})"
+msgstr "@code{kvmd-configuration} (predeterminado: @code{(ganeti-kvmd-configuration)})"
+
+#. type: itemx
+#: doc/guix.texi:27180
+#, no-wrap
+msgid "@code{mond-configuration} (default: @code{(ganeti-mond-configuration)})"
+msgstr "@code{mond-configuration} (predeterminado: @code{(ganeti-mond-configuration)})"
+
+#. type: itemx
+#: doc/guix.texi:27181
+#, no-wrap
+msgid "@code{metad-configuration} (default: @code{(ganeti-metad-configuration)})"
+msgstr "@code{metad-configuration} (predeterminado: @code{(ganeti-metad-configuration)})"
+
+#. type: itemx
+#: doc/guix.texi:27182
+#, no-wrap
+msgid "@code{watcher-configuration} (default: @code{(ganeti-watcher-configuration)})"
+msgstr "@code{watcher-configuration} (predeterminado: @code{(ganeti-watcher-configuration)})"
+
+#. type: itemx
+#: doc/guix.texi:27183
+#, no-wrap
+msgid "@code{cleaner-configuration} (default: @code{(ganeti-cleaner-configuration)})"
+msgstr "@code{cleaner-configuration} (predeterminado: @code{(ganeti-cleaner-configuration)})"
+
+#. type: table
+#: doc/guix.texi:27188
+msgid "These options control the various daemons and cron jobs that are distributed with Ganeti.  The possible values for these are described in detail below.  To override a setting, you must use the configuration type for that service:"
+msgstr "Estas opciones controlan los distintos daemon y trabajos de cron que se distribuyen con Ganeti. Los posibles valores se describen en detalle a continuación.  Para modificar el valor de un elemento de la configuración se debe usar el tipo de configuración para dicho servicio:"
+
+#. type: lisp
+#: doc/guix.texi:27198
+#, no-wrap
+msgid ""
+"(service ganeti-service-type\n"
+"         (ganeti-configuration\n"
+"          (rapi-configuration\n"
+"           (ganeti-rapi-configuration\n"
+"            (interface \"eth1\"))))\n"
+"          (watcher-configuration\n"
+"           (ganeti-watcher-configuration\n"
+"            (rapi-ip \"10.0.0.1\"))))\n"
+msgstr ""
+"(service ganeti-service-type\n"
+"         (ganeti-configuration\n"
+"          (rapi-configuration\n"
+"           (ganeti-rapi-configuration\n"
+"            (interface \"eth1\"))))\n"
+"          (watcher-configuration\n"
+"           (ganeti-watcher-configuration\n"
+"            (rapi-ip \"10.0.0.1\"))))\n"
+
+#. type: item
+#: doc/guix.texi:27200
+#, no-wrap
+msgid "@code{file-storage-paths} (default: @code{'()})"
+msgstr "@code{file-storage-paths} (predeterminada: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:27202
+msgid "List of allowed directories for file storage backend."
+msgstr "Lista de directorios permitidos para el motor de almacenamiento de archivos."
+
+#. type: item
+#: doc/guix.texi:27203
+#, no-wrap
+msgid "@code{os} (default: @code{%default-ganeti-os})"
+msgstr "@code{os} (predeterminado: @code{%default-ganeti-os})"
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:27205
+msgid "List of @code{<ganeti-os>} records."
+msgstr "Lista de registros @code{<ganeti-os>}."
+
+#. type: deftp
+#: doc/guix.texi:27209
+msgid "In essence @code{ganeti-service-type} is shorthand for declaring each service individually:"
+msgstr "En esencia @code{ganeti-service-type} es una abreviación para declara cada uno de los servicios individualmente:"
+
+#. type: lisp
+#: doc/guix.texi:27220
+#, no-wrap
+msgid ""
+"(service ganeti-noded-service-type)\n"
+"(service ganeti-confd-service-type)\n"
+"(service ganeti-wconfd-service-type)\n"
+"(service ganeti-luxid-service-type)\n"
+"(service ganeti-kvmd-service-type)\n"
+"(service ganeti-mond-service-type)\n"
+"(service ganeti-metad-service-type)\n"
+"(service ganeti-watcher-service-type)\n"
+"(service ganeti-cleaner-service-type)\n"
+msgstr ""
+"(service ganeti-noded-service-type)\n"
+"(service ganeti-confd-service-type)\n"
+"(service ganeti-wconfd-service-type)\n"
+"(service ganeti-luxid-service-type)\n"
+"(service ganeti-kvmd-service-type)\n"
+"(service ganeti-mond-service-type)\n"
+"(service ganeti-metad-service-type)\n"
+"(service ganeti-watcher-service-type)\n"
+"(service ganeti-cleaner-service-type)\n"
+
+#. type: deftp
+#: doc/guix.texi:27224
+msgid "Plus a service extension for @code{etc-service-type} that configures the file storage backend and OS variants."
+msgstr "Además de una extensión del servicio @code{etc-service-type} que configura el motor de almacenamiento de archivos y las variantes de sistema operativo."
+
+#. type: deftp
+#: doc/guix.texi:27227
+#, no-wrap
+msgid "{Data Type} ganeti-os"
+msgstr "{Tipo de datos} ganeti-os"
+
+#. type: deftp
+#: doc/guix.texi:27230
+msgid "This data type is suitable for passing to the @code{os} parameter of @code{ganeti-configuration}.  It takes the following parameters:"
+msgstr "Tipo de datos adecuado para proporcionarse como parámetro @code{os} de @code{ganeti-configuration}. Tiene los siguientes parámetros:"
+
 # FUZZY FUZZY
+#. type: table
+#: doc/guix.texi:27236
+msgid "The name for this OS provider.  It is only used to specify where the configuration ends up.  Setting it to ``debootstrap'' will create @file{/etc/ganeti/instance-debootstrap}."
+msgstr "Nombre para este proveedor de sistema operativo. Solo se usa para especificar dónde termina la configuración. Proporcionar el valor ``debootstrap'' indica la creación de @file{/etc/ganeti/instance-debootstrap}."
+
+#. type: code{#1}
+#: doc/guix.texi:27237
+#, no-wrap
+msgid "extension"
+msgstr "extension"
+
+#. type: table
+#: doc/guix.texi:27240
+msgid "The file extension for variants of this OS type.  For example @file{.conf} or @file{.scm}."
+msgstr "La extensión de archivo para las variaciones de este tipo de sistema operativo. Por ejemplo @file{.conf} o @file{.scm}."
+
+#. type: item
+#: doc/guix.texi:27241
+#, no-wrap
+msgid "@code{variants} (default: @code{'()})"
+msgstr "@code{variants} (predeterminadas: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:27243
+msgid "List of @code{ganeti-os-variant} objects for this OS."
+msgstr "Lista de objetos @code{ganeti-os-variant} para este SO."
+
+#. type: deftp
+#: doc/guix.texi:27247
+#, no-wrap
+msgid "{Data Type} ganeti-os-variant"
+msgstr "{Tipo de datos} ganeti-os-variant"
+
+#. type: deftp
+#: doc/guix.texi:27250
+msgid "This is the data type for a Ganeti OS variant.  It takes the following parameters:"
+msgstr "Tipo de datos que representa una variante de SO Ganeti. Este tipo tiene los siguientes parámetros:"
+
+#. type: table
+#: doc/guix.texi:27254
+msgid "The name of this variant."
+msgstr "El nombre de esta variación."
+
+#. type: code{#1}
+#: doc/guix.texi:27255
+#, no-wrap
+msgid "configuration"
+msgstr "configuration"
+
+#. type: table
+#: doc/guix.texi:27257
+msgid "A configuration file for this variant."
+msgstr "Un archivo de configuración para esta variación."
+
+#. type: defvr
+#: doc/guix.texi:27260
+#, no-wrap
+msgid "{Scheme Variable} %default-debootstrap-hooks"
+msgstr "{Variable Scheme} %default-debootstrap-hooks"
+
+# FUZZY
+#. type: defvr
+#: doc/guix.texi:27262
+msgid "This variable contains hooks to configure networking and the GRUB bootloader."
+msgstr "Esta variable contiene extensiones (``hook'') para la configuración de la red y el cargador de arranque GRUB."
+
+#. type: defvr
+#: doc/guix.texi:27264
+#, no-wrap
+msgid "{Scheme Variable} %default-debootstrap-extra-pkgs"
+msgstr "{Variable Scheme} %default-debootstrap-extra-pkgs"
+
+# FUZZY
+#. type: defvr
+#: doc/guix.texi:27266
+msgid "This variable contains a list of packages suitable for a fully-virtualized guest."
+msgstr "Esta variable contiene una lista de paquetes adecuada para una máquina completamente virtualizada."
+
+#. type: deftp
+#: doc/guix.texi:27268
+#, no-wrap
+msgid "{Data Type} debootstrap-configuration"
+msgstr "{Tipo de datos} debootstrap-configuration"
+
+#. type: deftp
+#: doc/guix.texi:27271
+msgid "This data type creates configuration files suitable for the debootstrap OS provider."
+msgstr "Este tipo de datos crea archivos de configuración adecuados para la orden de generación de sistemas operativos debootstrap."
+
+#. type: item
+#: doc/guix.texi:27273
+#, no-wrap
+msgid "@code{hooks} (default: @code{%default-debootstrap-hooks})"
+msgstr "@code{hooks} (predeterminada: @code{%default-debootstrap-hooks})"
+
+#. type: table
+#: doc/guix.texi:27277
+msgid "When not @code{#f}, this must be a G-expression that specifies a directory with scripts that will run when the OS is installed.  It can also be a list of @code{(name . file-like)} pairs.  For example:"
+msgstr "Cuando no es @code{#f} debe ser una expresión-G que especifique el directorio con los guiones que deberán ejecutarse cuando se instale el sistema operativo. También puede ser una lista de pares @code{(nombre . obj-tipo-archivo)}. Por ejemplo:"
+
+#. type: lisp
+#: doc/guix.texi:27280
+#, no-wrap
+msgid "`((99-hello-world . ,(plain-file \"#!/bin/sh\\necho Hello, World\")))\n"
+msgstr "`((99-hola-mundo . ,(plain-file \"#!/bin/sh\\necho '¡Hola mundo!'\")))\n"
+
+# FUZZY FUZZY
+#. type: table
+#: doc/guix.texi:27285
+msgid "That will create a directory with one executable named @code{99-hello-world} and run it every time this variant is installed.  If set to @code{#f}, hooks in @file{/etc/ganeti/instance-debootstrap/hooks} will be used, if any."
+msgstr "Esto crea un directorio con un ejecutable que se llama @code{99-hola-mundo} y se ejecuta cada vez que se instale esta variación. Si se proporciona @code{#f}, se usarán los archivos del directorio @file{/etc/ganeti/instance-debootstrap/hooks}, si existe alguno."
+
+#. type: item
+#: doc/guix.texi:27285
+#, no-wrap
+msgid "@code{proxy} (default: @code{#f})"
+msgstr "@code{proxy} (predeterminado: @code{#f})"
+
+# FUZZY FUZZY
+#. type: table
+#: doc/guix.texi:27287
+msgid "Optional HTTP proxy to use."
+msgstr "Valor opcional de la pasarela HTTP usada."
+
+#. type: item
+#: doc/guix.texi:27287
+#, no-wrap
+msgid "@code{mirror} (default: @code{#f})"
+msgstr "@code{mirror} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:27290
+msgid "The Debian mirror.  Typically something like @code{http://ftp.no.debian.org/debian}.  The default varies depending on the distribution."
+msgstr "El servidor espejo de Debian. Habitualmente es algo como @code{http://ftp.no.debian.org/debian}. El valor predeterminado cambia dependiendo de la distribución."
+
+#. type: item
+#: doc/guix.texi:27290
+#, no-wrap
+msgid "@code{arch} (default: @code{#f})"
+msgstr "@code{arch} (predeterminada: @code{#f})"
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:27293
+msgid "The dpkg architecture.  Set to @code{armhf} to debootstrap an ARMv7 instance on an AArch64 host.  Default is to use the current system architecture."
+msgstr "La arquitectura de dpkg. Proporcione @code{armhf} para generar con debootstrap una instancia de ARMv7 en una máquina AArch64. El valor predeterminado corresponde a la arquitectura del sistema en uso."
+
+#. type: item
+#: doc/guix.texi:27293
+#, no-wrap
+msgid "@code{suite} (default: @code{\"stable\"})"
+msgstr "@code{suite} (predeterminada: @code{\"stable\"})"
+
+#. type: table
+#: doc/guix.texi:27296
+msgid "When set, this must be a Debian distribution ``suite'' such as @code{buster} or @code{focal}.  If set to @code{#f}, the default for the OS provider is used."
+msgstr "Si se proporciona debe ser el identificador de una entrega o ``suite'' de distribución de Debian, como por ejemplo @code{buster} o @code{focal}. Si se proporciona @code{#f}, se usael valor predeterminado del proveedor de sistema operativo."
+
+#. type: item
+#: doc/guix.texi:27296
+#, no-wrap
+msgid "@code{extra-pkgs} (default: @code{%default-debootstrap-extra-pkgs})"
+msgstr "@code{extra-pkgs} (predeterminados: @code{%default-debootstrap-extra-pkgs})"
+
+#. type: table
+#: doc/guix.texi:27299
+msgid "List of extra packages that will get installed by dpkg in addition to the minimal system."
+msgstr "Lista de paquetes adicionales que dpkg instala junto al sistema mínimo."
+
+#. type: item
+#: doc/guix.texi:27299
+#, no-wrap
+msgid "@code{components} (default: @code{#f})"
+msgstr "@code{components} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:27302
+msgid "When set, must be a list of Debian repository ``components''.  For example @code{'(\"main\" \"contrib\")}."
+msgstr "Si se proporciona un valor debe ser una lista de ``componentes'' de repositorio de Debian. Por ejemplo @code{'(\"main\" \"contrib\")}."
+
+#. type: item
+#: doc/guix.texi:27302
+#, no-wrap
+msgid "@code{generate-cache?} (default: @code{#t})"
+msgstr "@code{generate-cache?} (predeterminado: @code{#t})"
+
+#. type: table
+#: doc/guix.texi:27304
+msgid "Whether to automatically cache the generated debootstrap archive."
+msgstr "Determina si se almacena en caché de manera automática el archivo de debootstrap que se haya generado."
+
+#. type: item
+#: doc/guix.texi:27304
+#, no-wrap
+msgid "@code{clean-cache} (default: @code{14})"
+msgstr "@code{clean-cache} (predeterminado: @code{14})"
+
+#. type: table
+#: doc/guix.texi:27307
+msgid "Discard the cache after this amount of days.  Use @code{#f} to never clear the cache."
+msgstr "Descarta el contenido de la caché tras este número de días. Use @code{#f} para no descartar contenido de la caché nunca."
+
+#. type: item
+#: doc/guix.texi:27307
+#, no-wrap
+msgid "@code{partition-style} (default: @code{'msdos})"
+msgstr "@code{partition-style} (predeterminado: @code{'msdos})"
+
+#. type: table
+#: doc/guix.texi:27310
+msgid "The type of partition to create.  When set, it must be one of @code{'msdos}, @code{'none} or a string."
+msgstr "Tipo de partición creado. Cuando se proporciona un valor debe ser @code{'msdos}, @code{'none} o una cadena."
+
+#. type: item
+#: doc/guix.texi:27310
+#, no-wrap
+msgid "@code{partition-alignment} (default: @code{2048})"
+msgstr "@code{partition-alignment} (predeterminada: @code{2048})"
+
+#. type: table
+#: doc/guix.texi:27312
+msgid "Alignment of the partition in sectors."
+msgstr "Alineación de la partición en sectores."
+
+#. type: deffn
+#: doc/guix.texi:27315
+#, no-wrap
+msgid "{Scheme Procedure} debootstrap-variant @var{name} @var{configuration}"
+msgstr "{Procedimiento Scheme} debootstrap-variant @var{nombre} @var{configuración}"
+
+#. type: deffn
+#: doc/guix.texi:27318
+msgid "This is a helper procedure that creates a @code{ganeti-os-variant} record.  It takes two parameters: a name and a @code{debootstrap-configuration} object."
+msgstr "Procedimiento auxiliar que crea un registro @code{ganeti-os-variant}. Toma dos parámetros: un nombre y un objeto @code{debootstrap-configuration}."
+
+#. type: deffn
+#: doc/guix.texi:27320
+#, no-wrap
+msgid "{Scheme Procedure} debootstrap-os @var{variants}@dots{}"
+msgstr "{Procedimiento Scheme} debootstrap-os @var{variantes}@dots{}"
+
+#. type: deffn
+#: doc/guix.texi:27323
+msgid "This is a helper procedure that creates a @code{ganeti-os} record.  It takes a list of variants created with @code{debootstrap-variant}."
+msgstr "Procedimiento auxiliar que crea un registro @code{ganeti-os}. Toma como parámetro una lista de variaciones creada con @code{debootstrap-variant}."
+
+#. type: deffn
+#: doc/guix.texi:27325
+#, no-wrap
+msgid "{Scheme Procedure} guix-variant @var{name} @var{configuration}"
+msgstr "{Procedimiento Scheme} guix-variant @var{nombre} @var{configuración}"
+
+#. type: deffn
+#: doc/guix.texi:27330
+msgid "This is a helper procedure that creates a @code{ganeti-os-variant} record for use with the Guix OS provider.  It takes a name and a G-expression that returns a ``file-like'' (@pxref{G-Expressions, file-like objects}) object containing a Guix System configuration."
+msgstr "Procedimiento auxiliar que crea un registro @code{ganeti-os-variant} para ser usado por el proveedor de sistema operativo Guix. Toma como parámetros un nombre y una expresión-G que devuelve un objeto ``tipo-archivo'' (@pxref{G-Expressions, objetos ``tipo-archivo''}) que contiene configuración para el sistema Guix."
+
+#. type: deffn
+#: doc/guix.texi:27332
+#, no-wrap
+msgid "{Scheme Procedure} guix-os @var{variants}@dots{}"
+msgstr "{Procedimiento Scheme} guix-os @var{variantes}@dots{}"
+
+#. type: deffn
+#: doc/guix.texi:27335
+msgid "This is a helper procedure that creates a @code{ganeti-os} record.  It takes a list of variants produced by @code{guix-variant}."
+msgstr "Procedimiento auxiliar que crea un registro @code{ganeti-os}. Toma como parámetros una lista de variaciones producida por @code{guix-variant}."
+
+#. type: defvr
+#: doc/guix.texi:27337
+#, no-wrap
+msgid "{Scheme Variable} %default-debootstrap-variants"
+msgstr "{Variable Scheme} %default-debootstrap-variants"
+
+#. type: defvr
+#: doc/guix.texi:27341
+msgid "This is a convenience variable to make the debootstrap provider work ``out of the box'' without users having to declare variants manually.  It contains a single debootstrap variant with the default configuration:"
+msgstr "Variable de conveniencia para que el proveedor debootstrap funcione ``automágicamente'' sin que quienes lo usan tengan que declarar variaciones manualmente. Contiene una única variación de debootstrap con la configuración predeterminada:"
+
+#. type: lisp
+#: doc/guix.texi:27346
+#, no-wrap
+msgid ""
+"(list (debootstrap-variant\n"
+"       \"default\"\n"
+"       (debootstrap-configuration)))\n"
+msgstr ""
+"(list (debootstrap-variant\n"
+"       \"default\"\n"
+"       (debootstrap-configuration)))\n"
+
+#. type: defvr
+#: doc/guix.texi:27349
+#, no-wrap
+msgid "{Scheme Variable} %default-guix-variants"
+msgstr "{Variable Scheme} %default-guix-variants"
+
+#. type: defvr
+#: doc/guix.texi:27353
+msgid "This is a convenience variable to make the Guix OS provider work without additional configuration.  It creates a virtual machine that has an SSH server, a serial console, and authorizes the Ganeti hosts SSH keys."
+msgstr "Variable de conveniencia para que el proveedor de sistema operativo Guix funcione sin ninguna configuración adicional. Crea una máquina virtual que tiene un servidor SSH, consola serie y autoriza las claves de SSH de las máquinas de Ganeti."
+
+#. type: lisp
+#: doc/guix.texi:27359
+#, no-wrap
+msgid ""
+"(list (guix-variant\n"
+"       \"default\"\n"
+"       (file-append ganeti-instance-guix\n"
+"                    \"/share/doc/ganeti-instance-guix/examples/dynamic.scm\")))\n"
+msgstr ""
+"(list (guix-variant\n"
+"       \"default\"\n"
+"       (file-append ganeti-instance-guix\n"
+"                    \"/share/doc/ganeti-instance-guix/examples/dynamic.scm\")))\n"
+
 #. type: Plain text
-#: doc/guix.texi:24042
+#: doc/guix.texi:27365
+msgid "Users can implement support for OS providers unbeknownst to Guix by extending the @code{ganeti-os} and @code{ganeti-os-variant} records appropriately.  For example:"
+msgstr "Se pueden implementar proveedores de SO no disponibles en Guix mediante la extensión de los registros @code{ganeti-os} y @code{ganeti-os-variant} de manera apropiada. Por ejemplo:"
+
+#. type: lisp
+#: doc/guix.texi:27374
+#, no-wrap
+msgid ""
+"(ganeti-os\n"
+" (name \"custom\")\n"
+" (extension \".conf\")\n"
+" (variants\n"
+"  (list (ganeti-os-variant\n"
+"         (name \"foo\")\n"
+"         (configuration (plain-file \"bar\" \"this is fine\"))))))\n"
+msgstr ""
+"(ganeti-os\n"
+" (name \"personalizado\")\n"
+" (extension \".conf\")\n"
+" (variants\n"
+"  (list (ganeti-os-variant\n"
+"         (name \"cosa\")\n"
+"         (configuration (plain-file \"archivo\" \"Esto va bien\"))))))\n"
+
+#. type: Plain text
+#: doc/guix.texi:27379
+msgid "That creates @file{/etc/ganeti/instance-custom/variants/foo.conf} which points to a file in the store with contents @code{this is fine}.  It also creates @file{/etc/ganeti/instance-custom/variants/variants.list} with contents @code{foo}."
+msgstr "Este ejemplo crearía @file{/etc/ganeti/instance-personalizado/variants/cosa.conf}, el cual apunta a un archivo en el almacén cuyo contenido es @code{esto va bien}. También se crearía @file{/etc/ganeti/instance-personalizado/variants/variants.list} con el contenido @code{cosa}."
+
+#. type: Plain text
+#: doc/guix.texi:27382
+msgid "Obviously this may not work for all OS providers out there.  If you find the interface limiting, please reach out to @email{guix-devel@@gnu.org}."
+msgstr "Obviamente es posible que esto no funcione con todos los proveedores de sistema operativo existentes. Si está interfaz le está limitando en su implementación, por favor, contacte con @email{guix-devel@@gnu.org}."
+
+#. type: Plain text
+#: doc/guix.texi:27385
+msgid "The rest of this section documents the various services that are included by @code{ganeti-service-type}."
+msgstr "El resto de esta sección documenta los distintos servicios incluidos en @code{ganeti-service-type}."
+
+#. type: defvr
+#: doc/guix.texi:27386
+#, no-wrap
+msgid "{Scheme Variable} ganeti-noded-service-type"
+msgstr "{Variable Scheme} ganeti-noded-service-type"
+
+#. type: defvr
+#: doc/guix.texi:27390
+msgid "@command{ganeti-noded} is the daemon responsible for node-specific functions within the Ganeti system.  The value of this service must be a @code{ganeti-noded-configuration} object."
+msgstr "@command{ganeti-noded} es el daemon responsable de las funciones específicas del nodo dentro del sistema Ganeti. El valor de este servicio debe ser un objeto @code{ganeti-noded-configuration}."
+
+#. type: deftp
+#: doc/guix.texi:27392
+#, no-wrap
+msgid "{Data Type} ganeti-noded-configuration"
+msgstr "{Tipo de datos} ganeti-noded-configuration"
+
+#. type: deftp
+#: doc/guix.texi:27394
+msgid "This is the configuration for the @code{ganeti-noded} service."
+msgstr "Esta es la configuración para el servicio @code{ganeti-noded}."
+
+#. type: table
+#: doc/guix.texi:27398 doc/guix.texi:27448 doc/guix.texi:27478
+#: doc/guix.texi:27505 doc/guix.texi:27537 doc/guix.texi:27590
+#: doc/guix.texi:27610 doc/guix.texi:27636 doc/guix.texi:27669
+msgid "The @code{ganeti} package to use for this service."
+msgstr "El paquete @code{ganeti} usado para este servicio."
+
+#. type: item
+#: doc/guix.texi:27399
+#, no-wrap
+msgid "@code{port} (default: @code{1811})"
+msgstr "@code{port} (predeterminado: @code{1811})"
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:27401
+msgid "The TCP port on which the node daemon listens for network requests."
+msgstr "Puerto TCP en el que escucha el daemon del nodo a la espera de peticiones a través de la red."
+
+#. type: item
+#: doc/guix.texi:27402 doc/guix.texi:27452 doc/guix.texi:27544
+#: doc/guix.texi:27614
+#, no-wrap
+msgid "@code{address} (default: @code{\"0.0.0.0\"})"
+msgstr "@code{address} (predeterminado: @code{\"0.0.0.0\"})"
+
+#. type: table
+#: doc/guix.texi:27405
+msgid "The network address that the daemon will bind to.  The default address means bind to all available addresses."
+msgstr "La dirección de red a la que el daemon se enlaza. La dirección predeterminada significa que el daemon se enlaza a todas las direcciones disponibles."
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:27409
+msgid "When this is set, it must be a specific network interface (e.g.@: @code{eth0})  that the daemon will bind to."
+msgstr "En caso de proporcionarse un valor, debe especificar el nombre de la interfaz de red (por ejemplo, @code{eth0} a la que el daemon se enlaza."
+
+#. type: item
+#: doc/guix.texi:27410 doc/guix.texi:27552
+#, no-wrap
+msgid "@code{max-clients} (default: @code{20})"
+msgstr "@code{max-clients} (predeterminado: @code{20})"
+
+#. type: table
+#: doc/guix.texi:27414
+msgid "This sets a limit on the maximum number of simultaneous client connections that the daemon will handle.  Connections above this count are accepted, but no responses will be sent until enough connections have closed."
+msgstr "Establece un límite en el número máximo de conexiones simultaneas de clientes que el daemon manejará. Las conexiones que excedan dicho número se aceptan, pero no se envía respuesta hasta que hayan cerrado suficientes conexiones."
+
+#. type: item
+#: doc/guix.texi:27415 doc/guix.texi:27557
+#, no-wrap
+msgid "@code{ssl?} (default: @code{#t})"
+msgstr "@code{ssl?} (predeterminado: @code{#t})"
+
+#. type: table
+#: doc/guix.texi:27419
+msgid "Whether to use SSL/TLS to encrypt network communications.  The certificate is automatically provisioned by the cluster and can be rotated with @command{gnt-cluster renew-crypto}."
+msgstr "Determina si se usa SSL/TLS para cifrar las comunicaciones a través de la red. El cluster proporciona automáticamente el certificado y se puede rotar con @command{gnt-cluster renew-crypto}."
+
+#. type: item
+#: doc/guix.texi:27420 doc/guix.texi:27560
+#, no-wrap
+msgid "@code{ssl-key} (default: @file{\"/var/lib/ganeti/server.pem\"})"
+msgstr "@code{ssl-key} (predeterminado: @file{\"/var/lib/ganeti/server.pem\"})"
+
+#. type: table
+#: doc/guix.texi:27422 doc/guix.texi:27562
+msgid "This can be used to provide a specific encryption key for TLS communications."
+msgstr "Puede usarse para proporcionar una clave de cifrado específica para comunicaciones TLS."
+
+#. type: item
+#: doc/guix.texi:27423 doc/guix.texi:27563
+#, no-wrap
+msgid "@code{ssl-cert} (default: @file{\"/var/lib/ganeti/server.pem\"})"
+msgstr "@code{ssl-cert} (predeterminado: @file{\"/var/lib/ganeti/server.pem\"})"
+
+#. type: table
+#: doc/guix.texi:27425 doc/guix.texi:27565
+msgid "This can be used to provide a specific certificate for TLS communications."
+msgstr "Puede usarse para proporcionar un certificado específico para comunicaciones TLS."
+
+#. type: table
+#: doc/guix.texi:27429 doc/guix.texi:27569
+msgid "When true, the daemon performs additional logging for debugging purposes.  Note that this will leak encryption details to the log files, use with caution."
+msgstr "Cuando es verdadero, el daemon almacena registros adicionales con propósitos de depuración. Tenga en cuenta que esto puede exponer detalles de cifrado en los archivos de registro, por lo que debe usarse con precaución."
+
+#. type: defvr
+#: doc/guix.texi:27433
+#, no-wrap
+msgid "{Scheme Variable} ganeti-confd-service-type"
+msgstr "{Variable Scheme} ganeti-confd-service-type"
+
+# TODO: master
+#. type: defvr
+#: doc/guix.texi:27439
+msgid "@command{ganeti-confd} answers queries related to the configuration of a Ganeti cluster.  The purpose of this daemon is to have a highly available and fast way to query cluster configuration values.  It is automatically active on all @dfn{master candidates}.  The value of this service must be a @code{ganeti-confd-configuration} object."
+msgstr "@command{ganeti-confd} responde a las consultas relacionadas con la configuración del cluster Ganeti. El propósito de este daemon es tener una forma rápida y con alta disponibilidad de consultar los valores de configuración del cluster. Se activa de manera automática en todas las máquinas @dfn{candidatas de ser coordinadoras}. El valor de este servicio debe ser un objeto @code{ganeti-confd-configuration}."
+
+#. type: deftp
+#: doc/guix.texi:27442
+#, no-wrap
+msgid "{Data Type} ganeti-confd-configuration"
+msgstr "{Tipo de datos} ganeti-confd-configuration"
+
+#. type: deftp
+#: doc/guix.texi:27444
+msgid "This is the configuration for the @code{ganeti-confd} service."
+msgstr "Esta es la configuración para el servicio @code{ganeti-confd}."
+
+#. type: item
+#: doc/guix.texi:27449
+#, no-wrap
+msgid "@code{port} (default: @code{1814})"
+msgstr "@code{port} (predeterminado: @code{1814})"
+
+#. type: table
+#: doc/guix.texi:27451
+msgid "The UDP port on which to listen for network requests."
+msgstr "El puerto UDP en el que esperarán peticiones a través de la red."
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:27454
+msgid "Network address that the daemon will bind to."
+msgstr "Dirección de red a la que el daemon se asocia."
+
+#. type: table
+#: doc/guix.texi:27457 doc/guix.texi:27486 doc/guix.texi:27513
+#: doc/guix.texi:27593 doc/guix.texi:27620 doc/guix.texi:27646
+msgid "When true, the daemon performs additional logging for debugging purposes."
+msgstr "Cuando es verdadero, el daemon almacena registros adicionales con propósitos de depuración."
+
+#. type: defvr
+#: doc/guix.texi:27461
+#, no-wrap
+msgid "{Scheme Variable} ganeti-wconfd-service-type"
+msgstr "{Variable Scheme} ganeti-wconfd-service-type"
+
+#. type: defvr
+#: doc/guix.texi:27467
+msgid "@command{ganeti-wconfd} is the daemon that has authoritative knowledge about the cluster configuration and is the only entity that can accept changes to it.  All jobs that need to modify the configuration will do so by sending appropriate requests to this daemon.  It only runs on the @dfn{master node} and will automatically disable itself on other nodes."
+msgstr "@command{ganeti-wconfd} es el daemon que proporciona una autoridad de conocimiento sobre la configuración del cluster y es la única entidad que puede aceptar cambios sobre ella. Todos las trabajos que necesiten modificar la configuración deben hacerlo enviando las peticiones adecuadas a este daemon. Únicamente se ejecuta en el @dfn{nodo coordinador} y se desactiva automáticamente en otros nodos."
+
+#. type: defvr
+#: doc/guix.texi:27470
+msgid "The value of this service must be a @code{ganeti-wconfd-configuration} object."
+msgstr "El valor de este servicio debe ser un objeto @code{ganeti-wconfd-configuration}."
+
+#. type: deftp
+#: doc/guix.texi:27472
+#, no-wrap
+msgid "{Data Type} ganeti-wconfd-configuration"
+msgstr "{Tipo de datos} ganeti-wconfd-configuration"
+
+#. type: deftp
+#: doc/guix.texi:27474 doc/guix.texi:27501
+msgid "This is the configuration for the @code{ganeti-wconfd} service."
+msgstr "Esta es la configuración para el servicio @code{ganeti-wconfd}."
+
+#. type: item
+#: doc/guix.texi:27479 doc/guix.texi:27506
+#, no-wrap
+msgid "@code{no-voting?} (default: @code{#f})"
+msgstr "@code{no-voting?} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:27483
+msgid "The daemon will refuse to start if the majority of cluster nodes does not agree that it is running on the master node.  Set to @code{#t} to start even if a quorum can not be reached (dangerous, use with caution)."
+msgstr "El daemon se negará a arrancar si la mayoría de los nodos del cluster no coinciden en que se está ejecutando en el nodo coordinador. Proporcione @code{#t} para arrancar incluso cuando no se puede alcanzar dicha mayoría (peligroso, úsese con precaución)."
+
+#. type: defvr
+#: doc/guix.texi:27490
+#, no-wrap
+msgid "{Scheme Variable} ganeti-luxid-service-type"
+msgstr "{Variable Scheme} ganeti-luxid-service-type"
+
+#. type: defvr
+#: doc/guix.texi:27495
+msgid "@command{ganeti-luxid} is a daemon used to answer queries related to the configuration and the current live state of a Ganeti cluster.  Additionally, it is the authoritative daemon for the Ganeti job queue.  Jobs can be submitted via this daemon and it schedules and starts them."
+msgstr "@command{ganeti-luxid} es un daemon que responde a las peticiones relacionadas con la configuración del estado actual del cluster Ganeti. De manera adicional, es el daemon que tiene el control sobre la cola de trabajos de Ganeti. Los trabajos se pueden emitir a través de este daemon y éste los planifica y arranca."
+
+#. type: defvr
+#: doc/guix.texi:27497
+msgid "It takes a @code{ganeti-luxid-configuration} object."
+msgstr "Recibe un objeto @code{ganeti-luxid-configuration}."
+
+#. type: deftp
+#: doc/guix.texi:27499
+#, no-wrap
+msgid "{Data Type} ganeti-luxid-configuration"
+msgstr "{Tipo de datos} ganeti-luxid-configuration"
+
+#. type: table
+#: doc/guix.texi:27510
+msgid "The daemon will refuse to start if it cannot verify that the majority of cluster nodes believes that it is running on the master node.  Set to @code{#t} to ignore such checks and start anyway (this can be dangerous)."
+msgstr "El daemon se negará a arrancar si no puede verificar que la mayoría de los nodos del cluster creen que éste se está ejecutando en el nodo coordinador. Proporcione @code{#t} para ignorar dichas comprobaciones y arrancar en cualquier caso (puede ser peligroso)."
+
+#. type: defvr
+#: doc/guix.texi:27517
+#, no-wrap
+msgid "{Scheme Variable} ganeti-rapi-service-type"
+msgstr "{Variable Scheme} ganeti-rapi-service-type"
+
+#. type: defvr
+#: doc/guix.texi:27521
+msgid "@command{ganeti-rapi} provides a remote API for Ganeti clusters.  It runs on the master node and can be used to perform cluster actions programmatically via a JSON-based RPC protocol."
+msgstr "@command{ganeti-rapi} proporciona una API remota para cluster de Ganeti. Se ejecuta en el nodo coordinador y se puede usar para realizar programática acciones en el cluster a través de un protocolo de llamada de procedimientos remotos (RPC) basado en JSON."
+
+#. type: defvr
+#: doc/guix.texi:27527
+msgid "Most query operations are allowed without authentication (unless @var{require-authentication?} is set), whereas write operations require explicit authorization via the @file{/var/lib/ganeti/rapi/users} file.  See the @url{http://docs.ganeti.org/ganeti/master/html/rapi.html, Ganeti Remote API documentation} for more information."
+msgstr "Se permiten la mayoría de las operaciones de consulta sin identificación (a no ser que se especifique @var{require-authentication?}), mientras que las operaciones de escritura necesitan autorización explícita a través del archivo @file{/var/lib/ganeti/rapi/users}. Véase la @url{http://docs.ganeti.org/ganeti/master/html/rapi.html, documentación de la API remota de Ganeti} para obtener más información."
+
+#. type: defvr
+#: doc/guix.texi:27529
+msgid "The value of this service must be a @code{ganeti-rapi-configuration} object."
+msgstr "El valor de este servicio debe ser un objeto @code{ganeti-rapi-configuration}."
+
+#. type: deftp
+#: doc/guix.texi:27531
+#, no-wrap
+msgid "{Data Type} ganeti-rapi-configuration"
+msgstr "{Tipo de datos} ganeti-rapi-configuration"
+
+#. type: deftp
+#: doc/guix.texi:27533
+msgid "This is the configuration for the @code{ganeti-rapi} service."
+msgstr "Configuración para el servicio @code{ganeti-rapi}."
+
+#. type: item
+#: doc/guix.texi:27538
+#, no-wrap
+msgid "@code{require-authentication?} (default: @code{#f})"
+msgstr "@code{require-authentication?} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:27540
+msgid "Whether to require authentication even for read-only operations."
+msgstr "Determina si se requiere identificación incluso para operaciones únicamente de lectura."
+
+#. type: item
+#: doc/guix.texi:27541
+#, no-wrap
+msgid "@code{port} (default: @code{5080})"
+msgstr "@code{port} (predeterminado: @code{5080})"
+
+#. type: table
+#: doc/guix.texi:27543
+msgid "The TCP port on which to listen to API requests."
+msgstr "El puerto TCP en el que esperarán peticiones de la API."
+
+#. type: table
+#: doc/guix.texi:27547
+msgid "The network address that the service will bind to.  By default it listens on all configured addresses."
+msgstr "La dirección de red a la que se asocia el servicio. De manera predeterminada el servicio se asocia a todas las direcciones configuradas."
+
+#. type: table
+#: doc/guix.texi:27551
+msgid "When set, it must specify a specific network interface such as @code{eth0} that the daemon will bind to."
+msgstr "Si se proporciona un valor, debe especificar el nombre de la interfaz de red, como por ejemplo @code{eth0}, a la que el daemon se asocia."
+
+#. type: table
+#: doc/guix.texi:27556
+msgid "The maximum number of simultaneous client requests to handle.  Further connections are allowed, but no responses are sent until enough connections have closed."
+msgstr "Número máximo de conexiones simultaneas de clientes que se manejan. Las conexiones que excedan dicho número se aceptan, pero no se envía respuesta hasta que hayan cerrado suficientes conexiones."
+
+#. type: table
+#: doc/guix.texi:27559
+msgid "Whether to use SSL/TLS encryption on the RAPI port."
+msgstr "Determina si se usa cifrado SSL/TLS en el puerto de la API remota."
+
+#. type: defvr
+#: doc/guix.texi:27573
+#, no-wrap
+msgid "{Scheme Variable} ganeti-kvmd-service-type"
+msgstr "{Variable Scheme} ganeti-kvmd-service-type"
+
+#. type: defvr
+#: doc/guix.texi:27581
+msgid "@command{ganeti-kvmd} is responsible for determining whether a given KVM instance was shut down by an administrator or a user.  Normally Ganeti will restart an instance that was not stopped through Ganeti itself.  If the cluster option @code{user_shutdown} is true, this daemon monitors the @code{QMP} socket provided by QEMU and listens for shutdown events, and marks the instance as @dfn{USER_down} instead of @dfn{ERROR_down} when it shuts down gracefully by itself."
+msgstr "@command{ganeti-kvmd} es responsable de determinar si una instancia KVM determinada ha sido apagada por una usuaria o una administradora. Normalmente Ganeti reiniciará una instancia que no se haya parado a través de Ganeti. Si la opción del cluster @code{user_shutdown} es verdadera, este daemon monitoriza el puerto @code{QMP} que proporciona QEMU y escucha eventos de apagado en él, y marca la instancia como @dfn{USER_down} en vez de @dfn{ERROR_down} cuando el daemon la apaga de manera adecuada."
+
+#. type: defvr
+#: doc/guix.texi:27583
+msgid "It takes a @code{ganeti-kvmd-configuration} object."
+msgstr "Recibe un objeto @code{ganeti-kvmd-configuration}."
+
+#. type: deftp
+#: doc/guix.texi:27585
+#, no-wrap
+msgid "{Data Type} ganeti-kvmd-configuration"
+msgstr "{Tipo de datos} ganeti-kvmd-configuration"
+
+#. type: defvr
+#: doc/guix.texi:27597
+#, no-wrap
+msgid "{Scheme Variable} ganeti-mond-service-type"
+msgstr "{Variable Scheme} ganeti-mond-service-type"
+
+#. type: defvr
+#: doc/guix.texi:27601
+msgid "@command{ganeti-mond} is an optional daemon that provides Ganeti monitoring functionality.  It is responsible for running data collectors and publish the collected information through a HTTP interface."
+msgstr "@command{ganeti-mond} es un daemon opcional que proporciona la funcionalidad de monitorización de Ganeti. Es responsable de la ejecución de los recolectores de datos y la publicación de la información obtenida a través de una interfaz HTTP."
+
+#. type: defvr
+#: doc/guix.texi:27603
+msgid "It takes a @code{ganeti-mond-configuration} object."
+msgstr "Recibe un objeto @code{ganeti-mond-configuration}."
+
+#. type: deftp
+#: doc/guix.texi:27605
+#, no-wrap
+msgid "{Data Type} ganeti-mond-configuration"
+msgstr "{Tipo de datos} ganeti-mond-configuration"
+
+#. type: item
+#: doc/guix.texi:27611
+#, no-wrap
+msgid "@code{port} (default: @code{1815})"
+msgstr "@code{port} (predeterminado: @code{1815})"
+
+#. type: table
+#: doc/guix.texi:27613 doc/guix.texi:27639
+msgid "The port on which the daemon will listen."
+msgstr "Puerto en el que el daemon espera conexiones."
+
+#. type: table
+#: doc/guix.texi:27617
+msgid "The network address that the daemon will bind to.  By default it binds to all available interfaces."
+msgstr "La dirección de red a la que se asocia el daemon. De manera predeterminada se asocia a todas las interfaces disponibles."
+
+#. type: defvr
+#: doc/guix.texi:27624
+#, no-wrap
+msgid "{Scheme Variable} ganeti-metad-service-type"
+msgstr "{Variable Scheme} ganeti-metad-service-type"
+
+#. type: defvr
+#: doc/guix.texi:27627
+msgid "@command{ganeti-metad} is an optional daemon that can be used to provide information about the cluster to instances or OS install scripts."
+msgstr "@command{ganeti-metad} es un daemon opcional que se puede usar para proporcionar información del cluster a instancias o guiones de instalación de sistema operativo."
+
+#. type: defvr
+#: doc/guix.texi:27629
+msgid "It takes a @code{ganeti-metad-configuration} object."
+msgstr "Recibe un objeto @code{ganeti-metad-configuration}."
+
+#. type: deftp
+#: doc/guix.texi:27631
+#, no-wrap
+msgid "{Data Type} ganeti-metad-configuration"
+msgstr "{Tipo de datos} ganeti-metad-configuration"
+
+#. type: item
+#: doc/guix.texi:27640
+#, no-wrap
+msgid "@code{address} (default: @code{#f})"
+msgstr "@code{address} (predeterminada: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:27643
+msgid "If set, the daemon will bind to this address only.  If left unset, the behavior depends on the cluster configuration."
+msgstr "Si se proporciona un valor el daemon se asociará únicamente a esta dirección. Si no se proporciona valor el comportamiento depende de la configuración del cluster."
+
+#. type: defvr
+#: doc/guix.texi:27650
+#, no-wrap
+msgid "{Scheme Variable} ganeti-watcher-service-type"
+msgstr "{Variable Scheme} ganeti-watcher-service-type"
+
+#. type: defvr
+#: doc/guix.texi:27658
+msgid "@command{ganeti-watcher} is a script designed to run periodically and ensure the health of a cluster.  It will automatically restart instances that have stopped without Ganeti's consent, and repairs DRBD links in case a node has rebooted.  It also archives old cluster jobs and restarts Ganeti daemons that are not running.  If the cluster parameter @code{ensure_node_health} is set, the watcher will also shutdown instances and DRBD devices if the node it is running on is declared offline by known master candidates."
+msgstr "@command{ganeti-watcher} es un guión diseñado para su ejecución periódica en la que comprueba el estado la salud del cluster. Reinicia automáticamente las instancias que se han parado sin el consentimiento de Ganeti, y repara los enlaces DRBD en caso de que un nodo se haya reiniciado. También archiva los trabajos antiguos del cluster y reinicia los daemon de Ganeti si no se están ejecutando. Si se ha proporcionado valor al parámetro del cluster @code{ensure_node_health}, este proceso también apagará las instancias y dispositivos DRBD si el nodo que las ejecute se ha declarado fuera de línea por alguna de las máquinas candidatas de coordinación conocidas."
+
+#. type: defvr
+#: doc/guix.texi:27660
+msgid "It can be paused on all nodes with @command{gnt-cluster watcher pause}."
+msgstr "Se puede pausar en todos los nodos con @command{gnt-cluster watcher pause}."
+
+#. type: defvr
+#: doc/guix.texi:27662
+msgid "The service takes a @code{ganeti-watcher-configuration} object."
+msgstr "Este servicio toma como valor un objeto @code{ganeti-watcher-configuration}."
+
+#. type: deftp
+#: doc/guix.texi:27664
+#, no-wrap
+msgid "{Data Type} ganeti-watcher-configuration"
+msgstr "{Tipo de datos} ganeti-watcher-configuration"
+
+#. type: item
+#: doc/guix.texi:27670
+#, no-wrap
+msgid "@code{schedule} (default: @code{'(next-second-from (next-minute (range 0 60 5)))})"
+msgstr "@code{schedule} (predeterminado: @code{'(next-second-from (next-minute (range 0 60 5)))})"
+
+#. type: table
+#: doc/guix.texi:27672
+msgid "How often to run the script.  The default is every five minutes."
+msgstr "Cada cuanto se ejecuta el guión. El valor predeterminado es cada 5 minutos."
+
+#. type: item
+#: doc/guix.texi:27673
+#, no-wrap
+msgid "@code{rapi-ip} (default: @code{#f})"
+msgstr "@code{rapi-ip} (predeterminada: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:27676
+msgid "This option needs to be specified only if the RAPI daemon is configured to use a particular interface or address.  By default the cluster address is used."
+msgstr "Esta opción se debe especificar únicamente si el daemon de API remota se ha configurado para usar una interfaz o dirección de red concreta. De manera predeterminada se usa la dirección del cluster."
+
+#. type: item
+#: doc/guix.texi:27677
+#, no-wrap
+msgid "@code{job-age} (default: @code{(* 6 3600)})"
+msgstr "@code{job-age} (predeterminados: @code{(* 6 3600)})"
+
+#. type: table
+#: doc/guix.texi:27680
+msgid "Archive cluster jobs older than this age, specified in seconds.  The default is 6 hours.  This keeps @command{gnt-job list} manageable."
+msgstr "Archiva los trabajos del cluster cuya antigüedad sea mayor que el el número de segundos proporcionado. El valor predeterminado son 6 horas. Esto mantiene la lista proporcionada @command{gnt-job list} dentro de límites gestionables."
+
+#. type: item
+#: doc/guix.texi:27681
+#, no-wrap
+msgid "@code{verify-disks?} (default: @code{#t})"
+msgstr "@code{verify-disks?} (predeterminado: @code{#t})"
+
+#. type: table
+#: doc/guix.texi:27685
+msgid "If this is @code{#f}, the watcher will not try to repair broken DRBD links automatically.  Administrators will need to use @command{gnt-cluster verify-disks} manually instead."
+msgstr "Si es @code{#f}, el proceso de vigilancia (``watcher'') no intentará reparar los enlaces de DRBD rotos de manera automática. Esto significa que quienes administren el sistema deberán usar @command{gnt-cluster verify-disks} manualmente para realizar dicha tarea."
+
+#. type: table
+#: doc/guix.texi:27688
+msgid "When @code{#t}, the script performs additional logging for debugging purposes."
+msgstr "Cuando es @code{#t}, el guión registra información adicional para facilitar la depuración."
+
+#. type: defvr
+#: doc/guix.texi:27692
+#, no-wrap
+msgid "{Scheme Variable} ganeti-cleaner-service-type"
+msgstr "{Variable Scheme} ganeti-cleaner-service-type"
+
+#. type: defvr
+#: doc/guix.texi:27700
+msgid "@command{ganeti-cleaner} is a script designed to run periodically and remove old files from the cluster.  This service type controls two @dfn{cron jobs}: one intended for the master node that permanently purges old cluster jobs, and one intended for every node that removes expired X509 certificates, keys, and outdated @command{ganeti-watcher} information.  Like all Ganeti services, it is safe to include even on non-master nodes as it will disable itself as necessary."
+msgstr "@command{ganeti-cleaner} es un guión diseñado para su ejecución periódica en la que elimina archivos antiguos del cluster. Este tipo de servicio controla dos @dfn{trabajos de cron}: uno para el nodo coordinador que elimina de manera permanente trabajos antiguos del cluster, y otro para todos los nodos que elimina certificados X509 y claves que hayan expirado así como información desactualizada de @command{ganeti-watcher}. Como todos los servicios de Ganeti, se puede incluir también en los nodos que no son coordinadores y se desactivará por si mismo si es necesario."
+
+#. type: defvr
+#: doc/guix.texi:27702
+msgid "It takes a @code{ganeti-cleaner-configuration} object."
+msgstr "Recibe un objeto @code{ganeti-cleaner-configuration}."
+
+#. type: deftp
+#: doc/guix.texi:27704
+#, no-wrap
+msgid "{Data Type} ganeti-cleaner-configuration"
+msgstr "{Tipo de datos} ganeti-cleaner-configuration"
+
+#. type: table
+#: doc/guix.texi:27709
+msgid "The @code{ganeti} package to use for the @command{gnt-cleaner} command."
+msgstr "El paquete @code{ganeti} usado para la orden @command{gnt-cleaner}."
+
+#. type: item
+#: doc/guix.texi:27710
+#, no-wrap
+msgid "@code{master-schedule} (default: @code{\"45 1 * * *\"})"
+msgstr "@code{master-schedule} (predeterminado: @code{\"45 1 * * *\"})"
+
+#. type: table
+#: doc/guix.texi:27713
+msgid "How often to run the master cleaning job.  The default is once per day, at 01:45:00."
+msgstr "Cada cuanto se ejecuta el trabajo principal de limpieza. El valor predeterminado representa su ejecución una vez al día, a las 01:45:00."
+
+#. type: item
+#: doc/guix.texi:27714
+#, no-wrap
+msgid "@code{node-schedule} (default: @code{\"45 2 * * *\"})"
+msgstr "@code{node-schedule} (predeterminada: @code{\"45 2 * * *\"})"
+
+#. type: table
+#: doc/guix.texi:27717
+msgid "How often to run the node cleaning job.  The default is once per day, at 02:45:00."
+msgstr "La frecuencia del trabajo de limpieza del nodo. El valor predeterminado es una vez al día, a las 02:45:00."
+
+# FUZZY FUZZY
+#. type: Plain text
+#: doc/guix.texi:27731
 msgid "The @code{(gnu services version-control)} module provides a service to allow remote access to local Git repositories.  There are three options: the @code{git-daemon-service}, which provides access to repositories via the @code{git://} unsecured TCP-based protocol, extending the @code{nginx} web server to proxy some requests to @code{git-http-backend}, or providing a web interface with @code{cgit-service-type}."
 msgstr "El módulo @code{(gnu services version-control)} proporciona un servicio para permitir el acceso remoto a repositorios Git locales. Existen tres opciones: el servicio @code{git-daemon-service}, que proporciona acceso a repositorios a través del protocolo inseguro basado en TCP @code{git://}, la extensión del servidor web @code{nginx} para redirigir algunas peticiones al motor @code{git-http-backend}, o una interfaz web proporcionada por el servicio @code{cgit-service-type}."
 
 #. type: deffn
-#: doc/guix.texi:24043
+#: doc/guix.texi:27732
 #, no-wrap
 msgid "{Scheme Procedure} git-daemon-service [#:config (git-daemon-configuration)]"
 msgstr "{Procedimiento Scheme} git-daemon-service [#:config (git-daemon-configuration)]"
 
 #. type: deffn
-#: doc/guix.texi:24047
+#: doc/guix.texi:27736
 msgid "Return a service that runs @command{git daemon}, a simple TCP server to expose repositories over the Git protocol for anonymous access."
 msgstr "Devuelve un servicio que ejecuta @command{git daemon}, un servidor TCP simple para exponer repositorios con el protocolo Git para acceso anónimo."
 
 # FUZZY
 #. type: deffn
-#: doc/guix.texi:24053
-msgid "The optional @var{config} argument should be a @code{<git-daemon-configuration>} object, by default it allows read-only access to exported@footnote{By creating the magic file \"git-daemon-export-ok\" in the repository directory.} repositories under @file{/srv/git}."
-msgstr "El parámetro opcional @var{config} debe ser un objeto @code{<git-daemon-configuration>}, de manera predeterminada permite acceso de solo lectura a los repositorios exportados@footnote{Mediante la creación del fichero mágico \"git-daemon-export-ok\" en el directorio del repositorio.} bajo @file{/srv/git}."
+#: doc/guix.texi:27742
+msgid "The optional @var{config} argument should be a @code{<git-daemon-configuration>} object, by default it allows read-only access to exported@footnote{By creating the magic file @file{git-daemon-export-ok} in the repository directory.} repositories under @file{/srv/git}."
+msgstr "El parámetro opcional @var{config} debe ser un objeto @code{<git-daemon-configuration>}, de manera predeterminada permite acceso de solo lectura a los repositorios exportados@footnote{Mediante la creación del archivo mágico @file{git-daemon-export-ok} en el directorio del repositorio.} bajo @file{/srv/git}."
 
 #. type: deftp
-#: doc/guix.texi:24056
+#: doc/guix.texi:27745
 #, no-wrap
 msgid "{Data Type} git-daemon-configuration"
 msgstr "{Tipo de datos} git-daemon-configuration"
 
 #. type: deftp
-#: doc/guix.texi:24058
+#: doc/guix.texi:27747
 msgid "Data type representing the configuration for @code{git-daemon-service}."
 msgstr "Tipo de datos que representa la configuración para @code{git-daemon-service}."
 
 #. type: item
-#: doc/guix.texi:24060 doc/guix.texi:24116
+#: doc/guix.texi:27749
 #, no-wrap
-msgid "@code{package} (default: @var{git})"
-msgstr "@code{package} (predeterminado: @var{git})"
+msgid "@code{package} (default: @code{git})"
+msgstr "@code{package} (predeterminado: @code{git})"
 
 #. type: table
-#: doc/guix.texi:24062 doc/guix.texi:24118
+#: doc/guix.texi:27751 doc/guix.texi:27811
 msgid "Package object of the Git distributed version control system."
 msgstr "El objeto paquete del sistema distribuido de control de versiones Git."
 
 #. type: item
-#: doc/guix.texi:24063 doc/guix.texi:24122
+#: doc/guix.texi:27752 doc/guix.texi:27815
 #, no-wrap
-msgid "@code{export-all?} (default: @var{#f})"
-msgstr "@code{export-all?} (predeterminado: @var{#f})"
+msgid "@code{export-all?} (default: @code{#f})"
+msgstr "@code{export-all?} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:24066
+#: doc/guix.texi:27755
 msgid "Whether to allow access for all Git repositories, even if they do not have the @file{git-daemon-export-ok} file."
-msgstr "Determina si se permite el acceso a todos los repositorios Git, incluso si no tienen el fichero @file{git-daemon-export-ok}."
+msgstr "Determina si se permite el acceso a todos los repositorios Git, incluso si no tienen el archivo @file{git-daemon-export-ok}."
 
 #. type: item
-#: doc/guix.texi:24067
+#: doc/guix.texi:27756
 #, no-wrap
 msgid "@code{base-path} (default: @file{/srv/git})"
 msgstr "@code{base-path} (predeterminado: @file{/srv/git})"
 
 #. type: table
-#: doc/guix.texi:24072
-msgid "Whether to remap all the path requests as relative to the given path.  If you run git daemon with @var{(base-path \"/srv/git\")} on example.com, then if you later try to pull @code{git://example.com/hello.git}, git daemon will interpret the path as @code{/srv/git/hello.git}."
-msgstr "Determina si se traducirán todas las rutas de las peticiones como relativas a la ruta proporcionada. Si se encuentra en ejecución el daemon de git con @var{(base-path \"/srv/git\"} en example.com, al realizar la solicitud de @code{git://example.com/hello.git}, el daemon de git interpretará la ruta como @code{/srv/git/hello.git}."
+#: doc/guix.texi:27762
+msgid "Whether to remap all the path requests as relative to the given path.  If you run @command{git daemon} with @code{(base-path \"/srv/git\")} on @samp{example.com}, then if you later try to pull @indicateurl{git://example.com/hello.git}, git daemon will interpret the path as @file{/srv/git/hello.git}."
+msgstr "Determina si se traducirán todas las rutas de las peticiones como relativas a la ruta proporcionada. Si se encuentra en ejecución el daemon de git con @code{(base-path \"/srv/git\"} en example.com, al realizar la solicitud de @indicateurl{git://example.com/hello.git}, el daemon de git interpretará la ruta como @file{/srv/git/hello.git}."
 
 #. type: item
-#: doc/guix.texi:24073
+#: doc/guix.texi:27763
 #, no-wrap
-msgid "@code{user-path} (default: @var{#f})"
-msgstr "@code{user-path} (predeterminado: @var{#f})"
+msgid "@code{user-path} (default: @code{#f})"
+msgstr "@code{user-path} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:24080
-msgid "Whether to allow @code{~user} notation to be used in requests.  When specified with empty string, requests to @code{git://host/~alice/foo} is taken as a request to access @code{foo} repository in the home directory of user @code{alice}.  If @var{(user-path \"path\")} is specified, the same request is taken as a request to access @code{path/foo} repository in the home directory of user @code{alice}."
-msgstr "Determina si se permite el uso de la notación @code{~user} en las peticiones. Si se especifica una cadena vacía, una peticione de @code{git://máquina/~alicia/algo} se tomará como una petición de acceso al repositorio @code{algo} en el directorio de la usuaria @code{alicia}. Si se especifica @var{(user-path \"ruta\")}, la misma petición se traducirá en una petición de acceso al repositorio @code{ruta/algo} en el directorio de la usuaria @code{alicia}."
+#: doc/guix.texi:27771
+msgid "Whether to allow @code{~user} notation to be used in requests.  When specified with empty string, requests to @indicateurl{git://host/~alice/foo} is taken as a request to access @code{foo} repository in the home directory of user @code{alice}.  If @code{(user-path \"@var{path}\")} is specified, the same request is taken as a request to access @file{@var{path}/foo} repository in the home directory of user @code{alice}."
+msgstr "Determina si se permite el uso de la notación @code{~user} en las peticiones. Si se especifica una cadena vacía, una peticione de @indicateurl{git://máquina/~alicia/algo} se tomará como una petición de acceso al repositorio @code{algo} en el directorio de la usuaria @code{alicia}. Si se especifica @code{(user-path \"@var{ruta}\")}, la misma petición se traducirá en una petición de acceso al repositorio @file{@var{ruta}/algo} en el directorio de la usuaria @code{alicia}."
 
 #. type: item
-#: doc/guix.texi:24081
+#: doc/guix.texi:27772
 #, no-wrap
-msgid "@code{listen} (default: @var{'()})"
-msgstr "@code{listen} (predeterminado: @var{'()})"
+msgid "@code{listen} (default: @code{'()})"
+msgstr "@code{listen} (predeterminadas: @code{'()})"
 
 # FUZZY FUZZY
 #. type: table
-#: doc/guix.texi:24084
+#: doc/guix.texi:27775
 msgid "Whether to listen on specific IP addresses or hostnames, defaults to all."
 msgstr "Determina si se debe escuchar en direcciones IP o nombres de máquina específicos, de manera predeterminada escucha en cualquiera."
 
 #. type: item
-#: doc/guix.texi:24085
+#: doc/guix.texi:27776
 #, no-wrap
-msgid "@code{port} (default: @var{#f})"
-msgstr "@code{port} (predeterminado: @var{#f})"
+msgid "@code{port} (default: @code{#f})"
+msgstr "@code{port} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:24087
+#: doc/guix.texi:27778
 msgid "Whether to listen on an alternative port, which defaults to 9418."
 msgstr "Determina si se escucha en un puerto alternativo, cuyo valor predeterminado es 9418."
 
 #. type: item
-#: doc/guix.texi:24088
+#: doc/guix.texi:27779
 #, no-wrap
-msgid "@code{whitelist} (default: @var{'()})"
-msgstr "@code{whitelist} (predeterminado: @var{'()})"
+msgid "@code{whitelist} (default: @code{'()})"
+msgstr "@code{whitelist} (predeterminada: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:24090
+#: doc/guix.texi:27781
 msgid "If not empty, only allow access to this list of directories."
 msgstr "Si no está vacío, únicamente permite el acceso a esta lista de directorios."
 
-#. type: item
-#: doc/guix.texi:24091 doc/guix.texi:25381
-#, no-wrap
-msgid "@code{extra-options} (default: @var{'()})"
-msgstr "@code{extra-options} (predeterminadas: @var{'()})"
-
 #. type: table
-#: doc/guix.texi:24094
-msgid "Extra options will be passed to @code{git daemon}, please run @command{man git-daemon} for more information."
-msgstr "Opciones adicionales que se proporcionan a @code{git daemon}, para obtener más información le rogamos que ejecute @command{man git-daemon}."
+#: doc/guix.texi:27785
+msgid "Extra options will be passed to @command{git daemon}, please run @command{man git-daemon} for more information."
+msgstr "Opciones adicionales que se proporcionan a @command{git daemon}, para obtener más información le rogamos que ejecute @command{man git-daemon}."
 
 # FUZZY
 #. type: Plain text
-#: doc/guix.texi:24108
+#: doc/guix.texi:27799
 msgid "The @code{git://} protocol lacks authentication.  When you pull from a repository fetched via @code{git://}, you don't know whether the data you receive was modified or is even coming from the specified host, and your connection is subject to eavesdropping.  It's better to use an authenticated and encrypted transport, such as @code{https}.  Although Git allows you to serve repositories using unsophisticated file-based web servers, there is a faster protocol implemented by the @code{git-http-backend} program.  This program is the back-end of a proper Git web service.  It is designed to sit behind a FastCGI proxy.  @xref{Web Services}, for more on running the necessary @code{fcgiwrap} daemon."
-msgstr "El protocolo @code{git://} carece de verificación. Cuando se obtienen datos de un repositorio a través del protocolo @code{git://}, no puede tener plena confianza en que los datos que reciba procedan realmente de la máquina que ha indicado, y su conexión puede estar sujeta a interceptaciones. Es mejor usar un transporte verificado y cifrado, como @code{https}. Aunque Git le permite servir repositorios usando servidores web poco sofisticados basados en ficheros, existe un protocolo más rápido implementado en el programa @code{git-http-backend}. Este programa es el motor de un servicio web de Git adecuado. Está diseñado para ejecutarse tras FastCGI. @xref{Web Services}, para más información sobre la ejecución del daemon @code{fcgiwrap} necesario."
+msgstr "El protocolo @code{git://} carece de verificación. Cuando se obtienen datos de un repositorio a través del protocolo @code{git://}, no puede tener plena confianza en que los datos que reciba procedan realmente de la máquina que ha indicado, y su conexión puede estar sujeta a interceptaciones. Es mejor usar un transporte verificado y cifrado, como @code{https}. Aunque Git le permite servir repositorios usando servidores web poco sofisticados basados en archivos, existe un protocolo más rápido implementado en el programa @code{git-http-backend}. Este programa es el motor de un servicio web de Git adecuado. Está diseñado para ejecutarse tras una pasarela FastCGI. @xref{Web Services}, para más información sobre la ejecución del daemon @code{fcgiwrap} necesario."
 
 #. type: Plain text
-#: doc/guix.texi:24111
+#: doc/guix.texi:27802
 msgid "Guix has a separate configuration data type for serving Git repositories over HTTP."
 msgstr "Guix tiene un tipo de datos de configuración distinto para proporcionar repositorios Git sobre HTTP."
 
 #. type: deftp
-#: doc/guix.texi:24112
+#: doc/guix.texi:27803
 #, no-wrap
 msgid "{Data Type} git-http-configuration"
 msgstr "{Tipo de datos} git-http-configuration"
 
 #. type: deftp
-#: doc/guix.texi:24114
-msgid "Data type representing the configuration for @code{git-http-service}."
-msgstr "Tipo de datos que representa la configuración para @code{git-http-service}."
+#: doc/guix.texi:27807
+msgid "Data type representing the configuration for a future @code{git-http-service-type}; can currently be used to configure Nginx trough @code{git-http-nginx-location-configuration}."
+msgstr "Tipo de datos que representa la configuración para un futuro tipo de servicio @code{git-http-service-type}; actualmente puede usarse para configurar Nginx a través de @code{git-http-nginx-location-configuration}."
 
 #. type: item
-#: doc/guix.texi:24119
+#: doc/guix.texi:27809
+#, no-wrap
+msgid "@code{package} (default: @var{git})"
+msgstr "@code{package} (predeterminado: @var{git})"
+
+#. type: item
+#: doc/guix.texi:27812
 #, no-wrap
 msgid "@code{git-root} (default: @file{/srv/git})"
 msgstr "@code{git-root} (predeterminada: @file{/srv/git})"
 
 #. type: table
-#: doc/guix.texi:24121
+#: doc/guix.texi:27814
 msgid "Directory containing the Git repositories to expose to the world."
 msgstr "Directorio que contiene los repositorios Git que se expondrán al mundo."
 
 #. type: table
-#: doc/guix.texi:24125
+#: doc/guix.texi:27818
 msgid "Whether to expose access for all Git repositories in @var{git-root}, even if they do not have the @file{git-daemon-export-ok} file."
-msgstr "Determina si se expondrá el acceso a todos los repositorios en @var{git-root}, incluso si no contienen el fichero @file{git-daemon-export-ok}."
+msgstr "Determina si se expondrá el acceso a todos los repositorios en @var{git-root}, incluso si no contienen el archivo @file{git-daemon-export-ok}."
 
 #. type: item
-#: doc/guix.texi:24126
+#: doc/guix.texi:27819
 #, no-wrap
-msgid "@code{uri-path} (default: @file{/git/})"
-msgstr "@code{uri-path} (predeterminada: @file{/git/})"
+msgid "@code{uri-path} (default: @samp{/git/})"
+msgstr "@code{uri-path} (predeterminada: @samp{/git/})"
 
 #. type: table
-#: doc/guix.texi:24131
-msgid "Path prefix for Git access.  With the default @code{/git/} prefix, this will map @code{http://@var{server}/git/@var{repo}.git} to @code{/srv/git/@var{repo}.git}.  Requests whose URI paths do not begin with this prefix are not passed on to this Git instance."
-msgstr "Prefijo de la ruta del acceso de Git. Con el prefijo predeterminado @code{/git/}, @code{http://@var{servidor}/git/@var{repositorio}.git} se traducirá en @code{/srv/git/@var{repositorio}.git}. Las peticiones cuyas rutas URI no comiencen con dicho prefijo no se pasan a esta instancia de Git."
+#: doc/guix.texi:27824
+msgid "Path prefix for Git access.  With the default @samp{/git/} prefix, this will map @indicateurl{http://@var{server}/git/@var{repo}.git} to @file{/srv/git/@var{repo}.git}.  Requests whose URI paths do not begin with this prefix are not passed on to this Git instance."
+msgstr "Prefijo de la ruta del acceso de Git. Con el prefijo predeterminado @samp{/git/}, @indicateurl{http://@var{servidor}/git/@var{repositorio}.git} se traducirá en @code{/srv/git/@var{repositorio}.git}. Las peticiones cuyas rutas URI no comiencen con dicho prefijo no se pasan a esta instancia de Git."
 
 #. type: item
-#: doc/guix.texi:24132
+#: doc/guix.texi:27825
 #, no-wrap
 msgid "@code{fcgiwrap-socket} (default: @code{127.0.0.1:9000})"
 msgstr "@code{fcgiwrap-socket} (predeterminado: @code{127.0.0.1:9000})"
 
 #. type: table
-#: doc/guix.texi:24135
+#: doc/guix.texi:27828
 msgid "The socket on which the @code{fcgiwrap} daemon is listening.  @xref{Web Services}."
 msgstr "Socket en el que el daemon @code{fcgiwrap} escucha. @xref{Web Services}."
 
 #. type: Plain text
-#: doc/guix.texi:24142
+#: doc/guix.texi:27835
 msgid "There is no @code{git-http-service-type}, currently; instead you can create an @code{nginx-location-configuration} from a @code{git-http-configuration} and then add that location to a web server."
 msgstr "No existe actualmente @code{git-http-service-type}; en vez de eso puede crear una configuración @code{nginx-location-configuration} desde @code{git-http-configuration} y añadir dicha configuración al servidor web."
 
 #. type: deffn
-#: doc/guix.texi:24143
+#: doc/guix.texi:27836
 #, no-wrap
 msgid "{Scheme Procedure} git-http-nginx-location-configuration @"
 msgstr "{Procedimiento Scheme} git-http-nginx-location-configuration @"
 
 #. type: deffn
-#: doc/guix.texi:24148
+#: doc/guix.texi:27841
 msgid "[config=(git-http-configuration)] Compute an @code{nginx-location-configuration} that corresponds to the given Git http configuration.  An example nginx service definition to serve the default @file{/srv/git} over HTTPS might be:"
 msgstr ""
 "[config=(git-http-configuration)]\n"
 "Calcula una configuración @code{nginx-location-configuration} que corresponde con la configuración http de Git proporcionada. Un ejemplo de definición de servicio nginx que ofrece el directorio predeterminado @file{/srv/git} sobre HTTPS podría ser:"
 
 #. type: lisp
-#: doc/guix.texi:24165
+#: doc/guix.texi:27858
 #, no-wrap
 msgid ""
 "(service nginx-service-type\n"
@@ -46834,455 +53491,454 @@ msgstr ""
 "                (git-http-configuration (uri-path \"/\"))))))))))\n"
 
 #. type: deffn
-#: doc/guix.texi:24172
+#: doc/guix.texi:27865
 msgid "This example assumes that you are using Let's Encrypt to get your TLS certificate.  @xref{Certificate Services}.  The default @code{certbot} service will redirect all HTTP traffic on @code{git.my-host.org} to HTTPS.  You will also need to add an @code{fcgiwrap} proxy to your system services.  @xref{Web Services}."
-msgstr "Este ejemplo asume que usa Let's Encrypt para obtener su certificado TLS. @xref{Certificate Services}. El servicio predeterminado @code{certbot} redirigirá todo el tráfico HTTP en @code{git.mi-maquina.org} hacia HTTPS. También necesitará añadir @code{fcgiwrap} a sus servicios del sistema. @xref{Web Services}."
+msgstr "Este ejemplo asume que usa Let's Encrypt para obtener su certificado TLS. @xref{Certificate Services}. El servicio predeterminado @code{certbot} redirigirá todo el tráfico HTTP en @code{git.mi-maquina.org} hacia HTTPS. También necesitará añadir una pasarela @code{fcgiwrap} a sus servicios del sistema. @xref{Web Services}."
 
 #. type: subsubheading
-#: doc/guix.texi:24174
+#: doc/guix.texi:27867
 #, no-wrap
 msgid "Cgit Service"
 msgstr "Servicio Cgit"
 
 #. type: cindex
-#: doc/guix.texi:24176
+#: doc/guix.texi:27869
 #, no-wrap
 msgid "Cgit service"
 msgstr "servicio Cgit"
 
 #. type: cindex
-#: doc/guix.texi:24177
+#: doc/guix.texi:27870
 #, no-wrap
 msgid "Git, web interface"
 msgstr "Git, interfaz web"
 
 # FUZZY
 #. type: Plain text
-#: doc/guix.texi:24180
+#: doc/guix.texi:27873
 msgid "@uref{https://git.zx2c4.com/cgit/, Cgit} is a web frontend for Git repositories written in C."
 msgstr "@uref{https://git.zx2c4.com/cgit/, Cgit} es un servidor de fachada para repositiorios Git escrito en C."
 
 #. type: Plain text
-#: doc/guix.texi:24183
+#: doc/guix.texi:27876
 msgid "The following example will configure the service with default values.  By default, Cgit can be accessed on port 80 (@code{http://localhost:80})."
 msgstr "El ejemplo siguiente configura el servicio con los valores predeterminados. Por omisión, se puede acceder a Cgit en el puerto 80 (@code{http://localhost:80})."
 
 #. type: lisp
-#: doc/guix.texi:24186
+#: doc/guix.texi:27879
 #, no-wrap
 msgid "(service cgit-service-type)\n"
 msgstr "(service cgit-service-type)\n"
 
 # FUZZY
 #. type: Plain text
-#: doc/guix.texi:24190
+#: doc/guix.texi:27883
 msgid "The @code{file-object} type designates either a file-like object (@pxref{G-Expressions, file-like objects}) or a string."
-msgstr "El tipo @code{file-object} designa o bien un objeto ``tipo-fichero'' (@pxref{G-Expressions, objetos ``tipo-fichero''}), o bien una cadena."
+msgstr "El tipo @code{file-object} designa o bien un objeto ``tipo-archivo'' (@pxref{G-Expressions, objetos ``tipo-archivo''}), o bien una cadena."
 
 #. type: Plain text
-#: doc/guix.texi:24194
+#: doc/guix.texi:27887
 msgid "Available @code{cgit-configuration} fields are:"
 msgstr "Los campos disponibles de @code{cgit-configuration} son:"
 
 #. type: deftypevr
-#: doc/guix.texi:24195
+#: doc/guix.texi:27888
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} package package"
 msgstr "{parámetro de @code{cgit-configuration}} package package"
 
 #. type: deftypevr
-#: doc/guix.texi:24197
+#: doc/guix.texi:27890
 msgid "The CGIT package."
 msgstr "El paquete CGIT."
 
 #. type: deftypevr
-#: doc/guix.texi:24200
+#: doc/guix.texi:27893
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} nginx-server-configuration-list nginx"
 msgstr "{parámetro de @code{cgit-configuration}} lista-nginx-server-configuration nginx"
 
 #. type: deftypevr
-#: doc/guix.texi:24205
+#: doc/guix.texi:27898
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} file-object about-filter"
 msgstr "{parámetro de @code{cgit-configuration}} file-object about-filter"
 
 #. type: deftypevr
-#: doc/guix.texi:24208
+#: doc/guix.texi:27901
 msgid "Specifies a command which will be invoked to format the content of about pages (both top-level and for each repository)."
 msgstr "Especifica una orden que se llamará para dar formato al contenido de las páginas ``about'' (tanto al nivel superior como cada repositorio)."
 
 #. type: deftypevr
-#: doc/guix.texi:24213
+#: doc/guix.texi:27906
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string agefile"
 msgstr "{parámetro de @code{cgit-configuration}} string agefile"
 
 #. type: deftypevr
-#: doc/guix.texi:24216
+#: doc/guix.texi:27909
 msgid "Specifies a path, relative to each repository path, which can be used to specify the date and time of the youngest commit in the repository."
 msgstr "Especifica una ruta, relativa a cada ruta de repositorio, que puede usarse para especificar una fecha y hora de la revisión más reciente del repositorio."
 
 #. type: deftypevr
-#: doc/guix.texi:24221
+#: doc/guix.texi:27914
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} file-object auth-filter"
 msgstr "{parámetro de @code{cgit-configuration}} file-object auth-filter"
 
 # FUZZY FUZZY
 #. type: deftypevr
-#: doc/guix.texi:24224
+#: doc/guix.texi:27917
 msgid "Specifies a command that will be invoked for authenticating repository access."
 msgstr "Especifica una orden que se invocará para la validación de acceso al repositorio."
 
 #. type: deftypevr
-#: doc/guix.texi:24229
+#: doc/guix.texi:27922
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string branch-sort"
 msgstr "{parámetro de @code{cgit-configuration}} string branch-sort"
 
 #. type: deftypevr
-#: doc/guix.texi:24232
+#: doc/guix.texi:27925
 msgid "Flag which, when set to @samp{age}, enables date ordering in the branch ref list, and when set @samp{name} enables ordering by branch name."
 msgstr "Opción que, cuando tiene valor @samp{age}, activa la ordenación por fecha en la lista de referencias de ramas, y cuando tiene valor @samp{name} activa la ordenación por nombre de rama."
 
 #. type: deftypevr
-#: doc/guix.texi:24234
+#: doc/guix.texi:27927
 msgid "Defaults to @samp{\"name\"}."
 msgstr "El valor predeterminado es @samp{\"name\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:24237
+#: doc/guix.texi:27930
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string cache-root"
 msgstr "{parámetro de @code{cgit-configuration}} string cache-root"
 
 #. type: deftypevr
-#: doc/guix.texi:24239
+#: doc/guix.texi:27932
 msgid "Path used to store the cgit cache entries."
 msgstr "Ruta usada para el almacenamiento de las entradas de caché de cgit."
 
 #. type: deftypevr
-#: doc/guix.texi:24241
+#: doc/guix.texi:27934
 msgid "Defaults to @samp{\"/var/cache/cgit\"}."
 msgstr "El valor predeterminado es @samp{\"/var/cache/cgit\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:24244
+#: doc/guix.texi:27937
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer cache-static-ttl"
 msgstr "{parámetro de @code{cgit-configuration}} integer cache-static-ttl"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:24247
+#: doc/guix.texi:27940
 msgid "Number which specifies the time-to-live, in minutes, for the cached version of repository pages accessed with a fixed SHA1."
 msgstr "Número que especifica el tiempo de vida, en minutos, de la versión en caché de las páginas del repositiorio accedidas mediante un hash SHA1 fijo."
 
 #. type: deftypevr
-#: doc/guix.texi:24249 doc/guix.texi:24692
+#: doc/guix.texi:27942 doc/guix.texi:28385
 msgid "Defaults to @samp{-1}."
 msgstr "El valor predeterminado es @samp{-1}."
 
 #. type: deftypevr
-#: doc/guix.texi:24252
+#: doc/guix.texi:27945
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer cache-dynamic-ttl"
 msgstr "{parámetro de @code{cgit-configuration}} integer cache-dynamic-ttl"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:24255
+#: doc/guix.texi:27948
 msgid "Number which specifies the time-to-live, in minutes, for the cached version of repository pages accessed without a fixed SHA1."
 msgstr "Número que especifica el tiempo de vida, en minutos, de la versión en caché de las páginas del repositorio accedidas sin un hash SHA1 fijo."
 
 #. type: deftypevr
-#: doc/guix.texi:24260
+#: doc/guix.texi:27953
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer cache-repo-ttl"
 msgstr "{parámetro de @code{cgit-configuration}} integer cache-repo-ttl"
 
 #. type: deftypevr
-#: doc/guix.texi:24263
+#: doc/guix.texi:27956
 msgid "Number which specifies the time-to-live, in minutes, for the cached version of the repository summary page."
 msgstr "Número que especifica el tiempo de vida, en minutos, de la versión en caché de la página de resumen del repositorio."
 
 #. type: deftypevr
-#: doc/guix.texi:24268
+#: doc/guix.texi:27961
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer cache-root-ttl"
 msgstr "{parámetro de @code{cgit-configuration}} integer cache-root-ttl"
 
 #. type: deftypevr
-#: doc/guix.texi:24271
+#: doc/guix.texi:27964
 msgid "Number which specifies the time-to-live, in minutes, for the cached version of the repository index page."
 msgstr "Número que especifica el tiempo de vida, en minutos, de la versión en caché de la página del índice de repositorios."
 
 #. type: deftypevr
-#: doc/guix.texi:24276
+#: doc/guix.texi:27969
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer cache-scanrc-ttl"
 msgstr "{parámetro de @code{cgit-configuration}} integer cache-scanrc-ttl"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:24279
+#: doc/guix.texi:27972
 msgid "Number which specifies the time-to-live, in minutes, for the result of scanning a path for Git repositories."
 msgstr "Número que especifica el tiempo de vida, en minutos, para el resultado de la búsqueda en una ruta para repositorios Git."
 
 #. type: deftypevr
-#: doc/guix.texi:24284
+#: doc/guix.texi:27977
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer cache-about-ttl"
 msgstr "{parámetro de @code{cgit-configuration}} integer cache-about-ttl"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:24287
+#: doc/guix.texi:27980
 msgid "Number which specifies the time-to-live, in minutes, for the cached version of the repository about page."
 msgstr "Número que especifica el tiempo de vida, en minutos, de la versión en caché de la página de información del repositorio."
 
 #. type: deftypevr
-#: doc/guix.texi:24292
+#: doc/guix.texi:27985
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer cache-snapshot-ttl"
 msgstr "{parámetro de @code{cgit-configuration}} integer cache-snapshot-ttl"
 
 #. type: deftypevr
-#: doc/guix.texi:24295
+#: doc/guix.texi:27988
 msgid "Number which specifies the time-to-live, in minutes, for the cached version of snapshots."
 msgstr "Número que especifica el tiempo de vida, en minutos, de la versión en caché de las instantáneas."
 
 #. type: deftypevr
-#: doc/guix.texi:24300
+#: doc/guix.texi:27993
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer cache-size"
 msgstr "{parámetro de @code{cgit-configuration}} integer cache-size"
 
 #. type: deftypevr
-#: doc/guix.texi:24303
+#: doc/guix.texi:27996
 msgid "The maximum number of entries in the cgit cache.  When set to @samp{0}, caching is disabled."
 msgstr "El número máximo de entradas en la caché de cgit. Cuando el valor es @samp{0}, se desactiva el almacenamiento en caché."
 
 #. type: deftypevr
-#: doc/guix.texi:24308
+#: doc/guix.texi:28001
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean case-sensitive-sort?"
 msgstr "{parámetro de @code{cgit-configuration}} boolean case-sensitive-sort?"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:24310
+#: doc/guix.texi:28003
 msgid "Sort items in the repo list case sensitively."
 msgstr "Ordena los elementos en la lista del repositorio diferenciando las mayúsculas."
 
 #. type: deftypevr
-#: doc/guix.texi:24315
+#: doc/guix.texi:28008
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} list clone-prefix"
 msgstr "{parámetro de @code{cgit-configuration}} lista clone-prefix"
 
 #. type: deftypevr
-#: doc/guix.texi:24318
+#: doc/guix.texi:28011
 msgid "List of common prefixes which, when combined with a repository URL, generates valid clone URLs for the repository."
 msgstr "Lista de prefijos comunes que, cuando se combinen con la URL de un repositorio, generan una URL que permite el clonado del repositorio."
 
 #. type: deftypevr
-#: doc/guix.texi:24323
+#: doc/guix.texi:28016
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} list clone-url"
 msgstr "{parámetro de @code{cgit-configuration}} lista clone-url"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:24325
+#: doc/guix.texi:28018
 msgid "List of @code{clone-url} templates."
 msgstr "Lista de plantillas @code{clone-url}."
 
 #. type: deftypevr
-#: doc/guix.texi:24330
+#: doc/guix.texi:28023
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} file-object commit-filter"
 msgstr "{parámetro de @code{cgit-configuration}} file-object commit-filter"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:24332
+#: doc/guix.texi:28025
 msgid "Command which will be invoked to format commit messages."
 msgstr "Orden ejecutada para el formato de mensajes de revisión."
 
 #. type: deftypevr
-#: doc/guix.texi:24337
+#: doc/guix.texi:28030
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string commit-sort"
 msgstr "{parámetro de @code{cgit-configuration}} string commit-sort"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:24341 doc/guix.texi:24899
+#: doc/guix.texi:28034 doc/guix.texi:28592
 msgid "Flag which, when set to @samp{date}, enables strict date ordering in the commit log, and when set to @samp{topo} enables strict topological ordering."
 msgstr "Opción que, cuando tiene valor @samp{date}, activa la ordenación estricta por fecha en el registro histórico de revisiones, y cuando tiene valor @samp{topo} activa la ordenación estricta topológica."
 
 #. type: deftypevr
-#: doc/guix.texi:24343
+#: doc/guix.texi:28036
 msgid "Defaults to @samp{\"git log\"}."
 msgstr "El valor predeterminado es @samp{\"git log\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:24346
+#: doc/guix.texi:28039
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} file-object css"
 msgstr "{parámetro de @code{cgit-configuration}} file-object css"
 
 #. type: deftypevr
-#: doc/guix.texi:24348
+#: doc/guix.texi:28041
 msgid "URL which specifies the css document to include in all cgit pages."
 msgstr "URL que especifica el documento css incluido en todas las páginas de cgit."
 
 #. type: deftypevr
-#: doc/guix.texi:24350
+#: doc/guix.texi:28043
 msgid "Defaults to @samp{\"/share/cgit/cgit.css\"}."
 msgstr "El valor predeterminado es @samp{\"/share/cgit/cgit.css\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:24353
+#: doc/guix.texi:28046
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} file-object email-filter"
 msgstr "{parámetro de @code{cgit-configuration}} file-object email-filter"
 
 #. type: deftypevr
-#: doc/guix.texi:24357
+#: doc/guix.texi:28050
 msgid "Specifies a command which will be invoked to format names and email address of committers, authors, and taggers, as represented in various places throughout the cgit interface."
 msgstr "Especifica una orden que se llamará para dar formato a los nombres y las direcciones de correo electrónico de las revisoras, autoras y etiquetadoras con el que se representarán en varios lugares de la interfaz cgit."
 
 #. type: deftypevr
-#: doc/guix.texi:24362
+#: doc/guix.texi:28055
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean embedded?"
 msgstr "{parámetro de @code{cgit-configuration}} boolean embedded?"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:24365
+#: doc/guix.texi:28058
 msgid "Flag which, when set to @samp{#t}, will make cgit generate a HTML fragment suitable for embedding in other HTML pages."
 msgstr "Opción que, cuando tiene valor @samp{#t}, hace que cgit genere un fragmento HTML adecuado para embeberse en otras páginas HTML."
 
 #. type: deftypevr
-#: doc/guix.texi:24370
+#: doc/guix.texi:28063
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean enable-commit-graph?"
 msgstr "{parámetro de @code{cgit-configuration}} boolean enable-commit-graph?"
 
 #. type: deftypevr
-#: doc/guix.texi:24374
+#: doc/guix.texi:28067
 msgid "Flag which, when set to @samp{#t}, will make cgit print an ASCII-art commit history graph to the left of the commit messages in the repository log page."
 msgstr "Opción que, cuando tiene el valor @samp{#t}, hace que cgit imprima un grafo histórico de la revisión de arte ASCII a la izquierda de los mensajes de revisión en la página del histórico del repositorio."
 
 #. type: deftypevr
-#: doc/guix.texi:24379
+#: doc/guix.texi:28072
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean enable-filter-overrides?"
 msgstr "{parámetro de @code{cgit-configuration}} boolean enable-filter-overrides?"
 
 #. type: deftypevr
-#: doc/guix.texi:24382
+#: doc/guix.texi:28075
 msgid "Flag which, when set to @samp{#t}, allows all filter settings to be overridden in repository-specific cgitrc files."
-msgstr "Opción que, cuando tiene valor @samp{#t}, permite que todas las configuraciones de filtros se sustituyan en los ficheros cgitrc específicos del repositorio."
+msgstr "Opción que, cuando tiene valor @samp{#t}, permite que todas las configuraciones de filtros se sustituyan en los archivos cgitrc específicos del repositorio."
 
 #. type: deftypevr
-#: doc/guix.texi:24387
+#: doc/guix.texi:28080
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean enable-follow-links?"
 msgstr "{parámetro de @code{cgit-configuration}} boolean enable-follow-links?"
 
 #. type: deftypevr
-#: doc/guix.texi:24390
+#: doc/guix.texi:28083
 msgid "Flag which, when set to @samp{#t}, allows users to follow a file in the log view."
-msgstr "Opción que, cuando tiene valor @samp{#t}, permite a las usuarias seguir un fichero en la vista de registro (log)."
+msgstr "Opción que, cuando tiene valor @samp{#t}, permite a las usuarias seguir un archivo en la vista de registro (log)."
 
 #. type: deftypevr
-#: doc/guix.texi:24395
+#: doc/guix.texi:28088
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean enable-http-clone?"
 msgstr "{parámetro de @code{cgit-configuration}} boolean enable-http-clone?"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:24398
+#: doc/guix.texi:28091
 msgid "If set to @samp{#t}, cgit will act as an dumb HTTP endpoint for Git clones."
 msgstr "Si se proporciona @samp{#t}, cgit actuará como un simple servidor HTTP para los clones de Git."
 
 #. type: deftypevr
-#: doc/guix.texi:24403
+#: doc/guix.texi:28096
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean enable-index-links?"
 msgstr "{parámetro de @code{cgit-configuration}} boolean enable-index-links?"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:24406
+#: doc/guix.texi:28099
 msgid "Flag which, when set to @samp{#t}, will make cgit generate extra links \"summary\", \"commit\", \"tree\" for each repo in the repository index."
 msgstr "Opción que, cuando tiene valor @samp{#t}, hace que cgit genere enlaces adicionales \"summary\" (resumen), \"commit\" (revisión) y \"tree\" (árbol) para cada repositorio en el índice de repositorios."
 
 #. type: deftypevr
-#: doc/guix.texi:24411
+#: doc/guix.texi:28104
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean enable-index-owner?"
 msgstr "{parámetro de @code{cgit-configuration}} boolean enable-index-owner?"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:24414
+#: doc/guix.texi:28107
 msgid "Flag which, when set to @samp{#t}, will make cgit display the owner of each repo in the repository index."
 msgstr "Opción que, cuando tiene valor @samp{#t}, hace que cgit muestre la propietaria de cada repositorio en el índice del repositorios."
 
 #. type: deftypevr
-#: doc/guix.texi:24419
+#: doc/guix.texi:28112
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean enable-log-filecount?"
 msgstr "{parámetro de @code{cgit-configuration}} boolean enable-log-filecount?"
 
 #. type: deftypevr
-#: doc/guix.texi:24422
+#: doc/guix.texi:28115
 msgid "Flag which, when set to @samp{#t}, will make cgit print the number of modified files for each commit on the repository log page."
-msgstr "Opción que, cuando se proporciona el valor @samp{#t}, hace que cgit imprima el número de ficheros modificados por cada revisión en la página de registro histórico del repositorio (\"log\")."
+msgstr "Opción que, cuando se proporciona el valor @samp{#t}, hace que cgit imprima el número de archivos modificados por cada revisión en la página de registro histórico del repositorio (\"log\")."
 
 #. type: deftypevr
-#: doc/guix.texi:24427
+#: doc/guix.texi:28120
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean enable-log-linecount?"
 msgstr "{parámetro de @code{cgit-configuration}} boolean enable-log-linecount?"
 
 #. type: deftypevr
-#: doc/guix.texi:24430
+#: doc/guix.texi:28123
 msgid "Flag which, when set to @samp{#t}, will make cgit print the number of added and removed lines for each commit on the repository log page."
 msgstr "Opción que, cuando se proporciona el valor @samp{#t}, hace que cgit imprima el número de líneas añadidas y eliminadas en cada revisión en la página de registro histórico (\"log\")."
 
 #. type: deftypevr
-#: doc/guix.texi:24435
+#: doc/guix.texi:28128
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean enable-remote-branches?"
 msgstr "{parámetro de @code{cgit-configuration}} boolean enable-remote-branches?"
 
 #. type: deftypevr
-#: doc/guix.texi:24438 doc/guix.texi:24962
+#: doc/guix.texi:28131 doc/guix.texi:28655
 msgid "Flag which, when set to @code{#t}, will make cgit display remote branches in the summary and refs views."
 msgstr "Opción que, cuando se proporciona el valor @samp{#t}, hace que cgit muestre ramas remotas en las vistas de resumen (\"summary\") y de referencias (\"refs\")."
 
 #. type: deftypevr
-#: doc/guix.texi:24443
+#: doc/guix.texi:28136
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean enable-subject-links?"
 msgstr "{parámetro de @code{cgit-configuration}} boolean enable-subject-links?"
 
-# TODO (MAAV): Enviar parche.
 #. type: deftypevr
-#: doc/guix.texi:24447
+#: doc/guix.texi:28140
 msgid "Flag which, when set to @code{1}, will make cgit use the subject of the parent commit as link text when generating links to parent commits in commit view."
-msgstr "Opción que, cuando se proporciona el valor @samp{1}, hace que cgit use el asunto de la revisión previa como texto del enlace cuando se generen enlaces a revisiones previas en la vista de la revisión."
+msgstr "Opción que, cuando se proporciona el valor @code{1}, hace que cgit use el asunto de la revisión previa como texto del enlace cuando se generen enlaces a revisiones previas en la vista de la revisión."
 
 #. type: deftypevr
-#: doc/guix.texi:24452
+#: doc/guix.texi:28145
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean enable-html-serving?"
 msgstr "{parámetro de @code{cgit-configuration}} boolean enable-html-serving?"
@@ -47290,1011 +53946,1011 @@ msgstr "{parámetro de @code{cgit-configuration}} boolean enable-html-serving?"
 # FUZZY
 # TODO (MAAV): Enviar parche.
 #. type: deftypevr
-#: doc/guix.texi:24456
+#: doc/guix.texi:28149
 msgid "Flag which, when set to @samp{#t}, will make cgit use the subject of the parent commit as link text when generating links to parent commits in commit view."
 msgstr "Opción que, cuando se proporciona el valor @samp{#t}, hace que cgit use el asunto de la revisión previa como texto del enlace cuando se generen enlaces a revisiones previas en la vista de la revisión."
 
 #. type: deftypevr
-#: doc/guix.texi:24461
+#: doc/guix.texi:28154
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean enable-tree-linenumbers?"
 msgstr "{parámetro de @code{cgit-configuration}} boolean enable-tree-linenumbers?"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:24464
+#: doc/guix.texi:28157
 msgid "Flag which, when set to @samp{#t}, will make cgit generate linenumber links for plaintext blobs printed in the tree view."
-msgstr "Opción que, cuando se proporciona el valor @samp{#t}, hace que cgit genere enlaces de números de línea para los ficheros (blob) de texto plano impresos en la vista de árbol."
+msgstr "Opción que, cuando se proporciona el valor @samp{#t}, hace que cgit genere enlaces de números de línea para los archivos (blob) de texto plano impresos en la vista de árbol."
 
 #. type: deftypevr
-#: doc/guix.texi:24469
+#: doc/guix.texi:28162
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean enable-git-config?"
 msgstr "{parámetro de @code{cgit-configuration}} boolean enable-git-config?"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:24472
+#: doc/guix.texi:28165
 msgid "Flag which, when set to @samp{#f}, will allow cgit to use Git config to set any repo specific settings."
 msgstr "Opción que, cuando tiene valor @samp{#f}, permite que cgit use la configuración de Git para fijar el valor de cualquier opción específica del repositorio."
 
 #. type: deftypevr
-#: doc/guix.texi:24477
+#: doc/guix.texi:28170
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} file-object favicon"
 msgstr "{parámetro de @code{cgit-configuration}} file-object favicon"
 
 # FUZZY FUZZY
 #. type: deftypevr
-#: doc/guix.texi:24479
+#: doc/guix.texi:28172
 msgid "URL used as link to a shortcut icon for cgit."
 msgstr "URL usada para icono de los enlaces a cgit."
 
 #. type: deftypevr
-#: doc/guix.texi:24481
+#: doc/guix.texi:28174
 msgid "Defaults to @samp{\"/favicon.ico\"}."
 msgstr "El valor predeterminado es @samp{\"/favicon.ico\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:24484
+#: doc/guix.texi:28177
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string footer"
 msgstr "{parámetro de @code{cgit-configuration}} string footer"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:24488
+#: doc/guix.texi:28181
 msgid "The content of the file specified with this option will be included verbatim at the bottom of all pages (i.e.@: it replaces the standard \"generated by...\"@: message)."
-msgstr "El contenido del fichero especificado con esta opción se incluirá literalmente en la parte inferior de todas las páginas (es decir, sustituye al mensaje estándar \"generated by...\")."
+msgstr "El contenido del archivo especificado con esta opción se incluirá literalmente en la parte inferior de todas las páginas (es decir, sustituye al mensaje estándar \"generated by...\")."
 
 #. type: deftypevr
-#: doc/guix.texi:24493
+#: doc/guix.texi:28186
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string head-include"
 msgstr "{parámetro de @code{cgit-configuration}} string head-include"
 
 #. type: deftypevr
-#: doc/guix.texi:24496
+#: doc/guix.texi:28189
 msgid "The content of the file specified with this option will be included verbatim in the HTML HEAD section on all pages."
-msgstr "El contenido del fichero especificado con esta opción se incluirá literalmente en la sección HEAD de HTML en todas las páginas."
+msgstr "El contenido del archivo especificado con esta opción se incluirá literalmente en la sección HEAD de HTML en todas las páginas."
 
 #. type: deftypevr
-#: doc/guix.texi:24501
+#: doc/guix.texi:28194
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string header"
 msgstr "{parámetro de @code{cgit-configuration}} string header"
 
 #. type: deftypevr
-#: doc/guix.texi:24504
+#: doc/guix.texi:28197
 msgid "The content of the file specified with this option will be included verbatim at the top of all pages."
-msgstr "El contenido del fichero especificado con esta opción se incluirá literalmente en la parte superior de todas las páginas."
+msgstr "El contenido del archivo especificado con esta opción se incluirá literalmente en la parte superior de todas las páginas."
 
 #. type: deftypevr
-#: doc/guix.texi:24509
+#: doc/guix.texi:28202
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} file-object include"
 msgstr "{parámetro de @code{cgit-configuration}} file-object include"
 
 #. type: deftypevr
-#: doc/guix.texi:24512
+#: doc/guix.texi:28205
 msgid "Name of a configfile to include before the rest of the current config- file is parsed."
-msgstr "Nombre de un fichero de configuración que debe incluirse antes de procesar el resto del fichero de configuración actual."
+msgstr "Nombre de un archivo de configuración que debe incluirse antes de procesar el resto del archivo de configuración actual."
 
 #. type: deftypevr
-#: doc/guix.texi:24517
+#: doc/guix.texi:28210
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string index-header"
 msgstr "{parámetro de @code{cgit-configuration}} string index-header"
 
 #. type: deftypevr
-#: doc/guix.texi:24520
+#: doc/guix.texi:28213
 msgid "The content of the file specified with this option will be included verbatim above the repository index."
-msgstr "El contenido del fichero especificado en esta opción se incluirá literalmente sobre el índice de repositorios."
+msgstr "El contenido del archivo especificado en esta opción se incluirá literalmente sobre el índice de repositorios."
 
 #. type: deftypevr
-#: doc/guix.texi:24525
+#: doc/guix.texi:28218
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string index-info"
 msgstr "{parámetro de @code{cgit-configuration}} string index-info"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:24528
+#: doc/guix.texi:28221
 msgid "The content of the file specified with this option will be included verbatim below the heading on the repository index page."
-msgstr "El contenido del fichero especificado con esta opción se incluirá de manera literal bajo la cabecera en la página de índice del repositorio."
+msgstr "El contenido del archivo especificado con esta opción se incluirá de manera literal bajo la cabecera en la página de índice del repositorio."
 
 #. type: deftypevr
-#: doc/guix.texi:24533
+#: doc/guix.texi:28226
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean local-time?"
 msgstr "{parámetro de @code{cgit-configuration}} boolean local-time?"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:24536
+#: doc/guix.texi:28229
 msgid "Flag which, if set to @samp{#t}, makes cgit print commit and tag times in the servers timezone."
 msgstr "Opción que, cuando tiene valor @samp{#t}, hace que cgit imprima las fechas de revisión y etiqueta en la zona horaria del servidor."
 
 #. type: deftypevr
-#: doc/guix.texi:24541
+#: doc/guix.texi:28234
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} file-object logo"
 msgstr "{parámetro de @code{cgit-configuration}} file-object logo"
 
 #. type: deftypevr
-#: doc/guix.texi:24544
+#: doc/guix.texi:28237
 msgid "URL which specifies the source of an image which will be used as a logo on all cgit pages."
 msgstr "URL que especifica la fuente de una imagen usada como logo en todas las páginas de cgit."
 
 #. type: deftypevr
-#: doc/guix.texi:24546
+#: doc/guix.texi:28239
 msgid "Defaults to @samp{\"/share/cgit/cgit.png\"}."
 msgstr "El valor predeterminado es @samp{\"/share/cgit/cgit.png\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:24549
+#: doc/guix.texi:28242
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string logo-link"
 msgstr "{parámetro de @code{cgit-configuration}} string logo-link"
 
 #. type: deftypevr
-#: doc/guix.texi:24551 doc/guix.texi:25008
+#: doc/guix.texi:28244 doc/guix.texi:28701
 msgid "URL loaded when clicking on the cgit logo image."
 msgstr "URL que se carga al pulsar la imagen del logo de cgit."
 
 #. type: deftypevr
-#: doc/guix.texi:24556
+#: doc/guix.texi:28249
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} file-object owner-filter"
 msgstr "{parámetro de @code{cgit-configuration}} file-object owner-filter"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:24559
+#: doc/guix.texi:28252
 msgid "Command which will be invoked to format the Owner column of the main page."
 msgstr "Orden que se ejecuta para dar formato a la columna de propietaria (Owner) de la página principal."
 
 #. type: deftypevr
-#: doc/guix.texi:24564
+#: doc/guix.texi:28257
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer max-atom-items"
 msgstr "{parámetro de @code{cgit-configuration}} integer max-atom-items"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:24566
+#: doc/guix.texi:28259
 msgid "Number of items to display in atom feeds view."
 msgstr "Número de elementos a mostrar en la vista de ``atom feeds''."
 
 #. type: deftypevr
-#: doc/guix.texi:24568 doc/guix.texi:24803 doc/guix.texi:24811
-#: doc/guix.texi:24819
+#: doc/guix.texi:28261 doc/guix.texi:28496 doc/guix.texi:28504
+#: doc/guix.texi:28512
 msgid "Defaults to @samp{10}."
 msgstr "El valor predeterminado es @samp{10}."
 
 #. type: deftypevr
-#: doc/guix.texi:24571
+#: doc/guix.texi:28264
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer max-commit-count"
 msgstr "{parámetro de @code{cgit-configuration}} integer max-commit-count"
 
 #. type: deftypevr
-#: doc/guix.texi:24573
+#: doc/guix.texi:28266
 msgid "Number of entries to list per page in \"log\" view."
 msgstr "Número de entradas a mostrar por página en la vista del registro histórico (\"log\")."
 
 #. type: deftypevr
-#: doc/guix.texi:24575 doc/guix.texi:24590
+#: doc/guix.texi:28268 doc/guix.texi:28283
 msgid "Defaults to @samp{50}."
 msgstr "El valor predeterminado es @samp{50}."
 
 #. type: deftypevr
-#: doc/guix.texi:24578
+#: doc/guix.texi:28271
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer max-message-length"
 msgstr "{parámetro de @code{cgit-configuration}} integer max-message-length"
 
 #. type: deftypevr
-#: doc/guix.texi:24580
+#: doc/guix.texi:28273
 msgid "Number of commit message characters to display in \"log\" view."
 msgstr "Número de caracteres del mensaje de la revisión a mostrar en la vista del registro histórico (\"log\")."
 
 #. type: deftypevr
-#: doc/guix.texi:24582 doc/guix.texi:24598
+#: doc/guix.texi:28275 doc/guix.texi:28291
 msgid "Defaults to @samp{80}."
 msgstr "El valor predeterminado es @samp{80}."
 
 #. type: deftypevr
-#: doc/guix.texi:24585
+#: doc/guix.texi:28278
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer max-repo-count"
 msgstr "{parámetro de @code{cgit-configuration}} integer max-repo-count"
 
 #. type: deftypevr
-#: doc/guix.texi:24588
+#: doc/guix.texi:28281
 msgid "Specifies the number of entries to list per page on the repository index page."
 msgstr "Especifica el número de entradas a mostrar por página en la página de índice de repositorios."
 
 #. type: deftypevr
-#: doc/guix.texi:24593
+#: doc/guix.texi:28286
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer max-repodesc-length"
 msgstr "{parámetro de @code{cgit-configuration}} integer max-repodesc-length"
 
 #. type: deftypevr
-#: doc/guix.texi:24596
+#: doc/guix.texi:28289
 msgid "Specifies the maximum number of repo description characters to display on the repository index page."
 msgstr "Especifica el número máximo de caracteres mostrados en la descripción del repositorio en la página del índice de repositorios."
 
 #. type: deftypevr
-#: doc/guix.texi:24601
+#: doc/guix.texi:28294
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer max-blob-size"
 msgstr "{parámetro de @code{cgit-configuration}} integer max-blob-size"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:24603
+#: doc/guix.texi:28296
 msgid "Specifies the maximum size of a blob to display HTML for in KBytes."
-msgstr "Especifica el tamaño máximo de un fichero (blob) para mostrarlo en HTML en kilobytes."
+msgstr "Especifica el tamaño máximo de un archivo (blob) para mostrarlo en HTML en kilobytes."
 
 #. type: deftypevr
-#: doc/guix.texi:24608
+#: doc/guix.texi:28301
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string max-stats"
 msgstr "{parámetro de @code{cgit-configuration}} string max-stats"
 
 #. type: deftypevr
-#: doc/guix.texi:24611
+#: doc/guix.texi:28304
 msgid "Maximum statistics period.  Valid values are @samp{week},@samp{month}, @samp{quarter} and @samp{year}."
 msgstr "Periodo estadístico máximo. Son valores aceptados @samp{week}, @samp{month}, @samp{quarter} and @samp{year}."
 
 #. type: deftypevr
-#: doc/guix.texi:24616
+#: doc/guix.texi:28309
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} mimetype-alist mimetype"
 msgstr "{parámetro de @code{cgit-configuration}} mimetype-alist mimetype"
 
 #. type: deftypevr
-#: doc/guix.texi:24618
+#: doc/guix.texi:28311
 msgid "Mimetype for the specified filename extension."
-msgstr "Tipo MIME para la extensión de fichero especificada."
+msgstr "Tipo MIME para la extensión de archivo especificada."
 
 #. type: deftypevr
-#: doc/guix.texi:24622
+#: doc/guix.texi:28315
 msgid "Defaults to @samp{((gif \"image/gif\") (html \"text/html\") (jpg \"image/jpeg\") (jpeg \"image/jpeg\") (pdf \"application/pdf\") (png \"image/png\") (svg \"image/svg+xml\"))}."
 msgstr "El valor predeterminado es @samp{((gif \"image/gif\") (html \"text/html\") (jpg \"image/jpeg\") (jpeg \"image/jpeg\") (pdf \"application/pdf\") (png \"image/png\") (svg \"image/svg+xml\"))}."
 
 #. type: deftypevr
-#: doc/guix.texi:24625
+#: doc/guix.texi:28318
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} file-object mimetype-file"
 msgstr "{parámetro de @code{cgit-configuration}} file-object mimetype-file"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:24627
+#: doc/guix.texi:28320
 msgid "Specifies the file to use for automatic mimetype lookup."
-msgstr "Especifica el fichero usado para la búsqueda automática de tipos MIME."
+msgstr "Especifica el archivo usado para la búsqueda automática de tipos MIME."
 
 #. type: deftypevr
-#: doc/guix.texi:24632
+#: doc/guix.texi:28325
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string module-link"
 msgstr "{parámetro de @code{cgit-configuration}} string module-link"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:24635
+#: doc/guix.texi:28328
 msgid "Text which will be used as the formatstring for a hyperlink when a submodule is printed in a directory listing."
 msgstr "Texto que se usará como la cadena de formato para un enlace cuando un submódulo se imprime en el listado del directorio."
 
 #. type: deftypevr
-#: doc/guix.texi:24640
+#: doc/guix.texi:28333
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean nocache?"
 msgstr "{parámetro de @code{cgit-configuration}} boolean nocache?"
 
 #. type: deftypevr
-#: doc/guix.texi:24642
+#: doc/guix.texi:28335
 msgid "If set to the value @samp{#t} caching will be disabled."
 msgstr "Si se proporciona el valor @samp{#t}, se desactiva la caché."
 
 #. type: deftypevr
-#: doc/guix.texi:24647
+#: doc/guix.texi:28340
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean noplainemail?"
 msgstr "{parámetro de @code{cgit-configuration}} boolean noplainemail?"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:24650
+#: doc/guix.texi:28343
 msgid "If set to @samp{#t} showing full author email addresses will be disabled."
 msgstr "Si se proporciona @samp{#t}, se desactiva la impresión de direcciones de correo completas de las autoras."
 
 #. type: deftypevr
-#: doc/guix.texi:24655
+#: doc/guix.texi:28348
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean noheader?"
 msgstr "{parámetro de @code{cgit-configuration}} boolean noheader?"
 
 #. type: deftypevr
-#: doc/guix.texi:24658
+#: doc/guix.texi:28351
 msgid "Flag which, when set to @samp{#t}, will make cgit omit the standard header on all pages."
 msgstr "Opción que, cuando tiene valor @samp{#t}, hace que cgit omita la cabecera estándar en todas las páginas."
 
 #. type: deftypevr
-#: doc/guix.texi:24663
+#: doc/guix.texi:28356
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} project-list project-list"
 msgstr "{parámetro de @code{cgit-configuration}} lista-proyectos project-list"
 
 #. type: deftypevr
-#: doc/guix.texi:24667
+#: doc/guix.texi:28360
 msgid "A list of subdirectories inside of @code{repository-directory}, relative to it, that should loaded as Git repositories.  An empty list means that all subdirectories will be loaded."
 msgstr "Una lista de subdirectorios dentro de @code{repository-directory}, relativa a él, que debe cargarse como repositorios Git. La lista vacía significa que se cargarán todos los subdirectorios."
 
 #. type: deftypevr
-#: doc/guix.texi:24672
+#: doc/guix.texi:28365
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} file-object readme"
 msgstr "{parámetro de @code{cgit-configuration}} file-object readme"
 
 #. type: deftypevr
-#: doc/guix.texi:24674
+#: doc/guix.texi:28367
 msgid "Text which will be used as default value for @code{cgit-repo-readme}."
 msgstr "Texto usado como valor predeterminado para @code{cgit-repo-readme}."
 
 #. type: deftypevr
-#: doc/guix.texi:24679
+#: doc/guix.texi:28372
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean remove-suffix?"
 msgstr "{parámetro de @code{cgit-configuration}} boolean remove-suffix?"
 
 #. type: deftypevr
-#: doc/guix.texi:24683
+#: doc/guix.texi:28376
 msgid "If set to @code{#t} and @code{repository-directory} is enabled, if any repositories are found with a suffix of @code{.git}, this suffix will be removed for the URL and name."
 msgstr "Si se proporciona @code{#t} y @code{repository-directory} está activo, si se encuentra algún repositorio con el sufijo @code{.git}, se elimina dicho sufijo de la URL y del nombre."
 
 #. type: deftypevr
-#: doc/guix.texi:24688
+#: doc/guix.texi:28381
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer renamelimit"
 msgstr "{parámetro de @code{cgit-configuration}} integer renamelimit"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:24690
+#: doc/guix.texi:28383
 msgid "Maximum number of files to consider when detecting renames."
-msgstr "Número máximo de ficheros considerados durante la detección de renombrados."
+msgstr "Número máximo de archivos considerados durante la detección de renombrados."
 
 #. type: deftypevr
-#: doc/guix.texi:24695
+#: doc/guix.texi:28388
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string repository-sort"
 msgstr "{parámetro de @code{cgit-configuration}} string repository-sort"
 
 #. type: deftypevr
-#: doc/guix.texi:24697
+#: doc/guix.texi:28390
 msgid "The way in which repositories in each section are sorted."
 msgstr "La forma de ordenar los repositorios de cada sección."
 
 #. type: deftypevr
-#: doc/guix.texi:24702
+#: doc/guix.texi:28395
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} robots-list robots"
 msgstr "{parámetro de @code{cgit-configuration}} lista-robots robots"
 
 #. type: deftypevr
-#: doc/guix.texi:24704
+#: doc/guix.texi:28397
 msgid "Text used as content for the @code{robots} meta-tag."
 msgstr "Texto usado como contenido de la meta-etiqueta @code{robots}."
 
 #. type: deftypevr
-#: doc/guix.texi:24706
+#: doc/guix.texi:28399
 msgid "Defaults to @samp{(\"noindex\" \"nofollow\")}."
 msgstr "El valor predeterminado es @samp{(\"noindex\" \"nofollow\")}."
 
 #. type: deftypevr
-#: doc/guix.texi:24709
+#: doc/guix.texi:28402
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string root-desc"
 msgstr "{parámetro de @code{cgit-configuration}} string root-desc"
 
 #. type: deftypevr
-#: doc/guix.texi:24711
+#: doc/guix.texi:28404
 msgid "Text printed below the heading on the repository index page."
 msgstr "Texto impreso bajo la cabecera en la página de índice del repositorio."
 
 #. type: deftypevr
-#: doc/guix.texi:24713
+#: doc/guix.texi:28406
 msgid "Defaults to @samp{\"a fast webinterface for the git dscm\"}."
 msgstr "El valor predeterminado es @samp{\"a fast webinterface for the git dscm\"}.<"
 
 #. type: deftypevr
-#: doc/guix.texi:24716
+#: doc/guix.texi:28409
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string root-readme"
 msgstr "{parámetro de @code{cgit-configuration}} string root-readme"
 
 #. type: deftypevr
-#: doc/guix.texi:24719
-msgid "The content of the file specified with this option will be included verbatim below the \"about\" link on the repository index page."
-msgstr "El contenido del fichero especificado con esta opción se incluirá de manera literal tras el enlace \"about\" (acerca de) en la página de índice del repositorio."
+#: doc/guix.texi:28412
+msgid "The content of the file specified with this option will be included verbatim below the ``about'' link on the repository index page."
+msgstr "El contenido del archivo especificado con esta opción se incluirá de manera literal tras el enlace de información del repositorio (``about'') en la página de índice del repositorio."
 
 #. type: deftypevr
-#: doc/guix.texi:24724
+#: doc/guix.texi:28417
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string root-title"
 msgstr "{parámetro de @code{cgit-configuration}} string root-title"
 
 #. type: deftypevr
-#: doc/guix.texi:24726
+#: doc/guix.texi:28419
 msgid "Text printed as heading on the repository index page."
 msgstr "Texto impreso como cabecera en la página de índice del repositorio."
 
 #. type: deftypevr
-#: doc/guix.texi:24731
+#: doc/guix.texi:28424
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean scan-hidden-path"
 msgstr "{parámetro de @code{cgit-configuration}} boolean scan-hidden-path"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:24737
-msgid "If set to @samp{#t} and repository-directory is enabled, repository-directory will recurse into directories whose name starts with a period.  Otherwise, repository-directory will stay away from such directories, considered as \"hidden\".  Note that this does not apply to the \".git\" directory in non-bare repos."
-msgstr "Si se proporciona @samp{#t} y repository-directory está activo, repository-directory recorrerá recursivamente los directorios cuyos nombres comiencen por punto. En otro caso, repository-directory no tendrá en cuenta dichos directorios, considerados ``ocultos''. Tenga en cuenta que esto no incluye al directorio ``.git'' en repositorios con una copia de trabajo."
+#: doc/guix.texi:28430
+msgid "If set to @samp{#t} and repository-directory is enabled, repository-directory will recurse into directories whose name starts with a period.  Otherwise, repository-directory will stay away from such directories, considered as ``hidden''.  Note that this does not apply to the @file{.git} directory in non-bare repos."
+msgstr "Si se proporciona @samp{#t} y repository-directory está activo, repository-directory recorrerá recursivamente los directorios cuyos nombres comiencen por punto. En otro caso, repository-directory no tendrá en cuenta dichos directorios, considerados ocultos (``hidden''). Tenga en cuenta que esto no incluye al directorio @file{.git} en repositorios con una copia de trabajo."
 
 #. type: deftypevr
-#: doc/guix.texi:24742
+#: doc/guix.texi:28435
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} list snapshots"
 msgstr "{parámetro de @code{cgit-configuration}} lista snapshots"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:24745
+#: doc/guix.texi:28438
 msgid "Text which specifies the default set of snapshot formats that cgit generates links for."
 msgstr "Texto que especifica el conjunto predeterminado de formatos de instantánea para los que cgit genera enlaces."
 
 #. type: deftypevr
-#: doc/guix.texi:24750
+#: doc/guix.texi:28443
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} repository-directory repository-directory"
 msgstr "{parámetro de @code{cgit-configuration}} directorio-repositorio repository-directory"
 
 #. type: deftypevr
-#: doc/guix.texi:24753
+#: doc/guix.texi:28446
 msgid "Name of the directory to scan for repositories (represents @code{scan-path})."
 msgstr "Nombre del directorio en el que se buscarán repositorios (representa @code{scan-path})."
 
 #. type: deftypevr
-#: doc/guix.texi:24755
+#: doc/guix.texi:28448
 msgid "Defaults to @samp{\"/srv/git\"}."
 msgstr "El valor predeterminado es @samp{\"/srv/git\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:24758
+#: doc/guix.texi:28451
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string section"
 msgstr "{parámetro de @code{cgit-configuration}} string section"
 
 #. type: deftypevr
-#: doc/guix.texi:24761 doc/guix.texi:25077
+#: doc/guix.texi:28454 doc/guix.texi:28770
 msgid "The name of the current repository section - all repositories defined after this option will inherit the current section name."
 msgstr "Nombre actual de la sección de repositorios - todos los repositorios definidos tras esta opción heredarán el nombre actual de sección."
 
 #. type: deftypevr
-#: doc/guix.texi:24766
+#: doc/guix.texi:28459
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string section-sort"
 msgstr "{parámetro de @code{cgit-configuration}} string section-sort"
 
 #. type: deftypevr
-#: doc/guix.texi:24769
+#: doc/guix.texi:28462
 msgid "Flag which, when set to @samp{1}, will sort the sections on the repository listing by name."
 msgstr "Opción que, cuando tiene valor @samp{1}, ordenará las secciones en el listado de repositorios por nombre."
 
 #. type: deftypevr
-#: doc/guix.texi:24774
+#: doc/guix.texi:28467
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer section-from-path"
 msgstr "{parámetro de @code{cgit-configuration}} integer section-from-path"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:24777
+#: doc/guix.texi:28470
 msgid "A number which, if defined prior to repository-directory, specifies how many path elements from each repo path to use as a default section name."
 msgstr "Número que, si se define antes de repository-directory, especifica cuantos elementos de ruta de cada ruta de repositorio se usarán como nombre de sección predeterminado."
 
 #. type: deftypevr
-#: doc/guix.texi:24782
+#: doc/guix.texi:28475
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean side-by-side-diffs?"
 msgstr "{parámetro de @code{cgit-configuration}} boolean side-by-side-diffs?"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:24785
+#: doc/guix.texi:28478
 msgid "If set to @samp{#t} shows side-by-side diffs instead of unidiffs per default."
 msgstr "Si se proporciona el valor @samp{#t} se muestran las diferencias lado a lado en vez de usar el formato universal de manera predeterminada."
 
 #. type: deftypevr
-#: doc/guix.texi:24790
+#: doc/guix.texi:28483
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} file-object source-filter"
 msgstr "{parámetro de @code{cgit-configuration}} file-object source-filter"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:24793
+#: doc/guix.texi:28486
 msgid "Specifies a command which will be invoked to format plaintext blobs in the tree view."
-msgstr "Especifica la orden que se ejecutará para dar formato a los ficheros (blob) de texto plano en la vista de árbol."
+msgstr "Especifica la orden que se ejecutará para dar formato a los archivos (blob) de texto plano en la vista de árbol."
 
 #. type: deftypevr
-#: doc/guix.texi:24798
+#: doc/guix.texi:28491
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer summary-branches"
 msgstr "{parámetro de @code{cgit-configuration}} integer summary-branches"
 
 #. type: deftypevr
-#: doc/guix.texi:24801
-msgid "Specifies the number of branches to display in the repository \"summary\" view."
-msgstr "Especifica el número de ramas mostradas en la vista resumen (\"summary\") del repositorio."
+#: doc/guix.texi:28494
+msgid "Specifies the number of branches to display in the repository ``summary'' view."
+msgstr "Especifica el número de ramas mostradas en la vista resumen (``summary'') del repositorio."
 
 #. type: deftypevr
-#: doc/guix.texi:24806
+#: doc/guix.texi:28499
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer summary-log"
 msgstr "{parámetro de @code{cgit-configuration}} integer summary-log"
 
 #. type: deftypevr
-#: doc/guix.texi:24809
-msgid "Specifies the number of log entries to display in the repository \"summary\" view."
-msgstr "Especifica el número de entradas del registro mostradas en la vista resumen (\"summary\") del repositorio."
+#: doc/guix.texi:28502
+msgid "Specifies the number of log entries to display in the repository ``summary'' view."
+msgstr "Especifica el número de entradas del registro mostradas en la vista resumen (``summary'') del repositorio."
 
 #. type: deftypevr
-#: doc/guix.texi:24814
+#: doc/guix.texi:28507
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer summary-tags"
 msgstr "{parámetro de @code{cgit-configuration}} integer summary-tags"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:24817
-msgid "Specifies the number of tags to display in the repository \"summary\" view."
-msgstr "Especifica el número que etiquetas que se mostrarán en la vista resumen (\"summary\") del repositorio."
+#: doc/guix.texi:28510
+msgid "Specifies the number of tags to display in the repository ``summary'' view."
+msgstr "Especifica el número que etiquetas que se mostrarán en la vista resumen (``summary'') del repositorio."
 
 #. type: deftypevr
-#: doc/guix.texi:24822
+#: doc/guix.texi:28515
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string strict-export"
 msgstr "{parámetro de @code{cgit-configuration}} string strict-export"
 
 #. type: deftypevr
-#: doc/guix.texi:24825
+#: doc/guix.texi:28518
 msgid "Filename which, if specified, needs to be present within the repository for cgit to allow access to that repository."
-msgstr "Nombre de fichero que, en caso de especificarse, debe estar presente en el repositiorio para que se permita el acceso de cgit a dicho repositorio."
+msgstr "Nombre de archivo que, en caso de especificarse, debe estar presente en el repositiorio para que se permita el acceso de cgit a dicho repositorio."
 
 #. type: deftypevr
-#: doc/guix.texi:24830
+#: doc/guix.texi:28523
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string virtual-root"
 msgstr "{parámetro de @code{cgit-configuration}} string virtual-root"
 
 #. type: deftypevr
-#: doc/guix.texi:24832
+#: doc/guix.texi:28525
 msgid "URL which, if specified, will be used as root for all cgit links."
 msgstr "URL que, en caso de especificarse, se usará como raíz de todos los enlaces de cgit."
 
 #. type: deftypevr
-#: doc/guix.texi:24834
+#: doc/guix.texi:28527
 msgid "Defaults to @samp{\"/\"}."
 msgstr "El valor predeterminado es @samp{\"/\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:24837
+#: doc/guix.texi:28530
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} repository-cgit-configuration-list repositories"
 msgstr "{parámetro de @code{cgit-configuration}} lista-repository-cgit-configuration repositories"
 
 #. type: deftypevr
-#: doc/guix.texi:24839
+#: doc/guix.texi:28532
 msgid "A list of @dfn{cgit-repo} records to use with config."
 msgstr "Lista de registros @dfn{cgit-repo} usados con la configuración."
 
 #. type: deftypevr
-#: doc/guix.texi:24843
+#: doc/guix.texi:28536
 msgid "Available @code{repository-cgit-configuration} fields are:"
 msgstr "Los campos disponibles de @code{repository-cgit-configuration} son:"
 
 #. type: deftypevr
-#: doc/guix.texi:24844
+#: doc/guix.texi:28537
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-list snapshots"
 msgstr "{parámetro de @code{repository-cgit-configuration}} repo-list snapshots"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:24847
+#: doc/guix.texi:28540
 msgid "A mask of snapshot formats for this repo that cgit generates links for, restricted by the global @code{snapshots} setting."
 msgstr "Una máscara de los formatos de instantánea para este repositorio para los que cgit genera enlaces, restringida por la opción de configuración global @code{snapshots}."
 
 #. type: deftypevr
-#: doc/guix.texi:24852
+#: doc/guix.texi:28545
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-file-object source-filter"
 msgstr "{parámetro de @code{repository-cgit-configuration}} repo-file-object source-filter"
 
 #. type: deftypevr
-#: doc/guix.texi:24854
+#: doc/guix.texi:28547
 msgid "Override the default @code{source-filter}."
 msgstr "Sustituye al valor predeterminado de @code{source-filter}."
 
 #. type: deftypevr
-#: doc/guix.texi:24859
+#: doc/guix.texi:28552
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-string url"
 msgstr "{parámetro de @code{repository-cgit-configuration}} repo-string url"
 
 #. type: deftypevr
-#: doc/guix.texi:24861
+#: doc/guix.texi:28554
 msgid "The relative URL used to access the repository."
 msgstr "La URL relativa usada para el acceso al repositorio."
 
 #. type: deftypevr
-#: doc/guix.texi:24866
+#: doc/guix.texi:28559
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-file-object about-filter"
 msgstr "{parámetro de @code{repository-cgit-configuration}} repo-file-object about-filter"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:24868
+#: doc/guix.texi:28561
 msgid "Override the default @code{about-filter}."
 msgstr "Sustituye al valor predeterminado de @code{about-filter}."
 
 #. type: deftypevr
-#: doc/guix.texi:24873
+#: doc/guix.texi:28566
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-string branch-sort"
 msgstr "{parámetro de @code{repository-cgit-configuration}} repo-string branch-sort"
 
 #. type: deftypevr
-#: doc/guix.texi:24876
+#: doc/guix.texi:28569
 msgid "Flag which, when set to @samp{age}, enables date ordering in the branch ref list, and when set to @samp{name} enables ordering by branch name."
 msgstr "Cuando se proporciona el valor @samp{age}, activa la ordenación por fecha en la lista de referencias de ramas, y cuando se proporciona @samp{name} se activa la ordenación por nombre de rama."
 
 #. type: deftypevr
-#: doc/guix.texi:24881
+#: doc/guix.texi:28574
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-list clone-url"
 msgstr "{parámetro de @code{repository-cgit-configuration}} repo-list clone-url"
 
 #. type: deftypevr
-#: doc/guix.texi:24883
+#: doc/guix.texi:28576
 msgid "A list of URLs which can be used to clone repo."
 msgstr "Una lista de URL que se pueden usar para clonar el repositorio."
 
 #. type: deftypevr
-#: doc/guix.texi:24888
+#: doc/guix.texi:28581
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-file-object commit-filter"
 msgstr "{parámetro de @code{repository-cgit-configuration}} repo-file-object commit-filter"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:24890
+#: doc/guix.texi:28583
 msgid "Override the default @code{commit-filter}."
 msgstr "Sustituye al valor predeterminado de @code{commit-filter}."
 
 #. type: deftypevr
-#: doc/guix.texi:24895
+#: doc/guix.texi:28588
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-string commit-sort"
 msgstr "{parámetro de @code{repository-cgit-configuration}} repo-string commit-sort"
 
 #. type: deftypevr
-#: doc/guix.texi:24904
+#: doc/guix.texi:28597
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-string defbranch"
 msgstr "{parámetro de @code{repository-cgit-configuration}} repo-string defbranch"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:24909
-msgid "The name of the default branch for this repository.  If no such branch exists in the repository, the first branch name (when sorted) is used as default instead.  By default branch pointed to by HEAD, or \"master\" if there is no suitable HEAD."
-msgstr "Nombre de la rama predeterminada de este repositorio. Si no existe dicha rama en el repositorio, se usará como predeterminado el primer nombre de rama encontrado (tras su ordenación). De manera predeterminada, la rama a la que apunta HEAD, o \"master\" si no existe un valor adecuado para HEAD."
+#: doc/guix.texi:28602
+msgid "The name of the default branch for this repository.  If no such branch exists in the repository, the first branch name (when sorted) is used as default instead.  By default branch pointed to by HEAD, or ``master'' if there is no suitable HEAD."
+msgstr "Nombre de la rama predeterminada de este repositorio. Si no existe dicha rama en el repositorio, se usará como predeterminado el primer nombre de rama encontrado (tras su ordenación). De manera predeterminada, la rama a la que apunta HEAD, o ``master'' si no existe un valor adecuado para HEAD."
 
 #. type: deftypevr
-#: doc/guix.texi:24914
+#: doc/guix.texi:28607
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-string desc"
 msgstr "{parámetro de @code{repository-cgit-configuration}} repo-string desc"
 
 #. type: deftypevr
-#: doc/guix.texi:24916
+#: doc/guix.texi:28609
 msgid "The value to show as repository description."
 msgstr "El valor a mostrar como descripción del repositorio."
 
 #. type: deftypevr
-#: doc/guix.texi:24921
+#: doc/guix.texi:28614
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-string homepage"
 msgstr "{parámetro de @code{repository-cgit-configuration}} repo-string homepage"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:24923
+#: doc/guix.texi:28616
 msgid "The value to show as repository homepage."
 msgstr "El valor a mostrar como página web principal del repositorio."
 
 #. type: deftypevr
-#: doc/guix.texi:24928
+#: doc/guix.texi:28621
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-file-object email-filter"
 msgstr "{parámetro de @code{repository-cgit-configuration}} repo-file-object email-filter"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:24930
+#: doc/guix.texi:28623
 msgid "Override the default @code{email-filter}."
 msgstr "Sustituye al valor predeterminado de @code{email-filter}."
 
 #. type: deftypevr
-#: doc/guix.texi:24935
+#: doc/guix.texi:28628
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} maybe-repo-boolean enable-commit-graph?"
 msgstr "{parámetro de @code{repository-cgit-configuration}} maybe-repo-boolean enable-commit-graph?"
 
 #. type: deftypevr
-#: doc/guix.texi:24938
+#: doc/guix.texi:28631
 msgid "A flag which can be used to disable the global setting @code{enable-commit-graph?}."
 msgstr "Esta opción se puede usar para forzar el valor de la opción de configuración global @code{enable-commit-graph?}."
 
 #. type: deftypevr
-#: doc/guix.texi:24943
+#: doc/guix.texi:28636
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} maybe-repo-boolean enable-log-filecount?"
 msgstr "{parámetro de @code{repository-cgit-configuration}} maybe-repo-boolean enable-log-filecount?"
 
 #. type: deftypevr
-#: doc/guix.texi:24946
+#: doc/guix.texi:28639
 msgid "A flag which can be used to disable the global setting @code{enable-log-filecount?}."
 msgstr "Esta opción se puede usar para forzar el valor de la opción de configuración global @code{enable-log-filecount?}."
 
 #. type: deftypevr
-#: doc/guix.texi:24951
+#: doc/guix.texi:28644
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} maybe-repo-boolean enable-log-linecount?"
 msgstr "{parámetro de @code{repository-cgit-configuration}} maybe-repo-boolean enable-log-linecount?"
 
 #. type: deftypevr
-#: doc/guix.texi:24954
+#: doc/guix.texi:28647
 msgid "A flag which can be used to disable the global setting @code{enable-log-linecount?}."
 msgstr "Esta opción se puede usar para forzar el valor de la opción de configuración global @code{enable-log-linecount?}."
 
 #. type: deftypevr
-#: doc/guix.texi:24959
+#: doc/guix.texi:28652
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} maybe-repo-boolean enable-remote-branches?"
 msgstr "{parámetro de @code{repository-cgit-configuration}} maybe-repo-boolean enable-remote-branches?"
 
 #. type: deftypevr
-#: doc/guix.texi:24967
+#: doc/guix.texi:28660
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} maybe-repo-boolean enable-subject-links?"
 msgstr "{parámetro de @code{repository-cgit-configuration}} maybe-repo-boolean enable-subject-links?"
 
 #. type: deftypevr
-#: doc/guix.texi:24970
+#: doc/guix.texi:28663
 msgid "A flag which can be used to override the global setting @code{enable-subject-links?}."
 msgstr "Esta opción se puede usar para forzar el valor de la opción de configuración global @code{enable-subject-links?}."
 
 #. type: deftypevr
-#: doc/guix.texi:24975
+#: doc/guix.texi:28668
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} maybe-repo-boolean enable-html-serving?"
 msgstr "{parámetro de @code{repository-cgit-configuration}} maybe-repo-boolean enable-html-serving?"
 
 #. type: deftypevr
-#: doc/guix.texi:24978
+#: doc/guix.texi:28671
 msgid "A flag which can be used to override the global setting @code{enable-html-serving?}."
 msgstr "Esta opción se puede usar para forzar el valor de la opción de configuración global @code{enable-html-serving?}."
 
 #. type: deftypevr
-#: doc/guix.texi:24983
+#: doc/guix.texi:28676
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-boolean hide?"
 msgstr "{parámetro de @code{repository-cgit-configuration}} repo-boolean hide?"
 
 #. type: deftypevr
-#: doc/guix.texi:24986
+#: doc/guix.texi:28679
 msgid "Flag which, when set to @code{#t}, hides the repository from the repository index."
 msgstr "Opción que, cuando tiene valor @samp{#t}, oculta el repositorio en el índice."
 
 #. type: deftypevr
-#: doc/guix.texi:24991
+#: doc/guix.texi:28684
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-boolean ignore?"
 msgstr "{parámetro de @code{repository-cgit-configuration}} repo-boolean ignore?"
 
 #. type: deftypevr
-#: doc/guix.texi:24993
+#: doc/guix.texi:28686
 msgid "Flag which, when set to @samp{#t}, ignores the repository."
 msgstr "Opción que, cuando tiene valor @samp{#t}, ignora el repositorio."
 
 #. type: deftypevr
-#: doc/guix.texi:24998
+#: doc/guix.texi:28691
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-file-object logo"
 msgstr "{parámetro de @code{repository-cgit-configuration}} repo-file-object logo"
 
 #. type: deftypevr
-#: doc/guix.texi:25001
+#: doc/guix.texi:28694
 msgid "URL which specifies the source of an image which will be used as a logo on this repo’s pages."
 msgstr "URL que especifica la fuente de una imagen que se usará como logo en las páginas de este repositorio."
 
 #. type: deftypevr
-#: doc/guix.texi:25006
+#: doc/guix.texi:28699
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-string logo-link"
 msgstr "{parámetro de @code{repository-cgit-configuration}} repo-string logo-link"
 
 #. type: deftypevr
-#: doc/guix.texi:25013
+#: doc/guix.texi:28706
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-file-object owner-filter"
 msgstr "{parámetro de @code{repository-cgit-configuration}} repo-file-object owner-filter"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:25015
+#: doc/guix.texi:28708
 msgid "Override the default @code{owner-filter}."
 msgstr "Sustituye al valor predeterminado de @code{owner-filter}."
 
 #. type: deftypevr
-#: doc/guix.texi:25020
+#: doc/guix.texi:28713
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-string module-link"
 msgstr "{parámetro de @code{repository-cgit-configuration}} repo-string module-link"
 
 #. type: deftypevr
-#: doc/guix.texi:25024
+#: doc/guix.texi:28717
 msgid "Text which will be used as the formatstring for a hyperlink when a submodule is printed in a directory listing.  The arguments for the formatstring are the path and SHA1 of the submodule commit."
 msgstr "Texto que se usará como la cadena de formato de un enlace cuando un submódulo se imprima en el listado de un directorio. Los parámetros para la cadena de formato son la ruta y el SHA1 de la revisión del submódulo."
 
 #. type: deftypevr
-#: doc/guix.texi:25029
+#: doc/guix.texi:28722
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} module-link-path module-link-path"
 msgstr "{parámetro de @code{repository-cgit-configuration}} ruta-enlace-módulo module-link"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:25033
+#: doc/guix.texi:28726
 msgid "Text which will be used as the formatstring for a hyperlink when a submodule with the specified subdirectory path is printed in a directory listing."
 msgstr "Texto que se usará como la cadena de formato de un enlace cuando un submódulo con la ruta de subdirectorio especificada se imprima en el listado de un directorio."
 
 #. type: deftypevr
-#: doc/guix.texi:25038
+#: doc/guix.texi:28731
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-string max-stats"
 msgstr "{parámetro de @code{repository-cgit-configuration}} repo-string max-stats"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:25040
+#: doc/guix.texi:28733
 msgid "Override the default maximum statistics period."
 msgstr "Sustituye al máximo periodo estadístico predeterminado."
 
 #. type: deftypevr
-#: doc/guix.texi:25045
+#: doc/guix.texi:28738
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-string name"
 msgstr "{parámetro de @code{repository-cgit-configuration}} repo-string name"
 
 #. type: deftypevr
-#: doc/guix.texi:25047
+#: doc/guix.texi:28740
 msgid "The value to show as repository name."
 msgstr "El valor a mostrar como nombre del repositorio."
 
 #. type: deftypevr
-#: doc/guix.texi:25052
+#: doc/guix.texi:28745
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-string owner"
 msgstr "{parámetro de @code{repository-cgit-configuration}} repo-string owner"
 
 #. type: deftypevr
-#: doc/guix.texi:25054
+#: doc/guix.texi:28747
 msgid "A value used to identify the owner of the repository."
 msgstr "Un valor usado para identificar a la propietaria del repositorio."
 
 #. type: deftypevr
-#: doc/guix.texi:25059
+#: doc/guix.texi:28752
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-string path"
 msgstr "{parámetro de @code{repository-cgit-configuration}} repo-string path"
 
 #. type: deftypevr
-#: doc/guix.texi:25061
+#: doc/guix.texi:28754
 msgid "An absolute path to the repository directory."
 msgstr "La ruta absoluta al directorio del repositorio."
 
 #. type: deftypevr
-#: doc/guix.texi:25066
+#: doc/guix.texi:28759
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-string readme"
 msgstr "{parámetro de @code{repository-cgit-configuration}} repo-string readme"
 
 # FUZZY
 #. type: deftypevr
-#: doc/guix.texi:25069
-msgid "A path (relative to repo) which specifies a file to include verbatim as the \"About\" page for this repo."
-msgstr "Una ruta (relativa al repositorio) que especifica un fichero que será incluido literalmente como página \"About\" de este repositorio."
+#: doc/guix.texi:28762
+msgid "A path (relative to repo) which specifies a file to include verbatim as the ``About'' page for this repo."
+msgstr "Una ruta (relativa al repositorio) que especifica un archivo que será incluido literalmente como página de información (``About'') de este repositorio."
 
 #. type: deftypevr
-#: doc/guix.texi:25074
+#: doc/guix.texi:28767
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-string section"
 msgstr "{parámetro de @code{repository-cgit-configuration}} repo-string section"
 
 #. type: deftypevr
-#: doc/guix.texi:25082
+#: doc/guix.texi:28775
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-list extra-options"
 msgstr "{parámetro de @code{repository-cgit-configuration}} repo-list extra-options"
 
 #. type: deftypevr
-#: doc/guix.texi:25084 doc/guix.texi:25093
+#: doc/guix.texi:28777 doc/guix.texi:28786
 msgid "Extra options will be appended to cgitrc file."
-msgstr "Opciones adicionales a agregar al final del fichero cgitrc."
+msgstr "Opciones adicionales a agregar al final del archivo cgitrc."
 
 #. type: deftypevr
-#: doc/guix.texi:25091
+#: doc/guix.texi:28784
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} list extra-options"
 msgstr "{parámetro de @code{cgit-configuration}} lista extra-options"
 
 #. type: Plain text
-#: doc/guix.texi:25105
+#: doc/guix.texi:28798
 msgid "However, it could be that you just want to get a @code{cgitrc} up and running.  In that case, you can pass an @code{opaque-cgit-configuration} as a record to @code{cgit-service-type}.  As its name indicates, an opaque configuration does not have easy reflective capabilities."
-msgstr "No obstante, puede ser que únicamente desee usar un fichero @code{cgitrc} existente. En ese caso, puede proporcionar @code{opaque-cgit-configuration} como un registro a @code{cgit-service-type}. Como su nombre en inglés indica, una configuración opaca no tiene gran capacidad reflexiva."
+msgstr "No obstante, puede ser que únicamente desee usar un archivo @code{cgitrc} existente. En ese caso, puede proporcionar @code{opaque-cgit-configuration} como un registro a @code{cgit-service-type}. Como su nombre en inglés indica, una configuración opaca no tiene gran capacidad reflexiva."
 
 #. type: Plain text
-#: doc/guix.texi:25107
+#: doc/guix.texi:28800
 msgid "Available @code{opaque-cgit-configuration} fields are:"
 msgstr "Los campos disponibles de @code{opaque-cgit-configuration} son:"
 
 #. type: deftypevr
-#: doc/guix.texi:25108
+#: doc/guix.texi:28801
 #, no-wrap
 msgid "{@code{opaque-cgit-configuration} parameter} package cgit"
 msgstr "{parámetro de @code{opaque-cgit-configuration}} package cgit"
 
 #. type: deftypevr
-#: doc/guix.texi:25110
+#: doc/guix.texi:28803
 msgid "The cgit package."
 msgstr "El paquete cgit."
 
 #. type: deftypevr
-#: doc/guix.texi:25112
+#: doc/guix.texi:28805
 #, no-wrap
 msgid "{@code{opaque-cgit-configuration} parameter} string string"
 msgstr "{parámetro de @code{opaque-cgit-configuration}} string string"
 
 #. type: deftypevr
-#: doc/guix.texi:25114
+#: doc/guix.texi:28807
 msgid "The contents of the @code{cgitrc}, as a string."
 msgstr "El contenido de @code{cgitrc}, como una cadena."
 
 #. type: Plain text
-#: doc/guix.texi:25118
+#: doc/guix.texi:28811
 msgid "For example, if your @code{cgitrc} is just the empty string, you could instantiate a cgit service like this:"
 msgstr "Por ejemplo, si su @code{cgitrc} es simplemente la cadena vacía, puede instanciar un servicio cgit de esta manera:"
 
 #. type: lisp
-#: doc/guix.texi:25123
+#: doc/guix.texi:28816
 #, no-wrap
 msgid ""
 "(service cgit-service-type\n"
@@ -48306,40 +54962,40 @@ msgstr ""
 "          (cgitrc \"\")))\n"
 
 #. type: subsubheading
-#: doc/guix.texi:25125
+#: doc/guix.texi:28818
 #, no-wrap
 msgid "Gitolite Service"
 msgstr "Servicio Gitolite"
 
 #. type: cindex
-#: doc/guix.texi:25127
+#: doc/guix.texi:28820
 #, no-wrap
 msgid "Gitolite service"
 msgstr "servicio Gitolite"
 
 #. type: cindex
-#: doc/guix.texi:25128
+#: doc/guix.texi:28821
 #, no-wrap
 msgid "Git, hosting"
 msgstr "Git, alojamiento"
 
 #. type: Plain text
-#: doc/guix.texi:25131
+#: doc/guix.texi:28824
 msgid "@uref{https://gitolite.com/gitolite/, Gitolite} is a tool for hosting Git repositories on a central server."
 msgstr "@uref{https://gitolite.com/gitolite/, Gitolite} es una herramienta para el almacenamiento de repositorios Git en un servidor central."
 
 #. type: Plain text
-#: doc/guix.texi:25134
+#: doc/guix.texi:28827
 msgid "Gitolite can handle multiple repositories and users, and supports flexible configuration of the permissions for the users on the repositories."
 msgstr "Gitolite puede manejar múltiples repositorios y usuarias, y permite una configuración flexible de los permisos de las usuarias sobre los repositorios."
 
 #. type: Plain text
-#: doc/guix.texi:25137
+#: doc/guix.texi:28830
 msgid "The following example will configure Gitolite using the default @code{git} user, and the provided SSH public key."
 msgstr "El siguiente ejemplo configuraría Gitolite con la usuaria predeterminada @code{git} y la clave pública SSH proporcionada."
 
 #. type: lisp
-#: doc/guix.texi:25144
+#: doc/guix.texi:28837
 #, no-wrap
 msgid ""
 "(service gitolite-service-type\n"
@@ -48355,296 +55011,296 @@ msgstr ""
 "                           \"ssh-rsa AAAA... guix@@example.com\"))))\n"
 
 #. type: Plain text
-#: doc/guix.texi:25149
+#: doc/guix.texi:28842
 msgid "Gitolite is configured through a special admin repository which you can clone, for example, if you setup Gitolite on @code{example.com}, you would run the following command to clone the admin repository."
 msgstr "Gitolite se configura a través de un repositorio de administración especial que puede clonar, por ejemplo, si configuró Gitolite en @code{example.org}, ejecutaría la siguiente orden para clonar el repositorio de administración."
 
 #. type: example
-#: doc/guix.texi:25152
+#: doc/guix.texi:28845
 #, no-wrap
 msgid "git clone git@@example.com:gitolite-admin\n"
 msgstr "git clone git@@example.com:gitolite-admin\n"
 
 # FUZZY
 #. type: Plain text
-#: doc/guix.texi:25158
+#: doc/guix.texi:28851
 msgid "When the Gitolite service is activated, the provided @code{admin-pubkey} will be inserted in to the @file{keydir} directory in the gitolite-admin repository.  If this results in a change in the repository, it will be committed using the message ``gitolite setup by GNU Guix''."
 msgstr "Cuando se activa el servicio Gitolite, la clave @code{admin-pubkey} proporcionada se insertará en el directorio @file{keydir} en el repositorio gitolite-admin. Si esto resultase en un cambio en el repositorio, la revisión se almacenaría con el mensaje ``gitolite setup by GNU Guix''."
 
 #. type: deftp
-#: doc/guix.texi:25159
+#: doc/guix.texi:28852
 #, no-wrap
 msgid "{Data Type} gitolite-configuration"
 msgstr "{Tipo de datos} gitolite-configuration"
 
 #. type: deftp
-#: doc/guix.texi:25161
+#: doc/guix.texi:28854
 msgid "Data type representing the configuration for @code{gitolite-service-type}."
 msgstr "Tipo de datos que representa la configuración de @code{gitolite-service-type}."
 
 #. type: item
-#: doc/guix.texi:25163
+#: doc/guix.texi:28856
 #, no-wrap
 msgid "@code{package} (default: @var{gitolite})"
 msgstr "@code{package} (predeterminado: @var{gitolite})"
 
 #. type: table
-#: doc/guix.texi:25165
+#: doc/guix.texi:28858
 msgid "Gitolite package to use."
 msgstr "Paquete Gitolite usado."
 
 #. type: item
-#: doc/guix.texi:25166
+#: doc/guix.texi:28859
 #, no-wrap
 msgid "@code{user} (default: @var{git})"
 msgstr "@code{user} (predeterminada: @var{git})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:25169
+#: doc/guix.texi:28862
 msgid "User to use for Gitolite.  This will be user that you use when accessing Gitolite over SSH."
 msgstr "Usuaria usada por Gitolite. Esta será la usuaria a la que se conectará cuando acceda a Gitolite a través de SSH."
 
 #. type: item
-#: doc/guix.texi:25170
+#: doc/guix.texi:28863
 #, no-wrap
 msgid "@code{group} (default: @var{git})"
 msgstr "@code{group} (predeterminado: @var{git})"
 
 #. type: table
-#: doc/guix.texi:25172
+#: doc/guix.texi:28865
 msgid "Group to use for Gitolite."
 msgstr "Grupo usado por Gitolite."
 
 #. type: item
-#: doc/guix.texi:25173
+#: doc/guix.texi:28866
 #, no-wrap
 msgid "@code{home-directory} (default: @var{\"/var/lib/gitolite\"})"
 msgstr "@code{home-directory} (predeterminado: @var{\"/var/lib/gitolite\"})"
 
 #. type: table
-#: doc/guix.texi:25175
+#: doc/guix.texi:28868
 msgid "Directory in which to store the Gitolite configuration and repositories."
 msgstr "Directorio en el que se almacenará la configuración y repositorios de Gitolite."
 
 #. type: item
-#: doc/guix.texi:25176
+#: doc/guix.texi:28869
 #, no-wrap
 msgid "@code{rc-file} (default: @var{(gitolite-rc-file)})"
 msgstr "@code{rc-file} (predeterminado: @var{(gitolite-rc-file)})"
 
 #. type: table
-#: doc/guix.texi:25179
+#: doc/guix.texi:28872
 msgid "A ``file-like'' object (@pxref{G-Expressions, file-like objects}), representing the configuration for Gitolite."
-msgstr "Un objeto ``tipo-fichero'' (@pxref{G-Expressions, objetos ``tipo-fichero''}), que representa la configuración de Gitolite."
+msgstr "Un objeto ``tipo-archivo'' (@pxref{G-Expressions, objetos ``tipo-archivo''}), que representa la configuración de Gitolite."
 
 #. type: item
-#: doc/guix.texi:25180
+#: doc/guix.texi:28873
 #, no-wrap
 msgid "@code{admin-pubkey} (default: @var{#f})"
 msgstr "@code{admin-pubkey} (predeterminada: @var{#f})"
 
 #. type: table
-#: doc/guix.texi:25184
+#: doc/guix.texi:28877
 msgid "A ``file-like'' object (@pxref{G-Expressions, file-like objects}) used to setup Gitolite.  This will be inserted in to the @file{keydir} directory within the gitolite-admin repository."
-msgstr "Un objeto ``tipo-fichero'' (@pxref{G-Expressions, objetos ``tipo-fichero''}) usado para la configuración de Gitolite. Se insertará en el directorio @file{keydir} dentro del repositorio gitolite-admin."
+msgstr "Un objeto ``tipo-archivo'' (@pxref{G-Expressions, objetos ``tipo-archivo''}) usado para la configuración de Gitolite. Se insertará en el directorio @file{keydir} dentro del repositorio gitolite-admin."
 
 #. type: table
-#: doc/guix.texi:25186
+#: doc/guix.texi:28879
 msgid "To specify the SSH key as a string, use the @code{plain-file} function."
 msgstr "Para especificar la clave SSH como una cadena, use la función @code{plain-file}."
 
 #. type: lisp
-#: doc/guix.texi:25189
+#: doc/guix.texi:28882
 #, no-wrap
 msgid "(plain-file \"yourname.pub\" \"ssh-rsa AAAA... guix@@example.com\")\n"
 msgstr "(plain-file \"sunombre.pub\" \"ssh-rsa AAAA... guix@@example.com\")\n"
 
 #. type: deftp
-#: doc/guix.texi:25194
+#: doc/guix.texi:28887
 #, no-wrap
 msgid "{Data Type} gitolite-rc-file"
 msgstr "{Tipo de datos} gitolite-rc-file"
 
 #. type: deftp
-#: doc/guix.texi:25196
+#: doc/guix.texi:28889
 msgid "Data type representing the Gitolite RC file."
-msgstr "Tipo de datos que representa el fichero RC de Gitolite."
+msgstr "Tipo de datos que representa el archivo RC de Gitolite."
 
 #. type: item
-#: doc/guix.texi:25198
+#: doc/guix.texi:28891
 #, no-wrap
 msgid "@code{umask} (default: @code{#o0077})"
 msgstr "@code{umask} (predeterminada: @code{#o0077})"
 
 #. type: table
-#: doc/guix.texi:25201
+#: doc/guix.texi:28894
 msgid "This controls the permissions Gitolite sets on the repositories and their contents."
 msgstr "Controla los permisos que Gitolite establece en los repositorios y sus contenidos."
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:25205
+#: doc/guix.texi:28898
 msgid "A value like @code{#o0027} will give read access to the group used by Gitolite (by default: @code{git}). This is necessary when using Gitolite with software like cgit or gitweb."
 msgstr "Un valor como @code{#o0027} proporcionará acceso de lectura al grupo usado por Gitolite (predeterminado: @code{git}). Es necesario cuando se usa Gitolite con software como cgit o gitweb."
 
 #. type: item
-#: doc/guix.texi:25206
+#: doc/guix.texi:28899
 #, no-wrap
 msgid "@code{git-config-keys} (default: @code{\"\"})"
 msgstr "@code{git-config-keys} (predeterminadas: @code{\"\"})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:25209
-msgid "Gitolite allows you to set git config values using the \"config\" keyword. This setting allows control over the config keys to accept."
-msgstr "Gitolite le permite establecer valores de git config mediante el uso de la palabra clave \"config\". Esta configuración le permite controlar las claves de configuración aceptadas."
+#: doc/guix.texi:28902
+msgid "Gitolite allows you to set git config values using the @samp{config} keyword. This setting allows control over the config keys to accept."
+msgstr "Gitolite le permite establecer valores de git config mediante el uso de la palabra clave @samp{config}. Esta configuración le permite controlar las claves de configuración aceptadas."
 
 #. type: item
-#: doc/guix.texi:25210
+#: doc/guix.texi:28903
 #, no-wrap
 msgid "@code{roles} (default: @code{'((\"READERS\" . 1) (\"WRITERS\" . ))})"
 msgstr "@code{roles} (predeterminados: @code{'((\"READERS\" . 1) (\"WRITERS\" . ))})"
 
 #. type: table
-#: doc/guix.texi:25212
+#: doc/guix.texi:28905
 msgid "Set the role names allowed to be used by users running the perms command."
 msgstr "Establece los nombres de rol que se permite usar a las usuarias que ejecuten la orden perms."
 
 #. type: item
-#: doc/guix.texi:25213
+#: doc/guix.texi:28906
 #, no-wrap
 msgid "@code{enable} (default: @code{'(\"help\" \"desc\" \"info\" \"perms\" \"writable\" \"ssh-authkeys\" \"git-config\" \"daemon\" \"gitweb\")})"
 msgstr "@code{enable} (predeterminados: @code{'(\"help\" \"desc\" \"info\" \"perms\" \"writable\" \"ssh-authkeys\" \"git-config\" \"daemon\" \"gitweb\")})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:25215
+#: doc/guix.texi:28908
 msgid "This setting controls the commands and features to enable within Gitolite."
 msgstr "Esta configuración controla las órdenes y características activadas dentro de Gitolite."
 
 #. type: subsubheading
-#: doc/guix.texi:25223
+#: doc/guix.texi:28916
 #, no-wrap
 msgid "The Battle for Wesnoth Service"
 msgstr "El servicio de La batalla por Wesnoth"
 
 #. type: cindex
-#: doc/guix.texi:25224
+#: doc/guix.texi:28917
 #, no-wrap
 msgid "wesnothd"
 msgstr "wesnothd"
 
 #. type: Plain text
-#: doc/guix.texi:25228
+#: doc/guix.texi:28921
 msgid "@uref{https://wesnoth.org, The Battle for Wesnoth} is a fantasy, turn based tactical strategy game, with several single player campaigns, and multiplayer games (both networked and local)."
 msgstr "@uref{https://wesnoth.org, La batalla por Wesnoth} es un juego de estrategia táctica, de fantasía y basado en turnos, con varias campañas de una jugadora, y partidas para múltiples jugadoras (tanto en red como localmente)."
 
 #. type: defvar
-#: doc/guix.texi:25229
+#: doc/guix.texi:28922
 #, no-wrap
 msgid "{Scheme Variable} wesnothd-service-type"
 msgstr "{Variable Scheme} wesnothd-service-type"
 
 #. type: defvar
-#: doc/guix.texi:25233
+#: doc/guix.texi:28926
 msgid "Service type for the wesnothd service.  Its value must be a @code{wesnothd-configuration} object.  To run wesnothd in the default configuration, instantiate it as:"
 msgstr "Tipo de servicio para el servicio wesnothd. Su valor debe ser un objeto @code{wesnothd-configuration}.  Puede instanciarlo de esta manera para ejecutar wesnothd con la configuración predeterminada:"
 
 #. type: lisp
-#: doc/guix.texi:25236
+#: doc/guix.texi:28929
 #, no-wrap
 msgid "(service wesnothd-service-type)\n"
 msgstr "(service wesnothd-service-type)\n"
 
 #. type: deftp
-#: doc/guix.texi:25239
+#: doc/guix.texi:28932
 #, no-wrap
 msgid "{Data Type} wesnothd-configuration"
 msgstr "{Tipo de datos} wesnothd-configuration"
 
 #. type: deftp
-#: doc/guix.texi:25241
+#: doc/guix.texi:28934
 msgid "Data type representing the configuration of @command{wesnothd}."
 msgstr "Tipo de datos que representa la configuración de @command{wesnothd}."
 
 #. type: item
-#: doc/guix.texi:25243
+#: doc/guix.texi:28936
 #, no-wrap
 msgid "@code{package} (default: @code{wesnoth-server})"
 msgstr "@code{package} (predeterminado: @code{wesnoth-server})"
 
 #. type: table
-#: doc/guix.texi:25245
+#: doc/guix.texi:28938
 msgid "The wesnoth server package to use."
 msgstr "El paquete del servidor wesnoth usado."
 
 #. type: item
-#: doc/guix.texi:25246
+#: doc/guix.texi:28939
 #, no-wrap
 msgid "@code{port} (default: @code{15000})"
 msgstr "@code{port} (predeterminado: @code{15000})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:25248
+#: doc/guix.texi:28941
 msgid "The port to bind the server to."
 msgstr "Número de puerto usado por el servidor."
 
 #. type: cindex
-#: doc/guix.texi:25254
+#: doc/guix.texi:28947
 #, no-wrap
 msgid "pam-mount"
 msgstr "pam-mount"
 
 # FUZZY
 #. type: Plain text
-#: doc/guix.texi:25259
+#: doc/guix.texi:28952
 msgid "The @code{(gnu services pam-mount)} module provides a service allowing users to mount volumes when they log in.  It should be able to mount any volume format supported by the system."
 msgstr "El módulo @code{(gnu services pam-mount)} proporciona un servicio que permite a las usuarias montar volúmenes cuando ingresen al sistema. Debe ser capaz de montar cualquier formato de volumen que el sistema permita."
 
 #. type: defvar
-#: doc/guix.texi:25260
+#: doc/guix.texi:28953
 #, no-wrap
 msgid "{Scheme Variable} pam-mount-service-type"
 msgstr "{Variable Scheme} pam-mount-service-type"
 
 # FUZZY FUZZY FUZZY
 #. type: defvar
-#: doc/guix.texi:25262
+#: doc/guix.texi:28955
 msgid "Service type for PAM Mount support."
 msgstr "Tipo de servicio para la implementación de PAM Mount."
 
 #. type: deftp
-#: doc/guix.texi:25264
+#: doc/guix.texi:28957
 #, no-wrap
 msgid "{Data Type} pam-mount-configuration"
 msgstr "{Tipo de datos} pam-mount-configuration"
 
 #. type: deftp
-#: doc/guix.texi:25266
+#: doc/guix.texi:28959
 msgid "Data type representing the configuration of PAM Mount."
 msgstr "Tipo de datos que representa la configuración de PAM Mount."
 
 #. type: code{#1}
-#: doc/guix.texi:25270
+#: doc/guix.texi:28963
 #, no-wrap
 msgid "rules"
 msgstr "rules"
 
 #. type: table
-#: doc/guix.texi:25273
+#: doc/guix.texi:28966
 msgid "The configuration rules that will be used to generate @file{/etc/security/pam_mount.conf.xml}."
 msgstr "Las reglas de configuración que se usarán para generar @file{/etc/security/pam_mount.conf.xml}."
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:25277
-msgid "The configuration rules are SXML elements (@pxref{SXML,,, guile, GNU Guile Reference Manual}), and the the default ones don't mount anything for anyone at login:"
+#: doc/guix.texi:28970
+msgid "The configuration rules are SXML elements (@pxref{SXML,,, guile, GNU Guile Reference Manual}), and the default ones don't mount anything for anyone at login:"
 msgstr "Las reglas de configuración son elementos SXML (@pxref{SXML,,, guile, GNU Guile Reference Manual}), y las reglas predeterminadas no incluyen el montado de ningún dispositivo para ningún usuario en el ingreso al sistema:"
 
 #. type: lisp
-#: doc/guix.texi:25292
+#: doc/guix.texi:28985
 #, no-wrap
 msgid ""
 "`((debug (@@ (enable \"0\")))\n"
@@ -48676,12 +55332,12 @@ msgstr ""
 "                   (remove \"true\"))))\n"
 
 #. type: table
-#: doc/guix.texi:25298
-msgid "Some @code{volume} elements must be added to automatically mount volumes at login.  Here's an example allowing the user @code{alice} to mount her encrypted @code{HOME} directory and allowing the user @code{bob} to mount the partition where he stores his data:"
-msgstr "Algunos elementos @code{volume} deben añadirse de manera automática para montar volúmenes en el ingreso. El siguiente ejemplo permite a la usuaria @code{alicia} montar su directorio @code{HOME} cifrado y permite al usuario @code{rober} montar la partición donde almacena sus datos:"
+#: doc/guix.texi:28991
+msgid "Some @code{volume} elements must be added to automatically mount volumes at login.  Here's an example allowing the user @code{alice} to mount her encrypted @env{HOME} directory and allowing the user @code{bob} to mount the partition where he stores his data:"
+msgstr "Algunos elementos @code{volume} deben añadirse de manera automática para montar volúmenes en el ingreso. El siguiente ejemplo permite a la usuaria @code{alicia} montar su directorio @env{HOME} cifrado y permite al usuario @code{rober} montar la partición donde almacena sus datos:"
 
 #. type: lisp
-#: doc/guix.texi:25323
+#: doc/guix.texi:29016
 #, no-wrap
 msgid ""
 "(define pam-mount-rules\n"
@@ -48735,7 +55391,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:25327
+#: doc/guix.texi:29020
 #, no-wrap
 msgid ""
 "(service pam-mount-service-type\n"
@@ -48747,349 +55403,681 @@ msgstr ""
 "           (rules reglas-pam-mount)))\n"
 
 #. type: table
-#: doc/guix.texi:25331
+#: doc/guix.texi:29024
 msgid "The complete list of possible options can be found in the man page for @uref{http://pam-mount.sourceforge.net/pam_mount.conf.5.html, pam_mount.conf}."
 msgstr "La lista completa de opciones posibles se puede encontrar en la página de @command{man} de @uref{http://pam-mount.sourceforge.net/pam_mount.conf.5.html, pam_mount.conf}."
 
 #. type: subsubheading
-#: doc/guix.texi:25338
+#: doc/guix.texi:29031
+#, no-wrap
+msgid "Guix Build Coordinator"
+msgstr "Coordinador de construcciones de Guix"
+
+# FUZZY FUZZY
+#. type: Plain text
+#: doc/guix.texi:29037
+msgid "The @uref{https://git.cbaines.net/guix/build-coordinator/,Guix Build Coordinator} aids in distributing derivation builds among machines running an @dfn{agent}.  The build daemon is still used to build the derivations, but the Guix Build Coordinator manages allocating builds and working with the results."
+msgstr "El @uref{https://git.cbaines.net/guix/build-coordinator/,coordinador de construcciones de Guix} ayuda en la distribución de las construcciones de derivaciones entre máquinas que ejecuten un @dfn{agente}. El daemon de construcción se usa todavía para la construcción de las derivaciones, pero el coordinador de construcciones de Guix gestiona su lanzamiento y trabaja con los resultados."
+
+#. type: quotation
+#: doc/guix.texi:29042
+msgid "This service is considered experimental.  Configuration options may be changed in a backwards-incompatible manner, and not all features have been thorougly tested."
+msgstr "Este servicio se considera experimental. Las opciones de configuración pueden cambiar de manera incompatible con versiones previas, y no todas las funcionalidades han sido probadas en profundidad."
+
+#. type: Plain text
+#: doc/guix.texi:29049
+msgid "The Guix Build Coordinator consists of one @dfn{coordinator}, and one or more connected @dfn{agent} processes. The coordinator process handles clients submitting builds, and allocating builds to agents. The agent processes talk to a build daemon to actually perform the builds, then send the results back to the coordinator."
+msgstr "El servicio de coordinación de construcciones de Guix consiste en un @dfn{proceso de coordinación}, y uno o más @dfn{procesos agente} conectados. El proceso de coordinación gestiona las peticiones de construcciones por parte de clientes, y reserva construcciones en los agentes. Los procesos agente hablan con el daemon de construcción para llevar a cabo las construcciones reales, cuyos resultados mandan de vuelta al proceso de coordinación."
+
+#. type: Plain text
+#: doc/guix.texi:29053
+msgid "There is a script to run the coordinator component of the Guix Build Coordinator, but the Guix service uses a custom Guile script instead, to provide better integration with G-expressions used in the configuration."
+msgstr "Existe un guión para ejecutar el componente de coordinación del servicio de coordinación de construcciones de Guix, pero el servicio de Guix utiliza un guión Guile personalizado en vez de este, para mejorar la integración con las expresiones-G usadas en la configuración."
+
+#. type: defvar
+#: doc/guix.texi:29054
+#, no-wrap
+msgid "{Scheme Variable} guix-build-coordinator-service-type"
+msgstr "{Variable Scheme} guix-build-coordinator-service-type"
+
+#. type: defvar
+#: doc/guix.texi:29057
+msgid "Service type for the Guix Build Coordinator.  Its value must be a @code{guix-build-coordinator-configuration} object."
+msgstr "Tipo de servicio para la coordinación de construcciones de Guix. Su valor debe ser un objeto @code{guix-build-coordinator-configuration}."
+
+#. type: deftp
+#: doc/guix.texi:29059
+#, no-wrap
+msgid "{Data Type} guix-build-coordinator-configuration"
+msgstr "{Tipo de datos} guix-build-coordinator-configuration"
+
+# FUZZY
+#. type: deftp
+#: doc/guix.texi:29061
+msgid "Data type representing the configuration of the Guix Build Coordinator."
+msgstr "Tipo de datos que representa la configuración del servicio de coordinación de construcciones de Guix."
+
+#. type: item
+#: doc/guix.texi:29063 doc/guix.texi:29107 doc/guix.texi:29166
+#, no-wrap
+msgid "@code{package} (default: @code{guix-build-coordinator})"
+msgstr "@code{package} (predeterminado: @code{guix-build-coordinator})"
+
+#. type: table
+#: doc/guix.texi:29065 doc/guix.texi:29109 doc/guix.texi:29168
+msgid "The Guix Build Coordinator package to use."
+msgstr "El paquete del servicio de coordinación de construcciones de Guix usado."
+
+#. type: item
+#: doc/guix.texi:29066
+#, no-wrap
+msgid "@code{user} (default: @code{\"guix-build-coordinator\"})"
+msgstr "@code{user} (predeterminado: @code{\"guix-build-coordinator\"})"
+
+#. type: table
+#: doc/guix.texi:29068 doc/guix.texi:29112 doc/guix.texi:29171
+#: doc/guix.texi:29217
+msgid "The system user to run the service as."
+msgstr "Usuaria del sistema que ejecuta el servicio."
+
+#. type: item
+#: doc/guix.texi:29069
+#, no-wrap
+msgid "@code{group} (default: @code{\"guix-build-coordinator\"})"
+msgstr "@code{group} (predeterminado: @code{\"guix-build-coordinator\"})"
+
+#. type: table
+#: doc/guix.texi:29071 doc/guix.texi:29220
+msgid "The system group to run the service as."
+msgstr "Grupo del sistema que ejecuta el servicio."
+
+#. type: item
+#: doc/guix.texi:29072
+#, no-wrap
+msgid "@code{database-uri-string} (default: @code{\"sqlite:///var/lib/guix-build-coordinator/guix_build_coordinator.db\"})"
+msgstr "@code{database-uri-string} (predeterminada: @code{\"sqlite:///var/lib/guix-build-coordinator/guix_build_coordinator.db\"})"
+
+#. type: table
+#: doc/guix.texi:29074
+msgid "The URI to use for the database."
+msgstr "URI usada para la conexión a la base de datos."
+
+#. type: item
+#: doc/guix.texi:29075
+#, no-wrap
+msgid "@code{agent-communication-uri} (default: @code{\"http://0.0.0.0:8745\"})"
+msgstr "@code{agent-communication-uri} (predeterminada: @code{\"http://0.0.0.0:8745\"})"
+
+#. type: table
+#: doc/guix.texi:29077
+msgid "The URI describing how to listen to requests from agent processes."
+msgstr "La URI que describe cómo escuchar peticiones de los procesos agentes."
+
+#. type: item
+#: doc/guix.texi:29078
+#, no-wrap
+msgid "@code{client-communication-uri} (default: @code{\"http://127.0.0.1:8746\"})"
+msgstr "@code{client-communication-uri} (predeterminada: @code{\"http://127.0.0.1:8746\"})"
+
+#. type: table
+#: doc/guix.texi:29082
+msgid "The URI describing how to listen to requests from clients.  The client API allows submitting builds and currently isn't authenticated, so take care when configuring this value."
+msgstr "La URI que describe cómo escuchar peticiones de los clientes. La interfaz para los clientes permite la emisión de construcciones y no implementa identificación actualmente, por lo que tenga cuidado cuando configure este valor."
+
+#. type: item
+#: doc/guix.texi:29083
+#, no-wrap
+msgid "@code{allocation-strategy} (default: @code{#~basic-build-allocation-strategy})"
+msgstr "@code{allocation-strategy} (predeterminada: @code{#~basic-build-allocation-strategy})"
+
+# FUZZY FUZZY
+#. type: table
+#: doc/guix.texi:29087
+msgid "A G-expression for the allocation strategy to be used.  This is a procedure that takes the datastore as an argument and populates the allocation plan in the database."
+msgstr "Una expresión-G para la estrategia de reservas usada. Es un procedimiento que recibe la ruta del almacén como un parámetro y rellena la planificación de reservas en la base de datos."
+
+#. type: item
+#: doc/guix.texi:29088
+#, no-wrap
+msgid "@code{hooks} (default: @var{'()})"
+msgstr "@code{hooks} (predeterminada: @var{'()})"
+
+#. type: table
+#: doc/guix.texi:29091
+msgid "An association list of hooks.  These provide a way to execute arbitrary code upon certain events, like a build result being processed."
+msgstr "Una lista asociativa de procedimientos de extensión@footnote{NdT: ``hook'' en inglés tiene el sentido del gancho donde se ``enganchan'' las extensiones.}. Proporcionan una forma de ejecutar código arbitrario tras ciertos eventos, como inicio del procesamiento del resultado de una construcción."
+
+#. type: item
+#: doc/guix.texi:29092
+#, no-wrap
+msgid "@code{guile} (default: @code{guile-3.0-latest})"
+msgstr "@code{guile} (predeterminado: @code{guile-3.0-latest})"
+
+#. type: table
+#: doc/guix.texi:29094
+msgid "The Guile package with which to run the Guix Build Coordinator."
+msgstr "El paquete Guile con el que se ejecuta la coordinación de construcciones de Guix."
+
+#. type: defvar
+#: doc/guix.texi:29098
+#, no-wrap
+msgid "{Scheme Variable} guix-build-coordinator-agent-service-type"
+msgstr "{Variable Scheme} guix-build-coordinator-agent-service-type"
+
+#. type: defvar
+#: doc/guix.texi:29101
+msgid "Service type for a Guix Build Coordinator agent.  Its value must be a @code{guix-build-coordinator-agent-configuration} object."
+msgstr "Tipo de servicio para un agente del coordinador de construcciones de Guix. Su valor debe ser un objeto @code{guix-build-coordinator-agent-configuration}."
+
+#. type: deftp
+#: doc/guix.texi:29103
+#, no-wrap
+msgid "{Data Type} guix-build-coordinator-agent-configuration"
+msgstr "{Tipo de datos} guix-build-coordinator-agent-configuration"
+
+#. type: deftp
+#: doc/guix.texi:29105
+msgid "Data type representing the configuration a Guix Build Coordinator agent."
+msgstr "Tipo de datos que representa la configuración de un agente del coordinador de construcciones de Guix."
+
+#. type: item
+#: doc/guix.texi:29110
+#, no-wrap
+msgid "@code{user} (default: @code{\"guix-build-coordinator-agent\"})"
+msgstr "@code{user} (predeterminado: @code{\"guix-build-coordinator-agent\"})"
+
+#. type: item
+#: doc/guix.texi:29113 doc/guix.texi:29172
+#, no-wrap
+msgid "@code{coordinator} (default: @code{\"http://localhost:8745\"})"
+msgstr "@code{coordinator} (predeterminado: @code{\"http://localhost:8745\"})"
+
+#. type: table
+#: doc/guix.texi:29115 doc/guix.texi:29174
+msgid "The URI to use when connecting to the coordinator."
+msgstr "URI usada para la conexión al nodo coordinador."
+
+# FUZZY FUZZY
+#. type: table
+#: doc/guix.texi:29120
+msgid "The UUID of the agent.  This should be generated by the coordinator process, stored in the coordinator database, and used by the intended agent."
+msgstr "El identificador UUID del agente. Debe ser generado por el proceso de coordinación, almacenarse en la base de datos de coordinación, y usarse por parte del agente en cuestión."
+
+#. type: table
+#: doc/guix.texi:29124
+msgid "The password to use when connecting to the coordinator.  A file to read the password from can also be specified, and this is more secure."
+msgstr "Contraseña usada para la conexión al proceso de coordinación. También se puede especificar un archivo del que leer la contraseña, lo cual es más seguro."
+
+#. type: item
+#: doc/guix.texi:29125
+#, no-wrap
+msgid "@code{password-file} (default: @code{#f})"
+msgstr "@code{password-file} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:29128
+msgid "A file containing the password to use when connecting to the coordinator."
+msgstr "Un archivo que contiene la contraseña usada para la conexión a la máquina coordinadora."
+
+#. type: item
+#: doc/guix.texi:29129
+#, no-wrap
+msgid "@code{systems} (default: @var{#f})"
+msgstr "@code{systems} (predeterminado: @var{#f})"
+
+#. type: table
+#: doc/guix.texi:29132
+msgid "The systems for which this agent should fetch builds.  The agent process will use the current system it's running on as the default."
+msgstr "Los sistemas para los cuales este agente debe obtener construcciones. Los procesos agente usan el sistema sobre el que se ejecuten como valor predeterminado."
+
+#. type: item
+#: doc/guix.texi:29133
+#, no-wrap
+msgid "@code{max-parallel-builds} (default: @code{1})"
+msgstr "@code{max-parallel-builds} (predeterminado: @code{1})"
+
+#. type: table
+#: doc/guix.texi:29135
+msgid "The number of builds to perform in parallel."
+msgstr "El número de construcciones que se ejecutan en paralelo."
+
+#. type: item
+#: doc/guix.texi:29136
+#, no-wrap
+msgid "@code{derivation-substitute-urls} (default: @code{1})"
+msgstr "@code{derivation-substitute-urls} (predeterminado: @code{1})"
+
+#. type: table
+#: doc/guix.texi:29139
+msgid "URLs from which to attempt to fetch substitutes for derivations, if the derivations aren't already available."
+msgstr "Identificadores URL a partir de los cuales se intentará obtener sustituciones para derivaciones, si las derivaciones no están ya disponibles."
+
+#. type: item
+#: doc/guix.texi:29140
+#, no-wrap
+msgid "@code{non-derivation-substitute-urls} (default: @code{1})"
+msgstr "@code{non-derivation-substitute-urls} (predeterminado: @code{1})"
+
+#. type: table
+#: doc/guix.texi:29143
+msgid "URLs from which to attempt to fetch substitutes for build inputs, if the input store items aren't already available."
+msgstr "Identificadores URL a partir de los cuales se intentará obtener sustituciones para las entradas de las construcciones, si los elementos de entrada del almacén no están ya disponibles."
+
+# FUZZY FUZZY FUZZY
+#. type: Plain text
+#: doc/guix.texi:29153
+msgid "The Guix Build Coordinator package contains a script to query an instance of the Guix Data Service for derivations to build, and then submit builds for those derivations to the coordinator.  The service type below assists in running this script.  This is an additional tool that may be useful when building derivations contained within an instance of the Guix Data Service."
+msgstr "El paquete del coordinador de construcciones de Guix contiene un guión para consultar a una instancia del servicio de datos de Guix derivaciones que deben construirse, y envía dichas derivaciones al proceso de coordinación. El siguiente tipo de servicio sirve de asistencia para ejecución de dicho guión. Se trata de una herramienta adicional que resultar de utilidad cuando se construyan derivaciones contenidas dentro de una instancia del servicio de datos de Guix."
+
+#. type: defvar
+#: doc/guix.texi:29154
+#, no-wrap
+msgid "{Scheme Variable} guix-build-coordinator-queue-builds-service-type"
+msgstr "{Variable Scheme} guix-build-coordinator-queue-builds-service-type"
+
+#. type: defvar
+#: doc/guix.texi:29159
+msgid "Service type for the guix-build-coordinator-queue-builds-from-guix-data-service script.  Its value must be a @code{guix-build-coordinator-queue-builds-configuration} object."
+msgstr "Tipo de servicio para el guión @command{guix-build-coordinator-queue-builds-from-guix-data-service}. Su valor debe ser un objeto @code{guix-build-coordinator-queue-builds-configuration}."
+
+#. type: deftp
+#: doc/guix.texi:29161
+#, no-wrap
+msgid "{Data Type} guix-build-coordinator-queue-builds-configuration"
+msgstr "{Tipo de datos} guix-build-coordinator-queue-builds-configuration"
+
+# FUZZY
+#. type: deftp
+#: doc/guix.texi:29164
+msgid "Data type representing the options to the queue builds from guix data service script."
+msgstr "Tipo de datos que representa las opciones de la cola de construcciones del guión del servicio de dados de Guix."
+
+#. type: item
+#: doc/guix.texi:29169
+#, no-wrap
+msgid "@code{user} (default: @code{\"guix-build-coordinator-queue-builds\"})"
+msgstr "@code{user} (predeterminada: @code{\"guix-build-coordinator-queue-builds\"})"
+
+#. type: item
+#: doc/guix.texi:29175
+#, no-wrap
+msgid "@code{systems} (default: @code{#f})"
+msgstr "@code{systems} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:29177
+msgid "The systems for which to fetch derivations to build."
+msgstr "Los sistemas para los que se obtienen derivaciones que construir."
+
+#. type: item
+#: doc/guix.texi:29178
+#, no-wrap
+msgid "@code{systems-and-targets} (default: @code{#f})"
+msgstr "@code{systems-and-targets} (predeterminado: @code{#f})"
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:29181
+msgid "An association list of system and target pairs for which to fetch derivations to build."
+msgstr "Una lista asociativa que contiene pares de sistema y objetivo para los que obtener derivaciones que construir."
+
+#. type: item
+#: doc/guix.texi:29182
+#, no-wrap
+msgid "@code{guix-data-service} (default: @code{\"https://data.guix.gnu.org\"})"
+msgstr "@code{guix-data-service} (predeterminado: @code{\"https://data.guix.gnu.org\"})"
+
+#. type: table
+#: doc/guix.texi:29185
+msgid "The Guix Data Service instance from which to query to find out about derivations to build."
+msgstr "La instancia del servicio de datos de Guix a la que se consulta para conocer las derivaciones que deben construirse."
+
+#. type: item
+#: doc/guix.texi:29186
+#, no-wrap
+msgid "@code{processed-commits-file} (default: @code{\"/var/cache/guix-build-coordinator-queue-builds/processed-commits\"})"
+msgstr "@code{processed-commits-file} (predeterminado: @code{\"/var/cache/guix-build-coordinator-queue-builds/processed-commits\"})"
+
+#. type: table
+#: doc/guix.texi:29189
+msgid "A file to record which commits have been processed, to avoid needlessly processing them again if the service is restarted."
+msgstr "Archivo en el que se registran las revisiones que se han procesado, para evitar procesarlas de nuevo innecesariamente si se reinicia el servicio."
+
+#. type: subsubheading
+#: doc/guix.texi:29193
 #, no-wrap
 msgid "Guix Data Service"
 msgstr "Servicio de datos de Guix"
 
 #. type: Plain text
-#: doc/guix.texi:25342
+#: doc/guix.texi:29197
 msgid "The @uref{http://data.guix.gnu.org,Guix Data Service} processes, stores and provides data about GNU Guix.  This includes information about packages, derivations and lint warnings."
 msgstr "El @uref{http://data.guix.gnu.org,servicio de datos de Guix} procesa, almacena y proporciona datos acerca de GNU Guix. Esto incluye información sobre paquetes, derivaciones y avisos de ``lint''."
 
 #. type: Plain text
-#: doc/guix.texi:25345
+#: doc/guix.texi:29200
 msgid "The data is stored in a PostgreSQL database, and available through a web interface."
 msgstr "Los datos se almacenan en una base de datos PostgreSQL, y están disponibles a través de una interfaz web."
 
 #. type: defvar
-#: doc/guix.texi:25346
+#: doc/guix.texi:29201
 #, no-wrap
 msgid "{Scheme Variable} guix-data-service-type"
 msgstr "{Variable Scheme} guix-data-service-type"
 
 # FUZZY
 #. type: defvar
-#: doc/guix.texi:25351
+#: doc/guix.texi:29206
 msgid "Service type for the Guix Data Service.  Its value must be a @code{guix-data-service-configuration} object.  The service optionally extends the getmail service, as the guix-commits mailing list is used to find out about changes in the Guix git repository."
 msgstr "Tipo de servicio para el servicio de datos de Guix. Su valor debe ser un objeto @code{guix-data-service-configuration}. El servicio opcionalmente extiende el servicio getmail, puesto que la lista de correo guix-commits se usa para conocer los cambios del repositorio git de Guix."
 
 #. type: deftp
-#: doc/guix.texi:25353
+#: doc/guix.texi:29208
 #, no-wrap
 msgid "{Data Type} guix-data-service-configuration"
 msgstr "{Tipo de datos} guix-data-service-configuration"
 
 # FUZZY
 #. type: deftp
-#: doc/guix.texi:25355
+#: doc/guix.texi:29210
 msgid "Data type representing the configuration of the Guix Data Service."
 msgstr "Tipo de datos que representa la configuración del servicio de datos de Guix."
 
 #. type: item
-#: doc/guix.texi:25357
+#: doc/guix.texi:29212
 #, no-wrap
 msgid "@code{package} (default: @code{guix-data-service})"
 msgstr "@code{package} (predeterminado: @code{guix-data-service})"
 
 #. type: table
-#: doc/guix.texi:25359
+#: doc/guix.texi:29214
 msgid "The Guix Data Service package to use."
 msgstr "El paquete del servicio de datos de Guix usado."
 
 #. type: item
-#: doc/guix.texi:25360
+#: doc/guix.texi:29215
 #, no-wrap
 msgid "@code{user} (default: @code{\"guix-data-service\"})"
 msgstr "@code{user} (usuaria: @code{\"guix-data-service\"})"
 
-#. type: table
-#: doc/guix.texi:25362
-msgid "The system user to run the service as."
-msgstr "Usuaria del sistema que ejecuta el servicio."
-
 #. type: item
-#: doc/guix.texi:25363
+#: doc/guix.texi:29218
 #, no-wrap
 msgid "@code{group} (default: @code{\"guix-data-service\"})"
 msgstr "@code{group} (predeterminado: @code{\"guix-data-service\"})"
 
-#. type: table
-#: doc/guix.texi:25365
-msgid "The system group to run the service as."
-msgstr "Grupo del sistema que ejecuta el servicio."
-
 #. type: item
-#: doc/guix.texi:25366
+#: doc/guix.texi:29221
 #, no-wrap
 msgid "@code{port} (default: @code{8765})"
 msgstr "@code{port} (predeterminado: @code{8765})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:25368
+#: doc/guix.texi:29223
 msgid "The port to bind the web service to."
 msgstr "El puerto al que se asociará el servicio web."
 
 #. type: item
-#: doc/guix.texi:25369
+#: doc/guix.texi:29224
 #, no-wrap
 msgid "@code{host} (default: @code{\"127.0.0.1\"})"
 msgstr "@code{host} (predeterminada: @code{\"127.0.0.1\"})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:25371
+#: doc/guix.texi:29226
 msgid "The host to bind the web service to."
 msgstr "El nombre de máquina al que se asociará el servicio web."
 
 #. type: item
-#: doc/guix.texi:25372
+#: doc/guix.texi:29227
 #, no-wrap
 msgid "@code{getmail-idle-mailboxes} (default: @code{#f})"
 msgstr "@code{getmail-idle-mailboxes} (predeterminado: @code{#f})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:25375
+#: doc/guix.texi:29230
 msgid "If set, this is the list of mailboxes that the getmail service will be configured to listen to."
 msgstr "Si se proporciona un valor, es la lista de bandejas de correo en las cuales la configuración debe indicar su lectura al servicio getmail."
 
 #. type: item
-#: doc/guix.texi:25376
+#: doc/guix.texi:29231
 #, no-wrap
 msgid "@code{commits-getmail-retriever-configuration} (default: @code{#f})"
 msgstr "@code{commits-getmail-retriever-configuration} (predeterminado: @code{#f})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:25380
+#: doc/guix.texi:29235
 msgid "If set, this is the @code{getmail-retriever-configuration} object with which to configure getmail to fetch mail from the guix-commits mailing list."
 msgstr "Si se proporciona un valor, es el objeto @code{getmail-retriever-configuration} con el que se configura getmail para obtener recibir el correo de la lista guix-commits."
 
+#. type: item
+#: doc/guix.texi:29236
+#, no-wrap
+msgid "@code{extra-options} (default: @var{'()})"
+msgstr "@code{extra-options} (predeterminadas: @var{'()})"
+
 #. type: table
-#: doc/guix.texi:25383
+#: doc/guix.texi:29238
 msgid "Extra command line options for @code{guix-data-service}."
 msgstr "Opciones de línea de órdenes adicionales para @command{guix-data-service}."
 
 #. type: item
-#: doc/guix.texi:25384
+#: doc/guix.texi:29239
 #, no-wrap
 msgid "@code{extra-process-jobs-options} (default: @var{'()})"
 msgstr "@code{extra-process-jobs-options} (predeterminadas: @var{'()})"
 
 #. type: table
-#: doc/guix.texi:25386
+#: doc/guix.texi:29241
 msgid "Extra command line options for @code{guix-data-service-process-jobs}."
 msgstr "Opciones de línea de órdenes adicionales para @command{guix-data-service-process-jobs}."
 
 #. type: cindex
-#: doc/guix.texi:25393
+#: doc/guix.texi:29248
 #, no-wrap
 msgid "oom"
 msgstr "oom"
 
 #. type: cindex
-#: doc/guix.texi:25394
+#: doc/guix.texi:29249
 #, no-wrap
 msgid "out of memory killer"
 msgstr "gestor de llenado de la memoria (out of memory killer)"
 
 #. type: cindex
-#: doc/guix.texi:25395
+#: doc/guix.texi:29250
 #, no-wrap
 msgid "earlyoom"
 msgstr "earlyoom"
 
 #. type: cindex
-#: doc/guix.texi:25396
+#: doc/guix.texi:29251
 #, no-wrap
 msgid "early out of memory daemon"
 msgstr "daemon Early OOM (early out of memory)"
 
-#. type: subsection
-#: doc/guix.texi:25397
+#. type: subsubheading
+#: doc/guix.texi:29252
 #, no-wrap
 msgid "Early OOM Service"
 msgstr "Servicio Early OOM"
 
 # FUZZY
 #. type: Plain text
-#: doc/guix.texi:25404
+#: doc/guix.texi:29259
 msgid "@uref{https://github.com/rfjakob/earlyoom,Early OOM}, also known as Earlyoom, is a minimalist out of memory (OOM) daemon that runs in user space and provides a more responsive and configurable alternative to the in-kernel OOM killer.  It is useful to prevent the system from becoming unresponsive when it runs out of memory."
 msgstr "@uref{https://github.com/rfjakob/earlyoom,Early OOM}, también conocido como Earlyoom, es un daemon minimalista de gestión del llenado de la memoria@footnote{NdT: Del inglés Out Of Memory.} que se ejecuta en espacio de usuaria y proporciona una alternativa al gestor del propio núcleo con una respuesta más inmediata y más configurable. Es útil para prevenir que el sistema no responda cuando se queda sin memoria."
 
 #. type: deffn
-#: doc/guix.texi:25405
+#: doc/guix.texi:29260
 #, no-wrap
 msgid "{Scheme Variable} earlyoom-service-type"
 msgstr "{Variable Scheme} earlyoom-service-type"
 
 # FUZZY
 #. type: deffn
-#: doc/guix.texi:25410
+#: doc/guix.texi:29265
 msgid "The service type for running @command{earlyoom}, the Early OOM daemon.  Its value must be a @code{earlyoom-configuration} object, described below.  The service can be instantiated in its default configuration with:"
 msgstr "Tipo de servicio para el servicio @command{earlyoom}, el daemon Early OOM. Su valor debe ser un objeto @code{earlyoom-configuration}, descrito a continuación. El servicio se puede instanciar con su configuración predeterminada de esta manera:"
 
 #. type: lisp
-#: doc/guix.texi:25413
+#: doc/guix.texi:29268
 #, no-wrap
 msgid "(service earlyoom-service-type)\n"
 msgstr "(service earlyoom-service-type)\n"
 
 #. type: deftp
-#: doc/guix.texi:25416
+#: doc/guix.texi:29271
 #, no-wrap
 msgid "{Data Type} earlyoom-configuration"
 msgstr "{Tipo de datos} earlyoom-configuration"
 
 #. type: deftp
-#: doc/guix.texi:25418
+#: doc/guix.texi:29273
 msgid "This is the configuration record for the @code{earlyoom-service-type}."
 msgstr "Esta es el registro de configuración para el servicio @code{earlyoom-service-type}."
 
 #. type: item
-#: doc/guix.texi:25420
+#: doc/guix.texi:29275
 #, no-wrap
 msgid "@code{earlyoom} (default: @var{earlyoom})"
 msgstr "@code{earlyoom} (predeterminado: @var{earlyoom})"
 
 #. type: table
-#: doc/guix.texi:25422
+#: doc/guix.texi:29277
 msgid "The Earlyoom package to use."
 msgstr "El paquete Earlyoom usado."
 
 #. type: item
-#: doc/guix.texi:25423
+#: doc/guix.texi:29278
 #, no-wrap
 msgid "@code{minimum-available-memory} (default: @code{10})"
 msgstr "@code{minimum-available-memory} (predeterminado: @code{10})"
 
 #. type: table
-#: doc/guix.texi:25425
+#: doc/guix.texi:29280
 msgid "The threshold for the minimum @emph{available} memory, in percentages."
 msgstr "El límite inferior de memoria @emph{disponible}, en porcentaje."
 
 #. type: item
-#: doc/guix.texi:25426
+#: doc/guix.texi:29281
 #, no-wrap
 msgid "@code{minimum-free-swap} (default: @code{10})"
 msgstr "@code{minimum-free-swap} (predeterminado: @code{10})"
 
 #. type: table
-#: doc/guix.texi:25428
+#: doc/guix.texi:29283
 msgid "The threshold for the minimum free swap memory, in percentages."
 msgstr "El límite inferior de memoria de intercambio libre, en porcentaje."
 
 #. type: item
-#: doc/guix.texi:25429
+#: doc/guix.texi:29284
 #, no-wrap
 msgid "@code{prefer-regexp} (default: @code{#f})"
 msgstr "@code{prefer-regexp} (predeterminado: @code{#f})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:25432
+#: doc/guix.texi:29287
 msgid "A regular expression (as a string) to match the names of the processes that should be preferably killed."
 msgstr "Una expresión regular (como cadena) que corresponda con los nombres de los procesos que preferiblemente deban pararse."
 
 #. type: item
-#: doc/guix.texi:25433
+#: doc/guix.texi:29288
 #, no-wrap
 msgid "@code{avoid-regexp} (default: @code{#f})"
 msgstr "@code{avoid-regexp} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:25436
+#: doc/guix.texi:29291
 msgid "A regular expression (as a string) to match the names of the processes that should @emph{not} be killed."
 msgstr "Una expresión regular (como cadena) que corresponda con los nombres de los procesos que @emph{no} deban pararse."
 
 #. type: item
-#: doc/guix.texi:25437
+#: doc/guix.texi:29292
 #, no-wrap
 msgid "@code{memory-report-interval} (default: @code{0})"
 msgstr "@code{memory-report-interval} (predeterminado: @code{0})"
 
 #. type: table
-#: doc/guix.texi:25440
+#: doc/guix.texi:29295
 msgid "The interval in seconds at which a memory report is printed.  It is disabled by default."
 msgstr "Intervalo en segundos con el cual se imprime el informe de memoria. No está activo de manera predeterminada."
 
 #. type: item
-#: doc/guix.texi:25441
+#: doc/guix.texi:29296
 #, no-wrap
 msgid "@code{ignore-positive-oom-score-adj?} (default: @code{#f})"
 msgstr "@code{ignore-positive-oom-score-adj?} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:25444
-msgid "A boolean indicating whether the positive adjustments set in @file{/proc/*/oom_score_adj}."
-msgstr "Valor booleano que indica si se realizan ajustes positivos en @file{/proc/*/oom_score_adj}."
+#: doc/guix.texi:29299
+msgid "A boolean indicating whether the positive adjustments set in @file{/proc/*/oom_score_adj} should be ignored."
+msgstr "Valor booleano que indica si se deben ignoran los ajustes positivos realizados en @file{/proc/*/oom_score_adj}."
 
 #. type: item
-#: doc/guix.texi:25445
+#: doc/guix.texi:29300
 #, no-wrap
 msgid "@code{show-debug-messages?} (default: @code{#f})"
 msgstr "@code{show-debug-messages?} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:25448
+#: doc/guix.texi:29303
 msgid "A boolean indicating whether debug messages should be printed.  The logs are saved at @file{/var/log/earlyoom.log}."
 msgstr "Valor booleano que indica si los mensajes de depuración deben imprimirse. Los registros se almacenan en @file{/var/log/earlyoom.log}."
 
 #. type: item
-#: doc/guix.texi:25449
+#: doc/guix.texi:29304
 #, no-wrap
 msgid "@code{send-notification-command} (default: @code{#f})"
 msgstr "@code{send-notification-command} (predeterminada: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:25452
+#: doc/guix.texi:29307
 msgid "This can be used to provide a custom command used for sending notifications."
 msgstr "Puede usarse para proporcionar una orden personalizada para el envío de notificaciones."
 
 #. type: cindex
-#: doc/guix.texi:25455
+#: doc/guix.texi:29310
 #, no-wrap
 msgid "modprobe"
 msgstr "modprobe"
 
 #. type: cindex
-#: doc/guix.texi:25456
+#: doc/guix.texi:29311
 #, no-wrap
 msgid "kernel module loader"
 msgstr "cargador de módulos del núcleo"
 
-#. type: subsubsection
-#: doc/guix.texi:25457
+#. type: subsubheading
+#: doc/guix.texi:29312
 #, no-wrap
 msgid "Kernel Module Loader Service"
 msgstr "Servicio de carga de módulos del núcleo"
 
 #. type: Plain text
-#: doc/guix.texi:25463
+#: doc/guix.texi:29318
 msgid "The kernel module loader service allows one to load loadable kernel modules at boot.  This is especially useful for modules that don't autoload and need to be manually loaded, as it's the case with @code{ddcci}."
 msgstr "El servicio de carga de módulos del núcleo permite la carga de módulos del núcleo durante el arranque. Esto es especialmente útil para módulos que no se cargan automáticamente y deben cargarse de forma manual, como es el caso con @code{ddcci}."
 
 #. type: deffn
-#: doc/guix.texi:25464
+#: doc/guix.texi:29319
 #, no-wrap
 msgid "{Scheme Variable} kernel-module-loader-service-type"
 msgstr "{Variable Scheme} kernel-module-loader-service-type"
 
 # FUZZY FUZZY
 #. type: deffn
-#: doc/guix.texi:25470
+#: doc/guix.texi:29325
 msgid "The service type for loading loadable kernel modules at boot with @command{modprobe}.  Its value must be a list of strings representing module names.  For example loading the drivers provided by @code{ddcci-driver-linux}, in debugging mode by passing some module parameters, can be done as follow:"
 msgstr "Tipo de servicio para la carga de módulos del núcleo durante el arranque con @command{modprobe}. Su valor debe ser una lista de cadenas que representan nombres de módulo. Por ejemplo, la carga de los controladores proporcionados por @code{ddcci-driver-linux} en modo de depuración proporcionando algunos parámetros para el módulo puede realizarse de la siguiente manera:"
 
 #. type: lisp
-#: doc/guix.texi:25475
+#: doc/guix.texi:29330
 #, no-wrap
 msgid ""
 "(use-modules (gnu) (gnu services))\n"
@@ -49103,7 +56091,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:25479
+#: doc/guix.texi:29334
 #, no-wrap
 msgid ""
 "(define ddcci-config\n"
@@ -49117,7 +56105,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:25489
+#: doc/guix.texi:29344
 #, no-wrap
 msgid ""
 "(operating-system\n"
@@ -49141,70 +56129,249 @@ msgstr ""
 "  (kernel-loadable-modules (list ddcci-driver-linux)))\n"
 
 #. type: cindex
-#: doc/guix.texi:25495
+#: doc/guix.texi:29347
+#, no-wrap
+msgid "zram"
+msgstr "zram"
+
+#. type: cindex
+#: doc/guix.texi:29348
+#, no-wrap
+msgid "compressed swap"
+msgstr "memoria de intercambio comprimida"
+
+#. type: cindex
+#: doc/guix.texi:29349
+#, no-wrap
+msgid "Compressed RAM-based block devices"
+msgstr "Dispositivos de bloques comprimidos basados en RAM"
+
+#. type: subsubheading
+#: doc/guix.texi:29350
+#, no-wrap
+msgid "Zram Device Service"
+msgstr "Servicio de dispositivo Zram"
+
+#. type: Plain text
+#: doc/guix.texi:29356
+msgid "The Zram device service provides a compressed swap device in system memory.  The Linux Kernel documentation has more information about @uref{https://www.kernel.org/doc/html/latest/admin-guide/blockdev/zram.html,zram} devices."
+msgstr "El servicio de dispositivo Zram proporciona un dispositivo comprimido de intercambio en la memoria del sistema.  La documentación del núcleo Linux contiene más información sobre dispositivos @uref{https://www.kernel.org/doc/html/latest/admin-guide/blockdev/zram.html,zram}."
+
+#. type: deffn
+#: doc/guix.texi:29357
+#, no-wrap
+msgid "{Scheme Variable} zram-device-service-type"
+msgstr "{Variable Scheme} zram-device-service-type"
+
+#. type: deffn
+#: doc/guix.texi:29361
+msgid "This service creates the zram block device, formats it as swap and enables it as a swap device.  The service's value is a @code{zram-device-configuration} record."
+msgstr "Este servicio crea el dispositivo de bloques zram, le proporciona el formato de la memoria de intercambio y lo activa. El valor del servicio es un registro @code{zram-device-configuration}."
+
+#. type: deftp
+#: doc/guix.texi:29362
+#, no-wrap
+msgid "{Data Type} zram-device-configuration"
+msgstr "{Tipo de datos} zram-device-configuration"
+
+#. type: deftp
+#: doc/guix.texi:29365
+msgid "This is the data type representing the configuration for the zram-device service."
+msgstr "Este tipo de datos representa la configuración del servicio zram-device."
+
+#. type: item
+#: doc/guix.texi:29367
+#, no-wrap
+msgid "@code{size} (default @code{\"1G\"})"
+msgstr "@code{size} (predeterminado: @code{\"1G\"})"
+
+#. type: table
+#: doc/guix.texi:29371
+msgid "This is the amount of space you wish to provide for the zram device.  It accepts a string and can be a number of bytes or use a suffix, eg.: @code{\"512M\"} or @code{1024000}."
+msgstr "Es la cantidad de espacio que desea proporcionar al dispositivo zram. Acepta una cadena y puede ser el número de bytes o usar un sufijo, como por ejemplo @code{\"512M\"} o @code{1024000}."
+
+#. type: item
+#: doc/guix.texi:29371
+#, no-wrap
+msgid "@code{compression-algorithm} (default @code{'lzo})"
+msgstr "@code{compression-algorithm} (predeterminado: @code{'lzo})"
+
+#. type: table
+#: doc/guix.texi:29375
+msgid "This is the compression algorithm you wish to use.  It is difficult to list all the possible compression options, but common ones supported by Guix's Linux Libre Kernel include @code{'lzo}, @code{'lz4} and @code{'zstd}."
+msgstr "Algoritmo de compresión que desea usar. Es difícil enumerar todas las opciones de compresión posibles, pero las más habituales entre las implementadas por el núcleo Linux Libre usado por Guix incluyen @code{'lzo}, @code{'lz4} y @code{'zstd}."
+
+#. type: item
+#: doc/guix.texi:29375
+#, no-wrap
+msgid "@code{memory-limit} (default @code{0})"
+msgstr "@code{memory-limit} (predeterminado: @code{0})"
+
+# TODO: Probablemente debería ser @samp y no @var
+#. type: table
+#: doc/guix.texi:29382
+msgid "This is the maximum amount of memory which the zram device can use.  Setting it to '0' disables the limit.  While it is generally expected that compression will be 2:1, it is possible that uncompressable data can be written to swap and this is a method to limit how much memory can be used.  It accepts a string and can be a number of bytes or use a suffix, eg.: @code{\"2G\"}."
+msgstr "Cantidad máxima de memoria que el dispositivo zram puede usar. Proporcionar el valor '0' desactiva el límite. Mientras que generalmente se espera que la compresión tenga una relación con los datos sin comprimir de 2:1, es posible que se escriban datos en la memoria de intercambio que no se pueden comprimir más, y esta es una forma de limitar cuanta memoria puede usarse. Acepta una cadena y puede ser un número de bytes o un usar sufijo, por ejemplo @code{\"2G\"}."
+
+#. type: item
+#: doc/guix.texi:29382
+#, no-wrap
+msgid "@code{priority} (default @code{-1})"
+msgstr "@code{priority} (predeterminada: @code{-1})"
+
+#. type: table
+#: doc/guix.texi:29387
+msgid "This is the priority of the swap device created from the zram device.  @code{swapon} accepts values between -1 and 32767, with higher values indicating higher priority.  Higher priority swap will generally be used first."
+msgstr "La prioridad del dispositivo de intercambio creado desde el disposito zram. @code{swapon} acepta valores entre -1 y 32767, donde los valores más altos indican una prioridad mayor. Los dispositivos de intercambio con mayor prioridad suelen usarse primero."
+
+#. type: defvr
+#: doc/guix.texi:29395
+#, no-wrap
+msgid "{Scheme Variable} hurd-console-service-type"
+msgstr "{Variable Scheme} hurd-console-service-type"
+
+# FUZZY FUZZY
+# TODO (MAAV): Fancy?
+#. type: defvr
+#: doc/guix.texi:29397
+msgid "This service starts the fancy @code{VGA} console client on the Hurd."
+msgstr "Este servicio inicia el cliente de consola @code{VGA} en Hurd."
+
+#. type: defvr
+#: doc/guix.texi:29399
+msgid "The service's value is a @code{hurd-console-configuration} record."
+msgstr "El valor de este servicio es un registro @code{hurd-console-configuration}."
+
+#. type: deftp
+#: doc/guix.texi:29401
+#, no-wrap
+msgid "{Data Type} hurd-console-configuration"
+msgstr "{Tipo de datos} hurd-console-configuration"
+
+#. type: deftp
+#: doc/guix.texi:29404
+msgid "This is the data type representing the configuration for the hurd-console-service."
+msgstr "Este tipo de datos representa la configuración del servicio hurd-console-service."
+
+#. type: item
+#: doc/guix.texi:29406 doc/guix.texi:29422
+#, no-wrap
+msgid "@code{hurd} (default: @var{hurd})"
+msgstr "@code{hurd} (predeterminado: @var{hurd})"
+
+#. type: table
+#: doc/guix.texi:29408 doc/guix.texi:29424
+msgid "The Hurd package to use."
+msgstr "El paquete de Hurd usado."
+
+#. type: defvr
+#: doc/guix.texi:29411
+#, no-wrap
+msgid "{Scheme Variable} hurd-getty-service-type"
+msgstr "{Variable Scheme} hurd-getty-service-type"
+
+#. type: defvr
+#: doc/guix.texi:29413
+msgid "This service starts a tty using the Hurd @code{getty} program."
+msgstr "Este servicio inicia una interfaz de teletipo (``tty'') mediante el uso del programa @code{getty} de Hurd."
+
+#. type: defvr
+#: doc/guix.texi:29415
+msgid "The service's value is a @code{hurd-getty-configuration} record."
+msgstr "El valor del servicio es un registro @code{hurd-getty-configuration}."
+
+#. type: deftp
+#: doc/guix.texi:29417
+#, no-wrap
+msgid "{Data Type} hurd-getty-configuration"
+msgstr "{Tipo de datos} hurd-getty-configuration"
+
+#. type: deftp
+#: doc/guix.texi:29420
+msgid "This is the data type representing the configuration for the hurd-getty-service."
+msgstr "Este tipo de datos representa la configuración del servicio hurd-getty-service."
+
+#. type: table
+#: doc/guix.texi:29427
+msgid "The name of the console this Getty runs on---e.g., @code{\"tty1\"}."
+msgstr "El nombre de la consola en la que se ejecuta este Getty---por ejemplo, @code{\"tty1\"}."
+
+#. type: item
+#: doc/guix.texi:29428
+#, no-wrap
+msgid "@code{baud-rate} (default: @code{38400})"
+msgstr "@code{baud-rate} (predeterminado: @code{38400})"
+
+#. type: table
+#: doc/guix.texi:29430
+msgid "An integer specifying the baud rate of the tty."
+msgstr "Un entero que especifica la tasa de transmisión de interfaz de teletipo."
+
+#. type: cindex
+#: doc/guix.texi:29437
 #, no-wrap
 msgid "fingerprint"
 msgstr "huella dactilar"
 
 #. type: subsubheading
-#: doc/guix.texi:25496
+#: doc/guix.texi:29438
 #, no-wrap
 msgid "Fingerprint Service"
 msgstr "Servicio de huella dactilar"
 
 #. type: Plain text
-#: doc/guix.texi:25500
+#: doc/guix.texi:29442
 msgid "The @code{(gnu services authentication)} module provides a DBus service to read and identify fingerprints via a fingerprint sensor."
 msgstr "El módulo @code{(gnu services authentication)} proporciona un servicio DBus para leer e identificar huellas dactilares mediante un sensor de huellas."
 
 #. type: defvr
-#: doc/guix.texi:25501
+#: doc/guix.texi:29443
 #, no-wrap
 msgid "{Scheme Variable} fprintd-service-type"
 msgstr "{Variable Scheme} fprintd-service-type"
 
 # FUZZY
 #. type: defvr
-#: doc/guix.texi:25504
+#: doc/guix.texi:29446
 msgid "The service type for @command{fprintd}, which provides the fingerprint reading capability."
 msgstr "El tipo de servicio para @command{fprintd}, que proporciona la capacidad de lectura de huellas dactilares."
 
 #. type: lisp
-#: doc/guix.texi:25507
+#: doc/guix.texi:29449
 #, no-wrap
 msgid "(service fprintd-service-type)\n"
 msgstr "(service fprintd-service-type)\n"
 
 #. type: cindex
-#: doc/guix.texi:25510
+#: doc/guix.texi:29452
 #, no-wrap
 msgid "sysctl"
 msgstr "sysctl"
 
 #. type: subsubheading
-#: doc/guix.texi:25511
+#: doc/guix.texi:29453
 #, no-wrap
 msgid "System Control Service"
 msgstr "Servicios de control del sistema"
 
 #. type: Plain text
-#: doc/guix.texi:25515
+#: doc/guix.texi:29457
 msgid "The @code{(gnu services sysctl)} provides a service to configure kernel parameters at boot."
 msgstr "El módulo @code{(gnu services sysctl)} proporciona servicios para configurar parámetros del núcleo durante el arranque."
 
 #. type: defvr
-#: doc/guix.texi:25516
+#: doc/guix.texi:29458
 #, no-wrap
 msgid "{Scheme Variable} sysctl-service-type"
 msgstr "{Variable Scheme} sysctl-service-type"
 
 #. type: defvr
-#: doc/guix.texi:25520
+#: doc/guix.texi:29462
 msgid "The service type for @command{sysctl}, which modifies kernel parameters under @file{/proc/sys/}.  To enable IPv4 forwarding, it can be instantiated as:"
 msgstr "El tipo de servicio para @command{sysctl}, que modifica parámetros del núcleo bajo @file{/proc/sys}. Para activar el encaminamiento de tráfico IPv4 se puede instanciar de esta manera:"
 
 #. type: lisp
-#: doc/guix.texi:25525
+#: doc/guix.texi:29467
 #, no-wrap
 msgid ""
 "(service sysctl-service-type\n"
@@ -49216,211 +56383,211 @@ msgstr ""
 "           (settings '((\"net.ipv4.ip_forward\" . \"1\")))))\n"
 
 #. type: deftp
-#: doc/guix.texi:25528
+#: doc/guix.texi:29470
 #, no-wrap
 msgid "{Data Type} sysctl-configuration"
 msgstr "{Tipo de datos} sysctl-configuration"
 
 #. type: deftp
-#: doc/guix.texi:25530
+#: doc/guix.texi:29472
 msgid "The data type representing the configuration of @command{sysctl}."
 msgstr "Tipo de datos que representa la configuración de @command{sysctl}."
 
 #. type: item
-#: doc/guix.texi:25532
+#: doc/guix.texi:29474
 #, no-wrap
 msgid "@code{sysctl} (default: @code{(file-append procps \"/sbin/sysctl\"})"
 msgstr "@code{sysctl} (predeterminado: @code{(file-append procps \"/sbin/sysctl\"})"
 
 #. type: table
-#: doc/guix.texi:25534
+#: doc/guix.texi:29476
 msgid "The @command{sysctl} executable to use."
 msgstr "El ejecutable @command{sysctl} usado."
 
 #. type: item
-#: doc/guix.texi:25535
+#: doc/guix.texi:29477
 #, no-wrap
 msgid "@code{settings} (default: @code{'()})"
 msgstr "@code{settings} (predeterminados: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:25537
+#: doc/guix.texi:29479
 msgid "An association list specifies kernel parameters and their values."
 msgstr "Una lista asociativa que especifica parámetros del núcleo y sus valores."
 
 #. type: cindex
-#: doc/guix.texi:25540
+#: doc/guix.texi:29482
 #, no-wrap
 msgid "pcscd"
 msgstr "pcscd"
 
 #. type: subsubheading
-#: doc/guix.texi:25541
+#: doc/guix.texi:29483
 #, no-wrap
 msgid "PC/SC Smart Card Daemon Service"
 msgstr "Servicio del daemon de tarjetas inteligentes PC/SC"
 
 # FUZZY FUZZY FUZZY FUZZY FUZZY
 #. type: Plain text
-#: doc/guix.texi:25548
+#: doc/guix.texi:29490
 msgid "The @code{(gnu services security-token)} module provides the following service to run @command{pcscd}, the PC/SC Smart Card Daemon.  @command{pcscd} is the daemon program for pcsc-lite and the MuscleCard framework. It is a resource manager that coordinates communications with smart card readers, smart cards and cryptographic tokens that are connected to the system."
 msgstr "El módulo @code{(gnu services security-token)} proporciona el siguiente servicio para ejecutar @command{pcscd}, el daemon de tarjetas inteligentes PC/SC.  @command{pcscd} es el programa del daemon para pcsc-lite y el framework MuscleCard. Es un gestor de recursos que coordina la comunicación con lectores de tarjetas inteligentes, las propias tarjetas y los identificadores criptográficos conectados al sistema."
 
 #. type: defvr
-#: doc/guix.texi:25549
+#: doc/guix.texi:29491
 #, no-wrap
 msgid "{Scheme Variable} pcscd-service-type"
 msgstr "{Variable Scheme} pcscd-service-type"
 
 # FUZZY
 #. type: defvr
-#: doc/guix.texi:25553
+#: doc/guix.texi:29495
 msgid "Service type for the @command{pcscd} service.  Its value must be a @code{pcscd-configuration} object.  To run pcscd in the default configuration, instantiate it as:"
 msgstr "Tipo de servicio para el servicio @command{pcscd}. Su valor debe ser un objeto @code{pcscd-configuration}. Puede instanciarlo de esta manera para ejecutar pcscd con la configuración predeterminada:"
 
 #. type: lisp
-#: doc/guix.texi:25556
+#: doc/guix.texi:29498
 #, no-wrap
 msgid "(service pcscd-service-type)\n"
 msgstr "(service pcscd-service-type)\n"
 
 #. type: deftp
-#: doc/guix.texi:25559
+#: doc/guix.texi:29501
 #, no-wrap
 msgid "{Data Type} pcscd-configuration"
 msgstr "{Tipo de datos} pcscd-configuration"
 
 #. type: deftp
-#: doc/guix.texi:25561
+#: doc/guix.texi:29503
 msgid "The data type representing the configuration of @command{pcscd}."
 msgstr "Tipo de datos que representa la configuración de @command{pcscd}."
 
 #. type: item
-#: doc/guix.texi:25563
+#: doc/guix.texi:29505
 #, no-wrap
 msgid "@code{pcsc-lite} (default: @code{pcsc-lite})"
 msgstr "@code{pcsc-lite} (predeterminado: @code{pcsc-lite})"
 
 #. type: table
-#: doc/guix.texi:25565
+#: doc/guix.texi:29507
 msgid "The pcsc-lite package that provides pcscd."
 msgstr "El paquete pcsc-lite que proporciona pcscd."
 
 #. type: item
-#: doc/guix.texi:25565
+#: doc/guix.texi:29507
 #, no-wrap
 msgid "@code{usb-drivers} (default: @code{(list ccid)})"
 msgstr "@code{usb-drivers} (predeterminado: @code{(list ccid)})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:25568
+#: doc/guix.texi:29510
 msgid "List of packages that provide USB drivers to pcscd. Drivers are expected to be under @file{pcsc/drivers} in the store directory of the package."
 msgstr "Lista de paquetes que proporcionan los controladores USB para pcscd. Se espera que los controladores se encuentren en el directorio @file{pcsc/drivers} del directorio del almacén del paquete."
 
 #. type: cindex
-#: doc/guix.texi:25571
+#: doc/guix.texi:29513
 #, no-wrap
 msgid "lirc"
 msgstr "lirc"
 
 #. type: subsubheading
-#: doc/guix.texi:25572
+#: doc/guix.texi:29514
 #, no-wrap
 msgid "Lirc Service"
 msgstr "Servicio Lirc"
 
 #. type: Plain text
-#: doc/guix.texi:25575
+#: doc/guix.texi:29517
 msgid "The @code{(gnu services lirc)} module provides the following service."
 msgstr "El módulo @code{(gnu services lirc)} proporciona el siguiente servicio."
 
 #. type: deffn
-#: doc/guix.texi:25576
+#: doc/guix.texi:29518
 #, no-wrap
 msgid "{Scheme Procedure} lirc-service [#:lirc lirc] @"
 msgstr "{Procedimiento Scheme} lirc-service [#:lirc lirc] @"
 
 # FUZZY
 #. type: deffn
-#: doc/guix.texi:25581
+#: doc/guix.texi:29523
 msgid "[#:device #f] [#:driver #f] [#:config-file #f] @ [#:extra-options '()] Return a service that runs @url{http://www.lirc.org,LIRC}, a daemon that decodes infrared signals from remote controls."
 msgstr ""
 "[#:device #f] [#:driver #f] [#:config-file #f] @ [#:extra-options '()]\n"
 "Devuelve un servicio que ejecuta @url{http://www.lirc.org,LIRC}, un daemon que decodifica señales infrarrojas de dispositivos de control remoto."
 
 #. type: deffn
-#: doc/guix.texi:25585
+#: doc/guix.texi:29527
 msgid "Optionally, @var{device}, @var{driver} and @var{config-file} (configuration file name) may be specified.  See @command{lircd} manual for details."
-msgstr "De manera opcional, se pueden especificar @var{device}, @var{driver} y @var{config-file} (nombre del fichero de configuración) may be specified.  Véase el manual de @command{lircd} para obtener más detalles."
+msgstr "De manera opcional, se pueden especificar @var{device}, @var{driver} y @var{config-file} (nombre del archivo de configuración) may be specified.  Véase el manual de @command{lircd} para obtener más detalles."
 
 #. type: deffn
-#: doc/guix.texi:25588
+#: doc/guix.texi:29530
 msgid "Finally, @var{extra-options} is a list of additional command-line options passed to @command{lircd}."
 msgstr "Por último, @var{extra-options} es una lista de opciones adicionales para la línea de órdenes proporcionada a @command{lircd}."
 
 #. type: cindex
-#: doc/guix.texi:25590
+#: doc/guix.texi:29532
 #, no-wrap
 msgid "spice"
 msgstr "spice"
 
 #. type: subsubheading
-#: doc/guix.texi:25591
+#: doc/guix.texi:29533
 #, no-wrap
 msgid "Spice Service"
 msgstr "Servicio Spice"
 
 #. type: Plain text
-#: doc/guix.texi:25594
+#: doc/guix.texi:29536
 msgid "The @code{(gnu services spice)} module provides the following service."
 msgstr "El módulo @code{(gnu services spice)} proporciona el siguiente servicio."
 
 #. type: deffn
-#: doc/guix.texi:25595
+#: doc/guix.texi:29537
 #, no-wrap
 msgid "{Scheme Procedure} spice-vdagent-service [#:spice-vdagent]"
 msgstr "{Procedimiento Scheme} spice-vdagent-service [#:spice-vdagent]"
 
 # FUZZY
 #. type: deffn
-#: doc/guix.texi:25599
+#: doc/guix.texi:29541
 msgid "Returns a service that runs @url{https://www.spice-space.org,VDAGENT}, a daemon that enables sharing the clipboard with a vm and setting the guest display resolution when the graphical console window resizes."
 msgstr "Devuelve un servicio que ejecuta @url{https://www.spice-space.org,VDAGENT}, un daemon que permite compartir el portapapeles con una máquina virtual y la configuración de la resolución de la pantalla de la máquina virtual cuando la ventana de la consola gráfica cambia de tamaño."
 
 #. type: cindex
-#: doc/guix.texi:25601
+#: doc/guix.texi:29543
 #, no-wrap
 msgid "inputattach"
 msgstr "inputattach"
 
 #. type: subsubheading
-#: doc/guix.texi:25602
+#: doc/guix.texi:29544
 #, no-wrap
 msgid "inputattach Service"
 msgstr "Servicio inputattach"
 
 # FUZZY
 #. type: cindex
-#: doc/guix.texi:25604
+#: doc/guix.texi:29546
 #, no-wrap
 msgid "tablet input, for Xorg"
 msgstr "entrada de tablet, para Xorg"
 
 #. type: cindex
-#: doc/guix.texi:25605
+#: doc/guix.texi:29547
 #, no-wrap
 msgid "touchscreen input, for Xorg"
 msgstr "entrada de pantalla táctil, para Xorg"
 
 # FUZZY
 #. type: Plain text
-#: doc/guix.texi:25609
+#: doc/guix.texi:29551
 msgid "The @uref{https://linuxwacom.github.io/, inputattach} service allows you to use input devices such as Wacom tablets, touchscreens, or joysticks with the Xorg display server."
 msgstr "El servicio @uref{https://linuxwacom.github.io/, inputattach} permite el uso de dispositivos de entrada como tabletas Wacom, pantallas táctiles, o joysticks con el servidor gráfico Xorg."
 
 #. type: deffn
-#: doc/guix.texi:25610
+#: doc/guix.texi:29552
 #, no-wrap
 msgid "{Scheme Variable} inputattach-service-type"
 msgstr "{Variable Scheme} inputattach-service-type"
@@ -49428,242 +56595,253 @@ msgstr "{Variable Scheme} inputattach-service-type"
 # FUZZY
 # TODO (MAAV): Dispatch??
 #. type: deffn
-#: doc/guix.texi:25613
+#: doc/guix.texi:29555
 msgid "Type of a service that runs @command{inputattach} on a device and dispatches events from it."
 msgstr "Tipo de un servicio que ejecuta @command{inputattach} con un dispositivo y reenvía los eventos que produzca."
 
 #. type: deftp
-#: doc/guix.texi:25615
+#: doc/guix.texi:29557
 #, no-wrap
 msgid "{Data Type} inputattach-configuration"
 msgstr "{Tipo de datos} inputattach-configuration"
 
 #. type: item
-#: doc/guix.texi:25617
+#: doc/guix.texi:29559
 #, no-wrap
 msgid "@code{device-type} (default: @code{\"wacom\"})"
 msgstr "@code{device-type} (predeterminado: @code{\"wacom\"})"
 
 #. type: table
-#: doc/guix.texi:25620
+#: doc/guix.texi:29562
 msgid "The type of device to connect to.  Run @command{inputattach --help}, from the @code{inputattach} package, to see the list of supported device types."
 msgstr "Tipo del dispositivo al que conectarse. Ejecute @command{inputattach --help}, del paquete @code{inputattach}, para ver la lista de tipos de dispositivo implementados."
 
 #. type: item
-#: doc/guix.texi:25621
+#: doc/guix.texi:29563
 #, no-wrap
 msgid "@code{device} (default: @code{\"/dev/ttyS0\"})"
 msgstr "@code{device} (predeterminado: @code{\"/dev/ttyS0\"})"
 
 #. type: table
-#: doc/guix.texi:25623
+#: doc/guix.texi:29565
 msgid "The device file to connect to the device."
-msgstr "El nombre de fichero para la conexión al dispositivo."
+msgstr "El nombre de archivo para la conexión al dispositivo."
 
 #. type: table
-#: doc/guix.texi:25627
+#: doc/guix.texi:29569
 msgid "Baud rate to use for the serial connection.  Should be a number or @code{#f}."
 msgstr "Tasa de transmisión usada para las conexiones serie. Debe ser un número o @code{#f}."
 
 #. type: item
-#: doc/guix.texi:25628
+#: doc/guix.texi:29570
 #, no-wrap
 msgid "@code{log-file} (default: @code{#f})"
 msgstr "@code{log-file} (predeterminado: @code{#f})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:25630
+#: doc/guix.texi:29572
 msgid "If true, this must be the name of a file to log messages to."
-msgstr "Si es verdadero, debe ser el nombre de un fichero en el que registrar los mensajes."
+msgstr "Si es verdadero, debe ser el nombre de un archivo en el que registrar los mensajes."
 
-#. type: subsection
-#: doc/guix.texi:25633
+#. type: subsubheading
+#: doc/guix.texi:29575
 #, no-wrap
-msgid "Dictionary Services"
-msgstr "Servicios de diccionario"
+msgid "Dictionary Service"
+msgstr "Servicio de diccionario"
 
 #. type: cindex
-#: doc/guix.texi:25634
+#: doc/guix.texi:29576
 #, no-wrap
 msgid "dictionary"
 msgstr "diccionario"
 
 #. type: Plain text
-#: doc/guix.texi:25636
+#: doc/guix.texi:29578
 msgid "The @code{(gnu services dict)} module provides the following service:"
 msgstr "El módulo @code{(gnu services dict)} proporciona el servicio siguiente:"
 
+#. type: defvr
+#: doc/guix.texi:29579
+#, no-wrap
+msgid "{Scheme Variable} dicod-service-type"
+msgstr "{Variable Scheme} dicod-service-type"
+
+#. type: defvr
+#: doc/guix.texi:29582
+msgid "This is the type of the service that runs the @command{dicod} daemon, an implementation of DICT server (@pxref{Dicod,,, dico, GNU Dico Manual})."
+msgstr "Tipo de servicio que ejecuta el daemon @command{dicod}, una implementación del servidor DICT (@pxref{Dicod,,, dico, GNU Dico Manual})."
+
 #. type: deffn
-#: doc/guix.texi:25637
+#: doc/guix.texi:29584
 #, no-wrap
 msgid "{Scheme Procedure} dicod-service [#:config (dicod-configuration)]"
 msgstr "{Procedimiento Scheme} dicod-service [#:config (dicod-configuration)]"
 
 #. type: deffn
-#: doc/guix.texi:25640
+#: doc/guix.texi:29587
 msgid "Return a service that runs the @command{dicod} daemon, an implementation of DICT server (@pxref{Dicod,,, dico, GNU Dico Manual})."
 msgstr "Devuelve un servicio que ejecuta el daemon @command{dicod}, una implementación del servidor DICT (@pxref{Dicod,,, dico, GNU Dico Manual})."
 
 #. type: deffn
-#: doc/guix.texi:25644
+#: doc/guix.texi:29591
 msgid "The optional @var{config} argument specifies the configuration for @command{dicod}, which should be a @code{<dicod-configuration>} object, by default it serves the GNU Collaborative International Dictionary of English."
 msgstr "El parámetro opcional @var{config} especifica la configuración para @command{dicod}, que debe ser un objeto @code{<dicod-configuration>}, de manera predeterminada proporciona el diccionario colaborativo internacional de Inglés de GNU."
 
 #. type: deffn
-#: doc/guix.texi:25648
+#: doc/guix.texi:29595
 msgid "You can add @command{open localhost} to your @file{~/.dico} file to make @code{localhost} the default server for @command{dico} client (@pxref{Initialization File,,, dico, GNU Dico Manual})."
-msgstr "Puede añadir @command{open localhost} en su fichero @file{~/.dico} para hacer que @code{localhost} sea el servidor predeterminado de su cliente @command{dico} (@pxref{Initialization File,,, dico, GNU Dico Manual})."
+msgstr "Puede añadir @command{open localhost} en su archivo @file{~/.dico} para hacer que @code{localhost} sea el servidor predeterminado de su cliente @command{dico} (@pxref{Initialization File,,, dico, GNU Dico Manual})."
 
 #. type: deftp
-#: doc/guix.texi:25650
+#: doc/guix.texi:29597
 #, no-wrap
 msgid "{Data Type} dicod-configuration"
 msgstr "{Tipo de datos} dicod-configuration"
 
 #. type: deftp
-#: doc/guix.texi:25652
+#: doc/guix.texi:29599
 msgid "Data type representing the configuration of dicod."
 msgstr "Tipo de datos que representa la configuración de dicod."
 
 #. type: item
-#: doc/guix.texi:25654
+#: doc/guix.texi:29601
 #, no-wrap
 msgid "@code{dico} (default: @var{dico})"
 msgstr "@code{dico} (predeterminado: @var{dico})"
 
 #. type: table
-#: doc/guix.texi:25656
+#: doc/guix.texi:29603
 msgid "Package object of the GNU Dico dictionary server."
 msgstr "El objeto paquete del servidor de diccionario GNU Dico."
 
 #. type: item
-#: doc/guix.texi:25657
+#: doc/guix.texi:29604
 #, no-wrap
 msgid "@code{interfaces} (default: @var{'(\"localhost\")})"
 msgstr "@code{interfaces} (predeterminada: @var{'(\"localhost\")})"
 
 #. type: table
-#: doc/guix.texi:25661
+#: doc/guix.texi:29608
 msgid "This is the list of IP addresses and ports and possibly socket file names to listen to (@pxref{Server Settings, @code{listen} directive,, dico, GNU Dico Manual})."
-msgstr "Es la lista de direcciones IP y puertos, y posiblemente nombres de fichero de sockets, en los que se debe escuchar (@pxref{Server Settings, @code{listen} directive,, dico, GNU Dico Manual})."
+msgstr "Es la lista de direcciones IP y puertos, y posiblemente nombres de archivo de sockets, en los que se debe escuchar (@pxref{Server Settings, @code{listen} directive,, dico, GNU Dico Manual})."
 
 #. type: item
-#: doc/guix.texi:25662
+#: doc/guix.texi:29609
 #, no-wrap
 msgid "@code{handlers} (default: @var{'()})"
 msgstr "@code{handlers} (predeterminados: @var{'()})"
 
 #. type: table
-#: doc/guix.texi:25664
+#: doc/guix.texi:29611
 msgid "List of @code{<dicod-handler>} objects denoting handlers (module instances)."
 msgstr "Lista de objetos @code{<dicod-handler>} que identifican los controladores (instancias de módulos)."
 
 #. type: item
-#: doc/guix.texi:25665
+#: doc/guix.texi:29612
 #, no-wrap
 msgid "@code{databases} (default: @var{(list %dicod-database:gcide)})"
 msgstr "@code{databases} (predeterminada: @var{(list %dicod-database:gcide)})"
 
 #. type: table
-#: doc/guix.texi:25667
+#: doc/guix.texi:29614
 msgid "List of @code{<dicod-database>} objects denoting dictionaries to be served."
 msgstr "Lista de objetos @code{<dicod-database>} que identifican los diccionarios proporcionados."
 
 #. type: deftp
-#: doc/guix.texi:25670
+#: doc/guix.texi:29617
 #, no-wrap
 msgid "{Data Type} dicod-handler"
 msgstr "{Tipo de datos} dicod-handler"
 
 # FUZZY
 #. type: deftp
-#: doc/guix.texi:25672
+#: doc/guix.texi:29619
 msgid "Data type representing a dictionary handler (module instance)."
 msgstr "Tipo de datos que representa un controlador de diccionario (instancia de un módulo)."
 
 #. type: table
-#: doc/guix.texi:25676
+#: doc/guix.texi:29623
 msgid "Name of the handler (module instance)."
 msgstr "Nombre del controlador (instancia de un módulo)."
 
 #. type: item
-#: doc/guix.texi:25677
+#: doc/guix.texi:29624
 #, no-wrap
 msgid "@code{module} (default: @var{#f})"
 msgstr "@code{module} (predeterminado: @var{#f})"
 
 #. type: table
-#: doc/guix.texi:25681
+#: doc/guix.texi:29628
 msgid "Name of the dicod module of the handler (instance).  If it is @code{#f}, the module has the same name as the handler.  (@pxref{Modules,,, dico, GNU Dico Manual})."
 msgstr "Nombre del módulo del controlador de dicod (instancia). Si es @code{#f}, el módulo tiene el mismo nombre que el controlador. (@pxref{Modules,,, dico, GNU Dico Manual})."
 
 #. type: table
-#: doc/guix.texi:25684
+#: doc/guix.texi:29631
 msgid "List of strings or gexps representing the arguments for the module handler"
 msgstr "Lista de cadenas o expresiones-G que representan los parámetros al módulo de control"
 
 #. type: deftp
-#: doc/guix.texi:25687
+#: doc/guix.texi:29634
 #, no-wrap
 msgid "{Data Type} dicod-database"
 msgstr "{Tipo de datos} dicod-database"
 
 #. type: deftp
-#: doc/guix.texi:25689
+#: doc/guix.texi:29636
 msgid "Data type representing a dictionary database."
 msgstr "Tipo de datos que representa una base de datos de diccionario."
 
 #. type: table
-#: doc/guix.texi:25693
+#: doc/guix.texi:29640
 msgid "Name of the database, will be used in DICT commands."
 msgstr "Nombre de la base de datos, será usada en las órdenes DICT."
 
 #. type: code{#1}
-#: doc/guix.texi:25694
+#: doc/guix.texi:29641
 #, no-wrap
 msgid "handler"
 msgstr "handler"
 
 #. type: table
-#: doc/guix.texi:25697
+#: doc/guix.texi:29644
 msgid "Name of the dicod handler (module instance) used by this database (@pxref{Handlers,,, dico, GNU Dico Manual})."
 msgstr "Nombre del controlador de dicod (instancia de un módulo) usado por esta base de datos (@pxref{Handlers,,, dico, GNU Dico Manual})."
 
 #. type: item
-#: doc/guix.texi:25698
+#: doc/guix.texi:29645
 #, no-wrap
 msgid "@code{complex?} (default: @var{#f})"
 msgstr "@code{complex?} (predeterminado: @var{#f})"
 
 #. type: table
-#: doc/guix.texi:25701
+#: doc/guix.texi:29648
 msgid "Whether the database configuration complex.  The complex configuration will need a corresponding @code{<dicod-handler>} object, otherwise not."
 msgstr "Determina si se usará la configuración compleja. La configuración compleja necesita un objeto @code{<dicod-handler>}, que no es necesario en otro caso."
 
 #. type: table
-#: doc/guix.texi:25705
+#: doc/guix.texi:29652
 msgid "List of strings or gexps representing the arguments for the database (@pxref{Databases,,, dico, GNU Dico Manual})."
 msgstr "Lista de cadenas o expresiones-g que representan los parámetros para la base de datos (@pxref{Databases,,, dico, GNU Dico Manual})."
 
 #. type: defvr
-#: doc/guix.texi:25708
+#: doc/guix.texi:29655
 #, no-wrap
 msgid "{Scheme Variable} %dicod-database:gcide"
 msgstr "{Variable Scheme} %dicod-database:gcide"
 
 #. type: defvr
-#: doc/guix.texi:25711
+#: doc/guix.texi:29658
 msgid "A @code{<dicod-database>} object serving the GNU Collaborative International Dictionary of English using the @code{gcide} package."
 msgstr "Un objeto @code{<dicod-service>} que ofrece el diccionario internacional colaborativo de inglés de GNU usando el paquete @code{gcide}."
 
 #. type: Plain text
-#: doc/guix.texi:25714
+#: doc/guix.texi:29661
 msgid "The following is an example @code{dicod-service} configuration."
 msgstr "A continuación se encuentra un ejemplo de configuración de @code{dicod-service}."
 
 #. type: lisp
-#: doc/guix.texi:25729
+#: doc/guix.texi:29676
 #, no-wrap
 msgid ""
 "(dicod-service #:config\n"
@@ -49695,207 +56873,385 @@ msgstr ""
 "                    %dicod-database:gcide))))\n"
 
 #. type: cindex
-#: doc/guix.texi:25731
+#: doc/guix.texi:29678
 #, no-wrap
 msgid "Docker"
 msgstr "Docker"
 
 #. type: subsubheading
-#: doc/guix.texi:25732
+#: doc/guix.texi:29679
 #, no-wrap
 msgid "Docker Service"
 msgstr "Servicio Docker"
 
 #. type: Plain text
-#: doc/guix.texi:25735
+#: doc/guix.texi:29682
 msgid "The @code{(gnu services docker)} module provides the following services."
 msgstr "El módulo @code{(gnu services docker)} proporciona los siguientes servicios."
 
 #. type: defvr
-#: doc/guix.texi:25736
+#: doc/guix.texi:29683
 #, no-wrap
 msgid "{Scheme Variable} docker-service-type"
 msgstr "{Variable Scheme} docker-service-type"
 
 # FUZZY
 #. type: defvr
-#: doc/guix.texi:25741
+#: doc/guix.texi:29688
 msgid "This is the type of the service that runs @url{https://www.docker.com,Docker}, a daemon that can execute application bundles (sometimes referred to as ``containers'') in isolated environments."
 msgstr "Este es el tipo del servicio que ejecuta @url{https://www.docker.com, Docker}, un daemon que puede ejecutar empaquetados de aplicaciones (a los que a veces nos referimos como ``contenedores'') en entornos aislados."
 
 #. type: deftp
-#: doc/guix.texi:25744
+#: doc/guix.texi:29691
 #, no-wrap
 msgid "{Data Type} docker-configuration"
 msgstr "{Tipo de datos} docker-configuration"
 
 #. type: deftp
-#: doc/guix.texi:25746
+#: doc/guix.texi:29693
 msgid "This is the data type representing the configuration of Docker and Containerd."
 msgstr "Este es el tipo de datos que representa la configuración de Docker y Containerd."
 
 #. type: item
-#: doc/guix.texi:25749
+#: doc/guix.texi:29696
 #, no-wrap
 msgid "@code{package} (default: @code{docker})"
 msgstr "@code{package} (predeterminado: @code{docker})"
 
 #. type: table
-#: doc/guix.texi:25751
-msgid "The Docker package to use."
-msgstr "El paquete de Docker usado."
+#: doc/guix.texi:29698
+msgid "The Docker daemon package to use."
+msgstr "El paquete de daemon de Docker usado."
+
+#. type: item
+#: doc/guix.texi:29699
+#, no-wrap
+msgid "@code{package} (default: @code{docker-cli})"
+msgstr "@code{package} (predeterminado: @code{docker-cli})"
+
+#. type: table
+#: doc/guix.texi:29701
+msgid "The Docker client package to use."
+msgstr "El paquete de cliente de Docker usado."
 
 #. type: item
-#: doc/guix.texi:25752
+#: doc/guix.texi:29702
 #, no-wrap
 msgid "@code{containerd} (default: @var{containerd})"
 msgstr "@code{containerd} (predeterminado: @var{containerd})"
 
 #. type: table
-#: doc/guix.texi:25754
+#: doc/guix.texi:29704
 msgid "The Containerd package to use."
 msgstr "El paquete Containerd usado."
 
+#. type: item
+#: doc/guix.texi:29705
+#, no-wrap
+msgid "@code{proxy} (default @var{docker-libnetwork-cmd-proxy})"
+msgstr "@code{proxy} (predeterminado: @var{docker-libnetwork-cmd-proxy})"
+
+# FUZZY FUZZY FUZZY
+#. type: table
+#: doc/guix.texi:29707
+msgid "The Docker user-land networking proxy package to use."
+msgstr "La pasarela de espacio de usuario para red de Docker usada."
+
+#. type: item
+#: doc/guix.texi:29708
+#, no-wrap
+msgid "@code{enable-proxy?} (default @code{#t})"
+msgstr "@code{enable-proxy?} (predeterminado: @code{#t})"
+
+# FUZZY FUZZY FUZZY
+#. type: table
+#: doc/guix.texi:29710
+msgid "Enable or disable the use of the Docker user-land networking proxy."
+msgstr "Activa o desactiva el uso de la pasarela de espacio de usuario para red de Docker."
+
+#. type: item
+#: doc/guix.texi:29711
+#, no-wrap
+msgid "@code{debug?} (default @code{#f})"
+msgstr "@code{debug?} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:29713
+msgid "Enable or disable debug output."
+msgstr "Activa o desactiva la salida de depuración."
+
+#. type: item
+#: doc/guix.texi:29714
+#, no-wrap
+msgid "@code{enable-iptables?} (default @code{#t})"
+msgstr "@code{enable-iptables?} (predeterminado: @code{#t})"
+
+#. type: table
+#: doc/guix.texi:29716
+msgid "Enable or disable the addition of iptables rules."
+msgstr "Activa o desactiva la adición de reglas para iptables."
+
 #. type: cindex
-#: doc/guix.texi:25758
+#: doc/guix.texi:29720
+#, no-wrap
+msgid "Singularity, container service"
+msgstr "Singularity, servicio de contenedores"
+
+#. type: defvr
+#: doc/guix.texi:29721
+#, no-wrap
+msgid "{Scheme Variable} singularity-service-type"
+msgstr "{Variable Scheme} singularity-service-type"
+
+# FUZZY
+#. type: defvr
+#: doc/guix.texi:29726
+msgid "This is the type of the service that allows you to run @url{https://www.sylabs.io/singularity/, Singularity}, a Docker-style tool to create and run application bundles (aka. ``containers'').  The value for this service is the Singularity package to use."
+msgstr "Tipo de servicio que le permite ejecutar @url{https://www.sylabs.io/singularity/, Singularity}, una herramienta tipo-Docker para crear y ejecutar aplicaciones empaquetadas (también conocidas como ``contenedores''). El valor para este servicio es el paquete de Singularity usado."
+
+# FUZZY
+#. type: defvr
+#: doc/guix.texi:29730
+msgid "The service does not install a daemon; instead, it installs helper programs as setuid-root (@pxref{Setuid Programs}) such that unprivileged users can invoke @command{singularity run} and similar commands."
+msgstr "El servicio no instala un daemon; en vez de ello, instala programas auxiliares con con el bit setuid de root (@pxref{Setuid Programs}) de modo que usuarias sin privilegios puedan ejecutar @command{singularity run} y ordenes similares."
+
+#. type: cindex
+#: doc/guix.texi:29732
 #, no-wrap
 msgid "Audit"
 msgstr "Audit"
 
 #. type: subsubheading
-#: doc/guix.texi:25759
+#: doc/guix.texi:29733
 #, no-wrap
 msgid "Auditd Service"
 msgstr "Servicio Auditd"
 
 #. type: Plain text
-#: doc/guix.texi:25762
+#: doc/guix.texi:29736
 msgid "The @code{(gnu services auditd)} module provides the following service."
 msgstr "El módulo @code{(gnu services auditd)} proporciona el servicio siguiente:"
 
 #. type: defvr
-#: doc/guix.texi:25763
+#: doc/guix.texi:29737
 #, no-wrap
 msgid "{Scheme Variable} auditd-service-type"
 msgstr "{Variable Scheme} auditd-service-type"
 
 # FUZZY
 #. type: defvr
-#: doc/guix.texi:25768
+#: doc/guix.texi:29742
 msgid "This is the type of the service that runs @url{https://people.redhat.com/sgrubb/audit/,auditd}, a daemon that tracks security-relevant information on your system."
 msgstr "Este es el tipo del servicio que ejecuta @url{https://people.redhat.com/sgrubb/audit/,auditd}, un daemon que recolecta información relevante a la seguridad en su sistema."
 
 #. type: defvr
-#: doc/guix.texi:25770
+#: doc/guix.texi:29744
 msgid "Examples of things that can be tracked:"
 msgstr "Ejemplos de cosas que se pueden recolectar:"
 
 #. type: enumerate
-#: doc/guix.texi:25774
+#: doc/guix.texi:29748
 msgid "File accesses"
-msgstr "Acceso a ficheros"
+msgstr "Acceso a archivos"
 
 #. type: enumerate
-#: doc/guix.texi:25776
+#: doc/guix.texi:29750
 msgid "System calls"
 msgstr "Llamadas al sistema"
 
 #. type: enumerate
-#: doc/guix.texi:25778
+#: doc/guix.texi:29752
 msgid "Invoked commands"
 msgstr "Órdenes invocadas"
 
 #. type: enumerate
-#: doc/guix.texi:25780
+#: doc/guix.texi:29754
 msgid "Failed login attempts"
 msgstr "Intentos fallidos de ingreso en el sistema"
 
 #. type: enumerate
-#: doc/guix.texi:25782
+#: doc/guix.texi:29756
 msgid "Firewall filtering"
 msgstr "Activaciones de filtros en el cortafuegos"
 
 #. type: enumerate
-#: doc/guix.texi:25784
+#: doc/guix.texi:29758
 msgid "Network access"
 msgstr "Accesos de red"
 
 # FUZZY
 #. type: defvr
-#: doc/guix.texi:25793
-msgid "@command{auditctl} from the @code{audit} package can be used in order to add or remove events to be tracked (until the next reboot).  In order to permanently track events, put the command line arguments of auditctl into @file{/etc/audit/audit.rules}.  @command{aureport} from the @code{audit} package can be used in order to view a report of all recorded events.  The audit daemon usually logs into the directory @file{/var/log/audit}."
-msgstr "Se puede usar @command{auditctl} del paquete @code{audit} para añadir o eliminar eventos a recolectar (hasta el siguiente reinicio). Para hacer permanente la recolección de dichos eventos, introduzca los parámetros de la línea de órdenes de auditctl en @file{/etc/audit/audit.rules}. Se puede usar @command{aureport} del paquete @code{audit} para ver un informe de todos los eventos registrados. El daemon audit habitualmente registra los eventos en el fichero @file{/var/log/audit}."
+#: doc/guix.texi:29769
+msgid "@command{auditctl} from the @code{audit} package can be used in order to add or remove events to be tracked (until the next reboot).  In order to permanently track events, put the command line arguments of auditctl into a file called @code{audit.rules} in the configuration directory (see below).  @command{aureport} from the @code{audit} package can be used in order to view a report of all recorded events.  The audit daemon by default logs into the file @file{/var/log/audit.log}."
+msgstr "Puede usarse @command{auditctl} del paquete @code{audit} para añadir o eliminar eventos a recolectar (hasta el siguiente reinicio). Para hacer permanente la recolección de dichos eventos, introduzca los parámetros de la línea de órdenes de auditctl en un archivo llamado @file{audit.rules} del directorio de configuración (véase a continuación). También se puede usar @command{aureport} del paquete @code{audit} para ver un informe de todos los eventos registrados. El daemon audit habitualmente registra los eventos en el archivo @file{/var/log/audit}."
 
 #. type: deftp
-#: doc/guix.texi:25796
+#: doc/guix.texi:29772
 #, no-wrap
 msgid "{Data Type} auditd-configuration"
 msgstr "{Tipo de datos} auditd-configuration"
 
 #. type: deftp
-#: doc/guix.texi:25798
+#: doc/guix.texi:29774
 msgid "This is the data type representing the configuration of auditd."
 msgstr "Este es el tipo de datos que representa la configuración de auditd."
 
 #. type: item
-#: doc/guix.texi:25801
+#: doc/guix.texi:29777
 #, no-wrap
 msgid "@code{audit} (default: @code{audit})"
 msgstr "@code{audit} (predeterminado: @code{audit})"
 
 #. type: table
-#: doc/guix.texi:25803
+#: doc/guix.texi:29779
 msgid "The audit package to use."
 msgstr "El paquete audit usado."
 
-#. type: defvr
-#: doc/guix.texi:25807
+#. type: item
+#: doc/guix.texi:29780
 #, no-wrap
-msgid "{Scheme Variable} singularity-service-type"
-msgstr "{Variable Scheme} singularity-service-type"
+msgid "@code{configuration-directory} (default: @code{%default-auditd-configuration-directory})"
+msgstr "@code{configuration-directory} (predeterminado: @code{%default-auditd-configuration-directory})"
+
+#. type: table
+#: doc/guix.texi:29784
+msgid "The directory containing the configuration file for the audit package, which must be named @code{auditd.conf}, and optionally some audit rules to instantiate on startup."
+msgstr "Directorio que contiene el archivo de configuración para el paquete audit, cuyo nombre debe ser @code{auditd.conf}, y de manera opcional reglas de audit que se instanciarán en el arranque."
+
+#. type: cindex
+#: doc/guix.texi:29788
+#, no-wrap
+msgid "rshiny"
+msgstr "rshiny"
+
+#. type: subsubheading
+#: doc/guix.texi:29789
+#, no-wrap
+msgid "R-Shiny service"
+msgstr "servicio R-Shiny"
+
+#. type: Plain text
+#: doc/guix.texi:29792
+msgid "The @code{(gnu services science)} module provides the following service."
+msgstr "El módulo @code{(gnu services science)} proporciona el siguiente servicio."
 
-# FUZZY
 #. type: defvr
-#: doc/guix.texi:25812
-msgid "This is the type of the service that allows you to run @url{https://www.sylabs.io/singularity/, Singularity}, a Docker-style tool to create and run application bundles (aka. ``containers'').  The value for this service is the Singularity package to use."
-msgstr "Tipo de servicio que le permite ejecutar @url{https://www.sylabs.io/singularity/, Singularity}, una herramienta tipo-Docker para crear y ejecutar aplicaciones empaquetadas (también conocidas como ``contenedores''). El valor para este servicio es el paquete de Singularity usado."
+#: doc/guix.texi:29793
+#, no-wrap
+msgid "{Scheme Variable} rshiny-service-type"
+msgstr "{Variable Scheme} rshiny-service-type"
 
-# FUZZY
 #. type: defvr
-#: doc/guix.texi:25816
-msgid "The service does not install a daemon; instead, it installs helper programs as setuid-root (@pxref{Setuid Programs}) such that unprivileged users can invoke @command{singularity run} and similar commands."
-msgstr "El servicio no instala un daemon; en vez de ello, instala programas auxiliares con con el bit setuid de root (@pxref{Setuid Programs}) de modo que usuarias sin privilegios puedan ejecutar @command{singularity run} y ordenes similares."
+#: doc/guix.texi:29798
+msgid "This is a type of service which is used to run a webapp created with @code{r-shiny}.  This service sets the @env{R_LIBS_USER} environment variable and runs the provided script to call @code{runApp}."
+msgstr "Tipo de servicio usado para ejecutar una aplicación web creada con @code{r-shiny}. Este servicio proporciona el valor adecuado a la variable de entorno @env{R_LIBS_USER} y ejecuta el guión proporcionado para llamar a @code{runApp}."
+
+#. type: deftp
+#: doc/guix.texi:29799
+#, no-wrap
+msgid "{Data Type} rshiny-configuration"
+msgstr "{Tipo de datos} rshiny-configuration"
+
+#. type: deftp
+#: doc/guix.texi:29801
+msgid "This is the data type representing the configuration of rshiny."
+msgstr "Este es el tipo de datos que representa la configuración del rshiny."
+
+#. type: item
+#: doc/guix.texi:29804
+#, no-wrap
+msgid "@code{package} (default: @code{r-shiny})"
+msgstr "@code{package} (predeterminado: @code{r-shiny})"
+
+#. type: table
+#: doc/guix.texi:29806
+msgid "The package to use."
+msgstr "El paquete usado."
+
+#. type: item
+#: doc/guix.texi:29807
+#, no-wrap
+msgid "@code{binary} (defaunlt @code{\"rshiny\"})"
+msgstr "@code{binary} (predeterminado: @code{\"rshiny\"})"
+
+#. type: table
+#: doc/guix.texi:29810
+msgid "The name of the binary or shell script located at @code{package/bin/} to run when the service is run."
+msgstr "Nombre del binario o del guión en el directorio @code{paquete/bin/} ejecutado cuando se arranca este servicio."
+
+#. type: table
+#: doc/guix.texi:29812
+msgid "The common way to create this file is as follows:"
+msgstr "La manera habitual de crear este archivo es la siguiente:"
+
+#. type: lisp
+#: doc/guix.texi:29830
+#, no-wrap
+msgid ""
+"@dots{}\n"
+"(let* ((out       (assoc-ref %outputs \"out\"))\n"
+"       (targetdir (string-append out \"/share/\" ,name))\n"
+"       (app       (string-append out \"/bin/\" ,name))\n"
+"       (Rbin      (string-append (assoc-ref %build-inputs \"r-min\")\n"
+"                                 \"/bin/Rscript\")))\n"
+"  ;; @dots{}\n"
+"  (mkdir-p (string-append out \"/bin\"))\n"
+"  (call-with-output-file app\n"
+"    (lambda (port)\n"
+"      (format port\n"
+"\"#!~a\n"
+"library(shiny)\n"
+"setwd(\\\"~a\\\")\n"
+"runApp(launch.browser=0, port=4202)~%\\n\"\n"
+"      Rbin targetdir))))\n"
+msgstr ""
+"@dots{}\n"
+"(let* ((out       (assoc-ref %outputs \"out\"))\n"
+"       (targetdir (string-append out \"/share/\" ,name))\n"
+"       (app       (string-append out \"/bin/\" ,name))\n"
+"       (Rbin      (string-append (assoc-ref %build-inputs \"r-min\")\n"
+"                                 \"/bin/Rscript\")))\n"
+"  ;; @dots{}\n"
+"  (mkdir-p (string-append out \"/bin\"))\n"
+"  (call-with-output-file app\n"
+"    (lambda (port)\n"
+"      (format port\n"
+"\"#!~a\n"
+"library(shiny)\n"
+"setwd(\\\"~a\\\")\n"
+"runApp(launch.browser=0, port=4202)~%\\n\"\n"
+"      Rbin targetdir))))\n"
 
 #. type: cindex
-#: doc/guix.texi:25818
+#: doc/guix.texi:29836
 #, no-wrap
 msgid "Nix"
 msgstr "Nix"
 
 #. type: subsubheading
-#: doc/guix.texi:25819
+#: doc/guix.texi:29837
 #, no-wrap
 msgid "Nix service"
 msgstr "Servicio Nix"
 
 #. type: Plain text
-#: doc/guix.texi:25822
+#: doc/guix.texi:29840
 msgid "The @code{(gnu services nix)} module provides the following service."
 msgstr "El módulo @code{(gnu services nix)} proporciona el siguiente servicio."
 
 #. type: defvr
-#: doc/guix.texi:25823
+#: doc/guix.texi:29841
 #, no-wrap
 msgid "{Scheme Variable} nix-service-type"
 msgstr "{Variable Scheme} nix-service-type"
 
 #. type: defvr
-#: doc/guix.texi:25828
+#: doc/guix.texi:29846
 msgid "This is the type of the service that runs build daemon of the @url{https://nixos.org/nix/, Nix} package manager.  Here is an example showing how to use it:"
 msgstr "Tipo del servicio que ejecuta el daemon de construcción del gestor de paquetes @url{https://nixos.org/nix/, Nix}. Este es un ejemplo de cómo usarlo:"
 
 #. type: lisp
-#: doc/guix.texi:25833
+#: doc/guix.texi:29851
 #, no-wrap
 msgid ""
 "(use-modules (gnu))\n"
@@ -49909,7 +57265,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:25838
+#: doc/guix.texi:29856
 #, no-wrap
 msgid ""
 "(operating-system\n"
@@ -49925,7 +57281,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:25841
+#: doc/guix.texi:29859
 #, no-wrap
 msgid ""
 "  (services (append (list (service nix-service-type))\n"
@@ -49935,30 +57291,30 @@ msgstr ""
 "                    %base-services)))\n"
 
 #. type: defvr
-#: doc/guix.texi:25844
+#: doc/guix.texi:29862
 msgid "After @command{guix system reconfigure} configure Nix for your user:"
 msgstr "Tras @command{guix system reconfigure}, configure Nix para su usuaria:"
 
 #. type: item
-#: doc/guix.texi:25846
+#: doc/guix.texi:29864
 #, no-wrap
 msgid "Add a Nix channel and update it.  See"
 msgstr "Añada un canal Nix y lance una actualización. Véase"
 
 # TODO: TRANSLATION?
 #. type: itemize
-#: doc/guix.texi:25848
+#: doc/guix.texi:29866
 msgid "@url{https://nixos.org/nix/manual/, Nix Package Manager Guide}."
-msgstr "@url{https://nixos.org/nix/manual/, Nix Package Manager Guide}."
+msgstr "@url{https://nixos.org/nix/manual/, la guía del gestor de paquetes Nix}."
 
 #. type: item
-#: doc/guix.texi:25849
+#: doc/guix.texi:29867
 #, no-wrap
 msgid "Create a symlink to your profile and activate Nix profile:"
 msgstr "Cree un enlace simbólico a su perfil y active el perfil de Nix:"
 
 #. type: example
-#: doc/guix.texi:25855
+#: doc/guix.texi:29873
 #, no-wrap
 msgid ""
 "$ ln -s \"/nix/var/nix/profiles/per-user/$USER/profile\" ~/.nix-profile\n"
@@ -49967,194 +57323,243 @@ msgstr ""
 "$ ln -s \"/nix/var/nix/profiles/per-user/$USER/profile\" ~/.nix-profile\n"
 "$ source /run/current-system/profile/etc/profile.d/nix.sh\n"
 
+#. type: deftp
+#: doc/guix.texi:29877
+#, no-wrap
+msgid "{Data Type} nix-configuration"
+msgstr "{Tipo de datos} nix-configuration"
+
+#. type: deftp
+#: doc/guix.texi:29879
+msgid "This data type represents the configuration of the Nix daemon."
+msgstr "Este tipo de datos representa la configuración del daemon de Nix."
+
+#. type: item
+#: doc/guix.texi:29881
+#, no-wrap
+msgid "@code{nix} (default: @code{nix})"
+msgstr "@code{nix} (predeterminado: @code{nix})"
+
+#. type: table
+#: doc/guix.texi:29883
+msgid "The Nix package to use."
+msgstr "El paquete Nix usado."
+
+#. type: item
+#: doc/guix.texi:29884
+#, no-wrap
+msgid "@code{sandbox} (default: @code{#t})"
+msgstr "@code{sandbox} (predeterminado: @code{#t})"
+
+#. type: table
+#: doc/guix.texi:29886
+msgid "Specifies whether builds are sandboxed by default."
+msgstr "Especifica si las construcciones se ejecutan en un entorno aislado (``sandbox'') de manera predeterminada."
+
+#. type: item
+#: doc/guix.texi:29887
+#, no-wrap
+msgid "@code{build-sandbox-items} (default: @code{'()})"
+msgstr "@code{build-sandbox-items} (predeterminada: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:29890
+msgid "This is a list of strings or objects appended to the @code{build-sandbox-items} field of the configuration file."
+msgstr "Lista de cadenas u objetos añadida al final del campo @code{build-sandbox-items} en el archivo de configuración."
+
+#. type: table
+#: doc/guix.texi:29898
+msgid "Extra command line options for @code{nix-service-type}."
+msgstr "Opciones de línea de órdenes adicionales para @command{nix-service-type}."
+
 #. type: cindex
-#: doc/guix.texi:25862
+#: doc/guix.texi:29904
 #, no-wrap
 msgid "setuid programs"
 msgstr "programas con setuid"
 
 #. type: Plain text
-#: doc/guix.texi:25872
-msgid "Some programs need to run with ``root'' privileges, even when they are launched by unprivileged users.  A notorious example is the @command{passwd} program, which users can run to change their password, and which needs to access the @file{/etc/passwd} and @file{/etc/shadow} files---something normally restricted to root, for obvious security reasons.  To address that, these executables are @dfn{setuid-root}, meaning that they always run with root privileges (@pxref{How Change Persona,,, libc, The GNU C Library Reference Manual}, for more info about the setuid mechanism.)"
-msgstr "Algunos programas necesitan ejecutarse con privilegios de ``root'', incluso cuando se ejecutan por usuarias sin privilegios. Un ejemplo notable es el programa @command{passwd}, que las usuarias ejecutan para cambiar su contraseña, y que necesita acceso a los ficheros @file{/etc/passwd} y @file{/etc/shadow}---algo normalmente restringido a root, por razones de seguridad obvias. Para solventarlo, estos ejecutables tienen @dfn{setuid de root}, lo que significa que siempre se ejecutan con privilegios de root (@pxref{How Change Persona,,, libc, The GNU C Library Reference Manual}, para más información sobre el mecanismo setuid)."
+#: doc/guix.texi:29914
+msgid "Some programs need to run with ``root'' privileges, even when they are launched by unprivileged users.  A notorious example is the @command{passwd} program, which users can run to change their password, and which needs to access the @file{/etc/passwd} and @file{/etc/shadow} files---something normally restricted to root, for obvious security reasons.  To address that, these executables are @dfn{setuid-root}, meaning that they always run with root privileges (@pxref{How Change Persona,,, libc, The GNU C Library Reference Manual}, for more info about the setuid mechanism)."
+msgstr "Algunos programas necesitan ejecutarse con privilegios de administradora (``root''), incluso cuando se ejecutan por usuarias sin privilegios. Un ejemplo notable es el programa @command{passwd}, que las usuarias ejecutan para cambiar su contraseña, y que necesita acceso a los archivos @file{/etc/passwd} y @file{/etc/shadow}---un acceso normalmente normalmente restringido a la cuenta de administración, por razones de seguridad obvias. Para solventarlo, estos ejecutables tienen una marca @dfn{setuid de ``root''}, lo que significa que siempre se ejecutan con los privilegios de dicha cuenta (@pxref{How Change Persona,,, libc, The GNU C Library Reference Manual}, para más información sobre el mecanismo setuid)."
 
 #. type: Plain text
-#: doc/guix.texi:25879
+#: doc/guix.texi:29921
 msgid "The store itself @emph{cannot} contain setuid programs: that would be a security issue since any user on the system can write derivations that populate the store (@pxref{The Store}).  Thus, a different mechanism is used: instead of changing the setuid bit directly on files that are in the store, we let the system administrator @emph{declare} which programs should be setuid root."
-msgstr "El almacén en sí @emph{no puede} contener programas setuid: sería un problema de seguridad puesto que cualquier usuaria del sistema puede escribir derivaciones que pueblen el almacén (@pxref{The Store}). Por tanto, se usa un mecanismo diferente: en vez de cambiar el bit de setuid directamente en los ficheros que se encuentran en el almacén, se permite que la administradora del sistema @emph{declare} qué programas deberían tener setuid de root."
+msgstr "El almacén en sí @emph{no puede} contener programas setuid: sería un problema de seguridad puesto que cualquier usuaria del sistema puede escribir derivaciones que pueblen el almacén (@pxref{The Store}). Por tanto, se usa un mecanismo diferente: en vez de cambiar el bit de setuid directamente en los archivos que se encuentran en el almacén, se permite que la administradora del sistema @emph{declare} qué programas deberían tener setuid de root."
 
 #. type: Plain text
-#: doc/guix.texi:25885
+#: doc/guix.texi:29927
 msgid "The @code{setuid-programs} field of an @code{operating-system} declaration contains a list of G-expressions denoting the names of programs to be setuid-root (@pxref{Using the Configuration System}).  For instance, the @command{passwd} program, which is part of the Shadow package, can be designated by this G-expression (@pxref{G-Expressions}):"
 msgstr "El campo @code{setuid-programs} de una declaración @code{operating-system} contiene una lista de expresiones-G que denotan nombres de programas que tendrán setuid de root (@pxref{Using the Configuration System}). Por ejemplo, el programa @command{passwd}, que es parte del paquete Shadow, puede designarse con esta expresión-G (@pxref{G-Expressions}):"
 
 #. type: example
-#: doc/guix.texi:25888
+#: doc/guix.texi:29930
 #, no-wrap
 msgid "#~(string-append #$shadow \"/bin/passwd\")\n"
 msgstr "#~(string-append #$shadow \"/bin/passwd\")\n"
 
 #. type: Plain text
-#: doc/guix.texi:25892
+#: doc/guix.texi:29934
 msgid "A default set of setuid programs is defined by the @code{%setuid-programs} variable of the @code{(gnu system)} module."
 msgstr "Un conjunto predeterminado de programas con el bit setuid se define en la variable @code{%setuid-programs} del módulo @code{(gnu system)}."
 
 #. type: defvr
-#: doc/guix.texi:25893
+#: doc/guix.texi:29935
 #, no-wrap
 msgid "{Scheme Variable} %setuid-programs"
 msgstr "{Variable Scheme} %setuid-programs"
 
 # FUZZY
 #. type: defvr
-#: doc/guix.texi:25895
+#: doc/guix.texi:29937
 msgid "A list of G-expressions denoting common programs that are setuid-root."
 msgstr "Una lista de expresiones-G que denotan programas comunes que se marcan con setuid de root."
 
 #. type: defvr
-#: doc/guix.texi:25898
+#: doc/guix.texi:29940
 msgid "The list includes commands such as @command{passwd}, @command{ping}, @command{su}, and @command{sudo}."
 msgstr "La lista incluye órdenes como @command{passwd}, @command{ping}, @command{su} y @command{sudo}."
 
 #. type: Plain text
-#: doc/guix.texi:25904
+#: doc/guix.texi:29946
 msgid "Under the hood, the actual setuid programs are created in the @file{/run/setuid-programs} directory at system activation time.  The files in this directory refer to the ``real'' binaries, which are in the store."
-msgstr "Para su implementación, los programas con setuid reales se crean en el directorio @file{/run/setuid-programs} durante la activación del sistema. Los ficheros en este directorio hacen referencia a los binarios ``reales'', que están en el almacén."
+msgstr "Para su implementación, los programas con setuid reales se crean en el directorio @file{/run/setuid-programs} durante la activación del sistema. Los archivos en este directorio hacen referencia a los binarios ``reales'', que están en el almacén."
 
 #. type: cindex
-#: doc/guix.texi:25908
+#: doc/guix.texi:29950
 #, no-wrap
 msgid "HTTPS, certificates"
 msgstr "HTTPS, certificados"
 
 #. type: cindex
-#: doc/guix.texi:25909
+#: doc/guix.texi:29951
 #, no-wrap
 msgid "X.509 certificates"
 msgstr "certificados X.509"
 
 #. type: cindex
-#: doc/guix.texi:25910
+#: doc/guix.texi:29952
 #, no-wrap
 msgid "TLS"
 msgstr "TLS"
 
 # FUZZY
 #. type: Plain text
-#: doc/guix.texi:25917
+#: doc/guix.texi:29959
 msgid "Web servers available over HTTPS (that is, HTTP over the transport-layer security mechanism, TLS) send client programs an @dfn{X.509 certificate} that the client can then use to @emph{authenticate} the server.  To do that, clients verify that the server's certificate is signed by a so-called @dfn{certificate authority} (CA).  But to verify the CA's signature, clients must have first acquired the CA's certificate."
 msgstr "En las conexiones HTTPS a servidores Web (esto es, HTTP sobre el mecanismo de seguridad de la capa de transporte, TLS) se envía a los programas clientes un @dfn{certificado X.509} que el cliente puede usar para @emph{autentificar} al servidor. Para hacerlo, los clientes verifican que el certificado del servidor está firmado por una de las llamadas @dfn{autoridades de certificación} (AC, CA en inglés). Pero para verificar la firma de una AC, los clientes deben haber obtenido previamente el certificado de dicha AC."
 
 # FUZZY
 #. type: Plain text
-#: doc/guix.texi:25921
+#: doc/guix.texi:29963
 msgid "Web browsers such as GNU@tie{}IceCat include their own set of CA certificates, such that they are able to verify CA signatures out-of-the-box."
 msgstr "Los navegadores Web como GNU@tie{}IceCat incluyen su propio conjunto de certificados de AC, de manera que pueden verificar las firmas independientemente."
 
 # FUZZY
 #. type: Plain text
-#: doc/guix.texi:25925
+#: doc/guix.texi:29967
 msgid "However, most other programs that can talk HTTPS---@command{wget}, @command{git}, @command{w3m}, etc.---need to be told where CA certificates can be found."
 msgstr "No obstante, a la mayor parte de otros programas que pueden comunicarse a través de HTTPS---@command{wget}, @command{git}, @command{w3m}, etc.---se les debe informar de dónde pueden encontrar los certificados de CA."
 
 # FUZZY
 #. type: Plain text
-#: doc/guix.texi:25932
+#: doc/guix.texi:29974
 msgid "In Guix, this is done by adding a package that provides certificates to the @code{packages} field of the @code{operating-system} declaration (@pxref{operating-system Reference}).  Guix includes one such package, @code{nss-certs}, which is a set of CA certificates provided as part of Mozilla's Network Security Services."
 msgstr "En Guix, esto se lleva a cabo mediante la adición de un paquete que proporcione certificados en el campo @code{packages} de la declaración @code{operating-system} (@pxref{operating-system Reference}). Guix incluye un paquete de este tipo, @code{nss-certs}, compuesto por un conjunto de certificados de CA proporcionados como parte de los servicios de seguridad de red de Mozilla (NSS)."
 
 # FUZZY
 #. type: Plain text
-#: doc/guix.texi:25937
+#: doc/guix.texi:29979
 msgid "Note that it is @emph{not} part of @code{%base-packages}, so you need to explicitly add it.  The @file{/etc/ssl/certs} directory, which is where most applications and libraries look for certificates by default, points to the certificates installed globally."
 msgstr "Fíjese que @emph{no} es parte de @code{%base-packages}, por lo que debe ser añadido explícitamente. El directorio @file{/etc/ssl/certs}, donde la mayor parte de las aplicaciones y bibliotecas buscarán los certificados de manera predeterminada, enlaza a los certificados instalados de manera global."
 
 # FUZZY
 #. type: Plain text
-#: doc/guix.texi:25947
-msgid "Unprivileged users, including users of Guix on a foreign distro, can also install their own certificate package in their profile.  A number of environment variables need to be defined so that applications and libraries know where to find them.  Namely, the OpenSSL library honors the @code{SSL_CERT_DIR} and @code{SSL_CERT_FILE} variables.  Some applications add their own environment variables; for instance, the Git version control system honors the certificate bundle pointed to by the @code{GIT_SSL_CAINFO} environment variable.  Thus, you would typically run something like:"
-msgstr "Las usuarias sin privilegios, incluyendo a usuarias de Guix en una distribución distinta, pueden también instalar su propio paquete de certificados en su perfil. Es necesario definir cierto número de variables de entorno de manera que las aplicaciones y bibliotecas sepan dónde encontrarlos. Por ejemplo, la biblioteca OpenSSL inspecciona las variables @code{SSL_CERT_DIR} y @code{SSL_CERT_FILE}. Algunas aplicaciones añaden sus variables de entorno propias; por ejemplo, el sistema de control de versiones Git inspecciona el empaquetado de certificados al que apunta la variable de entorno @code{GIT_SSL_CAINFO}. Por tanto, en el caso típico se debe ejecutar algo parecido a esto:"
+#: doc/guix.texi:29989
+msgid "Unprivileged users, including users of Guix on a foreign distro, can also install their own certificate package in their profile.  A number of environment variables need to be defined so that applications and libraries know where to find them.  Namely, the OpenSSL library honors the @env{SSL_CERT_DIR} and @env{SSL_CERT_FILE} variables.  Some applications add their own environment variables; for instance, the Git version control system honors the certificate bundle pointed to by the @env{GIT_SSL_CAINFO} environment variable.  Thus, you would typically run something like:"
+msgstr "Las usuarias sin privilegios, incluyendo a usuarias de Guix en una distribución distinta, pueden también instalar su propio paquete de certificados en su perfil. Es necesario definir cierto número de variables de entorno de manera que las aplicaciones y bibliotecas sepan dónde encontrarlos. Por ejemplo, la biblioteca OpenSSL inspecciona las variables @env{SSL_CERT_DIR} y @env{SSL_CERT_FILE}. Algunas aplicaciones añaden sus variables de entorno propias; por ejemplo, el sistema de control de versiones Git inspecciona el empaquetado de certificados al que apunta la variable de entorno @env{GIT_SSL_CAINFO}. Por tanto, en el caso típico se debe ejecutar algo parecido a esto:"
 
 #. type: example
-#: doc/guix.texi:25953
+#: doc/guix.texi:29995
 #, no-wrap
 msgid ""
-"$ guix install nss-certs\n"
-"$ export SSL_CERT_DIR=\"$HOME/.guix-profile/etc/ssl/certs\"\n"
-"$ export SSL_CERT_FILE=\"$HOME/.guix-profile/etc/ssl/certs/ca-certificates.crt\"\n"
-"$ export GIT_SSL_CAINFO=\"$SSL_CERT_FILE\"\n"
+"guix install nss-certs\n"
+"export SSL_CERT_DIR=\"$HOME/.guix-profile/etc/ssl/certs\"\n"
+"export SSL_CERT_FILE=\"$HOME/.guix-profile/etc/ssl/certs/ca-certificates.crt\"\n"
+"export GIT_SSL_CAINFO=\"$SSL_CERT_FILE\"\n"
 msgstr ""
-"$ guix install nss-certs\n"
-"$ export SSL_CERT_DIR=\"$HOME/.guix-profile/etc/ssl/certs\"\n"
-"$ export SSL_CERT_FILE=\"$HOME/.guix-profile/etc/ssl/certs/ca-certificates.crt\"\n"
-"$ export GIT_SSL_CAINFO=\"$SSL_CERT_FILE\"\n"
+"guix install nss-certs\n"
+"export SSL_CERT_DIR=\"$HOME/.guix-profile/etc/ssl/certs\"\n"
+"export SSL_CERT_FILE=\"$HOME/.guix-profile/etc/ssl/certs/ca-certificates.crt\"\n"
+"export GIT_SSL_CAINFO=\"$SSL_CERT_FILE\"\n"
 
 # FUZZY
 #. type: Plain text
-#: doc/guix.texi:25958
-msgid "As another example, R requires the @code{CURL_CA_BUNDLE} environment variable to point to a certificate bundle, so you would have to run something like this:"
-msgstr "Como otro ejemplo, R necesita que la variable de entorno @code{CURL_CA_BUNDLE} apunte al empaquetado de certificados, de manera que se debe ejecutar algo parecido a esto:"
+#: doc/guix.texi:30000
+msgid "As another example, R requires the @env{CURL_CA_BUNDLE} environment variable to point to a certificate bundle, so you would have to run something like this:"
+msgstr "Como otro ejemplo, R necesita que la variable de entorno @env{CURL_CA_BUNDLE} apunte al empaquetado de certificados, de manera que se debe ejecutar algo parecido a esto:"
 
 #. type: example
-#: doc/guix.texi:25962
+#: doc/guix.texi:30004
 #, no-wrap
 msgid ""
-"$ guix install nss-certs\n"
-"$ export CURL_CA_BUNDLE=\"$HOME/.guix-profile/etc/ssl/certs/ca-certificates.crt\"\n"
+"guix install nss-certs\n"
+"export CURL_CA_BUNDLE=\"$HOME/.guix-profile/etc/ssl/certs/ca-certificates.crt\"\n"
 msgstr ""
-"$ guix install nss-certs\n"
-"$ export CURL_CA_BUNDLE=\"$HOME/.guix-profile/etc/ssl/certs/ca-certificates.crt\"\n"
+"guix install nss-certs\n"
+"export CURL_CA_BUNDLE=\"$HOME/.guix-profile/etc/ssl/certs/ca-certificates.crt\"\n"
 
 # FUZZY
 #. type: Plain text
-#: doc/guix.texi:25966
+#: doc/guix.texi:30008
 msgid "For other applications you may want to look up the required environment variable in the relevant documentation."
 msgstr "Para otras aplicaciones puede tener que buscar la variable de entorno necesaria en la documentación relevante."
 
 # FUZZY
 # TODO: Comprobar traducción de libc
 #. type: cindex
-#: doc/guix.texi:25971
+#: doc/guix.texi:30013
 #, no-wrap
 msgid "name service switch"
 msgstr "selector de servicios de nombres"
 
 #. type: cindex
-#: doc/guix.texi:25972
+#: doc/guix.texi:30014
 #, no-wrap
 msgid "NSS"
 msgstr "NSS"
 
 # FUZZY
 #. type: Plain text
-#: doc/guix.texi:25981
+#: doc/guix.texi:30023
 msgid "The @code{(gnu system nss)} module provides bindings to the configuration file of the libc @dfn{name service switch} or @dfn{NSS} (@pxref{NSS Configuration File,,, libc, The GNU C Library Reference Manual}).  In a nutshell, the NSS is a mechanism that allows libc to be extended with new ``name'' lookup methods for system databases, which includes host names, service names, user accounts, and more (@pxref{Name Service Switch, System Databases and Name Service Switch,, libc, The GNU C Library Reference Manual})."
-msgstr "El módulo @code{(gnu system nss)} proporciona una interfaz con el fichero de configuración del @dfn{selector de servicios de nombres} o @dfn{NSS} (@pxref{NSS Configuration File,,, libc, The GNU C Library Reference Manual}). En resumen, NSS es un mecanismo que permite la extensión de libc con nuevos métodos de búsqueda de ``nombres'', lo que incluye nombres de máquinas, nombres de servicios, cuentas de usuaria y más (@pxref{Name Service Switch, System Databases and Name Service Switch,, libc, The GNU C Library Reference Manual})."
+msgstr "El módulo @code{(gnu system nss)} proporciona una interfaz con el archivo de configuración del @dfn{selector de servicios de nombres} o @dfn{NSS} (@pxref{NSS Configuration File,,, libc, The GNU C Library Reference Manual}). En resumen, NSS es un mecanismo que permite la extensión de libc con nuevos métodos de búsqueda de ``nombres'', lo que incluye nombres de máquinas, nombres de servicios, cuentas de usuaria y más (@pxref{Name Service Switch, System Databases and Name Service Switch,, libc, The GNU C Library Reference Manual})."
 
 #. type: Plain text
-#: doc/guix.texi:25988
+#: doc/guix.texi:30030
 msgid "The NSS configuration specifies, for each system database, which lookup method is to be used, and how the various methods are chained together---for instance, under which circumstances NSS should try the next method in the list.  The NSS configuration is given in the @code{name-service-switch} field of @code{operating-system} declarations (@pxref{operating-system Reference, @code{name-service-switch}})."
 msgstr "La configuración de NSS especifica, para cada base de datos del sistema, que método de búsqueda debe ser usado, y cómo los varios métodos se enlazan entre sí---por ejemplo, bajo qué circunstancias NSS deberá probar con el siguiente método en la lista. La configuración de NSS se proporciona en el campo @code{name-service-switch} de las declaraciones @code{operating-system} (@pxref{operating-system Reference, @code{name-service-switch}})."
 
 #. type: cindex
-#: doc/guix.texi:25989
+#: doc/guix.texi:30031
 #, no-wrap
 msgid "nss-mdns"
 msgstr "nss-mdns"
 
 #. type: cindex
-#: doc/guix.texi:25990
+#: doc/guix.texi:30032
 #, no-wrap
 msgid ".local, host name lookup"
 msgstr ".local, búsqueda de nombres de máquina"
 
 #. type: Plain text
-#: doc/guix.texi:25995
+#: doc/guix.texi:30037
 msgid "As an example, the declaration below configures the NSS to use the @uref{https://0pointer.de/lennart/projects/nss-mdns/, @code{nss-mdns} back-end}, which supports host name lookups over multicast DNS (mDNS)  for host names ending in @code{.local}:"
 msgstr "Como ejemplo, la siguiente declaración configura NSS para que use el @uref{https://0pointer.de/lennart/projects/nss-mdns/, motor @code{nss-mdns}}, que permite las búsquedas de nombres de máquinas sobre DNS multicast (mDNS) para nombres de máquinas terminados en @code{.local}:"
 
 #. type: lisp
-#: doc/guix.texi:25999
+#: doc/guix.texi:30041
 #, no-wrap
 msgid ""
 "(name-service-switch\n"
@@ -50166,7 +57571,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:26004
+#: doc/guix.texi:30046
 #, no-wrap
 msgid ""
 "                ;; If the above did not succeed, try\n"
@@ -50182,7 +57587,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:26010
+#: doc/guix.texi:30052
 #, no-wrap
 msgid ""
 "                  ;; 'mdns_minimal' is authoritative for\n"
@@ -50201,7 +57606,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:26014
+#: doc/guix.texi:30056
 #, no-wrap
 msgid ""
 "                ;; Then fall back to DNS.\n"
@@ -50215,7 +57620,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:26018
+#: doc/guix.texi:30060
 #, no-wrap
 msgid ""
 "                ;; Finally, try with the \"full\" 'mdns'.\n"
@@ -50227,160 +57632,160 @@ msgstr ""
 "                  (name \"mdns\")))))\n"
 
 #. type: Plain text
-#: doc/guix.texi:26023
+#: doc/guix.texi:30065
 msgid "Do not worry: the @code{%mdns-host-lookup-nss} variable (see below)  contains this configuration, so you will not have to type it if all you want is to have @code{.local} host lookup working."
 msgstr "No se preocupe: la variable @code{%mdns-host-lookup-nss} (véase a continuación) contiene esta configuración, de manera que no tiene que escribirla si todo lo que desea es que funcione la búsqueda de nombres de máquina en @code{.local}."
 
 # FUZZY
 #. type: Plain text
-#: doc/guix.texi:26031
+#: doc/guix.texi:30073
 msgid "Note that, in this case, in addition to setting the @code{name-service-switch} of the @code{operating-system} declaration, you also need to use @code{avahi-service-type} (@pxref{Networking Services, @code{avahi-service-type}}), or @code{%desktop-services}, which includes it (@pxref{Desktop Services}).  Doing this makes @code{nss-mdns} accessible to the name service cache daemon (@pxref{Base Services, @code{nscd-service}})."
 msgstr "Fíjese que, en este caso, además de establecer el valor de @code{name-service-switch} en la declaración @code{operating-system}, es necesario también usar el servicio @code{avahi-service-type} (@pxref{Networking Services, @code{avahi-service-type}}) o @code{%desktop-services}, donde está incluido. Esto permite el acceso a @code{nss-mdsn} desde el daemon de la caché del servicio de nombres (@pxref{Base Services, @code{nscd-service}})."
 
 #. type: Plain text
-#: doc/guix.texi:26034
+#: doc/guix.texi:30076
 msgid "For convenience, the following variables provide typical NSS configurations."
 msgstr "Por conveniencia, las siguientes variables proporcionan configuraciones NSS típicas."
 
 #. type: defvr
-#: doc/guix.texi:26035
+#: doc/guix.texi:30077
 #, no-wrap
 msgid "{Scheme Variable} %default-nss"
 msgstr "{Variable Scheme} %default-nss"
 
 #. type: defvr
-#: doc/guix.texi:26038
+#: doc/guix.texi:30080
 msgid "This is the default name service switch configuration, a @code{name-service-switch} object."
 msgstr "Esta es la configuración predeterminada del selector de servicios de nombres, un objeto @code{name-service-switch}."
 
 #. type: defvr
-#: doc/guix.texi:26040
+#: doc/guix.texi:30082
 #, no-wrap
 msgid "{Scheme Variable} %mdns-host-lookup-nss"
 msgstr "{Variable Scheme} %mdns-host-lookup-nss"
 
 #. type: defvr
-#: doc/guix.texi:26043
+#: doc/guix.texi:30085
 msgid "This is the name service switch configuration with support for host name lookup over multicast DNS (mDNS) for host names ending in @code{.local}."
 msgstr "Esta es la configuración del selector de servicios de nombres que permite la búsqueda de nombres de máquinas por DNS multicast (mDNS) para nombres de máquinas terminados en @code{.local}."
 
 #. type: Plain text
-#: doc/guix.texi:26053
+#: doc/guix.texi:30095
 msgid "The reference for name service switch configuration is given below.  It is a direct mapping of the configuration file format of the C library , so please refer to the C library manual for more information (@pxref{NSS Configuration File,,, libc, The GNU C Library Reference Manual}).  Compared to the configuration file format of libc NSS, it has the advantage not only of adding this warm parenthetic feel that we like, but also static checks: you will know about syntax errors and typos as soon as you run @command{guix system}."
-msgstr "La referencia de la configuración del selector de servicios de nombres se proporciona a continuación. Tiene una asociación directa con el formato del fichero de configuración de la biblioteca C, por lo que se recomienda el manual de la biblioteca C para obtener más información (@pxref{NSS Configuration File,,, libc, The GNU C Library Reference Manual}). En comparación con el formato del fichero de configuración del NSS de libc, no solo tiene solo la ventaja de la cálida sensación proporcionada por la adición de paréntesis que tanto nos gustan, sino que también tiene comprobaciones estáticas: conocerá los errores sintácticos y tipográficos con la ejecución de @command{guix system}."
+msgstr "La referencia de la configuración del selector de servicios de nombres se proporciona a continuación. Tiene una asociación directa con el formato del archivo de configuración de la biblioteca C, por lo que se recomienda el manual de la biblioteca C para obtener más información (@pxref{NSS Configuration File,,, libc, The GNU C Library Reference Manual}). En comparación con el formato del archivo de configuración del NSS de libc, no solo tiene solo la ventaja de la cálida sensación proporcionada por la adición de paréntesis que tanto nos gustan, sino que también tiene comprobaciones estáticas: conocerá los errores sintácticos y tipográficos con la ejecución de @command{guix system}."
 
 #. type: deftp
-#: doc/guix.texi:26054
+#: doc/guix.texi:30096
 #, no-wrap
 msgid "{Data Type} name-service-switch"
 msgstr "{Tipo de datos} name-service-switch"
 
 #. type: deftp
-#: doc/guix.texi:26059
+#: doc/guix.texi:30101
 msgid "This is the data type representation the configuration of libc's name service switch (NSS).  Each field below represents one of the supported system databases."
 msgstr "El tipo de datos que representa la configuración del selector de servicios de nombres (NSS). Cada campo a continuación representa una de las bases de datos del sistema admitidas."
 
 #. type: item
-#: doc/guix.texi:26061
+#: doc/guix.texi:30103
 #, no-wrap
 msgid "aliases"
 msgstr "aliases"
 
 #. type: itemx
-#: doc/guix.texi:26062
+#: doc/guix.texi:30104
 #, no-wrap
 msgid "ethers"
 msgstr "ethers"
 
 #. type: itemx
-#: doc/guix.texi:26064
+#: doc/guix.texi:30106
 #, no-wrap
 msgid "gshadow"
 msgstr "gshadow"
 
 #. type: itemx
-#: doc/guix.texi:26065
+#: doc/guix.texi:30107
 #, no-wrap
 msgid "hosts"
 msgstr "hosts"
 
 #. type: itemx
-#: doc/guix.texi:26066
+#: doc/guix.texi:30108
 #, no-wrap
 msgid "initgroups"
 msgstr "initgroups"
 
 #. type: itemx
-#: doc/guix.texi:26067
+#: doc/guix.texi:30109
 #, no-wrap
 msgid "netgroup"
 msgstr "netgroup"
 
 #. type: itemx
-#: doc/guix.texi:26068
+#: doc/guix.texi:30110
 #, no-wrap
 msgid "networks"
 msgstr "networks"
 
 #. type: itemx
-#: doc/guix.texi:26070
+#: doc/guix.texi:30112
 #, no-wrap
 msgid "public-key"
 msgstr "public-key"
 
 #. type: itemx
-#: doc/guix.texi:26071
+#: doc/guix.texi:30113
 #, no-wrap
 msgid "rpc"
 msgstr "rpc"
 
 #. type: itemx
-#: doc/guix.texi:26073
+#: doc/guix.texi:30115
 #, no-wrap
 msgid "shadow"
 msgstr "shadow"
 
 #. type: table
-#: doc/guix.texi:26076
+#: doc/guix.texi:30118
 msgid "The system databases handled by the NSS.  Each of these fields must be a list of @code{<name-service>} objects (see below)."
 msgstr "Las bases de datos del sistema que maneja el NSS. Cada uno de estos campos debe ser una lista de objetos @code{<name-service>} (véase a continuación)."
 
 #. type: deftp
-#: doc/guix.texi:26079
+#: doc/guix.texi:30121
 #, no-wrap
 msgid "{Data Type} name-service"
 msgstr "{Tipo de datos} name-service"
 
 #. type: deftp
-#: doc/guix.texi:26083
+#: doc/guix.texi:30125
 msgid "This is the data type representing an actual name service and the associated lookup action."
 msgstr "Este es el tipo de datos que representa un servicio de nombres real y la acción de búsqueda asociada."
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:26088
+#: doc/guix.texi:30130
 msgid "A string denoting the name service (@pxref{Services in the NSS configuration,,, libc, The GNU C Library Reference Manual})."
 msgstr "Una cadena que denota el nombre de servicio (@pxref{Services in the NSS configuration,,, libc, The GNU C Library Reference Manual})."
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:26093
+#: doc/guix.texi:30135
 msgid "Note that name services listed here must be visible to nscd.  This is achieved by passing the @code{#:name-services} argument to @code{nscd-service} the list of packages providing the needed name services (@pxref{Base Services, @code{nscd-service}})."
 msgstr "Fíjese que los servicios de nombres enumerados aquí deben ser visibles para nscd. Esto se consigue mediante la adición del parámetro @code{#:name-services} a @code{nscd-service} con la lista de paquetes que proporcionan los servicios de nombres necesarios (@pxref{Base Services, @code{nscd-service}})."
 
 #. type: item
-#: doc/guix.texi:26094
+#: doc/guix.texi:30136
 #, no-wrap
 msgid "reaction"
 msgstr "reaction"
 
 #. type: table
-#: doc/guix.texi:26098
+#: doc/guix.texi:30140
 msgid "An action specified using the @code{lookup-specification} macro (@pxref{Actions in the NSS configuration,,, libc, The GNU C Library Reference Manual}).  For example:"
 msgstr "Una acción especificada mediante el uso del macro @code{lookup-specification} (@pxref{Actions in the NSS configuration,,, libc, The GNU C Library Reference Manual}). Por ejemplo:"
 
 #. type: lisp
-#: doc/guix.texi:26102
+#: doc/guix.texi:30144
 #, no-wrap
 msgid ""
 "(lookup-specification (unavailable => continue)\n"
@@ -50390,17 +57795,17 @@ msgstr ""
 "                      (success => return))\n"
 
 #. type: Plain text
-#: doc/guix.texi:26116
+#: doc/guix.texi:30158
 msgid "For bootstrapping purposes, the Linux-Libre kernel is passed an @dfn{initial RAM disk}, or @dfn{initrd}.  An initrd contains a temporary root file system as well as an initialization script.  The latter is responsible for mounting the real root file system, and for loading any kernel modules that may be needed to achieve that."
-msgstr "Para el propósito del arranque inicial, se le proporciona al núcleo Linux-libre un @dfn{disco inicial de RAM}, o @dfn{initrd}. Un initrd contiene un sistema de ficheros raíz temporal así como un guión de inicialización. Este último es responsable del montaje del sistema de ficheros raíz real, así como de la carga de cualquier módulo del núcleo que pueda ser necesario para esta tarea."
+msgstr "Para el propósito del arranque inicial, se le proporciona al núcleo Linux-libre un @dfn{disco inicial en RAM}, o @dfn{initrd}. Un initrd contiene un sistema de archivos raíz temporal así como un guión de inicialización. Este último es responsable del montaje del sistema de archivos raíz real, así como de la carga de cualquier módulo del núcleo que pueda ser necesario para esta tarea."
 
 #. type: Plain text
-#: doc/guix.texi:26125
+#: doc/guix.texi:30167
 msgid "The @code{initrd-modules} field of an @code{operating-system} declaration allows you to specify Linux-libre kernel modules that must be available in the initrd.  In particular, this is where you would list modules needed to actually drive the hard disk where your root partition is---although the default value of @code{initrd-modules} should cover most use cases.  For example, assuming you need the @code{megaraid_sas} module in addition to the default modules to be able to access your root file system, you would write:"
-msgstr "El campo @code{initrd-modules} de una declaración @code{operating-system} le permite especificar qué módulos del núcleo Linux-libre deben estar disponibles en el initrd. En particular, aquí es donde se debe enumerar los módulos que controlen realmente el disco duro donde su partición raíz se encuentre---aunque el valor predeterminado de @code{initrd-modules} debería cubrir la mayor parte de casos de uso. Por ejemplo, en caso de necesitar el módulo @code{megaraid_sas} además de los módulos predeterminados para poder acceder a sistema de ficheros raíz, se podría escribir:"
+msgstr "El campo @code{initrd-modules} de una declaración @code{operating-system} le permite especificar qué módulos del núcleo Linux-libre deben estar disponibles en el initrd. En particular, aquí es donde se debe enumerar los módulos que controlen realmente el disco duro donde su partición raíz se encuentre---aunque el valor predeterminado de @code{initrd-modules} debería cubrir la mayor parte de casos de uso. Por ejemplo, en caso de necesitar el módulo @code{megaraid_sas} además de los módulos predeterminados para poder acceder a sistema de archivos raíz, se podría escribir:"
 
 #. type: lisp
-#: doc/guix.texi:26130
+#: doc/guix.texi:30172
 #, no-wrap
 msgid ""
 "(operating-system\n"
@@ -50412,28 +57817,28 @@ msgstr ""
 "  (initrd-modules (cons \"megaraid_sas\" %base-initrd-modules)))\n"
 
 #. type: defvr
-#: doc/guix.texi:26132
+#: doc/guix.texi:30174
 #, no-wrap
 msgid "{Scheme Variable} %base-initrd-modules"
 msgstr "{Variable Scheme} %base-initrd-modules"
 
 #. type: defvr
-#: doc/guix.texi:26134
+#: doc/guix.texi:30176
 msgid "This is the list of kernel modules included in the initrd by default."
 msgstr "Esta es la lista de módulos del núcleo que se incluyen en el initrd predeterminado."
 
 #. type: Plain text
-#: doc/guix.texi:26142
+#: doc/guix.texi:30184
 msgid "Furthermore, if you need lower-level customization, the @code{initrd} field of an @code{operating-system} declaration allows you to specify which initrd you would like to use.  The @code{(gnu system linux-initrd)} module provides three ways to build an initrd: the high-level @code{base-initrd} procedure and the low-level @code{raw-initrd} and @code{expression->initrd} procedures."
 msgstr "Más allá, si necesita personalizaciones de un nivel más bajo, el campo @code{initrd} de una declaración @code{operating-system} le permite especificar qué initrd desea usar. El módulo @code{(gnu system linux-initrd)} proporciona tres formas de construir un initrd: el procedimiento de alto nivel @code{base-initrd} y los procedimientos de bajo nivel @code{raw-initrd} y @code{expression->initrd}."
 
 #. type: Plain text
-#: doc/guix.texi:26147
+#: doc/guix.texi:30189
 msgid "The @code{base-initrd} procedure is intended to cover most common uses.  For example, if you want to add a bunch of kernel modules to be loaded at boot time, you can define the @code{initrd} field of the operating system declaration like this:"
 msgstr "El procedimiento @code{base-initrd} está pensado para cubrir la mayor parte de usos comunes. Por ejemplo, si desea añadir algunos módulos del núcleo que deben cargarse durante el arranque, puede definir el campo @code{initrd} de la declaración de sistema operativo de esta forma:"
 
 #. type: lisp
-#: doc/guix.texi:26155
+#: doc/guix.texi:30197
 #, no-wrap
 msgid ""
 "(initrd (lambda (file-systems . rest)\n"
@@ -50443,396 +57848,444 @@ msgid ""
 "                 #:qemu-networking? #t\n"
 "                 rest)))\n"
 msgstr ""
-"(initrd (lambda (sistemas-de-ficheros . resto)\n"
+"(initrd (lambda (sistemas-de-archivos . resto)\n"
 "          ;; Crea un initrd estándar pero configura la red\n"
 "          ;; con los parámetros que QEMU espera por omisión.\n"
-"          (apply base-initrd sistemas-de-ficheros\n"
+"          (apply base-initrd sistemas-de-archivos\n"
 "                 #:qemu-networking? #t\n"
 "                 resto)))\n"
 
 # FUZZY
 # MAAV (TODO): Live... Debería traducirlo
 #. type: Plain text
-#: doc/guix.texi:26160
+#: doc/guix.texi:30202
 msgid "The @code{base-initrd} procedure also handles common use cases that involves using the system as a QEMU guest, or as a ``live'' system with volatile root file system."
-msgstr "El procedimiento @code{base-initrd} también maneja casos de uso comunes que implican el uso del sistema en un anfitrión QEMU, o como un sistema ``live'' con un sistema de ficheros raíz volátil."
+msgstr "El procedimiento @code{base-initrd} también maneja casos de uso comunes que implican el uso del sistema en un anfitrión QEMU, o como un sistema ``live'' con un sistema de archivos raíz volátil."
 
 # FUZZY
 #. type: Plain text
-#: doc/guix.texi:26167
+#: doc/guix.texi:30209
 msgid "The @code{base-initrd} procedure is built from @code{raw-initrd} procedure.  Unlike @code{base-initrd}, @code{raw-initrd} doesn't do anything high-level, such as trying to guess which kernel modules and packages should be included to the initrd. An example use of @code{raw-initrd} is when a user has a custom Linux kernel configuration and default kernel modules included by @code{base-initrd} are not available."
 msgstr "El procedimiento @code{base-initrd} se construye sobre el procedimiento @code{raw-initrd}. Al contrario que @code{base-initrd}, @code{raw-initrd} no funciona a alto nivel, como sería intentar deducir qué módulos del núcleo y paquetes deben incluirse en el initrd. Un ejemplo de uso de @code{raw-initrd} es cuando una usuaria tiene personalizada una configuración del núcleo Linux y los módulos predeterminados del núcleo que incluye @code{base-initrd} no están disponibles."
 
 # FUZZY
 #. type: Plain text
-#: doc/guix.texi:26172
+#: doc/guix.texi:30214
 msgid "The initial RAM disk produced by @code{base-initrd} or @code{raw-initrd} honors several options passed on the Linux kernel command line (that is, arguments passed @i{via} the @code{linux} command of GRUB, or the @code{-append} option of QEMU), notably:"
-msgstr "El disco inicial de RAM producido por @code{base-initrd} o @code{raw-initrd} inspecciona varias opciones proporcionadas por la línea de órdenes al núcleo Linux (esto es, argumentos pasados a través de la orden @code{linux} de GRUB, o de la opción @code{-append} de QEMU), notablemente:"
+msgstr "El disco inicial en RAM producido por @code{base-initrd} o @code{raw-initrd} inspecciona varias opciones proporcionadas por la línea de órdenes al núcleo Linux (esto es, argumentos pasados a través de la orden @code{linux} de GRUB, o de la opción @code{-append} de QEMU), notablemente:"
 
 #. type: item
-#: doc/guix.texi:26174
+#: doc/guix.texi:30216
 #, no-wrap
 msgid "--load=@var{boot}"
 msgstr "--load=@var{arranque}"
 
 #. type: table
-#: doc/guix.texi:26177
+#: doc/guix.texi:30219
 msgid "Tell the initial RAM disk to load @var{boot}, a file containing a Scheme program, once it has mounted the root file system."
-msgstr "Indica al disco de RAM inicial que cargue @var{arranque}, un fichero que contiene un programa Scheme, una vez haya montado el sistema de ficheros raíz."
+msgstr "Indica al disco de RAM inicial que cargue @var{arranque}, un archivo que contiene un programa Scheme, una vez haya montado el sistema de archivos raíz."
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:26181
+#: doc/guix.texi:30223
 msgid "Guix uses this option to yield control to a boot program that runs the service activation programs and then spawns the GNU@tie{}Shepherd, the initialization system."
 msgstr "Guix usa esta opción para proporcionar el control a un programa de arranque que ejecuta los programas de activación de servicios y lanza GNU@tie{}Shepherd, el sistema de inicialización."
 
 #. type: item
-#: doc/guix.texi:26182
+#: doc/guix.texi:30224
 #, no-wrap
 msgid "--root=@var{root}"
 msgstr "--root=@var{raíz}"
 
 #. type: table
-#: doc/guix.texi:26186
-msgid "Mount @var{root} as the root file system.  @var{root} can be a device name like @code{/dev/sda1}, a file system label, or a file system UUID."
-msgstr "Monta @var{raíz} como el sistema de ficheros raíz. @var{raíz} puede ser un nombre de dispositivo como @code{/dev/sda1}, una etiqueta del sistema de ficheros o un UUID del sistema de ficheros."
+#: doc/guix.texi:30229
+msgid "Mount @var{root} as the root file system.  @var{root} can be a device name like @code{/dev/sda1}, a file system label, or a file system UUID.  When unspecified, the device name from the root file system of the operating system declaration is used."
+msgstr "Monta @var{raíz} como el sistema de archivos raíz. @var{raíz} puede ser un nombre de dispositivo como @code{/dev/sda1}, una etiqueta del sistema de archivos o un UUID del sistema de archivos. Si no se proporciona se usa el nombre del sistema de archivos raíz de la declaración del sistema operativo."
 
 #. type: table
-#: doc/guix.texi:26190
+#: doc/guix.texi:30233
 msgid "Have @file{/run/booted-system} and @file{/run/current-system} point to @var{system}."
 msgstr "Hace que @file{/run/booted-system} y @file{/run/current-system} apunten a @var{sistema}."
 
 #. type: item
-#: doc/guix.texi:26191
+#: doc/guix.texi:30234
 #, no-wrap
 msgid "modprobe.blacklist=@var{modules}@dots{}"
 msgstr "modprobe.blacklist=@var{módulos}@dots{}"
 
 #. type: cindex
-#: doc/guix.texi:26192
+#: doc/guix.texi:30235
 #, no-wrap
 msgid "module, black-listing"
 msgstr "módulo, lista negra"
 
 #. type: cindex
-#: doc/guix.texi:26193
+#: doc/guix.texi:30236
 #, no-wrap
 msgid "black list, of kernel modules"
 msgstr "lista negra, de módulos del núcleo"
 
 #. type: table
-#: doc/guix.texi:26198
+#: doc/guix.texi:30241
 msgid "Instruct the initial RAM disk as well as the @command{modprobe} command (from the kmod package) to refuse to load @var{modules}.  @var{modules} must be a comma-separated list of module names---e.g., @code{usbkbd,9pnet}."
-msgstr "Indica al disco inicial de RAM así como a la orden @command{modprobe} (del paquete kmod) que deben negarse a cargar @var{módulos}. @var{módulos} debe ser una lista separada por comas de nombres de módulos---por ejemplo, @code{usbkbd,9pnet}."
+msgstr "Indica al disco inicial en RAM así como a la orden @command{modprobe} (del paquete kmod) que deben negarse a cargar @var{módulos}. @var{módulos} debe ser una lista separada por comas de nombres de módulos---por ejemplo, @code{usbkbd,9pnet}."
 
 #. type: item
-#: doc/guix.texi:26199
+#: doc/guix.texi:30242
 #, no-wrap
 msgid "--repl"
 msgstr "--repl"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:26205
+#: doc/guix.texi:30248
 msgid "Start a read-eval-print loop (REPL) from the initial RAM disk before it tries to load kernel modules and to mount the root file system.  Our marketing team calls it @dfn{boot-to-Guile}.  The Schemer in you will love it.  @xref{Using Guile Interactively,,, guile, GNU Guile Reference Manual}, for more information on Guile's REPL."
-msgstr "Inicia una sesión interactiva (REPL) desde el disco inicial de RAM antes de que intente cargar los módulos del núcleo y del montaje del sistema de ficheros raíz. Nuestro departamento comercial lo llama @dfn{arranca-en-Guile}. Como amante de Scheme, lo adorará. @xref{Using Guile Interactively,,, guile, GNU Guile Reference Manual}, para más información sobre sesiones interactivas Guile."
+msgstr "Inicia una sesión interactiva (REPL) desde el disco inicial en RAM antes de que intente cargar los módulos del núcleo y del montaje del sistema de archivos raíz. Nuestro departamento comercial lo llama @dfn{arranca-en-Guile}. Como amante de Scheme, lo adorará. @xref{Using Guile Interactively,,, guile, GNU Guile Reference Manual}, para más información sobre sesiones interactivas Guile."
 
 # FUZZY
 #. type: Plain text
-#: doc/guix.texi:26211
+#: doc/guix.texi:30254
 msgid "Now that you know all the features that initial RAM disks produced by @code{base-initrd} and @code{raw-initrd} provide, here is how to use it and customize it further."
-msgstr "Una vez conocidas todas las características que proporcionan los discos iniciales de RAM que producen @code{base-initrd} y @code{raw-initrd}, a continuación veremos cómo usarlas y personalizarlos más aún."
+msgstr "Una vez conocidas todas las características que proporcionan los discos iniciales en RAM que producen @code{base-initrd} y @code{raw-initrd}, a continuación veremos cómo usarlas y personalizarlos más aún."
 
 #. type: deffn
-#: doc/guix.texi:26214
+#: doc/guix.texi:30257
 #, no-wrap
 msgid "{Scheme Procedure} raw-initrd @var{file-systems} @"
-msgstr "{Procedimiento Scheme} raw-initrd @var{sistemas-de-ficheros} @"
+msgstr "{Procedimiento Scheme} raw-initrd @var{sistemas-de-archivos} @"
 
 #. type: deffn
-#: doc/guix.texi:26227
-msgid "[#:linux-modules '()] [#:mapped-devices '()] @ [#:keyboard-layout #f] @ [#:helper-packages '()] [#:qemu-networking? #f] [#:volatile-root? #f] Return a derivation that builds a raw initrd.  @var{file-systems} is a list of file systems to be mounted by the initrd, possibly in addition to the root file system specified on the kernel command line via @code{--root}.  @var{linux-modules} is a list of kernel modules to be loaded at boot time.  @var{mapped-devices} is a list of device mappings to realize before @var{file-systems} are mounted (@pxref{Mapped Devices}).  @var{helper-packages} is a list of packages to be copied in the initrd. It may include @code{e2fsck/static} or other packages needed by the initrd to check the root file system."
+#: doc/guix.texi:30270
+msgid "[#:linux-modules '()] [#:mapped-devices '()] @ [#:keyboard-layout #f] @ [#:helper-packages '()] [#:qemu-networking? #f] [#:volatile-root? #f] Return a derivation that builds a raw initrd.  @var{file-systems} is a list of file systems to be mounted by the initrd, possibly in addition to the root file system specified on the kernel command line via @option{--root}.  @var{linux-modules} is a list of kernel modules to be loaded at boot time.  @var{mapped-devices} is a list of device mappings to realize before @var{file-systems} are mounted (@pxref{Mapped Devices}).  @var{helper-packages} is a list of packages to be copied in the initrd. It may include @code{e2fsck/static} or other packages needed by the initrd to check the root file system."
 msgstr ""
 "[#:linux-modules '()] [#:mapped-devices '()] @ [#:keyboard-layout #f] @ [#:helper-packages '()] [#:qemu-networking? #f] [#:volatile-root? #f]\n"
-"Devuelve una derivación que construye una imagen de inicio en RAM (initrd) en crudo. @var{sistemas-de-ficheros} es una lista de sistemas de ficheros que serán montados por initrd, posiblemente en adición al sistema de ficheros raíz especificado en la línea de órdenes del núcleo vía @code{--root}. @var{linux-modules} es una lista de módulos del núcleo a ser cargados en tiempo de arranque. @var{mapped-devices} es una lista de dispositivos asociados a realizar antes de montar @var{sistemas-de-ficheros} (@pxref{Mapped Devices}). @var{helper-packages} es una lista de paquetes a ser copiados en el initrd. Puede incluir @code{e2fsck/static} o otros paquetes necesarios en la imagen de RAM para comprobar el sistema de ficheros raíz."
+"Devuelve una derivación que construye una imagen de inicio en RAM (initrd) en crudo. @var{sistemas-de-archivos} es una lista de sistemas de archivos que serán montados por initrd, posiblemente en adición al sistema de archivos raíz especificado en la línea de órdenes del núcleo vía @option{--root}. @var{linux-modules} es una lista de módulos del núcleo a ser cargados en tiempo de arranque. @var{mapped-devices} es una lista de dispositivos asociados a realizar antes de montar @var{sistemas-de-archivos} (@pxref{Mapped Devices}). @var{helper-packages} es una lista de paquetes a ser copiados en el initrd. Puede incluir @code{e2fsck/static} o otros paquetes necesarios en la imagen de RAM para comprobar el sistema de archivos raíz."
 
 #. type: deffn
-#: doc/guix.texi:26233 doc/guix.texi:26257
+#: doc/guix.texi:30276 doc/guix.texi:30300
 msgid "When true, @var{keyboard-layout} is a @code{<keyboard-layout>} record denoting the desired console keyboard layout.  This is done before @var{mapped-devices} are set up and before @var{file-systems} are mounted such that, should the user need to enter a passphrase or use the REPL, this happens using the intended keyboard layout."
-msgstr "Cuando su valor es verdadero, @var{keyboard-layout} es un registro @code{<keyboard-layout>} que denota la distribución de teclado en consola deseada. Esto se realiza previamente a que los dispositivos configurados en @var{mapped-devices} se inicien y antes de que los sistemas de ficheros en @var{file-systems} se monten, de manera que, en caso de que la usuaria tuviese que introducir una contraseña o usar la sesión interactiva, esto suceda usando la distribución de teclado deseada."
+msgstr "Cuando su valor es verdadero, @var{keyboard-layout} es un registro @code{<keyboard-layout>} que denota la distribución de teclado en consola deseada. Esto se realiza previamente a que los dispositivos configurados en @var{mapped-devices} se inicien y antes de que los sistemas de archivos en @var{file-systems} se monten, de manera que, en caso de que la usuaria tuviese que introducir una contraseña o usar la sesión interactiva, esto suceda usando la distribución de teclado deseada."
 
 #. type: deffn
-#: doc/guix.texi:26237
+#: doc/guix.texi:30280
 msgid "When @var{qemu-networking?} is true, set up networking with the standard QEMU parameters.  When @var{virtio?} is true, load additional modules so that the initrd can be used as a QEMU guest with para-virtualized I/O drivers."
 msgstr "Cuando @var{qemu-networking?} es verdadero, configura la red con los parámetros QEMU estándar. Cuando @var{virtio?} es verdadero, carga módulos adicionales para que la imagen en RAM pueda ser usada como un sistema virtualizado por QEMU con controladores paravirtualizados de E/S."
 
 #. type: deffn
-#: doc/guix.texi:26240
+#: doc/guix.texi:30283
 msgid "When @var{volatile-root?} is true, the root file system is writable but any changes to it are lost."
-msgstr "Cuando @var{volatile-root?} es verdadero, el sistema de ficheros raíz tiene permisos de escritura pero cualquier cambio realizado se perderá."
+msgstr "Cuando @var{volatile-root?} es verdadero, el sistema de archivos raíz tiene permisos de escritura pero cualquier cambio realizado se perderá."
 
 #. type: deffn
-#: doc/guix.texi:26242
+#: doc/guix.texi:30285
 #, no-wrap
 msgid "{Scheme Procedure} base-initrd @var{file-systems} @"
-msgstr "{Procedimiento Scheme} base-initrd @var{sistemas-de-ficheros} @"
+msgstr "{Procedimiento Scheme} base-initrd @var{sistemas-de-archivos} @"
 
 #. type: deffn
-#: doc/guix.texi:26251
-msgid "[#:mapped-devices '()] [#:keyboard-layout #f] @ [#:qemu-networking? #f] [#:volatile-root? #f] @ [#:linux-modules '()] Return as a file-like object a generic initrd, with kernel modules taken from @var{linux}.  @var{file-systems} is a list of file-systems to be mounted by the initrd, possibly in addition to the root file system specified on the kernel command line via @code{--root}.  @var{mapped-devices} is a list of device mappings to realize before @var{file-systems} are mounted."
+#: doc/guix.texi:30294
+msgid "[#:mapped-devices '()] [#:keyboard-layout #f] @ [#:qemu-networking? #f] [#:volatile-root? #f] @ [#:linux-modules '()] Return as a file-like object a generic initrd, with kernel modules taken from @var{linux}.  @var{file-systems} is a list of file-systems to be mounted by the initrd, possibly in addition to the root file system specified on the kernel command line via @option{--root}.  @var{mapped-devices} is a list of device mappings to realize before @var{file-systems} are mounted."
 msgstr ""
-"[#:mapped-devices '()] [#:keyboard-layout #f] [#:qemu-networking? #f] @ [#:volatile-root? #f] @ [#:linux-modules '()]\n"
-"Devuelve como un objeto tipo-fichero una imagen de inicio en RAM genérica, con los módulos del núcleo tomados de @var{linux}. @var{sistemas-de-ficheros} es una lista de sistemas de ficheros listos para ser montados por la imagen, posiblemente en adición al sistema de ficheros raíz especificado en la línea de órdenes del núcleo via @code{--root}. @var{mapped-devices} es una lista de asociación de dispositivos a realizar antes de montar los @var{sistemas-de-ficheros}."
+"[#:mapped-devices '()] [#:keyboard-layout #f] @ [#:qemu-networking? #f] [#:volatile-root? #f] @ [#:linux-modules '()]\n"
+"Devuelve como un objeto tipo-archivo una imagen de inicio en RAM genérica, con los módulos del núcleo tomados de @var{linux}. @var{sistemas-de-archivos} es una lista de sistemas de archivos listos para ser montados por la imagen, posiblemente en adición al sistema de archivos raíz especificado en la línea de órdenes del núcleo via @option{--root}. @var{mapped-devices} es una lista de asociación de dispositivos a realizar antes de montar los @var{sistemas-de-archivos}."
 
 #. type: deffn
-#: doc/guix.texi:26259
+#: doc/guix.texi:30302
 msgid "@var{qemu-networking?} and @var{volatile-root?} behaves as in @code{raw-initrd}."
 msgstr "@var{qemu-networking?} y @var{volatile-root?} funcionan como en @code{raw-initrd}."
 
 #. type: deffn
-#: doc/guix.texi:26264
+#: doc/guix.texi:30307
 msgid "The initrd is automatically populated with all the kernel modules necessary for @var{file-systems} and for the given options.  Additional kernel modules can be listed in @var{linux-modules}.  They will be added to the initrd, and loaded at boot time in the order in which they appear."
-msgstr "El initrd incorpora automáticamente todos los módulos del núcleo necesarios para @var{sistemas-de-ficheros} y para las opciones proporcionadas. Módulos del núcleo adicionales pueden proporcionarse a través de @var{linux-modules}. Se añadirán al initrd y se cargarán en tiempo de arranque en el orden que aparezcan."
+msgstr "El initrd incorpora automáticamente todos los módulos del núcleo necesarios para @var{sistemas-de-archivos} y para las opciones proporcionadas. Módulos del núcleo adicionales pueden proporcionarse a través de @var{linux-modules}. Se añadirán al initrd y se cargarán en tiempo de arranque en el orden que aparezcan."
 
 #. type: Plain text
-#: doc/guix.texi:26271
+#: doc/guix.texi:30314
 msgid "Needless to say, the initrds we produce and use embed a statically-linked Guile, and the initialization program is a Guile program.  That gives a lot of flexibility.  The @code{expression->initrd} procedure builds such an initrd, given the program to run in that initrd."
 msgstr "No es necesario decir que los initrd que producimos y usamos embeben un Guile enlazado estáticamente, y que el programa de inicialización es un programa Guile. Esto proporciona mucha flexibilidad. El procedimiento @code{expression->initrd} construye un initrd de ese tipo, una vez proporcionado el programa a ejecutar en dicho initrd."
 
 #. type: deffn
-#: doc/guix.texi:26272
+#: doc/guix.texi:30315
 #, no-wrap
 msgid "{Scheme Procedure} expression->initrd @var{exp} @"
 msgstr "{Procedimiento Scheme} expression->initrd @var{exp} @"
 
 #. type: deffn
-#: doc/guix.texi:26278
-msgid "[#:guile %guile-static-stripped] [#:name \"guile-initrd\"] Return as a file-like object a Linux initrd (a gzipped cpio archive)  containing @var{guile} and that evaluates @var{exp}, a G-expression, upon booting.  All the derivations referenced by @var{exp} are automatically copied to the initrd."
+#: doc/guix.texi:30321
+msgid "[#:guile %guile-3.0-static-stripped] [#:name \"guile-initrd\"] Return as a file-like object a Linux initrd (a gzipped cpio archive)  containing @var{guile} and that evaluates @var{exp}, a G-expression, upon booting.  All the derivations referenced by @var{exp} are automatically copied to the initrd."
 msgstr ""
-"[#:guile %guile-static-stripped] [#:name \"guile-initrd\"]\n"
-"Devuelve como un objeto tipo-fichero el initrd de Linux (un archivador cpio comprimido con gzip) que contiene @var{guile} y que evalúa a @var{exp}, una expresión-G, al arranque. Todas las derivaciones a las que @var{exp} hace referencia se copian automáticamente en el initrd."
+"[#:guile %guile-3.0-static-stripped] [#:name \"guile-initrd\"]\n"
+"Devuelve como un objeto tipo-archivo el initrd de Linux (un archivador cpio comprimido con gzip) que contiene @var{guile} y que evalúa a @var{exp}, una expresión-G, al arranque. Todas las derivaciones a las que @var{exp} hace referencia se copian automáticamente en el initrd."
 
 #. type: cindex
-#: doc/guix.texi:26284
+#: doc/guix.texi:30327
 #, no-wrap
 msgid "boot loader"
 msgstr "cargador de arranque"
 
 #. type: Plain text
-#: doc/guix.texi:26291
+#: doc/guix.texi:30334
 msgid "The operating system supports multiple bootloaders.  The bootloader is configured using @code{bootloader-configuration} declaration.  All the fields of this structure are bootloader agnostic except for one field, @code{bootloader} that indicates the bootloader to be configured and installed."
 msgstr "El sistema operativo permite varios cargadores de arranque. El cargador de arranque se configura mediante el uso de la declaración @code{bootloader-configuration}. Todos los campos de esta estructura son independientes del cargador de arranque excepto uno, @code{bootloader}, que indica el cargador de arranque a configurar e instalar."
 
 # FUZZY
 #. type: Plain text
-#: doc/guix.texi:26296
+#: doc/guix.texi:30339
 msgid "Some of the bootloaders do not honor every field of @code{bootloader-configuration}.  For instance, the extlinux bootloader does not support themes and thus ignores the @code{theme} field."
 msgstr "Algunos de los cargadores de arranque no inspeccionan todos los campos de @code{bootloader-configuration}. Por ejemplo, el cargador de arranque extlinux no permite temas y por lo tanto ignora el campo @code{theme}."
 
 #. type: deftp
-#: doc/guix.texi:26297
+#: doc/guix.texi:30340
 #, no-wrap
 msgid "{Data Type} bootloader-configuration"
 msgstr "{Tipo de datos} bootloader-configuration"
 
 #. type: deftp
-#: doc/guix.texi:26299
+#: doc/guix.texi:30342
 msgid "The type of a bootloader configuration declaration."
 msgstr "El tipo de una declaración de configuración del cargador de arranque."
 
 #. type: cindex
-#: doc/guix.texi:26303
+#: doc/guix.texi:30346
 #, no-wrap
 msgid "EFI, bootloader"
 msgstr "EFI, cargador de arranque"
 
 #. type: cindex
-#: doc/guix.texi:26304
+#: doc/guix.texi:30347
 #, no-wrap
 msgid "UEFI, bootloader"
 msgstr "UEFI, cargador de arranque"
 
 #. type: cindex
-#: doc/guix.texi:26305
+#: doc/guix.texi:30348
 #, no-wrap
 msgid "BIOS, bootloader"
 msgstr "BIOS, cargador de arranque"
 
 #. type: table
-#: doc/guix.texi:26309
-msgid "The bootloader to use, as a @code{bootloader} object. For now @code{grub-bootloader}, @code{grub-efi-bootloader}, @code{extlinux-bootloader} and @code{u-boot-bootloader} are supported."
-msgstr "El cargador de arranque usado, como un objeto @code{bootloader}. De momento se aceptan @code{grub-bootloader}, @code{grub-efi-bootloader}, @code{extlinux-bootloader} y @code{u-boot-bootloader}."
-
-#. type: table
-#: doc/guix.texi:26315
-msgid "@code{grub-efi-bootloader} allows to boot on modern systems using the @dfn{Unified Extensible Firmware Interface} (UEFI).  This is what you should use if the installation image contains a @file{/sys/firmware/efi} directory when you boot it on your system."
-msgstr "@code{grub-efi-bootloader} permite el arranque en sistemas modernos que usan la @dfn{interfaz extendida de firmware unificada} (UEFI). Es el que debería ser usado si la imagen de instalación contiene un directorio @file{/sys/firmware/efi} cuando la arranca en su sistema."
-
-# FUZZY
-#. type: table
-#: doc/guix.texi:26319
-msgid "@code{grub-bootloader} allows you to boot in particular Intel-based machines in ``legacy'' BIOS mode."
-msgstr "@code{grub-bootloader} permite el arranque en máquinas basadas en Intel en modo ``antiguo'' BIOS."
+#: doc/guix.texi:30353
+msgid "The bootloader to use, as a @code{bootloader} object. For now @code{grub-bootloader}, @code{grub-efi-bootloader}, @code{grub-efi-netboot-bootloader}, @code{extlinux-bootloader} and @code{u-boot-bootloader} are supported."
+msgstr "El cargador de arranque usado, como un objeto @code{bootloader}. De momento se aceptan @code{grub-bootloader}, @code{grub-efi-bootloader}, @code{grub-efi-netboot-bootloader}, @code{extlinux-bootloader} y @code{u-boot-bootloader}."
 
 #. type: cindex
-#: doc/guix.texi:26320
+#: doc/guix.texi:30354
 #, no-wrap
 msgid "ARM, bootloaders"
 msgstr "ARM, cargadores de arranque"
 
 #. type: cindex
-#: doc/guix.texi:26321
+#: doc/guix.texi:30355
 #, no-wrap
 msgid "AArch64, bootloaders"
 msgstr "AArch64, cargadores de arranque"
 
 #. type: table
-#: doc/guix.texi:26326
+#: doc/guix.texi:30360
 msgid "Available bootloaders are described in @code{(gnu bootloader @dots{})} modules.  In particular, @code{(gnu bootloader u-boot)} contains definitions of bootloaders for a wide range of ARM and AArch64 systems, using the @uref{https://www.denx.de/wiki/U-Boot/, U-Boot bootloader}."
 msgstr "Los cargadores de arranque se describen en los módulos @code{(gnu bootloader @dots{})}. En particular, @code{(gnu bootloader u-boot)} contiene definiciones de cargadores de arranque para un amplio rango de sistemas ARM y AArch64, mediante el uso del @uref{https://www.denx.de/wiki/U-Boot/, cargador de arranque U-Boot}."
 
 #. type: table
-#: doc/guix.texi:26330
+#: doc/guix.texi:30366
+msgid "@code{grub-efi-bootloader} allows to boot on modern systems using the @dfn{Unified Extensible Firmware Interface} (UEFI).  This is what you should use if the installation image contains a @file{/sys/firmware/efi} directory when you boot it on your system."
+msgstr "@code{grub-efi-bootloader} permite el arranque en sistemas modernos que usan la @dfn{interfaz extendida de firmware unificada} (UEFI). Es el que debería ser usado si la imagen de instalación contiene un directorio @file{/sys/firmware/efi} cuando la arranca en su sistema."
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:30370
+msgid "@code{grub-bootloader} allows you to boot in particular Intel-based machines in ``legacy'' BIOS mode."
+msgstr "@code{grub-bootloader} permite el arranque en máquinas basadas en Intel en modo ``antiguo'' BIOS."
+
+#. type: vindex
+#: doc/guix.texi:30371
+#, no-wrap
+msgid "grub-efi-netboot-bootloader"
+msgstr "grub-efi-netboot-bootloader"
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:30375
+msgid "@code{grub-efi-netboot-bootloader} allows you to boot your system over network through TFTP.  In combination with an NFS root file system this allows you to build a diskless Guix system."
+msgstr "@code{grub-efi-netboot-bootloader} le permite arrancar su sistema por red mediante el uso de TFTP. En combinación con un sistema de archivos raíz NFS le permite construir un sistema Guix sin discos."
+
+#. type: table
+#: doc/guix.texi:30381
+msgid "The installation of the @code{grub-efi-netboot-bootloader} generates the content of the TFTP root directory at @code{target} (@pxref{Bootloader Configuration, @code{target}}), to be served by a TFTP server.  You may want to mount your TFTP server directory onto @code{target} to move the required files to the TFTP server automatically."
+msgstr "La instalación de @code{grub-efi-netboot-bootloader} genera el contenido del directorio raíz de TFTP en @code{target} (@pxref{Bootloader Configuration, @code{target}}), para que sea proporcionado por un servidor TFTP. Puede que desee montar el directorio de su servidor TFTP sobre @code{target} para mover los archivos necesarios al servidor TFTP de manera automática."
+
+#. type: table
+#: doc/guix.texi:30390
+msgid "If you plan to use an NFS root file system as well (actually if you mount the store from an NFS share), then the TFTP server needs to serve the file @file{/boot/grub/grub.cfg} and other files from the store (like GRUBs background image, the kernel (@pxref{operating-system Reference, @code{kernel}}) and the initrd (@pxref{operating-system Reference, @code{initrd}})), too.  All these files from the store will be accessed by GRUB through TFTP with their normal store path, for example as @file{tftp://tftp-server/gnu/store/…-initrd/initrd.cpio.gz}."
+msgstr "Si tiene pensado usar también un sistema de archivos raíz NFS (en realidad si monta el almacén desde un directorio compartido con NFS) el servidor TFTP también debe proporcionar el archivo @file{/boot/grub/grub.cfg} y otros archivos desde el almacén (como las imágenes de fondo de GRUB, el núcleo (@pxref{operating-system Reference, @code{kernel}}) y el disco en RAM para el arranque (@pxref{operating-system Reference, @code{initrd}})). GRUB accederá a todos estos archivos del almacén a través de TFTP con su ruta del almacén habitual, como por ejemplo @file{tftp://tftp-server/gnu/store/…-initrd/initrd.cpio.gz}."
+
+#. type: table
+#: doc/guix.texi:30398
+msgid "Two symlinks are created to make this possible.  The first symlink is @code{target}@file{/efi/Guix/boot/grub/grub.cfg} pointing to @file{../../../boot/grub/grub.cfg}, where @code{target} may be @file{/boot}.  In this case the link is not leaving the served TFTP root directory, but otherwise it does.  The second link is @code{target}@file{/gnu/store} and points to @file{../gnu/store}.  This link is leaving the served TFTP root directory."
+msgstr "Dos enlaces simbólicos se crean para hacer esto posible. El primer enlace simbólico es @code{target}@file{/efi/Guix/boot/grub/grub.cfg}, el cual apunta a @file{../../../boot/grub/grub.cfg}, donde @code{target} puede ser @file{/boot}. En este caso el enlace no abandona el directorio raíz proporcionado a través de TFTP, pero en otro caso sí lo hace. El segundo enlace es @code{target}@file{/gnu/store} y apunta @file{../gnu/store}. Este enlace abandona el directorío raíz proporcionado a través de TFTP."
+
+# TODO: — -> ---
+#. type: table
+#: doc/guix.texi:30403
+msgid "The assumption behind all this is that you have an NFS server exporting the root file system for your Guix system, and additionally a TFTP server exporting your @code{target} directory—usually @file{/boot}—from that same root file system for your Guix system.  In this constellation the symlinks will work."
+msgstr "Todo esto asume que tiene un servidor NFS que exporta el sistema de archivos raíz de su sistema Guix, y de manera adicional un servidor TFTP que exporta su directorio @code{target}---habitualmente @file{/boot}---desde la misma raíz del sistema de archivos que su sistema Guix. Si se dan estos factores, los enlaces funcionarán."
+
+#. type: table
+#: doc/guix.texi:30407
+msgid "For other constellations you will have to program your own bootloader installer, which then takes care to make necessary files from the store accessible through TFTP, for example by copying them into the TFTP root directory at @code{target}."
+msgstr "En otros casos debe programar su propio instalador del cargador de arranque, el cual se encargue de hacer que los archivos necesarios sean accesibles a través de TFTP, por ejemplo copiando dichos archivos al directorio raíz de TFTP en @code{target}."
+
+#. type: table
+#: doc/guix.texi:30412
+msgid "It is important to note that symlinks pointing outside the TFTP root directory may need to be allowed in the configuration of your TFTP server.  Further the store link exposes the whole store through TFTP.  Both points need to be considered carefully for security aspects."
+msgstr "Es importante que se fije en que puede ser necesario permitir los enlaces simbólicos que apunten fuera del directorio raíz de TFTP en la configuración de su servidor TFTP. Es más, el enlace del almacén expone el almacén al completo a través de TFTP. Ambos puntos deben considerarse meticulosamente en relación a sus implicaciones en el ámbito seguridad."
+
+#. type: table
+#: doc/guix.texi:30417
+msgid "Beside the @code{grub-efi-netboot-bootloader}, the already mentioned TFTP and NFS servers, you also need a properly configured DHCP server to make the booting over netboot possible.  For all this we can currently only recommend you to look for instructions about @acronym{PXE, Preboot eXecution Environment}."
+msgstr "Además de lo expresado anteriormente---@code{grub-efi-netboot-bootloader}, los servidores TFTP y NFS---también necesitará un servidor DHCP configurado correctamente para hacer posible el arranque a través de la red. Para esto únicamente podemos recomendarle por el momento que busque información sobre @acronym{PXE, Preboot eXecution Environment}."
+
+#. type: table
+#: doc/guix.texi:30421
 msgid "This is a string denoting the target onto which to install the bootloader."
 msgstr "Una cadena que indica donde se instalará el cargador de arranque."
 
 #. type: table
-#: doc/guix.texi:26337
-msgid "The interpretation depends on the bootloader in question.  For @code{grub-bootloader}, for example, it should be a device name understood by the bootloader @command{installer} command, such as @code{/dev/sda} or @code{(hd0)} (@pxref{Invoking grub-install,,, grub, GNU GRUB Manual}).  For @code{grub-efi-bootloader}, it should be the mount point of the EFI file system, usually @file{/boot/efi}."
-msgstr "La interpretación depende del cargador de arranque en cuestión. Para @code{grub-bootloader}, por ejemplo, debe ser un nombre de dispositivo que entienda la orden @command{install} del cargador de arranque, como @code{/dev/sda} o @code{(hd0)} (@pxref{Invoking grub-install,,, grub, GNU GRUB Manual}). Para @code{grub-efi-bootloader}, debe apuntar al punto de montaje del sistema de ficheros EFI, habitualmente @file{/boot/efi}."
+#: doc/guix.texi:30430
+msgid "The interpretation depends on the bootloader in question.  For @code{grub-bootloader}, for example, it should be a device name understood by the bootloader @command{installer} command, such as @code{/dev/sda} or @code{(hd0)} (@pxref{Invoking grub-install,,, grub, GNU GRUB Manual}).  For @code{grub-efi-bootloader}, it should be the mount point of the EFI file system, usually @file{/boot/efi}.  For @code{grub-efi-netboot-bootloader}, @code{target} should be the mount point corresponding to the TFTP root directory of your TFTP server."
+msgstr "La interpretación depende del cargador de arranque en cuestión. Cuando se usa @code{grub-bootloader}, por ejemplo, debe ser un nombre de dispositivo que entienda la orden de instalación (@command{installer}) del cargador de arranque, como @code{/dev/sda} o @code{(hd0)} (@pxref{Invoking grub-install,,, grub, GNU GRUB Manual}). Con @code{grub-efi-bootloader}, debe apuntar al punto de montaje del sistema de archivos EFI, habitualmente @file{/boot/efi}. Con @code{grub-efi-netboot-bootloader}, @code{target} debe indicar el punto de montaje correspondiente al directorio raíz de TFTP de su servidor TFTP."
 
 #. type: item
-#: doc/guix.texi:26338
+#: doc/guix.texi:30431
 #, no-wrap
 msgid "@code{menu-entries} (default: @code{()})"
 msgstr "@code{menu-entries} (predeterminadas: @code{()})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:26342
+#: doc/guix.texi:30435
 msgid "A possibly empty list of @code{menu-entry} objects (see below), denoting entries to appear in the bootloader menu, in addition to the current system entry and the entry pointing to previous system generations."
 msgstr "Una lista posiblemente vacía de objetos @code{menu-entry} (véase a continuación), que indican entradas que deben aparecer en el menú del cargador de arranque, además de la entrada del sistema actual y la entrada que apunta a generaciones previas del sistema."
 
 #. type: item
-#: doc/guix.texi:26343
+#: doc/guix.texi:30436
 #, no-wrap
 msgid "@code{default-entry} (default: @code{0})"
 msgstr "@code{default-entry} (predeterminada: @code{0})"
 
 #. type: table
-#: doc/guix.texi:26346
+#: doc/guix.texi:30439
 msgid "The index of the default boot menu entry.  Index 0 is for the entry of the current system."
 msgstr "El índice de la entrada del menú de arranque por omisión. El índice 0 es para la entrada del sistema actual."
 
 #. type: item
-#: doc/guix.texi:26347
+#: doc/guix.texi:30440
 #, no-wrap
 msgid "@code{timeout} (default: @code{5})"
 msgstr "@code{timeout} (predeterminado: @code{5})"
 
 #. type: table
-#: doc/guix.texi:26350
+#: doc/guix.texi:30443
 msgid "The number of seconds to wait for keyboard input before booting.  Set to 0 to boot immediately, and to -1 to wait indefinitely."
 msgstr "El número de segundos que se esperará entrada por el teclado antes de arrancar. El valor 0 indica que se debe arrancar de forma inmediata, y -1 que se debe esperar indefinidamente."
 
 #. type: cindex
-#: doc/guix.texi:26351
+#: doc/guix.texi:30444
 #, no-wrap
 msgid "keyboard layout, for the bootloader"
 msgstr "distribución de teclado, para el gestor de arranque"
 
 #. type: table
-#: doc/guix.texi:26355
+#: doc/guix.texi:30448
 msgid "If this is @code{#f}, the bootloader's menu (if any) uses the default keyboard layout, usually US@tie{}English (``qwerty'')."
 msgstr "Si es @code{#f}, el menú del cargador de arranque (si existe) usa la distribución de teclado predeterminada, habitualmente inglés estadounidense (``qwerty'')."
 
 #. type: table
-#: doc/guix.texi:26358
+#: doc/guix.texi:30451
 msgid "Otherwise, this must be a @code{keyboard-layout} object (@pxref{Keyboard Layout})."
 msgstr "En otro caso, debe ser un objeto @code{keyboard-layout} (@pxref{Keyboard Layout})."
 
 #. type: quotation
-#: doc/guix.texi:26362
+#: doc/guix.texi:30455
 msgid "This option is currently ignored by bootloaders other than @code{grub} and @code{grub-efi}."
 msgstr "Esta opción se ignora actualmente por todos los cargadores de arranque menos @code{grub} y @code{grub-efi}."
 
 #. type: item
-#: doc/guix.texi:26364
+#: doc/guix.texi:30457
 #, no-wrap
 msgid "@code{theme} (default: @var{#f})"
 msgstr "@code{theme} (predeterminado: @var{#f})"
 
 #. type: table
-#: doc/guix.texi:26368
+#: doc/guix.texi:30461
 msgid "The bootloader theme object describing the theme to use.  If no theme is provided, some bootloaders might use a default theme, that's true for GRUB."
 msgstr "El objeto del tema del cargador de arranque que describe el tema usado. Si no se proporciona ningún tema, algunos cargadores de arranque pueden usar un tema por omisión, lo cual es cierto en GRUB."
 
 #. type: item
-#: doc/guix.texi:26369
+#: doc/guix.texi:30462
 #, no-wrap
 msgid "@code{terminal-outputs} (default: @code{'(gfxterm)})"
 msgstr "@code{terminal-outputs} (predeterminadas: @code{'(gfxterm)})"
 
 #. type: table
-#: doc/guix.texi:26376
+#: doc/guix.texi:30469
 msgid "The output terminals used for the bootloader boot menu, as a list of symbols.  GRUB accepts the values: @code{console}, @code{serial}, @code{serial_@{0-3@}}, @code{gfxterm}, @code{vga_text}, @code{mda_text}, @code{morse}, and @code{pkmodem}.  This field corresponds to the GRUB variable @code{GRUB_TERMINAL_OUTPUT} (@pxref{Simple configuration,,, grub,GNU GRUB manual})."
 msgstr "Los terminales de salida que se usarán para el menú de arranque, como una lista de símbolos. GRUB acepta los valores: @code{console}, @code{serial}, @code{serial_@{0-3@}}, @code{gfxterm}, @code{vga_text}, @code{mda_text}, @code{morse} y @code{pkmodem}. Este campo corresponde con la variable @code{GRUB_TERMINAL_OUTPUT} (@pxref{Simple configuration,,, grub, GNU GRUB manual})."
 
 #. type: item
-#: doc/guix.texi:26377
+#: doc/guix.texi:30470
 #, no-wrap
 msgid "@code{terminal-inputs} (default: @code{'()})"
 msgstr "@code{terminal-inputs} (predeterminadas: @code{'()})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:26385
+#: doc/guix.texi:30478
 msgid "The input terminals used for the bootloader boot menu, as a list of symbols.  For GRUB, the default is the native platform terminal as determined at run-time.  GRUB accepts the values: @code{console}, @code{serial}, @code{serial_@{0-3@}}, @code{at_keyboard}, and @code{usb_keyboard}.  This field corresponds to the GRUB variable @code{GRUB_TERMINAL_INPUT} (@pxref{Simple configuration,,, grub,GNU GRUB manual})."
 msgstr "Los terminales de entrada que se usarán para el menú de arranque, como una lista de símbolos. Para GRUB, el valor predeterminado es el terminal nativo de la plataforma determinado en tiempo de ejecución. GRUB acepta los valores: @code{console}, @code{serial}, @code{serial@{0-3@}}, @code{at_keyboard} y @code{usb_keyboard}. Este campo corresponde a la variable GRUB @code{GRUB_TERMINAL_INPUT} (@pxref{Simple configuration,,, grub,GNU GRUB manual})."
 
 #. type: item
-#: doc/guix.texi:26386
+#: doc/guix.texi:30479
 #, no-wrap
 msgid "@code{serial-unit} (default: @code{#f})"
 msgstr "@code{serial-unit} (predeterminada: @code{#f})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:26390
+#: doc/guix.texi:30483
 msgid "The serial unit used by the bootloader, as an integer from 0 to 3.  For GRUB, it is chosen at run-time; currently GRUB chooses 0, which corresponds to COM1 (@pxref{Serial terminal,,, grub,GNU GRUB manual})."
 msgstr "La unidad serie usada por el cargador de arranque, como un entero del 0 al 3. Para GRUB, se selecciona en tiempo de ejecución; actualmente GRUB selecciona 0 lo que corresponde a COM1 (@pxref{Serial terminal,,, grub,GNU GRUB manual})."
 
 #. type: item
-#: doc/guix.texi:26391
+#: doc/guix.texi:30484
 #, no-wrap
 msgid "@code{serial-speed} (default: @code{#f})"
 msgstr "@code{serial-speed} (predeterminada: @code{#f})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:26395
+#: doc/guix.texi:30488
 msgid "The speed of the serial interface, as an integer.  For GRUB, the default value is chosen at run-time; currently GRUB chooses 9600@tie{}bps (@pxref{Serial terminal,,, grub,GNU GRUB manual})."
 msgstr "La velocidad de la interfaz serie, como un entero. Para GRUB, el valor predeterminado se selecciona en tiempo de ejecución, actualmente GRUB selecciona 9600@tie{}bps (@pxref{Serial terminal,,, grub,GNU GRUB manual})."
 
 #. type: cindex
-#: doc/guix.texi:26399
+#: doc/guix.texi:30492
 #, no-wrap
 msgid "dual boot"
 msgstr "arranque dual"
 
 #. type: cindex
-#: doc/guix.texi:26400
+#: doc/guix.texi:30493
 #, no-wrap
 msgid "boot menu"
 msgstr "menú de arranque"
 
 #. type: Plain text
-#: doc/guix.texi:26406
+#: doc/guix.texi:30499
 msgid "Should you want to list additional boot menu entries @i{via} the @code{menu-entries} field above, you will need to create them with the @code{menu-entry} form.  For example, imagine you want to be able to boot another distro (hard to imagine!), you can define a menu entry along these lines:"
 msgstr "Si desease listar entradas adicionales para el menú de arranque a través del campo @code{menu-entries} mostrado previamente, deberá crearlas con la forma @code{menu-entry}. Por ejemplo, imagine que desea ser capaz de arrancar otra distribución (¡difícil de imaginar!), puede definir una entrada de menú de esta forma:"
 
 #. type: lisp
-#: doc/guix.texi:26413
+#: doc/guix.texi:30506
 #, no-wrap
 msgid ""
 "(menu-entry\n"
@@ -50848,207 +58301,271 @@ msgstr ""
 "  (initrd \"/boot/old/initrd\"))\n"
 
 #. type: Plain text
-#: doc/guix.texi:26416
+#: doc/guix.texi:30509
 msgid "Details below."
 msgstr "Los detalles se encuentran a continuación."
 
 #. type: deftp
-#: doc/guix.texi:26417
+#: doc/guix.texi:30510
 #, no-wrap
 msgid "{Data Type} menu-entry"
 msgstr "{Tipo de datos} menu-entry"
 
 #. type: deftp
-#: doc/guix.texi:26419
+#: doc/guix.texi:30512
 msgid "The type of an entry in the bootloader menu."
 msgstr "El tipo de una entrada en el menú del cargador de arranque."
 
 #. type: table
-#: doc/guix.texi:26424
+#: doc/guix.texi:30517
 msgid "The label to show in the menu---e.g., @code{\"GNU\"}."
 msgstr "La etiqueta a mostrar en el menú---por ejemplo, @code{\"GNU\"}."
 
-#. type: code{#1}
-#: doc/guix.texi:26425
+#. type: item
+#: doc/guix.texi:30518
 #, no-wrap
-msgid "linux"
-msgstr "linux"
+msgid "@code{linux} (default: @code{#f})"
+msgstr "@code{linux} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:26427
+#: doc/guix.texi:30520
 msgid "The Linux kernel image to boot, for example:"
 msgstr "La imagen del núcleo Linux a arrancar, por ejemplo:"
 
 #. type: lisp
-#: doc/guix.texi:26430
+#: doc/guix.texi:30523
 #, no-wrap
 msgid "(file-append linux-libre \"/bzImage\")\n"
 msgstr "(file-append linux-libre \"/bzImage\")\n"
 
 #. type: table
-#: doc/guix.texi:26435
+#: doc/guix.texi:30528
 msgid "For GRUB, it is also possible to specify a device explicitly in the file path using GRUB's device naming convention (@pxref{Naming convention,,, grub, GNU GRUB manual}), for example:"
 msgstr "Con GRUB, también es posible especificar un dispositivo explícitamente mediante el uso de la convención de nombres de dispositivo de GRUB (@pxref{Naming convention,,, grub, GNU GRUB manual}), por ejemplo:"
 
 #. type: example
-#: doc/guix.texi:26438
+#: doc/guix.texi:30531
 #, no-wrap
 msgid "\"(hd0,msdos1)/boot/vmlinuz\"\n"
 msgstr "\"(hd0,msdos1)/boot/vmlinuz\"\n"
 
 #. type: table
-#: doc/guix.texi:26442
+#: doc/guix.texi:30535
 msgid "If the device is specified explicitly as above, then the @code{device} field is ignored entirely."
 msgstr "Si se especifica el dispositivo explícitamente como en el ejemplo anterior, el campo @code{device} se ignora completamente."
 
 #. type: item
-#: doc/guix.texi:26443
+#: doc/guix.texi:30536
 #, no-wrap
 msgid "@code{linux-arguments} (default: @code{()})"
 msgstr "@code{linux-arguments} (predeterminados: @code{()})"
 
 #. type: table
-#: doc/guix.texi:26446
+#: doc/guix.texi:30539
 msgid "The list of extra Linux kernel command-line arguments---e.g., @code{(\"console=ttyS0\")}."
 msgstr "La lista de parámetros extra de línea de órdenes para el núcleo Linux---por ejemplo, @code{(\"console=ttyS0\")}."
 
+#. type: item
+#: doc/guix.texi:30540
+#, no-wrap
+msgid "@code{initrd} (default: @code{#f})"
+msgstr "@code{initrd} (predeterminado: @code{#f})"
+
 #. type: table
-#: doc/guix.texi:26450
+#: doc/guix.texi:30543
 msgid "A G-Expression or string denoting the file name of the initial RAM disk to use (@pxref{G-Expressions})."
-msgstr "Una expresión-G o una cadena que contiene el nombre de fichero del disco inicial en RAM usado (@pxref{G-Expressions})."
+msgstr "Una expresión-G o una cadena que contiene el nombre de archivo del disco inicial en RAM usado (@pxref{G-Expressions})."
 
 #. type: item
-#: doc/guix.texi:26450
+#: doc/guix.texi:30544
 #, no-wrap
 msgid "@code{device} (default: @code{#f})"
 msgstr "@code{device} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:26453
+#: doc/guix.texi:30547
 msgid "The device where the kernel and initrd are to be found---i.e., for GRUB, @dfn{root} for this menu entry (@pxref{root,,, grub, GNU GRUB manual})."
 msgstr "El dispositivo donde se encuentran el núcleo y el initrd---es decir, para GRUB, @dfn{raíz} de esta entrada de menú (@pxref{root,,, grub, GNU GRUB manual})."
 
 #. type: table
-#: doc/guix.texi:26459
+#: doc/guix.texi:30553
 msgid "This may be a file system label (a string), a file system UUID (a bytevector, @pxref{File Systems}), or @code{#f}, in which case the bootloader will search the device containing the file specified by the @code{linux} field (@pxref{search,,, grub, GNU GRUB manual}).  It must @emph{not} be an OS device name such as @file{/dev/sda1}."
-msgstr "Puede ser una etiqueta de sistema de ficheros (una cadena), un UUID de sistema de ficheros (un vector de bytes, @pxref{File Systems}), o @code{#f}, en cuyo caso el cargador de arranque buscará el dispositivo que contenga el fichero especificado por el campo @code{linux} (@pxref{search,,, grub, GNU GRUB manual}). @emph{No} debe ser un nombre de dispositivo del SO como @file{/dev/sda1}."
+msgstr "Puede ser una etiqueta de sistema de archivos (una cadena), un UUID de sistema de archivos (un vector de bytes, @pxref{File Systems}), o @code{#f}, en cuyo caso el cargador de arranque buscará el dispositivo que contenga el archivo especificado por el campo @code{linux} (@pxref{search,,, grub, GNU GRUB manual}). @emph{No} debe ser un nombre de dispositivo del SO como @file{/dev/sda1}."
+
+#. type: item
+#: doc/guix.texi:30554
+#, no-wrap
+msgid "@code{multiboot-kernel} (default: @code{#f})"
+msgstr "@code{multiboot-kernel} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:30558
+msgid "The kernel to boot in Multiboot-mode (@pxref{multiboot,,, grub, GNU GRUB manual}).  When this field is set, a Multiboot menu-entry is generated.  For example:"
+msgstr "El núcleo a arrancar en modo Multiboot (@pxref{multiboot,,, grub, GNU GRUB manual}).  Cuando se proporciona este campo, se genera una entrada Multiboot en el menú. Por ejemplo:"
+
+#. type: lisp
+#: doc/guix.texi:30561
+#, no-wrap
+msgid "(file-append mach \"/boot/gnumach\")\n"
+msgstr "(file-append mach \"/boot/gnumach\")\n"
+
+#. type: item
+#: doc/guix.texi:30563
+#, no-wrap
+msgid "@code{multiboot-arguments} (default: @code{()})"
+msgstr "@code{multiboot-arguments} (predeterminados: @code{()})"
+
+#. type: table
+#: doc/guix.texi:30565
+msgid "The list of extra command-line arguments for the multiboot-kernel."
+msgstr "Lista de parámetros adicionales que se proporcionan al núcleo Multiboot en la línea de órdenes."
+
+#. type: item
+#: doc/guix.texi:30566
+#, no-wrap
+msgid "@code{multiboot-modules} (default: @code{()})"
+msgstr "@code{multiboot-modules} (predeterminados: @code{()})"
+
+#. type: table
+#: doc/guix.texi:30568
+msgid "The list of commands for loading Multiboot modules.  For example:"
+msgstr "Lista de ordenes para cargar módulos de Multiboot. Por ejemplo:"
+
+#. type: lisp
+#: doc/guix.texi:30574
+#, no-wrap
+msgid ""
+"(list (list (file-append hurd \"/hurd/ext2fs.static\") \"ext2fs\"\n"
+"             @dots{})\n"
+"      (list (file-append libc \"/lib/ld.so.1\") \"exec\"\n"
+"             @dots{}))\n"
+msgstr ""
+"(list (list (file-append hurd \"/hurd/ext2fs.static\") \"ext2fs\"\n"
+"             @dots{})\n"
+"      (list (file-append libc \"/lib/ld.so.1\") \"exec\"\n"
+"             @dots{}))\n"
 
 #. type: cindex
-#: doc/guix.texi:26463 doc/guix.texi:26522
+#: doc/guix.texi:30579 doc/guix.texi:30638
 #, no-wrap
 msgid "HDPI"
 msgstr "HDPI"
 
 #. type: cindex
-#: doc/guix.texi:26464 doc/guix.texi:26523
+#: doc/guix.texi:30580 doc/guix.texi:30639
 #, no-wrap
 msgid "HiDPI"
 msgstr "HiDPI"
 
 #. type: cindex
-#: doc/guix.texi:26465 doc/guix.texi:26524
+#: doc/guix.texi:30581 doc/guix.texi:30640
 #, no-wrap
 msgid "resolution"
 msgstr "resolución"
 
 #. type: Plain text
-#: doc/guix.texi:26469
+#: doc/guix.texi:30585
 msgid "For now only GRUB has theme support.  GRUB themes are created using the @code{grub-theme} form, which is not fully documented yet."
 msgstr "De momento únicamente GRUB permite el uso de temas. Los temas de GRUB se crean mediante el uso de @code{grub-theme}, todavía no documentado completamente."
 
 #. type: deftp
-#: doc/guix.texi:26470
+#: doc/guix.texi:30586
 #, no-wrap
 msgid "{Data Type} grub-theme"
 msgstr "{Tipo de datos} grub-theme"
 
 #. type: deftp
-#: doc/guix.texi:26472
+#: doc/guix.texi:30588
 msgid "Data type representing the configuration of the GRUB theme."
 msgstr "Tipo de datos que representa la configuración de un tema de GRUB."
 
 #. type: item
-#: doc/guix.texi:26474
+#: doc/guix.texi:30590
 #, no-wrap
 msgid "@code{gfxmode} (default: @code{'(\"auto\")})"
 msgstr "@code{gfxmode} (predeterminado: @code{'(\"auto\")})"
 
-# TODO: Typo (see + @pxref)
 #. type: table
-#: doc/guix.texi:26477
-msgid "The GRUB @code{gfxmode} to set (a list of screen resolution strings, see @pxref{gfxmode,,, grub, GNU GRUB manual})."
+#: doc/guix.texi:30593
+msgid "The GRUB @code{gfxmode} to set (a list of screen resolution strings, @pxref{gfxmode,,, grub, GNU GRUB manual})."
 msgstr "El modo gráfico @code{gfxmode} de GRUB configurado (una lista de cadenas con resoluciones de pantalla, @pxref{gfxmode,,, grub, GNU GRUB manual})."
 
-#. type: defvr
-#: doc/guix.texi:26484
-msgid "This is the default GRUB theme used by the operating system if no @code{theme} field is specified in @code{bootloader-configuration} record."
-msgstr "Este es el tema predeterminado de GRUB que usa el sistema operativo si no se especifica el campo @code{theme} en el registro @code{bootloader-configuration}."
+#. type: deffn
+#: doc/guix.texi:30596
+#, no-wrap
+msgid "{Scheme Procedure} grub-theme"
+msgstr "{Procedimiento Scheme} grub-theme"
 
-#. type: defvr
-#: doc/guix.texi:26487
+#. type: deffn
+#: doc/guix.texi:30600
+msgid "Return the default GRUB theme used by the operating system if no @code{theme} field is specified in @code{bootloader-configuration} record."
+msgstr "Devuelve el tema predeterminado de GRUB que usa el sistema operativo si no se especifica el campo @code{theme} en el registro @code{bootloader-configuration}."
+
+#. type: deffn
+#: doc/guix.texi:30603
 msgid "It comes with a fancy background image displaying the GNU and Guix logos."
 msgstr "Viene con una bonita imagen de fondo que muestra los logos de GNU y Guix."
 
 #. type: Plain text
-#: doc/guix.texi:26491
+#: doc/guix.texi:30607
 msgid "For example, to override the default resolution, you may use something like"
 msgstr "Por ejemplo, para usar una resolución distinta de la predeterminada, puede usar algo como esto:"
 
 #. type: lisp
-#: doc/guix.texi:26499
+#: doc/guix.texi:30615
 #, no-wrap
 msgid ""
 "(bootloader\n"
-" (grub-configuration\n"
+" (bootloader-configuration\n"
 " ;; @dots{}\n"
 " (theme (grub-theme\n"
-"         (inherit %default-theme)\n"
+"         (inherit (grub-theme))\n"
 "         (gfxmode '(\"1024x786x32\" \"auto\"))))))\n"
 msgstr ""
 "(bootloader\n"
-" (grub-configuration\n"
+" (bootloader-configuration\n"
 " ;; @dots{}\n"
 " (theme (grub-theme\n"
-"         (inherit %default-theme)\n"
+"         (inherit (grub-theme))\n"
 "         (gfxmode '(\"1024x786x32\" \"auto\"))))))\n"
 
 #. type: section
-#: doc/guix.texi:26502
+#: doc/guix.texi:30618
 #, no-wrap
 msgid "Invoking @code{guix system}"
 msgstr "Invocación de @code{guix system}"
 
 #. type: Plain text
-#: doc/guix.texi:26507
+#: doc/guix.texi:30623
 msgid "Once you have written an operating system declaration as seen in the previous section, it can be @dfn{instantiated} using the @command{guix system} command.  The synopsis is:"
 msgstr "Una vez haya escrito la declaración de sistema operativo como se ha visto en la sección previa, puede @dfn{instanciarse} mediante el uso de la orden @command{guix system}. Su sinopsis es:"
 
 #. type: example
-#: doc/guix.texi:26510
+#: doc/guix.texi:30626
 #, no-wrap
 msgid "guix system @var{options}@dots{} @var{action} @var{file}\n"
-msgstr "guix system @var{opciones}@dots{} @var{acción} @var{fichero}\n"
+msgstr "guix system @var{opciones}@dots{} @var{acción} @var{archivo}\n"
 
 #. type: Plain text
-#: doc/guix.texi:26516
+#: doc/guix.texi:30632
 msgid "@var{file} must be the name of a file containing an @code{operating-system} declaration.  @var{action} specifies how the operating system is instantiated.  Currently the following values are supported:"
-msgstr "@var{fichero} debe ser el nombre de un fichero que contenga una declaración @code{operating-system}. @var{acción} especifica cómo se instancia el sistema operativo. Actualmente se permiten los siguientes valores:"
+msgstr "@var{archivo} debe ser el nombre de un archivo que contenga una declaración @code{operating-system}. @var{acción} especifica cómo se instancia el sistema operativo. Actualmente se permiten los siguientes valores:"
 
 #. type: item
-#: doc/guix.texi:26518
+#: doc/guix.texi:30634
 #, no-wrap
 msgid "search"
 msgstr "search"
 
 #. type: table
-#: doc/guix.texi:26521
+#: doc/guix.texi:30637
 msgid "Display available service type definitions that match the given regular expressions, sorted by relevance:"
 msgstr "Muestra las definiciones de tipos de servicio disponibles que corresponden con las expresiones regulares proporcionadas, ordenadas por relevancia:"
 
 # FUZZY
 # TODO: Actualizar cuando se traduzca guix[-packages]
 #. type: example
-#: doc/guix.texi:26543
+#: doc/guix.texi:30659
 #, no-wrap
 msgid ""
 "$ guix system search console\n"
@@ -51092,7 +58609,7 @@ msgstr ""
 # FUZZY
 # TODO: Actualizar cuando se traduzca guix[-packages]
 #. type: example
-#: doc/guix.texi:26549
+#: doc/guix.texi:30665
 #, no-wrap
 msgid ""
 "name: mingetty\n"
@@ -51112,7 +58629,7 @@ msgstr ""
 # FUZZY
 # TODO: Actualizar cuando se traduzca guix[-packages]
 #. type: example
-#: doc/guix.texi:26556
+#: doc/guix.texi:30672
 #, no-wrap
 msgid ""
 "name: login\n"
@@ -51132,18 +58649,18 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:26558
+#: doc/guix.texi:30674
 #, no-wrap
 msgid "@dots{}\n"
 msgstr "@dots{}\n"
 
 #. type: table
-#: doc/guix.texi:26563
+#: doc/guix.texi:30679
 msgid "As for @command{guix package --search}, the result is written in @code{recutils} format, which makes it easy to filter the output (@pxref{Top, GNU recutils databases,, recutils, GNU recutils manual})."
 msgstr "Como con @command{guix package --search}, el resultado se obtiene en formato @code{recutils}, lo que facilita el filtrado de la salida (@pxref{Top, GNU recutils databases,, recutils, GNU recutils manual})."
 
 #. type: item
-#: doc/guix.texi:26564
+#: doc/guix.texi:30680
 #, no-wrap
 msgid "reconfigure"
 msgstr "reconfigure"
@@ -51151,50 +58668,57 @@ msgstr "reconfigure"
 # FUZZY
 # TODO
 #. type: table
-#: doc/guix.texi:26569
+#: doc/guix.texi:30685
 msgid "Build the operating system described in @var{file}, activate it, and switch to it@footnote{This action (and the related actions @code{switch-generation} and @code{roll-back}) are usable only on systems already running Guix System.}."
-msgstr "Construye el sistema operativo descrito en @var{fichero}, lo activa, y se constituye como estado actual@footnote{Esta acción (y las acciones relacionadas @code{switch-generation} y @code{roll-back}) son usables únicamente en sistemas que ya ejecuten el sistema Guix.}."
+msgstr "Construye el sistema operativo descrito en @var{archivo}, lo activa, y se constituye como estado actual@footnote{Esta acción (y las acciones relacionadas @code{switch-generation} y @code{roll-back}) son usables únicamente en sistemas que ya ejecuten el sistema Guix.}."
 
 #. type: quotation
-#: doc/guix.texi:26577
+#: doc/guix.texi:30693
 msgid "It is highly recommended to run @command{guix pull} once before you run @command{guix system reconfigure} for the first time (@pxref{Invoking guix pull}).  Failing to do that you would see an older version of Guix once @command{reconfigure} has completed."
 msgstr "Es altamente recomendable ejecutar @command{guix pull} antes de la primera ejecución de @command{guix system reconfigure} (@pxref{Invoking guix pull}). No hacerlo puede ocasionar que se obtenga una versión más antigua de Guix una vez que @command{reconfigure} se haya completado."
 
 #. type: table
-#: doc/guix.texi:26585
+#: doc/guix.texi:30701
 msgid "This effects all the configuration specified in @var{file}: user accounts, system services, global package list, setuid programs, etc.  The command starts system services specified in @var{file} that are not currently running; if a service is currently running this command will arrange for it to be upgraded the next time it is stopped (e.g.@: by @code{herd stop X} or @code{herd restart X})."
-msgstr "Lleva a efecto toda la configuración especificada en @var{fichero}: cuentas de usuaria, servicios del sistema, lista de paquetes global, programas con setuid, etc. La orden inicia los servicios del sistema especificados en @var{fichero} que no estén actualmente en ejecución; si un servicio se encuentra en ejecución esta orden prepara su actualización durante la próxima parada (por ejemplo, con @code{herd stop X} o @code{herd restart X})."
+msgstr "Lleva a efecto toda la configuración especificada en @var{archivo}: cuentas de usuaria, servicios del sistema, lista de paquetes global, programas con setuid, etc. La orden inicia los servicios del sistema especificados en @var{archivo} que no estén actualmente en ejecución; si un servicio se encuentra en ejecución esta orden prepara su actualización durante la próxima parada (por ejemplo, con @code{herd stop X} o @code{herd restart X})."
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:26591
+#: doc/guix.texi:30707
 msgid "This command creates a new generation whose number is one greater than the current generation (as reported by @command{guix system list-generations}).  If that generation already exists, it will be overwritten.  This behavior mirrors that of @command{guix package} (@pxref{Invoking guix package})."
 msgstr "Esta orden crea una nueva generación cuyo número es el sucesor de la siguiente generación (como lo muestra @command{guix system list-generations}). Si esa generación ya existe, será sobreescrita. Este comportamiento es el mismo que el de @command{guix package} (@pxref{Invoking guix package})."
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:26596
+#: doc/guix.texi:30712
 msgid "It also adds a bootloader menu entry for the new OS configuration, ---unless @option{--no-bootloader} is passed.  For GRUB, it moves entries for older configurations to a submenu, allowing you to choose an older system generation at boot time should you need it."
 msgstr "También añade una entrada al cargador de arranque para la nueva configuración del sistema operativo---en caso de que no se proporcione la opción @option{--no-bootloader}. Con GRUB, mueve las entradas de configuraciones antiguas a un submenú, permitiendo la selección de una generación previa del sistema en tiempo de arranque en caso necesario."
 
 #. type: cindex
-#: doc/guix.texi:26597 doc/guix.texi:26879 doc/guix.texi:27776
+#: doc/guix.texi:30713 doc/guix.texi:31016 doc/guix.texi:31959
 #, no-wrap
 msgid "provenance tracking, of the operating system"
 msgstr "seguimiento de procedencia, del sistema operativo"
 
 #. type: table
-#: doc/guix.texi:26603
-msgid "Upon completion, the new system is deployed under @file{/run/current-system}.  This directory contains @dfn{provenance meta-data}: the list of channels in use (@pxref{Channels}) and @var{file} itself, when available.  This information is useful should you later want to inspect how this particular generation was built."
-msgstr "Tras la finalización, el nuevo sistema se despliega en @file{/run/current-system}. Este directorio contiene @dfn{metadatos de procedencia}: la lista de canales usados (@pxref{Channels}) y @var{fichero} en sí, cuando esté disponible. Esta información es útil en caso de que desee inspeccionar posteriormente cómo se construyó está generación en particular."
+#: doc/guix.texi:30718
+msgid "Upon completion, the new system is deployed under @file{/run/current-system}.  This directory contains @dfn{provenance meta-data}: the list of channels in use (@pxref{Channels}) and @var{file} itself, when available.  You can view it by running:"
+msgstr "Tras la finalización, el nuevo sistema se despliega en @file{/run/current-system}. Este directorio contiene @dfn{metadatos de procedencia}: la lista de canales usados (@pxref{Channels}) y el @var{archivo} en sí, cuando esté disponible. Puede visualizar dichos metadatos con la siguiente orden:"
 
+#. type: example
+#: doc/guix.texi:30721
+#, no-wrap
+msgid "guix system describe\n"
+msgstr "guix system describe\n"
+
+# FUZZY FUZZY FUZZY
 #. type: table
-#: doc/guix.texi:26606
-msgid "In fact, assuming @var{file} is self-contained, you can later rebuild generation @var{n} of your operating system with:"
-msgstr "De hecho, asumiendo que @var{fichero} está autocontenido, puede construir de nuevo la generación @var{n} de su sistema operativo con:"
+#: doc/guix.texi:30727
+msgid "This information is useful should you later want to inspect how this particular generation was built.  In fact, assuming @var{file} is self-contained, you can later rebuild generation @var{n} of your operating system with:"
+msgstr "Esta información es útil en caso de que desee inspeccionar posteriormente cómo se construyó está generación en particular. De hecho, asumiendo que @var{archivo} es autocontenido, puede construir de nuevo la generación @var{n} de su sistema operativo con:"
 
 #. type: example
-#: doc/guix.texi:26612
+#: doc/guix.texi:30733
 #, no-wrap
 msgid ""
 "guix time-machine \\\n"
@@ -51208,220 +58732,225 @@ msgstr ""
 "  /var/guix/profiles/system-@var{n}-link/configuration.scm\n"
 
 #. type: table
-#: doc/guix.texi:26618
+#: doc/guix.texi:30739
 msgid "You can think of it as some sort of built-in version control! Your system is not just a binary artifact: @emph{it carries its own source}.  @xref{Service Reference, @code{provenance-service-type}}, for more information on provenance tracking."
 msgstr "¡Puede pensar en ello como una especie de control de versiones incorporado en Guix! Su sistema no es únicamente un artefacto binario: @emph{transporta sus propias fuentes con él}. @xref{Service Reference, @code{provenance-service-type}}, para más información sobre el seguimiento de procedencia."
 
+#. type: table
+#: doc/guix.texi:30745
+msgid "By default, @command{reconfigure} @emph{prevents you from downgrading your system}, which could (re)introduce security vulnerabilities and also cause problems with ``stateful'' services such as database management systems.  You can override that behavior by passing @option{--allow-downgrades}."
+msgstr "De manera predeterminada, @command{reconfigure} @emph{evita que instale una version anterior en su sistema operativo}, lo que podría (re)introducir fallos de seguridad y también provocar problemas con servicios que mantienen estado como los sistemas de gestión de bases de datos. Puede modificar este comportamiento con el parámetro @option{--allow-downgrades}."
+
 #. type: item
-#: doc/guix.texi:26619
+#: doc/guix.texi:30746
 #, no-wrap
 msgid "switch-generation"
 msgstr "switch-generation"
 
 #. type: table
-#: doc/guix.texi:26628
+#: doc/guix.texi:30755
 msgid "Switch to an existing system generation.  This action atomically switches the system profile to the specified system generation.  It also rearranges the system's existing bootloader menu entries.  It makes the menu entry for the specified system generation the default, and it moves the entries for the other generations to a submenu, if supported by the bootloader being used.  The next time the system boots, it will use the specified system generation."
 msgstr "Cambia a una generación existente del sistema. Esta acción cambia atómicamente el perfil del sistema a la generación del sistema especificada. También redistribuye las entradas de sistema del menú de arranque existentes. Marca como predeterminada la entrada de la generación de sistema especificada y mueve las entradas de otras generaciones a un submenú, si el cargador de arranque lo permite. La próxima vez que se arranque el sistema, se usará la generación de sistema especificada."
 
 #. type: table
-#: doc/guix.texi:26632
+#: doc/guix.texi:30759
 msgid "The bootloader itself is not being reinstalled when using this command.  Thus, the installed bootloader is used with an updated configuration file."
-msgstr "El cargador de arranque en sí no se reinstala durante esta orden. Por tanto, el cargador de arranque instalado se usa con un fichero de configuración actualizado."
+msgstr "El cargador de arranque en sí no se reinstala durante esta orden. Por tanto, el cargador de arranque instalado se usa con un archivo de configuración actualizado."
 
 #. type: table
-#: doc/guix.texi:26636
+#: doc/guix.texi:30763
 msgid "The target generation can be specified explicitly by its generation number.  For example, the following invocation would switch to system generation 7:"
 msgstr "La generación deseada puede especificarse explícitamente con su numero de generación. Por ejemplo, la siguiente invocación cambiaría a la generación 7 del sistema:"
 
 #. type: example
-#: doc/guix.texi:26639
+#: doc/guix.texi:30766
 #, no-wrap
 msgid "guix system switch-generation 7\n"
 msgstr "guix system switch-generation 7\n"
 
 #. type: table
-#: doc/guix.texi:26647
+#: doc/guix.texi:30774
 msgid "The target generation can also be specified relative to the current generation with the form @code{+N} or @code{-N}, where @code{+3} means ``3 generations ahead of the current generation,'' and @code{-1} means ``1 generation prior to the current generation.'' When specifying a negative value such as @code{-1}, you must precede it with @code{--} to prevent it from being parsed as an option.  For example:"
 msgstr "La generación deseada puede especificarse también de forma relativa a la generación actual con la forma @code{+N} o @code{-N}, donde @code{+3} significa ``3 generaciones después de la generación actual'', y @code{-1} significa ``1 generación antes de la generación actual''. Cuando se especifica un valor negativo como @code{-1} debe ir precedido de @code{--} para evitar que se analice como una opción. Por ejemplo:"
 
 #. type: example
-#: doc/guix.texi:26650
+#: doc/guix.texi:30777
 #, no-wrap
 msgid "guix system switch-generation -- -1\n"
 msgstr "guix system switch-generation -- -1\n"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:26658
+#: doc/guix.texi:30785
 msgid "Currently, the effect of invoking this action is @emph{only} to switch the system profile to an existing generation and rearrange the bootloader menu entries.  To actually start using the target system generation, you must reboot after running this action.  In the future, it will be updated to do the same things as @command{reconfigure}, like activating and deactivating services."
 msgstr "Actualmente, el efecto de la invocación de esta acción es @emph{únicamente} cambiar el perfil del sistema a una generación existente y redistribuir las entradas del menú de arranque. Para realmente empezar a usar la generación deseada del sistema, debe reiniciar tras esta acción. En el futuro, se actualizará para hacer lo mismo que @command{reconfigure}, como activación y desactivación de servicios."
 
 #. type: table
-#: doc/guix.texi:26660
+#: doc/guix.texi:30787
 msgid "This action will fail if the specified generation does not exist."
 msgstr "Esta acción fallará si la generación especificada no existe."
 
 #. type: item
-#: doc/guix.texi:26661
+#: doc/guix.texi:30788
 #, no-wrap
 msgid "roll-back"
 msgstr "roll-back"
 
 #. type: table
-#: doc/guix.texi:26667
+#: doc/guix.texi:30794
 msgid "Switch to the preceding system generation.  The next time the system boots, it will use the preceding system generation.  This is the inverse of @command{reconfigure}, and it is exactly the same as invoking @command{switch-generation} with an argument of @code{-1}."
 msgstr "Cambia a la generación de sistema previa. Tras el siguiente arranque del sistema, usará la generación de sistema precedente. Es la operación inversa de @command{reconfigure}, y es equivalente a la invocación de @command{switch-generation} con @code{-1} como parámetro."
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:26671
+#: doc/guix.texi:30798
 msgid "Currently, as with @command{switch-generation}, you must reboot after running this action to actually start using the preceding system generation."
 msgstr "Actualmente, como con @command{switch-generation}, debe reiniciar tras la ejecución de esta acción para realmente empezar a usar la generación de sistema precedente."
 
 #. type: item
-#: doc/guix.texi:26672
+#: doc/guix.texi:30799
 #, no-wrap
 msgid "delete-generations"
 msgstr "delete-generations"
 
 #. type: cindex
-#: doc/guix.texi:26673
+#: doc/guix.texi:30800
 #, no-wrap
 msgid "deleting system generations"
 msgstr "borrado de generaciones del sistema"
 
 #. type: cindex
-#: doc/guix.texi:26674
+#: doc/guix.texi:30801
 #, no-wrap
 msgid "saving space"
 msgstr "ahorro de espacio"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:26678
+#: doc/guix.texi:30805
 msgid "Delete system generations, making them candidates for garbage collection (@pxref{Invoking guix gc}, for information on how to run the ``garbage collector'')."
 msgstr "Elimina generaciones del sistema, haciendo posible su recolección con la basura (@pxref{Invoking guix gc}, para información sobre como llevar a cabo la ``recolección de basura'')."
 
 #. type: table
-#: doc/guix.texi:26682
-msgid "This works in the same way as @command{guix package --delete-generations} (@pxref{Invoking guix package, @code{--delete-generations}}).  With no arguments, all system generations but the current one are deleted:"
-msgstr "Esto funciona del mismo modo que @command{guix package --delete-generations} (@pxref{Invoking guix package, @code{--delete-generations}}). Sin parámetros, se eliminan todas las generaciones del sistema excepto la actual:"
+#: doc/guix.texi:30809
+msgid "This works in the same way as @samp{guix package --delete-generations} (@pxref{Invoking guix package, @option{--delete-generations}}).  With no arguments, all system generations but the current one are deleted:"
+msgstr "Esto funciona del mismo modo que @samp{guix package --delete-generations} (@pxref{Invoking guix package, @option{--delete-generations}}). Sin parámetros, se eliminan todas las generaciones del sistema excepto la actual:"
 
 #. type: example
-#: doc/guix.texi:26685
+#: doc/guix.texi:30812
 #, no-wrap
 msgid "guix system delete-generations\n"
 msgstr "guix system delete-generations\n"
 
 #. type: table
-#: doc/guix.texi:26689
+#: doc/guix.texi:30816
 msgid "You can also select the generations you want to delete.  The example below deletes all the system generations that are more than two month old:"
 msgstr "También puede seleccionar las generaciones que desea eliminar. El siguiente ejemplo elimina todas las generaciones del sistema que tienen más de dos meses de antigüedad:"
 
 #. type: example
-#: doc/guix.texi:26692
+#: doc/guix.texi:30819
 #, no-wrap
 msgid "guix system delete-generations 2m\n"
 msgstr "guix system delete-generations 2m\n"
 
 #. type: table
-#: doc/guix.texi:26697
+#: doc/guix.texi:30824
 msgid "Running this command automatically reinstalls the bootloader with an updated list of menu entries---e.g., the ``old generations'' sub-menu in GRUB no longer lists the generations that have been deleted."
 msgstr "La ejecución de esta orden reinstala automáticamente el cargador de arranque con una lista de entradas del menú actualizada---por ejemplo, el submenú de generaciones antiguas en GRUB no mostrará las generaciones que hayan sido borradas."
 
 #. type: table
-#: doc/guix.texi:26702
+#: doc/guix.texi:30829
 msgid "Build the derivation of the operating system, which includes all the configuration files and programs needed to boot and run the system.  This action does not actually install anything."
-msgstr "Construye la derivación del sistema operativo, que incluye todos los ficheros de configuración y programas necesarios para el arranque y la ejecución del sistema. Esta acción no instala nada en realidad."
+msgstr "Construye la derivación del sistema operativo, que incluye todos los archivos de configuración y programas necesarios para el arranque y la ejecución del sistema. Esta acción no instala nada en realidad."
 
 #. type: item
-#: doc/guix.texi:26703
+#: doc/guix.texi:30830
 #, no-wrap
 msgid "init"
 msgstr "init"
 
 #. type: table
-#: doc/guix.texi:26707
+#: doc/guix.texi:30834
 msgid "Populate the given directory with all the files necessary to run the operating system specified in @var{file}.  This is useful for first-time installations of Guix System.  For instance:"
-msgstr "Construye el directorio dado con todos los ficheros necesarios para ejecutar el sistema operativo especificado en @var{fichero}. Esto es útil para la instalación inicial de Guix. Por ejemplo:"
+msgstr "Construye el directorio dado con todos los archivos necesarios para ejecutar el sistema operativo especificado en @var{archivo}. Esto es útil para la instalación inicial de Guix. Por ejemplo:"
 
 #. type: example
-#: doc/guix.texi:26710
+#: doc/guix.texi:30837
 #, no-wrap
 msgid "guix system init my-os-config.scm /mnt\n"
 msgstr "guix system init mi-configuración-del-so.scm /mnt\n"
 
 #. type: table
-#: doc/guix.texi:26717
+#: doc/guix.texi:30844
 msgid "copies to @file{/mnt} all the store items required by the configuration specified in @file{my-os-config.scm}.  This includes configuration files, packages, and so on.  It also creates other essential files needed for the system to operate correctly---e.g., the @file{/etc}, @file{/var}, and @file{/run} directories, and the @file{/bin/sh} file."
-msgstr "copia a @file{/mnt} todos los elementos del almacén necesarios para la configuración especificada en @file{mi-configuración-del-so.scm}. Esto incluye los ficheros de configuración, paquetes y demás. También crea otros ficheros esenciales necesarios para la correcta operación del sistema---por ejemplo, los directorios @file{/etc}, @file{/var} y @file{/run}, y el fichero @file{/bin/sh}."
+msgstr "copia a @file{/mnt} todos los elementos del almacén necesarios para la configuración especificada en @file{mi-configuración-del-so.scm}. Esto incluye los archivos de configuración, paquetes y demás. También crea otros archivos esenciales necesarios para la correcta operación del sistema---por ejemplo, los directorios @file{/etc}, @file{/var} y @file{/run}, y el archivo @file{/bin/sh}."
 
 #. type: table
-#: doc/guix.texi:26721
+#: doc/guix.texi:30848
 msgid "This command also installs bootloader on the target specified in @file{my-os-config}, unless the @option{--no-bootloader} option was passed."
 msgstr "Esta orden también instala el cargador de arranque en el destino especificado en @file{mi-conf-del-so.scm}, siempre que no se proporcione la opción @option{--no-bootloader}."
 
 #. type: item
-#: doc/guix.texi:26722
+#: doc/guix.texi:30849
 #, no-wrap
 msgid "vm"
 msgstr "vm"
 
 #. type: cindex
-#: doc/guix.texi:26723 doc/guix.texi:27220
+#: doc/guix.texi:30850 doc/guix.texi:31384
 #, no-wrap
 msgid "virtual machine"
 msgstr "máquina virtual"
 
 #. type: cindex
-#: doc/guix.texi:26724
+#: doc/guix.texi:30851
 #, no-wrap
 msgid "VM"
 msgstr "VM"
 
 #. type: anchor{#1}
-#: doc/guix.texi:26728
+#: doc/guix.texi:30855
 msgid "guix system vm"
 msgstr "guix system vm"
 
 #. type: table
-#: doc/guix.texi:26728
+#: doc/guix.texi:30855
 msgid "Build a virtual machine that contains the operating system declared in @var{file}, and return a script to run that virtual machine (VM)."
-msgstr "Construye una máquina virtual que contiene el sistema operativo declarado en @var{fichero}, y devuelve un guión que ejecuta dicha máquina virtual (VM)."
+msgstr "Construye una máquina virtual que contiene el sistema operativo declarado en @var{archivo}, y devuelve un guión que ejecuta dicha máquina virtual (VM)."
 
 #. type: quotation
-#: doc/guix.texi:26736
+#: doc/guix.texi:30863
 msgid "The @code{vm} action and others below can use KVM support in the Linux-libre kernel.  Specifically, if the machine has hardware virtualization support, the corresponding KVM kernel module should be loaded, and the @file{/dev/kvm} device node must exist and be readable and writable by the user and by the build users of the daemon (@pxref{Build Environment Setup})."
 msgstr "La acción @code{vm} y otras presentadas a continuación pueden usar la funcionalidad KVM del núcleo Linux-libre. Específicamente, si la máquina permite la virtualización hardware, debe cargarse el correspondiente módulo KVM del núcleo, debe existir el nodo del dispositivo @file{/dev/kvm} y tanto la propia usuaria como las usuarias de construcción del daemon deben tener acceso de lectura y escritura al mismo (@pxref{Build Environment Setup})."
 
 #. type: table
-#: doc/guix.texi:26741
+#: doc/guix.texi:30868
 msgid "Arguments given to the script are passed to QEMU as in the example below, which enables networking and requests 1@tie{}GiB of RAM for the emulated machine:"
 msgstr "Los parámetros proporcionados al guión se pasan a QEMU como en el siguiente ejemplo, que activa la red y solicita 1@tie{}GiB de RAM para la máquina emulada:"
 
 #. type: example
-#: doc/guix.texi:26744
+#: doc/guix.texi:30871
 #, no-wrap
 msgid "$ /gnu/store/@dots{}-run-vm.sh -m 1024 -smp 2 -net user,model=virtio-net-pci\n"
 msgstr "$ /gnu/store/@dots{}-run-vm.sh -m 1024 -smp 2 -net user,model=virtio-net-pci\n"
 
 #. type: table
-#: doc/guix.texi:26747
+#: doc/guix.texi:30874
 msgid "The VM shares its store with the host system."
 msgstr "La VM comparte su almacén con el sistema anfitrión."
 
 #. type: table
-#: doc/guix.texi:26752
-msgid "Additional file systems can be shared between the host and the VM using the @code{--share} and @code{--expose} command-line options: the former specifies a directory to be shared with write access, while the latter provides read-only access to the shared directory."
-msgstr "Sistemas de ficheros adicionales pueden compartirse entre la máquina anfitriona y la virtual mediante el uso de las opciones @code{--share} y @code{--expose}: la primera especifica un directorio a compartir con acceso de escritura, mientras que la última proporciona solo acceso de lectura al directorio compartido."
+#: doc/guix.texi:30879
+msgid "Additional file systems can be shared between the host and the VM using the @option{--share} and @option{--expose} command-line options: the former specifies a directory to be shared with write access, while the latter provides read-only access to the shared directory."
+msgstr "Sistemas de archivos adicionales pueden compartirse entre la máquina anfitriona y la virtual mediante el uso de las opciones @option{--share} y @option{--expose}: la primera especifica un directorio a compartir con acceso de escritura, mientras que la última proporciona solo acceso de lectura al directorio compartido."
 
 #. type: table
-#: doc/guix.texi:26756
+#: doc/guix.texi:30883
 msgid "The example below creates a VM in which the user's home directory is accessible read-only, and where the @file{/exchange} directory is a read-write mapping of @file{$HOME/tmp} on the host:"
 msgstr "El siguiente ejemplo crea una máquina virtual en la que el directorio de la usuaria es accesible en modo solo-lecture, y donde el directorio @file{/intercambio} esta asociado de forma lectura-escritura con @file{$HOME/tmp} en el sistema anfitrión:"
 
 #. type: example
-#: doc/guix.texi:26760
+#: doc/guix.texi:30887
 #, no-wrap
 msgid ""
 "guix system vm my-config.scm \\\n"
@@ -51431,79 +58960,84 @@ msgstr ""
 "   --expose=$HOME --share=$HOME/tmp=/intercambio\n"
 
 #. type: table
-#: doc/guix.texi:26765
+#: doc/guix.texi:30892
 msgid "On GNU/Linux, the default is to boot directly to the kernel; this has the advantage of requiring only a very tiny root disk image since the store of the host can then be mounted."
 msgstr "En GNU/Linux, lo predeterminado es arrancar directamente el núcleo; esto posee la ventaja de necesitar únicamente una pequeña imagen del disco raíz pequeña ya el el almacén de la anfitriona puede montarse."
 
 #. type: table
-#: doc/guix.texi:26771
-msgid "The @code{--full-boot} option forces a complete boot sequence, starting with the bootloader.  This requires more disk space since a root image containing at least the kernel, initrd, and bootloader data files must be created.  The @code{--image-size} option can be used to specify the size of the image."
-msgstr "La opción @code{--full-boot} fuerza una secuencia de arranque completa, desde el cargador de arranque. Esto necesita más espacio en disco ya que la imagen raíz que contiene el núcleo, initrd y los ficheros de datos del cargador de arranque deben crearse. La opción @code{--image-size} puede usarse para especificar el tamaño de la imagen."
+#: doc/guix.texi:30898
+msgid "The @option{--full-boot} option forces a complete boot sequence, starting with the bootloader.  This requires more disk space since a root image containing at least the kernel, initrd, and bootloader data files must be created.  The @option{--image-size} option can be used to specify the size of the image."
+msgstr "La opción @option{--full-boot} fuerza una secuencia de arranque completa, desde el cargador de arranque. Esto necesita más espacio en disco ya que la imagen raíz que contiene el núcleo, initrd y los archivos de datos del cargador de arranque deben crearse. La opción @option{--image-size} puede usarse para especificar el tamaño de la imagen."
 
 #. type: cindex
-#: doc/guix.texi:26772
+#: doc/guix.texi:30899
 #, no-wrap
 msgid "System images, creation in various formats"
 msgstr "Imágenes de sistema, creación en varios formatos"
 
 #. type: cindex
-#: doc/guix.texi:26773
+#: doc/guix.texi:30900
 #, no-wrap
 msgid "Creating system images in various formats"
 msgstr "Creación de imágenes del sistema en varios formatos"
 
 #. type: item
-#: doc/guix.texi:26774
+#: doc/guix.texi:30901
 #, no-wrap
 msgid "vm-image"
 msgstr "vm-image"
 
 #. type: itemx
-#: doc/guix.texi:26775
+#: doc/guix.texi:30902
 #, no-wrap
 msgid "disk-image"
 msgstr "disk-image"
 
 #. type: itemx
-#: doc/guix.texi:26776
+#: doc/guix.texi:30903
 #, no-wrap
 msgid "docker-image"
 msgstr "docker-image"
 
 #. type: table
-#: doc/guix.texi:26784
+#: doc/guix.texi:30911
 msgid "Return a virtual machine, disk image, or Docker image of the operating system declared in @var{file} that stands alone.  By default, @command{guix system} estimates the size of the image needed to store the system, but you can use the @option{--image-size} option to specify a value.  Docker images are built to contain exactly what they need, so the @option{--image-size} option is ignored in the case of @code{docker-image}."
-msgstr "Devuelve una máquina virtual, imagen de disco o imagen Docker del sistema operativo declarado en @var{fichero} que es independiente. Por omisión, @command{guix system} estima el tamaño de la imagen necesario para almacenar el sistema, pero puede usar la opción @option{--image-size} para especificar un valor. Las imágenes Docker se construyen para que contengan exactamente lo que necesitan, por lo que la opción @option{--image-size} se ignora en el caso de @code{docker-image}."
+msgstr "Devuelve una máquina virtual, imagen de disco o imagen Docker del sistema operativo declarado en @var{archivo} que es independiente. Por omisión, @command{guix system} estima el tamaño de la imagen necesario para almacenar el sistema, pero puede usar la opción @option{--image-size} para especificar un valor. Las imágenes Docker se construyen para que contengan exactamente lo que necesitan, por lo que la opción @option{--image-size} se ignora en el caso de @code{docker-image}."
 
 #. type: table
-#: doc/guix.texi:26787
-msgid "You can specify the root file system type by using the @option{--file-system-type} option.  It defaults to @code{ext4}."
-msgstr "Puede especificar el sistema de ficheros raíz mediante el uso de la opción @option{--file-system-type}. Su valor predeterminado es @code{ext4}."
+#: doc/guix.texi:30917
+msgid "The @code{disk-image} command can produce various image types.  The image type can be selected using the @command{--image-type} option.  It defaults to @code{raw}. When its value is @code{iso9660}, the @option{--label} option can be used to specify a volume ID with @code{disk-image}."
+msgstr "La orden @code{disk-image} puede producir varios tipos de imagen. Se puede seleccionar el tipo de imagen mediante la opción @command{--image-type}. Su valor predeterminado es @code{raw}. Cuando su valor es @code{iso9660}, se puede usar la opción @option{--label} para especificar un ID de volumen con @code{disk-image}."
 
 #. type: table
-#: doc/guix.texi:26791
-msgid "When using @code{vm-image}, the returned image is in qcow2 format, which the QEMU emulator can efficiently use. @xref{Running Guix in a VM}, for more information on how to run the image in a virtual machine."
-msgstr "Cuando se usa @code{vm-image}, la imagen devuelta está en formato qcow2, que QEMU puede usar eficientemente. @xref{Running Guix in a VM}, para más información sobre cómo ejecutar la imagen en una máquina virtual."
-
-#. type: table
-#: doc/guix.texi:26796
-msgid "When using @code{disk-image}, a raw disk image is produced; it can be copied as is to a USB stick, for instance.  Assuming @code{/dev/sdc} is the device corresponding to a USB stick, one can copy the image to it using the following command:"
-msgstr "Con @code{disk-image} se produce una imagen de disco cruda; puede copiarse tal cual en una memoria USB, por ejemplo. Asumiendo que @code{/dev/sdc} es el dispositivo que corresponde a la memoria USB, se podría copiar la imagen con la siguiente orden:"
+#: doc/guix.texi:30922
+msgid "When using the @code{raw} image type, a raw disk image is produced; it can be copied as is to a USB stick, for instance.  Assuming @code{/dev/sdc} is the device corresponding to a USB stick, one can copy the image to it using the following command:"
+msgstr "Cuando se usa el tipo de imagen @code{raw} se produce una imagen de disco cruda; puede copiarse tal cual en una memoria USB, por ejemplo. Asumiendo que @code{/dev/sdc} es el dispositivo que corresponde a la memoria USB, se podría copiar la imagen con la siguiente orden:"
 
 #. type: example
-#: doc/guix.texi:26799
+#: doc/guix.texi:30925
 #, no-wrap
-msgid "# dd if=$(guix system disk-image my-os.scm) of=/dev/sdc\n"
-msgstr "# dd if=$(guix system disk-image mi-so.scm) of=/dev/sdc\n"
+msgid "# dd if=$(guix system disk-image my-os.scm) of=/dev/sdc status=progress\n"
+msgstr "# dd if=$(guix system disk-image mi-so.scm) of=/dev/sdc status=progress\n"
 
 #. type: table
-#: doc/guix.texi:26806
+#: doc/guix.texi:30929
+msgid "The @code{--list-image-types} command lists all the available image types."
+msgstr "La orden @code{--list-image-types} muestra todos los tipos de imagen disponibles."
+
+#. type: table
+#: doc/guix.texi:30933
+msgid "When using @code{vm-image}, the returned image is in qcow2 format, which the QEMU emulator can efficiently use. @xref{Running Guix in a VM}, for more information on how to run the image in a virtual machine."
+msgstr "Cuando se usa @code{vm-image}, la imagen devuelta está en formato qcow2, que QEMU puede usar eficientemente. @xref{Running Guix in a VM}, para más información sobre cómo ejecutar la imagen en una máquina virtual."
+
+#. type: table
+#: doc/guix.texi:30939
 msgid "When using @code{docker-image}, a Docker image is produced.  Guix builds the image from scratch, not from a pre-existing Docker base image.  As a result, it contains @emph{exactly} what you define in the operating system configuration file.  You can then load the image and launch a Docker container using commands like the following:"
-msgstr "Con @code{docker-image} se produce una imagen Docker. Guix construye la imagen de cero, no de una imagen Docker base preexistente. Como resultado, contiene @emph{exactamente} lo definido en el fichero de configuración del sistema operativo. Puede cargar la imagen y ejecutar un contenedor Docker mediante el uso de ordenes como las siguientes:"
+msgstr "Con @code{docker-image} se produce una imagen Docker. Guix construye la imagen de cero, no de una imagen Docker base preexistente. Como resultado, contiene @emph{exactamente} lo definido en el archivo de configuración del sistema operativo. Puede cargar la imagen y ejecutar un contenedor Docker mediante el uso de ordenes como las siguientes:"
 
 # FUZZY
 #. type: example
-#: doc/guix.texi:26811
+#: doc/guix.texi:30944
 #, no-wrap
 msgid ""
 "image_id=\"`docker load < guix-system-docker-image.tar.gz`\"\n"
@@ -51516,40 +59050,45 @@ msgstr ""
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:26818
+#: doc/guix.texi:30951
 msgid "This command starts a new Docker container from the specified image.  It will boot the Guix system in the usual manner, which means it will start any services you have defined in the operating system configuration.  You can get an interactive shell running in the container using @command{docker exec}:"
 msgstr "Esta orden arranca un contenedor Docker nuevo a partir de la imagen especificada. El sistema Guix se arrancará de la manera habitual, lo que implica el inicio de cualquier servicio que se haya definido en la configuración del sistema operativo. Puede iniciar una sesión de shell interactiva en el contenedor mediante el uso de @command{docker exec}:"
 
 #. type: example
-#: doc/guix.texi:26821
+#: doc/guix.texi:30954
 #, no-wrap
 msgid "docker exec -ti $container_id /run/current-system/profile/bin/bash --login\n"
 msgstr "docker exec -ti $container_id /run/current-system/profile/bin/bash --login\n"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:26828
+#: doc/guix.texi:30961
 msgid "Depending on what you run in the Docker container, it may be necessary to give the container additional permissions.  For example, if you intend to build software using Guix inside of the Docker container, you may need to pass the @option{--privileged} option to @code{docker create}."
 msgstr "Dependiendo de lo que ejecute en el contenedor Docker, puede ser necesario proporcionar permisos adicionales al contenedor. Por ejemplo, si pretende construir software mediante el uso de Guix dentro del contenedor Docker, puede tener que proporcionar la opción @option{--privileged} a @code{docker create}."
 
+#. type: table
+#: doc/guix.texi:30965
+msgid "Last, the @option{--network} option applies to @command{guix system docker-image}: it produces an image where network is supposedly shared with the host, and thus without services like nscd or NetworkManager."
+msgstr "Por último, la opción @option{--network} afecta a @command{guix system docker-image}: produce una imagen donde la red supuestamente se comparte con el sistema anfitrión, y por lo tanto no contiene servicios como nscd o NetworkManager."
+
 # FUZZY
 #. type: table
-#: doc/guix.texi:26836
+#: doc/guix.texi:30973
 msgid "Return a script to run the operating system declared in @var{file} within a container.  Containers are a set of lightweight isolation mechanisms provided by the kernel Linux-libre.  Containers are substantially less resource-demanding than full virtual machines since the kernel, shared objects, and other resources can be shared with the host system; this also means they provide thinner isolation."
-msgstr "Devuelve un guión de la ejecución del sistema operativo declarado en @var{fichero} dentro de un contenedor. Los contenedores son un conjunto de mecanismos de aislamiento ligeros que proporciona el núcleo Linux-libre. Los contenedores necesitan sustancialmente menos recursos que máquinas virtuales completas debido a que el núcleo, los objetos compartidos y otros recursos pueden compartirse con el sistema anfitrión; esto también significa que proporcionan un menor aislamiento."
+msgstr "Devuelve un guión de la ejecución del sistema operativo declarado en @var{archivo} dentro de un contenedor. Los contenedores son un conjunto de mecanismos de aislamiento ligeros que proporciona el núcleo Linux-libre. Los contenedores necesitan sustancialmente menos recursos que máquinas virtuales completas debido a que el núcleo, los objetos compartidos y otros recursos pueden compartirse con el sistema anfitrión; esto también significa que proporcionan un menor aislamiento."
 
 #. type: table
-#: doc/guix.texi:26840
+#: doc/guix.texi:30977
 msgid "Currently, the script must be run as root in order to support more than a single user and group.  The container shares its store with the host system."
 msgstr "En este momento, el guión debe ejecutarse como root para permitir más de una única usuaria y grupo. El contenedor comparte su almacén con la máquina anfitriona."
 
 #. type: table
-#: doc/guix.texi:26844
+#: doc/guix.texi:30981
 msgid "As with the @code{vm} action (@pxref{guix system vm}), additional file systems to be shared between the host and container can be specified using the @option{--share} and @option{--expose} options:"
-msgstr "Como con la acción @code{vm} (@pxref{guix system vm}), sistemas de ficheros adicionales a compartir entre la máquina anfitriona y el contenedor pueden especificarse mediante el uso de las opciones @option{--share} y @option{--expose}:"
+msgstr "Como con la acción @code{vm} (@pxref{guix system vm}), sistemas de archivos adicionales a compartir entre la máquina anfitriona y el contenedor pueden especificarse mediante el uso de las opciones @option{--share} y @option{--expose}:"
 
 #. type: example
-#: doc/guix.texi:26848
+#: doc/guix.texi:30985
 #, no-wrap
 msgid ""
 "guix system container my-config.scm \\\n"
@@ -51559,307 +59098,317 @@ msgstr ""
 "   --expose=$HOME --share=$HOME/tmp=/intercambio\n"
 
 #. type: quotation
-#: doc/guix.texi:26852
+#: doc/guix.texi:30989
 msgid "This option requires Linux-libre 3.19 or newer."
 msgstr "Esta opción requiere Linux-libre 3.19 o posterior."
 
 #. type: Plain text
-#: doc/guix.texi:26859
+#: doc/guix.texi:30996
 msgid "@var{options} can contain any of the common build options (@pxref{Common Build Options}).  In addition, @var{options} can contain one of the following:"
 msgstr "@var{opciones} puede contener cualquiera de las opciones de construcción comunes (@pxref{Common Build Options}). Además, @var{opciones} puede contener una de las siguientes:"
 
 #. type: table
-#: doc/guix.texi:26868
+#: doc/guix.texi:31005
 msgid "Consider the operating-system @var{expr} evaluates to.  This is an alternative to specifying a file which evaluates to an operating system.  This is used to generate the Guix system installer @pxref{Building the Installation Image})."
-msgstr "Considera el sistema operativo al cual evalúa @var{expr}. Es una alternativa a la especificación de un fichero que evalúe a un sistema operativo. Se usa para la generación de la imagen de instalación de Guix (@pxref{Building the Installation Image})."
+msgstr "Considera el sistema operativo al cual evalúa @var{expr}. Es una alternativa a la especificación de un archivo que evalúe a un sistema operativo. Se usa para la generación de la imagen de instalación de Guix (@pxref{Building the Installation Image})."
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:26873
+#: doc/guix.texi:31010
 msgid "Attempt to build for @var{system} instead of the host system type.  This works as per @command{guix build} (@pxref{Invoking guix build})."
 msgstr "Intenta la construcción para @var{sistema} en vez de para el tipo de la máquina anfitriona. Funciona como en @command{guix build} (@pxref{Invoking guix build})."
 
 #. type: table
-#: doc/guix.texi:26878
+#: doc/guix.texi:31015
 msgid "Return the derivation file name of the given operating system without building anything."
-msgstr "Devuelve el nombre de fichero de la derivación del sistema operativo proporcionado sin construir nada."
+msgstr "Devuelve el nombre de archivo de la derivación del sistema operativo proporcionado sin construir nada."
 
 #. type: table
-#: doc/guix.texi:26887
+#: doc/guix.texi:31024
 msgid "As discussed above, @command{guix system init} and @command{guix system reconfigure} always save provenance information @i{via} a dedicated service (@pxref{Service Reference, @code{provenance-service-type}}).  However, other commands don't do that by default.  If you wish to, say, create a virtual machine image that contains provenance information, you can run:"
 msgstr "Como se ha mostrado previamente, @command{guix system init} y @command{guix system reconfigure} siempre almacenan información de procedencia a través de un servicio dedicado (@pxref{Service Reference, @code{provenance-service-type}}). No obstante, otras órdenes no hacen esto de manera predeterminada. Si desea, digamos, crear una imagen de máquina virtual que contenga información de procedencia, puede ejecutar:"
 
 #. type: example
-#: doc/guix.texi:26890
+#: doc/guix.texi:31027
 #, no-wrap
 msgid "guix system vm-image --save-provenance config.scm\n"
 msgstr "guix system vm-image --save-provenance config.scm\n"
 
 #. type: table
-#: doc/guix.texi:26897
+#: doc/guix.texi:31034
 msgid "That way, the resulting image will effectively ``embed its own source'' in the form of meta-data in @file{/run/current-system}.  With that information, one can rebuild the image to make sure it really contains what it pretends to contain; or they could use that to derive a variant of the image."
 msgstr "De este modo, la imagen resultante ``embeberá sus propias fuentes'' de manera efectiva en forma de metadatos en @file{/run/current-system}. Con dicha información se puede reconstruir la imagen para asegurarse de que realmente contiene lo que dice contener; o se puede usar para derivar una variante de la imagen."
 
 #. type: item
-#: doc/guix.texi:26898
+#: doc/guix.texi:31035
 #, no-wrap
-msgid "--file-system-type=@var{type}"
-msgstr "--file-system-type=@var{tipo}"
+msgid "--image-type=@var{type}"
+msgstr "--image-type=@var{tipo}"
 
 #. type: table
-#: doc/guix.texi:26902
-msgid "For the @code{disk-image} action, create a file system of the given @var{type} on the image."
-msgstr "Para la acción @code{disk-image}, crea un sistema de ficheros del @var{tipo} proporcionado en la imagen."
+#: doc/guix.texi:31038
+msgid "For the @code{disk-image} action, create an image with given @var{type}."
+msgstr "Para la acción @code{disk-image}, crea una imagen del @var{tipo} proporcionado."
 
 #. type: table
-#: doc/guix.texi:26904
-msgid "When this option is omitted, @command{guix system} uses @code{ext4}."
-msgstr "Cuando se omite esta opción, @command{guix system} usa @code{ext4}."
+#: doc/guix.texi:31041
+msgid "When this option is omitted, @command{guix system} uses the @code{raw} image type."
+msgstr "Cuando se omite esta opción, @command{guix system} usa @code{raw} como tipo de imagen."
 
 #. type: cindex
-#: doc/guix.texi:26905
+#: doc/guix.texi:31042
 #, no-wrap
 msgid "ISO-9660 format"
 msgstr "ISO-9660, formato"
 
 #. type: cindex
-#: doc/guix.texi:26906
+#: doc/guix.texi:31043
 #, no-wrap
 msgid "CD image format"
 msgstr "CD, formato de imagen"
 
 #. type: cindex
-#: doc/guix.texi:26907
+#: doc/guix.texi:31044
 #, no-wrap
 msgid "DVD image format"
 msgstr "DVD, formato de imagen"
 
 #. type: table
-#: doc/guix.texi:26910
-msgid "@code{--file-system-type=iso9660} produces an ISO-9660 image, suitable for burning on CDs and DVDs."
-msgstr "@code{--file-system-type=iso9660} produce una imagen ISO-9660, que puede ser grabada en CD y DVD."
+#: doc/guix.texi:31047
+msgid "@option{--image-type=iso9660} produces an ISO-9660 image, suitable for burning on CDs and DVDs."
+msgstr "@option{--file-system-type=iso9660} produce una imagen ISO-9660, que puede ser grabada en CD y DVD."
 
 #. type: item
-#: doc/guix.texi:26911
+#: doc/guix.texi:31048
 #, no-wrap
 msgid "--image-size=@var{size}"
 msgstr "--image-size=@var{tamaño}"
 
 #. type: table
-#: doc/guix.texi:26916
+#: doc/guix.texi:31053
 msgid "For the @code{vm-image} and @code{disk-image} actions, create an image of the given @var{size}.  @var{size} may be a number of bytes, or it may include a unit as a suffix (@pxref{Block size, size specifications,, coreutils, GNU Coreutils})."
 msgstr "Junto a las acciones @code{vm-image} y @code{disk-image}, crea una imagen del @var{ŧamaño} proporcionado. @var{tamaño} debe ser un número de bytes o puede incluir una unidad como sufijo (@pxref{Block size, size specifications,, coreutils, GNU Coreutils})."
 
 #. type: table
-#: doc/guix.texi:26920
+#: doc/guix.texi:31057
 msgid "When this option is omitted, @command{guix system} computes an estimate of the image size as a function of the size of the system declared in @var{file}."
-msgstr "Cuando se omite esta opción, @command{guix system} calcula una estimación del tamaño de la imagen en función del tamaño del sistema declarado en @var{fichero}."
+msgstr "Cuando se omite esta opción, @command{guix system} calcula una estimación del tamaño de la imagen en función del tamaño del sistema declarado en @var{archivo}."
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:26925
+#: doc/guix.texi:31062
 msgid "For the @code{container} action, allow containers to access the host network, that is, do not create a network namespace."
 msgstr "Con la acción @code{container}, permite a los contenedores acceder a la red de la máquina anfitriona, es decir, no crea un espacio de nombres de red."
 
 #. type: item
-#: doc/guix.texi:26931
+#: doc/guix.texi:31068
 #, no-wrap
 msgid "--skip-checks"
 msgstr "--skip-checks"
 
 #. type: table
-#: doc/guix.texi:26933
+#: doc/guix.texi:31070
 msgid "Skip pre-installation safety checks."
 msgstr "Omite las comprobaciones de seguridad previas a la instalación."
 
 #. type: table
-#: doc/guix.texi:26940
+#: doc/guix.texi:31077
 msgid "By default, @command{guix system init} and @command{guix system reconfigure} perform safety checks: they make sure the file systems that appear in the @code{operating-system} declaration actually exist (@pxref{File Systems}), and that any Linux kernel modules that may be needed at boot time are listed in @code{initrd-modules} (@pxref{Initial RAM Disk}).  Passing this option skips these tests altogether."
-msgstr "Por omisión, @command{guix system init} y @command{guix system reconfigure} realizan comprobaciones de seguridad: se aseguran de que los sistemas de ficheros que aparecen en la declaración @code{operating-system} realmente existen (@pxref{File Systems}) y que cualquier módulo del núcleo Linux que pudiese necesitarse durante el arranque se encuentre en @code{initrd-modules} (@pxref{Initial RAM Disk}). El uso de esta opción omite todas estas comprobaciones."
+msgstr "Por omisión, @command{guix system init} y @command{guix system reconfigure} realizan comprobaciones de seguridad: se aseguran de que los sistemas de archivos que aparecen en la declaración @code{operating-system} realmente existen (@pxref{File Systems}) y que cualquier módulo del núcleo Linux que pudiese necesitarse durante el arranque se encuentre en @code{initrd-modules} (@pxref{Initial RAM Disk}). El uso de esta opción omite todas estas comprobaciones."
+
+#. type: table
+#: doc/guix.texi:31080
+msgid "Instruct @command{guix system reconfigure} to allow system downgrades."
+msgstr "Indica a @command{guix system reconfigure} que permita la instalación de versiones más antiguas."
+
+#. type: table
+#: doc/guix.texi:31088
+msgid "By default, @command{reconfigure} prevents you from downgrading your system.  It achieves that by comparing the provenance info of your system (shown by @command{guix system describe}) with that of your @command{guix} command (shown by @command{guix describe}).  If the commits for @command{guix} are not descendants of those used for your system, @command{guix system reconfigure} errors out.  Passing @option{--allow-downgrades} allows you to bypass these checks."
+msgstr "De manera predeterminada @command{reconfigure} evita que instale una versión más antigua. Esto se consigue comparando la información de procedencia en su sistema operativo (mostrada por @command{guix system describe}) con aquella de la orden @command{guix} (mostrada por @command{guix describe}). Si las revisiones de @command{guix} no son descendientes de las usadas en su sistema, @command{guix system reconfigure} termina con un error. Proporcionar la opción @option{--allow-downgrades} le permite evitar estas comprobaciones."
 
 #. type: cindex
-#: doc/guix.texi:26941
+#: doc/guix.texi:31094
 #, no-wrap
 msgid "on-error"
 msgstr "on-error"
 
 #. type: cindex
-#: doc/guix.texi:26942
+#: doc/guix.texi:31095
 #, no-wrap
 msgid "on-error strategy"
 msgstr "estrategia ``on-error''"
 
 #. type: cindex
-#: doc/guix.texi:26943
+#: doc/guix.texi:31096
 #, no-wrap
 msgid "error strategy"
 msgstr "estrategia en caso de error"
 
 #. type: item
-#: doc/guix.texi:26944
+#: doc/guix.texi:31097
 #, no-wrap
 msgid "--on-error=@var{strategy}"
 msgstr "--on-error=@var{estrategia}"
 
 #. type: table
-#: doc/guix.texi:26947
+#: doc/guix.texi:31100
 msgid "Apply @var{strategy} when an error occurs when reading @var{file}.  @var{strategy} may be one of the following:"
-msgstr "Aplica @var{estrategia} cuando ocurre un error durante la lectura de @var{fichero}. @var{estrategia} puede ser uno de los siguientes valores:"
+msgstr "Aplica @var{estrategia} cuando ocurre un error durante la lectura de @var{archivo}. @var{estrategia} puede ser uno de los siguientes valores:"
 
 #. type: item
-#: doc/guix.texi:26949
+#: doc/guix.texi:31102
 #, no-wrap
 msgid "nothing-special"
 msgstr "nothing-special"
 
 #. type: table
-#: doc/guix.texi:26951
+#: doc/guix.texi:31104
 msgid "Report the error concisely and exit.  This is the default strategy."
 msgstr "Informa concisamente del error y termina la ejecución. Es la estrategia predeterminada."
 
 #. type: item
-#: doc/guix.texi:26952
+#: doc/guix.texi:31105
 #, no-wrap
 msgid "backtrace"
 msgstr "backtrace"
 
 #. type: table
-#: doc/guix.texi:26954
+#: doc/guix.texi:31107
 msgid "Likewise, but also display a backtrace."
 msgstr "Del mismo modo, pero también muestra la secuencia de llamadas."
 
 #. type: item
-#: doc/guix.texi:26955
+#: doc/guix.texi:31108
 #, no-wrap
 msgid "debug"
 msgstr "debug"
 
 #. type: table
-#: doc/guix.texi:26961
+#: doc/guix.texi:31114
 msgid "Report the error and enter Guile's debugger.  From there, you can run commands such as @code{,bt} to get a backtrace, @code{,locals} to display local variable values, and more generally inspect the state of the program.  @xref{Debug Commands,,, guile, GNU Guile Reference Manual}, for a list of available debugging commands."
 msgstr "Informa del error y entra en el depurador de Guile. A partir de ahí, puede ejecutar órdenes como @code{,bt} para obtener la secuencia de llamadas, @code{,locals} para mostrar los valores de las variables locales, e inspeccionar el estado del programa de forma más general. @xref{Debug Commands,,, guile, GNU Guile Reference Manual}, para una lista de órdenes de depuración disponibles."
 
 #. type: Plain text
-#: doc/guix.texi:26968
+#: doc/guix.texi:31121
 msgid "Once you have built, configured, re-configured, and re-re-configured your Guix installation, you may find it useful to list the operating system generations available on disk---and that you can choose from the bootloader boot menu:"
 msgstr "Una vez haya construido, configurado, reconfigurado y re-reconfigurado su instalación de Guix, puede encontrar útil enumerar las generaciones del sistema operativo disponibles en el disco---y que puede seleccionar en el menú de arranque:"
 
 #. type: item
-#: doc/guix.texi:26971
+#: doc/guix.texi:31124
 #, no-wrap
 msgid "describe"
 msgstr "describe"
 
 #. type: table
-#: doc/guix.texi:26974
+#: doc/guix.texi:31127
 msgid "Describe the current system generation: its file name, the kernel and bootloader used, etc., as well as provenance information when available."
-msgstr "Describe la generación actual del sistema: su nombre de fichero, el núcleo y el cargador de arranque usados, etcétera, así como información de procedencia cuando esté disponible."
+msgstr "Describe la generación actual del sistema: su nombre de archivo, el núcleo y el cargador de arranque usados, etcétera, así como información de procedencia cuando esté disponible."
 
 #. type: item
-#: doc/guix.texi:26975
+#: doc/guix.texi:31128
 #, no-wrap
 msgid "list-generations"
 msgstr "list-generations"
 
 #. type: table
-#: doc/guix.texi:26980
+#: doc/guix.texi:31133
 msgid "List a summary of each generation of the operating system available on disk, in a human-readable way.  This is similar to the @option{--list-generations} option of @command{guix package} (@pxref{Invoking guix package})."
 msgstr "Muestra un resumen de cada generación del sistema operativo disponible en el disco, de manera legible por humanos. Es similar a la opción @option{--list-generations} de @command{guix package} (@pxref{Invoking guix package})."
 
 #. type: table
-#: doc/guix.texi:26985
+#: doc/guix.texi:31138
 msgid "Optionally, one can specify a pattern, with the same syntax that is used in @command{guix package --list-generations}, to restrict the list of generations displayed.  For instance, the following command displays generations that are up to 10 days old:"
 msgstr "De manera opcional, se puede especificar un patrón, con la misma sintaxis que la usada en @command{guix package --list-generations}, para restringir la lista de generaciones mostradas. Por ejemplo, la siguiente orden muestra generaciones que tienen hasta 10 días de antigüedad:"
 
 #. type: example
-#: doc/guix.texi:26988
+#: doc/guix.texi:31141
 #, no-wrap
 msgid "$ guix system list-generations 10d\n"
 msgstr "$ guix system list-generations 10d\n"
 
 # FUZZY
 #. type: Plain text
-#: doc/guix.texi:26995
+#: doc/guix.texi:31148
 msgid "The @command{guix system} command has even more to offer! The following sub-commands allow you to visualize how your system services relate to each other:"
 msgstr "¡La orden @command{guix system} tiene aún más que ofrecer! Las siguientes ordenes le permiten visualizar cual es la relación entre los servicios del sistema:"
 
 #. type: anchor{#1}
-#: doc/guix.texi:26997
+#: doc/guix.texi:31150
 msgid "system-extension-graph"
 msgstr "system-extension-graph"
 
 #. type: item
-#: doc/guix.texi:26999
+#: doc/guix.texi:31152
 #, no-wrap
 msgid "extension-graph"
 msgstr "extension-graph"
 
 #. type: table
-#: doc/guix.texi:27004
-msgid "Emit in Dot/Graphviz format to standard output the @dfn{service extension graph} of the operating system defined in @var{file} (@pxref{Service Composition}, for more information on service extensions.)"
-msgstr "Emite en formato Dot/Graphviz por la salida estándar el @dfn{grafo de extensiones de servicio} del sistema operativo definido en @var{fichero} (@pxref{Service Composition}, para más información sobre extensiones de servicio)."
+#: doc/guix.texi:31157
+msgid "Emit in Dot/Graphviz format to standard output the @dfn{service extension graph} of the operating system defined in @var{file} (@pxref{Service Composition}, for more information on service extensions)."
+msgstr "Emite en formato Dot/Graphviz por la salida estándar el @dfn{grafo de extensiones de servicio} del sistema operativo definido en @var{archivo} (@pxref{Service Composition}, para más información sobre extensiones de servicio)."
 
 #. type: table
-#: doc/guix.texi:27006
+#: doc/guix.texi:31159
 msgid "The command:"
 msgstr "La orden:"
 
 #. type: example
-#: doc/guix.texi:27009
+#: doc/guix.texi:31162
 #, no-wrap
-msgid "$ guix system extension-graph @var{file} | dot -Tpdf > services.pdf\n"
-msgstr "$ guix system extension-graph @var{fichero} | dot -Tpdf > servicios.pdf\n"
+msgid "$ guix system extension-graph @var{file} | xdot -\n"
+msgstr "$ guix system extension-graph @var{archivo} | xdot -\n"
 
 #. type: table
-#: doc/guix.texi:27012
-msgid "produces a PDF file showing the extension relations among services."
-msgstr "produce un fichero PDF que muestra las relaciones de extensiones entre los servicios."
+#: doc/guix.texi:31165
+msgid "shows the extension relations among services."
+msgstr "muestra las relaciones de extensión entre los servicios."
 
 #. type: anchor{#1}
-#: doc/guix.texi:27014
+#: doc/guix.texi:31167
 msgid "system-shepherd-graph"
 msgstr "system-shepherd-graph"
 
 #. type: item
-#: doc/guix.texi:27014
+#: doc/guix.texi:31167
 #, no-wrap
 msgid "shepherd-graph"
 msgstr "shepherd-graph"
 
 #. type: table
-#: doc/guix.texi:27019
+#: doc/guix.texi:31172
 msgid "Emit in Dot/Graphviz format to standard output the @dfn{dependency graph} of shepherd services of the operating system defined in @var{file}.  @xref{Shepherd Services}, for more information and for an example graph."
-msgstr "Emite en formato Dot/Graphviz por la salida estándar el @dfn{grafo de dependencias} de los servicios shepherd del sistema operativo definido en @var{fichero}. @xref{Shepherd Services}, para más información y un grafo de ejemplo."
+msgstr "Emite en formato Dot/Graphviz por la salida estándar el @dfn{grafo de dependencias} de los servicios shepherd del sistema operativo definido en @var{archivo}. @xref{Shepherd Services}, para más información y un grafo de ejemplo."
 
 #. type: section
-#: doc/guix.texi:27023
+#: doc/guix.texi:31176
 #, no-wrap
 msgid "Invoking @code{guix deploy}"
 msgstr "Invocación de @command{guix deploy}"
 
 #. type: Plain text
-#: doc/guix.texi:27031
+#: doc/guix.texi:31184
 msgid "We've already seen @code{operating-system} declarations used to manage a machine's configuration locally.  Suppose you need to configure multiple machines, though---perhaps you're managing a service on the web that's comprised of several servers.  @command{guix deploy} enables you to use those same @code{operating-system} declarations to manage multiple remote hosts at once as a logical ``deployment''."
 msgstr "Ya hemos visto como usar declaraciones @code{operating-system} para gestionar la configuración de una máquina de manera local. Supongamos no obstante que necesita configurar múltiples máquinas---quizá esté gestionando un servicio en la web que se componga de varios servidores. @command{guix deploy} le permite usar las mismas declaraciones @code{operating-system} para gestionar múltiples máquinas remotas como un único ``despliegue'' lógico."
 
 #. type: quotation
-#: doc/guix.texi:27036
+#: doc/guix.texi:31189
 msgid "The functionality described in this section is still under development and is subject to change.  Get in touch with us on @email{guix-devel@@gnu.org}!"
 msgstr "La funcionalidad descrita en esta sección está todavía en desarrollo y sujeta a cambios. Puede ponerse en contacto con nosotras a través de @email{guix-devel@@gnu.org}."
 
 #. type: example
-#: doc/guix.texi:27040
+#: doc/guix.texi:31193
 #, no-wrap
 msgid "guix deploy @var{file}\n"
-msgstr "guix deploy @var{fichero}\n"
+msgstr "guix deploy @var{archivo}\n"
 
 #. type: Plain text
-#: doc/guix.texi:27044
+#: doc/guix.texi:31197
 msgid "Such an invocation will deploy the machines that the code within @var{file} evaluates to.  As an example, @var{file} might contain a definition like this:"
-msgstr "Dicha invocación llevará a cabo en las máquinas el despliegue al cual el @var{fichero} evalúe. Como ejemplo, @var{fichero} puede contener una definición como esta:"
+msgstr "Dicha invocación llevará a cabo en las máquinas el despliegue al cual el @var{archivo} evalúe. Como ejemplo, @var{archivo} puede contener una definición como esta:"
 
 #. type: lisp
-#: doc/guix.texi:27051
+#: doc/guix.texi:31204
 #, no-wrap
 msgid ""
 ";; This is a Guix deployment of a \"bare bones\" setup, with\n"
@@ -51877,7 +59426,7 @@ msgstr ""
 ";; a la interfaz local de la máquina anfitriona.\n"
 
 #. type: lisp
-#: doc/guix.texi:27054
+#: doc/guix.texi:31207
 #, no-wrap
 msgid ""
 "(use-service-modules networking ssh)\n"
@@ -51889,7 +59438,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:27075
+#: doc/guix.texi:31228
 #, no-wrap
 msgid ""
 "(define %system\n"
@@ -51938,7 +59487,7 @@ msgstr ""
 
 # FUZZY
 #. type: lisp
-#: doc/guix.texi:27085
+#: doc/guix.texi:31238
 #, no-wrap
 msgid ""
 "(list (machine\n"
@@ -51962,34 +59511,34 @@ msgstr ""
 "                       (port 2222)))))\n"
 
 #. type: Plain text
-#: doc/guix.texi:27098
-msgid "The file should evaluate to a list of @var{machine} objects.  This example, upon being deployed, will create a new generation on the remote system realizing the @code{operating-system} declaration @var{%system}.  @var{environment} and @var{configuration} specify how the machine should be provisioned---that is, how the computing resources should be created and managed.  The above example does not create any resources, as a @code{'managed-host} is a machine that is already running the Guix system and available over the network.  This is a particularly simple case; a more complex deployment may involve, for example, starting virtual machines through a Virtual Private Server (VPS) provider.  In such a case, a different @var{environment} type would be used."
-msgstr "El fichero debe evaluar a una lista de objetos @var{machine}. Este ejemplo, durante el despliegue, creará una nueva generación en el sistema remoto que implemente la declaración @code{operating-system} @var{%system}. @var{environment} y @var{configuration} especifican cómo debe aprovisionarse la máquina---es decir, cómo se crean y gestionan los recursos computacionales. El ejemplo previo no crea ningún recurso, ya que @code{'managed-host} es una máquina que ya está ejecutando el sistema Guix y está disponible a través de la red. Este es un caso particularmente simple; un despliegue más complejo puede implicar, por ejemplo, el arranque de máquinas virtuales a través de un proveedor de servidores privados virtuales (VPS). En cuyo caso se hubiera usado un tipo distinto en @var{environment}."
+#: doc/guix.texi:31251
+msgid "The file should evaluate to a list of @var{machine} objects.  This example, upon being deployed, will create a new generation on the remote system realizing the @code{operating-system} declaration @code{%system}.  @code{environment} and @code{configuration} specify how the machine should be provisioned---that is, how the computing resources should be created and managed.  The above example does not create any resources, as a @code{'managed-host} is a machine that is already running the Guix system and available over the network.  This is a particularly simple case; a more complex deployment may involve, for example, starting virtual machines through a Virtual Private Server (VPS) provider.  In such a case, a different @var{environment} type would be used."
+msgstr "El archivo debe evaluar a una lista de objetos @var{machine}. Este ejemplo, durante el despliegue, creará una nueva generación en el sistema remoto que implemente la declaración @code{operating-system} @var{%system}. @code{environment} y @code{configuration} especifican cómo debe aprovisionarse la máquina---es decir, cómo se crean y gestionan los recursos computacionales. El ejemplo previo no crea ningún recurso, ya que @code{'managed-host} es una máquina que ya está ejecutando el sistema Guix y está disponible a través de la red. Este es un caso particularmente simple; un despliegue más complejo puede implicar, por ejemplo, el arranque de máquinas virtuales a través de un proveedor de servidores privados virtuales (VPS). En dicho caso se usaría un tipo distinto en @var{environment}."
 
 #. type: Plain text
-#: doc/guix.texi:27102
-msgid "Do note that you first need to generate a key pair on the coordinator machine to allow the daemon to export signed archives of files from the store (@pxref{Invoking guix archive})."
-msgstr "Tenga en cuenta que primero debe generar un par de claves en la máquina coordinadora para permitir al daemon exportar archivos firmados de ficheros en el almacén (@pxref{Invoking guix archive}):"
+#: doc/guix.texi:31256
+msgid "Do note that you first need to generate a key pair on the coordinator machine to allow the daemon to export signed archives of files from the store (@pxref{Invoking guix archive}), though this step is automatic on Guix System:"
+msgstr "Tenga en cuenta que primero debe generar un par de claves en la máquina coordinadora para permitir al daemon exportar archivos firmados de archivos en el almacén (@pxref{Invoking guix archive}), aunque este paso se realiza de manera automática en el sistema Guix:"
 
 # FUZZY
 #. type: Plain text
-#: doc/guix.texi:27110
+#: doc/guix.texi:31264
 msgid "Each target machine must authorize the key of the master machine so that it accepts store items it receives from the coordinator:"
 msgstr "Cada máquina de destino debe autorizar a la clave de la máquina maestra para que acepte elementos del almacén que reciba de la coordinadora:"
 
 #. type: example
-#: doc/guix.texi:27113
+#: doc/guix.texi:31267
 #, no-wrap
 msgid "# guix archive --authorize < coordinator-public-key.txt\n"
 msgstr "# guix archive --authorize < clave-publica-coordinadora.txt\n"
 
 #. type: Plain text
-#: doc/guix.texi:27124
+#: doc/guix.texi:31278
 msgid "@code{user}, in this example, specifies the name of the user account to log in as to perform the deployment.  Its default value is @code{root}, but root login over SSH may be forbidden in some cases.  To work around this, @command{guix deploy} can log in as an unprivileged user and employ @code{sudo} to escalate privileges.  This will only work if @code{sudo} is currently installed on the remote and can be invoked non-interactively as @code{user}.  That is, the line in @code{sudoers} granting @code{user} the ability to use @code{sudo} must contain the @code{NOPASSWD} tag.  This can be accomplished with the following operating system configuration snippet:"
 msgstr "La usuaria proporcionada en @code{user}, en este ejemplo, especifica la cuenta de la usuaria con la que ingresar en el sistema para realizar el despliegue. Su valor predeterminado es @code{root}, pero el ingreso al sistema como root a través de SSH en algunos casos puede no estar permitido. Para solventar este problema, @command{guix deploy} puede ingresar al sistema como una usuaria sin privilegios y ejecutar @code{sudo} para escalar privilegios. Esto funciona únicamente si @code{sudo} está instalado en el sistema remoto y se puede invocar de manera no interactiva como @code{user}. Es decir: la línea de @code{sudoers} que permite a la usuaria @code{user} la capacidad de usar @code{sudo} debe contener la etiqueta @code{NOPASSWD}. Esto se puede conseguir con el siguiente fragmento de la configuración de sistema operativo:"
 
 #. type: lisp
-#: doc/guix.texi:27128
+#: doc/guix.texi:31282
 #, no-wrap
 msgid ""
 "(use-modules ...\n"
@@ -52001,7 +59550,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:27130
+#: doc/guix.texi:31284
 #, no-wrap
 msgid ""
 "(define %user \"username\")\n"
@@ -52011,7 +59560,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:27138
+#: doc/guix.texi:31292
 #, no-wrap
 msgid ""
 "(operating-system\n"
@@ -52033,225 +59582,248 @@ msgstr ""
 "\n"
 
 #. type: Plain text
-#: doc/guix.texi:27143
+#: doc/guix.texi:31297
 msgid "For more information regarding the format of the @file{sudoers} file, consult @command{man sudoers}."
-msgstr "Para obtener más información sobre el formato del fichero @file{sudoers} consulte @command{man sudoers}."
+msgstr "Para obtener más información sobre el formato del archivo @file{sudoers} consulte @command{man sudoers}."
 
 #. type: deftp
-#: doc/guix.texi:27144
+#: doc/guix.texi:31298
 #, no-wrap
 msgid "{Data Type} machine"
 msgstr "{Tipo de datos} machine"
 
 #. type: deftp
-#: doc/guix.texi:27147
+#: doc/guix.texi:31301
 msgid "This is the data type representing a single machine in a heterogeneous Guix deployment."
 msgstr "Tipo de datos que representa una máquina individual en un despliegue heterogéneo de Guix."
 
 #. type: table
-#: doc/guix.texi:27151
+#: doc/guix.texi:31305
 msgid "The object of the operating system configuration to deploy."
 msgstr "El objeto de la configuración de sistema operativo a desplegar."
 
 #. type: code{#1}
-#: doc/guix.texi:27152
+#: doc/guix.texi:31306
 #, no-wrap
 msgid "environment"
 msgstr "environment"
 
 # FUZZY FUZZY FUZZY
 #. type: table
-#: doc/guix.texi:27154
+#: doc/guix.texi:31308
 msgid "An @code{environment-type} describing how the machine should be provisioned."
 msgstr "Un objeto @code{environment-type} que describe como debe aprovisionarse la máquina."
 
 #. type: item
-#: doc/guix.texi:27155
+#: doc/guix.texi:31309
 #, no-wrap
 msgid "@code{configuration} (default: @code{#f})"
 msgstr "@code{configuration} (predeterminado: @code{#f})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:27160
+#: doc/guix.texi:31314
 msgid "An object describing the configuration for the machine's @code{environment}.  If the @code{environment} has a default configuration, @code{#f} may be used.  If @code{#f} is used for an environment with no default configuration, however, an error will be thrown."
 msgstr "Un objeto que describe la configuración para el entorno (@code{environment}) de la máquina. Si @code{environment} tiene una configuración predeterminada, puede usarse @code{#f}. No obstante, si se usa @code{#f} para un entorno sin configuración predeterminada se emitirá un error."
 
 #. type: deftp
-#: doc/guix.texi:27163
+#: doc/guix.texi:31317
 #, no-wrap
 msgid "{Data Type} machine-ssh-configuration"
 msgstr "{Tipo de datos} machine-ssh-configuration"
 
 # FUZZY
 #. type: deftp
-#: doc/guix.texi:27166
+#: doc/guix.texi:31320
 msgid "This is the data type representing the SSH client parameters for a machine with an @code{environment} of @code{managed-host-environment-type}."
 msgstr "Tipo de datos que representa los parámetros del cliente SSH para una máquina con un entorno (@code{environment}) de tipo gestionado (@code{managed-host-environment-type})."
 
 #. type: item
-#: doc/guix.texi:27169
+#: doc/guix.texi:31323
 #, no-wrap
 msgid "@code{build-locally?} (default: @code{#t})"
 msgstr "@code{build-locally?} (predeterminado: @code{#t})"
 
 #. type: table
-#: doc/guix.texi:27171
+#: doc/guix.texi:31325
 msgid "If false, system derivations will be built on the machine being deployed to."
 msgstr "Si es falso, las derivaciones del sistema se construirán en la máquina sobre la que se realiza el despliegue."
 
+#. type: code{#1}
+#: doc/guix.texi:31325
+#, no-wrap
+msgid "system"
+msgstr "system"
+
 #. type: table
-#: doc/guix.texi:27174
+#: doc/guix.texi:31328
 msgid "The system type describing the architecture of the machine being deployed to---e.g., @code{\"x86_64-linux\"}."
 msgstr "El tipo de sistema que describe la arquitectura de la máquina sobre la que se realiza el despliegue---por ejemplo, @code{\"x86_64-linux\"}."
 
 #. type: item
-#: doc/guix.texi:27174
+#: doc/guix.texi:31328
 #, no-wrap
 msgid "@code{authorize?} (default: @code{#t})"
 msgstr "@code{authorize?} (predeterminado: @code{#t})"
 
 #. type: table
-#: doc/guix.texi:27177
+#: doc/guix.texi:31331
 msgid "If true, the coordinator's signing key will be added to the remote's ACL keyring."
 msgstr "Si es verdadero, la clave de firma de la máquina coordinadora debe añadirse al anillo de claves del control de acceso (ACL) de la máquina remota."
 
 #. type: item
-#: doc/guix.texi:27178
+#: doc/guix.texi:31332
 #, no-wrap
 msgid "@code{user} (default: @code{\"root\"})"
 msgstr "@code{user} (predeterminada: @code{\"root\"})"
 
 #. type: item
-#: doc/guix.texi:27179
+#: doc/guix.texi:31333
 #, no-wrap
 msgid "@code{identity} (default: @code{#f})"
 msgstr "@code{identity} (predeterminada: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:27182
+#: doc/guix.texi:31336
 msgid "If specified, the path to the SSH private key to use to authenticate with the remote host."
-msgstr "Cuando se especifica, indica la ruta al fichero que contiene la clave privada de SSH para la identificación con la máquina remota."
+msgstr "Cuando se especifica, indica la ruta al archivo que contiene la clave privada de SSH para la identificación con la máquina remota."
 
 #. type: item
-#: doc/guix.texi:27183
+#: doc/guix.texi:31337
 #, no-wrap
 msgid "@code{host-key} (default: @code{#f})"
 msgstr "@code{host-key} (predeterminada: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:27185
+#: doc/guix.texi:31339
 msgid "This should be the SSH host key of the machine, which looks like this:"
 msgstr "Esta debería ser la clave SSH de la máquina, que puede ser más o menos así:"
 
 #. type: example
-#: doc/guix.texi:27188
+#: doc/guix.texi:31342
 #, no-wrap
 msgid "ssh-ed25519 AAAAC3Nz@dots{} root@@example.org\n"
 msgstr "ssh-ed25519 AAAAC3Nz@dots{} root@@example.org\n"
 
 #. type: table
-#: doc/guix.texi:27193
+#: doc/guix.texi:31347
 msgid "When @code{host-key} is @code{#f}, the server is authenticated against the @file{~/.ssh/known_hosts} file, just like the OpenSSH @command{ssh} client does."
-msgstr "Cuando @code{host-key} es @code{#f}, el servidor se identifica con el fichero @file{~/.ssh/known_hosts}, igual que hace el cliente @command{ssh} de OpenSSH."
+msgstr "Cuando @code{host-key} es @code{#f}, el servidor se identifica con el archivo @file{~/.ssh/known_hosts}, igual que hace el cliente @command{ssh} de OpenSSH."
+
+#. type: item
+#: doc/guix.texi:31348
+#, no-wrap
+msgid "@code{allow-downgrades?} (default: @code{#f})"
+msgstr "@code{allow-downgrades?} (predeterminado: @code{#f})"
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:31350
+msgid "Whether to allow potential downgrades."
+msgstr "Determina si se permiten instalaciones de versiones potencialmente anteriores."
+
+#. type: table
+#: doc/guix.texi:31358
+msgid "Like @command{guix system reconfigure}, @command{guix deploy} compares the channel commits currently deployed on the remote host (as returned by @command{guix system describe}) to those currently in use (as returned by @command{guix describe}) to determine whether commits currently in use are descendants of those deployed.  When this is not the case and @code{allow-downgrades?} is false, it raises an error.  This ensures you do not accidentally downgrade remote machines."
+msgstr "Al igual que @command{guix system reconfigure}, @command{guix deploy} compara la revisión del canal desplegada actualmente en la máquina remota (como muestra @command{guix system describe}) con aquella que se esté usando en ese momento (como muestra @command{guix describe}) para determinar si las revisiones que se despliegan son descendientes de aquellas en uso. Cuando no es el caso y el valor de @code{allow-downgrades?} es falso, emite un error. Esto le permite no instalar accidentalmente una versión anterior en máquinas remotas."
 
 #. type: deftp
-#: doc/guix.texi:27197
+#: doc/guix.texi:31361
 #, no-wrap
 msgid "{Data Type} digital-ocean-configuration"
 msgstr "{Tipo de datos} digital-ocean-configuration"
 
 # FUZZY
 #. type: deftp
-#: doc/guix.texi:27200
+#: doc/guix.texi:31364
 msgid "This is the data type describing the Droplet that should be created for a machine with an @code{environment} of @code{digital-ocean-environment-type}."
 msgstr "Tipo de datos que representa el Droplet que debe crearse para la máquina con @code{environment} @code{digital-ocean-environment-type}."
 
 #. type: code{#1}
-#: doc/guix.texi:27202
+#: doc/guix.texi:31366
 #, no-wrap
 msgid "ssh-key"
 msgstr "ssh-key"
 
 #. type: table
-#: doc/guix.texi:27205
+#: doc/guix.texi:31369
 msgid "The path to the SSH private key to use to authenticate with the remote host. In the future, this field may not exist."
-msgstr "La ruta al fichero que contiene la clave privada de SSH usada para la identificación con la máquina remota. En el futuro este campo puede desaparecer."
+msgstr "La ruta al archivo que contiene la clave privada de SSH usada para la identificación con la máquina remota. En el futuro este campo puede desaparecer."
 
 #. type: code{#1}
-#: doc/guix.texi:27205
+#: doc/guix.texi:31369
 #, no-wrap
 msgid "tags"
 msgstr "tags"
 
 #. type: table
-#: doc/guix.texi:27208
+#: doc/guix.texi:31372
 msgid "A list of string ``tags'' that uniquely identify the machine. Must be given such that no two machines in the deployment have the same set of tags."
 msgstr "Una lista de cadenas de etiquetas (``tags'') que identifican de manera unívoca a la máquina. Debe comprobarse que en un despliegue no existan dos máquinas que tengan el mismo conjunto de etiquetas."
 
 #. type: code{#1}
-#: doc/guix.texi:27208
+#: doc/guix.texi:31372
 #, no-wrap
 msgid "region"
 msgstr "region"
 
 #. type: table
-#: doc/guix.texi:27210
+#: doc/guix.texi:31374
 msgid "A Digital Ocean region slug, such as @code{\"nyc3\"}."
 msgstr "Descriptor (slug) de región de Digital Ocean, como @code{\"nyc3\"}."
 
 #. type: table
-#: doc/guix.texi:27212
+#: doc/guix.texi:31376
 msgid "A Digital Ocean size slug, such as @code{\"s-1vcpu-1gb\"}"
 msgstr "Descriptor (slug) de tamaño de Digital Ocean, como @code{\"s-1vcpu-1gb\"}"
 
 #. type: code{#1}
-#: doc/guix.texi:27212
+#: doc/guix.texi:31376
 #, no-wrap
 msgid "enable-ipv6?"
 msgstr "enable-ipv6?"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:27214
+#: doc/guix.texi:31378
 msgid "Whether or not the droplet should be created with IPv6 networking."
 msgstr "Determina si droplet debe crearse con capacidad de usar redes IPv6 o no."
 
 #. type: section
-#: doc/guix.texi:27218
+#: doc/guix.texi:31382
 #, no-wrap
 msgid "Running Guix in a Virtual Machine"
 msgstr "Ejecución de Guix en una máquina virtual"
 
 # TODO (MAAV): Comprobar por qué se cambió a x86_64
 #. type: Plain text
-#: doc/guix.texi:27227
+#: doc/guix.texi:31391
 msgid "To run Guix in a virtual machine (VM), one can use the pre-built Guix VM image distributed at @url{@value{BASE-URL}/guix-system-vm-image-@value{VERSION}.x86_64-linux.xz}.  This image is a compressed image in QCOW format.  You will first need to decompress with @command{xz -d}, and then you can pass it to an emulator such as QEMU (see below for details)."
 msgstr "Para ejecutar Guix en una máquina virtual (VM), se puede usar tanto la imagen de máquina virtual de Guix preconstruida que se distribuye en @indicateurl{@value{BASE-URL}/guix-system-vm-image-@value{VERSION}.x86_64-linux.xz}. Esta imagen es una imagen comprimida con formato QCOW. Primero tendrá que descomprimirla con @command{xz -d} y, una vez hecho, podrá proporcionarsela a un emulador como QEMU (véase más detalles a continuación)."
 
 #. type: Plain text
-#: doc/guix.texi:27233
-msgid "This image boots the Xfce graphical environment and it contains some commonly-used tools.  You can install more software in the image by running @command{guix package} in a terminal (@pxref{Invoking guix package}).  You can also reconfigure the system based on its initial configuration file available as @file{/etc/config.scm} (@pxref{Using the Configuration System})."
-msgstr "Esta imagen arranca en el entorno gráfico Xfce y contiene algunas herramientas usadas comúnmente. Puede instalar más software en la imagen mediante la ejecución de @command{guix package} en un terminal (@pxref{Invoking guix package}). También puede reconfigurar el sistema en base a su fichero de configuración inicial, disponible como @file{/etc/config.scm} (@pxref{Using the Configuration System})."
+#: doc/guix.texi:31398
+msgid "This image boots the Xfce graphical environment and it contains some commonly used tools.  You can install more software in the image by running @command{guix package} in a terminal (@pxref{Invoking guix package}).  You can also reconfigure the system based on its initial configuration file available as @file{/run/current-system/configuration.scm} (@pxref{Using the Configuration System})."
+msgstr "Esta imagen arranca en el entorno gráfico Xfce y contiene algunas herramientas usadas de forma común. Puede instalar más software en la imagen mediante la ejecución de @command{guix package} en un terminal (@pxref{Invoking guix package}). También puede reconfigurar el sistema en base a su archivo de configuración inicial, disponible como @file{/run/current-system/configuration.scm} (@pxref{Using the Configuration System})."
 
 #. type: Plain text
-#: doc/guix.texi:27238
+#: doc/guix.texi:31403
 msgid "Instead of using this pre-built image, one can also build their own virtual machine image using @command{guix system vm-image} (@pxref{Invoking guix system}).  The returned image is in qcow2 format, which the @uref{https://qemu.org/, QEMU emulator} can efficiently use."
 msgstr "En vez de usar esta imagen preconstruida, se puede construir una imagen propia para máquina virtual mediante el uso de @command{guix system vm-image} (@pxref{Invoking guix system}). La imagen devuelta se encuentra en formato qcow2, el cual el @uref{https://qemu.org/, emulador QEMU} puede usar de manera eficiente."
 
 #. type: cindex
-#: doc/guix.texi:27239
+#: doc/guix.texi:31404
 #, no-wrap
 msgid "QEMU"
 msgstr "QEMU"
 
 #. type: Plain text
-#: doc/guix.texi:27246
+#: doc/guix.texi:31411
 msgid "If you built your own image, you must copy it out of the store (@pxref{The Store}) and give yourself permission to write to the copy before you can use it.  When invoking QEMU, you must choose a system emulator that is suitable for your hardware platform.  Here is a minimal QEMU invocation that will boot the result of @command{guix system vm-image} on x86_64 hardware:"
 msgstr "Si ha construido su propia imagen, debe copiarla fuera del almacén y proporcionarse a sí misma permisos de escritura sobre dicha copia antes de usarla. En la invocación de QEMU debe elegir un emulador de sistema que sea adecuado para su plataforma hardware. Esta es una invocación de QEMU mínima que arrancará el resultado de @command{guix system vm-image} en hardware x86_64:"
 
 #. type: example
-#: doc/guix.texi:27253
+#: doc/guix.texi:31418
 #, no-wrap
 msgid ""
 "$ qemu-system-x86_64 \\\n"
@@ -52267,135 +59839,135 @@ msgstr ""
 "   -drive if=none,file=/tmp/imagen-qemu,id=midisco\n"
 
 #. type: Plain text
-#: doc/guix.texi:27256
+#: doc/guix.texi:31421
 msgid "Here is what each of these options means:"
 msgstr "Aquí está el significado de cada una de esas opciones:"
 
 #. type: item
-#: doc/guix.texi:27258
+#: doc/guix.texi:31423
 #, no-wrap
 msgid "qemu-system-x86_64"
 msgstr "qemu-system-x86_64"
 
 #. type: table
-#: doc/guix.texi:27261
+#: doc/guix.texi:31426
 msgid "This specifies the hardware platform to emulate.  This should match the host."
 msgstr "Esto especifica la plataforma hardware a emular. Debe corresponder con el anfitrión."
 
 #. type: item
-#: doc/guix.texi:27262
+#: doc/guix.texi:31427
 #, no-wrap
 msgid "-nic user,model=virtio-net-pci"
 msgstr "-nic user,model=virtio-net-pci"
 
 #. type: table
-#: doc/guix.texi:27270
+#: doc/guix.texi:31435
 msgid "Enable the unprivileged user-mode network stack.  The guest OS can access the host but not vice versa.  This is the simplest way to get the guest OS online.  @code{model} specifies which network device to emulate: @code{virtio-net-pci} is a special device made for virtualized operating systems and recommended for most uses.  Assuming your hardware platform is x86_64, you can get a list of available NIC models by running @command{qemu-system-x86_64 -nic model=help}."
 msgstr "Activa la pila de red en espacio de usuaria sin privilegios. El SO anfitrión puede acceder a la máquina virtualizada pero no al revés. Este es el modo más simple de poner la máquina en red. @code{model} especifica que dispositivo de red emular: @code{virtio-net-pci} es un dispositivo especial para sistemas operativos virtualizados y recomendado para la mayor parte de usos. Asumiendo que su plataforma de hardware es x86_64, puede obtener una lista de adaptadores de red disponibles ejecutando @command{qemu-system-x86_64 -nic model=help}."
 
 #. type: item
-#: doc/guix.texi:27271
+#: doc/guix.texi:31436
 #, no-wrap
 msgid "-enable-kvm"
 msgstr "-enable-kvm"
 
 #. type: table
-#: doc/guix.texi:27275
+#: doc/guix.texi:31440
 msgid "If your system has hardware virtualization extensions, enabling the virtual machine support (KVM) of the Linux kernel will make things run faster."
 msgstr "Si su sistema tiene extensiones de virtualización por hardware, la activación de la implementación de máquinas virtuales (KVM) del núcleo Linux hará que la ejecución sea más rápida."
 
 #. type: item
-#: doc/guix.texi:27277
+#: doc/guix.texi:31442
 #, no-wrap
 msgid "-m 1024"
 msgstr "-m 1024"
 
 #. type: table
-#: doc/guix.texi:27280
+#: doc/guix.texi:31445
 msgid "RAM available to the guest OS, in mebibytes.  Defaults to 128@tie{}MiB, which may be insufficient for some operations."
 msgstr "RAM disponible para el sistema operativo virtualizado, en mebibytes. El valor predeterminado es 128@tie{}MiB, que puede ser insuficiente para algunas operaciones."
 
 #. type: item
-#: doc/guix.texi:27281
+#: doc/guix.texi:31446
 #, no-wrap
 msgid "-device virtio-blk,drive=myhd"
 msgstr "-device virtio-blk,drive=midisco"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:27286
+#: doc/guix.texi:31451
 msgid "Create a @code{virtio-blk} drive called ``myhd''.  @code{virtio-blk} is a ``paravirtualization'' mechanism for block devices that allows QEMU to achieve better performance than if it were emulating a complete disk drive.  See the QEMU and KVM documentation for more info."
 msgstr "Crea un dispositivo @code{virtio-blk} llamado ``midisco''. @code{virtio-blk} es un mecanismo de ``paravirtualización'' de dispositivos de bloques que permite a QEMU obtener un mejor rendimiento que se emulase una unidad de disco completa. Véase la documentación de QEMU y KVM para más información."
 
 #. type: item
-#: doc/guix.texi:27287
+#: doc/guix.texi:31452
 #, no-wrap
 msgid "-drive if=none,file=/tmp/qemu-image,id=myhd"
 msgstr "-drive if=none,file=/tmp/imagen-qemu,id=midisco"
 
 #. type: table
-#: doc/guix.texi:27290
-msgid "Use our QCOW image, the @file{/tmp/qemu-image} file, as the backing store the the ``myhd'' drive."
-msgstr "Usa nuestra imagen QCOW, el fichero @file{/tmp/imagen-qemu}, como almacenamiento físico para la unidad ``midisco''."
+#: doc/guix.texi:31455
+msgid "Use our QCOW image, the @file{/tmp/qemu-image} file, as the backing store of the ``myhd'' drive."
+msgstr "Usa nuestra imagen QCOW, el archivo @file{/tmp/imagen-qemu}, como almacenamiento físico para la unidad ``midisco''."
 
 #. type: Plain text
-#: doc/guix.texi:27300
+#: doc/guix.texi:31465
 msgid "The default @command{run-vm.sh} script that is returned by an invocation of @command{guix system vm} does not add a @command{-nic user} flag by default.  To get network access from within the vm add the @code{(dhcp-client-service)} to your system definition and start the VM using @command{`guix system vm config.scm` -nic user}.  An important caveat of using @command{-nic user} for networking is that @command{ping} will not work, because it uses the ICMP protocol.  You'll have to use a different command to check for network connectivity, for example @command{guix download}."
 msgstr "El guión @command{run-vm.sh} predeterminado que devuelve la invocación de @command{guix system vm} no añade una opción @command{-nic user} de manera predeterminada. Para obtener acceso a la red desde la máquina virtual añada el servicio @code{(dhcp-client-service)} a su definición de sistema y arranque la máquina virtual mediante el uso de @command{`guix system vm config.scm` -nic user}. Un punto importante a tener en cuenta del uso de @command{-ni user} para la obtención de red es que @command{ping} no funcionará, puesto que usa el protocolo ICMP. Deberá usar una orden diferente para comprobar la conectividad a la red, por ejemplo @command{guix download}."
 
 #. type: subsection
-#: doc/guix.texi:27301
+#: doc/guix.texi:31466
 #, no-wrap
 msgid "Connecting Through SSH"
 msgstr "Conexión a través de SSH"
 
 #. type: Plain text
-#: doc/guix.texi:27309
+#: doc/guix.texi:31474
 msgid "To enable SSH inside a VM you need to add an SSH server like @code{openssh-service-type} to your VM (@pxref{Networking Services, @code{openssh-service-type}}).  In addition you need to forward the SSH port, 22 by default, to the host.  You can do this with"
 msgstr "Para activar SSH dentro de una máquina virtual debe añadir un servidor SSH como @code{(openssh-service-type)} en su máquina virtual (@pxref{Networking Services, @code{openssh-service-type}}). Además debe que redirigir el puerto SSH, el 22 por omisión, a la máquina anfitriona. Puede hacerlo con"
 
 #. type: example
-#: doc/guix.texi:27312
+#: doc/guix.texi:31477
 #, no-wrap
 msgid "`guix system vm config.scm` -nic user,model=virtio-net-pci,hostfwd=tcp::10022-:22\n"
 msgstr "`guix system vm config.scm` -nic user,model=virtio-net-pci,hostfwd=tcp::10022-:22\n"
 
 #. type: Plain text
-#: doc/guix.texi:27315
+#: doc/guix.texi:31480
 msgid "To connect to the VM you can run"
 msgstr "Para conectarse a la máquina virtual puede ejecutar"
 
 #. type: example
-#: doc/guix.texi:27318
+#: doc/guix.texi:31483
 #, no-wrap
 msgid "ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p 10022\n"
 msgstr "ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p 10022\n"
 
 # FUZZY
 #. type: Plain text
-#: doc/guix.texi:27325
+#: doc/guix.texi:31490
 msgid "The @command{-p} tells @command{ssh} the port you want to connect to.  @command{-o UserKnownHostsFile=/dev/null} prevents @command{ssh} from complaining every time you modify your @command{config.scm} file and the @command{-o StrictHostKeyChecking=no} prevents you from having to allow a connection to an unknown host every time you connect."
-msgstr "La @command{-p} indica a @command{ssh} el puerto al que se debe conectar. @command{-o UserKnownHostsFile=/dev/null} evita que @command{ssh} se queje cada vez que modifique su fichero @command{config.scm} y la orden @command{-o StrictHostKeyChecking=no} evita que tenga que autorizar la conexión a una máquina desconocida cada vez que se conecte."
+msgstr "La @command{-p} indica a @command{ssh} el puerto al que se debe conectar. @command{-o UserKnownHostsFile=/dev/null} evita que @command{ssh} se queje cada vez que modifique su archivo @command{config.scm} y la orden @command{-o StrictHostKeyChecking=no} evita que tenga que autorizar la conexión a una máquina desconocida cada vez que se conecte."
 
 #. type: subsection
-#: doc/guix.texi:27326
+#: doc/guix.texi:31491
 #, no-wrap
 msgid "Using @command{virt-viewer} with Spice"
 msgstr "Uso de @command{virt-viewer} con Spice"
 
 #. type: Plain text
-#: doc/guix.texi:27332
+#: doc/guix.texi:31497
 msgid "As an alternative to the default @command{qemu} graphical client you can use the @command{remote-viewer} from the @command{virt-viewer} package.  To connect pass the @command{-spice port=5930,disable-ticketing} flag to @command{qemu}.  See previous section for further information on how to do this."
 msgstr "Como alternativa al cliente gráfico predeterminado de @command{qemu} puede usar @command{remote-viewer} del paquete @command{virt-viewer}. Para conectarse proporcione la opción @command{-spice port=5930,disable-ticketing} a @command{qemu}. Véase la sección previa para más información sobre cómo hacer esto."
 
 # FUZZY
 #. type: Plain text
-#: doc/guix.texi:27335
+#: doc/guix.texi:31500
 msgid "Spice also allows you to do some nice stuff like share your clipboard with your VM.  To enable that you'll also have to pass the following flags to @command{qemu}:"
 msgstr "Spice también le permite hacer cosas como compartir su portapapeles con su máquina virtual. Para activarlo debe proporcionar también las siguientes opciones a @command{qemu}:"
 
 #. type: example
-#: doc/guix.texi:27341
+#: doc/guix.texi:31506
 #, no-wrap
 msgid ""
 "-device virtio-serial-pci,id=virtio-serial0,max_ports=16,bus=pci.0,addr=0x5\n"
@@ -52409,83 +59981,83 @@ msgstr ""
 "name=com.redhat.spice.0\n"
 
 #. type: Plain text
-#: doc/guix.texi:27344
-msgid "You'll also need to add the @pxref{Miscellaneous Services, Spice service}."
-msgstr "También debe añadir el @pxref{Miscellaneous Services, servicio Spice}."
+#: doc/guix.texi:31510
+msgid "You'll also need to add the @code{(spice-vdagent-service)} to your system definition (@pxref{Miscellaneous Services, Spice service})."
+msgstr "También deber añadir a su definición de sistema el servicio @code{(spice-vdagent-service)} (@pxref{Miscellaneous Services, servicio Spice})."
 
 # FUZZY
 #. type: Plain text
-#: doc/guix.texi:27351
+#: doc/guix.texi:31517
 msgid "The previous sections show the available services and how one can combine them in an @code{operating-system} declaration.  But how do we define them in the first place? And what is a service anyway?"
 msgstr "Las secciones anteriores muestran los servicios disponibles y cómo se pueden combinar en una declaración @code{operating-system}. ¿Pero cómo las definimos en primer lugar? ¿Y qué es un servicio en cualquier caso?"
 
 #. type: cindex
-#: doc/guix.texi:27363
+#: doc/guix.texi:31529
 #, no-wrap
 msgid "daemons"
 msgstr "daemons"
 
 # FUZZY
 #. type: Plain text
-#: doc/guix.texi:27376
+#: doc/guix.texi:31542
 msgid "Here we define a @dfn{service} as, broadly, something that extends the functionality of the operating system.  Often a service is a process---a @dfn{daemon}---started when the system boots: a secure shell server, a Web server, the Guix build daemon, etc.  Sometimes a service is a daemon whose execution can be triggered by another daemon---e.g., an FTP server started by @command{inetd} or a D-Bus service activated by @command{dbus-daemon}.  Occasionally, a service does not map to a daemon.  For instance, the ``account'' service collects user accounts and makes sure they exist when the system runs; the ``udev'' service collects device management rules and makes them available to the eudev daemon; the @file{/etc} service populates the @file{/etc} directory of the system."
 msgstr "Definimos un @dfn{servicio} como, de manera genérica, algo que extiende la funcionalidad del sistema operativo. Habitualmente un servicio es un proceso---un @dfn{daemon}---iniciado cuando el sistema arranca: un servidor de shell seguro, un servidor Web, el daemon de construcción de Guix, etc. A veces un servicio es un daemon cuya ejecución puede ser iniciada por otro daemon---por ejemplo, un servidor FTP iniciado por @command{inetd} o un servicio D-Bus activado por @command{dbus-daemon}. De manera ocasional, un servicio no se puede asociar a un daemon. Por ejemplo, el servicio ``account'' recopila cuentas de usuaria y se asegura que existen cuando el sistema se ejecuta; el servicio ``udev'' recopila reglas de gestión de dispositivos y los pone a disposición del daemon eudev; el servicio @file{/etc} genera el contenido del directorio @file{/etc} del sistema."
 
 #. type: cindex
-#: doc/guix.texi:27377
+#: doc/guix.texi:31543
 #, no-wrap
 msgid "service extensions"
 msgstr "extensiones de servicios"
 
 #. type: Plain text
-#: doc/guix.texi:27389
+#: doc/guix.texi:31555
 msgid "Guix system services are connected by @dfn{extensions}.  For instance, the secure shell service @emph{extends} the Shepherd---the initialization system, running as PID@tie{}1---by giving it the command lines to start and stop the secure shell daemon (@pxref{Networking Services, @code{openssh-service-type}}); the UPower service extends the D-Bus service by passing it its @file{.service} specification, and extends the udev service by passing it device management rules (@pxref{Desktop Services, @code{upower-service}}); the Guix daemon service extends the Shepherd by passing it the command lines to start and stop the daemon, and extends the account service by passing it a list of required build user accounts (@pxref{Base Services})."
 msgstr "Los servicios de Guix se conectan a través de @dfn{extensiones}. Por ejemplo, el servicio de shell seguro @emph{extiende} Shepherd---el sistema de inicio, el cual se ejecuta como PID@tie{}1---proporcionando las líneas de órdenes para arrancar y parar el daemon de shell seguro (@pxref{Networking Services, @code{lsh-service}}); el servicio UPower extiende el servicio D-Bus proporcionando su especificación @file{.service}, y extiende el servicio udev al que proporciona reglas de gestión de dispositivos (@pxref{Desktop Services, @code{upower-service}}); el servicio del daemon de Guix extiende Shepherd proporcionando las líneas de órdenes para arrancar y parar el daemon, y extiende el servicio de cuentas proporcionando una lista de cuentas de usuarias de construcción que necesita (@pxref{Base Services})."
 
 #. type: Plain text
-#: doc/guix.texi:27393
+#: doc/guix.texi:31559
 msgid "All in all, services and their ``extends'' relations form a directed acyclic graph (DAG).  If we represent services as boxes and extensions as arrows, a typical system might provide something like this:"
 msgstr "Al fin y al cabo, los servicios y sus relaciones de ``extensión'' forman un grafo acíclico dirigido (GAD). Si representamos los servicios como cajas y las extensiones como flechas, un sistema típico puede proporcionar algo de este estilo:"
 
 #. type: Plain text
-#: doc/guix.texi:27395
+#: doc/guix.texi:31561
 msgid "@image{images/service-graph,,5in,Typical service extension graph.}"
 msgstr "@image{images/service-graph,,5in,Grafo típico de extensiones de servicios.}"
 
 #. type: cindex
-#: doc/guix.texi:27396
+#: doc/guix.texi:31562
 #, no-wrap
 msgid "system service"
 msgstr "servicio del sistema"
 
 #. type: Plain text
-#: doc/guix.texi:27404
+#: doc/guix.texi:31570
 msgid "At the bottom, we see the @dfn{system service}, which produces the directory containing everything to run and boot the system, as returned by the @command{guix system build} command.  @xref{Service Reference}, to learn about the other service types shown here.  @xref{system-extension-graph, the @command{guix system extension-graph} command}, for information on how to generate this representation for a particular operating system definition."
 msgstr "En la base, podemos ver el @dfn{servicio del sistema}, el cual produce el directorio que contiene todo lo necesario para ejecutar y arrancar el sistema, como es devuelto por la orden @command{guix system build}. @xref{Service Reference}, para aprender acerca de otros servicios mostrados aquí. @xref{system-extension-graph, la orden @command{guix system extension-graph}}, para información sobre cómo generar esta representación para una definición particular de sistema operativo."
 
 #. type: cindex
-#: doc/guix.texi:27405
+#: doc/guix.texi:31571
 #, no-wrap
 msgid "service types"
 msgstr "tipos de servicio"
 
 #. type: Plain text
-#: doc/guix.texi:27411
+#: doc/guix.texi:31577
 msgid "Technically, developers can define @dfn{service types} to express these relations.  There can be any number of services of a given type on the system---for instance, a system running two instances of the GNU secure shell server (lsh) has two instances of @code{lsh-service-type}, with different parameters."
 msgstr "Técnicamente, las desarrolladoras pueden definir @dfn{tipos de servicio} para expresar estas relaciones. Puede haber cualquier número de servicios de un tipo dado en el sistema---por ejemplo, un sistema que ejecuta dos instancias del shell seguro GNU (lsh) tiene dos instancias de @var{lsh-service-type}, con parámetros diferentes."
 
 #. type: Plain text
-#: doc/guix.texi:27414
+#: doc/guix.texi:31580
 msgid "The following section describes the programming interface for service types and services."
 msgstr "La siguiente sección describe la interfaz programática para tipos de servicio y servicios."
 
 #. type: Plain text
-#: doc/guix.texi:27421
+#: doc/guix.texi:31587
 msgid "A @dfn{service type} is a node in the DAG described above.  Let us start with a simple example, the service type for the Guix build daemon (@pxref{Invoking guix-daemon}):"
 msgstr "Un @dfn{tipo de servicio} es un nodo en el GAD descrito previamente. Empecemos con un ejemplo simple, el tipo de servicio para el daemon de construcción Guix (@pxref{Invoking guix-daemon}):"
 
 #. type: lisp
-#: doc/guix.texi:27431
+#: doc/guix.texi:31597
 #, no-wrap
 msgid ""
 "(define guix-service-type\n"
@@ -52507,112 +60079,112 @@ msgstr ""
 "   (default-value (guix-configuration))))\n"
 
 #. type: Plain text
-#: doc/guix.texi:27435
+#: doc/guix.texi:31601
 msgid "It defines three things:"
 msgstr "Define tres cosas:"
 
 #. type: enumerate
-#: doc/guix.texi:27439
+#: doc/guix.texi:31605
 msgid "A name, whose sole purpose is to make inspection and debugging easier."
 msgstr "Un nombre, cuyo único propósito es facilitar la inspección y la depuración."
 
 #. type: enumerate
-#: doc/guix.texi:27444
+#: doc/guix.texi:31610
 msgid "A list of @dfn{service extensions}, where each extension designates the target service type and a procedure that, given the parameters of the service, returns a list of objects to extend the service of that type."
 msgstr "Una lista de @dfn{extensiones de servicio}, donde cada extensión designa el tipo de servicio a extender y un procedimiento que, dados los parámetros del servicio, devuelve una lista de objetos para extender el servicio de dicho tipo."
 
 # FUZZY
 #. type: enumerate
-#: doc/guix.texi:27447
+#: doc/guix.texi:31613
 msgid "Every service type has at least one service extension.  The only exception is the @dfn{boot service type}, which is the ultimate service."
 msgstr "Cada tipo de servicio tiene al menos una extensión de servicio. La única excepción es el @dfn{tipo de servicio de arranque}, que es el último servicio."
 
 #. type: enumerate
-#: doc/guix.texi:27450
+#: doc/guix.texi:31616
 msgid "Optionally, a default value for instances of this type."
 msgstr "De manera opcional, un valor predeterminado para instancias de este tipo."
 
 #. type: Plain text
-#: doc/guix.texi:27453
+#: doc/guix.texi:31619
 msgid "In this example, @code{guix-service-type} extends three services:"
 msgstr "En este ejemplo, @code{guix-service-type} extiende tres servicios:"
 
 #. type: item
-#: doc/guix.texi:27455
+#: doc/guix.texi:31621
 #, no-wrap
 msgid "shepherd-root-service-type"
 msgstr "shepherd-root-service-type"
 
 #. type: table
-#: doc/guix.texi:27460
+#: doc/guix.texi:31626
 msgid "The @code{guix-shepherd-service} procedure defines how the Shepherd service is extended.  Namely, it returns a @code{<shepherd-service>} object that defines how @command{guix-daemon} is started and stopped (@pxref{Shepherd Services})."
 msgstr "El procedimiento @code{guix-shepherd-service} define cómo se extiende el servicio de Shepherd. Es decir, devuelve un objeto @code{<shepherd-service>} que define cómo se arranca y para @command{guix-daemon} (@pxref{Shepherd Services})."
 
 #. type: item
-#: doc/guix.texi:27461
+#: doc/guix.texi:31627
 #, no-wrap
 msgid "account-service-type"
 msgstr "account-service-type"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:27466
+#: doc/guix.texi:31632
 msgid "This extension for this service is computed by @code{guix-accounts}, which returns a list of @code{user-group} and @code{user-account} objects representing the build user accounts (@pxref{Invoking guix-daemon})."
 msgstr "@code{guix-accounts} crea la implementación de esta extensión para este servicio, la cual devuelve una lista de objetos @code{user-group} y @code{user-account} que representan las cuentas de usuarias de construcción (@pxref{Invoking guix-daemon})."
 
 #. type: item
-#: doc/guix.texi:27467
+#: doc/guix.texi:31633
 #, no-wrap
 msgid "activation-service-type"
 msgstr "activation-service-type"
 
 #. type: table
-#: doc/guix.texi:27471
+#: doc/guix.texi:31637
 msgid "Here @code{guix-activation} is a procedure that returns a gexp, which is a code snippet to run at ``activation time''---e.g., when the service is booted."
 msgstr "Aquí @code{guix-activation} es un procedimiento que devuelve una expresión-G, que es un fragmento de código a ejecutar en ``tiempo de activación''---por ejemplo, cuando el servicio se arranca."
 
 #. type: Plain text
-#: doc/guix.texi:27474
+#: doc/guix.texi:31640
 msgid "A service of this type is instantiated like this:"
 msgstr "Un servicio de este tipo se puede instanciar de esta manera:"
 
 #. type: lisp
-#: doc/guix.texi:27480
+#: doc/guix.texi:31646
 #, no-wrap
 msgid ""
 "(service guix-service-type\n"
 "         (guix-configuration\n"
 "           (build-accounts 5)\n"
-"           (use-substitutes? #f)))\n"
+"           (extra-options '(\"--gc-keep-derivations\"))))\n"
 msgstr ""
 "(service guix-service-type\n"
 "         (guix-configuration\n"
 "           (build-accounts 5)\n"
-"           (use-substitutes? #f)))\n"
+"           (extra-options '(\"--gc-keep-derivations\"))))\n"
 
 #. type: Plain text
-#: doc/guix.texi:27488
+#: doc/guix.texi:31654
 msgid "The second argument to the @code{service} form is a value representing the parameters of this specific service instance.  @xref{guix-configuration-type, @code{guix-configuration}}, for information about the @code{guix-configuration} data type.  When the value is omitted, the default value specified by @code{guix-service-type} is used:"
 msgstr "El segundo parámetro a la forma @code{service} es un valor que representa los parámetros de esta instancia específica del servicio. @xref{guix-configuration-type, @code{guix-configuration}}, para información acerca del tipo de datos @code{guix-configuration}. Cuando se omite el valor, se usa el valor predeterminado por @code{guix-service-type}:"
 
 #. type: lisp
-#: doc/guix.texi:27491
+#: doc/guix.texi:31657
 #, no-wrap
 msgid "(service guix-service-type)\n"
 msgstr "(service guix-service-type)\n"
 
 #. type: Plain text
-#: doc/guix.texi:27495
+#: doc/guix.texi:31661
 msgid "@code{guix-service-type} is quite simple because it extends other services but is not extensible itself."
 msgstr "@code{guix-service-type} es bastante simple puesto que extiende otros servicios pero no es extensible a su vez."
 
 #. type: Plain text
-#: doc/guix.texi:27499
+#: doc/guix.texi:31665
 msgid "The service type for an @emph{extensible} service looks like this:"
 msgstr "El tipo de servicio para un servicio @emph{extensible} puede tener esta forma:"
 
 #. type: lisp
-#: doc/guix.texi:27506
+#: doc/guix.texi:31672
 #, no-wrap
 msgid ""
 "(define udev-service-type\n"
@@ -52630,7 +60202,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:27514
+#: doc/guix.texi:31680
 #, no-wrap
 msgid ""
 "                (compose concatenate)       ;concatenate the list of rules\n"
@@ -52650,101 +60222,101 @@ msgstr ""
 "                              (rules (append initial-rules rules)))))))))\n"
 
 #. type: Plain text
-#: doc/guix.texi:27520
+#: doc/guix.texi:31686
 msgid "This is the service type for the @uref{https://wiki.gentoo.org/wiki/Project:Eudev, eudev device management daemon}.  Compared to the previous example, in addition to an extension of @code{shepherd-root-service-type}, we see two new fields:"
 msgstr "Este es el tipo de servicio para el @uref{https://wiki.gentoo.org/wiki/Project:Eudev, daemon de gestión de dispositivos eudev}. En comparación con el ejemplo previo, además de una extensión de @code{shepherd-root-service-type}, podemos ver dos nuevos campos:"
 
 #. type: item
-#: doc/guix.texi:27522
+#: doc/guix.texi:31688
 #, no-wrap
 msgid "compose"
 msgstr "compose"
 
 #. type: table
-#: doc/guix.texi:27525
+#: doc/guix.texi:31691
 msgid "This is the procedure to @dfn{compose} the list of extensions to services of this type."
 msgstr "Este es el procedimiento para @dfn{componer} la lista de extensiones en servicios de este tipo."
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:27528
+#: doc/guix.texi:31694
 msgid "Services can extend the udev service by passing it lists of rules; we compose those extensions simply by concatenating them."
 msgstr "Los servicios pueden extender el servicio udev proporcionandole una lista de reglas; componemos estas extensiones mediante una simple concatenación."
 
 #. type: item
-#: doc/guix.texi:27529
+#: doc/guix.texi:31695
 #, no-wrap
 msgid "extend"
 msgstr "extend"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:27532
+#: doc/guix.texi:31698
 msgid "This procedure defines how the value of the service is @dfn{extended} with the composition of the extensions."
 msgstr "Este procedimiento define cómo el valor del servicio se @dfn{extiende} con la composición de la extensión."
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:27537
+#: doc/guix.texi:31703
 msgid "Udev extensions are composed into a list of rules, but the udev service value is itself a @code{<udev-configuration>} record.  So here, we extend that record by appending the list of rules it contains to the list of contributed rules."
 msgstr "Las extensiones de udev se componen en una lista de reglas, pero el valor del servicio udev es en sí un registro @code{<udev-configuration>}. Por tanto aquí extendemos el registro agregando la lista de reglas que contiene al final de la lista de reglas que se contribuyeron."
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:27543
+#: doc/guix.texi:31709
 msgid "This is a string giving an overview of the service type.  The string can contain Texinfo markup (@pxref{Overview,,, texinfo, GNU Texinfo}).  The @command{guix system search} command searches these strings and displays them (@pxref{Invoking guix system})."
 msgstr "Es una cadena que proporciona una descripción del tipo de servicio. Dicha cadena puede contener lenguaje de marcado Texinfo (@pxref{Overview,,, texinfo, GNU Texinfo}). La orden @command{guix system search} busca estas cadenas y las muestra (@pxref{Invoking guix system})."
 
 # FUZZY
 #. type: Plain text
-#: doc/guix.texi:27548
+#: doc/guix.texi:31714
 msgid "There can be only one instance of an extensible service type such as @code{udev-service-type}.  If there were more, the @code{service-extension} specifications would be ambiguous."
 msgstr "Puede haber únicamente una instancia de un tipo de servicio extensible como @code{udev-service-type}. Si hubiese más, las especificaciones @code{service-extension} serían ambiguas."
 
 #. type: Plain text
-#: doc/guix.texi:27551
+#: doc/guix.texi:31717
 msgid "Still here? The next section provides a reference of the programming interface for services."
 msgstr "¿Todavía aquí? La siguiente sección proporciona una referencia de la interfaz programática de los servicios."
 
 #. type: Plain text
-#: doc/guix.texi:27559
+#: doc/guix.texi:31725
 msgid "We have seen an overview of service types (@pxref{Service Types and Services}).  This section provides a reference on how to manipulate services and service types.  This interface is provided by the @code{(gnu services)} module."
 msgstr "Ya hemos echado un vistazo a los tipos de servicio (@pxref{Service Types and Services}). Esta sección proporciona referencias sobre cómo manipular servicios y tipos de servicio. Esta interfaz se proporciona en el módulo @code{(gnu services)}."
 
 #. type: deffn
-#: doc/guix.texi:27560
+#: doc/guix.texi:31726
 #, no-wrap
 msgid "{Scheme Procedure} service @var{type} [@var{value}]"
 msgstr "{Procedimiento Scheme} service @var{tipo} [@var{valor}]"
 
 #. type: deffn
-#: doc/guix.texi:27564
-msgid "Return a new service of @var{type}, a @code{<service-type>} object (see below.)  @var{value} can be any object; it represents the parameters of this particular service instance."
+#: doc/guix.texi:31730
+msgid "Return a new service of @var{type}, a @code{<service-type>} object (see below).  @var{value} can be any object; it represents the parameters of this particular service instance."
 msgstr "Devuelve un nuevo servicio de @var{tipo}, un objeto @code{<service-type>} (véase a continuación). @var{valor} puede ser cualquier objeto; representa los parámetros de esta instancia de servicio particular."
 
 #. type: deffn
-#: doc/guix.texi:27568
+#: doc/guix.texi:31734
 msgid "When @var{value} is omitted, the default value specified by @var{type} is used; if @var{type} does not specify a default value, an error is raised."
 msgstr "Cuando se omite @var{valor}, se usa el valor predeterminado especificado por @var{tipo}; si @var{type} no especifica ningún valor, se produce un error."
 
 #. type: deffn
-#: doc/guix.texi:27570
+#: doc/guix.texi:31736
 msgid "For instance, this:"
 msgstr "Por ejemplo, esto:"
 
 #. type: lisp
-#: doc/guix.texi:27573
+#: doc/guix.texi:31739
 #, no-wrap
 msgid "(service openssh-service-type)\n"
 msgstr "(service openssh-service-type)\n"
 
 #. type: deffn
-#: doc/guix.texi:27577
+#: doc/guix.texi:31743
 msgid "is equivalent to this:"
 msgstr "es equivalente a esto:"
 
 #. type: lisp
-#: doc/guix.texi:27581
+#: doc/guix.texi:31747
 #, no-wrap
 msgid ""
 "(service openssh-service-type\n"
@@ -52754,50 +60326,50 @@ msgstr ""
 "         (openssh-configuration))\n"
 
 #. type: deffn
-#: doc/guix.texi:27585
+#: doc/guix.texi:31751
 msgid "In both cases the result is an instance of @code{openssh-service-type} with the default configuration."
 msgstr "En ambos casos el resultado es una instancia de @code{openssh-service-type} con la configuración predeterminada."
 
 #. type: deffn
-#: doc/guix.texi:27587
+#: doc/guix.texi:31753
 #, no-wrap
 msgid "{Scheme Procedure} service? @var{obj}"
 msgstr "{Procedimiento Scheme} service? @var{obj}"
 
 #. type: deffn
-#: doc/guix.texi:27589
+#: doc/guix.texi:31755
 msgid "Return true if @var{obj} is a service."
 msgstr "Devuelve verdadero si @var{obj} es un servicio."
 
 #. type: deffn
-#: doc/guix.texi:27591
+#: doc/guix.texi:31757
 #, no-wrap
 msgid "{Scheme Procedure} service-kind @var{service}"
 msgstr "{Procedimiento Scheme} service-kind @var{servicio}"
 
 #. type: deffn
-#: doc/guix.texi:27593
+#: doc/guix.texi:31759
 msgid "Return the type of @var{service}---i.e., a @code{<service-type>} object."
 msgstr "Devuelve el tipo de @var{servicio}---es decir, un objeto @code{<service-type>}."
 
 #. type: deffn
-#: doc/guix.texi:27595
+#: doc/guix.texi:31761
 #, no-wrap
 msgid "{Scheme Procedure} service-value @var{service}"
 msgstr "{Procedimiento Scheme} service-value @var{servicio}"
 
 #. type: deffn
-#: doc/guix.texi:27598
+#: doc/guix.texi:31764
 msgid "Return the value associated with @var{service}.  It represents its parameters."
 msgstr "Devuelve el valor asociado con @var{servicio}. Representa sus parámetros."
 
 #. type: Plain text
-#: doc/guix.texi:27601
+#: doc/guix.texi:31767
 msgid "Here is an example of how a service is created and manipulated:"
 msgstr "Este es un ejemplo de creación y manipulación de un servicio:"
 
 #. type: lisp
-#: doc/guix.texi:27610
+#: doc/guix.texi:31776
 #, no-wrap
 msgid ""
 "(define s\n"
@@ -52819,7 +60391,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:27613
+#: doc/guix.texi:31779
 #, no-wrap
 msgid ""
 "(service? s)\n"
@@ -52831,7 +60403,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:27616
+#: doc/guix.texi:31782
 #, no-wrap
 msgid ""
 "(eq? (service-kind s) nginx-service-type)\n"
@@ -52841,132 +60413,159 @@ msgstr ""
 "@result{} #t\n"
 
 #. type: Plain text
-#: doc/guix.texi:27626
+#: doc/guix.texi:31792
 msgid "The @code{modify-services} form provides a handy way to change the parameters of some of the services of a list such as @code{%base-services} (@pxref{Base Services, @code{%base-services}}).  It evaluates to a list of services.  Of course, you could always use standard list combinators such as @code{map} and @code{fold} to do that (@pxref{SRFI-1, List Library,, guile, GNU Guile Reference Manual}); @code{modify-services} simply provides a more concise form for this common pattern."
 msgstr "La forma @code{modify-services} proporciona una manera fácil de cambiar los parámetros de algunos servicios de una lista como @code{%base-services} (@pxref{Base Services, @code{%base-services}}). Evalúa a una lista de servicios. Por supuesto, siempre puede usar operaciones estándar sobre listas como @code{map} y @code{fold} para hacerlo (@pxref{SRFI-1, List Library,, guile, GNU Guile Reference Manual}); @code{modify-services} proporciona simplemente una forma más concisa para este patrón común."
 
 #. type: deffn
-#: doc/guix.texi:27627
+#: doc/guix.texi:31793
 #, no-wrap
 msgid "{Scheme Syntax} modify-services @var{services} @"
 msgstr "{Sintaxis Scheme} modify-services @var{servicios} @"
 
 #. type: deffn
-#: doc/guix.texi:27629
+#: doc/guix.texi:31795
 msgid "(@var{type} @var{variable} => @var{body}) @dots{}"
 msgstr "(@var{tipo} @var{variable} => @var{cuerpo}) @dots{}"
 
 #. type: deffn
-#: doc/guix.texi:27632
+#: doc/guix.texi:31798
 msgid "Modify the services listed in @var{services} according to the given clauses.  Each clause has the form:"
 msgstr "Modifica los servicios listados en @var{servicios} de acuerdo a las cláusulas proporcionadas. Cada cláusula tiene la forma:"
 
 #. type: example
-#: doc/guix.texi:27635
+#: doc/guix.texi:31801
 #, no-wrap
 msgid "(@var{type} @var{variable} => @var{body})\n"
 msgstr "(@var{tipo} @var{variable} => @var{cuerpo})\n"
 
 #. type: deffn
-#: doc/guix.texi:27642
+#: doc/guix.texi:31808
 msgid "where @var{type} is a service type---e.g., @code{guix-service-type}---and @var{variable} is an identifier that is bound within the @var{body} to the service parameters---e.g., a @code{guix-configuration} instance---of the original service of that @var{type}."
 msgstr "donde @var{tipo} es un tipo de servicio---por ejemplo, @code{guix-service-type}---y @var{variable} es un identificador que se asocia dentro del @var{cuerpo} a los parámetros del servicio---por ejemplo, una instancia @code{guix-configuration}---del servicio original de dicho @var{ŧipo}."
 
 # FUZZY
 #. type: deffn
-#: doc/guix.texi:27649
+#: doc/guix.texi:31815
 msgid "The @var{body} should evaluate to the new service parameters, which will be used to configure the new service.  This new service will replace the original in the resulting list.  Because a service's service parameters are created using @code{define-record-type*}, you can write a succinct @var{body} that evaluates to the new service parameters by using the @code{inherit} feature that @code{define-record-type*} provides."
 msgstr "El @var{cuerpo} deve evaluar a los nuevos parámetros del servicio, que serán usados para configurar el nuevo servicio. Este nuevo servicio reemplaza el original en la lista resultante. Debido a que los parámetros de servicio de un servicio se crean mediante el uso de @code{define-record-type*}, puede escribir un breve @var{cuerpo} que evalúe a los nuevos parámetros del servicio mediante el uso de la característica @code{inherit} que proporciona @code{define-record-type*} para heredar los valores antiguos."
 
 #. type: deffn
-#: doc/guix.texi:27651
+#: doc/guix.texi:31817
 msgid "@xref{Using the Configuration System}, for example usage."
 msgstr "@xref{Using the Configuration System}, para ejemplos de uso."
 
 #. type: Plain text
-#: doc/guix.texi:27658
+#: doc/guix.texi:31824
 msgid "Next comes the programming interface for service types.  This is something you want to know when writing new service definitions, but not necessarily when simply looking for ways to customize your @code{operating-system} declaration."
 msgstr "A continuación se procede con la interfaz programática de los tipos de servicios. Es algo que debe conocer para escribir definiciones de nuevos servicios, pero no es cuando busque formas de personalizar su declaración @code{operating-system}."
 
 #. type: deftp
-#: doc/guix.texi:27659
+#: doc/guix.texi:31825
 #, no-wrap
 msgid "{Data Type} service-type"
 msgstr "{Tipo de datos} service-type"
 
 #. type: cindex
-#: doc/guix.texi:27660
+#: doc/guix.texi:31826
 #, no-wrap
 msgid "service type"
 msgstr "tipo de servicio"
 
 #. type: deftp
-#: doc/guix.texi:27663
+#: doc/guix.texi:31829
 msgid "This is the representation of a @dfn{service type} (@pxref{Service Types and Services})."
 msgstr "Esta es la representación de un @dfn{tipo de servicio} (@pxref{Service Types and Services})."
 
 #. type: table
-#: doc/guix.texi:27667
+#: doc/guix.texi:31833
 msgid "This is a symbol, used only to simplify inspection and debugging."
 msgstr "Es un símbolo, usado únicamente para simplificar la inspección y la depuración."
 
 #. type: code{#1}
-#: doc/guix.texi:27668
+#: doc/guix.texi:31834
 #, no-wrap
 msgid "extensions"
 msgstr "extensions"
 
 #. type: table
-#: doc/guix.texi:27670
+#: doc/guix.texi:31836
 msgid "A non-empty list of @code{<service-extension>} objects (see below)."
 msgstr "Una lista no vacía de objetos @code{<service-extension>} (véase a continuación)."
 
 #. type: item
-#: doc/guix.texi:27671
+#: doc/guix.texi:31837
 #, no-wrap
 msgid "@code{compose} (default: @code{#f})"
 msgstr "@code{compose} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:27675
+#: doc/guix.texi:31841
 msgid "If this is @code{#f}, then the service type denotes services that cannot be extended---i.e., services that do not receive ``values'' from other services."
 msgstr "Si es @code{#f}, entonces el tipo de servicio denota servicios que no pueden extenderse---es decir, servicios que no pueden recibir ``valores'' de otros servicios."
 
 #. type: table
-#: doc/guix.texi:27679
+#: doc/guix.texi:31845
 msgid "Otherwise, it must be a one-argument procedure.  The procedure is called by @code{fold-services} and is passed a list of values collected from extensions.  It may return any single value."
 msgstr "En otro caso, debe ser un procedimiento de un único parámetro. El procedimiento es invocado en @code{fold-services} y se le proporciona una lista de valores recibidos de las extensiones. Puede devolver un valor único."
 
 #. type: item
-#: doc/guix.texi:27680
+#: doc/guix.texi:31846
 #, no-wrap
 msgid "@code{extend} (default: @code{#f})"
 msgstr "@code{extend} (predeterminado: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:27682
+#: doc/guix.texi:31848
 msgid "If this is @code{#f}, services of this type cannot be extended."
 msgstr "Si es @code{#f}, los servicios de este tipo no pueden extenderse."
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:27688
+#: doc/guix.texi:31854
 msgid "Otherwise, it must be a two-argument procedure: @code{fold-services} calls it, passing it the initial value of the service as the first argument and the result of applying @code{compose} to the extension values as the second argument.  It must return a value that is a valid parameter value for the service instance."
 msgstr "En otro caso, debe ser un procedimiento que acepte dos parámetros: @code{fold-services} lo invoca, proporcionandole el valor inicial del servicio como el primer parámetro y el resultado de aplicar @code{compose} a los valores de las extensiones como segundo parámetro. Debe devolver un valor que es un parámetro válido para la instancia del servicio."
 
+#. type: table
+#: doc/guix.texi:31860
+msgid "This is a string, possibly using Texinfo markup, describing in a couple of sentences what the service is about.  This string allows users to find about the service through @command{guix system search} (@pxref{Invoking guix system})."
+msgstr "Una cadena, que posiblemente usa el lenguaje de marcas Texinfo, que describe en un par de frases el servicio. Esta cadena permite la búsqueda del servicio a través de @command{guix system search} (@pxref{Invoking guix system})."
+
+#. type: item
+#: doc/guix.texi:31861
+#, no-wrap
+msgid "@code{default-value} (default: @code{&no-default-value})"
+msgstr "@code{default-value} (predeterminado: @code{&no-default-value})"
+
+#. type: table
+#: doc/guix.texi:31864
+msgid "The default value associated for instances of this service type.  This allows users to use the @code{service} form without its second argument:"
+msgstr "El valor predeterminado asociado a instancias de este tipo de servicio. Esto permite a las usuarias usar @code{service} sin su segundo parámetro:"
+
+#. type: lisp
+#: doc/guix.texi:31867
+#, no-wrap
+msgid "(service @var{type})\n"
+msgstr "(service @var{tipo})\n"
+
+#. type: table
+#: doc/guix.texi:31871
+msgid "The returned service in this case has the default value specified by @var{type}."
+msgstr "El servicio devuelto en este caso tiene el valor predeterminado especificado por @var{tipo}."
+
 #. type: deftp
-#: doc/guix.texi:27691
+#: doc/guix.texi:31874
 msgid "@xref{Service Types and Services}, for examples."
 msgstr "@xref{Service Types and Services}, para ejemplos."
 
 #. type: deffn
-#: doc/guix.texi:27693
+#: doc/guix.texi:31876
 #, no-wrap
 msgid "{Scheme Procedure} service-extension @var{target-type} @"
 msgstr "{Procedimiento Scheme} service-extension @var{tipo-deseado} @"
 
 #. type: deffn
-#: doc/guix.texi:27699
+#: doc/guix.texi:31882
 msgid "@var{compute} Return a new extension for services of type @var{target-type}.  @var{compute} must be a one-argument procedure: @code{fold-services} calls it, passing it the value associated with the service that provides the extension; it must return a valid value for the target service."
 msgstr ""
 "@var{calcula}\n"
@@ -52974,41 +60573,41 @@ msgstr ""
 "Devuelve una nueva extensión para servicios del tipo @var{tipo-deseado}. @var{calcula} debe ser un procedimiento de un único parámetro: es llamado en @code{fold-services}, proporcionandole el valor asociado con el servicio que proporciona la extensión; debe devolver un valor válido para el servicio deseado."
 
 #. type: deffn
-#: doc/guix.texi:27701
+#: doc/guix.texi:31884
 #, no-wrap
 msgid "{Scheme Procedure} service-extension? @var{obj}"
 msgstr "{Procedimiento Scheme} service-extension? @var{obj}"
 
 #. type: deffn
-#: doc/guix.texi:27703
+#: doc/guix.texi:31886
 msgid "Return true if @var{obj} is a service extension."
 msgstr "Devuelve verdadero si @var{obj} es una expresión-G."
 
 # FUZZY
 # MAAV (TODO): Repensar
 #. type: Plain text
-#: doc/guix.texi:27709
+#: doc/guix.texi:31892
 msgid "Occasionally, you might want to simply extend an existing service.  This involves creating a new service type and specifying the extension of interest, which can be verbose; the @code{simple-service} procedure provides a shorthand for this."
 msgstr "De manera ocasional, puede desear simplemente extender un servicio existente. Esto implica la creación de un nuevo tipo de servicio y la especificación de la extensión deseada, lo cual puede ser engorroso; el procedimiento @code{simple-service} proporciona un atajo para ello."
 
 #. type: deffn
-#: doc/guix.texi:27710
+#: doc/guix.texi:31893
 #, no-wrap
 msgid "{Scheme Procedure} simple-service @var{name} @var{target} @var{value}"
 msgstr "{Procedimiento Scheme} simple-service @var{nombre} @var{deseado} @var{valor}"
 
 #. type: deffn
-#: doc/guix.texi:27714
+#: doc/guix.texi:31897
 msgid "Return a service that extends @var{target} with @var{value}.  This works by creating a singleton service type @var{name}, of which the returned service is an instance."
 msgstr "Devuelve un servicio que extiende @var{deseado} con @var{valor}. Esto funciona creando una instancia única del tipo de servicio @var{nombre}, de la cual el servicio devuelto es una instancia."
 
 #. type: deffn
-#: doc/guix.texi:27717
+#: doc/guix.texi:31900
 msgid "For example, this extends mcron (@pxref{Scheduled Job Execution}) with an additional job:"
 msgstr "Por ejemplo, esto extiende mcron (@pxref{Scheduled Job Execution}) con una tarea adicional:"
 
 #. type: lisp
-#: doc/guix.texi:27721
+#: doc/guix.texi:31904
 #, no-wrap
 msgid ""
 "(simple-service 'my-mcron-job mcron-service-type\n"
@@ -53018,12 +60617,12 @@ msgstr ""
 "                #~(job '(next-hour (3)) \"guix gc -F 2G\"))\n"
 
 #. type: Plain text
-#: doc/guix.texi:27731
+#: doc/guix.texi:31914
 msgid "At the core of the service abstraction lies the @code{fold-services} procedure, which is responsible for ``compiling'' a list of services down to a single directory that contains everything needed to boot and run the system---the directory shown by the @command{guix system build} command (@pxref{Invoking guix system}).  In essence, it propagates service extensions down the service graph, updating each node parameters on the way, until it reaches the root node."
 msgstr "En el núcleo de la abstracción de los servicios se encuentra el procedimiento @code{fold-services}, que es responsable de la ``compilación'' de una lista de servicios en un único directorio que contiene todo lo necesario para arrancar y ejecutar el sistema---el directorio mostrado por la orden @command{guix system build} (@pxref{Invoking guix system}). En esencia, propaga las extensiones de servicios a través del grafo de servicios, actualizando los parámetros de cada nodo en el camino, hasta que alcanza el nodo raíz."
 
 #. type: deffn
-#: doc/guix.texi:27732
+#: doc/guix.texi:31915
 #, no-wrap
 msgid "{Scheme Procedure} fold-services @var{services} @"
 msgstr "{Procedimiento Scheme} fold-services @var{servicios} @"
@@ -53031,382 +60630,387 @@ msgstr "{Procedimiento Scheme} fold-services @var{servicios} @"
 # FUZZY
 # MAAV (TODO): Repensar
 #. type: deffn
-#: doc/guix.texi:27736
+#: doc/guix.texi:31919
 msgid "[#:target-type @var{system-service-type}] Fold @var{services} by propagating their extensions down to the root of type @var{target-type}; return the root service adjusted accordingly."
 msgstr ""
 "[#:target-type @var{system-service-type}]\n"
 "Recorre @var{servicios} propagando sus extensiones hasta la raíz del tipo @var{target-type}; devuelve el servicio raíz tratado de la manera apropiada."
 
 #. type: Plain text
-#: doc/guix.texi:27740
+#: doc/guix.texi:31923
 msgid "Lastly, the @code{(gnu services)} module also defines several essential service types, some of which are listed below."
 msgstr "Por último, el módulo @code{(gnu services)} también define varios tipos esenciales de servicios, algunos de los cuales se enumeran a continuación."
 
 #. type: defvr
-#: doc/guix.texi:27741
+#: doc/guix.texi:31924
 #, no-wrap
 msgid "{Scheme Variable} system-service-type"
 msgstr "{Variable Scheme} system-service-type"
 
 #. type: defvr
-#: doc/guix.texi:27744
+#: doc/guix.texi:31927
 msgid "This is the root of the service graph.  It produces the system directory as returned by the @command{guix system build} command."
 msgstr "Esta es la raíz del grafo de servicios. Produce el directorio del sistema como lo devuelve la orden @code{guix system build}."
 
 #. type: defvr
-#: doc/guix.texi:27746
+#: doc/guix.texi:31929
 #, no-wrap
 msgid "{Scheme Variable} boot-service-type"
 msgstr "{Variable Scheme} boot-service-type"
 
 #. type: defvr
-#: doc/guix.texi:27749
+#: doc/guix.texi:31932
 msgid "The type of the ``boot service'', which produces the @dfn{boot script}.  The boot script is what the initial RAM disk runs when booting."
-msgstr "El tipo del ``servicio de arranque'', que produce un @dfn{guión de arranque}. El guión de arranque es lo que ejecuta el disco inicial de RAM cuando se arranca."
+msgstr "El tipo del ``servicio de arranque'', que produce un @dfn{guión de arranque}. El guión de arranque es lo que ejecuta el disco inicial en RAM cuando se arranca."
 
 #. type: defvr
-#: doc/guix.texi:27751
+#: doc/guix.texi:31934
 #, no-wrap
 msgid "{Scheme Variable} etc-service-type"
 msgstr "{Variable Scheme} etc-service-type"
 
 #. type: defvr
-#: doc/guix.texi:27755
+#: doc/guix.texi:31938
 msgid "The type of the @file{/etc} service.  This service is used to create files under @file{/etc} and can be extended by passing it name/file tuples such as:"
-msgstr "El tipo del servicio @file{/etc}. Este servicio se usa para crear los ficheros en @file{/etc} y puede extenderse proporcionandole pares nombre/fichero como estas:"
+msgstr "El tipo del servicio @file{/etc}. Este servicio se usa para crear los archivos en @file{/etc} y puede extenderse proporcionandole pares nombre/archivo como estas:"
 
 #. type: lisp
-#: doc/guix.texi:27758
+#: doc/guix.texi:31941
 #, no-wrap
 msgid "(list `(\"issue\" ,(plain-file \"issue\" \"Welcome!\\n\")))\n"
 msgstr "(list `(\"issue\" ,(plain-file \"issue\" \"¡Bienvenida!\\n\")))\n"
 
 #. type: defvr
-#: doc/guix.texi:27762
+#: doc/guix.texi:31945
 msgid "In this example, the effect would be to add an @file{/etc/issue} file pointing to the given file."
-msgstr "En este ejemplo, el efecto sería la adición de un fichero @file{/etc/issue} que apunte al fichero proporcionado."
+msgstr "En este ejemplo, el efecto sería la adición de un archivo @file{/etc/issue} que apunte al archivo proporcionado."
 
 #. type: defvr
-#: doc/guix.texi:27764
+#: doc/guix.texi:31947
 #, no-wrap
 msgid "{Scheme Variable} setuid-program-service-type"
 msgstr "{Variable Scheme} setuid-program-service-type"
 
 #. type: defvr
-#: doc/guix.texi:27768
+#: doc/guix.texi:31951
 msgid "Type for the ``setuid-program service''.  This service collects lists of executable file names, passed as gexps, and adds them to the set of setuid-root programs on the system (@pxref{Setuid Programs})."
-msgstr "Tipo para el ``servicio de programas setuid''. Este servicio recopila listas de nombres de ficheros ejecutables, proporcionados como expresiones-G, y los añade al conjunto de programas con setuid de root en el sistema (@pxref{Setuid Programs})."
+msgstr "Tipo para el ``servicio de programas setuid''. Este servicio recopila listas de nombres de archivos ejecutables, proporcionados como expresiones-G, y los añade al conjunto de programas con setuid de root en el sistema (@pxref{Setuid Programs})."
 
 #. type: defvr
-#: doc/guix.texi:27770
+#: doc/guix.texi:31953
 #, no-wrap
 msgid "{Scheme Variable} profile-service-type"
 msgstr "{Variable Scheme} profile-service-type"
 
 #. type: defvr
-#: doc/guix.texi:27774
+#: doc/guix.texi:31957
 msgid "Type of the service that populates the @dfn{system profile}---i.e., the programs under @file{/run/current-system/profile}.  Other services can extend it by passing it lists of packages to add to the system profile."
 msgstr "Tipo del servicio que genera el @dfn{perfil del sistema}---es decir, los programas en @file{/run/current-system/profile}. Otros servicios pueden extenderlo proporcionandole listas de paquetes a añadir al perfil del sistema."
 
+#. type: anchor{#1}
+#: doc/guix.texi:31961
+msgid "provenance-service-type"
+msgstr "provenance-service-type"
+
 #. type: defvr
-#: doc/guix.texi:27777
+#: doc/guix.texi:31961
 #, no-wrap
 msgid "{Scheme Variable} provenance-service-type"
 msgstr "{Variable Scheme} provenance-service-type"
 
 #. type: defvr
-#: doc/guix.texi:27781
+#: doc/guix.texi:31965
 msgid "This is the type of the service that records @dfn{provenance meta-data} in the system itself.  It creates several files under @file{/run/current-system}:"
-msgstr "Es el tipo del servicio que registra los @dfn{metadatos de procedencia} en el sistema mismo. Crea varios ficheros en @file{/run/current-system}:"
+msgstr "Es el tipo del servicio que registra los @dfn{metadatos de procedencia} en el sistema mismo. Crea varios archivos en @file{/run/current-system}:"
 
 #. type: item
-#: doc/guix.texi:27783
+#: doc/guix.texi:31967
 #, no-wrap
 msgid "channels.scm"
 msgstr "channels.scm"
 
 #. type: table
-#: doc/guix.texi:27788
+#: doc/guix.texi:31972
 msgid "This is a ``channel file'' that can be passed to @command{guix pull -C} or @command{guix time-machine -C}, and which describes the channels used to build the system, if that information was available (@pxref{Channels})."
-msgstr "Es un ``fichero de canales'' que se le puede proporcionar a @command{guix pull -C} o @command{guix time-machine -C}, y que describe los canales usados para construir el sistema, si dicha información estaba disponible (@pxref{Channels})."
+msgstr "Es un ``archivo de canales'' que se le puede proporcionar a @command{guix pull -C} o @command{guix time-machine -C}, y que describe los canales usados para construir el sistema, si dicha información estaba disponible (@pxref{Channels})."
 
 #. type: item
-#: doc/guix.texi:27789
+#: doc/guix.texi:31973
 #, no-wrap
 msgid "configuration.scm"
 msgstr "configuration.scm"
 
 #. type: table
-#: doc/guix.texi:27794
+#: doc/guix.texi:31978
 msgid "This is the file that was passed as the value for this @code{provenance-service-type} service.  By default, @command{guix system reconfigure} automatically passes the OS configuration file it received on the command line."
-msgstr "Est es el fichero que se proporciona como valor para el servicio @code{provenance-service-type}. De manera predeterminada, @command{guix system reconfigure} proporciona automáticamente el fichero de configuración del SO que recibió en la línea de órdenes."
+msgstr "Est es el archivo que se proporciona como valor para el servicio @code{provenance-service-type}. De manera predeterminada, @command{guix system reconfigure} proporciona automáticamente el archivo de configuración del SO que recibió en la línea de órdenes."
 
 #. type: item
-#: doc/guix.texi:27795
+#: doc/guix.texi:31979
 #, no-wrap
 msgid "provenance"
 msgstr "provenance"
 
 #. type: table
-#: doc/guix.texi:27798
+#: doc/guix.texi:31982
 msgid "This contains the same information as the two other files but in a format that is more readily processable."
-msgstr "Contiene la misma información que los otros dos ficheros, pero en un formato que se puede procesar más fácilmente."
+msgstr "Contiene la misma información que los otros dos archivos, pero en un formato que se puede procesar más fácilmente."
 
 #. type: defvr
-#: doc/guix.texi:27802
+#: doc/guix.texi:31986
 msgid "In general, these two pieces of information (channels and configuration file) are enough to reproduce the operating system ``from source''."
-msgstr "En general, estas dos piezas de información (canales y el fichero de configuración) son suficientes para reproducir el sistema operativo ``desde las fuentes''."
+msgstr "En general, estas dos piezas de información (canales y el archivo de configuración) son suficientes para reproducir el sistema operativo ``desde las fuentes''."
 
 #. type: quotation
-#: doc/guix.texi:27803
+#: doc/guix.texi:31987
 #, no-wrap
 msgid "Caveats"
 msgstr "Advertencias"
 
 # FUZZY
 #. type: quotation
-#: doc/guix.texi:27810
+#: doc/guix.texi:31994
 msgid "This information is necessary to rebuild your operating system, but it is not always sufficient.  In particular, @file{configuration.scm} itself is insufficient if it is not self-contained---if it refers to external Guile modules or to extra files.  If you want @file{configuration.scm} to be self-contained, we recommend that modules or files it refers to be part of a channel."
-msgstr "Esta información es necesaria para reconstruir su sistema operativo, pero no siempre es suficiente. En particular, @file{configuration.scm} en sí es insuficiente si no está autocontenido---si hace referencia a módulos externos de Guile o a ficheros adicionales. Si desea que @file{configuration.scm} sea autocontenido, le recomendamos que los módulos o ficheros a los que haga referencia sean parte de un canal."
+msgstr "Esta información es necesaria para reconstruir su sistema operativo, pero no siempre es suficiente. En particular, @file{configuration.scm} en sí es insuficiente si no está autocontenido---si hace referencia a módulos externos de Guile o a archivos adicionales. Si desea que @file{configuration.scm} sea autocontenido, le recomendamos que los módulos o archivos a los que haga referencia sean parte de un canal."
 
 #. type: quotation
-#: doc/guix.texi:27818
+#: doc/guix.texi:32002
 msgid "Besides, provenance meta-data is ``silent'' in the sense that it does not change the bits contained in your system, @emph{except for the meta-data bits themselves}.  Two different OS configurations or sets of channels can lead to the same system, bit-for-bit; when @code{provenance-service-type} is used, these two systems will have different meta-data and thus different store file names, which makes comparison less trivial."
-msgstr "Además, la proveniencia de los metadatos es ``silenciosa'' en el sentido de que no cambia los bits que contiene su sistema, @emph{excepto por los bits de los metadatos en sí}. Dos configuraciones de SO diferentes o conjuntos de canales pueden llevar al mismo sistema, bit a bit; cuando se usa @code{provenance-service-type}, estos dos sistemas tendrán distintos metadatos y por lo tanto distintos nombres de fichero en el almacén, lo que hace no tan trivial dicha comparación."
+msgstr "Además, la proveniencia de los metadatos es ``silenciosa'' en el sentido de que no cambia los bits que contiene su sistema, @emph{excepto por los bits de los metadatos en sí}. Dos configuraciones de SO diferentes o conjuntos de canales pueden llevar al mismo sistema, bit a bit; cuando se usa @code{provenance-service-type}, estos dos sistemas tendrán distintos metadatos y por lo tanto distintos nombres de archivo en el almacén, lo que hace no tan trivial dicha comparación."
 
 #. type: defvr
-#: doc/guix.texi:27823
+#: doc/guix.texi:32007
 msgid "This service is automatically added to your operating system configuration when you use @command{guix system reconfigure}, @command{guix system init}, or @command{guix deploy}."
 msgstr "Este servicio se añade automáticamente a la configuración de su sistema operativo cuando usa @command{guix system reconfigure}, @command{guix system init} o @command{guix deploy}."
 
 #. type: cindex
-#: doc/guix.texi:27828
+#: doc/guix.texi:32012
 #, no-wrap
 msgid "shepherd services"
 msgstr "servicios de shepherd"
 
 #. type: cindex
-#: doc/guix.texi:27829
+#: doc/guix.texi:32013
 #, no-wrap
 msgid "PID 1"
 msgstr "PID 1"
 
 #. type: cindex
-#: doc/guix.texi:27830
+#: doc/guix.texi:32014
 #, no-wrap
 msgid "init system"
 msgstr "sistema de inicio"
 
 #. type: Plain text
-#: doc/guix.texi:27836
+#: doc/guix.texi:32020
 msgid "The @code{(gnu services shepherd)} module provides a way to define services managed by the GNU@tie{}Shepherd, which is the initialization system---the first process that is started when the system boots, also known as PID@tie{}1 (@pxref{Introduction,,, shepherd, The GNU Shepherd Manual})."
 msgstr "El módulo @code{(gnu services shepherd)} proporciona una forma de definir servicios gestionados por GNU@tie{}Shepherd, que es el sistema de inicio---el primer proceso que se inicia cuando el sistema arranca, también conocido como PID@tie{}1 (@pxref{Introduction,,, shepherd, The GNU Shepherd Manual})."
 
 #. type: Plain text
-#: doc/guix.texi:27842
+#: doc/guix.texi:32026
 msgid "Services in the Shepherd can depend on each other.  For instance, the SSH daemon may need to be started after the syslog daemon has been started, which in turn can only happen once all the file systems have been mounted.  The simple operating system defined earlier (@pxref{Using the Configuration System}) results in a service graph like this:"
-msgstr "Los servicios en Shepherd pueden depender de otros servicios. Por ejemplo, el daemon SSH puede tener que arrancarse tras el arranque del daemon syslog, lo cual a su vez puede suceder únicamente tras el montaje de todos los sistemas de ficheros. El sistema operativo simple definido previamente (@pxref{Using the Configuration System}) genera un grafo de servicios como este:"
+msgstr "Los servicios en Shepherd pueden depender de otros servicios. Por ejemplo, el daemon SSH puede tener que arrancarse tras el arranque del daemon syslog, lo cual a su vez puede suceder únicamente tras el montaje de todos los sistemas de archivos. El sistema operativo simple definido previamente (@pxref{Using the Configuration System}) genera un grafo de servicios como este:"
 
 #. type: Plain text
-#: doc/guix.texi:27844
+#: doc/guix.texi:32028
 msgid "@image{images/shepherd-graph,,5in,Typical shepherd service graph.}"
 msgstr "@image{images/shepherd-graph,,5in,Grafo típico de servicios de shepherd.}"
 
 #. type: Plain text
-#: doc/guix.texi:27848
+#: doc/guix.texi:32032
 msgid "You can actually generate such a graph for any operating system definition using the @command{guix system shepherd-graph} command (@pxref{system-shepherd-graph, @command{guix system shepherd-graph}})."
 msgstr "En realidad puede generar dicho grafo para cualquier definición de sistema operativo mediante el uso de la orden @command{guix system shepherd-graph} (@pxref{system-shepherd-graph, @command{guix system shepherd-graph}})."
 
 #. type: Plain text
-#: doc/guix.texi:27852
+#: doc/guix.texi:32036
 msgid "The @code{%shepherd-root-service} is a service object representing PID@tie{}1, of type @code{shepherd-root-service-type}; it can be extended by passing it lists of @code{<shepherd-service>} objects."
 msgstr "@code{%shepherd-root-service} es un objeto de servicio que representa el PID@tie{}1, del tipo @code{shepherd-root-service-type}; puede ser extendido proporcionandole listas de objetos @code{<shepherd-service>}."
 
 #. type: deftp
-#: doc/guix.texi:27853
+#: doc/guix.texi:32037
 #, no-wrap
 msgid "{Data Type} shepherd-service"
 msgstr "{Tipo de datos} shepherd-service"
 
 #. type: deftp
-#: doc/guix.texi:27855
+#: doc/guix.texi:32039
 msgid "The data type representing a service managed by the Shepherd."
 msgstr "El tipo de datos que representa un servicio gestionado por Shepherd."
 
 #. type: code{#1}
-#: doc/guix.texi:27857
+#: doc/guix.texi:32041
 #, no-wrap
 msgid "provision"
 msgstr "provision"
 
 #. type: table
-#: doc/guix.texi:27859
+#: doc/guix.texi:32043
 msgid "This is a list of symbols denoting what the service provides."
 msgstr "Una lista de símbolos que indican lo que proporciona el servicio."
 
 #. type: table
-#: doc/guix.texi:27864
+#: doc/guix.texi:32048
 msgid "These are the names that may be passed to @command{herd start}, @command{herd status}, and similar commands (@pxref{Invoking herd,,, shepherd, The GNU Shepherd Manual}).  @xref{Slots of services, the @code{provides} slot,, shepherd, The GNU Shepherd Manual}, for details."
 msgstr "Esto son nombres que pueden proporcionarse a @command{herd start}, @command{herd status} y órdenes similares (@pxref{Invoking herd,,, shepherd, The GNU Shepherd Manual}). @xref{Slots of services, the @code{provides} slot,, shepherd, The GNU Shepherd Manual}, para más detalles."
 
 #. type: item
-#: doc/guix.texi:27865
+#: doc/guix.texi:32049
 #, no-wrap
 msgid "@code{requirement} (default: @code{'()})"
 msgstr "@code{requirement} (predeterminada: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:27867
+#: doc/guix.texi:32051
 msgid "List of symbols denoting the Shepherd services this one depends on."
 msgstr "Lista de símbolos que indican los servicios Shepherd de los que este depende."
 
 #. type: cindex
-#: doc/guix.texi:27868
+#: doc/guix.texi:32052
 #, no-wrap
 msgid "one-shot services, for the Shepherd"
 msgstr "servicios one-shot, para Shepherd"
 
 #. type: table
-#: doc/guix.texi:27873
+#: doc/guix.texi:32057
 msgid "Whether this service is @dfn{one-shot}.  One-shot services stop immediately after their @code{start} action has completed.  @xref{Slots of services,,, shepherd, The GNU Shepherd Manual}, for more info."
 msgstr "Si este servicio es @dfn{one-shot}. Los servicios ``one-shot'' finalizan inmediatamente después de que su acción @code{start} se complete. @xref{Slots of services,,, shepherd, The GNU Shepherd Manual}, para más información."
 
 #. type: item
-#: doc/guix.texi:27874
+#: doc/guix.texi:32058
 #, no-wrap
 msgid "@code{respawn?} (default: @code{#t})"
 msgstr "@code{respawn?} (predeterminado: @code{#t})"
 
 # FUZZY
 #. type: table
-#: doc/guix.texi:27877
+#: doc/guix.texi:32061
 msgid "Whether to restart the service when it stops, for instance when the underlying process dies."
 msgstr "Indica si se debe reiniciar el servicio cuando se para, por ejemplo cuando el proceso subyacente muere."
 
 #. type: code{#1}
-#: doc/guix.texi:27878
+#: doc/guix.texi:32062
 #, no-wrap
 msgid "start"
 msgstr "start"
 
 #. type: itemx
-#: doc/guix.texi:27879
+#: doc/guix.texi:32063
 #, no-wrap
 msgid "@code{stop} (default: @code{#~(const #f)})"
 msgstr "@code{stop} (predeterminado: @code{#~(const #f)})"
 
 #. type: table
-#: doc/guix.texi:27885
+#: doc/guix.texi:32069
 msgid "The @code{start} and @code{stop} fields refer to the Shepherd's facilities to start and stop processes (@pxref{Service De- and Constructors,,, shepherd, The GNU Shepherd Manual}).  They are given as G-expressions that get expanded in the Shepherd configuration file (@pxref{G-Expressions})."
-msgstr "Los campos @code{start} y @code{stop} hacen referencia a las características de Shepherd de arranque y parada de procesos respectivamente (@pxref{Service De- and Constructors,,, shepherd, The GNU Shepherd Manual}). Se proporcionan como expresiones-G que se expandirán en el fichero de configuración de Shepherd (@pxref{G-Expressions})."
+msgstr "Los campos @code{start} y @code{stop} hacen referencia a las características de Shepherd de arranque y parada de procesos respectivamente (@pxref{Service De- and Constructors,,, shepherd, The GNU Shepherd Manual}). Se proporcionan como expresiones-G que se expandirán en el archivo de configuración de Shepherd (@pxref{G-Expressions})."
 
 #. type: item
-#: doc/guix.texi:27886
+#: doc/guix.texi:32070
 #, no-wrap
 msgid "@code{actions} (default: @code{'()})"
 msgstr "@code{actions} (predeterminadas: @code{'()})"
 
 #. type: cindex
-#: doc/guix.texi:27887
+#: doc/guix.texi:32071
 #, no-wrap
 msgid "actions, of Shepherd services"
 msgstr "acciones, de servicios de Shepherd"
 
 #. type: table
-#: doc/guix.texi:27892
+#: doc/guix.texi:32076
 msgid "This is a list of @code{shepherd-action} objects (see below) defining @dfn{actions} supported by the service, in addition to the standard @code{start} and @code{stop} actions.  Actions listed here become available as @command{herd} sub-commands:"
 msgstr "Esta es la lista de objetos @code{shepherd-action} (véase a continuación) que definen las @dfn{acciones} permitidas por el servicio, además de las acciones estándar @code{start} y @code{stop}. Las acciones que se listan aquí estarán disponibles como ordenes de @command{herd}:"
 
 #. type: example
-#: doc/guix.texi:27895
+#: doc/guix.texi:32079
 #, no-wrap
 msgid "herd @var{action} @var{service} [@var{arguments}@dots{}]\n"
 msgstr "herd @var{acción} @var{servicio} [@var{parámetros}@dots{}]\n"
 
 #. type: item
-#: doc/guix.texi:27897
+#: doc/guix.texi:32081
 #, no-wrap
 msgid "@code{auto-start?} (default: @code{#t})"
 msgstr "@code{auto-start?} (predeterminado: @code{#t})"
 
 #. type: table
-#: doc/guix.texi:27900
+#: doc/guix.texi:32084
 msgid "Whether this service should be started automatically by the Shepherd.  If it is @code{#f} the service has to be started manually with @code{herd start}."
 msgstr "Determina si Shepherd debe iniciar este servicio de manera automática. Si es @code{#f} el servicio debe iniciarse manualmente con @code{herd start}."
 
 #. type: table
-#: doc/guix.texi:27903
+#: doc/guix.texi:32087
 msgid "A documentation string, as shown when running:"
 msgstr "Una cadena de documentación, que se mostrará al ejecutar:"
 
 #. type: example
-#: doc/guix.texi:27906
+#: doc/guix.texi:32090
 #, no-wrap
 msgid "herd doc @var{service-name}\n"
 msgstr "herd doc @var{nombre-del-servicio}\n"
 
 #. type: table
-#: doc/guix.texi:27910
+#: doc/guix.texi:32094
 msgid "where @var{service-name} is one of the symbols in @code{provision} (@pxref{Invoking herd,,, shepherd, The GNU Shepherd Manual})."
 msgstr "donde @var{nombre-del-servicio} es uno de los símbolos en @code{provision} (@pxref{Invoking herd,,, shepherd, The GNU Shepherd Manual})."
 
 #. type: item
-#: doc/guix.texi:27911
+#: doc/guix.texi:32095
 #, no-wrap
 msgid "@code{modules} (default: @code{%default-modules})"
 msgstr "@code{modules} (predeterminados: @code{%default-modules})"
 
 #. type: table
-#: doc/guix.texi:27914
+#: doc/guix.texi:32098
 msgid "This is the list of modules that must be in scope when @code{start} and @code{stop} are evaluated."
 msgstr "Esta es la lista de módulos que deben estar dentro del ámbito cuando @code{start} y @code{stop} son evaluados."
 
 #. type: deftp
-#: doc/guix.texi:27918
+#: doc/guix.texi:32102
 #, no-wrap
 msgid "{Data Type} shepherd-action"
 msgstr "{Tipo de datos} shepherd-action"
 
 # FUZZY
 #. type: deftp
-#: doc/guix.texi:27921
+#: doc/guix.texi:32105
 msgid "This is the data type that defines additional actions implemented by a Shepherd service (see above)."
 msgstr "Este es el tipo de datos que define acciones adicionales implementadas por un servicio Shepherd (vea previamente)."
 
 #. type: table
-#: doc/guix.texi:27925
+#: doc/guix.texi:32109
 msgid "Symbol naming the action."
 msgstr "Símbolo que nombra la acción."
 
 #. type: table
-#: doc/guix.texi:27928
+#: doc/guix.texi:32112
 msgid "This is a documentation string for the action.  It can be viewed by running:"
 msgstr "Esta es una cadena de documentación para la acción. Puede verse ejecutando:"
 
 #. type: example
-#: doc/guix.texi:27931
+#: doc/guix.texi:32115
 #, no-wrap
 msgid "herd doc @var{service} action @var{action}\n"
 msgstr "herd doc @var{servicio} action @var{acción}\n"
 
 #. type: item
-#: doc/guix.texi:27933
+#: doc/guix.texi:32117
 #, no-wrap
 msgid "procedure"
 msgstr "procedure"
 
 #. type: table
-#: doc/guix.texi:27937
+#: doc/guix.texi:32121
 msgid "This should be a gexp that evaluates to a procedure of at least one argument, which is the ``running value'' of the service (@pxref{Slots of services,,, shepherd, The GNU Shepherd Manual})."
 msgstr "Debe ser una expresión-G que evalúa a un procedimiento de al menos un parámetro, el cual es el ``valor de ejecución'' del servicio (@pxref{Slots of services,,, shepherd, The GNU Shepherd Manual})."
 
 #. type: deftp
-#: doc/guix.texi:27941
+#: doc/guix.texi:32125
 msgid "The following example defines an action called @code{say-hello} that kindly greets the user:"
 msgstr "El siguiente ejemplo define una acción llamada @code{di-hola} que saluda amablemente a la usuaria:"
 
 #. type: lisp
-#: doc/guix.texi:27950
+#: doc/guix.texi:32134
 #, no-wrap
 msgid ""
 "(shepherd-action\n"
@@ -53426,12 +61030,12 @@ msgstr ""
 "                 #t)))\n"
 
 #. type: deftp
-#: doc/guix.texi:27953
+#: doc/guix.texi:32137
 msgid "Assuming this action is added to the @code{example} service, then you can do:"
 msgstr "Asumiendo que esta acción se añade al servicio @code{ejemplo}, puede ejecutar:"
 
 #. type: example
-#: doc/guix.texi:27959
+#: doc/guix.texi:32143
 #, no-wrap
 msgid ""
 "# herd say-hello example\n"
@@ -53445,79 +61049,79 @@ msgstr ""
 "¡Hola, compa! parámetros: (\"a\" \"b\" \"c\")\n"
 
 #. type: deftp
-#: doc/guix.texi:27964
+#: doc/guix.texi:32148
 msgid "This, as you can see, is a fairly sophisticated way to say hello.  @xref{Service Convenience,,, shepherd, The GNU Shepherd Manual}, for more info on actions."
 msgstr "Esta, como puede ver, es una forma un tanto sofisticada de decir hola. @xref{Service Convenience,,, shepherd, The GNU Shepherd Manual}, para más información sobre acciones."
 
 #. type: defvr
-#: doc/guix.texi:27966
+#: doc/guix.texi:32150
 #, no-wrap
 msgid "{Scheme Variable} shepherd-root-service-type"
 msgstr "{Variable Scheme} shepherd-root-service-type"
 
 #. type: defvr
-#: doc/guix.texi:27968
+#: doc/guix.texi:32152
 msgid "The service type for the Shepherd ``root service''---i.e., PID@tie{}1."
 msgstr "El tipo de servicio para el ``servicio raíz'' de Shepherd---es decir, PID@tie{}1."
 
 #. type: defvr
-#: doc/guix.texi:27972
+#: doc/guix.texi:32156
 msgid "This is the service type that extensions target when they want to create shepherd services (@pxref{Service Types and Services}, for an example).  Each extension must pass a list of @code{<shepherd-service>}."
 msgstr "El tipo de servicio que las extensiones declaran cuando desean crear servicios shepherd (@pxref{Service Types and Services}, para un ejemplo). Cada extensión debe pasar una lista de @code{<shepherd-service>}."
 
 #. type: defvr
-#: doc/guix.texi:27974
+#: doc/guix.texi:32158
 #, no-wrap
 msgid "{Scheme Variable} %shepherd-root-service"
 msgstr "{Variable Scheme} %shepherd-root-service"
 
 #. type: defvr
-#: doc/guix.texi:27976
+#: doc/guix.texi:32160
 msgid "This service represents PID@tie{}1."
 msgstr "Este servicio representa el PID@tie{}1."
 
 #. type: cindex
-#: doc/guix.texi:27982
+#: doc/guix.texi:32166
 #, no-wrap
 msgid "documentation, searching for"
 msgstr "documentación, búsqueda"
 
 #. type: cindex
-#: doc/guix.texi:27983
+#: doc/guix.texi:32167
 #, no-wrap
 msgid "searching for documentation"
 msgstr "búsqueda de documentación"
 
 #. type: cindex
-#: doc/guix.texi:27984
+#: doc/guix.texi:32168
 #, no-wrap
 msgid "Info, documentation format"
 msgstr "Info, formato de documentación"
 
 #. type: cindex
-#: doc/guix.texi:27985
+#: doc/guix.texi:32169
 #, no-wrap
 msgid "man pages"
 msgstr "páginas man"
 
 #. type: cindex
-#: doc/guix.texi:27986
+#: doc/guix.texi:32170
 #, no-wrap
 msgid "manual pages"
 msgstr "páginas de manual"
 
 #. type: Plain text
-#: doc/guix.texi:27993
+#: doc/guix.texi:32177
 msgid "In most cases packages installed with Guix come with documentation.  There are two main documentation formats: ``Info'', a browseable hypertext format used for GNU software, and ``manual pages'' (or ``man pages''), the linear documentation format traditionally found on Unix.  Info manuals are accessed with the @command{info} command or with Emacs, and man pages are accessed using @command{man}."
 msgstr "En la mayor parte de casos, los paquetes instalados con Guix contienen documentación. Hay dos formatos principales de documentación: ``Info'', un formato hipertextual navegable usado para software GNU, y ``páginas de manual'' (o ``páginas man''), la documentación lineal encontrada tradicionalmente en Unix. Se accede a los manuales Info con la orden @command{info} o con Emacs, y las páginas man con @command{man}."
 
 #. type: Plain text
-#: doc/guix.texi:27997
+#: doc/guix.texi:32181
 msgid "You can look for documentation of software installed on your system by keyword.  For example, the following command searches for information about ``TLS'' in Info manuals:"
 msgstr "Puede buscar documentación de software instalado en su sistema por palabras clave. Por ejemplo, la siguiente orden busca información sobre ``TLS'' en manuales Info:"
 
 #. type: example
-#: doc/guix.texi:28005
+#: doc/guix.texi:32189
 #, no-wrap
 msgid ""
 "$ info -k TLS\n"
@@ -53535,12 +61139,12 @@ msgstr ""
 "@dots{}\n"
 
 #. type: Plain text
-#: doc/guix.texi:28009
+#: doc/guix.texi:32193
 msgid "The command below searches for the same keyword in man pages:"
 msgstr "La orden siguiente busca por la misma palabra clave en páginas man:"
 
 #. type: example
-#: doc/guix.texi:28015
+#: doc/guix.texi:32199
 #, no-wrap
 msgid ""
 "$ man -k TLS\n"
@@ -53554,108 +61158,210 @@ msgstr ""
 "@dots {}\n"
 
 #. type: Plain text
-#: doc/guix.texi:28021
+#: doc/guix.texi:32205
 msgid "These searches are purely local to your computer so you have the guarantee that documentation you find corresponds to what you have actually installed, you can access it off-line, and your privacy is respected."
 msgstr "Estas búsquedas son completamente locales en su máquina de modo que tiene la garantía de que la documentación que encuentre corresponde con lo que está realmente instalado, puede acceder a ella sin conexión a la red, y se respeta su privacidad."
 
 #. type: Plain text
-#: doc/guix.texi:28024
+#: doc/guix.texi:32208
 msgid "Once you have these results, you can view the relevant documentation by running, say:"
 msgstr "Una vez tenga estos resultados, puede ver la documentación relevante mediante la ejecución de, digamos:"
 
 #. type: example
-#: doc/guix.texi:28027
+#: doc/guix.texi:32211
 #, no-wrap
 msgid "$ info \"(gnutls)Core TLS API\"\n"
 msgstr "$ info \"(gnutls)Core TLS API\"\n"
 
 #. type: Plain text
-#: doc/guix.texi:28031
+#: doc/guix.texi:32215
 msgid "or:"
 msgstr "o:"
 
 #. type: example
-#: doc/guix.texi:28034
+#: doc/guix.texi:32218
 #, no-wrap
 msgid "$ man certtool\n"
 msgstr "$ man certtool\n"
 
 #. type: Plain text
-#: doc/guix.texi:28042
+#: doc/guix.texi:32226
 msgid "Info manuals contain sections and indices as well as hyperlinks like those found in Web pages.  The @command{info} reader (@pxref{Top, Info reader,, info-stnd, Stand-alone GNU Info}) and its Emacs counterpart (@pxref{Misc Help,,, emacs, The GNU Emacs Manual}) provide intuitive key bindings to navigate manuals.  @xref{Getting Started,,, info, Info: An Introduction}, for an introduction to Info navigation."
 msgstr "Los manuales Info contienen secciones e índices, así como enlaces como aquellos encontrados en páginas Web. El lector @command{info} (@pxref{Top, Info reader,, info-stnd, Stand-alone GNU Info}) y su contraparte en Emacs (@pxref{Misc Help,,, emacs, The GNU Emacs Manual}) proporcionan combinaciones de teclas intuitivas para la navegación en los manuales. @xref{Getting Started,,, info, Info: An Introduction}, para una introducción a la navegación en Info."
 
 #. type: cindex
-#: doc/guix.texi:28046
+#: doc/guix.texi:32230
 #, no-wrap
 msgid "debugging files"
-msgstr "ficheros de depuración"
+msgstr "archivos de depuración"
 
 #. type: Plain text
-#: doc/guix.texi:28052
+#: doc/guix.texi:32236
 msgid "Program binaries, as produced by the GCC compilers for instance, are typically written in the ELF format, with a section containing @dfn{debugging information}.  Debugging information is what allows the debugger, GDB, to map binary code to source code; it is required to debug a compiled program in good conditions."
 msgstr "Los programas binarios, como los producidos por los compiladores GCC por ejemplo, se escriben típicamente en el formato ELF, con una sección que contiene @dfn{información de depuración}. La información de depuración es lo que permite que el depurador, GDB, asocie código binario a código fuente; es necesaria para depurar un programa compilado en condiciones adecuadas."
 
 #. type: Plain text
-#: doc/guix.texi:28060
+#: doc/guix.texi:32240
+msgid "This chapter explains how to use separate debug info when packages provide it, and how to rebuild packages with debug info when it's missing."
+msgstr "Este capítulo explica cómo usar la información de depuración separada cuando los paquetes la proporcionan, y cómo reconstruir paquetes con información de depuración cuando esta falte."
+
+#. type: Plain text
+#: doc/guix.texi:32256
 msgid "The problem with debugging information is that is takes up a fair amount of disk space.  For example, debugging information for the GNU C Library weighs in at more than 60 MiB.  Thus, as a user, keeping all the debugging info of all the installed programs is usually not an option.  Yet, space savings should not come at the cost of an impediment to debugging---especially in the GNU system, which should make it easier for users to exert their computing freedom (@pxref{GNU Distribution})."
 msgstr "El problema con la información de depuración es que ocupa un espacio considerable en el disco. Por ejemplo, la información de depuración de la biblioteca C de GNU ocupa más de 60 MiB. Por tanto, como usuaria, mantener toda la información de depuración de todos los programas instalados no es habitualmente una opción. No obstante, el ahorro de espacio no debe ser impedir la depuración---especialmente en el sistema GNU, que debería facilitar a sus usuarias ejercitar su libertad de computación (@pxref{GNU Distribution})."
 
 #. type: Plain text
-#: doc/guix.texi:28067
+#: doc/guix.texi:32263
 msgid "Thankfully, the GNU Binary Utilities (Binutils) and GDB provide a mechanism that allows users to get the best of both worlds: debugging information can be stripped from the binaries and stored in separate files.  GDB is then able to load debugging information from those files, when they are available (@pxref{Separate Debug Files,,, gdb, Debugging with GDB})."
-msgstr "Afortunadamente, las utilidades binarias GNU (Binutils) y GDB proporcionan un mecanismo que permite a las usuarias obtener lo mejor de ambos mundos: la información de depuración puede extraerse de los binarios y almacenarse en ficheros separados. GDB es capaz entonces de cargar la información de depuración desde esos ficheros, cuando estén disponibles (@pxref{Separate Debug Files,,, gdb, Debugging with GDB})."
+msgstr "Afortunadamente, las utilidades binarias GNU (Binutils) y GDB proporcionan un mecanismo que permite a las usuarias obtener lo mejor de ambos mundos: la información de depuración puede extraerse de los binarios y almacenarse en archivos separados. GDB es capaz entonces de cargar la información de depuración desde esos archivos, cuando estén disponibles (@pxref{Separate Debug Files,,, gdb, Debugging with GDB})."
 
 #. type: Plain text
-#: doc/guix.texi:28075
+#: doc/guix.texi:32271
 msgid "The GNU distribution takes advantage of this by storing debugging information in the @code{lib/debug} sub-directory of a separate package output unimaginatively called @code{debug} (@pxref{Packages with Multiple Outputs}).  Users can choose to install the @code{debug} output of a package when they need it.  For instance, the following command installs the debugging information for the GNU C Library and for GNU Guile:"
 msgstr "La distribución GNU toma ventaja de este hecho almacenando la información de depuración en el subdirectorio @code{lib/debug} de una salida separada del paquete llamada @code{debug} (@pxref{Packages with Multiple Outputs}). Las usuarias pueden elegir si instalan la salida @code{debug} de un paquete cuando la necesitan. Por ejemplo, la siguiente orden instala la información de depuración para la biblioteca C de GNU y para GNU Guile."
 
 #. type: example
-#: doc/guix.texi:28078
+#: doc/guix.texi:32274
 #, no-wrap
 msgid "guix install glibc:debug guile:debug\n"
 msgstr "guix install glibc:debug guile:debug\n"
 
 #. type: Plain text
-#: doc/guix.texi:28084
+#: doc/guix.texi:32280
 msgid "GDB must then be told to look for debug files in the user's profile, by setting the @code{debug-file-directory} variable (consider setting it from the @file{~/.gdbinit} file, @pxref{Startup,,, gdb, Debugging with GDB}):"
-msgstr "Se debe decir entonces a GDB que busque los ficheros de depuración en el perfil de la usuaria, proporcionando un valor a la variable @code{debug-file-directory} (considere hacerlo en el fichero @file{~/.gdbinit}, @pxref{Startup,,, gdb, Debugging with GDB}):"
+msgstr "Se debe decir entonces a GDB que busque los archivos de depuración en el perfil de la usuaria, proporcionando un valor a la variable @code{debug-file-directory} (considere hacerlo en el archivo @file{~/.gdbinit}, @pxref{Startup,,, gdb, Debugging with GDB}):"
 
 #. type: example
-#: doc/guix.texi:28087
+#: doc/guix.texi:32283
 #, no-wrap
 msgid "(gdb) set debug-file-directory ~/.guix-profile/lib/debug\n"
 msgstr "(gdb) set debug-file-directory ~/.guix-profile/lib/debug\n"
 
 #. type: Plain text
-#: doc/guix.texi:28091
-msgid "From there on, GDB will pick up debugging information from the @code{.debug} files under @file{~/.guix-profile/lib/debug}."
-msgstr "A partir de ese momento GDB obtendrá la información de depuración de los ficheros @code{.debug} bajo @file{~/.guix-profile/lib/debug}."
+#: doc/guix.texi:32287
+msgid "From there on, GDB will pick up debugging information from the @file{.debug} files under @file{~/.guix-profile/lib/debug}."
+msgstr "A partir de ese momento GDB obtendrá la información de depuración de los archivos @file{.debug} dentro de la carpeta @file{~/.guix-profile/lib/debug}."
 
 #. type: Plain text
-#: doc/guix.texi:28098
+#: doc/guix.texi:32294
 msgid "In addition, you will most likely want GDB to be able to show the source code being debugged.  To do that, you will have to unpack the source code of the package of interest (obtained with @code{guix build --source}, @pxref{Invoking guix build}), and to point GDB to that source directory using the @code{directory} command (@pxref{Source Path, @code{directory},, gdb, Debugging with GDB})."
 msgstr "Además, probablemente desee que GDB sea capaz de mostrar el código fuente que está depurando. Para hacerlo, tiene que desempaquetar el código fuente del paquete de su interés (obtenido con @code{guix build --source}, @pxref{Invoking guix build}) e indicar a GDB cual es el directorio de fuentes mediante el uso de la orden @code{directory} (@pxref{Source Path, @code{directory},, gdb, Debugging with GDB})."
 
 #. type: Plain text
-#: doc/guix.texi:28107
-msgid "The @code{debug} output mechanism in Guix is implemented by the @code{gnu-build-system} (@pxref{Build Systems}).  Currently, it is opt-in---debugging information is available only for the packages with definitions explicitly declaring a @code{debug} output.  This may be changed to opt-out in the future if our build farm servers can handle the load.  To check whether a package has a @code{debug} output, use @command{guix package --list-available} (@pxref{Invoking guix package})."
-msgstr "El mecanismo de la salida @code{debug} en Guix se implementa por el sistema de construcción @code{gnu-build-system} (@pxref{Build Systems}). Ahora mismo necesita una activación explícita---la información de depuración está disponible únicamente para paquetes con definiciones que declaren explícitamente una salida @code{debug}. Esto puede cambiarse por una activación implícita en el futuro si nuestras granjas de construcción pueden soportar la carga. Para comprobar si un paquete tiene una salida @code{debug}, use @command{guix package --list-available} (@pxref{Invoking guix package})."
+#: doc/guix.texi:32302
+msgid "The @code{debug} output mechanism in Guix is implemented by the @code{gnu-build-system} (@pxref{Build Systems}).  Currently, it is opt-in---debugging information is available only for the packages with definitions explicitly declaring a @code{debug} output.  To check whether a package has a @code{debug} output, use @command{guix package --list-available} (@pxref{Invoking guix package})."
+msgstr "El mecanismo de la salida @code{debug} en Guix se implementa por el sistema de construcción @code{gnu-build-system} (@pxref{Build Systems}). Ahora mismo necesita una activación explícita---la información de depuración está disponible únicamente para paquetes con definiciones que declaren explícitamente una salida @code{debug}. Para comprobar si un paquete tiene una salida @code{debug}, use @command{guix package --list-available} (@pxref{Invoking guix package})."
+
+#. type: Plain text
+#: doc/guix.texi:32304
+msgid "Read on for how to deal with packages lacking a @code{debug} output."
+msgstr "Siga leyendo para ver cómo tratar con paquetes que carezcan de la salida @code{debug}."
+
+#. type: Plain text
+#: doc/guix.texi:32316
+msgid "As we saw above, some packages, but not all, provide debugging info in a @code{debug} output.  What can you do when debugging info is missing? The @option{--with-debug-info} option provides a solution to that: it allows you to rebuild the package(s) for which debugging info is missing---and only those---and to graft those onto the application you're debugging.  Thus, while it's not as fast as installing a @code{debug} output, it is relatively inexpensive."
+msgstr "Como vimos anteriormente, algunos paquetes, pero no todos, proporcionan información de depuración en una salida llamada @code{debug}. ¿Qué puede hacer cuando dicha información de depuración no está disponible? La opción @option{--with-debug-info} proporciona una solución para ello: le permite reconstruir uno o más paquetes para los que la información de depuración no esté disponible---y únicamente esos---e injertarlos en la aplicación que esté depurando. Por lo tanto, aunque no es tan rápido como instalar una salida @code{debug}, no tiene un coste elevado."
+
+#. type: Plain text
+#: doc/guix.texi:32321
+msgid "Let's illustrate that.  Suppose you're experiencing a bug in Inkscape and would like to see what's going on in GLib, a library that's deep down in its dependency graph.  As it turns out, GLib does not have a @code{debug} output and the backtrace GDB shows is all sadness:"
+msgstr "Vamos a ilustrarlo con un ejemplo. Supongamos que está sufriendo un error en Inkscape y desearía que está pasando en GLib, una biblioteca que se encuentra enraizada profundamente en su grafo de dependencias. Además GLib no tiene una salida @code{debug} y la pila de llamadas que GDB muestra es completamente deprimente:"
+
+#. type: example
+#: doc/guix.texi:32332
+#, no-wrap
+msgid ""
+"(gdb) bt\n"
+"#0  0x00007ffff5f92190 in g_getenv ()\n"
+"   from /gnu/store/@dots{}-glib-2.62.6/lib/libglib-2.0.so.0\n"
+"#1  0x00007ffff608a7d6 in gobject_init_ctor ()\n"
+"   from /gnu/store/@dots{}-glib-2.62.6/lib/libgobject-2.0.so.0\n"
+"#2  0x00007ffff7fe275a in call_init (l=<optimized out>, argc=argc@@entry=1, argv=argv@@entry=0x7fffffffcfd8, \n"
+"    env=env@@entry=0x7fffffffcfe8) at dl-init.c:72\n"
+"#3  0x00007ffff7fe2866 in call_init (env=0x7fffffffcfe8, argv=0x7fffffffcfd8, argc=1, l=<optimized out>)\n"
+"    at dl-init.c:118\n"
+msgstr ""
+"(gdb) bt\n"
+"#0  0x00007ffff5f92190 in g_getenv ()\n"
+"   from /gnu/store/@dots{}-glib-2.62.6/lib/libglib-2.0.so.0\n"
+"#1  0x00007ffff608a7d6 in gobject_init_ctor ()\n"
+"   from /gnu/store/@dots{}-glib-2.62.6/lib/libgobject-2.0.so.0\n"
+"#2  0x00007ffff7fe275a in call_init (l=<optimized out>, argc=argc@@entry=1, argv=argv@@entry=0x7fffffffcfd8, \n"
+"    env=env@@entry=0x7fffffffcfe8) at dl-init.c:72\n"
+"#3  0x00007ffff7fe2866 in call_init (env=0x7fffffffcfe8, argv=0x7fffffffcfd8, argc=1, l=<optimized out>)\n"
+"    at dl-init.c:118\n"
+
+#. type: Plain text
+#: doc/guix.texi:32336
+msgid "To address that, you install Inkscape linked against a variant GLib that contains debug info:"
+msgstr "Para hacer frente a esta situación debe instalar Inkscape enlazado con una variante de GLib que contenga información de depuración:"
+
+#. type: Plain text
+#: doc/guix.texi:32342
+msgid "This time, debugging will be a whole lot nicer:"
+msgstr "Esta vez la depuración será mucho más agradable:"
+
+#. type: example
+#: doc/guix.texi:32360
+#, no-wrap
+msgid ""
+"$ gdb --args sh -c 'exec inkscape'\n"
+"@dots{}\n"
+"(gdb) b g_getenv\n"
+"Function \"g_getenv\" not defined.\n"
+"Make breakpoint pending on future shared library load? (y or [n]) y\n"
+"Breakpoint 1 (g_getenv) pending.\n"
+"(gdb) r\n"
+"Starting program: /gnu/store/@dots{}-profile/bin/sh -c exec\\ inkscape\n"
+"@dots{}\n"
+"(gdb) bt\n"
+"#0  g_getenv (variable=variable@@entry=0x7ffff60c7a2e \"GOBJECT_DEBUG\") at ../glib-2.62.6/glib/genviron.c:252\n"
+"#1  0x00007ffff608a7d6 in gobject_init () at ../glib-2.62.6/gobject/gtype.c:4380\n"
+"#2  gobject_init_ctor () at ../glib-2.62.6/gobject/gtype.c:4493\n"
+"#3  0x00007ffff7fe275a in call_init (l=<optimized out>, argc=argc@@entry=3, argv=argv@@entry=0x7fffffffd088, \n"
+"    env=env@@entry=0x7fffffffd0a8) at dl-init.c:72\n"
+"@dots{}\n"
+msgstr ""
+"$ gdb --args sh -c 'exec inkscape'\n"
+"@dots{}\n"
+"(gdb) b g_getenv\n"
+"Function \"g_getenv\" not defined.\n"
+"Make breakpoint pending on future shared library load? (y or [n]) y\n"
+"Breakpoint 1 (g_getenv) pending.\n"
+"(gdb) r\n"
+"Starting program: /gnu/store/@dots{}-profile/bin/sh -c exec\\ inkscape\n"
+"@dots{}\n"
+"(gdb) bt\n"
+"#0  g_getenv (variable=variable@@entry=0x7ffff60c7a2e \"GOBJECT_DEBUG\") at ../glib-2.62.6/glib/genviron.c:252\n"
+"#1  0x00007ffff608a7d6 in gobject_init () at ../glib-2.62.6/gobject/gtype.c:4380\n"
+"#2  gobject_init_ctor () at ../glib-2.62.6/gobject/gtype.c:4493\n"
+"#3  0x00007ffff7fe275a in call_init (l=<optimized out>, argc=argc@@entry=3, argv=argv@@entry=0x7fffffffd088, \n"
+"    env=env@@entry=0x7fffffffd0a8) at dl-init.c:72\n"
+"@dots{}\n"
+
+#. type: Plain text
+#: doc/guix.texi:32363
+msgid "Much better!"
+msgstr "¡Así mejor!"
+
+#. type: Plain text
+#: doc/guix.texi:32367
+msgid "Note that there can be packages for which @option{--with-debug-info} will not have the desired effect.  @xref{Package Transformation Options, @option{--with-debug-info}}, for more information."
+msgstr "Tenga en cuenta que puede haber paquetes en los que la opción @option{--with-debug-info} no tenga el efecto deseado. @xref{Package Transformation Options, @option{--with-debug-info}} para obtener más información."
 
 #. type: cindex
-#: doc/guix.texi:28112
+#: doc/guix.texi:32371
 #, no-wrap
 msgid "security updates"
 msgstr "actualizaciones de seguridad"
 
 #. type: Plain text
-#: doc/guix.texi:28121
-msgid "Occasionally, important security vulnerabilities are discovered in software packages and must be patched.  Guix developers try hard to keep track of known vulnerabilities and to apply fixes as soon as possible in the @code{master} branch of Guix (we do not yet provide a ``stable'' branch containing only security updates.)  The @command{guix lint} tool helps developers find out about vulnerable versions of software packages in the distribution:"
+#: doc/guix.texi:32380
+msgid "Occasionally, important security vulnerabilities are discovered in software packages and must be patched.  Guix developers try hard to keep track of known vulnerabilities and to apply fixes as soon as possible in the @code{master} branch of Guix (we do not yet provide a ``stable'' branch containing only security updates).  The @command{guix lint} tool helps developers find out about vulnerable versions of software packages in the distribution:"
 msgstr "De manera ocasional, vulnerabilidades importantes de seguridad se descubren en los paquetes de software y deben aplicarse parches. Las desarrolladoras de Guix tratan de seguir las vulnerabilidades conocidas y aplicar parches tan pronto como sea posible en la rama @code{master} de Guix (todavía no proporcionamos una rama ``estable'' que contenga únicamente actualizaciones de seguridad). La herramienta @command{guix lint} ayuda a las desarrolladoras a encontrar versiones vulnerables de paquetes de software en la distribución:"
 
 #. type: smallexample
-#: doc/guix.texi:28128
+#: doc/guix.texi:32387
 #, no-wrap
 msgid ""
 "$ guix lint -c cve\n"
@@ -53671,39 +61377,39 @@ msgstr ""
 "@dots{}\n"
 
 #. type: Plain text
-#: doc/guix.texi:28131
+#: doc/guix.texi:32390
 msgid "@xref{Invoking guix lint}, for more information."
 msgstr "@xref{Invoking guix lint}, para más información."
 
 #. type: Plain text
-#: doc/guix.texi:28140
+#: doc/guix.texi:32399
 msgid "Guix follows a functional package management discipline (@pxref{Introduction}), which implies that, when a package is changed, @emph{every package that depends on it} must be rebuilt.  This can significantly slow down the deployment of fixes in core packages such as libc or Bash, since basically the whole distribution would need to be rebuilt.  Using pre-built binaries helps (@pxref{Substitutes}), but deployment may still take more time than desired."
 msgstr "Guix sigue una disciplina funcional de gestión de paquetes (@pxref{Introduction}), lo que implica que, cuando se cambia un paquete, @emph{todos los paquetes que dependen de él} deben ser reconstruidos. Esto puede ralentizar de manera significativa el despliegue de correcciones en paquetes básicos como libc o Bash, ya que básicamente la distribución al completo debe reconstruirse. El uso de binarios preconstruidos ayuda (@pxref{Substitutes}), pero el despliegue aún puede tomar más tiempo del deseado."
 
 #. type: cindex
-#: doc/guix.texi:28141
+#: doc/guix.texi:32400
 #, no-wrap
 msgid "grafts"
 msgstr "injertos (grafts en inglés)"
 
 #. type: Plain text
-#: doc/guix.texi:28149
+#: doc/guix.texi:32408
 msgid "To address this, Guix implements @dfn{grafts}, a mechanism that allows for fast deployment of critical updates without the costs associated with a whole-distribution rebuild.  The idea is to rebuild only the package that needs to be patched, and then to ``graft'' it onto packages explicitly installed by the user and that were previously referring to the original package.  The cost of grafting is typically very low, and order of magnitudes lower than a full rebuild of the dependency chain."
 msgstr "Para afrontar esto, Guix implementa @dfn{injertos}, un mecanismo que permite un rápido despliegue de actualizaciones críticas sin los costes asociados con una reconstrucción completa de la distribución. La idea es reconstruir únicamente el paquete que hace falta parchear, y entonces ``injertarlo'' en los paquetes explícitamente instalados por la usuaria y que previamente hacían referencia al paquete original. El coste de realizar un injerto es menor que una reconstrucción completa de la cadena de dependencias."
 
 #. type: cindex
-#: doc/guix.texi:28150
+#: doc/guix.texi:32409
 #, no-wrap
 msgid "replacements of packages, for grafts"
 msgstr "reemplazos de paquetes, para injertos"
 
 #. type: Plain text
-#: doc/guix.texi:28156
+#: doc/guix.texi:32415
 msgid "For instance, suppose a security update needs to be applied to Bash.  Guix developers will provide a package definition for the ``fixed'' Bash, say @code{bash-fixed}, in the usual way (@pxref{Defining Packages}).  Then, the original package definition is augmented with a @code{replacement} field pointing to the package containing the bug fix:"
 msgstr "Por ejemplo, supongamos que es necesario incorporar una actualización de seguridad en Bash. Las desarrolladoras de Guix proporcionarán una definición de paquete para la versión ``corregida'' de Bash, digamos @code{bash-fixed}, de la manera habitual (@pxref{Defining Packages}). Una vez hecho, la definición original del paquete es aumentada con un campo @code{replacement} que apunta al paquete que contiene la corrección del error:"
 
 #. type: lisp
-#: doc/guix.texi:28163
+#: doc/guix.texi:32422
 #, no-wrap
 msgid ""
 "(define bash\n"
@@ -53719,182 +61425,187 @@ msgstr ""
 "    (replacement bash-fixed)))\n"
 
 #. type: Plain text
-#: doc/guix.texi:28173
+#: doc/guix.texi:32432
 msgid "From there on, any package depending directly or indirectly on Bash---as reported by @command{guix gc --requisites} (@pxref{Invoking guix gc})---that is installed is automatically ``rewritten'' to refer to @code{bash-fixed} instead of @code{bash}.  This grafting process takes time proportional to the size of the package, usually less than a minute for an ``average'' package on a recent machine.  Grafting is recursive: when an indirect dependency requires grafting, then grafting ``propagates'' up to the package that the user is installing."
 msgstr "De ahí en adelante, cualquier paquete que dependa directa o indirectamente de Bash---como informa de ello @command{guix gc --requisites} (@pxref{Invoking guix gc})---que se instale se ``reescribe'' automáticamente para hacer referencia a @code{bash-fixed} en vez de @code{bash}. Este proceso de injerto toma un tiempo proporcional al tamaño del paquete, normalmente menos de un minuto para un paquete ``medio'' en una máquina reciente. El injertado es recursivo: cuando una dependencia indirecta requiere un injerto, el injerto se ``propagará'' hasta el paquete que la usuaria esté instalando."
 
 #. type: Plain text
-#: doc/guix.texi:28181
+#: doc/guix.texi:32440
 msgid "Currently, the length of the name and version of the graft and that of the package it replaces (@code{bash-fixed} and @code{bash} in the example above) must be equal.  This restriction mostly comes from the fact that grafting works by patching files, including binary files, directly.  Other restrictions may apply: for instance, when adding a graft to a package providing a shared library, the original shared library and its replacement must have the same @code{SONAME} and be binary-compatible."
-msgstr "Actualmente, la longitud del nombre y la versión del injerto y aquella del paquete que reemplaza (@var{bash-fixed} y @var{bash} en el ejemplo previo) debe ser igual. Esta restricción viene principalmente del hecho de que el injertado funciona mediante la aplicación de parches en ficheros, incluyendo ficheros binarios, directamente. Otras restricciones pueden ser aplicables: por ejemplo, durante la adición de un injerto a un paquete que proporciona una biblioteca compartida, la biblioteca compartida y su reemplazo deben tener el mismo @code{SONAME} y deben ser compatibles a nivel binario."
+msgstr "Actualmente, la longitud del nombre y la versión del injerto y aquella del paquete que reemplaza (@var{bash-fixed} y @var{bash} en el ejemplo previo) debe ser igual. Esta restricción viene principalmente del hecho de que el injertado funciona mediante la aplicación de parches en archivos, incluyendo archivos binarios, directamente. Otras restricciones pueden ser aplicables: por ejemplo, durante la adición de un injerto a un paquete que proporciona una biblioteca compartida, la biblioteca compartida y su reemplazo deben tener el mismo @code{SONAME} y deben ser compatibles a nivel binario."
 
 #. type: Plain text
-#: doc/guix.texi:28185
+#: doc/guix.texi:32444
 msgid "The @option{--no-grafts} command-line option allows you to forcefully avoid grafting (@pxref{Common Build Options, @option{--no-grafts}}).  Thus, the command:"
 msgstr "La opción de línea de órdenes @option{--no-grafts} le permite anular voluntariamente el proceso de injerto (@pxref{Common Build Options, @option{--no-grafts}}). Por tanto, la orden:"
 
 #. type: example
-#: doc/guix.texi:28188
+#: doc/guix.texi:32447
 #, no-wrap
 msgid "guix build bash --no-grafts\n"
 msgstr "guix build bash --no-grafts\n"
 
 #. type: Plain text
-#: doc/guix.texi:28192
+#: doc/guix.texi:32451
 msgid "returns the store file name of the original Bash, whereas:"
-msgstr "devuelve el nombre de fichero del almacén de la versión original de Bash, mientras que:"
+msgstr "devuelve el nombre de archivo del almacén de la versión original de Bash, mientras que:"
 
 #. type: example
-#: doc/guix.texi:28195
+#: doc/guix.texi:32454
 #, no-wrap
 msgid "guix build bash\n"
 msgstr "guix build bash\n"
 
 #. type: Plain text
-#: doc/guix.texi:28200
+#: doc/guix.texi:32459
 msgid "returns the store file name of the ``fixed'', replacement Bash.  This allows you to distinguish between the two variants of Bash."
-msgstr "devuelve el nombre de fichero del almacén de la versión ``corregida'', reemplazo de Bash. Esto le permite distinguir entre las dos variantes de Bash."
+msgstr "devuelve el nombre de archivo del almacén de la versión ``corregida'', reemplazo de Bash. Esto le permite distinguir entre las dos variantes de Bash."
 
 #. type: Plain text
-#: doc/guix.texi:28203
+#: doc/guix.texi:32462
 msgid "To verify which Bash your whole profile refers to, you can run (@pxref{Invoking guix gc}):"
 msgstr "Para verificar a qué Bash hace referencia su perfil al completo, puede ejecutar (@pxref{Invoking guix gc}):"
 
 #. type: example
-#: doc/guix.texi:28206
+#: doc/guix.texi:32465
 #, no-wrap
 msgid "guix gc -R `readlink -f ~/.guix-profile` | grep bash\n"
 msgstr "guix gc -R `readlink -f ~/.guix-profile` | grep bash\n"
 
 #. type: Plain text
-#: doc/guix.texi:28211
+#: doc/guix.texi:32470
 msgid "@dots{} and compare the store file names that you get with those above.  Likewise for a complete Guix system generation:"
-msgstr "@dots{} y compare los nombres de fichero del almacén que obtendrá con los ejemplos previos. Del mismo modo, para una generación completa del sistema Guix:"
+msgstr "@dots{} y compare los nombres de archivo del almacén que obtendrá con los ejemplos previos. Del mismo modo, para una generación completa del sistema Guix:"
 
 #. type: example
-#: doc/guix.texi:28214
+#: doc/guix.texi:32473
 #, no-wrap
 msgid "guix gc -R `guix system build my-config.scm` | grep bash\n"
 msgstr "guix gc -R `guix system build mi-configuración.scm` | grep bash\n"
 
 #. type: Plain text
-#: doc/guix.texi:28218
+#: doc/guix.texi:32477
 msgid "Lastly, to check which Bash running processes are using, you can use the @command{lsof} command:"
 msgstr "Por último, para comprobar qué versión de Bash están usando los procesos en ejecución, puede usar la orden @command{lsof}:"
 
 #. type: example
-#: doc/guix.texi:28221
+#: doc/guix.texi:32480
 #, no-wrap
 msgid "lsof | grep /gnu/store/.*bash\n"
 msgstr "lsof | grep /gnu/store/.*bash\n"
 
 #. type: cindex
-#: doc/guix.texi:28229
+#: doc/guix.texi:32488
 #, no-wrap
 msgid "bootstrapping"
 msgstr "lanzamiento inicial"
 
 #. type: Plain text
-#: doc/guix.texi:28239
+#: doc/guix.texi:32498
 msgid "Bootstrapping in our context refers to how the distribution gets built ``from nothing''.  Remember that the build environment of a derivation contains nothing but its declared inputs (@pxref{Introduction}).  So there's an obvious chicken-and-egg problem: how does the first package get built? How does the first compiler get compiled? Note that this is a question of interest only to the curious hacker, not to the regular user, so you can shamelessly skip this section if you consider yourself a ``regular user''."
 msgstr "El lanzamiento inicial en nuestro contexto hace referencia a cómo la distribución se construye ``de la nada''. Recuerde que el entorno de construcción de una derivación no contiene más que sus entradas declaradas (@pxref{Introduction}). Por lo que hay un evidente problema ``del huevo y la gallina'': ¿cómo se construye el primer paquete? ¿Cómo se compila el primer compilador? Fíjese que esta es una cuestión de interés únicamente para la hacker curiosa, no para la usuaria normal, así que puede pasar por encima está sección sin ninguna vergüenza si se considera una ``usuaria normal''."
 
 #. type: cindex
-#: doc/guix.texi:28240 doc/guix.texi:28443
+#: doc/guix.texi:32499 doc/guix.texi:32711
 #, no-wrap
 msgid "bootstrap binaries"
 msgstr "binarios del lanzamiento inicial"
 
 #. type: Plain text
-#: doc/guix.texi:28250
+#: doc/guix.texi:32509
 msgid "The GNU system is primarily made of C code, with libc at its core.  The GNU build system itself assumes the availability of a Bourne shell and command-line tools provided by GNU Coreutils, Awk, Findutils, `sed', and `grep'.  Furthermore, build programs---programs that run @code{./configure}, @code{make}, etc.---are written in Guile Scheme (@pxref{Derivations}).  Consequently, to be able to build anything at all, from scratch, Guix relies on pre-built binaries of Guile, GCC, Binutils, libc, and the other packages mentioned above---the @dfn{bootstrap binaries}."
 msgstr "El sistema GNU está compuesto principalmente de código C, con libc en su base. El sistema de construcción GNU en sí asume la disponibilidad del shell Bourne y las herramientas de línea de órdenes proporcionadas por GNU Coreutils, Awk, Findutils, `sed' y `grep'. Además, los programas de construcción---programas que ejecutan @code{./configure}, @code{make}, etc.---están escritos en Scheme Guile (@pxref{Derivations}). Consecuentemente, para ser capaz de construir cualquier cosa, desde cero, Guix depende en binarios preconstruidos de Guile, GCC, Binutils, libc y otros paquetes mencionados anteriormente---los @dfn{binarios del lanzamiento inicial}."
 
 #. type: Plain text
-#: doc/guix.texi:28253
-msgid "These bootstrap binaries are ``taken for granted'', though we can also re-create them if needed (more on that later)."
-msgstr "Estos binarios del lanzamiento inicial se ``dan por supuestos'', aunque se pueden volver a crear si se necesita (más sobre esto más adelante)."
-
-#. type: Plain text
-#: doc/guix.texi:28256
-msgid "For @code{i686-linux} and @code{x86_64-linux} the Guix bootstrap process is more elaborate, @pxref{Reduced Binary Seed Bootstrap}."
-msgstr "En @code{i686-linux} y @code{x86_64-linux} el proceso del lanzamiento inicial de Guix es más elaborado, @pxref{Reduced Binary Seed Bootstrap}."
+#: doc/guix.texi:32513
+msgid "These bootstrap binaries are ``taken for granted'', though we can also re-create them if needed (@pxref{Preparing to Use the Bootstrap Binaries})."
+msgstr "Estos binarios del lanzamiento inicial se ``dan por supuestos'', aunque se pueden volver a crear en caso de ser necesario (@pxref{Preparing to Use the Bootstrap Binaries})."
 
 # FUZZY
-#. type: node
-#: doc/guix.texi:28260 doc/guix.texi:28262
-#, no-wrap
-msgid "Reduced Binary Seed Bootstrap"
-msgstr "Lanzamiento inicial a partir de la semilla binaria reducida"
-
-# FUZZY
-#. type: menuentry
-#: doc/guix.texi:28260
-msgid "A Bootstrap worthy of GNU."
-msgstr "Un lanzamiento inicial a la altura de GNU."
-
 #. type: section
-#: doc/guix.texi:28260 doc/guix.texi:28326 doc/guix.texi:28327
-#, no-wrap
-msgid "Preparing to Use the Bootstrap Binaries"
-msgstr "Preparación para usar los binarios del lanzamiento inicial"
-
-# FUZZY
-#. type: menuentry
-#: doc/guix.texi:28260
-msgid "Building that what matters most."
-msgstr "Construcción de lo que más importa."
-
-# FUZZY
-#. type: section
-#: doc/guix.texi:28263
+#: doc/guix.texi:32520
 #, no-wrap
 msgid "The Reduced Binary Seed Bootstrap"
 msgstr "El lanzamiento inicial a partir de la semilla binaria reducida"
 
 #. type: Plain text
-#: doc/guix.texi:28270
+#: doc/guix.texi:32527
 msgid "Guix---like other GNU/Linux distributions---is traditionally bootstrapped from a set of bootstrap binaries: Bourne shell, command-line tools provided by GNU Coreutils, Awk, Findutils, `sed', and `grep' and Guile, GCC, Binutils, and the GNU C Library (@pxref{Bootstrapping}).  Usually, these bootstrap binaries are ``taken for granted.''"
 msgstr "Guix---al igual que otras distribuciones de GNU/Linux---se lanza inicialmente desde un conjunto de binarios de manera tradicional: un shell Bourne, herramientas de línea de órdenes que proporcionan GNU Coreutils, Awk, Findutils, `sed' y `grep' y Guile, GCC, Binutils y la biblioteca de C de GNU (@pxref{Bootstrapping}). Habitualmente dichos binarios se ``dan por hecho''. "
 
 #. type: Plain text
-#: doc/guix.texi:28276
-msgid "Taking these binaries for granted means that we consider them to be a correct and trustworthy `seed' for building the complete system.  Therein lies a problem: the current combined size of these bootstrap binaries is about 250MB (@pxref{Bootstrappable Builds,,, mes, GNU Mes}).  Auditing or even inspecting these is next to impossible."
-msgstr "El dar por hecho estos binarios significa que consideramos que son una ``semilla'' correcta y fiable para la construcción del sistema completo. En esta asunción yace un problema: el tamaño combinado de dichos binarios necesarios para el lanzamiento inicial es cercano a 250MB (@pxref{Bootstrappable Builds,,, mes, GNU Mes}). El auditado o incluso la inspección de dichos binarios es prácticamente imposible."
+#: doc/guix.texi:32533
+msgid "Taking the bootstrap binaries for granted means that we consider them to be a correct and trustworthy ``seed'' for building the complete system.  Therein lies a problem: the combined size of these bootstrap binaries is about 250MB (@pxref{Bootstrappable Builds,,, mes, GNU Mes}).  Auditing or even inspecting these is next to impossible."
+msgstr "El dar por hecho estos binarios significa que consideramos que son una ``semilla'' correcta y fiable para la construcción del sistema completo. En esta asunción yace un problema: el tamaño combinado de dichos binarios necesarios para el lanzamiento inicial es de alrededor de 250MB (@pxref{Bootstrappable Builds,,, mes, GNU Mes}). Auditar o incluso la inspeccionar de dichos binarios es prácticamente imposible."
 
 # FUZZY
 #. type: Plain text
-#: doc/guix.texi:28281
+#: doc/guix.texi:32538
 msgid "For @code{i686-linux} and @code{x86_64-linux}, Guix now features a ``Reduced Binary Seed'' bootstrap @footnote{We would like to say: ``Full Source Bootstrap'' and while we are working towards that goal it would be hyperbole to use that term for what we do now.}."
 msgstr "En @code{i686-linux} y @code{x86_64-linux}, Guix basa su lanzamiento inicial en una ``semilla binaria reducida''@footnote{Nos gustaría decir: ``lanzamiento inicial completamente desde las fuentes'' pero, aunque estamos trabajando por alcanzar ese objetivo, sería una hipérbole usar dicho término para describir el proceso que seguimos en la actualidad.}."
 
 #. type: Plain text
-#: doc/guix.texi:28317
-msgid "The Reduced Binary Seed bootstrap removes the most critical tools---from a trust perspective---from the bootstrap binaries: GCC, Binutils and the GNU C Library are replaced by: @code{bootstrap-mescc-tools} (a tiny assembler and linker) and @code{bootstrap-mes} (a small Scheme Interpreter and a C compiler written in Scheme and the Mes C Library, built for TinyCC and for GCC).  Using these new binary seeds and a new set of packages@footnote{nyacc-boot, mes-boot, tcc-boot0, tcc-boot, make-mesboot0, diffutils-mesboot, binutils-mesboot0, gcc-core-mesboot, mesboot-headers, glibc-mesboot0, gcc-mesboot0, binutils-mesboot, make-mesboot, gcc-mesboot1, gcc-mesboot1-wrapper, glibc-headers-mesboot, glibc-mesboot, gcc-mesboot, and gcc-mesboot-wrapper.  } the ``missing'' Binutils, GCC, and the GNU C Library are built from source.  From here on the more traditional bootstrap process resumes.  This approach has reduced the bootstrap binaries in size to about 130MB.  Work is ongoing to reduce this further.  If you are interested, join us on @code{#bootstrappable} on the Freenode IRC network."
-msgstr "El lanzamiento inicial a partir de la semilla binaria reducida elimina las herramientas más críticas---desde la perspectiva de la confianza---de los binarios necesarios: GCC, Binutils y la biblioteca de C de GNU se sustituyen por: @code{bootstrap-mescc-tools} (un pequeño ensamblador y enlazador) y @code{bootstrap-mes} (un pequeño intérprete de Scheme y un compilador de C escrito en Scheme y la biblioteca de C de Mes, compilada para TinyCC y para GCC). Mediante el uso de estas nuevas semillas binarias y un nuevo conjunto de paquetes@footnote{nyacc-boot, mes-boot, tcc-boot0, tcc-boot, make-mesboot0, diffutils-mesboot, binutils-mesboot0, gcc-core-mesboot, mesboot-headers, glibc-mesboot0, gcc-mesboot0, binutils-mesboot, make-mesboot, gcc-mesboot1, gcc-mesboot1-wrapper, glibc-headers-mesboot, glibc-mesboot, gcc-mesboot y gcc-mesboot-wrapper.  } las herramientas que ``faltan'' (Binutils, GCC y la biblioteca de C de GNU) se construyen desde sus fuentes. Desde ese punto en adelante se continua el proceso de lanzamiento inicial tradicional. Esta aproximación ha reducido el tamaño de los binarios necesarios para el lanzamiento inicial cerca de 130MB. Se está trabajando en reducir más aún este tamaño. Si esto le interesa, puede únase en el canal @code{#bootstrappable} de la red IRC de Freenode."
+#: doc/guix.texi:32544
+msgid "The Reduced Binary Seed bootstrap removes the most critical tools---from a trust perspective---from the bootstrap binaries: GCC, Binutils and the GNU C Library are replaced by: @code{bootstrap-mescc-tools} (a tiny assembler and linker) and @code{bootstrap-mes} (a small Scheme Interpreter and a C compiler written in Scheme and the Mes C Library, built for TinyCC and for GCC)."
+msgstr "El lanzamiento inicial basado en la semilla binaria reducida elimina las herramientas más críticas---desde una perspectiva de confianza---de los binarios del lanzamiento inicial: GCC, Binutils y la biblioteca de C de GNU se sustituyen por: @code{bootstrap-mescc-tools} (un pequeño ensamblador y enlazador) y @code{bootstrap-mes} (un pequeño intérprete de Scheme, un compilador de C escrito en Scheme y la biblioteca de C de Mes, construida para TinyCC y para GCC)."
 
 #. type: Plain text
-#: doc/guix.texi:28323
-msgid "Below is the generated dependency graph for @code{gcc-mesboot}, the bootstrap compiler used to build the rest of GuixSD."
-msgstr "A continuación se encuentra el grafo de dependencias generado para @code{gcc-mesboot}, el compilador del lanzamiento inicial usado para construir el resto de GuixSD."
+#: doc/guix.texi:32549
+msgid "Using these new binary seeds the ``missing'' Binutils, GCC, and the GNU C Library are built from source.  From here on the more traditional bootstrap process resumes.  This approach has reduced the bootstrap binaries in size to about 145MB in Guix v1.1."
+msgstr "Mediante el uso de estas nuevas semillas binarias, los paquetes Binutils, GCC, y la biblioteca de C de GNU ``que faltan'' se construyen desde las fuentes. De aquí en adelante se prosigue con el proceso del lanzamiento inicial más tradicional. Esta aproximación redujo el tamaño de los binarios del lanzamiento inicial a cerca de 145MB en la versión 1.1 de Guix."
 
 #. type: Plain text
-#: doc/guix.texi:28325
-msgid "@image{images/gcc-mesboot-bag-graph,6in,,Dependency graph of the gcc-mesboot}"
-msgstr "@image{images/gcc-mesboot-bag-graph,6in,,Grafo de dependencias de gcc-mesboot}"
+#: doc/guix.texi:32557
+msgid "The next step that Guix has taken is to replace the shell and all its utilities with implementations in Guile Scheme, the @emph{Scheme-only bootstrap}.  Gash (@pxref{Gash,,, gash, The Gash manual}) is a POSIX-compatible shell that replaces Bash, and it comes with Gash Utils which has minimalist replacements for Awk, the GNU Core Utilities, Grep, Gzip, Sed, and Tar.  The rest of the bootstrap binary seeds that were removed are now built from source."
+msgstr "El siguiente paso que Guix ha tomado es sustituir el intérprete de órdenes y sus utilidades con implementaciones en el dialecto Guile de Scheme, el @emph{lanzamiento inicial basado únicamente en Scheme}.  Gash (@pxref{Gash,,, gash, The Gash manual}) es un intérprete de órdenes compatible con POSIX que sustituye a Bash, y viene con Gash Utils que contiene reemplazos minimalistas de Awk, las GNU Core Utilities, Grep, Gzip, Sed y Tar. El resto de semillas binarias del lanzamiento inicial que se han eliminado se construyen ahora desde las fuentes."
 
 #. type: Plain text
-#: doc/guix.texi:28332
+#: doc/guix.texi:32567
+msgid "Building the GNU System from source is currently only possibly by adding some historical GNU packages as intermediate steps@footnote{Packages such as @code{gcc-2.95.3}, @code{binutils-2.14}, @code{glibc-2.2.5}, @code{gzip-1.2.4}, @code{tar-1.22}, and some others.  For details, see @file{gnu/packages/commencement.scm}.}.  As Gash and Gash Utils mature, and GNU packages become more bootstrappable again (e.g., new releases of GNU Sed will also ship as gzipped tarballs again, as alternative to the hard to bootstrap @code{xz}-compression), this set of added packages can hopefully be reduced again."
+msgstr "La construcción del sistema GNU desde las fuentes es actualmente únicamente posible añadiendo algunos paquetes históricos de GNU como pasos intermedios@footnote{Paquetes como @code{gcc-2.95.3}, @code{binutils-2.14}, @code{glibc-2.2.5}, @code{gzip-1.2.4}, @code{tar-1.22}, y algunos otros. Para obtener más detalles véase @file{gnu/packages/commencement.scm}.}. Si Gash y sus utilidades maduran, y los paquetes de GNU vuelven a ser más fáciles de lanzar de manera inicial (por ejemplo, las nuevas entregas de GNU Sed también incluyen de nuevo archivadores comprimidos con gzip, como alternativa a la compresión @code{xz} que es más difícil de lanzar inicialmente), esperemos que este conjunto agregado de paquetes pueda reducirse más aún otra vez."
+
+#. type: Plain text
+#: doc/guix.texi:32571
+msgid "The graph below shows the resulting dependency graph for @code{gcc-core-mesboot0}, the bootstrap compiler used for the traditional bootstrap of the rest of the Guix System."
+msgstr "A continuación se encuentra el grafo de dependencias generado para @code{gcc-core-mesboot0}, el compilador del lanzamiento inicial usado para el lanzamiento inicial tradicional del resto del sistema Guix."
+
+#. type: Plain text
+#: doc/guix.texi:32574
+msgid "@image{images/gcc-core-mesboot0-graph,6in,,Dependency graph of gcc-core-mesboot0}"
+msgstr "@image{images/gcc-core-mesboot0-graph,6in,,Grafo de dependencias de gcc-core-mesboot0}"
+
+#. type: Plain text
+#: doc/guix.texi:32581
+msgid "The only significant binary bootstrap seeds that remain@footnote{ Ignoring the 68KB @code{mescc-tools}; that will be removed later, together with @code{mes}.} are a Scheme intepreter and a Scheme compiler: GNU Mes and GNU Guile@footnote{Not shown in this graph are the static binaries for @file{bash}, @code{tar}, and @code{xz} that are used to get Guile running.}."
+msgstr "La única semilla binaria del lanzamiento inicial que queda@footnote{Ignorando los 68KB de @code{mescc-tools}; que se eliminará más adelante, junto a @code{mes}.} son un intérprete de Scheme y un compilador de Scheme: GNU Mes y GNU Guile@footnote{En este grafo no se muestran los binarios estáticos para @file{bash}, @code{tar}, y @code{xz} que se usan para hacer que Guile pueda funcionar.}."
+
+#. type: Plain text
+#: doc/guix.texi:32584
+msgid "This further reduction has brought down the size of the binary seed to about 60MB for @code{i686-linux} and @code{x86_64-linux}."
+msgstr "Esta reducción adicional ha llevado el tamaño de la semilla de binarios inicial a cerca de los 60MB para @code{i686-linux} y @code{x86_64-linux}."
+
+#. type: Plain text
+#: doc/guix.texi:32589
+msgid "Work is ongoing to remove all binary blobs from our free software bootstrap stack, working towards a Full Source Bootstrap.  Also ongoing is work to bring these bootstraps to the @code{arm-linux} and @code{aarch64-linux} architectures and to the Hurd."
+msgstr "Se está trabajando en eliminar todos los binarios de nuestra pila de software libre del lanzamiento inicial, en pos de un lanzamiento inicial basado completamente en fuentes. También se está trabajando en proporcionar estos lanzamientos iniciales a las arquitecturas @code{arm-linux} y @code{aarch64-linux} y a Hurd."
+
+#. type: Plain text
+#: doc/guix.texi:32593
+msgid "If you are interested, join us on @samp{#bootstrappable} on the Freenode IRC network or discuss on @email{bug-mes@@gnu.org} or @email{gash-devel@@nongnu.org}."
+msgstr "Si tiene interés, puede unirse a @samp{#bootstrappable} en la red de IRC de Freenode o participar en las discusiones a través de @email{bug-mes@@gnu.org} o @email{gash-devel@@nongnu.org}."
+
+#. type: Plain text
+#: doc/guix.texi:32600
 msgid "@image{images/bootstrap-graph,6in,,Dependency graph of the early bootstrap derivations}"
 msgstr "@image{images/bootstrap-graph,6in,,Grafo de dependencias de las derivaciones del lanzamiento inicial temprano}"
 
 #. type: Plain text
-#: doc/guix.texi:28337
+#: doc/guix.texi:32605
 msgid "The figure above shows the very beginning of the dependency graph of the distribution, corresponding to the package definitions of the @code{(gnu packages bootstrap)} module.  A similar figure can be generated with @command{guix graph} (@pxref{Invoking guix graph}), along the lines of:"
 msgstr "La figura previa muestra el auténtico inicio del grafo de dependencias de la distribución, correspondiente a las definiciones de paquete del módulo @code{(gnu packages bootstrap)}. Un gráfico similar puede generarse con @command{guix graph} (@pxref{Invoking guix graph}), más o menos así:"
 
 #. type: example
-#: doc/guix.texi:28342
+#: doc/guix.texi:32610
 #, no-wrap
 msgid ""
 "guix graph -t derivation \\\n"
@@ -53907,12 +61618,12 @@ msgstr ""
 
 # FUZZY
 #. type: Plain text
-#: doc/guix.texi:28345
-msgid "or, for the Reduced Binary Seed bootstrap"
-msgstr "o, para la semilla binaria reducida del lanzamiento inicial"
+#: doc/guix.texi:32613
+msgid "or, for the further Reduced Binary Seed bootstrap"
+msgstr "o, para la semilla binaria aún más reducida del lanzamiento inicial"
 
 #. type: example
-#: doc/guix.texi:28350
+#: doc/guix.texi:32618
 #, no-wrap
 msgid ""
 "guix graph -t derivation \\\n"
@@ -53924,228 +61635,434 @@ msgstr ""
 "  | dot -Tps > mes.ps\n"
 
 #. type: Plain text
-#: doc/guix.texi:28359
+#: doc/guix.texi:32627
 msgid "At this level of detail, things are slightly complex.  First, Guile itself consists of an ELF executable, along with many source and compiled Scheme files that are dynamically loaded when it runs.  This gets stored in the @file{guile-2.0.7.tar.xz} tarball shown in this graph.  This tarball is part of Guix's ``source'' distribution, and gets inserted into the store with @code{add-to-store} (@pxref{The Store})."
-msgstr "En este nivel de detalle, las cosas son ligeramente complejas. Primero, Guile en sí consiste en un ejecutable ELF, junto a muchas fuentes y ficheros compilados Scheme que se cargan dinámicamente durante la ejecución. Esto se almacena en el archivador tar @file{guile-2.0.7.tar.xz} mostrado en este grafo. Este archivador es parte de la distribución de ``fuentes'' de Guix, y se inserta en el almacén con @code{add-to-store} (@pxref{The Store})."
+msgstr "En este nivel de detalle, las cosas son ligeramente complejas. Primero, Guile en sí consiste en un ejecutable ELF, junto a muchas fuentes y archivos compilados Scheme que se cargan dinámicamente durante la ejecución. Esto se almacena en el archivador tar @file{guile-2.0.7.tar.xz} mostrado en este grafo. Este archivador es parte de la distribución de ``fuentes'' de Guix, y se inserta en el almacén con @code{add-to-store} (@pxref{The Store})."
 
 #. type: Plain text
-#: doc/guix.texi:28368
+#: doc/guix.texi:32636
 msgid "But how do we write a derivation that unpacks this tarball and adds it to the store? To solve this problem, the @code{guile-bootstrap-2.0.drv} derivation---the first one that gets built---uses @code{bash} as its builder, which runs @code{build-bootstrap-guile.sh}, which in turn calls @code{tar} to unpack the tarball.  Thus, @file{bash}, @file{tar}, @file{xz}, and @file{mkdir} are statically-linked binaries, also part of the Guix source distribution, whose sole purpose is to allow the Guile tarball to be unpacked."
 msgstr "¿Pero cómo escribimos una derivación que extraiga este archivador y lo añada al almacén? Para resolver este problema, la derivación @code{guile-bootstrap-2.0.drv}---la primera en construirse---usa @code{bash} como su constructor, que ejecuta @code{build-bootstrap-guile.sh}, que a su vez llama a @code{tar} para extraer el archivador. Por tanto, @file{bash}, @file{tar}, @file{xz} y @file{mkdir} son binarios enlazados estáticamente, también parte de la distribución de fuentes de Guix, cuyo único propósito es permitir la extracción del archivador de Guile."
 
 #. type: Plain text
-#: doc/guix.texi:28380
-msgid "Once @code{guile-bootstrap-2.0.drv} is built, we have a functioning Guile that can be used to run subsequent build programs.  Its first task is to download tarballs containing the other pre-built binaries---this is what the @code{.tar.xz.drv} derivations do.  Guix modules such as @code{ftp-client.scm} are used for this purpose.  The @code{module-import.drv} derivations import those modules in a directory in the store, using the original layout.  The @code{module-import-compiled.drv} derivations compile those modules, and write them in an output directory with the right layout.  This corresponds to the @code{#:modules} argument of @code{build-expression->derivation} (@pxref{Derivations})."
-msgstr "Una vez que@code{guile-bootstrap-2.0.drv} se ha construido, tenemos un Guile funcional que se puede usar para ejecutar los programas de construcción siguientes. Su primera tarea es descargar los archivadores qu contienen los otros binarios preconstruidos---esto es lo que las derivaciones @code{.tar.xz.drv} hacen. Módulos Guix como @code{ftp-client.scm} se usan para este propósito. Las derivaciones @code{module-import.drv} importan esos módulos en un directorio del almacén, manteniendo la distribución de carpetas. Las derivaciones @code{module-import-compiled.drv} compilan esos módulos, y los escriben en un directorio con la distribución de carpetas correcta. Esto corresponde al parámetro @code{#:modules} de @code{build-expression->derivation} (@pxref{Derivations})."
+#: doc/guix.texi:32648
+msgid "Once @code{guile-bootstrap-2.0.drv} is built, we have a functioning Guile that can be used to run subsequent build programs.  Its first task is to download tarballs containing the other pre-built binaries---this is what the @file{.tar.xz.drv} derivations do.  Guix modules such as @code{ftp-client.scm} are used for this purpose.  The @code{module-import.drv} derivations import those modules in a directory in the store, using the original layout.  The @code{module-import-compiled.drv} derivations compile those modules, and write them in an output directory with the right layout.  This corresponds to the @code{#:modules} argument of @code{build-expression->derivation} (@pxref{Derivations})."
+msgstr "Una vez que@code{guile-bootstrap-2.0.drv} se ha construido, tenemos un Guile funcional que se puede usar para ejecutar los programas de construcción siguientes. Su primera tarea es descargar los archivadores qu contienen los otros binarios preconstruidos---esto es lo que las derivaciones @file{.tar.xz.drv} hacen. Módulos Guix como @code{ftp-client.scm} se usan para este propósito. Las derivaciones @code{module-import.drv} importan esos módulos en un directorio del almacén, manteniendo la distribución de carpetas. Las derivaciones @code{module-import-compiled.drv} compilan esos módulos, y los escriben en un directorio con la distribución de carpetas correcta. Esto corresponde al parámetro @code{#:modules} de @code{build-expression->derivation} (@pxref{Derivations})."
 
 #. type: Plain text
-#: doc/guix.texi:28385
+#: doc/guix.texi:32653
 msgid "Finally, the various tarballs are unpacked by the derivations @code{gcc-bootstrap-0.drv}, @code{glibc-bootstrap-0.drv}, or @code{bootstrap-mes-0.drv} and @code{bootstrap-mescc-tools-0.drv}, at which point we have a working C tool chain."
 msgstr "Finalmente, los archivadores tar son extraídos por las derivaciones @code{gcc-bootstrap-0.drv}, @code{glibc-bootstrap-0.drv}, or @code{bootstrap-mes-0.drv} y @code{bootstrap-mescc-tools-0.drv}, hasta el punto en el que disponemos de una cadena de herramientas C funcional."
 
 #. type: unnumberedsec
-#: doc/guix.texi:28386
+#: doc/guix.texi:32654
 #, no-wrap
 msgid "Building the Build Tools"
 msgstr "Construcción de las herramientas de construcción"
 
 #. type: Plain text
-#: doc/guix.texi:28395
+#: doc/guix.texi:32663
 msgid "Bootstrapping is complete when we have a full tool chain that does not depend on the pre-built bootstrap tools discussed above.  This no-dependency requirement is verified by checking whether the files of the final tool chain contain references to the @file{/gnu/store} directories of the bootstrap inputs.  The process that leads to this ``final'' tool chain is described by the package definitions found in the @code{(gnu packages commencement)} module."
-msgstr "El lanzamiento inicial está completo cuando tenemos una cadena de herramientas completa que no depende en las herramientas preconstruidas del lanzamiento inicial descritas previamente. Este requisito de no-dependencia se verifica comprobando si los ficheros de la cadena de herramientas final contienen referencias a directorios de @file{/gnu/store} de las entradas del lanzamiento. El proceso que lleva a esta cadena de herramientas ``final'' es descrito por las definiciones de paquetes encontradas en el módulo @code{(gnu packages commencement)}."
+msgstr "El lanzamiento inicial está completo cuando tenemos una cadena de herramientas completa que no depende en las herramientas preconstruidas del lanzamiento inicial descritas previamente. Este requisito de no-dependencia se verifica comprobando si los archivos de la cadena de herramientas final contienen referencias a directorios de @file{/gnu/store} de las entradas del lanzamiento. El proceso que lleva a esta cadena de herramientas ``final'' es descrito por las definiciones de paquetes encontradas en el módulo @code{(gnu packages commencement)}."
 
 #. type: Plain text
-#: doc/guix.texi:28402
+#: doc/guix.texi:32670
 msgid "The @command{guix graph} command allows us to ``zoom out'' compared to the graph above, by looking at the level of package objects instead of individual derivations---remember that a package may translate to several derivations, typically one derivation to download its source, one to build the Guile modules it needs, and one to actually build the package from source.  The command:"
 msgstr "La orden @command{guix graph} nos permite ``distanciarnos'' en comparación con el grafo previo, mirando al nivel de objetos de paquetes en vez de derivaciones individuales---recuerde que un paquete puede traducirse en varias derivaciones, típicamente una derivación para descargar sus fuentes, una para construir los módulos Guile que necesita y uno para realmente construir el paquete de las fuentes. La orden:"
 
 #. type: example
-#: doc/guix.texi:28407
+#: doc/guix.texi:32675
 #, no-wrap
 msgid ""
 "guix graph -t bag \\\n"
 "  -e '(@@@@ (gnu packages commencement)\n"
-"          glibc-final-with-bootstrap-bash)' | dot -Tps > t.ps\n"
+"          glibc-final-with-bootstrap-bash)' | xdot -\n"
 msgstr ""
 "guix graph -t bag \\\n"
 "  -e '(@@@@ (gnu packages commencement)\n"
-"          glibc-final-with-bootstrap-bash)' | dot -Tps > t.ps\n"
+"          glibc-final-with-bootstrap-bash)' | xdot -\n"
 
 #. type: Plain text
-#: doc/guix.texi:28414
-msgid "produces the dependency graph leading to the ``final'' C library@footnote{You may notice the @code{glibc-intermediate} label, suggesting that it is not @emph{quite} final, but as a good approximation, we will consider it final.}, depicted below."
-msgstr "produce el grafo de dependencias que lleva a la biblioteca C ``final''@footnote{Puede haberse dado cuenta de la etiqueta @code{glibc-intermediate}, sugiriendo que no es @emph{completamente} final, pero como es una buena aproximación, la consideraremos final}, mostrado a continuación."
+#: doc/guix.texi:32682
+msgid "displays the dependency graph leading to the ``final'' C library@footnote{You may notice the @code{glibc-intermediate} label, suggesting that it is not @emph{quite} final, but as a good approximation, we will consider it final.}, depicted below."
+msgstr "muestra el grafo de dependencias que lleva a la biblioteca C ``final''@footnote{Puede haberse dado cuenta de la etiqueta @code{glibc-intermediate}, sugiriendo que no es @emph{completamente} final, pero como es una buena aproximación, la consideraremos final.}, mostrado a continuación."
 
 #. type: Plain text
-#: doc/guix.texi:28416
+#: doc/guix.texi:32684
 msgid "@image{images/bootstrap-packages,6in,,Dependency graph of the early packages}"
 msgstr "@image{images/bootstrap-packages,6in,,Grafo de dependencias de los primeros paquetes}"
 
 #. type: Plain text
-#: doc/guix.texi:28422
+#: doc/guix.texi:32690
 msgid "The first tool that gets built with the bootstrap binaries is GNU@tie{}Make---noted @code{make-boot0} above---which is a prerequisite for all the following packages.  From there Findutils and Diffutils get built."
 msgstr "La primera herramienta que se construye con los binarios del lanzamiento inicial es GNU@tie{}Make---marcado como @code{make-boot0} en el grafo---, que es un pre-requisito para todos los paquetes siguientes. Una vez hecho se construyen Findutils y Diffutils."
 
 #. type: Plain text
-#: doc/guix.texi:28427
-msgid "Then come the first-stage Binutils and GCC, built as pseudo cross tools---i.e., with @code{--target} equal to @code{--host}.  They are used to build libc.  Thanks to this cross-build trick, this libc is guaranteed not to hold any reference to the initial tool chain."
-msgstr "Después viene la primera fase de Binutils y GCC, construidas como herramientas pseudo-cruzadas---es decir, con @code{--target} igual a @code{--host}. Se usan para construir libc. Gracias a este truco de compilación cruzada, se garantiza que esta libc no tendrá ninguna referencia a la cadena de herramientas inicial."
+#: doc/guix.texi:32695
+msgid "Then come the first-stage Binutils and GCC, built as pseudo cross tools---i.e., with @option{--target} equal to @option{--host}.  They are used to build libc.  Thanks to this cross-build trick, this libc is guaranteed not to hold any reference to the initial tool chain."
+msgstr "Después viene la primera fase de Binutils y GCC, construidas como herramientas pseudo-cruzadas---es decir, con @option{--target} igual a @option{--host}. Se usan para construir libc. Gracias a este truco de compilación cruzada, se garantiza que esta libc no tendrá ninguna referencia a la cadena de herramientas inicial."
 
 #. type: Plain text
-#: doc/guix.texi:28433
-msgid "From there the final Binutils and GCC (not shown above) are built.  GCC uses @code{ld} from the final Binutils, and links programs against the just-built libc.  This tool chain is used to build the other packages used by Guix and by the GNU Build System: Guile, Bash, Coreutils, etc."
-msgstr "Posteriormente se construyen las herramientas Binutils y GCC (no mostradas previamente) finales, y enlazan los programas contra la libc recién construía. Esta cadena de herramientas se usa para construir otros paquetes usados por Guix y el sistema de construcción GNU: Guile, Bash, Coreutils, etc."
+#: doc/guix.texi:32701
+msgid "From there the final Binutils and GCC (not shown above) are built.  GCC uses @command{ld} from the final Binutils, and links programs against the just-built libc.  This tool chain is used to build the other packages used by Guix and by the GNU Build System: Guile, Bash, Coreutils, etc."
+msgstr "Posteriormente se construyen las herramientas Binutils y GCC (no mostradas previamente) finales. GCC usa @command{ld} de la construcción final de Binutils y enlazan los programas contra la libc recién construía. Esta cadena de herramientas se usa para construir otros paquetes usados por Guix y el sistema de construcción GNU: Guile, Bash, Coreutils, etc."
 
 #. type: Plain text
-#: doc/guix.texi:28439
+#: doc/guix.texi:32707
 msgid "And voilà! At this point we have the complete set of build tools that the GNU Build System expects.  These are in the @code{%final-inputs} variable of the @code{(gnu packages commencement)} module, and are implicitly used by any package that uses @code{gnu-build-system} (@pxref{Build Systems, @code{gnu-build-system}})."
 msgstr "¡Y voilà! En este punto tenemos un conjunto completo de herramientas de construcción esperadas por el sistema de construcción GNU. Están en la variable @code{%final-inputs} del módulo @code{(gnu packages commencement)}, y se usan implícitamente por cualquier paquete que use @code{gnu-build-system} (@pxref{Build Systems, @code{gnu-build-system}})."
 
 #. type: unnumberedsec
-#: doc/guix.texi:28441
+#: doc/guix.texi:32709
 #, no-wrap
 msgid "Building the Bootstrap Binaries"
 msgstr "Construir los binarios de lanzamiento"
 
 #. type: Plain text
-#: doc/guix.texi:28448
+#: doc/guix.texi:32716
 msgid "Because the final tool chain does not depend on the bootstrap binaries, those rarely need to be updated.  Nevertheless, it is useful to have an automated way to produce them, should an update occur, and this is what the @code{(gnu packages make-bootstrap)} module provides."
 msgstr "Debido a que la cadena de herramientas final no depende de los binarios de lanzamiento, estos rara vez necesitan ser actualizados. No obstante, es útil tener una forma automatizada de producirlos en caso de que se dé una actualización, y esto es lo que proporciona el módulo @code{(gnu packages make-bootstrap)}."
 
 #. type: Plain text
-#: doc/guix.texi:28454
+#: doc/guix.texi:32722
 msgid "The following command builds the tarballs containing the bootstrap binaries (Binutils, GCC, glibc, for the traditional bootstrap and linux-libre-headers, bootstrap-mescc-tools, bootstrap-mes for the Reduced Binary Seed bootstrap, and Guile, and a tarball containing a mixture of Coreutils and other basic command-line tools):"
 msgstr "La siguiente orden construye los archivadores que contienen los binarios de lanzamiento (Binutils, GCC, glibc para el lanzamiento inicial tradicional y linux-libre-headers, bootstrap-mescc-tools y bootstrap-mes para el lanzamiento inicial basado en la semilla binaria reducida, y Guile y un archivador que contiene una mezcla de Coreutils y otras herramientas básicas de línea de órdenes):"
 
 #. type: example
-#: doc/guix.texi:28457
+#: doc/guix.texi:32725
 #, no-wrap
 msgid "guix build bootstrap-tarballs\n"
 msgstr "guix build bootstrap-tarballs\n"
 
 #. type: Plain text
-#: doc/guix.texi:28462
+#: doc/guix.texi:32730
 msgid "The generated tarballs are those that should be referred to in the @code{(gnu packages bootstrap)} module mentioned at the beginning of this section."
 msgstr "Los archivadores ``tar'' generados son aquellos a cuya referencia debe encontrarse en el módulo @code{(gnu packages bootstrap)} mencionado al inicio de esta sección."
 
 #. type: Plain text
-#: doc/guix.texi:28468
+#: doc/guix.texi:32736
 msgid "Still here? Then perhaps by now you've started to wonder: when do we reach a fixed point? That is an interesting question! The answer is unknown, but if you would like to investigate further (and have significant computational and storage resources to do so), then let us know."
 msgstr "¿Todavía aquí? Entonces quizá se habrá empezado a preguntar: ¿cuándo llegamos a un punto fijo? ¡Esa es una pregunta interesante! La respuesta es desconocida, pero si pudiese investigar más a fondo (y tiene unos recursos computacionales y de almacenamiento significativos para hacerlo) háganoslo saber."
 
 #. type: unnumberedsec
-#: doc/guix.texi:28469
+#: doc/guix.texi:32737
 #, no-wrap
 msgid "Reducing the Set of Bootstrap Binaries"
 msgstr "Reducción del conjunto de binarios de lanzamiento"
 
 #. type: Plain text
-#: doc/guix.texi:28477
+#: doc/guix.texi:32745
 msgid "Our traditional bootstrap includes GCC, GNU Libc, Guile, etc.  That's a lot of binary code! Why is that a problem? It's a problem because these big chunks of binary code are practically non-auditable, which makes it hard to establish what source code produced them.  Every unauditable binary also leaves us vulnerable to compiler backdoors as described by Ken Thompson in the 1984 paper @emph{Reflections on Trusting Trust}."
 msgstr "Nuestros binarios de lanzamiento actualmente incluyen GCC, GNU Libc, Guile, etc. ¡Eso es mucho código binario! ¿Por qué es eso un problema? Es un problema porque esos grandes fragmentos de código binario no son auditables en la práctica, lo que hace difícil establecer qué código fuente los produjo. Cada binario no-auditable también nos deja vulnerables a puertas traseras en los compiladores, como describió Ken Thompson en su publicación de 1984 @emph{Reflections on Trusting Trust}."
 
 #. type: Plain text
-#: doc/guix.texi:28483
+#: doc/guix.texi:32751
 msgid "This is mitigated by the fact that our bootstrap binaries were generated from an earlier Guix revision.  Nevertheless it lacks the level of transparency that we get in the rest of the package dependency graph, where Guix always gives us a source-to-binary mapping.  Thus, our goal is to reduce the set of bootstrap binaries to the bare minimum."
 msgstr "Esto se mitiga por el hecho de que nuestros binarios de lanzamiento fueron generados por una revisión anterior de Guix. No obstante, esto no posee el nivel de transparencia que obtenemos en el resto del grado de dependencias de los paquetes, donde Guix siempre nos da una asociación de fuente-a-binario. Por lo tanto, nuestro objetivo es reducir el conjunto de binarios de lanzamiento al mínimo posible."
 
 #. type: Plain text
-#: doc/guix.texi:28489
+#: doc/guix.texi:32757
 msgid "The @uref{https://bootstrappable.org, Bootstrappable.org web site} lists on-going projects to do that.  One of these is about replacing the bootstrap GCC with a sequence of assemblers, interpreters, and compilers of increasing complexity, which could be built from source starting from a simple and auditable assembler."
 msgstr "El @uref{https://bootstrappable.org, sitio web Bootstrappable.org} enumera proyectos en activo realizándolo. Uno de ellos está a punto de sustituir el GCC de lanzamiento con una secuencia de ensambladores, interpretes y compiladores de complejidad incremental, que pueden ser construidos desde las fuentes empezando con un código ensamblador simple y auditable."
 
 # FUZZY
 #. type: Plain text
-#: doc/guix.texi:28498
+#: doc/guix.texi:32766
 msgid "Our first major achievement is the replacement of of GCC, the GNU C Library and Binutils by MesCC-Tools (a simple hex linker and macro assembler) and Mes (@pxref{Top, GNU Mes Reference Manual,, mes, GNU Mes}, a Scheme interpreter and C compiler in Scheme).  Neither MesCC-Tools nor Mes can be fully bootstrapped yet and thus we inject them as binary seeds.  We call this the Reduced Binary Seed bootstrap, as it has halved the size of our bootstrap binaries! Also, it has eliminated the C compiler binary; i686-linux and x86_64-linux Guix packages are now bootstrapped without any binary C compiler."
 msgstr "Nuestro primer logro de importancia es la sustitución de GCC, la biblioteca de C de GNU y Binutils por MesCC-Tools (un enlazador hexadecimal y un macro-ensamblador) y Mes (@pxref{Top, GNU Mes Reference Manual,, mes, GNU Mes}, un intérprete de Scheme y compilador de C en Scheme). Ni MesCC-Tools ni Mes pueden lanzarse inicialmente a sí mismas completamente todavía y por lo tanto se inyectan como semillas binarias. A esto es lo que llamamos la semilla binaria reducida del lanzamiento inicial, ¡ya que ha reducido a la mitad el tamaño de nuestros binarios del lanzamiento inicial! También ha eliminado el binario del compilador de C; los paquetes de Guix en i686-linux y x86_64-linux se generan a partir de un lanzamiento inicial sin ningún binario que sea un compilador de C."
 
 #. type: Plain text
-#: doc/guix.texi:28501
+#: doc/guix.texi:32769
 msgid "Work is ongoing to make MesCC-Tools and Mes fully bootstrappable and we are also looking at any other bootstrap binaries.  Your help is welcome!"
 msgstr "Se está trabajando en hacer que MesCC-Tools y Mes puedan lanzarse inicialmente de manera completa, y también se buscan otros binarios para el lanzamiento inicial. ¡Su ayuda es bienvenida!"
 
 # FUZZY
 #. type: chapter
-#: doc/guix.texi:28503
+#: doc/guix.texi:32771
 #, no-wrap
 msgid "Porting to a New Platform"
 msgstr "Transportar a una nueva plataforma"
 
 # FUZZY
 #. type: Plain text
-#: doc/guix.texi:28512
+#: doc/guix.texi:32780
 msgid "As discussed above, the GNU distribution is self-contained, and self-containment is achieved by relying on pre-built ``bootstrap binaries'' (@pxref{Bootstrapping}).  These binaries are specific to an operating system kernel, CPU architecture, and application binary interface (ABI).  Thus, to port the distribution to a platform that is not yet supported, one must build those bootstrap binaries, and update the @code{(gnu packages bootstrap)} module to use them on that platform."
 msgstr "Como se explicó previamente, la distribución GNU es autocontenida, lo cual se consigue dependiendo de unos ``binarios del lanzamiento inicial'' preconstruidos (@pxref{Bootstrapping}). Estos binarios son específicos para un núcleo del sistema operativo, arquitectura de la CPU e interfaz binaria de aplicaciones (ABI). Por tanto, para transportar la distribución a una nueva plataforma que no está soportada todavía, se deben construir estos binarios del lanzamiento inicial, y actualizar el módulo @code{(gnu packages bootstrap)} para usarlos en dicha plataforma."
 
 #. type: Plain text
-#: doc/guix.texi:28517
+#: doc/guix.texi:32785
 msgid "Fortunately, Guix can @emph{cross compile} those bootstrap binaries.  When everything goes well, and assuming the GNU tool chain supports the target platform, this can be as simple as running a command like this one:"
 msgstr "Por suerte, Guix puede @emph{compilar de forma cruzada} esos binarios del lanzamiento inicial. Cuando todo va bien, y asumiendo que la cadena de herramientas GNU soporta para la plataforma deseada, esto puede ser tan simple como ejecutar una orden así:"
 
 #. type: example
-#: doc/guix.texi:28520
+#: doc/guix.texi:32788
 #, no-wrap
 msgid "guix build --target=armv5tel-linux-gnueabi bootstrap-tarballs\n"
 msgstr "guix build --target=armv5tel-linux-gnueabi bootstrap-tarballs\n"
 
 #. type: Plain text
-#: doc/guix.texi:28527
+#: doc/guix.texi:32795
 msgid "For this to work, the @code{glibc-dynamic-linker} procedure in @code{(gnu packages bootstrap)} must be augmented to return the right file name for libc's dynamic linker on that platform; likewise, @code{system->linux-architecture} in @code{(gnu packages linux)} must be taught about the new platform."
-msgstr "Para que esto funcione, el procedimiento @code{glibc-dynamic-linker} en @code{(gnu packages bootstrap)} debe aumentarse para devolver el nombre de fichero correcto para el enlazador dinámico de libc en dicha plataforma; de igual manera, @code{system->linux-architecture} en @code{(gnu packages linux)} debe modificarse para la nueva plataforma."
+msgstr "Para que esto funcione, el procedimiento @code{glibc-dynamic-linker} en @code{(gnu packages bootstrap)} debe aumentarse para devolver el nombre de archivo correcto para el enlazador dinámico de libc en dicha plataforma; de igual manera, @code{system->linux-architecture} en @code{(gnu packages linux)} debe modificarse para la nueva plataforma."
 
 #. type: Plain text
-#: doc/guix.texi:28536
+#: doc/guix.texi:32804
 msgid "Once these are built, the @code{(gnu packages bootstrap)} module needs to be updated to refer to these binaries on the target platform.  That is, the hashes and URLs of the bootstrap tarballs for the new platform must be added alongside those of the currently supported platforms.  The bootstrap Guile tarball is treated specially: it is expected to be available locally, and @file{gnu/local.mk} has rules to download it for the supported architectures; a rule for the new platform must be added as well."
 msgstr "Una vez construidos, el módulo @code{(gnu packages bootstrap)} debe ser actualizado para hacer referencia a estos binarios en la plataforma deseada. Esto es, los hash y las URL de los archivadores del lanzamiento inicial de la nueva plataforma deben añadirse junto a aquellos de las plataformas disponibles actualmente. El archivador tar del Guile usado para el lanzamiento inicial se trata de forma especial: se espera que esté disponible localmente, y @file{gnu/local.mk} tiene reglas que lo descargan para las arquitecturas disponibles; se debe añadir una regla para la nueva plataforma también."
 
 #. type: Plain text
-#: doc/guix.texi:28545
-msgid "In practice, there may be some complications.  First, it may be that the extended GNU triplet that specifies an ABI (like the @code{eabi} suffix above) is not recognized by all the GNU tools.  Typically, glibc recognizes some of these, whereas GCC uses an extra @code{--with-abi} configure flag (see @code{gcc.scm} for examples of how to handle this).  Second, some of the required packages could fail to build for that platform.  Lastly, the generated binaries could be broken for some reason."
-msgstr "En la práctica puede haber algunas complicaciones. Primero, puede ser que la tripleta extendida GNU que especifica un ABI (como el sufijo @code{eabi} previamente) no es reconocida por todas las herramientas GNU. Típicamente, glibc reconoce algunas de ellas, mientras que GCC usa una opción de configuración extra @code{--with-abi} (vea @code{gcc.scm} para ejemplos de como manejar este caso). En segundo lugar, algunos de los paquetes necesarios pueden fallar en su construcción para dicha plataforma. Por último, los binarios generados pueden estar defectuosos por alguna razón."
+#: doc/guix.texi:32813
+msgid "In practice, there may be some complications.  First, it may be that the extended GNU triplet that specifies an ABI (like the @code{eabi} suffix above) is not recognized by all the GNU tools.  Typically, glibc recognizes some of these, whereas GCC uses an extra @option{--with-abi} configure flag (see @code{gcc.scm} for examples of how to handle this).  Second, some of the required packages could fail to build for that platform.  Lastly, the generated binaries could be broken for some reason."
+msgstr "En la práctica puede haber algunas complicaciones. Primero, puede ser que la tripleta extendida GNU que especifica un ABI (como el sufijo @code{eabi} previamente) no es reconocida por todas las herramientas GNU. Típicamente, glibc reconoce algunas de ellas, mientras que GCC usa una opción de configuración extra @option{--with-abi} (vea @code{gcc.scm} para ejemplos de como manejar este caso). En segundo lugar, algunos de los paquetes necesarios pueden fallar en su construcción para dicha plataforma. Por último, los binarios generados pueden estar defectuosos por alguna razón."
 
 #. type: include
-#: doc/guix.texi:28547
+#: doc/guix.texi:32815
 #, no-wrap
 msgid "contributing.texi"
 msgstr "contributing.es.texi"
 
 #. type: Plain text
-#: doc/guix.texi:28560
-msgid "Guix is based on the @uref{https://nixos.org/nix/, Nix package manager}, which was designed and implemented by Eelco Dolstra, with contributions from other people (see the @file{nix/AUTHORS} file in Guix.)  Nix pioneered functional package management, and promoted unprecedented features, such as transactional package upgrades and rollbacks, per-user profiles, and referentially transparent build processes.  Without this work, Guix would not exist."
-msgstr "Guix está basado en el @uref{https://nixops.org/nix, gestor de paquetes Nix}, que fue diseñado e implementado por Eelco Dolstra, con contribuciones de otra gente (véase el fichero @file{nix/AUTHORS} en Guix). Nix fue pionero en la gestión de paquetes funcional, y promovió características sin precedentes, como las actualizaciones de paquetes transaccionales y vuelta atrás, perfiles por usuaria y un proceso de compilación referencialmente transparente. Sin este trabajo, Guix no existiría."
+#: doc/guix.texi:32828
+msgid "Guix is based on the @uref{https://nixos.org/nix/, Nix package manager}, which was designed and implemented by Eelco Dolstra, with contributions from other people (see the @file{nix/AUTHORS} file in Guix).  Nix pioneered functional package management, and promoted unprecedented features, such as transactional package upgrades and rollbacks, per-user profiles, and referentially transparent build processes.  Without this work, Guix would not exist."
+msgstr "Guix está basado en el @uref{https://nixos.org/nix/, gestor de paquetes Nix}, que fue diseñado e implementado por Eelco Dolstra, con contribuciones de otra gente (véase el archivo @file{nix/AUTHORS} en Guix). Nix fue pionero en la gestión de paquetes funcional, y promovió características sin precedentes, como las actualizaciones y reversiones de paquetes transaccionales, perfiles por usuaria y un proceso de compilación referencialmente transparente. Sin este trabajo, Guix no existiría."
 
 #. type: Plain text
-#: doc/guix.texi:28563
+#: doc/guix.texi:32831
 msgid "The Nix-based software distributions, Nixpkgs and NixOS, have also been an inspiration for Guix."
 msgstr "Las distribuciones de software basadas en Nix, Nixpkgs y NixOS, también han sido una inspiración para Guix."
 
 # TODO: (MAAV) ¿Fine people?
 #. type: Plain text
-#: doc/guix.texi:28569
+#: doc/guix.texi:32837
 msgid "GNU@tie{}Guix itself is a collective work with contributions from a number of people.  See the @file{AUTHORS} file in Guix for more information on these fine people.  The @file{THANKS} file lists people who have helped by reporting bugs, taking care of the infrastructure, providing artwork and themes, making suggestions, and more---thank you!"
-msgstr "GNU@tie{}Guix en sí es un trabajo colectivo con contribuciones de un número de gente. Mire el fichero @file{AUTHORS} en Guix para más información sobre esa gente maja. El fichero @file{THANKS} enumera personas que han ayudado informando de errores, se han encargado de infraestructura, han proporcionando arte y temas, han realizado sugerencias, y más---¡gracias!"
+msgstr "GNU@tie{}Guix en sí es un trabajo colectivo con contribuciones de un número de gente. Mire el archivo @file{AUTHORS} en Guix para más información sobre esa gente maja. El archivo @file{THANKS} enumera personas que han ayudado informando de errores, se han encargado de infraestructura, han proporcionando arte y temas, han realizado sugerencias, y más---¡gracias!"
 
 #. type: cindex
-#: doc/guix.texi:28574
+#: doc/guix.texi:32842
 #, no-wrap
 msgid "license, GNU Free Documentation License"
 msgstr "licencia, GNU Free Documentation License"
 
 #. type: include
-#: doc/guix.texi:28575
+#: doc/guix.texi:32843
 #, no-wrap
 msgid "fdl-1.3.texi"
 msgstr "fdl-1.3.texi"
 
+#~ msgid "Packages can be manipulated in arbitrary ways.  An example of a useful transformation is @dfn{input rewriting}, whereby the dependency tree of a package is rewritten by replacing specific inputs by others:"
+#~ msgstr "Los paquetes se pueden manipular de forma arbitraria. Un ejemplo de transformación útil es la @dfn{reescritura de entradas}, donde el árbol de dependencias de un paquete se reescribe reemplazando entradas específicas por otras:"
+
+#~ msgid "guix-daemon --substitute-urls=http://example.org:8080\n"
+#~ msgstr "guix-daemon --substitute-urls=http://example.org:8080\n"
+
+#~ msgid "@var{port} (default: @code{5432})"
+#~ msgstr "@code{port} (predeterminado: @code{5432})"
+
+#~ msgid "@var{locale} (default: @code{\"en_US.utf8\"})"
+#~ msgstr "@code{locale} (predeterminado: @code{\"en_US.utf8\"})"
+
+#~ msgid "{Scheme Procedure} postgresql-service [#:postgresql postgresql] @"
+#~ msgstr "{Procedimiento Scheme} postgresql-service [#:postgresql postgresql] @"
+
+#~ msgid "[#:config-file] [#:data-directory ``/var/lib/postgresql/data''] @ [#:port 5432] [#:locale ``en_US.utf8''] [#:extension-packages '()] Return a service that runs @var{postgresql}, the PostgreSQL database server."
+#~ msgstr ""
+#~ "[#:config-file] [#:data-directory ``/var/lib/postgresql/data''] @ [#:port 5432] [#:locale ``en_US.utf8''] [#:extension-packages '()]\n"
+#~ "Devuelve un servicio que ejecuta @var{postgresql}, el servidor de bases de datos PostgreSQL."
+
+#~ msgid "The PostgreSQL daemon loads its runtime configuration from @var{config-file}, creates a database cluster with @var{locale} as the default locale, stored in @var{data-directory}.  It then listens on @var{port}."
+#~ msgstr "El daemon de PostgreSQL carga su configuración de tiempo de ejecución desde @var{config-file}, crea un cluster de bases de datos con @var{locale} como la localización predeterminada, almacenado en @var{data-directory}. Una vez hecho esto, escucha en @var{port}."
+
+#~ msgid "This section summarizes all the options available in @code{origin} declarations (@pxref{Defining Packages})."
+#~ msgstr "Esta sección resume todas las opciones disponibles en declaraciones @code{origin} (@pxref{Defining Packages})."
+
+#~ msgid "A procedure that handles the URI."
+#~ msgstr "Un procedimiento que maneja el URI."
+
+# FUZZY
+# MAAV: No tengo mucha idea de cómo encajarlo...
+#~ msgid "Examples include:"
+#~ msgstr "Algunos ejemplos son:"
+
+#~ msgid "@var{url-fetch} from @code{(guix download)}"
+#~ msgstr "@var{url-fetch} de @code{(guix download)}"
+
+#~ msgid "download a file from the HTTP, HTTPS, or FTP URL specified in the @code{uri} field;"
+#~ msgstr "descarga un archivo de la URL HTTP, HTTPS o FTP especificada en el campo @code{uri};"
+
+#~ msgid "@var{git-fetch} from @code{(guix git-download)}"
+#~ msgstr "@var{git-fetch} de @code{(guix git-download)}"
+
+# FUZZY
+#~ msgid "clone the Git version control repository, and check out the revision specified in the @code{uri} field as a @code{git-reference} object; a @code{git-reference} looks like this:"
+#~ msgstr "clona el repositorio de control de versiones Git, y prepara la revisión especificada en el campo @code{uri} como un objeto @code{git-reference}; una referencia @code{git-reference} tiene esta forma:"
+
+#~ msgid "The list of phases used for a particular package can be changed with the @code{#:phases} parameter.  For instance, passing:"
+#~ msgstr "La lista de fases usadas para un paquete particular se puede cambiar con el parámetro @code{#:phases}. Por ejemplo, pasar:"
+
+#~ msgid "#:phases (modify-phases %standard-phases (delete 'configure))\n"
+#~ msgstr "#:phases (modify-phases %standard-phases (delete 'configure))\n"
+
+#~ msgid "means that all the phases described above will be used, except the @code{configure} phase.  @xref{Build Utilities}, for more info on @code{modify-phases} and build phases in general."
+#~ msgstr "significa que todas las fases descritas anteriormente serán usadas, excepto la fase @code{configure}. @xref{Build Utilities}, para más información sobre @code{modify-phases} y las fases de construcción en general."
+
+# TODO: Enviar parche!
+#~ msgid "An identifier for ether configuration fields to refer to this key. IDs must be unique and must not be empty."
+#~ msgstr "Un identificador para que otros campos de configuración hagan referencia a esta clave. Los identificadores deben ser únicos y no deben estar vacíos."
+
+# TODO: Probablemente un error, comprobar. Typo
+#~ msgid "@code{extra-options} (default: @code{'()\"})"
+#~ msgstr "@code{extra-options} (predeterminadas: @code{'()\"})"
+
+#~ msgid "Virtualization services"
+#~ msgstr "Servicios de virtualización"
+
+#~ msgid "Note that, currently, the differing build results are not kept around, so you will have to manually investigate in case of an error---e.g., by stashing one of the build results with @code{guix archive --export} (@pxref{Invoking guix archive}), then rebuilding, and finally comparing the two results."
+#~ msgstr "Fíjese que, actualmente, los resultados de las construcciones discordantes no se mantienen, por lo que debe que investigar manualmente en caso de un error---por ejemplo, mediante la extracción de uno de los resultados con @code{guix archive --export} (@pxref{Invoking guix archive}), seguida de una reconstrucción, y finalmente la comparación de los dos resultados."
+
+#~ msgid "--file-system-type=@var{type}"
+#~ msgstr "--file-system-type=@var{tipo}"
+
+#~ msgid "How do you ensure that you obtained a genuine copy of the repository? Guix itself provides a tool to @dfn{authenticate} your checkout, but you must first make sure this tool is genuine in order to ``bootstrap'' the trust chain.  To do that, run:"
+#~ msgstr "¿Cómo puede asegurarse de haber obtenido una copia genuina del repositorio? Guix proporciona una herramienta @dfn{identificar} su copia, pero primero debe comprobar que esta herramienta es genuina para iniciar la cadena de confianza. Para hacerlo, ejecute:"
+
+#~ msgid "git verify-commit `git log --format=%H build-aux/git-authenticate.scm`\n"
+#~ msgstr "git verify-commit `git log --format=%H build-aux/git-authenticate.scm`\n"
+
+#~ msgid "The output must look something like:"
+#~ msgstr "La salida debe ser parecida a esta:"
+
+#~ msgid ""
+#~ "gpg: Signature made Fri 27 Dec 2019 01:27:41 PM CET\n"
+#~ "gpg:                using RSA key 3CE464558A84FDC69DB40CFB090B11993D9AEBB5\n"
+#~ "@dots{}\n"
+#~ "gpg: Signature made Fri 27 Dec 2019 01:25:22 PM CET\n"
+#~ "gpg:                using RSA key 3CE464558A84FDC69DB40CFB090B11993D9AEBB5\n"
+#~ "@dots{}\n"
+#~ msgstr ""
+#~ "gpg: Firmado el vie 27 dic 2019 01:27:41 CET\n"
+#~ "gpg:                usando RSA clave 3CE464558A84FDC69DB40CFB090B11993D9AEBB5\n"
+#~ "@dots{}\n"
+#~ "gpg: Firmado el vie 27 dic 2019 01:25:22 CET\n"
+#~ "gpg:                usando RSA clave 3CE464558A84FDC69DB40CFB090B11993D9AEBB5\n"
+#~ "@dots{}\n"
+
+#~ msgid "... meaning that changes to this file are all signed with key @code{3CE464558A84FDC69DB40CFB090B11993D9AEBB5} (you may need to fetch this key from a key server, if you have not done it yet)."
+#~ msgstr "... que significa que los cambios en este archivo están todos firmados con la clave @code{3CE464558A84FDC69DB40CFB090B11993D9AEBB5} (puede tener que obtener la clave de un servidor de claves, si no lo ha hecho todavía)."
+
+# FUZZY
+# MAAV: Creo que es muy local...
+#~ msgid "Fiddling with Guix interactively."
+#~ msgstr "Enredar con Guix interactivamente."
+
+#~ msgid "@url{https://zlib.net, zlib};"
+#~ msgstr "@url{https://zlib.net, zlib};"
+
+#~ msgid "Produce verbose output, writing build logs to the standard error output."
+#~ msgstr "Produce salida prolija, escribiendo los logs de construcción por la salida de error estándar."
+
+#~ msgid "A bytevector containing the SHA-256 hash of the source.  Typically the @code{base32} form is used here to generate the bytevector from a base-32 string."
+#~ msgstr "Un vector de bytes que contiene el hash SHA-256 de las fuentes. Típicamente la forma @code{base32} se usa aquí para generar el vector de bytes de una cadena en base-32."
+
+#~ msgid "(copy build system)"
+#~ msgstr "(sistema de construcción mediante copia)"
+
+#~ msgid "@code{kernel-arguments} (default: @code{'(\"quiet\")})"
+#~ msgstr "@code{kernel-arguments} (predeterminados: @code{'(\"quiet\")})"
+
+#~ msgid "Here we show how the default @var{udev-service} can be extended with it."
+#~ msgstr "Aquí se muestra cómo se puede extender el servicio @var{udev-service} predeterminado se puede extender con ella."
+
+#~ msgid ""
+#~ "(operating-system\n"
+#~ " ;; @dots{}\n"
+#~ " (services\n"
+#~ " (modify-services %desktop-services\n"
+#~ "   (udev-service-type config =>\n"
+#~ "     (udev-configuration (inherit config)\n"
+#~ "      (rules (append (udev-configuration-rules config)\n"
+#~ "                     (list %example-udev-rule))))))))\n"
+#~ msgstr ""
+#~ "(operating-system\n"
+#~ " ;; @dots{}\n"
+#~ " (services\n"
+#~ " (modify-services %desktop-services\n"
+#~ "   (udev-service-type config =>\n"
+#~ "     (udev-configuration (inherit config)\n"
+#~ "      (rules (append (udev-configuration-rules config)\n"
+#~ "                     (list %regla-ejemplo-udev))))))))\n"
+
+#~ msgid ""
+#~ "  (groups (cons (user-group (system? #t) (name \"adbusers\"))\n"
+#~ "                %base-groups))\n"
+#~ "\n"
+#~ msgstr ""
+#~ "  (groups (cons (user-group (system? #t) (name \"adbusers\"))\n"
+#~ "                %base-groups))\n"
+#~ "\n"
+
+#~ msgid ""
+#~ "  ;; @dots{}\n"
+#~ "\n"
+#~ msgstr ""
+#~ "  ;; @dots{}\n"
+#~ "\n"
+
+#~ msgid ""
+#~ "  (services\n"
+#~ "   (modify-services %desktop-services\n"
+#~ "     (udev-service-type\n"
+#~ "      config =>\n"
+#~ "      (udev-configuration (inherit config)\n"
+#~ "                          (rules (cons android-udev-rules\n"
+#~ "                                       (udev-configuration-rules config))))))))\n"
+#~ msgstr ""
+#~ "  (services\n"
+#~ "   (modify-services %desktop-services\n"
+#~ "     (udev-service-type\n"
+#~ "      config =>\n"
+#~ "      (udev-configuration (inherit config)\n"
+#~ "                          (rules (cons android-udev-rules\n"
+#~ "                                       (udev-configuration-rules config))))))))\n"
+
+#~ msgid "@code{servers} (default: @var{%openntp-servers})"
+#~ msgstr "@code{servers} (predeterminadas: @var{%openntp-servers})"
+
+# FUZZY
+#~ msgid "Mandatory email used for registration, recovery contact, and important account notifications."
+#~ msgstr "Correo electrónico obligatorio usado para el registro, contacto de recuperación y notificaciones importantes de la cuenta."
+
+#~ msgid "The service type for the TLP tool.  Its value should be a valid TLP configuration (see below).  To use the default settings, simply write:"
+#~ msgstr "El tipo de servicio para la herramienta TLP. Su valor debe ser una configuración de TLP válida (véase a continuación). Para usar la configuración predeterminada, simplemente escriba:"
+
+#~ msgid "(service tlp-service-type)\n"
+#~ msgstr "(service tlp-service-type)\n"
+
+#~ msgid "By default TLP does not need much configuration but most TLP parameters can be tweaked using @code{tlp-configuration}."
+#~ msgstr "De manera predeterminada TLP no necesita mucha configuración, pero los parámetros de TLP se pueden ajustar mediante el uso de @code{tlp-configuration}."
+
+#~ msgid "@code{user-path} (default: @var{#f})"
+#~ msgstr "@code{user-path} (predeterminado: @var{#f})"
+
+#~ msgid "Data type representing the configuration for @code{git-http-service}."
+#~ msgstr "Tipo de datos que representa la configuración para @code{git-http-service}."
+
+#~ msgid "linux"
+#~ msgstr "linux"
+
+#~ msgid "For @code{i686-linux} and @code{x86_64-linux} the Guix bootstrap process is more elaborate, @pxref{Reduced Binary Seed Bootstrap}."
+#~ msgstr "En @code{i686-linux} y @code{x86_64-linux} el proceso del lanzamiento inicial de Guix es más elaborado, @pxref{Reduced Binary Seed Bootstrap}."
+
+#~ msgid "The Reduced Binary Seed bootstrap removes the most critical tools---from a trust perspective---from the bootstrap binaries: GCC, Binutils and the GNU C Library are replaced by: @code{bootstrap-mescc-tools} (a tiny assembler and linker) and @code{bootstrap-mes} (a small Scheme Interpreter and a C compiler written in Scheme and the Mes C Library, built for TinyCC and for GCC).  Using these new binary seeds and a new set of packages@footnote{nyacc-boot, mes-boot, tcc-boot0, tcc-boot, make-mesboot0, diffutils-mesboot, binutils-mesboot0, gcc-core-mesboot, mesboot-headers, glibc-mesboot0, gcc-mesboot0, binutils-mesboot, make-mesboot, gcc-mesboot1, gcc-mesboot1-wrapper, glibc-headers-mesboot, glibc-mesboot, gcc-mesboot, and gcc-mesboot-wrapper.  } the ``missing'' Binutils, GCC, and the GNU C Library are built from source.  From here on the more traditional bootstrap process resumes.  This approach has reduced the bootstrap binaries in size to about 130MB.  Work is ongoing to reduce this further.  If you are interested, join us on @code{#bootstrappable} on the Freenode IRC network."
+#~ msgstr "El lanzamiento inicial a partir de la semilla binaria reducida elimina las herramientas más críticas---desde la perspectiva de la confianza---de los binarios necesarios: GCC, Binutils y la biblioteca de C de GNU se sustituyen por: @code{bootstrap-mescc-tools} (un pequeño ensamblador y enlazador) y @code{bootstrap-mes} (un pequeño intérprete de Scheme y un compilador de C escrito en Scheme y la biblioteca de C de Mes, compilada para TinyCC y para GCC). Mediante el uso de estas nuevas semillas binarias y un nuevo conjunto de paquetes@footnote{nyacc-boot, mes-boot, tcc-boot0, tcc-boot, make-mesboot0, diffutils-mesboot, binutils-mesboot0, gcc-core-mesboot, mesboot-headers, glibc-mesboot0, gcc-mesboot0, binutils-mesboot, make-mesboot, gcc-mesboot1, gcc-mesboot1-wrapper, glibc-headers-mesboot, glibc-mesboot, gcc-mesboot y gcc-mesboot-wrapper.  } las herramientas que ``faltan'' (Binutils, GCC y la biblioteca de C de GNU) se construyen desde sus fuentes. Desde ese punto en adelante se continua el proceso de lanzamiento inicial tradicional. Esta aproximación ha reducido el tamaño de los binarios necesarios para el lanzamiento inicial cerca de 130MB. Se está trabajando en reducir más aún este tamaño. Si esto le interesa, puede únase en el canal @code{#bootstrappable} de la red IRC de Freenode."
+
 #~ msgid "After installing fonts you may have to refresh the font cache to use them in applications.  The same applies when applications installed via Guix do not seem to find fonts.  To force rebuilding of the font cache run @code{fc-cache -rv}.  The @code{fc-cache} command is provided by the @code{fontconfig} package."
 #~ msgstr "Después de instalar tipografías puede tener que refrescar la caché de tipografías para usarlas en las aplicaciones. Lo mismo aplica cuando las aplicaciones instaladas vía Guix no parecen encontrar tipografías. Para forzar la reconstrucción de la caché de tipografías ejecute @code{fc-cache -rv}. La orden @code{fc-cache} es proporcionada por el paquete @code{fontconfig}."
 
 #~ msgid "When you install Emacs packages with Guix, the elisp files may be placed either in @file{$HOME/.guix-profile/share/emacs/site-lisp/} or in sub-directories of @file{$HOME/.guix-profile/share/emacs/site-lisp/guix.d/}.  The latter directory exists because potentially there may exist thousands of Emacs packages and storing all their files in a single directory may not be reliable (because of name conflicts).  So we think using a separate directory for each package is a good idea.  It is very similar to how the Emacs package system organizes the file structure (@pxref{Package Files,,, emacs, The GNU Emacs Manual})."
-#~ msgstr "Cuando instala paquetes Emacs con Guix, los ficheros elisp pueden estar tanto en @file{$HOME/.guix-profile/share/emacs/site-lisp/} o en subdirectorios de @file{$HOME/.guix-profile/share/emacs/site-lisp/guix.d/}. El último directorio existe porque potencialmente pueden existir miles de paquetes Emacs, y almacenar todos sus ficheros en un directorio único puede no ser confiable (por conflictos de nombres). Por lo que pensamos que usar un directorio separado por cada paquete es una buena idea. Es muy similar a cómo el sistema de paquetes de Emacs organiza la estructura de ficheros (@pxref{Package Files,,, emacs, The GNU Emacs Manual})."
+#~ msgstr "Cuando instala paquetes Emacs con Guix, los archivos elisp pueden estar tanto en @file{$HOME/.guix-profile/share/emacs/site-lisp/} o en subdirectorios de @file{$HOME/.guix-profile/share/emacs/site-lisp/guix.d/}. El último directorio existe porque potencialmente pueden existir miles de paquetes Emacs, y almacenar todos sus archivos en un directorio único puede no ser confiable (por conflictos de nombres). Por lo que pensamos que usar un directorio separado por cada paquete es una buena idea. Es muy similar a cómo el sistema de paquetes de Emacs organiza la estructura de archivos (@pxref{Package Files,,, emacs, The GNU Emacs Manual})."
 
 #~ msgid "For containers, share the file system @var{source} from the host system as the writable file system @var{target} within the container.  If @var{target} is not specified, @var{source} is used as the target mount point in the container."
-#~ msgstr "Para contenedores, comparte el sistema de ficheros @var{fuente} del sistema anfitrión como el sistema de ficheros @var{destino} con permisos de escritura dentro del contenedor. Si no se especifica @var{destino}, @var{fuente} se usa como punto de montaje en el contenedor."
+#~ msgstr "Para contenedores, comparte el sistema de archivos @var{fuente} del sistema anfitrión como el sistema de archivos @var{destino} con permisos de escritura dentro del contenedor. Si no se especifica @var{destino}, @var{fuente} se usa como punto de montaje en el contenedor."
 
 #~ msgid "The example below spawns a Guile REPL in a container in which the user's home directory is accessible for both reading and writing via the @file{/exchange} directory:"
 #~ msgstr "El siguiente ejemplo lanza un entorno interactivo Guile en un contenedor en el que el directorio principal de la usuaria está disponible para tanto lectura como escritura via el directorio @file{/intercambio}:"
@@ -54154,18 +62071,7 @@ msgstr "fdl-1.3.texi"
 #~ msgstr "guix environment --container --share=$HOME=/intercambio --ad-hoc guile -- guile\n"
 
 #~ msgid "The example below defines an operating system that provides log rotation with the default settings, for commonly encountered log files."
-#~ msgstr "El siguiente ejemplo define un sistema operativo que proporciona rotación de registros con la configuración predeterminada, para los ficheros de registro encontrados habitualmente."
-
-#~ msgid ""
-#~ "(operating-system\n"
-#~ "  ;; @dots{}\n"
-#~ "  (services (cons (service rottlog-service-type)\n"
-#~ "                  %base-services)))\n"
-#~ msgstr ""
-#~ "(operating-system\n"
-#~ "  ;; @dots{}\n"
-#~ "  (services (cons (service rottlog-service-type)\n"
-#~ "                  %base-services)))\n"
+#~ msgstr "El siguiente ejemplo define un sistema operativo que proporciona rotación de registros con la configuración predeterminada, para los archivos de registro encontrados habitualmente."
 
 #~ msgid "@code{nfs-version} (default: @code{#f})"
 #~ msgstr "@code{nfs-version} (predeterminado: @code{#f})"
@@ -54211,9 +62117,6 @@ msgstr "fdl-1.3.texi"
 #~ msgid "@code{modules} (default: @var{%default-modules})"
 #~ msgstr "@code{modules} (predeterminados: @var{%default-modules})"
 
-#~ msgid "@code{load-path} (default: @code{'()})"
-#~ msgstr "@code{load-path} (predeterminado: @code{'()})"
-
 #~ msgid "List of host names used as the default NTP servers."
 #~ msgstr "Lista de nombres de máquinas usados como servidores NTP predeterminados."
 
@@ -54239,9 +62142,6 @@ msgstr "fdl-1.3.texi"
 #~ msgid "{Scheme Procedure} gpm-service [#:gpm @var{gpm}] @"
 #~ msgstr "{Procedimiento Scheme} gpm-service [#:gpm @var{gpm}] @"
 
-#~ msgid "{Scheme Procedure} guix-service @var{config}"
-#~ msgstr "{Procedimiento Scheme} guix-service @var{config}"
-
 #~ msgid "@code{title} (default: @code{'device})"
 #~ msgstr "@code{title} (predeterminado: @code{'device})"
 
@@ -54249,7 +62149,7 @@ msgstr "fdl-1.3.texi"
 #~ msgstr "UEFI"
 
 #~ msgid "Build the package or derivation that the code within @var{file} evaluates to."
-#~ msgstr "Instala el paquete o derivación que resulta de evaluar el código en @var{fichero}."
+#~ msgstr "Instala el paquete o derivación que resulta de evaluar el código en @var{archivo}."
 
 #~ msgid "Include the ``local state directory'', @file{/var/guix}, in the resulting pack."
 #~ msgstr "Incluye el ``directorio de estado local'', @file{/var/guix}, en el empaquetado resultante."
@@ -54348,7 +62248,7 @@ msgstr "fdl-1.3.texi"
 #~ msgstr "{Procedimiento Scheme} avahi-service [#:avahi @var{avahi}] @"
 
 #~ msgid "{Scheme Procedure} tor-service [@var{config-file}] [#:tor @var{tor}]"
-#~ msgstr "{Procedimiento Scheme} tor-service [@var{fichero-de-configuración}] [#:tor @var{tor}]"
+#~ msgstr "{Procedimiento Scheme} tor-service [@var{archivo-de-configuración}] [#:tor @var{tor}]"
 
 #~ msgid ""
 #~ "(service mcron-service-type\n"
@@ -54370,7 +62270,7 @@ msgstr "fdl-1.3.texi"
 #~ msgstr "(console-keymap-service \"dvorak\")\n"
 
 #~ msgid "{Scheme Procedure} console-keymap-service @var{files} ..."
-#~ msgstr "{Scheme Procedure} console-keymap-service @var{ficheros} ..."
+#~ msgstr "{Scheme Procedure} console-keymap-service @var{archivos} ..."
 
 #~ msgid "keyboard"
 #~ msgstr "teclado"
@@ -54426,9 +62326,6 @@ msgstr "fdl-1.3.texi"
 #~ msgid "Software for your friendly GNU system."
 #~ msgstr "Software para su amigable sistema GNU."
 
-#~ msgid "The file name of the qcow2 image."
-#~ msgstr "El nombre de fichero de la imagen qcow2."
-
 #~ msgid "/tmp/qemu-image"
 #~ msgstr "/tmp/imagen-qemu"
 
@@ -54470,10 +62367,10 @@ msgstr "fdl-1.3.texi"
 #~ msgstr "Construye @var{derivaciones} (una lista de objetos @code{<derivation>} o rutas de derivaciones) y devuelve el control cuando se termina de construirlas. Devuelve @code{#t} en caso de éxito."
 
 #~ msgid "In its @code{configure} phase, this build system replaces dependencies specified in the @file{Cargo.toml} file with inputs to the Guix package.  The @code{install} phase installs the binaries, and it also installs the source code and @file{Cargo.toml} file."
-#~ msgstr "En su fase @code{configure}, este sistema de construcción substituye las dependencias especificadas en el fichero @file{Cargo.toml} con entradas a los paquetes Guix. La fase @code{install} instala los binarios, y también instala el código fuente y el fichero @file{Cargo.toml}."
+#~ msgstr "En su fase @code{configure}, este sistema de construcción substituye las dependencias especificadas en el archivo @file{Cargo.toml} con entradas a los paquetes Guix. La fase @code{install} instala los binarios, y también instala el código fuente y el archivo @file{Cargo.toml}."
 
 #~ msgid "Similarly, the @file{hydra.gnu.org.pub} file contains the public key of an independent build farm also run by the project, reachable at @indicateurl{https://mirror.hydra.gnu.org}."
-#~ msgstr "De manera similar, el fichero @file{hydra.gnu.org.pub} contiene la clave pública para una granja de construcción independiente que también es parte del proyecto, la cual se puede encontrar en @indicateurl{https://mirror.hydra.gnu.org}."
+#~ msgstr "De manera similar, el archivo @file{hydra.gnu.org.pub} contiene la clave pública para una granja de construcción independiente que también es parte del proyecto, la cual se puede encontrar en @indicateurl{https://mirror.hydra.gnu.org}."
 
 #~ msgid "hydra"
 #~ msgstr "hydra"
@@ -54505,7 +62402,7 @@ msgstr "fdl-1.3.texi"
 #~ msgstr "{Procedimiento Scheme} sddm-service config"
 
 #~ msgid "Information is extracted from the @code{DESCRIPTION} file of a package published on the web interface of the Bioconductor SVN repository."
-#~ msgstr "La información se extrae del fichero @code{DESCRIPTION} del paquete publicado en la interfaz web del repositorio SVN de Bioconductor."
+#~ msgstr "La información se extrae del archivo @code{DESCRIPTION} del paquete publicado en la interfaz web del repositorio SVN de Bioconductor."
 
 #~ msgid "The list of maintainers of the package, as @code{maintainer} objects."
 #~ msgstr "La lista de responsables del paquete, como objetos @code{maintainer}."
diff --git a/po/doc/guix-manual.fr.po b/po/doc/guix-manual.fr.po
index 668c32f0e4..59f0b8617c 100644
--- a/po/doc/guix-manual.fr.po
+++ b/po/doc/guix-manual.fr.po
@@ -1,9 +1,10 @@
 # French translation of guix.
 # Copyright (C) 2013-2018 the authors of Guix (msgids)
 # This file is distributed under the same license as the guix package.
-# Julien Lepiller <julien@lepiller.eu>, 2018.
 # Simon Tournier <zimon.toutoune@gmail.com>, 2018.
 # Ludovic Courtès <ludo@gnu.org>, 2019
+# hubert lombard <contact@hubert-lombard.website>, 2020.
+# Julien Lepiller <julien@lepiller.eu>, 2018, 2020.
 #
 # Afin de n'exclure personne, de même que dans la version originale, on
 # essaye de ne pas écrire ce document au masculin (ou au féminin).  Par
@@ -14,12 +15,33 @@
 # par exemple, dans le « Manuel d'écriture inclusive » à :
 # http://www.univ-tlse3.fr/medias/fichier/manuel-decriture_1482308453426-pdf
 #
+#
+# Attention, ce fichier contient des commandes texinfo qu'il convient de
+# préserver. Par exemple, « run the @command{guix archive} command » doit
+# être traduit par « lancez la commande @command{guix archive} » (pas
+# @commande par exemple).
+#
+# Suivant les commandes texinfo, il faut ou non traduire le contenu.  Par
+# exemple, le contenu de @command ou @code ne doit jamais être traduit (ce sont
+# des commandes ou des extraits de code à préserver), alors que celui de
+# @footnote ou @var par exemple peuvent être traduits.
+#
+# Les @pxref, @xref and @ref sont spéciales : il ne faut pas en traduire le
+# contenu, parce qu'il fait référence à un nœud texinfo.  Pour éviter les
+# problèmes, la génération du manuel traduit s'occupe de repérer les noms
+# de nœuds non-traduits et les traduit directement: il n'y a qu'un seul endroit
+# à modifier pour que tous les liens changent de nom !
+#
+# La seule exception, c'est s'il y a deux arguments ou plus. Dans ce cas, l'un
+# ou plusieurs arguments s'occupent de faire référence au nœud texinfo, tandis
+# que l'un des arguments est le texte du lien, qu'il faut traduire.
+#
 msgid ""
 msgstr ""
-"Project-Id-Version: guix-manual 1.0.1-pre1\n"
-"Report-Msgid-Bugs-To: ludo@gnu.org\n"
-"POT-Creation-Date: 2019-05-10 20:53+0200\n"
-"PO-Revision-Date: 2019-08-31 21:01+0200\n"
+"Project-Id-Version: guix-manual 1.2.0-pre3\n"
+"Report-Msgid-Bugs-To: bug-guix@gnu.org\n"
+"POT-Creation-Date: 2020-11-05 17:27+0100\n"
+"PO-Revision-Date: 2020-11-24 17:52+0100\n"
 "Last-Translator: Julien Lepiller <julien@lepiller.eu>\n"
 "Language-Team: French <traduc@traduc.org>\n"
 "Language: fr\n"
@@ -28,13 +50,13 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
 "X-Bugs: Report translation errors to the Language-Team address.\n"
-"X-Generator: Offlate 0.1\n"
+"X-Generator: Offlate 0.5\n"
 
-#. #-#-#-#-#  contributing.pot (guix 1.0.1-pre1)  #-#-#-#-#
+#. #-#-#-#-#  contributing.pot (guix manual 1.2.0-pre3)  #-#-#-#-#
 #. type: chapter
-#. #-#-#-#-#  guix.pot (guix 1.0.1-pre1)  #-#-#-#-#
+#. #-#-#-#-#  guix.pot (guix manual 1.2.0-pre3)  #-#-#-#-#
 #. type: menuentry
-#: doc/contributing.texi:1 doc/contributing.texi:2 doc/guix.texi:139
+#: doc/contributing.texi:1 doc/contributing.texi:2 doc/guix.texi:162
 #, no-wrap
 msgid "Contributing"
 msgstr "Contribuer"
@@ -58,7 +80,7 @@ msgstr "convention de contribution"
 
 #. type: Plain text
 #: doc/contributing.texi:17
-msgid "We want to provide a warm, friendly, and harassment-free environment, so that anyone can contribute to the best of their abilities.  To this end our project uses a ``Contributor Covenant'', which was adapted from @url{http://contributor-covenant.org/}.  You can find a local version in the @file{CODE-OF-CONDUCT} file in the source tree."
+msgid "We want to provide a warm, friendly, and harassment-free environment, so that anyone can contribute to the best of their abilities.  To this end our project uses a ``Contributor Covenant'', which was adapted from @url{https://contributor-covenant.org/}.  You can find a local version in the @file{CODE-OF-CONDUCT} file in the source tree."
 msgstr "Nous souhaitons fournir un environnement chaleureux, amical et sans harcèlement pour que tout le monde puisse contribuer au mieux de ses capacités.  Pour cela notre projet a une « Convention de contribution » adaptée de @url{http://contributor-covenant.org/}.  Vous pouvez trouver une version locale dans le fichier @file{CODE-OF-CONDUCT} dans l'arborescence des sources."
 
 #. type: Plain text
@@ -69,214 +91,333 @@ msgstr ""
 "leurs correctifs et leurs communications en ligne ; elles et ils peuvent utiliser n'importe quel nom ou pseudonyme de leur choix."
 
 #. type: section
-#: doc/contributing.texi:29 doc/contributing.texi:31 doc/contributing.texi:32
+#: doc/contributing.texi:32 doc/contributing.texi:34 doc/contributing.texi:35
 #, no-wrap
 msgid "Building from Git"
 msgstr "Construire depuis Git"
 
 #. type: menuentry
-#: doc/contributing.texi:29
+#: doc/contributing.texi:32
 msgid "The latest and greatest."
 msgstr "Toujours le plus récent."
 
 #. type: section
-#: doc/contributing.texi:29 doc/contributing.texi:103
-#: doc/contributing.texi:104
+#: doc/contributing.texi:32 doc/contributing.texi:160
+#: doc/contributing.texi:161
 #, no-wrap
 msgid "Running Guix Before It Is Installed"
 msgstr "Lancer Guix avant qu'il ne soit installé"
 
 #. type: menuentry
-#: doc/contributing.texi:29
+#: doc/contributing.texi:32
 msgid "Hacker tricks."
 msgstr "Astuces pour les hackers."
 
 #. type: section
-#: doc/contributing.texi:29 doc/contributing.texi:167
-#: doc/contributing.texi:168
+#: doc/contributing.texi:32 doc/contributing.texi:233
+#: doc/contributing.texi:234
 #, no-wrap
 msgid "The Perfect Setup"
 msgstr "La configuration parfaite"
 
 #. type: menuentry
-#: doc/contributing.texi:29
+#: doc/contributing.texi:32
 msgid "The right tools."
 msgstr "Les bons outils."
 
 #. type: section
-#: doc/contributing.texi:29 doc/contributing.texi:231
-#: doc/contributing.texi:232
+#: doc/contributing.texi:32 doc/contributing.texi:324
+#: doc/contributing.texi:325
 #, no-wrap
 msgid "Packaging Guidelines"
 msgstr "Consignes d'empaquetage"
 
 #. type: menuentry
-#: doc/contributing.texi:29
+#: doc/contributing.texi:32
 msgid "Growing the distribution."
 msgstr "Faire grandir la distribution."
 
 #. type: section
-#: doc/contributing.texi:29 doc/contributing.texi:680
-#: doc/contributing.texi:681
+#: doc/contributing.texi:32 doc/contributing.texi:823
+#: doc/contributing.texi:824
 #, no-wrap
 msgid "Coding Style"
 msgstr "Style de code"
 
 #. type: menuentry
-#: doc/contributing.texi:29
+#: doc/contributing.texi:32
 msgid "Hygiene of the contributor."
 msgstr "Hygiène des contributeur·rice·s."
 
 #. type: section
-#: doc/contributing.texi:29 doc/contributing.texi:778
-#: doc/contributing.texi:779
+#: doc/contributing.texi:32 doc/contributing.texi:921
+#: doc/contributing.texi:922
 #, no-wrap
 msgid "Submitting Patches"
 msgstr "Envoyer des correctifs"
 
 #. type: menuentry
-#: doc/contributing.texi:29
+#: doc/contributing.texi:32
 msgid "Share your work."
 msgstr "Partager votre travail."
 
+#. type: section
+#: doc/contributing.texi:32 doc/contributing.texi:1146
+#: doc/contributing.texi:1147
+#, no-wrap
+msgid "Tracking Bugs and Patches"
+msgstr "Suivi des bogues et des correctifs"
+
+#. type: menuentry
+#: doc/contributing.texi:32
+msgid "Using Debbugs."
+msgstr "Utiliser Debbugs."
+
+#. type: section
+#: doc/contributing.texi:32 doc/contributing.texi:1197
+#: doc/contributing.texi:1198
+#, no-wrap
+msgid "Commit Access"
+msgstr "Accès en commit"
+
+#. type: menuentry
+#: doc/contributing.texi:32
+msgid "Pushing to the official repository."
+msgstr "Pousser sur le dépôt officiel."
+
+#. type: section
+#: doc/contributing.texi:32 doc/contributing.texi:1338
+#: doc/contributing.texi:1339
+#, no-wrap
+msgid "Updating the Guix Package"
+msgstr "Mettre à jour Guix"
+
+#. type: menuentry
+#: doc/contributing.texi:32
+msgid "Updating the Guix package definition."
+msgstr "Mettre à jour les définitions de paquets de Guix."
+
 #. type: Plain text
-#: doc/contributing.texi:36
+#: doc/contributing.texi:39
 msgid "If you want to hack Guix itself, it is recommended to use the latest version from the Git repository:"
 msgstr "Si vous souhaitez travailler sur Guix lui-même, il est recommandé d'utiliser la dernière version du dépôt Git :"
 
 #. type: example
-#: doc/contributing.texi:39
+#: doc/contributing.texi:42
 #, no-wrap
 msgid "git clone https://git.savannah.gnu.org/git/guix.git\n"
 msgstr "git clone https://git.savannah.gnu.org/git/guix.git\n"
 
-#. type: Plain text
+#. type: cindex
 #: doc/contributing.texi:44
-msgid "When building Guix from a checkout, the following packages are required in addition to those mentioned in the installation instructions (@pxref{Requirements})."
-msgstr "Lors de la construction de Guix depuis un extrait, les paquets suivants sont requis en plus de ceux mentionnés dans les instructions d'installation (@pxref{Prérequis})."
+#, no-wrap
+msgid "authentication, of a Guix checkout"
+msgstr "authentification, d'un extrait de Guix"
 
-#. type: item
-#: doc/contributing.texi:46
+#. type: Plain text
+#: doc/contributing.texi:49
+msgid "How do you ensure that you obtained a genuine copy of the repository? To do that, run @command{guix git authenticate}, passing it the commit and OpenPGP fingerprint of the @dfn{channel introduction} (@pxref{Invoking guix git authenticate}):"
+msgstr "Comment vous assurer que vous avez obtenu une copie authentique du dépôt ? Pour celà, exécutez @command{guix git authenticate}, en lui transmettant le commit et l'empreinte OpenPGP de l'@dfn{canal introduction} (@pxref{Invoquer guix git authenticate}) :"
+
+#. type: example
+#: doc/contributing.texi:56
 #, no-wrap
-msgid "@url{http://gnu.org/software/autoconf/, GNU Autoconf};"
-msgstr "@url{http://gnu.org/software/autoconf/, GNU Autoconf};"
+msgid ""
+"git fetch origin keyring:keyring\n"
+"guix git authenticate 9edb3f66fd807b096b48283debdcddccfea34bad \\\n"
+"  \"BBB0 2DDF 2CEA F6A8 0D1D  E643 A2A0 6DF2 A33A 54FA\"\n"
+msgstr ""
+"git fetch origin keyring:keyring\n"
+"guix git authenticate 9edb3f66fd807b096b48283debdcddccfea34bad \\\n"
+"  \"BBB0 2DDF 2CEA F6A8 0D1D  E643 A2A0 6DF2 A33A 54FA\"\n"
 
-#. type: item
-#: doc/contributing.texi:47
+#. type: Plain text
+#: doc/contributing.texi:61
+msgid "This command completes with exit code zero on success; it prints an error message and exits with a non-zero code otherwise."
+msgstr "Cette commande se termine avec le code de sortie zéro en cas de succès ; elle affiche un message d'erreur et quitte avec un code non zéro dans le cas contraire."
+
+#. type: Plain text
+#: doc/contributing.texi:68
+msgid "As you can see, there is a chicken-and-egg problem: you first need to have Guix installed.  Typically you would install Guix System (@pxref{System Installation}) or Guix on top of another distro (@pxref{Binary Installation}); in either case, you would verify the OpenPGP signature on the installation medium.  This ``bootstraps'' the trust chain."
+msgstr "Comme vous pouvez le voir, il y a un problème de poule et d'œuf : il faut d'abord avoir installé Guix.  En général, vous installez Guix System (@pxref{Installation du système}) ou Guix sur une autre distribution (@pxref{Installation binaire}) ; dans les deux cas, vous vérifiez la signature OpenPGP sur le support d'installation.  Cela \"amorce\" la chaîne de confiance."
+
+#. type: Plain text
+#: doc/contributing.texi:73
+msgid "The easiest way to set up a development environment for Guix is, of course, by using Guix! The following command starts a new shell where all the dependencies and appropriate environment variables are set up to hack on Guix:"
+msgstr "La manière la plus simple de configurer un environnement de développement pour Guix est, bien sûr, d'utiliser Guix ! La commande suivante démarre un nouveau shell où toutes les dépendances et les variables d'environnements appropriées sont configurés pour travailler sur Guix :"
+
+#. type: example
+#: doc/contributing.texi:76
 #, no-wrap
-msgid "@url{http://gnu.org/software/automake/, GNU Automake};"
-msgstr "@url{http://gnu.org/software/automake/, GNU Automake};"
+msgid "guix environment guix --pure\n"
+msgstr "guix environment guix --pure\n"
+
+#. type: Plain text
+#: doc/contributing.texi:79
+msgid "@xref{Invoking guix environment}, for more information on that command."
+msgstr "@xref{Invoking guix environment}, pour plus d'informations."
+
+#. type: Plain text
+#: doc/contributing.texi:83
+msgid "If you are unable to use Guix when building Guix from a checkout, the following are the required packages in addition to those mentioned in the installation instructions (@pxref{Requirements})."
+msgstr "Si vous ne pouvez pas utiliser Guix pour la construction de Guix depuis un extrait, les paquets suivants sont requis en plus de ceux mentionnés dans les instructions d'installation (@pxref{Requirements})."
 
 #. type: item
-#: doc/contributing.texi:48
+#: doc/contributing.texi:85
 #, no-wrap
-msgid "@url{http://gnu.org/software/gettext/, GNU Gettext};"
-msgstr "@url{http://gnu.org/software/gettext/, GNU Gettext};"
+msgid "@url{https://gnu.org/software/autoconf/, GNU Autoconf};"
+msgstr "@url{https://gnu.org/software/autoconf/, GNU Autoconf} ;"
 
 #. type: item
-#: doc/contributing.texi:49
+#: doc/contributing.texi:86
 #, no-wrap
-msgid "@url{http://gnu.org/software/texinfo/, GNU Texinfo};"
-msgstr "@url{http://gnu.org/software/texinfo/, GNU Texinfo};"
+msgid "@url{https://gnu.org/software/automake/, GNU Automake};"
+msgstr "@url{https://gnu.org/software/automake/, GNU Automake} ;"
 
 #. type: item
-#: doc/contributing.texi:50
+#: doc/contributing.texi:87
 #, no-wrap
-msgid "@url{http://www.graphviz.org/, Graphviz};"
-msgstr "@url{http://www.graphviz.org/, Graphviz};"
+msgid "@url{https://gnu.org/software/gettext/, GNU Gettext};"
+msgstr "@url{https://gnu.org/software/gettext/, GNU Gettext} ;"
 
 #. type: item
-#: doc/contributing.texi:51
+#: doc/contributing.texi:88
 #, no-wrap
-msgid "@url{http://www.gnu.org/software/help2man/, GNU Help2man (optional)}."
-msgstr "@url{http://www.gnu.org/software/help2man/, GNU Help2man (facultatif)}."
+msgid "@url{https://gnu.org/software/texinfo/, GNU Texinfo};"
+msgstr "@url{https://gnu.org/software/texinfo/, GNU Texinfo} ;"
 
-#. type: Plain text
-#: doc/contributing.texi:58
-msgid "The easiest way to set up a development environment for Guix is, of course, by using Guix! The following command starts a new shell where all the dependencies and appropriate environment variables are set up to hack on Guix:"
-msgstr "La manière la plus simple de configurer un environnement de développement pour Guix est, bien sûr, d'utiliser Guix ! La commande suivante démarre un nouveau shell où toutes les dépendances et les variables d'environnements appropriées sont configurés pour travailler sur Guix :"
+#. type: item
+#: doc/contributing.texi:89
+#, no-wrap
+msgid "@url{https://www.graphviz.org/, Graphviz};"
+msgstr "@url{https://www.graphviz.org/, Graphviz} ;"
 
-#. type: example
-#: doc/contributing.texi:61
+#. type: item
+#: doc/contributing.texi:90
 #, no-wrap
-msgid "guix environment guix\n"
-msgstr "guix environment guix\n"
+msgid "@url{https://www.gnu.org/software/help2man/, GNU Help2man (optional)}."
+msgstr "@url{https://www.gnu.org/software/help2man/, GNU Help2man (facultatif)}."
 
 #. type: Plain text
-#: doc/contributing.texi:65
-msgid "@xref{Invoking guix environment}, for more information on that command.  Extra dependencies can be added with @option{--ad-hoc}:"
-msgstr "@xref{Invoquer guix environment}, pour plus d'information sur cette commande.  On peut ajouter des dépendances supplémentaires avec @option{--ad-hoc} :"
+#: doc/contributing.texi:95
+msgid "On Guix, extra dependencies can be added by instead running @command{guix environment} with @option{--ad-hoc}:"
+msgstr "Avec Guix, vous pouvez ajouter des dépendances supplémentaires en lançant @command{guix environment} avec @option{--ad-hoc} :"
 
 #. type: example
-#: doc/contributing.texi:68
+#: doc/contributing.texi:98
 #, no-wrap
-msgid "guix environment guix --ad-hoc help2man git strace\n"
-msgstr "guix environment guix --ad-hoc help2man git strace\n"
+msgid "guix environment guix --pure --ad-hoc help2man git strace\n"
+msgstr "guix environment guix --pure --ad-hoc help2man git strace\n"
 
 #. type: Plain text
-#: doc/contributing.texi:72
+#: doc/contributing.texi:102
 msgid "Run @command{./bootstrap} to generate the build system infrastructure using Autoconf and Automake.  If you get an error like this one:"
 msgstr "Lancez @command{./bootstrap} pour générer l'infrastructure du système de construction avec Autoconf et Automake.  Si vous avez une erreur comme :"
 
 #. type: example
-#: doc/contributing.texi:75
+#: doc/contributing.texi:105
 #, no-wrap
 msgid "configure.ac:46: error: possibly undefined macro: PKG_CHECK_MODULES\n"
 msgstr "configure.ac:46: error: possibly undefined macro: PKG_CHECK_MODULES\n"
 
 #. type: Plain text
-#: doc/contributing.texi:84
+#: doc/contributing.texi:114
 msgid "it probably means that Autoconf couldn’t find @file{pkg.m4}, which is provided by pkg-config.  Make sure that @file{pkg.m4} is available.  The same holds for the @file{guile.m4} set of macros provided by Guile.  For instance, if you installed Automake in @file{/usr/local}, it wouldn’t look for @file{.m4} files in @file{/usr/share}.  In that case, you have to invoke the following command:"
 msgstr "cela signifie probablement qu'Autoconf n'a pas pu trouver @file{pkg.m4} qui est fournit par pkg-config.  Assurez-vous que @file{pkg.m4} est disponible.  C'est aussi vrai pour l'ensemble de macros de @file{guile.m4} fournies par Guile.  Par exemple, si vous avez installé Automake dans @file{/usr/local}, il ne cherchera pas les fichiers @file{.m4} dans @file{/usr/share}.  Dans ce case vous devez invoquer la commande suivante :"
 
 #. type: example
-#: doc/contributing.texi:87
+#: doc/contributing.texi:117
 #, no-wrap
 msgid "export ACLOCAL_PATH=/usr/share/aclocal\n"
 msgstr "export ACLOCAL_PATH=/usr/share/aclocal\n"
 
 #. type: Plain text
-#: doc/contributing.texi:91
+#: doc/contributing.texi:121
 msgid "@xref{Macro Search Path,,, automake, The GNU Automake Manual}, for more information."
 msgstr "@xref{Macro Search Path,,, automake, The GNU Automake Manual}, pour plus d'information."
 
 #. type: Plain text
-#: doc/contributing.texi:96
-msgid "Then, run @command{./configure} as usual.  Make sure to pass @code{--localstatedir=@var{directory}} where @var{directory} is the @code{localstatedir} value used by your current installation (@pxref{The Store}, for information about this)."
-msgstr "Ensuite, lancez @command{./configure} comme d'habitude.  Assurez-vous de passer @code{--localstatedir=@var{directory}} où @var{directory} est la valeur @code{localstatedir} utilisée par votre installation actuelle (@pxref{Le dépôt} pour plus d'informations à ce propos)."
+#: doc/contributing.texi:128
+msgid "Then, run @command{./configure} as usual.  Make sure to pass @code{--localstatedir=@var{directory}} where @var{directory} is the @code{localstatedir} value used by your current installation (@pxref{The Store}, for information about this), usually @file{/var}.  Note that you will probably not run @command{make install} at the end (you don't have to) but it's still important to pass the right @code{localstatedir}."
+msgstr "Ensuite, lancez @command{./configure} comme d'habitude.  Assurez-vous de passer @code{--localstatedir=@var{directory}} où @var{directory} est la valeur @code{localstatedir} utilisée par votre installation actuelle (@pxref{The Store} pour plus d'informations à ce propos), habituellement @file{/var}. Remarquez que vous n'allez probablement pas lancer @command{make install} à la fin (vous n'avez pas besoin de la faire) mais il est toujours important de passer le bon @code{localstatedir}."
 
 #. type: Plain text
-#: doc/contributing.texi:101
+#: doc/contributing.texi:133
 msgid "Finally, you have to invoke @code{make check} to run tests (@pxref{Running the Test Suite}).  If anything fails, take a look at installation instructions (@pxref{Installation})  or send a message to the @email{guix-devel@@gnu.org, mailing list}."
 msgstr "Finalement, vous devez invoquer @code{make check} pour lancer les tests (@pxref{Lancer la suite de tests}).  Si quelque chose échoue, jetez un œil aux instructions d'installation (@pxref{Installation}) ou envoyez un message à la liste @email{guix-devel@@gnu.org}."
 
 #. type: Plain text
-#: doc/contributing.texi:110
+#: doc/contributing.texi:136
+msgid "From there on, you can authenticate all the commits included in your checkout by running:"
+msgstr "À partir de maintenant, vous pouvez authentifier tous les commits de votre extrait en lançant :"
+
+#. type: example
+#: doc/contributing.texi:139
+#, no-wrap
+msgid "make authenticate\n"
+msgstr "make authenticate\n"
+
+#. type: Plain text
+#: doc/contributing.texi:142
+msgid "The first run takes a couple of minutes, but subsequent runs are faster."
+msgstr "La première exécution prend quelques minutes, mais les exécutions suivantes seront plus rapides."
+
+#. type: Plain text
+#: doc/contributing.texi:148
+msgid "Or, when your configuration for your local Git repository doesn't match the default one, you can provide the reference for the @code{keyring} branch through the variable @code{GUIX_GIT_KEYRING}.  The following example assumes that you have a Git remote called @samp{myremote} pointing to the official repository:"
+msgstr "Ou bien, si la configuration de votre dépôt Git local ne correspond pas à la configuration par défaut, vous pouvez fournir la référence pour la branche @code{keyring} dans la variable @code{GUIX_GIT_KEYRING}.  L'exemple suivant suppose que vous avez un dépôt distant nommé @samp{myremote} qui pointe vers le dépôt officiel :"
+
+#. type: example
+#: doc/contributing.texi:151
+#, no-wrap
+msgid "make authenticate GUIX_GIT_KEYRING=myremote/keyring\n"
+msgstr "make authenticate GUIX_GIT_KEYRING=myremote/keyring\n"
+
+#. type: quotation
+#: doc/contributing.texi:153 doc/contributing.texi:1264 doc/guix.texi:547
+#: doc/guix.texi:596 doc/guix.texi:1667 doc/guix.texi:1914 doc/guix.texi:2125
+#: doc/guix.texi:2346 doc/guix.texi:2547 doc/guix.texi:3613 doc/guix.texi:4349
+#: doc/guix.texi:4363 doc/guix.texi:4445 doc/guix.texi:4675 doc/guix.texi:5494
+#: doc/guix.texi:5740 doc/guix.texi:5861 doc/guix.texi:5913 doc/guix.texi:8459
+#: doc/guix.texi:8529 doc/guix.texi:10193 doc/guix.texi:10233
+#: doc/guix.texi:10450 doc/guix.texi:10462 doc/guix.texi:12627
+#: doc/guix.texi:13202 doc/guix.texi:13958 doc/guix.texi:14923
+#: doc/guix.texi:16967 doc/guix.texi:17117 doc/guix.texi:23774
+#: doc/guix.texi:27081 doc/guix.texi:29038 doc/guix.texi:30452
+#: doc/guix.texi:30686 doc/guix.texi:30856 doc/guix.texi:30987
+#: doc/guix.texi:31089 doc/guix.texi:31185
+#, no-wrap
+msgid "Note"
+msgstr "Remarque"
+
+#. type: quotation
+#: doc/contributing.texi:157
+msgid "You are advised to run @command{make authenticate} after every @command{git pull} invocation.  This ensures you keep receiving valid changes to the repository."
+msgstr "Nous vous conseillons d'exécuter @command{make authenticate} après chaque invocation de @command{git pull}.  Celà vous garantit de continuer à recevoir des modifications valables dans le dépôt."
+
+#. type: Plain text
+#: doc/contributing.texi:167
 msgid "In order to keep a sane working environment, you will find it useful to test the changes made in your local source tree checkout without actually installing them.  So that you can distinguish between your ``end-user'' hat and your ``motley'' costume."
 msgstr "Pour garder un environnement de travail sain, il est utile de tester les changement localement sans les installer pour de vrai.  Pour pouvoir distinguer votre rôle « d'utilisateur·rice final·e » de celui parfois haut en couleur de « développeur·euse »."
 
 #. type: Plain text
-#: doc/contributing.texi:121
-msgid "To that end, all the command-line tools can be used even if you have not run @code{make install}.  To do that, you first need to have an environment with all the dependencies available (@pxref{Building from Git}), and then simply prefix each command with @command{./pre-inst-env} (the @file{pre-inst-env} script lives in the top build tree of Guix; it is generated by @command{./configure}), as in@footnote{The @option{-E} flag to @command{sudo} guarantees that @code{GUILE_LOAD_PATH} is correctly set such that @command{guix-daemon} and the tools it uses can find the Guile modules they need.}:"
-msgstr "Pour cela, tous les outils en ligne de commande sont utilisables même sans avoir lancé @code{make install}.  Pour cela, vous devez d'abord avoir un environnement avec toutes les dépendances disponibles (@pxref{Building from Git}), puis préfixer chaque commande par @command{./pre-inst-env} (le script @file{pre-inst-env} se trouve dans le répertoire de plus haut niveau de l'arborescence des sources de Guix ; il est généré par @command{./configure}) comme cela@footnote{L'option @option{-E} de @command{sudo} garantie que @code{GUILE_LOAD_PATH} est bien paramétré pour @command{guix-daemon} et pour que les outils qu'il utilise puissent trouver les modules Guile dont ils ont besoin.} :"
+#: doc/contributing.texi:177
+msgid "To that end, all the command-line tools can be used even if you have not run @code{make install}.  To do that, you first need to have an environment with all the dependencies available (@pxref{Building from Git}), and then simply prefix each command with @command{./pre-inst-env} (the @file{pre-inst-env} script lives in the top build tree of Guix; it is generated by @command{./configure}).  As an example, here is how you would build the @code{hello} package as defined in your working tree (this assumes @command{guix-daemon} is already running on your system; it's OK if it's a different version):"
+msgstr "Pour cela, tous les outils en ligne de commande sont utilisables même sans avoir lancé @code{make install}.  Pour faire cela, vous devez d'abord avoir un environnement avec toutes les dépendances disponibles (@pxref{Building from Git}), et puis préfixer simplement chaque commande avec @command{./pre-inst-env} (le script @file{pre-inst-env} se trouve dans le répertoire de plus haut niveau de l'arborescence des sources de Guix ; il est généré par @command{./configure}).  À titre d'exemple, voici comment construire le paquet @code{hello} tel que défini dans votre arborescence de travail (cela suppose que @command{guix-daemon} fonctionne déjà sur votre système ; c'est OK si c'est une version différente) :"
 
 #. type: example
-#: doc/contributing.texi:125
+#: doc/contributing.texi:180
 #, no-wrap
-msgid ""
-"$ sudo -E ./pre-inst-env guix-daemon --build-users-group=guixbuild\n"
-"$ ./pre-inst-env guix build hello\n"
-msgstr ""
-"$ sudo -E ./pre-inst-env guix-daemon --build-users-group=guixbuild\n"
-"$ ./pre-inst-env guix build hello\n"
+msgid "$ ./pre-inst-env guix build hello\n"
+msgstr "$ ./pre-inst-env guix build hello \n"
 
 #. type: Plain text
-#: doc/contributing.texi:129
-msgid "Similarly, for a Guile session using the Guix modules:"
+#: doc/contributing.texi:184
+msgid "Similarly, an example for a Guile session using the Guix modules:"
 msgstr "De même, pour une session Guile qui utilise les modules Guix :"
 
 #. type: example
-#: doc/contributing.texi:132
+#: doc/contributing.texi:187
 #, no-wrap
 msgid ""
 "$ ./pre-inst-env guile -c '(use-modules (guix utils)) (pk (%current-system))'\n"
@@ -286,30 +427,30 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/contributing.texi:134
+#: doc/contributing.texi:189
 #, no-wrap
 msgid ";;; (\"x86_64-linux\")\n"
 msgstr ";;; (\"x86_64-linux\")\n"
 
 #. type: cindex
-#: doc/contributing.texi:137
+#: doc/contributing.texi:192
 #, no-wrap
 msgid "REPL"
 msgstr "REPL"
 
 #. type: cindex
-#: doc/contributing.texi:138
+#: doc/contributing.texi:193
 #, no-wrap
 msgid "read-eval-print loop"
 msgstr "read-eval-print loop"
 
 #. type: Plain text
-#: doc/contributing.texi:141
+#: doc/contributing.texi:196
 msgid "@dots{} and for a REPL (@pxref{Using Guile Interactively,,, guile, Guile Reference Manual}):"
 msgstr "@dots{} et pour un REPL (@pxref{Using Guile Interactively,,, guile, Guile Reference Manual})"
 
 #. type: example
-#: doc/contributing.texi:156
+#: doc/contributing.texi:211
 #, no-wrap
 msgid ""
 "$ ./pre-inst-env guile\n"
@@ -341,33 +482,46 @@ msgstr ""
 "$1 = 361\n"
 
 #. type: Plain text
-#: doc/contributing.texi:160
+#: doc/contributing.texi:219
+msgid "If you are hacking on the daemon and its supporting code or if @command{guix-daemon} is not already running on your system, you can launch it straight from the build tree@footnote{The @option{-E} flag to @command{sudo} guarantees that @code{GUILE_LOAD_PATH} is correctly set such that @command{guix-daemon} and the tools it uses can find the Guile modules they need.}:"
+msgstr "Si vous travaillez sur le démon et son code supporté ou si @command{guix-daemon} n'est pas déjà lancé sur votre système, vous pouvez le lancer directement depuis l'arborescence de construction@footnote{Le drapeau @option{-E} de @command{sudo} garantit que @code{GUILE_LOAD_PATH} est correctement configuré de sorte que @command{guix-daemon} et les outils qu'il utilise puissent trouver les modules Guile dont ils ont besoin.} :"
+
+#. type: example
+#: doc/contributing.texi:222
+#, no-wrap
+msgid "$ sudo -E ./pre-inst-env guix-daemon --build-users-group=guixbuild\n"
+msgstr ""
+"$ sudo -E ./pre-inst-env guix-daemon --build-users-group=guixbuild\n"
+"\n"
+
+#. type: Plain text
+#: doc/contributing.texi:226
 msgid "The @command{pre-inst-env} script sets up all the environment variables necessary to support this, including @env{PATH} and @env{GUILE_LOAD_PATH}."
 msgstr "Le script @command{pre-inst-env} paramètre toutes les variables d'environnement nécessaires, dont @env{PATH} et @env{GUILE_LOAD_PATH}."
 
 #. type: Plain text
-#: doc/contributing.texi:165
+#: doc/contributing.texi:231
 msgid "Note that @command{./pre-inst-env guix pull} does @emph{not} upgrade the local source tree; it simply updates the @file{~/.config/guix/current} symlink (@pxref{Invoking guix pull}).  Run @command{git pull} instead if you want to upgrade your local source tree."
 msgstr "Remarquez que @command{./pre-inst-env guix pull} ne met @emph{pas} à jour l'arborescence des sources locale ; cela met seulement à jour le lien symbolique de @file{~/.config/guix/current} (@pxref{Invoking guix pull}).  Lancez @command{git pull} à la place si vous voulez mettre à jour votre arborescence des source locale."
 
 #. type: Plain text
-#: doc/contributing.texi:175
-msgid "The Perfect Setup to hack on Guix is basically the perfect setup used for Guile hacking (@pxref{Using Guile in Emacs,,, guile, Guile Reference Manual}).  First, you need more than an editor, you need @url{http://www.gnu.org/software/emacs, Emacs}, empowered by the wonderful @url{http://nongnu.org/geiser/, Geiser}.  To set that up, run:"
+#: doc/contributing.texi:241
+msgid "The Perfect Setup to hack on Guix is basically the perfect setup used for Guile hacking (@pxref{Using Guile in Emacs,,, guile, Guile Reference Manual}).  First, you need more than an editor, you need @url{https://www.gnu.org/software/emacs, Emacs}, empowered by the wonderful @url{https://nongnu.org/geiser/, Geiser}.  To set that up, run:"
 msgstr "La configuration parfaite pour travailler sur Guix est simplement la configuration parfaite pour travailler en Guile (@pxref{Using Guile in Emacs,,, guile, Guile Reference Manual}).  Tout d'abord, vous avez besoin de mieux qu'un éditeur de texte, vous avez besoin de @url{http://www.gnu.org/software/emacs, Emacs}, amélioré par le superbe @url{http://nongnu.org/geiser/, Geiser}.  Pour paramétrer cela, lancez :"
 
 #. type: example
-#: doc/contributing.texi:178
+#: doc/contributing.texi:244
 #, no-wrap
 msgid "guix package -i emacs guile emacs-geiser\n"
 msgstr "guix package -i emacs guile emacs-geiser\n"
 
 #. type: Plain text
-#: doc/contributing.texi:187
+#: doc/contributing.texi:253
 msgid "Geiser allows for interactive and incremental development from within Emacs: code compilation and evaluation from within buffers, access to on-line documentation (docstrings), context-sensitive completion, @kbd{M-.} to jump to an object definition, a REPL to try out your code, and more (@pxref{Introduction,,, geiser, Geiser User Manual}).  For convenient Guix development, make sure to augment Guile’s load path so that it finds source files from your checkout:"
 msgstr "Geiser permet le développement interactif et incrémental depuis Emacs : la compilation du code et son évaluation depuis les buffers, l'accès à la documentation en ligne (docstrings), la complétion sensible au contexte, @kbd{M-.} pour sauter à la définition d'un objet, un REPL pour tester votre code, et bien plus (@pxref{Introduction,,, geiser, Geiser User Manual}).  Pour travailler confortablement sur Guix, assurez-vous de modifier le chemin de chargement de Guile pour qu'il trouve les fichiers source de votre dépôt :"
 
 #. type: lisp
-#: doc/contributing.texi:192
+#: doc/contributing.texi:258
 #, no-wrap
 msgid ""
 ";; @r{Assuming the Guix checkout is in ~/src/guix.}\n"
@@ -379,35 +533,35 @@ msgstr ""
 "  (add-to-list 'geiser-guile-load-path \"~/src/guix\"))\n"
 
 #. type: Plain text
-#: doc/contributing.texi:200
-msgid "To actually edit the code, Emacs already has a neat Scheme mode.  But in addition to that, you must not miss @url{http://www.emacswiki.org/emacs/ParEdit, Paredit}.  It provides facilities to directly operate on the syntax tree, such as raising an s-expression or wrapping it, swallowing or rejecting the following s-expression, etc."
+#: doc/contributing.texi:266
+msgid "To actually edit the code, Emacs already has a neat Scheme mode.  But in addition to that, you must not miss @url{https://www.emacswiki.org/emacs/ParEdit, Paredit}.  It provides facilities to directly operate on the syntax tree, such as raising an s-expression or wrapping it, swallowing or rejecting the following s-expression, etc."
 msgstr "Pour effectivement éditer le code, Emacs a déjà un très bon mode Scheme.  Mais en plus de ça, vous ne devez pas rater @url{http://www.emacswiki.org/emacs/ParEdit, Paredit}.  Il fournit des fonctionnalités pour opérer directement sur l'arbre de syntaxe, comme relever une s-expression ou l'envelopper, absorber ou rejeter la s-expression suivante, etc."
 
 #. type: cindex
-#: doc/contributing.texi:201
+#: doc/contributing.texi:267
 #, no-wrap
 msgid "code snippets"
 msgstr "extraits de code"
 
 #. type: cindex
-#: doc/contributing.texi:202
+#: doc/contributing.texi:268
 #, no-wrap
 msgid "templates"
 msgstr "modèles"
 
 #. type: cindex
-#: doc/contributing.texi:203
+#: doc/contributing.texi:269
 #, no-wrap
 msgid "reducing boilerplate"
 msgstr "réduire la quantité de code commun"
 
 #. type: Plain text
-#: doc/contributing.texi:210
-msgid "We also provide templates for common git commit messages and package definitions in the @file{etc/snippets} directory.  These templates can be used with @url{http://joaotavora.github.io/yasnippet/, YASnippet} to expand short trigger strings to interactive text snippets.  You may want to add the snippets directory to the @var{yas-snippet-dirs} variable in Emacs."
-msgstr "Nous fournissons aussi des modèles pour les messages de commit git communs et les définitions de paquets dans le répertoire @file{etc/snippets}.  Ces modèles s'utilisent avec @url{http://joaotavora.github.io/yasnippet/, YASnippet} pour développer des chaînes courtes de déclenchement en extraits de texte interactifs.  Vous pouvez ajouter le répertoire des modèles dans la variables @var{yas-snippet-dirs} d'Emacs."
+#: doc/contributing.texi:276
+msgid "We also provide templates for common git commit messages and package definitions in the @file{etc/snippets} directory.  These templates can be used with @url{https://joaotavora.github.io/yasnippet/, YASnippet} to expand short trigger strings to interactive text snippets.  You may want to add the snippets directory to the @var{yas-snippet-dirs} variable in Emacs."
+msgstr "Nous fournissons aussi des modèles pour les messages de commit git courants et les définitions de paquets dans le répertoire @file{etc/snippets}.  Ces modèles s'utilisent avec @url{http://joaotavora.github.io/yasnippet/, YASnippet} pour développer de courtes chaînes de déclenchement en extraits de texte interactifs.  Vous pouvez ajouter le répertoire des modèles dans la variables @var{yas-snippet-dirs} d'Emacs."
 
 #. type: lisp
-#: doc/contributing.texi:215
+#: doc/contributing.texi:281
 #, no-wrap
 msgid ""
 ";; @r{Assuming the Guix checkout is in ~/src/guix.}\n"
@@ -419,245 +573,331 @@ msgstr ""
 "  (add-to-list 'yas-snippet-dirs \"~/src/guix/etc/snippets\"))\n"
 
 #. type: Plain text
-#: doc/contributing.texi:223
+#: doc/contributing.texi:289
 msgid "The commit message snippets depend on @url{https://magit.vc/, Magit} to display staged files.  When editing a commit message type @code{add} followed by @kbd{TAB} to insert a commit message template for adding a package; type @code{update} followed by @kbd{TAB} to insert a template for updating a package; type @code{https} followed by @kbd{TAB} to insert a template for changing the home page URI of a package to HTTPS."
 msgstr "Les extraits de messages de commit dépendent de @url{https://magit.vc/, Magit} pour afficher les fichiers sélectionnés.  Lors de la modification d'un message de commit, tapez @code{add} suivi de @kbd{TAB} pour insérer un modèle de message de commit pour ajouter un paquet ; tapez @code{update} suivi de @kbd{TAB} pour insérer un modèle pour la mise à jour d'un paquet ; tapez @code{https} suivi de @kbd{TAB} pour insérer un modèle pour le changement à HTTPS de l'URI de la page d'accueil."
 
 #. type: Plain text
-#: doc/contributing.texi:229
+#: doc/contributing.texi:295
 msgid "The main snippet for @code{scheme-mode} is triggered by typing @code{package...} followed by @kbd{TAB}.  This snippet also inserts the trigger string @code{origin...}, which can be expanded further.  The @code{origin} snippet in turn may insert other trigger strings ending on @code{...}, which also can be expanded further."
 msgstr "L'extrait principal pour @code{scheme-mode} est lancé en tapant @code{package…} suivi par @kbd{TAB}.  Cet extrait insère aussi la chaîne de déclenchement @code{origin…}, qui peut aussi être étendue.  L'extrait @code{origin} lui-même peut aussi insérer des chaînes de déclenchement qui finissent sur @code{…}, qui peuvent aussi être étendues."
 
 #. type: cindex
-#: doc/contributing.texi:234
+#: doc/contributing.texi:296
+#, no-wrap
+msgid "insert or update copyright"
+msgstr "insérer ou mettre à jour la ligne de copyright"
+
+#. type: code{#1}
+#: doc/contributing.texi:297
+#, no-wrap
+msgid "M-x guix-copyright"
+msgstr "M-x guix-copyright"
+
+#. type: code{#1}
+#: doc/contributing.texi:298
+#, no-wrap
+msgid "M-x copyright-update"
+msgstr "M-x copyright-update"
+
+#. type: Plain text
+#: doc/contributing.texi:302
+msgid "We additionally provide insertion and automatic update of a copyright in @file{etc/copyright.el}.  You may want to set your full name, mail, and load a file."
+msgstr "De plus, nous fournissons l'insertion et la mise à jour automatique d'une ligne de copyright dans @file{etc/copyright.el}.  Vous voudrez sans doute indiquer votre nom complet, adresse de courriel et charger le fichier."
+
+#. type: lisp
+#: doc/contributing.texi:308
+#, no-wrap
+msgid ""
+"(setq user-full-name \"Alice Doe\")\n"
+"(setq user-mail-address \"alice@@mail.org\")\n"
+";; @r{Assuming the Guix checkout is in ~/src/guix.}\n"
+"(load-file \"~/src/guix/etc/copyright.el\")\n"
+msgstr ""
+"(setq user-full-name \"Alice Doe\")\n"
+"(setq user-mail-address \"alice@@mail.org\")\n"
+";; @r{En supposant que le dépôt Guix est dans ~/src/guix.}\n"
+"(load-file \"~/src/guix/etc/copyright.el\")\n"
+
+#. type: Plain text
+#: doc/contributing.texi:311
+msgid "To insert a copyright at the current line invoke @code{M-x guix-copyright}."
+msgstr "Pour insérer une ligne de copyright à la ligne actuelle invoquez @code{M-x guix-copyright}."
+
+#. type: Plain text
+#: doc/contributing.texi:313
+msgid "To update a copyright you need to specify a @code{copyright-names-regexp}."
+msgstr "Pour mettre à jour une ligne de copyright vous devez spécifier un @code{copyright-names-regexp}."
+
+#. type: lisp
+#: doc/contributing.texi:317
+#, no-wrap
+msgid ""
+"(setq copyright-names-regexp\n"
+"      (format \"%s <%s>\" user-full-name user-mail-address))\n"
+msgstr ""
+"(setq copyright-names-regexp\n"
+"      (format \"%s <%s>\" user-full-name user-mail-address))\n"
+
+#. type: Plain text
+#: doc/contributing.texi:323
+msgid "You can check if your copyright is up to date by evaluating @code{M-x copyright-update}.  If you want to do it automatically after each buffer save then add @code{(add-hook 'after-save-hook 'copyright-update)} in Emacs."
+msgstr "Vous pouvez vérifier si votre ligne de copyright est à jour en évaluant @code{M-x copyright-update}.  Si vous voulez le faire automatiquement après chaque sauvegarde de tampon ajoutez @code{(add-hook 'after-save-hook 'copyright-update)} dans Emacs."
+
+#. type: cindex
+#: doc/contributing.texi:327
 #, no-wrap
 msgid "packages, creating"
 msgstr "paquets, création"
 
 #. type: Plain text
-#: doc/contributing.texi:238
+#: doc/contributing.texi:331
 msgid "The GNU distribution is nascent and may well lack some of your favorite packages.  This section describes how you can help make the distribution grow."
 msgstr "La distribution GNU est jeune et vos paquets préférés peuvent manquer.  Cette section décrit comment vous pouvez aider à agrandir la distribution."
 
 #. type: Plain text
-#: doc/contributing.texi:246
+#: doc/contributing.texi:339
 msgid "Free software packages are usually distributed in the form of @dfn{source code tarballs}---typically @file{tar.gz} files that contain all the source files.  Adding a package to the distribution means essentially two things: adding a @dfn{recipe} that describes how to build the package, including a list of other packages required to build it, and adding @dfn{package metadata} along with that recipe, such as a description and licensing information."
-msgstr "Les paquets de logiciels libres sont habituellement distribués sous forme @dfn{d'archives de sources} — typiquement des fichiers @file{.tar.gz} contenant tous les fichiers sources.  Ajouter un paquet à la distribution signifie essentiellement deux choses : ajouter une @dfn{recette} qui décrit comment construire le paquet, avec une liste d'autres paquets requis pour le construire, et ajouter des @dfn{métadonnées de paquet} avec la recette, comme une description et une licence."
+msgstr "Les paquets de logiciels libres sont habituellement distribués sous forme @dfn{d'archives de sources} — typiquement des fichiers @file{.tar.gz} contenant tous les fichiers sources.  Ajouter un paquet à la distribution signifie en substance deux choses : ajouter une @dfn{recette} qui décrit comment construire le paquet, avec une liste d'autres paquets requis pour le construire, et ajouter des @dfn{métadonnées de paquet} avec la recette, comme une description et une licence."
 
 #. type: Plain text
-#: doc/contributing.texi:255
+#: doc/contributing.texi:348
 msgid "In Guix all this information is embodied in @dfn{package definitions}.  Package definitions provide a high-level view of the package.  They are written using the syntax of the Scheme programming language; in fact, for each package we define a variable bound to the package definition, and export that variable from a module (@pxref{Package Modules}).  However, in-depth Scheme knowledge is @emph{not} a prerequisite for creating packages.  For more information on package definitions, @pxref{Defining Packages}."
 msgstr "Dans Guix, toutes ces informations sont incorporées dans les @dfn{définitions de paquets}.  Les définitions de paquets fournissent une vue de haut-niveau du paquet.  Elles sont écrites avec la syntaxe du langage de programmation Scheme ; en fait, pour chaque paquet nous définissons une variable liée à la définition et exportons cette variable à partir d'un module (@pxref{Package Modules}).  Cependant, il n'est @emph{pas} nécessaire d'avoir une connaissance approfondie du Scheme pour créer des paquets.  Pour plus d'informations sur les définitions des paquets, @pxref{Defining Packages}."
 
 #. type: Plain text
-#: doc/contributing.texi:261
+#: doc/contributing.texi:354
 msgid "Once a package definition is in place, stored in a file in the Guix source tree, it can be tested using the @command{guix build} command (@pxref{Invoking guix build}).  For example, assuming the new package is called @code{gnew}, you may run this command from the Guix build tree (@pxref{Running Guix Before It Is Installed}):"
 msgstr "Une fois une définition de paquet en place, stocké dans un fichier de l'arborescence des sources de Guix, il peut être testé avec la commande @command{guix build} (@pxref{Invoking guix build}).  Par exemple, en supposant que le nouveau paquet s'appelle @code{gnew}, vous pouvez lancer cette commande depuis l'arborescence de construction de Guix (@pxref{Running Guix Before It Is Installed}) :"
 
 #. type: example
-#: doc/contributing.texi:264
+#: doc/contributing.texi:357
 #, no-wrap
 msgid "./pre-inst-env guix build gnew --keep-failed\n"
 msgstr "./pre-inst-env guix build gnew --keep-failed\n"
 
 #. type: Plain text
-#: doc/contributing.texi:270
+#: doc/contributing.texi:363
 msgid "Using @code{--keep-failed} makes it easier to debug build failures since it provides access to the failed build tree.  Another useful command-line option when debugging is @code{--log-file}, to access the build log."
 msgstr "Utiliser @code{--keep-failed} rend facile le débogage des échecs car il fournit l'accès à l'arborescence de construction qui a échouée.  Une autre sous-commande utile pour le débogage est @code{--log-file}, pour accéder au journal de construction."
 
 #. type: Plain text
-#: doc/contributing.texi:275
+#: doc/contributing.texi:368
 msgid "If the package is unknown to the @command{guix} command, it may be that the source file contains a syntax error, or lacks a @code{define-public} clause to export the package variable.  To figure it out, you may load the module from Guile to get more information about the actual error:"
 msgstr "Si le paquet n'est pas connu de la commande @command{guix}, il se peut que le fichier source ait une erreur de syntaxe, ou qu'il manque une clause @code{define-public} pour exporter la variable du paquet.  Pour comprendre cela, vous pouvez charger le module depuis Guile pour avoir plus d'informations sur la véritable erreur :"
 
 #. type: example
-#: doc/contributing.texi:278
+#: doc/contributing.texi:371
 #, no-wrap
 msgid "./pre-inst-env guile -c '(use-modules (gnu packages gnew))'\n"
 msgstr "./pre-inst-env guile -c '(use-modules (gnu packages gnew))'\n"
 
 #. type: Plain text
-#: doc/contributing.texi:286
-msgid "Once your package builds correctly, please send us a patch (@pxref{Submitting Patches}).  Well, if you need help, we will be happy to help you too.  Once the patch is committed in the Guix repository, the new package automatically gets built on the supported platforms by @url{http://hydra.gnu.org/jobset/gnu/master, our continuous integration system}."
-msgstr "Une fois que votre paquet est correctement construit, envoyez-nous un correctif (@pxref{Contributing}).  Enfin, si vous avez besoin d'aide, nous serrons ravis de vous aider.  Une fois que le correctif soumis est committé dans le dépôt Guix, le nouveau paquet est automatiquement construit sur les plate-formes supportées par @url{http://hydra.gnu.org/jobset/gnu/master, notre système d'intégration continue}."
+#: doc/contributing.texi:378
+msgid "Once your package builds correctly, please send us a patch (@pxref{Submitting Patches}).  Well, if you need help, we will be happy to help you too.  Once the patch is committed in the Guix repository, the new package automatically gets built on the supported platforms by @url{@value{SUBSTITUTE-URL}, our continuous integration system}."
+msgstr "Une fois que votre paquet est correctement construit, envoyez-nous un correctif (@pxref{Contributing}).  Enfin, si vous avez besoin d'aide, nous serons ravis de vous aider aussi.  Une fois que le correctif soumis est commité dans le dépôt Guix, le nouveau paquet est automatiquement construit sur les plate-formes supportées par @url{@value{SUBSTITUTE-SERVER}, notre système d'intégration continue}."
 
 #. type: cindex
-#: doc/contributing.texi:287
+#: doc/contributing.texi:379
 #, no-wrap
 msgid "substituter"
 msgstr "substitution"
 
 #. type: Plain text
-#: doc/contributing.texi:294
+#: doc/contributing.texi:386
 msgid "Users can obtain the new package definition simply by running @command{guix pull} (@pxref{Invoking guix pull}).  When @code{@value{SUBSTITUTE-SERVER}} is done building the package, installing the package automatically downloads binaries from there (@pxref{Substitutes}).  The only place where human intervention is needed is to review and apply the patch."
 msgstr "On peut obtenir la nouvelle définition du paquet simplement en lançant @command{guix pull} (@pxref{Invoking guix pull}). Lorsque @code{@value{SUBSTITUTE-SERVER}} a fini de construire le paquet, l'installation du paquet y télécharge automatiquement les binaires (@pxref{Substituts}). La seule intervention humaine requise est pendant la revue et l'application du correctif."
 
 #. type: subsection
-#: doc/contributing.texi:305 doc/contributing.texi:307
-#: doc/contributing.texi:308
+#: doc/contributing.texi:399 doc/contributing.texi:401
+#: doc/contributing.texi:402
 #, no-wrap
 msgid "Software Freedom"
 msgstr "Liberté logiciel"
 
 #. type: menuentry
-#: doc/contributing.texi:305
+#: doc/contributing.texi:399
 msgid "What may go into the distribution."
 msgstr "Ce que la distribution peut contenir."
 
 #. type: subsection
-#: doc/contributing.texi:305 doc/contributing.texi:335
-#: doc/contributing.texi:336
+#: doc/contributing.texi:399 doc/contributing.texi:429
+#: doc/contributing.texi:430
 #, no-wrap
 msgid "Package Naming"
 msgstr "Conventions de nommage"
 
 #. type: menuentry
-#: doc/contributing.texi:305
+#: doc/contributing.texi:399
 msgid "What's in a name?"
 msgstr "Qu'est-ce qu'un bon nom ?"
 
 #. type: subsection
-#: doc/contributing.texi:305 doc/contributing.texi:360
-#: doc/contributing.texi:361
+#: doc/contributing.texi:399 doc/contributing.texi:454
+#: doc/contributing.texi:455
 #, no-wrap
 msgid "Version Numbers"
 msgstr "Numéros de version"
 
 #. type: menuentry
-#: doc/contributing.texi:305
+#: doc/contributing.texi:399
 msgid "When the name is not enough."
 msgstr "Lorsque le nom n'est pas suffisant."
 
 #. type: subsection
-#: doc/contributing.texi:305 doc/contributing.texi:451
-#: doc/contributing.texi:452
+#: doc/contributing.texi:399 doc/contributing.texi:545
+#: doc/contributing.texi:546
 #, no-wrap
 msgid "Synopses and Descriptions"
 msgstr "Synopsis et descriptions"
 
 #. type: menuentry
-#: doc/contributing.texi:305
+#: doc/contributing.texi:399
 msgid "Helping users find the right package."
 msgstr "Aider les utilisateur·rice·s à trouver le bon paquet."
 
 #. type: subsection
-#: doc/contributing.texi:305 doc/contributing.texi:531
-#: doc/contributing.texi:532
+#: doc/contributing.texi:399 doc/contributing.texi:624
+#: doc/contributing.texi:625
+#, no-wrap
+msgid "Snippets versus Phases"
+msgstr "Substituts ou Phases"
+
+#. type: menuentry
+#: doc/contributing.texi:399
+msgid "Whether to use a snippet, or a build phase."
+msgstr "Qu'il s'agisse d'un substitut ou d'une phase de construction."
+
+#. type: subsection
+#: doc/contributing.texi:399 doc/contributing.texi:639
+#: doc/contributing.texi:640
 #, no-wrap
 msgid "Python Modules"
 msgstr "Modules python"
 
 #. type: menuentry
-#: doc/contributing.texi:305
+#: doc/contributing.texi:399
 msgid "A touch of British comedy."
 msgstr "Un peu de comédie anglaise."
 
 #. type: subsection
-#: doc/contributing.texi:305 doc/contributing.texi:606
-#: doc/contributing.texi:607
+#: doc/contributing.texi:399 doc/contributing.texi:715
+#: doc/contributing.texi:716
 #, no-wrap
 msgid "Perl Modules"
 msgstr "Modules perl"
 
 #. type: menuentry
-#: doc/contributing.texi:305
+#: doc/contributing.texi:399
 msgid "Little pearls."
 msgstr "Petites perles."
 
 #. type: subsection
-#: doc/contributing.texi:305 doc/contributing.texi:622
-#: doc/contributing.texi:623
+#: doc/contributing.texi:399 doc/contributing.texi:731
+#: doc/contributing.texi:732
 #, no-wrap
 msgid "Java Packages"
 msgstr "Paquets java"
 
 #. type: menuentry
-#: doc/contributing.texi:305
+#: doc/contributing.texi:399
 msgid "Coffee break."
 msgstr "Pause café."
 
 #. type: subsection
-#: doc/contributing.texi:305 doc/contributing.texi:642
-#: doc/contributing.texi:643
+#: doc/contributing.texi:399 doc/contributing.texi:751
+#: doc/contributing.texi:752
+#, no-wrap
+msgid "Rust Crates"
+msgstr "Paquets Rust"
+
+#. type: menuentry
+#: doc/contributing.texi:399
+msgid "Beware of oxidation."
+msgstr "Attention à l'oxydation."
+
+#. type: subsection
+#: doc/contributing.texi:399 doc/contributing.texi:785
+#: doc/contributing.texi:786
 #, no-wrap
 msgid "Fonts"
 msgstr "Polices de caractères"
 
 #. type: menuentry
-#: doc/contributing.texi:305
+#: doc/contributing.texi:399
 msgid "Fond of fonts."
 msgstr "À fond les fontes."
 
 #. type: cindex
-#: doc/contributing.texi:311
+#: doc/contributing.texi:405
 #, no-wrap
 msgid "free software"
 msgstr "logiciel libre"
 
 #. type: Plain text
-#: doc/contributing.texi:319
-msgid "The GNU operating system has been developed so that users can have freedom in their computing.  GNU is @dfn{free software}, meaning that users have the @url{http://www.gnu.org/philosophy/free-sw.html,four essential freedoms}: to run the program, to study and change the program in source code form, to redistribute exact copies, and to distribute modified versions.  Packages found in the GNU distribution provide only software that conveys these four freedoms."
-msgstr "Le système d'exploitation GNU a été développé pour que les utilisatrices et utilisateurs puissent utiliser leur ordinateur en toute liberté.  GNU est un @dfn{logiciel libre}, ce qui signifie que chaque personne l'utilisant bénéficie des @url{http://www.gnu.org/philosophy/free-sw.fr.html,quatre libertés essentielles} : exécuter le programmer, étudier et modifier le programme sous sa forme source, redistribuer des copies exactes et distribuer les versions modifiées.  Les paquets qui se trouvent dans la distribution GNU ne fournissent que des logiciels qui respectent ces quatre libertés."
+#: doc/contributing.texi:413
+msgid "The GNU operating system has been developed so that users can have freedom in their computing.  GNU is @dfn{free software}, meaning that users have the @url{https://www.gnu.org/philosophy/free-sw.html,four essential freedoms}: to run the program, to study and change the program in source code form, to redistribute exact copies, and to distribute modified versions.  Packages found in the GNU distribution provide only software that conveys these four freedoms."
+msgstr "Le système d'exploitation GNU a été développé pour que les utilisatrices et utilisateurs puissent utiliser leur ordinateur en toute liberté.  GNU est un @dfn{logiciel libre}, ce qui signifie que chaque personne l'utilisant bénéficie des @url{https://www.gnu.org/philosophy/free-sw.fr.html,quatre libertés essentielles} : exécuter le programmer, étudier et modifier le programme sous sa forme source, redistribuer des copies exactes et distribuer les versions modifiées.  Les paquets qui se trouvent dans la distribution GNU ne fournissent que des logiciels qui respectent ces quatre libertés."
 
 #. type: Plain text
-#: doc/contributing.texi:325
-msgid "In addition, the GNU distribution follow the @url{http://www.gnu.org/distros/free-system-distribution-guidelines.html,free software distribution guidelines}.  Among other things, these guidelines reject non-free firmware, recommendations of non-free software, and discuss ways to deal with trademarks and patents."
-msgstr "En plus, la distribution GNU suit les @url{http://www.gnu.org/distros/free-system-distribution-guidelines.html,recommandations pour les distributions systèmes libres}.  Entre autres choses, ces recommandations rejettent les microgiciels non libres, les recommandations de logiciels non libres et discute des façon de gérer les marques et les brevets."
+#: doc/contributing.texi:419
+msgid "In addition, the GNU distribution follow the @url{https://www.gnu.org/distros/free-system-distribution-guidelines.html,free software distribution guidelines}.  Among other things, these guidelines reject non-free firmware, recommendations of non-free software, and discuss ways to deal with trademarks and patents."
+msgstr "En plus, la distribution GNU suit les @url{https://www.gnu.org/distros/free-system-distribution-guidelines.html,recommandations pour les distributions systèmes libres}.  Entre autres choses, ces recommandations rejettent les microgiciels non libres, les recommandations de logiciels non libres et discute des façon de gérer les marques et les brevets."
 
 #. type: Plain text
-#: doc/contributing.texi:333
+#: doc/contributing.texi:427
 msgid "Some otherwise free upstream package sources contain a small and optional subset that violates the above guidelines, for instance because this subset is itself non-free code.  When that happens, the offending items are removed with appropriate patches or code snippets in the @code{origin} form of the package (@pxref{Defining Packages}).  This way, @code{guix build --source} returns the ``freed'' source rather than the unmodified upstream source."
 msgstr "Certaines sources amont autrement parfaitement libres contiennent une petite partie facultative qui viole les recommandations ci-dessus, par exemple car cette partie est du code non-libre.  Lorsque cela arrive, les éléments en question sont supprimés avec des correctifs ou des bouts de codes appropriés dans la forme @code{origin} du paquet (@pxref{Defining Packages}).  De cette manière, @code{guix build --source} renvoie la source « libérée » plutôt que la source amont sans modification."
 
 #. type: cindex
-#: doc/contributing.texi:338
+#: doc/contributing.texi:432
 #, no-wrap
 msgid "package name"
 msgstr "nom du paquet"
 
 #. type: Plain text
-#: doc/contributing.texi:346
+#: doc/contributing.texi:440
 msgid "A package has actually two names associated with it: First, there is the name of the @emph{Scheme variable}, the one following @code{define-public}.  By this name, the package can be made known in the Scheme code, for instance as input to another package.  Second, there is the string in the @code{name} field of a package definition.  This name is used by package management commands such as @command{guix package} and @command{guix build}."
 msgstr "Un paquet a en fait deux noms qui lui sont associés : d'abord il y a le nom de la @emph{variable Scheme}, celui qui suit @code{define-public}.  Par ce nom, le paquet peut se faire connaître par le code Scheme, par exemple comme entrée d'un autre paquet.  Deuxièmement, il y a la chaîne dans le champ @code{name} d'une définition de paquet.  Ce nom est utilisé par les commandes de gestion des paquets comme @command{guix package} et @command{guix build}."
 
 #. type: Plain text
-#: doc/contributing.texi:351
+#: doc/contributing.texi:445
 msgid "Both are usually the same and correspond to the lowercase conversion of the project name chosen upstream, with underscores replaced with hyphens.  For instance, GNUnet is available as @code{gnunet}, and SDL_net as @code{sdl-net}."
 msgstr "Les deux sont habituellement les mêmes et correspondent à la conversion en minuscule du nom du projet choisi en amont, où les underscores sont remplacés par des tirets.  Par exemple, GNUnet est disponible en tant que @code{gnunet} et SDL_net en tant que @code{sdl-net}."
 
 #. type: Plain text
-#: doc/contributing.texi:356
+#: doc/contributing.texi:450
 msgid "We do not add @code{lib} prefixes for library packages, unless these are already part of the official project name.  But @pxref{Python Modules} and @ref{Perl Modules} for special rules concerning modules for the Python and Perl languages."
 msgstr "Nous n'ajoutons pas de préfixe @code{lib} au bibliothèques de paquets, à moins qu'il ne fasse partie du nom officiel du projet.  Mais @pxref{Python Modules} et @ref{Perl Modules}  pour des règles spéciales concernant les modules pour les langages Python et Perl."
 
 #. type: Plain text
-#: doc/contributing.texi:358
+#: doc/contributing.texi:452
 msgid "Font package names are handled differently, @pxref{Fonts}."
 msgstr "Les noms de paquets de polices sont gérés différemment, @pxref{Fonts}."
 
 #. type: cindex
-#: doc/contributing.texi:363
+#: doc/contributing.texi:457
 #, no-wrap
 msgid "package version"
 msgstr "version du paquet"
 
 #. type: Plain text
-#: doc/contributing.texi:372
+#: doc/contributing.texi:466
 msgid "We usually package only the latest version of a given free software project.  But sometimes, for instance for incompatible library versions, two (or more) versions of the same package are needed.  These require different Scheme variable names.  We use the name as defined in @ref{Package Naming} for the most recent version; previous versions use the same name, suffixed by @code{-} and the smallest prefix of the version number that may distinguish the two versions."
 msgstr "Nous n'incluons en général que la dernière version d'un projet de logiciel libre donné.  Mais parfois, par exemple pour des versions incompatibles de bibliothèques, deux (ou plus) versions du même paquet sont requises.  Elles ont besoin d'un nom de variable Scheme différent.  Nous utilisons le nom défini dans @ref{Package Naming} pour la version la plus récente ; les versions précédentes utilisent le même nom, suffixé par @code{-} et le plus petit préfixe du numéro de version qui permet de distinguer deux versions."
 
 #. type: Plain text
-#: doc/contributing.texi:375
+#: doc/contributing.texi:469
 msgid "The name inside the package definition is the same for all versions of a package and does not contain any version number."
 msgstr "Le nom dans la définition du paquet est le même pour toutes les versions d'un paquet et ne contient pas de numéro de version."
 
 #. type: Plain text
-#: doc/contributing.texi:377
+#: doc/contributing.texi:471
 msgid "For instance, the versions 2.24.20 and 3.9.12 of GTK+ may be packaged as follows:"
 msgstr "Par exemple, les version 2.24.20 et 3.9.12 de GTK+ peuvent être inclus de cette manière :"
 
-#. type: example
-#: doc/contributing.texi:389
+#. type: lisp
+#: doc/contributing.texi:483
 #, no-wrap
 msgid ""
 "(define-public gtk+\n"
@@ -683,12 +923,12 @@ msgstr ""
 "    ...))\n"
 
 #. type: Plain text
-#: doc/contributing.texi:391
+#: doc/contributing.texi:485
 msgid "If we also wanted GTK+ 3.8.2, this would be packaged as"
-msgstr "Si nous voulons aussi GTK+ 3.8.2, cela serait inclus de cette manière :"
+msgstr "Si nous voulons aussi GTK+ 3.8.2, cela serait inclus de cette manière"
 
-#. type: example
-#: doc/contributing.texi:397
+#. type: lisp
+#: doc/contributing.texi:491
 #, no-wrap
 msgid ""
 "(define-public gtk+-3.8\n"
@@ -704,23 +944,23 @@ msgstr ""
 "    ...))\n"
 
 #. type: cindex
-#: doc/contributing.texi:401
+#: doc/contributing.texi:495
 #, no-wrap
 msgid "version number, for VCS snapshots"
 msgstr "numéro de version, pour les instantanés des systèmes de contrôle de version"
 
 #. type: Plain text
-#: doc/contributing.texi:407
+#: doc/contributing.texi:501
 msgid "Occasionally, we package snapshots of upstream's version control system (VCS) instead of formal releases.  This should remain exceptional, because it is up to upstream developers to clarify what the stable release is.  Yet, it is sometimes necessary.  So, what should we put in the @code{version} field?"
 msgstr "Parfois, nous incluons des paquets provenant d'instantanés de systèmes de contrôle de version (VCS) au lieu de versions publiées formellement.  Cela devrait rester exceptionnel, car c'est le rôle des développeurs amont de spécifier quel est la version stable.  Cependant, c'est parfois nécessaire.  Donc, que faut-il mettre dans le champ @code{version} ?"
 
 #. type: Plain text
-#: doc/contributing.texi:415
+#: doc/contributing.texi:509
 msgid "Clearly, we need to make the commit identifier of the VCS snapshot visible in the version string, but we also need to make sure that the version string is monotonically increasing so that @command{guix package --upgrade} can determine which version is newer.  Since commit identifiers, notably with Git, are not monotonically increasing, we add a revision number that we increase each time we upgrade to a newer snapshot.  The resulting version string looks like this:"
 msgstr "Clairement, nous devons rendre l'identifiant de commit de l'instantané du VCS visible dans la version, mais nous devons aussi nous assurer que la version augmente de manière monotone pour que @command{guix package --upgrade} puisse déterminer quelle version est la plus récente.  Comme les identifiants de commits, notamment avec Git, n'augmentent pas, nous ajoutons un numéro de révision qui nous augmentons à chaque fois que nous mettons à jour vers un nouvel instantané.  La chaîne qui en résulte ressemble à cela :"
 
 #. type: example
-#: doc/contributing.texi:424
+#: doc/contributing.texi:518
 #, no-wrap
 msgid ""
 "2.0.11-3.cabba9e\n"
@@ -740,12 +980,12 @@ msgstr ""
 "dernière version en amont\n"
 
 #. type: Plain text
-#: doc/contributing.texi:433
-msgid "It is a good idea to strip commit identifiers in the @code{version} field to, say, 7 digits.  It avoids an aesthetic annoyance (assuming aesthetics have a role to play here) as well as problems related to OS limits such as the maximum shebang length (127 bytes for the Linux kernel.)  It is best to use the full commit identifiers in @code{origin}s, though, to avoid ambiguities.  A typical package definition may look like this:"
-msgstr "C'est une bonne idée de tronquer les identifiants dans le champ @code{version} à disons 7 caractères.  Cela évite un problème esthétique (en supposant que l'esthétique ait un rôle à jouer ici) et des problèmes avec les limites de l'OS comme la longueur maximale d'un shebang (127 octets pour le noyau Linux).  Il vaut mieux utilise l'identifiant de commit complet dans @code{origin} cependant, pour éviter les ambiguïtés.  Une définition de paquet peut ressembler à ceci :"
+#: doc/contributing.texi:527
+msgid "It is a good idea to strip commit identifiers in the @code{version} field to, say, 7 digits.  It avoids an aesthetic annoyance (assuming aesthetics have a role to play here) as well as problems related to OS limits such as the maximum shebang length (127 bytes for the Linux kernel).  It is best to use the full commit identifiers in @code{origin}s, though, to avoid ambiguities.  A typical package definition may look like this:"
+msgstr "C'est une bonne idée de tronquer les identifiants dans le champ @code{version} à disons 7 caractères.  Celà évite un problème esthétique (en supposant que l'esthétique ait un rôle à jouer ici) et des problèmes avec les limites de l'OS comme la longueur maximale d'un shebang (127 octets pour le noyau Linux).  Il vaut mieux cependant utiliser l'identifiant de commit complet dans @code{origin}, pour éviter les ambiguïtés.  Une définition de paquet peut ressembler à ceci :"
 
-#. type: example
-#: doc/contributing.texi:449
+#. type: lisp
+#: doc/contributing.texi:543
 #, no-wrap
 msgid ""
 "(define my-package\n"
@@ -779,60 +1019,60 @@ msgstr ""
 "      )))\n"
 
 #. type: cindex
-#: doc/contributing.texi:454
+#: doc/contributing.texi:548
 #, no-wrap
 msgid "package description"
 msgstr "description du paquet"
 
 #. type: cindex
-#: doc/contributing.texi:455
+#: doc/contributing.texi:549
 #, no-wrap
 msgid "package synopsis"
 msgstr "résumé du paquet"
 
 #. type: Plain text
-#: doc/contributing.texi:462
+#: doc/contributing.texi:556
 msgid "As we have seen before, each package in GNU@tie{}Guix includes a synopsis and a description (@pxref{Defining Packages}).  Synopses and descriptions are important: They are what @command{guix package --search} searches, and a crucial piece of information to help users determine whether a given package suits their needs.  Consequently, packagers should pay attention to what goes into them."
 msgstr "Comme nous l'avons vu avant, chaque paquet dans GNU@tie{}Guix contient un résumé et une description (@pxref{Defining Packages}).  Les résumés et les descriptions sont importants : ce sont eux que recherche @command{guix package --search}, et c'est une source d'informations cruciale pour aider les utilisateur·rice·s à déterminer si un paquet donné correspond à leurs besoins.  En conséquence, il convient de prêter attention à leur contenu lorsqu'on travaille sur un paquet."
 
 #. type: Plain text
-#: doc/contributing.texi:470
+#: doc/contributing.texi:564
 msgid "Synopses must start with a capital letter and must not end with a period.  They must not start with ``a'' or ``the'', which usually does not bring anything; for instance, prefer ``File-frobbing tool'' over ``A tool that frobs files''.  The synopsis should say what the package is---e.g., ``Core GNU utilities (file, text, shell)''---or what it is used for---e.g., the synopsis for GNU@tie{}grep is ``Print lines matching a pattern''."
 msgstr "Les résumés doivent commencer par une lettre capitale et ne doit pas finir par un point.  Ils ne doivent pas commencer par « a » ou « the » (« un » ou « le/la »), ce qui n'apporte généralement rien ; par exemple, préférez « File-frobbing tool » (« Outil de frobage de fichier ») à « A tool that frobs file » (« Un outil qui frobe les fichiers »).  Le résumé devrait dire ce que le paquet est — p.@: ex.@: « Utilitaire du cœur de GNU (fichier, text, shell) » — ou ce à quoi il sert — p.@: ex.@: le résumé de grep est « Affiche des lignes correspondant à un motif »."
 
 #. type: Plain text
-#: doc/contributing.texi:480
+#: doc/contributing.texi:574
 msgid "Keep in mind that the synopsis must be meaningful for a very wide audience.  For example, ``Manipulate alignments in the SAM format'' might make sense for a seasoned bioinformatics researcher, but might be fairly unhelpful or even misleading to a non-specialized audience.  It is a good idea to come up with a synopsis that gives an idea of the application domain of the package.  In this example, this might give something like ``Manipulate nucleotide sequence alignments'', which hopefully gives the user a better idea of whether this is what they are looking for."
 msgstr "Gardez à l'esprit que le résumé doit avoir un sens pour une large audience.  Par exemple « Manipulation d'alignements au format SAM » peut avoir du sens pour un bioinformaticien chevronné, mais n'aidera pas ou pourra perdre une audience de non-spécialistes.  C'est une bonne idée de créer un résumé qui donne une idée du domaine d'application du paquet.  Dans cet exemple, cela donnerait « Manipulation d'alignements de séquences de nucléotides », ce qui devrait donner une meilleure idée à la personne qui le lit pour savoir si c'est ce qu'elle recherche."
 
 #. type: Plain text
-#: doc/contributing.texi:488
+#: doc/contributing.texi:582
 msgid "Descriptions should take between five and ten lines.  Use full sentences, and avoid using acronyms without first introducing them.  Please avoid marketing phrases such as ``world-leading'', ``industrial-strength'', and ``next-generation'', and avoid superlatives like ``the most advanced''---they are not helpful to users looking for a package and may even sound suspicious.  Instead, try to be factual, mentioning use cases and features."
 msgstr "Les descriptions devraient faire entre cinq et dix lignes.  Utilisez des phrases complètes, et évitez d'utiliser des acronymes sans les introduire d'abord.  Évitez les phrases marketings comme « world-leading », « industrial-strength » et « next-generation » et évitez les superlatifs comme « the most advanced » — ils ne sont pas utiles aux personnes qui cherchent un paquet et semblent même un peu suspects.  À la place, essayez d'être factuels, en mentionnant les cas d'utilisation et les fonctionnalités."
 
 #. type: cindex
-#: doc/contributing.texi:489
+#: doc/contributing.texi:583
 #, no-wrap
 msgid "Texinfo markup, in package descriptions"
-msgstr "balisage texinfo, dans les descriptions de paquets"
+msgstr "Balisage texinfo, dans les descriptions de paquets"
 
 #. type: Plain text
-#: doc/contributing.texi:498
+#: doc/contributing.texi:592
 msgid "Descriptions can include Texinfo markup, which is useful to introduce ornaments such as @code{@@code} or @code{@@dfn}, bullet lists, or hyperlinks (@pxref{Overview,,, texinfo, GNU Texinfo}).  However you should be careful when using some characters for example @samp{@@} and curly braces which are the basic special characters in Texinfo (@pxref{Special Characters,,, texinfo, GNU Texinfo}).  User interfaces such as @command{guix package --show} take care of rendering it appropriately."
 msgstr "Les descriptions peuvent inclure du balisage Texinfo, ce qui est utile pour introduire des ornements comme @code{@@code} ou @code{@@dfn}, des listes à points ou des hyperliens (@pxref{Overview,,, texinfo, GNU Texinfo}).  Cependant soyez prudents lorsque vous utilisez certains symboles, par exemple @samp{@@} et les accolades qui sont les caractères spéciaux de base en Texinfo (@pxref{Special Characters,,, texinfo, GNU Texinfo}).  Les commandes et outils comme @command{guix package --show} prennent en charge le rendu."
 
 #. type: Plain text
-#: doc/contributing.texi:504
-msgid "Synopses and descriptions are translated by volunteers @uref{http://translationproject.org/domain/guix-packages.html, at the Translation Project} so that as many users as possible can read them in their native language.  User interfaces search them and display them in the language specified by the current locale."
-msgstr "Les résumés et les descriptions sont traduits par des volontaires @uref{http://translationproject.org/domain/guix-packages.html, sur le projet de traduction} pour que le plus de personnes possible puissent les lire dans leur langue natale.  Les interfaces les recherchent et les affichent dans la langue spécifiée par le paramètre de régionalisation actuel."
+#: doc/contributing.texi:598
+msgid "Synopses and descriptions are translated by volunteers @uref{https://translationproject.org/domain/guix-packages.html, at the Translation Project} so that as many users as possible can read them in their native language.  User interfaces search them and display them in the language specified by the current locale."
+msgstr "Les résumés et les descriptions sont traduits par des volontaires @uref{https://translationproject.org/domain/guix-packages.html, sur le projet de traduction} pour que le plus de personnes possible puissent les lire dans leur langue natale.  Les interfaces les recherchent et les affichent dans la langue spécifiée par le paramètre de régionalisation actuel."
 
 #. type: Plain text
-#: doc/contributing.texi:509
+#: doc/contributing.texi:603
 msgid "To allow @command{xgettext} to extract them as translatable strings, synopses and descriptions @emph{must be literal strings}.  This means that you cannot use @code{string-append} or @code{format} to construct these strings:"
 msgstr "Pour permettre à @command{xgettext} de les extraire comme des chaînes traduisibles, les résumés et les descriptions @emph{doivent être des chaînes litérales}.  Cela signifie que vous ne pouvez pas utiliser @code{string-append} ou @code{format} pour construire ces chaînes :"
 
 #. type: lisp
-#: doc/contributing.texi:515
+#: doc/contributing.texi:609
 #, no-wrap
 msgid ""
 "(package\n"
@@ -846,12 +1086,12 @@ msgstr ""
 "  (description (string-append \"Ceci n'est \" \"*pas*\" \" traduisible.\")))\n"
 
 #. type: Plain text
-#: doc/contributing.texi:523
+#: doc/contributing.texi:617
 msgid "Translation is a lot of work so, as a packager, please pay even more attention to your synopses and descriptions as every change may entail additional work for translators.  In order to help them, it is possible to make recommendations or instructions visible to them by inserting special comments like this (@pxref{xgettext Invocation,,, gettext, GNU Gettext}):"
 msgstr "La traduction demande beaucoup de travail, faites donc d'autant plus attention à vos résumés et descriptions lorsque vous développez un paquet car chaque changement peut demander du de travail de la part des traducteur·rice·s.  Pour les aider, il est possible de donner des recommandations ou des instructions qu'ils et elles pourront voir en insérant des commentaires spéciaux comme ceci (@pxref{xgettext Invocation,,, gettext, GNU Gettext}) :"
 
-#. type: example
-#: doc/contributing.texi:528
+#. type: lisp
+#: doc/contributing.texi:622
 #, no-wrap
 msgid ""
 ";; TRANSLATORS: \"X11 resize-and-rotate\" should not be translated.\n"
@@ -863,564 +1103,925 @@ msgstr ""
 "for the X11 resize-and-rotate (RandR) extension. @dots{}\")\n"
 
 #. type: cindex
-#: doc/contributing.texi:534
+#: doc/contributing.texi:627
+#, no-wrap
+msgid "snippets, when to use"
+msgstr "substituts, quand les utiliser"
+
+#. type: Plain text
+#: doc/contributing.texi:638
+msgid "The boundary between using an origin snippet versus a build phase to modify the sources of a package can be elusive.  Origin snippets are typically used to remove unwanted files such as bundled libraries, nonfree sources, or to apply simple substitutions.  The source derived from an origin should produce a source that can be used to build the package on any system that the upstream package supports (i.e., act as the corresponding source).  In particular, origin snippets must not embed store items in the sources; such patching should rather be done using build phases.  Refer to the @code{origin} record documentation for more information (@pxref{origin Reference})."
+msgstr ""
+"La frontière entre l'utilisation d'un substitut d'origine et une phase de construction pour modifier les sources d'un paquet peut être difficile à franchir.  Les substituts d'origine sont généralement utilisés pour supprimer des fichiers indésirables tels que des bibliothèques groupées, des sources non libres, ou pour appliquer de simples substitutions.  La source dérivée d'une origine doit produire une source qui peut être utilisée pour construire le paquet sur tout système que le paquet en amont supporte (c'est-à-dire, agir comme source correspondante).  En particulier, les substituts d'origine ne doivent pas incorporer des éléments de stockage dans les sources ; un tel correctif doit plutôt être fait en utilisant des phases de construction.  Pour plus d'informations, veuillez vous référer à la documentation du dossier @code{origin} (@pxref{origin Reference}).\n"
+"\n"
+"Traduit avec www.DeepL.com/Translator (version gratuite)"
+
+#. type: cindex
+#: doc/contributing.texi:642
 #, no-wrap
 msgid "python"
 msgstr "python"
 
 #. type: Plain text
-#: doc/contributing.texi:540
+#: doc/contributing.texi:648
 msgid "We currently package Python 2 and Python 3, under the Scheme variable names @code{python-2} and @code{python} as explained in @ref{Version Numbers}.  To avoid confusion and naming clashes with other programming languages, it seems desirable that the name of a package for a Python module contains the word @code{python}."
 msgstr "Nous incluons actuellement Python 2 et Python 3, sous les noms de variables Scheme @code{python-2} et @code{python} comme expliqué dans @ref{Version Numbers}.  Pour éviter la confusion et les problèmes de noms avec d'autres langages de programmation, il semble désirable que le nom d'un paquet pour un module Python contienne le mot @code{python}."
 
 #. type: Plain text
-#: doc/contributing.texi:546
-msgid "Some modules are compatible with only one version of Python, others with both.  If the package Foo compiles only with Python 3, we name it @code{python-foo}; if it compiles only with Python 2, we name it @code{python2-foo}. If it is compatible with both versions, we create two packages with the corresponding names."
-msgstr "Certains modules ne sont compatibles qu'avec une version de Python, d'autres avec les deux.  Si le paquet Foo ne compile qu'avec Ptyhon 3, on le nomme @code{python-foo} ; s'il ne compile qu'avec Python 2, on le nome @code{python2-foo}.  S'il est compatible avec les deux versions, nous créons deux paquets avec les noms correspondant."
+#: doc/contributing.texi:655
+msgid "Some modules are compatible with only one version of Python, others with both.  If the package Foo is compiled with Python 3, we name it @code{python-foo}.  If it is compiled with Python 2, we name it @code{python2-foo}.  Packages should be added when they are necessary; we don't add Python 2 variants of the package unless we are going to use them."
+msgstr "Certains modules ne sont compatibles qu'avec une version de Python, d'autres avec les deux.  Si le paquet Foo ne compile qu'avec Ptyhon 3, on le nomme @code{python-foo}.  S'il est compilé avec Python 2, on le nome @code{python2-foo}.  Les paquets ne devraient être ajoutés que lorsqu'ils sont nécessaires ; nous n'ajoutons pas les variantes Python 2 du paquet à moins qu'on ne les utilise ensuite."
 
 #. type: Plain text
-#: doc/contributing.texi:552
+#: doc/contributing.texi:661
 msgid "If a project already contains the word @code{python}, we drop this; for instance, the module python-dateutil is packaged under the names @code{python-dateutil} and @code{python2-dateutil}.  If the project name starts with @code{py} (e.g.@: @code{pytz}), we keep it and prefix it as described above."
 msgstr "Si un projet contient déjà le mot @code{python}, on l'enlève, par exemple le module python-dateutil est packagé sous les noms @code{python-dateutil} et @code{python2-dateutil}.  Si le nom du projet commence par @code{py} (p.@: ex.@: @code{pytz}), on le garde et on le préfixe comme décrit ci-dessus."
 
 #. type: subsubsection
-#: doc/contributing.texi:553
+#: doc/contributing.texi:662
 #, no-wrap
 msgid "Specifying Dependencies"
 msgstr "Spécifier les dépendances"
 
 #. type: cindex
-#: doc/contributing.texi:554
+#: doc/contributing.texi:663
 #, no-wrap
 msgid "inputs, for Python packages"
 msgstr "entrées, pour les paquets Python"
 
 #. type: Plain text
-#: doc/contributing.texi:559
+#: doc/contributing.texi:668
 msgid "Dependency information for Python packages is usually available in the package source tree, with varying degrees of accuracy: in the @file{setup.py} file, in @file{requirements.txt}, or in @file{tox.ini}."
 msgstr "Les informations de dépendances pour les paquets Python se trouvent généralement dans l'arborescence des source du paquet, avec plus ou moins de précision : dans le fichier @file{setup.py}, dans @file{requirements.txt} ou dans @file{tox.ini}."
 
 #. type: Plain text
-#: doc/contributing.texi:565
+#: doc/contributing.texi:674
 msgid "Your mission, when writing a recipe for a Python package, is to map these dependencies to the appropriate type of ``input'' (@pxref{package Reference, inputs}).  Although the @code{pypi} importer normally does a good job (@pxref{Invoking guix import}), you may want to check the following check list to determine which dependency goes where."
 msgstr "Votre mission, lorsque vous écrivez une recette pour un paquet Python, est de faire correspondre ces dépendances au bon type « d'entrée » (@pxref{package Reference, inputs}).  Bien que l'importeur @code{pypi} fasse du bon boulot (@pxref{Invoking guix import}), vous devriez vérifier la liste suivant pour déterminer où va telle dépendance."
 
 #. type: itemize
-#: doc/contributing.texi:573
+#: doc/contributing.texi:682
 msgid "We currently package Python 2 with @code{setuptools} and @code{pip} installed like Python 3.4 has per default.  Thus you don't need to specify either of these as an input.  @command{guix lint} will warn you if you do."
 msgstr "Nous empaquetons Python 2 avec @code{setuptools} et @code{pip} installé comme Python 3.4 par défaut.  Ainsi, vous n'avez pas à spécifié ces entrées.  @command{guix lint} vous avertira si vous faîtes cela."
 
 #. type: itemize
-#: doc/contributing.texi:579
+#: doc/contributing.texi:688
 msgid "Python dependencies required at run time go into @code{propagated-inputs}.  They are typically defined with the @code{install_requires} keyword in @file{setup.py}, or in the @file{requirements.txt} file."
 msgstr "Les dépendances Python requises à l'exécutions vont dans @code{propagated-inputs}.  Elles sont typiquement définies dans le mot-clef @code{install_requires} dans @file{setup.py} ou dans le fichier @file{requirements.txt}."
 
 #. type: itemize
-#: doc/contributing.texi:587
+#: doc/contributing.texi:696
 msgid "Python packages required only at build time---e.g., those listed with the @code{setup_requires} keyword in @file{setup.py}---or only for testing---e.g., those in @code{tests_require}---go into @code{native-inputs}.  The rationale is that (1) they do not need to be propagated because they are not needed at run time, and (2) in a cross-compilation context, it's the ``native'' input that we'd want."
 msgstr "Les paquets Python requis uniquement à la construction — p.@: ex.@: ceux listés dans le mot-clef @code{setup_requires} de @file{setup.py} — ou seulement pour les tests — p.@: ex.@: ceux dans @code{tests_require} — vont dans @code{native-inputs}.  La raison est qu'ils n'ont pas besoin d'être propagés car ils ne sont pas requis à l'exécution et dans le cas d'une compilation croisée, c'est l'entrée « native » qu'il nous faut."
 
 #. type: itemize
-#: doc/contributing.texi:591
+#: doc/contributing.texi:700
 msgid "Examples are the @code{pytest}, @code{mock}, and @code{nose} test frameworks.  Of course if any of these packages is also required at run-time, it needs to go to @code{propagated-inputs}."
 msgstr "Les cadriciels de tests @code{pytest}, @code{mock} et @code{nose} sont des exemples.  Bien sûr si l'un de ces paquets est aussi requis à l'exécution, il doit aller dans @code{propagated-inputs}."
 
 #. type: itemize
-#: doc/contributing.texi:596
+#: doc/contributing.texi:705
 msgid "Anything that does not fall in the previous categories goes to @code{inputs}, for example programs or C libraries required for building Python packages containing C extensions."
 msgstr "Tout ce qui ne tombe pas dans les catégories précédentes va dans @code{inputs}, par exemple des programmes pour des bibliothèques C requises pour construire des paquets Python avec des extensions C."
 
 #. type: itemize
-#: doc/contributing.texi:602
+#: doc/contributing.texi:711
 msgid "If a Python package has optional dependencies (@code{extras_require}), it is up to you to decide whether to add them or not, based on their usefulness/overhead ratio (@pxref{Submitting Patches, @command{guix size}})."
 msgstr "Si un paquet Python a des dépendances facultatives (@code{extras_require}), c'est à vous de décider de les ajouter ou non, en fonction du ratio entre utilité et complexité (@pxref{Submitting Patches, @command{guix size}})."
 
 #. type: cindex
-#: doc/contributing.texi:609
+#: doc/contributing.texi:718
 #, no-wrap
 msgid "perl"
 msgstr "perl"
 
 #. type: Plain text
-#: doc/contributing.texi:620
+#: doc/contributing.texi:729
 msgid "Perl programs standing for themselves are named as any other package, using the lowercase upstream name.  For Perl packages containing a single class, we use the lowercase class name, replace all occurrences of @code{::} by dashes and prepend the prefix @code{perl-}.  So the class @code{XML::Parser} becomes @code{perl-xml-parser}.  Modules containing several classes keep their lowercase upstream name and are also prepended by @code{perl-}.  Such modules tend to have the word @code{perl} somewhere in their name, which gets dropped in favor of the prefix.  For instance, @code{libwww-perl} becomes @code{perl-libwww}."
 msgstr "Les programmes Perl utiles en soit sont nommés comme les autres paquets, avec le nom amont en minuscule.  Pour les paquets Perl contenant une seule classe, nous utilisons le nom de la classe en minuscule, en remplaçant les occurrences de @code{::} par des tirets et en préfixant le tout par @code{perl-}.  Donc la classe @code{XML::Parser} devient @code{perl-xml-parser}.  Les modules contenant plusieurs classes gardent leur nom amont en minuscule et sont aussi préfixés par @code{perl-}.  Ces modules tendent à avoir le mot @code{perl} quelque part dans leur nom, que nous supprimons en faveur du préfixe.  Par exemple, @code{libwww-perl} devient @code{perl-libwww}."
 
 #. type: cindex
-#: doc/contributing.texi:625
+#: doc/contributing.texi:734
 #, no-wrap
 msgid "java"
 msgstr "java"
 
 #. type: Plain text
-#: doc/contributing.texi:628
+#: doc/contributing.texi:737
 msgid "Java programs standing for themselves are named as any other package, using the lowercase upstream name."
 msgstr "Le programmes Java utiles en soit sont nommés comme les autres paquets, avec le nom amont en minuscule."
 
 #. type: Plain text
-#: doc/contributing.texi:634
+#: doc/contributing.texi:743
 msgid "To avoid confusion and naming clashes with other programming languages, it is desirable that the name of a package for a Java package is prefixed with @code{java-}.  If a project already contains the word @code{java}, we drop this; for instance, the package @code{ngsjava} is packaged under the name @code{java-ngs}."
 msgstr "Pour éviter les confusions et les problèmes de nom avec d'autres langages de programmation, il est désirable que le nom d'un paquet Java soit préfixé par @code{java-}.  Si un projet contient déjà le mot @code{java}, nous le supprimons, par exemple le paquet @code{ngsjava} est empaqueté sous le nom @code{java-ngs}."
 
 #. type: Plain text
-#: doc/contributing.texi:640
+#: doc/contributing.texi:749
 msgid "For Java packages containing a single class or a small class hierarchy, we use the lowercase class name, replace all occurrences of @code{.} by dashes and prepend the prefix @code{java-}.  So the class @code{apache.commons.cli} becomes package @code{java-apache-commons-cli}."
 msgstr "Pour les paquets java contenant une seul classe ou une petite hiérarchie de classes, nous utilisons le nom de la classe en minuscule, en remplaçant les occurrences de @code{.} par des tirets et en préfixant le tout par @code{java-}.  Donc la classe @code{apache.commons.cli} devient @code{java-apache-commons-cli}."
 
 #. type: cindex
-#: doc/contributing.texi:645 doc/guix.texi:1665
+#: doc/contributing.texi:754
+#, no-wrap
+msgid "rust"
+msgstr "rust"
+
+#. type: Plain text
+#: doc/contributing.texi:757
+msgid "Rust programs standing for themselves are named as any other package, using the lowercase upstream name."
+msgstr "Le programmes Rust utiles en soit sont nommés comme les autres paquets, avec le nom amont en minuscule."
+
+#. type: Plain text
+#: doc/contributing.texi:761
+msgid "To prevent namespace collisions we prefix all other Rust packages with the @code{rust-} prefix.  The name should be changed to lowercase as appropriate and dashes should remain in place."
+msgstr "Pour éviter des collisions de noms nous préfixons les autres paquets avec le préfixe @code{rust-}.  Vous devrez changer le nom en minuscule et garder les tirets en place."
+
+#. type: Plain text
+#: doc/contributing.texi:767
+msgid "In the rust ecosystem it is common for multiple incompatible versions of a package to be used at any given time, so all packages should have a versioned suffix.  If a package has passed version 1.0.0 then just the major version number is sufficient (e.g.@: @code{rust-clap-2}), otherwise the version suffix should contain both the major and minor version (e.g.@: @code{rust-rand-0.6})."
+msgstr "Dans l'écosystème rust il est courant d'avoir plusieurs versions incompatibles d'un paquet utilisées en même temps, donc tous les paquets devraient avoir un suffixe de version.  Si un paquet a passé la version 1.0.0, seul le numéro de version est suffisant (p.@: ex.@: @code{rust-clap-2}), sinon le suffixe de version devrait contenir à la fois la version majeure et mineure (p.@: ex.@: @code{rust-rand-0.6})."
+
+#. type: Plain text
+#: doc/contributing.texi:777
+msgid "Because of the difficulty in reusing rust packages as pre-compiled inputs for other packages the Cargo build system (@pxref{Build Systems, @code{cargo-build-system}}) presents the @code{#:cargo-inputs} and @code{cargo-development-inputs} keywords as build system arguments.  It would be helpful to think of these as similar to @code{propagated-inputs} and @code{native-inputs}.  Rust @code{dependencies} and @code{build-dependencies} should go in @code{#:cargo-inputs}, and @code{dev-dependencies} should go in @code{#:cargo-development-inputs}.  If a Rust package links to other libraries then the standard placement in @code{inputs} and the like should be used."
+msgstr "À cause de la difficulté à réutiliser des paquets rust en entrées précompilées pour d'autres paquets, le systèmes de construction Cargo (@pxref{Build Systems, @code{cargo-build-system}}) présente les mots-clefs @code{#:cargo-inputs} et @code{cargo-development-inputs} en argument du système de construction.  Vous pouvez y penser comme les équivalents de @code{propagated-inputs} et @code{native-inputs}.  Les @code{dependencies} et @code{build-dependencies} de Rust devraient aller dans @code{#:cargo-inputs} et @code{dev-dependencies} dans @code{#:cargo-development-inputs}.  Si un paquet Rust se lie à d'autres bibliothèques alors vous devriez utiliser l'emplacement @code{inputs} standard et compagnie."
+
+#. type: Plain text
+#: doc/contributing.texi:783
+msgid "Care should be taken to ensure the correct version of dependencies are used; to this end we try to refrain from skipping the tests or using @code{#:skip-build?} when possible.  Of course this is not always possible, as the package may be developed for a different Operating System, depend on features from the Nightly Rust compiler, or the test suite may have atrophied since it was released."
+msgstr "Vous devriez faire attention à vous assurer que la bonne version des dépendances est utilisée ; pour cela nous essayons d'éviter de passer les tests ou d'utiliser @code{#:skip-build?} lorsque c'est possible.  Bien sûr ce n'est pas toujours possible, comme le paquet peut être développé sur un autre système d'exploitation, dépendre d'une fonctionnalité du compilateur Rust Nightly ou la suite de test atrophiée depuis la sortie."
+
+#. type: cindex
+#: doc/contributing.texi:788 doc/guix.texi:1784
 #, no-wrap
 msgid "fonts"
 msgstr "polices"
 
 #. type: Plain text
-#: doc/contributing.texi:651
+#: doc/contributing.texi:794
 msgid "For fonts that are in general not installed by a user for typesetting purposes, or that are distributed as part of a larger software package, we rely on the general packaging rules for software; for instance, this applies to the fonts delivered as part of the X.Org system or fonts that are part of TeX Live."
 msgstr "Pour les polices qui ne sont en général pas installées pour être utilisées pour du traitement de texte, ou qui sont distribuées en tant que partie d'un paquet logiciel plus gros, nous nous appuyons sur les règles générales pour les logiciels ; par exemple, cela s'applique aux polices livrées avec le système X.Org ou les polices qui font partie de TeX Live."
 
 #. type: Plain text
-#: doc/contributing.texi:655
+#: doc/contributing.texi:798
 msgid "To make it easier for a user to search for fonts, names for other packages containing only fonts are constructed as follows, independently of the upstream package name."
 msgstr "Pour rendre plus facile la recherche par l'utilisatrice ou l'utilisateur, les noms des autres paquets contenant seulement des polices sont construits ainsi, indépendamment du nom du paquet en amont."
 
 #. type: Plain text
-#: doc/contributing.texi:663
+#: doc/contributing.texi:806
 msgid "The name of a package containing only one font family starts with @code{font-}; it is followed by the foundry name and a dash @code{-} if the foundry is known, and the font family name, in which spaces are replaced by dashes (and as usual, all upper case letters are transformed to lower case).  For example, the Gentium font family by SIL is packaged under the name @code{font-sil-gentium}."
 msgstr "Le nom d'un paquet contenant une unique famille de polices commence par @code{font-} ; il est suivi du nom du fondeur et d'un tiret @code{-} si le fondeur est connu, et du nom de la police, dont les espaces sont remplacés par des tirets (et comme d'habitude, toutes les lettres majuscules sont transformées en minuscules).  Par exemple, la famille de polices Gentium de SIL est empaqueté sous le nom @code{font-sil-gentium}."
 
 #. type: Plain text
-#: doc/contributing.texi:672
+#: doc/contributing.texi:815
 msgid "For a package containing several font families, the name of the collection is used in the place of the font family name.  For instance, the Liberation fonts consist of three families, Liberation Sans, Liberation Serif and Liberation Mono.  These could be packaged separately under the names @code{font-liberation-sans} and so on; but as they are distributed together under a common name, we prefer to package them together as @code{font-liberation}."
 msgstr "Pour un paquet contenant plusieurs familles de polices, le nom de la collection est utilisée à la place du nom de la famille.  Par exemple les polices Liberation consistent en trois familles, Liberation Sans, Liberation Serif et Liberation Mono.  Elles pourraient être empaquetées séparément sous les noms @code{font-liberation-sans} etc, mais comme elles sont distribuées ensemble sous un nom commun, nous préférons les empaqueter ensemble en tant que @code{font-liberation}."
 
 #. type: Plain text
-#: doc/contributing.texi:678
+#: doc/contributing.texi:821
 msgid "In the case where several formats of the same font family or font collection are packaged separately, a short form of the format, prepended by a dash, is added to the package name.  We use @code{-ttf} for TrueType fonts, @code{-otf} for OpenType fonts and @code{-type1} for PostScript Type 1 fonts."
 msgstr "Dans le cas où plusieurs formats de la même famille ou collection sont empaquetés séparément, une forme courte du format, préfixé d'un tiret est ajouté au nom du paquet.  Nous utilisont @code{-ttf} pour les polices TrueType, @code{-otf} pour les polices OpenType et @code{-type1} pour les polices Type 1 de PostScript."
 
 #. type: Plain text
-#: doc/contributing.texi:686
+#: doc/contributing.texi:829
 msgid "In general our code follows the GNU Coding Standards (@pxref{Top,,, standards, GNU Coding Standards}).  However, they do not say much about Scheme, so here are some additional rules."
 msgstr "En général notre code suit le Standard de Code GNU (@pxref{Top,,, standards, GNU Coding Standards}).  Cependant, il ne parle pas beaucoup de Scheme, donc voici quelques règles supplémentaires."
 
 #. type: subsection
-#: doc/contributing.texi:692 doc/contributing.texi:694
-#: doc/contributing.texi:695
+#: doc/contributing.texi:835 doc/contributing.texi:837
+#: doc/contributing.texi:838
 #, no-wrap
 msgid "Programming Paradigm"
 msgstr "Paradigme de programmation"
 
 #. type: menuentry
-#: doc/contributing.texi:692
+#: doc/contributing.texi:835
 msgid "How to compose your elements."
 msgstr "Comment composer vos éléments."
 
 #. type: subsection
-#: doc/contributing.texi:692 doc/contributing.texi:701
-#: doc/contributing.texi:702
+#: doc/contributing.texi:835 doc/contributing.texi:844
+#: doc/contributing.texi:845
 #, no-wrap
 msgid "Modules"
 msgstr "Modules"
 
 #. type: menuentry
-#: doc/contributing.texi:692
+#: doc/contributing.texi:835
 msgid "Where to store your code?"
 msgstr "Où stocker votre code ?"
 
 #. type: subsection
-#: doc/contributing.texi:692 doc/contributing.texi:712
-#: doc/contributing.texi:713
+#: doc/contributing.texi:835 doc/contributing.texi:855
+#: doc/contributing.texi:856
 #, no-wrap
 msgid "Data Types and Pattern Matching"
 msgstr "Types de données et reconnaissance de motif"
 
 #. type: menuentry
-#: doc/contributing.texi:692
+#: doc/contributing.texi:835
 msgid "Implementing data structures."
 msgstr "Implémenter des structures de données."
 
 #. type: subsection
-#: doc/contributing.texi:692 doc/contributing.texi:726
-#: doc/contributing.texi:727
+#: doc/contributing.texi:835 doc/contributing.texi:869
+#: doc/contributing.texi:870
 #, no-wrap
 msgid "Formatting Code"
 msgstr "Formatage du code"
 
 #. type: menuentry
-#: doc/contributing.texi:692
+#: doc/contributing.texi:835
 msgid "Writing conventions."
 msgstr "Conventions d'écriture."
 
 #. type: Plain text
-#: doc/contributing.texi:700
+#: doc/contributing.texi:843
 msgid "Scheme code in Guix is written in a purely functional style.  One exception is code that involves input/output, and procedures that implement low-level concepts, such as the @code{memoize} procedure."
 msgstr "Le code Scheme dans Guix est écrit dans un style purement fonctionnel.  Le code qui s'occupe des entrées-sorties est une exception ainsi que les procédures qui implémentent des concepts bas-niveau comme la procédure @code{memoize}."
 
 #. type: Plain text
-#: doc/contributing.texi:708
+#: doc/contributing.texi:851
 msgid "Guile modules that are meant to be used on the builder side must live in the @code{(guix build @dots{})} name space.  They must not refer to other Guix or GNU modules.  However, it is OK for a ``host-side'' module to use a build-side module."
 msgstr "Les modules Guile qui sont sensés être utilisés du côté de la construction doivent se trouver dans l'espace de nom @code{(guix build @dots{})}.  Ils ne doivent pas se référer à d'autres modules Guix ou GNU@.  Cependant il est correct pour un module « côté hôte » de dépendre d'un module coté construction."
 
 #. type: Plain text
-#: doc/contributing.texi:711
+#: doc/contributing.texi:854
 msgid "Modules that deal with the broader GNU system should be in the @code{(gnu @dots{})} name space rather than @code{(guix @dots{})}."
 msgstr "Les modules qui s'occupent du système GNU général devraient se trouver dans l'espace de nom @code{(gnu @dots{})} plutôt que @code{(guix @dots{})}."
 
 #. type: Plain text
-#: doc/contributing.texi:720
+#: doc/contributing.texi:863
 msgid "The tendency in classical Lisp is to use lists to represent everything, and then to browse them ``by hand'' using @code{car}, @code{cdr}, @code{cadr}, and co.  There are several problems with that style, notably the fact that it is hard to read, error-prone, and a hindrance to proper type error reports."
 msgstr "La tendance en Lisp classique est d'utiliser des listes pour tout représenter et de naviguer dedans « à la main ( avec @code{car}, @code{cdr}, @code{cadr} et compagnie.  Il y a plusieurs problèmes avec ce style, notamment le fait qu'il soit dur à lire, source d'erreur et un obstacle aux rapports d'erreur bien typés."
 
 #. type: Plain text
-#: doc/contributing.texi:725
+#: doc/contributing.texi:868
 msgid "Guix code should define appropriate data types (for instance, using @code{define-record-type*}) rather than abuse lists.  In addition, it should use pattern matching, via Guile’s @code{(ice-9 match)} module, especially when matching lists."
 msgstr "Le code de Guix devrait définir des types de données appropriées (par exemple, avec @code{define-record-type*}) plutôt que d'abuser des listes.  En plus, il devrait utiliser la recherche de motifs, via le module Guile @code{(ice-9 match)}, surtout pour rechercher dans des listes."
 
 #. type: cindex
-#: doc/contributing.texi:729
+#: doc/contributing.texi:872
 #, no-wrap
 msgid "formatting code"
 msgstr "formater le code"
 
 #. type: cindex
-#: doc/contributing.texi:730
+#: doc/contributing.texi:873
 #, no-wrap
 msgid "coding style"
 msgstr "style de code"
 
 #. type: Plain text
-#: doc/contributing.texi:737
-msgid "When writing Scheme code, we follow common wisdom among Scheme programmers.  In general, we follow the @url{http://mumble.net/~campbell/scheme/style.txt, Riastradh's Lisp Style Rules}.  This document happens to describe the conventions mostly used in Guile’s code too.  It is very thoughtful and well written, so please do read it."
-msgstr "Lorsque nous écrivons du code Scheme, nous suivons la sagesse commune aux programmeurs Scheme.  En général, nous suivons les @url{http://mumble.net/~campbell/scheme/style.txt, règles de style de Riastradh}.  Ce document décrit aussi les conventions utilisées dans le code de Guile.  Il est bien pensé et bien écrit, alors n'hésitez pas à le lire."
+#: doc/contributing.texi:880
+msgid "When writing Scheme code, we follow common wisdom among Scheme programmers.  In general, we follow the @url{https://mumble.net/~campbell/scheme/style.txt, Riastradh's Lisp Style Rules}.  This document happens to describe the conventions mostly used in Guile’s code too.  It is very thoughtful and well written, so please do read it."
+msgstr "Lorsque nous écrivons du code Scheme, nous suivons la sagesse commune aux programmeurs Scheme.  En général, nous suivons les @url{https://mumble.net/~campbell/scheme/style.txt, règles de style de Riastradh}.  Ce document décrit aussi les conventions utilisées dans le code de Guile.  Il est bien pensé et bien écrit, alors n'hésitez pas à le lire."
 
 #. type: Plain text
-#: doc/contributing.texi:744
+#: doc/contributing.texi:887
 msgid "Some special forms introduced in Guix, such as the @code{substitute*} macro, have special indentation rules.  These are defined in the @file{.dir-locals.el} file, which Emacs automatically uses.  Also note that Emacs-Guix provides @code{guix-devel-mode} mode that indents and highlights Guix code properly (@pxref{Development,,, emacs-guix, The Emacs-Guix Reference Manual})."
 msgstr "Certaines formes spéciales introduites dans Guix comme la macro @code{substitute*} ont des règles d'indentation spécifiques.  Elles sont définies dans le fichier @file{.dir-locals.el} qu'Emacs utilise automatiquement.  Remarquez aussi qu'Emacs-Guix fournit le mode @code{guix-devel-mode} qui indente et colore le code Guix correctement (@pxref{Development,,, emacs-guix, The Emacs-Guix Reference Manual})."
 
 #. type: cindex
-#: doc/contributing.texi:745
+#: doc/contributing.texi:888
 #, no-wrap
 msgid "indentation, of code"
 msgstr "indentation, du code"
 
 #. type: cindex
-#: doc/contributing.texi:746
+#: doc/contributing.texi:889
 #, no-wrap
 msgid "formatting, of code"
 msgstr "formatage, du code"
 
 #. type: Plain text
-#: doc/contributing.texi:749
+#: doc/contributing.texi:892
 msgid "If you do not use Emacs, please make sure to let your editor knows these rules.  To automatically indent a package definition, you can also run:"
 msgstr "Si vous n'utilisez pas Emacs, assurez-vous que votre éditeur connaisse ces règles.  Pour indenter automatiquement une définition de paquet, vous pouvez aussi lancer :"
 
 #. type: example
-#: doc/contributing.texi:752
+#: doc/contributing.texi:895
 #, no-wrap
 msgid "./etc/indent-code.el gnu/packages/@var{file}.scm @var{package}\n"
 msgstr "./etc/indent-code.el gnu/packages/@var{file}.scm @var{package}\n"
 
 #. type: Plain text
-#: doc/contributing.texi:758
+#: doc/contributing.texi:901
 msgid "This automatically indents the definition of @var{package} in @file{gnu/packages/@var{file}.scm} by running Emacs in batch mode.  To indent a whole file, omit the second argument:"
 msgstr "Cela indente automatiquement la définition de @var{package} dans @file{gnu/packages/@var{file}.scm} en lançant Emacs en mode commande.  Pour indenter un fichier complet, n'indiquez pas de second argument :"
 
 #. type: example
-#: doc/contributing.texi:761
+#: doc/contributing.texi:904
 #, no-wrap
 msgid "./etc/indent-code.el gnu/services/@var{file}.scm\n"
 msgstr "./etc/indent-code.el gnu/services/@var{file}.scm\n"
 
 #. type: cindex
-#: doc/contributing.texi:763
+#: doc/contributing.texi:906
 #, no-wrap
 msgid "Vim, Scheme code editing"
 msgstr "Vim, édition de code Scheme"
 
 #. type: Plain text
-#: doc/contributing.texi:769
+#: doc/contributing.texi:912
 msgid "If you are editing code with Vim, we recommend that you run @code{:set autoindent} so that your code is automatically indented as you type.  Additionally, @uref{https://www.vim.org/scripts/script.php?script_id=3998, @code{paredit.vim}} may help you deal with all these parentheses."
 msgstr "Si vous éditez du code avec Vim, nous recommandons de lancer @code{:set autoindent} pour que votre code soit automatiquement indenté au moment où vous l'entrez.  En plus, @uref{https://www.vim.org/scripts/script.php?script_id=3998, @code{paredit.vim}} peut vous aider à gérer toutes ces parenthèses."
 
 #. type: Plain text
-#: doc/contributing.texi:773
+#: doc/contributing.texi:916
 msgid "We require all top-level procedures to carry a docstring.  This requirement can be relaxed for simple private procedures in the @code{(guix build @dots{})} name space, though."
 msgstr "Nous demandons que toutes les procédure de premier niveau contiennent une chaîne de documentation.  Ce prérequis peut être relâché pour les procédures privées simples dans l'espace de nom @code{(guix build @dots{})} cependant."
 
 #. type: Plain text
-#: doc/contributing.texi:776
+#: doc/contributing.texi:919
 msgid "Procedures should not have more than four positional parameters.  Use keyword parameters for procedures that take more than four parameters."
-msgstr "Les procédures ne devraient pas avoir plus de quatre paramètres positionnés. Utilisez des paramètres par mot-clefs pour les procédures qui prennent plus de quatre paramètres."
+msgstr "Les procédures ne devraient pas avoir plus de quatre paramètres positionnés. Utilisez des paramètres nommés pour les procédures qui prennent plus de quatre paramètres."
 
 #. type: Plain text
-#: doc/contributing.texi:785
-msgid "Development is done using the Git distributed version control system.  Thus, access to the repository is not strictly necessary.  We welcome contributions in the form of patches as produced by @code{git format-patch} sent to the @email{guix-patches@@gnu.org} mailing list."
-msgstr "Le développement se fait avec le système de contrôle de version Git.  Ainsi, l'accès au dépôt n'est pas strictement nécessaire.  Nous accueillons les contributions sous forme de correctifs produits par @code{git format-patch} envoyés sur la liste de diffusion @email{guix-patches@@gnu.org}."
+#: doc/contributing.texi:930
+msgid "Development is done using the Git distributed version control system.  Thus, access to the repository is not strictly necessary.  We welcome contributions in the form of patches as produced by @code{git format-patch} sent to the @email{guix-patches@@gnu.org} mailing list.  Seasoned Guix developers may also want to look at the section on commit access (@pxref{Commit Access})."
+msgstr "Le développement se fait avec le système de contrôle de version Git.  Ainsi, l'accès au dépôt n'est pas strictement nécessaire.  Nous accueillons les contributions sous forme de correctifs produits par @code{git format-patch} envoyés sur la liste de diffusion @email{guix-patches@@gnu.org}.  Si vous êtes un contributeur de Guix confirmé, vous pouvez aussi regarder la section sur les accès en commit (@pxref{Commit Access})."
 
 #. type: Plain text
-#: doc/contributing.texi:792
-msgid "This mailing list is backed by a Debbugs instance accessible at @uref{https://bugs.gnu.org/guix-patches}, which allows us to keep track of submissions.  Each message sent to that mailing list gets a new tracking number assigned; people can then follow up on the submission by sending email to @code{@var{NNN}@@debbugs.gnu.org}, where @var{NNN} is the tracking number (@pxref{Sending a Patch Series})."
-msgstr "Cette liste de diffusion est gérée par une instance Debbugs accessible à l'adresse @uref{https://bugs.gnu.org/guix-patches}, qui nous permet de suivre les soumissions.  Chaque message envoyé à cette liste se voit attribuer un numéro de suivi ; les gens peuvent ensuite répondre à cette soumission en envoyant un courriel à @code{@var{NNN}@@debbugs.gnu.org}, où @var{NNN} est le numéro de suivi (@pxref{Envoyer une série de correctifs})."
+#: doc/contributing.texi:937
+msgid "This mailing list is backed by a Debbugs instance, which allows us to keep track of submissions (@pxref{Tracking Bugs and Patches}).  Each message sent to that mailing list gets a new tracking number assigned; people can then follow up on the submission by sending email to @code{@var{NNN}@@debbugs.gnu.org}, where @var{NNN} is the tracking number (@pxref{Sending a Patch Series})."
+msgstr "Cette liste de diffusion est gérée par une instance Debbugs, qui nous permet de suivre les soumissions.  Chaque message envoyé à cette liste se voit attribuer un nouveau numéro de suivi ; les gens peuvent ensuite répondre à cette soumission en envoyant un courriel à @code{@var{NNN}@@debbugs.gnu.org}, où @var{NNN} est le numéro de suivi (@pxref{Sending a Patch Series})."
 
 #. type: Plain text
-#: doc/contributing.texi:796
+#: doc/contributing.texi:941
 msgid "Please write commit logs in the ChangeLog format (@pxref{Change Logs,,, standards, GNU Coding Standards}); you can check the commit history for examples."
 msgstr "Veuillez écrire les messages de commit dans le format ChangeLog (@pxref{Change Logs,,, standards, GNU Coding Standards}) ; vous pouvez regarder l'historique des commits pour trouver des exemples."
 
 #. type: Plain text
-#: doc/contributing.texi:799
+#: doc/contributing.texi:944
 msgid "Before submitting a patch that adds or modifies a package definition, please run through this check list:"
 msgstr "Avant de soumettre un correctif qui ajoute ou modifie la définition d'un paquet, veuillez vérifier cette check-list :"
 
 #. type: enumerate
-#: doc/contributing.texi:806
+#: doc/contributing.texi:951
 msgid "If the authors of the packaged software provide a cryptographic signature for the release tarball, make an effort to verify the authenticity of the archive.  For a detached GPG signature file this would be done with the @code{gpg --verify} command."
 msgstr "Si les auteurs ou autrices du paquet logiciel fournissent une signature cryptographique pour l'archive, faites un effort pour vérifier l'authenticité de l'archive.  Pour un fichier de signature GPG détaché, cela se fait avec la commande @code{gpg --verify}."
 
 #. type: enumerate
-#: doc/contributing.texi:810
+#: doc/contributing.texi:955
 msgid "Take some time to provide an adequate synopsis and description for the package.  @xref{Synopses and Descriptions}, for some guidelines."
 msgstr "Prenez un peu de temps pour fournir un synopsis et une description adéquats pour le paquet.  Voir @xref{Synopsis et descriptions} pour quelques lignes directrices."
 
 #. type: enumerate
-#: doc/contributing.texi:815
+#: doc/contributing.texi:960
 msgid "Run @code{guix lint @var{package}}, where @var{package} is the name of the new or modified package, and fix any errors it reports (@pxref{Invoking guix lint})."
 msgstr "Lancez @code{guix lint @var{paquet}}, où @var{paquet} est le nom du nouveau paquet ou du paquet modifié, et corrigez les erreurs qu'il rapporte (@pxref{Invoquer guix lint})."
 
 #. type: enumerate
-#: doc/contributing.texi:819
+#: doc/contributing.texi:964
 msgid "Make sure the package builds on your platform, using @code{guix build @var{package}}."
 msgstr "Assurez-vous que le paquet se construise sur votre plate-forme avec @code{guix build @var{paquet}}."
 
 #. type: enumerate
-#: doc/contributing.texi:826
+#: doc/contributing.texi:971
 msgid "We recommend you also try building the package on other supported platforms.  As you may not have access to actual hardware platforms, we recommend using the @code{qemu-binfmt-service-type} to emulate them.  In order to enable it, add the following service to the list of services in your @code{operating-system} configuration:"
 msgstr "Nous vous recommandons aussi d'essayer de construire le paquet sur les autres plate-formes prises en charge.  Comme vous n'avez pas forcément accès aux plate-formes matérielles, nous vous recommandons d'utiliser le @code{qemu-binfmt-service-type} pour les émuler.  Pour cela, ajoutez le service suivant à la liste des services dans votre configuration de système d'exploitation :"
 
-#. type: example
-#: doc/contributing.texi:832
+# A la liste des plateformes, on peut ajouter "mips64el"
+#. type: lisp
+#: doc/contributing.texi:977
 #, no-wrap
 msgid ""
 "(service qemu-binfmt-service-type\n"
 " (qemu-binfmt-configuration\n"
-"   (platforms (lookup-qemu-platforms \"arm\" \"aarch64\" \"mips64el\"))\n"
+"   (platforms (lookup-qemu-platforms \"arm\" \"aarch64\"))\n"
 "   (guix-support? #t)))\n"
 msgstr ""
 "(service qemu-binfmt-service-type\n"
 " (qemu-binfmt-configuration\n"
-"   (platforms (lookup-qemu-platforms \"arm\" \"aarch64\" \"mips64el\"))\n"
+"   (platforms (lookup-qemu-platforms \"arm\" \"aarch64\"))\n"
 "   (guix-support? #t)))\n"
 
 #. type: enumerate
-#: doc/contributing.texi:835
+#: doc/contributing.texi:980
 msgid "Then reconfigure your system."
 msgstr "Puis reconfigurez votre système."
 
 #. type: enumerate
-#: doc/contributing.texi:840
+#: doc/contributing.texi:985
 msgid "You can then build packages for different platforms by specifying the @code{--system} option.  For example, to build the \"hello\" package for the armhf, aarch64, or mips64 architectures, you would run the following commands, respectively:"
 msgstr "Vous pourrez ensuite construire les paquets pour différentes plate-formes en spécifiant l'option @code{--system}.  Par exemple pour construire le paquet « hello » pour les architectures armhf, aarch64 ou mips64, vous devrez lancer les commandes suivantes, respectivement :"
 
 #. type: example
-#: doc/contributing.texi:844
+#: doc/contributing.texi:988
 #, no-wrap
 msgid ""
 "guix build --system=armhf-linux --rounds=2 hello\n"
 "guix build --system=aarch64-linux --rounds=2 hello\n"
-"guix build --system=mips64el-linux --rounds=2 hello\n"
 msgstr ""
 "guix build --system=armhf-linux --rounds=2 hello\n"
 "guix build --system=aarch64-linux --rounds=2 hello\n"
 "guix build --system=mips64el-linux --rounds=2 hello\n"
 
 #. type: cindex
-#: doc/contributing.texi:847
+#: doc/contributing.texi:991
 #, no-wrap
 msgid "bundling"
 msgstr "construction groupée"
 
 #. type: enumerate
-#: doc/contributing.texi:850
+#: doc/contributing.texi:994
 msgid "Make sure the package does not use bundled copies of software already available as separate packages."
 msgstr "Assurez-vous que le paquet n'utilise pas de copie groupée d'un logiciel déjà disponible dans un paquet séparé."
 
 #. type: enumerate
-#: doc/contributing.texi:859
+#: doc/contributing.texi:1003
 msgid "Sometimes, packages include copies of the source code of their dependencies as a convenience for users.  However, as a distribution, we want to make sure that such packages end up using the copy we already have in the distribution, if there is one.  This improves resource usage (the dependency is built and stored only once), and allows the distribution to make transverse changes such as applying security updates for a given software package in a single place and have them affect the whole system---something that bundled copies prevent."
 msgstr "Parfois, les paquets incluent des copie du code source de leurs dépendances pour le confort des utilisateur·rice·s.  Cependant, en tant que distribution, nous voulons nous assurer que ces paquets utilisent bien les copient que nous avons déjà dans la distribution si elles existent.  Cela améliore l'utilisation des ressources (la dépendance n'est construite et stockée qu'une seule fois) et permet à la distribution de faire des changements transversaux comme appliquer des correctifs de sécurité pour un paquet donné depuis un unique emplacement et qu'ils affectent tout le système, ce qu'empêchent les copies groupées."
 
 #. type: enumerate
-#: doc/contributing.texi:868
+#: doc/contributing.texi:1012
 msgid "Take a look at the profile reported by @command{guix size} (@pxref{Invoking guix size}).  This will allow you to notice references to other packages unwillingly retained.  It may also help determine whether to split the package (@pxref{Packages with Multiple Outputs}), and which optional dependencies should be used.  In particular, avoid adding @code{texlive} as a dependency: because of its extreme size, use @code{texlive-tiny} or @code{texlive-union} instead."
 msgstr "Regardez le profil rapporté par @command{guix size} (@pxref{Invoking guix size}).  Cela vous permettra de remarquer des références à d'autres paquets qui ont été retenus sans que vous vous y attendiez.  Il peut aussi aider à déterminer s'il faut découper le paquet (@pxref{Des paquets avec plusieurs résultats}) et quelles dépendances facultatives utiliser.  En particulier, évitez d'ajouter @code{texlive} en dépendance : à cause de sa taille extrême, utilisez @code{texlive-tiny} ou @code{texlive-union} à la place."
 
 #. type: enumerate
-#: doc/contributing.texi:873
+#: doc/contributing.texi:1017
 msgid "For important changes, check that dependent package (if applicable) are not affected by the change; @code{guix refresh --list-dependent @var{package}} will help you do that (@pxref{Invoking guix refresh})."
 msgstr "Pour les changements important, vérifiez que les paquets qui en dépendent (s'ils existent) ne sont pas affectés par le changement ; @code{guix refresh --list-dependant @var{paquet}} vous aidera (@pxref{Invoquer guix refresh})."
 
 #. type: cindex
-#: doc/contributing.texi:875
+#: doc/contributing.texi:1019
 #, no-wrap
 msgid "branching strategy"
 msgstr "stratégie de branche"
 
 #. type: cindex
-#: doc/contributing.texi:876
+#: doc/contributing.texi:1020
 #, no-wrap
 msgid "rebuild scheduling strategy"
 msgstr "stratégie de planification des reconstructions"
 
 #. type: enumerate
-#: doc/contributing.texi:879
+#: doc/contributing.texi:1023
 msgid "Depending on the number of dependent packages and thus the amount of rebuilding induced, commits go to different branches, along these lines:"
 msgstr "Suivant le nombre de paquets dépendants et donc le nombre de reconstruction induites, les commits vont vers des branches différentes, suivant ces principes :"
 
 #. type: item
-#: doc/contributing.texi:881
+#: doc/contributing.texi:1025
 #, no-wrap
 msgid "300 dependent packages or less"
 msgstr "300 paquets dépendants ou moins"
 
 #. type: table
-#: doc/contributing.texi:883
+#: doc/contributing.texi:1027
 msgid "@code{master} branch (non-disruptive changes)."
 msgstr "branche @code{master} (changements non-disruptifs)."
 
 #. type: item
-#: doc/contributing.texi:884
+#: doc/contributing.texi:1028
 #, no-wrap
-msgid "between 300 and 1,200 dependent packages"
-msgstr "entre 300 et 1 200 paquets dépendants"
+msgid "between 300 and 1,800 dependent packages"
+msgstr "entre 300 et 1 800 paquets dépendants"
 
 #. type: table
-#: doc/contributing.texi:889
-msgid "@code{staging} branch (non-disruptive changes).  This branch is intended to be merged in @code{master} every 3 weeks or so.  Topical changes (e.g., an update of the GNOME stack) can instead go to a specific branch (say, @code{gnome-updates})."
-msgstr "branche @code{staging} (changements non-disruptifs).  Cette branche devrait être fusionnées dans @code{master} tous les 3 semaines.  Les changements par thèmes (par exemple une mise à jour de la pile GNOME) peuvent aller dans une branche spécifique (disons, @code{gnome-updates})."
+#: doc/contributing.texi:1033
+msgid "@code{staging} branch (non-disruptive changes).  This branch is intended to be merged in @code{master} every 6 weeks or so.  Topical changes (e.g., an update of the GNOME stack) can instead go to a specific branch (say, @code{gnome-updates})."
+msgstr "branche @code{staging} (changements non-disruptifs).  Cette branche devrait être fusionnées dans @code{master} toutes les 6 semaines.  Les changements par thèmes (par exemple une mise à jour de la pile GNOME) peuvent aller dans une branche spécifique (disons, @code{gnome-updates})."
 
 #. type: item
-#: doc/contributing.texi:890
+#: doc/contributing.texi:1034
 #, no-wrap
-msgid "more than 1,200 dependent packages"
-msgstr "plus de 1 200 paquets dépendants"
+msgid "more than 1,800 dependent packages"
+msgstr "plus de 1 800 paquets dépendants"
 
 #. type: table
-#: doc/contributing.texi:894
-msgid "@code{core-updates} branch (may include major and potentially disruptive changes).  This branch is intended to be merged in @code{master} every 2.5 months or so."
-msgstr "branche @code{core-updates} (peut inclure des changements majeurs et potentiellement disruptifs).  Cette branche devrait être fusionnée dans @code{master} tous les 2,5 mois environ."
+#: doc/contributing.texi:1038
+msgid "@code{core-updates} branch (may include major and potentially disruptive changes).  This branch is intended to be merged in @code{master} every 6 months or so."
+msgstr "la branche @code{core-updates} (peut inclure des changements majeurs et potentiellement disruptifs).  Cette branche devrait être fusionnée dans @code{master} tous les 6 mois environ."
 
 #. type: enumerate
-#: doc/contributing.texi:901
-msgid "All these branches are @uref{https://hydra.gnu.org/project/gnu, tracked by our build farm} and merged into @code{master} once everything has been successfully built.  This allows us to fix issues before they hit users, and to reduce the window during which pre-built binaries are not available."
-msgstr "Toutes ces branches sont @uref{https://hydra.gnu.org/project/gnu, gérées par notre ferme de construction} et fusionnées dans @code{master} une fois que tout a été construit correctement.  Cela nous permet de corriger des problèmes avant qu'ils n'atteignent les utilisateur·rice·s et réduit la fenêtre pendant laquelle les binaires pré-construits ne sont pas disponibles."
+#: doc/contributing.texi:1045
+msgid "All these branches are @uref{@value{SUBSTITUTE-URL}, tracked by our build farm} and merged into @code{master} once everything has been successfully built.  This allows us to fix issues before they hit users, and to reduce the window during which pre-built binaries are not available."
+msgstr "Toutes ces branches sont @uref{@value{SUBSTITUTE-URL}, gérées par notre ferme de construction} et fusionnées dans @code{master} une fois que tout a été construit correctement.  Celà nous permet de corriger des problèmes avant qu'ils n'atteignent les utilisateur·rice·s et réduit la fenêtre pendant laquelle les binaires pré-construits ne sont pas disponibles."
 
 #. type: enumerate
-#: doc/contributing.texi:908
+#: doc/contributing.texi:1052
 msgid "Generally, branches other than @code{master} are considered @emph{frozen} if there has been a recent evaluation, or there is a corresponding @code{-next} branch.  Please ask on the mailing list or IRC if unsure where to place a patch."
 msgstr "Généralement les autres branches que @code{master} sont considérées comme @emph{gelées} s'il y a eu une évaluation récente ou qu'il y a une branche @code{-next} correspondante.  Demandez sur la liste de diffusion ou sur IRC si vous n'êtes pas sûr de savoir où pousser votre correctif."
 
 #. type: cindex
-#: doc/contributing.texi:910
+#: doc/contributing.texi:1054
 #, no-wrap
 msgid "determinism, of build processes"
 msgstr "déterminisme, du processus de construction"
 
 #. type: cindex
-#: doc/contributing.texi:911
+#: doc/contributing.texi:1055
 #, no-wrap
 msgid "reproducible builds, checking"
 msgstr "construction reproductibles, vérification"
 
 #. type: enumerate
-#: doc/contributing.texi:915
+#: doc/contributing.texi:1059
 msgid "Check whether the package's build process is deterministic.  This typically means checking whether an independent build of the package yields the exact same result that you obtained, bit for bit."
 msgstr "Vérifiez si le processus de construction du paquet est déterministe.  Cela signifie typiquement vérifier qu'une construction indépendante du paquet renvoie exactement le même résultat que vous avez obtenu, bit à bit."
 
 #. type: enumerate
-#: doc/contributing.texi:918
+#: doc/contributing.texi:1062
 msgid "A simple way to do that is by building the same package several times in a row on your machine (@pxref{Invoking guix build}):"
 msgstr "Une manière simple de le faire est de reconstruire le paquet plusieurs fois à la suite sur votre machine (@pxref{Invoquer guix build}) :"
 
 #. type: example
-#: doc/contributing.texi:921
+#: doc/contributing.texi:1065
 #, no-wrap
 msgid "guix build --rounds=2 my-package\n"
 msgstr "guix build --rounds=2 mon-paquet\n"
 
 #. type: enumerate
-#: doc/contributing.texi:925
+#: doc/contributing.texi:1069
 msgid "This is enough to catch a class of common non-determinism issues, such as timestamps or randomly-generated output in the build result."
 msgstr "Cela est suffisant pour trouver une classe de non-déterminisme commune, comme l'horodatage ou des sorties générées aléatoirement dans le résultat de la construction."
 
 #. type: enumerate
-#: doc/contributing.texi:935
+#: doc/contributing.texi:1079
 msgid "Another option is to use @command{guix challenge} (@pxref{Invoking guix challenge}).  You may run it once the package has been committed and built by @code{@value{SUBSTITUTE-SERVER}} to check whether it obtains the same result as you did.  Better yet: Find another machine that can build it and run @command{guix publish}.  Since the remote build machine is likely different from yours, this can catch non-determinism issues related to the hardware---e.g., use of different instruction set extensions---or to the operating system kernel---e.g., reliance on @code{uname} or @file{/proc} files."
 msgstr "Une autre option consiste à utiliser @command{guix challenge} (@pxref{Invoquer guix challenge}).  Vous pouvez lancer la commande une fois que les paquets ont été committés et construits par @code{@value{SUBSTITUTE-SERVER}} pour vérifier s'il obtient le même résultat que vous.  Mieux encore : trouvez une autre machine qui peut le construire et lancez @command{guix publish}.  Puisque la machine distante est sûrement différente de la vôtre, cela peut trouver des problèmes de non-déterminisme liés au matériel — par exemple utiliser une extension du jeu d'instruction — ou du noyau du système d'exploitation — par exemple se reposer sur @code{uname} ou les fichiers de @file{/proc}."
 
 #. type: enumerate
-#: doc/contributing.texi:941
+#: doc/contributing.texi:1085
 msgid "When writing documentation, please use gender-neutral wording when referring to people, such as @uref{https://en.wikipedia.org/wiki/Singular_they, singular ``they''@comma{} ``their''@comma{} ``them''}, and so forth."
 msgstr "Lorsque vous écrivez de la documentation, utilisez une formulation au genre neutre lorsque vous vous référez à des personnes, comme le @uref{https://fr.wikipedia.org/wiki/They_singulier, ``they''@comma{} ``their''@comma{} ``them'' singulier} (en anglais)."
 
 #. type: enumerate
-#: doc/contributing.texi:945
+#: doc/contributing.texi:1089
 msgid "Verify that your patch contains only one set of related changes.  Bundling unrelated changes together makes reviewing harder and slower."
 msgstr "Vérifiez que votre correctif contienne seulement un ensemble de changements liés.  Grouper des changements non liés ensemble rend la revue plus difficile et plus lente."
 
 #. type: enumerate
-#: doc/contributing.texi:948
+#: doc/contributing.texi:1092
 msgid "Examples of unrelated changes include the addition of several packages, or a package update along with fixes to that package."
 msgstr "Ajouter plusieurs paquet ou une mise à jour d'un paquet avec des corrections dans ce paquet sont des exemples de changements sans rapport."
 
 #. type: enumerate
-#: doc/contributing.texi:953
+#: doc/contributing.texi:1097
 msgid "Please follow our code formatting rules, possibly running the @command{etc/indent-code.el} script to do that automatically for you (@pxref{Formatting Code})."
 msgstr "Suivez nos règles de formatage de code, éventuellement en lançant le script @command{et/indent-code.el} pour le faire automatiquement (@pxref{Formatage du code})."
 
 #. type: enumerate
-#: doc/contributing.texi:961
+#: doc/contributing.texi:1105
 msgid "When possible, use mirrors in the source URL (@pxref{Invoking guix download}).  Use reliable URLs, not generated ones.  For instance, GitHub archives are not necessarily identical from one generation to the next, so in this case it's often better to clone the repository.  Don't use the @command{name} field in the URL: it is not very useful and if the name changes, the URL will probably be wrong."
 msgstr "Si possible, utilisez des miroirs dans l'URL des sources (@pxref{Invoking guix download}).  Utilisez des URL stable, pas des URL générées.  Par exemple, les archives GitHub ne sont pas nécessairement identiques d'une génération à la suivante, donc il vaut mieux dans ce cas cloner le dépôt.  N'utilisez pas le champ @command{name} dans l'URL : ce n'est pas très utile et si le nom change, l'URL sera probablement erronée."
 
+#. type: enumerate
+#: doc/contributing.texi:1109
+msgid "Check if Guix builds (@pxref{Building from Git}) and address the warnings, especially those about use of undefined symbols."
+msgstr "Vérifiez si Guix compile (@pxref{Building from Git}) et corrigez les avertissements, surtout ceux à propos de symboles manquants."
+
+#. type: enumerate
+#: doc/contributing.texi:1112
+msgid "Make sure your changes do not break Guix and simulate a @code{guix pull} with:"
+msgstr "Assurez-vous que vos changements ne cassent pas Guix et simulez un @code{guix pull} avec :"
+
+#. type: example
+#: doc/contributing.texi:1114
+#, no-wrap
+msgid "guix pull --url=/path/to/your/checkout --profile=/tmp/guix.master\n"
+msgstr "guix pull --url=/path/to/your/checkout --profile=/tmp/guix.master\n"
+
 #. type: Plain text
-#: doc/contributing.texi:971
-msgid "When posting a patch to the mailing list, use @samp{[PATCH] @dots{}} as a subject.  You may use your email client or the @command{git send-email} command (@pxref{Sending a Patch Series}).  We prefer to get patches in plain text messages, either inline or as MIME attachments.  You are advised to pay attention if your email client changes anything like line breaks or indentation which could potentially break the patches."
-msgstr "Lorsque vous envoyez un correctif à la liste de diffusion, utilisez @samp{[PATCH] @dots{}} comme sujet.  Vous pouvez utiliser votre client de courriel ou la commande @command{git send-email} (@pxref{Envoyer une série de correctifs}).  Nous préférons recevoir des correctifs en texte brut, soit en ligne, soit en pièce-jointe MIME@.   Nous vous conseillons de faire attention si votre client de courriel change par exemple les retours à la ligne ou l'indentation, ce qui peut casser les correctifs."
+#: doc/contributing.texi:1127
+msgid "When posting a patch to the mailing list, use @samp{[PATCH] @dots{}} as a subject, if your patch is to be applied on a branch other than @code{master}, say @code{core-updates}, specify it in the subject like @samp{[PATCH core-updates] @dots{}}.  You may use your email client or the @command{git send-email} command (@pxref{Sending a Patch Series}).  We prefer to get patches in plain text messages, either inline or as MIME attachments.  You are advised to pay attention if your email client changes anything like line breaks or indentation which could potentially break the patches."
+msgstr "Lorsque vous postez un patch sur la liste de diffusion, utilisez @samp{[PATCH] @dots{}} comme sujet, si votre patch doit être appliqué sur une branche autre que @code{master}, disons @code{core-updates}, spécifiez le dans le sujet comme @samp{[PATCH core-updates] @dots{}}. Vous pouvez utiliser votre client de messagerie ou la commande @command{git send-email} (@pxref{Sending a Patch Series}). Nous préférons recevoir les correctifs dans des messages en texte clair, soit en ligne, soit sous forme de pièces jointes MIME.  Il vous est conseillé de faire attention si votre client de messagerie modifie quoi que ce soit, comme des sauts de ligne ou des indentations, qui pourraient potentiellement casser les correctifs."
 
 #. type: Plain text
-#: doc/contributing.texi:974
+#: doc/contributing.texi:1130
 msgid "When a bug is resolved, please close the thread by sending an email to @email{@var{NNN}-done@@debbugs.gnu.org}."
 msgstr "Lorsqu'un bogue est résolu, veuillez fermer le fil en envoyant un courriel à @email{@var{NNN}-done@@debbugs.gnu.org}."
 
 #. type: anchor{#1}
-#: doc/contributing.texi:975 doc/contributing.texi:977
+#: doc/contributing.texi:1131 doc/contributing.texi:1133
 #, no-wrap
 msgid "Sending a Patch Series"
 msgstr "Envoyer une série de correctifs"
 
 #. type: cindex
-#: doc/contributing.texi:977
+#: doc/contributing.texi:1133
 #, no-wrap
 msgid "patch series"
 msgstr "série de correctifs"
 
 #. type: code{#1}
-#: doc/contributing.texi:978
+#: doc/contributing.texi:1134
 #, no-wrap
 msgid "git send-email"
 msgstr "git send-email"
 
 #. type: code{#1}
-#: doc/contributing.texi:979
+#: doc/contributing.texi:1135
 #, no-wrap
 msgid "git-send-email"
 msgstr "git-send-email"
 
 #. type: Plain text
-#: doc/contributing.texi:987
-msgid "When sending a patch series (e.g., using @code{git send-email}), please first send one message to @email{guix-patches@@gnu.org}, and then send subsequent patches to @email{@var{NNN}@@debbugs.gnu.org} to make sure they are kept together.  See @uref{https://debbugs.gnu.org/Advanced.html, the Debbugs documentation} for more information."
-msgstr "Lorsque vous envoyez une série de correctifs (p.@@:: ex.@: avec @code{git send-email}), envoyez d'abord une premier message à @email{guix-patches@@gnu.org} puis envoyez le reste des correctifs à @email{@var{NNN}@@debbugs.gnu.org} pour vous assurer qu'ils seront groupés ensemble.  Voyez @uref{https://debbugs.gnu.org/Advanced.html, la documentation de Debbugs} pour plus d'informations."
+#: doc/contributing.texi:1145
+msgid "When sending a patch series (e.g., using @code{git send-email}), please first send one message to @email{guix-patches@@gnu.org}, and then send subsequent patches to @email{@var{NNN}@@debbugs.gnu.org} to make sure they are kept together.  See @uref{https://debbugs.gnu.org/Advanced.html, the Debbugs documentation} for more information.  You can install @command{git send-email} with @command{guix install git:send-email}."
+msgstr "Lorsque vous envoyez une série de correctifs (p.@@:: ex.@: avec @code{git send-email}), envoyez d'abord une premier message à @email{guix-patches@@gnu.org} puis envoyez le reste des correctifs à @email{@var{NNN}@@debbugs.gnu.org} pour vous assurer qu'ils seront groupés ensemble.  Voyez @uref{https://debbugs.gnu.org/Advanced.html, la documentation de Debbugs} pour plus d'informations.  Vous pouvez installer @command{git send-email} avec @command{guix install git:send-email}."
+
+#. type: cindex
+#: doc/contributing.texi:1149
+#, no-wrap
+msgid "bug reports, tracking"
+msgstr "rapports de bogue, suivi"
+
+#. type: cindex
+#: doc/contributing.texi:1150
+#, no-wrap
+msgid "patch submissions, tracking"
+msgstr "soumission de correctifs, suivi"
+
+#. type: cindex
+#: doc/contributing.texi:1151
+#, no-wrap
+msgid "issue tracking"
+msgstr "suivi de tickets"
+
+#. type: cindex
+#: doc/contributing.texi:1152
+#, no-wrap
+msgid "Debbugs, issue tracking system"
+msgstr "Debbugs, système de suivi de tickets"
+
+#. type: Plain text
+#: doc/contributing.texi:1159
+msgid "Bug reports and patch submissions are currently tracked using the Debbugs instance at @uref{https://bugs.gnu.org}.  Bug reports are filed against the @code{guix} ``package'' (in Debbugs parlance), by sending email to @email{bug-guix@@gnu.org}, while patch submissions are filed against the @code{guix-patches} package by sending email to @email{guix-patches@@gnu.org} (@pxref{Submitting Patches})."
+msgstr "Les rapports de bogue et les correctifs soumis sont actuellement suivis par l'instance Debbugs @uref{https://bugs.gnu.org}.  Les rapports de bogue sont rempli pour le « paquet » @code{guix} (dans le vocabulaire de Debbugs), en envoyant un courriel à @email{bug-guix@@gnu.org}, tandis que les correctifs sont soumis pour le paquet @code{guix-patches} en envoyant un courriel à @email{guix-patches@@gnu.org} (@pxref{Submitting Patches})."
+
+#. type: Plain text
+#: doc/contributing.texi:1162
+msgid "A web interface (actually @emph{two} web interfaces!) are available to browse issues:"
+msgstr "Une interface web (en fait @emph{deux} interfaces web !) sont disponibles pour naviguer dans les tickets :"
+
+#. type: itemize
+#: doc/contributing.texi:1171
+msgid "@url{https://issues.guix.gnu.org} provides a pleasant interface@footnote{The web interface at @url{https://issues.guix.gnu.org} is powered by Mumi, a nice piece of software written in Guile, and you can help! See @url{https://git.elephly.net/gitweb.cgi?p=software/mumi.git}.} to browse bug reports and patches, and to participate in discussions;"
+msgstr "@url{https://issues.guix.gnu.org} fournit une interface agréable@footnote{L'interface web à @url{https://issues.guix.gnu.org} est alimentée par Mumi, un logiciel très cool écrit en Guile, votre aide est la bienvenue ! Voir @url{https://git.elephly.net/gitweb.cgi?p=software/mumi.git}.} pour consulter les rapports de bogues et les correctifs, et pour participer aux discussions ;"
+
+#. type: itemize
+#: doc/contributing.texi:1173
+msgid "@url{https://bugs.gnu.org/guix} lists bug reports;"
+msgstr "@url{https://bugs.gnu.org/guix} liste les rapports de bogues ;"
+
+#. type: itemize
+#: doc/contributing.texi:1175
+msgid "@url{https://bugs.gnu.org/guix-patches} lists patch submissions."
+msgstr "@url{https://bugs.gnu.org/guix-patches} liste les tickets soumis."
+
+#. type: Plain text
+#: doc/contributing.texi:1180
+msgid "To view discussions related to issue number @var{n}, go to @indicateurl{https://issues.guix.gnu.org/@var{n}} or @indicateurl{https://bugs.gnu.org/@var{n}}."
+msgstr "Pour consulter les discussions relatives au numéro d'édition @var{n}, rendez-vous sur @indicateurl{https://issues.guix.gnu.org/@var{n}} ou @indicateurl{https://bugs.gnu.org/@var{n}}."
+
+#. type: Plain text
+#: doc/contributing.texi:1183
+msgid "If you use Emacs, you may find it more convenient to interact with issues using @file{debbugs.el}, which you can install with:"
+msgstr "Si vous utilisez Emacs, vous pourriez trouver plus confortable d'interagir avec les tickets en utilisant @file{debbugs.el}, que vous pouvez installer avec :"
+
+#. type: example
+#: doc/contributing.texi:1186
+#, no-wrap
+msgid "guix install emacs-debbugs\n"
+msgstr "guix install emacs-debbugs\n"
+
+#. type: Plain text
+#: doc/contributing.texi:1189
+msgid "For example, to list all open issues on @code{guix-patches}, hit:"
+msgstr "Par exemple, pour lister tous les tickets ouverts sur @code{guix-patches}, tapez :"
+
+#. type: example
+#: doc/contributing.texi:1192
+#, no-wrap
+msgid "@kbd{C-u} @kbd{M-x} debbugs-gnu @kbd{RET} @kbd{RET} guix-patches @kbd{RET} n y\n"
+msgstr "@kbd{C-u} @kbd{M-x} debbugs-gnu @kbd{RET} @kbd{RET} guix-patches @kbd{RET} n y\n"
+
+#. type: Plain text
+#: doc/contributing.texi:1196
+msgid "@xref{Top,,, debbugs-ug, Debbugs User Guide}, for more information on this nifty tool!"
+msgstr "@xref{Top,,, debbugs-ug, Debbugs User Guide}, pour plus d'info sur cet outil pratique !"
+
+#. type: cindex
+#: doc/contributing.texi:1200
+#, no-wrap
+msgid "commit access, for developers"
+msgstr "accès en commit, pour les développeurs"
+
+#. type: Plain text
+#: doc/contributing.texi:1204
+msgid "For frequent contributors, having write access to the repository is convenient.  When you deem it necessary, consider applying for commit access by following these steps:"
+msgstr "Pour les contributeurs réguliers, il est pratique d'avoir accès en écriture au dépôt.  Lorsque vous l'estimez nécessaire, pensez à candidater à l'accès en commit en suivant les étapes suivantes :"
+
+#. type: enumerate
+#: doc/contributing.texi:1213
+msgid "Find three committers who would vouch for you.  You can view the list of committers at @url{https://savannah.gnu.org/project/memberlist.php?group=guix}.  Each of them should email a statement to @email{guix-maintainers@@gnu.org} (a private alias for the collective of maintainers), signed with their OpenPGP key."
+msgstr "Trouvez trois commiteurs qui soutiendront votre candidature.  Vous pouvez trouver la liste des commiteurs sur @url{https://savannah.gnu.org/project/memberlist.php?group=guix}.  Chacun d'entre eux devra envoyer une déclaration à @email{guix-maintainers@@gnu.org} (un alias privé pour le collectif des mainteneurs), signé de leur clef OpenPGP."
+
+#. type: enumerate
+#: doc/contributing.texi:1219
+msgid "Committers are expected to have had some interactions with you as a contributor and to be able to judge whether you are sufficiently familiar with the project's practices.  It is @emph{not} a judgment on the value of your work, so a refusal should rather be interpreted as ``let's try again later''."
+msgstr "Les commiteurs devront avoir eu des interactions avec vous en tant que contributeur et pouvoir juger si vous êtes suffisament familier avec les pratiques du projet.  Ce n'est @emph{pas} un jugement sur la valeur de votre travail, donc vous devriez plutôt interpréter un refus comme un « essayons un peu plus tard »."
+
+#. type: enumerate
+#: doc/contributing.texi:1226
+msgid "Send @email{guix-maintainers@@gnu.org} a message stating your intent, listing the three committers who support your application, signed with the OpenPGP key you will use to sign commits, and giving its fingerprint (see below).  See @uref{https://emailselfdefense.fsf.org/en/}, for an introduction to public-key cryptography with GnuPG."
+msgstr "Envoyez un message à @email{guix-maintainers@@gnu.org} déclarant votre intention, listant les trois commiteurs qui supportent votre candidature, signez-le avec la clef OpenPGP que vous utiliserez pour signer vos commits et donnez son empreinte (voir plus bas).  Voir  @uref{https://emailselfdefense.fsf.org/fr/}, pour une introduction à la cryptopgraphie à clef publique avec GnuPG."
+
+#. type: enumerate
+#: doc/contributing.texi:1232
+msgid "Set up GnuPG such that it never uses the SHA1 hash algorithm for digital signatures, which is known to be unsafe since 2019, for instance by adding the following line to @file{~/.gnupg/gpg.conf} (@pxref{GPG Esoteric Options,,, gnupg, The GNU Privacy Guard Manual}):"
+msgstr "Configurer GnuPG de manière à ce qu'il n'utilise jamais l'algorithme de hachage SHA1 pour les signatures numériques, dont on sait qu'il est dangereux depuis 2019, par exemple en ajoutant la ligne suivante à @file{~/.gnupg/gpg.conf} (@pxref{GPG Esoteric Options, , , gnupg, The GNU Privacy Guard Manual}) :"
+
+#. type: example
+#: doc/contributing.texi:1235
+#, no-wrap
+msgid "digest-algo sha512\n"
+msgstr "digest-algo sha512\n"
+
+#. type: enumerate
+#: doc/contributing.texi:1240
+msgid "Maintainers ultimately decide whether to grant you commit access, usually following your referrals' recommendation."
+msgstr "Les mainteneurs ont le dernier mot sur la décision de vous donner accès et suivent généralement l'avis de vos référents."
+
+#. type: cindex
+#: doc/contributing.texi:1242
+#, no-wrap
+msgid "OpenPGP, signed commits"
+msgstr "OpenPGP, commits signés"
+
+#. type: enumerate
+#: doc/contributing.texi:1247
+msgid "If and once you've been given access, please send a message to @email{guix-devel@@gnu.org} to say so, again signed with the OpenPGP key you will use to sign commits (do that before pushing your first commit).  That way, everyone can notice and ensure you control that OpenPGP key."
+msgstr "Si vous obtenez l'accès, envoyez un message à @email{guix-devel@@gnu.org} pour le faire savoir, en signant de nouveau avec le clef OpenPGP que vous utiliserez pour signer les commits (faites-le avant votre premier commit).  De cette manière, tout le monde peut s'en rendre compte et s'assurer que c'est bien vous qui contrôlez cette clef OpenPGP."
+
+#. type: quotation
+#: doc/contributing.texi:1248
+#, no-wrap
+msgid "Important"
+msgstr "Important"
+
+#. type: quotation
+#: doc/contributing.texi:1250
+msgid "Before you can push for the first time, maintainers must:"
+msgstr "Avant d'envoyer pour la première fois, les mainteneurs doivent :"
+
+#. type: enumerate
+#: doc/contributing.texi:1254
+msgid "add your OpenPGP key to the @code{keyring} branch;"
+msgstr "ajoutez votre clé OpenPGP à la branche @code{keyring};"
+
+#. type: enumerate
+#: doc/contributing.texi:1257
+msgid "add your OpenPGP fingerprint to the @file{.guix-authorizations} file of the branch(es) you will commit to."
+msgstr "ajoutez votre empreinte OpenPGP au fichier @file{.guix-authorizations} de la (des) branche(s) sur laquelle (lesquelles) vous vous engagez."
+
+#. type: enumerate
+#: doc/contributing.texi:1262
+msgid "Make sure to read the rest of this section and... profit!"
+msgstr "Assurez-vous de lire le reste de cette section et… profitez !"
+
+#. type: quotation
+#: doc/contributing.texi:1268
+msgid "Maintainers are happy to give commit access to people who have been contributing for some time and have a track record---don't be shy and don't underestimate your work!"
+msgstr "Les mainteneurs sont ravis de donnéer l'accès en commit aux personnes qui ont contribués depuis un certain temps et ont un bon bilan — ne soyez pas timide et ne sous-estimez pas votre travail !"
+
+#. type: quotation
+#: doc/contributing.texi:1272
+msgid "However, note that the project is working towards a more automated patch review and merging system, which, as a consequence, may lead us to have fewer people with commit access to the main repository.  Stay tuned!"
+msgstr "Cependant, remarquez que le projet travail sur un système de revu de correctifs et de fusion plus automatisé, qui, en conséquence, pourra nous faire réduire le nombre de personne ayant accès en commit au dépôt principal.  Restez à l'écoute !"
+
+#. type: Plain text
+#: doc/contributing.texi:1277
+msgid "If you get commit access, please make sure to follow the policy below (discussions of the policy can take place on @email{guix-devel@@gnu.org})."
+msgstr "Si vous avez accès en commit, assurez-vous de respecter la politique ci-dessous (les discussions à propos de cette politique peuvent avoir lieu sur @email{guix-devel@@gnu.org})."
+
+#. type: Plain text
+#: doc/contributing.texi:1282
+msgid "Non-trivial patches should always be posted to @email{guix-patches@@gnu.org} (trivial patches include fixing typos, etc.).  This mailing list fills the patch-tracking database (@pxref{Tracking Bugs and Patches})."
+msgstr "Les correctifs non triviaux doivent toujours être postés sur @email{guix-patches@@gnu.org} (les correctifs triviaux consistent en des correctifs de coquilles, etc).  Cette liste de diffusion rempli la base de données de correctifs (@pxref{Tracking Bugs and Patches})."
+
+#. type: Plain text
+#: doc/contributing.texi:1291
+msgid "For patches that just add a new package, and a simple one, it's OK to commit, if you're confident (which means you successfully built it in a chroot setup, and have done a reasonable copyright and license auditing).  Likewise for package upgrades, except upgrades that trigger a lot of rebuilds (for example, upgrading GnuTLS or GLib).  We have a mailing list for commit notifications (@email{guix-commits@@gnu.org}), so people can notice.  Before pushing your changes, make sure to run @code{git pull --rebase}."
+msgstr "Pour les correctifs qui ne font qu'ajouter un nouveau paquet, et un paquet simple, commiter directement est accepté si vous êtes en confiance (ce qui signifie que vous avez réussi à le construire dans un environnement chroot et avez fait un audit suffisant des copyrights et de la licence).  Pareil pour les mises à jour de paquets, sauf pour les mises à jour qui occasionnent beaucoup de reconstruction (par exemple mettre à jour GnuTLS ou GLib).  Nous avons une liste de diffusion pour les notifications de commit (@email{guix-commits@@gnu.org}), pour que les gens puissent s'en rendre compte.  Avant de pousser vos changements, assurez-vous d'avoir lancé @code{git pull --rebase}."
+
+#. type: Plain text
+#: doc/contributing.texi:1297
+msgid "All commits that are pushed to the central repository on Savannah must be signed with an OpenPGP key, and the public key should be uploaded to your user account on Savannah and to public key servers, such as @code{keys.openpgp.org}.  To configure Git to automatically sign commits, run:"
+msgstr "Tous les commits poussés sur le dépôt central sur Savannah doivent être signés avec une clef OpenPGP et la clef publique doit être chargée sur votre compte utilisateur dans Savannah et les serveurs de clef publique, comme @code{keys.opengpg.org}.  Pour configurer Git pour signer automatiquement vos commits, lancez :"
+
+#. type: example
+#: doc/contributing.texi:1301
+#, no-wrap
+msgid ""
+"git config commit.gpgsign true\n"
+"git config user.signingkey CABBA6EA1DC0FF33\n"
+msgstr ""
+"git config commit.gpgsign true\n"
+"git config user.signingkey CABBA6EA1DC0FF33\n"
+
+#. type: Plain text
+#: doc/contributing.texi:1306
+msgid "You can prevent yourself from accidentally pushing unsigned commits to Savannah by using the pre-push Git hook called located at @file{etc/git/pre-push}:"
+msgstr "Vous pouvez éviter de pousser accidentellement des commits non signés vers Savannah et utilisant le crochet Git de pré-envoi situé dans @file{etc/git/pre-push} :"
+
+#. type: example
+#: doc/contributing.texi:1309
+#, no-wrap
+msgid "cp etc/git/pre-push .git/hooks/pre-push\n"
+msgstr "cp etc/git/pre-push .git/hooks/pre-push\n"
+
+#. type: Plain text
+#: doc/contributing.texi:1315
+msgid "When pushing a commit on behalf of somebody else, please add a @code{Signed-off-by} line at the end of the commit log message---e.g., with @command{git am --signoff}.  This improves tracking of who did what."
+msgstr "Lorsque vous poussez un commit pour le compte de quelqu'un d'autre, ajoutez une ligne @code{Signed-off-by} à la fin du message de commit — p.@: ex.@: avec @command{git am --signoff}.  Cela amélior le suivi que qui fait quoi."
+
+#. type: Plain text
+#: doc/contributing.texi:1319
+msgid "When adding channel news entries (@pxref{Channels, Writing Channel News}), make sure they are well-formed by running the following command right before pushing:"
+msgstr "Quand vous ajoutez de nouvelles entrées au canal (@pxref{Channels, Writing Channel News}), assurez-vous qu'elles sont bien formées en exécutant la commande suivante juste avant d'envoyer :"
+
+#. type: example
+#: doc/contributing.texi:1322
+#, no-wrap
+msgid "make check-channel-news\n"
+msgstr "make check-channel-news\n"
+
+#. type: Plain text
+#: doc/contributing.texi:1328
+msgid "For anything else, please post to @email{guix-patches@@gnu.org} and leave time for a review, without committing anything (@pxref{Submitting Patches}).  If you didn’t receive any reply after two weeks, and if you're confident, it's OK to commit."
+msgstr "Pour tout autre chose, envoyez un correctif à @email{guix-patches@@gnu.org} et laissez un peu de temps pour la revue, sans rien commiter (@pxref{Submitting Patches}).  Si vous ne recevez pas de réponse dans les deux semaines et que vous avez confiance, vous pouvez commiter."
+
+#. type: Plain text
+#: doc/contributing.texi:1331
+msgid "That last part is subject to being adjusted, allowing individuals to commit directly on non-controversial changes on parts they’re familiar with."
+msgstr "La dernière partie est sujète à ajustement, pour permettre à certains de commiter directement des changements non controversés sur des parties qui leurs sont familières."
+
+#. type: Plain text
+#: doc/contributing.texi:1337
+msgid "One last thing: the project keeps moving forward because committers not only push their own awesome changes, but also offer some of their time @emph{reviewing} and pushing other people's changes.  As a committer, you're welcome to use your expertise and commit rights to help other contributors, too!"
+msgstr "Une dernière chose : le projet continue à avancer non seulement parce que les commiteurs poussent leurs propres changements, mais aussi parce qu'ils offrent de leur temps pour @emph{revoir} et pousser les changements des autres personnes.  En tant que commiteur, vous pouvez utiliser votre expertise et vos droits en commit pour aider d'autres contributeaurs aussi !"
+
+#. type: cindex
+#: doc/contributing.texi:1341
+#, no-wrap
+msgid "update-guix-package, updating the guix package"
+msgstr "update-guix-package, mise à jour du paquet guix"
+
+#. type: Plain text
+#: doc/contributing.texi:1347
+msgid "It is sometimes desirable to update the @code{guix} package itself (the package defined in @code{(gnu packages package-management)}), for example to make new daemon features available for use by the @code{guix-service-type} service type.  In order to simplify this task, the following command can be used:"
+msgstr "Il est quelquefois souhaitable de mettre à jour le paquet @code{guix} lui-même (le paquet défini dans @code{(gnu packages package-management)}), par exemple pour rendre de nouvelles caractéristiques disponibles à l'utilisation par le type de service @code{guix-service-type}. Afin de simplifier cette tâche, la commande suivante peut être utilisée :"
+
+#. type: example
+#: doc/contributing.texi:1350
+#, no-wrap
+msgid "make update-guix-package\n"
+msgstr "make update-guix-package\n"
+
+#. type: Plain text
+#: doc/contributing.texi:1357
+msgid "The @code{update-guix-package} make target will use the last known @emph{commit} corresponding to @code{HEAD} in your Guix checkout, compute the hash of the Guix sources corresponding to that commit and update the @code{commit}, @code{revision} and hash of the @code{guix} package definition."
+msgstr "Le make target @code{update-guix-package} utilisera le dernier @emph{commit} connu correspondant à @code{HEAD} dans votre checkout Guix, calculera le hash des sources Guix correspondant à ce commit et mettra à jour la définition des paquets @code{commit}, @code{revision} et le hash du paquet @code{guix}."
+
+#. type: Plain text
+#: doc/contributing.texi:1361
+msgid "To validate that the updated @code{guix} package hashes are correct and that it can be built successfully, the following command can be run from the directory of your Guix checkout:"
+msgstr "Pour avoir la certitude que les hash du paquet @code{guix} mis à jour sont corrects et qu'il peut être construit avec succès, la commande suivante peut être lancée depuis le répertoire de votre checkout Guix :"
+
+#. type: example
+#: doc/contributing.texi:1364
+#, no-wrap
+msgid "./pre-inst-env guix build guix\n"
+msgstr ""
+"./pre-inst-env guix build guix\n"
+"\n"
+
+#. type: Plain text
+#: doc/contributing.texi:1369
+msgid "To guard against accidentally updating the @code{guix} package to a commit that others can't refer to, a check is made that the commit used has already been pushed to the Savannah-hosted Guix git repository."
+msgstr "Pour éviter de mettre à jour accidentellement le paquet @code{guix} en un commit auquel les autres ne peuvent pas se référer, on vérifie que le commit utilisé a déjà été placé dans le dépôt git de Guix hébergé par Savannah."
+
+#. type: Plain text
+#: doc/contributing.texi:1372
+msgid "This check can be disabled, @emph{at your own peril}, by setting the @code{GUIX_ALLOW_ME_TO_USE_PRIVATE_COMMIT} environment variable."
+msgstr "Cette vérification peut être désactivée, @emph{à vos risques et périls}, en passant la variable d'environnement @code{GUIX_ALLOW_ME_TO_USE_PRIVATE_COMMIT}."
+
+#. type: Plain text
+#: doc/contributing.texi:1375
+msgid "To build the resulting 'guix' package when using a private commit, the following command can be used:"
+msgstr "Pour construire le paquet \"guix\" résultant lors de l'utilisation d'un commit privé, la commande suivante peut être utilisée :"
+
+#. type: example
+#: doc/contributing.texi:1378
+#, no-wrap
+msgid "./pre-inst-env guix build guix --with-git-url=guix=$PWD\n"
+msgstr ""
+"./pre-inst-env guix build guix --with-git-url=guix=$PWD\n"
+"\n"
 
 #. type: Plain text
 #: doc/guix.texi:7
@@ -1431,7 +2032,7 @@ msgstr ""
 "@frenchspacing on"
 
 #. type: title
-#: doc/guix.texi:7 doc/guix.texi:92
+#: doc/guix.texi:7 doc/guix.texi:112
 #, no-wrap
 msgid "GNU Guix Reference Manual"
 msgstr "Manuel de référence de GNU Guix"
@@ -1443,2082 +2044,2476 @@ msgid "version.texi"
 msgstr "version-fr.texi"
 
 #. type: copying
-#: doc/guix.texi:66
-#, fuzzy
-#| msgid "Copyright @copyright{} 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès@* Copyright @copyright{} 2013, 2014, 2016 Andreas Enge@* Copyright @copyright{} 2013 Nikita Karetnikov@* Copyright @copyright{} 2014, 2015, 2016 Alex Kost@* Copyright @copyright{} 2015, 2016 Mathieu Lirzin@* Copyright @copyright{} 2014 Pierre-Antoine Rault@* Copyright @copyright{} 2015 Taylan Ulrich Bayırlı/Kammer@* Copyright @copyright{} 2015, 2016, 2017 Leo Famulari@* Copyright @copyright{} 2015, 2016, 2017, 2018, 2019 Ricardo Wurmus@* Copyright @copyright{} 2016 Ben Woodcroft@* Copyright @copyright{} 2016, 2017, 2018 Chris Marusich@* Copyright @copyright{} 2016, 2017, 2018, 2019 Efraim Flashner@* Copyright @copyright{} 2016 John Darrington@* Copyright @copyright{} 2016, 2017 ng0@* Copyright @copyright{} 2016, 2017, 2018, 2019 Jan Nieuwenhuizen@* Copyright @copyright{} 2016 Julien Lepiller@* Copyright @copyright{} 2016 Alex ter Weele@* Copyright @copyright{} 2016, 2017, 2018, 2019 Christopher Baines@* Copyright @copyright{} 2017, 2018 Clément Lassieur@* Copyright @copyright{} 2017, 2018 Mathieu Othacehe@* Copyright @copyright{} 2017 Federico Beffa@* Copyright @copyright{} 2017, 2018 Carlo Zancanaro@* Copyright @copyright{} 2017 Thomas Danckaert@* Copyright @copyright{} 2017 humanitiesNerd@* Copyright @copyright{} 2017 Christopher Allan Webber@* Copyright @copyright{} 2017, 2018 Marius Bakke@* Copyright @copyright{} 2017 Hartmut Goebel@* Copyright @copyright{} 2017 Maxim Cournoyer@* Copyright @copyright{} 2017, 2018 Tobias Geerinckx-Rice@* Copyright @copyright{} 2017 George Clemmer@* Copyright @copyright{} 2017 Andy Wingo@* Copyright @copyright{} 2017, 2018, 2019 Arun Isaac@* Copyright @copyright{} 2017 nee@* Copyright @copyright{} 2018 Rutger Helling@* Copyright @copyright{} 2018 Oleg Pykhalov@* Copyright @copyright{} 2018 Mike Gerwitz@* Copyright @copyright{} 2018 Pierre-Antoine Rouby@* Copyright @copyright{} 2018 Gábor Boskovits@* Copyright @copyright{} 2018, 2019 Florian Pelz@* Copyright @copyright{} 2018 Laura Lazzati@* Copyright @copyright{} 2018 Alex Vong@* Copyright @copyright{} 2019 Josh Holland@* Copyright @copyright{} 2019 Diego Nicola Barbato@*"
-msgid "Copyright @copyright{} 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès@* Copyright @copyright{} 2013, 2014, 2016 Andreas Enge@* Copyright @copyright{} 2013 Nikita Karetnikov@* Copyright @copyright{} 2014, 2015, 2016 Alex Kost@* Copyright @copyright{} 2015, 2016 Mathieu Lirzin@* Copyright @copyright{} 2014 Pierre-Antoine Rault@* Copyright @copyright{} 2015 Taylan Ulrich Bayırlı/Kammer@* Copyright @copyright{} 2015, 2016, 2017 Leo Famulari@* Copyright @copyright{} 2015, 2016, 2017, 2018, 2019 Ricardo Wurmus@* Copyright @copyright{} 2016 Ben Woodcroft@* Copyright @copyright{} 2016, 2017, 2018 Chris Marusich@* Copyright @copyright{} 2016, 2017, 2018, 2019 Efraim Flashner@* Copyright @copyright{} 2016 John Darrington@* Copyright @copyright{} 2016, 2017 ng0@* Copyright @copyright{} 2016, 2017, 2018, 2019 Jan Nieuwenhuizen@* Copyright @copyright{} 2016 Julien Lepiller@* Copyright @copyright{} 2016 Alex ter Weele@* Copyright @copyright{} 2016, 2017, 2018, 2019 Christopher Baines@* Copyright @copyright{} 2017, 2018 Clément Lassieur@* Copyright @copyright{} 2017, 2018 Mathieu Othacehe@* Copyright @copyright{} 2017 Federico Beffa@* Copyright @copyright{} 2017, 2018 Carlo Zancanaro@* Copyright @copyright{} 2017 Thomas Danckaert@* Copyright @copyright{} 2017 humanitiesNerd@* Copyright @copyright{} 2017 Christopher Allan Webber@* Copyright @copyright{} 2017, 2018 Marius Bakke@* Copyright @copyright{} 2017 Hartmut Goebel@* Copyright @copyright{} 2017 Maxim Cournoyer@* Copyright @copyright{} 2017, 2018 Tobias Geerinckx-Rice@* Copyright @copyright{} 2017 George Clemmer@* Copyright @copyright{} 2017 Andy Wingo@* Copyright @copyright{} 2017, 2018, 2019 Arun Isaac@* Copyright @copyright{} 2017 nee@* Copyright @copyright{} 2018 Rutger Helling@* Copyright @copyright{} 2018 Oleg Pykhalov@* Copyright @copyright{} 2018 Mike Gerwitz@* Copyright @copyright{} 2018 Pierre-Antoine Rouby@* Copyright @copyright{} 2018 Gábor Boskovits@* Copyright @copyright{} 2018 Florian Pelz@* Copyright @copyright{} 2018 Laura Lazzati@* Copyright @copyright{} 2018 Alex Vong@* Copyright @copyright{} 2019 Josh Holland@*"
+#: doc/guix.texi:85
+msgid "Copyright @copyright{} 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès@* Copyright @copyright{} 2013, 2014, 2016 Andreas Enge@* Copyright @copyright{} 2013 Nikita Karetnikov@* Copyright @copyright{} 2014, 2015, 2016 Alex Kost@* Copyright @copyright{} 2015, 2016 Mathieu Lirzin@* Copyright @copyright{} 2014 Pierre-Antoine Rault@* Copyright @copyright{} 2015 Taylan Ulrich Bayırlı/Kammer@* Copyright @copyright{} 2015, 2016, 2017, 2019, 2020 Leo Famulari@* Copyright @copyright{} 2015, 2016, 2017, 2018, 2019, 2020 Ricardo Wurmus@* Copyright @copyright{} 2016 Ben Woodcroft@* Copyright @copyright{} 2016, 2017, 2018 Chris Marusich@* Copyright @copyright{} 2016, 2017, 2018, 2019, 2020 Efraim Flashner@* Copyright @copyright{} 2016 John Darrington@* Copyright @copyright{} 2016, 2017 Nikita Gillmann@* Copyright @copyright{} 2016, 2017, 2018, 2019, 2020 Jan Nieuwenhuizen@* Copyright @copyright{} 2016, 2017, 2018, 2019, 2020 Julien Lepiller@* Copyright @copyright{} 2016 Alex ter Weele@* Copyright @copyright{} 2016, 2017, 2018, 2019 Christopher Baines@* Copyright @copyright{} 2017, 2018, 2019 Clément Lassieur@* Copyright @copyright{} 2017, 2018, 2020 Mathieu Othacehe@* Copyright @copyright{} 2017 Federico Beffa@* Copyright @copyright{} 2017, 2018 Carlo Zancanaro@* Copyright @copyright{} 2017 Thomas Danckaert@* Copyright @copyright{} 2017 humanitiesNerd@* Copyright @copyright{} 2017 Christopher Allan Webber@* Copyright @copyright{} 2017, 2018, 2019, 2020 Marius Bakke@* Copyright @copyright{} 2017, 2019, 2020 Hartmut Goebel@* Copyright @copyright{} 2017, 2019, 2020 Maxim Cournoyer@* Copyright @copyright{} 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice@* Copyright @copyright{} 2017 George Clemmer@* Copyright @copyright{} 2017 Andy Wingo@* Copyright @copyright{} 2017, 2018, 2019, 2020 Arun Isaac@* Copyright @copyright{} 2017 nee@* Copyright @copyright{} 2018 Rutger Helling@* Copyright @copyright{} 2018 Oleg Pykhalov@* Copyright @copyright{} 2018 Mike Gerwitz@* Copyright @copyright{} 2018 Pierre-Antoine Rouby@* Copyright @copyright{} 2018, 2019 Gábor Boskovits@* Copyright @copyright{} 2018, 2019, 2020 Florian Pelz@* Copyright @copyright{} 2018 Laura Lazzati@* Copyright @copyright{} 2018 Alex Vong@* Copyright @copyright{} 2019 Josh Holland@* Copyright @copyright{} 2019, 2020 Diego Nicola Barbato@* Copyright @copyright{} 2019 Ivan Petkov@* Copyright @copyright{} 2019 Jakob L. Kreuze@* Copyright @copyright{} 2019 Kyle Andrews@* Copyright @copyright{} 2019 Alex Griffin@* Copyright @copyright{} 2019 Guillaume Le Vaillant@* Copyright @copyright{} 2020 Leo Prikler@* Copyright @copyright{} 2019, 2020 Simon Tournier@* Copyright @copyright{} 2020 Wiktor Żelazny@* Copyright @copyright{} 2020 Damien Cassou@* Copyright @copyright{} 2020 Jakub Kądziołka@* Copyright @copyright{} 2020 Jack Hill@* Copyright @copyright{} 2020 Naga Malleswari@* Copyright @copyright{} 2020 Brice Waegeneire@* Copyright @copyright{} 2020 R Veera Kumar@* Copyright @copyright{} 2020 Pierre Langlois@* Copyright @copyright{} 2020 pinoaffe@* Copyright @copyright{} 2020 André Batista@* Copyright @copyright{} 2020 Alexandru-Sergiu Marton@*"
 msgstr ""
-"Copyright @copyright{} 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès@*\n"
+"Copyright @copyright{} 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès@*\n"
 "Copyright @copyright{} 2013, 2014, 2016 Andreas Enge@*\n"
 "Copyright @copyright{} 2013 Nikita Karetnikov@*\n"
 "Copyright @copyright{} 2014, 2015, 2016 Alex Kost@*\n"
 "Copyright @copyright{} 2015, 2016 Mathieu Lirzin@*\n"
 "Copyright @copyright{} 2014 Pierre-Antoine Rault@*\n"
 "Copyright @copyright{} 2015 Taylan Ulrich Bayırlı/Kammer@*\n"
-"Copyright @copyright{} 2015, 2016, 2017 Leo Famulari@*\n"
-"Copyright @copyright{} 2015, 2016, 2017, 2018, 2019 Ricardo Wurmus@*\n"
+"Copyright @copyright{} 2015, 2016, 2017, 2019, 2020 Leo Famulari@*\n"
+"Copyright @copyright{} 2015, 2016, 2017, 2018, 2019, 2020 Ricardo Wurmus@*\n"
 "Copyright @copyright{} 2016 Ben Woodcroft@*\n"
 "Copyright @copyright{} 2016, 2017, 2018 Chris Marusich@*\n"
-"Copyright @copyright{} 2016, 2017, 2018, 2019 Efraim Flashner@*\n"
+"Copyright @copyright{} 2016, 2017, 2018, 2019, 2020 Efraim Flashner@*\n"
 "Copyright @copyright{} 2016 John Darrington@*\n"
-"Copyright @copyright{} 2016, 2017 ng0@*\n"
-"Copyright @copyright{} 2016, 2017, 2018, 2019 Jan Nieuwenhuizen@*\n"
-"Copyright @copyright{} 2016 Julien Lepiller@*\n"
+"Copyright @copyright{} 2016, 2017 Nikita Gillmann@*\n"
+"Copyright @copyright{} 2016, 2017, 2018, 2019, 2020 Jan Nieuwenhuizen@*\n"
+"Copyright @copyright{} 2016, 2017, 2018, 2019, 2020 Julien Lepiller@*\n"
 "Copyright @copyright{} 2016 Alex ter Weele@*\n"
 "Copyright @copyright{} 2016, 2017, 2018, 2019 Christopher Baines@*\n"
-"Copyright @copyright{} 2017, 2018 Clément Lassieur@*\n"
-"Copyright @copyright{} 2017, 2018 Mathieu Othacehe@*\n"
+"Copyright @copyright{} 2017, 2018, 2019 Clément Lassieur@*\n"
+"Copyright @copyright{} 2017, 2018, 2020 Mathieu Othacehe@*\n"
 "Copyright @copyright{} 2017 Federico Beffa@*\n"
 "Copyright @copyright{} 2017, 2018 Carlo Zancanaro@*\n"
 "Copyright @copyright{} 2017 Thomas Danckaert@*\n"
 "Copyright @copyright{} 2017 humanitiesNerd@*\n"
 "Copyright @copyright{} 2017 Christopher Allan Webber@*\n"
-"Copyright @copyright{} 2017, 2018 Marius Bakke@*\n"
-"Copyright @copyright{} 2017 Hartmut Goebel@*\n"
-"Copyright @copyright{} 2017 Maxim Cournoyer@*\n"
-"Copyright @copyright{} 2017, 2018 Tobias Geerinckx-Rice@*\n"
+"Copyright @copyright{} 2017, 2018, 2019, 2020 Marius Bakke@*\n"
+"Copyright @copyright{} 2017, 2019, 2020 Hartmut Goebel@*\n"
+"Copyright @copyright{} 2017, 2019, 2020 Maxim Cournoyer@*\n"
+"Copyright @copyright{} 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice@*\n"
 "Copyright @copyright{} 2017 George Clemmer@*\n"
 "Copyright @copyright{} 2017 Andy Wingo@*\n"
-"Copyright @copyright{} 2017, 2018, 2019 Arun Isaac@*\n"
+"Copyright @copyright{} 2017, 2018, 2019, 2020 Arun Isaac@*\n"
 "Copyright @copyright{} 2017 nee@*\n"
 "Copyright @copyright{} 2018 Rutger Helling@*\n"
 "Copyright @copyright{} 2018 Oleg Pykhalov@*\n"
 "Copyright @copyright{} 2018 Mike Gerwitz@*\n"
 "Copyright @copyright{} 2018 Pierre-Antoine Rouby@*\n"
-"Copyright @copyright{} 2018 Gábor Boskovits@*\n"
-"Copyright @copyright{} 2018, 2019 Florian Pelz@*\n"
+"Copyright @copyright{} 2018, 2019 Gábor Boskovits@*\n"
+"Copyright @copyright{} 2018, 2019, 2020 Florian Pelz@*\n"
 "Copyright @copyright{} 2018 Laura Lazzati@*\n"
 "Copyright @copyright{} 2018 Alex Vong@*\n"
 "Copyright @copyright{} 2019 Josh Holland@*\n"
-"Copyright @copyright{} 2019 Diego Nicola Barbato@*"
+"Copyright @copyright{} 2019, 2020 Diego Nicola Barbato@*\n"
+"Copyright @copyright{} 2019 Ivan Petkov@*\n"
+"Copyright @copyright{} 2019 Jakob L. Kreuze@*\n"
+"Copyright @copyright{} 2019 Kyle Andrews@*\n"
+"Copyright @copyright{} 2019 Alex Griffin@*\n"
+"Copyright @copyright{} 2019 Guillaume Le Vaillant@*\n"
+"Copyright @copyright{} 2020 Leo Prikler@*\n"
+"Copyright @copyright{} 2019, 2020 Simon Tournier@*\n"
+"Copyright @copyright{} 2020 Wiktor Żelazny@*\n"
+"Copyright @copyright{} 2020 Damien Cassou@*\n"
+"Copyright @copyright{} 2020 Jakub Kądziołka@*\n"
+"Copyright @copyright{} 2020 Jack Hill@*\n"
+"Copyright @copyright{} 2020 Naga Malleswari@*\n"
+"Copyright @copyright{} 2020 Brice Waegeneire@*\n"
+"Copyright @copyright{} 2020 R Veera Kumar@*\n"
+"Copyright @copyright{} 2020 Pierre Langlois@*\n"
+"Copyright @copyright{} 2020 pinoaffe@*\n"
+"Copyright @copyright{} 2020 André Batista@*\n"
+"Copyright @copyright{} 2020 Alexandru-Sergiu Marton@*"
 
 #. type: copying
-#: doc/guix.texi:73
+#: doc/guix.texi:92
 msgid "Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.  A copy of the license is included in the section entitled ``GNU Free Documentation License''."
 msgstr "Vous avez la permission de copier, distribuer ou modifier ce document sous les termes de la Licence GNU Free Documentation, version 1.3 ou toute version ultérieure publiée par la Free Software Foundation ; sans section invariante, texte de couverture et sans texte de quatrième de couverture.  Une copie de la licence est incluse dans la section intitulée « GNU Free Documentation License »."
 
 #. type: dircategory
-#: doc/guix.texi:75
+#: doc/guix.texi:94
 #, no-wrap
 msgid "System administration"
 msgstr "Administration système"
 
 #. type: menuentry
-#: doc/guix.texi:82
+#: doc/guix.texi:102
 msgid "Guix: (guix)"
 msgstr "Guix: (guix.fr)"
 
 #. type: menuentry
-#: doc/guix.texi:82
+#: doc/guix.texi:102
 msgid "Manage installed software and system configuration."
 msgstr "Gérer les logiciels installés et la configuration du système."
 
 #. type: menuentry
-#: doc/guix.texi:82
+#: doc/guix.texi:102
 msgid "guix package: (guix)Invoking guix package"
 msgstr "guix package : (guix.fr)Invoquer guix package"
 
 #. type: menuentry
-#: doc/guix.texi:82
+#: doc/guix.texi:102
 msgid "Installing, removing, and upgrading packages."
 msgstr "Installer, supprimer et mettre à jour des paquets."
 
 #. type: menuentry
-#: doc/guix.texi:82
+#: doc/guix.texi:102
 msgid "guix gc: (guix)Invoking guix gc"
 msgstr "guix gc : (guix.fr)Invoquer guix gc"
 
 #. type: menuentry
-#: doc/guix.texi:82
+#: doc/guix.texi:102
 msgid "Reclaiming unused disk space."
 msgstr "Récupérer de l'espace disque inutilisé."
 
 #. type: menuentry
-#: doc/guix.texi:82
+#: doc/guix.texi:102
 msgid "guix pull: (guix)Invoking guix pull"
 msgstr "guix pull : (guix.fr)Invoquer guix pull"
 
 #. type: menuentry
-#: doc/guix.texi:82
+#: doc/guix.texi:102
 msgid "Update the list of available packages."
 msgstr "Mettre à jour la liste des paquets disponibles."
 
 #. type: menuentry
-#: doc/guix.texi:82
+#: doc/guix.texi:102
 msgid "guix system: (guix)Invoking guix system"
 msgstr "guix system : (guix.fr)Invoquer guix system"
 
 #. type: menuentry
-#: doc/guix.texi:82
+#: doc/guix.texi:102
 msgid "Manage the operating system configuration."
 msgstr "Gérer la configuration du système d'exploitation."
 
+#. type: menuentry
+#: doc/guix.texi:102
+msgid "guix deploy: (guix)Invoking guix deploy"
+msgstr "guix deploy: (guix.fr)Invoquer guix deploy"
+
+#. type: menuentry
+#: doc/guix.texi:102
+msgid "Manage operating system configurations for remote hosts."
+msgstr "Gérer la configuration du système d'exploitation d'hôtes distants."
+
 #. type: dircategory
-#: doc/guix.texi:84
+#: doc/guix.texi:104
 #, no-wrap
 msgid "Software development"
 msgstr "Développement logiciel"
 
 #. type: menuentry
-#: doc/guix.texi:89
+#: doc/guix.texi:109
 msgid "guix environment: (guix)Invoking guix environment"
 msgstr "guix environment : (guix.fr)Invoquer guix environment"
 
 #. type: menuentry
-#: doc/guix.texi:89
+#: doc/guix.texi:109
 msgid "Building development environments with Guix."
 msgstr "Construire des environnements de construction avec Guix."
 
 #. type: menuentry
-#: doc/guix.texi:89
+#: doc/guix.texi:109
 msgid "guix build: (guix)Invoking guix build"
 msgstr "guix build : (guix.fr)Invoquer guix build"
 
 #. type: menuentry
-#: doc/guix.texi:89
+#: doc/guix.texi:109
 msgid "Building packages."
 msgstr "Construire des paquets."
 
 #. type: menuentry
-#: doc/guix.texi:89
+#: doc/guix.texi:109
 msgid "guix pack: (guix)Invoking guix pack"
 msgstr "guix pack : (guix.fr) Invoquer guix pack"
 
 #. type: menuentry
-#: doc/guix.texi:89
+#: doc/guix.texi:109
 msgid "Creating binary bundles."
 msgstr "Créer des lots binaires."
 
 #. type: subtitle
-#: doc/guix.texi:93
+#: doc/guix.texi:113
 #, no-wrap
 msgid "Using the GNU Guix Functional Package Manager"
 msgstr "Utiliser le gestionnaire de paquet fonctionnel GNU Guix"
 
 #. type: author
-#: doc/guix.texi:94
+#: doc/guix.texi:114
 #, no-wrap
 msgid "The GNU Guix Developers"
 msgstr "Les développeurs de GNU Guix"
 
 #. type: titlepage
-#: doc/guix.texi:100
+#: doc/guix.texi:120
 msgid "Edition @value{EDITION} @* @value{UPDATED} @*"
 msgstr "Édition @value{EDITION} @* @value{UPDATED} @*"
 
 #. type: node
-#: doc/guix.texi:107
+#: doc/guix.texi:127
 #, no-wrap
 msgid "Top"
 msgstr "Top"
 
 #. type: top
-#: doc/guix.texi:108
+#: doc/guix.texi:128
 #, no-wrap
 msgid "GNU Guix"
 msgstr "GNU Guix"
 
 #. type: Plain text
-#: doc/guix.texi:112
+#: doc/guix.texi:132
 msgid "This document describes GNU Guix version @value{VERSION}, a functional package management tool written for the GNU system."
 msgstr "Cette documentation décrit GNU Guix version @value{VERSION}, un outil de gestion de paquets fonctionnel écrit pour le système GNU@."
 
 #. type: Plain text
-#: doc/guix.texi:123
-#, fuzzy
-#| msgid "This manual is also available in Simplified Chinese (@pxref{Top,,, guix.zh_CN, GNU Guix参考手册}), French (@pxref{Top,,, guix.fr, Manuel de référence de GNU Guix}), German (@pxref{Top,,, guix.de, Referenzhandbuch zu GNU Guix}), Spanish (@pxref{Top,,, guix.es, Manual de referencia de GNU Guix}), and Russian (@pxref{Top,,, guix.ru, Руководство GNU Guix}).  If you would like to translate it in your native language, consider joining the @uref{https://translationproject.org/domain/guix-manual.html, Translation Project}."
-msgid "This manual is also available in Simplified Chinese (@pxref{Top,,, guix.zh_CN, GNU Guix参考手册}), French (@pxref{Top,,, guix.fr, Manuel de référence de GNU Guix}), German (@pxref{Top,,, guix.de, Referenzhandbuch zu GNU Guix}), and Spanish (@pxref{Top,,, guix.es, Manual de referencia de GNU Guix}).  If you would like to translate it in your native language, consider joining the @uref{https://translationproject.org/domain/guix-manual.html, Translation Project}."
+#: doc/guix.texi:144
+msgid "This manual is also available in Simplified Chinese (@pxref{Top,,, guix.zh_CN, GNU Guix参考手册}), French (@pxref{Top,,, guix.fr, Manuel de référence de GNU Guix}), German (@pxref{Top,,, guix.de, Referenzhandbuch zu GNU Guix}), Spanish (@pxref{Top,,, guix.es, Manual de referencia de GNU Guix}), and Russian (@pxref{Top,,, guix.ru, Руководство GNU Guix}).  If you would like to translate it in your native language, consider joining the @uref{https://translationproject.org/domain/guix-manual.html, Translation Project}."
 msgstr "Ce manuel est aussi disponible en anglais (@pxref{Top,,, guix, GNU Guix Reference Manual}), en allemand (@pxref{Top,,, guix.de, Referenzhandbuch zu GNU Guix}), en chinois simplifié (@pxref{Top,,, guix.zh_CN, GNU Guix参考手册}), en espagnol (@pxref{Top,,, guix.es, Manual de referencia de GNU Guix}) et en russe (@pxref{Top,,, guix.ru, Руководство GNU Guix}).  Si vous souhaitez nous aider à traduire ce manuel en français, vous pouvez nous rejoindre sur le @uref{https://translationproject.org/domain/guix-manual.html, projet de traduction} et sur la liste de diffusion @uref{https://listes.traduc.org/mailman/listinfo/traduc/, traduc@@traduc.org}."
 
 #. type: chapter
-#: doc/guix.texi:139 doc/guix.texi:149 doc/guix.texi:312 doc/guix.texi:313
+#: doc/guix.texi:162 doc/guix.texi:172 doc/guix.texi:372 doc/guix.texi:373
 #, no-wrap
 msgid "Introduction"
 msgstr "Introduction"
 
 #. type: menuentry
-#: doc/guix.texi:139
+#: doc/guix.texi:162
 msgid "What is Guix about?"
 msgstr "Qu'est-ce que Guix ?"
 
 #. type: chapter
-#: doc/guix.texi:139 doc/guix.texi:154 doc/guix.texi:471 doc/guix.texi:472
+#: doc/guix.texi:162 doc/guix.texi:177 doc/guix.texi:542 doc/guix.texi:543
 #, no-wrap
 msgid "Installation"
 msgstr "Installation"
 
 #. type: menuentry
-#: doc/guix.texi:139
+#: doc/guix.texi:162
 msgid "Installing Guix."
 msgstr "Installer Guix."
 
 #. type: chapter
-#: doc/guix.texi:139 doc/guix.texi:169 doc/guix.texi:1768 doc/guix.texi:1769
+#: doc/guix.texi:162 doc/guix.texi:193 doc/guix.texi:1903 doc/guix.texi:1904
 #, no-wrap
 msgid "System Installation"
 msgstr "Installation du système"
 
 #. type: menuentry
-#: doc/guix.texi:139
+#: doc/guix.texi:162
 msgid "Installing the whole operating system."
 msgstr "Installer le système d'exploitation complet."
 
 #. type: chapter
-#: doc/guix.texi:139 doc/guix.texi:186 doc/guix.texi:2479 doc/guix.texi:2480
+#: doc/guix.texi:162 doc/guix.texi:2647 doc/guix.texi:2648
+#, no-wrap
+msgid "Getting Started"
+msgstr "Pour démarrer"
+
+#. type: menuentry
+#: doc/guix.texi:162
+msgid "Your first steps."
+msgstr "Vos premiers pas."
+
+#. type: chapter
+#: doc/guix.texi:162 doc/guix.texi:210 doc/guix.texi:2851 doc/guix.texi:2852
 #, no-wrap
 msgid "Package Management"
 msgstr "Gestion de paquets"
 
 #. type: menuentry
-#: doc/guix.texi:139
+#: doc/guix.texi:162
 msgid "Package installation, upgrade, etc."
 msgstr "Installation des paquets, mises à jour, etc."
 
 #. type: chapter
-#: doc/guix.texi:139 doc/guix.texi:208 doc/guix.texi:4331 doc/guix.texi:4332
+#: doc/guix.texi:162 doc/guix.texi:233 doc/guix.texi:4854 doc/guix.texi:4855
+#, no-wrap
+msgid "Channels"
+msgstr "Canaux"
+
+#. type: menuentry
+#: doc/guix.texi:162
+msgid "Customizing the package collection."
+msgstr "Personnaliser la collection des paquets."
+
+#. type: chapter
+#: doc/guix.texi:162 doc/guix.texi:246 doc/guix.texi:5357 doc/guix.texi:5358
 #, no-wrap
 msgid "Development"
 msgstr "Développement"
 
 #. type: menuentry
-#: doc/guix.texi:139
+#: doc/guix.texi:162
 msgid "Guix-aided software development."
 msgstr "Développement logiciel simplifié par Guix."
 
 #. type: chapter
-#: doc/guix.texi:139 doc/guix.texi:213 doc/guix.texi:4955 doc/guix.texi:4956
+#: doc/guix.texi:162 doc/guix.texi:253 doc/guix.texi:6177 doc/guix.texi:6178
 #, no-wrap
 msgid "Programming Interface"
 msgstr "Interface de programmation"
 
 #. type: menuentry
-#: doc/guix.texi:139
+#: doc/guix.texi:162
 msgid "Using Guix in Scheme."
 msgstr "Utiliser Guix en Scheme."
 
 #. type: chapter
-#: doc/guix.texi:139 doc/guix.texi:229 doc/guix.texi:7583 doc/guix.texi:7584
+#: doc/guix.texi:162 doc/guix.texi:272 doc/guix.texi:9832 doc/guix.texi:9833
 #, no-wrap
 msgid "Utilities"
 msgstr "Utilitaires"
 
 #. type: menuentry
-#: doc/guix.texi:139
+#: doc/guix.texi:162
 msgid "Package management commands."
 msgstr "Commandes de gestion de paquets."
 
 #. type: chapter
-#: doc/guix.texi:139 doc/guix.texi:254 doc/guix.texi:10194 doc/guix.texi:10195
+#: doc/guix.texi:162 doc/guix.texi:297 doc/guix.texi:12862 doc/guix.texi:12863
 #, no-wrap
 msgid "System Configuration"
 msgstr "Configuration système"
 
 #. type: menuentry
-#: doc/guix.texi:139
+#: doc/guix.texi:162
 msgid "Configuring the operating system."
 msgstr "Configurer le système d'exploitation."
 
 #. type: chapter
-#: doc/guix.texi:139 doc/guix.texi:25392 doc/guix.texi:25393
+#: doc/guix.texi:162 doc/guix.texi:32163 doc/guix.texi:32164
 #, no-wrap
 msgid "Documentation"
 msgstr "Documentation"
 
 #. type: menuentry
-#: doc/guix.texi:139
+#: doc/guix.texi:162
 msgid "Browsing software user manuals."
 msgstr "Visualiser les manuels des logiciels."
 
 #. type: chapter
-#: doc/guix.texi:139 doc/guix.texi:25456 doc/guix.texi:25457
+#: doc/guix.texi:162 doc/guix.texi:359 doc/guix.texi:32227 doc/guix.texi:32228
 #, no-wrap
 msgid "Installing Debugging Files"
 msgstr "Installer les fichiers de débogage"
 
 #. type: menuentry
-#: doc/guix.texi:139
+#: doc/guix.texi:162
 msgid "Feeding the debugger."
 msgstr "Nourrir le débogueur."
 
 #. type: chapter
-#: doc/guix.texi:139 doc/guix.texi:25522 doc/guix.texi:25523
+#: doc/guix.texi:162 doc/guix.texi:32368 doc/guix.texi:32369
 #, no-wrap
 msgid "Security Updates"
 msgstr "Mises à jour de sécurité"
 
 #. type: menuentry
-#: doc/guix.texi:139
+#: doc/guix.texi:162
 msgid "Deploying security fixes quickly."
 msgstr "Déployer des correctifs de sécurité rapidement."
 
 #. type: chapter
-#: doc/guix.texi:139 doc/guix.texi:25642 doc/guix.texi:25643
+#: doc/guix.texi:162 doc/guix.texi:364 doc/guix.texi:32483 doc/guix.texi:32484
 #, no-wrap
 msgid "Bootstrapping"
 msgstr "Bootstrapping"
 
 #. type: menuentry
-#: doc/guix.texi:139
+#: doc/guix.texi:162
 msgid "GNU/Linux built from scratch."
 msgstr "GNU/Linux depuis zéro."
 
 #. type: node
-#: doc/guix.texi:139 doc/guix.texi:25826
+#: doc/guix.texi:162 doc/guix.texi:32770
 #, no-wrap
 msgid "Porting"
 msgstr "Porter"
 
 #. type: menuentry
-#: doc/guix.texi:139
+#: doc/guix.texi:162
 msgid "Targeting another platform or kernel."
 msgstr "Cibler une autre plateforme ou un autre noyau."
 
 #. type: menuentry
-#: doc/guix.texi:139
+#: doc/guix.texi:162
 msgid "Your help needed!"
 msgstr "Nous avons besoin de votre aide !"
 
 #. type: chapter
-#: doc/guix.texi:144 doc/guix.texi:25874 doc/guix.texi:25875
+#: doc/guix.texi:167 doc/guix.texi:32818 doc/guix.texi:32819
 #, no-wrap
 msgid "Acknowledgments"
 msgstr "Remerciements"
 
 #. type: menuentry
-#: doc/guix.texi:144
+#: doc/guix.texi:167
 msgid "Thanks!"
 msgstr "Merci !"
 
 #. type: appendix
-#: doc/guix.texi:144 doc/guix.texi:25896 doc/guix.texi:25897
+#: doc/guix.texi:167 doc/guix.texi:32840 doc/guix.texi:32841
 #, no-wrap
 msgid "GNU Free Documentation License"
 msgstr "La licence GNU Free Documentation"
 
 #. type: menuentry
-#: doc/guix.texi:144
+#: doc/guix.texi:167
 msgid "The license of this manual."
 msgstr "La licence de ce manuel."
 
 #. type: unnumbered
-#: doc/guix.texi:144 doc/guix.texi:25902 doc/guix.texi:25903
+#: doc/guix.texi:167 doc/guix.texi:32846 doc/guix.texi:32847
 #, no-wrap
 msgid "Concept Index"
 msgstr "Index des concepts"
 
 #. type: menuentry
-#: doc/guix.texi:144
+#: doc/guix.texi:167
 msgid "Concepts."
 msgstr "Les concepts."
 
 #. type: unnumbered
-#: doc/guix.texi:144 doc/guix.texi:25906 doc/guix.texi:25907
+#: doc/guix.texi:167 doc/guix.texi:32850 doc/guix.texi:32851
 #, no-wrap
 msgid "Programming Index"
 msgstr "Index de programmation"
 
 #. type: menuentry
-#: doc/guix.texi:144
+#: doc/guix.texi:167
 msgid "Data types, functions, and variables."
 msgstr "Types de données, fonctions et variables."
 
 #. type: menuentry
-#: doc/guix.texi:147
+#: doc/guix.texi:170
 msgid "--- The Detailed Node Listing ---"
 msgstr "--- Liste détaillée des nœuds ---"
 
 #. type: section
-#: doc/guix.texi:152 doc/guix.texi:339 doc/guix.texi:341 doc/guix.texi:342
+#: doc/guix.texi:175 doc/guix.texi:399 doc/guix.texi:401 doc/guix.texi:402
 #, no-wrap
 msgid "Managing Software the Guix Way"
 msgstr "Gérer ses logiciels avec Guix"
 
 #. type: menuentry
-#: doc/guix.texi:152 doc/guix.texi:339
+#: doc/guix.texi:175 doc/guix.texi:399
 msgid "What's special."
 msgstr "Ce qui est spécial."
 
 #. type: section
-#: doc/guix.texi:152 doc/guix.texi:339 doc/guix.texi:396 doc/guix.texi:397
+#: doc/guix.texi:175 doc/guix.texi:399 doc/guix.texi:456 doc/guix.texi:457
 #, no-wrap
 msgid "GNU Distribution"
 msgstr "Distribution GNU"
 
 #. type: menuentry
-#: doc/guix.texi:152 doc/guix.texi:339
+#: doc/guix.texi:175 doc/guix.texi:399
 msgid "The packages and tools."
 msgstr "Les paquets et les outils."
 
 #. type: section
-#: doc/guix.texi:161 doc/guix.texi:510 doc/guix.texi:512 doc/guix.texi:513
+#: doc/guix.texi:185 doc/guix.texi:582 doc/guix.texi:584 doc/guix.texi:585
 #, no-wrap
 msgid "Binary Installation"
 msgstr "Installation binaire"
 
 #. type: menuentry
-#: doc/guix.texi:161 doc/guix.texi:510
+#: doc/guix.texi:185 doc/guix.texi:582
 msgid "Getting Guix running in no time!"
 msgstr "Commencer à utiliser Guix en un rien de temps !"
 
 #. type: section
-#: doc/guix.texi:161 doc/guix.texi:510 doc/guix.texi:714 doc/guix.texi:715
+#: doc/guix.texi:185 doc/guix.texi:582 doc/guix.texi:802 doc/guix.texi:803
 #, no-wrap
 msgid "Requirements"
 msgstr "Prérequis"
 
 #. type: menuentry
-#: doc/guix.texi:161 doc/guix.texi:510
+#: doc/guix.texi:185 doc/guix.texi:582
 msgid "Software needed to build and run Guix."
 msgstr "Logiciels requis pour construire et lancer Guix."
 
 #. type: section
-#: doc/guix.texi:161 doc/guix.texi:510 doc/guix.texi:798 doc/guix.texi:799
+#: doc/guix.texi:185 doc/guix.texi:582 doc/guix.texi:879 doc/guix.texi:880
 #, no-wrap
 msgid "Running the Test Suite"
 msgstr "Lancer la suite de tests"
 
 #. type: menuentry
-#: doc/guix.texi:161 doc/guix.texi:510
+#: doc/guix.texi:185 doc/guix.texi:582
 msgid "Testing Guix."
 msgstr "Tester Guix."
 
 #. type: section
-#: doc/guix.texi:161 doc/guix.texi:163 doc/guix.texi:510 doc/guix.texi:863
-#: doc/guix.texi:864
+#: doc/guix.texi:185 doc/guix.texi:187 doc/guix.texi:582 doc/guix.texi:944
+#: doc/guix.texi:945
 #, no-wrap
 msgid "Setting Up the Daemon"
 msgstr "Paramétrer le démon"
 
 #. type: menuentry
-#: doc/guix.texi:161 doc/guix.texi:510
+#: doc/guix.texi:185 doc/guix.texi:582
 msgid "Preparing the build daemon's environment."
 msgstr "Préparer l'environnement du démon de construction."
 
 #. type: node
-#: doc/guix.texi:161 doc/guix.texi:510 doc/guix.texi:1294
+#: doc/guix.texi:185 doc/guix.texi:582 doc/guix.texi:1409
 #, no-wrap
 msgid "Invoking guix-daemon"
 msgstr "Invoquer guix-daemon"
 
 #. type: menuentry
-#: doc/guix.texi:161 doc/guix.texi:510
+#: doc/guix.texi:185 doc/guix.texi:582
 msgid "Running the build daemon."
 msgstr "Lancer le démon de construction."
 
 #. type: section
-#: doc/guix.texi:161 doc/guix.texi:510 doc/guix.texi:1562 doc/guix.texi:1563
+#: doc/guix.texi:185 doc/guix.texi:582 doc/guix.texi:1681 doc/guix.texi:1682
 #, no-wrap
 msgid "Application Setup"
 msgstr "Réglages applicatifs"
 
 #. type: menuentry
-#: doc/guix.texi:161 doc/guix.texi:510
+#: doc/guix.texi:185 doc/guix.texi:582
 msgid "Application-specific setup."
 msgstr "Réglages spécifiques pour les application."
 
+#. type: section
+#: doc/guix.texi:185 doc/guix.texi:582 doc/guix.texi:1866 doc/guix.texi:1867
+#, no-wrap
+msgid "Upgrading Guix"
+msgstr "Mettre à niveau Guix"
+
+#. type: menuentry
+#: doc/guix.texi:185 doc/guix.texi:582
+msgid "Upgrading Guix and its build daemon."
+msgstr "Mettre à niveau Guix et son démon de construction."
+
 #. type: subsection
-#: doc/guix.texi:167 doc/guix.texi:883 doc/guix.texi:885 doc/guix.texi:886
+#: doc/guix.texi:191 doc/guix.texi:964 doc/guix.texi:966 doc/guix.texi:967
 #, no-wrap
 msgid "Build Environment Setup"
 msgstr "Réglages de l'environnement de construction"
 
 #. type: menuentry
-#: doc/guix.texi:167 doc/guix.texi:883
+#: doc/guix.texi:191 doc/guix.texi:964
 msgid "Preparing the isolated build environment."
 msgstr "Préparer l'environnement de construction isolé."
 
 #. type: node
-#: doc/guix.texi:167 doc/guix.texi:883 doc/guix.texi:1002
+#: doc/guix.texi:191 doc/guix.texi:964 doc/guix.texi:1085
 #, no-wrap
 msgid "Daemon Offload Setup"
 msgstr "Réglages du délestage du démon"
 
 #. type: menuentry
-#: doc/guix.texi:167 doc/guix.texi:883
+#: doc/guix.texi:191 doc/guix.texi:964
 msgid "Offloading builds to remote machines."
 msgstr "Envoyer des constructions à des machines distantes."
 
 #. type: subsection
-#: doc/guix.texi:167 doc/guix.texi:883 doc/guix.texi:1208 doc/guix.texi:1209
+#: doc/guix.texi:191 doc/guix.texi:964 doc/guix.texi:1323 doc/guix.texi:1324
 #, no-wrap
 msgid "SELinux Support"
 msgstr "Support de SELinux"
 
 #. type: menuentry
-#: doc/guix.texi:167 doc/guix.texi:883
+#: doc/guix.texi:191 doc/guix.texi:964
 msgid "Using an SELinux policy for the daemon."
 msgstr "Utiliser une politique SELinux pour le démon."
 
 #. type: section
-#: doc/guix.texi:179 doc/guix.texi:1244 doc/guix.texi:1802 doc/guix.texi:1804
-#: doc/guix.texi:1805
+#: doc/guix.texi:203 doc/guix.texi:1359 doc/guix.texi:1937 doc/guix.texi:1939
+#: doc/guix.texi:1940
 #, no-wrap
 msgid "Limitations"
 msgstr "Limitations"
 
 #. type: menuentry
-#: doc/guix.texi:179 doc/guix.texi:1802
+#: doc/guix.texi:203 doc/guix.texi:1937
 msgid "What you can expect."
 msgstr "Ce à quoi vous attendre."
 
 #. type: section
-#: doc/guix.texi:179 doc/guix.texi:1802 doc/guix.texi:1833 doc/guix.texi:1834
+#: doc/guix.texi:203 doc/guix.texi:1937 doc/guix.texi:1968 doc/guix.texi:1969
 #, no-wrap
 msgid "Hardware Considerations"
 msgstr "Considérations matérielles"
 
 #. type: menuentry
-#: doc/guix.texi:179 doc/guix.texi:1802
+#: doc/guix.texi:203 doc/guix.texi:1937
 msgid "Supported hardware."
 msgstr "Matériel supporté."
 
 #. type: section
-#: doc/guix.texi:179 doc/guix.texi:1802 doc/guix.texi:1868 doc/guix.texi:1869
+#: doc/guix.texi:203 doc/guix.texi:1937 doc/guix.texi:2003 doc/guix.texi:2004
 #, no-wrap
 msgid "USB Stick and DVD Installation"
 msgstr "Installation depuis une clef USB ou un DVD"
 
 #. type: menuentry
-#: doc/guix.texi:179 doc/guix.texi:1802
+#: doc/guix.texi:203 doc/guix.texi:1937
 msgid "Preparing the installation medium."
 msgstr "Préparer le média d'installation."
 
 #. type: section
-#: doc/guix.texi:179 doc/guix.texi:1802 doc/guix.texi:1967 doc/guix.texi:1968
+#: doc/guix.texi:203 doc/guix.texi:1937 doc/guix.texi:2108 doc/guix.texi:2109
 #, no-wrap
 msgid "Preparing for Installation"
 msgstr "Préparer l'installation"
 
 #. type: menuentry
-#: doc/guix.texi:179 doc/guix.texi:1802
+#: doc/guix.texi:203 doc/guix.texi:1937
 msgid "Networking, partitioning, etc."
 msgstr "Réseau, partitionnement, etc."
 
 #. type: section
-#: doc/guix.texi:179 doc/guix.texi:1802 doc/guix.texi:1990 doc/guix.texi:1991
+#: doc/guix.texi:203 doc/guix.texi:1937 doc/guix.texi:2131 doc/guix.texi:2132
 #, no-wrap
 msgid "Guided Graphical Installation"
 msgstr "Installation graphique guidée"
 
 #. type: menuentry
-#: doc/guix.texi:179 doc/guix.texi:1802
+#: doc/guix.texi:203 doc/guix.texi:1937
 msgid "Easy graphical installation."
 msgstr "Installation graphique facile."
 
 #. type: section
-#: doc/guix.texi:179 doc/guix.texi:181 doc/guix.texi:1802 doc/guix.texi:2021
-#: doc/guix.texi:2022
+#: doc/guix.texi:203 doc/guix.texi:205 doc/guix.texi:1937 doc/guix.texi:2162
+#: doc/guix.texi:2163
 #, no-wrap
 msgid "Manual Installation"
 msgstr "Installation manuelle"
 
 #. type: menuentry
-#: doc/guix.texi:179 doc/guix.texi:1802
+#: doc/guix.texi:203 doc/guix.texi:1937
 msgid "Manual installation for wizards."
 msgstr "Installation manuelle pour les sorciers."
 
 #. type: section
-#: doc/guix.texi:179 doc/guix.texi:1802 doc/guix.texi:2364 doc/guix.texi:2365
+#: doc/guix.texi:203 doc/guix.texi:1937 doc/guix.texi:2530 doc/guix.texi:2531
 #, no-wrap
 msgid "After System Installation"
 msgstr "Après l'installation du système"
 
 #. type: menuentry
-#: doc/guix.texi:179 doc/guix.texi:1802
+#: doc/guix.texi:203 doc/guix.texi:1937
 msgid "When installation succeeded."
 msgstr "Une fois que l'installation a réussi."
 
 #. type: node
-#: doc/guix.texi:179 doc/guix.texi:1802 doc/guix.texi:2392
+#: doc/guix.texi:203 doc/guix.texi:1937 doc/guix.texi:2564
 #, no-wrap
 msgid "Installing Guix in a VM"
 msgstr "Installer Guix dans une VM"
 
 #. type: menuentry
-#: doc/guix.texi:179 doc/guix.texi:1802
+#: doc/guix.texi:203 doc/guix.texi:1937
 msgid "Guix System playground."
 msgstr "Jouer avec le système Guix."
 
 #. type: section
-#: doc/guix.texi:179 doc/guix.texi:1802 doc/guix.texi:2446 doc/guix.texi:2447
+#: doc/guix.texi:203 doc/guix.texi:1937 doc/guix.texi:2615 doc/guix.texi:2616
 #, no-wrap
 msgid "Building the Installation Image"
 msgstr "Construire l'image d'installation"
 
 #. type: menuentry
-#: doc/guix.texi:179 doc/guix.texi:1802
+#: doc/guix.texi:203 doc/guix.texi:1937
 msgid "How this comes to be."
 msgstr "D'où vient tout cela."
 
 #. type: node
-#: doc/guix.texi:184 doc/guix.texi:2039 doc/guix.texi:2041
+#: doc/guix.texi:208 doc/guix.texi:2180 doc/guix.texi:2182
 #, no-wrap
 msgid "Keyboard Layout and Networking and Partitioning"
 msgstr "Disposition du clavier réseau et partitionnement"
 
 #. type: menuentry
-#: doc/guix.texi:184 doc/guix.texi:2039
+#: doc/guix.texi:208 doc/guix.texi:2180
 msgid "Initial setup."
 msgstr "Paramètres initiaux."
 
 #. type: subsection
-#: doc/guix.texi:184 doc/guix.texi:2039 doc/guix.texi:2276 doc/guix.texi:2277
+#: doc/guix.texi:208 doc/guix.texi:2180 doc/guix.texi:2442 doc/guix.texi:2443
 #, no-wrap
 msgid "Proceeding with the Installation"
 msgstr "Effectuer l'installation"
 
 #. type: menuentry
-#: doc/guix.texi:184 doc/guix.texi:2039
+#: doc/guix.texi:208 doc/guix.texi:2180
 msgid "Installing."
 msgstr "Installer."
 
 #. type: section
-#: doc/guix.texi:197 doc/guix.texi:2511 doc/guix.texi:2513 doc/guix.texi:2514
+#: doc/guix.texi:221 doc/guix.texi:2883 doc/guix.texi:2885 doc/guix.texi:2886
 #, no-wrap
 msgid "Features"
 msgstr "Fonctionnalités"
 
 #. type: menuentry
-#: doc/guix.texi:197 doc/guix.texi:2511
+#: doc/guix.texi:221 doc/guix.texi:2883
 msgid "How Guix will make your life brighter."
 msgstr "Comment Guix va rendre votre vie plus heureuse."
 
 #. type: node
-#: doc/guix.texi:197 doc/guix.texi:2511 doc/guix.texi:2599
+#: doc/guix.texi:221 doc/guix.texi:2883 doc/guix.texi:2975
 #, no-wrap
 msgid "Invoking guix package"
 msgstr "Invoquer guix package"
 
 #. type: menuentry
-#: doc/guix.texi:197 doc/guix.texi:2511
+#: doc/guix.texi:221 doc/guix.texi:2883
 msgid "Package installation, removal, etc."
 msgstr "Installation, suppression, etc.@: de paquets."
 
 #. type: section
-#: doc/guix.texi:197 doc/guix.texi:199 doc/guix.texi:2511 doc/guix.texi:3100
-#: doc/guix.texi:3101
+#: doc/guix.texi:221 doc/guix.texi:223 doc/guix.texi:2883 doc/guix.texi:3544
+#: doc/guix.texi:3545
 #, no-wrap
 msgid "Substitutes"
 msgstr "Substituts"
 
 #. type: menuentry
-#: doc/guix.texi:197 doc/guix.texi:2511
+#: doc/guix.texi:221 doc/guix.texi:2883
 msgid "Downloading pre-built binaries."
 msgstr "Télécharger des binaire déjà construits."
 
 #. type: section
-#: doc/guix.texi:197 doc/guix.texi:2511 doc/guix.texi:3328 doc/guix.texi:3329
+#: doc/guix.texi:221 doc/guix.texi:2883 doc/guix.texi:3875 doc/guix.texi:3876
 #, no-wrap
 msgid "Packages with Multiple Outputs"
 msgstr "Des paquets avec plusieurs résultats"
 
 #. type: menuentry
-#: doc/guix.texi:197 doc/guix.texi:2511
+#: doc/guix.texi:221 doc/guix.texi:2883
 msgid "Single source package, multiple outputs."
 msgstr "Un seul paquet source, plusieurs résultats."
 
 #. type: node
-#: doc/guix.texi:197 doc/guix.texi:2511 doc/guix.texi:3382
+#: doc/guix.texi:221 doc/guix.texi:2883 doc/guix.texi:3929
 #, no-wrap
 msgid "Invoking guix gc"
 msgstr "Invoquer guix gc"
 
 #. type: menuentry
-#: doc/guix.texi:197 doc/guix.texi:2511
+#: doc/guix.texi:221 doc/guix.texi:2883
 msgid "Running the garbage collector."
 msgstr "Lancer le ramasse-miettes."
 
 #. type: node
-#: doc/guix.texi:197 doc/guix.texi:2511 doc/guix.texi:3588
+#: doc/guix.texi:221 doc/guix.texi:2883 doc/guix.texi:4139
 #, no-wrap
 msgid "Invoking guix pull"
 msgstr "Invoquer guix pull"
 
 #. type: menuentry
-#: doc/guix.texi:197 doc/guix.texi:2511
+#: doc/guix.texi:221 doc/guix.texi:2883
 msgid "Fetching the latest Guix and distribution."
 msgstr "Récupérer la dernière version de Guix et de la distribution."
 
-#. type: section
-#: doc/guix.texi:197 doc/guix.texi:2511 doc/guix.texi:3743 doc/guix.texi:3744
+#. type: node
+#: doc/guix.texi:221 doc/guix.texi:2883 doc/guix.texi:4386
 #, no-wrap
-msgid "Channels"
-msgstr "Canaux"
+msgid "Invoking guix time-machine"
+msgstr "Invoquer guix time-machine"
 
 #. type: menuentry
-#: doc/guix.texi:197 doc/guix.texi:2511
-msgid "Customizing the package collection."
-msgstr "Personnaliser la collection des paquets."
+#: doc/guix.texi:221 doc/guix.texi:2883
+msgid "Running an older revision of Guix."
+msgstr "Lancer une ancienne révision de Guix."
 
 #. type: section
-#: doc/guix.texi:197 doc/guix.texi:2511 doc/guix.texi:3956 doc/guix.texi:3957
+#: doc/guix.texi:221 doc/guix.texi:2883 doc/guix.texi:4441 doc/guix.texi:4442
 #, no-wrap
 msgid "Inferiors"
 msgstr "Inférieurs"
 
 #. type: menuentry
-#: doc/guix.texi:197 doc/guix.texi:2511
+#: doc/guix.texi:221 doc/guix.texi:2883
 msgid "Interacting with another revision of Guix."
 msgstr "Interagir avec une autre révision de Guix."
 
 #. type: node
-#: doc/guix.texi:197 doc/guix.texi:2511 doc/guix.texi:4084
+#: doc/guix.texi:221 doc/guix.texi:2883 doc/guix.texi:4569
 #, no-wrap
 msgid "Invoking guix describe"
 msgstr "Invoquer guix describe"
 
 #. type: menuentry
-#: doc/guix.texi:197 doc/guix.texi:2511
+#: doc/guix.texi:221 doc/guix.texi:2883
 msgid "Display information about your Guix revision."
 msgstr "Affiche des informations sur la révision Guix actuelle."
 
 #. type: node
-#: doc/guix.texi:197 doc/guix.texi:2511 doc/guix.texi:4165
+#: doc/guix.texi:221 doc/guix.texi:2883 doc/guix.texi:4664
 #, no-wrap
 msgid "Invoking guix archive"
 msgstr "Invoquer guix archive"
 
 #. type: menuentry
-#: doc/guix.texi:197 doc/guix.texi:2511
+#: doc/guix.texi:221 doc/guix.texi:2883
 msgid "Exporting and importing store files."
 msgstr "Exporter et importer des fichiers du dépôt."
 
 #. type: subsection
-#: doc/guix.texi:206 doc/guix.texi:3123 doc/guix.texi:3125 doc/guix.texi:3126
+#: doc/guix.texi:231 doc/guix.texi:3568 doc/guix.texi:3570 doc/guix.texi:3571
 #, no-wrap
 msgid "Official Substitute Server"
 msgstr "Serveur de substituts officiel"
 
 #. type: menuentry
-#: doc/guix.texi:206 doc/guix.texi:3123
+#: doc/guix.texi:231 doc/guix.texi:3568
 msgid "One particular source of substitutes."
 msgstr "Une source particulière de substituts."
 
 #. type: subsection
-#: doc/guix.texi:206 doc/guix.texi:3123 doc/guix.texi:3155 doc/guix.texi:3156
+#: doc/guix.texi:231 doc/guix.texi:3568 doc/guix.texi:3599 doc/guix.texi:3600
 #, no-wrap
 msgid "Substitute Server Authorization"
 msgstr "Autoriser un serveur de substituts"
 
 #. type: menuentry
-#: doc/guix.texi:206 doc/guix.texi:3123
+#: doc/guix.texi:231 doc/guix.texi:3568
 msgid "How to enable or disable substitutes."
 msgstr "Comment activer ou désactiver les substituts."
 
 #. type: subsection
-#: doc/guix.texi:206 doc/guix.texi:3123 doc/guix.texi:3223 doc/guix.texi:3224
+#: doc/guix.texi:231 doc/guix.texi:3568 doc/guix.texi:3668 doc/guix.texi:3669
+#, no-wrap
+msgid "Getting Substitutes from Other Servers"
+msgstr "Récupérer des substituts d'autres serveurs"
+
+#. type: menuentry
+#: doc/guix.texi:231 doc/guix.texi:3568
+msgid "Substitute diversity."
+msgstr "Diversité des substituts."
+
+#. type: subsection
+#: doc/guix.texi:231 doc/guix.texi:3568 doc/guix.texi:3770 doc/guix.texi:3771
 #, no-wrap
 msgid "Substitute Authentication"
 msgstr "Authentification des substituts"
 
 #. type: menuentry
-#: doc/guix.texi:206 doc/guix.texi:3123
+#: doc/guix.texi:231 doc/guix.texi:3568
 msgid "How Guix verifies substitutes."
 msgstr "Comment Guix vérifie les substituts."
 
 #. type: subsection
-#: doc/guix.texi:206 doc/guix.texi:3123 doc/guix.texi:3258 doc/guix.texi:3259
+#: doc/guix.texi:231 doc/guix.texi:3568 doc/guix.texi:3805 doc/guix.texi:3806
 #, no-wrap
 msgid "Proxy Settings"
 msgstr "Paramètres de serveur mandataire"
 
 #. type: menuentry
-#: doc/guix.texi:206 doc/guix.texi:3123
+#: doc/guix.texi:231 doc/guix.texi:3568
 msgid "How to get substitutes via proxy."
 msgstr "Comment récupérer des substituts à travers un serveur mandataire."
 
 #. type: subsection
-#: doc/guix.texi:206 doc/guix.texi:3123 doc/guix.texi:3270 doc/guix.texi:3271
+#: doc/guix.texi:231 doc/guix.texi:3568 doc/guix.texi:3817 doc/guix.texi:3818
 #, no-wrap
 msgid "Substitution Failure"
 msgstr "Échec de substitution"
 
 #. type: menuentry
-#: doc/guix.texi:206 doc/guix.texi:3123
+#: doc/guix.texi:231 doc/guix.texi:3568
 msgid "What happens when substitution fails."
 msgstr "Qu'arrive-t-il quand la substitution échoue."
 
 #. type: subsection
-#: doc/guix.texi:206 doc/guix.texi:3123 doc/guix.texi:3298 doc/guix.texi:3299
+#: doc/guix.texi:231 doc/guix.texi:3568 doc/guix.texi:3845 doc/guix.texi:3846
 #, no-wrap
 msgid "On Trusting Binaries"
 msgstr "De la confiance en des binaires"
 
 #. type: menuentry
-#: doc/guix.texi:206 doc/guix.texi:3123
+#: doc/guix.texi:231 doc/guix.texi:3568
 msgid "How can you trust that binary blob?"
 msgstr "Comment pouvez-vous avoir confiance en un paquet binaire ?"
 
+#. type: section
+#: doc/guix.texi:244 doc/guix.texi:4884 doc/guix.texi:4886 doc/guix.texi:4887
+#, no-wrap
+msgid "Specifying Additional Channels"
+msgstr "Spécifier des canaux supplémentaires"
+
+#. type: menuentry
+#: doc/guix.texi:244 doc/guix.texi:4884
+msgid "Extending the package collection."
+msgstr "Personnaliser la collection des paquets."
+
+#. type: section
+#: doc/guix.texi:244 doc/guix.texi:4884 doc/guix.texi:4936 doc/guix.texi:4937
+#, no-wrap
+msgid "Using a Custom Guix Channel"
+msgstr "Utiliser un canal Guix personnalisé"
+
+#. type: menuentry
+#: doc/guix.texi:244 doc/guix.texi:4884
+msgid "Using a customized Guix."
+msgstr "Utiliser un canal Guix personnalisé."
+
+#. type: section
+#: doc/guix.texi:244 doc/guix.texi:4884 doc/guix.texi:4958 doc/guix.texi:4959
+#, no-wrap
+msgid "Replicating Guix"
+msgstr "Répliquer Guix"
+
+#. type: menuentry
+#: doc/guix.texi:244 doc/guix.texi:4884
+msgid "Running the @emph{exact same} Guix."
+msgstr "Exécution de @emph{exactement le même} Guix."
+
+#. type: section
+#: doc/guix.texi:244 doc/guix.texi:4884 doc/guix.texi:4999 doc/guix.texi:5000
+#, no-wrap
+msgid "Channel Authentication"
+msgstr "Authentification des canaux"
+
+#. type: menuentry
+#: doc/guix.texi:244 doc/guix.texi:4884
+msgid "How Guix verifies what it fetches."
+msgstr "Comment Guix vérifie ce qu'il va chercher."
+
+#. type: section
+#: doc/guix.texi:244 doc/guix.texi:4884 doc/guix.texi:5039 doc/guix.texi:5040
+#, no-wrap
+msgid "Creating a Channel"
+msgstr "Écrire de nouveaux de canaux"
+
+#. type: menuentry
+#: doc/guix.texi:244 doc/guix.texi:4884
+msgid "How to write your custom channel."
+msgstr "Comment écrire votre canal personnalisé."
+
+#. type: section
+#: doc/guix.texi:244 doc/guix.texi:4884 doc/guix.texi:5106 doc/guix.texi:5107
+#, no-wrap
+msgid "Package Modules in a Sub-directory"
+msgstr "Modules de paquets dans un sous-répertoire"
+
+#. type: menuentry
+#: doc/guix.texi:244 doc/guix.texi:4884
+msgid "Specifying the channel's package modules location."
+msgstr "Préciser l'emplacement des modules de paquets du canal."
+
+#. type: section
+#: doc/guix.texi:244 doc/guix.texi:4884 doc/guix.texi:5120 doc/guix.texi:5121
+#, no-wrap
+msgid "Declaring Channel Dependencies"
+msgstr "Déclarer des dépendances de canaux"
+
+#. type: menuentry
+#: doc/guix.texi:244 doc/guix.texi:4884
+msgid "How to depend on other channels."
+msgstr "Comment dépendre d'autres canaux."
+
+#. type: section
+#: doc/guix.texi:244 doc/guix.texi:4884 doc/guix.texi:5162 doc/guix.texi:5163
+#, no-wrap
+msgid "Specifying Channel Authorizations"
+msgstr "Spécifier les autorisations des canaux"
+
+#. type: menuentry
+#: doc/guix.texi:244 doc/guix.texi:4884
+msgid "Defining channel authors authorizations."
+msgstr "Définir les autorisations des auteurs des canaux."
+
+#. type: section
+#: doc/guix.texi:244 doc/guix.texi:4884 doc/guix.texi:5263 doc/guix.texi:5264
+#, no-wrap
+msgid "Primary URL"
+msgstr "URL primaire"
+
+#. type: menuentry
+#: doc/guix.texi:244 doc/guix.texi:4884
+msgid "Distinguishing mirror to original."
+msgstr "Miroir distinctif de l'original."
+
+#. type: section
+#: doc/guix.texi:244 doc/guix.texi:4884 doc/guix.texi:5286 doc/guix.texi:5287
+#, no-wrap
+msgid "Writing Channel News"
+msgstr "Écrire des nouveautés de canaux"
+
+#. type: menuentry
+#: doc/guix.texi:244 doc/guix.texi:4884
+msgid "Communicating information to channel's users."
+msgstr "Communiquer des informations aux utilisateurs du canal."
+
 #. type: node
-#: doc/guix.texi:211 doc/guix.texi:4348 doc/guix.texi:4350
+#: doc/guix.texi:251 doc/guix.texi:5376 doc/guix.texi:5378
 #, no-wrap
 msgid "Invoking guix environment"
 msgstr "Invoquer guix environment"
 
 #. type: menuentry
-#: doc/guix.texi:211 doc/guix.texi:4348
+#: doc/guix.texi:251 doc/guix.texi:5376
 msgid "Setting up development environments."
 msgstr "Mettre en place des environnements de développement."
 
 #. type: node
-#: doc/guix.texi:211 doc/guix.texi:4348 doc/guix.texi:4689
+#: doc/guix.texi:251 doc/guix.texi:5376 doc/guix.texi:5732
 #, no-wrap
 msgid "Invoking guix pack"
 msgstr "Invoquer guix pack"
 
 #. type: menuentry
-#: doc/guix.texi:211 doc/guix.texi:4348
+#: doc/guix.texi:251 doc/guix.texi:5376
 msgid "Creating software bundles."
 msgstr "Créer des lots de logiciels."
 
 #. type: section
-#: doc/guix.texi:222 doc/guix.texi:4992 doc/guix.texi:4994 doc/guix.texi:4995
+#: doc/guix.texi:251 doc/guix.texi:5376 doc/guix.texi:6089 doc/guix.texi:6090
+#, no-wrap
+msgid "The GCC toolchain"
+msgstr "La chaîne d'outils GCC"
+
+#. type: menuentry
+#: doc/guix.texi:251 doc/guix.texi:5376
+msgid "Working with languages supported by GCC."
+msgstr "Travailler avec les langues supportées par GCC."
+
+#. type: node
+#: doc/guix.texi:251 doc/guix.texi:5376 doc/guix.texi:6115
+#, no-wrap
+msgid "Invoking guix git authenticate"
+msgstr "Invoquer guix git authenticate"
+
+#. type: menuentry
+#: doc/guix.texi:251 doc/guix.texi:5376
+msgid "Authenticating Git repositories."
+msgstr "Authentification des dépôts Git."
+
+#. type: section
+#: doc/guix.texi:265 doc/guix.texi:6217 doc/guix.texi:6219 doc/guix.texi:6220
 #, no-wrap
 msgid "Package Modules"
 msgstr "Modules de paquets"
 
 #. type: menuentry
-#: doc/guix.texi:222 doc/guix.texi:4992
+#: doc/guix.texi:265 doc/guix.texi:6217
 msgid "Packages from the programmer's viewpoint."
 msgstr "Les paquets du point de vu du programmeur."
 
 #. type: section
-#: doc/guix.texi:222 doc/guix.texi:224 doc/guix.texi:4992 doc/guix.texi:5056
-#: doc/guix.texi:5057
+#: doc/guix.texi:265 doc/guix.texi:267 doc/guix.texi:6217 doc/guix.texi:6281
+#: doc/guix.texi:6282
 #, no-wrap
 msgid "Defining Packages"
 msgstr "Définition des paquets"
 
 #. type: menuentry
-#: doc/guix.texi:222 doc/guix.texi:4992
+#: doc/guix.texi:265 doc/guix.texi:6217
 msgid "Defining new packages."
 msgstr "Définir de nouveaux paquets."
 
 #. type: section
-#: doc/guix.texi:222 doc/guix.texi:4992 doc/guix.texi:5559 doc/guix.texi:5560
+#: doc/guix.texi:265 doc/guix.texi:6217 doc/guix.texi:6837 doc/guix.texi:6838
+#, no-wrap
+msgid "Defining Package Variants"
+msgstr "Définition de variantes de paquets"
+
+#. type: menuentry
+#: doc/guix.texi:265 doc/guix.texi:6217
+msgid "Customizing packages."
+msgstr "Créer des paquets personnalisés."
+
+#. type: section
+#: doc/guix.texi:265 doc/guix.texi:6217 doc/guix.texi:7069 doc/guix.texi:7070
 #, no-wrap
 msgid "Build Systems"
 msgstr "Systèmes de construction"
 
 #. type: menuentry
-#: doc/guix.texi:222 doc/guix.texi:4992
+#: doc/guix.texi:265 doc/guix.texi:6217
 msgid "Specifying how packages are built."
 msgstr "Spécifier comment construire les paquets."
 
+#. type: subsection
+#: doc/guix.texi:265 doc/guix.texi:6217 doc/guix.texi:7994 doc/guix.texi:7995
+#: doc/guix.texi:8360
+#, no-wrap
+msgid "Build Phases"
+msgstr "Phases de construction"
+
+#. type: menuentry
+#: doc/guix.texi:265 doc/guix.texi:6217
+msgid "Phases of the build process of a package."
+msgstr "Phases du processus de construction d'un paquet."
+
+#. type: section
+#: doc/guix.texi:265 doc/guix.texi:6217 doc/guix.texi:8150 doc/guix.texi:8151
+#, no-wrap
+msgid "Build Utilities"
+msgstr "Utilitaires de construction"
+
+#. type: menuentry
+#: doc/guix.texi:265 doc/guix.texi:6217
+msgid "Helpers for your package definitions and more."
+msgstr "Des aides pour les définitions de vos paquets et plus encore."
+
 #. type: section
-#: doc/guix.texi:222 doc/guix.texi:4992 doc/guix.texi:6297 doc/guix.texi:6298
+#: doc/guix.texi:265 doc/guix.texi:6217 doc/guix.texi:8437 doc/guix.texi:8438
 #, no-wrap
 msgid "The Store"
 msgstr "Le dépôt"
 
 #. type: menuentry
-#: doc/guix.texi:222 doc/guix.texi:4992
+#: doc/guix.texi:265 doc/guix.texi:6217
 msgid "Manipulating the package store."
 msgstr "Manipuler le dépôt de paquets."
 
 #. type: section
-#: doc/guix.texi:222 doc/guix.texi:4992 doc/guix.texi:6447 doc/guix.texi:6448
+#: doc/guix.texi:265 doc/guix.texi:6217 doc/guix.texi:8590 doc/guix.texi:8591
 #, no-wrap
 msgid "Derivations"
 msgstr "Dérivations"
 
 #. type: menuentry
-#: doc/guix.texi:222 doc/guix.texi:4992
+#: doc/guix.texi:265 doc/guix.texi:6217
 msgid "Low-level interface to package derivations."
 msgstr "Interface de bas-niveau avec les dérivations de paquets."
 
 #. type: section
-#: doc/guix.texi:222 doc/guix.texi:4992 doc/guix.texi:6641 doc/guix.texi:6642
+#: doc/guix.texi:265 doc/guix.texi:6217 doc/guix.texi:8784 doc/guix.texi:8785
 #, no-wrap
 msgid "The Store Monad"
 msgstr "La monade du dépôt"
 
 #. type: menuentry
-#: doc/guix.texi:222 doc/guix.texi:4992
+#: doc/guix.texi:265 doc/guix.texi:6217
 msgid "Purely functional interface to the store."
 msgstr "Interface purement fonctionnelle avec le dépôt."
 
 #. type: section
-#: doc/guix.texi:222 doc/guix.texi:4992 doc/guix.texi:6956 doc/guix.texi:6957
+#: doc/guix.texi:265 doc/guix.texi:6217 doc/guix.texi:9103 doc/guix.texi:9104
 #, no-wrap
 msgid "G-Expressions"
 msgstr "G-Expressions"
 
 #. type: menuentry
-#: doc/guix.texi:222 doc/guix.texi:4992
+#: doc/guix.texi:265 doc/guix.texi:6217
 msgid "Manipulating build expressions."
 msgstr "Manipuler les expressions de construction."
 
 #. type: node
-#: doc/guix.texi:222 doc/guix.texi:4992 doc/guix.texi:7530
+#: doc/guix.texi:265 doc/guix.texi:6217 doc/guix.texi:9732
 #, no-wrap
 msgid "Invoking guix repl"
 msgstr "Invoquer guix repl"
 
 #. type: menuentry
-#: doc/guix.texi:222 doc/guix.texi:4992
-msgid "Fiddling with Guix interactively."
-msgstr "S'amuser avec Guix de manière interactive."
+#: doc/guix.texi:265
+msgid "Programming Guix in Guile."
+msgstr "Programmer Guix dans Guile."
 
 #. type: node
-#: doc/guix.texi:227 doc/guix.texi:5324 doc/guix.texi:5327
+#: doc/guix.texi:270 doc/guix.texi:6484 doc/guix.texi:6487
 #, no-wrap
 msgid "package Reference"
-msgstr "Référence des paquets"
+msgstr "référence des paquets"
 
 #. type: menuentry
-#: doc/guix.texi:227 doc/guix.texi:5324
+#: doc/guix.texi:270 doc/guix.texi:6484
 msgid "The package data type."
 msgstr "Le type de donnée des paquets."
 
 #. type: node
-#: doc/guix.texi:227 doc/guix.texi:5324 doc/guix.texi:5471
+#: doc/guix.texi:270 doc/guix.texi:6484 doc/guix.texi:6658
 #, no-wrap
 msgid "origin Reference"
-msgstr "Référence des origines"
+msgstr "référence des origines"
 
 #. type: menuentry
-#: doc/guix.texi:227 doc/guix.texi:5324
+#: doc/guix.texi:270 doc/guix.texi:6484
 msgid "The origin data type."
 msgstr "Le type de données d'origine."
 
 #. type: node
-#: doc/guix.texi:245 doc/guix.texi:7607 doc/guix.texi:7609
+#: doc/guix.texi:288 doc/guix.texi:9856 doc/guix.texi:9858
 #, no-wrap
 msgid "Invoking guix build"
 msgstr "Invoquer guix build"
 
 #. type: menuentry
-#: doc/guix.texi:245 doc/guix.texi:7607
+#: doc/guix.texi:288 doc/guix.texi:9856
 msgid "Building packages from the command line."
 msgstr "Construire des paquets depuis la ligne de commande."
 
 #. type: node
-#: doc/guix.texi:245 doc/guix.texi:7607 doc/guix.texi:8260
+#: doc/guix.texi:288 doc/guix.texi:9856 doc/guix.texi:10637
 #, no-wrap
 msgid "Invoking guix edit"
 msgstr "Invoquer guix edit"
 
 #. type: menuentry
-#: doc/guix.texi:245 doc/guix.texi:7607
+#: doc/guix.texi:288 doc/guix.texi:9856
 msgid "Editing package definitions."
 msgstr "Modifier les définitions de paquets."
 
 #. type: node
-#: doc/guix.texi:245 doc/guix.texi:7607 doc/guix.texi:8286
+#: doc/guix.texi:288 doc/guix.texi:9856 doc/guix.texi:10667
 #, no-wrap
 msgid "Invoking guix download"
 msgstr "Invoquer guix download"
 
 #. type: menuentry
-#: doc/guix.texi:245 doc/guix.texi:7607
+#: doc/guix.texi:288 doc/guix.texi:9856
 msgid "Downloading a file and printing its hash."
 msgstr "Télécharger un fichier et afficher son hash."
 
 #. type: node
-#: doc/guix.texi:245 doc/guix.texi:7607 doc/guix.texi:8339
+#: doc/guix.texi:288 doc/guix.texi:9856 doc/guix.texi:10725
 #, no-wrap
 msgid "Invoking guix hash"
 msgstr "Invoquer guix hash"
 
 #. type: menuentry
-#: doc/guix.texi:245 doc/guix.texi:7607
+#: doc/guix.texi:288 doc/guix.texi:9856
 msgid "Computing the cryptographic hash of a file."
 msgstr "Calculer le hash cryptographique d'un fichier."
 
 #. type: node
-#: doc/guix.texi:245 doc/guix.texi:7607 doc/guix.texi:8401
+#: doc/guix.texi:288 doc/guix.texi:9856 doc/guix.texi:10797
 #, no-wrap
 msgid "Invoking guix import"
 msgstr "Invoquer guix import"
 
 #. type: menuentry
-#: doc/guix.texi:245 doc/guix.texi:7607
+#: doc/guix.texi:288 doc/guix.texi:9856
 msgid "Importing package definitions."
 msgstr "Importer des définitions de paquets."
 
 #. type: node
-#: doc/guix.texi:245 doc/guix.texi:7607 doc/guix.texi:8799
+#: doc/guix.texi:288 doc/guix.texi:9856 doc/guix.texi:11226
 #, no-wrap
 msgid "Invoking guix refresh"
 msgstr "Invoquer guix refresh"
 
 #. type: menuentry
-#: doc/guix.texi:245 doc/guix.texi:7607
+#: doc/guix.texi:288 doc/guix.texi:9856
 msgid "Updating package definitions."
 msgstr "Mettre à jour les définitions de paquets."
 
 #. type: node
-#: doc/guix.texi:245 doc/guix.texi:7607 doc/guix.texi:9110
+#: doc/guix.texi:288 doc/guix.texi:9856 doc/guix.texi:11549
 #, no-wrap
 msgid "Invoking guix lint"
 msgstr "Invoquer guix lint"
 
 #. type: menuentry
-#: doc/guix.texi:245 doc/guix.texi:7607
+#: doc/guix.texi:288 doc/guix.texi:9856
 msgid "Finding errors in package definitions."
 msgstr "Trouver des erreurs dans les définitions de paquets."
 
 #. type: node
-#: doc/guix.texi:245 doc/guix.texi:7607 doc/guix.texi:9226
+#: doc/guix.texi:288 doc/guix.texi:9856 doc/guix.texi:11718
 #, no-wrap
 msgid "Invoking guix size"
 msgstr "Invoquer guix size"
 
 #. type: menuentry
-#: doc/guix.texi:245 doc/guix.texi:7607
+#: doc/guix.texi:288 doc/guix.texi:9856
 msgid "Profiling disk usage."
 msgstr "Profiler l'utilisation du disque."
 
 #. type: node
-#: doc/guix.texi:245 doc/guix.texi:7607 doc/guix.texi:9350
+#: doc/guix.texi:288 doc/guix.texi:9856 doc/guix.texi:11862
 #, no-wrap
 msgid "Invoking guix graph"
 msgstr "Invoquer guix graph"
 
 #. type: menuentry
-#: doc/guix.texi:245 doc/guix.texi:7607
+#: doc/guix.texi:288 doc/guix.texi:9856
 msgid "Visualizing the graph of packages."
 msgstr "Visualiser le graphe des paquets."
 
 #. type: node
-#: doc/guix.texi:245 doc/guix.texi:7607 doc/guix.texi:9553
+#: doc/guix.texi:288 doc/guix.texi:9856 doc/guix.texi:12129
 #, no-wrap
 msgid "Invoking guix publish"
 msgstr "Invoquer guix publish"
 
 #. type: menuentry
-#: doc/guix.texi:245 doc/guix.texi:7607
+#: doc/guix.texi:288 doc/guix.texi:9856
 msgid "Sharing substitutes."
 msgstr "Partager des substituts."
 
 #. type: node
-#: doc/guix.texi:245 doc/guix.texi:7607 doc/guix.texi:9770
+#: doc/guix.texi:288 doc/guix.texi:9856 doc/guix.texi:12377
 #, no-wrap
 msgid "Invoking guix challenge"
 msgstr "Invoquer guix challenge"
 
 #. type: menuentry
-#: doc/guix.texi:245 doc/guix.texi:7607
+#: doc/guix.texi:288 doc/guix.texi:9856
 msgid "Challenging substitute servers."
 msgstr "Défier les serveurs de substituts."
 
 #. type: node
-#: doc/guix.texi:245 doc/guix.texi:7607 doc/guix.texi:9909
+#: doc/guix.texi:288 doc/guix.texi:9856 doc/guix.texi:12560
 #, no-wrap
 msgid "Invoking guix copy"
 msgstr "Invoquer guix copy"
 
 #. type: menuentry
-#: doc/guix.texi:245 doc/guix.texi:7607
+#: doc/guix.texi:288 doc/guix.texi:9856
 msgid "Copying to and from a remote store."
 msgstr "Copier vers et depuis un dépôt distant."
 
 #. type: node
-#: doc/guix.texi:245 doc/guix.texi:7607 doc/guix.texi:9972
+#: doc/guix.texi:288 doc/guix.texi:9856 doc/guix.texi:12623
 #, no-wrap
 msgid "Invoking guix container"
 msgstr "Invoquer guix container"
 
 #. type: menuentry
-#: doc/guix.texi:245 doc/guix.texi:7607
+#: doc/guix.texi:288 doc/guix.texi:9856
 msgid "Process isolation."
 msgstr "Isolation de processus."
 
 #. type: node
-#: doc/guix.texi:245 doc/guix.texi:7607 doc/guix.texi:10026
+#: doc/guix.texi:288 doc/guix.texi:9856 doc/guix.texi:12677
 #, no-wrap
 msgid "Invoking guix weather"
 msgstr "Invoquer guix weather"
 
 #. type: menuentry
-#: doc/guix.texi:245 doc/guix.texi:7607
+#: doc/guix.texi:288 doc/guix.texi:9856
 msgid "Assessing substitute availability."
 msgstr "Mesurer la disponibilité des substituts."
 
 #. type: node
-#: doc/guix.texi:245 doc/guix.texi:7607 doc/guix.texi:10137
+#: doc/guix.texi:288 doc/guix.texi:9856 doc/guix.texi:12806
 #, no-wrap
 msgid "Invoking guix processes"
 msgstr "Invoquer guix processes"
 
 #. type: menuentry
-#: doc/guix.texi:245 doc/guix.texi:7607
+#: doc/guix.texi:288 doc/guix.texi:9856
 msgid "Listing client processes."
 msgstr "Lister les processus clients."
 
 #. type: section
-#: doc/guix.texi:247 doc/guix.texi:7610
+#: doc/guix.texi:290 doc/guix.texi:9859
 #, no-wrap
 msgid "Invoking @command{guix build}"
 msgstr "Invoquer @command{guix build}"
 
 #. type: subsection
-#: doc/guix.texi:252 doc/guix.texi:7661 doc/guix.texi:7663 doc/guix.texi:7664
+#: doc/guix.texi:295 doc/guix.texi:9910 doc/guix.texi:9912 doc/guix.texi:9913
 #, no-wrap
 msgid "Common Build Options"
 msgstr "Options de construction communes"
 
 #. type: menuentry
-#: doc/guix.texi:252 doc/guix.texi:7661
+#: doc/guix.texi:295 doc/guix.texi:9910
 msgid "Build options for most commands."
 msgstr "Options de construction pour la plupart des commandes."
 
 #. type: subsection
-#: doc/guix.texi:252 doc/guix.texi:7661 doc/guix.texi:7819 doc/guix.texi:7820
+#: doc/guix.texi:295 doc/guix.texi:9910 doc/guix.texi:10066
+#: doc/guix.texi:10067
 #, no-wrap
 msgid "Package Transformation Options"
 msgstr "Options de transformation de paquets"
 
 #. type: menuentry
-#: doc/guix.texi:252 doc/guix.texi:7661
+#: doc/guix.texi:295 doc/guix.texi:9910
 msgid "Creating variants of packages."
 msgstr "Créer des variantes de paquets."
 
 #. type: subsection
-#: doc/guix.texi:252 doc/guix.texi:7661 doc/guix.texi:7968 doc/guix.texi:7969
+#: doc/guix.texi:295 doc/guix.texi:9910 doc/guix.texi:10326
+#: doc/guix.texi:10327
 #, no-wrap
 msgid "Additional Build Options"
 msgstr "Options de construction supplémentaires"
 
 #. type: menuentry
-#: doc/guix.texi:252 doc/guix.texi:7661
+#: doc/guix.texi:295 doc/guix.texi:9910
 msgid "Options specific to 'guix build'."
 msgstr "Options spécifiques à « guix build »."
 
 #. type: subsection
-#: doc/guix.texi:252 doc/guix.texi:7661 doc/guix.texi:8180 doc/guix.texi:8181
+#: doc/guix.texi:295 doc/guix.texi:9910 doc/guix.texi:10557
+#: doc/guix.texi:10558
 #, no-wrap
 msgid "Debugging Build Failures"
 msgstr "Débogage des échecs de construction"
 
 #. type: menuentry
-#: doc/guix.texi:252 doc/guix.texi:7661
+#: doc/guix.texi:295 doc/guix.texi:9910
 msgid "Real life packaging experience."
 msgstr "L'empaquetage dans la vraie vie."
 
 #. type: section
-#: doc/guix.texi:271 doc/guix.texi:10236 doc/guix.texi:10238
-#: doc/guix.texi:10239
+#: doc/guix.texi:315 doc/guix.texi:12905 doc/guix.texi:12907
+#: doc/guix.texi:12908
 #, no-wrap
 msgid "Using the Configuration System"
 msgstr "Utiliser le système de configuration"
 
 #. type: menuentry
-#: doc/guix.texi:271 doc/guix.texi:10236
+#: doc/guix.texi:315 doc/guix.texi:12905
 msgid "Customizing your GNU system."
 msgstr "Personnaliser votre système GNU@."
 
 #. type: node
-#: doc/guix.texi:271 doc/guix.texi:10236 doc/guix.texi:10474
+#: doc/guix.texi:315 doc/guix.texi:12905 doc/guix.texi:13147
 #, no-wrap
 msgid "operating-system Reference"
-msgstr "Référence de système d'exploitation"
+msgstr "référence de système d'exploitation"
 
 #. type: menuentry
-#: doc/guix.texi:271 doc/guix.texi:10236
+#: doc/guix.texi:315 doc/guix.texi:12905
 msgid "Detail of operating-system declarations."
 msgstr "Détail sur la déclaration de système d'exploitation."
 
 #. type: section
-#: doc/guix.texi:271 doc/guix.texi:10236 doc/guix.texi:10678
-#: doc/guix.texi:10679
+#: doc/guix.texi:315 doc/guix.texi:12905 doc/guix.texi:13398
+#: doc/guix.texi:13399
 #, no-wrap
 msgid "File Systems"
 msgstr "Systèmes de fichiers"
 
 #. type: menuentry
-#: doc/guix.texi:271 doc/guix.texi:10236
+#: doc/guix.texi:315 doc/guix.texi:12905
 msgid "Configuring file system mounts."
 msgstr "Configurer les montages de systèmes de fichiers."
 
 #. type: section
-#: doc/guix.texi:271 doc/guix.texi:10236 doc/guix.texi:10848
-#: doc/guix.texi:10849
+#: doc/guix.texi:315 doc/guix.texi:12905 doc/guix.texi:13721
+#: doc/guix.texi:13722
 #, no-wrap
 msgid "Mapped Devices"
 msgstr "Périphériques mappés"
 
 #. type: menuentry
-#: doc/guix.texi:271 doc/guix.texi:10236
+#: doc/guix.texi:315 doc/guix.texi:12905
 msgid "Block device extra processing."
 msgstr "Gestion des périphériques de bloc."
 
 #. type: section
-#: doc/guix.texi:271 doc/guix.texi:10236 doc/guix.texi:10969
-#: doc/guix.texi:10970
+#: doc/guix.texi:315 doc/guix.texi:12905 doc/guix.texi:13842
+#: doc/guix.texi:13843
 #, no-wrap
 msgid "User Accounts"
 msgstr "Comptes utilisateurs"
 
 #. type: menuentry
-#: doc/guix.texi:271 doc/guix.texi:10236
+#: doc/guix.texi:315 doc/guix.texi:12905
 msgid "Specifying user accounts."
 msgstr "Spécifier des comptes utilisateurs."
 
 #. type: section
-#: doc/guix.texi:271 doc/guix.texi:2048 doc/guix.texi:10236
-#: doc/guix.texi:11122 doc/guix.texi:11123
+#: doc/guix.texi:315 doc/guix.texi:2189 doc/guix.texi:12905
+#: doc/guix.texi:14018 doc/guix.texi:14019
 #, no-wrap
 msgid "Keyboard Layout"
 msgstr "Disposition du clavier"
 
 #. type: menuentry
-#: doc/guix.texi:271 doc/guix.texi:10236
+#: doc/guix.texi:315 doc/guix.texi:12905
 msgid "How the system interprets key strokes."
 msgstr "La manière dont le système interprète les touches du clavier."
 
 #. type: section
-#: doc/guix.texi:271 doc/guix.texi:1570 doc/guix.texi:10236
-#: doc/guix.texi:11254 doc/guix.texi:11255
+#: doc/guix.texi:315 doc/guix.texi:1689 doc/guix.texi:12905
+#: doc/guix.texi:14164 doc/guix.texi:14165
 #, no-wrap
 msgid "Locales"
 msgstr "Régionalisation"
 
 #. type: menuentry
-#: doc/guix.texi:271 doc/guix.texi:10236
+#: doc/guix.texi:315 doc/guix.texi:12905
 msgid "Language and cultural convention settings."
 msgstr "Paramétrer la langue et les conventions culturelles."
 
 #. type: section
-#: doc/guix.texi:271 doc/guix.texi:273 doc/guix.texi:10236 doc/guix.texi:11394
-#: doc/guix.texi:11395
+#: doc/guix.texi:315 doc/guix.texi:317 doc/guix.texi:12905 doc/guix.texi:14304
+#: doc/guix.texi:14305
 #, no-wrap
 msgid "Services"
 msgstr "Services"
 
 #. type: menuentry
-#: doc/guix.texi:271 doc/guix.texi:10236
+#: doc/guix.texi:315 doc/guix.texi:12905
 msgid "Specifying system services."
 msgstr "Spécifier les services du système."
 
 #. type: section
-#: doc/guix.texi:271 doc/guix.texi:10236 doc/guix.texi:23607
-#: doc/guix.texi:23608
+#: doc/guix.texi:315 doc/guix.texi:12905 doc/guix.texi:29901
+#: doc/guix.texi:29902
 #, no-wrap
 msgid "Setuid Programs"
 msgstr "Programmes setuid"
 
 #. type: menuentry
-#: doc/guix.texi:271 doc/guix.texi:10236
+#: doc/guix.texi:315 doc/guix.texi:12905
 msgid "Programs running with root privileges."
 msgstr "Programmes tournant avec les privilèges root."
 
 #. type: section
-#: doc/guix.texi:271 doc/guix.texi:1715 doc/guix.texi:10236
-#: doc/guix.texi:23653 doc/guix.texi:23654
+#: doc/guix.texi:315 doc/guix.texi:1838 doc/guix.texi:12905
+#: doc/guix.texi:29947 doc/guix.texi:29948
 #, no-wrap
 msgid "X.509 Certificates"
 msgstr "Certificats X.509"
 
 #. type: menuentry
-#: doc/guix.texi:271 doc/guix.texi:10236
+#: doc/guix.texi:315 doc/guix.texi:12905
 msgid "Authenticating HTTPS servers."
 msgstr "Authentifier les serveurs HTTPS@."
 
 #. type: section
-#: doc/guix.texi:271 doc/guix.texi:1613 doc/guix.texi:10236
-#: doc/guix.texi:23716 doc/guix.texi:23717
+#: doc/guix.texi:315 doc/guix.texi:1732 doc/guix.texi:12905
+#: doc/guix.texi:30010 doc/guix.texi:30011
 #, no-wrap
 msgid "Name Service Switch"
 msgstr "Name Service Switch"
 
 #. type: menuentry
-#: doc/guix.texi:271 doc/guix.texi:10236
+#: doc/guix.texi:315 doc/guix.texi:12905
 msgid "Configuring libc's name service switch."
 msgstr "Configurer le « name service switch » de la libc."
 
 #. type: section
-#: doc/guix.texi:271 doc/guix.texi:10236 doc/guix.texi:23854
-#: doc/guix.texi:23855
+#: doc/guix.texi:315 doc/guix.texi:12905 doc/guix.texi:30148
+#: doc/guix.texi:30149
 #, no-wrap
 msgid "Initial RAM Disk"
 msgstr "Disque de RAM initial"
 
 #. type: menuentry
-#: doc/guix.texi:271 doc/guix.texi:10236
+#: doc/guix.texi:315 doc/guix.texi:12905
 msgid "Linux-Libre bootstrapping."
 msgstr "Démarrage de Linux-Libre."
 
 #. type: section
-#: doc/guix.texi:271 doc/guix.texi:10236 doc/guix.texi:24028
-#: doc/guix.texi:24029
+#: doc/guix.texi:315 doc/guix.texi:12905 doc/guix.texi:30323
+#: doc/guix.texi:30324
 #, no-wrap
 msgid "Bootloader Configuration"
 msgstr "Configuration du chargeur d'amorçage"
 
 #. type: menuentry
-#: doc/guix.texi:271 doc/guix.texi:10236
+#: doc/guix.texi:315 doc/guix.texi:12905
 msgid "Configuring the boot loader."
 msgstr "Configurer le chargeur d'amorçage."
 
 #. type: node
-#: doc/guix.texi:271 doc/guix.texi:10236 doc/guix.texi:24225
+#: doc/guix.texi:315 doc/guix.texi:12905 doc/guix.texi:30617
 #, no-wrap
 msgid "Invoking guix system"
 msgstr "Invoquer guix system"
 
 #. type: menuentry
-#: doc/guix.texi:271 doc/guix.texi:10236
+#: doc/guix.texi:315 doc/guix.texi:12905
 msgid "Instantiating a system configuration."
 msgstr "Instantier une configuration du système."
 
 #. type: node
-#: doc/guix.texi:271 doc/guix.texi:10236 doc/guix.texi:24680
+#: doc/guix.texi:315 doc/guix.texi:12905 doc/guix.texi:31175
+#, no-wrap
+msgid "Invoking guix deploy"
+msgstr "Invoquer guix deploy"
+
+#. type: menuentry
+#: doc/guix.texi:315 doc/guix.texi:12905
+msgid "Deploying a system configuration to a remote host."
+msgstr "Deployer une configuration du système sur un hôte distant."
+
+#. type: node
+#: doc/guix.texi:315 doc/guix.texi:12905 doc/guix.texi:31381
 #, no-wrap
 msgid "Running Guix in a VM"
 msgstr "Lancer Guix dans une VM"
 
 #. type: menuentry
-#: doc/guix.texi:271 doc/guix.texi:10236
+#: doc/guix.texi:315 doc/guix.texi:12905
 msgid "How to run Guix System in a virtual machine."
 msgstr "Comment lancer Guix dans une machine virtuelle."
 
 #. type: section
-#: doc/guix.texi:271 doc/guix.texi:302 doc/guix.texi:10236 doc/guix.texi:24810
-#: doc/guix.texi:24811
+#: doc/guix.texi:315 doc/guix.texi:352 doc/guix.texi:12905 doc/guix.texi:31511
+#: doc/guix.texi:31512
 #, no-wrap
 msgid "Defining Services"
 msgstr "Définir des services"
 
 #. type: menuentry
-#: doc/guix.texi:271 doc/guix.texi:10236
+#: doc/guix.texi:315 doc/guix.texi:12905
 msgid "Adding new service definitions."
 msgstr "Ajouter de nouvelles définitions de services."
 
 #. type: subsection
-#: doc/guix.texi:300 doc/guix.texi:11471 doc/guix.texi:11473
-#: doc/guix.texi:11474
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:14388
+#: doc/guix.texi:14389
 #, no-wrap
 msgid "Base Services"
 msgstr "Services de base"
 
 #. type: menuentry
-#: doc/guix.texi:300 doc/guix.texi:11471
+#: doc/guix.texi:350 doc/guix.texi:14386
 msgid "Essential system services."
 msgstr "Services systèmes essentiels."
 
 #. type: subsection
-#: doc/guix.texi:300 doc/guix.texi:11471 doc/guix.texi:12266
-#: doc/guix.texi:12267
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:15263
+#: doc/guix.texi:15264
 #, no-wrap
 msgid "Scheduled Job Execution"
 msgstr "Exécution de tâches planifiées"
 
 #. type: menuentry
-#: doc/guix.texi:300 doc/guix.texi:11471
+#: doc/guix.texi:350 doc/guix.texi:14386
 msgid "The mcron service."
 msgstr "Le service mcron."
 
 #. type: subsection
-#: doc/guix.texi:300 doc/guix.texi:11471 doc/guix.texi:12367
-#: doc/guix.texi:12368
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:15400
+#: doc/guix.texi:15401
 #, no-wrap
 msgid "Log Rotation"
 msgstr "Rotation des journaux"
 
 #. type: menuentry
-#: doc/guix.texi:300 doc/guix.texi:11471
+#: doc/guix.texi:350 doc/guix.texi:14386
 msgid "The rottlog service."
 msgstr "Le service rottlog."
 
 #. type: subsection
-#: doc/guix.texi:300 doc/guix.texi:11471 doc/guix.texi:12469
-#: doc/guix.texi:12470
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:15513
+#: doc/guix.texi:15514
 #, no-wrap
 msgid "Networking Services"
 msgstr "Services réseau"
 
 #. type: menuentry
-#: doc/guix.texi:300 doc/guix.texi:11471
+#: doc/guix.texi:350 doc/guix.texi:14386
 msgid "Network setup, SSH daemon, etc."
 msgstr "Paramètres réseau, démon SSH, etc."
 
 #. type: subsection
-#: doc/guix.texi:300 doc/guix.texi:11471 doc/guix.texi:13415
-#: doc/guix.texi:13416
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:16851
+#: doc/guix.texi:16852
+#, no-wrap
+msgid "Unattended Upgrades"
+msgstr "Mises à jour non surveillées (Unattended Upgrades)"
+
+#. type: menuentry
+#: doc/guix.texi:350 doc/guix.texi:14386
+msgid "Automated system upgrades."
+msgstr "Mise à jour du système automatisé."
+
+#. type: subsection
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:16985
+#: doc/guix.texi:16986
 #, no-wrap
 msgid "X Window"
 msgstr "Système de fenêtrage X"
 
 #. type: menuentry
-#: doc/guix.texi:300 doc/guix.texi:11471
+#: doc/guix.texi:350 doc/guix.texi:14386
 msgid "Graphical display."
 msgstr "Affichage graphique."
 
 #. type: subsection
-#: doc/guix.texi:300 doc/guix.texi:11471 doc/guix.texi:13762
-#: doc/guix.texi:13763
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:17363
+#: doc/guix.texi:17364
 #, no-wrap
 msgid "Printing Services"
 msgstr "Services d'impression"
 
 #. type: menuentry
-#: doc/guix.texi:300 doc/guix.texi:11471
+#: doc/guix.texi:350 doc/guix.texi:14386
 msgid "Local and remote printer support."
 msgstr "Support pour les imprimantes locales et distantes."
 
 #. type: subsection
-#: doc/guix.texi:300 doc/guix.texi:11471 doc/guix.texi:14603
-#: doc/guix.texi:14604
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:18215
+#: doc/guix.texi:18216
 #, no-wrap
 msgid "Desktop Services"
 msgstr "Services de bureaux"
 
 #. type: menuentry
-#: doc/guix.texi:300 doc/guix.texi:11471
+#: doc/guix.texi:350 doc/guix.texi:14386
 msgid "D-Bus and desktop services."
 msgstr "D-Bus et les services de bureaux."
 
 #. type: subsection
-#: doc/guix.texi:300 doc/guix.texi:11471 doc/guix.texi:15004
-#: doc/guix.texi:15005
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:18692
+#: doc/guix.texi:18693
 #, no-wrap
 msgid "Sound Services"
 msgstr "Services de son"
 
 #. type: menuentry
-#: doc/guix.texi:300 doc/guix.texi:11471
+#: doc/guix.texi:350 doc/guix.texi:14386
 msgid "ALSA and Pulseaudio services."
 msgstr "Services ALSA et Pulseaudio."
 
 #. type: subsection
-#: doc/guix.texi:300 doc/guix.texi:11471 doc/guix.texi:15085
-#: doc/guix.texi:15086
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:18832
+#: doc/guix.texi:18833
 #, no-wrap
 msgid "Database Services"
 msgstr "Services de bases de données"
 
 #. type: menuentry
-#: doc/guix.texi:300 doc/guix.texi:11471
+#: doc/guix.texi:350 doc/guix.texi:14386
 msgid "SQL databases, key-value stores, etc."
 msgstr "Bases SQL, clefs-valeurs, etc."
 
 #. type: subsection
-#: doc/guix.texi:300 doc/guix.texi:11471 doc/guix.texi:15245
-#: doc/guix.texi:15246
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:19095
+#: doc/guix.texi:19096
 #, no-wrap
 msgid "Mail Services"
 msgstr "Services de courriels"
 
 #. type: menuentry
-#: doc/guix.texi:300 doc/guix.texi:11471
+#: doc/guix.texi:350 doc/guix.texi:14386
 msgid "IMAP, POP3, SMTP, and all that."
 msgstr "IMAP, POP3, SMTP, et tout ça."
 
 #. type: subsection
-#: doc/guix.texi:300 doc/guix.texi:11471 doc/guix.texi:16746
-#: doc/guix.texi:16747
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:20887
+#: doc/guix.texi:20888
 #, no-wrap
 msgid "Messaging Services"
 msgstr "Services de messagerie"
 
 #. type: menuentry
-#: doc/guix.texi:300 doc/guix.texi:11471
+#: doc/guix.texi:350 doc/guix.texi:14386
 msgid "Messaging services."
 msgstr "Services de messagerie."
 
 #. type: subsection
-#: doc/guix.texi:300 doc/guix.texi:11471 doc/guix.texi:17248
-#: doc/guix.texi:17249
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:21390
+#: doc/guix.texi:21391
 #, no-wrap
 msgid "Telephony Services"
 msgstr "Services de téléphonie"
 
 #. type: menuentry
-#: doc/guix.texi:300 doc/guix.texi:11471
+#: doc/guix.texi:350 doc/guix.texi:14386
 msgid "Telephony services."
 msgstr "Services de téléphonie."
 
 #. type: subsection
-#: doc/guix.texi:300 doc/guix.texi:11471 doc/guix.texi:17453
-#: doc/guix.texi:17454
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:21595
+#: doc/guix.texi:21596
 #, no-wrap
 msgid "Monitoring Services"
 msgstr "Services de surveillance"
 
 #. type: menuentry
-#: doc/guix.texi:300 doc/guix.texi:11471
+#: doc/guix.texi:350 doc/guix.texi:14386
 msgid "Monitoring services."
 msgstr "Services de surveillance."
 
 #. type: subsection
-#: doc/guix.texi:300 doc/guix.texi:11471 doc/guix.texi:17958
-#: doc/guix.texi:17959
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:22100
+#: doc/guix.texi:22101
 #, no-wrap
 msgid "Kerberos Services"
 msgstr "Services Kerberos"
 
 #. type: menuentry
-#: doc/guix.texi:300 doc/guix.texi:11471
+#: doc/guix.texi:350 doc/guix.texi:14386
 msgid "Kerberos services."
 msgstr "Services Kerberos."
 
 #. type: subsection
-#: doc/guix.texi:300 doc/guix.texi:11471 doc/guix.texi:18562
-#: doc/guix.texi:18563
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:22226
+#: doc/guix.texi:22227
+#, no-wrap
+msgid "LDAP Services"
+msgstr "Services LDAP"
+
+#. type: menuentry
+#: doc/guix.texi:350 doc/guix.texi:14386
+msgid "LDAP services."
+msgstr "Services LDAP."
+
+#. type: subsection
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:22705
+#: doc/guix.texi:22706
 #, no-wrap
 msgid "Web Services"
 msgstr "Services web"
 
 #. type: menuentry
-#: doc/guix.texi:300 doc/guix.texi:11471
+#: doc/guix.texi:350 doc/guix.texi:14386
 msgid "Web servers."
 msgstr "Services web."
 
 #. type: subsection
-#: doc/guix.texi:300 doc/guix.texi:11471 doc/guix.texi:19363
-#: doc/guix.texi:19364
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:23819
+#: doc/guix.texi:23820
 #, no-wrap
 msgid "Certificate Services"
 msgstr "Services de certificats"
 
 #. type: menuentry
-#: doc/guix.texi:300 doc/guix.texi:11471
+#: doc/guix.texi:350 doc/guix.texi:14386
 msgid "TLS certificates via Let's Encrypt."
 msgstr "Certificats TLS via Let's Encrypt."
 
 #. type: subsection
-#: doc/guix.texi:300 doc/guix.texi:11471 doc/guix.texi:19529
-#: doc/guix.texi:19530
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:23992
+#: doc/guix.texi:23993
 #, no-wrap
 msgid "DNS Services"
 msgstr "Services DNS"
 
 #. type: menuentry
-#: doc/guix.texi:300 doc/guix.texi:11471
+#: doc/guix.texi:350 doc/guix.texi:14386
 msgid "DNS daemons."
 msgstr "Démons DNS@."
 
 #. type: subsection
-#: doc/guix.texi:300 doc/guix.texi:11471 doc/guix.texi:20150
-#: doc/guix.texi:20151
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:24739
+#: doc/guix.texi:24740
 #, no-wrap
 msgid "VPN Services"
 msgstr "Services VPN"
 
 #. type: menuentry
-#: doc/guix.texi:300 doc/guix.texi:11471
+#: doc/guix.texi:350 doc/guix.texi:14386
 msgid "VPN daemons."
 msgstr "Démons VPN."
 
 #. type: subsection
-#: doc/guix.texi:300 doc/guix.texi:11471 doc/guix.texi:20508
-#: doc/guix.texi:20509
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:25119
+#: doc/guix.texi:25120
 #, no-wrap
 msgid "Network File System"
 msgstr "Système de fichiers en réseau"
 
 #. type: menuentry
-#: doc/guix.texi:300 doc/guix.texi:11471
+#: doc/guix.texi:350 doc/guix.texi:14386
 msgid "NFS related services."
 msgstr "Services liés à NFS@."
 
 #. type: subsection
-#: doc/guix.texi:300 doc/guix.texi:11471 doc/guix.texi:20623
-#: doc/guix.texi:20624
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:25315
+#: doc/guix.texi:25316
 #, no-wrap
 msgid "Continuous Integration"
 msgstr "Intégration continue"
 
 #. type: menuentry
-#: doc/guix.texi:300 doc/guix.texi:11471
+#: doc/guix.texi:350 doc/guix.texi:14386
 msgid "The Cuirass service."
 msgstr "Le service Cuirass."
 
 #. type: subsection
-#: doc/guix.texi:300 doc/guix.texi:11471 doc/guix.texi:20740
-#: doc/guix.texi:20741
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:25446
+#: doc/guix.texi:25447
 #, no-wrap
 msgid "Power Management Services"
 msgstr "Services de gestion de l'énergie"
 
 #. type: menuentry
-#: doc/guix.texi:300 doc/guix.texi:11471
+#: doc/guix.texi:350 doc/guix.texi:14386
 msgid "Extending battery life."
 msgstr "Augmenter la durée de vie de la batterie."
 
 #. type: subsection
-#: doc/guix.texi:300 doc/guix.texi:11471 doc/guix.texi:21274
-#: doc/guix.texi:21275
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:25980
+#: doc/guix.texi:25981
 #, no-wrap
 msgid "Audio Services"
 msgstr "Services audio"
 
 #. type: menuentry
-#: doc/guix.texi:300 doc/guix.texi:11471
+#: doc/guix.texi:350 doc/guix.texi:14386
 msgid "The MPD."
 msgstr "MPD@."
 
-#. type: node
-#: doc/guix.texi:300 doc/guix.texi:11471 doc/guix.texi:21333
+#. type: subsection
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:26099
+#: doc/guix.texi:26100
 #, no-wrap
 msgid "Virtualization Services"
 msgstr "Services de virtualisation"
 
 #. type: menuentry
-#: doc/guix.texi:300 doc/guix.texi:11471
+#: doc/guix.texi:350 doc/guix.texi:14386
 msgid "Virtualization services."
 msgstr "Services de virtualisation."
 
 #. type: subsection
-#: doc/guix.texi:300 doc/guix.texi:11471 doc/guix.texi:22126
-#: doc/guix.texi:22127
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:27721
+#: doc/guix.texi:27722
 #, no-wrap
 msgid "Version Control Services"
 msgstr "Services de contrôle de version"
 
 #. type: menuentry
-#: doc/guix.texi:300 doc/guix.texi:11471
+#: doc/guix.texi:350 doc/guix.texi:14386
 msgid "Providing remote access to Git repositories."
 msgstr "Fournit des accès distants à des dépôts Git."
 
 #. type: subsection
-#: doc/guix.texi:300 doc/guix.texi:11471 doc/guix.texi:23314
-#: doc/guix.texi:23315
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:28913
+#: doc/guix.texi:28914
 #, no-wrap
 msgid "Game Services"
 msgstr "Services de jeu"
 
 #. type: menuentry
-#: doc/guix.texi:300 doc/guix.texi:11471
+#: doc/guix.texi:350 doc/guix.texi:14386
 msgid "Game servers."
 msgstr "Serveurs de jeu."
 
 #. type: subsection
-#: doc/guix.texi:300 doc/guix.texi:11471 doc/guix.texi:23345
-#: doc/guix.texi:23346
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:28945
+#: doc/guix.texi:28946
+#, no-wrap
+msgid "PAM Mount Service"
+msgstr "Service PAM de montage"
+
+#. type: menuentry
+#: doc/guix.texi:350 doc/guix.texi:14386
+msgid "Service to mount volumes when logging in."
+msgstr "Service pour monter des volumes quand vous vous connectez."
+
+#. type: subsection
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:29028
+#: doc/guix.texi:29029
+#, no-wrap
+msgid "Guix Services"
+msgstr "Services Guix"
+
+#. type: menuentry
+#: doc/guix.texi:350 doc/guix.texi:14386
+msgid "Services relating specifically to Guix."
+msgstr "Services liés spécifiquement à Guix."
+
+#. type: subsection
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:29245
+#: doc/guix.texi:29246
+#, no-wrap
+msgid "Linux Services"
+msgstr "Services Linux"
+
+#. type: menuentry
+#: doc/guix.texi:350 doc/guix.texi:14386
+msgid "Services tied to the Linux kernel."
+msgstr "Services liés au noyau Linux."
+
+#. type: subsection
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:29392
+#: doc/guix.texi:29393
+#, no-wrap
+msgid "Hurd Services"
+msgstr "Services Hurd"
+
+#. type: menuentry
+#: doc/guix.texi:350 doc/guix.texi:14386
+msgid "Services specific for a Hurd System."
+msgstr "Services spécifiques pour un système Hurd."
+
+#. type: subsection
+#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:29434
+#: doc/guix.texi:29435
 #, no-wrap
 msgid "Miscellaneous Services"
 msgstr "Services divers"
 
 #. type: menuentry
-#: doc/guix.texi:300 doc/guix.texi:11471
+#: doc/guix.texi:350 doc/guix.texi:14386
 msgid "Other services."
 msgstr "D'autres services."
 
 #. type: subsection
-#: doc/guix.texi:307 doc/guix.texi:24822 doc/guix.texi:24824
-#: doc/guix.texi:24825
+#: doc/guix.texi:357 doc/guix.texi:31523 doc/guix.texi:31525
+#: doc/guix.texi:31526
 #, no-wrap
 msgid "Service Composition"
 msgstr "Composition de services"
 
 #. type: menuentry
-#: doc/guix.texi:307 doc/guix.texi:24822
+#: doc/guix.texi:357 doc/guix.texi:31523
 msgid "The model for composing services."
 msgstr "Le modèle de composition des services."
 
 #. type: subsection
-#: doc/guix.texi:307 doc/guix.texi:24822 doc/guix.texi:24880
-#: doc/guix.texi:24881
+#: doc/guix.texi:357 doc/guix.texi:31523 doc/guix.texi:31581
+#: doc/guix.texi:31582
 #, no-wrap
 msgid "Service Types and Services"
 msgstr "Types service et services"
 
 #. type: menuentry
-#: doc/guix.texi:307 doc/guix.texi:24822
+#: doc/guix.texi:357 doc/guix.texi:31523
 msgid "Types and services."
 msgstr "Types et services."
 
 #. type: subsection
-#: doc/guix.texi:307 doc/guix.texi:24822 doc/guix.texi:25017
-#: doc/guix.texi:25018
+#: doc/guix.texi:357 doc/guix.texi:31523 doc/guix.texi:31718
+#: doc/guix.texi:31719
 #, no-wrap
 msgid "Service Reference"
 msgstr "Référence de service"
 
 #. type: menuentry
-#: doc/guix.texi:307 doc/guix.texi:24822
+#: doc/guix.texi:357 doc/guix.texi:31523
 msgid "API reference."
 msgstr "Référence de l'API@."
 
 #. type: subsection
-#: doc/guix.texi:307 doc/guix.texi:24822 doc/guix.texi:25242
-#: doc/guix.texi:25243
+#: doc/guix.texi:357 doc/guix.texi:31523 doc/guix.texi:32009
+#: doc/guix.texi:32010
 #, no-wrap
 msgid "Shepherd Services"
 msgstr "Services Shepherd"
 
 #. type: menuentry
-#: doc/guix.texi:307 doc/guix.texi:24822
+#: doc/guix.texi:357 doc/guix.texi:31523
 msgid "A particular type of service."
 msgstr "Un type de service particulier."
 
+#. type: section
+#: doc/guix.texi:362 doc/guix.texi:32244 doc/guix.texi:32246
+#: doc/guix.texi:32247
+#, no-wrap
+msgid "Separate Debug Info"
+msgstr "Informations de débogage séparées"
+
+#. type: menuentry
+#: doc/guix.texi:362 doc/guix.texi:32244
+msgid "Installing 'debug' outputs."
+msgstr "Installer les fichiers de débogage."
+
+#. type: section
+#: doc/guix.texi:362 doc/guix.texi:32244 doc/guix.texi:32305
+#: doc/guix.texi:32306
+#, no-wrap
+msgid "Rebuilding Debug Info"
+msgstr "Reconstruire les informations de débogage"
+
+#. type: menuentry
+#: doc/guix.texi:362 doc/guix.texi:32244
+msgid "Building missing debug info."
+msgstr "Construire les informations manquantes de débogage."
+
+#. type: node
+#: doc/guix.texi:367 doc/guix.texi:32517 doc/guix.texi:32519
+#, no-wrap
+msgid "Reduced Binary Seed Bootstrap"
+msgstr "Binary Seed Bootstrap réduit"
+
+#. type: menuentry
+#: doc/guix.texi:367 doc/guix.texi:32517
+msgid "A Bootstrap worthy of GNU."
+msgstr "Un Bootstrap digne de GNU."
+
+#. type: section
+#: doc/guix.texi:367 doc/guix.texi:32517 doc/guix.texi:32594
+#: doc/guix.texi:32595
+#, no-wrap
+msgid "Preparing to Use the Bootstrap Binaries"
+msgstr "Se préparer à utiliser les binaires de bootstrap"
+
+#. type: menuentry
+#: doc/guix.texi:367 doc/guix.texi:32517
+msgid "Building that what matters most."
+msgstr "Construire ce qui compte le plus."
+
 #. type: cindex
-#: doc/guix.texi:315
+#: doc/guix.texi:375
 #, no-wrap
 msgid "purpose"
 msgstr "but"
 
 #. type: Plain text
-#: doc/guix.texi:323
+#: doc/guix.texi:383
 msgid "GNU Guix@footnote{``Guix'' is pronounced like ``geeks'', or ``ɡiːks'' using the international phonetic alphabet (IPA).} is a package management tool for and distribution of the GNU system.  Guix makes it easy for unprivileged users to install, upgrade, or remove software packages, to roll back to a previous package set, to build packages from source, and generally assists with the creation and maintenance of software environments."
 msgstr "GNU Guix@footnote{« Guix » se prononce comme « geeks » (en prononçant le « s »), ou « ɡiːks » dans l'alphabet phonétique international (API).} est un outil de gestion de paquets et une distribution pour le système GNU@.  Guix facilite pour les utilisateur·rice·s non privilégié·e·s l'installation, la mise à jour et la suppression de paquets, la restauration à un ensemble de paquets précédent, la construction de paquets depuis les sources et plus généralement aide à la création et à la maintenance d'environnements logiciels."
 
 #. type: cindex
-#: doc/guix.texi:324 doc/guix.texi:399
+#: doc/guix.texi:384 doc/guix.texi:459
 #, no-wrap
 msgid "Guix System"
 msgstr "Système Guix"
 
 #. type: cindex
-#: doc/guix.texi:325
+#: doc/guix.texi:385
 #, no-wrap
 msgid "GuixSD, now Guix System"
 msgstr "GuixSD, maintenant le système Guix"
 
 #. type: cindex
-#: doc/guix.texi:326
+#: doc/guix.texi:386
 #, no-wrap
 msgid "Guix System Distribution, now Guix System"
 msgstr "Distribution Système Guix, maintenant le système Guix"
 
 #. type: Plain text
-#: doc/guix.texi:335
+#: doc/guix.texi:395
 msgid "You can install GNU@tie{}Guix on top of an existing GNU/Linux system where it complements the available tools without interference (@pxref{Installation}), or you can use it as a standalone operating system distribution, @dfn{Guix@tie{}System}@footnote{We used to refer to Guix System as ``Guix System Distribution'' or ``GuixSD''.  We now consider it makes more sense to group everything under the ``Guix'' banner since, after all, Guix System is readily available through the @command{guix system} command, even if you're using a different distro underneath!}.  @xref{GNU Distribution}."
 msgstr "Vous pouvez installer GNU@tie{}Guix sur un système GNU/Linux existant pour compléter les outils disponibles sans interférence (@pxref{Installation}) ou vous pouvez l'utiliser comme distribution système indépendante, @dfn{Guix System}@footnote{Nous appelions le système Guix « la distribution système Guix » ou « GuixSD ».  nous considérons maintenant qu'il est plus pertinent de regrouper tout sous la bannière de « Guix » comme, après tout, Guix System est directement disponible sous la commande @command{guix system}, meme si vous utilisez une autre distro en dessous !}.  @xref{GNU Distribution}."
 
 #. type: cindex
-#: doc/guix.texi:344
+#: doc/guix.texi:404
 #, no-wrap
 msgid "user interfaces"
 msgstr "interfaces utilisateur·rice"
 
 #. type: Plain text
-#: doc/guix.texi:350
+#: doc/guix.texi:410
 msgid "Guix provides a command-line package management interface (@pxref{Package Management}), tools to help with software development (@pxref{Development}), command-line utilities for more advanced usage, (@pxref{Utilities}), as well as Scheme programming interfaces (@pxref{Programming Interface})."
 msgstr "Guix fournit une interface de gestion des paquets par la ligne de commande (@pxref{Package Management}), des outils pour aider au développement logiciel (@pxref{Development}), des utilitaires en ligne de commande pour des utilisations plus avancées (@pxref{Utilities}) ainsi que des interfaces de programmation Scheme (@pxref{Programming Interface})."
 
 #. type: cindex
-#: doc/guix.texi:350
+#: doc/guix.texi:410
 #, no-wrap
 msgid "build daemon"
 msgstr "démon de construction"
 
 #. type: Plain text
-#: doc/guix.texi:354
+#: doc/guix.texi:414
 msgid "Its @dfn{build daemon} is responsible for building packages on behalf of users (@pxref{Setting Up the Daemon}) and for downloading pre-built binaries from authorized sources (@pxref{Substitutes})."
 msgstr "Son @dfn{démon de construction} est responsable de la construction des paquets pour les utilisateur·rice·s (@pxref{Paramétrer le démon}) et du téléchargement des binaires pré-construits depuis les sources autorisées (@pxref{Substituts})."
 
 #. type: cindex
-#: doc/guix.texi:355
+#: doc/guix.texi:415
 #, no-wrap
 msgid "extensibility of the distribution"
 msgstr "extensibilité de la distribution"
 
 #. type: cindex
-#: doc/guix.texi:356 doc/guix.texi:5016
+#: doc/guix.texi:416 doc/guix.texi:6241
 #, no-wrap
 msgid "customization, of packages"
 msgstr "personnalisation, des paquets"
 
 #. type: Plain text
-#: doc/guix.texi:365
+#: doc/guix.texi:425
 msgid "Guix includes package definitions for many GNU and non-GNU packages, all of which @uref{https://www.gnu.org/philosophy/free-sw.html, respect the user's computing freedom}.  It is @emph{extensible}: users can write their own package definitions (@pxref{Defining Packages}) and make them available as independent package modules (@pxref{Package Modules}).  It is also @emph{customizable}: users can @emph{derive} specialized package definitions from existing ones, including from the command line (@pxref{Package Transformation Options})."
 msgstr "Guix contient de nombreuses définitions de paquet GNU et non-GNU qui respectent tous les @uref{https://www.gnu.org/philosophy/free-sw.fr.html, libertés de l'utilisateur ou utilisatrice}.  Il est @emph{extensible}  : chacun·e peut écrire ses propres définitions de paquets (@pxref{Defining Packages}) et les rendre disponibles dans des modules de paquets indépendants (@pxref{Package Modules}).  Il est aussi @emph{personnalisable} : on peut @emph{dériver} des définitions de paquets spécialisées à partir de définitions existantes, même depuis la ligne de commande (@pxref{Package Transformation Options})."
 
 #. type: cindex
-#: doc/guix.texi:366
+#: doc/guix.texi:426
 #, no-wrap
 msgid "functional package management"
 msgstr "gestion de paquet fonctionnelle"
 
 #. type: cindex
-#: doc/guix.texi:367
+#: doc/guix.texi:427
 #, no-wrap
 msgid "isolation"
 msgstr "isolation"
 
 #. type: Plain text
-#: doc/guix.texi:382
+#: doc/guix.texi:442
 msgid "Under the hood, Guix implements the @dfn{functional package management} discipline pioneered by Nix (@pxref{Acknowledgments}).  In Guix, the package build and installation process is seen as a @emph{function}, in the mathematical sense.  That function takes inputs, such as build scripts, a compiler, and libraries, and returns an installed package.  As a pure function, its result depends solely on its inputs---for instance, it cannot refer to software or scripts that were not explicitly passed as inputs.  A build function always produces the same result when passed a given set of inputs.  It cannot alter the environment of the running system in any way; for instance, it cannot create, modify, or delete files outside of its build and installation directories.  This is achieved by running build processes in isolated environments (or @dfn{containers}), where only their explicit inputs are visible."
 msgstr "Sous le capot, Guix implémente la discipline de @dfn{gestion de paquet fonctionnel} inventé par Nix (@pxref{Remerciements}).  Dans Guix le processus de construction et d'installation des paquets est vu comme une @emph{fonction} dans le sens mathématique du terme.  Cette fonction a des entrées (comme des scripts de construction, un compilateur et des bibliothèques) et renvoie un paquet installé.  En tant que fonction pure, son résultat ne dépend que de ses entrées.  Par exemple, il ne peut pas faire référence à des logiciels ou des scripts qui n'ont pas été explicitement passés en entrée.  Une fonction de construction produit toujours le même résultat quand on lui donne le même ensemble d'entrée.  Elle ne peut pas modifier l'environnement du système en cours d'exécution d'aucune manière ; par exemple elle ne peut pas créer, modifier ou supprimer des fichiers en dehors de ses répertoires de construction et d'installation.  Ce résultat s'obtient en lançant les processus de construction dans des environnements isolés (ou des @dfn{conteneurs}) où seules les entrées explicites sont visibles."
 
 #. type: cindex
-#: doc/guix.texi:383 doc/guix.texi:6300
+#: doc/guix.texi:443 doc/guix.texi:8440
 #, no-wrap
 msgid "store"
 msgstr "dépôt"
 
 #. type: Plain text
-#: doc/guix.texi:390
+#: doc/guix.texi:450
 msgid "The result of package build functions is @dfn{cached} in the file system, in a special directory called @dfn{the store} (@pxref{The Store}).  Each package is installed in a directory of its own in the store---by default under @file{/gnu/store}.  The directory name contains a hash of all the inputs used to build that package; thus, changing an input yields a different directory name."
 msgstr "Le résultat des fonctions de construction de paquets est mis en @dfn{cache} dans le système de fichier, dans répertoire spécial appelé le @dfn{dépôt} (@pxref{The Store}).  Chaque paquet est installé dans son répertoire propre dans le dépôt — par défaut dans @file{/gnu/store}.  Le nom du répertoire contient un hash de toutes les entrées utilisées pour construire le paquet ; ainsi, changer une entrée donnera un nom de répertoire différent."
 
 #. type: Plain text
-#: doc/guix.texi:394
+#: doc/guix.texi:454
 msgid "This approach is the foundation for the salient features of Guix: support for transactional package upgrade and rollback, per-user installation, and garbage collection of packages (@pxref{Features})."
 msgstr "Cette approche est le fondement des fonctionnalités les plus importante de Guix : le support des mises à jour des paquets et des retours en arrière transactionnels, l'installation différenciée par utilisateur·rice et le ramassage de miettes pour les paquets (@pxref{Fonctionnalités})."
 
 #. type: Plain text
-#: doc/guix.texi:409
+#: doc/guix.texi:469
 msgid "Guix comes with a distribution of the GNU system consisting entirely of free software@footnote{The term ``free'' here refers to the @url{https://www.gnu.org/philosophy/free-sw.html,freedom provided to users of that software}.}.  The distribution can be installed on its own (@pxref{System Installation}), but it is also possible to install Guix as a package manager on top of an installed GNU/Linux system (@pxref{Installation}).  When we need to distinguish between the two, we refer to the standalone distribution as Guix@tie{}System."
 msgstr "Guix fournit aussi une distribution du système GNU contenant uniquement des logiciels libres@footnote{Le terme « libre » se réfère ici bien sûr à @url{http://www.gnu.org/philosophy/free-sw.fr.html,la liberté offerte à la personne qui utilise ces logiciels}.}.  On peut installer la distribution elle-même (@pxref{System Installation}), mais on peut aussi installer Guix comme gestionnaire de paquets par dessus un système GNU/Linux déjà installé (@pxref{Installation}).  Pour distinguer ces deux cas, on appelle la distribution autonome le « système Guix » ou Guix@tie{}System."
 
 #. type: Plain text
-#: doc/guix.texi:415
+#: doc/guix.texi:475
 msgid "The distribution provides core GNU packages such as GNU libc, GCC, and Binutils, as well as many GNU and non-GNU applications.  The complete list of available packages can be browsed @url{https://www.gnu.org/software/guix/packages,on-line} or by running @command{guix package} (@pxref{Invoking guix package}):"
 msgstr "La distribution fournit les paquets cœur de GNU comme la GNU libc, GCC et Binutils, ainsi que de nombreuses applications GNU et non-GNU.  La liste complète des paquets disponibles se trouve @url{http://www.gnu.org/software/guix/packages,en ligne} ou en lançant @command{guix package} (@pxref{Invoking guix package}) :"
 
 #. type: example
-#: doc/guix.texi:418
+#: doc/guix.texi:478
 #, no-wrap
 msgid "guix package --list-available\n"
 msgstr "guix package --list-available\n"
 
 #. type: Plain text
-#: doc/guix.texi:424
+#: doc/guix.texi:484
 msgid "Our goal is to provide a practical 100% free software distribution of Linux-based and other variants of GNU, with a focus on the promotion and tight integration of GNU components, and an emphasis on programs and tools that help users exert that freedom."
 msgstr "Notre but est de fournir une distribution logicielle entièrement libre de GNU/Linux et d'autres variantes de GNU, en se concentrant sur la promotion et l'intégration étroite des composants GNU en insistant sur les programmes et les outils qui aident l'utilisateur·rice à exercer ses libertés."
 
 #. type: Plain text
-#: doc/guix.texi:426
+#: doc/guix.texi:486
 msgid "Packages are currently available on the following platforms:"
 msgstr "Les paquets sont actuellement disponibles pour les plateformes suivantes :"
 
 #. type: item
-#: doc/guix.texi:429 doc/guix.texi:1877
+#: doc/guix.texi:489 doc/guix.texi:2012
 #, no-wrap
 msgid "x86_64-linux"
 msgstr "x86_64-linux"
 
 #. type: table
-#: doc/guix.texi:431
-msgid "Intel/AMD @code{x86_64} architecture, Linux-Libre kernel;"
-msgstr "l'architecture Intel et AMD @code{x86_64} avec le noyau Linux-libre ;"
+#: doc/guix.texi:491
+msgid "Intel/AMD @code{x86_64} architecture, Linux-Libre kernel."
+msgstr "Intel/AMD @code{x86_64} avec le noyau Linux-libre."
 
 #. type: item
-#: doc/guix.texi:432 doc/guix.texi:1880
+#: doc/guix.texi:492 doc/guix.texi:2015
 #, no-wrap
 msgid "i686-linux"
 msgstr "i686-linux"
 
 #. type: table
-#: doc/guix.texi:434
-msgid "Intel 32-bit architecture (IA32), Linux-Libre kernel;"
-msgstr "l'architecture Intel 32 bits (IA32) avec le noyau Linux-libre ;"
+#: doc/guix.texi:494
+msgid "Intel 32-bit architecture (IA32), Linux-Libre kernel."
+msgstr "Architecture Intel 32 bits (IA32) avec le noyau Linux-libre."
 
 #. type: item
-#: doc/guix.texi:435
+#: doc/guix.texi:495
 #, no-wrap
 msgid "armhf-linux"
 msgstr "armhf-linux"
 
 #. type: table
-#: doc/guix.texi:439
+#: doc/guix.texi:499
 msgid "ARMv7-A architecture with hard float, Thumb-2 and NEON, using the EABI hard-float application binary interface (ABI), and Linux-Libre kernel."
-msgstr "l'architecture ARMv7-A avec gestion des flottants matérielle, Thumb-2 et NEON, avec l'interface binaire applicative (ABI) EABI hard-float et le noyau Linux-libre ;"
+msgstr "L'architecture ARMv7-A avec gestion des flottants matérielle, Thumb-2 et NEON, avec l'interface binaire applicative (ABI) EABI hard-float et le noyau Linux-libre."
 
 #. type: item
-#: doc/guix.texi:440
+#: doc/guix.texi:500
 #, no-wrap
 msgid "aarch64-linux"
 msgstr "aarch64-linux"
 
 #. type: table
-#: doc/guix.texi:444
-msgid "little-endian 64-bit ARMv8-A processors, Linux-Libre kernel.  This is currently in an experimental stage, with limited support.  @xref{Contributing}, for how to help!"
-msgstr "les processeurs ARMv8-A 64-bits en little-endian avec le noyau Linux-libre.  Le support est actuellement expérimental et limité.  @xref{Contributing}, pour savoir comment aider !"
+#: doc/guix.texi:502
+msgid "little-endian 64-bit ARMv8-A processors, Linux-Libre kernel."
+msgstr "les processeurs 64 bits ARMv8-A en little-endian, avec le noyau Linux-libre."
 
 #. type: item
-#: doc/guix.texi:445
+#: doc/guix.texi:503
 #, no-wrap
-msgid "mips64el-linux"
-msgstr "mips64el-linux"
+msgid "i586-gnu"
+msgstr "i586-gnu"
 
 #. type: table
-#: doc/guix.texi:448
-#, fuzzy
-#| msgid "little-endian 64-bit ARMv8-A processors, Linux-Libre kernel."
-msgid "little-endian 64-bit MIPS processors, specifically the Loongson series, n32 ABI, and Linux-Libre kernel."
-msgstr "les processeurs 64 bits ARMv8-A en little-endian, avec le noyau Linux-libre."
+#: doc/guix.texi:506
+msgid "@uref{https://hurd.gnu.org, GNU/Hurd} on the Intel 32-bit architecture (IA32)."
+msgstr "@uref{https://hurd.gnu.org, GNU/Hurd} sur l'architecture Intel 32-bit (IA32)."
+
+#. type: table
+#: doc/guix.texi:512
+msgid "This configuration is experimental and under development.  The easiest way for you to give it a try is by setting up an instance of @code{hurd-vm-service-type} on your GNU/Linux machine (@pxref{transparent-emulation-qemu, @code{hurd-vm-service-type}}).  @xref{Contributing}, on how to help!"
+msgstr "Cette configuration en cours de développement est expérimentale. La manière la plus facile pour vous de l'essayer est de créer une instance @code{hurd-vm-service-type} sur votre machine GNU/Linux (@pxref{transparent-emulation-qemu, @code{hurd-vm-service-type}}).  @xref{Contributing}, sur la façon d'aider !"
+
+#. type: item
+#: doc/guix.texi:513
+#, no-wrap
+msgid "mips64el-linux (deprecated)"
+msgstr "mips64el-linux (obsolète)"
+
+#. type: table
+#: doc/guix.texi:519
+msgid "little-endian 64-bit MIPS processors, specifically the Loongson series, n32 ABI, and Linux-Libre kernel.  This configuration is no longer fully supported; in particular, there is no ongoing work to ensure that this architecture still works. Should someone decide they wish to revive this architecture then the code is still available."
+msgstr "les processeurs MIPS 64 bits little-endian, en particulier la série Loongson, l'ABI n32 et le noyau Linux-Libre.  Cette configuration n'est plus entièrement prise en charge ; en particulier, il n'y a pas de travaux en cours pour s'assurer que cette architecture fonctionne encore. Si quelqu'un décide de faire revivre cette architecture, le code est toujours disponible."
 
 #. type: Plain text
-#: doc/guix.texi:458
+#: doc/guix.texi:529
 msgid "With Guix@tie{}System, you @emph{declare} all aspects of the operating system configuration and Guix takes care of instantiating the configuration in a transactional, reproducible, and stateless fashion (@pxref{System Configuration}).  Guix System uses the Linux-libre kernel, the Shepherd initialization system (@pxref{Introduction,,, shepherd, The GNU Shepherd Manual}), the well-known GNU utilities and tool chain, as well as the graphical environment or system services of your choice."
 msgstr "Avec Guix@tie{}System, vous @emph{déclarez} tous les aspects de la configuration du système d'exploitation et guix s'occupe d'instancier la configuration de manière transactionnelle, reproductible et sans état (@pxref{System Configuration}).  Guix System utilise le noyau Linux-libre, le système d'initialisation Shepherd (@pxref{Introduction,,, shepherd, The GNU Shepherd Manual}), les outils GNU et la chaîne d'outils familière ainsi que l'environnement graphique et les services systèmes de votre choix."
 
 #. type: Plain text
-#: doc/guix.texi:461
+#: doc/guix.texi:532
 msgid "Guix System is available on all the above platforms except @code{mips64el-linux}."
 msgstr "Guix System est disponible sur toutes les plateformes ci-dessus à part @code{mips64el-linux}."
 
 #. type: Plain text
-#: doc/guix.texi:465
+#: doc/guix.texi:536
 msgid "For information on porting to other architectures or kernels, @pxref{Porting}."
 msgstr "Pour des informations sur comment porter vers d'autres architectures et d'autres noyau, @pxref{Porting}."
 
 #. type: Plain text
-#: doc/guix.texi:468
+#: doc/guix.texi:539
 msgid "Building this distribution is a cooperative effort, and you are invited to join! @xref{Contributing}, for information about how you can help."
 msgstr "La construction de cette distribution est un effort collaboratif et nous vous invitons à nous rejoindre ! @xref{Contributing}, pour des informations sur la manière de nous aider."
 
 #. type: cindex
-#: doc/guix.texi:474
+#: doc/guix.texi:545
 #, no-wrap
 msgid "installing Guix"
 msgstr "installer Guix"
 
 #. type: quotation
-#: doc/guix.texi:476 doc/guix.texi:524 doc/guix.texi:1548 doc/guix.texi:1779
-#: doc/guix.texi:1984 doc/guix.texi:2186 doc/guix.texi:2381 doc/guix.texi:3180
-#: doc/guix.texi:3960 doc/guix.texi:4176 doc/guix.texi:4465 doc/guix.texi:4697
-#: doc/guix.texi:4844 doc/guix.texi:6319 doc/guix.texi:6387 doc/guix.texi:8073
-#: doc/guix.texi:8085 doc/guix.texi:9976 doc/guix.texi:10513
-#: doc/guix.texi:11062 doc/guix.texi:13544 doc/guix.texi:19352
-#: doc/guix.texi:24107 doc/guix.texi:24302 doc/guix.texi:24421
-#: doc/guix.texi:24536 doc/guix.texi:25545
-#, no-wrap
-msgid "Note"
-msgstr "Remarque"
-
-#. type: quotation
-#: doc/guix.texi:486
+#: doc/guix.texi:557
 msgid "We recommend the use of this @uref{https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh, shell installer script} to install Guix on top of a running GNU/Linux system, thereafter called a @dfn{foreign distro}.@footnote{This section is concerned with the installation of the package manager, which can be done on top of a running GNU/Linux system.  If, instead, you want to install the complete GNU operating system, @pxref{System Installation}.} The script automates the download, installation, and initial configuration of Guix.  It should be run as the root user."
 msgstr "Nous vous recommandons d'utiliser ce @uref{https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh, script shell d'installation} pour installer Guix sur un système GNU/Linux fonctionnel, que nous appelons une @dfn{distro externe}@footnote{Cette section s'occupe de l'installation du gestionnaire de paquet, ce qui peut se faire sur un système GNU/Linux existant.  Si vous voulez plutôt installer le système d'exploitation GNU complet, @pxref{System Installation}.}.  Le script automatise le téléchargement, l'installation et la configuration initiale de Guix.  Vous devez l'exécuter en tant que root."
 
 #. type: cindex
-#: doc/guix.texi:488 doc/guix.texi:1565
+#: doc/guix.texi:559 doc/guix.texi:1684
 #, no-wrap
 msgid "foreign distro"
 msgstr "distro externe"
 
 #. type: cindex
-#: doc/guix.texi:489
+#: doc/guix.texi:560
 #, no-wrap
 msgid "directories related to foreign distro"
 msgstr "répertoires liés aux distro externes"
 
 #. type: Plain text
-#: doc/guix.texi:494
+#: doc/guix.texi:565
 msgid "When installed on a foreign distro, GNU@tie{}Guix complements the available tools without interference.  Its data lives exclusively in two directories, usually @file{/gnu/store} and @file{/var/guix}; other files on your system, such as @file{/etc}, are left untouched."
 msgstr "Lorsqu'il est installé sur une distro externe, GNU@tie{}Guix complète les outils disponibles sans interférence.  Ses données se trouvent exclusivement dans deux répertoires, typiquement @file{/gnu/store} et @file{/var/guix} ; les autres fichiers de votre système comme @file{/etc} sont laissés intacts."
 
 #. type: Plain text
-#: doc/guix.texi:497
+#: doc/guix.texi:568
 msgid "Once installed, Guix can be updated by running @command{guix pull} (@pxref{Invoking guix pull})."
 msgstr "Une fois installé, Guix peut être mis à jour en lançant @command{guix pull} (@pxref{Invoking guix pull})."
 
 #. type: Plain text
-#: doc/guix.texi:502
+#: doc/guix.texi:573
 msgid "If you prefer to perform the installation steps manually or want to tweak them, you may find the following subsections useful.  They describe the software requirements of Guix, as well as how to install it manually and get ready to use it."
 msgstr "Si vous préférez effectuer les étapes d'installation manuellement ou si vous voulez les personnaliser, vous trouverez les sections suivantes utile.  Elles décrivent les prérequis logiciels pour Guix, ainsi que la manière de l'installer manuellement et de se préparer à l'utiliser."
 
 #. type: cindex
-#: doc/guix.texi:515
+#: doc/guix.texi:587
 #, no-wrap
 msgid "installing Guix from binaries"
 msgstr "installer Guix depuis les binaires"
 
 #. type: cindex
-#: doc/guix.texi:516
+#: doc/guix.texi:588
 #, no-wrap
 msgid "installer script"
 msgstr "script d'installation"
 
 #. type: Plain text
-#: doc/guix.texi:522
+#: doc/guix.texi:594
 msgid "This section describes how to install Guix on an arbitrary system from a self-contained tarball providing binaries for Guix and for all its dependencies.  This is often quicker than installing from source, which is described in the next sections.  The only requirement is to have GNU@tie{}tar and Xz."
 msgstr "Cette section décrit comment installer Guix sur un système quelconque depuis un archive autonome qui fournit les binaires pour Guix et toutes ses dépendances.  C'est souvent plus rapide que d'installer depuis les sources, ce qui est décrit dans les sections suivantes.  Le seul prérequis est d'avoir GNU@tie{}tar et Xz."
 
 #. type: quotation
-#: doc/guix.texi:530
-msgid "We recommend the use of this @uref{https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh, shell installer script}.  The script automates the download, installation, and initial configuration steps described below.  It should be run as the root user."
-msgstr "Nous vous recommandons d'utiliser ce @uref{https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh, script d'installation shell}. Ce script automatise le téléchargement, l'installation et les étapes de configuration initiales décrites plus bas.  Vous devriez le lancer en tant que root."
+#: doc/guix.texi:602
+msgid "We recommend the use of this @uref{https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh, shell installer script}.  The script automates the download, installation, and initial configuration steps described below.  It should be run as the root user.  As root, you can thus run this:"
+msgstr "Nous recommandons l'utilisation de ce @uref{https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh, script d'installation du shell}.  Ce script automatise les étapes de téléchargement, d'installation et de configuration initiale décrites ci-dessous.  Il doit être exécuté sous l'utilisateur root.  Vous pouvez donc l'exécuter en tant que root :"
+
+#. type: example
+#: doc/guix.texi:608
+#, no-wrap
+msgid ""
+"cd /tmp\n"
+"wget https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh\n"
+"chmod +x guix-install.sh\n"
+"./guix-install.sh\n"
+msgstr ""
+"cd /tmp\n"
+"wget https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh\n"
+"chmod +x guix-install.sh\n"
+"./guix-install.sh\n"
+
+#. type: quotation
+#: doc/guix.texi:612
+msgid "When you're done, @pxref{Application Setup} for extra configuration you might need, and @ref{Getting Started} for your first steps!"
+msgstr "Lorsque vous aurez terminé, @pxref{Application Setup} pour la configuration supplémentaire dont vous pourriez avoir besoin, et @ref{Getting Started} pour vos premiers pas !"
 
 #. type: Plain text
-#: doc/guix.texi:533
+#: doc/guix.texi:615
 msgid "Installing goes along these lines:"
 msgstr "L'installation se comme ceci :"
 
 #. type: cindex
-#: doc/guix.texi:536
+#: doc/guix.texi:618
 #, no-wrap
 msgid "downloading Guix binary"
 msgstr "téléchargement du Guix binaire"
 
 #. type: enumerate
-#: doc/guix.texi:541
-msgid "Download the binary tarball from @indicateurl{@value{BASE-URL}/guix-binary-@value{VERSION}.@var{system}.tar.xz}, where @var{system} is @code{x86_64-linux} for an @code{x86_64} machine already running the kernel Linux, and so on."
-msgstr "Téléchargez l'archive binaire depuis @indicateurl{@value{BASE-URL}/guix-binary-@value{VERSION}.@var{système}.tar.xz}, où @var{système} est @code{x86_64-linux} pour une machine @code{x86_64} sur laquelle tourne déjà le noyau Linux, etc."
+#: doc/guix.texi:624
+msgid "Download the binary tarball from @indicateurl{@value{BASE-URL}/guix-binary-@value{VERSION}.x86_64-linux.tar.xz}, where @code{x86_64-linux} can be replaced with @code{i686-linux} for an @code{i686} (32-bits) machine already running the kernel Linux, and so on (@pxref{GNU Distribution})."
+msgstr "Télécharger le tarball binaire à partir de @indicateurl{@value{BASE-URL}/guix-binary-@value{VERSION}.x86_64-linux.tar.xz}, où @code{x86_64-linux} peut être remplacé par @code{i686-linux} pour une @code{i686} (32-bits) machine fonctionnant déjà avec le noyau Linux, et autres (@pxref{GNU Distribution})."
 
 #. type: enumerate
-#: doc/guix.texi:545
+#: doc/guix.texi:628
 msgid "Make sure to download the associated @file{.sig} file and to verify the authenticity of the tarball against it, along these lines:"
 msgstr "Assurez-vous de télécharger le fichier @file{.sig} associé et de vérifier l'authenticité de l'archive avec, comme ceci :"
 
 #. type: example
-#: doc/guix.texi:549
+#: doc/guix.texi:632
 #, no-wrap
 msgid ""
-"$ wget @value{BASE-URL}/guix-binary-@value{VERSION}.@var{system}.tar.xz.sig\n"
-"$ gpg --verify guix-binary-@value{VERSION}.@var{system}.tar.xz.sig\n"
+"$ wget @value{BASE-URL}/guix-binary-@value{VERSION}.x86_64-linux.tar.xz.sig\n"
+"$ gpg --verify guix-binary-@value{VERSION}.x86_64-linux.tar.xz.sig\n"
 msgstr ""
-"$ wget @value{BASE-URL}/guix-binary-@value{VERSION}.@var{système}.tar.xz.sig\n"
-"$ gpg --verify guix-binary-@value{VERSION}.@var{système}.tar.xz.sig\n"
+"$ wget @value{BASE-URL}/guix-binary-@value{VERSION}.x86_64-linux.tar.xz.sig\n"
+"$ gpg --verify guix-binary-@value{VERSION}.x86_64-linux.tar.xz.sig\n"
+"\n"
 
 #. type: Plain text
-#: doc/guix.texi:553 doc/guix.texi:1895
+#: doc/guix.texi:636 doc/guix.texi:2030
 msgid "If that command fails because you do not have the required public key, then run this command to import it:"
 msgstr "Si cette commande échoue parce que vous n'avez pas la clef publique requise, lancez cette commande pour l'importer :"
 
 #. type: example
-#: doc/guix.texi:557 doc/guix.texi:1899
+#: doc/guix.texi:640 doc/guix.texi:2034
 #, no-wrap
 msgid ""
-"$ gpg --keyserver @value{KEY-SERVER} \\\n"
-"      --recv-keys @value{OPENPGP-SIGNING-KEY-ID}\n"
+"$ wget @value{OPENPGP-SIGNING-KEY-URL} \\\n"
+"      -qO - | gpg --import -\n"
 msgstr ""
-"$ gpg --keyserver @value{KEY-SERVER} \\\n"
-"      --recv-keys @value{OPENPGP-SIGNING-KEY-ID}\n"
+"$ wget @value{OPENPGP-SIGNING-KEY-URL} \\\n"
+"      -qO - | gpg --import -\n"
 
 #. type: Plain text
-#: doc/guix.texi:562 doc/guix.texi:1904
+#: doc/guix.texi:644 doc/guix.texi:2038
 msgid "and rerun the @code{gpg --verify} command."
 msgstr "et relancez la commande @code{gpg --verify}."
 
+#. type: Plain text
+#: doc/guix.texi:647 doc/guix.texi:2041
+msgid "Take note that a warning like ``This key is not certified with a trusted signature!'' is normal."
+msgstr "Remarquez qu'un avertissement du type « Cette clef n'est pas certifiée par une signature de confiance ! » est normal."
+
 #. type: enumerate
-#: doc/guix.texi:566
+#: doc/guix.texi:653
 msgid "Now, you need to become the @code{root} user.  Depending on your distribution, you may have to run @code{su -} or @code{sudo -i}.  As @code{root}, run:"
 msgstr "Maintenant, vous devez devenir @code{root}.  En fonction de votre distribution, vous devrez lancer @code{su -} ou @code{sudo -i}.  En tant que @code{root}, lancez :"
 
 #. type: example
-#: doc/guix.texi:572
+#: doc/guix.texi:659
 #, no-wrap
 msgid ""
 "# cd /tmp\n"
 "# tar --warning=no-timestamp -xf \\\n"
-"     guix-binary-@value{VERSION}.@var{system}.tar.xz\n"
+"     /path/to/guix-binary-@value{VERSION}.x86_64-linux.tar.xz\n"
 "# mv var/guix /var/ && mv gnu /\n"
 msgstr ""
 "# cd /tmp\n"
 "# tar --warning=no-timestamp -xf \\\n"
-"     guix-binary-@value{VERSION}.@var{système}.tar.xz\n"
+"     /chemin/vers/guix-binary-@value{VERSION}.x86_64-linux.tar.xz\n"
 "# mv var/guix /var/ && mv gnu /\n"
 
 #. type: enumerate
-#: doc/guix.texi:577
-msgid "This creates @file{/gnu/store} (@pxref{The Store}) and @file{/var/guix}.  The latter contains a ready-to-use profile for @code{root} (see next step.)"
-msgstr "Cela crée @file{/gnu/store} (@pxref{The Store}) and @file{/var/guix}.  Ce deuxième dossier contient un profil prêt à être utilisé pour @code{root} (voir les étapes suivantes)."
+#: doc/guix.texi:664
+msgid "This creates @file{/gnu/store} (@pxref{The Store}) and @file{/var/guix}.  The latter contains a ready-to-use profile for @code{root} (see next step)."
+msgstr "Cela crée @file{/gnu/store} (@pxref{The Store}) and @file{/var/guix}.  Ce dernier contient un profil prêt à être utilisé pour @code{root} (voir les étapes suivantes)."
 
 #. type: enumerate
-#: doc/guix.texi:580
+#: doc/guix.texi:667
 msgid "Do @emph{not} unpack the tarball on a working Guix system since that would overwrite its own essential files."
 msgstr "Ne décompressez @emph{pas} l'archive sur un système Guix lancé car cela écraserait ses propres fichiers essentiels."
 
 #. type: enumerate
-#: doc/guix.texi:590
-msgid "The @code{--warning=no-timestamp} option makes sure GNU@tie{}tar does not emit warnings about ``implausibly old time stamps'' (such warnings were triggered by GNU@tie{}tar 1.26 and older; recent versions are fine.)  They stem from the fact that all the files in the archive have their modification time set to zero (which means January 1st, 1970.)  This is done on purpose to make sure the archive content is independent of its creation time, thus making it reproducible."
-msgstr "L'option @code{--warning=no-timestamp} s'assure que GNU@tie{}tar ne produise pas d'avertissement disant que « l'horodatage est trop vieux pour être plausible » (ces avertissements étaient produits par GNU@tie{}tar 1.26 et précédents ; les versions récentes n'ont pas ce problème).  Cela vient du fait que les fichiers de l'archive ont pour date de modification zéro (ce qui signifie le 1er janvier 1970).  C'est fait exprès pour s'assurer que le contenu de l'archive ne dépende pas de la date de création, ce qui la rend reproductible."
+#: doc/guix.texi:677
+msgid "The @option{--warning=no-timestamp} option makes sure GNU@tie{}tar does not emit warnings about ``implausibly old time stamps'' (such warnings were triggered by GNU@tie{}tar 1.26 and older; recent versions are fine).  They stem from the fact that all the files in the archive have their modification time set to 1 (which means January 1st, 1970).  This is done on purpose to make sure the archive content is independent of its creation time, thus making it reproducible."
+msgstr "L'option @option{--warning=no-timestamp} permet de s'assurer que GNU@tie{}tar n'émet pas d'avertissements concernant des « horodatages manifestement anciens » (de tels avertissements ont été déclenchés par GNU@tie{}tar 1.26 et plus anciens ; les versions récentes conviennent).  Ils proviennent du fait que tous les fichiers de l'archive ont leur heure de modification fixée à un (ce qui signifie le 1er janvier 1970).  Ceci est fait exprès pour s'assurer que le contenu de l'archive est indépendant de son temps de création, la rendant ainsi reproductible."
 
 #. type: enumerate
-#: doc/guix.texi:594
+#: doc/guix.texi:681
 msgid "Make the profile available under @file{~root/.config/guix/current}, which is where @command{guix pull} will install updates (@pxref{Invoking guix pull}):"
 msgstr "Rendez le profil disponible sous @file{~root/.config/guix/current}, qui est l'emplacement où @command{guix pull} installera les mises à jour (@pxref{Invoking guix pull}) :"
 
 #. type: example
-#: doc/guix.texi:599
+#: doc/guix.texi:686
 #, no-wrap
 msgid ""
 "# mkdir -p ~root/.config/guix\n"
@@ -3530,12 +4525,12 @@ msgstr ""
 "         ~root/.config/guix/current\n"
 
 #. type: enumerate
-#: doc/guix.texi:603
-msgid "Source @file{etc/profile} to augment @code{PATH} and other relevant environment variables:"
-msgstr "Sourcez @file{etc/profile} pour augmenter @code{PATH} et les autres variables d'environnement nécessaires :"
+#: doc/guix.texi:690
+msgid "Source @file{etc/profile} to augment @env{PATH} and other relevant environment variables:"
+msgstr "Agrémentez @file{etc/profile} pour augmenter @code{PATH} et les autres variables d'environnement nécessaires :"
 
 #. type: example
-#: doc/guix.texi:607
+#: doc/guix.texi:694
 #, no-wrap
 msgid ""
 "# GUIX_PROFILE=\"`echo ~root`/.config/guix/current\" ; \\\n"
@@ -3545,39 +4540,41 @@ msgstr ""
 "  source $GUIX_PROFILE/etc/profile\n"
 
 #. type: enumerate
-#: doc/guix.texi:612
+#: doc/guix.texi:699
 msgid "Create the group and user accounts for build users as explained below (@pxref{Build Environment Setup})."
 msgstr "Créez le groupe et les comptes utilisés pour la construction comme expliqué plus loin (@pxref{Build Environment Setup})."
 
 #. type: enumerate
-#: doc/guix.texi:615
+#: doc/guix.texi:702
 msgid "Run the daemon, and set it to automatically start on boot."
 msgstr "Lancez le démon et paramétrez-le pour démarrer automatiquement au démarrage."
 
 #. type: enumerate
-#: doc/guix.texi:618
+#: doc/guix.texi:705
 msgid "If your host distro uses the systemd init system, this can be achieved with these commands:"
 msgstr "Si votre distribution hôte utilise le système d'initialisation systemd, cela peut se faire avec ces commandes :"
 
 #. type: example
-#: doc/guix.texi:630
+#: doc/guix.texi:718
 #, no-wrap
 msgid ""
-"# cp ~root/.config/guix/current/lib/systemd/system/guix-daemon.service \\\n"
+"# cp ~root/.config/guix/current/lib/systemd/system/gnu-store.mount \\\n"
+"     ~root/.config/guix/current/lib/systemd/system/guix-daemon.service \\\n"
 "     /etc/systemd/system/\n"
-"# systemctl start guix-daemon && systemctl enable guix-daemon\n"
+"# systemctl enable --now gnu-store.mount guix-daemon\n"
 msgstr ""
-"# cp ~root/.config/guix/current/lib/systemd/system/guix-daemon.service \\\n"
+"# cp ~root/.config/guix/current/lib/systemd/system/gnu-store.mount \\\n"
+"     ~root/.config/guix/current/lib/systemd/system/guix-daemon.service \\\n"
 "     /etc/systemd/system/\n"
-"# systemctl start guix-daemon && systemctl enable guix-daemon\n"
+"# systemctl enable --now gnu-store.mount guix-daemon\n"
 
 #. type: itemize
-#: doc/guix.texi:633 doc/guix.texi:9760
+#: doc/guix.texi:721 doc/guix.texi:12367
 msgid "If your host distro uses the Upstart init system:"
 msgstr "Si votre distribution hôte utilise le système d'initialisation Upstart :"
 
 #. type: example
-#: doc/guix.texi:639
+#: doc/guix.texi:727
 #, no-wrap
 msgid ""
 "# initctl reload-configuration\n"
@@ -3591,12 +4588,12 @@ msgstr ""
 "# start guix-daemon\n"
 
 #. type: enumerate
-#: doc/guix.texi:642
+#: doc/guix.texi:730
 msgid "Otherwise, you can still start the daemon manually with:"
 msgstr "Sinon, vous pouvez toujours démarrer le démon manuellement avec :"
 
 #. type: example
-#: doc/guix.texi:646
+#: doc/guix.texi:734
 #, no-wrap
 msgid ""
 "# ~root/.config/guix/current/bin/guix-daemon \\\n"
@@ -3606,12 +4603,12 @@ msgstr ""
 "       --build-users-group=guixbuild\n"
 
 #. type: enumerate
-#: doc/guix.texi:651
+#: doc/guix.texi:739
 msgid "Make the @command{guix} command available to other users on the machine, for instance with:"
 msgstr "Rendez la commande @command{guix} disponible pour les autres personnes sur la machine, par exemple avec :"
 
 #. type: example
-#: doc/guix.texi:656
+#: doc/guix.texi:744
 #, no-wrap
 msgid ""
 "# mkdir -p /usr/local/bin\n"
@@ -3623,12 +4620,12 @@ msgstr ""
 "# ln -s /var/guix/profiles/per-user/root/current-guix/bin/guix\n"
 
 #. type: enumerate
-#: doc/guix.texi:660
+#: doc/guix.texi:748
 msgid "It is also a good idea to make the Info version of this manual available there:"
 msgstr "C'est aussi une bonne idée de rendre la version Info de ce manuel disponible ici :"
 
 #. type: example
-#: doc/guix.texi:666
+#: doc/guix.texi:754
 #, no-wrap
 msgid ""
 "# mkdir -p /usr/local/share/info\n"
@@ -3642,23 +4639,23 @@ msgstr ""
 "  do ln -s $i ; done\n"
 
 #. type: enumerate
-#: doc/guix.texi:672
-msgid "That way, assuming @file{/usr/local/share/info} is in the search path, running @command{info guix} will open this manual (@pxref{Other Info Directories,,, texinfo, GNU Texinfo}, for more details on changing the Info search path.)"
-msgstr "Comme cela, en supposant que @file{/usr/local/share/info} est dans le chemin de recherche, lancer @command{info guix} ouvrira ce manuel (@pxref{Other Info Directories,,, texinfo, GNU Texinfo}, pour plus de détails sur comment changer le chemin de recherche de Info)."
+#: doc/guix.texi:760
+msgid "That way, assuming @file{/usr/local/share/info} is in the search path, running @command{info guix} will open this manual (@pxref{Other Info Directories,,, texinfo, GNU Texinfo}, for more details on changing the Info search path)."
+msgstr "Ainsi, en supposant que @file{/usr/local/share/info} se trouve dans le chemin de recherche, l'exécution de @command{info guix} ouvrira ce manuel (@pxref{Other Info Directories, , texinfo, GNU Texinfo}, pour plus de détails sur la modification du chemin de recherche Info)."
 
 #. type: cindex
-#: doc/guix.texi:674 doc/guix.texi:3159 doc/guix.texi:11980
+#: doc/guix.texi:762 doc/guix.texi:3603 doc/guix.texi:14912
 #, no-wrap
 msgid "substitutes, authorization thereof"
 msgstr "substituts, autorisations"
 
 #. type: enumerate
-#: doc/guix.texi:677
+#: doc/guix.texi:765
 msgid "To use substitutes from @code{@value{SUBSTITUTE-SERVER}} or one of its mirrors (@pxref{Substitutes}), authorize them:"
 msgstr "Pour utiliser les substituts de @code{@value{SUBSTITUTE-SERVER}} ou l'un de ses miroirs (@pxref{Substituts}), autorisez-les :"
 
 #. type: example
-#: doc/guix.texi:681
+#: doc/guix.texi:769
 #, no-wrap
 msgid ""
 "# guix archive --authorize < \\\n"
@@ -3668,44 +4665,44 @@ msgstr ""
 "     ~root/.config/guix/current/share/guix/@value{SUBSTITUTE-SERVER}.pub\n"
 
 #. type: enumerate
-#: doc/guix.texi:686
+#: doc/guix.texi:774
 msgid "Each user may need to perform a few additional steps to make their Guix environment ready for use, @pxref{Application Setup}."
 msgstr "On peut avoir besoin d'effectuer des étapes supplémentaires pour que son environnement Guix soit prêt à être utilisé, @pxref{Application Setup}."
 
 #. type: Plain text
-#: doc/guix.texi:689
+#: doc/guix.texi:777
 msgid "Voilà, the installation is complete!"
 msgstr "Voilà, l'installation est terminée !"
 
 #. type: Plain text
-#: doc/guix.texi:692
+#: doc/guix.texi:780
 msgid "You can confirm that Guix is working by installing a sample package into the root profile:"
 msgstr "Vous pouvez confirmer que Guix fonctionne en installant un paquet d'exemple dans le profil de root :"
 
 #. type: example
-#: doc/guix.texi:695
+#: doc/guix.texi:783
 #, no-wrap
 msgid "# guix install hello\n"
 msgstr "# guix install hello\n"
 
 #. type: Plain text
-#: doc/guix.texi:699
+#: doc/guix.texi:787
 msgid "The binary installation tarball can be (re)produced and verified simply by running the following command in the Guix source tree:"
 msgstr "L'archive d'installation binaire peut être (re)produite et vérifiée simplement en lançant la commande suivante dans l'arborescence des sources de Guix :"
 
 #. type: example
-#: doc/guix.texi:702
+#: doc/guix.texi:790
 #, no-wrap
 msgid "make guix-binary.@var{system}.tar.xz\n"
 msgstr "make guix-binary.@var{system}.tar.xz\n"
 
 #. type: Plain text
-#: doc/guix.texi:706
+#: doc/guix.texi:794
 msgid "...@: which, in turn, runs:"
 msgstr "…@: ce qui à son tour lance :"
 
 #. type: example
-#: doc/guix.texi:710
+#: doc/guix.texi:798
 #, no-wrap
 msgid ""
 "guix pack -s @var{system} --localstatedir \\\n"
@@ -3715,277 +4712,282 @@ msgstr ""
 "  --profile-name=current-guix guix\n"
 
 #. type: Plain text
-#: doc/guix.texi:713
+#: doc/guix.texi:801
 msgid "@xref{Invoking guix pack}, for more info on this handy tool."
 msgstr "@xref{Invoking guix pack}, pour plus d'info sur cet outil pratique."
 
 #. type: Plain text
-#: doc/guix.texi:721
+#: doc/guix.texi:809
 msgid "This section lists requirements when building Guix from source.  The build procedure for Guix is the same as for other GNU software, and is not covered here.  Please see the files @file{README} and @file{INSTALL} in the Guix source tree for additional details."
 msgstr "Cette section dresse la liste des prérequis pour la construction de Guix depuis les sources.  La procédure de construction pour Guix est la même que pour les autres logiciels GNU, et n'est pas expliquée ici.  Regardez les fichiers @file{README} et @file{INSTALL} dans l'arborescence des sources de Guix pour plus de détails."
 
 #. type: cindex
-#: doc/guix.texi:722
+#: doc/guix.texi:810
 #, no-wrap
 msgid "official website"
 msgstr "site officiel"
 
 #. type: Plain text
-#: doc/guix.texi:725
+#: doc/guix.texi:813
 msgid "GNU Guix is available for download from its website at @url{https://www.gnu.org/software/guix/}."
 msgstr "GNU Guix est disponible au téléchargement depuis son site web sur @url{http://www.gnu.org/software/guix/}."
 
 #. type: Plain text
-#: doc/guix.texi:727
+#: doc/guix.texi:815
 msgid "GNU Guix depends on the following packages:"
 msgstr "GNU Guix dépend des paquets suivants :"
 
 #. type: item
-#: doc/guix.texi:729
+#: doc/guix.texi:817
 #, no-wrap
-msgid "@url{https://gnu.org/software/guile/, GNU Guile}, version 2.2.x;"
-msgstr "@url{https://gnu.org/software/guile/, GNU Guile}, version 2.2.x,"
+msgid "@url{https://gnu.org/software/guile/, GNU Guile}, version 3.0.x or"
+msgstr "@url{https://gnu.org/software/guile/, GNU Guile}, version 3.0.x ou"
+
+#. type: itemize
+#: doc/guix.texi:819
+msgid "2.2.x;"
+msgstr "2.2.x ;"
 
 #. type: item
-#: doc/guix.texi:730
+#: doc/guix.texi:819
 #, no-wrap
 msgid "@url{https://notabug.org/cwebber/guile-gcrypt, Guile-Gcrypt}, version"
 msgstr "@url{https://notabug.org/cwebber/guile-gcrypt, Guile-Gcrypt}, version"
 
 #. type: itemize
-#: doc/guix.texi:732
+#: doc/guix.texi:821
 msgid "0.1.0 or later;"
-msgstr "0.1.0 ou supérieure,"
+msgstr "0.1.0 ou supérieure ;"
 
 #. type: itemize
-#: doc/guix.texi:736
+#: doc/guix.texi:825
 msgid "@uref{https://gnutls.org/, GnuTLS}, specifically its Guile bindings (@pxref{Guile Preparations, how to install the GnuTLS bindings for Guile,, gnutls-guile, GnuTLS-Guile});"
-msgstr "@uref{https://gnutls.org/, GnuTLS}, en particulier ses liaisons Guile (@pxref{Guile Preparations, how to install the GnuTLS bindings for Guile,, gnutls-guile, GnuTLS-Guile}),"
+msgstr "@uref{https://gnutls.org/, GnuTLS}, en particulier ses liaisons Guile (@pxref{Guile Preparations, how to install the GnuTLS bindings for Guile,, gnutls-guile, GnuTLS-Guile}) ;"
 
 #. type: itemize
-#: doc/guix.texi:739
+#: doc/guix.texi:828
 msgid "@uref{https://notabug.org/guile-sqlite3/guile-sqlite3, Guile-SQLite3}, version 0.1.0 or later;"
-msgstr "@uref{https://notabug.org/guile-sqlite3/guile-sqlite3, Guile-SQLite3}, version 0.1.0 ou supérieure,"
+msgstr "@uref{https://notabug.org/guile-sqlite3/guile-sqlite3, Guile-SQLite3}, version 0.1.0 ou supérieure ;"
 
-#. type: itemize
-#: doc/guix.texi:743
-msgid "@uref{https://gitlab.com/guile-git/guile-git, Guile-Git}, from August 2017 or later;"
-msgstr "@uref{https://gitlab.com/guile-git/guile-git, Guile-Git}, d'août 2017 ou ultérieur,"
+#. type: item
+#: doc/guix.texi:828
+#, no-wrap
+msgid "@uref{https://notabug.org/guile-zlib/guile-zlib, Guile-zlib};"
+msgstr "@uref{https://notabug.org/guile-zlib/guile-zlib, Guile-zlib};"
 
 #. type: item
-#: doc/guix.texi:743
+#: doc/guix.texi:829
 #, no-wrap
-msgid "@uref{https://savannah.nongnu.org/projects/guile-json/, Guile-JSON};"
-msgstr "@uref{https://savannah.nongnu.org/projects/guile-json/, Guile-JSON},"
+msgid "@uref{https://notabug.org/guile-lzlib/guile-lzlib, Guile-lzlib};"
+msgstr "@uref{https://notabug.org/guile-lzlib/guile-lzlib, Guile-lzlib};"
+
+#. type: itemize
+#: doc/guix.texi:834
+msgid "@uref{https://gitlab.com/guile-git/guile-git, Guile-Git}, version 0.3.0 or later;"
+msgstr "@uref{https://gitlab.com/guile-git/guile-git, Guile-Git}, version 0.3.0 ou supérieure ;"
 
 #. type: item
-#: doc/guix.texi:744
+#: doc/guix.texi:834
 #, no-wrap
-msgid "@url{https://zlib.net, zlib};"
-msgstr "@url{https://zlib.net, zlib},"
+msgid "@uref{https://savannah.nongnu.org/projects/guile-json/, Guile-JSON}"
+msgstr "@uref{https://savannah.nongnu.org/projects/guile-json/, Guile-JSON}"
+
+#. type: itemize
+#: doc/guix.texi:836
+msgid "4.3.0 or later;"
+msgstr "4.3.0 ou plus récent ;"
 
 #. type: item
-#: doc/guix.texi:745
+#: doc/guix.texi:836
 #, no-wrap
 msgid "@url{https://www.gnu.org/software/make/, GNU Make}."
 msgstr "@url{https://www.gnu.org/software/make/, GNU Make}."
 
 #. type: Plain text
-#: doc/guix.texi:749
+#: doc/guix.texi:840
 msgid "The following dependencies are optional:"
 msgstr "Les dépendances suivantes sont facultatives :"
 
 #. type: itemize
-#: doc/guix.texi:757
-msgid "Support for build offloading (@pxref{Daemon Offload Setup}) and @command{guix copy} (@pxref{Invoking guix copy}) depends on @uref{https://github.com/artyom-poptsov/guile-ssh, Guile-SSH}, version 0.10.2 or later."
-msgstr "Le support pour la décharge de construction (@pxref{Daemon Offload Setup}) et @command{guix copy}  (@pxref{Invoking guix copy}) dépend de @uref{https://github.com/artyom-poptsov/guile-ssh, Guile-SSH}, version 0.10.2 ou ultérieure."
+#: doc/guix.texi:848
+msgid "Support for build offloading (@pxref{Daemon Offload Setup}) and @command{guix copy} (@pxref{Invoking guix copy}) depends on @uref{https://github.com/artyom-poptsov/guile-ssh, Guile-SSH}, version 0.13.0 or later."
+msgstr "Traitement du déchargement des builds (@pxref{Daemon Offload Setup}) et @command{guix copy} (@pxref{Invoquer guix copy}) dépend de @uref{https://github.com/artyom-poptsov/guile-ssh, Guile-SSH}, version 0.13.0 ou ultérieure."
 
 #. type: itemize
-#: doc/guix.texi:761
+#: doc/guix.texi:853
+msgid "When @url{https://www.nongnu.org/lzip/lzlib.html, lzlib} is available, lzlib substitutes can be used and @command{guix publish} can compress substitutes with lzlib."
+msgstr "Lorsque @url{https://www.nongnu.org/lzip/lzlib.html, lzlib} est disponible, vous pourrez utiliser les substituts lzlib et @command{guix publish} pourra compresser les substituts avec lzlib."
+
+#. type: itemize
+#: doc/guix.texi:857
 msgid "When @url{http://www.bzip.org, libbz2} is available, @command{guix-daemon} can use it to compress build logs."
 msgstr "Lorsque @url{http://www.bzip.org, libbz2} est disponible, @command{guix-daemon} peut l'utiliser pour compresser les journaux de construction."
 
 #. type: Plain text
-#: doc/guix.texi:765
-msgid "Unless @code{--disable-daemon} was passed to @command{configure}, the following packages are also needed:"
-msgstr "À moins que @code{--disable-daemon} ne soit passé à @command{configure}, les paquets suivants sont aussi requis :"
+#: doc/guix.texi:861
+msgid "Unless @option{--disable-daemon} was passed to @command{configure}, the following packages are also needed:"
+msgstr "Sauf si @option{--disable-daemon} a été passé à @command{configure}, les paquets suivants sont également nécessaires :"
 
 #. type: item
-#: doc/guix.texi:767
+#: doc/guix.texi:863
 #, no-wrap
 msgid "@url{https://gnupg.org/, GNU libgcrypt};"
-msgstr "@url{https://gnupg.org/, GNU libgcrypt},"
+msgstr "@url{https://gnupg.org/, GNU libgcrypt} ;"
 
 #. type: item
-#: doc/guix.texi:768
+#: doc/guix.texi:864
 #, no-wrap
 msgid "@url{https://sqlite.org, SQLite 3};"
-msgstr "@url{https://sqlite.org, SQLite 3},"
+msgstr "@url{https://sqlite.org, SQLite 3} ;"
 
 #. type: item
-#: doc/guix.texi:769
+#: doc/guix.texi:865
 #, no-wrap
 msgid "@url{https://gcc.gnu.org, GCC's g++}, with support for the"
 msgstr "@url{https://gcc.gnu.org, GCC's g++}, avec le support pour le"
 
 #. type: itemize
-#: doc/guix.texi:771
+#: doc/guix.texi:867
 msgid "C++11 standard."
-msgstr "standard C++11."
+msgstr "Standard C++11."
 
 #. type: cindex
-#: doc/guix.texi:773
+#: doc/guix.texi:869
 #, no-wrap
 msgid "state directory"
 msgstr "répertoire d'état"
 
 #. type: Plain text
-#: doc/guix.texi:781
-msgid "When configuring Guix on a system that already has a Guix installation, be sure to specify the same state directory as the existing installation using the @code{--localstatedir} option of the @command{configure} script (@pxref{Directory Variables, @code{localstatedir},, standards, GNU Coding Standards}).  The @command{configure} script protects against unintended misconfiguration of @var{localstatedir} so you do not inadvertently corrupt your store (@pxref{The Store})."
-msgstr "Lorsque vous configurez Guix sur un système qui a déjà une installation de Guix, assurez-vous de spécifier le même répertoire d'état que l'installation existante avec l'option @code{--localstatedir} du script @command{configure} (@pxref{Directory Variables, @code{localstatedir},, standards, GNU Coding Standards}).  Le script @command{configure} vous protège des mauvaises configurations involontaires de @var{localstatedir} pour éviter que vous ne corrompiez votre dépôt (@pxref{The Store})."
-
-#. type: cindex
-#: doc/guix.texi:782
-#, no-wrap
-msgid "Nix, compatibility"
-msgstr "Nix, compatibilité"
-
-#. type: Plain text
-#: doc/guix.texi:787
-msgid "When a working installation of @url{https://nixos.org/nix/, the Nix package manager} is available, you can instead configure Guix with @code{--disable-daemon}.  In that case, Nix replaces the three dependencies above."
-msgstr "Lorsque vous avez une installation fonctionnelle du @url{https://nixos.org/nix/, gestionnaire de paquets Nix}, vous pouvez configurer Guix avec @code{--disable-daemon}.  Dan ce cas, Nix remplace les trois dépendances au dessus."
-
-#. type: Plain text
-#: doc/guix.texi:797
-msgid "Guix is compatible with Nix, so it is possible to share the same store between both.  To do so, you must pass @command{configure} not only the same @code{--with-store-dir} value, but also the same @code{--localstatedir} value.  The latter is essential because it specifies where the database that stores metadata about the store is located, among other things.  The default values for Nix are @code{--with-store-dir=/nix/store} and @code{--localstatedir=/nix/var}.  Note that @code{--disable-daemon} is not required if your goal is to share the store with Nix."
-msgstr "Guix est compatible avec Nix, donc il est possible de partager le même dépôt entre les deux.  Pour cela, vous devez passer à @command{configure} non seulement la même valeur de @code{--with-store-dir} mais aussi la même valeur de @code{--localstatedir}.  Cette dernière est nécessaires car elle spécifie l'emplacement de la base de données qui stocke les métadonnées sur le dépôt, entre autres choses.  Les valeurs par défaut pour Nix sont @code{--with-store-dir=/nix/store} et @code{--localstatedir=/nix/var}.  Remarquez que @code{--disable-daemon} n'est pas requis si votre but est de partager le dépôt avec Nix."
+#: doc/guix.texi:878
+msgid "When configuring Guix on a system that already has a Guix installation, be sure to specify the same state directory as the existing installation using the @option{--localstatedir} option of the @command{configure} script (@pxref{Directory Variables, @code{localstatedir},, standards, GNU Coding Standards}).  Usually, this @var{localstatedir} option is set to the value @file{/var}.  The @command{configure} script protects against unintended misconfiguration of @var{localstatedir} so you do not inadvertently corrupt your store (@pxref{The Store})."
+msgstr "Lorsque vous configurez Guix sur un système qui a déjà une installation de Guix, assurez-vous de spécifier le même répertoire d'état que l'installation existante avec l'option @code{--localstatedir} du script @command{configure} (@pxref{Directory Variables, @code{localstatedir},, standards, GNU Coding Standards}).  Habituellement cette option @var{localstatedir} est initialisée à @file{/var}.  Le script @command{configure} vous protège des configurations involontaires de @var{localstatedir} pour éviter que vous ne corrompiez votre dépôt (@pxref{The Store})."
 
 #. type: cindex
-#: doc/guix.texi:801
+#: doc/guix.texi:882
 #, no-wrap
 msgid "test suite"
 msgstr "suite de tests"
 
 #. type: Plain text
-#: doc/guix.texi:807
+#: doc/guix.texi:888
 msgid "After a successful @command{configure} and @code{make} run, it is a good idea to run the test suite.  It can help catch issues with the setup or environment, or bugs in Guix itself---and really, reporting test failures is a good way to help improve the software.  To run the test suite, type:"
 msgstr "Après avoir lancé @command{configure} et @code{make} correctement, c'est une bonne idée de lancer la suite de tests.  Elle peut aider à trouver des erreurs avec la configuration ou l'environnement, ou des bogues dans Guix lui-même — et vraiment, rapporter des échecs de tests est une bonne manière d'aider à améliorer le logiciel.  Pour lancer la suite de tests, tapez :"
 
 #. type: example
-#: doc/guix.texi:810
+#: doc/guix.texi:891
 #, no-wrap
 msgid "make check\n"
 msgstr "make check\n"
 
 #. type: Plain text
-#: doc/guix.texi:817
+#: doc/guix.texi:898
 msgid "Test cases can run in parallel: you can use the @code{-j} option of GNU@tie{}make to speed things up.  The first run may take a few minutes on a recent machine; subsequent runs will be faster because the store that is created for test purposes will already have various things in cache."
 msgstr "Les cas de tests peuvent être lancés en parallèle : vous pouvez utiliser l'option @code{-j} de GNU@tie{}make pour accélérer les choses.  Le premier lancement peut prendre plusieurs minutes sur une machine récente ; les lancements suivants seront plus rapides car le dépôt créé pour les tests aura déjà plusieurs choses en cache."
 
 #. type: Plain text
-#: doc/guix.texi:820
+#: doc/guix.texi:901
 msgid "It is also possible to run a subset of the tests by defining the @code{TESTS} makefile variable as in this example:"
 msgstr "Il est aussi possible de lancer un sous-ensemble des tests en définissant la variable makefile @code{TESTS} comme dans cet exemple :"
 
 #. type: example
-#: doc/guix.texi:823
+#: doc/guix.texi:904
 #, no-wrap
 msgid "make check TESTS=\"tests/store.scm tests/cpio.scm\"\n"
 msgstr "make check TESTS=\"tests/store.scm tests/cpio.scm\"\n"
 
 #. type: Plain text
-#: doc/guix.texi:828
+#: doc/guix.texi:909
 msgid "By default, tests results are displayed at a file level.  In order to see the details of every individual test cases, it is possible to define the @code{SCM_LOG_DRIVER_FLAGS} makefile variable as in this example:"
 msgstr "Par défaut, les résultats des tests sont affichés au niveau du fichier.  Pour voir les détails de chaque cas de test individuel, il est possible de définir la variable makefile @code{SCM_LOG_DRIVER_FLAGS} comme dans cet exemple :"
 
 #. type: example
-#: doc/guix.texi:831
+#: doc/guix.texi:912
 #, no-wrap
 msgid "make check TESTS=\"tests/base64.scm\" SCM_LOG_DRIVER_FLAGS=\"--brief=no\"\n"
 msgstr "make check TESTS=\"tests/base64.scm\" SCM_LOG_DRIVER_FLAGS=\"--brief=no\"\n"
 
 #. type: Plain text
-#: doc/guix.texi:837
+#: doc/guix.texi:918
 msgid "Upon failure, please email @email{bug-guix@@gnu.org} and attach the @file{test-suite.log} file.  Please specify the Guix version being used as well as version numbers of the dependencies (@pxref{Requirements}) in your message."
 msgstr "Après un échec, envoyez un courriel à @email{bug-guix@@gnu.org} et attachez le fichier @file{test-suite.log}.  Précisez la version de Guix utilisée ainsi que les numéros de version de ses dépendances (@pxref{Requirements}) dans votre message."
 
 #. type: Plain text
-#: doc/guix.texi:841
+#: doc/guix.texi:922
 msgid "Guix also comes with a whole-system test suite that tests complete Guix System instances.  It can only run on systems where Guix is already installed, using:"
 msgstr "Guix possède aussi une suite de tests de systèmes complets qui test des instances complètes du système Guix.  Elle ne peut être lancée qui sur un système où Guix est déjà installé, avec :"
 
 #. type: example
-#: doc/guix.texi:844
+#: doc/guix.texi:925
 #, no-wrap
 msgid "make check-system\n"
 msgstr "make check-system\n"
 
 #. type: Plain text
-#: doc/guix.texi:848
+#: doc/guix.texi:929
 msgid "or, again, by defining @code{TESTS} to select a subset of tests to run:"
 msgstr "ou, de nouveau, en définissant @code{TESTS} pour choisir un sous-ensemble des tests à lancer :"
 
 #. type: example
-#: doc/guix.texi:851
+#: doc/guix.texi:932
 #, no-wrap
 msgid "make check-system TESTS=\"basic mcron\"\n"
 msgstr "make check-system TESTS=\"basic mcron\"\n"
 
 #. type: Plain text
-#: doc/guix.texi:859
+#: doc/guix.texi:940
 msgid "These system tests are defined in the @code{(gnu tests @dots{})} modules.  They work by running the operating systems under test with lightweight instrumentation in a virtual machine (VM).  They can be computationally intensive or rather cheap, depending on whether substitutes are available for their dependencies (@pxref{Substitutes}).  Some of them require a lot of storage space to hold VM images."
 msgstr "Ces tests systèmes sont définis dans les modules @code{(gnu tests @dots{})}. Ils fonctionnent en lançant les systèmes d'exploitation sous test avec une instrumentation légère dans une machine virtuelle (VM).  Ils peuvent être intenses en terme de calculs ou plutôt rapides en fonction de la disponibilité des substituts de leurs dépendances (@pxref{Substituts}).  Certains requièrent beaucoup d'espace disque pour contenir les images des VM@."
 
 #. type: Plain text
-#: doc/guix.texi:862
+#: doc/guix.texi:943
 msgid "Again in case of test failures, please send @email{bug-guix@@gnu.org} all the details."
 msgstr "De nouveau, en cas d'échec, envoyez tous les détails à @email{bug-guix@@gnu.org}."
 
 #. type: cindex
-#: doc/guix.texi:866
+#: doc/guix.texi:947
 #, no-wrap
 msgid "daemon"
 msgstr "démon"
 
 #. type: Plain text
-#: doc/guix.texi:874
+#: doc/guix.texi:955
 msgid "Operations such as building a package or running the garbage collector are all performed by a specialized process, the @dfn{build daemon}, on behalf of clients.  Only the daemon may access the store and its associated database.  Thus, any operation that manipulates the store goes through the daemon.  For instance, command-line tools such as @command{guix package} and @command{guix build} communicate with the daemon (@i{via} remote procedure calls) to instruct it what to do."
 msgstr "Les opérations comme la construction d'un paquet ou le lancement du ramasse-miettes sont toutes effectuées par un processus spécialisé, le @dfn{démon de construction}, pour le compte des clients.  Seul le démon peut accéder au dépôt et à sa base de données associée.  Ainsi, toute opération manipulant le dépôt passe par le démon.  Par exemple, les outils en ligne de commande comme @command{guix package} et @command{guix build} communiquent avec le démon (@i{via} des appels de procédures distantes) pour lui dire quoi faire."
 
 #. type: Plain text
-#: doc/guix.texi:878
+#: doc/guix.texi:959
 msgid "The following sections explain how to prepare the build daemon's environment.  See also @ref{Substitutes}, for information on how to allow the daemon to download pre-built binaries."
 msgstr "Les sections suivantes expliquent comment préparer l'environnement du démon de construction.  Voir aussi @ref{Substituts} pour apprendre comment permettre le téléchargement de binaires pré-construits."
 
 #. type: cindex
-#: doc/guix.texi:888 doc/guix.texi:1311
+#: doc/guix.texi:969 doc/guix.texi:1426
 #, no-wrap
 msgid "build environment"
 msgstr "environnement de construction"
 
 #. type: Plain text
-#: doc/guix.texi:896
+#: doc/guix.texi:977
 msgid "In a standard multi-user setup, Guix and its daemon---the @command{guix-daemon} program---are installed by the system administrator; @file{/gnu/store} is owned by @code{root} and @command{guix-daemon} runs as @code{root}.  Unprivileged users may use Guix tools to build packages or otherwise access the store, and the daemon will do it on their behalf, ensuring that the store is kept in a consistent state, and allowing built packages to be shared among users."
 msgstr "Dans une installation standard multi-utilisateur·rice·s, Guix et son démon — le programme @command{guix-daemon} — sont installés par la personne qui administre le système ; @file{/gnu/store} appartient à @code{root} et @command{guix-daemon} est lancé en @code{root}.  Les utilisateur·rice·s non-privilégié·e·s peuvent utiliser les outils Guix pour construire des paquets ou accéder au dépôt et le démon le fera pour leur compte en s'assurant que le dépôt garde un état cohérent et permet le partage des paquets déjà construits entre les utilisateur·rice·s."
 
 #. type: cindex
-#: doc/guix.texi:897
+#: doc/guix.texi:978
 #, no-wrap
 msgid "build users"
 msgstr "comptes de construction"
 
 #. type: Plain text
-#: doc/guix.texi:908
+#: doc/guix.texi:989
 msgid "When @command{guix-daemon} runs as @code{root}, you may not want package build processes themselves to run as @code{root} too, for obvious security reasons.  To avoid that, a special pool of @dfn{build users} should be created for use by build processes started by the daemon.  These build users need not have a shell and a home directory: they will just be used when the daemon drops @code{root} privileges in build processes.  Having several such users allows the daemon to launch distinct build processes under separate UIDs, which guarantees that they do not interfere with each other---an essential feature since builds are regarded as pure functions (@pxref{Introduction})."
 msgstr "Alors que @command{guix-daemon} tourne en @code{root}, vous n'avez pas forcément envie que les processus de construction de paquets tournent aussi en @code{root}, pour des raisons de sécurité évidentes.  Pour éviter cela, vous devriez créer une réserve spéciale de @dfn{comptes de construction} que les processus de construction démarrés par le démon utiliseront.  Ces comptes de construction n'ont pas besoin d'un shell ou d'un répertoire personnel ; ils seront seulement utilisés quand le démon délaissera ses privilèges @code{root} dans les processus de construction.  En ayant plusieurs de ces comptes, vous permettez au démon de lancer des processus de construction distincts sous des UID différent, ce qui garanti qu'aucune interférence n'ait lieu entre les uns et les autres — une fonctionnalité essentielle puisque les constructions sont supposées être des fonctions pures (@pxref{Introduction})."
 
 #. type: Plain text
-#: doc/guix.texi:911
+#: doc/guix.texi:992
 msgid "On a GNU/Linux system, a build user pool may be created like this (using Bash syntax and the @code{shadow} commands):"
 msgstr "Sur un système GNU/Linux, on peut créer une réserve de comptes de construction comme ceci (avec la syntaxe Bash et les commandes @code{shadow}) :"
 
 #. type: example
-#: doc/guix.texi:923
+#: doc/guix.texi:1004
 #, no-wrap
 msgid ""
 "# groupadd --system guixbuild\n"
@@ -4007,118 +5009,144 @@ msgstr ""
 "  done\n"
 
 #. type: Plain text
-#: doc/guix.texi:933
+#: doc/guix.texi:1014
 msgid "The number of build users determines how many build jobs may run in parallel, as specified by the @option{--max-jobs} option (@pxref{Invoking guix-daemon, @option{--max-jobs}}).  To use @command{guix system vm} and related commands, you may need to add the build users to the @code{kvm} group so they can access @file{/dev/kvm}, using @code{-G guixbuild,kvm} instead of @code{-G guixbuild} (@pxref{Invoking guix system})."
 msgstr "Le nombre de comptes de construction détermine le nombre de tâches de constructions qui peuvent tourner en parallèle, tel que spécifié par l'option  @option{--max-jobs} (@pxref{Invoking guix-daemon, @option{--max-jobs}}).  Pour utiliser @command{guix system vm} et les commandes liées, vous devrez ajouter les comptes de construction au groupe @code{kvm} pour qu'ils puissent accéder à @file{/dev/kvm} avec @code{-G guixbuild,kvm} plutôt que @code{-G guixbuild} (@pxref{Invoking guix system})."
 
 #. type: Plain text
-#: doc/guix.texi:942
+#: doc/guix.texi:1023
 msgid "The @code{guix-daemon} program may then be run as @code{root} with the following command@footnote{If your machine uses the systemd init system, dropping the @file{@var{prefix}/lib/systemd/system/guix-daemon.service} file in @file{/etc/systemd/system} will ensure that @command{guix-daemon} is automatically started.  Similarly, if your machine uses the Upstart init system, drop the @file{@var{prefix}/lib/upstart/system/guix-daemon.conf} file in @file{/etc/init}.}:"
 msgstr "Le programme @code{guix-daemon} peut ensuite être lancé en @code{root} avec la commande suivante@footnote{Si votre machine utilise le système d'initialisation systemd, copiez le fichier @file{@var{prefix}/lib/systemd/system/guix-daemon.service} dans @file{/etc/systemd/system} pour vous assurer que @command{guix-daemon} est démarré automatiquement.  De même, si votre machine utilise le système d'initialisation Upstart, copiez le fichier @file{@var{prefix}/lib/upstart/system/guix-daemon.conf} dans @file{/etc/init}.} :"
 
 #. type: example
-#: doc/guix.texi:945 doc/guix.texi:1304
+#: doc/guix.texi:1026 doc/guix.texi:1419
 #, no-wrap
 msgid "# guix-daemon --build-users-group=guixbuild\n"
 msgstr "# guix-daemon --build-users-group=guixbuild\n"
 
 #. type: cindex
-#: doc/guix.texi:947 doc/guix.texi:1309
+#: doc/guix.texi:1028 doc/guix.texi:1424
 #, no-wrap
 msgid "chroot"
 msgstr "chroot"
 
 #. type: Plain text
-#: doc/guix.texi:952
+#: doc/guix.texi:1033
 msgid "This way, the daemon starts build processes in a chroot, under one of the @code{guixbuilder} users.  On GNU/Linux, by default, the chroot environment contains nothing but:"
 msgstr "De cette façon, le démon démarre les processus de construction dans un chroot, sous un des comptes @code{guixbuilder}.  Sur GNU/Linux par défaut, l'environnement chroot ne contient rien d'autre que :"
 
 #. type: itemize
-#: doc/guix.texi:960
+#: doc/guix.texi:1041
 msgid "a minimal @code{/dev} directory, created mostly independently from the host @code{/dev}@footnote{``Mostly'', because while the set of files that appear in the chroot's @code{/dev} is fixed, most of these files can only be created if the host has them.};"
 msgstr "un répertoire @code{/dev} minimal, créé presque indépendamment du @code{/dev} de l'hôte@footnote{« presque », parce que même si l'ensemble des fichiers qui apparaissent dans le @code{/dev} du chroot sont déterminés à l'avance, la plupart de ces fichiers ne peut pas être créée si l'hôte ne les a pas.} ;"
 
 #. type: itemize
-#: doc/guix.texi:964
+#: doc/guix.texi:1045
 msgid "the @code{/proc} directory; it only shows the processes of the container since a separate PID name space is used;"
 msgstr "le répertoire @code{/proc} ; il ne montre que les processus du conteneur car on utilise une espace de nom séparé pour les PID ;"
 
 #. type: itemize
-#: doc/guix.texi:968
+#: doc/guix.texi:1049
 msgid "@file{/etc/passwd} with an entry for the current user and an entry for user @file{nobody};"
 msgstr "@file{/etc/passwd} avec une entrée pour le compte actuel et une entrée pour le compte @file{nobody} ;"
 
 #. type: itemize
-#: doc/guix.texi:971
+#: doc/guix.texi:1052
 msgid "@file{/etc/group} with an entry for the user's group;"
 msgstr "@file{/etc/group} avec une entrée pour le groupe de ce compte ;"
 
 #. type: itemize
-#: doc/guix.texi:975
+#: doc/guix.texi:1056
 msgid "@file{/etc/hosts} with an entry that maps @code{localhost} to @code{127.0.0.1};"
 msgstr "@file{/etc/hosts} avec une entrée qui fait correspondre @code{localhost} à @code{127.0.0.1} ;"
 
 #. type: itemize
-#: doc/guix.texi:978
+#: doc/guix.texi:1059
 msgid "a writable @file{/tmp} directory."
 msgstr "un répertoire @file{/tmp} inscriptible."
 
 #. type: Plain text
-#: doc/guix.texi:987
-msgid "You can influence the directory where the daemon stores build trees @i{via} the @code{TMPDIR} environment variable.  However, the build tree within the chroot is always called @file{/tmp/guix-build-@var{name}.drv-0}, where @var{name} is the derivation name---e.g., @code{coreutils-8.24}.  This way, the value of @code{TMPDIR} does not leak inside build environments, which avoids discrepancies in cases where build processes capture the name of their build tree."
-msgstr "Vous pouvez influencer le répertoire où le démon stocke les arbres de construction @i{via} la variable d'environnement @code{TMPDIR}.  Cependant, l'arbre de construction dans le chroot sera toujours appelé @file{/tmp/guix-build-@var{nom}.drv-0}, où @var{nom} est le nom de la dérivation — p.@: ex.@: @code{coreutils-8.24}.  De cette façon, la valeur de @code{TMPDIR} ne fuite pas à l'intérieur des environnements de construction, ce qui évite des différences lorsque le processus de construction retient le nom de leur répertoire de construction."
+#: doc/guix.texi:1068
+msgid "You can influence the directory where the daemon stores build trees @i{via} the @env{TMPDIR} environment variable.  However, the build tree within the chroot is always called @file{/tmp/guix-build-@var{name}.drv-0}, where @var{name} is the derivation name---e.g., @code{coreutils-8.24}.  This way, the value of @env{TMPDIR} does not leak inside build environments, which avoids discrepancies in cases where build processes capture the name of their build tree."
+msgstr "Vous pouvez influencer le répertoire où le démon stocke les arbres de construction @i{via} la variable d'environnement @code{TMPDIR}.  Cependant, l'arbre de construction dans le chroot sera toujours appelé @file{/tmp/guix-build-@var{nom}.drv-0}, où @var{nom} est le nom de la dérivation — p.ex., @: @code{coreutils-8.24}.  De cette façon, la valeur de @code{TMPDIR} ne fuite pas à l'intérieur des environnements de construction, ce qui évite des différences lorsque le processus de construction retient le nom de leur répertoire de construction."
 
 #. type: vindex
-#: doc/guix.texi:988 doc/guix.texi:3261
+#: doc/guix.texi:1069 doc/guix.texi:3808
 #, no-wrap
 msgid "http_proxy"
 msgstr "http_proxy"
 
+#. type: vindex
+#: doc/guix.texi:1070 doc/guix.texi:3809
+#, no-wrap
+msgid "https_proxy"
+msgstr "https_proxy"
+
 #. type: Plain text
-#: doc/guix.texi:992
-msgid "The daemon also honors the @code{http_proxy} environment variable for HTTP downloads it performs, be it for fixed-output derivations (@pxref{Derivations}) or for substitutes (@pxref{Substitutes})."
-msgstr "Le démon tient aussi compte de la variable d'environnement @code{http_proxy} pour ses téléchargements HTTP, que ce soit pour les dérivations à sortie fixes (@pxref{Derivations}) ou pour les substituts (@pxref{Substituts})."
+#: doc/guix.texi:1075
+msgid "The daemon also honors the @env{http_proxy} and @env{https_proxy} environment variables for HTTP and HTTPS downloads it performs, be it for fixed-output derivations (@pxref{Derivations}) or for substitutes (@pxref{Substitutes})."
+msgstr "Le démon prend en compte aussi la variable d'environnement @code{https_proxy} pour ses téléchargements HTTP et HTTPS, que ce soit pour les dérivations à sortie fixes (@pxref{Derivations}) ou pour les substituts (@pxref{Substituts})."
 
 #. type: Plain text
-#: doc/guix.texi:1000
-msgid "If you are installing Guix as an unprivileged user, it is still possible to run @command{guix-daemon} provided you pass @code{--disable-chroot}.  However, build processes will not be isolated from one another, and not from the rest of the system.  Thus, build processes may interfere with each other, and may access programs, libraries, and other files available on the system---making it much harder to view them as @emph{pure} functions."
-msgstr "Si vous installez Guix en tant qu'utilisateur·rice non-privilégié·e, il est toujours possible de lancer @command{guix-daemon} si vous passez @code{--disable-chroot}.  Cependant, les processus de construction ne seront pas isolés les uns des autres ni du reste du système.  Ainsi les processus de construction peuvent interférer les uns avec les autres, et peuvent accéder à des programmes, des bibliothèques et d'autres fichiers présents sur le système — ce qui rend plus difficile de les voir comme des fonctions @emph{pures}."
+#: doc/guix.texi:1083
+msgid "If you are installing Guix as an unprivileged user, it is still possible to run @command{guix-daemon} provided you pass @option{--disable-chroot}.  However, build processes will not be isolated from one another, and not from the rest of the system.  Thus, build processes may interfere with each other, and may access programs, libraries, and other files available on the system---making it much harder to view them as @emph{pure} functions."
+msgstr "Si vous installez Guix en tant qu'utilisateur·rice non privilégié·ée, il est toujours possible d'exécuter @command{guix-daemon} à condition de passer @option{--disable-chroot}.  Cependant, les processus de compilation ne seront pas isolés les uns des autres, ni du reste du système.  Ainsi, les processus de compilation peuvent interférer les uns avec les autres, et peuvent accéder à des programmes, des bibliothèques et d'autres fichiers disponibles sur le système - ce qui rend beaucoup plus difficile de les considérer comme des fonctions @emph{pures}."
 
 #. type: subsection
-#: doc/guix.texi:1003
+#: doc/guix.texi:1086
 #, no-wrap
 msgid "Using the Offload Facility"
 msgstr "Utiliser le dispositif de déchargement"
 
 #. type: cindex
-#: doc/guix.texi:1005
+#: doc/guix.texi:1088 doc/guix.texi:1485
 #, no-wrap
 msgid "offloading"
 msgstr "déchargement"
 
 #. type: cindex
-#: doc/guix.texi:1006 doc/guix.texi:1367
+#: doc/guix.texi:1089
 #, no-wrap
 msgid "build hook"
 msgstr "crochet de construction"
 
 #. type: Plain text
-#: doc/guix.texi:1020
-msgid "When desired, the build daemon can @dfn{offload} derivation builds to other machines running Guix, using the @code{offload} @dfn{build hook}@footnote{This feature is available only when @uref{https://github.com/artyom-poptsov/guile-ssh, Guile-SSH} is present.}.  When that feature is enabled, a list of user-specified build machines is read from @file{/etc/guix/machines.scm}; every time a build is requested, for instance via @code{guix build}, the daemon attempts to offload it to one of the machines that satisfy the constraints of the derivation, in particular its system type---e.g., @file{x86_64-linux}.  Missing prerequisites for the build are copied over SSH to the target machine, which then proceeds with the build; upon success the output(s) of the build are copied back to the initial machine."
-msgstr "Si vous le souhaitez, le démon de construction peut @dfn{décharger} des constructions de dérivations sur d'autres machines Guix avec le @dfn{crochet de construction} @code{offload}@footnote{Cette fonctionnalité n'est disponible que si @uref{https://github.com/artyom-poptsov/guile-ssh, Guile-SSH} est présent.}.  Lorsque cette fonctionnalité est activée, Guix lit une liste de machines de constructions spécifiée par l'utilisateur·rice dans @file{/etc/guix/machines.scm} ; à chaque fois qu'une construction est demandée, par exemple par @code{guix build}, le démon essaie de la décharger sur une des machines qui satisfont les contraintes de la dérivation, en particulier le type de système, p.@: ex.@: @file{x86_64-linux}.  Les prérequis manquants pour la construction sont copiés par SSH sur la machine de construction qui procède ensuite à la construction ; si elle réussit, les sorties de la construction sont copiés vers la machine de départ."
+#: doc/guix.texi:1108
+msgid "When desired, the build daemon can @dfn{offload} derivation builds to other machines running Guix, using the @code{offload} @dfn{build hook}@footnote{This feature is available only when @uref{https://github.com/artyom-poptsov/guile-ssh, Guile-SSH} is present.}.  When that feature is enabled, a list of user-specified build machines is read from @file{/etc/guix/machines.scm}; every time a build is requested, for instance via @code{guix build}, the daemon attempts to offload it to one of the machines that satisfy the constraints of the derivation, in particular its system types---e.g., @code{x86_64-linux}.  A single machine can have multiple system types, either because its architecture natively supports it, via emulation (@pxref{transparent-emulation-qemu, Transparent Emulation with QEMU}), or both.  Missing prerequisites for the build are copied over SSH to the target machine, which then proceeds with the build; upon success the output(s) of the build are copied back to the initial machine.  The offload facility comes with a basic scheduler that attempts to select the best machine.  The best machine is chosen among the available machines based on criteria such as:"
+msgstr "Si vous le souhaitez, le démon de construction peut @dfn{décharger} des constructions de dérivation sur d'autres machines Guix avec le @dfn{crochet de construction} @code{offload}@footnote{Cette fonctionnalité n'est disponible que si @uref{https://github.com/artyom-poptsov/guile-ssh, Guile-SSH} est présent.}.  Lorsque cette fonctionnalité est activée, Guix lit une liste de machines de constructions spécifiée par l'utilisateur·rice dans @file{/etc/guix/machines.scm} ; à chaque fois qu'une construction est demandée, par exemple par @code{guix build}, le démon essaie de la décharger sur une des machines qui satisfont les contraintes de la dérivation, en particulier le type de système, p.@: ex.@: @file{x86_64-linux}. Une même machine peut avoir plusieurs types de systèmes, soit parce que son architecture le supporte nativement, soit par émulation (@pxref{transparent-emulation-qemu, Émulation transparente avec QEMU}), soit les deux.  Les prérequis manquants pour la construction sont copiés par SSH sur la machine de construction qui procède ensuite à la construction ; si elle réussit, les sorties de la construction sont copiés vers la machine de départ. Le dispsitif de déchargement est dotée d'un scheduler de base qui tente de sélectionner la meilleure machine.  La meilleure machine est choisie parmi les machines disponibles sur la base de critères tels que :"
+
+#. type: enumerate
+#: doc/guix.texi:1114
+msgid "The availability of a build slot.  A build machine can have as many build slots (connections) as the value of the @code{parallel-builds} field of its @code{build-machine} object."
+msgstr "La disponibilité d'un créneau de construction. Une machine de construction peut avoir autant de slots de construction (connexions) que la valeur du champ @code{parallel-builds} de son objet @code{build-machine}."
+
+#. type: enumerate
+#: doc/guix.texi:1118
+msgid "Its relative speed, as defined via the @code{speed} field of its @code{build-machine} object."
+msgstr "Sa vitesse relative, telle que définie dans le champ @code{speed} de son objet @code{build-machine}."
+
+#. type: enumerate
+#: doc/guix.texi:1123
+msgid "Its load.  The normalized machine load must be lower than a threshold value, configurable via the @code{overload-threshold} field of its @code{build-machine} object."
+msgstr "Sa charge.  La charge normalisée de la machine doit être inférieure à une valeur seuil, configurable via le champ @code{overload-threshold} de son objet @code{build-machine}."
+
+#. type: enumerate
+#: doc/guix.texi:1126
+msgid "Disk space availability.  More than a 100 MiB must be available."
+msgstr "Disponibilité de l'espace disque.  Plus de 100 Mio doivent être disponibles."
 
 #. type: Plain text
-#: doc/guix.texi:1022
+#: doc/guix.texi:1129
 msgid "The @file{/etc/guix/machines.scm} file typically looks like this:"
 msgstr "Le fichier @file{/etc/guix/machines.scm} ressemble typiquement à cela :"
 
-#. type: example
-#: doc/guix.texi:1030
+#. type: lisp
+#: doc/guix.texi:1137
 #, no-wrap
 msgid ""
 "(list (build-machine\n"
 "        (name \"eightysix.example.org\")\n"
-"        (system \"x86_64-linux\")\n"
+"        (systems (list \"x86_64-linux\" \"i686-linux\"))\n"
 "        (host-key \"ssh-ed25519 AAAAC3Nza@dots{}\")\n"
 "        (user \"bob\")\n"
 "        (speed 2.))     ;incredibly fast!\n"
@@ -4129,16 +5157,16 @@ msgstr ""
 "        (system \"x86_64-linux\")\n"
 "        (host-key \"ssh-ed25519 AAAAC3Nza@dots{}\")\n"
 "        (user \"bob\")\n"
-"        (speed 2.))     ;très rapide !\n"
+"        (speed 2.))     ;incroyablement rapide !\n"
 "\n"
 
-#. type: example
-#: doc/guix.texi:1039
+#. type: lisp
+#: doc/guix.texi:1146
 #, no-wrap
 msgid ""
 "      (build-machine\n"
-"        (name \"meeps.example.org\")\n"
-"        (system \"mips64el-linux\")\n"
+"        (name \"armeight.example.org\")\n"
+"        (systems (list \"aarch64-linux\"))\n"
 "        (host-key \"ssh-rsa AAAAB3Nza@dots{}\")\n"
 "        (user \"alice\")\n"
 "        (private-key\n"
@@ -4146,8 +5174,8 @@ msgid ""
 "                        \"/.ssh/identity-for-guix\"))))\n"
 msgstr ""
 "      (build-machine\n"
-"        (name \"meeps.example.org\")\n"
-"        (system \"mips64el-linux\")\n"
+"        (name \"armeight.example.org\")\n"
+"        (system \"list \"aarch64-linux\")\n"
 "        (host-key \"ssh-rsa AAAAB3Nza@dots{}\")\n"
 "        (user \"alice\")\n"
 "        (private-key\n"
@@ -4155,936 +5183,948 @@ msgstr ""
 "                        \"/.ssh/identity-for-guix\"))))\n"
 
 #. type: Plain text
-#: doc/guix.texi:1045
-msgid "In the example above we specify a list of two build machines, one for the @code{x86_64} architecture and one for the @code{mips64el} architecture."
-msgstr "Dans l'exemple ci-dessus nous spécifions une liste de deux machines de construction, une pour l'architecture @code{x86_64} et une pour l'architecture @code{mips64el}."
+#: doc/guix.texi:1152
+msgid "In the example above we specify a list of two build machines, one for the @code{x86_64} and @code{i686} architectures and one for the @code{aarch64} architecture."
+msgstr "Dans l'exemple ci-dessus nous spécifions une liste de deux machines de construction, une pour l'architecture @code{x86_64} et @code{i686}et une pour l'architecture @code{aarch64}."
 
 #. type: Plain text
-#: doc/guix.texi:1054
+#: doc/guix.texi:1161
 msgid "In fact, this file is---not surprisingly!---a Scheme file that is evaluated when the @code{offload} hook is started.  Its return value must be a list of @code{build-machine} objects.  While this example shows a fixed list of build machines, one could imagine, say, using DNS-SD to return a list of potential build machines discovered in the local network (@pxref{Introduction, Guile-Avahi,, guile-avahi, Using Avahi in Guile Scheme Programs}).  The @code{build-machine} data type is detailed below."
 msgstr "En fait, ce fichier est — et ça ne devrait pas vous surprendre ! — un fichier Scheme qui est évalué au démarrage du crochet @code{offload}.  Sa valeur de retour doit être une liste d'objets @code{build-machine}.  Même si cet exemple montre une liste fixée de machines de construction, on pourrait imaginer par exemple utiliser DNS-SD pour renvoyer une liste de machines de constructions potentielles découvertes sur le réseau local (@pxref{Introduction, Guile-Avahi,, guile-avahi, Using Avahi in Guile Scheme Programs}).  Le type de données @code{build-machine} est détaillé plus bas."
 
 #. type: deftp
-#: doc/guix.texi:1055
+#: doc/guix.texi:1162
 #, no-wrap
 msgid "{Data Type} build-machine"
 msgstr "{Type de données} build-machine"
 
 #. type: deftp
-#: doc/guix.texi:1058
+#: doc/guix.texi:1165
 msgid "This data type represents build machines to which the daemon may offload builds.  The important fields are:"
 msgstr "Ce type de données représente les machines de construction sur lesquelles le démon peut décharger des constructions.  Les champs importants sont :"
 
 #. type: item
-#: doc/guix.texi:1061 doc/guix.texi:5337 doc/guix.texi:11004
-#: doc/guix.texi:11086 doc/guix.texi:11313 doc/guix.texi:12897
-#: doc/guix.texi:17434 doc/guix.texi:18019 doc/guix.texi:18630
-#: doc/guix.texi:18938 doc/guix.texi:18979 doc/guix.texi:23523
-#: doc/guix.texi:23540 doc/guix.texi:23833 doc/guix.texi:25130
-#: doc/guix.texi:25336
+#: doc/guix.texi:1168 doc/guix.texi:6497 doc/guix.texi:13888
+#: doc/guix.texi:13982 doc/guix.texi:14223 doc/guix.texi:16129
+#: doc/guix.texi:21576 doc/guix.texi:22161 doc/guix.texi:22773
+#: doc/guix.texi:23125 doc/guix.texi:23166 doc/guix.texi:27232
+#: doc/guix.texi:27252 doc/guix.texi:29621 doc/guix.texi:29638
+#: doc/guix.texi:30127 doc/guix.texi:31831 doc/guix.texi:32107
 #, no-wrap
 msgid "name"
 msgstr "name"
 
 #. type: table
-#: doc/guix.texi:1063
+#: doc/guix.texi:1170
 msgid "The host name of the remote machine."
 msgstr "Le nom d'hôte de la machine distante."
 
 #. type: item
-#: doc/guix.texi:1064
+#: doc/guix.texi:1171
 #, no-wrap
-msgid "system"
-msgstr "system"
+msgid "systems"
+msgstr "systèmes"
 
 #. type: table
-#: doc/guix.texi:1066
-msgid "The system type of the remote machine---e.g., @code{\"x86_64-linux\"}."
-msgstr "Le type de système de la machine distante, p.@: ex.@: @code{\"x86_64-linux\"}."
+#: doc/guix.texi:1174
+msgid "The system types the remote machine supports---e.g., @code{(list \"x86_64-linux\" \"i686-linux\")}."
+msgstr "Le type de système de la machine distante, p. ex., @code{(list \"x86_64-linux\" \"i686-linux\")}."
 
 #. type: code{#1}
-#: doc/guix.texi:1067 doc/guix.texi:12907
+#: doc/guix.texi:1175 doc/guix.texi:16139
 #, no-wrap
 msgid "user"
 msgstr "user"
 
 #. type: table
-#: doc/guix.texi:1071
+#: doc/guix.texi:1179
 msgid "The user account to use when connecting to the remote machine over SSH.  Note that the SSH key pair must @emph{not} be passphrase-protected, to allow non-interactive logins."
 msgstr "Le compte à utiliser lors de la connexion à la machine distante par SSH@.  Remarquez que la paire de clef SSH ne doit @emph{pas} être protégée par mot de passe pour permettre des connexions non-interactives."
 
 #. type: item
-#: doc/guix.texi:1072
+#: doc/guix.texi:1180
 #, no-wrap
 msgid "host-key"
 msgstr "host-key"
 
 #. type: table
-#: doc/guix.texi:1076
+#: doc/guix.texi:1184
 msgid "This must be the machine's SSH @dfn{public host key} in OpenSSH format.  This is used to authenticate the machine when we connect to it.  It is a long string that looks like this:"
 msgstr "Cela doit être la @dfn{clef d'hôte SSH publique} de la machine au format OpenSSH@.  Elle est utilisée pour authentifier la machine lors de la connexion.  C'est une longue chaîne qui ressemble à cela :"
 
 #. type: example
-#: doc/guix.texi:1079
+#: doc/guix.texi:1187
 #, no-wrap
 msgid "ssh-ed25519 AAAAC3NzaC@dots{}mde+UhL hint@@example.org\n"
 msgstr "ssh-ed25519 AAAAC3NzaC@dots{}mde+UhL hint@@example.org\n"
 
 #. type: table
-#: doc/guix.texi:1084
+#: doc/guix.texi:1192
 msgid "If the machine is running the OpenSSH daemon, @command{sshd}, the host key can be found in a file such as @file{/etc/ssh/ssh_host_ed25519_key.pub}."
 msgstr "Si la machine utilise le démon OpenSSH, @command{sshd}, la clef d'hôte se trouve dans un fichier comme @file{/etc/ssh/ssh_host_ed25519_key.pub}."
 
 #. type: table
-#: doc/guix.texi:1089
+#: doc/guix.texi:1197
 msgid "If the machine is running the SSH daemon of GNU@tie{}lsh, @command{lshd}, the host key is in @file{/etc/lsh/host-key.pub} or a similar file.  It can be converted to the OpenSSH format using @command{lsh-export-key} (@pxref{Converting keys,,, lsh, LSH Manual}):"
 msgstr "Si la machine utilise le démon SSH de GNU@tie{}lsh, la clef d'hôte est dans @file{/etc/lsh/host-key.pub} ou un fichier similaire.  Elle peut être convertie au format OpenSSH avec @command{lsh-export-key}  (@pxref{Converting keys,,, lsh, LSH Manual}) :"
 
 #. type: example
-#: doc/guix.texi:1093
+#: doc/guix.texi:1201
 #, no-wrap
 msgid ""
-"$ lsh-export-key --openssh < /etc/lsh/host-key.pub \n"
+"$ lsh-export-key --openssh < /etc/lsh/host-key.pub\n"
 "ssh-rsa AAAAB3NzaC1yc2EAAAAEOp8FoQAAAQEAs1eB46LV@dots{}\n"
 msgstr ""
-"$ lsh-export-key --openssh < /etc/lsh/host-key.pub \n"
+"$ lsh-export-key --openssh < /etc/lsh/host-key.pub\n"
 "ssh-rsa AAAAB3NzaC1yc2EAAAAEOp8FoQAAAQEAs1eB46LV@dots{}\n"
 
 #. type: deftp
-#: doc/guix.texi:1098
+#: doc/guix.texi:1206
 msgid "A number of optional fields may be specified:"
 msgstr "Il y a un certain nombre de champs facultatifs que vous pouvez remplir :"
 
 #. type: item
-#: doc/guix.texi:1101
+#: doc/guix.texi:1209 doc/guix.texi:31331
 #, no-wrap
 msgid "@code{port} (default: @code{22})"
 msgstr "@code{port} (par défaut : @code{22})"
 
 #. type: table
-#: doc/guix.texi:1103
+#: doc/guix.texi:1211
 msgid "Port number of SSH server on the machine."
 msgstr "Numéro de port du serveur SSH sur la machine."
 
 #. type: item
-#: doc/guix.texi:1104
+#: doc/guix.texi:1212
 #, no-wrap
 msgid "@code{private-key} (default: @file{~root/.ssh/id_rsa})"
 msgstr "@code{private-key} (par défaut : @file{~root/.ssh/id_rsa})"
 
 #. type: table
-#: doc/guix.texi:1107
+#: doc/guix.texi:1215
 msgid "The SSH private key file to use when connecting to the machine, in OpenSSH format.  This key must not be protected with a passphrase."
 msgstr "Le fichier de clef privée SSH à utiliser lors de la connexion à la machine, au format OpenSSH@.  Cette clef ne doit pas être protégée par phrase de passe."
 
 #. type: table
-#: doc/guix.texi:1110
+#: doc/guix.texi:1218
 msgid "Note that the default value is the private key @emph{of the root account}.  Make sure it exists if you use the default."
 msgstr "Remarquez que la valeur par défaut est la clef privée @emph{du compte root}.  Assurez-vous qu'elle existe si vous utilisez la valeur par défaut."
 
 #. type: item
-#: doc/guix.texi:1111
+#: doc/guix.texi:1219
 #, no-wrap
 msgid "@code{compression} (default: @code{\"zlib@@openssh.com,zlib\"})"
 msgstr "@code{compression} (par défaut : @code{\"zlib@@openssh.com,zlib\"})"
 
-#. type: item
-#: doc/guix.texi:1112 doc/guix.texi:12200
+#. type: itemx
+#: doc/guix.texi:1220
 #, no-wrap
 msgid "@code{compression-level} (default: @code{3})"
 msgstr "@code{compression-level} (par défaut : @code{3})"
 
 #. type: table
-#: doc/guix.texi:1114
+#: doc/guix.texi:1222
 msgid "The SSH-level compression methods and compression level requested."
 msgstr "Les méthodes de compression au niveau SSH et le niveau de compression demandé."
 
 #. type: table
-#: doc/guix.texi:1117
+#: doc/guix.texi:1225
 msgid "Note that offloading relies on SSH compression to reduce bandwidth usage when transferring files to and from build machines."
 msgstr "Remarquez que le déchargement utilise la compression SSH pour réduire la bande passante utilisée lors du transfert vers et depuis les machines de construction."
 
 #. type: item
-#: doc/guix.texi:1118
+#: doc/guix.texi:1226
 #, no-wrap
 msgid "@code{daemon-socket} (default: @code{\"/var/guix/daemon-socket/socket\"})"
 msgstr "@code{daemon-socket} (par défaut : @code{\"/var/guix/daemon-socket/socket\"})"
 
 #. type: table
-#: doc/guix.texi:1121
+#: doc/guix.texi:1229
 msgid "File name of the Unix-domain socket @command{guix-daemon} is listening to on that machine."
 msgstr "Le nom de fichier du socket Unix-domain sur lequel @command{guix-daemon} écoute sur cette machine."
 
 #. type: item
-#: doc/guix.texi:1122
+#: doc/guix.texi:1230
+#, no-wrap
+msgid "@code{overload-threshold} (default: @code{0.6})"
+msgstr "@code{overload-threshold} (par défaut : @code{0.6})"
+
+#. type: table
+#: doc/guix.texi:1236
+msgid "The load threshold above which a potential offload machine is disregarded by the offload scheduler.  The value roughly translates to the total processor usage of the build machine, ranging from 0.0 (0%) to 1.0 (100%).  It can also be disabled by setting @code{overload-threshold} to @code{#f}."
+msgstr "Le seuil de charge au-dessus duquel une machine de déchargement potentielle est ignorée par le programme de déchargement.  Cette valeur se traduit approximativement par l'utilisation totale du processeur de la machine de construction, allant de 0,0 (0%) à 1,0 (100%).  Elle peut également être désactivée en réglant @code{overload-threshold} sur @code{#f}."
+
+#. type: item
+#: doc/guix.texi:1237
 #, no-wrap
 msgid "@code{parallel-builds} (default: @code{1})"
 msgstr "@code{parallel-builds} (par défaut : @code{1})"
 
 #. type: table
-#: doc/guix.texi:1124
+#: doc/guix.texi:1239
 msgid "The number of builds that may run in parallel on the machine."
 msgstr "Le nombre de constructions qui peuvent tourner simultanément sur la machine."
 
 #. type: item
-#: doc/guix.texi:1125
+#: doc/guix.texi:1240
 #, no-wrap
 msgid "@code{speed} (default: @code{1.0})"
 msgstr "@code{speed} (par défaut : @code{1.0})"
 
 #. type: table
-#: doc/guix.texi:1128
+#: doc/guix.texi:1243
 msgid "A ``relative speed factor''.  The offload scheduler will tend to prefer machines with a higher speed factor."
 msgstr "Un « facteur de vitesse relatif ».  L'ordonnanceur des constructions tendra à préférer les machines avec un plus grand facteur de vitesse."
 
 #. type: item
-#: doc/guix.texi:1129
+#: doc/guix.texi:1244
 #, no-wrap
 msgid "@code{features} (default: @code{'()})"
 msgstr "@code{features} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:1134
+#: doc/guix.texi:1249
 msgid "A list of strings denoting specific features supported by the machine.  An example is @code{\"kvm\"} for machines that have the KVM Linux modules and corresponding hardware support.  Derivations can request features by name, and they will be scheduled on matching build machines."
 msgstr "Une liste de chaînes qui contient les fonctionnalités spécifiques supportées par la machine.  Un exemple est @code{\"kvm\"} pour les machines qui ont le module Linux KVM et le support matériel correspondant.  Les dérivations peuvent demander des fonctionnalités par leur nom et seront orchestrées sur les machines de construction correspondantes."
 
 #. type: Plain text
-#: doc/guix.texi:1140
+#: doc/guix.texi:1255
 msgid "The @command{guix} command must be in the search path on the build machines.  You can check whether this is the case by running:"
 msgstr "La commande @code{guix} doit être dans le chemin de recherche des machines de construction.  Vous pouvez vérifier si c'est le cas en lançant :"
 
 #. type: example
-#: doc/guix.texi:1143
+#: doc/guix.texi:1258
 #, no-wrap
 msgid "ssh build-machine guix repl --version\n"
 msgstr "ssh build-machine guix repl --version\n"
 
 #. type: Plain text
-#: doc/guix.texi:1150
+#: doc/guix.texi:1265
 msgid "There is one last thing to do once @file{machines.scm} is in place.  As explained above, when offloading, files are transferred back and forth between the machine stores.  For this to work, you first need to generate a key pair on each machine to allow the daemon to export signed archives of files from the store (@pxref{Invoking guix archive}):"
 msgstr "Il reste une dernière chose à faire maintenant que @file{machines.scm} est en place.  Comme expliqué ci-dessus, lors du déchargement les fichiers sont transférés entre les dépôts des machines.  Pour que cela fonctionne, vous devez d'abord générer une paire de clef sur chaque machine pour permettre au démon d'exporter des archives signées des fichiers de son dépôt (@pxref{Invoking guix archive}) :"
 
 #. type: example
-#: doc/guix.texi:1153
+#: doc/guix.texi:1268 doc/guix.texi:31259
 #, no-wrap
 msgid "# guix archive --generate-key\n"
 msgstr "# guix archive --generate-key\n"
 
 #. type: Plain text
-#: doc/guix.texi:1158
+#: doc/guix.texi:1273
 msgid "Each build machine must authorize the key of the master machine so that it accepts store items it receives from the master:"
 msgstr "Chaque machine de construction doit autoriser la clef de la machine maîtresse pour qu'ils acceptent les éléments de dépôt de celle-ci :"
 
 #. type: example
-#: doc/guix.texi:1161
+#: doc/guix.texi:1276
 #, no-wrap
 msgid "# guix archive --authorize < master-public-key.txt\n"
 msgstr "# guix archive --authorize < master-public-key.txt\n"
 
 #. type: Plain text
-#: doc/guix.texi:1165
+#: doc/guix.texi:1280
 msgid "Likewise, the master machine must authorize the key of each build machine."
 msgstr "De même, la machine maîtresse doit autoriser les clefs de chaque machine de construction."
 
 #. type: Plain text
-#: doc/guix.texi:1171
+#: doc/guix.texi:1286
 msgid "All the fuss with keys is here to express pairwise mutual trust relations between the master and the build machines.  Concretely, when the master receives files from a build machine (and @i{vice versa}), its build daemon can make sure they are genuine, have not been tampered with, and that they are signed by an authorized key."
 msgstr "Toute cette histoire de clefs permet d'exprimer la confiance mutuelle deux-à-deux entre le maître et les machines de construction.  Concrètement, lorsque le maître reçoit des fichiers d'une machine de construction (et vice-versa), son démon de construction s'assure qu'ils sont authentiques, n'ont pas été modifiés par un tiers et qu'il sont signés par un clef autorisée."
 
 #. type: cindex
-#: doc/guix.texi:1172
+#: doc/guix.texi:1287
 #, no-wrap
 msgid "offload test"
 msgstr "test du déchargement"
 
 #. type: Plain text
-#: doc/guix.texi:1175
+#: doc/guix.texi:1290
 msgid "To test whether your setup is operational, run this command on the master node:"
 msgstr "Pour tester que votre paramétrage fonctionne, lancez cette commande sur le nœud maître :"
 
 #. type: example
-#: doc/guix.texi:1178
+#: doc/guix.texi:1293
 #, no-wrap
 msgid "# guix offload test\n"
 msgstr "# guix offload test\n"
 
 #. type: Plain text
-#: doc/guix.texi:1184
+#: doc/guix.texi:1299
 msgid "This will attempt to connect to each of the build machines specified in @file{/etc/guix/machines.scm}, make sure Guile and the Guix modules are available on each machine, attempt to export to the machine and import from it, and report any error in the process."
 msgstr "Cela essaiera de se connecter à toutes les machines de construction spécifiées dans @file{/etc/guix/machines.scm}, s'assurera que Guile et les modules Guix sont disponibles sur toutes les machines et tentera d'exporter vers la machine et d'importer depuis elle, et rapportera toute erreur survenu pendant le processus."
 
 #. type: Plain text
-#: doc/guix.texi:1187
+#: doc/guix.texi:1302
 msgid "If you want to test a different machine file, just specify it on the command line:"
 msgstr "Si vous souhaitez tester un fichier de machines différent, spécifiez-le sur la ligne de commande :"
 
 #. type: example
-#: doc/guix.texi:1190
+#: doc/guix.texi:1305
 #, no-wrap
 msgid "# guix offload test machines-qualif.scm\n"
 msgstr "# guix offload test machines-qualif.scm\n"
 
 #. type: Plain text
-#: doc/guix.texi:1194
+#: doc/guix.texi:1309
 msgid "Last, you can test the subset of the machines whose name matches a regular expression like this:"
 msgstr "Enfin, vous pouvez tester un sous-ensemble de machines dont le nom correspond à une expression rationnelle comme ceci :"
 
 #. type: example
-#: doc/guix.texi:1197
+#: doc/guix.texi:1312
 #, no-wrap
 msgid "# guix offload test machines.scm '\\.gnu\\.org$'\n"
 msgstr "# guix offload test machines.scm '\\.gnu\\.org$'\n"
 
 #. type: cindex
-#: doc/guix.texi:1199
+#: doc/guix.texi:1314
 #, no-wrap
 msgid "offload status"
 msgstr "statut du déchargement"
 
 #. type: Plain text
-#: doc/guix.texi:1202
+#: doc/guix.texi:1317
 msgid "To display the current load of all build hosts, run this command on the main node:"
 msgstr "Pour afficher la charge actuelle de tous les hôtes de construction, lancez cette commande sur le nœud principal :"
 
 #. type: example
-#: doc/guix.texi:1205
+#: doc/guix.texi:1320
 #, no-wrap
 msgid "# guix offload status\n"
 msgstr "# guix offload status\n"
 
 #. type: cindex
-#: doc/guix.texi:1211
+#: doc/guix.texi:1326
 #, no-wrap
 msgid "SELinux, daemon policy"
 msgstr "SELinux, politique du démon"
 
 #. type: cindex
-#: doc/guix.texi:1212
+#: doc/guix.texi:1327
 #, no-wrap
 msgid "mandatory access control, SELinux"
 msgstr "contrôle d'accès obligatoire, SELinux"
 
 #. type: cindex
-#: doc/guix.texi:1213
+#: doc/guix.texi:1328
 #, no-wrap
 msgid "security, guix-daemon"
 msgstr "sécurité, guix-daemon"
 
 #. type: Plain text
-#: doc/guix.texi:1219
+#: doc/guix.texi:1334
 msgid "Guix includes an SELinux policy file at @file{etc/guix-daemon.cil} that can be installed on a system where SELinux is enabled, in order to label Guix files and to specify the expected behavior of the daemon.  Since Guix System does not provide an SELinux base policy, the daemon policy cannot be used on Guix System."
 msgstr "Guix inclus un fichier de politique SELinux dans @file{etc/guix-daemon.cil} qui peut être installé sur un système où SELinux est activé pour que les fichiers Guix soient étiquetés et pour spécifier le comportement attendu du démon.  Comme Guix System ne fournit pas de politique SELinux de base, la politique du démon ne peut pas être utilisée sur le système Guix."
 
 #. type: subsubsection
-#: doc/guix.texi:1220
+#: doc/guix.texi:1335
 #, no-wrap
 msgid "Installing the SELinux policy"
 msgstr "Installer la politique SELinux"
 
 #. type: cindex
-#: doc/guix.texi:1221
+#: doc/guix.texi:1336
 #, no-wrap
 msgid "SELinux, policy installation"
 msgstr "SELinux, installation de la politique"
 
 #. type: Plain text
-#: doc/guix.texi:1223
+#: doc/guix.texi:1338
 msgid "To install the policy run this command as root:"
 msgstr "Pour installer la politique, lancez cette commande en root :"
 
 #. type: example
-#: doc/guix.texi:1226
+#: doc/guix.texi:1341
 #, no-wrap
 msgid "semodule -i etc/guix-daemon.cil\n"
 msgstr "semodule -i etc/guix-daemon.cil\n"
 
 #. type: Plain text
-#: doc/guix.texi:1230
+#: doc/guix.texi:1345
 msgid "Then relabel the file system with @code{restorecon} or by a different mechanism provided by your system."
 msgstr "Puis ré-étiquetez le système de fichier avec @code{restorecon} ou par un mécanisme différent fournit par votre système."
 
 #. type: Plain text
-#: doc/guix.texi:1235
+#: doc/guix.texi:1350
 msgid "Once the policy is installed, the file system has been relabeled, and the daemon has been restarted, it should be running in the @code{guix_daemon_t} context.  You can confirm this with the following command:"
 msgstr "Une fois la politique installée, le système de fichier ré-étiqueté et le démon redémarré, il devrait être lancé dans le contexte @code{guix_daemon_t}.  Vous pouvez le confirmer avec la commande suivante :"
 
 #. type: example
-#: doc/guix.texi:1238
+#: doc/guix.texi:1353
 #, no-wrap
 msgid "ps -Zax | grep guix-daemon\n"
 msgstr "ps -Zax | grep guix-daemon\n"
 
 #. type: Plain text
-#: doc/guix.texi:1243
+#: doc/guix.texi:1358
 msgid "Monitor the SELinux log files as you run a command like @code{guix build hello} to convince yourself that SELinux permits all necessary operations."
 msgstr "Surveillez les fichiers journaux de SELinux pendant que vous lancez une commande comme @code{guix build hello} pour vous convaincre que SELniux permet toutes les opérations nécessaires."
 
 #. type: cindex
-#: doc/guix.texi:1245
+#: doc/guix.texi:1360
 #, no-wrap
 msgid "SELinux, limitations"
 msgstr "SELinux, limites"
 
 #. type: Plain text
-#: doc/guix.texi:1250
+#: doc/guix.texi:1365
 msgid "This policy is not perfect.  Here is a list of limitations or quirks that should be considered when deploying the provided SELinux policy for the Guix daemon."
 msgstr "La politique n'est pas parfaite.  Voici une liste de limitations et de bizarreries qui vous devriez prendre en compte avant de déployer la politique SELinux fournie pour le démon Guix."
 
 #. type: enumerate
-#: doc/guix.texi:1257
+#: doc/guix.texi:1372
 msgid "@code{guix_daemon_socket_t} isn’t actually used.  None of the socket operations involve contexts that have anything to do with @code{guix_daemon_socket_t}.  It doesn’t hurt to have this unused label, but it would be preferrable to define socket rules for only this label."
 msgstr "@code{guix_daemon_socket_t} n'est pas vraiment utilisé.  Aucune des opérations sur les sockets n'impliquent de contextes qui ont quoi que ce soit à voir avec @code{guix_daemon_socket_t}.  Ça ne fait pas de mal d'avoir une étiquette inutilisée, mais il serait préférable de définir des règles sur les sockets uniquement pour cette étiquette."
 
 #. type: enumerate
-#: doc/guix.texi:1268
+#: doc/guix.texi:1383
 msgid "@code{guix gc} cannot access arbitrary links to profiles.  By design, the file label of the destination of a symlink is independent of the file label of the link itself.  Although all profiles under $localstatedir are labelled, the links to these profiles inherit the label of the directory they are in.  For links in the user’s home directory this will be @code{user_home_t}.  But for links from the root user’s home directory, or @file{/tmp}, or the HTTP server’s working directory, etc, this won’t work.  @code{guix gc} would be prevented from reading and following these links."
 msgstr "@code{guix gc} ne peut pas accéder à n'importe quel lien vers les profils.  Par conception, l'étiquette de fichier de la destination d'un lien symbolique est indépendant de l'étiquette du lien lui-même.  Bien que tous les profils sous $localstatedir aient une étiquette, les liens vers ces profils héritent de l'étiquette du répertoire dans lequel ils se trouvent.  Pour les liens dans le répertoire personnel cela sera @code{user_home_t}.  Mais pour les liens du répertoire personnel de root, ou @file{/tmp}, ou du répertoire de travail du serveur HTTP, etc, cela ne fonctionnera pas.  SELinux empêcherait @code{guix gc} de lire et de suivre ces liens."
 
 #. type: enumerate
-#: doc/guix.texi:1273
+#: doc/guix.texi:1388
 msgid "The daemon’s feature to listen for TCP connections might no longer work.  This might require extra rules, because SELinux treats network sockets differently from files."
 msgstr "La fonctionnalité du démon d'écouter des connexions TCP pourrait ne plus fonctionner.  Cela demande des règles supplémentaires car SELinux traite les sockets réseau différemment des fichiers."
 
 #. type: enumerate
-#: doc/guix.texi:1284
+#: doc/guix.texi:1399
 msgid "Currently all files with a name matching the regular expression @code{/gnu/store/.+-(guix-.+|profile)/bin/guix-daemon} are assigned the label @code{guix_daemon_exec_t}; this means that @emph{any} file with that name in any profile would be permitted to run in the @code{guix_daemon_t} domain.  This is not ideal.  An attacker could build a package that provides this executable and convince a user to install and run it, which lifts it into the @code{guix_daemon_t} domain.  At that point SELinux could not prevent it from accessing files that are allowed for processes in that domain."
 msgstr "Actuellement tous les fichiers qui correspondent à l'expression rationnelle @code{/gnu/store/.+-(guix-.+|profile)/bin/guix-daemon} reçoivent l'étiquette @code{guix_daemon_exec_t} ; cela signifie que @emph{tout} fichier avec ce nom dans n'importe quel profil serait autorisé à se lancer dans le domaine @code{guix_daemon_t}.  Ce n'est pas idéal.  Un attaquant pourrait construire un paquet qui fournit cet exécutable et convaincre un·e utilisateur·rice de l'installer et de le lancer, ce qui l'élève dans le domaine @code{guix_daemon_t}.  À ce moment SELinux ne pourrait pas l'empêcher d'accéder à des fichiers autorisés pour les processus de ce domaine."
 
 #. type: enumerate
-#: doc/guix.texi:1292
+#: doc/guix.texi:1407
 msgid "We could generate a much more restrictive policy at installation time, so that only the @emph{exact} file name of the currently installed @code{guix-daemon} executable would be labelled with @code{guix_daemon_exec_t}, instead of using a broad regular expression.  The downside is that root would have to install or upgrade the policy at installation time whenever the Guix package that provides the effectively running @code{guix-daemon} executable is upgraded."
 msgstr "Nous pourrions générer une politique bien plus restrictive à l'installation, pour que seuls les noms de fichiers @emph{exacts} de l'exécutable @code{guix-daemon} actuellement installé soit étiqueté avec @code{guix_daemon_exec_t}, plutôt que d'utiliser une expression rationnelle plus large.  L'inconvénient c'est que root devrait installer ou mettre à jour la politique à l'installation à chaque fois que le paquet Guix qui fournit l'exécutable @code{guix-daemon} effectivement exécuté est mis à jour."
 
 #. type: section
-#: doc/guix.texi:1295
+#: doc/guix.texi:1410
 #, no-wrap
 msgid "Invoking @command{guix-daemon}"
 msgstr "Invoquer @command{guix-daemon}"
 
 #. type: Plain text
-#: doc/guix.texi:1301
+#: doc/guix.texi:1416
 msgid "The @command{guix-daemon} program implements all the functionality to access the store.  This includes launching build processes, running the garbage collector, querying the availability of a build result, etc.  It is normally run as @code{root} like this:"
 msgstr "Le programme @command{guix-daemon} implémente toutes les fonctionnalités d'accès au dépôt.  Cela inclus le lancement des processus de construction, le lancement du ramasse-miettes, la demande de disponibilité des résultats de construction, etc.  Il tourne normalement en @code{root} comme ceci :"
 
 #. type: Plain text
-#: doc/guix.texi:1308
+#: doc/guix.texi:1423
 msgid "For details on how to set it up, @pxref{Setting Up the Daemon}."
 msgstr "Pour des détails sur son paramétrage, @pxref{Paramétrer le démon}."
 
 #. type: cindex
-#: doc/guix.texi:1310
+#: doc/guix.texi:1425
 #, no-wrap
 msgid "container, build environment"
 msgstr "conteneur, environnement de construction"
 
 #. type: cindex
-#: doc/guix.texi:1312 doc/guix.texi:2561 doc/guix.texi:3242 doc/guix.texi:9773
+#: doc/guix.texi:1427 doc/guix.texi:2937 doc/guix.texi:3789
+#: doc/guix.texi:12380
 #, no-wrap
 msgid "reproducible builds"
 msgstr "constructions reproductibles"
 
 #. type: Plain text
-#: doc/guix.texi:1324
-msgid "By default, @command{guix-daemon} launches build processes under different UIDs, taken from the build group specified with @code{--build-users-group}.  In addition, each build process is run in a chroot environment that only contains the subset of the store that the build process depends on, as specified by its derivation (@pxref{Programming Interface, derivation}), plus a set of specific system directories.  By default, the latter contains @file{/dev} and @file{/dev/pts}.  Furthermore, on GNU/Linux, the build environment is a @dfn{container}: in addition to having its own file system tree, it has a separate mount name space, its own PID name space, network name space, etc.  This helps achieve reproducible builds (@pxref{Features})."
-msgstr "Par défaut, @command{guix-daemon} lance les processus de construction sous différents UID récupérés depuis le groupe de construction spécifié avec @code{--build-users-group}.  En plus, chaque processus de construction est lancé dans un environnement chroot qui ne contient que le sous-ensemble du dépôt dont le processus de construction dépend, tel que spécifié par sa dérivation (@pxref{Interface de programmation, dérivation}), plus un ensemble de répertoires systèmes spécifiques.  Par défaut ce dernier contient @file{/dev} et @file{/dev/pts}.  De plus, sous GNU/Linux, l'environnement de construction est un @dfn{conteneur} : en plus d'avoir sa propre arborescence du système de fichier, elle a un espace de montage séparé, son propre espace de PID, son espace de réseau, etc.  Cela aide à obtenir des constructions reproductibles (@pxref{Fonctionnalités})."
+#: doc/guix.texi:1439
+msgid "By default, @command{guix-daemon} launches build processes under different UIDs, taken from the build group specified with @option{--build-users-group}.  In addition, each build process is run in a chroot environment that only contains the subset of the store that the build process depends on, as specified by its derivation (@pxref{Programming Interface, derivation}), plus a set of specific system directories.  By default, the latter contains @file{/dev} and @file{/dev/pts}.  Furthermore, on GNU/Linux, the build environment is a @dfn{container}: in addition to having its own file system tree, it has a separate mount name space, its own PID name space, network name space, etc.  This helps achieve reproducible builds (@pxref{Features})."
+msgstr "Par défaut, @command{guix-daemon} lance les processus de construction sous différents UIDs récupérés depuis le groupe de construction spécifié avec @code{--build-users-group}.  En plus, chaque processus de construction est lancé dans un environnement chroot qui ne contient que le sous-ensemble du dépôt dont le processus de construction dépend, tel que spécifié par sa dérivation (@pxref{Interface de programmation, dérivation}), plus un ensemble de répertoires systèmes spécifiques.  Par défaut ce dernier contient @file{/dev} et @file{/dev/pts}.  De plus, sous GNU/Linux, l'environnement de construction est un @dfn{conteneur} : en plus d'avoir sa propre arborescence du système de fichier, il a un espace de nom de montage séparé, son propre espace de nom PID, son espace de nom de réseau, etc.  Cela aide à obtenir des constructions reproductibles (@pxref{Fonctionnalités})."
 
 #. type: Plain text
-#: doc/guix.texi:1330
-msgid "When the daemon performs a build on behalf of the user, it creates a build directory under @file{/tmp} or under the directory specified by its @code{TMPDIR} environment variable.  This directory is shared with the container for the duration of the build, though within the container, the build tree is always called @file{/tmp/guix-build-@var{name}.drv-0}."
-msgstr "Lorsque le démon effectue une construction pour le compte de l'utilisateur·rice, il crée un répertoire sous @file{/tmp} ou sous le répertoire spécifié par sa variable d'environnement @code{TMPDIR}.  Ce répertoire est partagé avec le conteneur pendant la durée de la construction, bien que dans le conteneur, l'arborescence de construction est toujours appelée @file{/tmp/guix-build-@var{name}.drv-0}."
+#: doc/guix.texi:1445
+msgid "When the daemon performs a build on behalf of the user, it creates a build directory under @file{/tmp} or under the directory specified by its @env{TMPDIR} environment variable.  This directory is shared with the container for the duration of the build, though within the container, the build tree is always called @file{/tmp/guix-build-@var{name}.drv-0}."
+msgstr "Lorsque le démon effectue une construction pour le compte de l'utilisateur·rice, il crée un répertoire de construction sous @file{/tmp} ou sous le répertoire spécifié par sa variable d'environnement @env{TMPDIR}.  Ce répertoire est partagé avec le conteneur pendant toute la durée de la construction, bien que dans le conteneur, l'arbre de compilation soit toujours appelé @file{/tmp/guix-build-@var{name}.drv-0}."
 
 #. type: Plain text
-#: doc/guix.texi:1334
+#: doc/guix.texi:1449
 msgid "The build directory is automatically deleted upon completion, unless the build failed and the client specified @option{--keep-failed} (@pxref{Invoking guix build, @option{--keep-failed}})."
 msgstr "Le répertoire de construction est automatiquement supprimé à la fin, à moins que la construction n'ait échoué et que le client ait spécifié @option{--keep-failed} (@pxref{Invoking guix build, @option{--keep-failed}})."
 
 #. type: Plain text
-#: doc/guix.texi:1340
-msgid "The daemon listens for connections and spawns one sub-process for each session started by a client (one of the @command{guix} sub-commands.)  The @command{guix processes} command allows you to get an overview of the activity on your system by viewing each of the active sessions and clients.  @xref{Invoking guix processes}, for more information."
-msgstr "Le démon écoute les connexions et démarre un sous-processus pour chaque session démarrée par un client (l'une des sous-commandes de @command{guix}).  La commande @command{guix processes} vous permet d'obtenir un aperçu de l'activité sur votre système en affichant chaque session et client actif.  @xref{Invoking guix processes} pour plus d'informations."
+#: doc/guix.texi:1455
+msgid "The daemon listens for connections and spawns one sub-process for each session started by a client (one of the @command{guix} sub-commands).  The @command{guix processes} command allows you to get an overview of the activity on your system by viewing each of the active sessions and clients.  @xref{Invoking guix processes}, for more information."
+msgstr "Le démon écoute les connexions et démarre un sous-processus pour chaque session démarrée par un client (l'une des sous-commandes de @command{guix}).  La commande @command{guix processes} vous permet d'obtenir un aperçu de l'activité sur votre système en affichant chaque session et client actifs.  @xref{Invoking guix processes} pour plus d'informations."
 
 #. type: Plain text
-#: doc/guix.texi:1342
+#: doc/guix.texi:1457
 msgid "The following command-line options are supported:"
 msgstr "Les options en ligne de commande suivantes sont disponibles :"
 
 #. type: item
-#: doc/guix.texi:1344
+#: doc/guix.texi:1459
 #, no-wrap
 msgid "--build-users-group=@var{group}"
 msgstr "--build-users-group=@var{groupe}"
 
 #. type: table
-#: doc/guix.texi:1347
+#: doc/guix.texi:1462
 msgid "Take users from @var{group} to run build processes (@pxref{Setting Up the Daemon, build users})."
 msgstr "Utiliser les comptes du @var{groupe} pour lancer les processus de construction (@pxref{Paramétrer le démon, comptes de construction})."
 
 #. type: item
-#: doc/guix.texi:1348 doc/guix.texi:7723
+#: doc/guix.texi:1463 doc/guix.texi:9972
 #, no-wrap
 msgid "--no-substitutes"
 msgstr "--no-substitutes"
 
 #. type: cindex
-#: doc/guix.texi:1349 doc/guix.texi:2573 doc/guix.texi:3103
+#: doc/guix.texi:1464 doc/guix.texi:2949 doc/guix.texi:3547
 #, no-wrap
 msgid "substitutes"
 msgstr "substituts"
 
 #. type: table
-#: doc/guix.texi:1353 doc/guix.texi:7727
+#: doc/guix.texi:1468 doc/guix.texi:9976
 msgid "Do not use substitutes for build products.  That is, always build things locally instead of allowing downloads of pre-built binaries (@pxref{Substitutes})."
 msgstr "Ne pas utiliser de substitut pour les résultats de la construction.  C'est-à-dire, toujours construire localement plutôt que de permettre le téléchargement de binaires pré-construits (@pxref{Substituts})."
 
 #. type: table
-#: doc/guix.texi:1357
-msgid "When the daemon runs with @code{--no-substitutes}, clients can still explicitly enable substitution @i{via} the @code{set-build-options} remote procedure call (@pxref{The Store})."
-msgstr "Lorsque le démon tourne avec @code{--no-substitutes}, les clients peuvent toujours activer explicitement la substitution @i{via} l'appel de procédure distante @code{set-build-options} (@pxref{The Store})."
+#: doc/guix.texi:1472
+msgid "When the daemon runs with @option{--no-substitutes}, clients can still explicitly enable substitution @i{via} the @code{set-build-options} remote procedure call (@pxref{The Store})."
+msgstr "Lorsque le démon est lancé avec @code{--no-substitutes}, les clients peuvent toujours activer explicitement la substitution @i{via} l'appel de procédure distante @code{set-build-options} (@pxref{The Store})."
+
+#. type: anchor{#1}
+#: doc/guix.texi:1474
+msgid "daemon-substitute-urls"
+msgstr "daemon-substitute-urls"
 
 #. type: item
-#: doc/guix.texi:1358 doc/guix.texi:7710 doc/guix.texi:9317 doc/guix.texi:9898
-#: doc/guix.texi:10088
+#: doc/guix.texi:1474 doc/guix.texi:9959 doc/guix.texi:11822
+#: doc/guix.texi:12526 doc/guix.texi:12751
 #, no-wrap
 msgid "--substitute-urls=@var{urls}"
 msgstr "--substitute-urls=@var{urls}"
 
-#. type: anchor{#1}
-#: doc/guix.texi:1363
-msgid "daemon-substitute-urls"
-msgstr "daemon-substitute-urls"
-
 #. type: table
-#: doc/guix.texi:1363
+#: doc/guix.texi:1478
 msgid "Consider @var{urls} the default whitespace-separated list of substitute source URLs.  When this option is omitted, @indicateurl{https://@value{SUBSTITUTE-SERVER}} is used."
 msgstr "Considérer @var{urls} comme la liste séparée par des espaces des URL des sources de substituts par défaut.  Lorsque cette option est omise, @indicateurl{https://@value{SUBSTITUTE-SERVER}} est utilisé."
 
 #. type: table
-#: doc/guix.texi:1366
+#: doc/guix.texi:1481
 msgid "This means that substitutes may be downloaded from @var{urls}, as long as they are signed by a trusted signature (@pxref{Substitutes})."
 msgstr "Cela signifie que les substituts sont téléchargés depuis les @var{urls}, tant qu'ils sont signés par une signature de confiance (@pxref{Substituts})."
 
+#. type: table
+#: doc/guix.texi:1484
+msgid "@xref{Getting Substitutes from Other Servers}, for more information on how to configure the daemon to get substitutes from other servers."
+msgstr "@xref{Getting Substitutes from Other Servers}, pour plus d'information sur la configuration du démon pour récupérer des substituts d'autres serveurs."
+
 #. type: item
-#: doc/guix.texi:1368 doc/guix.texi:7748
+#: doc/guix.texi:1486 doc/guix.texi:9995
 #, no-wrap
-msgid "--no-build-hook"
-msgstr "--no-build-hook"
-
-#. type: table
-#: doc/guix.texi:1370
-msgid "Do not use the @dfn{build hook}."
-msgstr "Ne pas utiliser le @dfn{crochet de construction}."
+msgid "--no-offload"
+msgstr "--no-offload"
 
 #. type: table
-#: doc/guix.texi:1374
-msgid "The build hook is a helper program that the daemon can start and to which it submits build requests.  This mechanism is used to offload builds to other machines (@pxref{Daemon Offload Setup})."
-msgstr "Le crochet de construction est un programme d'aide qui le démon peut démarrer et auquel soumettre les requêtes de construction.  Ce mécanisme est utilisé pour décharger les constructions à d'autres machines (@pxref{Daemon Offload Setup})."
+#: doc/guix.texi:1490 doc/guix.texi:9999
+msgid "Do not use offload builds to other machines (@pxref{Daemon Offload Setup}).  That is, always build things locally instead of offloading builds to remote machines."
+msgstr "N'essaye pas de décharger les constructions vers d'autres machines (@pxref{Daemon Offload Setup}).  C'est-à-dire que tout sera construit localement au lieu de décharger les constructions à une machine distante."
 
 #. type: item
-#: doc/guix.texi:1375
+#: doc/guix.texi:1491
 #, no-wrap
 msgid "--cache-failures"
 msgstr "--cache-failures"
 
 #. type: table
-#: doc/guix.texi:1377
+#: doc/guix.texi:1493
 msgid "Cache build failures.  By default, only successful builds are cached."
 msgstr "Mettre les échecs de construction en cache.  Par défaut, seules les constructions réussies sont mises en cache."
 
 #. type: table
-#: doc/guix.texi:1382
+#: doc/guix.texi:1498
 msgid "When this option is used, @command{guix gc --list-failures} can be used to query the set of store items marked as failed; @command{guix gc --clear-failures} removes store items from the set of cached failures.  @xref{Invoking guix gc}."
 msgstr "Lorsque cette option est utilisée, @command{guix gc --list-failures} peut être utilisé pour demander l'ensemble des éléments du dépôt marqués comme échoués ; @command{guix gc --clear-failures} vide la liste des éléments aillant échoué.  @xref{Invoking guix gc}."
 
 #. type: item
-#: doc/guix.texi:1383 doc/guix.texi:7777
+#: doc/guix.texi:1499 doc/guix.texi:10024
 #, no-wrap
 msgid "--cores=@var{n}"
 msgstr "--cores=@var{n}"
 
 #. type: itemx
-#: doc/guix.texi:1384 doc/guix.texi:7778
+#: doc/guix.texi:1500 doc/guix.texi:10025
 #, no-wrap
 msgid "-c @var{n}"
 msgstr "-c @var{n}"
 
 #. type: table
-#: doc/guix.texi:1387
+#: doc/guix.texi:1503
 msgid "Use @var{n} CPU cores to build each derivation; @code{0} means as many as available."
 msgstr "Utiliser @var{n} cœurs CPU pour construire chaque dérivation ; @code{0} signifie autant que possible."
 
 #. type: table
-#: doc/guix.texi:1391
-msgid "The default value is @code{0}, but it may be overridden by clients, such as the @code{--cores} option of @command{guix build} (@pxref{Invoking guix build})."
-msgstr "La valeur par défaut est @code{0}, mais elle peut être modifiée par les clients comme avec l'option @code{--cores} de @command{guix build} (@pxref{Invoking guix build})."
+#: doc/guix.texi:1507
+msgid "The default value is @code{0}, but it may be overridden by clients, such as the @option{--cores} option of @command{guix build} (@pxref{Invoking guix build})."
+msgstr "La valeur par défaut est @code{0}, mais elle peut être annulée par les clients, comme avec l'option @code{--cores} de @command{guix build} (@pxref{Invoking guix build})."
 
 #. type: table
-#: doc/guix.texi:1395
-msgid "The effect is to define the @code{NIX_BUILD_CORES} environment variable in the build process, which can then use it to exploit internal parallelism---for instance, by running @code{make -j$NIX_BUILD_CORES}."
-msgstr "L'effet est de définir la variable d'environnement @code{NIX_BUILD_CORES} dans le processus de construction, qui peut ensuite l'utiliser pour exploiter le parallélisme en interne — par exemple en lançant @code{make -j$NIX_BUILD_CORES}."
+#: doc/guix.texi:1511
+msgid "The effect is to define the @env{NIX_BUILD_CORES} environment variable in the build process, which can then use it to exploit internal parallelism---for instance, by running @code{make -j$NIX_BUILD_CORES}."
+msgstr "L'effet est de définir la variable d'environnement @env{NIX_BUILD_CORES} dans le processus de construction, qui peut ensuite l'utiliser pour exploiter le parallélisme en interne — par exemple en lançant @code{make -j$NIX_BUILD_CORES}."
 
 #. type: item
-#: doc/guix.texi:1396 doc/guix.texi:7782
+#: doc/guix.texi:1512 doc/guix.texi:10029
 #, no-wrap
 msgid "--max-jobs=@var{n}"
 msgstr "--max-jobs=@var{n}"
 
 #. type: itemx
-#: doc/guix.texi:1397 doc/guix.texi:7783
+#: doc/guix.texi:1513 doc/guix.texi:10030
 #, no-wrap
 msgid "-M @var{n}"
 msgstr "-M @var{n}"
 
 #. type: table
-#: doc/guix.texi:1402
+#: doc/guix.texi:1518
 msgid "Allow at most @var{n} build jobs in parallel.  The default value is @code{1}.  Setting it to @code{0} means that no builds will be performed locally; instead, the daemon will offload builds (@pxref{Daemon Offload Setup}), or simply fail."
 msgstr "Permettre au plus @var{n} travaux de construction en parallèle.  La valeur par défaut est @code{1}.  La mettre à @code{0} signifie qu'aucune construction ne sera effectuée localement ; à la place, le démon déchargera les constructions (@pxref{Daemon Offload Setup}) ou échouera."
 
 #. type: item
-#: doc/guix.texi:1403 doc/guix.texi:7753
+#: doc/guix.texi:1519 doc/guix.texi:10000
 #, no-wrap
 msgid "--max-silent-time=@var{seconds}"
 msgstr "--max-silent-time=@var{secondes}"
 
 #. type: table
-#: doc/guix.texi:1406 doc/guix.texi:7756
+#: doc/guix.texi:1522 doc/guix.texi:10003
 msgid "When the build or substitution process remains silent for more than @var{seconds}, terminate it and report a build failure."
 msgstr "Lorsque le processus de construction ou de substitution restent silencieux pendant plus de @var{secondes}, le terminer et rapporter une erreur de construction."
 
 #. type: table
-#: doc/guix.texi:1408 doc/guix.texi:1417
+#: doc/guix.texi:1524 doc/guix.texi:1533
 msgid "The default value is @code{0}, which disables the timeout."
 msgstr "La valeur par défaut est @code{0}, ce qui désactive le délai."
 
 #. type: table
-#: doc/guix.texi:1411
-msgid "The value specified here can be overridden by clients (@pxref{Common Build Options, @code{--max-silent-time}})."
-msgstr "La valeur spécifiée ici peut être modifiée par les clients (@pxref{Common Build Options, @code{--max-silent-time}})."
+#: doc/guix.texi:1527
+msgid "The value specified here can be overridden by clients (@pxref{Common Build Options, @option{--max-silent-time}})."
+msgstr "La valeur spécifiée ici peut être annulée par les clients (@pxref{Common Build Options, @code{--max-silent-time}})."
 
 #. type: item
-#: doc/guix.texi:1412 doc/guix.texi:7760
+#: doc/guix.texi:1528 doc/guix.texi:10007
 #, no-wrap
 msgid "--timeout=@var{seconds}"
 msgstr "--timeout=@var{secondes}"
 
 #. type: table
-#: doc/guix.texi:1415 doc/guix.texi:7763
+#: doc/guix.texi:1531 doc/guix.texi:10010
 msgid "Likewise, when the build or substitution process lasts for more than @var{seconds}, terminate it and report a build failure."
 msgstr "De même, lorsque le processus de construction ou de substitution dure plus de @var{secondes}, le terminer et rapporter une erreur de construction."
 
 #. type: table
-#: doc/guix.texi:1420
-msgid "The value specified here can be overridden by clients (@pxref{Common Build Options, @code{--timeout}})."
-msgstr "La valeur spécifiée ici peut être modifiée par les clients (@pxref{Common Build Options, @code{--timeout}})."
+#: doc/guix.texi:1536
+msgid "The value specified here can be overridden by clients (@pxref{Common Build Options, @option{--timeout}})."
+msgstr "La valeur spécifiée ici peut être annulée par les clients (@pxref{Common Build Options, @code{--timeout}})."
 
 #. type: item
-#: doc/guix.texi:1421
+#: doc/guix.texi:1537
 #, no-wrap
 msgid "--rounds=@var{N}"
 msgstr "--rounds=@var{N}"
 
 #. type: table
-#: doc/guix.texi:1426
+#: doc/guix.texi:1542
 msgid "Build each derivation @var{n} times in a row, and raise an error if consecutive build results are not bit-for-bit identical.  Note that this setting can be overridden by clients such as @command{guix build} (@pxref{Invoking guix build})."
 msgstr "Construire chaque dérivations @var{N} fois à la suite, et lever une erreur si les résultats de construction consécutifs ne sont pas identiques bit-à-bit.  Remarquez que ce paramètre peut être modifié par les clients comme @command{guix build} (@pxref{Invoking guix build})."
 
 #. type: table
-#: doc/guix.texi:1430 doc/guix.texi:8122
+#: doc/guix.texi:1546 doc/guix.texi:9994 doc/guix.texi:10499
 msgid "When used in conjunction with @option{--keep-failed}, the differing output is kept in the store, under @file{/gnu/store/@dots{}-check}.  This makes it easy to look for differences between the two results."
 msgstr "Lorsqu'utilisé avec @option{--keep-failed}, la sortie différente est gardée dans le dépôt sous @file{/gnu/store/@dots{}-check}.  Cela rend plus facile l'étude des différences entre les deux résultats."
 
 #. type: item
-#: doc/guix.texi:1431
+#: doc/guix.texi:1547
 #, no-wrap
 msgid "--debug"
 msgstr "--debug"
 
 #. type: table
-#: doc/guix.texi:1433
+#: doc/guix.texi:1549
 msgid "Produce debugging output."
 msgstr "Produire une sortie de débogage."
 
 #. type: table
-#: doc/guix.texi:1437
-msgid "This is useful to debug daemon start-up issues, but then it may be overridden by clients, for example the @code{--verbosity} option of @command{guix build} (@pxref{Invoking guix build})."
-msgstr "Cela est utile pour déboguer des problèmes de démarrage du démon, mais ensuite elle peut être modifiée par les clients, par exemple par l'option  @code{--verbosity} de @command{guix build} (@pxref{Invoking guix build})."
+#: doc/guix.texi:1553
+msgid "This is useful to debug daemon start-up issues, but then it may be overridden by clients, for example the @option{--verbosity} option of @command{guix build} (@pxref{Invoking guix build})."
+msgstr "Cela est utile pour déboguer des problèmes de démarrage du démon, mais ensuite elle peut être annulée par les clients, par exemple par l'option  @code{--verbosity} de @command{guix build} (@pxref{Invoking guix build})."
 
 #. type: item
-#: doc/guix.texi:1438
+#: doc/guix.texi:1554
 #, no-wrap
 msgid "--chroot-directory=@var{dir}"
 msgstr "--chroot-directory=@var{rép}"
 
 #. type: table
-#: doc/guix.texi:1440
+#: doc/guix.texi:1556
 msgid "Add @var{dir} to the build chroot."
 msgstr "Ajouter @var{rép} au chroot de construction."
 
 #. type: table
-#: doc/guix.texi:1446
+#: doc/guix.texi:1562
 msgid "Doing this may change the result of build processes---for instance if they use optional dependencies found in @var{dir} when it is available, and not otherwise.  For that reason, it is not recommended to do so.  Instead, make sure that each derivation declares all the inputs that it needs."
 msgstr "Cela peut changer le résultat d'un processus de construction — par exemple s'il utilise une dépendance facultative trouvée dans @var{rép} lorsqu'elle est disponible ou pas sinon.  Pour cette raison, il n'est pas recommandé d'utiliser cette option.  À la place, assurez-vous que chaque dérivation déclare toutes les entrées dont elle a besoin."
 
 #. type: item
-#: doc/guix.texi:1447
+#: doc/guix.texi:1563
 #, no-wrap
 msgid "--disable-chroot"
 msgstr "--disable-chroot"
 
 #. type: table
-#: doc/guix.texi:1449
+#: doc/guix.texi:1565
 msgid "Disable chroot builds."
 msgstr "Désactive les constructions dans un chroot."
 
 #. type: table
-#: doc/guix.texi:1454
+#: doc/guix.texi:1570
 msgid "Using this option is not recommended since, again, it would allow build processes to gain access to undeclared dependencies.  It is necessary, though, when @command{guix-daemon} is running under an unprivileged user account."
 msgstr "Utiliser cette option n'est pas recommandé car, de nouveau, elle permet aux processus de construction d'accéder à des dépendances non déclarées.  Elle est nécessaire cependant lorsque @command{guix-daemon} tourne sans privilèges."
 
 #. type: item
-#: doc/guix.texi:1455
+#: doc/guix.texi:1571
 #, no-wrap
 msgid "--log-compression=@var{type}"
 msgstr "--log-compression=@var{type}"
 
 #. type: table
-#: doc/guix.texi:1458
+#: doc/guix.texi:1574
 msgid "Compress build logs according to @var{type}, one of @code{gzip}, @code{bzip2}, or @code{none}."
 msgstr "Compresser les journaux de construction suivant le @var{type}, parmi @code{gzip}, @code{bzip2} ou @code{none}."
 
 #. type: table
-#: doc/guix.texi:1462
-msgid "Unless @code{--lose-logs} is used, all the build logs are kept in the @var{localstatedir}.  To save space, the daemon automatically compresses them with bzip2 by default."
-msgstr "À moins que @code{--lose-logs} ne soit utilisé, tous les journaux de construction sont gardés dans @var{localstatedir}.  Pour gagner de la place, le démon les compresse automatiquement avec bzip2 par défaut."
+#: doc/guix.texi:1578
+msgid "Unless @option{--lose-logs} is used, all the build logs are kept in the @var{localstatedir}.  To save space, the daemon automatically compresses them with Bzip2 by default."
+msgstr "À moins que @option{--lose-logs} ne soit utilisé, tous les journaux de construction sont gardés dans @var{localstatedir}.  Pour gagner de la place, le démon les compresse automatiquement avec bzip2 par défaut."
 
 #. type: item
-#: doc/guix.texi:1463
+#: doc/guix.texi:1579
 #, no-wrap
 msgid "--disable-deduplication"
 msgstr "--disable-deduplication"
 
 #. type: cindex
-#: doc/guix.texi:1464 doc/guix.texi:3576
+#: doc/guix.texi:1580 doc/guix.texi:4127
 #, no-wrap
 msgid "deduplication"
 msgstr "déduplication"
 
 #. type: table
-#: doc/guix.texi:1466
+#: doc/guix.texi:1582
 msgid "Disable automatic file ``deduplication'' in the store."
 msgstr "Désactiver la « déduplication » automatique des fichiers dans le dépôt."
 
 #. type: table
-#: doc/guix.texi:1473
+#: doc/guix.texi:1589
 msgid "By default, files added to the store are automatically ``deduplicated'': if a newly added file is identical to another one found in the store, the daemon makes the new file a hard link to the other file.  This can noticeably reduce disk usage, at the expense of slightly increased input/output load at the end of a build process.  This option disables this optimization."
 msgstr "Par défaut, les fichiers ajoutés au dépôt sont automatiquement « dédupliqués » : si un nouveau fichier est identique à un autre fichier trouvé dans le dépôt, le démon en fait un lien en dur vers l'autre fichier.  Cela réduit considérablement l'utilisation de l'espace disque au prix d'une charge en entrée/sortie plus grande à la fin d'un processus de construction.  Cette option désactive cette optimisation."
 
 #. type: item
-#: doc/guix.texi:1474
+#: doc/guix.texi:1590
 #, no-wrap
 msgid "--gc-keep-outputs[=yes|no]"
 msgstr "--gc-keep-outputs[=yes|no]"
 
 #. type: table
-#: doc/guix.texi:1477
+#: doc/guix.texi:1593
 msgid "Tell whether the garbage collector (GC) must keep outputs of live derivations."
 msgstr "Dire si le ramasse-miettes (GC) doit garder les sorties des dérivations utilisées."
 
 #. type: cindex
-#: doc/guix.texi:1478 doc/guix.texi:3393
+#: doc/guix.texi:1594 doc/guix.texi:3940
 #, no-wrap
 msgid "GC roots"
-msgstr "racines du GC"
+msgstr "Racines du GC"
 
 #. type: cindex
-#: doc/guix.texi:1479 doc/guix.texi:3394
+#: doc/guix.texi:1595 doc/guix.texi:3941
 #, no-wrap
 msgid "garbage collector roots"
 msgstr "racines du ramasse-miettes"
 
 #. type: table
-#: doc/guix.texi:1484
-msgid "When set to ``yes'', the GC will keep the outputs of any live derivation available in the store---the @code{.drv} files.  The default is ``no'', meaning that derivation outputs are kept only if they are reachable from a GC root.  @xref{Invoking guix gc}, for more on GC roots."
-msgstr "Lorsqu'elle est à « yes », le GC gardera les sorties de toutes les dérivations — les fichiers @code{.drv} — accessibles dans le dépôt.  La valeur par défaut est « no », ce qui signifie que les sorties des dérivations ne sont gardées que si elles sont accessibles à partir d'une racine du GC.  @xref{Invoking guix gc} pour plus d'informations sur les racines du GC."
+#: doc/guix.texi:1601
+msgid "When set to @code{yes}, the GC will keep the outputs of any live derivation available in the store---the @file{.drv} files.  The default is @code{no}, meaning that derivation outputs are kept only if they are reachable from a GC root.  @xref{Invoking guix gc}, for more on GC roots."
+msgstr "Lorsqu'il est réglé sur @code{yes}, le GC conservera les sorties de toute dérivation active disponibles dans le dépôt---les fichiers @file{.drv}.  La valeur par défaut est @code{no}, ce qui signifie que les sorties des dérivations ne sont conservées que si elles sont accessibles à partir d'une racine GC.  @xref{Invoquer guix gc}, pour en savoir plus sur les racines GC."
 
 #. type: item
-#: doc/guix.texi:1485
+#: doc/guix.texi:1602
 #, no-wrap
 msgid "--gc-keep-derivations[=yes|no]"
 msgstr "--gc-keep-derivations[=yes|no]"
 
 #. type: table
-#: doc/guix.texi:1488
+#: doc/guix.texi:1605
 msgid "Tell whether the garbage collector (GC) must keep derivations corresponding to live outputs."
 msgstr "Dire si le ramasse-miettes (GC) doit garder les dérivations correspondant à des sorties utilisées."
 
 #. type: table
-#: doc/guix.texi:1493
-msgid "When set to ``yes'', as is the case by default, the GC keeps derivations---i.e., @code{.drv} files---as long as at least one of their outputs is live.  This allows users to keep track of the origins of items in their store.  Setting it to ``no'' saves a bit of disk space."
-msgstr "Lorsqu'elle est à « yes », comme c'est le cas par défaut, le GC garde les dérivations — c.-à-d.@: les fichiers @file{.drv} — tant qu'au moins une de leurs sorties est utilisée.  Cela permet de garder une trace de l'origine des éléments du dépôt.  Le mettre à « no » préserve un peu d'espace disque."
+#: doc/guix.texi:1611
+msgid "When set to @code{yes}, as is the case by default, the GC keeps derivations---i.e., @file{.drv} files---as long as at least one of their outputs is live.  This allows users to keep track of the origins of items in their store.  Setting it to @code{no} saves a bit of disk space."
+msgstr "Lorsqu'il est réglé à « yes », comme c'est le cas par défaut, le GC garde les dérivations — c.-à-d.@: les fichiers @file{.drv} — tant qu'au moins une de leurs sorties est utilisée.  Cela permet de garder une trace de l'origine des éléments du dépôt.  Le mettre à @code{no} préserve un peu d'espace disque."
 
 #. type: table
-#: doc/guix.texi:1501
-msgid "In this way, setting @code{--gc-keep-derivations} to ``yes'' causes liveness to flow from outputs to derivations, and setting @code{--gc-keep-outputs} to ``yes'' causes liveness to flow from derivations to outputs.  When both are set to ``yes'', the effect is to keep all the build prerequisites (the sources, compiler, libraries, and other build-time tools) of live objects in the store, regardless of whether these prerequisites are reachable from a GC root.  This is convenient for developers since it saves rebuilds or downloads."
-msgstr "De cette manière, avec @code{--gc-keep-derivations} à « yes », l'accessibilité des sorties s'étend des sorties aux dérivations et avec @code{--gc-keep-outputs} à « yes », elle s'étend des dérivations aux sorties.  Quand les deux options sont à « yes », le GC gardera tous les prérequis de construction (les sources, le compilateur, les bibliothèques, et les autres outils de construction) des objets accessibles dans le dépôt, indépendamment du fait qu'ils soient ou non accessibles depuis une racine du GC.  Cela est pratique pour les développeurs car ça leur fait gagner du temps de reconstruction et de téléchargement."
+#: doc/guix.texi:1620
+msgid "In this way, setting @option{--gc-keep-derivations} to @code{yes} causes liveness to flow from outputs to derivations, and setting @option{--gc-keep-outputs} to @code{yes} causes liveness to flow from derivations to outputs.  When both are set to @code{yes}, the effect is to keep all the build prerequisites (the sources, compiler, libraries, and other build-time tools) of live objects in the store, regardless of whether these prerequisites are reachable from a GC root.  This is convenient for developers since it saves rebuilds or downloads."
+msgstr "De cette manière, le réglage de l'option @option{--gc-keep-derivations} sur @code{yes} étend le résultat des sorties aux dérivations, et le réglage de l'option @option{--gc-keep-outputs} sur @code{yes} étend le résultat des dérivations aux sorties.  Lorsque les deux sont réglés sur @code{yes}, l'effet est de conserver tous les prérequis de construction (les sources, le compilateur, les bibliothèques et autres outils de construction) des objets actifs dans le dépôt, que ces prérequis soient accessibles ou non depuis une racine GC.  Cela est pratique pour les développeurs car cela permet d'éviter les reconstructions ou les téléchargements."
 
 #. type: item
-#: doc/guix.texi:1502
+#: doc/guix.texi:1621
 #, no-wrap
 msgid "--impersonate-linux-2.6"
 msgstr "--impersonate-linux-2.6"
 
 #. type: table
-#: doc/guix.texi:1505
-msgid "On Linux-based systems, impersonate Linux 2.6.  This means that the kernel's @code{uname} system call will report 2.6 as the release number."
-msgstr "Sur les système basés sur Linux, se faire passer pour Linux 2.6.  Cela signifie que l'appel système du noyau @code{uname} rapportera 2.6 comme numéro de version."
+#: doc/guix.texi:1624
+msgid "On Linux-based systems, impersonate Linux 2.6.  This means that the kernel's @command{uname} system call will report 2.6 as the release number."
+msgstr "Sur les systèmes basés sur Linux, imiter Linux 2.6.  Cela signifie que l'appel système @command{uname} du noyau indiquera 2.6 comme numéro de version."
 
 #. type: table
-#: doc/guix.texi:1508
+#: doc/guix.texi:1627
 msgid "This might be helpful to build programs that (usually wrongfully) depend on the kernel version number."
 msgstr "Cela peut être utile pour construire des programmes qui dépendent (généralement sans fondement) du numéro de version du noyau."
 
 #. type: item
-#: doc/guix.texi:1509
+#: doc/guix.texi:1628
 #, no-wrap
 msgid "--lose-logs"
 msgstr "--lose-logs"
 
 #. type: table
-#: doc/guix.texi:1512
-msgid "Do not keep build logs.  By default they are kept under @code{@var{localstatedir}/guix/log}."
-msgstr "Ne pas garder les journaux de construction.  Par défaut ils sont gardés dans @code{@var{localstatedir}/guix/log}."
+#: doc/guix.texi:1631
+msgid "Do not keep build logs.  By default they are kept under @file{@var{localstatedir}/guix/log}."
+msgstr "Ne pas garder les journaux de construction.  Par défaut ils sont gardés dans @file{@var{localstatedir}/guix/log}."
 
 #. type: item
-#: doc/guix.texi:1513 doc/guix.texi:3722 doc/guix.texi:4590 doc/guix.texi:4883
-#: doc/guix.texi:8066 doc/guix.texi:9344 doc/guix.texi:9543
-#: doc/guix.texi:10093 doc/guix.texi:23935 doc/guix.texi:24555
+#: doc/guix.texi:1632 doc/guix.texi:4368 doc/guix.texi:5636 doc/guix.texi:6007
+#: doc/guix.texi:10443 doc/guix.texi:11849 doc/guix.texi:12100
+#: doc/guix.texi:12756 doc/guix.texi:30230 doc/guix.texi:31006
 #, no-wrap
 msgid "--system=@var{system}"
 msgstr "--system=@var{système}"
 
 #. type: table
-#: doc/guix.texi:1517
+#: doc/guix.texi:1636
 msgid "Assume @var{system} as the current system type.  By default it is the architecture/kernel pair found at configure time, such as @code{x86_64-linux}."
 msgstr "Supposer que @var{système} est le type de système actuel.  Par défaut c'est la paire architecture-noyau trouvée à la configuration, comme @code{x86_64-linux}."
 
 #. type: item
-#: doc/guix.texi:1518 doc/guix.texi:7568
+#: doc/guix.texi:1637 doc/guix.texi:9805
 #, no-wrap
 msgid "--listen=@var{endpoint}"
 msgstr "--listen=@var{extrémité}"
 
 #. type: table
-#: doc/guix.texi:1523
+#: doc/guix.texi:1642
 msgid "Listen for connections on @var{endpoint}.  @var{endpoint} is interpreted as the file name of a Unix-domain socket if it starts with @code{/} (slash sign).  Otherwise, @var{endpoint} is interpreted as a host name or host name and port to listen to.  Here are a few examples:"
 msgstr "Écouter les connexions sur @var{extrémité}.  @var{extrémité} est interprété comme un nom de fichier d'un socket Unix-domain s'il commence par @code{/} (barre oblique).  Sinon, @var{extrémité} est interprété comme un nom de domaine ou d'hôte et un port sur lequel écouter.  Voici quelques exemples :"
 
 #. type: item
-#: doc/guix.texi:1525
+#: doc/guix.texi:1644
 #, no-wrap
 msgid "--listen=/gnu/var/daemon"
 msgstr "--listen=/gnu/var/daemon"
 
 #. type: table
-#: doc/guix.texi:1528
+#: doc/guix.texi:1647
 msgid "Listen for connections on the @file{/gnu/var/daemon} Unix-domain socket, creating it if needed."
 msgstr "Écouter les connexions sur le socket Unix-domain @file{/gnu/var/daemon} en le créant si besoin."
 
 #. type: item
-#: doc/guix.texi:1529
+#: doc/guix.texi:1648
 #, no-wrap
 msgid "--listen=localhost"
 msgstr "--listen=localhost"
 
 #. type: cindex
-#: doc/guix.texi:1530 doc/guix.texi:6349
+#: doc/guix.texi:1649 doc/guix.texi:8489
 #, no-wrap
 msgid "daemon, remote access"
 msgstr "démon, accès distant"
 
 #. type: cindex
-#: doc/guix.texi:1531 doc/guix.texi:6350
+#: doc/guix.texi:1650 doc/guix.texi:8490
 #, no-wrap
 msgid "remote access to the daemon"
 msgstr "accès distant au démon"
 
 #. type: cindex
-#: doc/guix.texi:1532 doc/guix.texi:6351
+#: doc/guix.texi:1651 doc/guix.texi:8491
 #, no-wrap
 msgid "daemon, cluster setup"
 msgstr "démon, paramètres de grappes"
 
 #. type: cindex
-#: doc/guix.texi:1533 doc/guix.texi:6352
+#: doc/guix.texi:1652 doc/guix.texi:8492
 #, no-wrap
 msgid "clusters, daemon setup"
 msgstr "grappes, paramètres du démon"
 
 #. type: table
-#: doc/guix.texi:1536
+#: doc/guix.texi:1655
 msgid "Listen for TCP connections on the network interface corresponding to @code{localhost}, on port 44146."
 msgstr "Écouter les connexions TCP sur l'interface réseau correspondant à @code{localhost} sur le port 44146."
 
 #. type: item
-#: doc/guix.texi:1537
+#: doc/guix.texi:1656
 #, no-wrap
 msgid "--listen=128.0.0.42:1234"
 msgstr "--listen=128.0.0.42:1234"
 
 #. type: table
-#: doc/guix.texi:1540
+#: doc/guix.texi:1659
 msgid "Listen for TCP connections on the network interface corresponding to @code{128.0.0.42}, on port 1234."
 msgstr "Écouter les connexions TCP sur l'interface réseau correspondant à @code{128.0.0.42} sur le port 1234."
 
 #. type: table
-#: doc/guix.texi:1547
-msgid "This option can be repeated multiple times, in which case @command{guix-daemon} accepts connections on all the specified endpoints.  Users can tell client commands what endpoint to connect to by setting the @code{GUIX_DAEMON_SOCKET} environment variable (@pxref{The Store, @code{GUIX_DAEMON_SOCKET}})."
-msgstr "Cette option peut être répétée plusieurs fois, auquel cas @command{guix-daemon} accepte des connexions sur toutes les extrémités spécifiées.  On peut indiquer aux commandes clientes à quoi se connecter en paramétrant la variable d'environnement @code{GUIX_DAEMON_SOCKET} (@pxref{The Store, @code{GUIX_DAEMON_SOCKET}})."
+#: doc/guix.texi:1666
+msgid "This option can be repeated multiple times, in which case @command{guix-daemon} accepts connections on all the specified endpoints.  Users can tell client commands what endpoint to connect to by setting the @env{GUIX_DAEMON_SOCKET} environment variable (@pxref{The Store, @env{GUIX_DAEMON_SOCKET}})."
+msgstr "Cette option peut être répétée plusieurs fois, auquel cas @command{guix-daemon} accepte des connexions sur tous les paramètres spécifiés.  On peut indiquer aux commandes clientes à quoi se connecter en paramétrant la variable d'environnement @env{GUIX_DAEMON_SOCKET} (@pxref{The Store, @code{GUIX_DAEMON_SOCKET}})."
 
 #. type: quotation
-#: doc/guix.texi:1554
-msgid "The daemon protocol is @emph{unauthenticated and unencrypted}.  Using @code{--listen=@var{host}} is suitable on local networks, such as clusters, where only trusted nodes may connect to the build daemon.  In other cases where remote access to the daemon is needed, we recommend using Unix-domain sockets along with SSH."
-msgstr "Le protocole du démon est @emph{non authentifié et non chiffré}.  Utiliser @code{--listen=@var{host}} est adapté sur des réseaux locaux, comme pour des grappes de serveurs, où seuls des nœuds de confiance peuvent se connecter au démon de construction.  Dans les autres cas où l'accès à distance au démon est requis, nous conseillons d'utiliser un socket Unix-domain avec SSH@."
+#: doc/guix.texi:1673
+msgid "The daemon protocol is @emph{unauthenticated and unencrypted}.  Using @option{--listen=@var{host}} is suitable on local networks, such as clusters, where only trusted nodes may connect to the build daemon.  In other cases where remote access to the daemon is needed, we recommend using Unix-domain sockets along with SSH."
+msgstr "Le protocole du démon est @emph{non authentifié et non chiffré}.  Utiliser @option{--listen=@var{host}} est adapté sur des réseaux locaux, comme pour des grappes de serveurs, où seuls des nœuds de confiance peuvent se connecter au démon de construction.  Dans les autres cas où l'accès à distance au démon est requis, nous conseillons d'utiliser un socket Unix-domain avec SSH."
 
 #. type: table
-#: doc/guix.texi:1559
-msgid "When @code{--listen} is omitted, @command{guix-daemon} listens for connections on the Unix-domain socket located at @file{@var{localstatedir}/guix/daemon-socket/socket}."
-msgstr "Lorsque @code{--listen} est omis, @command{guix-daemon} écoute les connexions sur le socket Unix-domain situé à @file{@var{localstatedir}/guix/daemon-socket/socket}."
+#: doc/guix.texi:1678
+msgid "When @option{--listen} is omitted, @command{guix-daemon} listens for connections on the Unix-domain socket located at @file{@var{localstatedir}/guix/daemon-socket/socket}."
+msgstr "Lorsque @option{--listen} est omis, @command{guix-daemon} écoute les connexions sur le socket Unix-domain situé à @file{@var{localstatedir}/guix/daemon-socket/socket}."
 
 #. type: Plain text
-#: doc/guix.texi:1569
+#: doc/guix.texi:1688
 msgid "When using Guix on top of GNU/Linux distribution other than Guix System---a so-called @dfn{foreign distro}---a few additional steps are needed to get everything in place.  Here are some of them."
 msgstr "Lorsque vous utilisez Guix par dessus une distribution GNU/Linux qui n'est pas Guix System — ce qu'on appelle une @dfn{distro externe} — quelques étapes supplémentaires sont requises pour que tout soit en place.  En voici certaines."
 
 #. type: anchor{#1}
-#: doc/guix.texi:1573
+#: doc/guix.texi:1692
 msgid "locales-and-locpath"
 msgstr "locales-and-locpath"
 
 #. type: cindex
-#: doc/guix.texi:1573
+#: doc/guix.texi:1692
 #, no-wrap
 msgid "locales, when not on Guix System"
 msgstr "régionalisation, en dehors de Guix System"
 
 #. type: vindex
-#: doc/guix.texi:1574 doc/guix.texi:11297
+#: doc/guix.texi:1693 doc/guix.texi:14207
 #, no-wrap
 msgid "LOCPATH"
 msgstr "LOCPATH"
 
 #. type: vindex
-#: doc/guix.texi:1575
+#: doc/guix.texi:1694
 #, no-wrap
 msgid "GUIX_LOCPATH"
 msgstr "GUIX_LOCPATH"
 
 #. type: Plain text
-#: doc/guix.texi:1580
-msgid "Packages installed @i{via} Guix will not use the locale data of the host system.  Instead, you must first install one of the locale packages available with Guix and then define the @code{GUIX_LOCPATH} environment variable:"
-msgstr "Les paquets installés @i{via} Guix n'utiliseront pas les données de régionalisation du système hôte.  À la place, vous devrez d'abord installer l'un des paquets linguistiques disponibles dans Guix puis définir la variable d'environnement @code{GUIX_LOCPATH} :"
+#: doc/guix.texi:1699
+msgid "Packages installed @i{via} Guix will not use the locale data of the host system.  Instead, you must first install one of the locale packages available with Guix and then define the @env{GUIX_LOCPATH} environment variable:"
+msgstr "Les paquets installés @i{via} Guix n'utiliseront pas les données de régionalisation du système hôte.  À la place, vous devrez d'abord installer l'un des paquets linguistiques disponibles dans Guix puis définir la variable d'environnement @env{GUIX_LOCPATH} :"
 
 #. type: example
-#: doc/guix.texi:1584
+#: doc/guix.texi:1703
 #, no-wrap
 msgid ""
 "$ guix install glibc-locales\n"
@@ -5094,645 +6134,700 @@ msgstr ""
 "$ export GUIX_LOCPATH=$HOME/.guix-profile/lib/locale\n"
 
 #. type: Plain text
-#: doc/guix.texi:1590
-msgid "Note that the @code{glibc-locales} package contains data for all the locales supported by the GNU@tie{}libc and weighs in at around 110@tie{}MiB.  Alternatively, the @code{glibc-utf8-locales} is smaller but limited to a few UTF-8 locales."
-msgstr "Remarquez que le paquet @code{glibc-locales} contient les données pour tous les environnement linguistiques supportés par la GNU@tie{}libc et pèse environ 110@tie{}Mo.  Autrement, les @code{glibc-utf8-locales} est plus petit mais limité à quelques environnements UTF-8."
+#: doc/guix.texi:1709
+msgid "Note that the @code{glibc-locales} package contains data for all the locales supported by the GNU@tie{}libc and weighs in at around 917@tie{}MiB.  Alternatively, the @code{glibc-utf8-locales} is smaller but limited to a few UTF-8 locales."
+msgstr "Remarquez que le paquet @code{glibc-locales} contient les données pour tous les environnement linguistiques supportés par la GNU@tie{}libc et pèse environ 917@tie{}Mo.  Autrement, les @code{glibc-utf8-locales} est plus petit mais limité à quelques environnements UTF-8."
 
 #. type: Plain text
-#: doc/guix.texi:1594
-msgid "The @code{GUIX_LOCPATH} variable plays a role similar to @code{LOCPATH} (@pxref{Locale Names, @code{LOCPATH},, libc, The GNU C Library Reference Manual}).  There are two important differences though:"
-msgstr "La variable @code{GUIX_LOCPATH} joue un rôle similaire à @code{LOCPATH} (@pxref{Locale Names, @code{LOCPATH},, libc, The GNU C Library Reference Manual}).  Il y a deux différences importantes cependant :"
+#: doc/guix.texi:1713
+msgid "The @env{GUIX_LOCPATH} variable plays a role similar to @env{LOCPATH} (@pxref{Locale Names, @env{LOCPATH},, libc, The GNU C Library Reference Manual}).  There are two important differences though:"
+msgstr "La variable @env{GUIX_LOCPATH} joue un rôle similaire à @env{LOCPATH} (@pxref{Locale Names, @code{LOCPATH},, libc, The GNU C Library Reference Manual}).  Il y a deux différences importantes cependant :"
 
 #. type: enumerate
-#: doc/guix.texi:1601
-msgid "@code{GUIX_LOCPATH} is honored only by the libc in Guix, and not by the libc provided by foreign distros.  Thus, using @code{GUIX_LOCPATH} allows you to make sure the programs of the foreign distro will not end up loading incompatible locale data."
-msgstr "@code{GUIX_LOCPATH} n'est compris que par la libc dans Guix et pas par la libc fournie par les distros externes.  Ainsi, utiliser @code{GUIX_LOCPATH} vous permet de vous assurer que les programmes de la distro externe ne chargeront pas de données linguistiques incompatibles."
+#: doc/guix.texi:1720
+msgid "@env{GUIX_LOCPATH} is honored only by the libc in Guix, and not by the libc provided by foreign distros.  Thus, using @env{GUIX_LOCPATH} allows you to make sure the programs of the foreign distro will not end up loading incompatible locale data."
+msgstr "@env{GUIX_LOCPATH} n'est compris que par la libc dans Guix et pas par la libc fournie par les distros externes.  Ainsi, utiliser @env{GUIX_LOCPATH} vous permet de vous assurer que les programmes de la distro externe ne chargeront pas de données linguistiques incompatibles."
 
 #. type: enumerate
-#: doc/guix.texi:1608
-msgid "libc suffixes each entry of @code{GUIX_LOCPATH} with @code{/X.Y}, where @code{X.Y} is the libc version---e.g., @code{2.22}.  This means that, should your Guix profile contain a mixture of programs linked against different libc version, each libc version will only try to load locale data in the right format."
-msgstr "La libc ajoute un suffixe @code{/X.Y} à chaque entrée de @code{GUIX_LOCPATH}, où @code{X.Y} est la version de la libc — p.@: ex.@: @code{2.22}.  Cela signifie que, si votre profile Guix contient un mélange de programmes liés avec des versions différentes de la libc, chaque version de la libc essaiera de charger les environnements linguistiques dans le bon format."
+#: doc/guix.texi:1727
+msgid "libc suffixes each entry of @env{GUIX_LOCPATH} with @code{/X.Y}, where @code{X.Y} is the libc version---e.g., @code{2.22}.  This means that, should your Guix profile contain a mixture of programs linked against different libc version, each libc version will only try to load locale data in the right format."
+msgstr "la libc ajoute un suffixe @code{/X.Y} à chaque entrée de @env{GUIX_LOCPATH}, où @code{X.Y} est la version de la libc — p.@: ex.@: @code{2.22}.  Cela signifie que, si votre profile Guix contient un mélange de programmes liés avec des versions différentes de la libc, chaque version de la libc essaiera de charger les environnements linguistiques dans le bon format."
 
 #. type: Plain text
-#: doc/guix.texi:1612
+#: doc/guix.texi:1731
 msgid "This is important because the locale data format used by different libc versions may be incompatible."
 msgstr "Cela est important car le format des données linguistiques utilisés par différentes version de la libc peuvent être incompatibles."
 
 #. type: cindex
-#: doc/guix.texi:1615
+#: doc/guix.texi:1734
 #, no-wrap
 msgid "name service switch, glibc"
 msgstr "name service switch, glibc"
 
 #. type: cindex
-#: doc/guix.texi:1616
+#: doc/guix.texi:1735
 #, no-wrap
 msgid "NSS (name service switch), glibc"
 msgstr "NSS (name service switch), glibc"
 
 #. type: cindex
-#: doc/guix.texi:1617
+#: doc/guix.texi:1736
 #, no-wrap
 msgid "nscd (name service caching daemon)"
 msgstr "nscd (name service caching daemon)"
 
 #. type: cindex
-#: doc/guix.texi:1618
+#: doc/guix.texi:1737
 #, no-wrap
 msgid "name service caching daemon (nscd)"
 msgstr "name service caching daemon (nscd)"
 
 #. type: Plain text
-#: doc/guix.texi:1625
+#: doc/guix.texi:1744
 msgid "When using Guix on a foreign distro, we @emph{strongly recommend} that the system run the GNU C library's @dfn{name service cache daemon}, @command{nscd}, which should be listening on the @file{/var/run/nscd/socket} socket.  Failing to do that, applications installed with Guix may fail to look up host names or user accounts, or may even crash.  The next paragraphs explain why."
 msgstr "Lorsque vous utilisez Guix sur une distro externe, nous @emph{recommandons fortement} que ce système fasse tourner le @dfn{démon de cache de service de noms} de la bibliothèque C de GNU, @command{nscd}, qui devrait écouter sur le socket @file{/var/run/nscd/socket}.  Sans cela, les applications installées avec Guix peuvent échouer à résoudre des noms d'hôtes ou de comptes, ou même planter.  Les paragraphes suivants expliquent pourquoi."
 
 #. type: file{#1}
-#: doc/guix.texi:1626
+#: doc/guix.texi:1745
 #, no-wrap
 msgid "nsswitch.conf"
 msgstr "nsswitch.conf"
 
 #. type: Plain text
-#: doc/guix.texi:1631
+#: doc/guix.texi:1750
 msgid "The GNU C library implements a @dfn{name service switch} (NSS), which is an extensible mechanism for ``name lookups'' in general: host name resolution, user accounts, and more (@pxref{Name Service Switch,,, libc, The GNU C Library Reference Manual})."
 msgstr "La bibliothèque C de GNU implémente un @dfn{name service switch} (NSS), qui est un mécanisme d'extension pour les « résolutions de noms » en général : résolution de nom d'hôte, de compte utilisateur·rice et plus (@pxref{Name Service Switch,,, libc, The GNU C Library Reference Manual})."
 
 #. type: cindex
-#: doc/guix.texi:1632
+#: doc/guix.texi:1751
 #, no-wrap
 msgid "Network information service (NIS)"
 msgstr "Network information service (NIS)"
 
 #. type: cindex
-#: doc/guix.texi:1633
+#: doc/guix.texi:1752
 #, no-wrap
 msgid "NIS (Network information service)"
 msgstr "NIS (Network information service)"
 
 #. type: Plain text
-#: doc/guix.texi:1642
+#: doc/guix.texi:1761
 msgid "Being extensible, the NSS supports @dfn{plugins}, which provide new name lookup implementations: for example, the @code{nss-mdns} plugin allow resolution of @code{.local} host names, the @code{nis} plugin allows user account lookup using the Network information service (NIS), and so on.  These extra ``lookup services'' are configured system-wide in @file{/etc/nsswitch.conf}, and all the programs running on the system honor those settings (@pxref{NSS Configuration File,,, libc, The GNU C Reference Manual})."
 msgstr "Comme il est extensible, NSS supporte des @dfn{greffons} qui fournissent une nouvelle implémentation de résolution de nom : par exemple le greffon @code{nss-mdns} permet la résolution de noms d'hôtes en @code{.local}, le greffon @code{nis} permet la résolution de comptes avec le Network Information Service (NIS), etc.  Ces « services de recherches » supplémentaires sont configurés au niveau du système dans @file{/etc/nsswitch.conf}, et tous les programmes qui tournent sur ce système honorent ces paramètres (@pxref{NSS Configuration File,,, libc, The GNU C Reference Manual})"
 
 #. type: Plain text
-#: doc/guix.texi:1652
+#: doc/guix.texi:1771
 msgid "When they perform a name lookup---for instance by calling the @code{getaddrinfo} function in C---applications first try to connect to the nscd; on success, nscd performs name lookups on their behalf.  If the nscd is not running, then they perform the name lookup by themselves, by loading the name lookup services into their own address space and running it.  These name lookup services---the @file{libnss_*.so} files---are @code{dlopen}'d, but they may come from the host system's C library, rather than from the C library the application is linked against (the C library coming from Guix)."
 msgstr "Lorsqu'ils essayent d'effectuer une résolution de nom — par exemple en appelant la fonction @code{getaddrinfo} en C — les applications essayent d'abord de se connecter au nscd ; en cas de réussite, nscd effectue la résolution de nom pour eux.  Si le nscd ne tourne pas, alors ils effectuent la résolution eux-mêmes, en changeant les service de résolution dans leur propre espace d'adressage et en le lançant.  Ce services de résolution de noms — les fichiers @file{libnns_*.so} — sont @code{dlopen}és mais ils peuvent provenir de la bibliothèque C du système, plutôt que de la bibliothèque C à laquelle l'application est liée (la bibliothèque C de Guix)."
 
 #. type: Plain text
-#: doc/guix.texi:1657
+#: doc/guix.texi:1776
 msgid "And this is where the problem is: if your application is linked against Guix's C library (say, glibc 2.24) and tries to load NSS plugins from another C library (say, @code{libnss_mdns.so} for glibc 2.22), it will likely crash or have its name lookups fail unexpectedly."
 msgstr "Et c'est là que se trouve le problème : si votre application est liée à la bibliothèque C de Guix (disons, glibc-2.24) et essaye de charger les greffons NSS d'une autre bibliothèque C (disons, @code{libnss_mdns.so} pour glibc-2.22), il est très probable qu'elle plante ou que sa résolution de nom échoue de manière inattendue."
 
 #. type: Plain text
-#: doc/guix.texi:1662
+#: doc/guix.texi:1781
 msgid "Running @command{nscd} on the system, among other advantages, eliminates this binary incompatibility problem because those @code{libnss_*.so} files are loaded in the @command{nscd} process, not in applications themselves."
 msgstr "Lancer @command{nscd} sur le système, entre autres avantages, élimine ce problème d'incompatibilité binaire car ces fichiers @code{libnss_*.so} sont chargés par le processus @command{nscd}, pas par l'application elle-même."
 
 #. type: subsection
-#: doc/guix.texi:1663
+#: doc/guix.texi:1782
 #, no-wrap
 msgid "X11 Fonts"
 msgstr "Polices X11"
 
 #. type: Plain text
-#: doc/guix.texi:1673
-msgid "The majority of graphical applications use Fontconfig to locate and load fonts and perform X11-client-side rendering.  The @code{fontconfig} package in Guix looks for fonts in @file{$HOME/.guix-profile} by default.  Thus, to allow graphical applications installed with Guix to display fonts, you have to install fonts with Guix as well.  Essential font packages include @code{gs-fonts}, @code{font-dejavu}, and @code{font-gnu-freefont-ttf}."
-msgstr "La majorité des applications graphiques utilisent fontconfig pour trouver et charger les police et effectuer le rendu côté client X11.  Le paquet @code{fontconfig} dans Guix cherche les polices dans @file{$HOME/.guix-profile} par défaut.  Ainsi, pour permettre aux applications graphiques installées avec Guix d'afficher des polices, vous devez aussi installer des polices avec Guix.  Les paquets de polices essentiels sont @code{gs-fonts}, @code{font-dejavu} et @code{font-gnu-freefont-ttf}."
+#: doc/guix.texi:1792
+msgid "The majority of graphical applications use Fontconfig to locate and load fonts and perform X11-client-side rendering.  The @code{fontconfig} package in Guix looks for fonts in @file{$HOME/.guix-profile} by default.  Thus, to allow graphical applications installed with Guix to display fonts, you have to install fonts with Guix as well.  Essential font packages include @code{gs-fonts}, @code{font-dejavu}, and @code{font-gnu-freefont}."
+msgstr "La majorité des applications graphiques utilisent fontconfig pour trouver et charger les polices et effectuer le rendu côté client X11.  Le paquet @code{fontconfig} dans Guix cherche les polices dans @file{$HOME/.guix-profile} par défaut.  Ainsi, pour permettre aux applications graphiques installées avec Guix d'afficher des polices, vous devez aussi installer des polices avec Guix.  Les paquets de polices essentiels sont @code{gs-fonts}, @code{font-dejavu} et @code{font-gnu-freefont-ttf}."
+
+#. type: code{#1}
+#: doc/guix.texi:1793
+#, no-wrap
+msgid "fc-cache"
+msgstr "fc-cache"
+
+#. type: cindex
+#: doc/guix.texi:1794
+#, no-wrap
+msgid "font cache"
+msgstr "cache de polices"
 
 #. type: Plain text
-#: doc/guix.texi:1680
+#: doc/guix.texi:1798
+msgid "Once you have installed or removed fonts, or when you notice an application that does not find fonts, you may need to install Fontconfig and to force an update of its font cache by running:"
+msgstr "Lorsque vous installez ou supprimez des polices, ou lorsque vous remarquez qu'une application ne trouve pas les polices, vous pouvez avoir besoin d'installer Fontconfig et de forcer un rafraîchissement de son cache de police avec :"
+
+#. type: example
+#: doc/guix.texi:1802
+#, no-wrap
+msgid ""
+"guix install fontconfig\n"
+"fc-cache -rv\n"
+msgstr ""
+"guix install fontconfig\n"
+"fc-cache -rv\n"
+
+#. type: Plain text
+#: doc/guix.texi:1810
 msgid "To display text written in Chinese languages, Japanese, or Korean in graphical applications, consider installing @code{font-adobe-source-han-sans} or @code{font-wqy-zenhei}.  The former has multiple outputs, one per language family (@pxref{Packages with Multiple Outputs}).  For instance, the following command installs fonts for Chinese languages:"
 msgstr "Pour afficher des textes écrits en chinois, en japonais ou en coréen dans les applications graphiques, installez @code{font-adobe-source-han-sans} ou @code{font-wqy-zenhei}.  Le premier a plusieurs sorties, une par famille de langue (@pxref{Packages with Multiple Outputs}).  Par exemple, la commande suivante installe les polices pour le chinois :"
 
 #. type: example
-#: doc/guix.texi:1683
+#: doc/guix.texi:1813
 #, no-wrap
 msgid "guix install font-adobe-source-han-sans:cn\n"
 msgstr "guix install font-adobe-source-han-sans:cn\n"
 
 #. type: code{#1}
-#: doc/guix.texi:1685
+#: doc/guix.texi:1815
 #, no-wrap
 msgid "xterm"
 msgstr "xterm"
 
 #. type: Plain text
-#: doc/guix.texi:1689
+#: doc/guix.texi:1819
 msgid "Older programs such as @command{xterm} do not use Fontconfig and instead rely on server-side font rendering.  Such programs require to specify a full name of a font using XLFD (X Logical Font Description), like this:"
 msgstr "Les vieux programmes comme @command{xterm} n'utilisent pas fontconfig et s'appuient sur le rendu du côté du serveur.  Ces programmes ont besoin de spécifier le nom complet de la police en utilisant XLFD (X Logical Font Description), comme ceci :"
 
 #. type: example
-#: doc/guix.texi:1692
+#: doc/guix.texi:1822
 #, no-wrap
 msgid "-*-dejavu sans-medium-r-normal-*-*-100-*-*-*-*-*-1\n"
 msgstr "-*-dejavu sans-medium-r-normal-*-*-100-*-*-*-*-*-1\n"
 
 #. type: Plain text
-#: doc/guix.texi:1696
+#: doc/guix.texi:1826
 msgid "To be able to use such full names for the TrueType fonts installed in your Guix profile, you need to extend the font path of the X server:"
 msgstr "Pour pouvoir utiliser ces noms complets avec les polices TrueType installées dans votre profil Guix, vous devez étendre le chemin des polices du serveur X :"
 
 #. type: example
-#: doc/guix.texi:1701
+#: doc/guix.texi:1831
 #, no-wrap
 msgid "xset +fp $(dirname $(readlink -f ~/.guix-profile/share/fonts/truetype/fonts.dir))\n"
 msgstr "xset +fp $(dirname $(readlink -f ~/.guix-profile/share/fonts/truetype/fonts.dir))\n"
 
 #. type: code{#1}
-#: doc/guix.texi:1703
+#: doc/guix.texi:1833
 #, no-wrap
 msgid "xlsfonts"
 msgstr "xlsfonts"
 
 #. type: Plain text
-#: doc/guix.texi:1706
+#: doc/guix.texi:1836
 msgid "After that, you can run @code{xlsfonts} (from @code{xlsfonts} package)  to make sure your TrueType fonts are listed there."
 msgstr "Ensuite, vous pouvez lancer @code{xlsfonts} (du paquet @code{xlsfonts}) pour vous assurer que vos polices TrueType y sont listées."
 
 #. type: code{#1}
-#: doc/guix.texi:1707
-#, no-wrap
-msgid "fc-cache"
-msgstr "fc-cache"
-
-#. type: cindex
-#: doc/guix.texi:1708
-#, no-wrap
-msgid "font cache"
-msgstr "cache de polices"
-
-#. type: Plain text
-#: doc/guix.texi:1714
-msgid "After installing fonts you may have to refresh the font cache to use them in applications.  The same applies when applications installed via Guix do not seem to find fonts.  To force rebuilding of the font cache run @code{fc-cache -f}.  The @code{fc-cache} command is provided by the @code{fontconfig} package."
-msgstr "Après l'installation des polices vous devrez peut-être rafraîchir le cache des polices pour pouvoir les utiliser dans les applications.  Ça s'applique aussi lorsque les applications installées avec Guix n'ont pas l'air de trouver les polices.  Pour forcer la reconstruction du cache de polices lancez @code{fc-cache -f}.  La commande @code{fc-cache} est fournie par le paquet @code{fontconfig}."
-
-#. type: code{#1}
-#: doc/guix.texi:1717 doc/guix.texi:23674
+#: doc/guix.texi:1840 doc/guix.texi:29968
 #, no-wrap
 msgid "nss-certs"
 msgstr "nss-certs"
 
 #. type: Plain text
-#: doc/guix.texi:1720
+#: doc/guix.texi:1843
 msgid "The @code{nss-certs} package provides X.509 certificates, which allow programs to authenticate Web servers accessed over HTTPS."
 msgstr "Le paquet @code{nss-certs} fournit les certificats X.509 qui permettent aux programmes d'authentifier les serveurs web par HTTPS@."
 
 #. type: Plain text
-#: doc/guix.texi:1725
+#: doc/guix.texi:1848
 msgid "When using Guix on a foreign distro, you can install this package and define the relevant environment variables so that packages know where to look for certificates.  @xref{X.509 Certificates}, for detailed information."
 msgstr "Lorsque vous utilisez Guix sur une distribution externe, vous pouvez installer ce paquet et définir les variables d'environnement adéquates pour que les paquets sachent où trouver les certificats.  @xref{X.509 Certificates}, pour des informations détaillées."
 
 #. type: subsection
-#: doc/guix.texi:1726
+#: doc/guix.texi:1849
 #, no-wrap
 msgid "Emacs Packages"
 msgstr "Paquets emacs"
 
 #. type: code{#1}
-#: doc/guix.texi:1728
+#: doc/guix.texi:1851
 #, no-wrap
 msgid "emacs"
 msgstr "emacs"
 
 #. type: Plain text
-#: doc/guix.texi:1739
-msgid "When you install Emacs packages with Guix, the elisp files may be placed either in @file{$HOME/.guix-profile/share/emacs/site-lisp/} or in sub-directories of @file{$HOME/.guix-profile/share/emacs/site-lisp/guix.d/}.  The latter directory exists because potentially there may exist thousands of Emacs packages and storing all their files in a single directory may not be reliable (because of name conflicts).  So we think using a separate directory for each package is a good idea.  It is very similar to how the Emacs package system organizes the file structure (@pxref{Package Files,,, emacs, The GNU Emacs Manual})."
-msgstr "Lorsque vous installez les paquets Emacs avec Guix, les fichiers elisp peuvent être placés soit dans @file{$HOME/.guix-profile/share/emacs/site-lisp/} soit dans des sous-répertoires de @file{$HOME/.guix-profile/share/emacs/site-lisp/guix.d/}.  Ce dernier existe car il existe potentiellement des milliers de paquets Emacs et stocker leurs fichiers dans un seul répertoire peut ne pas être fiable (à cause de conflits de noms).  Donc on pense qu'utiliser un répertoire séparé est une bonne idée.  C'est très similaire à la manière dont le système de paquet d'Emacs organise la structure de fichiers (@pxref{Package Files,,, emacs, The GNU Emacs Manual})."
+#: doc/guix.texi:1857
+msgid "When you install Emacs packages with Guix, the Elisp files are placed under the @file{share/emacs/site-lisp/} directory of the profile in which they are installed.  The Elisp libraries are made available to Emacs through the @env{EMACSLOADPATH} environment variable, which is set when installing Emacs itself."
+msgstr "Quand vous installez des paquets Emacs avec Guix, les fichiers Elips sont placés dans le répertoire @file{share/emacs/site-lisp/} du profil dans lequel ils sont installés.  Les bibliothèques Elisp sont rendues disponibles dans Emacs avec la variable d'environnement @env{EMACSLOADPATH}, qui est initialisée à l'installation d'Emacs lui-même."
 
 #. type: Plain text
-#: doc/guix.texi:1745
-msgid "By default, Emacs (installed with Guix) ``knows'' where these packages are placed, so you do not need to perform any configuration.  If, for some reason, you want to avoid auto-loading Emacs packages installed with Guix, you can do so by running Emacs with @code{--no-site-file} option (@pxref{Init File,,, emacs, The GNU Emacs Manual})."
-msgstr "Par défaut, Emacs (installé avec Guix) « sait » où ces paquets ce trouvent, donc vous n'avez pas besoin de le configurer.  Si, pour quelque raison que ce soit, vous souhaitez éviter de charger automatiquement les paquets Emacs installés avec Guix, vous pouvez le faire en lançant Emacs avec l'option @code{--no-site-file} (@pxref{Init File,,, emacs, The GNU Emacs Manual})."
+#: doc/guix.texi:1864
+msgid "Additionally, autoload definitions are automatically evaluated at the initialization of Emacs, by the Guix-specific @code{guix-emacs-autoload-packages} procedure.  If, for some reason, you want to avoid auto-loading the Emacs packages installed with Guix, you can do so by running Emacs with the @option{--no-site-file} option (@pxref{Init File,,, emacs, The GNU Emacs Manual})."
+msgstr "En plus, des définitions autoload sont automatiquement évaluées au démarrage d'Emacs, par la procédure @code{guix-emacs-autoload-packages} de Guix. Si, pour quelque raison que ce soit, vous souhaitez éviter de charger automatiquement les paquets Emacs installés avec Guix, vous pouvez le faire en lançant Emacs avec l'option @option{--no-site-file} (@pxref{Init File,,, emacs, The GNU Emacs Manual})."
 
-#. type: subsection
-#: doc/guix.texi:1746
+#. type: cindex
+#: doc/guix.texi:1869
 #, no-wrap
-msgid "The GCC toolchain"
-msgstr "La chaîne d'outils GCC"
+msgid "Upgrading Guix, on a foreign distro"
+msgstr "Mise à niveau de Guix, sur une distro externe"
+
+#. type: Plain text
+#: doc/guix.texi:1872
+msgid "To upgrade Guix, run:"
+msgstr "Pour mettre Guix à niveau, lancez :"
+
+#. type: example
+#: doc/guix.texi:1875 doc/guix.texi:2745
+#, no-wrap
+msgid "guix pull\n"
+msgstr "guix pull\n"
+
+#. type: Plain text
+#: doc/guix.texi:1878
+msgid "@xref{Invoking guix pull}, for more information."
+msgstr "@xref{Invoking guix pull}, pour plus d'informations."
 
 #. type: cindex
-#: doc/guix.texi:1748
+#: doc/guix.texi:1879
 #, no-wrap
-msgid "GCC"
-msgstr "GCC"
+msgid "upgrading Guix for the root user, on a foreign distro"
+msgstr "mise à niveau de Guix pour l'utilisateur root, sur une distro externe"
 
 #. type: cindex
-#: doc/guix.texi:1749
+#: doc/guix.texi:1880
 #, no-wrap
-msgid "ld-wrapper"
-msgstr "ld-wrapper"
+msgid "upgrading the Guix daemon, on a foreign distro"
+msgstr "mise à niveau du démon Guix, sur une distro externe"
+
+#. type: cindex
+#: doc/guix.texi:1881
+#, no-wrap
+msgid "@command{guix pull} for the root user, on a foreign distro"
+msgstr "@command{guix pull} pour l'utilisateur·rice root, sur une distribution externe"
 
 #. type: Plain text
-#: doc/guix.texi:1758
-msgid "Guix offers individual compiler packages such as @code{gcc} but if you are in need of a complete toolchain for compiling and linking source code what you really want is the @code{gcc-toolchain} package.  This package provides a complete GCC toolchain for C/C++ development, including GCC itself, the GNU C Library (headers and binaries, plus debugging symbols in the @code{debug} output), Binutils, and a linker wrapper."
-msgstr "Guix offre des paquets de compilateurs individuels comme @code{gcc} mais si vous avez besoin d'une chaîne de compilation complète pour compiler et lier du code source, vous avez en fait besoin du paquet @code{gcc-toolchain}.  Ce paquet fournit une chaîne d'outils GCC pour le développement C/C++, dont GCC lui-même, la bibliothèque C de GNU (les en-têtes et les binaires, plus les symboles de débogage dans la sortie @code{debug}), Binutils et une enveloppe pour l'éditeur de liens."
+#: doc/guix.texi:1884
+msgid "On a foreign distro, you can upgrade the build daemon by running:"
+msgstr "Sur une distribution externe, vous pouvez mettre à jour le démon de construction en lançant :"
+
+#. type: example
+#: doc/guix.texi:1887
+#, no-wrap
+msgid "sudo -i guix pull\n"
+msgstr "sudo -i guix pull\n"
 
 #. type: Plain text
-#: doc/guix.texi:1764
-msgid "The wrapper's purpose is to inspect the @code{-L} and @code{-l} switches passed to the linker, add corresponding @code{-rpath} arguments, and invoke the actual linker with this new set of arguments.  You can instruct the wrapper to refuse to link against libraries not in the store by setting the @code{GUIX_LD_WRAPPER_ALLOW_IMPURITIES} environment variable to @code{no}."
-msgstr "Le rôle de l'enveloppe est d'inspecter les paramètres @code{-L} et @code{-l} passés à l'éditeur de liens, d'ajouter des arguments @code{-rpath} correspondants et d'invoquer le véritable éditeur de liens avec ce nouvel ensemble d'arguments.  Vous pouvez dire à l'enveloppe de refuser de lier les programmes à des bibliothèques en dehors du dépôt en paramétrant la variable d'environnement @code{GUIX_LD_WRAPPER_ALLOW_IMPURITIES} sur @code{no}."
+#: doc/guix.texi:1892
+msgid "followed by (assuming your distro uses the systemd service management tool):"
+msgstr "suivi de (dans le cas où votre distribution utilise l'outil de gestion de services Systemd) :"
+
+#. type: example
+#: doc/guix.texi:1895
+#, no-wrap
+msgid "systemctl restart guix-daemon.service\n"
+msgstr "systemctl restart guix-daemon.service\n"
+
+#. type: Plain text
+#: doc/guix.texi:1899
+msgid "On Guix System, upgrading the daemon is achieved by reconfiguring the system (@pxref{Invoking guix system, @code{guix system reconfigure}})."
+msgstr "Sur Guix System, la mise à jour du démon est effectuée par la reconfiguration du système (@pxref{Invoking guix system, @code{guix system reconfigure}})."
 
 #. type: cindex
-#: doc/guix.texi:1771
+#: doc/guix.texi:1906
 #, no-wrap
 msgid "installing Guix System"
 msgstr "installer Guix System"
 
 #. type: cindex
-#: doc/guix.texi:1772
+#: doc/guix.texi:1907
 #, no-wrap
 msgid "Guix System, installation"
 msgstr "Guix System, installation"
 
 #. type: Plain text
-#: doc/guix.texi:1777
+#: doc/guix.texi:1912
 msgid "This section explains how to install Guix System on a machine.  Guix, as a package manager, can also be installed on top of a running GNU/Linux system, @pxref{Installation}."
 msgstr "Cette section explique comment installer Guix System sur une machine.  Guix, en tant que gestionnaire de paquets, peut aussi être installé sur un système GNU/Linux déjà installé, @pxref{Installation}."
 
 #. type: quotation
-#: doc/guix.texi:1786
+#: doc/guix.texi:1921
 msgid "You are reading this documentation with an Info reader.  For details on how to use it, hit the @key{RET} key (``return'' or ``enter'') on the link that follows: @pxref{Top, Info reader,, info-stnd, Stand-alone GNU Info}.  Hit @kbd{l} afterwards to come back here."
 msgstr "Vous lisez cette documentation avec un lecteur Info.  Pour des détails sur son utilisation, appuyez sur la touche @key{ENTRÉE} (« Entrée » ou « à la ligne ») sur le lien suivant : @pxref{Top, Info reader,, info-stnd, Stand-alone GNU Info}.  Appuyez ensuite sur @kbd{l} pour revenir ici."
 
 #. type: quotation
-#: doc/guix.texi:1789
-msgid "Alternately, run @command{info info} in another tty to keep the manual available."
-msgstr "Autrement, lancez @command{info info} dans un autre tty pour garder ce manuel ouvert."
+#: doc/guix.texi:1924
+msgid "Alternatively, run @command{info info} in another tty to keep the manual available."
+msgstr "Vous pouvez aussi exécuter @command{info info} dans un autre tty pour garder le manuel disponible."
 
 #. type: Plain text
-#: doc/guix.texi:1810
+#: doc/guix.texi:1945
 msgid "We consider Guix System to be ready for a wide range of ``desktop'' and server use cases.  The reliability guarantees it provides---transactional upgrades and rollbacks, reproducibility---make it a solid foundation."
 msgstr "Nous considérons Guix System comme prêt pour une grande variété de cas d'utilisation pour le « bureau » et le serveur.  Les garantis de fiabilité qu'il fournit — les mises à jour transactionnelles, les retours en arrières et la reproductibilité — en font une solide fondation."
 
 #. type: Plain text
-#: doc/guix.texi:1813
+#: doc/guix.texi:1948
 msgid "Nevertheless, before you proceed with the installation, be aware of the following noteworthy limitations applicable to version @value{VERSION}:"
 msgstr "Néanmoins, avant de procéder à l'installation, soyez conscient de ces limitations les plus importantes qui s'appliquent à la version @value{VERSION} :"
 
 #. type: itemize
-#: doc/guix.texi:1817
+#: doc/guix.texi:1952
 msgid "Support for the Logical Volume Manager (LVM) is missing."
 msgstr "LVM (gestionnaire de volumes logiques) n'est pas supporté."
 
 #. type: itemize
-#: doc/guix.texi:1821
+#: doc/guix.texi:1956
 msgid "More and more system services are provided (@pxref{Services}), but some may be missing."
 msgstr "De plus en plus de services systèmes sont fournis (@pxref{Services}) mais certains manquent toujours cruellement."
 
 #. type: itemize
-#: doc/guix.texi:1826
+#: doc/guix.texi:1961
 msgid "GNOME, Xfce, LXDE, and Enlightenment are available (@pxref{Desktop Services}), as well as a number of X11 window managers.  However, KDE is currently missing."
 msgstr "GNOME, Xfce, LXDE et Enlightenment sont disponibles (@pxref{Desktop Services}), ainsi qu'un certain nombre de gestionnaires de fenêtres X11.  Cependant, il manque actuellement KDE."
 
 #. type: Plain text
-#: doc/guix.texi:1831
+#: doc/guix.texi:1966
 msgid "More than a disclaimer, this is an invitation to report issues (and success stories!), and to join us in improving it.  @xref{Contributing}, for more info."
 msgstr "Plus qu'un avertissement, c'est une invitation à rapporter les problèmes (et vos succès !) et à nous rejoindre pour améliorer la distribution.  @xref{Contributing}, pour plus d'info."
 
 #. type: cindex
-#: doc/guix.texi:1836
+#: doc/guix.texi:1971
 #, no-wrap
 msgid "hardware support on Guix System"
 msgstr "prise en charge du matériel sur Guix System"
 
 #. type: Plain text
-#: doc/guix.texi:1845
+#: doc/guix.texi:1980
 msgid "GNU@tie{}Guix focuses on respecting the user's computing freedom.  It builds around the kernel Linux-libre, which means that only hardware for which free software drivers and firmware exist is supported.  Nowadays, a wide range of off-the-shelf hardware is supported on GNU/Linux-libre---from keyboards to graphics cards to scanners and Ethernet controllers.  Unfortunately, there are still areas where hardware vendors deny users control over their own computing, and such hardware is not supported on Guix System."
 msgstr "GNU@tie{}Guix se concentre sur le respect des libertés de ses utilisateurs et utilisatrices.  Il est construit autour du noyau Linux-libre, ce qui signifie que seuls les matériels pour lesquels des pilotes logiciels et des microgiciels libres sont disponibles sont pris en charge.  De nos jours, une grande gamme de matériel qu'on peut acheter est prise en charge par GNU/Linux-libre — des claviers aux cartes graphiques en passant par les scanners et les contrôleurs Ethernet.  Malheureusement, il reste des produits dont les fabricants refusent de laisser le contrôle aux utilisateur·rice·s sur leur propre utilisation de l'ordinateur, et ces matériels ne sont pas pris en charge par Guix System."
 
 #. type: cindex
-#: doc/guix.texi:1846
+#: doc/guix.texi:1981
 #, no-wrap
 msgid "WiFi, hardware support"
 msgstr "WiFi, support matériel"
 
 #. type: Plain text
-#: doc/guix.texi:1855
+#: doc/guix.texi:1990
 msgid "One of the main areas where free drivers or firmware are lacking is WiFi devices.  WiFi devices known to work include those using Atheros chips (AR9271 and AR7010), which corresponds to the @code{ath9k} Linux-libre driver, and those using Broadcom/AirForce chips (BCM43xx with Wireless-Core Revision 5), which corresponds to the @code{b43-open} Linux-libre driver.  Free firmware exists for both and is available out-of-the-box on Guix System, as part of @code{%base-firmware} (@pxref{operating-system Reference, @code{firmware}})."
 msgstr "L'un des types de matériels où les pilotes ou les microgiciels sont le moins disponibles sont les appareils WiFi.  Les appareils WiFi connus pour fonctionner sont ceux qui utilisent des puces Atheros (AR9271 et AR7010) qui correspondent au pilote @code{ath9k} de Linux-libre, et ceux qui utilisent des puces Broadcom/AirForce (BCM43xx avec la révision Wireless-Core 5), qui correspondent au pilote @code{b43-open} de Linux-libre.  Des microgiciels libres existent pour les deux et sont disponibles directement sur Guix System, dans @var{%base-firmware} (@pxref{operating-system Reference, @code{firmware}})."
 
 #. type: cindex
-#: doc/guix.texi:1856
+#: doc/guix.texi:1991
 #, no-wrap
 msgid "RYF, Respects Your Freedom"
 msgstr "RYF, Respects Your Freedom"
 
 #. type: Plain text
-#: doc/guix.texi:1862
+#: doc/guix.texi:1997
 msgid "The @uref{https://www.fsf.org/, Free Software Foundation} runs @uref{https://www.fsf.org/ryf, @dfn{Respects Your Freedom}} (RYF), a certification program for hardware products that respect your freedom and your privacy and ensure that you have control over your device.  We encourage you to check the list of RYF-certified devices."
 msgstr "La @uref{https://www.fsf.org/, Free Software Foundation} a un programme de certification nommé @uref{https://www.fsf.org/ryf, @dfn{Respects Your Freedom}} (RYF), pour les produits matériels qui respectent votre liberté et votre vie privée en s'assurant que vous avez le contrôle sur l'appareil.  Nous vous encourageons à vérifier la liste des appareils certifiés par RYF."
 
 #. type: Plain text
-#: doc/guix.texi:1866
+#: doc/guix.texi:2001
 msgid "Another useful resource is the @uref{https://www.h-node.org/, H-Node} web site.  It contains a catalog of hardware devices with information about their support in GNU/Linux."
 msgstr "Une autre ressource utile est le site web @uref{https://www.h-node.org/, H-Node}.  Il contient un catalogue d'appareils avec des informations sur leur support dans GNU/Linux."
 
 #. type: Plain text
-#: doc/guix.texi:1875
-msgid "An ISO-9660 installation image that can be written to a USB stick or burnt to a DVD can be downloaded from @indicateurl{@value{BASE-URL}/guix-system-install-@value{VERSION}.@var{system}.iso.xz}, where @var{system} is one of:"
-msgstr "Vous pouvez télécharger une image d'installation ISO-9660 depuis @indicateurl{https://@value{BASE-URL}/guix-system-install-@value{VERSION}.@var{système}.iso.xz} et vous pouvez l'écrire sur une clef USB ou la graver sur un DVD, où @var{système} est l'une de ces valeurs :"
+#: doc/guix.texi:2010
+msgid "An ISO-9660 installation image that can be written to a USB stick or burnt to a DVD can be downloaded from @indicateurl{@value{BASE-URL}/guix-system-install-@value{VERSION}.x86_64-linux.iso.xz}, where you can replace @code{x86_64-linux} with one of:"
+msgstr "Une image d'installation ISO-9660 qui peut être écrite sur une clé USB ou être gravée sur un DVD est téléchargeable à partir de @indicateurl{@value{BASE-URL}/guix-system-install-@value{VERSION}.x86_64-linux.iso.xz}, où vous pouvez remplacer @code{x86_64-linux} par l'un des éléments suivants :"
 
 #. type: table
-#: doc/guix.texi:1879
+#: doc/guix.texi:2014
 msgid "for a GNU/Linux system on Intel/AMD-compatible 64-bit CPUs;"
 msgstr "pour un système GNU/Linux sur un CPU compatible Intel/AMD 64-bits ;"
 
 #. type: table
-#: doc/guix.texi:1882
+#: doc/guix.texi:2017
 msgid "for a 32-bit GNU/Linux system on Intel-compatible CPUs."
-msgstr "pour un système GNU/Linux sur un CPU compatible Intel 32-bits ;"
+msgstr "pour un système GNU/Linux sur un CPU compatible Intel 32-bits."
 
 #. type: Plain text
-#: doc/guix.texi:1887
+#: doc/guix.texi:2022
 msgid "Make sure to download the associated @file{.sig} file and to verify the authenticity of the image against it, along these lines:"
 msgstr "Assurez-vous de télécharger les fichiers @file{.sig} associés et de vérifier l'authenticité de l'image avec, de cette manière :"
 
 #. type: example
-#: doc/guix.texi:1891
+#: doc/guix.texi:2026
 #, no-wrap
 msgid ""
-"$ wget @value{BASE-URL}/guix-system-install-@value{VERSION}.@var{system}.iso.xz.sig\n"
-"$ gpg --verify guix-system-install-@value{VERSION}.@var{system}.iso.xz.sig\n"
+"$ wget @value{BASE-URL}/guix-system-install-@value{VERSION}.x86_64-linux.iso.xz.sig\n"
+"$ gpg --verify guix-system-install-@value{VERSION}.x86_64-linux.iso.xz.sig\n"
 msgstr ""
-"$ wget @value{BASE-URL}/guix-system-install-@value{VERSION}.@var{system}.iso.xz.sig\n"
-"$ gpg --verify guix-system-install-@value{VERSION}.@var{system}.iso.xz.sig\n"
+"$ wget @value{BASE-URL}/guix-system-install-@value{VERSION}.x86_64-linux.iso.xz.sig\n"
+"$ gpg --verify guix-system-install-@value{VERSION}.x86_64-linux.iso.xz.sig\n"
 
 #. type: Plain text
-#: doc/guix.texi:1907
+#: doc/guix.texi:2046
 msgid "This image contains the tools necessary for an installation.  It is meant to be copied @emph{as is} to a large-enough USB stick or DVD."
 msgstr "Cette image contient les outils nécessaires à l'installation.  Elle est faite pour être copiée @emph{telle quelle} sur une clef USB assez grosse ou un DVD."
 
 #. type: unnumberedsubsec
-#: doc/guix.texi:1908
+#: doc/guix.texi:2047
 #, no-wrap
 msgid "Copying to a USB Stick"
 msgstr "Copie sur une clef USB"
 
 #. type: Plain text
-#: doc/guix.texi:1911
+#: doc/guix.texi:2050
 msgid "To copy the image to a USB stick, follow these steps:"
 msgstr "Pour copier l'image sur une clef USB, suivez ces étapes :"
 
 #. type: enumerate
-#: doc/guix.texi:1915 doc/guix.texi:1940
+#: doc/guix.texi:2054 doc/guix.texi:2079
 msgid "Decompress the image using the @command{xz} command:"
 msgstr "Décompressez l'image avec la commande @command{xz} :"
 
 #. type: example
-#: doc/guix.texi:1918 doc/guix.texi:1943
+#: doc/guix.texi:2057 doc/guix.texi:2082
 #, no-wrap
-msgid "xz -d guix-system-install-@value{VERSION}.@var{system}.iso.xz\n"
-msgstr "xz -d guix-system-install-@value{VERSION}.@var{système}.iso.xz\n"
+msgid "xz -d guix-system-install-@value{VERSION}.x86_64-linux.iso.xz\n"
+msgstr "xz -d guix-system-install-@value{VERSION}.x86_64-linux.iso.xz\n"
 
 #. type: enumerate
-#: doc/guix.texi:1924
+#: doc/guix.texi:2063
 msgid "Insert a USB stick of 1@tie{}GiB or more into your machine, and determine its device name.  Assuming that the USB stick is known as @file{/dev/sdX}, copy the image with:"
 msgstr "Insérez la clef USB de 1@tie{}Gio ou plus dans votre machine et déterminez son nom d'appareil.  En supposant que la clef usb est connue sous le nom de @file{/dev/sdX}, copiez l'image avec :"
 
 #. type: example
-#: doc/guix.texi:1928
+#: doc/guix.texi:2067
 #, no-wrap
 msgid ""
-"dd if=guix-system-install-@value{VERSION}.@var{system}.iso of=/dev/sdX\n"
+"dd if=guix-system-install-@value{VERSION}.x86_64-linux.iso of=/dev/sdX status=progress\n"
 "sync\n"
 msgstr ""
-"dd if=guix-system-install-@value{VERSION}.@var{système}.iso of=/dev/sdX\n"
+"dd if=guix-system-install-@value{VERSION}.x86_64-linux.iso of=/dev/sdX status=progress\n"
 "sync\n"
 
 #. type: enumerate
-#: doc/guix.texi:1931
+#: doc/guix.texi:2070
 msgid "Access to @file{/dev/sdX} usually requires root privileges."
 msgstr "Accéder à @file{/dev/sdX} requiert généralement les privilèges d'administration."
 
 #. type: unnumberedsubsec
-#: doc/guix.texi:1933
+#: doc/guix.texi:2072
 #, no-wrap
 msgid "Burning on a DVD"
 msgstr "Graver sur un DVD"
 
 #. type: Plain text
-#: doc/guix.texi:1936
+#: doc/guix.texi:2075
 msgid "To copy the image to a DVD, follow these steps:"
 msgstr "Pour copier l'image sur un DVD, suivez ces étapes :"
 
 #. type: enumerate
-#: doc/guix.texi:1949
+#: doc/guix.texi:2088
 msgid "Insert a blank DVD into your machine, and determine its device name.  Assuming that the DVD drive is known as @file{/dev/srX}, copy the image with:"
 msgstr "Insérez un DVD vierge dans votre machine et déterminez son nom d'appareil.  En supposant que le DVD soit connu sont le nom de @file{/dev/srX}, copiez l'image avec :"
 
 #. type: example
-#: doc/guix.texi:1952
+#: doc/guix.texi:2091
 #, no-wrap
-msgid "growisofs -dvd-compat -Z /dev/srX=guix-system-install-@value{VERSION}.@var{system}.iso\n"
-msgstr "growisofs -dvd-compat -Z /dev/srX=guix-system-install-@value{VERSION}.@var{système}.iso\n"
+msgid "growisofs -dvd-compat -Z /dev/srX=guix-system-install-@value{VERSION}.x86_64-linux.iso\n"
+msgstr "growisofs -dvd-compat -Z /dev/srX=guix-system-install-@value{VERSION}.x86_64-linux.iso\n"
 
 #. type: enumerate
-#: doc/guix.texi:1955
+#: doc/guix.texi:2094
 msgid "Access to @file{/dev/srX} usually requires root privileges."
 msgstr "Accéder à @file{/dev/srX} requiert généralement les privilèges root."
 
 #. type: unnumberedsubsec
-#: doc/guix.texi:1957
+#: doc/guix.texi:2096
 #, no-wrap
 msgid "Booting"
 msgstr "Démarrage"
 
 #. type: Plain text
-#: doc/guix.texi:1962
-msgid "Once this is done, you should be able to reboot the system and boot from the USB stick or DVD.  The latter usually requires you to get in the BIOS or UEFI boot menu, where you can choose to boot from the USB stick."
-msgstr "Une fois que c'est fait, vous devriez pouvoir redémarrer le système et démarrer depuis la clef USB ou le DVD.  Pour cela, vous devrez généralement entrer dans le menu de démarrage BIOS ou UEFI, où vous pourrez choisir de démarrer sur la clef USB."
+#: doc/guix.texi:2103
+msgid "Once this is done, you should be able to reboot the system and boot from the USB stick or DVD.  The latter usually requires you to get in the BIOS or UEFI boot menu, where you can choose to boot from the USB stick.  In order to boot from Libreboot, switch to the command mode by pressing the @kbd{c} key and type @command{search_grub usb}."
+msgstr "Une fois que c'est fait, vous devriez pouvoir redémarrer le système et démarrer depuis la clef USB ou le DVD.  Pour cela, vous devrez généralement entrer dans le menu de démarrage BIOS ou UEFI, où vous pourrez choisir de démarrer sur la clef USB.  Pour démarrer depuis Libreboot, passez en mode de commande en appuyant sur la touche @kbd{c} et en tapant @command{search grub usb}."
 
 #. type: Plain text
-#: doc/guix.texi:1965
+#: doc/guix.texi:2106
 msgid "@xref{Installing Guix in a VM}, if, instead, you would like to install Guix System in a virtual machine (VM)."
 msgstr "@xref{Installing Guix in a VM}, si, à la place, vous souhaitez installer Guix System dans une machine virtuelle (VM)."
 
 #. type: Plain text
-#: doc/guix.texi:1975
-msgid "Once you have booted, you can use the guided graphical installer, which makes it easy to get started (@pxref{Guided Graphical Installation}).  Alternately, if you are already familiar with GNU/Linux and if you want more control than what the graphical installer provides, you can choose the ``manual'' installation process (@pxref{Manual Installation})."
-msgstr "Une fois que vous avez démarré, vous pouvez utiliser l'installateur graphique, qui rend facile la prise en main (@pxref{Guided Graphical Installation}).  Autrement, si vous êtes déjà familier avec GNU/Linux et que vous voulez plus de contrôle que ce que l'installateur graphique ne fournit, vous pouvez choisir le processus d'installation « manuel » (@pxref{Manual Installation})."
+#: doc/guix.texi:2116
+msgid "Once you have booted, you can use the guided graphical installer, which makes it easy to get started (@pxref{Guided Graphical Installation}).  Alternatively, if you are already familiar with GNU/Linux and if you want more control than what the graphical installer provides, you can choose the ``manual'' installation process (@pxref{Manual Installation})."
+msgstr "Une fois que vous avez démarré, vous pouvez utiliser l'installateur graphique, qui rend facile la prise en main (@pxref{Guided Graphical Installation}).  Sinon, si vous êtes déjà familier avec GNU/Linux et que vous voulez plus de contrôle que ce que l'installateur graphique propose, vous pouvez choisir le processus d'installation « manuel » (@pxref{Manual Installation})."
 
 #. type: Plain text
-#: doc/guix.texi:1983
+#: doc/guix.texi:2124
 msgid "The graphical installer is available on TTY1.  You can obtain root shells on TTYs 3 to 6 by hitting @kbd{ctrl-alt-f3}, @kbd{ctrl-alt-f4}, etc.  TTY2 shows this documentation and you can reach it with @kbd{ctrl-alt-f2}.  Documentation is browsable using the Info reader commands (@pxref{Top,,, info-stnd, Stand-alone GNU Info}).  The installation system runs the GPM mouse daemon, which allows you to select text with the left mouse button and to paste it with the middle button."
 msgstr "L'installateur graphique est disponible sur le TTY1.  Vous pouvez obtenir des shells root sur les TTY 3 à 6 en tapant @kbd{ctrl-alt-f3}, @kbd{ctrl-alt-f4} etc.  Le TTY2 affiche cette documentation que vous pouvez atteindre avec @kbd{ctrl-alt-f2}. On peut naviguer dans la documentation avec les commandes du lecteur Info (@pxref{Top,,, info-stnd, Stand-alone GNU Info}).  Le démon de souris GPM tourne sur le système d'installation, ce qui vous permet de sélectionner du texte avec le bouton gauche de la souris et de le coller en appuyant sur la molette."
 
 #. type: quotation
-#: doc/guix.texi:1988
+#: doc/guix.texi:2129
 msgid "Installation requires access to the Internet so that any missing dependencies of your system configuration can be downloaded.  See the ``Networking'' section below."
 msgstr "L'installation nécessite un accès au réseau pour que les dépendances manquantes de votre configuration système puissent être téléchargées.  Voyez la section « réseau » plus bas."
 
 #. type: Plain text
-#: doc/guix.texi:1995
+#: doc/guix.texi:2136
 msgid "The graphical installer is a text-based user interface.  It will guide you, with dialog boxes, through the steps needed to install GNU@tie{}Guix System."
 msgstr "L'installateur graphique est une interface utilisateur en mode texte.  Il vous guidera, avec des boîtes de dialogue, le long des étapes requises pour installer GNU@tie{}Guix System."
 
 #. type: Plain text
-#: doc/guix.texi:2000
+#: doc/guix.texi:2141
 msgid "The first dialog boxes allow you to set up the system as you use it during the installation: you can choose the language, keyboard layout, and set up networking, which will be used during the installation.  The image below shows the networking dialog."
 msgstr "La première boîte de dialogue vous permet de paramétrer le système comme vous le souhaitez pendant l'installation : vous pouvez choisir la langue, la disposition du clavier et paramétrer le réseau, qui sera utilisé pendant l'installation.  L'image ci-dessous montre le dialogue pour le réseau."
 
 #. type: Plain text
-#: doc/guix.texi:2002
+#: doc/guix.texi:2143
 msgid "@image{images/installer-network,5in,, networking setup with the graphical installer}"
 msgstr "@image{images/installer-network,5in,, paramétrage du réseau avec l'installateur graphique}"
 
 #. type: Plain text
-#: doc/guix.texi:2007
+#: doc/guix.texi:2148
 msgid "Later steps allow you to partition your hard disk, as shown in the image below, to choose whether or not to use encrypted file systems, to enter the host name and root password, and to create an additional account, among other things."
 msgstr "Les étapes suivantes vous permettent de partitionner votre disque dur, comme le montre l'image ci-dessous, de choisir si vous voulez ou non utiliser des systèmes de fichiers chiffrés, de saisir le nom d'hôte et le mot de passe root et de créer un compte supplémentaire, entre autres choses."
 
 #. type: Plain text
-#: doc/guix.texi:2009
+#: doc/guix.texi:2150
 msgid "@image{images/installer-partitions,5in,, partitioning with the graphical installer}"
 msgstr "@image{images/installer-partitions,5in,, partitionnement du disque avec l'installateur graphique}"
 
 #. type: Plain text
-#: doc/guix.texi:2012
+#: doc/guix.texi:2153
 msgid "Note that, at any time, the installer allows you to exit the current installation step and resume at a previous step, as show in the image below."
 msgstr "Remarquez que, à tout moment, l'installateur vous permet de sortir de l'étape d'installation actuelle et de recommencer une étape précédente, comme le montre l'image ci-dessous."
 
 #. type: Plain text
-#: doc/guix.texi:2014
+#: doc/guix.texi:2155
 msgid "@image{images/installer-resume,5in,, resuming the installation process}"
 msgstr "@image{images/installer-resume,5in,, reprise du processus d'installation}"
 
 #. type: Plain text
-#: doc/guix.texi:2019
+#: doc/guix.texi:2160
 msgid "Once you're done, the installer produces an operating system configuration and displays it (@pxref{Using the Configuration System}).  At that point you can hit ``OK'' and installation will proceed.  On success, you can reboot into the new system and enjoy.  @xref{After System Installation}, for what's next!"
 msgstr "Une fois que vous avez fini, l'installateur produit une configuration de système d'exploitation et vous la montre (@pxref{Using the Configuration System}).  À ce moment, vous pouvez appuyer sur « OK » et l'installation continuera.  Lorsqu'elle aura réussi, vous pourrez redémarrer sur le nouveau système et vous amuser.  @xref{After System Installation}, pour la suite des festivités !"
 
 #. type: Plain text
-#: doc/guix.texi:2029
+#: doc/guix.texi:2170
 msgid "This section describes how you would ``manually'' install GNU@tie{}Guix System on your machine.  This option requires familiarity with GNU/Linux, with the shell, and with common administration tools.  If you think this is not for you, consider using the guided graphical installer (@pxref{Guided Graphical Installation})."
 msgstr "Cette section décrit comme vous pourriez installe « manuellement » GNU@tie{}Guix System sur votre machine.  Cette option nécessite que vous soyez familier avec GNU/Linux, le shell et avec les outils d'administration usuels.  Si vous pensez que ce n'est pas pour vous, pensez à utiliser l'installateur graphique (@pxref{Guided Graphical Installation})."
 
 #. type: Plain text
-#: doc/guix.texi:2035
+#: doc/guix.texi:2176
 msgid "The installation system provides root shells on TTYs 3 to 6; press @kbd{ctrl-alt-f3}, @kbd{ctrl-alt-f4}, and so on to reach them.  It includes many common tools needed to install the system.  But it is also a full-blown Guix System, which means that you can install additional packages, should you need it, using @command{guix package} (@pxref{Invoking guix package})."
 msgstr "Le système d'installation fournit des shells root sur les TTY 3 à 6 ; appuyez sur @kbd{ctrl-alt-f3}, @kbd{ctrl-alt-f4} etc pour y accéder. Il inclus plusieurs outils usuels pour requis pour cette tâche.  Mais c'est aussi un système Guix complet, ce qui signifie que vous pouvez installer des paquets supplémentaires si vous en avez besoin, avec @command{guix package} (@pxref{Invoking guix package})."
 
 #. type: subsection
-#: doc/guix.texi:2042
+#: doc/guix.texi:2183
 #, no-wrap
 msgid "Keyboard Layout, Networking, and Partitioning"
 msgstr "Disposition du clavier réseau et partitionnement"
 
 #. type: Plain text
-#: doc/guix.texi:2047
+#: doc/guix.texi:2188
 msgid "Before you can install the system, you may want to adjust the keyboard layout, set up networking, and partition your target hard disk.  This section will guide you through this."
 msgstr "Avant que vous ne puissiez installer le système, vous voudrez sans doute ajuster la disposition du clavier, paramétrer le réseau et partitionner le disque dur cible.  Cette section vous guidera à travers tout cela."
 
 #. type: cindex
-#: doc/guix.texi:2050 doc/guix.texi:11125
+#: doc/guix.texi:2191 doc/guix.texi:14021
 #, no-wrap
 msgid "keyboard layout"
 msgstr "disposition du clavier"
 
 #. type: Plain text
-#: doc/guix.texi:2054
+#: doc/guix.texi:2195
 msgid "The installation image uses the US qwerty keyboard layout.  If you want to change it, you can use the @command{loadkeys} command.  For example, the following command selects the Dvorak keyboard layout:"
 msgstr "L'image d'installation utilise la disposition clavier qwerty (US).  Si vous voulez la changer, vous pouvez utiliser la commande @command{loadkeys}.  Par exemple, la commande suivante sélectionne la disposition Dvorak :"
 
 #. type: example
-#: doc/guix.texi:2057
+#: doc/guix.texi:2198
 #, no-wrap
 msgid "loadkeys dvorak\n"
 msgstr "loadkeys dvorak\n"
 
 #. type: Plain text
-#: doc/guix.texi:2062
+#: doc/guix.texi:2203
 msgid "See the files under @file{/run/current-system/profile/share/keymaps} for a list of available keyboard layouts.  Run @command{man loadkeys} for more information."
 msgstr "Consultez les fichiers dans @file{/run/current-system/profile/share/keymaps} pour trouver une liste des dispositions disponibles.  Lancez @command{man loadkey} pour plus d'informations."
 
 #. type: subsubsection
-#: doc/guix.texi:2063
+#: doc/guix.texi:2204
 #, no-wrap
 msgid "Networking"
 msgstr "Réseau"
 
 #. type: Plain text
-#: doc/guix.texi:2066
+#: doc/guix.texi:2207
 msgid "Run the following command to see what your network interfaces are called:"
 msgstr "Lancez la commande suivante pour voir comment vos interfaces réseau sont appelées :"
 
 #. type: example
-#: doc/guix.texi:2069
+#: doc/guix.texi:2210
 #, no-wrap
 msgid "ifconfig -a\n"
 msgstr "ifconfig -a\n"
 
-#. type: Plain text
-#: doc/guix.texi:2073
+#. type: table
+#: doc/guix.texi:2214 doc/guix.texi:2236
 msgid "@dots{} or, using the GNU/Linux-specific @command{ip} command:"
 msgstr "@dots{} ou, avec la commande spécifique à GNU/Linux @command{ip} :"
 
 #. type: example
-#: doc/guix.texi:2076
+#: doc/guix.texi:2217
 #, no-wrap
-msgid "ip a\n"
-msgstr "ip a\n"
+msgid "ip address\n"
+msgstr "ip address\n"
 
 #. type: Plain text
-#: doc/guix.texi:2083
+#: doc/guix.texi:2224
 msgid "Wired interfaces have a name starting with @samp{e}; for example, the interface corresponding to the first on-board Ethernet controller is called @samp{eno1}.  Wireless interfaces have a name starting with @samp{w}, like @samp{w1p2s0}."
 msgstr "Les interfaces filaires ont un nom qui commence par @samp{e} ; par exemple, l'interface qui correspond au premier contrôleur Ethernet sur la carte mère est appelé @samp{eno1}.  Les interfaces sans-fil ont un nom qui commence par @samp{w}, comme @samp{w1p2s0}."
 
 #. type: item
-#: doc/guix.texi:2085
+#: doc/guix.texi:2226
 #, no-wrap
 msgid "Wired connection"
 msgstr "Connexion filaire"
 
 #. type: table
-#: doc/guix.texi:2088
+#: doc/guix.texi:2229
 msgid "To configure a wired network run the following command, substituting @var{interface} with the name of the wired interface you want to use."
 msgstr "Pour configure une connexion filaire, lancez la commande suivante, en remplaçant @var{interface} par le nom de l'interface filaire que vous voulez utiliser."
 
 #. type: example
-#: doc/guix.texi:2091
+#: doc/guix.texi:2232
 #, no-wrap
 msgid "ifconfig @var{interface} up\n"
 msgstr "ifconfig @var{interface} up\n"
 
+#. type: example
+#: doc/guix.texi:2239
+#, no-wrap
+msgid "ip link set @var{interface} up\n"
+msgstr "ip link set @var{interface} up\n"
+
 #. type: item
-#: doc/guix.texi:2093
+#: doc/guix.texi:2241
 #, no-wrap
 msgid "Wireless connection"
 msgstr "Connexion sans-fil"
 
 #. type: cindex
-#: doc/guix.texi:2094 doc/guix.texi:12556
+#: doc/guix.texi:2242 doc/guix.texi:15600
 #, no-wrap
 msgid "wireless"
 msgstr "sans-fil"
 
 #. type: cindex
-#: doc/guix.texi:2095 doc/guix.texi:12557
+#: doc/guix.texi:2243 doc/guix.texi:15601
 #, no-wrap
 msgid "WiFi"
 msgstr "WiFi"
 
 #. type: table
-#: doc/guix.texi:2100
+#: doc/guix.texi:2248
 msgid "To configure wireless networking, you can create a configuration file for the @command{wpa_supplicant} configuration tool (its location is not important) using one of the available text editors such as @command{nano}:"
 msgstr "Pour configurer le réseau sans-fil, vous pouvez créer un fichier de configuration pour l'outil de configuration @command{wpa_supplicant} (son emplacement importe peu) avec l'un des éditeurs de texte disponibles comme @command{nano} :"
 
 #. type: example
-#: doc/guix.texi:2103
+#: doc/guix.texi:2251
 #, no-wrap
 msgid "nano wpa_supplicant.conf\n"
 msgstr "nano wpa_supplicant.conf\n"
 
 #. type: table
-#: doc/guix.texi:2108
+#: doc/guix.texi:2256
 msgid "As an example, the following stanza can go to this file and will work for many wireless networks, provided you give the actual SSID and passphrase for the network you are connecting to:"
 msgstr "Par exemple, la déclaration qui suit peut aller dans ce fichier et fonctionnera pour plusieurs réseaux sans-fil, si vous donnez le vrai SSID et la phrase de passe pour le réseau auquel vous vous connectez :"
 
 #. type: example
-#: doc/guix.texi:2115
+#: doc/guix.texi:2263
 #, no-wrap
 msgid ""
 "network=@{\n"
@@ -5748,184 +6843,211 @@ msgstr ""
 "@}\n"
 
 #. type: table
-#: doc/guix.texi:2120
+#: doc/guix.texi:2268
 msgid "Start the wireless service and run it in the background with the following command (substitute @var{interface} with the name of the network interface you want to use):"
 msgstr "Démarrez le service sans-fil et lancez-le en tache de fond avec la commande suivante (en remplaçant @var{interface} par le nom de l'interface réseau que vous voulez utiliser) :"
 
 #. type: example
-#: doc/guix.texi:2123
+#: doc/guix.texi:2271
 #, no-wrap
 msgid "wpa_supplicant -c wpa_supplicant.conf -i @var{interface} -B\n"
 msgstr "wpa_supplicant -c wpa_supplicant.conf -i @var{interface} -B\n"
 
 #. type: table
-#: doc/guix.texi:2126
+#: doc/guix.texi:2274
 msgid "Run @command{man wpa_supplicant} for more information."
 msgstr "Lancez @command{man wpa_supplicant} pour plus d'informations."
 
 #. type: cindex
-#: doc/guix.texi:2128
+#: doc/guix.texi:2276
 #, no-wrap
 msgid "DHCP"
 msgstr "DHCP"
 
 #. type: Plain text
-#: doc/guix.texi:2131
+#: doc/guix.texi:2279
 msgid "At this point, you need to acquire an IP address.  On a network where IP addresses are automatically assigned @i{via} DHCP, you can run:"
 msgstr "À partir de ce moment, vous avez besoin d'une adresse IP.  Sur les réseaux où les IP sont automatiquement attribuée par DHCP, vous pouvez lancer :"
 
 #. type: example
-#: doc/guix.texi:2134
+#: doc/guix.texi:2282
 #, no-wrap
 msgid "dhclient -v @var{interface}\n"
 msgstr "dhclient -v @var{interface}\n"
 
 #. type: Plain text
-#: doc/guix.texi:2137
+#: doc/guix.texi:2285
 msgid "Try to ping a server to see if networking is up and running:"
 msgstr "Essayez de pinger un serveur pour voir si le réseau fonctionne :"
 
 #. type: example
-#: doc/guix.texi:2140
+#: doc/guix.texi:2288
 #, no-wrap
 msgid "ping -c 3 gnu.org\n"
 msgstr "ping -c 3 gnu.org\n"
 
 #. type: Plain text
-#: doc/guix.texi:2144
+#: doc/guix.texi:2292
 msgid "Setting up network access is almost always a requirement because the image does not contain all the software and tools that may be needed."
 msgstr "Mettre en place un accès réseau est presque toujours une nécessité parce que l'image ne contient pas tous les logiciels et les outils dont vous pourriez avoir besoin."
 
 #. type: cindex
-#: doc/guix.texi:2145
+#: doc/guix.texi:2293
+#, no-wrap
+msgid "proxy, during system installation"
+msgstr "mandataire, pendant l'installation du système"
+
+#. type: Plain text
+#: doc/guix.texi:2296
+msgid "If you need HTTP and HTTPS access to go through a proxy, run the following command:"
+msgstr "Si vous avez besoin d'un accès HTTP et HTTPS pour passer à travers un proxy, lancez la commande suivante :"
+
+#. type: example
+#: doc/guix.texi:2299
+#, no-wrap
+msgid "herd set-http-proxy guix-daemon @var{URL}\n"
+msgstr "herd set-http-proxy guix-daemon @var{URL}\n"
+
+#. type: Plain text
+#: doc/guix.texi:2304
+msgid "where @var{URL} is the proxy URL, for example @code{http://example.org:8118}."
+msgstr "où @var{URL} est l'URL du proxy, par exemple @code{http://example.org:8118}."
+
+#. type: cindex
+#: doc/guix.texi:2305
 #, no-wrap
 msgid "installing over SSH"
 msgstr "installer par SSH"
 
 #. type: Plain text
-#: doc/guix.texi:2148
+#: doc/guix.texi:2308
 msgid "If you want to, you can continue the installation remotely by starting an SSH server:"
 msgstr "Si vous le souhaitez, vous pouvez continuer l'installation à distance en démarrant un serveur SSH :"
 
 #. type: example
-#: doc/guix.texi:2151
+#: doc/guix.texi:2311
 #, no-wrap
 msgid "herd start ssh-daemon\n"
 msgstr "herd start ssh-daemon\n"
 
 #. type: Plain text
-#: doc/guix.texi:2155
+#: doc/guix.texi:2315
 msgid "Make sure to either set a password with @command{passwd}, or configure OpenSSH public key authentication before logging in."
 msgstr "Assurez-vous soit de définir un mot de passe avec @command{passwd}, soit de configurer l'authentification par clef OpenSSH avant de vous connecter."
 
 #. type: subsubsection
-#: doc/guix.texi:2156
+#: doc/guix.texi:2316
 #, no-wrap
 msgid "Disk Partitioning"
 msgstr "Partitionnement"
 
 #. type: Plain text
-#: doc/guix.texi:2160
+#: doc/guix.texi:2320
 msgid "Unless this has already been done, the next step is to partition, and then format the target partition(s)."
 msgstr "À moins que vous ne l'ayez déjà fait, l'étape suivante consiste à partitionner le disque puis à formater les partitions cibles."
 
 #. type: Plain text
-#: doc/guix.texi:2165
+#: doc/guix.texi:2325
 msgid "The installation image includes several partitioning tools, including Parted (@pxref{Overview,,, parted, GNU Parted User Manual}), @command{fdisk}, and @command{cfdisk}.  Run it and set up your disk with the partition layout you want:"
 msgstr "L'image d'installation inclus plusieurs outils de partitionnement, dont Parted (@pxref{Overview,,, parted, GNU Parted User Manual}), @command{fdisk}, et @command{cfdisk}.  Lancez-en un et paramétrez votre disque avec le partitionnement qui vous convient :"
 
 #. type: example
-#: doc/guix.texi:2168
+#: doc/guix.texi:2328
 #, no-wrap
 msgid "cfdisk\n"
 msgstr "cfdisk\n"
 
 #. type: Plain text
-#: doc/guix.texi:2174
+#: doc/guix.texi:2334
 msgid "If your disk uses the GUID Partition Table (GPT) format and you plan to install BIOS-based GRUB (which is the default), make sure a BIOS Boot Partition is available (@pxref{BIOS installation,,, grub, GNU GRUB manual})."
 msgstr "Si votre disque utilise le format des tables de partitions GUID (GPT) et que vous souhaitez installer un GRUB pour système BIOS (c'est le cas par défaut), assurez-vous de créer qu'une partition de démarrage BIOS soit bien disponible (@pxref{BIOS installation,,, grub, GNU GRUB manual})."
 
 #. type: cindex
-#: doc/guix.texi:2175
+#: doc/guix.texi:2335
 #, no-wrap
 msgid "EFI, installation"
 msgstr "EFI, installation"
 
 #. type: cindex
-#: doc/guix.texi:2176
+#: doc/guix.texi:2336
 #, no-wrap
 msgid "UEFI, installation"
 msgstr "UEFI, installation"
 
 #. type: cindex
-#: doc/guix.texi:2177
+#: doc/guix.texi:2337
 #, no-wrap
 msgid "ESP, EFI system partition"
 msgstr "ESP, partition système EFI"
 
 #. type: Plain text
-#: doc/guix.texi:2181
+#: doc/guix.texi:2341
 msgid "If you instead wish to use EFI-based GRUB, a FAT32 @dfn{EFI System Partition} (ESP) is required.  This partition can be mounted at @file{/boot/efi} for instance and must have the @code{esp} flag set.  E.g., for @command{parted}:"
 msgstr "Si vous souhaitez à la place utilise GRUB pour système EFI, vous devrez avoir une @dfn{partition système EFI} (ESP) en FAT32.  Cette partition peut être montée dans @file{/boot/efi} par exemple et doit avoir le drapeau @code{esp}.  P.@: ex.@: pour @command{parted} :"
 
 #. type: example
-#: doc/guix.texi:2184
+#: doc/guix.texi:2344
 #, no-wrap
 msgid "parted /dev/sda set 1 esp on\n"
 msgstr "parted /dev/sda set 1 esp on\n"
 
 #. type: vindex
-#: doc/guix.texi:2187 doc/guix.texi:24064
+#: doc/guix.texi:2347 doc/guix.texi:30367
 #, no-wrap
 msgid "grub-bootloader"
 msgstr "grub-bootloader"
 
 #. type: vindex
-#: doc/guix.texi:2188 doc/guix.texi:24058
+#: doc/guix.texi:2348 doc/guix.texi:30361
 #, no-wrap
 msgid "grub-efi-bootloader"
 msgstr "grub-efi-bootloader"
 
 #. type: quotation
-#: doc/guix.texi:2195
+#: doc/guix.texi:2355
 msgid "Unsure whether to use EFI- or BIOS-based GRUB? If the directory @file{/sys/firmware/efi} exists in the installation image, then you should probably perform an EFI installation, using @code{grub-efi-bootloader}.  Otherwise you should use the BIOS-based GRUB, known as @code{grub-bootloader}.  @xref{Bootloader Configuration}, for more info on bootloaders."
 msgstr "Vous n'êtes pas sûr de savoir si vous devez utiliser un GRUB EFI ou BIOS ?  Si le répertoire @file{/sys/firmware/efi} existe sur l'image d'installation, vous devriez probablement effectuer une installation EFI, avec @code{grub-efi-bootloader}.  Sinon, vous devriez utiliser le GRUB en BIOS, @code{grub-bootloader}.  @xref{Bootloader Configuration} pour plus d'information sur le chargeur d'amorçage."
 
 #. type: Plain text
-#: doc/guix.texi:2203
-msgid "Once you are done partitioning the target hard disk drive, you have to create a file system on the relevant partition(s)@footnote{Currently Guix System only supports ext4 and btrfs file systems.  In particular, code that reads file system UUIDs and labels only works for these file system types.}.  For the ESP, if you have one and assuming it is @file{/dev/sda1}, run:"
-msgstr "Une fois que vous avez fini le partitionnement du disque dur cible, vous devez créer un système de fichier sur les partitions@footnote{Actuellement Guix System ne supporte que les systèmes de fichiers ext4 et btrfs.  En particulier, le code qui lit les UUID des systèmes de fichiers et les étiquettes ne fonctionne que pour ces types de systèmes de fichiers.}.  Pour l'ESP, si vous en avez une et en supposant que ce soit @file{/dev/sda1}, lancez :"
+#: doc/guix.texi:2363
+msgid "Once you are done partitioning the target hard disk drive, you have to create a file system on the relevant partition(s)@footnote{Currently Guix System only supports ext4, btrfs, and JFS file systems.  In particular, code that reads file system UUIDs and labels only works for these file system types.}.  For the ESP, if you have one and assuming it is @file{/dev/sda1}, run:"
+msgstr "Une fois que vous avez fini le partitionnement du disque dur cible, vous devez créer un système de fichier sur les partitions@footnote{Actuellement Guix System ne prend en charge que les systèmes de fichiers ext4, btrfs et JFS.  En particulier, le code qui lit les UUID des systèmes de fichiers et les étiquettes ne fonctionne que pour ces types de systèmes de fichiers.}.  Pour l'ESP, si vous en avez une et en supposant que ce soit @file{/dev/sda1}, lancez :"
 
 #. type: example
-#: doc/guix.texi:2206
+#: doc/guix.texi:2366
 #, no-wrap
 msgid "mkfs.fat -F32 /dev/sda1\n"
 msgstr "mkfs.fat -F32 /dev/sda1\n"
 
 #. type: Plain text
-#: doc/guix.texi:2214
+#: doc/guix.texi:2373
+msgid "For the root file system, ext4 is the most widely used format.  Other file systems, such as Btrfs, support compression, which is reported to nicely complement file deduplication that the daemon performs independently of the file system (@pxref{Invoking guix-daemon, deduplication})."
+msgstr "Concernant le système de fichier root, ext4 est le format le plus largement utilisé. D'autres systèmes de fichiers, comme Btrfs, supportent la compression, laquelle est reportée pour compléter agréablement la dédupplication que le démon réalise indépendamment du système de fichier (@pxref{Invoking guix-daemon, deduplication})."
+
+#. type: Plain text
+#: doc/guix.texi:2380
 msgid "Preferably, assign file systems a label so that you can easily and reliably refer to them in @code{file-system} declarations (@pxref{File Systems}).  This is typically done using the @code{-L} option of @command{mkfs.ext4} and related commands.  So, assuming the target root partition lives at @file{/dev/sda2}, a file system with the label @code{my-root} can be created with:"
 msgstr "Préférez assigner une étiquette au système de fichier pour que vous puissiez vous y référer de manière fiable dans la déclaration @code{file-system} (@pxref{File Systems}).  On le fait habituellement avec l'option @code{-L} de @command{mkfs.ext4} et des commandes liées.  Donc, en supposant que la partition racine soit sur @file{/dev/sda2}, on peut créer un système de fichier avec pour étiquette @code{my-root} avec :"
 
 #. type: example
-#: doc/guix.texi:2217
+#: doc/guix.texi:2383
 #, no-wrap
 msgid "mkfs.ext4 -L my-root /dev/sda2\n"
 msgstr "mkfs.ext4 -L my-root /dev/sda2\n"
 
 #. type: cindex
-#: doc/guix.texi:2219 doc/guix.texi:10382
+#: doc/guix.texi:2385 doc/guix.texi:13055
 #, no-wrap
 msgid "encrypted disk"
 msgstr "chiffrement du disque"
 
 #. type: Plain text
-#: doc/guix.texi:2226
-msgid "If you are instead planning to encrypt the root partition, you can use the Cryptsetup/LUKS utilities to do that (see @inlinefmtifelse{html, @uref{https://linux.die.net/man/8/cryptsetup, @code{man cryptsetup}}, @code{man cryptsetup}} for more information.)  Assuming you want to store the root partition on @file{/dev/sda2}, the command sequence would be along these lines:"
-msgstr "Si vous voulez plutôt chiffrer la partition racine, vous pouvez utiliser les utilitaires Cryptsetup et LUKS pour cela (voir @inlinefmtifelse{html, @uref{https://linux.die.net/man/8/cryptsetup, @code{man cryptsetup}}, @code{man cryptsetup}} pour plus d'informations).  En supposant que vous voulez stocker la partition racine sur @file{/dev/sda2}, la séquence de commandes suivante vous mènerait à ce résultat :"
+#: doc/guix.texi:2392
+msgid "If you are instead planning to encrypt the root partition, you can use the Cryptsetup/LUKS utilities to do that (see @inlinefmtifelse{html, @uref{https://linux.die.net/man/8/cryptsetup, @code{man cryptsetup}}, @code{man cryptsetup}} for more information).  Assuming you want to store the root partition on @file{/dev/sda2}, the command sequence would be along these lines:"
+msgstr "Si vous voulez plutôt chiffrer la partition root, vous pouvez utiliser les utilitaires Cryptsetup et LUKS pour celà (voir @inlinefmtifelse{html, @uref{https://linux.die.net/man/8/cryptsetup, @code{man cryptsetup}}, @code{man cryptsetup}} pour plus d'informations).  En supposant que vous voulez stocker la partition root sur @file{/dev/sda2}, la séquence de commandes suivante vous mènerait à ce résultat :"
 
 #. type: example
-#: doc/guix.texi:2231
+#: doc/guix.texi:2397
 #, no-wrap
 msgid ""
 "cryptsetup luksFormat /dev/sda2\n"
@@ -5937,28 +7059,28 @@ msgstr ""
 "mkfs.ext4 -L my-root /dev/mapper/my-partition\n"
 
 #. type: Plain text
-#: doc/guix.texi:2236
+#: doc/guix.texi:2402
 msgid "Once that is done, mount the target file system under @file{/mnt} with a command like (again, assuming @code{my-root} is the label of the root file system):"
 msgstr "Une fois cela effectué, montez le système de fichier cible dans @file{/mnt} avec une commande comme (de nouveau, en supposant que @code{my-root} est l'étiquette du système de fichiers racine) :"
 
 #. type: example
-#: doc/guix.texi:2239
+#: doc/guix.texi:2405
 #, no-wrap
 msgid "mount LABEL=my-root /mnt\n"
 msgstr "mount LABEL=my-root /mnt\n"
 
 #. type: Plain text
-#: doc/guix.texi:2245
+#: doc/guix.texi:2411
 msgid "Also mount any other file systems you would like to use on the target system relative to this path.  If you have opted for @file{/boot/efi} as an EFI mount point for example, mount it at @file{/mnt/boot/efi} now so it is found by @code{guix system init} afterwards."
 msgstr "Montez aussi tous les systèmes de fichiers que vous voudriez utiliser sur le système cible relativement à ce chemin.  Si vous avez choisi d'avoir un @file{/boot/efi} comme point de montage EFI par exemple, montez-la sur @file{/mnt/boot/efi} maintenant pour qu'elle puisse être trouvée par @code{guix system init} ensuite."
 
 #. type: Plain text
-#: doc/guix.texi:2250
+#: doc/guix.texi:2416
 msgid "Finally, if you plan to use one or more swap partitions (@pxref{Memory Concepts, swap space,, libc, The GNU C Library Reference Manual}), make sure to initialize them with @command{mkswap}.  Assuming you have one swap partition on @file{/dev/sda3}, you would run:"
 msgstr "Enfin, si vous souhaitez utiliser une ou plusieurs partitions de swap  (@pxref{Memory Concepts, swap space,, libc, The GNU C Library Reference Manual}), assurez-vous de les initialiser avec @command{mkswap}.  En supposant que vous avez une partition de swap sur @file{/dev/sda3}, vous pouvez lancer :"
 
 #. type: example
-#: doc/guix.texi:2254
+#: doc/guix.texi:2420
 #, no-wrap
 msgid ""
 "mkswap /dev/sda3\n"
@@ -5968,12 +7090,12 @@ msgstr ""
 "swapon /dev/sda3\n"
 
 #. type: Plain text
-#: doc/guix.texi:2262
+#: doc/guix.texi:2428
 msgid "Alternatively, you may use a swap file.  For example, assuming that in the new system you want to use the file @file{/swapfile} as a swap file, you would run@footnote{This example will work for many types of file systems (e.g., ext4).  However, for copy-on-write file systems (e.g., btrfs), the required steps may be different.  For details, see the manual pages for @command{mkswap} and @command{swapon}.}:"
 msgstr "Autrement, vous pouvez utiliser un fichier de swap.  Par exemple, en supposant que dans le nouveau système vous voulez utiliser le fichier @file{/swapfile} comme fichier de swap, vous lanceriez@footnote{Cet exemple fonctionnera sur plusieurs types de systèmes de fichiers (p.@: ex.@: ext4).  Cependant, pour les systèmes de fichiers qui utilisent la copie sur écriture (COW) comme btrfs, les étapes requises peuvent varier.  Pour plus de détails, regardez les pages de manuel de @command{mkswap} et @command{swapon}.} :"
 
 #. type: example
-#: doc/guix.texi:2270
+#: doc/guix.texi:2436
 #, no-wrap
 msgid ""
 "# This is 10 GiB of swap space.  Adjust \"count\" to change the size.\n"
@@ -5991,38 +7113,38 @@ msgstr ""
 "swapon /mnt/swapfile\n"
 
 #. type: Plain text
-#: doc/guix.texi:2275
+#: doc/guix.texi:2441
 msgid "Note that if you have encrypted the root partition and created a swap file in its file system as described above, then the encryption also protects the swap file, just like any other file in that file system."
 msgstr "Remarquez que si vous avez chiffré la partition racine et créé un fichier d'échange dans son système de fichier comme décrit ci-dessus, alors le chiffrement protégera aussi le fichier d'échange, comme n'importe quel fichier de ce système de fichiers."
 
 #. type: Plain text
-#: doc/guix.texi:2281
+#: doc/guix.texi:2447
 msgid "With the target partitions ready and the target root mounted on @file{/mnt}, we're ready to go.  First, run:"
 msgstr "Lorsque la partition cible est prête et que les autres partitions sont montées, on est prêt à commencer l'installation.  Commencez par :"
 
 #. type: example
-#: doc/guix.texi:2284
+#: doc/guix.texi:2450
 #, no-wrap
 msgid "herd start cow-store /mnt\n"
 msgstr "herd start cow-store /mnt\n"
 
 #. type: Plain text
-#: doc/guix.texi:2291
+#: doc/guix.texi:2457
 msgid "This makes @file{/gnu/store} copy-on-write, such that packages added to it during the installation phase are written to the target disk on @file{/mnt} rather than kept in memory.  This is necessary because the first phase of the @command{guix system init} command (see below) entails downloads or builds to @file{/gnu/store} which, initially, is an in-memory file system."
 msgstr "Cela rend @file{/gnu/store} capable de faire de la copie sur écriture, de sorte que les paquets ajoutés pendant l'installation sont écrits sur le disque cible sur @file{/mnt} plutôt que gardés en mémoire.  Cela est nécessaire parce que la première phase de la commande @command{guix system init} (voir plus bas) implique de télécharger ou de construire des éléments de @file{/gnu/store} qui est initialement un système de fichiers en mémoire."
 
 #. type: Plain text
-#: doc/guix.texi:2302
+#: doc/guix.texi:2468
 msgid "Next, you have to edit a file and provide the declaration of the operating system to be installed.  To that end, the installation system comes with three text editors.  We recommend GNU nano (@pxref{Top,,, nano, GNU nano Manual}), which supports syntax highlighting and parentheses matching; other editors include GNU Zile (an Emacs clone), and nvi (a clone of the original BSD @command{vi} editor).  We strongly recommend storing that file on the target root file system, say, as @file{/mnt/etc/config.scm}.  Failing to do that, you will have lost your configuration file once you have rebooted into the newly-installed system."
 msgstr "Ensuite, vous devrez modifier un fichier et fournir la déclaration du système à installer.  Pour cela, le système d'installation propose trois éditeurs de texte.  Nous recommandons GNU nano (@pxref{Top,,, nano, GNU nano Manual}), qui supporte la coloration syntaxique la correspondance de parenthèses ; les autres éditeurs sont GNU Zile (un clone d'Emacs) et nvi (un clone de l'éditeur @command{vi} original de BSD).  Nous recommandons vivement de stocker ce fichier sur le système de fichier racine cible, disons en tant que @file{/mnt/etc/config.scm}.  Sinon, vous perdrez votre fichier de configuration une fois que vous aurez redémarré sur votre nouveau système."
 
 #. type: Plain text
-#: doc/guix.texi:2309
+#: doc/guix.texi:2475
 msgid "@xref{Using the Configuration System}, for an overview of the configuration file.  The example configurations discussed in that section are available under @file{/etc/configuration} in the installation image.  Thus, to get started with a system configuration providing a graphical display server (a ``desktop'' system), you can run something along these lines:"
 msgstr "@xref{Using the Configuration System}, pour un aperçu de comment créer votre fichier de configuration.  Les exemples de configuration dont on parle dans cette section sont disponibles dans @file{/etc/configuration} sur l'image d'installation.  Ainsi, pour commencer avec une configuration du système qui fournit un serveur d'affichage graphique (un système de « bureau »), vous pouvez lancer ce qui suit :"
 
 #. type: example
-#: doc/guix.texi:2314
+#: doc/guix.texi:2480
 #, no-wrap
 msgid ""
 "# mkdir /mnt/etc\n"
@@ -6034,53 +7156,53 @@ msgstr ""
 "# nano /mnt/etc/config.scm\n"
 
 #. type: Plain text
-#: doc/guix.texi:2318
+#: doc/guix.texi:2484
 msgid "You should pay attention to what your configuration file contains, and in particular:"
 msgstr "Vous devriez faire attention à ce que contient votre fichier de configuration, en particulier :"
 
 #. type: itemize
-#: doc/guix.texi:2329
+#: doc/guix.texi:2495
 msgid "Make sure the @code{bootloader-configuration} form refers to the target you want to install GRUB on.  It should mention @code{grub-bootloader} if you are installing GRUB in the legacy way, or @code{grub-efi-bootloader} for newer UEFI systems.  For legacy systems, the @code{target} field names a device, like @code{/dev/sda}; for UEFI systems it names a path to a mounted EFI partition, like @code{/boot/efi}; do make sure the path is currently mounted and a @code{file-system} entry is specified in your configuration."
 msgstr "Assurez-vous que la forme @code{bootloader-configuration} se réfère à la cible où vous voulez installer GRUB.  Elle devrait aussi mentionner @code{grub-bootloader} si vous installer GRUB en mode BIOS (ou « legacy ») ou @code{grub-efi-bootloader} pour les système UEFI plus récents.  Pour les anciens systèmes, le champs @code{target} contient un périphérique comme @code{/dev/sda} ; pour les systèmes UEFI il contient un chemin vers une partition EFI montée, comme @code{/boot/efi}, et assurez-vous bien que ce chemin est monté et qu'il y a une entrée @code{file-system} dans votre configuration."
 
 #. type: itemize
-#: doc/guix.texi:2335
+#: doc/guix.texi:2501
 msgid "Be sure that your file system labels match the value of their respective @code{device} fields in your @code{file-system} configuration, assuming your @code{file-system} configuration uses the @code{file-system-label} procedure in its @code{device} field."
 msgstr "Assurez-vous que les étiquettes de vos systèmes de fichiers correspondent aux valeurs de leur champs @code{device} dans votre configuration @code{file-system}, en supposant que la configuration @code{file-system} utilise la procédure @code{file-system-label} dans son champ @code{device}."
 
 #. type: itemize
-#: doc/guix.texi:2339
+#: doc/guix.texi:2505
 msgid "If there are encrypted or RAID partitions, make sure to add a @code{mapped-devices} field to describe them (@pxref{Mapped Devices})."
 msgstr "Si vous avez des partitions RAID ou chiffrées, assurez-vous d'ajouter un champ @code{mapped-device} pour les décrire (@pxref{Mapped Devices})."
 
 #. type: Plain text
-#: doc/guix.texi:2344
+#: doc/guix.texi:2510
 msgid "Once you are done preparing the configuration file, the new system must be initialized (remember that the target root file system is mounted under @file{/mnt}):"
 msgstr "Une fois que vous avez fini les préparatifs sur le fichier de configuration, le nouveau système peut être initialisé (rappelez-vous que le système de fichiers racine cible est dans @file{/mnt}) :"
 
 #. type: example
-#: doc/guix.texi:2347
+#: doc/guix.texi:2513
 #, no-wrap
 msgid "guix system init /mnt/etc/config.scm /mnt\n"
 msgstr "guix system init /mnt/etc/config.scm /mnt\n"
 
 #. type: Plain text
-#: doc/guix.texi:2354
+#: doc/guix.texi:2520
 msgid "This copies all the necessary files and installs GRUB on @file{/dev/sdX}, unless you pass the @option{--no-bootloader} option.  For more information, @pxref{Invoking guix system}.  This command may trigger downloads or builds of missing packages, which can take some time."
 msgstr "Cela copie tous les fichiers nécessaires et installe GRUB sur @file{/dev/sdX} à moins que vous ne passiez l'option @option{--no-bootloader}.  Pour plus d'informations, @pxref{Invoking guix system}.  Cette commande peut engendrer des téléchargements ou des constructions pour les paquets manquants, ce qui peut prendre du temps."
 
 #. type: Plain text
-#: doc/guix.texi:2362
+#: doc/guix.texi:2528
 msgid "Once that command has completed---and hopefully succeeded!---you can run @command{reboot} and boot into the new system.  The @code{root} password in the new system is initially empty; other users' passwords need to be initialized by running the @command{passwd} command as @code{root}, unless your configuration specifies otherwise (@pxref{user-account-password, user account passwords}).  @xref{After System Installation}, for what's next!"
 msgstr "Une fois que cette commande a terminé — et on l'espère réussi ! — vous pouvez lancer @command{reboot} et démarrer sur votre nouveau système.  Le mot de passe @code{root} est d'abord vide ; les mots de passe des autres comptes doivent être initialisés avec la commande @command{passwd} en tant que @code{root}, à mois que votre configuration ne spécifie autre chose (@pxref{user-account-password, mot de passe des comptes}).  @xref{After System Installation}, pour la suite !"
 
 #. type: Plain text
-#: doc/guix.texi:2369
+#: doc/guix.texi:2535
 msgid "Success, you've now booted into Guix System! From then on, you can update the system whenever you want by running, say:"
 msgstr "Bravo !  Vous avez maintenant redémarré sur votre système Guix !  À partir de maintenant, vous pouvez mettre à jour le système quand vous voudrez, avec :"
 
 #. type: example
-#: doc/guix.texi:2373
+#: doc/guix.texi:2539
 #, no-wrap
 msgid ""
 "guix pull\n"
@@ -6090,396 +7212,654 @@ msgstr ""
 "sudo guix system reconfigure /etc/config.scm\n"
 
 #. type: Plain text
-#: doc/guix.texi:2379
+#: doc/guix.texi:2545
 msgid "This builds a new system generation with the latest packages and services (@pxref{Invoking guix system}).  We recommend doing that regularly so that your system includes the latest security updates (@pxref{Security Updates})."
 msgstr "Cela crée une nouvelle génération du système avec les derniers paquets et services (@pxref{Invoking guix system}).  Nous vous recommandons de le faire régulièrement pour que votre système inclue les dernières misse à jour de sécurité (@pxref{Security Updates})."
 
 #. type: cindex
-#: doc/guix.texi:2382
+#: doc/guix.texi:2548
 #, no-wrap
 msgid "sudo vs. @command{guix pull}"
 msgstr "sudo vs.@: @command{guix pull}"
 
 #. type: quotation
-#: doc/guix.texi:2386
-msgid "Note that @command{sudo guix} runs your user's @command{guix} command and @emph{not} root's, because @command{sudo} leaves @code{PATH} unchanged.  To explicitly run root's @command{guix}, type @command{sudo -i guix @dots{}}."
-msgstr "Remarquez que @command{sudo guix} exécute la commande @command{guix} de votre compte et @emph{non} celle de root, parce que @command{sudo} ne change pas @code{PATH}.  Pour utiliser explicitement le @command{guix} de root, tapez @command{sudo -i guix @dots{}}."
+#: doc/guix.texi:2552
+msgid "Note that @command{sudo guix} runs your user's @command{guix} command and @emph{not} root's, because @command{sudo} leaves @env{PATH} unchanged.  To explicitly run root's @command{guix}, type @command{sudo -i guix @dots{}}."
+msgstr "Remarquez que @command{sudo guix} exécute la commande @command{guix} de votre compte et @emph{non} celle de root, parce que @command{sudo} ne change pas @env{PATH}.  Pour utiliser explicitement le @command{guix} de root, tapez @command{sudo -i guix @dots{}}."
+
+#. type: quotation
+#: doc/guix.texi:2557
+msgid "The difference matters here, because @command{guix pull} updates the @command{guix} command and package definitions only for the user it is ran as.  This means that if you choose to use @command{guix system reconfigure} in root's login shell, you'll need to @command{guix pull} separately."
+msgstr "La différence est importante ici, car @command{guix pull} met à jour la commande @command{guix} et les définitions de paquets uniquement pour l'utilisateur sous lequel elle est exécutée.  Cela signifie que si vous choisissez d'utiliser la commande @command{guix system reconfigure} dans le shell de connexion de root, vous devrez utiliser séparément la commande @command{guix pull}."
 
 #. type: Plain text
-#: doc/guix.texi:2390
-msgid "Join us on @code{#guix} on the Freenode IRC network or on @email{guix-devel@@gnu.org} to share your experience!"
-msgstr "Rejoignez-nous sur @code{#guix} sur le réseau IRC Freenode ou sur @file{guix-devel@@gnu.org} pour partager votre expérience !"
+#: doc/guix.texi:2562
+msgid "Now, @pxref{Getting Started}, and join us on @code{#guix} on the Freenode IRC network or on @email{guix-devel@@gnu.org} to share your experience!"
+msgstr "Maintenant, @pxref{Getting Started}, et rejoignez-nous sur @code{#guix} sur le réseau IRC Freenode ou sur @email{guix-devel@@gnu.org} pour partager votre expérience !"
 
 #. type: section
-#: doc/guix.texi:2393
+#: doc/guix.texi:2565
 #, no-wrap
 msgid "Installing Guix in a Virtual Machine"
 msgstr "Installer Guix sur une machine virtuelle"
 
 #. type: cindex
-#: doc/guix.texi:2395
+#: doc/guix.texi:2567
 #, no-wrap
 msgid "virtual machine, Guix System installation"
 msgstr "machine virtuelle, installation de Guix System"
 
 #. type: cindex
-#: doc/guix.texi:2396
+#: doc/guix.texi:2568
 #, no-wrap
 msgid "virtual private server (VPS)"
 msgstr "serveur privé virtuel (VPS)"
 
 #. type: cindex
-#: doc/guix.texi:2397
+#: doc/guix.texi:2569
 #, no-wrap
 msgid "VPS (virtual private server)"
 msgstr "VPS (serveur privé virtuel)"
 
 #. type: Plain text
-#: doc/guix.texi:2401
+#: doc/guix.texi:2573
 msgid "If you'd like to install Guix System in a virtual machine (VM) or on a virtual private server (VPS) rather than on your beloved machine, this section is for you."
 msgstr "Si vous souhaitez installer Guix System sur une machine virtuelle (VM) ou un serveur privé virtuel (VPS) plutôt que sur votre machine chérie, cette section est faite pour vous."
 
 #. type: Plain text
-#: doc/guix.texi:2404
+#: doc/guix.texi:2576
 msgid "To boot a @uref{https://qemu.org/,QEMU} VM for installing Guix System in a disk image, follow these steps:"
 msgstr "Pour démarrer une VM @uref{https://qemu.org/,QEMU} pour installer Guix System sur une image disque, suivez ces étapes :"
 
 #. type: enumerate
-#: doc/guix.texi:2409
+#: doc/guix.texi:2581
 msgid "First, retrieve and decompress the Guix system installation image as described previously (@pxref{USB Stick and DVD Installation})."
 msgstr "Tout d'abord récupérez et décompressez l'image d'installation du système Guix comme décrit précédemment (@pxref{USB Stick and DVD Installation})."
 
 #. type: enumerate
-#: doc/guix.texi:2413
+#: doc/guix.texi:2585
 msgid "Create a disk image that will hold the installed system.  To make a qcow2-formatted disk image, use the @command{qemu-img} command:"
 msgstr "Créez une image disque qui contiendra le système installé.  Pour créer une image qcow2, utilise la commande @command{qemu-img} :"
 
 #. type: example
-#: doc/guix.texi:2416
+#: doc/guix.texi:2588
 #, no-wrap
-msgid "qemu-img create -f qcow2 guixsd.img 50G\n"
-msgstr "qemu-img create -f qcow2 guixsd.img 50G\n"
+msgid "qemu-img create -f qcow2 guix-system.img 50G\n"
+msgstr "qemu-img create -f qcow2 guix-system.img 50G\n"
 
 #. type: enumerate
-#: doc/guix.texi:2420
+#: doc/guix.texi:2592
 msgid "The resulting file will be much smaller than 50 GB (typically less than 1 MB), but it will grow as the virtualized storage device is filled up."
 msgstr "Le fichier qui en résulte sera bien plus petit que les 50 Go (habituellement moins de 1 Mo) mais il grossira au fur et à mesure que le stockage virtuel grossira."
 
 #. type: enumerate
-#: doc/guix.texi:2423
+#: doc/guix.texi:2595
 msgid "Boot the USB installation image in an VM:"
 msgstr "Démarrez l'image d'installation USB dans une VM :"
 
 #. type: example
-#: doc/guix.texi:2429
+#: doc/guix.texi:2601
 #, no-wrap
 msgid ""
-"qemu-system-x86_64 -m 1024 -smp 1 \\\n"
-"  -net user -net nic,model=virtio -boot menu=on \\\n"
-"  -drive file=guix-system-install-@value{VERSION}.@var{system}.iso \\\n"
-"  -drive file=guixsd.img\n"
+"qemu-system-x86_64 -m 1024 -smp 1 -enable-kvm \\\n"
+"  -nic user,model=virtio-net-pci -boot menu=on,order=d \\\n"
+"  -drive file=guix-system.img \\\n"
+"  -drive media=cdrom,file=guix-system-install-@value{VERSION}.@var{system}.iso\n"
 msgstr ""
-"qemu-system-x86_64 -m 1024 -smp 1 \\\n"
-"  -net user -net nic,model=virtio -boot menu=on \\\n"
-"  -drive file=guix-system-install-@value{VERSION}.@var{système}.iso \\\n"
-"  -drive file=guixsd.img\n"
-
-#. type: enumerate
-#: doc/guix.texi:2432
-msgid "The ordering of the drives matters."
-msgstr "L'ordre des périphérique est important."
+"qemu-system-x86_64 -m 1024 -smp 1 -enable-kvm \\\n"
+"  -nic user,model=virtio-net-pci -boot menu=on,order=d \\\n"
+"  -drive file=guix-system.img \\\n"
+"  -drive media=cdrom,file=guix-system-install-@value{VERSION}.@var{système}.iso\n"
 
 #. type: enumerate
-#: doc/guix.texi:2436
-msgid "In the VM console, quickly press the @kbd{F12} key to enter the boot menu.  Then press the @kbd{2} key and the @kbd{RET} key to validate your selection."
-msgstr "Dans la console de la VM, appuyez rapidement sur @kbd{F12} pour entrer dans le menu de démarrage.  Ensuite appuyez sur @kbd{2} et la touche @kbd{Entrée} pour valider votre choix."
+#: doc/guix.texi:2605
+msgid "@code{-enable-kvm} is optional, but significantly improves performance, @pxref{Running Guix in a VM}."
+msgstr "@code{-enable-kvm} est facultatif, mais améliore nettement les performances, @pxref{Running Guix in a VM}."
 
 #. type: enumerate
-#: doc/guix.texi:2440
+#: doc/guix.texi:2609
 msgid "You're now root in the VM, proceed with the installation process.  @xref{Preparing for Installation}, and follow the instructions."
 msgstr "Vous êtes maintenant root dans la VM, continuez en suivant la procédure d'installation.  @xref{Preparing for Installation}, et suivez les instructions."
 
 #. type: Plain text
-#: doc/guix.texi:2445
-msgid "Once installation is complete, you can boot the system that's on your @file{guixsd.img} image.  @xref{Running Guix in a VM}, for how to do that."
-msgstr "Une fois l'installation terminée, vous pouvez démarrer le système dans votre image @file{guixsd.img}.  @xref{Running Guix in a VM}, pour une manière de faire."
+#: doc/guix.texi:2614
+msgid "Once installation is complete, you can boot the system that's on your @file{guix-system.img} image.  @xref{Running Guix in a VM}, for how to do that."
+msgstr "Une fois l'installation terminée, vous pouvez démarrer le système dans votre image @file{guix-system.img}.  @xref{Running Guix in a VM}, pour une manière de faire."
 
 #. type: cindex
-#: doc/guix.texi:2449
+#: doc/guix.texi:2618
 #, no-wrap
 msgid "installation image"
 msgstr "image d'installation"
 
 #. type: Plain text
-#: doc/guix.texi:2452
+#: doc/guix.texi:2621
 msgid "The installation image described above was built using the @command{guix system} command, specifically:"
 msgstr "L'image d'installation décrite plus haut a été construite avec la commande @command{guix system}, plus précisément :"
 
 #. type: example
-#: doc/guix.texi:2456
+#: doc/guix.texi:2624
 #, no-wrap
-msgid ""
-"guix system disk-image --file-system-type=iso9660 \\\n"
-"  gnu/system/install.scm\n"
-msgstr ""
-"guix system disk-image --file-system-type=iso9660 \\\n"
-"  gnu/system/install.scm\n"
+msgid "guix system disk-image -t iso9660 gnu/system/install.scm\n"
+msgstr "guix system disk-image -t iso9660 gnu/system/install.scm\n"
 
 #. type: Plain text
-#: doc/guix.texi:2461
+#: doc/guix.texi:2629
 msgid "Have a look at @file{gnu/system/install.scm} in the source tree, and see also @ref{Invoking guix system} for more information about the installation image."
 msgstr "Regardez le fichier @file{gnu/system/install.scm} dans l'arborescence des sources et regardez aussi @ref{Invoking guix system} pour plus d'informations sur l'image d'installation."
 
 #. type: section
-#: doc/guix.texi:2462
+#: doc/guix.texi:2630
 #, no-wrap
 msgid "Building the Installation Image for ARM Boards"
 msgstr "Construire l'image d'installation pour les cartes ARM"
 
 #. type: Plain text
-#: doc/guix.texi:2466
+#: doc/guix.texi:2634
 msgid "Many ARM boards require a specific variant of the @uref{https://www.denx.de/wiki/U-Boot/, U-Boot} bootloader."
 msgstr "De nombreuses cartes ARM requièrent une variante spécifique du chargeur d'amorçage @uref{https://www.denx.de/wiki/U-Boot/, U-Boot}."
 
 #. type: Plain text
-#: doc/guix.texi:2470
+#: doc/guix.texi:2638
 msgid "If you build a disk image and the bootloader is not available otherwise (on another boot drive etc), it's advisable to build an image that includes the bootloader, specifically:"
 msgstr "Si vous construisez une image disque et que le chargeur d'amorçage n'est pas disponible autrement (sur un autre périphérique d'amorçage etc), il est recommandé de construire une image qui inclus le chargeur d'amorçage, plus précisément :"
 
 #. type: example
-#: doc/guix.texi:2473
+#: doc/guix.texi:2641
 #, no-wrap
 msgid "guix system disk-image --system=armhf-linux -e '((@@ (gnu system install) os-with-u-boot) (@@ (gnu system install) installation-os) \"A20-OLinuXino-Lime2\")'\n"
 msgstr "guix system disk-image --system=armhf-linux -e '((@@ (gnu system install) os-with-u-boot) (@@ (gnu system install) installation-os) \"A20-OLinuXino-Lime2\")'\n"
 
 #. type: Plain text
-#: doc/guix.texi:2477
+#: doc/guix.texi:2645
 msgid "@code{A20-OLinuXino-Lime2} is the name of the board.  If you specify an invalid board, a list of possible boards will be printed."
 msgstr "@code{A20-OLinuXino-Lime2} est le nom de la carte.  Si vous spécifiez une carte invalide, une liste de cartes possibles sera affichée."
 
+#. type: Plain text
+#: doc/guix.texi:2655
+msgid "Presumably, you've reached this section because either you have installed Guix on top of another distribution (@pxref{Installation}), or you've installed the standalone Guix System (@pxref{System Installation}).  It's time for you to get started using Guix and this section aims to help you do that and give you a feel of what it's like."
+msgstr "Vous êtes certainement arrivé·e à cette section parce que vous avez installé Guix sur une autre distribution (@pxref{Installation}), ou bien vous avez installé Guix System (@pxref{Installation du système}).  Il est temps pour vous de commencer à utiliser Guix et cette section est là pour vous aider à le faire et vous donner une idée de ce que c'est."
+
+#. type: Plain text
+#: doc/guix.texi:2659
+msgid "Guix is about installing software, so probably the first thing you'll want to do is to actually look for software.  Let's say you're looking for a text editor, you can run:"
+msgstr "Guix est, entre autres, un programme d'installation de logiciels, donc la première chose que vous voudrez probablement faire est de chercher un logiciel.  Disons que vous cherchez un éditeur de texte, vous pouvez lancer :"
+
+#. type: example
+#: doc/guix.texi:2662
+#, no-wrap
+msgid "guix search text editor\n"
+msgstr "guix search text editor\n"
+
+#. type: Plain text
+#: doc/guix.texi:2669
+msgid "This command shows you a number of matching @dfn{packages}, each time showing the package's name, version, a description, and additional info.  Once you've found out the one you want to use, let's say Emacs (ah ha!), you can go ahead and install it (run this command as a regular user, @emph{no need for root privileges}!):"
+msgstr "Cette commande vous montre un certain nombre de @dfn{paquets} correspondants, en indiquant à chaque fois le nom du paquet, sa version, une description et des informations supplémentaires.  Une fois que vous avez trouvé celui que vous voulez utiliser, disons Emacs (ah ha !), vous pouvez l'installer (lancez cette commande en tant qu' utilisateur·rice, @emph{pas besoin des privilèges d'administration} !) :"
+
+#. type: example
+#: doc/guix.texi:2672
+#, no-wrap
+msgid "guix install emacs\n"
+msgstr "guix install emacs\n"
+
+#. type: Plain text
+#: doc/guix.texi:2678
+msgid "You've installed your first package, congrats! In the process, you've probably noticed that Guix downloaded pre-built binaries; or, if you explicitly chose to @emph{not} use pre-built binaries, then probably Guix is still building software (@pxref{Substitutes}, for more info)."
+msgstr "Vous avez installé votre premier paquet, félicitations ! Vous avez probablement remarqué que Guix a téléchargé des binaires pré-compilés ; ou bien, si vous vous êtes dit : @emph{non}, pas de binaires pré-compilés, alors Guix est probablement encore en train de construire un logiciel (@pxref{Substitutes}, pour plus d'informations)."
+
+#. type: Plain text
+#: doc/guix.texi:2681
+msgid "Unless you're using Guix System, the @command{guix install} command must have printed this hint:"
+msgstr "À moins que vous utilisiez Guix System, la commande @command{guix install} doit avoir affiché cet indice :"
+
+#. type: example
+#: doc/guix.texi:2684
+#, no-wrap
+msgid ""
+"hint: Consider setting the necessary environment variables by running:\n"
+"\n"
+msgstr "conseil : pensez à définir les variables d'environnement nécessaires en exécutant : \n"
+
+#. type: example
+#: doc/guix.texi:2687
+#, no-wrap
+msgid ""
+"     GUIX_PROFILE=\"$HOME/.guix-profile\"\n"
+"     . \"$GUIX_PROFILE/etc/profile\"\n"
+"\n"
+msgstr ""
+"     GUIX_PROFILE=\"$HOME/.guix-profile\"\n"
+"     . \"$GUIX_PROFILE/etc/profile\"\n"
+
+#. type: example
+#: doc/guix.texi:2689
+#, no-wrap
+msgid "Alternately, see `guix package --search-paths -p \"$HOME/.guix-profile\"'.\n"
+msgstr "Vous pouvez également consulter `guix package --search-paths -p \"$HOME/.guix-profile\"'.\n"
+
+#. type: Plain text
+#: doc/guix.texi:2703
+msgid "Indeed, you must now tell your shell where @command{emacs} and other programs installed with Guix are to be found.  Pasting the two lines above will do just that: it will add @code{$HOME/.guix-profile/bin}---which is where the installed package is---to the @code{PATH} environment variable.  You can paste these two lines in your shell so they take effect right away, but more importantly you should add them to @file{~/.bash_profile} (or equivalent file if you do not use Bash) so that environment variables are set next time you spawn a shell.  You only need to do this once and other search paths environment variables will be taken care of similarly---e.g., if you eventually install @code{python} and Python libraries, @code{PYTHONPATH} will be defined."
+msgstr "En effet, vous devez maintenant indiquer à votre @i{shell} où se trouvent @command{emacs} et les autres programmes installés avec Guix.  En collant les deux lignes ci-dessus, c'est exactement ce que vous ferez : vous ajouterez @code{$HOME/.guix-profile/bin} --- qui est l'endroit où se trouve le paquet installé --- à la variable d'environnement @code{PATH}.  Vous pouvez coller ces deux lignes dans votre shell pour qu'elles prennent effet immédiatement, mais surtout vous devez les ajouter à @file{~/.bash_profile} (ou un fichier équivalent si vous n'utilisez pas Bash) afin que les variables d'environnement soient définies la prochaine fois que vous lancerez un shell.  Vous n'avez besoin de le faire qu'une seule fois et les autres variables d'environnement des chemins de recherche seront traitées de la même manière --- par exemple, si vous installez les bibliothèques @code{python} et Python, @code{PYTHONPATH} sera définie."
+
+#. type: Plain text
+#: doc/guix.texi:2706
+msgid "You can go on installing packages at your will.  To list installed packages, run:"
+msgstr "Vous pouvez continuer à installer des paquets à votre guise.  Pour lister les paquets installés, lancez :"
+
+#. type: example
+#: doc/guix.texi:2709
+#, no-wrap
+msgid "guix package --list-installed\n"
+msgstr "guix package --list-installed\n"
+
+#. type: Plain text
+#: doc/guix.texi:2714
+msgid "To remove a package, you would unsurprisingly run @command{guix remove}.  A distinguishing feature is the ability to @dfn{roll back} any operation you made---installation, removal, upgrade---by simply typing:"
+msgstr "Pour supprimer un paquet, sans surprise, lancez @command{guix remove}.  Une caractéristique distinctive est la possibilité de faire @dfn{revenir en arrière} toute opération que vous avez effectuée --- installation, suppression, mise à niveau --- en tapant simplement :"
+
+#. type: example
+#: doc/guix.texi:2717
+#, no-wrap
+msgid "guix package --roll-back\n"
+msgstr "guix package --roll-back\n"
+
+#. type: Plain text
+#: doc/guix.texi:2722
+msgid "This is because each operation is in fact a @dfn{transaction} that creates a new @dfn{generation}.  These generations and the difference between them can be displayed by running:"
+msgstr "C'est parce que chaque opération est en fait une @dfn{transaction} qui crée une nouvelle @dfn{génération}.  Les générations et leurs différences entre elles peuvent être affichées en lançant :"
+
+#. type: example
+#: doc/guix.texi:2725
+#, no-wrap
+msgid "guix package --list-generations\n"
+msgstr "guix package --list-generations\n"
+
+#. type: Plain text
+#: doc/guix.texi:2728
+msgid "Now you know the basics of package management!"
+msgstr "Vous connaissez maintenant les bases de la gestion des paquets !"
+
+#. type: quotation
+#: doc/guix.texi:2729 doc/guix.texi:2788
+#, no-wrap
+msgid "Going further"
+msgstr "Aller plus loin"
+
+#. type: quotation
+#: doc/guix.texi:2737
+msgid "@xref{Package Management}, for more about package management.  You may like @dfn{declarative} package management with @command{guix package --manifest}, managing separate @dfn{profiles} with @option{--profile}, deleting old generations, collecting garbage, and other nifty features that will come in handy as you become more familiar with Guix.  If you are a developer, @pxref{Development} for additional tools.  And if you're curious, @pxref{Features}, to peek under the hood."
+msgstr "@xref{Package Management}, pour en savoir plus sur la gestion des paquets.  Vous pouvez aimer la gestion  @dfn{declarative} des paquets avec @command{guix package --manifest}, la gestion de @dfn{profils} séparés avec @option{--profil}, la suppression des anciennes générations, le ramasse-miettes et d'autres fonctionnalités astucieuses qui vous seront utiles à mesure que vous vous familiariserez avec Guix.  Si vous développez du code, @pxref{Development} pour des outils supplémentaires.  Et si vous êtes curieux·euse, @pxref{Features}, pour jeter un coup d'œil sous le capot."
+
+#. type: Plain text
+#: doc/guix.texi:2742
+msgid "Once you've installed a set of packages, you will want to periodically @emph{upgrade} them to the latest and greatest version.  To do that, you will first pull the latest revision of Guix and its package collection:"
+msgstr "Une fois que vous avez installé un ensemble de paquets, vous voudrez périodiquement faire une @emph{mise à jour} à la dernière version flambant neuve.  Pour cela, vous devez d'abord récupérer la dernière révision de Guix et de sa collection de paquets :"
+
+#. type: Plain text
+#: doc/guix.texi:2752
+msgid "The end result is a new @command{guix} command, under @file{~/.config/guix/current/bin}.  Unless you're on Guix System, the first time you run @command{guix pull}, be sure to follow the hint that the command prints and, similar to what we saw above, paste these two lines in your terminal and @file{.bash_profile}:"
+msgstr "Le résultat final est une nouvelle commande @command{guix}, sous @file{~/.config/guix/current/bin}. A moins que vous ne soyez sous Guix System, la première fois que vous lancez @command{guix pull}, assurez-vous de suivre le conseil que la commande affiche et, comme nous l'avons vu ci-dessus, collez ces deux lignes dans votre terminal et dans @file{.bash_profile}:"
+
+#. type: example
+#: doc/guix.texi:2756
+#, no-wrap
+msgid ""
+"GUIX_PROFILE=\"$HOME/.config/guix/current/etc/profile\"\n"
+". \"$GUIX_PROFILE/etc/profile\"\n"
+msgstr ""
+"GUIX_PROFILE=\"$HOME/.config/guix/current/etc/profile\"\n"
+". \"$GUIX_PROFILE/etc/profile\"\n"
+
+#. type: Plain text
+#: doc/guix.texi:2760
+msgid "You must also instruct your shell to point to this new @command{guix}:"
+msgstr "Vous devez aussi informer votre shell de pointer sur ce nouveau @command{guix}:"
+
+#. type: example
+#: doc/guix.texi:2763
+#, no-wrap
+msgid "hash guix\n"
+msgstr "hash guix\n"
+
+#. type: Plain text
+#: doc/guix.texi:2767
+msgid "At this point, you're running a brand new Guix.  You can thus go ahead and actually upgrade all the packages you previously installed:"
+msgstr "A ce stade, vous pilotez un Guix tout neuf.  Vous pouvez donc aller de l'avant et mettre effectivement à jour tous les paquets que vous avez installés précédemment :"
+
+#. type: example
+#: doc/guix.texi:2770
+#, no-wrap
+msgid "guix upgrade\n"
+msgstr "guix upgrade\n"
+
+#. type: Plain text
+#: doc/guix.texi:2776
+msgid "As you run this command, you will see that binaries are downloaded (or perhaps some packages are built), and eventually you end up with the upgraded packages.  Should one of these upgraded packages not be to your liking, remember you can always roll back!"
+msgstr "En exécutant cette commande, vous verrez que des binaires sont téléchargés (ou peut-être que certains paquets sont construits), et vous finirez par obtenir les paquets mis à jour.  Si l'un de ces paquets n'est pas à votre goût, n'oubliez pas que vous pouvez toujours revenir en arrière !"
+
+#. type: Plain text
+#: doc/guix.texi:2779
+msgid "You can display the exact revision of Guix you're currently using by running:"
+msgstr "Vous pouvez afficher la révision exacte de Guix actuellement en cours d'exécution en lançant :"
+
+#. type: example
+#: doc/guix.texi:2782
+#, no-wrap
+msgid "guix describe\n"
+msgstr "guix describe\n"
+
+#. type: Plain text
+#: doc/guix.texi:2787
+msgid "The information it displays is @emph{all it takes to reproduce the exact same Guix}, be it at a different point in time or on a different machine."
+msgstr "L'information affichée est @emph{tout ce qu'il faut pour reproduire exactement le même Guix}, que ce soit à un moment différent ou sur une machine différente."
+
+#. type: quotation
+#: doc/guix.texi:2793
+msgid "@xref{Invoking guix pull}, for more information.  @xref{Channels}, on how to specify additional @dfn{channels} to pull packages from, how to replicate Guix, and more.  You may also find @command{time-machine} handy (@pxref{Invoking guix time-machine})."
+msgstr "@xref{Invoquer guix pull}, pour plus d'informations.  @xref{Channels}, sur la façon de spécifier des @dfn{canaux} supplémentaires pour extraire des paquets, sur la façon de répliquer Guix, et plus encore.  Vous pouvez également trouver @command{time-machine} pratique (@pxref{Invoquer guix time-machine})."
+
+#. type: Plain text
+#: doc/guix.texi:2798
+msgid "If you installed Guix System, one of the first things you'll want to do is to upgrade your system.  Once you've run @command{guix pull} to get the latest Guix, you can upgrade the system like this:"
+msgstr "Si vous avez installé Guix System, une des premières choses que vous voudrez faire est de le mettre à jour. Une fois que vous avez lancé @command{guix pull} pour obtenir le dernier Guix, vous pouvez mettre à jour le système comme ceci :"
+
+#. type: example
+#: doc/guix.texi:2801
+#, no-wrap
+msgid "sudo guix system reconfigure /etc/config.scm\n"
+msgstr "sudo guix system reconfigure /etc/config.scm\n"
+
+#. type: Plain text
+#: doc/guix.texi:2810
+msgid "Upon completion, the system runs the latest versions of its software packages.  When you eventually reboot, you'll notice a sub-menu in the bootloader that reads ``Old system generations'': it's what allows you to boot @emph{an older generation of your system}, should the latest generation be ``broken'' or otherwise unsatisfying.  Just like for packages, you can always @emph{roll back} to a previous generation @emph{of the whole system}:"
+msgstr "Ceci terminé, le système exécute les dernières versions de ses logiciels.  Lorsque vous redémarrez, vous remarquerez un sous-menu dans le chargeur d'amorçage qui indique « Old system generations » : c'est ce qui vous permet de démarrer @emph{une ancienne génération de votre système}, si la dernière génération est « cassée » ou insatisfaisante.  Tout comme pour les paquets, vous pouvez toujours @emph{revenir} à une génération précédente @emph{de l'ensemble du système} :"
+
+#. type: example
+#: doc/guix.texi:2813
+#, no-wrap
+msgid "sudo guix system roll-back\n"
+msgstr "sudo guix system roll-back\n"
+
+#. type: Plain text
+#: doc/guix.texi:2820
+msgid "There are many things you'll probably want to tweak on your system: adding new user accounts, adding new system services, fiddling with the configuration of those services, etc.  The system configuration is @emph{entirely} described in the @file{/etc/config.scm} file.  @xref{Using the Configuration System}, to learn how to change it."
+msgstr "Il y a beaucoup de choses que vous voudrez probablement modifier sur votre système : ajouter de nouveaux comptes utilisateur·rice·s, ajouter de nouveaux services système, modifier la configuration de ces services, etc.  La configuration du système est @emph{entièrement} décrite dans le fichier @file{/etc/config.scm}.  @xref{Utiliser le système de configuration}, pour apprendre à le modifier."
+
+#. type: Plain text
+#: doc/guix.texi:2822
+msgid "Now you know enough to get started!"
+msgstr "Maintenant, vous en savez assez pour commencer !"
+
+#. type: quotation
+#: doc/guix.texi:2823
+#, no-wrap
+msgid "Resources"
+msgstr "Ressources"
+
+#. type: quotation
+#: doc/guix.texi:2826
+msgid "The rest of this manual provides a reference for all things Guix.  Here are some additional resources you may find useful:"
+msgstr "Le reste de ce manuel constitue une référence pour tout ce qui concerne Guix.  Voici quelques ressources supplémentaires que vous pourriez trouver utiles :"
+
+#. type: itemize
+#: doc/guix.texi:2831
+msgid "@xref{Top,,, guix-cookbook, The GNU Guix Cookbook}, for a list of ``how-to'' style of recipes for a variety of applications."
+msgstr "@xref{Top, , , guix-cookbook, The GNU Guix Cookbook}, pour une liste de recettes de style \"how-to\" pour une variété d'applications."
+
+#. type: itemize
+#: doc/guix.texi:2836
+msgid "The @uref{https://guix.gnu.org/guix-refcard.pdf, GNU Guix Reference Card} lists in two pages most of the commands and options you'll ever need."
+msgstr "La @uref{https://guix.gnu.org/guix-refcard.pdf, GNU Guix Reference Card} énumère en deux pages la plupart des commandes et options dont vous aurez besoin."
+
+#. type: itemize
+#: doc/guix.texi:2841
+msgid "The web site contains @uref{https://guix.gnu.org/en/videos/, instructional videos} covering topics such as everyday use of Guix, how to get help, and how to become a contributor."
+msgstr "Le site web contient @uref{https://guix.gnu.org/en/videos/, des vidéos instructives} couvrant des sujets tels que l'utilisation quotidienne de Guix, comment obtenir de l'aide et comment devenir un·e contributeur·rice."
+
+#. type: itemize
+#: doc/guix.texi:2845
+msgid "@xref{Documentation}, to learn how to access documentation on your computer."
+msgstr "@xref{Documentation}, pour savoir comment accéder à la documentation sur votre ordinateur."
+
+#. type: quotation
+#: doc/guix.texi:2848
+msgid "We hope you will enjoy Guix as much as the community enjoys building it!"
+msgstr "Nous espérons que vous apprécierez Guix autant que la communauté a de plaisir à le construire !"
+
 #. type: cindex
-#: doc/guix.texi:2482
+#: doc/guix.texi:2854
 #, no-wrap
 msgid "packages"
 msgstr "paquets"
 
 #. type: Plain text
-#: doc/guix.texi:2487
+#: doc/guix.texi:2859
 msgid "The purpose of GNU Guix is to allow users to easily install, upgrade, and remove software packages, without having to know about their build procedures or dependencies.  Guix also goes beyond this obvious set of features."
 msgstr "Le but de GNU Guix est de permettre à ses utilisatrices et utilisateurs d'installer, mettre à jour et supprimer facilement des paquets logiciels sans devoir connaître leur procédure de construction ou leurs dépendances.  Guix va aussi plus loin que ces fonctionnalités évidentes."
 
 #. type: Plain text
-#: doc/guix.texi:2495
+#: doc/guix.texi:2867
 msgid "This chapter describes the main features of Guix, as well as the package management tools it provides.  Along with the command-line interface described below (@pxref{Invoking guix package, @code{guix package}}), you may also use the Emacs-Guix interface (@pxref{Top,,, emacs-guix, The Emacs-Guix Reference Manual}), after installing @code{emacs-guix} package (run @kbd{M-x guix-help} command to start with it):"
 msgstr "Ce chapitre décrit les principales fonctionnalités de Guix, ainsi que des outils de gestion des paquets qu'il fournit.  En plus de l'interface en ligne de commande décrite en dessous de (@pxref{Invoquer guix package, @code{guix package}}), vous pouvez aussi utiliser l'interface Emacs-Guix (@pxref{Top,,, emacs-guix, Le manuel de référence de emacs-guix}), après avoir installé le paquet @code{emacs-guix} (lancez la commande @kbd{M-x guix-help} pour le démarrer) :"
 
 #. type: example
-#: doc/guix.texi:2498
+#: doc/guix.texi:2870
 #, no-wrap
 msgid "guix install emacs-guix\n"
 msgstr "guix install emacs-guix\n"
 
 #. type: Plain text
-#: doc/guix.texi:2519
+#: doc/guix.texi:2891
+msgid "Here we assume you've already made your first steps with Guix (@pxref{Getting Started}) and would like to get an overview about what's going on under the hood."
+msgstr "Ici, nous supposons que vous avez déjà fait vos premiers pas avec Guix @pxref{Getting Started}) et que vous voulez avoir un aperçu de ce qui se passe sous le capot."
+
+#. type: Plain text
+#: doc/guix.texi:2895
 msgid "When using Guix, each package ends up in the @dfn{package store}, in its own directory---something that resembles @file{/gnu/store/xxx-package-1.2}, where @code{xxx} is a base32 string."
 msgstr "Lorsque vous utilisez Guix, chaque paquet arrive dans @dfn{dépôt des paquets}, dans son propre répertoire — quelque chose comme @file{/gnu/store/xxx-paquet-1.2}, où @code{xxx} est une chaîne en base32."
 
 #. type: Plain text
-#: doc/guix.texi:2524
+#: doc/guix.texi:2900
 msgid "Instead of referring to these directories, users have their own @dfn{profile}, which points to the packages that they actually want to use.  These profiles are stored within each user's home directory, at @code{$HOME/.guix-profile}."
 msgstr "Plutôt que de se rapporter à ces répertoires, les utilisateur·rice·s ont leur propre @dfn{profil} qui pointe vers les paquets qu'ils ou elles veulent vraiment utiliser.  Ces profils sont stockés dans le répertoire personnel de chacun·e dans @code{$HOME/.guix-profile}."
 
 #. type: Plain text
-#: doc/guix.texi:2532
+#: doc/guix.texi:2908
 msgid "For example, @code{alice} installs GCC 4.7.2.  As a result, @file{/home/alice/.guix-profile/bin/gcc} points to @file{/gnu/store/@dots{}-gcc-4.7.2/bin/gcc}.  Now, on the same machine, @code{bob} had already installed GCC 4.8.0.  The profile of @code{bob} simply continues to point to @file{/gnu/store/@dots{}-gcc-4.8.0/bin/gcc}---i.e., both versions of GCC coexist on the same system without any interference."
 msgstr "Par exemple, @code{alice} installe GCC 4.7.2.  Il en résulte que @file{/home/alice/.guix-profile/bin/gcc} pointe vers @file{/gnu/store/@dots{}-gcc-4.7.2/bin/gcc}. Maintenant, sur la même machine, @code{bob} a déjà installé GCC 4.8.0.  Le profil de @code{bob} continue simplement de pointer vers @file{/gnu/store/@dots{}-gcc-4.8.0/bin/gcc} — c.-à-d.@: les deux versions de GCC coexistent surs le même système sans aucune interférence."
 
 #. type: Plain text
-#: doc/guix.texi:2536
+#: doc/guix.texi:2912
 msgid "The @command{guix package} command is the central tool to manage packages (@pxref{Invoking guix package}).  It operates on the per-user profiles, and can be used @emph{with normal user privileges}."
 msgstr "La commande @command{guix package} est l'outil central pour gérer les paquets (@pxref{Invoking guix package}).  Il opère sur les profils de chaque utilisateur·rice et peut être utilisé avec les @emph{privilèges normaux}."
 
 #. type: cindex
-#: doc/guix.texi:2537 doc/guix.texi:2616
+#: doc/guix.texi:2913 doc/guix.texi:2992
 #, no-wrap
 msgid "transactions"
 msgstr "transactions"
 
 #. type: Plain text
-#: doc/guix.texi:2544
+#: doc/guix.texi:2920
 msgid "The command provides the obvious install, remove, and upgrade operations.  Each invocation is actually a @emph{transaction}: either the specified operation succeeds, or nothing happens.  Thus, if the @command{guix package} process is terminated during the transaction, or if a power outage occurs during the transaction, then the user's profile remains in its previous state, and remains usable."
 msgstr "La commande fournit les opérations évidentes d'installation, de suppression et de mise à jour.  Chaque invocation est en fait une @emph{transaction} : soit l'opération demandée réussit, soit rien ne se passe.  Ainsi, si le processus @command{guix package} est terminé pendant la transaction ou si une panne de courant arrive pendant la transaction, le profil reste dans son état précédent et reste utilisable."
 
 #. type: Plain text
-#: doc/guix.texi:2552
+#: doc/guix.texi:2928
 msgid "In addition, any package transaction may be @emph{rolled back}.  So, if, for example, an upgrade installs a new version of a package that turns out to have a serious bug, users may roll back to the previous instance of their profile, which was known to work well.  Similarly, the global system configuration on Guix is subject to transactional upgrades and roll-back (@pxref{Using the Configuration System})."
 msgstr "En plus, il est possible @emph{d'annuler} toute transaction sur les paquets.  Donc si par exemple un mise à jour installe une nouvelle version d'un paquet qui révèle un bogue sérieux, vous pouvez revenir en arrière à l'instance précédente de votre profil que vous saviez bien fonctionner.  De même, la configuration globale du système dans Guix est sujette aux mises à jour transactionnelles et aux annulations (@pxref{Using the Configuration System})."
 
 #. type: Plain text
-#: doc/guix.texi:2559
+#: doc/guix.texi:2935
 msgid "All packages in the package store may be @emph{garbage-collected}.  Guix can determine which packages are still referenced by user profiles, and remove those that are provably no longer referenced (@pxref{Invoking guix gc}).  Users may also explicitly remove old generations of their profile so that the packages they refer to can be collected."
 msgstr "Tout paquet du dépôt des paquets peut être @emph{glané}.  Guix peut déterminer quels paquets sont toujours référencés par les profils des utilisateur·rice·s et supprimer ceux qui ne sont de tout évidence plus référencés (@pxref{Invoking guix gc}).  Les utilisateur·rice·s peuvent toujours explicitement supprimer les anciennes générations de leur profil pour que les paquets auxquels elles faisaient référence puissent être glanés."
 
 #. type: cindex
-#: doc/guix.texi:2560 doc/guix.texi:4087
+#: doc/guix.texi:2936 doc/guix.texi:4572
 #, no-wrap
 msgid "reproducibility"
 msgstr "reproductibilité"
 
 #. type: Plain text
-#: doc/guix.texi:2572
+#: doc/guix.texi:2948
 msgid "Guix takes a @dfn{purely functional} approach to package management, as described in the introduction (@pxref{Introduction}).  Each @file{/gnu/store} package directory name contains a hash of all the inputs that were used to build that package---compiler, libraries, build scripts, etc.  This direct correspondence allows users to make sure a given package installation matches the current state of their distribution.  It also helps maximize @dfn{build reproducibility}: thanks to the isolated build environments that are used, a given build is likely to yield bit-identical files when performed on different machines (@pxref{Invoking guix-daemon, container})."
 msgstr "Guix prend une approche @dfn{purement fonctionnelle} de la gestion de paquets, telle que décrite dans l'introduction (@pxref{Introduction}).  Chaque nom de répertoire de paquet dans @file{/gnu/store} contient un hash de toutes les entrées qui ont été utilisées pendant la construction de ce paquet — le compilateur, les bibliothèques, les scripts de construction, etc.  Cette correspondance directe permet aux utilisateur·rice·s de s'assurer que l'installation d'un paquet donné correspond à l'état actuel de leur distribution.  Elle aide aussi à maximiser la @dfn{reproductibilité} : grâce aux environnements de construction utilisés, une construction donnée a de forte chances de donner des fichiers identiques bit-à-bit lorsqu'elle est effectuée sur des machines différentes (@pxref{Invoking guix-daemon, container})."
 
 #. type: Plain text
-#: doc/guix.texi:2583
+#: doc/guix.texi:2959
 msgid "This foundation allows Guix to support @dfn{transparent binary/source deployment}.  When a pre-built binary for a @file{/gnu/store} item is available from an external source---a @dfn{substitute}, Guix just downloads it and unpacks it; otherwise, it builds the package from source, locally (@pxref{Substitutes}).  Because build results are usually bit-for-bit reproducible, users do not have to trust servers that provide substitutes: they can force a local build and @emph{challenge} providers (@pxref{Invoking guix challenge})."
 msgstr "Ce fondement permet à Guix de supporter le @dfn{déploiement transparent de binaire ou source}.  Lorsqu'une binaire pré-construit pour une entrée de @file{/gnu/store} est disponible depuis une source externe (un @dfn{substitut}), Guix le télécharge simplement et le décompresse ; sinon, il construit le paquet depuis les sources localement (@pxref{Substituts}).  Comme les résultats des constructions sont généralement reproductibles au bit près, si vous n'avez pas besoin de faire confiance aux serveurs qui fournissent les substituts : vous pouvez forcer une construction locale et @emph{défier} les fournisseurs (@pxref{Invoking guix challenge})."
 
 #. type: Plain text
-#: doc/guix.texi:2589
+#: doc/guix.texi:2965
 msgid "Control over the build environment is a feature that is also useful for developers.  The @command{guix environment} command allows developers of a package to quickly set up the right development environment for their package, without having to manually install the dependencies of the package into their profile (@pxref{Invoking guix environment})."
 msgstr "Le contrôle de l'environnement de construction est aussi une fonctionnalité utile pour les développeurs.  La commande @command{guix environment} permet aux développeurs d'un paquet de mettre en place rapidement le bon environnement de développement pour leur paquet, sans avoir à installer manuellement les dépendances du paquet dans leur profil (@pxref{Invoking guix environment})."
 
 #. type: cindex
-#: doc/guix.texi:2590
+#: doc/guix.texi:2966
 #, no-wrap
 msgid "replication, of software environments"
 msgstr "réplication, des environnements logiciels"
 
 #. type: cindex
-#: doc/guix.texi:2591
+#: doc/guix.texi:2967
 #, no-wrap
 msgid "provenance tracking, of software artifacts"
 msgstr "suivi de la provenance, des artefacts logiciels"
 
 #. type: Plain text
-#: doc/guix.texi:2598
+#: doc/guix.texi:2974
 msgid "All of Guix and its package definitions is version-controlled, and @command{guix pull} allows you to ``travel in time'' on the history of Guix itself (@pxref{Invoking guix pull}).  This makes it possible to replicate a Guix instance on a different machine or at a later point in time, which in turn allows you to @emph{replicate complete software environments}, while retaining precise @dfn{provenance tracking} of the software."
 msgstr "La totalité de Guix et des définitions de paquets sont placés sous contrôle de version, et @command{guix pull} vous permet de « voyager dans le temps » de l'historique de Guix lui-même (@pxref{Invoking guix pull}).  Cela est rend possible la réplication d'une instance Guix sur une machine différente ou plus tard, ce qui vous permet de @emph{répliquer des environnements logiciels complets}, tout en garantissant un @dfn{suivi de provenance} précis des logiciels."
 
 #. type: section
-#: doc/guix.texi:2600
+#: doc/guix.texi:2976
 #, no-wrap
 msgid "Invoking @command{guix package}"
 msgstr "Invoquer @command{guix package}"
 
 #. type: cindex
-#: doc/guix.texi:2602
+#: doc/guix.texi:2978
 #, no-wrap
 msgid "installing packages"
 msgstr "installer des paquets"
 
 #. type: cindex
-#: doc/guix.texi:2603
+#: doc/guix.texi:2979
 #, no-wrap
 msgid "removing packages"
 msgstr "supprimer des paquets"
 
 #. type: cindex
-#: doc/guix.texi:2604
+#: doc/guix.texi:2980
 #, no-wrap
 msgid "package installation"
 msgstr "installation de paquets"
 
 #. type: cindex
-#: doc/guix.texi:2605
+#: doc/guix.texi:2981
 #, no-wrap
 msgid "package removal"
 msgstr "suppression de paquets"
 
 #. type: Plain text
-#: doc/guix.texi:2611
+#: doc/guix.texi:2987
 msgid "The @command{guix package} command is the tool that allows users to install, upgrade, and remove packages, as well as rolling back to previous configurations.  It operates only on the user's own profile, and works with normal user privileges (@pxref{Features}).  Its syntax is:"
 msgstr "La commande @command{guix package} est l'outil qui permet d'installer, mettre à jour et supprimer les paquets ainsi que de revenir à une configuration précédente.  Elle n'opère que dans le profil de l'utilisateur·rice et fonctionne avec les privilèges normaux (@pxref{Fonctionnalités}).  Sa syntaxe est :"
 
 #. type: example
-#: doc/guix.texi:2614
+#: doc/guix.texi:2990
 #, no-wrap
 msgid "guix package @var{options}\n"
 msgstr "guix package @var{options}\n"
 
 #. type: Plain text
-#: doc/guix.texi:2621
+#: doc/guix.texi:2997
 msgid "Primarily, @var{options} specifies the operations to be performed during the transaction.  Upon completion, a new profile is created, but previous @dfn{generations} of the profile remain available, should the user want to roll back."
 msgstr "@var{options} spécifie d'abord les opérations à effectuer pendant la transaction.  À la fin, une nouvelle génération du profil est créée mais les @dfn{générations} précédentes du profil restent disponibles si l'utilisateur·rice souhaite y revenir."
 
 #. type: Plain text
-#: doc/guix.texi:2624
+#: doc/guix.texi:3000
 msgid "For example, to remove @code{lua} and install @code{guile} and @code{guile-cairo} in a single transaction:"
 msgstr "Par exemple, pour supprimer @code{lua} et installer @code{guile} et @code{guile-cairo} en une seule transaction :"
 
 #. type: example
-#: doc/guix.texi:2627
+#: doc/guix.texi:3003
 #, no-wrap
 msgid "guix package -r lua -i guile guile-cairo\n"
 msgstr "guix package -r lua -i guile guile-cairo\n"
 
 #. type: cindex
-#: doc/guix.texi:2629
+#: doc/guix.texi:3005
 #, no-wrap
 msgid "aliases, for @command{guix package}"
 msgstr "alias, de @command{guix package}"
 
 #. type: Plain text
-#: doc/guix.texi:2631
+#: doc/guix.texi:3007
 msgid "For your convenience, we also provide the following aliases:"
 msgstr "Parce que c'est pratique, nous fournissons aussi les alias suivants :"
 
 #. type: itemize
-#: doc/guix.texi:2635
+#: doc/guix.texi:3011
 msgid "@command{guix search} is an alias for @command{guix package -s},"
 msgstr "@command{guix search} est un alias de @command{guix package -s},"
 
 #. type: itemize
-#: doc/guix.texi:2637
+#: doc/guix.texi:3013
 msgid "@command{guix install} is an alias for @command{guix package -i},"
 msgstr "@command{guix install} est un alias de @command{guix package -i},"
 
 #. type: itemize
-#: doc/guix.texi:2639
+#: doc/guix.texi:3015
 msgid "@command{guix remove} is an alias for @command{guix package -r},"
 msgstr "@command{guix remove} est un alias de @command{guix package -r},"
 
 #. type: itemize
-#: doc/guix.texi:2641
-msgid "and @command{guix upgrade} is an alias for @command{guix package -u}."
-msgstr "et @command{guix upgrade} est un alias de @command{guix package -u},"
+#: doc/guix.texi:3017
+msgid "@command{guix upgrade} is an alias for @command{guix package -u},"
+msgstr "@command{guix upgrade} est un alias de @command{guix package -u},"
+
+#. type: itemize
+#: doc/guix.texi:3019
+msgid "and @command{guix show} is an alias for @command{guix package --show=}."
+msgstr "et @command{guix search} est un alias de @command{guix package -s}."
 
 #. type: Plain text
-#: doc/guix.texi:2646
+#: doc/guix.texi:3024
 msgid "These aliases are less expressive than @command{guix package} and provide fewer options, so in some cases you'll probably want to use @command{guix package} directly."
 msgstr "Ces alias sont moins expressifs que @command{guix package} et fournissent moins d'options, donc dans certains cas vous devrez probablement utiliser @command{guix package} directement."
 
 #. type: Plain text
-#: doc/guix.texi:2651
+#: doc/guix.texi:3029
 msgid "@command{guix package} also supports a @dfn{declarative approach} whereby the user specifies the exact set of packages to be available and passes it @i{via} the @option{--manifest} option (@pxref{profile-manifest, @option{--manifest}})."
 msgstr "@command{guix package} supporte aussi une @dfn{approche déclarative} où on spécifie l'ensemble exact des paquets qui doivent être disponibles que l'on passe @i{via} l'option @option{--manifest} (@pxref{profile-manifest, @option{--manifest}})."
 
 #. type: cindex
-#: doc/guix.texi:2652
+#: doc/guix.texi:3030
 #, no-wrap
 msgid "profile"
 msgstr "profil"
 
 #. type: Plain text
-#: doc/guix.texi:2658
-msgid "For each user, a symlink to the user's default profile is automatically created in @file{$HOME/.guix-profile}.  This symlink always points to the current generation of the user's default profile.  Thus, users can add @file{$HOME/.guix-profile/bin} to their @code{PATH} environment variable, and so on."
-msgstr "Pour chaque compte, un lien symbolique vers son profil par défaut est automatiquement créé dans @file{$HOME/.guix-profile}.  Ce lien symbolique pointe toujours vers la génération actuelle du profil par défaut du compte.  Ainsi, on peut ajouter @file{$HOME/.guix-profile/bin} à sa variable d'environnement @code{PATH} etc."
+#: doc/guix.texi:3036
+msgid "For each user, a symlink to the user's default profile is automatically created in @file{$HOME/.guix-profile}.  This symlink always points to the current generation of the user's default profile.  Thus, users can add @file{$HOME/.guix-profile/bin} to their @env{PATH} environment variable, and so on."
+msgstr "Pour chaque utilisateur·rice, un lien symbolique vers son profil par défaut est automatiquement créé dans @file{$HOME/.guix-profile}.  Ce lien symbolique pointe toujours vers la génération actuelle du profil par défaut du compte.  Ainsi, on peut ajouter @file{$HOME/.guix-profile/bin} à sa variable d'environnement @env{PATH} etc."
 
 #. type: cindex
-#: doc/guix.texi:2658 doc/guix.texi:2855
+#: doc/guix.texi:3036 doc/guix.texi:3266
 #, no-wrap
 msgid "search paths"
 msgstr "chemins de recherche"
 
 #. type: Plain text
-#: doc/guix.texi:2663
+#: doc/guix.texi:3041
 msgid "If you are not using Guix System, consider adding the following lines to your @file{~/.bash_profile} (@pxref{Bash Startup Files,,, bash, The GNU Bash Reference Manual}) so that newly-spawned shells get all the right environment variable definitions:"
 msgstr "Si vous n'utilisez pas la distribution système Guix, vous devriez ajouter les lignes suivantes à votre @file{~/.bash_profile} (@pxref{Bash Startup Files,,, bash, The GNU Bash Reference Manual}) pour que les shells créés ensuite aient tous les bonnes définitions des variables d'environnement :"
 
 #. type: example
-#: doc/guix.texi:2667
+#: doc/guix.texi:3045
 #, no-wrap
 msgid ""
 "GUIX_PROFILE=\"$HOME/.guix-profile\" ; \\\n"
@@ -6489,249 +7869,294 @@ msgstr ""
 "source \"$HOME/.guix-profile/etc/profile\"\n"
 
 #. type: Plain text
-#: doc/guix.texi:2678
-msgid "In a multi-user setup, user profiles are stored in a place registered as a @dfn{garbage-collector root}, which @file{$HOME/.guix-profile} points to (@pxref{Invoking guix gc}).  That directory is normally @code{@var{localstatedir}/guix/profiles/per-user/@var{user}}, where @var{localstatedir} is the value passed to @code{configure} as @code{--localstatedir}, and @var{user} is the user name.  The @file{per-user} directory is created when @command{guix-daemon} is started, and the @var{user} sub-directory is created by @command{guix package}."
-msgstr "Dans un environnement multi-utilisateur·rice, les profils sont stockés comme une @dfn{racine du ramasse-miettes}, vers laquelle pointe @file{$HOME/.guix-profile} (@pxref{Invoking guix gc}).  Ce répertoire est normalement @code{@var{localstatedir}/guix/profiles/per-user/@var{compte}},  où @var{localstatedir} est la valeur passée à @code{configure} avec @code{--localstatedir} et @var{compte} le nom du compte.  Le répertoire @file{per-user} est créé lorsque @command{guix-daemon} est démarré et le sous-répertoire @var{user} est créé par @command{guix package}."
+#: doc/guix.texi:3056
+msgid "In a multi-user setup, user profiles are stored in a place registered as a @dfn{garbage-collector root}, which @file{$HOME/.guix-profile} points to (@pxref{Invoking guix gc}).  That directory is normally @code{@var{localstatedir}/guix/profiles/per-user/@var{user}}, where @var{localstatedir} is the value passed to @code{configure} as @option{--localstatedir}, and @var{user} is the user name.  The @file{per-user} directory is created when @command{guix-daemon} is started, and the @var{user} sub-directory is created by @command{guix package}."
+msgstr "Dans un environnement multi-utilisateur·rice, les profils des utilisateur·rice·s sont stockés dans un emplacement enregistré comme @dfn{garbage-collector root}, vers lequel @file{$HOME/.guix-profile} pointe (@pxref{Invoquer guix gc}).  Ce répertoire est normalement @code{@var{localstatedir}/guix/profiles/per-user/@var{user}}, où @var{localstatedir} est la valeur passée à @code{configure} comme @option{--localstatedir}, et @var{user} est le nom d'utilisateur·rice.  Le répertoire @file{per-user} est créé au démarrage de @command{guix-daemon}, et le sous-répertoire @var{user} est créé par @command{guix package}."
 
 #. type: Plain text
-#: doc/guix.texi:2680
+#: doc/guix.texi:3058
 msgid "The @var{options} can be among the following:"
 msgstr "Les @var{options} peuvent être les suivante :"
 
 #. type: item
-#: doc/guix.texi:2683
+#: doc/guix.texi:3061
 #, no-wrap
 msgid "--install=@var{package} @dots{}"
 msgstr "--install=@var{paquet} @dots{}"
 
 #. type: itemx
-#: doc/guix.texi:2684
+#: doc/guix.texi:3062
 #, no-wrap
 msgid "-i @var{package} @dots{}"
 msgstr "-i @var{paquet} @dots{}"
 
 #. type: table
-#: doc/guix.texi:2686
+#: doc/guix.texi:3064
 msgid "Install the specified @var{package}s."
 msgstr "Installer les @var{paquet}s spécifiés."
 
 #. type: table
-#: doc/guix.texi:2691
-msgid "Each @var{package} may specify either a simple package name, such as @code{guile}, or a package name followed by an at-sign and version number, such as @code{guile@@1.8.8} or simply @code{guile@@1.8} (in the latter case, the newest version prefixed by @code{1.8} is selected.)"
-msgstr "Chaque @var{paquet} peut spécifier soit un simple nom de paquet, comme @code{guile} ou un nom de paquet suivi d'un arobase et d'un numéro de version, comme @code{guile@@1.8.8} ou simplement @code{guile@@1.8} (dans ce dernier cas, la version la plus récente commençant par @code{1.8} est utilisée)."
+#: doc/guix.texi:3069
+msgid "Each @var{package} may specify either a simple package name, such as @code{guile}, or a package name followed by an at-sign and version number, such as @code{guile@@1.8.8} or simply @code{guile@@1.8} (in the latter case, the newest version prefixed by @code{1.8} is selected)."
+msgstr "Chaque @var{paquet} peut spécifier soit un simple nom de paquet, tel que @code{guile}, soit un nom de paquet suivi d'un at-sign et d'un numéro de version, tel que @code{guile@@1.8.8} ou simplement @code{guile@@1.8}. (dans ce dernier cas, la version la plus récente préfixée par @code{1.8} est sélectionnée)."
 
 #. type: table
-#: doc/guix.texi:2699
+#: doc/guix.texi:3077
 msgid "If no version number is specified, the newest available version will be selected.  In addition, @var{package} may contain a colon, followed by the name of one of the outputs of the package, as in @code{gcc:doc} or @code{binutils@@2.22:lib} (@pxref{Packages with Multiple Outputs}).  Packages with a corresponding name (and optionally version) are searched for among the GNU distribution modules (@pxref{Package Modules})."
 msgstr "Si aucun numéro de version n'est spécifié, la version la plus récente disponible est choisie.  En plus, @var{paquet} peut contenir un deux-points, suivi du nom d'une des sorties du paquet, comme dans @code{gcc:doc} ou @code{binutils@@2.22:lib} (@pxref{Packages with Multiple Outputs}).  Des paquets avec un nom correspondant et (éventuellement une version) sont recherchés dans les modules de la distribution GNU (@pxref{Package Modules})."
 
 #. type: cindex
-#: doc/guix.texi:2700
+#: doc/guix.texi:3078
 #, no-wrap
 msgid "propagated inputs"
 msgstr "entrées propagées"
 
 #. type: table
-#: doc/guix.texi:2706
+#: doc/guix.texi:3084
 msgid "Sometimes packages have @dfn{propagated inputs}: these are dependencies that automatically get installed along with the required package (@pxref{package-propagated-inputs, @code{propagated-inputs} in @code{package} objects}, for information about propagated inputs in package definitions)."
 msgstr "Parfois les paquets ont des @dfn{entrées propagées} : ce sont des dépendances qui sont installées automatiquement avec le paquet demandé (@pxref{package-propagated-inputs, @code{propagated-inputs} in @code{package} objects} pour plus d'informations sur les entrées propagées dans les définitions des paquets)."
 
 #. type: anchor{#1}
-#: doc/guix.texi:2713
+#: doc/guix.texi:3091
 msgid "package-cmd-propagated-inputs"
 msgstr "package-cmd-propagated-inputs"
 
 #. type: table
-#: doc/guix.texi:2713
+#: doc/guix.texi:3091
 msgid "An example is the GNU MPC library: its C header files refer to those of the GNU MPFR library, which in turn refer to those of the GMP library.  Thus, when installing MPC, the MPFR and GMP libraries also get installed in the profile; removing MPC also removes MPFR and GMP---unless they had also been explicitly installed by the user."
 msgstr "Un exemple est la bibliothèque MPC de GNU : ses fichiers d'en-tête C se réfèrent à ceux de la bibliothèque MPFR de GNU, qui se réfèrent en retour à ceux de la bibliothèque GMP.  Ainsi, lorsqu'on installe MPC, les bibliothèques MPFR et GMP sont aussi installées dans le profil ; supprimer MPC supprimera aussi MPFR et GMP — à moins qu'ils n'aient été aussi installés explicitement par l'utilisateur·rice."
 
 #. type: table
-#: doc/guix.texi:2718
-msgid "Besides, packages sometimes rely on the definition of environment variables for their search paths (see explanation of @code{--search-paths} below).  Any missing or possibly incorrect environment variable definitions are reported here."
-msgstr "D'autre part, les paquets dépendent parfois de la définition de variables d'environnement pour leur chemin de recherche (voir les explications sur @code{--search-paths} plus bas).  Toute définition de variable d'environnement manquante ou possiblement incorrecte est rapportée ici."
+#: doc/guix.texi:3096
+msgid "Besides, packages sometimes rely on the definition of environment variables for their search paths (see explanation of @option{--search-paths} below).  Any missing or possibly incorrect environment variable definitions are reported here."
+msgstr "En outre, les paquets s'appuient parfois sur la définition de variables d'environnement pour leurs chemins de recherche (voir l'explication de l'@option{--chemins de recherche} ci-dessous).  Toute définition de variable d'environnement manquante ou éventuellement incorrecte est reportée ici."
 
 #. type: item
-#: doc/guix.texi:2719
+#: doc/guix.texi:3097
 #, no-wrap
 msgid "--install-from-expression=@var{exp}"
 msgstr "--install-from-expression=@var{exp}"
 
 #. type: itemx
-#: doc/guix.texi:2720
+#: doc/guix.texi:3098
 #, no-wrap
 msgid "-e @var{exp}"
 msgstr "-e @var{exp}"
 
 #. type: table
-#: doc/guix.texi:2722
+#: doc/guix.texi:3100
 msgid "Install the package @var{exp} evaluates to."
 msgstr "Installer le paquet évalué par @var{exp}"
 
 #. type: table
-#: doc/guix.texi:2727
+#: doc/guix.texi:3105
 msgid "@var{exp} must be a Scheme expression that evaluates to a @code{<package>} object.  This option is notably useful to disambiguate between same-named variants of a package, with expressions such as @code{(@@ (gnu packages base) guile-final)}."
 msgstr "@var{exp} doit être une expression Scheme qui s'évalue en un objet @code{<package>}.  Cette option est notamment utile pour distinguer les variantes d'un paquet avec le même nom, avec des expressions comme @code{(@@ (gnu packages base) guile-final)}."
 
 #. type: table
-#: doc/guix.texi:2731
+#: doc/guix.texi:3109
 msgid "Note that this option installs the first output of the specified package, which may be insufficient when needing a specific output of a multiple-output package."
 msgstr "Remarquez que cette option installe la première sortie du paquet, ce qui peut être insuffisant lorsque vous avez besoin d'une sortie spécifique d'un paquet à plusieurs sorties."
 
 #. type: item
-#: doc/guix.texi:2732
+#: doc/guix.texi:3110
 #, no-wrap
 msgid "--install-from-file=@var{file}"
 msgstr "--install-from-file=@var{fichier}"
 
 #. type: itemx
-#: doc/guix.texi:2733 doc/guix.texi:7983
+#: doc/guix.texi:3111 doc/guix.texi:10341
 #, no-wrap
 msgid "-f @var{file}"
 msgstr "-f @var{fichier}"
 
 #. type: table
-#: doc/guix.texi:2735
+#: doc/guix.texi:3113
 msgid "Install the package that the code within @var{file} evaluates to."
 msgstr "Installer le paquet évalué par le code dans le @var{fichier}."
 
 #. type: table
-#: doc/guix.texi:2738 doc/guix.texi:4524
+#: doc/guix.texi:3116 doc/guix.texi:5569
 msgid "As an example, @var{file} might contain a definition like this (@pxref{Defining Packages}):"
 msgstr "Par exemple, @var{fichier} peut contenir une définition comme celle-ci (@pxref{Defining Packages}) :"
 
-#. type: example
-#: doc/guix.texi:2741 doc/guix.texi:7992
+#. type: include
+#: doc/guix.texi:3118 doc/guix.texi:10349
 #, no-wrap
-msgid "@verbatiminclude package-hello.scm\n"
-msgstr "@verbatiminclude package-hello.scm\n"
+msgid "package-hello.scm"
+msgstr "package-hello.scm"
 
 #. type: table
-#: doc/guix.texi:2747
+#: doc/guix.texi:3125
 msgid "Developers may find it useful to include such a @file{guix.scm} file in the root of their project source tree that can be used to test development snapshots and create reproducible development environments (@pxref{Invoking guix environment})."
 msgstr "Lorsqu'on développe, on peut trouver utile d'inclure un tel fichier @file{guix.scm} à la racine de l'arborescence des sources de son projet qui pourrait être utilisé pour tester des versions de développement et créer des environnements de développement reproductibles (@pxref{Invoking guix environment})."
 
+#. type: table
+#: doc/guix.texi:3130
+msgid "The @var{file} may also contain a JSON representation of one or more package definitions.  Running @code{guix package -f} on @file{hello.json} with the following contents would result in installing the package @code{greeter} after building @code{myhello}:"
+msgstr "Le @var{fichier} peut aussi contenir une représentation JSON d'une ou de plusieurs définitions de paquets.  L'exécution de @code{guix package -f} sur @file{hello.json} avec le contenu suivant entraînerait l'installation du paquet @code{greeter} après la construction de @code{myhello} :"
+
+#. type: example
+#: doc/guix.texi:3133 doc/guix.texi:10359
+#, no-wrap
+msgid "@verbatiminclude package-hello.json\n"
+msgstr "@verbatiminclude package-hello.json\n"
+
 #. type: item
-#: doc/guix.texi:2748
+#: doc/guix.texi:3135
 #, no-wrap
 msgid "--remove=@var{package} @dots{}"
 msgstr "--remove=@var{paquet} @dots{}"
 
 #. type: itemx
-#: doc/guix.texi:2749
+#: doc/guix.texi:3136
 #, no-wrap
 msgid "-r @var{package} @dots{}"
 msgstr "-r @var{paquet} @dots{}"
 
 #. type: table
-#: doc/guix.texi:2751
+#: doc/guix.texi:3138
 msgid "Remove the specified @var{package}s."
 msgstr "Supprimer les @var{paquet}s spécifiés."
 
 #. type: table
-#: doc/guix.texi:2756
-msgid "As for @code{--install}, each @var{package} may specify a version number and/or output name in addition to the package name.  For instance, @code{-r glibc:debug} would remove the @code{debug} output of @code{glibc}."
-msgstr "Comme pour @code{--install}, chaque @var{paquet} peut spécifier un numéro de version ou un nom de sortie en plus du nom du paquet.  Par exemple, @code{-r glibc:debug} supprimerait la sortie @code{debug} de @code{glibc}."
+#: doc/guix.texi:3143
+msgid "As for @option{--install}, each @var{package} may specify a version number and/or output name in addition to the package name.  For instance, @samp{-r glibc:debug} would remove the @code{debug} output of @code{glibc}."
+msgstr "Comme pour @option{--install}, chaque @var{paquet} peut spécifier un numéro de version ou un nom de sortie en plus du nom du paquet.  Par exemple, @samp{-r glibc:debug} supprimerait la sortie @code{debug} de @code{glibc}."
 
 #. type: item
-#: doc/guix.texi:2757
+#: doc/guix.texi:3144
 #, no-wrap
 msgid "--upgrade[=@var{regexp} @dots{}]"
 msgstr "--upgrade[=@var{regexp} @dots{}]"
 
 #. type: itemx
-#: doc/guix.texi:2758
+#: doc/guix.texi:3145
 #, no-wrap
 msgid "-u [@var{regexp} @dots{}]"
 msgstr "-u [@var{regexp} @dots{}]"
 
 #. type: cindex
-#: doc/guix.texi:2759
+#: doc/guix.texi:3146
 #, no-wrap
 msgid "upgrading packages"
 msgstr "mettre à jour des paquets"
 
 #. type: table
-#: doc/guix.texi:2763
-msgid "Upgrade all the installed packages.  If one or more @var{regexp}s are specified, upgrade only installed packages whose name matches a @var{regexp}.  Also see the @code{--do-not-upgrade} option below."
-msgstr "Mettre à jour tous les paquets installés.  Si une @var{regexp} ou plus est spécifiée, la mise à jour n'installera que les paquets dont le nom correspond à @var{regexp}.  Voyez aussi l'option @code{--do-not-upgrade} en dessous."
+#: doc/guix.texi:3150
+msgid "Upgrade all the installed packages.  If one or more @var{regexp}s are specified, upgrade only installed packages whose name matches a @var{regexp}.  Also see the @option{--do-not-upgrade} option below."
+msgstr "Mettre à jour tous les paquets installés.  Si un ou plusieurs @var{regexp} sont spécifiés, la mise à jour n'installera que les paquets dont le nom correspond à @var{regexp}.  Voir aussi l'option @option{--do-not-upgrade} ci-dessous."
 
 #. type: table
-#: doc/guix.texi:2768
+#: doc/guix.texi:3155
 msgid "Note that this upgrades package to the latest version of packages found in the distribution currently installed.  To update your distribution, you should regularly run @command{guix pull} (@pxref{Invoking guix pull})."
 msgstr "Remarquez que cela met à jour vers la dernière version des paquets trouvée dans la distribution actuellement installée.  Pour mettre à jour votre distribution, vous devriez lancer régulièrement @command{guix pull} (@pxref{Invoking guix pull})."
 
+#. type: cindex
+#: doc/guix.texi:3156
+#, no-wrap
+msgid "package transformations, upgrades"
+msgstr "transformations de paquets, mises à jour"
+
+#. type: table
+#: doc/guix.texi:3161
+msgid "When upgrading, package transformations that were originally applied when creating the profile are automatically re-applied (@pxref{Package Transformation Options}).  For example, assume you first installed Emacs from the tip of its development branch with:"
+msgstr "Quand une mise à jour est en cours d'exécution, les transformations de paquets initialement appliquées lors de la création du profil sont automatiquement réappliquées (@pxref{Package Transformation Options}).  Par exemple, supposons que vous ayez d'abord installé Emacs depuis l'extrémité de sa branche de développement avec :"
+
+#. type: example
+#: doc/guix.texi:3164
+#, no-wrap
+msgid "guix install emacs-next --with-branch=emacs-next=master\n"
+msgstr "guix install emacs-next --with-branch=emacs-next=master\n"
+
+#. type: table
+#: doc/guix.texi:3169
+msgid "Next time you run @command{guix upgrade}, Guix will again pull the tip of the Emacs development branch and build @code{emacs-next} from that checkout."
+msgstr "La prochaine fois que vous lancerez @command{guix upgrade}, Guix va à nouveau extraire l'extrémité de la branche de développement Emacs et construira @code{emacs-next} à partir de ce checkout."
+
+#. type: table
+#: doc/guix.texi:3174
+msgid "Note that transformation options such as @option{--with-branch} and @option{--with-source} depend on external state; it is up to you to ensure that they work as expected.  You can also discard a transformations that apply to a package by running:"
+msgstr "Notez que les options de transformation comme @option{--with-branch} et @option{--with-source} dépendent de l'état exterieur ; c'est à vous de vous assurer qu'elles fonctionnent comme souhaité.  Vous pouvez également écarter une transformation qui s'applique à un paquet en lançant :"
+
+#. type: example
+#: doc/guix.texi:3177
+#, no-wrap
+msgid "guix install @var{package}\n"
+msgstr "$ guix install @var{paquet}\n"
+
 #. type: item
-#: doc/guix.texi:2769
+#: doc/guix.texi:3179
 #, no-wrap
 msgid "--do-not-upgrade[=@var{regexp} @dots{}]"
 msgstr "--do-not-upgrade[=@var{regexp} @dots{}]"
 
 #. type: table
-#: doc/guix.texi:2774
-msgid "When used together with the @code{--upgrade} option, do @emph{not} upgrade any packages whose name matches a @var{regexp}.  For example, to upgrade all packages in the current profile except those containing the substring ``emacs'':"
-msgstr "Lorsqu'elle est utilisée avec l'option @code{--upgrade}, ne @emph{pas} mettre à jour les paquets dont le nom correspond à @var{regexp}.  Par exemple, pour mettre à jour tous les paquets du profil actuel à l'exception de ceux qui contiennent la chaîne « emacs » :"
+#: doc/guix.texi:3184
+msgid "When used together with the @option{--upgrade} option, do @emph{not} upgrade any packages whose name matches a @var{regexp}.  For example, to upgrade all packages in the current profile except those containing the substring ``emacs'':"
+msgstr "Lors d'une utilisation conjointe avec l'option @option{--upgrade}, ne @emph{pas} mettre à jour les paquets dont le nom correspond à @var{regexp}.  Par exemple, pour mettre à jour tous les paquets du profil actuel à l'exception de ceux qui contiennent la chaîne « emacs » :"
 
 #. type: example
-#: doc/guix.texi:2777
+#: doc/guix.texi:3187
 #, no-wrap
 msgid "$ guix package --upgrade . --do-not-upgrade emacs\n"
 msgstr "$ guix package --upgrade . --do-not-upgrade emacs\n"
 
 #. type: anchor{#1}
-#: doc/guix.texi:2779
+#: doc/guix.texi:3189
 #, no-wrap
 msgid "profile-manifest"
 msgstr "profile-manifest"
 
 #. type: item
-#: doc/guix.texi:2779 doc/guix.texi:4529 doc/guix.texi:4870 doc/guix.texi:8916
-#: doc/guix.texi:10099
+#: doc/guix.texi:3189 doc/guix.texi:5574 doc/guix.texi:5993
+#: doc/guix.texi:11346 doc/guix.texi:12762
 #, no-wrap
 msgid "--manifest=@var{file}"
 msgstr "--manifest=@var{fichier}"
 
 #. type: itemx
-#: doc/guix.texi:2780 doc/guix.texi:4530 doc/guix.texi:4871 doc/guix.texi:8917
+#: doc/guix.texi:3190 doc/guix.texi:5575 doc/guix.texi:5994
+#: doc/guix.texi:11347
 #, no-wrap
 msgid "-m @var{file}"
 msgstr "-m @var{fichier}"
 
 #. type: cindex
-#: doc/guix.texi:2781
+#: doc/guix.texi:3191
 #, no-wrap
 msgid "profile declaration"
 msgstr "déclaration de profil"
 
 #. type: cindex
-#: doc/guix.texi:2782
+#: doc/guix.texi:3192
 #, no-wrap
 msgid "profile manifest"
 msgstr "manifest de profil"
 
 #. type: table
-#: doc/guix.texi:2785
-msgid "Create a new generation of the profile from the manifest object returned by the Scheme code in @var{file}."
-msgstr "Créer une nouvelle génération du profil depuis l'objet manifeste renvoyé par le code Scheme dans @var{fichier}."
+#: doc/guix.texi:3196
+msgid "Create a new generation of the profile from the manifest object returned by the Scheme code in @var{file}.  This option can be repeated several times, in which case the manifests are concatenated."
+msgstr "Créer une nouvelle génération du profil depuis l'objet manifeste renvoyé par le code Scheme dans @var{fichier}.  Cette option peut être répétée plusieurs fois, auquel cas les manifestes sont concaténés."
 
 #. type: table
-#: doc/guix.texi:2791
-msgid "This allows you to @emph{declare} the profile's contents rather than constructing it through a sequence of @code{--install} and similar commands.  The advantage is that @var{file} can be put under version control, copied to different machines to reproduce the same profile, and so on."
-msgstr "Cela vous permet de @emph{déclarer} le contenu du profil plutôt que de le construire avec une série de @code{--install} et de commandes similaires.  L'avantage étant que le @var{fichier} peut être placé sous contrôle de version, copié vers d'autres machines pour reproduire le même profil, etc."
+#: doc/guix.texi:3202
+msgid "This allows you to @emph{declare} the profile's contents rather than constructing it through a sequence of @option{--install} and similar commands.  The advantage is that @var{file} can be put under version control, copied to different machines to reproduce the same profile, and so on."
+msgstr "Cela vous permet de @emph{déclarer} le contenu du profil plutôt que de le construire avec une série de @option{--install} et de commandes similaires.  L'avantage étant que le @var{fichier} peut être placé sous contrôle de version, copié vers d'autres machines pour reproduire le même profil, etc."
 
 #. type: table
-#: doc/guix.texi:2795
+#: doc/guix.texi:3206
 msgid "@var{file} must return a @dfn{manifest} object, which is roughly a list of packages:"
-msgstr "@var{fichier} doit retourner un objet @dfn{manifest} qui est en gros une liste de paquets :"
+msgstr "@var{fichier} doit renvoyer un objet @dfn{manifest} qui est en gros une liste de paquets :"
 
 #. type: findex
-#: doc/guix.texi:2796
+#: doc/guix.texi:3207
 #, no-wrap
 msgid "packages->manifest"
 msgstr "packages->manifest"
 
-#. type: example
-#: doc/guix.texi:2799
+#. type: lisp
+#: doc/guix.texi:3210
 #, no-wrap
 msgid ""
 "(use-package-modules guile emacs)\n"
@@ -6740,8 +8165,8 @@ msgstr ""
 "(use-package-modules guile emacs)\n"
 "\n"
 
-#. type: example
-#: doc/guix.texi:2805
+#. type: lisp
+#: doc/guix.texi:3216
 #, no-wrap
 msgid ""
 "(packages->manifest\n"
@@ -6757,18 +8182,18 @@ msgstr ""
 "       (list guile-2.0 \"debug\")))\n"
 
 #. type: findex
-#: doc/guix.texi:2807
+#: doc/guix.texi:3218
 #, no-wrap
 msgid "specifications->manifest"
 msgstr "specifications->manifest"
 
 #. type: table
-#: doc/guix.texi:2814
+#: doc/guix.texi:3225
 msgid "In this example we have to know which modules define the @code{emacs} and @code{guile-2.0} variables to provide the right @code{use-package-modules} line, which can be cumbersome.  We can instead provide regular package specifications and let @code{specifications->manifest} look up the corresponding package objects, like this:"
 msgstr "Dans cet exemple on doit savoir quels modules définissent les variables @code{emacs} et @code{guile-2.0} pour fournir la bonne ligne @code{use-package-modules} ce qui peut être embêtant.  On peut à la place fournir des spécifications de paquets normales et laisser @code{specifications->manifest} rechercher les objets de paquets correspondants, comme ceci :"
 
-#. type: example
-#: doc/guix.texi:2818
+#. type: lisp
+#: doc/guix.texi:3229
 #, no-wrap
 msgid ""
 "(specifications->manifest\n"
@@ -6778,121 +8203,122 @@ msgstr ""
 " '(\"emacs\" \"guile@@2.2\" \"guile@@2.2:debug\"))\n"
 
 #. type: item
-#: doc/guix.texi:2820
+#: doc/guix.texi:3231 doc/guix.texi:4293
 #, no-wrap
 msgid "--roll-back"
 msgstr "--roll-back"
 
 #. type: cindex
-#: doc/guix.texi:2821 doc/guix.texi:24354
+#: doc/guix.texi:3232 doc/guix.texi:4294 doc/guix.texi:30789
 #, no-wrap
 msgid "rolling back"
 msgstr "revenir en arrière"
 
 #. type: cindex
-#: doc/guix.texi:2822
+#: doc/guix.texi:3233 doc/guix.texi:4295
 #, no-wrap
 msgid "undoing transactions"
 msgstr "défaire des transactions"
 
 #. type: cindex
-#: doc/guix.texi:2823
+#: doc/guix.texi:3234 doc/guix.texi:4296
 #, no-wrap
 msgid "transactions, undoing"
 msgstr "transactions, défaire"
 
 #. type: table
-#: doc/guix.texi:2826
+#: doc/guix.texi:3237
 msgid "Roll back to the previous @dfn{generation} of the profile---i.e., undo the last transaction."
 msgstr "Revenir à la @dfn{génération} précédente du profil c.-à-d.@: défaire la dernière transaction."
 
 #. type: table
-#: doc/guix.texi:2829
-msgid "When combined with options such as @code{--install}, roll back occurs before any other actions."
-msgstr "Lorsqu'elle est combinée avec des options comme @code{--install}, cette option revient en arrière avant toute autre action."
+#: doc/guix.texi:3240
+msgid "When combined with options such as @option{--install}, roll back occurs before any other actions."
+msgstr "Lorsqu'elle est combinée avec des options comme @option{--install}, Le retour en arrière se produit avant toute autre action."
 
 #. type: table
-#: doc/guix.texi:2833
+#: doc/guix.texi:3244
 msgid "When rolling back from the first generation that actually contains installed packages, the profile is made to point to the @dfn{zeroth generation}, which contains no files apart from its own metadata."
 msgstr "Lorsque vous revenez de la première génération qui contient des fichiers, le profil pointera vers la @dfn{zéroième génération} qui ne contient aucun fichier en dehors de ses propres métadonnées."
 
 #. type: table
-#: doc/guix.texi:2837
+#: doc/guix.texi:3248
 msgid "After having rolled back, installing, removing, or upgrading packages overwrites previous future generations.  Thus, the history of the generations in a profile is always linear."
 msgstr "Après être revenu en arrière, l'installation, la suppression et la mise à jour de paquets réécrit les futures générations précédentes.  Ainsi, l'historique des générations dans un profil est toujours linéaire."
 
 #. type: item
-#: doc/guix.texi:2838
+#: doc/guix.texi:3249 doc/guix.texi:4300
 #, no-wrap
 msgid "--switch-generation=@var{pattern}"
 msgstr "--switch-generation=@var{motif}"
 
 #. type: itemx
-#: doc/guix.texi:2839
+#: doc/guix.texi:3250 doc/guix.texi:4301
 #, no-wrap
 msgid "-S @var{pattern}"
 msgstr "-S @var{motif}"
 
 #. type: cindex
-#: doc/guix.texi:2840 doc/guix.texi:3036 doc/guix.texi:24312
+#: doc/guix.texi:3251 doc/guix.texi:3480 doc/guix.texi:4302
+#: doc/guix.texi:30747
 #, no-wrap
 msgid "generations"
 msgstr "générations"
 
 #. type: table
-#: doc/guix.texi:2842
+#: doc/guix.texi:3253 doc/guix.texi:4304
 msgid "Switch to a particular generation defined by @var{pattern}."
 msgstr "Basculer vers une génération particulière définie par le @var{motif}."
 
 #. type: table
-#: doc/guix.texi:2848
-msgid "@var{pattern} may be either a generation number or a number prefixed with ``+'' or ``-''.  The latter means: move forward/backward by a specified number of generations.  For example, if you want to return to the latest generation after @code{--roll-back}, use @code{--switch-generation=+1}."
-msgstr "Le @var{motif} peut être soit un numéro de génération soit un nombre précédé de « + » ou « - ».  Ce dernier signifie : se déplacer en avant ou en arrière d'un nombre donné de générations.  Par exemple, si vous voulez retourner à la dernière génération après @code{--roll-back}, utilisez @code{--switch-generation=+1}."
+#: doc/guix.texi:3259 doc/guix.texi:4310
+msgid "@var{pattern} may be either a generation number or a number prefixed with ``+'' or ``-''.  The latter means: move forward/backward by a specified number of generations.  For example, if you want to return to the latest generation after @option{--roll-back}, use @option{--switch-generation=+1}."
+msgstr "Le @var{motif} peut être soit un numéro de génération soit un nombre précédé de « + » ou « - ».  Ce dernier signifie : se déplacer en avant ou en arrière d'un nombre donné de générations.  Par exemple, si vous voulez retourner à la dernière génération après @option{--roll-back}, utilisez @option{--switch-generation=+1}."
 
 #. type: table
-#: doc/guix.texi:2853
-msgid "The difference between @code{--roll-back} and @code{--switch-generation=-1} is that @code{--switch-generation} will not make a zeroth generation, so if a specified generation does not exist, the current generation will not be changed."
-msgstr "La différence entre @code{--roll-back} et @code{--switch-generation=-1} est que @code{--switch-generation} ne vous amènera pas à la zéroième génération, donc si la génération demandée n'existe pas la génération actuelle ne changera pas."
+#: doc/guix.texi:3264
+msgid "The difference between @option{--roll-back} and @option{--switch-generation=-1} is that @option{--switch-generation} will not make a zeroth generation, so if a specified generation does not exist, the current generation will not be changed."
+msgstr "La différence entre @option{--roll-back} et @option{--switch-generation=-1} est que @option{--switch-generation} ne vous amènera pas à la génération initiale, donc si la génération demandée n'existe pas la génération actuelle ne changera pas."
 
 #. type: item
-#: doc/guix.texi:2854
+#: doc/guix.texi:3265
 #, no-wrap
 msgid "--search-paths[=@var{kind}]"
 msgstr "--search-paths[=@var{genre}]"
 
 #. type: table
-#: doc/guix.texi:2860
+#: doc/guix.texi:3271
 msgid "Report environment variable definitions, in Bash syntax, that may be needed in order to use the set of installed packages.  These environment variables are used to specify @dfn{search paths} for files used by some of the installed packages."
 msgstr "Rapporter les définitions des variables d'environnement dans la syntaxe Bash qui peuvent être requises pour utiliser l'ensemble des paquets installés.  Ces variables d'environnement sont utilisées pour spécifier les @dfn{chemins de recherche} de fichiers utilisés par les paquets installés."
 
 #. type: table
-#: doc/guix.texi:2868
-msgid "For example, GCC needs the @code{CPATH} and @code{LIBRARY_PATH} environment variables to be defined so it can look for headers and libraries in the user's profile (@pxref{Environment Variables,,, gcc, Using the GNU Compiler Collection (GCC)}).  If GCC and, say, the C library are installed in the profile, then @code{--search-paths} will suggest setting these variables to @code{@var{profile}/include} and @code{@var{profile}/lib}, respectively."
-msgstr "Par exemple, GCC a besoin des variables d'environnement @code{CPATH} et @code{LIBRARY_PATH} pour trouver les en-têtes et les bibliothèques dans le profil de l'utilisateur·rice (@pxref{Environment Variables,,, gcc, Using the GNU Compiler Collection (GCC)}).  Si GCC et, disons, la bibliothèque C sont installés dans le profil, alors @code{--search-paths} suggérera d'initialiser ces variables à @code{@var{profil}/include} et @code{@var{profil}/lib}, respectivement."
+#: doc/guix.texi:3279
+msgid "For example, GCC needs the @env{CPATH} and @env{LIBRARY_PATH} environment variables to be defined so it can look for headers and libraries in the user's profile (@pxref{Environment Variables,,, gcc, Using the GNU Compiler Collection (GCC)}).  If GCC and, say, the C library are installed in the profile, then @option{--search-paths} will suggest setting these variables to @file{@var{profile}/include} and @file{@var{profile}/lib}, respectively."
+msgstr "Par exemple, GCC a besoin des variables d'environnement @env{CPATH} et @env{LIBRARY_PATH} pour trouver les en-têtes et les bibliothèques dans le profil de l'utilisateur·rice (@pxref{Environment Variables,,, gcc, Using the GNU Compiler Collection (GCC)}).  Si GCC et, disons, la bibliothèque C sont installés dans le profil, alors @option{--search-paths} suggérera d'initialiser ces variables à @file{@var{profil}/include} et @file{@var{profil}/lib}, respectivement."
 
 #. type: table
-#: doc/guix.texi:2871
+#: doc/guix.texi:3282
 msgid "The typical use case is to define these environment variables in the shell:"
 msgstr "Le cas d'utilisation typique est de définir ces variables d'environnement dans le shell :"
 
 #. type: example
-#: doc/guix.texi:2874
+#: doc/guix.texi:3285
 #, no-wrap
 msgid "$ eval `guix package --search-paths`\n"
 msgstr "$ eval `guix package --search-paths`\n"
 
 #. type: table
-#: doc/guix.texi:2880
+#: doc/guix.texi:3291
 msgid "@var{kind} may be one of @code{exact}, @code{prefix}, or @code{suffix}, meaning that the returned environment variable definitions will either be exact settings, or prefixes or suffixes of the current value of these variables.  When omitted, @var{kind} defaults to @code{exact}."
-msgstr "@var{genre} peut être l'une des valeurs @code{exact}, @code{prefix} ou @code{suffix}, ce qui signifie que les définitions des variables d'environnement retournées seront soit les paramètres exactes, ou placés avant ou après la valeur actuelle de ces paramètres.  Lorsqu'il est omis, @var{genre} a pour valeur par défaut @code{exact}."
+msgstr "@var{genre} peut être l'une des valeurs @code{exact}, @code{prefix} ou @code{suffix}, ce qui signifie que les définitions des variables d'environnement renvoyées seront soit les paramètres exacts, soit placés avant ou après la valeur actuelle de ces paramètres.  Lorsqu'il est omis, @var{genre} a pour valeur par défaut @code{exact}."
 
 #. type: table
-#: doc/guix.texi:2883
+#: doc/guix.texi:3294
 msgid "This option can also be used to compute the @emph{combined} search paths of several profiles.  Consider this example:"
 msgstr "Cette option peut aussi être utilisé pour calculer les chemins de recherche @emph{combinés} de plusieurs profils.  Regardez cet exemple :"
 
 #. type: example
-#: doc/guix.texi:2888
+#: doc/guix.texi:3299
 #, no-wrap
 msgid ""
 "$ guix package -p foo -i guile\n"
@@ -6904,107 +8330,174 @@ msgstr ""
 "$ guix package -p foo -p bar --search-paths\n"
 
 #. type: table
-#: doc/guix.texi:2893
-msgid "The last command above reports about the @code{GUILE_LOAD_PATH} variable, even though, taken individually, neither @file{foo} nor @file{bar} would lead to that recommendation."
-msgstr "La dernière commande ci-dessus montre la variable @code{GUILE_LOAD_PATH} bien que, pris individuellement, ni @file{foo} ni @file{bar} n'auraient donné cette recommandation."
+#: doc/guix.texi:3304
+msgid "The last command above reports about the @env{GUILE_LOAD_PATH} variable, even though, taken individually, neither @file{foo} nor @file{bar} would lead to that recommendation."
+msgstr "La dernière commande ci-dessus montre la variable @env{GUILE_LOAD_PATH} bien que, pris individuellement, ni @file{foo} ni @file{bar} n'auraient donné cette recommandation."
 
 #. type: item
-#: doc/guix.texi:2895 doc/guix.texi:3713 doc/guix.texi:4160
+#: doc/guix.texi:3306 doc/guix.texi:4330 doc/guix.texi:4659
 #, no-wrap
 msgid "--profile=@var{profile}"
 msgstr "--profile=@var{profil}"
 
 #. type: itemx
-#: doc/guix.texi:2896 doc/guix.texi:3714 doc/guix.texi:4161
+#: doc/guix.texi:3307 doc/guix.texi:4331 doc/guix.texi:4660
 #, no-wrap
 msgid "-p @var{profile}"
 msgstr "-p @var{profil}"
 
 #. type: table
-#: doc/guix.texi:2898
+#: doc/guix.texi:3309
 msgid "Use @var{profile} instead of the user's default profile."
 msgstr "Utiliser le @var{profil} à la place du profil par défaut du compte."
 
+#. type: table
+#: doc/guix.texi:3314
+msgid "@var{profile} must be the name of a file that will be created upon completion.  Concretely, @var{profile} will be a mere symbolic link (``symlink'') pointing to the actual profile where packages are installed:"
+msgstr "@var{profil} doit être le nom d'un fichier qui sera créé une fois terminé.  Concrètement, @var{profil} sera un simple lien symbolique (« symlink ») pointant vers le profil réel où les paquets sont installés :"
+
+#. type: example
+#: doc/guix.texi:3320
+#, no-wrap
+msgid ""
+"$ guix install hello -p ~/code/my-profile\n"
+"@dots{}\n"
+"$ ~/code/my-profile/bin/hello\n"
+"Hello, world!\n"
+msgstr ""
+"$ guix install hello -p ~/code/my-profile\n"
+"@dots{}\n"
+"$ ~/code/my-profile/bin/hello\n"
+"Hello, world!\n"
+
+#. type: table
+#: doc/guix.texi:3324
+msgid "All it takes to get rid of the profile is to remove this symlink and its siblings that point to specific generations:"
+msgstr "Tout ce qu'il faut pour se débarrasser du profil est de supprimer ce lien symbolique et ses frères et sœurs qui pointent vers des générations spécifiques :"
+
+#. type: example
+#: doc/guix.texi:3327
+#, no-wrap
+msgid "$ rm ~/code/my-profile ~/code/my-profile-*-link\n"
+msgstr "$ rm ~/code/my-profile ~/code/my-profile-*-link\n"
+
+#. type: item
+#: doc/guix.texi:3329
+#, no-wrap
+msgid "--list-profiles"
+msgstr "--list-profiles"
+
+#. type: table
+#: doc/guix.texi:3331
+msgid "List all the user's profiles:"
+msgstr "Liste tous les profils utilisateur·rice :"
+
+#. type: example
+#: doc/guix.texi:3338
+#, no-wrap
+msgid ""
+"$ guix package --list-profiles\n"
+"/home/charlie/.guix-profile\n"
+"/home/charlie/code/my-profile\n"
+"/home/charlie/code/devel-profile\n"
+"/home/charlie/tmp/test\n"
+msgstr ""
+"$ guix package --list-profiles\n"
+"/home/charlie/.guix-profile\n"
+"/home/charlie/code/my-profile\n"
+"/home/charlie/code/devel-profile\n"
+"/home/charlie/tmp/test\n"
+
+#. type: table
+#: doc/guix.texi:3341
+msgid "When running as root, list all the profiles of all the users."
+msgstr "En cours d'exécution sous root, liste tous les profils de tou·te·s les utilisateur·rice·s."
+
 #. type: cindex
-#: doc/guix.texi:2899
+#: doc/guix.texi:3342
 #, no-wrap
 msgid "collisions, in a profile"
 msgstr "collisions, dans un profil"
 
 #. type: cindex
-#: doc/guix.texi:2900
+#: doc/guix.texi:3343
 #, no-wrap
 msgid "colliding packages in profiles"
 msgstr "faire des collisions de paquets dans des profils"
 
 #. type: cindex
-#: doc/guix.texi:2901
+#: doc/guix.texi:3344
 #, no-wrap
 msgid "profile collisions"
 msgstr "profil, collisions"
 
 #. type: item
-#: doc/guix.texi:2902
+#: doc/guix.texi:3345
 #, no-wrap
 msgid "--allow-collisions"
 msgstr "--allow-collisions"
 
 #. type: table
-#: doc/guix.texi:2904
+#: doc/guix.texi:3347
 msgid "Allow colliding packages in the new profile.  Use at your own risk!"
 msgstr "Permettre des collisions de paquets dans le nouveau profil.  À utiliser à vos risques et périls !"
 
 #. type: table
-#: doc/guix.texi:2908
+#: doc/guix.texi:3351
 msgid "By default, @command{guix package} reports as an error @dfn{collisions} in the profile.  Collisions happen when two or more different versions or variants of a given package end up in the profile."
 msgstr "Par défaut, @command{guix package} rapporte les @dfn{collisions} dans le profil comme des erreurs.  Les collisions ont lieu quand deux version ou variantes d'un paquet donné se retrouvent dans le profil."
 
 #. type: item
-#: doc/guix.texi:2909 doc/guix.texi:3730 doc/guix.texi:4944
+#: doc/guix.texi:3352 doc/guix.texi:4373 doc/guix.texi:6079
 #, no-wrap
 msgid "--bootstrap"
 msgstr "--bootstrap"
 
 #. type: table
-#: doc/guix.texi:2912
+#: doc/guix.texi:3355
 msgid "Use the bootstrap Guile to build the profile.  This option is only useful to distribution developers."
 msgstr "Utiliser le programme d'amorçage Guile pour compiler le profil.  Cette option n'est utile qu'aux personnes qui développent la distribution."
 
 #. type: Plain text
-#: doc/guix.texi:2918
+#: doc/guix.texi:3361
 msgid "In addition to these actions, @command{guix package} supports the following options to query the current state of a profile, or the availability of packages:"
 msgstr "En plus de ces actions, @command{guix package} supporte les options suivantes pour demander l'état actuel d'un profil ou la disponibilité des paquets :"
 
 #. type: item
-#: doc/guix.texi:2921
+#: doc/guix.texi:3364
 #, no-wrap
 msgid "--search=@var{regexp}"
 msgstr "--search=@var{regexp}"
 
 #. type: itemx
-#: doc/guix.texi:2922
+#: doc/guix.texi:3365
 #, no-wrap
 msgid "-s @var{regexp}"
 msgstr "-s @var{regexp}"
 
+#. type: anchor{#1}
+#: doc/guix.texi:3367
+msgid "guix-search"
+msgstr "guix-search"
+
 #. type: cindex
-#: doc/guix.texi:2923
+#: doc/guix.texi:3367
 #, no-wrap
 msgid "searching for packages"
 msgstr "chercher des paquets"
 
 #. type: table
-#: doc/guix.texi:2929
+#: doc/guix.texi:3373
 msgid "List the available packages whose name, synopsis, or description matches @var{regexp} (in a case-insensitive fashion), sorted by relevance.  Print all the metadata of matching packages in @code{recutils} format (@pxref{Top, GNU recutils databases,, recutils, GNU recutils manual})."
 msgstr "Lister les paquets disponibles dont le nom, le synopsis ou la description correspondent à la @var{regexp} (en étant insensible à la casse), triés par pertinence.  Afficher toutes les métadonnées des paquets correspondants au format @code{recutils} (@pxref{Top, GNU recutils databases,, recutils, GNU recutils manual})."
 
 #. type: table
-#: doc/guix.texi:2932
+#: doc/guix.texi:3376
 msgid "This allows specific fields to be extracted using the @command{recsel} command, for instance:"
 msgstr "Cela permet à des champs spécifiques d'être extraits avec la commande @command{recsel}, par exemple :"
 
 #. type: example
-#: doc/guix.texi:2938
+#: doc/guix.texi:3382
 #, no-wrap
 msgid ""
 "$ guix package -s malloc | recsel -p name,version,relevance\n"
@@ -7020,7 +8513,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:2942
+#: doc/guix.texi:3386
 #, no-wrap
 msgid ""
 "name: glibc\n"
@@ -7034,7 +8527,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:2946
+#: doc/guix.texi:3390
 #, no-wrap
 msgid ""
 "name: libgc\n"
@@ -7046,12 +8539,12 @@ msgstr ""
 "relevance: 1\n"
 
 #. type: table
-#: doc/guix.texi:2950
+#: doc/guix.texi:3394
 msgid "Similarly, to show the name of all the packages available under the terms of the GNU@tie{}LGPL version 3:"
 msgstr "De manière similaire, pour montrer le nom de tous les paquets disponibles sous license GNU@tie{}LGPL version 3 :"
 
 #. type: example
-#: doc/guix.texi:2954
+#: doc/guix.texi:3398
 #, no-wrap
 msgid ""
 "$ guix package -s \"\" | recsel -p name -e 'license ~ \"LGPL 3\"'\n"
@@ -7063,7 +8556,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:2957
+#: doc/guix.texi:3401
 #, no-wrap
 msgid ""
 "name: gmp\n"
@@ -7073,12 +8566,12 @@ msgstr ""
 "@dots{}\n"
 
 #. type: table
-#: doc/guix.texi:2963
+#: doc/guix.texi:3407
 msgid "It is also possible to refine search results using several @code{-s} flags to @command{guix package}, or several arguments to @command{guix search}.  For example, the following command returns a list of board games (this time using the @command{guix search} alias):"
 msgstr "Il est aussi possible de raffiner les résultats de la recherche en donnant plusieurs options @code{-s} à @command{guix package}, ou plusieurs arguments à @command{guix search}.  Par exemple, la commande suivante renvoie la liste des jeux de plateau (cette fois-ci avec l'alias @command{guix search}) :"
 
 #. type: example
-#: doc/guix.texi:2968
+#: doc/guix.texi:3412
 #, no-wrap
 msgid ""
 "$ guix search '\\<board\\>' game | recsel -p name\n"
@@ -7090,17 +8583,17 @@ msgstr ""
 "@dots{}\n"
 
 #. type: table
-#: doc/guix.texi:2974
+#: doc/guix.texi:3418
 msgid "If we were to omit @code{-s game}, we would also get software packages that deal with printed circuit boards; removing the angle brackets around @code{board} would further add packages that have to do with keyboards."
 msgstr "Si on avait oublié @code{-s game}, on aurait aussi eu les paquets logiciels qui s'occupent de circuits imprimés (en anglais : circuit board) ; supprimer les chevrons autour de @code{board} aurait aussi ajouté les paquets qui parlent de clavier (en anglais : key@emph{board})."
 
 #. type: table
-#: doc/guix.texi:2978
+#: doc/guix.texi:3422
 msgid "And now for a more elaborate example.  The following command searches for cryptographic libraries, filters out Haskell, Perl, Python, and Ruby libraries, and prints the name and synopsis of the matching packages:"
 msgstr "Et maintenant un exemple plus élaboré.  La commande suivante recherche les bibliothèques cryptographiques, retire les bibliothèques Haskell, Perl, Python et Ruby et affiche le nom et le synopsis des paquets correspondants :"
 
 #. type: example
-#: doc/guix.texi:2982
+#: doc/guix.texi:3426
 #, no-wrap
 msgid ""
 "$ guix search crypto library | \\\n"
@@ -7110,23 +8603,23 @@ msgstr ""
 "    recsel -e '! (name ~ \"^(ghc|perl|python|ruby)\")' -p name,synopsis\n"
 
 #. type: table
-#: doc/guix.texi:2987
+#: doc/guix.texi:3431
 msgid "@xref{Selection Expressions,,, recutils, GNU recutils manual}, for more information on @dfn{selection expressions} for @code{recsel -e}."
 msgstr "@xref{Selection Expressions,,, recutils, GNU recutils manual} pour plus d'information sur les @dfn{expressions de sélection} pour @code{recsel -e}."
 
 #. type: item
-#: doc/guix.texi:2988
+#: doc/guix.texi:3432
 #, no-wrap
 msgid "--show=@var{package}"
 msgstr "--show=@var{paquet}"
 
 #. type: table
-#: doc/guix.texi:2992
+#: doc/guix.texi:3436
 msgid "Show details about @var{package}, taken from the list of available packages, in @code{recutils} format (@pxref{Top, GNU recutils databases,, recutils, GNU recutils manual})."
 msgstr "Afficher les détails du @var{paquet} dans la liste des paquets disponibles, au format @code{recutils} (@pxref{Top, GNU recutils databases,, recutils, GNU recutils manual})."
 
 #. type: example
-#: doc/guix.texi:2997
+#: doc/guix.texi:3441
 #, no-wrap
 msgid ""
 "$ guix package --show=python | recsel -p name,version\n"
@@ -7140,7 +8633,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:3000
+#: doc/guix.texi:3444
 #, no-wrap
 msgid ""
 "name: python\n"
@@ -7150,262 +8643,256 @@ msgstr ""
 "version: 3.3.5\n"
 
 #. type: table
-#: doc/guix.texi:3004
-msgid "You may also specify the full name of a package to only get details about a specific version of it:"
-msgstr "Vous pouvez aussi spécifier le nom complet d'un paquet pour n'avoir que les détails concernant une version spécifique :"
+#: doc/guix.texi:3448
+msgid "You may also specify the full name of a package to only get details about a specific version of it (this time using the @command{guix show} alias):"
+msgstr "Vous pouvez aussi spécifier le nom complet d'un paquet pour n'avoir que les détails concernant une version spécifique (cette fois-ci avec l'alias @command{guix show}) :"
 
 #. type: example
-#: doc/guix.texi:3008
+#: doc/guix.texi:3452
 #, no-wrap
 msgid ""
-"$ guix package --show=python@@3.4 | recsel -p name,version\n"
+"$ guix show python@@3.4 | recsel -p name,version\n"
 "name: python\n"
 "version: 3.4.3\n"
 msgstr ""
-"$ guix package --show=python@@3.4 | recsel -p name,version\n"
+"$ guix show python@@3.4 | recsel -p name,version\n"
 "name: python\n"
 "version: 3.4.3\n"
 
 #. type: item
-#: doc/guix.texi:3012
+#: doc/guix.texi:3456
 #, no-wrap
 msgid "--list-installed[=@var{regexp}]"
 msgstr "--list-installed[=@var{regexp}]"
 
 #. type: itemx
-#: doc/guix.texi:3013
+#: doc/guix.texi:3457
 #, no-wrap
 msgid "-I [@var{regexp}]"
 msgstr "-I [@var{regexp}]"
 
 #. type: table
-#: doc/guix.texi:3017
+#: doc/guix.texi:3461
 msgid "List the currently installed packages in the specified profile, with the most recently installed packages shown last.  When @var{regexp} is specified, list only installed packages whose name matches @var{regexp}."
 msgstr "Liste les paquets actuellement installés dans le profil spécifié, avec les paquets les plus récemment installés en dernier.  Lorsque @var{regexp} est spécifié, liste uniquement les paquets installés dont le nom correspond à @var{regexp}."
 
 #. type: table
-#: doc/guix.texi:3023
+#: doc/guix.texi:3467
 msgid "For each installed package, print the following items, separated by tabs: the package name, its version string, the part of the package that is installed (for instance, @code{out} for the default output, @code{include} for its headers, etc.), and the path of this package in the store."
 msgstr "Pour chaque paquet installé, affiche les éléments suivants, séparés par des tabulations : le nom du paquet, sa version, la partie du paquet qui est installé (par exemple, @code{out} pour la sortie par défaut, @code{include} pour ses en-têtes, etc) et le chemin du paquet dans le dépôt."
 
 #. type: item
-#: doc/guix.texi:3024
+#: doc/guix.texi:3468
 #, no-wrap
 msgid "--list-available[=@var{regexp}]"
 msgstr "--list-available[=@var{regexp}]"
 
 #. type: itemx
-#: doc/guix.texi:3025
+#: doc/guix.texi:3469
 #, no-wrap
 msgid "-A [@var{regexp}]"
 msgstr "-A [@var{regexp}]"
 
 #. type: table
-#: doc/guix.texi:3029
-msgid "List packages currently available in the distribution for this system (@pxref{GNU Distribution}).  When @var{regexp} is specified, list only installed packages whose name matches @var{regexp}."
-msgstr "Lister les paquets actuellement disponibles dans la distribution pour ce système (@pxref{Distribution GNU}).  Lorsque @var{regexp} est spécifié, liste uniquement les paquets dont le nom correspond à @var{regexp}."
+#: doc/guix.texi:3473
+msgid "List packages currently available in the distribution for this system (@pxref{GNU Distribution}).  When @var{regexp} is specified, list only available packages whose name matches @var{regexp}."
+msgstr "Lister les paquets actuellement disponibles dans la distribution pour ce système (@pxref{GNU Distribution}).  Lorsque @var{regexp} est spécifié, lister uniquement les paquets dont le nom correspond à @var{regexp}."
 
 #. type: table
-#: doc/guix.texi:3033
+#: doc/guix.texi:3477
 msgid "For each package, print the following items separated by tabs: its name, its version string, the parts of the package (@pxref{Packages with Multiple Outputs}), and the source location of its definition."
 msgstr "Pour chaque paquet, affiche les éléments suivants séparés par des tabulations : son nom, sa version, les parties du paquet (@pxref{Packages with Multiple Outputs}), et l'emplacement de sa définition."
 
 #. type: item
-#: doc/guix.texi:3034 doc/guix.texi:3703
+#: doc/guix.texi:3478 doc/guix.texi:4286
 #, no-wrap
 msgid "--list-generations[=@var{pattern}]"
 msgstr "--list-generations[=@var{motif}]"
 
 #. type: itemx
-#: doc/guix.texi:3035 doc/guix.texi:3704
+#: doc/guix.texi:3479 doc/guix.texi:4287
 #, no-wrap
 msgid "-l [@var{pattern}]"
 msgstr "-l [@var{motif}]"
 
 #. type: table
-#: doc/guix.texi:3041
+#: doc/guix.texi:3485
 msgid "Return a list of generations along with their creation dates; for each generation, show the installed packages, with the most recently installed packages shown last.  Note that the zeroth generation is never shown."
 msgstr "Renvoyer la liste des générations avec leur date de création ; pour chaque génération, montre les paquets installés avec les paquets installés les plus récemment en dernier.  Remarquez que la zéroième génération n'est jamais montrée."
 
 #. type: table
-#: doc/guix.texi:3046
+#: doc/guix.texi:3490
 msgid "For each installed package, print the following items, separated by tabs: the name of a package, its version string, the part of the package that is installed (@pxref{Packages with Multiple Outputs}), and the location of this package in the store."
 msgstr "Pour chaque paquet installé, afficher les éléments suivants, séparés par des tabulations : le nom du paquet, sa version, la partie du paquet qui a été installée (@pxref{Packages with Multiple Outputs}), et l'emplacement du paquet dans le dépôt."
 
 #. type: table
-#: doc/guix.texi:3049
+#: doc/guix.texi:3493
 msgid "When @var{pattern} is used, the command returns only matching generations.  Valid patterns include:"
 msgstr "Lorsque @var{motif} est utilisé, la commande ne renvoie que les générations correspondantes.  Les motifs valides sont :"
 
 #. type: item
-#: doc/guix.texi:3051
+#: doc/guix.texi:3495
 #, no-wrap
 msgid "@emph{Integers and comma-separated integers}.  Both patterns denote"
 msgstr "@emph{Des entiers et des entiers séparés par des virgules}.  Les deux motifs correspondent"
 
 #. type: itemize
-#: doc/guix.texi:3054
-msgid "generation numbers.  For instance, @code{--list-generations=1} returns the first one."
-msgstr "à des numéros de version.  Par exemple, @code{--list-generations=1} renvoie la première."
+#: doc/guix.texi:3498
+msgid "generation numbers.  For instance, @option{--list-generations=1} returns the first one."
+msgstr "numéros de génération.  Par exemple, @option{--list-generations=1} renvoie la première."
 
 #. type: itemize
-#: doc/guix.texi:3057
-msgid "And @code{--list-generations=1,8,2} outputs three generations in the specified order.  Neither spaces nor trailing commas are allowed."
-msgstr "Et @code{--list-generations=1,8,2} renvoie les trois générations dans l'ordre spécifié.  Aucune espace ni virgule surnuméraire n'est permise."
+#: doc/guix.texi:3501
+msgid "And @option{--list-generations=1,8,2} outputs three generations in the specified order.  Neither spaces nor trailing commas are allowed."
+msgstr "Et @option{--list-generations=1,8,2} renvoie les trois générations dans l'ordre spécifié.  Aucun espace ni virgule surnuméraire ne sont permis."
 
 #. type: item
-#: doc/guix.texi:3058
+#: doc/guix.texi:3502
 #, no-wrap
-msgid "@emph{Ranges}.  @code{--list-generations=2..9} prints the"
-msgstr "@emph{Des intervalles}.  @code{--list-generations=2..9} affiche les"
+msgid "@emph{Ranges}.  @option{--list-generations=2..9} prints the"
+msgstr "@emph{Ranges}.  @option{--list-generations=2..9} affiche les"
 
 #. type: itemize
-#: doc/guix.texi:3061
+#: doc/guix.texi:3505
 msgid "specified generations and everything in between.  Note that the start of a range must be smaller than its end."
 msgstr "générations demandées et tout ce qui se trouve entre elles.  Remarquez que le début d'un intervalle doit être plus petit que sa fin."
 
 #. type: itemize
-#: doc/guix.texi:3065
-msgid "It is also possible to omit the endpoint.  For example, @code{--list-generations=2..}, returns all generations starting from the second one."
-msgstr "Il est aussi possible d'omettre le numéro final.  Par exemple,  @code{--list-generations=2..} renvoie toutes les générations à partir de la deuxième."
+#: doc/guix.texi:3509
+msgid "It is also possible to omit the endpoint.  For example, @option{--list-generations=2..}, returns all generations starting from the second one."
+msgstr "Il est aussi possible d'omettre le numéro final.  Par exemple, @option{--list-generations=2..} renvoie toutes les générations à partir de la deuxième."
 
 #. type: item
-#: doc/guix.texi:3066
+#: doc/guix.texi:3510
 #, no-wrap
 msgid "@emph{Durations}.  You can also get the last @emph{N}@tie{}days, weeks,"
 msgstr "@emph{Des durées}.  Vous pouvez aussi récupérer les derniers @emph{N}@tie{}jours, semaines,"
 
 #. type: itemize
-#: doc/guix.texi:3070
-msgid "or months by passing an integer along with the first letter of the duration.  For example, @code{--list-generations=20d} lists generations that are up to 20 days old."
-msgstr "ou moins en passant un entier avec la première lettre de la durée (en anglais : d, w ou m).  Par exemple @code{--list-generations=20d} liste les générations qui sont âgées d'au plus 20 jours."
+#: doc/guix.texi:3514
+msgid "or months by passing an integer along with the first letter of the duration.  For example, @option{--list-generations=20d} lists generations that are up to 20 days old."
+msgstr "ou mois en passant un entier avec la première lettre de la durée (en anglais : d, w ou m).  Par exemple @option{--list-generations=20d} liste les générations qui sont âgées d'au plus 20 jours."
 
 #. type: item
-#: doc/guix.texi:3072
+#: doc/guix.texi:3516 doc/guix.texi:4311
 #, no-wrap
 msgid "--delete-generations[=@var{pattern}]"
 msgstr "--delete-generations[=@var{motif}]"
 
 #. type: itemx
-#: doc/guix.texi:3073
+#: doc/guix.texi:3517 doc/guix.texi:4312
 #, no-wrap
 msgid "-d [@var{pattern}]"
 msgstr "-d [@var{motif}]"
 
 #. type: table
-#: doc/guix.texi:3076
+#: doc/guix.texi:3520 doc/guix.texi:4315
 msgid "When @var{pattern} is omitted, delete all generations except the current one."
 msgstr "Lorsque @var{motif} est omis, supprimer toutes les générations en dehors de l'actuelle."
 
 #. type: table
-#: doc/guix.texi:3082
-msgid "This command accepts the same patterns as @option{--list-generations}.  When @var{pattern} is specified, delete the matching generations.  When @var{pattern} specifies a duration, generations @emph{older} than the specified duration match.  For instance, @code{--delete-generations=1m} deletes generations that are more than one month old."
-msgstr "Cette commande accepte les même motifs que @option{--list-generations}.  Lorsque @var{motif} est spécifié, supprimer les générations correspondante.  Lorsque @var{motif} spécifie une durée, les générations @emph{plus vieilles} que la durée spécifiée correspondent.  Par exemple @code{--delete-generations=1m} supprime les générations vieilles de plus d'un mois."
+#: doc/guix.texi:3526 doc/guix.texi:4321
+msgid "This command accepts the same patterns as @option{--list-generations}.  When @var{pattern} is specified, delete the matching generations.  When @var{pattern} specifies a duration, generations @emph{older} than the specified duration match.  For instance, @option{--delete-generations=1m} deletes generations that are more than one month old."
+msgstr "Cette commande accepte les même motifs que @option{--list-generations}.  Lorsque @var{motif} est spécifié, supprime les générations correspondantes.  Lorsque @var{motif} spécifie une durée, les générations @emph{plus anciennes} que la durée spécifiée correspondent.  Par exemple @option{--delete-generations=1m} supprime les générations vieilles de plus d'un mois."
 
 #. type: table
-#: doc/guix.texi:3085
+#: doc/guix.texi:3529
 msgid "If the current generation matches, it is @emph{not} deleted.  Also, the zeroth generation is never deleted."
 msgstr "Si la génération actuelle correspond, elle n'est @emph{pas} supprimée.  La zéroième génération n'est elle non plus jamais supprimée."
 
 #. type: table
-#: doc/guix.texi:3088
+#: doc/guix.texi:3532 doc/guix.texi:4326
 msgid "Note that deleting generations prevents rolling back to them.  Consequently, this command must be used with care."
 msgstr "Remarquez que supprimer des générations empêche de revenir en arrière vers elles.  Ainsi, cette commande doit être utilisée avec précaution."
 
 #. type: Plain text
-#: doc/guix.texi:3099
-msgid "Finally, since @command{guix package} may actually start build processes, it supports all the common build options (@pxref{Common Build Options}).  It also supports package transformation options, such as @option{--with-source} (@pxref{Package Transformation Options}).  However, note that package transformations are lost when upgrading; to preserve transformations across upgrades, you should define your own package variant in a Guile module and add it to @code{GUIX_PACKAGE_PATH} (@pxref{Defining Packages})."
-msgstr "Enfin, comme @command{guix package} peut démarrer des processus de construction, elle supporte les options de construction communes (@pxref{Common Build Options}).   Elle supporte aussi les options de transformation de paquets comme @option{--with-source} (@pxref{Package Transformation Options}).  Cependant, remarquez que les transformations de paquets sont perdues à la mise à jour ; pour les préserver à travers les mises à jours, vous devriez définir vos propres variantes des paquets dans une module Guile et l'ajouter à @code{GUIX_PACKAGE_PATH} (@pxref{Defining Packages})."
+#: doc/guix.texi:3543
+msgid "Finally, since @command{guix package} may actually start build processes, it supports all the common build options (@pxref{Common Build Options}).  It also supports package transformation options, such as @option{--with-source} (@pxref{Package Transformation Options}).  However, note that package transformations are lost when upgrading; to preserve transformations across upgrades, you should define your own package variant in a Guile module and add it to @env{GUIX_PACKAGE_PATH} (@pxref{Defining Packages})."
+msgstr "Enfin, comme @command{guix package} peut démarrer des processus de construction, il supporte les options de construction communes (@pxref{Common Build Options}).   Il supporte aussi les options de transformation de paquets comme @option{--with-source} (@pxref{Package Transformation Options}).  Cependant, remarquez que les transformations de paquets sont perdues lors de la mise à jour ; pour les préserver à travers les mises à jour, vous devriez définir vos propres variantes des paquets dans une module Guile et l'ajouter à @env{GUIX_PACKAGE_PATH} (@pxref{Defining Packages})."
 
 #. type: cindex
-#: doc/guix.texi:3104
+#: doc/guix.texi:3548
 #, no-wrap
 msgid "pre-built binaries"
 msgstr "binaires pré-construits"
 
 #. type: Plain text
-#: doc/guix.texi:3110
+#: doc/guix.texi:3554
 msgid "Guix supports transparent source/binary deployment, which means that it can either build things locally, or download pre-built items from a server, or both.  We call these pre-built items @dfn{substitutes}---they are substitutes for local build results.  In many cases, downloading a substitute is much faster than building things locally."
 msgstr "Guix gère le déploiement depuis des binaires ou des sources de manière transparente ce qui signifie qu'il peut aussi bien construire localement que télécharger des éléments pré-construits depuis un serveur ou les deux.  Nous appelons ces éléments pré-construits des @dfn{substituts} — ils se substituent aux résultats des constructions locales.  Dans la plupart des cas, télécharger un substitut est bien plus rapide que de construire les choses localement."
 
 #. type: Plain text
-#: doc/guix.texi:3115
+#: doc/guix.texi:3559
 msgid "Substitutes can be anything resulting from a derivation build (@pxref{Derivations}).  Of course, in the common case, they are pre-built package binaries, but source tarballs, for instance, which also result from derivation builds, can be available as substitutes."
 msgstr "Les substituts peuvent être tout ce qui résulte d'une construction de dérivation (@pxref{Derivations}).  Bien sûr dans le cas général, il s'agit de paquets binaires pré-construits, mais les archives des sources par exemple résultent aussi de la construction d'une dérivation qui peut aussi être disponible en tant que substitut."
 
 #. type: cindex
-#: doc/guix.texi:3128
-#, no-wrap
-msgid "hydra"
-msgstr "hydra"
-
-#. type: cindex
-#: doc/guix.texi:3129
+#: doc/guix.texi:3573
 #, no-wrap
 msgid "build farm"
 msgstr "ferme de construction"
 
 #. type: Plain text
-#: doc/guix.texi:3139
+#: doc/guix.texi:3583
 msgid "The @code{@value{SUBSTITUTE-SERVER}} server is a front-end to an official build farm that builds packages from Guix continuously for some architectures, and makes them available as substitutes.  This is the default source of substitutes; it can be overridden by passing the @option{--substitute-urls} option either to @command{guix-daemon} (@pxref{daemon-substitute-urls,, @code{guix-daemon --substitute-urls}})  or to client tools such as @command{guix package} (@pxref{client-substitute-urls,, client @option{--substitute-urls} option})."
 msgstr "Le serveur @code{@value{SUBSTITUTE-SERVER}} est une interface à la ferme de construction officielle qui construit des paquets pour Guix continuellement pour certaines architectures et les rend disponibles en tant que substituts.  C'est la source par défaut des substituts ; elle peut être modifiée en passant l'option @option{--substitute-urls} soit à @command{guix-daemon} (@pxref{daemon-substitute-urls,, @code{guix-daemon --substitute-urls}}) soit aux outils clients comme  @command{guix package} (@pxref{client-substitute-urls,, client @option{--substitute-urls} option})."
 
 #. type: Plain text
-#: doc/guix.texi:3145
+#: doc/guix.texi:3589
 msgid "Substitute URLs can be either HTTP or HTTPS.  HTTPS is recommended because communications are encrypted; conversely, using HTTP makes all communications visible to an eavesdropper, who could use the information gathered to determine, for instance, whether your system has unpatched security vulnerabilities."
 msgstr "Les URL des substituts peuvent être soit en HTTP soit en HTTPS.  Le HTTPS est recommandé parce que les communications sont chiffrées ; à l'inverse HTTP rend les communications visibles pour un espion qui peut utiliser les informations accumulées sur vous pour déterminer par exemple si votre système a des vulnérabilités de sécurités non corrigées."
 
 #. type: Plain text
-#: doc/guix.texi:3154
+#: doc/guix.texi:3598
 msgid "Substitutes from the official build farm are enabled by default when using Guix System (@pxref{GNU Distribution}).  However, they are disabled by default when using Guix on a foreign distribution, unless you have explicitly enabled them via one of the recommended installation steps (@pxref{Installation}).  The following paragraphs describe how to enable or disable substitutes for the official build farm; the same procedure can also be used to enable substitutes for any other substitute server."
 msgstr "Les substituts de la ferme de construction officielle sont activés par défaut dans la distribution système Guix (@pxref{GNU Distribution}).  Cependant, ils sont désactivés par défaut lorsque vous utilisez Guix sur une distribution externe, à moins que vous ne les ayez explicitement activés via l'une des étapes d'installation recommandées (@pxref{Installation}).  Les paragraphes suivants décrivent comment activer ou désactiver les substituts pour la ferme de construction officielle ; la même procédure peut être utilisée pour activer les substituts de n'importe quel autre serveur de substituts."
 
 #. type: cindex
-#: doc/guix.texi:3158
+#: doc/guix.texi:3602
 #, no-wrap
 msgid "security"
 msgstr "sécurité"
 
 #. type: cindex
-#: doc/guix.texi:3160
+#: doc/guix.texi:3604
 #, no-wrap
 msgid "access control list (ACL), for substitutes"
 msgstr "liste de contrôle d'accès (ACL), pour les substituts"
 
 #. type: cindex
-#: doc/guix.texi:3161
+#: doc/guix.texi:3605
 #, no-wrap
 msgid "ACL (access control list), for substitutes"
 msgstr "ACL (liste de contrôle d'accès), pour les substituts"
 
 #. type: Plain text
-#: doc/guix.texi:3168
+#: doc/guix.texi:3612
 msgid "To allow Guix to download substitutes from @code{@value{SUBSTITUTE-SERVER}} or a mirror thereof, you must add its public key to the access control list (ACL) of archive imports, using the @command{guix archive} command (@pxref{Invoking guix archive}).  Doing so implies that you trust @code{@value{SUBSTITUTE-SERVER}} to not be compromised and to serve genuine substitutes."
 msgstr "Pour permettre à Guix de télécharger les substituts depuis @code{@value{SUBSTITUTE-SERVER}} ou un miroir, vous devez ajouter sa clef publique à la liste de contrôle d'accès (ACL) des imports d'archives, avec la commande @command{guix archive} (@pxref{Invoking guix archive}).  Cela implique que vous faîtes confiance à @code{@value{SUBSTITUTE-SERVER}} pour ne pas être compromis et vous servir des substituts authentiques."
 
+#. type: quotation
+#: doc/guix.texi:3616
+msgid "If you are using Guix System, you can skip this section: Guix System authorizes substitutes from @code{@value{SUBSTITUTE-SERVER}} by default."
+msgstr "Si vous utilisez le système Guix, vous pouvez sauter cette section : le système Guix autorise les substituts de @code{@value{SUBSTITUTE-SERVER}} par défaut."
+
 #. type: Plain text
-#: doc/guix.texi:3175
+#: doc/guix.texi:3624
 msgid "The public key for @code{@value{SUBSTITUTE-SERVER}} is installed along with Guix, in @code{@var{prefix}/share/guix/@value{SUBSTITUTE-SERVER}.pub}, where @var{prefix} is the installation prefix of Guix.  If you installed Guix from source, make sure you checked the GPG signature of @file{guix-@value{VERSION}.tar.gz}, which contains this public key file.  Then, you can run something like this:"
 msgstr "La clef publique pour @code{@value{SUBSTITUTE-SERVER}} est installée avec Guix, dans @code{@var{préfixe}/share/guix/@value{SUBSTITUTE-SERVER}.pub}, où @var{préfixe} est le préfixe d'installation de Guix.  Si vous avez installé Guix depuis les sources, assurez-vous d'avoir vérifié la signature GPG de @file{guix-@value{VERSION}.tar.gz} qui contient ce fichier de clef publique.  Ensuite vous pouvez lancer quelque chose comme ceci :"
 
 #. type: example
-#: doc/guix.texi:3178
+#: doc/guix.texi:3627
 #, no-wrap
 msgid "# guix archive --authorize < @var{prefix}/share/guix/@value{SUBSTITUTE-SERVER}.pub\n"
 msgstr "# guix archive --authorize < @var{prefix}/share/guix/@value{SUBSTITUTE-SERVER}.pub\n"
 
-#. type: quotation
-#: doc/guix.texi:3184
-msgid "Similarly, the @file{hydra.gnu.org.pub} file contains the public key of an independent build farm also run by the project, reachable at @indicateurl{https://mirror.hydra.gnu.org}."
-msgstr "De même, le fichier @file{hydra.gnu.org.pub} contient la clef publique d'une ferme de construction indépendante qui appartient aussi au projet, disponible sur @indicateurl{https://mirror.hydra.gnu.org}."
-
 #. type: Plain text
-#: doc/guix.texi:3188
+#: doc/guix.texi:3631
 msgid "Once this is in place, the output of a command like @code{guix build} should change from something like:"
 msgstr "Une fois que cela est en place, la sortie d'une commande comme @code{guix build} devrait changer de quelque chose comme :"
 
 #. type: example
-#: doc/guix.texi:3197
+#: doc/guix.texi:3640
 #, no-wrap
 msgid ""
 "$ guix build emacs --dry-run\n"
@@ -7425,12 +8912,12 @@ msgstr ""
 "@dots{}\n"
 
 #. type: Plain text
-#: doc/guix.texi:3201
+#: doc/guix.texi:3644
 msgid "to something like:"
 msgstr "à quelque chose comme :"
 
 #. type: example
-#: doc/guix.texi:3210
+#: doc/guix.texi:3653
 #, no-wrap
 msgid ""
 "$ guix build emacs --dry-run\n"
@@ -7450,590 +8937,774 @@ msgstr ""
 "@dots{}\n"
 
 #. type: Plain text
-#: doc/guix.texi:3215
-msgid "This indicates that substitutes from @code{@value{SUBSTITUTE-SERVER}} are usable and will be downloaded, when possible, for future builds."
-msgstr "Cela indique que les substituts de @code{@value{SUBSTITUTE-SERVER}} sont utilisables et seront téléchargés, si possible, pour les futures constructions."
+#: doc/guix.texi:3660
+msgid "The text changed from ``The following derivations would be built'' to ``112.3 MB would be downloaded''.  This indicates that substitutes from @code{@value{SUBSTITUTE-SERVER}} are usable and will be downloaded, when possible, for future builds."
+msgstr "Le texte a changé de « Les dérivations suivantes seront construites » à « 112,3 Mio seront téléchargés ».  Cela indique que les substituts de @code{@value{SUBSTITUTE-SERVER}} sont utilisables et seront téléchargés, si possible, pour les futures constructions."
 
 #. type: cindex
-#: doc/guix.texi:3216
+#: doc/guix.texi:3661
 #, no-wrap
 msgid "substitutes, how to disable"
 msgstr "substituts, comment les désactiver"
 
 #. type: Plain text
-#: doc/guix.texi:3222
-msgid "The substitute mechanism can be disabled globally by running @code{guix-daemon} with @code{--no-substitutes} (@pxref{Invoking guix-daemon}).  It can also be disabled temporarily by passing the @code{--no-substitutes} option to @command{guix package}, @command{guix build}, and other command-line tools."
-msgstr "Le mécanisme de substitution peut être désactivé globalement en lançant @code{guix-daemon} avec @code{--no-substitutes} (@pxref{Invoking guix-daemon}).  Il peut aussi être désactivé temporairement en passant l'option @code{--no-substitutes} à @command{guix package}, @command{guix build} et aux autres outils en ligne de commande."
+#: doc/guix.texi:3667
+msgid "The substitute mechanism can be disabled globally by running @code{guix-daemon} with @option{--no-substitutes} (@pxref{Invoking guix-daemon}).  It can also be disabled temporarily by passing the @option{--no-substitutes} option to @command{guix package}, @command{guix build}, and other command-line tools."
+msgstr "Le mécanisme de substitution peut être désactivé globalement en lançant @code{guix-daemon} avec @option{--no-substitutes} (@pxref{Invoking guix-daemon}).  Il peut aussi être désactivé temporairement en passant l'option @option{--no-substitutes} à @command{guix package}, @command{guix build} et aux autres outils en ligne de commande."
 
 #. type: cindex
-#: doc/guix.texi:3226
+#: doc/guix.texi:3671
+#, no-wrap
+msgid "substitute servers, adding more"
+msgstr "serveurs de substituts, en ajouter"
+
+#. type: Plain text
+#: doc/guix.texi:3678
+msgid "Guix can look up and fetch substitutes from several servers.  This is useful when you are using packages from additional channels for which the official server does not have substitutes but another server provides them.  Another situation where this is useful is when you would prefer to download from your organization's substitute server, resorting to the official server only as a fallback or dismissing it altogether."
+msgstr "Guix peut chercher et récupérer des substituts à partir de plusieurs serveurs.  C'est utile si vous utilisez des paquets de canaux supplémentaires pour lesquels le serveur officiel n'a pas de substituts mais que d'autres serveurs les fournissent.  Une autre situation où cela est utile est si vous souhaitez télécharger depuis les serveurs de substituts de votre organisation, en utilisant le serveur officiel en dernier recours, ou en ne l'utilisant pas du tout."
+
+#. type: Plain text
+#: doc/guix.texi:3683
+msgid "You can give Guix a list of substitute server URLs and it will check them in the specified order.  You also need to explicitly authorize the public keys of substitute servers to instruct Guix to accept the substitutes they sign."
+msgstr "Vous pouvez donner à Guix une liste d'URL de serveurs de substituts et il les vérifiera dans l'ordre indiqué.  Vous devez aussi explicitement autoriser les clés publiques des serveurs de substituts pour dire à Guix d'accepter les substituts qu'ils signent."
+
+#. type: Plain text
+#: doc/guix.texi:3690
+msgid "On Guix System, this is achieved by modifying the configuration of the @code{guix} service.  Since the @code{guix} service is part of the default lists of services, @code{%base-services} and @code{%desktop-services}, you can use @code{modify-services} to change its configuration and add the URLs and substitute keys that you want (@pxref{Service Reference, @code{modify-services}})."
+msgstr "Sur le système Guix, cela se fait en modifiant la configuration du service @code{guix}.  Comme le service @code{guix} fait partie des services par défaut, @code{%base-services} et @code{%desktop-services}, vous pouvez utiliser @code{modify-services} pour changer sa configuration et ajouter les URL et les clés des serveurs de substituts que vous voulez (@pxref{Service Reference, @code{modify-services}})."
+
+#. type: Plain text
+#: doc/guix.texi:3695
+msgid "As an example, suppose you want to fetch substitutes from @code{guix.example.org} and to authorize the signing key of that server, in addition to the default @code{@value{SUBSTITUTE-SERVER}}.  The resulting operating system configuration will look something like:"
+msgstr "Par exemple, supposons que vous vouliez récupérer les substituts de @code{guix.example.org} et autoriser la clé de signature de ce serveur, en plus du serveur @code{@value{SUBSTITUTE-SERVER}} par défaut.  La configuration du système d'exploitation qui en résulte ressemblera à :"
+
+#. type: lisp
+#: doc/guix.texi:3712
+#, no-wrap
+msgid ""
+"(operating-system\n"
+"  ;; @dots{}\n"
+"  (services\n"
+"    ;; Assume we're starting from '%desktop-services'.  Replace it\n"
+"    ;; with the list of services you're actually using.\n"
+"    (modify-services %desktop-services\n"
+"      (guix-service-type config =>\n"
+"                        (guix-configuration\n"
+"                          (inherit config)\n"
+"                          (substitute-urls\n"
+"                            (append (list \"https://guix.example.org\")\n"
+"                                    %default-substitute-urls))\n"
+"                          (authorized-keys\n"
+"                            (append (list (local-file \"./key.pub\"))\n"
+"                                    %default-authorized-guix-keys)))))))\n"
+msgstr ""
+"(operating-system\n"
+"  ;; @dots{}\n"
+"  (services\n"
+"    ;; Supposons qu'on commence à partir de '%desktop-services'.  Remplaçons-le\n"
+"    ;; par la liste des services qu'on utilise vraiment.\n"
+"    (modify-services %desktop-services\n"
+"      (guix-service-type config =>\n"
+"                        (guix-configuration\n"
+"                          (inherit config)\n"
+"                          (substitute-urls\n"
+"                            (append (list \"https://guix.example.org\")\n"
+"                                    %default-substitute-urls))\n"
+"                          (authorized-keys\n"
+"                            (append (list (local-file \"./key.pub\"))\n"
+"                                    %default-authorized-guix-keys)))))))\n"
+
+#. type: Plain text
+#: doc/guix.texi:3719
+msgid "This assumes that the file @file{key.pub} contains the signing key of @code{guix.example.org}.  With this change in place in your operating system configuration file (say @file{/etc/config.scm}), you can reconfigure and restart the @code{guix-daemon} service or reboot so the changes take effect:"
+msgstr "Cela suppose que le fichier @file{key.pub} contient la clé de signature de @code{guix.example.org}.  Avec ce changement dans le fichier de configuration de votre système d'exploitation (disons @file{/etc/config.scm}), vous pouvez reconfigurer et redémarrer le service @code{guix-daemon} ou redémarrer pour que les changements prennent effet :"
+
+#. type: example
+#: doc/guix.texi:3723
+#, no-wrap
+msgid ""
+"$ sudo guix system reconfigure /etc/config.scm\n"
+"$ sudo herd restart guix-daemon\n"
+msgstr ""
+"$ sudo guix system reconfigure /etc/config.scm\n"
+"$ sudo herd restart guix-daemon\n"
+
+#. type: Plain text
+#: doc/guix.texi:3727
+msgid "If you're running Guix on a ``foreign distro'', you would instead take the following steps to get substitutes from additional servers:"
+msgstr "Si vous utilisez Guix sur une « distro externe », vous suivrez plutôt les étapes suivantes pour avoir des substituts de serveurs supplémentaires :"
+
+#. type: enumerate
+#: doc/guix.texi:3736
+msgid "Edit the service configuration file for @code{guix-daemon}; when using systemd, this is normally @file{/etc/systemd/system/guix-daemon.service}.  Add the @option{--substitute-urls} option on the @command{guix-daemon} command line and list the URLs of interest (@pxref{daemon-substitute-urls, @code{guix-daemon --substitute-urls}}):"
+msgstr "Modifier le fichier de configuration du service @code{guix-daemon} ; pour systemd, c'est normalement @file{/etc/systemd/system/guix-daemon.service}.  Ajouter l'option @option{--substitute-urls} à la ligne de command @command{guix-daemon} et listez les URL qui vous intéressent (@pxref{daemon-substitute-urls, @code{guix-daemon --substitute-urls}}) :"
+
+#. type: example
+#: doc/guix.texi:3739
+#, no-wrap
+msgid "@dots{} --substitute-urls='https://guix.example.org https://@value{SUBSTITUTE-SERVER}'\n"
+msgstr "@dots{} --substitute-urls='https://guix.example.org https://@value{SUBSTITUTE-SERVER}'\n"
+
+#. type: enumerate
+#: doc/guix.texi:3743
+msgid "Restart the daemon.  For systemd, it goes like this:"
+msgstr "Redémarrez le démon.  Pour systemd, cela ressemble à :"
+
+#. type: example
+#: doc/guix.texi:3747
+#, no-wrap
+msgid ""
+"systemctl daemon-reload\n"
+"systemctl restart guix-daemon.service\n"
+msgstr ""
+"systemctl daemon-reload\n"
+"systemctl restart guix-daemon.service\n"
+
+#. type: enumerate
+#: doc/guix.texi:3751
+msgid "Authorize the key of the new server (@pxref{Invoking guix archive}):"
+msgstr "Autorisez la clé du nouveau serveur (@pxref{Invoking guix archive}) :"
+
+#. type: example
+#: doc/guix.texi:3754
+#, no-wrap
+msgid "guix archive --authorize < key.pub\n"
+msgstr "guix archive --authorize < key.pub\n"
+
+#. type: enumerate
+#: doc/guix.texi:3758
+msgid "Again this assumes @file{key.pub} contains the public key that @code{guix.example.org} uses to sign substitutes."
+msgstr "De nouveau, cela suppose que @file{key.pub} contient la clé publique que @code{guix.example.org} utilise pour signer les substituts."
+
+#. type: Plain text
+#: doc/guix.texi:3765
+msgid "Now you're all set! Substitutes will be preferably taken from @code{https://guix.example.org}, using @code{@value{SUBSTITUTE-SERVER}} as a fallback.  Of course you can list as many substitute servers as you like, with the caveat that substitute lookup can be slowed down if too many servers need to be contacted."
+msgstr "Maintenant vous êtes paré !  Les substituts seront téléchargés de préférence à partir de @code{https://guix.example.org}, avec @code{@value{SUBSTITUTE-SERVER}} en réserve.  Évidemment vous pouvez lister autant de serveurs de substituts que vous voulez, avec l'inconvénient que la recherche de substituts sera ralentie si vous devez contacter trop de serveurs."
+
+#. type: Plain text
+#: doc/guix.texi:3769
+msgid "Note that there are also situations where one may want to add the URL of a substitute server @emph{without} authorizing its key.  @xref{Substitute Authentication}, to understand this fine point."
+msgstr "Remarquez qu'il à des situations où vous pourriez vouloir ajouter l'URL d'un serveur de substitut @emph{sans} autoriser sa clé.  @xref{Substitute Authentication}, pour comprendre ce point délicat."
+
+#. type: cindex
+#: doc/guix.texi:3773
 #, no-wrap
 msgid "digital signatures"
 msgstr "signatures numériques"
 
 #. type: Plain text
-#: doc/guix.texi:3230
+#: doc/guix.texi:3777
 msgid "Guix detects and raises an error when attempting to use a substitute that has been tampered with.  Likewise, it ignores substitutes that are not signed, or that are not signed by one of the keys listed in the ACL."
 msgstr "Guix détecte et lève une erreur lorsqu'il essaye d'utiliser un substitut qui a été modifié.  De même, il ignore les substituts qui ne sont pas signés ou qui ne sont pas signés par l'une des clefs listées dans l'ACL."
 
 #. type: Plain text
-#: doc/guix.texi:3236
+#: doc/guix.texi:3783
 msgid "There is one exception though: if an unauthorized server provides substitutes that are @emph{bit-for-bit identical} to those provided by an authorized server, then the unauthorized server becomes eligible for downloads.  For example, assume we have chosen two substitute servers with this option:"
 msgstr "Il y a une exception cependant : si un serveur non autorisé fournit des substituts qui sont @emph{identiques bit-à-bit} à ceux fournis par un serveur autorisé, alors le serveur non autorisé devient disponible pour les téléchargements.  Par exemple en supposant qu'on a choisi deux serveurs de substituts avec cette option :"
 
 #. type: example
-#: doc/guix.texi:3239
+#: doc/guix.texi:3786
 #, no-wrap
 msgid "--substitute-urls=\"https://a.example.org https://b.example.org\"\n"
 msgstr "--substitute-urls=\"https://a.example.org https://b.example.org\"\n"
 
 #. type: Plain text
-#: doc/guix.texi:3250
-msgid "If the ACL contains only the key for @code{b.example.org}, and if @code{a.example.org} happens to serve the @emph{exact same} substitutes, then Guix will download substitutes from @code{a.example.org} because it comes first in the list and can be considered a mirror of @code{b.example.org}.  In practice, independent build machines usually produce the same binaries, thanks to bit-reproducible builds (see below)."
-msgstr "Si l'ACL contient uniquement la clef de @code{b.example.org}, et si @code{a.example.org} sert @emph{exactement les mêmes} substituts, alors Guix téléchargera les substituts de @code{a.example.org} parce qu'il vient en premier dans la liste et peut être considéré comme un miroir de @code{b.example.org}.  En pratique, des machines de constructions produisent souvent les mêmes binaires grâce à des construction reproductibles au bit près (voir plus bas)."
+#: doc/guix.texi:3797
+msgid "If the ACL contains only the key for @samp{b.example.org}, and if @samp{a.example.org} happens to serve the @emph{exact same} substitutes, then Guix will download substitutes from @samp{a.example.org} because it comes first in the list and can be considered a mirror of @samp{b.example.org}.  In practice, independent build machines usually produce the same binaries, thanks to bit-reproducible builds (see below)."
+msgstr "Si l'ACL contient uniquement la clef de @samp{b.example.org}, et si @samp{a.example.org} sert @emph{exactement les mêmes} substituts, alors Guix téléchargera les substituts de @samp{a.example.org} parce qu'il vient en premier dans la liste et peut être considéré comme un miroir de @samp{b.example.org}.  En pratique, les machines de construction indépendantes produisent généralement les mêmes binaires, grâce à des constructions reproductibles au bit près (voir ci-dessous)."
 
 #. type: Plain text
-#: doc/guix.texi:3257
-msgid "When using HTTPS, the server's X.509 certificate is @emph{not} validated (in other words, the server is not authenticated), contrary to what HTTPS clients such as Web browsers usually do.  This is because Guix authenticates substitute information itself, as explained above, which is what we care about (whereas X.509 certificates are about authenticating bindings between domain names and public keys.)"
-msgstr "Lorsque vous utilisez HTTPS, le certificat X.509 du serveur n'est @emph{pas} validé (en d'autre termes, le serveur n'est pas authentifié), contrairement à ce que des clients HTTPS comme des navigateurs web font habituellement.  Cela est dû au fait que Guix authentifie les informations sur les substituts eux-mêmes, comme expliqué plus haut, ce dont on se soucie réellement (alors que les certificats X.509 authentifie la relation entre nom de domaine et clef publique)."
+#: doc/guix.texi:3804
+msgid "When using HTTPS, the server's X.509 certificate is @emph{not} validated (in other words, the server is not authenticated), contrary to what HTTPS clients such as Web browsers usually do.  This is because Guix authenticates substitute information itself, as explained above, which is what we care about (whereas X.509 certificates are about authenticating bindings between domain names and public keys)."
+msgstr "Lorsque vous utilisez HTTPS, le certificat X.509 du serveur n'est @emph{pas} validé (en d'autre termes, le serveur n'est pas authentifié), contrairement à ce que des clients HTTPS comme des navigateurs web font habituellement.  Celà est dû au fait que Guix authentifie les informations sur les substituts eux-mêmes, comme expliqué plus haut, ce dont on se soucie réellement (alors que les certificats X.509 authentifient la relation entre nom de domaine et clef publique)."
 
 #. type: Plain text
-#: doc/guix.texi:3269
-msgid "Substitutes are downloaded over HTTP or HTTPS.  The @code{http_proxy} environment variable can be set in the environment of @command{guix-daemon} and is honored for downloads of substitutes.  Note that the value of @code{http_proxy} in the environment where @command{guix build}, @command{guix package}, and other client commands are run has @emph{absolutely no effect}."
-msgstr "Les substituts sont téléchargés par HTTP ou HTTPS.  La variable d'environnement @code{http_proxy} peut être initialisée dans l'environnement de @command{guix-daemon} et est respectée pour le téléchargement des substituts.  Remarquez que la valeur de @code{http_proxy} dans l'environnement où tournent @command{guix build}, @command{guix package} et les autres clients n'a @emph{absolument aucun effet}."
+#: doc/guix.texi:3816
+msgid "Substitutes are downloaded over HTTP or HTTPS.  The @env{http_proxy} and @env{https_proxy} environment variables can be set in the environment of @command{guix-daemon} and are honored for downloads of substitutes.  Note that the value of those environment variables in the environment where @command{guix build}, @command{guix package}, and other client commands are run has @emph{absolutely no effect}."
+msgstr "Les substituts sont téléchargés par HTTP ou HTTPS.  Les variables d'environnement @env{http_proxy} et @env{https_proxy} peuvent être initialisées dans l'environnement de @command{guix-daemon} et sont respectées pour le téléchargement des substituts.  Remarquez que la valeur de ces variables d'environnement dans l'environnement où sont exécutés @command{guix build}, @command{guix package}, et d'autres commandes client n'a @emph{absolument aucun effet}."
 
 #. type: Plain text
-#: doc/guix.texi:3278
+#: doc/guix.texi:3825
 msgid "Even when a substitute for a derivation is available, sometimes the substitution attempt will fail.  This can happen for a variety of reasons: the substitute server might be offline, the substitute may recently have been deleted, the connection might have been interrupted, etc."
 msgstr "Même lorsqu'un substitut pour une dérivation est disponible, la substitution échoue parfois.  Cela peut arriver pour plusieurs raisons : le serveur de substitut peut être hors ligne, le substitut a récemment été supprimé du serveur, la connexion peut avoir été interrompue, etc."
 
 #. type: Plain text
-#: doc/guix.texi:3292
-msgid "When substitutes are enabled and a substitute for a derivation is available, but the substitution attempt fails, Guix will attempt to build the derivation locally depending on whether or not @code{--fallback} was given (@pxref{fallback-option,, common build option @code{--fallback}}).  Specifically, if @code{--fallback} was omitted, then no local build will be performed, and the derivation is considered to have failed.  However, if @code{--fallback} was given, then Guix will attempt to build the derivation locally, and the success or failure of the derivation depends on the success or failure of the local build.  Note that when substitutes are disabled or no substitute is available for the derivation in question, a local build will @emph{always} be performed, regardless of whether or not @code{--fallback} was given."
-msgstr "Lorsque les substituts sont activés et qu'un substitut pour une dérivation est disponible, mais que la tentative de substitution échoue, Guix essaiera de construire la dérivation localement si @code{--fallback} a été passé en argument (@pxref{fallback-option,, common build option @code{--fallback}}).  Plus spécifiquement, si cet option n'a pas été passée en argument, alors aucune construction locale n'est effectuée et la dérivation est considérée comme étant en échec. Cependant, si @code{--fallback} est passé en argument, alors Guix essaiera de construire la dérivation localement et l'échec ou le succès de la dérivation dépend de l'échec ou du succès de la construction locale.  Remarquez que lorsque les substituts sont désactivés ou qu'aucun substitut n'est disponible pour la dérivation en question, une construction locale sera @emph{toujours} effectuée, indépendamment du fait que l'argument @code{--fallback} ait été ou non passé."
+#: doc/guix.texi:3839
+msgid "When substitutes are enabled and a substitute for a derivation is available, but the substitution attempt fails, Guix will attempt to build the derivation locally depending on whether or not @option{--fallback} was given (@pxref{fallback-option,, common build option @option{--fallback}}).  Specifically, if @option{--fallback} was omitted, then no local build will be performed, and the derivation is considered to have failed.  However, if @option{--fallback} was given, then Guix will attempt to build the derivation locally, and the success or failure of the derivation depends on the success or failure of the local build.  Note that when substitutes are disabled or no substitute is available for the derivation in question, a local build will @emph{always} be performed, regardless of whether or not @option{--fallback} was given."
+msgstr "Lorsque les substituts sont activés et qu'un substitut pour une dérivation est disponible, mais que la tentative de substitution échoue, Guix essaiera de construire la dérivation localement si @option{--fallback} a été passé en argument (@pxref{fallback-option,, common build option @code{--fallback}}).  Plus spécifiquement, si cet option n'a pas été passée en argument, alors aucune construction locale n'est effectuée et la dérivation est considérée comme étant en échec. Cependant, si @option{--fallback} est passé en argument, alors Guix essaiera de construire la dérivation localement et l'échec ou le succès de la dérivation dépend de l'échec ou du succès de la construction locale.  Remarquez que lorsque les substituts sont désactivés ou qu'aucun substitut n'est disponible pour la dérivation en question, une construction locale sera @emph{toujours} effectuée, indépendamment du fait que l'argument @option{--fallback} ait été ou non passé."
 
 #. type: Plain text
-#: doc/guix.texi:3297
+#: doc/guix.texi:3844
 msgid "To get an idea of how many substitutes are available right now, you can try running the @command{guix weather} command (@pxref{Invoking guix weather}).  This command provides statistics on the substitutes provided by a server."
 msgstr "Pour se donner une idée du nombre de substituts disponibles maintenant, vous pouvez essayer de lancer la commande @command{guix weather} (@pxref{Invoking guix weather}).  Cette command fournit des statistiques sur les substituts fournis par un serveur."
 
 #. type: cindex
-#: doc/guix.texi:3301
+#: doc/guix.texi:3848
 #, no-wrap
 msgid "trust, of pre-built binaries"
 msgstr "confiance, en des binaires pré-construits"
 
 #. type: Plain text
-#: doc/guix.texi:3311
+#: doc/guix.texi:3858
 msgid "Today, each individual's control over their own computing is at the mercy of institutions, corporations, and groups with enough power and determination to subvert the computing infrastructure and exploit its weaknesses.  While using @code{@value{SUBSTITUTE-SERVER}} substitutes can be convenient, we encourage users to also build on their own, or even run their own build farm, such that @code{@value{SUBSTITUTE-SERVER}} is less of an interesting target.  One way to help is by publishing the software you build using @command{guix publish} so that others have one more choice of server to download substitutes from (@pxref{Invoking guix publish})."
 msgstr "De nos jours, le contrôle individuel sur son utilisation propre de l'informatique est à la merci d'institutions, de sociétés et de groupes avec assez de pouvoir et de détermination pour contourner les infrastructures informatiques et exploiter leurs faiblesses.  Bien qu'utiliser les substituts de @code{@value{SUBSTITUTE-SERVER}} soit pratique, nous encourageons chacun·e à construire aussi par soi-même, voire à faire tourner sa propre ferme de construction, pour que @code{@value{SUBSTITUTE-SERVER}} devienne une cible moins intéressante.  Une façon d'aider est de publier les logiciels que vous construisez avec @command{guix publish} pour que les autres aient plus de choix de serveurs où télécharger les substituts (@pxref{Invoking guix publish})."
 
 #. type: Plain text
-#: doc/guix.texi:3323
+#: doc/guix.texi:3870
 msgid "Guix has the foundations to maximize build reproducibility (@pxref{Features}).  In most cases, independent builds of a given package or derivation should yield bit-identical results.  Thus, through a diverse set of independent package builds, we can strengthen the integrity of our systems.  The @command{guix challenge} command aims to help users assess substitute servers, and to assist developers in finding out about non-deterministic package builds (@pxref{Invoking guix challenge}).  Similarly, the @option{--check} option of @command{guix build} allows users to check whether previously-installed substitutes are genuine by rebuilding them locally (@pxref{build-check, @command{guix build --check}})."
 msgstr "Guix possède les fondations pour maximiser la reproductibilité logicielle (@pxref{Features}).  Dans la plupart des cas, des constructions indépendantes d'un paquet donnée ou d'une dérivation devrait donner des résultats identiques au bit près.  Ainsi, à travers un ensemble de constructions de paquets indépendantes il est possible de renforcer l'intégrité du système.  La commande @command{guix challenge} a pour but d'aider les utilisateur·rice·s à tester les serveurs de substituts et à aider les développeur·euse·s à trouver les constructions de paquets non-déterministes (@pxref{Invoking guix challenge}).  De même, l'option @option{--check} de @command{guix build} permet à chaque personne de vérifier si les substituts précédemment installés sont authentiques en les reconstruisant localement (@pxref{build-check, @command{guix build --check}})."
 
 #. type: Plain text
-#: doc/guix.texi:3327
+#: doc/guix.texi:3874
 msgid "In the future, we want Guix to have support to publish and retrieve binaries to/from other users, in a peer-to-peer fashion.  If you would like to discuss this project, join us on @email{guix-devel@@gnu.org}."
 msgstr "À l'avenir, nous aimerions que Guix puisse publier et recevoir des binaires d'autres personnes, de manière pair-à-pair.  Si vous voulez discuter de ce projet, rejoignez-nous sur @email{guix-devel@@gnu.org}."
 
 #. type: cindex
-#: doc/guix.texi:3331
+#: doc/guix.texi:3878
 #, no-wrap
 msgid "multiple-output packages"
 msgstr "paquets avec plusieurs résultats"
 
 #. type: cindex
-#: doc/guix.texi:3332
+#: doc/guix.texi:3879
 #, no-wrap
 msgid "package outputs"
 msgstr "sorties de paquets"
 
 #. type: cindex
-#: doc/guix.texi:3333
+#: doc/guix.texi:3880
 #, no-wrap
 msgid "outputs"
 msgstr "sorties"
 
 #. type: Plain text
-#: doc/guix.texi:3343
+#: doc/guix.texi:3890
 msgid "Often, packages defined in Guix have a single @dfn{output}---i.e., the source package leads to exactly one directory in the store.  When running @command{guix install glibc}, one installs the default output of the GNU libc package; the default output is called @code{out}, but its name can be omitted as shown in this command.  In this particular case, the default output of @code{glibc} contains all the C header files, shared libraries, static libraries, Info documentation, and other supporting files."
 msgstr "Souvent, les paquets définis dans Guix ont une seule @dfn{sortie} — c.-à-d.@: que le paquet source conduit à exactement un répertoire dans le dépôt.  Lorsque vous lancez @command{guix install glibc}, vous installez la sortie par défaut du paquet GNU libc ; la sortie par défaut est appelée @code{out} mais son nom peut être omis comme le montre cette commande.  Dans ce cas particulier, la sortie par défaut de @code{glibc} contient tous les fichiers d'en-tête C, les bibliothèques partagées, les bibliothèques statiques, la documentation Info et les autres fichiers de support."
 
 #. type: Plain text
-#: doc/guix.texi:3351
+#: doc/guix.texi:3898
 msgid "Sometimes it is more appropriate to separate the various types of files produced from a single source package into separate outputs.  For instance, the GLib C library (used by GTK+ and related packages)  installs more than 20 MiB of reference documentation as HTML pages.  To save space for users who do not need it, the documentation goes to a separate output, called @code{doc}.  To install the main GLib output, which contains everything but the documentation, one would run:"
 msgstr "Parfois il est plus approprié de séparer les divers types de fichiers produits par un même paquet source en plusieurs sorties.  Par exemple, la bibliothèque C GLib (utilisée par GTK+ et des paquets associés) installe plus de 20 Mo de documentation de référence dans des pages HTML.  Pour préserver l'espace disque des utilisateurs qui n'en ont pas besoin, la documentation va dans une sortie séparée nommée @code{doc}.  Pour installer la sortie principale de GLib, qui contient tout sauf la documentation, on devrait lancer :"
 
 #. type: example
-#: doc/guix.texi:3354
+#: doc/guix.texi:3901
 #, no-wrap
 msgid "guix install glib\n"
 msgstr "guix install glib\n"
 
 #. type: item
-#: doc/guix.texi:3356 doc/guix.texi:25314 doc/guix.texi:25339
+#: doc/guix.texi:3903 doc/guix.texi:32085 doc/guix.texi:32110
 #, no-wrap
 msgid "documentation"
 msgstr "documentation"
 
 #. type: Plain text
-#: doc/guix.texi:3358
+#: doc/guix.texi:3905
 msgid "The command to install its documentation is:"
 msgstr "La commande pour installer la documentation est :"
 
 #. type: example
-#: doc/guix.texi:3361
+#: doc/guix.texi:3908
 #, no-wrap
 msgid "guix install glib:doc\n"
 msgstr "guix install glib:doc\n"
 
 #. type: Plain text
-#: doc/guix.texi:3372
+#: doc/guix.texi:3919
 msgid "Some packages install programs with different ``dependency footprints''.  For instance, the WordNet package installs both command-line tools and graphical user interfaces (GUIs).  The former depend solely on the C library, whereas the latter depend on Tcl/Tk and the underlying X libraries.  In this case, we leave the command-line tools in the default output, whereas the GUIs are in a separate output.  This allows users who do not need the GUIs to save space.  The @command{guix size} command can help find out about such situations (@pxref{Invoking guix size}).  @command{guix graph} can also be helpful (@pxref{Invoking guix graph})."
 msgstr "Certains paquets installent des programmes avec des « empreintes dépendances » différentes.  Par exemple le paquet WordNet installe à la fois les outils en ligne de commande et les interfaces graphiques (GUI).  La première ne dépend que de la bibliothèque C, alors que cette dernière dépend de Tcl/Tk et des bibliothèques X sous-jacentes.  Dans ce cas, nous laissons les outils en ligne de commande dans la sortie par défaut et l'interface graphique dans une sortie séparée.  Cela permet aux utilisateurs qui n'ont pas besoin d'interface graphique de gagner de la place.  La commande @command{guix size} peut aider à trouver ces situations (@pxref{Invoking guix size}). @command{guix graph} peut aussi être utile (@pxref{Invoking guix graph})."
 
 #. type: Plain text
-#: doc/guix.texi:3380
+#: doc/guix.texi:3927
 msgid "There are several such multiple-output packages in the GNU distribution.  Other conventional output names include @code{lib} for libraries and possibly header files, @code{bin} for stand-alone programs, and @code{debug} for debugging information (@pxref{Installing Debugging Files}).  The outputs of a packages are listed in the third column of the output of @command{guix package --list-available} (@pxref{Invoking guix package})."
 msgstr "Il y a plusieurs paquets à sorties multiples dans la distribution GNU.  D'autres noms de sorties conventionnels sont @code{lib} pour les bibliothèques et éventuellement les fichiers d'en-tête, @code{bin} pour les programmes indépendants et @code{debug} pour les informations de débogage (@pxref{Installing Debugging Files}).   Les sorties d'un paquet sont listés dans la troisième colonne de la sortie de @command{guix package --list-available} (@pxref{Invoking guix package})."
 
 #. type: section
-#: doc/guix.texi:3383
+#: doc/guix.texi:3930
 #, no-wrap
 msgid "Invoking @command{guix gc}"
 msgstr "Invoquer @command{guix gc}"
 
 #. type: cindex
-#: doc/guix.texi:3385
+#: doc/guix.texi:3932
 #, no-wrap
 msgid "garbage collector"
 msgstr "ramasse-miettes"
 
 #. type: cindex
-#: doc/guix.texi:3386
+#: doc/guix.texi:3933
 #, no-wrap
 msgid "disk space"
 msgstr "espace disque"
 
 #. type: Plain text
-#: doc/guix.texi:3392
+#: doc/guix.texi:3939
 msgid "Packages that are installed, but not used, may be @dfn{garbage-collected}.  The @command{guix gc} command allows users to explicitly run the garbage collector to reclaim space from the @file{/gnu/store} directory.  It is the @emph{only} way to remove files from @file{/gnu/store}---removing files or directories manually may break it beyond repair!"
 msgstr "Les paquets qui sont installés mais pas utilisés peuvent être @dfn{glanés}.  La commande @command{guix gc} permet aux utilisateurs de lancer explicitement le ramasse-miettes pour récupérer de l'espace dans le répertoire @file{/gnu/store}.  C'est la @emph{seule} manière de supprimer des fichiers de @file{/gnu/store} — supprimer des fichiers ou des répertoires à la main peut le casser de manière impossible à réparer !"
 
 #. type: Plain text
-#: doc/guix.texi:3403
+#: doc/guix.texi:3950
 msgid "The garbage collector has a set of known @dfn{roots}: any file under @file{/gnu/store} reachable from a root is considered @dfn{live} and cannot be deleted; any other file is considered @dfn{dead} and may be deleted.  The set of garbage collector roots (``GC roots'' for short)  includes default user profiles; by default, the symlinks under @file{/var/guix/gcroots} represent these GC roots.  New GC roots can be added with @command{guix build --root}, for example (@pxref{Invoking guix build}).  The @command{guix gc --list-roots} command lists them."
 msgstr "Le ramasse-miettes a un ensemble de @dfn{racines} connues : tout fichier dans @file{/gnu/store} atteignable depuis une racine est considéré comme @dfn{utilisé} et ne peut pas être supprimé ; tous les autres fichiers sont considérés comme @dfn{inutilisés} et peuvent être supprimés.  L'ensemble des racines du ramasse-miettes (ou « racines du GC » pour faire court) inclue les profils par défaut des utilisateurs ; par défaut les liens symboliques sous @file{/var/guix/gcroots} représentent ces racines du GC.  De nouvelles racines du GC peuvent être ajoutées avec la @command{guix build -- root} par exemple (@pxref{Invoking guix build}).  La commande @command{guix gc --list-roots} permet de les lister."
 
 #. type: Plain text
-#: doc/guix.texi:3409
+#: doc/guix.texi:3956
 msgid "Prior to running @code{guix gc --collect-garbage} to make space, it is often useful to remove old generations from user profiles; that way, old package builds referenced by those generations can be reclaimed.  This is achieved by running @code{guix package --delete-generations} (@pxref{Invoking guix package})."
 msgstr "Avant de lancer @code{guix gc --collect-garbage} pour faire de la place, c'est souvent utile de supprimer les anciennes génération des profils utilisateurs ; de cette façon les anciennes constructions de paquets référencées par ces générations peuvent être glanées.  Cela se fait en lançant @code{guix package --delete-generations} (@pxref{Invoking guix package})."
 
 #. type: Plain text
-#: doc/guix.texi:3413
+#: doc/guix.texi:3960
 msgid "Our recommendation is to run a garbage collection periodically, or when you are short on disk space.  For instance, to guarantee that at least 5@tie{}GB are available on your disk, simply run:"
 msgstr "Nous recommandons de lancer le ramasse-miettes régulièrement ou lorsque vous avez besoin d'espace disque.  Par exemple pour garantir qu'au moins 5@tie{}Go d'espace reste libre sur votre disque, lancez simplement :"
 
 #. type: example
-#: doc/guix.texi:3416
+#: doc/guix.texi:3963
 #, no-wrap
 msgid "guix gc -F 5G\n"
 msgstr "guix gc -F 5G\n"
 
 #. type: Plain text
-#: doc/guix.texi:3425
+#: doc/guix.texi:3972
 msgid "It is perfectly safe to run as a non-interactive periodic job (@pxref{Scheduled Job Execution}, for how to set up such a job).  Running @command{guix gc} with no arguments will collect as much garbage as it can, but that is often inconvenient: you may find yourself having to rebuild or re-download software that is ``dead'' from the GC viewpoint but that is necessary to build other pieces of software---e.g., the compiler tool chain."
 msgstr "Il est parfaitement possible de le lancer comme une tâche périodique non-interactive (@pxref{Scheduled Job Execution} pour apprendre comment paramétrer une telle tâche).  Lancer @command{guix gc} sans argument ramassera autant de miettes que possible mais ça n'est pas le plus pratique : vous pourriez vous retrouver à reconstruire ou re-télécharger des logiciels « inutilisés » du point de vu du GC mais qui sont nécessaires pour construire d'autres logiciels — p.@: ex.@: la chaîne de compilation."
 
 #. type: Plain text
-#: doc/guix.texi:3431
-msgid "The @command{guix gc} command has three modes of operation: it can be used to garbage-collect any dead files (the default), to delete specific files (the @code{--delete} option), to print garbage-collector information, or for more advanced queries.  The garbage collection options are as follows:"
-msgstr "La command @command{guix gc} a trois modes d'opération : il peut être utilisé pour glaner des fichiers inutilisés (par défaut), pour supprimer des fichiers spécifiques (l'option @code{--delete}), pour afficher des informations sur le ramasse-miettes ou pour des requêtes plus avancées.  Les options du ramasse-miettes sont :"
+#: doc/guix.texi:3978
+msgid "The @command{guix gc} command has three modes of operation: it can be used to garbage-collect any dead files (the default), to delete specific files (the @option{--delete} option), to print garbage-collector information, or for more advanced queries.  The garbage collection options are as follows:"
+msgstr "La commande @command{guix gc} a trois modes d'opération : elle peut être utilisée pour glaner des fichiers inutilisés (par défaut), pour supprimer des fichiers spécifiques (l'option @option{--delete}), pour afficher des informations sur le ramasse-miettes ou pour des requêtes plus avancées.  Les options du ramasse-miettes sont :"
 
 #. type: item
-#: doc/guix.texi:3433
+#: doc/guix.texi:3980
 #, no-wrap
 msgid "--collect-garbage[=@var{min}]"
 msgstr "--collect-garbage[=@var{min}]"
 
 #. type: itemx
-#: doc/guix.texi:3434
+#: doc/guix.texi:3981
 #, no-wrap
 msgid "-C [@var{min}]"
 msgstr "-C [@var{min}]"
 
 #. type: table
-#: doc/guix.texi:3438
+#: doc/guix.texi:3985
 msgid "Collect garbage---i.e., unreachable @file{/gnu/store} files and sub-directories.  This is the default operation when no option is specified."
 msgstr "Ramasse les miettes — c.-à-d.@: les fichiers inaccessibles de @file{/gnu/store} et ses sous-répertoires.  C'est l'opération par défaut lorsqu'aucune option n'est spécifiée."
 
 #. type: table
-#: doc/guix.texi:3443
+#: doc/guix.texi:3990
 msgid "When @var{min} is given, stop once @var{min} bytes have been collected.  @var{min} may be a number of bytes, or it may include a unit as a suffix, such as @code{MiB} for mebibytes and @code{GB} for gigabytes (@pxref{Block size, size specifications,, coreutils, GNU Coreutils})."
 msgstr "Lorsque @var{min} est donné, s'arrêter une fois que @var{min} octets ont été collectés.  @var{min} peut être un nombre d'octets ou inclure un suffixe d'unité, comme @code{MiB} pour mébioctet et @code{GB} pour gigaoctet (@pxref{Block size, size specifications,, coreutils, GNU Coreutils})."
 
 #. type: table
-#: doc/guix.texi:3445
+#: doc/guix.texi:3992
 msgid "When @var{min} is omitted, collect all the garbage."
 msgstr "Lorsque @var{min} est omis, tout glaner."
 
 #. type: item
-#: doc/guix.texi:3446
+#: doc/guix.texi:3993
 #, no-wrap
 msgid "--free-space=@var{free}"
 msgstr "--free-space=@var{libre}"
 
 #. type: itemx
-#: doc/guix.texi:3447
+#: doc/guix.texi:3994
 #, no-wrap
 msgid "-F @var{free}"
 msgstr "-F @var{libre}"
 
 #. type: table
-#: doc/guix.texi:3451
+#: doc/guix.texi:3998
 msgid "Collect garbage until @var{free} space is available under @file{/gnu/store}, if possible; @var{free} denotes storage space, such as @code{500MiB}, as described above."
 msgstr "Glaner jusqu'à ce que @var{libre} espace soit disponible dans @file{/gnu/store} si possible ; @var{libre} est une quantité de stockage comme @code{500MiB} comme décrit ci-dessus."
 
 #. type: table
-#: doc/guix.texi:3454
+#: doc/guix.texi:4001
 msgid "When @var{free} or more is already available in @file{/gnu/store}, do nothing and exit immediately."
 msgstr "Lorsque @var{libre} ou plus est disponible dans @file{/gnu/store} ne rien faire et s'arrêter immédiatement."
 
 #. type: item
-#: doc/guix.texi:3455
+#: doc/guix.texi:4002
 #, no-wrap
 msgid "--delete-generations[=@var{duration}]"
 msgstr "--delete-generations[=@var{durée}]"
 
 #. type: itemx
-#: doc/guix.texi:3456
+#: doc/guix.texi:4003
 #, no-wrap
 msgid "-d [@var{duration}]"
 msgstr "-d [@var{durée}]"
 
 #. type: table
-#: doc/guix.texi:3460
+#: doc/guix.texi:4007
 msgid "Before starting the garbage collection process, delete all the generations older than @var{duration}, for all the user profiles; when run as root, this applies to all the profiles @emph{of all the users}."
 msgstr "Avant de commencer le glanage, supprimer toutes les générations plus vielles que @var{durée}, pour tous les profils utilisateurs ; lorsque cela est lancé en root, cela s'applique à tous les profils @emph{de tous les utilisateurs}."
 
 #. type: table
-#: doc/guix.texi:3464
+#: doc/guix.texi:4011
 msgid "For example, this command deletes all the generations of all your profiles that are older than 2 months (except generations that are current), and then proceeds to free space until at least 10 GiB are available:"
 msgstr "Par exemple, cette commande supprime toutes les générations de tous vos profils plus vieilles que 2 mois (sauf s'il s'agit de la génération actuelle) puis libère de l'espace jusqu'à atteindre au moins 10 Go d'espace libre :"
 
 #. type: example
-#: doc/guix.texi:3467
+#: doc/guix.texi:4014
 #, no-wrap
 msgid "guix gc -d 2m -F 10G\n"
 msgstr "guix gc -d 2m -F 10G\n"
 
 #. type: item
-#: doc/guix.texi:3469
+#: doc/guix.texi:4016
 #, no-wrap
 msgid "--delete"
 msgstr "--delete"
 
 #. type: itemx
-#: doc/guix.texi:3470
+#: doc/guix.texi:4017
 #, no-wrap
 msgid "-D"
 msgstr "-D"
 
 #. type: table
-#: doc/guix.texi:3474
+#: doc/guix.texi:4021
 msgid "Attempt to delete all the store files and directories specified as arguments.  This fails if some of the files are not in the store, or if they are still live."
 msgstr "Essayer de supprimer tous les fichiers et les répertoires du dépôt spécifiés en argument.  Cela échoue si certains des fichiers ne sont pas dans le dépôt ou s'ils sont toujours utilisés."
 
 #. type: item
-#: doc/guix.texi:3475
+#: doc/guix.texi:4022
 #, no-wrap
 msgid "--list-failures"
 msgstr "--list-failures"
 
 #. type: table
-#: doc/guix.texi:3477
+#: doc/guix.texi:4024
 msgid "List store items corresponding to cached build failures."
 msgstr "Lister les éléments du dépôt qui correspondent à des échecs de construction."
 
 #. type: table
-#: doc/guix.texi:3481
+#: doc/guix.texi:4028
 msgid "This prints nothing unless the daemon was started with @option{--cache-failures} (@pxref{Invoking guix-daemon, @option{--cache-failures}})."
 msgstr "Cela n'affiche rien à moins que le démon n'ait été démarré avec @option{--cache-failures} (@pxref{Invoking guix-daemon, @option{--cache-failures}})."
 
 #. type: item
-#: doc/guix.texi:3482
+#: doc/guix.texi:4029
 #, no-wrap
 msgid "--list-roots"
 msgstr "--list-roots"
 
 #. type: table
-#: doc/guix.texi:3485
+#: doc/guix.texi:4032
 msgid "List the GC roots owned by the user; when run as root, list @emph{all} the GC roots."
 msgstr "Lister les racines du GC appartenant à l'utilisateur ; lorsque la commande est lancée en root, lister @emph{toutes} les racines du GC."
 
 #. type: item
-#: doc/guix.texi:3486
+#: doc/guix.texi:4033
+#, no-wrap
+msgid "--list-busy"
+msgstr "--list-busy"
+
+#. type: table
+#: doc/guix.texi:4036
+msgid "List store items in use by currently running processes.  These store items are effectively considered GC roots: they cannot be deleted."
+msgstr "Liste des éléments de stockage utilisés par les processus en cours d'exécution.  Ces éléments de stockage sont effectivement considérés comme des racines GC : ils ne peuvent pas être supprimés."
+
+#. type: item
+#: doc/guix.texi:4037
 #, no-wrap
 msgid "--clear-failures"
 msgstr "--clear-failures"
 
 #. type: table
-#: doc/guix.texi:3488
+#: doc/guix.texi:4039
 msgid "Remove the specified store items from the failed-build cache."
 msgstr "Supprimer les éléments du dépôt spécifiés du cache des constructions échouées."
 
 #. type: table
-#: doc/guix.texi:3491
+#: doc/guix.texi:4042
 msgid "Again, this option only makes sense when the daemon is started with @option{--cache-failures}.  Otherwise, it does nothing."
 msgstr "De nouveau, cette option ne fait de sens que lorsque le démon est démarré avec @option{--cache-failures}.  Autrement elle ne fait rien."
 
 #. type: item
-#: doc/guix.texi:3492
+#: doc/guix.texi:4043
 #, no-wrap
 msgid "--list-dead"
 msgstr "--list-dead"
 
 #. type: table
-#: doc/guix.texi:3495
+#: doc/guix.texi:4046
 msgid "Show the list of dead files and directories still present in the store---i.e., files and directories no longer reachable from any root."
 msgstr "Montrer la liste des fichiers et des répertoires inutilisés encore présents dans le dépôt — c.-à-d.@: les fichiers et les répertoires qui ne sont plus atteignables par aucune racine."
 
 #. type: item
-#: doc/guix.texi:3496
+#: doc/guix.texi:4047
 #, no-wrap
 msgid "--list-live"
 msgstr "--list-live"
 
 #. type: table
-#: doc/guix.texi:3498
+#: doc/guix.texi:4049
 msgid "Show the list of live store files and directories."
 msgstr "Montrer la liste des fichiers et des répertoires du dépôt utilisés."
 
 #. type: Plain text
-#: doc/guix.texi:3502
+#: doc/guix.texi:4053
 msgid "In addition, the references among existing store files can be queried:"
 msgstr "En plus, les références entre les fichiers existants du dépôt peuvent être demandés :"
 
 #. type: item
-#: doc/guix.texi:3505
+#: doc/guix.texi:4056
 #, no-wrap
 msgid "--references"
 msgstr "--references"
 
 #. type: itemx
-#: doc/guix.texi:3506
+#: doc/guix.texi:4057
 #, no-wrap
 msgid "--referrers"
 msgstr "--referrers"
 
 #. type: cindex
-#: doc/guix.texi:3507 doc/guix.texi:9355
+#: doc/guix.texi:4058 doc/guix.texi:11867
 #, no-wrap
 msgid "package dependencies"
 msgstr "dépendances des paquets"
 
 #. type: table
-#: doc/guix.texi:3510
+#: doc/guix.texi:4061
 msgid "List the references (respectively, the referrers) of store files given as arguments."
 msgstr "Lister les références (respectivement les référents) des fichiers du dépôt en argument."
 
 #. type: item
-#: doc/guix.texi:3511
+#: doc/guix.texi:4062
 #, no-wrap
 msgid "--requisites"
 msgstr "--requisites"
 
 #. type: itemx
-#: doc/guix.texi:3512 doc/guix.texi:4810
+#: doc/guix.texi:4063 doc/guix.texi:5879
 #, no-wrap
 msgid "-R"
 msgstr "-R"
 
 #. type: item
-#: doc/guix.texi:3513 doc/guix.texi:9231 doc/guix.texi:9259 doc/guix.texi:9327
+#: doc/guix.texi:4064 doc/guix.texi:11723 doc/guix.texi:11751
+#: doc/guix.texi:11832
 #, no-wrap
 msgid "closure"
 msgstr "closure"
 
 #. type: table
-#: doc/guix.texi:3518
+#: doc/guix.texi:4069
 msgid "List the requisites of the store files passed as arguments.  Requisites include the store files themselves, their references, and the references of these, recursively.  In other words, the returned list is the @dfn{transitive closure} of the store files."
 msgstr "Lister les prérequis des fichiers du dépôt passés en argument.  Les prérequis sont le fichier du dépôt lui-même, leur références et les références de ces références, récursivement.  En d'autre termes, la liste retournée est la @dfn{closure transitive} des fichiers du dépôt."
 
 #. type: table
-#: doc/guix.texi:3522
+#: doc/guix.texi:4073
 msgid "@xref{Invoking guix size}, for a tool to profile the size of the closure of an element.  @xref{Invoking guix graph}, for a tool to visualize the graph of references."
 msgstr "@xref{Invoking guix size} pour un outil pour surveiller la taille de la closure d'un élément.  @xref{Invoking guix graph} pour un outil pour visualiser le graphe des références."
 
 #. type: item
-#: doc/guix.texi:3523
+#: doc/guix.texi:4074
 #, no-wrap
 msgid "--derivers"
 msgstr "--derivers"
 
 #. type: item
-#: doc/guix.texi:3524 doc/guix.texi:4971 doc/guix.texi:9456
+#: doc/guix.texi:4075 doc/guix.texi:6193 doc/guix.texi:11586
+#: doc/guix.texi:11976
 #, no-wrap
 msgid "derivation"
 msgstr "dérivation"
 
 #. type: table
-#: doc/guix.texi:3527
+#: doc/guix.texi:4078
 msgid "Return the derivation(s) leading to the given store items (@pxref{Derivations})."
 msgstr "Renvoie les dérivations menant aux éléments du dépôt donnés (@pxref{Derivations})."
 
 #. type: table
-#: doc/guix.texi:3529
+#: doc/guix.texi:4080
 msgid "For example, this command:"
 msgstr "Par exemple cette commande :"
 
 #. type: example
-#: doc/guix.texi:3532
+#: doc/guix.texi:4083
 #, no-wrap
 msgid "guix gc --derivers `guix package -I ^emacs$ | cut -f4`\n"
 msgstr "guix gc --derivers `guix package -I ^emacs$ | cut -f4`\n"
 
 #. type: table
-#: doc/guix.texi:3537
+#: doc/guix.texi:4088
 msgid "returns the @file{.drv} file(s) leading to the @code{emacs} package installed in your profile."
 msgstr "renvoie les fichiers @file{.drv} menant au paquet @code{emacs} installé dans votre profil."
 
 #. type: table
-#: doc/guix.texi:3541
+#: doc/guix.texi:4092
 msgid "Note that there may be zero matching @file{.drv} files, for instance because these files have been garbage-collected.  There can also be more than one matching @file{.drv} due to fixed-output derivations."
 msgstr "Remarquez qu'il peut n'y avoir aucun fichier @file{.drv} par exemple quand ces fichiers ont été glanés.  Il peut aussi y avoir plus d'un fichier @file{.drv} correspondant à cause de dérivations à sortie fixées."
 
 #. type: Plain text
-#: doc/guix.texi:3545
+#: doc/guix.texi:4096
 msgid "Lastly, the following options allow you to check the integrity of the store and to control disk usage."
 msgstr "Enfin, les options suivantes vous permettent de vérifier l'intégrité du dépôt et de contrôler l'utilisation du disque."
 
 #. type: item
-#: doc/guix.texi:3548
+#: doc/guix.texi:4099
 #, no-wrap
 msgid "--verify[=@var{options}]"
 msgstr "--verify[=@var{options}]"
 
 #. type: cindex
-#: doc/guix.texi:3549
+#: doc/guix.texi:4100
 #, no-wrap
 msgid "integrity, of the store"
 msgstr "intégrité, du dépôt"
 
 #. type: cindex
-#: doc/guix.texi:3550
+#: doc/guix.texi:4101
 #, no-wrap
 msgid "integrity checking"
 msgstr "vérification d'intégrité"
 
 #. type: table
-#: doc/guix.texi:3552
+#: doc/guix.texi:4103
 msgid "Verify the integrity of the store."
 msgstr "Vérifier l'intégrité du dépôt."
 
 #. type: table
-#: doc/guix.texi:3555
+#: doc/guix.texi:4106
 msgid "By default, make sure that all the store items marked as valid in the database of the daemon actually exist in @file{/gnu/store}."
 msgstr "Par défaut, s'assurer que tous les éléments du dépôt marqués comme valides dans la base de données du démon existent bien dans @file{/gnu/store}."
 
 #. type: table
-#: doc/guix.texi:3558
+#: doc/guix.texi:4109
 msgid "When provided, @var{options} must be a comma-separated list containing one or more of @code{contents} and @code{repair}."
 msgstr "Lorsqu'elle est fournie, l'@var{option} doit être une liste séparée par des virgule de l'un ou plus parmi @code{contents} et @code{repair}."
 
 #. type: table
-#: doc/guix.texi:3564
+#: doc/guix.texi:4115
 msgid "When passing @option{--verify=contents}, the daemon computes the content hash of each store item and compares it against its hash in the database.  Hash mismatches are reported as data corruptions.  Because it traverses @emph{all the files in the store}, this command can take a long time, especially on systems with a slow disk drive."
 msgstr "Lorsque vous passez @option{--verify=contents}, le démon calcul le hash du contenu de chaque élément du dépôt et le compare au hash de sa base de données.  Les différences de hash sont rapportées comme des corruptions de données.  Comme elle traverse @emph{tous les fichiers du dépôt}, cette commande peut prendre très longtemps pour terminer, surtout sur un système avec un disque lent."
 
 #. type: cindex
-#: doc/guix.texi:3565
+#: doc/guix.texi:4116
 #, no-wrap
 msgid "repairing the store"
 msgstr "réparer le dépôt"
 
 #. type: cindex
-#: doc/guix.texi:3566 doc/guix.texi:8125
+#: doc/guix.texi:4117 doc/guix.texi:10502
 #, no-wrap
 msgid "corruption, recovering from"
 msgstr "corruption, récupérer de"
 
 #. type: table
-#: doc/guix.texi:3574
+#: doc/guix.texi:4125
 msgid "Using @option{--verify=repair} or @option{--verify=contents,repair} causes the daemon to try to repair corrupt store items by fetching substitutes for them (@pxref{Substitutes}).  Because repairing is not atomic, and thus potentially dangerous, it is available only to the system administrator.  A lightweight alternative, when you know exactly which items in the store are corrupt, is @command{guix build --repair} (@pxref{Invoking guix build})."
 msgstr "Utiliser @option{--verify=repair} ou @option{--verify=contents,repair} fait que le démon essaie de réparer les objets du dépôt corrompus en récupérant leurs substituts (@pxref{Substituts}).  Comme la réparation n'est pas atomique et donc potentiellement dangereuse, elle n'est disponible que pour l'administrateur système.  Une alternative plus légère lorsque vous connaissez exactement quelle entrée est corrompue consiste à lancer @command{guix build --repair} (@pxref{Invoking guix build})."
 
 #. type: item
-#: doc/guix.texi:3575
+#: doc/guix.texi:4126
 #, no-wrap
 msgid "--optimize"
 msgstr "--optimize"
 
 #. type: table
-#: doc/guix.texi:3579
+#: doc/guix.texi:4130
 msgid "Optimize the store by hard-linking identical files---this is @dfn{deduplication}."
 msgstr "Optimiser le dépôt en liant en dur les fichiers identiques — c'est la @dfn{déduplication}."
 
 #. type: table
-#: doc/guix.texi:3585
-msgid "The daemon performs deduplication after each successful build or archive import, unless it was started with @code{--disable-deduplication} (@pxref{Invoking guix-daemon, @code{--disable-deduplication}}).  Thus, this option is primarily useful when the daemon was running with @code{--disable-deduplication}."
-msgstr "Le démon effectue une déduplication à chaque construction réussie ou import d'archive à moins qu'il n'ait été démarré avec @code{--disable-deduplication} (@pxref{Invoking guix-daemon, @code{--disable-deduplication}}).  Ainsi, cette option est surtout utile lorsque le démon tourne avec @code{--disable-deduplication}."
+#: doc/guix.texi:4136
+msgid "The daemon performs deduplication after each successful build or archive import, unless it was started with @option{--disable-deduplication} (@pxref{Invoking guix-daemon, @option{--disable-deduplication}}).  Thus, this option is primarily useful when the daemon was running with @option{--disable-deduplication}."
+msgstr "Le démon effectue une déduplication après chaque import d'archive ou construction réussie, à moins qu'il n'ait été lancé avec @option{--disable-deduplication} (@pxref{Invoking guix-daemon, @option{--disable-deduplication}}).  Ainsi, cette option est surtout utile lorsque le démon tourne avec @option{--disable-deduplication}."
 
 #. type: section
-#: doc/guix.texi:3589
+#: doc/guix.texi:4140
 #, no-wrap
 msgid "Invoking @command{guix pull}"
 msgstr "Invoquer @command{guix pull}"
 
 #. type: cindex
-#: doc/guix.texi:3591
+#: doc/guix.texi:4142
 #, no-wrap
 msgid "upgrading Guix"
 msgstr "mettre à niveau Guix"
 
 #. type: cindex
-#: doc/guix.texi:3592
+#: doc/guix.texi:4143
 #, no-wrap
 msgid "updating Guix"
 msgstr "mettre à jour Guix"
 
 #. type: command{#1}
-#: doc/guix.texi:3593
+#: doc/guix.texi:4144
 #, no-wrap
 msgid "guix pull"
 msgstr "guix pull"
 
 #. type: cindex
-#: doc/guix.texi:3594
+#: doc/guix.texi:4145
 #, no-wrap
 msgid "pull"
 msgstr "pull"
 
+#. type: cindex
+#: doc/guix.texi:4146
+#, no-wrap
+msgid "security, @command{guix pull}"
+msgstr "sécurité, @command{guix pull}"
+
+#. type: cindex
+#: doc/guix.texi:4147
+#, no-wrap
+msgid "authenticity, of code obtained with @command{guix pull}"
+msgstr "authenticité de code obtenue avec @command{guix pull}"
+
 #. type: Plain text
-#: doc/guix.texi:3602
-msgid "Packages are installed or upgraded to the latest version available in the distribution currently available on your local machine.  To update that distribution, along with the Guix tools, you must run @command{guix pull}: the command downloads the latest Guix source code and package descriptions, and deploys it.  Source code is downloaded from a @uref{https://git-scm.com, Git} repository, by default the official GNU@tie{}Guix repository, though this can be customized."
-msgstr "Les paquets sont installés ou mis à jour vers la dernière version disponible dans la distribution actuellement disponible sur votre machine locale.  Pour mettre à jour cette distribution, en même temps que les outils Guix, vous devez lancer @command{guix pull} ; la commande télécharge le dernier code source de Guix et des descriptions de paquets et le déploie.  Le code source est téléchargé depuis un dépôt @uref{https://git-scm.com, Git}, par défaut le dépôt officiel de GNU@tie{}Guix, bien que cela puisse être personnalisé."
+#: doc/guix.texi:4157
+msgid "Packages are installed or upgraded to the latest version available in the distribution currently available on your local machine.  To update that distribution, along with the Guix tools, you must run @command{guix pull}: the command downloads the latest Guix source code and package descriptions, and deploys it.  Source code is downloaded from a @uref{https://git-scm.com, Git} repository, by default the official GNU@tie{}Guix repository, though this can be customized.  @command{guix pull} ensures that the code it downloads is @emph{authentic} by verifying that commits are signed by Guix developers."
+msgstr "Les paquets sont installés ou mis à jour vers la dernière version disponible dans la distribution active sur votre machine locale.  Pour mettre à jour cette distribution, en même temps que les outils Guix, vous devez lancer @command{guix pull} ; la commande télécharge le dernier code source de Guix ainsi que des descriptions de paquets, et le déploie.  Le code source est téléchargé depuis un dépôt @uref{https://git-scm.com, Git}, par défaut le dépôt officiel de GNU@tie{}Guix, bien que cela puisse être personnalisé. @command{guix pull} garantit que le code téléchargé est @emph{authentique} en vérifiant que les commits sont signés par les développeur·euse·s de Guix."
+
+#. type: Plain text
+#: doc/guix.texi:4160
+msgid "Specifically, @command{guix pull} downloads code from the @dfn{channels} (@pxref{Channels}) specified by one of the followings, in this order:"
+msgstr "Spécifiquement, @command{guix pull} télécharge le code depuis les @dfn{canaux} (voir @pxref{Channels}) spécifiés par un des points suivants, dans cet ordre :"
+
+#. type: enumerate
+#: doc/guix.texi:4164
+msgid "the @option{--channels} option;"
+msgstr "l'option @option{--channels};"
+
+#. type: enumerate
+#: doc/guix.texi:4166
+msgid "the user's @file{~/.config/guix/channels.scm} file;"
+msgstr "le fichier utilisateur·rice @file{~/.config/guix/channels.scm};"
+
+#. type: enumerate
+#: doc/guix.texi:4168
+msgid "the system-wide @file{/etc/guix/channels.scm} file;"
+msgstr "le fichier de l'ensemble du système @file{/etc/guix/channels.scm};"
+
+#. type: enumerate
+#: doc/guix.texi:4171
+msgid "the built-in default channels specified in the @code{%default-channels} variable."
+msgstr "les canaux intégrés par défaut spécifiés dans la variable @code{%default-channels}."
 
 #. type: Plain text
-#: doc/guix.texi:3608
+#: doc/guix.texi:4178
 msgid "On completion, @command{guix package} will use packages and package versions from this just-retrieved copy of Guix.  Not only that, but all the Guix commands and Scheme modules will also be taken from that latest version.  New @command{guix} sub-commands added by the update also become available."
 msgstr "À la fin, @command{guix package} utilisera les paquets et les versions des paquets de la copie de Guix tout juste récupérée.  Non seulement ça, mais toutes les commandes Guix et les modules Scheme seront aussi récupérés depuis la dernière version.  Les nouvelles sous-commandes de @command{guix} ajoutés par la mise à jour sont aussi maintenant disponibles."
 
 #. type: Plain text
-#: doc/guix.texi:3614
-msgid "Any user can update their Guix copy using @command{guix pull}, and the effect is limited to the user who run @command{guix pull}.  For instance, when user @code{root} runs @command{guix pull}, this has no effect on the version of Guix that user @code{alice} sees, and vice versa."
+#: doc/guix.texi:4184
+msgid "Any user can update their Guix copy using @command{guix pull}, and the effect is limited to the user who ran @command{guix pull}.  For instance, when user @code{root} runs @command{guix pull}, this has no effect on the version of Guix that user @code{alice} sees, and vice versa."
 msgstr "Chaque utilisateur peut mettre à jour sa copie de Guix avec @command{guix pull} et l'effet est limité à l'utilisateur qui a lancé @command{guix pull}.  Par exemple, lorsque l'utilisateur @code{root} lance @command{guix pull}, cela n'a pas d'effet sur la version de Guix que voit @code{alice} et vice-versa."
 
 #. type: Plain text
-#: doc/guix.texi:3620
+#: doc/guix.texi:4190
 msgid "The result of running @command{guix pull} is a @dfn{profile} available under @file{~/.config/guix/current} containing the latest Guix.  Thus, make sure to add it to the beginning of your search path so that you use the latest version, and similarly for the Info manual (@pxref{Documentation}):"
 msgstr "Le résultat après avoir lancé @command{guix pull} est un @dfn{profil} disponible sous @file{~/.config/guix/current} contenant la dernière version de Guix.  Ainsi, assurez-vous de l'ajouter au début de votre chemin de recherche pour que vous utilisiez la dernière version.  Le même conseil s'applique au manuel Info (@pxref{Documentation}) :"
 
 #. type: example
-#: doc/guix.texi:3624
+#: doc/guix.texi:4194
 #, no-wrap
 msgid ""
 "export PATH=\"$HOME/.config/guix/current/bin:$PATH\"\n"
@@ -8043,12 +9714,12 @@ msgstr ""
 "export INFOPATH=\"$HOME/.config/guix/current/share/info:$INFOPATH\"\n"
 
 #. type: Plain text
-#: doc/guix.texi:3628
-msgid "The @code{--list-generations} or @code{-l} option lists past generations produced by @command{guix pull}, along with details about their provenance:"
-msgstr "L'option @code{--list-generations} ou @code{-l} liste les anciennes générations produites par @command{guix pull}, avec des détails sur leur origine :"
+#: doc/guix.texi:4198
+msgid "The @option{--list-generations} or @option{-l} option lists past generations produced by @command{guix pull}, along with details about their provenance:"
+msgstr "L'option @option{--list-generations} ou @option{-l} liste les anciennes générations produites par @command{guix pull}, avec des détails sur leur origine :"
 
 #. type: example
-#: doc/guix.texi:3636
+#: doc/guix.texi:4206
 #, no-wrap
 msgid ""
 "$ guix pull -l\n"
@@ -8068,7 +9739,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:3646
+#: doc/guix.texi:4216
 #, no-wrap
 msgid ""
 "Generation 2\tJun 11 2018 11:02:49\n"
@@ -8094,7 +9765,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:3654
+#: doc/guix.texi:4224
 #, no-wrap
 msgid ""
 "Generation 3\tJun 13 2018 23:31:07\t(current)\n"
@@ -8114,17 +9785,36 @@ msgstr ""
 "  69 paquets mis à jour : borg@@1.1.6, cheese@@3.28.0, @dots{}\n"
 
 #. type: Plain text
-#: doc/guix.texi:3658
+#: doc/guix.texi:4228
 msgid "@xref{Invoking guix describe, @command{guix describe}}, for other ways to describe the current status of Guix."
 msgstr "@xref{Invoking guix describe, @command{guix describe}}, pour d'autres manières de décrire le statut actuel de Guix."
 
 #. type: Plain text
-#: doc/guix.texi:3663
-msgid "This @code{~/.config/guix/current} profile works like any other profile created by @command{guix package} (@pxref{Invoking guix package}).  That is, you can list generations, roll back to the previous generation---i.e., the previous Guix---and so on:"
-msgstr "Ce profil @code{~/.config/guix/current} fonctionne comme les autres profils créés par @command{guix package} (@pxref{Invoking guix package}).  C'est-à-dire que vous pouvez lister les générations, revenir en arrière à une génération précédente — c.-à-d.@: la version de Guix précédente — etc.@: :"
+#: doc/guix.texi:4233
+msgid "This @code{~/.config/guix/current} profile works exactly like the profiles created by @command{guix package} (@pxref{Invoking guix package}). That is, you can list generations, roll back to the previous generation---i.e., the previous Guix---and so on:"
+msgstr "Ce profil @code{~/.config/guix/current} fonctionne comme les profils créés par @command{guix package} (@pxref{Invoking guix package}).  C'est-à-dire que vous pouvez lister les générations, revenir en arrière à une génération précédente — c.-à-d.@: la version de Guix précédente — etc.@: :"
+
+#. type: example
+#: doc/guix.texi:4239
+#, no-wrap
+msgid ""
+"$ guix pull --roll-back\n"
+"switched from generation 3 to 2\n"
+"$ guix pull --delete-generations=1\n"
+"deleting /var/guix/profiles/per-user/charlie/current-guix-1-link\n"
+msgstr ""
+"$ guix pull --roll-back\n"
+"passé de la génération 3 à 2\n"
+"$ guix pull --delete-generations=1\n"
+"supperssion de /var/guix/profiles/per-user/charlie/current-guix-1-link\n"
+
+#. type: Plain text
+#: doc/guix.texi:4243
+msgid "You can also use @command{guix package} (@pxref{Invoking guix package})  to manage the profile by naming it explicitly:"
+msgstr "Vous pouvez aussi utiliser @command{guix package} (@pxref{Invoquer guix package}) pour contrôler le profil en le nommant explicitement :"
 
 #. type: example
-#: doc/guix.texi:3669
+#: doc/guix.texi:4248
 #, no-wrap
 msgid ""
 "$ guix package -p ~/.config/guix/current --roll-back\n"
@@ -8138,521 +9828,344 @@ msgstr ""
 "suppression de /var/guix/profiles/per-user/charlie/current-guix-1-link\n"
 
 #. type: Plain text
-#: doc/guix.texi:3673
+#: doc/guix.texi:4252
 msgid "The @command{guix pull} command is usually invoked with no arguments, but it supports the following options:"
 msgstr "La commande @command{guix pull} est typiquement invoquée sans arguments mais elle prend en charge les options suivantes :"
 
 #. type: item
-#: doc/guix.texi:3675
+#: doc/guix.texi:4254 doc/guix.texi:4412
 #, no-wrap
 msgid "--url=@var{url}"
 msgstr "--url=@var{url}"
 
 #. type: itemx
-#: doc/guix.texi:3676
+#: doc/guix.texi:4255 doc/guix.texi:4413
 #, no-wrap
 msgid "--commit=@var{commit}"
 msgstr "--commit=@var{commit}"
 
 #. type: itemx
-#: doc/guix.texi:3677
+#: doc/guix.texi:4256 doc/guix.texi:4414
 #, no-wrap
 msgid "--branch=@var{branch}"
 msgstr "--branch=@var{branche}"
 
 #. type: table
-#: doc/guix.texi:3681
+#: doc/guix.texi:4260
 msgid "Download code for the @code{guix} channel from the specified @var{url}, at the given @var{commit} (a valid Git commit ID represented as a hexadecimal string), or @var{branch}."
 msgstr "Télécharger le code pour le canal @code{guix} depuis l'@var{url} spécifié, au @var{commit} donné (un commit Git valide représenté par une chaîne hexadécimale) ou à la branche @var{branch}."
 
 #. type: cindex
-#: doc/guix.texi:3682 doc/guix.texi:3747
+#: doc/guix.texi:4261 doc/guix.texi:4858
 #, no-wrap
 msgid "@file{channels.scm}, configuration file"
 msgstr "@file{channels.scm}, fichier de configuration"
 
 #. type: cindex
-#: doc/guix.texi:3683 doc/guix.texi:3748
+#: doc/guix.texi:4262 doc/guix.texi:4859
 #, no-wrap
 msgid "configuration file for channels"
 msgstr "fichier de configuration pour les canaux"
 
 #. type: table
-#: doc/guix.texi:3687
+#: doc/guix.texi:4266
 msgid "These options are provided for convenience, but you can also specify your configuration in the @file{~/.config/guix/channels.scm} file or using the @option{--channels} option (see below)."
 msgstr "Ces options sont fournies pour votre confort, mais vous pouvez aussi spécifier votre configuration dans le fichier @file{~/.config/guix/channels.scm} ou en utilisant l'option @option{--channels} (voir plus bas)."
 
 #. type: item
-#: doc/guix.texi:3688
+#: doc/guix.texi:4267 doc/guix.texi:4419
 #, no-wrap
 msgid "--channels=@var{file}"
 msgstr "--channels=@var{file}"
 
 #. type: itemx
-#: doc/guix.texi:3689
+#: doc/guix.texi:4268 doc/guix.texi:4420
 #, no-wrap
 msgid "-C @var{file}"
 msgstr "-C @var{file}"
 
 #. type: table
-#: doc/guix.texi:3694
-msgid "Read the list of channels from @var{file} instead of @file{~/.config/guix/channels.scm}.  @var{file} must contain Scheme code that evaluates to a list of channel objects.  @xref{Channels}, for more information."
-msgstr "Lit la liste des canaux dans @var{file} plutôt que dans @file{~/.config/guix/channels.scm}.  @var{file} doit contenir un code Scheme qui s'évalue en une liste d'objets de canaux.  @xref{Channels} pour plus d'informations."
+#: doc/guix.texi:4274
+msgid "Read the list of channels from @var{file} instead of @file{~/.config/guix/channels.scm} or @file{/etc/guix/channels.scm}.  @var{file} must contain Scheme code that evaluates to a list of channel objects.  @xref{Channels}, for more information."
+msgstr "Lit la liste des canaux dans @var{file} plutôt que dans @file{~/.config/guix/channels.scm} ou @file{/etc/guix/channels.scm}.  @var{file} doit contenir un code Scheme qui s'évalue en une liste d'objets de canaux.  @xref{Channels} pour plus d'informations."
+
+#. type: cindex
+#: doc/guix.texi:4275
+#, no-wrap
+msgid "channel news"
+msgstr "nouveautés des canaux"
 
 #. type: item
-#: doc/guix.texi:3695
+#: doc/guix.texi:4276
 #, no-wrap
 msgid "--news"
 msgstr "--news"
 
 #. type: itemx
-#: doc/guix.texi:3696 doc/guix.texi:4608
+#: doc/guix.texi:4277 doc/guix.texi:5654 doc/guix.texi:31059
 #, no-wrap
 msgid "-N"
 msgstr "-N"
 
 #. type: table
-#: doc/guix.texi:3698
-msgid "Display the list of packages added or upgraded since the previous generation."
-msgstr "Afficher la liste des paquets ajoutés ou mis à jour depuis la génération précédente."
+#: doc/guix.texi:4281
+msgid "Display the list of packages added or upgraded since the previous generation, as well as, occasionally, news written by channel authors for their users (@pxref{Channels, Writing Channel News})."
+msgstr "Afficher la liste des paquets ajoutés ou mis à jour depuis la génération précédente, ainsi que, occasionnellement, les nouvelles écrites par les auteur·e·s des chaînes pour leurs utilisateur·rice·s (@pxref{Channels, Writing Channel News})."
 
 #. type: table
-#: doc/guix.texi:3702
-msgid "This is the same information as displayed upon @command{guix pull} completion, but without ellipses; it is also similar to the output of @command{guix pull -l} for the last generation (see below)."
-msgstr "Il s'agit de la même information que celle présentée à la fin de @command{guix pull}, mais sans les points de suspension, et d'une information similaire à celle présentée par @command{guix pull -l} pour la dernière génération (voir plus bas)."
+#: doc/guix.texi:4285
+msgid "The package information is the same as displayed upon @command{guix pull} completion, but without ellipses; it is also similar to the output of @command{guix pull -l} for the last generation (see below)."
+msgstr "Les informations sur les paquets sont les mêmes que celles présentées à la fin de @command{guix pull}, mais sans les points de suspension, et sont aussi similaires à celles présentées par @command{guix pull -l} pour la dernière génération (voir plus bas)."
 
 #. type: table
-#: doc/guix.texi:3709
+#: doc/guix.texi:4292
 msgid "List all the generations of @file{~/.config/guix/current} or, if @var{pattern} is provided, the subset of generations that match @var{pattern}.  The syntax of @var{pattern} is the same as with @code{guix package --list-generations} (@pxref{Invoking guix package})."
 msgstr "Liste toutes les générations de @file{~/.config/guix/current} ou, si @var{motif} est fournit, le sous-ensemble des générations qui correspondent à @var{motif}.  La syntaxe de @var{motif} est la même qu'avec @code{guix package --list-generations} (@pxref{Invoking guix package})."
 
 #. type: table
-#: doc/guix.texi:3712
+#: doc/guix.texi:4299
+msgid "Roll back to the previous @dfn{generation} of @file{~/.config/guix/current}---i.e., undo the last transaction."
+msgstr "Revenir à la @dfn{génération} précédente de @file{~/.config/guix/current} c.-à-d.@: défaire la dernière transaction."
+
+#. type: table
+#: doc/guix.texi:4323
+msgid "If the current generation matches, it is @emph{not} deleted."
+msgstr "Si la génération actuelle correspond, elle n'est @emph{pas} supprimée."
+
+#. type: table
+#: doc/guix.texi:4329
 msgid "@xref{Invoking guix describe}, for a way to display information about the current generation only."
 msgstr "@xref{Invoking guix describe}, pour une manière d'afficher des informations sur la génération actuelle uniquement."
 
 #. type: table
-#: doc/guix.texi:3716
+#: doc/guix.texi:4333
 msgid "Use @var{profile} instead of @file{~/.config/guix/current}."
 msgstr "Utiliser le @var{profil} à la place de @file{~/.config/guix/current}."
 
 #. type: item
-#: doc/guix.texi:3717 doc/guix.texi:7701
+#: doc/guix.texi:4334 doc/guix.texi:9950
 #, no-wrap
 msgid "--dry-run"
 msgstr "--dry-run"
 
 #. type: itemx
-#: doc/guix.texi:3718 doc/guix.texi:7702
+#: doc/guix.texi:4335 doc/guix.texi:9951 doc/guix.texi:11705
 #, no-wrap
 msgid "-n"
 msgstr "-n"
 
 #. type: table
-#: doc/guix.texi:3721
+#: doc/guix.texi:4338
 msgid "Show which channel commit(s) would be used and what would be built or substituted but do not actually do it."
 msgstr "Montrer quels commits des canaux seraient utilisés et ce qui serait construit ou substitué mais ne pas le faire vraiment."
 
-#. type: itemx
-#: doc/guix.texi:3723 doc/guix.texi:4591 doc/guix.texi:4884 doc/guix.texi:8067
-#: doc/guix.texi:9345 doc/guix.texi:9544 doc/guix.texi:10094
-#: doc/guix.texi:24556
-#, no-wrap
-msgid "-s @var{system}"
-msgstr "-s @var{système}"
-
-#. type: table
-#: doc/guix.texi:3726 doc/guix.texi:4887
-msgid "Attempt to build for @var{system}---e.g., @code{i686-linux}---instead of the system type of the build host."
-msgstr "Tenter de construire pour le @var{système} — p.@: ex.@: @code{i686-linux} — plutôt que pour le type de système de l'hôte de construction."
-
 #. type: item
-#: doc/guix.texi:3727 doc/guix.texi:9902
+#: doc/guix.texi:4339 doc/guix.texi:31078
 #, no-wrap
-msgid "--verbose"
-msgstr "--verbose"
-
-#. type: table
-#: doc/guix.texi:3729
-msgid "Produce verbose output, writing build logs to the standard error output."
-msgstr "Produire une sortie verbeuse, en écrivant les journaux de construction sur la sortie d'erreur standard."
+msgid "--allow-downgrades"
+msgstr "--allow-downgrades"
 
 #. type: table
-#: doc/guix.texi:3733
-msgid "Use the bootstrap Guile to build the latest Guix.  This option is only useful to Guix developers."
-msgstr "Utiliser le programme d'amorçage Guile pour construire la dernière version de Guix.  Cette option n'est utile qu'aux personnes qui développent Guix."
-
-#. type: Plain text
-#: doc/guix.texi:3739
-msgid "The @dfn{channel} mechanism allows you to instruct @command{guix pull} which repository and branch to pull from, as well as @emph{additional} repositories containing package modules that should be deployed.  @xref{Channels}, for more information."
-msgstr "Le mécanisme de @dfn{canaux} vous permet de dire à @command{guix pull} quels répertoires et branches récupérer, ainsi que les dépôts @emph{supplémentaires} contenant des modules de paquets qui devraient être déployés.  @xref{Channels} pour plus d'information."
-
-#. type: Plain text
-#: doc/guix.texi:3742
-msgid "In addition, @command{guix pull} supports all the common build options (@pxref{Common Build Options})."
-msgstr "En plus, @command{guix pull} supporte toutes les options de construction communes (@pxref{Common Build Options})."
-
-#. type: item
-#: doc/guix.texi:3746 doc/guix.texi:4149
-#, no-wrap
-msgid "channels"
-msgstr "canaux"
+#: doc/guix.texi:4342
+msgid "Allow pulling older or unrelated revisions of channels than those currently in use."
+msgstr "Permet d'extraire des révisions de canaux plus anciennes ou sans rapport avec celles qui sont actuellement utilisées."
 
 #. type: cindex
-#: doc/guix.texi:3749
+#: doc/guix.texi:4343
 #, no-wrap
-msgid "@command{guix pull}, configuration file"
-msgstr "@command{guix pull}, fichier de configuration"
-
-#. type: cindex
-#: doc/guix.texi:3750
-#, no-wrap
-msgid "configuration of @command{guix pull}"
-msgstr "configuration de @command{guix pull}"
-
-#. type: Plain text
-#: doc/guix.texi:3759
-msgid "Guix and its package collection are updated by running @command{guix pull} (@pxref{Invoking guix pull}).  By default @command{guix pull} downloads and deploys Guix itself from the official GNU@tie{}Guix repository.  This can be customized by defining @dfn{channels} in the @file{~/.config/guix/channels.scm} file.  A channel specifies a URL and branch of a Git repository to be deployed, and @command{guix pull} can be instructed to pull from one or more channels.  In other words, channels can be used to @emph{customize} and to @emph{extend} Guix, as we will see below."
-msgstr "Guix et sa collection de paquets sont mis à jour en lançant @command{guix pull} (@pxref{Invoking guix pull}).  Par défaut @command{guix pull} télécharge et déploie Guix lui-même depuis le dépôt officiel de GNU@tie{}Guix.  Cela peut être personnalisé en définissant des @dfn{canaux} dans le fichier @file{~/.config/guix/channels.scm}.  Un canal spécifie l'URL et la branche d'un répertoire Git à déployer et on peut demander à @command{guix pull} de récupérer un ou plusieurs canaux.  En d'autres termes, les canaux peuvent être utilisés pour personnaliser et pour @emph{étendre} Guix, comme on le verra plus bas."
-
-#. type: subsection
-#: doc/guix.texi:3760
-#, no-wrap
-msgid "Using a Custom Guix Channel"
-msgstr "Utiliser un canal Guix personnalisé"
+msgid "downgrade attacks, protection against"
+msgstr "protection contre les attaques dites de \"downgrade\""
 
-#. type: Plain text
-#: doc/guix.texi:3767
-msgid "The channel called @code{guix} specifies where Guix itself---its command-line tools as well as its package collection---should be downloaded.  For instance, suppose you want to update from your own copy of the Guix repository at @code{example.org}, and specifically the @code{super-hacks} branch, you can write in @code{~/.config/guix/channels.scm} this specification:"
-msgstr "Le canal nommé @code{guix} spécifie où Guix lui-même — ses outils en ligne de commande ainsi que sa collection de paquets — sera téléchargé.  Par exemple, supposons que vous voulez effectuer les mises à jour depuis votre propre copie du dépôt Guix sur @code{example.org}, et plus particulièrement depuis la branche @code{super-hacks}.  Vous pouvez écrire cette spécification dans @code{~/.config/guix/channels.scm} :"
-
-#. type: lisp
-#: doc/guix.texi:3774
-#, no-wrap
-msgid ""
-";; Tell 'guix pull' to use my own repo.\n"
-"(list (channel\n"
-"        (name 'guix)\n"
-"        (url \"https://example.org/my-guix.git\")\n"
-"        (branch \"super-hacks\")))\n"
-msgstr ""
-";; Dit à « guix pull » d'utiliser mon propre dépôt.\n"
-"(list (channel\n"
-"        (name 'guix)\n"
-"        (url \"https://example.org/my-guix.git\")\n"
-"        (branch \"super-hacks\")))\n"
-
-#. type: Plain text
-#: doc/guix.texi:3779
-msgid "From there on, @command{guix pull} will fetch code from the @code{super-hacks} branch of the repository at @code{example.org}."
-msgstr "Maintenant, @command{guix pull} récupérera le code depuis la branche @code{super-hacks} du dépôt sur @code{example.org}."
+#. type: table
+#: doc/guix.texi:4348
+msgid "By default, @command{guix pull} protects against so-called ``downgrade attacks'' whereby the Git repository of a channel would be reset to an earlier or unrelated revision of itself, potentially leading you to install older, known-vulnerable versions of software packages."
+msgstr "Par défaut, @command{guix pull} protège contre les attaques dites de \"downgrade\", par lesquelles le dépôt Git d'un canal serait réinitialisé à une révision antérieure ou sans rapport avec lui-même, ce qui pourrait vous conduire à installer des versions plus anciennes de paquets logiciels, ou connues pour être vulnérables."
 
-#. type: subsection
-#: doc/guix.texi:3780
-#, no-wrap
-msgid "Specifying Additional Channels"
-msgstr "Spécifier des canaux supplémentaires"
+#. type: quotation
+#: doc/guix.texi:4352 doc/guix.texi:31092
+msgid "Make sure you understand its security implications before using @option{--allow-downgrades}."
+msgstr "Assurez-vous de comprendre les implications de sa sécurité avant d'utiliser @option{--allow-downgrades}."
 
-#. type: cindex
-#: doc/guix.texi:3782
+#. type: item
+#: doc/guix.texi:4354
 #, no-wrap
-msgid "extending the package collection (channels)"
-msgstr "étendre la collection de paquets (canaux)"
+msgid "--disable-authentication"
+msgstr "--disable-authentication"
 
-#. type: cindex
-#: doc/guix.texi:3783
-#, no-wrap
-msgid "personal packages (channels)"
-msgstr "paquets personnels (canaux)"
+#. type: table
+#: doc/guix.texi:4356
+msgid "Allow pulling channel code without authenticating it."
+msgstr "Permet de \"tirer\" le code du canal sans l'authentifier."
 
 #. type: cindex
-#: doc/guix.texi:3784
+#: doc/guix.texi:4357 doc/guix.texi:5003
 #, no-wrap
-msgid "channels, for personal packages"
-msgstr "canaux, pour des paquets personnels"
-
-#. type: Plain text
-#: doc/guix.texi:3792
-msgid "You can also specify @emph{additional channels} to pull from.  Let's say you have a bunch of custom package variants or personal packages that you think would make little sense to contribute to the Guix project, but would like to have these packages transparently available to you at the command line.  You would first write modules containing those package definitions (@pxref{Package Modules}), maintain them in a Git repository, and then you and anyone else can use it as an additional channel to get packages from.  Neat, no?"
-msgstr "Vous pouvez aussi spécifier des @emph{canaux supplémentaires} à récupérer.  Disons que vous avez un ensemble de paquets personnels ou de variantes personnalisées qu'il ne vaudrait pas le coup de contribuer au projet Guix, mais que vous voudriez pouvoir utiliser de manière transparente sur la ligne de commande.  Vous écririez d'abord des modules contenant ces définitions de paquets (@pxref{Package Modules}), en les maintenant dans un dépôt Git, puis vous ou n'importe qui d'autre pourrait l'utiliser comme un canal supplémentaire où trouver ces paquets.  Sympa, non ?"
-
-#. type: quotation
-#: doc/guix.texi:3796
-#, no-wrap
-msgid "Warning"
-msgstr "Attention"
-
-#. type: quotation
-#: doc/guix.texi:3800
-msgid "Before you, dear user, shout---``woow this is @emph{soooo coool}!''---and publish your personal channel to the world, we would like to share a few words of caution:"
-msgstr "Avant que vous, cher utilisateur, ne vous exclamiez « Oh mais c'est @emph{super génial} ! » et que vous ne publiez vos canaux personnels publiquement, nous voudrions vous donner quelques avertissements :"
-
-#. type: itemize
-#: doc/guix.texi:3808
-msgid "Before publishing a channel, please consider contributing your package definitions to Guix proper (@pxref{Contributing}).  Guix as a project is open to free software of all sorts, and packages in Guix proper are readily available to all Guix users and benefit from the project's quality assurance process."
-msgstr "Avant de publier un canal, envisagez de contribuer vos définitions de paquets dans Guix (@pxref{Contributing}).  Guix en tant que projet est ouvert à tous les logiciels libres de toutes sortes, et les paquets dans Guix sont déjà disponibles à tous les utilisateurs de Guix et bénéficient des processus d'assurance qualité du projet."
-
-#. type: itemize
-#: doc/guix.texi:3817
-msgid "When you maintain package definitions outside Guix, we, Guix developers, consider that @emph{the compatibility burden is on you}.  Remember that package modules and package definitions are just Scheme code that uses various programming interfaces (APIs).  We want to remain free to change these APIs to keep improving Guix, possibly in ways that break your channel.  We never change APIs gratuitously, but we will @emph{not} commit to freezing APIs either."
-msgstr "Lorsque vous maintenez des définitions de paquets en dehors de Guix, nous, les développeur·euse·s de Guix, considérons que @emph{la charge de la compatibilité vous incombe}.  Rappelez-vous que les modules de paquets et les définitions de paquets ne sont que du code Scheme qui utilise diverses interfaces de programmation (API).  Nous souhaitons rester libres de changer ces API pour continuer à améliorer Guix, éventuellement d'une manière qui casse votre canal.  Nous ne changeons jamais l'API gratuitement, mais nous ne nous engageons @emph{pas} à geler les API non plus."
+msgid "authentication, of channel code"
+msgstr "authentification d'un extrait de Guix"
 
-#. type: itemize
-#: doc/guix.texi:3821
-msgid "Corollary: if you're using an external channel and that channel breaks, please @emph{report the issue to the channel authors}, not to the Guix project."
-msgstr "Corollaire : si vous utilisez un canal externe et que le canal est cassé, merci de @emph{rapporter le problème à l'auteur du canal}, pas au projet Guix."
+#. type: table
+#: doc/guix.texi:4362
+msgid "By default, @command{guix pull} authenticates code downloaded from channels by verifying that its commits are signed by authorized developers, and raises an error if this is not the case.  This option instructs it to not perform any such verification."
+msgstr "Par défaut, @command{guix pull} authentifie le code téléchargé depuis les canaux en vérifiant que ses commits sont signés par les développeur·euse·s, et renvoie une erreur si ce n'est pas le cas. Cette option lui enjoint de ne pas effectuer une telle vérification."
 
 #. type: quotation
-#: doc/guix.texi:3828
-msgid "You've been warned! Having said this, we believe external channels are a practical way to exert your freedom to augment Guix' package collection and to share your improvements, which are basic tenets of @uref{https://www.gnu.org/philosophy/free-sw.html, free software}.  Please email us at @email{guix-devel@@gnu.org} if you'd like to discuss this."
-msgstr "Vous avez été prévenus !  Maintenant, nous pensons que des canaux externes sont une manière pratique d'exercer votre liberté pour augmenter la collection de paquets de Guix et de partager vos améliorations, qui sont les principes de bases du @uref{https://www.gnu.org/philosophy/free-sw.html, logiciel libre}.  Contactez-nous par courriel sur @email{guix-devel@@gnu.org} si vous souhaitez discuter à ce propos."
-
-#. type: Plain text
-#: doc/guix.texi:3833
-msgid "To use a channel, write @code{~/.config/guix/channels.scm} to instruct @command{guix pull} to pull from it @emph{in addition} to the default Guix channel(s):"
-msgstr "Pour utiliser un canal, écrivez dans @code{~/.config/guix/channels.scm} pour dire à @command{guix pull} de récupérer votre canal personnel @emph{en plus} des canaux par défaut de Guix :"
-
-#. type: vindex
-#: doc/guix.texi:3834
-#, no-wrap
-msgid "%default-channels"
-msgstr "%default-channels"
+#: doc/guix.texi:4366
+msgid "Make sure you understand its security implications before using @option{--disable-authentication}."
+msgstr "Assurez-vous de comprendre les implications de sa sécurité avant d'utiliser @option{--disable-authentication}."
 
-#. type: lisp
-#: doc/guix.texi:3841
+#. type: itemx
+#: doc/guix.texi:4369 doc/guix.texi:5637 doc/guix.texi:6008
+#: doc/guix.texi:10444 doc/guix.texi:11850 doc/guix.texi:12101
+#: doc/guix.texi:12757 doc/guix.texi:31007
 #, no-wrap
-msgid ""
-";; Add my personal packages to those Guix provides.\n"
-"(cons (channel\n"
-"        (name 'my-personal-packages)\n"
-"        (url \"https://example.org/personal-packages.git\"))\n"
-"      %default-channels)\n"
-msgstr ""
-";; Ajouter mes paquets personnels à ceux fournis par Guix.\n"
-"(cons (channel\n"
-"        (name 'my-personal-packages)\n"
-"        (url \"https://example.org/personal-packages.git\"))\n"
-"      %default-channels)\n"
+msgid "-s @var{system}"
+msgstr "-s @var{système}"
 
-#. type: Plain text
-#: doc/guix.texi:3851
-msgid "Note that the snippet above is (as always!)@: Scheme code; we use @code{cons} to add a channel the list of channels that the variable @code{%default-channels} is bound to (@pxref{Pairs, @code{cons} and lists,, guile, GNU Guile Reference Manual}).  With this file in place, @command{guix pull} builds not only Guix but also the package modules from your own repository.  The result in @file{~/.config/guix/current} is the union of Guix with your own package modules:"
-msgstr "Remarquez que le bout de code au-dessus est (comme toujours !)@: du code Scheme ; nous utilisons @code{cons} pour ajouter un canal à la liste des canaux que la variable @code{%default-channels} représente (@pxref{Pairs, @code{cons} and lists,, guile, GNU Guile Reference Manual}).  Avec ce fichier en place, @command{guix pull} construit non seulement Guix mais aussi les modules de paquets de votre propre dépôt.  Le résultat dans @file{~/.config/guix/current} est l'union de Guix et de vos propres modules de paquets :"
+#. type: table
+#: doc/guix.texi:4372 doc/guix.texi:6011
+msgid "Attempt to build for @var{system}---e.g., @code{i686-linux}---instead of the system type of the build host."
+msgstr "Tenter de construire pour le @var{système} — p.@: ex.@: @code{i686-linux} — plutôt que pour le type de système de l'hôte de construction."
 
-#. type: example
-#: doc/guix.texi:3866
-#, no-wrap
-msgid ""
-"$ guix pull --list-generations\n"
-"@dots{}\n"
-"Generation 19\tAug 27 2018 16:20:48\n"
-"  guix d894ab8\n"
-"    repository URL: https://git.savannah.gnu.org/git/guix.git\n"
-"    branch: master\n"
-"    commit: d894ab8e9bfabcefa6c49d9ba2e834dd5a73a300\n"
-"  my-personal-packages dd3df5e\n"
-"    repository URL: https://example.org/personal-packages.git\n"
-"    branch: master\n"
-"    commit: dd3df5e2c8818760a8fc0bd699e55d3b69fef2bb\n"
-"  11 new packages: my-gimp, my-emacs-with-cool-features, @dots{}\n"
-"  4 packages upgraded: emacs-racket-mode@@0.0.2-2.1b78827, @dots{}\n"
-msgstr ""
-"$ guix pull --list-generations\n"
-"@dots{}\n"
-"Génération 19\tAug 27 2018 16:20:48\n"
-"  guix d894ab8\n"
-"    URL du dépôt : https://git.savannah.gnu.org/git/guix.git\n"
-"    branche : master\n"
-"    commit : d894ab8e9bfabcefa6c49d9ba2e834dd5a73a300\n"
-"  my-personal-packages dd3df5e\n"
-"    URL du dépôt : https://example.org/personal-packages.git\n"
-"    branche : master\n"
-"    commit : dd3df5e2c8818760a8fc0bd699e55d3b69fef2bb\n"
-"  11 nouveaux paquets : my-gimp, my-emacs-with-cool-features, @dots{}\n"
-"  4 paquets mis à jour : emacs-racket-mode@@0.0.2-2.1b78827, @dots{}\n"
+#. type: table
+#: doc/guix.texi:4376
+msgid "Use the bootstrap Guile to build the latest Guix.  This option is only useful to Guix developers."
+msgstr "Utiliser le programme d'amorçage Guile pour construire la dernière version de Guix.  Cette option n'est utile qu'aux personnes qui développent Guix."
 
 #. type: Plain text
-#: doc/guix.texi:3874
-msgid "The output of @command{guix pull} above shows that Generation@tie{}19 includes both Guix and packages from the @code{my-personal-packages} channel.  Among the new and upgraded packages that are listed, some like @code{my-gimp} and @code{my-emacs-with-cool-features} might come from @code{my-personal-packages}, while others come from the Guix default channel."
-msgstr "La sortie de @command{guix pull} ci-dessus montre que la génération@tie{}19 contient aussi bien Guix que les paquets du canal @code{my-personal-packages}.  Parmi les nouveaux paquets et les paquets mis à jour qui sont listés, certains comme @code{my-gimp} et @code{my-emacs-with-cool-features} peuvent provenir de @code{my-personal-packages}, tandis que d'autres viennent du canal par défaut de Guix."
+#: doc/guix.texi:4382
+msgid "The @dfn{channel} mechanism allows you to instruct @command{guix pull} which repository and branch to pull from, as well as @emph{additional} repositories containing package modules that should be deployed.  @xref{Channels}, for more information."
+msgstr "Le mécanisme de @dfn{canaux} vous permet de dire à @command{guix pull} quels répertoires et branches récupérer, ainsi que les dépôts @emph{supplémentaires} contenant des modules de paquets qui devraient être déployés.  @xref{Channels} pour plus d'information."
 
 #. type: Plain text
-#: doc/guix.texi:3885
-msgid "To create a channel, create a Git repository containing your own package modules and make it available.  The repository can contain anything, but a useful channel will contain Guile modules that export packages.  Once you start using a channel, Guix will behave as if the root directory of that channel's Git repository has been added to the Guile load path (@pxref{Load Paths,,, guile, GNU Guile Reference Manual}).  For example, if your channel contains a file at @file{my-packages/my-tools.scm} that defines a Guile module, then the module will be available under the name @code{(my-packages my-tools)}, and you will be able to use it like any other module (@pxref{Modules,,, guile, GNU Guile Reference Manual})."
-msgstr "Pour créer un canal, créez un dépôt Git contenant vos propres modules de paquets et rendez-le disponible.  Le dépôt peut contenir tout ce que vous voulez, mais un canal utile contiendra des modules Guile qui exportent des paquets.  Une fois que vous avez démarré un canal, Guix se comportera comme si le répertoire de la racine du dépôt Git de ce canal était ajouté au chemin de chargement de Guile (@pxref{Load Paths,,, guile, GNU Guile Reference Manual}).  Par exemple, si votre canal contient un fichier @file{mes-paquets/mes-outils.scm} qui définit un module Guile, le module sera disponible sous le nom de @code{(mes-paquets mes-outils)} et vous pourrez l'utiliser comme les autres modules (@pxref{Modules,,, guile, GNU Guile Reference Manual})."
-
-#. type: cindex
-#: doc/guix.texi:3886
-#, no-wrap
-msgid "dependencies, channels"
-msgstr "dépendances, canaux"
-
-#. type: cindex
-#: doc/guix.texi:3887
-#, no-wrap
-msgid "meta-data, channels"
-msgstr "métadonnées, canaux"
+#: doc/guix.texi:4385
+msgid "In addition, @command{guix pull} supports all the common build options (@pxref{Common Build Options})."
+msgstr "En plus, @command{guix pull} supporte toutes les options de construction communes (@pxref{Common Build Options})."
 
-#. type: subsection
-#: doc/guix.texi:3888
+#. type: section
+#: doc/guix.texi:4387
 #, no-wrap
-msgid "Declaring Channel Dependencies"
-msgstr "Déclarer des dépendances de canaux"
-
-#. type: Plain text
-#: doc/guix.texi:3894
-msgid "Channel authors may decide to augment a package collection provided by other channels.  They can declare their channel to be dependent on other channels in a meta-data file @file{.guix-channel}, which is to be placed in the root of the channel repository."
-msgstr "Les auteurs de canaux peuvent décider d'augmenter une collection de paquets fournie par d'autres canaux.  Ils peuvent déclarer leur canal comme dépendant d'autres canaux dans le fichier de métadonnées @file{.guix-channel} qui doit être placé à la racine de dépôt du canal."
-
-#. type: Plain text
-#: doc/guix.texi:3896
-msgid "The meta-data file should contain a simple S-expression like this:"
-msgstr "Le fichier de métadonnées devrait contenir une S-expression simple comme cela :"
+msgid "Invoking @command{guix time-machine}"
+msgstr "Invoquer @command{guix time-machine}"
 
-#. type: lisp
-#: doc/guix.texi:3908
-#, no-wrap
-msgid ""
-"(channel\n"
-" (version 0)\n"
-" (dependencies\n"
-"  (channel\n"
-"   (name some-collection)\n"
-"   (url \"https://example.org/first-collection.git\"))\n"
-"  (channel\n"
-"   (name some-other-collection)\n"
-"   (url \"https://example.org/second-collection.git\")\n"
-"   (branch \"testing\"))))\n"
-msgstr ""
-"(channel\n"
-" (version 0)\n"
-" (dependencies\n"
-"  (channel\n"
-"   (name une-collection)\n"
-"   (url \"https://exemple.org/premiere-collection.git\"))\n"
-"  (channel\n"
-"   (name some-autre-collection)\n"
-"   (url \"https://exemple.org/deuxieme-collection.git\")\n"
-"   (branch \"testing\"))))\n"
-
-#. type: Plain text
-#: doc/guix.texi:3914
-msgid "In the above example this channel is declared to depend on two other channels, which will both be fetched automatically.  The modules provided by the channel will be compiled in an environment where the modules of all these declared channels are available."
-msgstr "Dans l'exemple ci-dessus, ce canal est déclaré comme dépendant de deux autres canaux, qui seront récupérés automatiquement.  Les modules fournis par le canal seront compilés dans un environnement où les modules de tous les canaux déclarés sont disponibles."
-
-#. type: Plain text
-#: doc/guix.texi:3918
-msgid "For the sake of reliability and maintainability, you should avoid dependencies on channels that you don't control, and you should aim to keep the number of dependencies to a minimum."
-msgstr "Pour des raisons de fiabilité et de maintenabilité, vous devriez éviter d'avoir des dépendances sur des canaux que vous ne maîtrisez pas et vous devriez ajouter le minimum de dépendances possible."
-
-#. type: subsection
-#: doc/guix.texi:3919
+#. type: command{#1}
+#: doc/guix.texi:4389
 #, no-wrap
-msgid "Replicating Guix"
-msgstr "Répliquer Guix"
+msgid "guix time-machine"
+msgstr "guix time-machine"
 
 #. type: cindex
-#: doc/guix.texi:3921
+#: doc/guix.texi:4390 doc/guix.texi:4961
 #, no-wrap
 msgid "pinning, channels"
 msgstr "épinglage, canaux"
 
 #. type: cindex
-#: doc/guix.texi:3922 doc/guix.texi:4088
+#: doc/guix.texi:4391 doc/guix.texi:4573 doc/guix.texi:4962
 #, no-wrap
 msgid "replicating Guix"
 msgstr "répliquer Guix"
 
 #. type: cindex
-#: doc/guix.texi:3923
+#: doc/guix.texi:4392 doc/guix.texi:4963
 #, no-wrap
 msgid "reproducibility, of Guix"
 msgstr "reproductibilité, de Guix"
 
 #. type: Plain text
-#: doc/guix.texi:3928
-msgid "The @command{guix pull --list-generations} output above shows precisely which commits were used to build this instance of Guix.  We can thus replicate it, say, on another machine, by providing a channel specification in @file{~/.config/guix/channels.scm} that is ``pinned'' to these commits:"
-msgstr "La sortie de @command{guix pull --list-generations} ci-dessus montre précisément quels commits ont été utilisés pour construire cette instance de Guix.  Nous pouvons donc la répliquer, disons sur une autre machine, en fournissant une spécification de canal dans @file{~/.config/guix/channels.scm} qui est « épinglé » à ces commits :"
+#: doc/guix.texi:4400
+msgid "The @command{guix time-machine} command provides access to other revisions of Guix, for example to install older versions of packages, or to reproduce a computation in an identical environment.  The revision of Guix to be used is defined by a commit or by a channel description file created by @command{guix describe} (@pxref{Invoking guix describe})."
+msgstr "La commande @command{guix time-machine} donne accès à d'autres révisions de Guix, par exemple pour installer d'anciennes versions de paquets, ou pour reproduire un calcul dans un environnement identique. La révision de Guix à utiliser est définie par un commit ou par un fichier de description de canal créé par @command{guix describe} (@pxref{Invoquer guix describe})."
 
-#. type: lisp
-#: doc/guix.texi:3939
+#. type: Plain text
+#: doc/guix.texi:4402 doc/guix.texi:5392 doc/guix.texi:6131 doc/guix.texi:9747
+#: doc/guix.texi:9870 doc/guix.texi:10735 doc/guix.texi:10812
+#: doc/guix.texi:11680 doc/guix.texi:12154 doc/guix.texi:12511
+#: doc/guix.texi:12600 doc/guix.texi:12639 doc/guix.texi:12736
+msgid "The general syntax is:"
+msgstr "La syntaxe générale est :"
+
+#. type: example
+#: doc/guix.texi:4405
 #, no-wrap
-msgid ""
-";; Deploy specific commits of my channels of interest.\n"
-"(list (channel\n"
-"       (name 'guix)\n"
-"       (url \"https://git.savannah.gnu.org/git/guix.git\")\n"
-"       (commit \"d894ab8e9bfabcefa6c49d9ba2e834dd5a73a300\"))\n"
-"      (channel\n"
-"       (name 'my-personal-packages)\n"
-"       (url \"https://example.org/personal-packages.git\")\n"
-"       (branch \"dd3df5e2c8818760a8fc0bd699e55d3b69fef2bb\")))\n"
-msgstr ""
-";; Déployer des commits précis de mes canaux préférés.\n"
-"(list (channel\n"
-"       (name 'guix)\n"
-"       (url \"https://git.savannah.gnu.org/git/guix.git\")\n"
-"       (commit \"d894ab8e9bfabcefa6c49d9ba2e834dd5a73a300\"))\n"
-"      (channel\n"
-"       (name 'my-personal-packages)\n"
-"       (url \"https://example.org/personal-packages.git\")\n"
-"       (branch \"dd3df5e2c8818760a8fc0bd699e55d3b69fef2bb\")))\n"
+msgid "guix time-machine @var{options}@dots{} -- @var{command} @var {arg}@dots{}\n"
+msgstr "guix time-machine @var{options}@dots{} -- @var{commande} @var {arg}@dots{}\n"
 
 #. type: Plain text
-#: doc/guix.texi:3943
-msgid "The @command{guix describe --format=channels} command can even generate this list of channels directly (@pxref{Invoking guix describe})."
-msgstr "La commande @command{guix describe --format=channels} peut même générer cette liste de canaux directement (@pxref{Invoking guix describe})."
+#: doc/guix.texi:4410
+msgid "where @var{command} and @var{arg}@dots{} are passed unmodified to the @command{guix} command of the specified revision.  The @var{options} that define this revision are the same as for @command{guix pull} (@pxref{Invoking guix pull}):"
+msgstr "où @var{command} et @var{arg}@dots{} sont passés sans modification à la commande @command{guix} de la révision spécifiée.  Les @var{options} qui définissent cette révision sont les mêmes que pour la commande @command{guix pull} (@pxref{Invoquer guix pull}) :"
+
+#. type: table
+#: doc/guix.texi:4418
+msgid "Use the @code{guix} channel from the specified @var{url}, at the given @var{commit} (a valid Git commit ID represented as a hexadecimal string), or @var{branch}."
+msgstr "Utiliser le canal @code{guix} depuis l'@var{url} spécifiée, au @var{commit} donné (un commit Git valide représenté par une chaîne hexadécimale) ou à la branche @var{branch}."
+
+#. type: table
+#: doc/guix.texi:4424
+msgid "Read the list of channels from @var{file}.  @var{file} must contain Scheme code that evaluates to a list of channel objects.  @xref{Channels} for more information."
+msgstr "Lit la liste des canaux dans @var{file}.  @var{file} doit contenir un code Scheme qui s'évalue en une liste d'objets de canaux.  @xref{Channels} pour plus d'informations."
 
 #. type: Plain text
-#: doc/guix.texi:3950
-msgid "At this point the two machines run the @emph{exact same Guix}, with access to the @emph{exact same packages}.  The output of @command{guix build gimp} on one machine will be exactly the same, bit for bit, as the output of the same command on the other machine.  It also means both machines have access to all the source code of Guix and, transitively, to all the source code of every package it defines."
-msgstr "À ce moment les deux machines font tourner @emph{exactement le même Guix}, avec l'accès @emph{exactement aux même paquets}.  La sortie de @command{guix build gimp} sur une machine sera exactement la même, au bit près, que la sortie de la même commande sur l'autre machine.  Cela signifie aussi que les deux machines ont accès à tous les codes sources de Guix, et transitivement, à tous les codes sources de tous les paquets qu'il définit."
+#: doc/guix.texi:4428
+msgid "As for @command{guix pull}, the absence of any options means that the latest commit on the master branch will be used. The command"
+msgstr "Quant à @command{guix pull}, l'absence d'options signifie que le dernier commit sur la branche master sera utilisé. La commande"
+
+#. type: example
+#: doc/guix.texi:4431
+#, no-wrap
+msgid "guix time-machine -- build hello\n"
+msgstr "guix time-machine -- build hello\n"
 
 #. type: Plain text
-#: doc/guix.texi:3955
-msgid "This gives you super powers, allowing you to track the provenance of binary artifacts with very fine grain, and to reproduce software environments at will---some sort of ``meta reproducibility'' capabilities, if you will.  @xref{Inferiors}, for another way to take advantage of these super powers."
-msgstr "Cela vous donne des super-pouvoirs, ce qui vous permet de suivre la provenance des artefacts binaires avec un grain très fin et de reproduire les environnements logiciels à volonté — une sorte de capacité de « méta-reproductibilité », si vous voulez.  @xref{Inferiors}, pour une autre manière d'utiliser ces super-pouvoirs."
+#: doc/guix.texi:4436
+msgid "will thus build the package @code{hello} as defined in the master branch, which is in general a newer revision of Guix than you have installed.  Time travel works in both directions!"
+msgstr "va donc construire le paquet @code{hello} tel que défini dans la branche master, qui est en général une révision de Guix plus récente que celle que vous avez installée.  Le voyage dans le temps fonctionne dans les deux sens !"
+
+#. type: Plain text
+#: doc/guix.texi:4440
+msgid "Note that @command{guix time-machine} can trigger builds of channels and their dependencies, and these are controlled by the standard build options (@pxref{Common Build Options})."
+msgstr "Remarquez que @command{guix time-machine} peut lancer des constructions de canaux et de leurs dépendances, et qu'elles peuvent être contrôlées avec les options de construction communes (@pxref{Common Build Options})."
 
 #. type: quotation
-#: doc/guix.texi:3963
+#: doc/guix.texi:4448
 msgid "The functionality described here is a ``technology preview'' as of version @value{VERSION}.  As such, the interface is subject to change."
 msgstr "La fonctionnalité décrite ici est un « démonstrateur technique » à la version @value{VERSION}.  Ainsi, l'interface est sujette à changements."
 
 #. type: cindex
-#: doc/guix.texi:3965 doc/guix.texi:7547
+#: doc/guix.texi:4450 doc/guix.texi:9784
 #, no-wrap
 msgid "inferiors"
 msgstr "inférieurs"
 
 #. type: cindex
-#: doc/guix.texi:3966
+#: doc/guix.texi:4451
 #, no-wrap
 msgid "composition of Guix revisions"
 msgstr "composition de révisions de Guix"
 
 #. type: Plain text
-#: doc/guix.texi:3971
+#: doc/guix.texi:4456
 msgid "Sometimes you might need to mix packages from the revision of Guix you're currently running with packages available in a different revision of Guix.  Guix @dfn{inferiors} allow you to achieve that by composing different Guix revisions in arbitrary ways."
 msgstr "Parfois vous pourriez avoir à mélanger des paquets de votre révision de Guix avec des paquets disponibles dans une révision différente de Guix.  Les @dfn{inférieurs} de Guix vous permettent d'accomplir cette tâche en composant différentes versions de Guix de manière arbitraire."
 
 #. type: cindex
-#: doc/guix.texi:3972 doc/guix.texi:4037
+#: doc/guix.texi:4457 doc/guix.texi:4522
 #, no-wrap
 msgid "inferior packages"
 msgstr "paquets inférieurs"
 
 #. type: Plain text
-#: doc/guix.texi:3978
+#: doc/guix.texi:4463
 msgid "Technically, an ``inferior'' is essentially a separate Guix process connected to your main Guix process through a REPL (@pxref{Invoking guix repl}).  The @code{(guix inferior)} module allows you to create inferiors and to communicate with them.  It also provides a high-level interface to browse and manipulate the packages that an inferior provides---@dfn{inferior packages}."
 msgstr "Techniquement, un « inférieur » est surtout un processus Guix séparé connecté à votre processus Guix principal à travers un REPL (@pxref{Invoking guix repl}).  Le module @code{(guix inferior)} vous permet de créer des inférieurs et de communiquer avec eux.  Il fournit aussi une interface de haut-niveau pour naviguer dans les paquets d'un inférieur — @dfn{des paquets inférieurs} — et les manipuler."
 
 #. type: Plain text
-#: doc/guix.texi:3988
+#: doc/guix.texi:4473
 msgid "When combined with channels (@pxref{Channels}), inferiors provide a simple way to interact with a separate revision of Guix.  For example, let's assume you want to install in your profile the current @code{guile} package, along with the @code{guile-json} as it existed in an older revision of Guix---perhaps because the newer @code{guile-json} has an incompatible API and you want to run your code against the old API@.  To do that, you could write a manifest for use by @code{guix package --manifest} (@pxref{Invoking guix package}); in that manifest, you would create an inferior for that old Guix revision you care about, and you would look up the @code{guile-json} package in the inferior:"
 msgstr "Lorsqu'on les combine avec des canaux (@pxref{Channels}), les inférieurs fournissent une manière simple d'interagir avec un révision de Guix séparée.  Par exemple, disons que vous souhaitiez installer dans votre profil le paquet guile actuel, avec le @code{guile-json} d'une ancienne révision de Guix — peut-être parce que la nouvelle version de @code{guile-json} a une API incompatible et que vous voulez lancer du code avec l'ancienne API.  Pour cela, vous pourriez écrire un manifeste à utiliser avec @code{guix package --manifest} (@pxref{Invoking guix package}) ; dans ce manifeste, vous créeriez un inférieur pour l'ancienne révision de Guix qui vous intéresse et vous chercheriez le paquet @code{guile-json} dans l'inférieur :"
 
 #. type: lisp
-#: doc/guix.texi:3992
+#: doc/guix.texi:4477
 #, no-wrap
 msgid ""
 "(use-modules (guix inferior) (guix channels)\n"
@@ -8664,7 +10177,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:4001
+#: doc/guix.texi:4486
 #, no-wrap
 msgid ""
 "(define channels\n"
@@ -8688,7 +10201,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:4005
+#: doc/guix.texi:4490
 #, no-wrap
 msgid ""
 "(define inferior\n"
@@ -8702,7 +10215,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:4011
+#: doc/guix.texi:4496
 #, no-wrap
 msgid ""
 ";; Now create a manifest with the current \"guile\" package\n"
@@ -8718,192 +10231,192 @@ msgstr ""
 "       (specification->package \"guile\")))\n"
 
 #. type: Plain text
-#: doc/guix.texi:4016
+#: doc/guix.texi:4501
 msgid "On its first run, @command{guix package --manifest} might have to build the channel you specified before it can create the inferior; subsequent runs will be much faster because the Guix revision will be cached."
 msgstr "Durant la première exécution, @command{guix package --manifest} pourrait avoir besoin de construire le canal que vous avez spécifié avant de créer l'inférieur ; les exécutions suivantes seront bien plus rapides parce que la révision de Guix sera déjà en cache."
 
 #. type: Plain text
-#: doc/guix.texi:4019
+#: doc/guix.texi:4504
 msgid "The @code{(guix inferior)} module provides the following procedures to open an inferior:"
 msgstr "Le module @code{(guix inferior)} fournit les procédures suivantes pour ouvrir un inférieur :"
 
 #. type: deffn
-#: doc/guix.texi:4020
+#: doc/guix.texi:4505
 #, no-wrap
 msgid "{Scheme Procedure} inferior-for-channels @var{channels} @"
 msgstr "{Procédure Scheme} inferior-for-channels @var{channels} @"
 
 #. type: deffn
-#: doc/guix.texi:4025
+#: doc/guix.texi:4510
 msgid "[#:cache-directory] [#:ttl] Return an inferior for @var{channels}, a list of channels.  Use the cache at @var{cache-directory}, where entries can be reclaimed after @var{ttl} seconds.  This procedure opens a new connection to the build daemon."
 msgstr ""
 "[#:cache-directory] [#:ttl]\n"
 "Renvoie un inférieur pour @var{channels}, une liste de canaux.  Elle utilise le cache dans @var{cache-directory}, où les entrées peuvent être glanées après @var{ttl} secondes.  Cette procédure ouvre une nouvelle connexion au démon de construction."
 
 #. type: deffn
-#: doc/guix.texi:4028
+#: doc/guix.texi:4513
 msgid "As a side effect, this procedure may build or substitute binaries for @var{channels}, which can take time."
 msgstr "Elle a pour effet de bord de construire ou de substituer des binaires pour @var{channels}, ce qui peut prendre du temps."
 
 #. type: deffn
-#: doc/guix.texi:4030
+#: doc/guix.texi:4515
 #, no-wrap
 msgid "{Scheme Procedure} open-inferior @var{directory} @"
 msgstr "{Procédure Scheme} open-inferior @var{directory} @"
 
 #. type: deffn
-#: doc/guix.texi:4035
+#: doc/guix.texi:4520
 msgid "[#:command \"bin/guix\"] Open the inferior Guix in @var{directory}, running @code{@var{directory}/@var{command} repl} or equivalent.  Return @code{#f} if the inferior could not be launched."
 msgstr ""
 "[#:command \"bin/guix\"]\n"
 "Ouvre le Guix inférieur dans @var{directory} et lance @code{@var{directory}/@var{command} repl} ou équivalent.  Renvoie @code{#f} si l'inférieur n'a pas pu être lancé."
 
 #. type: Plain text
-#: doc/guix.texi:4040
+#: doc/guix.texi:4525
 msgid "The procedures listed below allow you to obtain and manipulate inferior packages."
 msgstr "Les procédures listées plus bas vous permettent d'obtenir et de manipuler des paquets inférieurs."
 
 #. type: deffn
-#: doc/guix.texi:4041
+#: doc/guix.texi:4526
 #, no-wrap
 msgid "{Scheme Procedure} inferior-packages @var{inferior}"
 msgstr "{Procédure Scheme} inferior-packages @var{inferior}"
 
 #. type: deffn
-#: doc/guix.texi:4043
+#: doc/guix.texi:4528
 msgid "Return the list of packages known to @var{inferior}."
 msgstr "Renvoie la liste des paquets connus de l'inférieur @var{inferior}."
 
 #. type: deffn
-#: doc/guix.texi:4045
+#: doc/guix.texi:4530
 #, no-wrap
 msgid "{Scheme Procedure} lookup-inferior-packages @var{inferior} @var{name} @"
 msgstr "{Procédure Scheme} lookup-inferior-packages @var{inferior} @var{name} @"
 
 #. type: deffn
-#: doc/guix.texi:4050
+#: doc/guix.texi:4535
 msgid "[@var{version}] Return the sorted list of inferior packages matching @var{name} in @var{inferior}, with highest version numbers first.  If @var{version} is true, return only packages with a version number prefixed by @var{version}."
 msgstr ""
 "[@var{version}]\n"
 "Renvoie la liste triée des paquets inférieurs qui correspondent à @var{name} dans @var{inferior}, avec le plus haut numéro de version en premier.  Si @var{version} est vrai, renvoie seulement les paquets avec un numéro de version préfixé par @var{version}."
 
 #. type: deffn
-#: doc/guix.texi:4052
+#: doc/guix.texi:4537
 #, no-wrap
 msgid "{Scheme Procedure} inferior-package? @var{obj}"
 msgstr "{Procédure Scheme} inferior-package? @var{obj}"
 
 #. type: deffn
-#: doc/guix.texi:4054
+#: doc/guix.texi:4539
 msgid "Return true if @var{obj} is an inferior package."
 msgstr "Renvoie vrai si @var{obj} est un paquet inférieur."
 
 #. type: deffn
-#: doc/guix.texi:4056
+#: doc/guix.texi:4541
 #, no-wrap
 msgid "{Scheme Procedure} inferior-package-name @var{package}"
 msgstr "{Procédure Scheme} inferior-package-name @var{package}"
 
 #. type: deffnx
-#: doc/guix.texi:4057
+#: doc/guix.texi:4542
 #, no-wrap
 msgid "{Scheme Procedure} inferior-package-version @var{package}"
 msgstr "{Procédure Scheme} inferior-package-version @var{package}"
 
 #. type: deffnx
-#: doc/guix.texi:4058
+#: doc/guix.texi:4543
 #, no-wrap
 msgid "{Scheme Procedure} inferior-package-synopsis @var{package}"
 msgstr "{Procédure Scheme} inferior-package-synopsis @var{package}"
 
 #. type: deffnx
-#: doc/guix.texi:4059
+#: doc/guix.texi:4544
 #, no-wrap
 msgid "{Scheme Procedure} inferior-package-description @var{package}"
 msgstr "{Procédure Scheme} inferior-package-description @var{package}"
 
 #. type: deffnx
-#: doc/guix.texi:4060
+#: doc/guix.texi:4545
 #, no-wrap
 msgid "{Scheme Procedure} inferior-package-home-page @var{package}"
 msgstr "{Procédure Scheme} inferior-package-home-page @var{package}"
 
 #. type: deffnx
-#: doc/guix.texi:4061
+#: doc/guix.texi:4546
 #, no-wrap
 msgid "{Scheme Procedure} inferior-package-location @var{package}"
 msgstr "{Procédure Scheme} inferior-package-location @var{package}"
 
 #. type: deffnx
-#: doc/guix.texi:4062
+#: doc/guix.texi:4547
 #, no-wrap
 msgid "{Scheme Procedure} inferior-package-inputs @var{package}"
 msgstr "{Procédure Scheme} inferior-package-inputs @var{package}"
 
 #. type: deffnx
-#: doc/guix.texi:4063
+#: doc/guix.texi:4548
 #, no-wrap
 msgid "{Scheme Procedure} inferior-package-native-inputs @var{package}"
 msgstr "{Procédure Scheme} inferior-package-native-inputs @var{package}"
 
 #. type: deffnx
-#: doc/guix.texi:4064
+#: doc/guix.texi:4549
 #, no-wrap
 msgid "{Scheme Procedure} inferior-package-propagated-inputs @var{package}"
 msgstr "{Procédure Scheme} inferior-package-propagated-inputs @var{package}"
 
 #. type: deffnx
-#: doc/guix.texi:4065
+#: doc/guix.texi:4550
 #, no-wrap
 msgid "{Scheme Procedure} inferior-package-transitive-propagated-inputs @var{package}"
 msgstr "{Procédure Scheme} inferior-package-transitive-propagated-inputs @var{package}"
 
 #. type: deffnx
-#: doc/guix.texi:4066
+#: doc/guix.texi:4551
 #, no-wrap
 msgid "{Scheme Procedure} inferior-package-native-search-paths @var{package}"
 msgstr "{Procédure Scheme} inferior-package-native-search-paths @var{package}"
 
 #. type: deffnx
-#: doc/guix.texi:4067
+#: doc/guix.texi:4552
 #, no-wrap
 msgid "{Scheme Procedure} inferior-package-transitive-native-search-paths @var{package}"
 msgstr "{Procédure Scheme} inferior-package-transitive-native-search-paths @var{package}"
 
 #. type: deffnx
-#: doc/guix.texi:4068
+#: doc/guix.texi:4553
 #, no-wrap
 msgid "{Scheme Procedure} inferior-package-search-paths @var{package}"
 msgstr "{Procédure Scheme} inferior-package-search-paths @var{package}"
 
 #. type: deffn
-#: doc/guix.texi:4073
+#: doc/guix.texi:4558
 msgid "These procedures are the counterpart of package record accessors (@pxref{package Reference}).  Most of them work by querying the inferior @var{package} comes from, so the inferior must still be live when you call these procedures."
 msgstr "Ces procédures sont la contrepartie des accesseurs des enregistrements de paquets (@pxref{package Reference}).  La plupart fonctionne en effectuant des requêtes à l'inférieur dont provient @var{package}, donc l'inférieur doit toujours être disponible lorsque vous appelez ces procédures."
 
 #. type: Plain text
-#: doc/guix.texi:4083
+#: doc/guix.texi:4568
 msgid "Inferior packages can be used transparently like any other package or file-like object in G-expressions (@pxref{G-Expressions}).  They are also transparently handled by the @code{packages->manifest} procedure, which is commonly use in manifests (@pxref{Invoking guix package, the @option{--manifest} option of @command{guix package}}).  Thus you can insert an inferior package pretty much anywhere you would insert a regular package: in manifests, in the @code{packages} field of your @code{operating-system} declaration, and so on."
 msgstr "Les paquets inférieurs peuvent être utilisés de manière transparente comme tout autre paquet ou objet simili-fichier dans des G-expressions (@pxref{G-Expressions}).  Ils sont aussi gérés de manière transparente par la procédure @code{packages->manifest}, qui est typiquement utilisée dans des manifestes (@pxref{Invoking guix package, l'option @option{--manifest} de @command{guix package}}).  Ainsi, vous pouvez insérer un paquet inférieur à peu près n'importe où vous utiliseriez un paquet normal : dans des manifestes, dans le champ @code{packages} de votre déclaration @code{operating-system}, etc."
 
 #. type: section
-#: doc/guix.texi:4085
+#: doc/guix.texi:4570
 #, no-wrap
 msgid "Invoking @command{guix describe}"
 msgstr "Invoquer @command{guix describe}"
 
 #. type: Plain text
-#: doc/guix.texi:4096
+#: doc/guix.texi:4581
 msgid "Often you may want to answer questions like: ``Which revision of Guix am I using?'' or ``Which channels am I using?'' This is useful information in many situations: if you want to @emph{replicate} an environment on a different machine or user account, if you want to report a bug or to determine what change in the channels you are using caused it, or if you want to record your system state for reproducibility purposes.  The @command{guix describe} command answers these questions."
 msgstr "Souvent vous voudrez répondre à des questions comme « quelle révision de Guix j'utilise ? » ou « quels canaux est-ce que j'utilise ? ».  C'est une information utile dans de nombreuses situations : si vous voulez @emph{répliquer} un environnement sur une machine différente ou un compte utilisateur, si vous voulez rapporter un bogue ou pour déterminer quel changement dans les canaux que vous utilisez l'a causé ou si vous voulez enregistrer l'état de votre système pour le reproduire.  La commande @command{guix describe} répond à ces questions."
 
 #. type: Plain text
-#: doc/guix.texi:4100
+#: doc/guix.texi:4585
 msgid "When run from a @command{guix pull}ed @command{guix}, @command{guix describe} displays the channel(s) that it was built from, including their repository URL and commit IDs (@pxref{Channels}):"
 msgstr "Lorsqu'elle est lancée depuis un @command{guix} mis à jour avec @command{guix pull}, @command{guix describe} affiche les canaux qui ont été construits, avec l'URL de leur dépôt et l'ID de leur commit (@pxref{Channels}) :"
 
 #. type: example
-#: doc/guix.texi:4108
+#: doc/guix.texi:4593
 #, no-wrap
 msgid ""
 "$ guix describe\n"
@@ -8921,17 +10434,17 @@ msgstr ""
 "    commit : e0fa68c7718fffd33d81af415279d6ddb518f727\n"
 
 #. type: Plain text
-#: doc/guix.texi:4117
+#: doc/guix.texi:4602
 msgid "If you're familiar with the Git version control system, this is similar in spirit to @command{git describe}; the output is also similar to that of @command{guix pull --list-generations}, but limited to the current generation (@pxref{Invoking guix pull, the @option{--list-generations} option}).  Because the Git commit ID shown above unambiguously refers to a snapshot of Guix, this information is all it takes to describe the revision of Guix you're using, and also to replicate it."
 msgstr "Si vous connaissez bien le système de contrôle de version Git, cela ressemble en essence à @command{git describe} ; la sortie est aussi similaire à celle de @command{guix pull --list-generations}, mais limitée à la génération actuelle (@pxref{Invoking guix pull, l'option @option{--list-generations}}).  Comme l'ID de commit de Git ci-dessus se réfère sans aucune ambiguïté à un instantané de Guix, cette information est tout ce dont vous avez besoin pour décrire la révision de Guix que vous utilisez et pour la répliquer."
 
 #. type: Plain text
-#: doc/guix.texi:4120
+#: doc/guix.texi:4605
 msgid "To make it easier to replicate Guix, @command{guix describe} can also be asked to return a list of channels instead of the human-readable description above:"
 msgstr "Pour rendre plus facile la réplication de Guix, @command{guix describe} peut aussi renvoyer une liste de canaux plutôt que la description lisible par un humain au-dessus :"
 
 #. type: example
-#: doc/guix.texi:4128
+#: doc/guix.texi:4618
 #, no-wrap
 msgid ""
 "$ guix describe -f channels\n"
@@ -8939,7 +10452,12 @@ msgid ""
 "        (name 'guix)\n"
 "        (url \"https://git.savannah.gnu.org/git/guix.git\")\n"
 "        (commit\n"
-"          \"e0fa68c7718fffd33d81af415279d6ddb518f727\")))\n"
+"          \"e0fa68c7718fffd33d81af415279d6ddb518f727\")\n"
+"        (introduction\n"
+"          (make-channel-introduction\n"
+"            \"9edb3f66fd807b096b48283debdcddccfea34bad\"\n"
+"            (openpgp-fingerprint\n"
+"              \"BBB0 2DDF 2CEA F6A8 0D1D  E643 A2A0 6DF2 A33A 54FA\")))))\n"
 msgstr ""
 "$ guix describe -f channels\n"
 "(list (channel\n"
@@ -8947,440 +10465,1160 @@ msgstr ""
 "        (url \"https://git.savannah.gnu.org/git/guix.git\")\n"
 "        (commit\n"
 "          \"e0fa68c7718fffd33d81af415279d6ddb518f727\")))\n"
+"        (introduction\n"
+"          (make-channel-introduction\n"
+"            \"9edb3f66fd807b096b48283debdcddccfea34bad\"\n"
+"            (openpgp-fingerprint\n"
+"              \"BBB0 2DDF 2CEA F6A8 0D1D  E643 A2A0 6DF2 A33A 54FA\")))))\n"
 
 #. type: Plain text
-#: doc/guix.texi:4137
+#: doc/guix.texi:4627
 msgid "You can save this to a file and feed it to @command{guix pull -C} on some other machine or at a later point in time, which will instantiate @emph{this exact Guix revision} (@pxref{Invoking guix pull, the @option{-C} option}).  From there on, since you're able to deploy the same revision of Guix, you can just as well @emph{replicate a complete software environment}.  We humbly think that this is @emph{awesome}, and we hope you'll like it too!"
 msgstr "Vous pouvez sauvegarder ceci dans un fichier et le donner à @command{guix pull -C} sur une autre machine ou plus tard, ce qui instantiera @emph{exactement la même révision de Guix} (@pxref{Invoking guix pull, l'option @option{-C}}).  À partir de là, comme vous pouvez déployer la même révision de Guix, vous pouvez aussi bien @emph{répliquer un environnement logiciel complet}.  Nous pensons humblement que c'est @emph{génial}, et nous espérons que vous aimerez ça aussi !"
 
 #. type: Plain text
-#: doc/guix.texi:4140
+#: doc/guix.texi:4630
 msgid "The details of the options supported by @command{guix describe} are as follows:"
 msgstr "Voici les détails des options supportées par @command{guix describe} :"
 
 #. type: item
-#: doc/guix.texi:4142 doc/guix.texi:4786
+#: doc/guix.texi:4632 doc/guix.texi:5838
 #, no-wrap
 msgid "--format=@var{format}"
 msgstr "--format=@var{format}"
 
 #. type: itemx
-#: doc/guix.texi:4143 doc/guix.texi:4787
+#: doc/guix.texi:4633 doc/guix.texi:5839
 #, no-wrap
 msgid "-f @var{format}"
 msgstr "-f @var{format}"
 
 #. type: table
-#: doc/guix.texi:4145
+#: doc/guix.texi:4635
 msgid "Produce output in the specified @var{format}, one of:"
 msgstr "Produire la sortie dans le @var{format} donné, parmi :"
 
 #. type: item
-#: doc/guix.texi:4147
+#: doc/guix.texi:4637
 #, no-wrap
 msgid "human"
 msgstr "human"
 
 #. type: table
-#: doc/guix.texi:4149
+#: doc/guix.texi:4639
 msgid "produce human-readable output;"
-msgstr "produire une sortie lisible par un humain,"
+msgstr "produire une sortie lisible par un humain ;"
+
+#. type: cindex
+#: doc/guix.texi:4639 doc/guix.texi:4857
+#, no-wrap
+msgid "channels"
+msgstr "canaux"
 
 #. type: table
-#: doc/guix.texi:4153
+#: doc/guix.texi:4643
 msgid "produce a list of channel specifications that can be passed to @command{guix pull -C} or installed as @file{~/.config/guix/channels.scm} (@pxref{Invoking guix pull});"
-msgstr "produire une liste de spécifications de canaux qui peut être passée à @command{guix pull -C} ou installée dans @file{~/.config/guix/channels.scm} (@pxref{Invoking guix pull}),"
+msgstr "produire une liste de spécifications de canaux qui peut être passée à @command{guix pull -C} ou installée dans @file{~/.config/guix/channels.scm} (@pxref{Invoking guix pull}) ;"
 
 #. type: item
-#: doc/guix.texi:4153 doc/guix.texi:8584
+#: doc/guix.texi:4643
+#, no-wrap
+msgid "channels-sans-intro"
+msgstr "channels-sans-intro"
+
+#. type: table
+#: doc/guix.texi:4649
+msgid "like @code{channels}, but omit the @code{introduction} field; use it to produce a channel specification suitable for Guix version 1.1.0 or earlier---the @code{introduction} field has to do with channel authentication (@pxref{Channels, Channel Authentication}) and is not supported by these older versions;"
+msgstr "comme @code{canaux}, mais oubliez le champ @code{introduction} ; utilisez-le pour produire une spécification de canal adaptée à la version 1.1.0 ou antérieure de Guix--le champ @code{introduction} concerne l'authentification des canaux (@pxref{Channels, Channel Authentication}) et n'est pas pris en charge par ces versions antérieures ;"
+
+#. type: item
+#: doc/guix.texi:4649 doc/guix.texi:10991
 #, no-wrap
 msgid "json"
 msgstr "json"
 
 #. type: cindex
-#: doc/guix.texi:4154
+#: doc/guix.texi:4650
 #, no-wrap
 msgid "JSON"
 msgstr "JSON"
 
 #. type: table
-#: doc/guix.texi:4156
+#: doc/guix.texi:4652
 msgid "produce a list of channel specifications in JSON format;"
-msgstr "produire une liste de spécifications de canaux dans le format JSON,"
+msgstr "produire une liste de spécifications de canaux dans le format JSON ;"
 
 #. type: item
-#: doc/guix.texi:4156
+#: doc/guix.texi:4652
 #, no-wrap
 msgid "recutils"
 msgstr "recutils"
 
 #. type: table
-#: doc/guix.texi:4158
+#: doc/guix.texi:4654
 msgid "produce a list of channel specifications in Recutils format."
 msgstr "produire une liste de spécifications de canaux dans le format Recutils."
 
+#. type: item
+#: doc/guix.texi:4656
+#, no-wrap
+msgid "--list-formats"
+msgstr "--list-formats"
+
+#. type: table
+#: doc/guix.texi:4658
+msgid "Display available formats for @option{--format} option."
+msgstr "Affiche les formats disponibles pour l'option @option{--format}."
+
 #. type: table
-#: doc/guix.texi:4163
+#: doc/guix.texi:4662
 msgid "Display information about @var{profile}."
 msgstr "Afficher les informations sur le @var{profil}."
 
 #. type: section
-#: doc/guix.texi:4166
+#: doc/guix.texi:4665
 #, no-wrap
 msgid "Invoking @command{guix archive}"
 msgstr "Invoquer @command{guix archive}"
 
 #. type: command{#1}
-#: doc/guix.texi:4168
+#: doc/guix.texi:4667
 #, no-wrap
 msgid "guix archive"
 msgstr "guix archive"
 
 #. type: cindex
-#: doc/guix.texi:4169
+#: doc/guix.texi:4668
 #, no-wrap
 msgid "archive"
 msgstr "archive"
 
 #. type: Plain text
-#: doc/guix.texi:4175
+#: doc/guix.texi:4674
 msgid "The @command{guix archive} command allows users to @dfn{export} files from the store into a single archive, and to later @dfn{import} them on a machine that runs Guix.  In particular, it allows store files to be transferred from one machine to the store on another machine."
 msgstr "La commande @command{guix archive} permet aux utilisateurs d'@dfn{exporter} des fichiers du dépôt dans une simple archive puis ensuite de les @dfn{importer} sur une machine qui fait tourner Guix.  En particulier, elle permet de transférer des fichiers du dépôt d'une machine vers le dépôt d'une autre machine."
 
 #. type: quotation
-#: doc/guix.texi:4179
+#: doc/guix.texi:4678
 msgid "If you're looking for a way to produce archives in a format suitable for tools other than Guix, @pxref{Invoking guix pack}."
 msgstr "Si vous chercher une manière de produire des archives dans un format adapté pour des outils autres que Guix, @pxref{Invoking guix pack}."
 
 #. type: cindex
-#: doc/guix.texi:4181
+#: doc/guix.texi:4680
 #, no-wrap
 msgid "exporting store items"
 msgstr "exporter des éléments du dépôt"
 
 #. type: Plain text
-#: doc/guix.texi:4183
+#: doc/guix.texi:4682
 msgid "To export store files as an archive to standard output, run:"
 msgstr "Pour exporter des fichiers du dépôt comme une archive sur la sortie standard, lancez :"
 
 #. type: example
-#: doc/guix.texi:4186
+#: doc/guix.texi:4685
 #, no-wrap
 msgid "guix archive --export @var{options} @var{specifications}...\n"
 msgstr "guix archive --export @var{options} @var{spécifications}...\n"
 
 #. type: Plain text
-#: doc/guix.texi:4193
+#: doc/guix.texi:4692
 msgid "@var{specifications} may be either store file names or package specifications, as for @command{guix package} (@pxref{Invoking guix package}).  For instance, the following command creates an archive containing the @code{gui} output of the @code{git} package and the main output of @code{emacs}:"
 msgstr "@var{spécifications} peut être soit des noms de fichiers soit des spécifications de paquets, comme pour @command{guix package} (@pxref{Invoking guix package}).  Par exemple, la commande suivante crée une archive contenant la sortie @code{gui} du paquet @code{git} et la sortie principale de @code{emacs} :"
 
 #. type: example
-#: doc/guix.texi:4196
+#: doc/guix.texi:4695
 #, no-wrap
 msgid "guix archive --export git:gui /gnu/store/...-emacs-24.3 > great.nar\n"
 msgstr "guix archive --export git:gui /gnu/store/...-emacs-24.3 > great.nar\n"
 
 #. type: Plain text
-#: doc/guix.texi:4201
+#: doc/guix.texi:4700
 msgid "If the specified packages are not built yet, @command{guix archive} automatically builds them.  The build process may be controlled with the common build options (@pxref{Common Build Options})."
 msgstr "Si les paquets spécifiés ne sont pas déjà construits, @command{guix archive} les construit automatiquement.  Le processus de construction peut être contrôlé avec les options de construction communes (@pxref{Common Build Options})."
 
 #. type: Plain text
-#: doc/guix.texi:4204
+#: doc/guix.texi:4703
 msgid "To transfer the @code{emacs} package to a machine connected over SSH, one would run:"
 msgstr "Pour transférer le paquet @code{emacs} vers une machine connectée en SSH, on pourrait lancer :"
 
 #. type: example
-#: doc/guix.texi:4207
+#: doc/guix.texi:4706
 #, no-wrap
 msgid "guix archive --export -r emacs | ssh the-machine guix archive --import\n"
 msgstr "guix archive --export -r emacs | ssh la-machine guix archive --import\n"
 
 #. type: Plain text
-#: doc/guix.texi:4212
+#: doc/guix.texi:4711
 msgid "Similarly, a complete user profile may be transferred from one machine to another like this:"
 msgstr "De même, on peut transférer un profil utilisateur complet d'une machine à une autre comme cela :"
 
 #. type: example
-#: doc/guix.texi:4216
+#: doc/guix.texi:4715
 #, no-wrap
 msgid ""
 "guix archive --export -r $(readlink -f ~/.guix-profile) | \\\n"
-"  ssh the-machine guix-archive --import\n"
+"  ssh the-machine guix archive --import\n"
 msgstr ""
 "guix archive --export -r $(readlink -f ~/.guix-profile) | \\\n"
-"  ssh la-machine guix-archive --import\n"
+"  ssh the-machine guix archive --import\n"
 
 #. type: Plain text
-#: doc/guix.texi:4226
-msgid "However, note that, in both examples, all of @code{emacs} and the profile as well as all of their dependencies are transferred (due to @code{-r}), regardless of what is already available in the store on the target machine.  The @code{--missing} option can help figure out which items are missing from the target store.  The @command{guix copy} command simplifies and optimizes this whole process, so this is probably what you should use in this case (@pxref{Invoking guix copy})."
-msgstr "Cependant, remarquez que, dans les deux exemples, le paquet @code{emacs}, le profil ainsi que toutes leurs dépendances sont transférés (à cause de @code{-r}), indépendamment du fait qu'ils soient ou non disponibles dans le dépôt de la machine cible.  L'option @code{--missing} peut vous aider à comprendre les éléments qui manquent dans le dépôt de la machine cible.  La commande @command{guix copy} simplifie et optimise ce processus, c'est donc ce que vous devriez utiliser dans ce cas (@pxref{Invoking guix copy})."
+#: doc/guix.texi:4725
+msgid "However, note that, in both examples, all of @code{emacs} and the profile as well as all of their dependencies are transferred (due to @option{-r}), regardless of what is already available in the store on the target machine.  The @option{--missing} option can help figure out which items are missing from the target store.  The @command{guix copy} command simplifies and optimizes this whole process, so this is probably what you should use in this case (@pxref{Invoking guix copy})."
+msgstr "Toutefois, il faut noter que, dans les deux exemples, tous les @code{emacs} et le profil, ainsi que toutes leurs dépendances sont transférés (en raison de l'@option{-r}), indépendamment de ce qui est déjà disponible dans le dépôt sur la machine cible.  L'option @option{--missing} peut aider à déterminer quels sont les éléments manquants dans le dépôt cible.  La commande @command{guix copy} simplifie et optimise tout ce processus, c'est donc probablement ce que vous devriez utiliser dans ce cas (@pxref{Invoquer guix copy})."
 
 #. type: cindex
-#: doc/guix.texi:4227
+#: doc/guix.texi:4726
 #, no-wrap
 msgid "nar, archive format"
 msgstr "nar, format d'archive"
 
 #. type: cindex
-#: doc/guix.texi:4228
+#: doc/guix.texi:4727
 #, no-wrap
 msgid "normalized archive (nar)"
 msgstr "archive normalisée (nar)"
 
+#. type: cindex
+#: doc/guix.texi:4728
+#, no-wrap
+msgid "nar bundle, archive format"
+msgstr "nar bundle, format d'archive"
+
 #. type: Plain text
-#: doc/guix.texi:4238
-msgid "Archives are stored in the ``normalized archive'' or ``nar'' format, which is comparable in spirit to `tar', but with differences that make it more appropriate for our purposes.  First, rather than recording all Unix metadata for each file, the nar format only mentions the file type (regular, directory, or symbolic link); Unix permissions and owner/group are dismissed.  Second, the order in which directory entries are stored always follows the order of file names according to the C locale collation order.  This makes archive production fully deterministic."
-msgstr "Les archives sont stockées au format « archive normalisé » ou « nar », qui est comparable dans l'esprit à « tar » mais avec des différences qui le rendent utilisable pour ce qu'on veut faire.  Tout d'abord, au lieu de stocker toutes les métadonnées Unix de chaque fichier, le format nar ne mentionne que le type de fichier (normal, répertoire ou lien symbolique) ; les permissions Unix, le groupe et l'utilisateur ne sont pas mentionnés.  Ensuite, l'ordre dans lequel les entrées de répertoires sont stockés suit toujours l'ordre des noms de fichier dans l'environnement linguistique C.  Cela rend la production des archives entièrement déterministe."
+#: doc/guix.texi:4733
+msgid "Each store item is written in the @dfn{normalized archive} or @dfn{nar} format (described below), and the output of @command{guix archive --export} (and input of @command{guix archive --import}) is a @dfn{nar bundle}."
+msgstr "Chaque élément du dépôt est écrit dans le format @dfn{archive normalisée} ou @dfn{nar} (décrit ci-dessous), et la sortie de @command{guix archive --export} (et entrée de @command{guix archive --import}) est un @dfn{nar bundle}."
+
+#. type: Plain text
+#: doc/guix.texi:4743
+msgid "The nar format is comparable in spirit to `tar', but with differences that make it more appropriate for our purposes.  First, rather than recording all Unix metadata for each file, the nar format only mentions the file type (regular, directory, or symbolic link); Unix permissions and owner/group are dismissed.  Second, the order in which directory entries are stored always follows the order of file names according to the C locale collation order.  This makes archive production fully deterministic."
+msgstr "Le format nar est comparable dans l'esprit au format \"tar\", mais avec des différences qui le rendent plus approprié à nos objectifs.  Premièrement, plutôt que d'enregistrer toutes les métadonnées Unix pour chaque fichier, le format nar ne mentionne que le type de fichier (régulier, répertoire ou lien symbolique) ; les autorisations Unix et le propriétaire/groupe sont rejetés.  Deuxièmement, l'ordre dans lequel les entrées de répertoire sont stockées, suit toujours celui des noms de fichiers selon leur vérification de concordance des locales C.  Cela rend la production d'archives entièrement déterministe."
 
 #. type: Plain text
-#: doc/guix.texi:4244
+#: doc/guix.texi:4747
+msgid "That nar bundle format is essentially the concatenation of zero or more nars along with metadata for each store item it contains: its file name, references, corresponding derivation, and a digital signature."
+msgstr "Ce format de lot nar est surtout la concaténation de zéro, un ou plusieurs nar avec des métadonnées pour chaque élément du dépôt qu'il contient : son nom de fichier, ses références, la dérivation correspondante et une signature numérique."
+
+#. type: Plain text
+#: doc/guix.texi:4753
 msgid "When exporting, the daemon digitally signs the contents of the archive, and that digital signature is appended.  When importing, the daemon verifies the signature and rejects the import in case of an invalid signature or if the signing key is not authorized."
 msgstr "Lors de l'export, le démon signe numériquement le contenu de l'archive et cette signature est ajoutée à la fin du fichier.  Lors de l'import, le démon vérifie la signature et rejette l'import en cas de signature invalide ou si la clef de signature n'est pas autorisée."
 
 #. type: Plain text
-#: doc/guix.texi:4246
+#: doc/guix.texi:4755
 msgid "The main options are:"
 msgstr "Les principales options sont :"
 
 #. type: item
-#: doc/guix.texi:4248
+#: doc/guix.texi:4757
 #, no-wrap
 msgid "--export"
 msgstr "--export"
 
 #. type: table
-#: doc/guix.texi:4251
-msgid "Export the specified store files or packages (see below.)  Write the resulting archive to the standard output."
-msgstr "Exporter les fichiers ou les paquets du dépôt (voir plus bas).  Écrire l'archive résultante sur la sortie standard."
+#: doc/guix.texi:4760
+msgid "Export the specified store files or packages (see below).  Write the resulting archive to the standard output."
+msgstr "Exporter les fichiers ou les paquets spécifiés du dépôt (voir plus bas).  Écrire l'archive résultante sur la sortie standard."
 
 #. type: table
-#: doc/guix.texi:4254
-msgid "Dependencies are @emph{not} included in the output, unless @code{--recursive} is passed."
-msgstr "Les dépendances ne sont @emph{pas} incluses dans la sortie à moins que @code{--recursive} ne soit passé."
+#: doc/guix.texi:4763
+msgid "Dependencies are @emph{not} included in the output, unless @option{--recursive} is passed."
+msgstr "Les dépendances ne sont @emph{pas} incluses dans la sortie à moins que @option{--recursive} ne soit passé."
 
 #. type: itemx
-#: doc/guix.texi:4255 doc/guix.texi:8372 doc/guix.texi:8469 doc/guix.texi:8494
-#: doc/guix.texi:8689 doc/guix.texi:8730 doc/guix.texi:8777
+#: doc/guix.texi:4764 doc/guix.texi:10768 doc/guix.texi:10870
+#: doc/guix.texi:10895 doc/guix.texi:11096 doc/guix.texi:11137
+#: doc/guix.texi:11184 doc/guix.texi:11209
 #, no-wrap
 msgid "-r"
 msgstr "-r"
 
 #. type: item
-#: doc/guix.texi:4256 doc/guix.texi:8371 doc/guix.texi:8468 doc/guix.texi:8493
-#: doc/guix.texi:8688 doc/guix.texi:8729 doc/guix.texi:8776 doc/guix.texi:8833
+#: doc/guix.texi:4765 doc/guix.texi:10767 doc/guix.texi:10869
+#: doc/guix.texi:10894 doc/guix.texi:11095 doc/guix.texi:11136
+#: doc/guix.texi:11183 doc/guix.texi:11208 doc/guix.texi:11260
 #, no-wrap
 msgid "--recursive"
 msgstr "--recursive"
 
 #. type: table
-#: doc/guix.texi:4261
-msgid "When combined with @code{--export}, this instructs @command{guix archive} to include dependencies of the given items in the archive.  Thus, the resulting archive is self-contained: it contains the closure of the exported store items."
-msgstr "En combinaison avec @code{--export}, cette option demande à @command{guix archive} d'inclure les dépendances des éléments donnés dans l'archive.  Ainsi, l'archive résultante est autonome : elle contient la closure des éléments du dépôt exportés."
+#: doc/guix.texi:4770
+msgid "When combined with @option{--export}, this instructs @command{guix archive} to include dependencies of the given items in the archive.  Thus, the resulting archive is self-contained: it contains the closure of the exported store items."
+msgstr "En combinaison avec @option{--export}, cette option demande à @command{guix archive} d'inclure les dépendances des éléments donnés dans l'archive.  Ainsi, l'archive résultante est autonome : elle contient la fermeture des éléments de dépôt exportés."
 
 #. type: item
-#: doc/guix.texi:4262
+#: doc/guix.texi:4771
 #, no-wrap
 msgid "--import"
 msgstr "--import"
 
 #. type: table
-#: doc/guix.texi:4267
-msgid "Read an archive from the standard input, and import the files listed therein into the store.  Abort if the archive has an invalid digital signature, or if it is signed by a public key not among the authorized keys (see @code{--authorize} below.)"
-msgstr "Lire une archive depuis l'entrée standard et importer les fichiers inclus dans le dépôt.  Annuler si l'archive a une signature invalide ou si elle est signée par une clef publique qui ne se trouve pas dans le clefs autorisées (voir @code{--authorize} plus bas.)"
+#: doc/guix.texi:4776
+msgid "Read an archive from the standard input, and import the files listed therein into the store.  Abort if the archive has an invalid digital signature, or if it is signed by a public key not among the authorized keys (see @option{--authorize} below)."
+msgstr "Lire une archive depuis l'entrée standard et importer les fichiers inclus dans le dépôt.  Annuler si l'archive a une signature invalide ou si elle est signée par une clef publique qui ne se trouve pas dans le clefs autorisées (voir @option{--authorize} plus bas.)"
 
 #. type: item
-#: doc/guix.texi:4268
+#: doc/guix.texi:4777
 #, no-wrap
 msgid "--missing"
 msgstr "--missing"
 
 #. type: table
-#: doc/guix.texi:4272
+#: doc/guix.texi:4781
 msgid "Read a list of store file names from the standard input, one per line, and write on the standard output the subset of these files missing from the store."
 msgstr "Liste une liste de noms de fichiers du dépôt sur l'entrée standard, un par ligne, et écrit sur l'entrée standard le sous-ensemble de ces fichiers qui manquent dans le dépôt."
 
 #. type: item
-#: doc/guix.texi:4273
+#: doc/guix.texi:4782
 #, no-wrap
 msgid "--generate-key[=@var{parameters}]"
 msgstr "--generate-key[=@var{paramètres}]"
 
 #. type: cindex
-#: doc/guix.texi:4274
+#: doc/guix.texi:4783
 #, no-wrap
 msgid "signing, archives"
 msgstr "signature, archives"
 
 #. type: table
-#: doc/guix.texi:4279
-msgid "Generate a new key pair for the daemon.  This is a prerequisite before archives can be exported with @code{--export}.  Note that this operation usually takes time, because it needs to gather enough entropy to generate the key pair."
-msgstr "Générer une nouvelle paire de clefs pour le démon.  Cela est un prérequis avant que les archives ne puissent être exportées avec @code{--export}.  Remarquez que cette opération prend généralement du temps parce qu'elle doit récupère suffisamment d'entropie pour générer la paire de clefs."
+#: doc/guix.texi:4790
+msgid "Generate a new key pair for the daemon.  This is a prerequisite before archives can be exported with @option{--export}.  This operation is usually instantaneous but it can take time if the system's entropy pool needs to be refilled.  On Guix System, @code{guix-service-type} takes care of generating this key pair the first boot."
+msgstr "Génére une nouvelle paire de clefs pour le démon.  C' est un prérequis avant que les archives ne puissent être exportées avec @option{--export}.  Cette opération est habituellement instantanée mais elle peut prendre du temps parce qu'elle doit récupérer suffisamment d'entropie pour générer la paire de clefs. Sur Guix System, @code{guix-service-type}prend soin de générer cette paire de clés au premier démarrage."
 
 #. type: table
-#: doc/guix.texi:4289
-msgid "The generated key pair is typically stored under @file{/etc/guix}, in @file{signing-key.pub} (public key) and @file{signing-key.sec} (private key, which must be kept secret.)  When @var{parameters} is omitted, an ECDSA key using the Ed25519 curve is generated, or, for Libgcrypt versions before 1.6.0, it is a 4096-bit RSA key.  Alternatively, @var{parameters} can specify @code{genkey} parameters suitable for Libgcrypt (@pxref{General public-key related Functions, @code{gcry_pk_genkey},, gcrypt, The Libgcrypt Reference Manual})."
-msgstr "La paire de clefs générée est typiquement stockée dans @file{/etc/guix}, dans @file{signing-key.pub} (clef publique) et @file{signing-key.sec} (clef privée, qui doit rester secrète).  Lorsque @var{paramètres} est omis, une clef ECDSA utilisant la courbe Ed25519 est générée ou pour les version de libgcrypt avant 1.6.0, une clef RSA de 4096 bits.  Autrement, @var{paramètres} peut spécifier les paramètres @code{genkey} adaptés pour libgcrypt (@pxref{General public-key related Functions, @code{gcry_pk_genkey},, gcrypt, The Libgcrypt Reference Manual})."
+#: doc/guix.texi:4800
+msgid "The generated key pair is typically stored under @file{/etc/guix}, in @file{signing-key.pub} (public key) and @file{signing-key.sec} (private key, which must be kept secret).  When @var{parameters} is omitted, an ECDSA key using the Ed25519 curve is generated, or, for Libgcrypt versions before 1.6.0, it is a 4096-bit RSA key.  Alternatively, @var{parameters} can specify @code{genkey} parameters suitable for Libgcrypt (@pxref{General public-key related Functions, @code{gcry_pk_genkey},, gcrypt, The Libgcrypt Reference Manual})."
+msgstr "La paire de clés générée est typiquement stockée dans @file{/etc/guix}, dans @file{signing-key.pub} (clé publique) et @file{signing-key.sec} (clé privée, qui doit rester secrète).  Lorsque @var{paramètres} est omis, une clé ECDSA utilisant la courbe Ed25519 est générée, ou pour les version de libgcrypt avant 1.6.0, une clé RSA de 4096 bits.  Autrement, @var{paramètres} peut spécifier les paramètres @code{genkey} adaptés pour libgcrypt (@pxref{General public-key related Functions, @code{gcry_pk_genkey},, gcrypt, The Libgcrypt Reference Manual})."
 
 #. type: item
-#: doc/guix.texi:4290
+#: doc/guix.texi:4801
 #, no-wrap
 msgid "--authorize"
 msgstr "--authorize"
 
 #. type: cindex
-#: doc/guix.texi:4291
+#: doc/guix.texi:4802
 #, no-wrap
 msgid "authorizing, archives"
 msgstr "autorisation, archives"
 
 #. type: table
-#: doc/guix.texi:4295
+#: doc/guix.texi:4806
 msgid "Authorize imports signed by the public key passed on standard input.  The public key must be in ``s-expression advanced format''---i.e., the same format as the @file{signing-key.pub} file."
 msgstr "Autoriser les imports signés par la clef publique passée sur l'entrée standard.  La clef publique doit être au « format avancé s-expression  » — c.-à-d.@: le même format que le fichier @file{signing-key.pub}."
 
 #. type: table
-#: doc/guix.texi:4302
+#: doc/guix.texi:4813
 msgid "The list of authorized keys is kept in the human-editable file @file{/etc/guix/acl}.  The file contains @url{https://people.csail.mit.edu/rivest/Sexp.txt, ``advanced-format s-expressions''} and is structured as an access-control list in the @url{https://theworld.com/~cme/spki.txt, Simple Public-Key Infrastructure (SPKI)}."
-msgstr "La liste des clefs autorisées est gardée dans un fichier modifiable par des humains dans @file{/etc/guix/acl}.  Le fichier contient des @url{https://people.csail.mit.edu/rivest/Sexp.txt, « s-expressions au format avancé »} et est structuré comme une liste de contrôle d'accès dans l'@url{https://theworld.com/~cme/spki.txt, infrastructure à clefs publiques simple (SPKI)}."
+msgstr "La liste des clés autorisées est gardée dans un fichier modifiable par des humains dans @file{/etc/guix/acl}.  Le fichier contient des @url{https://people.csail.mit.edu/rivest/Sexp.txt, « s-expressions au format avancé »} et est structuré comme une liste de contrôle d'accès dans l'@url{https://theworld.com/~cme/spki.txt, infrastructure à clefs publiques simple (SPKI)}."
 
 #. type: item
-#: doc/guix.texi:4303
+#: doc/guix.texi:4814
 #, no-wrap
 msgid "--extract=@var{directory}"
 msgstr "--extract=@var{répertoire}"
 
 #. type: itemx
-#: doc/guix.texi:4304
+#: doc/guix.texi:4815
 #, no-wrap
 msgid "-x @var{directory}"
 msgstr "-x @var{répertoire}"
 
 #. type: table
-#: doc/guix.texi:4308
+#: doc/guix.texi:4819
 msgid "Read a single-item archive as served by substitute servers (@pxref{Substitutes}) and extract it to @var{directory}.  This is a low-level operation needed in only very narrow use cases; see below."
 msgstr "Lit une archive à un seul élément telle que servie par un serveur de substituts (@pxref{Substituts}) et l'extrait dans @var{répertoire}.  C'est une opération de bas niveau requise seulement dans de rares cas d'usage ; voir plus loin."
 
 #. type: table
-#: doc/guix.texi:4311
+#: doc/guix.texi:4822
 msgid "For example, the following command extracts the substitute for Emacs served by @code{@value{SUBSTITUTE-SERVER}} to @file{/tmp/emacs}:"
 msgstr "Par exemple, la commande suivante extrait le substitut pour Emacs servi par @code{@value{SUBSTITUTE-SERVER}} dans @file{/tmp/emacs} :"
 
 #. type: example
-#: doc/guix.texi:4316
+#: doc/guix.texi:4827
 #, no-wrap
 msgid ""
 "$ wget -O - \\\n"
-"  https://@value{SUBSTITUTE-SERVER}/nar/@dots{}-emacs-24.5 \\\n"
-"  | bunzip2 | guix archive -x /tmp/emacs\n"
+"  https://@value{SUBSTITUTE-SERVER}/nar/gzip/@dots{}-emacs-24.5 \\\n"
+"  | gunzip | guix archive -x /tmp/emacs\n"
 msgstr ""
 "$ wget -O - \\\n"
-"  https://@value{SUBSTITUTE-SERVER}/nar/@dots{}-emacs-24.5 \\\n"
-"  | bunzip2 | guix archive -x /tmp/emacs\n"
+"  https://@value{SUBSTITUTE-SERVER}/nar/gzip/@dots{}-emacs-24.5 \\\n"
+"  | gunzip | guix archive -x /tmp/emacs\n"
 
 #. type: table
-#: doc/guix.texi:4323
+#: doc/guix.texi:4834
 msgid "Single-item archives are different from multiple-item archives produced by @command{guix archive --export}; they contain a single store item, and they do @emph{not} embed a signature.  Thus this operation does @emph{no} signature verification and its output should be considered unsafe."
 msgstr "Les archives à un seul élément sont différentes des archives à plusieurs éléments produites par @command{guix archive --export} ; elles contiennent un seul élément du dépôt et elles n'embarquent @emph{pas} de signature.  Ainsi cette opération ne vérifie @emph{pas} de signature et sa sortie devrait être considérée comme non sûre."
 
 #. type: table
-#: doc/guix.texi:4326
-msgid "The primary purpose of this operation is to facilitate inspection of archive contents coming from possibly untrusted substitute servers."
-msgstr "Le but principal de cette opération est de faciliter l'inspection du contenu des archives venant de serveurs auxquels on ne fait potentiellement pas confiance."
+#: doc/guix.texi:4838
+msgid "The primary purpose of this operation is to facilitate inspection of archive contents coming from possibly untrusted substitute servers (@pxref{Invoking guix challenge})."
+msgstr "Le but principal de cette opération est de faciliter l'inspection du contenu des archives venant de serveurs auxquels on ne fait potentiellement pas confiance. (@pxref{Invoquer guix challenge})."
+
+#. type: item
+#: doc/guix.texi:4839
+#, no-wrap
+msgid "--list"
+msgstr "--list"
+
+#. type: itemx
+#: doc/guix.texi:4840 doc/guix.texi:11083 doc/guix.texi:11130
+#, no-wrap
+msgid "-t"
+msgstr "-t"
+
+#. type: table
+#: doc/guix.texi:4844
+msgid "Read a single-item archive as served by substitute servers (@pxref{Substitutes}) and print the list of files it contains, as in this example:"
+msgstr "Lit une archive à un seul élément telle que servie par un serveur de substituts (@pxref{Substitutes}) et affiche la liste des fichiers qu'elle contient, comme dans cet exemple :"
+
+#. type: example
+#: doc/guix.texi:4849
+#, no-wrap
+msgid ""
+"$ wget -O - \\\n"
+"  https://@value{SUBSTITUTE-SERVER}/nar/lzip/@dots{}-emacs-26.3 \\\n"
+"  | lzip -d | guix archive -t\n"
+msgstr ""
+"$ wget -O - \\\n"
+"  https://@value{SUBSTITUTE-SERVER}/nar/lzip/@dots{}-emacs-26.3 \\\n"
+"  | lzip -d | guix archive -t\n"
+
+#. type: cindex
+#: doc/guix.texi:4860
+#, no-wrap
+msgid "@command{guix pull}, configuration file"
+msgstr "@command{guix pull}, fichier de configuration"
+
+#. type: cindex
+#: doc/guix.texi:4861
+#, no-wrap
+msgid "configuration of @command{guix pull}"
+msgstr "configuration de @command{guix pull}"
+
+#. type: Plain text
+#: doc/guix.texi:4872
+msgid "Guix and its package collection are updated by running @command{guix pull} (@pxref{Invoking guix pull}).  By default @command{guix pull} downloads and deploys Guix itself from the official GNU@tie{}Guix repository.  This can be customized by defining @dfn{channels} in the @file{~/.config/guix/channels.scm} file.  A channel specifies a URL and branch of a Git repository to be deployed, and @command{guix pull} can be instructed to pull from one or more channels.  In other words, channels can be used to @emph{customize} and to @emph{extend} Guix, as we will see below.  Guix is able to take into account security concerns and deal with authenticated updates."
+msgstr "Guix et sa collection de paquets sont mis à jour en lançant @command{guix pull} (@pxref{Invoking guix pull}).  Par défaut @command{guix pull} télécharge et déploie Guix lui-même depuis le dépôt officiel de GNU@tie{}Guix.  Cela peut être personnalisé en définissant des @dfn{canaux} dans le fichier @file{~/.config/guix/channels.scm}.  Un canal spécifie l'URL et la branche d'un répertoire Git à déployer et on peut demander à @command{guix pull} de récupérer un ou plusieurs canaux.  En d'autres termes, les canaux peuvent être utilisés pour @emph{personnaliser} et pour @emph{étendre} Guix, comme on le verra plus bas. Guix est en mesure de prendre en compte les préoccupations de sécurité et de traiter les mises à jour authentifiées."
 
 #. type: cindex
-#: doc/guix.texi:4334
+#: doc/guix.texi:4889
+#, no-wrap
+msgid "extending the package collection (channels)"
+msgstr "étendre la collection de paquets (canaux)"
+
+#. type: cindex
+#: doc/guix.texi:4890
+#, no-wrap
+msgid "variant packages (channels)"
+msgstr "des variantes de paquets (canaux)"
+
+#. type: Plain text
+#: doc/guix.texi:4894
+msgid "You can specify @emph{additional channels} to pull from. To use a channel, write @code{~/.config/guix/channels.scm} to instruct @command{guix pull} to pull from it @emph{in addition} to the default Guix channel(s):"
+msgstr "Vous pouvez spécifier des @emph{canaux supplémentaires} à utiliser. Pour utiliser un canal, écrivez dans @code{~/.config/guix/channels.scm} pour dire à @command{guix pull} de récupérer votre canal personnel @emph{en plus} des canaux par défaut de Guix :"
+
+#. type: vindex
+#: doc/guix.texi:4895
+#, no-wrap
+msgid "%default-channels"
+msgstr "%default-channels"
+
+#. type: lisp
+#: doc/guix.texi:4902
+#, no-wrap
+msgid ""
+";; Add variant packages to those Guix provides.\n"
+"(cons (channel\n"
+"        (name 'variant-packages)\n"
+"        (url \"https://example.org/variant-packages.git\"))\n"
+"      %default-channels)\n"
+msgstr ""
+";; Ajouter des variantes de paquets à ceux fournis par Guix.\n"
+"(cons (channel\n"
+"        (name 'my-personal-packages)\n"
+"        (url \"https://example.org/personal-packages.git\"))\n"
+"      %default-channels)\n"
+
+#. type: Plain text
+#: doc/guix.texi:4912
+msgid "Note that the snippet above is (as always!)@: Scheme code; we use @code{cons} to add a channel the list of channels that the variable @code{%default-channels} is bound to (@pxref{Pairs, @code{cons} and lists,, guile, GNU Guile Reference Manual}).  With this file in place, @command{guix pull} builds not only Guix but also the package modules from your own repository.  The result in @file{~/.config/guix/current} is the union of Guix with your own package modules:"
+msgstr "Remarquez que le bout de code au-dessus est (comme toujours !)@: du code Scheme ; nous utilisons @code{cons} pour ajouter un canal à la liste des canaux que la variable @code{%default-channels} représente (@pxref{Pairs, @code{cons} and lists,, guile, GNU Guile Reference Manual}).  Avec ce fichier en place, @command{guix pull} construit non seulement Guix mais aussi les modules de paquets de votre propre dépôt.  Le résultat dans @file{~/.config/guix/current} est l'union de Guix et de vos propres modules de paquets :"
+
+#. type: example
+#: doc/guix.texi:4927
+#, no-wrap
+msgid ""
+"$ guix pull --list-generations\n"
+"@dots{}\n"
+"Generation 19\tAug 27 2018 16:20:48\n"
+"  guix d894ab8\n"
+"    repository URL: https://git.savannah.gnu.org/git/guix.git\n"
+"    branch: master\n"
+"    commit: d894ab8e9bfabcefa6c49d9ba2e834dd5a73a300\n"
+"  variant-packages dd3df5e\n"
+"    repository URL: https://example.org/variant-packages.git\n"
+"    branch: master\n"
+"    commit: dd3df5e2c8818760a8fc0bd699e55d3b69fef2bb\n"
+"  11 new packages: variant-gimp, variant-emacs-with-cool-features, @dots{}\n"
+"  4 packages upgraded: emacs-racket-mode@@0.0.2-2.1b78827, @dots{}\n"
+msgstr ""
+"$ guix pull --list-generations\n"
+"@dots{}\n"
+"Génération 19\tAug 27 2018 16:20:48\n"
+"  guix d894ab8\n"
+"    URL du dépôt : https://git.savannah.gnu.org/git/guix.git\n"
+"    branche : master\n"
+"    commit : d894ab8e9bfabcefa6c49d9ba2e834dd5a73a300\n"
+"  variant-packages dd3df5e\n"
+"    URL du dépôt : https://example.org/personal-packages.git\n"
+"    branche : master\n"
+"    commit : dd3df5e2c8818760a8fc0bd699e55d3b69fef2bb\n"
+"  11 nouveaux paquets : variant-gimp, variant-emacs-with-cool-features, @dots{}\n"
+"  4 paquets mis à jour : emacs-racket-mode@@0.0.2-2.1b78827, @dots{}\n"
+
+#. type: Plain text
+#: doc/guix.texi:4935
+msgid "The output of @command{guix pull} above shows that Generation@tie{}19 includes both Guix and packages from the @code{variant-personal-packages} channel.  Among the new and upgraded packages that are listed, some like @code{variant-gimp} and @code{variant-emacs-with-cool-features} might come from @code{variant-packages}, while others come from the Guix default channel."
+msgstr "La sortie de @command{guix pull} ci-dessus montre que la génération@tie{}19 contient aussi bien Guix que les paquets du canal @code{variant-packages}.  Parmi les nouveaux paquets et les paquets mis à jour qui sont listés, certains comme @code{variant-gimp} et @code{variant-emacs-with-cool-features} peuvent provenir de @code{variant-packages}, tandis que d'autres viennent du canal par défaut de Guix."
+
+#. type: Plain text
+#: doc/guix.texi:4944
+msgid "The channel called @code{guix} specifies where Guix itself---its command-line tools as well as its package collection---should be downloaded.  For instance, suppose you want to update from another copy of the Guix repository at @code{example.org}, and specifically the @code{super-hacks} branch, you can write in @code{~/.config/guix/channels.scm} this specification:"
+msgstr "Le canal nommé @code{guix} spécifie où Guix lui-même — ses outils en ligne de commande ainsi que sa collection de paquets — seront téléchargés.  Par exemple, supposons que vous voulez effectuer les mises à jour depuis votre propre copie du dépôt Guix sur @code{example.org}, et plus particulièrement depuis la branche @code{super-hacks}.  Vous pouvez écrire cette spécification dans @code{~/.config/guix/channels.scm} :"
+
+#. type: lisp
+#: doc/guix.texi:4951
+#, no-wrap
+msgid ""
+";; Tell 'guix pull' to use another repo.\n"
+"(list (channel\n"
+"        (name 'guix)\n"
+"        (url \"https://example.org/another-guix.git\")\n"
+"        (branch \"super-hacks\")))\n"
+msgstr ""
+";; Dit à « guix pull » d'utiliser un autre dépôt.\n"
+"(list (channel\n"
+"        (name 'guix)\n"
+"        (url \"https://example.org/my-guix.git\")\n"
+"        (branch \"super-hacks\")))\n"
+
+#. type: Plain text
+#: doc/guix.texi:4957
+msgid "From there on, @command{guix pull} will fetch code from the @code{super-hacks} branch of the repository at @code{example.org}.  The authentication concern is addressed below ((@pxref{Channel Authentication})."
+msgstr "Maintenant, @command{guix pull} récupérera le code depuis la branche @code{super-hacks} du dépôt sur @code{example.org}. La question de l'authentification est traitée ci-dessous ((@pxref{Channel Authentication})."
+
+#. type: Plain text
+#: doc/guix.texi:4968
+msgid "The @command{guix pull --list-generations} output above shows precisely which commits were used to build this instance of Guix.  We can thus replicate it, say, on another machine, by providing a channel specification in @file{~/.config/guix/channels.scm} that is ``pinned'' to these commits:"
+msgstr "La sortie de @command{guix pull --list-generations} ci-dessus montre précisément quels commits ont été utilisés pour construire cette instance de Guix.  Nous pouvons donc la répliquer, disons sur une autre machine, en fournissant une spécification de canal dans @file{~/.config/guix/channels.scm} qui est « épinglé » à ces commits :"
+
+#. type: lisp
+#: doc/guix.texi:4979
+#, no-wrap
+msgid ""
+";; Deploy specific commits of my channels of interest.\n"
+"(list (channel\n"
+"       (name 'guix)\n"
+"       (url \"https://git.savannah.gnu.org/git/guix.git\")\n"
+"       (commit \"6298c3ffd9654d3231a6f25390b056483e8f407c\"))\n"
+"      (channel\n"
+"       (name 'variant-packages)\n"
+"       (url \"https://example.org/variant-packages.git\")\n"
+"       (commit \"dd3df5e2c8818760a8fc0bd699e55d3b69fef2bb\")))\n"
+msgstr ""
+";; Déployer des commits précis de mes canaux préférés.\n"
+"(list (channel\n"
+"       (name 'guix)\n"
+"       (url \"https://git.savannah.gnu.org/git/guix.git\")\n"
+"       (commit \"6298c3ffd9654d3231a6f25390b056483e8f407c\"))\n"
+"      (channel\n"
+"       (name 'variant-packages)\n"
+"       (url \"https://example.org/variant-packages.git\")\n"
+"       (commit \"dd3df5e2c8818760a8fc0bd699e55d3b69fef2bb\")))\n"
+
+#. type: Plain text
+#: doc/guix.texi:4986
+msgid "The @command{guix describe --format=channels} command can even generate this list of channels directly (@pxref{Invoking guix describe}).  The resulting file can be used with the -C options of @command{guix pull} (@pxref{Invoking guix pull}) or @command{guix time-machine} (@pxref{Invoking guix time-machine})."
+msgstr "La commande @command{guix describe --format=channels} peut même générer cette liste de canaux directement (@pxref{Invoking guix describe}).  Le fichier qui en résulte peut être utilisé avec l'option -C de @command{guix pull} (@pxref{Invoking guix pull}) ou @command{guix time-machine} (@pxref{Invoking guix time-machine})."
+
+#. type: Plain text
+#: doc/guix.texi:4993
+msgid "At this point the two machines run the @emph{exact same Guix}, with access to the @emph{exact same packages}.  The output of @command{guix build gimp} on one machine will be exactly the same, bit for bit, as the output of the same command on the other machine.  It also means both machines have access to all the source code of Guix and, transitively, to all the source code of every package it defines."
+msgstr "À ce moment les deux machines font tourner @emph{exactement le même Guix}, avec l'accès @emph{exactement aux même paquets}.  La sortie de @command{guix build gimp} sur une machine sera exactement la même, au bit près, que la sortie de la même commande sur l'autre machine.  Cela signifie aussi que les deux machines ont accès à tous les codes sources de Guix, et transitivement, à tous les codes sources de tous les paquets qu'il définit."
+
+#. type: Plain text
+#: doc/guix.texi:4998
+msgid "This gives you super powers, allowing you to track the provenance of binary artifacts with very fine grain, and to reproduce software environments at will---some sort of ``meta reproducibility'' capabilities, if you will.  @xref{Inferiors}, for another way to take advantage of these super powers."
+msgstr "Cela vous donne des super-pouvoirs, ce qui vous permet de suivre la provenance des artefacts binaires avec un grain très fin et de reproduire les environnements logiciels à volonté — une sorte de capacité de « méta-reproductibilité », si vous voulez.  @xref{Inferiors}, pour une autre manière d'utiliser ces super-pouvoirs."
+
+#. type: anchor{#1}
+#: doc/guix.texi:5003
+msgid "channel-authentication"
+msgstr "channel-authentication"
+
+#. type: Plain text
+#: doc/guix.texi:5009
+msgid "The @command{guix pull} and @command{guix time-machine} commands @dfn{authenticate} the code retrieved from channels: they make sure each commit that is fetched is signed by an authorized developer.  The goal is to protect from unauthorized modifications to the channel that would lead users to run malicious code."
+msgstr "Les commandes @command{guix pull} et @command{guix time-machine} @dfn{authenticate} téléchargent et contrôlent le code récupéré sur les canaux : elles s'assurent que chaque commit récupéré est signé par un·e développeur·euse autorisé·e.  L'objectif est de protéger contre les modifications non autorisées du canal qui conduiraient les utilisateur·rice·s à exécuter du code malveillant."
+
+#. type: Plain text
+#: doc/guix.texi:5014
+msgid "As a user, you must provide a @dfn{channel introduction} in your channels file so that Guix knows how to authenticate its first commit.  A channel specification, including its introduction, looks something along these lines:"
+msgstr "En tant qu'utilisateur, vous devez fournir une @dfn{introduction de canal} dans votre fichier de canaux afin que Guix sache comment authentifier son premier commit.  Une spécification de canal, y compris son introduction, ressemble à quelque chose de ce genre :"
+
+#. type: lisp
+#: doc/guix.texi:5024
+#, no-wrap
+msgid ""
+"(channel\n"
+"  (name 'some-channel)\n"
+"  (url \"https://example.org/some-channel.git\")\n"
+"  (introduction\n"
+"   (make-channel-introduction\n"
+"    \"6f0d8cc0d88abb59c324b2990bfee2876016bb86\"\n"
+"    (openpgp-fingerprint\n"
+"     \"CABB A931 C0FF EEC6 900D  0CFB 090B 1199 3D9A EBB5\"))))\n"
+msgstr ""
+"(channel\n"
+"  (name 'some-channel)\n"
+"  (url \"https://example.org/some-channel.git\")\n"
+"  (introduction\n"
+"   (make-channel-introduction\n"
+"    \"6f0d8cc0d88abb59c324b2990bfee2876016bb86\"\n"
+"    (openpgp-fingerprint\n"
+"     \"CABB A931 C0FF EEC6 900D  0CFB 090B 1199 3D9A EBB5\"))))\n"
+
+#. type: Plain text
+#: doc/guix.texi:5030
+msgid "The specification above shows the name and URL of the channel.  The call to @code{make-channel-introduction} above specifies that authentication of this channel starts at commit @code{6f0d8cc@dots{}}, which is signed by the OpenPGP key with fingerprint @code{CABB A931@dots{}}."
+msgstr "La spécification ci-dessus indique le nom et l'URL du canal.  L'appel à @code{make-channel-introduction} ci-dessus spécifie que l'authentification de ce canal commence au commit @code{6f0d8cc@dots{}}, qui est signé par la clé OpenPGP avec l'empreinte digitale @code{CABB A931@dots{}}."
+
+#. type: Plain text
+#: doc/guix.texi:5036
+msgid "For the main channel, called @code{guix}, you automatically get that information from your Guix installation.  For other channels, include the channel introduction provided by the channel authors in your @file{channels.scm} file.  Make sure you retrieve the channel introduction from a trusted source since that is the root of your trust."
+msgstr "Pour le canal principal, appelé @code{guix}, vous obtenez automatiquement cette information à partir de votre installation de Guix.  Pour les autres canaux, incluez l'introduction du canal fournie par les auteurs du canal dans votre fichier @file{channels.scm}.  Assurez-vous de récupérer l'introduction du canal à partir d'une source fiable, car c'est la base de votre confiance."
+
+#. type: Plain text
+#: doc/guix.texi:5038
+msgid "If you're curious about the authentication mechanics, read on!"
+msgstr "Si vous êtes curieux·euse à propos des mécanismes d'authentification, lisez !"
+
+#. type: cindex
+#: doc/guix.texi:5042
+#, no-wrap
+msgid "personal packages (channels)"
+msgstr "paquets personnels (canaux)"
+
+#. type: cindex
+#: doc/guix.texi:5043
+#, no-wrap
+msgid "channels, for personal packages"
+msgstr "canaux, pour des paquets personnels"
+
+#. type: Plain text
+#: doc/guix.texi:5051
+msgid "Let's say you have a bunch of custom package variants or personal packages that you think would make little sense to contribute to the Guix project, but would like to have these packages transparently available to you at the command line.  You would first write modules containing those package definitions (@pxref{Package Modules}), maintain them in a Git repository, and then you and anyone else can use it as an additional channel to get packages from.  Neat, no?"
+msgstr "Disons que vous avez un ensemble de paquets personnels ou de variantes personnalisées dont vous pensez qu'il ne vaudrait pas le coup de contribuer au projet Guix, mais que vous voudriez pouvoir utiliser de manière transparente sur la ligne de commande : vous écririez d'abord des modules contenant ces définitions de paquets (@pxref{Package Modules}), en les maintenant dans un dépôt Git, puis vous ou n'importe qui d'autre pourrait l'utiliser comme un canal supplémentaire où trouver ces paquets.  Sympa, non ?"
+
+#. type: quotation
+#: doc/guix.texi:5055 doc/guix.texi:13173 doc/guix.texi:18777
+#: doc/guix.texi:18784
+#, no-wrap
+msgid "Warning"
+msgstr "Attention"
+
+#. type: quotation
+#: doc/guix.texi:5059
+msgid "Before you, dear user, shout---``woow this is @emph{soooo coool}!''---and publish your personal channel to the world, we would like to share a few words of caution:"
+msgstr "Avant que vous, cher utilisateur, ne vous exclamiez « Oh mais c'est @emph{super génial} ! » et que vous ne publiez vos canaux personnels publiquement, nous voudrions vous donner quelques avertissements :"
+
+#. type: itemize
+#: doc/guix.texi:5067
+msgid "Before publishing a channel, please consider contributing your package definitions to Guix proper (@pxref{Contributing}).  Guix as a project is open to free software of all sorts, and packages in Guix proper are readily available to all Guix users and benefit from the project's quality assurance process."
+msgstr "Avant de publier un canal, envisagez de contribuer vos définitions de paquets dans Guix (@pxref{Contributing}).  Guix en tant que projet est ouvert à tous les logiciels libres de toutes sortes, et les paquets dans Guix sont déjà disponibles à tous les utilisateurs de Guix et bénéficient des processus d'assurance qualité du projet."
+
+#. type: itemize
+#: doc/guix.texi:5076
+msgid "When you maintain package definitions outside Guix, we, Guix developers, consider that @emph{the compatibility burden is on you}.  Remember that package modules and package definitions are just Scheme code that uses various programming interfaces (APIs).  We want to remain free to change these APIs to keep improving Guix, possibly in ways that break your channel.  We never change APIs gratuitously, but we will @emph{not} commit to freezing APIs either."
+msgstr "Lorsque vous maintenez des définitions de paquets en dehors de Guix, nous, les développeur·euse·s de Guix, considérons que @emph{la charge de la compatibilité vous incombe}.  Rappelez-vous que les modules de paquets et les définitions de paquets ne sont que du code Scheme qui utilise diverses interfaces de programmation (API).  Nous souhaitons rester libres de changer ces API pour continuer à améliorer Guix, éventuellement d'une manière qui casse votre canal.  Nous ne changeons jamais l'API gratuitement, mais nous ne nous engageons @emph{pas} à geler les API non plus."
+
+#. type: itemize
+#: doc/guix.texi:5080
+msgid "Corollary: if you're using an external channel and that channel breaks, please @emph{report the issue to the channel authors}, not to the Guix project."
+msgstr "Corollaire : si vous utilisez un canal externe et que le canal est cassé, merci de @emph{rapporter le problème à l'auteur du canal}, pas au projet Guix."
+
+#. type: quotation
+#: doc/guix.texi:5087
+msgid "You've been warned! Having said this, we believe external channels are a practical way to exert your freedom to augment Guix' package collection and to share your improvements, which are basic tenets of @uref{https://www.gnu.org/philosophy/free-sw.html, free software}.  Please email us at @email{guix-devel@@gnu.org} if you'd like to discuss this."
+msgstr "Vous avez été prévenus !  Maintenant, nous pensons que des canaux externes sont une manière pratique d'exercer votre liberté pour augmenter la collection de paquets de Guix et de partager vos améliorations, qui sont les principes de bases du @uref{https://www.gnu.org/philosophy/free-sw.html, logiciel libre}.  Contactez-nous par courriel sur @email{guix-devel@@gnu.org} si vous souhaitez discuter à ce propos."
+
+#. type: Plain text
+#: doc/guix.texi:5099
+msgid "To create a channel, create a Git repository containing your own package modules and make it available.  The repository can contain anything, but a useful channel will contain Guile modules that export packages.  Once you start using a channel, Guix will behave as if the root directory of that channel's Git repository has been added to the Guile load path (@pxref{Load Paths,,, guile, GNU Guile Reference Manual}).  For example, if your channel contains a file at @file{my-packages/my-tools.scm} that defines a Guile module, then the module will be available under the name @code{(my-packages my-tools)}, and you will be able to use it like any other module (@pxref{Modules,,, guile, GNU Guile Reference Manual})."
+msgstr "Pour créer un canal, créez un dépôt Git contenant vos propres modules de paquets et rendez-le disponible.  Le dépôt peut contenir tout ce que vous voulez, mais un canal utile contiendra des modules Guile qui exportent des paquets.  Une fois que vous avez démarré un canal, Guix se comportera comme si le répertoire de la racine du dépôt Git de ce canal était ajouté au chemin de chargement de Guile (@pxref{Load Paths,,, guile, GNU Guile Reference Manual}).  Par exemple, si votre canal contient un fichier @file{mes-paquets/mes-outils.scm} qui définit un module Guile, le module sera disponible sous le nom de @code{(mes-paquets mes-outils)} et vous pourrez l'utiliser comme les autres modules (@pxref{Modules,,, guile, GNU Guile Reference Manual})."
+
+#. type: Plain text
+#: doc/guix.texi:5104
+msgid "As a channel author, consider bundling authentication material with your channel so that users can authenticate it.  @xref{Channel Authentication}, and @ref{Specifying Channel Authorizations}, for info on how to do it."
+msgstr "En tant qu'auteur.e d'un canal, envisagez de regrouper le nécessaire d'authentification avec votre canal afin que les utilisatrice·eur·s puissent l'authentifier.  @xref{Channel Authentication}, et @ref{Specifying Channel Authorizations}, pour savoir comment les utiliser."
+
+#. type: cindex
+#: doc/guix.texi:5109
+#, no-wrap
+msgid "subdirectory, channels"
+msgstr "sous-répertoire, canaux"
+
+#. type: Plain text
+#: doc/guix.texi:5113
+msgid "As a channel author, you may want to keep your channel modules in a sub-directory.  If your modules are in the sub-directory @file{guix}, you must add a meta-data file @file{.guix-channel} that contains:"
+msgstr "En tant qu'auteur.e d'un canal, vous voudriez garder vos modules de canal dans un sous-répertoire. Si vos modules sont dans le sous-répertoire @file{guix}, vous devez ajouter un fichier de métadonnées @file{.guix-channel} qui contient :"
+
+#. type: lisp
+#: doc/guix.texi:5118
+#, no-wrap
+msgid ""
+"(channel\n"
+"  (version 0)\n"
+"  (directory \"guix\"))\n"
+msgstr ""
+"(channel\n"
+"  (version 0)\n"
+"  (directory \"guix\"))\n"
+
+#. type: cindex
+#: doc/guix.texi:5123
+#, no-wrap
+msgid "dependencies, channels"
+msgstr "dépendances, canaux"
+
+#. type: cindex
+#: doc/guix.texi:5124
+#, no-wrap
+msgid "meta-data, channels"
+msgstr "métadonnées, canaux"
+
+#. type: Plain text
+#: doc/guix.texi:5129
+msgid "Channel authors may decide to augment a package collection provided by other channels.  They can declare their channel to be dependent on other channels in a meta-data file @file{.guix-channel}, which is to be placed in the root of the channel repository."
+msgstr "Les auteurs de canaux peuvent décider d'augmenter une collection de paquets fournie par d'autres canaux.  Ils peuvent déclarer leur canal comme dépendant d'autres canaux dans le fichier de métadonnées @file{.guix-channel} qui doit être placé à la racine de dépôt du canal."
+
+#. type: Plain text
+#: doc/guix.texi:5131
+msgid "The meta-data file should contain a simple S-expression like this:"
+msgstr "Le fichier de métadonnées devrait contenir une S-expression simple comme cela :"
+
+#. type: lisp
+#: doc/guix.texi:5139
+#, no-wrap
+msgid ""
+"(channel\n"
+" (version 0)\n"
+" (dependencies\n"
+"  (channel\n"
+"   (name 'some-collection)\n"
+"   (url \"https://example.org/first-collection.git\")\n"
+"\n"
+msgstr ""
+"(channel\n"
+" (version 0)\n"
+" (dependencies\n"
+"  (channel\n"
+"   (name 'some-collection)\n"
+"   (url \"https://example.org/first-collection.git\")\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:5151
+#, no-wrap
+msgid ""
+"   ;; The 'introduction' bit below is optional: you would\n"
+"   ;; provide it for dependencies that can be authenticated.\n"
+"   (introduction\n"
+"    (channel-introduction\n"
+"      (version 0)\n"
+"      (commit \"a8883b58dc82e167c96506cf05095f37c2c2c6cd\")\n"
+"      (signer \"CABB A931 C0FF EEC6 900D  0CFB 090B 1199 3D9A EBB5\"))))\n"
+"  (channel\n"
+"   (name 'some-other-collection)\n"
+"   (url \"https://example.org/second-collection.git\")\n"
+"   (branch \"testing\"))))\n"
+msgstr ""
+"   ;; La partie « introduction » ci-dessous est facultative : vous la\n"
+"   ;; fournissez pour les dépendances qui peuvent être authentifiées.\n"
+"   (introduction\n"
+"    (channel-introduction\n"
+"      (version 0)\n"
+"      (commit \"a8883b58dc82e167c96506cf05095f37c2c2c6cd\")\n"
+"      (signer \"CABB A931 C0FF EEC6 900D  0CFB 090B 1199 3D9A EBB5\"))))\n"
+"  (channel\n"
+"   (name 'some-other-collection)\n"
+"   (url \"https://example.org/second-collection.git\")\n"
+"   (branch \"testing\"))))\n"
+
+#. type: Plain text
+#: doc/guix.texi:5157
+msgid "In the above example this channel is declared to depend on two other channels, which will both be fetched automatically.  The modules provided by the channel will be compiled in an environment where the modules of all these declared channels are available."
+msgstr "Dans l'exemple ci-dessus, ce canal est déclaré comme dépendant de deux autres canaux, qui seront récupérés automatiquement.  Les modules fournis par le canal seront compilés dans un environnement où les modules de tous les canaux déclarés sont disponibles."
+
+#. type: Plain text
+#: doc/guix.texi:5161
+msgid "For the sake of reliability and maintainability, you should avoid dependencies on channels that you don't control, and you should aim to keep the number of dependencies to a minimum."
+msgstr "Pour des raisons de fiabilité et de maintenabilité, vous devriez éviter d'avoir des dépendances sur des canaux que vous ne maîtrisez pas et vous devriez ajouter le minimum de dépendances possible."
+
+#. type: cindex
+#: doc/guix.texi:5165
+#, no-wrap
+msgid "channel authorizations"
+msgstr "les autorisations des canaux"
+
+#. type: anchor{#1}
+#: doc/guix.texi:5179
+msgid "channel-authorizations"
+msgstr "channel-authorizations"
+
+#. type: Plain text
+#: doc/guix.texi:5179
+msgid "As we saw above, Guix ensures the source code it pulls from channels comes from authorized developers.  As a channel author, you need to specify the list of authorized developers in the @file{.guix-authorizations} file in the channel's Git repository.  The authentication rule is simple: each commit must be signed by a key listed in the @file{.guix-authorizations} file of its parent commit(s)@footnote{Git commits form a @dfn{directed acyclic graph} (DAG).  Each commit can have zero or more parents; ``regular'' commits have one parent and merge commits have two parent commits.  Read @uref{https://eagain.net/articles/git-for-computer-scientists/, @i{Git for Computer Scientists}} for a great overview.} The @file{.guix-authorizations} file looks like this:"
+msgstr "Comme nous l'avons vu plus haut, Guix garantit le code source qu'il récupère depuis les canaux venant de développeur·euse·s autorisé·e·s. En tant qu'auteur.e, vous devez spécifiez la liste des développeur·euse·s autorisé·e·s dans le fichier @file{.guix-authorizations} dans le dépôt Git des canaux. Le rôle de l'authentification est simple : chaque commit doit être signé par une clé listée dans le fichier @file{.guix-authorizations} de son (ses) commit(s) parent(s)@footnote{Les commits de Git forment un @dfn{graphe acyclique orienté} (DAG en anglais).  Chaque commit peut avoir zéro ou plusieurs parents ; les commits « usuels » ont un seul parent et les commits de fusion ont deux parents. Lisez @uref{https://eagain.net/articles/git-for-computer-scientists/, @i{Git for Computer Scientists}} pour une bonne vue d'ensemble.} Le fichier @file{.guix-authorizations} ressemble à ceci :"
+
+#. type: lisp
+#: doc/guix.texi:5182
+#, no-wrap
+msgid ""
+";; Example '.guix-authorizations' file.\n"
+"\n"
+msgstr ""
+";; Exemple fichier '.guix-authorizations'.\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:5185
+#, no-wrap
+msgid ""
+"(authorizations\n"
+" (version 0)               ;current file format version\n"
+"\n"
+msgstr ""
+"(authorizations\n"
+" (version 0)               ;version actuelle du format de fichier\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:5192
+#, no-wrap
+msgid ""
+" ((\"AD17 A21E F8AE D8F1 CC02  DBD9 F8AE D8F1 765C 61E3\"\n"
+"   (name \"alice\"))\n"
+"  (\"2A39 3FFF 68F4 EF7A 3D29  12AF 68F4 EF7A 22FB B2D5\"\n"
+"   (name \"bob\"))\n"
+"  (\"CABB A931 C0FF EEC6 900D  0CFB 090B 1199 3D9A EBB5\"\n"
+"   (name \"charlie\"))))\n"
+msgstr ""
+" ((\"AD17 A21E F8AE D8F1 CC02  DBD9 F8AE D8F1 765C 61E3\"\n"
+"   (name \"alice\"))\n"
+"  (\"2A39 3FFF 68F4 EF7A 3D29  12AF 68F4 EF7A 22FB B2D5\"\n"
+"   (name \"bob\"))\n"
+"  (\"CABB A931 C0FF EEC6 900D  0CFB 090B 1199 3D9A EBB5\"\n"
+"   (name \"charlie\"))))\n"
+
+#. type: Plain text
+#: doc/guix.texi:5196
+msgid "Each fingerprint is followed by optional key/value pairs, as in the example above.  Currently these key/value pairs are ignored."
+msgstr "Chaque empreinte digitale est suivie de paires de clés/valeurs facultatives, comme dans l'exemple ci-dessus.  Actuellement, ces paires clé/valeur sont ignorées."
+
+#. type: Plain text
+#: doc/guix.texi:5201
+msgid "This authentication rule creates a chicken-and-egg issue: how do we authenticate the first commit? Related to that: how do we deal with channels whose repository history contains unsigned commits and lack @file{.guix-authorizations}? And how do we fork existing channels?"
+msgstr "Ce rôle d'authentification crée un problème de poule-et-oeuf : comment authentifions-nous le premier commit ? Relatif à celà : comment traiter les canaux dont l'historique du dépôt contient des commits non signés et qui n'ont pas de@file{.guix-authorisations} ? Et comment bifurquer des canaux existants ?"
+
+#. type: cindex
+#: doc/guix.texi:5202
+#, no-wrap
+msgid "channel introduction"
+msgstr "introduction des canaux"
+
+#. type: Plain text
+#: doc/guix.texi:5209
+msgid "Channel introductions answer these questions by describing the first commit of a channel that should be authenticated.  The first time a channel is fetched with @command{guix pull} or @command{guix time-machine}, the command looks up the introductory commit and verifies that it is signed by the specified OpenPGP key.  From then on, it authenticates commits according to the rule above."
+msgstr "Les présentations de canaux répondent à ces questions en décrivant le premier commit d'un canal qui doit être authentifiée.  La première fois qu'un canal est récupéré avec @command{guix pull} ou @command{guix time-machine}, la commande recherche le commit d'introduction et vérifie qu'il est signé par la clé OpenPGP spécifiée.  Elle authentifie ensuite les commits selon la règle ci-dessus."
+
+#. type: Plain text
+#: doc/guix.texi:5216
+msgid "Additionally, your channel must provide all the OpenPGP keys that were ever mentioned in @file{.guix-authorizations}, stored as @file{.key} files, which can be either binary or ``ASCII-armored''.  By default, those @file{.key} files are searched for in the branch named @code{keyring} but you can specify a different branch name in @code{.guix-channel} like so:"
+msgstr "De plus, votre canal doit fournir toutes les clés OpenPGP qui ont été mentionnées dans les fichiers @file{.guix-authorizations}, stockés dans les fichiers @file{.key}, qui peuvent être soit binaires soit \"blindés ASCII\".  Par défaut, ces fichiers @file{.key} sont recherchés dans la branche nommée @code{keyring}, mais vous pouvez spécifier un nom de branche différent dans @code{.guix-channel} de cette façon :"
+
+#. type: lisp
+#: doc/guix.texi:5221
+#, no-wrap
+msgid ""
+"(channel\n"
+"  (version 0)\n"
+"  (keyring-reference \"my-keyring-branch\"))\n"
+msgstr ""
+"(channel\n"
+"  (version 0)\n"
+"  (keyring-reference \"my-keyring-branch\"))\n"
+
+#. type: Plain text
+#: doc/guix.texi:5225
+msgid "To summarize, as the author of a channel, there are three things you have to do to allow users to authenticate your code:"
+msgstr "En résumé, en tant qu'auteur.e d'une chaîne, il y a trois choses que vous devez faire pour permettre aux utilisateur·rice·s d'authentifier votre code :"
+
+#. type: enumerate
+#: doc/guix.texi:5231
+msgid "Export the OpenPGP keys of past and present committers with @command{gpg --export} and store them in @file{.key} files, by default in a branch named @code{keyring} (we recommend making it an @dfn{orphan branch})."
+msgstr "Exporter les clés OpenPGP des committers passés et présents avec @command{gpg -export} et les stocker dans des fichiers @file{.key}, par défaut dans une branche nommée @code{keyring} (nous recommandons d'en faire une @dfn{branche orpheline})."
+
+#. type: enumerate
+#: doc/guix.texi:5236
+msgid "Introduce an initial @file{.guix-authorizations} in the channel's repository.  Do that in a signed commit (@pxref{Commit Access}, for information on how to sign Git commits.)"
+msgstr "Introduisez un fichier @file{.guix-authorisations} initial dans le dépôt du canal.  Faites cela dans un commit signé (@pxref{Commit Access}, pour savoir comment signer les commit Git)."
+
+#. type: enumerate
+#: doc/guix.texi:5242
+msgid "Advertise the channel introduction, for instance on your channel's web page.  The channel introduction, as we saw above, is the commit/key pair---i.e., the commit that introduced @file{.guix-authorizations}, and the fingerprint of the OpenPGP used to sign it."
+msgstr "Annoncez l'introduction du canal, par exemple sur la page web de votre canal.  L'introduction du canal, comme nous l'avons vu ci-dessus, est la paire de clés commit---c'est-à-dire le commit qui a introduit @file{.guix-authorizations}, et l'empreinte digitale de l'OpenPGP utilisé pour le signer."
+
+#. type: Plain text
+#: doc/guix.texi:5247
+msgid "Before pushing to your public Git repository, you can run @command{guix git-authenticate} to verify that you did sign all the commits you are about to push with an authorized key:"
+msgstr "Avant de pousser vers votre dépôt Git public, vous pouvez lancer @command{guix git-authenticate} pour vérifier que vous avez bien signé tous les commits que vous allez pousser avec une clé autorisée :"
+
+#. type: example
+#: doc/guix.texi:5250
+#, no-wrap
+msgid "guix git authenticate @var{commit} @var{signer}\n"
+msgstr "guix git authenticate @var{commit} @var{signer}\n"
+
+#. type: Plain text
+#: doc/guix.texi:5255
+msgid "where @var{commit} and @var{signer} are your channel introduction.  @xref{Invoking guix git authenticate}, for details."
+msgstr "où @var{commit} et @var{signer} sont votre présentation de canal.  @xref{Invoquer guix git authenticate}, pour plus de détails."
+
+#. type: Plain text
+#: doc/guix.texi:5262
+msgid "Publishing a signed channel requires discipline: any mistake, such as an unsigned commit or a commit signed by an unauthorized key, will prevent users from pulling from your channel---well, that's the whole point of authentication! Pay attention to merges in particular: merge commits are considered authentic if and only if they are signed by a key present in the @file{.guix-authorizations} file of @emph{both} branches."
+msgstr "Publier un canal signé demande de la discipline : toute faute, comme un commit non signé ou un commit signée par une clé non autorisée, vont empêcher les utilisateur·rice·s de récupérer depuis votre canal---bref, c'est tout l'intérêt de l'authentification ! Faites particulièrement attention aux merges : les merge commits sont considérés comme authentiques si et seulement s'ils sont signés par une clé présente dans le fichier @file{.guix-authorizations} des branches @emph{both}."
+
+#. type: cindex
+#: doc/guix.texi:5266
+#, no-wrap
+msgid "primary URL, channels"
+msgstr "principale URL, canaux"
+
+#. type: Plain text
+#: doc/guix.texi:5269
+msgid "Channel authors can indicate the primary URL of their channel's Git repository in the @file{.guix-channel} file, like so:"
+msgstr "Les auteur.e.s de canaux peuvent indiquer l'URL principale de leur dépôt Git de canal dans le fichier @file{.guix-channel} comme ceci :"
+
+#. type: lisp
+#: doc/guix.texi:5274
+#, no-wrap
+msgid ""
+"(channel\n"
+"  (version 0)\n"
+"  (url \"https://example.org/guix.git\"))\n"
+msgstr ""
+"(channel\n"
+"  (version 0)\n"
+"  (url \"https://example.org/guix.git\"))\n"
+
+#. type: Plain text
+#: doc/guix.texi:5281
+msgid "This allows @command{guix pull} to determine whether it is pulling code from a mirror of the channel; when that is the case, it warns the user that the mirror might be stale and displays the primary URL.  That way, users cannot be tricked into fetching code from a stale mirror that does not receive security updates."
+msgstr "Cela permet à @command{guix pull} de déterminer si elle récupère du code d'un miroir du canal ; lorsque c'est le cas, elle avertit l'utilisateur·rice que le miroir pourrait être périmé et affiche l'URL primaire.  De cette façon, les utilisateur·rice·s ne peuvent pas être amené·e·s à extraire du code d'un miroir périmé qui ne reçoit pas les mises à jour de sécurité."
+
+#. type: Plain text
+#: doc/guix.texi:5285
+msgid "This feature only makes sense for authenticated repositories, such as the official @code{guix} channel, for which @command{guix pull} ensures the code it fetches is authentic."
+msgstr "Cette fonctionnalité n'a de sens que pour les dépôts authentifiés, tels que le canal officiel @code{guix}, pour lequel @command{guix pull} garantit l'authenticité du code qu'il récupère."
+
+#. type: cindex
+#: doc/guix.texi:5289
+#, no-wrap
+msgid "news, for channels"
+msgstr "nouveautés, canaux"
+
+#. type: Plain text
+#: doc/guix.texi:5293
+msgid "Channel authors may occasionally want to communicate to their users information about important changes in the channel.  You'd send them all an email, but that's not convenient."
+msgstr "Les auteur.e.s de canaux peuvent occasionnellement vouloir communiquer à leurs utilisateur·rice·s des informations au sujet de changements importants dans le canal. Vous pourriez leur envoyer un courriel, mais ce n'est pas pratique."
+
+#. type: Plain text
+#: doc/guix.texi:5298
+msgid "Instead, channels can provide a @dfn{news file}; when the channel users run @command{guix pull}, that news file is automatically read and @command{guix pull --news} can display the announcements that correspond to the new commits that have been pulled, if any."
+msgstr "Au lieu de celà, les canaux peuvent fournir un @dfn{fichier de nouvelles} ; lorsque les utilisateur·rice·s du canal exécutent @command{guix pull}, ce fichier de nouvelles est automatiquement lu et @command{guix pull --news} peut afficher les annonces qui correspondent aux nouveaux commits qui ont été récupérés, le cas échéant."
+
+#. type: Plain text
+#: doc/guix.texi:5301
+msgid "To do that, channel authors must first declare the name of the news file in their @file{.guix-channel} file:"
+msgstr "Pour faire celà, les auteur.e.s de canal doivent en premier lieu déclarer le nom du fichier de nouvelles dans leur fichier @file{.guix-channel} :"
+
+#. type: lisp
+#: doc/guix.texi:5306
+#, no-wrap
+msgid ""
+"(channel\n"
+"  (version 0)\n"
+"  (news-file \"etc/news.txt\"))\n"
+msgstr ""
+"(channel\n"
+"  (version 0)\n"
+"  (news-file \"etc/news.txt\"))\n"
+
+#. type: Plain text
+#: doc/guix.texi:5310
+msgid "The news file itself, @file{etc/news.txt} in this example, must look something like this:"
+msgstr "Le fichier de nouvelles lui-même, @file{etc/news.txt} dans cet exemple, doit ressembler à quelque chose comme ceci :"
+
+#. type: lisp
+#: doc/guix.texi:5323
+#, no-wrap
+msgid ""
+"(channel-news\n"
+"  (version 0)\n"
+"  (entry (tag \"the-bug-fix\")\n"
+"         (title (en \"Fixed terrible bug\")\n"
+"                (fr \"Oh la la\"))\n"
+"         (body (en \"@@emph@{Good news@}!  It's fixed!\")\n"
+"               (eo \"Certe ĝi pli bone funkcias nun!\")))\n"
+"  (entry (commit \"bdcabe815cd28144a2d2b4bc3c5057b051fa9906\")\n"
+"         (title (en \"Added a great package\")\n"
+"                (ca \"Què vol dir guix?\"))\n"
+"         (body (en \"Don't miss the @@code@{hello@} package!\"))))\n"
+msgstr ""
+"(channel-news\n"
+"  (version 0)\n"
+"  (entry (tag \"the-bug-fix\")\n"
+"         (title (en \"Fixed terrible bug\")\n"
+"                (fr \"Oh la la\"))\n"
+"         (body (en \"@@emph@{Good news@}!  It's fixed!\")\n"
+"               (eo \"Certe ĝi pli bone funkcias nun!\")))\n"
+"  (entry (commit \"bdcabe815cd28144a2d2b4bc3c5057b051fa9906\")\n"
+"         (title (en \"Added a great package\")\n"
+"                (ca \"Què vol dir guix?\"))\n"
+"         (body (en \"Don't miss the @@code@{hello@} package!\"))))\n"
+
+#. type: Plain text
+#: doc/guix.texi:5330
+msgid "While the news file is using the Scheme syntax, avoid naming it with a @file{.scm} extension or else it will get picked up when building the channel and yield an error since it is not a valid module.  Alternatively, you can move the channel module to a subdirectory and store the news file in another directory."
+msgstr "Tandis que le fichier de nouvelles utilise la syntaxe Scheme, évitez de le nommer avec une extension @file{.scm}, sinon il sera récupéré lors de la construction du canal et produira une erreur puisqu'il ne s'agit pas d'un module valide.  Vous pouvez également déplacer le module du canal dans un sous-répertoire et stocker le fichier de nouvelles dans un autre répertoire."
+
+#. type: Plain text
+#: doc/guix.texi:5335
+msgid "The file consists of a list of @dfn{news entries}.  Each entry is associated with a commit or tag: it describes changes made in this commit, possibly in preceding commits as well.  Users see entries only the first time they obtain the commit the entry refers to."
+msgstr "Le fichier consiste en une liste de @dfn{news entries}. Chaque entrée est associée à un commit ou un tag : elle décrit les changements faits dans ce commit, éventuellement dans les commits précédents comme il faut. Les utilisateur·rice·s ne voient les entrées que la première fois qu'il·elle·s obtiennent le commit auquel l'entrée se réfère."
+
+#. type: Plain text
+#: doc/guix.texi:5341
+msgid "The @code{title} field should be a one-line summary while @code{body} can be arbitrarily long, and both can contain Texinfo markup (@pxref{Overview,,, texinfo, GNU Texinfo}).  Both the title and body are a list of language tag/message tuples, which allows @command{guix pull} to display news in the language that corresponds to the user's locale."
+msgstr "Le @code{titre} doit être un résumé d'une ligne tandis que @code{body} peut être arbitrairement long, et les deux peuvent contenir des balises Texinfo (@pxref{Overview,,, texinfo, GNU Texinfo}).  Le titre et le corps sont tous deux une liste de tuples de balises/messages de langue, ce qui permet à @command{guix pull} d'afficher les nouvelles dans la langue qui correspond à la locale de l'utilisateur."
+
+#. type: Plain text
+#: doc/guix.texi:5347
+msgid "If you want to translate news using a gettext-based workflow, you can extract translatable strings with @command{xgettext} (@pxref{xgettext Invocation,,, gettext, GNU Gettext Utilities}).  For example, assuming you write news entries in English first, the command below creates a PO file containing the strings to translate:"
+msgstr "Si vous souhaitez traduire des actualités en utilisant un déroulement basé sur gettext, vous pouvez extraire des chaînes traduisibles avec @command{xgettext} (@pxref{xgettext Invocation,,, gettext, GNU Gettext Utilities}).  Par exemple, en supposant que vous écriviez d'abord les entrées de nouvelles en anglais, la commande ci-dessous crée un fichier PO contenant les chaînes à traduire :"
+
+#. type: example
+#: doc/guix.texi:5350
+#, no-wrap
+msgid "xgettext -o news.po -l scheme -ken etc/news.txt\n"
+msgstr "xgettext -o news.po -l scheme -ken etc/news.txt\n"
+
+#. type: Plain text
+#: doc/guix.texi:5354
+msgid "To sum up, yes, you could use your channel as a blog.  But beware, this is @emph{not quite} what your users might expect."
+msgstr "Pour résumer, oui, vous pourriez utiliser votre chaîne comme un blog.  Mais attention, ce n'est @emph{pas tout à fait} ce à quoi vos utilisateur·rice·s pourraient s'attendre."
+
+#. type: cindex
+#: doc/guix.texi:5360
 #, no-wrap
 msgid "software development"
 msgstr "développement logiciel"
 
 #. type: Plain text
-#: doc/guix.texi:4338
+#: doc/guix.texi:5364
 msgid "If you are a software developer, Guix provides tools that you should find helpful---independently of the language you're developing in.  This is what this chapter is about."
 msgstr "Si vous êtes développeur de logiciels, Guix fournit des outils que vous devriez trouver utiles — indépendamment du langage dans lequel vous développez.  C'est ce dont parle ce chapitre."
 
 #. type: Plain text
-#: doc/guix.texi:4344
+#: doc/guix.texi:5370
 msgid "The @command{guix environment} command provides a convenient way to set up @dfn{development environments} containing all the dependencies and tools necessary to work on the software package of your choice.  The @command{guix pack} command allows you to create @dfn{application bundles} that can be easily distributed to users who do not run Guix."
 msgstr "La commande @command{guix environment} permet de créer des @dfn{environnements de développement} confortables contenant toutes les dépendances et les outils nécessaires pour travailler sur le paquet logiciel de votre choix.  La commande @command{guix pack} vous permet de créer des @dfn{lots applicatifs} qui peuvent facilement être distribués à des utilisateurs qui n'utilisent pas Guix."
 
 #. type: section
-#: doc/guix.texi:4351
+#: doc/guix.texi:5379
 #, no-wrap
 msgid "Invoking @command{guix environment}"
 msgstr "Invoquer @command{guix environment}"
 
 #. type: cindex
-#: doc/guix.texi:4353
+#: doc/guix.texi:5381
 #, no-wrap
 msgid "reproducible build environments"
 msgstr "environnements de construction reproductibles"
 
 #. type: cindex
-#: doc/guix.texi:4354
+#: doc/guix.texi:5382
 #, no-wrap
 msgid "development environments"
 msgstr "environnement de développement"
 
 #. type: command{#1}
-#: doc/guix.texi:4355
+#: doc/guix.texi:5383
 #, no-wrap
 msgid "guix environment"
 msgstr "guix environment"
 
 #. type: cindex
-#: doc/guix.texi:4356
+#: doc/guix.texi:5384
 #, no-wrap
 msgid "environment, package build environment"
 msgstr "environnement de construction de paquets"
 
 #. type: Plain text
-#: doc/guix.texi:4362
+#: doc/guix.texi:5390
 msgid "The purpose of @command{guix environment} is to assist hackers in creating reproducible development environments without polluting their package profile.  The @command{guix environment} tool takes one or more packages, builds all of their inputs, and creates a shell environment to use them."
 msgstr "Le but de @command{guix environment} est d'assister les hackers dans la création d'environnements de développement reproductibles sans polluer leur profil de paquets.  L'outil @command{guix environment} prend un ou plusieurs paquets, construit leurs entrées et crée un environnement shell pour pouvoir les utiliser."
 
-#. type: Plain text
-#: doc/guix.texi:4364 doc/guix.texi:7621 doc/guix.texi:8349 doc/guix.texi:8416
-#: doc/guix.texi:9205 doc/guix.texi:9578 doc/guix.texi:9883 doc/guix.texi:9949
-#: doc/guix.texi:9988
-msgid "The general syntax is:"
-msgstr "La syntaxe générale est :"
-
 #. type: example
-#: doc/guix.texi:4367
+#: doc/guix.texi:5395
 #, no-wrap
 msgid "guix environment @var{options} @var{package}@dots{}\n"
 msgstr "guix environment @var{options} @var{paquet}@dots{}\n"
 
 #. type: Plain text
-#: doc/guix.texi:4371
+#: doc/guix.texi:5399
 msgid "The following example spawns a new shell set up for the development of GNU@tie{}Guile:"
 msgstr "L'exemple suivant crée un nouveau shell préparé pour le développement de GNU@tie{}Guile :"
 
 #. type: example
-#: doc/guix.texi:4374
+#: doc/guix.texi:5402
 #, no-wrap
 msgid "guix environment guile\n"
 msgstr "guix environment guile\n"
 
 #. type: Plain text
-#: doc/guix.texi:4391
-msgid "If the needed dependencies are not built yet, @command{guix environment} automatically builds them.  The environment of the new shell is an augmented version of the environment that @command{guix environment} was run in.  It contains the necessary search paths for building the given package added to the existing environment variables.  To create a ``pure'' environment, in which the original environment variables have been unset, use the @code{--pure} option@footnote{Users sometimes wrongfully augment environment variables such as @code{PATH} in their @file{~/.bashrc} file.  As a consequence, when @code{guix environment} launches it, Bash may read @file{~/.bashrc}, thereby introducing ``impurities'' in these environment variables.  It is an error to define such environment variables in @file{.bashrc}; instead, they should be defined in @file{.bash_profile}, which is sourced only by log-in shells.  @xref{Bash Startup Files,,, bash, The GNU Bash Reference Manual}, for details on Bash start-up files.}."
-msgstr "Si les dépendances requises ne sont pas déjà construites, @command{guix environment} les construit automatiquement.  L'environnement du nouveau shell est une version améliorée de l'environnement dans lequel @command{guix environment} a été lancé.  Il contient les chemins de recherche nécessaires à la construction du paquet donné en plus des variables d'environnement existantes.  Pour créer un environnement « pur », dans lequel les variables d'environnement de départ ont été nettoyées, utilisez l'option @code{--pure}@footnote{Les utilisateurs ajoutent parfois à tord des valeurs supplémentaires dans les variables comme @code{PATH} dans leur @file{~/.bashrc}.  En conséquence, lorsque @code{guix environment} le lance, Bash peut lire @file{~/.bashrc}, ce qui produit des « impuretés » dans ces variables d'environnement.  C'est une erreur de définir ces variables d'environnement dans @file{.bashrc} ; à la place, elles devraient être définie dans @file{.bash_profile}, qui est sourcé uniquement par les shells de connexion.  @xref{Bash Startup Files,,, bash, The GNU Bash Reference Manual}, pour des détails sur les fichiers de démarrage de Bash.}."
+#: doc/guix.texi:5419
+msgid "If the needed dependencies are not built yet, @command{guix environment} automatically builds them.  The environment of the new shell is an augmented version of the environment that @command{guix environment} was run in.  It contains the necessary search paths for building the given package added to the existing environment variables.  To create a ``pure'' environment, in which the original environment variables have been unset, use the @option{--pure} option@footnote{Users sometimes wrongfully augment environment variables such as @env{PATH} in their @file{~/.bashrc} file.  As a consequence, when @command{guix environment} launches it, Bash may read @file{~/.bashrc}, thereby introducing ``impurities'' in these environment variables.  It is an error to define such environment variables in @file{.bashrc}; instead, they should be defined in @file{.bash_profile}, which is sourced only by log-in shells.  @xref{Bash Startup Files,,, bash, The GNU Bash Reference Manual}, for details on Bash start-up files.}."
+msgstr "Si les dépendances requises ne sont pas déjà construites, @command{guix environment} les construit automatiquement.  L'environnement du nouveau shell est une version améliorée de l'environnement dans lequel @command{guix environment} a été lancé.  Il contient les chemins de recherche nécessaires à la construction du paquet donné en plus des variables d'environnement existantes.  Pour créer un environnement « pur », dans lequel les variables d'environnement de départ ont été nettoyées, utilisez l'option @option{--pure}@footnote{Les utilisatrice·eur·s ajoutent parfois à tort des valeurs supplémentaires dans les variables comme @env{PATH} dans leur @file{~/.bashrc}.  En conséquence, lorsque @command{guix environment} le lance, Bash peut lire @file{~/.bashrc}, ce qui produit des « impuretés » dans ces variables d'environnement.  C'est une erreur de définir ces variables d'environnement dans @file{.bashrc} ; à la place, elles devraient être définie dans @file{.bash_profile}, qui est sourcé uniquement par les shells de connexion.  @xref{Bash Startup Files,,, bash, The GNU Bash Reference Manual}, pour des détails sur les fichiers de démarrage de Bash.}."
 
 #. type: vindex
-#: doc/guix.texi:4392
+#: doc/guix.texi:5420
 #, no-wrap
 msgid "GUIX_ENVIRONMENT"
 msgstr "GUIX_ENVIRONMENT"
 
 #. type: Plain text
-#: doc/guix.texi:4398
-msgid "@command{guix environment} defines the @code{GUIX_ENVIRONMENT} variable in the shell it spawns; its value is the file name of the profile of this environment.  This allows users to, say, define a specific prompt for development environments in their @file{.bashrc} (@pxref{Bash Startup Files,,, bash, The GNU Bash Reference Manual}):"
-msgstr "@command{guix environment} définie la variable @code{GUIX_ENVIRONMENT} dans le shell qu'il crée ; sa valeur est le nom de fichier du profil de cet environnement.  Cela permet aux utilisateur, disons, de définir un prompt spécifique pour les environnement de développement dans leur @file{.bashrc} (@pxref{Bash Startup Files,,, bash, The GNU Bash Reference Manual}) :"
+#: doc/guix.texi:5426
+msgid "@command{guix environment} defines the @env{GUIX_ENVIRONMENT} variable in the shell it spawns; its value is the file name of the profile of this environment.  This allows users to, say, define a specific prompt for development environments in their @file{.bashrc} (@pxref{Bash Startup Files,,, bash, The GNU Bash Reference Manual}):"
+msgstr "@command{guix environment} définie la variable @env{GUIX_ENVIRONMENT} dans le shell qu'il crée ; sa valeur est le nom de fichier du profil de cet environnement.  Cela permet aux utilisatrice·eur·s, disons, de définir un prompt spécifique pour les environnement de développement dans leur @file{.bashrc} (@pxref{Bash Startup Files,,, bash, The GNU Bash Reference Manual}) :"
 
 #. type: example
-#: doc/guix.texi:4404
+#: doc/guix.texi:5432
 #, no-wrap
 msgid ""
 "if [ -n \"$GUIX_ENVIRONMENT\" ]\n"
@@ -9394,282 +11632,318 @@ msgstr ""
 "fi\n"
 
 #. type: Plain text
-#: doc/guix.texi:4408
+#: doc/guix.texi:5436
 msgid "...@: or to browse the profile:"
 msgstr "…@: ou de naviguer dans le profil :"
 
 #. type: example
-#: doc/guix.texi:4411
+#: doc/guix.texi:5439
 #, no-wrap
 msgid "$ ls \"$GUIX_ENVIRONMENT/bin\"\n"
 msgstr "$ ls \"$GUIX_ENVIRONMENT/bin\"\n"
 
 #. type: Plain text
-#: doc/guix.texi:4417
+#: doc/guix.texi:5445
 msgid "Additionally, more than one package may be specified, in which case the union of the inputs for the given packages are used.  For example, the command below spawns a shell where all of the dependencies of both Guile and Emacs are available:"
 msgstr "De surcroît, plus d'un paquet peut être spécifié, auquel cas l'union des entrées des paquets données est utilisée.  Par exemple, la commande ci-dessous crée un shell où toutes les dépendances de Guile et Emacs sont disponibles :"
 
 #. type: example
-#: doc/guix.texi:4420
+#: doc/guix.texi:5448
 #, no-wrap
 msgid "guix environment guile emacs\n"
 msgstr "guix environment guile emacs\n"
 
 #. type: Plain text
-#: doc/guix.texi:4425
+#: doc/guix.texi:5453
 msgid "Sometimes an interactive shell session is not desired.  An arbitrary command may be invoked by placing the @code{--} token to separate the command from the rest of the arguments:"
 msgstr "Parfois, une session shell interactive est inutile.  On peut invoquer une commande arbitraire en plaçant le jeton @code{--} pour séparer la commande du reste des arguments :"
 
 #. type: example
-#: doc/guix.texi:4428
+#: doc/guix.texi:5456
 #, no-wrap
 msgid "guix environment guile -- make -j4\n"
 msgstr "guix environment guile -- make -j4\n"
 
 #. type: Plain text
-#: doc/guix.texi:4434
+#: doc/guix.texi:5462
 msgid "In other situations, it is more convenient to specify the list of packages needed in the environment.  For example, the following command runs @command{python} from an environment containing Python@tie{}2.7 and NumPy:"
 msgstr "Dans d'autres situations, il est plus pratique de spécifier la liste des paquets requis dans l'environnement.  Par exemple, la commande suivante lance @command{python} dans un environnement contenant Python@tie{}2.7 et NumPy :"
 
 #. type: example
-#: doc/guix.texi:4437
+#: doc/guix.texi:5465
 #, no-wrap
 msgid "guix environment --ad-hoc python2-numpy python-2.7 -- python\n"
 msgstr "guix environment --ad-hoc python2-numpy python-2.7 -- python\n"
 
 #. type: Plain text
-#: doc/guix.texi:4448
-msgid "Furthermore, one might want the dependencies of a package and also some additional packages that are not build-time or runtime dependencies, but are useful when developing nonetheless.  Because of this, the @code{--ad-hoc} flag is positional.  Packages appearing before @code{--ad-hoc} are interpreted as packages whose dependencies will be added to the environment.  Packages appearing after are interpreted as packages that will be added to the environment directly.  For example, the following command creates a Guix development environment that additionally includes Git and strace:"
-msgstr "En plus, on peut vouloir les dépendance d'un paquet et aussi des paquets supplémentaires qui ne sont pas des dépendances à l'exécution ou à la construction, mais qui sont utiles au développement tout de même.  À cause de cela, le drapeau @code{--ad-hoc} est positionnel.  Les paquets qui apparaissent avant @code{--ad-hoc} sont interprétés comme les paquets dont les dépendances seront ajoutées à l'environnement.  Les paquets qui apparaissent après @code{--ad-hoc} sont interprétés comme les paquets à ajouter à l'environnement directement.  Par exemple, la commande suivante crée un environnement de développement pour Guix avec les paquets Git et strace en plus :"
+#: doc/guix.texi:5476
+msgid "Furthermore, one might want the dependencies of a package and also some additional packages that are not build-time or runtime dependencies, but are useful when developing nonetheless.  Because of this, the @option{--ad-hoc} flag is positional.  Packages appearing before @option{--ad-hoc} are interpreted as packages whose dependencies will be added to the environment.  Packages appearing after are interpreted as packages that will be added to the environment directly.  For example, the following command creates a Guix development environment that additionally includes Git and strace:"
+msgstr "En plus, on peut vouloir les dépendance d'un paquet et aussi des paquets supplémentaires qui ne sont pas des dépendances à l'exécution ou à la construction, mais qui sont utiles au développement tout de même.  À cause de cela, le tag @option{--ad-hoc} est positionnel.  Les paquets qui apparaissent avant @option{--ad-hoc} sont interprétés comme les paquets dont les dépendances seront ajoutées à l'environnement.  Les paquets qui apparaissent après @option{--ad-hoc} sont interprétés comme les paquets à ajouter à l'environnement directement.  Par exemple, la commande suivante crée un environnement de développement pour Guix avec les paquets Git et strace en plus :"
 
 #. type: example
-#: doc/guix.texi:4451
+#: doc/guix.texi:5479
 #, no-wrap
-msgid "guix environment guix --ad-hoc git strace\n"
-msgstr "guix environment guix --ad-hoc git strace\n"
+msgid "guix environment --pure guix --ad-hoc git strace\n"
+msgstr "guix environment --pure guix --ad-hoc git strace\n"
+
+#. type: item
+#: doc/guix.texi:5481 doc/guix.texi:5642 doc/guix.texi:12625
+#: doc/guix.texi:30966
+#, no-wrap
+msgid "container"
+msgstr "conteneur"
 
 #. type: Plain text
-#: doc/guix.texi:4460
+#: doc/guix.texi:5489
 msgid "Sometimes it is desirable to isolate the environment as much as possible, for maximal purity and reproducibility.  In particular, when using Guix on a host distro that is not Guix System, it is desirable to prevent access to @file{/usr/bin} and other system-wide resources from the development environment.  For example, the following command spawns a Guile REPL in a ``container'' where only the store and the current working directory are mounted:"
 msgstr "Parfois il est souhaitable d'isoler l'environnement le plus possible, pour une pureté et une reproductibilité maximale.  En particulier, lorsque vous utilisez Guix sur une distribution hôte qui n'est pas le système Guix, il est souhaitable d'éviter l'accès à @file{/usr/bin} et d'autres ressources du système depuis les environnements de développement.  Par exemple, la commande suivante crée un REPL Guile dans un « conteneur » où seuls le dépôt et le répertoire de travail actuel sont montés :"
 
 #. type: example
-#: doc/guix.texi:4463
+#: doc/guix.texi:5492
 #, no-wrap
 msgid "guix environment --ad-hoc --container guile -- guile\n"
 msgstr "guix environment --ad-hoc --container guile -- guile\n"
 
 #. type: quotation
-#: doc/guix.texi:4467
-msgid "The @code{--container} option requires Linux-libre 3.19 or newer."
-msgstr "L'option @code{--container} requiert Linux-libre 3.19 ou supérieur."
+#: doc/guix.texi:5496
+msgid "The @option{--container} option requires Linux-libre 3.19 or newer."
+msgstr "L'option @option{--container} requiert Linux-libre 3.19 ou supérieur."
+
+#. type: cindex
+#: doc/guix.texi:5498
+#, no-wrap
+msgid "certificates"
+msgstr "certificats"
+
+#. type: Plain text
+#: doc/guix.texi:5505
+msgid "Another typical use case for containers is to run security-sensitive applications such as a web browser.  To run Eolie, we must expose and share some files and directories; we include @code{nss-certs} and expose @file{/etc/ssl/certs/} for HTTPS authentication; finally we preserve the @env{DISPLAY} environment variable since containerized graphical applications won't display without it."
+msgstr "Un autre cas d'usage typique pour les conteneurs est de lancer des applications sensibles à la sécurité, comme un navigateur web.  Pour faire fonctionner Eolie, nous devons exposer et partager certains fichiers et répertoires ; nous incluons @code{nss-certs} et exposons @file{/etc/ssl/certs/} pour l'authentification HTTPS ; enfin, nous préservons la variable d'environnement @env{DISPLAY} puisque les applications graphiques conteneurisées ne s'afficheront pas sans elle."
+
+#. type: example
+#: doc/guix.texi:5512
+#, no-wrap
+msgid ""
+"guix environment --preserve='^DISPLAY$' --container --network \\\n"
+"  --expose=/etc/machine-id \\\n"
+"  --expose=/etc/ssl/certs/ \\\n"
+"  --share=$HOME/.local/share/eolie/=$HOME/.local/share/eolie/ \\\n"
+"  --ad-hoc eolie nss-certs dbus --  eolie\n"
+msgstr ""
+"guix environment --preserve='^DISPLAY$' --container --network \\\n"
+"  --expose=/etc/machine-id \\\n"
+"  --expose=/etc/ssl/certs/ \\\n"
+"  --share=$HOME/.local/share/eolie/=$HOME/.local/share/eolie/ \\\n"
+"  --ad-hoc eolie nss-certs dbus --  eolie\n"
 
 #. type: Plain text
-#: doc/guix.texi:4470
+#: doc/guix.texi:5515
 msgid "The available options are summarized below."
 msgstr "Les options disponibles sont résumées ci-dessous."
 
 #. type: item
-#: doc/guix.texi:4472 doc/guix.texi:8136 doc/guix.texi:24588
+#: doc/guix.texi:5517 doc/guix.texi:6053 doc/guix.texi:10513
+#: doc/guix.texi:31063
 #, no-wrap
 msgid "--root=@var{file}"
 msgstr "--root=@var{fichier}"
 
 #. type: itemx
-#: doc/guix.texi:4473 doc/guix.texi:8137 doc/guix.texi:24589
+#: doc/guix.texi:5518 doc/guix.texi:6054 doc/guix.texi:10514
+#: doc/guix.texi:31064
 #, no-wrap
 msgid "-r @var{file}"
 msgstr "-r @var{fichier}"
 
 #. type: cindex
-#: doc/guix.texi:4474
+#: doc/guix.texi:5519
 #, no-wrap
 msgid "persistent environment"
 msgstr "environnement persistent"
 
 #. type: cindex
-#: doc/guix.texi:4475
+#: doc/guix.texi:5520
 #, no-wrap
 msgid "garbage collector root, for environments"
 msgstr "racine du ramasse-miettes, pour les environnements"
 
 #. type: table
-#: doc/guix.texi:4478
+#: doc/guix.texi:5523
 msgid "Make @var{file} a symlink to the profile for this environment, and register it as a garbage collector root."
 msgstr "Fait de @var{fichier} un lien symbolique vers le profil de cet environnement, et l'enregistre comme une racine du ramasse-miettes."
 
 #. type: table
-#: doc/guix.texi:4481
+#: doc/guix.texi:5526
 msgid "This is useful if you want to protect your environment from garbage collection, to make it ``persistent''."
 msgstr "C'est utile si vous souhaitez protéger votre environnement du ramasse-miettes, pour le rendre « persistent »."
 
 #. type: table
-#: doc/guix.texi:4487
+#: doc/guix.texi:5532
 msgid "When this option is omitted, the environment is protected from garbage collection only for the duration of the @command{guix environment} session.  This means that next time you recreate the same environment, you could have to rebuild or re-download packages.  @xref{Invoking guix gc}, for more on GC roots."
 msgstr "Lorsque cette option est omise, l'environnement n'est protégé du ramasse-miettes que le temps de la session @command{guix environment}.  Cela signifie que la prochaine fois que vous créerez le même environnement, vous pourriez avoir à reconstruire ou télécharger des paquets.  @xref{Invoking guix gc}, pour plus d'informations sur les racines du GC."
 
 #. type: item
-#: doc/guix.texi:4488 doc/guix.texi:4862 doc/guix.texi:7994 doc/guix.texi:8875
-#: doc/guix.texi:9533 doc/guix.texi:24547
+#: doc/guix.texi:5533 doc/guix.texi:5985 doc/guix.texi:10366
+#: doc/guix.texi:11305 doc/guix.texi:12090 doc/guix.texi:30998
 #, no-wrap
 msgid "--expression=@var{expr}"
 msgstr "--expression=@var{expr}"
 
 #. type: itemx
-#: doc/guix.texi:4489 doc/guix.texi:4863 doc/guix.texi:7995 doc/guix.texi:8876
-#: doc/guix.texi:9534 doc/guix.texi:24548
+#: doc/guix.texi:5534 doc/guix.texi:5986 doc/guix.texi:10367
+#: doc/guix.texi:11306 doc/guix.texi:12091 doc/guix.texi:30999
 #, no-wrap
 msgid "-e @var{expr}"
 msgstr "-e @var{expr}"
 
 #. type: table
-#: doc/guix.texi:4492
+#: doc/guix.texi:5537
 msgid "Create an environment for the package or list of packages that @var{expr} evaluates to."
 msgstr "Crée un environnement pour le paquet ou la liste de paquets en lesquels s'évalue @var{expr}."
 
 #. type: table
-#: doc/guix.texi:4494
+#: doc/guix.texi:5539
 msgid "For example, running:"
 msgstr "Par exemple, lancer :"
 
 #. type: example
-#: doc/guix.texi:4497
+#: doc/guix.texi:5542
 #, no-wrap
 msgid "guix environment -e '(@@ (gnu packages maths) petsc-openmpi)'\n"
 msgstr "guix environment -e '(@@ (gnu packages maths) petsc-openmpi)'\n"
 
 #. type: table
-#: doc/guix.texi:4501
+#: doc/guix.texi:5546
 msgid "starts a shell with the environment for this specific variant of the PETSc package."
 msgstr "démarre un shell avec l'environnement pour cette variante spécifique du paquet PETSc."
 
 #. type: table
-#: doc/guix.texi:4503
+#: doc/guix.texi:5548
 msgid "Running:"
 msgstr "Lancer :"
 
 #. type: example
-#: doc/guix.texi:4506
+#: doc/guix.texi:5551
 #, no-wrap
 msgid "guix environment --ad-hoc -e '(@@ (gnu) %base-packages)'\n"
 msgstr "guix environment --ad-hoc -e '(@@ (gnu) %base-packages)'\n"
 
 #. type: table
-#: doc/guix.texi:4509
+#: doc/guix.texi:5554
 msgid "starts a shell with all the base system packages available."
 msgstr "démarre un shell où tous les paquets de base du système sont disponibles."
 
 #. type: table
-#: doc/guix.texi:4512
+#: doc/guix.texi:5557
 msgid "The above commands only use the default output of the given packages.  To select other outputs, two element tuples can be specified:"
 msgstr "Les commande au-dessus n'utilisent que les sorties par défaut des paquets donnés.  Pour choisir d'autres sorties, on peut spécifier des pairs :"
 
 #. type: example
-#: doc/guix.texi:4515
+#: doc/guix.texi:5560
 #, no-wrap
 msgid "guix environment --ad-hoc -e '(list (@@ (gnu packages bash) bash) \"include\")'\n"
 msgstr "guix environment --ad-hoc -e '(list (@@ (gnu packages bash) bash) \"include\")'\n"
 
 #. type: item
-#: doc/guix.texi:4517
+#: doc/guix.texi:5562
 #, no-wrap
 msgid "--load=@var{file}"
 msgstr "--load=@var{fichier}"
 
 #. type: itemx
-#: doc/guix.texi:4518
+#: doc/guix.texi:5563
 #, no-wrap
 msgid "-l @var{file}"
 msgstr "-l @var{fichier}"
 
 #. type: table
-#: doc/guix.texi:4521
+#: doc/guix.texi:5566
 msgid "Create an environment for the package or list of packages that the code within @var{file} evaluates to."
 msgstr "Crée un environnement pour le paquet ou la liste de paquets en lesquels @var{fichier} s'évalue."
 
-#. type: example
-#: doc/guix.texi:4527
+#. type: lisp
+#: doc/guix.texi:5572
 #, no-wrap
 msgid "@verbatiminclude environment-gdb.scm\n"
 msgstr "@verbatiminclude environment-gdb.scm\n"
 
 #. type: table
-#: doc/guix.texi:4533
-msgid "Create an environment for the packages contained in the manifest object returned by the Scheme code in @var{file}."
-msgstr "Crée un environnement pour les paquets contenus dans l'objet manifeste renvoyé par le code Scheme dans @var{fichier}."
+#: doc/guix.texi:5579
+msgid "Create an environment for the packages contained in the manifest object returned by the Scheme code in @var{file}.  This option can be repeated several times, in which case the manifests are concatenated."
+msgstr "Crée un environnement pour les paquets contenus dans l'objet manifeste renvoyé par le code Scheme dans @var{fichier}.  Vous pouvez répéter cette option plusieurs fois, auquel cas les manifestes sont concaténés."
 
 #. type: table
-#: doc/guix.texi:4537
+#: doc/guix.texi:5583
 msgid "This is similar to the same-named option in @command{guix package} (@pxref{profile-manifest, @option{--manifest}}) and uses the same manifest files."
 msgstr "C'est similaire à l'option de même nom de @command{guix package} (@pxref{profile-manifest, @option{--manifest}}) et utilise les même fichiers manifestes."
 
 #. type: item
-#: doc/guix.texi:4538
+#: doc/guix.texi:5584
 #, no-wrap
 msgid "--ad-hoc"
 msgstr "--ad-hoc"
 
 #. type: table
-#: doc/guix.texi:4543
+#: doc/guix.texi:5589
 msgid "Include all specified packages in the resulting environment, as if an @i{ad hoc} package were defined with them as inputs.  This option is useful for quickly creating an environment without having to write a package expression to contain the desired inputs."
 msgstr "Inclut tous les paquets spécifiés dans l'environnement qui en résulte, comme si un paquet @i{ad hoc} était spécifié, avec ces paquets comme entrées.  Cette option est utile pour créer un environnement rapidement sans avoir à écrire une expression de paquet contenant les entrées désirées."
 
 #. type: table
-#: doc/guix.texi:4545
+#: doc/guix.texi:5591
 msgid "For instance, the command:"
 msgstr "Par exemple la commande :"
 
 #. type: example
-#: doc/guix.texi:4548
+#: doc/guix.texi:5594
 #, no-wrap
 msgid "guix environment --ad-hoc guile guile-sdl -- guile\n"
 msgstr "guix environment --ad-hoc guile guile-sdl -- guile\n"
 
 #. type: table
-#: doc/guix.texi:4552
+#: doc/guix.texi:5598
 msgid "runs @command{guile} in an environment where Guile and Guile-SDL are available."
 msgstr "lance @command{guile} dans un environnement où Guile et Guile-SDDL sont disponibles."
 
 #. type: table
-#: doc/guix.texi:4557
+#: doc/guix.texi:5603
 msgid "Note that this example implicitly asks for the default output of @code{guile} and @code{guile-sdl}, but it is possible to ask for a specific output---e.g., @code{glib:bin} asks for the @code{bin} output of @code{glib} (@pxref{Packages with Multiple Outputs})."
 msgstr "Remarquez que cet exemple demande implicitement la sortie par défaut de @code{guile} et @code{guile-sdl}, mais il est possible de demander une sortie spécifique — p.@: ex.@: @code{glib:bin} demande la sortie @code{bin} de @code{glib} (@pxref{Packages with Multiple Outputs})."
 
 #. type: table
-#: doc/guix.texi:4563
-msgid "This option may be composed with the default behavior of @command{guix environment}.  Packages appearing before @code{--ad-hoc} are interpreted as packages whose dependencies will be added to the environment, the default behavior.  Packages appearing after are interpreted as packages that will be added to the environment directly."
-msgstr "Cette option peut être composée avec le comportement par défaut de @command{guix environment}.  Les paquets qui apparaissent avant @code{--ad-hoc} sont interprétés comme les paquets dont les dépendances seront ajoutées à l'environnement, le comportement par défaut.  Les paquets qui apparaissent après @code{--ad-hoc} sont interprétés comme les paquets à ajouter à l'environnement directement."
+#: doc/guix.texi:5609
+msgid "This option may be composed with the default behavior of @command{guix environment}.  Packages appearing before @option{--ad-hoc} are interpreted as packages whose dependencies will be added to the environment, the default behavior.  Packages appearing after are interpreted as packages that will be added to the environment directly."
+msgstr "Cette option peut être composée avec le comportement par défaut de @command{guix environment}.  Les paquets qui apparaissent avant @option{--ad-hoc} sont interprétés comme les paquets dont les dépendances seront ajoutées à l'environnement, le comportement par défaut.  Les paquets qui apparaissent après @option{--ad-hoc} sont interprétés comme les paquets à ajouter à l'environnement directement."
 
 #. type: item
-#: doc/guix.texi:4564
+#: doc/guix.texi:5610
 #, no-wrap
 msgid "--pure"
 msgstr "--pure"
 
 #. type: table
-#: doc/guix.texi:4568
-msgid "Unset existing environment variables when building the new environment, except those specified with @option{--preserve} (see below.)  This has the effect of creating an environment in which search paths only contain package inputs."
-msgstr "Nettoie les variables d'environnement existantes lors de la construction du nouvel environnement, sauf celles spécifiées par @option{--preserve} (voir ci-dessous).  Cela a pour effet de créer un environnement dans lequel les chemins de recherche ne contiennent que des entrées de paquets."
+#: doc/guix.texi:5614
+msgid "Unset existing environment variables when building the new environment, except those specified with @option{--preserve} (see below).  This has the effect of creating an environment in which search paths only contain package inputs."
+msgstr "Réinitialisation des variables d'environnement existantes lors de la construction du nouvel environnement, sauf celles spécifiées avec l'option @option{--preserve}. (voir ci-dessous).  Cela a pour effet de créer un environnement dans lequel les chemins de recherche ne contiennent que des entrées de paquets."
 
 #. type: item
-#: doc/guix.texi:4569
+#: doc/guix.texi:5615
 #, no-wrap
 msgid "--preserve=@var{regexp}"
 msgstr "--preserve=@var{regexp}"
 
 #. type: itemx
-#: doc/guix.texi:4570
+#: doc/guix.texi:5616
 #, no-wrap
 msgid "-E @var{regexp}"
 msgstr "-E @var{regexp}"
 
 #. type: table
-#: doc/guix.texi:4575
+#: doc/guix.texi:5621
 msgid "When used alongside @option{--pure}, preserve the environment variables matching @var{regexp}---in other words, put them on a ``white list'' of environment variables that must be preserved.  This option can be repeated several times."
 msgstr "Lorsque vous utilisez @option{--pure}, préserver les variables d'environnement qui correspondent à @var{regexp} — en d'autres termes, cela les met en « liste blanche » de variables d'environnement qui doivent être préservées.  Cette option peut être répétée plusieurs fois."
 
 #. type: example
-#: doc/guix.texi:4579
+#: doc/guix.texi:5625
 #, no-wrap
 msgid ""
 "guix environment --pure --preserve=^SLURM --ad-hoc openmpi @dots{} \\\n"
@@ -9679,111 +11953,105 @@ msgstr ""
 "  -- mpirun @dots{}\n"
 
 #. type: table
-#: doc/guix.texi:4585
-msgid "This example runs @command{mpirun} in a context where the only environment variables defined are @code{PATH}, environment variables whose name starts with @code{SLURM}, as well as the usual ``precious'' variables (@code{HOME}, @code{USER}, etc.)"
-msgstr "Cet exemple exécute @command{mpirun} dans un contexte où les seules variables d'environnement défines sont @code{PATH}, les variables d'environnement dont le nom commence par @code{SLURM}, ainsi que les variables « importante » habituelles (@code{HOME}, @code{USER}, etc.)."
+#: doc/guix.texi:5631
+msgid "This example runs @command{mpirun} in a context where the only environment variables defined are @env{PATH}, environment variables whose name starts with @samp{SLURM}, as well as the usual ``precious'' variables (@env{HOME}, @env{USER}, etc.)."
+msgstr "Cet exemple exécute @command{mpirun} dans un contexte où les seules variables d'environnement définies sont @env{PATH}, les variables d'environnement dont le nom commence par @samp{SLURM}, ainsi que les variables « importantes » habituelles (@env{HOME}, @env{USER}, etc.)."
 
 #. type: item
-#: doc/guix.texi:4586
+#: doc/guix.texi:5632
 #, no-wrap
 msgid "--search-paths"
 msgstr "--search-paths"
 
 #. type: table
-#: doc/guix.texi:4589
+#: doc/guix.texi:5635
 msgid "Display the environment variable definitions that make up the environment."
 msgstr "Affiche les définitions des variables d'environnement qui composent l'environnement."
 
 #. type: table
-#: doc/guix.texi:4593
+#: doc/guix.texi:5639
 msgid "Attempt to build for @var{system}---e.g., @code{i686-linux}."
 msgstr "Essaye de construire pour @var{système} — p.@: ex.@: @code{i686-linux}."
 
 #. type: item
-#: doc/guix.texi:4594
+#: doc/guix.texi:5640
 #, no-wrap
 msgid "--container"
 msgstr "--container"
 
 #. type: itemx
-#: doc/guix.texi:4595
+#: doc/guix.texi:5641
 #, no-wrap
 msgid "-C"
 msgstr "-C"
 
-#. type: item
-#: doc/guix.texi:4596 doc/guix.texi:9974 doc/guix.texi:24515
-#, no-wrap
-msgid "container"
-msgstr "conteneur"
-
 #. type: table
-#: doc/guix.texi:4602
-msgid "Run @var{command} within an isolated container.  The current working directory outside the container is mapped inside the container.  Additionally, unless overridden with @code{--user}, a dummy home directory is created that matches the current user's home directory, and @file{/etc/passwd} is configured accordingly."
-msgstr "Lance @var{commande} dans un conteneur isolé.  Le répertoire de travail actuel en dehors du conteneur est monté dans le conteneur.  En plus, à moins de le changer avec @code{--user}, un répertoire personnel fictif est créé pour correspondre à celui de l'utilisateur actuel et @file{/etc/passwd} est configuré en conséquence."
+#: doc/guix.texi:5648
+msgid "Run @var{command} within an isolated container.  The current working directory outside the container is mapped inside the container.  Additionally, unless overridden with @option{--user}, a dummy home directory is created that matches the current user's home directory, and @file{/etc/passwd} is configured accordingly."
+msgstr "Lance @var{commande} dans un conteneur isolé.  Le répertoire de travail actuel en dehors du conteneur est monté dans le conteneur.  En plus, à moins de le changer avec @option{--user}, un répertoire personnel fictif est créé pour correspondre à celui de l'utilisateur·rice actuel·le et @file{/etc/passwd} est configuré en conséquence."
 
 #. type: table
-#: doc/guix.texi:4606
-msgid "The spawned process runs as the current user outside the container.  Inside the container, it has the same UID and GID as the current user, unless @option{--user} is passed (see below.)"
-msgstr "Le processus est lancé en tant que l'utilisateur actuel en dehors du conteneur.  Dans le conteneur, il a le même UID et GID que l'utilisateur actuel, à moins que vous ne passiez @option{--user} (voir ci-dessous)."
+#: doc/guix.texi:5652
+msgid "The spawned process runs as the current user outside the container.  Inside the container, it has the same UID and GID as the current user, unless @option{--user} is passed (see below)."
+msgstr "Le processus de création s'exécute en tant qu'utilisateur·rice actuel·le à l'extérieur du conteneur.  À l'intérieur du conteneur, il possède les mêmes UID et GID que l'utilisateur·rice actuel·le, sauf si l'option @option{--user} est passée (voir ci-dessous)."
 
 #. type: item
-#: doc/guix.texi:4607
+#: doc/guix.texi:5653 doc/guix.texi:31058
 #, no-wrap
 msgid "--network"
 msgstr "--network"
 
 #. type: table
-#: doc/guix.texi:4612
+#: doc/guix.texi:5658
 msgid "For containers, share the network namespace with the host system.  Containers created without this flag only have access to the loopback device."
 msgstr "Pour les conteneurs, partage l'espace de nom du réseau avec le système hôte.  Les conteneurs créés sans cette option n'ont accès qu'à l'interface de boucle locale."
 
 #. type: item
-#: doc/guix.texi:4613
+#: doc/guix.texi:5659
 #, no-wrap
 msgid "--link-profile"
 msgstr "--link-profile"
 
 #. type: itemx
-#: doc/guix.texi:4614
+#: doc/guix.texi:5660
 #, no-wrap
 msgid "-P"
 msgstr "-P"
 
 #. type: table
-#: doc/guix.texi:4621
-msgid "For containers, link the environment profile to @file{~/.guix-profile} within the container.  This is equivalent to running the command @command{ln -s $GUIX_ENVIRONMENT ~/.guix-profile} within the container.  Linking will fail and abort the environment if the directory already exists, which will certainly be the case if @command{guix environment} was invoked in the user's home directory."
-msgstr "Pour les conteneurs, lie le profil de l'environnement à @file{~/.guix-profile} dans le conteneur.  C'est équivalent à lance la commande @command{ln -s $GUIX_ENVIRONMENT ~/.guix-profile} dans le conteneur.  La liaison échouera et annulera l'environnement si le répertoire existe déjà, ce qui sera sans doute le cas si @command{guix environment} est invoqué dans le répertoire personnel de l'utilisateur."
+#: doc/guix.texi:5668
+msgid "For containers, link the environment profile to @file{~/.guix-profile} within the container and set @code{GUIX_ENVIRONMENT} to that.  This is equivalent to making @file{~/.guix-profile} a symlink to the actual profile within the container.  Linking will fail and abort the environment if the directory already exists, which will certainly be the case if @command{guix environment} was invoked in the user's home directory."
+msgstr "Pour les conteneurs, liez le profil d'environnement à @file{~/.guix-profile} à l'intérieur du conteneur et définissez @code{GUIX_ENVIRONNEMENT} à cet endroit.  Cela équivaut à faire de @file{~/.guix-profile} un lien symbolique vers le profil réel à l'intérieur du conteneur.  La liaison échouera et interrompra l'environnement si le répertoire existe déjà, ce qui sera certainement le cas si @command{guix environment} a été invoqué dans le répertoire personnel de l'utilisateur·rice."
 
 #. type: table
-#: doc/guix.texi:4628
-msgid "Certain packages are configured to look in @code{~/.guix-profile} for configuration files and data;@footnote{For example, the @code{fontconfig} package inspects @file{~/.guix-profile/share/fonts} for additional fonts.} @code{--link-profile} allows these programs to behave as expected within the environment."
-msgstr "Certains paquets sont configurés pour chercher des fichiers de configuration et des données dans @code{~/.guix-profile}@footnote{Par exemple, le paquet @code{fontconfig} inspecte @file{~/.guix-profile/share/fonts} pour trouver des polices supplémentaires.} ; @code{--link-profile} permet à ces programmes de se comporter comme attendu dans l'environnement."
+#: doc/guix.texi:5674
+msgid "Certain packages are configured to look in @file{~/.guix-profile} for configuration files and data;@footnote{For example, the @code{fontconfig} package inspects @file{~/.guix-profile/share/fonts} for additional fonts.} @option{--link-profile} allows these programs to behave as expected within the environment."
+msgstr "Certains paquets sont configurés pour chercher des fichiers de configuration et des données dans @file{~/.guix-profile} ; @footnote{Par exemple, le paquet @code{fontconfig} inspecte @file{~/.guix-profile/share/fonts} pour trouver des polices supplémentaires.} ; @option{--link-profile} permet à ces programmes de se comporter comme attendu dans l'environnement."
 
 #. type: item
-#: doc/guix.texi:4629 doc/guix.texi:9646
+#: doc/guix.texi:5675 doc/guix.texi:12218
 #, no-wrap
 msgid "--user=@var{user}"
 msgstr "--user=@var{utilisateur}"
 
 #. type: itemx
-#: doc/guix.texi:4630 doc/guix.texi:9647
+#: doc/guix.texi:5676 doc/guix.texi:12219
 #, no-wrap
 msgid "-u @var{user}"
 msgstr "-u @var{utilisateur}"
 
 #. type: table
-#: doc/guix.texi:4637
+#: doc/guix.texi:5683
 msgid "For containers, use the username @var{user} in place of the current user.  The generated @file{/etc/passwd} entry within the container will contain the name @var{user}, the home directory will be @file{/home/@var{user}}, and no user GECOS data will be copied.  Furthermore, the UID and GID inside the container are 1000.  @var{user} need not exist on the system."
 msgstr "Pour les conteneurs, utilise le nom d'utilisateur @var{utilisateur} à la place de l'utilisateur actuel.  L'entrée générée dans @file{/etc/passwd} dans le conteneur contiendra le nom @var{utilisateur} ; le répertoire personnel sera @file{/home/@var{utilisateur}} ; et aucune donnée GECOS ne sera copiée.  En plus, l'UID et le GID dans le conteneur seront 1000.  @var{user} n'a pas besoin d'exister sur le système."
 
 #. type: table
-#: doc/guix.texi:4642
-msgid "Additionally, any shared or exposed path (see @code{--share} and @code{--expose} respectively) whose target is within the current user's home directory will be remapped relative to @file{/home/USER}; this includes the automatic mapping of the current working directory."
-msgstr "En plus, tous les chemins partagés ou exposés (voir @code{--share} et @code{--expose} respectivement) dont la cible est dans le répertoire personnel de l'utilisateur seront remontés relativement à @file{/home/UTILISATEUR} ; cela comprend le montage automatique du répertoire de travail actuel."
+#: doc/guix.texi:5688
+msgid "Additionally, any shared or exposed path (see @option{--share} and @option{--expose} respectively) whose target is within the current user's home directory will be remapped relative to @file{/home/USER}; this includes the automatic mapping of the current working directory."
+msgstr "En plus, tous les chemins partagés ou exposés (voir @option{--share} et @option{--expose} respectivement) dont la cible est dans le répertoire personnel de l'utilisateur·rice seront remontés relativement à @file{/home/USER} ; cela comprend le montage automatique du répertoire de travail actuel."
 
 #. type: example
-#: doc/guix.texi:4649
+#: doc/guix.texi:5695
 #, no-wrap
 msgid ""
 "# will expose paths as /home/foo/wd, /home/foo/test, and /home/foo/target\n"
@@ -9799,111 +12067,106 @@ msgstr ""
 "     --expose=/tmp/target=$HOME/target\n"
 
 #. type: table
-#: doc/guix.texi:4654
+#: doc/guix.texi:5700
 msgid "While this will limit the leaking of user identity through home paths and each of the user fields, this is only one useful component of a broader privacy/anonymity solution---not one in and of itself."
 msgstr "Bien que cela limite la fuite de l'identité de l'utilisateur à travers le chemin du répertoire personnel et des champs de l'utilisateur, ce n'est qu'un composant utile pour une solution d'anonymisation ou de préservation de la vie privée — pas une solution en elle-même."
 
 #. type: item
-#: doc/guix.texi:4655
+#: doc/guix.texi:5701
 #, no-wrap
-msgid "--expose=@var{source}[=@var{target}]"
-msgstr "--expose=@var{source}[=@var{cible}]"
+msgid "--no-cwd"
+msgstr "--no-cwd"
 
 #. type: table
-#: doc/guix.texi:4660
-msgid "For containers, expose the file system @var{source} from the host system as the read-only file system @var{target} within the container.  If @var{target} is not specified, @var{source} is used as the target mount point in the container."
-msgstr "Pour les conteneurs, expose le système de fichiers @var{source} du système hôte comme un système de fichiers en lecture seule @var{cible} dans le conteneur.  Si @var{cible} n'est pas spécifiée, @var{source} est utilisé comme point de montage dans le conteneur."
+#: doc/guix.texi:5708
+msgid "For containers, the default behavior is to share the current working directory with the isolated container and immediately change to that directory within the container.  If this is undesirable, @option{--no-cwd} will cause the current working directory to @emph{not} be automatically shared and will change to the user's home directory within the container instead.  See also @option{--user}."
+msgstr "Pour les conteneurs, le comportement par défaut est de partager le répertoire de travail actuel avec le conteneur isolé et de passer immédiatement à ce répertoire à l'intérieur du conteneur.  Si cela n'est pas souhaitable, @option{--no-cwd} fera en sorte que le répertoire de travail courant soit automatiquement partagé @emph{not} et passera au répertoire personnel de l'utilisateur·rice dans le conteneur à la place.  Voir aussi @option{--user}."
 
-#. type: table
-#: doc/guix.texi:4664
-msgid "The example below spawns a Guile REPL in a container in which the user's home directory is accessible read-only via the @file{/exchange} directory:"
-msgstr "L'exemple ci-dessous crée un REPL Guile dans un conteneur dans lequel le répertoire personnel de l'utilisateur est accessible en lecture-seule via le répertoire @file{/exchange} :"
-
-#. type: example
-#: doc/guix.texi:4667
+#. type: item
+#: doc/guix.texi:5709
 #, no-wrap
-msgid "guix environment --container --expose=$HOME=/exchange --ad-hoc guile -- guile\n"
-msgstr "guix environment --container --expose=$HOME=/exchange --ad-hoc guile -- guile\n"
+msgid "--expose=@var{source}[=@var{target}]"
+msgstr "--expose=@var{source}[=@var{cible}]"
 
-#. type: item
-#: doc/guix.texi:4669
+#. type: itemx
+#: doc/guix.texi:5710
 #, no-wrap
 msgid "--share=@var{source}[=@var{target}]"
 msgstr "--share=@var{source}[=@var{cible}]"
 
 #. type: table
-#: doc/guix.texi:4674
-msgid "For containers, share the file system @var{source} from the host system as the writable file system @var{target} within the container.  If @var{target} is not specified, @var{source} is used as the target mount point in the container."
-msgstr "Pour les conteneurs, partage le système de fichiers @var{source} du système hôte comme un système de fichiers en lecture-écriture @var{cible} dans le conteneur.  Si @var{cible} n'est pas spécifiée, @var{source} est utilisée comme point de montage dans le conteneur."
+#: doc/guix.texi:5716
+msgid "For containers, @option{--expose} (resp. @option{--share}) exposes the file system @var{source} from the host system as the read-only (resp. writable) file system @var{target} within the container.  If @var{target} is not specified, @var{source} is used as the target mount point in the container."
+msgstr "Pour les conteneurs, @option{--expose} (resp. @option{--share}) expose le système de fichiers @var{source} du système hôte comme un système de fichiers @var{target} en lecture seule (resp. en lecture-écriture) dans le conteneur.  Si @var{target} n'est pas spécifiée, @var{source} est utilisé comme point de montage dans le conteneur."
 
 #. type: table
-#: doc/guix.texi:4678
-msgid "The example below spawns a Guile REPL in a container in which the user's home directory is accessible for both reading and writing via the @file{/exchange} directory:"
-msgstr "L'exemple ci-dessous crée un REPL Guile dans un conteneur dans lequel le répertoire personnel de l'utilisateur est accessible en lecture-écriture via le répertoire @file{/exchange} :"
+#: doc/guix.texi:5720
+msgid "The example below spawns a Guile REPL in a container in which the user's home directory is accessible read-only via the @file{/exchange} directory:"
+msgstr "L'exemple ci-dessous crée un REPL Guile dans un conteneur dans lequel le répertoire personnel de l'utilisateur est accessible en lecture-seule via le répertoire @file{/exchange} :"
 
 #. type: example
-#: doc/guix.texi:4681
+#: doc/guix.texi:5723
 #, no-wrap
-msgid "guix environment --container --share=$HOME=/exchange --ad-hoc guile -- guile\n"
-msgstr "guix environment --container --share=$HOME=/exchange --ad-hoc guile -- guile\n"
+msgid "guix environment --container --expose=$HOME=/exchange --ad-hoc guile -- guile\n"
+msgstr "guix environment --container --expose=$HOME=/exchange --ad-hoc guile -- guile\n"
 
 #. type: Plain text
-#: doc/guix.texi:4688
+#: doc/guix.texi:5731
 msgid "@command{guix environment} also supports all of the common build options that @command{guix build} supports (@pxref{Common Build Options}) as well as package transformation options (@pxref{Package Transformation Options})."
 msgstr "En plus, @command{guix environment} prend en charge toutes les options de construction communes prises en charge par @command{guix build} (@pxref{Common Build Options}) et toutes les options de transformation de paquets (@pxref{Package Transformation Options})."
 
 #. type: section
-#: doc/guix.texi:4690
+#: doc/guix.texi:5733
 #, no-wrap
 msgid "Invoking @command{guix pack}"
 msgstr "Invoquer @command{guix pack}"
 
 #. type: Plain text
-#: doc/guix.texi:4696
+#: doc/guix.texi:5739
 msgid "Occasionally you want to pass software to people who are not (yet!)  lucky enough to be using Guix.  You'd tell them to run @command{guix package -i @var{something}}, but that's not possible in this case.  This is where @command{guix pack} comes in."
 msgstr "Parfois vous voulez passer un logiciel à des gens qui n'ont pas (encore !) la chance d'utiliser Guix.  Vous leur diriez bien de lancer @command{guix package -i @var{quelque chose}} mais ce n'est pas possible dans ce cas.  C'est là que @command{guix pack} entre en jeu."
 
 #. type: quotation
-#: doc/guix.texi:4701
+#: doc/guix.texi:5744
 msgid "If you are looking for ways to exchange binaries among machines that already run Guix, @pxref{Invoking guix copy}, @ref{Invoking guix publish}, and @ref{Invoking guix archive}."
 msgstr "Si vous cherchez comment échanger des binaires entre des machines où Guix est déjà installé, @pxref{Invoking guix copy}, @ref{Invoking guix publish}, et @ref{Invoking guix archive}."
 
 #. type: cindex
-#: doc/guix.texi:4703
+#: doc/guix.texi:5746
 #, no-wrap
 msgid "pack"
 msgstr "pack"
 
 #. type: cindex
-#: doc/guix.texi:4704
+#: doc/guix.texi:5747
 #, no-wrap
 msgid "bundle"
 msgstr "lot"
 
 #. type: cindex
-#: doc/guix.texi:4705
+#: doc/guix.texi:5748
 #, no-wrap
 msgid "application bundle"
 msgstr "lot d'applications"
 
 #. type: cindex
-#: doc/guix.texi:4706
+#: doc/guix.texi:5749
 #, no-wrap
 msgid "software bundle"
 msgstr "lot de logiciels"
 
 #. type: Plain text
-#: doc/guix.texi:4715
+#: doc/guix.texi:5758
 msgid "The @command{guix pack} command creates a shrink-wrapped @dfn{pack} or @dfn{software bundle}: it creates a tarball or some other archive containing the binaries of the software you're interested in, and all its dependencies.  The resulting archive can be used on any machine that does not have Guix, and people can run the exact same binaries as those you have with Guix.  The pack itself is created in a bit-reproducible fashion, so anyone can verify that it really contains the build results that you pretend to be shipping."
 msgstr "La commande @command{guix pack} crée un @dfn{pack} ou @dfn{lot de logiciels} : elle crée une archive tar ou un autre type d'archive contenant les binaires pour le logiciel qui vous intéresse ainsi que ses dépendances.  L'archive qui en résulte peut être utilisée sur toutes les machines qui n'ont pas Guix et les gens peuvent lancer exactement les mêmes binaires que ceux que vous avez avec Guix.  Le pack lui-même est créé d'une manière reproductible au bit près, pour que n'importe qui puisse vérifier qu'il contient bien les résultats que vous prétendez proposer."
 
 #. type: Plain text
-#: doc/guix.texi:4718
+#: doc/guix.texi:5761
 msgid "For example, to create a bundle containing Guile, Emacs, Geiser, and all their dependencies, you can run:"
 msgstr "Par exemple, pour créer un lot contenant Guile, Emacs, Geiser et toutes leurs dépendances, vous pouvez lancer :"
 
 #. type: example
-#: doc/guix.texi:4723
+#: doc/guix.texi:5766
 #, no-wrap
 msgid ""
 "$ guix pack guile emacs geiser\n"
@@ -9915,175 +12178,206 @@ msgstr ""
 "/gnu/store/@dots{}-pack.tar.gz\n"
 
 #. type: Plain text
-#: doc/guix.texi:4731
+#: doc/guix.texi:5774
 msgid "The result here is a tarball containing a @file{/gnu/store} directory with all the relevant packages.  The resulting tarball contains a @dfn{profile} with the three packages of interest; the profile is the same as would be created by @command{guix package -i}.  It is this mechanism that is used to create Guix's own standalone binary tarball (@pxref{Binary Installation})."
 msgstr "Le résultat ici est une archive tar contenant un répertoire @file{/gnu/store} avec tous les paquets nécessaires.  L'archive qui en résulte contient un @dfn{profil} avec les trois paquets qui vous intéressent ; le profil est le même qui celui qui aurait été créé avec @command{guix package -i}.  C'est ce mécanisme qui est utilisé pour créer les archives tar binaires indépendantes de Guix (@pxref{Binary Installation})."
 
 #. type: Plain text
-#: doc/guix.texi:4736
+#: doc/guix.texi:5779
 msgid "Users of this pack would have to run @file{/gnu/store/@dots{}-profile/bin/guile} to run Guile, which you may find inconvenient.  To work around it, you can create, say, a @file{/opt/gnu/bin} symlink to the profile:"
 msgstr "Les utilisateurs de ce pack devraient lancer @file{/gnu/store/@dots{}-profile/bin/guile} pour lancer Guile, ce qui n'est pas très pratique.  Pour éviter cela, vous pouvez créer, disons, un lien symbolique @file{/opt/gnu/bin} vers le profil :"
 
 #. type: example
-#: doc/guix.texi:4739
+#: doc/guix.texi:5782
 #, no-wrap
 msgid "guix pack -S /opt/gnu/bin=bin guile emacs geiser\n"
 msgstr "guix pack -S /opt/gnu/bin=bin guile emacs geiser\n"
 
 #. type: Plain text
-#: doc/guix.texi:4743
+#: doc/guix.texi:5786
 msgid "That way, users can happily type @file{/opt/gnu/bin/guile} and enjoy."
 msgstr "De cette façon, les utilisateurs peuvent joyeusement taper @file{/opt/gnu/bin/guile} et profiter."
 
 #. type: cindex
-#: doc/guix.texi:4744
+#: doc/guix.texi:5787
 #, no-wrap
 msgid "relocatable binaries, with @command{guix pack}"
 msgstr "binaires repositionnables, avec @command{guix pack}"
 
 #. type: Plain text
-#: doc/guix.texi:4752
-msgid "What if the recipient of your pack does not have root privileges on their machine, and thus cannot unpack it in the root file system? In that case, you will want to use the @code{--relocatable} option (see below).  This option produces @dfn{relocatable binaries}, meaning they they can be placed anywhere in the file system hierarchy: in the example above, users can unpack your tarball in their home directory and directly run @file{./opt/gnu/bin/guile}."
-msgstr "Et si le destinataire de votre pack n'a pas les privilèges root sur sa machine, et ne peut donc pas le décompresser dans le système de fichiers racine ?  Dans ce cas, vous pourriez utiliser l'option @code{--relocatable} (voir plus bas).  Cette option produit des @dfn{binaire repositionnables}, ce qui signifie qu'ils peuvent être placés n'importe où dans l'arborescence du système de fichiers : dans l'exemple au-dessus, les utilisateurs peuvent décompresser votre archive dans leur répertoire personnel et lancer directement @file{./opt/gnu/bin/guile}."
+#: doc/guix.texi:5795
+msgid "What if the recipient of your pack does not have root privileges on their machine, and thus cannot unpack it in the root file system? In that case, you will want to use the @option{--relocatable} option (see below).  This option produces @dfn{relocatable binaries}, meaning they they can be placed anywhere in the file system hierarchy: in the example above, users can unpack your tarball in their home directory and directly run @file{./opt/gnu/bin/guile}."
+msgstr "Et si le destinataire de votre pack n'a pas les privilèges root sur sa machine, et ne peut donc pas le décompresser dans le système de fichiers root ?  Dans ce cas, vous pourriez utiliser l'option @code{--relocatable} (voir plus bas).  Cette option produit des @dfn{binaires repositionnables}, ce qui signifie qu'ils peuvent être placés n'importe où dans l'arborescence du système de fichiers : dans l'exemple au-dessus, les utilisateur·rice·s peuvent décompresser votre archive dans leur répertoire personnel et lancer directement @file{./opt/gnu/bin/guile}."
 
 #. type: cindex
-#: doc/guix.texi:4753
+#: doc/guix.texi:5796
 #, no-wrap
 msgid "Docker, build an image with guix pack"
 msgstr "Docker, construire une image avec guix pack"
 
 #. type: Plain text
-#: doc/guix.texi:4756
+#: doc/guix.texi:5799
 msgid "Alternatively, you can produce a pack in the Docker image format using the following command:"
 msgstr "Autrement, vous pouvez produire un pack au format d'image Docker avec la commande suivante :"
 
 #. type: example
-#: doc/guix.texi:4759
+#: doc/guix.texi:5802
 #, no-wrap
-msgid "guix pack -f docker guile emacs geiser\n"
-msgstr "guix pack -f docker guile emacs geiser\n"
+msgid "guix pack -f docker -S /bin=bin guile guile-readline\n"
+msgstr "guix pack -f docker -S /bin=bin guile guile-readline\n"
 
 #. type: Plain text
-#: doc/guix.texi:4766
-msgid "The result is a tarball that can be passed to the @command{docker load} command.  See the @uref{https://docs.docker.com/engine/reference/commandline/load/, Docker documentation} for more information."
-msgstr "Le résultat est une archive tar qui peut être passée à la commande @command{docker load}.  Voir la @uref{https://docs.docker.com/engine/reference/commandline/load/, documentation de Docker} pour plus d'informations."
+#: doc/guix.texi:5807
+msgid "The result is a tarball that can be passed to the @command{docker load} command, followed by @code{docker run}:"
+msgstr "Le résultat est une archive tar qui peut être passée à la commande @command{docker load}, puis à @code{docker run} :"
+
+#. type: example
+#: doc/guix.texi:5811
+#, no-wrap
+msgid ""
+"docker load < @var{file}\n"
+"docker run -ti guile-guile-readline /bin/guile\n"
+msgstr ""
+"docker load < @var{file}\n"
+"docker run -ti guile-guile-readline /bin/guile\n"
+
+#. type: Plain text
+#: doc/guix.texi:5818
+msgid "where @var{file} is the image returned by @var{guix pack}, and @code{guile-guile-readline} is its ``image tag''.  See the @uref{https://docs.docker.com/engine/reference/commandline/load/, Docker documentation} for more information."
+msgstr "où @var{fichier} est l'image renvoyée par @var{guix pack} et @code{guile-guile-readline} est son « tag d'image ».  Voir la @uref{https://docs.docker.com/engine/reference/commandline/load/, documentation de Docker} pour plus d'informations."
 
 #. type: cindex
-#: doc/guix.texi:4767
+#: doc/guix.texi:5819
 #, no-wrap
 msgid "Singularity, build an image with guix pack"
 msgstr "Singularity, construire une image avec guix pack"
 
 #. type: cindex
-#: doc/guix.texi:4768
+#: doc/guix.texi:5820
 #, no-wrap
 msgid "SquashFS, build an image with guix pack"
 msgstr "SquashFS, construire une image avec guix pack"
 
 #. type: Plain text
-#: doc/guix.texi:4771
+#: doc/guix.texi:5823
 msgid "Yet another option is to produce a SquashFS image with the following command:"
 msgstr "Autrement, vous pouvez produire une image SquashFS avec la commande suivante :"
 
 #. type: example
-#: doc/guix.texi:4774
+#: doc/guix.texi:5826
 #, no-wrap
-msgid "guix pack -f squashfs guile emacs geiser\n"
-msgstr "guix pack -f squashfs guile emacs geiser\n"
+msgid "guix pack -f squashfs bash guile emacs geiser\n"
+msgstr "guix pack -f squashfs bash guile emacs geiser\n"
 
 #. type: Plain text
-#: doc/guix.texi:4782
-msgid "The result is a SquashFS file system image that can either be mounted or directly be used as a file system container image with the @uref{https://singularity.lbl.gov, Singularity container execution environment}, using commands like @command{singularity shell} or @command{singularity exec}."
-msgstr "Le résultat est une image de système de fichiers SquashFS qui peut soit être montée directement soit être utilisée comme image de conteneur de système de fichiers avec l'@uref{https://singularity.lbl.gov, environnement d'exécution conteneurisé Singularity}, avec des commandes comme @command{singularity shell} ou @command{singularity exec}."
+#: doc/guix.texi:5834
+msgid "The result is a SquashFS file system image that can either be mounted or directly be used as a file system container image with the @uref{https://www.sylabs.io/docs/, Singularity container execution environment}, using commands like @command{singularity shell} or @command{singularity exec}."
+msgstr "Le résultat est une image de système de fichiers SquashFS qui peut soit être montée directement soit être utilisée comme image de conteneur de système de fichiers avec l'@uref{https://singularity.lbl.gov, Singularity container execution environment}, avec des commandes comme @command{singularity shell} ou @command{singularity exec}."
 
 #. type: Plain text
-#: doc/guix.texi:4784
+#: doc/guix.texi:5836
 msgid "Several command-line options allow you to customize your pack:"
 msgstr "Diverses options en ligne de commande vous permettent de personnaliser votre pack :"
 
 #. type: table
-#: doc/guix.texi:4789
+#: doc/guix.texi:5841
 msgid "Produce a pack in the given @var{format}."
 msgstr "Produire un pack dans le @var{format} donné."
 
 #. type: table
-#: doc/guix.texi:4791
+#: doc/guix.texi:5843
 msgid "The available formats are:"
 msgstr "Les formats disponibles sont :"
 
 #. type: item
-#: doc/guix.texi:4793
+#: doc/guix.texi:5845
 #, no-wrap
 msgid "tarball"
 msgstr "tarball"
 
 #. type: table
-#: doc/guix.texi:4796
+#: doc/guix.texi:5848
 msgid "This is the default format.  It produces a tarball containing all the specified binaries and symlinks."
 msgstr "C'est le format par défaut.  Il produit une archive tar contenant tous les binaires et les liens symboliques spécifiés."
 
 #. type: item
-#: doc/guix.texi:4797
+#: doc/guix.texi:5849
 #, no-wrap
 msgid "docker"
 msgstr "docker"
 
 #. type: table
-#: doc/guix.texi:4801
-msgid "This produces a tarball that follows the @uref{https://github.com/docker/docker/blob/master/image/spec/v1.2.md, Docker Image Specification}."
-msgstr "Cela produit une archive tar qui suit la @uref{https://github.com/docker/docker/blob/master/image/spec/v1.2.md, spécification des images Docker}."
+#: doc/guix.texi:5855
+msgid "This produces a tarball that follows the @uref{https://github.com/docker/docker/blob/master/image/spec/v1.2.md, Docker Image Specification}.  The ``repository name'' as it appears in the output of the @command{docker images} command is computed from package names passed on the command line or in the manifest file."
+msgstr "Cela produit une archive tar qui suit la @uref{https://github.com/docker/docker/blob/master/image/spec/v1.2.md, spécification des images Docker}.  Le « nom de dépôt » qui apparaît dans la sortie de la command @command{docker images} est calculé à partir des noms des paquets passés sur la ligne de commande ou dans le fichier manifeste."
 
 #. type: item
-#: doc/guix.texi:4802
+#: doc/guix.texi:5856
 #, no-wrap
 msgid "squashfs"
 msgstr "squashfs"
 
 #. type: table
-#: doc/guix.texi:4806
+#: doc/guix.texi:5860
 msgid "This produces a SquashFS image containing all the specified binaries and symlinks, as well as empty mount points for virtual file systems like procfs."
 msgstr "Cela produit une image SquashFS contenant tous les binaires et liens symboliques spécifiés, ainsi que des points de montages vides pour les systèmes de fichiers virtuels comme procfs."
 
+#. type: quotation
+#: doc/guix.texi:5866
+msgid "Singularity @emph{requires} you to provide @file{/bin/sh} in the image.  For that reason, @command{guix pack -f squashfs} always implies @code{-S /bin=bin}.  Thus, your @command{guix pack} invocation must always start with something like:"
+msgstr "Singularity @emph{requiert} que vous fournissiez @file{/bin/sh} dans l'image.  Pour cette raison, @command{guix pack -f squashfs} implique toujours @code{-S /bin=bin}.  Ainsi, votre invocation @command{guix pack} doit toujours commencer par quelque chose comme :"
+
+#. type: example
+#: doc/guix.texi:5869
+#, no-wrap
+msgid "guix pack -f squashfs bash @dots{}\n"
+msgstr "guix pack -f squashfs bash @dots{}\n"
+
+#. type: quotation
+#: doc/guix.texi:5874
+msgid "If you forget the @code{bash} (or similar) package, @command{singularity run} and @command{singularity exec} will fail with an unhelpful ``no such file or directory'' message."
+msgstr "Si vous oubliez le paquet @code{bash} (ou similaire), @command{singularity run} et @command{singularity exec} vont échouer avec un message « no such file or directory » peu utile."
+
 #. type: cindex
-#: doc/guix.texi:4808
+#: doc/guix.texi:5877
 #, no-wrap
 msgid "relocatable binaries"
 msgstr "binaires repositionnables"
 
 #. type: item
-#: doc/guix.texi:4809
+#: doc/guix.texi:5878
 #, no-wrap
 msgid "--relocatable"
 msgstr "--relocatable"
 
 #. type: table
-#: doc/guix.texi:4813
+#: doc/guix.texi:5882
 msgid "Produce @dfn{relocatable binaries}---i.e., binaries that can be placed anywhere in the file system hierarchy and run from there."
 msgstr "Produire des @dfn{binaires repositionnables} — c.-à-d.@: des binaires que vous pouvez placer n'importe où dans l'arborescence du système de fichiers et les lancer à partir de là."
 
 #. type: table
-#: doc/guix.texi:4821
-msgid "When this option is passed once, the resulting binaries require support for @dfn{user namespaces} in the kernel Linux; when passed @emph{twice}@footnote{Here's a trick to memorize it: @code{-RR}, which adds PRoot support, can be thought of as the abbreviation of ``Really Relocatable''.  Neat, isn't it?}, relocatable binaries fall to back to PRoot if user namespaces are unavailable, and essentially work anywhere---see below for the implications."
-msgstr "Lorsque vous passez cette option une fois, les binaires qui en résultent demandent le support des @dfn{espaces de nom utilisateurs} dans le noyau Linux ; lorsque vous la passez @emph{deux} fois@footnote{Il y a une astuce pour s'en rappeler : on peut envisager @code{RR}, qui ajoute le support PRoot, comme étant l'abréviation de « Réellement Repositionnable ».  Pas mal, hein ?}, les binaires repositionnables utilisent PRoot si les espaces de noms ne sont pas utilisables, et ça fonctionne partout — voir plus bas pour comprendre les implications."
+#: doc/guix.texi:5890
+msgid "When this option is passed once, the resulting binaries require support for @dfn{user namespaces} in the kernel Linux; when passed @emph{twice}@footnote{Here's a trick to memorize it: @code{-RR}, which adds PRoot support, can be thought of as the abbreviation of ``Really Relocatable''.  Neat, isn't it?}, relocatable binaries fall to back to other techniques if user namespaces are unavailable, and essentially work anywhere---see below for the implications."
+msgstr "Lorsque vous passez cette option une fois, les binaires qui en résultent demandent le support des @dfn{espaces de nom utilisateurs} dans le noyau Linux ; lorsque vous la passez @emph{deux fois}@footnote{Il y a une astuce pour s'en souvenir : on peut envisager @code{-RR}, qui ajoute le support PRoot, comme étant l'abréviation de « Réellement Repositionnable ».  Pas mal, hein ?}, les binaires repositionnables utilisent PRoot si les espaces de noms ne sont pas utilisables, et ça fonctionne à peu près partout — voir plus bas pour comprendre les implications."
 
 #. type: table
-#: doc/guix.texi:4823
+#: doc/guix.texi:5892
 msgid "For example, if you create a pack containing Bash with:"
 msgstr "Par exemple, si vous créez un pack contenant Bash avec :"
 
 #. type: example
-#: doc/guix.texi:4826
+#: doc/guix.texi:5895
 #, no-wrap
 msgid "guix pack -RR -S /mybin=bin bash\n"
 msgstr "guix pack -RR -S /mybin=bin bash\n"
 
 #. type: table
-#: doc/guix.texi:4831
+#: doc/guix.texi:5900
 msgid "...@: you can copy that pack to a machine that lacks Guix, and from your home directory as a normal user, run:"
 msgstr "…@: vous pouvez copier ce pack sur une machine qui n'a pas Guix et depuis votre répertoire personnel en tant qu'utilisateur non-privilégié, lancer :"
 
 #. type: example
-#: doc/guix.texi:4835
+#: doc/guix.texi:5904
 #, no-wrap
 msgid ""
 "tar xf pack.tar.gz\n"
@@ -10093,243 +12387,521 @@ msgstr ""
 "./mybin/sh\n"
 
 #. type: table
-#: doc/guix.texi:4843
+#: doc/guix.texi:5912
 msgid "In that shell, if you type @code{ls /gnu/store}, you'll notice that @file{/gnu/store} shows up and contains all the dependencies of @code{bash}, even though the machine actually lacks @file{/gnu/store} altogether! That is probably the simplest way to deploy Guix-built software on a non-Guix machine."
 msgstr "Dans ce shell, si vous tapez @code{ls /gnu/store}, vous remarquerez que @file{/gnu/store} apparaît et contient toutes les dépendances de @code{bash}, même si la machine n'a pas du tout de @file{/gnu/store} !  C'est sans doute la manière la plus simple de déployer du logiciel construit avec Guix sur une machine sans Guix."
 
 #. type: quotation
-#: doc/guix.texi:4849
+#: doc/guix.texi:5918
 msgid "By default, relocatable binaries rely on the @dfn{user namespace} feature of the kernel Linux, which allows unprivileged users to mount or change root.  Old versions of Linux did not support it, and some GNU/Linux distributions turn it off."
 msgstr "Par défaut ,les binaires repositionnables s'appuient sur les @dfn{espaces de noms utilisateurs} du noyau Linux, qui permet à des utilisateurs non-privilégiés d'effectuer des montages et de changer de racine.  Les anciennes versions de Linux ne le supportait pas et certaines distributions GNU/Linux le désactive."
 
 #. type: quotation
-#: doc/guix.texi:4854
-msgid "To produce relocatable binaries that work even in the absence of user namespaces, pass @option{--relocatable} or @option{-R} @emph{twice}.  In that case, binaries will try user namespace support and fall back to PRoot if user namespaces are not supported."
-msgstr "Pour produire des binaires repositionnables qui fonctionnent même sans espace de nom utilisateur, passez @option{--relocatable} ou @option{-R} @emph{deux fois}.  Dans ce cas, les binaires testeront la prise en charge des espaces de noms utilisateurs et utiliseront PRoot s'ils ne sont pas pris en charge."
+#: doc/guix.texi:5924
+msgid "To produce relocatable binaries that work even in the absence of user namespaces, pass @option{--relocatable} or @option{-R} @emph{twice}.  In that case, binaries will try user namespace support and fall back to another @dfn{execution engine} if user namespaces are not supported.  The following execution engines are supported:"
+msgstr "Pour produire des binaires repositionnables qui fonctionnent même sans espace de nom utilisatrice·eur, passez @option{--relocatable} ou @option{-R} @emph{deux fois}.  Dans ce cas, les binaires testeront la prise en charge des espaces de noms utilisatrice·eur·s et utiliseront PRoot s'ils ne sont pas pris en charge. Les moteurs d'exécution suivants sont pris en charge :"
+
+#. type: item
+#: doc/guix.texi:5926 doc/guix.texi:15697
+#, no-wrap
+msgid "default"
+msgstr "default"
+
+#. type: table
+#: doc/guix.texi:5929
+msgid "Try user namespaces and fall back to PRoot if user namespaces are not supported (see below)."
+msgstr "Essayez les espaces de noms utilisateur·rice·s et revenez à PRoot si les espaces de noms utilisateur·rice·s ne sont pas pris en charge (voir ci-dessous)."
+
+#. type: item
+#: doc/guix.texi:5930
+#, no-wrap
+msgid "performance"
+msgstr "performance"
+
+#. type: table
+#: doc/guix.texi:5933
+msgid "Try user namespaces and fall back to Fakechroot if user namespaces are not supported (see below)."
+msgstr "Essayez les espaces de noms utilisateur·rice·s et revenez à Fakechroot si les espaces de noms utilisateur·rice·s ne sont pas pris en charge (voir ci-dessous)."
+
+# Le message original  'userns'  semble contenir une coquille. 'users' serait
+# adapté semble-t-il.
+#. type: item
+#: doc/guix.texi:5934
+#, no-wrap
+msgid "userns"
+msgstr "users"
+
+#. type: table
+#: doc/guix.texi:5937
+msgid "Run the program through user namespaces and abort if they are not supported."
+msgstr "Lance le programme à travers les espaces de nom utilisateur·rice et échoue s'ils ne sont pas supportés."
+
+#. type: item
+#: doc/guix.texi:5938
+#, no-wrap
+msgid "proot"
+msgstr "proot"
+
+#. type: table
+#: doc/guix.texi:5945
+msgid "Run through PRoot.  The @uref{https://proot-me.github.io/, PRoot} program provides the necessary support for file system virtualization.  It achieves that by using the @code{ptrace} system call on the running program.  This approach has the advantage to work without requiring special kernel support, but it incurs run-time overhead every time a system call is made."
+msgstr "Passez à travers PRoot. Le programme @uref{https://proot-me.github.io/, PRoot} fournit la prise en charge nécessaire pour la virtualisation du système de fichier.  Il y parvient en utilisant l'appel système @code{ptrace} sur le programme courant.  Cette approche a l'avantage de fonctionner sans demander de support spécial de la part du noyau, mais occasionne un coût supplémentaire en temps pour chaque appel système effectué."
+
+#. type: item
+#: doc/guix.texi:5946
+#, no-wrap
+msgid "fakechroot"
+msgstr "fakechroot"
+
+#. type: table
+#: doc/guix.texi:5954
+msgid "Run through Fakechroot.  @uref{https://github.com/dex4er/fakechroot/, Fakechroot} virtualizes file system accesses by intercepting calls to C library functions such as @code{open}, @code{stat}, @code{exec}, and so on.  Unlike PRoot, it incurs very little overhead.  However, it does not always work: for example, some file system accesses made from within the C library are not intercepted, and file system accesses made @i{via} direct syscalls are not intercepted either, leading to erratic behavior."
+msgstr "Passez à travers Fakechroot.  @uref{https://github.com/dex4er/fakechroot/, Fakechroot} virtualise les accès au système de fichier en interceptant les appels vers les fonctions de la bibliothèque C telles que @code{open}, @code{stat}, @code{exec}, et ainsi de suite. Contrairement à PRoot, il n'engendre que très peu de coûts généraux. Cependant, il ne fonctionne pas encore tout-à-fait : par exemple, certains accès au système de fichier effectués à partir de la bibliothèque C ne sont pas interceptés, et les accès au système de fichier effectués @i{via} les appels système directs ne sont pas non plus interceptés, conduisant à un comportement erratique."
+
+#. type: vindex
+#: doc/guix.texi:5956
+#, no-wrap
+msgid "GUIX_EXECUTION_ENGINE"
+msgstr "GUIX_EXECUTION_ENGINE"
 
 #. type: quotation
-#: doc/guix.texi:4860
-msgid "The @uref{https://proot-me.github.io/, PRoot} program provides the necessary support for file system virtualization.  It achieves that by using the @code{ptrace} system call on the running program.  This approach has the advantage to work without requiring special kernel support, but it incurs run-time overhead every time a system call is made."
-msgstr "Le programme @uref{https://proot-me.github.io/, PRoot} fournit la prise en charge nécessaire pour la virtualisation du système de fichier.  Il y arrive en utilisant l'appel système @code{ptrace} sur le programme.  Cette approche a l'avantage de fonctionner sans demander de support spécial de la part du noyau, mais occasionne un coût supplémentaire en temps pour chaque appel système effectué."
+#: doc/guix.texi:5960
+msgid "When running a wrapped program, you can explicitly request one of the execution engines listed above by setting the @env{GUIX_EXECUTION_ENGINE} environment variable accordingly."
+msgstr "Lors de l'exécution d'un programme complet, vous pouvez demander explicitement l'un des moteurs d'exécution énumérés ci-dessus en définissant en conséquence la variable d'environnement @env{GUIX_EXECUTION_ENGINE}."
+
+#. type: cindex
+#: doc/guix.texi:5962
+#, no-wrap
+msgid "entry point, for Docker images"
+msgstr "point d'entrée, pour les images Docker"
+
+#. type: item
+#: doc/guix.texi:5963
+#, no-wrap
+msgid "--entry-point=@var{command}"
+msgstr "--entry-point=@var{commande}"
+
+#. type: table
+#: doc/guix.texi:5968
+msgid "Use @var{command} as the @dfn{entry point} of the resulting pack, if the pack format supports it---currently @code{docker} and @code{squashfs} (Singularity)  support it.  @var{command} must be relative to the profile contained in the pack."
+msgstr "Utiliser @var{commande} comme @dfn{point d'entrée} du paquet résultant, si le format du paquet le supporte--actuellement @code{docker} et @code{squashfs} (Singularity) la supportent.  @var{command} doit être relatif au profil contenu dans le pack."
+
+#. type: table
+#: doc/guix.texi:5972
+msgid "The entry point specifies the command that tools like @code{docker run} or @code{singularity run} automatically start by default.  For example, you can do:"
+msgstr "Le point d'entrée spécifie la commande que des outils comme @code{docker run} or @code{singularity run} lancent automatiquement par défaut. Par exemple, vous pouvez faire :"
+
+#. type: example
+#: doc/guix.texi:5975
+#, no-wrap
+msgid "guix pack -f docker --entry-point=bin/guile guile\n"
+msgstr "guix pack -f docker --entry-point=bin/guile guile\n"
 
 #. type: table
-#: doc/guix.texi:4865 doc/guix.texi:8878 doc/guix.texi:9536
+#: doc/guix.texi:5979
+msgid "The resulting pack can easily be loaded and @code{docker run} with no extra arguments will spawn @code{bin/guile}:"
+msgstr "Le pack résultant peut être facilement chargé et @code{docker run} sans arguments supplémentaires engendrera @code{bin/guile} :"
+
+#. type: example
+#: doc/guix.texi:5983
+#, no-wrap
+msgid ""
+"docker load -i pack.tar.gz\n"
+"docker run @var{image-id}\n"
+msgstr ""
+"docker load -i pack.tar.gz\n"
+"docker run @var{image-id}\n"
+
+#. type: table
+#: doc/guix.texi:5988 doc/guix.texi:11308 doc/guix.texi:12093
 msgid "Consider the package @var{expr} evaluates to."
 msgstr "Considérer le paquet évalué par @var{expr}."
 
 #. type: table
-#: doc/guix.texi:4869
-msgid "This has the same purpose as the same-named option in @command{guix build} (@pxref{Additional Build Options, @code{--expression} in @command{guix build}})."
-msgstr "Cela a le même but que l'option de même nom de @command{guix build} (@pxref{Additional Build Options, @code{--expression} dans @command{guix build}})."
+#: doc/guix.texi:5992
+msgid "This has the same purpose as the same-named option in @command{guix build} (@pxref{Additional Build Options, @option{--expression} in @command{guix build}})."
+msgstr "Cela a le but identique que l'option de même nom de @command{guix build} (@pxref{Additional Build Options, @code{--expression} dans @command{guix build}})."
 
 #. type: table
-#: doc/guix.texi:4874
-msgid "Use the packages contained in the manifest object returned by the Scheme code in @var{file}."
-msgstr "Utiliser les paquets contenus dans l'objet manifeste renvoyé par le code Scheme dans @var{fichier}"
+#: doc/guix.texi:5998
+msgid "Use the packages contained in the manifest object returned by the Scheme code in @var{file}.  This option can be repeated several times, in which case the manifests are concatenated."
+msgstr "Utiliser les paquets contenus dans l'objet manifeste renvoyé par le code Scheme dans @var{fichier}.  Vous pouvez répéter cette option plusieurs fois, auquel cas les manifestes sont concaténés."
 
 #. type: table
-#: doc/guix.texi:4882
+#: doc/guix.texi:6006
 msgid "This has a similar purpose as the same-named option in @command{guix package} (@pxref{profile-manifest, @option{--manifest}}) and uses the same manifest files.  It allows you to define a collection of packages once and use it both for creating profiles and for creating archives for use on machines that do not have Guix installed.  Note that you can specify @emph{either} a manifest file @emph{or} a list of packages, but not both."
 msgstr "Elle a un but similaire à l'option de même nom dans @command{guix package} (@pxref{profile-manifest, @option{--manifest}}) et utilise les mêmes fichiers manifeste.  Ils vous permettent de définir une collection de paquets une fois et de l'utiliser aussi bien pour créer des profils que pour créer des archives pour des machines qui n'ont pas Guix d'installé.  Remarquez que vous pouvez spécifier @emph{soit} un fichier manifeste, @emph{soit} une liste de paquet, mais pas les deux."
 
 #. type: item
-#: doc/guix.texi:4888 doc/guix.texi:8100
+#: doc/guix.texi:6012 doc/guix.texi:10477
 #, no-wrap
 msgid "--target=@var{triplet}"
 msgstr "--target=@var{triplet}"
 
 #. type: cindex
-#: doc/guix.texi:4889 doc/guix.texi:5235 doc/guix.texi:8101
+#: doc/guix.texi:6013 doc/guix.texi:6464 doc/guix.texi:10478
 #, no-wrap
 msgid "cross-compilation"
 msgstr "compilation croisée"
 
 #. type: table
-#: doc/guix.texi:4893
-msgid "Cross-build for @var{triplet}, which must be a valid GNU triplet, such as @code{\"mips64el-linux-gnu\"} (@pxref{Specifying target triplets, GNU configuration triplets,, autoconf, Autoconf})."
-msgstr "Effectuer une compilation croisée pour @var{triplet} qui doit être un triplet GNU valide, comme @code{\"mips64el-linux-gnu\"} (@pxref{Specifying target triplets, GNU configuration triplets,, autoconf, Autoconf})."
+#: doc/guix.texi:6017
+msgid "Cross-build for @var{triplet}, which must be a valid GNU triplet, such as @code{\"aarch64-linux-gnu\"} (@pxref{Specifying target triplets, GNU configuration triplets,, autoconf, Autoconf})."
+msgstr "Effectuer une compilation croisée pour @var{triplet} qui doit être un triplet GNU valide, comme @code{\"\"aarch64-linux-gnu\"\"} (@pxref{Specifying target triplets, GNU configuration triplets,, autoconf, Autoconf})."
 
 #. type: item
-#: doc/guix.texi:4894
+#: doc/guix.texi:6018
 #, no-wrap
 msgid "--compression=@var{tool}"
 msgstr "--compression=@var{outil}"
 
 #. type: itemx
-#: doc/guix.texi:4895
+#: doc/guix.texi:6019
 #, no-wrap
 msgid "-C @var{tool}"
 msgstr "-C @var{outil}"
 
 #. type: table
-#: doc/guix.texi:4898
-msgid "Compress the resulting tarball using @var{tool}---one of @code{gzip}, @code{bzip2}, @code{xz}, @code{lzip}, or @code{none} for no compression."
-msgstr "Compresser l'archive résultante avec @var{outil} — l'un des outils parmi @code{bzip2}, @code{xz}, @code{lzip} ou @code{none} pour aucune compression."
+#: doc/guix.texi:6023
+msgid "Compress the resulting tarball using @var{tool}---one of @code{gzip}, @code{zstd}, @code{bzip2}, @code{xz}, @code{lzip}, or @code{none} for no compression."
+msgstr "Compresser l'archive résultante avec @var{outil} — l'un des outils parmi @code{gzip}, @code{zstd}, @code{bzip2}, @code{xz}, @code{lzip}, ou @code{none} pour aucune compression."
 
 #. type: item
-#: doc/guix.texi:4899
+#: doc/guix.texi:6024
 #, no-wrap
 msgid "--symlink=@var{spec}"
 msgstr "--symlink=@var{spec}"
 
 #. type: itemx
-#: doc/guix.texi:4900
+#: doc/guix.texi:6025
 #, no-wrap
 msgid "-S @var{spec}"
 msgstr "-S @var{spec}"
 
 #. type: table
-#: doc/guix.texi:4903
+#: doc/guix.texi:6028
 msgid "Add the symlinks specified by @var{spec} to the pack.  This option can appear several times."
 msgstr "Ajouter les liens symboliques spécifiés par @var{spec} dans le pack.  Cette option peut apparaître plusieurs fois."
 
 #. type: table
-#: doc/guix.texi:4907
+#: doc/guix.texi:6032
 msgid "@var{spec} has the form @code{@var{source}=@var{target}}, where @var{source} is the symlink that will be created and @var{target} is the symlink target."
 msgstr "@var{spec} a la forme @code{@var{source}=@var{cible}}, où @var{source} est le lien symbolique qui sera créé et @var{cible} est la cible du lien."
 
 #. type: table
-#: doc/guix.texi:4910
+#: doc/guix.texi:6035
 msgid "For instance, @code{-S /opt/gnu/bin=bin} creates a @file{/opt/gnu/bin} symlink pointing to the @file{bin} sub-directory of the profile."
 msgstr "Par exemple, @code{-S /opt/gnu/bin=bin} crée un lien symbolique @file{/opt/gnu/bin} qui pointe vers le sous-répertoire @file{bin} du profil."
 
 #. type: item
-#: doc/guix.texi:4911
+#: doc/guix.texi:6036 doc/guix.texi:31017
 #, no-wrap
 msgid "--save-provenance"
 msgstr "--save-provenance"
 
 #. type: table
-#: doc/guix.texi:4915
+#: doc/guix.texi:6040
 msgid "Save provenance information for the packages passed on the command line.  Provenance information includes the URL and commit of the channels in use (@pxref{Channels})."
 msgstr "Sauvegarder les informations de provenance des paquets passés sur la ligne de commande.  Les informations de provenance contiennent l'URL et le commit des canaux utilisés (@pxref{Channels})."
 
 #. type: table
-#: doc/guix.texi:4921
+#: doc/guix.texi:6046
 msgid "Provenance information is saved in the @file{/gnu/store/@dots{}-profile/manifest} file in the pack, along with the usual package metadata---the name and version of each package, their propagated inputs, and so on.  It is useful information to the recipient of the pack, who then knows how the pack was (supposedly) obtained."
 msgstr "Les informations de provenance sont sauvegardées dans le fichier @file{/gnu/store/@dots{}-profile/manifest} du pack, avec les métadonnées de paquets habituelles — le nom et la version de chaque paquet, leurs entrées propagées, etc.  Ce sont des informations utiles pour le destinataire du pack, qui sait alors comment le pack a (normalement) été obtenu."
 
 #. type: table
-#: doc/guix.texi:4927
+#: doc/guix.texi:6052
 msgid "This option is not enabled by default because, like timestamps, provenance information contributes nothing to the build process.  In other words, there is an infinity of channel URLs and commit IDs that can lead to the same pack.  Recording such ``silent'' metadata in the output thus potentially breaks the source-to-binary bitwise reproducibility property."
 msgstr "Cette option n'est pas activée par défaut car, comme l'horodatage, les informations de provenance ne contribuent en rien au processus de construction.  En d'autres termes, il y a une infinité d'URL et d'ID de commit qui permettent d'obtenir le même pack.  Enregistrer de telles métadonnées « silencieuses » dans la sortie casse donc éventuellement la propriété de reproductibilité au bit près."
 
+#. type: cindex
+#: doc/guix.texi:6055
+#, no-wrap
+msgid "garbage collector root, for packs"
+msgstr "racines du ramasse-miettes, pour les packs"
+
+#. type: table
+#: doc/guix.texi:6058
+msgid "Make @var{file} a symlink to the resulting pack, and register it as a garbage collector root."
+msgstr "Fait de @var{fichier} un lien symbolique vers le résultat, et l'enregistre en tant que racine du ramasse-miettes."
+
 #. type: item
-#: doc/guix.texi:4928
+#: doc/guix.texi:6059
 #, no-wrap
 msgid "--localstatedir"
 msgstr "--localstatedir"
 
 #. type: itemx
-#: doc/guix.texi:4929
+#: doc/guix.texi:6060
 #, no-wrap
 msgid "--profile-name=@var{name}"
 msgstr "--profile-name=@var{nom}"
 
 #. type: table
-#: doc/guix.texi:4934
+#: doc/guix.texi:6065
 msgid "Include the ``local state directory'', @file{/var/guix}, in the resulting pack, and notably the @file{/var/guix/profiles/per-user/root/@var{name}} profile---by default @var{name} is @code{guix-profile}, which corresponds to @file{~root/.guix-profile}."
 msgstr "Inclus le « répertoire d'état local », @file{/var/guix}, dans le lot qui en résulte, et notamment le profil @file{/var/guix/profiles/per-user/root/@var{nom}} — par défaut @var{nom} est @code{guix-profile}, ce qui correspond à @file{~root/.guix-profile}."
 
 #. type: table
-#: doc/guix.texi:4940
+#: doc/guix.texi:6071
 msgid "@file{/var/guix} contains the store database (@pxref{The Store}) as well as garbage-collector roots (@pxref{Invoking guix gc}).  Providing it in the pack means that the store is ``complete'' and manageable by Guix; not providing it pack means that the store is ``dead'': items cannot be added to it or removed from it after extraction of the pack."
 msgstr "@file{/var/guix} contient la base de données du dépôt (@pxref{The Store}) ainsi que les racines du ramasse-miettes (@pxref{Invoking guix gc}).  Le fournir dans le pack signifie que le dépôt et « complet » et gérable par Guix ; ne pas le fournir dans le pack signifie que le dépôt est « mort » : aucun élément ne peut être ajouté ni enlevé après l'extraction du pack."
 
 #. type: table
-#: doc/guix.texi:4943
+#: doc/guix.texi:6074
 msgid "One use case for this is the Guix self-contained binary tarball (@pxref{Binary Installation})."
 msgstr "Un cas d'utilisation est l'archive binaire indépendante de Guix (@pxref{Binary Installation})."
 
+#. type: item
+#: doc/guix.texi:6075 doc/guix.texi:31011
+#, no-wrap
+msgid "--derivation"
+msgstr "--derivation"
+
+#. type: itemx
+#: doc/guix.texi:6076 doc/guix.texi:10509 doc/guix.texi:31012
+#, no-wrap
+msgid "-d"
+msgstr "-d"
+
+#. type: table
+#: doc/guix.texi:6078
+msgid "Print the name of the derivation that builds the pack."
+msgstr "Affiche le nom de la dérivation que le pack construit."
+
 #. type: table
-#: doc/guix.texi:4947
+#: doc/guix.texi:6082
 msgid "Use the bootstrap binaries to build the pack.  This option is only useful to Guix developers."
 msgstr "Utiliser les programmes d'amorçage pour construire le pack.  Cette option n'est utile que pour les personnes qui développent Guix."
 
 #. type: Plain text
-#: doc/guix.texi:4952
+#: doc/guix.texi:6087
 msgid "In addition, @command{guix pack} supports all the common build options (@pxref{Common Build Options}) and all the package transformation options (@pxref{Package Transformation Options})."
 msgstr "En plus, @command{guix pack} supporte toutes les options de construction communes (@pxref{Common Build Options}) et toutes les options de transformation de paquets (@pxref{Package Transformation Options})."
 
+#. type: cindex
+#: doc/guix.texi:6092
+#, no-wrap
+msgid "GCC"
+msgstr "GCC"
+
+#. type: cindex
+#: doc/guix.texi:6093
+#, no-wrap
+msgid "ld-wrapper"
+msgstr "ld-wrapper"
+
+#. type: cindex
+#: doc/guix.texi:6094
+#, no-wrap
+msgid "linker wrapper"
+msgstr "linker wrapper"
+
+#. type: cindex
+#: doc/guix.texi:6095
+#, no-wrap
+msgid "toolchain, for C development"
+msgstr "chaîne d'outils, pour le développement en C"
+
+#. type: cindex
+#: doc/guix.texi:6096
+#, no-wrap
+msgid "toolchain, for Fortran development"
+msgstr "chaîne d'outils, pour le développement en Fortran"
+
+#. type: Plain text
+#: doc/guix.texi:6103
+msgid "If you need a complete toolchain for compiling and linking C or C++ source code, use the @code{gcc-toolchain} package.  This package provides a complete GCC toolchain for C/C++ development, including GCC itself, the GNU C Library (headers and binaries, plus debugging symbols in the @code{debug} output), Binutils, and a linker wrapper."
+msgstr "Guix offre des paquets de compilateurs individuels comme @code{gcc} mais si vous avez besoin d'une chaîne de compilation complète pour compiler et lier du code source, utilisez le paquet @code{gcc-toolchain}.  Ce paquet fournit une chaîne d'outils complète GCC pour le développement C/C++, dont GCC lui-même, la bibliothèque C de GNU (les en-têtes et les binaires, plus les symboles de débogage dans la sortie @code{debug}), Binutils et un wrapper pour l'éditeur de liens."
+
 #. type: Plain text
-#: doc/guix.texi:4964
+#: doc/guix.texi:6109
+msgid "The wrapper's purpose is to inspect the @code{-L} and @code{-l} switches passed to the linker, add corresponding @code{-rpath} arguments, and invoke the actual linker with this new set of arguments.  You can instruct the wrapper to refuse to link against libraries not in the store by setting the @env{GUIX_LD_WRAPPER_ALLOW_IMPURITIES} environment variable to @code{no}."
+msgstr "Le rôle de l'enveloppe est d'inspecter les paramètres @code{-L} et @code{-l} passés à l'éditeur de liens, d'ajouter des arguments @code{-rpath} correspondants et d'invoquer l'actuel éditeur de liens avec ce nouvel ensemble d'arguments.  Vous pouvez dire au wrapper de refuser de lier les programmes à des bibliothèques en dehors du dépôt en paramétrant la variable d'environnement @env{GUIX_LD_WRAPPER_ALLOW_IMPURITIES} sur @code{no}."
+
+#. type: Plain text
+#: doc/guix.texi:6113
+msgid "The package @code{gfortran-toolchain} provides a complete GCC toolchain for Fortran development.  For other languages, please use @samp{guix search gcc toolchain} (@pxref{guix-search,, Invoking guix package})."
+msgstr "Le paquet @code{gfortran-toolchain} fournit une chaîne d'outils GCC complète pour le développement en Fortran. Pour d'autres langages, veuillez utiliser @samp{guix search gcc toolchain} (@pxref{guix-search,, Invoquer guix package})."
+
+#. type: section
+#: doc/guix.texi:6116
+#, no-wrap
+msgid "Invoking @command{guix git authenticate}"
+msgstr "Invoquer @command{guix git authenticate}"
+
+#. type: Plain text
+#: doc/guix.texi:6124
+msgid "The @command{guix git authenticate} command authenticates a Git checkout following the same rule as for channels (@pxref{channel-authentication, channel authentication}).  That is, starting from a given commit, it ensures that all subsequent commits are signed by an OpenPGP key whose fingerprint appears in the @file{.guix-authorizations} file of its parent commit(s)."
+msgstr "La commande @command{guix git authenticate} authentifie un checkout Git en suivant la même règle que pour les canaux (@pxref{channel-authentication, channel authentication}).  C'est-à-dire qu'à partir d'un commit donné, il s'assure que tous les commit suivants sont signés par une clé OpenPGP dont l'empreinte digitale apparaît dans le fichier @file{.guix-authorizations} de son ou ses commit(s) parent(s)."
+
+#. type: Plain text
+#: doc/guix.texi:6129
+msgid "You will find this command useful if you maintain a channel.  But in fact, this authentication mechanism is useful in a broader context, so you might want to use it for Git repositories that have nothing to do with Guix."
+msgstr "Vous allez trouver cette commande utile si vous maintenez un canal. Mais en fait, ce mécanisme d'authentification est utile dans un contexte plus large, Vous pourriez donc vouloir l'utiliser pour des dépôts Git qui n'ont rien à voir avec Guix."
+
+#. type: example
+#: doc/guix.texi:6134
+#, no-wrap
+msgid "guix git authenticate @var{commit} @var{signer} [@var{options}@dots{}]\n"
+msgstr "guix git authenticate @var{commit} @var{signer} [@var{options}@dots{}]\n"
+
+#. type: Plain text
+#: doc/guix.texi:6143
+msgid "By default, this command authenticates the Git checkout in the current directory; it outputs nothing and exits with exit code zero on success and non-zero on failure.  @var{commit} above denotes the first commit where authentication takes place, and @var{signer} is the OpenPGP fingerprint of public key used to sign @var{commit}.  Together, they form a ``channel introduction'' (@pxref{channel-authentication, channel introduction}).  The options below allow you to fine-tune the process."
+msgstr "Par défaut, cette commande authentifie le chekout Git dans le répertoire courant ; il ne produit rien et sort avec le code de sortie zéro en cas de succès et non zéro en cas d'échec. @var{commit} ci-dessus désigne le premier commit où l'authentification a lieu, et @var{signer} est l'empreinte OpenPGP de la clé publique utilisée pour signer @var{commit}.  Ensemble, ils forment une «introduction de canal» (@pxref{channel-authentication, introduction de canal}).  Les options ci-dessous vous permettent d'affiner le processus."
+
+#. type: item
+#: doc/guix.texi:6145
+#, no-wrap
+msgid "--repository=@var{directory}"
+msgstr "--repository=@var{répertoire}"
+
+#. type: itemx
+#: doc/guix.texi:6146
+#, no-wrap
+msgid "-r @var{directory}"
+msgstr "-r @var{répertoire}"
+
+#. type: table
+#: doc/guix.texi:6149
+msgid "Open the Git repository in @var{directory} instead of the current directory."
+msgstr "Ouvre le dépôt Git dans @var{directory} au lieu du répertoire courant."
+
+#. type: item
+#: doc/guix.texi:6150
+#, no-wrap
+msgid "--keyring=@var{reference}"
+msgstr "--keyring=@var{référence}"
+
+#. type: itemx
+#: doc/guix.texi:6151
+#, no-wrap
+msgid "-k @var{reference}"
+msgstr "-k @var{féférence}"
+
+#. type: table
+#: doc/guix.texi:6157
+msgid "Load OpenPGP keyring from @var{reference}, the reference of a branch such as @code{origin/keyring} or @code{my-keyring}.  The branch must contain OpenPGP public keys in @file{.key} files, either in binary form or ``ASCII-armored''.  By default the keyring is loaded from the branch named @code{keyring}."
+msgstr "Chargez le porte-clés OpenPGP à partir de @var{référence}, la référence d'une branche telle que @code{origin/keyring} ou @code{my-keyring}.  La branche doit contenir des clés publiques OpenPGP dans des fichiers @file{.key}, soit sous forme binaire, soit \"blindée ASCII\".  Par défaut, le porte-clés est chargé à partir de la branche nommée @code{keyring}."
+
+#. type: item
+#: doc/guix.texi:6158
+#, no-wrap
+msgid "--stats"
+msgstr "--stats"
+
+#. type: table
+#: doc/guix.texi:6160
+msgid "Display commit signing statistics upon completion."
+msgstr "Affiche les statistiques sur les signatures de commits à l'issue de la procédure."
+
+#. type: item
+#: doc/guix.texi:6161
+#, no-wrap
+msgid "--cache-key=@var{key}"
+msgstr "--cache-key=@var{key}"
+
+#. type: table
+#: doc/guix.texi:6165
+msgid "Previously-authenticated commits are cached in a file under @file{~/.cache/guix/authentication}.  This option forces the cache to be stored in file @var{key} in that directory."
+msgstr "Les commits préalablement authentifiés sont mis en cache dans un fichier sous @file{~/.cache/guix/authentication}.  Cette option force le cache à être stocké dans le fichier @var{key} de ce répertoire."
+
+#. type: item
+#: doc/guix.texi:6166
+#, no-wrap
+msgid "--historical-authorizations=@var{file}"
+msgstr "--historical-authorizations=@var{fichier}"
+
+#. type: table
+#: doc/guix.texi:6173
+msgid "By default, any commit whose parent commit(s) lack the @file{.guix-authorizations} file is considered inauthentic.  In contrast, this option considers the authorizations in @var{file} for any commit that lacks @file{.guix-authorizations}.  The format of @var{file} is the same as that of @file{.guix-authorizations} (@pxref{channel-authorizations, @file{.guix-authorizations} format})."
+msgstr "Par défaut, tout commit dont le(s) commit(s) parent(s) ne contient(nt) pas le fichier @file{.guix-authorizations} est considéré comme non authentique.  En revanche, cette option considère les autorisations dans @var{file} pour tout commit dont le fichier @file{.guix-authorizations} est manquant.  Le format de @var{file} est le même que celui de @file{.guix-authorizations} (au format @pxref{channel-authorizations, @file{.guix-autorizations}})."
+
+#. type: Plain text
+#: doc/guix.texi:6186
 msgid "GNU Guix provides several Scheme programming interfaces (APIs) to define, build, and query packages.  The first interface allows users to write high-level package definitions.  These definitions refer to familiar packaging concepts, such as the name and version of a package, its build system, and its dependencies.  These definitions can then be turned into concrete build actions."
 msgstr "GNU Guix fournit diverses interface de programmation Scheme (API) qui pour définir, construire et faire des requêtes sur des paquets.  La première interface permet aux utilisateurs d'écrire des définitions de paquets de haut-niveau.  Ces définitions se réfèrent à des concepts de création de paquets familiers, comme le nom et la version du paquet, son système de construction et ses dépendances.  Ces définitions peuvent ensuite être transformées en actions concrètes lors de la construction."
 
 #. type: Plain text
-#: doc/guix.texi:4970
-msgid "Build actions are performed by the Guix daemon, on behalf of users.  In a standard setup, the daemon has write access to the store---the @file{/gnu/store} directory---whereas users do not.  The recommended setup also has the daemon perform builds in chroots, under a specific build users, to minimize interference with the rest of the system."
-msgstr "Les actions de construction sont effectuées par le démon Guix, pour le compte des utilisateurs.  Dans un environnement standard, le démon possède les droits en écriture sur le dépôt — le répertoire @file{/gnu/store} — mais pas les utilisateurs.  La configuration recommandée permet aussi au démon d'effectuer la construction dans des chroots, avec un utilisateur de construction spécifique pour minimiser les interférences avec le reste du système."
+#: doc/guix.texi:6192
+msgid "Build actions are performed by the Guix daemon, on behalf of users.  In a standard setup, the daemon has write access to the store---the @file{/gnu/store} directory---whereas users do not.  The recommended setup also has the daemon perform builds in chroots, under specific build users, to minimize interference with the rest of the system."
+msgstr "Les actions de construction sont effectuées par le démon Guix, pour le compte des utilisateur·rice·s.  Dans un environnement standard, le démon possède les droits en écriture sur le dépôt — le répertoire @file{/gnu/store} — mais pas les utilisateur·rice·s.  La configuration recommandée permet aussi au démon d'effectuer la construction dans des chroots, à l'adresse des utilisateur·rice·s de construction spécifiques, pour minimiser les interférences avec le reste du système."
 
 #. type: Plain text
-#: doc/guix.texi:4979
+#: doc/guix.texi:6201
 msgid "Lower-level APIs are available to interact with the daemon and the store.  To instruct the daemon to perform a build action, users actually provide it with a @dfn{derivation}.  A derivation is a low-level representation of the build actions to be taken, and the environment in which they should occur---derivations are to package definitions what assembly is to C programs.  The term ``derivation'' comes from the fact that build results @emph{derive} from them."
 msgstr "Il y a des API de plus bas niveau pour interagir avec le démon et le dépôt.  Pour demander au démon d'effectuer une action de construction, les utilisateurs lui donnent en fait une @dfn{dérivation}.  Une dérivation est une représentation à bas-niveau des actions de construction à entreprendre et l'environnement dans lequel elles devraient avoir lieu — les dérivations sont aux définitions de paquets ce que l'assembleur est aux programmes C.  Le terme de « dérivation » vient du fait que les résultats de la construction en @emph{dérivent}."
 
 #. type: Plain text
-#: doc/guix.texi:4982
+#: doc/guix.texi:6204
 msgid "This chapter describes all these APIs in turn, starting from high-level package definitions."
 msgstr "Ce chapitre décrit toutes ces API tour à tour, à partir des définitions de paquets à haut-niveau."
 
+#. type: menuentry
+#: doc/guix.texi:6217
+msgid "Programming Guix in Guile"
+msgstr "Programmer Guix dans Guile"
+
 #. type: Plain text
-#: doc/guix.texi:5008
+#: doc/guix.texi:6233
 msgid "From a programming viewpoint, the package definitions of the GNU distribution are provided by Guile modules in the @code{(gnu packages @dots{})} name space@footnote{Note that packages under the @code{(gnu packages @dots{})} module name space are not necessarily ``GNU packages''.  This module naming scheme follows the usual Guile module naming convention: @code{gnu} means that these modules are distributed as part of the GNU system, and @code{packages} identifies modules that define packages.} (@pxref{Modules, Guile modules,, guile, GNU Guile Reference Manual}).  For instance, the @code{(gnu packages emacs)} module exports a variable named @code{emacs}, which is bound to a @code{<package>} object (@pxref{Defining Packages})."
 msgstr "D'un point de vue programmatique, les définitions de paquets de la distribution GNU sont fournies par des modules Guile dans l'espace de noms @code{(gnu packages @dots{})}@footnote{Remarquez que les paquets sous l'espace de nom @code{(gnu packages @dots{})} ne sont pas nécessairement des « paquets GNU ».  Le nom de ce module suit la convention de nommage usuelle de Guile : @code{gnu} signifie que ces modules sont distribués dans le système GNU, et @code{packages} identifie les modules qui définissent les paquets.} (@pxref{Modules, Guile modules,, guile, GNU Guile Reference Manual}).  Par exemple, le module @code{(gnu packages emacs)} exporte une variable nommée @code{emacs}, qui est liée à un objet @code{<package>} (@pxref{Defining Packages})."
 
 #. type: Plain text
-#: doc/guix.texi:5015
+#: doc/guix.texi:6240
 msgid "The @code{(gnu packages @dots{})} module name space is automatically scanned for packages by the command-line tools.  For instance, when running @code{guix install emacs}, all the @code{(gnu packages @dots{})} modules are scanned until one that exports a package object whose name is @code{emacs} is found.  This package search facility is implemented in the @code{(gnu packages)} module."
 msgstr "L'espace de nom @code{(gnu packages @dots{})} est automatiquement scanné par les outils en ligne de commande.  Par exemple, lorsque vous lancez @code{guix install emacs}, tous les modules @code{(gnu packages @dots{})} sont scannés jusqu'à en trouver un qui exporte un objet de paquet dont le nom est @code{emacs}.  Cette capacité à chercher des paquets est implémentée dans le module @code{(gnu packages)}."
 
 #. type: cindex
-#: doc/guix.texi:5017
+#: doc/guix.texi:6242
 #, no-wrap
 msgid "package module search path"
 msgstr "chemin de recherche des modules de paquets"
 
 #. type: Plain text
-#: doc/guix.texi:5026
-msgid "Users can store package definitions in modules with different names---e.g., @code{(my-packages emacs)}@footnote{Note that the file name and module name must match.  For instance, the @code{(my-packages emacs)} module must be stored in a @file{my-packages/emacs.scm} file relative to the load path specified with @option{--load-path} or @code{GUIX_PACKAGE_PATH}.  @xref{Modules and the File System,,, guile, GNU Guile Reference Manual}, for details.}.  There are two ways to make these package definitions visible to the user interfaces:"
-msgstr "Les utilisateurs peuvent stocker des définitions dans des modules avec des noms différents — p.@: ex.@: @code{(my-packages emacs)}@footnote{Remarquez que le nom de fichier et de module doivent être identiques.  Par exemple, le module @code{(my-packages emacs)} doit être stocké dans un fichier @file{my-packages/emacs.scm} relativement au chemin de chargement spécifié avec @option{--load-path} ou @code{GUIX_PACKAGE_PATH}.  @xref{Modules and the File System,,, guile, GNU Guile Reference Manual} pour plus de détails}.  Il y a deux manières de rendre ces définitions visibles aux interfaces utilisateurs :"
+#: doc/guix.texi:6251
+msgid "Users can store package definitions in modules with different names---e.g., @code{(my-packages emacs)}@footnote{Note that the file name and module name must match.  For instance, the @code{(my-packages emacs)} module must be stored in a @file{my-packages/emacs.scm} file relative to the load path specified with @option{--load-path} or @env{GUIX_PACKAGE_PATH}.  @xref{Modules and the File System,,, guile, GNU Guile Reference Manual}, for details.}.  There are two ways to make these package definitions visible to the user interfaces:"
+msgstr "Les utilisateur·rice·s peuvent stocker les définitions de paquets dans des modules ayant des noms différents---par exemple, @code{(my-packages emacs)}@footnote{Remarquez que le nom du fichier et le nom du module doivent correspondre.  Par exemple, le module @code{(my-packages emacs)} doit être stocké dans un fichier @file{my-packages/emacs.scm} relatif au chemin de chargement spécifié avec @option{--load-path} ou @env{GUIX_PACKAGE_PATH}.  @xref{Modules and the File System,,, guile, GNU Guile Reference Manual}, pour plus de détails.}.  Il y a deux façons de rendre ces définitions de paquets visibles pour les interfaces utilisateur·rice :"
 
 #. type: enumerate
-#: doc/guix.texi:5033
-msgid "By adding the directory containing your package modules to the search path with the @code{-L} flag of @command{guix package} and other commands (@pxref{Common Build Options}), or by setting the @code{GUIX_PACKAGE_PATH} environment variable described below."
-msgstr "En ajoutant le répertoire contenant vos modules de paquets au chemin de recherche avec le drapeau @code{-L} de @command{guix package} et des autres commandes (@pxref{Common Build Options}) ou en indiquant la variable d'environnement @code{GUIX_PACKAGE_PATH} décrite plus bas."
+#: doc/guix.texi:6258
+msgid "By adding the directory containing your package modules to the search path with the @code{-L} flag of @command{guix package} and other commands (@pxref{Common Build Options}), or by setting the @env{GUIX_PACKAGE_PATH} environment variable described below."
+msgstr "En ajoutant le répertoire contenant vos modules de paquets au chemin de recherche avec le tag @code{-L} de @command{guix package} et des autres commandes (@pxref{Common Build Options}) ou en indiquant la variable d'environnement @env{GUIX_PACKAGE_PATH} décrite plus bas."
 
 #. type: enumerate
-#: doc/guix.texi:5039
+#: doc/guix.texi:6264
 msgid "By defining a @dfn{channel} and configuring @command{guix pull} so that it pulls from it.  A channel is essentially a Git repository containing package modules.  @xref{Channels}, for more information on how to define and use channels."
-msgstr "En définissant un @dfn{canal} et en configurant @command{guix pull} pour qu'il l'utilise.  Un canal est essentiellement un dépôt Git contenant des modules de paquets.  @xref{Channels}, pour plus d'informations sur comment définir et utiliser des canaux."
+msgstr "En définissant un @dfn{canal} et en configurant @command{guix pull} pour qu'il l'utilise.  Un canal est en substance un dépôt Git contenant des modules de paquets.  @xref{Channels}, pour plus d'informations sur comment définir et utiliser des canaux."
 
 #. type: Plain text
-#: doc/guix.texi:5042
-msgid "@code{GUIX_PACKAGE_PATH} works similarly to other search path variables:"
-msgstr "@code{GUIX_PACKAGE_PATH} fonctionne comme les autres variables de chemins de recherche :"
+#: doc/guix.texi:6267
+msgid "@env{GUIX_PACKAGE_PATH} works similarly to other search path variables:"
+msgstr "@env{GUIX_PACKAGE_PATH} fonctionne comme les autres variables de chemins de recherche :"
 
 #. type: defvr
-#: doc/guix.texi:5043
+#: doc/guix.texi:6268
 #, no-wrap
 msgid "{Environment Variable} GUIX_PACKAGE_PATH"
 msgstr "{Variable d'environnement} GUIX_PACKAGE_PATH"
 
 #. type: defvr
-#: doc/guix.texi:5047
+#: doc/guix.texi:6272
 msgid "This is a colon-separated list of directories to search for additional package modules.  Directories listed in this variable take precedence over the own modules of the distribution."
 msgstr "C'est une liste séparée par des deux-points de répertoires dans lesquels trouver des modules de paquets supplémentaires.  Les répertoires listés dans cette variable sont prioritaires par rapport aux paquets de la distribution."
 
 #. type: Plain text
-#: doc/guix.texi:5055
+#: doc/guix.texi:6280
 msgid "The distribution is fully @dfn{bootstrapped} and @dfn{self-contained}: each package is built based solely on other packages in the distribution.  The root of this dependency graph is a small set of @dfn{bootstrap binaries}, provided by the @code{(gnu packages bootstrap)} module.  For more information on bootstrapping, @pxref{Bootstrapping}."
 msgstr "La distribution est entièrement @dfn{bootstrappée} et @dfn{auto-contenue} : chaque paquet est construit uniquement à partir d'autres paquets de la distribution.  La racine de ce graphe de dépendance est un petit ensemble de @dfn{binaires de bootstrap} fournis par le module @code{(gnu packages bootstrap)}.  Pour plus d'informations sur le bootstrap, @pxref{Bootstrapping}."
 
 #. type: Plain text
-#: doc/guix.texi:5063
+#: doc/guix.texi:6288
 msgid "The high-level interface to package definitions is implemented in the @code{(guix packages)} and @code{(guix build-system)} modules.  As an example, the package definition, or @dfn{recipe}, for the GNU Hello package looks like this:"
 msgstr "L'interface de haut-niveau pour les définitions de paquets est implémentée dans les modules @code{(guix packages)} et @code{(guix build-system)}.  Par exemple, la définition du paquet, ou la @dfn{recette}, du paquet GNU Hello ressemble à cela :"
 
-#. type: example
-#: doc/guix.texi:5071
+#. type: lisp
+#: doc/guix.texi:6296
 #, no-wrap
 msgid ""
 "(define-module (gnu packages hello)\n"
@@ -10348,8 +12920,8 @@ msgstr ""
 "  #:use-module (gnu packages gawk))\n"
 "\n"
 
-#. type: example
-#: doc/guix.texi:5090
+#. type: lisp
+#: doc/guix.texi:6315
 #, no-wrap
 msgid ""
 "(define-public hello\n"
@@ -10391,463 +12963,344 @@ msgstr ""
 "    (license gpl3+)))\n"
 
 #. type: Plain text
-#: doc/guix.texi:5100
+#: doc/guix.texi:6325
 msgid "Without being a Scheme expert, the reader may have guessed the meaning of the various fields here.  This expression binds the variable @code{hello} to a @code{<package>} object, which is essentially a record (@pxref{SRFI-9, Scheme records,, guile, GNU Guile Reference Manual}).  This package object can be inspected using procedures found in the @code{(guix packages)} module; for instance, @code{(package-name hello)} returns---surprise!---@code{\"hello\"}."
-msgstr "Sans être un expert Scheme, le lecteur peut comprendre la signification des différents champs présents.  Cette expression lie la variable @code{hello} à un objet @code{<package>}, qui est essentiellement un enregistrement (@pxref{SRFI-9, Scheme records,, guile, GNU Guile Reference Manual}).  On peut inspecter cet objet de paquet avec les procédures qui se trouvent dans le module @code{(guix packages)} ; par exemple, @code{(package-name hello)} renvoie — oh surprise ! — @code{\"hello\"}."
+msgstr "Sans être un expert Scheme, le lecteur peut comprendre la signification des différents champs présents.  Cette expression lie la variable @code{hello} à un objet @code{<package>}, qui est en substance un enregistrement (@pxref{SRFI-9, Scheme records,, guile, GNU Guile Reference Manual}).  On peut inspecter cet objet de paquet avec les procédures qui se trouvent dans le module @code{(guix packages)} ; par exemple, @code{(package-name hello)} renvoie — oh surprise ! — @code{\"hello\"}."
 
 #. type: Plain text
-#: doc/guix.texi:5104
+#: doc/guix.texi:6329
 msgid "With luck, you may be able to import part or all of the definition of the package you are interested in from another repository, using the @code{guix import} command (@pxref{Invoking guix import})."
 msgstr "Avec un peu de chance, vous pourrez importer tout ou partie de la définition du paquet qui vous intéresse depuis un autre répertoire avec la commande @code{guix import} (@pxref{Invoking guix import})."
 
 #. type: Plain text
-#: doc/guix.texi:5110
-msgid "In the example above, @var{hello} is defined in a module of its own, @code{(gnu packages hello)}.  Technically, this is not strictly necessary, but it is convenient to do so: all the packages defined in modules under @code{(gnu packages @dots{})} are automatically known to the command-line tools (@pxref{Package Modules})."
-msgstr "Dans l'exemple précédent, @var{hello} est défini dans un module à part, @code{(gnu packages hello)}.  Techniquement, cela n'est pas strictement nécessaire, mais c'est pratique : tous les paquets définis dans des modules sous @code{(gnu packages @dots{})} sont automatiquement connus des outils en ligne de commande (@pxref{Package Modules})."
+#: doc/guix.texi:6335
+msgid "In the example above, @code{hello} is defined in a module of its own, @code{(gnu packages hello)}.  Technically, this is not strictly necessary, but it is convenient to do so: all the packages defined in modules under @code{(gnu packages @dots{})} are automatically known to the command-line tools (@pxref{Package Modules})."
+msgstr "Dans l'exemple précédent, @code{hello} est défini dans un module à part, @code{(gnu packages hello)}.  Techniquement, cela n'est pas strictement nécessaire, mais c'est pratique : tous les paquets définis dans des modules sous @code{(gnu packages @dots{})} sont automatiquement connus des outils en ligne de commande (@pxref{Package Modules})."
 
 #. type: Plain text
-#: doc/guix.texi:5112
+#: doc/guix.texi:6337
 msgid "There are a few points worth noting in the above package definition:"
 msgstr "Il y a quelques points à remarquer dans la définition de paquet précédente :"
 
 #. type: itemize
-#: doc/guix.texi:5119
+#: doc/guix.texi:6344
 msgid "The @code{source} field of the package is an @code{<origin>} object (@pxref{origin Reference}, for the complete reference).  Here, the @code{url-fetch} method from @code{(guix download)} is used, meaning that the source is a file to be downloaded over FTP or HTTP."
 msgstr "Le champ @code{source} du paquet est un objet @code{<origin>} (@pxref{origin Reference}, pour la référence complète).  Ici, on utilise la méthode @code{url-fetch} de @code{(guix download)}, ce qui signifie que la source est un fichier à télécharger par FTP ou HTTP."
 
 #. type: itemize
-#: doc/guix.texi:5122
+#: doc/guix.texi:6347
 msgid "The @code{mirror://gnu} prefix instructs @code{url-fetch} to use one of the GNU mirrors defined in @code{(guix download)}."
 msgstr "Le préfixe @code{mirror://gnu} demande à @code{url-fetch} d'utiliser l'un des miroirs GNU définis dans @code{(guix download)}."
 
 #. type: itemize
-#: doc/guix.texi:5129
+#: doc/guix.texi:6354
 msgid "The @code{sha256} field specifies the expected SHA256 hash of the file being downloaded.  It is mandatory, and allows Guix to check the integrity of the file.  The @code{(base32 @dots{})} form introduces the base32 representation of the hash.  You can obtain this information with @code{guix download} (@pxref{Invoking guix download}) and @code{guix hash} (@pxref{Invoking guix hash})."
 msgstr "Le champ @code{sha256} spécifie le hash SHA256 attendu pour le fichier téléchargé.  Il est requis et permet à Guix de vérifier l'intégrité du fichier.  La forme @code{(base32 @dots{})} introduit a représentation en base32 du hash.  Vous pouvez obtenir cette information avec @code{guix download} (@pxref{Invoking guix download}) et @code{guix hash} (@pxref{Invoking guix hash})."
 
 #. type: cindex
-#: doc/guix.texi:5130
+#: doc/guix.texi:6355
 #, no-wrap
 msgid "patches"
 msgstr "correctifs"
 
 #. type: itemize
-#: doc/guix.texi:5134
+#: doc/guix.texi:6359
 msgid "When needed, the @code{origin} form can also have a @code{patches} field listing patches to be applied, and a @code{snippet} field giving a Scheme expression to modify the source code."
 msgstr "Lorsque cela est requis, la forme @code{origin} peut aussi avec un champ @code{patches} qui liste les correctifs à appliquer et un champ @code{snippet} qui donne une expression Scheme pour modifier le code source."
 
 #. type: cindex
-#: doc/guix.texi:5136
+#: doc/guix.texi:6361
 #, no-wrap
 msgid "GNU Build System"
 msgstr "Système de construction GNU"
 
 #. type: itemize
-#: doc/guix.texi:5142
-msgid "The @code{build-system} field specifies the procedure to build the package (@pxref{Build Systems}).  Here, @var{gnu-build-system} represents the familiar GNU Build System, where packages may be configured, built, and installed with the usual @code{./configure && make && make check && make install} command sequence."
-msgstr "Le champ @code{build-system} spécifie la procédure pour construire le paquet (@pxref{Build Systems}).  Ici, @var{gnu-build-system} représente le système de construction GNU familier, où les paquets peuvent être configurés, construits et installés avec la séquence @code{./configure && make && make check && make install} habituelle."
+#: doc/guix.texi:6367
+msgid "The @code{build-system} field specifies the procedure to build the package (@pxref{Build Systems}).  Here, @code{gnu-build-system} represents the familiar GNU Build System, where packages may be configured, built, and installed with the usual @code{./configure && make && make check && make install} command sequence."
+msgstr "Le champ @code{build-system} spécifie la procédure pour construire le paquet (@pxref{Build Systems}).  Ici, @code{gnu-build-system} représente le système de construction GNU familier, où les paquets peuvent être configurés, construits et installés avec la séquence @code{./configure && make && make check && make install} habituelle."
 
 #. type: itemize
-#: doc/guix.texi:5148
-msgid "The @code{arguments} field specifies options for the build system (@pxref{Build Systems}).  Here it is interpreted by @var{gnu-build-system} as a request run @file{configure} with the @code{--enable-silent-rules} flag."
-msgstr "Le champ @code{arguments} spécifie des options pour le système de construction (@pxref{Build Systems}).  Ici il est interprété par @var{gnu-build-system} comme une demande de lancer @file{configure} avec le drapeau @code{--enable-silent-rules}."
+#: doc/guix.texi:6371
+msgid "When you start packaging non-trivial software, you may need tools to manipulate those build phases, manipulate files, and so on.  @xref{Build Utilities}, for more on this."
+msgstr "Lorsque vous commencez à empaqueter des logiciels non triviaux, vous pouvez avoir besoin d'outils pour manipuler ces phases de construction, manipuler des fichiers, etc.  @xref{Build Utilities}, pour en savoir plus."
+
+#. type: itemize
+#: doc/guix.texi:6377
+msgid "The @code{arguments} field specifies options for the build system (@pxref{Build Systems}).  Here it is interpreted by @code{gnu-build-system} as a request run @file{configure} with the @option{--enable-silent-rules} flag."
+msgstr "Le champ @code{arguments} spécifie des options pour le système de construction (@pxref{Build Systems}).  Ici il est interprété par @code{gnu-build-system} comme une demande de lancer @file{configure} avec le tag @option{--enable-silent-rules}."
 
 #. type: findex
-#: doc/guix.texi:5149 doc/guix.texi:5152
+#: doc/guix.texi:6378 doc/guix.texi:6381
 #, no-wrap
 msgid "quote"
 msgstr "quote"
 
 #. type: cindex
-#: doc/guix.texi:5150
+#: doc/guix.texi:6379
 #, no-wrap
 msgid "quoting"
 msgstr "quoting"
 
 #. type: findex
-#: doc/guix.texi:5151
+#: doc/guix.texi:6380
 #, no-wrap
 msgid "'"
 msgstr "'"
 
 #. type: itemize
-#: doc/guix.texi:5160
+#: doc/guix.texi:6389
 msgid "What about these quote (@code{'}) characters? They are Scheme syntax to introduce a literal list; @code{'} is synonymous with @code{quote}.  @xref{Expression Syntax, quoting,, guile, GNU Guile Reference Manual}, for details.  Here the value of the @code{arguments} field is a list of arguments passed to the build system down the road, as with @code{apply} (@pxref{Fly Evaluation, @code{apply},, guile, GNU Guile Reference Manual})."
 msgstr "Que sont ces apostrophes (@code{'}) ?  C'est de la syntaxe Scheme pour introduire une liste ; @code{'} est synonyme de la fonction @code{quote}.   @xref{Expression Syntax, quoting,, guile, GNU Guile Reference Manual}, pour des détails.  Ice la valeur du champ @code{arguments} est une liste d'arguments passés au système de construction plus tard, comme avec @code{apply}  (@pxref{Fly Evaluation, @code{apply},, guile, GNU Guile Reference Manual})."
 
 #. type: itemize
-#: doc/guix.texi:5166
+#: doc/guix.texi:6395
 msgid "The hash-colon (@code{#:}) sequence defines a Scheme @dfn{keyword} (@pxref{Keywords,,, guile, GNU Guile Reference Manual}), and @code{#:configure-flags} is a keyword used to pass a keyword argument to the build system (@pxref{Coding With Keywords,,, guile, GNU Guile Reference Manual})."
 msgstr "La séquence dièse-deux-points (@code{#:}) définie un @dfn{mot-clef} Scheme (@pxref{Keywords,,, guile, GNU Guile Reference Manual}), et @code{#:configure-flags} est un mot-clef utilisé pour passer un argument au système de construction (@pxref{Coding With Keywords,,, guile, GNU Guile Reference Manual})."
 
 #. type: itemize
-#: doc/guix.texi:5172
-msgid "The @code{inputs} field specifies inputs to the build process---i.e., build-time or run-time dependencies of the package.  Here, we define an input called @code{\"gawk\"} whose value is that of the @var{gawk} variable; @var{gawk} is itself bound to a @code{<package>} object."
-msgstr "Le champ @code{inputs} spécifie les entrées du processus de construction — c.-à-d.@: les dépendances à la construction ou à l'exécution du paquet.  Ici on définie une entrée nommée @code{\"gawk\"} dont la valeur est la variable @var{gawk} ; @var{gawk} est elle-même liée à un objet @code{<package>}."
+#: doc/guix.texi:6401
+msgid "The @code{inputs} field specifies inputs to the build process---i.e., build-time or run-time dependencies of the package.  Here, we define an input called @code{\"gawk\"} whose value is that of the @code{gawk} variable; @code{gawk} is itself bound to a @code{<package>} object."
+msgstr "Le champ @code{inputs} spécifie les entrées du processus de construction — c.-à-d.@: les dépendances à la construction ou à l'exécution du paquet.  Ici, nous définissons une entrée appelée @code{\"gawk\"} dont la valeur est celle de la variable @code{gawk} ; @code{gawk} est lui-même lié à un objet @code{<package>}."
 
 #. type: cindex
-#: doc/guix.texi:5173
+#: doc/guix.texi:6402
 #, no-wrap
 msgid "backquote (quasiquote)"
 msgstr "accent grave (quasiquote)"
 
 #. type: findex
-#: doc/guix.texi:5174
+#: doc/guix.texi:6403
 #, no-wrap
 msgid "`"
 msgstr "`"
 
 #. type: findex
-#: doc/guix.texi:5175
+#: doc/guix.texi:6404
 #, no-wrap
 msgid "quasiquote"
 msgstr "quasiquote"
 
 #. type: cindex
-#: doc/guix.texi:5176
+#: doc/guix.texi:6405
 #, no-wrap
 msgid "comma (unquote)"
 msgstr "virgule (unquote)"
 
 #. type: findex
-#: doc/guix.texi:5177
+#: doc/guix.texi:6406
 #, no-wrap
 msgid ","
 msgstr ","
 
 #. type: findex
-#: doc/guix.texi:5178
+#: doc/guix.texi:6407
 #, no-wrap
 msgid "unquote"
 msgstr "unquote"
 
 #. type: findex
-#: doc/guix.texi:5179
+#: doc/guix.texi:6408
 #, no-wrap
 msgid ",@@"
 msgstr ",@@"
 
 #. type: findex
-#: doc/guix.texi:5180
+#: doc/guix.texi:6409
 #, no-wrap
 msgid "unquote-splicing"
 msgstr "unquote-splicing"
 
 #. type: itemize
-#: doc/guix.texi:5186
+#: doc/guix.texi:6415
 msgid "Again, @code{`} (a backquote, synonymous with @code{quasiquote}) allows us to introduce a literal list in the @code{inputs} field, while @code{,} (a comma, synonymous with @code{unquote}) allows us to insert a value in that list (@pxref{Expression Syntax, unquote,, guile, GNU Guile Reference Manual})."
 msgstr "De nouveau, @code{`} (un accent grave, synonyme de la fonction @code{quasiquote}) nous permet d'introduire une liste littérale dans le champ @code{inputs}, tandis que @code{,} (une virgule, synonyme de la fonction @code{unquote}) nous permet d'insérer une valeur dans cette liste (@pxref{Expression Syntax, unquote,, guile, GNU Guile Reference Manual})."
 
 #. type: itemize
-#: doc/guix.texi:5190
-msgid "Note that GCC, Coreutils, Bash, and other essential tools do not need to be specified as inputs here.  Instead, @var{gnu-build-system} takes care of ensuring that they are present (@pxref{Build Systems})."
-msgstr "Remarquez que GCC, Coreutils, Bash et les autres outils essentiels n'ont pas besoin d'être spécifiés en tant qu'entrées ici.  À la place, le @var{gnu-build-system} est en charge de s'assurer qu'ils sont présents (@pxref{Build Systems})."
+#: doc/guix.texi:6419
+msgid "Note that GCC, Coreutils, Bash, and other essential tools do not need to be specified as inputs here.  Instead, @code{gnu-build-system} takes care of ensuring that they are present (@pxref{Build Systems})."
+msgstr "Remarquez que GCC, Coreutils, Bash et les autres outils essentiels n'ont pas besoin d'être spécifiés en tant qu'entrées ici.  À la place, le @code{gnu-build-system} est en mesure de s'assurer qu'ils sont présents (@pxref{Build Systems})."
 
 #. type: itemize
-#: doc/guix.texi:5194
+#: doc/guix.texi:6423
 msgid "However, any other dependencies need to be specified in the @code{inputs} field.  Any dependency not specified here will simply be unavailable to the build process, possibly leading to a build failure."
 msgstr "Cependant, toutes les autres dépendances doivent être spécifiées dans le champ @code{inputs}.  Toute dépendance qui ne serait pas spécifiée ici sera simplement indisponible pour le processus de construction, ce qui peut mener à un échec de la construction."
 
 #. type: Plain text
-#: doc/guix.texi:5197
+#: doc/guix.texi:6426
 msgid "@xref{package Reference}, for a full description of possible fields."
 msgstr "@xref{package Reference}, pour une description complète des champs possibles."
 
 #. type: Plain text
-#: doc/guix.texi:5208
+#: doc/guix.texi:6437
 msgid "Once a package definition is in place, the package may actually be built using the @code{guix build} command-line tool (@pxref{Invoking guix build}), troubleshooting any build failures you encounter (@pxref{Debugging Build Failures}).  You can easily jump back to the package definition using the @command{guix edit} command (@pxref{Invoking guix edit}).  @xref{Packaging Guidelines}, for more information on how to test package definitions, and @ref{Invoking guix lint}, for information on how to check a definition for style conformance."
 msgstr "Lorsqu'une définition de paquet est en place, le paquet peut enfin être construit avec l'outil en ligne de commande @code{guix build}  (@pxref{Invoking guix build}), pour résoudre les échecs de construction que vous pourriez rencontrer (@pxref{Debugging Build Failures}).  Vous pouvez aisément revenir à la définition du paquet avec la commande @command{guix edit} (@pxref{Invoking guix edit}).  @xref{Packaging Guidelines}, pour plus d'informations sur la manière de tester des définitions de paquets et @ref{Invoking guix lint}, pour des informations sur la manière de vérifier que la définition respecte les conventions de style."
 
 #. type: vindex
-#: doc/guix.texi:5208
+#: doc/guix.texi:6437
 #, no-wrap
 msgid "GUIX_PACKAGE_PATH"
 msgstr "GUIX_PACKAGE_PATH"
 
 #. type: Plain text
-#: doc/guix.texi:5212
+#: doc/guix.texi:6441
 msgid "Lastly, @pxref{Channels}, for information on how to extend the distribution by adding your own package definitions in a ``channel''."
 msgstr "Enfin, @pxref{Channels} pour des informations sur la manière d'étendre la distribution en ajoutant vos propres définitions de paquets dans un « canal »."
 
 #. type: Plain text
-#: doc/guix.texi:5216
+#: doc/guix.texi:6445
 msgid "Finally, updating the package definition to a new upstream version can be partly automated by the @command{guix refresh} command (@pxref{Invoking guix refresh})."
 msgstr "Finalement, la mise à jour de la définition du paquet à une nouvelle version amont peut en partie s'automatiser avec la commande @command{guix refresh} (@pxref{Invoking guix refresh})."
 
 #. type: Plain text
-#: doc/guix.texi:5222
-msgid "Behind the scenes, a derivation corresponding to the @code{<package>} object is first computed by the @code{package-derivation} procedure.  That derivation is stored in a @code{.drv} file under @file{/gnu/store}.  The build actions it prescribes may then be realized by using the @code{build-derivations} procedure (@pxref{The Store})."
-msgstr "Sous le capot, une dérivation qui correspond à un objet @code{<package>} est d'abord calculé par la procédure @code{package-derivation}.  Cette dérivation est stockée dans un fichier @code{.drv} dans @file{/gnu/store}.  Les actions de construction qu'il prescrit peuvent ensuite être réalisées par la procédure @code{build-derivation} (@pxref{The Store})."
+#: doc/guix.texi:6451
+msgid "Behind the scenes, a derivation corresponding to the @code{<package>} object is first computed by the @code{package-derivation} procedure.  That derivation is stored in a @file{.drv} file under @file{/gnu/store}.  The build actions it prescribes may then be realized by using the @code{build-derivations} procedure (@pxref{The Store})."
+msgstr "Sous le capot, une dérivation qui correspond à un objet @code{<package>} est d'abord calculé par la procédure @code{package-derivation}.  Cette dérivation est stockée dans un fichier @file{.drv} dans @file{/gnu/store}.  Les actions de construction qu'il prescrit peuvent ensuite être réalisées par la procédure @code{build-derivation} (@pxref{The Store})."
 
 #. type: deffn
-#: doc/guix.texi:5223
+#: doc/guix.texi:6452
 #, no-wrap
 msgid "{Scheme Procedure} package-derivation @var{store} @var{package} [@var{system}]"
 msgstr "{Procédure Scheme} package-derivation @var{store} @var{package} [@var{system}]"
 
 #. type: deffn
-#: doc/guix.texi:5226
+#: doc/guix.texi:6455
 msgid "Return the @code{<derivation>} object of @var{package} for @var{system} (@pxref{Derivations})."
 msgstr "Renvoie l'objet @code{<derivation>} du @var{paquet} pour le @var{système} (@pxref{Derivations})."
 
 #. type: deffn
-#: doc/guix.texi:5232
+#: doc/guix.texi:6461
 msgid "@var{package} must be a valid @code{<package>} object, and @var{system} must be a string denoting the target system type---e.g., @code{\"x86_64-linux\"} for an x86_64 Linux-based GNU system.  @var{store} must be a connection to the daemon, which operates on the store (@pxref{The Store})."
 msgstr "@var{paquet} doit être un objet @code{<package>} valide et @var{système} une chaîne indiquant le type de système cible — p.ex.@: @code{\"x86_64-linux\"} pour un système GNU x86_64 basé sur Linux.  @var{dépôt} doit être une connexion au démon, qui opère sur les dépôt (@pxref{The Store})."
 
 #. type: Plain text
-#: doc/guix.texi:5238
+#: doc/guix.texi:6467
 msgid "Similarly, it is possible to compute a derivation that cross-builds a package for some other system:"
 msgstr "De manière identique, il est possible de calculer une dérivation qui effectue une compilation croisée d'un paquet pour un autre système :"
 
 #. type: deffn
-#: doc/guix.texi:5239
+#: doc/guix.texi:6468
 #, no-wrap
 msgid "{Scheme Procedure} package-cross-derivation @var{store} @"
 msgstr "{Procédure Scheme} package-cross-derivation @var{store} @"
 
 #. type: deffn
-#: doc/guix.texi:5243
+#: doc/guix.texi:6472
 msgid "@var{package} @var{target} [@var{system}] Return the @code{<derivation>} object of @var{package} cross-built from @var{system} to @var{target}."
 msgstr "@var{paquet} @var{cible} [@var{système}] renvoie l'objet @code{<derivation>} du @var{paquet} construit depuis @var{système} pour @var{cible}."
 
 #. type: deffn
-#: doc/guix.texi:5247
-msgid "@var{target} must be a valid GNU triplet denoting the target hardware and operating system, such as @code{\"mips64el-linux-gnu\"} (@pxref{Specifying Target Triplets,,, autoconf, Autoconf})."
-msgstr "@var{cible} doit être un triplet GNU valide indiquant le matériel cible et le système d'exploitation, comme @code{\"mips64el-linux-gnu\"} (@pxref{Specifying Target Triplets,,, autoconf, Autoconf})."
-
-#. type: cindex
-#: doc/guix.texi:5249
-#, no-wrap
-msgid "package transformations"
-msgstr "transformations de paquets"
-
-#. type: cindex
-#: doc/guix.texi:5250
-#, no-wrap
-msgid "input rewriting"
-msgstr "réécriture d'entrées"
-
-#. type: cindex
-#: doc/guix.texi:5251
-#, no-wrap
-msgid "dependency tree rewriting"
-msgstr "réécriture de l'arbre des dépendances"
-
-#. type: Plain text
-#: doc/guix.texi:5255
-msgid "Packages can be manipulated in arbitrary ways.  An example of a useful transformation is @dfn{input rewriting}, whereby the dependency tree of a package is rewritten by replacing specific inputs by others:"
-msgstr "On peut manipuler les paquets de manière arbitraire.  Une transformation utile est par exemple la @dfn{réécriture d'entrées} où l'arbre des dépendances d'un paquet est réécrit en replaçant des entrées spécifiques par d'autres :"
-
-#. type: deffn
-#: doc/guix.texi:5256
-#, no-wrap
-msgid "{Scheme Procedure} package-input-rewriting @var{replacements} @"
-msgstr "{Procédure Scheme} package-input-rewriting @var{replacements} @"
-
-#. type: deffn
-#: doc/guix.texi:5263
-msgid "[@var{rewrite-name}] Return a procedure that, when passed a package, replaces its direct and indirect dependencies (but not its implicit inputs) according to @var{replacements}.  @var{replacements} is a list of package pairs; the first element of each pair is the package to replace, and the second one is the replacement."
-msgstr "[@var{nom-réécrit}] Renvoie une procédure qui, lorsqu'on lui donne un paquet, remplace des dépendances directes et indirectes (mais pas ses entrées implicites) en fonction de @var{remplacements}.  @var{remplacements} est une liste de paires de paquets ; le premier élément de chaque pair est le paquet à remplacer, le second son remplaçant."
-
-#. type: deffn
-#: doc/guix.texi:5266
-msgid "Optionally, @var{rewrite-name} is a one-argument procedure that takes the name of a package and returns its new name after rewrite."
-msgstr "De manière facultative, @var{nom-réécrit} est une procédure à un argument qui prend le nom d'un paquet et renvoie son nouveau nom après l'avoir réécrit."
-
-#. type: Plain text
-#: doc/guix.texi:5270
-msgid "Consider this example:"
-msgstr "Regardez cet exemple :"
-
-#. type: example
-#: doc/guix.texi:5276
-#, no-wrap
-msgid ""
-"(define libressl-instead-of-openssl\n"
-"  ;; This is a procedure to replace OPENSSL by LIBRESSL,\n"
-"  ;; recursively.\n"
-"  (package-input-rewriting `((,openssl . ,libressl))))\n"
-"\n"
-msgstr ""
-"(define libressl-instead-of-openssl\n"
-"  ;; Cette procédure remplace OPENSSL par LIBRESSL,\n"
-"  ;; récursivement.\n"
-"  (package-input-rewriting `((,openssl . ,libressl))))\n"
-"\n"
-
-#. type: example
-#: doc/guix.texi:5279
-#, no-wrap
-msgid ""
-"(define git-with-libressl\n"
-"  (libressl-instead-of-openssl git))\n"
-msgstr ""
-"(define git-with-libressl\n"
-"  (libressl-instead-of-openssl git))\n"
-
-#. type: Plain text
-#: doc/guix.texi:5287
-msgid "Here we first define a rewriting procedure that replaces @var{openssl} with @var{libressl}.  Then we use it to define a @dfn{variant} of the @var{git} package that uses @var{libressl} instead of @var{openssl}.  This is exactly what the @option{--with-input} command-line option does (@pxref{Package Transformation Options, @option{--with-input}})."
-msgstr "Ici nous définissons d'abord une procédure de réécriture qui remplace @var{openssl} par @var{libressl}.  Ensuite nous l'utilisons pour définir une @dfn{variante} du paquet @var{git} qui utilise @var{libressl} plutôt que @var{openssl}.  cela est exactement ce que l'option en ligne de commande @option{--with-input} fait (@pxref{Package Transformation Options, @option{--with-input}})."
-
-#. type: Plain text
-#: doc/guix.texi:5290
-msgid "The following variant of @code{package-input-rewriting} can match packages to be replaced by name rather than by identity."
-msgstr "La variante suivante de @code{package-input-rewriting} peut repérer les paquets à remplacer par nom à la place de leur identité."
-
-#. type: deffn
-#: doc/guix.texi:5291
-#, no-wrap
-msgid "{Scheme Procedure} package-input-rewriting/spec @var{replacements}"
-msgstr "{Procédure Scheme} package-input-rewriting/spec @var{remplacements}"
-
-#. type: deffn
-#: doc/guix.texi:5297
-msgid "Return a procedure that, given a package, applies the given @var{replacements} to all the package graph (excluding implicit inputs).  @var{replacements} is a list of spec/procedures pair; each spec is a package specification such as @code{\"gcc\"} or @code{\"guile@@2\"}, and each procedure takes a matching package and returns a replacement for that package."
-msgstr "Renvoie une procédure qui, étant donné un paquet, applique les @var{remplacements} à tous le graphe du paquet (en dehors des entrées implicites).  @var{remplacements} est une liste de paires de spécifications et de procédures ; chaque spécification est une spécification de paquet comme @code{\"gcc\"} ou @code{\"guile@@2\"}, et chaque procédure prend un paquet correspondant et renvoie un remplaçant pour ce paquet."
-
-#. type: Plain text
-#: doc/guix.texi:5300
-msgid "The example above could be rewritten this way:"
-msgstr "L'exemple ci-dessus pourrait être réécrit de cette manière :"
-
-#. type: example
-#: doc/guix.texi:5305
-#, no-wrap
-msgid ""
-"(define libressl-instead-of-openssl\n"
-"  ;; Replace all the packages called \"openssl\" with LibreSSL.\n"
-"  (package-input-rewriting/spec `((\"openssl\" . ,(const libressl)))))\n"
-msgstr ""
-"(define libressl-instead-of-openssl\n"
-"  ;; Remplace tous les paquets nommés « openssl » par LibreSSL.\n"
-"  (package-input-rewriting/spec `((\"openssl\" . ,(const libressl)))))\n"
-
-#. type: Plain text
-#: doc/guix.texi:5310
-msgid "The key difference here is that, this time, packages are matched by spec and not by identity.  In other words, any package in the graph that is called @code{openssl} will be replaced."
-msgstr "Le différence clef est que, cette fois-ci, les paquets correspondent à la spécification et non à l'identité.  En d'autres termes, tout paquet dans le graphe qui est appelé @code{openssl} sera remplacé."
+#: doc/guix.texi:6476
+msgid "@var{target} must be a valid GNU triplet denoting the target hardware and operating system, such as @code{\"aarch64-linux-gnu\"} (@pxref{Specifying Target Triplets,,, autoconf, Autoconf})."
+msgstr "@var{cible} doit être un triplet GNU valide indiquant le matériel cible et le système d'exploitation, comme @code{\"aarch64-linux-gnu\"} (@pxref{Specifying Target Triplets,,, autoconf, Autoconf})."
 
 #. type: Plain text
-#: doc/guix.texi:5314
-msgid "A more generic procedure to rewrite a package dependency graph is @code{package-mapping}: it supports arbitrary changes to nodes in the graph."
-msgstr "Une procédure plus générique pour réécrire un graphe de dépendance d'un paquet est @code{package-mapping} : elle supporte n'importe quel changement dans les nœuds du graphe."
-
-#. type: deffn
-#: doc/guix.texi:5315
-#, no-wrap
-msgid "{Scheme Procedure} package-mapping @var{proc} [@var{cut?}]"
-msgstr "{Procédure Scheme} package-mapping @var{proc} [@var{cut?}]"
-
-#. type: deffn
-#: doc/guix.texi:5319
-msgid "Return a procedure that, given a package, applies @var{proc} to all the packages depended on and returns the resulting package.  The procedure stops recursion when @var{cut?} returns true for a given package."
-msgstr "Renvoie une procédure qui, avec un paquet, applique @var{proc} sur tous les paquets dont il dépend et renvoie le paquet qui en résulte.  La procédure arrête la récursion là où @var{cut?} renvoie vrai pour un paquet donné."
+#: doc/guix.texi:6480
+msgid "Once you have package definitions, you can easily define @emph{variants} of those packages.  @xref{Defining Package Variants}, for more on that."
+msgstr "Une fois qu'on a une définition de paquet, on peut facilement définir des @emph{variantes} du paquet.  @xref{Defining Package Variants}, pour plus d'informations."
 
 #. type: subsection
-#: doc/guix.texi:5328
+#: doc/guix.texi:6488
 #, no-wrap
 msgid "@code{package} Reference"
 msgstr "Référence de @code{package}"
 
 #. type: Plain text
-#: doc/guix.texi:5332
+#: doc/guix.texi:6492
 msgid "This section summarizes all the options available in @code{package} declarations (@pxref{Defining Packages})."
 msgstr "Cette section résume toutes les options disponibles dans les déclarations @code{package}  (@pxref{Defining Packages})."
 
 #. type: deftp
-#: doc/guix.texi:5333
+#: doc/guix.texi:6493
 #, no-wrap
 msgid "{Data Type} package"
 msgstr "{Type de données} package"
 
 #. type: deftp
-#: doc/guix.texi:5335
+#: doc/guix.texi:6495
 msgid "This is the data type representing a package recipe."
 msgstr "C'est le type de donnée représentant une recette de paquets."
 
 #. type: table
-#: doc/guix.texi:5339
+#: doc/guix.texi:6499
 msgid "The name of the package, as a string."
 msgstr "Le nom du paquet, comme une chaîne de caractères."
 
 #. type: code{#1}
-#: doc/guix.texi:5340
+#: doc/guix.texi:6500
 #, no-wrap
 msgid "version"
 msgstr "version"
 
 #. type: table
-#: doc/guix.texi:5342
+#: doc/guix.texi:6502
 msgid "The version of the package, as a string."
 msgstr "La version du paquet, comme une chaîne de caractères."
 
 #. type: code{#1}
-#: doc/guix.texi:5343 doc/guix.texi:9130 doc/guix.texi:10879
-#: doc/guix.texi:11317
+#: doc/guix.texi:6503 doc/guix.texi:11569 doc/guix.texi:13752
+#: doc/guix.texi:14227
 #, no-wrap
 msgid "source"
 msgstr "source"
 
 #. type: table
-#: doc/guix.texi:5350
+#: doc/guix.texi:6510
 msgid "An object telling how the source code for the package should be acquired.  Most of the time, this is an @code{origin} object, which denotes a file fetched from the Internet (@pxref{origin Reference}).  It can also be any other ``file-like'' object such as a @code{local-file}, which denotes a file from the local file system (@pxref{G-Expressions, @code{local-file}})."
-msgstr "Un objet qui indique comment le code source du paquet devrait être récupéré.  La plupart du temps, c'est un objet @code{origin} qui indique un fichier récupéré depuis internet (@pxref{origin Reference}).  Il peut aussi s'agir de tout autre objet ``simili-fichier'' comme un @code{local-file} qui indique un fichier du système de fichier local (@pxref{G-Expressions, @code{local-file}})."
+msgstr "Un objet qui indique comment le code source du paquet devrait être récupéré.  La plupart du temps, c'est un objet @code{origin} qui indique un fichier récupéré depuis internet (@pxref{origin Reference}).  Il peut aussi s'agir de tout autre objet « simili-fichier » comme un @code{local-file} qui indique un fichier du système de fichier local (@pxref{G-Expressions, @code{local-file}})."
 
 #. type: code{#1}
-#: doc/guix.texi:5351
+#: doc/guix.texi:6511
 #, no-wrap
 msgid "build-system"
 msgstr "build-system"
 
 #. type: table
-#: doc/guix.texi:5354
+#: doc/guix.texi:6514
 msgid "The build system that should be used to build the package (@pxref{Build Systems})."
 msgstr "Le système de construction qui devrait être utilisé pour construire le paquet (@pxref{Build Systems})."
 
 #. type: item
-#: doc/guix.texi:5355 doc/guix.texi:12915
+#: doc/guix.texi:6515 doc/guix.texi:16147
 #, no-wrap
 msgid "@code{arguments} (default: @code{'()})"
 msgstr "@code{arguments} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:5358
+#: doc/guix.texi:6518
 msgid "The arguments that should be passed to the build system.  This is a list, typically containing sequential keyword-value pairs."
 msgstr "Les arguments à passer au système de construction.  C'est une liste qui contient typiquement une séquence de paires de clefs-valeurs."
 
 #. type: item
-#: doc/guix.texi:5359
+#: doc/guix.texi:6519
 #, no-wrap
 msgid "@code{inputs} (default: @code{'()})"
 msgstr "@code{inputs} (par défaut : @code{'()})"
 
 #. type: itemx
-#: doc/guix.texi:5360
+#: doc/guix.texi:6520
 #, no-wrap
 msgid "@code{native-inputs} (default: @code{'()})"
 msgstr "@code{native-inputs} (par défaut : @code{'()})"
 
 #. type: itemx
-#: doc/guix.texi:5361
+#: doc/guix.texi:6521
 #, no-wrap
 msgid "@code{propagated-inputs} (default: @code{'()})"
 msgstr "@code{propagated-inputs} (par défaut : @code{'()})"
 
 #. type: cindex
-#: doc/guix.texi:5362
+#: doc/guix.texi:6522
 #, no-wrap
 msgid "inputs, of packages"
 msgstr "entrées, des paquets"
 
 #. type: table
-#: doc/guix.texi:5370
+#: doc/guix.texi:6530
 msgid "These fields list dependencies of the package.  Each one is a list of tuples, where each tuple has a label for the input (a string) as its first element, a package, origin, or derivation as its second element, and optionally the name of the output thereof that should be used, which defaults to @code{\"out\"} (@pxref{Packages with Multiple Outputs}, for more on package outputs).  For example, the list below specifies three inputs:"
 msgstr "Ces champs listent les dépendances du paquet.  Chacune est une liste de tuples, où chaque tuple a une étiquette pour une entrée (une chaîne de caractères) comme premier élément, un paquet, une origine ou une dérivation comme deuxième élément et éventuellement le nom d'une sortie à utiliser qui est @code{\"out\"} par défaut (@pxref{Packages with Multiple Outputs}, pour plus d'informations sur les sorties des paquets).  Par exemple, la liste suivante spécifie trois entrées :"
 
-#. type: example
-#: doc/guix.texi:5375
+#. type: lisp
+#: doc/guix.texi:6535
 #, no-wrap
 msgid ""
 "`((\"libffi\" ,libffi)\n"
@@ -10859,181 +13312,171 @@ msgstr ""
 "  (\"glib:bin\" ,glib \"bin\"))  ;la sortie \"bin\" de Glib\n"
 
 #. type: cindex
-#: doc/guix.texi:5377
+#: doc/guix.texi:6537
 #, no-wrap
 msgid "cross compilation, package dependencies"
 msgstr "compilation croisée, dépendances des paquets"
 
 #. type: table
-#: doc/guix.texi:5383
+#: doc/guix.texi:6543
 msgid "The distinction between @code{native-inputs} and @code{inputs} is necessary when considering cross-compilation.  When cross-compiling, dependencies listed in @code{inputs} are built for the @emph{target} architecture; conversely, dependencies listed in @code{native-inputs} are built for the architecture of the @emph{build} machine."
 msgstr "La distinction entre @code{native-inputs} et @code{inputs} est nécessaire lorsqu'on considère la compilation croisée.  Lors d'une compilation croisée, les dépendances listées dans @code{inputs} sont construites pour l'architecture @emph{cible} ; inversement, les dépendances listées dans @code{native-inputs} sont construites pour l'architecture de la machine de @emph{construction}."
 
 #. type: table
-#: doc/guix.texi:5388
+#: doc/guix.texi:6548
 msgid "@code{native-inputs} is typically used to list tools needed at build time, but not at run time, such as Autoconf, Automake, pkg-config, Gettext, or Bison.  @command{guix lint} can report likely mistakes in this area (@pxref{Invoking guix lint})."
 msgstr "@code{native-inputs} est typiquement utilisé pour lister les outils requis à la construction mais pas à l'exécution, comme Autoconf, Automake, pkg-config, Gettext ou Bison.  @command{guix lint} peut rapporter des erreurs de ce type (@pxref{Invoking guix lint})."
 
 #. type: anchor{#1}
-#: doc/guix.texi:5395
+#: doc/guix.texi:6556
 msgid "package-propagated-inputs"
 msgstr "package-propagated-inputs"
 
 #. type: table
-#: doc/guix.texi:5395
-msgid "Lastly, @code{propagated-inputs} is similar to @code{inputs}, but the specified packages will be automatically installed alongside the package they belong to (@pxref{package-cmd-propagated-inputs, @command{guix package}}, for information on how @command{guix package} deals with propagated inputs.)"
-msgstr "Enfin, @code{propagated-inputs} est similaire à @code{inputs}, mais les paquets spécifiés seront automatiquement installés avec le paquet auquel ils appartiennent (@pxref{package-cmd-propagated-inputs, @command{guix package}}, pour des informations sur la manière dont @command{guix package} traite les entrées propagées)."
+#: doc/guix.texi:6556
+msgid "Lastly, @code{propagated-inputs} is similar to @code{inputs}, but the specified packages will be automatically installed to profiles (@pxref{Features, the role of profiles in Guix}) alongside the package they belong to (@pxref{package-cmd-propagated-inputs, @command{guix package}}, for information on how @command{guix package} deals with propagated inputs)."
+msgstr "Enfin, @code{propagated-inputs} est similaire à @code{inputs}, mais les paquets spécifiés seront automatiquement installés sur les profils (@pxref{Features, le rôle des profils dans Guix}) à côté du paquet auquel ils appartiennent (@pxref{package-cmd-propagated-inputs, @command{guix package}}, pour savoir comment @command{guix package} traite les entrées propagées)."
 
 #. type: table
-#: doc/guix.texi:5399
-msgid "For example this is necessary when a C/C++ library needs headers of another library to compile, or when a pkg-config file refers to another one @i{via} its @code{Requires} field."
-msgstr "Par exemple cela est nécessaire lorsque des bibliothèques C/C++ ont besoin d'en-têtes d'une autre bibliothèque pour être compilé ou lorsqu'un fichier pkg-config se rapporte à un autre @i{via} son champ @code{Requires}."
+#: doc/guix.texi:6560
+msgid "For example this is necessary when packaging a C/C++ library that needs headers of another library to compile, or when a pkg-config file refers to another one @i{via} its @code{Requires} field."
+msgstr "Par exemple, cela est nécessaire lors de l'empaquetage d'une bibliothèque C/C++ qui a besoin des en-têtes d'une autre bibliothèque pour se compiler, ou lorsqu'un fichier pkg-config fait référence à un autre @i{via} son champ @code{Requires}."
 
 #. type: table
-#: doc/guix.texi:5406
-msgid "Another example where @code{propagated-inputs} is useful is for languages that lack a facility to record the run-time search path akin to the @code{RUNPATH} of ELF files; this includes Guile, Python, Perl, and more.  To ensure that libraries written in those languages can find library code they depend on at run time, run-time dependencies must be listed in @code{propagated-inputs} rather than @code{inputs}."
-msgstr "Un autre exemple où @code{propagated-inputs} est utile est pour les langages auxquels il manque un moyen de retenir le chemin de recherche comme c'est le cas du @code{RUNPATH} des fichiers ELF ; cela comprend Guile, Python, Perl et plus.  Pour s'assurer que les bibliothèques écrites dans ces langages peuvent trouver le code des bibliothèques dont elles dépendent à l'exécution, les dépendances à l'exécution doivent être listées dans @code{propagated-inputs} plutôt que @code{inputs}."
+#: doc/guix.texi:6567
+msgid "Another example where @code{propagated-inputs} is useful is for languages that lack a facility to record the run-time search path akin to the @code{RUNPATH} of ELF files; this includes Guile, Python, Perl, and more.  When packaging libraries written in those languages, ensure they can find library code they depend on at run time by listing run-time dependencies in @code{propagated-inputs} rather than @code{inputs}."
+msgstr "Un autre exemple où le @code{propagated-inputs} est utile, c'est pour les langues qui ne disposent pas de la possibilité d'enregistrer le chemin de recherche à l'exécution comme le @code{RUNPATH} des fichiers ELF ; cela inclut Guile, Python, Perl, et plus encore.  Lors de l'empaquetage de bibliothèques écrites dans ces langages, assurez-vous qu'elles peuvent trouver le code de bibliothèque dont elles dépendent au moment de l'exécution en listant les dépendances d'exécution dans @code{propagated-inputs} plutôt que @code{inputs}."
 
 #. type: item
-#: doc/guix.texi:5407
+#: doc/guix.texi:6568
 #, no-wrap
 msgid "@code{outputs} (default: @code{'(\"out\")})"
 msgstr "@code{outputs} (par défaut : @code{'(\"out\")})"
 
 #. type: table
-#: doc/guix.texi:5410
+#: doc/guix.texi:6571
 msgid "The list of output names of the package.  @xref{Packages with Multiple Outputs}, for typical uses of additional outputs."
 msgstr "La liste des noms de sorties du paquet.  @xref{Packages with Multiple Outputs}, pour des exemples typiques d'utilisation de sorties supplémentaires."
 
 #. type: item
-#: doc/guix.texi:5411
+#: doc/guix.texi:6572
 #, no-wrap
 msgid "@code{native-search-paths} (default: @code{'()})"
 msgstr "@code{native-search-paths} (par défaut : @code{'()})"
 
 #. type: itemx
-#: doc/guix.texi:5412
+#: doc/guix.texi:6573
 #, no-wrap
 msgid "@code{search-paths} (default: @code{'()})"
 msgstr "@code{search-paths} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:5415
+#: doc/guix.texi:6576
 msgid "A list of @code{search-path-specification} objects describing search-path environment variables honored by the package."
 msgstr "Une liste d'objets @code{search-path-specification} décrivant les variables d'environnement de recherche de chemins que ce paquet utilise."
 
 #. type: item
-#: doc/guix.texi:5416
+#: doc/guix.texi:6577
 #, no-wrap
 msgid "@code{replacement} (default: @code{#f})"
 msgstr "@code{replacement} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:5420
+#: doc/guix.texi:6581
 msgid "This must be either @code{#f} or a package object that will be used as a @dfn{replacement} for this package.  @xref{Security Updates, grafts}, for details."
 msgstr "Ce champ doit être soit @code{#f} soit un objet de paquet qui sera utilisé comme @dfn{remplaçant} de ce paquet.  @xref{Security Updates, grafts}, pour plus de détails."
 
 #. type: item
-#: doc/guix.texi:5421 doc/guix.texi:9122
+#: doc/guix.texi:6582 doc/guix.texi:11561
 #, no-wrap
 msgid "synopsis"
 msgstr "synopsis"
 
 #. type: table
-#: doc/guix.texi:5423
+#: doc/guix.texi:6584
 msgid "A one-line description of the package."
 msgstr "Une description sur une ligne du paquet."
 
-#. type: item
-#: doc/guix.texi:5424 doc/guix.texi:9123 doc/guix.texi:25003
+#. type: code{#1}
+#: doc/guix.texi:6585 doc/guix.texi:11562 doc/guix.texi:31704
+#: doc/guix.texi:31855
 #, no-wrap
 msgid "description"
 msgstr "description"
 
 #. type: table
-#: doc/guix.texi:5426
+#: doc/guix.texi:6587
 msgid "A more elaborate description of the package."
 msgstr "Une description plus détaillée du paquet."
 
 #. type: code{#1}
-#: doc/guix.texi:5427
+#: doc/guix.texi:6588
 #, no-wrap
 msgid "license"
 msgstr "license"
 
 #. type: cindex
-#: doc/guix.texi:5428
+#: doc/guix.texi:6589
 #, no-wrap
 msgid "license, of packages"
 msgstr "licence, des paquets"
 
 #. type: table
-#: doc/guix.texi:5431
+#: doc/guix.texi:6592
 msgid "The license of the package; a value from @code{(guix licenses)}, or a list of such values."
 msgstr "La licence du paquet ; une valeur tirée de @code{(guix licenses)} ou une liste de ces valeurs."
 
 #. type: itemx
-#: doc/guix.texi:5432 doc/guix.texi:9131
+#: doc/guix.texi:6593 doc/guix.texi:11570
 #, no-wrap
 msgid "home-page"
 msgstr "home-page"
 
 #. type: table
-#: doc/guix.texi:5434
+#: doc/guix.texi:6595
 msgid "The URL to the home-page of the package, as a string."
 msgstr "L'URL de la page d'accueil du paquet, en tant que chaîne de caractères."
 
 #. type: item
-#: doc/guix.texi:5435
+#: doc/guix.texi:6596
 #, no-wrap
-msgid "@code{supported-systems} (default: @var{%supported-systems})"
-msgstr "@code{supported-systems} (par défaut : @var{%supported-systems})"
+msgid "@code{supported-systems} (default: @code{%supported-systems})"
+msgstr "@code{supported-systems} (par défaut : @code{%supported-systems})"
 
 #. type: table
-#: doc/guix.texi:5438
+#: doc/guix.texi:6599
 msgid "The list of systems supported by the package, as strings of the form @code{architecture-kernel}, for example @code{\"x86_64-linux\"}."
 msgstr "La liste des systèmes supportés par le paquet, comme des chaînes de caractères de la forme @code{architecture-noyau}, par exemple @code{\"x86_64-linux\"}."
 
 #. type: item
-#: doc/guix.texi:5439
-#, no-wrap
-msgid "@code{maintainers} (default: @code{'()})"
-msgstr "@code{maintainers} (par défaut : @code{'()})"
-
-#. type: table
-#: doc/guix.texi:5441
-msgid "The list of maintainers of the package, as @code{maintainer} objects."
-msgstr "La liste des mainteneurs du paquet, comme des objets @code{maintainer}."
-
-#. type: item
-#: doc/guix.texi:5442
+#: doc/guix.texi:6600
 #, no-wrap
 msgid "@code{location} (default: source location of the @code{package} form)"
 msgstr "@code{location} (par défaut : emplacement de la source de la forme @code{package})"
 
 #. type: table
-#: doc/guix.texi:5446
+#: doc/guix.texi:6604
 msgid "The source location of the package.  It is useful to override this when inheriting from another package, in which case this field is not automatically corrected."
 msgstr "L'emplacement de la source du paquet.  C'est utile de le remplacer lorsqu'on hérite d'un autre paquet, auquel cas ce champ n'est pas automatiquement corrigé."
 
 #. type: deffn
-#: doc/guix.texi:5449
+#: doc/guix.texi:6607
 #, no-wrap
 msgid "{Scheme Syntax} this-package"
 msgstr "{Syntaxe Scheme} this-package"
 
 #. type: deffn
-#: doc/guix.texi:5452
+#: doc/guix.texi:6610
 msgid "When used in the @emph{lexical scope} of a package field definition, this identifier resolves to the package being defined."
 msgstr "Lorsque vous l'utilisez dans la @emph{portée lexicale} du champ d'une définition de paquet, cet identifiant est résolu comme étant le paquet définit."
 
 #. type: deffn
-#: doc/guix.texi:5455
+#: doc/guix.texi:6613
 msgid "The example below shows how to add a package as a native input of itself when cross-compiling:"
 msgstr "L'exemple ci-dessous montre l'ajout d'un paquet comme entrée native de lui-même pour la compilation croisée :"
 
-#. type: example
-#: doc/guix.texi:5460
+#. type: lisp
+#: doc/guix.texi:6618
 #, no-wrap
 msgid ""
 "(package\n"
@@ -11046,8 +13489,8 @@ msgstr ""
 "  ;; ...\n"
 "\n"
 
-#. type: example
-#: doc/guix.texi:5466
+#. type: lisp
+#: doc/guix.texi:6624
 #, no-wrap
 msgid ""
 "  ;; When cross-compiled, Guile, for example, depends on\n"
@@ -11063,1464 +13506,3097 @@ msgstr ""
 "                     '())))\n"
 
 #. type: deffn
-#: doc/guix.texi:5469
+#: doc/guix.texi:6627
 msgid "It is an error to refer to @code{this-package} outside a package definition."
 msgstr "C'est une erreur que de se référer à @code{this-package} en dehors de la définition d'un paquet."
 
+#. type: Plain text
+#: doc/guix.texi:6633
+msgid "Because packages are regular Scheme objects that capture a complete dependency graph and associated build procedures, it is often useful to write procedures that take a package and return a modified version thereof according to some parameters.  Below are a few examples."
+msgstr "Comme les paquets sont des objets Scheme réguliers qui capturent un graphe de dépendance complet et les procédures de construction associées, il est souvent utile d'écrire des procédures qui prennent un paquet et renvoient une version modifiée de celui-ci en fonction de certains paramètres.  En voici quelques exemples."
+
+#. type: cindex
+#: doc/guix.texi:6634
+#, no-wrap
+msgid "tool chain, choosing a package's tool chain"
+msgstr "chaîne d'outils, choisir la chaîne d'outils d'un paquet"
+
+#. type: deffn
+#: doc/guix.texi:6635
+#, no-wrap
+msgid "{Scheme Procedure} package-with-c-toolchain @var{package} @var{toolchain}"
+msgstr "{Procédure Scheme} package-with-c-toolchain @var{package} @var{toolchain}"
+
+#. type: deffn
+#: doc/guix.texi:6640
+msgid "Return a variant of @var{package} that uses @var{toolchain} instead of the default GNU C/C++ toolchain.  @var{toolchain} must be a list of inputs (label/package tuples) providing equivalent functionality, such as the @code{gcc-toolchain} package."
+msgstr "Renvoie une variante de @var{package} qui utilise @var{toolchain} au lieu de la chaîne d'outils GNU C/C++ par défaut.  @var{toolchain} doit être une liste d'entrées (tuples label/package) fournissant une fonctionnalité équivalente, comme le paquet @code{gcc-toolchain}."
+
+#. type: deffn
+#: doc/guix.texi:6644
+msgid "The example below returns a variant of the @code{hello} package built with GCC@tie{}10.x and the rest of the GNU tool chain (Binutils and the GNU C Library) instead of the default tool chain:"
+msgstr "L'exemple ci-dessous renvoie une variante du paquet @code{hello} construit avec GCC@tie{}10.x et le reste de la chaîne d'outils GNU (Binutils et la bibliothèque C GNU) au lieu de la chaîne d'outils par défaut :"
+
+#. type: lisp
+#: doc/guix.texi:6648
+#, no-wrap
+msgid ""
+"(let ((toolchain (specification->package \"gcc-toolchain@@10\")))\n"
+"  (package-with-c-toolchain hello `((\"toolchain\" ,toolchain))))\n"
+msgstr ""
+"(let ((toolchain (specification->package \"gcc-toolchain@@10\")))\n"
+"  (package-with-c-toolchain hello `((\"toolchain\" ,toolchain))))\n"
+
+#. type: deffn
+#: doc/guix.texi:6656
+msgid "The build tool chain is part of the @dfn{implicit inputs} of packages---it's usually not listed as part of the various ``inputs'' fields and is instead pulled in by the build system.  Consequently, this procedure works by changing the build system of @var{package} so that it pulls in @var{toolchain} instead of the defaults.  @ref{Build Systems}, for more on build systems."
+msgstr "La chaîne d'outils de construction fait partie des @dfn{entrées implicites} des paquets--- elle n'est généralement pas listée comme faisant partie des différents champs \"entrées\" et est à la place récupérée par le système de construction.  Par conséquent, cette procédure fonctionne en modifiant le système de compilation de @var{paquet} de sorte qu'il utilise @var{toolchain} au lieu des valeurs par défaut.  @ref{Build Systems}, pour en savoir plus sur les systèmes de construction."
+
 #. type: subsection
-#: doc/guix.texi:5472
+#: doc/guix.texi:6659
 #, no-wrap
 msgid "@code{origin} Reference"
 msgstr "Référence de @code{origin}"
 
 #. type: Plain text
-#: doc/guix.texi:5476
-msgid "This section summarizes all the options available in @code{origin} declarations (@pxref{Defining Packages})."
-msgstr "Cette section résume toutes les options disponibles dans le déclarations @code{origin} (@pxref{Defining Packages})."
+#: doc/guix.texi:6667
+msgid "This section documents @dfn{origins}.  An @code{origin} declaration specifies data that must be ``produced''---downloaded, usually---and whose content hash is known in advance.  Origins are primarily used to represent the source code of packages (@pxref{Defining Packages}).  For that reason, the @code{origin} form allows you to declare patches to apply to the original source code as well as code snippets to modify it."
+msgstr "Cette section documente @dfn{origins}.  Une déclaration @code{origin} spécifie les données qui doivent être \"produites\" -- téléchargées, généralement -- et dont le contenu est connu à l'avance.  Les origines sont principalement utilisées pour représenter le code source des paquets (@pxref{Defining Packages}).  Pour cette raison, le formulaire @code{origin} permet de déclarer des correctifs à appliquer au code source original ainsi que des bribes de code pour le modifier."
 
 #. type: deftp
-#: doc/guix.texi:5477
+#: doc/guix.texi:6668
 #, no-wrap
 msgid "{Data Type} origin"
 msgstr "{Type de données} origin"
 
 #. type: deftp
-#: doc/guix.texi:5479
+#: doc/guix.texi:6670
 msgid "This is the data type representing a source code origin."
 msgstr "C'est le type de donnée qui représente l'origine d'un code source."
 
 #. type: code{#1}
-#: doc/guix.texi:5481 doc/guix.texi:18957
+#: doc/guix.texi:6672 doc/guix.texi:23144
 #, no-wrap
 msgid "uri"
 msgstr "uri"
 
 #. type: table
-#: doc/guix.texi:5486
+#: doc/guix.texi:6677
 msgid "An object containing the URI of the source.  The object type depends on the @code{method} (see below).  For example, when using the @var{url-fetch} method of @code{(guix download)}, the valid @code{uri} values are: a URL represented as a string, or a list thereof."
 msgstr "Un objet contenant l'URI de la source.  Le type d'objet dépend de la @code{method} (voir plus bas).  Par exemple, avec la méthode @var{url-fetch} de @code{(guix download)}, les valeurs valide d'@code{uri} sont : une URL représentée par une chaîne de caractères, ou une liste de chaînes de caractères."
 
+#. type: cindex
+#: doc/guix.texi:6678
+#, no-wrap
+msgid "fixed-output derivations, for download"
+msgstr "dérivations à sortie fixe, pour télécharger"
+
 #. type: code{#1}
-#: doc/guix.texi:5487
+#: doc/guix.texi:6679
 #, no-wrap
 msgid "method"
 msgstr "method"
 
 #. type: table
-#: doc/guix.texi:5489
-msgid "A procedure that handles the URI."
-msgstr "Un procédure qui gère l'URI."
-
-#. type: table
-#: doc/guix.texi:5491
-msgid "Examples include:"
-msgstr "Quelques exemples :"
-
-#. type: item
-#: doc/guix.texi:5493
-#, no-wrap
-msgid "@var{url-fetch} from @code{(guix download)}"
-msgstr "@var{url-fetch} de @code{(guix download)}"
+#: doc/guix.texi:6686
+msgid "A monadic procedure that handles the given URI.  The procedure must accept at least three arguments: the value of the @code{uri} field and the hash algorithm and hash value specified by the @code{hash} field.  It must return a store item or a derivation in the store monad (@pxref{The Store Monad}); most methods return a fixed-output derivation (@pxref{Derivations})."
+msgstr "Une procédure monadique qui gère l'URI donné.  La procédure doit accepter au moins trois arguments : la valeur du champ @code{uri} et l'algorithme de hachage et la valeur de hachage spécifiée par le champ @code{hash}.  Elle doit renvoyer un élément du dépôt ou une dérivation dans la monade du dépôt (@pxref{The Store Monad}) ; la plupart des méthodes renvoient une dérivation à sortie fixe (@pxref{Derivations})."
 
 #. type: table
-#: doc/guix.texi:5496
-msgid "download a file from the HTTP, HTTPS, or FTP URL specified in the @code{uri} field;"
-msgstr "télécharge un fichier depuis l'URL HTTP, HTTPS ou FTP spécifiée dans le champ @code{uri} ;"
+#: doc/guix.texi:6690
+msgid "Commonly used methods include @code{url-fetch}, which fetches data from a URL, and @code{git-fetch}, which fetches data from a Git repository (see below)."
+msgstr "Les méthodes couramment utilisées comprennent @code{url-fetch}, qui récupère les données à partir d'une URL, et @code{git-fetch}, qui récupère les données à partir d'un dépôt Git (voir ci-dessous)."
 
-#. type: vindex
-#: doc/guix.texi:5497 doc/guix.texi:8389
-#, no-wrap
-msgid "git-fetch"
-msgstr "git-fetch"
-
-#. type: item
-#: doc/guix.texi:5498
+#. type: code{#1}
+#: doc/guix.texi:6691
 #, no-wrap
-msgid "@var{git-fetch} from @code{(guix git-download)}"
-msgstr "@var{git-fetch} de @code{(guix git-download)}"
+msgid "sha256"
+msgstr "sha256"
 
 #. type: table
-#: doc/guix.texi:5502
-msgid "clone the Git version control repository, and check out the revision specified in the @code{uri} field as a @code{git-reference} object; a @code{git-reference} looks like this:"
-msgstr "clone le dépôt sous contrôle de version Git et récupère la révision spécifiée dans le champ @code{uri} en tant qu'objet @code{git-reference} ; un objet @code{git-reference} ressemble à cela :"
-
-#. type: example
-#: doc/guix.texi:5507
-#, no-wrap
-msgid ""
-"(git-reference\n"
-"  (url \"git://git.debian.org/git/pkg-shadow/shadow\")\n"
-"  (commit \"v4.1.5.1\"))\n"
-msgstr ""
-"(git-reference\n"
-"  (url \"git://git.debian.org/git/pkg-shadow/shadow\")\n"
-"  (commit \"v4.1.5.1\"))\n"
+#: doc/guix.texi:6695
+msgid "A bytevector containing the SHA-256 hash of the source.  This is equivalent to providing a @code{content-hash} SHA256 object in the @code{hash} field described below."
+msgstr "Un bytevector contenant le hachage SHA-256 de la source.  Cela équivaut à fournir un @code{content-hash} Objet SHA256 dans le champ @code{hash} décrit ci-dessous."
 
 #. type: code{#1}
-#: doc/guix.texi:5510
+#: doc/guix.texi:6696
 #, no-wrap
-msgid "sha256"
-msgstr "sha256"
+msgid "hash"
+msgstr "hash"
 
 #. type: table
-#: doc/guix.texi:5514
-msgid "A bytevector containing the SHA-256 hash of the source.  Typically the @code{base32} form is used here to generate the bytevector from a base-32 string."
-msgstr "Un bytevector contenant le hash SHA-256 de la source.  Typiquement la forme @code{base32} est utilisée ici pour générer le bytevector depuis une chaîne de caractères en base-32."
+#: doc/guix.texi:6699
+msgid "The @code{content-hash} object of the source---see below for how to use @code{content-hash}."
+msgstr "L'objet @code{content-hash} de la source--voir ci-dessous pour savoir comment utiliser @code{content-hash}."
 
 #. type: table
-#: doc/guix.texi:5518
+#: doc/guix.texi:6703
 msgid "You can obtain this information using @code{guix download} (@pxref{Invoking guix download}) or @code{guix hash} (@pxref{Invoking guix hash})."
 msgstr "Vous pouvez obtenir cette information avec @code{guix download} (@pxref{Invoking guix download}) ou @code{guix hash} (@pxref{Invoking guix hash})."
 
 #. type: item
-#: doc/guix.texi:5519
+#: doc/guix.texi:6704
 #, no-wrap
 msgid "@code{file-name} (default: @code{#f})"
 msgstr "@code{file-name} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:5525
+#: doc/guix.texi:6710
 msgid "The file name under which the source code should be saved.  When this is @code{#f}, a sensible default value will be used in most cases.  In case the source is fetched from a URL, the file name from the URL will be used.  For version control checkouts, it is recommended to provide the file name explicitly because the default is not very descriptive."
 msgstr "Le nom de fichier à utiliser pour sauvegarder le fichier.  Lorsqu'elle est à @code{#f}, une valeur par défaut raisonnable est utilisée dans la plupart des cas.  Dans le cas où la source est récupérée depuis une URL, le nom de fichier est celui de l'URL.  Pour les sources récupérées depuis un outil de contrôle de version, il est recommandé de fournir un nom de fichier explicitement parce que le nom par défaut n'est pas très descriptif."
 
 #. type: item
-#: doc/guix.texi:5526
+#: doc/guix.texi:6711
 #, no-wrap
 msgid "@code{patches} (default: @code{'()})"
 msgstr "@code{patches} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:5529
+#: doc/guix.texi:6714
 msgid "A list of file names, origins, or file-like objects (@pxref{G-Expressions, file-like objects}) pointing to patches to be applied to the source."
 msgstr "Une liste de noms de fichiers, d'origines ou d'objets simili-fichiers (@pxref{G-Expressions, file-like objects}) qui pointent vers des correctifs à appliquer sur la source."
 
 #. type: table
-#: doc/guix.texi:5533
+#: doc/guix.texi:6718
 msgid "This list of patches must be unconditional.  In particular, it cannot depend on the value of @code{%current-system} or @code{%current-target-system}."
 msgstr "Cette liste de correctifs doit être inconditionnelle.  En particulier, elle ne peut pas dépendre des valeurs de @code{%current-system} ou @code{%current-target-system}."
 
 #. type: item
-#: doc/guix.texi:5534
+#: doc/guix.texi:6719
 #, no-wrap
 msgid "@code{snippet} (default: @code{#f})"
 msgstr "@code{snippet} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:5538
+#: doc/guix.texi:6723
 msgid "A G-expression (@pxref{G-Expressions}) or S-expression that will be run in the source directory.  This is a convenient way to modify the source, sometimes more convenient than a patch."
 msgstr "Une G-expression (@pxref{G-Expressions}) ou une S-expression qui sera lancée dans le répertoire des sources.  C'est une manière pratique de modifier la source, parfois plus qu'un correctif."
 
 #. type: item
-#: doc/guix.texi:5539
+#: doc/guix.texi:6724
 #, no-wrap
 msgid "@code{patch-flags} (default: @code{'(\"-p1\")})"
 msgstr "@code{patch-flags} (par défaut : @code{'(\"-p1\")})"
 
 #. type: table
-#: doc/guix.texi:5542
+#: doc/guix.texi:6727
 msgid "A list of command-line flags that should be passed to the @code{patch} command."
 msgstr "Une liste de drapeaux à passer à la commande @code{patch}."
 
 #. type: item
-#: doc/guix.texi:5543
+#: doc/guix.texi:6728
 #, no-wrap
 msgid "@code{patch-inputs} (default: @code{#f})"
 msgstr "@code{patch-inputs} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:5547
+#: doc/guix.texi:6732
 msgid "Input packages or derivations to the patching process.  When this is @code{#f}, the usual set of inputs necessary for patching are provided, such as GNU@tie{}Patch."
 msgstr "Paquets d'entrées ou dérivations pour le processus de correction.  Lorsqu'elle est à @code{#f}, l'ensemble d'entrées habituellement nécessaire pour appliquer des correctifs est fournit, comme GNU@tie{}Patch."
 
 #. type: item
-#: doc/guix.texi:5548
+#: doc/guix.texi:6733 doc/guix.texi:23017
 #, no-wrap
 msgid "@code{modules} (default: @code{'()})"
 msgstr "@code{modules} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:5551
+#: doc/guix.texi:6736
 msgid "A list of Guile modules that should be loaded during the patching process and while running the code in the @code{snippet} field."
 msgstr "Une liste de modules Guile qui devraient être chargés pendant le processus de correction et pendant que le lancement du code du champ @code{snippet}."
 
 #. type: item
-#: doc/guix.texi:5552
+#: doc/guix.texi:6737
 #, no-wrap
 msgid "@code{patch-guile} (default: @code{#f})"
 msgstr "@code{patch-guile} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:5555
+#: doc/guix.texi:6740
 msgid "The Guile package that should be used in the patching process.  When this is @code{#f}, a sensible default is used."
 msgstr "Le paquet Guile à utiliser dans le processus de correction.  Lorsqu'elle est à @code{#f}, une valeur par défaut raisonnable est utilisée."
 
+#. type: deftp
+#: doc/guix.texi:6743
+#, no-wrap
+msgid "{Data Type} content-hash @var{value} [@var{algorithm}]"
+msgstr "{Data Type} content-hash @var{value} [@var{algorithm}]"
+
+#. type: deftp
+#: doc/guix.texi:6747
+msgid "Construct a content hash object for the given @var{algorithm}, and with @var{value} as its hash value.  When @var{algorithm} is omitted, assume it is @code{sha256}."
+msgstr "Construire un objet de hash de contenu pour l'@var{algorithme} donné, et avec @var{valeur} comme valeur de hachage.  Lorsque @var{algorithme} est omis, on suppose qu'il s'agit de @code{sha256}."
+
+#. type: deftp
+#: doc/guix.texi:6750
+msgid "@var{value} can be a literal string, in which case it is base32-decoded, or it can be a bytevector."
+msgstr "@var{value} peut être une chaîne littérale, auquel cas elle est décodée en base32, ou il peut s'agir d'un bytevecteur."
+
+#. type: deftp
+#: doc/guix.texi:6752
+msgid "The following forms are all equivalent:"
+msgstr "Les options suivantes sont équivalentes :"
+
+#. type: lisp
+#: doc/guix.texi:6761
+#, no-wrap
+msgid ""
+"(content-hash \"05zxkyz9bv3j9h0xyid1rhvh3klhsmrpkf3bcs6frvlgyr2gwilj\")\n"
+"(content-hash \"05zxkyz9bv3j9h0xyid1rhvh3klhsmrpkf3bcs6frvlgyr2gwilj\"\n"
+"              sha256)\n"
+"(content-hash (base32\n"
+"               \"05zxkyz9bv3j9h0xyid1rhvh3klhsmrpkf3bcs6frvlgyr2gwilj\"))\n"
+"(content-hash (base64 \"kkb+RPaP7uyMZmu4eXPVkM4BN8yhRd8BTHLslb6f/Rc=\")\n"
+"              sha256)\n"
+msgstr ""
+"(content-hash \"05zxkyz9bv3j9h0xyid1rhvh3klhsmrpkf3bcs6frvlgyr2gwilj\")\n"
+"(content-hash \"05zxkyz9bv3j9h0xyid1rhvh3klhsmrpkf3bcs6frvlgyr2gwilj\"\n"
+"              sha256)\n"
+"(content-hash (base32\n"
+"               \"05zxkyz9bv3j9h0xyid1rhvh3klhsmrpkf3bcs6frvlgyr2gwilj\"))\n"
+"(content-hash (base64 \"kkb+RPaP7uyMZmu4eXPVkM4BN8yhRd8BTHLslb6f/Rc=\")\n"
+"              sha256)\n"
+
+#. type: deftp
+#: doc/guix.texi:6766
+msgid "Technically, @code{content-hash} is currently implemented as a macro.  It performs sanity checks at macro-expansion time, when possible, such as ensuring that @var{value} has the right size for @var{algorithm}."
+msgstr "Techniquement, le @code{content-hash} est actuellement mis en œuvre sous forme de macro.  Il effectue des contrôles de bon sens au moment de l'expansion de la macro, lorsque cela est possible, en s'assurant par exemple que @var{valeur} a la bonne taille pour @var{algorithme}."
+
+#. type: Plain text
+#: doc/guix.texi:6772
+msgid "As we have seen above, how exactly the data an origin refers to is retrieved is determined by its @code{method} field.  The @code{(guix download)} module provides the most common method, @code{url-fetch}, described below."
+msgstr "Comme nous l'avons vu plus haut, la manière dont les données auxquelles une origine se réfère exactement sont récupérées est déterminée par son champ @code{method}.  Le module @code{(guix download)} fournit la méthode la plus courante, @code{url-fetch}, décrite ci-dessous."
+
+#. type: deffn
+#: doc/guix.texi:6773
+#, no-wrap
+msgid "{Scheme Procedure} url-fetch @var{url} @var{hash-algo} @var{hash} @"
+msgstr "{Procédure Scheme} url-fetch @var{url} @var{hash-algo} @var{hash} @"
+
+#. type: deffn
+#: doc/guix.texi:6781
+msgid "[name] [#:executable? #f] Return a fixed-output derivation that fetches data from @var{url} (a string, or a list of strings denoting alternate URLs), which is expected to have hash @var{hash} of type @var{hash-algo} (a symbol).  By default, the file name is the base name of URL; optionally, @var{name} can specify a different file name.  When @var{executable?} is true, make the downloaded file executable."
+msgstr "[name] [#:executable ? #f] Renvoie une dérivation à sortie fixe qui récupère les données de @var{url} (une chaîne de caractères, ou une liste de chaînes de caractères désignant des URLs alternatives), qui est censée avoir un hash @var{hash} de type @var{hash-algo} (un symbole).  Par défaut, le nom du fichier est le nom de base de l'URL ; en option, @var{nom} peut spécifier un nom de fichier différent.  Lorsque @var{executable?} est vrai, rendez le fichier téléchargé exécutable."
+
+#. type: deffn
+#: doc/guix.texi:6784
+msgid "When one of the URL starts with @code{mirror://}, then its host part is interpreted as the name of a mirror scheme, taken from @file{%mirror-file}."
+msgstr "Lorsque l'une des URL commence par @code{mirror://}, sa partie hôte est alors interprétée comme le nom d'un schéma de miroir, tiré de @file{%mirror-file}."
+
+#. type: deffn
+#: doc/guix.texi:6787
+msgid "Alternatively, when URL starts with @code{file://}, return the corresponding file name in the store."
+msgstr "Alternativement, lorsque l'URL commence par @code{file://}, renvoie le nom du fichier correspondant dans le dépôt."
+
+#. type: Plain text
+#: doc/guix.texi:6793
+msgid "Likewise, the @code{(guix git-download)} module defines the @code{git-fetch} origin method, which fetches data from a Git version control repository, and the @code{git-reference} data type to describe the repository and revision to fetch."
+msgstr "De même, le module @code{(guix git-download)} définit la méthode d'origine @code{git-download}, qui récupère les données d'un dépôt de contrôle de version Git, et le type de données @code{git-reference} pour décrire le dépôt et la révision à récupérer."
+
+#. type: deffn
+#: doc/guix.texi:6794
+#, no-wrap
+msgid "{Scheme Procedure} git-fetch @var{ref} @var{hash-algo} @var{hash}"
+msgstr "{Procédure Scheme} git-fetch @var{ref} @var{hash-algo} @var{hash}"
+
+#. type: deffn
+#: doc/guix.texi:6799
+msgid "Return a fixed-output derivation that fetches @var{ref}, a @code{<git-reference>} object.  The output is expected to have recursive hash @var{hash} of type @var{hash-algo} (a symbol).  Use @var{name} as the file name, or a generic name if @code{#f}."
+msgstr "Renvoie une dérivation à sortie fixe qui va chercher @var{ref}, un objet @code{<git-reference>}.  La sortie est censée avoir un hash récursif @var{hash} de type @var{hash-algo} (un symbole).  Utilisez @var{name} comme nom de fichier, ou un nom générique si @code{#f}."
+
+#. type: deftp
+#: doc/guix.texi:6801
+#, no-wrap
+msgid "{Data Type} git-reference"
+msgstr "{Type de données} git-reference"
+
+#. type: deftp
+#: doc/guix.texi:6804
+msgid "This data type represents a Git reference for @code{git-fetch} to retrieve."
+msgstr "Ce type de données représente une référence Git pour le @code{git-fetch} à récupérer."
+
+#. type: code{#1}
+#: doc/guix.texi:6806 doc/guix.texi:21583
+#, no-wrap
+msgid "url"
+msgstr "url"
+
+#. type: table
+#: doc/guix.texi:6808
+msgid "The URL of the Git repository to clone."
+msgstr "L'URL du dépôt Git à cloner."
+
+#. type: code{#1}
+#: doc/guix.texi:6809
+#, no-wrap
+msgid "commit"
+msgstr "commit"
+
+#. type: table
+#: doc/guix.texi:6813
+msgid "This string denotes either the commit to fetch (a hexadecimal string, either the full SHA1 commit or a ``short'' commit string; the latter is not recommended) or the tag to fetch."
+msgstr "Cette chaîne indique soit le commit à récupérer (une chaîne hexadécimale, soit le commit SHA1 complet ou une chaîne de commit \"courte\" ; cette dernière n'est pas recommandée), soit le tag à récupérer."
+
+#. type: item
+#: doc/guix.texi:6814
+#, no-wrap
+msgid "@code{recursive?} (default: @code{#f})"
+msgstr "@code{recursive?} (par défaut : @code{#f})"
+
+#. type: table
+#: doc/guix.texi:6816
+msgid "This Boolean indicates whether to recursively fetch Git sub-modules."
+msgstr "Ce booléen indique s'il faut aller chercher récursivement les sous-modules de Git."
+
+#. type: deftp
+#: doc/guix.texi:6820
+msgid "The example below denotes the @code{v2.10} tag of the GNU@tie{}Hello repository:"
+msgstr "L'exemple ci-dessous indique la balise @code{v2.10} du dépôt GNU@tie{}Hello :"
+
+#. type: lisp
+#: doc/guix.texi:6825
+#, no-wrap
+msgid ""
+"(git-reference\n"
+"  (url \"https://git.savannah.gnu.org/git/hello.git\")\n"
+"  (commit \"v2.10\"))\n"
+msgstr ""
+"(git-reference\n"
+"  (url \"https://git.savannah.gnu.org/git/hello.git\")\n"
+"  (commit \"v2.10\"))\n"
+
+#. type: deftp
+#: doc/guix.texi:6829
+msgid "This is equivalent to the reference below, which explicitly names the commit:"
+msgstr "C'est équivalent à la référence ci-dessous, qui nomme explicitement le commit :"
+
+#. type: lisp
+#: doc/guix.texi:6834
+#, no-wrap
+msgid ""
+"(git-reference\n"
+"  (url \"https://git.savannah.gnu.org/git/hello.git\")\n"
+"  (commit \"dc7dc56a00e48fe6f231a58f6537139fe2908fb9\"))\n"
+msgstr ""
+"(git-reference\n"
+"  (url \"https://git.savannah.gnu.org/git/hello.git\")\n"
+"  (commit \"dc7dc56a00e48fe6f231a58f6537139fe2908fb9\"))\n"
+
 #. type: cindex
-#: doc/guix.texi:5562
+#: doc/guix.texi:6840
+#, no-wrap
+msgid "customizing packages"
+msgstr "personnalisation des paquets"
+
+#. type: cindex
+#: doc/guix.texi:6841
+#, no-wrap
+msgid "variants, of packages"
+msgstr "variantes, des paquets"
+
+#. type: Plain text
+#: doc/guix.texi:6851
+msgid "One of the nice things with Guix is that, given a package definition, you can easily @emph{derive} variants of that package---for a different upstream version, with different dependencies, different compilation options, and so on.  Some of these custom packages can be defined straight from the command line (@pxref{Package Transformation Options}).  This section describes how to define package variants in code.  This can be useful in ``manifests'' (@pxref{profile-manifest, @option{--manifest}}) and in your own package collection (@pxref{Creating a Channel}), among others!"
+msgstr "L'une des choses intéressantes avec Guix est qu'à partir d'une définition, on peut facilement @emph{dériver} des variantes du paquet --- pour une version en amont différente, avec des dépendances différentes, des options de compilation différentes, etc.  Certains de ces paquets personnalisés peuvent être définis directement par la ligne de commande (@pxref{Package Transformation Options}).  Cette section décrit comment définir des variantes de paquets avec du code.  Cela est utile dans les « manifestes »  (@pxref{profile-manifest, @option{--manifest}} et dans votre propre collection de paquets (@pxref{Creating a Channel}), entre autres chose !"
+
+#. type: cindex
+#: doc/guix.texi:6852
+#, no-wrap
+msgid "inherit, for package definitions"
+msgstr "héritage, pour les définitions des paquets"
+
+#. type: Plain text
+#: doc/guix.texi:6859
+msgid "As discussed earlier, packages are first-class objects in the Scheme language.  The @code{(guix packages)} module provides the @code{package} construct to define new package objects (@pxref{package Reference}).  The easiest way to define a package variant is using the @code{inherit} keyword together with @code{package}.  This allows you to inherit from a package definition while overriding the fields you want."
+msgstr "Comme nous en avons parlé plus tôt, les paquets sont des objets de première classe dans le langage Scheme.  Le module @code{(guix packages)} fournit la construction @code{package} pour définir de nouveaux objets de paquets (@pxref{package Reference}).  La manière la plus simple de définir la variante d'un paquet est d'utiliser le mot-clé @code{inherit} avec @code{package}.  Cela vous permet d'hériter la définition d'un paquet tout en redéfinissant les champs que vous voulez."
+
+#. type: Plain text
+#: doc/guix.texi:6864
+msgid "For example, given the @code{hello} variable, which contains a definition for the current version of GNU@tie{}Hello, here's how you would define a variant for version 2.2 (released in 2006, it's vintage!):"
+msgstr "Par exemple, étant donné la variable @code{hello}, qui contient la définition d'une version récente de GNU@tie{}Hello, voici comment définir une variante pour la version 2.2 (publiée en 2006, c'est vintage !) :"
+
+#. type: lisp
+#: doc/guix.texi:6867
+#, no-wrap
+msgid ""
+"(use-modules (gnu packages base))    ;for 'hello'\n"
+"\n"
+msgstr ""
+"(use-modules (gnu packages base))    ;pour 'hello'\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:6879
+#, no-wrap
+msgid ""
+"(define hello-2.2\n"
+"  (package\n"
+"    (inherit hello)\n"
+"    (version \"2.2\")\n"
+"    (source (origin\n"
+"              (method url-fetch)\n"
+"              (uri (string-append \"mirror://gnu/hello/hello-\" version\n"
+"                                  \".tar.gz\"))\n"
+"              (sha256\n"
+"               (base32\n"
+"                \"0lappv4slgb5spyqbh6yl5r013zv72yqg2pcl30mginf3wdqd8k9\"))))))\n"
+msgstr ""
+"(define hello-2.2\n"
+"  (package\n"
+"    (inherit hello)\n"
+"    (version \"2.2\")\n"
+"    (source (origin\n"
+"              (method url-fetch)\n"
+"              (uri (string-append \"mirror://gnu/hello/hello-\" version\n"
+"                                  \".tar.gz\"))\n"
+"              (sha256\n"
+"               (base32\n"
+"                \"0lappv4slgb5spyqbh6yl5r013zv72yqg2pcl30mginf3wdqd8k9\"))))))\n"
+
+#. type: Plain text
+#: doc/guix.texi:6888
+msgid "The example above corresponds to what the @option{--with-source} package transformation option does.  Essentially @code{hello-2.2} preserves all the fields of @code{hello}, except @code{version} and @code{source}, which it overrides.  Note that the original @code{hello} variable is still there, in the @code{(gnu packages base)} module, unchanged.  When you define a custom package like this, you are really @emph{adding} a new package definition; the original one remains available."
+msgstr "L'exemple ci-dessus correspond à ce que l'option de transformation des paquets @option{--with-source} fait.  En substance, @code{hello-2.2} préserve tous les champs de @code{hello}, sauf @code{version} et @code{source}, qu'il remplace.  Remarquez que la variable @code{hello} originale est toujours là, dans le module @code{(gnu packages base)}, et n'est pas modifiée.  Lorsque vous définissez un paquet personnalisé comme ceci, vous @emph{ajoutez} en fait une nouvelle définition de paquet ; la version originale est toujours disponible."
+
+#. type: Plain text
+#: doc/guix.texi:6894
+msgid "You can just as well define variants with a different set of dependencies than the original package.  For example, the default @code{gdb} package depends on @code{guile}, but since that is an optional dependency, you can define a variant that removes that dependency like so:"
+msgstr "Vous pouvez aussi bien définir des variantes avec un ensemble de dépendances différent du paquet d'origine.  Par exemple, le paquet @code{gdb} par défaut dépend de @code{guile}, mais comme c'est une dépendance facultative, vous pouvez définir une variante qu supprime cette dépendance de cette manière :"
+
+#. type: lisp
+#: doc/guix.texi:6898
+#, no-wrap
+msgid ""
+"(use-modules (gnu packages gdb)    ;for 'gdb'\n"
+"             (srfi srfi-1))        ;for 'alist-delete'\n"
+"\n"
+msgstr ""
+"(use-modules (gnu packages gdb)    ;pour 'gdb'\n"
+"             (srfi srfi-1))        ;pour 'alist-delete'\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:6904
+#, no-wrap
+msgid ""
+"(define gdb-sans-guile\n"
+"  (package\n"
+"    (inherit gdb)\n"
+"    (inputs (alist-delete \"guile\"\n"
+"                          (package-inputs gdb)))))\n"
+msgstr ""
+"(define gdb-sans-guile\n"
+"  (package\n"
+"    (inherit gdb)\n"
+"    (inputs (alist-delete \"guile\"\n"
+"                          (package-inputs gdb)))))\n"
+
+#. type: Plain text
+#: doc/guix.texi:6910
+msgid "The @code{alist-delete} call above removes the tuple from the @code{inputs} field that has @code{\"guile\"} as its first element (@pxref{SRFI-1 Association Lists,,, guile, GNU Guile Reference Manual})."
+msgstr "L'appel à @code{alist-delete} supprime le tuple du champ @code{inputs} qui a @code{\"guile\"} comme premier élément (@pxref{SRFI-1 Association Lists,,, guile, GNU Guile Reference Manual})."
+
+#. type: Plain text
+#: doc/guix.texi:6918
+msgid "In some cases, you may find it useful to write functions (``procedures'', in Scheme parlance) that return a package based on some parameters.  For example, consider the @code{luasocket} library for the Lua programming language.  We want to create @code{luasocket} packages for major versions of Lua.  One way to do that is to define a procedure that takes a Lua package and returns a @code{luasocket} package that depends on it:"
+msgstr "Dans certains cas, vous pouvez trouver cela utile d'écrire des fonctions (« procédures », pour Scheme) qui renvoie un paquet en fonction de certains paramètres.  Par exemple, considérez la bibliothèque @code{luasocket} pour le langage de programmation lua.  Nous voulons créer des paquets @code{luasocket} pour les versions majeures de Lua.  Une manière de faire est de définir une procédure qui prend un paquet Lua et renvoie un paquet @code{luasocket} qui en dépend :"
+
+#. type: lisp
+#: doc/guix.texi:6929
+#, no-wrap
+msgid ""
+"(define (make-lua-socket name lua)\n"
+"  ;; Return a luasocket package built with LUA.\n"
+"  (package\n"
+"    (name name)\n"
+"    (version \"3.0\")\n"
+"    ;; several fields omitted\n"
+"    (inputs\n"
+"     `((\"lua\" ,lua)))\n"
+"    (synopsis \"Socket library for Lua\")))\n"
+"\n"
+msgstr ""
+"(define (make-lua-socket name lua)\n"
+"  ;; Renvoie un paquet luasocket construit avec LUA.\n"
+"  (package\n"
+"    (name name)\n"
+"    (version \"3.0\")\n"
+"    ;; plusieurs champs ont été omis\n"
+"    (inputs\n"
+"     `((\"lua\" ,lua)))\n"
+"    (synopsis \"Socket library for Lua\")))\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:6932
+#, no-wrap
+msgid ""
+"(define-public lua5.1-socket\n"
+"  (make-lua-socket \"lua5.1-socket\" lua-5.1))\n"
+"\n"
+msgstr ""
+"(define-public lua5.1-socket\n"
+"  (make-lua-socket \"lua5.1-socket\" lua-5.1))\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:6935
+#, no-wrap
+msgid ""
+"(define-public lua5.2-socket\n"
+"  (make-lua-socket \"lua5.2-socket\" lua-5.2))\n"
+msgstr ""
+"(define-public lua5.2-socket\n"
+"  (make-lua-socket \"lua5.2-socket\" lua-5.2))\n"
+
+#. type: Plain text
+#: doc/guix.texi:6943
+msgid "Here we have defined packages @code{lua5.1-socket} and @code{lua5.2-socket} by calling @code{make-lua-socket} with different arguments.  @xref{Procedures,,, guile, GNU Guile Reference Manual}, for more info on procedures.  Having top-level public definitions for these two packages means that they can be referred to from the command line (@pxref{Package Modules})."
+msgstr "ici nous avons défini les paquets @code{lua5.1-socket} et @code{lua5.2-socket} en appelant @code{make-lua-socket} avec différents arguments.  @xref{Procedures,,, guile, GNU Guile Reference Manual}, pour plus d'informations sur les procédures.  Avoir des définitions publiques au premier niveau pour ces deux paquets signifie qu'ils sont disponibles depuis la ligne de commande (@pxref{Package Modules})."
+
+#. type: cindex
+#: doc/guix.texi:6944
+#, no-wrap
+msgid "package transformations"
+msgstr "transformations de paquets"
+
+#. type: Plain text
+#: doc/guix.texi:6949
+msgid "These are pretty simple package variants.  As a convenience, the @code{(guix transformations)} module provides a high-level interface that directly maps to the more sophisticated package transformation options (@pxref{Package Transformation Options}):"
+msgstr "Ce sont des variantes simples de paquets.  Par simplicité, le module @code{(guix transformations)} fournit une interface de haut niveau qui correspond directement aux options de transformations de paquets plus sophistiquées (@pxref{Package Transformation Options}) :"
+
+#. type: deffn
+#: doc/guix.texi:6950
+#, no-wrap
+msgid "{Scheme Procedure} options->transformation @var{opts}"
+msgstr "{Procédure Scheme} options->transformation @var{opts}"
+
+#. type: deffn
+#: doc/guix.texi:6954
+msgid "Return a procedure that, when passed an object to build (package, derivation, etc.), applies the transformations specified by @var{opts} and returns the resulting objects.  @var{opts} must be a list of symbol/string pairs such as:"
+msgstr "Renvoie une procédure qui, lorsqu'on lui passe un objet à construire (un paquet, une dérivation, etc), applique les transformations spécifiées par @var{opts} et renvoie les objets qui en résultent.  @var{opts} doit être une liste de pairs de symboles et de chaine comme dans :"
+
+#. type: lisp
+#: doc/guix.texi:6958
+#, no-wrap
+msgid ""
+"((with-branch . \"guile-gcrypt=master\")\n"
+" (without-tests . \"libgcrypt\"))\n"
+msgstr ""
+"((with-branch . \"guile-gcrypt=master\")\n"
+" (without-tests . \"libgcrypt\"))\n"
+
+#. type: deffn
+#: doc/guix.texi:6962
+msgid "Each symbol names a transformation and the corresponding string is an argument to that transformation."
+msgstr "Chaque nom de symbole nomme une transformation et la chaine correspondante est un argument pour cette transformation."
+
+#. type: Plain text
+#: doc/guix.texi:6965
+msgid "For instance, a manifest equivalent to this command:"
+msgstr "Par exemple, un manifeste équivalent à cette commande :"
+
+#. type: example
+#: doc/guix.texi:6970
+#, no-wrap
+msgid ""
+"guix build guix \\\n"
+"  --with-branch=guile-gcrypt=master \\\n"
+"  --with-debug-info=zlib\n"
+msgstr ""
+"guix build guix \\\n"
+"  --with-branch=guile-gcrypt=master \\\n"
+"  --with-debug-info=zlib\n"
+
+#. type: Plain text
+#: doc/guix.texi:6974
+msgid "... would look like this:"
+msgstr "... ressemblerait à ceci :"
+
+#. type: lisp
+#: doc/guix.texi:6977
+#, no-wrap
+msgid ""
+"(use-modules (guix transformations))\n"
+"\n"
+msgstr ""
+"(use-modules (guix transformations))\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:6983
+#, no-wrap
+msgid ""
+"(define transform\n"
+"  ;; The package transformation procedure.\n"
+"  (options->transformation\n"
+"   '((with-branch . \"guile-gcrypt=master\")\n"
+"     (with-debug-info . \"zlib\"))))\n"
+"\n"
+msgstr ""
+"(define transform\n"
+"  ;; La précuder de transformation des paquets.\n"
+"  (options->transformation\n"
+"   '((with-branch . \"guile-gcrypt=master\")\n"
+"     (with-debug-info . \"zlib\"))))\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:6986
+#, no-wrap
+msgid ""
+"(packages->manifest\n"
+" (list (transform (specification->package \"guix\"))))\n"
+msgstr ""
+"(packages->manifest\n"
+" (list (transform (specification->package \"guix\"))))\n"
+
+#. type: cindex
+#: doc/guix.texi:6988
+#, no-wrap
+msgid "input rewriting"
+msgstr "réécriture d'entrées"
+
+#. type: cindex
+#: doc/guix.texi:6989
+#, no-wrap
+msgid "dependency graph rewriting"
+msgstr "réécriture de l'arbre des dépendances"
+
+#. type: Plain text
+#: doc/guix.texi:6996
+msgid "The @code{options->transformation} procedure is convenient, but it's perhaps also not as flexible as you may like.  How is it implemented? The astute reader probably noticed that most package transformation options go beyond the superficial changes shown in the first examples of this section: they involve @dfn{input rewriting}, whereby the dependency graph of a package is rewritten by replacing specific inputs by others."
+msgstr "La procédure @code{options->transformation} est pratique, mais elle n'est peut-être pas aussi flexible que vous pourriez le souhaiter.  Comment est-elle implémentée ?  Le lecteur attentif aura sans doute remarqué que la plupart des options de transformation des paquets va plus loin que les changements superficiels montrés dans les premiers exemples de cette sections : ils font de la @dfn{réécriture d'entrées}, où le graphe de dépendance d'un paquet est réécrit en remplaçant des entrées spécifiques par d'autres."
+
+#. type: Plain text
+#: doc/guix.texi:7000
+msgid "Dependency graph rewriting, for the purposes of swapping packages in the graph, is what the @code{package-input-rewriting} procedure in @code{(guix packages)} implements."
+msgstr "La procédure @code{package-input-rewriting} de @code{(guix packages)} implémente la réécriture du graphe de dépendance, pour remplacer des paquets dans le graphe."
+
+#. type: deffn
+#: doc/guix.texi:7001
+#, no-wrap
+msgid "{Scheme Procedure} package-input-rewriting @var{replacements} @"
+msgstr "{Procédure Scheme} package-input-rewriting @var{replacements} @"
+
+#. type: deffn
+#: doc/guix.texi:7008
+msgid "[@var{rewrite-name}] [#:deep? #t] Return a procedure that, when passed a package, replaces its direct and indirect dependencies, including implicit inputs when @var{deep?} is true, according to @var{replacements}.  @var{replacements} is a list of package pairs; the first element of each pair is the package to replace, and the second one is the replacement."
+msgstr "[@var{nom-réécrit}] [#:deep ? #t] Renvoie une procédure qui, lorsqu'elle est passée à un paquet, remplace ses dépendances directes et indirectes, y compris les entrées implicites lorsque @var{deep?} est vrai, selon @var{replacements}.  @var{replacements} est une liste de paires de paquets ; le premier élément de chaque paire est le paquet à remplacer, et le second est le remplacement."
+
+#. type: deffn
+#: doc/guix.texi:7011
+msgid "Optionally, @var{rewrite-name} is a one-argument procedure that takes the name of a package and returns its new name after rewrite."
+msgstr "De manière facultative, @var{nom-réécrit} est une procédure à un argument qui prend le nom d'un paquet et renvoie son nouveau nom après l'avoir réécrit."
+
+#. type: table
+#: doc/guix.texi:7015 doc/guix.texi:10211
+msgid "Consider this example:"
+msgstr "Regardez cet exemple :"
+
+#. type: lisp
+#: doc/guix.texi:7021
+#, no-wrap
+msgid ""
+"(define libressl-instead-of-openssl\n"
+"  ;; This is a procedure to replace OPENSSL by LIBRESSL,\n"
+"  ;; recursively.\n"
+"  (package-input-rewriting `((,openssl . ,libressl))))\n"
+"\n"
+msgstr ""
+"(define libressl-instead-of-openssl\n"
+"  ;; Cette procédure remplace OPENSSL par LIBRESSL,\n"
+"  ;; récursivement.\n"
+"  (package-input-rewriting `((,openssl . ,libressl))))\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:7024
+#, no-wrap
+msgid ""
+"(define git-with-libressl\n"
+"  (libressl-instead-of-openssl git))\n"
+msgstr ""
+"(define git-with-libressl\n"
+"  (libressl-instead-of-openssl git))\n"
+
+#. type: Plain text
+#: doc/guix.texi:7032
+msgid "Here we first define a rewriting procedure that replaces @var{openssl} with @var{libressl}.  Then we use it to define a @dfn{variant} of the @var{git} package that uses @var{libressl} instead of @var{openssl}.  This is exactly what the @option{--with-input} command-line option does (@pxref{Package Transformation Options, @option{--with-input}})."
+msgstr "Ici nous définissons d'abord une procédure de réécriture qui remplace @var{openssl} par @var{libressl}.  Ensuite nous l'utilisons pour définir une @dfn{variante} du paquet @var{git} qui utilise @var{libressl} plutôt que @var{openssl}.  cela est exactement ce que l'option en ligne de commande @option{--with-input} fait (@pxref{Package Transformation Options, @option{--with-input}})."
+
+#. type: Plain text
+#: doc/guix.texi:7035
+msgid "The following variant of @code{package-input-rewriting} can match packages to be replaced by name rather than by identity."
+msgstr "La variante suivante de @code{package-input-rewriting} peut repérer les paquets à remplacer par nom à la place de leur identité."
+
+#. type: deffn
+#: doc/guix.texi:7036
+#, no-wrap
+msgid "{Scheme Procedure} package-input-rewriting/spec @var{replacements} [#:deep? #t]"
+msgstr "{Procédure Scheme} package-input-rewriting/spec @var{remplacements}[#:deep? #t]"
+
+#. type: deffn
+#: doc/guix.texi:7043
+msgid "Return a procedure that, given a package, applies the given @var{replacements} to all the package graph, including implicit inputs unless @var{deep?} is false.  @var{replacements} is a list of spec/procedures pair; each spec is a package specification such as @code{\"gcc\"} or @code{\"guile@@2\"}, and each procedure takes a matching package and returns a replacement for that package."
+msgstr "Renvoie une procédure qui, étant donné un paquet, applique les @var{remplacements} donnés à tout le graphe du paquet, y compris les entrées implicites, à moins que @var{deep?} ne soit faux.  @var{replacements} est une liste de paires spécifications/procédures ; chaque spécification est une spécification de paquet telle que @code{\"gcc\"} ou @code{\"guile@@2\"}, et chaque procédure prend un paquet correspondant et renvoie un remplacement pour ce paquet."
+
+#. type: Plain text
+#: doc/guix.texi:7046
+msgid "The example above could be rewritten this way:"
+msgstr "L'exemple ci-dessus pourrait être réécrit de cette manière :"
+
+#. type: lisp
+#: doc/guix.texi:7051
+#, no-wrap
+msgid ""
+"(define libressl-instead-of-openssl\n"
+"  ;; Replace all the packages called \"openssl\" with LibreSSL.\n"
+"  (package-input-rewriting/spec `((\"openssl\" . ,(const libressl)))))\n"
+msgstr ""
+"(define libressl-instead-of-openssl\n"
+"  ;; Remplace tous les paquets nommés « openssl » par LibreSSL.\n"
+"  (package-input-rewriting/spec `((\"openssl\" . ,(const libressl)))))\n"
+
+#. type: Plain text
+#: doc/guix.texi:7056
+msgid "The key difference here is that, this time, packages are matched by spec and not by identity.  In other words, any package in the graph that is called @code{openssl} will be replaced."
+msgstr "Le différence clef est que, cette fois-ci, les paquets correspondent à la spécification et non à l'identité.  En d'autres termes, tout paquet dans le graphe qui est appelé @code{openssl} sera remplacé."
+
+#. type: Plain text
+#: doc/guix.texi:7060
+msgid "A more generic procedure to rewrite a package dependency graph is @code{package-mapping}: it supports arbitrary changes to nodes in the graph."
+msgstr "Une procédure plus générique pour réécrire un graphe de dépendance d'un paquet est @code{package-mapping} : elle supporte n'importe quel changement dans les nœuds du graphe."
+
+#. type: deffn
+#: doc/guix.texi:7061
+#, no-wrap
+msgid "{Scheme Procedure} package-mapping @var{proc} [@var{cut?}] [#:deep? #f]"
+msgstr "{Procédure Scheme} package-mapping @var{proc} [@var{cut?}] [#:deep? #f]"
+
+#. type: deffn
+#: doc/guix.texi:7066
+msgid "Return a procedure that, given a package, applies @var{proc} to all the packages depended on and returns the resulting package.  The procedure stops recursion when @var{cut?} returns true for a given package.  When @var{deep?} is true, @var{proc} is applied to implicit inputs as well."
+msgstr "Renvoie une procédure qui, pour un paquet donné, applique @var{proc} à tous les paquets dont il dépend et renvoie le paquet résultant.  La procédure arrête la récursion lorsque @var{cut?} renvoie true pour un paquet donné.  Lorsque @var{deep?} est vrai, @var{proc} est également appliqué aux entrées implicites."
+
+#. type: cindex
+#: doc/guix.texi:7072
 #, no-wrap
 msgid "build system"
 msgstr "système de construction"
 
 #. type: Plain text
-#: doc/guix.texi:5567
+#: doc/guix.texi:7077
 msgid "Each package definition specifies a @dfn{build system} and arguments for that build system (@pxref{Defining Packages}).  This @code{build-system} field represents the build procedure of the package, as well as implicit dependencies of that build procedure."
 msgstr "Chaque définition de paquet définie un @dfn{système de construction} et des arguments pour ce système de construction (@pxref{Defining Packages}).  Ce champ @code{build-system} représente la procédure de construction du paquet, ainsi que des dépendances implicites pour cette procédure de construction."
 
 #. type: Plain text
-#: doc/guix.texi:5571
+#: doc/guix.texi:7081
 msgid "Build systems are @code{<build-system>} objects.  The interface to create and manipulate them is provided by the @code{(guix build-system)} module, and actual build systems are exported by specific modules."
 msgstr "Les systèmes de construction sont des objets @code{<build-system>}. L'interface pour les créer et les manipuler est fournie par le module @code{(guix build-system)} et les systèmes de construction eux-mêmes sont exportés par des modules spécifiques."
 
 #. type: cindex
-#: doc/guix.texi:5572
+#: doc/guix.texi:7082
 #, no-wrap
 msgid "bag (low-level package representation)"
 msgstr "sac (représentation à bas-niveau des paquets)"
 
 #. type: Plain text
-#: doc/guix.texi:5579
-msgid "Under the hood, build systems first compile package objects to @dfn{bags}.  A @dfn{bag} is like a package, but with less ornamentation---in other words, a bag is a lower-level representation of a package, which includes all the inputs of that package, including some that were implicitly added by the build system.  This intermediate representation is then compiled to a derivation (@pxref{Derivations})."
-msgstr "Sous le capot, les systèmes de construction compilent d'abord des objets paquets en @dfn{sacs}.  Un @dfn{sac} est comme un paquet, mais avec moins de décoration — en d'autres mots, un sac est une représentation à bas-niveau d'un paquet, qui inclus toutes les entrées de ce paquet, dont certaines ont été implicitement ajoutées par le système de construction.  Cette représentation intermédiaire est ensuite compilée en une dérivation (@pxref{Derivations})."
+#: doc/guix.texi:7092
+msgid "Under the hood, build systems first compile package objects to @dfn{bags}.  A @dfn{bag} is like a package, but with less ornamentation---in other words, a bag is a lower-level representation of a package, which includes all the inputs of that package, including some that were implicitly added by the build system.  This intermediate representation is then compiled to a derivation (@pxref{Derivations}).  The @code{package-with-c-toolchain} is an example of a way to change the implicit inputs that a package's build system pulls in (@pxref{package Reference, @code{package-with-c-toolchain}})."
+msgstr "Sous le capot, les systèmes de construction compilent d'abord des objets paquets en @dfn{sacs}.  Un @dfn{sac} est comme un paquet, mais avec moins de décoration — en d'autres mots, un sac est une représentation à bas-niveau d'un paquet, qui inclus toutes les entrées de ce paquet, dont certaines ont été implicitement ajoutées par le système de construction.  Cette représentation intermédiaire est ensuite compilée en une dérivation (@pxref{Derivations}). Le @code{package-with-c-toolchain} est un exemple d'une manière de modifier les entrées implicites que le système de construction d'un paquet récupère (@pxref{package Reference, @code{package-with-c-toolchain}})."
 
 #. type: Plain text
-#: doc/guix.texi:5587
+#: doc/guix.texi:7100
 msgid "Build systems accept an optional list of @dfn{arguments}.  In package definitions, these are passed @i{via} the @code{arguments} field (@pxref{Defining Packages}).  They are typically keyword arguments (@pxref{Optional Arguments, keyword arguments in Guile,, guile, GNU Guile Reference Manual}).  The value of these arguments is usually evaluated in the @dfn{build stratum}---i.e., by a Guile process launched by the daemon (@pxref{Derivations})."
 msgstr "Les systèmes de construction acceptent une liste d'@dfn{arguments} facultatifs.  Dans les définitions de paquets, ils sont passés @i{via} le champ @code{arguments} (@pxref{Defining Packages}).  Ce sont typiquement des arguments par mot-clef (@pxref{Optional Arguments, keyword arguments in Guile,, guile, GNU Guile Reference Manual}).  La valeur de ces arguments est habituellement évaluée dans la @dfn{strate de construction} — c.-à-d.@: par un processus Guile lancé par le démon (@pxref{Derivations})."
 
 #. type: Plain text
-#: doc/guix.texi:5591
-msgid "The main build system is @var{gnu-build-system}, which implements the standard build procedure for GNU and many other packages.  It is provided by the @code{(guix build-system gnu)} module."
-msgstr "Le système de construction principal est le @var{gnu-build-system} qui implémente les procédures de construction standard pour les paquets GNU et de nombreux autres.  Il est fournit par le module @code{(guix build-system gnu)}."
+#: doc/guix.texi:7104
+msgid "The main build system is @code{gnu-build-system}, which implements the standard build procedure for GNU and many other packages.  It is provided by the @code{(guix build-system gnu)} module."
+msgstr "Le système de construction principal est le @code{gnu-build-system} qui implémente les procédures de construction standard pour les paquets GNU et de nombreux autres.  Il est fournit par le module @code{(guix build-system gnu)}."
 
 #. type: defvr
-#: doc/guix.texi:5592
+#: doc/guix.texi:7105
 #, no-wrap
 msgid "{Scheme Variable} gnu-build-system"
 msgstr "{Variable Scheme} gnu-build-system"
 
 #. type: defvr
-#: doc/guix.texi:5596
-msgid "@var{gnu-build-system} represents the GNU Build System, and variants thereof (@pxref{Configuration, configuration and makefile conventions,, standards, GNU Coding Standards})."
-msgstr "@var{gnu-build-system} représente le système de construction GNU et ses variantes (@pxref{Configuration, configuration and makefile conventions,, standards, GNU Coding Standards})."
+#: doc/guix.texi:7109
+msgid "@code{gnu-build-system} represents the GNU Build System, and variants thereof (@pxref{Configuration, configuration and makefile conventions,, standards, GNU Coding Standards})."
+msgstr "@code{gnu-build-system} représente le système de construction GNU et ses variantes (@pxref{Configuration, configuration and makefile conventions,, standards, GNU Coding Standards})."
 
 #. type: cindex
-#: doc/guix.texi:5597 doc/guix.texi:6259
+#: doc/guix.texi:7110 doc/guix.texi:7945 doc/guix.texi:8362
 #, no-wrap
 msgid "build phases"
 msgstr "phases de construction"
 
 #. type: defvr
-#: doc/guix.texi:5604
+#: doc/guix.texi:7117
 msgid "In a nutshell, packages using it are configured, built, and installed with the usual @code{./configure && make && make check && make install} command sequence.  In practice, a few additional steps are often needed.  All these steps are split up in separate @dfn{phases}, notably@footnote{Please see the @code{(guix build gnu-build-system)} modules for more details about the build phases.}:"
 msgstr "En résumé, les paquets qui l'utilisent sont configurés, construits et installés avec la séquence @code{./configure && make && make check && make install} habituelle.  En pratique, des étapes supplémentaires sont souvent requises.  Toutes ces étapes sont séparées dans des @dfn{phases} différentes, notamment@footnote{Regardez les modules @code{(guix build gnu-build-system)} pour plus de détails sur les phases de construction.}:"
 
 #. type: item
-#: doc/guix.texi:5606
+#: doc/guix.texi:7119
 #, no-wrap
 msgid "unpack"
 msgstr "unpack"
 
 #. type: table
-#: doc/guix.texi:5610
+#: doc/guix.texi:7123
 msgid "Unpack the source tarball, and change the current directory to the extracted source tree.  If the source is actually a directory, copy it to the build tree, and enter that directory."
 msgstr "Décompresse l'archive des sources et se déplace dans l'arborescence des sources fraîchement extraites.  Si la source est en fait un répertoire, le copie dans l'arborescence de construction et entre dans ce répertoire."
 
 #. type: item
-#: doc/guix.texi:5611
+#: doc/guix.texi:7124
 #, no-wrap
 msgid "patch-source-shebangs"
 msgstr "patch-source-shebangs"
 
 #. type: table
-#: doc/guix.texi:5615
+#: doc/guix.texi:7128
 msgid "Patch shebangs encountered in source files so they refer to the right store file names.  For instance, this changes @code{#!/bin/sh} to @code{#!/gnu/store/@dots{}-bash-4.3/bin/sh}."
 msgstr "Corrige les shebangs (@code{#!}) rencontrés dans les fichiers pour qu'ils se réfèrent aux bons noms de fichiers.  Par exemple, elle change @code{#!/bin/sh} en @code{#!/gnu/store/@dots{}-bash-4.3/bin/sh}."
 
 #. type: item
-#: doc/guix.texi:5616 doc/guix.texi:6217 doc/guix.texi:6265
+#: doc/guix.texi:7129 doc/guix.texi:7902 doc/guix.texi:7951
 #, no-wrap
 msgid "configure"
 msgstr "configure"
 
 #. type: table
-#: doc/guix.texi:5620
-msgid "Run the @file{configure} script with a number of default options, such as @code{--prefix=/gnu/store/@dots{}}, as well as the options specified by the @code{#:configure-flags} argument."
-msgstr "Lance le script @code{configure} avec un certain nombre d'options par défaut, comme @code{--prefix=/gnu/store/@dots{}}, ainsi que les options spécifiées par l'argument @code{#:configure-flags}."
+#: doc/guix.texi:7133
+msgid "Run the @file{configure} script with a number of default options, such as @option{--prefix=/gnu/store/@dots{}}, as well as the options specified by the @code{#:configure-flags} argument."
+msgstr "Lance le script @code{configure} avec un certain nombre d'options par défaut, comme @option{--prefix=/gnu/store/@dots{}}, ainsi que les options spécifiées par l'argument @code{#:configure-flags}."
 
 #. type: item
-#: doc/guix.texi:5621 doc/guix.texi:5810 doc/guix.texi:6222 doc/guix.texi:6269
-#: doc/guix.texi:24390
+#: doc/guix.texi:7134 doc/guix.texi:7392 doc/guix.texi:7908 doc/guix.texi:7955
+#: doc/guix.texi:30825
 #, no-wrap
 msgid "build"
 msgstr "build"
 
 #. type: table
-#: doc/guix.texi:5625
+#: doc/guix.texi:7138
 msgid "Run @code{make} with the list of flags specified with @code{#:make-flags}.  If the @code{#:parallel-build?} argument is true (the default), build with @code{make -j}."
 msgstr "Lance @code{make} avec la liste des drapeaux spécifiés avec @code{#:make-flags}.  Si l'argument @code{#:parallel-build?} est vrai (par défaut), construit avec @code{make -j}."
 
 #. type: item
-#: doc/guix.texi:5626 doc/guix.texi:5820 doc/guix.texi:6226
+#: doc/guix.texi:7139 doc/guix.texi:7402 doc/guix.texi:7912
 #, no-wrap
 msgid "check"
 msgstr "check"
 
 #. type: table
-#: doc/guix.texi:5631
+#: doc/guix.texi:7144
 msgid "Run @code{make check}, or some other target specified with @code{#:test-target}, unless @code{#:tests? #f} is passed.  If the @code{#:parallel-tests?} argument is true (the default), run @code{make check -j}."
 msgstr "Lance @code{make check}, ou une autre cible spécifiée par @code{#:test-target}, à moins que @code{#:tests? #f} ne soit passé.  Si l'argument @code{#:parallel-tests?} est vrai (par défaut), lance @code{make check -j}."
 
 #. type: item
-#: doc/guix.texi:5632 doc/guix.texi:5828 doc/guix.texi:6230 doc/guix.texi:6273
+#: doc/guix.texi:7145 doc/guix.texi:7410 doc/guix.texi:7916 doc/guix.texi:7959
 #, no-wrap
 msgid "install"
 msgstr "install"
 
 #. type: table
-#: doc/guix.texi:5634
+#: doc/guix.texi:7147
 msgid "Run @code{make install} with the flags listed in @code{#:make-flags}."
 msgstr "Lance @code{make install} avec les drapeaux listés dans @code{#:make-flags}."
 
 #. type: item
-#: doc/guix.texi:5635
+#: doc/guix.texi:7148
 #, no-wrap
 msgid "patch-shebangs"
 msgstr "patch-shebangs"
 
 #. type: table
-#: doc/guix.texi:5637
+#: doc/guix.texi:7150
 msgid "Patch shebangs on the installed executable files."
 msgstr "Corrige les shebangs des fichiers exécutables installés."
 
 #. type: item
-#: doc/guix.texi:5638
+#: doc/guix.texi:7151
 #, no-wrap
 msgid "strip"
 msgstr "strip"
 
 #. type: table
-#: doc/guix.texi:5642
+#: doc/guix.texi:7155
 msgid "Strip debugging symbols from ELF files (unless @code{#:strip-binaries?} is false), copying them to the @code{debug} output when available (@pxref{Installing Debugging Files})."
 msgstr "Nettoie les symboles de débogage dans les fichiers ELF (à moins que @code{#:strip-binaries?} ne soit faux), les copie dans la sortie @code{debug} lorsqu'elle est disponible (@pxref{Installing Debugging Files})."
 
 #. type: vindex
-#: doc/guix.texi:5644
+#: doc/guix.texi:7157
 #, no-wrap
 msgid "%standard-phases"
 msgstr "%standard-phases"
 
 #. type: defvr
-#: doc/guix.texi:5649
-msgid "The build-side module @code{(guix build gnu-build-system)} defines @var{%standard-phases} as the default list of build phases.  @var{%standard-phases} is a list of symbol/procedure pairs, where the procedure implements the actual phase."
-msgstr "Le module du côté du constructeur @code{(guix build gnu-build-system)} définie @var{%standard-phases} comme la liste par défaut des phases de construction.  @var{%standard-phases}  est une liste de paires de symboles et de procédures, où la procédure implémente la phase en question."
-
-#. type: defvr
-#: doc/guix.texi:5652
-msgid "The list of phases used for a particular package can be changed with the @code{#:phases} parameter.  For instance, passing:"
-msgstr "La liste des phases utilisées par un paquet particulier peut être modifiée avec le paramètre @code{#:phases}.  Par exemple, en passant :"
-
-#. type: example
-#: doc/guix.texi:5655
-#, no-wrap
-msgid "#:phases (modify-phases %standard-phases (delete 'configure))\n"
-msgstr "#:phases (modify-phases %standard-phases (delete 'configure))\n"
+#: doc/guix.texi:7162
+msgid "The build-side module @code{(guix build gnu-build-system)} defines @code{%standard-phases} as the default list of build phases.  @code{%standard-phases} is a list of symbol/procedure pairs, where the procedure implements the actual phase."
+msgstr "Le module du côté du constructeur @code{(guix build gnu-build-system)} définie @code{%standard-phases} comme la liste par défaut des phases de construction.  @code{%standard-phases}  est une liste de paires de symboles et de procédures, où la procédure implémente la phase en question."
 
 #. type: defvr
-#: doc/guix.texi:5659
-msgid "means that all the phases described above will be used, except the @code{configure} phase."
-msgstr "signifie que toutes les procédures décrites plus haut seront utilisées, sauf la phase @code{configure}."
+#: doc/guix.texi:7165
+msgid "@xref{Build Phases}, for more info on build phases and ways to customize them."
+msgstr "@xref{Build Phases}, pour plus d'informations sur les phases de construction et les moyens de les personnaliser."
 
 #. type: defvr
-#: doc/guix.texi:5666
+#: doc/guix.texi:7172
 msgid "In addition, this build system ensures that the ``standard'' environment for GNU packages is available.  This includes tools such as GCC, libc, Coreutils, Bash, Make, Diffutils, grep, and sed (see the @code{(guix build-system gnu)} module for a complete list).  We call these the @dfn{implicit inputs} of a package, because package definitions do not have to mention them."
 msgstr "En plus, ce système de construction s'assure que l'environnement « standard » pour les paquets GNU est disponible.  Cela inclus des outils comme GCC, libc, Coreutils, Bash, Make, Diffutils, grep et sed (voir le module @code{(guix build-system gnu)} pour une liste complète).  Nous les appelons les @dfn{entrées implicites} d'un paquet parce que la définition du paquet ne les mentionne pas."
 
 #. type: Plain text
-#: doc/guix.texi:5673
-msgid "Other @code{<build-system>} objects are defined to support other conventions and tools used by free software packages.  They inherit most of @var{gnu-build-system}, and differ mainly in the set of inputs implicitly added to the build process, and in the list of phases executed.  Some of these build systems are listed below."
-msgstr "D'autres objets @code{<build-system>} sont définis pour supporter d'autres conventions et outils utilisés par les paquets de logiciels libres.  Ils héritent de la plupart de @var{gnu-build-system} et diffèrent surtout dans l'ensemble des entrées implicites ajoutées au processus de construction et dans la liste des phases exécutées.  Certains de ces systèmes de construction sont listés ci-dessous."
+#: doc/guix.texi:7179
+msgid "Other @code{<build-system>} objects are defined to support other conventions and tools used by free software packages.  They inherit most of @code{gnu-build-system}, and differ mainly in the set of inputs implicitly added to the build process, and in the list of phases executed.  Some of these build systems are listed below."
+msgstr "D'autres objets @code{<build-system>} sont définis pour supporter d'autres conventions et outils utilisés par les paquets de logiciels libres.  Ils héritent de la plupart de @code{gnu-build-system} et diffèrent surtout dans l'ensemble des entrées implicites ajoutées au processus de construction et dans la liste des phases exécutées.  Certains de ces systèmes de construction sont listés ci-dessous."
 
 #. type: defvr
-#: doc/guix.texi:5674
+#: doc/guix.texi:7180
 #, no-wrap
 msgid "{Scheme Variable} ant-build-system"
 msgstr "{Variable Scheme} ant-build-system"
 
 #. type: defvr
-#: doc/guix.texi:5678
+#: doc/guix.texi:7184
 msgid "This variable is exported by @code{(guix build-system ant)}.  It implements the build procedure for Java packages that can be built with @url{https://ant.apache.org/, Ant build tool}."
 msgstr "Cette variable est exportée par @code{(guix build-system ant)}.  Elle implémente la procédure de construction pour les paquets Java qui peuvent être construits avec @url{https://ant.apache.org/, l'outil de construction Ant}."
 
 #. type: defvr
-#: doc/guix.texi:5683
+#: doc/guix.texi:7189
 msgid "It adds both @code{ant} and the @dfn{Java Development Kit} (JDK) as provided by the @code{icedtea} package to the set of inputs.  Different packages can be specified with the @code{#:ant} and @code{#:jdk} parameters, respectively."
 msgstr "Elle ajoute à la fois @code{ant} et the @dfn{kit de développement Java} (JDK) fournit par le paquet @code{icedtea} à l'ensemble des entrées.  Des paquets différents peuvent être spécifiés avec les paramètres @code{#:ant} et @code{#:jdk} respectivement."
 
 #. type: defvr
-#: doc/guix.texi:5689
+#: doc/guix.texi:7195
 msgid "When the original package does not provide a suitable Ant build file, the parameter @code{#:jar-name} can be used to generate a minimal Ant build file @file{build.xml} with tasks to build the specified jar archive.  In this case the parameter @code{#:source-dir} can be used to specify the source sub-directory, defaulting to ``src''."
 msgstr "Lorsque le paquet d'origine ne fournit pas de fichier de construction Ant acceptable, le paramètre @code{#:jar-name} peut être utilisé pour générer un fichier de construction Ant @file{build.xml} minimal, avec des tâches pour construire l'archive jar spécifiée.  Dans ce cas, le paramètre @code{#:source-dir} peut être utilisé pour spécifier le sous-répertoire des sources, par défaut « src »."
 
 #. type: defvr
-#: doc/guix.texi:5697
+#: doc/guix.texi:7203
 msgid "The @code{#:main-class} parameter can be used with the minimal ant buildfile to specify the main class of the resulting jar.  This makes the jar file executable.  The @code{#:test-include} parameter can be used to specify the list of junit tests to run. It defaults to @code{(list \"**/*Test.java\")}.  The @code{#:test-exclude} can be used to disable some tests. It defaults to @code{(list \"**/Abstract*.java\")}, because abstract classes cannot be run as tests."
 msgstr "Le paramètre @code{#:main-class} peut être utilisé avec le fichier de construction minimal pour spécifier la classe principale du jar.  Cela rend le fichier jar exécutable.  Le paramètre @code{#:test-include} peut être utilisé pour spécifier la liste des tests junits à lancer.  Il vaut par défaut @code{(list \"**/*Test.java\")}.  Le paramètre @code{#:test-exclude} peut être utilisé pour désactiver certains tests.  Sa valeur par défaut est  @code{(list \"**/Abstract*.java\")}, parce que les classes abstraites ne peuvent pas être utilisées comme des tests."
 
 #. type: defvr
-#: doc/guix.texi:5701
+#: doc/guix.texi:7207
 msgid "The parameter @code{#:build-target} can be used to specify the Ant task that should be run during the @code{build} phase.  By default the ``jar'' task will be run."
 msgstr "Le paramètre @code{#:build-target} peut être utilisé pour spécifier la tâche Ant qui devrait être lancée pendant la phase @code{build}.  Par défaut la tâche « jar » sera lancée."
 
 #. type: defvr
-#: doc/guix.texi:5704
+#: doc/guix.texi:7210
 #, no-wrap
 msgid "{Scheme Variable} android-ndk-build-system"
 msgstr "{Variable Scheme} android-ndk-build-system"
 
 #. type: cindex
-#: doc/guix.texi:5705
+#: doc/guix.texi:7211
 #, no-wrap
 msgid "Android distribution"
 msgstr "Distribution android"
 
 #. type: cindex
-#: doc/guix.texi:5706
+#: doc/guix.texi:7212
 #, no-wrap
 msgid "Android NDK build system"
-msgstr "système de construction Android NDK"
+msgstr "Système de construction Android NDK"
 
 #. type: defvr
-#: doc/guix.texi:5710
+#: doc/guix.texi:7216
 msgid "This variable is exported by @code{(guix build-system android-ndk)}.  It implements a build procedure for Android NDK (native development kit)  packages using a Guix-specific build process."
 msgstr "Cette variable est exportée par @code{(guix build-system android-ndk)}.  Elle implémente une procédure de construction pour les paquets du NDK Android (@i{native development kit}) avec des processus de construction spécifiques à Guix."
 
 #. type: defvr
-#: doc/guix.texi:5714
-msgid "The build system assumes that packages install their public interface (header) files to the subdirectory \"include\" of the \"out\" output and their libraries to the subdirectory \"lib\" of the \"out\" output."
-msgstr "Le système de construction suppose que les paquets installent leur interface publique (les en-têtes) dans un sous-répertoire de « include » de la sortie « out » et leurs bibliothèques dans le sous-répertoire « lib » de la sortie « out »."
+#: doc/guix.texi:7220
+msgid "The build system assumes that packages install their public interface (header) files to the subdirectory @file{include} of the @code{out} output and their libraries to the subdirectory @file{lib} the @code{out} output."
+msgstr "Le système de compilation suppose que les paquets installent leurs fichiers d'interface publique (en-tête) dans le sous-répertoire @file{include} de la sortie @code{out} et leurs bibliothèques dans le sous-répertoire @file{lib} de la sortie @code{out}."
 
 #. type: defvr
-#: doc/guix.texi:5717
+#: doc/guix.texi:7223
 msgid "It's also assumed that the union of all the dependencies of a package has no conflicting files."
 msgstr "Il est aussi supposé que l'union de toutes les dépendances d'un paquet n'a pas de fichiers en conflit."
 
 #. type: defvr
-#: doc/guix.texi:5720
+#: doc/guix.texi:7226
 msgid "For the time being, cross-compilation is not supported - so right now the libraries and header files are assumed to be host tools."
 msgstr "Pour l'instant, la compilation croisée n'est pas supportées — donc pour l'instant les bibliothèques et les fichiers d'en-têtes sont supposés être des outils de l'hôte."
 
 #. type: defvr
-#: doc/guix.texi:5723
+#: doc/guix.texi:7229
 #, no-wrap
 msgid "{Scheme Variable} asdf-build-system/source"
 msgstr "{Variable Scheme} asdf-build-system/source"
 
 #. type: defvrx
-#: doc/guix.texi:5724
+#: doc/guix.texi:7230
 #, no-wrap
 msgid "{Scheme Variable} asdf-build-system/sbcl"
 msgstr "{Variable Scheme} asdf-build-system/sbcl"
 
 #. type: defvrx
-#: doc/guix.texi:5725
+#: doc/guix.texi:7231
 #, no-wrap
 msgid "{Scheme Variable} asdf-build-system/ecl"
 msgstr "{Variable Scheme} asdf-build-system/ecl"
 
 #. type: defvr
-#: doc/guix.texi:5731
+#: doc/guix.texi:7237
 msgid "These variables, exported by @code{(guix build-system asdf)}, implement build procedures for Common Lisp packages using @url{https://common-lisp.net/project/asdf/, ``ASDF''}. ASDF is a system definition facility for Common Lisp programs and libraries."
-msgstr "Ces variables, exportées par @code{(guix build-system asdf)}, implémentent les procédures de constructions pour les paquets en Common Lisp qui utilisent @url{https://common-lisp.net/project/asdf/, ``ASDF''}.  ASDF est un dispositif de définition de systèmes pour les programmes et les bibliothèques en Common Lisp."
+msgstr "Ces variables, exportées par @code{(guix build-system asdf)}, implémentent les procédures de constructions pour les paquets en Common Lisp qui utilisent @url{https://common-lisp.net/project/asdf/, « ASDF »}.  ASDF est un dispositif de définition de systèmes pour les programmes et les bibliothèques en Common Lisp."
 
 #. type: defvr
-#: doc/guix.texi:5738
+#: doc/guix.texi:7244
 msgid "The @code{asdf-build-system/source} system installs the packages in source form, and can be loaded using any common lisp implementation, via ASDF.  The others, such as @code{asdf-build-system/sbcl}, install binary systems in the format which a particular implementation understands.  These build systems can also be used to produce executable programs, or lisp images which contain a set of packages pre-loaded."
 msgstr "Le système @code{asdf-build-system/source} installe les paquets au format source qui peuvent être chargés avec n'importe quelle implémentation de common lisp, via ASDF.  Les autres, comme @code{asdf-build-system/sbcl}, installent des binaires au format qu'un implémentation particulière comprend.  Ces systèmes de constructions peuvent aussi être utilisés pour produire des programmes exécutables ou des images lisp qui contiennent un ensemble de paquets pré-chargés."
 
 #. type: defvr
-#: doc/guix.texi:5742
+#: doc/guix.texi:7248
 msgid "The build system uses naming conventions.  For binary packages, the package name should be prefixed with the lisp implementation, such as @code{sbcl-} for @code{asdf-build-system/sbcl}."
 msgstr "Le système de construction utilise des conventions de nommage.  Pour les paquets binaires, le nom du paquet devrait être préfixé par l'implémentation lisp, comme @code{sbcl-} pour @code{asdf-build-system/sbcl}."
 
 #. type: defvr
-#: doc/guix.texi:5746
+#: doc/guix.texi:7252
 msgid "Additionally, the corresponding source package should be labeled using the same convention as python packages (see @ref{Python Modules}), using the @code{cl-} prefix."
 msgstr "En plus, le paquet source correspondant devrait étiquetté avec la même convention que les paquets python (voir @ref{Python Modules}), avec le préfixe @code{cl-}."
 
 #. type: defvr
-#: doc/guix.texi:5751
+#: doc/guix.texi:7257
 msgid "For binary packages, each system should be defined as a Guix package.  If one package @code{origin} contains several systems, package variants can be created in order to build all the systems.  Source packages, which use @code{asdf-build-system/source}, may contain several systems."
 msgstr "Pour les paquets binaires, chaque système devrait être défini comme un paquet Guix.  Si un paquet @code{origine} contient plusieurs systèmes, on peut créer des variantes du paquet pour construire tous les systèmes.  Les paquets sources, qui utilisent @code{asdf-build-system/source}, peuvent contenir plusieurs systèmes."
 
 #. type: defvr
-#: doc/guix.texi:5758
+#: doc/guix.texi:7264
 msgid "In order to create executable programs and images, the build-side procedures @code{build-program} and @code{build-image} can be used.  They should be called in a build phase after the @code{create-symlinks} phase, so that the system which was just built can be used within the resulting image.  @code{build-program} requires a list of Common Lisp expressions to be passed as the @code{#:entry-program} argument."
 msgstr "Pour créer des programmes exécutables et des images, les procédures côté construction @code{build-program} et @code{build-image} peuvent être utilisées.  Elles devraient être appelées dans une phase de construction après la phase @code{create-symlinks} pour que le système qui vient d'être construit puisse être utilisé dans l'image créée.  @code{build-program} requiert une liste d'expressions Common Lisp dans l'argument @code{#:entry-program}."
 
 #. type: defvr
-#: doc/guix.texi:5767
-msgid "If the system is not defined within its own @code{.asd} file of the same name, then the @code{#:asd-file} parameter should be used to specify which file the system is defined in.  Furthermore, if the package defines a system for its tests in a separate file, it will be loaded before the tests are run if it is specified by the @code{#:test-asd-file} parameter.  If it is not set, the files @code{<system>-tests.asd}, @code{<system>-test.asd}, @code{tests.asd}, and @code{test.asd} will be tried if they exist."
-msgstr "Si le système n'est pas défini dans son propre fichier @code{.asd} du même nom, alors le paramètre @code{#:asd-file} devrait être utilisé pour spécifier dans quel fichier le système est défini.  De plus, si le paquet défini un système pour ses tests dans un fichier séparé, il sera chargé avant que les tests ne soient lancés s'il est spécifié par le paramètre @code{#:test-asd-file}.  S'il n'est pas spécifié, les fichiers @code{<system>-tests.asd}, @code{<system>-test.asd}, @code{tests.asd} et @code{test.asd} seront testés."
+#: doc/guix.texi:7273
+msgid "If the system is not defined within its own @file{.asd} file of the same name, then the @code{#:asd-file} parameter should be used to specify which file the system is defined in.  Furthermore, if the package defines a system for its tests in a separate file, it will be loaded before the tests are run if it is specified by the @code{#:test-asd-file} parameter.  If it is not set, the files @code{<system>-tests.asd}, @code{<system>-test.asd}, @code{tests.asd}, and @code{test.asd} will be tried if they exist."
+msgstr "Si le système n'est pas défini dans son propre fichier @file{.asd} du même nom, alors le paramètre @code{#:asd-file} doit être utilisé pour préciser dans quel fichier le système est défini.  En outre, si le paquet définit un système pour ses tests dans un fichier séparé, il sera chargé avant l'exécution des tests s'il est spécifié par le paramètre @code{#:test-asd-file}.  S'il n'est pas défini, les fichiers @code{<system>-tests.asd}, @code{<system>-test.asd}, @code{tests.asd} et @code{test.asd} seront essayés s'ils existent."
 
 #. type: defvr
-#: doc/guix.texi:5771
+#: doc/guix.texi:7277
 msgid "If for some reason the package must be named in a different way than the naming conventions suggest, the @code{#:asd-system-name} parameter can be used to specify the name of the system."
 msgstr "Si pour quelque raison que ce soit le paquet doit être nommé d'une manière différente de ce que la convention de nommage suggère, le paramètre @code{#:asd-system-name} peut être utilisé pour spécifier le nom du système."
 
 #. type: defvr
-#: doc/guix.texi:5774
+#: doc/guix.texi:7280
 #, no-wrap
 msgid "{Scheme Variable} cargo-build-system"
 msgstr "{Variable Scheme} cargo-build-system"
 
 #. type: cindex
-#: doc/guix.texi:5775
+#: doc/guix.texi:7281
 #, no-wrap
 msgid "Rust programming language"
 msgstr "Langage de programmation Rust"
 
 #. type: cindex
-#: doc/guix.texi:5776
+#: doc/guix.texi:7282
 #, no-wrap
 msgid "Cargo (Rust build system)"
 msgstr "Cargo (système de construction Rust)"
 
 #. type: defvr
-#: doc/guix.texi:5780
+#: doc/guix.texi:7286
 msgid "This variable is exported by @code{(guix build-system cargo)}.  It supports builds of packages using Cargo, the build tool of the @uref{https://www.rust-lang.org, Rust programming language}."
 msgstr "Cette variable est exportée par @code{(guix build-system cargo)}.  Elle supporte les construction de paquets avec Cargo, le système de construction du @uref{https://www.rust-lang.org, langage de programmation Rust}."
 
 #. type: defvr
-#: doc/guix.texi:5785
-msgid "In its @code{configure} phase, this build system replaces dependencies specified in the @file{Cargo.toml} file with inputs to the Guix package.  The @code{install} phase installs the binaries, and it also installs the source code and @file{Cargo.toml} file."
-msgstr "Dans sa phase @code{configure}, ce système de construction remplace les dépendances spécifiées dans le fichier @file{Cargo.toml} par les paquets Guix spécifiés en entrée.  La phase @code{install} installe les binaires et installe aussi le code source et le fichier @file{Cargo.toml}."
+#: doc/guix.texi:7289
+msgid "It adds @code{rustc} and @code{cargo} to the set of inputs.  A different Rust package can be specified with the @code{#:rust} parameter."
+msgstr "Celà ajoute @code{rustc} et @code{cargo} à l'ensemble des entrées.  Un autre paquet Rust peut être spécifié avec le paramètre @code{#:rust}."
+
+#. type: defvr
+#: doc/guix.texi:7297
+msgid "Regular cargo dependencies should be added to the package definition via the @code{#:cargo-inputs} parameter as a list of name and spec pairs, where the spec can be a package or a source definition.  Note that the spec must evaluate to a path to a gzipped tarball which includes a @code{Cargo.toml} file at its root, or it will be ignored.  Similarly, cargo dev-dependencies should be added to the package definition via the @code{#:cargo-development-inputs} parameter."
+msgstr "Les dépendances régulières de cargo doivent être ajoutées à la définition du paquet via le paramètre @code{#:cargo-inputs} sous la forme d'une liste de paires de noms et de spécifications, où la spécification peut être un paquet ou une définition de source.  Notez que la spécification doit évaluer un chemin vers une arhive gzippée qui inclut un fichier @code{Cargo.toml} à sa racine, sinon elle sera ignorée.  De même, les dépendances de développement de cargo doivent être ajoutées à la définition du paquet via le paramètre @code{#:cargo-development-inputs}."
+
+#. type: defvr
+#: doc/guix.texi:7304
+msgid "In its @code{configure} phase, this build system will make any source inputs specified in the @code{#:cargo-inputs} and @code{#:cargo-development-inputs} parameters available to cargo.  It will also remove an included @code{Cargo.lock} file to be recreated by @code{cargo} during the @code{build} phase.  The @code{install} phase installs the binaries defined by the crate."
+msgstr "Dans sa phase @code{configure}, ce système de construction mettra à disposition de cargo toutes les entrées sources spécifiées dans les paramètres @code{#:cargo-inputs} et @code{#:cargo-development-inputs}.  Il supprimera également un fichier @code{Cargo.lock} inclus, qui sera recréé par @code{cargo} pendant la phase @code{build}. La phase @code{instal} installe les binaires définis par la caisse."
+
+#. type: defvr
+#: doc/guix.texi:7307
+#, no-wrap
+msgid "{Scheme Variable} copy-build-system"
+msgstr "{Variable Scheme} copy-build-system"
+
+#. type: defvr
+#: doc/guix.texi:7311
+msgid "This variable is exported by @code{(guix build-system copy)}.  It supports builds of simple packages that don't require much compiling, mostly just moving files around."
+msgstr "Cette variable est exportée par @code{(guix build-system copy)}.  Il prend en charge la construction de paquets simples qui ne nécessitent pas beaucoup de compilation, la plupart du temps juste le déplacement de fichiers."
+
+#. type: defvr
+#: doc/guix.texi:7316
+msgid "It adds much of the @code{gnu-build-system} packages to the set of inputs.  Because of this, the @code{copy-build-system} does not require all the boilerplate code often needed for the @code{trivial-build-system}."
+msgstr "Celà ajoute une grande partie des paquets @code{gnu-build-system} à l'ensemble des entrées.  De ce fait, le @code{copy-build-system} n'a pas besoin de tout le code passe-partout souvent nécessaire pour le @code{trivial-build-system}."
+
+#. type: defvr
+#: doc/guix.texi:7321
+msgid "To further simplify the file installation process, an @code{#:install-plan} argument is exposed to let the packager specify which files go where.  The install plan is a list of @code{(@var{source} @var{target} [@var{filters}])}.  @var{filters} are optional."
+msgstr "Pour simplifier davantage le processus d'installation des fichiers, un argument @code{#:install-plan} est exposé pour permettre au packager de spécifier quels fichiers vont où.  Le plan d'installation est une liste de @code{(@var{source} @var{cible} [@var{filtres}])}.  Les @var{filtres} sont facultatifs."
+
+#. type: item
+#: doc/guix.texi:7323
+#, no-wrap
+msgid "When @var{source} matches a file or directory without trailing slash, install it to @var{target}."
+msgstr "Lorsque @var{source} correspond à un fichier ou à un répertoire sans barre oblique, installez-le sur @var{cible}."
+
+#. type: item
+#: doc/guix.texi:7325
+#, no-wrap
+msgid "If @var{target} has a trailing slash, install @var{source} basename beneath @var{target}."
+msgstr "Si @var{target} a une barre oblique, installez le nom de base @var{source} sous @var{target}."
+
+#. type: item
+#: doc/guix.texi:7326
+#, no-wrap
+msgid "Otherwise install @var{source} as @var{target}."
+msgstr "Sinon, installez @var{source} comme @var{cible}."
+
+#. type: item
+#: doc/guix.texi:7329
+#, no-wrap
+msgid "When @var{source} is a directory with a trailing slash, or when @var{filters} are used,"
+msgstr "Lorsque @var{source} est un répertoire avec une barre oblique, ou lorsque des @var{filtres} sont utilisés,"
+
+#. type: itemize
+#: doc/guix.texi:7332
+msgid "the trailing slash of @var{target} is implied with the same meaning as above."
+msgstr "la barre oblique de @var{target} est implicite avec la même signification que ci-dessus."
+
+#. type: item
+#: doc/guix.texi:7333
+#, no-wrap
+msgid "Without @var{filters}, install the full @var{source} @emph{content} to @var{target}."
+msgstr "Sans @var{filtres}, installez le @var{source} complet @emph{contenu} à @var{cible}."
+
+#. type: item
+#: doc/guix.texi:7334
+#, no-wrap
+msgid "With @var{filters} among @code{#:include}, @code{#:include-regexp}, @code{#:exclude},"
+msgstr "Avec @var{filtres} parmi @code{#:include}, @code{#:include-regexp}, @code{#:exclude},"
+
+#. type: itemize
+#: doc/guix.texi:7337
+msgid "@code{#:exclude-regexp}, only select files are installed depending on the filters.  Each filters is specified by a list of strings."
+msgstr "@code{#:exclude-regexp}, seuls les fichiers sélectionnés sont installés en fonction des filtres.  Chaque filtre est spécifié par une liste de chaînes de caractères."
+
+#. type: item
+#: doc/guix.texi:7338
+#, no-wrap
+msgid "With @code{#:include}, install all the files which the path suffix matches"
+msgstr "Avec @code{#:include}, installez tous les fichiers dont le suffixe de chemin correspond"
+
+#. type: itemize
+#: doc/guix.texi:7340
+msgid "at least one of the elements in the given list."
+msgstr "au moins un des éléments dans la liste donnée."
+
+# Le message original semble incomplet ?
+#. type: item
+#: doc/guix.texi:7340
+#, no-wrap
+msgid "With @code{#:include-regexp}, install all the files which the"
+msgstr "Avec @code{#:include-regexp}, installez tous les fichiers que le"
+
+#. type: itemize
+#: doc/guix.texi:7343
+msgid "subpaths match at least one of the regular expressions in the given list."
+msgstr "les sous-chemins correspondent à au moins une des expressions régulières de la liste donnée."
+
+#. type: item
+#: doc/guix.texi:7343
+#, no-wrap
+msgid "The @code{#:exclude} and @code{#:exclude-regexp} filters"
+msgstr "Les filtres @code{#:exclude} et @code{#:exclude-regexp}"
+
+#. type: itemize
+#: doc/guix.texi:7348
+msgid "are the complement of their inclusion counterpart.  Without @code{#:include} flags, install all files but those matching the exclusion filters.  If both inclusions and exclusions are specified, the exclusions are done on top of the inclusions."
+msgstr "sont le complément de leur homologue pour l'inclusion.  Sans les drapeaux @code{#:include}, installez tous les fichiers sauf ceux qui correspondent aux filtres d'exclusion.  Si les inclusions et les exclusions sont toutes deux spécifiées, les exclusions sont faites en complément des inclusions."
+
+#. type: itemize
+#: doc/guix.texi:7352
+msgid "In all cases, the paths relative to @var{source} are preserved within @var{target}."
+msgstr "Dans tous les cas, les chemins relatifs à @var{source} sont préservés dans @var{cible}."
+
+#. type: defvr
+#: doc/guix.texi:7355
+msgid "Examples:"
+msgstr "Exemples :"
+
+#. type: item
+#: doc/guix.texi:7357
+#, no-wrap
+msgid "@code{(\"foo/bar\" \"share/my-app/\")}: Install @file{bar} to @file{share/my-app/bar}."
+msgstr "@code{(\"foo/bar\" \"share/my-app/\")} : Installer @file{bar} sur @file{share/my-app/bar}."
+
+#. type: item
+#: doc/guix.texi:7358
+#, no-wrap
+msgid "@code{(\"foo/bar\" \"share/my-app/baz\")}: Install @file{bar} to @file{share/my-app/baz}."
+msgstr "@code{(\"foo/bar\" \"share/my-app/baz\")} : Installer @file{bar} sur @file{share/my-app/baz}."
+
+#. type: item
+#: doc/guix.texi:7359
+#, no-wrap
+msgid "@code{(\"foo/\" \"share/my-app\")}: Install the content of @file{foo} inside @file{share/my-app},"
+msgstr "@code{(\"foo/\" \"share/my-app\")} : Installez le contenu de @file{foo} dans @file{share/my-app},"
+
+#. type: itemize
+#: doc/guix.texi:7361
+msgid "e.g., install @file{foo/sub/file} to @file{share/my-app/sub/file}."
+msgstr "par exemple, installe @file{foo/sub/file} à @file{share/my-app/sub/file}."
+
+#. type: item
+#: doc/guix.texi:7361
+#, no-wrap
+msgid "@code{(\"foo/\" \"share/my-app\" #:include (\"sub/file\"))}: Install only @file{foo/sub/file} to"
+msgstr "@code{(\"foo/\" \"share/my-app\" #:include (\"sub/file\"))}: Installe seulement @file{foo/sub/file} à"
+
+#. type: itemize
+#: doc/guix.texi:7363
+msgid "@file{share/my-app/sub/file}."
+msgstr "@file{share/my-app/sub/file}."
+
+#. type: item
+#: doc/guix.texi:7363
+#, no-wrap
+msgid "@code{(\"foo/sub\" \"share/my-app\" #:include (\"file\"))}: Install @file{foo/sub/file} to"
+msgstr "@code{(\"foo/sub\" \"share/my-app\" #:include (\"file\"))}: Installe @file{foo/sub/file} vers"
+
+#. type: itemize
+#: doc/guix.texi:7365
+msgid "@file{share/my-app/file}."
+msgstr "@file{share/my-app/file}."
 
 #. type: cindex
-#: doc/guix.texi:5787
+#: doc/guix.texi:7369
 #, no-wrap
 msgid "Clojure (programming language)"
 msgstr "Clojure (langage de programmation)"
 
 #. type: cindex
-#: doc/guix.texi:5788
+#: doc/guix.texi:7370
 #, no-wrap
 msgid "simple Clojure build system"
 msgstr "système de construction Clojure simple"
 
 #. type: defvr
-#: doc/guix.texi:5789
+#: doc/guix.texi:7371
 #, no-wrap
 msgid "{Scheme Variable} clojure-build-system"
 msgstr "{Variable Scheme} clojure-build-system"
 
 #. type: defvr
-#: doc/guix.texi:5794
+#: doc/guix.texi:7376
 msgid "This variable is exported by @code{(guix build-system clojure)}.  It implements a simple build procedure for @uref{https://clojure.org/, Clojure} packages using plain old @code{compile} in Clojure.  Cross-compilation is not supported yet."
 msgstr "Cette variable est exportée par @code{(guix build-system clojure)}.  Elle implémente une procédure de construction des paquets simple qui utilise le bon vieux @code{compile} de Clojure.  La compilation croisée n'est pas encore supportée."
 
 #. type: defvr
-#: doc/guix.texi:5798
+#: doc/guix.texi:7380
 msgid "It adds @code{clojure}, @code{icedtea} and @code{zip} to the set of inputs.  Different packages can be specified with the @code{#:clojure}, @code{#:jdk} and @code{#:zip} parameters, respectively."
 msgstr "Elle ajoute @code{clojure}, @code{icedtea} et @code{zip} à l'ensemble des entrées.  Des paquets différents peuvent être spécifiés avec les paramètres @code{#:clojure}, @code{#:jdk} et @code{#:zip}."
 
 #. type: defvr
-#: doc/guix.texi:5804
+#: doc/guix.texi:7386
 msgid "A list of source directories, test directories and jar names can be specified with the @code{#:source-dirs}, @code{#:test-dirs} and @code{#:jar-names} parameters, respectively.  Compile directory and main class can be specified with the @code{#:compile-dir} and @code{#:main-class} parameters, respectively.  Other parameters are documented below."
 msgstr "Une liste de répertoires sources, de répertoires de tests et de noms de jar peuvent être spécifiés avec les paramètres @code{#:source-dirs}, @code{#:test-dirs} et @code{#:jar-names}.  Le répertoire de construction est la classe principale peuvent être spécifiés avec les paramètres @code{#:compile-dir} et @code{#:main-class}.  Les autres paramètres sont documentés plus bas."
 
 #. type: defvr
-#: doc/guix.texi:5807
-msgid "This build system is an extension of @var{ant-build-system}, but with the following phases changed:"
-msgstr "Ce système de construction est une extension de @var{ant-build-system}, mais avec les phases suivantes modifiées :"
+#: doc/guix.texi:7389
+msgid "This build system is an extension of @code{ant-build-system}, but with the following phases changed:"
+msgstr "Ce système de construction est une extension de @code{ant-build-system}, mais avec les phases suivantes modifiées :"
 
 #. type: table
-#: doc/guix.texi:5819
+#: doc/guix.texi:7401
 msgid "This phase calls @code{compile} in Clojure to compile source files and runs @command{jar} to create jars from both source files and compiled files according to the include list and exclude list specified in @code{#:aot-include} and @code{#:aot-exclude}, respectively.  The exclude list has priority over the include list.  These lists consist of symbols representing Clojure libraries or the special keyword @code{#:all} representing all Clojure libraries found under the source directories.  The parameter @code{#:omit-source?} decides if source should be included into the jars."
 msgstr "Cette phase appelle @code{compile} en Clojure pour compiler les fichiers sources et lance @command{jar} pour créer les fichiers jar à partir des fichiers sources et des fichiers compilés en suivant la liste d'inclusion et d'exclusion spécifiées dans @code{#:aot-include} et @code{#:aot-exclude}.  La liste d'exclusion a la priorité sur la liste d'inclusion.  Ces listes consistent en des symboles représentant des bibliothèque Clojure ou le mot clef spécial @code{#:all}, représentant toutes les bibliothèques Clojure trouvées dans les répertoires des sources.  Le paramètre @code{#:omit-source?} décide si les sources devraient être incluses dans les fichiers jar."
 
 #. type: table
-#: doc/guix.texi:5827
+#: doc/guix.texi:7409
 msgid "This phase runs tests according to the include list and exclude list specified in @code{#:test-include} and @code{#:test-exclude}, respectively.  Their meanings are analogous to that of @code{#:aot-include} and @code{#:aot-exclude}, except that the special keyword @code{#:all} now stands for all Clojure libraries found under the test directories.  The parameter @code{#:tests?} decides if tests should be run."
 msgstr "Cette phase lance les tests en suivant les liste d'inclusion et d'exclusion spécifiées dans @code{#:test-include} et @code{#:test-exclude}.  Leur signification est analogue à celle de @code{#:aot-include} et @code{#:aot-exclude}, sauf que le mot-clef spécial @code{#:all} signifie maintenant toutes les bibliothèques Clojure trouvées dans les répertoires de tests.  Le paramètre @code{#:tests?} décide si les tests devraient être lancés."
 
 #. type: table
-#: doc/guix.texi:5830
+#: doc/guix.texi:7412
 msgid "This phase installs all jars built previously."
 msgstr "Cette phase installe tous les fichiers jar précédemment construits."
 
 #. type: defvr
-#: doc/guix.texi:5833
+#: doc/guix.texi:7415
 msgid "Apart from the above, this build system also contains an additional phase:"
 msgstr "En dehors de cela, le système de construction contient aussi la phase suivante :"
 
 #. type: item
-#: doc/guix.texi:5836
+#: doc/guix.texi:7418
 #, no-wrap
 msgid "install-doc"
 msgstr "install-doc"
 
 #. type: table
-#: doc/guix.texi:5841
-msgid "This phase installs all top-level files with base name matching @var{%doc-regex}.  A different regex can be specified with the @code{#:doc-regex} parameter.  All files (recursively) inside the documentation directories specified in @code{#:doc-dirs} are installed as well."
-msgstr "Cette phase installe tous les fichiers dans le répertoire de plus haut niveau dont le nom correspond à @var{%doc-regex}.  On peut spécifier une regex différente avec le paramètre @code{#:doc-regex}.  Tous les fichiers (récursivement) dans les répertoires de documentations spécifiés dans @code{#:doc-dirs} sont aussi installés."
+#: doc/guix.texi:7423
+msgid "This phase installs all top-level files with base name matching @code{%doc-regex}.  A different regex can be specified with the @code{#:doc-regex} parameter.  All files (recursively) inside the documentation directories specified in @code{#:doc-dirs} are installed as well."
+msgstr "Cette phase installe tous les fichiers dans le répertoire de plus haut niveau dont le nom correspond à @code{%doc-regex}.  On peut spécifier une regex différente avec le paramètre @code{#:doc-regex}.  Tous les fichiers (récursivement) dans les répertoires de documentations spécifiés dans @code{#:doc-dirs} sont aussi installés."
 
 #. type: defvr
-#: doc/guix.texi:5844
+#: doc/guix.texi:7426
 #, no-wrap
 msgid "{Scheme Variable} cmake-build-system"
 msgstr "{Variable Scheme} cmake-build-system"
 
 #. type: defvr
-#: doc/guix.texi:5848
+#: doc/guix.texi:7430
 msgid "This variable is exported by @code{(guix build-system cmake)}.  It implements the build procedure for packages using the @url{https://www.cmake.org, CMake build tool}."
 msgstr "Cette variable est exportée par @code{(guix build-system cmake)}.  Elle implémente la procédure de construction des paquets qui utilisent l'@url{https://www.cmake.org, outil de construction CMake}."
 
 #. type: defvr
-#: doc/guix.texi:5852
+#: doc/guix.texi:7434
 msgid "It automatically adds the @code{cmake} package to the set of inputs.  Which package is used can be specified with the @code{#:cmake} parameter."
 msgstr "Elle ajoute automatiquement le paquet @code{cmake} à l'ensemble des entrées.  Le paquet utilisé peut être spécifié par le paramètre @code{#:cmake}."
 
 #. type: defvr
-#: doc/guix.texi:5859
+#: doc/guix.texi:7441
 msgid "The @code{#:configure-flags} parameter is taken as a list of flags passed to the @command{cmake} command.  The @code{#:build-type} parameter specifies in abstract terms the flags passed to the compiler; it defaults to @code{\"RelWithDebInfo\"} (short for ``release mode with debugging information''), which roughly means that code is compiled with @code{-O2 -g}, as is the case for Autoconf-based packages by default."
 msgstr "Le paramètre @code{#:configure-flags} est pris comme une liste de drapeaux à passer à la commande @command{cmake}.  Le paramètre @code{#:build-type} spécifie en termes abstrait les drapeaux passés au compilateur ; sa valeur par défaut est @code{\"RelWithDebInfo\"} (ce qui veut dire « mode public avec les informations de débogage » en plus court), ce qui signifie en gros que le code sera compilé avec @code{-O2 -g} comme pour les paquets autoconf par défaut."
 
 #. type: defvr
-#: doc/guix.texi:5861
+#: doc/guix.texi:7443
 #, no-wrap
 msgid "{Scheme Variable} dune-build-system"
 msgstr "{Variable Scheme} dune-build-system"
 
 #. type: defvr
-#: doc/guix.texi:5868
+#: doc/guix.texi:7450
 msgid "This variable is exported by @code{(guix build-system dune)}.  It supports builds of packages using @uref{https://dune.build/, Dune}, a build tool for the OCaml programming language.  It is implemented as an extension of the @code{ocaml-build-system} which is described below.  As such, the @code{#:ocaml} and @code{#:findlib} parameters can be passed to this build system."
 msgstr "Cette variable est exportée par @code{(guix build-system dune)}.  Elle prend en charge la construction des paquets qui utilisent @uref{https://dune.build/, Dune}, un outil de construction pour le langage de programmation OCaml.  Elle est implémentée comme une extension de @code{ocaml-build-system} décrit plus bas.  En tant que tel, les paramètres @code{#:ocaml} et @code{#:findlib} peuvent être passés à ce système de construction."
 
 #. type: defvr
-#: doc/guix.texi:5872
+#: doc/guix.texi:7454
 msgid "It automatically adds the @code{dune} package to the set of inputs.  Which package is used can be specified with the @code{#:dune} parameter."
 msgstr "Elle ajoute automatiquement le paquet @code{dune} à l'ensemble des entrées.  Le paquet utilisé peut être spécifié par le paramètre @code{#:dune}."
 
 #. type: defvr
-#: doc/guix.texi:5876
+#: doc/guix.texi:7458
 msgid "There is no @code{configure} phase because dune packages typically don't need to be configured.  The @code{#:build-flags} parameter is taken as a list of flags passed to the @code{dune} command during the build."
 msgstr "Il n'y a pas de phase @code{configure} parce que les paquets dune n'ont habituellement pas besoin d'être configurés.  Le paramètre @code{#:build-flags} est interprété comme une liste de drapeaux pour la commande @code{dune} pendant la construction."
 
 #. type: defvr
-#: doc/guix.texi:5880
+#: doc/guix.texi:7462
 msgid "The @code{#:jbuild?} parameter can be passed to use the @code{jbuild} command instead of the more recent @code{dune} command while building a package.  Its default value is @code{#f}."
 msgstr "Le paramètre @code{#:jbuild?} peut être passé pour utiliser la commande @code{jbuild} à la place de la commande @code{dune} plus récente pour la construction d'un paquet.  Sa valeur par défaut est @code{#f}."
 
 #. type: defvr
-#: doc/guix.texi:5885
+#: doc/guix.texi:7467
 msgid "The @code{#:package} parameter can be passed to specify a package name, which is useful when a package contains multiple packages and you want to build only one of them.  This is equivalent to passing the @code{-p} argument to @code{dune}."
 msgstr "Le paramètre @code{#:package} peut être passé pour spécifié un nom de paquet, ce qui est utile lorsqu'un paquet contient plusieurs paquets et que vous voulez n'en construire qu'un.  C'est équivalent à passer l'argument @code{-p} à @code{dune}."
 
 #. type: defvr
-#: doc/guix.texi:5887
+#: doc/guix.texi:7469
 #, no-wrap
 msgid "{Scheme Variable} go-build-system"
 msgstr "{Variable Scheme} go-build-system"
 
 #. type: defvr
-#: doc/guix.texi:5892
+#: doc/guix.texi:7474
 msgid "This variable is exported by @code{(guix build-system go)}.  It implements a build procedure for Go packages using the standard @url{https://golang.org/cmd/go/#hdr-Compile_packages_and_dependencies, Go build mechanisms}."
 msgstr "Cette variable est exportée par @code{(guix build-system go)}.  Elle implémente la procédure pour les paquets Go utilisant les @url{https://golang.org/cmd/go/#hdr-Compile_packages_and_dependencies, mécanismes de construction Go} standard."
 
 #. type: defvr
-#: doc/guix.texi:5903
+#: doc/guix.texi:7485
 msgid "The user is expected to provide a value for the key @code{#:import-path} and, in some cases, @code{#:unpack-path}.  The @url{https://golang.org/doc/code.html#ImportPaths, import path} corresponds to the file system path expected by the package's build scripts and any referring packages, and provides a unique way to refer to a Go package.  It is typically based on a combination of the package source code's remote URI and file system hierarchy structure.  In some cases, you will need to unpack the package's source code to a different directory structure than the one indicated by the import path, and @code{#:unpack-path} should be used in such cases."
 msgstr "L'utilisateur doit fournir une valeur à la clef @code{#:import-path} et, dans certains cas, @code{#:unpack-path}.  Le @url{https://golang.org/doc/code.html#ImportPaths, chemin d'import} correspond au chemin dans le système de fichiers attendu par le script de construction du paquet et les paquets qui s'y réfèrent et fournit une manière unique de se référer à un paquet Go.  Il est typiquement basé sur une combinaison de l'URI du code source du paquet et d'une structure hiérarchique du système de fichier.  Dans certains cas, vous devrez extraire le code source du paquet dans une structure de répertoires différente que celle indiquée par le chemin d'import et @code{#:unpack-path} devrait être utilisé dans ces cas-là."
 
 #. type: defvr
-#: doc/guix.texi:5908
+#: doc/guix.texi:7490
 msgid "Packages that provide Go libraries should install their source code into the built output.  The key @code{#:install-source?}, which defaults to @code{#t}, controls whether or not the source code is installed.  It can be set to @code{#f} for packages that only provide executable files."
 msgstr "Les paquets qui fournissent des bibliothèques Go devraient installer leur code source dans la sortie du paquet.  La clef @code{#:install-source?}, qui vaut @code{#t} par défaut, contrôle l'installation du code source.  Elle peut être mise à @code{#f} pour les paquets qui ne fournissent que des fichiers exécutables."
 
 #. type: defvr
-#: doc/guix.texi:5910
+#: doc/guix.texi:7492
 #, no-wrap
 msgid "{Scheme Variable} glib-or-gtk-build-system"
 msgstr "{Variable Scheme} glib-or-gtk-build-system"
 
 #. type: defvr
-#: doc/guix.texi:5913
+#: doc/guix.texi:7495
 msgid "This variable is exported by @code{(guix build-system glib-or-gtk)}.  It is intended for use with packages making use of GLib or GTK+."
 msgstr "Cette variable est exportée par @code{(guix build-system glib-or-gtk)}.  Elle est conçue pour être utilisée par des paquets qui utilisent GLib ou GTK+."
 
 #. type: defvr
-#: doc/guix.texi:5916
-msgid "This build system adds the following two phases to the ones defined by @var{gnu-build-system}:"
-msgstr "Ce système de construction ajoute les deux phases suivantes à celles définies par @var{gnu-build-system} :"
+#: doc/guix.texi:7498
+msgid "This build system adds the following two phases to the ones defined by @code{gnu-build-system}:"
+msgstr "Ce système de construction ajoute les deux phases suivantes à celles définies par @code{gnu-build-system} :"
 
 #. type: item
-#: doc/guix.texi:5918 doc/guix.texi:6246
+#: doc/guix.texi:7500 doc/guix.texi:7932
 #, no-wrap
 msgid "glib-or-gtk-wrap"
 msgstr "glib-or-gtk-wrap"
 
 #. type: table
-#: doc/guix.texi:5925
-msgid "The phase @code{glib-or-gtk-wrap} ensures that programs in @file{bin/} are able to find GLib ``schemas'' and @uref{https://developer.gnome.org/gtk3/stable/gtk-running.html, GTK+ modules}.  This is achieved by wrapping the programs in launch scripts that appropriately set the @code{XDG_DATA_DIRS} and @code{GTK_PATH} environment variables."
-msgstr "La phase @code{glib-or-gtk-wrap} s'assure que les programmes dans @file{bin/} sont capable de trouver les « schemas » GLib et les @uref{https://developer.gnome.org/gtk3/stable/gtk-running.html, modules GTK+}.  Ceci est fait en enveloppant les programmes dans des scripts de lancement qui initialisent correctement les variables d'environnement @code{XDG_DATA_DIRS} et @code{GTK_PATH}."
+#: doc/guix.texi:7507
+msgid "The phase @code{glib-or-gtk-wrap} ensures that programs in @file{bin/} are able to find GLib ``schemas'' and @uref{https://developer.gnome.org/gtk3/stable/gtk-running.html, GTK+ modules}.  This is achieved by wrapping the programs in launch scripts that appropriately set the @env{XDG_DATA_DIRS} and @env{GTK_PATH} environment variables."
+msgstr "La phase @code{glib-or-gtk-wrap} garantit que les programmes dans @file{bin/} sont capables de trouver les « schémas » GLib et @uref{https://developer.gnome.org/gtk3/stable/gtk-running.html, GTK+ modules}.  Cela est réalisé en enveloppant les programmes dans des scripts de lancement qui définissent de manière appropriée les variables d'environnement @env{XDG_DATA_DIRS} et @env{GTK_PATH}."
 
 #. type: table
-#: doc/guix.texi:5932
+#: doc/guix.texi:7514
 msgid "It is possible to exclude specific package outputs from that wrapping process by listing their names in the @code{#:glib-or-gtk-wrap-excluded-outputs} parameter.  This is useful when an output is known not to contain any GLib or GTK+ binaries, and where wrapping would gratuitously add a dependency of that output on GLib and GTK+."
 msgstr "Il est possible d'exclure des sorties spécifiques de ce processus d'enveloppage en listant leur nom dans le paramètre @code{#:glib-or-gtk-wrap-excluded-outputs}.  C'est utile lorsqu'une sortie est connue pour ne pas contenir de binaires GLib ou GTK+, et où l'enveloppe ajouterait une dépendance inutile vers GLib et GTK+."
 
 #. type: item
-#: doc/guix.texi:5933 doc/guix.texi:6250
+#: doc/guix.texi:7515 doc/guix.texi:7936
 #, no-wrap
 msgid "glib-or-gtk-compile-schemas"
 msgstr "glib-or-gtk-compile-schemas"
 
 #. type: table
-#: doc/guix.texi:5941
+#: doc/guix.texi:7523
 msgid "The phase @code{glib-or-gtk-compile-schemas} makes sure that all @uref{https://developer.gnome.org/gio/stable/glib-compile-schemas.html, GSettings schemas} of GLib are compiled.  Compilation is performed by the @command{glib-compile-schemas} program.  It is provided by the package @code{glib:bin} which is automatically imported by the build system.  The @code{glib} package providing @command{glib-compile-schemas} can be specified with the @code{#:glib} parameter."
 msgstr "La phase  @code{glib-or-gtk-compile-schemas} s'assure que tous les @uref{https://developer.gnome.org/gio/stable/glib-compile-schemas.html, schémas GSettings} de GLib sont compilés.  La compilation est effectuée par le programme @command{glib-compile-schemas}.  Il est fournit par le paquet @code{glib:bin} qui est automatiquement importé par le système de construction.  Le paquet @code{glib} qui fournit @command{glib-compile-schemas} peut être spécifié avec le paramètre @code{#:glib}."
 
 #. type: defvr
-#: doc/guix.texi:5944
+#: doc/guix.texi:7526
 msgid "Both phases are executed after the @code{install} phase."
 msgstr "Ces deux phases sont exécutées après la phase @code{install}."
 
 #. type: defvr
-#: doc/guix.texi:5946
+#: doc/guix.texi:7528
 #, no-wrap
 msgid "{Scheme Variable} guile-build-system"
 msgstr "{Variable Scheme} guile-build-system"
 
 #. type: defvr
-#: doc/guix.texi:5953
+#: doc/guix.texi:7535
 msgid "This build system is for Guile packages that consist exclusively of Scheme code and that are so lean that they don't even have a makefile, let alone a @file{configure} script.  It compiles Scheme code using @command{guild compile} (@pxref{Compilation,,, guile, GNU Guile Reference Manual}) and installs the @file{.scm} and @file{.go} files in the right place.  It also installs documentation."
 msgstr "Ce système de construction sert aux paquets Guile qui consistent exclusivement en code Scheme et qui sont si simple qu'ils n'ont même pas un makefile, sans parler d'un script @file{configure}.  Il compile le code Scheme en utilisant @command{guild compile} (@pxref{Compilation,,, guile, GNU Guile Reference Manual}) et installe les fichiers @file{.scm} et @file{.go} aux bons emplacements.  Il installe aussi la documentation."
 
 #. type: defvr
-#: doc/guix.texi:5956
-msgid "This build system supports cross-compilation by using the @code{--target} option of @command{guild compile}."
-msgstr "Ce système de construction supporte la compilation croisée en utilisant l'option @code{--target} de @command{guild compile}."
+#: doc/guix.texi:7538
+msgid "This build system supports cross-compilation by using the @option{--target} option of @samp{guild compile}."
+msgstr "Ce système de construction supporte la compilation croisée en utilisant l'option @option{--target} de @command{guild compile}."
 
 #. type: defvr
-#: doc/guix.texi:5959
+#: doc/guix.texi:7541
 msgid "Packages built with @code{guile-build-system} must provide a Guile package in their @code{native-inputs} field."
 msgstr "Les paquets construits avec @code{guile-build-system} doivent fournir un paquet Guile dans leur champ @code{native-inputs}."
 
 #. type: defvr
-#: doc/guix.texi:5961
+#: doc/guix.texi:7543
+#, no-wrap
+msgid "{Scheme Variable} julia-build-system"
+msgstr "{Variable Scheme} julia-build-system"
+
+#. type: defvr
+#: doc/guix.texi:7550
+msgid "This variable is exported by @code{(guix build-system julia)}.  It implements the build procedure used by @uref{https://julialang.org/, julia} packages, which essentially is similar to running @samp{julia -e 'using Pkg; Pkg.add(package)'} in an environment where @env{JULIA_LOAD_PATH} contains the paths to all Julia package inputs.  Tests are run with @code{Pkg.test}."
+msgstr "Cette variable est exportée par @code{(guix build-system julia)}.  Elle implémente la procédure de compilation utilisée par les paquets @uref{https://julialang.org/, julia}, qui est globalement similaire à l'exécution de @samp{julia -e 'using Pkg ; Pkg.add(package)'} dans un environnement où @env{JULIA_LOAD_PATH} contient les chemins de toutes les entrées des paquets Julia. Les tests sont effectués avec @code{Pkg.test}."
+
+#. type: defvr
+#: doc/guix.texi:7553
+msgid "Julia packages require the source @code{file-name} to be the real name of the package, correctly capitalized."
+msgstr "Les paquets Julia nécessitent que le @code{file-name} source soit le vrai nom du paquet, correctement mis en majuscule."
+
+#. type: defvr
+#: doc/guix.texi:7558
+msgid "For packages requiring shared library dependencies, you may need to write the @file{/deps/deps.jl} file manually. It's usually a line of @code{const variable = /gnu/store/library.so} for each dependency, plus a void function @code{check_deps() = nothing}."
+msgstr "Pour les paquets nécessitant des dépendances de bibliothèques partagées, vous devrez peut-être écrire le fichier @file{/deps/deps.jl} manuellement. Il s'agit généralement d'une ligne de la variable @code{const = /gnu/store/library.so} pour chaque dépendance, plus une fonction void @code{check_deps() = nothing}."
+
+#. type: defvr
+#: doc/guix.texi:7565
+msgid "Some older packages that aren't using @file{Package.toml} yet, will require this file to be created, too. The function @code{julia-create-package-toml} helps creating the file. You need to pass the outputs and the source of the package, it's name (the same as the @code{file-name} parameter), the package uuid, the package version, and a list of dependencies specified by their name and their uuid."
+msgstr "Certains anciens paquets qui n'utilisent pas encore @file{Package.toml}, nécessiteront la création de ce fichier également. La fonction @code{julia-create-package-toml} aide à créer le fichier. Vous devez transmettre les sorties et la source du paquet, son nom (le même que le paramètre @code{file-name}), l'uuid du paquet, la version du paquet, et une liste des dépendances spécifiées par leur nom et leur uuid."
+
+#. type: defvr
+#: doc/guix.texi:7567
+#, no-wrap
+msgid "{Scheme Variable} maven-build-system"
+msgstr "{Variable Scheme} maven-build-system"
+
+#. type: defvr
+#: doc/guix.texi:7574
+msgid "This variable is exported by @code{(guix build-system maven)}.  It implements a build procedure for @uref{https://maven.apache.org, Maven} packages.  Maven is a dependency and lifecycle management tool for Java.  A user of Maven specifies dependencies and plugins in a @file{pom.xml} file that Maven reads.  When Maven does not have one of the dependencies or plugins in its repository, it will download them and use them to build the package."
+msgstr "Cette variable est exportée par @code{(guix build-system maven)}.  Elle implémente une procédure de construction pour les paquets @uref{https://maven.apache.org, Maven}.  Maven est un outil de gestion des dépendances et du cycle de vie pour Java.  Un·e utilisateur·rice de Maven spécifie les dépendances et les plugins dans un fichier @file{pom.xml} que Maven lit.  Lorsque Maven n'a pas l'une des dépendances ou l'un des plugins dans son dépôt, il les télécharge et les utilise pour construire le paquet."
+
+#. type: defvr
+#: doc/guix.texi:7584
+msgid "The maven build system ensures that maven will not try to download any dependency by running in offline mode.  Maven will fail if a dependency is missing.  Before running Maven, the @file{pom.xml} (and subprojects) are modified to specify the version of dependencies and plugins that match the versions available in the guix build environment.  Dependencies and plugins must be installed in the fake maven repository at @file{lib/m2}, and are symlinked into a proper repository before maven is run.  Maven is instructed to use that repository for the build and installs built artifacts there.  Changed files are copied to the @file{lib/m2} directory of the package output."
+msgstr "Le système de construction de maven garantit que maven n'essaiera pas de télécharger une dépendance en s'exécutant en mode hors ligne.  Maven échouera si une dépendance est manquante.  Avant de lancer Maven, le fichier @file{pom.xml} (et sous-projets) sont modifiés pour spécifier la version des dépendances et des plugins qui correspondent aux versions disponibles dans l'environnement de construction de guix.  Les dépendances et plugins doivent être installés dans le faux dépôt maven à @file{lib/m2}, et sont liés par un lien symbolique à un dépôt approprié avant que maven ne soit lancé.  Maven a pour instruction d'utiliser ce dépôt pour la construction et y installe les artefacts construits.  Les fichiers modifiés sont copiés dans le répertoire @file{lib/m2} de la sortie du paquet."
+
+#. type: defvr
+#: doc/guix.texi:7587
+msgid "You can specify a @file{pom.xml} file with the @code{#:pom-file} argument, or let the build system use the default @file{pom.xml} file in the sources."
+msgstr "Vous pouvez spécifier un fichier @file{pom.xml} avec l'argument @code{#:pom-file}, ou bien laisser le système de construction utiliser le fichier par défaut @file{pom.xml} dans les sources."
+
+#. type: defvr
+#: doc/guix.texi:7593
+msgid "In case you need to specify a dependency's version manually, you can use the @code{#:local-packages} argument.  It takes an association list where the key is the groupId of the package and its value is an association list where the key is the artifactId of the package and its value is the version you want to override in the @file{pom.xml}."
+msgstr "Dans le cas où vous avez besoin de spécifier manuellement une version de dépendances, vous pouvez utiliser l'argument @code{#:local-packages}. Il prend une liste d'association dont la clé est le groupId du paquet et sa valeur est une liste d'association où la clé est l'artefactId du paquet et sa valeur est la version que vous souhaitez remplacer dans le fichier @file{pom.xml}."
+
+#. type: defvr
+#: doc/guix.texi:7599
+msgid "Some packages use dependencies or plugins that are not useful at runtime nor at build time in Guix.  You can alter the @file{pom.xml} file to remove them using the @code{#:exclude} argument.  Its value is an association list where the key is the groupId of the plugin or dependency you want to remove, and the value is a list of artifactId you want to remove."
+msgstr "Certains paquets utilisent des dépendances ou des plugins qui ne sont pas utiles au moment de l'exécution ou de la compilation dans Guix.  Vous pouvez modifier le fichier @file{pom.xml} pour les supprimer en utilisant l'argument @code{#:exclude}.  Sa valeur est une liste d'association où la clé est le groupId du plugin ou de la dépendance que vous voulez supprimer, et la valeur est une liste d'artifactId que vous voulez supprimer."
+
+#. type: defvr
+#: doc/guix.texi:7602
+msgid "You can override the default @code{jdk} and @code{maven} packages with the corresponding argument, @code{#:jdk} and @code{#:maven}."
+msgstr "Vous pouvez remplacer les paquets @code{jdk} et @code{maven} par défaut avec l'argument correspondant, @code{#:jdk} et @code{#:maven}."
+
+#. type: defvr
+#: doc/guix.texi:7607
+msgid "The @code{#:maven-plugins} argument is a list of maven plugins used during the build, with the same format as the @code{inputs} fields of the package declaration.  Its default value is @code{(default-maven-plugins)} which is also exported."
+msgstr "L'argument @code{#:maven-plugins} est une liste de plugins maven utilisés pendant la construction, avec le même format que le champ @code{inputs} de la déclaration du paquet. Sa valeur par défaut est @code{(default-maven-plugins)} qui est également exportée."
+
+#. type: defvr
+#: doc/guix.texi:7609
 #, no-wrap
 msgid "{Scheme Variable} minify-build-system"
 msgstr "{Variable Scheme} minify-build-system"
 
 #. type: defvr
-#: doc/guix.texi:5964
+#: doc/guix.texi:7612
 msgid "This variable is exported by @code{(guix build-system minify)}.  It implements a minification procedure for simple JavaScript packages."
 msgstr "Cette variable est exportée par @code{(guix build-system minify)}.  Elle implémente une procédure de minification pour des paquets JavaScript simples."
 
 #. type: defvr
-#: doc/guix.texi:5970
+#: doc/guix.texi:7618
 msgid "It adds @code{uglify-js} to the set of inputs and uses it to compress all JavaScript files in the @file{src} directory.  A different minifier package can be specified with the @code{#:uglify-js} parameter, but it is expected that the package writes the minified code to the standard output."
 msgstr "Elle ajoute @code{uglify-js} à l'ensemble des entrées et l'utilise pour compresser tous les fichiers JavaScript du répertoire @file{src}.  Un minifieur différent peut être spécifié avec le paramètre @code{#:uglify-js} mais il est attendu que ce paquet écrive le code minifié sur la sortie standard."
 
 #. type: defvr
-#: doc/guix.texi:5974
+#: doc/guix.texi:7622
 msgid "When the input JavaScript files are not all located in the @file{src} directory, the parameter @code{#:javascript-files} can be used to specify a list of file names to feed to the minifier."
 msgstr "Lorsque les fichiers JavaScript d'entrée ne sont pas situés dans le répertoire @file{src}, le paramètre @code{#:javascript-files} peut être utilisé pour spécifier une liste de noms de fichiers à donner au minifieur."
 
 #. type: defvr
-#: doc/guix.texi:5976
+#: doc/guix.texi:7624
 #, no-wrap
 msgid "{Scheme Variable} ocaml-build-system"
 msgstr "{Variable Scheme} ocaml-build-system"
 
 #. type: defvr
-#: doc/guix.texi:5982
+#: doc/guix.texi:7630
 msgid "This variable is exported by @code{(guix build-system ocaml)}.  It implements a build procedure for @uref{https://ocaml.org, OCaml} packages, which consists of choosing the correct set of commands to run for each package.  OCaml packages can expect many different commands to be run.  This build system will try some of them."
 msgstr "Cette variable est exportée par @code{(guix build-system ocaml)}.  Elle implémente une procédure de construction pour les paquets @uref{https://ocaml.org, OCaml} qui consiste à choisir le bon ensemble de commande à lancer pour chaque paquet.  Les paquets OCaml peuvent demander des commandes diverses pour être construit.  Ce système de construction en essaye certaines."
 
 #. type: defvr
-#: doc/guix.texi:5992
+#: doc/guix.texi:7640
 msgid "When the package has a @file{setup.ml} file present at the top-level, it will run @code{ocaml setup.ml -configure}, @code{ocaml setup.ml -build} and @code{ocaml setup.ml -install}.  The build system will assume that this file was generated by @uref{http://oasis.forge.ocamlcore.org/, OASIS} and will take care of setting the prefix and enabling tests if they are not disabled.  You can pass configure and build flags with the @code{#:configure-flags} and @code{#:build-flags}.  The @code{#:test-flags} key can be passed to change the set of flags used to enable tests.  The @code{#:use-make?} key can be used to bypass this system in the build and install phases."
 msgstr "Lorsqu'un fichier @file{setup.ml} est présent dans le répertoire de plus haut niveau, elle lancera @code{ocaml setup.ml -configure}, @code{ocaml setup.ml -build} et @code{ocaml setup.ml -install}.  Le système de construction supposera que ces fichiers ont été générés par @uref{http://oasis.forge.ocamlcore.org/, OASIS} et prendra soin d'initialiser le préfixe et d'activer les tests s'ils ne sont pas désactivés.  Vous pouvez passer des drapeaux de configuration et de construction avec @code{#:configure-flags} et @code{#:build-flags}.  La clef @code{#:test-flags} peut être passée pour changer l'ensemble des drapeaux utilisés pour activer les tests.  La clef @code{#:use-make?} peut être utilisée pour outrepasser ce système dans les phases de construction et d'installation."
 
 #. type: defvr
-#: doc/guix.texi:5997
+#: doc/guix.texi:7645
 msgid "When the package has a @file{configure} file, it is assumed that it is a hand-made configure script that requires a different argument format than in the @code{gnu-build-system}.  You can add more flags with the @code{#:configure-flags} key."
 msgstr "Lorsque le paquet a un fichier @file{configure}, il est supposé qu'il s'agit d'un script configure écrit à la main qui demande un format différent de celui de @code{gnu-build-system}.  Vous pouvez ajouter plus de drapeaux avec la clef @code{#:configure-flags}."
 
 #. type: defvr
-#: doc/guix.texi:6001
+#: doc/guix.texi:7649
 msgid "When the package has a @file{Makefile} file (or @code{#:use-make?} is @code{#t}), it will be used and more flags can be passed to the build and install phases with the @code{#:make-flags} key."
 msgstr "Lorsque le paquet a un fichier @file{Makefile} (ou @code{#:use-make?} vaut @code{#t}), il sera utilisé et plus de drapeaux peuvent être passés à la construction et l'installation avec la clef @code{#:make-flags}."
 
 #. type: defvr
-#: doc/guix.texi:6009
+#: doc/guix.texi:7657
 msgid "Finally, some packages do not have these files and use a somewhat standard location for its build system.  In that case, the build system will run @code{ocaml pkg/pkg.ml} or @code{ocaml pkg/build.ml} and take care of providing the path to the required findlib module.  Additional flags can be passed via the @code{#:build-flags} key.  Install is taken care of by @command{opam-installer}.  In this case, the @code{opam} package must be added to the @code{native-inputs} field of the package definition."
 msgstr "Enfin, certains paquets n'ont pas ces fichiers mais utilisent un emplacement plus ou moins standard pour leur système de construction.  Dans ce cas, le système de construction lancera @code{ocaml pkg/pkg.ml} ou @code{pkg/build.ml} et prendra soin de fournir le chemin du module findlib requis.  Des drapeaux supplémentaires peuvent être passés via la clef @code{#:bulid-flags}.  L'installation se fait avec @command{opam-installer}.  Dans ce cas, le paquet @code{opam} doit être ajouté au champ @code{native-inputs} de la définition du paquet."
 
 #. type: defvr
-#: doc/guix.texi:6017
-msgid "Note that most OCaml packages assume they will be installed in the same directory as OCaml, which is not what we want in guix.  In particular, they will install @file{.so} files in their module's directory, which is usually fine because it is in the OCaml compiler directory.  In guix though, these libraries cannot be found and we use @code{CAML_LD_LIBRARY_PATH}.  This variable points to @file{lib/ocaml/site-lib/stubslibs} and this is where @file{.so} libraries should be installed."
-msgstr "Remarquez que la plupart des paquets OCaml supposent qu'ils seront installés dans le même répertoire qu'OCaml, ce qui n'est pas ce que nous voulons faire dans Guix.  En particulier, ils installeront leurs fichiers @file{.so} dans leur propre répertoire de module, ce qui est normalement correct puisqu'il s'agit du répertoire du compilateur OCaml.  Dans Guix en revanche, le bibliothèques ne peuvent pas y être trouvées et on utilise @code{CAML_LD_LIBRARY_PATH} à la place.  Cette variable pointe vers @file{lib/ocaml/site-lib/stubslibs} et c'est là où les bibliothèques @file{.so} devraient être installées."
+#: doc/guix.texi:7665
+msgid "Note that most OCaml packages assume they will be installed in the same directory as OCaml, which is not what we want in guix.  In particular, they will install @file{.so} files in their module's directory, which is usually fine because it is in the OCaml compiler directory.  In guix though, these libraries cannot be found and we use @env{CAML_LD_LIBRARY_PATH}.  This variable points to @file{lib/ocaml/site-lib/stubslibs} and this is where @file{.so} libraries should be installed."
+msgstr "Remarquez que la plupart des paquets OCaml supposent qu'ils seront installés dans le même répertoire qu'OCaml, ce qui n'est pas ce que nous voulons faire dans Guix.  En particulier, ils installeront leurs fichiers @file{.so} dans leur propre répertoire de module, ce qui est normalement correct puisqu'il s'agit du répertoire du compilateur OCaml.  Dans Guix en revanche, ces bibliothèques ne peuvent pas y être trouvées et on utilise @env{CAML_LD_LIBRARY_PATH} à la place.  Cette variable pointe vers @file{lib/ocaml/site-lib/stubslibs} et c'est là où les bibliothèques @file{.so} devraient être installées."
 
 #. type: defvr
-#: doc/guix.texi:6019
+#: doc/guix.texi:7667
 #, no-wrap
 msgid "{Scheme Variable} python-build-system"
 msgstr "{Variable Scheme} python-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6024
+#: doc/guix.texi:7672
 msgid "This variable is exported by @code{(guix build-system python)}.  It implements the more or less standard build procedure used by Python packages, which consists in running @code{python setup.py build} and then @code{python setup.py install --prefix=/gnu/store/@dots{}}."
 msgstr "Cette variable est exportée par @code{(guix build-system python)}.  Elle implémente la procédure de construction plus ou moins standard utilisée pour les paquets Python, qui consiste à lancer @code{python setup.py build} puis @code{python setup.py install --prefix=/gnu/store/@dots{}}."
 
 #. type: defvr
-#: doc/guix.texi:6028
-msgid "For packages that install stand-alone Python programs under @code{bin/}, it takes care of wrapping these programs so that their @code{PYTHONPATH} environment variable points to all the Python libraries they depend on."
-msgstr "Pour les paquets qui installent des programmes autonomes dans @code{bin/}, elle prend soin d'envelopper ces binaires pour que leur variable d'environnement @code{PYTHONPATH} pointe vers toutes les bibliothèques Python dont ils dépendent."
+#: doc/guix.texi:7676
+msgid "For packages that install stand-alone Python programs under @code{bin/}, it takes care of wrapping these programs so that their @env{PYTHONPATH} environment variable points to all the Python libraries they depend on."
+msgstr "Pour les paquets qui installent des programmes autonomes Python dans @code{bin/}, elle prend soin d'envelopper ces binaires pour que leur variable d'environnement @env{PYTHONPATH} pointe vers toutes les bibliothèques Python dont ils dépendent."
 
 #. type: defvr
-#: doc/guix.texi:6034
+#: doc/guix.texi:7682
 msgid "Which Python package is used to perform the build can be specified with the @code{#:python} parameter.  This is a useful way to force a package to be built for a specific version of the Python interpreter, which might be necessary if the package is only compatible with a single interpreter version."
 msgstr "Le paquet Python utilisé pour effectuer la construction peut être spécifié avec le paramètre @code{#:python}.  C'est une manière utile de forcer un paquet à être construit avec une version particulière de l'interpréteur python, ce qui peut être nécessaire si le paquet n'est compatible qu'avec une version de l'interpréteur."
 
 #. type: defvr
-#: doc/guix.texi:6039
-msgid "By default guix calls @code{setup.py} under control of @code{setuptools}, much like @command{pip} does.  Some packages are not compatible with setuptools (and pip), thus you can disable this by setting the @code{#:use-setuptools} parameter to @code{#f}."
-msgstr "Par défaut Guix appelle @code{setup.py} sous le contrôle de @code{setuptools}, comme le fait @command{pip}.  Certains paquets ne sont pas compatibles avec setuptools (et pip), ainsi vous pouvez désactiver cela en mettant le paramètre @code{#:use-setuptools} à @code{#f}."
+#: doc/guix.texi:7687
+msgid "By default guix calls @code{setup.py} under control of @code{setuptools}, much like @command{pip} does.  Some packages are not compatible with setuptools (and pip), thus you can disable this by setting the @code{#:use-setuptools?} parameter to @code{#f}."
+msgstr "Par défaut, guix appelle @code{setup.py} sous le contrôle de @code{setuptools}, tout comme @command{pip} le fait.  Certains paquets ne sont pas compatibles avec setuptools (et pip), vous pouvez donc le désactiver en réglant le paramètre @code{#:use-setuptools?} sur @code{#f}."
 
 #. type: defvr
-#: doc/guix.texi:6041
+#: doc/guix.texi:7689
 #, no-wrap
 msgid "{Scheme Variable} perl-build-system"
 msgstr "{Variable Scheme} perl-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6053
+#: doc/guix.texi:7701
 msgid "This variable is exported by @code{(guix build-system perl)}.  It implements the standard build procedure for Perl packages, which either consists in running @code{perl Build.PL --prefix=/gnu/store/@dots{}}, followed by @code{Build} and @code{Build install}; or in running @code{perl Makefile.PL PREFIX=/gnu/store/@dots{}}, followed by @code{make} and @code{make install}, depending on which of @code{Build.PL} or @code{Makefile.PL} is present in the package distribution.  Preference is given to the former if both @code{Build.PL} and @code{Makefile.PL} exist in the package distribution.  This preference can be reversed by specifying @code{#t} for the @code{#:make-maker?} parameter."
 msgstr "Cette variable est exportée par @code{(guix build-system perl)}.  Elle implémente la procédure de construction standard des paquets Perl, qui consiste soit à lancer @code{perl Build.PL --prefix=/gnu/store/@dots{}}, suivi de @code{Build} et @code{Build install} ; ou à lancer @code{perl Makefile.PL PREFIX=/gnu/store/@dots{}}, suivi de @code{make} et @code{make install}, en fonction de la présence de @code{Build.PL} ou @code{Makefile.PL} dans la distribution du paquet.  Le premier a la préférence si @code{Build.PL} et @code{Makefile.PL} existent tous deux dans la distribution du paquet.  Cette préférence peut être inversée en spécifiant @code{#t} pour le paramètre @code{#:make-maker?}."
 
 #. type: defvr
-#: doc/guix.texi:6057
+#: doc/guix.texi:7705
 msgid "The initial @code{perl Makefile.PL} or @code{perl Build.PL} invocation passes flags specified by the @code{#:make-maker-flags} or @code{#:module-build-flags} parameter, respectively."
 msgstr "L'invocation initiale de @code{perl Makefile.PL} ou @code{perl Build.PL} passe les drapeaux spécifiés par le paramètre @code{#:make-maker-flags} ou @code{#:module-build-flags}, respectivement."
 
 #. type: defvr
-#: doc/guix.texi:6059
+#: doc/guix.texi:7707
 msgid "Which Perl package is used can be specified with @code{#:perl}."
 msgstr "Le paquet Perl utilisé peut être spécifié avec @code{#:perl}."
 
 #. type: defvr
-#: doc/guix.texi:6061
+#: doc/guix.texi:7709
+#, no-wrap
+msgid "{Scheme Variable} qt-build-system"
+msgstr "{Variable Scheme} qt-build-system"
+
+#. type: defvr
+#: doc/guix.texi:7712
+msgid "This variable is exported by @code{(guix build-system qt)}.  It is intended for use with applications using Qt or KDE."
+msgstr "Cette variable est exportée par @code{(guix build-system qt)}.  Elle est destinée à être employée avec des applications utilisant Qt ou KDE."
+
+#. type: defvr
+#: doc/guix.texi:7715
+msgid "This build system adds the following two phases to the ones defined by @code{cmake-build-system}:"
+msgstr "Ce système de construction ajoute les deux phases suivantes à celles définies par @code{gnu-build-system} :"
+
+#. type: item
+#: doc/guix.texi:7717
+#, no-wrap
+msgid "check-setup"
+msgstr "check-setup"
+
+#. type: table
+#: doc/guix.texi:7724
+msgid "The phase @code{check-setup} prepares the environment for running the checks as commonly used by Qt test programs.  For now this only sets some environment variables: @code{QT_QPA_PLATFORM=offscreen}, @code{DBUS_FATAL_WARNINGS=0} and @code{CTEST_OUTPUT_ON_FAILURE=1}."
+msgstr "La phase @code{check-setup} prépare l'environnement pour l'exécution des contrôles tels qu'ils sont couramment utilisés par les programmes de test Qt.  Pour l'instant, elle ne définit que quelques variables d'environnement : @code{QT_QPA_PLATFORM=offscreen}, @code{DBUS_FATAL_WARNINGS=0} et @code{CTEST_OUTPUT_ON_FAILURE=1}."
+
+#. type: table
+#: doc/guix.texi:7727
+msgid "This phase is added before the @code{check} phase.  It's a separate phase to ease adjusting if necessary."
+msgstr "Cette phase est ajoutée avant la phase @code{check}.  C'est une phase distincte pour faciliter l'ajustement si nécessaire."
+
+#. type: item
+#: doc/guix.texi:7728
+#, no-wrap
+msgid "qt-wrap"
+msgstr "qt-wrap"
+
+#. type: table
+#: doc/guix.texi:7734
+msgid "The phase @code{qt-wrap} searches for Qt5 plugin paths, QML paths and some XDG in the inputs and output.  In case some path is found, all programs in the output's @file{bin/}, @file{sbin/}, @file{libexec/} and @file{lib/libexec/} directories are wrapped in scripts defining the necessary environment variables."
+msgstr "La phase @code{qt-wrap} recherche les chemins des plugins Qt5, les chemins QML et certains XDG dans les entrées et sorties.  Si un chemin est trouvé, tous les programmes des répertoires @file{bin/}, @file{sbin/}, @file{libexec/} et @file{lib/libexec/} de la sortie sont enveloppés dans des scripts définissant les variables d'environnement nécessaires."
+
+#. type: table
+#: doc/guix.texi:7740
+msgid "It is possible to exclude specific package outputs from that wrapping process by listing their names in the @code{#:qt-wrap-excluded-outputs} parameter.  This is useful when an output is known not to contain any Qt binaries, and where wrapping would gratuitously add a dependency of that output on Qt, KDE, or such."
+msgstr "Il est possible d'exclure des sorties de paquets spécifiques de ce processus d'emballage en listant leurs noms dans le paramètre @code{#:qt-wrap-excluded-outputs}.  Ceci est utile lorsqu'une sortie est connue pour ne pas contenir de binaires Qt, et où le wrapping ajouterait gratuitement une dépendance de cette sortie à Qt, KDE, ou autre."
+
+#. type: table
+#: doc/guix.texi:7742
+msgid "This phase is added after the @code{install} phase."
+msgstr "Cette phase est exécutée après la phase @code{install}."
+
+#. type: defvr
+#: doc/guix.texi:7745
 #, no-wrap
 msgid "{Scheme Variable} r-build-system"
 msgstr "{Variable Scheme} r-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6069
-msgid "This variable is exported by @code{(guix build-system r)}.  It implements the build procedure used by @uref{https://r-project.org, R} packages, which essentially is little more than running @code{R CMD INSTALL --library=/gnu/store/@dots{}} in an environment where @code{R_LIBS_SITE} contains the paths to all R package inputs.  Tests are run after installation using the R function @code{tools::testInstalledPackage}."
-msgstr "Cette variable est exportée par @code{(guix build-system r)}.  Elle implémente la procédure de construction utilisée par les paquets @uref{https://r-project.org, R} qui consiste à lancer à peine plus que @code{R CMD INSTALL --library=/gnu/store/@dots{}} dans un environnement où @code{R_LIBS_SITE} contient les chemins de toutes les entrées R.  Les tests sont lancés après l'installation avec la fonction R @code{tools::testInstalledPackage}."
+#: doc/guix.texi:7753
+msgid "This variable is exported by @code{(guix build-system r)}.  It implements the build procedure used by @uref{https://r-project.org, R} packages, which essentially is little more than running @samp{R CMD INSTALL --library=/gnu/store/@dots{}} in an environment where @env{R_LIBS_SITE} contains the paths to all R package inputs.  Tests are run after installation using the R function @code{tools::testInstalledPackage}."
+msgstr "Cette variable est exportée par @code{(guix build-system r)}.  Elle implémente la procédure de compilation utilisée par les paquets @uref{https://r-project.org, R}, qui consiste en substance à exécuter @samp{R CMD INSTALL --library=/gnu/store/@dots{}} dans un environnement où @env{R_LIBS_SITE} contient les chemins de toutes les entrées des paquets R.  Les tests sont exécutés après l'installation en utilisant la fonction R @code{tools::testInstalledPackage}."
 
 #. type: defvr
-#: doc/guix.texi:6071
+#: doc/guix.texi:7755
 #, no-wrap
 msgid "{Scheme Variable} rakudo-build-system"
 msgstr "{Variable Scheme} rakudo-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6079
+#: doc/guix.texi:7763
 msgid "This variable is exported by @code{(guix build-system rakudo)}.  It implements the build procedure used by @uref{https://rakudo.org/, Rakudo} for @uref{https://perl6.org/, Perl6} packages. It installs the package to @code{/gnu/store/@dots{}/NAME-VERSION/share/perl6} and installs the binaries, library files and the resources, as well as wrap the files under the @code{bin/} directory.  Tests can be skipped by passing @code{#f} to the @code{tests?} parameter."
-msgstr "Cette variable est exportée par @code{(guix build-system rakudo)}.  Elle implémente la procédure de construction utilisée par @uref{https://rakudo.org/, Rakudo} pour les paquets @uref{https://perl6.org/, Perl6}.  Elle installe le paquet dans @code{/gnu/store/@dots{}/NOM-VERSION/share/perl6} et installe les binaires, les fichiers de bibliothèques et les ressources, et enveloppe les fichiers dans le répertoire @code{bin/}.  Les tests peuvent être passés en indiquant @code{#f} au paramètres @code{tests?}."
+msgstr "Cette variable est exportée par @code{(guix build-system rakudo)}.  Elle implémente la procédure de construction utilisée par @uref{https://rakudo.org/, Rakudo} pour les paquets @uref{https://perl6.org/, Perl6}.  Elle installe le paquet dans @code{/gnu/store/@dots{}/NOM-VERSION/share/perl6} et installe les binaires, les fichiers de bibliothèques et les ressources, et enveloppe les fichiers dans le répertoire @code{bin/}.  Les tests peuvent être passés en indiquant @code{#f} au paramètre @code{tests?}."
 
 #. type: defvr
-#: doc/guix.texi:6087
+#: doc/guix.texi:7771
 msgid "Which rakudo package is used can be specified with @code{rakudo}.  Which perl6-tap-harness package used for the tests can be specified with @code{#:prove6} or removed by passing @code{#f} to the @code{with-prove6?} parameter.  Which perl6-zef package used for tests and installing can be specified with @code{#:zef} or removed by passing @code{#f} to the @code{with-zef?} parameter."
 msgstr "Le paquet rakudo utilisé peut être spécifié avec @code{rakudo}.  Le paquet perl6-tap-harness utilisé pour les tests peut être spécifié avec @code{#:prove6} ou supprimé en passant @code{#f} au paramètre @code{with-prove6?}.  Le paquet perl6-zef utilisé pour les tests et l'installation peut être spécifié avec @code{#:ef} ou supprimé en passant @code{#f} au paramètre @code{with-zef?}."
 
 #. type: defvr
-#: doc/guix.texi:6089
+#: doc/guix.texi:7773
 #, no-wrap
 msgid "{Scheme Variable} texlive-build-system"
 msgstr "{Variable Scheme} texlive-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6094
-msgid "This variable is exported by @code{(guix build-system texlive)}.  It is used to build TeX packages in batch mode with a specified engine.  The build system sets the @code{TEXINPUTS} variable to find all TeX source files in the inputs."
-msgstr "Cette variable est exportée par @code{(guix build-system texlive)}.  Elle est utilisée pour construire des paquets TeX en mode batch avec le moteur spécifié.  Le système de construction initialise la variable @code{TEXINPUTS} pour trouver tous les fichiers source TeX dans ses entrées."
+#: doc/guix.texi:7778
+msgid "This variable is exported by @code{(guix build-system texlive)}.  It is used to build TeX packages in batch mode with a specified engine.  The build system sets the @env{TEXINPUTS} variable to find all TeX source files in the inputs."
+msgstr "Cette variable est exportée par @code{(guix build-system texlive)}.  Elle est utilisée pour construire des paquets TeX en mode batch avec le moteur spécifié.  Le système de construction initialise la variable @env{TEXINPUTS} pour trouver tous les fichiers source TeX dans ses entrées."
 
 #. type: defvr
-#: doc/guix.texi:6103
+#: doc/guix.texi:7787
 msgid "By default it runs @code{luatex} on all files ending on @code{ins}.  A different engine and format can be specified with the @code{#:tex-format} argument.  Different build targets can be specified with the @code{#:build-targets} argument, which expects a list of file names.  The build system adds only @code{texlive-bin} and @code{texlive-latex-base} (both from @code{(gnu packages tex}) to the inputs.  Both can be overridden with the arguments @code{#:texlive-bin} and @code{#:texlive-latex-base}, respectively."
 msgstr "Par défaut, elle lance @code{luatex} sur tous les fichiers qui se terminent par @code{ins}.  Un moteur et un format différent peuvent être spécifiés avec l'argument @code{#:tex-format}.  Plusieurs cibles de constructions peuvent être indiquées avec l'argument @code{#:build-targets} qui attend une liste de noms de fichiers.  Le système de construction ajoute uniquement @code{texlive-bin} et @code{texlive-latex-base} (de @code{(gnu packages tex)} à la liste des entrées.  Les deux peuvent être remplacés avec les arguments @code{#:texlive-bin} et @code{#:texlive-latex-base}, respectivement."
 
 #. type: defvr
-#: doc/guix.texi:6106
+#: doc/guix.texi:7790
 msgid "The @code{#:tex-directory} parameter tells the build system where to install the built files under the texmf tree."
 msgstr "Le paramètre @code{#:tex-directory} dit au système de construction où installer les fichiers construit dans l'arbre texmf."
 
 #. type: defvr
-#: doc/guix.texi:6108
+#: doc/guix.texi:7792
 #, no-wrap
 msgid "{Scheme Variable} ruby-build-system"
 msgstr "{Variable Scheme} ruby-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6112
+#: doc/guix.texi:7796
 msgid "This variable is exported by @code{(guix build-system ruby)}.  It implements the RubyGems build procedure used by Ruby packages, which involves running @code{gem build} followed by @code{gem install}."
 msgstr "Cette variable est exportée par @code{(guix build-system ruby)}.  Elle implémenter la procédure de construction RubyGems utilisée par les paquets Ruby qui consiste à lancer @code{gem build} suivi de @code{gem install}."
 
 #. type: defvr
-#: doc/guix.texi:6120
+#: doc/guix.texi:7804
 msgid "The @code{source} field of a package that uses this build system typically references a gem archive, since this is the format that Ruby developers use when releasing their software.  The build system unpacks the gem archive, potentially patches the source, runs the test suite, repackages the gem, and installs it.  Additionally, directories and tarballs may be referenced to allow building unreleased gems from Git or a traditional source release tarball."
 msgstr "Le champ @code{source} d'un paquet qui utilise ce système de construction référence le plus souvent une archive gem, puisque c'est le format utilisé par les personnes qui développent en Ruby quand elles publient leur logiciel.  Le système de construction décompresse l'archive gem, éventuellement en corrigeant les sources, lance la suite de tests, recompresse la gemme et l'installe.  En plus, des répertoires et des archives peuvent être référencés pour permettre de construire des gemmes qui n'ont pas été publiées depuis Git ou une archive de sources traditionnelle."
 
 #. type: defvr
-#: doc/guix.texi:6124
+#: doc/guix.texi:7808
 msgid "Which Ruby package is used can be specified with the @code{#:ruby} parameter.  A list of additional flags to be passed to the @command{gem} command can be specified with the @code{#:gem-flags} parameter."
 msgstr "Le paquet Ruby utilisé peut être spécifié avec le paramètre @code{#:ruby}.  Une liste de drapeaux supplémentaires à passer à la commande @command{gem} peut être spécifiée avec le paramètre @code{#:gem-flags}."
 
 #. type: defvr
-#: doc/guix.texi:6126
+#: doc/guix.texi:7810
 #, no-wrap
 msgid "{Scheme Variable} waf-build-system"
 msgstr "{Variable Scheme} waf-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6132
+#: doc/guix.texi:7816
 msgid "This variable is exported by @code{(guix build-system waf)}.  It implements a build procedure around the @code{waf} script.  The common phases---@code{configure}, @code{build}, and @code{install}---are implemented by passing their names as arguments to the @code{waf} script."
 msgstr "Cette variable est exportée par @code{(guix build-system waf)}.  Elle implémente une procédure de construction autour du script @code{waf}.  Les phases usuelles — @code{configure}, @code{build} et @code{install} — sont implémentée en passant leur nom en argument au script @code{waf}."
 
 #. type: defvr
-#: doc/guix.texi:6136
+#: doc/guix.texi:7820
 msgid "The @code{waf} script is executed by the Python interpreter.  Which Python package is used to run the script can be specified with the @code{#:python} parameter."
 msgstr "Le script @code{waf} est exécuté par l'interpréteur Python.  Le paquet Python utilisé pour lancer le script peut être spécifié avec le paramètre @code{#:python}."
 
 #. type: defvr
-#: doc/guix.texi:6138
+#: doc/guix.texi:7822
 #, no-wrap
 msgid "{Scheme Variable} scons-build-system"
 msgstr "{Variable Scheme} scons-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6144
+#: doc/guix.texi:7828
 msgid "This variable is exported by @code{(guix build-system scons)}.  It implements the build procedure used by the SCons software construction tool.  This build system runs @code{scons} to build the package, @code{scons test} to run tests, and then @code{scons install} to install the package."
 msgstr "Cette variable est exportée par @code{(guix build-system scons)}.  Elle implémente la procédure de construction utilisée par l'outil de construction SCons.  Ce système de construction lance @code{scons} pour construire le paquet, @code{scons test} pour lancer les tests puis @code{scons install} pour installer le paquet."
 
 #. type: defvr
-#: doc/guix.texi:6149
-msgid "Additional flags to be passed to @code{scons} can be specified with the @code{#:scons-flags} parameter.  The version of Python used to run SCons can be specified by selecting the appropriate SCons package with the @code{#:scons} parameter."
-msgstr "On peut passer des drapeaux supplémentaires à @code{scons} en les spécifiant avec le paramètre @code{#:scons-flags}.  La version de python utilisée pour lancer SCons peut être spécifiée en sélectionnant le paquet SCons approprié avec le paramètre @code{#:scons}."
+#: doc/guix.texi:7835
+msgid "Additional flags to be passed to @code{scons} can be specified with the @code{#:scons-flags} parameter.  The default build and install targets can be overridden with @code{#:build-targets} and @code{#:install-targets} respectively.  The version of Python used to run SCons can be specified by selecting the appropriate SCons package with the @code{#:scons} parameter."
+msgstr "Des drapeaux supplémentaires à passer à @code{scons} peuvent être spécifiés avec le paramètre @code{#:scons-flags}.  Les cibles de construction et d'installation par défaut peuvent être remplacées respectivement par les paramètres @code{#:build-targets} et @code{#:install-targets}.  La version de Python utilisée pour exécuter SCons peut être spécifiée en sélectionnant le paquet SCons approprié avec le paramètre @code{#:scons}."
 
 #. type: defvr
-#: doc/guix.texi:6151
+#: doc/guix.texi:7837
 #, no-wrap
 msgid "{Scheme Variable} haskell-build-system"
 msgstr "{Variable Scheme} haskell-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6165
+#: doc/guix.texi:7851
 msgid "This variable is exported by @code{(guix build-system haskell)}.  It implements the Cabal build procedure used by Haskell packages, which involves running @code{runhaskell Setup.hs configure --prefix=/gnu/store/@dots{}} and @code{runhaskell Setup.hs build}.  Instead of installing the package by running @code{runhaskell Setup.hs install}, to avoid trying to register libraries in the read-only compiler store directory, the build system uses @code{runhaskell Setup.hs copy}, followed by @code{runhaskell Setup.hs register}.  In addition, the build system generates the package documentation by running @code{runhaskell Setup.hs haddock}, unless @code{#:haddock? #f} is passed.  Optional Haddock parameters can be passed with the help of the @code{#:haddock-flags} parameter.  If the file @code{Setup.hs} is not found, the build system looks for @code{Setup.lhs} instead."
 msgstr "Cette variable est exportée par @code{(guix build-system haskell)}.  Elle implémente la procédure de construction Cabal utilisée par les paquets Haskell, qui consiste à lancer @code{runhaskell Setup.hs configure --prefix=/gnu/store/@dots{}} et @code{runhaskell Setup.hs build}.  Plutôt que d'installer le paquets en lançant @code{runhaskell Setup.hs install}, pour éviter d'essayer d'enregistrer les bibliothèques dans le répertoire du dépôt en lecture-seule du compilateur, le système de construction utilise @code{runhaskell Setup.hs copy}, suivi de @code{runhaskell Setup.hs register}.  En plus, le système de construction génère la documentation du paquet en lançant @code{runhaskell Setup.hs haddock}, à moins que @code{#:haddock? #f} ne soit passé.  Des paramètres facultatifs pour Haddock peuvent être passés à l'aide du paramètre @code{#:haddock-flags}.  Si le fichier @code{Setup.hs} n'est pas trouvé, le système de construction cherchera @code{Setup.lhs} à la place."
 
 #. type: defvr
-#: doc/guix.texi:6168
+#: doc/guix.texi:7854
 msgid "Which Haskell compiler is used can be specified with the @code{#:haskell} parameter which defaults to @code{ghc}."
 msgstr "Le compilateur Haskell utilisé peut être spécifié avec le paramètre @code{#:haskell} qui a pour valeur par défaut @code{ghc}."
 
 #. type: defvr
-#: doc/guix.texi:6170
+#: doc/guix.texi:7856
 #, no-wrap
 msgid "{Scheme Variable} dub-build-system"
 msgstr "{Variable Scheme} dub-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6175
+#: doc/guix.texi:7861
 msgid "This variable is exported by @code{(guix build-system dub)}.  It implements the Dub build procedure used by D packages, which involves running @code{dub build} and @code{dub run}.  Installation is done by copying the files manually."
 msgstr "Cette variable est exportée par @code{(guix build-system dub)}.  Elle implémente la procédure de construction Dub utilisée par les paquets D qui consiste à lancer @code{dub build} et @code{dub run}.  L'installation est effectuée en copiant les fichiers manuellement."
 
 #. type: defvr
-#: doc/guix.texi:6178
+#: doc/guix.texi:7864
 msgid "Which D compiler is used can be specified with the @code{#:ldc} parameter which defaults to @code{ldc}."
 msgstr "Le compilateur D utilisé peut être spécifié avec le paramètre @code{#:ldc} qui vaut par défaut @code{ldc}."
 
 #. type: defvr
-#: doc/guix.texi:6180
+#: doc/guix.texi:7866
 #, no-wrap
 msgid "{Scheme Variable} emacs-build-system"
 msgstr "{Variable Scheme} emacs-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6184
+#: doc/guix.texi:7870
 msgid "This variable is exported by @code{(guix build-system emacs)}.  It implements an installation procedure similar to the packaging system of Emacs itself (@pxref{Packages,,, emacs, The GNU Emacs Manual})."
 msgstr "Cette variable est exportée par @code{(guix build-system emacs)}.  Elle implémente une procédure d'installation similaire au système de gestion de paquet d'Emacs lui-même (@pxref{Packages,,, emacs, The GNU Emacs Manual})."
 
 #. type: defvr
-#: doc/guix.texi:6191
-msgid "It first creates the @code{@var{package}-autoloads.el} file, then it byte compiles all Emacs Lisp files.  Differently from the Emacs packaging system, the Info documentation files are moved to the standard documentation directory and the @file{dir} file is deleted.  Each package is installed in its own directory under @file{share/emacs/site-lisp/guix.d}."
-msgstr "Elle crée d'abord le fichier @code{@var{package}-autoloads.el}, puis compile tous les fichiers Emacs Lisp en bytecode.  Contrairement au système de gestion de paquets d'Emacs, les fichiers de documentation info sont déplacés dans le répertoire standard et le fichier @file{dir} est supprimé.  Chaque paquet est installé dans son propre répertoire dans @file{share/emacs/site-lisp/guix.d}."
+#: doc/guix.texi:7876
+msgid "It first creates the @code{@code{package}-autoloads.el} file, then it byte compiles all Emacs Lisp files.  Differently from the Emacs packaging system, the Info documentation files are moved to the standard documentation directory and the @file{dir} file is deleted.  The Elisp package files are installed directly under @file{share/emacs/site-lisp}."
+msgstr "Celà crée d'abord le fichier @code{@code{package}-autoloads.el}, puis compile tous les fichiers Emacs Lisp en bytecode.  Contrairement au système de gestion de paquets d'Emacs, les fichiers de documentation info sont déplacés dans le répertoire standard et le fichier @file{dir} est supprimé.  Les fichiers du paquet Elisp sont directement installés sous @file{share/emacs/site-lisp}."
 
 #. type: defvr
-#: doc/guix.texi:6193
+#: doc/guix.texi:7878
 #, no-wrap
 msgid "{Scheme Variable} font-build-system"
 msgstr "{Variable Scheme} font-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6199
+#: doc/guix.texi:7884
 msgid "This variable is exported by @code{(guix build-system font)}.  It implements an installation procedure for font packages where upstream provides pre-compiled TrueType, OpenType, etc.@: font files that merely need to be copied into place.  It copies font files to standard locations in the output directory."
 msgstr "Cette variable est exportée par @code{(guix build-system font)}.  Elle implémente une procédure d'installation pour les paquets de polices où des fichiers de polices TrueType, OpenType, etc.@: sont fournis en amont et n'ont qu'à être copiés à leur emplacement final.  Elle copie les fichiers de polices à l'emplacement standard dans le répertoire de sortie."
 
 #. type: defvr
-#: doc/guix.texi:6201
+#: doc/guix.texi:7886
 #, no-wrap
 msgid "{Scheme Variable} meson-build-system"
 msgstr "{Variable Scheme} meson-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6205
+#: doc/guix.texi:7890
 msgid "This variable is exported by @code{(guix build-system meson)}.  It implements the build procedure for packages that use @url{https://mesonbuild.com, Meson} as their build system."
 msgstr "Cette variable est exportée par @code{(guix build-system meson)}.  Elle implémente la procédure de construction des paquets qui utilisent @url{https://mesonbuild.com, Meson} comme système de construction."
 
 #. type: defvr
-#: doc/guix.texi:6211
+#: doc/guix.texi:7896
 msgid "It adds both Meson and @uref{https://ninja-build.org/, Ninja} to the set of inputs, and they can be changed with the parameters @code{#:meson} and @code{#:ninja} if needed.  The default Meson is @code{meson-for-build}, which is special because it doesn't clear the @code{RUNPATH} of binaries and libraries when they are installed."
 msgstr "Elle ajoute à la fois Meson et @uref{https://ninja-build.org/, Ninja} à l'ensemble des entrées, et ils peuvent être modifiés avec les paramètres @code{#:meson} et @code{#:ninja} si requis.  Le Meson par défaut est @code{meson-for-build}, qui est spécial parce qu'il ne nettoie pas le @code{RUNPATH} des binaires et les bibliothèques qu'il installe."
 
 #. type: defvr
-#: doc/guix.texi:6214
-msgid "This build system is an extension of @var{gnu-build-system}, but with the following phases changed to some specific for Meson:"
-msgstr "Ce système de construction est une extension de @var{gnu-build-system}, mais avec les phases suivantes modifiées pour Meson :"
+#: doc/guix.texi:7899
+msgid "This build system is an extension of @code{gnu-build-system}, but with the following phases changed to some specific for Meson:"
+msgstr "Ce système de construction est une extension de @code{gnu-build-system}, mais avec les phases suivantes modifiées pour Meson :"
 
 #. type: table
-#: doc/guix.texi:6221
-msgid "The phase runs @code{meson} with the flags specified in @code{#:configure-flags}.  The flag @code{--build-type} is always set to @code{plain} unless something else is specified in @code{#:build-type}."
-msgstr "La phase lance @code{meson} avec les drapeaux spécifiés dans @code{#:configure-flags}.  Le drapeau @code{--build-type} est toujours initialisé à @code{plain} à moins que quelque chose d'autre ne soit spécifié dans @code{#:build-type}."
+#: doc/guix.texi:7907
+msgid "The phase runs @code{meson} with the flags specified in @code{#:configure-flags}.  The flag @option{--buildtype} is always set to @code{debugoptimized} unless something else is specified in @code{#:build-type}."
+msgstr "La phase lance @code{meson} avec les drapeaux spécifiés dans @code{#:configure-flags}.  Le drapeau @option{--buildtype} est toujours défini à @code{debugoptimized} à moins qu'autre chose ne soit spécifié dans @code{#:build-type}."
 
 #. type: table
-#: doc/guix.texi:6225
+#: doc/guix.texi:7911
 msgid "The phase runs @code{ninja} to build the package in parallel by default, but this can be changed with @code{#:parallel-build?}."
 msgstr "La phase lance @code{ninja} pour construire le paquet en parallèle par défaut, mais cela peut être changé avec @code{#:parallel-build?}."
 
 #. type: table
-#: doc/guix.texi:6229
+#: doc/guix.texi:7915
 msgid "The phase runs @code{ninja} with the target specified in @code{#:test-target}, which is @code{\"test\"} by default."
 msgstr "La phase lance @code{ninja} avec la cible spécifiée dans @code{#:test-target}, qui est @code{\"test\"} par défaut."
 
 #. type: table
-#: doc/guix.texi:6232
+#: doc/guix.texi:7918
 msgid "The phase runs @code{ninja install} and can not be changed."
 msgstr "La phase lance @code{ninja install} et ne peut pas être changée."
 
 #. type: defvr
-#: doc/guix.texi:6235
+#: doc/guix.texi:7921
 msgid "Apart from that, the build system also adds the following phases:"
 msgstr "En dehors de cela, le système de construction ajoute aussi la phase suivante :"
 
 #. type: item
-#: doc/guix.texi:6238
+#: doc/guix.texi:7924
 #, no-wrap
 msgid "fix-runpath"
 msgstr "fix-runpath"
 
 #. type: table
-#: doc/guix.texi:6245
+#: doc/guix.texi:7931
 msgid "This phase ensures that all binaries can find the libraries they need.  It searches for required libraries in subdirectories of the package being built, and adds those to @code{RUNPATH} where needed.  It also removes references to libraries left over from the build phase by @code{meson-for-build}, such as test dependencies, that aren't actually required for the program to run."
 msgstr "Cette phase s'assure que tous les binaire peuvent trouver les bibliothèques dont ils ont besoin.  Elle cherche les bibliothèques requises dans les sous-répertoires du paquet en construction et les ajoute au @code{RUNPATH} là où c'est nécessaire.  Elle supprime aussi les références aux bibliothèques laissées là par la phase de construction par @code{meson-for-build} comme les dépendances des tests, qui ne sont pas vraiment requises pour le programme."
 
 #. type: table
-#: doc/guix.texi:6249 doc/guix.texi:6253
+#: doc/guix.texi:7935 doc/guix.texi:7939
 msgid "This phase is the phase provided by @code{glib-or-gtk-build-system}, and it is not enabled by default.  It can be enabled with @code{#:glib-or-gtk?}."
 msgstr "Cette phase est la phase fournie par @code{glib-or-gtk-build-system} et n'est pas activée par défaut.  Elle peut l'être avec @code{#:glib-or-gtk?}."
 
 #. type: defvr
-#: doc/guix.texi:6256
+#: doc/guix.texi:7942
 #, no-wrap
 msgid "{Scheme Variable} linux-module-build-system"
 msgstr "{Variable Scheme} linux-module-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6258
-msgid "@var{linux-module-build-system} allows building Linux kernel modules."
-msgstr "@var{linux-module-build-system} permet de construire des modules du noyau Linux."
+#: doc/guix.texi:7944
+msgid "@code{linux-module-build-system} allows building Linux kernel modules."
+msgstr "@code{linux-module-build-system} permet de construire des modules du noyau Linux."
 
 #. type: defvr
-#: doc/guix.texi:6262
-msgid "This build system is an extension of @var{gnu-build-system}, but with the following phases changed:"
+#: doc/guix.texi:7948
+msgid "This build system is an extension of @code{gnu-build-system}, but with the following phases changed:"
 msgstr "Ce système de construction est une extension de @var{gnu-build-system}, mais avec les phases suivantes modifiées :"
 
 #. type: table
-#: doc/guix.texi:6268
+#: doc/guix.texi:7954
 msgid "This phase configures the environment so that the Linux kernel's Makefile can be used to build the external kernel module."
 msgstr "Cette phase configure l'environnement pour que le Makefile du noyau Linux puisse être utilisé pour construire le module du noyau externe."
 
 #. type: table
-#: doc/guix.texi:6272
+#: doc/guix.texi:7958
 msgid "This phase uses the Linux kernel's Makefile in order to build the external kernel module."
 msgstr "Cette phase utilise le Makefile du noyau Linux pour construire le module du noyau externe."
 
 #. type: table
-#: doc/guix.texi:6276
+#: doc/guix.texi:7962
 msgid "This phase uses the Linux kernel's Makefile in order to install the external kernel module."
 msgstr "Cette phase utilise le Makefile du noyau Linux pour installer le module du noyau externe."
 
 #. type: defvr
-#: doc/guix.texi:6281
-msgid "It is possible and useful to specify the Linux kernel to use for building the module (in the \"arguments\" form of a package using the linux-module-build-system, use the key #:linux to specify it)."
-msgstr "Il est possible et utile de spécifier le noyau Linux à utiliser pour construire le module (dans la forme « arguments » d'un paquet utilisant le linux-module-build-system, utilisez la clef #:linux pour le spécifier)."
+#: doc/guix.texi:7967
+msgid "It is possible and useful to specify the Linux kernel to use for building the module (in the @code{arguments} form of a package using the @code{linux-module-build-system}, use the key @code{#:linux} to specify it)."
+msgstr "Il est possible et utile de spécifier le noyau Linux à utiliser pour construire le module (sous la forme @code{arguments} d'un paquet utilisant le @code{linux-module-build-system}, utilisez la clé @code{#:linux} pour le spécifier)."
+
+#. type: defvr
+#: doc/guix.texi:7969
+#, no-wrap
+msgid "{Scheme Variable} node-build-system"
+msgstr "{Variable Scheme} node-build-system"
+
+#. type: defvr
+#: doc/guix.texi:7974
+msgid "This variable is exported by @code{(guix build-system node)}.  It implements the build procedure used by @uref{https://nodejs.org, Node.js}, which implements an approximation of the @code{npm install} command, followed by an @code{npm test} command."
+msgstr "Cette variable est exportée par @code{(guix build-system node)}.  Elle implémente la procédure de compilation utilisée par @uref{https://nodejs.org, Node.js}, qui implémente une approximation de la commande @code{npm install}, suivie d'une commande @code{npm test}."
+
+#. type: defvr
+#: doc/guix.texi:7978
+msgid "Which Node.js package is used to interpret the @code{npm} commands can be specified with the @code{#:node} parameter which defaults to @code{node}."
+msgstr "Le paquet Node.js utilisé pour interpréter les commandes @code{npm} peut être spécifié avec le paramètre @code{#:node} dont la valeur par défaut est @code{node}."
 
 #. type: Plain text
-#: doc/guix.texi:6287
+#: doc/guix.texi:7984
 msgid "Lastly, for packages that do not need anything as sophisticated, a ``trivial'' build system is provided.  It is trivial in the sense that it provides basically no support: it does not pull any implicit inputs, and does not have a notion of build phases."
 msgstr "Enfin, pour les paquets qui n'ont pas besoin de choses sophistiquées, un système de construction « trivial » est disponible.  Il est trivial dans le sens où il ne fournit en gros aucun support : il n'apporte pas de dépendance implicite, et n'a pas de notion de phase de construction."
 
 #. type: defvr
-#: doc/guix.texi:6288
+#: doc/guix.texi:7985
 #, no-wrap
 msgid "{Scheme Variable} trivial-build-system"
 msgstr "{Variable Scheme} trivial-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6290
+#: doc/guix.texi:7987
 msgid "This variable is exported by @code{(guix build-system trivial)}."
 msgstr "Cette variable est exportée par @code{(guix build-system trivial)}."
 
 #. type: defvr
-#: doc/guix.texi:6295
+#: doc/guix.texi:7992
 msgid "This build system requires a @code{#:builder} argument.  This argument must be a Scheme expression that builds the package output(s)---as with @code{build-expression->derivation} (@pxref{Derivations, @code{build-expression->derivation}})."
 msgstr "Ce système de construction requiert un argument @code{#:builder}.  Cet argument doit être une expression Scheme qui construit la sortie du paquet — comme avec @code{build-expression->derivation} (@pxref{Derivations, @code{build-expression->derivation}})."
 
 #. type: cindex
-#: doc/guix.texi:6301
+#: doc/guix.texi:7997
+#, no-wrap
+msgid "build phases, for packages"
+msgstr "phases de construction, pour les paquets"
+
+#. type: Plain text
+#: doc/guix.texi:8003
+msgid "Almost all package build systems implement a notion @dfn{build phases}: a sequence of actions that the build system executes, when you build the package, leading to the installed byproducts in the store.  A notable exception is the ``bare-bones'' @code{trivial-build-system} (@pxref{Build Systems})."
+msgstr "Presque tous les systèmes de construction de paquets mettent en œuvre une notion de @dfn{phase de construction} : une séquence d'actions que le système de construction exécute, lorsque vous construisez le paquet, conduisant aux sous-produits installés dans le dépôt.  Une exception notable est le @code{trivial-build-system} (@pxref{Build Systems}) minimaliste."
+
+#. type: Plain text
+#: doc/guix.texi:8017
+msgid "As discussed in the previous section, those build systems provide a standard list of phases.  For @code{gnu-build-system}, the standard phases include an @code{unpack} phase to unpack the source code tarball, a @command{configure} phase to run @code{./configure}, a @code{build} phase to run @command{make}, and (among others) an @code{install} phase to run @command{make install}; @pxref{Build Systems}, for a more detailed view of these phases.  Likewise, @code{cmake-build-system} inherits these phases, but its @code{configure} phase runs @command{cmake} instead of @command{./configure}.  Other build systems, such as @code{python-build-system}, have a wholly different list of standard phases.  All this code runs on the @dfn{build side}: it is evaluated when you actually build the package, in a dedicated build process spawned by the build daemon (@pxref{Invoking guix-daemon})."
+msgstr "Comme nous l'avons vu dans la section précédente, ces systèmes de construction fournissent une liste standard de phases.  Pour @code{gnu-build-system}, les phases standard comprennent une phase @code{unpack} pour décompresser l'archive du code source, une phase @command{configure} pour exécuter @code{./configure}, une phase @code{build} pour exécuter @command{make}, et (entre autres) une phase @code{install} pour exécuter @command{make install} ; @pxref{Build Systems}, pour une vue plus détaillée de ces phases.  De même, @code{cmake-build-system} hérite de ces phases, mais sa phase @code{configure} exécute @command{cmake} au lieu de @command{./configure}.  D'autres systèmes de compilation, tels que @code{python-build-system}, ont une liste de phases standard totalement différente.  Tout ce code s'exécute @dfn{côté construction} : il est évalué lorsque vous construisez réellement le paquet, dans un processus de construction dédié engendré par le démon de construction (@pxref{Invoquer guix-daemon})."
+
+#. type: Plain text
+#: doc/guix.texi:8024
+msgid "Build phases are represented as association lists or ``alists'' (@pxref{Association Lists,,, guile, GNU Guile Reference Manual}) where each key is a symbol for the name of the phase and the associated value is a procedure that accepts an arbitrary number of arguments.  By convention, those procedures receive information about the build in the form of @dfn{keyword parameters}, which they can use or ignore."
+msgstr "Les phases de construction sont représentées sous forme de listes d'associations ou « alists » (@pxref{Association Lists,Listes d'association,, guile, Manuel de référence de GNU Guile}) où chaque clé est un symbole pour le nom de la phase et la valeur associée est une procédure qui accepte un nombre arbitraire d'arguments.  Par convention, ces procédures reçoivent des informations sur la construction sous la forme de @dfn{paramètres nommés}, qu'elles peuvent utiliser ou ignorer."
+
+#. type: Plain text
+#: doc/guix.texi:8030
+msgid "For example, here is how @code{(guix build gnu-build-system)} defines @code{%standard-phases}, the variable holding its alist of build phases@footnote{We present a simplified view of those build phases, but do take a look at @code{(guix build gnu-build-system)} to see all the details!}:"
+msgstr "Par exemple, voici comment @code{(guix build gnu-build-system)} définit @code{%standard-phases}, la variable contenant sa liste de phases de construction@footnote{Nous présentons une vue simplifiée de ces phases de construction, mais jetez un oeil à @code{(guix build gnu-build-system)} pour voir tous les détails !} :"
+
+#. type: lisp
+#: doc/guix.texi:8033
+#, no-wrap
+msgid ""
+";; The build phases of 'gnu-build-system'.\n"
+"\n"
+msgstr ""
+";; Les phases de construction de \"gnu-build-system\".\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:8037
+#, no-wrap
+msgid ""
+"(define* (unpack #:key source #:allow-other-keys)\n"
+"  ;; Extract the source tarball.\n"
+"  (invoke \"tar\" \"xvf\" source))\n"
+"\n"
+msgstr ""
+"(define* (unpack #:key source #:allow-other-keys)\n"
+"  ;; Extrait l'archive des sources.\n"
+"  (invoke \"tar\" \"xvf\" source))\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:8043
+#, no-wrap
+msgid ""
+"(define* (configure #:key outputs #:allow-other-keys)\n"
+"  ;; Run the 'configure' script.  Install to output \"out\".\n"
+"  (let ((out (assoc-ref outputs \"out\")))\n"
+"    (invoke \"./configure\"\n"
+"            (string-append \"--prefix=\" out))))\n"
+"\n"
+msgstr ""
+"(define* (configure #:key outputs #:allow-other-keys)\n"
+"  ;; Exécute le script « configure ». Installe la sortie « out ».\n"
+"  (let ((out (assoc-ref outputs \"out\")))\n"
+"    (invoke \"./configure\"\n"
+"            (string-append \"--prefix=\" out))))\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:8047
+#, no-wrap
+msgid ""
+"(define* (build #:allow-other-keys)\n"
+"  ;; Compile.\n"
+"  (invoke \"make\"))\n"
+"\n"
+msgstr ""
+"(define* (build #:allow-other-keys)\n"
+"  ;; Compile.\n"
+"  (invoke \"make\"))\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:8054
+#, no-wrap
+msgid ""
+"(define* (check #:key (test-target \"check\") (tests? #true)\n"
+"                #:allow-other-keys)\n"
+"  ;; Run the test suite.\n"
+"  (if tests?\n"
+"      (invoke \"make\" test-target)\n"
+"      (display \"test suite not run\\n\")))\n"
+"\n"
+msgstr ""
+"(define* (check #:key (test-target \"check\") (tests? #true)\n"
+"                #:allow-other-keys)\n"
+"  ;; Lance la suite de tests.\n"
+"  (if tests?\n"
+"      (invoke \"make\" test-target)\n"
+"      (display \"test suite not run\\n\")))\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:8058
+#, no-wrap
+msgid ""
+"(define* (install #:allow-other-keys)\n"
+"  ;; Install files to the prefix 'configure' specified.\n"
+"  (invoke \"make\" \"install\"))\n"
+"\n"
+msgstr ""
+"(define* (install #:allow-other-keys)\n"
+"  ;; Installe les fichiers sous le préfixe spécifié à « configure ».\n"
+"  (invoke \"make\" \"install\"))\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:8067
+#, no-wrap
+msgid ""
+"(define %standard-phases\n"
+"  ;; The list of standard phases (quite a few are omitted\n"
+"  ;; for brevity).  Each element is a symbol/procedure pair.\n"
+"  (list (cons 'unpack unpack)\n"
+"        (cons 'configure configure)\n"
+"        (cons 'build build)\n"
+"        (cons 'check check)\n"
+"        (cons 'install install)))\n"
+msgstr ""
+"(define %standard-phases\n"
+"  ;; La liste des phases standard (un certain nombre d'entre elles sont omises\n"
+"  ;; par souci de concision).  Chaque élément est une paire symbole/procédure.\n"
+"  (list (cons 'unpack unpack)\n"
+"        (cons 'configure configure)\n"
+"        (cons 'build build)\n"
+"        (cons 'check check)\n"
+"        (cons 'install install)))\n"
+
+#. type: Plain text
+#: doc/guix.texi:8077
+msgid "This shows how @code{%standard-phases} is defined as a list of symbol/procedure pairs (@pxref{Pairs,,, guile, GNU Guile Reference Manual}).  The first pair associates the @code{unpack} procedure with the @code{unpack} symbol---a name; the second pair defines the @code{configure} phase similarly, and so on.  When building a package that uses @code{gnu-build-system} with its default list of phases, those phases are executed sequentially.  You can see the name of each phase started and completed in the build log of packages that you build."
+msgstr "Cela montre comment @code{%standard-phases} est défini comme une liste de paires symbole/procédure (@pxref{Pairs, , , guile, GNU Guile Reference Manual}).  La première paire associe le symbole @code{unpack} --- un nom --- à la procédure @code{unpack} ; la deuxième paire définit la phase @code{configure} de manière similaire, et ainsi de suite.  Lors de la construction d'un paquet qui utilise @code{gnu-build-system} avec sa liste de phases par défaut, ces phases sont exécutées de manière séquentielle.  Vous pouvez voir le nom de chaque phase commencée et terminée dans le journal de construction des paquets que vous construisez."
+
+#. type: Plain text
+#: doc/guix.texi:8083
+msgid "Let's now look at the procedures themselves.  Each one is defined with @code{define*}: @code{#:key} lists keyword parameters the procedure accepts, possibly with a default value, and @code{#:allow-other-keys} specifies that other keyword parameters are ignored (@pxref{Optional Arguments,,, guile, GNU Guile Reference Manual})."
+msgstr "Examinons maintenant les procédures elles-mêmes.  Chacune est définie par @code{define*} : @code{#:key} énumère les paramètres nommés que la procédure accepte, éventuellement avec une valeur par défaut, et @code{#:allow-other-keys} précise que les autres paramètres nommés sont ignorés (@pxref{Optional Arguments,,, guile, GNU Guile Reference Manual})."
+
+#. type: Plain text
+#: doc/guix.texi:8099
+msgid "The @code{unpack} procedure honors the @code{source} parameter, which the build system uses to pass the file name of the source tarball (or version control checkout), and it ignores other parameters.  The @code{configure} phase only cares about the @code{outputs} parameter, an alist mapping package output names to their store file name (@pxref{Packages with Multiple Outputs}).  It extracts the file name of for @code{out}, the default output, and passes it to @command{./configure} as the installation prefix, meaning that @command{make install} will eventually copy all the files in that directory (@pxref{Configuration, configuration and makefile conventions,, standards, GNU Coding Standards}).  @code{build} and @code{install} ignore all their arguments.  @code{check} honors the @code{test-target} argument, which specifies the name of the Makefile target to run tests; it prints a message and skips tests when @code{tests?} is false."
+msgstr "La procédure @code{unpack} respecte le paramètre @code{source}, que le système de compilation utilise pour passer le nom de fichier de l'archive source (ou le répertoire cloné d'un système de contrôle de version), et elle ignore les autres paramètres.  La phase @code{configure} ne s'intéresse qu'au paramètre @code{outputs}, une liste d'association des noms des sorties du paquet avec le nom de leur fichier du dépôt (@pxref{Packages with Multiple Outputs}).  Elle extrait le nom de fichier de @code{out}, la sortie par défaut, et le transmet à @command{./configure} comme préfixe d'installation, ce qui signifie que @command{make install} copiera tous les fichiers vers ce répertoire (@pxref{Configuration, configuration and makefile conventions,, standards, GNU Coding Standards}).  @code{build} et @code{install} ignorent tous leurs arguments.  @code{check} prend en considération l'argument @code{test-target}, qui spécifie le nom de la cible du Makefile pour exécuter les tests ; il imprime un message et saute les tests lorsque @code{tests?} est faux."
+
+#. type: cindex
+#: doc/guix.texi:8100
+#, no-wrap
+msgid "build phases, customizing"
+msgstr "phases de construction, personnalisation"
+
+#. type: Plain text
+#: doc/guix.texi:8109
+msgid "The list of phases used for a particular package can be changed with the @code{#:phases} parameter of the build system.  Changing the set of build phases boils down to building a new alist of phases based on the @code{%standard-phases} alist described above.  This can be done with standard alist procedures such as @code{alist-delete} (@pxref{SRFI-1 Association Lists,,, guile, GNU Guile Reference Manual}); however, it is more convenient to do so with @code{modify-phases} (@pxref{Build Utilities, @code{modify-phases}})."
+msgstr "La liste des phases utilisées pour un paquet particulier peut être modifiée avec le paramètre @code{#:phases} du système de construction.  La modification de l'ensemble des phases de construction se résume à la création d'une nouvelle liste de phases basée sur la liste @code{%standard-phases} décrite ci-dessus.  On peut faire cela à l'aide des procédures standards qui manipulent des listes d'associations telles que @code{alist-delete} (@pxref{SRFI-1 Association Lists,,, guile, GNU Guile Reference Manual}) ; cependant, il est plus pratique de le faire avec @code{modify-phases} (@pxref{Build Utilities, @code{modify-phases}})."
+
+#. type: Plain text
+#: doc/guix.texi:8114
+msgid "Here is an example of a package definition that removes the @code{configure} phase of @code{%standard-phases} and inserts a new phase before the @code{build} phase, called @code{set-prefix-in-makefile}:"
+msgstr "Voici un exemple de définition de paquet qui supprime la phase @code{configure} de @code{%standard-phases} et insère une nouvelle phase avant la phase @code{build}, appelée @code{set-prefix-in-makefile} :"
+
+#. type: lisp
+#: doc/guix.texi:8134
+#, no-wrap
+msgid ""
+"(define-public example\n"
+"  (package\n"
+"    (name \"example\")\n"
+"    ;; other fields omitted\n"
+"    (build-system gnu-build-system)\n"
+"    (arguments\n"
+"     '(#:phases (modify-phases %standard-phases\n"
+"                  (delete 'configure)\n"
+"                  (add-before 'build 'set-prefix-in-makefile\n"
+"                    (lambda* (#:key outputs #:allow-other-keys)\n"
+"                      ;; Modify the makefile so that its\n"
+"                      ;; 'PREFIX' variable points to \"out\".\n"
+"                      (let ((out (assoc-ref outputs \"out\")))\n"
+"                        (substitute* \"Makefile\"\n"
+"                          ((\"PREFIX =.*\")\n"
+"                           (string-append \"PREFIX = \"\n"
+"                                          out \"\\n\")))\n"
+"                        #true))))))))\n"
+msgstr ""
+"(define-public example\n"
+"  (package\n"
+"    (name \"example\")\n"
+"    ;; les autres champs sont omis\n"
+"    (build-system gnu-build-system)\n"
+"    (arguments\n"
+"     '(#:phases (modify-phases %standard-phases\n"
+"                  (delete 'configure)\n"
+"                  (add-before 'build 'set-prefix-in-makefile\n"
+"                    (lambda* (#:key outputs #:allow-other-keys)\n"
+"                      ;; Modifie le Makefile pour que sa variable\n"
+"                      ;; 'PREFIX' pointe vers « out ».\n"
+"                      (let ((out (assoc-ref outputs \"out\")))\n"
+"                        (substitute* \"Makefile\"\n"
+"                          ((\"PREFIX =.*\")\n"
+"                           (string-append \"PREFIX = \"\n"
+"                                          out \"\\n\")))\n"
+"                        #true))))))))\n"
+
+#. type: Plain text
+#: doc/guix.texi:8140
+msgid "The new phase that is inserted is written as an anonymous procedure, introduced with @code{lambda*}; it honors the @code{outputs} parameter we have seen before.  @xref{Build Utilities}, for more about the helpers used by this phase, and for more examples of @code{modify-phases}."
+msgstr "La nouvelle phase insérée est écrite comme une procédure anonyme, introduite avec @code{lambda*} ; elle honore le paramètre @code{outputs} que nous avons vu auparavant.  @xref{Build Utilities}, pour en savoir plus sur les procédures auxiliaires utilisées par cette phase, et pour d'autres exemples de @code{modify-phases}."
+
+#. type: cindex
+#: doc/guix.texi:8141 doc/guix.texi:9114
+#, no-wrap
+msgid "code staging"
+msgstr "code échelonné"
+
+#. type: cindex
+#: doc/guix.texi:8142 doc/guix.texi:9115
+#, no-wrap
+msgid "staging, of code"
+msgstr "échelonnage, du code"
+
+#. type: Plain text
+#: doc/guix.texi:8149
+msgid "Keep in mind that build phases are code evaluated at the time the package is actually built.  This explains why the whole @code{modify-phases} expression above is quoted (it comes after the @code{'} or apostrophe): it is @dfn{staged} for later execution.  @xref{G-Expressions}, for an explanation of code staging and the @dfn{code strata} involved."
+msgstr "Gardez à l'esprit que le code des phases de construction est évalué à la construction effective des paquets.  Cela explique pourquoi toute l'expression @code{modify-phases} ci-dessus est citée (elle vient après @code{'} ou apostrophe) : elle est @dfn{mise de côté} pour une exécution ultérieure.  @xref{G-Expressions}, pour une explication de la mise en place du code et des @dfn{strates de code} concernées."
+
+#. type: Plain text
+#: doc/guix.texi:8159
+msgid "As soon as you start writing non-trivial package definitions (@pxref{Defining Packages}) or other build actions (@pxref{G-Expressions}), you will likely start looking for helpers for ``shell-like'' actions---creating directories, copying and deleting files recursively, manipulating build phases, and so on.  The @code{(guix build utils)} module provides such utility procedures."
+msgstr "Dès que vous commencerez à écrire des définitions de paquets non triviales (@pxref{Defining Packages}) ou d'autres actions de compilation (@pxref{G-Expressions}), vous commencerez probablement à chercher des fonctions auxiliaires pour les actions « de type shell » --- créer des répertoires, copier et supprimer des fichiers de manière récursive, manipuler les phases de compilation, etc.  Le module @code{(guix build utils)} fournit de telles procédures utilitaires."
+
+#. type: Plain text
+#: doc/guix.texi:8163
+msgid "Most build systems load @code{(guix build utils)} (@pxref{Build Systems}).  Thus, when writing custom build phases for your package definitions, you can usually assume those procedures are in scope."
+msgstr "La plupart des systèmes de construction chargent @code{(guix build utils)} (@pxref{Build Systems}).  Ainsi, lorsque vous écrivez des phases de construction personnalisées pour vos définitions de paquets, vous pouvez généralement supposer que ces procédures sont disponibles."
+
+#. type: Plain text
+#: doc/guix.texi:8168
+msgid "When writing G-expressions, you can import @code{(guix build utils)} on the ``build side'' using @code{with-imported-modules} and then put it in scope with the @code{use-modules} form (@pxref{Using Guile Modules,,, guile, GNU Guile Reference Manual}):"
+msgstr "Lorsque vous écrivez des G-expressions, vous pouvez importer @code{(guix build utils)} « côté construction » en utilisant @code{with-imported-modules} et ensuite le rendre disponible avec la forme @code{use-modules} (@pxref{Using Guile Modules,,, guile, GNU Guile Reference Manual}) :"
+
+#. type: lisp
+#: doc/guix.texi:8175
+#, no-wrap
+msgid ""
+"(with-imported-modules '((guix build utils))  ;import it\n"
+"  (computed-file \"empty-tree\"\n"
+"                 #~(begin\n"
+"                     ;; Put it in scope.\n"
+"                     (use-modules (guix build utils))\n"
+"\n"
+msgstr ""
+"(with-imported-modules '((guix build utils))  ;on l'importe\n"
+"  (computed-file \"empty-tree\"\n"
+"                 #~(begin\n"
+"                     ;; On le rend disponible.\n"
+"                     (use-modules (guix build utils))\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:8178
+#, no-wrap
+msgid ""
+"                     ;; Happily use its 'mkdir-p' procedure.\n"
+"                     (mkdir-p (string-append #$output \"/a/b/c\")))))\n"
+msgstr ""
+"                     ;; On utilise sa procédure « mkdir-p » sans souci.\n"
+"                     (mkdir-p (string-append #$output \"/a/b/c\")))))\n"
+
+#. type: Plain text
+#: doc/guix.texi:8182
+msgid "The remainder of this section is the reference for most of the utility procedures provided by @code{(guix build utils)}."
+msgstr "Le reste de cette section est la référence pour la plupart des procédures auxiliaires fournies par @code{(guix build utils)}."
+
+#. type: subsection
+#: doc/guix.texi:8185
+#, no-wrap
+msgid "Dealing with Store File Names"
+msgstr "Traitement des noms de fichiers du dépôt"
+
+#. type: Plain text
+#: doc/guix.texi:8188
+msgid "This section documents procedures that deal with store file names."
+msgstr "Cette section documente les procédures de traitement des noms de fichier du dépôt."
+
+#. type: deffn
+#: doc/guix.texi:8189
+#, no-wrap
+msgid "{Scheme Procedure} %store-directory"
+msgstr "{Procédure Scheme}  %store-directory"
+
+#. type: deffn
+#: doc/guix.texi:8191
+msgid "Return the directory name of the store."
+msgstr "Renvoie le nom de répertoire du dépôt."
+
+#. type: deffn
+#: doc/guix.texi:8193
+#, no-wrap
+msgid "{Scheme Procedure} store-file-name? @var{file}"
+msgstr "{Procédure Scheme} store-file-name? @var{fichier}"
+
+#. type: deffn
+#: doc/guix.texi:8195
+msgid "Return true if @var{file} is in the store."
+msgstr "Renvoie vrai si @var{fichier} est dans le dépôt."
+
+#. type: deffn
+#: doc/guix.texi:8197
+#, no-wrap
+msgid "{Scheme Procedure} strip-store-file-name @var{file}"
+msgstr "{Procédure Scheme} strip-store-file-name @var{fichier}"
+
+#. type: deffn
+#: doc/guix.texi:8200
+msgid "Strip the @file{/gnu/store} and hash from @var{file}, a store file name.  The result is typically a @code{\"@var{package}-@var{version}\"} string."
+msgstr "Enlevez le @file{/gnu/store} et le hash de @var{fichier}, un nom de fichier du dépôt.  Le résultat est généralement une chaîne @code{\"@var{paquet}-@var{version}\"}."
+
+#. type: deffn
+#: doc/guix.texi:8202
+#, no-wrap
+msgid "{Scheme Procedure} package-name->name+version @var{name}"
+msgstr "{Procédure Scheme} package-name->name+version @var{nom}"
+
+#. type: deffn
+#: doc/guix.texi:8207
+msgid "Given @var{name}, a package name like @code{\"foo-0.9.1b\"}, return two values: @code{\"foo\"} and @code{\"0.9.1b\"}.  When the version part is unavailable, @var{name} and @code{#f} are returned.  The first hyphen followed by a digit is considered to introduce the version part."
+msgstr "Si l'on passe @var{nom}, un nom de paquet comme @code{\"foo-0.9.1b\"}, on obtient deux valeurs : @code{\"foo\"} et @code{\"0.9.1b\"}.  Lorsque la partie version est indisponible, @var{nom} et @code{#f} sont renvoyés.  Le premier trait d'union suivi d'un chiffre est considéré comme introduisant la partie version."
+
+#. type: subsection
+#: doc/guix.texi:8209
+#, no-wrap
+msgid "File Types"
+msgstr "Types de fichier"
+
+#. type: Plain text
+#: doc/guix.texi:8212
+msgid "The procedures below deal with files and file types."
+msgstr "Les procédures ci-dessous portent sur les fichiers et les types de fichiers."
+
+#. type: deffn
+#: doc/guix.texi:8213
+#, no-wrap
+msgid "{Scheme Procedure} directory-exists? @var{dir}"
+msgstr "{Procédure Scheme} directory-exists? @var{dir}"
+
+#. type: deffn
+#: doc/guix.texi:8215
+msgid "Return @code{#t} if @var{dir} exists and is a directory."
+msgstr "Renvoie @code{#t} si @var{dir} existe et est un répertoire."
+
+#. type: deffn
+#: doc/guix.texi:8217
+#, no-wrap
+msgid "{Scheme Procedure} executable-file? @var{file}"
+msgstr "{Procédure Scheme} executable-file? @var{fichier}"
+
+#. type: deffn
+#: doc/guix.texi:8219
+msgid "Return @code{#t} if @var{file} exists and is executable."
+msgstr "Renvoie @code{#t} si @var{fichier} existe et est exécutable."
+
+#. type: deffn
+#: doc/guix.texi:8221
+#, no-wrap
+msgid "{Scheme Procedure} symbolic-link? @var{file}"
+msgstr "{Procédure Scheme} symbolic-link? @var{fichier}"
+
+#. type: deffn
+#: doc/guix.texi:8223
+msgid "Return @code{#t} if @var{file} is a symbolic link (aka. a ``symlink'')."
+msgstr "Renvoie @code{#t} si @var{fichier} est un lien symbolique (un « symlink »)."
+
+#. type: deffn
+#: doc/guix.texi:8225
+#, no-wrap
+msgid "{Scheme Procedure} elf-file? @var{file}"
+msgstr "{Procédure Scheme} elf-file? @var{fichier}"
+
+#. type: deffnx
+#: doc/guix.texi:8226
+#, no-wrap
+msgid "{Scheme Procedure} ar-file? @var{file}"
+msgstr "{Procédure Scheme} ar-file? @var{fichier}"
+
+#. type: deffnx
+#: doc/guix.texi:8227
+#, no-wrap
+msgid "{Scheme Procedure} gzip-file? @var{file}"
+msgstr "{Procédure Scheme} gzip-file? @var{fichier}"
+
+#. type: deffn
+#: doc/guix.texi:8230
+msgid "Return @code{#t} if @var{file} is, respectively, an ELF file, an @code{ar} archive (such as a @file{.a} static library), or a gzip file."
+msgstr "Renvoie @code{#t} si @var{fichier} est, respectivement, un fichier ELF, une archive @code{ar} (telle qu'une bibliothèque statique @file{.a}), ou un fichier gzip."
+
+#. type: deffn
+#: doc/guix.texi:8232
+#, no-wrap
+msgid "{Scheme Procedure} reset-gzip-timestamp @var{file} [#:keep-mtime? #t]"
+msgstr "{Procédure Scheme} reset-gzip-timestamp @var{fichier} [#:keep-mtime? #t]"
+
+#. type: deffn
+#: doc/guix.texi:8236
+msgid "If @var{file} is a gzip file, reset its embedded timestamp (as with @command{gzip --no-name}) and return true.  Otherwise return @code{#f}.  When @var{keep-mtime?} is true, preserve @var{file}'s modification time."
+msgstr "Si @var{fichier} est un fichier gzip, réinitialise son horodatage intégré (comme avec @command{gzip --no-name}) et renvoie vrai.  Sinon, renvoie @code{#f}.  Lorsque @var{keep-mtime?} est vrai, conserve la date de modification de @var{fichier}."
+
+#. type: subsection
+#: doc/guix.texi:8238
+#, no-wrap
+msgid "File Manipulation"
+msgstr "Manipulation de fichiers"
+
+#. type: Plain text
+#: doc/guix.texi:8245
+msgid "The following procedures and macros help create, modify, and delete files.  They provide functionality comparable to common shell utilities such as @command{mkdir -p}, @command{cp -r}, @command{rm -r}, and @command{sed}.  They complement Guile's extensive, but low-level, file system interface (@pxref{POSIX,,, guile, GNU Guile Reference Manual})."
+msgstr "Les procédures et macros suivantes permettent de créer, modifier et supprimer des fichiers.  Elles offrent des fonctionnalités comparables à celles des utilitaires shell courants tels que @command{mkdir -p}, @command{cp -r}, @command{rm -r} et @command{sed}.  Elles complètent l'interface de système de fichiers étendue, mais de bas niveau, de Guile (@pxref{POSIX, , , guile, GNU Guile Reference Manual})."
+
+#. type: deffn
+#: doc/guix.texi:8246
+#, no-wrap
+msgid "{Scheme Syntax} with-directory-excursion @var{directory} @var{body}@dots{}"
+msgstr "{Syntaxe Scheme} with-directory-excursion @var{répertoire} @var{corps}@dots{}"
+
+#. type: deffn
+#: doc/guix.texi:8248
+msgid "Run @var{body} with @var{directory} as the process's current directory."
+msgstr "Exécute @var{corps} avec @var{répertoire} comme répertoire actuel du processus."
+
+#. type: deffn
+#: doc/guix.texi:8255
+msgid "Essentially, this macro changes the current directory to @var{directory} before evaluating @var{body}, using @code{chdir} (@pxref{Processes,,, guile, GNU Guile Reference Manual}).  It changes back to the initial directory when the dynamic extent of @var{body} is left, be it @i{via} normal procedure return or @i{via} a non-local exit such as an exception."
+msgstr "En gros, cette macro change le répertoire actuel en @var{répertoire} avant d'évaluer @var{corps}, en utilisant @code{chdir}. (@pxref{Processus,,, guile, Manuel de référence de GNU Guile}).  Elle revient au répertoire initial à la sortie de la portée dynamique de @var{corps}, qu'il s'agisse d'un retour de procédure normal ou d'une sortie non locale telle qu'une exception."
+
+#. type: deffn
+#: doc/guix.texi:8257
+#, no-wrap
+msgid "{Scheme Procedure} mkdir-p @var{dir}"
+msgstr "{Procédure Scheme} mkdir-p @var{dir}"
+
+#. type: deffn
+#: doc/guix.texi:8259
+msgid "Create directory @var{dir} and all its ancestors."
+msgstr "Crée le répertoire @var{dir} et tous ses ancètres."
+
+#. type: deffn
+#: doc/guix.texi:8261
+#, no-wrap
+msgid "{Scheme Procedure} install-file @var{file} @var{directory}"
+msgstr "{Procédure Scheme} install-file @var{fichier} @var{répertoire}"
+
+#. type: deffn
+#: doc/guix.texi:8264
+msgid "Create @var{directory} if it does not exist and copy @var{file} in there under the same name."
+msgstr "Crée @var{répertoire} s'il n'existe pas et y copie @var{fichier} sous le même nom."
+
+#. type: deffn
+#: doc/guix.texi:8266
+#, no-wrap
+msgid "{Scheme Procedure} make-file-writable @var{file}"
+msgstr "{Procédure Scheme} make-file-writable @var{fichier}"
+
+#. type: deffn
+#: doc/guix.texi:8268
+msgid "Make @var{file} writable for its owner."
+msgstr "Rend @var{fichier} inscriptible pour son propriétaire."
+
+#. type: deffn
+#: doc/guix.texi:8270
+#, no-wrap
+msgid "{Scheme Procedure} copy-recursively @var{source} @var{destination} @"
+msgstr "{Procédure Scheme} copy-recursively @var{source} @var{destination} @"
+
+#. type: deffn
+#: doc/guix.texi:8277
+msgid "[#:log (current-output-port)] [#:follow-symlinks? #f] [#:keep-mtime? #f] Copy @var{source} directory to @var{destination}.  Follow symlinks if @var{follow-symlinks?} is true; otherwise, just preserve them.  When @var{keep-mtime?} is true, keep the modification time of the files in @var{source} on those of @var{destination}.  Write verbose output to the @var{log} port."
+msgstr ""
+"[#:log (current-output-port)] [#:follow-symlinks? #f] [#:keep-mtime? #f] \n"
+"Copie le répertoire @var{source} dans @var{destination}.  Suivez les liens symboliques si @var{follow-symlinks?} est vrai ; sinon, conservez-les.  Lorsque @var{keep-mtime?} est vrai, conservez les heures de modification des fichiers dans @var{source} sur celles de @var{destination}.  Écrivez une sortie verbeuse sur le port @var{log}."
+
+#. type: deffn
+#: doc/guix.texi:8279
+#, no-wrap
+msgid "{Scheme Procedure} delete-file-recursively @var{dir} @"
+msgstr "{Procédure Scheme} delete-file-recursively @var{dir} @"
+
+#. type: deffn
+#: doc/guix.texi:8284
+msgid "[#:follow-mounts? #f] Delete @var{dir} recursively, like @command{rm -rf}, without following symlinks.  Don't follow mount points either, unless @var{follow-mounts?} is true.  Report but ignore errors."
+msgstr ""
+"[#:follow-mounts? #f] \n"
+"Efface récursivement @var{dir}, comme @command{rm -rf}, sans les liens symboliques suivants. Ne suit pas non plus les points de montage, à moins que @var{follow-mounts?} ne soit vrai. Rapporte mais ignore les erreurs."
+
+#. type: deffn
+#: doc/guix.texi:8286
+#, no-wrap
+msgid "{Scheme Syntax} substitute* @var{file} @"
+msgstr "{Syntaxe Scheme} substitute* @var{fichier} @"
+
+#. type: deffn
+#: doc/guix.texi:8291
+msgid "((@var{regexp} @var{match-var}@dots{}) @var{body}@dots{}) @dots{} Substitute @var{regexp} in @var{file} by the string returned by @var{body}.  @var{body} is evaluated with each @var{match-var} bound to the corresponding positional regexp sub-expression.  For example:"
+msgstr ""
+"((@var{regexp} @var{match-var}@dots{}) @var{body}@dots{}) @dots{} \n"
+"Remplace @var{regexp} dans @var{fichier} par la chaîne renvoyée par @var{body}.  @var{body} est évalué avec chaque @var{match-var} lié à la sous-expression de regexp positionnelle correspondante.  Par exemple :"
+
+#. type: lisp
+#: doc/guix.texi:8298
+#, no-wrap
+msgid ""
+"(substitute* file\n"
+"  ((\"hello\")\n"
+"   \"good morning\\n\")\n"
+"  ((\"foo([a-z]+)bar(.*)$\" all letters end)\n"
+"   (string-append \"baz\" letter end)))\n"
+msgstr ""
+"(substitute* file\n"
+"  ((\"hello\")\n"
+"   \"good morning\\n\")\n"
+"  ((\"foo([a-z]+)bar(.*)$\" all letters end)\n"
+"   (string-append \"baz\" letter end)))\n"
+
+#. type: deffn
+#: doc/guix.texi:8304
+msgid "Here, anytime a line of @var{file} contains @code{hello}, it is replaced by @code{good morning}.  Anytime a line of @var{file} matches the second regexp, @code{all} is bound to the complete match, @code{letters} is bound to the first sub-expression, and @code{end} is bound to the last one."
+msgstr "Ici, chaque fois qu'une ligne de @var{fichier} contient @code{hello}, elle est remplacée par @code{good morning}.  Chaque fois qu'une ligne de @var{fichier} correspond à la deuxième regexp, @code{all} est lié à la correspondance complète, @code{letters} est lié à la première sous-expression, et @code{end} est lié à la dernière."
+
+#. type: deffn
+#: doc/guix.texi:8307
+msgid "When one of the @var{match-var} is @code{_}, no variable is bound to the corresponding match substring."
+msgstr "Lorsque l'une des @var{match-var} est @code{_}, aucune variable n'est liée à la sous-chaîne de correspondance associée."
+
+#. type: deffn
+#: doc/guix.texi:8310
+msgid "Alternatively, @var{file} may be a list of file names, in which case they are all subject to the substitutions."
+msgstr "Autrement, @var{fichier} peut être une liste de noms de fichier, auquel cas ils sont tous sujets aux substitutions."
+
+#. type: deffn
+#: doc/guix.texi:8313
+msgid "Be careful about using @code{$} to match the end of a line; by itself it won't match the terminating newline of a line."
+msgstr "Faites attention à l'utilisation du @code{$} pour faire correspondre la fin d'une ligne ; à lui seul, il ne correspondra pas à la fin d'une nouvelle ligne."
+
+#. type: subsection
+#: doc/guix.texi:8315
+#, no-wrap
+msgid "File Search"
+msgstr "Recherche de fichiers"
+
+#. type: cindex
+#: doc/guix.texi:8317
+#, no-wrap
+msgid "file, searching"
+msgstr "fichier, chercher"
+
+#. type: Plain text
+#: doc/guix.texi:8319
+msgid "This section documents procedures to search and filter files."
+msgstr "Cette section documente les procédures pour chercher et filtrer des fichiers."
+
+#. type: deffn
+#: doc/guix.texi:8320
+#, no-wrap
+msgid "{Scheme Procedure} file-name-predicate @var{regexp}"
+msgstr "{Procédure Scheme} file-name-predicate @var{regexp}"
+
+#. type: deffn
+#: doc/guix.texi:8323
+msgid "Return a predicate that returns true when passed a file name whose base name matches @var{regexp}."
+msgstr "Renvoie un prédicat qui devient vrai lorsqu'on lui passe un nom de fichier dont le nom de base correspond à @var{regexp}."
+
+#. type: deffn
+#: doc/guix.texi:8325
+#, no-wrap
+msgid "{Scheme Procedure} find-files @var{dir} [@var{pred}] @"
+msgstr "{Procédure Scheme} find-files @var{dir} [@var{pred}] @"
+
+#. type: deffn
+#: doc/guix.texi:8336
+msgid "[#:stat lstat] [#:directories? #f] [#:fail-on-error? #f] Return the lexicographically sorted list of files under @var{dir} for which @var{pred} returns true.  @var{pred} is passed two arguments: the absolute file name, and its stat buffer; the default predicate always returns true.  @var{pred} can also be a regular expression, in which case it is equivalent to @code{(file-name-predicate @var{pred})}.  @var{stat} is used to obtain file information; using @code{lstat} means that symlinks are not followed.  If @var{directories?} is true, then directories will also be included.  If @var{fail-on-error?} is true, raise an exception upon error."
+msgstr ""
+"[#:stat lstat] [#:directories? #f] [#:fail-on-error? #f] \n"
+"Renvoie la liste des fichiers triés lexicographiquement sous @var{dir} pour lesquels @var{pred} renvoie « vrai ».  Deux arguments sont passés à @var{pred} : le nom absolu du fichier et son tampon stat ; le prédicat par défaut renvoie toujours « vrai ».  @var{pred} peut également être une expression régulière, auquel cas elle est équivalente à @code{(file-name-predicate @var{pred})}.  @var{stat} est utilisé pour obtenir des informations sur les fichiers ; l'utilisation de @code{lstat} signifie que les liens symboliques ne sont pas suivis.  Si @var{directories?} est vrai, alors les répertoires seront également inclus.  Si @var{fail-on-error?} est vrai, il lance une exception en cas d'erreur."
+
+#. type: Plain text
+#: doc/guix.texi:8340
+msgid "Here are a few examples where we assume that the current directory is the root of the Guix source tree:"
+msgstr "Voici quelques exemples où nous supposons que le répertoire actuel est la racine de l'arborescence des sources de Guix :"
+
+#. type: lisp
+#: doc/guix.texi:8345
+#, no-wrap
+msgid ""
+";; List all the regular files in the current directory.\n"
+"(find-files \".\")\n"
+"@result{} (\"./.dir-locals.el\" \"./.gitignore\" @dots{})\n"
+"\n"
+msgstr ""
+";; Liste tous les fichiers normaux dans le répertoire actuel.\n"
+"(find-files \".\")\n"
+"@result{} (\"./.dir-locals.el\" \"./.gitignore\" @dots{})\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:8349
+#, no-wrap
+msgid ""
+";; List all the .scm files under gnu/services.\n"
+"(find-files \"gnu/services\" \"\\\\.scm$\")\n"
+"@result{} (\"gnu/services/admin.scm\" \"gnu/services/audio.scm\" @dots{})\n"
+"\n"
+msgstr ""
+";; Liste tous les fichiers .scm sous gnu/services.\n"
+"(find-files \"gnu/services\" \"\\\\.scm$\")\n"
+"@result{} (\"gnu/services/admin.scm\" \"gnu/services/audio.scm\" @dots{})\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:8353
+#, no-wrap
+msgid ""
+";; List ar files in the current directory.\n"
+"(find-files \".\" (lambda (file stat) (ar-file? file)))\n"
+"@result{} (\"./libformat.a\" \"./libstore.a\" @dots{})\n"
+msgstr ""
+";; Liste les fichiers ar dans le répertoire actuel.\n"
+"(find-files \".\" (lambda (file stat) (ar-file? file)))\n"
+"@result{} (\"./libformat.a\" \"./libstore.a\" @dots{})\n"
+
+#. type: deffn
+#: doc/guix.texi:8355
+#, no-wrap
+msgid "{Scheme Procedure} which @var{program}"
+msgstr "{Procédure Scheme} which @var{programme}"
+
+#. type: deffn
+#: doc/guix.texi:8358
+msgid "Return the complete file name for @var{program} as found in @code{$PATH}, or @code{#f} if @var{program} could not be found."
+msgstr "Renvoie le nom complet du fichier pour @var{programme} tel qu'il se trouve dans @code{$PATH}, ou @code{#f} si @var{programme} n'a pas pu être trouvé."
+
+#. type: Plain text
+#: doc/guix.texi:8369
+msgid "The @code{(guix build utils)} also contains tools to manipulate build phases as used by build systems (@pxref{Build Systems}).  Build phases are represented as association lists or ``alists'' (@pxref{Association Lists,,, guile, GNU Guile Reference Manual}) where each key is a symbol naming the phase and the associated value is a procedure (@pxref{Build Phases})."
+msgstr "Le @code{(guix build utils)} contient également des outils permettant de manipuler les phases de construction telles qu'elles sont utilisées par les systèmes de construction (@pxref{Build Systems}).  Les phases de construction sont représentées sous forme de listes d'associations ou « alists » (@pxref{Association Lists,,, guile, Manuel de référence de GNU Guile}) où chaque clé est un symbole désignant la phase et où la valeur associée est une procédure (@pxref{Build Phases})."
+
+#. type: Plain text
+#: doc/guix.texi:8373
+msgid "Guile core and the @code{(srfi srfi-1)} module both provide tools to manipulate alists.  The @code{(guix build utils)} module complements those with tools written with build phases in mind."
+msgstr "Le noyau Guile et le module @code{(srfi srfi-1)} fournissent tous deux des outils pour manipuler les alignements.  Le module @code{(guix build utils)} complète ces outils avec des outils écrits en tenant compte des phases de construction."
+
+#. type: cindex
+#: doc/guix.texi:8374
+#, no-wrap
+msgid "build phases, modifying"
+msgstr "phases de construction, modifier"
+
+#. type: deffn
+#: doc/guix.texi:8375
+#, no-wrap
+msgid "{Scheme Syntax} modify-phases @var{phases} @var{clause}@dots{}"
+msgstr "{Syntaxe Scheme} modify-phases @var{phases} @var{clause}@dots{}"
+
+#. type: deffn
+#: doc/guix.texi:8378
+msgid "Modify @var{phases} sequentially as per each @var{clause}, which may have one of the following forms:"
+msgstr "Modifie @var{phases} séquentiellement selon chaque @var{clause}, qui peut avoir l'une des formes suivantes :"
+
+#. type: lisp
+#: doc/guix.texi:8384
+#, no-wrap
+msgid ""
+"(delete @var{old-phase-name})\n"
+"(replace @var{old-phase-name} @var{new-phase})\n"
+"(add-before @var{old-phase-name} @var{new-phase-name} @var{new-phase})\n"
+"(add-after @var{old-phase-name} @var{new-phase-name} @var{new-phase})\n"
+msgstr ""
+"(delete @var{old-phase-name})\n"
+"(replace @var{old-phase-name} @var{new-phase})\n"
+"(add-before @var{old-phase-name} @var{new-phase-name} @var{new-phase})\n"
+"(add-after @var{old-phase-name} @var{new-phase-name} @var{new-phase})\n"
+
+#. type: deffn
+#: doc/guix.texi:8388
+msgid "Where every @var{phase-name} above is an expression evaluating to a symbol, and @var{new-phase} an expression evaluating to a procedure."
+msgstr "Où chaque @var{phase-name} ci-dessus est une expression s'évaluant en un symbole, et @var{new-phase} une expression évaluant à une procédure."
+
+#. type: Plain text
+#: doc/guix.texi:8399
+msgid "The example below is taken from the definition of the @code{grep} package.  It adds a phase to run after the @code{install} phase, called @code{fix-egrep-and-fgrep}.  That phase is a procedure (@code{lambda*} is for anonymous procedures) that takes a @code{#:outputs} keyword argument and ignores extra keyword arguments (@pxref{Optional Arguments,,, guile, GNU Guile Reference Manual}, for more on @code{lambda*} and optional and keyword arguments.)  The phase uses @code{substitute*} to modify the installed @file{egrep} and @file{fgrep} scripts so that they refer to @code{grep} by its absolute file name:"
+msgstr "L'exemple ci-dessous est tiré de la définition du paquet @code{grep}.  Il ajoute une phase à exécuter après la phase @code{install}, appelée @code{fix-egrep-and-fgrep}.  Cette phase est une procédure (@code{lambda*} pour les procédures anonymes) qui prend un paramètre nommé @code{#:outputs} et ignore les paramètres nommés supplémentaires (@pxref{Optional Arguments,,, guile, GNU Guile Reference Manual}, pour en savoir plus sur @code{lambda*} et les arguments optionnels et nommés).  La phase utilise @code{substitute*} pour modifier les scripts @file{egrep} et @file{fgrep} installés afin qu'ils se réfèrent à @code{grep} par son nom de fichier absolu :"
+
+#. type: lisp
+#: doc/guix.texi:8413
+#, no-wrap
+msgid ""
+"(modify-phases %standard-phases\n"
+"  (add-after 'install 'fix-egrep-and-fgrep\n"
+"    ;; Patch 'egrep' and 'fgrep' to execute 'grep' via its\n"
+"    ;; absolute file name instead of searching for it in $PATH.\n"
+"    (lambda* (#:key outputs #:allow-other-keys)\n"
+"      (let* ((out (assoc-ref outputs \"out\"))\n"
+"             (bin (string-append out \"/bin\")))\n"
+"        (substitute* (list (string-append bin \"/egrep\")\n"
+"                           (string-append bin \"/fgrep\"))\n"
+"          ((\"^exec grep\")\n"
+"           (string-append \"exec \" bin \"/grep\")))\n"
+"        #t))))\n"
+msgstr ""
+"(modify-phases %standard-phases\n"
+"  (add-after 'install 'fix-egrep-and-fgrep\n"
+"    ;; Corrige 'egrep' et 'fgrep' pour exécuter 'grep' via son\n"
+"    ;; nom de fichier absolu au lieu de le chercher dans $PATH.\n"
+"    (lambda* (#:key outputs #:allow-other-keys)\n"
+"      (let* ((out (assoc-ref outputs \"out\"))\n"
+"             (bin (string-append out \"/bin\")))\n"
+"        (substitute* (list (string-append bin \"/egrep\")\n"
+"                           (string-append bin \"/fgrep\"))\n"
+"          ((\"^exec grep\")\n"
+"           (string-append \"exec \" bin \"/grep\")))\n"
+"        #t))))\n"
+
+#. type: Plain text
+#: doc/guix.texi:8420
+msgid "In the example below, phases are modified in two ways: the standard @code{configure} phase is deleted, presumably because the package does not have a @file{configure} script or anything similar, and the default @code{install} phase is replaced by one that manually copies the executable files to be installed:"
+msgstr "Dans l'exemple ci-dessous, les phases sont modifiées de deux façons : la phase standard @code{configure} est supprimée, vraisemblablement parce que le paquet n'a pas de script @file{configure} ou quelque chose de similaire, et la phase par défaut @code{install} est remplacée par une phase qui copie manuellement les fichiers exécutables à installer :"
+
+#. type: lisp
+#: doc/guix.texi:8433
+#, no-wrap
+msgid ""
+"(modify-phases %standard-phases\n"
+"  (delete 'configure)      ;no 'configure' script\n"
+"  (replace 'install\n"
+"    (lambda* (#:key outputs #:allow-other-keys)\n"
+"      ;; The package's Makefile doesn't provide an \"install\"\n"
+"      ;; rule so do it by ourselves.\n"
+"      (let ((bin (string-append (assoc-ref outputs \"out\")\n"
+"                                \"/bin\")))\n"
+"        (install-file \"footswitch\" bin)\n"
+"        (install-file \"scythe\" bin)\n"
+"        #t))))\n"
+msgstr ""
+"(modify-phases %standard-phases\n"
+"  (delete 'configure)      ;no 'configure' script\n"
+"  (replace 'install\n"
+"    (lambda* (#:key outputs #:allow-other-keys)\n"
+"      ;; Le Makefile du paquet ne fournit pas de règle « install »\n"
+"      ;; alors on le fait nous-mêmes.\n"
+"      (let ((bin (string-append (assoc-ref outputs \"out\")\n"
+"                                \"/bin\")))\n"
+"        (install-file \"footswitch\" bin)\n"
+"        (install-file \"scythe\" bin)\n"
+"        #t))))\n"
+
+#. type: cindex
+#: doc/guix.texi:8441
 #, no-wrap
 msgid "store items"
 msgstr "éléments du dépôt"
 
 #. type: cindex
-#: doc/guix.texi:6302
+#: doc/guix.texi:8442
 #, no-wrap
 msgid "store paths"
 msgstr "chemins dans le dépôt"
 
 #. type: Plain text
-#: doc/guix.texi:6313
+#: doc/guix.texi:8453
 msgid "Conceptually, the @dfn{store} is the place where derivations that have been built successfully are stored---by default, @file{/gnu/store}.  Sub-directories in the store are referred to as @dfn{store items} or sometimes @dfn{store paths}.  The store has an associated database that contains information such as the store paths referred to by each store path, and the list of @emph{valid} store items---results of successful builds.  This database resides in @file{@var{localstatedir}/guix/db}, where @var{localstatedir} is the state directory specified @i{via} @option{--localstatedir} at configure time, usually @file{/var}."
 msgstr "Conceptuellement, le @dfn{dépôt} est l'endroit où les dérivations qui ont bien été construites sont stockées — par défaut, @file{/gnu/store}.  Les sous-répertoires dans le dépôt s'appellent des @dfn{éléments du dépôt} ou parfois des @dfn{chemins du dépôt}.  Le dépôt a une base de données associée qui contient des informations comme les chemins du dépôt auxquels se réfèrent chaque chemin du dépôt et la liste des éléments du dépôt @emph{valides} — les résultats d'une construction réussie.  Cette base de données se trouve dans @file{@var{localstatedir}/guix/db} où @var{localstatedir} est le répertoire d'états spécifié @i{via} @option {--localstatedir} à la configuration, typiquement @file{/var}."
 
 #. type: Plain text
-#: doc/guix.texi:6318
+#: doc/guix.texi:8458
 msgid "The store is @emph{always} accessed by the daemon on behalf of its clients (@pxref{Invoking guix-daemon}).  To manipulate the store, clients connect to the daemon over a Unix-domain socket, send requests to it, and read the result---these are remote procedure calls, or RPCs."
 msgstr "C'est @emph{toujours} le démon qui accède au dépôt pour le compte de ses clients (@pxref{Invoking guix-daemon}).  Pour manipuler le dépôt, les clients se connectent au démon par un socket Unix-domain, envoient une requête dessus et lisent le résultat — ce sont des appels de procédures distantes, ou RPC."
 
 #. type: quotation
-#: doc/guix.texi:6323
+#: doc/guix.texi:8463
 msgid "Users must @emph{never} modify files under @file{/gnu/store} directly.  This would lead to inconsistencies and break the immutability assumptions of Guix's functional model (@pxref{Introduction})."
 msgstr "Les utilisateurs ne doivent @emph{jamais} modifier les fichiers dans @file{/gnu/store} directement.  Cela entraînerait des incohérences et casserait l'hypothèse d'immutabilité du modèle fonctionnel de Guix (@pxref{Introduction})."
 
 #. type: quotation
-#: doc/guix.texi:6327
+#: doc/guix.texi:8467
 msgid "@xref{Invoking guix gc, @command{guix gc --verify}}, for information on how to check the integrity of the store and attempt recovery from accidental modifications."
 msgstr "@xref{Invoking guix gc, @command{guix gc --verify}}, pour des informations sur la manière de vérifier l'intégrité du dépôt et d'essayer de réparer des modifications accidentelles."
 
 #. type: Plain text
-#: doc/guix.texi:6334
-msgid "The @code{(guix store)} module provides procedures to connect to the daemon, and to perform RPCs.  These are described below.  By default, @code{open-connection}, and thus all the @command{guix} commands, connect to the local daemon or to the URI specified by the @code{GUIX_DAEMON_SOCKET} environment variable."
-msgstr "Le module @code{(guix store)} fournit des procédures pour se connecter au démon et pour effectuer des RPC.  Elles sont décrites plus bas.  Par défaut, @code{open-connection}, et donc toutes les commandes @command{guix} se connectent au démon local ou à l'URI spécifiée par la variable d'environnement @code{GUIX_DAEMON_SOCKET}."
+#: doc/guix.texi:8474
+msgid "The @code{(guix store)} module provides procedures to connect to the daemon, and to perform RPCs.  These are described below.  By default, @code{open-connection}, and thus all the @command{guix} commands, connect to the local daemon or to the URI specified by the @env{GUIX_DAEMON_SOCKET} environment variable."
+msgstr "Le module @code{(guix store)} fournit des procédures pour se connecter au démon et pour effectuer des RPCs.  Elles sont décrites plus bas.  Par défaut, @code{open-connection}, et donc toutes les commandes @command{guix} se connectent au démon local ou à l'URI spécifiée par la variable d'environnement @env{GUIX_DAEMON_SOCKET}."
 
 #. type: defvr
-#: doc/guix.texi:6335
+#: doc/guix.texi:8475
 #, no-wrap
 msgid "{Environment Variable} GUIX_DAEMON_SOCKET"
 msgstr "{Variable d'environnement} GUIX_DAEMON_SOCKET"
 
 #. type: defvr
-#: doc/guix.texi:6340
+#: doc/guix.texi:8480
 msgid "When set, the value of this variable should be a file name or a URI designating the daemon endpoint.  When it is a file name, it denotes a Unix-domain socket to connect to.  In addition to file names, the supported URI schemes are:"
 msgstr "Lorsqu'elle est initialisée, la valeur de cette variable devrait être un nom de fichier ou une URI qui désigne l'extrémité du démon.  Lorsque c'est un nom de fichier, il dénote un socket Unix-domain où se connecter.  En plus des noms de fichiers, les schémas d'URI supportés sont :"
 
 #. type: code{#1}
-#: doc/guix.texi:6342 doc/guix.texi:18633
+#: doc/guix.texi:8482 doc/guix.texi:22776
 #, no-wrap
 msgid "file"
 msgstr "file"
 
 #. type: itemx
-#: doc/guix.texi:6343
+#: doc/guix.texi:8483
 #, no-wrap
 msgid "unix"
 msgstr "unix"
 
 #. type: table
-#: doc/guix.texi:6347
+#: doc/guix.texi:8487
 msgid "These are for Unix-domain sockets.  @code{file:///var/guix/daemon-socket/socket} is equivalent to @file{/var/guix/daemon-socket/socket}."
 msgstr "Pour les sockets Unix-domain.  @code{file:///var/guix/daemon-socket/socket} est équivalent à @file{/var/guix/daemon-socket/socket}."
 
 #. type: item
-#: doc/guix.texi:6348
+#: doc/guix.texi:8488
 #, no-wrap
 msgid "guix"
 msgstr "guix"
 
 #. type: table
-#: doc/guix.texi:6356
+#: doc/guix.texi:8496
 msgid "These URIs denote connections over TCP/IP, without encryption nor authentication of the remote host.  The URI must specify the host name and optionally a port number (by default port 44146 is used):"
 msgstr "Ces URI dénotent des connexions par TCP/IP, sans chiffrement ni authentification de l'hôte distant.  L'URI doit spécifier le nom d'hôte et éventuellement un numéro de port (par défaut 44146) :"
 
 #. type: example
-#: doc/guix.texi:6359
+#: doc/guix.texi:8499
 #, no-wrap
 msgid "guix://master.guix.example.org:1234\n"
 msgstr "guix://master.guix.example.org:1234\n"
 
 #. type: table
-#: doc/guix.texi:6364
+#: doc/guix.texi:8504
 msgid "This setup is suitable on local networks, such as clusters, where only trusted nodes may connect to the build daemon at @code{master.guix.example.org}."
 msgstr "Ce paramétrage est adapté aux réseaux locaux, comme dans le cas de grappes de serveurs, où seuls des noms de confiance peuvent se connecter au démon de construction sur @code{master.guix.example.org}."
 
 #. type: table
-#: doc/guix.texi:6368
-msgid "The @code{--listen} option of @command{guix-daemon} can be used to instruct it to listen for TCP connections (@pxref{Invoking guix-daemon, @code{--listen}})."
-msgstr "L'option @code{--listen} de @command{guix-daemon} peut être utilisé pour lui dire d'écouter des connexions TCP (@pxref{Invoking guix-daemon, @code{--listen}})."
+#: doc/guix.texi:8508
+msgid "The @option{--listen} option of @command{guix-daemon} can be used to instruct it to listen for TCP connections (@pxref{Invoking guix-daemon, @option{--listen}})."
+msgstr "L'option @code{--listen} de @command{guix-daemon} peut être utilisé pour lui dire d'écouter les connexions TCP (@pxref{Invoquer guix-daemon, @option{--listen}})."
 
 #. type: item
-#: doc/guix.texi:6369
+#: doc/guix.texi:8509
 #, no-wrap
 msgid "ssh"
 msgstr "ssh"
 
 #. type: cindex
-#: doc/guix.texi:6370
+#: doc/guix.texi:8510
 #, no-wrap
 msgid "SSH access to build daemons"
-msgstr "accès SSH au démon de construction"
+msgstr "Accès SSH au démon de construction"
 
 #. type: table
-#: doc/guix.texi:6374
-msgid "These URIs allow you to connect to a remote daemon over SSH@footnote{This feature requires Guile-SSH (@pxref{Requirements}).}.  A typical URL might look like this:"
-msgstr "Ces URI vous permettent de vous connecter au démon à distance à travers SSH@footnote{Cette fonctionnalité requiert Guile-SSH (@pxref{Requirements}).}.  Une URL typique pourrait ressembler à ceci :"
+#: doc/guix.texi:8516
+msgid "These URIs allow you to connect to a remote daemon over SSH.  This feature requires Guile-SSH (@pxref{Requirements}) and a working @command{guile} binary in @env{PATH} on the destination machine.  It supports public key and GSSAPI authentication.  A typical URL might look like this:"
+msgstr "Ces URI vous permettent de vous connecter à un démon distant via SSH.  Cette fonctionnalité nécessite Guile-SSH (@pxref{Requirements}) et un binaire @command{guile} fonctionnel dans @env{PATH} sur la machine de destination.  Elle prend en charge l'authentification par clé publique et GSSAPI.  Une URL typique pourrait ressembler à ceci :"
 
 #. type: example
-#: doc/guix.texi:6377
+#: doc/guix.texi:8519
 #, no-wrap
 msgid "ssh://charlie@@guix.example.org:22\n"
 msgstr "ssh://charlie@@guix.example.org:22\n"
 
 #. type: table
-#: doc/guix.texi:6381
+#: doc/guix.texi:8523
 msgid "As for @command{guix copy}, the usual OpenSSH client configuration files are honored (@pxref{Invoking guix copy})."
 msgstr "Comme pour @command{guix copy}, les fichiers de configuration du client OpenSSH sont respectés (@pxref{Invoking guix copy})."
 
 #. type: defvr
-#: doc/guix.texi:6384
+#: doc/guix.texi:8526
 msgid "Additional URI schemes may be supported in the future."
 msgstr "Des schémas d'URI supplémentaires pourraient être supportés dans le futur."
 
 #. type: quotation
-#: doc/guix.texi:6391
+#: doc/guix.texi:8533
 msgid "The ability to connect to remote build daemons is considered experimental as of @value{VERSION}.  Please get in touch with us to share any problems or suggestions you may have (@pxref{Contributing})."
 msgstr "La capacité de se connecter à un démon de construction distant est considéré comme expérimental à la version @value{VERSION}.  Contactez-nous pour partager vos problèmes ou des suggestions que vous pourriez avoir (@pxref{Contributing})."
 
 #. type: deffn
-#: doc/guix.texi:6394
+#: doc/guix.texi:8536
 #, no-wrap
 msgid "{Scheme Procedure} open-connection [@var{uri}] [#:reserve-space? #t]"
 msgstr "{Procédure Scheme} open-connection [@var{uri}] [#:reserve-space? #t]"
 
 #. type: deffn
-#: doc/guix.texi:6399
+#: doc/guix.texi:8541
 msgid "Connect to the daemon over the Unix-domain socket at @var{uri} (a string).  When @var{reserve-space?} is true, instruct it to reserve a little bit of extra space on the file system so that the garbage collector can still operate should the disk become full.  Return a server object."
 msgstr "Se connecte au démon à travers le socket Unix-domain à @var{uri} (une chaîne de caractères).  Lorsque @var{reserve-space?} est vrai, cela demande de réserver un peu de place supplémentaire sur le système de fichiers pour que le ramasse-miette puisse opérer au cas où le disque serait plein.  Renvoie un objet serveur."
 
 #. type: deffn
-#: doc/guix.texi:6402
-msgid "@var{file} defaults to @var{%default-socket-path}, which is the normal location given the options that were passed to @command{configure}."
-msgstr "@var{file} a pour valeur par défaut @var{%default-socket-path}, qui est l'emplacement normal en fonction des options données à @command{configure}."
+#: doc/guix.texi:8544
+msgid "@var{file} defaults to @code{%default-socket-path}, which is the normal location given the options that were passed to @command{configure}."
+msgstr "@var{file} prend par défaut la valeur @code{%default-socket-path}, qui est l'emplacement normal compte tenu des options qui ont été passées à @command{configure}."
 
 #. type: deffn
-#: doc/guix.texi:6404
+#: doc/guix.texi:8546
 #, no-wrap
 msgid "{Scheme Procedure} close-connection @var{server}"
 msgstr "{Procédure Scheme} close-connection @var{server}"
 
 #. type: deffn
-#: doc/guix.texi:6406
+#: doc/guix.texi:8548
 msgid "Close the connection to @var{server}."
 msgstr "Ferme la connexion au @var{serveur}."
 
 #. type: defvr
-#: doc/guix.texi:6408
+#: doc/guix.texi:8550
 #, no-wrap
 msgid "{Scheme Variable} current-build-output-port"
 msgstr "{Variable Scheme} current-build-output-port"
 
 #. type: defvr
-#: doc/guix.texi:6411
+#: doc/guix.texi:8553
 msgid "This variable is bound to a SRFI-39 parameter, which refers to the port where build and error logs sent by the daemon should be written."
 msgstr "Cette variable est liée à un paramètre SRFI-39, qui se réfère au port où les journaux de construction et d'erreur envoyés par le démon devraient être écrits."
 
 #. type: Plain text
-#: doc/guix.texi:6415
+#: doc/guix.texi:8557
 msgid "Procedures that make RPCs all take a server object as their first argument."
 msgstr "Les procédures qui font des RPC prennent toutes un objet serveur comme premier argument."
 
 #. type: deffn
-#: doc/guix.texi:6416
+#: doc/guix.texi:8558
 #, no-wrap
 msgid "{Scheme Procedure} valid-path? @var{server} @var{path}"
 msgstr "{Procédure Scheme} valid-path? @var{server} @var{path}"
 
 #. type: cindex
-#: doc/guix.texi:6417
+#: doc/guix.texi:8559
 #, no-wrap
 msgid "invalid store items"
 msgstr "éléments du dépôt invalides"
 
 #. type: deffn
-#: doc/guix.texi:6422
-msgid "Return @code{#t} when @var{path} designates a valid store item and @code{#f} otherwise (an invalid item may exist on disk but still be invalid, for instance because it is the result of an aborted or failed build.)"
-msgstr "Renvoie @code{#t} lorsque @var{path} désigne un élément du dépôt valide et @code{#f} sinon (un élément invalide peut exister sur le disque mais rester invalide, par exemple parce que c'est le résultat d'une construction annulée ou échouée)."
+#: doc/guix.texi:8564
+msgid "Return @code{#t} when @var{path} designates a valid store item and @code{#f} otherwise (an invalid item may exist on disk but still be invalid, for instance because it is the result of an aborted or failed build)."
+msgstr "Renvoie @code{#t} lorsque @var{path} désigne un élément valide du dépôt et @code{#f} sinon (un élément invalide peut exister sur le disque mais être toujours invalide, par exemple parce qu'il est le résultat d'une construction avortée ou échouée)."
 
 #. type: deffn
-#: doc/guix.texi:6425
+#: doc/guix.texi:8567
 msgid "A @code{&store-protocol-error} condition is raised if @var{path} is not prefixed by the store directory (@file{/gnu/store})."
 msgstr "Une condition @code{&store-protocol-error} est levée si @var{path} n'est pas préfixée par le répertoire du dépôt (@file{/gnu/store})."
 
 #. type: deffn
-#: doc/guix.texi:6427
+#: doc/guix.texi:8569
 #, no-wrap
 msgid "{Scheme Procedure} add-text-to-store @var{server} @var{name} @var{text} [@var{references}]"
 msgstr "{Procédure Scheme} add-text-to-store @var{server} @var{name} @var{text} [@var{references}]"
 
 #. type: deffn
-#: doc/guix.texi:6431
+#: doc/guix.texi:8573
 msgid "Add @var{text} under file @var{name} in the store, and return its store path.  @var{references} is the list of store paths referred to by the resulting store path."
 msgstr "Ajoute @var{text} dans le fichier @var{name} dans le dépôt et renvoie son chemin.  @var{references} est la liste des chemins du dépôt référencés par le chemin du dépôt qui en résulte."
 
 #. type: deffn
-#: doc/guix.texi:6433
+#: doc/guix.texi:8575
 #, no-wrap
-msgid "{Scheme Procedure} build-derivations @var{server} @var{derivations}"
-msgstr "{Procédure Scheme} build-derivations @var{server} @var{derivations}"
+msgid "{Scheme Procedure} build-derivations @var{store} @var{derivations} @"
+msgstr "{Procédure Scheme} build-derivations @var{store} @var{derivations}"
 
 #. type: deffn
-#: doc/guix.texi:6437
-msgid "Build @var{derivations} (a list of @code{<derivation>} objects or derivation paths), and return when the worker is done building them.  Return @code{#t} on success."
-msgstr "Construit @var{derivaton} (ne liste d'objets @code{<derivation>} ou de chemins de dérivations) et retourne quand le travailleur a fini de les construire.  Renvoie @code{#t} en cas de réussite."
+#: doc/guix.texi:8580
+msgid "[@var{mode}] Build @var{derivations}, a list of @code{<derivation>} objects, @file{.drv} file names, or derivation/output pairs, using the specified @var{mode}---@code{(build-mode normal)} by default."
+msgstr "[@var{mode}] Construit @var{derivations}, une liste d'objets @code{<derivation>}, de noms de fichiers @file{.drv}, ou de paires dérivation/sortie, en utilisant le @var{mode}---@code{(build-mode normal)} spécifié par défaut."
 
 #. type: Plain text
-#: doc/guix.texi:6443
+#: doc/guix.texi:8586
 msgid "Note that the @code{(guix monads)} module provides a monad as well as monadic versions of the above procedures, with the goal of making it more convenient to work with code that accesses the store (@pxref{The Store Monad})."
 msgstr "Remarque que le module @code{(guix monads)} fournit une monade ainsi que des version monadiques des procédures précédentes, avec le but de rendre plus facile de travailler avec le code qui accède au dépôt (@pxref{The Store Monad})."
 
 #. type: i{#1}
-#: doc/guix.texi:6446
+#: doc/guix.texi:8589
 msgid "This section is currently incomplete."
 msgstr "Cette section est actuellement incomplète."
 
 #. type: cindex
-#: doc/guix.texi:6450
+#: doc/guix.texi:8593
 #, no-wrap
 msgid "derivations"
 msgstr "dérivations"
 
 #. type: Plain text
-#: doc/guix.texi:6454
+#: doc/guix.texi:8597
 msgid "Low-level build actions and the environment in which they are performed are represented by @dfn{derivations}.  A derivation contains the following pieces of information:"
 msgstr "Les actions de construction à bas-niveau et l'environnement dans lequel elles sont effectuées sont représentés par des @dfn{dérivations}.  Une dérivation contient cet ensemble d'informations :"
 
 #. type: itemize
-#: doc/guix.texi:6459
+#: doc/guix.texi:8602
 msgid "The outputs of the derivation---derivations produce at least one file or directory in the store, but may produce more."
 msgstr "Les sorties de la dérivation — les dérivations produisent au moins un fichier ou répertoire dans le dépôt, mais peuvent en produire plus."
 
 #. type: cindex
-#: doc/guix.texi:6461
+#: doc/guix.texi:8604
 #, no-wrap
 msgid "build-time dependencies"
 msgstr "dépendances à la construction"
 
 #. type: cindex
-#: doc/guix.texi:6462
+#: doc/guix.texi:8605
 #, no-wrap
 msgid "dependencies, build-time"
 msgstr "construction, dépendances"
 
 #. type: itemize
-#: doc/guix.texi:6466
-msgid "The inputs of the derivations---i.e., its build-time dependencies---which may be other derivations or plain files in the store (patches, build scripts, etc.)"
-msgstr "Les entrées de la dérivation — c.-à-d.@: ses dépendances à la construction — qui peuvent être d'autres dérivations ou des fichiers dans le dépôt (correctifs, scripts de construction, etc)."
+#: doc/guix.texi:8609
+msgid "The inputs of the derivations---i.e., its build-time dependencies---which may be other derivations or plain files in the store (patches, build scripts, etc.)."
+msgstr "Les entrées des dérivations - c'est-à-dire leurs dépendances de temps de construction - qui peuvent être d'autres dérivations ou des fichiers simples dans le dépôt (patchs, scripts de construction, etc.)."
 
 #. type: itemize
-#: doc/guix.texi:6469
+#: doc/guix.texi:8612
 msgid "The system type targeted by the derivation---e.g., @code{x86_64-linux}."
 msgstr "Le type de système ciblé par la dérivation — p.ex.@: @code{x86_64-linux}."
 
 #. type: itemize
-#: doc/guix.texi:6473
+#: doc/guix.texi:8616
 msgid "The file name of a build script in the store, along with the arguments to be passed."
 msgstr "Le nom de fichier d'un script de construction dans le dépôt avec les arguments à lui passer."
 
 #. type: itemize
-#: doc/guix.texi:6476
+#: doc/guix.texi:8619
 msgid "A list of environment variables to be defined."
 msgstr "Une liste de variables d'environnement à définir."
 
 #. type: cindex
-#: doc/guix.texi:6479
+#: doc/guix.texi:8622
 #, no-wrap
 msgid "derivation path"
 msgstr "chemin de dérivation"
 
 #. type: Plain text
-#: doc/guix.texi:6487
-msgid "Derivations allow clients of the daemon to communicate build actions to the store.  They exist in two forms: as an in-memory representation, both on the client- and daemon-side, and as files in the store whose name end in @code{.drv}---these files are referred to as @dfn{derivation paths}.  Derivations paths can be passed to the @code{build-derivations} procedure to perform the build actions they prescribe (@pxref{The Store})."
-msgstr "Les dérivations permettent aux client du démon de communiquer des actions de construction dans le dépôt.  Elles existent sous deux formes : en tant que représentation en mémoire, à la fois côté client et démon, et en tant que fichiers dans le dépôt dont le nom fini par @code{.drv} — on dit que ce sont des @dfn{chemins de dérivations}.  Les chemins de dérivations peuvent être passés à la procédure @code{build-derivations} pour effectuer les actions de construction qu'ils prescrivent (@pxref{The Store})."
+#: doc/guix.texi:8630
+msgid "Derivations allow clients of the daemon to communicate build actions to the store.  They exist in two forms: as an in-memory representation, both on the client- and daemon-side, and as files in the store whose name end in @file{.drv}---these files are referred to as @dfn{derivation paths}.  Derivations paths can be passed to the @code{build-derivations} procedure to perform the build actions they prescribe (@pxref{The Store})."
+msgstr "Les dérivations permettent aux client du démon de communiquer des actions de construction dans le dépôt.  Elles existent sous deux formes : en tant que représentation en mémoire, à la fois côté client et démon, et en tant que fichiers dans le dépôt dont le nom finit par @code{.drv} — on dit que ce sont des @dfn{chemins de dérivations}.  Les chemins de dérivations peuvent être passés à la procédure @code{build-derivations} pour effectuer les actions de construction qu'ils prescrivent (@pxref{The Store})."
 
 #. type: cindex
-#: doc/guix.texi:6488
+#: doc/guix.texi:8631
 #, no-wrap
 msgid "fixed-output derivations"
 msgstr "dérivations à sortie fixe"
 
 #. type: Plain text
-#: doc/guix.texi:6495
+#: doc/guix.texi:8638
 msgid "Operations such as file downloads and version-control checkouts for which the expected content hash is known in advance are modeled as @dfn{fixed-output derivations}.  Unlike regular derivations, the outputs of a fixed-output derivation are independent of its inputs---e.g., a source code download produces the same result regardless of the download method and tools being used."
 msgstr "Des opérations comme le téléchargement de fichiers et la récupération de sources gérés par un logiciel de contrôle de version pour lesquels le hash du contenu est connu à l'avance sont modélisés par des @dfn{dérivations à sortie fixe}.  Contrairement aux dérivation habituelles, les sorties d'une dérivation à sortie fixe sont indépendantes de ses entrées — p.ex.@: un code source téléchargé produit le même résultat quelque soit la méthode de téléchargement utilisée."
 
 #. type: item
-#: doc/guix.texi:6496 doc/guix.texi:9483
+#: doc/guix.texi:8639 doc/guix.texi:12003
 #, no-wrap
 msgid "references"
 msgstr "references"
 
 #. type: cindex
-#: doc/guix.texi:6497
+#: doc/guix.texi:8640
 #, no-wrap
 msgid "run-time dependencies"
 msgstr "dépendances à l'exécution"
 
 #. type: cindex
-#: doc/guix.texi:6498
+#: doc/guix.texi:8641
 #, no-wrap
 msgid "dependencies, run-time"
 msgstr "exécution, dépendances"
 
 #. type: Plain text
-#: doc/guix.texi:6505
+#: doc/guix.texi:8648
 msgid "The outputs of derivations---i.e., the build results---have a set of @dfn{references}, as reported by the @code{references} RPC or the @command{guix gc --references} command (@pxref{Invoking guix gc}).  References are the set of run-time dependencies of the build results.  References are a subset of the inputs of the derivation; this subset is automatically computed by the build daemon by scanning all the files in the outputs."
 msgstr "Les sorties des dérivations — c.-à-d.@: les résultats de la construction — ont un ensemble de @dfn{références}, comme le rapporte le RPC @code{references} ou la commande @command{guix gc --references} (@pxref{Invoking guix gc}).  Les références sont l'ensemble des dépendances à l'exécution des résultats de la construction.  Les références sont un sous-ensemble des entrées de la dérivation ; ce sous-ensemble est automatiquement calculé par le démon de construction en scannant tous les fichiers dans les sorties."
 
 #. type: Plain text
-#: doc/guix.texi:6510
+#: doc/guix.texi:8653
 msgid "The @code{(guix derivations)} module provides a representation of derivations as Scheme objects, along with procedures to create and otherwise manipulate derivations.  The lowest-level primitive to create a derivation is the @code{derivation} procedure:"
 msgstr "Le module @code{(guix derivations)} fournit une représentation des dérivations comme des objets Scheme, avec des procédures pour créer et manipuler des dérivations.  La primitive de plus bas-niveau pour créer une dérivation est la procédure @code{derivation} :"
 
 #. type: deffn
-#: doc/guix.texi:6511
+#: doc/guix.texi:8654
 #, no-wrap
 msgid "{Scheme Procedure} derivation @var{store} @var{name} @var{builder} @"
 msgstr "{Procédure Scheme} derivation @var{store} @var{name} @var{builder} @"
 
 #. type: deffn
-#: doc/guix.texi:6520
+#: doc/guix.texi:8663
 msgid "@var{args} [#:outputs '(\"out\")] [#:hash #f] [#:hash-algo #f] @ [#:recursive? #f] [#:inputs '()] [#:env-vars '()] @ [#:system (%current-system)] [#:references-graphs #f] @ [#:allowed-references #f] [#:disallowed-references #f] @ [#:leaked-env-vars #f] [#:local-build? #f] @ [#:substitutable? #t] [#:properties '()] Build a derivation with the given arguments, and return the resulting @code{<derivation>} object."
 msgstr ""
 "@var{args} [#:outputs '(\"out\")] [#:hash #f] [#:hash-algo #f] @\n"
@@ -12532,47 +16608,47 @@ msgstr ""
 "Construit une dérivation avec les arguments donnés et renvoie l'objet @code{<derivation>} obtenu."
 
 #. type: deffn
-#: doc/guix.texi:6527
+#: doc/guix.texi:8670
 msgid "When @var{hash} and @var{hash-algo} are given, a @dfn{fixed-output derivation} is created---i.e., one whose result is known in advance, such as a file download.  If, in addition, @var{recursive?} is true, then that fixed output may be an executable file or a directory and @var{hash} must be the hash of an archive containing this output."
 msgstr "Lorsque @var{hash} et @var{hash-algo} sont donnés, une @dfn{dérivation à sortie fixe} est créée — c.-à-d.@: une dérivation dont le résultat est connu à l'avance, comme dans le cas du téléchargement d'un fichier.  Si, en plus, @var{recursive?} est vrai, alors la sortie fixe peut être un fichier exécutable ou un répertoire et @var{hash} doit être le hash d'une archive contenant la sortie."
 
 #. type: deffn
-#: doc/guix.texi:6532
+#: doc/guix.texi:8675
 msgid "When @var{references-graphs} is true, it must be a list of file name/store path pairs.  In that case, the reference graph of each store path is exported in the build environment in the corresponding file, in a simple text format."
 msgstr "Lorsque @var{references-graphs} est vrai, il doit s'agir d'une liste de paires de noms de fichiers et de chemins du dépôt.  Dans ce cas, le graphe des références de chaque chemin du dépôt est exporté dans l'environnement de construction dans le fichier correspondant, dans un simple format texte."
 
 #. type: deffn
-#: doc/guix.texi:6537
+#: doc/guix.texi:8680
 msgid "When @var{allowed-references} is true, it must be a list of store items or outputs that the derivation's output may refer to.  Likewise, @var{disallowed-references}, if true, must be a list of things the outputs may @emph{not} refer to."
 msgstr "Lorsque @var{allowed-references} est vrai, il doit s'agir d'une liste d'éléments du dépôt ou de sorties auxquelles la sortie de la dérivations peut faire référence.  De même, @var{disallowed-references}, si vrai, doit être une liste de choses que la sortie ne doit @emph{pas} référencer."
 
 #. type: deffn
-#: doc/guix.texi:6544
+#: doc/guix.texi:8687
 msgid "When @var{leaked-env-vars} is true, it must be a list of strings denoting environment variables that are allowed to ``leak'' from the daemon's environment to the build environment.  This is only applicable to fixed-output derivations---i.e., when @var{hash} is true.  The main use is to allow variables such as @code{http_proxy} to be passed to derivations that download files."
 msgstr "Lorsque @var{leaked-env-vars} est vrai, il doit s'agir d'une liste de chaînes de caractères qui désignent les variables d'environnements qui peuvent « fuiter » de l'environnement du démon dans l'environnement de construction.  Ce n'est possible que pour les dérivations à sortie fixe — c.-à-d.@: lorsque @var{hash} est vrai.  L'utilisation principale est de permettre à des variables comme @code{http_proxy} d'être passées aux dérivations qui téléchargent des fichiers."
 
 #. type: deffn
-#: doc/guix.texi:6549
+#: doc/guix.texi:8692
 msgid "When @var{local-build?} is true, declare that the derivation is not a good candidate for offloading and should rather be built locally (@pxref{Daemon Offload Setup}).  This is the case for small derivations where the costs of data transfers would outweigh the benefits."
 msgstr "Lorsque @var{local-build?} est vrai, déclare que la dérivation n'est pas un bon candidat pour le déchargement et devrait plutôt être construit localement (@pxref{Daemon Offload Setup}).  C'est le cas des petites dérivations où le coût du transfert de données est plus important que les bénéfices."
 
 #. type: deffn
-#: doc/guix.texi:6554
+#: doc/guix.texi:8697
 msgid "When @var{substitutable?} is false, declare that substitutes of the derivation's output should not be used (@pxref{Substitutes}).  This is useful, for instance, when building packages that capture details of the host CPU instruction set."
 msgstr "Lorsque que @var{substitutable?} est faux, déclare que les substituts de la sortie de la dérivation ne devraient pas être utilisés (@pxref{Substituts}). Cela est utile par exemple pour construire des paquets qui utilisent des détails du jeu d'instruction du CPU hôte."
 
 #. type: deffn
-#: doc/guix.texi:6557
+#: doc/guix.texi:8700
 msgid "@var{properties} must be an association list describing ``properties'' of the derivation.  It is kept as-is, uninterpreted, in the derivation."
 msgstr "@var{properties} doit être une liste d'association décrivant les « propriétés » de la dérivation.  Elle est gardée telle-quelle, sans être interprétée, dans la dérivation."
 
 #. type: Plain text
-#: doc/guix.texi:6563
+#: doc/guix.texi:8706
 msgid "Here's an example with a shell script as its builder, assuming @var{store} is an open connection to the daemon, and @var{bash} points to a Bash executable in the store:"
 msgstr "Voici un exemple avec un script shell comme constructeur, en supposant que @var{store} est une connexion ouverte au démon et @var{bash} pointe vers un exécutable Bash dans le dépôt :"
 
 #. type: lisp
-#: doc/guix.texi:6568
+#: doc/guix.texi:8711
 #, no-wrap
 msgid ""
 "(use-modules (guix utils)\n"
@@ -12586,7 +16662,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:6577
+#: doc/guix.texi:8720
 #, no-wrap
 msgid ""
 "(let ((builder   ; add the Bash script to the store\n"
@@ -12608,23 +16684,23 @@ msgstr ""
 "@result{} #<derivation /gnu/store/@dots{}-foo.drv => /gnu/store/@dots{}-foo>\n"
 
 #. type: Plain text
-#: doc/guix.texi:6584
+#: doc/guix.texi:8727
 msgid "As can be guessed, this primitive is cumbersome to use directly.  A better approach is to write build scripts in Scheme, of course! The best course of action for that is to write the build code as a ``G-expression'', and to pass it to @code{gexp->derivation}.  For more information, @pxref{G-Expressions}."
 msgstr "Comme on pourrait s'en douter, cette primitive est difficile à utiliser directement.  Une meilleure approche est d'écrire les scripts de construction en Scheme, bien sur !  Le mieux à faire pour cela est d'écrire le code de construction comme une « G-expression » et de la passer à @code{gexp->derivation}.  Pour plus d'informations, @pxref{G-Expressions}."
 
 #. type: Plain text
-#: doc/guix.texi:6589
+#: doc/guix.texi:8732
 msgid "Once upon a time, @code{gexp->derivation} did not exist and constructing derivations with build code written in Scheme was achieved with @code{build-expression->derivation}, documented below.  This procedure is now deprecated in favor of the much nicer @code{gexp->derivation}."
 msgstr "Il fut un temps où @code{gexp->derivation} n'existait pas et où construire une dérivation donc le code de construction était écrit en Scheme se faisait avec @code{build-expression->derivation}, documenté plus bas.  Cette procédure est maintenant obsolète, remplacée par @code{gexp->derivation} qui est meilleure."
 
 #. type: deffn
-#: doc/guix.texi:6590
+#: doc/guix.texi:8733
 #, no-wrap
 msgid "{Scheme Procedure} build-expression->derivation @var{store} @"
 msgstr "{Procédure Scheme} build-expression->derivation @var{store} @"
 
 #. type: deffn
-#: doc/guix.texi:6606
+#: doc/guix.texi:8749
 msgid "@var{name} @var{exp} @ [#:system (%current-system)] [#:inputs '()] @ [#:outputs '(\"out\")] [#:hash #f] [#:hash-algo #f] @ [#:recursive? #f] [#:env-vars '()] [#:modules '()] @ [#:references-graphs #f] [#:allowed-references #f] @ [#:disallowed-references #f] @ [#:local-build? #f] [#:substitutable? #t] [#:guile-for-build #f] Return a derivation that executes Scheme expression @var{exp} as a builder for derivation @var{name}.  @var{inputs} must be a list of @code{(name drv-path sub-drv)} tuples; when @var{sub-drv} is omitted, @code{\"out\"} is assumed.  @var{modules} is a list of names of Guile modules from the current search path to be copied in the store, compiled, and made available in the load path during the execution of @var{exp}---e.g., @code{((guix build utils) (guix build gnu-build-system))}."
 msgstr ""
 "@var{name} @var{exp} @\n"
@@ -12637,27 +16713,27 @@ msgstr ""
 "Renvoie une dérivation qui exécute l'expression Scheme @var{exp} comme un constructeur pour la dérivation @var{name}.  @var{inputs} doit être une liste de tuples @code{(name drv-path sub-drv)} ; lorsque @var{sub-drv} est omis, @code{\"out\"} est utilisé.  @var{modules} est une liste de noms de modules Guile du chemin de recherche actuel qui seront copiés dans le dépôt, compilés et rendus disponibles dans le chemin de chargement pendant l'exécution de @var{exp} — p.@: ex.@: @code{((guix build utils) (guix build gnu-build-system))}."
 
 #. type: deffn
-#: doc/guix.texi:6614
+#: doc/guix.texi:8757
 msgid "@var{exp} is evaluated in an environment where @code{%outputs} is bound to a list of output/path pairs, and where @code{%build-inputs} is bound to a list of string/output-path pairs made from @var{inputs}.  Optionally, @var{env-vars} is a list of string pairs specifying the name and value of environment variables visible to the builder.  The builder terminates by passing the result of @var{exp} to @code{exit}; thus, when @var{exp} returns @code{#f}, the build is considered to have failed."
 msgstr "@var{exp} est évaluée dans une environnement où @code{%outputs} est lié à une liste de paires de sortie/chemin, et où @code{%build-inputs} est lié à une liste de paires de chaînes de caractères et de chemin de sortie construite à partir de @var{inputs}.  Éventuellement, @var{env-vars} est une liste de paires de chaînes de caractères spécifiant le nom et la valeur de variables d'environnement visibles pour le constructeur.  Le constructeur termine en passant le résultat de @var{exp} à @code{exit} ; ainsi, lorsque @var{exp} renvoie @code{#f}, la construction est considérée en échec."
 
 #. type: deffn
-#: doc/guix.texi:6618
+#: doc/guix.texi:8761
 msgid "@var{exp} is built using @var{guile-for-build} (a derivation).  When @var{guile-for-build} is omitted or is @code{#f}, the value of the @code{%guile-for-build} fluid is used instead."
 msgstr "@var{exp} est construite avec @var{guile-for-build} (une dérivation).  Lorsque @var{guile-for-build} est omis où est @code{#f}, la valeur du fluide @code{%guile-for-build} est utilisée à la place."
 
 #. type: deffn
-#: doc/guix.texi:6623
+#: doc/guix.texi:8766
 msgid "See the @code{derivation} procedure for the meaning of @var{references-graphs}, @var{allowed-references}, @var{disallowed-references}, @var{local-build?}, and @var{substitutable?}."
 msgstr "Voir la procédure @code{derivation} pour la signification de @var{references-graph}, @var{allowed-references}, @var{disallowed-references}, @var{local-build?} et @var{substitutable?}."
 
 #. type: Plain text
-#: doc/guix.texi:6628
+#: doc/guix.texi:8771
 msgid "Here's an example of a single-output derivation that creates a directory containing one file:"
 msgstr "Voici un exemple de dérivation à sortie unique qui crée un répertoire avec un fichier :"
 
 #. type: lisp
-#: doc/guix.texi:6636
+#: doc/guix.texi:8779
 #, no-wrap
 msgid ""
 "(let ((builder '(let ((out (assoc-ref %outputs \"out\")))\n"
@@ -12677,51 +16753,51 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:6638
+#: doc/guix.texi:8781
 #, no-wrap
 msgid "@result{} #<derivation /gnu/store/@dots{}-goo.drv => @dots{}>\n"
 msgstr "@result{} #<derivation /gnu/store/@dots{}-goo.drv => @dots{}>\n"
 
 #. type: cindex
-#: doc/guix.texi:6644
+#: doc/guix.texi:8787
 #, no-wrap
 msgid "monad"
 msgstr "monad"
 
 #. type: Plain text
-#: doc/guix.texi:6650
+#: doc/guix.texi:8793
 msgid "The procedures that operate on the store described in the previous sections all take an open connection to the build daemon as their first argument.  Although the underlying model is functional, they either have side effects or depend on the current state of the store."
 msgstr "Les procédures qui travaillent sur le dépôt décrites dans les sections précédentes prennent toutes une connexion ouverte au démon de construction comme premier argument.  Bien que le modèle sous-jacent soit fonctionnel, elles ont soit des effets de bord, soit dépendent de l'état actuel du dépôt."
 
 #. type: Plain text
-#: doc/guix.texi:6656
+#: doc/guix.texi:8799
 msgid "The former is inconvenient: the connection to the build daemon has to be carried around in all those functions, making it impossible to compose functions that do not take that parameter with functions that do.  The latter can be problematic: since store operations have side effects and/or depend on external state, they have to be properly sequenced."
 msgstr "Le premier point est embêtant : on doit se balader avec la connexion au démon dans toutes ces fonctions, ce qui rend impossible le fait de composer des fonctions qui ne prennent pas ce paramètre avec des fonctions qui le prennent.  Le deuxième point est problématique : comme les opérations sur le dépôt ont des effets de bord ou dépendent d'états externes, elles doivent être enchaînés correctement."
 
 #. type: cindex
-#: doc/guix.texi:6657
+#: doc/guix.texi:8800
 #, no-wrap
 msgid "monadic values"
 msgstr "valeurs monadiques"
 
 #. type: cindex
-#: doc/guix.texi:6658
+#: doc/guix.texi:8801
 #, no-wrap
 msgid "monadic functions"
 msgstr "fonctions monadiques"
 
 #. type: Plain text
-#: doc/guix.texi:6668
+#: doc/guix.texi:8811
 msgid "This is where the @code{(guix monads)} module comes in.  This module provides a framework for working with @dfn{monads}, and a particularly useful monad for our uses, the @dfn{store monad}.  Monads are a construct that allows two things: associating ``context'' with values (in our case, the context is the store), and building sequences of computations (here computations include accesses to the store).  Values in a monad---values that carry this additional context---are called @dfn{monadic values}; procedures that return such values are called @dfn{monadic procedures}."
 msgstr "C'est là que le module @code{(guix monads)} arrive à la rescousse.  Ce module fournit un cadre pour travailler avec des @dfn{monads}, en particulier une monade très utile pour notre usage, la @dfn{monade du dépôt}.  Les monades sont des constructions qui permettent deux choses : associer un « contexte » avec une valeur (dans notre cas, le contexte est le dépôt) et construire une séquence de calculs (ici les calculs comprennent des accès au dépôt).  Les valeurs dans une monade — les valeurs qui contiennent ce contexte supplémentaire — sont appelées des @dfn{valeurs monadiques} ; les procédures qui renvoient ce genre de valeur sont appelées des @dfn{procédures monadiques}."
 
 #. type: Plain text
-#: doc/guix.texi:6670
+#: doc/guix.texi:8813
 msgid "Consider this ``normal'' procedure:"
 msgstr "Considérez cette procédure « normale » :"
 
-#. type: example
-#: doc/guix.texi:6679
+#. type: lisp
+#: doc/guix.texi:8822
 #, no-wrap
 msgid ""
 "(define (sh-symlink store)\n"
@@ -12741,12 +16817,12 @@ msgstr ""
 "                                  `(symlink ,sh %output))))\n"
 
 #. type: Plain text
-#: doc/guix.texi:6683
+#: doc/guix.texi:8826
 msgid "Using @code{(guix monads)} and @code{(guix gexp)}, it may be rewritten as a monadic function:"
 msgstr "En utilisant @code{(guix monads)} et @code{(guix gexp)}, on peut la réécrire en une fonction monadique :"
 
-#. type: example
-#: doc/guix.texi:6691
+#. type: lisp
+#: doc/guix.texi:8834
 #, no-wrap
 msgid ""
 "(define (sh-symlink)\n"
@@ -12764,17 +16840,17 @@ msgstr ""
 "                                 #$output))))\n"
 
 #. type: Plain text
-#: doc/guix.texi:6698
+#: doc/guix.texi:8841
 msgid "There are several things to note in the second version: the @code{store} parameter is now implicit and is ``threaded'' in the calls to the @code{package->derivation} and @code{gexp->derivation} monadic procedures, and the monadic value returned by @code{package->derivation} is @dfn{bound} using @code{mlet} instead of plain @code{let}."
 msgstr "Il y a plusieurs choses à remarquer avec cette deuxième version : le paramètre @code{store} est maintenant implicitement « enfilé » dans les appels aux procédures monadiques @code{package->derivation} et @code{gexp->derivation}, et la valeur monadique renvoyée par @code{package->derivation} est @dfn{liée} avec @code{mlet} plutôt qu'avec un simple @code{let}."
 
 #. type: Plain text
-#: doc/guix.texi:6702
+#: doc/guix.texi:8845
 msgid "As it turns out, the call to @code{package->derivation} can even be omitted since it will take place implicitly, as we will see later (@pxref{G-Expressions}):"
 msgstr "Il se trouve que l'appel à @code{package->derivation} peut même être omis puisqu'il aura lieu implicitement, comme nous le verrons plus tard (@pxref{G-Expressions}) :"
 
-#. type: example
-#: doc/guix.texi:6708
+#. type: lisp
+#: doc/guix.texi:8851
 #, no-wrap
 msgid ""
 "(define (sh-symlink)\n"
@@ -12788,12 +16864,12 @@ msgstr ""
 "                               #$output)))\n"
 
 #. type: Plain text
-#: doc/guix.texi:6717
+#: doc/guix.texi:8860
 msgid "Calling the monadic @code{sh-symlink} has no effect.  As someone once said, ``you exit a monad like you exit a building on fire: by running''.  So, to exit the monad and get the desired effect, one must use @code{run-with-store}:"
-msgstr "L'appel à la procédure monadique @code{sh-symlink} n'a aucun effet.  Comme on pourrait le dire, « on sort d'une monade comme de la monarchie : en l'exécutant »@footnote{NdT : il y a là un jeu de mot en anglais qui se base sur un double sens de « run », qui peut se traduire par « exécuter » dans ce contexte.}. Donc, pour sortir de la monade et obtenir l'effet escompté, on doit utiliser @code{run-with-store}."
+msgstr "L'appel à la procédure monadique @code{sh-symlink} n'a aucun effet.  Comme on pourrait le dire, « on sort d'une monade comme de la monarchie : en l'exécutant »@footnote{NdT : il y a là un jeu de mot en anglais qui se base sur un double sens de « run », qui peut se traduire par « exécuter » dans ce contexte.}. Donc, pour sortir de la monade et obtenir l'effet escompté, on doit utiliser @code{run-with-store} :"
 
-#. type: example
-#: doc/guix.texi:6721
+#. type: lisp
+#: doc/guix.texi:8864
 #, no-wrap
 msgid ""
 "(run-with-store (open-connection) (sh-symlink))\n"
@@ -12803,12 +16879,12 @@ msgstr ""
 "@result{} /gnu/store/...-sh-symlink\n"
 
 #. type: Plain text
-#: doc/guix.texi:6727
+#: doc/guix.texi:8870
 msgid "Note that the @code{(guix monad-repl)} module extends the Guile REPL with new ``meta-commands'' to make it easier to deal with monadic procedures: @code{run-in-store}, and @code{enter-store-monad}.  The former is used to ``run'' a single monadic value through the store:"
 msgstr "Remarquez que le module @code{(guix monad-repl)} étend la console Guile avec de nouvelles « méta-commandes » pour rendre plus facile la manipulation de procédures monadiques : @code{run-in-store} et @code{enter-store-monad}.  La première est utilisée pour « lancer » une seule valeur monadique à travers le dépôt :"
 
 #. type: example
-#: doc/guix.texi:6731
+#: doc/guix.texi:8874
 #, no-wrap
 msgid ""
 "scheme@@(guile-user)> ,run-in-store (package->derivation hello)\n"
@@ -12818,12 +16894,12 @@ msgstr ""
 "$1 = #<derivation /gnu/store/@dots{}-hello-2.9.drv => @dots{}>\n"
 
 #. type: Plain text
-#: doc/guix.texi:6735
+#: doc/guix.texi:8878
 msgid "The latter enters a recursive REPL, where all the return values are automatically run through the store:"
 msgstr "La deuxième entre dans une console récursive, où toutes les valeurs de retour sont automatiquement lancées à travers le dépôt :"
 
 #. type: example
-#: doc/guix.texi:6744
+#: doc/guix.texi:8887
 #, no-wrap
 msgid ""
 "scheme@@(guile-user)> ,enter-store-monad\n"
@@ -12843,50 +16919,50 @@ msgstr ""
 "scheme@@(guile-user)>\n"
 
 #. type: Plain text
-#: doc/guix.texi:6749
+#: doc/guix.texi:8892
 msgid "Note that non-monadic values cannot be returned in the @code{store-monad} REPL."
 msgstr "Remarquez qu'on ne peut pas renvoyer de valeur non monadique dans la console @code{store-monad}."
 
 #. type: Plain text
-#: doc/guix.texi:6752
+#: doc/guix.texi:8895
 msgid "The main syntactic forms to deal with monads in general are provided by the @code{(guix monads)} module and are described below."
 msgstr "Les formes syntaxiques principales pour utiliser des monades en général sont disponibles dans le module @code{(guix monads)} et sont décrites ci-dessous."
 
 #. type: deffn
-#: doc/guix.texi:6753
+#: doc/guix.texi:8896
 #, no-wrap
 msgid "{Scheme Syntax} with-monad @var{monad} @var{body} ..."
 msgstr "{Syntaxe Scheme} with-monad @var{monad} @var{body} ..."
 
 #. type: deffn
-#: doc/guix.texi:6756
+#: doc/guix.texi:8899
 msgid "Evaluate any @code{>>=} or @code{return} forms in @var{body} as being in @var{monad}."
 msgstr "Évalue n'importe quelle forme @code{>>=} ou @code{return} dans @var{body} comme une @var{monad}."
 
 #. type: deffn
-#: doc/guix.texi:6758
+#: doc/guix.texi:8901
 #, no-wrap
 msgid "{Scheme Syntax} return @var{val}"
 msgstr "{Syntaxe Scheme} return @var{val}"
 
 #. type: deffn
-#: doc/guix.texi:6760
+#: doc/guix.texi:8903
 msgid "Return a monadic value that encapsulates @var{val}."
 msgstr "Renvoie une valeur monadique qui encapsule @var{val}."
 
 #. type: deffn
-#: doc/guix.texi:6762
+#: doc/guix.texi:8905
 #, no-wrap
 msgid "{Scheme Syntax} >>= @var{mval} @var{mproc} ..."
 msgstr "{Syntaxe Scheme} >>= @var{mval} @var{mproc} ..."
 
 #. type: deffn
-#: doc/guix.texi:6769
+#: doc/guix.texi:8912
 msgid "@dfn{Bind} monadic value @var{mval}, passing its ``contents'' to monadic procedures @var{mproc}@dots{}@footnote{This operation is commonly referred to as ``bind'', but that name denotes an unrelated procedure in Guile.  Thus we use this somewhat cryptic symbol inherited from the Haskell language.}.  There can be one @var{mproc} or several of them, as in this example:"
 msgstr "@dfn{Lie} une valeur monadique @var{mval}, en passant son « contenu » aux procédures monadiques @var{mproc}@dots{}@footnote{Cette opération est souvent appelée « bind », mais ce nom dénote une procédure qui n'a rien à voir en Guile.  Ainsi, nous empruntons ce symbole quelque peu cryptique au langage Haskell}.  Il peut y avoir une ou plusieurs @code{mproc}, comme dans cet exemple :"
 
-#. type: example
-#: doc/guix.texi:6777
+#. type: lisp
+#: doc/guix.texi:8920
 #, no-wrap
 msgid ""
 "(run-with-state\n"
@@ -12905,8 +16981,8 @@ msgstr ""
 "  'some-state)\n"
 "\n"
 
-#. type: example
-#: doc/guix.texi:6780
+#. type: lisp
+#: doc/guix.texi:8923
 #, no-wrap
 msgid ""
 "@result{} 4\n"
@@ -12916,101 +16992,101 @@ msgstr ""
 "@result{} some-state\n"
 
 #. type: deffn
-#: doc/guix.texi:6783
+#: doc/guix.texi:8926
 #, no-wrap
 msgid "{Scheme Syntax} mlet @var{monad} ((@var{var} @var{mval}) ...) @"
 msgstr "{Syntaxe Scheme} mlet @var{monad} ((@var{var} @var{mval}) ...) @"
 
 #. type: deffn
-#: doc/guix.texi:6785
+#: doc/guix.texi:8928
 msgid "@var{body} ..."
 msgstr "@var{body} ..."
 
 #. type: deffnx
-#: doc/guix.texi:6785
+#: doc/guix.texi:8928
 #, no-wrap
 msgid "{Scheme Syntax} mlet* @var{monad} ((@var{var} @var{mval}) ...) @"
 msgstr "{Syntaxe Scheme} mlet* @var{monad} ((@var{var} @var{mval}) ...) @"
 
 #. type: deffn
-#: doc/guix.texi:6797
+#: doc/guix.texi:8940
 msgid "@var{body} ...  Bind the variables @var{var} to the monadic values @var{mval} in @var{body}, which is a sequence of expressions.  As with the bind operator, this can be thought of as ``unpacking'' the raw, non-monadic value ``contained'' in @var{mval} and making @var{var} refer to that raw, non-monadic value within the scope of the @var{body}.  The form (@var{var} -> @var{val}) binds @var{var} to the ``normal'' value @var{val}, as per @code{let}.  The binding operations occur in sequence from left to right.  The last expression of @var{body} must be a monadic expression, and its result will become the result of the @code{mlet} or @code{mlet*} when run in the @var{monad}."
 msgstr ""
 "@var{body} ...\n"
 "Lie les variables @var{var} aux valeurs monadiques @var{mval} dans @var{body}, une séquence d'expressions.  Comme avec l'opérateur de liaison, on peut réfléchir comme si on « ouvrait » la valeur non-monadique « contenue » dans @var{mval} et comme si on faisait en sorte que @var{var} se réfère à cette valeur pure, non-monadique, dans la portée de @var{body}.  La forme (@var{var} -> @var{val}) lie @var{var} à la valeur « normale » @var{val}, comme @code{let}.  L'opération de liaison a lieu en séquence de la gauche vers la droite.  La dernière expression de @var{body} doit être une expression monadique et son résultat deviendra le résultat de @code{mlet} ou @code{mlet*} lorsque lancé dans la @var{monad}."
 
 #. type: deffn
-#: doc/guix.texi:6800
+#: doc/guix.texi:8943
 msgid "@code{mlet*} is to @code{mlet} what @code{let*} is to @code{let} (@pxref{Local Bindings,,, guile, GNU Guile Reference Manual})."
 msgstr "@code{mlet*} est à @code{mlet} ce que @code{let*} est à @code{let} (@pxref{Local Bindings,,, guile, GNU Guile Reference Manual})."
 
 #. type: deffn
-#: doc/guix.texi:6802
+#: doc/guix.texi:8945
 #, no-wrap
 msgid "{Scheme System} mbegin @var{monad} @var{mexp} ..."
 msgstr "{Système Scheme} mbegin @var{monad} @var{mexp} ..."
 
 #. type: deffn
-#: doc/guix.texi:6806
+#: doc/guix.texi:8949
 msgid "Bind @var{mexp} and the following monadic expressions in sequence, returning the result of the last expression.  Every expression in the sequence must be a monadic expression."
 msgstr "Lie @var{mexp} et les expressions monadiques suivantes en séquence, et renvoie le résultat de la dernière expression.  Chaque expression dans la séquence doit être une expression monadique."
 
 #. type: deffn
-#: doc/guix.texi:6810
+#: doc/guix.texi:8953
 msgid "This is akin to @code{mlet}, except that the return values of the monadic expressions are ignored.  In that sense, it is analogous to @code{begin}, but applied to monadic expressions."
 msgstr "Cette procédure est similaire à @code{mlet}, sauf que les valeurs de retour des expressions monadiques sont ignorées.  Dans ce sens, elle est analogue à @code{begin}, mais appliqué à des expressions monadiques."
 
 #. type: deffn
-#: doc/guix.texi:6812
+#: doc/guix.texi:8955
 #, no-wrap
 msgid "{Scheme System} mwhen @var{condition} @var{mexp0} @var{mexp*} ..."
 msgstr "{Système Scheme} mwhen @var{condition} @var{mexp0} @var{mexp*} ..."
 
 #. type: deffn
-#: doc/guix.texi:6817
+#: doc/guix.texi:8960
 msgid "When @var{condition} is true, evaluate the sequence of monadic expressions @var{mexp0}..@var{mexp*} as in an @code{mbegin}.  When @var{condition} is false, return @code{*unspecified*} in the current monad.  Every expression in the sequence must be a monadic expression."
 msgstr "Lorsque la @var{condition} est vraie, évalue la séquence des expressions monadiques @var{mexp0}..@var{mexp*} comme dans un @code{mbegin}.  Lorsque la @var{condition} est fausse, renvoie @code{*unspecified*} dans la monade actuelle.  Chaque expression dans la séquence doit être une expression monadique."
 
 #. type: deffn
-#: doc/guix.texi:6819
+#: doc/guix.texi:8962
 #, no-wrap
 msgid "{Scheme System} munless @var{condition} @var{mexp0} @var{mexp*} ..."
 msgstr "{Système Scheme} munless @var{condition} @var{mexp0} @var{mexp*} ..."
 
 #. type: deffn
-#: doc/guix.texi:6824
+#: doc/guix.texi:8967
 msgid "When @var{condition} is false, evaluate the sequence of monadic expressions @var{mexp0}..@var{mexp*} as in an @code{mbegin}.  When @var{condition} is true, return @code{*unspecified*} in the current monad.  Every expression in the sequence must be a monadic expression."
 msgstr "Lorsque la @var{condition} est fausse, évalue la séquence des expressions monadiques @var{mexp0}..@var{mexp*} comme dans un @code{mbegin}.  Lorsque la @var{condition} est vraie, renvoie @code{*unspecified*} dans la monade actuelle.  Chaque expression dans la séquence doit être une expression monadique."
 
 #. type: cindex
-#: doc/guix.texi:6826
+#: doc/guix.texi:8969
 #, no-wrap
 msgid "state monad"
 msgstr "monade d'état"
 
 #. type: Plain text
-#: doc/guix.texi:6830
+#: doc/guix.texi:8973
 msgid "The @code{(guix monads)} module provides the @dfn{state monad}, which allows an additional value---the state---to be @emph{threaded} through monadic procedure calls."
 msgstr "Le module @code{(guix monads)} fournit la @dfn{monade d'état} qui permet à une valeur supplémentaire — l'état — d'être enfilée à travers les appels de procédures."
 
 #. type: defvr
-#: doc/guix.texi:6831
+#: doc/guix.texi:8974
 #, no-wrap
 msgid "{Scheme Variable} %state-monad"
 msgstr "{Variable Scheme} %state-monad"
 
 #. type: defvr
-#: doc/guix.texi:6834
+#: doc/guix.texi:8977
 msgid "The state monad.  Procedures in the state monad can access and change the state that is threaded."
 msgstr "La monade d'état.  les procédure dans la monade d'état peuvent accéder et modifier l'état qui est enfilé."
 
 #. type: defvr
-#: doc/guix.texi:6838
+#: doc/guix.texi:8981
 msgid "Consider the example below.  The @code{square} procedure returns a value in the state monad.  It returns the square of its argument, but also increments the current state value:"
 msgstr "Considérez l'exemple ci-dessous.  La procédure @code{square} renvoie une valeur dans la monade d'état.  Elle renvoie le carré de son argument, mais incrémente aussi la valeur actuelle de l'état :"
 
-#. type: example
-#: doc/guix.texi:6845
+#. type: lisp
+#: doc/guix.texi:8988
 #, no-wrap
 msgid ""
 "(define (square x)\n"
@@ -13027,8 +17103,8 @@ msgstr ""
 "      (return (* x x)))))\n"
 "\n"
 
-#. type: example
-#: doc/guix.texi:6849
+#. type: lisp
+#: doc/guix.texi:8992
 #, no-wrap
 msgid ""
 "(run-with-state (sequence %state-monad (map square (iota 3))) 0)\n"
@@ -13040,149 +17116,149 @@ msgstr ""
 "@result{} 3\n"
 
 #. type: defvr
-#: doc/guix.texi:6853
-msgid "When ``run'' through @var{%state-monad}, we obtain that additional state value, which is the number of @code{square} calls."
-msgstr "Lorsqu'on la lance à travers @var{%state-monad}, on obtient cet valeur d'état supplémentaire, qui est le nombre d'appels à @code{square}."
+#: doc/guix.texi:8996
+msgid "When ``run'' through @code{%state-monad}, we obtain that additional state value, which is the number of @code{square} calls."
+msgstr "Lorsque c'est « lancé » à travers @code{%state-monad}, nous obtenons cette valeur d'état supplémentaire, qui est le nombre d'appels au @code{square}."
 
 #. type: deffn
-#: doc/guix.texi:6855
+#: doc/guix.texi:8998
 #, no-wrap
 msgid "{Monadic Procedure} current-state"
 msgstr "{Procédure monadique} current-state"
 
 #. type: deffn
-#: doc/guix.texi:6857
+#: doc/guix.texi:9000
 msgid "Return the current state as a monadic value."
 msgstr "Renvoie l'état actuel dans une valeur monadique."
 
 #. type: deffn
-#: doc/guix.texi:6859
+#: doc/guix.texi:9002
 #, no-wrap
 msgid "{Monadic Procedure} set-current-state @var{value}"
 msgstr "{Procédure monadique} set-current-state @var{value}"
 
 #. type: deffn
-#: doc/guix.texi:6862
+#: doc/guix.texi:9005
 msgid "Set the current state to @var{value} and return the previous state as a monadic value."
 msgstr "Initialise l'état actuel à @var{value} et renvoie l'état précédent dans une valeur monadique."
 
 #. type: deffn
-#: doc/guix.texi:6864
+#: doc/guix.texi:9007
 #, no-wrap
 msgid "{Monadic Procedure} state-push @var{value}"
 msgstr "{Procédure monadique} state-push @var{value}"
 
 #. type: deffn
-#: doc/guix.texi:6867
+#: doc/guix.texi:9010
 msgid "Push @var{value} to the current state, which is assumed to be a list, and return the previous state as a monadic value."
 msgstr "Pousse @var{value} sur l'état actuel, qui est supposé être une liste, et renvoie l'état précédent dans une valeur monadique."
 
 #. type: deffn
-#: doc/guix.texi:6869
+#: doc/guix.texi:9012
 #, no-wrap
 msgid "{Monadic Procedure} state-pop"
 msgstr "{Procédure monadique} state-pop"
 
 #. type: deffn
-#: doc/guix.texi:6872
+#: doc/guix.texi:9015
 msgid "Pop a value from the current state and return it as a monadic value.  The state is assumed to be a list."
 msgstr "Récupère (pop) une valeur dans l'état actuel et la renvoie comme une valeur monadique.  L'état est supposé être une liste."
 
 #. type: deffn
-#: doc/guix.texi:6874
+#: doc/guix.texi:9017
 #, no-wrap
 msgid "{Scheme Procedure} run-with-state @var{mval} [@var{state}]"
 msgstr "{Procédure Scheme} run-with-state @var{mval} [@var{state}]"
 
 #. type: deffn
-#: doc/guix.texi:6877
+#: doc/guix.texi:9020
 msgid "Run monadic value @var{mval} starting with @var{state} as the initial state.  Return two values: the resulting value, and the resulting state."
 msgstr "Lance la valeur monadique @var{mval} avec @var{state} comme valeur initiale.  Renvoie deux valeurs : la valeur du résultat et l'état du résultat."
 
 #. type: Plain text
-#: doc/guix.texi:6881
+#: doc/guix.texi:9024
 msgid "The main interface to the store monad, provided by the @code{(guix store)} module, is as follows."
 msgstr "L'interface principale avec la monade du dépôt, fournit par le module @code{(guix store)}, est la suivante."
 
 #. type: defvr
-#: doc/guix.texi:6882
+#: doc/guix.texi:9025
 #, no-wrap
 msgid "{Scheme Variable} %store-monad"
 msgstr "{Variable Scheme} %store-monad"
 
 #. type: defvr
-#: doc/guix.texi:6884
-msgid "The store monad---an alias for @var{%state-monad}."
-msgstr "La monade du dépôt — un alias pour @var{%state-monad}."
+#: doc/guix.texi:9027
+msgid "The store monad---an alias for @code{%state-monad}."
+msgstr "La monade du dépôt — un alias pour @code{%state-monad}."
 
 #. type: defvr
-#: doc/guix.texi:6888
-msgid "Values in the store monad encapsulate accesses to the store.  When its effect is needed, a value of the store monad must be ``evaluated'' by passing it to the @code{run-with-store} procedure (see below.)"
-msgstr "Les valeurs dans la monade du dépôt encapsulent des accès au dépôt.  Lorsque son effet est requis, une valeur de la monade du dépôt doit être « évaluée » en la passant à la procédure @code{run-with-store} (voir plus bas)."
+#: doc/guix.texi:9031
+msgid "Values in the store monad encapsulate accesses to the store.  When its effect is needed, a value of the store monad must be ``evaluated'' by passing it to the @code{run-with-store} procedure (see below)."
+msgstr "Les valeurs dans la monade du dépôt encapsulent les accès vers le dépôt.  Lorsque son effet est nécessaire, une valeur de la monade du dépôt doit être « évaluée » en la passant à la procédure @code{run-with-store} (voir ci-dessous)."
 
 #. type: deffn
-#: doc/guix.texi:6890
+#: doc/guix.texi:9033
 #, no-wrap
 msgid "{Scheme Procedure} run-with-store @var{store} @var{mval} [#:guile-for-build] [#:system (%current-system)]"
 msgstr "{Procédure Scheme} run-with-store @var{store} @var{mval} [#:guile-for-build] [#:system (%current-system)]"
 
 #. type: deffn
-#: doc/guix.texi:6893
+#: doc/guix.texi:9036
 msgid "Run @var{mval}, a monadic value in the store monad, in @var{store}, an open store connection."
 msgstr "Lance @var{mval}, une valeur monadique dans la monade du dépôt, dans @var{store}, une connexion ouvert au dépôt."
 
 #. type: deffn
-#: doc/guix.texi:6895
+#: doc/guix.texi:9038
 #, no-wrap
 msgid "{Monadic Procedure} text-file @var{name} @var{text} [@var{references}]"
 msgstr "{Procédure monadique} text-file @var{name} @var{text} [@var{references}]"
 
 #. type: deffn
-#: doc/guix.texi:6899
+#: doc/guix.texi:9042
 msgid "Return as a monadic value the absolute file name in the store of the file containing @var{text}, a string.  @var{references} is a list of store items that the resulting text file refers to; it defaults to the empty list."
 msgstr "Renvoie une valeur monadique correspondant au nom de fichier dans le dépôt du fichier contenant @var{text}, une chaîne de caractères.  @var{references} est une liste d'éléments du dépôt auxquels le fichier texte en résultat se réfère ; c'est la liste vide par défaut."
 
 #. type: deffn
-#: doc/guix.texi:6901
+#: doc/guix.texi:9044
 #, no-wrap
 msgid "{Monadic Procedure} binary-file @var{name} @var{data} [@var{references}]"
 msgstr "{Procédure monadique} binary-file @var{name} @var{data} [@var{references}]"
 
 #. type: deffn
-#: doc/guix.texi:6905
+#: doc/guix.texi:9048
 msgid "Return as a monadic value the absolute file name in the store of the file containing @var{data}, a bytevector.  @var{references} is a list of store items that the resulting binary file refers to; it defaults to the empty list."
 msgstr "Renvoie une valeur monadique correspondant au nom de fichier absolu dans le dépôt du fichier contenant @var{data}, un vecteur d'octets.  @var{references} est une liste d'éléments du dépôt auxquels le fichier binaire en résultat se réfère ; c'est la liste vide par défaut."
 
 #. type: deffn
-#: doc/guix.texi:6907
+#: doc/guix.texi:9050
 #, no-wrap
 msgid "{Monadic Procedure} interned-file @var{file} [@var{name}] @"
 msgstr "{Procédure monadique} interned-file @var{file} [@var{name}] @"
 
 #. type: deffn
-#: doc/guix.texi:6912
+#: doc/guix.texi:9055
 msgid "[#:recursive? #t] [#:select? (const #t)] Return the name of @var{file} once interned in the store.  Use @var{name} as its store name, or the basename of @var{file} if @var{name} is omitted."
 msgstr ""
 "[#:recursive? #t] [#:select? (const #t)]\n"
 "Renvoie le nom de @var{file} une fois ajouté au dépôt.  Utilise @var{name} comme nom dans le dépôt ou le nom de fichier de @var{file} si @var{name} est omis."
 
 #. type: deffn
-#: doc/guix.texi:6916 doc/guix.texi:7329
+#: doc/guix.texi:9059 doc/guix.texi:9482
 msgid "When @var{recursive?} is true, the contents of @var{file} are added recursively; if @var{file} designates a flat file and @var{recursive?} is true, its contents are added, and its permission bits are kept."
 msgstr "Lorsque @var{recursive?} est vraie, le contenu de @var{file} est ajouté récursivement ; si @var{file} désigne un fichier simple et que @var{recursive?} est vrai, son contenu est ajouté et ses bits de permissions sont préservés."
 
 #. type: deffn
-#: doc/guix.texi:6921 doc/guix.texi:7334
+#: doc/guix.texi:9064 doc/guix.texi:9487
 msgid "When @var{recursive?} is true, call @code{(@var{select?} @var{file} @var{stat})} for each directory entry, where @var{file} is the entry's absolute file name and @var{stat} is the result of @code{lstat}; exclude entries for which @var{select?} does not return true."
 msgstr "Lorsque @var{recursive?} est vraie, appelle @code{(@var{select?} @var{file} @var{stat})} pour chaque répertoire où @var{file} est le nom de fichier absolu de l'entrée et @var{stat} est le résultat de @code{lstat} ; à l'exception des entrées pour lesquelles @var{select?} ne renvoie pas vrai."
 
 #. type: deffn
-#: doc/guix.texi:6923
+#: doc/guix.texi:9066
 msgid "The example below adds a file to the store, under two different names:"
 msgstr "L'exemple ci-dessous ajoute un fichier au dépôt, sous deux noms différents :"
 
-#. type: example
-#: doc/guix.texi:6929
+#. type: lisp
+#: doc/guix.texi:9072
 #, no-wrap
 msgid ""
 "(run-with-store (open-connection)\n"
@@ -13197,25 +17273,25 @@ msgstr ""
 "    (return (list a b))))\n"
 "\n"
 
-#. type: example
-#: doc/guix.texi:6931
+#. type: lisp
+#: doc/guix.texi:9074
 #, no-wrap
 msgid "@result{} (\"/gnu/store/rwm@dots{}-README\" \"/gnu/store/44i@dots{}-LEGU-MIN\")\n"
 msgstr "@result{} (\"/gnu/store/rwm@dots{}-README\" \"/gnu/store/44i@dots{}-LEGU-MIN\")\n"
 
 #. type: Plain text
-#: doc/guix.texi:6937
+#: doc/guix.texi:9080
 msgid "The @code{(guix packages)} module exports the following package-related monadic procedures:"
 msgstr "Le module @code{(guix packages)} exporte les procédures monadiques liées aux paquets suivantes :"
 
 #. type: deffn
-#: doc/guix.texi:6938
+#: doc/guix.texi:9081
 #, no-wrap
 msgid "{Monadic Procedure} package-file @var{package} [@var{file}] @"
 msgstr "{Procédure monadique} package-file @var{package} [@var{file}] @"
 
 #. type: deffn
-#: doc/guix.texi:6946
+#: doc/guix.texi:9089
 msgid "[#:system (%current-system)] [#:target #f] @ [#:output \"out\"] Return as a monadic value in the absolute file name of @var{file} within the @var{output} directory of @var{package}.  When @var{file} is omitted, return the name of the @var{output} directory of @var{package}.  When @var{target} is true, use it as a cross-compilation target triplet."
 msgstr ""
 "[#:system (%current-system)] [#:target #f] @\n"
@@ -13223,95 +17299,100 @@ msgstr ""
 "Renvoie une valeur monadique qui contient le nom de fichier absolu de @var{file} dans le répertoire @var{output} de @var{package}.  Lorsque @var{file} est omis, renvoie le nom du répertoire @var{output} de @var{package}.  Lorsque @var{target} est vrai, l'utilise comme un triplet de cible pour la compilation croisée."
 
 #. type: deffn
-#: doc/guix.texi:6948
+#: doc/guix.texi:9093
+msgid "Note that this procedure does @emph{not} build @var{package}.  Thus, the result might or might not designate an existing file.  We recommend not using this procedure unless you know what you are doing."
+msgstr "Notez que cette procédure ne permet @emph{pas} de construire @var{package}.  Ainsi, le résultat peut ou non désigner un fichier existant.  Nous vous recommandons de ne pas utiliser cette procédure si vous ne savez pas ce que vous faites."
+
+#. type: deffn
+#: doc/guix.texi:9095
 #, no-wrap
 msgid "{Monadic Procedure} package->derivation @var{package} [@var{system}]"
 msgstr "{Procédure monadique} package->derivation @var{package} [@var{system}]"
 
 #. type: deffnx
-#: doc/guix.texi:6949
+#: doc/guix.texi:9096
 #, no-wrap
 msgid "{Monadic Procedure} package->cross-derivation @var{package} @"
 msgstr "{Procédure monadique} package->cross-derivation @var{package} @"
 
 #. type: deffn
-#: doc/guix.texi:6953
+#: doc/guix.texi:9100
 msgid "@var{target} [@var{system}] Monadic version of @code{package-derivation} and @code{package-cross-derivation} (@pxref{Defining Packages})."
 msgstr ""
 "@var{target} [@var{system}]\n"
 "Version monadique de @code{package-derivation} et @code{package-cross-derivation} (@pxref{Defining Packages})."
 
 #. type: cindex
-#: doc/guix.texi:6959
+#: doc/guix.texi:9106
 #, no-wrap
 msgid "G-expression"
 msgstr "G-expression"
 
 #. type: cindex
-#: doc/guix.texi:6960
+#: doc/guix.texi:9107
 #, no-wrap
 msgid "build code quoting"
 msgstr "quoting du code de construction"
 
 #. type: Plain text
-#: doc/guix.texi:6966
+#: doc/guix.texi:9113
 msgid "So we have ``derivations'', which represent a sequence of build actions to be performed to produce an item in the store (@pxref{Derivations}).  These build actions are performed when asking the daemon to actually build the derivations; they are run by the daemon in a container (@pxref{Invoking guix-daemon})."
 msgstr "On a donc des « dérivations » qui représentent une séquence d'actions de construction à effectuer pour produire un élément du dépôt (@pxref{Derivations}).  Ces actions de construction sont effectuées lorsqu'on demande au démon de construire effectivement les dérivations ; elles sont lancées par le démon dans un conteneur (@pxref{Invoking guix-daemon})."
 
 #. type: cindex
-#: doc/guix.texi:6967
+#: doc/guix.texi:9116
 #, no-wrap
 msgid "strata of code"
 msgstr "strate de code"
 
 #. type: Plain text
-#: doc/guix.texi:6979
-msgid "It should come as no surprise that we like to write these build actions in Scheme.  When we do that, we end up with two @dfn{strata} of Scheme code@footnote{The term @dfn{stratum} in this context was coined by Manuel Serrano et al.@: in the context of their work on Hop.  Oleg Kiselyov, who has written insightful @url{http://okmij.org/ftp/meta-programming/#meta-scheme, essays and code on this topic}, refers to this kind of code generation as @dfn{staging}.}: the ``host code''---code that defines packages, talks to the daemon, etc.---and the ``build code''---code that actually performs build actions, such as making directories, invoking @command{make}, etc."
-msgstr "Ça ne devrait pas vous surprendre, mais nous aimons écrire ces actions de construction en Scheme.  Lorsqu'on fait ça, on fini avec deux @dfn{strates} de code Scheme@footnote{Le terme @dfn{strate} dans ce contexte a été inventé par Manuel Serrano et ses collaborateurs dans le contexte de leur travaux sur Hop.  Oleg Kiselyov, qui a écrit des @url{http://okmij.org/ftp/meta-programming/#meta-scheme, essais perspicaces et du code sur le sujet}, utilise le terme de « mise en scène » pour ce genre de génération de code.} : le « code hôte » — le code qui définit les paquets, parle au démon, etc.@: — et le « code côté construction » — le code qui effectue effectivement les actions de construction, comme créer des répertoires, invoquer @code{make}, etc."
+#: doc/guix.texi:9128
+msgid "It should come as no surprise that we like to write these build actions in Scheme.  When we do that, we end up with two @dfn{strata} of Scheme code@footnote{The term @dfn{stratum} in this context was coined by Manuel Serrano et al.@: in the context of their work on Hop.  Oleg Kiselyov, who has written insightful @url{http://okmij.org/ftp/meta-programming/#meta-scheme, essays and code on this topic}, refers to this kind of code generation as @dfn{staging}.}: the ``host code''---code that defines packages, talks to the daemon, etc.---and the ``build code''---code that actually performs build actions, such as making directories, invoking @command{make}, and so on (@pxref{Build Phases})."
+msgstr "Ça ne devrait pas vous surprendre, mais nous aimons écrire ces actions de construction en Scheme.  Lorsqu'on fait ça, on fini avec deux @dfn{strates} de code Scheme@footnote{Le terme de @dfn{strate} dans ce contexte a été inventé par Manuel Serrano et ses collègues dans le contexte de leurs travaux sur Hop.  Oleg Kiselyov, qui a écrit des @url{http://okmij.org/ftp/meta-programming/#meta-scheme, essais perspicaces ainsi que du code sur le sujet}, utilise le terme de « mise en scène » pour ce genre de génération de code.} : le « code hôte » — le code qui définit les paquets, parle au démon, etc.@: — et le « code côté construction » — le code qui effectue effectivement les actions de construction, comme créer des répertoires, invoquer @code{make}, etc. (@pxref{Build Phases})."
 
 #. type: Plain text
-#: doc/guix.texi:6986
+#: doc/guix.texi:9135
 msgid "To describe a derivation and its build actions, one typically needs to embed build code inside host code.  It boils down to manipulating build code as data, and the homoiconicity of Scheme---code has a direct representation as data---comes in handy for that.  But we need more than the normal @code{quasiquote} mechanism in Scheme to construct build expressions."
 msgstr "Pour décrire une dérivation et ses actions de construction, on a typiquement besoin d'intégrer le code de construction dans le code hôte.  Ça revient à manipuler le code de construction comme de la donnée, et l'homoiconicité de Scheme — le code a une représentation directe en tant que donnée — est très utile pour cela.  Mais on a besoin de plus que le mécanisme de @code{quasiquote} en Scheme pour construire des expressions de construction."
 
 #. type: Plain text
-#: doc/guix.texi:6995
+#: doc/guix.texi:9144
 msgid "The @code{(guix gexp)} module implements @dfn{G-expressions}, a form of S-expressions adapted to build expressions.  G-expressions, or @dfn{gexps}, consist essentially of three syntactic forms: @code{gexp}, @code{ungexp}, and @code{ungexp-splicing} (or simply: @code{#~}, @code{#$}, and @code{#$@@}), which are comparable to @code{quasiquote}, @code{unquote}, and @code{unquote-splicing}, respectively (@pxref{Expression Syntax, @code{quasiquote},, guile, GNU Guile Reference Manual}).  However, there are major differences:"
 msgstr "Le module @code{(guix gexp)} implémente les @dfn{G-expressions}, une forme de S-expression adaptée aux expressions de construction.  Les G-expression, ou @dfn{gexps}, consistent en gros en trois formes syntaxiques : @code{gexp}, @code{ungexp} et @code{ungexp-splicing} (ou plus simplement : @code{#~}, @code{#$} et @code{#$@@}), qui sont comparable à @code{quasiquote}, @code{unquote} et @code{unquote-splicing} respectivement (@pxref{Expression Syntax, @code{quasiquote},, guile, GNU Guile Reference Manual}).  Cependant il y a des différences majeures :"
 
 #. type: itemize
-#: doc/guix.texi:7000
+#: doc/guix.texi:9149
 msgid "Gexps are meant to be written to a file and run or manipulated by other processes."
 msgstr "Les Gexps sont conçues pour être écrites dans un fichier et être lancées ou manipulées par d'autres processus."
 
 #. type: itemize
-#: doc/guix.texi:7005
+#: doc/guix.texi:9154
 msgid "When a high-level object such as a package or derivation is unquoted inside a gexp, the result is as if its output file name had been introduced."
 msgstr "Lorsqu'un objet de haut-niveau comme un paquet ou une dérivation est unquotée dans une gexp, le résultat est comme si le nom de fichier de son résultat avait été introduit."
 
 #. type: itemize
-#: doc/guix.texi:7010
+#: doc/guix.texi:9159
 msgid "Gexps carry information about the packages or derivations they refer to, and these dependencies are automatically added as inputs to the build processes that use them."
 msgstr "Les gexps transportent des informations sur les paquets ou les dérivations auxquels elles se réfèrent, et ces dépendances sont automatiquement ajoutées comme des entrées du processus de construction qui les utilise."
 
 #. type: cindex
-#: doc/guix.texi:7012 doc/guix.texi:7516
+#: doc/guix.texi:9161 doc/guix.texi:9718
 #, no-wrap
 msgid "lowering, of high-level objects in gexps"
-msgstr "abaissement, des objets haut-niveau dans les gepxs"
+msgstr "abaissement, des objets haut-niveau dans les gexps"
 
 #. type: Plain text
-#: doc/guix.texi:7022
-msgid "This mechanism is not limited to package and derivation objects: @dfn{compilers} able to ``lower'' other high-level objects to derivations or files in the store can be defined, such that these objects can also be inserted into gexps.  For example, a useful type of high-level objects that can be inserted in a gexp is ``file-like objects'', which make it easy to add files to the store and to refer to them in derivations and such (see @code{local-file} and @code{plain-file} below.)"
-msgstr "Ce mécanisme n'est pas limité aux paquets et aux dérivations : on peut définir des @dfn{compilateurs} capable « d'abaisser » d'autres objets de haut-niveau ou des fichiers dans le dépôt, pour que ces objets puissent aussi être insérés dans des gexps.  Par exemple, des objets haut-niveau utiles qui pourraient être insérées dans une gexp sont les « objets simili-fichiers », qui rendent facile l'ajout de fichiers dans le dépôt et les références vers eux dans les dérivations et autres (voir @code{local-file} et @code{plain-file} ci-dessous)."
+#: doc/guix.texi:9171
+msgid "This mechanism is not limited to package and derivation objects: @dfn{compilers} able to ``lower'' other high-level objects to derivations or files in the store can be defined, such that these objects can also be inserted into gexps.  For example, a useful type of high-level objects that can be inserted in a gexp is ``file-like objects'', which make it easy to add files to the store and to refer to them in derivations and such (see @code{local-file} and @code{plain-file} below)."
+msgstr "Ce mécanisme n'est pas limité aux paquets et aux objets de dérivation : Des @dfn{compilateurs} capables d' « abaisser » d'autres objets de haut niveau vers des dérivations ou des fichiers dans le dépôt peuvent être définis, de sorte que ces objets peuvent également être insérés dans des gexps.  Par exemple, un type utile d'objets de haut niveau pouvant être insérés dans un gexp est celui des « objets de type fichier », qui permettent d'ajouter facilement des fichiers au dépôt et d'y faire référence dans des dérivations et autres (voir @code{local-file} et @code{plain-file} ci-dessous)."
 
 #. type: Plain text
-#: doc/guix.texi:7024
+#: doc/guix.texi:9173
 msgid "To illustrate the idea, here is an example of a gexp:"
 msgstr "Pour illustrer cette idée, voici un exemple de gexp :"
 
-#. type: example
-#: doc/guix.texi:7032
+#. type: lisp
+#: doc/guix.texi:9181
 #, no-wrap
 msgid ""
 "(define build-exp\n"
@@ -13329,78 +17410,80 @@ msgstr ""
 "               \"list-files\")))\n"
 
 #. type: Plain text
-#: doc/guix.texi:7037
+#: doc/guix.texi:9186
 msgid "This gexp can be passed to @code{gexp->derivation}; we obtain a derivation that builds a directory containing exactly one symlink to @file{/gnu/store/@dots{}-coreutils-8.22/bin/ls}:"
 msgstr "Cette gexp peut être passée à @code{gexp->derivation} ; on obtient une dérivation qui construit une répertoire contenant exactement un lien symbolique à @file{/gnu/store/@dots{}-coreutils-8.22/bin/ls} :"
 
-#. type: example
-#: doc/guix.texi:7040
+#. type: lisp
+#: doc/guix.texi:9189
 #, no-wrap
 msgid "(gexp->derivation \"the-thing\" build-exp)\n"
 msgstr "(gexp->derivation \"the-thing\" build-exp)\n"
 
 #. type: Plain text
-#: doc/guix.texi:7048
+#: doc/guix.texi:9197
 msgid "As one would expect, the @code{\"/gnu/store/@dots{}-coreutils-8.22\"} string is substituted to the reference to the @var{coreutils} package in the actual build code, and @var{coreutils} is automatically made an input to the derivation.  Likewise, @code{#$output} (equivalent to @code{(ungexp output)}) is replaced by a string containing the directory name of the output of the derivation."
 msgstr "Comme on pourrait s'y attendre, la chaîne @code{\"/gnu/store/@dots{}-coreutils-8.22\"} est substituée à la place de la référence au paquet @var{coreutils} dans le code de construction final, et @var{coreutils} est automatiquement devenu une entrée de la dérivation.  De même, @code{#$output} (équivalent à @code{(ungexp output)}) est remplacé par une chaîne de caractères contenant le nom du répertoire de la sortie de la dérivation."
 
 #. type: cindex
-#: doc/guix.texi:7049
+#: doc/guix.texi:9198
 #, no-wrap
 msgid "cross compilation"
 msgstr "compilation croisée"
 
 #. type: Plain text
-#: doc/guix.texi:7055
+#: doc/guix.texi:9204
 msgid "In a cross-compilation context, it is useful to distinguish between references to the @emph{native} build of a package---that can run on the host---versus references to cross builds of a package.  To that end, the @code{#+} plays the same role as @code{#$}, but is a reference to a native package build:"
 msgstr "Dans le contexte d'une compilation croisée, il est utile de distinguer entre des références à la construction @emph{native} d'un paquet — qui peut être lancé par l'hôte — et des références à la construction croisée d'un paquet.  Pour cela, @code{#+} joue le même rôle que @code{#$}, mais référence une construction native d'un paquet :"
 
-#. type: example
-#: doc/guix.texi:7065
+#. type: lisp
+#: doc/guix.texi:9215
 #, no-wrap
 msgid ""
 "(gexp->derivation \"vi\"\n"
 "   #~(begin\n"
 "       (mkdir #$output)\n"
+"       (mkdir (string-append #$output \"/bin\"))\n"
 "       (system* (string-append #+coreutils \"/bin/ln\")\n"
 "                \"-s\"\n"
 "                (string-append #$emacs \"/bin/emacs\")\n"
 "                (string-append #$output \"/bin/vi\")))\n"
-"   #:target \"mips64el-linux-gnu\")\n"
+"   #:target \"aarch64-linux-gnu\")\n"
 msgstr ""
 "(gexp->derivation \"vi\"\n"
 "   #~(begin\n"
 "       (mkdir #$output)\n"
+"       (mkdir (string-append #$output \"/bin\"))\n"
 "       (system* (string-append #+coreutils \"/bin/ln\")\n"
 "                \"-s\"\n"
 "                (string-append #$emacs \"/bin/emacs\")\n"
 "                (string-append #$output \"/bin/vi\")))\n"
-"   #:target \"mips64el-linux-gnu\")\n"
+"   #:target \"aarch64-linux-gnu\")\n"
 
 #. type: Plain text
-#: doc/guix.texi:7071
+#: doc/guix.texi:9221
 msgid "In the example above, the native build of @var{coreutils} is used, so that @command{ln} can actually run on the host; but then the cross-compiled build of @var{emacs} is referenced."
 msgstr "Dans l'exemple ci-dessus, la construction native de @var{coreutils} est utilisée, pour que @command{ln} puisse effectivement être lancé sur l'hôte ; mais ensuite la construction croisée d'@var{emacs} est utilisée."
 
 #. type: cindex
-#: doc/guix.texi:7072
+#: doc/guix.texi:9222
 #, no-wrap
 msgid "imported modules, for gexps"
 msgstr "modules importés, pour les gexps"
 
 #. type: findex
-#: doc/guix.texi:7073
+#: doc/guix.texi:9223
 #, no-wrap
 msgid "with-imported-modules"
 msgstr "with-imported-modules"
 
 #. type: Plain text
-#: doc/guix.texi:7078
+#: doc/guix.texi:9228
 msgid "Another gexp feature is @dfn{imported modules}: sometimes you want to be able to use certain Guile modules from the ``host environment'' in the gexp, so those modules should be imported in the ``build environment''.  The @code{with-imported-modules} form allows you to express that:"
 msgstr "Une autre fonctionnalité, ce sont les @dfn{modules importés} : parfois vous voudriez pouvoir utiliser certains modules Guile de « l'environnement hôte » dans la gexp, donc ces modules devraient être importés dans « l'environnement de construction ».  La forme @code{with-imported-modules} vous permet d'exprimer ça :"
 
-#. type: example
-#: doc/guix.texi:7089
+#. type: lisp
+#: doc/guix.texi:9239
 #, no-wrap
 msgid ""
 "(let ((build (with-imported-modules '((guix build utils))\n"
@@ -13424,29 +17507,29 @@ msgstr ""
 "                        #t)))\n"
 
 #. type: Plain text
-#: doc/guix.texi:7095
+#: doc/guix.texi:9245
 msgid "In this example, the @code{(guix build utils)} module is automatically pulled into the isolated build environment of our gexp, such that @code{(use-modules (guix build utils))} works as expected."
 msgstr "Dans cet exemple, le module @code{(guix build utils)} est automatiquement récupéré dans l'environnement de construction isolé de notre gexp, pour que @code{(use-modules (guix build utils))} fonctionne comme on s'y attendrait."
 
 #. type: cindex
-#: doc/guix.texi:7096
+#: doc/guix.texi:9246
 #, no-wrap
 msgid "module closure"
 msgstr "closure de module"
 
 #. type: findex
-#: doc/guix.texi:7097
+#: doc/guix.texi:9247
 #, no-wrap
 msgid "source-module-closure"
 msgstr "source-module-closure"
 
 #. type: Plain text
-#: doc/guix.texi:7104
+#: doc/guix.texi:9254
 msgid "Usually you want the @emph{closure} of the module to be imported---i.e., the module itself and all the modules it depends on---rather than just the module; failing to do that, attempts to use the module will fail because of missing dependent modules.  The @code{source-module-closure} procedure computes the closure of a module by looking at its source file headers, which comes in handy in this case:"
 msgstr "Typiquement, vous voudriez que la @emph{closure} complète du module soit importé — c.-à-d.@: le module lui-même et tous les modules dont il dépend — plutôt que seulement le module ; sinon, une tentative de chargement du module échouera à cause des modules dépendants manquants.  La procédure @code{source-module-closure} calcule la closure d'un module en cherchant dans ses en-têtes sources, ce qui est pratique dans ce cas :"
 
-#. type: example
-#: doc/guix.texi:7107
+#. type: lisp
+#: doc/guix.texi:9257
 #, no-wrap
 msgid ""
 "(use-modules (guix modules))   ;for 'source-module-closure'\n"
@@ -13455,8 +17538,8 @@ msgstr ""
 "(use-modules (guix modules))   ;pour 'source-module-closure'\n"
 "\n"
 
-#. type: example
-#: doc/guix.texi:7116
+#. type: lisp
+#: doc/guix.texi:9266
 #, no-wrap
 msgid ""
 "(with-imported-modules (source-module-closure\n"
@@ -13478,24 +17561,24 @@ msgstr ""
 "                        @dots{})))\n"
 
 #. type: cindex
-#: doc/guix.texi:7118
+#: doc/guix.texi:9268
 #, no-wrap
 msgid "extensions, for gexps"
 msgstr "extensions, des gexps"
 
 #. type: findex
-#: doc/guix.texi:7119
+#: doc/guix.texi:9269
 #, no-wrap
 msgid "with-extensions"
 msgstr "with-extensions"
 
 #. type: Plain text
-#: doc/guix.texi:7124
+#: doc/guix.texi:9274
 msgid "In the same vein, sometimes you want to import not just pure-Scheme modules, but also ``extensions'' such as Guile bindings to C libraries or other ``full-blown'' packages.  Say you need the @code{guile-json} package available on the build side, here's how you would do it:"
 msgstr "Dans la même idée, parfois vous pouvez souhaiter importer non seulement des modules en Scheme pur, mais aussi des « extensions » comme des liaisons Guile de bibliothèques C ou d'autres paquet « complets ».  Disons que vous voulez utiliser le paquet @code{guile-json} du côté de la construction, voici comme procéder :"
 
-#. type: example
-#: doc/guix.texi:7127
+#. type: lisp
+#: doc/guix.texi:9277
 #, no-wrap
 msgid ""
 "(use-modules (gnu packages guile))  ;for 'guile-json'\n"
@@ -13504,8 +17587,8 @@ msgstr ""
 "(use-modules (gnu packages guile))  ;pour 'guile-json'\n"
 "\n"
 
-#. type: example
-#: doc/guix.texi:7133
+#. type: lisp
+#: doc/guix.texi:9283
 #, no-wrap
 msgid ""
 "(with-extensions (list guile-json)\n"
@@ -13521,184 +17604,184 @@ msgstr ""
 "                        @dots{})))\n"
 
 #. type: Plain text
-#: doc/guix.texi:7136
+#: doc/guix.texi:9286
 msgid "The syntactic form to construct gexps is summarized below."
 msgstr "La forme syntaxique pour construire des gexps est résumée ci-dessous."
 
 #. type: deffn
-#: doc/guix.texi:7137
+#: doc/guix.texi:9287
 #, no-wrap
 msgid "{Scheme Syntax} #~@var{exp}"
 msgstr "{Syntaxe Scheme} #~@var{exp}"
 
 #. type: deffnx
-#: doc/guix.texi:7138
+#: doc/guix.texi:9288
 #, no-wrap
 msgid "{Scheme Syntax} (gexp @var{exp})"
 msgstr "{Syntaxe Scheme} (gexp @var{exp})"
 
 #. type: deffn
-#: doc/guix.texi:7141
+#: doc/guix.texi:9291
 msgid "Return a G-expression containing @var{exp}.  @var{exp} may contain one or more of the following forms:"
 msgstr "Renvoie une G-expression contenant @var{exp}.  @var{exp} peut contenir une ou plusieurs de ces formes :"
 
 #. type: item
-#: doc/guix.texi:7143
+#: doc/guix.texi:9293
 #, no-wrap
 msgid "#$@var{obj}"
 msgstr "#$@var{obj}"
 
 #. type: itemx
-#: doc/guix.texi:7144
+#: doc/guix.texi:9294
 #, no-wrap
 msgid "(ungexp @var{obj})"
 msgstr "(ungexp @var{obj})"
 
 #. type: table
-#: doc/guix.texi:7149
+#: doc/guix.texi:9299
 msgid "Introduce a reference to @var{obj}.  @var{obj} may have one of the supported types, for example a package or a derivation, in which case the @code{ungexp} form is replaced by its output file name---e.g., @code{\"/gnu/store/@dots{}-coreutils-8.22}."
 msgstr "Introduit une référence à @var{obj}.  @var{obj} peut être d'un des types supportés, par exemple un paquet ou une dérivation, auquel cas la forme @code{ungexp} est remplacée par le nom de fichier de sa sortie — p.@: ex.@: @code{\"/gnu/store/@dots{}-coreutils-8.22}."
 
 #. type: table
-#: doc/guix.texi:7152
+#: doc/guix.texi:9302
 msgid "If @var{obj} is a list, it is traversed and references to supported objects are substituted similarly."
 msgstr "Si @var{boj} est une liste, elle est traversée et les références aux objets supportés sont substitués de manière similaire."
 
 #. type: table
-#: doc/guix.texi:7155
+#: doc/guix.texi:9305
 msgid "If @var{obj} is another gexp, its contents are inserted and its dependencies are added to those of the containing gexp."
 msgstr "Si @var{obj} est une autre gexp, son contenu est inséré et ses dépendances sont ajoutées à celle de la gexp qui l'entoure."
 
 #. type: table
-#: doc/guix.texi:7157
+#: doc/guix.texi:9307
 msgid "If @var{obj} is another kind of object, it is inserted as is."
 msgstr "Si @var{obj} est un autre type d'objet, il est inséré tel quel."
 
 #. type: item
-#: doc/guix.texi:7158
+#: doc/guix.texi:9308
 #, no-wrap
 msgid "#$@var{obj}:@var{output}"
 msgstr "#$@var{obj}:@var{output}"
 
 #. type: itemx
-#: doc/guix.texi:7159
+#: doc/guix.texi:9309
 #, no-wrap
 msgid "(ungexp @var{obj} @var{output})"
 msgstr "(ungexp @var{obj} @var{output})"
 
 #. type: table
-#: doc/guix.texi:7163
+#: doc/guix.texi:9313
 msgid "This is like the form above, but referring explicitly to the @var{output} of @var{obj}---this is useful when @var{obj} produces multiple outputs (@pxref{Packages with Multiple Outputs})."
 msgstr "Cette forme est similaire à la précédente, mais se réfère explicitement à la sortie @var{output} de l'objet @var{obj} — c'est utile lorsque @var{obj} produit plusieurs sorties (@pxref{Packages with Multiple Outputs})."
 
 #. type: item
-#: doc/guix.texi:7164
+#: doc/guix.texi:9314
 #, no-wrap
 msgid "#+@var{obj}"
 msgstr "#+@var{obj}"
 
 #. type: itemx
-#: doc/guix.texi:7165
+#: doc/guix.texi:9315
 #, no-wrap
 msgid "#+@var{obj}:output"
 msgstr "#+@var{obj}:output"
 
 #. type: itemx
-#: doc/guix.texi:7166
+#: doc/guix.texi:9316
 #, no-wrap
 msgid "(ungexp-native @var{obj})"
 msgstr "(ungexp-native @var{obj})"
 
 #. type: itemx
-#: doc/guix.texi:7167
+#: doc/guix.texi:9317
 #, no-wrap
 msgid "(ungexp-native @var{obj} @var{output})"
 msgstr "(ungexp-native @var{obj} @var{output})"
 
 #. type: table
-#: doc/guix.texi:7170
+#: doc/guix.texi:9320
 msgid "Same as @code{ungexp}, but produces a reference to the @emph{native} build of @var{obj} when used in a cross compilation context."
 msgstr "Comme @code{ungexp}, mais produit une référence à la construction @emph{native} de @var{obj} lorsqu'elle est utilisée dans une compilation croisée."
 
 #. type: item
-#: doc/guix.texi:7171
+#: doc/guix.texi:9321
 #, no-wrap
 msgid "#$output[:@var{output}]"
 msgstr "#$output[:@var{output}]"
 
 #. type: itemx
-#: doc/guix.texi:7172
+#: doc/guix.texi:9322
 #, no-wrap
 msgid "(ungexp output [@var{output}])"
 msgstr "(ungexp output [@var{output}])"
 
 #. type: table
-#: doc/guix.texi:7175
+#: doc/guix.texi:9325
 msgid "Insert a reference to derivation output @var{output}, or to the main output when @var{output} is omitted."
 msgstr "Insère une référence à la sortie @var{output} de la dérivation, ou à la sortie principale lorsque @var{output} est omis."
 
 #. type: table
-#: doc/guix.texi:7177
+#: doc/guix.texi:9327
 msgid "This only makes sense for gexps passed to @code{gexp->derivation}."
 msgstr "Cela ne fait du sens que pour les gexps passées à @code{gexp->derivation}."
 
 #. type: item
-#: doc/guix.texi:7178
+#: doc/guix.texi:9328
 #, no-wrap
 msgid "#$@@@var{lst}"
 msgstr "#$@@@var{lst}"
 
 #. type: itemx
-#: doc/guix.texi:7179
+#: doc/guix.texi:9329
 #, no-wrap
 msgid "(ungexp-splicing @var{lst})"
 msgstr "(ungexp-splicing @var{lst})"
 
 #. type: table
-#: doc/guix.texi:7182
+#: doc/guix.texi:9332
 msgid "Like the above, but splices the contents of @var{lst} inside the containing list."
 msgstr "Comme au dessus, mais recolle (@i{splice}) le contenu de @var{lst} dans la liste qui la contient."
 
 #. type: item
-#: doc/guix.texi:7183
+#: doc/guix.texi:9333
 #, no-wrap
 msgid "#+@@@var{lst}"
 msgstr "#+@@@var{lst}"
 
 #. type: itemx
-#: doc/guix.texi:7184
+#: doc/guix.texi:9334
 #, no-wrap
 msgid "(ungexp-native-splicing @var{lst})"
 msgstr "(ungexp-native-splicing @var{lst})"
 
 #. type: table
-#: doc/guix.texi:7187
+#: doc/guix.texi:9337
 msgid "Like the above, but refers to native builds of the objects listed in @var{lst}."
 msgstr "Comme au dessus, mais se réfère à la construction native des objets listés dans @var{lst}."
 
 #. type: deffn
-#: doc/guix.texi:7192
-msgid "G-expressions created by @code{gexp} or @code{#~} are run-time objects of the @code{gexp?} type (see below.)"
-msgstr "Les G-expressions crées par @code{gexp} ou @code{#~} sont des objets à l'exécution du type @code{gexp?} (voir plus bas)."
+#: doc/guix.texi:9342
+msgid "G-expressions created by @code{gexp} or @code{#~} are run-time objects of the @code{gexp?} type (see below)."
+msgstr "Les G-expressions créées par @code{gexp} ou @code{#~} sont des objets d'exécution du type @code{gexp?} (voir ci-dessous)."
 
 #. type: deffn
-#: doc/guix.texi:7194
+#: doc/guix.texi:9344
 #, no-wrap
 msgid "{Scheme Syntax} with-imported-modules @var{modules} @var{body}@dots{}"
 msgstr "{Syntaxe Scheme} with-imported-modules @var{modules} @var{body}@dots{}"
 
 #. type: deffn
-#: doc/guix.texi:7197
+#: doc/guix.texi:9347
 msgid "Mark the gexps defined in @var{body}@dots{} as requiring @var{modules} in their execution environment."
 msgstr "Marque les gexps définies dans @var{body}@dots{} comme requérant @var{modules} dans leur environnement d'exécution."
 
 #. type: deffn
-#: doc/guix.texi:7201
+#: doc/guix.texi:9351
 msgid "Each item in @var{modules} can be the name of a module, such as @code{(guix build utils)}, or it can be a module name, followed by an arrow, followed by a file-like object:"
 msgstr "Chaque élément dans @var{module} peut être le nom d'un module, comme @code{(guix build utils)} ou le nom d'un module suivi d'une flèche, suivie d'un objet simili-fichier :"
 
-#. type: example
-#: doc/guix.texi:7207
+#. type: lisp
+#: doc/guix.texi:9357
 #, no-wrap
 msgid ""
 "`((guix build utils)\n"
@@ -13712,92 +17795,93 @@ msgstr ""
 "                                  #~(define-module @dots{}))))\n"
 
 #. type: deffn
-#: doc/guix.texi:7212
+#: doc/guix.texi:9362
 msgid "In the example above, the first two modules are taken from the search path, and the last one is created from the given file-like object."
 msgstr "Dans l'exemple au dessus, les deux premiers modules sont récupérés dans le chemin de recherche, et le dernier est créé à partir d'un objet simili-fichier."
 
 #. type: deffn
-#: doc/guix.texi:7216
+#: doc/guix.texi:9366
 msgid "This form has @emph{lexical} scope: it has an effect on the gexps directly defined in @var{body}@dots{}, but not on those defined, say, in procedures called from @var{body}@dots{}."
 msgstr "Cette forme a une portée @emph{lexicale} : elle a un effet sur les gexp directement définies dans @var{body}@dots{}, mais pas sur celles définies dans des procédures appelées par @var{body}@dots{}."
 
 #. type: deffn
-#: doc/guix.texi:7218
+#: doc/guix.texi:9368
 #, no-wrap
 msgid "{Scheme Syntax} with-extensions @var{extensions} @var{body}@dots{}"
 msgstr "{Syntaxe Scheme} with-extensions @var{extensions} @var{body}@dots{}"
 
 #. type: deffn
-#: doc/guix.texi:7223
+#: doc/guix.texi:9373
 msgid "Mark the gexps defined in @var{body}@dots{} as requiring @var{extensions} in their build and execution environment.  @var{extensions} is typically a list of package objects such as those defined in the @code{(gnu packages guile)} module."
 msgstr "Marque les gexps définies dans @var{body}@dots{} comme requérant @var{extensions} dans leur environnement de construction et d'exécution.  @var{extensions} est typiquement une liste d'objets paquets comme définis dans le module @code{(gnu packages guile)}."
 
 #. type: deffn
-#: doc/guix.texi:7228
+#: doc/guix.texi:9378
 msgid "Concretely, the packages listed in @var{extensions} are added to the load path while compiling imported modules in @var{body}@dots{}; they are also added to the load path of the gexp returned by @var{body}@dots{}."
 msgstr "Concrètement, les paquets listés dans @var{extensions} sont ajoutés au chemin de chargement lors de la compilation des modules importés dans @var{body}@dots{} ; ils sont aussi ajoutés au chemin de chargement de la gexp renvoyée par @var{body}@dots{}."
 
 #. type: deffn
-#: doc/guix.texi:7230
+#: doc/guix.texi:9380
 #, no-wrap
 msgid "{Scheme Procedure} gexp? @var{obj}"
 msgstr "{Procédure Scheme} gexp? @var{obj}"
 
 #. type: deffn
-#: doc/guix.texi:7232
+#: doc/guix.texi:9382
 msgid "Return @code{#t} if @var{obj} is a G-expression."
 msgstr "Renvoie @code{#t} si @var{obj} est une G-expression."
 
 #. type: Plain text
-#: doc/guix.texi:7238
-msgid "G-expressions are meant to be written to disk, either as code building some derivation, or as plain files in the store.  The monadic procedures below allow you to do that (@pxref{The Store Monad}, for more information about monads.)"
-msgstr "Les G-expressions sont conçues pour être écrites sur le disque, soit en tant que code pour construire une dérivation, soit en tant que fichier normal dans le dépôt.  Les procédure monadiques suivantes vous permettent de faire cela (@pxref{The Store Monad}, pour plus d'information sur les monads)."
+#: doc/guix.texi:9388
+msgid "G-expressions are meant to be written to disk, either as code building some derivation, or as plain files in the store.  The monadic procedures below allow you to do that (@pxref{The Store Monad}, for more information about monads)."
+msgstr "Les G-expressions sont conçues pour être écrites sur le disque, soit en tant que code pour construire une dérivation, soit en tant que fichier normal dans le dépôt.  Les procédures monadiques suivantes vous permettent de faire cela (@pxref{The Store Monad}, pour plus d'information sur les monads)."
 
 #. type: deffn
-#: doc/guix.texi:7239
+#: doc/guix.texi:9389
 #, no-wrap
 msgid "{Monadic Procedure} gexp->derivation @var{name} @var{exp} @"
 msgstr "{Procédure monadique} gexp->derivation @var{name} @var{exp} @"
 
 #. type: deffn
-#: doc/guix.texi:7257
-msgid "[#:system (%current-system)] [#:target #f] [#:graft? #t] @ [#:hash #f] [#:hash-algo #f] @ [#:recursive? #f] [#:env-vars '()] [#:modules '()] @ [#:module-path @var{%load-path}] @ [#:effective-version \"2.2\"] @ [#:references-graphs #f] [#:allowed-references #f] @ [#:disallowed-references #f] @ [#:leaked-env-vars #f] @ [#:script-name (string-append @var{name} \"-builder\")] @ [#:deprecation-warnings #f] @ [#:local-build? #f] [#:substitutable? #t] @ [#:properties '()] [#:guile-for-build #f] Return a derivation @var{name} that runs @var{exp} (a gexp) with @var{guile-for-build} (a derivation) on @var{system}; @var{exp} is stored in a file called @var{script-name}.  When @var{target} is true, it is used as the cross-compilation target triplet for packages referred to by @var{exp}."
+#: doc/guix.texi:9407
+msgid "[#:system (%current-system)] [#:target #f] [#:graft? #t] @ [#:hash #f] [#:hash-algo #f] @ [#:recursive? #f] [#:env-vars '()] [#:modules '()] @ [#:module-path @code{%load-path}] @ [#:effective-version \"2.2\"] @ [#:references-graphs #f] [#:allowed-references #f] @ [#:disallowed-references #f] @ [#:leaked-env-vars #f] @ [#:script-name (string-append @var{name} \"-builder\")] @ [#:deprecation-warnings #f] @ [#:local-build? #f] [#:substitutable? #t] @ [#:properties '()] [#:guile-for-build #f] Return a derivation @var{name} that runs @var{exp} (a gexp) with @var{guile-for-build} (a derivation) on @var{system}; @var{exp} is stored in a file called @var{script-name}.  When @var{target} is true, it is used as the cross-compilation target triplet for packages referred to by @var{exp}."
 msgstr ""
-"[#:system (%current-system)] [#:target #f] [#:graft? #t] @\n"
+"[#:system (%current-system)] [#:target #f] [#:graft ? #t] @\n"
 "[#:hash #f] [#:hash-algo #f] @\n"
-"[#:recursive? #f] [#:env-vars '()] [#:modules '()] @\n"
-"[#:module-path @var{%load-path}] @\n"
-"[#:effective-version \"2.2\"] @\n"
+"[#:recursive ? #f] [#:env-vars '()] [#:modules '()] @\n"
+"[#:module-path @code{%load-path}] @\n"
+"[#:effective-version \"2. 2\"] @\n"
 "[#:references-graphs #f] [#:allowed-references #f] @\n"
-"[#:disallowed-references #f] @ [#:leaked-env-vars #f] @\n"
+"[#:disallowed-references #f] @\n"
+"[#:leaked-env-vars #f] @\n"
 "[#:script-name (string-append @var{name} \"-builder\")] @\n"
 "[#:deprecation-warnings #f] @\n"
-"[#:local-build? #f] [#:substitutable? #t] @\n"
+"[#:local-build ? #f] [#:substituable ? #t] @\n"
 "[#:properties '()] [#:guile-for-build #f]\n"
-"Renvoie une dérivation @var{name} qui lance @var{exp} (une gexp) avec @var{guile-for-build} (une dérivation) sur @var{system} ; @var{exp} est stocké dans un fichier appelé @var{script-name}.  Lorsque @var{target} est vraie, elle est utilisée comme triplet de cible de compilation croisée pour les paquets référencés par @var{exp}."
+"Renvoie une dérivation @var{name} qui exécute @var{exp} (un gexp) avec @var{guile-for-build} (une dérivation) sur @var{system} ; @var{exp} est stocké dans un fichier appelé @var{script-name}.  Lorsque @var{target} est vrai, il est utilisé comme le triplet cible de compilation croisée pour les paquets auxquels @var{exp} fait référence."
 
 #. type: deffn
-#: doc/guix.texi:7265
+#: doc/guix.texi:9415
 msgid "@var{modules} is deprecated in favor of @code{with-imported-modules}.  Its meaning is to make @var{modules} available in the evaluation context of @var{exp}; @var{modules} is a list of names of Guile modules searched in @var{module-path} to be copied in the store, compiled, and made available in the load path during the execution of @var{exp}---e.g., @code{((guix build utils) (guix build gnu-build-system))}."
 msgstr "@var{modules} est devenu obsolète en faveur de @code{with-imported-modules}.  Sa signification est de rendre @var{modules} disponibles dans le contexte d'évaluation de @var{exp} ; @var{modules} est une liste de noms de modules Guile qui sont cherchés dans @var{module-path} pour les copier dans le dépôt, les compiler et les rendre disponibles dans le chemin de chargement pendant l'exécution de @var{exp} — p.@: ex.@: @code{((guix build utils) (guix build gnu-build-system))}."
 
 #. type: deffn
-#: doc/guix.texi:7268
+#: doc/guix.texi:9418
 msgid "@var{effective-version} determines the string to use when adding extensions of @var{exp} (see @code{with-extensions}) to the search path---e.g., @code{\"2.2\"}."
 msgstr "@var{effective-version} détermine la chaîne à utiliser lors d'ajout d'extensions de @var{exp} (voir @code{with-extensions}) au chemin de recherche — p.@: ex.@: @code{\"2.2\"}."
 
 #. type: deffn
-#: doc/guix.texi:7271
+#: doc/guix.texi:9421
 msgid "@var{graft?} determines whether packages referred to by @var{exp} should be grafted when applicable."
 msgstr "@var{graft?} détermine si les paquets référencés par @var{exp} devraient être greffés si possible."
 
 #. type: deffn
-#: doc/guix.texi:7274
+#: doc/guix.texi:9424
 msgid "When @var{references-graphs} is true, it must be a list of tuples of one of the following forms:"
 msgstr "Lorsque @var{references-graphs} est vrai, il doit s'agir d'une liste de tuples de la forme suivante :"
 
 #. type: example
-#: doc/guix.texi:7281
+#: doc/guix.texi:9431
 #, no-wrap
 msgid ""
 "(@var{file-name} @var{package})\n"
@@ -13813,38 +17897,38 @@ msgstr ""
 "(@var{file-name} @var{store-item})\n"
 
 #. type: deffn
-#: doc/guix.texi:7287
+#: doc/guix.texi:9437
 msgid "The right-hand-side of each element of @var{references-graphs} is automatically made an input of the build process of @var{exp}.  In the build environment, each @var{file-name} contains the reference graph of the corresponding item, in a simple text format."
 msgstr "La partie droite des éléments de @var{references-graphs} est automatiquement transformée en une entrée du processus de construction @var{exp}.  Dans l'environnement de construction, chaque @var{file-name} contient le graphe des références de l'élément correspondant, dans un format texte simple."
 
 #. type: deffn
-#: doc/guix.texi:7293
+#: doc/guix.texi:9443
 msgid "@var{allowed-references} must be either @code{#f} or a list of output names and packages.  In the latter case, the list denotes store items that the result is allowed to refer to.  Any reference to another store item will lead to a build error.  Similarly for @var{disallowed-references}, which can list items that must not be referenced by the outputs."
 msgstr "@var{allowed-references} doit soit être @code{#f}, soit une liste de noms de sorties ou de paquets.  Dans ce dernier cas, la liste dénote les éléments du dépôt auxquels le résultat a le droit de faire référence.  Toute référence à un autre élément du dépôt conduira à une erreur à la construction.  Comme pour @var{disallowed-references}, qui peut lister des éléments qui ne doivent pas être référencés par les sorties."
 
 #. type: deffn
-#: doc/guix.texi:7296
+#: doc/guix.texi:9446
 msgid "@var{deprecation-warnings} determines whether to show deprecation warnings while compiling modules.  It can be @code{#f}, @code{#t}, or @code{'detailed}."
 msgstr "@var{deprecation-warnings} détermine s'il faut afficher les avertissement d'obsolescence à la compilation de modules.  Il peut valoir @code{#f}, @code{t} ou @code{'detailed}."
 
 #. type: deffn
-#: doc/guix.texi:7298
+#: doc/guix.texi:9448
 msgid "The other arguments are as for @code{derivation} (@pxref{Derivations})."
 msgstr "Les autres arguments sont les mêmes que pour @code{derivation} (@pxref{Derivations})."
 
 #. type: cindex
-#: doc/guix.texi:7300
+#: doc/guix.texi:9450
 #, no-wrap
 msgid "file-like objects"
 msgstr "objets simili-fichiers"
 
 #. type: Plain text
-#: doc/guix.texi:7305
+#: doc/guix.texi:9455
 msgid "The @code{local-file}, @code{plain-file}, @code{computed-file}, @code{program-file}, and @code{scheme-file} procedures below return @dfn{file-like objects}.  That is, when unquoted in a G-expression, these objects lead to a file in the store.  Consider this G-expression:"
 msgstr "Les procédures @code{local-file}, @code{plain-file}, @code{computed-file}, @code{program-file} et @code{scheme-file} ci-dessous renvoient des @dfn{objets simili-fichiers}.  C'est-à-dire, lorsqu'ils sont unquotés dans une G-expression, ces objets donnent un fichier dans le dépôt.  Considérez cette G-expression :"
 
-#. type: example
-#: doc/guix.texi:7309
+#. type: lisp
+#: doc/guix.texi:9459
 #, no-wrap
 msgid ""
 "#~(system* #$(file-append glibc \"/sbin/nscd\") \"-f\"\n"
@@ -13854,82 +17938,83 @@ msgstr ""
 "           #$(local-file \"/tmp/my-nscd.conf\"))\n"
 
 #. type: Plain text
-#: doc/guix.texi:7318
+#: doc/guix.texi:9468
 msgid "The effect here is to ``intern'' @file{/tmp/my-nscd.conf} by copying it to the store.  Once expanded, for instance @i{via} @code{gexp->derivation}, the G-expression refers to that copy under @file{/gnu/store}; thus, modifying or removing the file in @file{/tmp} does not have any effect on what the G-expression does.  @code{plain-file} can be used similarly; it differs in that the file content is directly passed as a string."
 msgstr "Ici, l'effet est « d'internaliser » @file{/tmp/my-nscd.conf} en le copiant dans le dépôt.  Une fois étendu, par exemple via @code{gexp->derivation}, la G-expression se réfère à cette copie dans @file{/gnu/store} ; ainsi, modifier ou supprimer le fichier dans @file{/tmp} n'a aucun effet sur ce que fait la G-expression.  @code{plain-file} peut être utilisé de la même manière ; elle est seulement différente par le fait que le contenu du fichier est passé directement par une chaîne de caractères."
 
 #. type: deffn
-#: doc/guix.texi:7319
+#: doc/guix.texi:9469
 #, no-wrap
 msgid "{Scheme Procedure} local-file @var{file} [@var{name}] @"
 msgstr "{Procédure Scheme} local-file @var{file} [@var{name}] @"
 
 #. type: deffn
-#: doc/guix.texi:7325
-msgid "[#:recursive? #f] [#:select? (const #t)] Return an object representing local file @var{file} to add to the store; this object can be used in a gexp.  If @var{file} is a relative file name, it is looked up relative to the source file where this form appears.  @var{file} will be added to the store under @var{name}--by default the base name of @var{file}."
+#: doc/guix.texi:9478
+msgid "[#:recursive? #f] [#:select? (const #t)] Return an object representing local file @var{file} to add to the store; this object can be used in a gexp.  If @var{file} is a literal string denoting a relative file name, it is looked up relative to the source file where it appears; if @var{file} is not a literal string, it is looked up relative to the current working directory at run time.  @var{file} will be added to the store under @var{name}--by default the base name of @var{file}."
 msgstr ""
-"[#:recursive? #f] [#:select? (const #t)]\n"
-"Renvoie un objet représentant un fichier local @var{file} à ajouter au dépôt ; cet objet peut être utilisé dans une gexp.  Si @var{file} est un nom de fichier relatif, il est récupéré à partir de la position du fichier source dans lequel il apparaît.  @var{file} sera ajouté au dépôt sous le nom @var{name} — par défaut le nom de base de @var{file}."
+"[#:recursive ? #f] [#:select ? (const #t)]\n"
+"Renvoie un objet représentant le fichier local @var{file} à ajouter au magasin ; cet objet peut être utilisé dans un gexp.  Si @var{file} est une chaîne littérale désignant un nom de fichier relatif, il est recherché par rapport au fichier source où il apparaît ; si @var{file} n'est pas une chaîne littérale, il est recherché par rapport au répertoire de travail courant au moment de l'exécution.  @var{file} sera ajouté au dépôt sous @var{name}--par défaut le nom de base de @var{file}."
 
 #. type: deffn
-#: doc/guix.texi:7337
+#: doc/guix.texi:9490
 msgid "This is the declarative counterpart of the @code{interned-file} monadic procedure (@pxref{The Store Monad, @code{interned-file}})."
 msgstr "C'est la version déclarative de la procédure monadique @code{interned-file} (@pxref{The Store Monad, @code{interned-file}})."
 
 #. type: deffn
-#: doc/guix.texi:7339
+#: doc/guix.texi:9492
 #, no-wrap
 msgid "{Scheme Procedure} plain-file @var{name} @var{content}"
 msgstr "{Procédure Scheme} plain-file @var{name} @var{content}"
 
 #. type: deffn
-#: doc/guix.texi:7342
+#: doc/guix.texi:9495
 msgid "Return an object representing a text file called @var{name} with the given @var{content} (a string or a bytevector) to be added to the store."
 msgstr "Renvoie un objet représentant un fichier texte nommé @var{name} avec pour contenu @var{content} (une chaîne de caractères ou un vecteur d'octets) à ajouter un dépôt."
 
 #. type: deffn
-#: doc/guix.texi:7344
+#: doc/guix.texi:9497
 msgid "This is the declarative counterpart of @code{text-file}."
 msgstr "C'est la version déclarative de @code{text-file}."
 
 #. type: deffn
-#: doc/guix.texi:7346
+#: doc/guix.texi:9499
 #, no-wrap
 msgid "{Scheme Procedure} computed-file @var{name} @var{gexp} @"
 msgstr "{Procédure Scheme} computed-file @var{name} @var{gexp} @"
 
 #. type: deffn
-#: doc/guix.texi:7351
-msgid "[#:options '(#:local-build? #t)] Return an object representing the store item @var{name}, a file or directory computed by @var{gexp}.  @var{options} is a list of additional arguments to pass to @code{gexp->derivation}."
+#: doc/guix.texi:9506
+msgid "[#:local-build? #t] [#:options '()] Return an object representing the store item @var{name}, a file or directory computed by @var{gexp}.  When @var{local-build?} is true (the default), the derivation is built locally.  @var{options} is a list of additional arguments to pass to @code{gexp->derivation}."
 msgstr ""
-"[#:options '(#:local-build? #t)]\n"
-"Renvoie un objet représentant un élément du dépôt @var{name}, un fichier ou un répertoire calculé par @var{gexp}.  @var{options} est une liste d'arguments supplémentaires à passer à @code{gexp->derivation}."
+"[#:local-build ? #t] [#:options '()]\n"
+"Renvoie un objet représentant l'élément du dépôt @var{name}, un fichier ou un répertoire calculé par @var{gexp}.  Lorsque @var{local-build?} est vrai (par défaut), la dérivation est construite localement.  @var{options} est une liste d'arguments supplémentaires à passer à @code{gexp->derivation}."
 
 #. type: deffn
-#: doc/guix.texi:7353
+#: doc/guix.texi:9508
 msgid "This is the declarative counterpart of @code{gexp->derivation}."
 msgstr "C'est la version déclarative de @code{gexp->derivation}."
 
 #. type: deffn
-#: doc/guix.texi:7355
+#: doc/guix.texi:9510
 #, no-wrap
 msgid "{Monadic Procedure} gexp->script @var{name} @var{exp} @"
 msgstr "{Procédure monadique} gexp->script @var{name} @var{exp} @"
 
 #. type: deffn
-#: doc/guix.texi:7360
-msgid "[#:guile (default-guile)] [#:module-path %load-path] Return an executable script @var{name} that runs @var{exp} using @var{guile}, with @var{exp}'s imported modules in its search path.  Look up @var{exp}'s modules in @var{module-path}."
+#: doc/guix.texi:9516
+msgid "[#:guile (default-guile)] [#:module-path %load-path] @ [#:system (%current-system)] [#:target #f] Return an executable script @var{name} that runs @var{exp} using @var{guile}, with @var{exp}'s imported modules in its search path.  Look up @var{exp}'s modules in @var{module-path}."
 msgstr ""
-"[#:guile (default-guile)] [#:module-path %load-path]\n"
-"Renvoie un script exécutable @var{name} qui lance @var{exp} avec @var{guile}, avec les modules importés de @var{exp} dans son chemin de recherche.  Cherche les modules de @var{exp} dans @var{module-path}."
+"[#:guile (default-guile)] [#:module-path %load-path] @\n"
+"[#:system (%current-system)] [#:target #f]\n"
+"Renvoie un script exécutable @var{name} qui exécute @var{exp} en utilisant @var{guile}, avec les modules importés de @var{exp} dans son chemin de recherche.  Recherchez les modules de @var{exp} dans @var{module-path}."
 
 #. type: deffn
-#: doc/guix.texi:7363
+#: doc/guix.texi:9519
 msgid "The example below builds a script that simply invokes the @command{ls} command:"
 msgstr "L'exemple ci-dessous construit un script qui invoque simplement la commande @command{ls} :"
 
-#. type: example
-#: doc/guix.texi:7366
+#. type: lisp
+#: doc/guix.texi:9522
 #, no-wrap
 msgid ""
 "(use-modules (guix gexp) (gnu packages base))\n"
@@ -13938,8 +18023,8 @@ msgstr ""
 "(use-modules (guix gexp) (gnu packages base))\n"
 "\n"
 
-#. type: example
-#: doc/guix.texi:7370
+#. type: lisp
+#: doc/guix.texi:9526
 #, no-wrap
 msgid ""
 "(gexp->script \"list-files\"\n"
@@ -13951,12 +18036,12 @@ msgstr ""
 "                       \"ls\"))\n"
 
 #. type: deffn
-#: doc/guix.texi:7375
+#: doc/guix.texi:9531
 msgid "When ``running'' it through the store (@pxref{The Store Monad, @code{run-with-store}}), we obtain a derivation that produces an executable file @file{/gnu/store/@dots{}-list-files} along these lines:"
 msgstr "Lorsqu'elle est « lancée » à travers le dépôt (@pxref{The Store Monad, @code{run-with-store}}), on obtient une dérivation qui produit une fichier exécutable @file{/gnu/store/@dots{}-list-files} qui ressemble à :"
 
 #. type: example
-#: doc/guix.texi:7380
+#: doc/guix.texi:9536
 #, no-wrap
 msgid ""
 "#!/gnu/store/@dots{}-guile-2.0.11/bin/guile -ds\n"
@@ -13968,31 +18053,31 @@ msgstr ""
 "(execl \"/gnu/store/@dots{}-coreutils-8.22\"/bin/ls\" \"ls\")\n"
 
 #. type: deffn
-#: doc/guix.texi:7383
+#: doc/guix.texi:9539
 #, no-wrap
 msgid "{Scheme Procedure} program-file @var{name} @var{exp} @"
 msgstr "{Procédure Scheme} program-file @var{name} @var{exp} @"
 
 #. type: deffn
-#: doc/guix.texi:7388
+#: doc/guix.texi:9544
 msgid "[#:guile #f] [#:module-path %load-path] Return an object representing the executable store item @var{name} that runs @var{gexp}.  @var{guile} is the Guile package used to execute that script.  Imported modules of @var{gexp} are looked up in @var{module-path}."
 msgstr ""
 "[#:guile #f] [#:module-path %load-path]\n"
 "Renvoie un objet représentant un élément du dépôt @var{name} qui lance @var{gexp}.  @var{guile} est le paquet Guile à utiliser pour exécuter le script.  Les modules importés par @var{gexp} sont recherchés dans @var{module-path}."
 
 #. type: deffn
-#: doc/guix.texi:7390
+#: doc/guix.texi:9546
 msgid "This is the declarative counterpart of @code{gexp->script}."
 msgstr "C'est la version déclarative de @code{gexp->script}."
 
 #. type: deffn
-#: doc/guix.texi:7392
+#: doc/guix.texi:9548
 #, no-wrap
 msgid "{Monadic Procedure} gexp->file @var{name} @var{exp} @"
 msgstr "{Procédure monadique} gexp->file @var{name} @var{exp} @"
 
 #. type: deffn
-#: doc/guix.texi:7399
+#: doc/guix.texi:9555
 msgid "[#:set-load-path? #t] [#:module-path %load-path] @ [#:splice? #f] @ [#:guile (default-guile)] Return a derivation that builds a file @var{name} containing @var{exp}.  When @var{splice?} is true, @var{exp} is considered to be a list of expressions that will be spliced in the resulting file."
 msgstr ""
 "[#:set-load-path? #t] [#:module-path %load-path] @\n"
@@ -14001,49 +18086,49 @@ msgstr ""
 "Renvoie une dérivation qui construit un fichier @var{name} contenant @var{exp}.  Lorsque @var{splice?} est vrai, @var{exp} est considéré comme une liste d'expressions qui seront splicée dans le fichier qui en résulte."
 
 #. type: deffn
-#: doc/guix.texi:7404
+#: doc/guix.texi:9560
 msgid "When @var{set-load-path?} is true, emit code in the resulting file to set @code{%load-path} and @code{%load-compiled-path} to honor @var{exp}'s imported modules.  Look up @var{exp}'s modules in @var{module-path}."
 msgstr "Lorsque @var{set-load-path?} est vrai, émet du code dans le fichier de résultat pour initialiser @code{%load-path} et @code{%load-compiled-path} pour honorer les modules importés de @var{exp}.  Les modules de @var{exp} sont trouvés dans @var{module-path}."
 
 #. type: deffn
-#: doc/guix.texi:7407
+#: doc/guix.texi:9563
 msgid "The resulting file holds references to all the dependencies of @var{exp} or a subset thereof."
 msgstr "Le fichier qui en résulte retient les références à toutes les dépendances de @var{exp} ou un sous-ensemble."
 
 #. type: deffn
-#: doc/guix.texi:7409
+#: doc/guix.texi:9565
 #, no-wrap
-msgid "{Scheme Procedure} scheme-file @var{name} @var{exp} [#:splice? #f]"
-msgstr "{Procédure Scheme} scheme-file @var{name} @var{exp} [#:splice? #f]"
+msgid "{Scheme Procedure} scheme-file @var{name} @var{exp} @"
+msgstr "{Procédure Scheme} scheme-file @var{name} @var{gexp} @"
 
 #. type: deffn
-#: doc/guix.texi:7412
-msgid "Return an object representing the Scheme file @var{name} that contains @var{exp}."
-msgstr "Renvoie un objet représentant le fichier Scheme @var{name} qui contient @var{exp}."
+#: doc/guix.texi:9569
+msgid "[#:splice? #f] [#:set-load-path? #t] Return an object representing the Scheme file @var{name} that contains @var{exp}."
+msgstr "[#:splice? #f] [#:set-load-path? #t] Renvoie un objet représentant le fichier Scheme @var{name} qui contient @var{exp}."
 
 #. type: deffn
-#: doc/guix.texi:7414
+#: doc/guix.texi:9571
 msgid "This is the declarative counterpart of @code{gexp->file}."
 msgstr "C'est la version déclarative de @code{gexp->file}."
 
 #. type: deffn
-#: doc/guix.texi:7416
+#: doc/guix.texi:9573
 #, no-wrap
 msgid "{Monadic Procedure} text-file* @var{name} @var{text} @dots{}"
 msgstr "{Procédure monadique} text-file* @var{name} @var{text} @dots{}"
 
 #. type: deffn
-#: doc/guix.texi:7422
+#: doc/guix.texi:9579
 msgid "Return as a monadic value a derivation that builds a text file containing all of @var{text}.  @var{text} may list, in addition to strings, objects of any type that can be used in a gexp: packages, derivations, local file objects, etc.  The resulting store file holds references to all these."
 msgstr "Renvoie une valeur monadique qui construit un ficher texte contenant @var{text}.  @var{text} peut lister, en plus de chaînes de caractères, des objet de n'importe quel type qui peut être utilisé dans une gexp : des paquets, des dérivations, des fichiers objet locaux, etc.  Le fichier du dépôt qui en résulte en retient toutes les références."
 
 #. type: deffn
-#: doc/guix.texi:7427
+#: doc/guix.texi:9584
 msgid "This variant should be preferred over @code{text-file} anytime the file to create will reference items from the store.  This is typically the case when building a configuration file that embeds store file names, like this:"
 msgstr "Cette variante devrait être préférée à @code{text-file} lorsque vous souhaitez créer des fichiers qui référencent le dépôt.  Cela est le cas typiquement lorsque vous construisez un fichier de configuration qui contient des noms de fichiers du dépôt, comme ceci :"
 
-#. type: example
-#: doc/guix.texi:7435
+#. type: lisp
+#: doc/guix.texi:9592
 #, no-wrap
 msgid ""
 "(define (profile.sh)\n"
@@ -14061,23 +18146,23 @@ msgstr ""
 "              grep \"/bin:\" sed \"/bin\\n\"))\n"
 
 #. type: deffn
-#: doc/guix.texi:7440
+#: doc/guix.texi:9597
 msgid "In this example, the resulting @file{/gnu/store/@dots{}-profile.sh} file will reference @var{coreutils}, @var{grep}, and @var{sed}, thereby preventing them from being garbage-collected during its lifetime."
 msgstr "Dans cet exemple, le fichier @file{/gnu/store/@dots{}-profile.sh} qui en résulte référence  @var{coreutils}, @var{grep} et @var{sed}, ce qui les empêche d'être glanés tant que le script est accessible."
 
 #. type: deffn
-#: doc/guix.texi:7442
+#: doc/guix.texi:9599
 #, no-wrap
 msgid "{Scheme Procedure} mixed-text-file @var{name} @var{text} @dots{}"
 msgstr "{Procédure Scheme} mixed-text-file @var{name} @var{text} @dots{}"
 
 #. type: deffn
-#: doc/guix.texi:7446
+#: doc/guix.texi:9603
 msgid "Return an object representing store file @var{name} containing @var{text}.  @var{text} is a sequence of strings and file-like objects, as in:"
 msgstr "Renvoie un objet représentant le fichier du dépôt @var{name} contenant @var{text}.  @var{text} est une séquence de chaînes de caractères et de fichiers simili-objets, comme dans :"
 
-#. type: example
-#: doc/guix.texi:7450
+#. type: lisp
+#: doc/guix.texi:9607
 #, no-wrap
 msgid ""
 "(mixed-text-file \"profile\"\n"
@@ -14087,23 +18172,23 @@ msgstr ""
 "                 \"export PATH=\" coreutils \"/bin:\" grep \"/bin\")\n"
 
 #. type: deffn
-#: doc/guix.texi:7453
+#: doc/guix.texi:9610
 msgid "This is the declarative counterpart of @code{text-file*}."
 msgstr "C'est la version déclarative de @code{text-file*}."
 
 #. type: deffn
-#: doc/guix.texi:7455
+#: doc/guix.texi:9612
 #, no-wrap
 msgid "{Scheme Procedure} file-union @var{name} @var{files}"
 msgstr "{Procédure Scheme} file-union @var{name} @var{files}"
 
 #. type: deffn
-#: doc/guix.texi:7460
+#: doc/guix.texi:9617
 msgid "Return a @code{<computed-file>} that builds a directory containing all of @var{files}.  Each item in @var{files} must be a two-element list where the first element is the file name to use in the new directory, and the second element is a gexp denoting the target file.  Here's an example:"
 msgstr "Renvoie un @code{<computed-file>} qui construit un répertoire qui contient tous les fichiers de @var{files}.  Chaque élément de @var{files} doit être une paire où le premier élément est le nom de fichier à utiliser dans le nouveau répertoire et le second élément est une gexp dénotant le fichier cible.  Voici un exemple :"
 
-#. type: example
-#: doc/guix.texi:7467
+#. type: lisp
+#: doc/guix.texi:9624
 #, no-wrap
 msgid ""
 "(file-union \"etc\"\n"
@@ -14119,50 +18204,50 @@ msgstr ""
 "                                     \"alias ls='ls --color=auto'\"))))\n"
 
 #. type: deffn
-#: doc/guix.texi:7470
+#: doc/guix.texi:9627
 msgid "This yields an @code{etc} directory containing these two files."
 msgstr "Cela crée un répertoire @code{etc} contenant ces deux fichiers."
 
 #. type: deffn
-#: doc/guix.texi:7472
+#: doc/guix.texi:9629
 #, no-wrap
 msgid "{Scheme Procedure} directory-union @var{name} @var{things}"
 msgstr "{Procédure Scheme} directory-union @var{name} @var{things}"
 
 #. type: deffn
-#: doc/guix.texi:7475
+#: doc/guix.texi:9632
 msgid "Return a directory that is the union of @var{things}, where @var{things} is a list of file-like objects denoting directories.  For example:"
 msgstr "Renvoie un répertoire qui est l'union de @var{things}, où @var{things} est une liste d'objets simili-fichiers qui dénotent des répertoires. Par exemple :"
 
-#. type: example
-#: doc/guix.texi:7478
+#. type: lisp
+#: doc/guix.texi:9635
 #, no-wrap
 msgid "(directory-union \"guile+emacs\" (list guile emacs))\n"
 msgstr "(directory-union \"guile+emacs\" (list guile emacs))\n"
 
 #. type: deffn
-#: doc/guix.texi:7481
+#: doc/guix.texi:9638
 msgid "yields a directory that is the union of the @code{guile} and @code{emacs} packages."
 msgstr "crée un répertoire qui est l'union des paquets @code{guile} et @code{emacs}."
 
 #. type: deffn
-#: doc/guix.texi:7483
+#: doc/guix.texi:9640
 #, no-wrap
 msgid "{Scheme Procedure} file-append @var{obj} @var{suffix} @dots{}"
 msgstr "{Procédure Scheme} file-append @var{obj} @var{suffix} @dots{}"
 
 #. type: deffn
-#: doc/guix.texi:7487
+#: doc/guix.texi:9644
 msgid "Return a file-like object that expands to the concatenation of @var{obj} and @var{suffix}, where @var{obj} is a lowerable object and each @var{suffix} is a string."
 msgstr "Renvoie un objet simili-fichier qui correspond à la concaténation de @var{obj} et @var{suffix} où @var{obj} est un objet abaissable et chaque @var{suffix} est une chaîne de caractères."
 
 #. type: deffn
-#: doc/guix.texi:7489
+#: doc/guix.texi:9646
 msgid "As an example, consider this gexp:"
 msgstr "Par exemple, considérez cette gexp :"
 
-#. type: example
-#: doc/guix.texi:7494
+#. type: lisp
+#: doc/guix.texi:9651
 #, no-wrap
 msgid ""
 "(gexp->script \"run-uname\"\n"
@@ -14174,12 +18259,12 @@ msgstr ""
 "                                        \"/bin/uname\")))\n"
 
 #. type: deffn
-#: doc/guix.texi:7497
+#: doc/guix.texi:9654
 msgid "The same effect could be achieved with:"
 msgstr "On peut obtenir le même effet avec :"
 
-#. type: example
-#: doc/guix.texi:7502
+#. type: lisp
+#: doc/guix.texi:9659
 #, no-wrap
 msgid ""
 "(gexp->script \"run-uname\"\n"
@@ -14191,52 +18276,183 @@ msgstr ""
 "                                        \"/bin/uname\")))\n"
 
 #. type: deffn
-#: doc/guix.texi:7508
+#: doc/guix.texi:9665
 msgid "There is one difference though: in the @code{file-append} case, the resulting script contains the absolute file name as a string, whereas in the second case, the resulting script contains a @code{(string-append @dots{})} expression to construct the file name @emph{at run time}."
 msgstr "Il y a une différence cependant : dans le cas @code{file-append}, le script qui en résulte contient le nom de fichier absolu comme une chaîne de caractère alors que dans le deuxième cas, le script contient une expression @code{(string-append @dots{})} pour construire le nom de fichier @emph{à l'exécution}."
 
+#. type: deffn
+#: doc/guix.texi:9667
+#, no-wrap
+msgid "{Scheme Syntax} let-system @var{system} @var{body}@dots{}"
+msgstr "{Syntaxe Scheme} let-system @var{system} @var{body}@dots{}"
+
+#. type: deffnx
+#: doc/guix.texi:9668
+#, no-wrap
+msgid "{Scheme Syntax} let-system (@var{system} @var{target}) @var{body}@dots{}"
+msgstr "{Syntaxe Scheme} let-system (@var{system} @var{target}) @var{body}@dots{}"
+
+#. type: deffn
+#: doc/guix.texi:9671
+msgid "Bind @var{system} to the currently targeted system---e.g., @code{\"x86_64-linux\"}---within @var{body}."
+msgstr "Lier @var{system} au système actuellement visé---par exemple, @code{\"x86_64-linux\"}---dans @var{body}."
+
+#. type: deffn
+#: doc/guix.texi:9676
+msgid "In the second case, additionally bind @var{target} to the current cross-compilation target---a GNU triplet such as @code{\"arm-linux-gnueabihf\"}---or @code{#f} if we are not cross-compiling."
+msgstr "Dans le second cas, lier également @var{target} à la cible de compilation croisée actuelle--un triplet GNU tel que @code{\"arm-linux-gnueabihf\"}---ou @code{#f} si nous ne faisons pas de compilation croisée."
+
+#. type: deffn
+#: doc/guix.texi:9679
+msgid "@code{let-system} is useful in the occasional case where the object spliced into the gexp depends on the target system, as in this example:"
+msgstr "@code{let-system} est utile occasionellement dans le cas où l'objet raccordé au gexp dépend de la cible sur le système cible, comme dans cet exemple :"
+
+#. type: lisp
+#: doc/guix.texi:9690
+#, no-wrap
+msgid ""
+"#~(system*\n"
+"   #+(let-system system\n"
+"       (cond ((string-prefix? \"armhf-\" system)\n"
+"              (file-append qemu \"/bin/qemu-system-arm\"))\n"
+"             ((string-prefix? \"x86_64-\" system)\n"
+"              (file-append qemu \"/bin/qemu-system-x86_64\"))\n"
+"             (else\n"
+"              (error \"dunno!\"))))\n"
+"   \"-net\" \"user\" #$image)\n"
+msgstr ""
+"#~(system*\n"
+"   #+(let-system system\n"
+"       (cond ((string-prefix? \"armhf-\" system)\n"
+"              (file-append qemu \"/bin/qemu-system-arm\"))\n"
+"             ((string-prefix? \"x86_64-\" system)\n"
+"              (file-append qemu \"/bin/qemu-system-x86_64\"))\n"
+"             (else\n"
+"              (error \"dunno!\"))))\n"
+"   \"-net\" \"user\" #$image)\n"
+"   \n"
+
+#. type: deffn
+#: doc/guix.texi:9693
+#, no-wrap
+msgid "{Scheme Syntax} with-parameters ((@var{parameter} @var{value}) @dots{}) @var{exp}"
+msgstr "{Syntaxe Scheme} with-parameters ((@var{parameter} @var{value}) @dots{}) @var{exp}"
+
+#. type: deffn
+#: doc/guix.texi:9699
+msgid "This macro is similar to the @code{parameterize} form for dynamically-bound @dfn{parameters} (@pxref{Parameters,,, guile, GNU Guile Reference Manual}).  The key difference is that it takes effect when the file-like object returned by @var{exp} is lowered to a derivation or store item."
+msgstr "Cette macro est similaire à la forme @code{parameterize} pour les @dfn{paramètres} liés dynamiquement (@pxref{Parameters,,, guile, GNU Guile Reference Manual}).  La principale différence est qu'il prend effet lorsque l'objet de type fichier renvoyé par @var{exp} est abaissé à un élément de dérivation ou de stockage."
+
+#. type: deffn
+#: doc/guix.texi:9702
+msgid "A typical use of @code{with-parameters} is to force the system in effect for a given object:"
+msgstr "Une utilisation typique de @code{with-parameters} consiste à forcer le système en vigueur pour un objet donné :"
+
+#. type: lisp
+#: doc/guix.texi:9706
+#, no-wrap
+msgid ""
+"(with-parameters ((%current-system \"i686-linux\"))\n"
+"  coreutils)\n"
+msgstr ""
+"(with-parameters ((%current-system \"i686-linux\"))\n"
+"  coreutils)\n"
+
+#. type: deffn
+#: doc/guix.texi:9710
+msgid "The example above returns an object that corresponds to the i686 build of Coreutils, regardless of the current value of @code{%current-system}."
+msgstr "L'exemple ci-dessus renvoie un objet qui correspond à la version i686 de Coreutils, quelle que soit la valeur actuelle de @code{%current-système}."
+
 #. type: Plain text
-#: doc/guix.texi:7515
+#: doc/guix.texi:9717
 msgid "Of course, in addition to gexps embedded in ``host'' code, there are also modules containing build tools.  To make it clear that they are meant to be used in the build stratum, these modules are kept in the @code{(guix build @dots{})} name space."
 msgstr "Bien sûr, en plus de gexps inclues dans le code « hôte », certains modules contiennent des outils de construction.  Pour savoir facilement qu'ils sont à utiliser dans la strate de construction, ces modules sont gardés dans l'espace de nom @code{(guix build @dots{})}."
 
 #. type: Plain text
-#: doc/guix.texi:7521
+#: doc/guix.texi:9723
 msgid "Internally, high-level objects are @dfn{lowered}, using their compiler, to either derivations or store items.  For instance, lowering a package yields a derivation, and lowering a @code{plain-file} yields a store item.  This is achieved using the @code{lower-object} monadic procedure."
 msgstr "En interne, les objets de haut-niveau sont @dfn{abaissés}, avec leur compilateur, soit en des dérivations, soit en des objets du dépôt.  Par exemple, abaisser un paquet crée une dérivation, et abaisser un @code{plain-file} crée un élément du dépôt.  Cela est effectué par la procédure monadique @code{lower-object}."
 
 #. type: deffn
-#: doc/guix.texi:7522
+#: doc/guix.texi:9724
 #, no-wrap
 msgid "{Monadic Procedure} lower-object @var{obj} [@var{system}] @"
 msgstr "{Procédure monadique} lower-object @var{obj} [@var{system}] @"
 
 #. type: deffn
-#: doc/guix.texi:7528
-msgid "[#:target #f] Return as a value in @var{%store-monad} the derivation or store item corresponding to @var{obj} for @var{system}, cross-compiling for @var{target} if @var{target} is true.  @var{obj} must be an object that has an associated gexp compiler, such as a @code{<package>}."
+#: doc/guix.texi:9730
+msgid "[#:target #f] Return as a value in @code{%store-monad} the derivation or store item corresponding to @var{obj} for @var{system}, cross-compiling for @var{target} if @var{target} is true.  @var{obj} must be an object that has an associated gexp compiler, such as a @code{<package>}."
 msgstr ""
 "[#:target #f]\n"
-"Renvoie la dérivation ou l'élément du dépôt comme une valeur de @var{%store-monad} qui correspond à @var{obj} pour @var{system}, en compilant de manière croisée pour @var{target} si @var{target} est vrai.  @var{obj} doit être un objet qui a un compilateur de gexp associé, comme un @code{<package>}."
+"Renvoie comme valeur dans @code{%store-monad} la dérivation ou l'élément de dépôt correspondant à @var{obj} pour @var{system}, en effectuant une compilation croisée pour @var{target} si @var{target} est vrai.  @var{obj} doit être un objet auquel est associé un compilateur gexp, tel qu'un @code{<package>}."
 
 #. type: section
-#: doc/guix.texi:7531
+#: doc/guix.texi:9733
 #, no-wrap
 msgid "Invoking @command{guix repl}"
 msgstr "Invoquer @command{guix repl}"
 
 #. type: cindex
-#: doc/guix.texi:7533
+#: doc/guix.texi:9735
+#, no-wrap
+msgid "REPL, read-eval-print loop, script"
+msgstr "REPL, boucle de lecture-évaluation-impression, script"
+
+#. type: Plain text
+#: doc/guix.texi:9745
+msgid "The @command{guix repl} command makes it easier to program Guix in Guile by launching a Guile @dfn{read-eval-print loop} (REPL) for interactive programming (@pxref{Using Guile Interactively,,, guile, GNU Guile Reference Manual}), or by running Guile scripts (@pxref{Running Guile Scripts,,, guile, GNU Guile Reference Manual}).  Compared to just launching the @command{guile} command, @command{guix repl} guarantees that all the Guix modules and all its dependencies are available in the search path."
+msgstr "La commande @command{guix repl} facilite la programmation de Guix dans Guile en lançant une boucle Guile @dfn{read-eval-print}. (REPL) pour la programmation interactive (@pxref{Using Guile Interactively, , , guile, GNU Guile Reference Manual}), ou en exécutant des scripts Guile (@pxref{Running Guile Scripts, , guile, GNU Guile Reference Manual}).  Par rapport au simple lancement de la commande @command{guile}, @command{guix repl} garantit que tous les modules Guix et toutes ses dépendances sont disponibles dans le chemin de recherche."
+
+#. type: example
+#: doc/guix.texi:9750
+#, no-wrap
+msgid "guix repl @var{options} [@var{file} @var{args}]\n"
+msgstr "guix repl @var{option} @var{fichier} @var{args}]\n"
+
+#. type: Plain text
+#: doc/guix.texi:9754
+msgid "When a @var{file} argument is provided, @var{file} is executed as a Guile scripts:"
+msgstr "Lorsqu'un argument @var{file} est fourni, @var{file} est exécuté comme un script Guile :"
+
+#. type: example
+#: doc/guix.texi:9757
+#, no-wrap
+msgid "guix repl my-script.scm\n"
+msgstr "guix repl mon-script.scm\n"
+
+#. type: Plain text
+#: doc/guix.texi:9761
+msgid "To pass arguments to the script, use @code{--} to prevent them from being interpreted as arguments to @command{guix repl} itself:"
+msgstr "Pour passer des arguments au script, utilisez @code{--} pour éviter qu'ils ne soient interprétés comme des arguments pour @command{guix repl} lui-même :"
+
+#. type: example
+#: doc/guix.texi:9764
+#, no-wrap
+msgid "guix repl -- my-script.scm --input=foo.txt\n"
+msgstr "guix repl -- mon-script.scm --input=foo.txt\n"
+
+#. type: Plain text
+#: doc/guix.texi:9769
+msgid "To make a script executable directly from the shell, using the guix executable that is on the user's search path, add the following two lines at the top of the script:"
+msgstr "Pour rendre exécutable un script directement depuis le shell, en utilisant l'exécutable guix qui se trouve dans le chemin de recherche utilisateur·rice, ajoutez les deux lignes suivantes en haut du script :"
+
+#. type: example
+#: doc/guix.texi:9773
 #, no-wrap
-msgid "REPL, read-eval-print loop"
-msgstr "REPL, read-eval-print loop"
+msgid ""
+"@code{#!/usr/bin/env -S guix repl --}\n"
+"@code{!#}\n"
+msgstr ""
+"@code{#!/usr/bin/env -S guix repl --}\n"
+"@code{!#}\n"
 
 #. type: Plain text
-#: doc/guix.texi:7539
-msgid "The @command{guix repl} command spawns a Guile @dfn{read-eval-print loop} (REPL) for interactive programming (@pxref{Using Guile Interactively,,, guile, GNU Guile Reference Manual}).  Compared to just launching the @command{guile} command, @command{guix repl} guarantees that all the Guix modules and all its dependencies are available in the search path.  You can use it this way:"
-msgstr "La commande @command{guix repl} démarre un @dfn{boucle lecture-évaluation-affichage} Guile pour la programmation interactive (@pxref{Using Guile Interactively,,, guile, GNU Guile Reference Manual}).  Comparé au lancement de la commande @command{guile}, @command{guix repl} garanti que tous les modules Guix et toutes ses dépendances sont disponibles dans le chemin de recherche.  Vous pouvez l'utiliser de cette manière :"
+#: doc/guix.texi:9776
+msgid "Without a file name argument, a Guile REPL is started:"
+msgstr "En l'absence d'un argument de nom de fichier, un REPL guile est lancé :"
 
 #. type: example
-#: doc/guix.texi:7545
+#: doc/guix.texi:9782
 #, no-wrap
 msgid ""
 "$ guix repl\n"
@@ -14250,127 +18466,163 @@ msgstr ""
 "$1 = #<package coreutils@@8.29 gnu/packages/base.scm:327 3e28300>\n"
 
 #. type: Plain text
-#: doc/guix.texi:7552
+#: doc/guix.texi:9789
 msgid "In addition, @command{guix repl} implements a simple machine-readable REPL protocol for use by @code{(guix inferior)}, a facility to interact with @dfn{inferiors}, separate processes running a potentially different revision of Guix."
 msgstr "En plus, @command{guix repl} implémente un protocole REPL simple lisible par une machine à utiliser avec @code{(guix inferior)}, un dispositif pour interagir avec des @dfn{inférieurs}, des processus séparés qui font tourner une version potentiellement différente de Guix."
 
 #. type: Plain text
-#: doc/guix.texi:7554
+#: doc/guix.texi:9791
 msgid "The available options are as follows:"
 msgstr "Les options disponibles sont les suivante :"
 
 #. type: item
-#: doc/guix.texi:7556 doc/guix.texi:9516
+#: doc/guix.texi:9793 doc/guix.texi:12059
 #, no-wrap
 msgid "--type=@var{type}"
 msgstr "--type=@var{type}"
 
 #. type: itemx
-#: doc/guix.texi:7557 doc/guix.texi:9517 doc/guix.texi:24566
+#: doc/guix.texi:9794 doc/guix.texi:12060 doc/guix.texi:31036
 #, no-wrap
 msgid "-t @var{type}"
 msgstr "-t @var{type}"
 
 #. type: table
-#: doc/guix.texi:7559
+#: doc/guix.texi:9796
 msgid "Start a REPL of the given @var{TYPE}, which can be one of the following:"
 msgstr "Démarrer un REPL du @var{type} donné, qui peut être l'un de ces types :"
 
 #. type: item
-#: doc/guix.texi:7561
+#: doc/guix.texi:9798
 #, no-wrap
 msgid "guile"
 msgstr "guile"
 
 #. type: table
-#: doc/guix.texi:7563
+#: doc/guix.texi:9800
 msgid "This is default, and it spawns a standard full-featured Guile REPL."
 msgstr "C'est la valeur par défaut.  Elle démarre un REPL Guile standard fonctionnel."
 
 #. type: item
-#: doc/guix.texi:7563
+#: doc/guix.texi:9800
 #, no-wrap
 msgid "machine"
 msgstr "machine"
 
 #. type: table
-#: doc/guix.texi:7566
+#: doc/guix.texi:9803
 msgid "Spawn a REPL that uses the machine-readable protocol.  This is the protocol that the @code{(guix inferior)} module speaks."
 msgstr "Démarre un REPL qui utilise le protocole lisible par machine.  C'est le protocole que parle le module @code{(guix inferior)}."
 
 #. type: table
-#: doc/guix.texi:7572
+#: doc/guix.texi:9809
 msgid "By default, @command{guix repl} reads from standard input and writes to standard output.  When this option is passed, it will instead listen for connections on @var{endpoint}.  Here are examples of valid options:"
 msgstr "Par défaut, @command{guix repl} lit depuis l'entrée standard et écrit sur la sortie standard.  Lorsque cette option est passée, il écoutera plutôt les connexions sur @var{endpoint}.  Voici un exemple d'options valides :"
 
 #. type: item
-#: doc/guix.texi:7574
+#: doc/guix.texi:9811
 #, no-wrap
 msgid "--listen=tcp:37146"
 msgstr "--listen=tcp:37146"
 
 #. type: table
-#: doc/guix.texi:7576
+#: doc/guix.texi:9813
 msgid "Accept connections on localhost on port 37146."
 msgstr "Accepte les connexions sur localhost, sur le port 31."
 
 #. type: item
-#: doc/guix.texi:7577
+#: doc/guix.texi:9814
 #, no-wrap
 msgid "--listen=unix:/tmp/socket"
 msgstr "--listen=unix:/tmp/socket"
 
 #. type: table
-#: doc/guix.texi:7579
+#: doc/guix.texi:9816
 msgid "Accept connections on the Unix-domain socket @file{/tmp/socket}."
 msgstr "Accepte les connexions sur le socket Unix-domain @file{/tmp/socket}."
 
+#. type: item
+#: doc/guix.texi:9818 doc/guix.texi:9922 doc/guix.texi:11528
+#: doc/guix.texi:11708 doc/guix.texi:11853 doc/guix.texi:12107
+#, no-wrap
+msgid "--load-path=@var{directory}"
+msgstr "--load-path=@var{répertoire}"
+
+#. type: itemx
+#: doc/guix.texi:9819 doc/guix.texi:9923 doc/guix.texi:11709
+#: doc/guix.texi:11854 doc/guix.texi:12108
+#, no-wrap
+msgid "-L @var{directory}"
+msgstr "-L @var{répertoire}"
+
+#. type: table
+#: doc/guix.texi:9822 doc/guix.texi:9926 doc/guix.texi:11531
+#: doc/guix.texi:11712 doc/guix.texi:11857 doc/guix.texi:12111
+msgid "Add @var{directory} to the front of the package module search path (@pxref{Package Modules})."
+msgstr "Ajoute @var{répertoire} au début du chemin de recherche de module de paquets (@pxref{Package Modules})."
+
+#. type: table
+#: doc/guix.texi:9825
+msgid "This allows users to define their own packages and make them visible to the script or REPL."
+msgstr "Cela permet à des utilisateurs de définir leur propres paquets et les rendre disponibles au script ou au REPL."
+
+#. type: itemx
+#: doc/guix.texi:9826 doc/guix.texi:10335
+#, no-wrap
+msgid "-q"
+msgstr "-q"
+
+#. type: table
+#: doc/guix.texi:9829
+msgid "Inhibit loading of the @file{~/.guile} file.  By default, that configuration file is loaded when spawning a @code{guile} REPL."
+msgstr "Inhiber le chargement du fichier @file{~/.guile}.  Par défaut, ce fichier de configuration est chargé lors de la création d'un fichier @code{guile}. REPL."
+
 #. type: Plain text
-#: doc/guix.texi:7590
+#: doc/guix.texi:9839
 msgid "This section describes Guix command-line utilities.  Some of them are primarily targeted at developers and users who write new package definitions, while others are more generally useful.  They complement the Scheme programming interface of Guix in a convenient way."
 msgstr "Cette section décrit les utilitaires en ligne de commande de Guix.  certains sont surtout faits pour les personnes qui écrivent de nouvelles définitions de paquets tandis que d'autres sont plus utiles pour une utilisation générale.  Ils complètent l'interface de programmation Scheme de Guix d'une manière pratique."
 
 #. type: cindex
-#: doc/guix.texi:7612
+#: doc/guix.texi:9861
 #, no-wrap
 msgid "package building"
 msgstr "construction de paquets"
 
 #. type: command{#1}
-#: doc/guix.texi:7613
+#: doc/guix.texi:9862
 #, no-wrap
 msgid "guix build"
 msgstr "guix build"
 
 #. type: Plain text
-#: doc/guix.texi:7619
+#: doc/guix.texi:9868
 msgid "The @command{guix build} command builds packages or derivations and their dependencies, and prints the resulting store paths.  Note that it does not modify the user's profile---this is the job of the @command{guix package} command (@pxref{Invoking guix package}).  Thus, it is mainly useful for distribution developers."
 msgstr "La commande @command{guix build} construit des paquets ou des dérivations et leurs dépendances et affiche les chemins du dépôt qui en résulte.  Remarquez qu'elle ne modifie pas le profil de l'utilisateur — c'est le travail de la commande @command{guix package} (@pxref{Invoking guix package}).  Ainsi, elle est surtout utile pour les personnes qui développent la distribution."
 
 #. type: example
-#: doc/guix.texi:7624
+#: doc/guix.texi:9873
 #, no-wrap
 msgid "guix build @var{options} @var{package-or-derivation}@dots{}\n"
 msgstr "guix build @var{options} @var{package-or-derivation}@dots{}\n"
 
 #. type: Plain text
-#: doc/guix.texi:7629
+#: doc/guix.texi:9878
 msgid "As an example, the following command builds the latest versions of Emacs and of Guile, displays their build logs, and finally displays the resulting directories:"
 msgstr "Par exemple, la commande suivante construit la dernière version d'Emacs et de Guile, affiche leur journaux de construction et enfin affiche les répertoires des résultats :"
 
 #. type: example
-#: doc/guix.texi:7632
+#: doc/guix.texi:9881
 #, no-wrap
 msgid "guix build emacs guile\n"
 msgstr "guix build emacs guile\n"
 
 #. type: Plain text
-#: doc/guix.texi:7635
+#: doc/guix.texi:9884
 msgid "Similarly, the following command builds all the available packages:"
 msgstr "De même, la commande suivante construit tous les paquets disponibles :"
 
 #. type: example
-#: doc/guix.texi:7639
+#: doc/guix.texi:9888
 #, no-wrap
 msgid ""
 "guix build --quiet --keep-going \\\n"
@@ -14380,334 +18632,318 @@ msgstr ""
 "  `guix package -A | cut -f1,2 --output-delimiter=@@`\n"
 
 #. type: Plain text
-#: doc/guix.texi:7647
+#: doc/guix.texi:9896
 msgid "@var{package-or-derivation} may be either the name of a package found in the software distribution such as @code{coreutils} or @code{coreutils@@8.20}, or a derivation such as @file{/gnu/store/@dots{}-coreutils-8.19.drv}.  In the former case, a package with the corresponding name (and optionally version) is searched for among the GNU distribution modules (@pxref{Package Modules})."
 msgstr "@var{package-or-derivation} peut être soit le nom d'un paquet trouvé dans la distribution logicielle comme @code{coreutils}, soit @code{coreutils@@8.20}, soit une dérivation comme @file{/gnu/store/@dots{}-coreutils-8.19.drv}.  Dans le premier cas, la commande cherchera un paquet avec le nom correspondant (et éventuellement la version) dans les modules de la distribution GNU (@pxref{Package Modules})."
 
 #. type: Plain text
-#: doc/guix.texi:7652
-msgid "Alternatively, the @code{--expression} option may be used to specify a Scheme expression that evaluates to a package; this is useful when disambiguating among several same-named packages or package variants is needed."
-msgstr "Autrement, l'option @code{--expression} peut être utilisée pour spécifier une expression Scheme qui s'évalue en un paquet ; c'est utile pour différencier des paquets avec le même nom ou des variantes de paquets."
+#: doc/guix.texi:9901
+msgid "Alternatively, the @option{--expression} option may be used to specify a Scheme expression that evaluates to a package; this is useful when disambiguating among several same-named packages or package variants is needed."
+msgstr "Autrement, l'option @option{--expression} peut être utilisée pour spécifier une expression Scheme qui s'évalue en un paquet ; c'est utile lorsqu'il est nécessaire de faire la distinction entre plusieurs paquets ou variantes de paquets portant le même nom."
 
 #. type: Plain text
-#: doc/guix.texi:7655
+#: doc/guix.texi:9904
 msgid "There may be zero or more @var{options}.  The available options are described in the subsections below."
 msgstr "Il peut y avoir aucune, une ou plusieurs @var{options}.  Les options disponibles sont décrites dans les sous-sections ci-dessous."
 
 #. type: Plain text
-#: doc/guix.texi:7670
+#: doc/guix.texi:9919
 msgid "A number of options that control the build process are common to @command{guix build} and other commands that can spawn builds, such as @command{guix package} or @command{guix archive}.  These are the following:"
 msgstr "Un certain nombre d'options qui contrôlent le processus de construction sont communes avec @command{guix build} et les autres commandes qui peuvent générer des constructions, comme @command{guix package} ou @command{guix archive}.  Voici ces options :"
 
-#. type: item
-#: doc/guix.texi:7673
-#, no-wrap
-msgid "--load-path=@var{directory}"
-msgstr "--load-path=@var{répertoire}"
-
-#. type: itemx
-#: doc/guix.texi:7674
-#, no-wrap
-msgid "-L @var{directory}"
-msgstr "-L @var{répertoire}"
-
 #. type: table
-#: doc/guix.texi:7677
-msgid "Add @var{directory} to the front of the package module search path (@pxref{Package Modules})."
-msgstr "Ajoute @var{répertoire} au début du chemin de recherche de module de paquets (@pxref{Package Modules})."
-
-#. type: table
-#: doc/guix.texi:7680
+#: doc/guix.texi:9929 doc/guix.texi:11534 doc/guix.texi:11715
+#: doc/guix.texi:11860 doc/guix.texi:12114
 msgid "This allows users to define their own packages and make them visible to the command-line tools."
 msgstr "Cela permet à des utilisateurs de définir leur propres paquets et les rendre disponibles aux outils en ligne de commande."
 
 #. type: item
-#: doc/guix.texi:7681
+#: doc/guix.texi:9930
 #, no-wrap
 msgid "--keep-failed"
 msgstr "--keep-failed"
 
 #. type: itemx
-#: doc/guix.texi:7682
+#: doc/guix.texi:9931
 #, no-wrap
 msgid "-K"
 msgstr "-K"
 
 #. type: table
-#: doc/guix.texi:7688
+#: doc/guix.texi:9937
 msgid "Keep the build tree of failed builds.  Thus, if a build fails, its build tree is kept under @file{/tmp}, in a directory whose name is shown at the end of the build log.  This is useful when debugging build issues.  @xref{Debugging Build Failures}, for tips and tricks on how to debug build issues."
 msgstr "Garde l'arborescence de construction des constructions en échec.  Ainsi, si une construction échoue, son arborescence de construction est préservée dans @file{/tmp}, dans un répertoire dont le nom est affiché à la fin du journal de construction.  Cela est utile pour déboguer des échecs de construction.  @xref{Debugging Build Failures}, pour des astuces sur la manière de déboguer des problèmes de construction."
 
 #. type: table
-#: doc/guix.texi:7692
-msgid "This option has no effect when connecting to a remote daemon with a @code{guix://} URI (@pxref{The Store, the @code{GUIX_DAEMON_SOCKET} variable})."
-msgstr "Cette option n'a pas d'effet lors de la connexion à un démon distant avec l'URI @code{guix://} (@pxref{The Store, la variable @code{GUIX_DAEMON_SOCKET}})."
+#: doc/guix.texi:9941
+msgid "This option implies @option{--no-offload}, and it has no effect when connecting to a remote daemon with a @code{guix://} URI (@pxref{The Store, the @env{GUIX_DAEMON_SOCKET} variable})."
+msgstr "Cette option implique @option{--no-offload}, et elle n'a pas d'effet quand elle est connectée à un démon distant avec une @code{guix://} URI (@pxref{The Store, the @env{GUIX_DAEMON_SOCKET} variable})."
 
 #. type: item
-#: doc/guix.texi:7693
+#: doc/guix.texi:9942
 #, no-wrap
 msgid "--keep-going"
 msgstr "--keep-going"
 
 #. type: itemx
-#: doc/guix.texi:7694
+#: doc/guix.texi:9943
 #, no-wrap
 msgid "-k"
 msgstr "-k"
 
 #. type: table
-#: doc/guix.texi:7697
+#: doc/guix.texi:9946
 msgid "Keep going when some of the derivations fail to build; return only once all the builds have either completed or failed."
 msgstr "Continue lorsque certaines dérivations échouent ; ne s'arrête que lorsque toutes les constructions ont soit réussies, soit échouées."
 
 #. type: table
-#: doc/guix.texi:7700
+#: doc/guix.texi:9949
 msgid "The default behavior is to stop as soon as one of the specified derivations has failed."
 msgstr "Le comportement par défaut est de s'arrêter dès qu'une des dérivations spécifiées échoue."
 
 #. type: table
-#: doc/guix.texi:7704
+#: doc/guix.texi:9953
 msgid "Do not build the derivations."
 msgstr "Ne pas construire les dérivations."
 
 #. type: anchor{#1}
-#: doc/guix.texi:7706
+#: doc/guix.texi:9955
 msgid "fallback-option"
 msgstr "option de repli"
 
 #. type: item
-#: doc/guix.texi:7706
+#: doc/guix.texi:9955
 #, no-wrap
 msgid "--fallback"
 msgstr "--fallback"
 
 #. type: table
-#: doc/guix.texi:7709
+#: doc/guix.texi:9958
 msgid "When substituting a pre-built binary fails, fall back to building packages locally (@pxref{Substitution Failure})."
 msgstr "Lorsque la substitution d'un binaire pré-compilé échoue, construit les paquets localement à la place (@pxref{Substitution Failure})."
 
 #. type: anchor{#1}
-#: doc/guix.texi:7715
+#: doc/guix.texi:9964
 msgid "client-substitute-urls"
 msgstr "client-substitute-urls"
 
 #. type: table
-#: doc/guix.texi:7715
+#: doc/guix.texi:9964
 msgid "Consider @var{urls} the whitespace-separated list of substitute source URLs, overriding the default list of URLs of @command{guix-daemon} (@pxref{daemon-substitute-urls,, @command{guix-daemon} URLs})."
 msgstr "Considère @var{urls} comme une liste d'URL de sources de substituts séparés par des espaces, et remplace la liste par défaut d'URL de @command{guix-daemon} (@pxref{daemon-substitute-urls,, @command{guix-daemon} URLs})."
 
 #. type: table
-#: doc/guix.texi:7719
+#: doc/guix.texi:9968
 msgid "This means that substitutes may be downloaded from @var{urls}, provided they are signed by a key authorized by the system administrator (@pxref{Substitutes})."
 msgstr "Cela signifie que les substituts peuvent être téléchargés depuis @var{urls}, tant qu'ils sont signés par une clef autorisée par l'administrateur système (@pxref{Substituts})."
 
 #. type: table
-#: doc/guix.texi:7722
+#: doc/guix.texi:9971
 msgid "When @var{urls} is the empty string, substitutes are effectively disabled."
 msgstr "Lorsque @var{urls} est la chaîne vide, cela a pour effet de désactiver la substitution."
 
 #. type: item
-#: doc/guix.texi:7728
+#: doc/guix.texi:9977
 #, no-wrap
 msgid "--no-grafts"
 msgstr "--no-grafts"
 
 #. type: table
-#: doc/guix.texi:7732
+#: doc/guix.texi:9981
 msgid "Do not ``graft'' packages.  In practice, this means that package updates available as grafts are not applied.  @xref{Security Updates}, for more information on grafts."
 msgstr "Ne par « greffer » les paquets.  En pratique, cela signifie que les mises à jour des paquets disponibles comme des greffes ne sont pas appliquées.  @xref{Security Updates}, pour plus d'information sur les greffes."
 
 #. type: item
-#: doc/guix.texi:7733
+#: doc/guix.texi:9982
 #, no-wrap
 msgid "--rounds=@var{n}"
 msgstr "--rounds=@var{n}"
 
 #. type: table
-#: doc/guix.texi:7736
+#: doc/guix.texi:9985
 msgid "Build each derivation @var{n} times in a row, and raise an error if consecutive build results are not bit-for-bit identical."
 msgstr "Construit chaque dérivation @var{n} fois d'affilé, et renvoie une erreur si les constructions consécutives ne sont pas identiques bit-à-bit."
 
 #. type: table
-#: doc/guix.texi:7741
+#: doc/guix.texi:9990
 msgid "This is a useful way to detect non-deterministic builds processes.  Non-deterministic build processes are a problem because they make it practically impossible for users to @emph{verify} whether third-party binaries are genuine.  @xref{Invoking guix challenge}, for more."
 msgstr "Cela est une manière utile pour détecter des processus de construction non déterministes.  Les processus de construction non déterministes sont problématiques car ils rendent pratiquement impossible la @emph{vérification} par les utilisateurs de l'authenticité de binaires tiers.  @xref{Invoking guix challenge}, pour plus d'informations."
 
 #. type: table
-#: doc/guix.texi:7747
-msgid "Note that, currently, the differing build results are not kept around, so you will have to manually investigate in case of an error---e.g., by stashing one of the build results with @code{guix archive --export} (@pxref{Invoking guix archive}), then rebuilding, and finally comparing the two results."
-msgstr "Remarquez que, les résultats qui diffèrent ne sont pas gardés, donc vous devrez inspecter manuellement chaque erreur — p.@: ex.@: en gardant l'un des résultats avec @code{guix archive --export} (@pxref{Invoking guix archive}), puis en reconstruisant, et enfin en comparant les deux résultats."
-
-#. type: table
-#: doc/guix.texi:7752
-msgid "Do not attempt to offload builds @i{via} the ``build hook'' of the daemon (@pxref{Daemon Offload Setup}).  That is, always build things locally instead of offloading builds to remote machines."
-msgstr "N'essaye pas de décharger les constructions via le « crochet de construction » du démon (@pxref{Daemon Offload Setup}).  C'est-à-dire que tout sera construit localement plutôt que de décharger les constructions à une machine distante."
-
-#. type: table
-#: doc/guix.texi:7759
-msgid "By default, the daemon's setting is honored (@pxref{Invoking guix-daemon, @code{--max-silent-time}})."
-msgstr "Par défaut, les paramètres du démon sont pris en compte (@pxref{Invoking guix-daemon, @code{--max-silent-time}})."
+#: doc/guix.texi:10006
+msgid "By default, the daemon's setting is honored (@pxref{Invoking guix-daemon, @option{--max-silent-time}})."
+msgstr "Par défaut, le paramètre du démon est pris en compte (@pxref{Invoquer guix-daemon, @option{--max-silent-time}})."
 
 #. type: table
-#: doc/guix.texi:7766
-msgid "By default, the daemon's setting is honored (@pxref{Invoking guix-daemon, @code{--timeout}})."
-msgstr "Par défaut, les paramètres du démon sont pris en compte (@pxref{Invoking guix-daemon, @code{--timeout}})."
+#: doc/guix.texi:10013
+msgid "By default, the daemon's setting is honored (@pxref{Invoking guix-daemon, @option{--timeout}})."
+msgstr "Par défaut, le paramètre du démon est pris en compte (@pxref{Invoquer guix-daemon, @option{--timeout}})."
 
 #. type: cindex
-#: doc/guix.texi:7769
+#: doc/guix.texi:10016
 #, no-wrap
 msgid "verbosity, of the command-line tools"
 msgstr "verbosité, des outils en ligne de commande"
 
 #. type: cindex
-#: doc/guix.texi:7770
+#: doc/guix.texi:10017
 #, no-wrap
 msgid "build logs, verbosity"
 msgstr "journaux de construction, verbosité"
 
 #. type: item
-#: doc/guix.texi:7771
+#: doc/guix.texi:10018
 #, no-wrap
 msgid "-v @var{level}"
 msgstr "-v [@var{niveau}]"
 
 #. type: itemx
-#: doc/guix.texi:7772
+#: doc/guix.texi:10019
 #, no-wrap
 msgid "--verbosity=@var{level}"
 msgstr "--verbosity=@var{niveau}"
 
 #. type: table
-#: doc/guix.texi:7776
+#: doc/guix.texi:10023
 msgid "Use the given verbosity @var{level}, an integer.  Choosing 0 means that no output is produced, 1 is for quiet output, and 2 shows all the build log output on standard error."
 msgstr "Utiliser le @var{niveau} de verbosité, en tant qu'entier.  0 signifie qu'aucune sortie n'est produite, 1 signifie une sortie silencieuse et 2 montre tous les journaux de construction sur la sortie d'erreur standard."
 
 #. type: table
-#: doc/guix.texi:7781
+#: doc/guix.texi:10028
 msgid "Allow the use of up to @var{n} CPU cores for the build.  The special value @code{0} means to use as many CPU cores as available."
 msgstr "Permet d'utiliser jusqu'à @var{n} cœurs du CPU pour la construction.  La valeur spéciale @code{0} signifie autant de cœurs que possible."
 
 #. type: table
-#: doc/guix.texi:7787
-msgid "Allow at most @var{n} build jobs in parallel.  @xref{Invoking guix-daemon, @code{--max-jobs}}, for details about this option and the equivalent @command{guix-daemon} option."
-msgstr "Permet au plus @var{n} travaux de construction en parallèle.  @xref{Invoking guix-daemon, @code{--max-jobs}}, pour plus de détails sur cette option et l'option équivalente pour @command{guix-daemon}."
+#: doc/guix.texi:10034
+msgid "Allow at most @var{n} build jobs in parallel.  @xref{Invoking guix-daemon, @option{--max-jobs}}, for details about this option and the equivalent @command{guix-daemon} option."
+msgstr "Permettre au maximum à @var{n} de construire des jobs en parallèle.  @xref{Invoquer guix-daemon, @option{--max-jobs}}, pour plus de détails sur cette option et l'option équivalente @command{guix-daemon}."
 
 #. type: item
-#: doc/guix.texi:7788
+#: doc/guix.texi:10035
 #, no-wrap
 msgid "--debug=@var{level}"
 msgstr "--debug=@var{niveau}"
 
 #. type: table
-#: doc/guix.texi:7792
+#: doc/guix.texi:10039
 msgid "Produce debugging output coming from the build daemon.  @var{level} must be an integer between 0 and 5; higher means more verbose output.  Setting a level of 4 or more may be helpful when debugging setup issues with the build daemon."
 msgstr "Produire une sortie de débogage qui provient du démon de construction.  @var{niveau} doit être un entier entre 0 et 5 ; plus grand est ce nombre, plus verbeuse sera la sortie.  Indiquer un niveau de 4 ou plus peut être utile pour déboguer des problèmes d'installation avec le démon de construction."
 
 #. type: Plain text
-#: doc/guix.texi:7799
+#: doc/guix.texi:10046
 msgid "Behind the scenes, @command{guix build} is essentially an interface to the @code{package-derivation} procedure of the @code{(guix packages)} module, and to the @code{build-derivations} procedure of the @code{(guix derivations)} module."
-msgstr "Sous le capot, @command{guix build} est surtout un interface à la procédure @code{package-derivation} du module @code{(guix packages)}, et à la procédure @code{build-derivations} du module @code{(guix derivations)}."
+msgstr "Sous le capot, @command{guix build} est surtout une interface à la procédure @code{package-derivation} du module @code{(guix packages)}, et à la procédure @code{build-derivations} du module @code{(guix derivations)}."
 
 #. type: Plain text
-#: doc/guix.texi:7803
-msgid "In addition to options explicitly passed on the command line, @command{guix build} and other @command{guix} commands that support building honor the @code{GUIX_BUILD_OPTIONS} environment variable."
-msgstr "En plus des options passées explicitement par la ligne de commande, @command{guix build} et les autres commande @command{guix} qui peuvent effectuer des construction honorent la variable d'environnement @code{GUIX_BUILD_OPTIONS}."
+#: doc/guix.texi:10050
+msgid "In addition to options explicitly passed on the command line, @command{guix build} and other @command{guix} commands that support building honor the @env{GUIX_BUILD_OPTIONS} environment variable."
+msgstr "En plus des options passées explicitement par la ligne de commande, @command{guix build} et les autres commandes @command{guix} qui peuvent effectuer des constructions permettent la variable d'environnement @env{GUIX_BUILD_OPTIONS}."
 
 #. type: defvr
-#: doc/guix.texi:7804
+#: doc/guix.texi:10051
 #, no-wrap
 msgid "{Environment Variable} GUIX_BUILD_OPTIONS"
 msgstr "{Variable d'environnement} GUIX_BUILD_OPTIONS"
 
 #. type: defvr
-#: doc/guix.texi:7809
+#: doc/guix.texi:10056
 msgid "Users can define this variable to a list of command line options that will automatically be used by @command{guix build} and other @command{guix} commands that can perform builds, as in the example below:"
 msgstr "Les utilisateurs peuvent définir cette variable à une liste d'options de la ligne de commande qui seront automatiquement utilisées par @command{guix build} et les autres commandes @command{guix} qui peuvent effectuer des constructions, comme dans l'exemple suivant :"
 
 #. type: example
-#: doc/guix.texi:7812
+#: doc/guix.texi:10059
 #, no-wrap
 msgid "$ export GUIX_BUILD_OPTIONS=\"--no-substitutes -c 2 -L /foo/bar\"\n"
 msgstr "$ export GUIX_BUILD_OPTIONS=\"--no-substitutes -c 2 -L /foo/bar\"\n"
 
 #. type: defvr
-#: doc/guix.texi:7816
+#: doc/guix.texi:10063
 msgid "These options are parsed independently, and the result is appended to the parsed command-line options."
 msgstr "Ces options sont analysées indépendamment, et le résultat est ajouté aux options de la ligne de commande analysées."
 
 #. type: cindex
-#: doc/guix.texi:7822
+#: doc/guix.texi:10069
 #, no-wrap
 msgid "package variants"
 msgstr "variantes de paquets"
 
 #. type: Plain text
-#: doc/guix.texi:7830
+#: doc/guix.texi:10077
 msgid "Another set of command-line options supported by @command{guix build} and also @command{guix package} are @dfn{package transformation options}.  These are options that make it possible to define @dfn{package variants}---for instance, packages built from different source code.  This is a convenient way to create customized packages on the fly without having to type in the definitions of package variants (@pxref{Defining Packages})."
 msgstr "Un autre ensemble d'options de la ligne de commande supportés par @command{guix build} et aussi @command{guix package} sont les @dfn{options de transformation de paquets}.  Ce sont des options qui rendent possible la définition de @dfn{variantes de paquets} — par exemple, des paquets construit à partir de sources différentes.  C'est une manière simple de créer des paquets personnalisés à la volée sans avoir à taper les définitions de variantes de paquets (@pxref{Defining Packages})."
 
+#. type: Plain text
+#: doc/guix.texi:10081
+msgid "Package transformation options are preserved across upgrades: @command{guix upgrade} attempts to apply transformation options initially used when creating the profile to the upgraded packages."
+msgstr "Les options de transformation des paquets sont préservées dans les mises à jour : @command{guix upgrade} tente d'appliquer aux paquets mis à jour les options de transformation initialement utilisées lors de la création du profil."
+
+#. type: Plain text
+#: doc/guix.texi:10086
+msgid "The available options are listed below.  Most commands support them and also support a @option{--help-transform} option that lists all the available options and a synopsis (these options are not shown in the @option{--help} output for brevity)."
+msgstr "Les options disponibles sont énumérées ci-dessous.  La plupart des commandes les prennent en charge, ainsi qu'une option @option{--help-transform} qui liste toutes les options disponibles et un synopsis (ces options ne sont pas affichées dans la sortie @option{--help} par souci de concision)."
+
 #. type: item
-#: doc/guix.texi:7833
+#: doc/guix.texi:10089
 #, no-wrap
 msgid "--with-source=@var{source}"
 msgstr "--with-source=@var{source}"
 
 #. type: itemx
-#: doc/guix.texi:7834
+#: doc/guix.texi:10090
 #, no-wrap
 msgid "--with-source=@var{package}=@var{source}"
 msgstr "--with-source=@var{paquet}=@var{source}"
 
 #. type: itemx
-#: doc/guix.texi:7835
+#: doc/guix.texi:10091
 #, no-wrap
 msgid "--with-source=@var{package}@@@var{version}=@var{source}"
 msgstr "--with-source=@var{paquet}@@@var{version}=@var{source}"
 
 #. type: table
-#: doc/guix.texi:7840
+#: doc/guix.texi:10096
 msgid "Use @var{source} as the source of @var{package}, and @var{version} as its version number.  @var{source} must be a file name or a URL, as for @command{guix download} (@pxref{Invoking guix download})."
-msgstr "Utiles @var{source} comme la source de @var{paquet}, et @var{version} comme son numéro de version.  @var{source} doit être un nom de fichier ou une URL, comme pour @command{guix download} (@pxref{Invoking guix download})."
+msgstr "Utilise @var{source} comme la source de @var{paquet}, et @var{version} comme son numéro de version.  @var{source} doit être un nom de fichier ou une URL, comme pour @command{guix download} (@pxref{Invoking guix download})."
 
 #. type: table
-#: doc/guix.texi:7846
+#: doc/guix.texi:10102
 msgid "When @var{package} is omitted, it is taken to be the package name specified on the command line that matches the base of @var{source}---e.g., if @var{source} is @code{/src/guile-2.0.10.tar.gz}, the corresponding package is @code{guile}."
 msgstr "Lorsque @var{paquet} est omis, la commande utilisera le nom de paquet spécifié par la base de @var{source} — p.@: ex.@: si @var{source} est @code{/src/guix-2.0.10.tar.gz}, le paquet correspondant est @code{guile}."
 
 #. type: table
-#: doc/guix.texi:7849
+#: doc/guix.texi:10105
 msgid "Likewise, when @var{version} is omitted, the version string is inferred from @var{source}; in the previous example, it is @code{2.0.10}."
 msgstr "De même, lorsque @var{version} est omis, la chaîne de version est inférée à partir de @var{source} ; dans l'exemple précédent, il s'agit de @code{2.0.10}."
 
 #. type: table
-#: doc/guix.texi:7854
+#: doc/guix.texi:10110
 msgid "This option allows users to try out versions of packages other than the one provided by the distribution.  The example below downloads @file{ed-1.7.tar.gz} from a GNU mirror and uses that as the source for the @code{ed} package:"
 msgstr "Cette option permet aux utilisateurs d'essayer des version des paquets différentes de celles fournies par la distribution.  L'exemple ci-dessous télécharge @file{ed-1.7.tar.g} depuis un miroir GNU et l'utilise comme source pour le paquet @code{ed} :"
 
 #. type: example
-#: doc/guix.texi:7857
+#: doc/guix.texi:10113
 #, no-wrap
 msgid "guix build ed --with-source=mirror://gnu/ed/ed-1.7.tar.gz\n"
 msgstr "guix build ed --with-source=mirror://gnu/ed/ed-1.7.tar.gz\n"
 
 #. type: table
-#: doc/guix.texi:7861
-msgid "As a developer, @code{--with-source} makes it easy to test release candidates:"
-msgstr "En tant que développeur, @code{--with-source} permet de tester facilement des version bêta :"
+#: doc/guix.texi:10117
+msgid "As a developer, @option{--with-source} makes it easy to test release candidates:"
+msgstr "En tant que développeur·euse, @option{--with-source} permet de tester facilement des version bêta :"
 
 #. type: example
-#: doc/guix.texi:7864
+#: doc/guix.texi:10120
 #, no-wrap
 msgid "guix build guile --with-source=../guile-2.0.9.219-e1bb7.tar.xz\n"
 msgstr "guix build guile --with-source=../guile-2.0.9.219-e1bb7.tar.xz\n"
 
 #. type: table
-#: doc/guix.texi:7867
+#: doc/guix.texi:10123
 msgid "@dots{} or to build from a checkout in a pristine environment:"
 msgstr "@dots{} ou pour construire un dépôt de gestion de version dans un environnement vierge :"
 
 #. type: example
-#: doc/guix.texi:7871
+#: doc/guix.texi:10127
 #, no-wrap
 msgid ""
 "$ git clone git://git.sv.gnu.org/guix.git\n"
@@ -14717,94 +18953,191 @@ msgstr ""
 "$ guix build guix --with-source=guix@@1.0=./guix\n"
 
 #. type: item
-#: doc/guix.texi:7873
+#: doc/guix.texi:10129
 #, no-wrap
 msgid "--with-input=@var{package}=@var{replacement}"
 msgstr "--with-input=@var{paquet}=@var{remplaçant}"
 
 #. type: table
-#: doc/guix.texi:7878
+#: doc/guix.texi:10134
 msgid "Replace dependency on @var{package} by a dependency on @var{replacement}.  @var{package} must be a package name, and @var{replacement} must be a package specification such as @code{guile} or @code{guile@@1.8}."
 msgstr "Remplace la dépendance sur @var{paquet} par une dépendance à @var{remplaçant}.  @var{paquet} doit être un nom de paquet et @var{remplaçant} doit être une spécification de paquet comme @code{guile} ou @code{guile@@1.8}."
 
 #. type: table
-#: doc/guix.texi:7882
+#: doc/guix.texi:10138
 msgid "For instance, the following command builds Guix, but replaces its dependency on the current stable version of Guile with a dependency on the legacy version of Guile, @code{guile@@2.0}:"
 msgstr "Par exemple, la commande suivante construit Guix, mais remplace sa dépendance à la version stable actuelle de Guile par une dépendance à une ancienne version de Guile, @code{guile@@2.0} :"
 
 #. type: example
-#: doc/guix.texi:7885
+#: doc/guix.texi:10141
 #, no-wrap
 msgid "guix build --with-input=guile=guile@@2.0 guix\n"
 msgstr "guix build --with-input=guile=guile@@2.0 guix\n"
 
 #. type: table
-#: doc/guix.texi:7890
+#: doc/guix.texi:10146
 msgid "This is a recursive, deep replacement.  So in this example, both @code{guix} and its dependency @code{guile-json} (which also depends on @code{guile}) get rebuilt against @code{guile@@2.0}."
 msgstr "C'est un remplacement récursif profond.  Donc dans cet exemple, à la fois @code{guix} et ses dépendances @code{guile-json} (qui dépend aussi de @code{guile}) sont reconstruits avec @code{guile@@2.0}."
 
 #. type: table
-#: doc/guix.texi:7893
+#: doc/guix.texi:10149
 msgid "This is implemented using the @code{package-input-rewriting} Scheme procedure (@pxref{Defining Packages, @code{package-input-rewriting}})."
 msgstr "Cette option est implémentée avec la procédure Scheme @code{package-input-rewriting} (@pxref{Defining Packages, @code{package-input-rewriting}})."
 
 #. type: item
-#: doc/guix.texi:7894
+#: doc/guix.texi:10150
 #, no-wrap
 msgid "--with-graft=@var{package}=@var{replacement}"
 msgstr "--with-graft=@var{paquet}=@var{remplaçant}"
 
 #. type: table
-#: doc/guix.texi:7900
-msgid "This is similar to @code{--with-input} but with an important difference: instead of rebuilding the whole dependency chain, @var{replacement} is built and then @dfn{grafted} onto the binaries that were initially referring to @var{package}.  @xref{Security Updates}, for more information on grafts."
-msgstr "Cette option est similaire à @code{--with-input} mais avec une différence importante : plutôt que de reconstruire la chaîne de dépendance complète, @var{remplaçant} est construit puis @dfn{greffé} sur les binaires qui référençaient initialement @var{paquet}.  @xref{Security Updates}, pour plus d'information sur les greffes."
+#: doc/guix.texi:10156
+msgid "This is similar to @option{--with-input} but with an important difference: instead of rebuilding the whole dependency chain, @var{replacement} is built and then @dfn{grafted} onto the binaries that were initially referring to @var{package}.  @xref{Security Updates}, for more information on grafts."
+msgstr "Cette option est similaire à @option{--with-input} mais avec une différence importante : plutôt que de reconstruire la chaîne de dépendance complète, @var{remplaçant} est construit puis @dfn{greffé} sur les binaires qui référençaient initialement @var{paquet}.  @xref{Security Updates}, pour plus d'information sur les greffes."
 
 #. type: table
-#: doc/guix.texi:7904
+#: doc/guix.texi:10160
 msgid "For example, the command below grafts version 3.5.4 of GnuTLS onto Wget and all its dependencies, replacing references to the version of GnuTLS they currently refer to:"
 msgstr "Par exemple, la commande ci-dessous greffe la version 3.5.4 de GnuTLS sur Wget et toutes ses dépendances, en remplaçant les références à la version actuelle de GnuTLS à laquelle ils se réfèrent actuellement :"
 
 #. type: example
-#: doc/guix.texi:7907
+#: doc/guix.texi:10163
 #, no-wrap
 msgid "guix build --with-graft=gnutls=gnutls@@3.5.4 wget\n"
 msgstr "guix build --with-graft=gnutls=gnutls@@3.5.4 wget\n"
 
 #. type: table
-#: doc/guix.texi:7916
+#: doc/guix.texi:10172
 msgid "This has the advantage of being much faster than rebuilding everything.  But there is a caveat: it works if and only if @var{package} and @var{replacement} are strictly compatible---for example, if they provide a library, the application binary interface (ABI) of those libraries must be compatible.  If @var{replacement} is somehow incompatible with @var{package}, then the resulting package may be unusable.  Use with care!"
-msgstr "Cela a l'avantage d'être bien plus rapide que de tout reconstruire.  Mais il y a un piège : cela ne fonctionne que si @var{paquet} et @var{remplaçant} sont strictement compatibles — par exemple, s'ils fournissent une bibliothèque, l'interface binaire applicative (ABI) de ces bibliothèques doivent être compatibles.  Si @var{remplaçant} est incompatible avec @var{paquet}, alors le paquet qui en résulte peut devenir inutilisable.  À utilisez avec précaution !"
+msgstr "Cela a l'avantage d'être bien plus rapide que de tout reconstruire.  Mais il y a un piège : cela ne fonctionne que si @var{paquet} et @var{remplaçant} sont strictement compatibles — par exemple, s'ils fournissent une bibliothèque, l'interface binaire applicative (ABI) de ces bibliothèques doivent être compatibles.  Si @var{remplaçant} est incompatible avec @var{paquet}, alors le paquet qui en résulte peut devenir inutilisable.  À utiliser avec précaution !"
+
+#. type: cindex
+#: doc/guix.texi:10173 doc/guix.texi:32308
+#, no-wrap
+msgid "debugging info, rebuilding"
+msgstr "informations de débogage, reconstruire"
 
 #. type: item
-#: doc/guix.texi:7917
+#: doc/guix.texi:10174
+#, no-wrap
+msgid "--with-debug-info=@var{package}"
+msgstr "--with-debug-info=@var{paquet}"
+
+#. type: table
+#: doc/guix.texi:10179
+msgid "Build @var{package} in a way that preserves its debugging info and graft it onto packages that depend on it.  This is useful if @var{package} does not already provide debugging info as a @code{debug} output (@pxref{Installing Debugging Files})."
+msgstr "Construire @var{paquet} de manière à préserver ses informations de débogage et les greffer sur les paquets qui en dépendent.  Cela est utile si @var{paquet} ne fournit pas déjà les informations de débogage sous forme de sortie @code{debug} (@pxref{Installing Debugging Files})."
+
+#. type: table
+#: doc/guix.texi:10185
+msgid "For example, suppose you're experiencing a crash in Inkscape and would like to see what's up in GLib, a library deep down in Inkscape's dependency graph.  GLib lacks a @code{debug} output, so debugging is tough.  Fortunately, you rebuild GLib with debugging info and tack it on Inkscape:"
+msgstr "Par exemple, supposons que vous subissiez un plantage de Inkscape et que vous vouliez voir ce qui se passe dans GLib, une bibliothèque au fond du graphe de dépendance d'Inkscape.  GLib n'a pas de sortie @code{debug}, donc le débogage est difficile.  Heureusement, vous reconstruisez la GLib avec les informations de débogage et vous l'installez dans Inkscape :"
+
+#. type: example
+#: doc/guix.texi:10188 doc/guix.texi:32339
+#, no-wrap
+msgid "guix install inkscape --with-debug-info=glib\n"
+msgstr "guix install inkscape --with-debug-info=glib\n"
+
+#. type: table
+#: doc/guix.texi:10192
+msgid "Only GLib needs to be recompiled so this takes a reasonable amount of time.  @xref{Installing Debugging Files}, for more info."
+msgstr "Seule GLib doit être recompilée, ce qui prend un temps raisonnable.  @xref{Installing Debugging Files}, pour plus d'informations."
+
+#. type: quotation
+#: doc/guix.texi:10198
+msgid "Under the hood, this option works by passing the @samp{#:strip-binaries? #f} to the build system of the package of interest (@pxref{Build Systems}).  Most build systems support that option but some do not.  In that case, an error is raised."
+msgstr "Sous le capot, cette option fonctionne en passant par le @samp{#:strip-binaries ? #f} au système de construction du paquet qui nous intéresse (@pxref{Build Systems}).  La plupart des systèmes de compilation supportent cette option, mais certains ne le font pas.  Dans ce cas, une erreur se produit."
+
+#. type: quotation
+#: doc/guix.texi:10202
+msgid "Likewise, if a C/C++ package is built without @code{-g} (which is rarely the case), debugging info will remain unavailable even when @code{#:strip-binaries?} is false."
+msgstr "De même, si un paquet C/C++ est construit sans @code{-g} (ce qui est rarement le cas), les informations de débogage resteront indisponibles même si @code{#:strip-binaries?} est faux."
+
+#. type: cindex
+#: doc/guix.texi:10204
+#, no-wrap
+msgid "tool chain, changing the build tool chain of a package"
+msgstr "chaîne d'outils, changer la chaîne d'outils d'un paquet"
+
+#. type: item
+#: doc/guix.texi:10205
+#, no-wrap
+msgid "--with-c-toolchain=@var{package}=@var{toolchain}"
+msgstr "--with-c-toolchain=@var{package}=@var{toolchain}"
+
+#. type: table
+#: doc/guix.texi:10209
+msgid "This option changes the compilation of @var{package} and everything that depends on it so that they get built with @var{toolchain} instead of the default GNU tool chain for C/C++."
+msgstr "Cette option modifie la compilation de @var{package} et de tout ce qui en dépend afin qu'ils soient construits avec @var{toolchain} au lieu de la chaîne d'outils GNU par défaut pour C/C++."
+
+#. type: example
+#: doc/guix.texi:10216
+#, no-wrap
+msgid ""
+"guix build octave-cli \\\n"
+"  --with-c-toolchain=fftw=gcc-toolchain@@10 \\\n"
+"  --with-c-toolchain=fftwf=gcc-toolchain@@10\n"
+msgstr ""
+"guix build octave-cli \\\n"
+"  --with-c-toolchain=fftw=gcc-toolchain@@10 \\\n"
+"  --with-c-toolchain=fftwf=gcc-toolchain@@10\n"
+
+#. type: table
+#: doc/guix.texi:10223
+msgid "The command above builds a variant of the @code{fftw} and @code{fftwf} packages using version 10 of @code{gcc-toolchain} instead of the default tool chain, and then builds a variant of the GNU@tie{}Octave command-line interface using them.  GNU@tie{}Octave itself is also built with @code{gcc-toolchain@@10}."
+msgstr "La commande ci-dessus construit une variante des paquets @code{fftw} et @code{fftwf} en utilisant la version 10 de @code{gcc-toolchain} au lieu de la chaîne d'outils par défaut, puis construit une variante de l'interface en ligne de commande GNU@tie{}Octave en les utilisant.  GNU@tie{}Octave lui-même est également construit avec @code{gcc-toolchain@@10}."
+
+#. type: table
+#: doc/guix.texi:10227
+msgid "This other example builds the Hardware Locality (@code{hwloc}) library and its dependents up to @code{intel-mpi-benchmarks} with the Clang C compiler:"
+msgstr "Cet autre exemple construit la bibliothèque Hardware Locality (@code{hwloc}) et ses dépendances jusqu'à @code{intel-mpi-benchmarks} avec le compilateur Clang C :"
+
+#. type: example
+#: doc/guix.texi:10231
+#, no-wrap
+msgid ""
+"guix build --with-c-toolchain=hwloc=clang-toolchain \\\n"
+"           intel-mpi-benchmarks\n"
+msgstr ""
+"guix build --with-c-toolchain=hwloc=clang-toolchain \\\n"
+"           intel-mpi-benchmarks\n"
+
+#. type: quotation
+#: doc/guix.texi:10240
+msgid "There can be application binary interface (ABI) incompatibilities among tool chains.  This is particularly true of the C++ standard library and run-time support libraries such as that of OpenMP.  By rebuilding all dependents with the same tool chain, @option{--with-c-toolchain} minimizes the risks of incompatibility but cannot entirely eliminate them.  Choose @var{package} wisely."
+msgstr "Il peut y avoir des incompatibilités d'interface binaire d'application (ABI) entre les chaînes d'outils.  Cela est particulièrement vrai pour la bibliothèque standard C++ et les bibliothèques de support d'exécution telles que celle d'OpenMP.  En reconstruisant toutes les dépendances avec la même chaîne d'outils, @option{--with-c-toolchain} minimise les risques d'incompatibilité mais ne peut pas les éliminer entièrement.  Choisissez @var{package} judicieusement."
+
+#. type: item
+#: doc/guix.texi:10242
 #, no-wrap
 msgid "--with-git-url=@var{package}=@var{url}"
 msgstr "--with-git-url=@var{paquet}=@var{url}"
 
 #. type: cindex
-#: doc/guix.texi:7918
+#: doc/guix.texi:10243
 #, no-wrap
 msgid "Git, using the latest commit"
 msgstr "Git, utiliser le dernier commit"
 
 #. type: cindex
-#: doc/guix.texi:7919
+#: doc/guix.texi:10244
 #, no-wrap
 msgid "latest commit, building"
 msgstr "dernier commit, construction"
 
 #. type: table
-#: doc/guix.texi:7923
+#: doc/guix.texi:10248
 msgid "Build @var{package} from the latest commit of the @code{master} branch of the Git repository at @var{url}.  Git sub-modules of the repository are fetched, recursively."
 msgstr "Construire @var{paquet} depuis le dernier commit de la branche @code{master} du dépôt sur @var{url}.  Les sous-modules Git du dépôt sont récupérés, récursivement."
 
 #. type: table
-#: doc/guix.texi:7926
+#: doc/guix.texi:10251
 msgid "For example, the following command builds the NumPy Python library against the latest commit of the master branch of Python itself:"
 msgstr "Par exemple, la commande suivante construit la bibliothèque Python NumPy avec le dernier commit de la branche master de Python lui-même :"
 
 #. type: example
-#: doc/guix.texi:7930
+#: doc/guix.texi:10255
 #, no-wrap
 msgid ""
 "guix build python-numpy \\\n"
@@ -14814,179 +19147,243 @@ msgstr ""
 "  --with-git-url=python=https://github.com/python/cpython\n"
 
 #. type: table
-#: doc/guix.texi:7934
-msgid "This option can also be combined with @code{--with-branch} or @code{--with-commit} (see below)."
-msgstr "Cette option peut aussi être combinée avec @code{--with-branch} ou @code{--with-commit} (voir plus bas)."
+#: doc/guix.texi:10259
+msgid "This option can also be combined with @option{--with-branch} or @option{--with-commit} (see below)."
+msgstr "Cette option peut aussi être combinée avec @option{--with-branch} ou @option{--with-commit} (voir plus bas)."
 
 #. type: cindex
-#: doc/guix.texi:7935 doc/guix.texi:20626
+#: doc/guix.texi:10260 doc/guix.texi:25318
 #, no-wrap
 msgid "continuous integration"
 msgstr "intégration continue"
 
 #. type: table
-#: doc/guix.texi:7941
+#: doc/guix.texi:10266
 msgid "Obviously, since it uses the latest commit of the given branch, the result of such a command varies over time.  Nevertheless it is a convenient way to rebuild entire software stacks against the latest commit of one or more packages.  This is particularly useful in the context of continuous integration (CI)."
 msgstr "Évidemment, comme cela utilise le dernier commit d'une branche donnée, le résultat d'une telle commande varie avec le temps.  Néanmoins c'est une manière pratique pour reconstruire des piles logicielles entières avec le dernier commit d'un ou plusieurs paquets.  C'est particulièrement pratique dans le contexte d'une intégration continue."
 
 #. type: table
-#: doc/guix.texi:7945
+#: doc/guix.texi:10270
 msgid "Checkouts are kept in a cache under @file{~/.cache/guix/checkouts} to speed up consecutive accesses to the same repository.  You may want to clean it up once in a while to save disk space."
 msgstr "Les clones sont gardés dans un cache dans @file{~/.cache/guix/checkouts} pour accélérer les accès consécutifs au même dépôt.  Vous pourriez vouloir le nettoyer de temps en temps pour récupérer de l'espace disque."
 
 #. type: item
-#: doc/guix.texi:7946
+#: doc/guix.texi:10271
 #, no-wrap
 msgid "--with-branch=@var{package}=@var{branch}"
 msgstr "--with-branch=@var{paquet}=@var{branche}"
 
 #. type: table
-#: doc/guix.texi:7952
-msgid "Build @var{package} from the latest commit of @var{branch}.  If the @code{source} field of @var{package} is an origin with the @code{git-fetch} method (@pxref{origin Reference}) or a @code{git-checkout} object, the repository URL is taken from that @code{source}.  Otherwise you have to use @code{--with-git-url} to specify the URL of the Git repository."
-msgstr "Construire @var{paquet} à partir du dernier commit de la @var{branche}.  Si le champ @code{source} de @var{paquet} est une origine avec la méthode @code{git-fetch} (@pxref{origin Reference}) ou un objet @code{git-checkout}, l'URL du dépôt est récupérée à partir de cette @code{source}.  Sinon, vous devez utiliser @code{--with-git-url} pour spécifier l'URL du dépôt Git."
+#: doc/guix.texi:10277
+msgid "Build @var{package} from the latest commit of @var{branch}.  If the @code{source} field of @var{package} is an origin with the @code{git-fetch} method (@pxref{origin Reference}) or a @code{git-checkout} object, the repository URL is taken from that @code{source}.  Otherwise you have to use @option{--with-git-url} to specify the URL of the Git repository."
+msgstr "Construire @var{paquet} à partir du dernier commit de la @var{branche}.  Si le champ @code{source} de @var{paquet} est une origine avec la méthode @code{git-fetch} (@pxref{origin Reference}) ou un objet @code{git-checkout}, l'URL du dépôt est récupérée à partir de cette @code{source}.  Sinon, vous devez utiliser @option{--with-git-url} pour spécifier l'URL du dépôt Git."
 
 #. type: table
-#: doc/guix.texi:7957
+#: doc/guix.texi:10282
 msgid "For instance, the following command builds @code{guile-sqlite3} from the latest commit of its @code{master} branch, and then builds @code{guix} (which depends on it) and @code{cuirass} (which depends on @code{guix}) against this specific @code{guile-sqlite3} build:"
 msgstr "Par exemple, la commande suivante construit @code{guile-sqlite3} à partir du dernier commit de sa branche @code{master}, puis construit @code{guix} (qui en dépend) et @code{cuirass} (qui dépend de @code{guix}) avec cette construction spécifique de @code{guile-sqlite3} :"
 
 #. type: example
-#: doc/guix.texi:7960
+#: doc/guix.texi:10285
 #, no-wrap
 msgid "guix build --with-branch=guile-sqlite3=master cuirass\n"
 msgstr "guix build --with-branch=guile-sqlite3=master cuirass\n"
 
 #. type: item
-#: doc/guix.texi:7962
+#: doc/guix.texi:10287
 #, no-wrap
 msgid "--with-commit=@var{package}=@var{commit}"
 msgstr "--with-commit=@var{paquet}=@var{commit}"
 
 #. type: table
-#: doc/guix.texi:7966
-msgid "This is similar to @code{--with-branch}, except that it builds from @var{commit} rather than the tip of a branch.  @var{commit} must be a valid Git commit SHA1 identifier."
-msgstr "Cela est similaire à @code{--with-branch}, sauf qu'elle construite à partir de @var{commit} au lieu du sommet d'une branche.  @var{commit} doit être un identifiant SHA1 de commit Git valide."
+#: doc/guix.texi:10291
+msgid "This is similar to @option{--with-branch}, except that it builds from @var{commit} rather than the tip of a branch.  @var{commit} must be a valid Git commit SHA1 identifier or a tag."
+msgstr "Cela est similaire à @option{--with-branch}, sauf qu'elle construite à partir de @var{commit} au lieu du sommet d'une branche.  @var{commit} doit être un identifiant SHA1 de commit Git valide ou un tag."
+
+#. type: cindex
+#: doc/guix.texi:10292
+#, no-wrap
+msgid "test suite, skipping"
+msgstr "suite de tests, passer outre"
+
+#. type: item
+#: doc/guix.texi:10293
+#, no-wrap
+msgid "--without-tests=@var{package}"
+msgstr "--without-tests=@var{paquet}"
+
+#. type: table
+#: doc/guix.texi:10299
+msgid "Build @var{package} without running its tests.  This can be useful in situations where you want to skip the lengthy test suite of a intermediate package, or if a package's test suite fails in a non-deterministic fashion.  It should be used with care because running the test suite is a good way to ensure a package is working as intended."
+msgstr "Construire @var{paquet} sans lancer la suite de tests. Celà peut être utile dans les situations où vous voulez éviter la longue série de tests d'un paquet intermédiaire, ou si une suite de tests de paquet échoue dans un mode non déterministe. Il doit être utilisé avec précaution car l'exécution de la suite de tests est un bon moyen de s'assurer qu'un paquet fonctionne comme prévu."
+
+#. type: table
+#: doc/guix.texi:10303
+msgid "Turning off tests leads to a different store item.  Consequently, when using this option, anything that depends on @var{package} must be rebuilt, as in this example:"
+msgstr "L'arrêt des tests conduit à un autre élément du dépôt.  Par conséquent, lorsque vous utilisez cette option, tout ce qui dépend de @var{paquet} doit être reconstruit, comme dans cet exemple :"
+
+#. type: example
+#: doc/guix.texi:10306
+#, no-wrap
+msgid "guix install --without-tests=python python-notebook\n"
+msgstr "guix install --without-tests=python python-notebook\n"
+
+#. type: table
+#: doc/guix.texi:10312
+msgid "The command above installs @code{python-notebook} on top of @code{python} built without running its test suite.  To do so, it also rebuilds everything that depends on @code{python}, including @code{python-notebook} itself."
+msgstr "La commande ci-dessus installe @code{python-notebook} par dessus @code{python}, construit sans exécuter sa suite de tests.  Pour ce faire, elle reconstruit également tout ce qui dépend de @code{python}, y compris @code{python-notebook} lui-même."
+
+#. type: table
+#: doc/guix.texi:10318
+msgid "Internally, @option{--without-tests} relies on changing the @code{#:tests?} option of a package's @code{check} phase (@pxref{Build Systems}).  Note that some packages use a customized @code{check} phase that does not respect a @code{#:tests? #f} setting.  Therefore, @option{--without-tests} has no effect on these packages."
+msgstr "En interne, @option{--without-tests} repose sur le changement de l'option @code{#:tests?} de la phase @code{check} d'un paquet (@pxref{Build Systems}).  Notez que certains paquets utilisent une phase @code{check} personnalisée qui ne respecte pas le paramètre @code{#:tests? #f}.  Par conséquent, @option{--without-tests} n'a aucun effet sur ces paquets."
 
 #. type: Plain text
-#: doc/guix.texi:7973
+#: doc/guix.texi:10325
+msgid "Wondering how to achieve the same effect using Scheme code, for example in your manifest, or how to write your own package transformation? @xref{Defining Package Variants}, for an overview of the programming interfaces available."
+msgstr "Vous vous demandez comme faire la même chose dans du code Scheme, par exemple dans votre manifeste, ou comme écrire votre propre transformation de paquets ?  @xref{Defining Package Variants}, pour un aperçu des interfaces de programmation disponibles."
+
+#. type: Plain text
+#: doc/guix.texi:10331
 msgid "The command-line options presented below are specific to @command{guix build}."
 msgstr "Les options de la ligne de commande ci-dessous sont spécifiques à @command{guix build}."
 
 #. type: item
-#: doc/guix.texi:7976
+#: doc/guix.texi:10334
 #, no-wrap
 msgid "--quiet"
 msgstr "--quiet"
 
-#. type: itemx
-#: doc/guix.texi:7977
-#, no-wrap
-msgid "-q"
-msgstr "-q"
-
 #. type: table
-#: doc/guix.texi:7981
-msgid "Build quietly, without displaying the build log; this is equivalent to @code{--verbosity=0}.  Upon completion, the build log is kept in @file{/var} (or similar) and can always be retrieved using the @option{--log-file} option."
-msgstr "Construire en silence, sans afficher les journaux de construction ; c'est équivalent à @code{--verbosity=0}.  À la fin, le journal de construction est gardé dans @file{/var} (ou similaire) et on peut toujours l'y trouver avec l'option @option{--log-file}."
+#: doc/guix.texi:10339
+msgid "Build quietly, without displaying the build log; this is equivalent to @option{--verbosity=0}.  Upon completion, the build log is kept in @file{/var} (or similar) and can always be retrieved using the @option{--log-file} option."
+msgstr "Construire silencieusement, sans afficher les journaux de construction ; c'est équivalent à @option{--verbosity=0}.  À la fin, le journal de construction est gardé dans @file{/var} (ou similaire) et on peut toujours l'y trouver avec l'option @option{--log-file}."
 
 #. type: item
-#: doc/guix.texi:7982
+#: doc/guix.texi:10340
 #, no-wrap
 msgid "--file=@var{file}"
 msgstr "--file=@var{fichier}"
 
 #. type: table
-#: doc/guix.texi:7986
+#: doc/guix.texi:10344
 msgid "Build the package, derivation, or other file-like object that the code within @var{file} evaluates to (@pxref{G-Expressions, file-like objects})."
 msgstr "Construit le paquet, la dérivation ou l'objet simili-fichier en lequel le code dans @var{file} s'évalue (@pxref{G-Expressions, file-like objects})."
 
 #. type: table
-#: doc/guix.texi:7989
+#: doc/guix.texi:10347
 msgid "As an example, @var{file} might contain a package definition like this (@pxref{Defining Packages}):"
 msgstr "Par exemple, @var{file} peut contenir une définition de paquet comme ceci (@pxref{Defining Packages}) :"
 
 #. type: table
-#: doc/guix.texi:7997
+#: doc/guix.texi:10356
+msgid "The @var{file} may also contain a JSON representation of one or more package definitions.  Running @code{guix build -f} on @file{hello.json} with the following contents would result in building the packages @code{myhello} and @code{greeter}:"
+msgstr "@var{file} peut également contenir une représentation JSON d'une ou plusieurs définitions de paquets.  L'exécution de @code{guix build -f} sur @file{hello.json} avec le contenu suivant entraînerait la construction des paquets @code{myhello} et @code{greeter} :"
+
+#. type: item
+#: doc/guix.texi:10361
+#, no-wrap
+msgid "--manifest=@var{manifest}"
+msgstr "--manifest=@var{manifest}"
+
+#. type: itemx
+#: doc/guix.texi:10362
+#, no-wrap
+msgid "-m @var{manifest}"
+msgstr "-m @var{manifest}"
+
+#. type: table
+#: doc/guix.texi:10365
+msgid "Build all packages listed in the given @var{manifest} (@pxref{profile-manifest, @option{--manifest}})."
+msgstr "Construire tous les paquets listés dans un @var{manifest} donné (@pxref{profile-manifest, @option{--manifest}})."
+
+#. type: table
+#: doc/guix.texi:10369
 msgid "Build the package or derivation @var{expr} evaluates to."
 msgstr "Construit le paquet ou la dérivation en lequel @var{expr} s'évalue."
 
 #. type: table
-#: doc/guix.texi:8001
+#: doc/guix.texi:10373
 msgid "For example, @var{expr} may be @code{(@@ (gnu packages guile)  guile-1.8)}, which unambiguously designates this specific variant of version 1.8 of Guile."
 msgstr "Par exemple, @var{expr} peut être @code{(@@ (gnu packages guile)  guile-1.8)}, qui désigne sans ambiguïté cette variante spécifique de la version 1.8 de Guile."
 
 #. type: table
-#: doc/guix.texi:8005
+#: doc/guix.texi:10377
 msgid "Alternatively, @var{expr} may be a G-expression, in which case it is used as a build program passed to @code{gexp->derivation} (@pxref{G-Expressions})."
 msgstr "Autrement, @var{exp} peut être une G-expression, auquel cas elle est utilisée comme un programme de construction passé à @code{gexp->derivation} (@pxref{G-Expressions})."
 
 #. type: table
-#: doc/guix.texi:8009
+#: doc/guix.texi:10381
 msgid "Lastly, @var{expr} may refer to a zero-argument monadic procedure (@pxref{The Store Monad}).  The procedure must return a derivation as a monadic value, which is then passed through @code{run-with-store}."
 msgstr "Enfin, @var{expr} peut se référer à une procédure monadique à au moins un argument (@pxref{The Store Monad}).  La procédure doit renvoyer une dérivation comme une valeur monadique, qui est ensuite lancée à travers @code{run-with-store}."
 
 #. type: item
-#: doc/guix.texi:8010
+#: doc/guix.texi:10382
 #, no-wrap
 msgid "--source"
 msgstr "--source"
 
 #. type: itemx
-#: doc/guix.texi:8011
+#: doc/guix.texi:10383
 #, no-wrap
 msgid "-S"
 msgstr "-S"
 
 #. type: table
-#: doc/guix.texi:8014
+#: doc/guix.texi:10386
 msgid "Build the source derivations of the packages, rather than the packages themselves."
 msgstr "Construit les dérivation source des paquets, plutôt que des paquets eux-mêmes."
 
 #. type: table
-#: doc/guix.texi:8018
+#: doc/guix.texi:10390
 msgid "For instance, @code{guix build -S gcc} returns something like @file{/gnu/store/@dots{}-gcc-4.7.2.tar.bz2}, which is the GCC source tarball."
 msgstr "Par exemple, @code{guix build -S gcc} renvoie quelque chose comme @file{/gnu/store/@dots{}-gcc-4.7.2.tar.bz2}, qui est l'archive des sources de GCC."
 
 #. type: table
-#: doc/guix.texi:8022
+#: doc/guix.texi:10394
 msgid "The returned source tarball is the result of applying any patches and code snippets specified in the package @code{origin} (@pxref{Defining Packages})."
 msgstr "L'archive des sources renvoyée est le résultat de l'application des correctifs et des extraits de code éventuels spécifiés dans le champ @code{origin} du paquet (@pxref{Defining Packages})."
 
+#. type: table
+#: doc/guix.texi:10399
+msgid "Note that @command{guix build -S} compiles the sources only of the specified packages.  They do not include the sources of statically linked dependencies and by themselves are insufficient for reproducing the packages."
+msgstr "Notez que @command{guix build -S} compile seulement les sources des paquets spécifiés. Les sources de dépendances statiquement liées ne sont pas incluses et sont en elles-mêmes insuffisantes pour reproduire les paquets."
+
 #. type: item
-#: doc/guix.texi:8023
+#: doc/guix.texi:10400
 #, no-wrap
 msgid "--sources"
 msgstr "--sources"
 
 #. type: table
-#: doc/guix.texi:8030
-msgid "Fetch and return the source of @var{package-or-derivation} and all their dependencies, recursively.  This is a handy way to obtain a local copy of all the source code needed to build @var{packages}, allowing you to eventually build them even without network access.  It is an extension of the @code{--source} option and can accept one of the following optional argument values:"
-msgstr "Récupère et renvoie la source de @var{package-or-derivation} et toute ses dépendances, récursivement.  C'est pratique pour obtenir une copie locale de tous les codes sources requis pour construire @var{packages}, ce qui vous permet de les construire plus tard même sans accès réseau.  C'est une extension de l'option @code{--source} et peut accepter l'un des arguments facultatifs suivants :"
+#: doc/guix.texi:10407
+msgid "Fetch and return the source of @var{package-or-derivation} and all their dependencies, recursively.  This is a handy way to obtain a local copy of all the source code needed to build @var{packages}, allowing you to eventually build them even without network access.  It is an extension of the @option{--source} option and can accept one of the following optional argument values:"
+msgstr "Récupère et renvoie la source de @var{package-or-derivation} et toute ses dépendances, récursivement.  C'est pratique pour obtenir une copie locale de tous les codes sources requis pour construire @var{packages}, ce qui vous permet de les construire plus tard même sans accès au réseau.  C'est une extension de l'option @option{--source} et elle peut accepter l'un des arguments facultatifs suivants :"
 
 #. type: item
-#: doc/guix.texi:8032 doc/guix.texi:9394
+#: doc/guix.texi:10409 doc/guix.texi:11914
 #, no-wrap
 msgid "package"
 msgstr "package"
 
 #. type: table
-#: doc/guix.texi:8035
-msgid "This value causes the @code{--sources} option to behave in the same way as the @code{--source} option."
-msgstr "Cette valeur fait que l'option @code{--sources} se comporte comme l'option @code{--source}."
+#: doc/guix.texi:10412
+msgid "This value causes the @option{--sources} option to behave in the same way as the @option{--source} option."
+msgstr "Cette valeur fait que l'option @option{--sources} se comporte comme l'option @option{--source}."
 
 #. type: item
-#: doc/guix.texi:8036 doc/guix.texi:13887
+#: doc/guix.texi:10413 doc/guix.texi:17488
 #, no-wrap
 msgid "all"
 msgstr "all"
 
 #. type: table
-#: doc/guix.texi:8039
+#: doc/guix.texi:10416
 msgid "Build the source derivations of all packages, including any source that might be listed as @code{inputs}.  This is the default value."
 msgstr "Construit les dérivations des sources de tous les paquets, dont les sources qui pourraient être listées dans @code{inputs}.  C'est la valeur par défaut."
 
 #. type: example
-#: doc/guix.texi:8045
+#: doc/guix.texi:10422
 #, no-wrap
 msgid ""
 "$ guix build --sources tzdata\n"
@@ -15000,18 +19397,18 @@ msgstr ""
 "   /gnu/store/@dots{}-tzcode2015b.tar.gz.drv\n"
 
 #. type: item
-#: doc/guix.texi:8047
+#: doc/guix.texi:10424
 #, no-wrap
 msgid "transitive"
 msgstr "transitive"
 
 #. type: table
-#: doc/guix.texi:8051
+#: doc/guix.texi:10428
 msgid "Build the source derivations of all packages, as well of all transitive inputs to the packages.  This can be used e.g.@: to prefetch package source for later offline building."
 msgstr "Construire les dérivations des sources de tous les paquets, ainsi que toutes celles des entrées transitives des paquets.  On peut par exemple utiliser cette option pour précharger les sources des paquets pour les construire plus tard hors ligne."
 
 #. type: example
-#: doc/guix.texi:8062
+#: doc/guix.texi:10439
 #, no-wrap
 msgid ""
 "$ guix build --sources=transitive tzdata\n"
@@ -15035,158 +19432,152 @@ msgstr ""
 "@dots{}\n"
 
 #. type: table
-#: doc/guix.texi:8072
+#: doc/guix.texi:10449
 msgid "Attempt to build for @var{system}---e.g., @code{i686-linux}---instead of the system type of the build host.  The @command{guix build} command allows you to repeat this option several times, in which case it builds for all the specified systems; other commands ignore extraneous @option{-s} options."
 msgstr "Essayer de construire pour @var{system} — p.@: ex.@: @code{i686-linux} — au lieu du type de système de l'hôte.  La commande @command{guix build} vous permet de répéter cette option plusieurs fois, auquel cas elle construit pour tous les systèmes spécifiés ; les autres commandes ignorent les options @option{-s} supplémentaires."
 
 #. type: quotation
-#: doc/guix.texi:8077
-msgid "The @code{--system} flag is for @emph{native} compilation and must not be confused with cross-compilation.  See @code{--target} below for information on cross-compilation."
-msgstr "Le drapeau @code{--system} est utilisé pour une compilation @emph{native} et ne doit pas être confondu avec une compilation croisée.  Voir @code{--target} ci-dessous pour des informations sur la compilation croisée."
+#: doc/guix.texi:10454
+msgid "The @option{--system} flag is for @emph{native} compilation and must not be confused with cross-compilation.  See @option{--target} below for information on cross-compilation."
+msgstr "Le drapeau @option{--system} est utilisé pour une compilation @emph{native} et ne doit pas être confondu avec une compilation croisée.  Voir @option{--target} ci-dessous pour des informations sur la compilation croisée."
 
 #. type: table
-#: doc/guix.texi:8084
-msgid "An example use of this is on Linux-based systems, which can emulate different personalities.  For instance, passing @code{--system=i686-linux} on an @code{x86_64-linux} system or @code{--system=armhf-linux} on an @code{aarch64-linux} system allows you to build packages in a complete 32-bit environment."
-msgstr "Par exemple, passer @code{--system=i686-linux} sur un système @code{x86_64-linux} ou @code{--system=armhf-linux} sur un système @code{aarch64-linux} vous permet de construire des paquets dans un environnement entièrement 32-bits.  C'est une exemple d'utilisation de cette option sur les systèmes Linux, qui peuvent émuler plusieurs personnalités."
+#: doc/guix.texi:10461
+msgid "An example use of this is on Linux-based systems, which can emulate different personalities.  For instance, passing @option{--system=i686-linux} on an @code{x86_64-linux} system or @option{--system=armhf-linux} on an @code{aarch64-linux} system allows you to build packages in a complete 32-bit environment."
+msgstr "Un exemple d'utilisation de ceci sur les systèmes Linux, qui peut émuler différentes personnalités. Par exemple, passer @option{--system=i686-linux} sur un système @code{x86_64-linux} ou @option{--system=armhf-linux} sur un système @code{aarch64-linux} vous permet de construire des paquets dans un environnement 32-bit complet."
 
 #. type: quotation
-#: doc/guix.texi:8089
+#: doc/guix.texi:10466
 msgid "Building for an @code{armhf-linux} system is unconditionally enabled on @code{aarch64-linux} machines, although certain aarch64 chipsets do not allow for this functionality, notably the ThunderX."
 msgstr "La possibilité de construire pour un système @code{armhf-linux} est activé sans condition sur les machines @code{aarch64-linux}, bien que certaines puces aarch64 n'en soient pas capables, comme les ThunderX."
 
 #. type: table
-#: doc/guix.texi:8095
+#: doc/guix.texi:10472
 msgid "Similarly, when transparent emulation with QEMU and @code{binfmt_misc} is enabled (@pxref{Virtualization Services, @code{qemu-binfmt-service-type}}), you can build for any system for which a QEMU @code{binfmt_misc} handler is installed."
 msgstr "De même, lorsque l'émulation transparente avec QEMU et @code{binfnmt_misc} est activée (@pxref{Virtualization Services, @code{qemu-binfmt-service-type}}), vous pouvez construire pour n'importe quel système pour lequel un gestionnaire QEMU @code{binfmt_misc} est installé."
 
 #. type: table
-#: doc/guix.texi:8099
+#: doc/guix.texi:10476
 msgid "Builds for a system other than that of the machine you are using can also be offloaded to a remote machine of the right architecture.  @xref{Daemon Offload Setup}, for more information on offloading."
 msgstr "Les constructions pour un autre système que celui de la machine que vous utilisez peuvent aussi être déchargées à une machine distante de la bonne architecture.  @xref{Daemon Offload Setup}, pour plus d'information sur le déchargement."
 
 #. type: table
-#: doc/guix.texi:8105
-msgid "Cross-build for @var{triplet}, which must be a valid GNU triplet, such as @code{\"mips64el-linux-gnu\"} (@pxref{Specifying Target Triplets, GNU configuration triplets,, autoconf, Autoconf})."
-msgstr "Effectuer une compilation croisée pour @var{triplet} qui doit être un triplet GNU valide, comme @code{\"mips64el-linux-gnu\"} (@pxref{Specifying Target Triplets, GNU configuration triplets,, autoconf, Autoconf})."
+#: doc/guix.texi:10482
+msgid "Cross-build for @var{triplet}, which must be a valid GNU triplet, such as @code{\"aarch64-linux-gnu\"} (@pxref{Specifying Target Triplets, GNU configuration triplets,, autoconf, Autoconf})."
+msgstr "Effectuer une compilation croisée pour @var{triplet} qui doit être un triplet GNU valide, comme @code{\"aarch64-linux-gnu\"} (@pxref{Specifying Target Triplets, GNU configuration triplets,, autoconf, Autoconf})."
 
 #. type: anchor{#1}
-#: doc/guix.texi:8107
+#: doc/guix.texi:10484
 msgid "build-check"
 msgstr "vérification de la construction"
 
 #. type: item
-#: doc/guix.texi:8107
+#: doc/guix.texi:10484
 #, no-wrap
 msgid "--check"
 msgstr "--check"
 
 #. type: cindex
-#: doc/guix.texi:8108
+#: doc/guix.texi:10485
 #, no-wrap
 msgid "determinism, checking"
 msgstr "déterminisme, vérification"
 
 #. type: cindex
-#: doc/guix.texi:8109
+#: doc/guix.texi:10486
 #, no-wrap
 msgid "reproducibility, checking"
 msgstr "reproductibilité, vérification"
 
 #. type: table
-#: doc/guix.texi:8113
+#: doc/guix.texi:10490
 msgid "Rebuild @var{package-or-derivation}, which are already available in the store, and raise an error if the build results are not bit-for-bit identical."
 msgstr "Reconstruit les @var{package-or-derivation}, qui sont déjà disponibles dans le dépôt et lève une erreur si les résultats des constructions ne sont pas identiques bit-à-bit."
 
 #. type: table
-#: doc/guix.texi:8118
+#: doc/guix.texi:10495
 msgid "This mechanism allows you to check whether previously installed substitutes are genuine (@pxref{Substitutes}), or whether the build result of a package is deterministic.  @xref{Invoking guix challenge}, for more background information and tools."
 msgstr "Ce mécanisme vous permet de vérifier si les substituts précédemment installés sont authentiques (@pxref{Substituts}) ou si le résultat de la construction d'un paquet est déterministe. @xref{Invoking guix challenge} pour plus d'informations et pour les outils."
 
 #. type: item
-#: doc/guix.texi:8123
+#: doc/guix.texi:10500
 #, no-wrap
 msgid "--repair"
 msgstr "--repair"
 
 #. type: cindex
-#: doc/guix.texi:8124
+#: doc/guix.texi:10501
 #, no-wrap
 msgid "repairing store items"
 msgstr "réparer les éléments du dépôt"
 
 #. type: table
-#: doc/guix.texi:8128
+#: doc/guix.texi:10505
 msgid "Attempt to repair the specified store items, if they are corrupt, by re-downloading or rebuilding them."
 msgstr "Essaye de réparer les éléments du dépôt spécifiés, s'ils sont corrompus, en les téléchargeant ou en les construisant à nouveau."
 
 #. type: table
-#: doc/guix.texi:8130
+#: doc/guix.texi:10507
 msgid "This operation is not atomic and thus restricted to @code{root}."
 msgstr "Cette opération n'est pas atomique et donc restreinte à l'utilisateur @code{root}"
 
 #. type: item
-#: doc/guix.texi:8131
+#: doc/guix.texi:10508
 #, no-wrap
 msgid "--derivations"
 msgstr "--derivations"
 
-#. type: itemx
-#: doc/guix.texi:8132 doc/guix.texi:24561
-#, no-wrap
-msgid "-d"
-msgstr "-d"
-
 #. type: table
-#: doc/guix.texi:8135
+#: doc/guix.texi:10512
 msgid "Return the derivation paths, not the output paths, of the given packages."
 msgstr "Renvoie les chemins de dérivation, et non les chemins de sortie, des paquets donnés."
 
 #. type: cindex
-#: doc/guix.texi:8138
+#: doc/guix.texi:10515
 #, no-wrap
 msgid "GC roots, adding"
-msgstr "racines du GC, ajout"
+msgstr "Racines du GC, ajout"
 
 #. type: cindex
-#: doc/guix.texi:8139
+#: doc/guix.texi:10516
 #, no-wrap
 msgid "garbage collector roots, adding"
 msgstr "ajout de racines au ramasse-miettes"
 
 #. type: table
-#: doc/guix.texi:8142 doc/guix.texi:24592
+#: doc/guix.texi:10519 doc/guix.texi:31067
 msgid "Make @var{file} a symlink to the result, and register it as a garbage collector root."
 msgstr "Fait de @var{fichier} un lien symbolique vers le résultat, et l'enregistre en tant que racine du ramasse-miettes."
 
 #. type: table
-#: doc/guix.texi:8148
+#: doc/guix.texi:10525
 msgid "Consequently, the results of this @command{guix build} invocation are protected from garbage collection until @var{file} is removed.  When that option is omitted, build results are eligible for garbage collection as soon as the build completes.  @xref{Invoking guix gc}, for more on GC roots."
 msgstr "En conséquence, les résultats de cette invocation de @command{guix build} sont protégés du ramasse-miettes jusqu'à ce que @var{fichier} soit supprimé.  Lorsque cette option est omise, les constructions sont susceptibles d'être glanées."
 
 #. type: item
-#: doc/guix.texi:8149
+#: doc/guix.texi:10526
 #, no-wrap
 msgid "--log-file"
 msgstr "--log-file"
 
 #. type: cindex
-#: doc/guix.texi:8150
+#: doc/guix.texi:10527
 #, no-wrap
 msgid "build logs, access"
 msgstr "journaux de construction, accès"
 
 #. type: table
-#: doc/guix.texi:8154
+#: doc/guix.texi:10531
 msgid "Return the build log file names or URLs for the given @var{package-or-derivation}, or raise an error if build logs are missing."
 msgstr "Renvoie les noms des journaux de construction ou les URL des @var{package-or-derivation} donnés ou lève une erreur si les journaux de construction sont absents."
 
 #. type: table
-#: doc/guix.texi:8157
+#: doc/guix.texi:10534
 msgid "This works regardless of how packages or derivations are specified.  For instance, the following invocations are equivalent:"
 msgstr "Cela fonctionne indépendamment de la manière dont les paquets ou les dérivations sont spécifiées.  Par exemple, les invocations suivantes sont équivalentes :"
 
 #. type: example
-#: doc/guix.texi:8163
+#: doc/guix.texi:10540
 #, no-wrap
 msgid ""
 "guix build --log-file `guix build -d guile`\n"
@@ -15200,53 +19591,53 @@ msgstr ""
 "guix build --log-file -e '(@@ (gnu packages guile) guile-2.0)'\n"
 
 #. type: table
-#: doc/guix.texi:8168
-msgid "If a log is unavailable locally, and unless @code{--no-substitutes} is passed, the command looks for a corresponding log on one of the substitute servers (as specified with @code{--substitute-urls}.)"
-msgstr "Si un journal n'est pas disponible localement, à moins que @code{--no-substitutes} ne soit passé, la commande cherche un journal correspondant sur l'un des serveurs de substituts (tels que spécifiés avec @code{--substitute-urls}.)"
+#: doc/guix.texi:10545
+msgid "If a log is unavailable locally, and unless @option{--no-substitutes} is passed, the command looks for a corresponding log on one of the substitute servers (as specified with @option{--substitute-urls})."
+msgstr "Si un journal n'est pas disponible localement, à moins que @option{--no-substitutes} ne soit passé, la commande cherche un journal correspondant sur l'un des serveurs de substituts (tels que spécifiés avec @option{--substitute-urls}.)"
 
 #. type: table
-#: doc/guix.texi:8171
+#: doc/guix.texi:10548
 msgid "So for instance, imagine you want to see the build log of GDB on MIPS, but you are actually on an @code{x86_64} machine:"
 msgstr "Donc par exemple, imaginons que vous souhaitiez voir le journal de construction de GDB sur MIPS, mais que vous n'avez qu'une machine @code{x86_64} :"
 
 #. type: example
-#: doc/guix.texi:8175
+#: doc/guix.texi:10552
 #, no-wrap
 msgid ""
-"$ guix build --log-file gdb -s mips64el-linux\n"
+"$ guix build --log-file gdb -s aarch64-linux\n"
 "https://@value{SUBSTITUTE-SERVER}/log/@dots{}-gdb-7.10\n"
 msgstr ""
-"$ guix build --log-file gdb -s mips64el-linux\n"
+"$ guix build --log-file gdb -s aarch64-linux\n"
 "https://@value{SUBSTITUTE-SERVER}/log/@dots{}-gdb-7.10\n"
 
 #. type: table
-#: doc/guix.texi:8178
+#: doc/guix.texi:10555
 msgid "You can freely access a huge library of build logs!"
 msgstr "Vous pouvez accéder librement à un vaste bibliothèque de journaux de construction !"
 
 #. type: cindex
-#: doc/guix.texi:8183
+#: doc/guix.texi:10560
 #, no-wrap
 msgid "build failures, debugging"
 msgstr "échecs de construction, débogage"
 
 #. type: Plain text
-#: doc/guix.texi:8189
+#: doc/guix.texi:10566
 msgid "When defining a new package (@pxref{Defining Packages}), you will probably find yourself spending some time debugging and tweaking the build until it succeeds.  To do that, you need to operate the build commands yourself in an environment as close as possible to the one the build daemon uses."
 msgstr "Lors de la définition d'un nouveau paquet (@pxref{Defining Packages}), vous passerez probablement du temps à déboguer et modifier la construction jusqu'à ce que ça marche.  Pour cela, vous devez effectuer les commandes de construction vous-même dans un environnement le plus proche possible de celui qu'utilise le démon de construction."
 
 #. type: Plain text
-#: doc/guix.texi:8194
-msgid "To that end, the first thing to do is to use the @option{--keep-failed} or @option{-K} option of @command{guix build}, which will keep the failed build tree in @file{/tmp} or whatever directory you specified as @code{TMPDIR} (@pxref{Invoking guix build, @code{--keep-failed}})."
-msgstr "Pour cela, la première chose à faire est d'utiliser l'option @option{--keep-failed} ou @option{-K} de @command{guix build}, qui gardera l'arborescence de construction dans @file{/tmp} ou le répertoire spécifié par @code{TMPDIR} (@pxref{Invoking guix build, @code{--keep-failed}})."
+#: doc/guix.texi:10571
+msgid "To that end, the first thing to do is to use the @option{--keep-failed} or @option{-K} option of @command{guix build}, which will keep the failed build tree in @file{/tmp} or whatever directory you specified as @env{TMPDIR} (@pxref{Invoking guix build, @option{--keep-failed}})."
+msgstr "Pour cela, la première chose à faire est d'utiliser l'option @option{--keep-failed} ou @option{-K} de @command{guix build}, qui gardera la construction échouée de l'arborescence dans @file{/tmp} ou le répertoire spécifié par @env{TMPDIR} (@pxref{Invoquer guix build, @option{--keep-failed}})."
 
 #. type: Plain text
-#: doc/guix.texi:8200
+#: doc/guix.texi:10577
 msgid "From there on, you can @command{cd} to the failed build tree and source the @file{environment-variables} file, which contains all the environment variable definitions that were in place when the build failed.  So let's say you're debugging a build failure in package @code{foo}; a typical session would look like this:"
 msgstr "À partir de là, vous pouvez vous déplacer dans l'arborescence de construction et sourcer le fichier @file{environment-variables}, qui contient toutes les variables d'environnement qui étaient définies lorsque la construction a échoué.  Disons que vous déboguez un échec de construction dans le paquet @code{foo} ; une session typique ressemblerait à cela :"
 
 #. type: example
-#: doc/guix.texi:8207
+#: doc/guix.texi:10584
 #, no-wrap
 msgid ""
 "$ guix build foo -K\n"
@@ -15262,22 +19653,22 @@ msgstr ""
 "$ cd foo-1.2\n"
 
 #. type: Plain text
-#: doc/guix.texi:8211
+#: doc/guix.texi:10588
 msgid "Now, you can invoke commands as if you were the daemon (almost) and troubleshoot your build process."
 msgstr "Maintenant, vous pouvez invoquer les commandes comme si vous étiez le démon (presque) et corriger le processus de construction."
 
 #. type: Plain text
-#: doc/guix.texi:8217
+#: doc/guix.texi:10594
 msgid "Sometimes it happens that, for example, a package's tests pass when you run them manually but they fail when the daemon runs them.  This can happen because the daemon runs builds in containers where, unlike in our environment above, network access is missing, @file{/bin/sh} does not exist, etc. (@pxref{Build Environment Setup})."
 msgstr "Parfois il arrive que, par exemple, les tests d'un paquet réussissent lorsque vous les lancez manuellement mais échouent quand ils sont lancés par le démon.  Cela peut arriver parce que le démon tourne dans un conteneur où, contrairement à notre environnement au-dessus, l'accès réseau est indisponible, @file{/bin/sh} n'existe pas, etc.@: (@pxref{Build Environment Setup})."
 
 #. type: Plain text
-#: doc/guix.texi:8220
+#: doc/guix.texi:10597
 msgid "In such cases, you may need to run inspect the build process from within a container similar to the one the build daemon creates:"
 msgstr "Dans ce cas, vous pourriez avoir besoin de lancer le processus de construction dans un conteneur similaire à celui que le démon crée :"
 
 #. type: example
-#: doc/guix.texi:8228
+#: doc/guix.texi:10605
 #, no-wrap
 msgid ""
 "$ guix build -K foo\n"
@@ -15295,251 +19686,289 @@ msgstr ""
 "[env]# cd foo-1.2\n"
 
 #. type: Plain text
-#: doc/guix.texi:8237
-msgid "Here, @command{guix environment -C} creates a container and spawns a new shell in it (@pxref{Invoking guix environment}).  The @command{--ad-hoc strace gdb} part adds the @command{strace} and @command{gdb} commands to the container, which would may find handy while debugging.  The @option{--no-grafts} option makes sure we get the exact same environment, with ungrafted packages (@pxref{Security Updates}, for more info on grafts)."
-msgstr "Ici, @command{guix environment -C} crée un conteneur et démarre un nouveau shell dedans (@pxref{Invoking guix environment}).  La partie @command{--ad-hoc strace gdb} ajoute les commandes @command{strace} et @command{gdb} dans le conteneur, ce qui pourrait s'avérer utile pour le débogage.  L'option @option{--no-grafts} s'assure qu'on obtient le même environnement, avec des paquets non greffés (@pxref{Security Updates}, pour plus d'informations sur les greffes)."
+#: doc/guix.texi:10614
+msgid "Here, @command{guix environment -C} creates a container and spawns a new shell in it (@pxref{Invoking guix environment}).  The @command{--ad-hoc strace gdb} part adds the @command{strace} and @command{gdb} commands to the container, which you may find handy while debugging.  The @option{--no-grafts} option makes sure we get the exact same environment, with ungrafted packages (@pxref{Security Updates}, for more info on grafts)."
+msgstr "Ici, @command{guix environment -C} crée un conteneur et démarre un nouveau shell à l'intérieur (@pxref{Invoquer guix environment}).  La partie @command{--ad-hoc strace gdb} ajoute les commandes @command{strace} et @command{gdb} dans le conteneur, ce qui pourrait s'avérer utile pour le débogage.  L'option @option{--no-grafts} s'assure qu'on obtienne le même environnement, avec des paquets non greffés (@pxref{Security Updates}, pour plus d'informations sur les greffes)."
 
 #. type: Plain text
-#: doc/guix.texi:8240
+#: doc/guix.texi:10617
 msgid "To get closer to a container like that used by the build daemon, we can remove @file{/bin/sh}:"
 msgstr "Pour obtenir un conteneur plus proche de ce qui serait utilisé par le démon de construction, on peut enlever @file{/bin/sh} :"
 
 #. type: example
-#: doc/guix.texi:8243
+#: doc/guix.texi:10620
 #, no-wrap
 msgid "[env]# rm /bin/sh\n"
 msgstr "[env]# rm /bin/sh\n"
 
 #. type: Plain text
-#: doc/guix.texi:8247
+#: doc/guix.texi:10624
 msgid "(Don't worry, this is harmless: this is all happening in the throw-away container created by @command{guix environment}.)"
-msgstr "Ne vous inquiétez pas, c'est sans danger : tout cela se passe dans un conteneur jetable créé par @command{guix environment}."
+msgstr "(Ne vous inquiétez pas, c'est sans danger : tout cela se passe dans un conteneur jetable créé par @command{guix environment}.)"
 
 #. type: Plain text
-#: doc/guix.texi:8250
+#: doc/guix.texi:10627
 msgid "The @command{strace} command is probably not in the search path, but we can run:"
 msgstr "La commande @command{strace} n'est probablement pas dans le chemin de recherche, mais on peut lancer :"
 
 #. type: example
-#: doc/guix.texi:8253
+#: doc/guix.texi:10630
 #, no-wrap
 msgid "[env]# $GUIX_ENVIRONMENT/bin/strace -f -o log make check\n"
 msgstr "[env]# $GUIX_ENVIRONMENT/bin/strace -f -o log make check\n"
 
 #. type: Plain text
-#: doc/guix.texi:8258
+#: doc/guix.texi:10635
 msgid "In this way, not only you will have reproduced the environment variables the daemon uses, you will also be running the build process in a container similar to the one the daemon uses."
 msgstr "De cette manière, non seulement vous aurez reproduit les variables d'environnement utilisées par le démon, mais vous lancerez aussi le processus de construction dans un conteneur similaire à celui utilisé par le démon."
 
 #. type: section
-#: doc/guix.texi:8261
+#: doc/guix.texi:10638
 #, no-wrap
 msgid "Invoking @command{guix edit}"
 msgstr "Invoquer @command{guix edit}"
 
 #. type: command{#1}
-#: doc/guix.texi:8263
+#: doc/guix.texi:10640
 #, no-wrap
 msgid "guix edit"
 msgstr "guix edit"
 
 #. type: cindex
-#: doc/guix.texi:8264
+#: doc/guix.texi:10641
 #, no-wrap
 msgid "package definition, editing"
 msgstr "définition de paquets, modification"
 
 #. type: Plain text
-#: doc/guix.texi:8269
+#: doc/guix.texi:10646
 msgid "So many packages, so many source files! The @command{guix edit} command facilitates the life of users and packagers by pointing their editor at the source file containing the definition of the specified packages.  For instance:"
 msgstr "Tant de paquets, tant de fichiers source ! La commande @command{guix edit} facilite la vie des utilisateurs et des empaqueteurs en plaçant leur éditeur sur le fichier source qui contient la définition des paquets spécifiés.  Par exemple :"
 
 #. type: example
-#: doc/guix.texi:8272
+#: doc/guix.texi:10649
 #, no-wrap
 msgid "guix edit gcc@@4.9 vim\n"
 msgstr "guix edit gcc@@4.9 vim\n"
 
 #. type: Plain text
-#: doc/guix.texi:8278
-msgid "launches the program specified in the @code{VISUAL} or in the @code{EDITOR} environment variable to view the recipe of GCC@tie{}4.9.3 and that of Vim."
-msgstr "lance le programme spécifié dans la variable d'environnement @code{VISUAL} ou @code{EDITOR} pour visionner la recette de GCC@tie{}4.9.3 et celle de Vim."
+#: doc/guix.texi:10655
+msgid "launches the program specified in the @env{VISUAL} or in the @env{EDITOR} environment variable to view the recipe of GCC@tie{}4.9.3 and that of Vim."
+msgstr "lance le programme spécifié dans la variable d'environnement @env{VISUAL} ou dans la variable d'environnement @code{EDITOR} pour visionner la recette de GCC@tie{}4.9.3 et celle de Vim."
 
 #. type: Plain text
-#: doc/guix.texi:8284
-msgid "If you are using a Guix Git checkout (@pxref{Building from Git}), or have created your own packages on @code{GUIX_PACKAGE_PATH} (@pxref{Package Modules}), you will be able to edit the package recipes.  In other cases, you will be able to examine the read-only recipes for packages currently in the store."
-msgstr "Si vous utilisez une copie du dépôt Git de Guix (@pxref{Building from Git}), ou que vous avez créé vos propres paquets dans @code{GUIX_PACKAGE_PATH} (@pxref{Package Modules}), vous pourrez modifier les recettes des paquets.  Sinon, vous pourrez examiner les recettes en lecture-seule des paquets actuellement dans le dépôt."
+#: doc/guix.texi:10661
+msgid "If you are using a Guix Git checkout (@pxref{Building from Git}), or have created your own packages on @env{GUIX_PACKAGE_PATH} (@pxref{Package Modules}), you will be able to edit the package recipes.  In other cases, you will be able to examine the read-only recipes for packages currently in the store."
+msgstr "Si vous utilisez une copie du dépôt Git de Guix (@pxref{Building from Git}), ou que vous avez créé vos propres paquets dans @env{GUIX_PACKAGE_PATH} (@pxref{Package Modules}), vous pourrez modifier les recettes des paquets.  Sinon, vous pourrez examiner les recettes en lecture-seule des paquets actuellement dans le dépôt."
+
+#. type: Plain text
+#: doc/guix.texi:10666
+msgid "Instead of @env{GUIX_PACKAGE_PATH}, the command-line option @option{--load-path=@var{directory}} (or in short @option{-L @var{directory}}) allows you to add @var{directory} to the front of the package module search path and so make your own packages visible."
+msgstr "Au lieu de  @env{GUIX_PACKAGE_PATH}, l'option de la ligne de commande @option{--load-path=@var{directory}} (ou en bref @option{-L @var{directory}}) vous permet d'ajouter @var{directory} au début du chemin de recherche du module de paquet et donc de rendre vos propres paquets visibles."
 
 #. type: section
-#: doc/guix.texi:8287
+#: doc/guix.texi:10668
 #, no-wrap
 msgid "Invoking @command{guix download}"
 msgstr "Invoquer @command{guix download}"
 
 #. type: command{#1}
-#: doc/guix.texi:8289
+#: doc/guix.texi:10670
 #, no-wrap
 msgid "guix download"
 msgstr "guix download"
 
 #. type: cindex
-#: doc/guix.texi:8290
+#: doc/guix.texi:10671
 #, no-wrap
 msgid "downloading package sources"
 msgstr "télécharger les sources des paquets"
 
 #. type: Plain text
-#: doc/guix.texi:8297
+#: doc/guix.texi:10678
 msgid "When writing a package definition, developers typically need to download a source tarball, compute its SHA256 hash, and write that hash in the package definition (@pxref{Defining Packages}).  The @command{guix download} tool helps with this task: it downloads a file from the given URI, adds it to the store, and prints both its file name in the store and its SHA256 hash."
 msgstr "Lorsqu'on écrit une définition de paquet, on a généralement besoin de télécharger une archive des sources, calculer son hash SHA256 et écrire ce hash dans la définition du paquet (@pxref{Defining Packages}).  L'outil @command{guix download} aide à cette tâche : il télécharge un fichier à l'URL donné, l'ajoute au dépôt et affiche à la fois son nom dans le dépôt et son hash SHA56."
 
 #. type: Plain text
-#: doc/guix.texi:8304
+#: doc/guix.texi:10685
 msgid "The fact that the downloaded file is added to the store saves bandwidth: when the developer eventually tries to build the newly defined package with @command{guix build}, the source tarball will not have to be downloaded again because it is already in the store.  It is also a convenient way to temporarily stash files, which may be deleted eventually (@pxref{Invoking guix gc})."
 msgstr "Le fait que le fichier téléchargé soit ajouté au dépôt économise la bande passante : quand on construit ensuite le paquet nouvellement défini avec @command{guix build}, l'archive des sources n'a pas besoin d'être à nouveau téléchargée puisqu'elle se trouve déjà dans le dépôt.  C'est aussi une manière pratique de garder des fichiers temporairement, qui pourront ensuite être supprimés (@pxref{Invoking guix gc})."
 
 #. type: Plain text
-#: doc/guix.texi:8312
+#: doc/guix.texi:10693
 msgid "The @command{guix download} command supports the same URIs as used in package definitions.  In particular, it supports @code{mirror://} URIs.  @code{https} URIs (HTTP over TLS) are supported @emph{provided} the Guile bindings for GnuTLS are available in the user's environment; when they are not available, an error is raised.  @xref{Guile Preparations, how to install the GnuTLS bindings for Guile,, gnutls-guile, GnuTLS-Guile}, for more information."
 msgstr "La commande @command{guix download} supporte les mêmes URI que celles utilisées dans les définitions de paquets.  En particulier, elle supporte les URI @code {mirror://}.  Les URI @code{http} (HTTP sur TLS) sont supportées @emph{si} les liaisons Guile de GnuTLS sont disponibles dans l'environnement de l'utilisateur ; si elle ne sont pas disponibles, une erreur est renvoyée.  @xref{Guile Preparations, how to install the GnuTLS bindings for Guile,, gnutls-guile, GnuTLS-Guile}, pour plus d'informations."
 
 #. type: Plain text
-#: doc/guix.texi:8317
-msgid "@command{guix download} verifies HTTPS server certificates by loading the certificates of X.509 authorities from the directory pointed to by the @code{SSL_CERT_DIR} environment variable (@pxref{X.509 Certificates}), unless @option{--no-check-certificate} is used."
-msgstr "@command{guix download} vérifie les certificats du serveur HTTPS en chargeant les autorités de certification X.509 depuis le répertoire vers lequel pointe la variable d'environnement @code{SSL_CERT_DIR} (@pxref{X.509 Certificates}), à moins que @option{--no-check-certificate} ne soit utilisé."
+#: doc/guix.texi:10698
+msgid "@command{guix download} verifies HTTPS server certificates by loading the certificates of X.509 authorities from the directory pointed to by the @env{SSL_CERT_DIR} environment variable (@pxref{X.509 Certificates}), unless @option{--no-check-certificate} is used."
+msgstr "@command{guix download} vérifie les certificats du serveur HTTPS en chargeant les autorités de certification X.509 depuis le répertoire vers lequel pointe la variable d'environnement @env{SSL_CERT_DIR} (@pxref{X.509 Certificates}), à moins que @option{--no-check-certificate} ne soit utilisé."
 
 #. type: Plain text
-#: doc/guix.texi:8319 doc/guix.texi:9636
+#: doc/guix.texi:10700 doc/guix.texi:12208
 msgid "The following options are available:"
 msgstr "Les options suivantes sont disponibles :"
 
 #. type: item
-#: doc/guix.texi:8321 doc/guix.texi:8360
+#: doc/guix.texi:10702 doc/guix.texi:10746
+#, no-wrap
+msgid "--hash=@var{algorithm}"
+msgstr "--hash=@var{algorithme}"
+
+#. type: itemx
+#: doc/guix.texi:10703 doc/guix.texi:10747
+#, no-wrap
+msgid "-H @var{algorithm}"
+msgstr "-H @var{algorithme}"
+
+#. type: table
+#: doc/guix.texi:10706
+msgid "Compute a hash using the specified @var{algorithm}.  @xref{Invoking guix hash}, for more information."
+msgstr "Calcule un hash en utilisant l'@var{algorithme} spécifié. @xref{Invoquer guix hash}, pour plus d' informations."
+
+#. type: item
+#: doc/guix.texi:10707 doc/guix.texi:10756
 #, no-wrap
 msgid "--format=@var{fmt}"
 msgstr "--format=@var{fmt}"
 
 #. type: itemx
-#: doc/guix.texi:8322 doc/guix.texi:8361
+#: doc/guix.texi:10708 doc/guix.texi:10757
 #, no-wrap
 msgid "-f @var{fmt}"
 msgstr "-f @var{fmt}"
 
 #. type: table
-#: doc/guix.texi:8325
+#: doc/guix.texi:10711
 msgid "Write the hash in the format specified by @var{fmt}.  For more information on the valid values for @var{fmt}, @pxref{Invoking guix hash}."
 msgstr "Écrit le hash dans le format spécifié par @var{fmt}.  Pour plus d'informations sur les valeurs valides pour @var{fmt}, @pxref{Invoking guix hash}."
 
 #. type: item
-#: doc/guix.texi:8326
+#: doc/guix.texi:10712
 #, no-wrap
 msgid "--no-check-certificate"
 msgstr "--no-check-certificate"
 
 #. type: table
-#: doc/guix.texi:8328
+#: doc/guix.texi:10714
 msgid "Do not validate the X.509 certificates of HTTPS servers."
 msgstr "Ne pas valider les certificats HTTPS des serveurs."
 
 #. type: table
-#: doc/guix.texi:8332
+#: doc/guix.texi:10718
 msgid "When using this option, you have @emph{absolutely no guarantee} that you are communicating with the authentic server responsible for the given URL, which makes you vulnerable to ``man-in-the-middle'' attacks."
 msgstr "Lorsque vous utilisez cette option, vous n'avez @emph{absolument aucune garanti} que vous communiquez avec le serveur authentique responsable de l'URL donnée, ce qui vous rend vulnérable à des attaques de « l'homme du milieu »."
 
 #. type: item
-#: doc/guix.texi:8333
+#: doc/guix.texi:10719
 #, no-wrap
 msgid "--output=@var{file}"
 msgstr "--output=@var{fichier}"
 
 #. type: itemx
-#: doc/guix.texi:8334
+#: doc/guix.texi:10720
 #, no-wrap
 msgid "-o @var{file}"
 msgstr "-o @var{fichier}"
 
 #. type: table
-#: doc/guix.texi:8337
+#: doc/guix.texi:10723
 msgid "Save the downloaded file to @var{file} instead of adding it to the store."
 msgstr "Enregistre le fichier téléchargé dans @var{fichier} plutôt que de l'ajouter au dépôt."
 
 #. type: section
-#: doc/guix.texi:8340
+#: doc/guix.texi:10726
 #, no-wrap
 msgid "Invoking @command{guix hash}"
 msgstr "Invoquer @command{guix hash}"
 
 #. type: command{#1}
-#: doc/guix.texi:8342
+#: doc/guix.texi:10728
 #, no-wrap
 msgid "guix hash"
 msgstr "guix hash"
 
 #. type: Plain text
-#: doc/guix.texi:8347
-msgid "The @command{guix hash} command computes the SHA256 hash of a file.  It is primarily a convenience tool for anyone contributing to the distribution: it computes the cryptographic hash of a file, which can be used in the definition of a package (@pxref{Defining Packages})."
-msgstr "La commande @command{guix hash} calcul le hash SHA256 d'un fichier.  C'est surtout un outil pour simplifier la vie des contributeurs de la distribution : il calcul le hash cryptographique d'un fichier, qui peut être utilisé dans la définition d'un paquet (@pxref{Defining Packages})."
+#: doc/guix.texi:10733
+msgid "The @command{guix hash} command computes the hash of a file.  It is primarily a convenience tool for anyone contributing to the distribution: it computes the cryptographic hash of a file, which can be used in the definition of a package (@pxref{Defining Packages})."
+msgstr "La commande @command{guix hash} calcule le hash d'un fichier.  C'est surtout un outil pour simplifier la vie des contributeur·rice·s  à la distribution : elle calcule le hash cryptographique d'un fichier, qui peut être utilisé dans la définition d' un paquet (@pxref{Defining Packages})."
 
 #. type: example
-#: doc/guix.texi:8352
+#: doc/guix.texi:10738
 #, no-wrap
 msgid "guix hash @var{option} @var{file}\n"
 msgstr "guix hash @var{option} @var{fichier}\n"
 
 #. type: Plain text
-#: doc/guix.texi:8357
+#: doc/guix.texi:10743
 msgid "When @var{file} is @code{-} (a hyphen), @command{guix hash} computes the hash of data read from standard input.  @command{guix hash} has the following options:"
 msgstr "Lorsque @var{fichier} est @code{-} (un tiret), @command{guix hash} calcul le hash des données lues depuis l'entrée standard.  @command{guix hash} a les options suivantes :"
 
 #. type: table
-#: doc/guix.texi:8363
+#: doc/guix.texi:10750
+msgid "Compute a hash using the specified @var{algorithm}, @code{sha256} by default."
+msgstr "Calcule un hash en utilisant l' @var{algorithme} spécifié, @code{sha256} par défaut."
+
+#. type: table
+#: doc/guix.texi:10755
+msgid "@var{algorithm} must the name of a cryptographic hash algorithm supported by Libgcrypt @i{via} Guile-Gcrypt---e.g., @code{sha512} or @code{sha3-256} (@pxref{Hash Functions,,, guile-gcrypt, Guile-Gcrypt Reference Manual})."
+msgstr "@var{algorithm}  doit être le nom de l' algorithme d'un hash cryptographique supporté par Libgcrypt @i{via} Guile-Gcrypt---par exemple, @code{sha512} ou @code{sha3-256} (@pxref{Hash Functions,,, guile-gcrypt, Guile-Gcrypt Reference Manual})."
+
+#. type: table
+#: doc/guix.texi:10759
 msgid "Write the hash in the format specified by @var{fmt}."
 msgstr "Écrit le hash dans le format spécifié par @var{fmt}."
 
 #. type: table
-#: doc/guix.texi:8366
-msgid "Supported formats: @code{nix-base32}, @code{base32}, @code{base16} (@code{hex} and @code{hexadecimal} can be used as well)."
-msgstr "Les formats supportés sont : @code{nix-base32}, @code{base32}, @code{base16} (@code{hex} et @code{hexadecimal} peuvent aussi être utilisés)."
+#: doc/guix.texi:10762
+msgid "Supported formats: @code{base64}, @code{nix-base32}, @code{base32}, @code{base16} (@code{hex} and @code{hexadecimal} can be used as well)."
+msgstr "Formats supportés : @code{base64}, @code{nix-base32}, @code{base32}, @code{base16} (@code{hex} et @code{hexadecimal} peuvent être utilisés)."
 
 #. type: table
-#: doc/guix.texi:8370
+#: doc/guix.texi:10766
 msgid "If the @option{--format} option is not specified, @command{guix hash} will output the hash in @code{nix-base32}.  This representation is used in the definitions of packages."
 msgstr "Si l'option @option {--format} n'est pas spécifiée, @command{guix hash} affichera le hash en @code{nix-base32}.  Cette représentation est utilisée dans les définitions des paquets."
 
 #. type: table
-#: doc/guix.texi:8374
+#: doc/guix.texi:10770
 msgid "Compute the hash on @var{file} recursively."
 msgstr "Calcule le hash sur @var{fichier} récursivement."
 
 #. type: table
-#: doc/guix.texi:8383
+#: doc/guix.texi:10779
 msgid "In this case, the hash is computed on an archive containing @var{file}, including its children if it is a directory.  Some of the metadata of @var{file} is part of the archive; for instance, when @var{file} is a regular file, the hash is different depending on whether @var{file} is executable or not.  Metadata such as time stamps has no impact on the hash (@pxref{Invoking guix archive})."
 msgstr "Dans ce cas, le hash est calculé sur une archive contenant @var{fichier}, dont ses enfants si c'est un répertoire.  Certaines métadonnées de @var{fichier} fait partie de l'archive ; par exemple lorsque @var{fichier} est un fichier normal, le hash est différent que le @var{fichier} soit exécutable ou non.  Les métadonnées comme un horodatage n'ont aucun impact sur le hash (@pxref{Invoking guix archive})."
 
 #. type: item
-#: doc/guix.texi:8384
+#: doc/guix.texi:10780
 #, no-wrap
 msgid "--exclude-vcs"
 msgstr "--exclude-vcs"
 
 #. type: itemx
-#: doc/guix.texi:8385
+#: doc/guix.texi:10781 doc/guix.texi:11700
 #, no-wrap
 msgid "-x"
 msgstr "-x"
 
 #. type: table
-#: doc/guix.texi:8388
-msgid "When combined with @option{--recursive}, exclude version control system directories (@file{.bzr}, @file{.git}, @file{.hg}, etc.)"
-msgstr "Lorsqu'elle est combinée à @option{--recursive}, exclut les répertoires de système de contrôle de version (@file{.bzr}, @file{.git}, @file{.hg}, etc.)"
+#: doc/guix.texi:10784
+msgid "When combined with @option{--recursive}, exclude version control system directories (@file{.bzr}, @file{.git}, @file{.hg}, etc.)."
+msgstr "Conjointement avec @option{--recursive}, exclut les répertoires de système de contrôle de version (@file{.bzr}, @file{.git}, @file{.hg}, etc.)"
+
+#. type: vindex
+#: doc/guix.texi:10785
+#, no-wrap
+msgid "git-fetch"
+msgstr "git-fetch"
 
 #. type: table
-#: doc/guix.texi:8393
+#: doc/guix.texi:10789
 msgid "As an example, here is how you would compute the hash of a Git checkout, which is useful when using the @code{git-fetch} method (@pxref{origin Reference}):"
 msgstr "Par exemple, voici comment calculer le hash d'un dépôt Git, ce qui est utile avec la méthode @code{git-fetch} (@pxref{origin Reference}) :"
 
 #. type: example
-#: doc/guix.texi:8398
+#: doc/guix.texi:10794
 #, no-wrap
 msgid ""
 "$ git clone http://example.org/foo.git\n"
@@ -15551,299 +19980,321 @@ msgstr ""
 "$ guix hash -rx .\n"
 
 #. type: cindex
-#: doc/guix.texi:8402 doc/guix.texi:8407
+#: doc/guix.texi:10798 doc/guix.texi:10803
 #, no-wrap
 msgid "Invoking @command{guix import}"
 msgstr "Invoquer @command{guix import}"
 
 #. type: cindex
-#: doc/guix.texi:8404
+#: doc/guix.texi:10800
 #, no-wrap
 msgid "importing packages"
 msgstr "importer des paquets"
 
 #. type: cindex
-#: doc/guix.texi:8405
+#: doc/guix.texi:10801
 #, no-wrap
 msgid "package import"
 msgstr "paquets importés"
 
 #. type: cindex
-#: doc/guix.texi:8406
+#: doc/guix.texi:10802
 #, no-wrap
 msgid "package conversion"
 msgstr "conversion de paquets"
 
 #. type: Plain text
-#: doc/guix.texi:8414
+#: doc/guix.texi:10810
 msgid "The @command{guix import} command is useful for people who would like to add a package to the distribution with as little work as possible---a legitimate demand.  The command knows of a few repositories from which it can ``import'' package metadata.  The result is a package definition, or a template thereof, in the format we know (@pxref{Defining Packages})."
 msgstr "La commande @command{guix import} est utile pour les gens qui voudraient ajouter un paquet à la distribution avec aussi peu de travail que possible — une demande légitime.  La commande connaît quelques dépôts logiciels d'où elle peut « importer » des métadonnées de paquets.  Le résultat est une définition de paquet, ou un modèle de définition, dans le format reconnu par Guix (@pxref{Defining Packages})."
 
 #. type: example
-#: doc/guix.texi:8419
+#: doc/guix.texi:10815
 #, no-wrap
 msgid "guix import @var{importer} @var{options}@dots{}\n"
 msgstr "guix import @var{importer} @var{options}@dots{}\n"
 
 #. type: Plain text
-#: doc/guix.texi:8425
-msgid "@var{importer} specifies the source from which to import package metadata, and @var{options} specifies a package identifier and other options specific to @var{importer}.  Currently, the available ``importers'' are:"
-msgstr "@var{importer} spécifie la source depuis laquelle importer des métadonnées de paquets, et @var{options} spécifie un identifiant de paquet et d'autres options spécifiques à @var{importer}.  Actuellement les « importateurs » disponibles sont :"
+#: doc/guix.texi:10820
+msgid "@var{importer} specifies the source from which to import package metadata, and @var{options} specifies a package identifier and other options specific to @var{importer}."
+msgstr "@var{importer} spécifie la source depuis laquelle importer des métadonnées de paquets, et @var{options} spécifie un identifiant de paquet et d'autres options spécifiques à @var{importer}."
+
+#. type: Plain text
+#: doc/guix.texi:10824
+msgid "Some of the importers rely on the ability to run the @command{gpgv} command.  For these, GnuPG must be installed and in @code{$PATH}; run @code{guix install gnupg} if needed."
+msgstr "Certains des importeurs s'appuient sur la capacité d'exécuter la commande @command{gpgv}.  Pour ceux-ci, GnuPG doit être installé dans @code{$PATH} ; exécuter @code{guix install gnupg} si nécessaire."
+
+#. type: Plain text
+#: doc/guix.texi:10826
+msgid "Currently, the available ``importers'' are:"
+msgstr "Actuellement, les « importeurs » disponibles sont :"
 
 #. type: item
-#: doc/guix.texi:8427 doc/guix.texi:8927
+#: doc/guix.texi:10828 doc/guix.texi:11357
 #, no-wrap
 msgid "gnu"
 msgstr "gnu"
 
 #. type: table
-#: doc/guix.texi:8431
+#: doc/guix.texi:10832
 msgid "Import metadata for the given GNU package.  This provides a template for the latest version of that GNU package, including the hash of its source tarball, and its canonical synopsis and description."
 msgstr "Importe des métadonnées d'un paquet GNU donné.  Cela fournit un modèle pour la dernière version de ce paquet GNU, avec le hash de son archive, le synopsis et la description canonique."
 
 #. type: table
-#: doc/guix.texi:8434
+#: doc/guix.texi:10835
 msgid "Additional information such as the package dependencies and its license needs to be figured out manually."
 msgstr "Les informations supplémentaires comme les dépendances du paquet et sa licence doivent être renseignées manuellement."
 
 #. type: table
-#: doc/guix.texi:8437
+#: doc/guix.texi:10838
 msgid "For example, the following command returns a package definition for GNU@tie{}Hello:"
 msgstr "Par exemple, la commande suivante renvoie une définition de paquets pour GNU@tie{}Hello :"
 
 #. type: example
-#: doc/guix.texi:8440
+#: doc/guix.texi:10841
 #, no-wrap
 msgid "guix import gnu hello\n"
 msgstr "guix import gnu hello\n"
 
 #. type: table
-#: doc/guix.texi:8443 doc/guix.texi:8670 doc/guix.texi:8720 doc/guix.texi:8749
+#: doc/guix.texi:10844 doc/guix.texi:11077 doc/guix.texi:11127
+#: doc/guix.texi:11156
 msgid "Specific command-line options are:"
 msgstr "Les options spécifiques sont :"
 
 #. type: item
-#: doc/guix.texi:8445 doc/guix.texi:9076
+#: doc/guix.texi:10846 doc/guix.texi:11508
 #, no-wrap
 msgid "--key-download=@var{policy}"
 msgstr "--key-download=@var{politique}"
 
 #. type: table
-#: doc/guix.texi:8449
-msgid "As for @code{guix refresh}, specify the policy to handle missing OpenPGP keys when verifying the package signature.  @xref{Invoking guix refresh, @code{--key-download}}."
-msgstr "Comme pour @code{guix refresh}, spécifie la politique de gestion des clefs OpenPGP manquantes lors de la vérification de la signature d'un paquet.  @xref{Invoking guix refresh, @code{--key-download}}."
+#: doc/guix.texi:10850
+msgid "As for @command{guix refresh}, specify the policy to handle missing OpenPGP keys when verifying the package signature.  @xref{Invoking guix refresh, @option{--key-download}}."
+msgstr "Comme pour @command{guix refresh}, spécifie la politique de gestion des clefs OpenPGP manquantes lors de la vérification de la signature d'un paquet.  @xref{Invoquer guix refresh, @code{--key-download}}."
 
 #. type: item
-#: doc/guix.texi:8451 doc/guix.texi:8452 doc/guix.texi:8945
+#: doc/guix.texi:10852 doc/guix.texi:10853 doc/guix.texi:11377
 #, no-wrap
 msgid "pypi"
 msgstr "pypi"
 
 #. type: table
-#: doc/guix.texi:8459
+#: doc/guix.texi:10860
 msgid "Import metadata from the @uref{https://pypi.python.org/, Python Package Index}.  Information is taken from the JSON-formatted description available at @code{pypi.python.org} and usually includes all the relevant information, including package dependencies.  For maximum efficiency, it is recommended to install the @command{unzip} utility, so that the importer can unzip Python wheels and gather data from them."
 msgstr "Importe des métadonnées depuis @uref{https://pypi.python.org/, l'index des paquets Python}.  Les informations sont récupérées à partir de la description en JSON disponible sur @code{pypi.python.org} et inclus généralement toutes les informations utiles, dont les dépendances des paquets.  Pour une efficacité maximale, il est recommandé d'installer l'utilitaire @command{unzip}, pour que l'importateur puisse dézipper les wheels Python et récupérer les informations contenues à l'intérieur."
 
 #. type: table
-#: doc/guix.texi:8462
+#: doc/guix.texi:10863
 msgid "The command below imports metadata for the @code{itsdangerous} Python package:"
 msgstr "La commande ci-dessous importe les métadonnées du paquet Python @code{itsdangerous} :"
 
 #. type: example
-#: doc/guix.texi:8465
+#: doc/guix.texi:10866
 #, no-wrap
 msgid "guix import pypi itsdangerous\n"
 msgstr "guix import pypi itsdangerous\n"
 
 #. type: table
-#: doc/guix.texi:8473 doc/guix.texi:8498 doc/guix.texi:8693 doc/guix.texi:8734
-#: doc/guix.texi:8781
+#: doc/guix.texi:10874 doc/guix.texi:10899 doc/guix.texi:11100
+#: doc/guix.texi:11141 doc/guix.texi:11188 doc/guix.texi:11213
 msgid "Traverse the dependency graph of the given upstream package recursively and generate package expressions for all those packages that are not yet in Guix."
 msgstr "Traverse le graphe des dépendances du paquet amont donné et génère les expressions de paquets de tous ceux qui ne sont pas déjà dans Guix."
 
 #. type: item
-#: doc/guix.texi:8475 doc/guix.texi:8476 doc/guix.texi:8947
+#: doc/guix.texi:10876 doc/guix.texi:10877 doc/guix.texi:11379
 #, no-wrap
 msgid "gem"
 msgstr "gem"
 
 #. type: table
-#: doc/guix.texi:8485
+#: doc/guix.texi:10886
 msgid "Import metadata from @uref{https://rubygems.org/, RubyGems}.  Information is taken from the JSON-formatted description available at @code{rubygems.org} and includes most relevant information, including runtime dependencies.  There are some caveats, however.  The metadata doesn't distinguish between synopses and descriptions, so the same string is used for both fields.  Additionally, the details of non-Ruby dependencies required to build native extensions is unavailable and left as an exercise to the packager."
 msgstr "Importe des métadonnées de @uref{https://rubygems.org/, RubyGems}.  Les informations sont récupérées au format JSON disponible sur @code{rubygems.org} et inclut les informations les plus utiles, comme les dépendances à l'exécution.  Il y a des cependant quelques restrictions.  Les métadonnées ne distinguent pas synopsis et description, donc la même chaîne est utilisée pour les deux champs.  En plus, les détails des dépendances non Ruby requises pour construire des extensions natives sont indisponibles et laissé en exercice à l'empaqueteur."
 
 #. type: table
-#: doc/guix.texi:8487
+#: doc/guix.texi:10888
 msgid "The command below imports metadata for the @code{rails} Ruby package:"
 msgstr "La commande ci-dessous importe les métadonnées pour le paquet Ruby @code{rails} :"
 
 #. type: example
-#: doc/guix.texi:8490
+#: doc/guix.texi:10891
 #, no-wrap
 msgid "guix import gem rails\n"
 msgstr "guix import gem rails\n"
 
 #. type: item
-#: doc/guix.texi:8500 doc/guix.texi:8943
+#: doc/guix.texi:10901 doc/guix.texi:11375
 #, no-wrap
 msgid "cpan"
 msgstr "cpan"
 
 #. type: cindex
-#: doc/guix.texi:8501
+#: doc/guix.texi:10902
 #, no-wrap
 msgid "CPAN"
 msgstr "CPAN"
 
 #. type: table
-#: doc/guix.texi:8509
+#: doc/guix.texi:10910
 msgid "Import metadata from @uref{https://www.metacpan.org/, MetaCPAN}.  Information is taken from the JSON-formatted metadata provided through @uref{https://fastapi.metacpan.org/, MetaCPAN's API} and includes most relevant information, such as module dependencies.  License information should be checked closely.  If Perl is available in the store, then the @code{corelist} utility will be used to filter core modules out of the list of dependencies."
 msgstr "Importe des métadonnées de @uref{https://www.metacpan.org/, MetaCPAN}.  Les informations sont récupérées au format JSON disponible à travers  @uref{https://fastapi.metacpan.org/, l'API de MetaCPAN} et inclus les informations les plus utiles, comme les dépendances des modules.  L'information sur les licences doit être vérifiée avec attention.  Si Perl est disponible dans le dépôt, alors l'utilitaire @code{corelist} sera utiliser pour exclure les modules du cœur de la distribution Perl de la liste des dépendances."
 
 #. type: table
-#: doc/guix.texi:8512
-msgid "The command command below imports metadata for the @code{Acme::Boolean} Perl module:"
-msgstr "La commande ci-dessous importe les métadonnées du module Perl @code{Acme::Boolean} :"
+#: doc/guix.texi:10913
+msgid "The command command below imports metadata for the Acme::Boolean Perl module:"
+msgstr "La commande ci-dessous importe des métadonnées pour le module Acme::Boolean Perl :"
 
 #. type: example
-#: doc/guix.texi:8515
+#: doc/guix.texi:10916
 #, no-wrap
 msgid "guix import cpan Acme::Boolean\n"
 msgstr "guix import cpan Acme::Boolean\n"
 
 #. type: item
-#: doc/guix.texi:8517 doc/guix.texi:8939
+#: doc/guix.texi:10918 doc/guix.texi:11371
 #, no-wrap
 msgid "cran"
 msgstr "cran"
 
 #. type: cindex
-#: doc/guix.texi:8518
+#: doc/guix.texi:10919
 #, no-wrap
 msgid "CRAN"
 msgstr "CRAN"
 
 #. type: cindex
-#: doc/guix.texi:8519
+#: doc/guix.texi:10920
 #, no-wrap
 msgid "Bioconductor"
 msgstr "Bioconductor"
 
 #. type: table
-#: doc/guix.texi:8523
+#: doc/guix.texi:10924
 msgid "Import metadata from @uref{https://cran.r-project.org/, CRAN}, the central repository for the @uref{https://r-project.org, GNU@tie{}R statistical and graphical environment}."
 msgstr "Importe des métadonnées de @uref{https://cran.r-project.org/, CRAN}, le dépôt central de @uref{https://r-project.org, l'environnement statistique et graphique GNU@tie{}R}."
 
 #. type: table
-#: doc/guix.texi:8525
-msgid "Information is extracted from the @code{DESCRIPTION} file of the package."
-msgstr "Les informations sont extraites du fichier @file{DESCRIPTION} du paquet."
+#: doc/guix.texi:10926
+msgid "Information is extracted from the @file{DESCRIPTION} file of the package."
+msgstr "L' information est extraite du fichier @file{DESCRIPTION} du paquet."
 
 #. type: table
-#: doc/guix.texi:8528
-msgid "The command command below imports metadata for the @code{Cairo} R package:"
-msgstr "La commande ci-dessous importe les métadonnées du paquet R @code{Cairo} :"
+#: doc/guix.texi:10928
+msgid "The command command below imports metadata for the Cairo R package:"
+msgstr "La commande ci-dessous importe les métadonnées du paquet Cairo R :"
 
 #. type: example
-#: doc/guix.texi:8531
+#: doc/guix.texi:10931
 #, no-wrap
 msgid "guix import cran Cairo\n"
 msgstr "guix import cran Cairo\n"
 
 #. type: table
-#: doc/guix.texi:8536
-msgid "When @code{--recursive} is added, the importer will traverse the dependency graph of the given upstream package recursively and generate package expressions for all those packages that are not yet in Guix."
-msgstr "Lorsque l'option @code{--recursive} est utilisée, l'importateur traversera le graphe des dépendances du paquet amont récursivement et générera des expressions de paquets pour tous ceux qui ne sont pas déjà dans Guix."
+#: doc/guix.texi:10936
+msgid "When @option{--recursive} is added, the importer will traverse the dependency graph of the given upstream package recursively and generate package expressions for all those packages that are not yet in Guix."
+msgstr "Lorsque l'option @option{--recursive} est utilisée, l'importeur traversera le graphe des dépendances du paquet en amont récursivement et générera des expressions de paquets pour tous ceux qui ne sont pas déjà dans Guix."
 
 #. type: table
-#: doc/guix.texi:8541
-msgid "When @code{--archive=bioconductor} is added, metadata is imported from @uref{https://www.bioconductor.org/, Bioconductor}, a repository of R packages for for the analysis and comprehension of high-throughput genomic data in bioinformatics."
-msgstr "Lorsque l'option @code{--archive=bioconductor} est utilisée, les métadonnées sont importées de @uref{https://www.bioconductor.org/, Bioconductor}, un répertoire de paquets R pour l'analyse et la compréhension de données génomiques volumineuses en bioinformatique."
+#: doc/guix.texi:10941
+msgid "When @option{--archive=bioconductor} is added, metadata is imported from @uref{https://www.bioconductor.org/, Bioconductor}, a repository of R packages for the analysis and comprehension of high-throughput genomic data in bioinformatics."
+msgstr "Lorsque @option{--archive=bioconductor} est ajoutée, les métadonnées sont importées depuis @uref{https://www.bioconductor.org/, Bioconductor}, un répertoire de paquets R pour l'analyse et la compréhension de données génomiques volumineuses en bioinformatique."
 
 #. type: table
-#: doc/guix.texi:8544
-msgid "Information is extracted from the @code{DESCRIPTION} file of a package published on the web interface of the Bioconductor SVN repository."
-msgstr "Les informations sont extraites du fichier @file{DESCRIPTION} d'un paquet publié sur l'interface web du dépôt SVN de Bioconductor."
+#: doc/guix.texi:10944
+msgid "Information is extracted from the @file{DESCRIPTION} file contained in the package archive."
+msgstr "Les informations sont extraites du fichier @file{DESCRIPTION} du paquet contenu dans l'archive du paquet."
 
 #. type: table
-#: doc/guix.texi:8547
-msgid "The command below imports metadata for the @code{GenomicRanges} R package:"
-msgstr "La commande ci-dessous importe les métadonnées du paquet R @code{GenomicRanges} :"
+#: doc/guix.texi:10946
+msgid "The command below imports metadata for the GenomicRanges R package:"
+msgstr "La commande ci-dessous importe les métadonnées pour le paquet R GenomicRanges :"
 
 #. type: example
-#: doc/guix.texi:8550
+#: doc/guix.texi:10949
 #, no-wrap
 msgid "guix import cran --archive=bioconductor GenomicRanges\n"
 msgstr "guix import cran --archive=bioconductor GenomicRanges\n"
 
+#. type: table
+#: doc/guix.texi:10954
+msgid "Finally, you can also import R packages that have not yet been published on CRAN or Bioconductor as long as they are in a git repository.  Use @option{--archive=git} followed by the URL of the git repository:"
+msgstr "Enfin, vous pouvez aussi importer des paquets R qui n'ont pas encore été publiés sur CRAN ou Bioconductor tant qu'ils ne sont pas dans le dépôt Git. Utilisez @option{--archive=git} suivi par l'URL du dépôt Git :"
+
+#. type: example
+#: doc/guix.texi:10957
+#, no-wrap
+msgid "guix import cran --archive=git https://github.com/immunogenomics/harmony\n"
+msgstr "guix import cran --archive=git https://github.com/immunogenomics/harmony\n"
+
 #. type: item
-#: doc/guix.texi:8552
+#: doc/guix.texi:10959
 #, no-wrap
 msgid "texlive"
 msgstr "texlive"
 
 #. type: cindex
-#: doc/guix.texi:8553
+#: doc/guix.texi:10960
 #, no-wrap
 msgid "TeX Live"
 msgstr "TeX Live"
 
 #. type: cindex
-#: doc/guix.texi:8554
+#: doc/guix.texi:10961
 #, no-wrap
 msgid "CTAN"
 msgstr "CTAN"
 
 #. type: table
-#: doc/guix.texi:8558
+#: doc/guix.texi:10965
 msgid "Import metadata from @uref{https://www.ctan.org/, CTAN}, the comprehensive TeX archive network for TeX packages that are part of the @uref{https://www.tug.org/texlive/, TeX Live distribution}."
 msgstr "Importe les métadonnées de @uref{https://www.ctan.org/, CTAN}, le réseau d'archive TeX complet pour les paquets TeX qui font partie de la @uref{https://www.tug.org/texlive/, distribution TeX Live}."
 
 #. type: table
-#: doc/guix.texi:8563
+#: doc/guix.texi:10970
 msgid "Information about the package is obtained through the XML API provided by CTAN, while the source code is downloaded from the SVN repository of the Tex Live project.  This is done because the CTAN does not keep versioned archives."
 msgstr "Les informations sur les paquets sont obtenues à travers l'API XML fournie par CTAN, tandis que le code source est téléchargé depuis le dépôt SVN du projet Tex Live.  Cette méthode est utilisée parce que CTAN ne garde pas d'archives versionnées."
 
 #. type: table
-#: doc/guix.texi:8566
+#: doc/guix.texi:10973
 msgid "The command command below imports metadata for the @code{fontspec} TeX package:"
 msgstr "La commande ci-dessous importe les métadonnées du paquet TeX @code{fontspec} :"
 
 #. type: example
-#: doc/guix.texi:8569
+#: doc/guix.texi:10976
 #, no-wrap
 msgid "guix import texlive fontspec\n"
 msgstr "guix import texlive fontspec\n"
 
 #. type: table
-#: doc/guix.texi:8575
-msgid "When @code{--archive=DIRECTORY} is added, the source code is downloaded not from the @file{latex} sub-directory of the @file{texmf-dist/source} tree in the TeX Live SVN repository, but from the specified sibling directory under the same root."
-msgstr "Lorsque l'option @code{--archive=DIRECTORY} est utilisée, le code source n'est pas téléchargé depuis le sous-répertoire @file{latex} du l'arborescence @file{texmf-dist/source} dans le dépôt SVN de TeX Live, mais depuis le répertoire voisin spécifié sous la même racine."
+#: doc/guix.texi:10982
+msgid "When @option{--archive=@var{directory}} is added, the source code is downloaded not from the @file{latex} sub-directory of the @file{texmf-dist/source} tree in the TeX Live SVN repository, but from the specified sibling @var{directory} under the same root."
+msgstr "Lorsque l'option @option{--archive=@var{directory}} est ajoutée, le code source n'est pas téléchargé depuis le sous-répertoire @file{latex} du l'arborescence @file{texmf-dist/source} dans le dépôt SVN de TeX Live, mais depuis le répertoire voisin @var{directory} spécifié sous la même racine."
 
 #. type: table
-#: doc/guix.texi:8579
+#: doc/guix.texi:10986
 msgid "The command below imports metadata for the @code{ifxetex} package from CTAN while fetching the sources from the directory @file{texmf/source/generic}:"
 msgstr "La commande ci-dessous importe les métadonnées du paquet @code{ifxetex} depuis CTAN en récupérant les sources depuis le répertoire @file{texmf/source/generic} :"
 
 #. type: example
-#: doc/guix.texi:8582
+#: doc/guix.texi:10989
 #, no-wrap
 msgid "guix import texlive --archive=generic ifxetex\n"
 msgstr "guix import texlive --archive=generic ifxetex\n"
 
 #. type: cindex
-#: doc/guix.texi:8585
+#: doc/guix.texi:10992
 #, no-wrap
 msgid "JSON, import"
 msgstr "JSON, import"
 
 #. type: table
-#: doc/guix.texi:8588
+#: doc/guix.texi:10995
 msgid "Import package metadata from a local JSON file.  Consider the following example package definition in JSON format:"
 msgstr "Importe des métadonnées d'un fichier JSON local.  Considérez l'exemple suivant d'une définition de paquet au format JSON :"
 
 #. type: example
-#: doc/guix.texi:8601
+#: doc/guix.texi:11008
 #, no-wrap
 msgid ""
 "@{\n"
@@ -15855,7 +20306,7 @@ msgid ""
 "  \"synopsis\": \"Hello, GNU world: An example GNU package\",\n"
 "  \"description\": \"GNU Hello prints a greeting.\",\n"
 "  \"license\": \"GPL-3.0+\",\n"
-"  \"native-inputs\": [\"gcc@@6\"]\n"
+"  \"native-inputs\": [\"gettext\"]\n"
 "@}\n"
 msgstr ""
 "@{\n"
@@ -15867,21 +20318,21 @@ msgstr ""
 "  \"synopsis\": \"Hello, GNU world: An example GNU package\",\n"
 "  \"description\": \"GNU Hello prints a greeting.\",\n"
 "  \"license\": \"GPL-3.0+\",\n"
-"  \"native-inputs\": [\"gcc@@6\"]\n"
+"  \"native-inputs\": [\"gettext\"]\n"
 "@}\n"
 
 #. type: table
-#: doc/guix.texi:8607
+#: doc/guix.texi:11014
 msgid "The field names are the same as for the @code{<package>} record (@xref{Defining Packages}).  References to other packages are provided as JSON lists of quoted package specification strings such as @code{guile} or @code{guile@@2.0}."
 msgstr "Les noms des champs sont les mêmes que pour les enregistrements de @code{<package>} (@xref{Defining Packages}).  Les référence à d'autres paquets sont fournies comme des listes JSON de chaînes de spécifications de paquets comme @code{guile} ou @code{guile@@2.0}."
 
 #. type: table
-#: doc/guix.texi:8610
+#: doc/guix.texi:11017
 msgid "The importer also supports a more explicit source definition using the common fields for @code{<origin>} records:"
 msgstr "L'importateur supporte aussi une définition plus explicite des sources avec les champs habituels pour les enregistrements @code{<origin>} :"
 
 #. type: example
-#: doc/guix.texi:8623
+#: doc/guix.texi:11030
 #, no-wrap
 msgid ""
 "@{\n"
@@ -15909,288 +20360,304 @@ msgstr ""
 "@}\n"
 
 #. type: table
-#: doc/guix.texi:8627
+#: doc/guix.texi:11034
 msgid "The command below reads metadata from the JSON file @code{hello.json} and outputs a package expression:"
 msgstr "La commande ci-dessous lit les métadonnées du fichier JSON @code{hello.json} et renvoie une expression de paquet :"
 
 #. type: example
-#: doc/guix.texi:8630
+#: doc/guix.texi:11037
 #, no-wrap
 msgid "guix import json hello.json\n"
 msgstr "guix import json hello.json\n"
 
 #. type: item
-#: doc/guix.texi:8632
+#: doc/guix.texi:11039
 #, no-wrap
 msgid "nix"
 msgstr "nix"
 
 #. type: table
-#: doc/guix.texi:8641
+#: doc/guix.texi:11048
 msgid "Import metadata from a local copy of the source of the @uref{https://nixos.org/nixpkgs/, Nixpkgs distribution}@footnote{This relies on the @command{nix-instantiate} command of @uref{https://nixos.org/nix/, Nix}.}.  Package definitions in Nixpkgs are typically written in a mixture of Nix-language and Bash code.  This command only imports the high-level package structure that is written in the Nix language.  It normally includes all the basic fields of a package definition."
 msgstr "Importe les métadonnées d'une copie locale des source de @uref{https://nixos.org/nixpkgs/, la distribution Nixpkgs}@footnote{Cela repose sur la commande @command{nix-instantiate} de @uref{https://nixos.org/nix/, Nix}.}.  Les définitions de paquets dans Nixpkgs sont habituellement écrites en un mélange entre le langage Nix et Bash.  Cette commande n'importe que la structure de haut-niveau du paquet qui est écrite dans le langage Nix.  Elle inclut normalement tous les champs de base de la définition d'un paquet."
 
 #. type: table
-#: doc/guix.texi:8644
+#: doc/guix.texi:11051
 msgid "When importing a GNU package, the synopsis and descriptions are replaced by their canonical upstream variant."
 msgstr "Lorsque vous importez un paquet GNU, le synopsis et la description sont replacés par la version canonique en amont."
 
 #. type: table
-#: doc/guix.texi:8646
+#: doc/guix.texi:11053
 msgid "Usually, you will first need to do:"
 msgstr "Normalement, vous devrez d'abord faire :"
 
 #. type: example
-#: doc/guix.texi:8649
+#: doc/guix.texi:11056
 #, no-wrap
 msgid "export NIX_REMOTE=daemon\n"
 msgstr "export NIX_REMOTE=daemon\n"
 
 #. type: table
-#: doc/guix.texi:8653
+#: doc/guix.texi:11060
 msgid "so that @command{nix-instantiate} does not try to open the Nix database."
 msgstr "pour que @command{nix-instantiate} n'essaye pas d'ouvrir la base de données de Nix."
 
 #. type: table
-#: doc/guix.texi:8657
+#: doc/guix.texi:11064
 msgid "As an example, the command below imports the package definition of LibreOffice (more precisely, it imports the definition of the package bound to the @code{libreoffice} top-level attribute):"
 msgstr "Par exemple, la commande ci-dessous importe la définition du paquet de LibreOffice (plus précisément, elle importe la définition du paquet lié à l'attribut de plus haut-niveau @code{libreoffice}) :"
 
 #. type: example
-#: doc/guix.texi:8660
+#: doc/guix.texi:11067
 #, no-wrap
 msgid "guix import nix ~/path/to/nixpkgs libreoffice\n"
 msgstr "guix import nix ~/path/to/nixpkgs libreoffice\n"
 
 #. type: item
-#: doc/guix.texi:8662 doc/guix.texi:8663 doc/guix.texi:8951
+#: doc/guix.texi:11069 doc/guix.texi:11070 doc/guix.texi:11383
 #, no-wrap
 msgid "hackage"
 msgstr "hackage"
 
 #. type: table
-#: doc/guix.texi:8668
+#: doc/guix.texi:11075
 msgid "Import metadata from the Haskell community's central package archive @uref{https://hackage.haskell.org/, Hackage}.  Information is taken from Cabal files and includes all the relevant information, including package dependencies."
 msgstr "Importe les métadonnées de l'archive de paquets centrale de la communauté Haskell, @uref{https://hackage.haskell.org/, Hackage}.  Les informations sont récupérées depuis les fichiers Cabal et incluent toutes les informations utiles, dont les dépendances des paquets."
 
 #. type: item
-#: doc/guix.texi:8672
+#: doc/guix.texi:11079
 #, no-wrap
 msgid "--stdin"
 msgstr "--stdin"
 
 #. type: itemx
-#: doc/guix.texi:8673
+#: doc/guix.texi:11080
 #, no-wrap
 msgid "-s"
 msgstr "-s"
 
 #. type: table
-#: doc/guix.texi:8675
+#: doc/guix.texi:11082
 msgid "Read a Cabal file from standard input."
 msgstr "Lit un fichier Cabal depuis l'entrée standard."
 
 #. type: item
-#: doc/guix.texi:8675 doc/guix.texi:8722
+#: doc/guix.texi:11082 doc/guix.texi:11129
 #, no-wrap
 msgid "--no-test-dependencies"
 msgstr "--no-test-dependencies"
 
-#. type: itemx
-#: doc/guix.texi:8676 doc/guix.texi:8723
-#, no-wrap
-msgid "-t"
-msgstr "-t"
-
 #. type: table
-#: doc/guix.texi:8678 doc/guix.texi:8725
+#: doc/guix.texi:11085 doc/guix.texi:11132
 msgid "Do not include dependencies required only by the test suites."
 msgstr "N'inclut pas les dépendances requises uniquement par les suites de tests."
 
 #. type: item
-#: doc/guix.texi:8678
+#: doc/guix.texi:11085
 #, no-wrap
 msgid "--cabal-environment=@var{alist}"
 msgstr "--cabal-environment=@var{alist}"
 
 #. type: itemx
-#: doc/guix.texi:8679
+#: doc/guix.texi:11086
 #, no-wrap
 msgid "-e @var{alist}"
 msgstr "-e @var{alist}"
 
 #. type: table
-#: doc/guix.texi:8688
+#: doc/guix.texi:11095
 msgid "@var{alist} is a Scheme alist defining the environment in which the Cabal conditionals are evaluated.  The accepted keys are: @code{os}, @code{arch}, @code{impl} and a string representing the name of a flag.  The value associated with a flag has to be either the symbol @code{true} or @code{false}.  The value associated with other keys has to conform to the Cabal file format definition.  The default value associated with the keys @code{os}, @code{arch} and @code{impl} is @samp{linux}, @samp{x86_64} and @samp{ghc}, respectively."
 msgstr "@var{alist} est une alist Scheme qui définie l'environnement dans lequel les conditions de Cabal sont évaluées.  Les clefs acceptées sont : @code{os}, @code{arch}, @code{impl} et une représentation sous forme de chaîne de caractères du nom d'un drapeau.  La valeur associée à un drapeau doit être le symbole @code{true} ou @code{false}.  La valeur associée aux autres clefs doivent se conformer avec la définition du format de fichiers Cabal.  La valeur par défaut associée avec les clefs @code{os}, @code{arch} et @code{impl} sont respectivement @samp{linux}, @samp{x86_64} et @samp{ghc}."
 
 #. type: table
-#: doc/guix.texi:8698
-msgid "The command below imports metadata for the latest version of the @code{HTTP} Haskell package without including test dependencies and specifying the value of the flag @samp{network-uri} as @code{false}:"
-msgstr "La commande ci-dessous importe les métadonnées de la dernière version du paquet Haskell @code{HTTP} sans inclure les dépendances des tests et en spécifiant la valeur du drapeau @samp{network-uri} comme étant @code{false} :"
+#: doc/guix.texi:11105
+msgid "The command below imports metadata for the latest version of the HTTP Haskell package without including test dependencies and specifying the value of the flag @samp{network-uri} as @code{false}:"
+msgstr "La commande ci-dessous importe les métadonnées pour la dernière version du paquet HTTP Haskell sans inclure les dépendances de test et en spécifiant la valeur du drapeau @samp{network-uri} comme @code{false} :"
 
 #. type: example
-#: doc/guix.texi:8701
+#: doc/guix.texi:11108
 #, no-wrap
 msgid "guix import hackage -t -e \"'((\\\"network-uri\\\" . false))\" HTTP\n"
 msgstr "guix import hackage -t -e \"'((\\\"network-uri\\\" . false))\" HTTP\n"
 
 #. type: table
-#: doc/guix.texi:8705
+#: doc/guix.texi:11112
 msgid "A specific package version may optionally be specified by following the package name by an at-sign and a version number as in the following example:"
 msgstr "Une version spécifique du paquet peut éventuellement être spécifiée en faisant suivre le nom du paquet par un arobase et un numéro de version comme dans l'exemple suivant :"
 
 #. type: example
-#: doc/guix.texi:8708
+#: doc/guix.texi:11115
 #, no-wrap
 msgid "guix import hackage mtl@@2.1.3.1\n"
 msgstr "guix import hackage mtl@@2.1.3.1\n"
 
 #. type: item
-#: doc/guix.texi:8710 doc/guix.texi:8711 doc/guix.texi:8953
+#: doc/guix.texi:11117 doc/guix.texi:11118 doc/guix.texi:11385
 #, no-wrap
 msgid "stackage"
 msgstr "stackage"
 
 #. type: table
-#: doc/guix.texi:8718
+#: doc/guix.texi:11125
 msgid "The @code{stackage} importer is a wrapper around the @code{hackage} one.  It takes a package name, looks up the package version included in a long-term support (LTS) @uref{https://www.stackage.org, Stackage} release and uses the @code{hackage} importer to retrieve its metadata.  Note that it is up to you to select an LTS release compatible with the GHC compiler used by Guix."
 msgstr "L'importateur @code{stackage} est une enveloppe autour de l'importateur @code{hackage}.  Il prend un nom de paquet, recherche la version incluse dans une version au support étendu (LTS) de @uref{https://www.stackage.org, Stackage} et utilise l'importateur @code{hackage} pour récupérer les métadonnées.  Remarquez que c'est à vous de choisir une version LTS compatible avec le compilateur GHC utilisé par Guix."
 
 #. type: item
-#: doc/guix.texi:8725
+#: doc/guix.texi:11132
 #, no-wrap
 msgid "--lts-version=@var{version}"
 msgstr "--lts-version=@var{version}"
 
 #. type: itemx
-#: doc/guix.texi:8726
+#: doc/guix.texi:11133
 #, no-wrap
 msgid "-l @var{version}"
 msgstr "-l @var{version}"
 
 #. type: table
-#: doc/guix.texi:8729
+#: doc/guix.texi:11136
 msgid "@var{version} is the desired LTS release version.  If omitted the latest release is used."
 msgstr "@var{version} est la version LTS désirée.  Si elle est omise, la dernière version est utilisée."
 
 #. type: table
-#: doc/guix.texi:8738
-msgid "The command below imports metadata for the @code{HTTP} Haskell package included in the LTS Stackage release version 7.18:"
-msgstr "La commande ci-dessous importe les métadonnées du paquet Haskell @code{HTTP} inclus dans la version LTS 7.18 de Stackage :"
+#: doc/guix.texi:11145
+msgid "The command below imports metadata for the HTTP Haskell package included in the LTS Stackage release version 7.18:"
+msgstr "La commande ci-dessous importe les métadonnées pour le paquet HTTP Haskell inclus dans la version 7.18 de LTS Stackage :"
 
 #. type: example
-#: doc/guix.texi:8741
+#: doc/guix.texi:11148
 #, no-wrap
 msgid "guix import stackage --lts-version=7.18 HTTP\n"
 msgstr "guix import stackage --lts-version=7.18 HTTP\n"
 
 #. type: item
-#: doc/guix.texi:8743 doc/guix.texi:8744 doc/guix.texi:8937
+#: doc/guix.texi:11150 doc/guix.texi:11151 doc/guix.texi:11369
 #, no-wrap
 msgid "elpa"
 msgstr "elpa"
 
 #. type: table
-#: doc/guix.texi:8747
+#: doc/guix.texi:11154
 msgid "Import metadata from an Emacs Lisp Package Archive (ELPA) package repository (@pxref{Packages,,, emacs, The GNU Emacs Manual})."
 msgstr "Importe les métadonnées du dépôt de paquets ELPA (Emacs Lisp Package Archive) (@pxref{Packages,,, emacs, The GNU Emacs Manual})."
 
 #. type: item
-#: doc/guix.texi:8751
+#: doc/guix.texi:11158
 #, no-wrap
 msgid "--archive=@var{repo}"
 msgstr "--archive=@var{repo}"
 
 #. type: itemx
-#: doc/guix.texi:8752
+#: doc/guix.texi:11159
 #, no-wrap
 msgid "-a @var{repo}"
 msgstr "-a @var{repo}"
 
 #. type: table
-#: doc/guix.texi:8756
+#: doc/guix.texi:11163
 msgid "@var{repo} identifies the archive repository from which to retrieve the information.  Currently the supported repositories and their identifiers are:"
 msgstr "@var{repo} identifie le dépôt d'archive depuis lequel récupérer les informations.  Actuellement les dépôts supportés et leurs identifiants sont :"
 
 #. type: itemize
-#: doc/guix.texi:8760
+#: doc/guix.texi:11167
 msgid "@uref{https://elpa.gnu.org/packages, GNU}, selected by the @code{gnu} identifier.  This is the default."
 msgstr "@uref{https://elpa.gnu.org/packages, GNU}, qu'on peut choisir avec l'identifiant @code{gnu}.  C'est la valeur par défaut."
 
 #. type: itemize
-#: doc/guix.texi:8766
+#: doc/guix.texi:11173
 msgid "Packages from @code{elpa.gnu.org} are signed with one of the keys contained in the GnuPG keyring at @file{share/emacs/25.1/etc/package-keyring.gpg} (or similar) in the @code{emacs} package (@pxref{Package Installation, ELPA package signatures,, emacs, The GNU Emacs Manual})."
 msgstr "Les paquets de @code{elpa.gnu.org} avec l'une des clefs contenues dans le porte-clef GnuPG @file{share/emacs/25.1/etc/package-keyring.gpg} (ou similaire) dans le paquet @code{emacs} (@pxref{Package Installation, ELPA package signatures,, emacs, The GNU Emacs Manual})."
 
 #. type: itemize
-#: doc/guix.texi:8770
+#: doc/guix.texi:11177
 msgid "@uref{https://stable.melpa.org/packages, MELPA-Stable}, selected by the @code{melpa-stable} identifier."
 msgstr "@uref{https://stable.melpa.org/packages, MELPA-Stable}, qu'on peut sélectionner avec l'identifiant @code{melpa-stable}."
 
 #. type: itemize
-#: doc/guix.texi:8774
+#: doc/guix.texi:11181
 msgid "@uref{https://melpa.org/packages, MELPA}, selected by the @code{melpa} identifier."
 msgstr "@uref{https://melpa.org/packages, MELPA}, qu'on peut sélectionner avec l'identifiant @code{melpa}."
 
 #. type: item
-#: doc/guix.texi:8783 doc/guix.texi:8784 doc/guix.texi:8955
+#: doc/guix.texi:11190 doc/guix.texi:11191 doc/guix.texi:11387
 #, no-wrap
 msgid "crate"
 msgstr "crate"
 
 #. type: table
-#: doc/guix.texi:8787
-msgid "Import metadata from the crates.io Rust package repository @uref{https://crates.io, crates.io}."
-msgstr "Importe les métadonnées du répertoire des paquets Rust @uref{https://crates.io, crates.io}."
+#: doc/guix.texi:11194
+msgid "Import metadata from the crates.io Rust package repository @uref{https://crates.io, crates.io}, as in this example:"
+msgstr "Importer les métadonnées du dépôt de paquets Rust crates.io @uref{https://crates.io, crates.io}, comme dans cet exemple :"
+
+#. type: example
+#: doc/guix.texi:11197
+#, no-wrap
+msgid "guix import crate blake2-rfc\n"
+msgstr "guix import crate blake2-rfc\n"
+
+#. type: table
+#: doc/guix.texi:11200
+msgid "The crate importer also allows you to specify a version string:"
+msgstr "L'importeur crate vous permet aussi de spécifier une version de chaînes de caractères :"
+
+#. type: example
+#: doc/guix.texi:11203
+#, no-wrap
+msgid "guix import crate constant-time-eq@@0.1.0\n"
+msgstr "guix import crate constant-time-eq@@0.1.0\n"
+
+#. type: table
+#: doc/guix.texi:11206
+msgid "Additional options include:"
+msgstr "Les options supplémentaires comprennent :"
 
 #. type: item
-#: doc/guix.texi:8788
+#: doc/guix.texi:11215
 #, no-wrap
 msgid "opam"
 msgstr "opam"
 
 #. type: cindex
-#: doc/guix.texi:8789
+#: doc/guix.texi:11216
 #, no-wrap
 msgid "OPAM"
 msgstr "OPAM"
 
 #. type: cindex
-#: doc/guix.texi:8790
+#: doc/guix.texi:11217
 #, no-wrap
 msgid "OCaml"
 msgstr "OCaml"
 
 #. type: table
-#: doc/guix.texi:8793
+#: doc/guix.texi:11220
 msgid "Import metadata from the @uref{https://opam.ocaml.org/, OPAM} package repository used by the OCaml community."
 msgstr "Importe les métadonnées du répertoire de paquets @uref{https://opam.ocaml.org/, OPAM} utilisé par la communauté OCaml."
 
 #. type: Plain text
-#: doc/guix.texi:8798
+#: doc/guix.texi:11225
 msgid "The structure of the @command{guix import} code is modular.  It would be useful to have more importers for other package formats, and your help is welcome here (@pxref{Contributing})."
 msgstr "La structure du code de @command{guix import} est modulaire.  Il serait utile d'avoir plus d'importateurs pour d'autres formats de paquets et votre aide est la bienvenue sur ce sujet (@pxref{Contributing})."
 
 #. type: section
-#: doc/guix.texi:8800
+#: doc/guix.texi:11227
 #, no-wrap
 msgid "Invoking @command{guix refresh}"
 msgstr "Invoquer @command{guix refresh}"
 
 #. type: command{#1}
-#: doc/guix.texi:8802
+#: doc/guix.texi:11229
 #, no-wrap
 msgid "guix refresh"
 msgstr "guix refresh"
 
 #. type: Plain text
-#: doc/guix.texi:8807
+#: doc/guix.texi:11234
 msgid "The primary audience of the @command{guix refresh} command is developers of the GNU software distribution.  By default, it reports any packages provided by the distribution that are outdated compared to the latest upstream version, like this:"
 msgstr "La commande @command{guix refresh} s'adresse avant tout aux personnes qui développent la distribution logicielle GNU.  Par défaut, elle rapporte les paquets fournis par la distribution qui sont en retard par rapport aux dernières versions disponibles en amont, comme ceci :"
 
 #. type: example
-#: doc/guix.texi:8812
+#: doc/guix.texi:11239
 #, no-wrap
 msgid ""
 "$ guix refresh\n"
@@ -16202,12 +20669,12 @@ msgstr ""
 "gnu/packages/glib.scm:77:12: glib serait mis à jour de 2.34.3 à 2.37.0\n"
 
 #. type: Plain text
-#: doc/guix.texi:8816
-msgid "Alternately, one can specify packages to consider, in which case a warning is emitted for packages that lack an updater:"
-msgstr "Autrement, on peut spécifier les paquets à considérer, auquel cas un avertissement est émis pour les paquets qui n'ont pas de gestionnaire de mise à jour associé :"
+#: doc/guix.texi:11243
+msgid "Alternatively, one can specify packages to consider, in which case a warning is emitted for packages that lack an updater:"
+msgstr "On peut aussi spécifier des paquets à prendre en compte, auquel cas un avertissement est émis pour les paquets qui ne sont pas mis à jour :"
 
 #. type: example
-#: doc/guix.texi:8821
+#: doc/guix.texi:11248
 #, no-wrap
 msgid ""
 "$ guix refresh coreutils guile guile-ssh\n"
@@ -16219,17 +20686,17 @@ msgstr ""
 "gnu/packages/guile.scm:136:12 : guile serait mis à jour de 2.0.12 à 2.0.13\n"
 
 #. type: Plain text
-#: doc/guix.texi:8830
+#: doc/guix.texi:11257
 msgid "@command{guix refresh} browses the upstream repository of each package and determines the highest version number of the releases therein.  The command knows how to update specific types of packages: GNU packages, ELPA packages, etc.---see the documentation for @option{--type} below.  There are many packages, though, for which it lacks a method to determine whether a new upstream release is available.  However, the mechanism is extensible, so feel free to get in touch with us to add a new method!"
 msgstr "@command{guix refresh} navigue le dépôt amont de chaque paquet et détermine le numéro de version le plus élevé parmi les versions publiées.  La commande sait comment mettre à jour certains types de paquets : les paquets GNU, les paquets ELPA, etc. — voir la documentation pour @option{--type} ci-dessous.  Il y a beaucoup de paquet cependant pour lesquels il manque une méthode pour déterminer si une nouvelle version est disponible en amont.  Cependant, le mécanisme est extensible, alors n'hésitez pas à nous contacter pour ajouter une nouvelle méthode !"
 
 #. type: table
-#: doc/guix.texi:8835
+#: doc/guix.texi:11262
 msgid "Consider the packages specified, and all the packages upon which they depend."
 msgstr "Considère les paquets spécifiés et tous les paquets dont ils dépendent."
 
 #. type: example
-#: doc/guix.texi:8843
+#: doc/guix.texi:11270
 #, no-wrap
 msgid ""
 "$ guix refresh --recursive coreutils\n"
@@ -16247,12 +20714,12 @@ msgstr ""
 "@dots{}\n"
 
 #. type: Plain text
-#: doc/guix.texi:8851
+#: doc/guix.texi:11278
 msgid "Sometimes the upstream name differs from the package name used in Guix, and @command{guix refresh} needs a little help.  Most updaters honor the @code{upstream-name} property in package definitions, which can be used to that effect:"
 msgstr "Parfois les noms en amont diffèrent du nom de paquet utilisé par Guix et @command{guix refresh} a besoin d'un peu d'aide.  La plupart des gestionnaires de mise à jour honorent la propriété @code{upstream-name} dans les définitions de paquets, ce qui peut être utilisé à cette fin :"
 
-#. type: example
-#: doc/guix.texi:8858
+#. type: lisp
+#: doc/guix.texi:11285
 #, no-wrap
 msgid ""
 "(define-public network-manager\n"
@@ -16268,237 +20735,253 @@ msgstr ""
 "    (properties '((upstream-name . \"NetworkManager\")))))\n"
 
 #. type: Plain text
-#: doc/guix.texi:8870
-msgid "When passed @code{--update}, it modifies distribution source files to update the version numbers and source tarball hashes of those package recipes (@pxref{Defining Packages}).  This is achieved by downloading each package's latest source tarball and its associated OpenPGP signature, authenticating the downloaded tarball against its signature using @command{gpg}, and finally computing its hash.  When the public key used to sign the tarball is missing from the user's keyring, an attempt is made to automatically retrieve it from a public key server; when this is successful, the key is added to the user's keyring; otherwise, @command{guix refresh} reports an error."
-msgstr "Lorsque l'option @code{--update} est utilisée, elle modifie les fichiers source de la distribution pour mettre à jour le numéro de version et le hash de l'archive source de ces recettes de paquets (@pxref{Defining Packages}).  Cela est effectué en téléchargeant la dernière version de l'archive des sources de chaque paquet et des signatures associées, en authentifiant l'archive téléchargée avec sa signature en utilisant @command{gpg} puis en calculant son hash.  Lorsque la clef publique utilisée pour signer l'archive manque du porte-clefs de l'utilisateur, le gestionnaire tente de la récupérer automatiquement d'un serveur de clef public ; si cela réussi, la clef est ajoutée au porte-clefs de l'utilisateur, sinon @command{guix refresh} rapporte une erreur."
+#: doc/guix.texi:11294
+msgid "When passed @option{--update}, it modifies distribution source files to update the version numbers and source tarball hashes of those package recipes (@pxref{Defining Packages}).  This is achieved by downloading each package's latest source tarball and its associated OpenPGP signature, authenticating the downloaded tarball against its signature using @command{gpgv}, and finally computing its hash---note that GnuPG must be installed and in @code{$PATH}; run @code{guix install gnupg} if needed."
+msgstr "Quand l'option @option{--update} est utilisée, elle modifie les fichiers sources de la distribution pour mettre à jour les numéros de version et les hash de l'archive source de ces recettes de paquets (@pxref{Defining Packages}).  Pour ce faire, il télécharge la dernière archive source de chaque paquet et sa signature OpenPGP associée, authentifiant l'archive téléchargée par rapport à sa signature en utilisant @command{gpgv}, et enfin calcule son hash---notez que GnuPG doit être installé et dans @code{$PATH} ; lancez @code{guix install gnupg} si nécessaire."
+
+#. type: Plain text
+#: doc/guix.texi:11300
+msgid "When the public key used to sign the tarball is missing from the user's keyring, an attempt is made to automatically retrieve it from a public key server; when this is successful, the key is added to the user's keyring; otherwise, @command{guix refresh} reports an error."
+msgstr "Quand la clé publique utilisée pour signer l'archive est manquante depuis le trousseau de clés utilisateur·rice, une tentative est faite de la récupérer automatiquement depuis un serveur de clé publique ; en cas de succès, la clé est ajoutée au trousseau de l'utilisateur·rice ; sinon, @command{guix refresh} renvoie une erreur."
 
 #. type: Plain text
-#: doc/guix.texi:8872
+#: doc/guix.texi:11302
 msgid "The following options are supported:"
 msgstr "Les options suivantes sont supportées :"
 
 #. type: table
-#: doc/guix.texi:8880 doc/guix.texi:9538
+#: doc/guix.texi:11310 doc/guix.texi:12095
 msgid "This is useful to precisely refer to a package, as in this example:"
 msgstr "C'est utile pour précisément se référer à un paquet, comme dans cet exemple :"
 
 #. type: example
-#: doc/guix.texi:8883
+#: doc/guix.texi:11313
 #, no-wrap
 msgid "guix refresh -l -e '(@@@@ (gnu packages commencement) glibc-final)'\n"
 msgstr "guix refresh -l -e '(@@@@ (gnu packages commencement) glibc-final)'\n"
 
 #. type: table
-#: doc/guix.texi:8887
-msgid "This command lists the dependents of the ``final'' libc (essentially all the packages.)"
-msgstr "Cette commande liste les paquets qui dépendent de la libc « finale » (en gros tous les paquets)."
+#: doc/guix.texi:11317
+msgid "This command lists the dependents of the ``final'' libc (essentially all the packages)."
+msgstr "Cette commande liste les dépendances de la libc « finale » (presque tous les paquets)."
 
 #. type: item
-#: doc/guix.texi:8888
+#: doc/guix.texi:11318
 #, no-wrap
 msgid "--update"
 msgstr "--update"
 
 #. type: itemx
-#: doc/guix.texi:8889
+#: doc/guix.texi:11319
 #, no-wrap
 msgid "-u"
 msgstr "-u"
 
 #. type: table
-#: doc/guix.texi:8893
+#: doc/guix.texi:11323
 msgid "Update distribution source files (package recipes) in place.  This is usually run from a checkout of the Guix source tree (@pxref{Running Guix Before It Is Installed}):"
 msgstr "Met à jour les fichiers source de la distribution (les recettes de paquets) en place.  Cette option est généralement utilisée depuis une copie du dépôt git de Guix (@pxref{Running Guix Before It Is Installed}) :"
 
 #. type: example
-#: doc/guix.texi:8896
+#: doc/guix.texi:11326
 #, no-wrap
 msgid "$ ./pre-inst-env guix refresh -s non-core -u\n"
 msgstr "$ ./pre-inst-env guix refresh -s non-core -u\n"
 
 #. type: table
-#: doc/guix.texi:8899
+#: doc/guix.texi:11329
 msgid "@xref{Defining Packages}, for more information on package definitions."
 msgstr "@xref{Defining Packages}, pour plus d'information sur les définitions des paquets."
 
 #. type: item
-#: doc/guix.texi:8900
+#: doc/guix.texi:11330
 #, no-wrap
 msgid "--select=[@var{subset}]"
 msgstr "--select=[@var{subset}]"
 
 #. type: itemx
-#: doc/guix.texi:8901
+#: doc/guix.texi:11331
 #, no-wrap
 msgid "-s @var{subset}"
 msgstr "-s @var{subset}"
 
 #. type: table
-#: doc/guix.texi:8904
+#: doc/guix.texi:11334
 msgid "Select all the packages in @var{subset}, one of @code{core} or @code{non-core}."
 msgstr "Choisi tous les paquets dans @var{subset}, entre @code{core} et @code{non-core}."
 
 #. type: table
-#: doc/guix.texi:8911
+#: doc/guix.texi:11341
 msgid "The @code{core} subset refers to all the packages at the core of the distribution---i.e., packages that are used to build ``everything else''.  This includes GCC, libc, Binutils, Bash, etc.  Usually, changing one of these packages in the distribution entails a rebuild of all the others.  Thus, such updates are an inconvenience to users in terms of build time or bandwidth used to achieve the upgrade."
 msgstr "Le sous-ensemble @code{core} se réfère à tous les paquets du cœur de la distribution — c.-à-d.@: les paquets qui sont utilisés pour construire « tout le reste ».  Cela comprend GCC, libc, Binutils, Bash, etc.  Habituellement, changer l'un de ces paquets dans la distribution implique de reconstruire tous les autres.  Ainsi, ces mises à jour sont une nuisance pour les utilisateurs, en terme de temps de compilation et de bande passante utilisés pour effectuer la mise à jour."
 
 #. type: table
-#: doc/guix.texi:8915
+#: doc/guix.texi:11345
 msgid "The @code{non-core} subset refers to the remaining packages.  It is typically useful in cases where an update of the core packages would be inconvenient."
 msgstr "Le sous-ensemble @code{non-core} se réfère au reste des paquets.  C'est habituellement utile dans les cas où une mise à jour des paquets du cœur serait dérangeante."
 
 #. type: table
-#: doc/guix.texi:8920
+#: doc/guix.texi:11350
 msgid "Select all the packages from the manifest in @var{file}. This is useful to check if any packages of the user manifest can be updated."
 msgstr "Choisi tous les paquets du manifeste dans @var{file}.  C'est utile pour vérifier qu'aucun des paquets du manifeste utilisateur ne peut être mis à jour."
 
 #. type: item
-#: doc/guix.texi:8921
+#: doc/guix.texi:11351
 #, no-wrap
 msgid "--type=@var{updater}"
 msgstr "--type=@var{updater}"
 
 #. type: itemx
-#: doc/guix.texi:8922
+#: doc/guix.texi:11352
 #, no-wrap
 msgid "-t @var{updater}"
 msgstr "-t @var{updater}"
 
 #. type: table
-#: doc/guix.texi:8925
+#: doc/guix.texi:11355
 msgid "Select only packages handled by @var{updater} (may be a comma-separated list of updaters).  Currently, @var{updater} may be one of:"
 msgstr "Chois uniquement les paquets pris en charge par @var{updater} (éventuellement une liste de gestionnaires de mise à jour séparés par des virgules). Actuellement, @var{updater} peut être l'une des valeurs suivantes :"
 
 #. type: table
-#: doc/guix.texi:8929
+#: doc/guix.texi:11359
 msgid "the updater for GNU packages;"
 msgstr "le gestionnaire de mise à jour pour les paquets GNU ;"
 
 #. type: item
-#: doc/guix.texi:8929
+#: doc/guix.texi:11359
+#, no-wrap
+msgid "savannah"
+msgstr "savannah"
+
+#. type: table
+#: doc/guix.texi:11361
+msgid "the updater for packages hosted at @uref{https://savannah.gnu.org, Savannah};"
+msgstr "le gestionnaire de mise à jour pour les paquets hébergés sur @uref{https://savannah.gnu.org, Savannah} ;"
+
+#. type: item
+#: doc/guix.texi:11361
 #, no-wrap
 msgid "gnome"
 msgstr "gnome"
 
 #. type: table
-#: doc/guix.texi:8931
+#: doc/guix.texi:11363
 msgid "the updater for GNOME packages;"
 msgstr "le gestionnaire de mise à jour pour les paquets GNOME ;"
 
 #. type: item
-#: doc/guix.texi:8931
+#: doc/guix.texi:11363
 #, no-wrap
 msgid "kde"
 msgstr "kde"
 
 #. type: table
-#: doc/guix.texi:8933
+#: doc/guix.texi:11365
 msgid "the updater for KDE packages;"
 msgstr "le gestionnaire de mise à jour pour les paquets KDE ;"
 
 #. type: item
-#: doc/guix.texi:8933
+#: doc/guix.texi:11365
 #, no-wrap
 msgid "xorg"
 msgstr "xorg"
 
 #. type: table
-#: doc/guix.texi:8935
+#: doc/guix.texi:11367
 msgid "the updater for X.org packages;"
 msgstr "le gestionnaire de mise à jour pour les paquets X.org ;"
 
 #. type: item
-#: doc/guix.texi:8935
+#: doc/guix.texi:11367
 #, no-wrap
 msgid "kernel.org"
 msgstr "kernel.org"
 
 #. type: table
-#: doc/guix.texi:8937
+#: doc/guix.texi:11369
 msgid "the updater for packages hosted on kernel.org;"
 msgstr "le gestionnaire de mise à jour pour les paquets hébergés sur kernel.org ;"
 
 #. type: table
-#: doc/guix.texi:8939
+#: doc/guix.texi:11371
 msgid "the updater for @uref{https://elpa.gnu.org/, ELPA} packages;"
 msgstr "le gestionnaire de mise à jour pour les paquets @uref{https://elpa.gnu.org/, ELPA} ;"
 
 #. type: table
-#: doc/guix.texi:8941
+#: doc/guix.texi:11373
 msgid "the updater for @uref{https://cran.r-project.org/, CRAN} packages;"
 msgstr "le gestionnaire de mise à jour pour les paquets @uref{https://cran.r-project.org/, CRAN} ;"
 
 #. type: item
-#: doc/guix.texi:8941
+#: doc/guix.texi:11373
 #, no-wrap
 msgid "bioconductor"
 msgstr "bioconductor"
 
 #. type: table
-#: doc/guix.texi:8943
+#: doc/guix.texi:11375
 msgid "the updater for @uref{https://www.bioconductor.org/, Bioconductor} R packages;"
 msgstr "le gestionnaire de mise à jour pour les paquets @uref{https://www.bioconductor.org/, Bioconductor} ;"
 
 #. type: table
-#: doc/guix.texi:8945
+#: doc/guix.texi:11377
 msgid "the updater for @uref{https://www.cpan.org/, CPAN} packages;"
 msgstr "le gestionnaire de mise à jour pour les paquets @uref{https://www.cpan.org/, CPAN} ;"
 
 #. type: table
-#: doc/guix.texi:8947
+#: doc/guix.texi:11379
 msgid "the updater for @uref{https://pypi.python.org, PyPI} packages."
-msgstr "le gestionnaire de mise à jour pour les paquets @uref{https://pypi.python.org, PyPI} ;"
+msgstr "le gestionnaire de mise à jour pour les paquets @uref{https://pypi.python.org, PyPI}."
 
 #. type: table
-#: doc/guix.texi:8949
+#: doc/guix.texi:11381
 msgid "the updater for @uref{https://rubygems.org, RubyGems} packages."
-msgstr "le gestionnaire de mise à jour pour les paquets @uref{https://rubygems.org, RubyGems} ;"
+msgstr "le gestionnaire de mise à jour pour les paquets @uref{https://rubygems.org, RubyGems}."
 
 #. type: item
-#: doc/guix.texi:8949
+#: doc/guix.texi:11381
 #, no-wrap
 msgid "github"
 msgstr "github"
 
 #. type: table
-#: doc/guix.texi:8951
+#: doc/guix.texi:11383
 msgid "the updater for @uref{https://github.com, GitHub} packages."
-msgstr "le gestionnaire de mise à jour pour les paquets @uref{https://github.com, GitHub} ;"
+msgstr "le gestionnaire de mise à jour pour les paquets @uref{https://github.com, GitHub}."
 
 #. type: table
-#: doc/guix.texi:8953
+#: doc/guix.texi:11385
 msgid "the updater for @uref{https://hackage.haskell.org, Hackage} packages."
-msgstr "le gestionnaire de mise à jour pour les paquets @uref{https://hackage.haskell.org, Hackage} ;"
+msgstr "le gestionnaire de mise à jour pour les paquets @uref{https://hackage.haskell.org, Hackage}."
 
 #. type: table
-#: doc/guix.texi:8955
+#: doc/guix.texi:11387
 msgid "the updater for @uref{https://www.stackage.org, Stackage} packages."
-msgstr "le gestionnaire de mise à jour pour les paquets @uref{https://www.stackage.org, Stackage} ;"
+msgstr "le gestionnaire de mise à jour pour les paquets @uref{https://www.stackage.org, Stackage}."
 
 #. type: table
-#: doc/guix.texi:8957
+#: doc/guix.texi:11389
 msgid "the updater for @uref{https://crates.io, Crates} packages."
-msgstr "le gestionnaire de mise à jour pour les paquets @uref{https://crates.io, Crates} ;"
+msgstr "le gestionnaire de mise à jour pour les paquets @uref{https://crates.io, Crates}."
 
 #. type: item
-#: doc/guix.texi:8957
+#: doc/guix.texi:11389
 #, no-wrap
 msgid "launchpad"
 msgstr "launchpad"
 
 #. type: table
-#: doc/guix.texi:8959
+#: doc/guix.texi:11391
 msgid "the updater for @uref{https://launchpad.net, Launchpad} packages."
 msgstr "le gestionnaire de mise à jour pour les paquets @uref{https://launchpad.net, Launchpad}"
 
 #. type: table
-#: doc/guix.texi:8963
+#: doc/guix.texi:11395
 msgid "For instance, the following command only checks for updates of Emacs packages hosted at @code{elpa.gnu.org} and for updates of CRAN packages:"
 msgstr "Par exemple, la commande suivante ne vérifie que les mises à jour des paquets Emacs hébergés sur @code{elpa.gnu.org} et les paquets CRAN :"
 
 #. type: example
-#: doc/guix.texi:8968
+#: doc/guix.texi:11400
 #, no-wrap
 msgid ""
 "$ guix refresh --type=elpa,cran\n"
@@ -16510,77 +20993,77 @@ msgstr ""
 "gnu/packages/emacs.scm:856:13 : emacs-auctex serait mis à jour de 11.88.6 à 11.88.9\n"
 
 #. type: Plain text
-#: doc/guix.texi:8974
+#: doc/guix.texi:11406
 msgid "In addition, @command{guix refresh} can be passed one or more package names, as in this example:"
 msgstr "En plus, on peut passer à @command{guix refresh} un ou plusieurs noms de paquets, comme dans cet exemple :"
 
 #. type: example
-#: doc/guix.texi:8977
+#: doc/guix.texi:11409
 #, no-wrap
 msgid "$ ./pre-inst-env guix refresh -u emacs idutils gcc@@4.8\n"
 msgstr "$ ./pre-inst-env guix refresh -u emacs idutils gcc@@4.8\n"
 
 #. type: Plain text
-#: doc/guix.texi:8983
-msgid "The command above specifically updates the @code{emacs} and @code{idutils} packages.  The @code{--select} option would have no effect in this case."
-msgstr "La commande au-dessus met à jour spécifiquement les paquets @code{emacs} et @code{idutils}.  L'option @code{--select} n'aurait aucun effet dans ce cas."
+#: doc/guix.texi:11415
+msgid "The command above specifically updates the @code{emacs} and @code{idutils} packages.  The @option{--select} option would have no effect in this case."
+msgstr "La commande ci-dessus met à jour spécifiquement les paquets @code{emacs} et @code{idutils}.  L'option @option{--select} n'aurait aucun effet dans ce cas."
 
 #. type: Plain text
-#: doc/guix.texi:8988
+#: doc/guix.texi:11420
 msgid "When considering whether to upgrade a package, it is sometimes convenient to know which packages would be affected by the upgrade and should be checked for compatibility.  For this the following option may be used when passing @command{guix refresh} one or more package names:"
 msgstr "Pour déterminer s'il faut mettre à jour un paquet, il est parfois pratique de savoir quels paquets seraient affectés par la mise à jour pour pouvoir vérifier la compatibilité.  Pour cela l'option suivante peut être utilisée avec un ou plusieurs noms de paquets passés à @command{guix refresh} :"
 
 #. type: item
-#: doc/guix.texi:8991
+#: doc/guix.texi:11423
 #, no-wrap
 msgid "--list-updaters"
 msgstr "--list-updaters"
 
 #. type: itemx
-#: doc/guix.texi:8992
+#: doc/guix.texi:11424
 #, no-wrap
 msgid "-L"
 msgstr "-L"
 
 #. type: table
-#: doc/guix.texi:8994
-msgid "List available updaters and exit (see @option{--type} above.)"
-msgstr "Liste les gestionnaires de mise à jour et quitte (voir l'option @option{--type} plus haut)."
+#: doc/guix.texi:11426
+msgid "List available updaters and exit (see @option{--type} above)."
+msgstr "Liste les gestionnaires de mises à jour disponibles et quitte (voir @option{--type} ci-dessus)."
 
 #. type: table
-#: doc/guix.texi:8997
+#: doc/guix.texi:11429
 msgid "For each updater, display the fraction of packages it covers; at the end, display the fraction of packages covered by all these updaters."
 msgstr "Pour chaque gestionnaire, affiche le pourcentage de paquets qu'il couvre ; à la fin, affiche le pourcentage de paquets couverts par tous les gestionnaires."
 
 #. type: item
-#: doc/guix.texi:8998
+#: doc/guix.texi:11430
 #, no-wrap
 msgid "--list-dependent"
 msgstr "--list-dependent"
 
 #. type: itemx
-#: doc/guix.texi:8999 doc/guix.texi:9215
+#: doc/guix.texi:11431 doc/guix.texi:11690
 #, no-wrap
 msgid "-l"
 msgstr "-l"
 
 #. type: table
-#: doc/guix.texi:9002
+#: doc/guix.texi:11434
 msgid "List top-level dependent packages that would need to be rebuilt as a result of upgrading one or more packages."
 msgstr "Liste les paquets de plus haut-niveau qui devraient être reconstruits après la mise à jour d'un ou plusieurs paquets."
 
 #. type: table
-#: doc/guix.texi:9006
+#: doc/guix.texi:11438
 msgid "@xref{Invoking guix graph, the @code{reverse-package} type of @command{guix graph}}, for information on how to visualize the list of dependents of a package."
 msgstr "@xref{Invoking guix graph, le type @code{reverse-package} de @command{guix graph}}, pour des informations sur la manière de visualiser la liste des paquets dépendant d'un autre."
 
 #. type: Plain text
-#: doc/guix.texi:9012
-msgid "Be aware that the @code{--list-dependent} option only @emph{approximates} the rebuilds that would be required as a result of an upgrade.  More rebuilds might be required under some circumstances."
-msgstr "Soyez conscients que l'option @code{--list-dependent} ne fait @emph{qu'approximer} les reconstructions qui seraient requises par une mise à jour.  Plus de reconstructions pourraient être requises dans certaines circonstances."
+#: doc/guix.texi:11444
+msgid "Be aware that the @option{--list-dependent} option only @emph{approximates} the rebuilds that would be required as a result of an upgrade.  More rebuilds might be required under some circumstances."
+msgstr "Sachez que l'option @option{--list-dependent} n'a qu'une approche @emph{approximative} sur les reconstructions qui seraient nécessaires à la suite d'une mise à jour.  D'autres reconstructions peuvent être nécessaires dans certaines circonstances."
 
 #. type: example
-#: doc/guix.texi:9017
+#: doc/guix.texi:11449
 #, no-wrap
 msgid ""
 "$ guix refresh --list-dependent flex\n"
@@ -16592,23 +21075,23 @@ msgstr ""
 "hop@@2.4.0 geiser@@0.4 notmuch@@0.18 mu@@0.9.9.5 cflow@@1.4 idutils@@4.6 @dots{}\n"
 
 #. type: Plain text
-#: doc/guix.texi:9021
+#: doc/guix.texi:11453
 msgid "The command above lists a set of packages that could be built to check for compatibility with an upgraded @code{flex} package."
 msgstr "La commande ci-dessus liste un ensemble de paquets qui peuvent être construits pour vérifier la compatibilité d'une mise à jour de @code{flex}."
 
 #. type: item
-#: doc/guix.texi:9024
+#: doc/guix.texi:11456
 #, no-wrap
 msgid "--list-transitive"
 msgstr "--list-transitive"
 
 #. type: table
-#: doc/guix.texi:9026
+#: doc/guix.texi:11458
 msgid "List all the packages which one or more packages depend upon."
 msgstr "Lister tous les paquets dont un paquet ou plus dépendent."
 
 #. type: example
-#: doc/guix.texi:9031
+#: doc/guix.texi:11463
 #, no-wrap
 msgid ""
 "$ guix refresh --list-transitive flex\n"
@@ -16620,60 +21103,60 @@ msgstr ""
 "bison@@3.0.5 indent@@2.2.10 tar@@1.30 gzip@@1.9 bzip2@@1.0.6 xz@@5.2.4 file@@5.33 @dots{}\n"
 
 #. type: Plain text
-#: doc/guix.texi:9037
+#: doc/guix.texi:11469
 msgid "The command above lists a set of packages which, when changed, would cause @code{flex} to be rebuilt."
 msgstr "La commande ci-dessus liste un ensemble de paquets qui, lorsqu'ils sont modifiés, causent la reconstruction de @code{flex}."
 
 #. type: Plain text
-#: doc/guix.texi:9039
+#: doc/guix.texi:11471
 msgid "The following options can be used to customize GnuPG operation:"
 msgstr "Les options suivante peuvent être utilisées pour personnaliser les opérations avec GnuPG :"
 
 #. type: item
-#: doc/guix.texi:9042
+#: doc/guix.texi:11474
 #, no-wrap
 msgid "--gpg=@var{command}"
 msgstr "--gpg=@var{commande}"
 
 #. type: table
-#: doc/guix.texi:9045
+#: doc/guix.texi:11477
 msgid "Use @var{command} as the GnuPG 2.x command.  @var{command} is searched for in @code{$PATH}."
 msgstr "Utilise @var{commande} comme la commande de GnuPG 2.x.  @var{commande} est recherchée dans @code{PATH}."
 
 #. type: item
-#: doc/guix.texi:9046
+#: doc/guix.texi:11478
 #, no-wrap
 msgid "--keyring=@var{file}"
 msgstr "--keyring=@var{fichier}"
 
 #. type: table
-#: doc/guix.texi:9052
+#: doc/guix.texi:11484
 msgid "Use @var{file} as the keyring for upstream keys.  @var{file} must be in the @dfn{keybox format}.  Keybox files usually have a name ending in @file{.kbx} and the GNU@tie{}Privacy Guard (GPG) can manipulate these files (@pxref{kbxutil, @command{kbxutil},, gnupg, Using the GNU Privacy Guard}, for information on a tool to manipulate keybox files)."
 msgstr "Utilise @var{fichier} comme porte-clefs pour les clefs amont.  @var{fichier} doit être dans le @dfn{format keybox}.  Les fichiers Keybox ont d'habitude un nom qui fini par @file{.kbx} et GNU@tie{}Privacy Guard (GPG) peut manipuler ces fichiers (@pxref{kbxutil, @command{kbxutil},, gnupg, Using the Privacy Guard}, pour plus d'informations sur un outil pour manipuler des fichiers keybox)."
 
 #. type: table
-#: doc/guix.texi:9058
-msgid "When this option is omitted, @command{guix refresh} uses @file{~/.config/guix/upstream/trustedkeys.kbx} as the keyring for upstream signing keys.  OpenPGP signatures are checked against keys from this keyring; missing keys are downloaded to this keyring as well (see @option{--key-download} below.)"
-msgstr "Lorsque cette option est omise, @command{guix refresh} utilise @file{~/.config/guix/upstream/trustedkeys.kbx} comme porte-clefs pour les clefs de signature amont.  Les signatures OpenPGP sont vérifiées avec ces clefs ; les clefs manquantes sont aussi téléchargées dans ce porte-clefs (voir @option{--key-download} plus bas)."
+#: doc/guix.texi:11490
+msgid "When this option is omitted, @command{guix refresh} uses @file{~/.config/guix/upstream/trustedkeys.kbx} as the keyring for upstream signing keys.  OpenPGP signatures are checked against keys from this keyring; missing keys are downloaded to this keyring as well (see @option{--key-download} below)."
+msgstr "Lorsque cette option est omise, @command{guix refresh} utilise @file{~/.config/guix/upstream/trustedkeys.kbx} comme trousseau pour les clés de signature en amont.  Les signatures OpenPGP sont vérifiées avec ces clés ; les clés manquantes sont aussi téléchargées dans ce trousseau (voir @option{--key-download} plus bas)."
 
 #. type: table
-#: doc/guix.texi:9061
+#: doc/guix.texi:11493
 msgid "You can export keys from your default GPG keyring into a keybox file using commands like this one:"
 msgstr "Vous pouvez exporter les clefs de votre porte-clefs GPG par défaut dans un fichier keybox avec une commande telle que :"
 
 #. type: example
-#: doc/guix.texi:9064
+#: doc/guix.texi:11496
 #, no-wrap
 msgid "gpg --export rms@@gnu.org | kbxutil --import-openpgp >> mykeyring.kbx\n"
 msgstr "gpg --export rms@@gnu.org | kbxutil --import-openpgp >> mykeyring.kbx\n"
 
 #. type: table
-#: doc/guix.texi:9067
+#: doc/guix.texi:11499
 msgid "Likewise, you can fetch keys to a specific keybox file like this:"
 msgstr "De même, vous pouvez récupérer des clefs dans un fichier keybox spécifique comme ceci :"
 
 #. type: example
-#: doc/guix.texi:9071
+#: doc/guix.texi:11503
 #, no-wrap
 msgid ""
 "gpg --no-default-keyring --keyring mykeyring.kbx \\\n"
@@ -16683,187 +21166,241 @@ msgstr ""
 "  --recv-keys @value{OPENPGP-SIGNING-KEY-ID}\n"
 
 #. type: table
-#: doc/guix.texi:9075
+#: doc/guix.texi:11507
 msgid "@ref{GPG Configuration Options, @option{--keyring},, gnupg, Using the GNU Privacy Guard}, for more information on GPG's @option{--keyring} option."
 msgstr "@ref{GPG Configuration Options, @option{--keyring},, gnupg, Using the GNU Privacy Guard} pour plus d'informations sur l'option @option{--keyring} de GPG."
 
 #. type: table
-#: doc/guix.texi:9079
+#: doc/guix.texi:11511
 msgid "Handle missing OpenPGP keys according to @var{policy}, which may be one of:"
 msgstr "Gère les clefs OpenPGP manquantes d'après la @var{politique}, qui peut être l'une des suivantes :"
 
 #. type: item
-#: doc/guix.texi:9081 doc/guix.texi:16048
+#: doc/guix.texi:11513 doc/guix.texi:19898
 #, no-wrap
 msgid "always"
 msgstr "always"
 
 #. type: table
-#: doc/guix.texi:9084
+#: doc/guix.texi:11516
 msgid "Always download missing OpenPGP keys from the key server, and add them to the user's GnuPG keyring."
 msgstr "Toujours télécharger les clefs manquantes depuis un serveur de clefs et les ajouter au porte-clefs de l'utilisateur."
 
 #. type: item
-#: doc/guix.texi:9085 doc/guix.texi:16050
+#: doc/guix.texi:11517 doc/guix.texi:19900
 #, no-wrap
 msgid "never"
 msgstr "never"
 
 #. type: table
-#: doc/guix.texi:9087
+#: doc/guix.texi:11519
 msgid "Never try to download missing OpenPGP keys.  Instead just bail out."
 msgstr "Ne jamais essayer de télécharger les clefs OpenPGP manquante.  Quitter à la place."
 
 #. type: item
-#: doc/guix.texi:9088
+#: doc/guix.texi:11520
 #, no-wrap
 msgid "interactive"
 msgstr "interactive"
 
 #. type: table
-#: doc/guix.texi:9091
+#: doc/guix.texi:11523
 msgid "When a package signed with an unknown OpenPGP key is encountered, ask the user whether to download it or not.  This is the default behavior."
 msgstr "Lorsqu'on rencontre un paquet signé par une clef OpenPGP inconnue, demander à l'utilisateur s'il souhaite la télécharger ou non.  C'est le comportement par défaut."
 
 #. type: item
-#: doc/guix.texi:9093
+#: doc/guix.texi:11525
 #, no-wrap
 msgid "--key-server=@var{host}"
 msgstr "--key-server=@var{host}"
 
 #. type: table
-#: doc/guix.texi:9095
+#: doc/guix.texi:11527
 msgid "Use @var{host} as the OpenPGP key server when importing a public key."
 msgstr "Utiliser @var{host} comme serveur de clefs OpenPGP lors de l'importe d'une clef publique."
 
 #. type: Plain text
-#: doc/guix.texi:9108
-msgid "The @code{github} updater uses the @uref{https://developer.github.com/v3/, GitHub API} to query for new releases.  When used repeatedly e.g.@: when refreshing all packages, GitHub will eventually refuse to answer any further API requests.  By default 60 API requests per hour are allowed, and a full refresh on all GitHub packages in Guix requires more than this.  Authentication with GitHub through the use of an API token alleviates these limits.  To use an API token, set the environment variable @code{GUIX_GITHUB_TOKEN} to a token procured from @uref{https://github.com/settings/tokens} or otherwise."
-msgstr "Le gestionnaire de mises à jour @code{github} utilise @uref{https://developer.github.com/v3/, l'API de GitHub} pour faire des requêtes sur les nouvelles versions.  Lorsqu'elle est utilisé de manière répétée, p.@: ex.@: lorsque vous vérifiez tous les paquets, GitHub finira par refuser de répondre à d'autres requêtes de l'API.  Par défaut 60 requêtes à l'heure sont autorisées, et une vérification complète de tous les paquets GitHub dans Guix requiert bien plus que cela.  L'authentification avec GitHub à travers l'utilisation d'un jeton d'API lève ces limites.  Pour utiliser un jeton de l'API, initialisez la variable d'environnement @code{GUIX_GITHUB_TOKEN} avec un jeton que vous vous serez procuré sur @uref{https://github.com/settings/tokens} ou autrement."
+#: doc/guix.texi:11547
+msgid "The @code{github} updater uses the @uref{https://developer.github.com/v3/, GitHub API} to query for new releases.  When used repeatedly e.g.@: when refreshing all packages, GitHub will eventually refuse to answer any further API requests.  By default 60 API requests per hour are allowed, and a full refresh on all GitHub packages in Guix requires more than this.  Authentication with GitHub through the use of an API token alleviates these limits.  To use an API token, set the environment variable @env{GUIX_GITHUB_TOKEN} to a token procured from @uref{https://github.com/settings/tokens} or otherwise."
+msgstr "Le gestionnaire de mises à jour @code{github} utilise @uref{https://developer.github.com/v3/, GitHub API} pour faire des requêtes sur les nouvelles versions.  Lorsqu'elle est utilisé de manière répétée, par exemple lorsque vous vérifiez tous les paquets, GitHub finira par refuser de répondre à d'autres requêtes de l'API.  Par défaut 60 requêtes à l'heure sont autorisées, et une vérification complète de tous les paquets GitHub dans Guix demande bien plus que celà.  L'authentification avec GitHub à travers l'utilisation d'un jeton d'API lève ces limites.  Pour utiliser un jeton de l'API, initialisez la variable d'environnement @env{GUIX_GITHUB_TOKEN} avec un jeton que vous vous serez procuré sur @uref{https://github.com/settings/tokens} ou autrement."
 
 #. type: section
-#: doc/guix.texi:9111
+#: doc/guix.texi:11550
 #, no-wrap
 msgid "Invoking @command{guix lint}"
 msgstr "Invoquer @command{guix lint}"
 
 #. type: command{#1}
-#: doc/guix.texi:9113
+#: doc/guix.texi:11552
 #, no-wrap
 msgid "guix lint"
 msgstr "guix lint"
 
 #. type: cindex
-#: doc/guix.texi:9114
+#: doc/guix.texi:11553
 #, no-wrap
 msgid "package, checking for errors"
 msgstr "paquets, chercher des erreurs"
 
 #. type: Plain text
-#: doc/guix.texi:9120
-msgid "The @command{guix lint} command is meant to help package developers avoid common errors and use a consistent style.  It runs a number of checks on a given set of packages in order to find common mistakes in their definitions.  Available @dfn{checkers} include (see @code{--list-checkers} for a complete list):"
-msgstr "La commande @command{guix lint} est conçue pour aider les développeur·euse·s à éviter des erreurs communes et à utiliser un style cohérent lors de l'écriture de recettes de paquets.  Elle lance des vérifications sur un ensemble de paquets donnés pour trouver des erreurs communes dans leur définition.  Les @dfn{vérifieurs} disponibles comprennent (voir @code{--list-checkers} pour une liste complète) :"
+#: doc/guix.texi:11559
+msgid "The @command{guix lint} command is meant to help package developers avoid common errors and use a consistent style.  It runs a number of checks on a given set of packages in order to find common mistakes in their definitions.  Available @dfn{checkers} include (see @option{--list-checkers} for a complete list):"
+msgstr "La commande @command{guix lint} est conçue pour aider les développeur·euse·s à éviter des erreurs communes et à utiliser un style cohérent lors de l'écriture de recettes de paquets.  Elle lance des vérifications sur un ensemble de paquets donnés pour trouver des erreurs communes dans leur définition.  Les @dfn{vérifieurs} disponibles comprennent (voir @option{--list-checkers} pour une liste complète) :"
 
 #. type: table
-#: doc/guix.texi:9126
+#: doc/guix.texi:11565
 msgid "Validate certain typographical and stylistic rules about package descriptions and synopses."
 msgstr "Vérifie certaines règles typographiques et stylistiques dans les descriptions et les synopsis."
 
 #. type: item
-#: doc/guix.texi:9127
+#: doc/guix.texi:11566
 #, no-wrap
 msgid "inputs-should-be-native"
 msgstr "inputs-should-be-native"
 
 #. type: table
-#: doc/guix.texi:9129
+#: doc/guix.texi:11568
 msgid "Identify inputs that should most likely be native inputs."
 msgstr "Identifie les entrées qui devraient sans doute plutôt être des entrées natives."
 
 #. type: itemx
-#: doc/guix.texi:9132
+#: doc/guix.texi:11571
 #, no-wrap
 msgid "mirror-url"
 msgstr "mirror-url"
 
 #. type: itemx
-#: doc/guix.texi:9133
+#: doc/guix.texi:11572
 #, no-wrap
 msgid "github-url"
 msgstr "github-url"
 
 #. type: itemx
-#: doc/guix.texi:9134
+#: doc/guix.texi:11573
 #, no-wrap
 msgid "source-file-name"
 msgstr "source-file-name"
 
 #. type: table
-#: doc/guix.texi:9141
+#: doc/guix.texi:11580
 msgid "Probe @code{home-page} and @code{source} URLs and report those that are invalid.  Suggest a @code{mirror://} URL when applicable.  If the @code{source} URL redirects to a GitHub URL, recommend usage of the GitHub URL.  Check that the source file name is meaningful, e.g.@: is not just a version number or ``git-checkout'', without a declared @code{file-name} (@pxref{origin Reference})."
 msgstr "Sonde les URL @code{home-page} et @code{source} et rapporte celles qui sont invalides.  Suggère une URL en @code{mirror://} lorsque c'est possible.  Si l'URL de @code{source} redirige vers une URL GitHub, recommande d'utiliser l'URL GitHub.  Vérifie que le nom du fichier source a un sens, p.@: ex.@: qu'il ne s'agisse pas juste d'un numéro de version ou « git-checkout », sans avoir déclaré un @code{file-name} (@pxref{origin Reference})."
 
 #. type: item
-#: doc/guix.texi:9142
+#: doc/guix.texi:11581
 #, no-wrap
 msgid "source-unstable-tarball"
 msgstr "source-unstable-tarball"
 
 #. type: table
-#: doc/guix.texi:9146
+#: doc/guix.texi:11585
 msgid "Parse the @code{source} URL to determine if a tarball from GitHub is autogenerated or if it is a release tarball.  Unfortunately GitHub's autogenerated tarballs are sometimes regenerated."
 msgstr "Analyse l'URL @code{source} pour déterminer si une archive de GitHub est autogénérée ou s'il s'agit d'une archive de publication.  Malheureusement les archives autogénérées de GitHub sont parfois régénérées."
 
+#. type: table
+#: doc/guix.texi:11589
+msgid "Check that the derivation of the given packages can be successfully computed for all the supported systems (@pxref{Derivations})."
+msgstr "Vérifiez que la dérivation des paquets donnés peut être calculée avec succès pour tous les systèmes pris en charge (@pxref{Dérivations})."
+
+#. type: item
+#: doc/guix.texi:11590
+#, no-wrap
+msgid "profile-collisions"
+msgstr "profile-collisions"
+
+#. type: table
+#: doc/guix.texi:11596
+msgid "Check whether installing the given packages in a profile would lead to collisions.  Collisions occur when several packages with the same name but a different version or a different store file name are propagated.  @xref{package Reference, @code{propagated-inputs}}, for more information on propagated inputs."
+msgstr "Vérifiez si l'installation des paquets donnés dans un profil risque d'entraîner des collisions.  Des collisions se produisent lorsque plusieurs paquets portant le même nom mais avec une version différente ou un nom de fichier de stockage différent sont propagés.  @xref{package Reference, @code{propagated-inputs}}, pour plus d'informations sur les entrées propagées."
+
+#. type: item
+#: doc/guix.texi:11597
+#, no-wrap
+msgid "archival"
+msgstr "archivage"
+
+#. type: cindex
+#: doc/guix.texi:11598
+#, no-wrap
+msgid "Software Heritage, source code archive"
+msgstr "Software Heritage, archive de code source"
+
+#. type: cindex
+#: doc/guix.texi:11599
+#, no-wrap
+msgid "archival of source code, Software Heritage"
+msgstr "archivage de code source, Software Heritage"
+
+#. type: table
+#: doc/guix.texi:11602
+msgid "Checks whether the package's source code is archived at @uref{https://www.softwareheritage.org, Software Heritage}."
+msgstr "Vérifie si le code source du paquet est archivé à @uref{https://www.softwareheritage.org, Software Heritage}."
+
+#. type: table
+#: doc/guix.texi:11610
+msgid "When the source code that is not archived comes from a version-control system (VCS)---e.g., it's obtained with @code{git-fetch}, send Software Heritage a ``save'' request so that it eventually archives it.  This ensures that the source will remain available in the long term, and that Guix can fall back to Software Heritage should the source code disappear from its original host.  The status of recent ``save'' requests can be @uref{https://archive.softwareheritage.org/save/#requests, viewed on-line}."
+msgstr "Lorsque le code source non archivé provient d'un système de contrôle de version (VCS)---par exemple, il est obtenu avec @code{git-fetch}, envoyez au Software Heritage une requête « save » afin qu'il l'archive éventuellement.  Cela garantit que le code source restera disponible à long terme et que Guix peut se retourner vers le Software Heritage si le code source disparaît de son hôte d'origine.  L'état des demandes récentes de « sauvegarde » peut être @uref{https://archive.softwareheritage.org/save/#requests, consulté en ligne}."
+
+#. type: table
+#: doc/guix.texi:11615
+msgid "When source code is a tarball obtained with @code{url-fetch}, simply print a message when it is not archived.  As of this writing, Software Heritage does not allow requests to save arbitrary tarballs; we are working on ways to ensure that non-VCS source code is also archived."
+msgstr "Quand le code source est une archive obtenue avec @code{url-fetch}, celà affiche simplement un message quand il n'est pas archivé. Au moment où nous écrivons ces lignes, le Software Heritage n'autorise pas les demandes de sauvegarde d'archives arbitraires ; nous travaillons sur les moyens de garantir que le code source non-VCS soit également archivé."
+
+#. type: table
+#: doc/guix.texi:11621
+msgid "Software Heritage @uref{https://archive.softwareheritage.org/api/#rate-limiting, limits the request rate per IP address}.  When the limit is reached, @command{guix lint} prints a message and the @code{archival} checker stops doing anything until that limit has been reset."
+msgstr "Software Heritage @uref{https://archive.softwareheritage.org/api/#rate-limiting, limits the request rate per IP address}.  Quand la limite est atteinte, @command{guix lint} affiche un message et le vérificateur @code{archival} arrête de faire quoi que ce soit jusqu'à ce que cette limite soit réinitialisée."
+
 #. type: item
-#: doc/guix.texi:9147
+#: doc/guix.texi:11622
 #, no-wrap
 msgid "cve"
 msgstr "cve"
 
 #. type: cindex
-#: doc/guix.texi:9148 doc/guix.texi:25526
+#: doc/guix.texi:11623 doc/guix.texi:32372
 #, no-wrap
 msgid "security vulnerabilities"
 msgstr "vulnérabilités"
 
 #. type: cindex
-#: doc/guix.texi:9149
+#: doc/guix.texi:11624
 #, no-wrap
 msgid "CVE, Common Vulnerabilities and Exposures"
 msgstr "CVE, Common Vulnerabilities and Exposures"
 
 #. type: table
-#: doc/guix.texi:9154
-msgid "Report known vulnerabilities found in the Common Vulnerabilities and Exposures (CVE) databases of the current and past year @uref{https://nvd.nist.gov/download.cfm#CVE_FEED, published by the US NIST}."
-msgstr "Rapporte les vulnérabilités connues trouvées dans les bases de données CVE (Common Vulnerabilities and Exposures) de l'année en cours et des années précédentes @uref{https://nvd.nist.gov/download.cfm#CVE_FEED, publié par le NIST américain}."
+#: doc/guix.texi:11629
+msgid "Report known vulnerabilities found in the Common Vulnerabilities and Exposures (CVE) databases of the current and past year @uref{https://nvd.nist.gov/vuln/data-feeds, published by the US NIST}."
+msgstr "Rapporte les vulnérabilités connues trouvées dans les bases de données CVE (Common Vulnerabilities and Exposures) de l'année en cours et de l'année précédente @uref{https://nvd.nist.gov/download.cfm#CVE_FEED, published by the US NIST}."
 
 #. type: table
-#: doc/guix.texi:9156
+#: doc/guix.texi:11631
 msgid "To view information about a particular vulnerability, visit pages such as:"
 msgstr "Pour voir les informations sur une vulnérabilité en particulier, visitez les pages :"
 
 #. type: indicateurl{#1}
-#: doc/guix.texi:9160
+#: doc/guix.texi:11635
 msgid "https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-YYYY-ABCD"
 msgstr "https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-ANNÉE-ABCD"
 
 #. type: indicateurl{#1}
-#: doc/guix.texi:9162
+#: doc/guix.texi:11637
 msgid "https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-YYYY-ABCD"
 msgstr "https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-ANNÉE-ABCD"
 
 #. type: table
-#: doc/guix.texi:9167
+#: doc/guix.texi:11642
 msgid "where @code{CVE-YYYY-ABCD} is the CVE identifier---e.g., @code{CVE-2015-7554}."
 msgstr "où @code{CVE-ANNÉE-ABCD} est l'identifiant CVE — p.@: ex.@: @code{CVE-2015-7554}."
 
 #. type: table
-#: doc/guix.texi:9172
-msgid "Package developers can specify in package recipes the @uref{https://nvd.nist.gov/cpe.cfm,Common Platform Enumeration (CPE)} name and version of the package when they differ from the name or version that Guix uses, as in this example:"
-msgstr "On peut spécifier dans les recettes des paquets le nom @uref{https://nvd.nist.gov/cpe.cfm,CPE (Common Platform Enumeration)} et la version du paquet s'ils diffèrent du nom et de la version que Guix utilise, comme dans cet exemple :"
+#: doc/guix.texi:11647
+msgid "Package developers can specify in package recipes the @uref{https://nvd.nist.gov/products/cpe,Common Platform Enumeration (CPE)} name and version of the package when they differ from the name or version that Guix uses, as in this example:"
+msgstr "On peut spécifier dans les recettes des paquets le nom @uref{https://nvd.nist.gov/products/cpe,Common Platform Enumeration (CPE)} et la version du paquet s'ils diffèrent du nom et de la version que Guix utilise, comme dans cet exemple :"
 
-#. type: example
-#: doc/guix.texi:9180
+#. type: lisp
+#: doc/guix.texi:11655
 #, no-wrap
 msgid ""
 "(package\n"
@@ -16871,22 +21408,22 @@ msgid ""
 "  ;; @dots{}\n"
 "  ;; CPE calls this package \"grub2\".\n"
 "  (properties '((cpe-name . \"grub2\")\n"
-"                (cpe-version . \"2.3\")))\n"
+"                (cpe-version . \"2.3\"))))\n"
 msgstr ""
 "(package\n"
 "  (name \"grub\")\n"
 "  ;; @dots{}\n"
-"  ;; CPE calls this package \"grub2\".\n"
+"  ;; CPE nomme ce paquet \"grub2\".\n"
 "  (properties '((cpe-name . \"grub2\")\n"
-"                (cpe-version . \"2.3\")))\n"
+"                (cpe-version . \"2.3\"))))\n"
 
 #. type: table
-#: doc/guix.texi:9187
+#: doc/guix.texi:11662
 msgid "Some entries in the CVE database do not specify which version of a package they apply to, and would thus ``stick around'' forever.  Package developers who found CVE alerts and verified they can be ignored can declare them as in this example:"
 msgstr "Certaines entrées dans la base de données CVE ne spécifient pas la version du paquet auquel elles s'appliquent et lui restera donc attachée pour toujours.  Les développeur·euse·s qui trouvent des alertes CVE et ont vérifié qu'elles peuvent être ignorées peuvent les déclarer comme dans cet exemple :"
 
-#. type: example
-#: doc/guix.texi:9197
+#. type: lisp
+#: doc/guix.texi:11672
 #, no-wrap
 msgid ""
 "(package\n"
@@ -16908,91 +21445,113 @@ msgstr ""
 "                                    \"CVE-2011-5244\")))))\n"
 
 #. type: item
-#: doc/guix.texi:9199
+#: doc/guix.texi:11674
 #, no-wrap
 msgid "formatting"
 msgstr "formatting"
 
 #. type: table
-#: doc/guix.texi:9202
+#: doc/guix.texi:11677
 msgid "Warn about obvious source code formatting issues: trailing white space, use of tabulations, etc."
 msgstr "Avertit de problèmes de formatage du code source évidents : des espaces en fin de ligne, des tabulations, etc."
 
 #. type: example
-#: doc/guix.texi:9208
+#: doc/guix.texi:11683
 #, no-wrap
 msgid "guix lint @var{options} @var{package}@dots{}\n"
 msgstr "guix lint @var{options} @var{package}@dots{}\n"
 
 #. type: Plain text
-#: doc/guix.texi:9212
+#: doc/guix.texi:11687
 msgid "If no package is given on the command line, then all packages are checked.  The @var{options} may be zero or more of the following:"
 msgstr "Si aucun paquet n'est donné par la ligne de commande, tous les paquets seront vérifiés.  Les @var{options} peuvent contenir aucune ou plus des options suivantes :"
 
 #. type: item
-#: doc/guix.texi:9214
+#: doc/guix.texi:11689
 #, no-wrap
 msgid "--list-checkers"
 msgstr "--list-checkers"
 
 #. type: table
-#: doc/guix.texi:9218
+#: doc/guix.texi:11693
 msgid "List and describe all the available checkers that will be run on packages and exit."
 msgstr "Liste et décrit tous les vérificateurs disponibles qui seront lancés sur les paquets puis quitte."
 
 #. type: item
-#: doc/guix.texi:9219
+#: doc/guix.texi:11694
 #, no-wrap
 msgid "--checkers"
 msgstr "--checkers"
 
 #. type: itemx
-#: doc/guix.texi:9220
+#: doc/guix.texi:11695
 #, no-wrap
 msgid "-c"
 msgstr "-c"
 
 #. type: table
-#: doc/guix.texi:9223
-msgid "Only enable the checkers specified in a comma-separated list using the names returned by @code{--list-checkers}."
-msgstr "N'active que les vérificateurs spécifiés dans une liste de noms séparés par des virgules parmi la liste renvoyée par @code{--list-checkers}."
+#: doc/guix.texi:11698
+msgid "Only enable the checkers specified in a comma-separated list using the names returned by @option{--list-checkers}."
+msgstr "N'active que les vérificateurs spécifiés dans une liste de noms séparés par des virgules parmi la liste renvoyée par @option{--list-checkers}."
+
+#. type: item
+#: doc/guix.texi:11699
+#, no-wrap
+msgid "--exclude"
+msgstr "--exclude"
+
+#. type: table
+#: doc/guix.texi:11703
+msgid "Only disable the checkers specified in a comma-separated list using the names returned by @option{--list-checkers}."
+msgstr "Ne désactive que les vérifications spécifiés dans une liste de noms séparés par des virgules, en utilisant les noms de @option{--list-checkers}."
+
+#. type: item
+#: doc/guix.texi:11704
+#, no-wrap
+msgid "--no-network"
+msgstr "--no-network"
+
+#. type: table
+#: doc/guix.texi:11707
+msgid "Only enable the checkers that do not depend on Internet access."
+msgstr "N'active que les vérificateurs qui ne dépendent pas d'un accès réseau."
 
 #. type: section
-#: doc/guix.texi:9227
+#: doc/guix.texi:11719
 #, no-wrap
 msgid "Invoking @command{guix size}"
 msgstr "Invoquer @command{guix size}"
 
-#. type: cindex
-#: doc/guix.texi:9229
+#. type: code{#1}
+#: doc/guix.texi:11721 doc/guix.texi:31374
 #, no-wrap
 msgid "size"
 msgstr "taille"
 
 #. type: cindex
-#: doc/guix.texi:9230
+#: doc/guix.texi:11722
 #, no-wrap
 msgid "package size"
 msgstr "paquet, taille"
 
 #. type: command{#1}
-#: doc/guix.texi:9232
+#: doc/guix.texi:11724
 #, no-wrap
 msgid "guix size"
 msgstr "guix size"
 
 #. type: Plain text
-#: doc/guix.texi:9239
+#: doc/guix.texi:11731
 msgid "The @command{guix size} command helps package developers profile the disk usage of packages.  It is easy to overlook the impact of an additional dependency added to a package, or the impact of using a single output for a package that could easily be split (@pxref{Packages with Multiple Outputs}).  Such are the typical issues that @command{guix size} can highlight."
 msgstr "La commande @command{guix size} aide à dresser un profil de l'utilisation de l'espace disque par les paquets.  Il est facile de négliger l'impact d'une dépendance supplémentaire ajoutée à un paquet, ou l'impact de l'utilisation d'une sortie unique pour un paquet qui pourrait être facilement séparé (@pxref{Packages with Multiple Outputs}).  Ce sont ces problèmes que @command{guix size} peut typiquement mettre en valeur."
 
 #. type: Plain text
-#: doc/guix.texi:9244
+#: doc/guix.texi:11736
 msgid "The command can be passed one or more package specifications such as @code{gcc@@4.8} or @code{guile:debug}, or a file name in the store.  Consider this example:"
 msgstr "On peut passer un ou plusieurs spécifications de paquets à la commande, comme @code{gcc@@4.8} ou @code{guile:debug}, ou un nom de fichier dans le dépôt.  Regardez cet exemple :"
 
 #. type: example
-#: doc/guix.texi:9257
+#: doc/guix.texi:11749
 #, no-wrap
 msgid ""
 "$ guix size coreutils\n"
@@ -17020,43 +21579,54 @@ msgstr ""
 "total: 78.9 MiB\n"
 
 #. type: Plain text
-#: doc/guix.texi:9263
+#: doc/guix.texi:11755
 msgid "The store items listed here constitute the @dfn{transitive closure} of Coreutils---i.e., Coreutils and all its dependencies, recursively---as would be returned by:"
 msgstr "Les éléments du dépôt listés ici constituent la @dfn{clôture transitive} de Coreutils — c.-à-d.@: Coreutils et toutes ses dépendances, récursivement — comme ce qui serait renvoyé par :"
 
 #. type: example
-#: doc/guix.texi:9266
+#: doc/guix.texi:11758
 #, no-wrap
 msgid "$ guix gc -R /gnu/store/@dots{}-coreutils-8.23\n"
 msgstr "$ guix gc -R /gnu/store/@dots{}-coreutils-8.23\n"
 
 #. type: Plain text
-#: doc/guix.texi:9274
+#: doc/guix.texi:11766
 msgid "Here the output shows three columns next to store items.  The first column, labeled ``total'', shows the size in mebibytes (MiB) of the closure of the store item---that is, its own size plus the size of all its dependencies.  The next column, labeled ``self'', shows the size of the item itself.  The last column shows the ratio of the size of the item itself to the space occupied by all the items listed here."
 msgstr "Ici, la sortie possède trois colonnes à côté de chaque élément du dépôt.  La première colonne, nommée « total », montre la taille en mébioctet (Mio) de la clôture de l'élément du dépôt — c'est-à-dire sa propre taille plus la taille de ses dépendances. La colonne suivante, nommée « lui-même », montre la taille de l'élément lui-même.  La dernière colonne montre le ration de la taille de l'élément lui-même par rapport à celle de tous les éléments montrés."
 
 #. type: Plain text
-#: doc/guix.texi:9280
+#: doc/guix.texi:11772
 msgid "In this example, we see that the closure of Coreutils weighs in at 79@tie{}MiB, most of which is taken by libc and GCC's run-time support libraries.  (That libc and GCC's libraries represent a large fraction of the closure is not a problem @i{per se} because they are always available on the system anyway.)"
 msgstr "Dans cet exemple, on voit que la clôture de Coreutils pèse 79@tie{}Mio, dont la plupart est dû à la libc et aux bibliothèques à l'exécution de GCC (ce n'est pas un problème en soit que la libc et les bibliothèques de GCC représentent une grande part de la clôture parce qu'elles sont toujours disponibles sur le système de toute façon)."
 
 #. type: Plain text
-#: doc/guix.texi:9289
+#: doc/guix.texi:11775
+msgid "Since the command also accepts store file names, assessing the size of a build result is straightforward:"
+msgstr "Comme la commande accepte également les noms de fichiers de dépôt, il est facile d'évaluer la taille d'un résultat de construction :"
+
+#. type: example
+#: doc/guix.texi:11778
+#, no-wrap
+msgid "guix size $(guix system build config.scm)\n"
+msgstr "guix size $(guix system build config.scm)\n"
+
+#. type: Plain text
+#: doc/guix.texi:11788
 msgid "When the package(s) passed to @command{guix size} are available in the store@footnote{More precisely, @command{guix size} looks for the @emph{ungrafted} variant of the given package(s), as returned by @code{guix build @var{package} --no-grafts}.  @xref{Security Updates}, for information on grafts.}, @command{guix size} queries the daemon to determine its dependencies, and measures its size in the store, similar to @command{du -ms --apparent-size} (@pxref{du invocation,,, coreutils, GNU Coreutils})."
 msgstr "Lorsque les paquets passés à @command{guix size} sont disponibles dans le dépôt@footnote{Plus précisément, @command{guix size} cherche les variantes @emph{non greffées} des paquets donnés, tels qu'ils sont renvoyés par @code{guix build @var{paquet} --no-graft}.  @xref{Security Updates} pour des informations sur les greffes}, @command{guix size} demande au démon de déterminer ses dépendances, et mesure sa taille dans le dépôt, comme avec @command{du -ms --apparent-size} (@pxref{du invocation,,, coreutils, GNU Coreutils})."
 
 #. type: Plain text
-#: doc/guix.texi:9294
+#: doc/guix.texi:11793
 msgid "When the given packages are @emph{not} in the store, @command{guix size} reports information based on the available substitutes (@pxref{Substitutes}).  This makes it possible it to profile disk usage of store items that are not even on disk, only available remotely."
 msgstr "Lorsque les paquets donnés ne sont @emph{pas} dans le dépôt, @command{guix size} rapporte les informations en se basant sur les substituts disponibles (@pxref{Substituts}). Cela permet de profiler l'utilisation du disque des éléments du dépôt même s'ils ne sont pas sur le disque, mais disponibles à distance."
 
 #. type: Plain text
-#: doc/guix.texi:9296
+#: doc/guix.texi:11795
 msgid "You can also specify several package names:"
 msgstr "Vous pouvez aussi spécifier plusieurs noms de paquets :"
 
 #. type: example
-#: doc/guix.texi:9306
+#: doc/guix.texi:11805
 #, no-wrap
 msgid ""
 "$ guix size coreutils grep sed bash\n"
@@ -17078,705 +21648,840 @@ msgstr ""
 "total: 102.3 MiB\n"
 
 #. type: Plain text
-#: doc/guix.texi:9312
+#: doc/guix.texi:11811
 msgid "In this example we see that the combination of the four packages takes 102.3@tie{}MiB in total, which is much less than the sum of each closure since they have a lot of dependencies in common."
 msgstr "Dans cet exemple on voit que la combinaison des quatre paquets prend 102.3@tie{}Mio en tout, ce qui est bien moins que la somme des clôtures puisqu'ils ont beaucoup de dépendances en commun."
 
 #. type: Plain text
-#: doc/guix.texi:9314
+#: doc/guix.texi:11817
+msgid "When looking at the profile returned by @command{guix size}, you may find yourself wondering why a given package shows up in the profile at all.  To understand it, you can use @command{guix graph --path -t references} to display the shortest path between the two packages (@pxref{Invoking guix graph})."
+msgstr "En regardant le profil renvoyé par @command{guix size}, vous pouvez vous demander pourquoi un paquet donné apparaît dans le profil.  Pour le comprendre, vous pouvez utiliser @command{guix graph --path -t references} pour afficher le chemin le plus court entre les deux paquets (@pxref{Invoquer guix graph})."
+
+#. type: Plain text
+#: doc/guix.texi:11819
 msgid "The available options are:"
 msgstr "Les options disponibles sont :"
 
 #. type: table
-#: doc/guix.texi:9320
+#: doc/guix.texi:11825
 msgid "Use substitute information from @var{urls}.  @xref{client-substitute-urls, the same option for @code{guix build}}."
 msgstr "Utilise les informations de substituts de @var{urls}.  @xref{client-substitute-urls, the same option for @code{guix build}}."
 
 #. type: item
-#: doc/guix.texi:9321
+#: doc/guix.texi:11826
 #, no-wrap
 msgid "--sort=@var{key}"
 msgstr "--sort=@var{clef}"
 
 #. type: table
-#: doc/guix.texi:9323
+#: doc/guix.texi:11828
 msgid "Sort lines according to @var{key}, one of the following options:"
 msgstr "Trie les lignes en fonction de la @var{clef}, l'une des options suivantes :"
 
 #. type: item
-#: doc/guix.texi:9325
+#: doc/guix.texi:11830
 #, no-wrap
 msgid "self"
 msgstr "self"
 
 #. type: table
-#: doc/guix.texi:9327
+#: doc/guix.texi:11832
 msgid "the size of each item (the default);"
 msgstr "la taille de chaque élément (par défaut) ;"
 
 #. type: table
-#: doc/guix.texi:9329
+#: doc/guix.texi:11834
 msgid "the total size of the item's closure."
 msgstr "la taille totale de la clôture de l'élément."
 
 #. type: item
-#: doc/guix.texi:9331
+#: doc/guix.texi:11836
 #, no-wrap
 msgid "--map-file=@var{file}"
 msgstr "--map-file=@var{fichier}"
 
 #. type: table
-#: doc/guix.texi:9333
+#: doc/guix.texi:11838
 msgid "Write a graphical map of disk usage in PNG format to @var{file}."
 msgstr "Écrit un schéma de l'utilisation du disque au format PNG dans @var{fichier}."
 
 #. type: table
-#: doc/guix.texi:9335
+#: doc/guix.texi:11840
 msgid "For the example above, the map looks like this:"
 msgstr "Pour l'exemple au-dessus, le schéma ressemble à ceci :"
 
 #. type: table
-#: doc/guix.texi:9338
+#: doc/guix.texi:11843
 msgid "@image{images/coreutils-size-map,5in,, map of Coreutils disk usage produced by @command{guix size}}"
 msgstr "@image{images/coreutils-size-map,5in,, schéma de l'utilisation du disque de Coreutils produit par @command{guix size}}"
 
 #. type: table
-#: doc/guix.texi:9343
+#: doc/guix.texi:11848
 msgid "This option requires that @uref{https://wingolog.org/software/guile-charting/, Guile-Charting} be installed and visible in Guile's module search path.  When that is not the case, @command{guix size} fails as it tries to load it."
 msgstr "Cette option requiert l'installation de @uref{https://wingolog.org/software/guile-charting/, Guile-Charting} et qu'il soit visible dans le chemin de recherche des modules Guile.  Lorsque ce n'est pas le cas, @command{guix size} plante en essayant de le charger."
 
 #. type: table
-#: doc/guix.texi:9347
+#: doc/guix.texi:11852
 msgid "Consider packages for @var{system}---e.g., @code{x86_64-linux}."
 msgstr "Considère les paquets pour @var{système} — p.@: ex.@: @code{x86_64-linux}."
 
 #. type: section
-#: doc/guix.texi:9351
+#: doc/guix.texi:11863
 #, no-wrap
 msgid "Invoking @command{guix graph}"
 msgstr "Invoque @command{guix graph}"
 
 #. type: cindex
-#: doc/guix.texi:9353
+#: doc/guix.texi:11865
 #, no-wrap
 msgid "DAG"
 msgstr "DAG"
 
 #. type: command{#1}
-#: doc/guix.texi:9354
+#: doc/guix.texi:11866
 #, no-wrap
 msgid "guix graph"
 msgstr "guix graph"
 
 #. type: Plain text
-#: doc/guix.texi:9368
-msgid "Packages and their dependencies form a @dfn{graph}, specifically a directed acyclic graph (DAG).  It can quickly become difficult to have a mental model of the package DAG, so the @command{guix graph} command provides a visual representation of the DAG.  By default, @command{guix graph} emits a DAG representation in the input format of @uref{https://www.graphviz.org/, Graphviz}, so its output can be passed directly to the @command{dot} command of Graphviz.  It can also emit an HTML page with embedded JavaScript code to display a ``chord diagram'' in a Web browser, using the @uref{https://d3js.org/, d3.js} library, or emit Cypher queries to construct a graph in a graph database supporting the @uref{https://www.opencypher.org/, openCypher} query language.  The general syntax is:"
-msgstr "Les paquets et leurs dépendances forment un @dfn{graphe}, plus précisément un graphe orienté acyclique (DAG).  Il peut vite devenir difficile d'avoir une représentation mentale du DAG d'un paquet, donc la commande @command{guix graph} fournit une représentation visuelle du DAG.  Par défaut, @command{guix graph} émet un représentation du DAG dans le format d'entrée de @uref{https://www.graphviz.org/, Graphviz}, pour que sa sortie puisse être passée directement à la commande @command{dot} de Graphviz.  Elle peut aussi émettre une page HTML avec du code Javascript pour afficher un « digramme d'accords » dans un navigateur Web, grâce à la bibliothèque @uref{https://d3js.org/, d3.js}, ou émettre des requêtes Cypher pour construire un graphe dans une base de donnée de graphes supportant le langage de requêtes @uref{https://www.opencypher.org/, openCypher}.  La syntaxe générale est :"
+#: doc/guix.texi:11881
+msgid "Packages and their dependencies form a @dfn{graph}, specifically a directed acyclic graph (DAG).  It can quickly become difficult to have a mental model of the package DAG, so the @command{guix graph} command provides a visual representation of the DAG.  By default, @command{guix graph} emits a DAG representation in the input format of @uref{https://www.graphviz.org/, Graphviz}, so its output can be passed directly to the @command{dot} command of Graphviz.  It can also emit an HTML page with embedded JavaScript code to display a ``chord diagram'' in a Web browser, using the @uref{https://d3js.org/, d3.js} library, or emit Cypher queries to construct a graph in a graph database supporting the @uref{https://www.opencypher.org/, openCypher} query language.  With @option{--path}, it simply displays the shortest path between two packages.  The general syntax is:"
+msgstr "Les paquets et leurs dépendances forment un @dfn{graphe}, plus précisément un graphe orienté acyclique (DAG).  Il peut vite devenir difficile d'avoir une représentation mentale du DAG d'un paquet, donc la commande @command{guix graph} fournit une représentation visuelle du DAG.  Par défaut, @command{guix graph} émet un représentation du DAG dans le format d'entrée de @uref{https://www.graphviz.org/, Graphviz}, pour que sa sortie puisse être passée directement à la commande @command{dot} de Graphviz.  Elle peut aussi émettre une page HTML avec du code Javascript pour afficher un « diagramme d'accords » dans un navigateur Web, grâce à la bibliothèque @uref{https://d3js.org/, d3.js}, ou émettre des requêtes Cypher pour construire un graphe dans une base de donnée de graphes supportant le langage de requêtes @uref{https://www.opencypher.org/, openCypher}. Avec l'option @option{--path}, elle affiche simplement le chemin le plus court entre deux paquets. La syntaxe générale est :"
 
 #. type: example
-#: doc/guix.texi:9371
+#: doc/guix.texi:11884
 #, no-wrap
 msgid "guix graph @var{options} @var{package}@dots{}\n"
 msgstr "guix graph @var{options} @var{paquet}@dots{}\n"
 
 #. type: Plain text
-#: doc/guix.texi:9376
+#: doc/guix.texi:11889
 msgid "For example, the following command generates a PDF file representing the package DAG for the GNU@tie{}Core Utilities, showing its build-time dependencies:"
 msgstr "Par exemple, la commande suivante génère un fichier PDF représentant le DAG du paquet pour GNU@tie{}Core Utilities, qui montre ses dépendances à la compilation :"
 
 #. type: example
-#: doc/guix.texi:9379
+#: doc/guix.texi:11892
 #, no-wrap
 msgid "guix graph coreutils | dot -Tpdf > dag.pdf\n"
 msgstr "guix graph coreutils | dot -Tpdf > dag.pdf\n"
 
 #. type: Plain text
-#: doc/guix.texi:9382
+#: doc/guix.texi:11895
 msgid "The output looks like this:"
 msgstr "La sortie ressemble à ceci :"
 
 #. type: Plain text
-#: doc/guix.texi:9384
+#: doc/guix.texi:11897
 msgid "@image{images/coreutils-graph,2in,,Dependency graph of the GNU Coreutils}"
 msgstr "@image{images/coreutils-graph,2in,,Graphe de dépendance de GNU Coreutils}"
 
 #. type: Plain text
-#: doc/guix.texi:9386
+#: doc/guix.texi:11899
 msgid "Nice little graph, no?"
 msgstr "Joli petit graphe, non ?"
 
 #. type: Plain text
-#: doc/guix.texi:9392
+#: doc/guix.texi:11902
+msgid "You may find it more pleasant to navigate the graph interactively with @command{xdot} (from the @code{xdot} package):"
+msgstr "Vous pouvez trouver plus amusant de naviguer dans le graphe interactivement avec @command{xdot} (du paquet @code{xdot}):"
+
+#. type: example
+#: doc/guix.texi:11905
+#, no-wrap
+msgid "guix graph coreutils | xdot -\n"
+msgstr "guix graph coreutils | xdot -\n"
+
+#. type: Plain text
+#: doc/guix.texi:11912
 msgid "But there is more than one graph! The one above is concise: it is the graph of package objects, omitting implicit inputs such as GCC, libc, grep, etc.  It is often useful to have such a concise graph, but sometimes one may want to see more details.  @command{guix graph} supports several types of graphs, allowing you to choose the level of detail:"
 msgstr "Mais il y a plus qu'un seul graphe !  Celui au-dessus est concis : c'est le graphe des objets paquets, en omettant les entrées implicites comme GCC, libc, grep, etc.  Il est souvent utile d'avoir ces graphes concis, mais parfois on veut voir plus de détails.  @command{guix graph} supporte plusieurs types de graphes, qui vous permettent de choisir le niveau de détails :"
 
 #. type: table
-#: doc/guix.texi:9398
+#: doc/guix.texi:11918
 msgid "This is the default type used in the example above.  It shows the DAG of package objects, excluding implicit dependencies.  It is concise, but filters out many details."
 msgstr "C'est le type par défaut utilisé dans l'exemple plus haut.  Il montre le DAG des objets paquets, sans les dépendances implicites.  C'est concis, mais omet pas mal de détails."
 
 #. type: item
-#: doc/guix.texi:9399
+#: doc/guix.texi:11919
 #, no-wrap
 msgid "reverse-package"
 msgstr "reverse-package"
 
 #. type: table
-#: doc/guix.texi:9401
+#: doc/guix.texi:11921
 msgid "This shows the @emph{reverse} DAG of packages.  For example:"
 msgstr "Cela montre le DAG @emph{inversé} des paquets.  Par exemple :"
 
 #. type: example
-#: doc/guix.texi:9404
+#: doc/guix.texi:11924
 #, no-wrap
 msgid "guix graph --type=reverse-package ocaml\n"
 msgstr "guix graph --type=reverse-package ocaml\n"
 
 #. type: table
-#: doc/guix.texi:9409
-msgid "...@: yields the graph of packages that @emph{explicitly} depend on OCaml (if you are also interested in cases where OCaml is an implicit dependency, see @code{reverse-bag} below.)"
-msgstr "…@: crée le graphe des paquets qui dépendent @emph{explicitement} d'OCaml (si vous vous intéressez aussi au cas où OCaml est une dépendance implicite, voir @code{reverse-bag} plus bas)."
+#: doc/guix.texi:11929
+msgid "...@: yields the graph of packages that @emph{explicitly} depend on OCaml (if you are also interested in cases where OCaml is an implicit dependency, see @code{reverse-bag} below)."
+msgstr "...@: crée le graphe des paquets qui dépendent @emph{explicitement} d'OCaml (si vous êtes aussi intéressé·e dans le cas où OCaml représente une dépendance implicite, voir @code{reverse-bag} ci-dessous)."
 
 #. type: table
-#: doc/guix.texi:9414
+#: doc/guix.texi:11934
 msgid "Note that for core packages this can yield huge graphs.  If all you want is to know the number of packages that depend on a given package, use @command{guix refresh --list-dependent} (@pxref{Invoking guix refresh, @option{--list-dependent}})."
 msgstr "Remarquez que pour les paquets du cœur de la distribution, cela crée des graphes énormes.  Si vous voulez seulement voir le nombre de paquets qui dépendent d'un paquet donnés, utilisez @command{guix refresh --list-dependent} (@pxref{Invoking guix refresh, @option{--list-dependent}})."
 
 #. type: item
-#: doc/guix.texi:9415
+#: doc/guix.texi:11935
 #, no-wrap
 msgid "bag-emerged"
 msgstr "bag-emerged"
 
 #. type: table
-#: doc/guix.texi:9417
+#: doc/guix.texi:11937
 msgid "This is the package DAG, @emph{including} implicit inputs."
 msgstr "C'est le DAG du paquet, @emph{avec} les entrées implicites."
 
 #. type: table
-#: doc/guix.texi:9419
+#: doc/guix.texi:11939
 msgid "For instance, the following command:"
 msgstr "Par exemple, la commande suivante :"
 
 #. type: example
-#: doc/guix.texi:9422
+#: doc/guix.texi:11942
 #, no-wrap
-msgid "guix graph --type=bag-emerged coreutils | dot -Tpdf > dag.pdf\n"
-msgstr "guix graph --type=bag-emerged coreutils | dot -Tpdf > dag.pdf\n"
+msgid "guix graph --type=bag-emerged coreutils\n"
+msgstr "guix graph --type=bag-emerged coreutils\n"
 
 #. type: table
-#: doc/guix.texi:9425
+#: doc/guix.texi:11945
 msgid "...@: yields this bigger graph:"
 msgstr "…@: montre ce graphe plus gros :"
 
 #. type: table
-#: doc/guix.texi:9427
+#: doc/guix.texi:11947
 msgid "@image{images/coreutils-bag-graph,,5in,Detailed dependency graph of the GNU Coreutils}"
 msgstr "@image{images/coreutils-bag-graph,,5in,Graphe des dépendances détaillé de GNU Coreutils}"
 
 #. type: table
-#: doc/guix.texi:9430
+#: doc/guix.texi:11950
 msgid "At the bottom of the graph, we see all the implicit inputs of @var{gnu-build-system} (@pxref{Build Systems, @code{gnu-build-system}})."
 msgstr "En bas du graphe, on voit toutes les entrées implicites de @var{gnu-build-system} (@pxref{Build Systems, @code{gnu-build-system}})."
 
 #. type: table
-#: doc/guix.texi:9434
+#: doc/guix.texi:11954
 msgid "Now, note that the dependencies of these implicit inputs---that is, the @dfn{bootstrap dependencies} (@pxref{Bootstrapping})---are not shown here, for conciseness."
 msgstr "Maintenant, remarquez que les dépendances de ces entrées implicites — c'est-à-dire les @dfn{dépendances de bootstrap} (@pxref{Bootstrapping}) — ne sont pas affichées, pour rester concis."
 
 #. type: item
-#: doc/guix.texi:9435
+#: doc/guix.texi:11955
 #, no-wrap
 msgid "bag"
 msgstr "bag"
 
 #. type: table
-#: doc/guix.texi:9438
+#: doc/guix.texi:11958
 msgid "Similar to @code{bag-emerged}, but this time including all the bootstrap dependencies."
 msgstr "Comme @code{bag-emerged} mais cette fois inclus toutes les dépendances de bootstrap."
 
 #. type: item
-#: doc/guix.texi:9439
+#: doc/guix.texi:11959
 #, no-wrap
 msgid "bag-with-origins"
 msgstr "bag-with-origins"
 
 #. type: table
-#: doc/guix.texi:9441
+#: doc/guix.texi:11961
 msgid "Similar to @code{bag}, but also showing origins and their dependencies."
 msgstr "Comme @code{bag}, mais montre aussi les origines et leurs dépendances."
 
 #. type: item
-#: doc/guix.texi:9442
+#: doc/guix.texi:11962
 #, no-wrap
 msgid "reverse-bag"
 msgstr "reverse-bag"
 
 #. type: table
-#: doc/guix.texi:9445
+#: doc/guix.texi:11965
 msgid "This shows the @emph{reverse} DAG of packages.  Unlike @code{reverse-package}, it also takes implicit dependencies into account.  For example:"
 msgstr "Cela montre le DAG @emph{inverse} des paquets.  Contrairement à @code{reverse-package}, il montre aussi les dépendance implicites.  Par exemple :"
 
 #. type: example
-#: doc/guix.texi:9448
+#: doc/guix.texi:11968
 #, no-wrap
 msgid "guix graph -t reverse-bag dune\n"
 msgstr "guix graph -t reverse-bag dune\n"
 
 #. type: table
-#: doc/guix.texi:9455
+#: doc/guix.texi:11975
 msgid "...@: yields the graph of all packages that depend on Dune, directly or indirectly.  Since Dune is an @emph{implicit} dependency of many packages @i{via} @code{dune-build-system}, this shows a large number of packages, whereas @code{reverse-package} would show very few if any."
 msgstr "…@: crée le graphe des tous les paquets qui dépendent de Dune, directement ou indirectement.  Comme Dune est une dépendance @emph{implicite} de nombreux paquets @i{via} @code{dune-build-system}, cela montre un plus grand nombre de paquets, alors que @code{reverse-package} en montrerait très peu, voir aucun."
 
 #. type: table
-#: doc/guix.texi:9461
+#: doc/guix.texi:11981
 msgid "This is the most detailed representation: It shows the DAG of derivations (@pxref{Derivations}) and plain store items.  Compared to the above representation, many additional nodes are visible, including build scripts, patches, Guile modules, etc."
 msgstr "C'est la représentation lu plus détaillée : elle montre le DAG des dérivations (@pxref{Derivations}) et des éléments du dépôt.  Comparé à la représentation ci-dessus, beaucoup plus de nœuds sont visibles, dont les scripts de construction, les correctifs, les modules Guile, etc."
 
 #. type: table
-#: doc/guix.texi:9464
+#: doc/guix.texi:11984
 msgid "For this type of graph, it is also possible to pass a @file{.drv} file name instead of a package name, as in:"
 msgstr "Pour ce type de graphe, il est aussi possible de passer un nom de fichier @file{.drv} à la place d'un nom de paquet, comme dans :"
 
 #. type: example
-#: doc/guix.texi:9467
+#: doc/guix.texi:11987
 #, no-wrap
 msgid "guix graph -t derivation `guix system build -d my-config.scm`\n"
 msgstr "guix graph -t derivation `guix system build -d my-config.scm`\n"
 
 #. type: item
-#: doc/guix.texi:9469
+#: doc/guix.texi:11989
 #, no-wrap
 msgid "module"
 msgstr "module"
 
 #. type: table
-#: doc/guix.texi:9473
+#: doc/guix.texi:11993
 msgid "This is the graph of @dfn{package modules} (@pxref{Package Modules}).  For example, the following command shows the graph for the package module that defines the @code{guile} package:"
 msgstr "C'est le graphe des @dfn{modules de paquets} (@pxref{Package Modules}).  Par exemple, la commande suivante montre le graphe des modules de paquets qui définissent le paquet @code{guile} :"
 
 #. type: example
-#: doc/guix.texi:9476
+#: doc/guix.texi:11996
 #, no-wrap
-msgid "guix graph -t module guile | dot -Tpdf > module-graph.pdf\n"
-msgstr "guix graph -t module guile | dot -Tpdf > module-graph.pdf\n"
+msgid "guix graph -t module guile | xdot -\n"
+msgstr "guix graph -t module guile | xdot -\n"
 
 #. type: Plain text
-#: doc/guix.texi:9481
+#: doc/guix.texi:12001
 msgid "All the types above correspond to @emph{build-time dependencies}.  The following graph type represents the @emph{run-time dependencies}:"
 msgstr "Tous les types ci-dessus correspondent aux @emph{dépendances à la construction}.  Le type de graphe suivant représente les @emph{dépendances à l'exécution} :"
 
 #. type: table
-#: doc/guix.texi:9486
+#: doc/guix.texi:12006
 msgid "This is the graph of @dfn{references} of a package output, as returned by @command{guix gc --references} (@pxref{Invoking guix gc})."
 msgstr "C'est le graphe des @dfn{references} d'une sortie d'un paquet, telles que renvoyées par @command{guix gc --references} (@pxref{Invoking guix gc})."
 
 #. type: table
-#: doc/guix.texi:9489
+#: doc/guix.texi:12009
 msgid "If the given package output is not available in the store, @command{guix graph} attempts to obtain dependency information from substitutes."
 msgstr "Si la sortie du paquet donnée n'est pas disponible dans le dépôt, @command{guix graph} essayera d'obtenir les informations sur les dépendances à travers les substituts."
 
 #. type: table
-#: doc/guix.texi:9493
+#: doc/guix.texi:12013
 msgid "Here you can also pass a store file name instead of a package name.  For example, the command below produces the reference graph of your profile (which can be big!):"
 msgstr "Vous pouvez aussi passer un nom de fichier du dépôt plutôt qu'un nom de paquet.  Par exemple, la commande ci-dessous produit le graphe des références de votre profile (qui peut être gros !) :"
 
 #. type: example
-#: doc/guix.texi:9496
+#: doc/guix.texi:12016
 #, no-wrap
 msgid "guix graph -t references `readlink -f ~/.guix-profile`\n"
 msgstr "guix graph -t references `readlink -f ~/.guix-profile`\n"
 
 #. type: item
-#: doc/guix.texi:9498
+#: doc/guix.texi:12018
 #, no-wrap
 msgid "referrers"
 msgstr "referrers"
 
 #. type: table
-#: doc/guix.texi:9501
+#: doc/guix.texi:12021
 msgid "This is the graph of the @dfn{referrers} of a store item, as returned by @command{guix gc --referrers} (@pxref{Invoking guix gc})."
 msgstr "C'est le graphe des @dfn{référents} d'un élément du dépôt, tels que renvoyés par @command{guix gc --referrers} (@pxref{Invoking guix gc})."
 
 #. type: table
-#: doc/guix.texi:9507
+#: doc/guix.texi:12027
 msgid "This relies exclusively on local information from your store.  For instance, let us suppose that the current Inkscape is available in 10 profiles on your machine; @command{guix graph -t referrers inkscape} will show a graph rooted at Inkscape and with those 10 profiles linked to it."
 msgstr "Cela repose exclusivement sur les informations de votre dépôt.  Par exemple, supposons que Inkscape est actuellement disponible dans 10 profils sur votre machine ; @command{guix graph -t referrers inkscape} montrera le graphe dont la racine est Inkscape avec 10 profils qui y sont liés."
 
 #. type: table
-#: doc/guix.texi:9510
+#: doc/guix.texi:12030
 msgid "It can help determine what is preventing a store item from being garbage collected."
 msgstr "Cela peut aider à déterminer ce qui empêche un élément du dépôt d'être glané."
 
+#. type: cindex
+#: doc/guix.texi:12033
+#, no-wrap
+msgid "shortest path, between packages"
+msgstr "chemin le plus court entre paquets"
+
 #. type: Plain text
-#: doc/guix.texi:9514
+#: doc/guix.texi:12040
+msgid "Often, the graph of the package you are interested in does not fit on your screen, and anyway all you want to know is @emph{why} that package actually depends on some seemingly unrelated package.  The @option{--path} option instructs @command{guix graph} to display the shortest path between two packages (or derivations, or store items, etc.):"
+msgstr "Souvent, le graphe du paquet qui vous intéresse ne tient pas sur votre écran, et de toute façon tout ce que vous voulez savoir c'est @emph{pourquoi} ce paquet dépend en fait d'un paquet apparemment sans rapport.  L'option @option{--path} indique à @command{guix graph} d'afficher le chemin le plus court entre deux paquets (ou dérivations, ou éléments du dépôt, etc.) :"
+
+#. type: example
+#: doc/guix.texi:12054
+#, no-wrap
+msgid ""
+"$ guix graph --path emacs libunistring\n"
+"emacs@@26.3\n"
+"mailutils@@3.9\n"
+"libunistring@@0.9.10\n"
+"$ guix graph --path -t derivation emacs libunistring\n"
+"/gnu/store/@dots{}-emacs-26.3.drv\n"
+"/gnu/store/@dots{}-mailutils-3.9.drv\n"
+"/gnu/store/@dots{}-libunistring-0.9.10.drv\n"
+"$ guix graph --path -t references emacs libunistring\n"
+"/gnu/store/@dots{}-emacs-26.3\n"
+"/gnu/store/@dots{}-libidn2-2.2.0\n"
+"/gnu/store/@dots{}-libunistring-0.9.10\n"
+msgstr ""
+"$ guix graph --path emacs libunistring\n"
+"emacs@@26.3\n"
+"mailutils@@3.9\n"
+"libunistring@@0.9.10\n"
+"$ guix graph --path -t derivation emacs libunistring\n"
+"/gnu/store/@dots{}-emacs-26.3.drv\n"
+"/gnu/store/@dots{}-mailutils-3.9.drv\n"
+"/gnu/store/@dots{}-libunistring-0.9.10.drv\n"
+"$ guix graph --path -t references emacs libunistring\n"
+"/gnu/store/@dots{}-emacs-26.3\n"
+"/gnu/store/@dots{}-libidn2-2.2.0\n"
+"/gnu/store/@dots{}-libunistring-0.9.10\n"
+
+#. type: Plain text
+#: doc/guix.texi:12057
 msgid "The available options are the following:"
 msgstr "Les options disponibles sont les suivante :"
 
 #. type: table
-#: doc/guix.texi:9520
+#: doc/guix.texi:12063
 msgid "Produce a graph output of @var{type}, where @var{type} must be one of the values listed above."
 msgstr "Produit un graphe en sortie de type @var{type} où @var{type} doit être l'un des types au-dessus."
 
 #. type: item
-#: doc/guix.texi:9521
+#: doc/guix.texi:12064
 #, no-wrap
 msgid "--list-types"
 msgstr "--list-types"
 
 #. type: table
-#: doc/guix.texi:9523
+#: doc/guix.texi:12066
 msgid "List the supported graph types."
 msgstr "Liste les types de graphes supportés."
 
 #. type: item
-#: doc/guix.texi:9524
+#: doc/guix.texi:12067
 #, no-wrap
 msgid "--backend=@var{backend}"
 msgstr "--backend=@var{moteur}"
 
 #. type: itemx
-#: doc/guix.texi:9525
+#: doc/guix.texi:12068
 #, no-wrap
 msgid "-b @var{backend}"
 msgstr "-b @var{moteur}"
 
 #. type: table
-#: doc/guix.texi:9527
+#: doc/guix.texi:12070
 msgid "Produce a graph using the selected @var{backend}."
 msgstr "Produit un graphe avec le @var{moteur} choisi."
 
 #. type: item
-#: doc/guix.texi:9528
+#: doc/guix.texi:12071
 #, no-wrap
 msgid "--list-backends"
 msgstr "--list-backends"
 
 #. type: table
-#: doc/guix.texi:9530
+#: doc/guix.texi:12073
 msgid "List the supported graph backends."
 msgstr "Liste les moteurs de graphes supportés."
 
 #. type: table
-#: doc/guix.texi:9532
+#: doc/guix.texi:12075
 msgid "Currently, the available backends are Graphviz and d3.js."
 msgstr "Actuellement les moteurs disponibles sont Graphviz et d3.js."
 
+#. type: item
+#: doc/guix.texi:12076
+#, no-wrap
+msgid "--path"
+msgstr "--path"
+
+#. type: table
+#: doc/guix.texi:12081
+msgid "Display the shortest path between two nodes of the type specified by @option{--type}.  The example below shows the shortest path between @code{libreoffice} and @code{llvm} according to the references of @code{libreoffice}:"
+msgstr "Affiche le chemin le plus court entre deux nœuds du type spécifié par @option{--type}. L'exemple ci-dessous montre le chemin le plus court entre @code{libreoffice} et @code{llvm} correspondant aux références de @code{libreoffice}:"
+
 #. type: example
-#: doc/guix.texi:9541
+#: doc/guix.texi:12088
+#, no-wrap
+msgid ""
+"$ guix graph --path -t references libreoffice llvm\n"
+"/gnu/store/@dots{}-libreoffice-6.4.2.2\n"
+"/gnu/store/@dots{}-libepoxy-1.5.4\n"
+"/gnu/store/@dots{}-mesa-19.3.4\n"
+"/gnu/store/@dots{}-llvm-9.0.1\n"
+msgstr ""
+"$ guix graph --path -t references libreoffice llvm\n"
+"/gnu/store/@dots{}-libreoffice-6.4.2.2\n"
+"/gnu/store/@dots{}-libepoxy-1.5.4\n"
+"/gnu/store/@dots{}-mesa-19.3.4\n"
+"/gnu/store/@dots{}-llvm-9.0.1\n"
+
+#. type: example
+#: doc/guix.texi:12098
 #, no-wrap
 msgid "guix graph -e '(@@@@ (gnu packages commencement) gnu-make-final)'\n"
 msgstr "guix graph -e '(@@@@ (gnu packages commencement) gnu-make-final)'\n"
 
 #. type: table
-#: doc/guix.texi:9546
+#: doc/guix.texi:12103
 msgid "Display the graph for @var{system}---e.g., @code{i686-linux}."
 msgstr "Affiche le graphe pour @var{système} — p.@: ex.@: @code{i686-linux}."
 
 #. type: table
-#: doc/guix.texi:9549
+#: doc/guix.texi:12106
 msgid "The package dependency graph is largely architecture-independent, but there are some architecture-dependent bits that this option allows you to visualize."
 msgstr "Le graphe de dépendance des paquets est la plupart du temps indépendant de l'architecture, mais il y a quelques parties qui dépendent de l'architecture que cette option vous permet de visualiser."
 
+#. type: Plain text
+#: doc/guix.texi:12122
+msgid "On top of that, @command{guix graph} supports all the usual package transformation options (@pxref{Package Transformation Options}).  This makes it easy to view the effect of a graph-rewriting transformation such as @option{--with-input}.  For example, the command below outputs the graph of @code{git} once @code{openssl} has been replaced by @code{libressl} everywhere in the graph:"
+msgstr "En plus de celà, @command{guix graph} prend en charge toutes les options habituelles de transformation des paquets (@pxref{Package Transformation Options}).  Il est ainsi facile de voir l'effet d'une transformation de réécriture de graphe telle que @option{--with-input}.  Par exemple, la commande ci-dessous produit le graphe de @code{git} une fois que @code{openssl} a été remplacé par @code{libressl} partout dans le graphe :"
+
+#. type: example
+#: doc/guix.texi:12125
+#, no-wrap
+msgid "guix graph git --with-input=openssl=libressl\n"
+msgstr "guix graph git --with-input=openssl=libressl\n"
+
+#. type: Plain text
+#: doc/guix.texi:12128
+msgid "So many possibilities, so much fun!"
+msgstr "Tant de possibilités, tant de plaisir !"
+
 #. type: section
-#: doc/guix.texi:9554
+#: doc/guix.texi:12130
 #, no-wrap
 msgid "Invoking @command{guix publish}"
 msgstr "Invoquer @command{guix publish}"
 
 #. type: command{#1}
-#: doc/guix.texi:9556
+#: doc/guix.texi:12132
 #, no-wrap
 msgid "guix publish"
 msgstr "guix publish"
 
 #. type: Plain text
-#: doc/guix.texi:9560
+#: doc/guix.texi:12136
 msgid "The purpose of @command{guix publish} is to enable users to easily share their store with others, who can then use it as a substitute server (@pxref{Substitutes})."
 msgstr "Le but de @command{guix publish} est de vous permettre de partager facilement votre dépôt avec d'autres personnes qui peuvent ensuite l'utiliser comme serveur de substituts (@pxref{Substituts})."
 
 #. type: Plain text
-#: doc/guix.texi:9566
-msgid "When @command{guix publish} runs, it spawns an HTTP server which allows anyone with network access to obtain substitutes from it.  This means that any machine running Guix can also act as if it were a build farm, since the HTTP interface is compatible with Hydra, the software behind the @code{@value{SUBSTITUTE-SERVER}} build farm."
-msgstr "Lorsque @command{guix publish} est lancé, il crée un serveur HTTP qui permet à n'importe qui avec un accès réseau d'y récupérer des substituts.  Cela signifie que toutes les machines qui font tourner Guix peuvent aussi agir comme une ferme de construction, puisque l'interface HTTP est compatible avec Hydra, le logiciel derrière la ferme de construction @code{@value{SUBSTITUTE-SERVER}}."
+#: doc/guix.texi:12142
+msgid "When @command{guix publish} runs, it spawns an HTTP server which allows anyone with network access to obtain substitutes from it.  This means that any machine running Guix can also act as if it were a build farm, since the HTTP interface is compatible with Cuirass, the software behind the @code{@value{SUBSTITUTE-SERVER}} build farm."
+msgstr "Lorsque @command{guix publish} est lancé, il crée un serveur HTTP qui permet à n'importe qui avec un accès réseau d'y récupérer des substituts.  Cela signifie que toutes les machines qui font tourner Guix peuvent aussi agir comme une ferme de construction, puisque l'interface HTTP est compatible avec Cuirass, le logiciel derrière la ferme de construction @code{@value{SUBSTITUTE-SERVER}}."
 
 #. type: Plain text
-#: doc/guix.texi:9572
-msgid "For security, each substitute is signed, allowing recipients to check their authenticity and integrity (@pxref{Substitutes}).  Because @command{guix publish} uses the signing key of the system, which is only readable by the system administrator, it must be started as root; the @code{--user} option makes it drop root privileges early on."
-msgstr "Pour des raisons de sécurité, chaque substitut est signé, ce qui permet aux destinataires de vérifier leur authenticité et leur intégrité (@pxref{Substituts}). Comme @command{guix publish} utilise la clef de signature du système, qui n'est lisible que par l'administrateur système, il doit être lancé en root ; l'option @code{--user} lui fait baisser ses privilèges le plus tôt possible."
+#: doc/guix.texi:12148
+msgid "For security, each substitute is signed, allowing recipients to check their authenticity and integrity (@pxref{Substitutes}).  Because @command{guix publish} uses the signing key of the system, which is only readable by the system administrator, it must be started as root; the @option{--user} option makes it drop root privileges early on."
+msgstr "Pour des raisons de sécurité, chaque substitut est signé, ce qui permet aux destinataires de vérifier leur authenticité et leur intégrité (@pxref{Substituts}). Parce que @command{guix publish} utilise la clé de signature du système, qui n'est lisible que par l'administrateur système, il doit être lancé en root ; l'option @code{--user} lui fait abandonner les privilèges de root dès le début."
 
 #. type: Plain text
-#: doc/guix.texi:9576
+#: doc/guix.texi:12152
 msgid "The signing key pair must be generated before @command{guix publish} is launched, using @command{guix archive --generate-key} (@pxref{Invoking guix archive})."
 msgstr "La pair de clefs pour les signatures doit être générée avant de lancer @command{guix publish}, avec @command{guix archive --generate-key} (@pxref{Invoking guix archive})."
 
 #. type: example
-#: doc/guix.texi:9581
+#: doc/guix.texi:12157
 #, no-wrap
 msgid "guix publish @var{options}@dots{}\n"
 msgstr "guix publish @var{options}@dots{}\n"
 
 #. type: Plain text
-#: doc/guix.texi:9585
+#: doc/guix.texi:12161
 msgid "Running @command{guix publish} without any additional arguments will spawn an HTTP server on port 8080:"
 msgstr "Lancer @command{guix publish} sans arguments supplémentaires lancera un serveur HTTP sur le port 8080 :"
 
 #. type: example
-#: doc/guix.texi:9588
+#: doc/guix.texi:12164
 #, no-wrap
 msgid "guix publish\n"
 msgstr "guix publish\n"
 
 #. type: Plain text
-#: doc/guix.texi:9592
-msgid "Once a publishing server has been authorized (@pxref{Invoking guix archive}), the daemon may download substitutes from it:"
-msgstr "Une fois qu'un serveur de publication a été autorisé (@pxref{Invoking guix archive}), le démon peut télécharger des substituts à partir de lui :"
-
-#. type: example
-#: doc/guix.texi:9595
-#, no-wrap
-msgid "guix-daemon --substitute-urls=http://example.org:8080\n"
-msgstr "guix-daemon --substitute-urls=http://example.org:8080\n"
+#: doc/guix.texi:12168
+msgid "Once a publishing server has been authorized, the daemon may download substitutes from it.  @xref{Getting Substitutes from Other Servers}."
+msgstr "Une fois qu'un serveur de publication a été autorisé, le démon peut télécharger des substituts à partir de lui.  @xref{Getting Substitutes from Other Servers}."
 
 #. type: Plain text
-#: doc/guix.texi:9604
+#: doc/guix.texi:12176
 msgid "By default, @command{guix publish} compresses archives on the fly as it serves them.  This ``on-the-fly'' mode is convenient in that it requires no setup and is immediately available.  However, when serving lots of clients, we recommend using the @option{--cache} option, which enables caching of the archives before they are sent to clients---see below for details.  The @command{guix weather} command provides a handy way to check what a server provides (@pxref{Invoking guix weather})."
 msgstr "Par défaut, @command{guix publish} compresse les archives à la volée quand il les sert.  Ce mode « à la volée » est pratique puisqu'il ne demande aucune configuration et est disponible immédiatement.  Cependant, lorsqu'il s'agit de servir beaucoup de clients, nous recommandons d'utiliser l'option @option{--cache}, qui active le cache des archives avant de les envoyer aux clients — voir les détails plus bas.  La commande @command{guix weather} fournit un manière pratique de vérifier ce qu'un serveur fournit (@pxref{Invoking guix weather})."
 
 #. type: Plain text
-#: doc/guix.texi:9611
+#: doc/guix.texi:12183
 msgid "As a bonus, @command{guix publish} also serves as a content-addressed mirror for source files referenced in @code{origin} records (@pxref{origin Reference}).  For instance, assuming @command{guix publish} is running on @code{example.org}, the following URL returns the raw @file{hello-2.10.tar.gz} file with the given SHA256 hash (represented in @code{nix-base32} format, @pxref{Invoking guix hash}):"
 msgstr "En bonus, @command{guix publish} sert aussi un miroir adressé par le contenu des fichiers source référencées dans les enregistrements @code{origin} (@pxref{origin Reference}).  Par exemple, en supposant que @command{guix publish} tourne sur @code{example.org}, l'URL suivante renverra le fichier brut @file{hello-2.10.tar.gz} avec le hash SHA256 donné (représenté sous le format @code{nix-base32}, @pxref{Invoking guix hash}) :"
 
 #. type: example
-#: doc/guix.texi:9614
+#: doc/guix.texi:12186
 #, no-wrap
 msgid "http://example.org/file/hello-2.10.tar.gz/sha256/0ssi1@dots{}ndq1i\n"
 msgstr "http://example.org/file/hello-2.10.tar.gz/sha256/0ssi1@dots{}ndq1i\n"
 
 #. type: Plain text
-#: doc/guix.texi:9618
+#: doc/guix.texi:12190
 msgid "Obviously, these URLs only work for files that are in the store; in other cases, they return 404 (``Not Found'')."
 msgstr "Évidemment, ces URL ne fonctionnent que pour des fichiers dans le dépôt ; dans les autres cas, elles renvoie une erreur 404 (« Introuvable »)."
 
 #. type: cindex
-#: doc/guix.texi:9619
+#: doc/guix.texi:12191
 #, no-wrap
 msgid "build logs, publication"
 msgstr "journaux de construction, publication"
 
 #. type: Plain text
-#: doc/guix.texi:9621
+#: doc/guix.texi:12193
 msgid "Build logs are available from @code{/log} URLs like:"
 msgstr "Les journaux de construction sont disponibles à partir des URL @code{/log} comme ceci :"
 
 #. type: example
-#: doc/guix.texi:9624
+#: doc/guix.texi:12196
 #, no-wrap
 msgid "http://example.org/log/gwspk@dots{}-guile-2.2.3\n"
 msgstr "http://example.org/log/gwspk@dots{}-guile-2.2.3\n"
 
 #. type: Plain text
-#: doc/guix.texi:9634
-msgid "When @command{guix-daemon} is configured to save compressed build logs, as is the case by default (@pxref{Invoking guix-daemon}), @code{/log} URLs return the compressed log as-is, with an appropriate @code{Content-Type} and/or @code{Content-Encoding} header.  We recommend running @command{guix-daemon} with @code{--log-compression=gzip} since Web browsers can automatically decompress it, which is not the case with bzip2 compression."
-msgstr "Lorsque @command{guix-daemon} est configuré pour sauvegarder les journaux de construction compressés, comme c'est le cas par défaut (@pxref{Invoking guix-daemon}), les URL @code{/log} renvoient le journal compressé tel-quel, avec un en-tête @code{Content-Type} ou @code{Content-Encoding} approprié.  Nous recommandons de lancer @command{guix-daemon} avec @code{--log-compression=gzip} parce que les navigateurs web les décompressent automatiquement, ce qui n'est pas le cas avec la compression bzip2."
+#: doc/guix.texi:12206
+msgid "When @command{guix-daemon} is configured to save compressed build logs, as is the case by default (@pxref{Invoking guix-daemon}), @code{/log} URLs return the compressed log as-is, with an appropriate @code{Content-Type} and/or @code{Content-Encoding} header.  We recommend running @command{guix-daemon} with @option{--log-compression=gzip} since Web browsers can automatically decompress it, which is not the case with Bzip2 compression."
+msgstr "Lorsque @command{guix-daemon} est configuré pour sauvegarder les journaux de construction compressés, comme c'est le cas par défaut (@pxref{Invoquer guix-daemon}), les URL @code{/log} renvoient le journal compressé tel-quel, avec une en-tête @code{Content-Type} et/ou @code{Content-Encoding} appropriée.  Nous recommandons de lancer @command{guix-daemon} avec @option{--log-compression=gzip} parce que les navigateurs web les décompressent automatiquement, ce qui n'est pas le cas avec la compression bzip2."
 
 #. type: item
-#: doc/guix.texi:9638
+#: doc/guix.texi:12210
 #, no-wrap
 msgid "--port=@var{port}"
 msgstr "--port=@var{port}"
 
 #. type: itemx
-#: doc/guix.texi:9639
+#: doc/guix.texi:12211
 #, no-wrap
 msgid "-p @var{port}"
 msgstr "-p @var{port}"
 
 #. type: table
-#: doc/guix.texi:9641
+#: doc/guix.texi:12213
 msgid "Listen for HTTP requests on @var{port}."
 msgstr "Écoute les requêtes HTTP sur le @var{port}"
 
 #. type: item
-#: doc/guix.texi:9642 doc/guix.texi:20713
+#: doc/guix.texi:12214
 #, no-wrap
 msgid "--listen=@var{host}"
 msgstr "--listen=@var{hôte}"
 
 #. type: table
-#: doc/guix.texi:9645
+#: doc/guix.texi:12217
 msgid "Listen on the network interface for @var{host}.  The default is to accept connections from any interface."
 msgstr "Écoute sur l'interface réseau de @var{hôte}.  Par défaut, la commande accepte les connexions de n'importe quelle interface."
 
 #. type: table
-#: doc/guix.texi:9650
+#: doc/guix.texi:12222
 msgid "Change privileges to @var{user} as soon as possible---i.e., once the server socket is open and the signing key has been read."
 msgstr "Charge les privilèges de @var{utilisateur} le plus vite possible — c.-à-d. une fois que la socket du serveur est ouverte et que la clef de signature a été lue."
 
 #. type: item
-#: doc/guix.texi:9651
+#: doc/guix.texi:12223
 #, no-wrap
-msgid "--compression[=@var{level}]"
-msgstr "--compression[=@var{niveau}]"
+msgid "--compression[=@var{method}[:@var{level}]]"
+msgstr "--compression[=@var{méthode}[:@var{niveau}]]"
 
 #. type: itemx
-#: doc/guix.texi:9652
+#: doc/guix.texi:12224
 #, no-wrap
-msgid "-C [@var{level}]"
-msgstr "-C [@var{niveau}]"
+msgid "-C [@var{method}[:@var{level}]]"
+msgstr "-C [@var{méthode}[:@var{niveau}]]"
+
+#. type: table
+#: doc/guix.texi:12228
+msgid "Compress data using the given @var{method} and @var{level}.  @var{method} is one of @code{lzip} and @code{gzip}; when @var{method} is omitted, @code{gzip} is used."
+msgstr "Compresser les données en utilisant les @var{method} et @var{level} donnés.  @var{method} est l'un des codes @code{lzip} et @code{gzip} ; lorsque @var{method} est omis, @code{gzip} est utilisé."
+
+#. type: table
+#: doc/guix.texi:12232
+msgid "When @var{level} is zero, disable compression.  The range 1 to 9 corresponds to different compression levels: 1 is the fastest, and 9 is the best (CPU-intensive).  The default is 3."
+msgstr "Lorsque @var{level} est égal à zéro, désactivez la compression.  La plage de 1 à 9 correspond à différents niveaux de compression : 1 est le plus rapide, et 9 est le meilleur (gourmand en CPU).  Le niveau par défaut est 3."
 
 #. type: table
-#: doc/guix.texi:9657
-msgid "Compress data using the given @var{level}.  When @var{level} is zero, disable compression.  The range 1 to 9 corresponds to different gzip compression levels: 1 is the fastest, and 9 is the best (CPU-intensive).  The default is 3."
-msgstr "Compresse les données au @var{niveau} donné.  Lorsque le @var{niveau} est zéro, désactive la compression.  L'intervalle 1 à 9 correspond aux différents niveaux de compression gzip : 1 est le plus rapide et 9 est la meilleure (mais gourmande en CPU).  Le niveau par défaut est 3."
+#: doc/guix.texi:12237
+msgid "Usually, @code{lzip} compresses noticeably better than @code{gzip} for a small increase in CPU usage; see @uref{https://nongnu.org/lzip/lzip_benchmark.html,benchmarks on the lzip Web page}."
+msgstr "Habituellement, @code{lzip} compresse notablement mieux que @code{gzip} pour une légère augmentation de l'utilisation du CPU. voir @uref{https://nongnu.org/lzip/lzip_benchmark.html,benchmarks on the lzip Web page}."
 
 #. type: table
-#: doc/guix.texi:9666
+#: doc/guix.texi:12246
 msgid "Unless @option{--cache} is used, compression occurs on the fly and the compressed streams are not cached.  Thus, to reduce load on the machine that runs @command{guix publish}, it may be a good idea to choose a low compression level, to run @command{guix publish} behind a caching proxy, or to use @option{--cache}.  Using @option{--cache} has the advantage that it allows @command{guix publish} to add @code{Content-Length} HTTP header to its responses."
 msgstr "À moins que @option{--cache} ne soit utilisé, la compression se fait à la volée et les flux compressés ne sont pas cachés.  Ainsi, pour réduire la charge sur la machine qui fait tourner @command{guix publish}, c'est une bonne idée de choisir un niveau de compression faible, de lancer @command{guix publish} derrière un serveur de cache ou d'utiliser @option{--cache}.  Utilise @option{--cache} a l'avantage qu'il permet à @command{guix publish} d'ajouter l'en-tête HTTP @code{Content-Length} à sa réponse."
 
+#. type: table
+#: doc/guix.texi:12251
+msgid "This option can be repeated, in which case every substitute gets compressed using all the selected methods, and all of them are advertised.  This is useful when users may not support all the compression methods: they can select the one they support."
+msgstr "Cette option peut être répétée, auquel cas chaque substitut est compressé en utilisant toutes les méthodes sélectionnées, et toutes sont annoncées.  Cette option est utile lorsque les utilisateur·rice·s ne supportent pas toutes les méthodes de compression : il·elle·s peuvent sélectionner celle qu'elles supportent."
+
 #. type: item
-#: doc/guix.texi:9667
+#: doc/guix.texi:12252
 #, no-wrap
 msgid "--cache=@var{directory}"
 msgstr "--cache=@var{répertoire}"
 
 #. type: itemx
-#: doc/guix.texi:9668
+#: doc/guix.texi:12253
 #, no-wrap
 msgid "-c @var{directory}"
 msgstr "-c @var{répertoire}"
 
 #. type: table
-#: doc/guix.texi:9671
+#: doc/guix.texi:12256
 msgid "Cache archives and meta-data (@code{.narinfo} URLs) to @var{directory} and only serve archives that are in cache."
 msgstr "Cache les archives et les métadonnées (les URL @code{.narinfo}) dans @var{répertoire} et ne sert que les archives dans ce cache."
 
 #. type: table
-#: doc/guix.texi:9679
+#: doc/guix.texi:12264
 msgid "When this option is omitted, archives and meta-data are created on-the-fly.  This can reduce the available bandwidth, especially when compression is enabled, since this may become CPU-bound.  Another drawback of the default mode is that the length of archives is not known in advance, so @command{guix publish} does not add a @code{Content-Length} HTTP header to its responses, which in turn prevents clients from knowing the amount of data being downloaded."
 msgstr "Lorsque cette option est omise, les archives et les métadonnées sont crées à la volée.  Cela réduit la bande passante disponible, surtout quand la compression est activée puisqu'elle pourrait être limitée par le CPU.  Un autre inconvénient au mode par défaut est que la taille des archives n'est pas connue à l'avance, donc @command{guix publish} n'ajoute pas l'en-tête @code{Content-Length} à ses réponses, ce qui empêche les clients de savoir la quantité de données à télécharger."
 
 #. type: table
-#: doc/guix.texi:9687
-msgid "Conversely, when @option{--cache} is used, the first request for a store item (@i{via} a @code{.narinfo} URL) returns 404 and triggers a background process to @dfn{bake} the archive---computing its @code{.narinfo} and compressing the archive, if needed.  Once the archive is cached in @var{directory}, subsequent requests succeed and are served directly from the cache, which guarantees that clients get the best possible bandwidth."
-msgstr "À l'inverse, lorsque @option{--cache} est utilisée, la première requête pour un élément du dépôt (via une URL @code{.narinfo}) renvoie une erreur 404 et déclenche la création de l'archive — en calculant son @code{.narinfo} et en compressant l'archive au besoin.  Une fois l'archive cachée dans @var{répertoire}, les requêtes suivantes réussissent et sont servies directement depuis le cache, ce qui garanti que les clients ont la meilleure bande passante possible."
+#: doc/guix.texi:12272
+msgid "Conversely, when @option{--cache} is used, the first request for a store item (@i{via} a @code{.narinfo} URL) triggers a background process to @dfn{bake} the archive---computing its @code{.narinfo} and compressing the archive, if needed.  Once the archive is cached in @var{directory}, subsequent requests succeed and are served directly from the cache, which guarantees that clients get the best possible bandwidth."
+msgstr "À l'inverse, lorsque @option{--cache} est utilisée, la première requête pour un élément du dépôt (via une URL @code{.narinfo}) déclenche une tache de fond pour créer l'archive — en calculant son @code{.narinfo} et en compressant l'archive au besoin.  Une fois l'archive en cache dans @var{répertoire}, les requêtes suivantes réussissent et sont servies directement depuis le cache, ce qui garanti que les clients ont la meilleure bande passante possible."
+
+#. type: table
+#: doc/guix.texi:12279
+msgid "That first @code{.narinfo} request nonetheless returns 200, provided the requested store item is ``small enough'', below the cache bypass threshold---see @option{--cache-bypass-threshold} below.  That way, clients do not have to wait until the archive is baked.  For larger store items, the first @code{.narinfo} request returns 404, meaning that clients have to wait until the archive is baked."
+msgstr "Cette première requête @code{.narinfo} renvoie quand même 200, si l'élément du dépôt est « assez petit », sous la limite de contournement du cache --- voir @option{--cache-bypass-threshold} plus bas.  De cette manière, les clients n'ont pas besoin d'attendre que l'archive soit prête.  Pour les éléments plus gros, la première requête @code{.narinfo} renvoie 404, ce qui signifie que les clients doivent attendre jusqu'à ce que l'archive soit prête."
 
 #. type: table
-#: doc/guix.texi:9691
+#: doc/guix.texi:12283
 msgid "The ``baking'' process is performed by worker threads.  By default, one thread per CPU core is created, but this can be customized.  See @option{--workers} below."
 msgstr "Le processus de création est effectué par des threads de travail.  Par défaut, un thread par cœur du CPU est créé, mais cela peut être personnalisé.  Voir @option{--workers} plus bas."
 
 #. type: table
-#: doc/guix.texi:9694
+#: doc/guix.texi:12286
 msgid "When @option{--ttl} is used, cached entries are automatically deleted when they have expired."
 msgstr "Lorsque l'option @option{--ttl} est utilisée, les entrées cachées sont automatiquement supprimées lorsqu'elles expirent."
 
 #. type: item
-#: doc/guix.texi:9695
+#: doc/guix.texi:12287
 #, no-wrap
 msgid "--workers=@var{N}"
 msgstr "--workers=@var{N}"
 
 #. type: table
-#: doc/guix.texi:9698
+#: doc/guix.texi:12290
 msgid "When @option{--cache} is used, request the allocation of @var{N} worker threads to ``bake'' archives."
 msgstr "Lorsque @option{--cache} est utilisée, demande l'allocation de @var{N} thread de travail pour créer les archives."
 
 #. type: item
-#: doc/guix.texi:9699
+#: doc/guix.texi:12291
 #, no-wrap
 msgid "--ttl=@var{ttl}"
 msgstr "--ttl=@var{ttl}"
 
 #. type: table
-#: doc/guix.texi:9703
+#: doc/guix.texi:12295
 msgid "Produce @code{Cache-Control} HTTP headers that advertise a time-to-live (TTL) of @var{ttl}.  @var{ttl} must denote a duration: @code{5d} means 5 days, @code{1m} means 1 month, and so on."
 msgstr "Produit des en-têtes HTTP @code{Cache-Control} qui expriment une durée de vie (TTL) de @var{ttl}.  @var{ttl} peut dénoter une durée : @code{5d} signifie 5 jours, @code{1m} signifie un mois, etc."
 
 #. type: table
-#: doc/guix.texi:9708
+#: doc/guix.texi:12300
 msgid "This allows the user's Guix to keep substitute information in cache for @var{ttl}.  However, note that @code{guix publish} does not itself guarantee that the store items it provides will indeed remain available for as long as @var{ttl}."
 msgstr "Cela permet au Guix de l'utilisateur de garder les informations en cache pendant @var{ttl}.  Cependant, remarquez que @code{guix publish} ne garanti pas lui-même que les éléments du dépôt qu'il fournit seront toujours disponible pendant la durée @var{ttl}."
 
 #. type: table
-#: doc/guix.texi:9712
+#: doc/guix.texi:12304
 msgid "Additionally, when @option{--cache} is used, cached entries that have not been accessed for @var{ttl} and that no longer have a corresponding item in the store, may be deleted."
 msgstr "En plus, lorsque @option{--cache} est utilisée, les entrées cachées qui n'ont pas été demandé depuis @var{ttl} et n'ont pas d'élément correspondant dans le dépôt peuvent être supprimées."
 
 #. type: item
-#: doc/guix.texi:9713
+#: doc/guix.texi:12305
+#, no-wrap
+msgid "--cache-bypass-threshold=@var{size}"
+msgstr "--cache-bypass-threshold=@var{taille}"
+
+#. type: table
+#: doc/guix.texi:12310
+msgid "When used in conjunction with @option{--cache}, store items smaller than @var{size} are immediately available, even when they are not yet in cache.  @var{size} is a size in bytes, or it can be suffixed by @code{M} for megabytes and so on.  The default is @code{10M}."
+msgstr "Avec @option{--cache}, les éléments du dépôt plus petits que @var{taille} sont immédiatement disponibles, même s'ils ne sont pas en cache.  @var{taille} est une taille en octets, ou peut utiliser un suffixe comme @code{M} pour les mégaoctets, etc.  La valeur par défaut est @code{10M}."
+
+#. type: table
+#: doc/guix.texi:12315
+msgid "``Cache bypass'' allows you to reduce the publication delay for clients at the expense of possibly additional I/O and CPU use on the server side: depending on the client access patterns, those store items can end up being baked several times until a copy is available in cache."
+msgstr "Le « contournement du cache » vous permet de réduire le délai de publication pour les clients au prix d'utilisation accrue des I/O et du CPU sur le serveur : en fonction des accès clients, ces éléments peuvent être créés plusieurs fois avant qu'une copie ne soit disponible dans le cache."
+
+#. type: table
+#: doc/guix.texi:12319
+msgid "Increasing the threshold may be useful for sites that have few users, or to guarantee that users get substitutes even for store items that are not popular."
+msgstr "Augmenter la limite peut être utile pour les sites qui ont peu d'utilisateurs, ou pour garantir que les utilisateurs reçoivent les substituts même pour les éléments qui ne sont pas populaires."
+
+#. type: item
+#: doc/guix.texi:12320
 #, no-wrap
 msgid "--nar-path=@var{path}"
 msgstr "--nar-path=@var{chemin}"
 
 #. type: table
-#: doc/guix.texi:9716
+#: doc/guix.texi:12323
 msgid "Use @var{path} as the prefix for the URLs of ``nar'' files (@pxref{Invoking guix archive, normalized archives})."
 msgstr "Utilise @var{chemin} comme préfixe des URL de fichier « nar »  (@pxref{Invoking guix archive, normalized archives})."
 
 #. type: table
-#: doc/guix.texi:9720
+#: doc/guix.texi:12327
 msgid "By default, nars are served at a URL such as @code{/nar/gzip/@dots{}-coreutils-8.25}.  This option allows you to change the @code{/nar} part to @var{path}."
 msgstr "Par défaut, les nars sont présents à l'URL comme @code{/nar/gzip/@dots{}-coreutils-8.25}.  Cette option vous permet de changer la partie @code{/nar} en @var{chemin}."
 
 #. type: item
-#: doc/guix.texi:9721
+#: doc/guix.texi:12328
 #, no-wrap
 msgid "--public-key=@var{file}"
 msgstr "--public-key=@var{fichier}"
 
 #. type: itemx
-#: doc/guix.texi:9722
+#: doc/guix.texi:12329
 #, no-wrap
 msgid "--private-key=@var{file}"
 msgstr "--private-key=@var{fichier}"
 
 #. type: table
-#: doc/guix.texi:9725
+#: doc/guix.texi:12332
 msgid "Use the specific @var{file}s as the public/private key pair used to sign the store items being published."
 msgstr "Utilise les @var{fichier}s spécifiques comme pair de clefs utilisées pour signer les éléments avant de les publier."
 
 #. type: table
-#: doc/guix.texi:9732
+#: doc/guix.texi:12339
 msgid "The files must correspond to the same key pair (the private key is used for signing and the public key is merely advertised in the signature metadata).  They must contain keys in the canonical s-expression format as produced by @command{guix archive --generate-key} (@pxref{Invoking guix archive}).  By default, @file{/etc/guix/signing-key.pub} and @file{/etc/guix/signing-key.sec} are used."
 msgstr "Les fichiers doivent correspondre à la même pair de clefs (la clef privée est utilisée pour signer et la clef publique est seulement ajouté aux métadonnées de la signature).  Ils doivent contenir les clefs dans le format s-expression canonique produit par @command{guix archive --generate-key} (@pxref{Invoking guix archive}).  Par défaut, @file{/etc/guix/signing-key.pub} et @file{/etc/guix/signing-key.sec} sont utilisés."
 
 #. type: item
-#: doc/guix.texi:9733
+#: doc/guix.texi:12340
 #, no-wrap
 msgid "--repl[=@var{port}]"
 msgstr "--repl[=@var{port}]"
 
 #. type: itemx
-#: doc/guix.texi:9734
+#: doc/guix.texi:12341
 #, no-wrap
 msgid "-r [@var{port}]"
 msgstr "-r [@var{port}]"
 
 #. type: table
-#: doc/guix.texi:9738
+#: doc/guix.texi:12345
 msgid "Spawn a Guile REPL server (@pxref{REPL Servers,,, guile, GNU Guile Reference Manual}) on @var{port} (37146 by default).  This is used primarily for debugging a running @command{guix publish} server."
 msgstr "Crée un serveur REPL Guile  (@pxref{REPL Servers,,, guile, GNU Guile Reference Manual}) sur @var{pport} (37146 par défaut).  C'est surtout utile pour déboguer un serveur @command{guix publish} qui tourne."
 
 #. type: Plain text
-#: doc/guix.texi:9744
+#: doc/guix.texi:12351
 msgid "Enabling @command{guix publish} on Guix System is a one-liner: just instantiate a @code{guix-publish-service-type} service in the @code{services} field of the @code{operating-system} declaration (@pxref{guix-publish-service-type, @code{guix-publish-service-type}})."
 msgstr "Activer @command{guix publish} sur un système Guix est vraiment une seule ligne : instanciez simplement un service @code{guix-publish-service-type} dans le champs @code{services} de votre déclaration @code{operating-system} (@pxref{guix-publish-service-type, @code{guix-publish-service-type}})."
 
 #. type: Plain text
-#: doc/guix.texi:9747
-msgid "If you are instead running Guix on a ``foreign distro'', follow these instructions:”"
-msgstr "Si vous avez installé Guix sur une « distro externe », suivez ces instructions :"
+#: doc/guix.texi:12354
+msgid "If you are instead running Guix on a ``foreign distro'', follow these instructions:"
+msgstr "Si vous utilisez plutôt Guix sur une « distro étrangère », suivez ces instructions :"
 
 #. type: itemize
-#: doc/guix.texi:9751
+#: doc/guix.texi:12358
 msgid "If your host distro uses the systemd init system:"
 msgstr "Si votre distro hôte utilise le système d'init systemd :"
 
 #. type: example
-#: doc/guix.texi:9756
+#: doc/guix.texi:12363
 #, no-wrap
 msgid ""
 "# ln -s ~root/.guix-profile/lib/systemd/system/guix-publish.service \\\n"
@@ -17788,7 +22493,7 @@ msgstr ""
 "# systemctl start guix-publish && systemctl enable guix-publish\n"
 
 #. type: example
-#: doc/guix.texi:9764
+#: doc/guix.texi:12371
 #, no-wrap
 msgid ""
 "# ln -s ~root/.guix-profile/lib/upstart/system/guix-publish.conf /etc/init/\n"
@@ -17798,56 +22503,56 @@ msgstr ""
 "# start guix-publish\n"
 
 #. type: itemize
-#: doc/guix.texi:9768
+#: doc/guix.texi:12375
 msgid "Otherwise, proceed similarly with your distro's init system."
 msgstr "Sinon, procédez de manière similaire avec votre système d'init de votre distro."
 
 #. type: section
-#: doc/guix.texi:9771
+#: doc/guix.texi:12378
 #, no-wrap
 msgid "Invoking @command{guix challenge}"
 msgstr "Invoquer @command{guix challenge}"
 
 #. type: cindex
-#: doc/guix.texi:9774
+#: doc/guix.texi:12381
 #, no-wrap
 msgid "verifiable builds"
 msgstr "constructions vérifiables"
 
 #. type: command{#1}
-#: doc/guix.texi:9775
+#: doc/guix.texi:12382
 #, no-wrap
 msgid "guix challenge"
 msgstr "guix challenge"
 
 #. type: cindex
-#: doc/guix.texi:9776
+#: doc/guix.texi:12383
 #, no-wrap
 msgid "challenge"
 msgstr "défi"
 
 #. type: Plain text
-#: doc/guix.texi:9781
+#: doc/guix.texi:12388
 msgid "Do the binaries provided by this server really correspond to the source code it claims to build? Is a package build process deterministic? These are the questions the @command{guix challenge} command attempts to answer."
 msgstr "Est-ce que les binaires fournis par ce serveur correspondent réellement au code source qu'il dit avoir construit ? Est-ce que le processus de construction d'un paquet est déterministe ? Ce sont les question auxquelles la commande @command{guix challenge} essaye de répondre."
 
 #. type: Plain text
-#: doc/guix.texi:9789
+#: doc/guix.texi:12396
 msgid "The former is obviously an important question: Before using a substitute server (@pxref{Substitutes}), one had better @emph{verify} that it provides the right binaries, and thus @emph{challenge} it.  The latter is what enables the former: If package builds are deterministic, then independent builds of the package should yield the exact same result, bit for bit; if a server provides a binary different from the one obtained locally, it may be either corrupt or malicious."
 msgstr "La première question est évidemment importante : avant d'utiliser un serveur de substituts (@pxref{Substituts}), il vaut mieux @emph{vérifier} qu'il fournit les bons binaires et donc le @emph{défier}. La deuxième est ce qui permet la première : si les constructions des paquets sont déterministes alors des constructions indépendantes du paquet devraient donner le même résultat, bit à bit ; si un serveur fournit un binaire différent de celui obtenu localement, il peut être soit corrompu, soit malveillant."
 
 #. type: Plain text
-#: doc/guix.texi:9798
+#: doc/guix.texi:12405
 msgid "We know that the hash that shows up in @file{/gnu/store} file names is the hash of all the inputs of the process that built the file or directory---compilers, libraries, build scripts, etc. (@pxref{Introduction}).  Assuming deterministic build processes, one store file name should map to exactly one build output.  @command{guix challenge} checks whether there is, indeed, a single mapping by comparing the build outputs of several independent builds of any given store item."
 msgstr "On sait que le hash qui apparaît dans @file{/gnu/store} est le hash de toutes les entrées du processus qui construit le fichier ou le répertoire — les compilateurs, les bibliothèques, les scripts de construction, etc. (@pxref{Introduction}).  En supposant que les processus de construction sont déterministes, un nom de fichier dans le dépôt devrait correspondre exactement à une sortie de construction.  @command{guix challenge} vérifie si il y a bien effectivement une seule correspondance en comparant les sorties de plusieurs constructions indépendantes d'un élément du dépôt donné."
 
 #. type: Plain text
-#: doc/guix.texi:9800
+#: doc/guix.texi:12407
 msgid "The command output looks like this:"
 msgstr "La sortie de la commande ressemble à :"
 
 #. type: smallexample
-#: doc/guix.texi:9817
+#: doc/guix.texi:12419
 #, no-wrap
 msgid ""
 "$ guix challenge --substitute-urls=\"https://@value{SUBSTITUTE-SERVER} https://guix.example.org\"\n"
@@ -17857,14 +22562,9 @@ msgid ""
 "  local hash: 0725l22r5jnzazaacncwsvp9kgf42266ayyp814v7djxs7nk963q\n"
 "  https://@value{SUBSTITUTE-SERVER}/nar/@dots{}-openssl-1.0.2d: 0725l22r5jnzazaacncwsvp9kgf42266ayyp814v7djxs7nk963q\n"
 "  https://guix.example.org/nar/@dots{}-openssl-1.0.2d: 1zy4fmaaqcnjrzzajkdn3f5gmjk754b43qkq47llbyak9z0qjyim\n"
-"/gnu/store/@dots{}-git-2.5.0 contents differ:\n"
-"  local hash: 00p3bmryhjxrhpn2gxs2fy0a15lnip05l97205pgbk5ra395hyha\n"
-"  https://@value{SUBSTITUTE-SERVER}/nar/@dots{}-git-2.5.0: 069nb85bv4d4a6slrwjdy8v1cn4cwspm3kdbmyb81d6zckj3nq9f\n"
-"  https://guix.example.org/nar/@dots{}-git-2.5.0: 0mdqa9w1p6cmli6976v4wi0sw9r4p5prkj7lzfd1877wk11c9c73\n"
-"/gnu/store/@dots{}-pius-2.1.1 contents differ:\n"
-"  local hash: 0k4v3m9z1zp8xzzizb7d8kjj72f9172xv078sq4wl73vnq9ig3ax\n"
-"  https://@value{SUBSTITUTE-SERVER}/nar/@dots{}-pius-2.1.1: 0k4v3m9z1zp8xzzizb7d8kjj72f9172xv078sq4wl73vnq9ig3ax\n"
-"  https://guix.example.org/nar/@dots{}-pius-2.1.1: 1cy25x1a4fzq5rk0pmvc8xhwyffnqz95h2bpvqsz2mpvlbccy0gs\n"
+"  differing files:\n"
+"    /lib/libcrypto.so.1.1\n"
+"    /lib/libssl.so.1.1\n"
 "\n"
 msgstr ""
 "$ guix challenge --substitute-urls=\"https://@value{SUBSTITUTE-SERVER} https://guix.example.org\"\n"
@@ -17874,18 +22574,52 @@ msgstr ""
 "  empreinte locale : 0725l22r5jnzazaacncwsvp9kgf42266ayyp814v7djxs7nk963q\n"
 "  https://@value{SUBSTITUTE-SERVER}/nar/@dots{}-openssl-1.0.2d : 0725l22r5jnzazaacncwsvp9kgf42266ayyp814v7djxs7nk963q\n"
 "  https://guix.example.org/nar/@dots{}-openssl-1.0.2d : 1zy4fmaaqcnjrzzajkdn3f5gmjk754b43qkq47llbyak9z0qjyim\n"
+"  fichiers différents :\n"
+"    /lib/libcrypto.so.1.1\n"
+"    /lib/libssl.so.1.1\n"
+
+#. type: smallexample
+#: doc/guix.texi:12426
+#, no-wrap
+msgid ""
+"/gnu/store/@dots{}-git-2.5.0 contents differ:\n"
+"  local hash: 00p3bmryhjxrhpn2gxs2fy0a15lnip05l97205pgbk5ra395hyha\n"
+"  https://@value{SUBSTITUTE-SERVER}/nar/@dots{}-git-2.5.0: 069nb85bv4d4a6slrwjdy8v1cn4cwspm3kdbmyb81d6zckj3nq9f\n"
+"  https://guix.example.org/nar/@dots{}-git-2.5.0: 0mdqa9w1p6cmli6976v4wi0sw9r4p5prkj7lzfd1877wk11c9c73\n"
+"  differing file:\n"
+"    /libexec/git-core/git-fsck\n"
+"\n"
+msgstr ""
 "le contenu de /gnu/store/@dots{}-git-2.5.0 diffère :\n"
 "  empreinte locale : 00p3bmryhjxrhpn2gxs2fy0a15lnip05l97205pgbk5ra395hyha\n"
 "  https://@value{SUBSTITUTE-SERVER}/nar/@dots{}-git-2.5.0 : 069nb85bv4d4a6slrwjdy8v1cn4cwspm3kdbmyb81d6zckj3nq9f\n"
 "  https://guix.example.org/nar/@dots{}-git-2.5.0 : 0mdqa9w1p6cmli6976v4wi0sw9r4p5prkj7lzfd1877wk11c9c73\n"
+"  fichier différent :\n"
+"    /libexec/git-core/git-fsck\n"
+"\n"
+
+#. type: smallexample
+#: doc/guix.texi:12433
+#, no-wrap
+msgid ""
+"/gnu/store/@dots{}-pius-2.1.1 contents differ:\n"
+"  local hash: 0k4v3m9z1zp8xzzizb7d8kjj72f9172xv078sq4wl73vnq9ig3ax\n"
+"  https://@value{SUBSTITUTE-SERVER}/nar/@dots{}-pius-2.1.1: 0k4v3m9z1zp8xzzizb7d8kjj72f9172xv078sq4wl73vnq9ig3ax\n"
+"  https://guix.example.org/nar/@dots{}-pius-2.1.1: 1cy25x1a4fzq5rk0pmvc8xhwyffnqz95h2bpvqsz2mpvlbccy0gs\n"
+"  differing file:\n"
+"    /share/man/man1/pius.1.gz\n"
+"\n"
+msgstr ""
 "le contenu de /gnu/store/@dots{}-pius-2.1.1 diffère :\n"
 "  empreinte locale : 0k4v3m9z1zp8xzzizb7d8kjj72f9172xv078sq4wl73vnq9ig3ax\n"
 "  https://@value{SUBSTITUTE-SERVER}/nar/@dots{}-pius-2.1.1 : 0k4v3m9z1zp8xzzizb7d8kjj72f9172xv078sq4wl73vnq9ig3ax\n"
 "  https://guix.example.org/nar/@dots{}-pius-2.1.1 : 1cy25x1a4fzq5rk0pmvc8xhwyffnqz95h2bpvqsz2mpvlbccy0gs\n"
+"  fichier différent:\n"
+"    /share/man/man1/pius.1.gz\n"
 "\n"
 
 #. type: smallexample
-#: doc/guix.texi:9819
+#: doc/guix.texi:12435
 #, no-wrap
 msgid ""
 "@dots{}\n"
@@ -17895,7 +22629,7 @@ msgstr ""
 "\n"
 
 #. type: smallexample
-#: doc/guix.texi:9824
+#: doc/guix.texi:12440
 #, no-wrap
 msgid ""
 "6,406 store items were analyzed:\n"
@@ -17909,133 +22643,221 @@ msgstr ""
 "  - 1,132 (17.7%) étaient impossibles à évaluer\n"
 
 #. type: Plain text
-#: doc/guix.texi:9832
+#: doc/guix.texi:12448
 msgid "In this example, @command{guix challenge} first scans the store to determine the set of locally-built derivations---as opposed to store items that were downloaded from a substitute server---and then queries all the substitute servers.  It then reports those store items for which the servers obtained a result different from the local build."
 msgstr "Dans cet exemple, @command{guix challenge} scanne d'abord le dépôt pour déterminer l'ensemble des dérivations construites localement — en opposition aux éléments qui ont été téléchargées depuis un serveur de substituts — puis demande leur avis à tous les serveurs de substituts.  Il rapporte ensuite les éléments du dépôt pour lesquels les serveurs ont obtenu un résultat différent de la construction locale."
 
 #. type: cindex
-#: doc/guix.texi:9833
+#: doc/guix.texi:12449
 #, no-wrap
 msgid "non-determinism, in package builds"
 msgstr "non-déterminisme, dans les constructions des paquets"
 
 #. type: Plain text
-#: doc/guix.texi:9844
+#: doc/guix.texi:12460
 msgid "As an example, @code{guix.example.org} always gets a different answer.  Conversely, @code{@value{SUBSTITUTE-SERVER}} agrees with local builds, except in the case of Git.  This might indicate that the build process of Git is non-deterministic, meaning that its output varies as a function of various things that Guix does not fully control, in spite of building packages in isolated environments (@pxref{Features}).  Most common sources of non-determinism include the addition of timestamps in build results, the inclusion of random numbers, and directory listings sorted by inode number.  See @uref{https://reproducible-builds.org/docs/}, for more information."
 msgstr "Dans l'exemple, @code{guix.example.org} obtient toujours une réponse différente.  Inversement, @code{@value{SUBSTITUTE-SERVER}} est d'accord avec les constructions locale, sauf dans le cas de Git.  Cela peut indiquer que le processus de construction de Git est non-déterministe, ce qui signifie que sa sortie diffère en fonction de divers choses que Guix ne contrôle pas parfaitement, malgré l'isolation des constructions (@pxref{Features}).  Les sources les plus communes de non-déterminisme comprennent l'ajout d'horodatage dans les résultats des constructions, l'inclusion de nombres aléatoires et des listes de fichiers ordonnés par numéro d'inœud.  Voir @uref{https://reproducible-builds.org/docs/}, pour plus d'informations."
 
 #. type: Plain text
-#: doc/guix.texi:9847
-msgid "To find out what is wrong with this Git binary, we can do something along these lines (@pxref{Invoking guix archive}):"
-msgstr "Pour trouver ce qui ne va pas avec le binaire de Git, on peut faire quelque chose comme cela (@pxref{Invoking guix archive}) :"
+#: doc/guix.texi:12463
+msgid "To find out what is wrong with this Git binary, the easiest approach is to run:"
+msgstr "Pour trouver ce qui ne va pas avec ce binaire Git, l'approche la plus facile est de lancer :"
 
 #. type: example
-#: doc/guix.texi:9852
+#: doc/guix.texi:12468
 #, no-wrap
 msgid ""
-"$ wget -q -O - https://@value{SUBSTITUTE-SERVER}/nar/@dots{}-git-2.5.0 \\\n"
-"   | guix archive -x /tmp/git\n"
+"guix challenge git \\\n"
+"  --diff=diffoscope \\\n"
+"  --substitute-urls=\"https://@value{SUBSTITUTE-SERVER} https://guix.example.org\"\n"
+msgstr ""
+"guix challenge git \\\n"
+"  --diff=diffoscope \\\n"
+"  --substitute-urls=\"https://@value{SUBSTITUTE-SERVER} https://guix.example.org\"\n"
+
+#. type: Plain text
+#: doc/guix.texi:12472
+msgid "This automatically invokes @command{diffoscope}, which displays detailed information about files that differ."
+msgstr "Celà invoque automatiquement @command{diffoscope}, qui affiche des informations détaillées sur les fichiers qui diffèrent."
+
+#. type: Plain text
+#: doc/guix.texi:12475
+msgid "Alternatively, we can do something along these lines (@pxref{Invoking guix archive}):"
+msgstr "Autrement, nous pouvons faire quelque chose comme dans ces lignes (@pxref{Invoquer guix archive}):"
+
+#. type: example
+#: doc/guix.texi:12480
+#, no-wrap
+msgid ""
+"$ wget -q -O - https://@value{SUBSTITUTE-SERVER}/nar/lzip/@dots{}-git-2.5.0 \\\n"
+"   | lzip -d | guix archive -x /tmp/git\n"
 "$ diff -ur --no-dereference /gnu/store/@dots{}-git.2.5.0 /tmp/git\n"
 msgstr ""
-"$ wget -q -O - https://@value{SUBSTITUTE-SERVER}/nar/@dots{}-git-2.5.0 \\\n"
-"   | guix archive -x /tmp/git\n"
+"$ wget -q -O - https://@value{SUBSTITUTE-SERVER}/nar/lzip/@dots{}-git-2.5.0 \\\n"
+"   | lzip -d | guix archive -x /tmp/git\n"
 "$ diff -ur --no-dereference /gnu/store/@dots{}-git.2.5.0 /tmp/git\n"
 
 #. type: Plain text
-#: doc/guix.texi:9861
+#: doc/guix.texi:12489
 msgid "This command shows the difference between the files resulting from the local build, and the files resulting from the build on @code{@value{SUBSTITUTE-SERVER}} (@pxref{Overview, Comparing and Merging Files,, diffutils, Comparing and Merging Files}).  The @command{diff} command works great for text files.  When binary files differ, a better option is @uref{https://diffoscope.org/, Diffoscope}, a tool that helps visualize differences for all kinds of files."
 msgstr "Cette commande montre les différences entre les fichiers qui résultent de la construction locale et des fichiers qui résultent de la construction sur @code{@value{SUBSTITUTE-SERVER}} (@pxref{Overview, Comparing and Merging Files,, diffutils, Comparing and Merging Files}).  La commande @command{diff} fonctionne bien avec des fichiers texte.  Lorsque des fichiers binaires diffèrent cependant, @uref{https://diffoscope.org/, Diffoscope} est une meilleure option.  C'est un outil qui aide à visualiser les différences entre toute sorte de fichiers."
 
 #. type: Plain text
-#: doc/guix.texi:9869
+#: doc/guix.texi:12497
 msgid "Once you have done that work, you can tell whether the differences are due to a non-deterministic build process or to a malicious server.  We try hard to remove sources of non-determinism in packages to make it easier to verify substitutes, but of course, this is a process that involves not just Guix, but a large part of the free software community.  In the meantime, @command{guix challenge} is one tool to help address the problem."
 msgstr "Une fois que vous avez fait ce travail, vous pourrez dire si les différences sont dues au non-déterminisme du processus de construction ou à la malhonnêteté du serveur.  Nous avons fait beaucoup d'effort pour éliminer les sources de non-déterminisme dans les paquets pour rendre plus facile la vérification des substituts, mais bien sûr, c'est un processus qui n'implique pas que Guix, mais une grande partie de la communauté des logiciels libres.  Pendant ce temps, @command{guix challenge} est un outil pour aider à corriger le problème."
 
 #. type: Plain text
-#: doc/guix.texi:9873
+#: doc/guix.texi:12501
 msgid "If you are writing packages for Guix, you are encouraged to check whether @code{@value{SUBSTITUTE-SERVER}} and other substitute servers obtain the same build result as you did with:"
 msgstr "Si vous écrivez un paquet pour Guix, nous vous encourageons à vérifier si @code{@value{SUBSTITUTE-SERVER}} et d'autres serveurs de substituts obtiennent le même résultat que vous avec :"
 
 #. type: example
-#: doc/guix.texi:9876
+#: doc/guix.texi:12504
 #, no-wrap
 msgid "$ guix challenge @var{package}\n"
 msgstr "$ guix challenge @var{paquet}\n"
 
 #. type: Plain text
-#: doc/guix.texi:9881
+#: doc/guix.texi:12509
 msgid "where @var{package} is a package specification such as @code{guile@@2.0} or @code{glibc:debug}."
 msgstr "où @var{paquet} est une spécification de paquet comme @code{guile@@2.0} ou @code{glibc:debug}."
 
 #. type: example
-#: doc/guix.texi:9886
+#: doc/guix.texi:12514
 #, no-wrap
 msgid "guix challenge @var{options} [@var{packages}@dots{}]\n"
 msgstr "guix challenge @var{options} [@var{paquets}@dots{}]\n"
 
 #. type: Plain text
-#: doc/guix.texi:9893
-msgid "When a difference is found between the hash of a locally-built item and that of a server-provided substitute, or among substitutes provided by different servers, the command displays it as in the example above and its exit code is 2 (other non-zero exit codes denote other kinds of errors.)"
-msgstr "Lorsqu'une différence est trouvée entre l'empreinte d'un élément construit localement et celle d'un substitut fournit par un serveur, ou parmi les substituts fournis par différents serveurs, la commande l'affiche comme dans l'exemple ci-dessus et sa valeur de sortie est 2 (les autres valeurs différentes de 0 indiquent d'autres sortes d'erreurs)."
+#: doc/guix.texi:12521
+msgid "When a difference is found between the hash of a locally-built item and that of a server-provided substitute, or among substitutes provided by different servers, the command displays it as in the example above and its exit code is 2 (other non-zero exit codes denote other kinds of errors)."
+msgstr "Lorsqu'une différence est trouvée entre l'empreinte d'un élément construit localement et celle d'un substitut fourni par un serveur, ou parmi les substituts fournis par différents serveurs, la commande l'affiche comme dans l'exemple ci-dessus et sa valeur de sortie est 2 (les autres valeurs différentes de 0 indiquent d'autres sortes d'erreurs)."
 
 #. type: Plain text
-#: doc/guix.texi:9895
+#: doc/guix.texi:12523
 msgid "The one option that matters is:"
 msgstr "L'option qui compte est :"
 
 #. type: table
-#: doc/guix.texi:9901
+#: doc/guix.texi:12529
 msgid "Consider @var{urls} the whitespace-separated list of substitute source URLs to compare to."
 msgstr "Considère @var{urls} comme la liste des URL des sources de substituts séparés par des espaces avec lesquels comparer les paquets locaux."
 
+#. type: item
+#: doc/guix.texi:12530
+#, no-wrap
+msgid "--diff=@var{mode}"
+msgstr "--diff=@var{mode}"
+
+#. type: table
+#: doc/guix.texi:12532
+msgid "Upon mismatches, show differences according to @var{mode}, one of:"
+msgstr "En cas d'inadéquation, montre les différences en fonction de @var{mode}, l'un des :"
+
+#. type: item
+#: doc/guix.texi:12534
+#, no-wrap
+msgid "@code{simple} (the default)"
+msgstr "@code{simple} (par défaut)"
+
+#. type: table
+#: doc/guix.texi:12536
+msgid "Show the list of files that differ."
+msgstr "Montrer la liste des fichiers qui diffèrent."
+
+#. type: code{#1}
+#: doc/guix.texi:12537
+#, no-wrap
+msgid "diffoscope"
+msgstr "diffoscope"
+
+#. type: var{#1}
+#: doc/guix.texi:12538
+#, no-wrap
+msgid "command"
+msgstr "commande"
+
+#. type: table
+#: doc/guix.texi:12541
+msgid "Invoke @uref{https://diffoscope.org/, Diffoscope}, passing it two directories whose contents do not match."
+msgstr "Invoque @uref{https://diffoscope.org/, Diffoscope}, en lui passant deux répertoires dont le contenu ne correspond pas."
+
+#. type: table
+#: doc/guix.texi:12544
+msgid "When @var{command} is an absolute file name, run @var{command} instead of Diffoscope."
+msgstr "Quand @var{command} est un nom de fichier absolu, lancez @var{command} au lieu de Diffoscope."
+
+#. type: item
+#: doc/guix.texi:12545 doc/guix.texi:15731 doc/guix.texi:17485
+#, no-wrap
+msgid "none"
+msgstr "none"
+
+#. type: table
+#: doc/guix.texi:12547
+msgid "Do not show further details about the differences."
+msgstr "Ne donnez pas plus de détails sur les différences."
+
+#. type: table
+#: doc/guix.texi:12552
+msgid "Thus, unless @option{--diff=none} is passed, @command{guix challenge} downloads the store items from the given substitute servers so that it can compare them."
+msgstr "Ainsi, à moins que l'option @option{--diff=none} ne soit passée, @command{guix challenge} télécharge les éléments du store à partir des serveurs de substitut donnés afin de pouvoir les comparer."
+
+#. type: item
+#: doc/guix.texi:12553
+#, no-wrap
+msgid "--verbose"
+msgstr "--verbose"
+
 #. type: itemx
-#: doc/guix.texi:9903
+#: doc/guix.texi:12554
 #, no-wrap
 msgid "-v"
 msgstr "-v"
 
 #. type: table
-#: doc/guix.texi:9906
+#: doc/guix.texi:12557
 msgid "Show details about matches (identical contents) in addition to information about mismatches."
 msgstr "Montre des détails sur les correspondances (contenu identique) en plus des informations sur différences."
 
 #. type: section
-#: doc/guix.texi:9910
+#: doc/guix.texi:12561
 #, no-wrap
 msgid "Invoking @command{guix copy}"
 msgstr "Invoquer @command{guix copy}"
 
 #. type: cindex
-#: doc/guix.texi:9912
+#: doc/guix.texi:12563
 #, no-wrap
 msgid "copy, of store items, over SSH"
 msgstr "copier des éléments du dépôt par SSH"
 
 #. type: cindex
-#: doc/guix.texi:9913
+#: doc/guix.texi:12564
 #, no-wrap
 msgid "SSH, copy of store items"
 msgstr "SSH, copie d'éléments du dépôt"
 
 #. type: cindex
-#: doc/guix.texi:9914
+#: doc/guix.texi:12565
 #, no-wrap
 msgid "sharing store items across machines"
 msgstr "partager des éléments du dépôt entre plusieurs machines"
 
 #. type: cindex
-#: doc/guix.texi:9915
+#: doc/guix.texi:12566
 #, no-wrap
 msgid "transferring store items across machines"
 msgstr "transférer des éléments du dépôt entre plusieurs machines"
 
 #. type: Plain text
-#: doc/guix.texi:9922
+#: doc/guix.texi:12573
 msgid "The @command{guix copy} command copies items from the store of one machine to that of another machine over a secure shell (SSH)  connection@footnote{This command is available only when Guile-SSH was found.  @xref{Requirements}, for details.}.  For example, the following command copies the @code{coreutils} package, the user's profile, and all their dependencies over to @var{host}, logged in as @var{user}:"
 msgstr "La commande @command{guix copy} copie des éléments du dépôt d'une machine vers le dépôt d'une autre machine à travers une connexion SSH@footnote{Cette commande n'est disponible que si Guile-SSH est trouvé.  @xref{Requirements},  pour des détails}.  Par exemple, la commande suivante copie le paquet @code{coreutils}, le profil utilisateur et toutes leurs dépendances sur @var{hôte}, en tant qu'utilisateur @var{utilisateur} :"
 
 #. type: example
-#: doc/guix.texi:9926
+#: doc/guix.texi:12577
 #, no-wrap
 msgid ""
 "guix copy --to=@var{user}@@@var{host} \\\n"
@@ -18045,192 +22867,192 @@ msgstr ""
 "          coreutils `readlink -f ~/.guix-profile`\n"
 
 #. type: Plain text
-#: doc/guix.texi:9930
+#: doc/guix.texi:12581
 msgid "If some of the items to be copied are already present on @var{host}, they are not actually sent."
 msgstr "Si certains éléments à copier sont déjà présents sur @var{hôte}, ils ne sont pas envoyés."
 
 #. type: Plain text
-#: doc/guix.texi:9933
+#: doc/guix.texi:12584
 msgid "The command below retrieves @code{libreoffice} and @code{gimp} from @var{host}, assuming they are available there:"
 msgstr "La commande ci-dessous récupère @code{libreoffice} et @code{gimp} depuis @var{hôte}, en supposant qu'ils y sont présents :"
 
 #. type: example
-#: doc/guix.texi:9936
+#: doc/guix.texi:12587
 #, no-wrap
 msgid "guix copy --from=@var{host} libreoffice gimp\n"
 msgstr "guix copy --from=@var{hôte} libreoffice gimp\n"
 
 #. type: Plain text
-#: doc/guix.texi:9941
+#: doc/guix.texi:12592
 msgid "The SSH connection is established using the Guile-SSH client, which is compatible with OpenSSH: it honors @file{~/.ssh/known_hosts} and @file{~/.ssh/config}, and uses the SSH agent for authentication."
 msgstr "La connexion SSH est établie avec le client Guile-SSH, qui set compatible avec OpenSSH : il honore @file{~/.ssh/known_hosts} et @file{~/.ssh/config} et utilise l'agent SSH pour l'authentification."
 
 #. type: Plain text
-#: doc/guix.texi:9947
+#: doc/guix.texi:12598
 msgid "The key used to sign items that are sent must be accepted by the remote machine.  Likewise, the key used by the remote machine to sign items you are retrieving must be in @file{/etc/guix/acl} so it is accepted by your own daemon.  @xref{Invoking guix archive}, for more information about store item authentication."
 msgstr "La clef utilisée pour signer les éléments qui sont envoyés doit être acceptée par la machine distante.  De même, la clef utilisée pour la machine distante depuis laquelle vous récupérez des éléments doit être dans @file{/etc/guix/acl} pour qu'ils soient acceptés par votre propre démon.  @xref{Invoking guix archive}, pour plus d'informations sur l'authentification des éléments du dépôt."
 
 #. type: example
-#: doc/guix.texi:9952
+#: doc/guix.texi:12603
 #, no-wrap
 msgid "guix copy [--to=@var{spec}|--from=@var{spec}] @var{items}@dots{}\n"
 msgstr "guix copy [--to=@var{spec}|--from=@var{spec}] @var{items}@dots{}\n"
 
 #. type: Plain text
-#: doc/guix.texi:9955
+#: doc/guix.texi:12606
 msgid "You must always specify one of the following options:"
 msgstr "Vous devez toujours spécifier l'une des options suivantes :"
 
 #. type: item
-#: doc/guix.texi:9957
+#: doc/guix.texi:12608
 #, no-wrap
 msgid "--to=@var{spec}"
 msgstr "--to=@var{spec}"
 
 #. type: itemx
-#: doc/guix.texi:9958
+#: doc/guix.texi:12609
 #, no-wrap
 msgid "--from=@var{spec}"
 msgstr "--from=@var{spec}"
 
 #. type: table
-#: doc/guix.texi:9962
+#: doc/guix.texi:12613
 msgid "Specify the host to send to or receive from.  @var{spec} must be an SSH spec such as @code{example.org}, @code{charlie@@example.org}, or @code{charlie@@example.org:2222}."
 msgstr "Spécifie l'hôte où envoyer ou d'où recevoir les éléments.  @var{spec} doit être une spécification SSH comme @code{example.org}, @code{charlie@@example.org} ou @code{charlie@@example.org:2222}."
 
 #. type: Plain text
-#: doc/guix.texi:9966
+#: doc/guix.texi:12617
 msgid "The @var{items} can be either package names, such as @code{gimp}, or store items, such as @file{/gnu/store/@dots{}-idutils-4.6}."
 msgstr "L'option @var{items} peut être des noms de paquets, comme @code{gimp} ou des éléments du dépôt comme @file{/gnu/store/@dots{}-idutils-4.6}."
 
 #. type: Plain text
-#: doc/guix.texi:9970
+#: doc/guix.texi:12621
 msgid "When specifying the name of a package to send, it is first built if needed, unless @option{--dry-run} was specified.  Common build options are supported (@pxref{Common Build Options})."
 msgstr "Lorsque vous spécifiez le nom d'un paquet à envoyer, il est d'abord construit au besoin, sauf si l'option @option{--dry-run} est spécifiée.  Les options de construction communes sont supportées (@pxref{Common Build Options})."
 
 #. type: section
-#: doc/guix.texi:9973
+#: doc/guix.texi:12624
 #, no-wrap
 msgid "Invoking @command{guix container}"
 msgstr "Invoquer @command{guix container}"
 
 #. type: command{#1}
-#: doc/guix.texi:9975
+#: doc/guix.texi:12626
 #, no-wrap
 msgid "guix container"
 msgstr "guix container"
 
 #. type: quotation
-#: doc/guix.texi:9979
+#: doc/guix.texi:12630
 msgid "As of version @value{VERSION}, this tool is experimental.  The interface is subject to radical change in the future."
 msgstr "À la version @value{VERSION}, cet outil est toujours expérimental.  L'interface est sujette à changement radicaux dans le futur."
 
 #. type: Plain text
-#: doc/guix.texi:9986
+#: doc/guix.texi:12637
 msgid "The purpose of @command{guix container} is to manipulate processes running within an isolated environment, commonly known as a ``container'', typically created by the @command{guix environment} (@pxref{Invoking guix environment}) and @command{guix system container} (@pxref{Invoking guix system}) commands."
 msgstr "Le but de @command{guix container} est de manipuler des processus qui tournent dans un environnement séparé, connus sous le nom de « conteneur », typiquement créés par les commandes @command{guix environment} (@pxref{Invoking guix environment}) et @command{guix system container} (@pxref{Invoking guix system})."
 
 #. type: example
-#: doc/guix.texi:9991
+#: doc/guix.texi:12642
 #, no-wrap
 msgid "guix container @var{action} @var{options}@dots{}\n"
 msgstr "guix container @var{action} @var{options}@dots{}\n"
 
 #. type: Plain text
-#: doc/guix.texi:9995
+#: doc/guix.texi:12646
 msgid "@var{action} specifies the operation to perform with a container, and @var{options} specifies the context-specific arguments for the action."
 msgstr "@var{action} spécifie les opérations à effectuer avec un conteneur, et @var{options} spécifie les arguments spécifiques au contexte pour l'action."
 
 #. type: Plain text
-#: doc/guix.texi:9997
+#: doc/guix.texi:12648
 msgid "The following actions are available:"
 msgstr "Les actions suivantes sont disponibles :"
 
 #. type: item
-#: doc/guix.texi:9999
+#: doc/guix.texi:12650
 #, no-wrap
 msgid "exec"
 msgstr "exec"
 
 #. type: table
-#: doc/guix.texi:10001
+#: doc/guix.texi:12652
 msgid "Execute a command within the context of a running container."
 msgstr "Exécute une commande dans le contexte d'un conteneur lancé."
 
 #. type: table
-#: doc/guix.texi:10003
+#: doc/guix.texi:12654
 msgid "The syntax is:"
 msgstr "La syntaxe est :"
 
 #. type: example
-#: doc/guix.texi:10006
+#: doc/guix.texi:12657
 #, no-wrap
 msgid "guix container exec @var{pid} @var{program} @var{arguments}@dots{}\n"
 msgstr "guix container exec @var{pid} @var{programme} @var{arguments}@dots{}\n"
 
 #. type: table
-#: doc/guix.texi:10012
+#: doc/guix.texi:12663
 msgid "@var{pid} specifies the process ID of the running container.  @var{program} specifies an executable file name within the root file system of the container.  @var{arguments} are the additional options that will be passed to @var{program}."
 msgstr "@var{pid} spécifie le PID du conteneur lancé.  @var{programme} spécifie le nom du fichier exécutable dans le système de fichiers racine du conteneur.  @var{arguments} sont les options supplémentaires à passer à @var{programme}."
 
 #. type: table
-#: doc/guix.texi:10016
+#: doc/guix.texi:12667
 msgid "The following command launches an interactive login shell inside a Guix system container, started by @command{guix system container}, and whose process ID is 9001:"
 msgstr "La commande suivante lance un shell de connexion interactif dans un conteneur Guix System, démarré par @command{guix system container} et dont le PID est 9001 :"
 
 #. type: example
-#: doc/guix.texi:10019
+#: doc/guix.texi:12670
 #, no-wrap
 msgid "guix container exec 9001 /run/current-system/profile/bin/bash --login\n"
 msgstr "guix container exec 9001 /run/current-system/profile/bin/bash --login\n"
 
 #. type: table
-#: doc/guix.texi:10023
+#: doc/guix.texi:12674
 msgid "Note that the @var{pid} cannot be the parent process of a container.  It must be PID 1 of the container or one of its child processes."
 msgstr "Remarquez que @var{pid} ne peut pas être le processus parent d'un conteneur.  Ce doit être le PID 1 du conteneur ou l'un de ses processus fils."
 
 #. type: section
-#: doc/guix.texi:10027
+#: doc/guix.texi:12678
 #, no-wrap
 msgid "Invoking @command{guix weather}"
 msgstr "Invoquer @command{guix weather}"
 
 #. type: Plain text
-#: doc/guix.texi:10036
+#: doc/guix.texi:12687
 msgid "Occasionally you're grumpy because substitutes are lacking and you end up building packages by yourself (@pxref{Substitutes}).  The @command{guix weather} command reports on substitute availability on the specified servers so you can have an idea of whether you'll be grumpy today.  It can sometimes be useful info as a user, but it is primarily useful to people running @command{guix publish} (@pxref{Invoking guix publish})."
 msgstr "Vous pouvez parfois grogner lorsque les substituts ne sont pas disponibles et que vous devez construire les paquets vous-même (@pxref{Substituts}). La commande @command{guix weather} rapporte la disponibilité des substituts sur les serveurs spécifiés pour que vous sachiez si vous allez raller aujourd'hui. Cela peut parfois être une information utile pour les utilisateurs, mais elle est surtout utile pour les personnes qui font tourner @command{guix publish} (@pxref{Invoking guix publish})."
 
 #. type: cindex
-#: doc/guix.texi:10037
+#: doc/guix.texi:12688
 #, no-wrap
 msgid "statistics, for substitutes"
 msgstr "statistiques sur les substituts"
 
 #. type: cindex
-#: doc/guix.texi:10038
+#: doc/guix.texi:12689
 #, no-wrap
 msgid "availability of substitutes"
 msgstr "disponibilité des substituts"
 
 #. type: cindex
-#: doc/guix.texi:10039
+#: doc/guix.texi:12690
 #, no-wrap
 msgid "substitute availability"
 msgstr "substituts, disponibilité"
 
 #. type: cindex
-#: doc/guix.texi:10040
+#: doc/guix.texi:12691
 #, no-wrap
 msgid "weather, substitute availability"
 msgstr "weather, disponibilité des substituts"
 
 #. type: Plain text
-#: doc/guix.texi:10042
+#: doc/guix.texi:12693
 msgid "Here's a sample run:"
 msgstr "Voici un exemple :"
 
 #. type: example
-#: doc/guix.texi:10054
+#: doc/guix.texi:12705
 #, no-wrap
 msgid ""
 "$ guix weather --substitute-urls=https://guix.example.org\n"
@@ -18258,7 +23080,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:10064
+#: doc/guix.texi:12715
 #, no-wrap
 msgid ""
 "  9.8% (342 out of 3,470) of the missing items are queued\n"
@@ -18282,60 +23104,76 @@ msgstr ""
 "      aarch64-linux : 6.41 constructions par heure\n"
 
 #. type: cindex
-#: doc/guix.texi:10066
+#: doc/guix.texi:12717
 #, no-wrap
 msgid "continuous integration, statistics"
 msgstr "intégration continue, statistiques"
 
 #. type: Plain text
-#: doc/guix.texi:10077
+#: doc/guix.texi:12728
 msgid "As you can see, it reports the fraction of all the packages for which substitutes are available on the server---regardless of whether substitutes are enabled, and regardless of whether this server's signing key is authorized.  It also reports the size of the compressed archives (``nars'') provided by the server, the size the corresponding store items occupy in the store (assuming deduplication is turned off), and the server's throughput.  The second part gives continuous integration (CI) statistics, if the server supports it.  In addition, using the @option{--coverage} option, @command{guix weather} can list ``important'' package substitutes missing on the server (see below)."
 msgstr "Comme vous pouvez le voir, elle rapporte le pourcentage des paquets pour lesquels des substituts sont disponibles sur le serveur — indépendamment du fait que les substituts soient activés, et indépendamment du fait que la clef de signature du serveur soit autorisée.  Elle rapporte aussi la taille des archives compressées (« nars ») fournies par le serveur, la taille des éléments du dépôt correspondant dans le dépôt (en supposant que la déduplication soit désactivée) et la vitesse du serveur.  La deuxième partie donne des statistiques sur l'intégration continue (CI), si le serveur le supporte.  En plus, avec l'option @option{--coverage}, @command{guix weather} peut lister les substituts de paquets « importants » qui font défaut sur le serveur (voir plus bas)."
 
 #. type: Plain text
-#: doc/guix.texi:10083
+#: doc/guix.texi:12734
 msgid "To achieve that, @command{guix weather} queries over HTTP(S) meta-data (@dfn{narinfos}) for all the relevant store items.  Like @command{guix challenge}, it ignores signatures on those substitutes, which is innocuous since the command only gathers statistics and cannot install those substitutes."
 msgstr "Pour cela, @command{guix weather} récupère par HTTP(S) les métadonnées (@dfn{narinfos}@ de tous les éléments du dépôts pertinents.  Comme @command{guix challenge}, il ignore les signatures de ces substituts, ce qui n'est pas dangereux puisque la commande ne fait que récupérer des statistiques et n'installe pas ces substituts."
 
+#. type: example
+#: doc/guix.texi:12739
+#, no-wrap
+msgid "guix weather @var{options}@dots{} [@var{packages}@dots{}]\n"
+msgstr "guix weather @var{options}@dots{} [@var{paquets}@dots{}]\n"
+
 #. type: Plain text
-#: doc/guix.texi:10086
-msgid "Among other things, it is possible to query specific system types and specific package sets.  The available options are listed below."
-msgstr "Entre autres choses, il est possible de demander des types de système particuliers et des ensembles de paquets particuliers.  Les options disponibles sont listées plus bas."
+#: doc/guix.texi:12747
+msgid "When @var{packages} is omitted, @command{guix weather} checks the availability of substitutes for @emph{all} the packages, or for those specified with @option{--manifest}; otherwise it only considers the specified packages.  It is also possible to query specific system types with @option{--system}.  @command{guix weather} exits with a non-zero code when the fraction of available substitutes is below 100%."
+msgstr "Lorsque @var{packages} est omis, @command{guix weather} vérifie la disponibilité de substituts pour @emph{all} les paquets, ou pour ceux spécifiés avec @option{--manifest} ; sinon, il ne prend en compte que les paquets spécifiés.  Il est également possible d'interroger des types de systèmes spécifiques avec @option{--system}.  @command{guix weather} sort avec un code non nul lorsque la fraction des substituts disponibles est inférieure à 100%."
+
+#. type: Plain text
+#: doc/guix.texi:12749
+msgid "The available options are listed below."
+msgstr "Les options disponibles sont listées ci-dessous."
 
 #. type: table
-#: doc/guix.texi:10092
+#: doc/guix.texi:12755
 msgid "@var{urls} is the space-separated list of substitute server URLs to query.  When this option is omitted, the default set of substitute servers is queried."
 msgstr "@var{urls} est la liste des URL des serveurs de substituts séparés par des espaces.  Lorsque cette option n'est pas renseignée, l'ensemble des serveurs de substituts par défaut est utilisé."
 
 #. type: table
-#: doc/guix.texi:10098
+#: doc/guix.texi:12761
 msgid "Query substitutes for @var{system}---e.g., @code{aarch64-linux}.  This option can be repeated, in which case @command{guix weather} will query substitutes for several system types."
 msgstr "Effectue des requêtes pour les substituts @var{système} — p.@: ex.@: @code{aarch64-linux}.  Cette option peut être répétée, auquel cas @command{guix weather} demandera les substituts de plusieurs types de systèmes."
 
 #. type: table
-#: doc/guix.texi:10104
+#: doc/guix.texi:12767
 msgid "Instead of querying substitutes for all the packages, only ask for those specified in @var{file}.  @var{file} must contain a @dfn{manifest}, as with the @code{-m} option of @command{guix package} (@pxref{Invoking guix package})."
 msgstr "Plutôt que de demander des substituts pour tous les paquets, demande uniquement les paquets spécifiés dans @var{fichier}.  @var{fichier} doit contenir un @dfn{manifeste} comme avec l'option @code{-m} de @command{guix package} (@pxref{Invoking guix package})."
 
+#. type: table
+#: doc/guix.texi:12770
+msgid "This option can be repeated several times, in which case the manifests are concatenated."
+msgstr "Cette option peut être répétée plusieurs fois, auquel cas les manifestes sont concaténés."
+
 #. type: item
-#: doc/guix.texi:10105
+#: doc/guix.texi:12771
 #, no-wrap
 msgid "--coverage[=@var{count}]"
 msgstr "--coverage[=@var{count}]"
 
 #. type: itemx
-#: doc/guix.texi:10106
+#: doc/guix.texi:12772
 #, no-wrap
 msgid "-c [@var{count}]"
 msgstr "-c [@var{count}]"
 
 #. type: table
-#: doc/guix.texi:10112
+#: doc/guix.texi:12778
 msgid "Report on substitute coverage for packages: list packages with at least @var{count} dependents (zero by default) for which substitutes are unavailable.  Dependent packages themselves are not listed: if @var{b} depends on @var{a} and @var{a} has no substitutes, only @var{a} is listed, even though @var{b} usually lacks substitutes as well.  The result looks like this:"
 msgstr "Rapporte la couverture des substituts pour les paquets : liste les paquets avec au moins @var{count} autres paquets qui en dépendent (zéro par défaut) pour lesquels il n'y a pas de substitut.  Les paquets qui en dépendent ne sont pas listés : si @var{b} dépend de @var{a} et que @var{a} n'a pas de substitut, seul @var{a} est listé, même si @var{b} n'a habituellement pas de substitut non plus.  Le résultat ressemble à cela :"
 
 #. type: example
-#: doc/guix.texi:10126
+#: doc/guix.texi:12792
 #, no-wrap
 msgid ""
 "$ guix weather --substitute-urls=@value{SUBSTITUTE-URL} -c 10\n"
@@ -18365,28 +23203,39 @@ msgstr ""
 "    @dots{}\n"
 
 #. type: table
-#: doc/guix.texi:10131
+#: doc/guix.texi:12797
 msgid "What this example shows is that @code{kcoreaddons} and presumably the 58 packages that depend on it have no substitutes at @code{ci.guix.info}; likewise for @code{qgpgme} and the 46 packages that depend on it."
 msgstr "Ce que montre cet exemple est que @code{kcoreaddons} et probablement les 58 paquets qui en dépendent n'ont pas de substituts sur @code{ci.guix.info} ; de même pour @code{qgpgme} et les 46 paquets qui en dépendent."
 
 #. type: table
-#: doc/guix.texi:10135
+#: doc/guix.texi:12801
 msgid "If you are a Guix developer, or if you are taking care of this build farm, you'll probably want to have a closer look at these packages: they may simply fail to build."
 msgstr "Si vous êtes un développeur de Guix, ou si vous prenez soin de cette ferme de construction, vous voudrez sans doute inspecter plus finement ces paquets : ils peuvent simplement avoir échoué à la construction."
 
+#. type: item
+#: doc/guix.texi:12802
+#, no-wrap
+msgid "--display-missing"
+msgstr "--display-missing"
+
+#. type: table
+#: doc/guix.texi:12804
+msgid "Display the list of store items for which substitutes are missing."
+msgstr "Afficher la liste des articles du magasin pour lesquels il manque des substituts."
+
 #. type: section
-#: doc/guix.texi:10138
+#: doc/guix.texi:12807
 #, no-wrap
 msgid "Invoking @command{guix processes}"
 msgstr "Invoquer @command{guix processes}"
 
 #. type: Plain text
-#: doc/guix.texi:10146
+#: doc/guix.texi:12815
 msgid "The @command{guix processes} command can be useful to developers and system administrators, especially on multi-user machines and on build farms: it lists the current sessions (connections to the daemon), as well as information about the processes involved@footnote{Remote sessions, when @command{guix-daemon} is started with @option{--listen} specifying a TCP endpoint, are @emph{not} listed.}.  Here's an example of the information it returns:"
 msgstr "La commande @command{guix processes} peut être utile pour les développeur·euse·s ou les personnes qui administrent des systèmes, surtout sur des machines multi-utilisateur·rice et sur les fermes de construction : elle liste les sessions actuelles (les connexions au démon), ainsi que des informations sur les processus en question@footnote{Les sessions distantes, lorsque @command{guix-daemon} est démarré avec @option{--listen} en spécifiant un point d'entrée TCP, ne sont @emph{pas} listées.}.  Voici un exemple des informations qu'elle renvoie :"
 
 #. type: example
-#: doc/guix.texi:10152
+#: doc/guix.texi:12821
 #, no-wrap
 msgid ""
 "$ sudo guix processes\n"
@@ -18402,7 +23251,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:10156
+#: doc/guix.texi:12825
 #, no-wrap
 msgid ""
 "SessionPID: 19402\n"
@@ -18416,7 +23265,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:10166
+#: doc/guix.texi:12835
 #, no-wrap
 msgid ""
 "SessionPID: 19444\n"
@@ -18440,22 +23289,22 @@ msgstr ""
 "ChildProcess: 27793: guix offload x86_64-linux 7200 1 28800\n"
 
 #. type: Plain text
-#: doc/guix.texi:10173
+#: doc/guix.texi:12842
 msgid "In this example we see that @command{guix-daemon} has three clients: @command{guix environment}, @command{guix publish}, and the Cuirass continuous integration tool; their process identifier (PID) is given by the @code{ClientPID} field.  The @code{SessionPID} field gives the PID of the @command{guix-daemon} sub-process of this particular session."
 msgstr "Dans cet exemple, on voit que @command{guix-daemon} a trois clients directs : @command{guix environment}, @command{guix publish} et l'outil d'intégration continue Cuirass ; leur identifiant de processus (PID) est donné par le champ @code{ClientPID}.  Le champ @code{SessionPID} fournit le PID du sous-processus @command{guix-daemon} de cette session particulière."
 
 #. type: Plain text
-#: doc/guix.texi:10180
-msgid "The @code{LockHeld} fields show which store items are currently locked by this session, which corresponds to store items being built or substituted (the @code{LockHeld} field is not displayed when @command{guix processes} is not running as root.)  Last, by looking at the @code{ChildProcess} field, we understand that these three builds are being offloaded (@pxref{Daemon Offload Setup})."
-msgstr "Les champs @code{LockHeld} montrent quels éléments du dépôt sont actuellement verrouillés par cette session, ce qui correspond aux éléments du dépôt qui sont en train d'être construits ou d'être substitués (le champ @code{LockHeld} n'est pas montré si @command{guix processes} n'est pas lancé en root).  Enfin, en regardant le champ @code{ChildProcess}, on comprend que ces trois constructions sont déchargées (@pxref{Daemon Offload Setup})."
+#: doc/guix.texi:12849
+msgid "The @code{LockHeld} fields show which store items are currently locked by this session, which corresponds to store items being built or substituted (the @code{LockHeld} field is not displayed when @command{guix processes} is not running as root).  Last, by looking at the @code{ChildProcess} field, we understand that these three builds are being offloaded (@pxref{Daemon Offload Setup})."
+msgstr "Le champs @code{LockHeld} montre quels éléments du dépôt sont actuellement verrouillés par cette session, ce qui correspond aux éléments du dépôt qui sont en train d'être construits ou d'être substitués (le champ @code{LockHeld} n'est pas montré si @command{guix processes} n'est pas lancé en root).  Enfin, en regardant le champ @code{ChildProcess}, on comprend que ces trois constructions sont déchargées (@pxref{Daemon Offload Setup})."
 
 #. type: Plain text
-#: doc/guix.texi:10185
+#: doc/guix.texi:12854
 msgid "The output is in Recutils format so we can use the handy @command{recsel} command to select sessions of interest (@pxref{Selection Expressions,,, recutils, GNU recutils manual}).  As an example, the command shows the command line and PID of the client that triggered the build of a Perl package:"
 msgstr "La sortie est dans le format Recutils pour qu'on puisse utiliser la commande @command{recsel} pour sélectionner les sessions qui nous intéressent (@pxref{Selection Expressions,,, recutils, GNU recutils manual}).  Par exemple, la commande montre la ligne de commande et le PID du client qui effectue la construction d'un paquet Perl :"
 
 #. type: example
-#: doc/guix.texi:10191
+#: doc/guix.texi:12860
 #, no-wrap
 msgid ""
 "$ sudo guix processes | \\\n"
@@ -18469,90 +23318,90 @@ msgstr ""
 "ClientCommand: cuirass --cache-directory /var/cache/cuirass @dots{}\n"
 
 #. type: cindex
-#: doc/guix.texi:10197
+#: doc/guix.texi:12865
 #, no-wrap
 msgid "system configuration"
 msgstr "configuration du système"
 
 #. type: Plain text
-#: doc/guix.texi:10203
+#: doc/guix.texi:12871
 msgid "Guix System supports a consistent whole-system configuration mechanism.  By that we mean that all aspects of the global system configuration---such as the available system services, timezone and locale settings, user accounts---are declared in a single place.  Such a @dfn{system configuration} can be @dfn{instantiated}---i.e., effected."
 msgstr "Guix System utilise un mécanisme de configuration du système cohérent.  On veut dire par là que tous les aspects de la configuration globale du système — comme la disponibilité des services système, la configuration des fuseaux horaires, des paramètres linguistiques et des comptes utilisateurs — sont déclarés à un seul endroit.  Une telle @dfn{configuration système} peut être @dfn{instanciée}, c'est-à-dire entrer en vigueur."
 
 #. type: Plain text
-#: doc/guix.texi:10213
+#: doc/guix.texi:12881
 msgid "One of the advantages of putting all the system configuration under the control of Guix is that it supports transactional system upgrades, and makes it possible to roll back to a previous system instantiation, should something go wrong with the new one (@pxref{Features}).  Another advantage is that it makes it easy to replicate the exact same configuration across different machines, or at different points in time, without having to resort to additional administration tools layered on top of the own tools of the system."
 msgstr "L'un des avantages de placer toute la configuration du système sous le contrôle de Guix est de permettre les mises à jour transactionnelles du système ce qui rend possible le fait de revenir en arrière à une instanciation précédent du système, si quelque chose se passait mal avec le nouveau (@pxref{Features}).  Un autre avantage est de rendre facile la réplication de la même configuration sur plusieurs machines différentes ou à différents moments dans le temps, sans avoir à recourir à des outils d'administrations supplémentaires au-dessus des outils du système."
 
 #. type: Plain text
-#: doc/guix.texi:10218
+#: doc/guix.texi:12886
 msgid "This section describes this mechanism.  First we focus on the system administrator's viewpoint---explaining how the system is configured and instantiated.  Then we show how this mechanism can be extended, for instance to support new system services."
 msgstr "Cette section décrit ce mécanisme.  Tout d'abord nous nous concentrons sur le point de vue de l'administrateur système en expliquant comment le système est configuré et instancié.  Ensuite nous montrons comment ce mécanisme peut être étendu, par exemple pour supporter de nouveaux services systèmes."
 
 #. type: Plain text
-#: doc/guix.texi:10246
+#: doc/guix.texi:12915
 msgid "The operating system is configured by providing an @code{operating-system} declaration in a file that can then be passed to the @command{guix system} command (@pxref{Invoking guix system}).  A simple setup, with the default system services, the default Linux-Libre kernel, initial RAM disk, and boot loader looks like this:"
 msgstr "Le système d'exploitation est configuré en fournissant une déclaration @code{operating-system} dans un fichier qui peut être passé à la command @command{guix system} (@pxref{Invoking guix system}).  Une configuration simple, avec les services systèmes par défaut, le noyau Linux-Libre par défaut, un disque de RAM initial et un chargeur d'amorçage ressemble à ceci :"
 
-#. type: findex
-#: doc/guix.texi:10247
+#. type: code{#1}
+#: doc/guix.texi:12916 doc/guix.texi:31303
 #, no-wrap
 msgid "operating-system"
 msgstr "operating-system"
 
 #. type: include
-#: doc/guix.texi:10249
+#: doc/guix.texi:12918
 #, no-wrap
 msgid "os-config-bare-bones.texi"
 msgstr "os-config-bare-bones.texi"
 
 #. type: Plain text
-#: doc/guix.texi:10256
+#: doc/guix.texi:12925
 msgid "This example should be self-describing.  Some of the fields defined above, such as @code{host-name} and @code{bootloader}, are mandatory.  Others, such as @code{packages} and @code{services}, can be omitted, in which case they get a default value."
 msgstr "Cet exemple devrait se comprendre de lui-même.  Certains champs définis ci-dessus, comme @code{host-name} et @code{bootloader} sont obligatoires.  D'autres comme @code{packages} et @code{services} peuvent être omis auquel cas ils ont une valeur par défaut."
 
 #. type: Plain text
-#: doc/guix.texi:10261
+#: doc/guix.texi:12930
 msgid "Below we discuss the effect of some of the most important fields (@pxref{operating-system Reference}, for details about all the available fields), and how to @dfn{instantiate} the operating system using @command{guix system}."
 msgstr "Ci-dessous nous discutons des effets de certains des champs les plus importants (@pxref{operating-system Reference}, pour des détails sur tous les champs disponibles) et comment @dfn{instancier} le système d'exploitation avec @command{guix system}."
 
 #. type: unnumberedsubsec
-#: doc/guix.texi:10262
+#: doc/guix.texi:12931
 #, no-wrap
 msgid "Bootloader"
 msgstr "Bootloader"
 
 #. type: cindex
-#: doc/guix.texi:10264
+#: doc/guix.texi:12933
 #, no-wrap
 msgid "legacy boot, on Intel machines"
 msgstr "ancien système de démarrage, sur les machines Intel"
 
 #. type: cindex
-#: doc/guix.texi:10265
+#: doc/guix.texi:12934
 #, no-wrap
 msgid "BIOS boot, on Intel machines"
-msgstr "démarrage BIOS, sur les machines Intel"
+msgstr "Démarrage BIOS, sur les machines Intel"
 
 #. type: cindex
-#: doc/guix.texi:10266
+#: doc/guix.texi:12935
 #, no-wrap
 msgid "UEFI boot"
-msgstr "démarrage UEFI"
+msgstr "Démarrage UEFI"
 
 #. type: cindex
-#: doc/guix.texi:10267
+#: doc/guix.texi:12936
 #, no-wrap
 msgid "EFI boot"
-msgstr "démarrage EFI"
+msgstr "Démarrage EFI"
 
 #. type: Plain text
-#: doc/guix.texi:10273
+#: doc/guix.texi:12942
 msgid "The @code{bootloader} field describes the method that will be used to boot your system.  Machines based on Intel processors can boot in ``legacy'' BIOS mode, as in the example above.  However, more recent machines rely instead on the @dfn{Unified Extensible Firmware Interface} (UEFI) to boot.  In that case, the @code{bootloader} field should contain something along these lines:"
 msgstr "Le champ @code{bootloader} décrit la méthode qui sera utilisée pour démarrer votre système.  Les machines basées sur les processeurs Intel peuvent démarrer dans l'ancien mode BIOS, comme dans l'exemple au-dessus.  Cependant, les machines plus récentes s'appuient sur l'UEFI (@dfn{Unified Extensible Firmware Interface}) pour démarrer.  Dans ce cas, le champ @code{bootloader} devrait contenir quelque chose comme cela :"
 
-#. type: example
-#: doc/guix.texi:10278
+#. type: lisp
+#: doc/guix.texi:12947
 #, no-wrap
 msgid ""
 "(bootloader-configuration\n"
@@ -18564,29 +23413,29 @@ msgstr ""
 "  (target \"/boot/efi\"))\n"
 
 #. type: Plain text
-#: doc/guix.texi:10282
+#: doc/guix.texi:12951
 msgid "@xref{Bootloader Configuration}, for more information on the available configuration options."
 msgstr "@xref{Bootloader Configuration}, pour plus d'informations sur les options de configuration disponibles."
 
 #. type: unnumberedsubsec
-#: doc/guix.texi:10283
+#: doc/guix.texi:12952
 #, no-wrap
 msgid "Globally-Visible Packages"
 msgstr "Paquets visibles sur tout le système"
 
 #. type: vindex
-#: doc/guix.texi:10285
+#: doc/guix.texi:12954
 #, no-wrap
 msgid "%base-packages"
 msgstr "%base-packages"
 
 #. type: Plain text
-#: doc/guix.texi:10298
-msgid "The @code{packages} field lists packages that will be globally visible on the system, for all user accounts---i.e., in every user's @code{PATH} environment variable---in addition to the per-user profiles (@pxref{Invoking guix package}).  The @var{%base-packages} variable provides all the tools one would expect for basic user and administrator tasks---including the GNU Core Utilities, the GNU Networking Utilities, the GNU Zile lightweight text editor, @command{find}, @command{grep}, etc.  The example above adds GNU@tie{}Screen to those, taken from the @code{(gnu packages screen)} module (@pxref{Package Modules}).  The @code{(list package output)} syntax can be used to add a specific output of a package:"
-msgstr "Le champ @code{packages} liste les paquets qui seront visibles sur tout le système, pour tous les comptes utilisateurs — c.-à-d.@: dans la variable d'environnement @code{PATH} de tous les utilisateurs — en plus des profils utilisateurs (@pxref{Invoking guix package}).  La variable @var{%base-packages} fournit tous les outils qu'on pourrait attendre pour les taches de base de l'administrateur et de l'utilisateur — dont les GNU Core Utilities, les GNU Networking Utilities, l'éditeur de texte léger GNU Zile, @command{find}, @command{grep}, etc.  L'exemple au-dessus ajoute GNU@tie{}Screen à ces paquets, récupéré depuis le module @code{(gnu packages screen)} (@pxref{Package Modules}).  Vous pouvez utiliser la syntaxe @code{(list paquet sortie)} pour ajouter une sortie spécifique d'un paquet :"
+#: doc/guix.texi:12967
+msgid "The @code{packages} field lists packages that will be globally visible on the system, for all user accounts---i.e., in every user's @env{PATH} environment variable---in addition to the per-user profiles (@pxref{Invoking guix package}).  The @code{%base-packages} variable provides all the tools one would expect for basic user and administrator tasks---including the GNU Core Utilities, the GNU Networking Utilities, the GNU Zile lightweight text editor, @command{find}, @command{grep}, etc.  The example above adds GNU@tie{}Screen to those, taken from the @code{(gnu packages screen)} module (@pxref{Package Modules}).  The @code{(list package output)} syntax can be used to add a specific output of a package:"
+msgstr "Le champ @code{packages} liste les paquets qui seront visibles sur tout le système, pour tous les comptes utilisateur·rice·s — c.-à-d.@: dans la variable d'environnement @env{PATH} de tous les utilisateur·rice·s — en plus des profils utilisateur·rice·s (@pxref{Invoquer guix package}).  La variable @var{%base-packages} fournit tous les outils qu'on pourrait attendre pour les taches de base de l'administrateur·rice et de l'utilisateur·rice — dont les GNU Core Utilities, les GNU Networking Utilities, l'éditeur de texte léger GNU Zile, @command{find}, @command{grep}, etc.  L'exemple ci-dessus ajoute GNU@tie{}Screen à ces paquets, récupéré depuis le module @code{(gnu packages screen)} (@pxref{Package Modules}).  Vous pouvez utiliser la syntaxe @code{(list package output)} pour ajouter une sortie spécifique d'un paquet :"
 
 #. type: lisp
-#: doc/guix.texi:10302
+#: doc/guix.texi:12971
 #, no-wrap
 msgid ""
 "(use-modules (gnu packages))\n"
@@ -18598,7 +23447,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:10307
+#: doc/guix.texi:12976
 #, no-wrap
 msgid ""
 "(operating-system\n"
@@ -18612,18 +23461,18 @@ msgstr ""
 "                  %base-packages)))\n"
 
 #. type: findex
-#: doc/guix.texi:10309
+#: doc/guix.texi:12978
 #, no-wrap
 msgid "specification->package"
 msgstr "specification->package"
 
 #. type: Plain text
-#: doc/guix.texi:10318
+#: doc/guix.texi:12987
 msgid "Referring to packages by variable name, like @code{bind} above, has the advantage of being unambiguous; it also allows typos and such to be diagnosed right away as ``unbound variables''.  The downside is that one needs to know which module defines which package, and to augment the @code{use-package-modules} line accordingly.  To avoid that, one can use the @code{specification->package} procedure of the @code{(gnu packages)} module, which returns the best package for a given name or name and version:"
 msgstr "Se référer aux paquets par le nom de leur variable, comme @code{bind} ci-dessus, a l'avantage d'être sans ambiguïté ; cela permet aussi de se rendre rapidement compte de coquilles quand on a des « variables non liées ».  L'inconvénient est qu'on a besoin de savoir dans quel module est défini le paquet, et de modifier la ligne @code{use-package-modules} en conséquence.  Pour éviter cela, on peut utiliser la procédure @code{specification->package} du module @code{(gnu packages)}, qui renvoie le meilleur paquet pour un nom donné ou un nom et une version :"
 
 #. type: lisp
-#: doc/guix.texi:10321
+#: doc/guix.texi:12990
 #, no-wrap
 msgid ""
 "(use-modules (gnu packages))\n"
@@ -18633,7 +23482,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:10327
+#: doc/guix.texi:12996
 #, no-wrap
 msgid ""
 "(operating-system\n"
@@ -18649,52 +23498,52 @@ msgstr ""
 "                    %base-packages)))\n"
 
 #. type: unnumberedsubsec
-#: doc/guix.texi:10329
+#: doc/guix.texi:12998
 #, no-wrap
 msgid "System Services"
 msgstr "Services systèmes"
 
 #. type: cindex
-#: doc/guix.texi:10331 doc/guix.texi:23820 doc/guix.texi:24827
+#: doc/guix.texi:13000 doc/guix.texi:30114 doc/guix.texi:31528
 #, no-wrap
 msgid "services"
 msgstr "services"
 
 #. type: vindex
-#: doc/guix.texi:10332
+#: doc/guix.texi:13001
 #, no-wrap
 msgid "%base-services"
 msgstr "%base-services"
 
 #. type: Plain text
-#: doc/guix.texi:10342
+#: doc/guix.texi:13011
 msgid "The @code{services} field lists @dfn{system services} to be made available when the system starts (@pxref{Services}).  The @code{operating-system} declaration above specifies that, in addition to the basic services, we want the OpenSSH secure shell daemon listening on port 2222 (@pxref{Networking Services, @code{openssh-service-type}}).  Under the hood, @code{openssh-service-type} arranges so that @command{sshd} is started with the right command-line options, possibly with supporting configuration files generated as needed (@pxref{Defining Services})."
 msgstr "Le champ @code{services} liste les @dfn{services système} à rendre disponible lorsque le système démarre (@pxref{Services}).  La déclaration @code{operating-system} au-dessus spécifie que, en plus des services de base, on veut que le démon ssh OpenSSH écoute sur le port 2222 (@pxref{Networking Services, @code{openssh-service-type}}).  Sous le capot, @code{openssh-service-type} s'arrange pour que @code{sshd} soit lancé avec les bonnes options de la ligne de commande, éventuellement en générant des fichiers de configuration (@pxref{Defining Services})."
 
 #. type: cindex
-#: doc/guix.texi:10343
+#: doc/guix.texi:13012
 #, no-wrap
 msgid "customization, of services"
 msgstr "personnalisation des services"
 
 #. type: findex
-#: doc/guix.texi:10344
+#: doc/guix.texi:13013
 #, no-wrap
 msgid "modify-services"
 msgstr "modify-services"
 
 #. type: Plain text
-#: doc/guix.texi:10348
+#: doc/guix.texi:13017
 msgid "Occasionally, instead of using the base services as is, you will want to customize them.  To do this, use @code{modify-services} (@pxref{Service Reference, @code{modify-services}}) to modify the list."
 msgstr "Parfois, plutôt que d'utiliser les services de base tels-quels, on peut vouloir les personnaliser.  Pour cela, utilisez  @code{modify-services} (@pxref{Service Reference, @code{modify-services}}) pour modifier la liste."
 
 #. type: Plain text
-#: doc/guix.texi:10353
-msgid "For example, suppose you want to modify @code{guix-daemon} and Mingetty (the console log-in) in the @var{%base-services} list (@pxref{Base Services, @code{%base-services}}).  To do that, you can write the following in your operating system declaration:"
-msgstr "Par exemple, supposons que vous souhaitiez modifier @code{guix-daemon} et Mingetty (l'écran de connexion en console) dans la liste @var{%base-services} (@pxref{Base Services, @code{%base-services}}).  Pour cela, vous pouvez écrire ce qui suit dans votre déclaration de système d'exploitation :"
+#: doc/guix.texi:13022
+msgid "For example, suppose you want to modify @code{guix-daemon} and Mingetty (the console log-in) in the @code{%base-services} list (@pxref{Base Services, @code{%base-services}}).  To do that, you can write the following in your operating system declaration:"
+msgstr "Par exemple, supposons que vous souhaitiez modifier @code{guix-daemon} et Mingetty (l'écran de connexion en console) dans la liste @code{%base-services} (@pxref{Base Services, @code{%base-services}}).  Pour cela, vous pouvez écrire ce qui suit dans votre déclaration de système d'exploitation :"
 
 #. type: lisp
-#: doc/guix.texi:10366
+#: doc/guix.texi:13039
 #, no-wrap
 msgid ""
 "(define %my-services\n"
@@ -18703,27 +23552,36 @@ msgid ""
 "    (guix-service-type config =>\n"
 "                       (guix-configuration\n"
 "                        (inherit config)\n"
-"                        (use-substitutes? #f)\n"
-"                        (extra-options '(\"--gc-keep-derivations\"))))\n"
+"                        ;; Fetch substitutes from example.org.\n"
+"                        (substitute-urls\n"
+"                          (list \"https://example.org/guix\"\n"
+"                                \"https://ci.guix.gnu.org\"))))\n"
 "    (mingetty-service-type config =>\n"
 "                           (mingetty-configuration\n"
-"                            (inherit config)))))\n"
+"                            (inherit config)\n"
+"                            ;; Automatially log in as \"guest\".\n"
+"                            (auto-login \"guest\")))))\n"
 "\n"
 msgstr ""
 "(define %my-services\n"
-"  ;; Ma propre liste de services.\n"
+"  ;; ma propre liste de services.\n"
 "  (modify-services %base-services\n"
 "    (guix-service-type config =>\n"
 "                       (guix-configuration\n"
 "                        (inherit config)\n"
-"                        (use-substitutes? #f)\n"
-"                        (extra-options '(\"--gc-keep-derivations\"))))\n"
+"                        ;; Récupérer les substituts depuis example.org.\n"
+"                        (substitute-urls\n"
+"                          (list \"https://example.org/guix\"\n"
+"                                \"https://ci.guix.gnu.org\"))))\n"
 "    (mingetty-service-type config =>\n"
 "                           (mingetty-configuration\n"
-"                            (inherit config)))))\n"
+"                            (inherit config)\n"
+"                            ;; Connexion automatique en tant que « guest ».\n"
+"                            (auto-login \"guest\")))))\n"
+"\n"
 
 #. type: lisp
-#: doc/guix.texi:10370
+#: doc/guix.texi:13043
 #, no-wrap
 msgid ""
 "(operating-system\n"
@@ -18735,49 +23593,49 @@ msgstr ""
 "  (services %my-services))\n"
 
 #. type: Plain text
-#: doc/guix.texi:10381
-msgid "This changes the configuration---i.e., the service parameters---of the @code{guix-service-type} instance, and that of all the @code{mingetty-service-type} instances in the @var{%base-services} list.  Observe how this is accomplished: first, we arrange for the original configuration to be bound to the identifier @code{config} in the @var{body}, and then we write the @var{body} so that it evaluates to the desired configuration.  In particular, notice how we use @code{inherit} to create a new configuration which has the same values as the old configuration, but with a few modifications."
-msgstr "Cela modifie la configuration — c.-à-d.@: les paramètres du service — de l'instance de @code{guix-service-type}, et de toutes les instances de @code{mingetty-service-type} dans la liste @var{%base-services}.  Remarquez comment on fait cela : d'abord, on s'arrange pour que la configuration de départ soit liée à l'identifiant @code{config} dans @var{body} puis on écrit @var{body} pour qu'il s'évalue en la configuration désirée.  En particulier, remarquez comment on utilise @code{inherit} pour créer une nouvelle configuration qui a les même valeurs que l'ancienne configuration, avec seulement quelques modifications."
+#: doc/guix.texi:13054
+msgid "This changes the configuration---i.e., the service parameters---of the @code{guix-service-type} instance, and that of all the @code{mingetty-service-type} instances in the @code{%base-services} list.  Observe how this is accomplished: first, we arrange for the original configuration to be bound to the identifier @code{config} in the @var{body}, and then we write the @var{body} so that it evaluates to the desired configuration.  In particular, notice how we use @code{inherit} to create a new configuration which has the same values as the old configuration, but with a few modifications."
+msgstr "Cela modifie la configuration — c.-à-d.@: les paramètres du service — de l'instance de @code{guix-service-type}, et de toutes les instances de @code{mingetty-service-type} dans la liste @code{%base-services}.  Remarquez comment on fait cela : d'abord, on s'arrange pour que la configuration de départ soit liée à l'identifiant @code{config} dans @var{body} puis on écrit @var{body} pour qu'il s'évalue en la configuration désirée.  En particulier, remarquez comment on utilise @code{inherit} pour créer une nouvelle configuration qui a les même valeurs que l'ancienne configuration, avec seulement quelques modifications."
 
 #. type: Plain text
-#: doc/guix.texi:10388
+#: doc/guix.texi:13061
 msgid "The configuration for a typical ``desktop'' usage, with an encrypted root partition, the X11 display server, GNOME and Xfce (users can choose which of these desktop environments to use at the log-in screen by pressing @kbd{F1}), network management, power management, and more, would look like this:"
 msgstr "La configuration pour une utilisation de « bureau » typique, avec une partition racine chiffrée, le serveur d'affichage X11, GNOME et Xfce (les utilisateurs peuvent choisir l'environnement de bureau sur l'écran de connexion en appuyant sur @kbd{F1}), la gestion du réseau, la gestion de l'énergie, et bien plus, ressemblerait à ceci :"
 
 #. type: include
-#: doc/guix.texi:10390
+#: doc/guix.texi:13063
 #, no-wrap
 msgid "os-config-desktop.texi"
 msgstr "os-config-desktop.texi"
 
 #. type: Plain text
-#: doc/guix.texi:10395
+#: doc/guix.texi:13068
 msgid "A graphical system with a choice of lightweight window managers instead of full-blown desktop environments would look like this:"
 msgstr "Un système graphique avec un choix de gestionnaires de fenêtres légers plutôt que des environnement de bureaux complets ressemblerait à cela :"
 
 #. type: include
-#: doc/guix.texi:10397
+#: doc/guix.texi:13070
 #, no-wrap
 msgid "os-config-lightweight-desktop.texi"
 msgstr "os-config-lightweight-desktop.texi"
 
 #. type: Plain text
-#: doc/guix.texi:10403
+#: doc/guix.texi:13076
 msgid "This example refers to the @file{/boot/efi} file system by its UUID, @code{1234-ABCD}.  Replace this UUID with the right UUID on your system, as returned by the @command{blkid} command."
 msgstr "Cet exemple se réfère au système de fichier @file{/boot/efi} par son UUID, @code{1234-ABCD}.  Remplacez cet UUID par le bon UUID de votre système, renvoyé par la commande @command{blkid}."
 
 #. type: Plain text
-#: doc/guix.texi:10407
-msgid "@xref{Desktop Services}, for the exact list of services provided by @var{%desktop-services}.  @xref{X.509 Certificates}, for background information about the @code{nss-certs} package that is used here."
-msgstr "@xref{Desktop Services}, pour la liste exacte des services fournis par @var{%desktop-services}.  @xref{X.509 Certificates}, pour des informations sur le paquet @code{nss-certs} utilisé ici."
+#: doc/guix.texi:13080
+msgid "@xref{Desktop Services}, for the exact list of services provided by @code{%desktop-services}.  @xref{X.509 Certificates}, for background information about the @code{nss-certs} package that is used here."
+msgstr "@xref{Desktop Services}, pour la liste exacte des services fournis par @code{%desktop-services}.  @xref{X.509 Certificates}, pour des informations sur le paquet @code{nss-certs} utilisé ici."
 
 #. type: Plain text
-#: doc/guix.texi:10414
-msgid "Again, @var{%desktop-services} is just a list of service objects.  If you want to remove services from there, you can do so using the procedures for list filtering (@pxref{SRFI-1 Filtering and Partitioning,,, guile, GNU Guile Reference Manual}).  For instance, the following expression returns a list that contains all the services in @var{%desktop-services} minus the Avahi service:"
-msgstr "Encore une fois, @var{%desktop-services} n'est qu'une liste d'objets service.  Si vous voulez en supprimer des services, vous pouvez le faire avec des procédures pour les listes (@pxref{SRFI-1 Filtering and Partitioning,,, guile, GNU Guile Reference Manual}).  Par exemple, l'expression suivante renvoie une liste qui contient tous les services dans @var{%desktop-services} sauf le service Avahi :"
+#: doc/guix.texi:13087
+msgid "Again, @code{%desktop-services} is just a list of service objects.  If you want to remove services from there, you can do so using the procedures for list filtering (@pxref{SRFI-1 Filtering and Partitioning,,, guile, GNU Guile Reference Manual}).  For instance, the following expression returns a list that contains all the services in @code{%desktop-services} minus the Avahi service:"
+msgstr "Encore une fois, @code{%desktop-services} n'est qu'une liste d'objets service.  Si vous voulez enlever des services de là, vous pouvez le faire avec des procédures pour les listes (@pxref{SRFI-1 Filtering and Partitioning,,, guile, GNU Guile Reference Manual}).  Par exemple, l'expression suivante renvoie une liste qui contient tous les services dans @code{%desktop-services} sauf le service Avahi :"
 
-#. type: example
-#: doc/guix.texi:10419
+#. type: lisp
+#: doc/guix.texi:13092
 #, no-wrap
 msgid ""
 "(remove (lambda (service)\n"
@@ -18789,320 +23647,407 @@ msgstr ""
 "        %desktop-services)\n"
 
 #. type: unnumberedsubsec
-#: doc/guix.texi:10421
+#: doc/guix.texi:13094
 #, no-wrap
 msgid "Instantiating the System"
 msgstr "Instancier le système"
 
 #. type: Plain text
-#: doc/guix.texi:10428
+#: doc/guix.texi:13101
 msgid "Assuming the @code{operating-system} declaration is stored in the @file{my-system-config.scm} file, the @command{guix system reconfigure my-system-config.scm} command instantiates that configuration, and makes it the default GRUB boot entry (@pxref{Invoking guix system})."
 msgstr "En supposant que la déclaration @code{operating-system} est stockée dans le fichier @file{my-system-config.scm}, la commande @command{guix system reconfigure my-system-config.scm} instancie cette configuration et en fait l'entrée par défaut dans GRUB (@pxref{Invoking guix system})."
 
 #. type: Plain text
-#: doc/guix.texi:10436
+#: doc/guix.texi:13109
 msgid "The normal way to change the system configuration is by updating this file and re-running @command{guix system reconfigure}.  One should never have to touch files in @file{/etc} or to run commands that modify the system state such as @command{useradd} or @command{grub-install}.  In fact, you must avoid that since that would not only void your warranty but also prevent you from rolling back to previous versions of your system, should you ever need to."
 msgstr "Pour changer la configuration du système, on met normalement à jour ce fichier et on relance @command{guix system reconfigure}.  On ne devrait jamais avoir à modifier de fichiers dans @file{/etc} ou à lancer des commandes qui modifient l'état du système comme @command{useradd} ou @command{grub-install}.  En fait, vous devez les éviter parce que non seulement ça annulerait vos garanties, mais ça empêcherait aussi de revenir à des versions précédents du système, si vous en avez besoin."
 
 #. type: cindex
-#: doc/guix.texi:10437
+#: doc/guix.texi:13110
 #, no-wrap
 msgid "roll-back, of the operating system"
 msgstr "revenir en arrière dans la configuration du système"
 
 #. type: Plain text
-#: doc/guix.texi:10447
+#: doc/guix.texi:13120
 msgid "Speaking of roll-back, each time you run @command{guix system reconfigure}, a new @dfn{generation} of the system is created---without modifying or deleting previous generations.  Old system generations get an entry in the bootloader boot menu, allowing you to boot them in case something went wrong with the latest generation.  Reassuring, no? The @command{guix system list-generations} command lists the system generations available on disk.  It is also possible to roll back the system via the commands @command{guix system roll-back} and @command{guix system switch-generation}."
 msgstr "En parlant de revenir en arrière, à chaque fois que vous lancez @command{guix system reconfigure}, une nouvelle @dfn{génération} du système est crée — sans modifier ou supprimer les générations précédentes.  Les anciennes générations du système ont une entrée dans le menu du chargeur d'amorçage, ce qui vous permet de démarrer dessus au cas où quelque chose se serait mal passé avec la dernière génération.  C'est rassurant, non ?  La commande @command{guix system list-generations} liste les générations du système disponibles sur le disque.  Il est possible de revenir à une ancienne génération via les commandes @command{guix system roll-back} et @command{guix system switch-generation}."
 
 #. type: Plain text
-#: doc/guix.texi:10453
+#: doc/guix.texi:13126
 msgid "Although the @command{guix system reconfigure} command will not modify previous generations, you must take care when the current generation is not the latest (e.g., after invoking @command{guix system roll-back}), since the operation might overwrite a later generation (@pxref{Invoking guix system})."
 msgstr "Bien que la commande @command{guix system reconfigure} ne modifiera pas les générations précédentes, vous devez faire attention lorsque votre génération actuelle n'est pas la dernière (p.@: ex.@: après avoir invoqué @command{guix system roll-back}), puisque l'opération pourrait remplacer une génération suivante (@pxref{Invoking guix system})."
 
 #. type: unnumberedsubsec
-#: doc/guix.texi:10454
+#: doc/guix.texi:13127
 #, no-wrap
 msgid "The Programming Interface"
 msgstr "L'interface de programmation"
 
 #. type: Plain text
-#: doc/guix.texi:10459
+#: doc/guix.texi:13132
 msgid "At the Scheme level, the bulk of an @code{operating-system} declaration is instantiated with the following monadic procedure (@pxref{The Store Monad}):"
 msgstr "Au niveau Scheme, la grosse déclaration @code{operating-system} est instanciée avec la procédure monadique suivante (@pxref{The Store Monad}) :"
 
 #. type: deffn
-#: doc/guix.texi:10460
+#: doc/guix.texi:13133
 #, no-wrap
 msgid "{Monadic Procedure} operating-system-derivation os"
 msgstr "{Procédure monadique} operating-system-derivation os"
 
 #. type: deffn
-#: doc/guix.texi:10463
+#: doc/guix.texi:13136
 msgid "Return a derivation that builds @var{os}, an @code{operating-system} object (@pxref{Derivations})."
 msgstr "Renvoie une dérivation qui construit @var{os}, un objet @code{operating-system} (@pxref{Derivations})."
 
 #. type: deffn
-#: doc/guix.texi:10467
+#: doc/guix.texi:13140
 msgid "The output of the derivation is a single directory that refers to all the packages, configuration files, and other supporting files needed to instantiate @var{os}."
 msgstr "La sortie de la dérivation est un répertoire qui se réfère à tous les paquets et d'autres fichiers supports requis pour instancier @var{os}."
 
 #. type: Plain text
-#: doc/guix.texi:10472
+#: doc/guix.texi:13145
 msgid "This procedure is provided by the @code{(gnu system)} module.  Along with @code{(gnu services)} (@pxref{Services}), this module contains the guts of Guix System.  Make sure to visit it!"
 msgstr "Cette procédure est fournie par le module @code{(gnu system)}.  Avec @code{(gnu services)} (@pxref{Services}), ce module contient les entrailles du système Guix.  Ouvrez-le un jour !"
 
 #. type: section
-#: doc/guix.texi:10475
+#: doc/guix.texi:13148
 #, no-wrap
 msgid "@code{operating-system} Reference"
 msgstr "Référence de @code{operating-system}"
 
 #. type: Plain text
-#: doc/guix.texi:10480
+#: doc/guix.texi:13153
 msgid "This section summarizes all the options available in @code{operating-system} declarations (@pxref{Using the Configuration System})."
 msgstr "Cette section résume toutes les options disponibles dans les déclarations @code{operating-system} (@pxref{Using the Configuration System})."
 
 #. type: deftp
-#: doc/guix.texi:10481
+#: doc/guix.texi:13154
 #, no-wrap
 msgid "{Data Type} operating-system"
 msgstr "{Type de données} operating-system"
 
 #. type: deftp
-#: doc/guix.texi:10485
+#: doc/guix.texi:13158
 msgid "This is the data type representing an operating system configuration.  By that, we mean all the global system configuration, not per-user configuration (@pxref{Using the Configuration System})."
 msgstr "C'est le type de données représentant une configuration d'un système d'exploitation.  On veut dire par là toute la configuration globale du système, mais pas la configuration par utilisateur (@pxref{Using the Configuration System})."
 
 #. type: item
-#: doc/guix.texi:10487
+#: doc/guix.texi:13160
 #, no-wrap
-msgid "@code{kernel} (default: @var{linux-libre})"
-msgstr "@code{kernel} (par défaut : @var{linux-libre})"
+msgid "@code{kernel} (default: @code{linux-libre})"
+msgstr "@code{kernel} (par défaut : @code{linux-libre})"
 
 #. type: table
-#: doc/guix.texi:10491
-msgid "The package object of the operating system kernel to use@footnote{Currently only the Linux-libre kernel is supported.  In the future, it will be possible to use the GNU@tie{}Hurd.}."
-msgstr "L'objet paquet d'un noyau de système d'exploitation à utiliser@footnote{Actuellement seul le noyau Linux-libre est supporté.  Dans le futur, il sera possible d'utiliser GNU@tie{}Hurd.}."
+#: doc/guix.texi:13165
+msgid "The package object of the operating system kernel to use@footnote{Currently only the Linux-libre kernel is fully supported.  Using GNU@tie{}mach with the GNU@tie{}Hurd is experimental and only available when building a virtual machine disk image.}."
+msgstr "L'objet du paquet du système d'exploitation à utiliser@footnote{Actuellement, seul le noyau Linux-libre est entièrement pris en charge.  L'utilisation de GNU@tie{}mach avec le GNU@tie{}Hurd est expérimentale et n'est disponible que lors de la construction d'une image disque de machine virtuelle.}."
+
+#. type: code{#1}
+#: doc/guix.texi:13166 doc/guix.texi:26900
+#, no-wrap
+msgid "hurd"
+msgstr "hurd"
 
 #. type: item
-#: doc/guix.texi:10492
+#: doc/guix.texi:13167
 #, no-wrap
-msgid "@code{kernel-arguments} (default: @code{'(\"quiet\")})"
-msgstr "@code{kernel-arguments} (par défaut : @code{'(\"quiet\")})"
+msgid "@code{hurd} (default: @code{#f})"
+msgstr "@code{hurd} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:10495
+#: doc/guix.texi:13172
+msgid "The package object of the Hurd to be started by the kernel.  When this field is set, produce a GNU/Hurd operating system.  In that case, @code{kernel} must also be set to the @code{gnumach} package---the microkernel the Hurd runs on."
+msgstr "L'objet du paquet du hurd à être lancé par le noyau.  Lorsque ce champ est défini, produire un système d'exploitation GNU/Hurd.  Dans ce cas, @code{kernel} doit également être défini sur le paquet @code{gnumach} --- le micro-noyau sur lequel tourne le Hurd."
+
+#. type: quotation
+#: doc/guix.texi:13175
+msgid "This feature is experimental and only supported for disk images."
+msgstr "Cette fonction est expérimentale et seulement prise en charge pour les images de disques."
+
+#. type: item
+#: doc/guix.texi:13177
+#, no-wrap
+msgid "@code{kernel-loadable-modules} (default: '())"
+msgstr "@code{kernel-loadable-modules} (par défault: '())"
+
+#. type: table
+#: doc/guix.texi:13180
+msgid "A list of objects (usually packages) to collect loadable kernel modules from--e.g. @code{(list ddcci-driver-linux)}."
+msgstr "Une liste d'objets (généralement des paquets) pour collecter les modules de noyau chargeables depuis - par exemple @code{(liste ddcci-driver-linux)}."
+
+#. type: item
+#: doc/guix.texi:13181
+#, no-wrap
+msgid "@code{kernel-arguments} (default: @code{%default-kernel-arguments})"
+msgstr "@code{server-arguments} (par défaut : @code{%default-kernel-arguments})"
+
+#. type: table
+#: doc/guix.texi:13184
 msgid "List of strings or gexps representing additional arguments to pass on the command-line of the kernel---e.g., @code{(\"console=ttyS0\")}."
 msgstr "Liste de chaînes ou de gexps représentant des arguments supplémentaires à passer sur la ligne de commande du noyau — p.@: ex.@: @code{(\"console=ttyS0\")}."
 
 #. type: code{#1}
-#: doc/guix.texi:10496 doc/guix.texi:24031 doc/guix.texi:24050
+#: doc/guix.texi:13185 doc/guix.texi:30326 doc/guix.texi:30345
 #, no-wrap
 msgid "bootloader"
 msgstr "bootloader"
 
 #. type: table
-#: doc/guix.texi:10498
+#: doc/guix.texi:13187
 msgid "The system bootloader configuration object.  @xref{Bootloader Configuration}."
 msgstr "L'objet de configuration du chargeur d'amorçage.  @xref{Bootloader Configuration}."
 
 #. type: code{#1}
-#: doc/guix.texi:10499 doc/guix.texi:24170
+#: doc/guix.texi:13188 doc/guix.texi:30515
 #, no-wrap
 msgid "label"
 msgstr "label"
 
 #. type: table
-#: doc/guix.texi:10502
+#: doc/guix.texi:13191
 msgid "This is the label (a string) as it appears in the bootloader's menu entry.  The default label includes the kernel name and version."
 msgstr "C'est l'étiquette (une chaîne de caractères) comme elle apparaît dans l'entrée du menu du chargeur d'amorçage.  L'étiquette par défaut inclus le nom du noyau et sa version."
 
 #. type: item
-#: doc/guix.texi:10503 doc/guix.texi:13709 doc/guix.texi:24100
+#: doc/guix.texi:13192 doc/guix.texi:17310 doc/guix.texi:30445
 #, no-wrap
 msgid "@code{keyboard-layout} (default: @code{#f})"
 msgstr "@code{keyboard-layout} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:10507
+#: doc/guix.texi:13196
 msgid "This field specifies the keyboard layout to use in the console.  It can be either @code{#f}, in which case the default keyboard layout is used (usually US English), or a @code{<keyboard-layout>} record."
 msgstr "Ce champ spécifie la disposition du clavier à utiliser dans la console.  Il peut être soit @code{#f}, auquel cas la disposition par défaut est utilisée (habituellement anglais américain), ou un enregistrement @code{<keyboard-layout>}."
 
 #. type: table
-#: doc/guix.texi:10512
+#: doc/guix.texi:13201
 msgid "This keyboard layout is in effect as soon as the kernel has booted.  For instance, it is the keyboard layout in effect when you type a passphrase if your root file system is on a @code{luks-device-mapping} mapped device (@pxref{Mapped Devices})."
 msgstr "Cette disposition du clavier est effective dès que le noyau démarre.  Par exemple, c'est la disposition du clavier effective lorsque vous saisissez la phrase de passe de votre système de fichier racine sur une partition utilisant @code{luks-device-mapping} (@pxref{Mapped Devices})."
 
 #. type: quotation
-#: doc/guix.texi:10519
+#: doc/guix.texi:13208
 msgid "This does @emph{not} specify the keyboard layout used by the bootloader, nor that used by the graphical display server.  @xref{Bootloader Configuration}, for information on how to specify the bootloader's keyboard layout.  @xref{X Window}, for information on how to specify the keyboard layout used by the X Window System."
 msgstr "Cela ne spécifie @emph{pas} la disposition clavier utilisée par le chargeur d'amorçage, ni celle utilisée par le serveur d'affichage graphique.  @xref{Bootloader Configuration}, pour plus d'information sur la manière de spécifier la disposition du clavier pour le chargeur d'amorçage.  @xref{X Window}, pour plus d'informations sur la manière de spécifier la disposition du clavier utilisée par le système de fenêtrage X."
 
 #. type: item
-#: doc/guix.texi:10521
+#: doc/guix.texi:13210
 #, no-wrap
 msgid "@code{initrd-modules} (default: @code{%base-initrd-modules})"
 msgstr "@code{initrd-modules} (par défaut : @code{%base-initrd-modules})"
 
-#. type: code{#1}
-#: doc/guix.texi:10522 doc/guix.texi:23857 doc/guix.texi:23960
-#: doc/guix.texi:24195
+#. type: cindex
+#: doc/guix.texi:13211 doc/guix.texi:30151 doc/guix.texi:30255
 #, no-wrap
 msgid "initrd"
 msgstr "initrd"
 
 #. type: cindex
-#: doc/guix.texi:10523 doc/guix.texi:23858 doc/guix.texi:23961
+#: doc/guix.texi:13212 doc/guix.texi:30152 doc/guix.texi:30256
 #, no-wrap
 msgid "initial RAM disk"
 msgstr "disque de RAM initial"
 
 #. type: table
-#: doc/guix.texi:10526
+#: doc/guix.texi:13215
 msgid "The list of Linux kernel modules that need to be available in the initial RAM disk.  @xref{Initial RAM Disk}."
 msgstr "La liste des modules du noyau linux requis dans l'image disque de RAM initiale.  @xref{Initial RAM Disk}."
 
 #. type: item
-#: doc/guix.texi:10527
+#: doc/guix.texi:13216
 #, no-wrap
 msgid "@code{initrd} (default: @code{base-initrd})"
 msgstr "@code{initrd} (par défaut : @code{base-initrd})"
 
 #. type: table
-#: doc/guix.texi:10531
+#: doc/guix.texi:13220
 msgid "A procedure that returns an initial RAM disk for the Linux kernel.  This field is provided to support low-level customization and should rarely be needed for casual use.  @xref{Initial RAM Disk}."
 msgstr "Une procédure qui renvoie un disque de RAM initial pour le noyau Linux.  Ce champ est fournit pour pouvoir personnaliser son système à bas-niveau et n'est que rarement utile dans le cas général.  @xref{Initial RAM Disk}."
 
 #. type: item
-#: doc/guix.texi:10532
+#: doc/guix.texi:13221
 #, no-wrap
-msgid "@code{firmware} (default: @var{%base-firmware})"
-msgstr "@code{firmware} (par défaut : @var{%base-firmware})"
+msgid "@code{firmware} (default: @code{%base-firmware})"
+msgstr "@code{firmware} (par défaut : @code{%base-firmware})"
 
 #. type: cindex
-#: doc/guix.texi:10533
+#: doc/guix.texi:13222
 #, no-wrap
 msgid "firmware"
 msgstr "firmware"
 
 #. type: table
-#: doc/guix.texi:10535
+#: doc/guix.texi:13224
 msgid "List of firmware packages loadable by the operating system kernel."
 msgstr "Liste les paquets de microgiciels chargeables pour le noyau de système d'exploitation."
 
 #. type: table
-#: doc/guix.texi:10540
+#: doc/guix.texi:13229
 msgid "The default includes firmware needed for Atheros- and Broadcom-based WiFi devices (Linux-libre modules @code{ath9k} and @code{b43-open}, respectively).  @xref{Hardware Considerations}, for more info on supported hardware."
 msgstr "La valeur par défaut contient les microgiciels requis pour les périphériques WiFi Atheros et Broadcom (modules @code{ath9k} et @code{b43-open} de Linux-libre, respectivement).  @xref{Hardware Considerations}, pour plus d'info sur les périphériques supportés."
 
 #. type: code{#1}
-#: doc/guix.texi:10541
+#: doc/guix.texi:13230 doc/guix.texi:31322
 #, no-wrap
 msgid "host-name"
 msgstr "host-name"
 
 #. type: table
-#: doc/guix.texi:10543
+#: doc/guix.texi:13232
 msgid "The host name."
 msgstr "Le nom d'hôte."
 
 #. type: code{#1}
-#: doc/guix.texi:10544
+#: doc/guix.texi:13233
 #, no-wrap
 msgid "hosts-file"
 msgstr "hosts-file"
 
 #. type: cindex
-#: doc/guix.texi:10545
+#: doc/guix.texi:13234
 #, no-wrap
 msgid "hosts file"
 msgstr "fichier hosts"
 
 #. type: table
-#: doc/guix.texi:10550
+#: doc/guix.texi:13239
 msgid "A file-like object (@pxref{G-Expressions, file-like objects}) for use as @file{/etc/hosts} (@pxref{Host Names,,, libc, The GNU C Library Reference Manual}).  The default is a file with entries for @code{localhost} and @var{host-name}."
 msgstr "Un objet simili-fichier (@pxref{G-Expressions, file-like objects}) à utiliser comme @file{/etc/hosts} (@pxref{Host Names,,, libc, The GNU C Library Reference Manual}).  La valeur par défaut est un fichier avec des entrées pour @code{localhost} et @var{host-name}."
 
 #. type: item
-#: doc/guix.texi:10551
+#: doc/guix.texi:13240
 #, no-wrap
 msgid "@code{mapped-devices} (default: @code{'()})"
 msgstr "@code{mapped-devices} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:10553
+#: doc/guix.texi:13242
 msgid "A list of mapped devices.  @xref{Mapped Devices}."
 msgstr "Une liste de périphériques mappés.  @xref{Mapped Devices}."
 
 #. type: code{#1}
-#: doc/guix.texi:10554
+#: doc/guix.texi:13243
 #, no-wrap
 msgid "file-systems"
 msgstr "file-systems"
 
 #. type: table
-#: doc/guix.texi:10556
+#: doc/guix.texi:13245
 msgid "A list of file systems.  @xref{File Systems}."
 msgstr "Une liste de systèmes de fichiers.  @xref{File Systems}."
 
+#. type: cindex
+#: doc/guix.texi:13246
+#, no-wrap
+msgid "swap devices"
+msgstr "périphériques d'espaces d'échange"
+
+#. type: cindex
+#: doc/guix.texi:13247
+#, no-wrap
+msgid "swap space"
+msgstr "espace d'échange"
+
 #. type: item
-#: doc/guix.texi:10557
+#: doc/guix.texi:13248
 #, no-wrap
 msgid "@code{swap-devices} (default: @code{'()})"
 msgstr "@code{swap-devices} (par défaut : @code{'()})"
 
-#. type: cindex
-#: doc/guix.texi:10558
+#. type: table
+#: doc/guix.texi:13253
+msgid "A list of UUIDs, file system labels, or strings identifying devices or files to be used for ``swap space'' (@pxref{Memory Concepts,,, libc, The GNU C Library Reference Manual}).  Here are some examples:"
+msgstr "Une liste d'UUID, d'étiquettes de systèmes de fichiers, ou de chaines identifiant des périphériques ou des fichiers à utiliser comme « espace d'échange » (@pxref{Memory Concepts,,, libc, The GNU C Library Reference Manual}).  Voici quelques exemples :"
+
+#. type: item
+#: doc/guix.texi:13255
 #, no-wrap
-msgid "swap devices"
-msgstr "espaces d'échange"
+msgid "(list (uuid \"4dab5feb-d176-45de-b287-9b0a6e4c01cb\"))"
+msgstr "(list (uuid \"4dab5feb-d176-45de-b287-9b0a6e4c01cb\"))"
+
+#. type: table
+#: doc/guix.texi:13259
+msgid "Use the swap partition with the given UUID.  You can learn the UUID of a Linux swap partition by running @command{swaplabel @var{device}}, where @var{device} is the @file{/dev} file name of that partition."
+msgstr "Utilise la partition de swap avec l'UUID donné.  Vous pouvez voir l'UUID d'une partition de swap Linux en lançant @command{swaplabel @var{device}}, où @var{device} est le nom de fichier @file{/dev} de cette partition."
+
+#. type: item
+#: doc/guix.texi:13260
+#, no-wrap
+msgid "(list (file-system-label \"swap\"))"
+msgstr "(list (file-system-label \"swap\"))"
 
 #. type: table
-#: doc/guix.texi:10565
-msgid "A list of strings identifying devices or files to be used for ``swap space'' (@pxref{Memory Concepts,,, libc, The GNU C Library Reference Manual}).  For example, @code{'(\"/dev/sda3\")} or @code{'(\"/swapfile\")}.  It is possible to specify a swap file in a file system on a mapped device, provided that the necessary device mapping and file system are also specified.  @xref{Mapped Devices} and @ref{File Systems}."
-msgstr "Une liste de chaînes identifiant les périphériques ou les fichiers utilisé pour « l'espace d'échange » (@pxref{Memory Concepts,,, libc, The GNU C Library Reference Manual}).  Par exemple, @code{'(\"/dev/sda3\")} ou @code{'(\"/swapfile\")}.  Il est possible de spécifier un fichier d'échange sur un périphérique mappé, tant que le périphérique nécessaire et le système de fichiers sont aussi spécifiés.  @xref{Mapped Devices} et @ref{File Systems}."
+#: doc/guix.texi:13264
+msgid "Use the partition with label @code{swap}.  Again, the @command{swaplabel} command allows you to view and change the label of a Linux swap partition."
+msgstr "Utilise la partition avec l'étiquette @code{swap}.  De nouveau, la commande @command{swaplabel} vous permet de voir et de changer l'étiquette d'une partition swap de Linux."
 
 #. type: item
-#: doc/guix.texi:10566
+#: doc/guix.texi:13265
+#, no-wrap
+msgid "(list \"/swapfile\")"
+msgstr "(list \"/swapfile\")"
+
+#. type: table
+#: doc/guix.texi:13267
+msgid "Use the file @file{/swapfile} as swap space."
+msgstr "utilise le fichier @file{/swapfile} comme espace d'échange."
+
+#. type: item
+#: doc/guix.texi:13268
+#, no-wrap
+msgid "(list \"/dev/sda3\" \"/dev/sdb2\")"
+msgstr "(list \"/dev/sda3\" \"/dev/sdb2\")"
+
+#. type: table
+#: doc/guix.texi:13272
+msgid "Use the @file{/dev/sda3} and @file{/dev/sdb2} partitions as swap space.  We recommend referring to swap devices by UUIDs or labels as shown above instead."
+msgstr "Utilise les partitions @file{/dev/sda3} et @file{/dev/sdb2} comme espaces d'échange.  Nous recommandons plutôt de vous référer aux périphériques d'échange par leur UUID ou étiquette comme montré plus haut."
+
+#. type: table
+#: doc/guix.texi:13278
+msgid "It is possible to specify a swap file in a file system on a mapped device (under @file{/dev/mapper}), provided that the necessary device mapping and file system are also specified.  @xref{Mapped Devices} and @ref{File Systems}."
+msgstr "Il est possible de spécifier un fichier d'échange sur un périphérique mappé (sous @file{/dev/mapper}), tant que le périphérique nécessaire et le système de fichiers sont aussi spécifiés.  @xref{Mapped Devices} et @ref{File Systems}."
+
+#. type: item
+#: doc/guix.texi:13279
 #, no-wrap
 msgid "@code{users} (default: @code{%base-user-accounts})"
 msgstr "@code{users} (par défaut : @code{%base-user-accounts})"
 
 #. type: itemx
-#: doc/guix.texi:10567
+#: doc/guix.texi:13280
 #, no-wrap
-msgid "@code{groups} (default: @var{%base-groups})"
-msgstr "@code{groups} (par défaut : @var{%base-groups})"
+msgid "@code{groups} (default: @code{%base-groups})"
+msgstr "@code{groups} (par défaut : @code{%base-groups})"
 
 #. type: table
-#: doc/guix.texi:10569
+#: doc/guix.texi:13282
 msgid "List of user accounts and groups.  @xref{User Accounts}."
 msgstr "Liste les comptes utilisateurs et les groupes.  @xref{User Accounts}."
 
 #. type: table
-#: doc/guix.texi:10572
+#: doc/guix.texi:13285
 msgid "If the @code{users} list lacks a user account with UID@tie{}0, a ``root'' account with UID@tie{}0 is automatically added."
 msgstr "Si la liste @code{users} n'a pas de compte lié à l'UID@tie{}0, un compte « root » avec l'UID@tie{}0 est automatiquement ajouté."
 
 #. type: item
-#: doc/guix.texi:10573
+#: doc/guix.texi:13286
 #, no-wrap
 msgid "@code{skeletons} (default: @code{(default-skeletons)})"
 msgstr "@code{skeletons} (par défaut : @code{(default-skeletons)})"
 
 #. type: table
-#: doc/guix.texi:10577
-msgid "A list target file name/file-like object tuples (@pxref{G-Expressions, file-like objects}).  These are the skeleton files that will be added to the home directory of newly-created user accounts."
-msgstr "Une liste de couples composés d'un nom de fichier cible et d'un objet simili-fichier (@pxref{G-Expressions, file-like objects}).  Ce sont les fichiers squelettes qui seront ajoutés au répertoire personnel des comptes utilisateurs nouvellement créés."
+#: doc/guix.texi:13290
+msgid "A list of target file name/file-like object tuples (@pxref{G-Expressions, file-like objects}).  These are the skeleton files that will be added to the home directory of newly-created user accounts."
+msgstr "Une liste de « couples » de noms de fichiers cibles/objets de type fichier (@pxref{G-Expressions, objets de type fichier}).  Ce sont les fichiers squelettes qui seront ajoutés au répertoire d'accueil des comptes utilisatrice·eur·s nouvellement créés."
 
 #. type: table
-#: doc/guix.texi:10579
+#: doc/guix.texi:13292
 msgid "For instance, a valid value may look like this:"
 msgstr "Par exemple, un valeur valide ressemblerait à cela :"
 
-#. type: example
-#: doc/guix.texi:10585
+#. type: lisp
+#: doc/guix.texi:13298
 #, no-wrap
 msgid ""
 "`((\".bashrc\" ,(plain-file \"bashrc\" \"echo Hello\\n\"))\n"
@@ -19116,194 +24061,206 @@ msgstr ""
 "                          (activate-readline)\")))\n"
 
 #. type: item
-#: doc/guix.texi:10587
+#: doc/guix.texi:13300
 #, no-wrap
-msgid "@code{issue} (default: @var{%default-issue})"
-msgstr "@code{issue} (par défaut : @var{%default-issue})"
+msgid "@code{issue} (default: @code{%default-issue})"
+msgstr "@code{issue} (par défaut : @code{%default-issue})"
 
 #. type: table
-#: doc/guix.texi:10590
+#: doc/guix.texi:13303
 msgid "A string denoting the contents of the @file{/etc/issue} file, which is displayed when users log in on a text console."
 msgstr "Une chaîne qui dénote le contenu du fichier @file{/etc/issue} qui est affiché lorsqu'un utilisateur se connecte sur la console."
 
 #. type: item
-#: doc/guix.texi:10591
+#: doc/guix.texi:13304
 #, no-wrap
-msgid "@code{packages} (default: @var{%base-packages})"
-msgstr "@code{packages} (par défaut : @var{%base-packages})"
+msgid "@code{packages} (default: @code{%base-packages})"
+msgstr "@code{packages} (par défaut : @code{%base-packages})"
 
 #. type: table
-#: doc/guix.texi:10594
-msgid "The set of packages installed in the global profile, which is accessible at @file{/run/current-system/profile}."
-msgstr "L'ensemble des paquets installés dans le profil global, qui est accessible à partir de @file{/run/current-system/profile}."
+#: doc/guix.texi:13308
+msgid "A list of packages to be installed in the global profile, which is accessible at @file{/run/current-system/profile}.  Each element is either a package variable or a package/output tuple.  Here's a simple example of both:"
+msgstr "Une liste de paquets à installer dans le profil global, qui est accessible à partir de @file{/run/current-system/profile}. Chaque élément est soit une variable de paquet, soit un tuple de paquet/sortie.  Voici un exemple simple des deux :"
+
+#. type: lisp
+#: doc/guix.texi:13313
+#, no-wrap
+msgid ""
+"(cons* git                     ; the default \"out\" output\n"
+"       (list git \"send-email\") ; another output of git\n"
+"       %base-packages)         ; the default set\n"
+msgstr ""
+"(cons* git                     ; la sortie \"out\" par défaut\n"
+"       (list git \"send-email\") ; une autre sortie de git\n"
+"       %base-packages)         ; l'ensemble par défaut\n"
 
 #. type: table
-#: doc/guix.texi:10598
+#: doc/guix.texi:13318
 msgid "The default set includes core utilities and it is good practice to install non-core utilities in user profiles (@pxref{Invoking guix package})."
 msgstr "L'ensemble par défaut contient les utilitaires de base et c'est une bonne pratique d'installer les utilitaires non essentiels dans les profils utilisateurs (@pxref{Invoking guix package})."
 
 #. type: code{#1}
-#: doc/guix.texi:10599
+#: doc/guix.texi:13319
 #, no-wrap
 msgid "timezone"
 msgstr "timezone"
 
 #. type: table
-#: doc/guix.texi:10601
+#: doc/guix.texi:13321
 msgid "A timezone identifying string---e.g., @code{\"Europe/Paris\"}."
 msgstr "Une chaîne identifiant un fuseau horaire — p.@: ex.@: @code{\"Europe/Paris\"}."
 
 #. type: table
-#: doc/guix.texi:10605
+#: doc/guix.texi:13325
 msgid "You can run the @command{tzselect} command to find out which timezone string corresponds to your region.  Choosing an invalid timezone name causes @command{guix system} to fail."
 msgstr "Vous pouvez lancer la commande @command{tzselect} pour trouver le fuseau horaire correspondant à votre région.  Si vous choisissez un nom de fuseau horaire invalide, @command{guix system} échouera."
 
 #. type: item
-#: doc/guix.texi:10606
+#: doc/guix.texi:13326 doc/guix.texi:18879
 #, no-wrap
 msgid "@code{locale} (default: @code{\"en_US.utf8\"})"
 msgstr "@code{locale} (par défaut : @code{\"en_US.utf8\"})"
 
 #. type: table
-#: doc/guix.texi:10609
+#: doc/guix.texi:13329
 msgid "The name of the default locale (@pxref{Locale Names,,, libc, The GNU C Library Reference Manual}).  @xref{Locales}, for more information."
 msgstr "Le nom du paramètre régional par défaut (@pxref{Locale Names,,, libc, The GNU C Library Reference Manual}).  @xref{Locales}, pour plus d'informations."
 
 #. type: item
-#: doc/guix.texi:10610
+#: doc/guix.texi:13330
 #, no-wrap
-msgid "@code{locale-definitions} (default: @var{%default-locale-definitions})"
-msgstr "@code{locale-definitions} (par défaut : @var{%default-locale-definitions})"
+msgid "@code{locale-definitions} (default: @code{%default-locale-definitions})"
+msgstr "@code{locale-definitions} (par défaut : @code{%default-locale-definitions})"
 
 #. type: table
-#: doc/guix.texi:10613
+#: doc/guix.texi:13333
 msgid "The list of locale definitions to be compiled and that may be used at run time.  @xref{Locales}."
 msgstr "La liste des définitions de locales à compiler et qui devraient être utilisées à l'exécution.  @xref{Locales}."
 
 #. type: item
-#: doc/guix.texi:10614
+#: doc/guix.texi:13334
 #, no-wrap
 msgid "@code{locale-libcs} (default: @code{(list @var{glibc})})"
 msgstr "@code{locale-libcs} (par défaut : @code{(list @var{glibc})})"
 
 #. type: table
-#: doc/guix.texi:10618
+#: doc/guix.texi:13338
 msgid "The list of GNU@tie{}libc packages whose locale data and tools are used to build the locale definitions.  @xref{Locales}, for compatibility considerations that justify this option."
 msgstr "La liste des paquets GNU@tie{}libc dont les données des paramètres linguistiques sont utilisées pour construire les définitions des paramètres linguistiques.  @xref{Locales}, pour des considérations sur la compatibilité qui justifient cette option."
 
 #. type: item
-#: doc/guix.texi:10619
+#: doc/guix.texi:13339
 #, no-wrap
-msgid "@code{name-service-switch} (default: @var{%default-nss})"
-msgstr "@code{name-service-switch} (par défaut : @var{%default-nss})"
+msgid "@code{name-service-switch} (default: @code{%default-nss})"
+msgstr "@code{name-service-switch} (par défaut : @code{%default-nss})"
 
 #. type: table
-#: doc/guix.texi:10623
+#: doc/guix.texi:13343
 msgid "Configuration of the libc name service switch (NSS)---a @code{<name-service-switch>} object.  @xref{Name Service Switch}, for details."
 msgstr "La configuration de NSS de la libc (name service switch) — un objet @code{<name-service-switch>}.  @xref{Name Service Switch}, pour des détails."
 
 #. type: item
-#: doc/guix.texi:10624
+#: doc/guix.texi:13344
 #, no-wrap
-msgid "@code{services} (default: @var{%base-services})"
-msgstr "@code{services} (par défaut : @var{%base-services})"
+msgid "@code{services} (default: @code{%base-services})"
+msgstr "@code{services} (par défaut : @code{%base-services})"
 
 #. type: table
-#: doc/guix.texi:10626
+#: doc/guix.texi:13346
 msgid "A list of service objects denoting system services.  @xref{Services}."
 msgstr "Une liste d'objets services qui dénotent les services du système.  @xref{Services}."
 
 #. type: cindex
-#: doc/guix.texi:10627
+#: doc/guix.texi:13347
 #, no-wrap
 msgid "essential services"
 msgstr "services essentiels"
 
 #. type: item
-#: doc/guix.texi:10628
+#: doc/guix.texi:13348
 #, no-wrap
 msgid "@code{essential-services} (default: ...)"
 msgstr "@code{essential-services} (par défaut : …)"
 
 #. type: table
-#: doc/guix.texi:10633
+#: doc/guix.texi:13353
 msgid "The list of ``essential services''---i.e., things like instances of @code{system-service-type} and @code{host-name-service-type} (@pxref{Service Reference}), which are derived from the operating system definition itself.  As a user you should @emph{never} need to touch this field."
 msgstr "La liste des « services essentiels » — c.-à-d.@: les services comme des instance de @code{system-service-type} et @code{host-name-service-type} (@pxref{Service Reference}), qui sont dérivés de la définition du système d'exploitation lui-même.  En tant qu'utilisateur vous ne devriez @emph{jamais} toucher à ce champ."
 
 #. type: item
-#: doc/guix.texi:10634
+#: doc/guix.texi:13354
 #, no-wrap
 msgid "@code{pam-services} (default: @code{(base-pam-services)})"
 msgstr "@code{pam-services} (par défaut : @code{(base-pam-services)})"
 
 #. type: cindex
-#: doc/guix.texi:10635
+#: doc/guix.texi:13355
 #, no-wrap
 msgid "PAM"
 msgstr "PAM"
 
 #. type: cindex
-#: doc/guix.texi:10636
+#: doc/guix.texi:13356
 #, no-wrap
 msgid "pluggable authentication modules"
 msgstr "pluggable authentication modules"
 
 #. type: table
-#: doc/guix.texi:10639
+#: doc/guix.texi:13359
 msgid "Linux @dfn{pluggable authentication module} (PAM) services."
 msgstr "Services PAM (@dfn{pluggable authentication module}) Linux."
 
 #. type: item
-#: doc/guix.texi:10640
+#: doc/guix.texi:13360
 #, no-wrap
-msgid "@code{setuid-programs} (default: @var{%setuid-programs})"
-msgstr "@code{setuid-programs} (par défaut : @var{%setuid-programs})"
+msgid "@code{setuid-programs} (default: @code{%setuid-programs})"
+msgstr "@code{setuid-programs} (par défaut : @code{%setuid-programs})"
 
 #. type: table
-#: doc/guix.texi:10643
+#: doc/guix.texi:13363
 msgid "List of string-valued G-expressions denoting setuid programs.  @xref{Setuid Programs}."
 msgstr "Liste de G-expressions qui s'évaluent en chaînes de caractères qui dénotent les programmes setuid.  @xref{Setuid Programs}."
 
 #. type: item
-#: doc/guix.texi:10644
+#: doc/guix.texi:13364
 #, no-wrap
-msgid "@code{sudoers-file} (default: @var{%sudoers-specification})"
-msgstr "@code{sudoers-file} (par défaut : @var{%sudoers-specification})"
+msgid "@code{sudoers-file} (default: @code{%sudoers-specification})"
+msgstr "@code{sudoers-file} (par défaut : @code{%sudoers-specification})"
 
 #. type: cindex
-#: doc/guix.texi:10645
+#: doc/guix.texi:13365
 #, no-wrap
 msgid "sudoers file"
 msgstr "fichier sudoers"
 
 #. type: table
-#: doc/guix.texi:10648
+#: doc/guix.texi:13368
 msgid "The contents of the @file{/etc/sudoers} file as a file-like object (@pxref{G-Expressions, @code{local-file} and @code{plain-file}})."
 msgstr "Le contenu du fichier @file{/etc/sudoers} comme un objet simili-fichier (@pxref{G-Expressions, @code{local-file} et @code{plain-file}})."
 
 #. type: table
-#: doc/guix.texi:10653
+#: doc/guix.texi:13373
 msgid "This file specifies which users can use the @command{sudo} command, what they are allowed to do, and what privileges they may gain.  The default is that only @code{root} and members of the @code{wheel} group may use @code{sudo}."
 msgstr "Ce fichier spécifier quels utilisateurs peuvent utiliser la commande @command{sudo}, ce qu'ils ont le droit de faire, et quels privilèges ils peuvent gagner.  La valeur par défaut est que seul @code{root} et les membres du groupe @code{wheel} peuvent utiliser @code{sudo}."
 
 #. type: deffn
-#: doc/guix.texi:10656
+#: doc/guix.texi:13376
 #, no-wrap
 msgid "{Scheme Syntax} this-operating-system"
 msgstr "{Type de données} this-operating-system"
 
 #. type: deffn
-#: doc/guix.texi:10659
+#: doc/guix.texi:13379
 msgid "When used in the @emph{lexical scope} of an operating system field definition, this identifier resolves to the operating system being defined."
 msgstr "Lorsqu'il est utilisée dans la @emph{portée lexicale} de la définition d'un du système d'exploitation, cet identifiant est résolu comme étant le système d'exploitation définit."
 
 #. type: deffn
-#: doc/guix.texi:10662
+#: doc/guix.texi:13382
 msgid "The example below shows how to refer to the operating system being defined in the definition of the @code{label} field:"
 msgstr "L'exemple ci-dessous montre le référencement au système d'exploitation définit dans la définition du champ @code{label} :"
 
-#. type: example
-#: doc/guix.texi:10665 doc/guix.texi:13330
+#. type: lisp
+#: doc/guix.texi:13385 doc/guix.texi:16720
 #, no-wrap
 msgid ""
 "(use-modules (gnu) (guix))\n"
@@ -19312,8 +24269,8 @@ msgstr ""
 "(use-modules (gnu) (guix))\n"
 "\n"
 
-#. type: example
-#: doc/guix.texi:10670
+#. type: lisp
+#: doc/guix.texi:13390
 #, no-wrap
 msgid ""
 "(operating-system\n"
@@ -19327,17 +24284,17 @@ msgstr ""
 "          (operating-system-kernel this-operating-system))))\n"
 
 #. type: deffn
-#: doc/guix.texi:10674
+#: doc/guix.texi:13394
 msgid "It is an error to refer to @code{this-operating-system} outside an operating system definition."
 msgstr "C'est une erreur que de se référer à @code{this-operating-system} en dehors de la définition d'un système d'exploitation."
 
 #. type: Plain text
-#: doc/guix.texi:10685
+#: doc/guix.texi:13405
 msgid "The list of file systems to be mounted is specified in the @code{file-systems} field of the operating system declaration (@pxref{Using the Configuration System}).  Each file system is declared using the @code{file-system} form, like this:"
 msgstr "La liste des systèmes de fichiers à monter est spécifiée dans le champ @code{file-systems} de la déclaration de système d'exploitation (@pxref{Using the Configuration System}).  Chaque système de fichier est déclaré avec la forme @code{file-system}, comme ceci :"
 
-#. type: example
-#: doc/guix.texi:10691
+#. type: lisp
+#: doc/guix.texi:13411
 #, no-wrap
 msgid ""
 "(file-system\n"
@@ -19351,67 +24308,67 @@ msgstr ""
 "  (type \"ext4\"))\n"
 
 #. type: Plain text
-#: doc/guix.texi:10695
+#: doc/guix.texi:13415
 msgid "As usual, some of the fields are mandatory---those shown in the example above---while others can be omitted.  These are described below."
 msgstr "Comme d'habitude, certains de ces champs sont obligatoire — comme le montre l'exemple au-dessus — alors que d'autres peuvent être omis.  Ils sont décrits plus bas."
 
 #. type: deftp
-#: doc/guix.texi:10696
+#: doc/guix.texi:13416
 #, no-wrap
 msgid "{Data Type} file-system"
 msgstr "{Type de données} file-system"
 
 #. type: deftp
-#: doc/guix.texi:10699
+#: doc/guix.texi:13419
 msgid "Objects of this type represent file systems to be mounted.  They contain the following members:"
 msgstr "Les objets de ce type représentent des systèmes de fichiers à monter.  Ils contiennent les membres suivants :"
 
 #. type: item
-#: doc/guix.texi:10701 doc/guix.texi:10892
+#: doc/guix.texi:13421 doc/guix.texi:13765
 #, no-wrap
 msgid "type"
 msgstr "type"
 
 #. type: table
-#: doc/guix.texi:10704
+#: doc/guix.texi:13424
 msgid "This is a string specifying the type of the file system---e.g., @code{\"ext4\"}."
 msgstr "C'est une chaîne de caractères spécifiant le type du système de fichier — p.@: ex.@: @code{\"ext4\"}."
 
 #. type: code{#1}
-#: doc/guix.texi:10705
+#: doc/guix.texi:13425
 #, no-wrap
 msgid "mount-point"
 msgstr "mount-point"
 
 #. type: table
-#: doc/guix.texi:10707
+#: doc/guix.texi:13427
 msgid "This designates the place where the file system is to be mounted."
 msgstr "Désigne l'emplacement où le système de fichier sera monté."
 
 #. type: code{#1}
-#: doc/guix.texi:10708
+#: doc/guix.texi:13428
 #, no-wrap
 msgid "device"
 msgstr "device"
 
 #. type: table
-#: doc/guix.texi:10718
+#: doc/guix.texi:13438
 msgid "This names the ``source'' of the file system.  It can be one of three things: a file system label, a file system UUID, or the name of a @file{/dev} node.  Labels and UUIDs offer a way to refer to file systems without having to hard-code their actual device name@footnote{Note that, while it is tempting to use @file{/dev/disk/by-uuid} and similar device names to achieve the same result, this is not recommended: These special device nodes are created by the udev daemon and may be unavailable at the time the device is mounted.}."
 msgstr "Ce champ nomme le système de fichier « source ».  il peut être l'une de ces trois choses : une étiquette de système de fichiers, un UUID de système de fichier ou le nom d'un nœud dans @file{/dev}.  Les étiquettes et les UUID offrent une manière de se référer à des systèmes de fichiers sans avoir à coder en dur le nom de périphérique@footnote{Remarquez que, s'il est tentant d'utiliser @file{/dev/disk/by-uuid} et autres chemins similaires pour obtenir le même résultat, ce n'est pas recommandé : ces nœuds de périphériques spéciaux sont créés par le démon udev et peuvent ne pas être disponibles au moment de monter le périphérique.}."
 
 #. type: findex
-#: doc/guix.texi:10719
+#: doc/guix.texi:13439
 #, no-wrap
 msgid "file-system-label"
 msgstr "file-system-label"
 
 #. type: table
-#: doc/guix.texi:10724
+#: doc/guix.texi:13444
 msgid "File system labels are created using the @code{file-system-label} procedure, UUIDs are created using @code{uuid}, and @file{/dev} node are plain strings.  Here's an example of a file system referred to by its label, as shown by the @command{e2label} command:"
 msgstr "Les étiquettes de systèmes de fichiers sont crées avec la procédure @code{file-system-label}, les UUID avec @code{uuid} et les nœuds de @file{/dev} sont de simples chaînes de caractères.  Voici un exemple d'un système de fichiers référencé par son étiquette, donnée par la commande @command{e2label} :"
 
-#. type: example
-#: doc/guix.texi:10730
+#. type: lisp
+#: doc/guix.texi:13450
 #, no-wrap
 msgid ""
 "(file-system\n"
@@ -19424,19 +24381,19 @@ msgstr ""
 "  (type \"ext4\")\n"
 "  (device (file-system-label \"my-home\")))\n"
 
-#. type: findex
-#: doc/guix.texi:10732
+#. type: code{#1}
+#: doc/guix.texi:13452 doc/guix.texi:29116
 #, no-wrap
 msgid "uuid"
 msgstr "uuid"
 
 #. type: table
-#: doc/guix.texi:10740
+#: doc/guix.texi:13460
 msgid "UUIDs are converted from their string representation (as shown by the @command{tune2fs -l} command) using the @code{uuid} form@footnote{The @code{uuid} form expects 16-byte UUIDs as defined in @uref{https://tools.ietf.org/html/rfc4122, RFC@tie{}4122}.  This is the form of UUID used by the ext2 family of file systems and others, but it is different from ``UUIDs'' found in FAT file systems, for instance.}, like this:"
 msgstr "Les UUID sont convertis à partir de leur représentation en chaîne de caractères (montrée par la command @command{tune2fs -l}) en utilisant la forme @code{uuid}@footnote{La forme @code{uuid} s'attend à des UUID sur 16 octets définis dans la @uref{https://tools.ietf.org/html/rfc4122, RFC@tie{}4122}.  C'est la forme des UUID utilisées par la famille de systèmes de fichiers ext2 et d'autres, mais ce n'est pas le même type d'UUID que ceux qui se trouvent sur les systèmes de fichiers FAT par exemple}, comme ceci :"
 
-#. type: example
-#: doc/guix.texi:10746
+#. type: lisp
+#: doc/guix.texi:13466
 #, no-wrap
 msgid ""
 "(file-system\n"
@@ -19450,268 +24407,507 @@ msgstr ""
 "  (device (uuid \"4dab5feb-d176-45de-b287-9b0a6e4c01cb\")))\n"
 
 #. type: table
-#: doc/guix.texi:10754
+#: doc/guix.texi:13474
 msgid "When the source of a file system is a mapped device (@pxref{Mapped Devices}), its @code{device} field @emph{must} refer to the mapped device name---e.g., @file{\"/dev/mapper/root-partition\"}.  This is required so that the system knows that mounting the file system depends on having the corresponding device mapping established."
 msgstr "Lorsque la source d'un système de fichiers est un périphérique mappé (@pxref{Mapped Devices}), sont champ @code{device} @emph{doit} se référer au nom du périphérique mappé — p.@: ex.@: @file{\"/dev/mapper/root-partition\"}.  Cela est requis pour que le système sache que monter ce système de fichier dépend de la présence du périphérique mappé correspondant."
 
 #. type: item
-#: doc/guix.texi:10755
+#: doc/guix.texi:13475
 #, no-wrap
 msgid "@code{flags} (default: @code{'()})"
 msgstr "@code{flags} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:10762
-msgid "This is a list of symbols denoting mount flags.  Recognized flags include @code{read-only}, @code{bind-mount}, @code{no-dev} (disallow access to special files), @code{no-suid} (ignore setuid and setgid bits), @code{no-atime} (do not update file access times), and @code{no-exec} (disallow program execution).  @xref{Mount-Unmount-Remount,,, libc, The GNU C Library Reference Manual}, for more information on these flags."
-msgstr "C'est une liste de symboles qui dénotent des drapeaux de montage.  Les drapeaux reconnus sont @code{read-only}, @code{bind-mount}, @code{no-dev} (interdit l'accès aux fichiers spéciaux), @code{no-suid} (ignore les bits setuid et setgid), @code{no-atime} (ne met pas à jour les heures d'accès aux fichiers) et @code{no-exec} (interdit l'exécution de programmes).  @xref{Mount-Unmount-Remount,,, libc, The GNU C Library Reference Manual}, pour plus d'informations sur ces drapeaux."
+#: doc/guix.texi:13485
+msgid "This is a list of symbols denoting mount flags.  Recognized flags include @code{read-only}, @code{bind-mount}, @code{no-dev} (disallow access to special files), @code{no-suid} (ignore setuid and setgid bits), @code{no-atime} (do not update file access times), @code{strict-atime} (update file access time), @code{lazy-time} (only update time on the in-memory version of the file inode), and @code{no-exec} (disallow program execution).  @xref{Mount-Unmount-Remount,,, libc, The GNU C Library Reference Manual}, for more information on these flags."
+msgstr "C'est une liste de symboles qui désignent des drapeaux de montage.  Les drapeaux reconnus sont @code{read-only}, @code{bind-mount}, @code{no-dev} (interdit l'accès aux fichiers spéciaux), @code{no-suid} (ignore les bits setuid et setgid), @code{no-atime} (ne met pas à jour les heures d'accès aux fichiers) et @code{no-exec} (interdit l'exécution de programmes).  @xref{Mount-Unmount-Remount,,, libc, The GNU C Library Reference Manual}, pour plus d'informations sur ces drapeaux."
 
 #. type: item
-#: doc/guix.texi:10763
+#: doc/guix.texi:13486
 #, no-wrap
 msgid "@code{options} (default: @code{#f})"
 msgstr "@code{options} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:10768
-msgid "This is either @code{#f}, or a string denoting mount options passed to the file system driver.  @xref{Mount-Unmount-Remount,,, libc, The GNU C Library Reference Manual}, for details and run @command{man 8 mount} for options for various file systems."
-msgstr "Cela vous soit @code{#f} soit il s'agit d'une chaîne dénotant des options à passer au pilote du système de fichiers.  @xref{Mount-Unmount-Remount,,, libc, The GNU C Library Reference Manual}, pour des détails et lancez @command{man 8 mount} pour trouver des options pour divers systèmes de fichiers."
+#: doc/guix.texi:13495
+msgid "This is either @code{#f}, or a string denoting mount options passed to the file system driver.  @xref{Mount-Unmount-Remount,,, libc, The GNU C Library Reference Manual}, for details and run @command{man 8 mount} for options for various file systems.  Note that the @code{file-system-options->alist} and @code{alist->file-system-options} procedures from @code{(gnu system file-systems)} can be used to convert file system options given as an association list to the string representation, and vice-versa."
+msgstr "Il s'agit soit de @code{#f}, soit d'une chaîne indiquant les options de montage passées au pilote du système de fichiers.  @xref{Mount-Unmount-Remount,,, libc, The GNU C Library Reference Manual}, pour plus de détails et lancez @command{man 8 mount} pour les options des différents systèmes de fichiers.  Notez que les procédures @code{file-system-options->alist} et @code{alist->file-system-options} de @code{(gnu system file-systems)} peuvent être utilisées pour convertir des options de systèmes de fichiers données sous forme de liste d'association en représentation de chaîne de caractères, et vice-versa."
 
 #. type: item
-#: doc/guix.texi:10769
+#: doc/guix.texi:13496
 #, no-wrap
 msgid "@code{mount?} (default: @code{#t})"
 msgstr "@code{mount?} (par défaut : @code{#t})"
 
 #. type: table
-#: doc/guix.texi:10774
+#: doc/guix.texi:13501
 msgid "This value indicates whether to automatically mount the file system when the system is brought up.  When set to @code{#f}, the file system gets an entry in @file{/etc/fstab} (read by the @command{mount} command) but is not automatically mounted."
 msgstr "Cette valeur indique s'il faut monter automatiquement le système de fichier au démarrage du système.  Lorsque la valeur est @code{#f}, le système de fichier reçoit une entrée dans @file{/etc/fstab} (lue par la commande @command{mount}) mais n'est pas monté automatiquement."
 
 #. type: item
-#: doc/guix.texi:10775
+#: doc/guix.texi:13502
 #, no-wrap
 msgid "@code{needed-for-boot?} (default: @code{#f})"
 msgstr "@code{needed-for-boot?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:10780
+#: doc/guix.texi:13507
 msgid "This Boolean value indicates whether the file system is needed when booting.  If that is true, then the file system is mounted when the initial RAM disk (initrd) is loaded.  This is always the case, for instance, for the root file system."
 msgstr "Cette valeur booléenne indique si le système de fichier est nécessaire au démarrage.  Si c'est vrai alors le système de fichier est monté au chargement du disque de RAM initial.  C'est toujours le cas par exemple du système de fichiers racine."
 
 #. type: item
-#: doc/guix.texi:10781
+#: doc/guix.texi:13508
 #, no-wrap
 msgid "@code{check?} (default: @code{#t})"
 msgstr "@code{check?} (par défaut : @code{#t})"
 
 #. type: table
-#: doc/guix.texi:10784
+#: doc/guix.texi:13511
 msgid "This Boolean indicates whether the file system needs to be checked for errors before being mounted."
 msgstr "Cette valeur booléenne indique si le système de fichier doit être vérifié avant de le monter."
 
 #. type: item
-#: doc/guix.texi:10785
+#: doc/guix.texi:13512
 #, no-wrap
 msgid "@code{create-mount-point?} (default: @code{#f})"
 msgstr "@code{create-mount-point?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:10787
+#: doc/guix.texi:13514
 msgid "When true, the mount point is created if it does not exist yet."
 msgstr "Lorsque cette valeur est vraie, le point de montage est créé s'il n'existe pas déjà."
 
 #. type: item
-#: doc/guix.texi:10788
+#: doc/guix.texi:13515
+#, no-wrap
+msgid "@code{mount-may-fail?} (default: @code{#f})"
+msgstr "@code{mount-may-fail?} (par défaut : @code{#t})"
+
+#. type: table
+#: doc/guix.texi:13520
+msgid "When true, this indicates that mounting this file system can fail but that should not be considered an error.  This is useful in unusual cases; an example of this is @code{efivarfs}, a file system that can only be mounted on EFI/UEFI systems."
+msgstr "Lorsque cela est vrai, indique que le montage de ce système de fichiers peut échouer, mais cela ne doit pas être considéré comme une erreur.  Ceci est utile dans des cas inhabituels ; un exemple de ceci est @code{efivarfs}, un système de fichiers qui ne peut être monté que sur des systèmes EFI/UEFI."
+
+#. type: item
+#: doc/guix.texi:13521
 #, no-wrap
 msgid "@code{dependencies} (default: @code{'()})"
 msgstr "@code{dependencies} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:10792
+#: doc/guix.texi:13525
 msgid "This is a list of @code{<file-system>} or @code{<mapped-device>} objects representing file systems that must be mounted or mapped devices that must be opened before (and unmounted or closed after) this one."
 msgstr "C'est une liste d'objets @code{<file-system>} ou @code{<mapped-device>} qui représentent les systèmes de fichiers qui doivent être montés ou les périphériques mappés qui doivent être ouverts avant (et monté ou fermés après) celui-ci."
 
 #. type: table
-#: doc/guix.texi:10796
+#: doc/guix.texi:13529
 msgid "As an example, consider a hierarchy of mounts: @file{/sys/fs/cgroup} is a dependency of @file{/sys/fs/cgroup/cpu} and @file{/sys/fs/cgroup/memory}."
 msgstr "Par exemple, considérons une hiérarchie de montage : @file{/sys/fs/cgroup} est une dépendance de @file{/sys/fs/cgroup/cpu} et @file{/sys/fs/cgroup/memory}."
 
 #. type: table
-#: doc/guix.texi:10799
+#: doc/guix.texi:13532
 msgid "Another example is a file system that depends on a mapped device, for example for an encrypted partition (@pxref{Mapped Devices})."
 msgstr "Un autre exemple est un système de fichier qui dépend d'un périphérique mappé, par exemple pour une partition chiffrée (@pxref{Mapped Devices})."
 
+#. type: deffn
+#: doc/guix.texi:13535
+#, no-wrap
+msgid "{Scheme Procedure} file-system-label @var{str}"
+msgstr "{Procédure Scheme} file-system-label @var{str}"
+
+#. type: deffn
+#: doc/guix.texi:13538
+msgid "This procedure returns an opaque file system label from @var{str}, a string:"
+msgstr "Cette procédure renvoie un label de système de fichiers opaque à partir de @var{str}, une chaîne de caractères :"
+
+#. type: lisp
+#: doc/guix.texi:13542
+#, no-wrap
+msgid ""
+"(file-system-label \"home\")\n"
+"@result{} #<file-system-label \"home\">\n"
+msgstr ""
+"(file-system-label \"home\")\n"
+"@result{} #<file-system-label \"home\">\n"
+
+#. type: deffn
+#: doc/guix.texi:13546
+msgid "File system labels are used to refer to file systems by label rather than by device name.  See above for examples."
+msgstr "Les étiquettes de systèmes de fichiers sont utilisées pour faire référence aux systèmes de fichiers par étiquette plutôt que par nom de dispositif.  Voir ci-dessus pour des exemples."
+
 #. type: Plain text
-#: doc/guix.texi:10804
+#: doc/guix.texi:13550
 msgid "The @code{(gnu system file-systems)} exports the following useful variables."
 msgstr "Le module @code{(gnu system file-systems)} exporte les variables utiles suivantes."
 
 #. type: defvr
-#: doc/guix.texi:10805
+#: doc/guix.texi:13551
 #, no-wrap
 msgid "{Scheme Variable} %base-file-systems"
 msgstr "{Variable Scheme} %base-file-systems"
 
 #. type: defvr
-#: doc/guix.texi:10810
-msgid "These are essential file systems that are required on normal systems, such as @var{%pseudo-terminal-file-system} and @var{%immutable-store} (see below.)  Operating system declarations should always contain at least these."
-msgstr "Ce sont les systèmes de fichiers essentiels qui sont requis sur les systèmes normaux, comme @var{%pseudo-terminal-file-system} et @var{%immutable-store} (voir plus bas).  Les déclarations de systèmes d'exploitation devraient au moins les contenir."
+#: doc/guix.texi:13556
+msgid "These are essential file systems that are required on normal systems, such as @code{%pseudo-terminal-file-system} and @code{%immutable-store} (see below).  Operating system declarations should always contain at least these."
+msgstr "Ce sont les systèmes de fichiers essentiels qui sont requis sur les systèmes normaux, comme @code{%pseudo-terminal-file-system} et @code{%immutable-store} (voir plus bas).  Les déclarations de systèmes d'exploitation devraient au moins les contenir."
 
 #. type: defvr
-#: doc/guix.texi:10812
+#: doc/guix.texi:13558
 #, no-wrap
 msgid "{Scheme Variable} %pseudo-terminal-file-system"
 msgstr "{Variable Scheme} %pseudo-terminal-file-system"
 
 #. type: defvr
-#: doc/guix.texi:10818
+#: doc/guix.texi:13564
 msgid "This is the file system to be mounted as @file{/dev/pts}.  It supports @dfn{pseudo-terminals} created @i{via} @code{openpty} and similar functions (@pxref{Pseudo-Terminals,,, libc, The GNU C Library Reference Manual}).  Pseudo-terminals are used by terminal emulators such as @command{xterm}."
 msgstr "C'est le système de fichier monté sur @file{/dev/pts}.  Il supporte les @dfn{pseudo-terminaux} créés via @code{openpty} et les fonctions similaires (@pxref{Pseudo-Terminals,,, libc, The GNU C Library Reference Manual}).  Les pseudo-terminaux sont utilisés par les émulateurs de terminaux comme @command{xterm}."
 
 #. type: defvr
-#: doc/guix.texi:10820
+#: doc/guix.texi:13566
 #, no-wrap
 msgid "{Scheme Variable} %shared-memory-file-system"
 msgstr "{Variable Scheme} %shared-memory-file-system"
 
 #. type: defvr
-#: doc/guix.texi:10824
+#: doc/guix.texi:13570
 msgid "This file system is mounted as @file{/dev/shm} and is used to support memory sharing across processes (@pxref{Memory-mapped I/O, @code{shm_open},, libc, The GNU C Library Reference Manual})."
 msgstr "Ce système de fichier est monté dans @file{/dev/shm} et est utilisé pour le partage de mémoire entre processus (@pxref{Memory-mapped I/O, @code{shm_open},, libc, The GNU C Library Reference Manual})."
 
 #. type: defvr
-#: doc/guix.texi:10826
+#: doc/guix.texi:13572
 #, no-wrap
 msgid "{Scheme Variable} %immutable-store"
 msgstr "{Variable Scheme} %immutable-store"
 
 #. type: defvr
-#: doc/guix.texi:10831
+#: doc/guix.texi:13577
 msgid "This file system performs a read-only ``bind mount'' of @file{/gnu/store}, making it read-only for all the users including @code{root}.  This prevents against accidental modification by software running as @code{root} or by system administrators."
 msgstr "Ce système de fichiers effectue un « montage lié » en lecture-seule de @file{/gnu/store}, ce qui en fait un répertoire en lecture-seule pour tous les utilisateurs dont @code{root}.  Cela évite que des logiciels qui tournent en @code{root} ou des administrateurs systèmes ne modifient accidentellement le dépôt."
 
 #. type: defvr
-#: doc/guix.texi:10834
+#: doc/guix.texi:13580
 msgid "The daemon itself is still able to write to the store: it remounts it read-write in its own ``name space.''"
 msgstr "Le démon lui-même est toujours capable d'écrire dans le dépôt : il est remonté en lecture-écriture dans son propre « espace de nom »."
 
 #. type: defvr
-#: doc/guix.texi:10836
+#: doc/guix.texi:13582
 #, no-wrap
 msgid "{Scheme Variable} %binary-format-file-system"
 msgstr "{Variable Scheme} %binary-format-file-system"
 
 #. type: defvr
-#: doc/guix.texi:10840
+#: doc/guix.texi:13586
 msgid "The @code{binfmt_misc} file system, which allows handling of arbitrary executable file types to be delegated to user space.  This requires the @code{binfmt.ko} kernel module to be loaded."
 msgstr "Le système de fichiers @code{binfmt_misc}, qui permet de gérer n'importe quel type de fichiers exécutables à déléguer en espace utilisateur.  Cela demande que le module du noyau @code{binfmt.ko} soit chargé."
 
 #. type: defvr
-#: doc/guix.texi:10842
+#: doc/guix.texi:13588
 #, no-wrap
 msgid "{Scheme Variable} %fuse-control-file-system"
 msgstr "{Variable Scheme} %fuse-control-file-system"
 
 #. type: defvr
-#: doc/guix.texi:10846
+#: doc/guix.texi:13592
 msgid "The @code{fusectl} file system, which allows unprivileged users to mount and unmount user-space FUSE file systems.  This requires the @code{fuse.ko} kernel module to be loaded."
 msgstr "Le système de fichiers @code{fusectl}, qui permet à des utilisateurs non privilégiés de monter et de démonter des systèmes de fichiers FUSE en espace utilisateur.  Cela requiert que le module du noyau @code{fuse.ko} soit chargé."
 
+#. type: Plain text
+#: doc/guix.texi:13596
+msgid "The @code{(gnu system uuid)} module provides tools to deal with file system ``unique identifiers'' (UUIDs)."
+msgstr "Le module @code{(gnu system uuid)} fournit les outils pour traiter les « identifiants uniques » de système de fichier (UUIDs)."
+
+#. type: deffn
+#: doc/guix.texi:13597
+#, no-wrap
+msgid "{Scheme Procedure} uuid @var{str} [@var{type}]"
+msgstr "{Procédure Scheme} uuid @var{type} [@var{value}]"
+
+#. type: deffn
+#: doc/guix.texi:13600
+msgid "Return an opaque UUID (unique identifier) object of the given @var{type} (a symbol) by parsing @var{str} (a string):"
+msgstr "Renvoie un objet UUID (identifiant unique) opaque du @var{type} donné (un symbole) en analysant @var{str} (une chaîne) :"
+
+#. type: lisp
+#: doc/guix.texi:13604
+#, no-wrap
+msgid ""
+"(uuid \"4dab5feb-d176-45de-b287-9b0a6e4c01cb\")\n"
+"@result{} #<<uuid> type: dce bv: @dots{}>\n"
+"\n"
+msgstr ""
+"(uuid \"4dab5feb-d176-45de-b287-9b0a6e4c01cb\")\n"
+"@result{} #<uuid> type: dce bv: @dots{}>\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:13607
+#, no-wrap
+msgid ""
+"(uuid \"1234-ABCD\" 'fat)\n"
+"@result{} #<<uuid> type: fat bv: @dots{}>\n"
+msgstr ""
+"(uuid \"1234-ABCD\" 'fat)\n"
+"@result{} #<uuid> type: fat bv: @dots{}>\n"
+
+#. type: deffn
+#: doc/guix.texi:13611
+msgid "@var{type} may be one of @code{dce}, @code{iso9660}, @code{fat}, @code{ntfs}, or one of the commonly found synonyms for these."
+msgstr "@var{type} peut être l'un des codes suivants : @code{dce}, @code{iso9660}, @code{fat}, @code{ntfs}, ou l'un des synonymes les plus courants."
+
+#. type: deffn
+#: doc/guix.texi:13614
+msgid "UUIDs are another way to unambiguously refer to file systems in operating system configuration.  See the examples above."
+msgstr "Les UUIDs sont un autre moyen de faire référence sans ambiguïté aux systèmes de fichiers dans la configuration du système d'exploitation.  Voir les exemples ci-dessus."
+
+#. type: subsection
+#: doc/guix.texi:13617 doc/guix.texi:13618
+#, no-wrap
+msgid "Btrfs file system"
+msgstr "Système de fichier Btrfs"
+
+#. type: Plain text
+#: doc/guix.texi:13624
+msgid "The Btrfs has special features, such as subvolumes, that merit being explained in more details.  The following section attempts to cover basic as well as complex uses of a Btrfs file system with the Guix System."
+msgstr "Btrfs a des particularités, comme les sous-volumes, qui méritent d'être expliquées plus en détail.  La section suivante tente de couvrir les utilisations de base ainsi que les utilisations complexes d'un système de fichiers Btrfs avec le système Guix."
+
+#. type: Plain text
+#: doc/guix.texi:13627
+msgid "In its simplest usage, a Btrfs file system can be described, for example, by:"
+msgstr "Dans son usage le plus simple, un système de fichier Btrfs peut être décrit, par exemple, par :"
+
+#. type: lisp
+#: doc/guix.texi:13633
+#, no-wrap
+msgid ""
+"(file-system\n"
+"  (mount-point \"/home\")\n"
+"  (type \"btrfs\")\n"
+"  (device (file-system-label \"my-home\")))\n"
+msgstr ""
+"(file-system\n"
+"  (mount-point \"/home\")\n"
+"  (type \"btrfs\")\n"
+"  (device (file-system-label \"my-home\")))\n"
+
+#. type: Plain text
+#: doc/guix.texi:13639
+msgid "The example below is more complex, as it makes use of a Btrfs subvolume, named @code{rootfs}.  The parent Btrfs file system is labeled @code{my-btrfs-pool}, and is located on an encrypted device (hence the dependency on @code{mapped-devices}):"
+msgstr "L'exemple ci-dessous est plus complexe, car il utilise un sous-volume de Btrfs, nommé @code{rootfs}.  Le système de fichiers Btrfs parent est appelé @code{my-btrfs-pool}, et se trouve sur un périphérique crypté (d'où la dépendance à l'égard de @code{mapped-devices}) :"
+
+#. type: lisp
+#: doc/guix.texi:13647
+#, no-wrap
+msgid ""
+"(file-system\n"
+"  (device (file-system-label \"my-btrfs-pool\"))\n"
+"  (mount-point \"/\")\n"
+"  (type \"btrfs\")\n"
+"  (options \"subvol=rootfs\")\n"
+"  (dependencies mapped-devices))\n"
+msgstr ""
+"(file-system\n"
+"  (device (file-system-label \"my-btrfs-pool\"))\n"
+"  (mount-point \"/\")\n"
+"  (type \"btrfs\")\n"
+"  (options \"subvol=rootfs\")\n"
+"  (dependencies mapped-devices))\n"
+
+#. type: Plain text
+#: doc/guix.texi:13658
+msgid "Some bootloaders, for example GRUB, only mount a Btrfs partition at its top level during the early boot, and rely on their configuration to refer to the correct subvolume path within that top level.  The bootloaders operating in this way typically produce their configuration on a running system where the Btrfs partitions are already mounted and where the subvolume information is readily available.  As an example, @command{grub-mkconfig}, the configuration generator command shipped with GRUB, reads @file{/proc/self/mountinfo} to determine the top-level path of a subvolume."
+msgstr "Certains chargeurs d'amorçage, par exemple GRUB, ne montent une partition Btrfs qu'à son niveau supérieur au début du démarrage, et s'appuient sur leur configuration pour se référer au chemin correct du sous-volume à l'intérieur de ce niveau supérieur.  Les chargeurs d'amorçage fonctionnant de cette manière produisent généralement leur configuration sur un système en cours d'exécution où les partitions Btrfs sont déjà montées et où les informations sur les sous-volumes sont facilement disponibles.  Par exemple, @command{grub-mkconfig}, la commande de générateur de configuration livrée avec GRUB, lit @file{/proc/self/mountinfo} pour déterminer le chemin de niveau supérieur d'un sous-volume."
+
+#. type: Plain text
+#: doc/guix.texi:13666
+msgid "The Guix System produces a bootloader configuration using the operating system configuration as its sole input; it is therefore necessary to extract the subvolume name on which @file{/gnu/store} lives (if any)  from that operating system configuration.  To better illustrate, consider a subvolume named 'rootfs' which contains the root file system data.  In such situation, the GRUB bootloader would only see the top level of the root Btrfs partition, e.g.:"
+msgstr "Guix  System produit une configuration de bootloader en utilisant la configuration du système d'exploitation comme seule entrée ; il est donc nécessaire d'extraire le nom du sous-volume sur lequel vit @file{/gnu/store} (s'il existe) de cette configuration du système d'exploitation.  Pour mieux illustrer cela, considérons un sous-volume nommé \"rootfs\" qui contient les données du système de fichiers racine.  Dans une telle situation, le chargeur de démarrage GRUB ne verrait que le niveau supérieur de la partition Btrfs de la racine, par exemple :"
+
+#. type: example
+#: doc/guix.texi:13673
+#, no-wrap
+msgid ""
+"/                   (top level)\n"
+"├── rootfs          (subvolume directory)\n"
+"    ├── gnu         (normal directory)\n"
+"        ├── store   (normal directory)\n"
+"[...]\n"
+msgstr ""
+"/                   (niveau supérieur)\n"
+"├── rootfs          (répertoire des sous-volumes)\n"
+"    ├── gnu         (répertoire normal)\n"
+"        ├── store   (répertoire normal)\n"
+"[...]\n"
+
+#. type: Plain text
+#: doc/guix.texi:13678
+msgid "Thus, the subvolume name must be prepended to the @file{/gnu/store} path of the kernel, initrd binaries and any other files referred to in the GRUB configuration that must be found during the early boot."
+msgstr "Ainsi, le nom du sous-volume doit être précédé du chemin @file{/gnu/store} du noyau, des binaires initrd et de tout autre fichier mentionné dans la configuration GRUB qui doit être trouvé au début du démarrage."
+
+#. type: Plain text
+#: doc/guix.texi:13681
+msgid "The next example shows a nested hierarchy of subvolumes and directories:"
+msgstr "L'exemple suivant montre une hiérarchie imbriquée de sous-volumes et de répertoires :"
+
+#. type: example
+#: doc/guix.texi:13688
+#, no-wrap
+msgid ""
+"/                   (top level)\n"
+"├── rootfs          (subvolume)\n"
+"    ├── gnu         (normal directory)\n"
+"        ├── store   (subvolume)\n"
+"[...]\n"
+msgstr ""
+"/                   (niveau supérieur)\n"
+"├── rootfs          (sous-volume)\n"
+"    ├── gnu         (répertoire normal)\n"
+"        ├── store   (sous-volume)\n"
+"[...]\n"
+
+#. type: Plain text
+#: doc/guix.texi:13695
+msgid "This scenario would work without mounting the 'store' subvolume.  Mounting 'rootfs' is sufficient, since the subvolume name matches its intended mount point in the file system hierarchy.  Alternatively, the 'store' subvolume could be referred to by setting the @code{subvol} option to either @code{/rootfs/gnu/store} or @code{rootfs/gnu/store}."
+msgstr "Ce scénario fonctionnerait sans monter le sous-volume « store ».  Le montage de \"rootfs\" est suffisant, puisque le nom du sous-volume correspond à son point de montage prévu dans la hiérarchie du système de fichiers.  Une autre solution consiste à faire référence au sous-volume « store » en définissant l'option @code{subvol} soit @code{/rootfs/gnu/store} soit @code{rootfs/gnu/store}."
+
+#. type: Plain text
+#: doc/guix.texi:13697
+msgid "Finally, a more contrived example of nested subvolumes:"
+msgstr "Enfin, un exemple plus élaboré de sous-volumes imbriqués :"
+
+#. type: example
+#: doc/guix.texi:13704
+#, no-wrap
+msgid ""
+"/                           (top level)\n"
+"├── root-snapshots          (subvolume)\n"
+"    ├── root-current        (subvolume)\n"
+"        ├── guix-store      (subvolume)\n"
+"[...]\n"
+msgstr ""
+"/                           (niveau supérieur)\n"
+"├── root-snapshots          (sous-volume)\n"
+"    ├── root-current        (sous-volume)\n"
+"        ├── guix-store      (sous-volume)\n"
+"[...]\n"
+
+#. type: Plain text
+#: doc/guix.texi:13711
+msgid "Here, the 'guix-store' subvolume doesn't match its intended mount point, so it is necessary to mount it.  The subvolume must be fully specified, by passing its file name to the @code{subvol} option.  To illustrate, the 'guix-store' subvolume could be mounted on @file{/gnu/store} by using a file system declaration such as:"
+msgstr "Ici, le sous-volume « guix-store » ne correspond pas à son point de montage prévu, il est donc nécessaire de le monter.  Le sous-volume doit être entièrement spécifié, en passant son nom de fichier à l'option @code{subvol}.  Par exemple, le sous-volume « guix-store » peut être monté sur @file{/gnu/store} en utilisant une déclaration de système de fichiers telle que :"
+
+#. type: lisp
+#: doc/guix.texi:13719
+#, no-wrap
+msgid ""
+"(file-system\n"
+"  (device (file-system-label \"btrfs-pool-1\"))\n"
+"  (mount-point \"/gnu/store\")\n"
+"  (type \"btrfs\")\n"
+"  (options \"subvol=root-snapshots/root-current/guix-store,\\\n"
+"compress-force=zstd,space_cache=v2\"))\n"
+msgstr ""
+"(file-system\n"
+"  (device (file-system-label \"btrfs-pool-1\"))\n"
+"  (mount-point \"/gnu/store\")\n"
+"  (type \"btrfs\")\n"
+"  (options \"subvol=root-snapshots/root-current/guix-store,\\\n"
+"compress-force=zstd,space_cache=v2\"))\n"
+
 #. type: cindex
-#: doc/guix.texi:10851
+#: doc/guix.texi:13724
 #, no-wrap
 msgid "device mapping"
 msgstr "mappage de périphériques"
 
 #. type: cindex
-#: doc/guix.texi:10852
+#: doc/guix.texi:13725
 #, no-wrap
 msgid "mapped devices"
 msgstr "périphériques mappés"
 
 #. type: Plain text
-#: doc/guix.texi:10870
+#: doc/guix.texi:13743
 msgid "The Linux kernel has a notion of @dfn{device mapping}: a block device, such as a hard disk partition, can be @dfn{mapped} into another device, usually in @code{/dev/mapper/}, with additional processing over the data that flows through it@footnote{Note that the GNU@tie{}Hurd makes no difference between the concept of a ``mapped device'' and that of a file system: both boil down to @emph{translating} input/output operations made on a file to operations on its backing store.  Thus, the Hurd implements mapped devices, like file systems, using the generic @dfn{translator} mechanism (@pxref{Translators,,, hurd, The GNU Hurd Reference Manual}).}.  A typical example is encryption device mapping: all writes to the mapped device are encrypted, and all reads are deciphered, transparently.  Guix extends this notion by considering any device or set of devices that are @dfn{transformed} in some way to create a new device; for instance, RAID devices are obtained by @dfn{assembling} several other devices, such as hard disks or partitions, into a new one that behaves as one partition.  Other examples, not yet implemented, are LVM logical volumes."
 msgstr "Le noyau Linux a une notion de @dfn{mappage de périphériques} : un périphérique bloc, comme une partition sur un disque dur, peut être @dfn{mappé} sur un autre périphérique, typiquement dans @code{/dev/mapper}, avec des calculs supplémentaires sur les données qui naviguent entre les deux@footnote{Remarquez que le Hurd ne fait pas de différence entre le concept de « périphérique mappé » et celle d'un système de fichiers : les deux correspondent à la @emph{traduction} des opérations d'entrée-sortie faites sur un fichier en des opérations sur ce qui le contient.  Ainsi, le Hurd implémente les périphériques mappés, comme les systèmes de fichiers, avec le mécanisme des @dfn{traducteurs} générique (@pxref{Translators,,, hurd, The GNU Hurd Reference Manual}).}.  Un exemple typique est le mappage de périphériques chiffrés : toutes les écritures sont sur le périphérique mappé sont chiffrées, toutes les lectures déchiffrées, de manière transparente.  Guix étend cette notion en considérant que tout périphérique ou ensemble de périphériques qui sont @dfn{transformés} d'une certaine manière créent un nouveau périphérique ; par exemple, les périphériques RAID sont obtenus en @dfn{assemblant} plusieurs autres périphériques, comme des disque ou des partitions, en un nouveau périphérique en tant qu'unique partition.  Un autre exemple, qui n'est pas encore disponible, sont les volumes logiques LVM."
 
 #. type: Plain text
-#: doc/guix.texi:10873
+#: doc/guix.texi:13746
 msgid "Mapped devices are declared using the @code{mapped-device} form, defined as follows; for examples, see below."
 msgstr "Les périphériques mappés sont déclarés avec la forme @code{mapped-device}, définie comme suit ; par exemple, voir ci-dessous."
 
 #. type: deftp
-#: doc/guix.texi:10874
+#: doc/guix.texi:13747
 #, no-wrap
 msgid "{Data Type} mapped-device"
 msgstr "{Type de données} mapped-device"
 
 #. type: deftp
-#: doc/guix.texi:10877
+#: doc/guix.texi:13750
 msgid "Objects of this type represent device mappings that will be made when the system boots up."
 msgstr "Les objets de ce type représentent des mappages de périphériques qui seront effectués au démarrage du système."
 
 #. type: table
-#: doc/guix.texi:10883
+#: doc/guix.texi:13756
 msgid "This is either a string specifying the name of the block device to be mapped, such as @code{\"/dev/sda3\"}, or a list of such strings when several devices need to be assembled for creating a new one."
 msgstr "C'est soit une chaîne qui spécifie le nom d'un périphérique bloc à mapper, comme @code{\"/dev/sda3\"}, soit une liste de plusieurs périphériques à assembler pour en créer un nouveau."
 
 #. type: code{#1}
-#: doc/guix.texi:10884 doc/guix.texi:24075
+#: doc/guix.texi:13757 doc/guix.texi:30418
 #, no-wrap
 msgid "target"
 msgstr "target"
 
 #. type: table
-#: doc/guix.texi:10891
+#: doc/guix.texi:13764
 msgid "This string specifies the name of the resulting mapped device.  For kernel mappers such as encrypted devices of type @code{luks-device-mapping}, specifying @code{\"my-partition\"} leads to the creation of the @code{\"/dev/mapper/my-partition\"} device.  For RAID devices of type @code{raid-device-mapping}, the full device name such as @code{\"/dev/md0\"} needs to be given."
 msgstr "Cette chaîne spécifie le nom du périphérique mappé qui en résulte.  Pour les mappeurs noyaux comme les périphériques chiffrés de type @code{luks-device-mapping}, spécifier @code{\"ma-partition\"} crée le périphérique @code{\"/dev/mapper/ma-partition\"}.  Pour les périphériques RAID de type @code{raid-device-mapping}, il faut donner le nom complet comme @code{\"/dev/md0\"}."
 
 #. type: table
-#: doc/guix.texi:10895
+#: doc/guix.texi:13768
 msgid "This must be a @code{mapped-device-kind} object, which specifies how @var{source} is mapped to @var{target}."
 msgstr "Ce doit être un objets @code{mapped-device-kind}, qui spécifie comment @var{source} est mappés sur @var{target}."
 
 #. type: defvr
-#: doc/guix.texi:10898
+#: doc/guix.texi:13771
 #, no-wrap
 msgid "{Scheme Variable} luks-device-mapping"
 msgstr "{Variable Scheme} luks-device-mapping"
 
 #. type: defvr
-#: doc/guix.texi:10902
+#: doc/guix.texi:13775
 msgid "This defines LUKS block device encryption using the @command{cryptsetup} command from the package with the same name.  It relies on the @code{dm-crypt} Linux kernel module."
 msgstr "Cela définie les périphériques blocs chiffrés en LUKS avec @command{cryptsetup} du paquet du même nom.  Elle s'appuie sur le module du noyau Linux @code{dm-crypt}."
 
 #. type: defvr
-#: doc/guix.texi:10904
+#: doc/guix.texi:13777
 #, no-wrap
 msgid "{Scheme Variable} raid-device-mapping"
 msgstr "{Variable Scheme} raid-device-mapping"
 
 #. type: defvr
-#: doc/guix.texi:10909
+#: doc/guix.texi:13782
 msgid "This defines a RAID device, which is assembled using the @code{mdadm} command from the package with the same name.  It requires a Linux kernel module for the appropriate RAID level to be loaded, such as @code{raid456} for RAID-4, RAID-5 or RAID-6, or @code{raid10} for RAID-10."
 msgstr "Cela définie un périphérique RAID qui est assemblé avec la commande @code{mdadm} du paquet du même nom.  Elle nécessite un module noyau Linux approprié pour le niveau RAID chargé, comme @code{raid456} pour RAID-4, RAID-5 et RAID-6 ou @code{raid10} pour RAID-10."
 
 #. type: cindex
-#: doc/guix.texi:10911
+#: doc/guix.texi:13784
 #, no-wrap
 msgid "disk encryption"
 msgstr "chiffrement du disque"
 
 #. type: cindex
-#: doc/guix.texi:10912
+#: doc/guix.texi:13785
 #, no-wrap
 msgid "LUKS"
 msgstr "LUKS"
 
 #. type: Plain text
-#: doc/guix.texi:10920
+#: doc/guix.texi:13793
 msgid "The following example specifies a mapping from @file{/dev/sda3} to @file{/dev/mapper/home} using LUKS---the @url{https://gitlab.com/cryptsetup/cryptsetup,Linux Unified Key Setup}, a standard mechanism for disk encryption.  The @file{/dev/mapper/home} device can then be used as the @code{device} of a @code{file-system} declaration (@pxref{File Systems})."
 msgstr "L'exemple suivant spécifie un mappage de @file{/dev/sda3} vers @file{/dev/mapper/home} avec LUKS — @url{https://gitlab.com/cryptsetup/cryptsetup,Linux Unified Key Setup}, un mécanisme standard pour chiffrer les disques.  Le périphérique @file{/dev/mapper/home} peut ensuite être utilisé comme @code{device} d'une déclaration @code{file-system} (@pxref{File Systems})."
 
-#. type: example
-#: doc/guix.texi:10926
+#. type: lisp
+#: doc/guix.texi:13799
 #, no-wrap
 msgid ""
 "(mapped-device\n"
@@ -19725,23 +24921,23 @@ msgstr ""
 "  (type luks-device-mapping))\n"
 
 #. type: Plain text
-#: doc/guix.texi:10931
+#: doc/guix.texi:13804
 msgid "Alternatively, to become independent of device numbering, one may obtain the LUKS UUID (@dfn{unique identifier}) of the source device by a command like:"
 msgstr "Autrement, pour devenir indépendant du numéro de périphérique, on peut obtenir l'UUID LUKS (@dfn{l'identifiant unique}) du périphérique source avec une commande comme :"
 
 #. type: example
-#: doc/guix.texi:10934
+#: doc/guix.texi:13807
 #, no-wrap
 msgid "cryptsetup luksUUID /dev/sda3\n"
 msgstr "cryptsetup luksUUID /dev/sda3\n"
 
 #. type: Plain text
-#: doc/guix.texi:10937
+#: doc/guix.texi:13810
 msgid "and use it as follows:"
 msgstr "et l'utiliser ainsi :"
 
-#. type: example
-#: doc/guix.texi:10943
+#. type: lisp
+#: doc/guix.texi:13816
 #, no-wrap
 msgid ""
 "(mapped-device\n"
@@ -19755,23 +24951,23 @@ msgstr ""
 "  (type luks-device-mapping))\n"
 
 #. type: cindex
-#: doc/guix.texi:10945
+#: doc/guix.texi:13818
 #, no-wrap
 msgid "swap encryption"
 msgstr "chiffrement de l'espace d'échange"
 
 #. type: Plain text
-#: doc/guix.texi:10951
+#: doc/guix.texi:13824
 msgid "It is also desirable to encrypt swap space, since swap space may contain sensitive data.  One way to accomplish that is to use a swap file in a file system on a device mapped via LUKS encryption.  In this way, the swap file is encrypted because the entire device is encrypted.  @xref{Preparing for Installation,,Disk Partitioning}, for an example."
 msgstr "Il est aussi désirable de chiffrer l'espace d'échange, puisque l'espace d'échange peut contenir des données sensibles.  Une manière de faire cela est d'utiliser un fichier d'échange dans un système de fichiers sur un périphérique mappé avec un chiffrement LUKS.  De cette manière, le fichier d'échange est chiffré parce que tout le périphérique est chiffré.  @xref{Preparing for Installation,,Disk Partitioning}, pour un exemple."
 
 #. type: Plain text
-#: doc/guix.texi:10954
+#: doc/guix.texi:13827
 msgid "A RAID device formed of the partitions @file{/dev/sda1} and @file{/dev/sdb1} may be declared as follows:"
 msgstr "Un périphérique RAID formé des partitions @file{/dev/sda1} et @file{/dev/sdb1} peut être déclaré ainsi :"
 
-#. type: example
-#: doc/guix.texi:10960
+#. type: lisp
+#: doc/guix.texi:13833
 #, no-wrap
 msgid ""
 "(mapped-device\n"
@@ -19785,35 +24981,35 @@ msgstr ""
 "  (type raid-device-mapping))\n"
 
 #. type: Plain text
-#: doc/guix.texi:10967
+#: doc/guix.texi:13840
 msgid "The @file{/dev/md0} device can then be used as the @code{device} of a @code{file-system} declaration (@pxref{File Systems}).  Note that the RAID level need not be given; it is chosen during the initial creation and formatting of the RAID device and is determined automatically later."
 msgstr "Le périphérique @file{/dev/md0} peut ensuite être utilisé comme @code{device} d'une déclaration @code{file-system} (@pxref{File Systems}).  Remarquez que le niveau de RAID n'a pas besoin d'être donné ; il est choisi pendant la création initiale du périphérique RAID et est ensuite déterminé automatiquement."
 
 #. type: cindex
-#: doc/guix.texi:10972
+#: doc/guix.texi:13845
 #, no-wrap
 msgid "users"
 msgstr "utilisateurs"
 
 #. type: cindex
-#: doc/guix.texi:10973
+#: doc/guix.texi:13846
 #, no-wrap
 msgid "accounts"
 msgstr "comptes"
 
 #. type: cindex
-#: doc/guix.texi:10974
+#: doc/guix.texi:13847
 #, no-wrap
 msgid "user accounts"
 msgstr "comptes utilisateurs"
 
 #. type: Plain text
-#: doc/guix.texi:10978
+#: doc/guix.texi:13851
 msgid "User accounts and groups are entirely managed through the @code{operating-system} declaration.  They are specified with the @code{user-account} and @code{user-group} forms:"
 msgstr "Les comptes utilisateurs et les groupes sont gérés entièrement par la déclaration @code{operating-system}.  Ils sont spécifiés avec les formes @code{user-account} et @code{user-group} :"
 
-#. type: example
-#: doc/guix.texi:10989
+#. type: lisp
+#: doc/guix.texi:13861
 #, no-wrap
 msgid ""
 "(user-account\n"
@@ -19823,8 +25019,7 @@ msgid ""
 "                          \"audio\"   ;sound card\n"
 "                          \"video\"   ;video devices such as webcams\n"
 "                          \"cdrom\")) ;the good ol' CD-ROM\n"
-"  (comment \"Bob's sister\")\n"
-"  (home-directory \"/home/alice\"))\n"
+"  (comment \"Bob's sister\"))\n"
 msgstr ""
 "(user-account\n"
 "  (name \"alice\")\n"
@@ -19833,153 +25028,192 @@ msgstr ""
 "                          \"audio\"   ;carte son\n"
 "                          \"video\"   ;périphériques réseaux comme les webcams\n"
 "                          \"cdrom\")) ;le bon vieux CD-ROM\n"
-"  (comment \"Bob's sister\")\n"
-"  (home-directory \"/home/alice\"))\n"
+"  (comment \"Bob's sister\"))\n"
+
+#. type: Plain text
+#: doc/guix.texi:13865
+msgid "Here's a user account that uses a different shell and a custom home directory (the default would be @file{\"/home/bob\"}):"
+msgstr "Voici un compte d'utilisateur·rice qui utilise un shell différent et un répertoire d'accueil personnalisé (le répertoire par défaut serait @file{\"/home/bob\"}) :"
+
+#. type: lisp
+#: doc/guix.texi:13873
+#, no-wrap
+msgid ""
+"(user-account\n"
+"  (name \"bob\")\n"
+"  (group \"users\")\n"
+"  (comment \"Alice's bro\")\n"
+"  (shell (file-append zsh \"/bin/zsh\"))\n"
+"  (home-directory \"/home/robert\"))\n"
+msgstr ""
+"(user-account\n"
+"  (name \"bob\")\n"
+"  (group \"users\")\n"
+"  (comment \"Alice's bro\")\n"
+"  (shell (file-append zsh \"/bin/zsh\"))\n"
+"  (home-directory \"/home/robert\"))\n"
 
 #. type: Plain text
-#: doc/guix.texi:10998
+#: doc/guix.texi:13882
 msgid "When booting or upon completion of @command{guix system reconfigure}, the system ensures that only the user accounts and groups specified in the @code{operating-system} declaration exist, and with the specified properties.  Thus, account or group creations or modifications made by directly invoking commands such as @command{useradd} are lost upon reconfiguration or reboot.  This ensures that the system remains exactly as declared."
 msgstr "Lors du démarrage ou à la fin de @command{guix system reconfigure}, le système s'assure que seuls les comptes utilisateurs et les groupes spécifiés dans la déclaration @code{operating-system} existent, et avec les propriétés spécifiées.  Ainsi, les modifications ou les créations de comptes ou de groupes effectuées directement en invoquant des commandes comme @command{useradd} sont perdue à la reconfiguration ou au redémarrage.  Cela permet de s'assurer que le système reste exactement tel que déclaré."
 
 #. type: deftp
-#: doc/guix.texi:10999
+#: doc/guix.texi:13883
 #, no-wrap
 msgid "{Data Type} user-account"
 msgstr "{Type de données} user-account"
 
 #. type: deftp
-#: doc/guix.texi:11002
+#: doc/guix.texi:13886
 msgid "Objects of this type represent user accounts.  The following members may be specified:"
 msgstr "Les objets de se type représentent les comptes utilisateurs.  Les membres suivants peuvent être spécifiés :"
 
 #. type: table
-#: doc/guix.texi:11006
+#: doc/guix.texi:13890
 msgid "The name of the user account."
 msgstr "Le nom du compte utilisateur."
 
 #. type: itemx
-#: doc/guix.texi:11007 doc/guix.texi:23811
+#: doc/guix.texi:13891 doc/guix.texi:30105
 #, no-wrap
 msgid "group"
 msgstr "group"
 
 #. type: cindex
-#: doc/guix.texi:11008 doc/guix.texi:11075
+#: doc/guix.texi:13892 doc/guix.texi:13971
 #, no-wrap
 msgid "groups"
 msgstr "groupes"
 
 #. type: table
-#: doc/guix.texi:11011
+#: doc/guix.texi:13895
 msgid "This is the name (a string) or identifier (a number) of the user group this account belongs to."
 msgstr "C'est le nom (une chaîne) ou un identifiant (un nombre) du groupe utilisateur auquel ce compte appartient."
 
 #. type: item
-#: doc/guix.texi:11012
+#: doc/guix.texi:13896
 #, no-wrap
 msgid "@code{supplementary-groups} (default: @code{'()})"
 msgstr "@code{supplementary-groups} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:11015
+#: doc/guix.texi:13899
 msgid "Optionally, this can be defined as a list of group names that this account belongs to."
 msgstr "Éventuellement, cela peut être définie comme une liste de noms de groupes auxquels ce compte appartient."
 
 #. type: item
-#: doc/guix.texi:11016
+#: doc/guix.texi:13900
 #, no-wrap
 msgid "@code{uid} (default: @code{#f})"
 msgstr "@code{uid} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:11020
+#: doc/guix.texi:13904
 msgid "This is the user ID for this account (a number), or @code{#f}.  In the latter case, a number is automatically chosen by the system when the account is created."
 msgstr "C'est l'ID utilisateur de ce compte (un nombre) ou @code{#f}.  Dans ce dernier cas, le nombre est choisi automatiquement par le système à la création du compte."
 
 #. type: item
-#: doc/guix.texi:11021
+#: doc/guix.texi:13905
 #, no-wrap
 msgid "@code{comment} (default: @code{\"\"})"
 msgstr "@code{comment} (par défaut : @code{\"\"})"
 
 #. type: table
-#: doc/guix.texi:11023
+#: doc/guix.texi:13907
 msgid "A comment about the account, such as the account owner's full name."
 msgstr "Un commentaire à propos du compte, comme le nom complet de l'utilisateur."
 
 #. type: code{#1}
-#: doc/guix.texi:11024
+#: doc/guix.texi:13908
 #, no-wrap
 msgid "home-directory"
 msgstr "home-directory"
 
 #. type: table
-#: doc/guix.texi:11026
+#: doc/guix.texi:13910
 msgid "This is the name of the home directory for the account."
 msgstr "C'est le nom du répertoire personnel du compte."
 
 #. type: item
-#: doc/guix.texi:11027
+#: doc/guix.texi:13911
 #, no-wrap
 msgid "@code{create-home-directory?} (default: @code{#t})"
 msgstr "@code{create-home-directory?} (par défaut : @code{#t})"
 
 #. type: table
-#: doc/guix.texi:11030
+#: doc/guix.texi:13914
 msgid "Indicates whether the home directory of this account should be created if it does not exist yet."
 msgstr "Indique si le répertoire personnel du compte devrait être créé s'il n'existe pas déjà."
 
 #. type: item
-#: doc/guix.texi:11031
+#: doc/guix.texi:13915
 #, no-wrap
 msgid "@code{shell} (default: Bash)"
 msgstr "@code{shell} (par défaut : Bash)"
 
 #. type: table
-#: doc/guix.texi:11034
-msgid "This is a G-expression denoting the file name of a program to be used as the shell (@pxref{G-Expressions})."
-msgstr "C'est une G-expression qui dénote un nom de fichier d'un programme utilisé comme shell (@pxref{G-Expressions})."
+#: doc/guix.texi:13919
+msgid "This is a G-expression denoting the file name of a program to be used as the shell (@pxref{G-Expressions}).  For example, you would refer to the Bash executable like this:"
+msgstr "C'est une G-expression qui désigne le nom de fichier d'un programme utilisé comme shell (@pxref{G-Expressions}). Par exemple, vous pourriez vous référer à l'exécutable Bash comme ceci :"
+
+#. type: lisp
+#: doc/guix.texi:13922
+#, no-wrap
+msgid "(file-append bash \"/bin/bash\")\n"
+msgstr "(file-append bash \"/bin/bash\")\n"
+
+#. type: table
+#: doc/guix.texi:13926
+msgid "... and to the Zsh executable like that:"
+msgstr "... et à l' exécutable Zsh  comme ceci :"
+
+#. type: lisp
+#: doc/guix.texi:13929
+#, no-wrap
+msgid "(file-append zsh \"/bin/zsh\")\n"
+msgstr "(file-append zsh \"/bin/zsh\")\n"
 
 #. type: item
-#: doc/guix.texi:11035 doc/guix.texi:11093
+#: doc/guix.texi:13931 doc/guix.texi:13989
 #, no-wrap
 msgid "@code{system?} (default: @code{#f})"
 msgstr "@code{system?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:11039
+#: doc/guix.texi:13935
 msgid "This Boolean value indicates whether the account is a ``system'' account.  System accounts are sometimes treated specially; for instance, graphical login managers do not list them."
 msgstr "C'est une valeur booléenne qui indique si le compte est un compte « système ».  Les comptes systèmes sont parfois traités à part ; par exemple, les gestionnaires de connexion graphiques ne les liste pas."
 
 #. type: anchor{#1}
-#: doc/guix.texi:11041
+#: doc/guix.texi:13937
 msgid "user-account-password"
 msgstr "user-account-password"
 
 #. type: cindex
-#: doc/guix.texi:11041
+#: doc/guix.texi:13937
 #, no-wrap
 msgid "password, for user accounts"
 msgstr "mot de passe, pour les comptes utilisateurs"
 
 #. type: item
-#: doc/guix.texi:11042 doc/guix.texi:11097
+#: doc/guix.texi:13938 doc/guix.texi:13993 doc/guix.texi:29121
 #, no-wrap
 msgid "@code{password} (default: @code{#f})"
 msgstr "@code{password} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:11048
+#: doc/guix.texi:13944
 msgid "You would normally leave this field to @code{#f}, initialize user passwords as @code{root} with the @command{passwd} command, and then let users change it with @command{passwd}.  Passwords set with @command{passwd} are of course preserved across reboot and reconfiguration."
 msgstr "Vous laisseriez normalement ce champ à @code{#f} et initialiseriez les mots de passe utilisateurs en tant que @code{root} avec la commande @command{passwd}, puis laisseriez l'utilisateur le changer avec @command{passwd}.  Les mots de passes définis avec @command{passwd} sont bien sûr préservés après redémarrage et reconfiguration."
 
 #. type: table
-#: doc/guix.texi:11052
+#: doc/guix.texi:13948
 msgid "If you @emph{do} want to set an initial password for an account, then this field must contain the encrypted password, as a string.  You can use the @code{crypt} procedure for this purpose:"
 msgstr "Si vous voulez @emph{vraiment} définir un mot de passe pour un compte, alors ce champ doit contenir le mot de passe chiffré, comme une chaîne de caractère.  Vous pouvez utiliser la procédure @code{crypt} pour cela :"
 
-#. type: example
-#: doc/guix.texi:11057
+#. type: lisp
+#: doc/guix.texi:13953
 #, no-wrap
 msgid ""
 "(user-account\n"
@@ -19992,8 +25226,8 @@ msgstr ""
 "  (group \"users\")\n"
 "\n"
 
-#. type: example
-#: doc/guix.texi:11060
+#. type: lisp
+#: doc/guix.texi:13956
 #, no-wrap
 msgid ""
 "  ;; Specify a SHA-512-hashed initial password.\n"
@@ -20003,150 +25237,173 @@ msgstr ""
 "  (password (crypt \"InitialPassword!\" \"$6$abc\")))\n"
 
 #. type: quotation
-#: doc/guix.texi:11066
+#: doc/guix.texi:13962
 msgid "The hash of this initial password will be available in a file in @file{/gnu/store}, readable by all the users, so this method must be used with care."
 msgstr "Le hash de ce mot de passe initial sera disponible dans un fichier dans @file{/gnu/store}, lisible par tous les utilisateurs, donc cette méthode est à utiliser avec soin."
 
 #. type: table
-#: doc/guix.texi:11071
+#: doc/guix.texi:13967
 msgid "@xref{Passphrase Storage,,, libc, The GNU C Library Reference Manual}, for more information on password encryption, and @ref{Encryption,,, guile, GNU Guile Reference Manual}, for information on Guile's @code{crypt} procedure."
 msgstr "@xref{Passphrase Storage,,, libc, The GNU C Library Reference Manual}, pour plus d'information sur le chiffrement des mots de passe et @ref{Encryption,,, guile, GNU Guile Reference Manual}, pour des informations sur la procédure @code{crypt} de Guile."
 
 #. type: Plain text
-#: doc/guix.texi:11077
+#: doc/guix.texi:13973
 msgid "User group declarations are even simpler:"
 msgstr "Les déclarations de groupes sont encore plus simple :"
 
-#. type: example
-#: doc/guix.texi:11080
+#. type: lisp
+#: doc/guix.texi:13976
 #, no-wrap
 msgid "(user-group (name \"students\"))\n"
 msgstr "(user-group (name \"students\"))\n"
 
 #. type: deftp
-#: doc/guix.texi:11082
+#: doc/guix.texi:13978
 #, no-wrap
 msgid "{Data Type} user-group"
 msgstr "{Type de données} user-group"
 
 #. type: deftp
-#: doc/guix.texi:11084
+#: doc/guix.texi:13980
 msgid "This type is for, well, user groups.  There are just a few fields:"
 msgstr "C'est le type pour, hé bien, les comptes utilisateurs.  Il n'y a que quelques champs :"
 
 #. type: table
-#: doc/guix.texi:11088
+#: doc/guix.texi:13984
 msgid "The name of the group."
 msgstr "Le nom du groupe."
 
 #. type: item
-#: doc/guix.texi:11089
+#: doc/guix.texi:13985 doc/guix.texi:26987
 #, no-wrap
 msgid "@code{id} (default: @code{#f})"
 msgstr "@code{id} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:11092
+#: doc/guix.texi:13988
 msgid "The group identifier (a number).  If @code{#f}, a new number is automatically allocated when the group is created."
 msgstr "L'identifiant du groupe (un nombre).  S'il est @code{#f}, un nouveau nombre est alloué automatiquement lorsque le groupe est créé."
 
 #. type: table
-#: doc/guix.texi:11096
+#: doc/guix.texi:13992
 msgid "This Boolean value indicates whether the group is a ``system'' group.  System groups have low numerical IDs."
 msgstr "Cette valeur booléenne indique si le groupe est un groupe « système ».  les groupes systèmes ont un numéro d'ID bas."
 
 #. type: table
-#: doc/guix.texi:11100
+#: doc/guix.texi:13996
 msgid "What, user groups can have a password? Well, apparently yes.  Unless @code{#f}, this field specifies the password of the group."
 msgstr "Quoi, les groupes utilisateurs peuvent avoir des mots de passe ?  On dirait bien.  À moins que la valeur ne soit @code{#f}, ce champ spécifie le mot de passe du groupe."
 
 #. type: Plain text
-#: doc/guix.texi:11106
+#: doc/guix.texi:14002
 msgid "For convenience, a variable lists all the basic user groups one may expect:"
 msgstr "Par simplicité, une variable liste les groupes utilisateurs de base auxquels on pourrait s'attendre :"
 
 #. type: defvr
-#: doc/guix.texi:11107
+#: doc/guix.texi:14003
 #, no-wrap
 msgid "{Scheme Variable} %base-groups"
 msgstr "{Variable Scheme} %base-groups"
 
 #. type: defvr
-#: doc/guix.texi:11112
+#: doc/guix.texi:14008
 msgid "This is the list of basic user groups that users and/or packages expect to be present on the system.  This includes groups such as ``root'', ``wheel'', and ``users'', as well as groups used to control access to specific devices such as ``audio'', ``disk'', and ``cdrom''."
 msgstr "C'est la liste des groupes utilisateur de base que les utilisateurs et les paquets s'attendent à trouver sur le système.  Cela comprend des groupes comme « root », « wheel » et « users », ainsi que des groupes utilisés pour contrôler l'accès à certains périphériques, comme « audio », « disk » et « cdrom »."
 
 #. type: defvr
-#: doc/guix.texi:11114
+#: doc/guix.texi:14010
 #, no-wrap
 msgid "{Scheme Variable} %base-user-accounts"
 msgstr "{Variable Scheme} %base-user-accounts"
 
 #. type: defvr
-#: doc/guix.texi:11117
+#: doc/guix.texi:14013
 msgid "This is the list of basic system accounts that programs may expect to find on a GNU/Linux system, such as the ``nobody'' account."
 msgstr "C'est la liste des compte du système de base que les programmes peuvent s'attendre à trouver sur un système GNU/Linux, comme le compte « nobody »."
 
 #. type: defvr
-#: doc/guix.texi:11120
+#: doc/guix.texi:14016
 msgid "Note that the ``root'' account is not included here.  It is a special-case and is automatically added whether or not it is specified."
 msgstr "Remarquez que le compte « root » n'est pas défini ici.  C'est un cas particulier et il est automatiquement ajouté qu'il soit spécifié ou non."
 
 #. type: cindex
-#: doc/guix.texi:11126
+#: doc/guix.texi:14022
 #, no-wrap
 msgid "keymap"
 msgstr "disposition clavier"
 
 #. type: Plain text
-#: doc/guix.texi:11134
+#: doc/guix.texi:14030
 msgid "To specify what each key of your keyboard does, you need to tell the operating system what @dfn{keyboard layout} you want to use.  The default, when nothing is specified, is the US English QWERTY layout for 105-key PC keyboards.  However, German speakers will usually prefer the German QWERTZ layout, French speakers will want the AZERTY layout, and so on; hackers might prefer Dvorak or bépo, and they might even want to further customize the effect of some of the keys.  This section explains how to get that done."
 msgstr "Pour spécifier ce que fait chaque touche de votre clavier, vous devez dire au système d'exploitation quel @dfn{disposition du clavier} vous voulez utiliser.  Par défaut, lorsque rien n'est spécifié, la disposition QWERTY pour l'anglais américain pour les claviers 105 touches est utilisée.  Cependant, les germanophones préfèrent généralement la disposition QWERTZ, les francophones la disposition AZERTY etc.@: ; les hackers peuvent préférer Dvorak ou bépo, et peuvent même vouloir personnaliser plus en détails l'effet de certaines touches.  Cette section explique comment faire cela."
 
 #. type: cindex
-#: doc/guix.texi:11135
+#: doc/guix.texi:14031
 #, no-wrap
 msgid "keyboard layout, definition"
 msgstr "disposition du clavier, définition"
 
 #. type: Plain text
-#: doc/guix.texi:11137
+#: doc/guix.texi:14033
 msgid "There are three components that will want to know about your keyboard layout:"
 msgstr "Il y a trois composants qui devront connaître votre disposition du clavier :"
 
 #. type: itemize
-#: doc/guix.texi:11144
+#: doc/guix.texi:14040
 msgid "The @emph{bootloader} may want to know what keyboard layout you want to use (@pxref{Bootloader Configuration, @code{keyboard-layout}}).  This is useful if you want, for instance, to make sure that you can type the passphrase of your encrypted root partition using the right layout."
 msgstr "Le @emph{chargeur d'amorçage} peut avoir besoin de connaître la disposition clavier que vous voulez utiliser (@pxref{Bootloader Configuration, @code{keyboard-layout}}).  C'est utile si vous voulez par exemple vous assurer que vous pouvez saisir la phrase de passe de votre partition racine chiffrée avec la bonne disposition."
 
 #. type: itemize
-#: doc/guix.texi:11149
+#: doc/guix.texi:14045
 msgid "The @emph{operating system kernel}, Linux, will need that so that the console is properly configured (@pxref{operating-system Reference, @code{keyboard-layout}})."
 msgstr "Le @emph{noyau du système d'exploitation}, Linux, en aura besoin pour configurer correctement la console (@pxref{operating-system Reference, @code{keyboard-layout}})."
 
 #. type: itemize
-#: doc/guix.texi:11153
+#: doc/guix.texi:14049
 msgid "The @emph{graphical display server}, usually Xorg, also has its own idea of the keyboard layout (@pxref{X Window, @code{keyboard-layout}})."
 msgstr "Le @emph{serveur d'affichage graphique}, habituellement Xorg, a aussi sa propre idée sur la disposition du clavier à utiliser (@pxref{X Window, @code{keyboard-layout}})."
 
 #. type: Plain text
-#: doc/guix.texi:11157
+#: doc/guix.texi:14053
 msgid "Guix allows you to configure all three separately but, fortunately, it allows you to share the same keyboard layout for all three components."
 msgstr "Guix vous permet de configurer les trois séparément mais, heureusement, il vous permet de partager la même disposition du clavier pour chacun des trois composants."
 
 #. type: cindex
-#: doc/guix.texi:11158
+#: doc/guix.texi:14054
 #, no-wrap
 msgid "XKB, keyboard layouts"
 msgstr "XKB, disposition du clavier"
 
 #. type: Plain text
-#: doc/guix.texi:11166
-msgid "Keyboard layouts are represented by records created by the @code{keyboard-layout} procedure of @code{(gnu system keyboard)}.  Following the X Keyboard extension (XKB), each layout has four attributes: a name (often a language code such as ``fi'' for Finnish or ``jp'' for Japanese), an optional variant name, an optional keyboard model name, and a possibly empty list of additional options.  In most cases the layout name is all you care about.  Here are a few example:"
-msgstr "Les dispositions de clavier sont représentées par des enregistrements créés par la procédure @code{keyboard-layout} de @code{(gnu system keyboard)}.  En suivant l'extension clavier de X (XKB), chaque disposition a trois attributs : un nom (souvent un code de langue comme « fi » pour le finnois ou « jp » pour le japonais), un nom de variante facultatif, un nom de modèle de clavier facultatif et une liste éventuellement vide d'options supplémentaires.  Dans la plupart des cas, vous n'aurez besoin que du nom de la disposition.  Voici quelques exemples :"
+#: doc/guix.texi:14062
+msgid "Keyboard layouts are represented by records created by the @code{keyboard-layout} procedure of @code{(gnu system keyboard)}.  Following the X Keyboard extension (XKB), each layout has four attributes: a name (often a language code such as ``fi'' for Finnish or ``jp'' for Japanese), an optional variant name, an optional keyboard model name, and a possibly empty list of additional options.  In most cases the layout name is all you care about."
+msgstr "Les dispositions de clavier sont représentées par des enregistrements créés par la procédure @code{keyboard-layout} de @code{(gnu system keyboard)}.  En suivant l'extension clavier de X (XKB), chaque disposition a quatre attributs : un nom (souvent un code de langue comme « fi » pour le finnois ou « jp » pour le japonais), un nom de variante facultatif, un nom de modèle de clavier facultatif et une liste éventuellement vide d'options supplémentaires.  Dans la plupart des cas, vous n'aurez besoin que du nom de la disposition."
 
-#. type: example
-#: doc/guix.texi:11171
+#. type: deffn
+#: doc/guix.texi:14063
+#, no-wrap
+msgid "{Scheme Procedure} keyboard-layout @var{name} [@var{variant}] @"
+msgstr "{Procédure Scheme} keyboard-layout @var{nom} [@var{variante}] @"
+
+#. type: deffn
+#: doc/guix.texi:14066
+msgid "[#:model] [#:options '()] Return a new keyboard layout with the given @var{name} and @var{variant}."
+msgstr ""
+"[#:model] [#:options '()]\n"
+"Renvoie une nouvelle disposition de clavier avec les @var{nom} et @var{variante} donnés."
+
+#. type: deffn
+#: doc/guix.texi:14070
+msgid "@var{name} must be a string such as @code{\"fr\"}; @var{variant} must be a string such as @code{\"bepo\"} or @code{\"nodeadkeys\"}.  See the @code{xkeyboard-config} package for valid options."
+msgstr "@var{nom} doit être une chaine comme @code{\"fr\"} ; @var{variante} doit être une chaine comme @code{\"bepo\"} ou @code{\"nodeadkeys\"}.  Vois le paquet @code{xkeyboard-config} pour les options valides."
+
+#. type: Plain text
+#: doc/guix.texi:14073
+msgid "Here are a few examples:"
+msgstr "Voici quelques exemples :"
+
+#. type: lisp
+#: doc/guix.texi:14078
 #, no-wrap
 msgid ""
 ";; The German QWERTZ layout.  Here we assume a standard\n"
@@ -20159,8 +25416,8 @@ msgstr ""
 "(keyboard-layout \"de\")\n"
 "\n"
 
-#. type: example
-#: doc/guix.texi:11174
+#. type: lisp
+#: doc/guix.texi:14081
 #, no-wrap
 msgid ""
 ";; The bépo variant of the French layout.\n"
@@ -20171,8 +25428,8 @@ msgstr ""
 "(keyboard-layout \"fr\" \"bepo\")\n"
 "\n"
 
-#. type: example
-#: doc/guix.texi:11177
+#. type: lisp
+#: doc/guix.texi:14084
 #, no-wrap
 msgid ""
 ";; The Catalan layout.\n"
@@ -20183,8 +25440,20 @@ msgstr ""
 "(keyboard-layout \"es\" \"cat\")\n"
 "\n"
 
-#. type: example
-#: doc/guix.texi:11184
+#. type: lisp
+#: doc/guix.texi:14087
+#, no-wrap
+msgid ""
+";; Arabic layout with \"Alt-Shift\" to switch to US layout.\n"
+"(keyboard-layout \"ar,us\" #:options '(\"grp:alt_shift_toggle\"))\n"
+"\n"
+msgstr ""
+";; Disposition du clavier en langue arabe avec « Alt-Shift » pour passer à la mise en page US.\n"
+"(keyboard-layout \"ar,us\" #:options '(\"grp:alt_shift_toggle\"))\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:14094
 #, no-wrap
 msgid ""
 ";; The Latin American Spanish layout.  In addition, the\n"
@@ -20203,8 +25472,8 @@ msgstr ""
 "                 #:options '(\"ctrl:nocaps\" \"compose:menu\"))\n"
 "\n"
 
-#. type: example
-#: doc/guix.texi:11187
+#. type: lisp
+#: doc/guix.texi:14097
 #, no-wrap
 msgid ""
 ";; The Russian layout for a ThinkPad keyboard.\n"
@@ -20215,8 +25484,8 @@ msgstr ""
 "(keyboard-layout \"ru\" #:model \"thinkpad\")\n"
 "\n"
 
-#. type: example
-#: doc/guix.texi:11192
+#. type: lisp
+#: doc/guix.texi:14102
 #, no-wrap
 msgid ""
 ";; The \"US international\" layout, which is the US layout plus\n"
@@ -20230,29 +25499,29 @@ msgstr ""
 "(keyboard-layout \"us\" \"intl\" #:model \"macbook78\")\n"
 
 #. type: Plain text
-#: doc/guix.texi:11196
+#: doc/guix.texi:14106
 msgid "See the @file{share/X11/xkb} directory of the @code{xkeyboard-config} package for a complete list of supported layouts, variants, and models."
 msgstr "Voir le répertoire @file{share/X11/xkb} du paquet @code{xkeyboard-config} pour une liste complète des disposition, des variantes et des modèles pris en charge."
 
 #. type: cindex
-#: doc/guix.texi:11197
+#: doc/guix.texi:14107
 #, no-wrap
 msgid "keyboard layout, configuration"
 msgstr "disposition du clavier, configuration"
 
 #. type: Plain text
-#: doc/guix.texi:11201
+#: doc/guix.texi:14111
 msgid "Let's say you want your system to use the Turkish keyboard layout throughout your system---bootloader, console, and Xorg.  Here's what your system configuration would look like:"
 msgstr "Disons que vous voulez que votre système utilise la disposition turque sur tout le système — du chargeur d'amorçage à Xorg en passant par la console.  Voici ce que votre configuration du système contiendrait :"
 
 #. type: findex
-#: doc/guix.texi:11202
+#: doc/guix.texi:14112
 #, no-wrap
 msgid "set-xorg-configuration"
 msgstr "set-xorg-configuration"
 
 #. type: lisp
-#: doc/guix.texi:11206
+#: doc/guix.texi:14116
 #, no-wrap
 msgid ""
 ";; Using the Turkish layout for the bootloader, the console,\n"
@@ -20263,7 +25532,7 @@ msgstr ""
 ";; la console et Xorg.\n"
 
 #. type: lisp
-#: doc/guix.texi:11218
+#: doc/guix.texi:14128
 #, no-wrap
 msgid ""
 "(operating-system\n"
@@ -20291,76 +25560,76 @@ msgstr ""
 "                  %desktop-services)))\n"
 
 #. type: Plain text
-#: doc/guix.texi:11225
+#: doc/guix.texi:14135
 msgid "In the example above, for GRUB and for Xorg, we just refer to the @code{keyboard-layout} field defined above, but we could just as well refer to a different layout.  The @code{set-xorg-configuration} procedure communicates the desired Xorg configuration to the graphical log-in manager, by default GDM."
 msgstr "Dans l'exemple ci-dessus, pour GRUB et pour Xorg, nous nous référons simplement au champ @code{keyboard-layout} au dessus, mais on pourrait aussi bien se référer à une autre disposition.  La procédure @code{set-xorg-configuration} communique la configuration Xorg désirée au gestionnaire de connexion, par défaut GDM."
 
 #. type: Plain text
-#: doc/guix.texi:11228
+#: doc/guix.texi:14138
 msgid "We've discussed how to specify the @emph{default} keyboard layout of your system when it starts, but you can also adjust it at run time:"
 msgstr "Nous avons discuté de la manière de spécifier la disposition du clavier @emph{par défaut} lorsque votre système démarre, mais vous pouvez aussi l'ajuster à l'exécution :"
 
 #. type: itemize
-#: doc/guix.texi:11233
+#: doc/guix.texi:14143
 msgid "If you're using GNOME, its settings panel has a ``Region & Language'' entry where you can select one or more keyboard layouts."
 msgstr "Si vous utilisez GNOME, son panneau de configuration contient une entrée « Région & Langues » où vous pouvez choisir une ou plusieurs dispositions du clavier."
 
 #. type: itemize
-#: doc/guix.texi:11238
+#: doc/guix.texi:14148
 msgid "Under Xorg, the @command{setxkbmap} command (from the same-named package)  allows you to change the current layout.  For example, this is how you would change the layout to US Dvorak:"
 msgstr "Sous Xorg, la commande @command{sexkbmap} (du paquet du même nom) vous permet de changer la disposition actuelle.  Par exemple, voilà comment changer la disposition pour un Dvorak américain :"
 
 #. type: example
-#: doc/guix.texi:11241
+#: doc/guix.texi:14151
 #, no-wrap
 msgid "setxkbmap us dvorak\n"
 msgstr "setxkbmap us dvorak\n"
 
 #. type: itemize
-#: doc/guix.texi:11248
+#: doc/guix.texi:14158
 msgid "The @code{loadkeys} command changes the keyboard layout in effect in the Linux console.  However, note that @code{loadkeys} does @emph{not} use the XKB keyboard layout categorization described above.  The command below loads the French bépo layout:"
 msgstr "La commande @code{loadkey} change la disposition du clavier dans la console Linux.  Cependant, remarque que @code{loadkeys} n'utilise @emph{pas} la catégorisation des dispositions XKB décrite plus haut.  La commande suivante charge la disposition bépo française :"
 
 #. type: example
-#: doc/guix.texi:11251
+#: doc/guix.texi:14161
 #, no-wrap
 msgid "loadkeys fr-bepo\n"
 msgstr "loadkeys fr-bepo\n"
 
 #. type: cindex
-#: doc/guix.texi:11257
+#: doc/guix.texi:14167
 #, no-wrap
 msgid "locale"
 msgstr "paramètres linguistiques"
 
 #. type: Plain text
-#: doc/guix.texi:11264
+#: doc/guix.texi:14174
 msgid "A @dfn{locale} defines cultural conventions for a particular language and region of the world (@pxref{Locales,,, libc, The GNU C Library Reference Manual}).  Each locale has a name that typically has the form @code{@var{language}_@var{territory}.@var{codeset}}---e.g., @code{fr_LU.utf8} designates the locale for the French language, with cultural conventions from Luxembourg, and using the UTF-8 encoding."
 msgstr "Un @dfn{paramètre linguistique} définie les conventions culturelles d'une langue et d'une région particulières (@pxref{Locales,,, libc, The GNU C Library Reference Manual}).  Chaque paramètre linguistique a un nom de la forme @code{@var{langue}_@var{territoire}.@var{jeudecaractères}} — p.@: ex.@: @code{fr_LU.utf8} désigne le paramètre linguistique pour le français, avec les conventions culturelles du Luxembourg, en utilisant l'encodage UTF-8."
 
 #. type: cindex
-#: doc/guix.texi:11265
+#: doc/guix.texi:14175
 #, no-wrap
 msgid "locale definition"
 msgstr "définition des paramètres linguistiques"
 
 #. type: Plain text
-#: doc/guix.texi:11269
+#: doc/guix.texi:14179
 msgid "Usually, you will want to specify the default locale for the machine using the @code{locale} field of the @code{operating-system} declaration (@pxref{operating-system Reference, @code{locale}})."
 msgstr "Normalement, vous voudrez spécifier les paramètres linguistiques par défaut pour la machine en utilisant le champ @code{locale} de la déclaration @code{operating-system} (@pxref{operating-system Reference, @code{locale}})."
 
 #. type: Plain text
-#: doc/guix.texi:11278
+#: doc/guix.texi:14188
 msgid "The selected locale is automatically added to the @dfn{locale definitions} known to the system if needed, with its codeset inferred from its name---e.g., @code{bo_CN.utf8} will be assumed to use the @code{UTF-8} codeset.  Additional locale definitions can be specified in the @code{locale-definitions} slot of @code{operating-system}---this is useful, for instance, if the codeset could not be inferred from the locale name.  The default set of locale definitions includes some widely used locales, but not all the available locales, in order to save space."
 msgstr "Les paramètres régionaux choisis sont automatiquement ajoutés aux définitions des @dfn{paramètres régionaux} connues par le système au besoin, avec le jeu de caractères inféré à partir de son nom, p.@: ex.@: @code{bo_CN.utf8} supposera qu'il faut utiliser le jeu de caractères @code{UTF-8}.  Des définitions supplémentaires peuvent être spécifiées dans le champ @code{locale-definitions} de @code{operating-system} — c'est utile par exemple si le jeu de caractères n'a pas été inféré à partir du nom.  L'ensemble par défaut de définitions comprend certains paramètres linguistiques parmi les plus utilisés, mais pas toutes les variantes disponibles, pour gagner de la place."
 
 #. type: Plain text
-#: doc/guix.texi:11281
+#: doc/guix.texi:14191
 msgid "For instance, to add the North Frisian locale for Germany, the value of that field may be:"
 msgstr "Par exemple, pour ajouter les paramètres pour le frison septentrional en Allemagne, la valeur de ce champ serait :"
 
-#. type: example
-#: doc/guix.texi:11286
+#. type: lisp
+#: doc/guix.texi:14196
 #, no-wrap
 msgid ""
 "(cons (locale-definition\n"
@@ -20372,12 +25641,12 @@ msgstr ""
 "      %default-locale-definitions)\n"
 
 #. type: Plain text
-#: doc/guix.texi:11290
+#: doc/guix.texi:14200
 msgid "Likewise, to save space, one might want @code{locale-definitions} to list only the locales that are actually used, as in:"
 msgstr "De me, pour gagner de la place, on peut vouloir lister dans @code{locale-definitions} seulement les paramètres qui sont vraiment utilisés, comme dans :"
 
-#. type: example
-#: doc/guix.texi:11295
+#. type: lisp
+#: doc/guix.texi:14205
 #, no-wrap
 msgid ""
 "(list (locale-definition\n"
@@ -20389,114 +25658,114 @@ msgstr ""
 "        (charset \"EUC-JP\")))\n"
 
 #. type: Plain text
-#: doc/guix.texi:11304
-msgid "The compiled locale definitions are available at @file{/run/current-system/locale/X.Y}, where @code{X.Y} is the libc version, which is the default location where the GNU@tie{}libc provided by Guix looks for locale data.  This can be overridden using the @code{LOCPATH} environment variable (@pxref{locales-and-locpath, @code{LOCPATH} and locale packages})."
-msgstr "Les définitions des paramètres linguistiques compilées sont disponibles dans @file{/run/current-system/locale/X.Y}, où @code{X.Y} est la version de la libc, ce qui est l'emplacement par défaut où la GNU@tie{}libc fournie par Guix cherche les données de régionalisation.  Cet emplacement peut être modifié avec la variable d'environnement @code{LOCPATH} (@pxref{locales-and-locpath, @code{LOCPATH} and locale packages})."
+#: doc/guix.texi:14214
+msgid "The compiled locale definitions are available at @file{/run/current-system/locale/X.Y}, where @code{X.Y} is the libc version, which is the default location where the GNU@tie{}libc provided by Guix looks for locale data.  This can be overridden using the @env{LOCPATH} environment variable (@pxref{locales-and-locpath, @env{LOCPATH} and locale packages})."
+msgstr "Les définitions compilées de locale sont disponibles à @file{/run/current-system/locale/X.Y}, où @code{X.Y} est la version de la libc, qui est l'emplacement par défaut où la GNU@tie{}libc fournie par Guix recherche les données locales.  Il est possible d'y remédier en utilisant la variable d'environnement @env{LOCPATH} (@pxref{locales-and-locpath, @env{LOCPATH} et les paquets locaux})."
 
 #. type: Plain text
-#: doc/guix.texi:11307
+#: doc/guix.texi:14217
 msgid "The @code{locale-definition} form is provided by the @code{(gnu system locale)} module.  Details are given below."
 msgstr "La forme @code{locale-definition} est fournie par le module @code{(gnu system locale)}.  Des détails sont disponibles plus bas."
 
 #. type: deftp
-#: doc/guix.texi:11308
+#: doc/guix.texi:14218
 #, no-wrap
 msgid "{Data Type} locale-definition"
 msgstr "{Type de données} locale-definition"
 
 #. type: deftp
-#: doc/guix.texi:11310
+#: doc/guix.texi:14220
 msgid "This is the data type of a locale definition."
 msgstr "C'est le type de données d'une définition de paramètres linguistiques."
 
 #. type: table
-#: doc/guix.texi:11316
+#: doc/guix.texi:14226
 msgid "The name of the locale.  @xref{Locale Names,,, libc, The GNU C Library Reference Manual}, for more information on locale names."
 msgstr "Le nom du paramètre linguistique.   @xref{Locale Names,,, libc, The GNU C Library Reference Manual}, pour en savoir plus sur les noms de paramètres linguistiques."
 
 #. type: table
-#: doc/guix.texi:11320
+#: doc/guix.texi:14230
 msgid "The name of the source for that locale.  This is typically the @code{@var{language}_@var{territory}} part of the locale name."
 msgstr "Le nom de la source pour ce paramètre linguistique.  C'est typiquement la partie @code{@var{langue}_@var{territoire}} du nom du paramètre."
 
 #. type: item
-#: doc/guix.texi:11321
+#: doc/guix.texi:14231
 #, no-wrap
 msgid "@code{charset} (default: @code{\"UTF-8\"})"
 msgstr "@code{charset} (par défaut : @code{\"UTF-8\"})"
 
 #. type: table
-#: doc/guix.texi:11325
+#: doc/guix.texi:14235
 msgid "The ``character set'' or ``code set'' for that locale, @uref{https://www.iana.org/assignments/character-sets, as defined by IANA}."
 msgstr "Le « jeu de caractères » d'un paramètre linguistique, @uref{https://www.iana.org/assignments/character-sets, défini par l'IANA}."
 
 #. type: defvr
-#: doc/guix.texi:11329
+#: doc/guix.texi:14239
 #, no-wrap
 msgid "{Scheme Variable} %default-locale-definitions"
 msgstr "{Variable Scheme} %default-locale-definitions"
 
 #. type: defvr
-#: doc/guix.texi:11333
+#: doc/guix.texi:14243
 msgid "A list of commonly used UTF-8 locales, used as the default value of the @code{locale-definitions} field of @code{operating-system} declarations."
 msgstr "Une liste des paramètres linguistiques UTF-8 couramment utilisés, utilisée comme valeur par défaut pour le champ @code{locale-definitions} des déclarations @code{operating-system}."
 
 #. type: cindex
-#: doc/guix.texi:11334
+#: doc/guix.texi:14244
 #, no-wrap
 msgid "locale name"
 msgstr "nom de paramètre linguistique"
 
 #. type: cindex
-#: doc/guix.texi:11335
+#: doc/guix.texi:14245
 #, no-wrap
 msgid "normalized codeset in locale names"
 msgstr "jeu de caractère normalisé dans les noms de paramètres linguistiques"
 
 #. type: defvr
-#: doc/guix.texi:11341
+#: doc/guix.texi:14251
 msgid "These locale definitions use the @dfn{normalized codeset} for the part that follows the dot in the name (@pxref{Using gettextized software, normalized codeset,, libc, The GNU C Library Reference Manual}).  So for instance it has @code{uk_UA.utf8} but @emph{not}, say, @code{uk_UA.UTF-8}."
 msgstr "Ces définitions de paramètres linguistiques utilisent le @dfn{jeu de caractère normalisé} pour la partie qui suit le point dans le nom (@pxref{Using gettextized software, normalized codeset,, libc, The GNU C Library Reference Manual}).  Donc par exemple il y a @code{uk_UA.utf8} mais @emph{pas}, disons, @code{uk_UA.UTF-8}."
 
 #. type: subsection
-#: doc/guix.texi:11343
+#: doc/guix.texi:14253
 #, no-wrap
 msgid "Locale Data Compatibility Considerations"
 msgstr "Considérations sur la compatibilité des données linguistiques"
 
 #. type: cindex
-#: doc/guix.texi:11345
+#: doc/guix.texi:14255
 #, no-wrap
 msgid "incompatibility, of locale data"
 msgstr "incompatibilité, des données linguistiques"
 
 #. type: Plain text
-#: doc/guix.texi:11352
+#: doc/guix.texi:14262
 msgid "@code{operating-system} declarations provide a @code{locale-libcs} field to specify the GNU@tie{}libc packages that are used to compile locale declarations (@pxref{operating-system Reference}).  ``Why would I care?'', you may ask.  Well, it turns out that the binary format of locale data is occasionally incompatible from one libc version to another."
 msgstr "Les déclaration @code{operating-system} fournissent un champ @code{locale-libcs} pour spécifier les paquets GNU@tie{}libc à utiliser pour compiler les déclarations de paramètres linguistiques (@pxref{operating-system Reference}).  « Pourquoi je devrais m'en soucier ? », vous demandez-vous sûrement.  Hé bien il se trouve que le format binaire des données linguistique est parfois incompatible d'une version de la libc à une autre."
 
 #. type: Plain text
-#: doc/guix.texi:11364
-msgid "For instance, a program linked against libc version 2.21 is unable to read locale data produced with libc 2.22; worse, that program @emph{aborts} instead of simply ignoring the incompatible locale data@footnote{Versions 2.23 and later of GNU@tie{}libc will simply skip the incompatible locale data, which is already an improvement.}.  Similarly, a program linked against libc 2.22 can read most, but not all, of the locale data from libc 2.21 (specifically, @code{LC_COLLATE} data is incompatible); thus calls to @code{setlocale} may fail, but programs will not abort."
-msgstr "Par exemple, un programme lié à la libc version 2.21 est incapable de lire les données linguistiques produites par la libc 2.22 ; pire, ce programme @emph{plante} plutôt que d'ignorer les données linguistiques incompatibles@footnote{Les version 2.23 et supérieures de la GNU@tie{}libc sauteront simplement les données linguistiques incompatibles, ce qui est déjà mieux.}.  De même, un programme lié à la libc 2.22 peut lire la plupart mais pas toutes les données linguistiques de la libc 2.21 (spécifiquement les données @code{LC_COLLATE} sont incompatibles) ; donc les appels à @code{setlocale} peuvent échouer, mais les programmes ne plantent pas."
+#: doc/guix.texi:14274
+msgid "For instance, a program linked against libc version 2.21 is unable to read locale data produced with libc 2.22; worse, that program @emph{aborts} instead of simply ignoring the incompatible locale data@footnote{Versions 2.23 and later of GNU@tie{}libc will simply skip the incompatible locale data, which is already an improvement.}.  Similarly, a program linked against libc 2.22 can read most, but not all, of the locale data from libc 2.21 (specifically, @env{LC_COLLATE} data is incompatible); thus calls to @code{setlocale} may fail, but programs will not abort."
+msgstr "Par exemple, un programme lié à la version 2.21 de la libc est incapable de lire les données locales produites avec la libc 2.22 ; pire encore, ce programme @emph{aborts} au lieu d'ignorer simplement les données locales incompatibles@footnote{Versions 2.23 et suivantes de GNU@tie{}libc ignorera simplement les données locales incompatibles, ce qui est déjà une amélioration.}.  De même, un programme lié à la libc 2.22 peut lire la plupart des données locales de la libc 2.21, mais pas toutes (en particulier, les données @env{LC_COLLATE} sont incompatibles) ; ainsi, les appels à @code{setlocale} peuvent échouer, mais les programmes ne s'arrêteront pas."
 
 #. type: Plain text
-#: doc/guix.texi:11369
+#: doc/guix.texi:14279
 msgid "The ``problem'' with Guix is that users have a lot of freedom: They can choose whether and when to upgrade software in their profiles, and might be using a libc version different from the one the system administrator used to build the system-wide locale data."
 msgstr "Le « problème » avec Guix c'est que les utilisateurs ont beaucoup de liberté : ils peuvent choisir s'ils veulent et quand ils veulent mettre à jour les logiciels de leur profil, et peuvent utiliser une version différente de la libc de celle que l'administrateur système utilise pour construire les données linguistiques du système global."
 
 #. type: Plain text
-#: doc/guix.texi:11373
-msgid "Fortunately, unprivileged users can also install their own locale data and define @var{GUIX_LOCPATH} accordingly (@pxref{locales-and-locpath, @code{GUIX_LOCPATH} and locale packages})."
-msgstr "Heureusement, les utilisateurs non privilégiés peuvent aussi installer leur propres données linguistiques et définir @var{GUIX_LOCPATH} comme il le faut (@pxref{locales-and-locpath, @code{GUIX_LOCPATH} and locale packages})."
+#: doc/guix.texi:14283
+msgid "Fortunately, unprivileged users can also install their own locale data and define @env{GUIX_LOCPATH} accordingly (@pxref{locales-and-locpath, @env{GUIX_LOCPATH} and locale packages})."
+msgstr "Heureusement, les utilisateur·rice·s non privilégié·e·s peuvent aussi installer leurs propres données linguistiques et définir @var{GUIX_LOCPATH} comme il le faut (@pxref{locales-and-locpath, @code{GUIX_LOCPATH} and locale packages})."
 
 #. type: Plain text
-#: doc/guix.texi:11380
+#: doc/guix.texi:14290
 msgid "Still, it is best if the system-wide locale data at @file{/run/current-system/locale} is built for all the libc versions actually in use on the system, so that all the programs can access it---this is especially crucial on a multi-user system.  To do that, the administrator can specify several libc packages in the @code{locale-libcs} field of @code{operating-system}:"
 msgstr "Cependant, c'est encore mieux si les données linguistiques du système dans @file{/run/current-system/locale} étaient construites avec les versions de la libc utilisées sur le système, pour que tous les programmes puissent y accéder — c'est surtout crucial sur un système multi-utilisateurs.  Pour cela, l'administrateur peut spécifier plusieurs paquets de la libc dans le champ @code{locale-libcs} de @code{operating-system} :"
 
-#. type: example
-#: doc/guix.texi:11383
+#. type: lisp
+#: doc/guix.texi:14293
 #, no-wrap
 msgid ""
 "(use-package-modules base)\n"
@@ -20505,8 +25774,8 @@ msgstr ""
 "(use-package-modules base)\n"
 "\n"
 
-#. type: example
-#: doc/guix.texi:11387
+#. type: lisp
+#: doc/guix.texi:14297
 #, no-wrap
 msgid ""
 "(operating-system\n"
@@ -20518,39 +25787,39 @@ msgstr ""
 "  (locale-libcs (list glibc-2.21 (canonical-package glibc))))\n"
 
 #. type: Plain text
-#: doc/guix.texi:11392
+#: doc/guix.texi:14302
 msgid "This example would lead to a system containing locale definitions for both libc 2.21 and the current version of libc in @file{/run/current-system/locale}."
 msgstr "Cet exemple créera un système contenant les définitions des paramètres linguistiques pour la libc 2.21 et pour la version actuelle de la libc dans @file{/run/current-system/locale}."
 
 #. type: cindex
-#: doc/guix.texi:11397
+#: doc/guix.texi:14307
 #, no-wrap
 msgid "system services"
 msgstr "services systèmes"
 
 #. type: Plain text
-#: doc/guix.texi:11403
+#: doc/guix.texi:14313
 msgid "An important part of preparing an @code{operating-system} declaration is listing @dfn{system services} and their configuration (@pxref{Using the Configuration System}).  System services are typically daemons launched when the system boots, or other actions needed at that time---e.g., configuring network access."
 msgstr "Une part importante de la préparation d'une déclaration @code{operating-system} est la liste des @dfn{services systèmes} et de leur configuration (@pxref{Using the Configuration System}).  Les services systèmes sont typiquement des démons lancés au démarrage ou d'autres actions requises à ce moment-là — p.@: ex.@: configurer les accès réseaux."
 
 #. type: Plain text
-#: doc/guix.texi:11410
+#: doc/guix.texi:14320
 msgid "Guix has a broad definition of ``service'' (@pxref{Service Composition}), but many services are managed by the GNU@tie{}Shepherd (@pxref{Shepherd Services}).  On a running system, the @command{herd} command allows you to list the available services, show their status, start and stop them, or do other specific operations (@pxref{Jump Start,,, shepherd, The GNU Shepherd Manual}).  For example:"
 msgstr "Guix a une définition large de « service » (@pxref{Service Composition}), mais beaucoup de services sont gérés par le GNU@tie{}Shepherd (@pxref{Shepherd Services}).  Sur un système lancé, la commande @command{herd} vous permet de lister les services disponibles, montrer leur statut, les démarrer et les arrêter, ou faire d'autres opérations spécifiques (@pxref{Jump Start,,, shepherd, The GNU Shepherd Manual}).  Par exemple :"
 
 #. type: example
-#: doc/guix.texi:11413
+#: doc/guix.texi:14323
 #, no-wrap
 msgid "# herd status\n"
 msgstr "# herd status\n"
 
 #. type: Plain text
-#: doc/guix.texi:11418
+#: doc/guix.texi:14328
 msgid "The above command, run as @code{root}, lists the currently defined services.  The @command{herd doc} command shows a synopsis of the given service and its associated actions:"
 msgstr "La commande ci-dessus, lancée en @code{root}, liste les services actuellement définis.  La commande @command{herd doc} montre un synopsis du service donné et ses actions associées :"
 
 #. type: example
-#: doc/guix.texi:11422
+#: doc/guix.texi:14332
 #, no-wrap
 msgid ""
 "# herd doc nscd\n"
@@ -20562,7 +25831,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:11425
+#: doc/guix.texi:14335
 #, no-wrap
 msgid ""
 "# herd doc nscd action invalidate\n"
@@ -20572,12 +25841,12 @@ msgstr ""
 "invalidate: Invalidate the given cache--e.g., 'hosts' for host name lookups.\n"
 
 #. type: Plain text
-#: doc/guix.texi:11430
+#: doc/guix.texi:14340
 msgid "The @command{start}, @command{stop}, and @command{restart} sub-commands have the effect you would expect.  For instance, the commands below stop the nscd service and restart the Xorg display server:"
 msgstr "Les sous-commandes @command{start}, @command{stop} et @command{restart} ont l'effet auquel on s'attend.  Par exemple, les commande suivantes stoppent le service nscd et redémarrent le serveur d'affichage Xorg :"
 
 #. type: example
-#: doc/guix.texi:11437
+#: doc/guix.texi:14347
 #, no-wrap
 msgid ""
 "# herd stop nscd\n"
@@ -20593,44 +25862,33 @@ msgstr ""
 "Service xorg-server has been started.\n"
 
 #. type: Plain text
-#: doc/guix.texi:11442
+#: doc/guix.texi:14352
 msgid "The following sections document the available services, starting with the core services, that may be used in an @code{operating-system} declaration."
 msgstr "Les sections suivantes documentent les services disponibles, en commençant par les services de base qui peuvent être utilisés avec une déclaration @code{operating-system}."
 
-#. type: subsection
-#: doc/guix.texi:11471 doc/guix.texi:18084 doc/guix.texi:18085
-#, no-wrap
-msgid "LDAP Services"
-msgstr "Services LDAP"
-
-#. type: menuentry
-#: doc/guix.texi:11471
-msgid "LDAP services."
-msgstr "services LDAP"
-
 #. type: Plain text
-#: doc/guix.texi:11479
+#: doc/guix.texi:14394
 msgid "The @code{(gnu services base)} module provides definitions for the basic services that one expects from the system.  The services exported by this module are listed below."
 msgstr "Le module @code{(gnu services base)} fournit des définitions de services pour les services de base qu'on peut attendre du système.  Les services exportés par ce module sort listés ci-dessous."
 
 #. type: defvr
-#: doc/guix.texi:11480
+#: doc/guix.texi:14395
 #, no-wrap
 msgid "{Scheme Variable} %base-services"
 msgstr "{Variable Scheme} %base-services"
 
 #. type: defvr
-#: doc/guix.texi:11486
+#: doc/guix.texi:14401
 msgid "This variable contains a list of basic services (@pxref{Service Types and Services}, for more information on service objects) one would expect from the system: a login service (mingetty) on each tty, syslogd, the libc name service cache daemon (nscd), the udev device manager, and more."
 msgstr "Cette variable contient une liste de services de base (@pxref{Service Types and Services}, pour plus d'informations sur les objets service) qu'on peut attendre du système : un service de connexion (mingetty) sur chaque tty, syslogd, le démon de cache de noms de la libc (nscd), le gestionnaire de périphériques udev, et plus."
 
 #. type: defvr
-#: doc/guix.texi:11491
-msgid "This is the default value of the @code{services} field of @code{operating-system} declarations.  Usually, when customizing a system, you will want to append services to @var{%base-services}, like this:"
-msgstr "C'est la valeur par défaut du champ @code{services} des déclarations @code{operating-system}.  Habituellement, lors de la personnalisation d'un système, vous voudrez ajouter des services à ceux de @var{%base-services}, comme ceci :"
+#: doc/guix.texi:14406
+msgid "This is the default value of the @code{services} field of @code{operating-system} declarations.  Usually, when customizing a system, you will want to append services to @code{%base-services}, like this:"
+msgstr "C'est la valeur par défaut du champ @code{services} des déclarations @code{operating-system}.  Habituellement, lors de la personnalisation d'un système, vous voudrez ajouter des services à ceux de @code{%base-services}, comme ceci :"
 
-#. type: example
-#: doc/guix.texi:11496
+#. type: lisp
+#: doc/guix.texi:14411
 #, no-wrap
 msgid ""
 "(append (list (service avahi-service-type)\n"
@@ -20642,89 +25900,89 @@ msgstr ""
 "        %base-services)\n"
 
 #. type: defvr
-#: doc/guix.texi:11499
+#: doc/guix.texi:14414
 #, no-wrap
 msgid "{Scheme Variable} special-files-service-type"
 msgstr "{Variable Scheme} special-files-service-type"
 
 #. type: defvr
-#: doc/guix.texi:11502
+#: doc/guix.texi:14417
 msgid "This is the service that sets up ``special files'' such as @file{/bin/sh}; an instance of it is part of @code{%base-services}."
 msgstr "C'est le service qui met en place des « fichiers spéciaux » comme @file{/bin/sh} ; une instance de ce service fait partie de @code{%base-services}."
 
 #. type: defvr
-#: doc/guix.texi:11506
+#: doc/guix.texi:14421
 msgid "The value associated with @code{special-files-service-type} services must be a list of tuples where the first element is the ``special file'' and the second element is its target.  By default it is:"
 msgstr "La valeur associée avec les services @code{special-files-service-type} doit être une liste de couples dont le premier élément est le « fichier spécial » et le deuxième sa cible.  Par défaut il s'agit de :"
 
 #. type: file{#1}
-#: doc/guix.texi:11507
+#: doc/guix.texi:14422
 #, no-wrap
 msgid "/bin/sh"
 msgstr "/bin/sh"
 
 #. type: cindex
-#: doc/guix.texi:11508
+#: doc/guix.texi:14423
 #, no-wrap
 msgid "@file{sh}, in @file{/bin}"
 msgstr "@file{sh}, dans @file{/bin}"
 
-#. type: example
-#: doc/guix.texi:11511
+#. type: lisp
+#: doc/guix.texi:14426
 #, no-wrap
-msgid "`((\"/bin/sh\" ,(file-append @var{bash} \"/bin/sh\")))\n"
-msgstr "`((\"/bin/sh\" ,(file-append @var{bash} \"/bin/sh\")))\n"
+msgid "`((\"/bin/sh\" ,(file-append bash \"/bin/sh\")))\n"
+msgstr "`((\"/bin/sh\" ,(file-append bash \"/bin/sh\")))\n"
 
 #. type: file{#1}
-#: doc/guix.texi:11513
+#: doc/guix.texi:14428
 #, no-wrap
 msgid "/usr/bin/env"
 msgstr "/usr/bin/env"
 
 #. type: cindex
-#: doc/guix.texi:11514
+#: doc/guix.texi:14429
 #, no-wrap
 msgid "@file{env}, in @file{/usr/bin}"
 msgstr "@file{env}, dans @file{/usr/bin}"
 
 #. type: defvr
-#: doc/guix.texi:11517
+#: doc/guix.texi:14432
 msgid "If you want to add, say, @code{/usr/bin/env} to your system, you can change it to:"
 msgstr "Si vous voulez ajouter, disons, @code{/usr/bin/env} à votre système, vous pouvez changer cela en :"
 
-#. type: example
-#: doc/guix.texi:11521
+#. type: lisp
+#: doc/guix.texi:14436
 #, no-wrap
 msgid ""
-"`((\"/bin/sh\" ,(file-append @var{bash} \"/bin/sh\"))\n"
-"  (\"/usr/bin/env\" ,(file-append @var{coreutils} \"/bin/env\")))\n"
+"`((\"/bin/sh\" ,(file-append bash \"/bin/sh\"))\n"
+"  (\"/usr/bin/env\" ,(file-append coreutils \"/bin/env\")))\n"
 msgstr ""
-"`((\"/bin/sh\" ,(file-append @var{bash} \"/bin/sh\"))\n"
-"  (\"/usr/bin/env\" ,(file-append @var{coreutils} \"/bin/env\")))\n"
+"`((\"/bin/sh\" ,(file-append bash \"/bin/sh\"))\n"
+"  (\"/usr/bin/env\" ,(file-append coreutils \"/bin/env\")))\n"
 
 #. type: defvr
-#: doc/guix.texi:11528
-msgid "Since this is part of @code{%base-services}, you can use @code{modify-services} to customize the set of special files (@pxref{Service Reference, @code{modify-services}}).  But the simple way to add a special file is @i{via} the @code{extra-special-file} procedure (see below.)"
-msgstr "Comme il fait parti de @code{%base-services}, vous pouvez utiliser @code{modify-services} pour personnaliser l'ensemble des fichiers spéciaux (@pxref{Service Reference, @code{modify-services}}).  Mais une manière plus simple d'ajouter un fichier spécial est d'utiliser la procédure @code{extra-special-file} (voir plus bas)."
+#: doc/guix.texi:14443
+msgid "Since this is part of @code{%base-services}, you can use @code{modify-services} to customize the set of special files (@pxref{Service Reference, @code{modify-services}}).  But the simple way to add a special file is @i{via} the @code{extra-special-file} procedure (see below)."
+msgstr "Comme cela fait partie de @code{%base-services}, vous pouvez utiliser @code{modify-services} pour personnaliser l'ensemble des fichiers spéciaux (@pxref{Service Reference, @code{modify-services}}).  Mais la manière la plus simple d'ajouter un fichier spécial est @i{via} la procédure @code{extra-special-file} (voir ci-dessous)."
 
 #. type: deffn
-#: doc/guix.texi:11530
+#: doc/guix.texi:14445
 #, no-wrap
 msgid "{Scheme Procedure} extra-special-file @var{file} @var{target}"
 msgstr "{Procédure Scheme} extra-special-file @var{file} @var{target}"
 
 #. type: deffn
-#: doc/guix.texi:11532
+#: doc/guix.texi:14447
 msgid "Use @var{target} as the ``special file'' @var{file}."
 msgstr "Utilise @var{target} comme « fichier spécial » @var{file}."
 
 #. type: deffn
-#: doc/guix.texi:11536
+#: doc/guix.texi:14451
 msgid "For example, adding the following lines to the @code{services} field of your operating system declaration leads to a @file{/usr/bin/env} symlink:"
 msgstr "Par exemple, ajouter l'une des lignes suivantes au champ @code{services} de votre déclaration de système d'exploitation crée un lien symbolique @file{/usr/bin/env} :"
 
-#. type: example
-#: doc/guix.texi:11540
+#. type: lisp
+#: doc/guix.texi:14455
 #, no-wrap
 msgid ""
 "(extra-special-file \"/usr/bin/env\"\n"
@@ -20734,1152 +25992,1263 @@ msgstr ""
 "                    (file-append coreutils \"/bin/env\"))\n"
 
 #. type: deffn
-#: doc/guix.texi:11543
+#: doc/guix.texi:14458
 #, no-wrap
 msgid "{Scheme Procedure} host-name-service @var{name}"
 msgstr "{Procédure Scheme} host-name-service @var{name}"
 
 #. type: deffn
-#: doc/guix.texi:11545
+#: doc/guix.texi:14460
 msgid "Return a service that sets the host name to @var{name}."
 msgstr "Renvoie un service qui paramètre le nom d'hôte à @var{name}."
 
+#. type: defvr
+#: doc/guix.texi:14462
+#, no-wrap
+msgid "{Scheme Variable} console-font-service-type"
+msgstr "{Variable Scheme} console-font-service-type"
+
+#. type: defvr
+#: doc/guix.texi:14467
+msgid "Install the given fonts on the specified ttys (fonts are per virtual console on the kernel Linux).  The value of this service is a list of tty/font pairs.  The font can be the name of a font provided by the @code{kbd} package or any valid argument to @command{setfont}, as in this example:"
+msgstr "Installez les polices données sur les ttys spécifiés (les polices sont par console virtuelle sur le noyau Linux).  La valeur de ce service est une liste de paires tty/polices.  La police peut être le nom d'une police fournie par le paquet @code{kbd} ou tout argument valide de @command{setfont}, comme dans cet exemple :"
+
+#. type: lisp
+#: doc/guix.texi:14476
+#, no-wrap
+msgid ""
+"`((\"tty1\" . \"LatGrkCyr-8x16\")\n"
+"  (\"tty2\" . ,(file-append\n"
+"                font-tamzen\n"
+"                \"/share/kbd/consolefonts/TamzenForPowerline10x20.psf\"))\n"
+"  (\"tty3\" . ,(file-append\n"
+"                font-terminus\n"
+"                \"/share/consolefonts/ter-132n\"))) ; for HDPI\n"
+msgstr ""
+"`((\"tty1\" . \"LatGrkCyr-8x16\")\n"
+"  (\"tty2\" . ,(file-append\n"
+"                font-tamzen\n"
+"                \"/share/kbd/consolefonts/TamzenForPowerline10x20.psf\"))\n"
+"  (\"tty3\" . ,(file-append\n"
+"                font-terminus\n"
+"                \"/share/consolefonts/ter-132n\"))) ; for HDPI\n"
+
 #. type: deffn
-#: doc/guix.texi:11547
+#: doc/guix.texi:14479
 #, no-wrap
 msgid "{Scheme Procedure} login-service @var{config}"
 msgstr "{Procédure Scheme} login-service @var{config}"
 
 #. type: deffn
-#: doc/guix.texi:11551
+#: doc/guix.texi:14483
 msgid "Return a service to run login according to @var{config}, a @code{<login-configuration>} object, which specifies the message of the day, among other things."
 msgstr "Renvoie un service pour lancer login en suivant @var{config}, un objet @code{<login-configuration>} qui spécifie le message du jour, entre autres choses."
 
 #. type: deftp
-#: doc/guix.texi:11553
+#: doc/guix.texi:14485
 #, no-wrap
 msgid "{Data Type} login-configuration"
 msgstr "{Type de données} login-configuration"
 
 #. type: deftp
-#: doc/guix.texi:11555
+#: doc/guix.texi:14487
 msgid "This is the data type representing the configuration of login."
 msgstr "Le type de données qui représente la configuration de login."
 
 #. type: code{#1}
-#: doc/guix.texi:11558
+#: doc/guix.texi:14490
 #, no-wrap
 msgid "motd"
 msgstr "motd"
 
 #. type: cindex
-#: doc/guix.texi:11559
+#: doc/guix.texi:14491
 #, no-wrap
 msgid "message of the day"
 msgstr "message du jour"
 
 #. type: table
-#: doc/guix.texi:11561
+#: doc/guix.texi:14493
 msgid "A file-like object containing the ``message of the day''."
 msgstr "Un objet simili-fichier contenant le « message du jour »."
 
 #. type: item
-#: doc/guix.texi:11562 doc/guix.texi:13522
+#: doc/guix.texi:14494 doc/guix.texi:17095
 #, no-wrap
 msgid "@code{allow-empty-passwords?} (default: @code{#t})"
 msgstr "@code{allow-empty-passwords?} (par défaut : @code{#t})"
 
 #. type: table
-#: doc/guix.texi:11565
+#: doc/guix.texi:14497
 msgid "Allow empty passwords by default so that first-time users can log in when the 'root' account has just been created."
 msgstr "Permet les mots de passes vides par défaut pour que les utilisateurs puissent se connecter au compte « root » la première fois après sa création."
 
 #. type: deffn
-#: doc/guix.texi:11569
+#: doc/guix.texi:14501
 #, no-wrap
 msgid "{Scheme Procedure} mingetty-service @var{config}"
 msgstr "{Procédure Scheme} mingetty-service @var{config}"
 
 #. type: deffn
-#: doc/guix.texi:11573
+#: doc/guix.texi:14505
 msgid "Return a service to run mingetty according to @var{config}, a @code{<mingetty-configuration>} object, which specifies the tty to run, among other things."
 msgstr "Renvoie un service qui lance mingetty en suivant @var{config}, un objet @code{<mingetty-configuration>}, qui spécifie le tty à lancer entre autres choses."
 
 #. type: deftp
-#: doc/guix.texi:11575
+#: doc/guix.texi:14507
 #, no-wrap
 msgid "{Data Type} mingetty-configuration"
 msgstr "{Type de données} mingetty-configuration"
 
 #. type: deftp
-#: doc/guix.texi:11578
+#: doc/guix.texi:14510
 msgid "This is the data type representing the configuration of Mingetty, which provides the default implementation of virtual console log-in."
 msgstr "C'est le type de données représentant la configuration de Mingetty, qui fournit l'implémentation par défaut de l'écran de connexion des consoles virtuelles."
 
 #. type: code{#1}
-#: doc/guix.texi:11581 doc/guix.texi:11617
+#: doc/guix.texi:14513 doc/guix.texi:14549 doc/guix.texi:29425
 #, no-wrap
 msgid "tty"
 msgstr "tty"
 
 #. type: table
-#: doc/guix.texi:11583
+#: doc/guix.texi:14515
 msgid "The name of the console this Mingetty runs on---e.g., @code{\"tty1\"}."
 msgstr "Le nom de la console sur laquelle tourne ce Mingetty, p.@: ex.@: @code{\"tty1\"}."
 
 #. type: item
-#: doc/guix.texi:11584 doc/guix.texi:11646 doc/guix.texi:11805
+#: doc/guix.texi:14516 doc/guix.texi:14578 doc/guix.texi:14737
 #, no-wrap
 msgid "@code{auto-login} (default: @code{#f})"
 msgstr "@code{auto-login} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:11588
+#: doc/guix.texi:14520
 msgid "When true, this field must be a string denoting the user name under which the system automatically logs in.  When it is @code{#f}, a user name and password must be entered to log in."
 msgstr "Lorsque la valeur est vraie, ce champ doit être une chaîne de caractère dénotant le nom d'utilisateur pour lequel le système se connecte automatiquement.  Lorsque la valeur est @code{#f}, il faut entrer un nom d'utilisateur et un mot de passe pour se connecter."
 
 #. type: item
-#: doc/guix.texi:11589
+#: doc/guix.texi:14521
 #, no-wrap
 msgid "@code{login-program} (default: @code{#f})"
 msgstr "@code{login-program} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:11593
+#: doc/guix.texi:14525
 msgid "This must be either @code{#f}, in which case the default log-in program is used (@command{login} from the Shadow tool suite), or a gexp denoting the name of the log-in program."
 msgstr "Ce doit être soit @code{#f}, auquel cas le programme de connexion par défaut est utilisé (@command{login} de la suite d'outils Shadow), soit une gexp dénotant le nom d'un programme de connexion."
 
 #. type: item
-#: doc/guix.texi:11594
+#: doc/guix.texi:14526
 #, no-wrap
 msgid "@code{login-pause?} (default: @code{#f})"
 msgstr "@code{login-pause?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:11597
+#: doc/guix.texi:14529
 msgid "When set to @code{#t} in conjunction with @var{auto-login}, the user will have to press a key before the log-in shell is launched."
 msgstr "Lorsque la valeur est @code{#t} en plus de @var{auto-login}, l'utilisateur devrai appuyer sur une touche avant que le shell de connexion ne soit lancé."
 
 #. type: item
-#: doc/guix.texi:11598
+#: doc/guix.texi:14530
 #, no-wrap
 msgid "@code{mingetty} (default: @var{mingetty})"
 msgstr "@code{mingetty} (par défaut : @var{mingetty})"
 
 #. type: table
-#: doc/guix.texi:11600
+#: doc/guix.texi:14532
 msgid "The Mingetty package to use."
 msgstr "Le paquet Mingetty à utiliser."
 
 #. type: deffn
-#: doc/guix.texi:11604
+#: doc/guix.texi:14536
 #, no-wrap
 msgid "{Scheme Procedure} agetty-service @var{config}"
 msgstr "{Procédure Scheme} agetty-service @var{config}"
 
 #. type: deffn
-#: doc/guix.texi:11608
+#: doc/guix.texi:14540
 msgid "Return a service to run agetty according to @var{config}, an @code{<agetty-configuration>} object, which specifies the tty to run, among other things."
 msgstr "Renvoie un service pour lancer agetty en suivant @var{config}, un objet @code{<agetty-configuration>}, qui spécifie le tty à lancer, entre autres choses."
 
 #. type: deftp
-#: doc/guix.texi:11610
+#: doc/guix.texi:14542
 #, no-wrap
 msgid "{Data Type} agetty-configuration"
 msgstr "{Type de données} agetty-configuration"
 
 #. type: deftp
-#: doc/guix.texi:11614
+#: doc/guix.texi:14546
 msgid "This is the data type representing the configuration of agetty, which implements virtual and serial console log-in.  See the @code{agetty(8)} man page for more information."
 msgstr "Ce type de données représente la configuration de agetty, qui implémente l'écran de connexion des consoles virtuelles et series.  Voir la page de manuel de @code{agetty(8)} pour plus d'informations."
 
 #. type: table
-#: doc/guix.texi:11621
-msgid "The name of the console this agetty runs on, as a string---e.g., @code{\"ttyS0\"}. This argument is optional, it will default to a reasonable default serial port used by the kernel Linux."
-msgstr "Le nom de la console sur laquelle agetty est lancé p.@: ex.@: @code{\"ttyS0\"}.  Cet argument est facultatif, il aura par défaut une valeur raisonnable d'un port série utilisé par le noyau Linux."
+#: doc/guix.texi:14553
+msgid "The name of the console this agetty runs on, as a string---e.g., @code{\"ttyS0\"}.  This argument is optional, it will default to a reasonable default serial port used by the kernel Linux."
+msgstr "Le nom de la console sur laquelle cet agetty fonctionne, sous forme de chaîne de caractères, par exemple @code{\"ttyS0\"}.  Cet argument est optionnel, il sera par défaut un port série raisonnable par défaut utilisé par le noyau Linux."
 
 #. type: table
-#: doc/guix.texi:11625
+#: doc/guix.texi:14557
 msgid "For this, if there is a value for an option @code{agetty.tty} in the kernel command line, agetty will extract the device name of the serial port from it and use that."
 msgstr "Pour cela, s'il y a une valeur pour une option @code{agetty.tty} sur la ligne de commande du noyau, agetty extraira le nom du périphérique du port série à partir de cette option."
 
 #. type: table
-#: doc/guix.texi:11629
+#: doc/guix.texi:14561
 msgid "If not and if there is a value for an option @code{console} with a tty in the Linux command line, agetty will extract the device name of the serial port from it and use that."
 msgstr "Sinon et s'il y a une valeur pour une option @code{console} avec un tty sur la ligne de commande du noyau Linux, agetty extraira le nom du périphérique du port série et l'utilisera."
 
 #. type: table
-#: doc/guix.texi:11633
+#: doc/guix.texi:14565
 msgid "In both cases, agetty will leave the other serial device settings (baud rate etc.)@: alone---in the hope that Linux pinned them to the correct values."
 msgstr "Dans les deux cas, agetty laissera les autres paramètres du périphérique série (baud, etc.) sans y toucher — dans l'espoir que Linux leur a assigné les bonnes valeurs."
 
 #. type: item
-#: doc/guix.texi:11634
+#: doc/guix.texi:14566 doc/guix.texi:29566
 #, no-wrap
 msgid "@code{baud-rate} (default: @code{#f})"
 msgstr "@code{baud-rate} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:11637
+#: doc/guix.texi:14569
 msgid "A string containing a comma-separated list of one or more baud rates, in descending order."
 msgstr "Une chaîne qui contient une liste d'un ou plusieurs taux de baud séparés par des virgules, en ordre décroissant."
 
 #. type: item
-#: doc/guix.texi:11638
+#: doc/guix.texi:14570
 #, no-wrap
 msgid "@code{term} (default: @code{#f})"
 msgstr "@code{term} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:11641
-msgid "A string containing the value used for the @code{TERM} environment variable."
-msgstr "Une chaîne contenant la valeur utilisée pour la variable d'environnement @code{TERM}."
+#: doc/guix.texi:14573
+msgid "A string containing the value used for the @env{TERM} environment variable."
+msgstr "Une chaîne de caractères contenant la valeur utilisée pour la variable d'environnement @env{TERM}."
 
 #. type: item
-#: doc/guix.texi:11642
+#: doc/guix.texi:14574
 #, no-wrap
 msgid "@code{eight-bits?} (default: @code{#f})"
 msgstr "@code{eight-bits?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:11645
+#: doc/guix.texi:14577
 msgid "When @code{#t}, the tty is assumed to be 8-bit clean, and parity detection is disabled."
 msgstr "Lorsque la valeur est @code{#t}, le tty est supposé être propre pour les caractères 8-bit et la détection de parité est désactivée."
 
 #. type: table
-#: doc/guix.texi:11649 doc/guix.texi:11808
+#: doc/guix.texi:14581 doc/guix.texi:14740
 msgid "When passed a login name, as a string, the specified user will be logged in automatically without prompting for their login name or password."
 msgstr "Lorsqu'un nom de connexion est passé comme une chaîne de caractères, l'utilisateur spécifié sera automatiquement connecté sans demande du nom d'utilisateur ni du mot de passe."
 
 #. type: item
-#: doc/guix.texi:11650
+#: doc/guix.texi:14582
 #, no-wrap
 msgid "@code{no-reset?} (default: @code{#f})"
 msgstr "@code{no-reset?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:11652
+#: doc/guix.texi:14584
 msgid "When @code{#t}, don't reset terminal cflags (control modes)."
 msgstr "Lorsque la valeur est @code{#t}, ne vide pas les cflags du terminal (modes de contrôle)."
 
 #. type: item
-#: doc/guix.texi:11653
+#: doc/guix.texi:14585
 #, no-wrap
 msgid "@code{host} (default: @code{#f})"
 msgstr "@code{host} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:11656
-msgid "This accepts a string containing the \"login_host\", which will be written into the @file{/var/run/utmpx} file."
-msgstr "Cette option accepte une chaîne contenant le « login_host », qui sera écrit dans le fichier @file{/var/run/utmpx}."
+#: doc/guix.texi:14588
+msgid "This accepts a string containing the ``login_host'', which will be written into the @file{/var/run/utmpx} file."
+msgstr "Ceci accepte une chaîne de caractères contenant le \"login_host\", qui sera écrite dans le fichier @file{/var/run/utmpx}."
 
 #. type: item
-#: doc/guix.texi:11657
+#: doc/guix.texi:14589
 #, no-wrap
 msgid "@code{remote?} (default: @code{#f})"
 msgstr "@code{remote?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:11661
+#: doc/guix.texi:14593
 msgid "When set to @code{#t} in conjunction with @var{host}, this will add an @code{-r} fakehost option to the command line of the login program specified in @var{login-program}."
 msgstr "Lorsque la valeur est @code{#t} en plus de @var{host}, cette option ajoutera une option fakehost @code{-r} à la ligne de commande du programme de connexion spécifié dans @var{login-program}."
 
 #. type: item
-#: doc/guix.texi:11662
+#: doc/guix.texi:14594
 #, no-wrap
 msgid "@code{flow-control?} (default: @code{#f})"
 msgstr "@code{flow-control?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:11664
+#: doc/guix.texi:14596
 msgid "When set to @code{#t}, enable hardware (RTS/CTS) flow control."
 msgstr "Lorsque la valeur est @code{#t}, active le contrôle de flux matériel (RTS/CTS)."
 
 #. type: item
-#: doc/guix.texi:11665
+#: doc/guix.texi:14597
 #, no-wrap
 msgid "@code{no-issue?} (default: @code{#f})"
 msgstr "@code{no-issue?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:11668
+#: doc/guix.texi:14600
 msgid "When set to @code{#t}, the contents of the @file{/etc/issue} file will not be displayed before presenting the login prompt."
 msgstr "Lorsque la valeur est @code{#t}, le contenu du fichier @file{/etc/issue} ne sera pas affiché avant de présenter l'écran de connexion."
 
 #. type: item
-#: doc/guix.texi:11669
+#: doc/guix.texi:14601
 #, no-wrap
 msgid "@code{init-string} (default: @code{#f})"
 msgstr "@code{init-string} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:11672
+#: doc/guix.texi:14604
 msgid "This accepts a string that will be sent to the tty or modem before sending anything else.  It can be used to initialize a modem."
 msgstr "Cette option accepte une chaîne de caractères qui sera envoyée au tty ou au modem avant toute autre chose.  Elle peut être utilisée pour initialiser un modem."
 
 #. type: item
-#: doc/guix.texi:11673
+#: doc/guix.texi:14605
 #, no-wrap
 msgid "@code{no-clear?} (default: @code{#f})"
 msgstr "@code{no-clear?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:11676
+#: doc/guix.texi:14608
 msgid "When set to @code{#t}, agetty will not clear the screen before showing the login prompt."
 msgstr "Lorsque la valeur est @code{#t}, agetty ne nettoiera pas l'écran avant de montrer l'écran de connexion."
 
 #. type: item
-#: doc/guix.texi:11677
+#: doc/guix.texi:14609
 #, no-wrap
 msgid "@code{login-program} (default: (file-append shadow \"/bin/login\"))"
 msgstr "@code{login-program} (par défaut : (file-append shadow \"/bin/login\"))"
 
 #. type: table
-#: doc/guix.texi:11681
+#: doc/guix.texi:14613
 msgid "This must be either a gexp denoting the name of a log-in program, or unset, in which case the default value is the @command{login} from the Shadow tool suite."
 msgstr "Cette option doit être soit une gexp dénotant le nom d'un programme de connexion, soit non définie, auquel cas la valeur par défaut est la commande @command{login} de la suite d'outils Shadow."
 
 #. type: item
-#: doc/guix.texi:11682
+#: doc/guix.texi:14614
 #, no-wrap
 msgid "@code{local-line} (default: @code{#f})"
 msgstr "@code{local-line} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:11686
+#: doc/guix.texi:14618
 msgid "Control the CLOCAL line flag.  This accepts one of three symbols as arguments, @code{'auto}, @code{'always}, or @code{'never}. If @code{#f}, the default value chosen by agetty is @code{'auto}."
 msgstr "Contrôle le drapeau CLOCAL.  Cette option accepte l'un des trois symboles comme argument, @code{'auto}, @code{'always} ou @code{'never}.  Si la valeur est @code{#f}, la valeur par défaut choisie par agetty est @code{'auto}."
 
 #. type: item
-#: doc/guix.texi:11687
+#: doc/guix.texi:14619
 #, no-wrap
 msgid "@code{extract-baud?} (default: @code{#f})"
 msgstr "@code{extract-baud?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:11690
+#: doc/guix.texi:14622
 msgid "When set to @code{#t}, instruct agetty to try to extract the baud rate from the status messages produced by certain types of modems."
 msgstr "Lorsque la valeur est @code{#t}, dit à agetty d'essayer d'extraire la taux de baud depuis les messages de statut produits par certains modems."
 
 #. type: item
-#: doc/guix.texi:11691
+#: doc/guix.texi:14623
 #, no-wrap
 msgid "@code{skip-login?} (default: @code{#f})"
 msgstr "@code{skip-login?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:11695
+#: doc/guix.texi:14627
 msgid "When set to @code{#t}, do not prompt the user for a login name.  This can be used with @var{login-program} field to use non-standard login systems."
 msgstr "Lorsque la valeur est @code{#t}, ne demande par de nom d'utilisateur.  Elle peut être utilisée avec le champ @var{login-program} pour utiliser des systèmes de connexion non standards."
 
 #. type: item
-#: doc/guix.texi:11696
+#: doc/guix.texi:14628
 #, no-wrap
 msgid "@code{no-newline?} (default: @code{#f})"
 msgstr "@code{no-newline?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:11699
+#: doc/guix.texi:14631
 msgid "When set to @code{#t}, do not print a newline before printing the @file{/etc/issue} file."
 msgstr "Lorsque la valeur est @code{#t}, n'affiche pas de retour à la ligne avant d'afficher le fichier @file{/etc/issue}."
 
 #. type: item
-#: doc/guix.texi:11701
+#: doc/guix.texi:14633
 #, no-wrap
 msgid "@code{login-options} (default: @code{#f})"
 msgstr "@code{login-options} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:11706
+#: doc/guix.texi:14638
 msgid "This option accepts a string containing options that are passed to the login program.  When used with the @var{login-program}, be aware that a malicious user could try to enter a login name containing embedded options that could be parsed by the login program."
 msgstr "Cette option accepte une chaîne de caractères contenant des options passées au programme login.  Lorsqu'utilisé avec @var{login-program}, soyez conscient qu'un utilisateur malicieux pourrait essayer de rentrer un nom d'utilisateur contenant des options incluses qui pourraient être analysées par le programme de connexion."
 
 #. type: item
-#: doc/guix.texi:11707
+#: doc/guix.texi:14639
 #, no-wrap
 msgid "@code{login-pause} (default: @code{#f})"
 msgstr "@code{login-pause} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:11711
+#: doc/guix.texi:14643
 msgid "When set to @code{#t}, wait for any key before showing the login prompt.  This can be used in conjunction with @var{auto-login} to save memory by lazily spawning shells."
 msgstr "Lorsque la valeur est @code{#t}, attend qu'une touche soit appuyée avant de montrer l'écran de connexion.  Cela peut être utilisé avec @var{auto-login} pour sauvegarder de la mémoire en lançant les shells de manière fainéante."
 
 #. type: item
-#: doc/guix.texi:11712
+#: doc/guix.texi:14644
 #, no-wrap
 msgid "@code{chroot} (default: @code{#f})"
 msgstr "@code{chroot} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:11715
+#: doc/guix.texi:14647
 msgid "Change root to the specified directory.  This option accepts a directory path as a string."
 msgstr "Change de racine dans le répertoire donné.  Cette option accepte un chemin en tant que chaîne de caractères."
 
 #. type: item
-#: doc/guix.texi:11716
+#: doc/guix.texi:14648
 #, no-wrap
 msgid "@code{hangup?} (default: @code{#f})"
 msgstr "@code{hangup?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:11719
+#: doc/guix.texi:14651
 msgid "Use the Linux system call @code{vhangup} to do a virtual hangup of the specified terminal."
 msgstr "Utilise l'appel système Linux @code{vhangup} pour raccrocher virtuellement le terminal spécifié."
 
 #. type: item
-#: doc/guix.texi:11720
+#: doc/guix.texi:14652
 #, no-wrap
 msgid "@code{keep-baud?} (default: @code{#f})"
 msgstr "@code{keep-baud?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:11724
+#: doc/guix.texi:14656
 msgid "When set to @code{#t}, try to keep the existing baud rate.  The baud rates from @var{baud-rate} are used when agetty receives a @key{BREAK} character."
 msgstr "Lorsque la valeur est @code{#t}, essaye de garder le taux de baud existant.  Les taux de baud de @var{baud-rate} sont utilisés lorsque agetty reçoit un caractères @key{BREAK}."
 
 #. type: item
-#: doc/guix.texi:11725
+#: doc/guix.texi:14657
 #, no-wrap
 msgid "@code{timeout} (default: @code{#f})"
 msgstr "@code{timeout} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:11728
+#: doc/guix.texi:14660
 msgid "When set to an integer value, terminate if no user name could be read within @var{timeout} seconds."
 msgstr "Lorsque la valeur est un nombre entier, termine la session si aucun nom d'utilisateur n'a pu être lu après @var{timeout} secondes."
 
 #. type: item
-#: doc/guix.texi:11729
+#: doc/guix.texi:14661
 #, no-wrap
 msgid "@code{detect-case?} (default: @code{#f})"
 msgstr "@code{detect-case?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:11735
+#: doc/guix.texi:14667
 msgid "When set to @code{#t}, turn on support for detecting an uppercase-only terminal.  This setting will detect a login name containing only uppercase letters as indicating an uppercase-only terminal and turn on some upper-to-lower case conversions.  Note that this will not support Unicode characters."
 msgstr "Lorsque la valeur est @code{#t}, active le support pour la détection des terminaux en majuscule uniquement.  Ce paramètre détectera qu'un nom d'utilisateur qui ne contient que des majuscules indique un terminal en majuscule et effectuera des conversion de majuscule en minuscule.  Remarquez que cela ne fonctionne pas avec les caractères unicode."
 
 #. type: item
-#: doc/guix.texi:11736
+#: doc/guix.texi:14668
 #, no-wrap
 msgid "@code{wait-cr?} (default: @code{#f})"
 msgstr "@code{wait-cr?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:11741
+#: doc/guix.texi:14673
 msgid "When set to @code{#t}, wait for the user or modem to send a carriage-return or linefeed character before displaying @file{/etc/issue} or login prompt.  This is typically used with the @var{init-string} option."
 msgstr "Lorsque la valeur est @code{#t}, attend que l'utilisateur ou le modem envoie un retour chariot ou un saut de ligne avant d'afficher @file{/etc/issue} ou l'écran de connexion.  Cela est typiquement utilisé avec l'option @var{init-string}."
 
 #. type: item
-#: doc/guix.texi:11742
+#: doc/guix.texi:14674
 #, no-wrap
 msgid "@code{no-hints?} (default: @code{#f})"
 msgstr "@code{no-hints?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:11745
+#: doc/guix.texi:14677
 msgid "When set to @code{#t}, do not print hints about Num, Caps, and Scroll locks."
 msgstr "Lorsque la valeur est @code{#t}, n'affiche par les astuces à propos des verrouillages numériques, majuscule et défilement."
 
 #. type: item
-#: doc/guix.texi:11746
+#: doc/guix.texi:14678
 #, no-wrap
 msgid "@code{no-hostname?} (default: @code{#f})"
 msgstr "@code{no-hostname?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:11749
+#: doc/guix.texi:14681
 msgid "By default, the hostname is printed.  When this option is set to @code{#t}, no hostname will be shown at all."
 msgstr "Par défaut, le nom d'hôte est affiché.  Lorsque la valeur est @code{#t}, aucun nom d'hôte ne sera affiché."
 
 #. type: item
-#: doc/guix.texi:11750
+#: doc/guix.texi:14682
 #, no-wrap
 msgid "@code{long-hostname?} (default: @code{#f})"
 msgstr "@code{long-hostname?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:11754
+#: doc/guix.texi:14686
 msgid "By default, the hostname is only printed until the first dot.  When this option is set to @code{#t}, the fully qualified hostname by @code{gethostname} or @code{getaddrinfo} is shown."
 msgstr "Par défaut, le nom d'hôte n'est affiché qu'après le premier point.  Lorsque la valeur est @code{#t}, le nom d'hôte pleinement qualifié renvoyé par @code{gethostname} ou @code{getaddrinfo} sera affiché."
 
 #. type: item
-#: doc/guix.texi:11755
+#: doc/guix.texi:14687
 #, no-wrap
 msgid "@code{erase-characters} (default: @code{#f})"
 msgstr "@code{erase-characters} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:11758
+#: doc/guix.texi:14690
 msgid "This option accepts a string of additional characters that should be interpreted as backspace when the user types their login name."
 msgstr "Cette option accepte une chaîne de caractères de caractères supplémentaires qui devraient être interprétés comme des effacements lorsque l'utilisateur les tape dans leur nom d'utilisateur."
 
 #. type: item
-#: doc/guix.texi:11759
+#: doc/guix.texi:14691
 #, no-wrap
 msgid "@code{kill-characters} (default: @code{#f})"
 msgstr "@code{kill-characters} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:11763
-msgid "This option accepts a string that should be interpreted to mean \"ignore all previous characters\" (also called a \"kill\" character) when the user types their login name."
-msgstr "Cette option accepte une chaîne de caractères qui devrait être interprété comme signifiant « ignore tous les caractères précédent » (aussi appelé un caractère « kill ») lorsque l'utilisateur tape son nom d'utilisateur."
+#: doc/guix.texi:14695
+msgid "This option accepts a string that should be interpreted to mean ``ignore all previous characters'' (also called a ``kill'' character) when the user types their login name."
+msgstr "Cette option accepte une chaîne de caractères qui devrait être interprétée comme signifiant « ignore tous les caractères précédents » (aussi appelé un caractère « kill ») lorsque l'utilisateur·rice tape son nom d'utilisateur·rice."
 
 #. type: item
-#: doc/guix.texi:11764
+#: doc/guix.texi:14696
 #, no-wrap
 msgid "@code{chdir} (default: @code{#f})"
 msgstr "@code{chdir} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:11767
+#: doc/guix.texi:14699
 msgid "This option accepts, as a string, a directory path that will be changed to before login."
 msgstr "Cette option accepte, en tant que chaîne de caractères, un chemin vers un répertoire dans lequel se trouvera la commande avant la connexion."
 
 #. type: item
-#: doc/guix.texi:11768
+#: doc/guix.texi:14700
 #, no-wrap
 msgid "@code{delay} (default: @code{#f})"
 msgstr "@code{delay} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:11771
+#: doc/guix.texi:14703
 msgid "This options accepts, as an integer, the number of seconds to sleep before opening the tty and displaying the login prompt."
 msgstr "Cette option accepte, en tant qu'entier, le nombre de secondes à attendre avant d'ouvrir le tty et afficher l'écran de connexion."
 
 #. type: item
-#: doc/guix.texi:11772
+#: doc/guix.texi:14704
 #, no-wrap
 msgid "@code{nice} (default: @code{#f})"
 msgstr "@code{nice} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:11775
+#: doc/guix.texi:14707
 msgid "This option accepts, as an integer, the nice value with which to run the @command{login} program."
 msgstr "Cette option accepte, en tant qu'entier, la valeur « nice » avec laquelle le programme @command{login} tourne."
 
 #. type: item
-#: doc/guix.texi:11776 doc/guix.texi:12007 doc/guix.texi:12694
-#: doc/guix.texi:19064
+#: doc/guix.texi:14708 doc/guix.texi:14975 doc/guix.texi:15804
+#: doc/guix.texi:23250 doc/guix.texi:25438 doc/guix.texi:26075
+#: doc/guix.texi:27782 doc/guix.texi:29896
 #, no-wrap
 msgid "@code{extra-options} (default: @code{'()})"
 msgstr "@code{extra-options} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:11779
-msgid "This option provides an \"escape hatch\" for the user to provide arbitrary command-line arguments to @command{agetty} as a list of strings."
-msgstr "Cette option fournie un « mécanisme de secours » pour que l'utilisateur puisse ajouter des arguments de la ligne de commande arbitraires à @command{agetty} comme une liste de chaînes de caractères."
+#: doc/guix.texi:14711
+msgid "This option provides an ``escape hatch'' for the user to provide arbitrary command-line arguments to @command{agetty} as a list of strings."
+msgstr "Cette option fournit un « mécanisme de secours » pour que l'utilisateur·rice puisse ajouter des arguments  arbitraires en ligne de commande à @command{agetty} comme une liste de chaînes de caractères."
 
 #. type: deffn
-#: doc/guix.texi:11783
+#: doc/guix.texi:14715
 #, no-wrap
 msgid "{Scheme Procedure} kmscon-service-type @var{config}"
 msgstr "{Procédure Scheme} kmscon-service-type @var{config}"
 
 #. type: deffn
-#: doc/guix.texi:11787
+#: doc/guix.texi:14719
 msgid "Return a service to run @uref{https://www.freedesktop.org/wiki/Software/kmscon,kmscon} according to @var{config}, a @code{<kmscon-configuration>} object, which specifies the tty to run, among other things."
 msgstr "Renvoie un service qui lance @uref{https://www.freedesktop.org/wiki/Software/kmscon,kmscon} d'après @var{config}, un objet @code{<kmscon-configuration>}, qui spécifie le tty sur lequel tourner, entre autres choses."
 
 #. type: deftp
-#: doc/guix.texi:11789
+#: doc/guix.texi:14721
 #, no-wrap
 msgid "{Data Type} kmscon-configuration"
 msgstr "{Type de données} kmscon-configuration"
 
 #. type: deftp
-#: doc/guix.texi:11792
+#: doc/guix.texi:14724
 msgid "This is the data type representing the configuration of Kmscon, which implements virtual console log-in."
 msgstr "C'est le type de données représentant la configuration de Kscon, qui implémente l'écran de chargement de la console virtuelle."
 
 #. type: code{#1}
-#: doc/guix.texi:11795
+#: doc/guix.texi:14727
 #, no-wrap
 msgid "virtual-terminal"
 msgstr "virtual-terminal"
 
 #. type: table
-#: doc/guix.texi:11797
+#: doc/guix.texi:14729
 msgid "The name of the console this Kmscon runs on---e.g., @code{\"tty1\"}."
 msgstr "Le nom de la console sur laquelle Kmscon tourne, p.@: ex.@: @code{\"tty1\"}."
 
 #. type: item
-#: doc/guix.texi:11798
+#: doc/guix.texi:14730
 #, no-wrap
 msgid "@code{login-program} (default: @code{#~(string-append #$shadow \"/bin/login\")})"
 msgstr "@code{login-program} (par défaut : @code{#~(string-append #$shadow \"/bin/login\")})"
 
 #. type: table
-#: doc/guix.texi:11801
+#: doc/guix.texi:14733
 msgid "A gexp denoting the name of the log-in program. The default log-in program is @command{login} from the Shadow tool suite."
 msgstr "Une gexp qui dénote le nom d'un programme de connexion.  le programme de connexion par défaut est @command{login} de la suite d'outils Shadow."
 
 #. type: item
-#: doc/guix.texi:11802
+#: doc/guix.texi:14734
 #, no-wrap
 msgid "@code{login-arguments} (default: @code{'(\"-p\")})"
 msgstr "@code{login-arguments} (par défaut : @code{'(\"-p\")})"
 
 #. type: table
-#: doc/guix.texi:11804
+#: doc/guix.texi:14736
 msgid "A list of arguments to pass to @command{login}."
 msgstr "Une liste d'arguments à passer à @command{login}."
 
 #. type: item
-#: doc/guix.texi:11809
+#: doc/guix.texi:14741
 #, no-wrap
 msgid "@code{hardware-acceleration?} (default: #f)"
 msgstr "@code{hardware-acceleration?} (par défaut : #f)"
 
 #. type: table
-#: doc/guix.texi:11811
+#: doc/guix.texi:14743
 msgid "Whether to use hardware acceleration."
 msgstr "S'il faut utiliser l'accélération matérielle."
 
 #. type: item
-#: doc/guix.texi:11812
+#: doc/guix.texi:14744
 #, no-wrap
 msgid "@code{kmscon} (default: @var{kmscon})"
 msgstr "@code{kmscon} (par défaut : @var{kmscon})"
 
 #. type: table
-#: doc/guix.texi:11814
+#: doc/guix.texi:14746
 msgid "The Kmscon package to use."
 msgstr "Le paquet Kmscon à utiliser."
 
 #. type: cindex
-#: doc/guix.texi:11818
+#: doc/guix.texi:14750
 #, no-wrap
 msgid "name service cache daemon"
 msgstr "name service cache daemon"
 
 #. type: cindex
-#: doc/guix.texi:11819
+#: doc/guix.texi:14751
 #, no-wrap
 msgid "nscd"
 msgstr "nscd"
 
 #. type: deffn
-#: doc/guix.texi:11820
+#: doc/guix.texi:14752
 #, no-wrap
 msgid "{Scheme Procedure} nscd-service [@var{config}] [#:glibc glibc] @"
 msgstr "{Procédure Scheme} nscd-service [@var{config}] [#:glibc glibc] @"
 
 #. type: deffn
-#: doc/guix.texi:11825
+#: doc/guix.texi:14757
 msgid "[#:name-services '()] Return a service that runs the libc name service cache daemon (nscd) with the given @var{config}---an @code{<nscd-configuration>} object.  @xref{Name Service Switch}, for an example."
 msgstr ""
 "[#:name-services '()]\n"
 "Renvoie un service qui lance le démon de cache de services de noms de la libc (nscd) avec la @var{config} donnée — un objet @code{<nscd-configuration>}.  @xref{Name Service Switch}, pour un exemple."
 
 #. type: deffn
-#: doc/guix.texi:11827
+#: doc/guix.texi:14759
 msgid "For convenience, the Shepherd service for nscd provides the following actions:"
 msgstr "Parce que c'est pratique, le service du Shepherd pour nscd fournit les actions suivantes :"
 
 #. type: item
-#: doc/guix.texi:11829
+#: doc/guix.texi:14761
 #, no-wrap
 msgid "invalidate"
 msgstr "invalidate"
 
 #. type: cindex
-#: doc/guix.texi:11830
+#: doc/guix.texi:14762
 #, no-wrap
 msgid "cache invalidation, nscd"
 msgstr "invalidation du cache, nscd"
 
 #. type: cindex
-#: doc/guix.texi:11831
+#: doc/guix.texi:14763
 #, no-wrap
 msgid "nscd, cache invalidation"
 msgstr "nscd, invalidation du cache"
 
 #. type: table
-#: doc/guix.texi:11833
+#: doc/guix.texi:14765
 msgid "This invalidate the given cache.  For instance, running:"
 msgstr "Cela invalide le cache donné.  Par exemple, en laçant :"
 
 #. type: example
-#: doc/guix.texi:11836
+#: doc/guix.texi:14768
 #, no-wrap
 msgid "herd invalidate nscd hosts\n"
 msgstr "herd invalidate nscd hosts\n"
 
 #. type: table
-#: doc/guix.texi:11840
+#: doc/guix.texi:14772
 msgid "invalidates the host name lookup cache of nscd."
 msgstr "on invalide le cache de noms d'hôtes de nscd."
 
 #. type: item
-#: doc/guix.texi:11841
+#: doc/guix.texi:14773
 #, no-wrap
 msgid "statistics"
 msgstr "statistiques"
 
 #. type: table
-#: doc/guix.texi:11844
+#: doc/guix.texi:14776
 msgid "Running @command{herd statistics nscd} displays information about nscd usage and caches."
 msgstr "Lancer @command{herd statistics nscd} affiche des informations sur l'utilisation de nscd et des caches."
 
 #. type: defvr
-#: doc/guix.texi:11848
+#: doc/guix.texi:14780
 #, no-wrap
 msgid "{Scheme Variable} %nscd-default-configuration"
 msgstr "{Variable Scheme} %nscd-default-configuration"
 
 #. type: defvr
-#: doc/guix.texi:11852
-msgid "This is the default @code{<nscd-configuration>} value (see below) used by @code{nscd-service}.  It uses the caches defined by @var{%nscd-default-caches}; see below."
-msgstr "C'est la valeur par défaut de @code{<nscd-configuration>} (voir plus bas) utilisée par @code{nscd-service}.  Elle utilise les caches définis par @var{%nscd-default-caches} ; voir plus bas."
+#: doc/guix.texi:14784
+msgid "This is the default @code{<nscd-configuration>} value (see below) used by @code{nscd-service}.  It uses the caches defined by @code{%nscd-default-caches}; see below."
+msgstr "C'est la valeur par défaut de @code{<nscd-configuration>} (voir plus bas) utilisée par @code{nscd-service}.  Elle utilise les caches définis par @code{%nscd-default-caches} ; voir plus bas."
 
 #. type: deftp
-#: doc/guix.texi:11854
+#: doc/guix.texi:14786
 #, no-wrap
 msgid "{Data Type} nscd-configuration"
 msgstr "{Type de données} nscd-configuration"
 
 #. type: deftp
-#: doc/guix.texi:11857
+#: doc/guix.texi:14789
 msgid "This is the data type representing the name service cache daemon (nscd)  configuration."
 msgstr "C'est le type de données qui représente la configuration du démon de cache de services de noms (nscd)."
 
 #. type: item
-#: doc/guix.texi:11860
+#: doc/guix.texi:14792
 #, no-wrap
 msgid "@code{name-services} (default: @code{'()})"
 msgstr "@code{name-services} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:11863
+#: doc/guix.texi:14795
 msgid "List of packages denoting @dfn{name services} that must be visible to the nscd---e.g., @code{(list @var{nss-mdns})}."
 msgstr "Liste des paquets dénotant des @dfn{services de noms} qui doivent être visible pour nscd, p.@: ex.@: @code{(list @var{nss-mdns})}."
 
 #. type: item
-#: doc/guix.texi:11864
+#: doc/guix.texi:14796
 #, no-wrap
 msgid "@code{glibc} (default: @var{glibc})"
 msgstr "@code{glibc} (par défaut : @var{glibc})"
 
 #. type: table
-#: doc/guix.texi:11867
+#: doc/guix.texi:14799
 msgid "Package object denoting the GNU C Library providing the @command{nscd} command."
 msgstr "Objet de paquet qui dénote la Bibliothèque C de GNU qui fournit la commande @command{nscd}."
 
 #. type: item
-#: doc/guix.texi:11868
+#: doc/guix.texi:14800
 #, no-wrap
 msgid "@code{log-file} (default: @code{\"/var/log/nscd.log\"})"
 msgstr "@code{log-file} (par défaut : @code{\"/var/log/nscd.log\"})"
 
 #. type: table
-#: doc/guix.texi:11871
+#: doc/guix.texi:14803
 msgid "Name of the nscd log file.  This is where debugging output goes when @code{debug-level} is strictly positive."
 msgstr "Nom du fichier journal de nscd.  C'est là que les sorties de débogage sont envoyée lorsque @code{debug-level} est strictement positif."
 
 #. type: item
-#: doc/guix.texi:11872
+#: doc/guix.texi:14804
 #, no-wrap
 msgid "@code{debug-level} (default: @code{0})"
 msgstr "@code{debug-level} (par défaut : @code{0})"
 
 #. type: table
-#: doc/guix.texi:11875
+#: doc/guix.texi:14807
 msgid "Integer denoting the debugging levels.  Higher numbers mean that more debugging output is logged."
 msgstr "Entier qui dénote le niveau de débogage.  Les entiers les plus grands signifient plus de sortie de débogage."
 
 #. type: item
-#: doc/guix.texi:11876
+#: doc/guix.texi:14808
 #, no-wrap
-msgid "@code{caches} (default: @var{%nscd-default-caches})"
-msgstr "@code{caches} (par défaut : @var{%nscd-default-caches})"
+msgid "@code{caches} (default: @code{%nscd-default-caches})"
+msgstr "@code{caches} (par défaut : @code{%nscd-default-caches})"
 
 #. type: table
-#: doc/guix.texi:11879
+#: doc/guix.texi:14811
 msgid "List of @code{<nscd-cache>} objects denoting things to be cached; see below."
 msgstr "Liste d'objets @code{<nscd-cache>} qui dénotent des choses à mettre en cache ; voir plus bas."
 
 #. type: deftp
-#: doc/guix.texi:11883
+#: doc/guix.texi:14815
 #, no-wrap
 msgid "{Data Type} nscd-cache"
 msgstr "{Type de données} nscd-cache"
 
 #. type: deftp
-#: doc/guix.texi:11885
+#: doc/guix.texi:14817
 msgid "Data type representing a cache database of nscd and its parameters."
 msgstr "Type de données représentant une base de données de cache de nscd et ses paramètres."
 
 #. type: cindex
-#: doc/guix.texi:11888 doc/guix.texi:15088
+#: doc/guix.texi:14820 doc/guix.texi:18835
 #, no-wrap
 msgid "database"
 msgstr "database"
 
 #. type: table
-#: doc/guix.texi:11893
+#: doc/guix.texi:14825
 msgid "This is a symbol representing the name of the database to be cached.  Valid values are @code{passwd}, @code{group}, @code{hosts}, and @code{services}, which designate the corresponding NSS database (@pxref{NSS Basics,,, libc, The GNU C Library Reference Manual})."
 msgstr "C'est un symbole qui représente le nom de la base de donnée à mettre en cache.  Les valeurs valide sont @code{passwd}, @code{group}, @code{hosts} et @code{services} qui désignent les bases de données NSS correspondantes (@pxref{NSS Basics,,, libc, The GNU C Library Reference Manual})."
 
 #. type: code{#1}
-#: doc/guix.texi:11894
+#: doc/guix.texi:14826
 #, no-wrap
 msgid "positive-time-to-live"
 msgstr "positive-time-to-live"
 
 #. type: itemx
-#: doc/guix.texi:11895
+#: doc/guix.texi:14827
 #, no-wrap
 msgid "@code{negative-time-to-live} (default: @code{20})"
 msgstr "@code{negative-time-to-live} (par défaut : @code{20})"
 
 #. type: table
-#: doc/guix.texi:11898
+#: doc/guix.texi:14830
 msgid "A number representing the number of seconds during which a positive or negative lookup result remains in cache."
 msgstr "Un entier qui représente le nombre de secondes pendant lesquelles un résultat positif ou négatif reste en cache."
 
 #. type: item
-#: doc/guix.texi:11899
+#: doc/guix.texi:14831
 #, no-wrap
 msgid "@code{check-files?} (default: @code{#t})"
 msgstr "@code{check-files?} (par défaut : @code{#t})"
 
 #. type: table
-#: doc/guix.texi:11902
+#: doc/guix.texi:14834
 msgid "Whether to check for updates of the files corresponding to @var{database}."
 msgstr "Indique s'il faut vérifier des mises à jours dans les fichiers correspondant à @var{database}."
 
 #. type: table
-#: doc/guix.texi:11906
+#: doc/guix.texi:14838
 msgid "For instance, when @var{database} is @code{hosts}, setting this flag instructs nscd to check for updates in @file{/etc/hosts} and to take them into account."
 msgstr "Par exemple, lorsque @var{database} est @code{hosts}, ce drapeau indique à nscd de vérifier s'il y a des mises à jour de @file{/etc/hosts} et de les prendre en compte."
 
 #. type: item
-#: doc/guix.texi:11907
+#: doc/guix.texi:14839
 #, no-wrap
 msgid "@code{persistent?} (default: @code{#t})"
 msgstr "@code{persistent?} (par défaut : @code{#t})"
 
 #. type: table
-#: doc/guix.texi:11909
+#: doc/guix.texi:14841
 msgid "Whether the cache should be stored persistently on disk."
 msgstr "Indique si le cache devrait être stocké de manière persistante sur le disque."
 
 #. type: item
-#: doc/guix.texi:11910
+#: doc/guix.texi:14842
 #, no-wrap
 msgid "@code{shared?} (default: @code{#t})"
 msgstr "@code{shared?} (par défaut : @code{#t})"
 
 #. type: table
-#: doc/guix.texi:11912
+#: doc/guix.texi:14844
 msgid "Whether the cache should be shared among users."
 msgstr "Indique si le cache devrait être partagé entre les utilisateurs."
 
 #. type: item
-#: doc/guix.texi:11913
+#: doc/guix.texi:14845
 #, no-wrap
 msgid "@code{max-database-size} (default: 32@tie{}MiB)"
 msgstr "@code{max-database-size} (par défaut : 32@tie{}MiB)"
 
 #. type: table
-#: doc/guix.texi:11915
+#: doc/guix.texi:14847
 msgid "Maximum size in bytes of the database cache."
 msgstr "Taille maximale en octets de la base de données en cache."
 
 #. type: defvr
-#: doc/guix.texi:11922
+#: doc/guix.texi:14854
 #, no-wrap
 msgid "{Scheme Variable} %nscd-default-caches"
 msgstr "{Variable Scheme} %nscd-default-caches"
 
 #. type: defvr
-#: doc/guix.texi:11925
+#: doc/guix.texi:14857
 msgid "List of @code{<nscd-cache>} objects used by default by @code{nscd-configuration} (see above)."
 msgstr "Liste d'objets @code{<nscd-cache>} utilisés par défaut par @code{nscd-configuration} (voir plus haut)."
 
 #. type: defvr
-#: doc/guix.texi:11931
+#: doc/guix.texi:14863
 msgid "It enables persistent and aggressive caching of service and host name lookups.  The latter provides better host name lookup performance, resilience in the face of unreliable name servers, and also better privacy---often the result of host name lookups is in local cache, so external name servers do not even need to be queried."
 msgstr "Elle active la mise en cache persistante et agressive des recherches de services et de noms d'hôtes.  Ces derniers fournissent une recherche de noms d'hôtes plus performante, résiliente face à des serveurs de noms peu fiables et une protection de votre vie privée plus efficace — souvent le résultat des recherches de noms d'hôtes sont dans le cache local, donc les serveurs de nom externes n'ont même pas besoin d'être questionnés."
 
 #. type: anchor{#1}
-#: doc/guix.texi:11934
+#: doc/guix.texi:14866
 msgid "syslog-configuration-type"
 msgstr "syslog-configuration-type"
 
 #. type: cindex
-#: doc/guix.texi:11934 doc/guix.texi:11950
+#: doc/guix.texi:14866 doc/guix.texi:14882
 #, no-wrap
 msgid "syslog"
 msgstr "syslog"
 
 #. type: cindex
-#: doc/guix.texi:11935 doc/guix.texi:12372
+#: doc/guix.texi:14867 doc/guix.texi:15405
 #, no-wrap
 msgid "logging"
 msgstr "logging"
 
 #. type: deftp
-#: doc/guix.texi:11936
+#: doc/guix.texi:14868
 #, no-wrap
 msgid "{Data Type} syslog-configuration"
 msgstr "{Type de données} syslog-configuration"
 
 #. type: deftp
-#: doc/guix.texi:11938
+#: doc/guix.texi:14870
 msgid "This data type represents the configuration of the syslog daemon."
 msgstr "Ce type de données représente la configuration du démon syslog."
 
 #. type: item
-#: doc/guix.texi:11940
+#: doc/guix.texi:14872
 #, no-wrap
 msgid "@code{syslogd} (default: @code{#~(string-append #$inetutils \"/libexec/syslogd\")})"
 msgstr "@code{syslogd} (par défaut : @code{#~(string-append #$inetutils \"/libexec/syslogd\")})"
 
 #. type: table
-#: doc/guix.texi:11942
+#: doc/guix.texi:14874
 msgid "The syslog daemon to use."
 msgstr "Le démon syslog à utiliser."
 
 #. type: item
-#: doc/guix.texi:11943
+#: doc/guix.texi:14875
 #, no-wrap
 msgid "@code{config-file} (default: @code{%default-syslog.conf})"
 msgstr "@code{config-file} (par défaut : @code{%default-syslog.conf})"
 
 #. type: table
-#: doc/guix.texi:11945
+#: doc/guix.texi:14877
 msgid "The syslog configuration file to use."
 msgstr "Le fichier de configuration de syslog à utiliser."
 
 #. type: anchor{#1}
-#: doc/guix.texi:11950
+#: doc/guix.texi:14882
 msgid "syslog-service"
 msgstr "syslog-service"
 
 #. type: deffn
-#: doc/guix.texi:11951
+#: doc/guix.texi:14883
 #, no-wrap
 msgid "{Scheme Procedure} syslog-service @var{config}"
 msgstr "{Procédure Scheme} syslog-service @var{config}"
 
 #. type: deffn
-#: doc/guix.texi:11953
+#: doc/guix.texi:14885
 msgid "Return a service that runs a syslog daemon according to @var{config}."
 msgstr "Renvoie un service qui lance un démon syslog en suivant @var{config}."
 
 #. type: deffn
-#: doc/guix.texi:11956
+#: doc/guix.texi:14888
 msgid "@xref{syslogd invocation,,, inetutils, GNU Inetutils}, for more information on the configuration file syntax."
 msgstr "@xref{syslogd invocation,,, inetutils, GNU Inetutils}, pour plus d'informations sur la syntaxe du fichier de configuration."
 
 #. type: defvr
-#: doc/guix.texi:11958
+#: doc/guix.texi:14890
 #, no-wrap
 msgid "{Scheme Variable} guix-service-type"
 msgstr "{Variable Scheme} guix-service-type"
 
 #. type: defvr
-#: doc/guix.texi:11962
+#: doc/guix.texi:14894
 msgid "This is the type of the service that runs the build daemon, @command{guix-daemon} (@pxref{Invoking guix-daemon}).  Its value must be a @code{guix-configuration} record as described below."
 msgstr "C'est le type de service qui lance le démon de construction, @command{guix-daemon} (@pxref{Invoking guix-daemon}).  Sa valeur doit être un enregistrement @code{guix-configuration} décrit plus bas."
 
 #. type: anchor{#1}
-#: doc/guix.texi:11965
+#: doc/guix.texi:14897
 msgid "guix-configuration-type"
 msgstr "guix-configuration-type"
 
 #. type: deftp
-#: doc/guix.texi:11965
+#: doc/guix.texi:14897
 #, no-wrap
 msgid "{Data Type} guix-configuration"
 msgstr "{Type de données} guix-configuration"
 
 #. type: deftp
-#: doc/guix.texi:11968
+#: doc/guix.texi:14900
 msgid "This data type represents the configuration of the Guix build daemon.  @xref{Invoking guix-daemon}, for more information."
 msgstr "Ce type de données représente la configuration du démon de construction de Guix.  @xref{Invoking guix-daemon} pour plus d'informations."
 
 #. type: item
-#: doc/guix.texi:11970
+#: doc/guix.texi:14902
 #, no-wrap
 msgid "@code{guix} (default: @var{guix})"
 msgstr "@code{guix} (par défaut : @var{guix})"
 
 #. type: table
-#: doc/guix.texi:11972 doc/guix.texi:12192
+#: doc/guix.texi:14904 doc/guix.texi:15174
 msgid "The Guix package to use."
 msgstr "Le paquet Guix à utiliser."
 
 #. type: item
-#: doc/guix.texi:11973
+#: doc/guix.texi:14905
 #, no-wrap
 msgid "@code{build-group} (default: @code{\"guixbuild\"})"
 msgstr "@code{build-group} (par défaut : @code{\"guixbuild\"})"
 
 #. type: table
-#: doc/guix.texi:11975
+#: doc/guix.texi:14907
 msgid "Name of the group for build user accounts."
 msgstr "Nom du groupe des comptes utilisateurs de construction."
 
 #. type: item
-#: doc/guix.texi:11976
+#: doc/guix.texi:14908
 #, no-wrap
 msgid "@code{build-accounts} (default: @code{10})"
 msgstr "@code{build-accounts} (par défaut : @code{10})"
 
 #. type: table
-#: doc/guix.texi:11978
+#: doc/guix.texi:14910
 msgid "Number of build user accounts to create."
 msgstr "Nombre de comptes utilisateurs de construction à créer."
 
 #. type: item
-#: doc/guix.texi:11979
+#: doc/guix.texi:14911
 #, no-wrap
 msgid "@code{authorize-key?} (default: @code{#t})"
 msgstr "@code{authorize-key?} (par défaut : @code{#t})"
 
 #. type: table
-#: doc/guix.texi:11984
+#: doc/guix.texi:14916
 msgid "Whether to authorize the substitute keys listed in @code{authorized-keys}---by default that of @code{@value{SUBSTITUTE-SERVER}} (@pxref{Substitutes})."
 msgstr "Indique s'il faut autoriser ou non les clefs de substituts listées dans @code{authorize-keys} — par défaut celle de @code{@value{SUBSTITUTE-SERVER}} (@pxref{Substituts})."
 
+#. type: table
+#: doc/guix.texi:14922
+msgid "When @code{authorize-key?} is true, @file{/etc/guix/acl} cannot be changed by invoking @command{guix archive --authorize}.  You must instead adjust @code{guix-configuration} as you wish and reconfigure the system.  This ensures that your operating system configuration file is self-contained."
+msgstr "Lorsque @code{authorize-key?} est vrai, @file{/etc/guix/acl} ne peut pas être changé en invoquant @command{guix archive --authorize}.  vous devez plutôt ajuster @code{guix-configuration} comme vous le souhaitez et reconfigurer le système.  Cela s'assure que le fichier de configuration de votre système est auto-contenu."
+
+#. type: quotation
+#: doc/guix.texi:14929
+msgid "When booting or reconfiguring to a system where @code{authorize-key?} is true, the existing @file{/etc/guix/acl} file is backed up as @file{/etc/guix/acl.bak} if it was determined to be a manually modified file.  This is to facilitate migration from earlier versions, which allowed for in-place modifications to @file{/etc/guix/acl}."
+msgstr "Au démarrage ou la reconfiguration d'un système où @code{authorize-key?} est vrai, le fichier @file{/etc/guix/acl} existant est sauvegardé dans @file{/etc/guix/acl.bak} s'il est déterminé qu'il a été modifié manuellement.  Cela facilite la migration à partir de versions précédentes, qui permettaient des modifications en-place de @file{/etc/guix/acl}."
+
 #. type: vindex
-#: doc/guix.texi:11985
+#: doc/guix.texi:14931
 #, no-wrap
 msgid "%default-authorized-guix-keys"
 msgstr "%default-authorized-guix-keys"
 
 #. type: item
-#: doc/guix.texi:11986
+#: doc/guix.texi:14932
 #, no-wrap
-msgid "@code{authorized-keys} (default: @var{%default-authorized-guix-keys})"
-msgstr "@code{authorized-keys} (par défaut : @var{%default-authorized-guix-keys})"
+msgid "@code{authorized-keys} (default: @code{%default-authorized-guix-keys})"
+msgstr "@code{authorized-keys} (par défaut : @code{%default-authorized-guix-keys})"
 
 #. type: table
-#: doc/guix.texi:11990
-msgid "The list of authorized key files for archive imports, as a list of string-valued gexps (@pxref{Invoking guix archive}).  By default, it contains that of @code{@value{SUBSTITUTE-SERVER}} (@pxref{Substitutes})."
-msgstr "La liste des fichiers de clefs autorisées pour les imports d'archives, en tant que liste de gexps sous forme de chaînes (@pxref{Invoking guix archive}).  Par défaut, elle contient celle de @code{@value{SUBSTITUTE-SERVER}} (@pxref{Substituts})."
+#: doc/guix.texi:14937
+msgid "The list of authorized key files for archive imports, as a list of string-valued gexps (@pxref{Invoking guix archive}).  By default, it contains that of @code{@value{SUBSTITUTE-SERVER}} (@pxref{Substitutes}).  See @code{substitute-urls} below for an example on how to change it."
+msgstr "La liste des fichiers des fichiers de clés autorisées pour les imports d'archives, en tant que liste de gexps sous forme de chaines (@pxref{Invoking guix archive}).  Par défaut, elle contient celle de @code{@value{SUBSTITUTE-SERVER}} (@pxref{Substituts}).  Voir @code{substitute-urls} ci-dessous pour apprendre comment la changer."
 
 #. type: item
-#: doc/guix.texi:11991
+#: doc/guix.texi:14938
 #, no-wrap
 msgid "@code{use-substitutes?} (default: @code{#t})"
 msgstr "@code{use-substitutes?} (par défaut : @code{#t})"
 
 #. type: table
-#: doc/guix.texi:11993
+#: doc/guix.texi:14940
 msgid "Whether to use substitutes."
 msgstr "S'il faut utiliser les substituts."
 
 #. type: item
-#: doc/guix.texi:11994
+#: doc/guix.texi:14941
 #, no-wrap
-msgid "@code{substitute-urls} (default: @var{%default-substitute-urls})"
-msgstr "@code{substitute-urls} (par défaut : @var{%default-substitute-urls})"
+msgid "@code{substitute-urls} (default: @code{%default-substitute-urls})"
+msgstr "@code{substitute-urls} (par défaut : @code{%default-substitute-urls})"
 
 #. type: table
-#: doc/guix.texi:11996
+#: doc/guix.texi:14943
 msgid "The list of URLs where to look for substitutes by default."
 msgstr "La liste des URL où trouver des substituts par défaut."
 
+#. type: table
+#: doc/guix.texi:14950
+msgid "Suppose you would like to fetch substitutes from @code{guix.example.org} in addition to @code{@value{SUBSTITUTE-SERVER}}.  You will need to do two things: (1) add @code{guix.example.org} to @code{substitute-urls}, and (2) authorize its signing key, having done appropriate checks (@pxref{Substitute Server Authorization}).  The configuration below does exactly that:"
+msgstr "Supposons que vous vouliez récupérer des substituts à partir de @code{guix.example.org} en plus de @code{@value{SUBSTITUTE-SERVER}}.  Vous devrez faire deux choses : (1) ajouter @code{guix.example.org} à @code{substitute-urls}, et (2) autoriser sa clé de signature, après avoir effectué les vérifications adéquates (@pxref{Substitute Server Authorization}).  La configuration ci-dessous fait exactement cela :"
+
+#. type: lisp
+#: doc/guix.texi:14959
+#, no-wrap
+msgid ""
+"(guix-configuration\n"
+"  (substitute-urls\n"
+"   (append (list \"https://guix.example.org\")\n"
+"           %default-substitute-urls))\n"
+"  (authorized-keys\n"
+"   (append (list (local-file \"./guix.example.org-key.pub\"))\n"
+"           %default-authorized-guix-keys)))\n"
+msgstr ""
+"(guix-configuration\n"
+"  (substitute-urls\n"
+"   (append (list \"https://guix.example.org\")\n"
+"           %default-substitute-urls))\n"
+"  (authorized-keys\n"
+"   (append (list (local-file \"./guix.example.org-key.pub\"))\n"
+"           %default-authorized-guix-keys)))\n"
+
+#. type: table
+#: doc/guix.texi:14964
+msgid "This example assumes that the file @file{./guix.example.org-key.pub} contains the public key that @code{guix.example.org} uses to sign substitutes."
+msgstr "Cet exemple suppose que le fichier @file{./guix.example.org-key.pub} contient la clé publique que @code{guix.example.org} utilise pour signer les substituts."
+
 #. type: item
-#: doc/guix.texi:11997
+#: doc/guix.texi:14965
 #, no-wrap
 msgid "@code{max-silent-time} (default: @code{0})"
 msgstr "@code{max-silent-time} (par défaut : @code{0})"
 
 #. type: itemx
-#: doc/guix.texi:11998
+#: doc/guix.texi:14966
 #, no-wrap
 msgid "@code{timeout} (default: @code{0})"
 msgstr "@code{timeout} (par défaut : @code{0})"
 
 #. type: table
-#: doc/guix.texi:12002
+#: doc/guix.texi:14970
 msgid "The number of seconds of silence and the number of seconds of activity, respectively, after which a build process times out.  A value of zero disables the timeout."
 msgstr "Le nombre de secondes de silence et le nombre de secondes d'inactivité, respectivement, après lesquelles un processus de construction son délai d'attente.  Une valeur de zéro désactive le délai d'attente."
 
 #. type: item
-#: doc/guix.texi:12003
+#: doc/guix.texi:14971
 #, no-wrap
 msgid "@code{log-compression} (default: @code{'bzip2})"
 msgstr "@code{log-compression} (par défaut : @code{'bzip2})"
 
 #. type: table
-#: doc/guix.texi:12006
+#: doc/guix.texi:14974
 msgid "The type of compression used for build logs---one of @code{gzip}, @code{bzip2}, or @code{none}."
 msgstr "Le type de compression utilisé par les journaux de construction — parmi @code{gzip}, @code{bzip2} et @code{none}."
 
 #. type: table
-#: doc/guix.texi:12009
+#: doc/guix.texi:14977
 msgid "List of extra command-line options for @command{guix-daemon}."
 msgstr "Liste d'options supplémentaires de la ligne de commande pour @command{guix-daemon}."
 
 #. type: item
-#: doc/guix.texi:12010
+#: doc/guix.texi:14978
 #, no-wrap
 msgid "@code{log-file} (default: @code{\"/var/log/guix-daemon.log\"})"
 msgstr "@code{log-file} (par défaut : @code{\"/var/log/guix-daemon.log\"})"
 
 #. type: table
-#: doc/guix.texi:12013
+#: doc/guix.texi:14981
 msgid "File where @command{guix-daemon}'s standard output and standard error are written."
 msgstr "Le fichier où les sorties standard et d'erreur de @command{guix-daemon} sont écrites."
 
+#. type: cindex
+#: doc/guix.texi:14982
+#, no-wrap
+msgid "HTTP proxy, for @code{guix-daemon}"
+msgstr "Proxy HTTP, pour @code{guix-daemon}"
+
+#. type: cindex
+#: doc/guix.texi:14983
+#, no-wrap
+msgid "proxy, for @code{guix-daemon} HTTP access"
+msgstr "proxy, pour l'accès  @code{guix-daemon} HTTP"
+
 #. type: item
-#: doc/guix.texi:12014
+#: doc/guix.texi:14984
 #, no-wrap
 msgid "@code{http-proxy} (default: @code{#f})"
 msgstr "@code{http-proxy} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:12017
-msgid "The HTTP proxy used for downloading fixed-output derivations and substitutes."
-msgstr "Le serveur mandataire HTTP à utiliser pour télécharger les dérivations à sortie fixe et les substituts."
+#: doc/guix.texi:14987
+msgid "The URL of the HTTP and HTTPS proxy used for downloading fixed-output derivations and substitutes."
+msgstr "L'URL du proxy HTTP et HTTPS utilisé pour le téléchargement des dérivés et substituts à sortie fixe."
+
+#. type: table
+#: doc/guix.texi:14990
+msgid "It is also possible to change the daemon's proxy at run time through the @code{set-http-proxy} action, which restarts it:"
+msgstr "Il est également possible de changer le proxy du démon au moment de l'exécution grâce à l'action @code{set-http-proxy}, qui le redémarre :"
+
+#. type: example
+#: doc/guix.texi:14993
+#, no-wrap
+msgid "herd set-http-proxy guix-daemon http://localhost:8118\n"
+msgstr "herd set-http-proxy guix-daemon http://localhost:8118\n"
+
+#. type: table
+#: doc/guix.texi:14996
+msgid "To clear the proxy settings, run:"
+msgstr "Pour effacer les paramètres du proxy, exécutez :"
+
+#. type: example
+#: doc/guix.texi:14999
+#, no-wrap
+msgid "herd set-http-proxy guix-daemon\n"
+msgstr "herd set-http-proxy guix-daemon\n"
 
 #. type: item
-#: doc/guix.texi:12018
+#: doc/guix.texi:15001
 #, no-wrap
 msgid "@code{tmpdir} (default: @code{#f})"
 msgstr "@code{tmpdir} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:12020
+#: doc/guix.texi:15003
 msgid "A directory path where the @command{guix-daemon} will perform builds."
 msgstr "Un répertoire où @command{guix-daemon} effectuera ses constructions."
 
 #. type: deffn
-#: doc/guix.texi:12024
+#: doc/guix.texi:15007
 #, no-wrap
 msgid "{Scheme Procedure} udev-service [#:udev @var{eudev} #:rules @code{'()}]"
 msgstr "{Procédure Scheme} udev-service [#:udev @var{eudev} #:rules @code{'()}]"
 
 #. type: deffn
-#: doc/guix.texi:12029
-msgid "Run @var{udev}, which populates the @file{/dev} directory dynamically.  udev rules can be provided as a list of files through the @var{rules} variable.  The procedures @code{udev-rule} and @code{file->udev-rule} from @code{(gnu services base)} simplify the creation of such rule files."
-msgstr "Lance @var{udev}, qui rempli le répertoire @file{/dev} dynamiquement.  Les règles udev peuvent être fournies comme une liste de fichier via la variable @var{rules}.  Les procédures @code{udev-rule} et @code{file->udev-rule} de @code{(gnu services base)} simplifient la création de ces fichiers de règle."
+#: doc/guix.texi:15013
+msgid "Run @var{udev}, which populates the @file{/dev} directory dynamically.  udev rules can be provided as a list of files through the @var{rules} variable.  The procedures @code{udev-rule}, @code{udev-rules-service} and @code{file->udev-rule} from @code{(gnu services base)} simplify the creation of such rule files."
+msgstr "Lance @var{udev}, qui remplit le répertoire @file{/dev} dynamiquement.  Les règles udev peuvent être fournies comme une liste de fichier via la variable @var{rules}.  Les procédures @code{udev-rule}, @code{udev-rules-service} et @code{(gnu services base)} simplifient la création de ces fichiers de règle."
+
+#. type: deffn
+#: doc/guix.texi:15016
+msgid "The @command{herd rules udev} command, as root, returns the name of the directory containing all the active udev rules."
+msgstr "La commande @command{herd rules udev}, en tant que root, renvoie le nom du répertoire contenant toutes les règles udev actives."
 
 #. type: deffn
-#: doc/guix.texi:12031
+#: doc/guix.texi:15018
 #, no-wrap
 msgid "{Scheme Procedure} udev-rule [@var{file-name} @var{contents}]"
 msgstr "{Procédure Scheme} udev-rule [@var{file-name} @var{contents}]"
 
 #. type: deffn
-#: doc/guix.texi:12034
+#: doc/guix.texi:15021
 msgid "Return a udev-rule file named @var{file-name} containing the rules defined by the @var{contents} literal."
 msgstr "Renvoie un fichier de règle udev nommé @var{file-name} contenant les règles définie par le littéral @var{contents}."
 
 #. type: deffn
-#: doc/guix.texi:12038
+#: doc/guix.texi:15025
 msgid "In the following example, a rule for a USB device is defined to be stored in the file @file{90-usb-thing.rules}.  The rule runs a script upon detecting a USB device with a given product identifier."
 msgstr "Dans l'exemple suivant, on définie une règle pour un périphérique USB qui sera stockée dans le fichier @file{90-usb-thing.rules}.  La règle lance un script à la détection du périphérique USB avec l'identifiant de produit donné."
 
-#. type: example
-#: doc/guix.texi:12046
+#. type: lisp
+#: doc/guix.texi:15033
 #, no-wrap
 msgid ""
 "(define %example-udev-rule\n"
@@ -21897,69 +27266,71 @@ msgstr ""
 "                   \"RUN+=\\\"/path/to/script\\\"\")))\n"
 
 #. type: deffn
-#: doc/guix.texi:12050
-msgid "The @command{herd rules udev} command, as root, returns the name of the directory containing all the active udev rules."
-msgstr "La commande @command{herd rules udev}, en tant que root, renvoie le nom du répertoire contenant toutes les règles udev actives."
+#: doc/guix.texi:15036
+#, no-wrap
+msgid "{Scheme Procedure} udev-rules-service [@var{name} @var{rules}] @"
+msgstr "{Procédure Scheme} udev-rule-service [@var{name} @var{rules}] @"
 
-#. type: Plain text
-#: doc/guix.texi:12053
-msgid "Here we show how the default @var{udev-service} can be extended with it."
-msgstr "Ici on montre comment le service @var{udev-service} par défaut peut être étendu avec cette règle."
+#. type: deffn
+#: doc/guix.texi:15043
+msgid "[#:groups @var{groups}] Return a service that extends @code{udev-service-type } with @var{rules} and @code{account-service-type} with @var{groups} as system groups.  This works by creating a singleton service type @code{@var{name}-udev-rules}, of which the returned service is an instance."
+msgstr ""
+"[#:groups @var{groups}]\n"
+"Renvoie un service qui étend @code{udev-service-type } avec @var{rules} et @code{account-service-type} avec @var{groups} comme groupes système.  Cela fonctionne en créant un service de type @code{@var{name}-udev-rules}, dont le service renvoyé est une instance."
 
-#. type: example
-#: doc/guix.texi:12063
+#. type: deffn
+#: doc/guix.texi:15046
+msgid "Here we show how it can be used to extend @code{udev-service-type} with the previously defined rule @code{%example-udev-rule}."
+msgstr "Nous montrons ici comment cela peut être utilisé pour étendre @code{udev-service-type} avec la règle précédemment définie @code{%exemple-udev-rule}."
+
+#. type: lisp
+#: doc/guix.texi:15053
 #, no-wrap
 msgid ""
 "(operating-system\n"
 " ;; @dots{}\n"
 " (services\n"
-" (modify-services %desktop-services\n"
-"   (udev-service-type config =>\n"
-"     (udev-configuration (inherit config)\n"
-"      (rules (append (udev-configuration-rules config)\n"
-"                     (list %example-udev-rule))))))))\n"
+"   (cons (udev-rules-service 'usb-thing %example-udev-rule)\n"
+"         %desktop-services)))\n"
 msgstr ""
 "(operating-system\n"
 " ;; @dots{}\n"
 " (services\n"
-" (modify-services %desktop-services\n"
-"   (udev-service-type config =>\n"
-"     (udev-configuration (inherit config)\n"
-"      (rules (append (udev-configuration-rules config)\n"
-"                     (list %example-udev-rule))))))))\n"
+"   (cons (udev-rules-service 'usb-thing %example-udev-rule)\n"
+"         %desktop-services)))\n"
 
 #. type: deffn
-#: doc/guix.texi:12065
+#: doc/guix.texi:15056
 #, no-wrap
 msgid "{Scheme Procedure} file->udev-rule [@var{file-name} @var{file}]"
 msgstr "{Procédure Scheme} file->udev-rule [@var{file-name} @var{file}]"
 
 #. type: deffn
-#: doc/guix.texi:12068
+#: doc/guix.texi:15059
 msgid "Return a udev file named @var{file-name} containing the rules defined within @var{file}, a file-like object."
 msgstr "Renvoie un fichier udev nommé @var{file-name} contenant les règles définies dans @var{file}, un objet simili-fichier."
 
 #. type: deffn
-#: doc/guix.texi:12070
+#: doc/guix.texi:15061
 msgid "The following example showcases how we can use an existing rule file."
 msgstr "L'exemple suivant montre comment utiliser un fichier de règles existant."
 
-#. type: example
-#: doc/guix.texi:12075
+#. type: lisp
+#: doc/guix.texi:15066
 #, no-wrap
 msgid ""
 "(use-modules (guix download)     ;for url-fetch\n"
 "             (guix packages)     ;for origin\n"
-"             ;; @dots{})\n"
+"             @dots{})\n"
 "\n"
 msgstr ""
 "(use-modules (guix download)     ;pour url-fetch\n"
 "             (guix packages)     ;pour origin\n"
-"             ;; @dots{})\n"
+"             @dots{})\n"
 "\n"
 
-#. type: example
-#: doc/guix.texi:12086
+#. type: lisp
+#: doc/guix.texi:15077
 #, no-wrap
 msgid ""
 "(define %android-udev-rules\n"
@@ -21985,358 +27356,355 @@ msgstr ""
 "        (base32 \"0lmmagpyb6xsq6zcr2w1cyx9qmjqmajkvrdbhjx32gqf1d9is003\"))))))\n"
 
 #. type: Plain text
-#: doc/guix.texi:12095
+#: doc/guix.texi:15086
 msgid "Additionally, Guix package definitions can be included in @var{rules} in order to extend the udev rules with the definitions found under their @file{lib/udev/rules.d} sub-directory.  In lieu of the previous @var{file->udev-rule} example, we could have used the @var{android-udev-rules} package which exists in Guix in the @code{(gnu packages android)} module."
 msgstr "En plus, les définitions des paquets de Guix peuvent être inclus dans @var{rules} pour étendre les règles avec les définitions trouvées dans leur sous-répertoire @file{lib/udev/rules.d}.  Au lieu de l'exemple @var{file->udev-rule} précédent, on aurait pu utiliser le paquet @var{android-udev-rules} qui existe dans le module @code{(gnu packages android)}."
 
 #. type: Plain text
-#: doc/guix.texi:12104
-msgid "The following example shows how to use the @var{android-udev-rules} package so that the Android tool @command{adb} can detect devices without root privileges.  It also details how to create the @code{adbusers} group, which is required for the proper functioning of the rules defined within the @var{android-udev-rules} package.  To create such a group, we must define it both as part of the @var{supplementary-groups} of our @var{user-account} declaration, as well as in the @var{groups} field of the @var{operating-system} record."
-msgstr "L'exemple suivant montre comment utiliser le paquet @var{android-udev-rules} pour que l'outil Android @command{adb} puisse détecter les appareils sans privilège root.  Il détaille aussi comment créer le groupe @code{adbusers}, requis pour le bon fonctionnement des règles définies dans le paquet @var{android-udev-rules}.  Pour créer ce groupe, on doit le définir dans les @var{supplementary-groups} de la déclaration @var{user-account} ainsi que dans le champ @var{groups} de l'enregistrement @var{operating-system}."
+#: doc/guix.texi:15095
+msgid "The following example shows how to use the @var{android-udev-rules} package so that the Android tool @command{adb} can detect devices without root privileges.  It also details how to create the @code{adbusers} group, which is required for the proper functioning of the rules defined within the @code{android-udev-rules} package.  To create such a group, we must define it both as part of the @code{supplementary-groups} of our @code{user-account} declaration, as well as in the @var{groups} of the @code{udev-rules-service} procedure."
+msgstr "L'exemple suivant montre comment utiliser le paquet @var{android-udev-rules} pour que l'outil Android @command{adb} puisse détecter les appareils sans privilège root.  Il détaille aussi comment créer le groupe @code{adbusers}, requis pour le bon fonctionnement des règles définies dans le paquet @code{android-udev-rules}.  Pour créer ce groupe, on doit le définir dans les @code{supplementary-groups} de la déclaration @code{user-account} ainsi que dans le champ @var{groups} de l'enregistrement @var{operating-system}."
 
-#. type: example
-#: doc/guix.texi:12109
+#. type: lisp
+#: doc/guix.texi:15100
 #, no-wrap
 msgid ""
 "(use-modules (gnu packages android)  ;for android-udev-rules\n"
 "             (gnu system shadow)     ;for user-group\n"
-"             ;; @dots{})\n"
+"             @dots{})\n"
 "\n"
 msgstr ""
-"(use-modules (gnu packages android)  ;for android-udev-rules\n"
-"             (gnu system shadow)     ;for user-group\n"
-"             ;; @dots{})\n"
+"(use-modules (gnu packages android)  ;pour android-udev-rules\n"
+"             (gnu system shadow)     ;pour user-group\n"
+"             @dots{})\n"
 "\n"
 
-#. type: example
-#: doc/guix.texi:12118
+#. type: lisp
+#: doc/guix.texi:15113
 #, no-wrap
 msgid ""
 "(operating-system\n"
 "  ;; @dots{}\n"
-"  (users (cons (user-acount\n"
+"  (users (cons (user-account\n"
 "                ;; @dots{}\n"
 "                (supplementary-groups\n"
 "                 '(\"adbusers\"   ;for adb\n"
-"                   \"wheel\" \"netdev\" \"audio\" \"video\"))\n"
-"                ;; @dots{})))\n"
-"\n"
+"                   \"wheel\" \"netdev\" \"audio\" \"video\")))))\n"
+"  ;; @dots{}\n"
+"  (services\n"
+"    (cons (udev-rules-service 'android android-udev-rules\n"
+"                              #:groups '(\"adbusers\"))\n"
+"          %desktop-services)))\n"
 msgstr ""
 "(operating-system\n"
 "  ;; @dots{}\n"
-"  (users (cons (user-acount\n"
+"  (users (cons (user-account\n"
 "                ;; @dots{}\n"
 "                (supplementary-groups\n"
 "                 '(\"adbusers\"   ;for adb\n"
-"                   \"wheel\" \"netdev\" \"audio\" \"video\"))\n"
-"                ;; @dots{})))\n"
-"\n"
-
-#. type: example
-#: doc/guix.texi:12121
-#, no-wrap
-msgid ""
-"  (groups (cons (user-group (system? #t) (name \"adbusers\"))\n"
-"                %base-groups))\n"
-"\n"
-msgstr ""
-"  (groups (cons (user-group (system? #t) (name \"adbusers\"))\n"
-"                %base-groups))\n"
-"\n"
-
-#. type: example
-#: doc/guix.texi:12123
-#, no-wrap
-msgid ""
-"  ;; @dots{}\n"
-"\n"
-msgstr ""
+"                   \"wheel\" \"netdev\" \"audio\" \"video\")))))\n"
 "  ;; @dots{}\n"
-"\n"
-
-#. type: example
-#: doc/guix.texi:12131
-#, no-wrap
-msgid ""
-"  (services\n"
-"   (modify-services %desktop-services\n"
-"     (udev-service-type\n"
-"      config =>\n"
-"      (udev-configuration (inherit config)\n"
-"                          (rules (cons android-udev-rules\n"
-"                                       (udev-configuration-rules config))))))))\n"
-msgstr ""
 "  (services\n"
-"   (modify-services %desktop-services\n"
-"     (udev-service-type\n"
-"      config =>\n"
-"      (udev-configuration (inherit config)\n"
-"                          (rules (cons android-udev-rules\n"
-"                                       (udev-configuration-rules config))))))))\n"
+"    (cons (udev-rules-service 'android android-udev-rules\n"
+"                              #:groups '(\"adbusers\"))\n"
+"          %desktop-services)))\n"
 
 #. type: defvr
-#: doc/guix.texi:12133
+#: doc/guix.texi:15115
 #, no-wrap
 msgid "{Scheme Variable} urandom-seed-service-type"
 msgstr "{Variable Scheme} urandom-seed-service-type"
 
 #. type: defvr
-#: doc/guix.texi:12138
-msgid "Save some entropy in @var{%random-seed-file} to seed @file{/dev/urandom} when rebooting.  It also tries to seed @file{/dev/urandom} from @file{/dev/hwrng} while booting, if @file{/dev/hwrng} exists and is readable."
-msgstr "Garde de l'entropie dans @var{%random-seed-file} pour démarrer @file{/dev/urandom} au redémarrage.  Ce service essaye aussi de démarrer @file{/dev/urandom} à partir de @file{/dev/hwrng} au démarrage si @file{/dev/hwrng} existe et peut être lu."
+#: doc/guix.texi:15120
+msgid "Save some entropy in @code{%random-seed-file} to seed @file{/dev/urandom} when rebooting.  It also tries to seed @file{/dev/urandom} from @file{/dev/hwrng} while booting, if @file{/dev/hwrng} exists and is readable."
+msgstr "Conserve de l' entropie dans @code{%random-seed-file} pour amorcer @file{/dev/urandom} lors du redémarrage.  Il essaie également d'amorcer @file{/dev/urandom} à partir de @file{/dev/hwrng} lors du démarrage, si @file{/dev/hwrng} existe et est lisible."
 
 #. type: defvr
-#: doc/guix.texi:12140
+#: doc/guix.texi:15122
 #, no-wrap
 msgid "{Scheme Variable} %random-seed-file"
 msgstr "{Variable Scheme} %random-seed-file"
 
 #. type: defvr
-#: doc/guix.texi:12144
+#: doc/guix.texi:15126
 msgid "This is the name of the file where some random bytes are saved by @var{urandom-seed-service} to seed @file{/dev/urandom} when rebooting.  It defaults to @file{/var/lib/random-seed}."
 msgstr "C'est le nom du fichier où des octets aléatoires sont sauvegardés par @var{urandom-seed-service} pour démarrer @file{/dev/urandom} au redémarrage.  Sa valeur par défaut est @file{/var/lib/random-seed}."
 
 #. type: cindex
-#: doc/guix.texi:12146
+#: doc/guix.texi:15128
 #, no-wrap
 msgid "mouse"
 msgstr "souris"
 
 #. type: cindex
-#: doc/guix.texi:12147
+#: doc/guix.texi:15129
 #, no-wrap
 msgid "gpm"
 msgstr "gpm"
 
 #. type: defvr
-#: doc/guix.texi:12148
+#: doc/guix.texi:15130
 #, no-wrap
 msgid "{Scheme Variable} gpm-service-type"
 msgstr "{Variable Scheme} gpm-service-type"
 
 #. type: defvr
-#: doc/guix.texi:12153
+#: doc/guix.texi:15135
 msgid "This is the type of the service that runs GPM, the @dfn{general-purpose mouse daemon}, which provides mouse support to the Linux console.  GPM allows users to use the mouse in the console, notably to select, copy, and paste text."
 msgstr "C'est le type du service qui lance GPM, le @dfn{démon de souris à but général}, qui fournit le support de la souris sur la console Linux.  GPM permet aux utilisateurs d'utiliser la souris dans la console, entre autres pour sélectionner, copier et coller du texte."
 
 #. type: defvr
-#: doc/guix.texi:12156
-msgid "The value for services of this type must be a @code{gpm-configuration} (see below).  This service is not part of @var{%base-services}."
-msgstr "La valeur pour les services de ce type doit être un @code{gpm-configuration} (voir plus bas).  Ce service ne fait pas partie de @var{%base-services}."
+#: doc/guix.texi:15138
+msgid "The value for services of this type must be a @code{gpm-configuration} (see below).  This service is not part of @code{%base-services}."
+msgstr "La valeur pour les services de ce type doit être un @code{gpm-configuration} (voir plus bas).  Ce service ne fait pas partie de @code{%base-services}."
 
 #. type: deftp
-#: doc/guix.texi:12158
+#: doc/guix.texi:15140
 #, no-wrap
 msgid "{Data Type} gpm-configuration"
 msgstr "{Type de données} gpm-configuration"
 
 #. type: deftp
-#: doc/guix.texi:12160
+#: doc/guix.texi:15142
 msgid "Data type representing the configuration of GPM."
 msgstr "Type de données représentant la configuration de GPM."
 
 #. type: item
-#: doc/guix.texi:12162
+#: doc/guix.texi:15144
 #, no-wrap
 msgid "@code{options} (default: @code{%default-gpm-options})"
 msgstr "@code{options} (par défaut : @code{%default-gpm-options})"
 
 #. type: table
-#: doc/guix.texi:12167
+#: doc/guix.texi:15149
 msgid "Command-line options passed to @command{gpm}.  The default set of options instruct @command{gpm} to listen to mouse events on @file{/dev/input/mice}.  @xref{Command Line,,, gpm, gpm manual}, for more information."
 msgstr "Les options de la ligne de commande à passer à @command{gpm}.  L'ensemble des options par défaut dit à @command{gpm} d'écouter les événements de la souris dans @file{/dev/input/mice}.  @xref{Command Line,,, gpm, gpm manual}, pour plus d'informations."
 
 #. type: item
-#: doc/guix.texi:12168
+#: doc/guix.texi:15150
 #, no-wrap
 msgid "@code{gpm} (default: @code{gpm})"
 msgstr "@code{gpm} (par défaut : @code{gpm})"
 
 #. type: table
-#: doc/guix.texi:12170
+#: doc/guix.texi:15152
 msgid "The GPM package to use."
 msgstr "Le paquet GPM à utiliser."
 
 #. type: anchor{#1}
-#: doc/guix.texi:12175
+#: doc/guix.texi:15157
 msgid "guix-publish-service-type"
 msgstr "guix-publish-service-type"
 
 #. type: deffn
-#: doc/guix.texi:12175
+#: doc/guix.texi:15157
 #, no-wrap
 msgid "{Scheme Variable} guix-publish-service-type"
 msgstr "{Variable Scheme} guix-publish-service-type"
 
 #. type: deffn
-#: doc/guix.texi:12179
-msgid "This is the service type for @command{guix publish} (@pxref{Invoking guix publish}).  Its value must be a @code{guix-configuration} object, as described below."
-msgstr "C'est le type de service pour @command{guix publish} (@pxref{Invoking guix publish}).  Sa valeur doit être un objet @code{guix-configuration} décrit plus bas."
+#: doc/guix.texi:15161
+msgid "This is the service type for @command{guix publish} (@pxref{Invoking guix publish}).  Its value must be a @code{guix-publish-configuration} object, as described below."
+msgstr "C'est le type de service pour @command{guix publish} (@pxref{Invoquer guix publish}).  Sa valeur doit être un objet @code{guix-publish-configuration} décrit plus bas."
 
 #. type: deffn
-#: doc/guix.texi:12183
+#: doc/guix.texi:15165
 msgid "This assumes that @file{/etc/guix} already contains a signing key pair as created by @command{guix archive --generate-key} (@pxref{Invoking guix archive}).  If that is not the case, the service will fail to start."
 msgstr "Ce service suppose que @file{/etc/guix} contient déjà une paire de clefs créée par @command{guix archive --generate-key} (@pxref{Invoking guix archive}).  Si ce n'est pas le cas, le service ne démarrera pas."
 
 #. type: deftp
-#: doc/guix.texi:12185
+#: doc/guix.texi:15167
 #, no-wrap
 msgid "{Data Type} guix-publish-configuration"
 msgstr "{Type de données} guix-publish-configuration"
 
 #. type: deftp
-#: doc/guix.texi:12188
+#: doc/guix.texi:15170
 msgid "Data type representing the configuration of the @code{guix publish} service."
 msgstr "Le type de données représentant la configuration du service @code{guix publish}."
 
 #. type: item
-#: doc/guix.texi:12190
+#: doc/guix.texi:15172
 #, no-wrap
 msgid "@code{guix} (default: @code{guix})"
 msgstr "@code{guix} (par défaut : @code{guix})"
 
 #. type: item
-#: doc/guix.texi:12193
+#: doc/guix.texi:15175 doc/guix.texi:27637
 #, no-wrap
 msgid "@code{port} (default: @code{80})"
 msgstr "@code{port} (par défaut : @code{80})"
 
 #. type: table
-#: doc/guix.texi:12195
+#: doc/guix.texi:15177
 msgid "The TCP port to listen for connections."
 msgstr "Le port TCP sur lequel écouter les connexions."
 
 #. type: item
-#: doc/guix.texi:12196
+#: doc/guix.texi:15178 doc/guix.texi:25416
 #, no-wrap
 msgid "@code{host} (default: @code{\"localhost\"})"
 msgstr "@code{host} (par défaut : @code{\"localhost\"})"
 
 #. type: table
-#: doc/guix.texi:12199
+#: doc/guix.texi:15181
 msgid "The host (and thus, network interface) to listen to.  Use @code{\"0.0.0.0\"} to listen on all the network interfaces."
 msgstr "L'hôte (et donc, l'interface réseau) sur lequel écouter.  Utilisez @code{\"0.0.0.0\"} pour écouter sur toutes les interfaces réseaux."
 
+#. type: item
+#: doc/guix.texi:15182
+#, no-wrap
+msgid "@code{compression} (default: @code{'((\"gzip\" 3))})"
+msgstr "@code{compression} (par défaut : @code{'((\"gzip\" 3))})"
+
+#. type: table
+#: doc/guix.texi:15186
+msgid "This is a list of compression method/level tuple used when compressing substitutes.  For example, to compress all substitutes with @emph{both} lzip at level 7 and gzip at level 9, write:"
+msgstr "Il s'agit d'une liste de méthodes de compression/numéros de niveau utilisés lors de la compression des substituts.  Par exemple, pour compresser tous les substituts avec @emph{both} lzip au niveau 7 et gzip au niveau 9, écrivez :"
+
+#. type: lisp
+#: doc/guix.texi:15189
+#, no-wrap
+msgid "'((\"lzip\" 7) (\"gzip\" 9))\n"
+msgstr "'((\"lzip\" 7) (\"gzip\" 9))\n"
+
+#. type: table
+#: doc/guix.texi:15193
+msgid "Level 9 achieves the best compression ratio at the expense of increased CPU usage, whereas level 1 achieves fast compression."
+msgstr "Le niveau 9 atteint le meilleur taux de compression au détriment d'une utilisation accrue du CPU, tandis que le niveau 1 atteint une compression rapide."
+
 #. type: table
-#: doc/guix.texi:12204
-msgid "The gzip compression level at which substitutes are compressed.  Use @code{0} to disable compression altogether, and @code{9} to get the best compression ratio at the expense of increased CPU usage."
-msgstr "Le niveau de compression gzip auquel les substituts sont compressés.  Utilisez @code{0} pour désactiver complètement la compression, et @code{9} pour avoir le meilleur taux de compression contre une plus grande utilisation du CPU."
+#: doc/guix.texi:15195
+msgid "An empty list disables compression altogether."
+msgstr "Une liste vide désactive complètement la compression."
 
 #. type: item
-#: doc/guix.texi:12205
+#: doc/guix.texi:15196
 #, no-wrap
 msgid "@code{nar-path} (default: @code{\"nar\"})"
 msgstr "@code{nar-path} (par défaut : @code{\"nar\"})"
 
 #. type: table
-#: doc/guix.texi:12208
-msgid "The URL path at which ``nars'' can be fetched.  @xref{Invoking guix publish, @code{--nar-path}}, for details."
-msgstr "Le chemin d'URL où les « nars » se trouvent.  @xref{Invoking guix publish, @code{--nar-path}}, pour des détails."
+#: doc/guix.texi:15199
+msgid "The URL path at which ``nars'' can be fetched.  @xref{Invoking guix publish, @option{--nar-path}}, for details."
+msgstr "Le chemin d'URL où les « nars » se trouvent.  @xref{Invoquer guix publish, @option{--nar-path}}, pour des détails."
 
 #. type: item
-#: doc/guix.texi:12209
+#: doc/guix.texi:15200
 #, no-wrap
 msgid "@code{cache} (default: @code{#f})"
 msgstr "@code{cache} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:12215
+#: doc/guix.texi:15206
 msgid "When it is @code{#f}, disable caching and instead generate archives on demand.  Otherwise, this should be the name of a directory---e.g., @code{\"/var/cache/guix/publish\"}---where @command{guix publish} caches archives and meta-data ready to be sent.  @xref{Invoking guix publish, @option{--cache}}, for more information on the tradeoffs involved."
 msgstr "Lorsque la valeur est @code{#f}, désactive le cache et génère les archives à la demande.  Sinon, cela devrait être le nom d'un répertoire — p.@: ex.@: @code{\"/var/cache/guix/publish\"} — où @command{guix publish} gère le cache des archives et des métadonnées prêtes à être envoyées.   @xref{Invoking guix publish, @option{--cache}}, pour plus d'informations sur les compromis impliqués."
 
 #. type: item
-#: doc/guix.texi:12216
+#: doc/guix.texi:15207
 #, no-wrap
 msgid "@code{workers} (default: @code{#f})"
 msgstr "@code{workers} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:12220
+#: doc/guix.texi:15211
 msgid "When it is an integer, this is the number of worker threads used for caching; when @code{#f}, the number of processors is used.  @xref{Invoking guix publish, @option{--workers}}, for more information."
 msgstr "Lorsque la valeur est un entier, c'est le nombre de threads de travail utilisés pour le cache ; lorsque la valeur est @code{#f}, le nombre de processeurs est utilisé.  @xref{Invoking guix publish, @option{--workers}}, pour plus d'informations."
 
 #. type: item
-#: doc/guix.texi:12221
+#: doc/guix.texi:15212
+#, no-wrap
+msgid "@code{cache-bypass-threshold} (default: 10 MiB)"
+msgstr "@code{cache-bypass-threshold} (par défaut : 10 Mio)"
+
+#. type: table
+#: doc/guix.texi:15217
+msgid "When @code{cache} is true, this is the maximum size in bytes of a store item for which @command{guix publish} may bypass its cache in case of a cache miss.  @xref{Invoking guix publish, @option{--cache-bypass-threshold}}, for more information."
+msgstr "Lorsque @code{cache} est vrai, c'est la taille maximale en octets d'un élément du dépôt pour lequel @command{guix publish} peut contourner le cache s'il n'y est pas.  @xref{Invoking guix publish, @option{--cache-bypass-threshold}}, pour plus d'informations."
+
+#. type: item
+#: doc/guix.texi:15218
 #, no-wrap
 msgid "@code{ttl} (default: @code{#f})"
 msgstr "@code{ttl} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:12225
+#: doc/guix.texi:15222
 msgid "When it is an integer, this denotes the @dfn{time-to-live} in seconds of the published archives.  @xref{Invoking guix publish, @option{--ttl}}, for more information."
 msgstr "Lorsque la valeur est un entier, il dénote la @dfn{durée de vie} en secondes des archives publiées.  @xref{Invoking guix publish, @option{--ttl}}, pour plus d'informations."
 
 #. type: anchor{#1}
-#: doc/guix.texi:12229
+#: doc/guix.texi:15226
 msgid "rngd-service"
 msgstr "rngd-service"
 
 #. type: deffn
-#: doc/guix.texi:12229
+#: doc/guix.texi:15226
 #, no-wrap
 msgid "{Scheme Procedure} rngd-service [#:rng-tools @var{rng-tools}] @"
 msgstr "{Procédure Scheme} rngd-service [#:rng-tools @var{rng-tools}] @"
 
 #. type: deffn
-#: doc/guix.texi:12234
+#: doc/guix.texi:15231
 msgid "[#:device \"/dev/hwrng\"] Return a service that runs the @command{rngd} program from @var{rng-tools} to add @var{device} to the kernel's entropy pool.  The service will fail if @var{device} does not exist."
 msgstr ""
 "[#:device \"/dev/hwrng\"]\n"
 "Renvoie un service qui lance le programme @command{rngd} de @var{rng-tools} pour ajouter @var{device} à la réserve d'entropie du noyau.  Le service échouera si @var{device} n'existe pas."
 
 #. type: anchor{#1}
-#: doc/guix.texi:12237
+#: doc/guix.texi:15234
 msgid "pam-limits-service"
 msgstr "pam-limits-service"
 
 #. type: cindex
-#: doc/guix.texi:12237
+#: doc/guix.texi:15234
 #, no-wrap
 msgid "session limits"
 msgstr "limites de session"
 
 #. type: cindex
-#: doc/guix.texi:12238
+#: doc/guix.texi:15235
 #, no-wrap
 msgid "ulimit"
 msgstr "ulimit"
 
 #. type: cindex
-#: doc/guix.texi:12239
+#: doc/guix.texi:15236
 #, no-wrap
 msgid "priority"
 msgstr "priorités"
 
 #. type: cindex
-#: doc/guix.texi:12240
+#: doc/guix.texi:15237
 #, no-wrap
 msgid "realtime"
 msgstr "temps réel"
 
 #. type: cindex
-#: doc/guix.texi:12241
+#: doc/guix.texi:15238
 #, no-wrap
 msgid "jackd"
 msgstr "jackd"
 
 #. type: deffn
-#: doc/guix.texi:12242
+#: doc/guix.texi:15239
 #, no-wrap
 msgid "{Scheme Procedure} pam-limits-service [#:limits @code{'()}]"
 msgstr "{Procédure Scheme} pam-limits-service [#:limits @code{'()}]"
 
 #. type: deffn
-#: doc/guix.texi:12249
+#: doc/guix.texi:15246
 msgid "Return a service that installs a configuration file for the @uref{http://linux-pam.org/Linux-PAM-html/sag-pam_limits.html, @code{pam_limits} module}.  The procedure optionally takes a list of @code{pam-limits-entry} values, which can be used to specify @code{ulimit} limits and nice priority limits to user sessions."
 msgstr "Renvoie un service qui installe un fichier de configuration pour le @uref{http://linux-pam.org/Linux-PAM-html/sag-pam_limits.html, module @code{pam_limits}}.  La procédure prend éventuellement une liste de valeurs @code{pam-limits-entry} qui peuvent être utilisées pour spécifier les limites @code{ulimit} et les priorités des sessions utilisateurs."
 
 #. type: deffn
-#: doc/guix.texi:12252
+#: doc/guix.texi:15249
 msgid "The following limits definition sets two hard and soft limits for all login sessions of users in the @code{realtime} group:"
 msgstr "La définition de limites suivante défini deux limites matérielles et logicielles pour toutes les sessions connectées des utilisateurs du groupe @code{realtime} :"
 
-#. type: example
-#: doc/guix.texi:12258
+#. type: lisp
+#: doc/guix.texi:15255
 #, no-wrap
 msgid ""
 "(pam-limits-service\n"
@@ -22350,40 +27718,40 @@ msgstr ""
 "  (pam-limits-entry \"@@realtime\" 'both 'memlock 'unlimited)))\n"
 
 #. type: deffn
-#: doc/guix.texi:12264
+#: doc/guix.texi:15261
 msgid "The first entry increases the maximum realtime priority for non-privileged processes; the second entry lifts any restriction of the maximum address space that can be locked in memory.  These settings are commonly used for real-time audio systems."
 msgstr "La première entrée augment la priorité en temps réel maximale des processus non privilégiés ; la deuxième entrée abandonne les restrictions sur l'espace d'adressage maximal qui peut être verrouillé en mémoire.  Ces paramètres sont souvent utilisés sur les systèmes audio temps-réel."
 
 #. type: cindex
-#: doc/guix.texi:12269
+#: doc/guix.texi:15266
 #, no-wrap
 msgid "cron"
 msgstr "cron"
 
 #. type: cindex
-#: doc/guix.texi:12270
+#: doc/guix.texi:15267
 #, no-wrap
 msgid "mcron"
 msgstr "mcron"
 
 #. type: cindex
-#: doc/guix.texi:12271
+#: doc/guix.texi:15268
 #, no-wrap
 msgid "scheduling jobs"
 msgstr "tâches planifiées"
 
 #. type: Plain text
-#: doc/guix.texi:12278
+#: doc/guix.texi:15275
 msgid "The @code{(gnu services mcron)} module provides an interface to GNU@tie{}mcron, a daemon to run jobs at scheduled times (@pxref{Top,,, mcron, GNU@tie{}mcron}).  GNU@tie{}mcron is similar to the traditional Unix @command{cron} daemon; the main difference is that it is implemented in Guile Scheme, which provides a lot of flexibility when specifying the scheduling of jobs and their actions."
 msgstr "Le module @code{(gnu services mcron)} fournit une interface pour GNU@tie{}mcron, un démon qui lance des tâches planifiées (@pxref{Top,,, mcron, GNU@tie{}mcron}).  GNU@tie{}mcron est similaire au démon Unix traditionnel @command{cron} ; la principale différence est qu'il est implémenté en Guile Scheme, qui fournit beaucoup de flexibilité lors de la spécification de la planification des tâches et de leurs actions."
 
 #. type: Plain text
-#: doc/guix.texi:12286
+#: doc/guix.texi:15283
 msgid "The example below defines an operating system that runs the @command{updatedb} (@pxref{Invoking updatedb,,, find, Finding Files})  and the @command{guix gc} commands (@pxref{Invoking guix gc}) daily, as well as the @command{mkid} command on behalf of an unprivileged user (@pxref{mkid invocation,,, idutils, ID Database Utilities}).  It uses gexps to introduce job definitions that are passed to mcron (@pxref{G-Expressions})."
 msgstr "L'exemple en dessous définit un système d'exploitation qui lance les commandes @command{updatebd} (@pxref{Invoking updatedb,,, find, Finding Files}) et @command{guix gc} (@pxref{Invoking guix gc}) tous les jours, ainsi que la commande @command{mkid} en tant qu'utilisateur non privilégié (@pxref{mkid invocation,,, idutils, ID Database Utilities}).  Il utilise des gexps pour introduire des définitions de tâches qui sont passées à mcron (@pxref{G-Expressions})."
 
 #. type: lisp
-#: doc/guix.texi:12290
+#: doc/guix.texi:15287
 #, no-wrap
 msgid ""
 "(use-modules (guix) (gnu) (gnu services mcron))\n"
@@ -22395,7 +27763,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:12299
+#: doc/guix.texi:15296
 #, no-wrap
 msgid ""
 "(define updatedb-job\n"
@@ -22419,7 +27787,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:12305
+#: doc/guix.texi:15302
 #, no-wrap
 msgid ""
 "(define garbage-collector-job\n"
@@ -22437,7 +27805,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:12312
+#: doc/guix.texi:15309
 #, no-wrap
 msgid ""
 "(define idutils-job\n"
@@ -22457,7 +27825,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:12321
+#: doc/guix.texi:15318
 #, no-wrap
 msgid ""
 "(operating-system\n"
@@ -22479,219 +27847,316 @@ msgstr ""
 "                  %base-services)))\n"
 
 #. type: Plain text
-#: doc/guix.texi:12326
+#: doc/guix.texi:15325
+msgid "For more complex jobs defined in Scheme where you need control over the top level, for instance to introduce a @code{use-modules} form, you can move your code to a separate program using the @code{program-file} procedure of the @code{(guix gexp)} module (@pxref{G-Expressions}).  The example below illustrates that."
+msgstr "Pour les tâches plus complexes définies dans Scheme où vous devez contrôler le haut niveau, par exemple pour introduire un formulaire @code{use-modules}, vous pouvez déplacer votre code vers un programme séparé en utilisant la procédure @code{program-file} du module @code{(guix gexp)} (@pxref{G-Expressions}).  L'exemple ci-dessous illustre cette possibilité."
+
+#. type: lisp
+#: doc/guix.texi:15341
+#, no-wrap
+msgid ""
+"(define %battery-alert-job\n"
+"  ;; Beep when the battery percentage falls below %MIN-LEVEL.\n"
+"  #~(job\n"
+"     '(next-minute (range 0 60 1))\n"
+"     #$(program-file\n"
+"        \"battery-alert.scm\"\n"
+"        (with-imported-modules (source-module-closure\n"
+"                                '((guix build utils)))\n"
+"          #~(begin\n"
+"              (use-modules (guix build utils)\n"
+"                           (ice-9 popen)\n"
+"                           (ice-9 regex)\n"
+"                           (ice-9 textual-ports)\n"
+"                           (srfi srfi-2))\n"
+"\n"
+msgstr ""
+"(define %battery-alert-job\n"
+"  ;; Beep when the battery percentage falls below %MIN-LEVEL.\n"
+"  #~(job\n"
+"     '(next-minute (range 0 60 1))\n"
+"     #$(program-file\n"
+"        \"battery-alert.scm\"\n"
+"        (with-imported-modules (source-module-closure\n"
+"                                '((guix build utils)))\n"
+"          #~(begin\n"
+"              (use-modules (guix build utils)\n"
+"                           (ice-9 popen)\n"
+"                           (ice-9 regex)\n"
+"                           (ice-9 textual-ports)\n"
+"                           (srfi srfi-2))\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:15343
+#, no-wrap
+msgid ""
+"              (define %min-level 20)\n"
+"\n"
+msgstr ""
+"              (define %min-level 20)\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:15354
+#, no-wrap
+msgid ""
+"              (setenv \"LC_ALL\" \"C\")     ;ensure English output\n"
+"              (and-let* ((input-pipe (open-pipe*\n"
+"                                      OPEN_READ\n"
+"                                      #$(file-append acpi \"/bin/acpi\")))\n"
+"                         (output (get-string-all input-pipe))\n"
+"                         (m (string-match \"Discharging, ([0-9]+)%\" output))\n"
+"                         (level (string->number (match:substring m 1)))\n"
+"                         ((< level %min-level)))\n"
+"                (format #t \"warning: Battery level is low (~a%)~%\" level)\n"
+"                (invoke #$(file-append beep \"/bin/beep\") \"-r5\")))))))\n"
+msgstr ""
+"              (setenv \"LC_ALL\" \"C\")     ;ensure English output\n"
+"              (and-let* ((input-pipe (open-pipe*\n"
+"                                      OPEN_READ\n"
+"                                      #$(file-append acpi \"/bin/acpi\")))\n"
+"                         (output (get-string-all input-pipe))\n"
+"                         (m (string-match \"Discharging, ([0-9]+)%\" output))\n"
+"                         (level (string->number (match:substring m 1)))\n"
+"                         ((< level %min-level)))\n"
+"                (format #t \"warning: Battery level is low (~a%)~%\" level)\n"
+"                (invoke #$(file-append beep \"/bin/beep\") \"-r5\")))))))\n"
+
+#. type: Plain text
+#: doc/guix.texi:15359
 msgid "@xref{Guile Syntax, mcron job specifications,, mcron, GNU@tie{}mcron}, for more information on mcron job specifications.  Below is the reference of the mcron service."
 msgstr "@xref{Guile Syntax, mcron job specifications,, mcron, GNU@tie{}mcron}, pour plus d'informations sur les spécifications des tâche de mcron.  Ci-dessous est la référence du service mcron."
 
 #. type: Plain text
-#: doc/guix.texi:12329
+#: doc/guix.texi:15362
 msgid "On a running system, you can use the @code{schedule} action of the service to visualize the mcron jobs that will be executed next:"
 msgstr "Sur un système lancé, vous pouvez utiliser l'action @code{schedule} du service pour visualiser les travaux mcron qui seront exécutés ensuite :"
 
 #. type: example
-#: doc/guix.texi:12332
+#: doc/guix.texi:15365
 #, no-wrap
 msgid "# herd schedule mcron\n"
 msgstr "# herd schedule mcron\n"
 
 #. type: Plain text
-#: doc/guix.texi:12337
+#: doc/guix.texi:15370
 msgid "The example above lists the next five tasks that will be executed, but you can also specify the number of tasks to display:"
 msgstr "Cet exemple ci-dessus montre les cinq tâches qui seront exécutés, mais vous pouvez spécifier le nombre de tâches à afficher :"
 
 #. type: example
-#: doc/guix.texi:12340
+#: doc/guix.texi:15373
 #, no-wrap
 msgid "# herd schedule mcron 10\n"
 msgstr "# herd schedule mcron 10\n"
 
 #. type: defvr
-#: doc/guix.texi:12342
+#: doc/guix.texi:15375
 #, no-wrap
 msgid "{Scheme Variable} mcron-service-type"
 msgstr "{Variable Scheme} mcron-service-type"
 
 #. type: defvr
-#: doc/guix.texi:12345
+#: doc/guix.texi:15378
 msgid "This is the type of the @code{mcron} service, whose value is an @code{mcron-configuration} object."
 msgstr "C'est le type du service @code{mcron}, dont la valeur est un objet @code{mcron-configuration}"
 
 #. type: defvr
-#: doc/guix.texi:12350
+#: doc/guix.texi:15383
 msgid "This service type can be the target of a service extension that provides it additional job specifications (@pxref{Service Composition}).  In other words, it is possible to define services that provide additional mcron jobs to run."
 msgstr "Ce type de service peut être la cible d'une extension de service qui lui fournit des spécifications de tâches supplémentaires (@pxref{Service Composition}).  En d'autres termes, il est possible de définir des services qui fournissent des tâches mcron à lancer."
 
 #. type: deftp
-#: doc/guix.texi:12352
+#: doc/guix.texi:15385
 #, no-wrap
 msgid "{Data Type} mcron-configuration"
 msgstr "{Type de données} mcron-configuration"
 
 #. type: deftp
-#: doc/guix.texi:12354
+#: doc/guix.texi:15387
 msgid "Data type representing the configuration of mcron."
 msgstr "Type données qui représente la configuration de mcron."
 
 #. type: item
-#: doc/guix.texi:12356
+#: doc/guix.texi:15389
 #, no-wrap
 msgid "@code{mcron} (default: @var{mcron})"
 msgstr "@code{mcron} (par défaut : @var{mcron})"
 
 #. type: table
-#: doc/guix.texi:12358
+#: doc/guix.texi:15391
 msgid "The mcron package to use."
 msgstr "Le paquet mcron à utiliser."
 
 #. type: code{#1}
-#: doc/guix.texi:12359 doc/guix.texi:12418
+#: doc/guix.texi:15392 doc/guix.texi:15461
 #, no-wrap
 msgid "jobs"
 msgstr "jobs"
 
 #. type: table
-#: doc/guix.texi:12363
+#: doc/guix.texi:15396
 msgid "This is a list of gexps (@pxref{G-Expressions}), where each gexp corresponds to an mcron job specification (@pxref{Syntax, mcron job specifications,, mcron, GNU@tie{}mcron})."
 msgstr "C'est la liste des gexps (@pxref{G-Expressions}), où chaque gexp correspond à une spécification de tâche de mcron (@pxref{Syntax, mcron job specifications,, mcron, GNU@tie{}mcron})."
 
 #. type: cindex
-#: doc/guix.texi:12370
+#: doc/guix.texi:15403
 #, no-wrap
 msgid "rottlog"
 msgstr "rottlog"
 
 #. type: cindex
-#: doc/guix.texi:12371
+#: doc/guix.texi:15404
 #, no-wrap
 msgid "log rotation"
 msgstr "journaux, rotation"
 
 #. type: Plain text
-#: doc/guix.texi:12378
+#: doc/guix.texi:15411
 msgid "Log files such as those found in @file{/var/log} tend to grow endlessly, so it's a good idea to @dfn{rotate} them once in a while---i.e., archive their contents in separate files, possibly compressed.  The @code{(gnu services admin)} module provides an interface to GNU@tie{}Rot[t]log, a log rotation tool (@pxref{Top,,, rottlog, GNU Rot[t]log Manual})."
 msgstr "Les fichiers journaux comme ceux qui se trouvent dans @file{/var/log} ont tendance à grandir sans fin, donc c'est une bonne idée de le @dfn{faire tourner} de temps à autres — c.-à-d.@: archiver leur contenu dans des fichiers séparés, potentiellement compressés.  Le module @code{(gnu services admin)} fournit une interface pour GNU@tie{}Rot[t]log, un outil de rotation de journaux (@pxref{Top,,, rottlog, GNU Rot[t]log Manual})."
 
 #. type: Plain text
-#: doc/guix.texi:12381
-msgid "The example below defines an operating system that provides log rotation with the default settings, for commonly encountered log files."
-msgstr "L'exemple ci-dessous définit un système d'exploitation qui fournit la rotation des journaux avec les paramètres par défaut, pour les journaux les plus courants."
+#: doc/guix.texi:15417
+msgid "This service is part of @code{%base-services}, and thus enabled by default, with the default settings, for commonly encountered log files.  The example below shows how to extend it with an additional @dfn{rotation}, should you need to do that (usually, services that produce log files already take care of that):"
+msgstr "Ce service fait partie de @code{%base-services}, et se trouve donc activé par défaut, avec les paramètres par défaut, pour les fichiers journaux les plus fréquemment rencontrés.  L'exemple ci-dessous montre comment l'étendre avec une @dfn{rotation} supplémentaire, si vous devez le faire (généralement, les services qui produisent des fichiers journaux s'en chargent déjà) :"
 
 #. type: lisp
-#: doc/guix.texi:12386
+#: doc/guix.texi:15421
 #, no-wrap
 msgid ""
 "(use-modules (guix) (gnu))\n"
-"(use-service-modules admin mcron)\n"
-"(use-package-modules base idutils)\n"
+"(use-service-modules admin)\n"
 "\n"
 msgstr ""
 "(use-modules (guix) (gnu))\n"
-"(use-service-modules admin mcron)\n"
-"(use-package-modules base idutils)\n"
+"(use-service-modules admin)\n"
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:12391
+#: doc/guix.texi:15425
+#, no-wrap
+msgid ""
+"(define my-log-files\n"
+"  ;; Log files that I want to rotate.\n"
+"  '(\"/var/log/something.log\" \"/var/log/another.log\"))\n"
+"\n"
+msgstr ""
+"(define my-log-files\n"
+"  ;; Log files that I want to rotate.\n"
+"  '(\"/var/log/something.log\" \"/var/log/another.log\"))\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:15434
 #, no-wrap
 msgid ""
 "(operating-system\n"
 "  ;; @dots{}\n"
-"  (services (cons (service rottlog-service-type)\n"
+"  (services (cons (simple-service 'rotate-my-stuff\n"
+"                                  rottlog-service-type\n"
+"                                  (list (log-rotation\n"
+"                                         (frequency 'daily)\n"
+"                                         (files my-log-files))))\n"
 "                  %base-services)))\n"
 msgstr ""
 "(operating-system\n"
 "  ;; @dots{}\n"
-"  (services (cons (service rottlog-service-type)\n"
+"  (services (cons (simple-service 'rotate-my-stuff\n"
+"                                  rottlog-service-type\n"
+"                                  (list (log-rotation\n"
+"                                         (frequency 'daily)\n"
+"                                         (files my-log-files))))\n"
 "                  %base-services)))\n"
 
 #. type: defvr
-#: doc/guix.texi:12393
+#: doc/guix.texi:15436
 #, no-wrap
 msgid "{Scheme Variable} rottlog-service-type"
 msgstr "{Variable Scheme} rottlog-service-type"
 
 #. type: defvr
-#: doc/guix.texi:12396
+#: doc/guix.texi:15439
 msgid "This is the type of the Rottlog service, whose value is a @code{rottlog-configuration} object."
 msgstr "C'est le type du service Rotlog, dont la valeur est un objet @code{rottlog-configuration}."
 
 #. type: defvr
-#: doc/guix.texi:12399
+#: doc/guix.texi:15442
 msgid "Other services can extend this one with new @code{log-rotation} objects (see below), thereby augmenting the set of files to be rotated."
 msgstr "D'autres services peuvent étendre celui-ci avec de nouveaux objets @code{log-rotation} (voir plus bas), en augmentant ainsi l'ensemble des fichiers à faire tourner."
 
 #. type: defvr
-#: doc/guix.texi:12402
+#: doc/guix.texi:15445
 msgid "This service type can define mcron jobs (@pxref{Scheduled Job Execution}) to run the rottlog service."
 msgstr "Ce type de service peut définir des taches (@pxref{Scheduled Job Execution}) pour lancer le service rottlog."
 
 #. type: deftp
-#: doc/guix.texi:12404
+#: doc/guix.texi:15447
 #, no-wrap
 msgid "{Data Type} rottlog-configuration"
 msgstr "{Type de données} rottlog-configuration"
 
 #. type: deftp
-#: doc/guix.texi:12406
+#: doc/guix.texi:15449
 msgid "Data type representing the configuration of rottlog."
 msgstr "Type de données représentant la configuration de rottlog."
 
 #. type: item
-#: doc/guix.texi:12408
+#: doc/guix.texi:15451
 #, no-wrap
 msgid "@code{rottlog} (default: @code{rottlog})"
 msgstr "@code{rottlog} (par défaut : @code{rottlog})"
 
 #. type: table
-#: doc/guix.texi:12410
+#: doc/guix.texi:15453
 msgid "The Rottlog package to use."
 msgstr "Le paquet Rottlog à utiliser."
 
 #. type: item
-#: doc/guix.texi:12411
+#: doc/guix.texi:15454
 #, no-wrap
 msgid "@code{rc-file} (default: @code{(file-append rottlog \"/etc/rc\")})"
 msgstr "@code{rc-file} (par défaut : @code{(file-append rottlog \"/etc/rc\")})"
 
 #. type: table
-#: doc/guix.texi:12414
+#: doc/guix.texi:15457
 msgid "The Rottlog configuration file to use (@pxref{Mandatory RC Variables,,, rottlog, GNU Rot[t]log Manual})."
 msgstr "Le fichier de configuration Rottlog à utiliser (@pxref{Mandatory RC Variables,,, rottlog, GNU Rot[t]log Manual})."
 
 #. type: item
-#: doc/guix.texi:12415
+#: doc/guix.texi:15458
 #, no-wrap
 msgid "@code{rotations} (default: @code{%default-rotations})"
 msgstr "@code{rotations} (par défaut : @code{%default-rotations})"
 
 #. type: table
-#: doc/guix.texi:12417
+#: doc/guix.texi:15460
 msgid "A list of @code{log-rotation} objects as defined below."
 msgstr "Une liste d'objets @code{log-rotation} définis plus bas."
 
 #. type: table
-#: doc/guix.texi:12421
+#: doc/guix.texi:15464
 msgid "This is a list of gexps where each gexp corresponds to an mcron job specification (@pxref{Scheduled Job Execution})."
 msgstr "C'est une liste de gexps où chaque gexp correspond à une spécification de tache de mcron (@pxref{Scheduled Job Execution})."
 
 #. type: deftp
-#: doc/guix.texi:12424
+#: doc/guix.texi:15467
 #, no-wrap
 msgid "{Data Type} log-rotation"
 msgstr "{Type de données} log-rotation"
 
 #. type: deftp
-#: doc/guix.texi:12426
+#: doc/guix.texi:15469
 msgid "Data type representing the rotation of a group of log files."
 msgstr "Type de données représentant la rotation d'un groupe de fichiers journaux."
 
 #. type: deftp
-#: doc/guix.texi:12430
+#: doc/guix.texi:15473
 msgid "Taking an example from the Rottlog manual (@pxref{Period Related File Examples,,, rottlog, GNU Rot[t]log Manual}), a log rotation might be defined like this:"
 msgstr "En reprenant un exemple du manuel de Rottlog (@pxref{Period Related File Examples,,, rottlog, GNU Rot[t]log Manual}), on peut définir la rotation d'un journal de cette manière :"
 
-#. type: example
-#: doc/guix.texi:12439
+#. type: lisp
+#: doc/guix.texi:15482
 #, no-wrap
 msgid ""
 "(log-rotation\n"
@@ -22711,111 +28176,111 @@ msgstr ""
 "             \"nocompress\")))\n"
 
 #. type: deftp
-#: doc/guix.texi:12442
+#: doc/guix.texi:15485
 msgid "The list of fields is as follows:"
 msgstr "La liste des champs est la suivante :"
 
 #. type: item
-#: doc/guix.texi:12444
+#: doc/guix.texi:15487
 #, no-wrap
 msgid "@code{frequency} (default: @code{'weekly})"
 msgstr "@code{frequency} (par défaut : @code{'weekly})"
 
 #. type: table
-#: doc/guix.texi:12446
+#: doc/guix.texi:15489
 msgid "The log rotation frequency, a symbol."
 msgstr "La fréquence de rotation, un symbole."
 
 #. type: code{#1}
-#: doc/guix.texi:12447
+#: doc/guix.texi:15490
 #, no-wrap
 msgid "files"
 msgstr "files"
 
 #. type: table
-#: doc/guix.texi:12449
+#: doc/guix.texi:15492
 msgid "The list of files or file glob patterns to rotate."
 msgstr "La liste des fichiers ou des motifs de noms de fichiers à faire tourner."
 
 #. type: item
-#: doc/guix.texi:12450
+#: doc/guix.texi:15493
 #, no-wrap
 msgid "@code{options} (default: @code{'()})"
 msgstr "@code{options} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:12453
+#: doc/guix.texi:15496
 msgid "The list of rottlog options for this rotation (@pxref{Configuration parameters,,, rottlog, GNU Rot[t]lg Manual})."
 msgstr "La liste des options de rottlog pour cette rotation (@pxref{Configuration parameters,,, rottlog, GNU Rot[t]lg Manual})."
 
 #. type: item
-#: doc/guix.texi:12454
+#: doc/guix.texi:15497
 #, no-wrap
 msgid "@code{post-rotate} (default: @code{#f})"
 msgstr "@code{post-rotate} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:12456
+#: doc/guix.texi:15499
 msgid "Either @code{#f} or a gexp to execute once the rotation has completed."
 msgstr "Soit @code{#f}, soit une gexp à exécuter une fois la rotation terminée."
 
 #. type: defvr
-#: doc/guix.texi:12459
+#: doc/guix.texi:15502
 #, no-wrap
 msgid "{Scheme Variable} %default-rotations"
 msgstr "{Variable Scheme} %default-rotations"
 
 #. type: defvr
-#: doc/guix.texi:12462
-msgid "Specifies weekly rotation of @var{%rotated-files} and a couple of other files."
-msgstr "Spécifie la rotation hebdomadaire de @var{%rotated-files} et de quelques autres fichiers."
+#: doc/guix.texi:15505
+msgid "Specifies weekly rotation of @code{%rotated-files} and of @file{/var/log/guix-daemon.log}."
+msgstr "Spécifie la rotation hebdomadaire de @code{%rotated-files} et de @file{/var/log/guix-daemon.log}."
 
 #. type: defvr
-#: doc/guix.texi:12464
+#: doc/guix.texi:15507
 #, no-wrap
 msgid "{Scheme Variable} %rotated-files"
 msgstr "{Variable Scheme} %rotated-files"
 
 #. type: defvr
-#: doc/guix.texi:12467
-msgid "The list of syslog-controlled files to be rotated.  By default it is: @code{'(\"/var/log/messages\" \"/var/log/secure\")}."
-msgstr "La liste des fichiers contrôlés par syslog à faire tourner.  Par défaut il s'agit de : @code{'(\"/var/log/messages\" \"/var/log/secure\")}"
+#: doc/guix.texi:15511
+msgid "The list of syslog-controlled files to be rotated.  By default it is: @code{'(\"/var/log/messages\" \"/var/log/secure\" \"/var/log/debug\" \\ \"/var/log/maillog\")}."
+msgstr "La liste des fichiers contrôlés par syslog à faire tourner.  Par défaut il s'agit de : @code{'(\"/var/log/messages\" \"/var/log/secure\" \"/var/log/debug\" \\ \"/var/log/maillog\")}."
 
 #. type: Plain text
-#: doc/guix.texi:12474
+#: doc/guix.texi:15518
 msgid "The @code{(gnu services networking)} module provides services to configure the network interface."
 msgstr "Le module @code{(gnu services networking)} fournit des services pour configurer les interfaces réseaux."
 
 #. type: cindex
-#: doc/guix.texi:12475
+#: doc/guix.texi:15519
 #, no-wrap
 msgid "DHCP, networking service"
 msgstr "DHCP, service réseau"
 
 #. type: defvr
-#: doc/guix.texi:12476
+#: doc/guix.texi:15520
 #, no-wrap
 msgid "{Scheme Variable} dhcp-client-service-type"
 msgstr "{Variable Scheme} dhcp-client-service-type"
 
 #. type: defvr
-#: doc/guix.texi:12480
+#: doc/guix.texi:15524
 msgid "This is the type of services that run @var{dhcp}, a Dynamic Host Configuration Protocol (DHCP) client, on all the non-loopback network interfaces.  Its value is the DHCP client package to use, @code{isc-dhcp} by default."
 msgstr "C'est le type de services qui lance @var{dhcp}, un client DHC (protocole de configuration d'hôte dynamique) sur toutes les interfaces réseau non-loopback.  Sa valeur est le paquet du client DHCP à utiliser, @code{isc-dhcp} par défaut."
 
 #. type: deffn
-#: doc/guix.texi:12482
+#: doc/guix.texi:15526
 #, no-wrap
 msgid "{Scheme Procedure} dhcpd-service-type"
 msgstr "{Procédure Scheme} dhcpd-service-type"
 
 #. type: deffn
-#: doc/guix.texi:12486
+#: doc/guix.texi:15530
 msgid "This type defines a service that runs a DHCP daemon.  To create a service of this type, you must supply a @code{<dhcpd-configuration>}.  For example:"
 msgstr "Ce type définie un service qui lance un démon DHCP.  Pour créer un service de ce type, vous devez appliquer un objet @code{<dhcpd-configuration>}.  Par exemple :"
 
-#. type: example
-#: doc/guix.texi:12492
+#. type: lisp
+#: doc/guix.texi:15536
 #, no-wrap
 msgid ""
 "(service dhcpd-service-type\n"
@@ -22829,96 +28294,96 @@ msgstr ""
 "          (interfaces '(\"enp0s25\"))))\n"
 
 #. type: deftp
-#: doc/guix.texi:12495
+#: doc/guix.texi:15539
 #, no-wrap
 msgid "{Data Type} dhcpd-configuration"
 msgstr "{Type de données} dhcpd-configuration"
 
 #. type: item
-#: doc/guix.texi:12497
+#: doc/guix.texi:15541
 #, no-wrap
 msgid "@code{package} (default: @code{isc-dhcp})"
 msgstr "@code{package} (par défaut : @code{isc-dhcp})"
 
 #. type: table
-#: doc/guix.texi:12502
+#: doc/guix.texi:15546
 msgid "The package that provides the DHCP daemon.  This package is expected to provide the daemon at @file{sbin/dhcpd} relative to its output directory.  The default package is the @uref{https://www.isc.org/products/DHCP, ISC's DHCP server}."
 msgstr "Le paquet qui fournit le démon DHCP.  ce paquet doit fournir le démon @file{sbin/dhcpd} relativement à son répertoire de sortie.  Le paquet par défaut est le @uref{https://www.isc.org/products/DHCP, serveur DHCP d'ISC}"
 
 #. type: item
-#: doc/guix.texi:12502 doc/guix.texi:12691 doc/guix.texi:16678
+#: doc/guix.texi:15546 doc/guix.texi:15801 doc/guix.texi:20528
 #, no-wrap
 msgid "@code{config-file} (default: @code{#f})"
 msgstr "@code{config-file} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:12507
+#: doc/guix.texi:15551
 msgid "The configuration file to use.  This is required.  It will be passed to @code{dhcpd} via its @code{-cf} option.  This may be any ``file-like'' object (@pxref{G-Expressions, file-like objects}).  See @code{man dhcpd.conf} for details on the configuration file syntax."
 msgstr "Le fichier de configuration à utiliser.  Il est requis.  Il sera passé à @code{dhcpd} via son option @code{-cf}.  La valeur peut être n'importe quel objet « simili-fichier » (@pxref{G-Expressions, file-like objects}).  Voir @code{man dhcpd.conf} pour des détails sur la syntaxe du fichier de configuration."
 
 #. type: item
-#: doc/guix.texi:12507
+#: doc/guix.texi:15551
 #, no-wrap
 msgid "@code{version} (default: @code{\"4\"})"
 msgstr "@code{version} (par défaut : @code{\"4\"})"
 
 #. type: table
-#: doc/guix.texi:12512
+#: doc/guix.texi:15556
 msgid "The DHCP version to use.  The ISC DHCP server supports the values ``4'', ``6'', and ``4o6''.  These correspond to the @code{dhcpd} program options @code{-4}, @code{-6}, and @code{-4o6}.  See @code{man dhcpd} for details."
 msgstr "La version de DHCP à utiliser.  Le serveur DHCP d'ISC supporte les valeur « 4 », « 6 » et « 4o6 ».  Elles correspondent aux options @code{-4}, @code{-6} et @code{-4o6} du programme @code{dhcpd}.  Voir @code{man dhcpd} pour plus de détails."
 
 #. type: item
-#: doc/guix.texi:12512
+#: doc/guix.texi:15556
 #, no-wrap
 msgid "@code{run-directory} (default: @code{\"/run/dhcpd\"})"
 msgstr "@code{run-directory} (par défaut : @code{\"/run/dhcpd\"})"
 
 #. type: table
-#: doc/guix.texi:12515
+#: doc/guix.texi:15559
 msgid "The run directory to use.  At service activation time, this directory will be created if it does not exist."
 msgstr "Le répertoire d'exécution à utiliser.  Au moment de l'activation du service, ce répertoire sera créé s'il n'existe pas."
 
 #. type: item
-#: doc/guix.texi:12515
+#: doc/guix.texi:15559
 #, no-wrap
 msgid "@code{pid-file} (default: @code{\"/run/dhcpd/dhcpd.pid\"})"
 msgstr "@code{pid-file} (par défaut : @code{\"/run/dhcpd/dhcpd.pid\"})"
 
 #. type: table
-#: doc/guix.texi:12518
+#: doc/guix.texi:15562
 msgid "The PID file to use.  This corresponds to the @code{-pf} option of @code{dhcpd}.  See @code{man dhcpd} for details."
 msgstr "Le fichier de PID à utiliser.  Cela correspond à l'option @code{-pf} de @code{dhcpd}.  Voir @code{man dhcpd} pour plus de détails."
 
 #. type: item
-#: doc/guix.texi:12518
+#: doc/guix.texi:15562
 #, no-wrap
 msgid "@code{interfaces} (default: @code{'()})"
 msgstr "@code{interfaces} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:12524
+#: doc/guix.texi:15568
 msgid "The names of the network interfaces on which dhcpd should listen for broadcasts.  If this list is not empty, then its elements (which must be strings) will be appended to the @code{dhcpd} invocation when starting the daemon.  It may not be necessary to explicitly specify any interfaces here; see @code{man dhcpd} for details."
 msgstr "Les noms des interfaces réseaux sur lesquelles dhcpd écoute.  Si cette liste n'est pas vide, alors ses éléments (qui doivent être des chaînes de caractères) seront ajoutés à l'invocation de @code{dhcpd} lors du démarrage du démon.  Il n'est pas forcément nécessaire de spécifier des interfaces ici ; voir @code{man dhcpd} pour plus de détails."
 
 #. type: defvr
-#: doc/guix.texi:12527
+#: doc/guix.texi:15571
 #, no-wrap
 msgid "{Scheme Variable} static-networking-service-type"
 msgstr "{Variable Scheme} static-networking-service-type"
 
 #. type: defvr
-#: doc/guix.texi:12530
+#: doc/guix.texi:15574
 msgid "This is the type for statically-configured network interfaces."
 msgstr "C'est le type des interfaces réseaux configurés statiquement."
 
 #. type: deffn
-#: doc/guix.texi:12532
+#: doc/guix.texi:15576
 #, no-wrap
 msgid "{Scheme Procedure} static-networking-service @var{interface} @var{ip} @"
 msgstr "{Procédure Scheme} static-networking-service @var{interface} @var{ip} @"
 
 #. type: deffn
-#: doc/guix.texi:12540
+#: doc/guix.texi:15584
 msgid "[#:netmask #f] [#:gateway #f] [#:name-servers @code{'()}] @ [#:requirement @code{'(udev)}] 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.  @var{requirement} can be used to declare a dependency on another service before configuring the interface."
 msgstr ""
 "[#:netmask #f] [#:gateway #f] [#:name-servers @code{'()}] @\n"
@@ -22926,17 +28391,17 @@ msgstr ""
 "Renvoie un service qui démarre @var{interface} avec l'adresse @var{ip}.  Si @var{netmask} est vrai, il sera utilisé comme masque de sous-réseau.  Si @var{gateway} est vrai, ce doit être une chaîne de caractères qui spécifie la passerelle par défaut du réseau.  @var{requirement} peut être utilisé pour déclarer une dépendance sur un autre service avant de configurer l'interface."
 
 #. type: deffn
-#: doc/guix.texi:12545
+#: doc/guix.texi:15589
 msgid "This procedure can be called several times, one for each network interface of interest.  Behind the scenes what it does is extend @code{static-networking-service-type} with additional network interfaces to handle."
 msgstr "On peut appeler cette procédure plusieurs fois, une fois par interface réseau qui nous intéresse.  Dans les coulisses, elle étend @code{static-networking-service-type} avec les interfaces réseaux supplémentaires à gérer."
 
-#. type: deffn
-#: doc/guix.texi:12547
+#. type: defvr
+#: doc/guix.texi:15591 doc/guix.texi:26949
 msgid "For example:"
 msgstr "Par exemple :"
 
-#. type: example
-#: doc/guix.texi:12552
+#. type: lisp
+#: doc/guix.texi:15596
 #, no-wrap
 msgid ""
 "(static-networking-service \"eno1\" \"192.168.1.82\"\n"
@@ -22948,195 +28413,286 @@ msgstr ""
 "                           #:name-servers '(\"192.168.1.2\"))\n"
 
 #. type: cindex
-#: doc/guix.texi:12555
+#: doc/guix.texi:15599
 #, no-wrap
 msgid "wicd"
 msgstr "wicd"
 
 #. type: cindex
-#: doc/guix.texi:12558
+#: doc/guix.texi:15602
 #, no-wrap
 msgid "network management"
 msgstr "gestion du réseau"
 
 #. type: deffn
-#: doc/guix.texi:12559
+#: doc/guix.texi:15603
 #, no-wrap
 msgid "{Scheme Procedure} wicd-service [#:wicd @var{wicd}]"
 msgstr "{Procédure Scheme} wicd-service [#:wicd @var{wicd}]"
 
 #. type: deffn
-#: doc/guix.texi:12562
+#: doc/guix.texi:15606
 msgid "Return a service that runs @url{https://launchpad.net/wicd,Wicd}, a network management daemon that aims to simplify wired and wireless networking."
 msgstr "Renvoie un service qui lance @url{https://launchpad.net/wicd,Wicd}, un démon de gestion réseau qui cherche à simplifier la configuration des réseaux filaires et sans fil."
 
 #. type: deffn
-#: doc/guix.texi:12567
+#: doc/guix.texi:15611
 msgid "This service adds the @var{wicd} package to the global profile, providing several commands to interact with the daemon and configure networking: @command{wicd-client}, a graphical user interface, and the @command{wicd-cli} and @command{wicd-curses} user interfaces."
 msgstr "Ce service ajoute le paquet @var{wicd} au profil global, pour fournir des commandes pour interagir avec le démon et configurer le réseau : @command{wicd-client}, une interface graphique et les interfaces utilisateurs @command{wicd-cli} et @command{wicd-curses}."
 
 #. type: cindex
-#: doc/guix.texi:12569
+#: doc/guix.texi:15613
 #, no-wrap
 msgid "ModemManager"
 msgstr "ModemManager"
 
 #. type: defvr
-#: doc/guix.texi:12571
+#: doc/guix.texi:15615
 #, no-wrap
 msgid "{Scheme Variable} modem-manager-service-type"
 msgstr "{Variable Scheme} modem-manager-service-type"
 
 #. type: defvr
-#: doc/guix.texi:12576
+#: doc/guix.texi:15620
 msgid "This is the service type for the @uref{https://wiki.gnome.org/Projects/ModemManager, ModemManager} service. The value for this service type is a @code{modem-manager-configuration} record."
 msgstr "C'est le type de service pour le service @uref{https://wiki.gnome.org/Projects/ModemManager, ModemManager}.  La valeur de ce type de service est un enregistrement @code{modem-manager-configuration}."
 
 #. type: defvr
-#: doc/guix.texi:12579 doc/guix.texi:12601
+#: doc/guix.texi:15623 doc/guix.texi:15651 doc/guix.texi:15683
 msgid "This service is part of @code{%desktop-services} (@pxref{Desktop Services})."
 msgstr "Ce service fait partie de @code{%desktop-services} (@pxref{Desktop Services})."
 
 #. type: deftp
-#: doc/guix.texi:12581
+#: doc/guix.texi:15625
 #, no-wrap
 msgid "{Data Type} modem-manager-configuration"
 msgstr "{Type de données} modem-manager-configuration"
 
 #. type: deftp
-#: doc/guix.texi:12583
+#: doc/guix.texi:15627
 msgid "Data type representing the configuration of ModemManager."
 msgstr "Type de donnée représentant la configuration de ModemManager."
 
 #. type: item
-#: doc/guix.texi:12585
+#: doc/guix.texi:15629
 #, no-wrap
 msgid "@code{modem-manager} (default: @code{modem-manager})"
 msgstr "@code{modem-manager} (par défaut : @code{modem-manager})"
 
 #. type: table
-#: doc/guix.texi:12587
+#: doc/guix.texi:15631
 msgid "The ModemManager package to use."
 msgstr "Le paquet ModemManager à utiliser."
 
 #. type: cindex
-#: doc/guix.texi:12591
+#: doc/guix.texi:15635
+#, no-wrap
+msgid "USB_ModeSwitch"
+msgstr "USB_ModeSwitch"
+
+#. type: cindex
+#: doc/guix.texi:15636
+#, no-wrap
+msgid "Modeswitching"
+msgstr "Modeswitching"
+
+#. type: defvr
+#: doc/guix.texi:15638
+#, no-wrap
+msgid "{Scheme Variable} usb-modeswitch-service-type"
+msgstr "{Variable Scheme} usb-modeswitch-service-type"
+
+#. type: defvr
+#: doc/guix.texi:15642
+msgid "This is the service type for the @uref{https://www.draisberghof.de/usb_modeswitch/, USB_ModeSwitch} service. The value for this service type is a @code{usb-modeswitch-configuration} record."
+msgstr "C'est le type de service pour le service @uref{https://www.draisberghof.de/usb_modeswitch/, USB_ModeSwitch}. La valeur pour ce type de service est un enregistrement @code{usb-modeswitch-configuration}."
+
+#. type: defvr
+#: doc/guix.texi:15648
+msgid "When plugged in, some USB modems (and other USB devices) initially present themselves as a read-only storage medium and not as a modem.  They need to be @dfn{modeswitched} before they are usable.  The USB_ModeSwitch service type installs udev rules to automatically modeswitch these devices when they are plugged in."
+msgstr "Lorsqu'ils sont branchés, certains modems USB (et autres dispositifs USB) se présentent initialement comme un support de stockage en lecture seule et non comme un modem.  Ils doivent être @dfn{modeswitched} avant d'être utilisables.  Le service de type USB_ModeSwitch installe des règles udev pour commuter automatiquement les modes de ces dispositifs lorsqu'ils sont branchés."
+
+#. type: deftp
+#: doc/guix.texi:15653
+#, no-wrap
+msgid "{Data Type} usb-modeswitch-configuration"
+msgstr "{Type de donnée} openvswitch-configuration"
+
+#. type: deftp
+#: doc/guix.texi:15655
+msgid "Data type representing the configuration of USB_ModeSwitch."
+msgstr "Type de données représentant la configuration du USB_ModeSwitch."
+
+#. type: item
+#: doc/guix.texi:15657
+#, no-wrap
+msgid "@code{usb-modeswitch} (default: @code{usb-modeswitch})"
+msgstr "@code{usb-modeswitch} (par défaut: @code{usb-modeswitch})"
+
+#. type: table
+#: doc/guix.texi:15659
+msgid "The USB_ModeSwitch package providing the binaries for modeswitching."
+msgstr "Le paquet USB_ModeSwitch fournit les binaires pour la commutation de modes."
+
+#. type: item
+#: doc/guix.texi:15660
+#, no-wrap
+msgid "@code{usb-modeswitch-data} (default: @code{usb-modeswitch-data})"
+msgstr "@code{usb-modeswitch-data} (par défaut : @code{usb-modeswitch-data})"
+
+#. type: table
+#: doc/guix.texi:15663
+msgid "The package providing the device data and udev rules file used by USB_ModeSwitch."
+msgstr "Le paquet fournissant les données du dispositif et le fichier de règles udev utilisé par USB_ModeSwitch."
+
+#. type: item
+#: doc/guix.texi:15664
+#, no-wrap
+msgid "@code{config-file} (default: @code{#~(string-append #$usb-modeswitch:dispatcher \"/etc/usb_modeswitch.conf\")})"
+msgstr "@code{config-file} (par défaut : @code{#~(string-append #$usb-modeswitch:dispatcher \"/etc/usb_modeswitch.conf\")})"
+
+#. type: table
+#: doc/guix.texi:15669
+msgid "Which config file to use for the USB_ModeSwitch dispatcher.  By default the config file shipped with USB_ModeSwitch is used which disables logging to @file{/var/log} among other default settings.  If set to @code{#f}, no config file is used."
+msgstr "Le fichier de configuration à utiliser pour le répartiteur USB_ModeSwitch.  Par défaut, le fichier de configuration livré avec USB_ModeSwitch est utilisé, ce qui désactive la connexion au @file{/var/log} parmi d'autres paramètres par défaut.  S'il est défini sur @code{#f}, aucun fichier de configuration n'est utilisé."
+
+#. type: cindex
+#: doc/guix.texi:15673
 #, no-wrap
 msgid "NetworkManager"
 msgstr "NetworkManager"
 
 #. type: defvr
-#: doc/guix.texi:12593
+#: doc/guix.texi:15675
 #, no-wrap
 msgid "{Scheme Variable} network-manager-service-type"
 msgstr "{Variable Scheme} network-manager-service-type"
 
 #. type: defvr
-#: doc/guix.texi:12598
+#: doc/guix.texi:15680
 msgid "This is the service type for the @uref{https://wiki.gnome.org/Projects/NetworkManager, NetworkManager} service. The value for this service type is a @code{network-manager-configuration} record."
 msgstr "C'est le type de service pour le service @uref{https://wiki.gnome.org/Projects/NetworkManager, NetworkManager}.  La valeur pour ce type de service est un enregistrement @code{network-manager-configuration}."
 
 #. type: deftp
-#: doc/guix.texi:12603
+#: doc/guix.texi:15685
 #, no-wrap
 msgid "{Data Type} network-manager-configuration"
 msgstr "{Type de données} network-manager-configuration"
 
 #. type: deftp
-#: doc/guix.texi:12605
+#: doc/guix.texi:15687
 msgid "Data type representing the configuration of NetworkManager."
 msgstr "Type de données représentant la configuration de NetworkManager."
 
 #. type: item
-#: doc/guix.texi:12607
+#: doc/guix.texi:15689
 #, no-wrap
 msgid "@code{network-manager} (default: @code{network-manager})"
 msgstr "@code{network-manager} (par défaut : @code{network-manager})"
 
 #. type: table
-#: doc/guix.texi:12609
+#: doc/guix.texi:15691
 msgid "The NetworkManager package to use."
 msgstr "Le paquet NetworkManager à utiliser."
 
 #. type: item
-#: doc/guix.texi:12610
+#: doc/guix.texi:15692
 #, no-wrap
 msgid "@code{dns} (default: @code{\"default\"})"
 msgstr "@code{dns} (par défaut : @code{\"default\"})"
 
 #. type: table
-#: doc/guix.texi:12613
+#: doc/guix.texi:15695
 msgid "Processing mode for DNS, which affects how NetworkManager uses the @code{resolv.conf} configuration file."
 msgstr "Mode de gestion pour le DNS, qui affecte la manière dont NetworkManager utilise le fichier de configuration @code{resolv.conf}"
 
-#. type: item
-#: doc/guix.texi:12615
-#, no-wrap
-msgid "default"
-msgstr "default"
-
 #. type: table
-#: doc/guix.texi:12618
+#: doc/guix.texi:15700
 msgid "NetworkManager will update @code{resolv.conf} to reflect the nameservers provided by currently active connections."
 msgstr "NetworkManager mettra à jour @code{resolv.conf} pour refléter les serveurs de noms fournis par les connexions actives."
 
 #. type: item
-#: doc/guix.texi:12619
+#: doc/guix.texi:15701
 #, no-wrap
 msgid "dnsmasq"
 msgstr "dnsmasq"
 
 #. type: table
-#: doc/guix.texi:12623
-msgid "NetworkManager will run @code{dnsmasq} as a local caching nameserver, using a \"split DNS\" configuration if you are connected to a VPN, and then update @code{resolv.conf} to point to the local nameserver."
-msgstr "NetworkManager lancera @code{dnsmasq} en tant que serveur de cache local, en utilisant une configuration « DNS disjointe » si vous êtes connecté par un VPN puis mettra à jour @code{resolv.conf} pour pointer vers le serveur de nom local."
+#: doc/guix.texi:15705
+msgid "NetworkManager will run @code{dnsmasq} as a local caching nameserver, using a @dfn{conditional forwarding} configuration if you are connected to a VPN, and then update @code{resolv.conf} to point to the local nameserver."
+msgstr "NetworkManager exécutera @code{dnsmasq} comme un serveur de noms local en cache, en utilisant une configuration @dfn{transfert conditionnel} si vous êtes connecté à un VPN, puis mettra à jour @code{resolv.conf} pour pointer vers le serveur de noms local."
 
-#. type: item
-#: doc/guix.texi:12624 doc/guix.texi:13884
+#. type: table
+#: doc/guix.texi:15711
+msgid "With this setting, you can share your network connection.  For example when you want to share your network connection to another laptop @i{via} an Ethernet cable, you can open @command{nm-connection-editor} and configure the Wired connection's method for IPv4 and IPv6 to be ``Shared to other computers'' and reestablish the connection (or reboot)."
+msgstr "Avec ce paramètre, vous pouvez partager votre connexion réseau.  Par exemple, lorsque vous souhaitez partager votre connexion réseau avec un autre ordinateur portable @i{via} un câble Ethernet, vous pouvez ouvrir @command{nm-connection-editor} et configurer la méthode de connexion câblée pour IPv4 et IPv6 de manière à ce qu'elle soit \"partagée avec d'autres ordinateurs\" et à ce que la connexion soit rétablie (ou redémarrée)."
+
+#. type: table
+#: doc/guix.texi:15718
+msgid "You can also set up a @dfn{host-to-guest connection} to QEMU VMs (@pxref{Installing Guix in a VM}).  With a host-to-guest connection, you can e.g.@: access a Web server running on the VM (@pxref{Web Services}) from a Web browser on your host system, or connect to the VM @i{via} SSH (@pxref{Networking Services, @code{openssh-service-type}}).  To set up a host-to-guest connection, run this command once:"
+msgstr "Vous pouvez également établir une @dfn{connexion hôte-invité} aux VM QEMU (@pxref{Installing Guix in a VM}).  Avec une connexion d'hôte à invité, vous pouvez par exemple @ : accéder à un serveur Web fonctionnant sur la VM (@pxref{Web Services}) à partir d'un navigateur Web sur votre système hôte, ou vous connecter à la VM @i{via} SSH (@pxref{Networking Services, @code{openssh-service-type}}).  Pour établir une connexion entre hôtes, exécutez cette commande une fois :"
+
+#. type: example
+#: doc/guix.texi:15725
 #, no-wrap
-msgid "none"
-msgstr "none"
+msgid ""
+"nmcli connection add type tun \\\n"
+" connection.interface-name tap0 \\\n"
+" tun.mode tap tun.owner $(id -u) \\\n"
+" ipv4.method shared \\\n"
+" ipv4.addresses 172.28.112.1/24\n"
+msgstr ""
+"nmcli connection add type tun \\\n"
+" connection.interface-name tap0 \\\n"
+" tun.mode tap tun.owner $(id -u) \\\n"
+" ipv4.method shared \\\n"
+" ipv4.addresses 172.28.112.1/24\n"
 
 #. type: table
-#: doc/guix.texi:12626
+#: doc/guix.texi:15730
+msgid "Then each time you launch your QEMU VM (@pxref{Running Guix in a VM}), pass @option{-nic tap,ifname=tap0,script=no,downscript=no} to @command{qemu-system-...}."
+msgstr "Ensuite, chaque fois que vous lancez votre VM QEMU (@pxref{Running Guix in a VM}), passez @option{-nic tap,ifname=tap0,script=no,downscript=no} à @command{qemu-system-...}."
+
+#. type: table
+#: doc/guix.texi:15733
 msgid "NetworkManager will not modify @code{resolv.conf}."
 msgstr "NetworkManager ne modifiera pas @code{resolv.conf}."
 
 #. type: item
-#: doc/guix.texi:12628
+#: doc/guix.texi:15735
 #, no-wrap
 msgid "@code{vpn-plugins} (default: @code{'()})"
 msgstr "@code{vpn-plugins} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:12632
+#: doc/guix.texi:15739
 msgid "This is the list of available plugins for virtual private networks (VPNs).  An example of this is the @code{network-manager-openvpn} package, which allows NetworkManager to manage VPNs @i{via} OpenVPN."
 msgstr "C'est la liste des greffons disponibles pour les VPN (réseaux privés virtuels).  Un exemple est le paquet @code{network-manager-openvpn}, qui permet à NetworkManager de gérer des VPN via OpenVPN."
 
 #. type: cindex
-#: doc/guix.texi:12636
+#: doc/guix.texi:15743
 #, no-wrap
 msgid "Connman"
 msgstr "Connman"
 
 #. type: deffn
-#: doc/guix.texi:12637
+#: doc/guix.texi:15744
 #, no-wrap
 msgid "{Scheme Variable} connman-service-type"
 msgstr "{Variable Scheme} connman-service-type"
 
 #. type: deffn
-#: doc/guix.texi:12640
+#: doc/guix.texi:15747
 msgid "This is the service type to run @url{https://01.org/connman,Connman}, a network connection manager."
 msgstr "C'est le type de service pour lancer @url{https://01.org/connman,Connman}, un gestionnaire de connexions réseaux."
 
 #. type: deffn
-#: doc/guix.texi:12643
+#: doc/guix.texi:15750
 msgid "Its value must be an @code{connman-configuration} record as in this example:"
 msgstr "Sa valeur doit être un enregistrement @code{connman-configuration} comme dans cet exemple :"
 
-#. type: example
-#: doc/guix.texi:12648
+#. type: lisp
+#: doc/guix.texi:15755
 #, no-wrap
 msgid ""
 "(service connman-service-type\n"
@@ -23148,149 +28704,305 @@ msgstr ""
 "           (disable-vpn? #t)))\n"
 
 #. type: deffn
-#: doc/guix.texi:12651
+#: doc/guix.texi:15758
 msgid "See below for details about @code{connman-configuration}."
 msgstr "Voir plus bas pour des détails sur @code{connman-configuration}."
 
 #. type: deftp
-#: doc/guix.texi:12653
+#: doc/guix.texi:15760
 #, no-wrap
 msgid "{Data Type} connman-configuration"
 msgstr "{Type de données} connman-configuration"
 
 #. type: deftp
-#: doc/guix.texi:12655
+#: doc/guix.texi:15762
 msgid "Data Type representing the configuration of connman."
 msgstr "Type de données représentant la configuration de connman."
 
 #. type: item
-#: doc/guix.texi:12657
+#: doc/guix.texi:15764
 #, no-wrap
 msgid "@code{connman} (default: @var{connman})"
 msgstr "@code{connman} (par défaut : @var{connman})"
 
 #. type: table
-#: doc/guix.texi:12659
+#: doc/guix.texi:15766
 msgid "The connman package to use."
 msgstr "Le paquet connman à utiliser."
 
 #. type: item
-#: doc/guix.texi:12660
+#: doc/guix.texi:15767
 #, no-wrap
 msgid "@code{disable-vpn?} (default: @code{#f})"
 msgstr "@code{disable-vpn?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:12662
+#: doc/guix.texi:15769
 msgid "When true, disable connman's vpn plugin."
 msgstr "Lorsque la valeur est vraie, désactive le greffon vpn de connman."
 
 #. type: cindex
-#: doc/guix.texi:12665
+#: doc/guix.texi:15772
 #, no-wrap
 msgid "WPA Supplicant"
 msgstr "WPA Supplicant"
 
 #. type: defvr
-#: doc/guix.texi:12666
+#: doc/guix.texi:15773
 #, no-wrap
 msgid "{Scheme Variable} wpa-supplicant-service-type"
 msgstr "{Variable Scheme} wpa-supplicant-service-type"
 
 #. type: defvr
-#: doc/guix.texi:12670
+#: doc/guix.texi:15777
 msgid "This is the service type to run @url{https://w1.fi/wpa_supplicant/,WPA supplicant}, an authentication daemon required to authenticate against encrypted WiFi or ethernet networks."
 msgstr "C'est le type du service qui lance@url{https://w1.fi/wpa_supplicant/,WPA supplicant}, un démon d'authentification requis pour s'authentifier sur des WiFi chiffrés ou des réseaux ethernet."
 
 #. type: deftp
-#: doc/guix.texi:12672
+#: doc/guix.texi:15779
 #, no-wrap
 msgid "{Data Type} wpa-supplicant-configuration"
 msgstr "{Type de données} wpa-supplicant-configuration"
 
 #. type: deftp
-#: doc/guix.texi:12674
+#: doc/guix.texi:15781
 msgid "Data type representing the configuration of WPA Supplicant."
 msgstr "Type données qui représente la configuration de WPA Supplicant."
 
 #. type: deftp
-#: doc/guix.texi:12676
+#: doc/guix.texi:15783 doc/guix.texi:28961
 msgid "It takes the following parameters:"
 msgstr "Il prend les paramètres suivants :"
 
 #. type: item
-#: doc/guix.texi:12678
+#: doc/guix.texi:15785
 #, no-wrap
 msgid "@code{wpa-supplicant} (default: @code{wpa-supplicant})"
 msgstr "@code{wpa-supplicant} (par défaut : @code{wpa-supplicant})"
 
 #. type: table
-#: doc/guix.texi:12680
+#: doc/guix.texi:15787
 msgid "The WPA Supplicant package to use."
 msgstr "Le paquet WPA Supplicant à utiliser."
 
 #. type: item
-#: doc/guix.texi:12681
+#: doc/guix.texi:15788
+#, no-wrap
+msgid "@code{requirement} (default: @code{'(user-processes loopback syslogd)}"
+msgstr "@code{requirement} (par défaut : @code{'(user-processes loopback syslogd)}"
+
+#. type: table
+#: doc/guix.texi:15790
+msgid "List of services that should be started before WPA Supplicant starts."
+msgstr "Liste des services qui doivent être démarrés avant le début de WPA Supplicant."
+
+#. type: item
+#: doc/guix.texi:15791
 #, no-wrap
 msgid "@code{dbus?} (default: @code{#t})"
 msgstr "@code{dbus?} (par défaut : @code{#t})"
 
 #. type: table
-#: doc/guix.texi:12683
+#: doc/guix.texi:15793
 msgid "Whether to listen for requests on D-Bus."
 msgstr "Indique s'il faut écouter les requêtes sur D-Bus."
 
 #. type: item
-#: doc/guix.texi:12684
+#: doc/guix.texi:15794
 #, no-wrap
 msgid "@code{pid-file} (default: @code{\"/var/run/wpa_supplicant.pid\"})"
 msgstr "@code{pid-file} (par défaut : @code{\"/var/run/wpa_supplicant.pid\"})"
 
 #. type: table
-#: doc/guix.texi:12686
+#: doc/guix.texi:15796
 msgid "Where to store the PID file."
 msgstr "Où stocker votre fichier de PID."
 
 #. type: item
-#: doc/guix.texi:12687
+#: doc/guix.texi:15797 doc/guix.texi:27406 doc/guix.texi:27548
 #, no-wrap
 msgid "@code{interface} (default: @code{#f})"
 msgstr "@code{interface} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:12690
+#: doc/guix.texi:15800
 msgid "If this is set, it must specify the name of a network interface that WPA supplicant will control."
 msgstr "Si une valeur est indiquée, elle doit spécifier le nom d'une interface réseau que WPA supplicant contrôlera."
 
 #. type: table
-#: doc/guix.texi:12693
+#: doc/guix.texi:15803
 msgid "Optional configuration file to use."
 msgstr "Fichier de configuration facultatif à utiliser."
 
 #. type: table
-#: doc/guix.texi:12696
+#: doc/guix.texi:15806
 msgid "List of additional command-line arguments to pass to the daemon."
 msgstr "Liste d'arguments de la ligne de commande supplémentaires à passer au démon."
 
 #. type: cindex
-#: doc/guix.texi:12699
+#: doc/guix.texi:15809
+#, no-wrap
+msgid "hostapd service, for Wi-Fi access points"
+msgstr "service hostapd, pour les points d'accès Wi-Fi"
+
+#. type: cindex
+#: doc/guix.texi:15810
+#, no-wrap
+msgid "Wi-Fi access points, hostapd service"
+msgstr "Points d'accès Wi-Fi, service hostapd"
+
+#. type: defvr
+#: doc/guix.texi:15811
+#, no-wrap
+msgid "{Scheme Variable} hostapd-service-type"
+msgstr "{Variable Scheme} hostapd-service-type"
+
+#. type: defvr
+#: doc/guix.texi:15816
+msgid "This is the service type to run the @uref{https://w1.fi/hostapd/, hostapd} daemon to set up WiFi (IEEE 802.11) access points and authentication servers.  Its associated value must be a @code{hostapd-configuration} as shown below:"
+msgstr "Il s'agit du type de service permettant d'exécuter le démon @uref{https://w1.fi/hostapd/, hostapd} pour mettre en place des points d'accès et des serveurs d'authentification WiFi (IEEE 802.11).  Sa valeur associée doit être un @code{hostapd-configuration} comme indiqué ci-dessous :"
+
+#. type: lisp
+#: doc/guix.texi:15824
+#, no-wrap
+msgid ""
+";; Use wlan1 to run the access point for \"My Network\".\n"
+"(service hostapd-service-type\n"
+"         (hostapd-configuration\n"
+"          (interface \"wlan1\")\n"
+"          (ssid \"My Network\")\n"
+"          (channel 12)))\n"
+msgstr ""
+";; Use wlan1 to run the access point for \"My Network\".\n"
+"(service hostapd-service-type\n"
+"         (hostapd-configuration\n"
+"          (interface \"wlan1\")\n"
+"          (ssid \"My Network\")\n"
+"          (channel 12)))\n"
+
+#. type: deftp
+#: doc/guix.texi:15827
+#, no-wrap
+msgid "{Data Type} hostapd-configuration"
+msgstr "{Type de données} hostapd-configuration"
+
+#. type: deftp
+#: doc/guix.texi:15830
+msgid "This data type represents the configuration of the hostapd service, with the following fields:"
+msgstr "Ce type de données représente la configuration du service hostapd, avec les champs suivants :"
+
+#. type: item
+#: doc/guix.texi:15832
+#, no-wrap
+msgid "@code{package} (default: @code{hostapd})"
+msgstr "@code{package} (par défaut : @code{hostapd})"
+
+#. type: table
+#: doc/guix.texi:15834
+msgid "The hostapd package to use."
+msgstr "Le paquet hostapd à utiliser."
+
+#. type: item
+#: doc/guix.texi:15835
+#, no-wrap
+msgid "@code{interface} (default: @code{\"wlan0\"})"
+msgstr "@code{interface} (par défaut : @code{\"wlan0\"})"
+
+#. type: table
+#: doc/guix.texi:15837
+msgid "The network interface to run the WiFi access point."
+msgstr "L'interface réseau pour faire fonctionner le point d'accès WiFi."
+
+#. type: code{#1}
+#: doc/guix.texi:15838
+#, no-wrap
+msgid "ssid"
+msgstr "ssid"
+
+#. type: table
+#: doc/guix.texi:15841
+msgid "The SSID (@dfn{service set identifier}), a string that identifies this network."
+msgstr "Le SSID (@dfn{identifiant de l'ensemble de services}), une chaîne de caractères qui identifie ce réseau."
+
+#. type: item
+#: doc/guix.texi:15842
+#, no-wrap
+msgid "@code{broadcast-ssid?} (default: @code{#t})"
+msgstr "@code{broadcast-ssid?} (par défaut : @code{#t})"
+
+#. type: table
+#: doc/guix.texi:15844
+msgid "Whether to broadcast this SSID."
+msgstr "La diffusion de ce SSID."
+
+#. type: item
+#: doc/guix.texi:15845
+#, no-wrap
+msgid "@code{channel} (default: @code{1})"
+msgstr "@code{channel} (par défaut : @code{#f})"
+
+#. type: table
+#: doc/guix.texi:15847
+msgid "The WiFi channel to use."
+msgstr "Le canal WiFi à utiliser."
+
+#. type: item
+#: doc/guix.texi:15848
+#, no-wrap
+msgid "@code{driver} (default: @code{\"nl80211\"})"
+msgstr "@code{drivers} (par défaut : @code{\"nl80211\"})"
+
+#. type: table
+#: doc/guix.texi:15852
+msgid "The driver interface type.  @code{\"nl80211\"} is used with all Linux mac80211 drivers.  Use @code{\"none\"} if building hostapd as a standalone RADIUS server that does # not control any wireless/wired driver."
+msgstr "Le type d'interface du conducteur.  @code{\"nl80211\"} est utilisé avec tous les pilotes mac80211 de Linux.  Utilisez @code{\"none\"} si vous construisez hostapd comme un serveur RADIUS autonome qui ne # contrôle aucun pilote filaire/filaire."
+
+#. type: item
+#: doc/guix.texi:15853 doc/guix.texi:21353 doc/guix.texi:23399
+#, no-wrap
+msgid "@code{extra-settings} (default: @code{\"\"})"
+msgstr "@code{extra-settings} (par défaut : @code{\"\"})"
+
+#. type: table
+#: doc/guix.texi:15857
+msgid "Extra settings to append as-is to the hostapd configuration file.  See @uref{https://w1.fi/cgit/hostap/plain/hostapd/hostapd.conf} for the configuration file reference."
+msgstr "Paramètres supplémentaires à ajouter tels quels au fichier de configuration de hostapd.  Voir @uref{https://w1.fi/cgit/hostap/plain/hostapd/hostapd.conf} pour la référence du fichier de configuration."
+
+#. type: defvr
+#: doc/guix.texi:15860
+#, no-wrap
+msgid "{Scheme Variable} simulated-wifi-service-type"
+msgstr "{Variable Scheme} simulated-wifi-service-type"
+
+#. type: defvr
+#: doc/guix.texi:15867
+msgid "This is the type of a service to simulate WiFi networking, which can be useful in virtual machines for testing purposes.  The service loads the Linux kernel @uref{https://www.kernel.org/doc/html/latest/networking/mac80211_hwsim/mac80211_hwsim.html, @code{mac80211_hwsim} module} and starts hostapd to create a pseudo WiFi network that can be seen on @code{wlan0}, by default."
+msgstr "C'est le type de service permettant de simuler la mise en réseau WiFi, qui peut être utile dans les machines virtuelles à des fins de test.  Le service charge le noyau Linux @uref{https://www.kernel.org/doc/html/latest/networking/mac80211_hwsim/mac80211_hwsim.html, module @code{mac80211_hwsim}} et lance hostapd pour créer un pseudo réseau WiFi qui peut être vu sur @code{wlan0}, par défaut."
+
+#. type: defvr
+#: doc/guix.texi:15869
+msgid "The service's value is a @code{hostapd-configuration} record."
+msgstr "La valeur du service est un enregistrement @code{hostapd-configuration}."
+
+#. type: cindex
+#: doc/guix.texi:15871
 #, no-wrap
 msgid "iptables"
 msgstr "iptables"
 
 #. type: defvr
-#: doc/guix.texi:12700
+#: doc/guix.texi:15872
 #, no-wrap
 msgid "{Scheme Variable} iptables-service-type"
 msgstr "{Variable Scheme} iptables-service-type"
 
 #. type: defvr
-#: doc/guix.texi:12706
+#: doc/guix.texi:15878
 msgid "This is the service type to set up an iptables configuration.  iptables is a packet filtering framework supported by the Linux kernel.  This service supports configuring iptables for both IPv4 and IPv6.  A simple example configuration rejecting all incoming connections except those to the ssh port 22 is shown below."
 msgstr "C'est le type de service pour mettre en place une configuration iptables.  iptables est un outil de filtrage de paquets pris en charge par le noyau Linux.  Ce service prend en charge la configuration d'iptable pour IPv4 et IPv6.  Un exemple de configuration simple, qui rejette les connexions entrantes sauf celles sur le port 22 est présenté ci-dessous."
 
 #. type: lisp
-#: doc/guix.texi:12726
+#: doc/guix.texi:15898
 #, no-wrap
 msgid ""
 "(service iptables-service-type\n"
@@ -23332,151 +29044,271 @@ msgstr ""
 "\"))))\n"
 
 #. type: deftp
-#: doc/guix.texi:12729
+#: doc/guix.texi:15901
 #, no-wrap
 msgid "{Data Type} iptables-configuration"
 msgstr "{Type de données} iptables-configuration"
 
 #. type: deftp
-#: doc/guix.texi:12731
+#: doc/guix.texi:15903
 msgid "The data type representing the configuration of iptables."
 msgstr "Type de données représentant la configuration d'iptables."
 
 #. type: item
-#: doc/guix.texi:12733
+#: doc/guix.texi:15905
 #, no-wrap
 msgid "@code{iptables} (default: @code{iptables})"
 msgstr "@code{iptables} (par défaut : @code{iptables})"
 
 #. type: table
-#: doc/guix.texi:12736
+#: doc/guix.texi:15908
 msgid "The iptables package that provides @code{iptables-restore} and @code{ip6tables-restore}."
 msgstr "Le paquet iptables qui fournit @code{iptables-restore} et @code{ip6tables-restore}."
 
 #. type: item
-#: doc/guix.texi:12736
+#: doc/guix.texi:15908
 #, no-wrap
 msgid "@code{ipv4-rules} (default: @code{%iptables-accept-all-rules})"
 msgstr "@code{ipv4-rules} (par défaut : @code{%iptables-accept-all-rules})"
 
 #. type: table
-#: doc/guix.texi:12740
+#: doc/guix.texi:15912
 msgid "The iptables rules to use.  It will be passed to @code{iptables-restore}.  This may be any ``file-like'' object (@pxref{G-Expressions, file-like objects})."
 msgstr "Les règles iptables à utiliser.  Elles seront passées à @code{iptables-restore}.  Cela peut être un objet « simili-fichier » (@pxref{G-Expressions, file-like objects})."
 
 #. type: item
-#: doc/guix.texi:12740
+#: doc/guix.texi:15912
 #, no-wrap
 msgid "@code{ipv6-rules} (default: @code{%iptables-accept-all-rules})"
 msgstr "@code{ipv6-rules} (par défaut : @code{%iptables-accept-all-rules})"
 
 #. type: table
-#: doc/guix.texi:12744
+#: doc/guix.texi:15916
 msgid "The ip6tables rules to use.  It will be passed to @code{ip6tables-restore}.  This may be any ``file-like'' object (@pxref{G-Expressions, file-like objects})."
 msgstr "Les règles iptables à utiliser.  Elles seront passées à @code{ip6tables-restore}.  Cela peut être un objet « simili-fichier » (@pxref{G-Expressions, file-like objects})."
 
 #. type: cindex
-#: doc/guix.texi:12747
+#: doc/guix.texi:15919
+#, no-wrap
+msgid "nftables"
+msgstr "nftables"
+
+#. type: defvr
+#: doc/guix.texi:15920
+#, no-wrap
+msgid "{Scheme Variable} nftables-service-type"
+msgstr "{Variable Scheme} nftables-service-type"
+
+#. type: defvr
+#: doc/guix.texi:15928
+msgid "This is the service type to set up a nftables configuration.  nftables is a netfilter project that aims to replace the existing iptables, ip6tables, arptables and ebtables framework.  It provides a new packet filtering framework, a new user-space utility @command{nft}, and a compatibility layer for iptables.  This service comes with a default ruleset @code{%default-nftables-ruleset} that rejecting all incomming connections except those to the ssh port 22.  To use it, simply write:"
+msgstr "C'est le type de service permettant de mettre en place une configuration nftables. nftables est un projet de netfilter qui vise à remplacer le cadre existant iptables, ip6tables, arptables et ebtables.  Il fournit un nouveau cadre de filtrage de paquets, un nouvel utilitaire d'espace utilisateur·rice @command{nft}, et une couche de compatibilité pour iptables.  Ce service est fourni avec un jeu de règles par défaut @code{%default-nftables-ruleset} qui rejette toutes les connexions entrantes sauf celles vers le port ssh 22.  Pour l'utiliser, il suffit d'écrire :"
+
+#. type: lisp
+#: doc/guix.texi:15931
+#, no-wrap
+msgid "(service nftables-service-type)\n"
+msgstr "(service nftables-service-type)\n"
+
+#. type: deftp
+#: doc/guix.texi:15934
+#, no-wrap
+msgid "{Data Type} nftables-configuration"
+msgstr "{Type de données} nftables-configuration"
+
+#. type: deftp
+#: doc/guix.texi:15936
+msgid "The data type representing the configuration of nftables."
+msgstr "Type de données représentant la configuration de nftables."
+
+#. type: item
+#: doc/guix.texi:15938
+#, no-wrap
+msgid "@code{package} (default: @code{nftables})"
+msgstr "@code{package} (par défaut : @code{nftables})"
+
+#. type: table
+#: doc/guix.texi:15940
+msgid "The nftables package that provides @command{nft}."
+msgstr "Le paquet nftables qui fournit @command{nft}."
+
+#. type: item
+#: doc/guix.texi:15940
+#, no-wrap
+msgid "@code{ruleset} (default: @code{%default-nftables-ruleset})"
+msgstr "@code{ruleset} (par défaut : @code{%default-nftables-ruleset})"
+
+#. type: table
+#: doc/guix.texi:15943
+msgid "The nftables ruleset to use.  This may be any ``file-like'' object (@pxref{G-Expressions, file-like objects})."
+msgstr "Les règles d'utilisation de nftables.  Il peut s'agir de n'importe quel objet « de type fichier » (@pxref{G-Expressions, objets de type fichier})."
+
+#. type: cindex
+#: doc/guix.texi:15946
 #, no-wrap
 msgid "NTP (Network Time Protocol), service"
 msgstr "NTP (Network Time Protocol), service"
 
 #. type: cindex
-#: doc/guix.texi:12748
+#: doc/guix.texi:15947
+#, no-wrap
+msgid "ntpd, service for the Network Time Protocol daemon"
+msgstr "ntpd, service pour le démon Network Time Protocol"
+
+#. type: cindex
+#: doc/guix.texi:15948
 #, no-wrap
 msgid "real time clock"
 msgstr "horloge"
 
 #. type: defvr
-#: doc/guix.texi:12749
+#: doc/guix.texi:15949
 #, no-wrap
 msgid "{Scheme Variable} ntp-service-type"
 msgstr "{Variable Scheme} ntp-service-type"
 
 #. type: defvr
-#: doc/guix.texi:12753
-msgid "This is the type of the service running the @uref{http://www.ntp.org, Network Time Protocol (NTP)} daemon, @command{ntpd}.  The daemon will keep the system clock synchronized with that of the specified NTP servers."
-msgstr "C'est le type de service qui lance le démon @uref{http://www.ntp.org, Network Time Protocol (NTP)}, @command{ntpd}.  Le démon gardera l'horloge système synchronisée avec celle des serveurs NTP spécifiés."
+#: doc/guix.texi:15953
+msgid "This is the type of the service running the @uref{https://www.ntp.org, Network Time Protocol (NTP)} daemon, @command{ntpd}.  The daemon will keep the system clock synchronized with that of the specified NTP servers."
+msgstr "C'est le type de service qui lance le démon @uref{https://www.ntp.org, Network Time Protocol (NTP)}, @command{ntpd}.  Le démon gardera l'horloge système synchronisée avec celle des serveurs NTP spécifiés."
 
 #. type: defvr
-#: doc/guix.texi:12756
+#: doc/guix.texi:15956
 msgid "The value of this service is an @code{ntpd-configuration} object, as described below."
 msgstr "La valeur de ce service est un objet @code{ntpd-configuration}, décrit ci-dessous."
 
 #. type: deftp
-#: doc/guix.texi:12758
+#: doc/guix.texi:15958
 #, no-wrap
 msgid "{Data Type} ntp-configuration"
 msgstr "{Type de données} ntp-configuration"
 
 #. type: deftp
-#: doc/guix.texi:12760
+#: doc/guix.texi:15960
 msgid "This is the data type for the NTP service configuration."
 msgstr "C'est le type de données représentant la configuration du service NTP."
 
 #. type: item
-#: doc/guix.texi:12762
+#: doc/guix.texi:15962
 #, no-wrap
 msgid "@code{servers} (default: @code{%ntp-servers})"
 msgstr "@code{servers} (par défaut : @code{%ntp-servers})"
 
 #. type: table
-#: doc/guix.texi:12765
-msgid "This is the list of servers (host names) with which @command{ntpd} will be synchronized."
-msgstr "C'est la liste des serveurs (noms d'hôtes) avec lesquels @command{ntpd} sera synchronisé."
+#: doc/guix.texi:15966
+msgid "This is the list of servers (@code{<ntp-server>} records) with which @command{ntpd} will be synchronized.  See the @code{ntp-server} data type definition below."
+msgstr "C'est la liste des serveurs (enregistrements @code{<ntp-server>}) avec lesquels @command{ntpd} sera synchronisé.  Voir la définition du type de données @code{ntp-server} ci-dessous."
 
 #. type: item
-#: doc/guix.texi:12766 doc/guix.texi:12827
+#: doc/guix.texi:15967
 #, no-wrap
-msgid "@code{allow-large-adjustment?} (default: @code{#f})"
-msgstr "@code{allow-large-adjustment?} (par défaut : @code{#f})"
+msgid "@code{allow-large-adjustment?} (default: @code{#t})"
+msgstr "@code{allow-large-adjustment?} (par défaut : @code{#t})"
 
 #. type: table
-#: doc/guix.texi:12769
+#: doc/guix.texi:15970
 msgid "This determines whether @command{ntpd} is allowed to make an initial adjustment of more than 1,000 seconds."
 msgstr "Détermine si @code{ntpd} peut faire un ajustement initial de plus de 1@tie{}000 secondes."
 
 #. type: item
-#: doc/guix.texi:12770
+#: doc/guix.texi:15971
 #, no-wrap
 msgid "@code{ntp} (default: @code{ntp})"
 msgstr "@code{ntp} (par défaut : @code{ntp})"
 
 #. type: table
-#: doc/guix.texi:12772
+#: doc/guix.texi:15973
 msgid "The NTP package to use."
 msgstr "Le paquet NTP à utiliser."
 
 #. type: defvr
-#: doc/guix.texi:12775
+#: doc/guix.texi:15976
 #, no-wrap
 msgid "{Scheme Variable} %ntp-servers"
 msgstr "{Variable Scheme} %ntp-servers"
 
 #. type: defvr
-#: doc/guix.texi:12778
+#: doc/guix.texi:15979
 msgid "List of host names used as the default NTP servers.  These are servers of the @uref{https://www.ntppool.org/en/, NTP Pool Project}."
 msgstr "Liste de noms d'hôtes à utiliser comme serveurs NTP par défaut.  Ce sont les serveurs du @uref{https://www.ntppool.org/fr/, projet NTP Pool}"
 
+#. type: deftp
+#: doc/guix.texi:15981
+#, no-wrap
+msgid "{Data Type} ntp-server"
+msgstr "{Type de données} ntp-server"
+
+#. type: deftp
+#: doc/guix.texi:15983
+msgid "The data type representing the configuration of a NTP server."
+msgstr "Le type de données représentant la configuration d'un serveur NTP."
+
+#. type: item
+#: doc/guix.texi:15985
+#, no-wrap
+msgid "@code{type} (default: @code{'server})"
+msgstr "@code{type} (par défaut : @code{'server})"
+
+#. type: table
+#: doc/guix.texi:15988
+msgid "The type of the NTP server, given as a symbol. One of @code{'pool}, @code{'server}, @code{'peer}, @code{'broadcast} or @code{'manycastclient}."
+msgstr "Le type de serveur NTP, indiqué par un symbole. L'un des types suivants : @code{'pool}, @code{'server}, @code{'peer}, @code{'broadcast} ou @code{'manycastclient}."
+
+#. type: code{#1}
+#: doc/guix.texi:15989
+#, no-wrap
+msgid "address"
+msgstr "adresse"
+
+#. type: table
+#: doc/guix.texi:15991
+msgid "The address of the server, as a string."
+msgstr "L'adresse du serveur, comme une chaîne de caractères."
+
+#. type: code{#1}
+#: doc/guix.texi:15992 doc/guix.texi:29629 doc/guix.texi:29649
+#, no-wrap
+msgid "options"
+msgstr "options"
+
+#. type: table
+#: doc/guix.texi:15997
+msgid "NTPD options to use with that specific server, given as a list of option names and/or of option names and values tuples. The following example define a server to use with the options @option{iburst} and @option{prefer}, as well as @option{version} 3 and a @option{maxpoll} time of 16 seconds."
+msgstr "Les options NTPD à utiliser avec ce serveur spécifique, données sous la forme d'une liste de noms d'options et/ou de tuples de noms et de valeurs d'options. L'exemple suivant définit un serveur à utiliser avec les options @option{iburst} et @option{prefer}, ainsi que @option{version} 3 et un temps @option{maxpoll} de 16 secondes."
+
+#. type: example
+#: doc/guix.texi:16003
+#, no-wrap
+msgid ""
+"(ntp-server\n"
+" (type 'server)\n"
+" (address \"some.ntp.server.org\")\n"
+" (options `(iburst (version 3) (maxpoll 16) prefer))))\n"
+msgstr ""
+"(ntp-server\n"
+" (type 'server)\n"
+" (address \"some.ntp.server.org\")\n"
+" (options `(iburst (version 3) (maxpoll 16) prefer))))\n"
+
 #. type: cindex
-#: doc/guix.texi:12780
+#: doc/guix.texi:16007
 #, no-wrap
 msgid "OpenNTPD"
 msgstr "OpenNTPD"
 
 #. type: deffn
-#: doc/guix.texi:12781
+#: doc/guix.texi:16008
 #, no-wrap
 msgid "{Scheme Procedure} openntpd-service-type"
 msgstr "{Procédure Scheme} openntpd-service-type"
 
 #. type: deffn
-#: doc/guix.texi:12785
+#: doc/guix.texi:16012
 msgid "Run the @command{ntpd}, the Network Time Protocol (NTP) daemon, as implemented by @uref{http://www.openntpd.org, OpenNTPD}.  The daemon will keep the system clock synchronized with that of the given servers."
 msgstr "Lance le démon NTP @command{ntpd}, implémenté par @uref{http://www.openntpd.org, OpenNTPD}.  Le démon gardera l'horloge système synchronisée avec celle des serveurs donnés."
 
-#. type: example
-#: doc/guix.texi:12795
+#. type: lisp
+#: doc/guix.texi:16022
 #, no-wrap
 msgid ""
 "(service\n"
@@ -23499,129 +29331,146 @@ msgstr ""
 "  (allow-large-adjustment? #t)))\n"
 "\n"
 
+#. type: defvr
+#: doc/guix.texi:16026
+#, no-wrap
+msgid "{Scheme Variable} %openntpd-servers"
+msgstr "{Variable Scheme} %openntpd-servers"
+
+#. type: defvr
+#: doc/guix.texi:16029
+msgid "This variable is a list of the server addresses defined in @code{%ntp-servers}."
+msgstr "Cette variable est une liste des adresses de serveurs définies dans @code{%ntp-servers}."
+
 #. type: deftp
-#: doc/guix.texi:12799
+#: doc/guix.texi:16031
 #, no-wrap
 msgid "{Data Type} openntpd-configuration"
 msgstr "{Type de données} openntpd-configuration"
 
 #. type: item
-#: doc/guix.texi:12801
+#: doc/guix.texi:16033
 #, no-wrap
 msgid "@code{openntpd} (default: @code{(file-append openntpd \"/sbin/ntpd\")})"
 msgstr "@code{openntpd} (par défaut : @code{(file-append openntpd \"/sbin/ntpd\")})"
 
 #. type: table
-#: doc/guix.texi:12803
+#: doc/guix.texi:16035
 msgid "The openntpd executable to use."
 msgstr "L'exécutable openntpd à utiliser."
 
 #. type: item
-#: doc/guix.texi:12803
+#: doc/guix.texi:16035
 #, no-wrap
 msgid "@code{listen-on} (default: @code{'(\"127.0.0.1\" \"::1\")})"
 msgstr "@code{listen-on} (par défaut : @code{'(\"127.0.0.1\" \"::1\")})"
 
 #. type: table
-#: doc/guix.texi:12805
+#: doc/guix.texi:16037
 msgid "A list of local IP addresses or hostnames the ntpd daemon should listen on."
 msgstr "Une liste d'adresses IP locales ou de noms d'hôtes que devrait écouter le démon ntpd."
 
 #. type: item
-#: doc/guix.texi:12805
+#: doc/guix.texi:16037
 #, no-wrap
 msgid "@code{query-from} (default: @code{'()})"
 msgstr "@code{query-from} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:12807
+#: doc/guix.texi:16039
 msgid "A list of local IP address the ntpd daemon should use for outgoing queries."
 msgstr "Une liste d'adresses IP que le démon devrait utiliser pour les requêtes sortantes."
 
 #. type: item
-#: doc/guix.texi:12807
+#: doc/guix.texi:16039
 #, no-wrap
 msgid "@code{sensor} (default: @code{'()})"
 msgstr "@code{sensor} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:12812
+#: doc/guix.texi:16044
 msgid "Specify a list of timedelta sensor devices ntpd should use.  @code{ntpd} will listen to each sensor that actually exists and ignore non-existent ones.  See @uref{https://man.openbsd.org/ntpd.conf, upstream documentation} for more information."
 msgstr "Spécifie une liste de senseurs de différences de temps que ntpd devrait utiliser.  @code{ntpd} écoutera chaque senseur qui existe et ignorera ceux qui n'existent pas.  Voir @uref{https://man.openbsd.org/ntpd.conf, la documentation en amont} pour plus d'informations."
 
 #. type: item
-#: doc/guix.texi:12812
+#: doc/guix.texi:16044
 #, no-wrap
-msgid "@code{server} (default: @var{%ntp-servers})"
-msgstr "@code{server} (par défaut : @var{%ntp-servers})"
+msgid "@code{server} (default: @code{'()})"
+msgstr "@code{server} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:12814
+#: doc/guix.texi:16046
 msgid "Specify a list of IP addresses or hostnames of NTP servers to synchronize to."
 msgstr "Spécifie une liste d'adresses IP ou de noms d'hôtes de serveurs NTP avec lesquels se synchroniser."
 
 #. type: item
-#: doc/guix.texi:12814 doc/guix.texi:20029
+#: doc/guix.texi:16046
 #, no-wrap
-msgid "@code{servers} (default: @code{'()})"
-msgstr "@code{servers} (par défaut : @code{'()})"
+msgid "@code{servers} (default: @code{%openntp-servers})"
+msgstr "@code{servers} (par défaut : @code{%openntp-servers})"
 
 #. type: table
-#: doc/guix.texi:12816
+#: doc/guix.texi:16048
 msgid "Specify a list of IP addresses or hostnames of NTP pools to synchronize to."
 msgstr "Spécifie une liste d'adresses IP ou de noms d'hôtes de banques de serveurs NTP avec lesquelles se synchroniser."
 
 #. type: item
-#: doc/guix.texi:12816
+#: doc/guix.texi:16048
 #, no-wrap
 msgid "@code{constraint-from} (default: @code{'()})"
 msgstr "@code{constraint-from} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:12823
+#: doc/guix.texi:16055
 msgid "@code{ntpd} can be configured to query the ‘Date’ from trusted HTTPS servers via TLS.  This time information is not used for precision but acts as an authenticated constraint, thereby reducing the impact of unauthenticated NTP man-in-the-middle attacks.  Specify a list of URLs, IP addresses or hostnames of HTTPS servers to provide a constraint."
 msgstr "@code{ntpd} peut être configuré pour demander la « Date » à des serveurs HTTPS de confiance via TLS.  Cette information de temps n'est pas utilisée pour sa précision mais agit comme une contrainte authentifiée, ce qui réduit l'impact d'une attaque par l'homme du milieu sur le protocole NTP non authentifié.  Spécifie une liste d'URL, d'adresses IP ou de noms d'hôtes de serveurs HTTPS qui fournissent cette contrainte."
 
 #. type: item
-#: doc/guix.texi:12823
+#: doc/guix.texi:16055
 #, no-wrap
 msgid "@code{constraints-from} (default: @code{'()})"
 msgstr "@code{constraints-from} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:12827
+#: doc/guix.texi:16059
 msgid "As with constraint from, specify a list of URLs, IP addresses or hostnames of HTTPS servers to provide a constraint.  Should the hostname resolve to multiple IP addresses, @code{ntpd} will calculate a median constraint from all of them."
 msgstr "Comme pour @code{constraint-from}, spécifie une liste d'URL, d'adresses IP ou de noms d'hôtes de serveurs HTTPS qui fournissent une contrainte.  Si les noms d'hôtes sont résolus en plusieurs adresses IP, @code{ntpd} calculera la contrainte médiane."
 
+#. type: item
+#: doc/guix.texi:16059
+#, no-wrap
+msgid "@code{allow-large-adjustment?} (default: @code{#f})"
+msgstr "@code{allow-large-adjustment?} (par défaut : @code{#f})"
+
 #. type: table
-#: doc/guix.texi:12830
+#: doc/guix.texi:16062
 msgid "Determines if @code{ntpd} is allowed to make an initial adjustment of more than 180 seconds."
 msgstr "Détermine si @code{ntpd} peut faire un ajustement initial de plus de 180 secondes."
 
 #. type: cindex
-#: doc/guix.texi:12833
+#: doc/guix.texi:16065
 #, no-wrap
 msgid "inetd"
 msgstr "inetd"
 
 #. type: deffn
-#: doc/guix.texi:12834
+#: doc/guix.texi:16066
 #, no-wrap
 msgid "{Scheme variable} inetd-service-type"
 msgstr "{Variable Scheme} inetd-service-type"
 
 #. type: deffn
-#: doc/guix.texi:12839
+#: doc/guix.texi:16071
 msgid "This service runs the @command{inetd} (@pxref{inetd invocation,,, inetutils, GNU Inetutils}) daemon.  @command{inetd} listens for connections on internet sockets, and lazily starts the specified server program when a connection is made on one of these sockets."
 msgstr "Ce service lance le démon @command{inetd} (@pxref{inetd invocation,,, inetutils, GNU Inetutils}).  @command{inetd} écoute des connexions sur des sockets internet et démarre le programme spécifié uniquement lorsqu'une connexion arrive sur l'un de ces sockets."
 
 #. type: deffn
-#: doc/guix.texi:12845
+#: doc/guix.texi:16077
 msgid "The value of this service is an @code{inetd-configuration} object.  The following example configures the @command{inetd} daemon to provide the built-in @command{echo} service, as well as an smtp service which forwards smtp traffic over ssh to a server @code{smtp-server} behind a gateway @code{hostname}:"
 msgstr "La valeur de ce service est un objet @code{inetd-configuration}.  L'exemple suivant configure le démon @command{inetd} pour qu'il fournisse le service @command{echo}, ainsi qu'un service smtp qui transfère le trafic smtp par ssh à un serveur @code{smtp-server} derrière une passerelle @code{hostname} :"
 
-#. type: example
-#: doc/guix.texi:12868
+#. type: lisp
+#: doc/guix.texi:16100
 #, no-wrap
 msgid ""
 "(service\n"
@@ -23644,7 +29493,7 @@ msgid ""
 "             (program (file-append openssh \"/bin/ssh\"))\n"
 "             (arguments\n"
 "              '(\"ssh\" \"-qT\" \"-i\" \"/path/to/ssh_key\"\n"
-"                \"-W\" \"smtp-server:25\" \"user@@hostname\")))))\n"
+"                \"-W\" \"smtp-server:25\" \"user@@hostname\")))))))\n"
 msgstr ""
 "(service\n"
 " inetd-service-type\n"
@@ -23665,224 +29514,224 @@ msgstr ""
 "             (user \"root\")\n"
 "             (program (file-append openssh \"/bin/ssh\"))\n"
 "             (arguments\n"
-"              '(\"ssh\" \"-qT\" \"-i\" \"/path/to/ssh_key\"\n"
-"                \"-W\" \"smtp-server:25\" \"user@@hostname\")))))\n"
+"              '(\"ssh\" \"-qT\" \"-i\" \"/chemin/vers/ssh_key\"\n"
+"                \"-W\" \"smtp-server:25\" \"user@@hostname\")))))))\n"
 
 #. type: deffn
-#: doc/guix.texi:12871
+#: doc/guix.texi:16103
 msgid "See below for more details about @code{inetd-configuration}."
 msgstr "Voir plus bas pour plus de détails sur @code{inetd-configuration}."
 
 #. type: deftp
-#: doc/guix.texi:12873
+#: doc/guix.texi:16105
 #, no-wrap
 msgid "{Data Type} inetd-configuration"
 msgstr "{Type de données} inetd-configuration"
 
 #. type: deftp
-#: doc/guix.texi:12875
+#: doc/guix.texi:16107
 msgid "Data type representing the configuration of @command{inetd}."
 msgstr "Type de données représentant la configuration de @command{inetd}."
 
 #. type: item
-#: doc/guix.texi:12877
+#: doc/guix.texi:16109
 #, no-wrap
 msgid "@code{program} (default: @code{(file-append inetutils \"/libexec/inetd\")})"
 msgstr "@code{program} (par défaut : @code{(file-append inetutils \"/libexec/inetd\")})"
 
 #. type: table
-#: doc/guix.texi:12879
+#: doc/guix.texi:16111
 msgid "The @command{inetd} executable to use."
 msgstr "L'exécutable @command{inetd} à utiliser."
 
 #. type: item
-#: doc/guix.texi:12880 doc/guix.texi:19683
+#: doc/guix.texi:16112 doc/guix.texi:24146
 #, no-wrap
 msgid "@code{entries} (default: @code{'()})"
 msgstr "@code{entries} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:12883
+#: doc/guix.texi:16115
 msgid "A list of @command{inetd} service entries.  Each entry should be created by the @code{inetd-entry} constructor."
 msgstr "Une liste d'entrées de services @command{inetd}.  Chaque entrée devrait être crée avec le constructeur @code{inetd-entry}."
 
 #. type: deftp
-#: doc/guix.texi:12886
+#: doc/guix.texi:16118
 #, no-wrap
 msgid "{Data Type} inetd-entry"
 msgstr "{Type de données} inetd-entry"
 
 #. type: deftp
-#: doc/guix.texi:12890
+#: doc/guix.texi:16122
 msgid "Data type representing an entry in the @command{inetd} configuration.  Each entry corresponds to a socket where @command{inetd} will listen for requests."
 msgstr "Type de données représentant une entrée dans la configuration d'@command{inetd}.  Chaque entrée correspond à un socket sur lequel @command{inetd} écoutera les requêtes."
 
 #. type: item
-#: doc/guix.texi:12892
+#: doc/guix.texi:16124
 #, no-wrap
 msgid "@code{node} (default: @code{#f})"
 msgstr "@code{node} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:12897
+#: doc/guix.texi:16129
 msgid "Optional string, a comma-separated list of local addresses @command{inetd} should use when listening for this service.  @xref{Configuration file,,, inetutils, GNU Inetutils} for a complete description of all options."
 msgstr "Chaîne de caractères facultative, un liste d'adresses locales séparées par des virgules que @command{inetd} devrait utiliser pour écouter ce service.  @xref{Configuration file,,, inetutils, GNU Inetutils} pour une description complète de toutes les options."
 
 #. type: table
-#: doc/guix.texi:12899
+#: doc/guix.texi:16131
 msgid "A string, the name must correspond to an entry in @code{/etc/services}."
 msgstr "Une chaîne de caractères dont le nom doit correspondre à une entrée de @code{/etc/services}."
 
 #. type: code{#1}
-#: doc/guix.texi:12899
+#: doc/guix.texi:16131
 #, no-wrap
 msgid "socket-type"
 msgstr "socket-type"
 
 #. type: table
-#: doc/guix.texi:12902
+#: doc/guix.texi:16134
 msgid "One of @code{'stream}, @code{'dgram}, @code{'raw}, @code{'rdm} or @code{'seqpacket}."
 msgstr "Un symbole parmi @code{'stream}, @code{'dgram}, @code{'raw}, @code{'rdm} ou @code{'seqpacket}."
 
 #. type: code{#1}
-#: doc/guix.texi:12902
+#: doc/guix.texi:16134
 #, no-wrap
 msgid "protocol"
 msgstr "protocol"
 
 #. type: table
-#: doc/guix.texi:12904
+#: doc/guix.texi:16136
 msgid "A string, must correspond to an entry in @code{/etc/protocols}."
 msgstr "Une chaîne de caractères qui doit correspondre à une entrée dans @code{/etc/protocols}."
 
 #. type: item
-#: doc/guix.texi:12904
+#: doc/guix.texi:16136
 #, no-wrap
 msgid "@code{wait?} (default: @code{#t})"
 msgstr "@code{wait?} (par défaut : @code{#t})"
 
 #. type: table
-#: doc/guix.texi:12907
+#: doc/guix.texi:16139
 msgid "Whether @command{inetd} should wait for the server to exit before listening to new service requests."
 msgstr "Indique si @command{inetd} devrait attendre que le serveur ait quitté avant d'écouter de nouvelles demandes de service."
 
 #. type: table
-#: doc/guix.texi:12912
+#: doc/guix.texi:16144
 msgid "A string containing the user (and, optionally, group) name of the user as whom the server should run.  The group name can be specified in a suffix, separated by a colon or period, i.e.@: @code{\"user\"}, @code{\"user:group\"} or @code{\"user.group\"}."
 msgstr "Une chaîne de caractères contenant le nom d'utilisateur (et éventuellement de groupe) de l'utilisateur en tant que lequel le serveur devrait tourner.  Le nom du groupe peut être spécifié comme un suffixe, séparé par un deux-points ou un point, c.-à-d.@: @code{\"utilisateur\"}, @code{\"utilisateur:groupe\"} ou @code{\"utilisateur.groupe\"}."
 
 #. type: item
-#: doc/guix.texi:12912
+#: doc/guix.texi:16144
 #, no-wrap
 msgid "@code{program} (default: @code{\"internal\"})"
 msgstr "@code{program} (par défaut : @code{\"internal\"})"
 
 #. type: table
-#: doc/guix.texi:12915
+#: doc/guix.texi:16147
 msgid "The server program which will serve the requests, or @code{\"internal\"} if @command{inetd} should use a built-in service."
 msgstr "Le programme du serveur qui servira les requêtes, ou @code{\"internal\"} si @command{inetd} devrait utiliser un service inclus."
 
 #. type: table
-#: doc/guix.texi:12920
+#: doc/guix.texi:16152
 msgid "A list strings or file-like objects, which are the server program's arguments, starting with the zeroth argument, i.e.@: the name of the program itself.  For @command{inetd}'s internal services, this entry must be @code{'()} or @code{'(\"internal\")}."
 msgstr "Une liste de chaînes de caractères ou d'objets simili-fichiers qui sont les arguments du programme du serveur, en commençant par le zéroième argument, c.-à-d.@: le nom du programme lui-même.  Pour les services internes à @command{inetd}, cette entrée doit être @code{'()} ou @code{'(\"internal\")}."
 
 #. type: deftp
-#: doc/guix.texi:12924
+#: doc/guix.texi:16156
 msgid "@xref{Configuration file,,, inetutils, GNU Inetutils} for a more detailed discussion of each configuration field."
 msgstr "@xref{Configuration file,,, inetutils, GNU Inetutils} pour trouver une discussion plus détaillée de chaque champ de configuration."
 
 #. type: cindex
-#: doc/guix.texi:12926
+#: doc/guix.texi:16158
 #, no-wrap
 msgid "Tor"
 msgstr "Tor"
 
 #. type: defvr
-#: doc/guix.texi:12927
+#: doc/guix.texi:16159
 #, no-wrap
 msgid "{Scheme Variable} tor-service-type"
 msgstr "{Variable Scheme} tor-service-type"
 
 #. type: defvr
-#: doc/guix.texi:12932
+#: doc/guix.texi:16164
 msgid "This is the type for a service that runs the @uref{https://torproject.org, Tor} anonymous networking daemon.  The service is configured using a @code{<tor-configuration>} record.  By default, the Tor daemon runs as the @code{tor} unprivileged user, which is a member of the @code{tor} group."
 msgstr "C'est le type pour un service qui lance le démon de navigation anonyme @uref{https://torproject.org, Tor}.  Le service est configuré avec un enregistrement @code{<tor-configuration>}.  Par défaut, le démon Tor est lancé en tant qu'utilisateur non privilégié @code{tor}, membre du groupe @code{tor}."
 
 #. type: deftp
-#: doc/guix.texi:12935
+#: doc/guix.texi:16167
 #, no-wrap
 msgid "{Data Type} tor-configuration"
 msgstr "{Type de données} tor-configuration"
 
 #. type: item
-#: doc/guix.texi:12937
+#: doc/guix.texi:16169
 #, no-wrap
 msgid "@code{tor} (default: @code{tor})"
 msgstr "@code{tor} (par défaut : @code{tor})"
 
 #. type: table
-#: doc/guix.texi:12942
+#: doc/guix.texi:16174
 msgid "The package that provides the Tor daemon.  This package is expected to provide the daemon at @file{bin/tor} relative to its output directory.  The default package is the @uref{https://www.torproject.org, Tor Project's} implementation."
 msgstr "Le paquet qui fournit le démon Tor.  Ce paquet doit fournir le démon @file{bin/tor} relativement à son répertoire de sortie.  Le paquet par défaut est le l'implémentation du @uref{https://www.torproject.org, projet Tor}."
 
 #. type: item
-#: doc/guix.texi:12943
+#: doc/guix.texi:16175
 #, no-wrap
 msgid "@code{config-file} (default: @code{(plain-file \"empty\" \"\")})"
 msgstr "@code{config-file} (par défaut : @code{(plain-file \"empty\" \"\")})"
 
 #. type: table
-#: doc/guix.texi:12949
+#: doc/guix.texi:16181
 msgid "The configuration file to use.  It will be appended to a default configuration file, and the final configuration file will be passed to @code{tor} via its @code{-f} option.  This may be any ``file-like'' object (@pxref{G-Expressions, file-like objects}).  See @code{man tor} for details on the configuration file syntax."
 msgstr "Le fichier de configuration à utiliser.  Il sera ajouté au fichier de configuration par défaut, et le fichier de configuration final sera passé à @code{tor} via son option @code{-f}.  Cela peut être n'importe quel objet « simili-fichier » (@pxref{G-Expressions, file-like objects}).  Voir @code{man tor} pour plus de détails sur la syntaxe du fichier de configuration."
 
 #. type: item
-#: doc/guix.texi:12950
+#: doc/guix.texi:16182
 #, no-wrap
 msgid "@code{hidden-services} (default: @code{'()})"
 msgstr "@code{hidden-services} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:12956
+#: doc/guix.texi:16188
 msgid "The list of @code{<hidden-service>} records to use.  For any hidden service you include in this list, appropriate configuration to enable the hidden service will be automatically added to the default configuration file.  You may conveniently create @code{<hidden-service>} records using the @code{tor-hidden-service} procedure described below."
 msgstr "La liste des enregistrements @code{<hidden-service>} à utiliser.  Pour n'importe quel service cache que vous ajoutez à cette liste, la configuration appropriée pour activer le service caché sera automatiquement ajouté au fichier de configuration par défaut.  Vous pouvez aussi créer des enregistrements @code{<hidden-service>} avec la procédure @code{tor-hidden-service} décrite plus bas."
 
 #. type: item
-#: doc/guix.texi:12957
+#: doc/guix.texi:16189
 #, no-wrap
 msgid "@code{socks-socket-type} (default: @code{'tcp})"
 msgstr "@code{socks-socket-type} (par défaut : @code{'tcp})"
 
 #. type: table
-#: doc/guix.texi:12964
+#: doc/guix.texi:16196
 msgid "The default socket type that Tor should use for its SOCKS socket.  This must be either @code{'tcp} or @code{'unix}.  If it is @code{'tcp}, then by default Tor will listen on TCP port 9050 on the loopback interface (i.e., localhost).  If it is @code{'unix}, then Tor will listen on the UNIX domain socket @file{/var/run/tor/socks-sock}, which will be made writable by members of the @code{tor} group."
 msgstr "Le type de socket par défaut que Tor devrait utiliser pour les socket SOCKS.  Cela doit être soit @code{'tcp} soit @code{'unix}.  S'il s'agit de @code{'tcp}, alors Tor écoutera pas défaut sur le port TCP 9050 sur l'interface de boucle locale (c.-à-d.@: localhost).  S'il s'agit de @code{'unix}, Tor écoutera sur le socket UNIX domain @file{/var/run/tor/socks-sock}, qui sera inscriptible pour les membres du groupe @code{tor}."
 
 #. type: table
-#: doc/guix.texi:12969
+#: doc/guix.texi:16201
 msgid "If you want to customize the SOCKS socket in more detail, leave @code{socks-socket-type} at its default value of @code{'tcp} and use @code{config-file} to override the default by providing your own @code{SocksPort} option."
 msgstr "Si vous voulez personnaliser le socket SOCKS plus avant, laissez @code{socks-socket-type} à sa valeur par défaut de @code{'tcp} et utilisez @code{config-file} pour remplacer les valeurs par défaut avec votre propre option @code{SocksPort}."
 
 #. type: cindex
-#: doc/guix.texi:12972
+#: doc/guix.texi:16204
 #, no-wrap
 msgid "hidden service"
 msgstr "service caché"
 
 #. type: deffn
-#: doc/guix.texi:12973
+#: doc/guix.texi:16205
 #, no-wrap
 msgid "{Scheme Procedure} tor-hidden-service @var{name} @var{mapping}"
 msgstr "{Procédure Scheme} tor-hidden-service @var{name} @var{mapping}"
 
 #. type: deffn
-#: doc/guix.texi:12976
+#: doc/guix.texi:16208
 msgid "Define a new Tor @dfn{hidden service} called @var{name} and implementing @var{mapping}.  @var{mapping} is a list of port/host tuples, such as:"
 msgstr "Définie un @dfn{service caché} pour Tor nommé @var{name} qui implémente @var{mapping}.  @var{mapping} est une liste de paires de port et d'hôte, comme dans :"
 
 #. type: example
-#: doc/guix.texi:12980
+#: doc/guix.texi:16212
 #, no-wrap
 msgid ""
 " '((22 \"127.0.0.1:22\")\n"
@@ -23892,242 +29741,242 @@ msgstr ""
 "   (80 \"127.0.0.1:8080\"))\n"
 
 #. type: deffn
-#: doc/guix.texi:12984
+#: doc/guix.texi:16216
 msgid "In this example, port 22 of the hidden service is mapped to local port 22, and port 80 is mapped to local port 8080."
 msgstr "Dans cet exemple, le port 22 du service caché est relié au port local 22 et le port 80 est relié au port local 8080."
 
 #. type: deffn
-#: doc/guix.texi:12988
+#: doc/guix.texi:16220
 msgid "This creates a @file{/var/lib/tor/hidden-services/@var{name}} directory, where the @file{hostname} file contains the @code{.onion} host name for the hidden service."
 msgstr "Cela crée un répertoire @file{/var/lib/tor/hidden-services/@var{name}} où le fichier @file{hostname} contient le nom d'hôte @code{.onion} pour le service caché."
 
 #. type: deffn
-#: doc/guix.texi:12991
+#: doc/guix.texi:16223
 msgid "See @uref{https://www.torproject.org/docs/tor-hidden-service.html.en, the Tor project's documentation} for more information."
 msgstr "Voir @uref{https://www.torproject.org/docs/tor-hidden-service.html.en, the Tor project's documentation} pour trouver plus d'information."
 
 #. type: Plain text
-#: doc/guix.texi:12994
+#: doc/guix.texi:16226
 msgid "The @code{(gnu services rsync)} module provides the following services:"
 msgstr "Le module @code{(gnu services rsync)} fournit les services suivant :"
 
 #. type: Plain text
-#: doc/guix.texi:12998
+#: doc/guix.texi:16230
 msgid "You might want an rsync daemon if you have files that you want available so anyone (or just yourself) can download existing files or upload new files."
 msgstr "Vous pourriez vouloir un démon rsync si vous voulez que des fichiers soient disponibles pour que n'importe qui (ou juste vous) puisse télécharger des fichiers existants ou en téléverser des nouveaux."
 
 #. type: deffn
-#: doc/guix.texi:12999
+#: doc/guix.texi:16231
 #, no-wrap
 msgid "{Scheme Variable} rsync-service-type"
 msgstr "{Variable Scheme} rsync-service-type"
 
 #. type: deffn
-#: doc/guix.texi:13003
+#: doc/guix.texi:16235
 msgid "This is the service type for the @uref{https://rsync.samba.org, rsync} daemon, The value for this service type is a @command{rsync-configuration} record as in this example:"
 msgstr "C'est le type pour le démon @uref{https://rsync.samba.org, rsync}. La valeur de ce service est un enregistrement @command{rsync-configuration} comme dans cet exemple :"
 
-#. type: example
-#: doc/guix.texi:13006
+#. type: lisp
+#: doc/guix.texi:16238
 #, no-wrap
 msgid "(service rsync-service-type)\n"
 msgstr "(service rsync-service-type)\n"
 
 #. type: deffn
-#: doc/guix.texi:13009
+#: doc/guix.texi:16241
 msgid "See below for details about @code{rsync-configuration}."
 msgstr "Voir plus pas pour trouver des détails à propos de @code{rsync-configuration}."
 
 #. type: deftp
-#: doc/guix.texi:13011
+#: doc/guix.texi:16243
 #, no-wrap
 msgid "{Data Type} rsync-configuration"
 msgstr "{Type de données} rsync-configuration"
 
 #. type: deftp
-#: doc/guix.texi:13013
+#: doc/guix.texi:16245
 msgid "Data type representing the configuration for @code{rsync-service}."
 msgstr "Type de données représentant la configuration de @code{rsync-service}."
 
 #. type: item
-#: doc/guix.texi:13015
+#: doc/guix.texi:16247
 #, no-wrap
 msgid "@code{package} (default: @var{rsync})"
 msgstr "@code{package} (par défaut : @var{rsync})"
 
 #. type: table
-#: doc/guix.texi:13017
+#: doc/guix.texi:16249
 msgid "@code{rsync} package to use."
 msgstr "Le paquet @code{rsync} à utiliser."
 
 #. type: item
-#: doc/guix.texi:13018
+#: doc/guix.texi:16250
 #, no-wrap
 msgid "@code{port-number} (default: @code{873})"
 msgstr "@code{port-number} (par défaut : @code{873})"
 
 #. type: table
-#: doc/guix.texi:13022
+#: doc/guix.texi:16254
 msgid "TCP port on which @command{rsync} listens for incoming connections.  If port is less than @code{1024} @command{rsync} needs to be started as the @code{root} user and group."
 msgstr "Le port TCP sur lequel @command{rsync} écoute les connexions entrantes.  Si le port est inférieur à @code{1024}, @command{rsync} doit être démarré en tant qu'utilisateur et groupe @code{root}."
 
 #. type: item
-#: doc/guix.texi:13023
+#: doc/guix.texi:16255
 #, no-wrap
 msgid "@code{pid-file} (default: @code{\"/var/run/rsyncd/rsyncd.pid\"})"
 msgstr "@code{pid-file} (par défaut : @code{\"/var/run/rsyncd/rsyncd.pid\"})"
 
 #. type: table
-#: doc/guix.texi:13025
+#: doc/guix.texi:16257
 msgid "Name of the file where @command{rsync} writes its PID."
 msgstr "Nom du fichier où @command{rsync} écrit son PID."
 
 #. type: item
-#: doc/guix.texi:13026
+#: doc/guix.texi:16258
 #, no-wrap
 msgid "@code{lock-file} (default: @code{\"/var/run/rsyncd/rsyncd.lock\"})"
 msgstr "@code{lock-file} (par défaut : @code{\"/var/run/rsyncd/rsyncd.lock\"})"
 
 #. type: table
-#: doc/guix.texi:13028
+#: doc/guix.texi:16260
 msgid "Name of the file where @command{rsync} writes its lock file."
 msgstr "Nom du fichier où @command{rsync} écrit son fichier de verrouillage."
 
 #. type: item
-#: doc/guix.texi:13029
+#: doc/guix.texi:16261
 #, no-wrap
 msgid "@code{log-file} (default: @code{\"/var/log/rsyncd.log\"})"
 msgstr "@code{log-file} (par défaut : @code{\"/var/log/rsyncd.log\"})"
 
 #. type: table
-#: doc/guix.texi:13031
+#: doc/guix.texi:16263 doc/guix.texi:16700
 msgid "Name of the file where @command{rsync} writes its log file."
 msgstr "Nom du fichier où @command{rsync} écrit son fichier de journal."
 
 #. type: item
-#: doc/guix.texi:13032
+#: doc/guix.texi:16264
 #, no-wrap
 msgid "@code{use-chroot?} (default: @var{#t})"
 msgstr "@code{use-chroot?} (par défaut : @var{#t})"
 
 #. type: table
-#: doc/guix.texi:13034
+#: doc/guix.texi:16266
 msgid "Whether to use chroot for @command{rsync} shared directory."
 msgstr "S'il faut utiliser un chroot pour le répertoire partagé de @command{rsync}."
 
 #. type: item
-#: doc/guix.texi:13035
+#: doc/guix.texi:16267
 #, no-wrap
 msgid "@code{share-path} (default: @file{/srv/rsync})"
 msgstr "@code{share-path} (par défaut : @file{/srv/rsync})"
 
 #. type: table
-#: doc/guix.texi:13037
+#: doc/guix.texi:16269
 msgid "Location of the @command{rsync} shared directory."
 msgstr "Emplacement du répertoire partagé de @command{rsync}."
 
 #. type: item
-#: doc/guix.texi:13038
+#: doc/guix.texi:16270
 #, no-wrap
 msgid "@code{share-comment} (default: @code{\"Rsync share\"})"
 msgstr "@code{share-comment} (par défaut : @code{\"Rsync share\"})"
 
 #. type: table
-#: doc/guix.texi:13040
+#: doc/guix.texi:16272
 msgid "Comment of the @command{rsync} shared directory."
 msgstr "Commentaire du répertoire partagé de @command{rsync}."
 
 #. type: item
-#: doc/guix.texi:13041
+#: doc/guix.texi:16273
 #, no-wrap
 msgid "@code{read-only?} (default: @var{#f})"
 msgstr "@code{read-only?} (par défaut : @var{#f})"
 
 #. type: table
-#: doc/guix.texi:13043
+#: doc/guix.texi:16275
 msgid "Read-write permissions to shared directory."
 msgstr "Permission en écriture sur le répertoire partagé."
 
 #. type: item
-#: doc/guix.texi:13044
+#: doc/guix.texi:16276
 #, no-wrap
 msgid "@code{timeout} (default: @code{300})"
 msgstr "@code{timeout} (par défaut : @code{300})"
 
 #. type: table
-#: doc/guix.texi:13046
+#: doc/guix.texi:16278
 msgid "I/O timeout in seconds."
 msgstr "Délai d'attente d'entrée-sortie en secondes."
 
 #. type: item
-#: doc/guix.texi:13047
+#: doc/guix.texi:16279
 #, no-wrap
 msgid "@code{user} (default: @var{\"root\"})"
 msgstr "@code{user} (par défaut : @var{\"root\"})"
 
 #. type: table
-#: doc/guix.texi:13049
+#: doc/guix.texi:16281
 msgid "Owner of the @code{rsync} process."
 msgstr "Propriétaire du processus @code{rsync}."
 
 #. type: item
-#: doc/guix.texi:13050
+#: doc/guix.texi:16282
 #, no-wrap
 msgid "@code{group} (default: @var{\"root\"})"
 msgstr "@code{group} (par défaut : @var{\"root\"})"
 
 #. type: table
-#: doc/guix.texi:13052
+#: doc/guix.texi:16284
 msgid "Group of the @code{rsync} process."
 msgstr "Groupe du processus @code{rsync}."
 
 #. type: item
-#: doc/guix.texi:13053
+#: doc/guix.texi:16285
 #, no-wrap
 msgid "@code{uid} (default: @var{\"rsyncd\"})"
 msgstr "@code{uid} (par défaut : @var{\"rsyncd\"})"
 
 #. type: table
-#: doc/guix.texi:13056
+#: doc/guix.texi:16288
 msgid "User name or user ID that file transfers to and from that module should take place as when the daemon was run as @code{root}."
 msgstr "Nom d'utilisateur ou ID utilisateur en tant que lequel les transferts de fichiers ont lieu si le démon a été lancé en @code{root}."
 
 #. type: item
-#: doc/guix.texi:13057
+#: doc/guix.texi:16289
 #, no-wrap
 msgid "@code{gid} (default: @var{\"rsyncd\"})"
 msgstr "@code{gid} (par défaut : @var{\"rsyncd\"})"
 
 #. type: table
-#: doc/guix.texi:13059
+#: doc/guix.texi:16291 doc/guix.texi:16685
 msgid "Group name or group ID that will be used when accessing the module."
 msgstr "Nom du groupe ou ID du groupe qui sera utilisé lors de l'accès au module."
 
 #. type: Plain text
-#: doc/guix.texi:13064
+#: doc/guix.texi:16296
 msgid "Furthermore, @code{(gnu services ssh)} provides the following services."
 msgstr "En plus, @code{(gnu services ssh)} fournit les services suivant."
 
 #. type: cindex
-#: doc/guix.texi:13064 doc/guix.texi:13103 doc/guix.texi:24768
+#: doc/guix.texi:16296 doc/guix.texi:16335 doc/guix.texi:31468
 #, no-wrap
 msgid "SSH"
 msgstr "SSH"
 
 #. type: cindex
-#: doc/guix.texi:13065 doc/guix.texi:13104 doc/guix.texi:24769
+#: doc/guix.texi:16297 doc/guix.texi:16336 doc/guix.texi:31469
 #, no-wrap
 msgid "SSH server"
-msgstr "serveur SSH"
+msgstr "Serveur SSH"
 
 #. type: deffn
-#: doc/guix.texi:13067
+#: doc/guix.texi:16299
 #, no-wrap
 msgid "{Scheme Procedure} lsh-service [#:host-key \"/etc/lsh/host-key\"] @"
 msgstr "{Procédure Scheme} lsh-service [#:host-key \"/etc/lsh/host-key\"] @"
 
 #. type: deffn
-#: doc/guix.texi:13076
+#: doc/guix.texi:16308
 msgid "[#:daemonic? #t] [#:interfaces '()] [#:port-number 22] @ [#:allow-empty-passwords? #f] [#:root-login? #f] @ [#:syslog-output? #t] [#:x11-forwarding? #t] @ [#:tcp/ip-forwarding? #t] [#:password-authentication? #t] @ [#:public-key-authentication? #t] [#:initialize? #t] Run the @command{lshd} program from @var{lsh} to listen on port @var{port-number}.  @var{host-key} must designate a file containing the host key, and readable only by root."
 msgstr ""
 "[#:daemonic? #t] [#:interfaces '()] [#:port-number 22] @\n"
@@ -24138,48 +29987,48 @@ msgstr ""
 "Lance le programme @command{lshd} de @var{lsh} pour écouter sur le port @var{port-number}.  @var{host-key} doit désigner un fichier contenant la clef d'hôte et ne doit être lisible que par root."
 
 #. type: deffn
-#: doc/guix.texi:13082
+#: doc/guix.texi:16314
 msgid "When @var{daemonic?} is true, @command{lshd} will detach from the controlling terminal and log its output to syslogd, unless one sets @var{syslog-output?} to false.  Obviously, it also makes lsh-service depend on existence of syslogd service.  When @var{pid-file?} is true, @command{lshd} writes its PID to the file called @var{pid-file}."
 msgstr "Lorsque @var{daemonic?} est vrai, @command{lshd} se détachera du terminal qui le contrôle et enregistrera ses journaux avec syslogd, à moins que @var{syslog-output?} ne soit faux.  Évidemment, cela rend aussi lsh-service dépendant de l'existence d'un service syslogd.  Lorsque @var{pid-file?} est vrai, @command{lshd} écrit son PID dans le fichier @var{pid-file}."
 
 #. type: deffn
-#: doc/guix.texi:13086
+#: doc/guix.texi:16318
 msgid "When @var{initialize?} is true, automatically create the seed and host key upon service activation if they do not exist yet.  This may take long and require interaction."
 msgstr "Lorsque @var{initialize?} est vrai, la graine et la clef d'hôte seront créés lors de l'activation du service s'ils n'existent pas encore.  Cela peut prendre du temps et demande une interaction."
 
 #. type: deffn
-#: doc/guix.texi:13091
+#: doc/guix.texi:16323
 msgid "When @var{initialize?} is false, it is up to the user to initialize the randomness generator (@pxref{lsh-make-seed,,, lsh, LSH Manual}), and to create a key pair with the private key stored in file @var{host-key} (@pxref{lshd basics,,, lsh, LSH Manual})."
 msgstr "Lorsque @var{initialize?} est faux, c'est à l'utilisateur d'initialiser le générateur d'aléatoire (@pxref{lsh-make-seed,,, lsh, LSH Manual}) et de crée une paire de clefs dont la clef privée sera stockée dans le fichier @var{host-key} (@pxref{lshd basics,,, lsh, LSH Manual})."
 
 #. type: deffn
-#: doc/guix.texi:13095
+#: doc/guix.texi:16327
 msgid "When @var{interfaces} is empty, lshd listens for connections on all the network interfaces; otherwise, @var{interfaces} must be a list of host names or addresses."
 msgstr "Lorsque @var{interfaces} est vide, lshd écoute les connexions sur toutes les interfaces réseau ; autrement, @var{interfaces} doit être une liste de noms d'hôtes et d'adresses."
 
 #. type: deffn
-#: doc/guix.texi:13099
+#: doc/guix.texi:16331
 msgid "@var{allow-empty-passwords?} specifies whether to accept log-ins with empty passwords, and @var{root-login?} specifies whether to accept log-ins as root."
 msgstr "@var{allow-empty-passwords?} spécifie si les connexions avec des mots de passes vides sont acceptés et @var{root-login?} spécifie si la connexion en root est acceptée."
 
 #. type: deffn
-#: doc/guix.texi:13101
+#: doc/guix.texi:16333
 msgid "The other options should be self-descriptive."
 msgstr "Les autres options devraient être évidentes."
 
 #. type: deffn
-#: doc/guix.texi:13105
+#: doc/guix.texi:16337
 #, no-wrap
 msgid "{Scheme Variable} openssh-service-type"
 msgstr "{Variable Scheme} openssh-service-type"
 
 #. type: deffn
-#: doc/guix.texi:13109
+#: doc/guix.texi:16341
 msgid "This is the type for the @uref{http://www.openssh.org, OpenSSH} secure shell daemon, @command{sshd}.  Its value must be an @code{openssh-configuration} record as in this example:"
 msgstr "C'est le type pour le démon ssh @uref{http://www.openssh.org, OpenSSH}, @command{sshd}.  Sa valeur doit être un enregistrement @code{openssh-configuration} comme dans cet exemple :"
 
-#. type: example
-#: doc/guix.texi:13118
+#. type: lisp
+#: doc/guix.texi:16350
 #, no-wrap
 msgid ""
 "(service openssh-service-type\n"
@@ -24199,17 +30048,17 @@ msgstr ""
 "               (\"bob\" ,(local-file \"bob.pub\"))))))\n"
 
 #. type: deffn
-#: doc/guix.texi:13121
+#: doc/guix.texi:16353
 msgid "See below for details about @code{openssh-configuration}."
 msgstr "Voir plus bas pour trouver des détails sur @code{openssh-configuration}."
 
 #. type: deffn
-#: doc/guix.texi:13124
+#: doc/guix.texi:16356
 msgid "This service can be extended with extra authorized keys, as in this example:"
 msgstr "Ce service peut être étendu avec des clefs autorisées supplémentaires, comme dans cet exemple :"
 
-#. type: example
-#: doc/guix.texi:13129
+#. type: lisp
+#: doc/guix.texi:16361
 #, no-wrap
 msgid ""
 "(service-extension openssh-service-type\n"
@@ -24221,192 +30070,203 @@ msgstr ""
 "                             ,(local-file \"charlie.pub\")))))\n"
 
 #. type: deftp
-#: doc/guix.texi:13132
+#: doc/guix.texi:16364
 #, no-wrap
 msgid "{Data Type} openssh-configuration"
 msgstr "{Type de données} openssh-configuration"
 
 #. type: deftp
-#: doc/guix.texi:13134
+#: doc/guix.texi:16366
 msgid "This is the configuration record for OpenSSH's @command{sshd}."
 msgstr "C'est l'enregistrement de la configuration de la commande @command{sshd} d'OpenSSH."
 
 #. type: item
-#: doc/guix.texi:13136
+#: doc/guix.texi:16368
+#, no-wrap
+msgid "@code{openssh} (default @var{openssh})"
+msgstr "@code{openssh} (par défaut : @var{openssh})"
+
+#. type: table
+#: doc/guix.texi:16370
+msgid "The Openssh package to use."
+msgstr "Le paquet Openssh à utiliser."
+
+#. type: item
+#: doc/guix.texi:16371
 #, no-wrap
 msgid "@code{pid-file} (default: @code{\"/var/run/sshd.pid\"})"
 msgstr "@code{pid-file} (par défaut : @code{\"/var/run/sshd.pid\"})"
 
 #. type: table
-#: doc/guix.texi:13138
+#: doc/guix.texi:16373
 msgid "Name of the file where @command{sshd} writes its PID."
 msgstr "Nom du fichier où @command{sshd} écrit son PID."
 
 #. type: item
-#: doc/guix.texi:13139
+#: doc/guix.texi:16374
 #, no-wrap
 msgid "@code{port-number} (default: @code{22})"
 msgstr "@code{port-number} (par défaut : @code{22})"
 
 #. type: table
-#: doc/guix.texi:13141
+#: doc/guix.texi:16376
 msgid "TCP port on which @command{sshd} listens for incoming connections."
 msgstr "Port TCP sur lequel @command{sshd} écoute les connexions entrantes."
 
 #. type: item
-#: doc/guix.texi:13142
+#: doc/guix.texi:16377
 #, no-wrap
 msgid "@code{permit-root-login} (default: @code{#f})"
 msgstr "@code{permit-root-login} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:13147
+#: doc/guix.texi:16382
 msgid "This field determines whether and when to allow logins as root.  If @code{#f}, root logins are disallowed; if @code{#t}, they are allowed.  If it's the symbol @code{'without-password}, then root logins are permitted but not with password-based authentication."
 msgstr "Ce champ détermine si et quand autoriser les connexions en root.  Si la valeur est @code{#f}, les connexions en root sont désactivées ; si la valeur est @code{#t}, elles sont autorisées.  S'il s'agit du symbole @code{'without-password}, alors les connexions root sont autorisées mais pas par une authentification par mot de passe."
 
 #. type: item
-#: doc/guix.texi:13148 doc/guix.texi:13309
+#: doc/guix.texi:16383 doc/guix.texi:16544
 #, no-wrap
 msgid "@code{allow-empty-passwords?} (default: @code{#f})"
 msgstr "@code{allow-empty-passwords?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:13151
+#: doc/guix.texi:16386
 msgid "When true, users with empty passwords may log in.  When false, they may not."
 msgstr "Lorsque la valeur est vraie, les utilisateurs avec un mot de passe vide peuvent se connecter.  Sinon, ils ne peuvent pas."
 
 #. type: item
-#: doc/guix.texi:13152 doc/guix.texi:13312
+#: doc/guix.texi:16387 doc/guix.texi:16547
 #, no-wrap
 msgid "@code{password-authentication?} (default: @code{#t})"
 msgstr "@code{password-authentication?} (par défaut : @code{#t})"
 
 #. type: table
-#: doc/guix.texi:13155
+#: doc/guix.texi:16390
 msgid "When true, users may log in with their password.  When false, they have other authentication methods."
 msgstr "Lorsque la valeur est vraie, les utilisateurs peuvent se connecter avec leur mot de passe.  Sinon, ils doivent utiliser une autre méthode d'authentification."
 
 #. type: item
-#: doc/guix.texi:13156
+#: doc/guix.texi:16391
 #, no-wrap
 msgid "@code{public-key-authentication?} (default: @code{#t})"
 msgstr "@code{public-key-authentication?} (par défaut : @code{#t})"
 
 #. type: table
-#: doc/guix.texi:13159
+#: doc/guix.texi:16394
 msgid "When true, users may log in using public key authentication.  When false, users have to use other authentication method."
 msgstr "Lorsque la valeur est vraie, les utilisateurs peuvent se connecter avec leur clef publique.  Sinon, les utilisateurs doivent utiliser une autre méthode d'authentification."
 
 #. type: table
-#: doc/guix.texi:13162
+#: doc/guix.texi:16397
 msgid "Authorized public keys are stored in @file{~/.ssh/authorized_keys}.  This is used only by protocol version 2."
 msgstr "Les clefs publiques autorisées sont stockées dans @file{~/.ssh/authorized_keys}.  Ce n'est utilisé que par le protocole version 2."
 
 #. type: item
-#: doc/guix.texi:13163
+#: doc/guix.texi:16398
 #, no-wrap
 msgid "@code{x11-forwarding?} (default: @code{#f})"
 msgstr "@code{x11-forwarding?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:13167
+#: doc/guix.texi:16402
 msgid "When true, forwarding of X11 graphical client connections is enabled---in other words, @command{ssh} options @option{-X} and @option{-Y} will work."
 msgstr "Lorsque la valeur est vraie, le transfert de connexion du client graphique X11 est activé — en d'autre termes, les options @option{-X} et @option{-Y} de @command{ssh} fonctionneront."
 
 #. type: item
-#: doc/guix.texi:13168
+#: doc/guix.texi:16403
 #, no-wrap
 msgid "@code{allow-agent-forwarding?} (default: @code{#t})"
 msgstr "@code{allow-agent-forwarding?} (par défaut : @code{#t})"
 
 #. type: table
-#: doc/guix.texi:13170
+#: doc/guix.texi:16405
 msgid "Whether to allow agent forwarding."
 msgstr "Indique s'il faut autoriser la redirection d'agent."
 
 #. type: item
-#: doc/guix.texi:13171
+#: doc/guix.texi:16406
 #, no-wrap
 msgid "@code{allow-tcp-forwarding?} (default: @code{#t})"
 msgstr "@code{allow-tcp-forwarding?} (par défaut : @code{#t})"
 
 #. type: table
-#: doc/guix.texi:13173
+#: doc/guix.texi:16408
 msgid "Whether to allow TCP forwarding."
 msgstr "Indique s'il faut autoriser la redirection TCP."
 
 #. type: item
-#: doc/guix.texi:13174
+#: doc/guix.texi:16409
 #, no-wrap
 msgid "@code{gateway-ports?} (default: @code{#f})"
 msgstr "@code{gateway-ports?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:13176
+#: doc/guix.texi:16411
 msgid "Whether to allow gateway ports."
 msgstr "Indique s'il faut autoriser les ports de passerelle."
 
 #. type: item
-#: doc/guix.texi:13177
+#: doc/guix.texi:16412
 #, no-wrap
 msgid "@code{challenge-response-authentication?} (default: @code{#f})"
 msgstr "@code{challenge-response-authentication?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:13180
+#: doc/guix.texi:16415
 msgid "Specifies whether challenge response authentication is allowed (e.g.@: via PAM)."
 msgstr "Spécifie si l'authentification par défi est autorisée (p.@: ex.@: via PAM)."
 
 #. type: item
-#: doc/guix.texi:13181
+#: doc/guix.texi:16416
 #, no-wrap
 msgid "@code{use-pam?} (default: @code{#t})"
 msgstr "@code{use-pam?} (par défaut : @code{#t})"
 
 #. type: table
-#: doc/guix.texi:13187
+#: doc/guix.texi:16422
 msgid "Enables the Pluggable Authentication Module interface.  If set to @code{#t}, this will enable PAM authentication using @code{challenge-response-authentication?} and @code{password-authentication?}, in addition to PAM account and session module processing for all authentication types."
 msgstr "Active l'interface avec le module d'authentification greffable, PAM.  Si la valeur est @code{#t}, cela activera l'authentification PAM avec @code{challenge-response-authentication?} et @code{password-authentication?}, en plus des modules de compte et de session de PAM pour tous les types d'authentification."
 
 #. type: table
-#: doc/guix.texi:13192
+#: doc/guix.texi:16427
 msgid "Because PAM challenge response authentication usually serves an equivalent role to password authentication, you should disable either @code{challenge-response-authentication?} or @code{password-authentication?}."
 msgstr "Comme l'authentification par défi de PAM sert généralement un rôle équivalent à l'authentification par mot de passe, vous devriez désactiver soit @code{challenge-response-authentication?}, soit @code{password-authentication?}."
 
 #. type: item
-#: doc/guix.texi:13193
+#: doc/guix.texi:16428
 #, no-wrap
 msgid "@code{print-last-log?} (default: @code{#t})"
 msgstr "@code{print-last-log?} (par défaut : @code{#t})"
 
 #. type: table
-#: doc/guix.texi:13196
+#: doc/guix.texi:16431
 msgid "Specifies whether @command{sshd} should print the date and time of the last user login when a user logs in interactively."
 msgstr "Spécifie si @command{sshd} devrait afficher la date et l'heure de dernière connexion des utilisateurs lorsqu'un utilisateur se connecte de manière interactive."
 
 #. type: item
-#: doc/guix.texi:13197
+#: doc/guix.texi:16432
 #, no-wrap
 msgid "@code{subsystems} (default: @code{'((\"sftp\" \"internal-sftp\"))})"
 msgstr "@code{subsystems} (par défaut : @code{'((\"sftp\" \"internal-sftp\"))})"
 
 #. type: table
-#: doc/guix.texi:13199
+#: doc/guix.texi:16434
 msgid "Configures external subsystems (e.g.@: file transfer daemon)."
 msgstr "Configure les sous-systèmes externes (p.@: ex.@: le démon de transfert de fichiers)."
 
 #. type: table
-#: doc/guix.texi:13203
+#: doc/guix.texi:16438
 msgid "This is a list of two-element lists, each of which containing the subsystem name and a command (with optional arguments) to execute upon subsystem request."
 msgstr "C'est une liste de paires, composées chacune du nom du sous-système et d'une commande (avec éventuellement des arguments) à exécuter à la demande du sous-système."
 
 #. type: table
-#: doc/guix.texi:13206
-msgid "The command @command{internal-sftp} implements an in-process SFTP server.  Alternately, one can specify the @command{sftp-server} command:"
-msgstr "La commande @command{internal-sftp} implémente un serveur SFTP dans le processus.  Autrement, on peut spécifier la commande @command{sftp-server} :"
+#: doc/guix.texi:16441
+msgid "The command @command{internal-sftp} implements an in-process SFTP server.  Alternatively, one can specify the @command{sftp-server} command:"
+msgstr "La commande @command{internal-sftp} met en œuvre un serveur SFTP en cours de traitement.  On peut aussi spécifier la commande @command{sftp-server} :"
 
-#. type: example
-#: doc/guix.texi:13211
+#. type: lisp
+#: doc/guix.texi:16446
 #, no-wrap
 msgid ""
 "(service openssh-service-type\n"
@@ -24420,28 +30280,28 @@ msgstr ""
 "           `((\"sftp\" ,(file-append openssh \"/libexec/sftp-server\"))))))\n"
 
 #. type: item
-#: doc/guix.texi:13213
+#: doc/guix.texi:16448
 #, no-wrap
 msgid "@code{accepted-environment} (default: @code{'()})"
 msgstr "@code{accepted-environment} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:13215
+#: doc/guix.texi:16450
 msgid "List of strings describing which environment variables may be exported."
 msgstr "Liste de chaînes de caractères qui décrivent les variables d'environnement qui peuvent être exportées."
 
 #. type: table
-#: doc/guix.texi:13218
+#: doc/guix.texi:16453
 msgid "Each string gets on its own line.  See the @code{AcceptEnv} option in @code{man sshd_config}."
 msgstr "Chaque chaîne a sa propre ligne.  Voir l'option @code{AcceptEnv} dans @code{man sshd_config}."
 
 #. type: table
-#: doc/guix.texi:13223
-msgid "This example allows ssh-clients to export the @code{COLORTERM} variable.  It is set by terminal emulators, which support colors.  You can use it in your shell's ressource file to enable colors for the prompt and commands if this variable is set."
-msgstr "Cet exemple permet aux clients ssh d'exporter la variable @code{COLORTERM}.  Elle est initialisée par les émulateurs de terminaux qui supportent les couleurs.  Vous pouvez l'utiliser dans votre fichier de ressource de votre shell pour activer les couleurs sur la ligne de commande si cette variable est initialisée."
+#: doc/guix.texi:16458
+msgid "This example allows ssh-clients to export the @env{COLORTERM} variable.  It is set by terminal emulators, which support colors.  You can use it in your shell's resource file to enable colors for the prompt and commands if this variable is set."
+msgstr "Cet exemple permet aux clients ssh d'exporter la variable @env{COLORTERM}.  Elle est initialisée par les émulateurs de terminaux qui supportent les couleurs.  Vous pouvez l'utiliser dans votre fichier de ressource de votre shell pour activer les couleurs sur la ligne de commande si cette variable est initialisée."
 
-#. type: example
-#: doc/guix.texi:13228
+#. type: lisp
+#: doc/guix.texi:16463
 #, no-wrap
 msgid ""
 "(service openssh-service-type\n"
@@ -24453,30 +30313,30 @@ msgstr ""
 "           (accepted-environment '(\"COLORTERM\"))))\n"
 
 #. type: item
-#: doc/guix.texi:13230
+#: doc/guix.texi:16465
 #, no-wrap
 msgid "@code{authorized-keys} (default: @code{'()})"
 msgstr "@code{authorized-keys} (par défaut : @code{'()})"
 
 #. type: cindex
-#: doc/guix.texi:13231
+#: doc/guix.texi:16466
 #, no-wrap
 msgid "authorized keys, SSH"
 msgstr "clefs autorisées, SSH"
 
 #. type: cindex
-#: doc/guix.texi:13232
+#: doc/guix.texi:16467
 #, no-wrap
 msgid "SSH authorized keys"
 msgstr "SSH, clefs autorisées"
 
 #. type: table
-#: doc/guix.texi:13236
+#: doc/guix.texi:16471
 msgid "This is the list of authorized keys.  Each element of the list is a user name followed by one or more file-like objects that represent SSH public keys.  For example:"
 msgstr "C'est la liste des clefs autorisées.  Chaque élément de la liste est un nom d'utilisateur suivit d'un ou plusieurs objets simili-fichiers qui représentent les clefs publiques SSH.  Par exemple :"
 
-#. type: example
-#: doc/guix.texi:13243
+#. type: lisp
+#: doc/guix.texi:16478
 #, no-wrap
 msgid ""
 "(openssh-configuration\n"
@@ -24492,44 +30352,44 @@ msgstr ""
 "      (\"root\" ,(local-file \"rekado.pub\") ,(local-file \"chris.pub\")))))\n"
 
 #. type: table
-#: doc/guix.texi:13248
+#: doc/guix.texi:16483
 msgid "registers the specified public keys for user accounts @code{rekado}, @code{chris}, and @code{root}."
 msgstr "enregistre les clefs publiques spécifiées pour les comptes @code{rekado}, @code{chris} et @code{root}."
 
 #. type: table
-#: doc/guix.texi:13251
+#: doc/guix.texi:16486
 msgid "Additional authorized keys can be specified @i{via} @code{service-extension}."
 msgstr "Des clefs autorisées supplémentaires peuvent être spécifiées via @code{service-extension}."
 
 #. type: table
-#: doc/guix.texi:13254
+#: doc/guix.texi:16489
 msgid "Note that this does @emph{not} interfere with the use of @file{~/.ssh/authorized_keys}."
 msgstr "Remarquez que cela n'interfère @emph{pas} avec l'utilisation de @file{~/.ssh/authorized_keys}."
 
 #. type: item
-#: doc/guix.texi:13255
+#: doc/guix.texi:16490
 #, no-wrap
 msgid "@code{log-level} (default: @code{'info})"
 msgstr "@code{log-level} (par défaut : @code{'info})"
 
 #. type: table
-#: doc/guix.texi:13259
+#: doc/guix.texi:16494
 msgid "This is a symbol specifying the logging level: @code{quiet}, @code{fatal}, @code{error}, @code{info}, @code{verbose}, @code{debug}, etc.  See the man page for @file{sshd_config} for the full list of level names."
 msgstr "C'est le symbole qui spécifie le niveau de journalisation : @code{quiet}, @code{fatal}, @code{error}, @code{info}, @code{verbose}, @code{debug}, etc.  Voir la page de manuel de @file{sshd_config} pour trouver la liste complète des noms de niveaux."
 
 #. type: item
-#: doc/guix.texi:13260 doc/guix.texi:18874
+#: doc/guix.texi:16495 doc/guix.texi:23061
 #, no-wrap
 msgid "@code{extra-content} (default: @code{\"\"})"
 msgstr "@code{extra-content} (par défaut : @code{\"\"})"
 
 #. type: table
-#: doc/guix.texi:13265
+#: doc/guix.texi:16500
 msgid "This field can be used to append arbitrary text to the configuration file.  It is especially useful for elaborate configurations that cannot be expressed otherwise.  This configuration, for example, would generally disable root logins, but permit them from one specific IP address:"
 msgstr "Ce champ peut être utilisé pour ajouter un texte arbitraire au fichier de configuration.  C'est particulièrement utile pour des configurations élaborées qui ne pourraient pas être exprimées autrement.  Cette configuration, par exemple, désactiverait les connexions en root, mais les permettrait depuis une adresse IP spécifique :"
 
-#. type: example
-#: doc/guix.texi:13271
+#. type: lisp
+#: doc/guix.texi:16506
 #, no-wrap
 msgid ""
 "(openssh-configuration\n"
@@ -24543,23 +30403,23 @@ msgstr ""
 "  PermitRootLogin yes\"))\n"
 
 #. type: deffn
-#: doc/guix.texi:13276
+#: doc/guix.texi:16511
 #, no-wrap
 msgid "{Scheme Procedure} dropbear-service [@var{config}]"
 msgstr "{Procédure Scheme} dropbear-service [@var{config}]"
 
 #. type: deffn
-#: doc/guix.texi:13280
+#: doc/guix.texi:16515
 msgid "Run the @uref{https://matt.ucc.asn.au/dropbear/dropbear.html,Dropbear SSH daemon} with the given @var{config}, a @code{<dropbear-configuration>} object."
 msgstr "Lance le @uref{https://matt.ucc.asn.au/dropbear/dropbear.html,démon SSH Dropbear} avec la configuration @var{config} donnée, un objet @code{<dropbear-configuration>}."
 
 #. type: deffn
-#: doc/guix.texi:13283
+#: doc/guix.texi:16518
 msgid "For example, to specify a Dropbear service listening on port 1234, add this call to the operating system's @code{services} field:"
 msgstr "Par exemple, pour spécifier un service Dropbear qui écoute sur le port 1234, ajoutez cet appel au champ @code{services} de votre système d'exploitation :"
 
-#. type: example
-#: doc/guix.texi:13287
+#. type: lisp
+#: doc/guix.texi:16522
 #, no-wrap
 msgid ""
 "(dropbear-service (dropbear-configuration\n"
@@ -24569,99 +30429,429 @@ msgstr ""
 "                    (port-number 1234)))\n"
 
 #. type: deftp
-#: doc/guix.texi:13290
+#: doc/guix.texi:16525
 #, no-wrap
 msgid "{Data Type} dropbear-configuration"
 msgstr "{Type de données} dropbear-configuration"
 
 #. type: deftp
-#: doc/guix.texi:13292
+#: doc/guix.texi:16527
 msgid "This data type represents the configuration of a Dropbear SSH daemon."
 msgstr "Ce type de données représente la configuration d'un démon SSH Dropbear."
 
 #. type: item
-#: doc/guix.texi:13294
+#: doc/guix.texi:16529
 #, no-wrap
 msgid "@code{dropbear} (default: @var{dropbear})"
 msgstr "@code{dropbear} (par défaut : @var{dropbear})"
 
 #. type: table
-#: doc/guix.texi:13296
+#: doc/guix.texi:16531
 msgid "The Dropbear package to use."
 msgstr "Le paquet Dropbear à utiliser."
 
 #. type: item
-#: doc/guix.texi:13297
+#: doc/guix.texi:16532
 #, no-wrap
 msgid "@code{port-number} (default: 22)"
 msgstr "@code{port-number} (par défaut : 22)"
 
 #. type: table
-#: doc/guix.texi:13299
+#: doc/guix.texi:16534
 msgid "The TCP port where the daemon waits for incoming connections."
 msgstr "Le port TCP sur lequel le démon attend des connexions entrantes."
 
 #. type: item
-#: doc/guix.texi:13300
+#: doc/guix.texi:16535
 #, no-wrap
 msgid "@code{syslog-output?} (default: @code{#t})"
 msgstr "@code{syslog-output?} (par défaut : @code{#t})"
 
 #. type: table
-#: doc/guix.texi:13302
+#: doc/guix.texi:16537
 msgid "Whether to enable syslog output."
 msgstr "Indique s'il faut activer la sortie vers syslog."
 
 #. type: item
-#: doc/guix.texi:13303
+#: doc/guix.texi:16538
 #, no-wrap
 msgid "@code{pid-file} (default: @code{\"/var/run/dropbear.pid\"})"
 msgstr "@code{pid-file} (par défaut : @code{\"/var/run/dropbear.pid\"})"
 
 #. type: table
-#: doc/guix.texi:13305
+#: doc/guix.texi:16540
 msgid "File name of the daemon's PID file."
 msgstr "Nom du fichier de PID du démon."
 
 #. type: item
-#: doc/guix.texi:13306
+#: doc/guix.texi:16541
 #, no-wrap
 msgid "@code{root-login?} (default: @code{#f})"
 msgstr "@code{root-login?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:13308
+#: doc/guix.texi:16543
 msgid "Whether to allow @code{root} logins."
 msgstr "Indique s'il faut autoriser les connexions en @code{root}."
 
 #. type: table
-#: doc/guix.texi:13311
+#: doc/guix.texi:16546
 msgid "Whether to allow empty passwords."
 msgstr "Indique s'il faut autoriser les mots de passes vides."
 
 #. type: table
-#: doc/guix.texi:13314
+#: doc/guix.texi:16549
 msgid "Whether to enable password-based authentication."
 msgstr "Indique s'il faut autoriser l'authentification par mot de passe."
 
+#. type: cindex
+#: doc/guix.texi:16552
+#, no-wrap
+msgid "AutoSSH"
+msgstr "AutoSSH"
+
+#. type: deffn
+#: doc/guix.texi:16553
+#, no-wrap
+msgid "{Scheme Variable} autossh-service-type"
+msgstr "{Variable Scheme} autossh-service-type"
+
+#. type: deffn
+#: doc/guix.texi:16561
+msgid "This is the type for the @uref{https://www.harding.motd.ca/autossh, AutoSSH} program that runs a copy of @command{ssh} and monitors it, restarting it as necessary should it die or stop passing traffic.  AutoSSH can be run manually from the command-line by passing arguments to the binary @command{autossh} from the package @code{autossh}, but it can also be run as a Guix service.  This latter use case is documented here."
+msgstr "C'est le type du programme @uref{https://www.harding.motd.ca/autossh, AutoSSH} qui exécute une copie de @command{ssh} et la surveille, en la redémarrant si nécessaire si elle meurt ou arrête le trafic passant.  AutoSSH peut être exécuté manuellement à partir de la ligne de commande en passant des arguments au binaire @command{autossh} du paquet @code{autossh}, mais peut aussi être exécuté comme un service Guix.  Ce dernier cas d'utilisation est documenté ici."
+
+#. type: deffn
+#: doc/guix.texi:16565
+msgid "AutoSSH can be used to forward local traffic to a remote machine using an SSH tunnel, and it respects the @file{~/.ssh/config} of the user it is run as."
+msgstr "AutoSSH peut être utilisé pour transférer le trafic local vers une machine distante en utilisant un tunnel SSH, et il respecte le @file{~/.ssh/config} de l'utilisateur sous lequel il est exécuté."
+
+#. type: deffn
+#: doc/guix.texi:16570
+msgid "For example, to specify a service running autossh as the user @code{pino} and forwarding all local connections to port @code{8081} to @code{remote:8081} using an SSH tunnel, add this call to the operating system's @code{services} field:"
+msgstr "Par exemple, pour spécifier un service exécutant autossh comme utilisateur·rice @code{pino} et transférant toutes les connexions locales au port @code{8081} vers @code{remote:8081} en utilisant un tunnel SSH, ajoutez cet appel au champ @code{services} du système d'exploitation :"
+
+#. type: lisp
+#: doc/guix.texi:16576
+#, no-wrap
+msgid ""
+"(service autossh-service-type\n"
+"         (autossh-configuration\n"
+"          (user \"pino\")\n"
+"          (ssh-options (list \"-T\" \"-N\" \"-L\" \"8081:localhost:8081\" \"remote.net\"))))\n"
+msgstr ""
+"(service autossh-service-type\n"
+"         (autossh-configuration\n"
+"          (user \"pino\")\n"
+"          (ssh-options (list \"-T\" \"-N\" \"-L\" \"8081:localhost:8081\" \"remote.net\"))))\n"
+"\n"
+
+#. type: deftp
+#: doc/guix.texi:16579
+#, no-wrap
+msgid "{Data Type} autossh-configuration"
+msgstr "{Type de données} autossh-configuration"
+
+#. type: deftp
+#: doc/guix.texi:16581
+msgid "This data type represents the configuration of an AutoSSH service."
+msgstr "Ce type de données représente la configuration du service AutoSSH."
+
+#. type: item
+#: doc/guix.texi:16584
+#, no-wrap
+msgid "@code{user} (default @code{\"autossh\"})"
+msgstr "@code{user} (par défaut : @code{\"autossh\"})"
+
+#. type: table
+#: doc/guix.texi:16587
+msgid "The user as which the AutoSSH service is to be run.  This assumes that the specified user exists."
+msgstr "L'utilisateur·rice en tant que responsable du service AutoSSH.  Cela suppose que l'utilisateur spécifié existe."
+
+#. type: item
+#: doc/guix.texi:16588
+#, no-wrap
+msgid "@code{poll} (default @code{600})"
+msgstr "@code{poll} (par défaut : @code{600})"
+
+#. type: table
+#: doc/guix.texi:16590
+msgid "Specifies the connection poll time in seconds."
+msgstr "Spécifie le temps de sondage de la connexion en secondes."
+
+#. type: item
+#: doc/guix.texi:16591
+#, no-wrap
+msgid "@code{first-poll} (default @code{#f})"
+msgstr "@code{first-poll} (par défaut : @code{#f})"
+
+#. type: table
+#: doc/guix.texi:16597
+msgid "Specifies how many seconds AutoSSH waits before the first connection test.  After this first test, polling is resumed at the pace defined in @code{poll}.  When set to @code{#f}, the first poll is not treated specially and will also use the connection poll specified in @code{poll}."
+msgstr "Indique le nombre de secondes que l'AutoSSH attend avant le premier test de connexion.  Après ce premier test, le vote reprend au rythme défini dans @code{poll}.  Lorsqu'il est défini à @code{#f}, le premier sondage n'est pas traité spécialement et utilisera également le sondage de connexion spécifié dans @code{poll}."
+
+#. type: item
+#: doc/guix.texi:16598
+#, no-wrap
+msgid "@code{gate-time} (default @code{30})"
+msgstr "@code{gate-time} (par défaut : @code{30})"
+
+#. type: table
+#: doc/guix.texi:16601
+msgid "Specifies how many seconds an SSH connection must be active before it is considered successful."
+msgstr "Spécifie combien de secondes une connexion SSH doit être active avant qu'elle soit considérée comme réussie."
+
+#. type: item
+#: doc/guix.texi:16602
+#, no-wrap
+msgid "@code{log-level} (default @code{1})"
+msgstr "@code{log-level} (par défaut : @code{1})"
+
+#. type: table
+#: doc/guix.texi:16605
+msgid "The log level, corresponding to the levels used by syslog---so @code{0} is the most silent while @code{7} is the chattiest."
+msgstr "Le niveau du log, correspondant aux niveaux utilisés par syslog---donc @code{0} est le plus silencieux tandis que @code{7} est le plus bavard."
+
+#. type: item
+#: doc/guix.texi:16606
+#, no-wrap
+msgid "@code{max-start} (default @code{#f})"
+msgstr "@code{max-start} (par défaut : @code{#f})"
+
+#. type: table
+#: doc/guix.texi:16609
+msgid "The maximum number of times SSH may be (re)started before AutoSSH exits.  When set to @code{#f}, no maximum is configured and AutoSSH may restart indefinitely."
+msgstr "Le nombre maximum de fois que SSH peut être (re)démarré avant la sortie d'AutoSSH.  Lorsqu'il est défini sur @code{#f}, aucun maximum n'est configuré et AutoSSH peut redémarrer indéfiniment."
+
+#. type: item
+#: doc/guix.texi:16610
+#, no-wrap
+msgid "@code{message} (default @code{\"\"})"
+msgstr "@code{message} (par défaut : @code{\"\"})"
+
+#. type: table
+#: doc/guix.texi:16612
+msgid "The message to append to the echo message sent when testing connections."
+msgstr "Le message à ajouter à celui de echo envoyé lors du test des connexions."
+
+#. type: item
+#: doc/guix.texi:16613
+#, no-wrap
+msgid "@code{port} (default @code{\"0\"})"
+msgstr "@code{port} (par défaut : @code{\"0\"})"
+
+#. type: table
+#: doc/guix.texi:16623
+msgid "The ports used for monitoring the connection.  When set to @code{\"0\"}, monitoring is disabled.  When set to @code{\"@var{n}\"} where @var{n} is a positive integer, ports @var{n} and @var{n}+1 are used for monitoring the connection, such that port @var{n} is the base monitoring port and @code{n+1} is the echo port.  When set to @code{\"@var{n}:@var{m}\"} where @var{n} and @var{m} are positive integers, the ports @var{n} and @var{m} are used for monitoring the connection, such that port @var{n} is the base monitoring port and @var{m} is the echo port."
+msgstr "Les ports utilisés pour la surveillance de la connexion.  Lorsqu'il est défini sur @code{\"0\"}, la surveillance est désactivée.  Lorsqu'il est défini sur @code{\"@var{n}\"} où @var{n} est un entier positif, les ports @var{n} et @var{n}+1 sont utilisés pour surveiller la connexion, de sorte que le port @var{n} est le port de surveillance de base et @code{n+1} est le port d'echo.  Lorsqu'ils sont définis sur @code{\"@var{n}:@var{m}\"} où @var{n} et @var{m} sont des entiers positifs, les ports @var{n} et @var{m} sont utilisés pour surveiller la connexion, de sorte que le port @var{n} est le port de surveillance de base et @var{m} est le port d'echo."
+
+#. type: item
+#: doc/guix.texi:16624
+#, no-wrap
+msgid "@code{ssh-options} (default @code{'()})"
+msgstr "@code{ssh-options} (par défaut : @code{'()})"
+
+#. type: table
+#: doc/guix.texi:16628
+msgid "The list of command-line arguments to pass to @command{ssh} when it is run.  Options @option{-f} and @option{-M} are reserved for AutoSSH and may cause undefined behaviour."
+msgstr "La liste des arguments de la ligne de commande à passer à @command{ssh} lorsqu'elle est exécutée.  Les options @option{-f} et @option{-M} sont réservées à AutoSSH et peuvent provoquer un comportement indéfini."
+
+#. type: cindex
+#: doc/guix.texi:16632
+#, no-wrap
+msgid "WebSSH"
+msgstr "WebSSH"
+
+#. type: deffn
+#: doc/guix.texi:16633
+#, no-wrap
+msgid "{Scheme Variable} webssh-service-type"
+msgstr "{Variable Scheme} webssh-service-type"
+
+#. type: deffn
+#: doc/guix.texi:16639
+msgid "This is the type for the @uref{https://webssh.huashengdun.org/, WebSSH} program that runs a web SSH client.  WebSSH can be run manually from the command-line by passing arguments to the binary @command{wssh} from the package @code{webssh}, but it can also be run as a Guix service.  This latter use case is documented here."
+msgstr "C'est le type du programme @uref{https://webssh.huashengdun.org/, WebSSH} qui exécute un client web SSH.  WebSSH peut être exécuté manuellement à partir de la ligne de commande en passant des arguments au binaire @command{wssh} du paquet @code{webssh}, mais il peut aussi être exécuté comme un service Guix.  Ce dernier cas d'utilisation est documenté ici."
+
+#. type: deffn
+#: doc/guix.texi:16645
+msgid "For example, to specify a service running WebSSH on loopback interface on port @code{8888} with reject policy with a list of allowed to connection hosts, and NGINX as a reverse-proxy to this service listening for HTTPS connection, add this call to the operating system's @code{services} field:"
+msgstr "Par exemple, pour spécifier un service exécutant WebSSH sur l'interface de bouclage sur le port @code{8888} avec une politique de rejet avec une liste des hôtes autorisés à se connecter, et NGINX comme reverse-proxy de ce service écoutant la connexion HTTPS, ajouter cet appel au champ @code{services} du système d'exploitation :"
+
+#. type: lisp
+#: doc/guix.texi:16653
+#, no-wrap
+msgid ""
+"(service webssh-service-type\n"
+"  (webssh-configuration (address \"127.0.0.1\")\n"
+"                        (port 8888)\n"
+"                        (policy 'reject)\n"
+"                        (known-hosts '(\"localhost ecdsa-sha2-nistp256 AAAA…\"\n"
+"                                       \"127.0.0.1 ecdsa-sha2-nistp256 AAAA…\"))))\n"
+"\n"
+msgstr ""
+"(service webssh-service-type\n"
+"  (webssh-configuration (address \"127.0.0.1\")\n"
+"                        (port 8888)\n"
+"                        (policy 'reject)\n"
+"                        (known-hosts '(\"localhost ecdsa-sha2-nistp256 AAAA…\"\n"
+"                                       \"127.0.0.1 ecdsa-sha2-nistp256 AAAA…\"))))\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:16669
+#, no-wrap
+msgid ""
+"(service nginx-service-type\n"
+"         (nginx-configuration\n"
+"          (server-blocks\n"
+"           (list\n"
+"            (nginx-server-configuration\n"
+"             (inherit %webssh-configuration-nginx)\n"
+"             (server-name '(\"webssh.example.com\"))\n"
+"             (listen '(\"443 ssl\"))\n"
+"             (ssl-certificate (letsencrypt-certificate \"webssh.example.com\"))\n"
+"             (ssl-certificate-key (letsencrypt-key \"webssh.example.com\"))\n"
+"             (locations\n"
+"              (cons (nginx-location-configuration\n"
+"                     (uri \"/.well-known\")\n"
+"                     (body '(\"root /var/www;\")))\n"
+"                    (nginx-server-configuration-locations %webssh-configuration-nginx))))))))\n"
+msgstr ""
+"(service nginx-service-type\n"
+"         (nginx-configuration\n"
+"          (server-blocks\n"
+"           (list\n"
+"            (nginx-server-configuration\n"
+"             (inherit %webssh-configuration-nginx)\n"
+"             (server-name '(\"webssh.example.com\"))\n"
+"             (listen '(\"443 ssl\"))\n"
+"             (ssl-certificate (letsencrypt-certificate \"webssh.example.com\"))\n"
+"             (ssl-certificate-key (letsencrypt-key \"webssh.example.com\"))\n"
+"             (locations\n"
+"              (cons (nginx-location-configuration\n"
+"                     (uri \"/.well-known\")\n"
+"                     (body '(\"root /var/www;\")))\n"
+"                    (nginx-server-configuration-locations %webssh-configuration-nginx))))))))\n"
+
+#. type: deftp
+#: doc/guix.texi:16672
+#, no-wrap
+msgid "{Data Type} webssh-configuration"
+msgstr "{Type de données} webssh-configuration"
+
+#. type: deftp
+#: doc/guix.texi:16674
+msgid "Data type representing the configuration for @code{webssh-service}."
+msgstr "Type de données représentant la configuration pour @code{webssh-service}."
+
+#. type: item
+#: doc/guix.texi:16676
+#, no-wrap
+msgid "@code{package} (default: @var{webssh})"
+msgstr "@code{package} (par défaut : @var{webssh})"
+
+#. type: table
+#: doc/guix.texi:16678
+msgid "@code{webssh} package to use."
+msgstr "Le paquet @code{webssh} à utiliser."
+
+#. type: item
+#: doc/guix.texi:16679
+#, no-wrap
+msgid "@code{user-name} (default: @var{\"webssh\"})"
+msgstr "@code{user-name} (par défaut : @var{\"webssh\"})"
+
+#. type: table
+#: doc/guix.texi:16682
+msgid "User name or user ID that file transfers to and from that module should take place."
+msgstr "Le nom ou l'identifiant de l'utilisateur·rice qui transfère le fichier vers et depuis ce module doit avoir lieu."
+
+#. type: item
+#: doc/guix.texi:16683
+#, no-wrap
+msgid "@code{group-name} (default: @var{\"webssh\"})"
+msgstr "@code{group-name} (par défaut : @var{\"webssh\"})"
+
+#. type: item
+#: doc/guix.texi:16686
+#, no-wrap
+msgid "@code{address} (default: @var{#f})"
+msgstr "@code{address} (par défaut : @var{#f})"
+
+#. type: table
+#: doc/guix.texi:16688
+msgid "IP address on which @command{webssh} listens for incoming connections."
+msgstr "Adresse IP sur laquelle @command{webssh} écoute les connexions entrantes."
+
+#. type: item
+#: doc/guix.texi:16689
+#, no-wrap
+msgid "@code{port} (default: @var{8888})"
+msgstr "@code{port} (par défaut : @var{8888})"
+
+#. type: table
+#: doc/guix.texi:16691
+msgid "TCP port on which @command{webssh} listens for incoming connections."
+msgstr "Port TCP sur lequel @command{webssh} écoute les connexions entrantes."
+
+#. type: item
+#: doc/guix.texi:16692
+#, no-wrap
+msgid "@code{policy} (default: @var{#f})"
+msgstr "@code{policy} (par défaut : @var{#f})"
+
+#. type: table
+#: doc/guix.texi:16694
+msgid "Connection policy.  @var{reject} policy requires to specify @var{known-hosts}."
+msgstr "Politique de connexion.  La politique de @var{reject} nécessite de spécifier @var{known-hosts}."
+
+#. type: item
+#: doc/guix.texi:16695
+#, no-wrap
+msgid "@code{known-hosts} (default: @var{'()})"
+msgstr "@code{known-hosts} (par défaut : @var{'()})"
+
+#. type: table
+#: doc/guix.texi:16697
+msgid "List of hosts which allowed for SSH connection from @command{webssh}."
+msgstr "Liste des hôtes qui ont permis une connexion SSH à partir de @command{webssh}."
+
+#. type: item
+#: doc/guix.texi:16698
+#, no-wrap
+msgid "@code{log-file} (default: @file{\"/var/log/webssh.log\"})"
+msgstr "@code{log-file} (par défaut : @code{\"/var/log/webssh.log\"})"
+
+#. type: item
+#: doc/guix.texi:16701
+#, no-wrap
+msgid "@code{log-level} (default: @var{#f})"
+msgstr "@code{log-level} (par défaut : @var{#f})"
+
+#. type: table
+#: doc/guix.texi:16703
+msgid "Logging level."
+msgstr "Niveau d'enregistrement."
+
 #. type: defvr
-#: doc/guix.texi:13317
+#: doc/guix.texi:16707
 #, no-wrap
 msgid "{Scheme Variable} %facebook-host-aliases"
 msgstr "{Variable Scheme} %facebook-host-aliases"
 
 #. type: defvr
-#: doc/guix.texi:13323
+#: doc/guix.texi:16713
 msgid "This variable contains a string for use in @file{/etc/hosts} (@pxref{Host Names,,, libc, The GNU C Library Reference Manual}).  Each line contains a entry that maps a known server name of the Facebook on-line service---e.g., @code{www.facebook.com}---to the local host---@code{127.0.0.1} or its IPv6 equivalent, @code{::1}."
 msgstr "Cette variable contient une chaîne de caractères à utiliser dans @file{/etc/hosts} (@pxref{Host Names,,, libc, The GNU C Library Reference Manual}).  Chaque ligne contient une entrée qui fait correspondre les noms des serveurs connus du service en ligne Facebook — p.@: ex.@: @code{www.facebook.com} — à l'hôte local — @code{127.0.0.1} ou son équivalent en IPv6, @code{::1}."
 
 #. type: defvr
-#: doc/guix.texi:13327
+#: doc/guix.texi:16717
 msgid "This variable is typically used in the @code{hosts-file} field of an @code{operating-system} declaration (@pxref{operating-system Reference, @file{/etc/hosts}}):"
 msgstr "Cette variable est typiquement utilisée dans le champ @code{hosts-file} d'une déclaration @code{operating-system} (@pxref{operating-system Reference, @file{/etc/hosts}}) :"
 
-#. type: example
-#: doc/guix.texi:13340
+#. type: lisp
+#: doc/guix.texi:16730
 #, no-wrap
 msgid ""
 "(operating-system\n"
@@ -24685,348 +30875,684 @@ msgstr ""
 "                               %facebook-host-aliases))))\n"
 
 #. type: defvr
-#: doc/guix.texi:13344
+#: doc/guix.texi:16734
 msgid "This mechanism can prevent programs running locally, such as Web browsers, from accessing Facebook."
 msgstr "Ce mécanisme peut éviter que des programmes qui tournent localement, comme des navigateurs Web, ne se connectent à Facebook."
 
 #. type: Plain text
-#: doc/guix.texi:13347
+#: doc/guix.texi:16737
 msgid "The @code{(gnu services avahi)} provides the following definition."
 msgstr "Le module @code{(gnu services avahi)} fourni la définition suivante."
 
 #. type: defvr
-#: doc/guix.texi:13348
+#: doc/guix.texi:16738
 #, no-wrap
 msgid "{Scheme Variable} avahi-service-type"
 msgstr "{Variable Scheme} avahi-service-type"
 
 #. type: defvr
-#: doc/guix.texi:13353
-msgid "This is the service that runs @command{avahi-daemon}, a system-wide mDNS/DNS-SD responder that allows for service discovery and ``zero-configuration'' host name lookups (see @uref{https://avahi.org/}).  Its value must be a @code{zero-configuration} record---see below."
-msgstr "C'est le service qui lance @command{avahi-daemon}, un service système qui répond aux requêtes mDNS/DNS-SD qui permet la découverte de service et la recherche de nom en « zéro configuration » (voir @uref{https://avahi.org/}).  Sa valeur doit être un enregistrement @code{zero-configuration} — voir plus bas."
+#: doc/guix.texi:16743
+msgid "This is the service that runs @command{avahi-daemon}, a system-wide mDNS/DNS-SD responder that allows for service discovery and ``zero-configuration'' host name lookups (see @uref{https://avahi.org/}).  Its value must be an @code{avahi-configuration} record---see below."
+msgstr "C'est le service qui lance @command{avahi-daemon}, un service système qui répond aux requêtes mDNS/DNS-SD qui permet la découverte de services et la recherche de nom en « zéro configuration » (voir @uref{https://avahi.org/}).  Sa valeur doit être un enregistrement @code{avahi-configuration} — voir plus bas."
 
 #. type: defvr
-#: doc/guix.texi:13358
-msgid "This service extends the name service cache daemon (nscd) so that it can resolve @code{.local} host names using @uref{http://0pointer.de/lennart/projects/nss-mdns/, nss-mdns}.  @xref{Name Service Switch}, for information on host name resolution."
-msgstr "Ce service étend le démon de cache de services de noms (nscd) pour qu'il puisse résoudre les noms d'hôtes en @code{.local} avec @uref{http://0pointer.de/lennart/projects/nss-mdns/, nss-mdns}.  @xref{Name Service Switch}, pour plus d'informations sur la résolution des noms d'hôte."
+#: doc/guix.texi:16748
+msgid "This service extends the name service cache daemon (nscd) so that it can resolve @code{.local} host names using @uref{https://0pointer.de/lennart/projects/nss-mdns/, nss-mdns}.  @xref{Name Service Switch}, for information on host name resolution."
+msgstr "Ce service étend le démon de cache de services de noms (nscd) pour qu'il puisse résoudre les noms d'hôtes en @code{.local} avec @uref{https://0pointer.de/lennart/projects/nss-mdns/, nss-mdns}.  @xref{Name Service Switch}, pour plus d'informations sur la résolution des noms d'hôte."
 
 #. type: defvr
-#: doc/guix.texi:13361
+#: doc/guix.texi:16751
 msgid "Additionally, add the @var{avahi} package to the system profile so that commands such as @command{avahi-browse} are directly usable."
 msgstr "En plus, cela ajoute le paquet @var{avahi} au profil du système pour que les commandes comme @command{avahi-browse} soient directement utilisables."
 
 #. type: deftp
-#: doc/guix.texi:13363
+#: doc/guix.texi:16753
 #, no-wrap
 msgid "{Data Type} avahi-configuration"
 msgstr "{Type de données} avahi-configuration"
 
 #. type: deftp
-#: doc/guix.texi:13365
+#: doc/guix.texi:16755
 msgid "Data type representation the configuration for Avahi."
 msgstr "Type de données représentant la configuration d'Avahi."
 
 #. type: item
-#: doc/guix.texi:13368
+#: doc/guix.texi:16758
 #, no-wrap
 msgid "@code{host-name} (default: @code{#f})"
 msgstr "@code{host-name} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:13371
+#: doc/guix.texi:16761
 msgid "If different from @code{#f}, use that as the host name to publish for this machine; otherwise, use the machine's actual host name."
 msgstr "Si la valeur n'est pas @code{#f}, utilise cette valeur comme nom d'hôte à publier pour la machine ; sinon, utilise le vrai nom d'hôte de la machine."
 
 #. type: item
-#: doc/guix.texi:13372
+#: doc/guix.texi:16762
 #, no-wrap
 msgid "@code{publish?} (default: @code{#t})"
 msgstr "@code{publish?} (par défaut : @code{#t})"
 
 #. type: table
-#: doc/guix.texi:13375
+#: doc/guix.texi:16765
 msgid "When true, allow host names and services to be published (broadcast) over the network."
 msgstr "Lorsque la valeur est vraie, permet la publication sur le réseau (en diffusion) des noms d'hôtes et des services."
 
 #. type: item
-#: doc/guix.texi:13376
+#: doc/guix.texi:16766
 #, no-wrap
 msgid "@code{publish-workstation?} (default: @code{#t})"
 msgstr "@code{publish-workstation?} (par défaut : @code{#t})"
 
 #. type: table
-#: doc/guix.texi:13380
+#: doc/guix.texi:16770
 msgid "When true, @command{avahi-daemon} publishes the machine's host name and IP address via mDNS on the local network.  To view the host names published on your local network, you can run:"
 msgstr "Lorsque la valeur est vraie, @command{avahi-daemon} publie le nom d'hôte et l'adresse IP de la machine via mDNS sur le réseau local.  Pour voir les noms d'hôtes publiés sur votre réseau local, vous pouvez lancer :"
 
 #. type: example
-#: doc/guix.texi:13383
+#: doc/guix.texi:16773
 #, no-wrap
 msgid "avahi-browse _workstation._tcp\n"
 msgstr "avahi-browse _workstation._tcp\n"
 
 #. type: item
-#: doc/guix.texi:13385
+#: doc/guix.texi:16775
 #, no-wrap
 msgid "@code{wide-area?} (default: @code{#f})"
 msgstr "@code{wide-area?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:13387
+#: doc/guix.texi:16777
 msgid "When true, DNS-SD over unicast DNS is enabled."
 msgstr "Lorsque la valeur est vraie, DNS-SD sur DNS unicast est activé."
 
 #. type: item
-#: doc/guix.texi:13388
+#: doc/guix.texi:16778
 #, no-wrap
 msgid "@code{ipv4?} (default: @code{#t})"
 msgstr "@code{ipv4?} (par défaut : @code{#t})"
 
 #. type: itemx
-#: doc/guix.texi:13389
+#: doc/guix.texi:16779
 #, no-wrap
 msgid "@code{ipv6?} (default: @code{#t})"
 msgstr "@code{ipv6?} (par défaut : @code{#t})"
 
 #. type: table
-#: doc/guix.texi:13391
+#: doc/guix.texi:16781
 msgid "These fields determine whether to use IPv4/IPv6 sockets."
 msgstr "Ces champs déterminent s'il faut utiliser des socket IPv4/IPv6."
 
 #. type: item
-#: doc/guix.texi:13392
+#: doc/guix.texi:16782
 #, no-wrap
 msgid "@code{domains-to-browse} (default: @code{'()})"
 msgstr "@code{domains-to-browse} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:13394
+#: doc/guix.texi:16784
 msgid "This is a list of domains to browse."
 msgstr "C'est la liste des domaines sur lesquels naviguer."
 
 #. type: deffn
-#: doc/guix.texi:13397
+#: doc/guix.texi:16787
 #, no-wrap
 msgid "{Scheme Variable} openvswitch-service-type"
 msgstr "{Variable Scheme} openvswitch-service-type"
 
 #. type: deffn
-#: doc/guix.texi:13401
+#: doc/guix.texi:16791
 msgid "This is the type of the @uref{https://www.openvswitch.org, Open vSwitch} service, whose value should be an @code{openvswitch-configuration} object."
 msgstr "C'est le type du service @uref{https://www.openvswitch.org, Open vSwitch}, dont la valeur devrait être un objet @code{openvswitch-configuration}."
 
 #. type: deftp
-#: doc/guix.texi:13403
+#: doc/guix.texi:16793
 #, no-wrap
 msgid "{Data Type} openvswitch-configuration"
 msgstr "{Type de données} openvswitch-configuration"
 
 #. type: deftp
-#: doc/guix.texi:13407
+#: doc/guix.texi:16797
 msgid "Data type representing the configuration of Open vSwitch, a multilayer virtual switch which is designed to enable massive network automation through programmatic extension."
 msgstr "Type de données représentant la configuration de Open vSwitch, un commutateur virtuel multiniveaux conçu pour rendre possible l'automatisation massive des réseaux avec des extensions programmables."
 
 #. type: item
-#: doc/guix.texi:13409
+#: doc/guix.texi:16799
 #, no-wrap
 msgid "@code{package} (default: @var{openvswitch})"
 msgstr "@code{package} (par défaut : @var{openvswitch})"
 
 #. type: table
-#: doc/guix.texi:13411
+#: doc/guix.texi:16801
 msgid "Package object of the Open vSwitch."
 msgstr "Objet de paquet de Open vSwitch."
 
+#. type: defvr
+#: doc/guix.texi:16805
+#, no-wrap
+msgid "{Scheme Variable} pagekite-service-type"
+msgstr "{Variable Scheme} pagekite-service-type"
+
+#. type: defvr
+#: doc/guix.texi:16810
+msgid "This is the service type for the @uref{https://pagekite.net, PageKite} service, a tunneling solution for making localhost servers publicly visible, even from behind restrictive firewalls or NAT without forwarded ports.  The value for this service type is a @code{pagekite-configuration} record."
+msgstr "Il s'agit du type de service du service @uref{https://pagekite.net, PageKite}, une solution de tunneling permettant de rendre les serveurs locaux visibles au public, même derrière des pare-feu restrictifs ou du NAT sans transfert de ports.  La valeur pour ce type de service est un enregistrement @code{pagekite-configuration}."
+
+#. type: defvr
+#: doc/guix.texi:16812
+msgid "Here's an example exposing the local HTTP and SSH daemons:"
+msgstr "Voici un exemple exposant les démons locaux HTTP et SSH :"
+
+#. type: lisp
+#: doc/guix.texi:16819
+#, no-wrap
+msgid ""
+"(service pagekite-service-type\n"
+"         (pagekite-configuration\n"
+"           (kites '(\"http:@@kitename:localhost:80:@@kitesecret\"\n"
+"                    \"raw/22:@@kitename:localhost:22:@@kitesecret\"))\n"
+"           (extra-file \"/etc/pagekite.rc\")))\n"
+msgstr ""
+"(service pagekite-service-type\n"
+"         (pagekite-configuration\n"
+"           (kites '(\"http:@@kitename:localhost:80:@@kitesecret\"\n"
+"                    \"raw/22:@@kitename:localhost:22:@@kitesecret\"))\n"
+"           (extra-file \"/etc/pagekite.rc\")))\n"
+
+#. type: deftp
+#: doc/guix.texi:16822
+#, no-wrap
+msgid "{Data Type} pagekite-configuration"
+msgstr "{Type de données} pagekite-configuration"
+
+#. type: deftp
+#: doc/guix.texi:16824
+msgid "Data type representing the configuration of PageKite."
+msgstr "Type de données représentant la configuration de PageKite."
+
+#. type: item
+#: doc/guix.texi:16826
+#, no-wrap
+msgid "@code{package} (default: @var{pagekite})"
+msgstr "@code{package} (par défaut : @var{pagekite})"
+
+#. type: table
+#: doc/guix.texi:16828
+msgid "Package object of PageKite."
+msgstr "Objet du paquet de PageKite."
+
+#. type: item
+#: doc/guix.texi:16829
+#, no-wrap
+msgid "@code{kitename} (default: @code{#f})"
+msgstr "@code{kitename} (par défaut : @code{#f})"
+
+#. type: table
+#: doc/guix.texi:16831
+msgid "PageKite name for authenticating to the frontend server."
+msgstr "Nom de PageKite pour l'authentification au serveur frontal."
+
+#. type: item
+#: doc/guix.texi:16832
+#, no-wrap
+msgid "@code{kitesecret} (default: @code{#f})"
+msgstr "@code{kitesecret} (par défaut : @code{#f})"
+
+#. type: table
+#: doc/guix.texi:16835
+msgid "Shared secret for authenticating to the frontend server.  You should probably put this inside @code{extra-file} instead."
+msgstr "Secret partagé pour s'authentifier auprès du serveur frontal.  Vous devriez probablement mettre cela dans @code{extra-file} à la place."
+
+#. type: item
+#: doc/guix.texi:16836
+#, no-wrap
+msgid "@code{frontend} (default: @code{#f})"
+msgstr "@code{frontend} (par défaut : @code{#f})"
+
+#. type: table
+#: doc/guix.texi:16839
+msgid "Connect to the named PageKite frontend server instead of the @uref{https://pagekite.net,,pagekite.net} service."
+msgstr "Connectez-vous au serveur frontal nommé PageKite au lieu du service @uref{https://pagekite.net,,pagekite.net}."
+
+#. type: item
+#: doc/guix.texi:16840
+#, no-wrap
+msgid "@code{kites} (default: @code{'(\"http:@@kitename:localhost:80:@@kitesecret\")})"
+msgstr "@code{kites} (par défaut : @code{'(\"http:@@kitename:localhost:80:@@kitesecret\")})"
+
+#. type: table
+#: doc/guix.texi:16843
+msgid "List of service kites to use.  Exposes HTTP on port 80 by default. The format is @code{proto:kitename:host:port:secret}."
+msgstr "Liste de services kites à utiliser.  Expose HTTP sur le port 80 par défaut. Le format est @code{proto:nomdukite:hôte:port:secret}."
+
+#. type: item
+#: doc/guix.texi:16844
+#, no-wrap
+msgid "@code{extra-file} (default: @code{#f})"
+msgstr "@code{extra-file} (par défaut : @code{#f})"
+
+#. type: table
+#: doc/guix.texi:16847
+msgid "Extra configuration file to read, which you are expected to create manually.  Use this to add additional options and manage shared secrets out-of-band."
+msgstr "Fichier de configuration supplémentaire à lire, que vous devez créer manuellement.  Utilisez-le pour ajouter des options supplémentaires et gérer les secrets partagés hors bande."
+
+#. type: cindex
+#: doc/guix.texi:16854
+#, no-wrap
+msgid "unattended upgrades"
+msgstr "mises à jour non surveillées"
+
 #. type: cindex
-#: doc/guix.texi:13418
+#: doc/guix.texi:16855
+#, no-wrap
+msgid "upgrades, unattended"
+msgstr "mises à jour, non surveillées"
+
+#. type: Plain text
+#: doc/guix.texi:16860
+msgid "Guix provides a service to perform @emph{unattended upgrades}: periodically, the system automatically reconfigures itself from the latest Guix.  Guix System has several properties that make unattended upgrades safe:"
+msgstr "Guix fournit un service pour effectuer des @emph{unattended upgrades} : périodiquement, le système se reconfigure automatiquement à partir du dernier Guix.  Guix System possède plusieurs propriétés qui rendent les mises à jour non surveillées sûres :"
+
+#. type: itemize
+#: doc/guix.texi:16865
+msgid "upgrades are transactional (either the upgrade succeeds or it fails, but you cannot end up with an ``in-between'' system state);"
+msgstr "les mises à jour sont transactionnelles (soit la mise à jour réussit, soit elle échoue, mais vous ne pouvez pas vous retrouver avec un état système \"intermédiaire\") ;"
+
+#. type: itemize
+#: doc/guix.texi:16869
+msgid "the upgrade log is kept---you can view it with @command{guix system list-generations}---and you can roll back to any previous generation, should the upgraded system fail to behave as intended;"
+msgstr "le journal de mise à niveau est kept--- vous pouvez le consulter avec @command{guix system list-generations}--et vous pouvez revenir à n'importe quelle génération précédente, si le système mis à jour ne se comporte pas comme prévu ;"
+
+#. type: itemize
+#: doc/guix.texi:16872
+msgid "channel code is authenticated so you know you can only run genuine code (@pxref{Channels});"
+msgstr "le code du canal est authentifié, vous savez donc que vous ne pouvez exécuter que du code authentique (@pxref{Canaux}) ;"
+
+#. type: itemize
+#: doc/guix.texi:16875
+msgid "@command{guix system reconfigure} prevents downgrades, which makes it immune to @dfn{downgrade attacks}."
+msgstr "@command{guix system reconfigure} empêche les déclassements, ce qui le rend immunisé contre les attaques @dfn{downgrade attacks}."
+
+#. type: Plain text
+#: doc/guix.texi:16880
+msgid "To set up unattended upgrades, add an instance of @code{unattended-upgrade-service-type} like the one below to the list of your operating system services:"
+msgstr "Pour mettre en place des mises à jour sans surveillance, ajoutez une instance de @code{unattended-upgrade-service-type} comme celle ci-dessous,  à la liste des services de votre système d'exploitation :"
+
+#. type: lisp
+#: doc/guix.texi:16883
+#, no-wrap
+msgid "(service unattended-upgrade-service-type)\n"
+msgstr ""
+"(service unattended-upgrade-service-type)\n"
+"\n"
+
+#. type: Plain text
+#: doc/guix.texi:16890
+msgid "The defaults above set up weekly upgrades: every Sunday at midnight.  You do not need to provide the operating system configuration file: it uses @file{/run/current-system/configuration.scm}, which ensures it always uses your latest configuration---@pxref{provenance-service-type}, for more information about this file."
+msgstr "Les valeurs par défaut ci-dessus mettent en place des mises à jour hebdomadaires : tous les dimanches à minuit.  Il n'est pas nécessaire de fournir le fichier de configuration du système d'exploitation : il utilise @file{/run/current-system/configuration.scm}, ce qui garantit qu'il utilise toujours votre dernière configuration---@pxref{provenance-service-type}, pour plus d'informations sur ce fichier."
+
+#. type: Plain text
+#: doc/guix.texi:16896
+msgid "There are several things that can be configured, in particular the periodicity and services (daemons) to be restarted upon completion.  When the upgrade is successful, the service takes care of deleting system generations older that some threshold, as per @command{guix system delete-generations}.  See the reference below for details."
+msgstr "Plusieurs choses peuvent être configurés, notamment la périodicité et les services (démons) à redémarrer à la fin.  Lorsque la mise à jour est réussie, le service se charge de supprimer les générations de systèmes plus anciennes qu'un certain seuil, conformément à @command{guix system delete-generations}.  Voir la référence ci-dessous pour plus de détails."
+
+#. type: Plain text
+#: doc/guix.texi:16900
+msgid "To ensure that upgrades are actually happening, you can run @command{guix system describe}.  To investigate upgrade failures, visit the unattended upgrade log file (see below)."
+msgstr "Pour vous assurer que les mises à jour sont bien effectuées, vous pouvez exécuter @command{guix system describe}.  Pour enquêter sur les échecs de mise à jour, consultez le fichier journal des mises à jour non surveillées (voir ci-dessous)."
+
+#. type: defvr
+#: doc/guix.texi:16901
+#, no-wrap
+msgid "{Scheme Variable} unattended-upgrade-service-type"
+msgstr "{Variable Scheme} unattended-upgrade-service-type"
+
+#. type: defvr
+#: doc/guix.texi:16905
+msgid "This is the service type for unattended upgrades.  It sets up an mcron job (@pxref{Scheduled Job Execution}) that runs @command{guix system reconfigure} from the latest version of the specified channels."
+msgstr "C'est le type de service pour les mises à jour sans surveillance.  Il met en place un job mcron (@pxref{Scheduled Job Execution}) qui exécute @command{guix system reconfigure} à partir de la dernière version des canaux spécifiés."
+
+#. type: defvr
+#: doc/guix.texi:16908
+msgid "Its value must be a @code{unattended-upgrade-configuration} record (see below)."
+msgstr "Sa valeur doit être un enregistrement @code{unattended-upgrade-configuration} (voir ci-dessous)."
+
+#. type: deftp
+#: doc/guix.texi:16910
+#, no-wrap
+msgid "{Data Type} unattended-upgrade-configuration"
+msgstr "{Type de données} unattended-upgrade-configuration"
+
+#. type: deftp
+#: doc/guix.texi:16913
+msgid "This data type represents the configuration of the unattended upgrade service.  The following fields are available:"
+msgstr "Ce type de données représente la configuration du service de mise à jour non surveillée.  Les champs suivants sont disponibles :"
+
+#. type: item
+#: doc/guix.texi:16915
+#, no-wrap
+msgid "@code{schedule} (default: @code{\"30 01 * * 0\"})"
+msgstr "@code{schedule} (par défaut : @code{\"30 01 * * 0\"})"
+
+#. type: table
+#: doc/guix.texi:16919
+msgid "This is the schedule of upgrades, expressed as a gexp containing an mcron job schedule (@pxref{Guile Syntax, mcron job specifications,, mcron, GNU@tie{}mcron})."
+msgstr "Il s'agit du calendrier des mises à jour, exprimé sous la forme d'une gexp contenant un calendrier des travaux mcron (@pxref{Guile Syntax, mcron job specifications,, mcron, GNU@tie{}mcron})."
+
+#. type: item
+#: doc/guix.texi:16920
+#, no-wrap
+msgid "@code{channels} (default: @code{#~%default-channels})"
+msgstr "@code{channels} (par défaut : @code{#~%default-channels})"
+
+#. type: table
+#: doc/guix.texi:16924
+msgid "This gexp specifies the channels to use for the upgrade (@pxref{Channels}).  By default, the tip of the official @code{guix} channel is used."
+msgstr "Ce gexp spécifie les canaux à utiliser pour la mise à jour (@pxref{Canaux}).  Par défaut, l'extrémité du canal officiel @code{guix} est utilisée."
+
+#. type: item
+#: doc/guix.texi:16925
+#, no-wrap
+msgid "@code{operating-system-file} (default: @code{\"/run/current-system/configuration.scm\"})"
+msgstr "@code{operating-system-file} (par défaut : @code{\"/run/current-system/configuration.scm\"})"
+
+#. type: table
+#: doc/guix.texi:16928
+msgid "This field specifies the operating system configuration file to use.  The default is to reuse the config file of the current configuration."
+msgstr "Ce champ indique le fichier de configuration du système d'exploitation à utiliser.  La valeur par défaut est de réutiliser le fichier de configuration de la configuration actuelle."
+
+#. type: table
+#: doc/guix.texi:16934
+msgid "There are cases, though, where referring to @file{/run/current-system/configuration.scm} is not enough, for instance because that file refers to extra files (SSH public keys, extra configuration files, etc.) @i{via} @code{local-file} and similar constructs.  For those cases, we recommend something along these lines:"
+msgstr "Il y a cependant des cas où la référence à @file{/run/current-system/configuration.scm} n'est pas suffisante, par exemple parce que ce fichier fait référence à des fichiers supplémentaires (clés publiques SSH, fichiers de configuration supplémentaires, etc.) @i{via} @code{local-file} et constructions similaires.  Pour ces cas, nous recommandons quelque chose qui va dans ce sens :"
+
+#. type: lisp
+#: doc/guix.texi:16940
+#, no-wrap
+msgid ""
+"(unattended-upgrade-configuration\n"
+"  (operating-system-file\n"
+"    (file-append (local-file \".\" \"config-dir\" #:recursive? #t)\n"
+"                 \"/config.scm\")))\n"
+msgstr ""
+"(unattended-upgrade-configuration\n"
+"  (operating-system-file\n"
+"    (file-append (local-file \".\" \"config-dir\" #:recursive? #t)\n"
+"                 \"/config.scm\")))\n"
+
+#. type: table
+#: doc/guix.texi:16947
+msgid "The effect here is to import all of the current directory into the store, and to refer to @file{config.scm} within that directory.  Therefore, uses of @code{local-file} within @file{config.scm} will work as expected.  @xref{G-Expressions}, for information about @code{local-file} and @code{file-append}."
+msgstr "L'effet ici est d'importer tout le répertoire courant dans le dépôt, et de se référer à @file{config.scm} dans ce répertoire.  Par conséquent, l'utilisation de @code{local-file} dans @file{config.scm} fonctionnera comme prévu.  @xref{G-Expressions}, pour plus d' informations sur @code{local-file} et @code{file-append}."
+
+#. type: item
+#: doc/guix.texi:16948
+#, no-wrap
+msgid "@code{services-to-restart} (default: @code{'(mcron)})"
+msgstr "@code{services-to-restart} (par défaut : @code{'(mcron)})"
+
+#. type: table
+#: doc/guix.texi:16951
+msgid "This field specifies the Shepherd services to restart when the upgrade completes."
+msgstr "Ce champ indique les services Shepherd à redémarrer lorsque la mise à jour est terminée."
+
+#. type: table
+#: doc/guix.texi:16958
+msgid "Those services are restarted right away upon completion, as with @command{herd restart}, which ensures that the latest version is running---remember that by default @command{guix system reconfigure} only restarts services that are not currently running, which is conservative: it minimizes disruption but leaves outdated services running."
+msgstr "Ces services sont redémarrés dès qu'ils sont terminés, comme avec @command{herd restart}, ce qui garantit que la dernière version fonctionne---souvenez-vous que par défaut @command{guix system reconfigure} ne redémarre que les services qui ne fonctionnent pas actuellement, ce qui est conservateur : cela minimise les perturbations mais laisse fonctionner les services obsolètes."
+
+#. type: table
+#: doc/guix.texi:16961
+msgid "By default, the @code{mcron} service is restarted.  This ensures that the latest version of the unattended upgrade job will be used next time."
+msgstr "Par défaut, le service @code{mcron} est redémarré.  Cela garantit que la dernière version du travail de mise à niveau non surveillée sera utilisée la prochaine fois."
+
+#. type: item
+#: doc/guix.texi:16962
+#, no-wrap
+msgid "@code{system-expiration} (default: @code{(* 3 30 24 3600)})"
+msgstr "@code{system-expiration} (par défaut : @code{(*  3 30 24 3600)})"
+
+#. type: table
+#: doc/guix.texi:16966
+msgid "This is the expiration time in seconds for system generations.  System generations older that this amount of time are deleted with @command{guix system delete-generations} when an upgrade completes."
+msgstr "C'est le temps d'expiration en secondes pour les générations du système.  Les générations du système plus anciennes que ce délai sont supprimées avec @command{guix system delete-generations} lorsqu'une mise à jour se termine ."
+
+#. type: quotation
+#: doc/guix.texi:16971
+msgid "The unattended upgrade service does not run the garbage collector.  You will probably want to set up your own mcron job to run @command{guix gc} periodically."
+msgstr "Le service de mise à jour sans surveillance ne fait pas fonctionner le ramasse miettes.  Vous voudrez probablement configurer votre propre job mcron pour exécuter @command{guix gc} périodiquement."
+
+#. type: item
+#: doc/guix.texi:16973
+#, no-wrap
+msgid "@code{maximum-duration} (default: @code{3600})"
+msgstr "@code{minimum-duration} (par défaut : @code{3600})"
+
+#. type: table
+#: doc/guix.texi:16976
+msgid "Maximum duration in seconds for the upgrade; past that time, the upgrade aborts."
+msgstr "Durée maximale en secondes de la mise à jour ; passé ce délai, la mise à jour est interrompue."
+
+#. type: table
+#: doc/guix.texi:16979
+msgid "This is primarily useful to ensure the upgrade does not end up rebuilding or re-downloading ``the world''."
+msgstr "Cela est surtout utile pour s'assurer que la mise à jour ne finira pas par reconstruire ou retélécharger « le monde »."
+
+#. type: item
+#: doc/guix.texi:16980
+#, no-wrap
+msgid "@code{log-file} (default: @code{\"/var/log/unattended-upgrade.log\"})"
+msgstr "@code{log-file} (par défaut : @code{\"/var/log/unattended-upgrade.log\"})"
+
+#. type: table
+#: doc/guix.texi:16982
+msgid "File where unattended upgrades are logged."
+msgstr "Fichier où sont consignées les mises à jour non surveillées."
+
+#. type: cindex
+#: doc/guix.texi:16988
 #, no-wrap
 msgid "X11"
 msgstr "X11"
 
 #. type: cindex
-#: doc/guix.texi:13419
+#: doc/guix.texi:16989
 #, no-wrap
 msgid "X Window System"
 msgstr "Système de fenêtrage X"
 
 #. type: cindex
-#: doc/guix.texi:13420 doc/guix.texi:13669
+#: doc/guix.texi:16990 doc/guix.texi:17243
 #, no-wrap
 msgid "login manager"
 msgstr "gestionnaire de connexion"
 
 #. type: Plain text
-#: doc/guix.texi:13425
+#: doc/guix.texi:16995
 msgid "Support for the X Window graphical display system---specifically Xorg---is provided by the @code{(gnu services xorg)} module.  Note that there is no @code{xorg-service} procedure.  Instead, the X server is started by the @dfn{login manager}, by default the GNOME Display Manager (GDM)."
 msgstr "La prise en chargue du système d'affichage graphique X Window — en particulier Xorg — est fournit par le module @code{(gnu services xorg)}.  Remarquez qu'il n'y a pas de procédure @code{xorg-service}.  À la place, le serveur X est démarré par le @dfn{gestionnaire de connexion}, par défaut le gestionnaire d'affichage de GNOME (GDM)."
 
 #. type: cindex
-#: doc/guix.texi:13426
+#: doc/guix.texi:16996
 #, no-wrap
 msgid "GDM"
 msgstr "GDM"
 
 #. type: cindex
-#: doc/guix.texi:13427
+#: doc/guix.texi:16997
 #, no-wrap
 msgid "GNOME, login manager"
 msgstr "GNOME, gestionnaire de connexion"
 
 #. type: Plain text
-#: doc/guix.texi:13431
+#: doc/guix.texi:17001
 msgid "GDM of course allows users to log in into window managers and desktop environments other than GNOME; for those using GNOME, GDM is required for features such as automatic screen locking."
 msgstr "GDM permet évidemment aux utilisateurs de se connecter et d'ouvrir un gestionnaire de fenêtre ou un gestionnaire d'environnement autre que GNOME ; pour ceux qui utilisent GNOME, GDM est requis pour certaines fonctionnalités comme l'écran de verrouillage automatique."
 
 #. type: cindex
-#: doc/guix.texi:13432
+#: doc/guix.texi:17002
 #, no-wrap
 msgid "window manager"
 msgstr "gestionnaire de fenêtre"
 
 #. type: Plain text
-#: doc/guix.texi:13437
+#: doc/guix.texi:17007
 msgid "To use X11, you must install at least one @dfn{window manager}---for example the @code{windowmaker} or @code{openbox} packages---preferably by adding it to the @code{packages} field of your operating system definition (@pxref{operating-system Reference, system-wide packages})."
 msgstr "Pour utiliser X11, vous devez installer au moins un @dfn{gestionnaire de fenêtre} — par exemple les paquets @code{windowmaker} ou @code{openbox} — de préférence en l'ajoutant au champ @code{packages} de votre définition de système d'exploitation (@pxref{operating-system Reference, system-wide packages})."
 
 #. type: defvr
-#: doc/guix.texi:13438
+#: doc/guix.texi:17008
 #, no-wrap
 msgid "{Scheme Variable} gdm-service-type"
 msgstr "{Variable Scheme} gdm-service-type"
 
 #. type: defvr
-#: doc/guix.texi:13443
-msgid "This is the type for the @uref{https://wiki.gnome.org/Projects/GDM/, GNOME Desktop Manager} (GDM), a program that manages graphical display servers and handles graphical user logins.  Its value must be a @code{gdm-configuration} (see below.)"
-msgstr "C'est le type pour le @uref{https://wiki.gnome.org/Projects/GDM/, gestionnaire d'affichage de GNOME} (GDM), un programme qui gère les serveurs d'affichage graphiques et s'occupe de la connexion graphique des utilisateurs.  Sa valeur doit être un @code{gdm-configuration} (voir plus bas)."
+#: doc/guix.texi:17013
+msgid "This is the type for the @uref{https://wiki.gnome.org/Projects/GDM/, GNOME Desktop Manager} (GDM), a program that manages graphical display servers and handles graphical user logins.  Its value must be a @code{gdm-configuration} (see below)."
+msgstr "C'est le type pour le @uref{https://wiki.gnome.org/Projects/GDM/, GNOME Desktop Manager} (GDM), un programme qui gère les serveurs d'affichage graphique et qui gère les connexions graphiques des utilisateur·rice·s.  Sa valeur doit être un @code{gdm-configuration} (voir ci-dessous)."
 
 #. type: cindex
-#: doc/guix.texi:13444
+#: doc/guix.texi:17014
 #, no-wrap
 msgid "session types (X11)"
 msgstr "types de sessions (X11)"
 
 #. type: cindex
-#: doc/guix.texi:13445
+#: doc/guix.texi:17015
 #, no-wrap
 msgid "X11 session types"
 msgstr "X11, types de sessions"
 
 #. type: defvr
-#: doc/guix.texi:13451
+#: doc/guix.texi:17021
 msgid "GDM looks for @dfn{session types} described by the @file{.desktop} files in @file{/run/current-system/profile/share/xsessions} and allows users to choose a session from the log-in screen.  Packages such as @code{gnome}, @code{xfce}, and @code{i3} provide @file{.desktop} files; adding them to the system-wide set of packages automatically makes them available at the log-in screen."
 msgstr "GDM cherche des @dfn{types de sessions} définies par les fichiers @file{.desktop} dans @file{/run/current-system/profile/share/xsessions} et permet aux utilisateurs de choisir une session depuis l'écran de connexion.  Les paquets comme @code{gnmoe}, @code{xfce} et @code{i3} fournissent des fichiers @file{.desktop} ; les ajouter à l'ensemble des paquets du système les rendra automatiquement disponibles sur l'écran de connexion."
 
 #. type: defvr
-#: doc/guix.texi:13455
+#: doc/guix.texi:17025
 msgid "In addition, @file{~/.xsession} files are honored.  When available, @file{~/.xsession} must be an executable that starts a window manager and/or other X clients."
 msgstr "En plus, les fichiers @file{~/.xsession} sont honorées.  Lorsqu'il est disponible, @file{~/.xsession} doit être un fichier exécutable qui démarre un gestionnaire de fenêtre au un autre client X."
 
 #. type: deftp
-#: doc/guix.texi:13457
+#: doc/guix.texi:17027
 #, no-wrap
 msgid "{Data Type} gdm-configuration"
 msgstr "{Type de données} gdm-configuration"
 
 #. type: item
-#: doc/guix.texi:13459 doc/guix.texi:13525
+#: doc/guix.texi:17029 doc/guix.texi:17098
 #, no-wrap
 msgid "@code{auto-login?} (default: @code{#f})"
 msgstr "@code{auto-login?} (par défaut : @code{#f})"
 
 #. type: itemx
-#: doc/guix.texi:13460
+#: doc/guix.texi:17030
 #, no-wrap
 msgid "@code{default-user} (default: @code{#f})"
 msgstr "@code{default-user} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:13462
+#: doc/guix.texi:17032
 msgid "When @code{auto-login?} is false, GDM presents a log-in screen."
 msgstr "Lorsque @code{auto-login?} est faux, GDM présente un écran de connexion."
 
 #. type: table
-#: doc/guix.texi:13465
+#: doc/guix.texi:17035
 msgid "When @code{auto-login?} is true, GDM logs in directly as @code{default-user}."
 msgstr "Lorsque @code{auto-login?} est vrai, GDM se connecte directement en tant que @code{default-user}."
 
 #. type: item
-#: doc/guix.texi:13466
+#: doc/guix.texi:17036 doc/guix.texi:21676 doc/guix.texi:23378
+#: doc/guix.texi:27426 doc/guix.texi:27455 doc/guix.texi:27484
+#: doc/guix.texi:27511 doc/guix.texi:27566 doc/guix.texi:27591
+#: doc/guix.texi:27618 doc/guix.texi:27644 doc/guix.texi:27686
+#, no-wrap
+msgid "@code{debug?} (default: @code{#f})"
+msgstr "@code{debug?} (par défaut : @code{#f})"
+
+#. type: table
+#: doc/guix.texi:17038
+msgid "When true, GDM writes debug messages to its log."
+msgstr "Lorsqu'il est « vrai », GDM écrit des messages de débogage dans son journal."
+
+#. type: item
+#: doc/guix.texi:17039
 #, no-wrap
 msgid "@code{gnome-shell-assets} (default: ...)"
 msgstr "@code{gnome-shell-assets} (par défaut : …)"
 
 #. type: table
-#: doc/guix.texi:13468
+#: doc/guix.texi:17041
 msgid "List of GNOME Shell assets needed by GDM: icon theme, fonts, etc."
 msgstr "Liste de données requises par GDM : un thème d'icônes, des polices, etc."
 
 #. type: item
-#: doc/guix.texi:13469
+#: doc/guix.texi:17042
 #, no-wrap
 msgid "@code{xorg-configuration} (default: @code{(xorg-configuration)})"
 msgstr "@code{xorg-configuration} (par défaut : @code{(xorg-configuration)})"
 
 #. type: table
-#: doc/guix.texi:13471 doc/guix.texi:13552 doc/guix.texi:13635
+#: doc/guix.texi:17044 doc/guix.texi:17125 doc/guix.texi:17209
 msgid "Configuration of the Xorg graphical server."
 msgstr "Configuration du serveur graphique Xorg."
 
 #. type: item
-#: doc/guix.texi:13472
+#: doc/guix.texi:17045
 #, no-wrap
 msgid "@code{xsession} (default: @code{(xinitrc)})"
 msgstr "@code{xsession} (par défaut : @code{xinitrc})"
 
 #. type: table
-#: doc/guix.texi:13474 doc/guix.texi:13650
+#: doc/guix.texi:17047 doc/guix.texi:17224
 msgid "Script to run before starting a X session."
 msgstr "Le script à lancer avant de démarrer une session X."
 
 #. type: item
-#: doc/guix.texi:13475
+#: doc/guix.texi:17048
 #, no-wrap
 msgid "@code{dbus-daemon} (default: @code{dbus-daemon-wrapper})"
 msgstr "@code{dbus-daemon} (par défaut : @code{dbus-daemon-wrapper})"
 
 #. type: table
-#: doc/guix.texi:13477
+#: doc/guix.texi:17050
 msgid "File name of the @code{dbus-daemon} executable."
 msgstr "Nom du fichier de l'exécutable @code{dbus-daemon}."
 
 #. type: item
-#: doc/guix.texi:13478
+#: doc/guix.texi:17051
 #, no-wrap
 msgid "@code{gdm} (default: @code{gdm})"
 msgstr "@code{gdm} (par défaut : @code{gdm})"
 
 #. type: table
-#: doc/guix.texi:13480
+#: doc/guix.texi:17053
 msgid "The GDM package to use."
 msgstr "Le paquet GDM à utiliser."
 
 #. type: defvr
-#: doc/guix.texi:13483
+#: doc/guix.texi:17056
 #, no-wrap
 msgid "{Scheme Variable} slim-service-type"
 msgstr "{Variable Scheme} slim-service-type"
 
 #. type: defvr
-#: doc/guix.texi:13485
+#: doc/guix.texi:17058
 msgid "This is the type for the SLiM graphical login manager for X11."
 msgstr "C'est de type pour le gestionnaire de connexion graphique SLiM pour X11."
 
 #. type: defvr
-#: doc/guix.texi:13489
+#: doc/guix.texi:17062
 msgid "Like GDM, SLiM looks for session types described by @file{.desktop} files and allows users to choose a session from the log-in screen using @kbd{F1}.  It also honors @file{~/.xsession} files."
 msgstr "Comme GDM, SLiM recherche des types de sessions décrites par des fichiers @file{.desktop} et permet aux utilisateurs de choisir une session à partir de l'écran de connexion avec @kbd{F1}.  Il comprend aussi les fichiers @file{~/.xsession}."
 
 #. type: defvr
-#: doc/guix.texi:13496
+#: doc/guix.texi:17069
 msgid "Unlike GDM, SLiM does not spawn the user session on a different VT after logging in, which means that you can only start one graphical session.  If you want to be able to run multiple graphical sessions at the same time you have to add multiple SLiM services to your system services.  The following example shows how to replace the default GDM service with two SLiM services on tty7 and tty8."
 msgstr "Contrairement à GDM, SLiM ne démarre pas la session utilisateur sur un terminal virtuel différent à la connexion, ce qui signifie que vous ne pouvez démarrer qu'une seule session graphique.  Si vous voulez pouvoir exécuter plusieurs sessions graphiques en même temps, vous devez ajouter plusieurs services SLiM à la liste des services de votre système.  L'exemple suivant montre comment remplacer le service GDM par défaut par deux services SLiM sur les tty 7 et 8."
 
 #. type: lisp
-#: doc/guix.texi:13502
+#: doc/guix.texi:17075
 #, no-wrap
 msgid ""
 "(use-modules (gnu services)\n"
@@ -25042,7 +31568,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:13514
+#: doc/guix.texi:17087
 #, no-wrap
 msgid ""
 "(operating-system\n"
@@ -25070,697 +31596,753 @@ msgstr ""
 "                           %desktop-services))))\n"
 
 #. type: deftp
-#: doc/guix.texi:13518
+#: doc/guix.texi:17091
 #, no-wrap
 msgid "{Data Type} slim-configuration"
 msgstr "{Type de données} slim-configuration"
 
 #. type: deftp
-#: doc/guix.texi:13520
+#: doc/guix.texi:17093
 msgid "Data type representing the configuration of @code{slim-service-type}."
 msgstr "Type de données représentant la configuration de @code{slim-service-type}."
 
 #. type: table
-#: doc/guix.texi:13524
+#: doc/guix.texi:17097
 msgid "Whether to allow logins with empty passwords."
 msgstr "S'il faut autoriser les connexions avec un mot de passe vide."
 
 #. type: itemx
-#: doc/guix.texi:13526
+#: doc/guix.texi:17099
 #, no-wrap
 msgid "@code{default-user} (default: @code{\"\"})"
 msgstr "@code{default-user} (par défaut : @code{\"\"})"
 
 #. type: table
-#: doc/guix.texi:13528
+#: doc/guix.texi:17101
 msgid "When @code{auto-login?} is false, SLiM presents a log-in screen."
 msgstr "Lorsque @code{auto-login?} est faux, SLiM présent un écran de connexion."
 
 #. type: table
-#: doc/guix.texi:13531
+#: doc/guix.texi:17104
 msgid "When @code{auto-login?} is true, SLiM logs in directly as @code{default-user}."
 msgstr "Lorsque @code{auto-login?} est vrai, SLiM se connecte directement en tant que @code{default-user}."
 
 #. type: item
-#: doc/guix.texi:13532
+#: doc/guix.texi:17105
 #, no-wrap
 msgid "@code{theme} (default: @code{%default-slim-theme})"
 msgstr "@code{theme} (par défaut : @code{%default-slim-theme})"
 
 #. type: itemx
-#: doc/guix.texi:13533
+#: doc/guix.texi:17106
 #, no-wrap
 msgid "@code{theme-name} (default: @code{%default-slim-theme-name})"
 msgstr "@code{theme-name} (par défaut : @code{%default-slim-theme-name})"
 
 #. type: table
-#: doc/guix.texi:13535
+#: doc/guix.texi:17108
 msgid "The graphical theme to use and its name."
 msgstr "Le thème graphique à utiliser et son nom."
 
 #. type: item
-#: doc/guix.texi:13536
+#: doc/guix.texi:17109
 #, no-wrap
 msgid "@code{auto-login-session} (default: @code{#f})"
 msgstr "@code{auto-login-session} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:13539
+#: doc/guix.texi:17112
 msgid "If true, this must be the name of the executable to start as the default session---e.g., @code{(file-append windowmaker \"/bin/windowmaker\")}."
 msgstr "Si la valeur est vraie, elle doit être le nom d'un exécutable à démarrer comme session par défaut — p.@: ex.@: @code{(file-append windowmaker \"/bin/windowmaker\")}."
 
 #. type: table
-#: doc/guix.texi:13543
+#: doc/guix.texi:17116
 msgid "If false, a session described by one of the available @file{.desktop} files in @code{/run/current-system/profile} and @code{~/.guix-profile} will be used."
 msgstr "Si la valeur est fausse, une session décrite par l'un des fichiers @file{.desktop} disponibles dans @code{/run/current-system/profile} et @code{~/.guix-profile} sera utilisée."
 
 #. type: quotation
-#: doc/guix.texi:13548
+#: doc/guix.texi:17121
 msgid "You must install at least one window manager in the system profile or in your user profile.  Failing to do that, if @code{auto-login-session} is false, you will be unable to log in."
 msgstr "Vous devez installer au moins un gestionnaire de fenêtres dans le profil du système ou dans votre profil utilisateur.  Sinon, si @code{auto-login-session} est faux, vous ne serez jamais capable de vous connecter."
 
 #. type: item
-#: doc/guix.texi:13550 doc/guix.texi:13633
+#: doc/guix.texi:17123 doc/guix.texi:17207
 #, no-wrap
 msgid "@code{xorg-configuration} (default @code{(xorg-configuration)})"
 msgstr "@code{xorg-configuration} (par défaut : @code{(xorg-configuration)})"
 
 #. type: item
-#: doc/guix.texi:13553
+#: doc/guix.texi:17126
 #, no-wrap
 msgid "@code{display} (default @code{\":0\"})"
 msgstr "@code{display} (par défaut : @code{\":0\"})"
 
 #. type: table
-#: doc/guix.texi:13555
+#: doc/guix.texi:17128
 msgid "The display on which to start the Xorg graphical server."
 msgstr "La session d'affichage sur laquelle démarrer le serveur graphique Xorg."
 
 #. type: item
-#: doc/guix.texi:13556
+#: doc/guix.texi:17129
 #, no-wrap
 msgid "@code{vt} (default @code{\"vt7\"})"
 msgstr "@code{vt} (par défaut : @code{\"vt7\"})"
 
 #. type: table
-#: doc/guix.texi:13558
+#: doc/guix.texi:17131
 msgid "The VT on which to start the Xorg graphical server."
 msgstr "Le terminal virtuel sur lequel démarrer le serveur d'affichage graphique Xorg."
 
 #. type: item
-#: doc/guix.texi:13559
+#: doc/guix.texi:17132
 #, no-wrap
 msgid "@code{xauth} (default: @code{xauth})"
 msgstr "@code{xauth} (par défaut : @code{xauth})"
 
 #. type: table
-#: doc/guix.texi:13561
+#: doc/guix.texi:17134
 msgid "The XAuth package to use."
 msgstr "Le paquet XAuth à utiliser."
 
 #. type: item
-#: doc/guix.texi:13562
+#: doc/guix.texi:17135
 #, no-wrap
 msgid "@code{shepherd} (default: @code{shepherd})"
 msgstr "@code{shepherd} (par défaut : @code{shepherd})"
 
 #. type: table
-#: doc/guix.texi:13565
+#: doc/guix.texi:17138
 msgid "The Shepherd package used when invoking @command{halt} and @command{reboot}."
 msgstr "Le paquet Shepherd à utiliser pour invoquer @command{halt} et @command{reboot}."
 
 #. type: item
-#: doc/guix.texi:13566
+#: doc/guix.texi:17139
 #, no-wrap
 msgid "@code{sessreg} (default: @code{sessreg})"
 msgstr "@code{sessreg} (par défaut : @code{sessreg})"
 
 #. type: table
-#: doc/guix.texi:13568
+#: doc/guix.texi:17141
 msgid "The sessreg package used in order to register the session."
 msgstr "Le paquet sessreg à utiliser pour enregistrer la session."
 
 #. type: item
-#: doc/guix.texi:13569
+#: doc/guix.texi:17142
 #, no-wrap
 msgid "@code{slim} (default: @code{slim})"
 msgstr "@code{slim} (par défaut : @code{slim})"
 
 #. type: table
-#: doc/guix.texi:13571
+#: doc/guix.texi:17144
 msgid "The SLiM package to use."
 msgstr "Le paquet SLiM à utiliser."
 
 #. type: defvr
-#: doc/guix.texi:13574 doc/guix.texi:24215
+#: doc/guix.texi:17147
 #, no-wrap
 msgid "{Scheme Variable} %default-theme"
 msgstr "{Variable Scheme} %default-theme"
 
 #. type: defvrx
-#: doc/guix.texi:13575
+#: doc/guix.texi:17148
 #, no-wrap
 msgid "{Scheme Variable} %default-theme-name"
 msgstr "{Variable Scheme} %default-theme-name"
 
 #. type: defvr
-#: doc/guix.texi:13577
+#: doc/guix.texi:17150
 msgid "The default SLiM theme and its name."
 msgstr "Le thème SLiM par défaut et son nom."
 
 #. type: deftp
-#: doc/guix.texi:13580
+#: doc/guix.texi:17153 doc/guix.texi:17260
 #, no-wrap
 msgid "{Data Type} sddm-configuration"
 msgstr "{Type de données} sddm-configuration"
 
 #. type: deftp
-#: doc/guix.texi:13582
-msgid "This is the data type representing the sddm service configuration."
-msgstr "C'est le type de données représentant la configuration du service sddm."
+#: doc/guix.texi:17155
+msgid "This is the data type representing the SDDM service configuration."
+msgstr "C'est le type de données représentant la configuration du service SDDM."
 
 #. type: item
-#: doc/guix.texi:13584
+#: doc/guix.texi:17157
 #, no-wrap
 msgid "@code{display-server} (default: \"x11\")"
 msgstr "@code{display-server} (par défaut : \"x11\")"
 
 #. type: table
-#: doc/guix.texi:13587
-msgid "Select display server to use for the greeter. Valid values are \"x11\" or \"wayland\"."
-msgstr "Choisit le serveur d'affichage à utiliser pour l'écran d'accueil.  Les valeurs valides sont « x11 » et « wayland »."
+#: doc/guix.texi:17160
+msgid "Select display server to use for the greeter.  Valid values are @samp{\"x11\"} or @samp{\"wayland\"}."
+msgstr "Choisit le serveur d'affichage à utiliser pour l'écran d'accueil.  Les valeurs valides sont @samp{\"x11\"} ou @samp{\"wayland\"}."
 
 #. type: item
-#: doc/guix.texi:13588
+#: doc/guix.texi:17161
 #, no-wrap
 msgid "@code{numlock} (default: \"on\")"
 msgstr "@code{numlock} (par défaut : \"on\")"
 
 #. type: table
-#: doc/guix.texi:13590
-msgid "Valid values are \"on\", \"off\" or \"none\"."
-msgstr "Les valeurs valides sont « on », « off » ou « none »."
+#: doc/guix.texi:17163
+msgid "Valid values are @samp{\"on\"}, @samp{\"off\"} or @samp{\"none\"}."
+msgstr "Les valeurs valides sont @samp{\"on\"}, @samp{\"off\"} or @samp{\"none\"}."
 
 #. type: item
-#: doc/guix.texi:13591
+#: doc/guix.texi:17164
 #, no-wrap
 msgid "@code{halt-command} (default @code{#~(string-apppend #$shepherd \"/sbin/halt\")})"
 msgstr "@code{halt-command} (par défaut : @code{#~(string-apppend #$shepherd \"/sbin/halt\")})"
 
 #. type: table
-#: doc/guix.texi:13593
+#: doc/guix.texi:17166
 msgid "Command to run when halting."
 msgstr "La commande à lancer à l'arrêt du système."
 
 #. type: item
-#: doc/guix.texi:13594
+#: doc/guix.texi:17167
 #, no-wrap
 msgid "@code{reboot-command} (default @code{#~(string-append #$shepherd \"/sbin/reboot\")})"
 msgstr "@code{reboot-command} (par défaut : @code{#~(string-append #$shepherd \"/sbin/reboot\")})"
 
 #. type: table
-#: doc/guix.texi:13596
+#: doc/guix.texi:17169
 msgid "Command to run when rebooting."
 msgstr "La commande à lancer lors du redémarrage du système."
 
 #. type: item
-#: doc/guix.texi:13597
+#: doc/guix.texi:17170
 #, no-wrap
 msgid "@code{theme} (default \"maldives\")"
 msgstr "@code{theme} (par défaut : \"maldives\")"
 
 #. type: table
-#: doc/guix.texi:13599
-msgid "Theme to use. Default themes provided by SDDM are \"elarun\" or \"maldives\"."
-msgstr "Le thème à utiliser.  Les thèmes par défaut fournis par SDDM sont « elarun » et « maldives »."
+#: doc/guix.texi:17173
+msgid "Theme to use.  Default themes provided by SDDM are @samp{\"elarun\"}, @samp{\"maldives\"} or @samp{\"maya\"}."
+msgstr "Thème à utiliser.  Les thèmes par défaut fournis par SDDM sont @samp{\"elarun\"}, @samp{\"maldives\"} ou @samp{\"maya\"}."
 
 #. type: item
-#: doc/guix.texi:13600
+#: doc/guix.texi:17174
 #, no-wrap
 msgid "@code{themes-directory} (default \"/run/current-system/profile/share/sddm/themes\")"
 msgstr "@code{themes-directory} (par défaut : \"/run/current-system/profile/share/sddm/themes\")"
 
 #. type: table
-#: doc/guix.texi:13602
+#: doc/guix.texi:17176
 msgid "Directory to look for themes."
 msgstr "Le répertoire où se trouvent les thèmes."
 
 #. type: item
-#: doc/guix.texi:13603
+#: doc/guix.texi:17177
 #, no-wrap
 msgid "@code{faces-directory} (default \"/run/current-system/profile/share/sddm/faces\")"
 msgstr "@code{faces-directory} (par défaut : \"/run/current-system/profile/share/sddm/faces\")"
 
 #. type: table
-#: doc/guix.texi:13605
+#: doc/guix.texi:17179
 msgid "Directory to look for faces."
 msgstr "Répertoire où se trouvent les avatars."
 
 #. type: item
-#: doc/guix.texi:13606
+#: doc/guix.texi:17180
 #, no-wrap
 msgid "@code{default-path} (default \"/run/current-system/profile/bin\")"
 msgstr "@code{default-path} (par défaut : \"/run/current-system/profile/bin\")"
 
 #. type: table
-#: doc/guix.texi:13608
+#: doc/guix.texi:17182
 msgid "Default PATH to use."
 msgstr "Le PATH par défaut à utiliser."
 
 #. type: item
-#: doc/guix.texi:13609
+#: doc/guix.texi:17183
 #, no-wrap
-msgid "@code{minimum-uid} (default 1000)"
+msgid "@code{minimum-uid} (default: 1000)"
 msgstr "@code{minimum-uid} (par défaut : 1000)"
 
 #. type: table
-#: doc/guix.texi:13611
-msgid "Minimum UID to display in SDDM."
-msgstr "UID minimum pour être affiché dans SDDM."
+#: doc/guix.texi:17185
+msgid "Minimum UID displayed in SDDM and allowed for log-in."
+msgstr "UID minimum affiché dans le SDDM et autorisé pour la connexion."
 
 #. type: item
-#: doc/guix.texi:13612
+#: doc/guix.texi:17186
 #, no-wrap
-msgid "@code{maximum-uid} (default 2000)"
+msgid "@code{maximum-uid} (default: 2000)"
 msgstr "@code{maximum-uid} (par défaut : 2000)"
 
 #. type: table
-#: doc/guix.texi:13614
-msgid "Maximum UID to display in SDDM"
-msgstr "UID maximum pour être affiché dans SDDM"
+#: doc/guix.texi:17188
+msgid "Maximum UID to display in SDDM."
+msgstr "UID maximum pour être affiché dans SDDM."
 
 #. type: item
-#: doc/guix.texi:13615
+#: doc/guix.texi:17189
 #, no-wrap
 msgid "@code{remember-last-user?} (default #t)"
 msgstr "@code{remember-last-user?} (par défaut : #t)"
 
 #. type: table
-#: doc/guix.texi:13617
+#: doc/guix.texi:17191
 msgid "Remember last user."
 msgstr "S'il faut se rappeler le dernier utilisateur connecté."
 
 #. type: item
-#: doc/guix.texi:13618
+#: doc/guix.texi:17192
 #, no-wrap
 msgid "@code{remember-last-session?} (default #t)"
 msgstr "@code{remember-last-session?} (par défaut : #t)"
 
 #. type: table
-#: doc/guix.texi:13620
+#: doc/guix.texi:17194
 msgid "Remember last session."
 msgstr "S'il faut se rappeler la dernière session."
 
 #. type: item
-#: doc/guix.texi:13621
+#: doc/guix.texi:17195
 #, no-wrap
 msgid "@code{hide-users} (default \"\")"
 msgstr "@code{hide-users} (par défaut : \"\")"
 
 #. type: table
-#: doc/guix.texi:13623
+#: doc/guix.texi:17197
 msgid "Usernames to hide from SDDM greeter."
 msgstr "Les noms d'utilisateurs à cacher sur l'écran d'accueil de SDDM."
 
 #. type: item
-#: doc/guix.texi:13624
+#: doc/guix.texi:17198
 #, no-wrap
 msgid "@code{hide-shells} (default @code{#~(string-append #$shadow \"/sbin/nologin\")})"
 msgstr "@code{hide-shells} (par défaut : @code{#~(string-append #$shadow \"/sbin/nologin\")})"
 
 #. type: table
-#: doc/guix.texi:13626
+#: doc/guix.texi:17200
 msgid "Users with shells listed will be hidden from the SDDM greeter."
 msgstr "Les utilisateurs avec les shells listés seront cachés sur l'écran d'accueil de SDDM."
 
 #. type: item
-#: doc/guix.texi:13627
+#: doc/guix.texi:17201
 #, no-wrap
 msgid "@code{session-command} (default @code{#~(string-append #$sddm \"/share/sddm/scripts/wayland-session\")})"
 msgstr "@code{session-command} (par défaut : @code{#~(string-append #$sddm \"/share/sddm/scripts/wayland-session\")})"
 
 #. type: table
-#: doc/guix.texi:13629
+#: doc/guix.texi:17203
 msgid "Script to run before starting a wayland session."
 msgstr "Le script à lancer avant de démarrer une session wayland."
 
 #. type: item
-#: doc/guix.texi:13630
+#: doc/guix.texi:17204
 #, no-wrap
 msgid "@code{sessions-directory} (default \"/run/current-system/profile/share/wayland-sessions\")"
 msgstr "@code{sessions-directory} (par défaut : \"/run/current-system/profile/share/wayland-sessions\")"
 
 #. type: table
-#: doc/guix.texi:13632
+#: doc/guix.texi:17206
 msgid "Directory to look for desktop files starting wayland sessions."
 msgstr "Le répertoire où trouver les fichiers .desktop qui démarrent des sessions wayland."
 
 #. type: item
-#: doc/guix.texi:13636
+#: doc/guix.texi:17210
 #, no-wrap
 msgid "@code{xauth-path} (default @code{#~(string-append #$xauth \"/bin/xauth\")})"
 msgstr "@code{xauth-path} (par défaut : @code{#~(string-append #$xauth \"/bin/xauth\")})"
 
 #. type: table
-#: doc/guix.texi:13638
+#: doc/guix.texi:17212
 msgid "Path to xauth."
 msgstr "Chemin vers xauth."
 
 #. type: item
-#: doc/guix.texi:13639
+#: doc/guix.texi:17213
 #, no-wrap
 msgid "@code{xephyr-path} (default @code{#~(string-append #$xorg-server \"/bin/Xephyr\")})"
 msgstr "@code{xephyr-path} (par défaut : @code{#~(string-append #$xorg-server \"/bin/Xephyr\")})"
 
 #. type: table
-#: doc/guix.texi:13641
+#: doc/guix.texi:17215
 msgid "Path to Xephyr."
 msgstr "Chemin vers Xephyr."
 
 #. type: item
-#: doc/guix.texi:13642
+#: doc/guix.texi:17216
 #, no-wrap
 msgid "@code{xdisplay-start} (default @code{#~(string-append #$sddm \"/share/sddm/scripts/Xsetup\")})"
 msgstr "@code{xdisplay-start} (par défaut : @code{#~(string-append #$sddm \"/share/sddm/scripts/Xsetup\")})"
 
 #. type: table
-#: doc/guix.texi:13644
+#: doc/guix.texi:17218
 msgid "Script to run after starting xorg-server."
 msgstr "Le script à lancer après avoir démarré xorg-server."
 
 #. type: item
-#: doc/guix.texi:13645
+#: doc/guix.texi:17219
 #, no-wrap
 msgid "@code{xdisplay-stop} (default @code{#~(string-append #$sddm \"/share/sddm/scripts/Xstop\")})"
 msgstr "@code{xdisplay-stop} (par défaut : @code{#~(string-append #$sddm \"/share/sddm/scripts/Xstop\")})"
 
 #. type: table
-#: doc/guix.texi:13647
+#: doc/guix.texi:17221
 msgid "Script to run before stopping xorg-server."
 msgstr "Le script à lancer avant d'arrêter xorg-server."
 
 #. type: item
-#: doc/guix.texi:13648
+#: doc/guix.texi:17222
 #, no-wrap
 msgid "@code{xsession-command} (default: @code{xinitrc})"
 msgstr "@code{xsession-command} (par défaut : @code{xinitrc})"
 
 #. type: item
-#: doc/guix.texi:13651
+#: doc/guix.texi:17225
 #, no-wrap
 msgid "@code{xsessions-directory} (default: \"/run/current-system/profile/share/xsessions\")"
 msgstr "@code{xsessions-directory} (par défaut : \"/run/current-system/profile/share/xsessions\")"
 
 #. type: table
-#: doc/guix.texi:13653
+#: doc/guix.texi:17227
 msgid "Directory to look for desktop files starting X sessions."
 msgstr "Répertoire où trouver les fichiers .desktop pour les sessions X."
 
 #. type: item
-#: doc/guix.texi:13654
+#: doc/guix.texi:17228
 #, no-wrap
 msgid "@code{minimum-vt} (default: 7)"
 msgstr "@code{minimum-vt} (par défaut : 7)"
 
 #. type: table
-#: doc/guix.texi:13656
+#: doc/guix.texi:17230
 msgid "Minimum VT to use."
 msgstr "VT minimal à utiliser."
 
 #. type: item
-#: doc/guix.texi:13657
+#: doc/guix.texi:17231
 #, no-wrap
 msgid "@code{auto-login-user} (default \"\")"
 msgstr "@code{auto-login-user} (par défaut : \"\")"
 
 #. type: table
-#: doc/guix.texi:13659
+#: doc/guix.texi:17233
 msgid "User to use for auto-login."
 msgstr "Utilisateur à utiliser pour la connexion automatique."
 
 #. type: item
-#: doc/guix.texi:13660
+#: doc/guix.texi:17234
 #, no-wrap
 msgid "@code{auto-login-session} (default \"\")"
 msgstr "@code{auto-login-session} (par défaut : \"\")"
 
 #. type: table
-#: doc/guix.texi:13662
+#: doc/guix.texi:17236
 msgid "Desktop file to use for auto-login."
 msgstr "Le fichier desktop à utiliser pour la connexion automatique."
 
 #. type: item
-#: doc/guix.texi:13663
+#: doc/guix.texi:17237
 #, no-wrap
 msgid "@code{relogin?} (default #f)"
 msgstr "@code{relogin?} (par défaut : #f)"
 
 #. type: table
-#: doc/guix.texi:13665
+#: doc/guix.texi:17239
 msgid "Relogin after logout."
 msgstr "S'il faut se reconnecter après la déconnexion."
 
 #. type: cindex
-#: doc/guix.texi:13670
+#: doc/guix.texi:17244
 #, no-wrap
 msgid "X11 login"
-msgstr "connexion X11"
+msgstr "Connexion X11"
 
-#. type: deffn
-#: doc/guix.texi:13671
+#. type: defvr
+#: doc/guix.texi:17245
 #, no-wrap
-msgid "{Scheme Procedure} sddm-service config"
-msgstr "{Procédure Scheme} sddm-service config"
+msgid "{Scheme Variable} sddm-service-type"
+msgstr "{Variable Scheme} sddm-service-type"
 
-#. type: deffn
-#: doc/guix.texi:13674
-msgid "Return a service that spawns the SDDM graphical login manager for config of type @code{<sddm-configuration>}."
-msgstr "Renvoie un service qui démarre le gestionnaire de connexion graphique SDDM avec une configuration de type @code{<sddm-configuration>}."
+#. type: defvr
+#: doc/guix.texi:17249
+msgid "This is the type of the service to run the @uref{https://github.com/sddm/sddm,SDDM display manager}.  Its value must be a @code{sddm-configuration} record (see below)."
+msgstr "C'est le type de service qui permet d'exécuter le gestionnaire d'affichage @uref{https://github.com/sddm/sddm,Gestionnaire d'affichage SDDM}.  Sa valeur doit être un enregistrement @code{sddm-configuration} (voir ci-dessous)."
 
-#. type: example
-#: doc/guix.texi:13679
+#. type: defvr
+#: doc/guix.texi:17251
+msgid "Here's an example use:"
+msgstr "Voici un exemple d'utilisation :"
+
+#. type: lisp
+#: doc/guix.texi:17257
 #, no-wrap
 msgid ""
-"  (sddm-service (sddm-configuration\n"
-"                 (auto-login-user \"Alice\")\n"
-"                 (auto-login-session \"xfce.desktop\")))\n"
+"(service sddm-service-type\n"
+"         (sddm-configuration\n"
+"           (auto-login-user \"alice\")\n"
+"           (auto-login-session \"xfce.desktop\")))\n"
 msgstr ""
-"  (sddm-service (sddm-configuration\n"
-"                 (auto-login-user \"Alice\")\n"
-"                 (auto-login-session \"xfce.desktop\")))\n"
+"(service sddm-service-type\n"
+"         (sddm-configuration\n"
+"           (auto-login-user \"alice\")\n"
+"           (auto-login-session \"xfce.desktop\")))\n"
+
+#. type: deftp
+#: doc/guix.texi:17263
+msgid "This data type represents the configuration of the SDDM login manager.  The available fields are:"
+msgstr "Ce type de données représente la configuration du gestionnaire de connexion SDDM.  Les champs disponibles sont :"
+
+#. type: item
+#: doc/guix.texi:17265
+#, no-wrap
+msgid "@code{sddm} (default: @code{sddm})"
+msgstr "@code{sddm} (par défaut : @code{sddm})"
+
+#. type: table
+#: doc/guix.texi:17267
+msgid "The SDDM package to use."
+msgstr "Le paquet SDDM à utiliser."
+
+#. type: item
+#: doc/guix.texi:17268
+#, no-wrap
+msgid "@code{display-server} (default: @code{\"x11\"})"
+msgstr "@code{display-server} (default: @code{\"x11\"})"
+
+#. type: table
+#: doc/guix.texi:17270
+msgid "This must be either @code{\"x11\"} or @code{\"wayland\"}."
+msgstr "La valeur doit être soit @code{\"X11\"}, soit @code{\"wayland\"}"
+
+#. type: item
+#: doc/guix.texi:17273
+#, no-wrap
+msgid "@code{auto-login-user} (default: @code{\"\"})"
+msgstr "@code{auto-login-user} (par défaut : @code{\"\"})"
+
+#. type: table
+#: doc/guix.texi:17276
+msgid "If non-empty, this is the user account under which to log in automatically."
+msgstr "Si la valeur n'est pas vide, c'est le compte utilisateur sous lequel se connecter automatiquement."
+
+#. type: item
+#: doc/guix.texi:17277
+#, no-wrap
+msgid "@code{auto-login-session} (default: @code{\"\"})"
+msgstr "@code{auto-login-session} (par défaut : @code{\"\"})"
+
+#. type: table
+#: doc/guix.texi:17280
+msgid "If non-empty, this is the @file{.desktop} file name to use as the auto-login session."
+msgstr "Si la valeur n'est pas vide, c'est le nom du fichier @file{.desktop} utilisé comme session pour la connexion automatique."
 
 #. type: cindex
-#: doc/guix.texi:13682
+#: doc/guix.texi:17283
 #, no-wrap
 msgid "Xorg, configuration"
 msgstr "Xorg, configuration"
 
 #. type: deftp
-#: doc/guix.texi:13683
+#: doc/guix.texi:17284
 #, no-wrap
 msgid "{Data Type} xorg-configuration"
 msgstr "{Type de données} xorg-configuration"
 
 #. type: deftp
-#: doc/guix.texi:13688
-msgid "This data type represents the configuration of the Xorg graphical display server.  Note that there is not Xorg service; instead, the X server is started by a ``display manager'' such as GDM, SDDM, and SLiM.  Thus, the configuration of these display managers aggregates an @code{xorg-configuration} record."
-msgstr "Ce type de données représente la configuration du serveur d'affichage graphique Xorg.  Remarquez qu'il ne s'agit pas d'un service Xorg ; à la place, le serveur X est démarré par un « gestionnaire d'affichage graphique » comme GDM, SDDM et SLiM.  Ainsi, la configuration de ces gestionnaires d'affichage agrègent un enregistrement @code{xorg-configuration}."
+#: doc/guix.texi:17289
+msgid "This data type represents the configuration of the Xorg graphical display server.  Note that there is no Xorg service; instead, the X server is started by a ``display manager'' such as GDM, SDDM, and SLiM.  Thus, the configuration of these display managers aggregates an @code{xorg-configuration} record."
+msgstr "Ce type de données représente la configuration du serveur d'affichage graphique Xorg.  Remarquez qu'il n'y a pas de service Xorg ; à la place, le serveur X est démarré par un « gestionnaire d'affichage graphique » comme GDM, SDDM et SLiM.  Ainsi, la configuration de ces gestionnaires d'affichage agrègent un enregistrement @code{xorg-configuration}."
 
 #. type: item
-#: doc/guix.texi:13690
+#: doc/guix.texi:17291
 #, no-wrap
 msgid "@code{modules} (default: @code{%default-xorg-modules})"
 msgstr "@code{modules} (par défaut : @code{%default-xorg-modules})"
 
 #. type: table
-#: doc/guix.texi:13693
+#: doc/guix.texi:17294
 msgid "This is a list of @dfn{module packages} loaded by the Xorg server---e.g., @code{xf86-video-vesa}, @code{xf86-input-keyboard}, and so on."
 msgstr "C'est une liste de @dfn{paquets de module} chargés par le serveur Xorg — p.@: ex.@: @code{xf86-video-vesa}, @code{xf86-input-keyboard} etc."
 
 #. type: item
-#: doc/guix.texi:13694
+#: doc/guix.texi:17295
 #, no-wrap
 msgid "@code{fonts} (default: @code{%default-xorg-fonts})"
 msgstr "@code{fonts} (par défaut : @code{%default-xorg-fonts})"
 
 #. type: table
-#: doc/guix.texi:13696
+#: doc/guix.texi:17297
 msgid "This is a list of font directories to add to the server's @dfn{font path}."
 msgstr "C'est une liste de répertoires de polices à ajouter au @dfn{chemin de polices} du serveur."
 
 #. type: item
-#: doc/guix.texi:13697
+#: doc/guix.texi:17298
 #, no-wrap
 msgid "@code{drivers} (default: @code{'()})"
 msgstr "@code{drivers} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:13701
+#: doc/guix.texi:17302
 msgid "This must be either the empty list, in which case Xorg chooses a graphics driver automatically, or a list of driver names that will be tried in this order---e.g., @code{(\"modesetting\" \"vesa\")}."
 msgstr "Cela doit être soit la liste vide, auquel cas Xorg choisit un pilote graphique automatiquement, soit une liste de noms de pilotes qui seront essayés dans cet ordre — p.@: ex.@: @code{(\"modesetting\" \"vesa\")}"
 
 #. type: item
-#: doc/guix.texi:13702
+#: doc/guix.texi:17303
 #, no-wrap
 msgid "@code{resolutions} (default: @code{'()})"
 msgstr "@code{resolutions} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:13706
+#: doc/guix.texi:17307
 msgid "When @code{resolutions} is the empty list, Xorg chooses an appropriate screen resolution.  Otherwise, it must be a list of resolutions---e.g., @code{((1024 768) (640 480))}."
 msgstr "Lorsque @code{resolutions} est la liste vide, Xorg choisit une résolution d'écran appropriée.  Sinon, il doit s'agir d'une liste de résolutions — p.@: ex.@: @code{((1024 768) (640 480))}"
 
 #. type: cindex
-#: doc/guix.texi:13707
+#: doc/guix.texi:17308
 #, no-wrap
 msgid "keyboard layout, for Xorg"
 msgstr "disposition du clavier, pour Xorg"
 
 #. type: cindex
-#: doc/guix.texi:13708
+#: doc/guix.texi:17309
 #, no-wrap
 msgid "keymap, for Xorg"
 msgstr "disposition des touches, Xorg"
 
 #. type: table
-#: doc/guix.texi:13712
+#: doc/guix.texi:17313
 msgid "If this is @code{#f}, Xorg uses the default keyboard layout---usually US English (``qwerty'') for a 105-key PC keyboard."
 msgstr "Si la valeur est @code{#f}, Xorg utilise la disposition du clavier par défaut — habituellement la disposition anglaise américaine (« qwerty ») pour un clavier de PC à 105 touches."
 
 #. type: table
-#: doc/guix.texi:13716
+#: doc/guix.texi:17317
 msgid "Otherwise this must be a @code{keyboard-layout} object specifying the keyboard layout in use when Xorg is running.  @xref{Keyboard Layout}, for more information on how to specify the keyboard layout."
 msgstr "Sinon cela doit être un objet @code{keyboard-layout} spécifiant la disposition du clavier à utiliser lorsque Xorg tourne.  @xref{Keyboard Layout} pour plus d'informations sur la manière de spécifier la disposition du clavier."
 
 #. type: item
-#: doc/guix.texi:13717
+#: doc/guix.texi:17318 doc/guix.texi:18973 doc/guix.texi:29891
 #, no-wrap
 msgid "@code{extra-config} (default: @code{'()})"
 msgstr "@code{extra-config} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:13720
+#: doc/guix.texi:17321 doc/guix.texi:29895
 msgid "This is a list of strings or objects appended to the configuration file.  It is used to pass extra text to be added verbatim to the configuration file."
 msgstr "C'est une liste de chaînes de caractères ou d'objets ajoutés au fichier de configuration.  Elle est utile pour ajouter du texte supplémentaire directement dans le fichier de configuration."
 
 #. type: item
-#: doc/guix.texi:13721
+#: doc/guix.texi:17322
 #, no-wrap
 msgid "@code{server} (default: @code{xorg-server})"
 msgstr "@code{server} (par défaut : @code{xorg-server})"
 
 #. type: table
-#: doc/guix.texi:13723
+#: doc/guix.texi:17324
 msgid "This is the package providing the Xorg server."
 msgstr "C'est le paquet fournissant le serveur Xorg."
 
 #. type: item
-#: doc/guix.texi:13724
+#: doc/guix.texi:17325
 #, no-wrap
 msgid "@code{server-arguments} (default: @code{%default-xorg-server-arguments})"
 msgstr "@code{server-arguments} (par défaut : @code{%default-xorg-server-arguments})"
 
 #. type: table
-#: doc/guix.texi:13727
+#: doc/guix.texi:17328
 msgid "This is the list of command-line arguments to pass to the X server.  The default is @code{-nolisten tcp}."
 msgstr "Liste d'arguments de la ligne de commande supplémentaires à passer au serveur X.  La valeur par défaut est @code{-nolisten tcp}."
 
 #. type: deffn
-#: doc/guix.texi:13730
+#: doc/guix.texi:17331
 #, no-wrap
 msgid "{Scheme Procedure} set-xorg-configuration @var{config} @"
 msgstr "{Procédure Scheme} set-xorg-configuration @var{config} @"
 
 #. type: deffn
-#: doc/guix.texi:13734
+#: doc/guix.texi:17335
 msgid "[@var{login-manager-service-type}] Tell the log-in manager (of type @var{login-manager-service-type}) to use @var{config}, an @code{<xorg-configuration>} record."
 msgstr ""
 "[@var{login-manager-service-type}]\n"
 "Dit au gestionnaire de connexion (de type @var{login-manager-service-type}) d'utiliser @var{config}, un enregistrement @code{<xorg-configuration>}."
 
 #. type: deffn
-#: doc/guix.texi:13738
+#: doc/guix.texi:17339
 msgid "Since the Xorg configuration is embedded in the log-in manager's configuration---e.g., @code{gdm-configuration}---this procedure provides a shorthand to set the Xorg configuration."
 msgstr "Comme la configuration Xog est incluse dans la configuration du gestionnaire de connexion — p.@: ex.@: @code{gdm-configuration} — cette procédure fournit un raccourci pour configurer Xorg."
 
 #. type: deffn
-#: doc/guix.texi:13740
+#: doc/guix.texi:17341
 #, no-wrap
 msgid "{Scheme Procedure} xorg-start-command [@var{config}]"
 msgstr "{Procédure Scheme} xorg-start-command [@var{config}]"
 
 #. type: deffn
-#: doc/guix.texi:13744
+#: doc/guix.texi:17345
 msgid "Return a @code{startx} script in which the modules, fonts, etc. specified in @var{config}, are available.  The result should be used in place of @code{startx}."
 msgstr "Renvoie un script @code{startx} dans lequel les modules, les polices, etc., spécifiés dans @var{config} sont disponibles.  Le résultat devrait être utilisé à la place de @code{startx}."
 
 #. type: deffn
-#: doc/guix.texi:13746
+#: doc/guix.texi:17347
 msgid "Usually the X server is started by a login manager."
 msgstr "Habituellement le serveur X est démarré par un gestionnaire de connexion."
 
 #. type: deffn
-#: doc/guix.texi:13749
+#: doc/guix.texi:17350
 #, no-wrap
 msgid "{Scheme Procedure} screen-locker-service @var{package} [@var{program}]"
 msgstr "{Procédure Scheme} screen-locker-service @var{package} [@var{program}]"
 
 #. type: deffn
-#: doc/guix.texi:13753
+#: doc/guix.texi:17354
 msgid "Add @var{package}, a package for a screen locker or screen saver whose command is @var{program}, to the set of setuid programs and add a PAM entry for it.  For example:"
 msgstr "Ajoute @var{package}, un paquet pour un verrouiller l'écran ou un économiseur d'écran dont la commande est @var{program}, à l'ensemble des programmes setuid et lui ajoute une entrée PAM.  Par exemple :"
 
 #. type: lisp
-#: doc/guix.texi:13756
+#: doc/guix.texi:17357
 #, no-wrap
 msgid "(screen-locker-service xlockmore \"xlock\")\n"
 msgstr "(screen-locker-service xlockmore \"xlock\")\n"
 
 #. type: deffn
-#: doc/guix.texi:13759
+#: doc/guix.texi:17360
 msgid "makes the good ol' XlockMore usable."
 msgstr "rend utilisable le bon vieux XlockMore."
 
 #. type: cindex
-#: doc/guix.texi:13765
+#: doc/guix.texi:17366
 #, no-wrap
 msgid "printer support with CUPS"
 msgstr "support des imprimantes avec CUPS"
 
 #. type: Plain text
-#: doc/guix.texi:13769
+#: doc/guix.texi:17370
 msgid "The @code{(gnu services cups)} module provides a Guix service definition for the CUPS printing service.  To add printer support to a Guix system, add a @code{cups-service} to the operating system definition:"
 msgstr "Le module @code{(gnu services cups)} fournit une définition de service Guix pour le service d'impression CUPS.  Pour ajouter la prise en charge d'une imprimante à un système Guix, ajoutez un @code{cups-service} à la définition du système d'exploitation :"
 
 #. type: deffn
-#: doc/guix.texi:13770
+#: doc/guix.texi:17371
 #, no-wrap
 msgid "{Scheme Variable} cups-service-type"
 msgstr "{Variable Scheme} cups-service-type"
 
 #. type: deffn
-#: doc/guix.texi:13774
+#: doc/guix.texi:17375
 msgid "The service type for the CUPS print server.  Its value should be a valid CUPS configuration (see below).  To use the default settings, simply write:"
 msgstr "Le type de service pour un serveur d'impression CUPS.  Sa valeur devrait être une configuration CUPS valide (voir plus bas).  Pour utiliser les paramètres par défaut, écrivez simplement :"
 
-#. type: example
-#: doc/guix.texi:13776
+#. type: lisp
+#: doc/guix.texi:17377
 #, no-wrap
 msgid "(service cups-service-type)\n"
 msgstr "(service cups-service-type)\n"
 
 #. type: Plain text
-#: doc/guix.texi:13786
+#: doc/guix.texi:17387
 msgid "The CUPS configuration controls the basic things about your CUPS installation: what interfaces it listens on, what to do if a print job fails, how much logging to do, and so on.  To actually add a printer, you have to visit the @url{http://localhost:631} URL, or use a tool such as GNOME's printer configuration services.  By default, configuring a CUPS service will generate a self-signed certificate if needed, for secure connections to the print server."
 msgstr "La configuration de CUPS contrôle les paramètres de base de votre installation CUPS : sur quelles interfaces il doit écouter, que faire si un travail échoue, combien de journalisation il faut faire, etc.  Pour ajouter une imprimante, vous devrez visiter l'URL @url{http://localhost:631} ou utiliser un outil comme les services de configuration d'imprimante de GNOME.  Par défaut, la configuration du service CUPS générera un certificat auto-signé si besoin, pour les connexions sécurisée avec le serveur d'impression."
 
 #. type: Plain text
-#: doc/guix.texi:13791
+#: doc/guix.texi:17392
 msgid "Suppose you want to enable the Web interface of CUPS and also add support for Epson printers @i{via} the @code{escpr} package and for HP printers @i{via} the @code{hplip-minimal} package.  You can do that directly, like this (you need to use the @code{(gnu packages cups)} module):"
 msgstr "Supposons que vous souhaitiez activer l'interface Web de CUPS et ajouter le support pour les imprimantes Epson via le paquet @code{escpr} et pour les imprimantes HP via le paquet @code{hplip-minimal}.  Vous pouvez le faire directement, comme ceci (vous devez utiliser le module @code{(gnu packages cups)}) :"
 
-#. type: example
-#: doc/guix.texi:13798
+#. type: lisp
+#: doc/guix.texi:17399
 #, no-wrap
 msgid ""
 "(service cups-service-type\n"
@@ -25776,1535 +32358,1560 @@ msgstr ""
 "             (list cups-filters escpr hplip-minimal))))\n"
 
 #. type: Plain text
-#: doc/guix.texi:13803
+#: doc/guix.texi:17404
 msgid "Note: If you wish to use the Qt5 based GUI which comes with the hplip package then it is suggested that you install the @code{hplip} package, either in your OS configuration file or as your user."
 msgstr "Remarque : si vous souhaitez utiliser la GUI basée sur Qt5 qui provient du paquet hplip, nous vous suggérons d'installer le paquet @code{hplip}, soit dans votre configuration d'OS, soit en tant qu'utilisateur."
 
 #. type: Plain text
-#: doc/guix.texi:13810
+#: doc/guix.texi:17411
 msgid "The available configuration parameters follow.  Each parameter definition is preceded by its type; for example, @samp{string-list foo} indicates that the @code{foo} parameter should be specified as a list of strings.  There is also a way to specify the configuration as a string, if you have an old @code{cupsd.conf} file that you want to port over from some other system; see the end for more details."
 msgstr "Les paramètres de configuration disponibles sont les suivants.  Chaque définition des paramètres est précédé par son type ; par exemple, @samp{string-list foo} indique que le paramètre @code{foo} devrait être spécifié comme une liste de chaînes de caractères.  Il y a aussi une manière de spécifier la configuration comme une chaîne de caractères, si vous avez un vieux fichier @code{cupsd.conf} que vous voulez porter depuis un autre système ; voir la fin pour plus de détails."
 
 #. type: Plain text
-#: doc/guix.texi:13821
+#: doc/guix.texi:17422
 msgid "Available @code{cups-configuration} fields are:"
 msgstr "Les champs de @code{cups-configuration} disponibles sont :"
 
 #. type: deftypevr
-#: doc/guix.texi:13822
+#: doc/guix.texi:17423
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} package cups"
 msgstr "{paramètre de @code{cups-configuration}} package cups"
 
 #. type: deftypevr
-#: doc/guix.texi:13824 doc/guix.texi:14581
+#: doc/guix.texi:17425 doc/guix.texi:18193
 msgid "The CUPS package."
 msgstr "Le paquet CUPS."
 
 #. type: deftypevr
-#: doc/guix.texi:13826
+#: doc/guix.texi:17427
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} package-list extensions"
 msgstr "{paramètre de @code{cups-configuration}} package-list extensions"
 
 #. type: deftypevr
-#: doc/guix.texi:13828
+#: doc/guix.texi:17429
 msgid "Drivers and other extensions to the CUPS package."
 msgstr "Pilotes et autres extensions du paquet CUPS."
 
 #. type: deftypevr
-#: doc/guix.texi:13830
+#: doc/guix.texi:17431
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} files-configuration files-configuration"
 msgstr "{paramètre de @code{cups-configuration}} files-configuration files-configuration"
 
 #. type: deftypevr
-#: doc/guix.texi:13833
+#: doc/guix.texi:17434
 msgid "Configuration of where to write logs, what directories to use for print spools, and related privileged configuration parameters."
 msgstr "Configuration de l'emplacement où écrire les journaux, quels répertoires utiliser pour les travaux d'impression et les paramètres de configuration privilégiés liés."
 
 #. type: deftypevr
-#: doc/guix.texi:13835
+#: doc/guix.texi:17436
 msgid "Available @code{files-configuration} fields are:"
 msgstr "Les champs @code{files-configuration} disponibles sont :"
 
 #. type: deftypevr
-#: doc/guix.texi:13836
+#: doc/guix.texi:17437
 #, no-wrap
 msgid "{@code{files-configuration} parameter} log-location access-log"
 msgstr "{paramètre de @code{files-configuration}} log-location access-log"
 
 #. type: deftypevr
-#: doc/guix.texi:13844
+#: doc/guix.texi:17445
 msgid "Defines the access log filename.  Specifying a blank filename disables access log generation.  The value @code{stderr} causes log entries to be sent to the standard error file when the scheduler is running in the foreground, or to the system log daemon when run in the background.  The value @code{syslog} causes log entries to be sent to the system log daemon.  The server name may be included in filenames using the string @code{%s}, as in @code{/var/log/cups/%s-access_log}."
 msgstr "Définit le fichier de journal d'accès.  Spécifier un nom de fichier vide désactive la génération de journaux d'accès.  La valeur @code{stderr} fait que les entrées du journal seront envoyés sur l'erreur standard lorsque l'ordonnanceur est lancé au premier plan ou vers le démon de journal système lorsqu'il tourne en tache de fond.  La valeur @code{syslog} fait que les entrées du journal sont envoyées au démon de journalisation du système.  Le nom du serveur peut être inclus dans les noms de fichiers avec la chaîne @code{%s}, comme dans @code{/var/log/cups/%s-access_log}."
 
 #. type: deftypevr
-#: doc/guix.texi:13846
+#: doc/guix.texi:17447
 msgid "Defaults to @samp{\"/var/log/cups/access_log\"}."
 msgstr "La valeur par défaut est @samp{\"/var/log/cups/access_log\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:13848
+#: doc/guix.texi:17449
 #, no-wrap
 msgid "{@code{files-configuration} parameter} file-name cache-dir"
 msgstr "{paramètre de @code{files-configuration}} file-name cache-dir"
 
 #. type: deftypevr
-#: doc/guix.texi:13850
+#: doc/guix.texi:17451
 msgid "Where CUPS should cache data."
 msgstr "L'emplacement où CUPS devrait mettre les données en cache."
 
 #. type: deftypevr
-#: doc/guix.texi:13852
+#: doc/guix.texi:17453
 msgid "Defaults to @samp{\"/var/cache/cups\"}."
 msgstr "La valeur par défaut est @samp{\"/var/cache/cups\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:13854
+#: doc/guix.texi:17455
 #, no-wrap
 msgid "{@code{files-configuration} parameter} string config-file-perm"
 msgstr "{paramètre de @code{files-configuration}} string config-file-perm"
 
 #. type: deftypevr
-#: doc/guix.texi:13857
+#: doc/guix.texi:17458
 msgid "Specifies the permissions for all configuration files that the scheduler writes."
 msgstr "Spécifie les permissions pour tous les fichiers de configuration que l'ordonnanceur écrit."
 
 #. type: deftypevr
-#: doc/guix.texi:13863
+#: doc/guix.texi:17464
 msgid "Note that the permissions for the printers.conf file are currently masked to only allow access from the scheduler user (typically root).  This is done because printer device URIs sometimes contain sensitive authentication information that should not be generally known on the system.  There is no way to disable this security feature."
 msgstr "Remarquez que les permissions pour le fichier printers.conf sont actuellement masqués pour ne permettre que l'accès par l'utilisateur de l'ordonnanceur (typiquement root).  La raison est que les URI des imprimantes contiennent des informations d'authentification sensibles qui ne devraient pas être connues sur le système.  Il n'est pas possible de désactiver cette fonctionnalité de sécurité."
 
 #. type: deftypevr
-#: doc/guix.texi:13865
+#: doc/guix.texi:17466
 msgid "Defaults to @samp{\"0640\"}."
 msgstr "La valeur par défaut est @samp{\"0640\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:13867
+#: doc/guix.texi:17468
 #, no-wrap
 msgid "{@code{files-configuration} parameter} log-location error-log"
 msgstr "{paramètre de @code{files-configuration}} log-location error-log"
 
 #. type: deftypevr
-#: doc/guix.texi:13875
+#: doc/guix.texi:17476
 msgid "Defines the error log filename.  Specifying a blank filename disables error log generation.  The value @code{stderr} causes log entries to be sent to the standard error file when the scheduler is running in the foreground, or to the system log daemon when run in the background.  The value @code{syslog} causes log entries to be sent to the system log daemon.  The server name may be included in filenames using the string @code{%s}, as in @code{/var/log/cups/%s-error_log}."
 msgstr "Définit le fichier de journal d'erreur.  Spécifier un nom de fichier vide désactive la génération de journaux d'erreur.  La valeur @code{stderr} fait que les entrées du journal seront envoyés sur l'erreur standard lorsque l'ordonnanceur est lancé au premier plan ou vers le démon de journalisation du système lorsqu'il tourne en tache de fond.  La valeur @code{syslog} fait que les entrées du journal sont envoyées au démon de journalisation du système.  Le nom du serveur peut être inclus dans les noms de fichiers avec la chaîne @code{%s}, comme dans @code{/var/log/cups/%s-error_log}."
 
 #. type: deftypevr
-#: doc/guix.texi:13877
+#: doc/guix.texi:17478
 msgid "Defaults to @samp{\"/var/log/cups/error_log\"}."
 msgstr "La valeur par défaut est @samp{\"/var/log/cups/error_log\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:13879
+#: doc/guix.texi:17480
 #, no-wrap
 msgid "{@code{files-configuration} parameter} string fatal-errors"
 msgstr "{paramètre de @code{files-configuration}} string fatal-errors"
 
 #. type: deftypevr
-#: doc/guix.texi:13882
+#: doc/guix.texi:17483
 msgid "Specifies which errors are fatal, causing the scheduler to exit.  The kind strings are:"
 msgstr "Spécifie quelles erreurs sont fatales, qui font terminer l'ordonnanceur.  Les types de chaînes sont :"
 
 #. type: table
-#: doc/guix.texi:13886
+#: doc/guix.texi:17487
 msgid "No errors are fatal."
 msgstr "Aucune erreur n'est fatale."
 
 #. type: table
-#: doc/guix.texi:13889
+#: doc/guix.texi:17490
 msgid "All of the errors below are fatal."
 msgstr "Toutes les erreurs ci-dessous sont fatales."
 
 #. type: item
-#: doc/guix.texi:13890
+#: doc/guix.texi:17491
 #, no-wrap
 msgid "browse"
 msgstr "browse"
 
 #. type: table
-#: doc/guix.texi:13893
+#: doc/guix.texi:17494
 msgid "Browsing initialization errors are fatal, for example failed connections to the DNS-SD daemon."
 msgstr "Les erreurs d'initialisation de la navigation sont fatales, par exemple les connexion échouées au démon DNS-SD."
 
 #. type: item
-#: doc/guix.texi:13894
+#: doc/guix.texi:17495
 #, no-wrap
 msgid "config"
 msgstr "config"
 
 #. type: table
-#: doc/guix.texi:13896
+#: doc/guix.texi:17497
 msgid "Configuration file syntax errors are fatal."
 msgstr "Les erreurs de syntaxe du fichier de configuration sont fatale."
 
 #. type: item
-#: doc/guix.texi:13897
+#: doc/guix.texi:17498
 #, no-wrap
 msgid "listen"
 msgstr "listen"
 
 #. type: table
-#: doc/guix.texi:13900
+#: doc/guix.texi:17501
 msgid "Listen or Port errors are fatal, except for IPv6 failures on the loopback or @code{any} addresses."
 msgstr "Les erreurs d'écoute ou de port sont fatales, sauf pour les erreurs d'IPv6 sur la boucle locale ou les adresses @code{any}."
 
 #. type: item
-#: doc/guix.texi:13901
+#: doc/guix.texi:17502
 #, no-wrap
 msgid "log"
 msgstr "log"
 
 #. type: table
-#: doc/guix.texi:13903
+#: doc/guix.texi:17504
 msgid "Log file creation or write errors are fatal."
 msgstr "Les erreurs de création ou d'écriture des fichiers de journal sont fatales."
 
 #. type: item
-#: doc/guix.texi:13904
+#: doc/guix.texi:17505
 #, no-wrap
 msgid "permissions"
 msgstr "permissions"
 
 #. type: table
-#: doc/guix.texi:13907
+#: doc/guix.texi:17508
 msgid "Bad startup file permissions are fatal, for example shared TLS certificate and key files with world-read permissions."
 msgstr "Les mauvaises permissions des fichiers de démarrage sont fatales, par exemple un certificat TLS et des fichiers de clefs avec des permissions permettant la lecture à tout le monde."
 
 #. type: deftypevr
-#: doc/guix.texi:13910
+#: doc/guix.texi:17511
 msgid "Defaults to @samp{\"all -browse\"}."
 msgstr "La valeur par défaut est @samp{\"all -browse\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:13912
+#: doc/guix.texi:17513
 #, no-wrap
 msgid "{@code{files-configuration} parameter} boolean file-device?"
 msgstr "{paramètre de @code{files-configuration}} boolean file-device?"
 
 #. type: deftypevr
-#: doc/guix.texi:13915
+#: doc/guix.texi:17516
 msgid "Specifies whether the file pseudo-device can be used for new printer queues.  The URI @uref{file:///dev/null} is always allowed."
 msgstr "Spécifie si le fichier de pseudo-périphérique peut être utilisé pour de nouvelles queues d'impression.  L'URI @uref{file:///dev/null} est toujours permise."
 
 #. type: deftypevr
-#: doc/guix.texi:13917 doc/guix.texi:13987 doc/guix.texi:14023
-#: doc/guix.texi:14035 doc/guix.texi:14041 doc/guix.texi:14057
-#: doc/guix.texi:14145 doc/guix.texi:14239 doc/guix.texi:14555
-#: doc/guix.texi:14568 doc/guix.texi:20262 doc/guix.texi:20276
-#: doc/guix.texi:20398 doc/guix.texi:20419 doc/guix.texi:20440
-#: doc/guix.texi:20447 doc/guix.texi:20492 doc/guix.texi:20499
-#: doc/guix.texi:20926 doc/guix.texi:20940 doc/guix.texi:21112
-#: doc/guix.texi:21157 doc/guix.texi:21244 doc/guix.texi:21385
-#: doc/guix.texi:21418 doc/guix.texi:21558 doc/guix.texi:21569
-#: doc/guix.texi:21819 doc/guix.texi:22461 doc/guix.texi:22470
-#: doc/guix.texi:22478 doc/guix.texi:22486 doc/guix.texi:22502
-#: doc/guix.texi:22518 doc/guix.texi:22526 doc/guix.texi:22534
-#: doc/guix.texi:22543 doc/guix.texi:22552 doc/guix.texi:22568
-#: doc/guix.texi:22632 doc/guix.texi:22738 doc/guix.texi:22746
-#: doc/guix.texi:22754 doc/guix.texi:22779 doc/guix.texi:22833
-#: doc/guix.texi:22881 doc/guix.texi:23082 doc/guix.texi:23089
+#: doc/guix.texi:17518 doc/guix.texi:17588 doc/guix.texi:17630
+#: doc/guix.texi:17650 doc/guix.texi:17656 doc/guix.texi:17672
+#: doc/guix.texi:17760 doc/guix.texi:17854 doc/guix.texi:18167
+#: doc/guix.texi:18180 doc/guix.texi:20619 doc/guix.texi:20725
+#: doc/guix.texi:20790 doc/guix.texi:20799 doc/guix.texi:24844
+#: doc/guix.texi:24858 doc/guix.texi:24880 doc/guix.texi:24995
+#: doc/guix.texi:25009 doc/guix.texi:25030 doc/guix.texi:25051
+#: doc/guix.texi:25058 doc/guix.texi:25103 doc/guix.texi:25110
+#: doc/guix.texi:25632 doc/guix.texi:25646 doc/guix.texi:25818
+#: doc/guix.texi:25863 doc/guix.texi:25950 doc/guix.texi:26152
+#: doc/guix.texi:26185 doc/guix.texi:26325 doc/guix.texi:26336
+#: doc/guix.texi:26587 doc/guix.texi:28060 doc/guix.texi:28069
+#: doc/guix.texi:28077 doc/guix.texi:28085 doc/guix.texi:28101
+#: doc/guix.texi:28117 doc/guix.texi:28125 doc/guix.texi:28133
+#: doc/guix.texi:28142 doc/guix.texi:28151 doc/guix.texi:28167
+#: doc/guix.texi:28231 doc/guix.texi:28337 doc/guix.texi:28345
+#: doc/guix.texi:28353 doc/guix.texi:28378 doc/guix.texi:28432
+#: doc/guix.texi:28480 doc/guix.texi:28681 doc/guix.texi:28688
 msgid "Defaults to @samp{#f}."
 msgstr "La valeur par défaut est @samp{#f}."
 
 #. type: deftypevr
-#: doc/guix.texi:13919
+#: doc/guix.texi:17520
 #, no-wrap
 msgid "{@code{files-configuration} parameter} string group"
 msgstr "{paramètre de @code{files-configuration}} string group"
 
 #. type: deftypevr
-#: doc/guix.texi:13922
+#: doc/guix.texi:17523
 msgid "Specifies the group name or ID that will be used when executing external programs."
 msgstr "Spécifie le nom ou l'ID du groupe qui sera utilisé lors de l'exécution de programmes externes."
 
 #. type: deftypevr
-#: doc/guix.texi:13924 doc/guix.texi:14004
+#: doc/guix.texi:17525 doc/guix.texi:17605
 msgid "Defaults to @samp{\"lp\"}."
 msgstr "La valeur par défaut est @samp{\"lp\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:13926
+#: doc/guix.texi:17527
 #, no-wrap
 msgid "{@code{files-configuration} parameter} string log-file-perm"
 msgstr "{paramètre de @code{files-configuration}} string log-file-perm"
 
 #. type: deftypevr
-#: doc/guix.texi:13928
+#: doc/guix.texi:17529
 msgid "Specifies the permissions for all log files that the scheduler writes."
 msgstr "Spécifie les permissions pour tous les fichiers de journal que l'ordonnanceur écrit."
 
 #. type: deftypevr
-#: doc/guix.texi:13930
+#: doc/guix.texi:17531
 msgid "Defaults to @samp{\"0644\"}."
 msgstr "La valeur par défaut est @samp{\"0644\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:13932
+#: doc/guix.texi:17533
 #, no-wrap
 msgid "{@code{files-configuration} parameter} log-location page-log"
 msgstr "{paramètre de @code{files-configuration}} log-location page-log"
 
 #. type: deftypevr
-#: doc/guix.texi:13940
+#: doc/guix.texi:17541
 msgid "Defines the page log filename.  Specifying a blank filename disables page log generation.  The value @code{stderr} causes log entries to be sent to the standard error file when the scheduler is running in the foreground, or to the system log daemon when run in the background.  The value @code{syslog} causes log entries to be sent to the system log daemon.  The server name may be included in filenames using the string @code{%s}, as in @code{/var/log/cups/%s-page_log}."
 msgstr "Définit le fichier de journal de page.  Spécifier un nom de fichier vide désactive la génération de journaux de pages.  La valeur @code{stderr} fait que les entrées du journal seront envoyés sur l'erreur standard lorsque l'ordonnanceur est lancé au premier plan ou vers le démon de journal système lorsqu'il tourne en tache de fond.  La valeur @code{syslog} fait que les entrées du journal sont envoyées au démon de journalisation du système.  Le nom du serveur peut être inclus dans les noms de fichiers avec la chaîne @code{%s}, comme dans @code{/var/log/cups/%s-page_log}."
 
 #. type: deftypevr
-#: doc/guix.texi:13942
+#: doc/guix.texi:17543
 msgid "Defaults to @samp{\"/var/log/cups/page_log\"}."
 msgstr "La valeur par défaut est @samp{\"/var/log/cups/page_log\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:13944
+#: doc/guix.texi:17545
 #, no-wrap
 msgid "{@code{files-configuration} parameter} string remote-root"
 msgstr "{paramètre de @code{files-configuration}} string remote-root"
 
 #. type: deftypevr
-#: doc/guix.texi:13947
+#: doc/guix.texi:17548
 msgid "Specifies the username that is associated with unauthenticated accesses by clients claiming to be the root user.  The default is @code{remroot}."
 msgstr "Spécifie le nom d'utilisateur associé aux accès non authentifiés par des clients qui se disent être l'utilisateur root.  La valeur par défaut est @code{remroot}."
 
 #. type: deftypevr
-#: doc/guix.texi:13949
+#: doc/guix.texi:17550
 msgid "Defaults to @samp{\"remroot\"}."
 msgstr "La valeur par défaut est @samp{\"remroot\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:13951
+#: doc/guix.texi:17552
 #, no-wrap
 msgid "{@code{files-configuration} parameter} file-name request-root"
 msgstr "{paramètre de @code{files-configuration}} file-name request-root"
 
 #. type: deftypevr
-#: doc/guix.texi:13954
+#: doc/guix.texi:17555
 msgid "Specifies the directory that contains print jobs and other HTTP request data."
 msgstr "Spécifie le répertoire qui contient les travaux d'impression et d'autres données des requêtes HTTP."
 
 #. type: deftypevr
-#: doc/guix.texi:13956
+#: doc/guix.texi:17557
 msgid "Defaults to @samp{\"/var/spool/cups\"}."
 msgstr "La valeur par défaut est @samp{\"/var/spool/cups\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:13958
+#: doc/guix.texi:17559
 #, no-wrap
 msgid "{@code{files-configuration} parameter} sandboxing sandboxing"
 msgstr "{paramètre de @code{files-configuration}} sandboxing sandboxing"
 
 #. type: deftypevr
-#: doc/guix.texi:13963
+#: doc/guix.texi:17564
 msgid "Specifies the level of security sandboxing that is applied to print filters, backends, and other child processes of the scheduler; either @code{relaxed} or @code{strict}.  This directive is currently only used/supported on macOS."
 msgstr "Spécifie le niveau d'isolation de sécurité appliqué aux filtres d'impression, aux moteurs et aux autres processus fils de l'ordonnanceur ; soit @code{relaxed} soit @code{strict}.  Cette directive n'est actuellement utilisée et supportée que sur macOS."
 
 #. type: deftypevr
-#: doc/guix.texi:13965
+#: doc/guix.texi:17566
 msgid "Defaults to @samp{strict}."
 msgstr "La valeur par défaut est @samp{strict}."
 
 #. type: deftypevr
-#: doc/guix.texi:13967
+#: doc/guix.texi:17568
 #, no-wrap
 msgid "{@code{files-configuration} parameter} file-name server-keychain"
 msgstr "{paramètre de @code{files-configuration}} file-name server-keychain"
 
 #. type: deftypevr
-#: doc/guix.texi:13972
-msgid "Specifies the location of TLS certificates and private keys.  CUPS will look for public and private keys in this directory: a @code{.crt} files for PEM-encoded certificates and corresponding @code{.key} files for PEM-encoded private keys."
-msgstr "Spécifie l'emplacement des certifications TLS et des clefs privées.  CUPS cherchera les clefs publiques et privées dans ce répertoire : un fichier @code{.crt} pour un certificat encodé en PEM et le fichier @code{.key} correspondant pour la clef privée encodée en PEM."
+#: doc/guix.texi:17573
+msgid "Specifies the location of TLS certificates and private keys.  CUPS will look for public and private keys in this directory: @file{.crt} files for PEM-encoded certificates and corresponding @file{.key} files for PEM-encoded private keys."
+msgstr "Spécifie l'emplacement des certifications TLS et des clés privées.  CUPS cherchera les clés publiques et privées dans ce répertoire : un fichier @file{.crt} pour un certificat encodé en PEM et le fichier @file{.key} correspondant pour la clé privée encodée en PEM."
 
 #. type: deftypevr
-#: doc/guix.texi:13974
+#: doc/guix.texi:17575
 msgid "Defaults to @samp{\"/etc/cups/ssl\"}."
 msgstr "La valeur par défaut est @samp{\"/etc/cups/ssl\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:13976
+#: doc/guix.texi:17577
 #, no-wrap
 msgid "{@code{files-configuration} parameter} file-name server-root"
 msgstr "{paramètre de @code{files-configuration}} file-name server-root"
 
 #. type: deftypevr
-#: doc/guix.texi:13978
+#: doc/guix.texi:17579
 msgid "Specifies the directory containing the server configuration files."
 msgstr "Spécifie le répertoire contenant les fichiers de configuration du serveur."
 
 #. type: deftypevr
-#: doc/guix.texi:13980
+#: doc/guix.texi:17581
 msgid "Defaults to @samp{\"/etc/cups\"}."
 msgstr "La valeur par défaut est @samp{\"/etc/cups\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:13982
+#: doc/guix.texi:17583
 #, no-wrap
 msgid "{@code{files-configuration} parameter} boolean sync-on-close?"
 msgstr "{paramètre de @code{files-configuration}} boolean sync-on-close?"
 
 #. type: deftypevr
-#: doc/guix.texi:13985
+#: doc/guix.texi:17586
 msgid "Specifies whether the scheduler calls fsync(2) after writing configuration or state files."
 msgstr "Spécifie si l'ordonnanceur appelle fsync(2) après avoir écrit la configuration ou les fichiers d'état."
 
 #. type: deftypevr
-#: doc/guix.texi:13989
+#: doc/guix.texi:17590
 #, no-wrap
 msgid "{@code{files-configuration} parameter} space-separated-string-list system-group"
 msgstr "{paramètre de @code{files-configuration}} space-separated-string-list system-group"
 
 #. type: deftypevr
-#: doc/guix.texi:13991
+#: doc/guix.texi:17592
 msgid "Specifies the group(s) to use for @code{@@SYSTEM} group authentication."
 msgstr "Spécifie le groupe ou les groupes à utiliser pour l'authentification du groupe @code{@@SYSTEM}."
 
 #. type: deftypevr
-#: doc/guix.texi:13993
+#: doc/guix.texi:17594
 #, no-wrap
 msgid "{@code{files-configuration} parameter} file-name temp-dir"
 msgstr "{paramètre de @code{files-configuration}} file-name temp-dir"
 
 #. type: deftypevr
-#: doc/guix.texi:13995
+#: doc/guix.texi:17596
 msgid "Specifies the directory where temporary files are stored."
 msgstr "Spécifie le répertoire où les fichiers temporaires sont stockés."
 
 #. type: deftypevr
-#: doc/guix.texi:13997
+#: doc/guix.texi:17598
 msgid "Defaults to @samp{\"/var/spool/cups/tmp\"}."
 msgstr "La valeur par défaut est @samp{\"/var/spool/cups/tmp\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:13999
+#: doc/guix.texi:17600
 #, no-wrap
 msgid "{@code{files-configuration} parameter} string user"
 msgstr "{paramètre de @code{files-configuration}} string user"
 
 #. type: deftypevr
-#: doc/guix.texi:14002
+#: doc/guix.texi:17603
 msgid "Specifies the user name or ID that is used when running external programs."
 msgstr "Spécifie le nom d'utilisateur ou l'ID utilisé pour lancer des programmes externes."
 
 #. type: deftypevr
-#: doc/guix.texi:14007
+#: doc/guix.texi:17607
+#, no-wrap
+msgid "{@code{files-configuration} parameter} string set-env"
+msgstr "{paramètre de @code{files-configuration}} string set-env"
+
+#. type: deftypevr
+#: doc/guix.texi:17609
+msgid "Set the specified environment variable to be passed to child processes."
+msgstr "Indique que la variable d'environnement spécifiée doit être passée aux processus fils."
+
+#. type: deftypevr
+#: doc/guix.texi:17611
+msgid "Defaults to @samp{\"variable value\"}."
+msgstr "La valeur par défaut est @samp{\"variable value\"}."
+
+#. type: deftypevr
+#: doc/guix.texi:17614
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} access-log-level access-log-level"
 msgstr "{paramètre de @code{cups-configuration}} access-log-level access-log-level"
 
 #. type: deftypevr
-#: doc/guix.texi:14014
+#: doc/guix.texi:17621
 msgid "Specifies the logging level for the AccessLog file.  The @code{config} level logs when printers and classes are added, deleted, or modified and when configuration files are accessed or updated.  The @code{actions} level logs when print jobs are submitted, held, released, modified, or canceled, and any of the conditions for @code{config}.  The @code{all} level logs all requests."
 msgstr "Spécifie le niveau de journalisation pour le fichier AccessLog.  Le niveau @code{config} enregistre les ajouts, suppressions et modifications d'imprimantes et de classes et lorsque les fichiers de configuration sont accédés ou mis à jour.  Le niveau @code{actions} enregistre la soumission, la suspension, la libération, la modification et l'annulation des travaux et toutes les conditions de @code{config}.  Le niveau @code{all} enregistre toutes les requêtes."
 
 #. type: deftypevr
-#: doc/guix.texi:14016
+#: doc/guix.texi:17623
 msgid "Defaults to @samp{actions}."
 msgstr "La valeur par défaut est @samp{actions}."
 
 #. type: deftypevr
-#: doc/guix.texi:14018
+#: doc/guix.texi:17625
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} boolean auto-purge-jobs?"
 msgstr "{paramètre de @code{cups-configuration}} boolean auto-purge-jobs?"
 
 #. type: deftypevr
-#: doc/guix.texi:14021
+#: doc/guix.texi:17628
 msgid "Specifies whether to purge job history data automatically when it is no longer required for quotas."
 msgstr "Spécifie s'il faut vider l'historique des travaux automatiquement lorsqu'il n'est plus nécessaire pour les quotas."
 
 #. type: deftypevr
-#: doc/guix.texi:14025
+#: doc/guix.texi:17632
+#, no-wrap
+msgid "{@code{cups-configuration} parameter} comma-separated-string-list browse-dns-sd-sub-types"
+msgstr "{paramètre de @code{cups-configuration}} comma-separated-string-list browse-dns-sd-sub-types"
+
+#. type: deftypevr
+#: doc/guix.texi:17636
+msgid "Specifies a list of DNS-SD sub-types to advertise for each shared printer.  For example, @samp{\"_cups\" \"_print\"} will tell network clients that both CUPS sharing and IPP Everywhere are supported."
+msgstr "Spécifie une liste de sous-types DNS-SD à publier pour chaque imprimante connectée.  Par exemple, @samp{\" cups\" \" print\"} dira aux clients réseaux que le partage CUPS et IPP Everywhere sont pris en charge."
+
+#. type: deftypevr
+#: doc/guix.texi:17638
+msgid "Defaults to @samp{\"_cups\"}."
+msgstr "La valeur par défaut est @samp{\" cups\"}."
+
+#. type: deftypevr
+#: doc/guix.texi:17640
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} browse-local-protocols browse-local-protocols"
 msgstr "{paramètre de @code{cups-configuration}} browse-local-protocols browse-local-protocols"
 
 #. type: deftypevr
-#: doc/guix.texi:14027
+#: doc/guix.texi:17642
 msgid "Specifies which protocols to use for local printer sharing."
 msgstr "Spécifie les protocoles à utiliser pour partager les imprimantes sur le réseau local."
 
 #. type: deftypevr
-#: doc/guix.texi:14029
+#: doc/guix.texi:17644
 msgid "Defaults to @samp{dnssd}."
 msgstr "La valeur par défaut est @samp{dnssd}."
 
 #. type: deftypevr
-#: doc/guix.texi:14031
+#: doc/guix.texi:17646
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} boolean browse-web-if?"
 msgstr "{paramètre de @code{cups-configuration}} boolean browse-web-if?"
 
 #. type: deftypevr
-#: doc/guix.texi:14033
+#: doc/guix.texi:17648
 msgid "Specifies whether the CUPS web interface is advertised."
 msgstr "Spécifie si l'interface web de CUPS est publiée."
 
 #. type: deftypevr
-#: doc/guix.texi:14037
+#: doc/guix.texi:17652
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} boolean browsing?"
 msgstr "{paramètre de @code{cups-configuration}} boolean browsing?"
 
 #. type: deftypevr
-#: doc/guix.texi:14039
+#: doc/guix.texi:17654
 msgid "Specifies whether shared printers are advertised."
 msgstr "Spécifie si les imprimantes partagées sont publiées."
 
 #. type: deftypevr
-#: doc/guix.texi:14043
+#: doc/guix.texi:17658
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} string classification"
 msgstr "{paramètre de @code{cups-configuration}} string classification"
 
 #. type: deftypevr
-#: doc/guix.texi:14048
-msgid "Specifies the security classification of the server.  Any valid banner name can be used, including \"classified\", \"confidential\", \"secret\", \"topsecret\", and \"unclassified\", or the banner can be omitted to disable secure printing functions."
-msgstr "Spécifie la classification de sécurité du serveur.  N'importe quel nom de bannière peut être utilisé, comme « classifié », « confidentiel », « secret », « top secret » et « déclassifié » ou la bannière peut être omise pour désactiver les fonctions d'impression sécurisées."
-
-#. type: deftypevr
-#: doc/guix.texi:14050 doc/guix.texi:14387 doc/guix.texi:15990
-#: doc/guix.texi:16002 doc/guix.texi:17704 doc/guix.texi:17730
-#: doc/guix.texi:17766 doc/guix.texi:17831 doc/guix.texi:17870
-#: doc/guix.texi:17929 doc/guix.texi:17938 doc/guix.texi:21524
-#: doc/guix.texi:21532 doc/guix.texi:21540 doc/guix.texi:21548
-#: doc/guix.texi:21826 doc/guix.texi:22304 doc/guix.texi:22312
-#: doc/guix.texi:22320 doc/guix.texi:22428 doc/guix.texi:22453
-#: doc/guix.texi:22584 doc/guix.texi:22592 doc/guix.texi:22600
-#: doc/guix.texi:22608 doc/guix.texi:22616 doc/guix.texi:22624
-#: doc/guix.texi:22647 doc/guix.texi:22655 doc/guix.texi:22707
-#: doc/guix.texi:22723 doc/guix.texi:22731 doc/guix.texi:22770
-#: doc/guix.texi:22793 doc/guix.texi:22815 doc/guix.texi:22822
-#: doc/guix.texi:22857 doc/guix.texi:22865 doc/guix.texi:22889
-#: doc/guix.texi:22921 doc/guix.texi:22950 doc/guix.texi:22957
-#: doc/guix.texi:22964 doc/guix.texi:22972 doc/guix.texi:22986
-#: doc/guix.texi:22995 doc/guix.texi:23005 doc/guix.texi:23012
-#: doc/guix.texi:23019 doc/guix.texi:23026 doc/guix.texi:23097
-#: doc/guix.texi:23104 doc/guix.texi:23111 doc/guix.texi:23120
-#: doc/guix.texi:23136 doc/guix.texi:23143 doc/guix.texi:23150
-#: doc/guix.texi:23157 doc/guix.texi:23165 doc/guix.texi:23173
+#: doc/guix.texi:17663
+msgid "Specifies the security classification of the server.  Any valid banner name can be used, including @samp{\"classified\"}, @samp{\"confidential\"}, @samp{\"secret\"}, @samp{\"topsecret\"}, and @samp{\"unclassified\"}, or the banner can be omitted to disable secure printing functions."
+msgstr "Spécifie la classification de sécurité du serveur.  N'importe quel nom de bannière peut être utilisé, comme @samp{\"classified\"}, @samp{\"confidential\"}, @samp{\"secret\"}, @samp{\"topsecret\"} et @samp{\"unclassified\"} ou la bannière peut être omise pour désactiver les fonctions d'impression sécurisées."
+
+#. type: deftypevr
+#: doc/guix.texi:17665 doc/guix.texi:18002 doc/guix.texi:19840
+#: doc/guix.texi:19852 doc/guix.texi:20626 doc/guix.texi:20640
+#: doc/guix.texi:20647 doc/guix.texi:20654 doc/guix.texi:20684
+#: doc/guix.texi:20782 doc/guix.texi:21846 doc/guix.texi:21872
+#: doc/guix.texi:21908 doc/guix.texi:21973 doc/guix.texi:22012
+#: doc/guix.texi:22071 doc/guix.texi:22080 doc/guix.texi:26291
+#: doc/guix.texi:26299 doc/guix.texi:26307 doc/guix.texi:26315
+#: doc/guix.texi:26594 doc/guix.texi:27903 doc/guix.texi:27911
+#: doc/guix.texi:27919 doc/guix.texi:28027 doc/guix.texi:28052
+#: doc/guix.texi:28183 doc/guix.texi:28191 doc/guix.texi:28199
+#: doc/guix.texi:28207 doc/guix.texi:28215 doc/guix.texi:28223
+#: doc/guix.texi:28246 doc/guix.texi:28254 doc/guix.texi:28306
+#: doc/guix.texi:28322 doc/guix.texi:28330 doc/guix.texi:28369
+#: doc/guix.texi:28392 doc/guix.texi:28414 doc/guix.texi:28421
+#: doc/guix.texi:28456 doc/guix.texi:28464 doc/guix.texi:28488
+#: doc/guix.texi:28520 doc/guix.texi:28549 doc/guix.texi:28556
+#: doc/guix.texi:28563 doc/guix.texi:28571 doc/guix.texi:28585
+#: doc/guix.texi:28594 doc/guix.texi:28604 doc/guix.texi:28611
+#: doc/guix.texi:28618 doc/guix.texi:28625 doc/guix.texi:28696
+#: doc/guix.texi:28703 doc/guix.texi:28710 doc/guix.texi:28719
+#: doc/guix.texi:28735 doc/guix.texi:28742 doc/guix.texi:28749
+#: doc/guix.texi:28756 doc/guix.texi:28764 doc/guix.texi:28772
 msgid "Defaults to @samp{\"\"}."
 msgstr "La valeur par défaut est @samp{\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:14052
+#: doc/guix.texi:17667
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} boolean classify-override?"
 msgstr "{paramètre de @code{cups-configuration}} boolean classify-override?"
 
 #. type: deftypevr
-#: doc/guix.texi:14055
+#: doc/guix.texi:17670
 msgid "Specifies whether users may override the classification (cover page) of individual print jobs using the @code{job-sheets} option."
 msgstr "Spécifie si les utilisateurs peuvent remplacer la classification (page de couverture) des travaux d'impression individuels avec l'option @code{job-sheets}."
 
 #. type: deftypevr
-#: doc/guix.texi:14059
+#: doc/guix.texi:17674
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} default-auth-type default-auth-type"
 msgstr "{paramètre de @code{cups-configuration}} default-auth-type default-auth-type"
 
 #. type: deftypevr
-#: doc/guix.texi:14061
+#: doc/guix.texi:17676
 msgid "Specifies the default type of authentication to use."
 msgstr "Spécifie le type d'authentification par défaut à utiliser."
 
 #. type: deftypevr
-#: doc/guix.texi:14063
+#: doc/guix.texi:17678
 msgid "Defaults to @samp{Basic}."
 msgstr "La valeur par défaut est @samp{Basic}."
 
 #. type: deftypevr
-#: doc/guix.texi:14065
+#: doc/guix.texi:17680
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} default-encryption default-encryption"
 msgstr "{paramètre de @code{cups-configuration}} default-encryption default-encryption"
 
 #. type: deftypevr
-#: doc/guix.texi:14067
+#: doc/guix.texi:17682
 msgid "Specifies whether encryption will be used for authenticated requests."
 msgstr "Spécifie si le chiffrement sera utilisé pour les requêtes authentifiées."
 
 #. type: deftypevr
-#: doc/guix.texi:14069
+#: doc/guix.texi:17684
 msgid "Defaults to @samp{Required}."
 msgstr "La valeur par défaut est @samp{Required}."
 
 #. type: deftypevr
-#: doc/guix.texi:14071
+#: doc/guix.texi:17686
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} string default-language"
 msgstr "{paramètre de @code{cups-configuration}} string default-language"
 
 #. type: deftypevr
-#: doc/guix.texi:14073
+#: doc/guix.texi:17688
 msgid "Specifies the default language to use for text and web content."
 msgstr "Spécifie la langue par défaut à utiliser pour le contenu textuel et web."
 
 #. type: deftypevr
-#: doc/guix.texi:14075
+#: doc/guix.texi:17690
 msgid "Defaults to @samp{\"en\"}."
 msgstr "La valeur par défaut est @samp{\"en\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:14077
+#: doc/guix.texi:17692
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} string default-paper-size"
 msgstr "{paramètre de @code{cups-configuration}} string default-paper-size"
 
 #. type: deftypevr
-#: doc/guix.texi:14082
+#: doc/guix.texi:17697
 msgid "Specifies the default paper size for new print queues.  @samp{\"Auto\"} uses a locale-specific default, while @samp{\"None\"} specifies there is no default paper size.  Specific size names are typically @samp{\"Letter\"} or @samp{\"A4\"}."
 msgstr "Spécifie la taille de papier par défaut pour les nouvelles queues d'impression.  @samp{\"Auto\"} utilise la valeur par défaut du paramètre de régionalisation, tandis que @samp{\"None\"} spécifie qu'il n'y a pas de taille par défaut.  Des noms de tailles spécifique sont par exemple @samp{\"Letter\"} et @samp{\"A4\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:14084
+#: doc/guix.texi:17699
 msgid "Defaults to @samp{\"Auto\"}."
 msgstr "La valeur par défaut est @samp{\"Auto\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:14086
+#: doc/guix.texi:17701
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} string default-policy"
 msgstr "{paramètre de @code{cups-configuration}} string default-policy"
 
 #. type: deftypevr
-#: doc/guix.texi:14088
+#: doc/guix.texi:17703
 msgid "Specifies the default access policy to use."
 msgstr "Spécifie la politique d'accès par défaut à utiliser."
 
 #. type: deftypevr
-#: doc/guix.texi:14090
+#: doc/guix.texi:17705
 msgid "Defaults to @samp{\"default\"}."
 msgstr "La valeur par défaut est @samp{\"default\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:14092
+#: doc/guix.texi:17707
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} boolean default-shared?"
 msgstr "{paramètre de @code{cups-configuration}} boolean default-shared?"
 
 #. type: deftypevr
-#: doc/guix.texi:14094
+#: doc/guix.texi:17709
 msgid "Specifies whether local printers are shared by default."
 msgstr "Spécifie si les imprimantes locales sont partagées par défaut."
 
 #. type: deftypevr
-#: doc/guix.texi:14096 doc/guix.texi:14176 doc/guix.texi:14472
-#: doc/guix.texi:20084 doc/guix.texi:20112 doc/guix.texi:20232
-#: doc/guix.texi:20239 doc/guix.texi:20247 doc/guix.texi:20269
-#: doc/guix.texi:20283 doc/guix.texi:20368 doc/guix.texi:20375
-#: doc/guix.texi:20383 doc/guix.texi:20793 doc/guix.texi:20933
-#: doc/guix.texi:21119 doc/guix.texi:21126 doc/guix.texi:21148
-#: doc/guix.texi:21187 doc/guix.texi:21207 doc/guix.texi:21221
-#: doc/guix.texi:21373 doc/guix.texi:22406 doc/guix.texi:22494
-#: doc/guix.texi:22510 doc/guix.texi:22560
+#: doc/guix.texi:17711 doc/guix.texi:17791 doc/guix.texi:18087
+#: doc/guix.texi:20716 doc/guix.texi:20767 doc/guix.texi:20774
+#: doc/guix.texi:24673 doc/guix.texi:24701 doc/guix.texi:24821
+#: doc/guix.texi:24828 doc/guix.texi:24836 doc/guix.texi:24873
+#: doc/guix.texi:24887 doc/guix.texi:24972 doc/guix.texi:24979
+#: doc/guix.texi:24987 doc/guix.texi:25499 doc/guix.texi:25639
+#: doc/guix.texi:25825 doc/guix.texi:25832 doc/guix.texi:25854
+#: doc/guix.texi:25893 doc/guix.texi:25913 doc/guix.texi:25927
+#: doc/guix.texi:26140 doc/guix.texi:28005 doc/guix.texi:28093
+#: doc/guix.texi:28109 doc/guix.texi:28159
 msgid "Defaults to @samp{#t}."
 msgstr "La valeur par défaut est @samp{#t}."
 
 #. type: deftypevr
-#: doc/guix.texi:14098
+#: doc/guix.texi:17713
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer dirty-clean-interval"
 msgstr "{paramètre de @code{cups-configuration}} non-negative-integer dirty-clean-interval"
 
 #. type: deftypevr
-#: doc/guix.texi:14102
+#: doc/guix.texi:17717
 msgid "Specifies the delay for updating of configuration and state files, in seconds.  A value of 0 causes the update to happen as soon as possible, typically within a few milliseconds."
 msgstr "Spécifie le délai pour mettre à jour les fichiers de configuration et d'état.  Une valeur de 0 fait que la mise à jour arrive aussi vite que possible, typiquement en quelques millisecondes."
 
 #. type: deftypevr
-#: doc/guix.texi:14104 doc/guix.texi:14152 doc/guix.texi:14161
-#: doc/guix.texi:14182 doc/guix.texi:14479
+#: doc/guix.texi:17719 doc/guix.texi:17767 doc/guix.texi:17776
+#: doc/guix.texi:17797 doc/guix.texi:18094
 msgid "Defaults to @samp{30}."
 msgstr "La valeur par défaut est @samp{30}."
 
 #. type: deftypevr
-#: doc/guix.texi:14106
+#: doc/guix.texi:17721
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} error-policy error-policy"
 msgstr "{paramètre de @code{cups-configuration}} error-policy error-policy"
 
 #. type: deftypevr
-#: doc/guix.texi:14112
-msgid "Specifies what to do when an error occurs.  Possible values are @code{abort-job}, which will discard the failed print job; @code{retry-job}, which will retry the job at a later time; @code{retry-this-job}, which retries the failed job immediately; and @code{stop-printer}, which stops the printer."
-msgstr "Spécifie ce qu'il faut faire si une erreur a lieu.  Les valeurs possibles sont @code{abort-job}, qui supprimera les travaux d'impression en échec ; @code{retry-job}, qui tentera de nouveau l'impression plus tard ; @code{retry-this-job}, qui retentera l'impression immédiatement ; et @code{stop-printer} qui arrête l'imprimante."
+#: doc/guix.texi:17727
+msgid "Specifies what to do when an error occurs.  Possible values are @code{abort-job}, which will discard the failed print job; @code{retry-job}, which will retry the job at a later time; @code{retry-current-job}, which retries the failed job immediately; and @code{stop-printer}, which stops the printer."
+msgstr "Spécifie ce qu'il faut faire si une erreur a lieu.  Les valeurs possibles sont @code{abort-job}, qui supprimera les travaux d'impression en échec ; @code{retry-job}, qui tentera de nouveau l'impression plus tard ; @code{retry-current-job}, qui retentera l'impression immédiatement ; et @code{stop-printer} qui arrête l'imprimante."
 
 #. type: deftypevr
-#: doc/guix.texi:14114
+#: doc/guix.texi:17729
 msgid "Defaults to @samp{stop-printer}."
 msgstr "La valeur par défaut est @samp{stop-printer}."
 
 #. type: deftypevr
-#: doc/guix.texi:14116
+#: doc/guix.texi:17731
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer filter-limit"
 msgstr "{paramètre de @code{cups-configuration}} non-negative-integer filter-limit"
 
 #. type: deftypevr
-#: doc/guix.texi:14124
+#: doc/guix.texi:17739
 msgid "Specifies the maximum cost of filters that are run concurrently, which can be used to minimize disk, memory, and CPU resource problems.  A limit of 0 disables filter limiting.  An average print to a non-PostScript printer needs a filter limit of about 200.  A PostScript printer needs about half that (100).  Setting the limit below these thresholds will effectively limit the scheduler to printing a single job at any time."
 msgstr "Spécifie le coût maximum des filtres qui sont lancés en même temps, pour minimiser les problèmes de ressources de disque, de mémoire et de CPU.  Une limite de 0 désactive la limite de filtrage.  Une impression standard vers une imprimante non-PostScript requiert une limite de filtre d'environ 200.  Une imprimante PostScript requiert environ la moitié (100).  Mettre en place la limite en dessous de ces valeurs limitera l'ordonnanceur à un seul travail d'impression à la fois."
 
 #. type: deftypevr
-#: doc/guix.texi:14126 doc/guix.texi:14134 doc/guix.texi:14189
-#: doc/guix.texi:14305 doc/guix.texi:14319 doc/guix.texi:14326
-#: doc/guix.texi:15432 doc/guix.texi:15448 doc/guix.texi:16094
-#: doc/guix.texi:16106 doc/guix.texi:20809 doc/guix.texi:21134
-#: doc/guix.texi:22399 doc/guix.texi:22699 doc/guix.texi:22873
+#: doc/guix.texi:17741 doc/guix.texi:17749 doc/guix.texi:17804
+#: doc/guix.texi:17920 doc/guix.texi:17934 doc/guix.texi:17941
+#: doc/guix.texi:19282 doc/guix.texi:19298 doc/guix.texi:19944
+#: doc/guix.texi:19956 doc/guix.texi:20735 doc/guix.texi:20744
+#: doc/guix.texi:20752 doc/guix.texi:20760 doc/guix.texi:25515
+#: doc/guix.texi:25840 doc/guix.texi:27998 doc/guix.texi:28298
+#: doc/guix.texi:28472
 msgid "Defaults to @samp{0}."
 msgstr "La valeur par défaut est @samp{0}."
 
 #. type: deftypevr
-#: doc/guix.texi:14128
+#: doc/guix.texi:17743
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer filter-nice"
 msgstr "{paramètre de @code{cups-configuration}} non-negative-integer filter-nice"
 
 #. type: deftypevr
-#: doc/guix.texi:14132
+#: doc/guix.texi:17747
 msgid "Specifies the scheduling priority of filters that are run to print a job.  The nice value ranges from 0, the highest priority, to 19, the lowest priority."
 msgstr "Spécifie la priorité des filtres de l'ordonnanceur qui sont lancés pour imprimer un travail.  La valeur va de 0, la plus grande priorité, à 19, la plus basse priorité."
 
 #. type: deftypevr
-#: doc/guix.texi:14136
+#: doc/guix.texi:17751
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} host-name-lookups host-name-lookups"
 msgstr "{paramètre de @code{cups-configuration}} host-name-lookups host-name-lookups"
 
 #. type: deftypevr
-#: doc/guix.texi:14143
+#: doc/guix.texi:17758
 msgid "Specifies whether to do reverse lookups on connecting clients.  The @code{double} setting causes @code{cupsd} to verify that the hostname resolved from the address matches one of the addresses returned for that hostname.  Double lookups also prevent clients with unregistered addresses from connecting to your server.  Only set this option to @code{#t} or @code{double} if absolutely required."
 msgstr "Spécifie s'il faut faire des résolutions inverses sur les clients qui se connectent.  Le paramètre @code{double} fait que @code{cupsd} vérifie que le nom d'hôte résolu depuis l'adresse correspond à l'une des adresses renvoyées par ce nom d'hôte.  Les résolutions doubles évitent aussi que des clients avec des adresses non enregistrées ne s'adressent à votre serveur.  N'initialisez cette valeur qu'à @code{#t} ou @code{double} que si c'est absolument nécessaire."
 
 #. type: deftypevr
-#: doc/guix.texi:14147
+#: doc/guix.texi:17762
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer job-kill-delay"
 msgstr "{paramètre de @code{cups-configuration}} non-negative-integer job-kill-delay"
 
 #. type: deftypevr
-#: doc/guix.texi:14150
+#: doc/guix.texi:17765
 msgid "Specifies the number of seconds to wait before killing the filters and backend associated with a canceled or held job."
 msgstr "Spécifie le nombre de secondes à attendre avant de tuer les filtres et les moteurs associés avec un travail annulé ou suspendu."
 
 #. type: deftypevr
-#: doc/guix.texi:14154
+#: doc/guix.texi:17769
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer job-retry-interval"
 msgstr "{paramètre de @code{cups-configuration}} non-negative-integer job-retry-interval"
 
 #. type: deftypevr
-#: doc/guix.texi:14159
+#: doc/guix.texi:17774
 msgid "Specifies the interval between retries of jobs in seconds.  This is typically used for fax queues but can also be used with normal print queues whose error policy is @code{retry-job} or @code{retry-current-job}."
 msgstr "Spécifie l'intervalle des nouvelles tentatives en secondes.  C'est typiquement utilisé pour les queues de fax mais peut aussi être utilisé avec des queues d'impressions normales dont la politique d'erreur est @code{retry-job} ou @code{retry-current-job}."
 
 #. type: deftypevr
-#: doc/guix.texi:14163
+#: doc/guix.texi:17778
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer job-retry-limit"
 msgstr "{paramètre de @code{cups-configuration}} non-negative-integer job-retry-limit"
 
 #. type: deftypevr
-#: doc/guix.texi:14168
+#: doc/guix.texi:17783
 msgid "Specifies the number of retries that are done for jobs.  This is typically used for fax queues but can also be used with normal print queues whose error policy is @code{retry-job} or @code{retry-current-job}."
 msgstr "Spécifie le nombre de nouvelles tentatives pour les travaux.  C'est typiquement utilisé pour les queues de fax mais peut aussi être utilisé pour les queues d'impressions dont la politique d'erreur est @code{retry-job} ou @code{retry-current-job}."
 
 #. type: deftypevr
-#: doc/guix.texi:14170 doc/guix.texi:21625 doc/guix.texi:21645
-#: doc/guix.texi:21661 doc/guix.texi:21675 doc/guix.texi:21682
-#: doc/guix.texi:21689 doc/guix.texi:21696 doc/guix.texi:21855
-#: doc/guix.texi:21871 doc/guix.texi:21878 doc/guix.texi:21885
-#: doc/guix.texi:21896 doc/guix.texi:22351 doc/guix.texi:22359
-#: doc/guix.texi:22367 doc/guix.texi:22391
+#: doc/guix.texi:17785 doc/guix.texi:26392 doc/guix.texi:26412
+#: doc/guix.texi:26428 doc/guix.texi:26442 doc/guix.texi:26449
+#: doc/guix.texi:26456 doc/guix.texi:26463 doc/guix.texi:26623
+#: doc/guix.texi:26639 doc/guix.texi:26646 doc/guix.texi:26653
+#: doc/guix.texi:26664 doc/guix.texi:27950 doc/guix.texi:27958
+#: doc/guix.texi:27966 doc/guix.texi:27990
 msgid "Defaults to @samp{5}."
 msgstr "La valeur par défaut est @samp{5}."
 
 #. type: deftypevr
-#: doc/guix.texi:14172
+#: doc/guix.texi:17787
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} boolean keep-alive?"
 msgstr "{paramètre de @code{cups-configuration}} boolean keep-alive?"
 
 #. type: deftypevr
-#: doc/guix.texi:14174
+#: doc/guix.texi:17789
 msgid "Specifies whether to support HTTP keep-alive connections."
 msgstr "Spécifie s'il faut supporter les connexion HTTP keep-alive."
 
 #. type: deftypevr
-#: doc/guix.texi:14178
+#: doc/guix.texi:17793
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer keep-alive-timeout"
 msgstr "{paramètre de @code{cups-configuration}} non-negative-integer keep-alive-timeout"
 
 #. type: deftypevr
-#: doc/guix.texi:14180
+#: doc/guix.texi:17795
 msgid "Specifies how long an idle client connection remains open, in seconds."
 msgstr "Spécifie combien de temps les connexions inactives avec les clients restent ouvertes, en secondes."
 
 #. type: deftypevr
-#: doc/guix.texi:14184
+#: doc/guix.texi:17799
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer limit-request-body"
 msgstr "{paramètre de @code{cups-configuration}} non-negative-integer limit-request-body"
 
 #. type: deftypevr
-#: doc/guix.texi:14187
+#: doc/guix.texi:17802
 msgid "Specifies the maximum size of print files, IPP requests, and HTML form data.  A limit of 0 disables the limit check."
 msgstr "Spécifie la taille maximale des fichiers à imprimer, des requêtes IPP et des données de formulaires HTML.  Une limite de 0 désactive la vérification de la limite."
 
 #. type: deftypevr
-#: doc/guix.texi:14191
+#: doc/guix.texi:17806
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} multiline-string-list listen"
 msgstr "{paramètre de @code{cups-configuration}} multiline-string-list listen"
 
 #. type: deftypevr
-#: doc/guix.texi:14198
+#: doc/guix.texi:17813
 msgid "Listens on the specified interfaces for connections.  Valid values are of the form @var{address}:@var{port}, where @var{address} is either an IPv6 address enclosed in brackets, an IPv4 address, or @code{*} to indicate all addresses.  Values can also be file names of local UNIX domain sockets.  The Listen directive is similar to the Port directive but allows you to restrict access to specific interfaces or networks."
 msgstr "Écoute sur les interfaces spécifiées.  Les valeurs valides sont de la forme @var{adresse}:@var{port}, où @var{adresse} est soit une adresse IPv6 dans des crochets, soit une adresse IPv4, soit @code{*} pour indiquer toutes les adresses.  Les valeurs peuvent aussi être des noms de fichiers de socket UNIX domain.  La directive Listen est similaire à la directive Port mais vous permet de restreindre l'accès à des interfaces ou des réseaux spécifiques."
 
 #. type: deftypevr
-#: doc/guix.texi:14200
+#: doc/guix.texi:17815
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer listen-back-log"
 msgstr "{paramètre de @code{cups-configuration}} non-negative-integer listen-back-log"
 
 #. type: deftypevr
-#: doc/guix.texi:14207
+#: doc/guix.texi:17822
 msgid "Specifies the number of pending connections that will be allowed.  This normally only affects very busy servers that have reached the MaxClients limit, but can also be triggered by large numbers of simultaneous connections.  When the limit is reached, the operating system will refuse additional connections until the scheduler can accept the pending ones."
 msgstr "Spécifie le nombre de connexions en attente qui seront permises.  Ça n'affecte normalement que les serveurs très actifs qui ont atteint la limite MaxClients, mais peut aussi être déclenché par un grand nombre de connexions simultanées.  Lorsque la limite est atteinte, le système d'exploitation refusera les connexions supplémentaires jusqu'à ce que l'ordonnanceur accepte les connexions en attente."
 
 #. type: deftypevr
-#: doc/guix.texi:14209
+#: doc/guix.texi:17824
 msgid "Defaults to @samp{128}."
 msgstr "La valeur par défaut est @samp{128}."
 
 #. type: deftypevr
-#: doc/guix.texi:14211
+#: doc/guix.texi:17826
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} location-access-control-list location-access-controls"
 msgstr "{paramètre de @code{cups-configuration}} location-access-control-list location-access-controls"
 
 #. type: deftypevr
-#: doc/guix.texi:14213
+#: doc/guix.texi:17828
 msgid "Specifies a set of additional access controls."
 msgstr "Spécifie un ensemble de contrôles d'accès supplémentaires."
 
 #. type: deftypevr
-#: doc/guix.texi:14215
+#: doc/guix.texi:17830
 msgid "Available @code{location-access-controls} fields are:"
 msgstr "Les champs de @code{location-access-controls} disponibles sont :"
 
 #. type: deftypevr
-#: doc/guix.texi:14216
+#: doc/guix.texi:17831
 #, no-wrap
 msgid "{@code{location-access-controls} parameter} file-name path"
 msgstr "{paramètre de @code{location-access-controls}} file-name path"
 
 #. type: deftypevr
-#: doc/guix.texi:14218
+#: doc/guix.texi:17833
 msgid "Specifies the URI path to which the access control applies."
 msgstr "Spécifie le chemin d'URI auquel les contrôles d'accès s'appliquent."
 
 #. type: deftypevr
-#: doc/guix.texi:14220
+#: doc/guix.texi:17835
 #, no-wrap
 msgid "{@code{location-access-controls} parameter} access-control-list access-controls"
 msgstr "{paramètre de @code{location-access-controls}} access-control-list access-controls"
 
 #. type: deftypevr
-#: doc/guix.texi:14223
+#: doc/guix.texi:17838
 msgid "Access controls for all access to this path, in the same format as the @code{access-controls} of @code{operation-access-control}."
 msgstr "Les contrôles d'accès pour tous les accès à ce chemin, dans le même format que le champ @code{access-controls} de @code{operation-access-control}."
 
 #. type: deftypevr
-#: doc/guix.texi:14225 doc/guix.texi:14231 doc/guix.texi:14245
-#: doc/guix.texi:14252 doc/guix.texi:14394 doc/guix.texi:14453
-#: doc/guix.texi:14537 doc/guix.texi:14548 doc/guix.texi:16580
-#: doc/guix.texi:17774 doc/guix.texi:17878 doc/guix.texi:18303
-#: doc/guix.texi:18311 doc/guix.texi:18556 doc/guix.texi:20143
-#: doc/guix.texi:20290 doc/guix.texi:20478 doc/guix.texi:21516
-#: doc/guix.texi:21576 doc/guix.texi:21584 doc/guix.texi:22414
-#: doc/guix.texi:22421 doc/guix.texi:22763 doc/guix.texi:22841
-#: doc/guix.texi:22935 doc/guix.texi:22943 doc/guix.texi:22979
-#: doc/guix.texi:23129 doc/guix.texi:23180 doc/guix.texi:23189
+#: doc/guix.texi:17840 doc/guix.texi:17846 doc/guix.texi:17860
+#: doc/guix.texi:17867 doc/guix.texi:18009 doc/guix.texi:18068
+#: doc/guix.texi:18146 doc/guix.texi:18160 doc/guix.texi:20430
+#: doc/guix.texi:20633 doc/guix.texi:20661 doc/guix.texi:20691
+#: doc/guix.texi:20806 doc/guix.texi:20819 doc/guix.texi:20826
+#: doc/guix.texi:21916 doc/guix.texi:22020 doc/guix.texi:22446
+#: doc/guix.texi:22454 doc/guix.texi:22699 doc/guix.texi:24732
+#: doc/guix.texi:24894 doc/guix.texi:25089 doc/guix.texi:26283
+#: doc/guix.texi:26343 doc/guix.texi:26351 doc/guix.texi:28013
+#: doc/guix.texi:28020 doc/guix.texi:28362 doc/guix.texi:28440
+#: doc/guix.texi:28534 doc/guix.texi:28542 doc/guix.texi:28578
+#: doc/guix.texi:28728 doc/guix.texi:28779 doc/guix.texi:28788
 msgid "Defaults to @samp{()}."
 msgstr "La valeur par défaut est @samp{()}."
 
 #. type: deftypevr
-#: doc/guix.texi:14227
+#: doc/guix.texi:17842
 #, no-wrap
 msgid "{@code{location-access-controls} parameter} method-access-control-list method-access-controls"
 msgstr "{paramètre de @code{location-access-controls}} method-access-control-list method-access-controls"
 
 #. type: deftypevr
-#: doc/guix.texi:14229
+#: doc/guix.texi:17844
 msgid "Access controls for method-specific access to this path."
 msgstr "Contrôles d'accès pour les accès spécifiques à la méthode à ce chemin."
 
 #. type: deftypevr
-#: doc/guix.texi:14233
+#: doc/guix.texi:17848
 msgid "Available @code{method-access-controls} fields are:"
 msgstr "Les champs de @code{method-access-controls} disponibles sont :"
 
 #. type: deftypevr
-#: doc/guix.texi:14234
+#: doc/guix.texi:17849
 #, no-wrap
 msgid "{@code{method-access-controls} parameter} boolean reverse?"
 msgstr "{paramètre de @code{method-access-controls}} boolean reverse?"
 
 #. type: deftypevr
-#: doc/guix.texi:14237
+#: doc/guix.texi:17852
 msgid "If @code{#t}, apply access controls to all methods except the listed methods.  Otherwise apply to only the listed methods."
 msgstr "Si la valeur est @code{#t}, applique les contrôles d'accès à toutes les méthodes sauf les méthodes listées.  Sinon, applique le contrôle uniquement aux méthodes listées."
 
 #. type: deftypevr
-#: doc/guix.texi:14241
+#: doc/guix.texi:17856
 #, no-wrap
 msgid "{@code{method-access-controls} parameter} method-list methods"
 msgstr "{paramètre de @code{method-access-controls}} method-list methods"
 
 #. type: deftypevr
-#: doc/guix.texi:14243
+#: doc/guix.texi:17858
 msgid "Methods to which this access control applies."
 msgstr "Les méthodes auxquelles ce contrôle d'accès s'applique."
 
 #. type: deftypevr
-#: doc/guix.texi:14247
+#: doc/guix.texi:17862
 #, no-wrap
 msgid "{@code{method-access-controls} parameter} access-control-list access-controls"
 msgstr "{paramètre de @code{method-access-controls}} access-control-list access-controls"
 
 #. type: deftypevr
-#: doc/guix.texi:14250
-msgid "Access control directives, as a list of strings.  Each string should be one directive, such as \"Order allow,deny\"."
-msgstr "Directives de contrôle d'accès, comme une liste de chaînes de caractères.  Chaque chaîne devrait être une directive, comme « Order allow, deny »."
+#: doc/guix.texi:17865
+msgid "Access control directives, as a list of strings.  Each string should be one directive, such as @samp{\"Order allow,deny\"}."
+msgstr "Directives de contrôle d'accès, en tant que liste de chaines de caractères.  Chaque chaine devrait être une directive, comme @samp{\"Order allow,deny\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:14256
+#: doc/guix.texi:17871
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer log-debug-history"
 msgstr "{paramètre de @code{cups-configuration}} non-negative-integer log-debug-history"
 
 #. type: deftypevr
-#: doc/guix.texi:14260
+#: doc/guix.texi:17875
 msgid "Specifies the number of debugging messages that are retained for logging if an error occurs in a print job.  Debug messages are logged regardless of the LogLevel setting."
 msgstr "Spécifie le nombre de messages de débogage qui sont retenu pour la journalisation si une erreur arrive dans un travail d'impression.  Les messages de débogage sont journalisés indépendamment du paramètre LogLevel."
 
 #. type: deftypevr
-#: doc/guix.texi:14262 doc/guix.texi:14283 doc/guix.texi:14290
-#: doc/guix.texi:16340 doc/guix.texi:20463
+#: doc/guix.texi:17877 doc/guix.texi:17898 doc/guix.texi:17905
+#: doc/guix.texi:20190 doc/guix.texi:25074
 msgid "Defaults to @samp{100}."
 msgstr "La valeur par défaut est @samp{100}."
 
 #. type: deftypevr
-#: doc/guix.texi:14264
+#: doc/guix.texi:17879
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} log-level log-level"
 msgstr "{paramètre de @code{cups-configuration}} log-level log-level"
 
 #. type: deftypevr
-#: doc/guix.texi:14267
+#: doc/guix.texi:17882
 msgid "Specifies the level of logging for the ErrorLog file.  The value @code{none} stops all logging while @code{debug2} logs everything."
 msgstr "Spécifie le niveau de journalisation du fichier ErrorLog.  La valeur @code{none} arrête toute journalisation alors que que @code{debug2} enregistre tout."
 
 #. type: deftypevr
-#: doc/guix.texi:14269
+#: doc/guix.texi:17884
 msgid "Defaults to @samp{info}."
 msgstr "La valeur par défaut est @samp{info}."
 
 #. type: deftypevr
-#: doc/guix.texi:14271
+#: doc/guix.texi:17886
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} log-time-format log-time-format"
 msgstr "{paramètre de @code{cups-configuration}} log-time-format log-time-format"
 
 #. type: deftypevr
-#: doc/guix.texi:14274
+#: doc/guix.texi:17889
 msgid "Specifies the format of the date and time in the log files.  The value @code{standard} logs whole seconds while @code{usecs} logs microseconds."
 msgstr "Spécifie le format de la date et de l'heure dans les fichiers de journaux.  La valeur @code{standard} enregistre les secondes entières alors que @code{usecs} enregistre les microsecondes."
 
 #. type: deftypevr
-#: doc/guix.texi:14276
+#: doc/guix.texi:17891
 msgid "Defaults to @samp{standard}."
 msgstr "La valeur par défaut est @samp{standard}."
 
 #. type: deftypevr
-#: doc/guix.texi:14278
+#: doc/guix.texi:17893
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer max-clients"
 msgstr "{paramètre de @code{cups-configuration}} non-negative-integer max-clients"
 
 #. type: deftypevr
-#: doc/guix.texi:14281
+#: doc/guix.texi:17896
 msgid "Specifies the maximum number of simultaneous clients that are allowed by the scheduler."
 msgstr "Spécifie le nombre maximum de clients simultanés qui sont autorisés par l'ordonnanceur."
 
 #. type: deftypevr
-#: doc/guix.texi:14285
+#: doc/guix.texi:17900
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer max-clients-per-host"
 msgstr "{paramètre de @code{cups-configuration}} non-negative-integer max-clients-per-host"
 
 #. type: deftypevr
-#: doc/guix.texi:14288
+#: doc/guix.texi:17903
 msgid "Specifies the maximum number of simultaneous clients that are allowed from a single address."
 msgstr "Spécifie le nombre maximum de clients simultanés permis depuis une même adresse."
 
 #. type: deftypevr
-#: doc/guix.texi:14292
+#: doc/guix.texi:17907
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer max-copies"
 msgstr "{paramètre de @code{cups-configuration}} non-negative-integer max-copies"
 
 #. type: deftypevr
-#: doc/guix.texi:14295
+#: doc/guix.texi:17910
 msgid "Specifies the maximum number of copies that a user can print of each job."
 msgstr "Spécifie le nombre maximum de copies qu'un utilisateur peut imprimer pour chaque travail."
 
 #. type: deftypevr
-#: doc/guix.texi:14297
+#: doc/guix.texi:17912
 msgid "Defaults to @samp{9999}."
 msgstr "La valeur par défaut est @samp{9999}."
 
 #. type: deftypevr
-#: doc/guix.texi:14299
+#: doc/guix.texi:17914
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer max-hold-time"
 msgstr "{paramètre de @code{cups-configuration}} non-negative-integer max-hold-time"
 
 #. type: deftypevr
-#: doc/guix.texi:14303
+#: doc/guix.texi:17918
 msgid "Specifies the maximum time a job may remain in the @code{indefinite} hold state before it is canceled.  A value of 0 disables cancellation of held jobs."
 msgstr "Spécifie la durée maximum qu'un travail peut rester dans l'état de suspension @code{indefinite} avant qu'il ne soit annulé.  La valeur 0 désactive l'annulation des travaux suspendus."
 
 #. type: deftypevr
-#: doc/guix.texi:14307
+#: doc/guix.texi:17922
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer max-jobs"
 msgstr "{paramètre de @code{cups-configuration}} non-negative-integer max-jobs"
 
 #. type: deftypevr
-#: doc/guix.texi:14310
+#: doc/guix.texi:17925
 msgid "Specifies the maximum number of simultaneous jobs that are allowed.  Set to 0 to allow an unlimited number of jobs."
 msgstr "Spécifie le nombre maximum de travaux simultanés autorisés.  La valeur 0 permet un nombre illimité de travaux."
 
 #. type: deftypevr
-#: doc/guix.texi:14312
+#: doc/guix.texi:17927
 msgid "Defaults to @samp{500}."
 msgstr "La valeur par défaut est @samp{500}."
 
 #. type: deftypevr
-#: doc/guix.texi:14314
+#: doc/guix.texi:17929
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer max-jobs-per-printer"
 msgstr "{paramètre de @code{cups-configuration}} non-negative-integer max-jobs-per-printer"
 
 #. type: deftypevr
-#: doc/guix.texi:14317
+#: doc/guix.texi:17932
 msgid "Specifies the maximum number of simultaneous jobs that are allowed per printer.  A value of 0 allows up to MaxJobs jobs per printer."
 msgstr "Spécifie le nombre maximum de travaux simultanés autorisés par imprimante.  La valeur 0 permet au plus MaxJobs travaux par imprimante."
 
 #. type: deftypevr
-#: doc/guix.texi:14321
+#: doc/guix.texi:17936
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer max-jobs-per-user"
 msgstr "{paramètre de @code{cups-configuration}} non-negative-integer max-jobs-per-user"
 
 #. type: deftypevr
-#: doc/guix.texi:14324
+#: doc/guix.texi:17939
 msgid "Specifies the maximum number of simultaneous jobs that are allowed per user.  A value of 0 allows up to MaxJobs jobs per user."
 msgstr "Spécifie le nombre maximum de travaux simultanés permis par utilisateur.  La valeur 0 permet au plus MaxJobs travaux par utilisateur."
 
 #. type: deftypevr
-#: doc/guix.texi:14328
+#: doc/guix.texi:17943
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer max-job-time"
 msgstr "{paramètre de @code{cups-configuration}} non-negative-integer max-job-time"
 
 #. type: deftypevr
-#: doc/guix.texi:14331
-msgid "Specifies the maximum time a job may take to print before it is canceled, in seconds.  Set to 0 to disable cancellation of \"stuck\" jobs."
+#: doc/guix.texi:17946
+msgid "Specifies the maximum time a job may take to print before it is canceled, in seconds.  Set to 0 to disable cancellation of ``stuck'' jobs."
 msgstr "Spécifie la durée maximum qu'un travail peut prendre avant qu'il ne soit annulé, en secondes.  Indiquez 0 pour désactiver l'annulation des travaux « coincés »."
 
 #. type: deftypevr
-#: doc/guix.texi:14333
+#: doc/guix.texi:17948
 msgid "Defaults to @samp{10800}."
 msgstr "La valeur par défaut est @samp{10800}."
 
 #. type: deftypevr
-#: doc/guix.texi:14335
+#: doc/guix.texi:17950
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer max-log-size"
 msgstr "{paramètre de @code{cups-configuration}} non-negative-integer max-log-size"
 
 #. type: deftypevr
-#: doc/guix.texi:14338
+#: doc/guix.texi:17953
 msgid "Specifies the maximum size of the log files before they are rotated, in bytes.  The value 0 disables log rotation."
 msgstr "Spécifie la taille maximale des fichiers de journaux avant qu'on ne les fasse tourner, en octets.  La valeur 0 désactive la rotation."
 
 #. type: deftypevr
-#: doc/guix.texi:14340
+#: doc/guix.texi:17955
 msgid "Defaults to @samp{1048576}."
 msgstr "La valeur par défaut est @samp{1048576}."
 
 #. type: deftypevr
-#: doc/guix.texi:14342
+#: doc/guix.texi:17957
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer multiple-operation-timeout"
 msgstr "{paramètre de @code{cups-configuration}} non-negative-integer multiple-operation-timeout"
 
 #. type: deftypevr
-#: doc/guix.texi:14345
+#: doc/guix.texi:17960
 msgid "Specifies the maximum amount of time to allow between files in a multiple file print job, in seconds."
 msgstr "Spécifie la durée maximale à permettre entre les fichiers d'un travail en contenant plusieurs, en secondes."
 
 #. type: deftypevr
-#: doc/guix.texi:14347 doc/guix.texi:14561 doc/guix.texi:20077
+#: doc/guix.texi:17962 doc/guix.texi:18173 doc/guix.texi:24666
 msgid "Defaults to @samp{300}."
 msgstr "La valeur par défaut est @samp{300}."
 
 #. type: deftypevr
-#: doc/guix.texi:14349
+#: doc/guix.texi:17964
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} string page-log-format"
 msgstr "{paramètre de @code{cups-configuration}} string page-log-format"
 
 #. type: deftypevr
-#: doc/guix.texi:14354
+#: doc/guix.texi:17969
 msgid "Specifies the format of PageLog lines.  Sequences beginning with percent (@samp{%}) characters are replaced with the corresponding information, while all other characters are copied literally.  The following percent sequences are recognized:"
 msgstr "Spécifie le format des lignes PageLog.  Les séquences qui commencent par un pourcent (@samp{%}) sont remplacées par l'information correspondante, tandis que les autres caractères sont copiés littéralement.  Les séquences pourcent suivantes sont reconnues :"
 
 #. type: item
-#: doc/guix.texi:14356
+#: doc/guix.texi:17971
 #, no-wrap
 msgid "%%"
 msgstr "%%"
 
 #. type: table
-#: doc/guix.texi:14358
+#: doc/guix.texi:17973
 msgid "insert a single percent character"
 msgstr "insère un seul caractères pourcent"
 
 #. type: item
-#: doc/guix.texi:14359
+#: doc/guix.texi:17974
 #, no-wrap
 msgid "%@{name@}"
 msgstr "%@{name@}"
 
 #. type: table
-#: doc/guix.texi:14361
+#: doc/guix.texi:17976
 msgid "insert the value of the specified IPP attribute"
 msgstr "insère la valeur de l'attribut IPP spécifié"
 
 #. type: item
-#: doc/guix.texi:14362
+#: doc/guix.texi:17977
 #, no-wrap
 msgid "%C"
 msgstr "%C"
 
 #. type: table
-#: doc/guix.texi:14364
+#: doc/guix.texi:17979
 msgid "insert the number of copies for the current page"
 msgstr "insère le nombre de copies pour la page actuelle"
 
 #. type: item
-#: doc/guix.texi:14365
+#: doc/guix.texi:17980
 #, no-wrap
 msgid "%P"
 msgstr "%P"
 
 #. type: table
-#: doc/guix.texi:14367
+#: doc/guix.texi:17982
 msgid "insert the current page number"
 msgstr "insère le numéro de page actuelle"
 
 #. type: item
-#: doc/guix.texi:14368
+#: doc/guix.texi:17983
 #, no-wrap
 msgid "%T"
 msgstr "%T"
 
 #. type: table
-#: doc/guix.texi:14370
+#: doc/guix.texi:17985
 msgid "insert the current date and time in common log format"
 msgstr "insère la date et l'heure actuelle dans un format de journal commun"
 
 #. type: item
-#: doc/guix.texi:14371
+#: doc/guix.texi:17986
 #, no-wrap
 msgid "%j"
 msgstr "%j"
 
 #. type: table
-#: doc/guix.texi:14373
+#: doc/guix.texi:17988
 msgid "insert the job ID"
 msgstr "insère l'ID du travail"
 
 #. type: item
-#: doc/guix.texi:14374 doc/guix.texi:15950
+#: doc/guix.texi:17989 doc/guix.texi:19800
 #, no-wrap
 msgid "%p"
 msgstr "%p"
 
 #. type: table
-#: doc/guix.texi:14376
+#: doc/guix.texi:17991
 msgid "insert the printer name"
 msgstr "insère le nom de l'imprimante"
 
 #. type: item
-#: doc/guix.texi:14377 doc/guix.texi:15973
+#: doc/guix.texi:17992 doc/guix.texi:19823
 #, no-wrap
 msgid "%u"
 msgstr "%u"
 
 #. type: table
-#: doc/guix.texi:14379
+#: doc/guix.texi:17994
 msgid "insert the username"
 msgstr "insère le nom d'utilisateur"
 
 #. type: deftypevr
-#: doc/guix.texi:14385
+#: doc/guix.texi:18000
 msgid "A value of the empty string disables page logging.  The string @code{%p %u %j %T %P %C %@{job-billing@} %@{job-originating-host-name@} %@{job-name@} %@{media@} %@{sides@}} creates a page log with the standard items."
 msgstr "Si la valeur est la chaîne vide, le PageLog est désactivée.  La chaîne @code{%p %u %j %T %P %C %@{job-billing@} %@{job-originating-host-name@} %@{job-name@} %@{media@} %@{sides@}} crée un PageLog avec les entrées standards."
 
 #. type: deftypevr
-#: doc/guix.texi:14389
+#: doc/guix.texi:18004
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} environment-variables environment-variables"
 msgstr "{paramètre de @code{cups-configuration}} environment-variables environment-variables"
 
 #. type: deftypevr
-#: doc/guix.texi:14392
+#: doc/guix.texi:18007
 msgid "Passes the specified environment variable(s) to child processes; a list of strings."
 msgstr "Passe les variables d'environnement spécifiées aux processus fils ; une liste de chaînes de caractères."
 
 #. type: deftypevr
-#: doc/guix.texi:14396
+#: doc/guix.texi:18011
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} policy-configuration-list policies"
 msgstr "{paramètre de @code{cups-configuration}} policy-configuration-list policies"
 
 #. type: deftypevr
-#: doc/guix.texi:14398
+#: doc/guix.texi:18013
 msgid "Specifies named access control policies."
 msgstr "Spécifie des politiques de contrôle d'accès nommées."
 
 #. type: deftypevr
-#: doc/guix.texi:14400
+#: doc/guix.texi:18015
 msgid "Available @code{policy-configuration} fields are:"
 msgstr "Les champs de @code{policy-configuration} disponibles sont :"
 
 #. type: deftypevr
-#: doc/guix.texi:14401
+#: doc/guix.texi:18016
 #, no-wrap
 msgid "{@code{policy-configuration} parameter} string name"
 msgstr "{paramètre de @code{policy-configuration}} string name"
 
 #. type: deftypevr
-#: doc/guix.texi:14403
+#: doc/guix.texi:18018
 msgid "Name of the policy."
 msgstr "Nom de la politique."
 
 #. type: deftypevr
-#: doc/guix.texi:14405
+#: doc/guix.texi:18020
 #, no-wrap
 msgid "{@code{policy-configuration} parameter} string job-private-access"
 msgstr "{paramètre de @code{policy-configuration}} string job-private-access"
 
 #. type: deftypevr
-#: doc/guix.texi:14415
+#: doc/guix.texi:18030
 msgid "Specifies an access list for a job's private values.  @code{@@ACL} maps to the printer's requesting-user-name-allowed or requesting-user-name-denied values.  @code{@@OWNER} maps to the job's owner.  @code{@@SYSTEM} maps to the groups listed for the @code{system-group} field of the @code{files-config} configuration, which is reified into the @code{cups-files.conf(5)} file.  Other possible elements of the access list include specific user names, and @code{@@@var{group}} to indicate members of a specific group.  The access list may also be simply @code{all} or @code{default}."
 msgstr "Spécifie une liste d'accès pour les valeurs privées du travail.  @code{@@ACL} correspond aux valeurs requesting-user-name-allowed ou requesting-user-name-denied de l'imprimante.  @code{@@OWNER} correspond au propriétaire du travail.  @code{@@SYSTEM} correspond aux groupes listés dans le champ @code{system-group} de la configuration @code{files-config}, qui est réifié dans le fichier @code{cups-files.conf(5)}.  Les autres éléments possibles de la liste d'accès sont des noms d'utilisateurs spécifiques et @code{@@@var{group}} pour indiquer les membres d'un groupe spécifique.  La liste d'accès peut aussi être simplement @code{all} ou @code{default}."
 
 #. type: deftypevr
-#: doc/guix.texi:14417 doc/guix.texi:14439
+#: doc/guix.texi:18032 doc/guix.texi:18054
 msgid "Defaults to @samp{\"@@OWNER @@SYSTEM\"}."
 msgstr "La valeur par défaut est @samp{\"@@OWNER @@SYSTEM\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:14419
+#: doc/guix.texi:18034
 #, no-wrap
 msgid "{@code{policy-configuration} parameter} string job-private-values"
 msgstr "{paramètre de @code{policy-configuration}} string job-private-values"
 
 #. type: deftypevr
-#: doc/guix.texi:14422 doc/guix.texi:14444
+#: doc/guix.texi:18037 doc/guix.texi:18059
 msgid "Specifies the list of job values to make private, or @code{all}, @code{default}, or @code{none}."
 msgstr "Spécifie la liste des valeurs de travaux à rendre privée, ou @code{all}, @code{default}, ou @code{none}."
 
 #. type: deftypevr
-#: doc/guix.texi:14425
+#: doc/guix.texi:18040
 msgid "Defaults to @samp{\"job-name job-originating-host-name job-originating-user-name phone\"}."
 msgstr "La valeur par défaut est @samp{\"job-name job-originating-host-name job-originating-user-name phone\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:14427
+#: doc/guix.texi:18042
 #, no-wrap
 msgid "{@code{policy-configuration} parameter} string subscription-private-access"
 msgstr "{paramètre de @code{policy-configuration}} string subscription-private-access"
 
 #. type: deftypevr
-#: doc/guix.texi:14437
+#: doc/guix.texi:18052
 msgid "Specifies an access list for a subscription's private values.  @code{@@ACL} maps to the printer's requesting-user-name-allowed or requesting-user-name-denied values.  @code{@@OWNER} maps to the job's owner.  @code{@@SYSTEM} maps to the groups listed for the @code{system-group} field of the @code{files-config} configuration, which is reified into the @code{cups-files.conf(5)} file.  Other possible elements of the access list include specific user names, and @code{@@@var{group}} to indicate members of a specific group.  The access list may also be simply @code{all} or @code{default}."
 msgstr "Spécifie un liste d'accès pour les valeurs privées de la souscription.  @code{@@ACL} correspond aux valeurs requesting-user-name-allowed ou requesting-user-name-denied de l'imprimante.  @code{@@OWNER} correspond au propriétaire du travail.  @code{@@SYSTEM} correspond aux groupes listés dans le champ @code{system-group} de la configuration @code{files-config}, qui est réifié dans le fichier @code{cups-files.conf(5)}.  Les autres éléments possibles de la liste d'accès sont des noms d'utilisateurs spécifiques et @code{@@@var{group}} pour indiquer les membres d'un groupe spécifique.  La liste d'accès peut aussi être simplement @code{all} ou @code{default}."
 
 #. type: deftypevr
-#: doc/guix.texi:14441
+#: doc/guix.texi:18056
 #, no-wrap
 msgid "{@code{policy-configuration} parameter} string subscription-private-values"
 msgstr "{paramètre de @code{policy-configuration}} string subscription-private-values"
 
 #. type: deftypevr
-#: doc/guix.texi:14447
+#: doc/guix.texi:18062
 msgid "Defaults to @samp{\"notify-events notify-pull-method notify-recipient-uri notify-subscriber-user-name notify-user-data\"}."
 msgstr "La valeur par défaut est @samp{\"notify-events notify-pull-method notify-recipient-uri notify-subscriber-user-name notify-user-data\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:14449
+#: doc/guix.texi:18064
 #, no-wrap
 msgid "{@code{policy-configuration} parameter} operation-access-control-list access-controls"
 msgstr "{paramètre de @code{policy-configuration}} operation-access-control-list access-controls"
 
 #. type: deftypevr
-#: doc/guix.texi:14451
+#: doc/guix.texi:18066
 msgid "Access control by IPP operation."
 msgstr "Contrôle d'accès par les actions IPP."
 
 #. type: deftypevr
-#: doc/guix.texi:14456
+#: doc/guix.texi:18071
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} boolean-or-non-negative-integer preserve-job-files"
 msgstr "{paramètre de @code{cups-configuration}} boolean-or-non-negative-integer preserve-job-files"
 
 #. type: deftypevr
-#: doc/guix.texi:14461
+#: doc/guix.texi:18076
 msgid "Specifies whether job files (documents) are preserved after a job is printed.  If a numeric value is specified, job files are preserved for the indicated number of seconds after printing.  Otherwise a boolean value applies indefinitely."
 msgstr "Spécifie si les fichiers de travaux (les documents) sont préservés après qu'un travail est imprimé.  Si une valeur numérique est spécifiée, les fichiers de travaux sont préservés pour le nombre de secondes indiquées après l'impression.  Sinon, une valeur booléenne s'applique indéfiniment."
 
 #. type: deftypevr
-#: doc/guix.texi:14463
+#: doc/guix.texi:18078
 msgid "Defaults to @samp{86400}."
 msgstr "La valeur par défaut est @samp{86400}."
 
 #. type: deftypevr
-#: doc/guix.texi:14465
+#: doc/guix.texi:18080
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} boolean-or-non-negative-integer preserve-job-history"
 msgstr "{paramètre de @code{cups-configuration}} boolean-or-non-negative-integer preserve-job-history"
 
 #. type: deftypevr
-#: doc/guix.texi:14470
+#: doc/guix.texi:18085
 msgid "Specifies whether the job history is preserved after a job is printed.  If a numeric value is specified, the job history is preserved for the indicated number of seconds after printing.  If @code{#t}, the job history is preserved until the MaxJobs limit is reached."
 msgstr "Spécifie si l'historique des travaux est préservé après qu'un travail est imprimé.  Si une valeur numérique est spécifiée, l'historique des travaux est préservé pour le nombre de secondes indiquées après l'impression.  Si la valeur est @code{#t}, l'historique des travaux est préservé jusqu'à atteindre la limite MaxJobs."
 
 #. type: deftypevr
-#: doc/guix.texi:14474
+#: doc/guix.texi:18089
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer reload-timeout"
 msgstr "{paramètre de @code{cups-configuration}} non-negative-integer reload-timeout"
 
 #. type: deftypevr
-#: doc/guix.texi:14477
+#: doc/guix.texi:18092
 msgid "Specifies the amount of time to wait for job completion before restarting the scheduler."
 msgstr "Spécifie la durée d'attente pour la fin des travaux avant de redémarrer l'ordonnanceur."
 
 #. type: deftypevr
-#: doc/guix.texi:14481
+#: doc/guix.texi:18096
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} string rip-cache"
 msgstr "{paramètre de @code{cups-configuration}} string rip-cache"
 
 #. type: deftypevr
-#: doc/guix.texi:14484
+#: doc/guix.texi:18099
 msgid "Specifies the maximum amount of memory to use when converting documents into bitmaps for a printer."
 msgstr "Spécifie la quantité de mémoire maximale à utiliser pour convertir des documents en bitmaps pour l'imprimante."
 
 #. type: deftypevr
-#: doc/guix.texi:14486
+#: doc/guix.texi:18101
 msgid "Defaults to @samp{\"128m\"}."
 msgstr "La valeur par défaut est @samp{\"128m\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:14488
+#: doc/guix.texi:18103
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} string server-admin"
 msgstr "{paramètre de @code{cups-configuration}} string server-admin"
 
 #. type: deftypevr
-#: doc/guix.texi:14490
+#: doc/guix.texi:18105
 msgid "Specifies the email address of the server administrator."
 msgstr "Spécifie l'adresse de courriel de l'administrateur système."
 
 #. type: deftypevr
-#: doc/guix.texi:14492
+#: doc/guix.texi:18107
 msgid "Defaults to @samp{\"root@@localhost.localdomain\"}."
 msgstr "La valeur par défaut est @samp{\"root@@localhost.localdomain\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:14494
+#: doc/guix.texi:18109
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} host-name-list-or-* server-alias"
 msgstr "{paramètre de @code{cups-configuration}} host-name-list-or-* server-alias"
 
 #. type: deftypevr
-#: doc/guix.texi:14502
+#: doc/guix.texi:18117
 msgid "The ServerAlias directive is used for HTTP Host header validation when clients connect to the scheduler from external interfaces.  Using the special name @code{*} can expose your system to known browser-based DNS rebinding attacks, even when accessing sites through a firewall.  If the auto-discovery of alternate names does not work, we recommend listing each alternate name with a ServerAlias directive instead of using @code{*}."
 msgstr "La directive ServerAlias est utilisée pour la validation des en-tête HTTP Host lorsque les clients se connectent à l'ordonnanceur depuis des interfaces externes.  Utiliser le nom spécial @code{*} peut exposer votre système à des attaques connues de recombinaison DNS dans le navigateur, même lorsque vous accédez au site à travers un pare-feu.  Si la découverte automatique des autres noms ne fonctionne pas, nous vous recommandons de lister chaque nom alternatif avec une directive SeverAlias plutôt que d'utiliser @code{*}."
 
 #. type: deftypevr
-#: doc/guix.texi:14504
+#: doc/guix.texi:18119
 msgid "Defaults to @samp{*}."
 msgstr "La valeur par défaut est @samp{*}."
 
 #. type: deftypevr
-#: doc/guix.texi:14506
+#: doc/guix.texi:18121
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} string server-name"
 msgstr "{paramètre de @code{cups-configuration}} string server-name"
 
 #. type: deftypevr
-#: doc/guix.texi:14508
+#: doc/guix.texi:18123
 msgid "Specifies the fully-qualified host name of the server."
 msgstr "Spécifie le nom d'hôte pleinement qualifié du serveur."
 
 #. type: deftypevr
-#: doc/guix.texi:14510 doc/guix.texi:17901 doc/guix.texi:17945
+#: doc/guix.texi:18125 doc/guix.texi:22043 doc/guix.texi:22087
 msgid "Defaults to @samp{\"localhost\"}."
 msgstr "La valeur par défaut est @samp{\"localhost\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:14512
+#: doc/guix.texi:18127
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} server-tokens server-tokens"
 msgstr "{paramètre de @code{cups-configuration}} server-tokens server-tokens"
 
 #. type: deftypevr
-#: doc/guix.texi:14520
+#: doc/guix.texi:18135
 msgid "Specifies what information is included in the Server header of HTTP responses.  @code{None} disables the Server header.  @code{ProductOnly} reports @code{CUPS}.  @code{Major} reports @code{CUPS 2}.  @code{Minor} reports @code{CUPS 2.0}.  @code{Minimal} reports @code{CUPS 2.0.0}.  @code{OS} reports @code{CUPS 2.0.0 (@var{uname})} where @var{uname} is the output of the @code{uname} command.  @code{Full} reports @code{CUPS 2.0.0 (@var{uname}) IPP/2.0}."
 msgstr "Spécifie les informations incluses dans les en-têtes Server des réponses HTTP.  @code{None} désactive l'en-tête Server.  @code{ProductOnly} rapporte @code{CUPS}.  @code{Major} rapporte @code{CUPS 2}.  @code{Minor} rapporte @code{CUPS 2.0}.  @code{Minimal} rapporte @code{CUPS 2.0.0}.  @code{OS} rapporte @code{CUPS 2.0.0 (@var{uname})} où @var{uname} est la sortie de la commande @code{uname}.  @code{Full} rapporte @code{CUPS 2.0.0 (@var{uname}) IPP/2.0}."
 
 #. type: deftypevr
-#: doc/guix.texi:14522
+#: doc/guix.texi:18137
 msgid "Defaults to @samp{Minimal}."
 msgstr "La valeur par défaut est @samp{Minimal}."
 
 #. type: deftypevr
-#: doc/guix.texi:14524
-#, no-wrap
-msgid "{@code{cups-configuration} parameter} string set-env"
-msgstr "{paramètre de @code{cups-configuration}} string set-env"
-
-#. type: deftypevr
-#: doc/guix.texi:14526
-msgid "Set the specified environment variable to be passed to child processes."
-msgstr "Indique que la variable d'environnement spécifiée doit être passée aux processus fils."
-
-#. type: deftypevr
-#: doc/guix.texi:14528
-msgid "Defaults to @samp{\"variable value\"}."
-msgstr "La valeur par défaut est @samp{\"variable value\"}."
-
-#. type: deftypevr
-#: doc/guix.texi:14530
+#: doc/guix.texi:18139
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} multiline-string-list ssl-listen"
 msgstr "{paramètre de @code{cups-configuration}} multiline-string-list ssl-listen"
 
 #. type: deftypevr
-#: doc/guix.texi:14535
+#: doc/guix.texi:18144
 msgid "Listens on the specified interfaces for encrypted connections.  Valid values are of the form @var{address}:@var{port}, where @var{address} is either an IPv6 address enclosed in brackets, an IPv4 address, or @code{*} to indicate all addresses."
 msgstr "Écoute des connexions chiffrées sur les interfaces spécifiées.  Les valeurs valides sont de la forme @var{adresse}:@var{port}, où @var{adresse} est soit une adresse IPv6 dans des crochets, soit une adresse IPv4, soit @code{*} pour indiquer toutes les interfaces."
 
 #. type: deftypevr
-#: doc/guix.texi:14539
+#: doc/guix.texi:18148
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} ssl-options ssl-options"
 msgstr "{paramètre de @code{cups-configuration}} ssl-options ssl-options"
 
 #. type: deftypevr
-#: doc/guix.texi:14546
-msgid "Sets encryption options.  By default, CUPS only supports encryption using TLS v1.0 or higher using known secure cipher suites.  The @code{AllowRC4} option enables the 128-bit RC4 cipher suites, which are required for some older clients that do not implement newer ones.  The @code{AllowSSL3} option enables SSL v3.0, which is required for some older clients that do not support TLS v1.0."
-msgstr "Indique les options de chiffrement.  Par défaut, CUPS ne supporte que le chiffrement avec TLS 1.0 ou plus avec des suites de chiffrement connues pour être sures.  L'option @code{AllowRC4} active les suites de chiffrement 128-bits RC4, qui sont requises pour certains vieux clients qui n'implémentent pas les nouvelles.  L'option @code{AllowSSL3} active SSL v3.0, qui est requis par certains vieux clients qui ne supportent pas TLS v1.0."
+#: doc/guix.texi:18158
+msgid "Sets encryption options.  By default, CUPS only supports encryption using TLS v1.0 or higher using known secure cipher suites.  Security is reduced when @code{Allow} options are used, and enhanced when @code{Deny} options are used.  The @code{AllowRC4} option enables the 128-bit RC4 cipher suites, which are required for some older clients.  The @code{AllowSSL3} option enables SSL v3.0, which is required for some older clients that do not support TLS v1.0.  The @code{DenyCBC} option disables all CBC cipher suites.  The @code{DenyTLS1.0} option disables TLS v1.0 support - this sets the minimum protocol version to TLS v1.1."
+msgstr "Indique les options de chiffrement.  Par défaut, CUPS ne supporte que le chiffrement avec TLS v1.0 ou plus avec des suites de chiffrement connues pour être sures. La sécurité peut être réduite en utilisant les options @code{Allow}, et améliorée en utilisant les options @code{Deny}.  L'option @code{AllowRC4} active les suites de chiffrement 128-bits RC4, qui sont requises pour certains vieux.  L'option @code{AllowSSL3} active SSL v3.0, qui est requis par certains vieux clients qui ne supportent pas TLS v1.0.  L'option @code{DenyCBC} désactive toutes les suites CBC.  L'option @code{DenyTLS1.0} désactive la prise en charge de TLS v1.0 — la version minimale du protocole est donc TLS v1.1."
 
 #. type: deftypevr
-#: doc/guix.texi:14550
+#: doc/guix.texi:18162
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} boolean strict-conformance?"
 msgstr "{paramètre de @code{cups-configuration}} boolean strict-conformance?"
 
 #. type: deftypevr
-#: doc/guix.texi:14553
+#: doc/guix.texi:18165
 msgid "Specifies whether the scheduler requires clients to strictly adhere to the IPP specifications."
 msgstr "Spécifie si l'ordonnanceur demande aux clients d'adhérer aux spécifications IPP."
 
 #. type: deftypevr
-#: doc/guix.texi:14557
+#: doc/guix.texi:18169
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer timeout"
 msgstr "{paramètre de @code{cups-configuration}} non-negative-integer timeout"
 
 #. type: deftypevr
-#: doc/guix.texi:14559
+#: doc/guix.texi:18171
 msgid "Specifies the HTTP request timeout, in seconds."
 msgstr "Spécifie le délai d'attente des requêtes HTTP, en secondes."
 
 #. type: deftypevr
-#: doc/guix.texi:14564
+#: doc/guix.texi:18176
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} boolean web-interface?"
 msgstr "{paramètre de @code{cups-configuration}} boolean web-interface?"
 
 #. type: deftypevr
-#: doc/guix.texi:14566
+#: doc/guix.texi:18178
 msgid "Specifies whether the web interface is enabled."
 msgstr "Spécifie si l'interface web est activée."
 
 #. type: Plain text
-#: doc/guix.texi:14576
+#: doc/guix.texi:18188
 msgid "At this point you're probably thinking ``oh dear, Guix manual, I like you but you can stop already with the configuration options''.  Indeed.  However, one more point: it could be that you have an existing @code{cupsd.conf} that you want to use.  In that case, you can pass an @code{opaque-cups-configuration} as the configuration of a @code{cups-service-type}."
 msgstr "Maintenant, vous vous dîtes peut-être « oh la la, cher manuel de Guix, je t'aime bien mais arrête maintenant avec ces options de configuration »@footnote{NdT : je vous rassure, c'est aussi mon sentiment au moment de traduire ces lignes.  Et pour moi, c'est encore loin d'être fini.}.  En effet.  cependant, encore un point supplémentaire : vous pouvez avoir un fichier @code{cupsd.conf} existant que vous pourriez vouloir utiliser.  Dans ce cas, vous pouvez passer un @code{opaque-cups-configuration} en configuration d'un @code{cups-service-type}."
 
 #. type: Plain text
-#: doc/guix.texi:14578
+#: doc/guix.texi:18190
 msgid "Available @code{opaque-cups-configuration} fields are:"
 msgstr "Les champs de @code{opaque-cups-configuration} disponibles sont :"
 
 #. type: deftypevr
-#: doc/guix.texi:14579
+#: doc/guix.texi:18191
 #, no-wrap
 msgid "{@code{opaque-cups-configuration} parameter} package cups"
 msgstr "{paramètre de @code{opaque-cups-configuration}} package cups"
 
 #. type: deftypevr
-#: doc/guix.texi:14583
+#: doc/guix.texi:18195
 #, no-wrap
 msgid "{@code{opaque-cups-configuration} parameter} string cupsd.conf"
 msgstr "{paramètre de @code{opaque-cups-configuration}} string cupsd.conf"
 
 #. type: deftypevr
-#: doc/guix.texi:14585
+#: doc/guix.texi:18197
 msgid "The contents of the @code{cupsd.conf}, as a string."
 msgstr "Le contenu de @code{cupsd.conf}, en tant que chaîne de caractères."
 
 #. type: deftypevr
-#: doc/guix.texi:14587
+#: doc/guix.texi:18199
 #, no-wrap
 msgid "{@code{opaque-cups-configuration} parameter} string cups-files.conf"
 msgstr "{paramètre de @code{opaque-cups-configuration}} string cups-files.conf"
 
 #. type: deftypevr
-#: doc/guix.texi:14589
+#: doc/guix.texi:18201
 msgid "The contents of the @code{cups-files.conf} file, as a string."
 msgstr "Le contenu du fichier @code{cups-files.conf}, en tant que chaîne de caractères."
 
 #. type: Plain text
-#: doc/guix.texi:14594
+#: doc/guix.texi:18206
 msgid "For example, if your @code{cupsd.conf} and @code{cups-files.conf} are in strings of the same name, you could instantiate a CUPS service like this:"
 msgstr "Par exemple, si vos fichiers @code{cupsd.conf} et @code{cups-files.conf} sont dans des chaînes du même nom, pouvez instancier un service CUPS de cette manière :"
 
-#. type: example
-#: doc/guix.texi:14600
+#. type: lisp
+#: doc/guix.texi:18212
 #, no-wrap
 msgid ""
 "(service cups-service-type\n"
@@ -27318,197 +33925,233 @@ msgstr ""
 "           (cups-files.conf cups-files.conf)))\n"
 
 #. type: Plain text
-#: doc/guix.texi:14611
+#: doc/guix.texi:18223
 msgid "The @code{(gnu services desktop)} module provides services that are usually useful in the context of a ``desktop'' setup---that is, on a machine running a graphical display server, possibly with graphical user interfaces, etc.  It also defines services that provide specific desktop environments like GNOME, Xfce or MATE."
 msgstr "Le module @code{(gnu services desktop)} fournit des services qui sont habituellement utiles dans le contexte d'une installation « de bureau » — c'est-à-dire sur une machine qui fait tourner un service d'affichage graphique, éventuellement avec des interfaces utilisateurs graphiques, etc.  Il définit aussi des services qui fournissent des environnements de bureau spécifiques comme GNOME, Xfce et MATE."
 
 #. type: Plain text
-#: doc/guix.texi:14615
+#: doc/guix.texi:18227
 msgid "To simplify things, the module defines a variable containing the set of services that users typically expect on a machine with a graphical environment and networking:"
 msgstr "Pour simplifier les choses, le module définit une variable contenant l'ensemble des services que les utilisateurs s'attendent en général à avoir sur une machine avec un environnement graphique et le réseau :"
 
 #. type: defvr
-#: doc/guix.texi:14616
+#: doc/guix.texi:18228
 #, no-wrap
 msgid "{Scheme Variable} %desktop-services"
 msgstr "{Variable Scheme} %desktop-services"
 
 #. type: defvr
-#: doc/guix.texi:14619
-msgid "This is a list of services that builds upon @var{%base-services} and adds or adjusts services for a typical ``desktop'' setup."
-msgstr "C'est la liste des services qui étend @var{%base-services} en ajoutant ou en ajustant des services pour une configuration « de bureau » typique."
+#: doc/guix.texi:18231
+msgid "This is a list of services that builds upon @code{%base-services} and adds or adjusts services for a typical ``desktop'' setup."
+msgstr "C'est la liste des services qui étend @code{%base-services} en ajoutant ou en ajustant des services pour une configuration « de bureau » typique."
 
 #. type: defvr
-#: doc/guix.texi:14629
-#, fuzzy
-#| msgid "In particular, it adds a graphical login manager (@pxref{X Window, @code{gdm-service-type}}), screen lockers, a network management tool (@pxref{Networking Services, @code{network-manager-service-type}}) with modem support (@pxref{Networking Services, @code{modem-manager-service-type}}), energy and color management services, the @code{elogind} login and seat manager, the Polkit privilege service, the GeoClue location service, the AccountsService daemon that allows authorized users change system passwords, an NTP client (@pxref{Networking Services}), the Avahi daemon, and has the name service switch service configured to be able to use @code{nss-mdns} (@pxref{Name Service Switch, mDNS})."
-msgid "In particular, it adds a graphical login manager (@pxref{X Window, @code{gdm-service-type}}), screen lockers, a network management tool (@pxref{Networking Services, @code{network-manager-service-type}}), energy and color management services, the @code{elogind} login and seat manager, the Polkit privilege service, the GeoClue location service, the AccountsService daemon that allows authorized users change system passwords, an NTP client (@pxref{Networking Services}), the Avahi daemon, and has the name service switch service configured to be able to use @code{nss-mdns} (@pxref{Name Service Switch, mDNS})."
-msgstr "En particulier, elle ajoute un gestionnaire de connexion graphique (@pxref{X Window, @code{gdm-service-type}}), des verrouilleurs d'écran, un outil de gestion réseau (@pxref{Networking Services, @code{network-manager-service-type}}) avec la prise en charge des modems (@pxref{Networking Services, @code{modem-manager-service-type}}), des services de gestion de l'énergie et des couleurs, le gestionnaire de connexion et de session @code{elogind}, le service de privilèges Polkit, le service de géolocalisation GeoClue, le démon Accounts Service qui permet aux utilisateurs autorisés de changer les mots de passe du système, un client NTP (@pxref{Networking Services}), le démon Avahi, et le service name service switch est configuré pour pouvoir utiliser @code{nss-mdns} (@pxref{Name Service Switch, mDNS})."
+#: doc/guix.texi:18242
+msgid "In particular, it adds a graphical login manager (@pxref{X Window, @code{gdm-service-type}}), screen lockers, a network management tool (@pxref{Networking Services, @code{network-manager-service-type}}) with modem support (@pxref{Networking Services, @code{modem-manager-service-type}}), energy and color management services, the @code{elogind} login and seat manager, the Polkit privilege service, the GeoClue location service, the AccountsService daemon that allows authorized users change system passwords, an NTP client (@pxref{Networking Services}), the Avahi daemon, and has the name service switch service configured to be able to use @code{nss-mdns} (@pxref{Name Service Switch, mDNS})."
+msgstr "En particulier, elle ajoute un gestionnaire de connexion graphique (@pxref{X Window, @code{gdm-service-type}}), des verrouilleurs d'écran, un outil de gestion réseau (@pxref{Networking Services, @code{network-manager-service-type}}) avec la prise en charge des modems (@pxref{Networking Services, @code{modem-manager-service-type}}), des services de gestion de l'énergie et des couleurs, le gestionnaire de connexion et de session @code{elogind}, le service de privilèges Polkit, le service de géolocalisation GeoClue, le démon AccountsService qui permet aux utilisateurs autorisés de changer les mots de passe du système, un client NTP (@pxref{Networking Services}), le démon Avahi, et le service name service switch est configuré pour pouvoir utiliser @code{nss-mdns} (@pxref{Name Service Switch, mDNS})."
 
 #. type: Plain text
-#: doc/guix.texi:14634
-msgid "The @var{%desktop-services} variable can be used as the @code{services} field of an @code{operating-system} declaration (@pxref{operating-system Reference, @code{services}})."
-msgstr "La variable @var{%desktop-services} peut être utilisée comme champ @code{services} d'une déclaration @code{operating-system} (@pxref{operating-system Reference, @code{services}})."
+#: doc/guix.texi:18247
+msgid "The @code{%desktop-services} variable can be used as the @code{services} field of an @code{operating-system} declaration (@pxref{operating-system Reference, @code{services}})."
+msgstr "La variable @code{%desktop-services} peut être utilisée comme champ @code{services} d'une déclaration @code{operating-system} (@pxref{operating-system Reference, @code{services}})."
 
 #. type: Plain text
-#: doc/guix.texi:14657
-msgid "Additionally, the @code{gnome-desktop-service-type}, @code{xfce-desktop-service}, @code{mate-desktop-service-type} and @code{enlightenment-desktop-service-type} procedures can add GNOME, Xfce, MATE and/or Enlightenment to a system.  To ``add GNOME'' means that system-level services like the backlight adjustment helpers and the power management utilities are added to the system, extending @code{polkit} and @code{dbus} appropriately, allowing GNOME to operate with elevated privileges on a limited number of special-purpose system interfaces.  Additionally, adding a service made by @code{gnome-desktop-service-type} adds the GNOME metapackage to the system profile.  Likewise, adding the Xfce service not only adds the @code{xfce} metapackage to the system profile, but it also gives the Thunar file manager the ability to open a ``root-mode'' file management window, if the user authenticates using the administrator's password via the standard polkit graphical interface.  To ``add MATE'' means that @code{polkit} and @code{dbus} are extended appropriately, allowing MATE to operate with elevated privileges on a limited number of special-purpose system interfaces.  Additionally, adding a service of type @code{mate-desktop-service-type} adds the MATE metapackage to the system profile.  ``Adding Enlightenment'' means that @code{dbus} is extended appropriately, and several of Enlightenment's binaries are set as setuid, allowing Enlightenment's screen locker and other functionality to work as expetected."
-msgstr "En plus, les procédures @code{gnome-desktop-service-type}, @code{xfce-desktop-service}, @code{mate-desktop-service-type} et @code{enlightenment-desktop-service-type} peuvent ajouter GNOME, Xfce, MATE ou Enlightenment à un système.  « Ajouter GNOME » signifie que les services du système comme les utilitaires d'ajustement de la luminosité et de gestion de l'énergie sont ajoutés au système, en étendant @code{polkit} et @code{dbus} de la bonne manière, ce qui permet à GNOME d'opérer avec des privilèges plus élevés sur un nombre limité d'interfaces systèmes spécialisées.  En plus, ajouter un service construit par @code{gnome-desktop-service-type} ajoute le métapaquet GNOME au profil du système.  De même, ajouter le service Xfce ajoute non seulement le métapaquet @code{xfce} au profil système, mais il permet aussi au gestionnaire de fichiers Thunar d'ouvrir une fenêtre de gestion des fichier « en mode root », si l'utilisateur s'authentifie avec le mot de passe administrateur via l'interface graphique polkit standard.  « Ajouter MATE » signifie que @code{polkit} et @code{dbus} sont étendue de la bonne manière, ce qui permet à MATE d'opérer avec des privilèges plus élevés sur un nombre limité d'interface systèmes spécialisées. En plus, ajouter un service de type @code{mate-desktop-service-type} ajoute le métapaquet MATE au profil du système.  « Ajouter Enlightenment » signifie que @code{dbus} est étendu comme il faut et que plusieurs binaires d'Enlightenment récupèrent le bit setuid, ce qui permet au verrouilleur d'écran d'Enlightenment et à d'autres fonctionnalités de fonctionner correctement."
+#: doc/guix.texi:18270
+msgid "Additionally, the @code{gnome-desktop-service-type}, @code{xfce-desktop-service}, @code{mate-desktop-service-type}, @code{lxqt-desktop-service-type} and @code{enlightenment-desktop-service-type} procedures can add GNOME, Xfce, MATE and/or Enlightenment to a system.  To ``add GNOME'' means that system-level services like the backlight adjustment helpers and the power management utilities are added to the system, extending @code{polkit} and @code{dbus} appropriately, allowing GNOME to operate with elevated privileges on a limited number of special-purpose system interfaces.  Additionally, adding a service made by @code{gnome-desktop-service-type} adds the GNOME metapackage to the system profile.  Likewise, adding the Xfce service not only adds the @code{xfce} metapackage to the system profile, but it also gives the Thunar file manager the ability to open a ``root-mode'' file management window, if the user authenticates using the administrator's password via the standard polkit graphical interface.  To ``add MATE'' means that @code{polkit} and @code{dbus} are extended appropriately, allowing MATE to operate with elevated privileges on a limited number of special-purpose system interfaces.  Additionally, adding a service of type @code{mate-desktop-service-type} adds the MATE metapackage to the system profile.  ``Adding Enlightenment'' means that @code{dbus} is extended appropriately, and several of Enlightenment's binaries are set as setuid, allowing Enlightenment's screen locker and other functionality to work as expected."
+msgstr "En plus, les procédures @code{gnome-desktop-service-type}, @code{xfce-desktop-service}, @code{mate-desktop-service-type}, @code{lxqt-desktop-service-type} et @code{enlightenment-desktop-service-type} peuvent ajouter GNOME, Xfce, MATE ou Enlightenment à un système.  « Ajouter GNOME » signifie que les services du système comme les utilitaires d'ajustement de la luminosité et de gestion de l'énergie sont ajoutés au système, en étendant @code{polkit} et @code{dbus} de la bonne manière, ce qui permet à GNOME d'opérer avec des privilèges plus élevés sur un nombre limité d'interfaces systèmes spécialisées.  En plus, ajouter un service construit par @code{gnome-desktop-service-type} ajoute le métapaquet GNOME au profil du système.  De même, ajouter le service Xfce ajoute non seulement le métapaquet @code{xfce} au profil système, mais il permet aussi au gestionnaire de fichiers Thunar d'ouvrir une fenêtre de gestion des fichier « en mode root », si l'utilisateur s'authentifie avec le mot de passe administrateur via l'interface graphique polkit standard.  « Ajouter MATE » signifie que @code{polkit} et @code{dbus} sont étendue de la bonne manière, ce qui permet à MATE d'opérer avec des privilèges plus élevés sur un nombre limité d'interface systèmes spécialisées. En plus, ajouter un service de type @code{mate-desktop-service-type} ajoute le métapaquet MATE au profil du système.  « Ajouter Enlightenment » signifie que @code{dbus} est étendu comme il faut et que plusieurs binaires d'Enlightenment récupèrent le bit setuid, ce qui permet au verrouilleur d'écran d'Enlightenment et à d'autres fonctionnalités de fonctionner correctement."
 
 #. type: Plain text
-#: doc/guix.texi:14666
+#: doc/guix.texi:18279
 msgid "The desktop environments in Guix use the Xorg display server by default.  If you'd like to use the newer display server protocol called Wayland, you need to use the @code{sddm-service} instead of GDM as the graphical login manager.  You should then select the ``GNOME (Wayland)'' session in SDDM.  Alternatively you can also try starting GNOME on Wayland manually from a TTY with the command ``XDG_SESSION_TYPE=wayland exec dbus-run-session gnome-session``.  Currently only GNOME has support for Wayland."
 msgstr "Les environnement de bureau dans Guix utilisent le service d'affichage Xorg par défaut.  Si vous voulez utiliser le protocol de serveur d'affichage plus récent Wayland, vous devez utiliser @code{sddm-service} à la place de GDM comme gestionnaire de connexion graphique.  Vous devriez ensuite sélectionner la session « GNOME (Wayland) » dans SDDM.  Autrement, vous pouvez essayer de démarrer GNOME sur Wayland manuellement depuis un TTY avec la commande @command{XDG_SESSION_TYPE=wayland exec dbus-run-session gnome-session}.  Actuellement seul GNOME support Wayland."
 
 #. type: defvr
-#: doc/guix.texi:14667
+#: doc/guix.texi:18280
 #, no-wrap
 msgid "{Scheme Variable} gnome-desktop-service-type"
 msgstr "{Variable Scheme} gnome-desktop-service-type"
 
 #. type: defvr
-#: doc/guix.texi:14671
-msgid "This is the type of the service that adds the @uref{https://www.gnome.org, GNOME} desktop environment.  Its value is a @code{gnome-desktop-configuration} object (see below.)"
+#: doc/guix.texi:18284
+msgid "This is the type of the service that adds the @uref{https://www.gnome.org, GNOME} desktop environment.  Its value is a @code{gnome-desktop-configuration} object (see below)."
 msgstr "C'est le type de service qui ajoute l'environnement de bureau @uref{https://www.gnome.org, GNOME}. Sa valeur est un objet @code{gnome-desktop-configuration} (voir plus bas)."
 
 #. type: defvr
-#: doc/guix.texi:14674
+#: doc/guix.texi:18287
 msgid "This service adds the @code{gnome} package to the system profile, and extends polkit with the actions from @code{gnome-settings-daemon}."
 msgstr "Ce service ajoute le paquet @code{gnome} au profil du système et étend polkit avec les actions de @code{gnome-settings-daemon}."
 
 #. type: deftp
-#: doc/guix.texi:14676
+#: doc/guix.texi:18289
 #, no-wrap
 msgid "{Data Type} gnome-desktop-configuration"
 msgstr "{Type de données} gnome-desktop-configuration"
 
 #. type: deftp
-#: doc/guix.texi:14678
+#: doc/guix.texi:18291
 msgid "Configuration record for the GNOME desktop environment."
 msgstr "Enregistrement de la configuration de l'environnement de bureau GNOME."
 
 #. type: item
-#: doc/guix.texi:14680
+#: doc/guix.texi:18293
 #, no-wrap
 msgid "@code{gnome} (default: @code{gnome})"
 msgstr "@code{gnome} (par défaut : @code{gnome})"
 
 #. type: table
-#: doc/guix.texi:14682
+#: doc/guix.texi:18295
 msgid "The GNOME package to use."
 msgstr "Le paquet GNOME à utiliser."
 
 #. type: defvr
-#: doc/guix.texi:14685
+#: doc/guix.texi:18298
 #, no-wrap
 msgid "{Scheme Variable} xfce-desktop-service-type"
 msgstr "{Variable Scheme} xfce-desktop-service-type"
 
 #. type: defvr
-#: doc/guix.texi:14689
-msgid "This is the type of a service to run the @uref{Xfce, https://xfce.org/} desktop environment.  Its value is an @code{xfce-desktop-configuration} object (see below.)"
+#: doc/guix.texi:18302
+msgid "This is the type of a service to run the @uref{Xfce, https://xfce.org/} desktop environment.  Its value is an @code{xfce-desktop-configuration} object (see below)."
 msgstr "C'est le type de service qui lance l'environnement de bureau @uref{Xfce, https://xfce.org/}.  Sa valeur est un objet @code{xfce-desktop-configuration} (voir plus bas)."
 
 #. type: defvr
-#: doc/guix.texi:14694
+#: doc/guix.texi:18307
 msgid "This service adds the @code{xfce} package to the system profile, and extends polkit with the ability for @code{thunar} to manipulate the file system as root from within a user session, after the user has authenticated with the administrator's password."
 msgstr "Ce service ajoute le paquet @code{xfce} au profil du système et étend polkit avec la possibilité pour @code{thunar} de manipuler le système de fichier en root depuis une session utilisateur, après que l'utilisateur s'authentifie avec le mot de passe administrateur."
 
 #. type: deftp
-#: doc/guix.texi:14696
+#: doc/guix.texi:18309
 #, no-wrap
 msgid "{Data Type} xfce-desktop-configuration"
 msgstr "{Type de données} xfce-desktop-configuration"
 
 #. type: deftp
-#: doc/guix.texi:14698
+#: doc/guix.texi:18311
 msgid "Configuration record for the Xfce desktop environment."
 msgstr "Enregistrement de la configuration de l'environnement de bureau Xfce."
 
 #. type: item
-#: doc/guix.texi:14700
+#: doc/guix.texi:18313
 #, no-wrap
 msgid "@code{xfce} (default: @code{xfce})"
 msgstr "@code{xfce} (par défaut : @code{xfce})"
 
 #. type: table
-#: doc/guix.texi:14702
+#: doc/guix.texi:18315
 msgid "The Xfce package to use."
 msgstr "Le paquet Xfce à utiliser."
 
 #. type: deffn
-#: doc/guix.texi:14705
+#: doc/guix.texi:18318
 #, no-wrap
 msgid "{Scheme Variable} mate-desktop-service-type"
 msgstr "{Variable Scheme} mate-desktop-service-type"
 
 #. type: deffn
-#: doc/guix.texi:14709
-msgid "This is the type of the service that runs the @uref{https://mate-desktop.org/, MATE desktop environment}.  Its value is a @code{mate-desktop-configuration} object (see below.)"
+#: doc/guix.texi:18322
+msgid "This is the type of the service that runs the @uref{https://mate-desktop.org/, MATE desktop environment}.  Its value is a @code{mate-desktop-configuration} object (see below)."
 msgstr "C'est le type de service qui lance @uref{https://mate-desktop.org/, l'environnement de bureau MATE}.  Sa valeur est un objet @code{mate-desktop-configuration} (voir plus bas)."
 
 #. type: deffn
-#: doc/guix.texi:14713
+#: doc/guix.texi:18326
 msgid "This service adds the @code{mate} package to the system profile, and extends polkit with the actions from @code{mate-settings-daemon}."
 msgstr "Ce service ajoute le paquet @code{mate} au profil du système, et étend polkit avec les actions de @code{mate-settings-daemon}."
 
 #. type: deftp
-#: doc/guix.texi:14715
+#: doc/guix.texi:18328
 #, no-wrap
 msgid "{Data Type} mate-desktop-configuration"
 msgstr "{Type de données} mate-desktop-configuration"
 
 #. type: deftp
-#: doc/guix.texi:14717
+#: doc/guix.texi:18330
 msgid "Configuration record for the MATE desktop environment."
 msgstr "Enregistrement de configuration pour l'environnement de bureau MATE."
 
 #. type: item
-#: doc/guix.texi:14719
+#: doc/guix.texi:18332
 #, no-wrap
 msgid "@code{mate} (default: @code{mate})"
 msgstr "@code{mate} (par défaut : @code{mate})"
 
 #. type: table
-#: doc/guix.texi:14721
+#: doc/guix.texi:18334
 msgid "The MATE package to use."
 msgstr "Le paquet MATE à utiliser."
 
 #. type: deffn
-#: doc/guix.texi:14724
+#: doc/guix.texi:18337
+#, no-wrap
+msgid "{Scheme Variable} lxqt-desktop-service-type"
+msgstr "{Variable Scheme} lxqt-desktop-service-type"
+
+#. type: deffn
+#: doc/guix.texi:18341
+msgid "This is the type of the service that runs the @uref{https://lxqt.github.io, LXQt desktop environment}.  Its value is a @code{lxqt-desktop-configuration} object (see below)."
+msgstr "C'est le type de service qui lance @uref{https://lxqt.github.io, l'environnement de bureau LXQt}.  Sa valeur est un objet @code{lxqt-desktop-configuration} (voir plus bas)."
+
+#. type: deffn
+#: doc/guix.texi:18344
+msgid "This service adds the @code{lxqt} package to the system profile."
+msgstr "Ce service ajoute le paquet @code{lxqt} au profil du système."
+
+#. type: deftp
+#: doc/guix.texi:18346
+#, no-wrap
+msgid "{Data Type} lxqt-desktop-configuration"
+msgstr "{Type de données} lxqt-desktop-configuration"
+
+#. type: deftp
+#: doc/guix.texi:18348
+msgid "Configuration record for the LXQt desktop environment."
+msgstr "Enregistrement de la configuration de l'environnement de bureau LXQt."
+
+#. type: item
+#: doc/guix.texi:18350
+#, no-wrap
+msgid "@code{lxqt} (default: @code{lxqt})"
+msgstr "@code{lxqt} (par défaut : @code{lxqt})"
+
+#. type: table
+#: doc/guix.texi:18352
+msgid "The LXQT package to use."
+msgstr "Le paquet LXQT à utiliser."
+
+#. type: deffn
+#: doc/guix.texi:18355
 #, no-wrap
 msgid "{Scheme Variable} enlightenment-desktop-service-type"
 msgstr "{Variable Scheme} enlightenment-desktop-service-type"
 
 #. type: deffn
-#: doc/guix.texi:14727
+#: doc/guix.texi:18358
 msgid "Return a service that adds the @code{enlightenment} package to the system profile, and extends dbus with actions from @code{efl}."
 msgstr "Renvoie un service qui ajoute le paquet @code{enlightenment} et étend dbus avec les actions de @code{efl}"
 
 #. type: deftp
-#: doc/guix.texi:14729
+#: doc/guix.texi:18360
 #, no-wrap
 msgid "{Data Type} enlightenment-desktop-service-configuration"
 msgstr "{Type de données} enlightenment-desktop-service-configuration"
 
 #. type: item
-#: doc/guix.texi:14731
+#: doc/guix.texi:18362
 #, no-wrap
 msgid "@code{enlightenment} (default: @code{enlightenment})"
 msgstr "@code{enlightenment} (par défaut : @code{enlightenment})"
 
 #. type: table
-#: doc/guix.texi:14733
+#: doc/guix.texi:18364
 msgid "The enlightenment package to use."
 msgstr "Le paquet enlightenment à utiliser."
 
 #. type: Plain text
-#: doc/guix.texi:14741
+#: doc/guix.texi:18372
 msgid "Because the GNOME, Xfce and MATE desktop services pull in so many packages, the default @code{%desktop-services} variable doesn't include any of them by default.  To add GNOME, Xfce or MATE, just @code{cons} them onto @code{%desktop-services} in the @code{services} field of your @code{operating-system}:"
 msgstr "Comme les services de bureau GNOME, Xfce et MATE récupèrent tant de paquet, la variable @code{%desktop-services} par défaut n'inclut aucun d'entre eux.  Pour ajouter GNOME, Xfce ou MATE, utilisez @code{cons} pour les ajouter à @code{%desktop-services} dans le champ @code{services} de votre @code{operating-system} :"
 
-#. type: example
-#: doc/guix.texi:14752
+#. type: lisp
+#: doc/guix.texi:18383
 #, no-wrap
 msgid ""
 "(use-modules (gnu))\n"
@@ -27532,550 +34175,584 @@ msgstr ""
 "  ...)\n"
 
 #. type: Plain text
-#: doc/guix.texi:14756
+#: doc/guix.texi:18387
 msgid "These desktop environments will then be available as options in the graphical login window."
 msgstr "Ces environnements de bureau seront alors disponibles comme une option dans la fenêtre de connexion graphique."
 
 #. type: Plain text
-#: doc/guix.texi:14760
+#: doc/guix.texi:18391
 msgid "The actual service definitions included in @code{%desktop-services} and provided by @code{(gnu services dbus)} and @code{(gnu services desktop)} are described below."
 msgstr "Les définitions de service qui sont vraiment incluses dans @code{%desktop-services} et fournies par @code{(gnu services dbus)} et @code{(gnu services desktop)} sont décrites plus bas."
 
 #. type: deffn
-#: doc/guix.texi:14761
+#: doc/guix.texi:18392
 #, no-wrap
 msgid "{Scheme Procedure} dbus-service [#:dbus @var{dbus}] [#:services '()]"
 msgstr "{Procédure Scheme} dbus-service [#:dbus @var{dbus}] [#:services '()]"
 
 #. type: deffn
-#: doc/guix.texi:14764
+#: doc/guix.texi:18395
 msgid "Return a service that runs the ``system bus'', using @var{dbus}, with support for @var{services}."
 msgstr "Renvoie un service qui lance le « bus système », @var{dbus}, avec le support de @var{services}."
 
 #. type: deffn
-#: doc/guix.texi:14768
+#: doc/guix.texi:18399
 msgid "@uref{https://dbus.freedesktop.org/, D-Bus} is an inter-process communication facility.  Its system bus is used to allow system services to communicate and to be notified of system-wide events."
 msgstr "@uref{https://dbus.freedesktop.org/, D-Bus} est un utilitaire de communication inter-processus.  Son bus système est utilisé pour permettre à des services systèmes de communiquer et d'être notifiés d'événements systèmes."
 
 #. type: deffn
-#: doc/guix.texi:14773
+#: doc/guix.texi:18404
 msgid "@var{services} must be a list of packages that provide an @file{etc/dbus-1/system.d} directory containing additional D-Bus configuration and policy files.  For example, to allow avahi-daemon to use the system bus, @var{services} must be equal to @code{(list avahi)}."
 msgstr "@var{services} doit être une liste de paquets qui fournissent un répertoire @file{etc/dbus-1/system.d} contenant de la configuration D-Bus supplémentaire et des fichiers de politiques.  Par exemple, pour permettre à avahi-daemon d'utiliser le bus système, @var{services} doit être égal à @code{(list avahi)}."
 
 #. type: deffn
-#: doc/guix.texi:14775
+#: doc/guix.texi:18406
 #, no-wrap
 msgid "{Scheme Procedure} elogind-service [#:config @var{config}]"
 msgstr "{Procédure Scheme} elogind-service [#:config @var{config}]"
 
 #. type: deffn
-#: doc/guix.texi:14781
+#: doc/guix.texi:18412
 msgid "Return a service that runs the @code{elogind} login and seat management daemon.  @uref{https://github.com/elogind/elogind, Elogind} exposes a D-Bus interface that can be used to know which users are logged in, know what kind of sessions they have open, suspend the system, inhibit system suspend, reboot the system, and other tasks."
 msgstr "Renvoie un service qui lance le démon de gestion de connexion et de session @code{elogind}.  @uref{https://github.com/elogind/elogind, Elogind} expose une interface D-Bus qui peut être utilisée pour connaître quels utilisateurs sont connectés, le type de session qu'ils sont ouverte, suspendre le système, désactiver la veille système, redémarrer le système et d'autre taches."
 
 #. type: deffn
-#: doc/guix.texi:14785
+#: doc/guix.texi:18416
 msgid "Elogind handles most system-level power events for a computer, for example suspending the system when a lid is closed, or shutting it down when the power button is pressed."
 msgstr "Elogind gère la plupart des événements liés à l'énergie du système, par exemple mettre en veille le système quand l'écran est rabattu ou en l'éteignant quand le bouton de démarrage est appuyé."
 
 #. type: deffn
-#: doc/guix.texi:14790
+#: doc/guix.texi:18421
 msgid "The @var{config} keyword argument specifies the configuration for elogind, and should be the result of an @code{(elogind-configuration (@var{parameter} @var{value})...)} invocation.  Available parameters and their default values are:"
 msgstr "L'argument @var{config} spécifie la configuration d'elogind et devrait être le résultat d'une invocation de @code{(elogind-configuration (@var{parameter} @var{value})...)}.  Les paramètres disponibles et leur valeur par défaut sont :"
 
 #. type: item
-#: doc/guix.texi:14792
+#: doc/guix.texi:18423
 #, no-wrap
 msgid "kill-user-processes?"
 msgstr "kill-user-processes?"
 
 #. type: code{#1}
-#: doc/guix.texi:14794 doc/guix.texi:14812 doc/guix.texi:14814
-#: doc/guix.texi:14816 doc/guix.texi:14828
+#: doc/guix.texi:18425 doc/guix.texi:18445 doc/guix.texi:18447
+#: doc/guix.texi:18449 doc/guix.texi:18461
 msgid "#f"
 msgstr "#f"
 
 #. type: item
-#: doc/guix.texi:14794
+#: doc/guix.texi:18425
 #, no-wrap
 msgid "kill-only-users"
 msgstr "kill-only-users"
 
 #. type: code{#1}
-#: doc/guix.texi:14796 doc/guix.texi:14834
+#: doc/guix.texi:18427 doc/guix.texi:18467
 msgid "()"
 msgstr "()"
 
 #. type: item
-#: doc/guix.texi:14796
+#: doc/guix.texi:18427
 #, no-wrap
 msgid "kill-exclude-users"
 msgstr "kill-exclude-users"
 
 #. type: code{#1}
-#: doc/guix.texi:14798
+#: doc/guix.texi:18429
 msgid "(\"root\")"
 msgstr "(\"root\")"
 
 #. type: item
-#: doc/guix.texi:14798
+#: doc/guix.texi:18429
 #, no-wrap
 msgid "inhibit-delay-max-seconds"
 msgstr "inhibit-delay-max-seconds"
 
 #. type: code{#1}
-#: doc/guix.texi:14800
+#: doc/guix.texi:18431
 msgid "5"
 msgstr "5"
 
 #. type: item
-#: doc/guix.texi:14800
+#: doc/guix.texi:18431
 #, no-wrap
 msgid "handle-power-key"
 msgstr "handle-power-key"
 
 #. type: code{#1}
-#: doc/guix.texi:14802
+#: doc/guix.texi:18433
 msgid "poweroff"
 msgstr "poweroff"
 
 #. type: item
-#: doc/guix.texi:14802
+#: doc/guix.texi:18433
 #, no-wrap
 msgid "handle-suspend-key"
 msgstr "handle-suspend-key"
 
 #. type: code{#1}
-#: doc/guix.texi:14804 doc/guix.texi:14808
+#: doc/guix.texi:18435 doc/guix.texi:18439
 msgid "suspend"
 msgstr "suspend"
 
 #. type: item
-#: doc/guix.texi:14804
+#: doc/guix.texi:18435
 #, no-wrap
 msgid "handle-hibernate-key"
 msgstr "handle-hibernate-key"
 
 #. type: code{#1}
-#: doc/guix.texi:14806
+#: doc/guix.texi:18437
 msgid "hibernate"
 msgstr "hibernate"
 
 #. type: item
-#: doc/guix.texi:14806
+#: doc/guix.texi:18437
 #, no-wrap
 msgid "handle-lid-switch"
 msgstr "handle-lid-switch"
 
 #. type: item
-#: doc/guix.texi:14808
+#: doc/guix.texi:18439
 #, no-wrap
 msgid "handle-lid-switch-docked"
 msgstr "handle-lid-switch-docked"
 
 #. type: code{#1}
-#: doc/guix.texi:14810 doc/guix.texi:14822
+#: doc/guix.texi:18441 doc/guix.texi:18443 doc/guix.texi:18455
 msgid "ignore"
 msgstr "ignore"
 
 #. type: item
-#: doc/guix.texi:14810
+#: doc/guix.texi:18441
+#, no-wrap
+msgid "handle-lid-switch-external-power"
+msgstr "handle-lid-switch-external-power"
+
+#. type: item
+#: doc/guix.texi:18443
 #, no-wrap
 msgid "power-key-ignore-inhibited?"
 msgstr "power-key-ignore-inhibited?"
 
 #. type: item
-#: doc/guix.texi:14812
+#: doc/guix.texi:18445
 #, no-wrap
 msgid "suspend-key-ignore-inhibited?"
 msgstr "suspend-key-ignore-inhibited?"
 
 #. type: item
-#: doc/guix.texi:14814
+#: doc/guix.texi:18447
 #, no-wrap
 msgid "hibernate-key-ignore-inhibited?"
 msgstr "hibernate-key-ignore-inhibited?"
 
 #. type: item
-#: doc/guix.texi:14816
+#: doc/guix.texi:18449
 #, no-wrap
 msgid "lid-switch-ignore-inhibited?"
 msgstr "lid-switch-ignore-inhibited?"
 
 #. type: code{#1}
-#: doc/guix.texi:14818 doc/guix.texi:14830
+#: doc/guix.texi:18451 doc/guix.texi:18463
 msgid "#t"
 msgstr "#t"
 
 #. type: item
-#: doc/guix.texi:14818
+#: doc/guix.texi:18451
 #, no-wrap
 msgid "holdoff-timeout-seconds"
 msgstr "holdoff-timeout-seconds"
 
 #. type: code{#1}
-#: doc/guix.texi:14820
+#: doc/guix.texi:18453
 msgid "30"
 msgstr "30"
 
 #. type: item
-#: doc/guix.texi:14820
+#: doc/guix.texi:18453
 #, no-wrap
 msgid "idle-action"
 msgstr "idle-action"
 
 #. type: item
-#: doc/guix.texi:14822
+#: doc/guix.texi:18455
 #, no-wrap
 msgid "idle-action-seconds"
 msgstr "idle-action-seconds"
 
 #. type: code{#1}
-#: doc/guix.texi:14824
+#: doc/guix.texi:18457
 msgid "(* 30 60)"
 msgstr "(* 30 60)"
 
 #. type: item
-#: doc/guix.texi:14824
+#: doc/guix.texi:18457
 #, no-wrap
 msgid "runtime-directory-size-percent"
 msgstr "runtime-directory-size-percent"
 
 #. type: code{#1}
-#: doc/guix.texi:14826
+#: doc/guix.texi:18459
 msgid "10"
 msgstr "10"
 
 #. type: item
-#: doc/guix.texi:14826
+#: doc/guix.texi:18459
 #, no-wrap
 msgid "runtime-directory-size"
 msgstr "runtime-directory-size"
 
 #. type: item
-#: doc/guix.texi:14828
+#: doc/guix.texi:18461
 #, no-wrap
 msgid "remove-ipc?"
 msgstr "remove-ipc?"
 
 #. type: item
-#: doc/guix.texi:14830
+#: doc/guix.texi:18463
 #, no-wrap
 msgid "suspend-state"
 msgstr "suspend-state"
 
 #. type: code{#1}
-#: doc/guix.texi:14832
+#: doc/guix.texi:18465
 msgid "(\"mem\" \"standby\" \"freeze\")"
 msgstr "(\"mem\" \"standby\" \"freeze\")"
 
 #. type: item
-#: doc/guix.texi:14832
+#: doc/guix.texi:18465
 #, no-wrap
 msgid "suspend-mode"
 msgstr "suspend-mode"
 
 #. type: item
-#: doc/guix.texi:14834
+#: doc/guix.texi:18467
 #, no-wrap
 msgid "hibernate-state"
 msgstr "hibernate-state"
 
 #. type: code{#1}
-#: doc/guix.texi:14836 doc/guix.texi:14840
+#: doc/guix.texi:18469 doc/guix.texi:18473
 msgid "(\"disk\")"
 msgstr "(\"disk\")"
 
 #. type: item
-#: doc/guix.texi:14836
+#: doc/guix.texi:18469
 #, no-wrap
 msgid "hibernate-mode"
 msgstr "hibernate-mode"
 
 #. type: code{#1}
-#: doc/guix.texi:14838
+#: doc/guix.texi:18471
 msgid "(\"platform\" \"shutdown\")"
 msgstr "(\"platform\" \"shutdown\")"
 
 #. type: item
-#: doc/guix.texi:14838
+#: doc/guix.texi:18471
 #, no-wrap
 msgid "hybrid-sleep-state"
 msgstr "hybrid-sleep-state"
 
 #. type: item
-#: doc/guix.texi:14840
+#: doc/guix.texi:18473
 #, no-wrap
 msgid "hybrid-sleep-mode"
 msgstr "hybrid-sleep-mode"
 
 #. type: code{#1}
-#: doc/guix.texi:14842
+#: doc/guix.texi:18475
 msgid "(\"suspend\" \"platform\" \"shutdown\")"
 msgstr "(\"suspend\" \"platform\" \"shutdown\")"
 
 #. type: deffn
-#: doc/guix.texi:14845
+#: doc/guix.texi:18478
 #, no-wrap
 msgid "{Scheme Procedure} accountsservice-service @"
 msgstr "{Procédure Scheme} accountsservice-service @"
 
 #. type: deffn
-#: doc/guix.texi:14853
+#: doc/guix.texi:18486
 msgid "[#:accountsservice @var{accountsservice}] Return a service that runs AccountsService, a system service that can list available accounts, change their passwords, and so on.  AccountsService integrates with PolicyKit to enable unprivileged users to acquire the capability to modify their system configuration.  @uref{https://www.freedesktop.org/wiki/Software/AccountsService/, the accountsservice web site} for more information."
 msgstr ""
 "[#:accountsservice @var{accountsservice}]\n"
 "Renvoie un service qui lance AccountsService, un service système qui peut lister les comptes disponibles, changer leur mot de passe, etc.  AccountsService s'intègre à Polkit pour permettre aux utilisateurs non privilégiés de pouvoir modifier la configuration de leur système.  @uref{https://www.freedesktop.org/wiki/Software/AccountsService/, le site de accountsservice} pour trouver plus d'informations."
 
 #. type: deffn
-#: doc/guix.texi:14856
+#: doc/guix.texi:18489
 msgid "The @var{accountsservice} keyword argument is the @code{accountsservice} package to expose as a service."
 msgstr "L'argument @var{accountsservice} est le paquet @code{accountsservice} à exposer comme un service."
 
 #. type: deffn
-#: doc/guix.texi:14858
+#: doc/guix.texi:18491
 #, no-wrap
 msgid "{Scheme Procedure} polkit-service @"
 msgstr "{Procédure Scheme} polkit-service @"
 
 #. type: deffn
-#: doc/guix.texi:14867
+#: doc/guix.texi:18500
 msgid "[#:polkit @var{polkit}] Return a service that runs the @uref{https://www.freedesktop.org/wiki/Software/polkit/, Polkit privilege management service}, which allows system administrators to grant access to privileged operations in a structured way.  By querying the Polkit service, a privileged system component can know when it should grant additional capabilities to ordinary users.  For example, an ordinary user can be granted the capability to suspend the system if the user is logged in locally."
 msgstr ""
 "[#:polkit @var{polkit}]\n"
 "Renvoie un service qui lance le @uref{https://www.freedesktop.org/wiki/Software/polkit/, service de gestion des privilèges Polkit}, qui permet aux administrateurs systèmes de permettre l'accès à des opération privilégiées d'une manière structurée.  En demandant au service Polkit, un composant système privilégié peut savoir lorsqu'il peut donner des privilèges supplémentaires à des utilisateurs normaux.  Par exemple, un utilisateur normal peut obtenir le droit de mettre le système en veille si l'utilisateur est connecté localement."
 
 #. type: defvr
-#: doc/guix.texi:14869
+#: doc/guix.texi:18502
+#, no-wrap
+msgid "{Scheme Variable} polkit-wheel-service"
+msgstr "{Variable Scheme} polkit-wheel-service"
+
+#. type: defvr
+#: doc/guix.texi:18507
+msgid "Service that adds the @code{wheel} group as admins to the Polkit service.  This makes it so that users in the @code{wheel} group are queried for their own passwords when performing administrative actions instead of @code{root}'s, similar to the behaviour used by @code{sudo}."
+msgstr "Service qui ajoute le groupe @code{wheel} comme administrateur au service Polkit.  Cela fait en sorte qu'on demande le mot de passe des utilisateurs du groupe @code{wheel} eux-mêmes pour effectuer des taches d'administration au lieu du mot de passe @code{root}, comme le fait @code{sudo}."
+
+#. type: defvr
+#: doc/guix.texi:18509
 #, no-wrap
 msgid "{Scheme Variable} upower-service-type"
 msgstr "{Variable Scheme} upower-service-type"
 
 #. type: defvr
-#: doc/guix.texi:14873
+#: doc/guix.texi:18513
 msgid "Service that runs @uref{https://upower.freedesktop.org/, @command{upowerd}}, a system-wide monitor for power consumption and battery levels, with the given configuration settings."
 msgstr "Service qui lance @uref{https://upower.freedesktop.org/, @command{upowerd}}, un moniteur système de consommation d'énergie et de niveau de batterie, avec les paramètres de configuration donnés."
 
 #. type: defvr
-#: doc/guix.texi:14876
+#: doc/guix.texi:18516
 msgid "It implements the @code{org.freedesktop.UPower} D-Bus interface, and is notably used by GNOME."
 msgstr "Il implémente l'interface D-Bus @code{org.freedesktop.UPower} et est notamment utilisé par GNOME."
 
 #. type: deftp
-#: doc/guix.texi:14878
+#: doc/guix.texi:18518
 #, no-wrap
 msgid "{Data Type} upower-configuration"
 msgstr "{Type de données} upower-configuration"
 
 #. type: deftp
-#: doc/guix.texi:14880
+#: doc/guix.texi:18520
 msgid "Data type representation the configuration for UPower."
 msgstr "Type de données représentant la configuration de UPower."
 
 #. type: item
-#: doc/guix.texi:14883
+#: doc/guix.texi:18523
 #, no-wrap
 msgid "@code{upower} (default: @var{upower})"
 msgstr "@code{upower} (par défaut : @var{upower})"
 
 #. type: table
-#: doc/guix.texi:14885
+#: doc/guix.texi:18525
 msgid "Package to use for @code{upower}."
 msgstr "Paquet à utiliser pour @code{upower}."
 
 #. type: item
-#: doc/guix.texi:14886
+#: doc/guix.texi:18526
 #, no-wrap
 msgid "@code{watts-up-pro?} (default: @code{#f})"
 msgstr "@code{watts-up-pro?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:14888
+#: doc/guix.texi:18528
 msgid "Enable the Watts Up Pro device."
 msgstr "Active le périphérique Watts Up Pro."
 
 #. type: item
-#: doc/guix.texi:14889
+#: doc/guix.texi:18529
 #, no-wrap
 msgid "@code{poll-batteries?} (default: @code{#t})"
 msgstr "@code{poll-batteries?} (par défaut : @code{#t})"
 
 #. type: table
-#: doc/guix.texi:14891
+#: doc/guix.texi:18531
 msgid "Enable polling the kernel for battery level changes."
 msgstr "Active les requêtes au noyau pour les changements de niveau de batterie."
 
 #. type: item
-#: doc/guix.texi:14892
+#: doc/guix.texi:18532
 #, no-wrap
 msgid "@code{ignore-lid?} (default: @code{#f})"
 msgstr "@code{ignore-lid?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:14894
+#: doc/guix.texi:18534
 msgid "Ignore the lid state, this can be useful if it's incorrect on a device."
 msgstr "Ignore l'état de l'écran, ce qui peut être utile s'il est incorrect sur un appareil."
 
 #. type: item
-#: doc/guix.texi:14895
+#: doc/guix.texi:18535
 #, no-wrap
 msgid "@code{use-percentage-for-policy?} (default: @code{#f})"
 msgstr "@code{use-percentage-for-policy?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:14898
+#: doc/guix.texi:18538
 msgid "Whether battery percentage based policy should be used.  The default is to use the time left, change to @code{#t} to use the percentage."
 msgstr "Indique si la politique de batterie basée sur le pourcentage devrait être utilisée.  La valeur par défaut est d'utiliser la durée restante, changez en @code{#t} pour utiliser les pourcentages."
 
 #. type: item
-#: doc/guix.texi:14899
+#: doc/guix.texi:18539
 #, no-wrap
 msgid "@code{percentage-low} (default: @code{10})"
 msgstr "@code{percentage-low} (par défaut : @code{10})"
 
 #. type: table
-#: doc/guix.texi:14902
+#: doc/guix.texi:18542
 msgid "When @code{use-percentage-for-policy?} is @code{#t}, this sets the percentage at which the battery is considered low."
 msgstr "Lorsque @code{use-percentage-for-policy?} est @code{#t}, cela indique à quel niveau la batterie est considérée comme faible."
 
 #. type: item
-#: doc/guix.texi:14903
+#: doc/guix.texi:18543
 #, no-wrap
 msgid "@code{percentage-critical} (default: @code{3})"
 msgstr "@code{percentage-critical} (par défaut : @code{3})"
 
 #. type: table
-#: doc/guix.texi:14906
+#: doc/guix.texi:18546
 msgid "When @code{use-percentage-for-policy?} is @code{#t}, this sets the percentage at which the battery is considered critical."
 msgstr "Lorsque @code{use-percentage-for-policy?} est @code{#t}, cela indique à quel niveau la batterie est considérée comme critique."
 
 #. type: item
-#: doc/guix.texi:14907
+#: doc/guix.texi:18547
 #, no-wrap
 msgid "@code{percentage-action} (default: @code{2})"
 msgstr "@code{percentage-action} (par défaut : @code{2})"
 
 #. type: table
-#: doc/guix.texi:14910
+#: doc/guix.texi:18550
 msgid "When @code{use-percentage-for-policy?} is @code{#t}, this sets the percentage at which action will be taken."
 msgstr "Lorsque @code{use-percentage-for-policy?} est @code{#t}, cela indique à quel niveau l'action sera prise."
 
 #. type: item
-#: doc/guix.texi:14911
+#: doc/guix.texi:18551
 #, no-wrap
 msgid "@code{time-low} (default: @code{1200})"
 msgstr "@code{time-low} (par défaut : @code{1200})"
 
 #. type: table
-#: doc/guix.texi:14914
+#: doc/guix.texi:18554
 msgid "When @code{use-time-for-policy?} is @code{#f}, this sets the time remaining in seconds at which the battery is considered low."
 msgstr "Lorsque @code{use-percentage-for-policy?} est @code{#f}, cela indique à quelle durée restante en secondes la batterie est considérée comme faible."
 
 #. type: item
-#: doc/guix.texi:14915
+#: doc/guix.texi:18555
 #, no-wrap
 msgid "@code{time-critical} (default: @code{300})"
 msgstr "@code{time-critical} (par défaut : @code{300})"
 
 #. type: table
-#: doc/guix.texi:14918
+#: doc/guix.texi:18558
 msgid "When @code{use-time-for-policy?} is @code{#f}, this sets the time remaining in seconds at which the battery is considered critical."
 msgstr "Lorsque @code{use-percentage-for-policy?} est @code{#f}, cela indique à quelle durée restante en secondes la batterie est considérée comme critique."
 
 #. type: item
-#: doc/guix.texi:14919
+#: doc/guix.texi:18559
 #, no-wrap
 msgid "@code{time-action} (default: @code{120})"
 msgstr "@code{time-action} (par défaut : @code{120})"
 
 #. type: table
-#: doc/guix.texi:14922
+#: doc/guix.texi:18562
 msgid "When @code{use-time-for-policy?} is @code{#f}, this sets the time remaining in seconds at which action will be taken."
 msgstr "Lorsque @code{use-percentage-for-policy?} est @code{#f}, cela indique à quelle durée restante en secondes l'action sera prise."
 
 #. type: item
-#: doc/guix.texi:14923
+#: doc/guix.texi:18563
 #, no-wrap
 msgid "@code{critical-power-action} (default: @code{'hybrid-sleep})"
 msgstr "@code{critical-power-action} (par défaut : @code{'hybrid-sleep})"
 
 #. type: table
-#: doc/guix.texi:14926
+#: doc/guix.texi:18566
 msgid "The action taken when @code{percentage-action} or @code{time-action} is reached (depending on the configuration of @code{use-percentage-for-policy?})."
 msgstr "L'action à prendre lorsque @code{percentage-action} ou @code{time-action} est atteint (en fonction de la configuration de @code{use-percentage-for-policy?})."
 
 #. type: table
-#: doc/guix.texi:14928
+#: doc/guix.texi:18568
 msgid "Possible values are:"
 msgstr "Les valeurs possibles sont :"
 
 #. type: code{#1}
-#: doc/guix.texi:14932
+#: doc/guix.texi:18572
 msgid "'power-off"
 msgstr "'power-off"
 
 #. type: code{#1}
-#: doc/guix.texi:14935
+#: doc/guix.texi:18575
 msgid "'hibernate"
 msgstr "'hibernate"
 
 #. type: itemize
-#: doc/guix.texi:14938
+#: doc/guix.texi:18578
 msgid "@code{'hybrid-sleep}."
 msgstr "@code{'hybrid-sleep}."
 
 #. type: deffn
-#: doc/guix.texi:14943
+#: doc/guix.texi:18583
 #, no-wrap
 msgid "{Scheme Procedure} udisks-service [#:udisks @var{udisks}]"
 msgstr "{Procédure Scheme} udisks-service [#:udisks @var{udisks}]"
 
 #. type: deffn
-#: doc/guix.texi:14948
-msgid "Return a service for @uref{https://udisks.freedesktop.org/docs/latest/, UDisks}, a @dfn{disk management} daemon that provides user interfaces with notifications and ways to mount/unmount disks.  Programs that talk to UDisks include the @command{udisksctl} command, part of UDisks, and GNOME Disks."
-msgstr "Renvoie un service pour @uref{https://udisks.freedesktop.org/docs/latest/, UDisks}, un démon de @dfn{gestion de disques} qui fournit des notifications et la capacité de monter et démonter des disques à des interfaces utilisateurs.  Les programmes qui parlent à UDisks sont par exemple la commande @command{udisksctl}, qui fait partie de UDisks et GNOME Disks."
+#: doc/guix.texi:18593
+msgid "Return a service for @uref{https://udisks.freedesktop.org/docs/latest/, UDisks}, a @dfn{disk management} daemon that provides user interfaces with notifications and ways to mount/unmount disks.  Programs that talk to UDisks include the @command{udisksctl} command, part of UDisks, and GNOME Disks.  Note that Udisks relies on the @command{mount} command, so it will only be able to use the file-system utilities installed in the system profile.  For example if you want to be able to mount NTFS file-systems in read and write fashion, you'll need to have @code{ntfs-3g} installed system-wide."
+msgstr "Renvoie un service pour @uref{https://udisks.freedesktop.org/docs/latest/, UDisks}, un démon de @dfn{gestion de disques} qui fournit des notifications et la capacité de monter et démonter des disques à des interfaces utilisateurs.  Les programmes qui parlent à UDisks sont par exemple la commande @command{udisksctl}, qui fait partie de UDisks, et GNOME Disks.  Remarquez que Udisks s'appuie sur la commande @command{mount}, donc il ne sera capable d'utiliser que les utilitaires de systèmes de fichiers installés dans le profil du système.  Par exemple si vous voulez monter des systèmes de fichiers NTFS en lecture-écriture, vous devrez ajouter @code{ntfs-3g} aux paquets installés sur le système entier."
 
 #. type: deffn
-#: doc/guix.texi:14950
+#: doc/guix.texi:18595
 #, no-wrap
-msgid "{Scheme Procedure} colord-service [#:colord @var{colord}]"
-msgstr "{Procédure Scheme} colord-service [#:colord @var{colord}]"
+msgid "{Scheme Variable} colord-service-type"
+msgstr "{Variable Scheme} colord-service-type"
 
 #. type: deffn
-#: doc/guix.texi:14956
-msgid "Return a service that runs @command{colord}, a system service with a D-Bus interface to manage the color profiles of input and output devices such as screens and scanners.  It is notably used by the GNOME Color Manager graphical tool.  See @uref{https://www.freedesktop.org/software/colord/, the colord web site} for more information."
-msgstr "Renvoie un service qui lance @command{colord}, un service système avec une interface D-Bus pour gérer les profils de couleur des périphériques d'entrées et de sorties comme les écrans et les scanners.  Il est notamment utilisé par l'outil graphique GNOME Color Manager.  Voir @uref{https://www.freedesktop.org/software/colord/, le site web de colord} pour plus d'informations."
+#: doc/guix.texi:18602
+msgid "This is the type of the service that runs @command{colord}, a system service with a D-Bus interface to manage the color profiles of input and output devices such as screens and scanners.  It is notably used by the GNOME Color Manager graphical tool.  See @uref{https://www.freedesktop.org/software/colord/, the colord web site} for more information."
+msgstr "C'est le type de service qui lance @command{colord}, un service système avec une interface D-Bus pour gérer les profils de couleur des périphériques d'entrées et de sorties comme les écrans et les scanners.  Il est notamment utilisé par l'outil graphique GNOME Color Manager.  Voir @uref{https://www.freedesktop.org/software/colord/, le site web de colord} pour plus d'informations."
 
 #. type: deffn
-#: doc/guix.texi:14958
+#: doc/guix.texi:18604
 #, no-wrap
 msgid "{Scheme Procedure} geoclue-application name [#:allowed? #t] [#:system? #f] [#:users '()]"
 msgstr "{Procédure Scheme} geoclue-application name [#:allowed? #t] [#:system? #f] [#:users '()]"
 
 #. type: deffn
-#: doc/guix.texi:14967
+#: doc/guix.texi:18613
 msgid "Return a configuration allowing an application to access GeoClue location data.  @var{name} is the Desktop ID of the application, without the @code{.desktop} part.  If @var{allowed?} is true, the application will have access to location information by default.  The boolean @var{system?} value indicates whether an application is a system component or not.  Finally @var{users} is a list of UIDs of all users for which this application is allowed location info access.  An empty users list means that all users are allowed."
 msgstr "Renvoie une configuration qui permet d'accéder aux données de localisation de GeoClue.  @var{name} est l'ID Desktop de l'application, sans la partie en @code{.desktop}.  Si @var{allowed?} est vraie, l'application aura droit d'accéder aux informations de localisation par défaut.  Le booléen @var{system?} indique si une application est un composant système ou non.  Enfin @var{users} est la liste des UID des utilisateurs pour lesquels cette application a le droit d'accéder aux informations de géolocalisation.  Une liste d'utilisateurs vide indique que tous les utilisateurs sont autorisés."
 
+#. type: cindex
+#: doc/guix.texi:18615
+#, no-wrap
+msgid "scanner access"
+msgstr "accès au scanner"
+
+#. type: deffn
+#: doc/guix.texi:18616
+#, no-wrap
+msgid "{Scheme Procedure} sane-service-type"
+msgstr "{Procédure Scheme} sane-service-type"
+
+#. type: deffn
+#: doc/guix.texi:18620
+msgid "This service provides access to scanners @i{via} @uref{http://www.sane-project.org, SANE} by installing the necessary udev rules."
+msgstr "Ce service fournit un accès aux scanner via @uref{http://www.sane-project.org, SANE} en installant les règles udev nécessaires."
+
 #. type: defvr
-#: doc/guix.texi:14969
+#: doc/guix.texi:18622
 #, no-wrap
 msgid "{Scheme Variable} %standard-geoclue-applications"
 msgstr "{Variable Scheme} %standard-geoclue-applications"
 
 #. type: defvr
-#: doc/guix.texi:14976
+#: doc/guix.texi:18629
 msgid "The standard list of well-known GeoClue application configurations, granting authority to the GNOME date-and-time utility to ask for the current location in order to set the time zone, and allowing the IceCat and Epiphany web browsers to request location information.  IceCat and Epiphany both query the user before allowing a web page to know the user's location."
 msgstr "La liste standard de configuration des application GeoClue connues, qui permet à l'utilitaire date-and-time de GNOME de demander l'emplacement actuel pour initialiser le fuseau horaire et aux navigateurs web IceCat et Epiphany de demander les informations de localisation.  IceCat et Epiphany demandent tous deux à l'utilisateur avant de permettre à une page web de connaître l'emplacement de l'utilisateur."
 
 #. type: deffn
-#: doc/guix.texi:14978
+#: doc/guix.texi:18631
 #, no-wrap
 msgid "{Scheme Procedure} geoclue-service [#:colord @var{colord}] @"
 msgstr "{Procédure Scheme} geoclue-service [#:colord @var{colord}] @"
 
 #. type: deffn
-#: doc/guix.texi:14991
+#: doc/guix.texi:18644
 msgid "[#:whitelist '()] @ [#:wifi-geolocation-url \"https://location.services.mozilla.com/v1/geolocate?key=geoclue\"] @ [#:submit-data? #f] [#:wifi-submission-url \"https://location.services.mozilla.com/v1/submit?key=geoclue\"] @ [#:submission-nick \"geoclue\"] @ [#:applications %standard-geoclue-applications] Return a service that runs the GeoClue location service.  This service provides a D-Bus interface to allow applications to request access to a user's physical location, and optionally to add information to online location databases.  See @uref{https://wiki.freedesktop.org/www/Software/GeoClue/, the GeoClue web site} for more information."
 msgstr ""
 "[#:whitelist '()] @\n"
@@ -28086,124 +34763,183 @@ msgstr ""
 "Renvoie un service qui lance le service de géolocalisation GeoClue.  Ce service fournit une interface D-Bus pour permettre aux applications de demande l'accès à la position de l'utilisateur et éventuellement d'ajouter des informations à des bases de données de géolocalisation en ligne.  Voir @uref{https://wiki.freedesktop.org/www/Software/GeoClue/, le site web de GeoClue} pour plus d'informations."
 
 #. type: deffn
-#: doc/guix.texi:14993
+#: doc/guix.texi:18646
 #, no-wrap
 msgid "{Scheme Procedure} bluetooth-service [#:bluez @var{bluez}] @"
 msgstr "{Procédure Scheme} bluetooth-service [#:bluez @var{bluez}] @"
 
 #. type: deffn
-#: doc/guix.texi:15000
+#: doc/guix.texi:18653
 msgid "[@w{#:auto-enable? #f}] Return a service that runs the @command{bluetoothd} daemon, which manages all the Bluetooth devices and provides a number of D-Bus interfaces.  When AUTO-ENABLE? is true, the bluetooth controller is powered automatically at boot, which can be useful when using a bluetooth keyboard or mouse."
 msgstr ""
 "[@w{#:auto-enable? #f}]\n"
 "Renvoie un service qui lance le démon @command{bluetoothd} qui gère tous les appareils Bluetooth et fournit un certain nombre d'interfaces D-Bus.  Lorsque @var{auto-enable?} est vraie, le contrôler bluetooth est automatiquement alimenté au démarrage, ce qui peut être utile lorsque vous utilisez un clavier ou une souris bluetooth."
 
 #. type: deffn
-#: doc/guix.texi:15002
+#: doc/guix.texi:18655
 msgid "Users need to be in the @code{lp} group to access the D-Bus service."
 msgstr "Les utilisateurs doivent être dans le groupe @code{lp} pour accéder au service D-Bus."
 
+#. type: defvr
+#: doc/guix.texi:18657
+#, no-wrap
+msgid "{Scheme Variable} gnome-keyring-service-type"
+msgstr "{Variable Scheme} gnome-keyring-service-type"
+
+#. type: defvr
+#: doc/guix.texi:18661
+msgid "This is the type of the service that adds the @uref{https://wiki.gnome.org/Projects/GnomeKeyring, GNOME Keyring}.  Its value is a @code{gnome-keyring-configuration} object (see below)."
+msgstr "C'est le type de service qui ajoute @uref{https://wiki.gnome.org/Projects/GnomeKeyring, GNOME Keyring}.  Sa valeur est un objet @code{gnome-keyring-configuration} (voir plus bas)."
+
+#. type: defvr
+#: doc/guix.texi:18665
+msgid "This service adds the @code{gnome-keyring} package to the system profile and extends PAM with entries using @code{pam_gnome_keyring.so}, unlocking a user's login keyring when they log in or setting its password with passwd."
+msgstr "Ce service ajoute le paquet @code{gnome-keyring} au profil du système et étend PAM avec des entrées avec @code{pam_gnome_keyring.so}, permettant de déverrouiller un porteclé utilisateur à la connexion ou de spécifier son mot de passe avec passwd."
+
+#. type: deftp
+#: doc/guix.texi:18667
+#, no-wrap
+msgid "{Data Type} gnome-keyring-configuration"
+msgstr "{Type de données} gnome-keyring-configuration"
+
+#. type: deftp
+#: doc/guix.texi:18669
+msgid "Configuration record for the GNOME Keyring service."
+msgstr "Enregistrement de la configuration du service GNOME Keyring."
+
+#. type: item
+#: doc/guix.texi:18671
+#, no-wrap
+msgid "@code{keyring} (default: @code{gnome-keyring})"
+msgstr "@code{keyring} (par défaut : @code{gnome-keyring})"
+
+#. type: table
+#: doc/guix.texi:18673
+msgid "The GNOME keyring package to use."
+msgstr "Le paquet GNOME keyring à utiliser."
+
+#. type: code{#1}
+#: doc/guix.texi:18674
+#, no-wrap
+msgid "pam-services"
+msgstr "pam-services"
+
+#. type: table
+#: doc/guix.texi:18679
+msgid "A list of @code{(@var{service} . @var{kind})} pairs denoting PAM services to extend, where @var{service} is the name of an existing service to extend and @var{kind} is one of @code{login} or @code{passwd}."
+msgstr "Une liste de paires @code{(@var{service} . @var{type})} dénotant des services PAM à étendre, où @var{service} est le nom d'un service existant à étendre et @var{type} est @code{login} ou @code{passwd}."
+
+#. type: table
+#: doc/guix.texi:18685
+msgid "If @code{login} is given, it adds an optional @code{pam_gnome_keyring.so} to the auth block without arguments and to the session block with @code{auto_start}.  If @code{passwd} is given, it adds an optional @code{pam_gnome_keyring.so} to the password block without arguments."
+msgstr "S'il s'agit de @code{login}, cela ajoute un @code{pam_gnome_keyring.so} facultatif au bloc d'authentification sans argument et au bloc de session avec @code{auto_start}.  S'il s'agit de @code{passwd}, cela ajoute un @code{pam_gnome_keyring.so} facultatif au bloc de mot de passe sans argument."
+
+#. type: table
+#: doc/guix.texi:18688
+msgid "By default, this field contains ``gdm-password'' with the value @code{login} and ``passwd'' is with the value @code{passwd}."
+msgstr "Par défaut, ce champ contient « gdm-password » avec la valeur @code{login} et « passwd » avec la valeur @code{passwd}."
+
 #. type: cindex
-#: doc/guix.texi:15007
+#: doc/guix.texi:18695
 #, no-wrap
 msgid "sound support"
 msgstr "support du son"
 
 #. type: cindex
-#: doc/guix.texi:15008
+#: doc/guix.texi:18696
 #, no-wrap
 msgid "ALSA"
 msgstr "ALSA"
 
 #. type: cindex
-#: doc/guix.texi:15009
+#: doc/guix.texi:18697
 #, no-wrap
 msgid "PulseAudio, sound support"
 msgstr "PulseAudio, support du son"
 
 #. type: Plain text
-#: doc/guix.texi:15014
+#: doc/guix.texi:18702
 msgid "The @code{(gnu services sound)} module provides a service to configure the Advanced Linux Sound Architecture (ALSA) system, which makes PulseAudio the preferred ALSA output driver."
 msgstr "Le module @code{(gnu services sound)} fournit un service pour configurer le système ALSA (architecture son linux avancée), qui fait de PulseAudio le pilote de sortie préféré d'ALSA."
 
 #. type: deffn
-#: doc/guix.texi:15015
+#: doc/guix.texi:18703
 #, no-wrap
 msgid "{Scheme Variable} alsa-service-type"
 msgstr "{Variable Scheme} alsa-service-type"
 
 #. type: deffn
-#: doc/guix.texi:15020
+#: doc/guix.texi:18708
 msgid "This is the type for the @uref{https://alsa-project.org/, Advanced Linux Sound Architecture} (ALSA) system, which generates the @file{/etc/asound.conf} configuration file.  The value for this type is a @command{alsa-configuration} record as in this example:"
 msgstr "C'est le type pour le système @uref{https://alsa-project.org/, Advanced Linux Sound Architecture} (ALSA), qui génère le fichier de configuration @file{/etc/asound.conf}.  La valeur de ce type est un enregistrement @command{alsa-configuration} comme dans cet exemple :"
 
-#. type: example
-#: doc/guix.texi:15023
+#. type: lisp
+#: doc/guix.texi:18711
 #, no-wrap
 msgid "(service alsa-service-type)\n"
 msgstr "(service alsa-service-type)\n"
 
 #. type: deffn
-#: doc/guix.texi:15026
+#: doc/guix.texi:18714
 msgid "See below for details about @code{alsa-configuration}."
 msgstr "Voir plus bas pour des détails sur @code{alsa-configuration}."
 
 #. type: deftp
-#: doc/guix.texi:15028
+#: doc/guix.texi:18716
 #, no-wrap
 msgid "{Data Type} alsa-configuration"
 msgstr "{Type de données} alsa-configuration"
 
 #. type: deftp
-#: doc/guix.texi:15030
+#: doc/guix.texi:18718
 msgid "Data type representing the configuration for @code{alsa-service}."
 msgstr "Type de données représentant la configuration pour @code{alsa-service}."
 
 #. type: item
-#: doc/guix.texi:15032
+#: doc/guix.texi:18720
 #, no-wrap
 msgid "@code{alsa-plugins} (default: @var{alsa-plugins})"
 msgstr "@code{alsa-plugins} (par défaut : @var{alsa-plugins})"
 
 #. type: table
-#: doc/guix.texi:15034
+#: doc/guix.texi:18722
 msgid "@code{alsa-plugins} package to use."
 msgstr "Le paquet @code{alsa-plugins} à utiliser."
 
 #. type: item
-#: doc/guix.texi:15035
+#: doc/guix.texi:18723
 #, no-wrap
 msgid "@code{pulseaudio?} (default: @var{#t})"
 msgstr "@code{pulseaudio?} (par défaut : @var{#t})"
 
 #. type: table
-#: doc/guix.texi:15038
-msgid "Whether ALSA applications should transparently be made to use the @uref{http://www.pulseaudio.org/, PulseAudio} sound server."
-msgstr "Indique si les applications ALSA devraient utiliser le serveur de son @uref{http://www.pulseaudio.org/, PulseAudio} de manière transparente pour elles."
+#: doc/guix.texi:18726
+msgid "Whether ALSA applications should transparently be made to use the @uref{https://www.pulseaudio.org/, PulseAudio} sound server."
+msgstr "Indique si les applications ALSA devraient utiliser le serveur de son @uref{https://www.pulseaudio.org/, PulseAudio} de manière transparente pour elles."
 
 #. type: table
-#: doc/guix.texi:15042
+#: doc/guix.texi:18730
 msgid "Using PulseAudio allows you to run several sound-producing applications at the same time and to individual control them @i{via} @command{pavucontrol}, among other things."
 msgstr "Utiliser PulseAudio vous permet dans lancer plusieurs applications qui produisent du son en même temps et de les contrôler individuellement via @command{pavucontrol} entre autres choses."
 
 #. type: item
-#: doc/guix.texi:15043
+#: doc/guix.texi:18731
 #, no-wrap
 msgid "@code{extra-options} (default: @var{\"\"})"
 msgstr "@code{extra-options} (par défaut : @var{\"\"})"
 
 #. type: table
-#: doc/guix.texi:15045
+#: doc/guix.texi:18733
 msgid "String to append to the @file{/etc/asound.conf} file."
 msgstr "Chaîne à ajouter au fichier @file{/etc/asound.conf}."
 
 #. type: Plain text
-#: doc/guix.texi:15051
+#: doc/guix.texi:18739
 msgid "Individual users who want to override the system configuration of ALSA can do it with the @file{~/.asoundrc} file:"
 msgstr "Les utilisateurs individuels qui veulent modifier la configuration système d'ALSA peuvent le faire avec le fichier @file{~/.asoundrc} :"
 
 #. type: example
-#: doc/guix.texi:15057
+#: doc/guix.texi:18745
 #, no-wrap
 msgid ""
 "# In guix, we have to specify the absolute path for plugins.\n"
@@ -28219,7 +34955,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:15066
+#: doc/guix.texi:18754
 #, no-wrap
 msgid ""
 "# Routing ALSA to jack:\n"
@@ -28243,7 +34979,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:15072
+#: doc/guix.texi:18760
 #, no-wrap
 msgid ""
 "  capture_ports @{\n"
@@ -28261,7 +34997,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:15079
+#: doc/guix.texi:18767
 #, no-wrap
 msgid ""
 "pcm.!default @{\n"
@@ -28279,59 +35015,258 @@ msgstr ""
 "@}\n"
 
 #. type: Plain text
-#: doc/guix.texi:15083
+#: doc/guix.texi:18771
 msgid "See @uref{https://www.alsa-project.org/main/index.php/Asoundrc} for the details."
 msgstr "Voir @uref{https://www.alsa-project.org/main/index.php/Asoundrc} pour les détails."
 
+#. type: deffn
+#: doc/guix.texi:18772
+#, no-wrap
+msgid "{Scheme Variable} pulseaudio-service-type"
+msgstr "{Variable Scheme} pulseaudio-service-type"
+
+#. type: deffn
+#: doc/guix.texi:18776
+msgid "This is the type for the @uref{https://www.pulseaudio.org/, PulseAudio} sound server.  It exists to allow system overrides of the default settings via @code{pulseaudio-configuration}, see below."
+msgstr "C'est le type de service pour le serveur de son @uref{https://www.pulseaudio.org/, PulseAudio}.  Sa valeur est un @code{pulseaudio-configuration} (voir plus bas)."
+
+#. type: quotation
+#: doc/guix.texi:18782
+msgid "This service overrides per-user configuration files.  If you want PulseAudio to honor configuration files in @file{~/.config/pulse} you have to unset the environment variables @env{PULSE_CONFIG} and @env{PULSE_CLIENTCONFIG} in your @file{~/.bash_profile}."
+msgstr "Ce service prend le pas sur les fichiers de configuration utilisateurs.  Si vous voulez que PulseAudio utilise les fichiers de configuration de @file{~/.config/pulse} vous devez réinitialiser les variables d'environnement @env{PULSE_CONFIG} et @env{PULSE_CLIENTCONFIG} dans votre @file{~/.bash_profile}."
+
+#. type: quotation
+#: doc/guix.texi:18790
+msgid "This service on its own does not ensure, that the @code{pulseaudio} package exists on your machine.  It merely adds configuration files for it, as detailed below.  In the (admittedly unlikely) case, that you find yourself without a @code{pulseaudio} package, consider enabling it through the @code{alsa-service-type} above."
+msgstr "Ce service seul ne s'assure pas que le paquet @code{pulseaudio} existe sur votre machine.  Il ajoute seulement des fichiers de configuration, comme décrit plus bas.  Dans le cas (vraiment improbable) où vous n'auriez pas de paquet @code{pulseaudio}, vous pouvez l'activer à travers le service @code{alsa-service-type} plus haut."
+
+#. type: deftp
+#: doc/guix.texi:18793
+#, no-wrap
+msgid "{Data Type} pulseaudio-configuration"
+msgstr "{Type de données} pulseaudio-configuration"
+
+#. type: deftp
+#: doc/guix.texi:18795
+msgid "Data type representing the configuration for @code{pulseaudio-service}."
+msgstr "Type de données représentant la configuration pour @code{pulseaudio-service}."
+
+#. type: item
+#: doc/guix.texi:18797
+#, no-wrap
+msgid "@code{client-conf} (default: @code{'()})"
+msgstr "@code{client-conf} (par défaut : @code{'()})"
+
+#. type: table
+#: doc/guix.texi:18802
+msgid "List of settings to set in @file{client.conf}.  Accepts a list of strings or a symbol-value pairs.  A string will be inserted as-is with a newline added.  A pair will be formatted as ``key = value'', again with a newline added."
+msgstr "Liste les paramètres à indiquer dans @file{client.conf}.  Accepte un liste de chaines ou de paires symboles-valeurs.  Une chaine sera insérée telle quelle avec un saut de ligne.  Une paire sera formatée en « clé = valeur » avec un saut de ligne."
+
+#. type: item
+#: doc/guix.texi:18803
+#, no-wrap
+msgid "@code{daemon-conf} (default: @code{'((flat-volumes . no))})"
+msgstr "@code{daemon-conf} (par défaut : @code{'((flat-volumes . no))})"
+
+#. type: table
+#: doc/guix.texi:18806
+msgid "List of settings to set in @file{daemon.conf}, formatted just like @var{client-conf}."
+msgstr "Liste les paramètres à indiquer dans @file{daemon.conf}, formaté comme @var{client-conf}."
+
+#. type: item
+#: doc/guix.texi:18807
+#, no-wrap
+msgid "@code{script-file} (default: @code{(file-append pulseaudio \"/etc/pulse/default.pa\")})"
+msgstr "@code{script-file} (par défaut : @code{(file-append pulseaudio \"/etc/pulse/default.pa\")})"
+
+#. type: table
+#: doc/guix.texi:18809
+msgid "Script file to use as @file{default.pa}."
+msgstr "Fichier de script à utiliser comme @file{default.pa}."
+
+#. type: item
+#: doc/guix.texi:18810
+#, no-wrap
+msgid "@code{system-script-file} (default: @code{(file-append pulseaudio \"/etc/pulse/system.pa\")})"
+msgstr "@code{system-script-file} (par défaut : @code{(file-append pulseaudio \"/etc/pulse/system.pa\")})"
+
+#. type: table
+#: doc/guix.texi:18812
+msgid "Script file to use as @file{system.pa}."
+msgstr "Fichier de script à utiliser comme @file{system.pa}."
+
+#. type: deffn
+#: doc/guix.texi:18815
+#, no-wrap
+msgid "{Scheme Variable} ladspa-service-type"
+msgstr "{Variable Scheme} ladspa-service-type"
+
+#. type: deffn
+#: doc/guix.texi:18818
+msgid "This service sets the @var{LADSPA_PATH} variable, so that programs, which respect it, e.g. PulseAudio, can load LADSPA plugins."
+msgstr "Ce service initialise la variable @var{LADSPA_PATH} pour que les programmes qui la respectent, p.@: ex.@: PulseAudio, puissent charger les greffons LADSPA."
+
+#. type: deffn
+#: doc/guix.texi:18821
+msgid "The following example will setup the service to enable modules from the @code{swh-plugins} package:"
+msgstr "L'exemple suivant met en place le service pour activer les modules du paquet @code{swh-plugins} :"
+
+#. type: lisp
+#: doc/guix.texi:18825
+#, no-wrap
+msgid ""
+"(service ladspa-service-type\n"
+"         (ladspa-configuration (plugins (list swh-plugins))))\n"
+msgstr ""
+"(service ladspa-service-type\n"
+"         (ladspa-configuration (plugins (list swh-plugins))))\n"
+
+#. type: deffn
+#: doc/guix.texi:18829
+msgid "See @uref{http://plugin.org.uk/ladspa-swh/docs/ladspa-swh.html} for the details."
+msgstr "Voir @uref{http://plugin.org.uk/ladspa-swh/docs/ladspa-swh.html} pour les détails."
+
 #. type: cindex
-#: doc/guix.texi:15089
+#: doc/guix.texi:18836
 #, no-wrap
 msgid "SQL"
 msgstr "SQL"
 
 #. type: Plain text
-#: doc/guix.texi:15091
+#: doc/guix.texi:18838
 msgid "The @code{(gnu services databases)} module provides the following services."
 msgstr "Le module @code{(gnu services databases)} fournit les services suivants."
 
-#. type: deffn
-#: doc/guix.texi:15092
+#. type: subsubheading
+#: doc/guix.texi:18839
 #, no-wrap
-msgid "{Scheme Procedure} postgresql-service [#:postgresql postgresql] @"
-msgstr "{Procédure Scheme} postgresql-service [#:postgresql postgresql] @"
+msgid "PostgreSQL"
+msgstr "PostgreSQL"
 
-#. type: deffn
-#: doc/guix.texi:15097
-msgid "[#:config-file] [#:data-directory ``/var/lib/postgresql/data''] @ [#:port 5432] [#:locale ``en_US.utf8''] [#:extension-packages '()] Return a service that runs @var{postgresql}, the PostgreSQL database server."
+#. type: Plain text
+#: doc/guix.texi:18843
+msgid "The following example describes a PostgreSQL service with the default configuration."
+msgstr "L'exemple suivant décrit un service PostgreSQL avec la configuration par défaut."
+
+#. type: lisp
+#: doc/guix.texi:18848
+#, no-wrap
+msgid ""
+"(service postgresql-service-type\n"
+"         (postgresql-configuration\n"
+"          (postgresql postgresql-10)))\n"
 msgstr ""
-"[#:config-file] [#:data-directory ``/var/lib/postgresql/data''] @\n"
-"[#:port 5432] [#:locale ``en_US.utf8''] [#:extension-packages '()]\n"
-"Renvoie un service qui lance @var{postgresql}, le service de bases de données PostgreSQL."
+"(service postgresql-service-type\n"
+"         (postgresql-configuration\n"
+"          (postgresql postgresql-10)))\n"
 
-#. type: deffn
-#: doc/guix.texi:15101
-msgid "The PostgreSQL daemon loads its runtime configuration from @var{config-file}, creates a database cluster with @var{locale} as the default locale, stored in @var{data-directory}.  It then listens on @var{port}."
-msgstr "Le démon PostgreSQL charge sa configuration à l'exécution depuis @var{config-file}, crée une grappe de bases de données avec @var{locale} comme paramètre de régionalisation par défaut, stockée dans @var{data-directory}.  Il écoute ensuite sur @var{port}."
+#. type: Plain text
+#: doc/guix.texi:18854
+msgid "If the services fails to start, it may be due to an incompatible cluster already present in @var{data-directory}.  Adjust it (or, if you don't need the cluster anymore, delete @var{data-directory}), then restart the service."
+msgstr "Si les services ne démarrent pas, cela peut être dû à une grappe incompatible déjà présente dans @var{data-directory}.  Ajustez-la (ou, si vous n'avez plus besoin de la grappe, supprimez @var{data-directory}) puis redémarrez le service."
+
+#. type: Plain text
+#: doc/guix.texi:18861
+msgid "Peer authentication is used by default and the @code{postgres} user account has no shell, which prevents the direct execution of @code{psql} commands as this user.  To use @code{psql}, you can temporarily log in as @code{postgres} using a shell, create a PostgreSQL superuser with the same name as one of the system users and then create the associated database."
+msgstr "L'authentification des pairs est utilisé par défaut et le compte utilisateur @code{postgres} n'a pas de shell, ce qui évite l'exécution directe de @code{psql} en tant que cet utilisateur.  Pour utiliser @code{psql}, vous pouvez vous authentifier temporairement en tant que @code{postgres} avec un shell, créer un superutilisateur PostgreSQL avec le même nom qu'un des utilisateurs du système et créer la base de données associée."
+
+#. type: example
+#: doc/guix.texi:18866
+#, no-wrap
+msgid ""
+"sudo -u postgres -s /bin/sh\n"
+"createuser --interactive\n"
+"createdb $MY_USER_LOGIN      # Replace appropriately.\n"
+msgstr ""
+"sudo -u postgres -s /bin/sh\n"
+"createuser --interactive\n"
+"createdb $MY_USER_LOGIN      # Remplacez comme vous voulez.\n"
+
+#. type: deftp
+#: doc/guix.texi:18868
+#, no-wrap
+msgid "{Data Type} postgresql-configuration"
+msgstr "{Type de données} postgresql-configuration"
+
+#. type: deftp
+#: doc/guix.texi:18871
+msgid "Data type representing the configuration for the @code{postgresql-service-type}."
+msgstr "Type de données représentant la configuration de @code{postgresql-service-type}."
+
+#. type: code{#1}
+#: doc/guix.texi:18873
+#, no-wrap
+msgid "postgresql"
+msgstr "postgresql"
+
+#. type: table
+#: doc/guix.texi:18875
+msgid "PostgreSQL package to use for the service."
+msgstr "Le paquet PostgreSQL à utiliser pour ce service."
+
+#. type: item
+#: doc/guix.texi:18876
+#, no-wrap
+msgid "@code{port} (default: @code{5432})"
+msgstr "@code{port} (par défaut : @code{5432})"
+
+#. type: table
+#: doc/guix.texi:18878
+msgid "Port on which PostgreSQL should listen."
+msgstr "Port sur lequel PostgreSQL écoutera."
+
+#. type: table
+#: doc/guix.texi:18881
+msgid "Locale to use as the default when creating the database cluster."
+msgstr "Paramètre linguistique à utiliser par défaut lors de la création de la grappe de bases de données."
+
+#. type: item
+#: doc/guix.texi:18882
+#, no-wrap
+msgid "@code{config-file} (default: @code{(postgresql-config-file)})"
+msgstr "@code{config-file} (par défaut : @code{(postgresql-config-file)})"
+
+#. type: table
+#: doc/guix.texi:18886
+msgid "The configuration file to use when running PostgreSQL.  The default behaviour uses the postgresql-config-file record with the default values for the fields."
+msgstr "Le fichier de configuration à utiliser pour lancer PostgreSQL.  Le comportement par défaut est d'utiliser l'enregistrement postgresql-config-file avec les valeurs par défaut pour les champs."
+
+#. type: item
+#: doc/guix.texi:18887
+#, no-wrap
+msgid "@code{data-directory} (default: @code{\"/var/lib/postgresql/data\"})"
+msgstr "@code{data-directory} (par défaut : @code{\"/var/lib/postgresql/data\"})"
+
+#. type: table
+#: doc/guix.texi:18889
+msgid "Directory in which to store the data."
+msgstr "Répertoire dans lequel stocker les données."
+
+#. type: item
+#: doc/guix.texi:18890
+#, no-wrap
+msgid "@code{extension-packages} (default: @code{'()})"
+msgstr "@code{extension-packages} (par défaut : @code{'()})"
 
 #. type: cindex
-#: doc/guix.texi:15102
+#: doc/guix.texi:18891
 #, no-wrap
 msgid "postgresql extension-packages"
 msgstr "postgresql extension-packages"
 
-#. type: deffn
-#: doc/guix.texi:15107
+#. type: table
+#: doc/guix.texi:18896
 msgid "Additional extensions are loaded from packages listed in @var{extension-packages}.  Extensions are available at runtime.  For instance, to create a geographic database using the @code{postgis} extension, a user can configure the postgresql-service as in this example:"
 msgstr "Des extensions supplémentaires peuvent être chargées à partir de paquets listés dans @var{extension-packages}.  Les extensions sont disponibles à l'exécution.  Par exemple, pour créer une base de données géographique avec l'extension @code{postgis}, on peut configurer postgresql-service de cette manière :"
 
 #. type: cindex
-#: doc/guix.texi:15108
+#: doc/guix.texi:18897
 #, no-wrap
 msgid "postgis"
 msgstr "postgis"
 
-#. type: example
-#: doc/guix.texi:15111
+#. type: lisp
+#: doc/guix.texi:18900
 #, no-wrap
 msgid ""
 "(use-package-modules databases geo)\n"
@@ -28340,8 +35275,8 @@ msgstr ""
 "(use-package-modules databases geo)\n"
 "\n"
 
-#. type: example
-#: doc/guix.texi:15121
+#. type: lisp
+#: doc/guix.texi:18913
 #, no-wrap
 msgid ""
 "(operating-system\n"
@@ -28351,7 +35286,10 @@ msgid ""
 "  (packages (cons* postgresql %base-packages))\n"
 "  (services\n"
 "    (cons*\n"
-"      (postgresql-service #:extension-packages (list postgis))\n"
+"      (service postgresql-service-type\n"
+"               (postgresql-configuration\n"
+"                (postgresql postgresql-10)\n"
+"                (extension-packages (list postgis))))\n"
 "      %base-services)))\n"
 msgstr ""
 "(operating-system\n"
@@ -28361,16 +35299,19 @@ msgstr ""
 "  (packages (cons* postgresql %base-packages))\n"
 "  (services\n"
 "    (cons*\n"
-"      (postgresql-service #:extension-packages (list postgis))\n"
+"      (service postgresql-service-type\n"
+"               (postgresql-configuration\n"
+"                (postgresql postgresql-10)\n"
+"                (extension-packages (list postgis))))\n"
 "      %base-services)))\n"
 
-#. type: deffn
-#: doc/guix.texi:15125
+#. type: table
+#: doc/guix.texi:18917
 msgid "Then the extension becomes visible and you can initialise an empty geographic database in this way:"
 msgstr "Ensuite l'extension devient visible et vous pouvez initialiser une base de données géographique de cette manière :"
 
 #. type: example
-#: doc/guix.texi:15132
+#: doc/guix.texi:18924
 #, no-wrap
 msgid ""
 "psql -U postgres\n"
@@ -28385,321 +35326,436 @@ msgstr ""
 "> create extension postgis;\n"
 "> create extension postgis_topology;\n"
 
-#. type: deffn
-#: doc/guix.texi:15137
+#. type: table
+#: doc/guix.texi:18929
 msgid "There is no need to add this field for contrib extensions such as hstore or dblink as they are already loadable by postgresql.  This field is only required to add extensions provided by other packages."
 msgstr "Vous n'avez pas besoin d'ajouter ce champ pour les extensions « contrib » comme hstore ou dblink comme elles sont déjà exploitables par postgresql.  Ce champ n'est requis que pour ajouter des extensions fournies par d'autres paquets."
 
+#. type: deftp
+#: doc/guix.texi:18933
+#, no-wrap
+msgid "{Data Type} postgresql-config-file"
+msgstr "{Type de données} postgresql-config-file"
+
+#. type: deftp
+#: doc/guix.texi:18939
+msgid "Data type representing the PostgreSQL configuration file.  As shown in the following example, this can be used to customize the configuration of PostgreSQL.  Note that you can use any G-expression or filename in place of this record, if you already have a configuration file you'd like to use for example."
+msgstr "Type de données représentant le fichier de configuration de PostgreSQL.  Comme montré dans l'exemple suivant, on peut l'utiliser pour personnaliser la configuration de PostgreSQL.  Remarquez que vous pouvez utiliser n'importe quelle G-expression ou nom de fichier à la place de cet enregistrement, si par exemple vous avez déjà un fichier de configuration que vous voulez utiliser."
+
+#. type: lisp
+#: doc/guix.texi:18959
+#, no-wrap
+msgid ""
+"(service postgresql-service-type\n"
+"         (postgresql-configuration\n"
+"          (config-file\n"
+"           (postgresql-config-file\n"
+"            (log-destination \"stderr\")\n"
+"            (hba-file\n"
+"             (plain-file \"pg_hba.conf\"\n"
+"                         \"\n"
+"local\tall\tall\t\t\ttrust\n"
+"host\tall\tall\t127.0.0.1/32 \tmd5\n"
+"host\tall\tall\t::1/128 \tmd5\"))\n"
+"            (extra-config\n"
+"             '((\"session_preload_libraries\"     \"'auto_explain'\")\n"
+"               (\"random_page_cost\"              \"2\")\n"
+"               (\"auto_explain.log_min_duration\" \"'100ms'\")\n"
+"               (\"work_mem\"                      \"'500MB'\")\n"
+"               (\"logging_collector\"             \"on\")\n"
+"               (\"log_directory\"                 \"'/var/log/postgresql'\")))))))\n"
+msgstr ""
+"(service postgresql-service-type\n"
+"         (postgresql-configuration\n"
+"          (config-file\n"
+"           (postgresql-config-file\n"
+"            (log-destination \"stderr\")\n"
+"            (hba-file\n"
+"             (plain-file \"pg_hba.conf\"\n"
+"                         \"\n"
+"local\tall\tall\t\t\ttrust\n"
+"host\tall\tall\t127.0.0.1/32 \tmd5\n"
+"host\tall\tall\t::1/128 \tmd5\"))\n"
+"            (extra-config\n"
+"             '((\"session_preload_libraries\"     \"'auto_explain'\")\n"
+"               (\"random_page_cost\"              \"2\")\n"
+"               (\"auto_explain.log_min_duration\" \"'100ms'\")\n"
+"               (\"work_mem\"                      \"'500MB'\")\n"
+"               (\"logging_collector\"             \"on\")\n"
+"               (\"log_directory\"                 \"'/var/log/postgresql'\")))))))\n"
+
+#. type: item
+#: doc/guix.texi:18962
+#, no-wrap
+msgid "@code{log-destination} (default: @code{\"syslog\"})"
+msgstr "@code{log-destination} (par défaut : @code{\"syslog\"})"
+
+#. type: table
+#: doc/guix.texi:18965
+msgid "The logging method to use for PostgreSQL.  Multiple values are accepted, separated by commas."
+msgstr "La méthode de journalisation de PostgreSQL.  Plusieurs valeurs sont possibles, séparées par des virgules."
+
+#. type: item
+#: doc/guix.texi:18966
+#, no-wrap
+msgid "@code{hba-file} (default: @code{%default-postgres-hba})"
+msgstr "@code{hba-file} (par défaut : @code{%default-postgres-hba})"
+
+#. type: table
+#: doc/guix.texi:18969
+msgid "Filename or G-expression for the host-based authentication configuration."
+msgstr "Nom de fichier ou G-expression pour la configuration de l'authentification par hôte."
+
+#. type: item
+#: doc/guix.texi:18970
+#, no-wrap
+msgid "@code{ident-file} (default: @code{%default-postgres-ident})"
+msgstr "@code{ident-file} (par défaut : @code{%default-postgres-ident})"
+
+#. type: table
+#: doc/guix.texi:18972
+msgid "Filename or G-expression for the user name mapping configuration."
+msgstr "Nom de fichier ou G-expression pour la configuration de la correspondance de noms d'utilisateurs."
+
+#. type: table
+#: doc/guix.texi:18977
+msgid "List of additional keys and values to include in the PostgreSQL config file.  Each entry in the list should be a list where the first element is the key, and the remaining elements are the values."
+msgstr "Liste de clés et valeurs supplémentaires à inclure dans le fichier de configuration de PostgreSQL.  Chaque entrée dans la liste devrait être une liste où le premier élément est la clé, et les autres éléments sont les valeurs."
+
+#. type: subsubheading
+#: doc/guix.texi:18981
+#, no-wrap
+msgid "MariaDB/MySQL"
+msgstr "MariaDB/MySQL"
+
 #. type: deffn
-#: doc/guix.texi:15139
+#: doc/guix.texi:18983
 #, no-wrap
 msgid "{Scheme Procedure} mysql-service [#:config (mysql-configuration)]"
 msgstr "{Procédure Scheme} mysql-service [#:config (mysql-configuration)]"
 
 #. type: deffn
-#: doc/guix.texi:15142
+#: doc/guix.texi:18986
 msgid "Return a service that runs @command{mysqld}, the MySQL or MariaDB database server."
 msgstr "Renvoie un service qui lance @command{mysqld}, le service de bases de données MySQL ou MariaDB."
 
 #. type: deffn
-#: doc/guix.texi:15145
+#: doc/guix.texi:18989
 msgid "The optional @var{config} argument specifies the configuration for @command{mysqld}, which should be a @code{<mysql-configuration>} object."
 msgstr "L'argument @var{config} facultatif spécifie la configuration de @command{mysqld}, qui devrait être un objet @code{<mysql-configuration>}."
 
 #. type: deftp
-#: doc/guix.texi:15147
+#: doc/guix.texi:18991
 #, no-wrap
 msgid "{Data Type} mysql-configuration"
 msgstr "{Type de données} mysql-configuration"
 
 #. type: deftp
-#: doc/guix.texi:15149
+#: doc/guix.texi:18993
 msgid "Data type representing the configuration of @var{mysql-service}."
 msgstr "Type de données représentant la configuration de @var{mysql-service}."
 
 #. type: item
-#: doc/guix.texi:15151
+#: doc/guix.texi:18995
 #, no-wrap
 msgid "@code{mysql} (default: @var{mariadb})"
 msgstr "@code{mysql} (par défaut : @var{mariadb})"
 
 #. type: table
-#: doc/guix.texi:15154
+#: doc/guix.texi:18998
 msgid "Package object of the MySQL database server, can be either @var{mariadb} or @var{mysql}."
 msgstr "Objet paquet du serveur de base de données MySQL, qui peut être soit @var{mariadb}, soit @var{mysql}."
 
 #. type: table
-#: doc/guix.texi:15157
+#: doc/guix.texi:19001
 msgid "For MySQL, a temporary root password will be displayed at activation time.  For MariaDB, the root password is empty."
 msgstr "Pour MySQL, un mot de passe root temporaire sera affiché à l'activation.  Pour MariaDB, le mot de passe root est vide."
 
 #. type: item
-#: doc/guix.texi:15158
+#: doc/guix.texi:19002
 #, no-wrap
 msgid "@code{port} (default: @code{3306})"
 msgstr "@code{port} (par défaut : @code{3306})"
 
 #. type: table
-#: doc/guix.texi:15160
+#: doc/guix.texi:19004
 msgid "TCP port on which the database server listens for incoming connections."
 msgstr "Port TCP sur lequel le serveur de base de données écoute les connexions entrantes."
 
+#. type: subsubheading
+#: doc/guix.texi:19007
+#, no-wrap
+msgid "Memcached"
+msgstr "Memcached"
+
 #. type: defvr
-#: doc/guix.texi:15163
+#: doc/guix.texi:19009
 #, no-wrap
 msgid "{Scheme Variable} memcached-service-type"
 msgstr "{Variable Scheme} memcached-service-type"
 
 #. type: defvr
-#: doc/guix.texi:15167
+#: doc/guix.texi:19013
 msgid "This is the service type for the @uref{https://memcached.org/, Memcached} service, which provides a distributed in memory cache.  The value for the service type is a @code{memcached-configuration} object."
 msgstr "C'est le type de service pour le service @uref{https://memcached.org/, Memcached} qui fournit un cache en mémoire distribué.  La valeur pour le type de service est un objet @code{memcached-configuration}."
 
-#. type: example
-#: doc/guix.texi:15171
+#. type: lisp
+#: doc/guix.texi:19017
 #, no-wrap
 msgid "(service memcached-service-type)\n"
 msgstr "(service memcached-service-type)\n"
 
 #. type: deftp
-#: doc/guix.texi:15173
+#: doc/guix.texi:19019
 #, no-wrap
 msgid "{Data Type} memcached-configuration"
 msgstr "{Type de données} memcached-configuration"
 
 #. type: deftp
-#: doc/guix.texi:15175
+#: doc/guix.texi:19021
 msgid "Data type representing the configuration of memcached."
 msgstr "Type de données représentant la configuration de memcached."
 
 #. type: item
-#: doc/guix.texi:15177
+#: doc/guix.texi:19023
 #, no-wrap
 msgid "@code{memcached} (default: @code{memcached})"
 msgstr "@code{memcached} (par défaut : @code{memcached})"
 
 #. type: table
-#: doc/guix.texi:15179
+#: doc/guix.texi:19025
 msgid "The Memcached package to use."
 msgstr "Le paquet Memcached à utiliser."
 
 #. type: item
-#: doc/guix.texi:15180
+#: doc/guix.texi:19026
 #, no-wrap
 msgid "@code{interfaces} (default: @code{'(\"0.0.0.0\")})"
 msgstr "@code{interfaces} (par défaut : @code{'(\"0.0.0.0\")})"
 
 #. type: table
-#: doc/guix.texi:15182
+#: doc/guix.texi:19028
 msgid "Network interfaces on which to listen."
 msgstr "Les interfaces réseaux sur lesquelles écouter."
 
 #. type: item
-#: doc/guix.texi:15183
+#: doc/guix.texi:19029
 #, no-wrap
 msgid "@code{tcp-port} (default: @code{11211})"
 msgstr "@code{tcp-port} (par défaut : @code{11211})"
 
 #. type: table
-#: doc/guix.texi:15185
+#: doc/guix.texi:19031
 msgid "Port on which to accept connections on,"
-msgstr "Port sur lequel accepter les connexions."
+msgstr "Port sur lequel accepter les connexions,"
 
 #. type: item
-#: doc/guix.texi:15186
+#: doc/guix.texi:19032
 #, no-wrap
 msgid "@code{udp-port} (default: @code{11211})"
 msgstr "@code{udp-port} (par défaut : @code{11211})"
 
 #. type: table
-#: doc/guix.texi:15189
+#: doc/guix.texi:19035
 msgid "Port on which to accept UDP connections on, a value of 0 will disable listening on a UDP socket."
 msgstr "Port sur lequel accepter les connexions UDP, une valeur de 0 désactive l'écoute en UDP."
 
 #. type: item
-#: doc/guix.texi:15190
+#: doc/guix.texi:19036
 #, no-wrap
 msgid "@code{additional-options} (default: @code{'()})"
 msgstr "@code{additional-options} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:15192
+#: doc/guix.texi:19038
 msgid "Additional command line options to pass to @code{memcached}."
 msgstr "Options de la ligne de commande supplémentaires à passer à @code{memcached}."
 
+#. type: subsubheading
+#: doc/guix.texi:19041
+#, no-wrap
+msgid "MongoDB"
+msgstr "MongoDB"
+
 #. type: defvr
-#: doc/guix.texi:15195
+#: doc/guix.texi:19043
 #, no-wrap
 msgid "{Scheme Variable} mongodb-service-type"
 msgstr "{Variable Scheme} mongodb-service-type"
 
 #. type: defvr
-#: doc/guix.texi:15198
+#: doc/guix.texi:19046
 msgid "This is the service type for @uref{https://www.mongodb.com/, MongoDB}.  The value for the service type is a @code{mongodb-configuration} object."
 msgstr "C'est le type de service pour @uref{https://www.mongodb.com/, MongoDB}.  La valeur de ce service est un objet @code{mongodb-configuration}."
 
-#. type: example
-#: doc/guix.texi:15202
+#. type: lisp
+#: doc/guix.texi:19050
 #, no-wrap
 msgid "(service mongodb-service-type)\n"
 msgstr "(service mongodb-service-type)\n"
 
 #. type: deftp
-#: doc/guix.texi:15204
+#: doc/guix.texi:19052
 #, no-wrap
 msgid "{Data Type} mongodb-configuration"
 msgstr "{Type de données} mongodb-configuration"
 
 #. type: deftp
-#: doc/guix.texi:15206
+#: doc/guix.texi:19054
 msgid "Data type representing the configuration of mongodb."
 msgstr "Type de données représentant la configuration de mongodb."
 
 #. type: item
-#: doc/guix.texi:15208
+#: doc/guix.texi:19056
 #, no-wrap
 msgid "@code{mongodb} (default: @code{mongodb})"
 msgstr "@code{mongodb} (par défaut : @code{mongodb})"
 
 #. type: table
-#: doc/guix.texi:15210
+#: doc/guix.texi:19058
 msgid "The MongoDB package to use."
 msgstr "Le paquet MongoDB à utiliser."
 
 #. type: item
-#: doc/guix.texi:15211
+#: doc/guix.texi:19059
 #, no-wrap
 msgid "@code{config-file} (default: @code{%default-mongodb-configuration-file})"
 msgstr "@code{config-file} (par défaut : @code{%default-mongodb-configuration-file})"
 
 #. type: table
-#: doc/guix.texi:15213
+#: doc/guix.texi:19061
 msgid "The configuration file for MongoDB."
 msgstr "Le fichier de configuration pour MongoDB."
 
 #. type: item
-#: doc/guix.texi:15214
+#: doc/guix.texi:19062
 #, no-wrap
 msgid "@code{data-directory} (default: @code{\"/var/lib/mongodb\"})"
 msgstr "@code{data-directory} (par défaut : @code{\"/var/lib/mongodb\"})"
 
 #. type: table
-#: doc/guix.texi:15218
+#: doc/guix.texi:19066
 msgid "This value is used to create the directory, so that it exists and is owned by the mongodb user.  It should match the data-directory which MongoDB is configured to use through the configuration file."
 msgstr "Cette valeur est utilisée pour créer le répertoire, pour qu'il existe et appartienne à l'utilisateur mongodb.  Il devrait correspondre au data-directory que MongoDB est configuré pour utiliser dans son fichier de configuration."
 
+#. type: subsubheading
+#: doc/guix.texi:19069
+#, no-wrap
+msgid "Redis"
+msgstr "Redis"
+
 #. type: defvr
-#: doc/guix.texi:15221
+#: doc/guix.texi:19071
 #, no-wrap
 msgid "{Scheme Variable} redis-service-type"
 msgstr "{Variable Scheme} redis-service-type"
 
 #. type: defvr
-#: doc/guix.texi:15224
+#: doc/guix.texi:19074
 msgid "This is the service type for the @uref{https://redis.io/, Redis} key/value store, whose value is a @code{redis-configuration} object."
 msgstr "C'est le type de service pour la base clef-valeur @uref{https://redis.io/, Redis} dont la valeur est un objet @code{redis-configuration}."
 
 #. type: deftp
-#: doc/guix.texi:15226
+#: doc/guix.texi:19076
 #, no-wrap
 msgid "{Data Type} redis-configuration"
 msgstr "{Type de données} redis-configuration"
 
 #. type: deftp
-#: doc/guix.texi:15228
+#: doc/guix.texi:19078
 msgid "Data type representing the configuration of redis."
 msgstr "Type de données représentant la configuration de redis."
 
 #. type: item
-#: doc/guix.texi:15230
+#: doc/guix.texi:19080
 #, no-wrap
 msgid "@code{redis} (default: @code{redis})"
 msgstr "@code{redis} (par défaut : @code{redis})"
 
 #. type: table
-#: doc/guix.texi:15232
+#: doc/guix.texi:19082
 msgid "The Redis package to use."
 msgstr "Le paquet Redis à utiliser."
 
 #. type: item
-#: doc/guix.texi:15233
+#: doc/guix.texi:19083
 #, no-wrap
 msgid "@code{bind} (default: @code{\"127.0.0.1\"})"
 msgstr "@code{bind} (par défaut : @code{\"127.0.0.1\"})"
 
 #. type: table
-#: doc/guix.texi:15235
+#: doc/guix.texi:19085
 msgid "Network interface on which to listen."
 msgstr "Interface réseau sur laquelle écouter."
 
 #. type: item
-#: doc/guix.texi:15236
+#: doc/guix.texi:19086
 #, no-wrap
 msgid "@code{port} (default: @code{6379})"
 msgstr "@code{port} (par défaut : @code{6379})"
 
 #. type: table
-#: doc/guix.texi:15239
+#: doc/guix.texi:19089
 msgid "Port on which to accept connections on, a value of 0 will disable listening on a TCP socket."
 msgstr "Port sur lequel accepter les connexions, une valeur de 0 désactive l'écoute sur un socket TCP."
 
 #. type: item
-#: doc/guix.texi:15240
+#: doc/guix.texi:19090
 #, no-wrap
 msgid "@code{working-directory} (default: @code{\"/var/lib/redis\"})"
 msgstr "@code{working-directory} (par défaut : @code{\"/var/lib/redis\"})"
 
 #. type: table
-#: doc/guix.texi:15242
+#: doc/guix.texi:19092
 msgid "Directory in which to store the database and related files."
 msgstr "Répertoire dans lequel stocker la base de données et les fichiers liés."
 
 #. type: cindex
-#: doc/guix.texi:15248
+#: doc/guix.texi:19098
 #, no-wrap
 msgid "mail"
 msgstr "courriel"
 
-#. type: code{#1}
-#: doc/guix.texi:15249 doc/guix.texi:19449
+#. type: cindex
+#: doc/guix.texi:19099
 #, no-wrap
 msgid "email"
 msgstr "email"
 
 #. type: Plain text
-#: doc/guix.texi:15254
+#: doc/guix.texi:19104
 msgid "The @code{(gnu services mail)} module provides Guix service definitions for email services: IMAP, POP3, and LMTP servers, as well as mail transport agents (MTAs).  Lots of acronyms! These services are detailed in the subsections below."
 msgstr "Le module @code{(gnu services mail)} fournit des définitions de services Guix pour les services de courriel : des serveurs IMAP, POP3 et LMTP ainsi que des MTA (Mail Transport Agent).  Que d'acronymes !  Ces services sont détaillés dans les sous-sections ci-dessous."
 
 #. type: subsubheading
-#: doc/guix.texi:15255
+#: doc/guix.texi:19105
 #, no-wrap
 msgid "Dovecot Service"
 msgstr "Service Dovecot"
 
 #. type: deffn
-#: doc/guix.texi:15257
+#: doc/guix.texi:19107
 #, no-wrap
 msgid "{Scheme Procedure} dovecot-service [#:config (dovecot-configuration)]"
 msgstr "{Procédure Scheme} dovecot-service [#:config (dovecot-configuration)]"
 
 #. type: deffn
-#: doc/guix.texi:15259
+#: doc/guix.texi:19109
 msgid "Return a service that runs the Dovecot IMAP/POP3/LMTP mail server."
 msgstr "Renvoie un service qui lance le serveur de courriel IMAP/POP3/LMTP Dovecot."
 
 #. type: Plain text
-#: doc/guix.texi:15269
+#: doc/guix.texi:19119
 msgid "By default, Dovecot does not need much configuration; the default configuration object created by @code{(dovecot-configuration)} will suffice if your mail is delivered to @code{~/Maildir}.  A self-signed certificate will be generated for TLS-protected connections, though Dovecot will also listen on cleartext ports by default.  There are a number of options, though, which mail administrators might need to change, and as is the case with other services, Guix allows the system administrator to specify these parameters via a uniform Scheme interface."
 msgstr "Par défaut, Dovecot n'a pas besoin de beaucoup de configuration ; l'objet de configuration par défaut créé par @code{(dovecot-configuration)} suffira si votre courriel est livré dans @code{~/Maildir}.  Un certificat auto-signé sera généré pour les connexions TLS, bien que Dovecot écoutera aussi sur les ports non chiffrés par défaut.  Il y a quelques options cependant, que les administrateurs peuvent avoir besoin de changer et comme c'est le cas avec d'autres services, Guix permet aux administrateurs systèmes de spécifier ces paramètres via une interface Scheme unifiée."
 
 #. type: Plain text
-#: doc/guix.texi:15272
+#: doc/guix.texi:19122
 msgid "For example, to specify that mail is located at @code{maildir~/.mail}, one would instantiate the Dovecot service like this:"
 msgstr "Par exemple, pour spécifier que les courriels se trouvent dans @code{maildir~/.mail}, on peut instancier Dovecot de cette manière :"
 
-#. type: example
-#: doc/guix.texi:15277
+#. type: lisp
+#: doc/guix.texi:19127
 #, no-wrap
 msgid ""
 "(dovecot-service #:config\n"
@@ -28711,2379 +35767,2379 @@ msgstr ""
 "                  (mail-location \"maildir:~/.mail\")))\n"
 
 #. type: Plain text
-#: doc/guix.texi:15285
+#: doc/guix.texi:19135
 msgid "The available configuration parameters follow.  Each parameter definition is preceded by its type; for example, @samp{string-list foo} indicates that the @code{foo} parameter should be specified as a list of strings.  There is also a way to specify the configuration as a string, if you have an old @code{dovecot.conf} file that you want to port over from some other system; see the end for more details."
 msgstr "Les paramètres de configuration disponibles sont les suivants.  Chaque définition des paramètres est précédé par son type ; par exemple, @samp{string-list foo} indique que le paramètre @code{foo} devrait être spécifié comme une liste de chaînes de caractères.  Il y a aussi une manière de spécifier la configuration comme une chaîne de caractères, si vous avez un vieux fichier @code{dovecot.conf} que vous voulez porter depuis un autre système ; voir la fin pour plus de détails."
 
 #. type: Plain text
-#: doc/guix.texi:15295
+#: doc/guix.texi:19145
 msgid "Available @code{dovecot-configuration} fields are:"
 msgstr "Les champs de @code{dovecot-configuration} disponibles sont :"
 
 #. type: deftypevr
-#: doc/guix.texi:15296
+#: doc/guix.texi:19146
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} package dovecot"
 msgstr "{paramètre de @code{dovecot-configuration}} package dovecot"
 
 #. type: deftypevr
-#: doc/guix.texi:15298 doc/guix.texi:16604
+#: doc/guix.texi:19148 doc/guix.texi:20454
 msgid "The dovecot package."
 msgstr "Le paquet dovecot."
 
 #. type: deftypevr
-#: doc/guix.texi:15300
+#: doc/guix.texi:19150
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} comma-separated-string-list listen"
 msgstr "{paramètre de @code{dovecot-configuration}} comma-separated-string-list listen"
 
 #. type: deftypevr
-#: doc/guix.texi:15306
+#: doc/guix.texi:19156
 msgid "A list of IPs or hosts where to listen for connections.  @samp{*} listens on all IPv4 interfaces, @samp{::} listens on all IPv6 interfaces.  If you want to specify non-default ports or anything more complex, customize the address and port fields of the @samp{inet-listener} of the specific services you are interested in."
 msgstr "Une liste d'IP ou d'hôtes à écouter pour les connexions.  @samp{*} écoute sur toutes les interfaces IPv4, @samp{::} écoute sur toutes les interfaces IPv6.  Si vous voulez spécifier des ports différents de la valeur par défaut ou quelque chose de plus complexe, complétez les champs d'adresse et de port de @samp{inet-listener} des services spécifiques qui vous intéressent."
 
 #. type: deftypevr
-#: doc/guix.texi:15308
+#: doc/guix.texi:19158
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} protocol-configuration-list protocols"
 msgstr "{paramètre de @code{dovecot-configuration}} protocol-configuration-list protocols"
 
 #. type: deftypevr
-#: doc/guix.texi:15311
+#: doc/guix.texi:19161
 msgid "List of protocols we want to serve.  Available protocols include @samp{imap}, @samp{pop3}, and @samp{lmtp}."
 msgstr "Liste des protocoles que vous voulez servir.  Les protocoles disponibles comprennent @samp{imap}, @samp{pop3} et @samp{lmtp}."
 
 #. type: deftypevr
-#: doc/guix.texi:15313
+#: doc/guix.texi:19163
 msgid "Available @code{protocol-configuration} fields are:"
 msgstr "Les champs @code{protocol-configuration} disponibles sont :"
 
 #. type: deftypevr
-#: doc/guix.texi:15314
+#: doc/guix.texi:19164
 #, no-wrap
 msgid "{@code{protocol-configuration} parameter} string name"
 msgstr "{paramètre de @code{protocol-configuration}} string name"
 
 #. type: deftypevr
-#: doc/guix.texi:15316
+#: doc/guix.texi:19166
 msgid "The name of the protocol."
 msgstr "Le nom du protocole."
 
 #. type: deftypevr
-#: doc/guix.texi:15318
+#: doc/guix.texi:19168
 #, no-wrap
 msgid "{@code{protocol-configuration} parameter} string auth-socket-path"
 msgstr "{paramètre de @code{protocol-configuration}} string auth-socket-path"
 
 #. type: deftypevr
-#: doc/guix.texi:15322
+#: doc/guix.texi:19172
 msgid "UNIX socket path to the master authentication server to find users.  This is used by imap (for shared users) and lda.  It defaults to @samp{\"/var/run/dovecot/auth-userdb\"}."
 msgstr "Le chemin d'un socket UNIX vers le serveur d'authentification maître pour trouver les utilisateurs.  C'est utilisé par imap (pour les utilisateurs partagés) et lda.  Sa valeur par défaut est @samp{\"/var/run/dovecot/auth-userdb\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:15324
+#: doc/guix.texi:19174
 #, no-wrap
 msgid "{@code{protocol-configuration} parameter} space-separated-string-list mail-plugins"
 msgstr "{paramètre de @code{protocol-configuration}} space-separated-string-list mail-plugins"
 
 #. type: deftypevr
-#: doc/guix.texi:15326
+#: doc/guix.texi:19176
 msgid "Space separated list of plugins to load."
 msgstr "Liste de greffons à charger séparés par des espaces."
 
 #. type: deftypevr
-#: doc/guix.texi:15328
+#: doc/guix.texi:19178
 #, no-wrap
 msgid "{@code{protocol-configuration} parameter} non-negative-integer mail-max-userip-connections"
 msgstr "{paramètre de @code{protocol-configuration}} non-negative-integer mail-max-userip-connections"
 
 #. type: deftypevr
-#: doc/guix.texi:15332
+#: doc/guix.texi:19182
 msgid "Maximum number of IMAP connections allowed for a user from each IP address.  NOTE: The username is compared case-sensitively.  Defaults to @samp{10}."
 msgstr "Nombre maximum de connexions IMAP permises pour un utilisateur depuis chaque adresse IP.  Remarque : la comparaison du nom d'utilisateur est sensible à la casse.  Par défaut @samp{10}."
 
 #. type: deftypevr
-#: doc/guix.texi:15336
+#: doc/guix.texi:19186
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} service-configuration-list services"
 msgstr "{paramètre de @code{dovecot-configuration}} service-configuration-list services"
 
 #. type: deftypevr
-#: doc/guix.texi:15340
+#: doc/guix.texi:19190
 msgid "List of services to enable.  Available services include @samp{imap}, @samp{imap-login}, @samp{pop3}, @samp{pop3-login}, @samp{auth}, and @samp{lmtp}."
 msgstr "Liste des services à activer.  Les services disponibles comprennent @samp{imap}, @samp{imap-login}, @samp{pop3}, @samp{pop3-login}, @samp{auth} et @samp{lmtp}."
 
 #. type: deftypevr
-#: doc/guix.texi:15342
+#: doc/guix.texi:19192
 msgid "Available @code{service-configuration} fields are:"
 msgstr "Les champs de @code{service-configuration} disponibles sont :"
 
 #. type: deftypevr
-#: doc/guix.texi:15343
+#: doc/guix.texi:19193
 #, no-wrap
 msgid "{@code{service-configuration} parameter} string kind"
 msgstr "{paramètre de @code{service-configuration}} string kind"
 
 #. type: deftypevr
-#: doc/guix.texi:15348
+#: doc/guix.texi:19198
 msgid "The service kind.  Valid values include @code{director}, @code{imap-login}, @code{pop3-login}, @code{lmtp}, @code{imap}, @code{pop3}, @code{auth}, @code{auth-worker}, @code{dict}, @code{tcpwrap}, @code{quota-warning}, or anything else."
 msgstr "Le type de service.  Les valeurs valides comprennent @code{director}, @code{imap-login}, @code{pop3-login}, @code{lmtp}, @code{imap}, @code{pop3}, @code{auth}, @code{auth-worker}, @code{dict}, @code{tcpwrap}, @code{quota-warning} ou n'importe quoi d'autre."
 
 #. type: deftypevr
-#: doc/guix.texi:15350
+#: doc/guix.texi:19200
 #, no-wrap
 msgid "{@code{service-configuration} parameter} listener-configuration-list listeners"
 msgstr "{paramètre de @code{service-configuration}} listener-configuration-list listeners"
 
 #. type: deftypevr
-#: doc/guix.texi:15355
+#: doc/guix.texi:19205
 msgid "Listeners for the service.  A listener is either a @code{unix-listener-configuration}, a @code{fifo-listener-configuration}, or an @code{inet-listener-configuration}.  Defaults to @samp{()}."
 msgstr "Les auditeurs du service.  Un auditeur est soit un @code{unix-listener-configuration}, soit un @code{fifo-listener-configuration}, soit un @code{inet-listener-configuration}.  La valeur par défaut est @samp{()}."
 
 #. type: deftypevr
-#: doc/guix.texi:15357
+#: doc/guix.texi:19207
 msgid "Available @code{unix-listener-configuration} fields are:"
 msgstr "Les champs de @code{unix-listener-configuration} disponibles sont :"
 
 #. type: deftypevr
-#: doc/guix.texi:15358
+#: doc/guix.texi:19208
 #, no-wrap
 msgid "{@code{unix-listener-configuration} parameter} string path"
 msgstr "{paramètre de @code{unix-listener-configuration}} string path"
 
 #. type: deftypevr
-#: doc/guix.texi:15361 doc/guix.texi:15384
+#: doc/guix.texi:19211 doc/guix.texi:19234
 msgid "Path to the file, relative to @code{base-dir} field.  This is also used as the section name."
 msgstr "Chemin vers le fichier, relativement au champ @code{base-dir}.  C'est aussi utilisé comme nom de section."
 
 #. type: deftypevr
-#: doc/guix.texi:15363
+#: doc/guix.texi:19213
 #, no-wrap
 msgid "{@code{unix-listener-configuration} parameter} string mode"
 msgstr "{paramètre de @code{unix-listener-configuration}} string mode"
 
 #. type: deftypevr
-#: doc/guix.texi:15366 doc/guix.texi:15389
+#: doc/guix.texi:19216 doc/guix.texi:19239
 msgid "The access mode for the socket.  Defaults to @samp{\"0600\"}."
 msgstr "Le mode d'accès pour le socket.  La valeur par défaut est @samp{\"0600\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:15368
+#: doc/guix.texi:19218
 #, no-wrap
 msgid "{@code{unix-listener-configuration} parameter} string user"
 msgstr "{paramètre de @code{unix-listener-configuration}} string user"
 
 #. type: deftypevr
-#: doc/guix.texi:15371 doc/guix.texi:15394
+#: doc/guix.texi:19221 doc/guix.texi:19244
 msgid "The user to own the socket.  Defaults to @samp{\"\"}."
 msgstr "L'utilisateur à qui appartient le socket.  La valeur par défaut est @samp{\"\"}"
 
 #. type: deftypevr
-#: doc/guix.texi:15373
+#: doc/guix.texi:19223
 #, no-wrap
 msgid "{@code{unix-listener-configuration} parameter} string group"
 msgstr "{paramètre de @code{unix-listener-configuration}} string group"
 
 #. type: deftypevr
-#: doc/guix.texi:15376 doc/guix.texi:15399
+#: doc/guix.texi:19226 doc/guix.texi:19249
 msgid "The group to own the socket.  Defaults to @samp{\"\"}."
 msgstr "Le groupe auquel appartient le socket.  La valeur par défaut est @samp{\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:15380
+#: doc/guix.texi:19230
 msgid "Available @code{fifo-listener-configuration} fields are:"
 msgstr "Les champs de @code{fifo-listener-configuration} disponibles sont :"
 
 #. type: deftypevr
-#: doc/guix.texi:15381
+#: doc/guix.texi:19231
 #, no-wrap
 msgid "{@code{fifo-listener-configuration} parameter} string path"
 msgstr "{paramètre de @code{fifo-listener-configuration}} string path"
 
 #. type: deftypevr
-#: doc/guix.texi:15386
+#: doc/guix.texi:19236
 #, no-wrap
 msgid "{@code{fifo-listener-configuration} parameter} string mode"
 msgstr "{paramètre de @code{fifo-listener-configuration}} string mode"
 
 #. type: deftypevr
-#: doc/guix.texi:15391
+#: doc/guix.texi:19241
 #, no-wrap
 msgid "{@code{fifo-listener-configuration} parameter} string user"
 msgstr "{paramètre de @code{fifo-listener-configuration}} string user"
 
 #. type: deftypevr
-#: doc/guix.texi:15396
+#: doc/guix.texi:19246
 #, no-wrap
 msgid "{@code{fifo-listener-configuration} parameter} string group"
 msgstr "{paramètre de @code{fifo-listener-configuration}} string group"
 
 #. type: deftypevr
-#: doc/guix.texi:15403
+#: doc/guix.texi:19253
 msgid "Available @code{inet-listener-configuration} fields are:"
 msgstr "Les champs de @code{inet-listener-configuration} disponibles sont :"
 
 #. type: deftypevr
-#: doc/guix.texi:15404
+#: doc/guix.texi:19254
 #, no-wrap
 msgid "{@code{inet-listener-configuration} parameter} string protocol"
 msgstr "{paramètre de @code{inet-listener-configuration}} string protocol"
 
 #. type: deftypevr
-#: doc/guix.texi:15406
+#: doc/guix.texi:19256
 msgid "The protocol to listen for."
 msgstr "Le protocole à écouter."
 
 #. type: deftypevr
-#: doc/guix.texi:15408
+#: doc/guix.texi:19258
 #, no-wrap
 msgid "{@code{inet-listener-configuration} parameter} string address"
 msgstr "{paramètre de @code{inet-listener-configuration}} string address"
 
 #. type: deftypevr
-#: doc/guix.texi:15411
+#: doc/guix.texi:19261
 msgid "The address on which to listen, or empty for all addresses.  Defaults to @samp{\"\"}."
 msgstr "L'adresse sur laquelle écouter, ou la chaîne vide pour toutes les adresses.  La valeur par défaut est @samp{\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:15413
+#: doc/guix.texi:19263
 #, no-wrap
 msgid "{@code{inet-listener-configuration} parameter} non-negative-integer port"
 msgstr "{paramètre de @code{inet-listener-configuration}} non-negative-integer port"
 
 #. type: deftypevr
-#: doc/guix.texi:15415
+#: doc/guix.texi:19265
 msgid "The port on which to listen."
 msgstr "Le port sur lequel écouter."
 
 #. type: deftypevr
-#: doc/guix.texi:15417
+#: doc/guix.texi:19267
 #, no-wrap
 msgid "{@code{inet-listener-configuration} parameter} boolean ssl?"
 msgstr "{paramètre de @code{inet-listener-configuration}} boolean ssl?"
 
 #. type: deftypevr
-#: doc/guix.texi:15421
+#: doc/guix.texi:19271
 msgid "Whether to use SSL for this service; @samp{yes}, @samp{no}, or @samp{required}.  Defaults to @samp{#t}."
 msgstr "S'il faut utiliser SSL pour ce service ; @samp{yes}, @samp{no} ou @samp{required}.  La valeur par défaut est @samp{#t}."
 
 #. type: deftypevr
-#: doc/guix.texi:15425
+#: doc/guix.texi:19275
 #, no-wrap
 msgid "{@code{service-configuration} parameter} non-negative-integer client-limit"
 msgstr "{paramètre de @code{service-configuration}} non-negative-integer client-limit"
 
 #. type: deftypevr
-#: doc/guix.texi:15430
+#: doc/guix.texi:19280
 msgid "Maximum number of simultaneous client connections per process.  Once this number of connections is received, the next incoming connection will prompt Dovecot to spawn another process.  If set to 0, @code{default-client-limit} is used instead."
 msgstr "Connexions de clients simultanées maximum par processus.  Une fois ce nombre de connections atteint, la connexion suivante fera en sorte que Dovecot démarre un autre processus.  Si la valeur est 0, @code{default-client-limit} est utilisé à la place."
 
 #. type: deftypevr
-#: doc/guix.texi:15435
+#: doc/guix.texi:19285
 #, no-wrap
 msgid "{@code{service-configuration} parameter} non-negative-integer service-count"
 msgstr "{paramètre de @code{service-configuration}} non-negative-integer service-count"
 
 #. type: deftypevr
-#: doc/guix.texi:15440
+#: doc/guix.texi:19290
 msgid "Number of connections to handle before starting a new process.  Typically the only useful values are 0 (unlimited) or 1.  1 is more secure, but 0 is faster.  <doc/wiki/LoginProcess.txt>.  Defaults to @samp{1}."
 msgstr "Nombre de connexions à gérer avant de démarrer un nouveau processus.  Typiquement les valeurs utiles sont 0 (sans limite) ou 1.  1 est plus sûr, mais 0 est plus rapide.  <doc/wiki/LoginProcess.txt>.  La valeur par défaut est @samp{1}."
 
 #. type: deftypevr
-#: doc/guix.texi:15443
+#: doc/guix.texi:19293
 #, no-wrap
 msgid "{@code{service-configuration} parameter} non-negative-integer process-limit"
 msgstr "{paramètre de @code{service-configuration}} non-negative-integer process-limit"
 
 #. type: deftypevr
-#: doc/guix.texi:15446
+#: doc/guix.texi:19296
 msgid "Maximum number of processes that can exist for this service.  If set to 0, @code{default-process-limit} is used instead."
 msgstr "Nombre de processus maximum qui peut exister pour ce service.  Si la valeur est 0, @code{default-process-limit} est utilisé à la place."
 
 #. type: deftypevr
-#: doc/guix.texi:15451
+#: doc/guix.texi:19301
 #, no-wrap
 msgid "{@code{service-configuration} parameter} non-negative-integer process-min-avail"
 msgstr "{paramètre de @code{service-configuration}} non-negative-integer process-min-avail"
 
 #. type: deftypevr
-#: doc/guix.texi:15454
+#: doc/guix.texi:19304
 msgid "Number of processes to always keep waiting for more connections.  Defaults to @samp{0}."
 msgstr "Nombre de processus à toujours garder en attente de connexions.  La valeur par défaut est @samp{0}."
 
 #. type: deftypevr
-#: doc/guix.texi:15456
+#: doc/guix.texi:19306
 #, no-wrap
 msgid "{@code{service-configuration} parameter} non-negative-integer vsz-limit"
 msgstr "{paramètre de @code{service-configuration}} non-negative-integer vsz-limit"
 
 #. type: deftypevr
-#: doc/guix.texi:15460
+#: doc/guix.texi:19310
 msgid "If you set @samp{service-count 0}, you probably need to grow this.  Defaults to @samp{256000000}."
 msgstr "Si vous mettez @samp{service-count 0}, vous avez sans doute besoin d'augmenter ce paramètre.  La valeur par défaut est @samp{256000000}."
 
 #. type: deftypevr
-#: doc/guix.texi:15464
+#: doc/guix.texi:19314
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} dict-configuration dict"
 msgstr "{paramètre de @code{dovecot-configuration}} dict-configuration dict"
 
 #. type: deftypevr
-#: doc/guix.texi:15467
+#: doc/guix.texi:19317
 msgid "Dict configuration, as created by the @code{dict-configuration} constructor."
 msgstr "Configuration du dictionnaire, créé par le constructeur @code{dict-configuration}."
 
 #. type: deftypevr
-#: doc/guix.texi:15469
+#: doc/guix.texi:19319
 msgid "Available @code{dict-configuration} fields are:"
 msgstr "Les champs de @code{dict-configuration} disponibles sont :"
 
 #. type: deftypevr
-#: doc/guix.texi:15470
+#: doc/guix.texi:19320
 #, no-wrap
 msgid "{@code{dict-configuration} parameter} free-form-fields entries"
 msgstr "{paramètre de @code{dict-configuration}} free-form-fields entries"
 
 #. type: deftypevr
-#: doc/guix.texi:15473
+#: doc/guix.texi:19323
 msgid "A list of key-value pairs that this dict should hold.  Defaults to @samp{()}."
 msgstr "Une liste de paires de clefs-valeurs que ce dictionnaire contient.  La valeur par défaut est @samp{()}."
 
 #. type: deftypevr
-#: doc/guix.texi:15477
+#: doc/guix.texi:19327
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} passdb-configuration-list passdbs"
 msgstr "{paramètre de @code{dovecot-configuration}} passdb-configuration-list passdbs"
 
 #. type: deftypevr
-#: doc/guix.texi:15480
+#: doc/guix.texi:19330
 msgid "A list of passdb configurations, each one created by the @code{passdb-configuration} constructor."
 msgstr "Une liste de configurations passdb, chacune créée par le constructeur @code{passdb-configuration}."
 
 #. type: deftypevr
-#: doc/guix.texi:15482
+#: doc/guix.texi:19332
 msgid "Available @code{passdb-configuration} fields are:"
 msgstr "Les champs de @code{passdb-configuration} disponibles sont :"
 
 #. type: deftypevr
-#: doc/guix.texi:15483
+#: doc/guix.texi:19333
 #, no-wrap
 msgid "{@code{passdb-configuration} parameter} string driver"
 msgstr "{paramètre de @code{passdb-configuration}} string driver"
 
 #. type: deftypevr
-#: doc/guix.texi:15488
+#: doc/guix.texi:19338
 msgid "The driver that the passdb should use.  Valid values include @samp{pam}, @samp{passwd}, @samp{shadow}, @samp{bsdauth}, and @samp{static}.  Defaults to @samp{\"pam\"}."
 msgstr "Le pilote à utiliser par passdb.  Les valeur valides comprennent @samp{pam}, @samp{passwd}, @samp{shadow}, @samp{bsdauth} et @samp{static}.  La valeur par défaut est @samp{\"pam\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:15490
+#: doc/guix.texi:19340
 #, no-wrap
 msgid "{@code{passdb-configuration} parameter} space-separated-string-list args"
 msgstr "{paramètre de @code{passdb-configuration}} space-separated-string-list args"
 
 #. type: deftypevr
-#: doc/guix.texi:15493
+#: doc/guix.texi:19343
 msgid "Space separated list of arguments to the passdb driver.  Defaults to @samp{\"\"}."
 msgstr "Liste d'arguments pour le pilote passdb séparés par des espaces.  La valeur par défaut est @samp{\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:15497
+#: doc/guix.texi:19347
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} userdb-configuration-list userdbs"
 msgstr "{paramètre de @code{dovecot-configuration}} userdb-configuration-list userdbs"
 
 #. type: deftypevr
-#: doc/guix.texi:15500
+#: doc/guix.texi:19350
 msgid "List of userdb configurations, each one created by the @code{userdb-configuration} constructor."
 msgstr "Liste des configurations userdb, chacune créée par le constructeur @code{userdb-configuration}."
 
 #. type: deftypevr
-#: doc/guix.texi:15502
+#: doc/guix.texi:19352
 msgid "Available @code{userdb-configuration} fields are:"
 msgstr "Les champs de @code{userdb-configuration} disponibles sont :"
 
 #. type: deftypevr
-#: doc/guix.texi:15503
+#: doc/guix.texi:19353
 #, no-wrap
 msgid "{@code{userdb-configuration} parameter} string driver"
 msgstr "{paramètre de @code{userdb-configuration}} string driver"
 
 #. type: deftypevr
-#: doc/guix.texi:15507
+#: doc/guix.texi:19357
 msgid "The driver that the userdb should use.  Valid values include @samp{passwd} and @samp{static}.  Defaults to @samp{\"passwd\"}."
 msgstr "Le pilote que userdb devrait utiliser.  Les valeurs valides comprennent @samp{passwd} et @samp{static}.  La valeur par défaut est @samp{\"passwd\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:15509
+#: doc/guix.texi:19359
 #, no-wrap
 msgid "{@code{userdb-configuration} parameter} space-separated-string-list args"
 msgstr "{paramètre de @code{userdb-configuration}} space-separated-string-list args"
 
 #. type: deftypevr
-#: doc/guix.texi:15512
+#: doc/guix.texi:19362
 msgid "Space separated list of arguments to the userdb driver.  Defaults to @samp{\"\"}."
 msgstr "Liste des arguments du pilote userdb séparés par des espaces.  La valeur par défaut est @samp{\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:15514
+#: doc/guix.texi:19364
 #, no-wrap
 msgid "{@code{userdb-configuration} parameter} free-form-args override-fields"
 msgstr "{paramètre de @code{userdb-configuration}} free-form-args override-fields"
 
 #. type: deftypevr
-#: doc/guix.texi:15517
+#: doc/guix.texi:19367
 msgid "Override fields from passwd.  Defaults to @samp{()}."
 msgstr "Remplace des champs de passwd.  La valeur par défaut est @samp{()}."
 
 #. type: deftypevr
-#: doc/guix.texi:15521
+#: doc/guix.texi:19371
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} plugin-configuration plugin-configuration"
 msgstr "{paramètre de @code{dovecot-configuration}} plugin-configuration plugin-configuration"
 
 #. type: deftypevr
-#: doc/guix.texi:15524
+#: doc/guix.texi:19374
 msgid "Plug-in configuration, created by the @code{plugin-configuration} constructor."
 msgstr "Configuration du greffon, créé par le constructeur @code{plugin-configuration}."
 
 #. type: deftypevr
-#: doc/guix.texi:15526
+#: doc/guix.texi:19376
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} list-of-namespace-configuration namespaces"
 msgstr "{paramètre de @code{dovecot-configuration}} list-of-namespace-configuration namespaces"
 
 #. type: deftypevr
-#: doc/guix.texi:15529
+#: doc/guix.texi:19379
 msgid "List of namespaces.  Each item in the list is created by the @code{namespace-configuration} constructor."
 msgstr "Liste d'espaces de noms.  Chaque élément de la liste est créé par le constructeur @code{namespace-configuration}."
 
 #. type: deftypevr
-#: doc/guix.texi:15531
+#: doc/guix.texi:19381
 msgid "Available @code{namespace-configuration} fields are:"
 msgstr "Les champs de @code{namespace-configuration} disponibles sont :"
 
 #. type: deftypevr
-#: doc/guix.texi:15532
+#: doc/guix.texi:19382
 #, no-wrap
 msgid "{@code{namespace-configuration} parameter} string name"
 msgstr "{paramètre de @code{namespace-configuration}} string name"
 
 #. type: deftypevr
-#: doc/guix.texi:15534
+#: doc/guix.texi:19384
 msgid "Name for this namespace."
 msgstr "Nom de cet espace de nom."
 
 #. type: deftypevr
-#: doc/guix.texi:15536
+#: doc/guix.texi:19386
 #, no-wrap
 msgid "{@code{namespace-configuration} parameter} string type"
 msgstr "{paramètre de @code{namespace-configuration}} string type"
 
 #. type: deftypevr
-#: doc/guix.texi:15539
+#: doc/guix.texi:19389
 msgid "Namespace type: @samp{private}, @samp{shared} or @samp{public}.  Defaults to @samp{\"private\"}."
 msgstr "Type d'espace de nom : @samp{private}, @samp{shared} ou @samp{public}.  La valeur par défaut est @samp{\"private\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:15541
+#: doc/guix.texi:19391
 #, no-wrap
 msgid "{@code{namespace-configuration} parameter} string separator"
 msgstr "{paramètre de @code{namespace-configuration}} string separator"
 
 #. type: deftypevr
-#: doc/guix.texi:15547
+#: doc/guix.texi:19397
 msgid "Hierarchy separator to use. You should use the same separator for all namespaces or some clients get confused.  @samp{/} is usually a good one.  The default however depends on the underlying mail storage format.  Defaults to @samp{\"\"}."
 msgstr "Séparateur de hiérarchie à utiliser.  Vous devriez utiliser le même séparateur pour tous les espaces de noms ou certains clients seront confus.  @samp{/} est généralement une bonne valeur.  La valeur par défaut dépend cependant du format de stockage sous-jacent.  La valeur par défaut est @samp{\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:15549
+#: doc/guix.texi:19399
 #, no-wrap
 msgid "{@code{namespace-configuration} parameter} string prefix"
 msgstr "{paramètre de @code{namespace-configuration}} string prefix"
 
 #. type: deftypevr
-#: doc/guix.texi:15553
+#: doc/guix.texi:19403
 msgid "Prefix required to access this namespace.  This needs to be different for all namespaces. For example @samp{Public/}.  Defaults to @samp{\"\"}."
 msgstr "Préfixe requis pour accéder à cet espace de nom.  Ce paramètres doit être différent pour tous les espaces de noms.  Par exemple @samp{Public/}.  La valeur par défaut est @samp{\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:15555
+#: doc/guix.texi:19405
 #, no-wrap
 msgid "{@code{namespace-configuration} parameter} string location"
 msgstr "{paramètre de @code{namespace-configuration}} string location"
 
 #. type: deftypevr
-#: doc/guix.texi:15559
+#: doc/guix.texi:19409
 msgid "Physical location of the mailbox. This is in the same format as mail_location, which is also the default for it.  Defaults to @samp{\"\"}."
 msgstr "Emplacement physique de la boîte aux lettres.  C'est le même format que mail_location, qui est aussi la valeur par défaut.  La valeur par défaut est @samp{\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:15561
+#: doc/guix.texi:19411
 #, no-wrap
 msgid "{@code{namespace-configuration} parameter} boolean inbox?"
 msgstr "{paramètre de @code{namespace-configuration}} boolean inbox?"
 
 #. type: deftypevr
-#: doc/guix.texi:15565
+#: doc/guix.texi:19415
 msgid "There can be only one INBOX, and this setting defines which namespace has it.  Defaults to @samp{#f}."
 msgstr "Il ne peut y avoir qu'un INBOX, et ce paramètre définit l'espace de nom qui le possède.  La valeur par défaut est @samp{#f}."
 
 #. type: deftypevr
-#: doc/guix.texi:15567
+#: doc/guix.texi:19417
 #, no-wrap
 msgid "{@code{namespace-configuration} parameter} boolean hidden?"
 msgstr "{paramètre de @code{namespace-configuration}} boolean hidden?"
 
 #. type: deftypevr
-#: doc/guix.texi:15575
+#: doc/guix.texi:19425
 msgid "If namespace is hidden, it's not advertised to clients via NAMESPACE extension. You'll most likely also want to set @samp{list? #f}.  This is mostly useful when converting from another server with different namespaces which you want to deprecate but still keep working.  For example you can create hidden namespaces with prefixes @samp{~/mail/}, @samp{~%u/mail/} and @samp{mail/}.  Defaults to @samp{#f}."
 msgstr "Si l'espace de nom est caché, il n'est pas publié auprès des clients par l'extension NAMESPACE.  Vous voudrez aussi sans doute indiquer @samp{list? #f}.  C'est surtout utile lors de la conversion depuis un autre serveur avec des espaces de noms différents que vous voulez rendre obsolètes sans les casser.  Par exemple vous pouvez cacher les espaces de noms avec les préfixes @samp{~/mail/}, @samp{~%u/mail/} et @samp{mail/}.  La valeur par défaut est @samp{#f}."
 
 #. type: deftypevr
-#: doc/guix.texi:15577
+#: doc/guix.texi:19427
 #, no-wrap
 msgid "{@code{namespace-configuration} parameter} boolean list?"
 msgstr "{paramètre de @code{namespace-configuration}} boolean list?"
 
 #. type: deftypevr
-#: doc/guix.texi:15583
+#: doc/guix.texi:19433
 msgid "Show the mailboxes under this namespace with the LIST command. This makes the namespace visible for clients that do not support the NAMESPACE extension.  The special @code{children} value lists child mailboxes, but hides the namespace prefix.  Defaults to @samp{#t}."
 msgstr "Montre les boîtes aux lettres sons cet espace de nom avec la commande LIST.  Cela rend l'espace de nom visible pour les clients qui ne supportent pas l'extension NAMESPACE.  La valeur spéciale @code{children} liste les boîtes aux lettres filles mais cache le préfixe de l'espace de nom.  La valeur par défaut est @samp{#t}."
 
 #. type: deftypevr
-#: doc/guix.texi:15585
+#: doc/guix.texi:19435
 #, no-wrap
 msgid "{@code{namespace-configuration} parameter} boolean subscriptions?"
 msgstr "{paramètre de @code{namespace-configuration}} boolean subscriptions?"
 
 #. type: deftypevr
-#: doc/guix.texi:15590
+#: doc/guix.texi:19440
 msgid "Namespace handles its own subscriptions.  If set to @code{#f}, the parent namespace handles them.  The empty prefix should always have this as @code{#t}).  Defaults to @samp{#t}."
 msgstr "Les espaces de noms gèrent leur propre souscription.  Si la valeur est @code{#f}, l'espace de nom parent s'en charge.  Le préfixe vide devrait toujours avoir cette valeur à @code{#t}.  La valeur par défaut est @samp{#t}."
 
 #. type: deftypevr
-#: doc/guix.texi:15592
+#: doc/guix.texi:19442
 #, no-wrap
 msgid "{@code{namespace-configuration} parameter} mailbox-configuration-list mailboxes"
 msgstr "{paramètre de @code{namespace-configuration}} mailbox-configuration-list mailboxes"
 
 #. type: deftypevr
-#: doc/guix.texi:15595
+#: doc/guix.texi:19445
 msgid "List of predefined mailboxes in this namespace.  Defaults to @samp{()}."
 msgstr "Liste des boîtes aux lettres prédéfinies dans cet espace de nom.  La valeur par défaut est @samp{()}."
 
 #. type: deftypevr
-#: doc/guix.texi:15597
+#: doc/guix.texi:19447
 msgid "Available @code{mailbox-configuration} fields are:"
 msgstr "Les champs de @code{mailbox-configuration} disponibles sont :"
 
 #. type: deftypevr
-#: doc/guix.texi:15598
+#: doc/guix.texi:19448
 #, no-wrap
 msgid "{@code{mailbox-configuration} parameter} string name"
 msgstr "{paramètre de @code{mailbox-configuration}} string name"
 
 #. type: deftypevr
-#: doc/guix.texi:15600
+#: doc/guix.texi:19450
 msgid "Name for this mailbox."
 msgstr "Nom de cette boîte aux lettres."
 
 #. type: deftypevr
-#: doc/guix.texi:15602
+#: doc/guix.texi:19452
 #, no-wrap
 msgid "{@code{mailbox-configuration} parameter} string auto"
 msgstr "{paramètre de @code{mailbox-configuration}} string auto"
 
 #. type: deftypevr
-#: doc/guix.texi:15606
+#: doc/guix.texi:19456
 msgid "@samp{create} will automatically create this mailbox.  @samp{subscribe} will both create and subscribe to the mailbox.  Defaults to @samp{\"no\"}."
 msgstr "@samp{create} créera automatiquement cette boîte aux lettres.  @samp{subscribe} créera et souscrira à la boîte aux lettres.  La valeur par défaut est @samp{\"no\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:15608
+#: doc/guix.texi:19458
 #, no-wrap
 msgid "{@code{mailbox-configuration} parameter} space-separated-string-list special-use"
 msgstr "{paramètre de @code{mailbox-configuration}} space-separated-string-list special-use"
 
 #. type: deftypevr
-#: doc/guix.texi:15613
+#: doc/guix.texi:19463
 msgid "List of IMAP @code{SPECIAL-USE} attributes as specified by RFC 6154.  Valid values are @code{\\All}, @code{\\Archive}, @code{\\Drafts}, @code{\\Flagged}, @code{\\Junk}, @code{\\Sent}, and @code{\\Trash}.  Defaults to @samp{()}."
 msgstr "Liste des attributs @code{SPECIAL-USE} IMAP spécifiés par la RFC 6154.  Les valeurs valides sont @code{\\All}, @code{\\Archive}, @code{\\Drafts}, @code{\\Flagged}, @code{\\Junk}, @code{\\Sent} et @code{\\Trash}.  La valeur par défaut est @samp{()}."
 
 #. type: deftypevr
-#: doc/guix.texi:15619
+#: doc/guix.texi:19469
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} file-name base-dir"
 msgstr "{paramètre de @code{dovecot-configuration}} file-name base-dir"
 
 #. type: deftypevr
-#: doc/guix.texi:15622
+#: doc/guix.texi:19472
 msgid "Base directory where to store runtime data.  Defaults to @samp{\"/var/run/dovecot/\"}."
 msgstr "Répertoire de base où stocker les données d'exécution.  La valeur par défaut est @samp{\"/var/run/dovecot/\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:15624
+#: doc/guix.texi:19474
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string login-greeting"
 msgstr "{paramètre de @code{dovecot-configuration}} string login-greeting"
 
 #. type: deftypevr
-#: doc/guix.texi:15627
+#: doc/guix.texi:19477
 msgid "Greeting message for clients.  Defaults to @samp{\"Dovecot ready.\"}."
 msgstr "Message d'accueil pour les clients.  La valeur par défaut est @samp{\"Dovecot ready.\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:15629
+#: doc/guix.texi:19479
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} space-separated-string-list login-trusted-networks"
 msgstr "{paramètre de @code{dovecot-configuration}} space-separated-string-list login-trusted-networks"
 
 #. type: deftypevr
-#: doc/guix.texi:15636
+#: doc/guix.texi:19486
 msgid "List of trusted network ranges.  Connections from these IPs are allowed to override their IP addresses and ports (for logging and for authentication checks).  @samp{disable-plaintext-auth} is also ignored for these networks.  Typically you would specify your IMAP proxy servers here.  Defaults to @samp{()}."
 msgstr "Liste des groupes d'adresses de confiance.  Les connexions depuis ces IP sont autorisées à modifier leurs adresses IP et leurs ports (pour la connexion et la vérification d'authentification).  @samp{disable-plaintext-auth} est aussi ignoré pour ces réseaux.  Typiquement vous voudrez spécifier votre mandataire IMAP ici.  La valeur par défaut est @samp{()}."
 
 #. type: deftypevr
-#: doc/guix.texi:15638
+#: doc/guix.texi:19488
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} space-separated-string-list login-access-sockets"
 msgstr "{paramètre de @code{dovecot-configuration}} space-separated-string-list login-access-sockets"
 
 #. type: deftypevr
-#: doc/guix.texi:15641
+#: doc/guix.texi:19491
 msgid "List of login access check sockets (e.g.@: tcpwrap).  Defaults to @samp{()}."
 msgstr "Liste des sockets de vérification d'accès de connexion (p.@: ex.@: tcpwrap).  La valeur par défaut est @samp{()}."
 
 #. type: deftypevr
-#: doc/guix.texi:15643
+#: doc/guix.texi:19493
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean verbose-proctitle?"
 msgstr "{paramètre de @code{dovecot-configuration}} boolean verbose-proctitle?"
 
 #. type: deftypevr
-#: doc/guix.texi:15649
+#: doc/guix.texi:19499
 msgid "Show more verbose process titles (in ps).  Currently shows user name and IP address.  Useful for seeing who is actually using the IMAP processes (e.g.@: shared mailboxes or if the same uid is used for multiple accounts).  Defaults to @samp{#f}."
 msgstr "Montre des titres de processus plus verbeux (dans ps).  Actuellement, montre le nom d'utilisateur et l'adresse IP.  Utile pour voir qui utilise en réalité les processus IMAP (p.@: ex.@: des boîtes aux lettres partagées ou si le même uid est utilisé pour plusieurs comptes).  La valeur par défaut est @samp{#f}."
 
 #. type: deftypevr
-#: doc/guix.texi:15651
+#: doc/guix.texi:19501
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean shutdown-clients?"
 msgstr "{paramètre de @code{dovecot-configuration}} boolean shutdown-clients?"
 
 #. type: deftypevr
-#: doc/guix.texi:15657
+#: doc/guix.texi:19507
 msgid "Should all processes be killed when Dovecot master process shuts down.  Setting this to @code{#f} means that Dovecot can be upgraded without forcing existing client connections to close (although that could also be a problem if the upgrade is e.g.@: due to a security fix).  Defaults to @samp{#t}."
 msgstr "Indique si les processus devraient toujours être tués lorsque le processus maître de Dovecot est éteint.  La valeur @code{#f} signifie que Dovecot peut être mis à jour sans forcer les connexions clientes existantes à se fermer (bien que cela puisse être un problème si la mise à jour est un correctif de sécurité par exemple).  La valeur par défaut est @samp{#t}."
 
 #. type: deftypevr
-#: doc/guix.texi:15659
+#: doc/guix.texi:19509
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} non-negative-integer doveadm-worker-count"
 msgstr "{paramètre de @code{dovecot-configuration}} non-negative-integer doveadm-worker-count"
 
 #. type: deftypevr
-#: doc/guix.texi:15663
+#: doc/guix.texi:19513
 msgid "If non-zero, run mail commands via this many connections to doveadm server, instead of running them directly in the same process.  Defaults to @samp{0}."
 msgstr "Si la valeur n'est pas zéro, lance les commandes de courriel via ce nombre de connexions au serveur doveadm au lieu de les lancer dans le même processus.  La valeur par défaut est @samp{0}."
 
 #. type: deftypevr
-#: doc/guix.texi:15665
+#: doc/guix.texi:19515
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string doveadm-socket-path"
 msgstr "{paramètre de @code{dovecot-configuration}} string doveadm-socket-path"
 
 #. type: deftypevr
-#: doc/guix.texi:15668
+#: doc/guix.texi:19518
 msgid "UNIX socket or host:port used for connecting to doveadm server.  Defaults to @samp{\"doveadm-server\"}."
 msgstr "Socket UNIX ou hôte:port utilisé pour se connecter au serveur doveadm.  La valeur par défaut est @samp{\"doveadm-server\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:15670
+#: doc/guix.texi:19520
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} space-separated-string-list import-environment"
 msgstr "{paramètre de @code{dovecot-configuration}} space-separated-string-list import-environment"
 
 #. type: deftypevr
-#: doc/guix.texi:15674
+#: doc/guix.texi:19524
 msgid "List of environment variables that are preserved on Dovecot startup and passed down to all of its child processes.  You can also give key=value pairs to always set specific settings."
 msgstr "Liste des variables d'environnement qui sont préservées au démarrage de Dovecot et passées à tous ses processus fils.  Vous pouvez aussi donner des paires clef=valeur pour toujours spécifier ce paramètre."
 
 #. type: deftypevr
-#: doc/guix.texi:15676
+#: doc/guix.texi:19526
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean disable-plaintext-auth?"
 msgstr "{paramètre de @code{dovecot-configuration}} boolean disable-plaintext-auth?"
 
 #. type: deftypevr
-#: doc/guix.texi:15683
+#: doc/guix.texi:19533
 msgid "Disable LOGIN command and all other plaintext authentications unless SSL/TLS is used (LOGINDISABLED capability).  Note that if the remote IP matches the local IP (i.e.@: you're connecting from the same computer), the connection is considered secure and plaintext authentication is allowed.  See also ssl=required setting.  Defaults to @samp{#t}."
 msgstr "Désactive la commande LOGIN et toutes les autres authentifications en texte clair à moins que SSL/TLS ne soit utilisé (capacité LOGINDISABLED).  Remarquez que si l'IP distante correspond à l'IP locale (c.-à-d.@: que vous vous connectez depuis le même ordinateur), la connexion est considérée comme sécurisée et l'authentification en texte clair est permise.  Voir aussi le paramètre ssl=required.  La valeur par défaut est @samp{#t}."
 
 #. type: deftypevr
-#: doc/guix.texi:15685
+#: doc/guix.texi:19535
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} non-negative-integer auth-cache-size"
 msgstr "{paramètre de @code{dovecot-configuration}} non-negative-integer auth-cache-size"
 
 #. type: deftypevr
-#: doc/guix.texi:15690
+#: doc/guix.texi:19540
 msgid "Authentication cache size (e.g.@: @samp{#e10e6}).  0 means it's disabled.  Note that bsdauth, PAM and vpopmail require @samp{cache-key} to be set for caching to be used.  Defaults to @samp{0}."
 msgstr "Taille du cache d'authentification (p.@: ex.@: @samp{#e10e6}).  0 signifie qu'il est désactivé.  Remarquez que bsdauth, PAM et vpopmail ont besoin que @samp{cache-key} soit indiqué pour que le cache soit utilisé.  La valeur par défaut est @samp{0}."
 
 #. type: deftypevr
-#: doc/guix.texi:15692
+#: doc/guix.texi:19542
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string auth-cache-ttl"
 msgstr "{paramètre de @code{dovecot-configuration}} string auth-cache-ttl"
 
 #. type: deftypevr
-#: doc/guix.texi:15700
+#: doc/guix.texi:19550
 msgid "Time to live for cached data.  After TTL expires the cached record is no longer used, *except* if the main database lookup returns internal failure.  We also try to handle password changes automatically: If user's previous authentication was successful, but this one wasn't, the cache isn't used.  For now this works only with plaintext authentication.  Defaults to @samp{\"1 hour\"}."
 msgstr "Durée de vie des données en cache.  Après l'expiration du TTL l'enregistrement en cache n'est plus utilisé *sauf* si la requête à la base de données principale revoie une erreur interne.  Nous essayons aussi de gérer les changements de mot de passe automatiquement : si l'authentification précédente de l'utilisateur était réussie mais pas celle-ci, le cache n'est pas utilisé.  Pour l'instant cela fonctionne avec l'authentification en texte clair uniquement.  La valeur par défaut est @samp{\"1 hour\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:15702
+#: doc/guix.texi:19552
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string auth-cache-negative-ttl"
 msgstr "{paramètre de @code{dovecot-configuration}} string auth-cache-negative-ttl"
 
 #. type: deftypevr
-#: doc/guix.texi:15706
+#: doc/guix.texi:19556
 msgid "TTL for negative hits (user not found, password mismatch).  0 disables caching them completely.  Defaults to @samp{\"1 hour\"}."
 msgstr "TTL pour les résultats négatifs (l'utilisateur n'est pas trouvé ou le mot de passe ne correspond pas).  0 désactive la mise en cache complètement.  La valeur par défaut est @samp{\"1 hour\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:15708
+#: doc/guix.texi:19558
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} space-separated-string-list auth-realms"
 msgstr "{paramètre de @code{dovecot-configuration}} space-separated-string-list auth-realms"
 
 #. type: deftypevr
-#: doc/guix.texi:15714
+#: doc/guix.texi:19564
 msgid "List of realms for SASL authentication mechanisms that need them.  You can leave it empty if you don't want to support multiple realms.  Many clients simply use the first one listed here, so keep the default realm first.  Defaults to @samp{()}."
 msgstr "Liste des domaines pour les mécanismes d'authentification SASL qui en ont besoin.  Vous pouvez laisser ce paramètre vide si vous ne voulez pas utiliser plusieurs domaines.  Beaucoup de clients utilisent le premier domaine listé ici, donc gardez celui par défaut en premier.  La valeur par défaut est @samp{()}"
 
 #. type: deftypevr
-#: doc/guix.texi:15716
+#: doc/guix.texi:19566
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string auth-default-realm"
 msgstr "{paramètre de @code{dovecot-configuration}} string auth-default-realm"
 
 #. type: deftypevr
-#: doc/guix.texi:15721
+#: doc/guix.texi:19571
 msgid "Default realm/domain to use if none was specified.  This is used for both SASL realms and appending @@domain to username in plaintext logins.  Defaults to @samp{\"\"}."
 msgstr "Domaine par défaut à utiliser si aucun n'est spécifié.  C'est utilisé pour les domaines SASL et pour ajouter @@domaine au nom d'utilisateur dans les authentification en texte clair.  La valeur par défaut est @samp{\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:15723
+#: doc/guix.texi:19573
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string auth-username-chars"
 msgstr "{paramètre de @code{dovecot-configuration}} string auth-username-chars"
 
 #. type: deftypevr
-#: doc/guix.texi:15730
+#: doc/guix.texi:19580
 msgid "List of allowed characters in username.  If the user-given username contains a character not listed in here, the login automatically fails.  This is just an extra check to make sure user can't exploit any potential quote escaping vulnerabilities with SQL/LDAP databases.  If you want to allow all characters, set this value to empty.  Defaults to @samp{\"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890.-_@@\"}."
 msgstr "Liste des caractères autorisés dans les noms d'utilisateur.  Si le nom d'utilisateur donné par l'utilisateur contient un caractère qui n'est pas listé ici, la connexion échoue automatiquement.  C'est juste une vérification supplémentaire pour s'assure que l'utilisateur ne puisse pas exploiter des vulnérabilités potentielles d'échappement de guillemets avec les bases de données SQL/LDAP.  Si vous voulez autoriser tous les caractères, indiquez la liste vide."
 
 #. type: deftypevr
-#: doc/guix.texi:15732
+#: doc/guix.texi:19582
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string auth-username-translation"
 msgstr "{paramètre de @code{dovecot-configuration}} string auth-username-translation"
 
 #. type: deftypevr
-#: doc/guix.texi:15738
+#: doc/guix.texi:19588
 msgid "Username character translations before it's looked up from databases.  The value contains series of from -> to characters.  For example @samp{#@@/@@} means that @samp{#} and @samp{/} characters are translated to @samp{@@}.  Defaults to @samp{\"\"}."
 msgstr "Traduction de caractères dans les noms d'utilisateur avant qu'ils ne soient cherchés en base.  La valeur contient une série de caractère de -> à.  Par exemple @samp{#@@/@@} signifie que @samp{#} et @samp{/} sont traduits en @samp{@@}.  La valeur par défaut est @samp{\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:15740
+#: doc/guix.texi:19590
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string auth-username-format"
 msgstr "{paramètre de @code{dovecot-configuration}} string auth-username-format"
 
 #. type: deftypevr
-#: doc/guix.texi:15747
+#: doc/guix.texi:19597
 msgid "Username formatting before it's looked up from databases.  You can use the standard variables here, e.g.@: %Lu would lowercase the username, %n would drop away the domain if it was given, or @samp{%n-AT-%d} would change the @samp{@@} into @samp{-AT-}.  This translation is done after @samp{auth-username-translation} changes.  Defaults to @samp{\"%Lu\"}."
 msgstr "Format des noms d'utilisateur avant qu'ils ne soient cherchés en base.  Vous pouvez utiliser les variables standard ici, p.@: ex.@: %Lu est le nom d'utilisateur en minuscule, %n enlève le domaine s'il est donné ou @samp{%n-AT-%d} changerait le @samp{@@} en @samp{-AT-}.  Cette traduction est faite après les changements de @samp{auth-username-translation}.  La valeur par défaut est @samp{\"%Lu\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:15749
+#: doc/guix.texi:19599
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string auth-master-user-separator"
 msgstr "{paramètre de @code{dovecot-configuration}} string auth-master-user-separator"
 
 #. type: deftypevr
-#: doc/guix.texi:15757
+#: doc/guix.texi:19607
 msgid "If you want to allow master users to log in by specifying the master username within the normal username string (i.e.@: not using SASL mechanism's support for it), you can specify the separator character here.  The format is then <username><separator><master username>.  UW-IMAP uses @samp{*} as the separator, so that could be a good choice.  Defaults to @samp{\"\"}."
 msgstr "Si vous voulez permettre aux utilisateurs maîtres de se connecter en spécifiant le nom d'utilisateur maître dans la chaîne de nom d'utilisateur normal (c.-à-d.@: sans utiliser le support du mécanisme SASL pour cela), vous pouvez spécifier le caractère de séparation ici.  Le format est ensuite <nom d'utilisateur><séparateur><nom d'utilisateur maître>.  UW-IMAP utilise @samp{*} comme séparateur, donc ça pourrait être un bon choix.  La valeur par défaut est @samp{\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:15759
+#: doc/guix.texi:19609
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string auth-anonymous-username"
 msgstr "{paramètre de @code{dovecot-configuration}} string auth-anonymous-username"
 
 #. type: deftypevr
-#: doc/guix.texi:15763
+#: doc/guix.texi:19613
 msgid "Username to use for users logging in with ANONYMOUS SASL mechanism.  Defaults to @samp{\"anonymous\"}."
 msgstr "Nom d'utilisateur à utiliser pour les utilisateurs qui se connectent avec le mécanisme SASL ANONYMOUS.  La valeur par défaut est @samp{\"anonymous\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:15765
+#: doc/guix.texi:19615
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} non-negative-integer auth-worker-max-count"
 msgstr "{paramètre de @code{dovecot-configuration}} non-negative-integer auth-worker-max-count"
 
 #. type: deftypevr
-#: doc/guix.texi:15770
+#: doc/guix.texi:19620
 msgid "Maximum number of dovecot-auth worker processes.  They're used to execute blocking passdb and userdb queries (e.g.@: MySQL and PAM).  They're automatically created and destroyed as needed.  Defaults to @samp{30}."
 msgstr "Nombre maximum de processus de travail dovecot-auth.  Ils sont utilisés pour exécuter des requêtes passdb et userdb bloquantes (p.@: ex.@: MySQL et PAM).  Ils sont créés automatiquement et détruits au besoin.  La valeur par défaut est @samp{30}."
 
 #. type: deftypevr
-#: doc/guix.texi:15772
+#: doc/guix.texi:19622
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string auth-gssapi-hostname"
 msgstr "{paramètre de @code{dovecot-configuration}} string auth-gssapi-hostname"
 
 #. type: deftypevr
-#: doc/guix.texi:15777
+#: doc/guix.texi:19627
 msgid "Host name to use in GSSAPI principal names.  The default is to use the name returned by gethostname().  Use @samp{$ALL} (with quotes) to allow all keytab entries.  Defaults to @samp{\"\"}."
 msgstr "Nom d'hôte à utiliser dans les noms GSSAPI principaux.  La valeur par défaut est d'utiliser le nom renvoyé par gethostname().  Utilisez @samp{$ALL} (avec des guillemets) pour permettre toutes les entrées keytab.  La valeur par défaut est @samp{\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:15779
+#: doc/guix.texi:19629
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string auth-krb5-keytab"
 msgstr "{paramètre de @code{dovecot-configuration}} string auth-krb5-keytab"
 
 #. type: deftypevr
-#: doc/guix.texi:15785
+#: doc/guix.texi:19635
 msgid "Kerberos keytab to use for the GSSAPI mechanism.  Will use the system default (usually @file{/etc/krb5.keytab}) if not specified.  You may need to change the auth service to run as root to be able to read this file.  Defaults to @samp{\"\"}."
 msgstr "Keytab Kerberos à utiliser pour le mécanisme GSSAPI.  Utilisera la valeur par défaut du système (typiquement @file{/etc/krb5.keytab}) s'il n'est pas spécifié.  Vous pourriez avoir besoin de faire en sorte que le service d'authentification tourne en root pour pouvoir lire ce fichier.  La valeur par défaut est @samp{\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:15787
+#: doc/guix.texi:19637
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean auth-use-winbind?"
 msgstr "{paramètre de @code{dovecot-configuration}} boolean auth-use-winbind?"
 
 #. type: deftypevr
-#: doc/guix.texi:15792
+#: doc/guix.texi:19642
 msgid "Do NTLM and GSS-SPNEGO authentication using Samba's winbind daemon and @samp{ntlm-auth} helper.  <doc/wiki/Authentication/Mechanisms/Winbind.txt>.  Defaults to @samp{#f}."
 msgstr "Effectue l'authentification NTLM et GSS-SPNEGO avec le démon winbind de Samba et l'utilitaire @samp{ntlm-auth}.  <doc/wiki/Authentication/Mechanisms/Winbind.txt>.  La valeur par défaut est @samp{#f}."
 
 #. type: deftypevr
-#: doc/guix.texi:15794
+#: doc/guix.texi:19644
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} file-name auth-winbind-helper-path"
 msgstr "{paramètre de @code{dovecot-configuration}} file-name auth-winbind-helper-path"
 
 #. type: deftypevr
-#: doc/guix.texi:15797
+#: doc/guix.texi:19647
 msgid "Path for Samba's @samp{ntlm-auth} helper binary.  Defaults to @samp{\"/usr/bin/ntlm_auth\"}."
 msgstr "Chemin du binaire @samp{ntlm-auth} de samba.  La valeur par défaut est @samp{\"/usr/bin/ntlm_auth\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:15799
+#: doc/guix.texi:19649
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string auth-failure-delay"
 msgstr "{paramètre de @code{dovecot-configuration}} string auth-failure-delay"
 
 #. type: deftypevr
-#: doc/guix.texi:15802
+#: doc/guix.texi:19652
 msgid "Time to delay before replying to failed authentications.  Defaults to @samp{\"2 secs\"}."
 msgstr "Durée d'attente avant de répondre à des authentifications échouées.  La valeur par défaut est @samp{\"2 secs\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:15804
+#: doc/guix.texi:19654
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean auth-ssl-require-client-cert?"
 msgstr "{paramètre de @code{dovecot-configuration}} boolean auth-ssl-require-client-cert?"
 
 #. type: deftypevr
-#: doc/guix.texi:15808
+#: doc/guix.texi:19658
 msgid "Require a valid SSL client certificate or the authentication fails.  Defaults to @samp{#f}."
 msgstr "Requiert un certification client SSL valide ou l'authentification échoue.  La valeur par défaut est @samp{#f}."
 
 #. type: deftypevr
-#: doc/guix.texi:15810
+#: doc/guix.texi:19660
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean auth-ssl-username-from-cert?"
 msgstr "{paramètre de @code{dovecot-configuration}} boolean auth-ssl-username-from-cert?"
 
 #. type: deftypevr
-#: doc/guix.texi:15815
+#: doc/guix.texi:19665
 msgid "Take the username from client's SSL certificate, using @code{X509_NAME_get_text_by_NID()} which returns the subject's DN's CommonName.  Defaults to @samp{#f}."
 msgstr "Prend le nom d'utilisateur du certificat SSL client, avec @code{X509_NAME_get_text_by_NID()} qui renvoie le CommonName du DN du sujet.  La valeur par défaut est @samp{#f}."
 
 #. type: deftypevr
-#: doc/guix.texi:15817
+#: doc/guix.texi:19667
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} space-separated-string-list auth-mechanisms"
 msgstr "{paramètre de @code{dovecot-configuration}} space-separated-string-list auth-mechanisms"
 
 #. type: deftypevr
-#: doc/guix.texi:15823
+#: doc/guix.texi:19673
 msgid "List of wanted authentication mechanisms.  Supported mechanisms are: @samp{plain}, @samp{login}, @samp{digest-md5}, @samp{cram-md5}, @samp{ntlm}, @samp{rpa}, @samp{apop}, @samp{anonymous}, @samp{gssapi}, @samp{otp}, @samp{skey}, and @samp{gss-spnego}.  NOTE: See also @samp{disable-plaintext-auth} setting."
 msgstr "Liste des mécanismes d'authentification souhaités.  Les mécanismes supportés sont : @samp{plain}, @samp{login}, @samp{digest-md5}, @samp{cram-md5}, @samp{ntlm}, @samp{rpa}, @samp{apop}, @samp{anonymous}, @samp{gssapi}, @samp{otp}, @samp{skey} et @samp{gss-spnego}.  Remarquez : Voir aussi le paramètre @samp{disable-plaintext-auth}."
 
 #. type: deftypevr
-#: doc/guix.texi:15825
+#: doc/guix.texi:19675
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} space-separated-string-list director-servers"
 msgstr "{paramètre de @code{dovecot-configuration}} space-separated-string-list director-servers"
 
 #. type: deftypevr
-#: doc/guix.texi:15830
+#: doc/guix.texi:19680
 msgid "List of IPs or hostnames to all director servers, including ourself.  Ports can be specified as ip:port.  The default port is the same as what director service's @samp{inet-listener} is using.  Defaults to @samp{()}."
 msgstr "Liste des IP ou des noms d'hôtes des serveurs directeurs, dont soi-même.  Les ports peuvent être spécifiés avec ip:port.  Le port par défaut est le même que le @samp{inet-listener} du service directeur.  La valeur par défaut est @samp{()}."
 
 #. type: deftypevr
-#: doc/guix.texi:15832
+#: doc/guix.texi:19682
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} space-separated-string-list director-mail-servers"
 msgstr "{paramètre de @code{dovecot-configuration}} space-separated-string-list director-mail-servers"
 
 #. type: deftypevr
-#: doc/guix.texi:15836
+#: doc/guix.texi:19686
 msgid "List of IPs or hostnames to all backend mail servers.  Ranges are allowed too, like 10.0.0.10-10.0.0.30.  Defaults to @samp{()}."
 msgstr "Liste des IP ou des noms d'hôtes de tous les serveurs de courriel de la grappe.  Les intervalles sont aussi permis, comme 10.0.0.10-10.0.0.30.  La valeur par défaut est @samp{()}."
 
 #. type: deftypevr
-#: doc/guix.texi:15838
+#: doc/guix.texi:19688
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string director-user-expire"
 msgstr "{paramètre de @code{dovecot-configuration}} string director-user-expire"
 
 #. type: deftypevr
-#: doc/guix.texi:15842
+#: doc/guix.texi:19692
 msgid "How long to redirect users to a specific server after it no longer has any connections.  Defaults to @samp{\"15 min\"}."
 msgstr "Combien de temps avant de rediriger les utilisateurs à un serveur spécifique après qu'il n'y a plus de connexion.  La valeur par défaut est @samp{\"15 min\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:15844
+#: doc/guix.texi:19694
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string director-username-hash"
 msgstr "{paramètre de @code{dovecot-configuration}} string director-username-hash"
 
 #. type: deftypevr
-#: doc/guix.texi:15849
+#: doc/guix.texi:19699
 msgid "How the username is translated before being hashed.  Useful values include %Ln if user can log in with or without @@domain, %Ld if mailboxes are shared within domain.  Defaults to @samp{\"%Lu\"}."
 msgstr "La manière de traduire le nom d'utilisateur avant de le hasher.  Les valeurs utiles comprennent %Ln si l'utilisateur peut se connecter avec ou sans @@domain, %Ld si les boîtes aux lettres sont partagées dans le domaine.  La valeur par défaut est @samp{\"%Lu\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:15851
+#: doc/guix.texi:19701
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string log-path"
 msgstr "{paramètre de @code{dovecot-configuration}} string log-path"
 
 #. type: deftypevr
-#: doc/guix.texi:15855
+#: doc/guix.texi:19705
 msgid "Log file to use for error messages.  @samp{syslog} logs to syslog, @samp{/dev/stderr} logs to stderr.  Defaults to @samp{\"syslog\"}."
 msgstr "Fichier de journal à utiliser pour les messages d'erreur.  @samp{syslog} journalise vers syslog, @samp{/dev/stderr} vers la sortie d'erreur.  La valeur par défaut est @samp{\"syslog\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:15857
+#: doc/guix.texi:19707
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string info-log-path"
 msgstr "{paramètre de @code{dovecot-configuration}} string info-log-path"
 
 #. type: deftypevr
-#: doc/guix.texi:15861
+#: doc/guix.texi:19711
 msgid "Log file to use for informational messages.  Defaults to @samp{log-path}.  Defaults to @samp{\"\"}."
 msgstr "Fichier de journal à utiliser pour les messages d'information.  La valeur par défaut est @samp{log-path}.  La valeur par défaut est @samp{\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:15863
+#: doc/guix.texi:19713
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string debug-log-path"
 msgstr "{paramètre de @code{dovecot-configuration}} string debug-log-path"
 
 #. type: deftypevr
-#: doc/guix.texi:15867
+#: doc/guix.texi:19717
 msgid "Log file to use for debug messages.  Defaults to @samp{info-log-path}.  Defaults to @samp{\"\"}."
 msgstr "Fichier de journal à utiliser pour les messages de débogage.  La valeur par défaut est @samp{info-log-path}.  La valeur par défaut est @samp{\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:15869
+#: doc/guix.texi:19719
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string syslog-facility"
 msgstr "{paramètre de @code{dovecot-configuration}} string syslog-facility"
 
 #. type: deftypevr
-#: doc/guix.texi:15874
+#: doc/guix.texi:19724
 msgid "Syslog facility to use if you're logging to syslog.  Usually if you don't want to use @samp{mail}, you'll use local0..local7.  Also other standard facilities are supported.  Defaults to @samp{\"mail\"}."
 msgstr "Dispositif syslog à utiliser si vous journalisez avec syslog.  Normalement si vous ne voulez pas utiliser @samp{mail}, vous voudrez utiliser local0..local7.  D'autres dispositifs standard sont supportés.  La valeur par défaut est @samp{\"mail\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:15876
+#: doc/guix.texi:19726
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean auth-verbose?"
 msgstr "{paramètre de @code{dovecot-configuration}} boolean auth-verbose?"
 
 #. type: deftypevr
-#: doc/guix.texi:15880
+#: doc/guix.texi:19730
 msgid "Log unsuccessful authentication attempts and the reasons why they failed.  Defaults to @samp{#f}."
 msgstr "Indique s'il faut enregistrer les tentatives de connexion échouées et la raison de leur échec.  La valeur par défaut est @samp{#f}."
 
 #. type: deftypevr
-#: doc/guix.texi:15882
+#: doc/guix.texi:19732
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string auth-verbose-passwords"
 msgstr "{paramètre de @code{dovecot-configuration}} string auth-verbose-passwords"
 
 #. type: deftypevr
-#: doc/guix.texi:15889
+#: doc/guix.texi:19739
 msgid "In case of password mismatches, log the attempted password.  Valid values are no, plain and sha1.  sha1 can be useful for detecting brute force password attempts vs.  user simply trying the same password over and over again.  You can also truncate the value to n chars by appending \":n\" (e.g.@: sha1:6).  Defaults to @samp{\"no\"}."
 msgstr "Dans le cas où le mot de passe n'était pas correct, indique s'il faut enregistrer le mauvais mot de passe. Les valeurs valides sont « no », « plain » et « sha1 ».  Il peut être utile d'indiquer « sha1 » pour discriminer des attaques par force brute d'utilisateurs qui réessayent encore et encore le même mot de passe.  Vous pouvez aussi tronquer la valeur à n caractères en ajoutant « :n » (p.@: ex.@: « sha1:6 »).  La valeur par défaut est @samp{\"no\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:15891
+#: doc/guix.texi:19741
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean auth-debug?"
 msgstr "{paramètre de @code{dovecot-configuration}} boolean auth-debug?"
 
 #. type: deftypevr
-#: doc/guix.texi:15895
+#: doc/guix.texi:19745
 msgid "Even more verbose logging for debugging purposes.  Shows for example SQL queries.  Defaults to @samp{#f}."
 msgstr "Journaux encore plus verbeux pour le débogage.  Cela montre par exemple les requêtes SQL effectuées.  La valeur par défaut est @samp{#f}."
 
 #. type: deftypevr
-#: doc/guix.texi:15897
+#: doc/guix.texi:19747
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean auth-debug-passwords?"
 msgstr "{paramètre de @code{dovecot-configuration}} boolean auth-debug-passwords?"
 
 #. type: deftypevr
-#: doc/guix.texi:15902
+#: doc/guix.texi:19752
 msgid "In case of password mismatches, log the passwords and used scheme so the problem can be debugged.  Enabling this also enables @samp{auth-debug}.  Defaults to @samp{#f}."
 msgstr "Dans le cas où le mot de passe était incorrect, indique s'il faut enregistrer les mots de passe et les schémas utilisés pour que le problème puisse être débogué.  Activer cette option active aussi @samp{auth-debug}.  La valeur par défaut est @samp{#f}."
 
 #. type: deftypevr
-#: doc/guix.texi:15904
+#: doc/guix.texi:19754
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean mail-debug?"
 msgstr "{paramètre de @code{dovecot-configuration}} boolean mail-debug?"
 
 #. type: deftypevr
-#: doc/guix.texi:15908
+#: doc/guix.texi:19758
 msgid "Enable mail process debugging.  This can help you figure out why Dovecot isn't finding your mails.  Defaults to @samp{#f}."
 msgstr "Indique s'il faut activer le débogage du traitement des courriels.  Cela peut vous aider à comprendre pourquoi Dovecot ne trouve pas vos courriels.  La valeur par défaut est @samp{#f}."
 
 #. type: deftypevr
-#: doc/guix.texi:15910
+#: doc/guix.texi:19760
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean verbose-ssl?"
 msgstr "{paramètre de @code{dovecot-configuration}} boolean verbose-ssl?"
 
 #. type: deftypevr
-#: doc/guix.texi:15913
+#: doc/guix.texi:19763
 msgid "Show protocol level SSL errors.  Defaults to @samp{#f}."
 msgstr "Indique s'il faut montrer les erreurs au niveau SSL.  La valeur par défaut est  @samp{#f}."
 
 #. type: deftypevr
-#: doc/guix.texi:15915
+#: doc/guix.texi:19765
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string log-timestamp"
 msgstr "{paramètre de @code{dovecot-configuration}} string log-timestamp"
 
 #. type: deftypevr
-#: doc/guix.texi:15919
+#: doc/guix.texi:19769
 msgid "Prefix for each line written to log file.  % codes are in strftime(3) format.  Defaults to @samp{\"\\\"%b %d %H:%M:%S \\\"\"}."
 msgstr "Préfixe à utiliser devant chaque ligne écrite dans le fichier journal.  Les codes % sont au format strftime(3).  La valeur par défaut est @samp{\"\\\"%b %d %H:%M:%S \\\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:15921
+#: doc/guix.texi:19771
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} space-separated-string-list login-log-format-elements"
 msgstr "{paramètre de @code{dovecot-configuration}} space-separated-string-list login-log-format-elements"
 
 #. type: deftypevr
-#: doc/guix.texi:15925
+#: doc/guix.texi:19775
 msgid "List of elements we want to log.  The elements which have a non-empty variable value are joined together to form a comma-separated string."
 msgstr "Liste des éléments qu'il faut enregistrer.  Les éléments qui ont une variable non vide sont agrégés pour former une chaîne de mots séparés par des virgules."
 
 #. type: deftypevr
-#: doc/guix.texi:15927
+#: doc/guix.texi:19777
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string login-log-format"
 msgstr "{paramètre de @code{dovecot-configuration}} string login-log-format"
 
 #. type: deftypevr
-#: doc/guix.texi:15931
+#: doc/guix.texi:19781
 msgid "Login log format.  %s contains @samp{login-log-format-elements} string, %$ contains the data we want to log.  Defaults to @samp{\"%$: %s\"}."
 msgstr "Format du journal de connexion.  %s contient la chaîne @samp{login-log-format-elements}, %$ contient la donnée à enregistrer.  La valeur par défaut est @samp{\"%$: %s\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:15933
+#: doc/guix.texi:19783
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string mail-log-prefix"
 msgstr "{paramètre de @code{dovecot-configuration}} string mail-log-prefix"
 
 #. type: deftypevr
-#: doc/guix.texi:15937
+#: doc/guix.texi:19787
 msgid "Log prefix for mail processes.  See doc/wiki/Variables.txt for list of possible variables you can use.  Defaults to @samp{\"\\\"%s(%u)<%@{pid@}><%@{session@}>: \\\"\"}."
 msgstr "Préfixe à utiliser devant chaque ligne du fichier de journal pour les processus traitant les courriels.  Voir doc/wiki/Variables.txt pour trouver la liste des variables que vous pouvez utiliser.  La valeur par défaut est @samp{\"\\\"%s(%u)<%@{pid@}><%@{session@}>: \\\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:15939
+#: doc/guix.texi:19789
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string deliver-log-format"
 msgstr "{paramètre de @code{dovecot-configuration}} string deliver-log-format"
 
 #. type: deftypevr
-#: doc/guix.texi:15941
+#: doc/guix.texi:19791
 msgid "Format to use for logging mail deliveries.  You can use variables:"
 msgstr "Format à utiliser pour enregistrer les livraisons de courriels.  Vous pouvez utiliser ces variables :"
 
 #. type: item
-#: doc/guix.texi:15942
+#: doc/guix.texi:19792
 #, no-wrap
 msgid "%$"
 msgstr "%$"
 
 #. type: table
-#: doc/guix.texi:15944
+#: doc/guix.texi:19794
 msgid "Delivery status message (e.g.@: @samp{saved to INBOX})"
 msgstr "Message de statut de la livraison (p.@: ex.@: @samp{saved to INBOX})"
 
 #. type: item
-#: doc/guix.texi:15944
+#: doc/guix.texi:19794
 #, no-wrap
 msgid "%m"
 msgstr "%m"
 
 #. type: table
-#: doc/guix.texi:15946
+#: doc/guix.texi:19796
 msgid "Message-ID"
 msgstr "Message-ID"
 
 #. type: item
-#: doc/guix.texi:15946 doc/guix.texi:16478
+#: doc/guix.texi:19796 doc/guix.texi:20328
 #, no-wrap
 msgid "%s"
 msgstr "%s"
 
 #. type: table
-#: doc/guix.texi:15948
+#: doc/guix.texi:19798
 msgid "Subject"
 msgstr "Objet"
 
 #. type: item
-#: doc/guix.texi:15948
+#: doc/guix.texi:19798
 #, no-wrap
 msgid "%f"
 msgstr "%f"
 
 #. type: table
-#: doc/guix.texi:15950
+#: doc/guix.texi:19800
 msgid "From address"
 msgstr "Adresse « de »"
 
 #. type: table
-#: doc/guix.texi:15952
+#: doc/guix.texi:19802
 msgid "Physical size"
 msgstr "Taille physique"
 
 #. type: item
-#: doc/guix.texi:15952
+#: doc/guix.texi:19802
 #, no-wrap
 msgid "%w"
 msgstr "%w"
 
 #. type: table
-#: doc/guix.texi:15954
+#: doc/guix.texi:19804
 msgid "Virtual size."
 msgstr "Taille virtuelle."
 
 #. type: deftypevr
-#: doc/guix.texi:15956
+#: doc/guix.texi:19806
 msgid "Defaults to @samp{\"msgid=%m: %$\"}."
 msgstr "La valeur par défaut est @samp{\"msgid=%m: %$\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:15958
+#: doc/guix.texi:19808
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string mail-location"
 msgstr "{paramètre de @code{dovecot-configuration}} string mail-location"
 
 #. type: deftypevr
-#: doc/guix.texi:15963
+#: doc/guix.texi:19813
 msgid "Location for users' mailboxes.  The default is empty, which means that Dovecot tries to find the mailboxes automatically.  This won't work if the user doesn't yet have any mail, so you should explicitly tell Dovecot the full location."
 msgstr "Emplacement des boîtes à lettre des utilisateurs.  La valeur par défaut est vide, ce qui signifie que Dovecot essaiera de trouver les boîte aux lettres automatiquement.  Cela ne fonctionnera pas si l'utilisateur n'a aucun courriel, donc il vaut mieux indiquer explicitement le bon emplacement à Dovecot."
 
 #. type: deftypevr
-#: doc/guix.texi:15969
-msgid "If you're using mbox, giving a path to the INBOX file (e.g.@: /var/mail/%u) isn't enough.  You'll also need to tell Dovecot where the other mailboxes are kept.  This is called the \"root mail directory\", and it must be the first path given in the @samp{mail-location} setting."
-msgstr "Si vous utilisez mbox, il ne suffit pas de donner le chemin vers le fichier INBOX (p.@: ex.@: /var/mail/%u).  Vous devrez aussi dire à Dovecot où les autres boîtes aux lettres se trouvent.  Cela s'appelle le « répertoire racine des courriels » et il doit être le premier chemin donné à l'option @samp{mail-location}."
+#: doc/guix.texi:19819
+msgid "If you're using mbox, giving a path to the INBOX file (e.g.@: @file{/var/mail/%u}) isn't enough.  You'll also need to tell Dovecot where the other mailboxes are kept.  This is called the @emph{root mail directory}, and it must be the first path given in the @samp{mail-location} setting."
+msgstr "Si vous utilisez mbox, il ne suffit pas de donner le chemin vers le fichier INBOX (p.@: ex.@: @file{/var/mail/%u}).  Vous devrez aussi dire à Dovecot où les autres boîtes aux lettres se trouvent.  Cela s'appelle le « répertoire racine des courriels » et il doit être le premier chemin donné à l'option @samp{mail-location}."
 
 #. type: deftypevr
-#: doc/guix.texi:15971
-msgid "There are a few special variables you can use, eg.:"
-msgstr "Il y a quelques variables spéciales que vous pouvez utiliser :"
+#: doc/guix.texi:19821
+msgid "There are a few special variables you can use, e.g.:"
+msgstr "Il y a quelques variables spéciales que vous pouvez utiliser, p.@: ex@: :"
 
 #. type: table
-#: doc/guix.texi:15975
+#: doc/guix.texi:19825
 msgid "username"
 msgstr "nom d'utilisateur"
 
 #. type: item
-#: doc/guix.texi:15975 doc/guix.texi:16474
+#: doc/guix.texi:19825 doc/guix.texi:20324
 #, no-wrap
 msgid "%n"
 msgstr "%n"
 
 #. type: table
-#: doc/guix.texi:15977
+#: doc/guix.texi:19827
 msgid "user part in user@@domain, same as %u if there's no domain"
 msgstr "la partie « utilisateur » dans « utilisateur@@domaine », comme %u s'il n'y a pas de domaine"
 
 #. type: item
-#: doc/guix.texi:15977
+#: doc/guix.texi:19827
 #, no-wrap
 msgid "%d"
 msgstr "%d"
 
 #. type: table
-#: doc/guix.texi:15979
+#: doc/guix.texi:19829
 msgid "domain part in user@@domain, empty if there's no domain"
 msgstr "la partie « domaine » dans « utilisateur@@domaine », vide s'il n'y a pas de domaine"
 
 #. type: item
-#: doc/guix.texi:15979
+#: doc/guix.texi:19829
 #, no-wrap
 msgid "%h"
 msgstr "%h"
 
 #. type: table
-#: doc/guix.texi:15981
+#: doc/guix.texi:19831
 msgid "home director"
 msgstr "répertoire personnel"
 
 #. type: deftypevr
-#: doc/guix.texi:15984
+#: doc/guix.texi:19834
 msgid "See doc/wiki/Variables.txt for full list.  Some examples:"
 msgstr "Voir doc/wiki/Variables.txt pour la liste complète.  Quelques exemple :"
 
 #. type: item
-#: doc/guix.texi:15985
+#: doc/guix.texi:19835
 #, no-wrap
 msgid "maildir:~/Maildir"
 msgstr "maildir:~/Maildir"
 
 #. type: item
-#: doc/guix.texi:15986
+#: doc/guix.texi:19836
 #, no-wrap
 msgid "mbox:~/mail:INBOX=/var/mail/%u"
 msgstr "mbox:~/mail:INBOX=/var/mail/%u"
 
 #. type: item
-#: doc/guix.texi:15987
+#: doc/guix.texi:19837
 #, no-wrap
 msgid "mbox:/var/mail/%d/%1n/%n:INDEX=/var/indexes/%d/%1n/%"
 msgstr "mbox:/var/mail/%d/%1n/%n:INDEX=/var/indexes/%d/%1n/%"
 
 #. type: deftypevr
-#: doc/guix.texi:15992
+#: doc/guix.texi:19842
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string mail-uid"
 msgstr "{paramètre de @code{dovecot-configuration}} string mail-uid"
 
 #. type: deftypevr
-#: doc/guix.texi:15997
+#: doc/guix.texi:19847
 msgid "System user and group used to access mails.  If you use multiple, userdb can override these by returning uid or gid fields.  You can use either numbers or names.  <doc/wiki/UserIds.txt>.  Defaults to @samp{\"\"}."
 msgstr "Utilisateur et groupe système utilisé pour accéder aux courriels.  Si vous utilisez multiple, userdb peut remplacer ces valeurs en renvoyant les champs uid et gid.  Vous pouvez utiliser soit des nombres, soit des noms.  <doc/wiki/UserIds.txt>.  La valeur par défaut est @samp{\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:15999
+#: doc/guix.texi:19849
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string mail-gid"
 msgstr "{paramètre de @code{dovecot-configuration}} string mail-gid"
 
 #. type: deftypevr
-#: doc/guix.texi:16004
+#: doc/guix.texi:19854
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string mail-privileged-group"
 msgstr "{paramètre de @code{dovecot-configuration}} string mail-privileged-group"
 
 #. type: deftypevr
-#: doc/guix.texi:16010
-msgid "Group to enable temporarily for privileged operations.  Currently this is used only with INBOX when either its initial creation or dotlocking fails.  Typically this is set to \"mail\" to give access to /var/mail.  Defaults to @samp{\"\"}."
-msgstr "Groupe à activer temporairement pour les opérations privilégiées.  Actuellement cela est utilisé uniquement avec INBOX lors de sa création initiale et quand le verrouillage échoie.  Typiquement, vous pouvez utiliser « mail » pour donner accès à /var/mail.  La valeur par défaut est @samp{\"\"}."
+#: doc/guix.texi:19860
+msgid "Group to enable temporarily for privileged operations.  Currently this is used only with INBOX when either its initial creation or dotlocking fails.  Typically this is set to @samp{\"mail\"} to give access to @file{/var/mail}.  Defaults to @samp{\"\"}."
+msgstr "Groupe à activer temporairement pour les opérations privilégiées.  Actuellement cela est utilisé uniquement avec INBOX lors de sa création initiale et quand le verrouillage échoie.  Typiquement, vous pouvez utiliser @samp{\"mail\"} pour donner accès à @file{/var/mail}.  La valeur par défaut est @samp{\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16012
+#: doc/guix.texi:19862
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string mail-access-groups"
 msgstr "{paramètre de @code{dovecot-configuration}} string mail-access-groups"
 
 #. type: deftypevr
-#: doc/guix.texi:16020
-msgid "Grant access to these supplementary groups for mail processes.  Typically these are used to set up access to shared mailboxes.  Note that it may be dangerous to set these if users can create symlinks (e.g.@: if \"mail\" group is set here, ln -s /var/mail ~/mail/var could allow a user to delete others' mailboxes, or ln -s /secret/shared/box ~/mail/mybox would allow reading it).  Defaults to @samp{\"\"}."
-msgstr "Donne l'accès à ces groupes supplémentaires aux processus de courriel.  Ils sont typiquement utilisés pour mettre en place l'accès à des boîtes aux lettres partagées.  Remarquez qu'il peut être dangereux d'utiliser cette option si l'utilisateur peut créer des liens symboliques (p.@: ex.@: si le groupe « mail » est utilisé ici, « ln -s /var/mail ~/mail/var » peut permettre à un utilisateur de supprimer les boîtes aux lettres des autres, ou « ln -s /secret/shared/box ~/mail/mybox » lui permettrait de la lire).  La valeur par défaut est @samp{\"\"}."
+#: doc/guix.texi:19870
+msgid "Grant access to these supplementary groups for mail processes.  Typically these are used to set up access to shared mailboxes.  Note that it may be dangerous to set these if users can create symlinks (e.g.@: if @samp{mail} group is set here, @code{ln -s /var/mail ~/mail/var} could allow a user to delete others' mailboxes, or @code{ln -s /secret/shared/box ~/mail/mybox} would allow reading it).  Defaults to @samp{\"\"}."
+msgstr "Donne l'accès à ces groupes supplémentaires aux processus de courriel.  Ils sont typiquement utilisés pour mettre en place l'accès à des boites aux lettres partagées.  Remarquez qu'il peut être dangereux d'utiliser cette option si l'utilisateur peut créer des liens symboliques (p.@: ex.@: si le groupe @samp{mail} est utilisé ici, @code{ln -s /var/mail ~/mail/var} peut permettre à un utilisateur de supprimer les boites aux lettres des autres, ou @code{ln -s /secret/shared/box ~/mail/mybox} lui permettrait de la lire).  La valeur par défaut est @samp{\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16022
+#: doc/guix.texi:19872
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean mail-full-filesystem-access?"
 msgstr "{paramètre de @code{dovecot-configuration}} boolean mail-full-filesystem-access?"
 
 #. type: deftypevr
-#: doc/guix.texi:16028
-msgid "Allow full file system access to clients.  There's no access checks other than what the operating system does for the active UID/GID.  It works with both maildir and mboxes, allowing you to prefix mailboxes names with e.g.@: /path/ or ~user/.  Defaults to @samp{#f}."
-msgstr "Permet l'accès complet au système de fichiers pour les clients.  Il n'y a pas de vérification d'accès autres que ce que le système d'exploitation fait avec les UID/GID.  Cela fonctionne aussi bien avec maildir qu'avec mbox, ce qui vous permet de préfixer les noms des boîtes aux lettres avec p.@: ex.@: /chemin/ ou ~utilisateur/.  La valeur par défaut est @samp{#f}."
+#: doc/guix.texi:19878
+msgid "Allow full file system access to clients.  There's no access checks other than what the operating system does for the active UID/GID.  It works with both maildir and mboxes, allowing you to prefix mailboxes names with e.g.@: @file{/path/} or @file{~user/}.  Defaults to @samp{#f}."
+msgstr "Permet l'accès complet au système de fichiers pour les clients.  Il n'y a pas de vérification d'accès autres que ce que le système d'exploitation fait avec les UID/GID.  Cela fonctionne aussi bien avec maildir qu'avec mbox, ce qui vous permet de préfixer les noms des boites aux lettres avec p.@: ex.@: @file{/chemin/} ou @file{~utilisateur/}.  La valeur par défaut est @samp{#f}."
 
 #. type: deftypevr
-#: doc/guix.texi:16030
+#: doc/guix.texi:19880
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean mmap-disable?"
 msgstr "{paramètre de @code{dovecot-configuration}} boolean mmap-disable?"
 
 #. type: deftypevr
-#: doc/guix.texi:16034
-msgid "Don't use mmap() at all.  This is required if you store indexes to shared file systems (NFS or clustered file system).  Defaults to @samp{#f}."
-msgstr "Ne pas du tout utiliser mmap().  Cela est requis si vous stockez les index dans des systèmes de fichiers partagés (NFS ou clusterfs).  La valeur par défaut est @samp{#f}."
+#: doc/guix.texi:19884
+msgid "Don't use @code{mmap()} at all.  This is required if you store indexes to shared file systems (NFS or clustered file system).  Defaults to @samp{#f}."
+msgstr "Ne pas du tout utiliser @code{mmap()}.  Cela est requis si vous stockez les index dans des systèmes de fichiers partagés (NFS ou clusterfs).  La valeur par défaut est @samp{#f}."
 
 #. type: deftypevr
-#: doc/guix.texi:16036
+#: doc/guix.texi:19886
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean dotlock-use-excl?"
 msgstr "{paramètre de @code{dovecot-configuration}} boolean dotlock-use-excl?"
 
 #. type: deftypevr
-#: doc/guix.texi:16041
+#: doc/guix.texi:19891
 msgid "Rely on @samp{O_EXCL} to work when creating dotlock files.  NFS supports @samp{O_EXCL} since version 3, so this should be safe to use nowadays by default.  Defaults to @samp{#t}."
 msgstr "S'appuyer sur @samp{O_EXCL} lors de la création de fichiers de verrouillage.  NFS supporte @samp{O_EXCL} depuis la version 3, donc cette option est sûre de nos jours.  La valeur par défaut est @samp{#t}."
 
 #. type: deftypevr
-#: doc/guix.texi:16043
+#: doc/guix.texi:19893
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string mail-fsync"
 msgstr "{paramètre de @code{dovecot-configuration}} string mail-fsync"
 
 #. type: deftypevr
-#: doc/guix.texi:16045
+#: doc/guix.texi:19895
 msgid "When to use fsync() or fdatasync() calls:"
 msgstr "Quand utiliser les appels à fsync() ou fdatasync() :"
 
 #. type: item
-#: doc/guix.texi:16046
+#: doc/guix.texi:19896
 #, no-wrap
 msgid "optimized"
 msgstr "optimized"
 
 #. type: table
-#: doc/guix.texi:16048
+#: doc/guix.texi:19898
 msgid "Whenever necessary to avoid losing important data"
 msgstr "Lorsque cela est nécessaire pour éviter de perdre des données importantes"
 
 #. type: table
-#: doc/guix.texi:16050
-msgid "Useful with e.g.@: NFS when write()s are delayed"
-msgstr "Utile lorsque par exemple les écritures NFS sont retardées"
+#: doc/guix.texi:19900
+msgid "Useful with e.g.@: NFS when @code{write()}s are delayed"
+msgstr "Utile lorsque par exemple les @code{write()} de NFS sont retardées"
 
 #. type: table
-#: doc/guix.texi:16052
+#: doc/guix.texi:19902
 msgid "Never use it (best performance, but crashes can lose data)."
 msgstr "Ne l'utilisez pas (ça a de meilleures performances, mais les crashs font perdre toutes les données)."
 
 #. type: deftypevr
-#: doc/guix.texi:16054
+#: doc/guix.texi:19904
 msgid "Defaults to @samp{\"optimized\"}."
 msgstr "La valeur par défaut est @samp{\"optimized\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16056
+#: doc/guix.texi:19906
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean mail-nfs-storage?"
 msgstr "{paramètre de @code{dovecot-configuration}} boolean mail-nfs-storage?"
 
 #. type: deftypevr
-#: doc/guix.texi:16061
+#: doc/guix.texi:19911
 msgid "Mail storage exists in NFS.  Set this to yes to make Dovecot flush NFS caches whenever needed.  If you're using only a single mail server this isn't needed.  Defaults to @samp{#f}."
 msgstr "Le stockage des courriels se fait sur NFS.  Utilisez cette option pour que Dovecot vide les caches NFS lorsque c'est nécessaire.  Si vous utilisez seulement un simple serveur de courriel, ce n'est pas nécessaire.  La valeur par défaut est @samp{#f}."
 
 #. type: deftypevr
-#: doc/guix.texi:16063
+#: doc/guix.texi:19913
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean mail-nfs-index?"
 msgstr "{paramètre de @code{dovecot-configuration}} boolean mail-nfs-index?"
 
 #. type: deftypevr
-#: doc/guix.texi:16067
+#: doc/guix.texi:19917
 msgid "Mail index files also exist in NFS.  Setting this to yes requires @samp{mmap-disable? #t} and @samp{fsync-disable? #f}.  Defaults to @samp{#f}."
 msgstr "Les fichiers d'index de courriels sont sur un système de fichiers NFS.  Pour utiliser cette option, vous aurez besoin de @samp{mmap-disable? #t} et @samp{fsync-disable? #f}.  La valeur par défaut est @samp{#f}."
 
 #. type: deftypevr
-#: doc/guix.texi:16069
+#: doc/guix.texi:19919
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string lock-method"
 msgstr "{paramètre de @code{dovecot-configuration}} string lock-method"
 
 #. type: deftypevr
-#: doc/guix.texi:16075
+#: doc/guix.texi:19925
 msgid "Locking method for index files.  Alternatives are fcntl, flock and dotlock.  Dotlocking uses some tricks which may create more disk I/O than other locking methods.  NFS users: flock doesn't work, remember to change @samp{mmap-disable}.  Defaults to @samp{\"fcntl\"}."
 msgstr "Méthode de verrouillage des fichiers d'index.  Les alternatives sont fcntl, flock et dotlock.  Le verrouillage-point (dotlocking) utilise des astuces qui peuvent créer plus d'utilisation du disque que les autres méthodes de verrouillage.  Pour les utilisateurs de NFS, flock ne marche pas, et rappelez-vous de modifier @samp{mmap-disable}.  La valeur par défaut est @samp{\"fcntl\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16077
+#: doc/guix.texi:19927
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} file-name mail-temp-dir"
 msgstr "{paramètre de @code{dovecot-configuration}} file-name mail-temp-dir"
 
 #. type: deftypevr
-#: doc/guix.texi:16081
+#: doc/guix.texi:19931
 msgid "Directory in which LDA/LMTP temporarily stores incoming mails >128 kB.  Defaults to @samp{\"/tmp\"}."
 msgstr "Le répertoire dans lequel LDA/LMTP stockent temporairement les courriels de plus de 128 Ko.  La valeur par défaut est @samp{\"/tmp\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16083
+#: doc/guix.texi:19933
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} non-negative-integer first-valid-uid"
 msgstr "{paramètre de @code{dovecot-configuration}} non-negative-integer first-valid-uid"
 
 #. type: deftypevr
-#: doc/guix.texi:16089
+#: doc/guix.texi:19939
 msgid "Valid UID range for users.  This is mostly to make sure that users can't log in as daemons or other system users.  Note that denying root logins is hardcoded to dovecot binary and can't be done even if @samp{first-valid-uid} is set to 0.  Defaults to @samp{500}."
 msgstr "L'intervalle d'UID valides pour les utilisateurs.  Cette option est surtout utile pour s'assurer que les utilisateurs ne peuvent pas s'authentifier en tant que démon ou qu'un autre utilisateur système.  Remarquez que la connexion en root est interdite en dur dans le binaire de dovecot et qu'on ne peut pas l'autoriser même si @samp{first-valid-uid} vaut 0.  La valeur par défaut est @samp{500}."
 
 #. type: deftypevr
-#: doc/guix.texi:16091
+#: doc/guix.texi:19941
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} non-negative-integer last-valid-uid"
 msgstr "{paramètre de @code{dovecot-configuration}} non-negative-integer last-valid-uid"
 
 #. type: deftypevr
-#: doc/guix.texi:16096
+#: doc/guix.texi:19946
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} non-negative-integer first-valid-gid"
 msgstr "{paramètre de @code{dovecot-configuration}} non-negative-integer first-valid-gid"
 
 #. type: deftypevr
-#: doc/guix.texi:16101
+#: doc/guix.texi:19951
 msgid "Valid GID range for users.  Users having non-valid GID as primary group ID aren't allowed to log in.  If user belongs to supplementary groups with non-valid GIDs, those groups are not set.  Defaults to @samp{1}."
 msgstr "Li'ntervalle de GID valides pour les utilisateurs.  Les utilisateurs qui ont un GID non-valide comme numéro de groupe primaire ne peuvent pas se connecter.  Si l'utilisateur appartient à un groupe avec un GID non valide, ce groupe n'est pas utilisable.  La valeur par défaut est @samp{1}."
 
 #. type: deftypevr
-#: doc/guix.texi:16103
+#: doc/guix.texi:19953
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} non-negative-integer last-valid-gid"
 msgstr "{paramètre de @code{dovecot-configuration}} non-negative-integer last-valid-gid"
 
 #. type: deftypevr
-#: doc/guix.texi:16108
+#: doc/guix.texi:19958
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} non-negative-integer mail-max-keyword-length"
 msgstr "{paramètre de @code{dovecot-configuration}} non-negative-integer mail-max-keyword-length"
 
 #. type: deftypevr
-#: doc/guix.texi:16112
+#: doc/guix.texi:19962
 msgid "Maximum allowed length for mail keyword name.  It's only forced when trying to create new keywords.  Defaults to @samp{50}."
 msgstr "Longueur maximale autorisée pour les mots-clefs.  Elle n'est utilisée que lors de la création de nouveaux mots-clefs.  La valeur par défaut est @samp{50}."
 
 #. type: deftypevr
-#: doc/guix.texi:16114
+#: doc/guix.texi:19964
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} colon-separated-file-name-list valid-chroot-dirs"
 msgstr "{paramètre de @code{dovecot-configuration}} colon-separated-file-name-list valid-chroot-dirs"
 
 #. type: deftypevr
-#: doc/guix.texi:16124
-msgid "List of directories under which chrooting is allowed for mail processes (i.e.@: /var/mail will allow chrooting to /var/mail/foo/bar too).  This setting doesn't affect @samp{login-chroot} @samp{mail-chroot} or auth chroot settings.  If this setting is empty, \"/./\" in home dirs are ignored.  WARNING: Never add directories here which local users can modify, that may lead to root exploit.  Usually this should be done only if you don't allow shell access for users.  <doc/wiki/Chrooting.txt>.  Defaults to @samp{()}."
-msgstr "Liste des répertoires sous lesquels le chroot est permis pour les processus de traitement des courriels (c.-à-d.@: /var/mail permettra aussi de se chrooter dans /var/mail/foo/bar).  Ce paramètre n'affecte pas @samp{login-chroot} @samp{mail-chroot} ou les paramètres de chroot de l'authentification.  Si ce paramètre est vide, « /./ » dans les répertoires personnels sont ignorés.  ATTENTION : n'ajoutez jamais de répertoires ici que les utilisateurs locaux peuvent modifier, puisque ça pourrait permettre d'escalader les privilèges.  Normalement vous ne devriez le faire que si les utilisateurs n'ont pas d'accès shell.  <doc/wiki/Chrooting.txt>.  La valeur par défaut est @samp{()}."
+#: doc/guix.texi:19974
+msgid "List of directories under which chrooting is allowed for mail processes (i.e.@: @file{/var/mail} will allow chrooting to @file{/var/mail/foo/bar} too).  This setting doesn't affect @samp{login-chroot} @samp{mail-chroot} or auth chroot settings.  If this setting is empty, @samp{/./} in home dirs are ignored.  WARNING: Never add directories here which local users can modify, that may lead to root exploit.  Usually this should be done only if you don't allow shell access for users.  <doc/wiki/Chrooting.txt>.  Defaults to @samp{()}."
+msgstr "Liste des répertoires sous lesquels le chroot est permis pour les processus de traitement des courriels (c.-à-d.@: @file{/var/mail} permettra aussi de se chrooter dans @file{/var/mail/foo/bar}).  Ce paramètre n'affecte pas @samp{login-chroot} @samp{mail-chroot} ou les paramètres de chroot de l'authentification.  Si ce paramètre est vide, @samp{/./} dans les répertoires personnels sont ignorés.  ATTENTION : n'ajoutez jamais de répertoires ici que les utilisateurs locaux peuvent modifier, puisque ça pourrait permettre d'escalader les privilèges.  Normalement vous ne devriez le faire que si les utilisateurs n'ont pas d'accès shell.  <doc/wiki/Chrooting.txt>.  La valeur par défaut est @samp{()}."
 
 #. type: deftypevr
-#: doc/guix.texi:16126
+#: doc/guix.texi:19976
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string mail-chroot"
 msgstr "{paramètre de @code{dovecot-configuration}} string mail-chroot"
 
 #. type: deftypevr
-#: doc/guix.texi:16135
-msgid "Default chroot directory for mail processes.  This can be overridden for specific users in user database by giving /./ in user's home directory (e.g.@: /home/./user chroots into /home).  Note that usually there is no real need to do chrooting, Dovecot doesn't allow users to access files outside their mail directory anyway.  If your home directories are prefixed with the chroot directory, append \"/.\"@: to @samp{mail-chroot}.  <doc/wiki/Chrooting.txt>.  Defaults to @samp{\"\"}."
-msgstr "Répertoire chroot par défaut pour les processus de traitement des courriels.  Cela peut être modifié pour des utilisateurs particuliers dans la base de donnée en donnant /./ dans le répertoire personnel (p.@: ex.@: /home/./utilisateur permet de se chrooter dans /home).  Remarquez qu'il n'y a d'habitude pas besoin de se chrooter.  Dovecot ne permet pas aux utilisateurs d'accéder aux fichiers en dehors de leur répertoire de courriels de toute façon.  Si vos répertoires personnels sont préfixés par le répertoire de chroot, ajoutez « /. » à @samp{mail-chroot}.  <doc/wiki/Chrooting.txt>.  La valeur par défaut est @samp{\"\"}."
+#: doc/guix.texi:19985
+msgid "Default chroot directory for mail processes.  This can be overridden for specific users in user database by giving @samp{/./} in user's home directory (e.g.@: @samp{/home/./user} chroots into @file{/home}).  Note that usually there is no real need to do chrooting, Dovecot doesn't allow users to access files outside their mail directory anyway.  If your home directories are prefixed with the chroot directory, append @samp{/.} to @samp{mail-chroot}.  <doc/wiki/Chrooting.txt>.  Defaults to @samp{\"\"}."
+msgstr "Répertoire chroot par défaut pour les processus de traitement des courriels.  Cela peut être modifié pour des utilisateurs particuliers dans la base de donnée en donnant @samp{/./} dans le répertoire personnel (p.@: ex.@: @samp{/home/./utilisateur} permet de se chrooter dans @file{/home}).  Remarquez qu'il n'y a d'habitude pas besoin de se chrooter.  Dovecot ne permet pas aux utilisateurs d'accéder aux fichiers en dehors de leur répertoire de courriels de toute façon.  Si vos répertoires personnels sont préfixés par le répertoire de chroot, ajoutez @samp{/.} à @samp{mail-chroot}.  <doc/wiki/Chrooting.txt>.  La valeur par défaut est @samp{\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16137
+#: doc/guix.texi:19987
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} file-name auth-socket-path"
 msgstr "{paramètre de @code{dovecot-configuration}} file-name auth-socket-path"
 
 #. type: deftypevr
-#: doc/guix.texi:16141
+#: doc/guix.texi:19991
 msgid "UNIX socket path to master authentication server to find users.  This is used by imap (for shared users) and lda.  Defaults to @samp{\"/var/run/dovecot/auth-userdb\"}."
 msgstr "Chemin de socket UNIX vers le serveur d'authentification maître pour trouver les utilisateurs.  C'est utilisé par imap (pour les utilisateurs partagés) et lda.  La valeur par défaut est @samp{\"/var/run/dovecot/auth-userdb\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16143
+#: doc/guix.texi:19993
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} file-name mail-plugin-dir"
 msgstr "{paramètre de @code{dovecot-configuration}} file-name mail-plugin-dir"
 
 #. type: deftypevr
-#: doc/guix.texi:16146
+#: doc/guix.texi:19996
 msgid "Directory where to look up mail plugins.  Defaults to @samp{\"/usr/lib/dovecot\"}."
 msgstr "Répertoire où trouver les greffons.  La valeur par défaut est @samp{\"/usr/lib/dovecot\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16148
+#: doc/guix.texi:19998
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} space-separated-string-list mail-plugins"
 msgstr "{paramètre de @code{dovecot-configuration}} space-separated-string-list mail-plugins"
 
 #. type: deftypevr
-#: doc/guix.texi:16152
+#: doc/guix.texi:20002
 msgid "List of plugins to load for all services.  Plugins specific to IMAP, LDA, etc.@: are added to this list in their own .conf files.  Defaults to @samp{()}."
 msgstr "Liste des greffons à charger pour tous les services.  Les greffons spécifiques à IMAP, LDA, etc.@: sont ajoutés à cette liste dans leur propre fichiers .conf.  La valeur par défaut est @samp{()}."
 
 #. type: deftypevr
-#: doc/guix.texi:16154
+#: doc/guix.texi:20004
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} non-negative-integer mail-cache-min-mail-count"
 msgstr "{paramètre de @code{dovecot-configuration}} non-negative-integer mail-cache-min-mail-count"
 
 #. type: deftypevr
-#: doc/guix.texi:16159
+#: doc/guix.texi:20009
 msgid "The minimum number of mails in a mailbox before updates are done to cache file.  This allows optimizing Dovecot's behavior to do less disk writes at the cost of more disk reads.  Defaults to @samp{0}."
 msgstr "Le nombre minimal de courriels dans une boîte aux lettres avant de mettre à jour le fichier de cache.  Cela permet d'optimiser le comportement de Dovecot pour qu'il fasse moins d'écriture disque contre plus de lecture disque.  La valeur par défaut est @samp{0}."
 
 #. type: deftypevr
-#: doc/guix.texi:16161
+#: doc/guix.texi:20011
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string mailbox-idle-check-interval"
 msgstr "{paramètre de @code{dovecot-configuration}} string mailbox-idle-check-interval"
 
 #. type: deftypevr
-#: doc/guix.texi:16168
+#: doc/guix.texi:20018
 msgid "When IDLE command is running, mailbox is checked once in a while to see if there are any new mails or other changes.  This setting defines the minimum time to wait between those checks.  Dovecot can also use dnotify, inotify and kqueue to find out immediately when changes occur.  Defaults to @samp{\"30 secs\"}."
 msgstr "Lorsque la commande IDLE est lancée, la boîte aux lettres est vérifiée de temps en temps pour voir s'il y a de nouveaux messages ou d'autres changements.  Ce paramètre défini le temps d'attente minimum entre deux vérifications.  Dovecot peut aussi utilise dnotify, inotify et kqueue pour trouver immédiatement les changements.  La valeur par défaut est @samp{\"30 secs\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16170
+#: doc/guix.texi:20020
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean mail-save-crlf?"
 msgstr "{paramètre de @code{dovecot-configuration}} boolean mail-save-crlf?"
 
 #. type: deftypevr
-#: doc/guix.texi:16177
+#: doc/guix.texi:20027
 msgid "Save mails with CR+LF instead of plain LF.  This makes sending those mails take less CPU, especially with sendfile() syscall with Linux and FreeBSD.  But it also creates a bit more disk I/O which may just make it slower.  Also note that if other software reads the mboxes/maildirs, they may handle the extra CRs wrong and cause problems.  Defaults to @samp{#f}."
 msgstr "Sauvegarder les courriels avec CR+LF plutôt que seulement LF.  Cela permet de consommer moins de CPU en envoyant ces courriels, surtout avec l'appel système sendfile() de Linux et FreeBSD.  Mais cela crée un peu plus d'utilisation du disque, ce qui peut aussi le ralentir.  Remarquez aussi que si d'autres logiciels lisent les mbox/maildirs, ils peuvent se tromper dans leur traitement de ces CR supplémentaires et causer des problèmes.  La valeur par défaut est @samp{#f}."
 
 #. type: deftypevr
-#: doc/guix.texi:16179
+#: doc/guix.texi:20029
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean maildir-stat-dirs?"
 msgstr "{paramètre de @code{dovecot-configuration}} boolean maildir-stat-dirs?"
 
 #. type: deftypevr
-#: doc/guix.texi:16187
+#: doc/guix.texi:20037
 msgid "By default LIST command returns all entries in maildir beginning with a dot.  Enabling this option makes Dovecot return only entries which are directories.  This is done by stat()ing each entry, so it causes more disk I/O.  (For systems setting struct @samp{dirent->d_type} this check is free and it's done always regardless of this setting).  Defaults to @samp{#f}."
 msgstr "Par défaut la commande LIST renvoie toutes les entrées du maildir qui commencent par un point.  Activer cette option permet à Dovecot de renvoyer uniquement les entrées qui sont des répertoires.  Cela se fait avec stat() sur chaque entrée, ce qui cause plus d'utilisation du disque.  For systems setting struct @samp{dirent->d_type} this check is free and it's done always regardless of this setting).  La valeur par défaut est @samp{#f}."
 
 #. type: deftypevr
-#: doc/guix.texi:16189
+#: doc/guix.texi:20039
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean maildir-copy-with-hardlinks?"
 msgstr "{paramètre de @code{dovecot-configuration}} boolean maildir-copy-with-hardlinks?"
 
 #. type: deftypevr
-#: doc/guix.texi:16194
+#: doc/guix.texi:20044
 msgid "When copying a message, do it with hard links whenever possible.  This makes the performance much better, and it's unlikely to have any side effects.  Defaults to @samp{#t}."
 msgstr "Lors de la copie d'un message, le faire avec des liens en dur si possible.  Cela améliore un peu la performance et n'a que peu de chance d'avoir des effets secondaires."
 
 #. type: deftypevr
-#: doc/guix.texi:16196
+#: doc/guix.texi:20046
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean maildir-very-dirty-syncs?"
 msgstr "{paramètre de @code{dovecot-configuration}} boolean maildir-very-dirty-syncs?"
 
 #. type: deftypevr
-#: doc/guix.texi:16201
+#: doc/guix.texi:20051
 msgid "Assume Dovecot is the only MUA accessing Maildir: Scan cur/ directory only when its mtime changes unexpectedly or when we can't find the mail otherwise.  Defaults to @samp{#f}."
 msgstr "Suppose que Dovecot est le seul MUA qui accède à Maildir : scanne le répertoire cur/ seulement lorsque son mtime change de manière inattendue ou lorsqu'il ne peut pas trouver le courriel autrement.  La valeur par défaut est @samp{#f}."
 
 #. type: deftypevr
-#: doc/guix.texi:16203
+#: doc/guix.texi:20053
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} space-separated-string-list mbox-read-locks"
 msgstr "{paramètre de @code{dovecot-configuration}} space-separated-string-list mbox-read-locks"
 
 #. type: deftypevr
-#: doc/guix.texi:16206
+#: doc/guix.texi:20056
 msgid "Which locking methods to use for locking mbox.  There are four available:"
 msgstr "La méthode de verrouillage à utiliser pour verrouiller le boîtes aux lettres mbox.  Il y en a quatre :"
 
 #. type: item
-#: doc/guix.texi:16208
+#: doc/guix.texi:20058
 #, no-wrap
 msgid "dotlock"
 msgstr "dotlock"
 
 #. type: table
-#: doc/guix.texi:16212
+#: doc/guix.texi:20062
 msgid "Create <mailbox>.lock file.  This is the oldest and most NFS-safe solution.  If you want to use /var/mail/ like directory, the users will need write access to that directory."
 msgstr "Crée un fichier <mailbox>.lock.  C'est la solution la plus ancienne et la plus sûr pour NFS.  Si vous voulez utiliser /var/mail/, les utilisateurs auront besoin de l'accès en écriture à ce répertoire."
 
 #. type: item
-#: doc/guix.texi:16212
+#: doc/guix.texi:20062
 #, no-wrap
 msgid "dotlock-try"
 msgstr "dotlock-try"
 
 #. type: table
-#: doc/guix.texi:16215
+#: doc/guix.texi:20065
 msgid "Same as dotlock, but if it fails because of permissions or because there isn't enough disk space, just skip it."
 msgstr "Comme pour dotlock, mais si elle échoue à cause d'un problème de permission ou parce qu'il n'y a pas assez d'espace disque, l'ignore."
 
 #. type: item
-#: doc/guix.texi:16215
+#: doc/guix.texi:20065
 #, no-wrap
 msgid "fcntl"
 msgstr "fcntl"
 
 #. type: table
-#: doc/guix.texi:16217
+#: doc/guix.texi:20067
 msgid "Use this if possible.  Works with NFS too if lockd is used."
 msgstr "Utilisez cette méthode si possible.  Elle fonctionne aussi avec NFS si vous utilisez lockd."
 
 #. type: item
-#: doc/guix.texi:16217
+#: doc/guix.texi:20067
 #, no-wrap
 msgid "flock"
 msgstr "flock"
 
 #. type: table
-#: doc/guix.texi:16219 doc/guix.texi:16221
+#: doc/guix.texi:20069 doc/guix.texi:20071
 msgid "May not exist in all systems.  Doesn't work with NFS."
 msgstr "Peut ne pas exister sur tous les systèmes.  Ne fonctionne pas avec NFS."
 
 #. type: item
-#: doc/guix.texi:16219
+#: doc/guix.texi:20069
 #, no-wrap
 msgid "lockf"
 msgstr "lockf"
 
 #. type: deftypevr
-#: doc/guix.texi:16227
+#: doc/guix.texi:20077
 msgid "You can use multiple locking methods; if you do the order they're declared in is important to avoid deadlocks if other MTAs/MUAs are using multiple locking methods as well.  Some operating systems don't allow using some of them simultaneously."
 msgstr "Vous pouvez utiliser plusieurs méthodes de verrouillage ; dans ce cas l'ordre dans lequel elles sont déclarées est important pour éviter des interblocages si d'autres MTA/MUA utilisent aussi plusieurs méthodes.  Certains systèmes d'exploitation ne permettent pas d'utiliser certaines méthodes en même temps."
 
 #. type: deftypevr
-#: doc/guix.texi:16229
+#: doc/guix.texi:20079
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} space-separated-string-list mbox-write-locks"
 msgstr "{paramètre de @code{dovecot-configuration}} space-separated-string-list mbox-write-locks"
 
 #. type: deftypevr
-#: doc/guix.texi:16233
+#: doc/guix.texi:20083
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string mbox-lock-timeout"
 msgstr "{paramètre de @code{dovecot-configuration}} string mbox-lock-timeout"
 
 #. type: deftypevr
-#: doc/guix.texi:16236
+#: doc/guix.texi:20086
 msgid "Maximum time to wait for lock (all of them) before aborting.  Defaults to @samp{\"5 mins\"}."
 msgstr "Temps d'attente maximal pour un verrou (tous les verrous) avant d'abandonner.  La valeur par défaut est @samp{\"5 mins\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16238
+#: doc/guix.texi:20088
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string mbox-dotlock-change-timeout"
 msgstr "{paramètre de @code{dovecot-configuration}} string mbox-dotlock-change-timeout"
 
 #. type: deftypevr
-#: doc/guix.texi:16242
+#: doc/guix.texi:20092
 msgid "If dotlock exists but the mailbox isn't modified in any way, override the lock file after this much time.  Defaults to @samp{\"2 mins\"}."
 msgstr "Si le fichier dotlock existe mais que la boîte aux lettres n'est pas modifiée, remplacer le fichier de verrouillage après ce temps d'attente.  La valeur par défaut est @samp{\"2 mins\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16244
+#: doc/guix.texi:20094
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean mbox-dirty-syncs?"
 msgstr "{paramètre de @code{dovecot-configuration}} boolean mbox-dirty-syncs?"
 
 #. type: deftypevr
-#: doc/guix.texi:16255
+#: doc/guix.texi:20105
 msgid "When mbox changes unexpectedly we have to fully read it to find out what changed.  If the mbox is large this can take a long time.  Since the change is usually just a newly appended mail, it'd be faster to simply read the new mails.  If this setting is enabled, Dovecot does this but still safely fallbacks to re-reading the whole mbox file whenever something in mbox isn't how it's expected to be.  The only real downside to this setting is that if some other MUA changes message flags, Dovecot doesn't notice it immediately.  Note that a full sync is done with SELECT, EXAMINE, EXPUNGE and CHECK commands.  Defaults to @samp{#t}."
 msgstr "Lorsqu'un mbox change ne manière inattendue, il faut le lire en entier pour savoir ce qui a changé.  Si le mbox est assez grand cela peut prendre beaucoup de temps.  Comme le changement est habituellement un simple courriel supplémentaire, il serait plus rapide de lire le nouveaux courriels.  Si ce paramètre est activé, Dovecot fait cela mais revient toujours à relire le fichier mbox complet si le fichier n'est pas comme attendu.  Le seul réel inconvénient à ce paramètre est que certains MUA changent les drapeaux des messages, et dans ce cas Dovecot ne s'en rend pas immédiatement compte.  Remarquez qu'une synchronisation complète est effectuée avec les commandes SELECT, EXAMINE, EXPUNGE et CHECK.  La valeur par défaut est @samp{#t}."
 
 #. type: deftypevr
-#: doc/guix.texi:16257
+#: doc/guix.texi:20107
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean mbox-very-dirty-syncs?"
 msgstr "{paramètre de @code{dovecot-configuration}} boolean mbox-very-dirty-syncs?"
 
 #. type: deftypevr
-#: doc/guix.texi:16262
+#: doc/guix.texi:20112
 msgid "Like @samp{mbox-dirty-syncs}, but don't do full syncs even with SELECT, EXAMINE, EXPUNGE or CHECK commands.  If this is set, @samp{mbox-dirty-syncs} is ignored.  Defaults to @samp{#f}."
 msgstr "Comme @samp{mbox-dirty-syncs}, mais ne synchronise pas complètement même avec les commandes SELECT, EXAMINE, EXPUNGE ou CHECK.  Si l'option n'est pas activée, @samp{mbox-dirty-syncs} est ignorée.  La valeur par défaut est @samp{#f}."
 
 #. type: deftypevr
-#: doc/guix.texi:16264
+#: doc/guix.texi:20114
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean mbox-lazy-writes?"
 msgstr "{paramètre de @code{dovecot-configuration}} boolean mbox-lazy-writes?"
 
 #. type: deftypevr
-#: doc/guix.texi:16270
+#: doc/guix.texi:20120
 msgid "Delay writing mbox headers until doing a full write sync (EXPUNGE and CHECK commands and when closing the mailbox).  This is especially useful for POP3 where clients often delete all mails.  The downside is that our changes aren't immediately visible to other MUAs.  Defaults to @samp{#t}."
 msgstr "Attendre avant d'écrire les en-têtes mbox jusqu'à la prochaine synchronisation des écritures (les commandes EXPUNGE et CHECK et quand on ferme la boîte aux lettres).  C'est surtout utile pour POP3 où les clients suppriment souvent tous les courriels.  L'inconvénient c'est que vos changements ne sont pas immédiatement visibles pour les autres MUA.  La valeur par défaut est @samp{#t}."
 
 #. type: deftypevr
-#: doc/guix.texi:16272
+#: doc/guix.texi:20122
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} non-negative-integer mbox-min-index-size"
 msgstr "{paramètre de @code{dovecot-configuration}} non-negative-integer mbox-min-index-size"
 
 #. type: deftypevr
-#: doc/guix.texi:16277
+#: doc/guix.texi:20127
 msgid "If mbox size is smaller than this (e.g.@: 100k), don't write index files.  If an index file already exists it's still read, just not updated.  Defaults to @samp{0}."
 msgstr "Si la taille du fichier mbox est plus petite que cela (p.@: ex.@: 100k), ne pas écrire de fichier d'index.  Si un fichier d'index existe déjà il est toujours lu, mais pas mis à jour.  La valeur par défaut est @samp{0}."
 
 #. type: deftypevr
-#: doc/guix.texi:16279
+#: doc/guix.texi:20129
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} non-negative-integer mdbox-rotate-size"
 msgstr "{paramètre de @code{dovecot-configuration}} non-negative-integer mdbox-rotate-size"
 
 #. type: deftypevr
-#: doc/guix.texi:16282
+#: doc/guix.texi:20132
 msgid "Maximum dbox file size until it's rotated.  Defaults to @samp{10000000}."
 msgstr "Taille du fichier dbox maximale avant rotation.  La valeur par défaut est @samp{10000000}."
 
 #. type: deftypevr
-#: doc/guix.texi:16284
+#: doc/guix.texi:20134
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string mdbox-rotate-interval"
 msgstr "{paramètre de @code{dovecot-configuration}} string mdbox-rotate-interval"
 
 #. type: deftypevr
-#: doc/guix.texi:16289
+#: doc/guix.texi:20139
 msgid "Maximum dbox file age until it's rotated.  Typically in days.  Day begins from midnight, so 1d = today, 2d = yesterday, etc.  0 = check disabled.  Defaults to @samp{\"1d\"}."
 msgstr "Âge maximum du fichier dbox avant rotation.  Typiquement en jours.  Les jours commencent à minuit, donc 1d signifie aujourd'hui, 2d pour hier, etc.  0 pour désactiver la vérification.  La valeur par défaut est @samp{\"1d\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16291
+#: doc/guix.texi:20141
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean mdbox-preallocate-space?"
 msgstr "{paramètre de @code{dovecot-configuration}} boolean mdbox-preallocate-space?"
 
 #. type: deftypevr
-#: doc/guix.texi:16296
+#: doc/guix.texi:20146
 msgid "When creating new mdbox files, immediately preallocate their size to @samp{mdbox-rotate-size}.  This setting currently works only in Linux with some file systems (ext4, xfs).  Defaults to @samp{#f}."
 msgstr "Lors de la création des fichiers mdbox, préallouer immédiatement leur taille à @samp{mdbox-rotate-size}.  Ce paramètre ne fonctionne actuellement que dans Linux avec certains systèmes de fichiers (ext4, xfs).  La valeur par défaut est @samp{#f}."
 
 #. type: deftypevr
-#: doc/guix.texi:16298
+#: doc/guix.texi:20148
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string mail-attachment-dir"
 msgstr "{paramètre de @code{dovecot-configuration}} string mail-attachment-dir"
 
 #. type: deftypevr
-#: doc/guix.texi:16302
+#: doc/guix.texi:20152
 msgid "sdbox and mdbox support saving mail attachments to external files, which also allows single instance storage for them.  Other backends don't support this for now."
-msgstr "Les formats sdbox et mdbox supportent la sauvegarde des pièces-jointes dans des fichiers externes, ce qui permet de les stocker une seule fois.  Les autres moteurs ne le supportent pas pour le moment."
+msgstr "sdbox et mdbox supportent la sauvegarde des pièces-jointes dans des fichiers externes, ce qui permet de les stocker une seule fois.  Les autres moteurs ne le supportent pas pour le moment."
 
 #. type: deftypevr
-#: doc/guix.texi:16304
+#: doc/guix.texi:20154
 msgid "WARNING: This feature hasn't been tested much yet.  Use at your own risk."
 msgstr "ATTENTION : Cette fonctionnalité n'a pas été beaucoup testée.  Utilisez-la à vos risques et périls."
 
 #. type: deftypevr
-#: doc/guix.texi:16307
+#: doc/guix.texi:20157
 msgid "Directory root where to store mail attachments.  Disabled, if empty.  Defaults to @samp{\"\"}."
 msgstr "Racine du répertoire où stocker les pièces-jointes.  Désactivé si vide.  La valeur par défaut est @samp{\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16309
+#: doc/guix.texi:20159
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} non-negative-integer mail-attachment-min-size"
 msgstr "{paramètre de @code{dovecot-configuration}} non-negative-integer mail-attachment-min-size"
 
 #. type: deftypevr
-#: doc/guix.texi:16314
+#: doc/guix.texi:20164
 msgid "Attachments smaller than this aren't saved externally.  It's also possible to write a plugin to disable saving specific attachments externally.  Defaults to @samp{128000}."
 msgstr "Les pièces-jointes plus petites que cela ne sont pas enregistrées à part.  Il est aussi possible d'écrire un greffon pour désactiver l'enregistrement externe de certaines pièces-jointes spécifiques.  La valeur par défaut est @samp{128000}."
 
 #. type: deftypevr
-#: doc/guix.texi:16316
+#: doc/guix.texi:20166
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string mail-attachment-fs"
 msgstr "{paramètre de @code{dovecot-configuration}} string mail-attachment-fs"
 
 #. type: deftypevr
-#: doc/guix.texi:16318
+#: doc/guix.texi:20168
 msgid "File system backend to use for saving attachments:"
 msgstr "Moteur du système de fichier à utiliser pour sauvegarder les pièces-jointes :"
 
 #. type: item
-#: doc/guix.texi:16319
+#: doc/guix.texi:20169
 #, no-wrap
 msgid "posix"
 msgstr "posix"
 
 #. type: table
-#: doc/guix.texi:16321
+#: doc/guix.texi:20171
 msgid "No SiS done by Dovecot (but this might help FS's own deduplication)"
 msgstr "Pas de SiS (single instance storage) par Dovecot (mais cela peut aider la déduplication du système de fichier)"
 
 #. type: item
-#: doc/guix.texi:16321
+#: doc/guix.texi:20171
 #, no-wrap
 msgid "sis posix"
 msgstr "sis posix"
 
 #. type: table
-#: doc/guix.texi:16323
+#: doc/guix.texi:20173
 msgid "SiS with immediate byte-by-byte comparison during saving"
 msgstr "SiS avec comparaison bit-à-bit immédiate pendant la sauvegarde"
 
 #. type: item
-#: doc/guix.texi:16323
+#: doc/guix.texi:20173
 #, no-wrap
 msgid "sis-queue posix"
 msgstr "sis-queue posix"
 
 #. type: table
-#: doc/guix.texi:16325
+#: doc/guix.texi:20175
 msgid "SiS with delayed comparison and deduplication."
 msgstr "SiS avec déduplication et comparaison différées."
 
 #. type: deftypevr
-#: doc/guix.texi:16327
+#: doc/guix.texi:20177
 msgid "Defaults to @samp{\"sis posix\"}."
 msgstr "La valeur par défaut est @samp{\"sis posix\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16329
+#: doc/guix.texi:20179
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string mail-attachment-hash"
 msgstr "{paramètre de @code{dovecot-configuration}} string mail-attachment-hash"
 
 #. type: deftypevr
-#: doc/guix.texi:16335
+#: doc/guix.texi:20185
 msgid "Hash format to use in attachment filenames.  You can add any text and variables: @code{%@{md4@}}, @code{%@{md5@}}, @code{%@{sha1@}}, @code{%@{sha256@}}, @code{%@{sha512@}}, @code{%@{size@}}.  Variables can be truncated, e.g.@: @code{%@{sha256:80@}} returns only first 80 bits.  Defaults to @samp{\"%@{sha1@}\"}."
 msgstr "Format de hash à utiliser dans les noms de fichiers des pièces-jointes.  Vous pouvez ajouter n'importe quel texte ou variable : @code{%@{md4@}}, @code{%@{md5@}}, @code{%@{sha1@}}, @code{%@{sha256@}}, @code{%@{sha512@}}, @code{%@{size@}}.  Les variables peuvent être tronquées, p.@: ex.@: @code{%@{sha256:80@}} renvoie seulement les 80 premiers bits.  La valeur par défaut est @samp{\"%@{sha1@}\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16337
+#: doc/guix.texi:20187
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} non-negative-integer default-process-limit"
 msgstr "{paramètre de @code{dovecot-configuration}} non-negative-integer default-process-limit"
 
 #. type: deftypevr
-#: doc/guix.texi:16342
+#: doc/guix.texi:20192
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} non-negative-integer default-client-limit"
 msgstr "{paramètre de @code{dovecot-configuration}} non-negative-integer default-client-limit"
 
 #. type: deftypevr
-#: doc/guix.texi:16345 doc/guix.texi:21610
+#: doc/guix.texi:20195 doc/guix.texi:26377
 msgid "Defaults to @samp{1000}."
 msgstr "La valeur par défaut est @samp{1000}."
 
 #. type: deftypevr
-#: doc/guix.texi:16347
+#: doc/guix.texi:20197
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} non-negative-integer default-vsz-limit"
 msgstr "{paramètre de @code{dovecot-configuration}} non-negative-integer default-vsz-limit"
 
 #. type: deftypevr
-#: doc/guix.texi:16352
+#: doc/guix.texi:20202
 msgid "Default VSZ (virtual memory size) limit for service processes.  This is mainly intended to catch and kill processes that leak memory before they eat up everything.  Defaults to @samp{256000000}."
 msgstr "Limite VSZ (taille mémoire virtuelle) par défaut pour les processus de service.  C'est surtout pour attraper et tuer les processus qui font fuiter la mémoire avant qu'ils ne l'utilisent en entier.  La valeur par défaut est @samp{256000000}."
 
 #. type: deftypevr
-#: doc/guix.texi:16354
+#: doc/guix.texi:20204
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string default-login-user"
 msgstr "{paramètre de @code{dovecot-configuration}} string default-login-user"
 
 #. type: deftypevr
-#: doc/guix.texi:16359
+#: doc/guix.texi:20209
 msgid "Login user is internally used by login processes.  This is the most untrusted user in Dovecot system.  It shouldn't have access to anything at all.  Defaults to @samp{\"dovenull\"}."
 msgstr "Utilisateur de connexion utilisé en interne par les processus de connexion.  C'est l'utilisateur avec la confiance minimale pour Dovecot.  Il ne devrait avoir accès à rien du tout.  La valeur par défaut est @samp{\"dovenull\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16361
+#: doc/guix.texi:20211
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string default-internal-user"
 msgstr "{paramètre de @code{dovecot-configuration}} string default-internal-user"
 
 #. type: deftypevr
-#: doc/guix.texi:16366
+#: doc/guix.texi:20216
 msgid "Internal user is used by unprivileged processes.  It should be separate from login user, so that login processes can't disturb other processes.  Defaults to @samp{\"dovecot\"}."
 msgstr "Utilisateur utilisé en interne par les processus non privilégiés.  Il devrait être différent de l'utilisateur de connexion, pour que les processus de connexion ne puissent pas perturber les autres processus.  La valeur par défaut est @samp{\"dovecot\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16368
+#: doc/guix.texi:20218
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string ssl?"
 msgstr "{paramètre de @code{dovecot-configuration}} string ssl?"
 
 #. type: deftypevr
-#: doc/guix.texi:16371
+#: doc/guix.texi:20221
 msgid "SSL/TLS support: yes, no, required.  <doc/wiki/SSL.txt>.  Defaults to @samp{\"required\"}."
 msgstr "Support SSL/TLS : yes, no, required.  <doc/wiki/SSL.txt>.  La valeur par défaut est @samp{\"required\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16373
+#: doc/guix.texi:20223
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string ssl-cert"
 msgstr "{paramètre de @code{dovecot-configuration}} string ssl-cert"
 
 #. type: deftypevr
-#: doc/guix.texi:16376
+#: doc/guix.texi:20226
 msgid "PEM encoded X.509 SSL/TLS certificate (public key).  Defaults to @samp{\"</etc/dovecot/default.pem\"}."
 msgstr "Certificat SSL/TLS X.509 encodé en PEM (clef publique).  La valeur par défaut est @samp{\"</etc/dovecot/default.pem\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16378
+#: doc/guix.texi:20228
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string ssl-key"
 msgstr "{paramètre de @code{dovecot-configuration}} string ssl-key"
 
 #. type: deftypevr
-#: doc/guix.texi:16383
+#: doc/guix.texi:20233
 msgid "PEM encoded SSL/TLS private key.  The key is opened before dropping root privileges, so keep the key file unreadable by anyone but root.  Defaults to @samp{\"</etc/dovecot/private/default.pem\"}."
 msgstr "Clef privée SSL/TLS encodée en PEM.  La clef est ouverte avant l'abandon des privilèges root, donc laissez-la non-lisible pour les utilisateurs.  La valeur par défaut est @samp{\"</etc/dovecot/private/default.pem\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16385
+#: doc/guix.texi:20235
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string ssl-key-password"
 msgstr "{paramètre de @code{dovecot-configuration}} string ssl-key-password"
 
 #. type: deftypevr
-#: doc/guix.texi:16391
+#: doc/guix.texi:20241
 msgid "If key file is password protected, give the password here.  Alternatively give it when starting dovecot with -p parameter.  Since this file is often world-readable, you may want to place this setting instead to a different.  Defaults to @samp{\"\"}."
 msgstr "Si le fichier de clef est protégé par un mot de passe, donnez-le ici.  Autrement, donnez-le en démarrant dovecot avec le paramètre -p.  Comme ce fichier est souvent lisible pour tout le monde, vous pourriez vouloir placer ce paramètre dans un autre fichier.  La valeur par défaut est @samp{\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16393
+#: doc/guix.texi:20243
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string ssl-ca"
 msgstr "{paramètre de @code{dovecot-configuration}} string ssl-ca"
 
 #. type: deftypevr
-#: doc/guix.texi:16399
+#: doc/guix.texi:20249
 msgid "PEM encoded trusted certificate authority.  Set this only if you intend to use @samp{ssl-verify-client-cert? #t}.  The file should contain the CA certificate(s) followed by the matching CRL(s).  (e.g.@: @samp{ssl-ca </etc/ssl/certs/ca.pem}).  Defaults to @samp{\"\"}."
 msgstr "Certificat de l'autorité de confiance encodé en PEM.  Indiquez cette valeur si vous voulez utiliser @samp{ssl-verify-client-cert? #t}.  Le fichier devrait contenir les certificats de CA suivi par les CRL correspondants (p.@: ex.@: @samp{ssl-ca </etc/ssl/certs/ca.pem}).  La valeur par défaut est @samp{\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16401
+#: doc/guix.texi:20251
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean ssl-require-crl?"
 msgstr "{paramètre de @code{dovecot-configuration}} boolean ssl-require-crl?"
 
 #. type: deftypevr
-#: doc/guix.texi:16404
+#: doc/guix.texi:20254
 msgid "Require that CRL check succeeds for client certificates.  Defaults to @samp{#t}."
 msgstr "Indique si les certificats clients doivent réussir la vérification du CRL.  La valeur par défaut est @samp{#t}."
 
 #. type: deftypevr
-#: doc/guix.texi:16406
+#: doc/guix.texi:20256
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean ssl-verify-client-cert?"
 msgstr "{paramètre de @code{dovecot-configuration}} boolean ssl-verify-client-cert?"
 
 #. type: deftypevr
-#: doc/guix.texi:16410
+#: doc/guix.texi:20260
 msgid "Request client to send a certificate.  If you also want to require it, set @samp{auth-ssl-require-client-cert? #t} in auth section.  Defaults to @samp{#f}."
 msgstr "Demande aux clients d'envoyer un certificat.  Si vous voulez aussi le requérir, indiquez @samp{auth-ssl-require-client-cert? #t} dans la section auth.  La valeur par défaut est @samp{#f}."
 
 #. type: deftypevr
-#: doc/guix.texi:16412
+#: doc/guix.texi:20262
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string ssl-cert-username-field"
 msgstr "{paramètre de @code{dovecot-configuration}} string ssl-cert-username-field"
 
 #. type: deftypevr
-#: doc/guix.texi:16417
+#: doc/guix.texi:20267
 msgid "Which field from certificate to use for username.  commonName and x500UniqueIdentifier are the usual choices.  You'll also need to set @samp{auth-ssl-username-from-cert? #t}.  Defaults to @samp{\"commonName\"}."
 msgstr "Le champ du certificat à utiliser pour le nom d'utilisateur.  Les choix habituels sont commonName et X500UniqueIdentifier.  Vous devrez aussi indiquer @samp{auth-ssl-username-from-cert? #t}.  La valeur par défaut est @samp{\"commonName\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16419
+#: doc/guix.texi:20269
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string ssl-min-protocol"
 msgstr "{paramètre de @code{dovecot-configuration}} string ssl-min-protocol"
 
 #. type: deftypevr
-#: doc/guix.texi:16422
+#: doc/guix.texi:20272
 msgid "Minimum SSL protocol version to accept.  Defaults to @samp{\"TLSv1\"}."
 msgstr "Version minimale de SSL à accepter.  La valeur par défaut est @samp{\"TLSv1\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16424
+#: doc/guix.texi:20274
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string ssl-cipher-list"
 msgstr "{paramètre de @code{dovecot-configuration}} string ssl-cipher-list"
 
 #. type: deftypevr
-#: doc/guix.texi:16427
+#: doc/guix.texi:20277
 msgid "SSL ciphers to use.  Defaults to @samp{\"ALL:!kRSA:!SRP:!kDHd:!DSS:!aNULL:!eNULL:!EXPORT:!DES:!3DES:!MD5:!PSK:!RC4:!ADH:!LOW@@STRENGTH\"}."
 msgstr "Méthodes de chiffrement à utiliser.  La valeur par défaut est @samp{\"ALL:!kRSA:!SRP:!kDHd:!DSS:!aNULL:!eNULL:!EXPORT:!DES:!3DES:!MD5:!PSK:!RC4:!ADH:!LOW@@STRENGTH\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16429
+#: doc/guix.texi:20279
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string ssl-crypto-device"
 msgstr "{paramètre de @code{dovecot-configuration}} string ssl-crypto-device"
 
 #. type: deftypevr
-#: doc/guix.texi:16432
+#: doc/guix.texi:20282
 msgid "SSL crypto device to use, for valid values run \"openssl engine\".  Defaults to @samp{\"\"}."
 msgstr "Moteur cryptographique SSL à utiliser.  Pour les valeur valides, lancez « openssl engine ».  La valeur par défaut est @samp{\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16434
+#: doc/guix.texi:20284
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string postmaster-address"
 msgstr "{paramètre de @code{dovecot-configuration}} string postmaster-address"
 
 #. type: deftypevr
-#: doc/guix.texi:16438
+#: doc/guix.texi:20288
 msgid "Address to use when sending rejection mails.  %d expands to recipient domain.  Defaults to @samp{\"postmaster@@%d\"}."
 msgstr "Adresse à utiliser pour envoyer les courriels de rejet.  %d correspond au domaine du destinataire.  La valeur par défaut est @samp{\"postmaster@@%d\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16440
+#: doc/guix.texi:20290
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string hostname"
 msgstr "{paramètre de @code{dovecot-configuration}} string hostname"
 
 #. type: deftypevr
-#: doc/guix.texi:16444
+#: doc/guix.texi:20294
 msgid "Hostname to use in various parts of sent mails (e.g.@: in Message-Id)  and in LMTP replies.  Default is the system's real hostname@@domain.  Defaults to @samp{\"\"}."
 msgstr "Nom d'hôte à utiliser dans diverses parties des courriels envoyés (p.@: ex.@: dans Message-Id) et dans les réponses LMTP.  La valeur par défaut est le nomdhôte@@domaine réel du système.  La valeur par défaut est @samp{\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16446
+#: doc/guix.texi:20296
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean quota-full-tempfail?"
 msgstr "{paramètre de @code{dovecot-configuration}} boolean quota-full-tempfail?"
 
 #. type: deftypevr
-#: doc/guix.texi:16450
+#: doc/guix.texi:20300
 msgid "If user is over quota, return with temporary failure instead of bouncing the mail.  Defaults to @samp{#f}."
 msgstr "Si l'utilisateur dépasse le quota, renvoie un échec temporaire au lieu de rejeter le courriel.  La valeur par défaut est @samp{#f}."
 
 #. type: deftypevr
-#: doc/guix.texi:16452
+#: doc/guix.texi:20302
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} file-name sendmail-path"
 msgstr "{paramètre de @code{dovecot-configuration}} file-name sendmail-path"
 
 #. type: deftypevr
-#: doc/guix.texi:16455
+#: doc/guix.texi:20305
 msgid "Binary to use for sending mails.  Defaults to @samp{\"/usr/sbin/sendmail\"}."
 msgstr "Binaire à utiliser pour envoyer des courriels.  La valeur par défaut est @samp{\"/usr/sbin/sendmail\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16457
+#: doc/guix.texi:20307
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string submission-host"
 msgstr "{paramètre de @code{dovecot-configuration}} string submission-host"
 
 #. type: deftypevr
-#: doc/guix.texi:16461
+#: doc/guix.texi:20311
 msgid "If non-empty, send mails via this SMTP host[:port] instead of sendmail.  Defaults to @samp{\"\"}."
 msgstr "Si la valeur est non vide, envoyer les courriels à ce serveur SMTP hôte[:port] au lieu de sendmail.  La valeur par défaut est @samp{\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16463
+#: doc/guix.texi:20313
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string rejection-subject"
 msgstr "{paramètre de @code{dovecot-configuration}} string rejection-subject"
 
 #. type: deftypevr
-#: doc/guix.texi:16467
+#: doc/guix.texi:20317
 msgid "Subject: header to use for rejection mails.  You can use the same variables as for @samp{rejection-reason} below.  Defaults to @samp{\"Rejected: %s\"}."
 msgstr "En-tête d'objet à utiliser pour les courriels de rejet.  Vous pouvez utiliser les mêmes variables que pour @samp{rejection-reason} ci-dessous.  La valeur par défaut est @samp{\"Rejected: %s\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16469
+#: doc/guix.texi:20319
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string rejection-reason"
 msgstr "{paramètre de @code{dovecot-configuration}} string rejection-reason"
 
 #. type: deftypevr
-#: doc/guix.texi:16472
+#: doc/guix.texi:20322
 msgid "Human readable error message for rejection mails.  You can use variables:"
 msgstr "Message d'erreur pour les humains dans les courriels de rejet.  Vous pouvez utiliser ces variables :"
 
 #. type: table
-#: doc/guix.texi:16476
+#: doc/guix.texi:20326
 msgid "CRLF"
 msgstr "CRLF"
 
 #. type: item
-#: doc/guix.texi:16476
+#: doc/guix.texi:20326
 #, no-wrap
 msgid "%r"
 msgstr "%r"
 
 #. type: table
-#: doc/guix.texi:16478
+#: doc/guix.texi:20328
 msgid "reason"
 msgstr "raison"
 
 #. type: table
-#: doc/guix.texi:16480
+#: doc/guix.texi:20330
 msgid "original subject"
 msgstr "objet du courriel de départ"
 
 #. type: item
-#: doc/guix.texi:16480
+#: doc/guix.texi:20330
 #, no-wrap
 msgid "%t"
 msgstr "%t"
 
 #. type: table
-#: doc/guix.texi:16482
+#: doc/guix.texi:20332
 msgid "recipient"
 msgstr "destinataire"
 
 #. type: deftypevr
-#: doc/guix.texi:16484
+#: doc/guix.texi:20334
 msgid "Defaults to @samp{\"Your message to <%t> was automatically rejected:%n%r\"}."
 msgstr "La valeur par défaut est @samp{\"Your message to <%t> was automatically rejected:%n%r\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16486
+#: doc/guix.texi:20336
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string recipient-delimiter"
 msgstr "{paramètre de @code{dovecot-configuration}} string recipient-delimiter"
 
 #. type: deftypevr
-#: doc/guix.texi:16490
+#: doc/guix.texi:20340
 msgid "Delimiter character between local-part and detail in email address.  Defaults to @samp{\"+\"}."
 msgstr "Caractère de délimitation entre la partie locale et le détail des adresses de courriel.  La valeur par défaut est @samp{\"+\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16492
+#: doc/guix.texi:20342
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string lda-original-recipient-header"
 msgstr "{paramètre de @code{dovecot-configuration}} string lda-original-recipient-header"
 
 #. type: deftypevr
-#: doc/guix.texi:16498
+#: doc/guix.texi:20348
 msgid "Header where the original recipient address (SMTP's RCPT TO: address) is taken from if not available elsewhere.  With dovecot-lda -a parameter overrides this.  A commonly used header for this is X-Original-To.  Defaults to @samp{\"\"}."
 msgstr "En-tête où l'adresse du destinataire d'origine (l'adresse RCPT TO de SMTP) est récupérée si elle n'est pas disponible ailleurs.  Le paramètre -a de dovecot-lda le remplace.  L'en-tête couramment utilisée pour cela est X-Original-To.  La valeur par défaut est @samp{\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16500
+#: doc/guix.texi:20350
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean lda-mailbox-autocreate?"
 msgstr "{paramètre de @code{dovecot-configuration}} boolean lda-mailbox-autocreate?"
 
 #. type: deftypevr
-#: doc/guix.texi:16504
+#: doc/guix.texi:20354
 msgid "Should saving a mail to a nonexistent mailbox automatically create it?.  Defaults to @samp{#f}."
 msgstr "Sauvegarder un courriel dans un fichier qui n'existe pas devrait-il le créer ?  La valeur par défaut est @samp{#f}."
 
 #. type: deftypevr
-#: doc/guix.texi:16506
+#: doc/guix.texi:20356
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean lda-mailbox-autosubscribe?"
 msgstr "{paramètre de @code{dovecot-configuration}} boolean lda-mailbox-autosubscribe?"
 
 #. type: deftypevr
-#: doc/guix.texi:16510
+#: doc/guix.texi:20360
 msgid "Should automatically created mailboxes be also automatically subscribed?.  Defaults to @samp{#f}."
 msgstr "Devrait-on aussi se souscrire aux boîtes aux lettres nouvellement créées ?  La valeur par défaut est @samp{#f}."
 
 #. type: deftypevr
-#: doc/guix.texi:16512
+#: doc/guix.texi:20362
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} non-negative-integer imap-max-line-length"
 msgstr "{paramètre de @code{dovecot-configuration}} non-negative-integer imap-max-line-length"
 
 #. type: deftypevr
-#: doc/guix.texi:16518
+#: doc/guix.texi:20368
 msgid "Maximum IMAP command line length.  Some clients generate very long command lines with huge mailboxes, so you may need to raise this if you get \"Too long argument\" or \"IMAP command line too large\" errors often.  Defaults to @samp{64000}."
 msgstr "Longueur maximale de la ligne de commande IMAP.  Certains clients génèrent des lignes de commandes très longues avec des boîtes aux lettres énormes, donc vous pourriez avoir besoin d'augmenter cette limite si vous obtenez les erreurs « Too long argument » ou « IMAP command line too large ».  La valeur par défaut est @samp{64000}."
 
 #. type: deftypevr
-#: doc/guix.texi:16520
+#: doc/guix.texi:20370
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string imap-logout-format"
 msgstr "{paramètre de @code{dovecot-configuration}} string imap-logout-format"
 
 #. type: deftypevr
-#: doc/guix.texi:16522
+#: doc/guix.texi:20372
 msgid "IMAP logout format string:"
 msgstr "Format de la chaîne de déconnexion IMAP :"
 
 #. type: item
-#: doc/guix.texi:16523
+#: doc/guix.texi:20373
 #, no-wrap
 msgid "%i"
 msgstr "%i"
 
 #. type: table
-#: doc/guix.texi:16525
+#: doc/guix.texi:20375
 msgid "total number of bytes read from client"
 msgstr "nombre d'octets lus par le client"
 
 #. type: item
-#: doc/guix.texi:16525
+#: doc/guix.texi:20375
 #, no-wrap
 msgid "%o"
 msgstr "%o"
 
 #. type: table
-#: doc/guix.texi:16527
+#: doc/guix.texi:20377
 msgid "total number of bytes sent to client."
 msgstr "nombre total d'octets envoyés au client."
 
 #. type: deftypevr
-#: doc/guix.texi:16530
+#: doc/guix.texi:20380
 msgid "See @file{doc/wiki/Variables.txt} for a list of all the variables you can use.  Defaults to @samp{\"in=%i out=%o deleted=%@{deleted@} expunged=%@{expunged@} trashed=%@{trashed@} hdr_count=%@{fetch_hdr_count@} hdr_bytes=%@{fetch_hdr_bytes@} body_count=%@{fetch_body_count@} body_bytes=%@{fetch_body_bytes@}\"}."
 msgstr "Voir @file{doc/wiki/Variables.txt} pour une liste de toutes les variables utilisables.  La valeur par défaut est @samp{\"in=%i out=%o deleted=%@{deleted@} expunged=%@{expunged@} trashed=%@{trashed@} hdr_count=%@{fetch_hdr_count@} hdr_bytes=%@{fetch_hdr_bytes@} body_count=%@{fetch_body_count@} body_bytes=%@{fetch_body_bytes@}\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16532
+#: doc/guix.texi:20382
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string imap-capability"
 msgstr "{paramètre de @code{dovecot-configuration}} string imap-capability"
 
 #. type: deftypevr
-#: doc/guix.texi:16536
+#: doc/guix.texi:20386
 msgid "Override the IMAP CAPABILITY response.  If the value begins with '+', add the given capabilities on top of the defaults (e.g.@: +XFOO XBAR).  Defaults to @samp{\"\"}."
 msgstr "Remplace la réponse CAPABILITY d'IMAP.  Si la valeur commence par « + », ajoute les capacités données en haut des valeur par défaut (p.@: ex.@: +XFOO XBAR).  La valeur par défaut est @samp{\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16538
+#: doc/guix.texi:20388
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string imap-idle-notify-interval"
 msgstr "{paramètre de @code{dovecot-configuration}} string imap-idle-notify-interval"
 
 #. type: deftypevr
-#: doc/guix.texi:16542
+#: doc/guix.texi:20392
 msgid "How long to wait between \"OK Still here\" notifications when client is IDLEing.  Defaults to @samp{\"2 mins\"}."
 msgstr "Temps d'attente entre les notifications « OK Still here » lorsque le client est en IDLE.  La valeur par défaut est @samp{\"2 mins\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16544
+#: doc/guix.texi:20394
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string imap-id-send"
 msgstr "{paramètre de @code{dovecot-configuration}} string imap-id-send"
 
 #. type: deftypevr
-#: doc/guix.texi:16550
+#: doc/guix.texi:20400
 msgid "ID field names and values to send to clients.  Using * as the value makes Dovecot use the default value.  The following fields have default values currently: name, version, os, os-version, support-url, support-email.  Defaults to @samp{\"\"}."
 msgstr "Noms des champs ID et de leur valeur à envoyer aux clients.  « * » signifie la valeur par défaut.  Les champs suivants ont actuellement des valeurs par défaut : name, version, os, os-version, support-url, support-email.  La valeur par défaut est @samp{\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16552
+#: doc/guix.texi:20402
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string imap-id-log"
 msgstr "{paramètre de @code{dovecot-configuration}} string imap-id-log"
 
 #. type: deftypevr
-#: doc/guix.texi:16555
+#: doc/guix.texi:20405
 msgid "ID fields sent by client to log.  * means everything.  Defaults to @samp{\"\"}."
 msgstr "Champs ID envoyés par le client à enregistrer.  « * » signifie tout.  La valeur par défaut est @samp{\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16557
+#: doc/guix.texi:20407
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} space-separated-string-list imap-client-workarounds"
 msgstr "{paramètre de @code{dovecot-configuration}} space-separated-string-list imap-client-workarounds"
 
 #. type: deftypevr
-#: doc/guix.texi:16559
+#: doc/guix.texi:20409
 msgid "Workarounds for various client bugs:"
 msgstr "Contournements pour divers bogues de certains client :"
 
 #. type: item
-#: doc/guix.texi:16561
+#: doc/guix.texi:20411
 #, no-wrap
 msgid "delay-newmail"
 msgstr "delay-newmail"
 
 #. type: table
-#: doc/guix.texi:16568
+#: doc/guix.texi:20418
 msgid "Send EXISTS/RECENT new mail notifications only when replying to NOOP and CHECK commands.  Some clients ignore them otherwise, for example OSX Mail (<v2.1).  Outlook Express breaks more badly though, without this it may show user \"Message no longer in server\" errors.  Note that OE6 still breaks even with this workaround if synchronization is set to \"Headers Only\"."
 msgstr "Envoi des notifications de nouveau message EXISTS/RECENT seulement en réponse aux commandes NOOP et CHECK.  Certains clients les ignorent autrement, par exemple OSX Mail (< v2.1).  Outlook Express est encore plus cassé, sans cela il peut montrer des erreurs de type « Le message n'est plus sur le serveur ».  Remarquez que OE6 est toujours cassé même avec ce contournement si la synchronisation est à « En-têtes seulement »."
 
 #. type: item
-#: doc/guix.texi:16569
+#: doc/guix.texi:20419
 #, no-wrap
 msgid "tb-extra-mailbox-sep"
 msgstr "tb-extra-mailbox-sep"
 
 #. type: table
-#: doc/guix.texi:16573
+#: doc/guix.texi:20423
 msgid "Thunderbird gets somehow confused with LAYOUT=fs (mbox and dbox) and adds extra @samp{/} suffixes to mailbox names.  This option causes Dovecot to ignore the extra @samp{/} instead of treating it as invalid mailbox name."
 msgstr "Thunderbird se mélange les pinceaux avec LAYOUT=fs (mbox et dbox) et ajoute un suffixe @samp{/} supplémentaire sur les noms des boîtes aux lettres.  Cette option fait que dovecot ignore le @samp{/} supplémentaire au lieu de le traiter comme un nom de boîte aux lettres invalide."
 
 #. type: item
-#: doc/guix.texi:16574
+#: doc/guix.texi:20424
 #, no-wrap
 msgid "tb-lsub-flags"
 msgstr "tb-lsub-flags"
 
 #. type: table
-#: doc/guix.texi:16578
+#: doc/guix.texi:20428
 msgid "Show \\Noselect flags for LSUB replies with LAYOUT=fs (e.g.@: mbox).  This makes Thunderbird realize they aren't selectable and show them greyed out, instead of only later giving \"not selectable\" popup error."
 msgstr "Montre les drapeaux \\Noselect pour les réponses LSUB avec LAYOUT=fs (p.@: ex.@: mbox).  Cela fait que Thunderbird réalise qu'ils ne sont pas sélectionnables et les montre en grisé, au lieu de montrer un popup « non sélectionnable » après coup."
 
 #. type: deftypevr
-#: doc/guix.texi:16582
+#: doc/guix.texi:20432
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string imap-urlauth-host"
 msgstr "{paramètre de @code{dovecot-configuration}} string imap-urlauth-host"
 
 #. type: deftypevr
-#: doc/guix.texi:16585
+#: doc/guix.texi:20435
 msgid "Host allowed in URLAUTH URLs sent by client.  \"*\" allows all.  Defaults to @samp{\"\"}."
 msgstr "Hôte autorisé dans les URL URLAUTH envoyés par les clients.  « * » les autorise tous.  La valeur par défaut est @samp{\"\"}."
 
 #. type: Plain text
-#: doc/guix.texi:16593
+#: doc/guix.texi:20443
 msgid "Whew! Lots of configuration options.  The nice thing about it though is that Guix has a complete interface to Dovecot's configuration language.  This allows not only a nice way to declare configurations, but also offers reflective capabilities as well: users can write code to inspect and transform configurations from within Scheme."
 msgstr "Ouf !  Tant d'options de configuration.  La bonne nouvelle, c'est que Guix a une interface complète avec le langage de configuration de Dovecot.  Cela permet non seulement de déclarer la configuration de manière agréable, mais aussi d'offrir des capacités de réflexion : les utilisateurs peuvent écrire du code pour inspecter et transformer les configuration depuis Scheme."
 
 #. type: Plain text
-#: doc/guix.texi:16599
+#: doc/guix.texi:20449
 msgid "However, it could be that you just want to get a @code{dovecot.conf} up and running.  In that case, you can pass an @code{opaque-dovecot-configuration} as the @code{#:config} parameter to @code{dovecot-service}.  As its name indicates, an opaque configuration does not have easy reflective capabilities."
 msgstr "Cependant, vous pourriez avoir un fichier @code{dovecot.conf} déjà tout prêt.  Dans ce cas, vous pouvez passer un objet @code{opaque-dovecot-configuration} comme paramètre @code{#:config} à @code{dovecot-service}.  Comme son nom l'indique, une configuration opaque n'a pas les capacités de réflexions."
 
 #. type: Plain text
-#: doc/guix.texi:16601
+#: doc/guix.texi:20451
 msgid "Available @code{opaque-dovecot-configuration} fields are:"
 msgstr "Les champs de @code{opaque-dovecot-configuration} disponibles sont :"
 
 #. type: deftypevr
-#: doc/guix.texi:16602
+#: doc/guix.texi:20452
 #, no-wrap
 msgid "{@code{opaque-dovecot-configuration} parameter} package dovecot"
 msgstr "{paramètre de @code{opaque-dovecot-configuration}} package dovecot"
 
 #. type: deftypevr
-#: doc/guix.texi:16606
+#: doc/guix.texi:20456
 #, no-wrap
 msgid "{@code{opaque-dovecot-configuration} parameter} string string"
 msgstr "{paramètre de @code{opaque-dovecot-configuration}} string string"
 
 #. type: deftypevr
-#: doc/guix.texi:16608
+#: doc/guix.texi:20458
 msgid "The contents of the @code{dovecot.conf}, as a string."
 msgstr "Le contenu de @code{dovecot.conf}, en tant que chaîne de caractères."
 
 #. type: Plain text
-#: doc/guix.texi:16612
+#: doc/guix.texi:20462
 msgid "For example, if your @code{dovecot.conf} is just the empty string, you could instantiate a dovecot service like this:"
 msgstr "Par exemple, si votre @code{dovecot.conf} est simplement la chaîne vide, vous pouvez instancier un service dovecot comme cela :"
 
-#. type: example
-#: doc/guix.texi:16617
+#. type: lisp
+#: doc/guix.texi:20467
 #, no-wrap
 msgid ""
 "(dovecot-service #:config\n"
@@ -31095,24 +38151,24 @@ msgstr ""
 "                  (string \"\")))\n"
 
 #. type: subsubheading
-#: doc/guix.texi:16619
+#: doc/guix.texi:20469
 #, no-wrap
 msgid "OpenSMTPD Service"
 msgstr "Service OpenSMTPD"
 
 #. type: deffn
-#: doc/guix.texi:16621
+#: doc/guix.texi:20471
 #, no-wrap
 msgid "{Scheme Variable} opensmtpd-service-type"
 msgstr "{Variable Scheme} opensmtpd-service-type"
 
 #. type: deffn
-#: doc/guix.texi:16625
+#: doc/guix.texi:20475
 msgid "This is the type of the @uref{https://www.opensmtpd.org, OpenSMTPD} service, whose value should be an @code{opensmtpd-configuration} object as in this example:"
 msgstr "C'est le type de service de @uref{https://www.opensmtpd.org, OpenSMTPD}, dont la valeur devrait être un objet @code{opensmtpd-configuration} comme dans cet exemple :"
 
-#. type: example
-#: doc/guix.texi:16630
+#. type: lisp
+#: doc/guix.texi:20480
 #, no-wrap
 msgid ""
 "(service opensmtpd-service-type\n"
@@ -31124,75 +38180,75 @@ msgstr ""
 "           (config-file (local-file \"./my-smtpd.conf\"))))\n"
 
 #. type: deftp
-#: doc/guix.texi:16633
+#: doc/guix.texi:20483
 #, no-wrap
 msgid "{Data Type} opensmtpd-configuration"
 msgstr "{Type de données} opensmtpd-configuration"
 
 #. type: deftp
-#: doc/guix.texi:16635
+#: doc/guix.texi:20485
 msgid "Data type representing the configuration of opensmtpd."
 msgstr "Type de données représentant la configuration de opensmtpd."
 
 #. type: item
-#: doc/guix.texi:16637
+#: doc/guix.texi:20487
 #, no-wrap
 msgid "@code{package} (default: @var{opensmtpd})"
 msgstr "@code{package} (par défaut : @var{opensmtpd})"
 
 #. type: table
-#: doc/guix.texi:16639
+#: doc/guix.texi:20489
 msgid "Package object of the OpenSMTPD SMTP server."
 msgstr "Objet de paquet du serveur SMTP OpenSMTPD."
 
 #. type: item
-#: doc/guix.texi:16640
+#: doc/guix.texi:20490
 #, no-wrap
-msgid "@code{config-file} (default: @var{%default-opensmtpd-file})"
-msgstr "@code{config-file} (par défaut : @var{%default-opensmtpd-file})"
+msgid "@code{config-file} (default: @code{%default-opensmtpd-file})"
+msgstr "@code{config-file} (par défaut : @code{%default-opensmtpd-file})"
 
 #. type: table
-#: doc/guix.texi:16645
+#: doc/guix.texi:20495
 msgid "File-like object of the OpenSMTPD configuration file to use.  By default it listens on the loopback network interface, and allows for mail from users and daemons on the local machine, as well as permitting email to remote servers.  Run @command{man smtpd.conf} for more information."
 msgstr "Objet simili-fichier du fichier de configuration de OpenSMTPD à utiliser.  Par défaut il écoute sur l'interface de boucle locale et accepte les courriels des utilisateurs et des démons de la machine locale, et autorise l'envoi de courriels à des serveurs distants.  Lancez @command{man smtpd.conf} pour plus d'information."
 
 #. type: subsubheading
-#: doc/guix.texi:16649
+#: doc/guix.texi:20499
 #, no-wrap
 msgid "Exim Service"
 msgstr "Service Exim"
 
 #. type: cindex
-#: doc/guix.texi:16651
+#: doc/guix.texi:20501
 #, no-wrap
 msgid "mail transfer agent (MTA)"
 msgstr "agent de transfert de courriel (MTA)"
 
 #. type: cindex
-#: doc/guix.texi:16652
+#: doc/guix.texi:20502
 #, no-wrap
 msgid "MTA (mail transfer agent)"
 msgstr "MTA (agent de transfert de courriel)"
 
 #. type: cindex
-#: doc/guix.texi:16653
+#: doc/guix.texi:20503
 #, no-wrap
 msgid "SMTP"
 msgstr "SMTP"
 
 #. type: deffn
-#: doc/guix.texi:16655
+#: doc/guix.texi:20505
 #, no-wrap
 msgid "{Scheme Variable} exim-service-type"
 msgstr "{Variable Scheme} exim-service-type"
 
 #. type: deffn
-#: doc/guix.texi:16659
+#: doc/guix.texi:20509
 msgid "This is the type of the @uref{https://exim.org, Exim} mail transfer agent (MTA), whose value should be an @code{exim-configuration} object as in this example:"
 msgstr "C'est le type de l'agent de transfert de courriel (MTA) @uref{https://exim.org, Exim}, dont la valeur devrait être un objet @code{exim-configuration} comme dans cet exemple :"
 
-#. type: example
-#: doc/guix.texi:16664
+#. type: lisp
+#: doc/guix.texi:20514
 #, no-wrap
 msgid ""
 "(service exim-service-type\n"
@@ -31204,68 +38260,550 @@ msgstr ""
 "           (config-file (local-file \"./my-exim.conf\"))))\n"
 
 #. type: Plain text
-#: doc/guix.texi:16670
+#: doc/guix.texi:20520
 msgid "In order to use an @code{exim-service-type} service you must also have a @code{mail-aliases-service-type} service present in your @code{operating-system} (even if it has no aliases)."
 msgstr "Pour utilise le service @code{exim-service-type} vous devez aussi avoir un service @code{mail-aliases-service-type} dans votre @code{operating-system} (même sans alias)."
 
 #. type: deftp
-#: doc/guix.texi:16671
+#: doc/guix.texi:20521
 #, no-wrap
 msgid "{Data Type} exim-configuration"
 msgstr "{Type de données} exim-configuration"
 
 #. type: deftp
-#: doc/guix.texi:16673
+#: doc/guix.texi:20523
 msgid "Data type representing the configuration of exim."
 msgstr "Type de données représentant la configuration d'exim."
 
 #. type: item
-#: doc/guix.texi:16675
+#: doc/guix.texi:20525
 #, no-wrap
 msgid "@code{package} (default: @var{exim})"
 msgstr "@code{package} (par défaut : @var{exim})"
 
 #. type: table
-#: doc/guix.texi:16677
+#: doc/guix.texi:20527
 msgid "Package object of the Exim server."
 msgstr "Objet de paquet du serveur Exim."
 
 #. type: table
-#: doc/guix.texi:16684
+#: doc/guix.texi:20534
 msgid "File-like object of the Exim configuration file to use. If its value is @code{#f} then use the default configuration file from the package provided in @code{package}. The resulting configuration file is loaded after setting the @code{exim_user} and @code{exim_group} configuration variables."
 msgstr "Objet simili-fichier du fichier de configuration d'Exim à utiliser.  Si sa valeur est @code{#f} alors le service utilisera la configuration par défaut du paquet fournit dans @code{package}.  Le fichier de configuration qui en résulte est chargé après avoir mis en place les variables de configuration @code{exim_user} et @code{exim_group}."
 
 #. type: subsubheading
-#: doc/guix.texi:16688
+#: doc/guix.texi:20538
+#, no-wrap
+msgid "Getmail service"
+msgstr "Service Getmail"
+
+#. type: cindex
+#: doc/guix.texi:20540
+#, no-wrap
+msgid "IMAP"
+msgstr "IMAP"
+
+#. type: cindex
+#: doc/guix.texi:20541
+#, no-wrap
+msgid "POP"
+msgstr "POP"
+
+#. type: deffn
+#: doc/guix.texi:20543
+#, no-wrap
+msgid "{Scheme Variable} getmail-service-type"
+msgstr "{Variable Scheme} getmail-service-type"
+
+#. type: deffn
+#: doc/guix.texi:20546
+msgid "This is the type of the @uref{http://pyropus.ca/software/getmail/, Getmail} mail retriever, whose value should be an @code{getmail-configuration}."
+msgstr "C'est le type du service de récupération de courriels @uref{http://pyropus.ca/software/getmail/, Getmail}, dont la valeur devrait être un objet @code{getmail-configuration}."
+
+#. type: Plain text
+#: doc/guix.texi:20549
+msgid "Available @code{getmail-configuration} fields are:"
+msgstr "Les champs de @code{getmail-configuration} disponibles sont :"
+
+#. type: deftypevr
+#: doc/guix.texi:20550
+#, no-wrap
+msgid "{@code{getmail-configuration} parameter} symbol name"
+msgstr "{paramètre de @code{getmail-configuration}} symbol name"
+
+#. type: deftypevr
+#: doc/guix.texi:20552
+msgid "A symbol to identify the getmail service."
+msgstr "Un symbole pour identifier le service getmail."
+
+#. type: deftypevr
+#: doc/guix.texi:20554
+msgid "Defaults to @samp{\"unset\"}."
+msgstr "La valeur par défaut est @samp{\"unset\"}."
+
+#. type: deftypevr
+#: doc/guix.texi:20557
+#, no-wrap
+msgid "{@code{getmail-configuration} parameter} package package"
+msgstr "{paramètre de @code{getmail-configuration}} package package"
+
+#. type: deftypevr
+#: doc/guix.texi:20559
+msgid "The getmail package to use."
+msgstr "Le paquet getmail à utiliser."
+
+#. type: deftypevr
+#: doc/guix.texi:20562
+#, no-wrap
+msgid "{@code{getmail-configuration} parameter} string user"
+msgstr "{paramètre de @code{getmail-configuration}} string user"
+
+#. type: deftypevr
+#: doc/guix.texi:20564
+msgid "The user to run getmail as."
+msgstr "L'utilisateur qui lance getmail."
+
+#. type: deftypevr
+#: doc/guix.texi:20566 doc/guix.texi:20573
+msgid "Defaults to @samp{\"getmail\"}."
+msgstr "La valeur par défaut est @samp{\"getmail\"}."
+
+#. type: deftypevr
+#: doc/guix.texi:20569
+#, no-wrap
+msgid "{@code{getmail-configuration} parameter} string group"
+msgstr "{paramètre de @code{getmail-configuration}} string group"
+
+#. type: deftypevr
+#: doc/guix.texi:20571
+msgid "The group to run getmail as."
+msgstr "Le groupe qui lance getmail."
+
+#. type: deftypevr
+#: doc/guix.texi:20576
+#, no-wrap
+msgid "{@code{getmail-configuration} parameter} string directory"
+msgstr "{paramètre de @code{getmail-configuration}} string directory"
+
+#. type: deftypevr
+#: doc/guix.texi:20578
+msgid "The getmail directory to use."
+msgstr "Le répertoire getmail à utiliser."
+
+#. type: deftypevr
+#: doc/guix.texi:20580
+msgid "Defaults to @samp{\"/var/lib/getmail/default\"}."
+msgstr "La valeur par défaut est @samp{\"/var/lib/getmail/default\"}."
+
+#. type: deftypevr
+#: doc/guix.texi:20583
+#, no-wrap
+msgid "{@code{getmail-configuration} parameter} getmail-configuration-file rcfile"
+msgstr "{paramètre de @code{getmail-configuration}} getmail-configuration-file rcfile"
+
+#. type: deftypevr
+#: doc/guix.texi:20585
+msgid "The getmail configuration file to use."
+msgstr "Le fichier de configuration de getmail à utiliser."
+
+#. type: deftypevr
+#: doc/guix.texi:20587
+msgid "Available @code{getmail-configuration-file} fields are:"
+msgstr "Les champs de @code{getmail-configuration-file} disponibles sont :"
+
+#. type: deftypevr
+#: doc/guix.texi:20588
+#, no-wrap
+msgid "{@code{getmail-configuration-file} parameter} getmail-retriever-configuration retriever"
+msgstr "{paramètre de @code{getmail-configuration-file}} getmail-retriever-configuration retriever"
+
+#. type: deftypevr
+#: doc/guix.texi:20590
+msgid "What mail account to retrieve mail from, and how to access that account."
+msgstr "Le compte de courriel duquel récupérer les courriel, et comme accéder à ce compte."
+
+#. type: deftypevr
+#: doc/guix.texi:20592
+msgid "Available @code{getmail-retriever-configuration} fields are:"
+msgstr "Les champs de @code{getmail-retriever-configuration} disponibles sont :"
+
+#. type: deftypevr
+#: doc/guix.texi:20593
+#, no-wrap
+msgid "{@code{getmail-retriever-configuration} parameter} string type"
+msgstr "{paramètre de @code{getmail-retriever-configuration}}string type"
+
+#. type: deftypevr
+#: doc/guix.texi:20596
+msgid "The type of mail retriever to use.  Valid values include @samp{passwd} and @samp{static}."
+msgstr "Le type de récupérateur de courriel à utiliser.  Des valeurs valides sont @samp{passwd} et @samp{static}."
+
+#. type: deftypevr
+#: doc/guix.texi:20598
+msgid "Defaults to @samp{\"SimpleIMAPSSLRetriever\"}."
+msgstr "La valeur par défaut est @samp{\"SimpleIMAPSSLRetriever\"}."
+
+#. type: deftypevr
+#: doc/guix.texi:20601
+#, no-wrap
+msgid "{@code{getmail-retriever-configuration} parameter} string server"
+msgstr "{paramètre de @code{getmail-retriever-configuration}} string server"
+
+#. type: deftypevr
+#: doc/guix.texi:20603 doc/guix.texi:20610
+msgid "Username to login to the mail server with."
+msgstr "Utilisateur avec lequel se connecter au serveur de courriel."
+
+#. type: deftypevr
+#: doc/guix.texi:20605 doc/guix.texi:20612 doc/guix.texi:20676
+msgid "Defaults to @samp{unset}."
+msgstr "La valeur par défaut est @samp{unset}."
+
+#. type: deftypevr
+#: doc/guix.texi:20608
+#, no-wrap
+msgid "{@code{getmail-retriever-configuration} parameter} string username"
+msgstr "{paramètre de @code{getmail-retriever-configuration}} string username"
+
+#. type: deftypevr
+#: doc/guix.texi:20615
+#, no-wrap
+msgid "{@code{getmail-retriever-configuration} parameter} non-negative-integer port"
+msgstr "{paramètre de @code{getmail-retriever-configuration}} non-negative-integer port"
+
+#. type: deftypevr
+#: doc/guix.texi:20617
+msgid "Port number to connect to."
+msgstr "Numéro de port sur lequel se connecter."
+
+#. type: deftypevr
+#: doc/guix.texi:20622
+#, no-wrap
+msgid "{@code{getmail-retriever-configuration} parameter} string password"
+msgstr "{paramètre de @code{getmail-retriever-configuration}} string password"
+
+#. type: deftypevr
+#: doc/guix.texi:20624 doc/guix.texi:20631
+msgid "Override fields from passwd."
+msgstr "Remplace des champs de passwd."
+
+#. type: deftypevr
+#: doc/guix.texi:20629
+#, no-wrap
+msgid "{@code{getmail-retriever-configuration} parameter} list password-command"
+msgstr "{paramètre de @code{getmail-retriever-configuration}} list password-command"
+
+#. type: deftypevr
+#: doc/guix.texi:20636
+#, no-wrap
+msgid "{@code{getmail-retriever-configuration} parameter} string keyfile"
+msgstr "{paramètre de @code{getmail-retriever-configuration}} string keyfile"
+
+#. type: deftypevr
+#: doc/guix.texi:20638
+msgid "PEM-formatted key file to use for the TLS negotiation."
+msgstr "Fichier de clés au format PEM pour la négociation TLS."
+
+#. type: deftypevr
+#: doc/guix.texi:20643
+#, no-wrap
+msgid "{@code{getmail-retriever-configuration} parameter} string certfile"
+msgstr "{paramètre de @code{getmail-retriever-configuration}} string certfile"
+
+#. type: deftypevr
+#: doc/guix.texi:20645
+msgid "PEM-formatted certificate file to use for the TLS negotiation."
+msgstr "Fichier de certificat au format PEM à utiliser pour la négociation TLS."
+
+#. type: deftypevr
+#: doc/guix.texi:20650
+#, no-wrap
+msgid "{@code{getmail-retriever-configuration} parameter} string ca-certs"
+msgstr "{paramètre de @code{getmail-retriever-configuration}} string ca-certs"
+
+#. type: deftypevr
+#: doc/guix.texi:20652
+msgid "CA certificates to use."
+msgstr "Certificats d'autorité à utiliser."
+
+#. type: deftypevr
+#: doc/guix.texi:20657
+#, no-wrap
+msgid "{@code{getmail-retriever-configuration} parameter} parameter-alist extra-parameters"
+msgstr "{paramètre de @code{getmail-retriever-configuration}} parameter-alist extra-parameters"
+
+#. type: deftypevr
+#: doc/guix.texi:20659
+msgid "Extra retriever parameters."
+msgstr "Paramètres supplémentaires pour le récupérateur."
+
+#. type: deftypevr
+#: doc/guix.texi:20666
+#, no-wrap
+msgid "{@code{getmail-configuration-file} parameter} getmail-destination-configuration destination"
+msgstr "{paramètre de @code{getmail-configuration-file}} getmail-destination-configuration destination"
+
+#. type: deftypevr
+#: doc/guix.texi:20668
+msgid "What to do with retrieved messages."
+msgstr "Que faire avec les message récupérés."
+
+#. type: deftypevr
+#: doc/guix.texi:20670
+msgid "Available @code{getmail-destination-configuration} fields are:"
+msgstr "Les champs de @code{getmail-destination-configuration} disponibles sont :"
+
+#. type: deftypevr
+#: doc/guix.texi:20671
+#, no-wrap
+msgid "{@code{getmail-destination-configuration} parameter} string type"
+msgstr "{paramètre de @code{getmail-destination-configuration}} string type"
+
+#. type: deftypevr
+#: doc/guix.texi:20674
+msgid "The type of mail destination.  Valid values include @samp{Maildir}, @samp{Mboxrd} and @samp{MDA_external}."
+msgstr "Le type de destination des courriels.  Des valeurs valides sont @samp{Mailldir}, @samp{Mboxrd} et @samp{MDA external}."
+
+#. type: deftypevr
+#: doc/guix.texi:20679
+#, no-wrap
+msgid "{@code{getmail-destination-configuration} parameter} string-or-filelike path"
+msgstr "{paramètre de @code{getmail-destination-configuration}} string-or-filelike path"
+
+#. type: deftypevr
+#: doc/guix.texi:20682
+msgid "The path option for the mail destination.  The behaviour depends on the chosen type."
+msgstr "L'option de chemin pour la destination du courriel.  Le comportement dépend du type choisi."
+
+#. type: deftypevr
+#: doc/guix.texi:20687
+#, no-wrap
+msgid "{@code{getmail-destination-configuration} parameter} parameter-alist extra-parameters"
+msgstr "{paramètre de @code{getmail-destination-configuration}} parameter-alist extra-parameters"
+
+#. type: deftypevr
+#: doc/guix.texi:20689
+msgid "Extra destination parameters"
+msgstr "Paramètres supplémentaires pour la destination"
+
+#. type: deftypevr
+#: doc/guix.texi:20696
+#, no-wrap
+msgid "{@code{getmail-configuration-file} parameter} getmail-options-configuration options"
+msgstr "{paramètre de @code{getmail-destination-configuration}} getmail-options-configuration options"
+
+#. type: deftypevr
+#: doc/guix.texi:20698
+msgid "Configure getmail."
+msgstr "Configurer getmail."
+
+#. type: deftypevr
+#: doc/guix.texi:20700
+msgid "Available @code{getmail-options-configuration} fields are:"
+msgstr "Les champs de @code{getmail-options-configuration} disponibles sont :"
+
+#. type: deftypevr
+#: doc/guix.texi:20701
+#, no-wrap
+msgid "{@code{getmail-options-configuration} parameter} non-negative-integer verbose"
+msgstr "{paramètre de @code{getmail-options-configuration}} non-negative-integer verbose"
+
+#. type: deftypevr
+#: doc/guix.texi:20706
+msgid "If set to @samp{0}, getmail will only print warnings and errors.  A value of @samp{1} means that messages will be printed about retrieving and deleting messages.  If set to @samp{2}, getmail will print messages about each of it's actions."
+msgstr "Si la valeur est @samp{0}, getmail n'affichera que les avertissements et les erreurs.  Une valeur de @samp{1} signifie que des messages à propos de la récupération et de la suppression de messages seront affichés.  Si la valeur est @samp{2}, getmail affichera des messages pour chacune de ses actions."
+
+#. type: deftypevr
+#: doc/guix.texi:20708 doc/guix.texi:25847 doc/guix.texi:26435
+#: doc/guix.texi:26580
+msgid "Defaults to @samp{1}."
+msgstr "La valeur par défaut est @samp{1}."
+
+#. type: deftypevr
+#: doc/guix.texi:20711
+#, no-wrap
+msgid "{@code{getmail-options-configuration} parameter} boolean read-all"
+msgstr "{paramètre de @code{getmail-options-configuration}} boolean read-all"
+
+#. type: deftypevr
+#: doc/guix.texi:20714
+msgid "If true, getmail will retrieve all available messages.  Otherwise it will only retrieve messages it hasn't seen previously."
+msgstr "Si la valeur est vraie, getmail récupérera tous les messages disponibles.  Sinon, il récupérera les message qu'il n'a pas déjà vu."
+
+#. type: deftypevr
+#: doc/guix.texi:20719
+#, no-wrap
+msgid "{@code{getmail-options-configuration} parameter} boolean delete"
+msgstr "{paramètre de @code{getmail-options-configuration}} boolean delete"
+
+#. type: deftypevr
+#: doc/guix.texi:20723
+msgid "If set to true, messages will be deleted from the server after retrieving and successfully delivering them.  Otherwise, messages will be left on the server."
+msgstr "Si la valeur est vraie, les messages seront supprimées du serveur après les avoir récupérés et les avoir livrés correctement.  Sinon, les messages seront laissés sur le serveur."
+
+#. type: deftypevr
+#: doc/guix.texi:20728
+#, no-wrap
+msgid "{@code{getmail-options-configuration} parameter} non-negative-integer delete-after"
+msgstr "{paramètre de @code{getmail-options-configuration}} non-negative-integer delete-after"
+
+#. type: deftypevr
+#: doc/guix.texi:20733
+msgid "Getmail will delete messages this number of days after seeing them, if they have been delivered.  This means messages will be left on the server this number of days after delivering them.  A value of @samp{0} disabled this feature."
+msgstr "Getmail supprimera les messages après un certain nombre de jours après les avoir vu, s'ils ont été livrés.  Cela signifie que les messages resteront sur le serveur quelques jours après qu'ils ont été livrés.  Une valeur de @samp{0} désactive cette fonctionnalité."
+
+#. type: deftypevr
+#: doc/guix.texi:20738
+#, no-wrap
+msgid "{@code{getmail-options-configuration} parameter} non-negative-integer delete-bigger-than"
+msgstr "{paramètre de @code{getmail-options-configuration}} non-negative-integer delete-bigger-than"
+
+#. type: deftypevr
+#: doc/guix.texi:20742
+msgid "Delete messages larger than this of bytes after retrieving them, even if the delete and delete-after options are disabled.  A value of @samp{0} disables this feature."
+msgstr "Supprime les messages plus grands que cette quantité d'octets après les avoir récupérés, même si les options delete et delete-after sont désactivées.  La valeur @samp{0} permet de désactiver cette fonctionnalité."
+
+#. type: deftypevr
+#: doc/guix.texi:20747
+#, no-wrap
+msgid "{@code{getmail-options-configuration} parameter} non-negative-integer max-bytes-per-session"
+msgstr "{paramètre de @code{getmail-options-configuration}} non-negative-integer max-bytes-per-session"
+
+#. type: deftypevr
+#: doc/guix.texi:20750
+msgid "Retrieve messages totalling up to this number of bytes before closing the session with the server.  A value of @samp{0} disables this feature."
+msgstr "Récupère les message jusqu'à ce nombre d'octets avant de fermer la session avec le serveur.  La valeur @samp{0} désactive cette fonctionnalité."
+
+#. type: deftypevr
+#: doc/guix.texi:20755
+#, no-wrap
+msgid "{@code{getmail-options-configuration} parameter} non-negative-integer max-message-size"
+msgstr "{paramètre de @code{getmail-options-configuration}} non-negative-integer max-message-size"
+
+#. type: deftypevr
+#: doc/guix.texi:20758
+msgid "Don't retrieve messages larger than this number of bytes.  A value of @samp{0} disables this feature."
+msgstr "Ne récupère pas les messages plus grands que cette valeur en octets.  La valeur @samp{0} désactive cette fonctionnalité."
+
+#. type: deftypevr
+#: doc/guix.texi:20763
+#, no-wrap
+msgid "{@code{getmail-options-configuration} parameter} boolean delivered-to"
+msgstr "{paramètre de @code{getmail-options-configuration}} boolean delivered-to"
+
+#. type: deftypevr
+#: doc/guix.texi:20765
+msgid "If true, getmail will add a Delivered-To header to messages."
+msgstr "Si la valeur est vraie, getmail ajoutera un en-tête Delivered-To aux messages."
+
+#. type: deftypevr
+#: doc/guix.texi:20770
+#, no-wrap
+msgid "{@code{getmail-options-configuration} parameter} boolean received"
+msgstr "{paramètre de @code{getmail-options-configuration}} boolean received"
+
+#. type: deftypevr
+#: doc/guix.texi:20772
+msgid "If set, getmail adds a Received header to the messages."
+msgstr "Si la valeur est indiquée, getmail ajoute un en-tête Received aux messages."
+
+#. type: deftypevr
+#: doc/guix.texi:20777
+#, no-wrap
+msgid "{@code{getmail-options-configuration} parameter} string message-log"
+msgstr "{paramètre de @code{getmail-options-configuration}} string message-log"
+
+#. type: deftypevr
+#: doc/guix.texi:20780
+msgid "Getmail will record a log of its actions to the named file.  A value of @samp{\"\"} disables this feature."
+msgstr "Getmail enregistrera un journal de ses actions dans le fichier ainsi nommé.  La valeur @samp{\"\"} désactive la fonctionnalité."
+
+#. type: deftypevr
+#: doc/guix.texi:20785
+#, no-wrap
+msgid "{@code{getmail-options-configuration} parameter} boolean message-log-syslog"
+msgstr "{paramètre de @code{getmail-options-configuration}} boolean message-log-syslog"
+
+#. type: deftypevr
+#: doc/guix.texi:20788
+msgid "If true, getmail will record a log of its actions using the system logger."
+msgstr "Si la valeur est vraie, getmail enregistrera un journal de ses actions en utilisant le démon de journalisation du système."
+
+#. type: deftypevr
+#: doc/guix.texi:20793
+#, no-wrap
+msgid "{@code{getmail-options-configuration} parameter} boolean message-log-verbose"
+msgstr "{paramètre de @code{getmail-options-configuration}} boolean message-log-verbose"
+
+#. type: deftypevr
+#: doc/guix.texi:20797
+msgid "If true, getmail will log information about messages not retrieved and the reason for not retrieving them, as well as starting and ending information lines."
+msgstr "Si la valeur est vraie, getmail enregistrera un journal de ses action à propos des messages non-récupérés et la raison pour laquelle ils n'ont pas été récupérés, en plus de lignes d'informations sur le début et la fin des opérations."
+
+#. type: deftypevr
+#: doc/guix.texi:20802
+#, no-wrap
+msgid "{@code{getmail-options-configuration} parameter} parameter-alist extra-parameters"
+msgstr "{paramètre de @code{getmail-options-configuration}} parameter-alist extra-parameters"
+
+#. type: deftypevr
+#: doc/guix.texi:20804
+msgid "Extra options to include."
+msgstr "Options supplémentaires à inclure."
+
+#. type: deftypevr
+#: doc/guix.texi:20813
+#, no-wrap
+msgid "{@code{getmail-configuration} parameter} list idle"
+msgstr "{paramètre de @code{getmail-options-configuration}} list idle"
+
+#. type: deftypevr
+#: doc/guix.texi:20817
+msgid "A list of mailboxes that getmail should wait on the server for new mail notifications.  This depends on the server supporting the IDLE extension."
+msgstr "Une liste de boites de courriels pour lesquels getmail devrait attendre une notification de nouveaux messages sur le serveur.  Cela demande que le serveur prenne en charge l'extension IDLE."
+
+#. type: deftypevr
+#: doc/guix.texi:20822
+#, no-wrap
+msgid "{@code{getmail-configuration} parameter} list environment-variables"
+msgstr "{paramètre de @code{getmail-configuration}} list environment-variables"
+
+#. type: deftypevr
+#: doc/guix.texi:20824
+msgid "Environment variables to set for getmail."
+msgstr "Une liste de variables d'environnement à définir pour getmail."
+
+#. type: subsubheading
+#: doc/guix.texi:20829
 #, no-wrap
 msgid "Mail Aliases Service"
 msgstr "Service d'alias de courriel"
 
 #. type: cindex
-#: doc/guix.texi:16690
+#: doc/guix.texi:20831
 #, no-wrap
 msgid "email aliases"
 msgstr "alias de courriel"
 
 #. type: cindex
-#: doc/guix.texi:16691
+#: doc/guix.texi:20832
 #, no-wrap
 msgid "aliases, for email addresses"
 msgstr "alias, pour les adresses de courriel"
 
 #. type: deffn
-#: doc/guix.texi:16693
+#: doc/guix.texi:20834
 #, no-wrap
 msgid "{Scheme Variable} mail-aliases-service-type"
 msgstr "{Variable Scheme} mail-aliases-service-type"
 
 #. type: deffn
-#: doc/guix.texi:16696
+#: doc/guix.texi:20837
 msgid "This is the type of the service which provides @code{/etc/aliases}, specifying how to deliver mail to users on this system."
 msgstr "C'est le type de service qui fournit @code{/etc/aliases} et qui spécifie comment délivrer les courriels aux utilisateurs du système."
 
-#. type: example
-#: doc/guix.texi:16701
+#. type: lisp
+#: doc/guix.texi:20842
 #, no-wrap
 msgid ""
 "(service mail-aliases-service-type\n"
@@ -31277,34 +38815,34 @@ msgstr ""
 "           (\"bob\" \"bob@@example.com\" \"bob@@example2.com\")))\n"
 
 #. type: Plain text
-#: doc/guix.texi:16709
+#: doc/guix.texi:20850
 msgid "The configuration for a @code{mail-aliases-service-type} service is an association list denoting how to deliver mail that comes to this system. Each entry is of the form @code{(alias addresses ...)}, with @code{alias} specifying the local alias and @code{addresses} specifying where to deliver this user's mail."
 msgstr "La configuration pour un service @code{mail-aliases-service-type} est une liste associative qui dénote comment délivrer les courriels qui arrivent au système.  Chaque entrée est de la forme @code{(alias adresses ...)} avec @code{alias} qui spécifie l'alias local et @code{adresses} qui spécifie où délivrer les courriels de cet utilisateur."
 
 #. type: Plain text
-#: doc/guix.texi:16715
+#: doc/guix.texi:20856
 msgid "The aliases aren't required to exist as users on the local system. In the above example, there doesn't need to be a @code{postmaster} entry in the @code{operating-system}'s @code{user-accounts} in order to deliver the @code{postmaster} mail to @code{bob} (which subsequently would deliver mail to @code{bob@@example.com} and @code{bob@@example2.com})."
 msgstr "Les alias n'ont pas besoin de correspondre à des utilisateurs locaux du système.  Dans l'exemple au-dessus, il n'y a pas besoin d'une entrée @code{postmaster} dans la liste @code{user-accounts} du @code{operating-system} pour délivrer les courriels à destination de @code{postmaster} à @code{bob} (qui ensuite délivrerait le courriel à @code{bob@@example.com} et @code{bob@@example2.com})."
 
 #. type: cindex
-#: doc/guix.texi:16716 doc/guix.texi:16717
+#: doc/guix.texi:20857 doc/guix.texi:20858
 #, no-wrap
 msgid "GNU Mailutils IMAP4 Daemon"
 msgstr "Démon IMAP4 GNU Mailutils"
 
 #. type: deffn
-#: doc/guix.texi:16719
+#: doc/guix.texi:20860
 #, no-wrap
 msgid "{Scheme Variable} imap4d-service-type"
 msgstr "{Variable Scheme} imap4d-service-type"
 
 #. type: deffn
-#: doc/guix.texi:16723
+#: doc/guix.texi:20864
 msgid "This is the type of the GNU Mailutils IMAP4 Daemon (@pxref{imap4d,,, mailutils, GNU Mailutils Manual}), whose value should be an @code{imap4d-configuration} object as in this example:"
 msgstr "C'est le type du démon IMAP4 GNU Mailutils, dont la valeur devrait être un objet @code{imap4d-configuration} comme dans cet exemple :"
 
-#. type: example
-#: doc/guix.texi:16728
+#. type: lisp
+#: doc/guix.texi:20869
 #, no-wrap
 msgid ""
 "(service imap4d-service-type\n"
@@ -31316,85 +38854,85 @@ msgstr ""
 "           (config-file (local-file \"imap4d.conf\"))))\n"
 
 #. type: deftp
-#: doc/guix.texi:16731
+#: doc/guix.texi:20872
 #, no-wrap
 msgid "{Data Type} imap4d-configuration"
 msgstr "{Type de données} imap4d-configuration"
 
 #. type: deftp
-#: doc/guix.texi:16733
+#: doc/guix.texi:20874
 msgid "Data type representing the configuration of @command{imap4d}."
 msgstr "Type de données représentant la configuration de @command{imap4d}."
 
 #. type: item
-#: doc/guix.texi:16735
+#: doc/guix.texi:20876
 #, no-wrap
 msgid "@code{package} (default: @code{mailutils})"
 msgstr "@code{package} (par défaut : @code{mailutils})"
 
 #. type: table
-#: doc/guix.texi:16737
+#: doc/guix.texi:20878
 msgid "The package that provides @command{imap4d}."
 msgstr "Le paquet qui fournit @command{imap4d}."
 
 #. type: item
-#: doc/guix.texi:16738
+#: doc/guix.texi:20879
 #, no-wrap
 msgid "@code{config-file} (default: @code{%default-imap4d-config-file})"
 msgstr "@code{config-file} (par défaut : @code{%default-imap4d-config-file})"
 
 #. type: table
-#: doc/guix.texi:16742
+#: doc/guix.texi:20883
 msgid "File-like object of the configuration file to use, by default it will listen on TCP port 143 of @code{localhost}.  @xref{Conf-imap4d,,, mailutils, GNU Mailutils Manual}, for details."
 msgstr "Objet simili-fichier du fichier de configuration à utiliser.  Par défaut, la configuration fera écouter sur le port TCP 143 sur @code{localhost}.  @xref{Conf-imap4d,,, mailutils, GNU Mailutils Manual}, pour les détails."
 
 #. type: cindex
-#: doc/guix.texi:16749
+#: doc/guix.texi:20890
 #, no-wrap
 msgid "messaging"
 msgstr "messagerie instantanée"
 
 #. type: cindex
-#: doc/guix.texi:16750
+#: doc/guix.texi:20891
 #, no-wrap
 msgid "jabber"
 msgstr "jabber"
 
 #. type: cindex
-#: doc/guix.texi:16751
+#: doc/guix.texi:20892
 #, no-wrap
 msgid "XMPP"
 msgstr "XMPP"
 
 #. type: Plain text
-#: doc/guix.texi:16754
-msgid "The @code{(gnu services messaging)} module provides Guix service definitions for messaging services: currently only Prosody is supported."
-msgstr "Le module @code{(gnu services messaging)} fournit des définitions de services Guix pour les services de messageries instantanées : actuellement seul Prosody est supporté."
+#: doc/guix.texi:20896
+msgid "The @code{(gnu services messaging)} module provides Guix service definitions for messaging services.  Currently it provides the following services:"
+msgstr "Le module @code{(gnu services messaging)} fournit des définitions de services Guix pour les services de messageries instantanées.  Actuellement il fournit les services suivants :"
 
 #. type: subsubheading
-#: doc/guix.texi:16755
+#: doc/guix.texi:20897
 #, no-wrap
 msgid "Prosody Service"
 msgstr "Service Prosody"
 
 #. type: deffn
-#: doc/guix.texi:16757
+#: doc/guix.texi:20899
 #, no-wrap
 msgid "{Scheme Variable} prosody-service-type"
 msgstr "{Variable Scheme} prosody-service-type"
 
 #. type: deffn
-#: doc/guix.texi:16761
+#: doc/guix.texi:20903
 msgid "This is the type for the @uref{https://prosody.im, Prosody XMPP communication server}.  Its value must be a @code{prosody-configuration} record as in this example:"
 msgstr "C'est le type pour le @uref{https://prosody.im, le serveur de communication XMPP Prosody}.  Sa valeur doit être un enregistrement @code{prosody-configuration} comme dans cet exemple :"
 
-#. type: example
-#: doc/guix.texi:16776
+#. type: lisp
+#: doc/guix.texi:20918
 #, no-wrap
 msgid ""
 "(service prosody-service-type\n"
 "         (prosody-configuration\n"
-"          (modules-enabled (cons \"groups\" \"mam\" %default-modules-enabled))\n"
+"          (modules-enabled (cons* \"groups\" \"mam\" %default-modules-enabled))\n"
 "          (int-components\n"
 "           (list\n"
 "            (int-component-configuration\n"
@@ -31408,7 +38946,7 @@ msgid ""
 msgstr ""
 "(service prosody-service-type\n"
 "         (prosody-configuration\n"
-"          (modules-enabled (cons \"groups\" \"mam\" %default-modules-enabled))\n"
+"          (modules-enabled (cons* \"groups\" \"mam\" %default-modules-enabled))\n"
 "          (int-components\n"
 "           (list\n"
 "            (int-component-configuration\n"
@@ -31421,690 +38959,690 @@ msgstr ""
 "             (domain \"example.net\"))))))\n"
 
 #. type: deffn
-#: doc/guix.texi:16779
+#: doc/guix.texi:20921
 msgid "See below for details about @code{prosody-configuration}."
 msgstr "Voir plus bas pour des détails sur @code{prosody-configuration}."
 
 #. type: Plain text
-#: doc/guix.texi:16785
+#: doc/guix.texi:20927
 msgid "By default, Prosody does not need much configuration.  Only one @code{virtualhosts} field is needed: it specifies the domain you wish Prosody to serve."
 msgstr "Par défaut, Prosody n'a pas besoin de beaucoup de configuration.  Seul un champ @code{virtualhosts} est requis : il spécifie le domaine que vous voulez voir Prosody servir."
 
 #. type: Plain text
-#: doc/guix.texi:16788
+#: doc/guix.texi:20930
 msgid "You can perform various sanity checks on the generated configuration with the @code{prosodyctl check} command."
 msgstr "Vous pouvez effectuer plusieurs vérifications de la configuration générée avec la commande @code{prosodyctl check}."
 
 #. type: Plain text
-#: doc/guix.texi:16792
+#: doc/guix.texi:20934
 msgid "Prosodyctl will also help you to import certificates from the @code{letsencrypt} directory so that the @code{prosody} user can access them.  See @url{https://prosody.im/doc/letsencrypt}."
 msgstr "Prosodyctl vous aidera aussi à importer des certificats du répertoire @code{letsencrypt} pour que l'utilisateur @code{prosody} puisse y accéder.  Voir @url{https://prosody.im/doc/letsencrypt}."
 
 #. type: example
-#: doc/guix.texi:16795
+#: doc/guix.texi:20937
 #, no-wrap
 msgid "prosodyctl --root cert import /etc/letsencrypt/live\n"
 msgstr "prosodyctl --root cert import /etc/letsencrypt/live\n"
 
 #. type: Plain text
-#: doc/guix.texi:16802
+#: doc/guix.texi:20944
 msgid "The available configuration parameters follow.  Each parameter definition is preceded by its type; for example, @samp{string-list foo} indicates that the @code{foo} parameter should be specified as a list of strings.  Types starting with @code{maybe-} denote parameters that won't show up in @code{prosody.cfg.lua} when their value is @code{'disabled}."
 msgstr "Les paramètres de configuration disponibles sont les suivants.  Chaque définition des paramètres est précédé par son type ; par exemple, @samp{string-list foo} indique que le paramètre @code{foo} devrait être spécifié comme une liste de chaînes de caractères.  Les types précédés de @code{maybe-} signifient que le paramètre n'apparaîtra pas dans @code{prosody.cfg.lua} lorsque sa valeur est @code{'disabled}."
 
 #. type: Plain text
-#: doc/guix.texi:16806
+#: doc/guix.texi:20948
 msgid "There is also a way to specify the configuration as a string, if you have an old @code{prosody.cfg.lua} file that you want to port over from some other system; see the end for more details."
 msgstr "Il y a aussi une manière de spécifier la configuration en tant que chaîne de caractères si vous avez un vieux fichier @code{prosody.cfg.lua} que vous voulez porter depuis un autre système ; voir la fin pour plus de détails."
 
 #. type: Plain text
-#: doc/guix.texi:16809
+#: doc/guix.texi:20951
 msgid "The @code{file-object} type designates either a file-like object (@pxref{G-Expressions, file-like objects}) or a file name."
 msgstr "Le type @code{file-object} désigne soit un objet simili-fichier (@pxref{G-Expressions, file-like objects}), soit un nom de fichier."
 
 #. type: Plain text
-#: doc/guix.texi:16819
+#: doc/guix.texi:20961
 msgid "Available @code{prosody-configuration} fields are:"
 msgstr "Les champs de @code{prosody-configuration} disponibles sont :"
 
 #. type: deftypevr
-#: doc/guix.texi:16820
+#: doc/guix.texi:20962
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} package prosody"
 msgstr "{paramètre de @code{prosody-configuration}} package prosody"
 
 #. type: deftypevr
-#: doc/guix.texi:16822
+#: doc/guix.texi:20964
 msgid "The Prosody package."
 msgstr "Le paquet Prosody."
 
 #. type: deftypevr
-#: doc/guix.texi:16824
+#: doc/guix.texi:20966
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} file-name data-path"
 msgstr "{paramètre de @code{prosody-configuration}} file-name data-path"
 
 #. type: deftypevr
-#: doc/guix.texi:16828
+#: doc/guix.texi:20970
 msgid "Location of the Prosody data storage directory.  See @url{https://prosody.im/doc/configure}.  Defaults to @samp{\"/var/lib/prosody\"}."
 msgstr "Emplacement du répertoire de stockage des données de Prosody.  Voir @url{https://prosody.im/doc/configure}.  La valeur par défaut est @samp{\"/var/lib/prosody\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16830
+#: doc/guix.texi:20972
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} file-object-list plugin-paths"
 msgstr "{paramètre de @code{prosody-configuration}} file-object-list plugin-paths"
 
 #. type: deftypevr
-#: doc/guix.texi:16834
+#: doc/guix.texi:20976
 msgid "Additional plugin directories.  They are searched in all the specified paths in order.  See @url{https://prosody.im/doc/plugins_directory}.  Defaults to @samp{()}."
 msgstr "Répertoires de greffons supplémentaires.  Ils sont analysés dans l'ordre spécifié.  Voir @url{https://prosody.im/doc/plugins_directory}.  La valeur par défaut est @samp{()}."
 
 #. type: deftypevr
-#: doc/guix.texi:16836
+#: doc/guix.texi:20978
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} file-name certificates"
 msgstr "{paramètre de @code{prosody-configuration}} file-name certificates"
 
 #. type: deftypevr
-#: doc/guix.texi:16841
+#: doc/guix.texi:20983
 msgid "Every virtual host and component needs a certificate so that clients and servers can securely verify its identity.  Prosody will automatically load certificates/keys from the directory specified here.  Defaults to @samp{\"/etc/prosody/certs\"}."
 msgstr "Chaque hôte virtuel et composant a besoin d'un certificat pour que les clients et les serveurs puissent vérifier son identité.  Prosody chargera automatiquement les clefs et les certificats dans le répertoire spécifié ici.  La valeur par défaut est @samp{\"/etc/prosody/certs\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16843
+#: doc/guix.texi:20985
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} string-list admins"
 msgstr "{paramètre de @code{prosody-configuration}} string-list admins"
 
 #. type: deftypevr
-#: doc/guix.texi:16849
+#: doc/guix.texi:20991
 msgid "This is a list of accounts that are admins for the server.  Note that you must create the accounts separately.  See @url{https://prosody.im/doc/admins} and @url{https://prosody.im/doc/creating_accounts}.  Example: @code{(admins '(\"user1@@example.com\" \"user2@@example.net\"))} Defaults to @samp{()}."
 msgstr "C'est une liste des comptes administrateurs de ce serveur.  Remarquez que vous devez créer les comptes séparément.  Voir @url{https://prosody.im/doc/admins} et @url{https://prosody.im/doc/creating_accounts}.  Par exemple : @code{(admins '(\"user1@@example.com\" \"user2@@example.net\"))}.  La valeur par défaut est @samp{()}."
 
 #. type: deftypevr
-#: doc/guix.texi:16851
+#: doc/guix.texi:20993
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} boolean use-libevent?"
 msgstr "{paramètre de @code{prosody-configuration}} boolean use-libevent?"
 
 #. type: deftypevr
-#: doc/guix.texi:16855
+#: doc/guix.texi:20997
 msgid "Enable use of libevent for better performance under high load.  See @url{https://prosody.im/doc/libevent}.  Defaults to @samp{#f}."
 msgstr "Active l'utilisation de libevent pour de meilleures performances sous une forte charge.  Voir @url{https://prosody.im/doc/libevent}.  La valeur par défaut est @samp{#f}."
 
 #. type: deftypevr
-#: doc/guix.texi:16857
+#: doc/guix.texi:20999
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} module-list modules-enabled"
 msgstr "{paramètre de @code{prosody-configuration}} module-list modules-enabled"
 
 #. type: deftypevr
-#: doc/guix.texi:16863
+#: doc/guix.texi:21005
 msgid "This is the list of modules Prosody will load on startup.  It looks for @code{mod_modulename.lua} in the plugins folder, so make sure that exists too.  Documentation on modules can be found at: @url{https://prosody.im/doc/modules}.  Defaults to @samp{(\"roster\" \"saslauth\" \"tls\" \"dialback\" \"disco\" \"carbons\" \"private\" \"blocklist\" \"vcard\" \"version\" \"uptime\" \"time\" \"ping\" \"pep\" \"register\" \"admin_adhoc\")}."
 msgstr "C'est la liste des modules que Prosody chargera au démarrage.  Il cherchera @code{mod_modulename.lua} dans le répertoire des greffons, donc assurez-vous qu'il existe aussi.  La documentation des modules se trouve sur @url{https://prosody.im/doc/modules}.  La valeur par défaut est @samp{(\"roster\" \"saslauth\" \"tls\" \"dialback\" \"disco\" \"carbons\" \"private\" \"blocklist\" \"vcard\" \"version\" \"uptime\" \"time\" \"ping\" \"pep\" \"register\" \"admin_adhoc\")}."
 
 #. type: deftypevr
-#: doc/guix.texi:16865
+#: doc/guix.texi:21007
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} string-list modules-disabled"
 msgstr "{paramètre de @code{prosody-configuration}} string-list modules-disabled"
 
 #. type: deftypevr
-#: doc/guix.texi:16869
+#: doc/guix.texi:21011
 msgid "@samp{\"offline\"}, @samp{\"c2s\"} and @samp{\"s2s\"} are auto-loaded, but should you want to disable them then add them to this list.  Defaults to @samp{()}."
 msgstr "@samp{\"offline\"},@samp{\"c2s\"} et @samp{\"s2s\"} sont chargés automatiquement, mais si vous voulez les désactiver, ajoutez-les à cette liste.  La valeur par défaut est @samp{()}."
 
 #. type: deftypevr
-#: doc/guix.texi:16871
+#: doc/guix.texi:21013
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} file-object groups-file"
 msgstr "{paramètre de @code{prosody-configuration}} file-object groups-file"
 
 #. type: deftypevr
-#: doc/guix.texi:16876
+#: doc/guix.texi:21018
 msgid "Path to a text file where the shared groups are defined.  If this path is empty then @samp{mod_groups} does nothing.  See @url{https://prosody.im/doc/modules/mod_groups}.  Defaults to @samp{\"/var/lib/prosody/sharedgroups.txt\"}."
 msgstr "Chemin vers un fichier texte où les groupes partagés sont définis.  Si ce chemin est vide alors @samp{mod_groups} ne fait rien.  Voir @url{https://prosody.im/doc/modules/mod_groups}.  La valeur par défaut est @samp{\"/var/lib/prosody/sharedgroups.txt\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16878
+#: doc/guix.texi:21020
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} boolean allow-registration?"
 msgstr "{paramètre de @code{prosody-configuration}} boolean allow-registration?"
 
 #. type: deftypevr
-#: doc/guix.texi:16882
+#: doc/guix.texi:21024
 msgid "Disable account creation by default, for security.  See @url{https://prosody.im/doc/creating_accounts}.  Defaults to @samp{#f}."
 msgstr "Désactive la création de compte par défaut, pour la sécurité.  Voir @url{https://prosody.im/doc/creating_accounts}.  La valeur par défaut est @samp{#f}."
 
 #. type: deftypevr
-#: doc/guix.texi:16884
+#: doc/guix.texi:21026
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} maybe-ssl-configuration ssl"
 msgstr "{paramètre de @code{prosody-configuration}} maybe-ssl-configuration ssl"
 
 #. type: deftypevr
-#: doc/guix.texi:16889
+#: doc/guix.texi:21031
 msgid "These are the SSL/TLS-related settings.  Most of them are disabled so to use Prosody's defaults.  If you do not completely understand these options, do not add them to your config, it is easy to lower the security of your server using them.  See @url{https://prosody.im/doc/advanced_ssl_config}."
 msgstr "Ce sont les paramètres liés à SSL/TLS.  La plupart sont désactivés pour pouvoir utiliser les paramètres par défaut de Prosody.  Si vous ne comprenez pas complètement ces options, ne les ajoutez pas à votre configuration, il est aisé de diminuer la sécurité de votre serveur en les modifiant.  Voir @url{https://prosody.im/doc/advanced_ssl_config}."
 
 #. type: deftypevr
-#: doc/guix.texi:16891
+#: doc/guix.texi:21033
 msgid "Available @code{ssl-configuration} fields are:"
 msgstr "Les champs de @code{ssl-configuration} disponibles sont :"
 
 #. type: deftypevr
-#: doc/guix.texi:16892
+#: doc/guix.texi:21034
 #, no-wrap
 msgid "{@code{ssl-configuration} parameter} maybe-string protocol"
 msgstr "{paramètre de @code{ssl-configuration}} maybe-string protocol"
 
 #. type: deftypevr
-#: doc/guix.texi:16894
+#: doc/guix.texi:21036
 msgid "This determines what handshake to use."
 msgstr "Cela détermine la poignée de main à utiliser."
 
 #. type: deftypevr
-#: doc/guix.texi:16896
+#: doc/guix.texi:21038
 #, no-wrap
 msgid "{@code{ssl-configuration} parameter} maybe-file-name key"
 msgstr "{paramètre de @code{ssl-configuration}} maybe-file-name key"
 
 #. type: deftypevr
-#: doc/guix.texi:16898
+#: doc/guix.texi:21040
 msgid "Path to your private key file."
 msgstr "Chemin vers votre fichier de clef privée."
 
 #. type: deftypevr
-#: doc/guix.texi:16900
+#: doc/guix.texi:21042
 #, no-wrap
 msgid "{@code{ssl-configuration} parameter} maybe-file-name certificate"
 msgstr "{paramètre de @code{ssl-configuration}} maybe-file-name certificate"
 
 #. type: deftypevr
-#: doc/guix.texi:16902
+#: doc/guix.texi:21044
 msgid "Path to your certificate file."
 msgstr "Chemin vers votre fichier de certificat."
 
 #. type: deftypevr
-#: doc/guix.texi:16904
+#: doc/guix.texi:21046
 #, no-wrap
 msgid "{@code{ssl-configuration} parameter} file-object capath"
 msgstr "{paramètre de @code{ssl-configuration}} file-object capath"
 
 #. type: deftypevr
-#: doc/guix.texi:16908
+#: doc/guix.texi:21050
 msgid "Path to directory containing root certificates that you wish Prosody to trust when verifying the certificates of remote servers.  Defaults to @samp{\"/etc/ssl/certs\"}."
 msgstr "Chemin vers le répertoire contenant les certificats racines que vous voulez voir Prosody utiliser lors de la vérification des certificats des serveurs distants.  La valeur par défaut est @samp{\"/etc/ssl/certs\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16910
+#: doc/guix.texi:21052
 #, no-wrap
 msgid "{@code{ssl-configuration} parameter} maybe-file-object cafile"
 msgstr "{paramètre de @code{ssl-configuration}} maybe-file-object cafile"
 
 #. type: deftypevr
-#: doc/guix.texi:16913
+#: doc/guix.texi:21055
 msgid "Path to a file containing root certificates that you wish Prosody to trust.  Similar to @code{capath} but with all certificates concatenated together."
 msgstr "Chemin vers un fichier contenant les certificats racines auxquels Prosody devra faire confiance.  Comme @code{capath} mais avec les certificats concaténés ensemble."
 
 #. type: deftypevr
-#: doc/guix.texi:16915
+#: doc/guix.texi:21057
 #, no-wrap
 msgid "{@code{ssl-configuration} parameter} maybe-string-list verify"
 msgstr "{paramètre de @code{ssl-configuration}} maybe-string-list verify"
 
 #. type: deftypevr
-#: doc/guix.texi:16918
+#: doc/guix.texi:21060
 msgid "A list of verification options (these mostly map to OpenSSL's @code{set_verify()} flags)."
 msgstr "Une liste d'options de vérification (qui correspondent globalement aux drapeaux @code{set_verify()} d'OpenSSL)."
 
 #. type: deftypevr
-#: doc/guix.texi:16920
+#: doc/guix.texi:21062
 #, no-wrap
 msgid "{@code{ssl-configuration} parameter} maybe-string-list options"
 msgstr "{paramètre de @code{ssl-configuration}} maybe-string-list options"
 
 #. type: deftypevr
-#: doc/guix.texi:16924
+#: doc/guix.texi:21066
 msgid "A list of general options relating to SSL/TLS.  These map to OpenSSL's @code{set_options()}.  For a full list of options available in LuaSec, see the LuaSec source."
 msgstr "Une liste d'options générales liées à SSL/TLS.  Elles correspondent globalement à @code{set_options()} d'OpenSSL.  Pour une liste complète des options disponibles dans LuaSec, voir les sources de LuaSec."
 
 #. type: deftypevr
-#: doc/guix.texi:16926
+#: doc/guix.texi:21068
 #, no-wrap
 msgid "{@code{ssl-configuration} parameter} maybe-non-negative-integer depth"
 msgstr "{paramètre de @code{ssl-configuration}} maybe-non-negative-integer depth"
 
 #. type: deftypevr
-#: doc/guix.texi:16929
+#: doc/guix.texi:21071
 msgid "How long a chain of certificate authorities to check when looking for a trusted root certificate."
 msgstr "Longueur maximale d'une chaîne d'autorités de certifications avant la racine."
 
 #. type: deftypevr
-#: doc/guix.texi:16931
+#: doc/guix.texi:21073
 #, no-wrap
 msgid "{@code{ssl-configuration} parameter} maybe-string ciphers"
 msgstr "{paramètre de @code{ssl-configuration}} maybe-string ciphers"
 
 #. type: deftypevr
-#: doc/guix.texi:16934
+#: doc/guix.texi:21076
 msgid "An OpenSSL cipher string.  This selects what ciphers Prosody will offer to clients, and in what order."
 msgstr "Une chaîne de méthodes de chiffrement OpenSSL.  Cela choisi les méthodes de chiffrement que Prosody offrira aux clients, et dans quel ordre de préférence."
 
 #. type: deftypevr
-#: doc/guix.texi:16936
+#: doc/guix.texi:21078
 #, no-wrap
 msgid "{@code{ssl-configuration} parameter} maybe-file-name dhparam"
 msgstr "{paramètre de @code{ssl-configuration}} maybe-file-name dhparam"
 
 #. type: deftypevr
-#: doc/guix.texi:16940
+#: doc/guix.texi:21082
 msgid "A path to a file containing parameters for Diffie-Hellman key exchange.  You can create such a file with: @code{openssl dhparam -out /etc/prosody/certs/dh-2048.pem 2048}"
 msgstr "Un chemin vers un fichier contenant les paramètres pour l'échange de clef Diffie-Hellman.  Vous pouvez créer un tel fichier avec : @code{openssl dhparam -out /etc/prosody/certs/dh-2048.pem 2048}"
 
 #. type: deftypevr
-#: doc/guix.texi:16942
+#: doc/guix.texi:21084
 #, no-wrap
 msgid "{@code{ssl-configuration} parameter} maybe-string curve"
 msgstr "{paramètre de @code{ssl-configuration}} maybe-string curve"
 
 #. type: deftypevr
-#: doc/guix.texi:16945
-msgid "Curve for Elliptic curve Diffie-Hellman. Prosody's default is @samp{\"secp384r1\"}."
+#: doc/guix.texi:21087
+msgid "Curve for Elliptic curve Diffie-Hellman.  Prosody's default is @samp{\"secp384r1\"}."
 msgstr "Courbe pour Diffie-Hellman sur courbe elliptique.  La valeur par défaut de Prosody est @samp{\"secp384r1\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:16947
+#: doc/guix.texi:21089
 #, no-wrap
 msgid "{@code{ssl-configuration} parameter} maybe-string-list verifyext"
 msgstr "{paramètre de @code{ssl-configuration}} maybe-string-list verifyext"
 
 #. type: deftypevr
-#: doc/guix.texi:16949
-msgid "A list of \"extra\" verification options."
+#: doc/guix.texi:21091
+msgid "A list of ``extra'' verification options."
 msgstr "Une liste d'options de vérification « supplémentaires »."
 
 #. type: deftypevr
-#: doc/guix.texi:16951
+#: doc/guix.texi:21093
 #, no-wrap
 msgid "{@code{ssl-configuration} parameter} maybe-string password"
 msgstr "{paramètre de @code{ssl-configuration}} maybe-string password"
 
 #. type: deftypevr
-#: doc/guix.texi:16953
+#: doc/guix.texi:21095
 msgid "Password for encrypted private keys."
 msgstr "Mot de passe pour les clefs privées chiffrées."
 
 #. type: deftypevr
-#: doc/guix.texi:16957
+#: doc/guix.texi:21099
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} boolean c2s-require-encryption?"
 msgstr "{paramètre de @code{prosody-configuration}} boolean c2s-require-encryption?"
 
 #. type: deftypevr
-#: doc/guix.texi:16961
+#: doc/guix.texi:21103
 msgid "Whether to force all client-to-server connections to be encrypted or not.  See @url{https://prosody.im/doc/modules/mod_tls}.  Defaults to @samp{#f}."
 msgstr "S'il faut forcer toutes les connexions client-serveur à être chiffrées ou non.  Voir @url{https://prosody.im/doc/modules/mod_tls}.  La valeur par défaut est @samp{#f}."
 
 #. type: deftypevr
-#: doc/guix.texi:16963
+#: doc/guix.texi:21105
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} string-list disable-sasl-mechanisms"
 msgstr "{paramètre de @code{prosody-configuration}} string-list disable-sasl-mechanisms"
 
 #. type: deftypevr
-#: doc/guix.texi:16967
+#: doc/guix.texi:21109
 msgid "Set of mechanisms that will never be offered.  See @url{https://prosody.im/doc/modules/mod_saslauth}.  Defaults to @samp{(\"DIGEST-MD5\")}."
 msgstr "Ensemble de mécanismes qui ne seront jamais offerts.  Voir @url{https://prosody.im/doc/modules/mod_saslauth}.  La valeur par défaut est @samp{(\"DIGEST-MD5\")}."
 
 #. type: deftypevr
-#: doc/guix.texi:16969
+#: doc/guix.texi:21111
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} boolean s2s-require-encryption?"
 msgstr "{paramètre de @code{prosody-configuration}} boolean s2s-require-encryption?"
 
 #. type: deftypevr
-#: doc/guix.texi:16973
+#: doc/guix.texi:21115
 msgid "Whether to force all server-to-server connections to be encrypted or not.  See @url{https://prosody.im/doc/modules/mod_tls}.  Defaults to @samp{#f}."
 msgstr "S'il faut forcer toutes les connexion serveur-serveur à être chiffrées ou non.  Voir @url{https://prosody.im/doc/modules/mod_tls}.  La valeur par défaut est @samp{#f}."
 
 #. type: deftypevr
-#: doc/guix.texi:16975
+#: doc/guix.texi:21117
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} boolean s2s-secure-auth?"
 msgstr "{paramètre de @code{prosody-configuration}} boolean s2s-secure-auth?"
 
 #. type: deftypevr
-#: doc/guix.texi:16981
+#: doc/guix.texi:21123
 msgid "Whether to require encryption and certificate authentication.  This provides ideal security, but requires servers you communicate with to support encryption AND present valid, trusted certificates.  See @url{https://prosody.im/doc/s2s#security}.  Defaults to @samp{#f}."
 msgstr "S'il faut requérir le chiffrement et l'authentification du certificat.  Cela fournit une sécurité idéale, mais demande que les serveurs avec lesquels vous communiquez supportent le chiffrement ET présentent un certificat valide et de confiance.  Voir @url{https://prosody.im/doc/s2s#security}.  La valeur par défaut est @samp{#f}."
 
 #. type: deftypevr
-#: doc/guix.texi:16983
+#: doc/guix.texi:21125
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} string-list s2s-insecure-domains"
 msgstr "{paramètre de @code{prosody-configuration}} string-list s2s-insecure-domains"
 
 #. type: deftypevr
-#: doc/guix.texi:16989
+#: doc/guix.texi:21131
 msgid "Many servers don't support encryption or have invalid or self-signed certificates.  You can list domains here that will not be required to authenticate using certificates.  They will be authenticated using DNS.  See @url{https://prosody.im/doc/s2s#security}.  Defaults to @samp{()}."
 msgstr "Beaucoup de serveurs ne supportent pas le chiffrement ou ont un certificat invalide ou auto-signé.  Vous pouvez lister les domaines ici qui n'ont pas besoin de s'authentifier avec des certificats.  Ils seront authentifiés par DNS.  Voir @url{https://prosody.im/doc/s2s#security}.  La valeur par défaut est @samp{()}."
 
 #. type: deftypevr
-#: doc/guix.texi:16991
+#: doc/guix.texi:21133
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} string-list s2s-secure-domains"
 msgstr "{paramètre de @code{prosody-configuration}} string-list s2s-secure-domains"
 
 #. type: deftypevr
-#: doc/guix.texi:16996
+#: doc/guix.texi:21138
 msgid "Even if you leave @code{s2s-secure-auth?} disabled, you can still require valid certificates for some domains by specifying a list here.  See @url{https://prosody.im/doc/s2s#security}.  Defaults to @samp{()}."
 msgstr "Même si vous laissez @code{s2s-secure-auth?} désactivé, vous pouvez toujours demander un certificat valide pour certains domaine en spécifiant la liste ici.  Voir @url{https://prosody.im/doc/s2s#security}.  La valeur par défaut est @samp{()}."
 
 #. type: deftypevr
-#: doc/guix.texi:16998
+#: doc/guix.texi:21140
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} string authentication"
 msgstr "{paramètre de @code{prosody-configuration}} string authentication"
 
 #. type: deftypevr
-#: doc/guix.texi:17006
+#: doc/guix.texi:21148
 msgid "Select the authentication backend to use.  The default provider stores passwords in plaintext and uses Prosody's configured data storage to store the authentication data.  If you do not trust your server please see @url{https://prosody.im/doc/modules/mod_auth_internal_hashed} for information about using the hashed backend.  See also @url{https://prosody.im/doc/authentication} Defaults to @samp{\"internal_plain\"}."
 msgstr "Choisi le moteur d'authentification à utiliser.  Le moteur par défaut stocke les mots de passes en texte clair et utilise la configuration de stockage des données de Prosody pour stocker les données authentifiées.  Si vous n'avez pas confiance dans le serveur, lisez @url{https://prosody.im/doc/modules/mod_auth_internal_hashed} pour plus d'information sur l'utilisation du moteur hashed.  Voir aussi @url{https://prosody.im/doc/authentication}.  La valeur par défaut est @samp{\"internal_plain\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17008
+#: doc/guix.texi:21150
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} maybe-string log"
 msgstr "{paramètre de @code{prosody-configuration}} maybe-string log"
 
 #. type: deftypevr
-#: doc/guix.texi:17012
+#: doc/guix.texi:21154
 msgid "Set logging options.  Advanced logging configuration is not yet supported by the Prosody service.  See @url{https://prosody.im/doc/logging}.  Defaults to @samp{\"*syslog\"}."
 msgstr "Indique les options de journalisation.  La configuration avancée des journaux n'est pas encore supportée par le service Prosody.  Voir @url{https://prosody.im/doc/logging}.  La valeur par défaut est @samp{\"*syslog\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17014
+#: doc/guix.texi:21156
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} file-name pidfile"
 msgstr "{paramètre de @code{prosody-configuration}} file-name pidfile"
 
 #. type: deftypevr
-#: doc/guix.texi:17017
+#: doc/guix.texi:21159
 msgid "File to write pid in.  See @url{https://prosody.im/doc/modules/mod_posix}.  Defaults to @samp{\"/var/run/prosody/prosody.pid\"}."
 msgstr "Fichier où écrire le PID.  Voir @url{https://prosody.im/doc/modules/mod_posix}.  La valeur par défaut est @samp{\"/var/run/prosody/prosody.pid\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17019
+#: doc/guix.texi:21161
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} maybe-non-negative-integer http-max-content-size"
 msgstr "{paramètre de @code{prosody-configuration}} maybe-non-negative-integer http-max-content-size"
 
 #. type: deftypevr
-#: doc/guix.texi:17021
+#: doc/guix.texi:21163
 msgid "Maximum allowed size of the HTTP body (in bytes)."
 msgstr "Taille maximum autorisée pour le corps HTTP (en octets)."
 
 #. type: deftypevr
-#: doc/guix.texi:17023
+#: doc/guix.texi:21165
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} maybe-string http-external-url"
 msgstr "{paramètre de @code{prosody-configuration}} maybe-string http-external-url"
 
 #. type: deftypevr
-#: doc/guix.texi:17028
+#: doc/guix.texi:21170
 msgid "Some modules expose their own URL in various ways.  This URL is built from the protocol, host and port used.  If Prosody sits behind a proxy, the public URL will be @code{http-external-url} instead.  See @url{https://prosody.im/doc/http#external_url}."
 msgstr "Certains modules exposent leur propre URL de diverses manières.  Cette URL est construite à partir du protocole, de l'hôte et du port utilisé.  Si Prosody se trouve derrière un proxy, l'URL publique sera @code{http-external-url} à la place.  Voir @url{https://prosody.im/doc/http#external_url}."
 
 #. type: deftypevr
-#: doc/guix.texi:17030
+#: doc/guix.texi:21172
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} virtualhost-configuration-list virtualhosts"
 msgstr "{paramètre de @code{prosody-configuration}} virtualhost-configuration-list virtualhosts"
 
 #. type: deftypevr
-#: doc/guix.texi:17035
+#: doc/guix.texi:21177
 msgid "A host in Prosody is a domain on which user accounts can be created.  For example if you want your users to have addresses like @samp{\"john.smith@@example.com\"} then you need to add a host @samp{\"example.com\"}.  All options in this list will apply only to this host."
 msgstr "Un hôte dans Prosody est un domaine sur lequel les comptes utilisateurs sont créés.  Par exemple si vous voulez que vos utilisateurs aient une adresse comme @samp{\"john.smith@@example.com\"} vous devrez ajouter un hôte @samp{\"example.com\"}.  Toutes les options de cette liste seront appliquées uniquement à cet hôte."
 
 #. type: deftypevr
-#: doc/guix.texi:17041
-msgid "Note: the name \"virtual\" host is used in configuration to avoid confusion with the actual physical host that Prosody is installed on.  A single Prosody instance can serve many domains, each one defined as a VirtualHost entry in Prosody's configuration.  Conversely a server that hosts a single domain would have just one VirtualHost entry."
-msgstr "Remarque : le nom d'hôte « virtuel » est utilisé dans la configuration pour éviter de le confondre avec le nom d'hôte physique réel de la machine qui héberge Prosody.  Une seule instance de Prosody peut servir plusieurs domaines, chacun défini comme une entrée VirtualHost dans la configuration de Prosody.  Ainsi, un serveur qui n'héberge qu'un seul domaine n'aura qu'une entrée VirtualHost."
+#: doc/guix.texi:21183
+msgid "Note: the name @emph{virtual} host is used in configuration to avoid confusion with the actual physical host that Prosody is installed on.  A single Prosody instance can serve many domains, each one defined as a VirtualHost entry in Prosody's configuration.  Conversely a server that hosts a single domain would have just one VirtualHost entry."
+msgstr "Remarque : le nom d'hôte @emph{virtuel} est utilisé dans la configuration pour éviter de le confondre avec le nom d'hôte physique réel de la machine qui héberge Prosody.  Une seule instance de Prosody peut servir plusieurs domaines, chacun défini comme une entrée VirtualHost dans la configuration de Prosody.  Ainsi, un serveur qui n'héberge qu'un seul domaine n'aura qu'une entrée VirtualHost."
 
 #. type: deftypevr
-#: doc/guix.texi:17043
+#: doc/guix.texi:21185
 msgid "See @url{https://prosody.im/doc/configure#virtual_host_settings}."
 msgstr "Voir @url{https://prosody.im/doc/configure#virtual_host_settings}."
 
 #. type: deftypevr
-#: doc/guix.texi:17045
+#: doc/guix.texi:21187
 msgid "Available @code{virtualhost-configuration} fields are:"
 msgstr "Les champs de @code{virtualhost-configuration} disponibles sont :"
 
 #. type: deftypevr
-#: doc/guix.texi:17047 doc/guix.texi:17069 doc/guix.texi:17122
+#: doc/guix.texi:21189 doc/guix.texi:21211 doc/guix.texi:21264
 msgid "all these @code{prosody-configuration} fields: @code{admins}, @code{use-libevent?}, @code{modules-enabled}, @code{modules-disabled}, @code{groups-file}, @code{allow-registration?}, @code{ssl}, @code{c2s-require-encryption?}, @code{disable-sasl-mechanisms}, @code{s2s-require-encryption?}, @code{s2s-secure-auth?}, @code{s2s-insecure-domains}, @code{s2s-secure-domains}, @code{authentication}, @code{log}, @code{http-max-content-size}, @code{http-external-url}, @code{raw-content}, plus:"
 msgstr "tous ces champs de @code{prosody-configuration} : @code{admins}, @code{use-libevent?}, @code{modules-enabled}, @code{modules-disabled}, @code{groups-file}, @code{allow-registration?}, @code{ssl}, @code{c2s-require-encryption?}, @code{disable-sasl-mechanisms}, @code{s2s-require-encryption?}, @code{s2s-secure-auth?}, @code{s2s-insecure-domains}, @code{s2s-secure-domains}, @code{authentication}, @code{log}, @code{http-max-content-size}, @code{http-external-url}, @code{raw-content}, plus :"
 
 #. type: deftypevr
-#: doc/guix.texi:17047
+#: doc/guix.texi:21189
 #, no-wrap
 msgid "{@code{virtualhost-configuration} parameter} string domain"
 msgstr "{paramètre de @code{virtualhost-configuration}} string domain"
 
 #. type: deftypevr
-#: doc/guix.texi:17049
+#: doc/guix.texi:21191
 msgid "Domain you wish Prosody to serve."
 msgstr "Domaine que vous souhaitez que Prosody serve."
 
 #. type: deftypevr
-#: doc/guix.texi:17053
+#: doc/guix.texi:21195
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} int-component-configuration-list int-components"
 msgstr "{paramètre de @code{prosody-configuration}} int-component-configuration-list int-components"
 
 #. type: deftypevr
-#: doc/guix.texi:17058
+#: doc/guix.texi:21200
 msgid "Components are extra services on a server which are available to clients, usually on a subdomain of the main server (such as @samp{\"mycomponent.example.com\"}).  Example components might be chatroom servers, user directories, or gateways to other protocols."
 msgstr "Les composant sont des services supplémentaires qui sont disponibles pour les clients, habituellement sur un sous-domaine du serveur principal (comme @samp{\"mycomponent.example.com\"}).  Des exemples de composants sont des serveurs de chatroom, des répertoires utilisateurs ou des passerelles vers d'autres protocoles."
 
 #. type: deftypevr
-#: doc/guix.texi:17062
+#: doc/guix.texi:21204
 msgid "Internal components are implemented with Prosody-specific plugins.  To add an internal component, you simply fill the hostname field, and the plugin you wish to use for the component."
 msgstr "Les composants internes sont implémentés dans des greffons spécifiques à Prosody.  Pour ajouter un composant interne, vous n'avez qu'à remplir le champ de nom d'hôte et le greffon que vous voulez utiliser pour le composant."
 
 #. type: deftypevr
-#: doc/guix.texi:17065
+#: doc/guix.texi:21207
 msgid "See @url{https://prosody.im/doc/components}.  Defaults to @samp{()}."
 msgstr "Voir @url{https://prosody.im/doc/components}.  La valeur par défaut est @samp{()}."
 
 #. type: deftypevr
-#: doc/guix.texi:17067
+#: doc/guix.texi:21209
 msgid "Available @code{int-component-configuration} fields are:"
 msgstr "Les champs de @code{int-component-configuration} disponibles sont :"
 
 #. type: deftypevr
-#: doc/guix.texi:17069
+#: doc/guix.texi:21211
 #, no-wrap
 msgid "{@code{int-component-configuration} parameter} string hostname"
 msgstr "{paramètre de @code{int-component-configuration}} string hostname"
 
 #. type: deftypevr
-#: doc/guix.texi:17071 doc/guix.texi:17128
+#: doc/guix.texi:21213 doc/guix.texi:21270
 msgid "Hostname of the component."
 msgstr "Nom d'hôte du composant."
 
 #. type: deftypevr
-#: doc/guix.texi:17073
+#: doc/guix.texi:21215
 #, no-wrap
 msgid "{@code{int-component-configuration} parameter} string plugin"
 msgstr "{paramètre de @code{int-component-configuration}} string plugin"
 
 #. type: deftypevr
-#: doc/guix.texi:17075
+#: doc/guix.texi:21217
 msgid "Plugin you wish to use for the component."
 msgstr "Greffon que vous voulez utiliser pour ce composant."
 
 #. type: deftypevr
-#: doc/guix.texi:17077
+#: doc/guix.texi:21219
 #, no-wrap
 msgid "{@code{int-component-configuration} parameter} maybe-mod-muc-configuration mod-muc"
 msgstr "{paramètre de @code{int-component-configuration}} maybe-mod-muc-configuration mod-muc"
 
 #. type: deftypevr
-#: doc/guix.texi:17080
+#: doc/guix.texi:21222
 msgid "Multi-user chat (MUC) is Prosody's module for allowing you to create hosted chatrooms/conferences for XMPP users."
 msgstr "Le chat multi-utilisateur (MUC) est le modules de Prosody qui vous permet de créer des chatrooms/conférences pour les utilisateurs XMPP."
 
 #. type: deftypevr
-#: doc/guix.texi:17084
-msgid "General information on setting up and using multi-user chatrooms can be found in the \"Chatrooms\" documentation (@url{https://prosody.im/doc/chatrooms}), which you should read if you are new to XMPP chatrooms."
-msgstr "Des informations générales sur la configuration des chatrooms multi-utilisateurs se trouvent dans la documentation sur les chatrooms (@url{https://prosody.im/doc/chatrooms}), que vous devriez lire si vous les découvrez."
+#: doc/guix.texi:21226
+msgid "General information on setting up and using multi-user chatrooms can be found in the ``Chatrooms'' documentation (@url{https://prosody.im/doc/chatrooms}), which you should read if you are new to XMPP chatrooms."
+msgstr "Des informations générales sur la configuration des salons de discussion multiutilisateurs se trouvent dans la documentation sur les salons (@url{https://prosody.im/doc/chatrooms}), que vous devriez lire si vous découvrez les salons XMPP."
 
 #. type: deftypevr
-#: doc/guix.texi:17086
+#: doc/guix.texi:21228
 msgid "See also @url{https://prosody.im/doc/modules/mod_muc}."
 msgstr "Voir aussi @url{https://prosody.im/doc/modules/mod_muc}."
 
 #. type: deftypevr
-#: doc/guix.texi:17088
+#: doc/guix.texi:21230
 msgid "Available @code{mod-muc-configuration} fields are:"
 msgstr "Les champs de @code{mod-muc-configuration} disponibles sont :"
 
 #. type: deftypevr
-#: doc/guix.texi:17089
+#: doc/guix.texi:21231
 #, no-wrap
 msgid "{@code{mod-muc-configuration} parameter} string name"
 msgstr "{paramètre de @code{mod-muc-configuration}} string name"
 
 #. type: deftypevr
-#: doc/guix.texi:17092
+#: doc/guix.texi:21234
 msgid "The name to return in service discovery responses.  Defaults to @samp{\"Prosody Chatrooms\"}."
 msgstr "Le nom à renvoyer dans les réponses de découverte de services.  La valeur par défaut est @samp{\"Prosody Chatrooms\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17094
+#: doc/guix.texi:21236
 #, no-wrap
 msgid "{@code{mod-muc-configuration} parameter} string-or-boolean restrict-room-creation"
 msgstr "{paramètre de @code{mod-muc-configuration}} string-or-boolean restrict-room-creation"
 
 #. type: deftypevr
-#: doc/guix.texi:17101
+#: doc/guix.texi:21243
 msgid "If @samp{#t}, this will only allow admins to create new chatrooms.  Otherwise anyone can create a room.  The value @samp{\"local\"} restricts room creation to users on the service's parent domain.  E.g.@: @samp{user@@example.com} can create rooms on @samp{rooms.example.com}.  The value @samp{\"admin\"} restricts to service administrators only.  Defaults to @samp{#f}."
 msgstr "Si la valeur est @samp{#t}, cela permettra uniquement aux admins de créer de nouveaux salons.  Sinon n'importe qui peut créer un salon.  La valeur @samp{\"local\"} restreint la création aux utilisateurs du domaine parent du service.  P.@: ex.@: @samp{user@@example.com} peut créer des salons sur @samp{rooms.example.com}.  La valeur @samp{\"admin\"} restreint ce service aux administrateurs.  La valeur par défaut est @samp{#f}."
 
 #. type: deftypevr
-#: doc/guix.texi:17103
+#: doc/guix.texi:21245
 #, no-wrap
 msgid "{@code{mod-muc-configuration} parameter} non-negative-integer max-history-messages"
 msgstr "{paramètre de @code{mod-muc-configuration}} non-negative-integer max-history-messages"
 
 #. type: deftypevr
-#: doc/guix.texi:17107
+#: doc/guix.texi:21249
 msgid "Maximum number of history messages that will be sent to the member that has just joined the room.  Defaults to @samp{20}."
 msgstr "Nombre maximum de messages d'historique qui seront envoyés aux membres qui viennent de rejoindre le salon.  La valeur par défaut est @samp{20}."
 
 #. type: deftypevr
-#: doc/guix.texi:17113
+#: doc/guix.texi:21255
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} ext-component-configuration-list ext-components"
 msgstr "{paramètre de @code{prosody-configuration}} ext-component-configuration-list ext-components"
 
 #. type: deftypevr
-#: doc/guix.texi:17118
+#: doc/guix.texi:21260
 msgid "External components use XEP-0114, which most standalone components support.  To add an external component, you simply fill the hostname field.  See @url{https://prosody.im/doc/components}.  Defaults to @samp{()}."
 msgstr "Les composants externes utilisent XEP-0114, que la plupart des composants supportent.  Pour ajouter un composant externe, vous remplissez simplement le champ de nom d'hôte.  Voir @url{https://prosody.im/doc/components}.  La valeur par défaut est @samp{()}."
 
 #. type: deftypevr
-#: doc/guix.texi:17120
+#: doc/guix.texi:21262
 msgid "Available @code{ext-component-configuration} fields are:"
 msgstr "Les champs de @code{ext-component-configuration} disponibles sont :"
 
 #. type: deftypevr
-#: doc/guix.texi:17122
+#: doc/guix.texi:21264
 #, no-wrap
 msgid "{@code{ext-component-configuration} parameter} string component-secret"
 msgstr "{paramètre de @code{ext-component-configuration}} string component-secret"
 
 #. type: deftypevr
-#: doc/guix.texi:17124
+#: doc/guix.texi:21266
 msgid "Password which the component will use to log in."
 msgstr "Mot de passe que le composant utilisera pour s'authentifier."
 
 #. type: deftypevr
-#: doc/guix.texi:17126
+#: doc/guix.texi:21268
 #, no-wrap
 msgid "{@code{ext-component-configuration} parameter} string hostname"
 msgstr "{paramètre de @code{ext-component-configuration}} string hostname"
 
 #. type: deftypevr
-#: doc/guix.texi:17132
+#: doc/guix.texi:21274
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} non-negative-integer-list component-ports"
 msgstr "{paramètre de @code{prosody-configuration}} non-negative-integer-list component-ports"
 
 #. type: deftypevr
-#: doc/guix.texi:17135
+#: doc/guix.texi:21277
 msgid "Port(s) Prosody listens on for component connections.  Defaults to @samp{(5347)}."
 msgstr "Ports sur lesquels Prosody écoutera les connexions des composants.  La valeur par défaut est @samp{(5347)}."
 
 #. type: deftypevr
-#: doc/guix.texi:17137
+#: doc/guix.texi:21279
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} string component-interface"
 msgstr "{paramètre de @code{prosody-configuration}} string component-interface"
 
 #. type: deftypevr
-#: doc/guix.texi:17140
+#: doc/guix.texi:21282
 msgid "Interface Prosody listens on for component connections.  Defaults to @samp{\"127.0.0.1\"}."
 msgstr "Interface sur laquelle Prosody écoutera les connexions des composants.  La valeur par défaut est @samp{\"127.0.0.1\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17142
+#: doc/guix.texi:21284
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} maybe-raw-content raw-content"
 msgstr "{paramètre de @code{prosody-configuration}} maybe-raw-content raw-content"
 
 #. type: deftypevr
-#: doc/guix.texi:17144
+#: doc/guix.texi:21286
 msgid "Raw content that will be added to the configuration file."
 msgstr "Contenu brut qui sera ajouté au fichier de configuration."
 
 #. type: Plain text
-#: doc/guix.texi:17152
+#: doc/guix.texi:21294
 msgid "It could be that you just want to get a @code{prosody.cfg.lua} up and running.  In that case, you can pass an @code{opaque-prosody-configuration} record as the value of @code{prosody-service-type}.  As its name indicates, an opaque configuration does not have easy reflective capabilities.  Available @code{opaque-prosody-configuration} fields are:"
 msgstr "Il se peut que vous ayez juste envie de lancer un fichier @code{prosody.cfg.lua} directement.  Dans ce cas, vous pouvez passer un enregistrement @code{opaque-prosody-configuration} comme valeur à @code{prosody-service-type}.  Comme son nom l'indique, une configuration opaque n'a pas de capacités de réflexion simples.  Les champs disponibles de @code{opaque-prosody-configuration} sont :"
 
 #. type: deftypevr
-#: doc/guix.texi:17153
+#: doc/guix.texi:21295
 #, no-wrap
 msgid "{@code{opaque-prosody-configuration} parameter} package prosody"
 msgstr "{paramètre de @code{opaque-prosody-configuration}} package prosody"
 
 #. type: deftypevr
-#: doc/guix.texi:17155
+#: doc/guix.texi:21297
 msgid "The prosody package."
 msgstr "Le paquet prosody."
 
 #. type: deftypevr
-#: doc/guix.texi:17157
+#: doc/guix.texi:21299
 #, no-wrap
 msgid "{@code{opaque-prosody-configuration} parameter} string prosody.cfg.lua"
 msgstr "{paramètre de @code{opaque-prosody-configuration}} string prosody.cfg.lua"
 
 #. type: deftypevr
-#: doc/guix.texi:17159
+#: doc/guix.texi:21301
 msgid "The contents of the @code{prosody.cfg.lua} to use."
 msgstr "Le contenu de @code{prosody.cfg.lua} à utiliser."
 
 #. type: Plain text
-#: doc/guix.texi:17163
+#: doc/guix.texi:21305
 msgid "For example, if your @code{prosody.cfg.lua} is just the empty string, you could instantiate a prosody service like this:"
 msgstr "Par exemple, si votre @code{prosody.cfg.lua} est juste la chaîne vide, vous pouvez instancier un service prosody comme ceci :"
 
-#. type: example
-#: doc/guix.texi:17168
+#. type: lisp
+#: doc/guix.texi:21310
 #, no-wrap
 msgid ""
 "(service prosody-service-type\n"
@@ -32116,218 +39654,212 @@ msgstr ""
 "          (prosody.cfg.lua \"\")))\n"
 
 #. type: subsubheading
-#: doc/guix.texi:17172
+#: doc/guix.texi:21314
 #, no-wrap
 msgid "BitlBee Service"
 msgstr "Service BitlBee"
 
 #. type: cindex
-#: doc/guix.texi:17174 doc/guix.texi:17218
+#: doc/guix.texi:21316 doc/guix.texi:21360
 #, no-wrap
 msgid "IRC (Internet Relay Chat)"
 msgstr "IRC (Internet Relay Chat)"
 
 #. type: cindex
-#: doc/guix.texi:17175
+#: doc/guix.texi:21317
 #, no-wrap
 msgid "IRC gateway"
-msgstr "passerelle IRC"
+msgstr "Passerelle IRC"
 
 #. type: Plain text
-#: doc/guix.texi:17178
+#: doc/guix.texi:21320
 msgid "@url{https://bitlbee.org,BitlBee} is a gateway that provides an IRC interface to a variety of messaging protocols such as XMPP."
 msgstr "@url{https://bitlbee.org,BitlBee} est une passerelle qui fournit une interface IRC vers une variété de protocoles de messagerie instantanée comme XMPP."
 
 #. type: defvr
-#: doc/guix.texi:17179
+#: doc/guix.texi:21321
 #, no-wrap
 msgid "{Scheme Variable} bitlbee-service-type"
 msgstr "{Variable Scheme} bitlbee-service-type"
 
 #. type: defvr
-#: doc/guix.texi:17183
+#: doc/guix.texi:21325
 msgid "This is the service type for the @url{https://bitlbee.org,BitlBee} IRC gateway daemon.  Its value is a @code{bitlbee-configuration} (see below)."
 msgstr "C'est le type de service pour le démon de passerelle IRC @url{https://bitlbee.org,BitlBee}.  Sa valeur est un @code{bitlbee-configuration} (voir plus bas)."
 
 #. type: defvr
-#: doc/guix.texi:17186
+#: doc/guix.texi:21328
 msgid "To have BitlBee listen on port 6667 on localhost, add this line to your services:"
 msgstr "Pour que BitlBee écoute sur le port 6667 sur localhost, ajoutez cette ligne à vos services :"
 
-#. type: example
-#: doc/guix.texi:17189
+#. type: lisp
+#: doc/guix.texi:21331
 #, no-wrap
 msgid "(service bitlbee-service-type)\n"
 msgstr "(service bitlbee-service-type)\n"
 
 #. type: deftp
-#: doc/guix.texi:17192
+#: doc/guix.texi:21334
 #, no-wrap
 msgid "{Data Type} bitlbee-configuration"
 msgstr "{Type de données} bitlbee-configuration"
 
 #. type: deftp
-#: doc/guix.texi:17194
+#: doc/guix.texi:21336
 msgid "This is the configuration for BitlBee, with the following fields:"
 msgstr "C'est la configuration de BitlBee, avec les champs suivants :"
 
 #. type: item
-#: doc/guix.texi:17196
+#: doc/guix.texi:21338
 #, no-wrap
 msgid "@code{interface} (default: @code{\"127.0.0.1\"})"
 msgstr "@code{interface} (par défaut : @code{\"127.0.0.1\"})"
 
 #. type: itemx
-#: doc/guix.texi:17197
+#: doc/guix.texi:21339
 #, no-wrap
 msgid "@code{port} (default: @code{6667})"
 msgstr "@code{port} (par défaut : @code{6667})"
 
 #. type: table
-#: doc/guix.texi:17200
+#: doc/guix.texi:21342
 msgid "Listen on the network interface corresponding to the IP address specified in @var{interface}, on @var{port}."
 msgstr "Écoute sur l'interface réseau correspondant à l'adresse IP dans @var{interface}, sur @var{port}."
 
 #. type: table
-#: doc/guix.texi:17204
+#: doc/guix.texi:21346
 msgid "When @var{interface} is @code{127.0.0.1}, only local clients can connect; when it is @code{0.0.0.0}, connections can come from any networking interface."
 msgstr "Lorsque @var{interface} vaut @code{127.0.0.1}, seuls les clients locaux peuvent se connecter ; lorsqu'elle vaut @code{0.0.0.0}, les connexions peuvent venir de n'importe quelle interface réseau."
 
 #. type: item
-#: doc/guix.texi:17205
+#: doc/guix.texi:21347
 #, no-wrap
-msgid "@code{package} (default: @code{bitlbee})"
-msgstr "@code{package} (par défaut : @code{bitlbee})"
+msgid "@code{bitlbee} (default: @code{bitlbee})"
+msgstr "@code{bitlbee} (par défaut : @code{bitlbee})"
 
 #. type: table
-#: doc/guix.texi:17207
+#: doc/guix.texi:21349
 msgid "The BitlBee package to use."
 msgstr "Le paquet BitlBee à utiliser."
 
 #. type: item
-#: doc/guix.texi:17208
+#: doc/guix.texi:21350
 #, no-wrap
 msgid "@code{plugins} (default: @code{'()})"
 msgstr "@code{plugins} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:17210
+#: doc/guix.texi:21352
 msgid "List of plugin packages to use---e.g., @code{bitlbee-discord}."
 msgstr "Liste des paquets de greffons à utiliser — p.@: ex.@: @code{bitlbee-discord}."
 
-#. type: item
-#: doc/guix.texi:17211
-#, no-wrap
-msgid "@code{extra-settings} (default: @code{\"\"})"
-msgstr "@code{extra-settings} (par défaut : @code{\"\"})"
-
 #. type: table
-#: doc/guix.texi:17213
+#: doc/guix.texi:21355
 msgid "Configuration snippet added as-is to the BitlBee configuration file."
 msgstr "Partie de configuration ajoutée telle-quelle au fichier de configuration de BitlBee."
 
 #. type: subsubheading
-#: doc/guix.texi:17216
+#: doc/guix.texi:21358
 #, no-wrap
 msgid "Quassel Service"
 msgstr "Service Quassel"
 
 #. type: Plain text
-#: doc/guix.texi:17222
+#: doc/guix.texi:21364
 msgid "@url{https://quassel-irc.org/,Quassel} is a distributed IRC client, meaning that one or more clients can attach to and detach from the central core."
 msgstr "@url{https://quassel-irc.org/,Quassel} est un client IRC distribué, ce qui signifie qu'un client ou plus peuvent s'attacher et se détacher du cœur central."
 
 #. type: defvr
-#: doc/guix.texi:17223
+#: doc/guix.texi:21365
 #, no-wrap
 msgid "{Scheme Variable} quassel-service-type"
 msgstr "{Variable Scheme} quassel-service-type"
 
 #. type: defvr
-#: doc/guix.texi:17227
+#: doc/guix.texi:21369
 msgid "This is the service type for the @url{https://quassel-irc.org/,Quassel} IRC backend daemon.  Its value is a @code{quassel-configuration} (see below)."
 msgstr "C'est le type de service pour le démon IRC @url{https://quassel-irc.org/,Quassel}.  Sa valeur est un @code{quassel-configuration} (voir plus bas)."
 
 #. type: deftp
-#: doc/guix.texi:17229
+#: doc/guix.texi:21371
 #, no-wrap
 msgid "{Data Type} quassel-configuration"
 msgstr "{Type de données} quassel-configuration"
 
 #. type: deftp
-#: doc/guix.texi:17231
+#: doc/guix.texi:21373
 msgid "This is the configuration for Quassel, with the following fields:"
 msgstr "C'est la configuration de Quassel, avec les champs suivants :"
 
 #. type: item
-#: doc/guix.texi:17233
+#: doc/guix.texi:21375
 #, no-wrap
 msgid "@code{quassel} (default: @code{quassel})"
 msgstr "@code{quassel} (par défaut : @code{quassel})"
 
 #. type: table
-#: doc/guix.texi:17235
+#: doc/guix.texi:21377
 msgid "The Quassel package to use."
 msgstr "Le paquet Quassel à utiliser."
 
 #. type: item
-#: doc/guix.texi:17236
+#: doc/guix.texi:21378
 #, no-wrap
 msgid "@code{interface} (default: @code{\"::,0.0.0.0\"})"
 msgstr "@code{interface} (par défaut : @code{\"::,0.0.0.0\"})"
 
 #. type: item
-#: doc/guix.texi:17237
+#: doc/guix.texi:21379
 #, no-wrap
 msgid "@code{port} (default: @code{4242})"
 msgstr "@code{port} (par défaut : @code{4242})"
 
 #. type: table
-#: doc/guix.texi:17241
+#: doc/guix.texi:21383
 msgid "Listen on the network interface(s) corresponding to the IPv4 or IPv6 interfaces specified in the comma delimited @var{interface}, on @var{port}."
 msgstr "Écoute sur les interfaces réseau correspondant à l'adresse IPv4 ou IPv6 des interfaces spécifiées dans @var{interface}, une liste de chaînes délimitées par des virgules, sur @var{port}."
 
 #. type: item
-#: doc/guix.texi:17242
+#: doc/guix.texi:21384
 #, no-wrap
 msgid "@code{loglevel} (default: @code{\"Info\"})"
 msgstr "@code{loglevel} (par défaut : @code{\"info\"})"
 
 #. type: table
-#: doc/guix.texi:17245
+#: doc/guix.texi:21387
 msgid "The level of logging desired.  Accepted values are Debug, Info, Warning and Error."
 msgstr "Le niveau de journalisation souhaité.  Les valeurs acceptées sont « Debug », « Info », « Warning » et « Error »."
 
 #. type: cindex
-#: doc/guix.texi:17251
+#: doc/guix.texi:21393
 #, no-wrap
 msgid "Murmur (VoIP server)"
 msgstr "Murmur (serveur VoIP)"
 
 #. type: cindex
-#: doc/guix.texi:17252
+#: doc/guix.texi:21394
 #, no-wrap
 msgid "VoIP server"
-msgstr "serveur VoIP"
+msgstr "Serveur VoIP"
 
 #. type: Plain text
-#: doc/guix.texi:17256
+#: doc/guix.texi:21398
 msgid "This section describes how to set up and run a Murmur server.  Murmur is the server of the @uref{https://mumble.info, Mumble} voice-over-IP (VoIP) suite."
 msgstr "Cette section décrit comment configurer et lancer un serveur Murmur.  Murmur est le serveur de la suite de voix-sur-IP (VoIP) @uref{https://mumble.info, Mumble}."
 
 #. type: deftp
-#: doc/guix.texi:17257
+#: doc/guix.texi:21399
 #, no-wrap
 msgid "{Data Type} murmur-configuration"
 msgstr "{Type de données} murmur-configuration"
 
 #. type: deftp
-#: doc/guix.texi:17260
+#: doc/guix.texi:21402
 msgid "The service type for the Murmur server.  An example configuration can look like this:"
 msgstr "Le type de service pour le serveur Murmur.  Voici un exemple de configuration :"
 
-#. type: example
-#: doc/guix.texi:17269
+#. type: lisp
+#: doc/guix.texi:21411
 #, no-wrap
 msgid ""
 "(service murmur-service-type\n"
@@ -32347,503 +39879,497 @@ msgstr ""
 "          (ssl-key \"/etc/letsencrypt/live/mumble.example.com/privkey.pem\")))\n"
 
 #. type: deftp
-#: doc/guix.texi:17273
+#: doc/guix.texi:21415
 msgid "After reconfiguring your system, you can manually set the murmur @code{SuperUser} password with the command that is printed during the activation phase."
 msgstr "Après avoir reconfiguré votre système, vous pouvez manuellement indiquer le mot de passe @code{SuperUser} de murmur avec la commande qui s'affiche pendant la phase d'activation."
 
 #. type: deftp
-#: doc/guix.texi:17282
+#: doc/guix.texi:21424
 msgid "It is recommended to register a normal Mumble user account and grant it admin or moderator rights.  You can use the @code{mumble} client to login as new normal user, register yourself, and log out.  For the next step login with the name @code{SuperUser} use the @code{SuperUser} password that you set previously, and grant your newly registered mumble user administrator or moderator rights and create some channels."
 msgstr "Il est recommandé d'enregistrer un compte utilisateur Mumble normal et de lui donner les droits admin ou modérateur.  Vous pouvez utiliser le client @code{mumble} pour vous connecter en tant que nouvel utilisateur normal, vous enregistrer et vous déconnecter.  Pour l'étape suivante, connectez-vous avec le nom @code{SuperUser} en utilisant le mot de passe @code{SuperUser} que vous avez indiqué précédemment et accordez les droits administrateur ou modérateur à vous utilisateur mumble nouvellement enregistré et créez quelques salons."
 
 #. type: deftp
-#: doc/guix.texi:17284
+#: doc/guix.texi:21426
 msgid "Available @code{murmur-configuration} fields are:"
 msgstr "Les champs de @code{murmur-configuration} disponibles sont :"
 
 #. type: item
-#: doc/guix.texi:17286
+#: doc/guix.texi:21428
 #, no-wrap
 msgid "@code{package} (default: @code{mumble})"
 msgstr "@code{package} (par défaut : @code{mumble})"
 
 #. type: table
-#: doc/guix.texi:17288
+#: doc/guix.texi:21430
 msgid "Package that contains @code{bin/murmurd}."
 msgstr "Paquet qui contient @code{bin/murmurd}."
 
 #. type: item
-#: doc/guix.texi:17289
+#: doc/guix.texi:21431
 #, no-wrap
 msgid "@code{user} (default: @code{\"murmur\"})"
 msgstr "@code{user} (par défaut : @code{\"murmur\"})"
 
 #. type: table
-#: doc/guix.texi:17291
+#: doc/guix.texi:21433
 msgid "User who will run the Murmur server."
 msgstr "Utilisateur qui lancera le serveur Murmur."
 
 #. type: item
-#: doc/guix.texi:17292
+#: doc/guix.texi:21434
 #, no-wrap
 msgid "@code{group} (default: @code{\"murmur\"})"
 msgstr "@code{group} (par défaut : @code{\"murmur\"})"
 
 #. type: table
-#: doc/guix.texi:17294
+#: doc/guix.texi:21436
 msgid "Group of the user who will run the murmur server."
 msgstr "Groupe de l'utilisateur qui lancera le serveur Murmur."
 
 #. type: item
-#: doc/guix.texi:17295
+#: doc/guix.texi:21437
 #, no-wrap
 msgid "@code{port} (default: @code{64738})"
 msgstr "@code{port} (par défaut : @code{64738})"
 
 #. type: table
-#: doc/guix.texi:17297
+#: doc/guix.texi:21439
 msgid "Port on which the server will listen."
 msgstr "Port sur lequel le serveur écoutera."
 
 #. type: item
-#: doc/guix.texi:17298
+#: doc/guix.texi:21440
 #, no-wrap
 msgid "@code{welcome-text} (default: @code{\"\"})"
 msgstr "@code{welcome-text} (par défaut : @code{\"\"})"
 
 #. type: table
-#: doc/guix.texi:17300
+#: doc/guix.texi:21442
 msgid "Welcome text sent to clients when they connect."
 msgstr "Texte de bienvenue envoyé aux clients lors de leur connexion."
 
 #. type: item
-#: doc/guix.texi:17301
+#: doc/guix.texi:21443
 #, no-wrap
 msgid "@code{server-password} (default: @code{\"\"})"
 msgstr "@code{server-password} (par défaut : @code{\"\"})"
 
 #. type: table
-#: doc/guix.texi:17303
+#: doc/guix.texi:21445
 msgid "Password the clients have to enter in order to connect."
 msgstr "Mot de passe que les clients devront entrer pour se connecter."
 
 #. type: item
-#: doc/guix.texi:17304
+#: doc/guix.texi:21446
 #, no-wrap
 msgid "@code{max-users} (default: @code{100})"
 msgstr "@code{max-users} (par défaut : @code{100})"
 
 #. type: table
-#: doc/guix.texi:17306
+#: doc/guix.texi:21448
 msgid "Maximum of users that can be connected to the server at once."
 msgstr "Nombre maximum d'utilisateurs qui peuvent se connecter à ce serveur en même temps."
 
 #. type: item
-#: doc/guix.texi:17307
+#: doc/guix.texi:21449
 #, no-wrap
 msgid "@code{max-user-bandwidth} (default: @code{#f})"
 msgstr "@code{max-user-bandwidth} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:17309
+#: doc/guix.texi:21451
 msgid "Maximum voice traffic a user can send per second."
 msgstr "Trafic de voix maximum qu'un utilisateur peut envoyer par seconde."
 
 #. type: item
-#: doc/guix.texi:17310
+#: doc/guix.texi:21452
 #, no-wrap
 msgid "@code{database-file} (default: @code{\"/var/lib/murmur/db.sqlite\"})"
 msgstr "@code{database-file} (par défaut : @code{\"/var/lib/murmur/db.sqlite\"})"
 
 #. type: table
-#: doc/guix.texi:17313
+#: doc/guix.texi:21455
 msgid "File name of the sqlite database.  The service's user will become the owner of the directory."
 msgstr "Nom de fichier de la base de données sqlite.  L'utilisateur du service deviendra propriétaire du répertoire."
 
 #. type: item
-#: doc/guix.texi:17314
+#: doc/guix.texi:21456
 #, no-wrap
 msgid "@code{log-file} (default: @code{\"/var/log/murmur/murmur.log\"})"
 msgstr "@code{log-file} (par défaut : @code{\"/var/log/murmur/murmur.log\"})"
 
 #. type: table
-#: doc/guix.texi:17317
+#: doc/guix.texi:21459
 msgid "File name of the log file.  The service's user will become the owner of the directory."
 msgstr "Nom du fichier de journal.  L'utilisateur du service deviendra propriétaire du répertoire."
 
 #. type: item
-#: doc/guix.texi:17318
+#: doc/guix.texi:21460
 #, no-wrap
 msgid "@code{autoban-attempts} (default: @code{10})"
 msgstr "@code{autoban-attempts} (par défaut : @code{10})"
 
 #. type: table
-#: doc/guix.texi:17321
+#: doc/guix.texi:21463
 msgid "Maximum number of logins a user can make in @code{autoban-timeframe} without getting auto banned for @code{autoban-time}."
 msgstr "Nombre maximum de connexions qu'un utilisateur peut faire pendant @code{autoban-timeframe} sans être banni automatiquement pour @code{autoban-time}."
 
 #. type: item
-#: doc/guix.texi:17322
+#: doc/guix.texi:21464
 #, no-wrap
 msgid "@code{autoban-timeframe} (default: @code{120})"
 msgstr "@code{autoban-timeframe} (par défaut : @code{120})"
 
 #. type: table
-#: doc/guix.texi:17324
+#: doc/guix.texi:21466
 msgid "Timeframe for autoban in seconds."
 msgstr "Durée du temps pendant lequel le nombre de connexions est compté."
 
 #. type: item
-#: doc/guix.texi:17325
+#: doc/guix.texi:21467
 #, no-wrap
 msgid "@code{autoban-time} (default: @code{300})"
 msgstr "@code{autoban-time} (par défaut : @code{300})"
 
 #. type: table
-#: doc/guix.texi:17328
+#: doc/guix.texi:21470
 msgid "Amount of time in seconds for which a client gets banned when violating the autoban limits."
 msgstr "Durée du bannissement automatique en secondes."
 
 #. type: item
-#: doc/guix.texi:17329
+#: doc/guix.texi:21471
 #, no-wrap
 msgid "@code{opus-threshold} (default: @code{100})"
 msgstr "@code{opus-threshold} (par défaut : @code{100})"
 
 #. type: table
-#: doc/guix.texi:17332
+#: doc/guix.texi:21474
 msgid "Percentage of clients that need to support opus before switching over to opus audio codec."
 msgstr "Pourcentage des clients qui doivent supporter opus avant de passer sur le codec audio opus."
 
 #. type: item
-#: doc/guix.texi:17333
+#: doc/guix.texi:21475
 #, no-wrap
 msgid "@code{channel-nesting-limit} (default: @code{10})"
 msgstr "@code{channel-nesting-limit} (par défaut : @code{10})"
 
 #. type: table
-#: doc/guix.texi:17335
+#: doc/guix.texi:21477
 msgid "How deep channels can be nested at maximum."
 msgstr "Profondeur maximum des canaux."
 
 #. type: item
-#: doc/guix.texi:17336
+#: doc/guix.texi:21478
 #, no-wrap
 msgid "@code{channelname-regex} (default: @code{#f})"
 msgstr "@code{channelname-regex} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:17338
+#: doc/guix.texi:21480
 msgid "A string in form of a Qt regular expression that channel names must conform to."
 msgstr "Une chaîne de la forme d'une expression régulière Qt que les noms de canaux doivent respecter."
 
 #. type: item
-#: doc/guix.texi:17339
+#: doc/guix.texi:21481
 #, no-wrap
 msgid "@code{username-regex} (default: @code{#f})"
 msgstr "@code{username-regex} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:17341
+#: doc/guix.texi:21483
 msgid "A string in form of a Qt regular expression that user names must conform to."
 msgstr "Une chaîne de la forme d'une expression régulière Qt que les noms d'utilisateurs doivent respecter."
 
 #. type: item
-#: doc/guix.texi:17342
+#: doc/guix.texi:21484
 #, no-wrap
 msgid "@code{text-message-length} (default: @code{5000})"
 msgstr "@code{text-message-length} (par défaut : @code{5000})"
 
 #. type: table
-#: doc/guix.texi:17344
+#: doc/guix.texi:21486
 msgid "Maximum size in bytes that a user can send in one text chat message."
 msgstr "Taille maximum en octets qu'un utilisateur peut envoyer en un seul message textuel."
 
 #. type: item
-#: doc/guix.texi:17345
+#: doc/guix.texi:21487
 #, no-wrap
 msgid "@code{image-message-length} (default: @code{(* 128 1024)})"
 msgstr "@code{image-message-length} (par défaut : @code{(* 128 1024)})"
 
 #. type: table
-#: doc/guix.texi:17347
+#: doc/guix.texi:21489
 msgid "Maximum size in bytes that a user can send in one image message."
 msgstr "Taille maximum en octets qu'un utilisateur peut envoyer en une seule image."
 
 #. type: item
-#: doc/guix.texi:17348
+#: doc/guix.texi:21490
 #, no-wrap
 msgid "@code{cert-required?} (default: @code{#f})"
 msgstr "@code{cert-required?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:17351
-msgid "If it is set to @code{#t} clients that use weak password authentification will not be accepted. Users must have completed the certificate wizard to join."
+#: doc/guix.texi:21493
+msgid "If it is set to @code{#t} clients that use weak password authentication will not be accepted. Users must have completed the certificate wizard to join."
 msgstr "Si la valeur est @code{#t} les clients utilisant une authentification par mot de passe faible ne seront pas acceptés.  Les utilisateurs doivent compléter l'assistant de configuration des certificats pour rejoindre le serveur."
 
 #. type: item
-#: doc/guix.texi:17352
+#: doc/guix.texi:21494
 #, no-wrap
 msgid "@code{remember-channel?} (default: @code{#f})"
 msgstr "@code{remember-channel?} (paramètre de : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:17355
+#: doc/guix.texi:21497
 msgid "Should murmur remember the last channel each user was in when they disconnected and put them into the remembered channel when they rejoin."
 msgstr "Indique si murmur devrait se rappeler du dernier canal dans lequel étaient les utilisateurs au moment de leur déconnexion et les y remettre lorsqu'ils se reconnectent."
 
 #. type: item
-#: doc/guix.texi:17356
+#: doc/guix.texi:21498
 #, no-wrap
 msgid "@code{allow-html?} (default: @code{#f})"
 msgstr "@code{allow-html?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:17358
+#: doc/guix.texi:21500
 msgid "Should html be allowed in text messages, user comments, and channel descriptions."
 msgstr "Indique si le html est autorisé dans les messages textuels, les commentaires utilisateurs et les descriptions des canaux."
 
 #. type: item
-#: doc/guix.texi:17359
+#: doc/guix.texi:21501
 #, no-wrap
 msgid "@code{allow-ping?} (default: @code{#f})"
 msgstr "@code{allow-ping?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:17363
+#: doc/guix.texi:21505
 msgid "Setting to true exposes the current user count, the maximum user count, and the server's maximum bandwidth per client to unauthenticated users. In the Mumble client, this information is shown in the Connect dialog."
 msgstr "Mettre à vrai expose le nombre d'utilisateurs, le nombre d'utilisateurs maximum et la bande passante maximale du serveur par client aux utilisateurs non connectés.  Dans le client Mumble, cette information est affichée dans la boîte de dialogue de connexion."
 
 #. type: table
-#: doc/guix.texi:17365
+#: doc/guix.texi:21507
 msgid "Disabling this setting will prevent public listing of the server."
 msgstr "Désactiver ce paramètre empêchera le serveur d'être publiquement listé."
 
 #. type: item
-#: doc/guix.texi:17366
+#: doc/guix.texi:21508
 #, no-wrap
 msgid "@code{bonjour?} (default: @code{#f})"
 msgstr "@code{bonjour?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:17368
+#: doc/guix.texi:21510
 msgid "Should the server advertise itself in the local network through the bonjour protocol."
 msgstr "Indique si le serveur se présente sur le réseau local à travers le protocole bonjour."
 
 #. type: item
-#: doc/guix.texi:17369
+#: doc/guix.texi:21511
 #, no-wrap
 msgid "@code{send-version?} (default: @code{#f})"
 msgstr "@code{send-version?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:17371
+#: doc/guix.texi:21513
 msgid "Should the murmur server version be exposed in ping requests."
 msgstr "Indique si la version du serveur murmur doit être exposée dans les requêtes ping."
 
 #. type: item
-#: doc/guix.texi:17372
+#: doc/guix.texi:21514
 #, no-wrap
 msgid "@code{log-days} (default: @code{31})"
 msgstr "@code{log-days} (par défaut : @code{31})"
 
 #. type: table
-#: doc/guix.texi:17376
+#: doc/guix.texi:21518
 msgid "Murmur also stores logs in the database, which are accessible via RPC.  The default is 31 days of months, but you can set this setting to 0 to keep logs forever, or -1 to disable logging to the database."
 msgstr "Murmur stocke aussi les journaux en base de données, qui sont accessible via RPC.  La valeur par défaut est 31 jours, mais vous pouvez le mettre à 0 pour les garder pour toujours ou à -1 pour désactiver la journalisation dans la base de données."
 
 #. type: item
-#: doc/guix.texi:17377
+#: doc/guix.texi:21519
 #, no-wrap
 msgid "@code{obfuscate-ips?} (default: @code{#t})"
 msgstr "@code{obfuscate-ips?} (par défaut : @code{#t})"
 
 #. type: table
-#: doc/guix.texi:17379
+#: doc/guix.texi:21521
 msgid "Should logged ips be obfuscated to protect the privacy of users."
 msgstr "Indique si les IP enregistrées doivent être cachées pour protéger la vie privée des utilisateurs."
 
 #. type: item
-#: doc/guix.texi:17380
+#: doc/guix.texi:21522
 #, no-wrap
 msgid "@code{ssl-cert} (default: @code{#f})"
 msgstr "@code{ssl-cert} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:17382
+#: doc/guix.texi:21524
 msgid "File name of the SSL/TLS certificate used for encrypted connections."
 msgstr "Nom de fichier du certificat SSL/TLS utilisé pour les connexions chiffrées."
 
-#. type: example
-#: doc/guix.texi:17385
+#. type: lisp
+#: doc/guix.texi:21527
 #, no-wrap
 msgid "(ssl-cert \"/etc/letsencrypt/live/example.com/fullchain.pem\")\n"
 msgstr "(ssl-cert \"/etc/letsencrypt/live/example.com/fullchain.pem\")\n"
 
 #. type: item
-#: doc/guix.texi:17386
+#: doc/guix.texi:21528
 #, no-wrap
 msgid "@code{ssl-key} (default: @code{#f})"
 msgstr "@code{ssl-key} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:17388
+#: doc/guix.texi:21530
 msgid "Filepath to the ssl private key used for encrypted connections."
 msgstr "Chemin de fichier vers la clef privée ssl pour les connexions chiffrées."
 
-#. type: example
-#: doc/guix.texi:17390
+#. type: lisp
+#: doc/guix.texi:21532
 #, no-wrap
 msgid "(ssl-key \"/etc/letsencrypt/live/example.com/privkey.pem\")\n"
 msgstr "(ssl-key \"/etc/letsencrypt/live/example.com/privkey.pem\")\n"
 
 #. type: item
-#: doc/guix.texi:17392
+#: doc/guix.texi:21534
 #, no-wrap
 msgid "@code{ssl-dh-params} (default: @code{#f})"
 msgstr "@code{ssl-dh-params} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:17397
+#: doc/guix.texi:21539
 msgid "File name of a PEM-encoded file with Diffie-Hellman parameters for the SSL/TLS encryption.  Alternatively you set it to @code{\"@@ffdhe2048\"}, @code{\"@@ffdhe3072\"}, @code{\"@@ffdhe4096\"}, @code{\"@@ffdhe6144\"} or @code{\"@@ffdhe8192\"} to use bundled parameters from RFC 7919."
 msgstr "Nom de fichier d'un fichier encodé en PEM avec les paramètres Diffie-Hellman pour le chiffrement SSL/TLS.  Autrement vous pouvez indiquer @code{\"@@ffdhe2048\"}, @code{\"@@ffdhe3072\"}, @code{\"@@ffdhe4096\"}, @code{\"@@ffdhe6144\"} ou @code{\"@@ffdhe8192\"} pour utiliser les paramètres inclus de la RFC 7919."
 
 #. type: item
-#: doc/guix.texi:17398
+#: doc/guix.texi:21540
 #, no-wrap
 msgid "@code{ssl-ciphers} (default: @code{#f})"
 msgstr "@code{ssl-ciphers} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:17401
+#: doc/guix.texi:21543
 msgid "The @code{ssl-ciphers} option chooses the cipher suites to make available for use in SSL/TLS."
 msgstr "L'option @code{ssl-ciphers} permet de choisir les suites de chiffrement disponibles pour SSL/TLS."
 
 #. type: table
-#: doc/guix.texi:17405
+#: doc/guix.texi:21547
 msgid "This option is specified using @uref{https://www.openssl.org/docs/apps/ciphers.html#CIPHER-LIST-FORMAT, OpenSSL cipher list notation}."
 msgstr "Cette option est spécifiée en utilisant l'@uref{https://www.openssl.org/docs/apps/ciphers.html#CIPHER-LIST-FORMAT, OpenSSL cipher list notation}"
 
 #. type: table
-#: doc/guix.texi:17410
+#: doc/guix.texi:21552
 msgid "It is recommended that you try your cipher string using 'openssl ciphers <string>' before setting it here, to get a feel for which cipher suites you will get.  After setting this option, it is recommend that you inspect your Murmur log to ensure that Murmur is using the cipher suites that you expected it to."
 msgstr "Nous vous recommandons d'essayer votre chaîne de suites de chiffrements avec « openssl ciphers <chaîne> » avant de l'indiquer ici, pour avoir une idée des suites de chiffrement que vous aurez.  Après avoir indiqué cette option, nous vous recommandons d'inspecter les journaux de Murmur pour vous assurer que Murmur utilise les suites de chiffrements auxquelles vous vous attendez."
 
 #. type: table
-#: doc/guix.texi:17414
+#: doc/guix.texi:21556
 msgid "Note: Changing this option may impact the backwards compatibility of your Murmur server, and can remove the ability for older Mumble clients to be able to connect to it."
 msgstr "Remarque : modifier cette option peut impacter la rétrocompatibilité de votre serveur Murmur, et peut empêcher que des clients Mumble anciens se connectent."
 
 #. type: item
-#: doc/guix.texi:17415
+#: doc/guix.texi:21557
 #, no-wrap
 msgid "@code{public-registration} (default: @code{#f})"
 msgstr "@code{public-registration} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:17417
+#: doc/guix.texi:21559
 msgid "Must be a @code{<murmur-public-registration-configuration>} record or @code{#f}."
 msgstr "Doit être un enregistrement @code{<murmur-public-registration-configuration>} ou @code{#f}."
 
 #. type: table
-#: doc/guix.texi:17422
+#: doc/guix.texi:21564
 msgid "You can optionally register your server in the public server list that the @code{mumble} client shows on startup.  You cannot register your server if you have set a @code{server-password}, or set @code{allow-ping} to @code{#f}."
 msgstr "Vous pouvez aussi enregistrer votre serveur dans la liste des serveurs publiques que le client @code{mumble} affiche au démarrage.  Vous ne pouvez pas enregistrer votre serveur si vous avez un @code{server-password} ou @code{allow-ping} à @code{#f}."
 
 #. type: table
-#: doc/guix.texi:17424
+#: doc/guix.texi:21566
 msgid "It might take a few hours until it shows up in the public list."
 msgstr "Cela peut prendre quelques heures avant d'arriver sur la liste publique."
 
 #. type: item
-#: doc/guix.texi:17425 doc/guix.texi:18856
+#: doc/guix.texi:21567 doc/guix.texi:22999
 #, no-wrap
 msgid "@code{file} (default: @code{#f})"
 msgstr "@code{file} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:17427
+#: doc/guix.texi:21569
 msgid "Optional alternative override for this configuration."
 msgstr "Version alternative de cette configuration : si vous indiquez quelque chose, le reste est ignoré."
 
 #. type: deftp
-#: doc/guix.texi:17430
+#: doc/guix.texi:21572
 #, no-wrap
 msgid "{Data Type} murmur-public-registration-configuration"
 msgstr "{Type de données} murmur-public-registration-configuration"
 
 #. type: deftp
-#: doc/guix.texi:17432
+#: doc/guix.texi:21574
 msgid "Configuration for public registration of a murmur service."
 msgstr "Configuration pour l'enregistrement public du service murmur."
 
 #. type: table
-#: doc/guix.texi:17436
+#: doc/guix.texi:21578
 msgid "This is a display name for your server. Not to be confused with the hostname."
 msgstr "C'est le nom d'affichage de votre serveur.  Ne pas le confondre avec le nom d'hôte."
 
 #. type: itemx
-#: doc/guix.texi:17437 doc/guix.texi:23817
+#: doc/guix.texi:21579 doc/guix.texi:30111
 #, no-wrap
 msgid "password"
 msgstr "password"
 
 #. type: table
-#: doc/guix.texi:17440
+#: doc/guix.texi:21582
 msgid "A password to identify your registration.  Subsequent updates will need the same password. Don't lose your password."
 msgstr "Un mot de passe pour identifier votre enregistrement.  Les mises à jours suivantes devront utiliser le même mot de passe.  Ne le perdez pas."
 
-#. type: code{#1}
-#: doc/guix.texi:17441
-#, no-wrap
-msgid "url"
-msgstr "url"
-
 #. type: table
-#: doc/guix.texi:17444
+#: doc/guix.texi:21586
 msgid "This should be a @code{http://} or @code{https://} link to your web site."
 msgstr "Cela devrait être le lien @code{http://} ou @code{https://} vers votre site web."
 
 #. type: item
-#: doc/guix.texi:17445
+#: doc/guix.texi:21587
 #, no-wrap
 msgid "@code{hostname} (default: @code{#f})"
 msgstr "@code{hostname} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:17448
+#: doc/guix.texi:21590
 msgid "By default your server will be listed by its IP address.  If it is set your server will be linked by this host name instead."
 msgstr "Par défaut votre serveur sera listé par son adresse IP.  Si cette option est indiquée votre serveur sera listé par son nom d'hôte."
 
 #. type: subsubheading
-#: doc/guix.texi:17456
+#: doc/guix.texi:21598
 #, no-wrap
 msgid "Tailon Service"
 msgstr "Service Tailon"
 
 #. type: Plain text
-#: doc/guix.texi:17460
+#: doc/guix.texi:21602
 msgid "@uref{https://tailon.readthedocs.io/, Tailon} is a web application for viewing and searching log files."
 msgstr "@uref{https://tailon.readthedocs.io/, Tailon} est une application web pour visualiser et chercher des fichiers de journaux."
 
 #. type: Plain text
-#: doc/guix.texi:17463
+#: doc/guix.texi:21605
 msgid "The following example will configure the service with default values.  By default, Tailon can be accessed on port 8080 (@code{http://localhost:8080})."
 msgstr "L'exemple suivant configurera le service avec les valeurs par défaut.  Par défaut, on peut accéder à Tailon sur le pour 8080 (@code{http://localhost:8080})."
 
-#. type: example
-#: doc/guix.texi:17466
+#. type: lisp
+#: doc/guix.texi:21608
 #, no-wrap
 msgid "(service tailon-service-type)\n"
 msgstr "(service tailon-service-type)\n"
 
 #. type: Plain text
-#: doc/guix.texi:17470
+#: doc/guix.texi:21612
 msgid "The following example customises more of the Tailon configuration, adding @command{sed} to the list of allowed commands."
 msgstr "L'exemple suivant personnalise un peu plus la configuration de Tailon, en ajoutant @command{sed} à la liste des commandes autorisées."
 
-#. type: example
-#: doc/guix.texi:17477
+#. type: lisp
+#: doc/guix.texi:21619
 #, no-wrap
 msgid ""
 "(service tailon-service-type\n"
@@ -32859,34 +40385,34 @@ msgstr ""
 "               (allowed-commands '(\"tail\" \"grep\" \"awk\" \"sed\"))))))\n"
 
 #. type: deftp
-#: doc/guix.texi:17480
+#: doc/guix.texi:21622
 #, no-wrap
 msgid "{Data Type} tailon-configuration"
 msgstr "{Type de données} tailon-configuration"
 
 #. type: deftp
-#: doc/guix.texi:17483
+#: doc/guix.texi:21625
 msgid "Data type representing the configuration of Tailon.  This type has the following parameters:"
 msgstr "Type de données représentant la configuration de Tailon.  Ce type a les paramètres suivants :"
 
 #. type: item
-#: doc/guix.texi:17485
+#: doc/guix.texi:21627
 #, no-wrap
 msgid "@code{config-file} (default: @code{(tailon-configuration-file)})"
 msgstr "@code{config-file} (par défaut : @code{(tailon-configuration-file)})"
 
 #. type: table
-#: doc/guix.texi:17489
+#: doc/guix.texi:21631
 msgid "The configuration file to use for Tailon. This can be set to a @dfn{tailon-configuration-file} record value, or any gexp (@pxref{G-Expressions})."
 msgstr "Le fichier de configuration à utiliser pour Tailon.  Ce champ peut contenir un enregistrement @dfn{tailon-configuration-file} ou n'importe quelle gexp (@pxref{G-Expressions})."
 
 #. type: table
-#: doc/guix.texi:17492
+#: doc/guix.texi:21634
 msgid "For example, to instead use a local file, the @code{local-file} function can be used:"
 msgstr "Par exemple, pour utiliser un fichier local à la place, on peut utiliser la fonction @code{local-file} :"
 
-#. type: example
-#: doc/guix.texi:17497
+#. type: lisp
+#: doc/guix.texi:21639
 #, no-wrap
 msgid ""
 "(service tailon-service-type\n"
@@ -32898,150 +40424,144 @@ msgstr ""
 "           (config-file (local-file \"./my-tailon.conf\"))))\n"
 
 #. type: item
-#: doc/guix.texi:17499
+#: doc/guix.texi:21641
 #, no-wrap
 msgid "@code{package} (default: @code{tailon})"
 msgstr "@code{package} (par défaut : @code{tailon})"
 
 #. type: table
-#: doc/guix.texi:17501
+#: doc/guix.texi:21643
 msgid "The tailon package to use."
 msgstr "Le paquet tailon à utiliser."
 
 #. type: deftp
-#: doc/guix.texi:17505
+#: doc/guix.texi:21647
 #, no-wrap
 msgid "{Data Type} tailon-configuration-file"
 msgstr "{Type de données} tailon-configuration-file"
 
 #. type: deftp
-#: doc/guix.texi:17508
+#: doc/guix.texi:21650
 msgid "Data type representing the configuration options for Tailon.  This type has the following parameters:"
 msgstr "Type de données représentant les options de configuration de Tailon.  Ce type a les paramètres suivants :"
 
 #. type: item
-#: doc/guix.texi:17510
+#: doc/guix.texi:21652
 #, no-wrap
 msgid "@code{files} (default: @code{(list \"/var/log\")})"
 msgstr "@code{files} (par défaut : @code{(list \"/var/log\")})"
 
 #. type: table
-#: doc/guix.texi:17515
+#: doc/guix.texi:21657
 msgid "List of files to display. The list can include strings for a single file or directory, or a list, where the first item is the name of a subsection, and the remaining items are the files or directories in that subsection."
 msgstr "Liste des fichiers à afficher.  La liste peut inclure des chaînes pour des fichiers simple ou des répertoires, ou une liste, où le premier élément est le nom d'un sous-section et le reste des fichiers ou des répertoires de cette sous-section."
 
 #. type: item
-#: doc/guix.texi:17516
+#: doc/guix.texi:21658
 #, no-wrap
 msgid "@code{bind} (default: @code{\"localhost:8080\"})"
 msgstr "@code{bind} (par défaut : @code{\"localhost:8080\"})"
 
 #. type: table
-#: doc/guix.texi:17518
+#: doc/guix.texi:21660
 msgid "Address and port to which Tailon should bind on."
 msgstr "Adresse et port sur lesquels Tailon écoute."
 
 #. type: item
-#: doc/guix.texi:17519
+#: doc/guix.texi:21661
 #, no-wrap
 msgid "@code{relative-root} (default: @code{#f})"
 msgstr "@code{relative-root} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:17521
+#: doc/guix.texi:21663
 msgid "URL path to use for Tailon, set to @code{#f} to not use a path."
 msgstr "Chemin de l'URL à utiliser pour Tailon, ou @code{#f} pour ne pas utiliser de chemin."
 
 #. type: item
-#: doc/guix.texi:17522
+#: doc/guix.texi:21664
 #, no-wrap
 msgid "@code{allow-transfers?} (default: @code{#t})"
 msgstr "@code{allow-transfers?} (par défaut : @code{#t})"
 
 #. type: table
-#: doc/guix.texi:17524
+#: doc/guix.texi:21666
 msgid "Allow downloading the log files in the web interface."
 msgstr "Permet de télécharger les journaux dans l'interface web."
 
 #. type: item
-#: doc/guix.texi:17525
+#: doc/guix.texi:21667
 #, no-wrap
 msgid "@code{follow-names?} (default: @code{#t})"
 msgstr "@code{follow-names?} (par défaut : @code{#t})"
 
 #. type: table
-#: doc/guix.texi:17527
+#: doc/guix.texi:21669
 msgid "Allow tailing of not-yet existent files."
 msgstr "Permet de surveiller des fichiers qui n'existent pas encore."
 
 #. type: item
-#: doc/guix.texi:17528
+#: doc/guix.texi:21670
 #, no-wrap
 msgid "@code{tail-lines} (default: @code{200})"
 msgstr "@code{tail-lines} (par défaut : @code{200})"
 
 #. type: table
-#: doc/guix.texi:17530
+#: doc/guix.texi:21672
 msgid "Number of lines to read initially from each file."
 msgstr "Nombre de lignes à lire initialement dans chaque fichier."
 
 #. type: item
-#: doc/guix.texi:17531
+#: doc/guix.texi:21673
 #, no-wrap
 msgid "@code{allowed-commands} (default: @code{(list \"tail\" \"grep\" \"awk\")})"
 msgstr "@code{allowed-commands} (par défaut : @code{(list \"tail\" \"grep\" \"awk\")})"
 
 #. type: table
-#: doc/guix.texi:17533
+#: doc/guix.texi:21675
 msgid "Commands to allow running. By default, @code{sed} is disabled."
 msgstr "Commandes autorisées.  Par défaut, @code{sed} est désactivé."
 
-#. type: item
-#: doc/guix.texi:17534
-#, no-wrap
-msgid "@code{debug?} (default: @code{#f})"
-msgstr "@code{debug?} (par défaut : @code{#f})"
-
 #. type: table
-#: doc/guix.texi:17536
+#: doc/guix.texi:21678
 msgid "Set @code{debug?} to @code{#t} to show debug messages."
 msgstr "Configurez @code{debug?} à @code{#t} pour montrer les messages de débogage."
 
 #. type: item
-#: doc/guix.texi:17537
+#: doc/guix.texi:21679
 #, no-wrap
 msgid "@code{wrap-lines} (default: @code{#t})"
 msgstr "@code{wrap-lines} (par défaut : @code{#t})"
 
 #. type: table
-#: doc/guix.texi:17541
+#: doc/guix.texi:21683
 msgid "Initial line wrapping state in the web interface. Set to @code{#t} to initially wrap lines (the default), or to @code{#f} to initially not wrap lines."
 msgstr "État initial du retour à la ligne dans l'interface web.  Configurez l'option à @code{#t} pour retourner à la ligne (par défaut) ou à @code{#f} pour ne pas retourner à la ligne au début."
 
 #. type: item
-#: doc/guix.texi:17542
+#: doc/guix.texi:21684
 #, no-wrap
 msgid "@code{http-auth} (default: @code{#f})"
 msgstr "@code{http-auth} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:17546
+#: doc/guix.texi:21688
 msgid "HTTP authentication type to use. Set to @code{#f} to disable authentication (the default). Supported values are @code{\"digest\"} or @code{\"basic\"}."
 msgstr "Type d'authentification HTTP à utiliser.  Indiquez @code{#f} pour désactiver l'authentification (par défaut).  Les valeur supportées sont @code{\"digest\"} et @code{\"basic\"}."
 
 #. type: item
-#: doc/guix.texi:17547
+#: doc/guix.texi:21689
 #, no-wrap
 msgid "@code{users} (default: @code{#f})"
 msgstr "@code{users} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:17552
+#: doc/guix.texi:21694
 msgid "If HTTP authentication is enabled (see @code{http-auth}), access will be restricted to the credentials provided here. To configure users, use a list of pairs, where the first element of the pair is the username, and the 2nd element of the pair is the password."
 msgstr "Si l'authentification HTTP est activée (voir @code{http-auth}), l'accès sera restreint aux identifiants fournis ici.  Pour configurer des utilisateurs, utilisez une liste de paires, où le premier élément de la paire est le nom d'utilisateur et le second élément est le mot de passe."
 
-#. type: example
-#: doc/guix.texi:17558
+#. type: lisp
+#: doc/guix.texi:21700
 #, no-wrap
 msgid ""
 "(tailon-configuration-file\n"
@@ -33055,35 +40575,35 @@ msgstr ""
 "               (\"user2\" . \"password2\"))))\n"
 
 #. type: subsubheading
-#: doc/guix.texi:17564
+#: doc/guix.texi:21706
 #, no-wrap
 msgid "Darkstat Service"
 msgstr "Service Darkstat"
 
 #. type: cindex
-#: doc/guix.texi:17565
+#: doc/guix.texi:21707
 #, no-wrap
 msgid "darkstat"
 msgstr "darkstat"
 
 #. type: Plain text
-#: doc/guix.texi:17568
+#: doc/guix.texi:21710
 msgid "Darkstat is a packet sniffer that captures network traffic, calculates statistics about usage, and serves reports over HTTP."
 msgstr "Darkstat est un « renifleur de paquets » qui capture le trafic réseau, calcul des statistiques sur l'utilisation et sert des rapport sur HTTP."
 
 #. type: defvar
-#: doc/guix.texi:17569
+#: doc/guix.texi:21711
 #, no-wrap
 msgid "{Scheme Variable} darkstat-service-type"
 msgstr "{Variable Scheme} darkstat-service-type"
 
 #. type: defvar
-#: doc/guix.texi:17574
+#: doc/guix.texi:21716
 msgid "This is the service type for the @uref{https://unix4lyfe.org/darkstat/, darkstat} service, its value must be a @code{darkstat-configuration} record as in this example:"
 msgstr "C'est le type de service pour le service @uref{https://unix4lyfe.org/darkstat/, darkstat}, sa valeur doit être un enregistrement @code{darkstat-configuration} comme dans cet exemple :"
 
-#. type: example
-#: doc/guix.texi:17579
+#. type: lisp
+#: doc/guix.texi:21721
 #, no-wrap
 msgid ""
 "(service darkstat-service-type\n"
@@ -33095,101 +40615,101 @@ msgstr ""
 "           (interface \"eno1\")))\n"
 
 #. type: deftp
-#: doc/guix.texi:17582
+#: doc/guix.texi:21724
 #, no-wrap
 msgid "{Data Type} darkstat-configuration"
 msgstr "{Type de données} darkstat-configuration"
 
 #. type: deftp
-#: doc/guix.texi:17584
+#: doc/guix.texi:21726
 msgid "Data type representing the configuration of @command{darkstat}."
 msgstr "Type de données représentant la configuration de @command{darkstat}."
 
 #. type: item
-#: doc/guix.texi:17586
+#: doc/guix.texi:21728
 #, no-wrap
 msgid "@code{package} (default: @code{darkstat})"
 msgstr "@code{package} (par défaut : @code{darkstat})"
 
 #. type: table
-#: doc/guix.texi:17588
+#: doc/guix.texi:21730
 msgid "The darkstat package to use."
 msgstr "Le paquet darkstat à utiliser."
 
 #. type: code{#1}
-#: doc/guix.texi:17589
+#: doc/guix.texi:21731
 #, no-wrap
 msgid "interface"
 msgstr "interface"
 
 #. type: table
-#: doc/guix.texi:17591
+#: doc/guix.texi:21733
 msgid "Capture traffic on the specified network interface."
 msgstr "Capture le trafic sur l'interface réseau spécifiée."
 
 #. type: item
-#: doc/guix.texi:17592
+#: doc/guix.texi:21734
 #, no-wrap
 msgid "@code{port} (default: @code{\"667\"})"
 msgstr "@code{port} (par défaut : @code{\"667\"})"
 
 #. type: table
-#: doc/guix.texi:17594
+#: doc/guix.texi:21736
 msgid "Bind the web interface to the specified port."
 msgstr "Lie l'interface web sur le port spécifié."
 
 #. type: item
-#: doc/guix.texi:17595
+#: doc/guix.texi:21737
 #, no-wrap
 msgid "@code{bind-address} (default: @code{\"127.0.0.1\"})"
 msgstr "@code{bind-address} (par défaut : @code{\"127.0.0.1\"})"
 
 #. type: table
-#: doc/guix.texi:17597 doc/guix.texi:17635
+#: doc/guix.texi:21739 doc/guix.texi:21777
 msgid "Bind the web interface to the specified address."
 msgstr "Lie l'interface web sur l'adresse spécifiée."
 
 #. type: item
-#: doc/guix.texi:17598
+#: doc/guix.texi:21740
 #, no-wrap
 msgid "@code{base} (default: @code{\"/\"})"
 msgstr "@code{base} (par défaut : @code{\"/\"})"
 
 #. type: table
-#: doc/guix.texi:17601
+#: doc/guix.texi:21743
 msgid "Specify the path of the base URL.  This can be useful if @command{darkstat} is accessed via a reverse proxy."
 msgstr "Spécifie le chemin de base des URL.  C'est utile si on accède à @command{darkstat} à travers un proxy inverse."
 
 #. type: subsubheading
-#: doc/guix.texi:17605
+#: doc/guix.texi:21747
 #, no-wrap
 msgid "Prometheus Node Exporter Service"
 msgstr "Service d'export de nœud de Prometheus"
 
 #. type: cindex
-#: doc/guix.texi:17607
+#: doc/guix.texi:21749
 #, no-wrap
 msgid "prometheus-node-exporter"
 msgstr "prometheus-node-exporter"
 
 #. type: Plain text
-#: doc/guix.texi:17612
+#: doc/guix.texi:21754
 msgid "The Prometheus ``node exporter'' makes hardware and operating system statistics provided by the Linux kernel available for the Prometheus monitoring system.  This service should be deployed on all physical nodes and virtual machines, where monitoring these statistics is desirable."
 msgstr "L'exportateur de nœuds de Prometheus rend disponible les statistiques sur le matériel et le système d'exploitation fournies par le noyau Linux pour le système de surveillance Prometheus.  Ce service devrait être déployé sur tous les nœuds physiques et les machines virtuelles, où vous voulez surveiller ces statistiques."
 
 #. type: defvar
-#: doc/guix.texi:17613
+#: doc/guix.texi:21755
 #, no-wrap
 msgid "{Scheme variable} prometheus-node-exporter-service-type"
 msgstr "{Variable Scheme} prometheus-node-exporter-service-type"
 
 #. type: defvar
-#: doc/guix.texi:17618
+#: doc/guix.texi:21760
 msgid "This is the service type for the @uref{https://github.com/prometheus/node_exporter/, prometheus-node-exporter} service, its value must be a @code{prometheus-node-exporter-configuration} record as in this example:"
 msgstr "C'est le type de service pour le service @uref{https://github.com/prometheus/node_exporter/, prometheus-node-exporter}, sa valeur doit être un enregistrement @code{prometheus-node-exporter-configuration} comme dans cet exemple :"
 
-#. type: example
-#: doc/guix.texi:17623
+#. type: lisp
+#: doc/guix.texi:21765
 #, no-wrap
 msgid ""
 "(service prometheus-node-exporter-service-type\n"
@@ -33201,609 +40721,609 @@ msgstr ""
 "           (web-listen-address \":9100\")))\n"
 
 #. type: deftp
-#: doc/guix.texi:17626
+#: doc/guix.texi:21768
 #, no-wrap
 msgid "{Data Type} prometheus-node-exporter-configuration"
 msgstr "{Type de données} prometheus-node-exporter-configuration"
 
 #. type: deftp
-#: doc/guix.texi:17628
+#: doc/guix.texi:21770
 msgid "Data type representing the configuration of @command{node_exporter}."
 msgstr "Type de données représentant la configuration de @command{node_exporter}"
 
 #. type: item
-#: doc/guix.texi:17630
+#: doc/guix.texi:21772
 #, no-wrap
 msgid "@code{package} (default: @code{go-github-com-prometheus-node-exporter})"
 msgstr "@code{package} (par défaut : @code{go-github-com-prometheus-node-exporter})"
 
 #. type: table
-#: doc/guix.texi:17632
+#: doc/guix.texi:21774
 msgid "The prometheus-node-exporter package to use."
 msgstr "Le paquet prometheus-node-exporter à utiliser."
 
 #. type: item
-#: doc/guix.texi:17633
+#: doc/guix.texi:21775
 #, no-wrap
 msgid "@code{web-listen-address} (default: @code{\":9100\"})"
 msgstr "@code{web-listen-address} (par défaut : @code{\":9100\"})"
 
 #. type: subsubheading
-#: doc/guix.texi:17639
+#: doc/guix.texi:21781
 #, no-wrap
 msgid "Zabbix server"
 msgstr "Server zabbix"
 
 #. type: cindex
-#: doc/guix.texi:17640
+#: doc/guix.texi:21782
 #, no-wrap
 msgid "zabbix zabbix-server"
 msgstr "zabbix zabbix-server"
 
 #. type: Plain text
-#: doc/guix.texi:17643
+#: doc/guix.texi:21785
 msgid "Zabbix provides monitoring metrics, among others network utilization, CPU load and disk space consumption:"
 msgstr "Zabbix fournit des métriques de suivi entre autres de l'utilisation du réseau, de la charge CPU et de l'espace disque :"
 
 #. type: item
-#: doc/guix.texi:17645
+#: doc/guix.texi:21787
 #, no-wrap
 msgid "High performance, high capacity (able to monitor hundreds of thousands of devices)."
 msgstr "Haute performance, haute capacité (il est capable de surveiller des centaines de milliers d'appareils)."
 
 #. type: item
-#: doc/guix.texi:17646
+#: doc/guix.texi:21788
 #, no-wrap
 msgid "Auto-discovery of servers and network devices and interfaces."
 msgstr "Découverte automatique des serveurs, des appareils et leurs interfaces réseaux."
 
 #. type: item
-#: doc/guix.texi:17647
+#: doc/guix.texi:21789
 #, no-wrap
 msgid "Low-level discovery, allows to automatically start monitoring new items, file systems or network interfaces among others."
 msgstr "Découverte bas-niveau, qui permet de commencer automatiquement à surveiller de nouveaux éléments, des systèmes de fichiers ou des interfaces réseaux entre autres."
 
 #. type: item
-#: doc/guix.texi:17648
+#: doc/guix.texi:21790
 #, no-wrap
 msgid "Distributed monitoring with centralized web administration."
 msgstr "Surveillance distribuée avec une administration web centralisée."
 
 #. type: item
-#: doc/guix.texi:17649
+#: doc/guix.texi:21791
 #, no-wrap
 msgid "Native high performance agents."
 msgstr "Agents natifs haute-performance."
 
 #. type: item
-#: doc/guix.texi:17650
+#: doc/guix.texi:21792
 #, no-wrap
 msgid "SLA, and ITIL KPI metrics on reporting."
 msgstr "Métriques SLA et ITIL KPI dans les rapports."
 
 #. type: item
-#: doc/guix.texi:17651
+#: doc/guix.texi:21793
 #, no-wrap
 msgid "High-level (business) view of monitored resources through user-defined visual console screens and dashboards."
 msgstr "Vue haut-niveau (businness) des ressources surveillées à travers des écrans de consoles visuelles définie par l'utilisateur et des panneaux de commande."
 
 #. type: item
-#: doc/guix.texi:17652
+#: doc/guix.texi:21794
 #, no-wrap
 msgid "Remote command execution through Zabbix proxies."
 msgstr "Exécution à distance à travers les mandataires Zabbix."
 
 #. type: Plain text
-#: doc/guix.texi:17658
+#: doc/guix.texi:21800
 msgid "Available @code{zabbix-server-configuration} fields are:"
 msgstr "Les champs de @code{zabbix-server-configuration} disponibles sont :"
 
 #. type: deftypevr
-#: doc/guix.texi:17659
+#: doc/guix.texi:21801
 #, no-wrap
 msgid "{@code{zabbix-server-configuration} parameter} package zabbix-server"
 msgstr "{paramètre de @code{zabbix-server-configuration}} package zabbix-server"
 
 #. type: deftypevr
-#: doc/guix.texi:17661
+#: doc/guix.texi:21803
 msgid "The zabbix-server package."
 msgstr "Le paquet zabbix-server."
 
 #. type: deftypevr
-#: doc/guix.texi:17664
+#: doc/guix.texi:21806
 #, no-wrap
 msgid "{@code{zabbix-server-configuration} parameter} string user"
 msgstr "{paramètre de @code{zabbix-server-configuration}} string user"
 
 #. type: deftypevr
-#: doc/guix.texi:17666
+#: doc/guix.texi:21808
 msgid "User who will run the Zabbix server."
 msgstr "Utilisateur qui lancera le serveur Zabbix."
 
 #. type: deftypevr
-#: doc/guix.texi:17668 doc/guix.texi:17675 doc/guix.texi:17689
-#: doc/guix.texi:17696 doc/guix.texi:17797 doc/guix.texi:17804
-#: doc/guix.texi:17915 doc/guix.texi:17922
+#: doc/guix.texi:21810 doc/guix.texi:21817 doc/guix.texi:21831
+#: doc/guix.texi:21838 doc/guix.texi:21939 doc/guix.texi:21946
+#: doc/guix.texi:22057 doc/guix.texi:22064
 msgid "Defaults to @samp{\"zabbix\"}."
 msgstr "La valeur par défaut est @samp{\"zabbix\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17671
+#: doc/guix.texi:21813
 #, no-wrap
 msgid "{@code{zabbix-server-configuration} parameter} group group"
 msgstr "{paramètre de @code{zabbix-server-configuration}} group group"
 
 #. type: deftypevr
-#: doc/guix.texi:17673
+#: doc/guix.texi:21815
 msgid "Group who will run the Zabbix server."
 msgstr "Groupe qui lancera le serveur Zabbix."
 
 #. type: deftypevr
-#: doc/guix.texi:17678
+#: doc/guix.texi:21820
 #, no-wrap
 msgid "{@code{zabbix-server-configuration} parameter} string db-host"
 msgstr "{paramètre de @code{zabbix-server-configuration}} string db-host"
 
 #. type: deftypevr
-#: doc/guix.texi:17680 doc/guix.texi:17899
+#: doc/guix.texi:21822 doc/guix.texi:22041
 msgid "Database host name."
 msgstr "Le nom d'hôte de la base de données."
 
 #. type: deftypevr
-#: doc/guix.texi:17682
+#: doc/guix.texi:21824
 msgid "Defaults to @samp{\"127.0.0.1\"}."
 msgstr "La valeur par défaut est @samp{\"127.0.0.1\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17685
+#: doc/guix.texi:21827
 #, no-wrap
 msgid "{@code{zabbix-server-configuration} parameter} string db-name"
 msgstr "{paramètre de @code{zabbix-server-configuration}} string db-name"
 
 #. type: deftypevr
-#: doc/guix.texi:17687 doc/guix.texi:17913
+#: doc/guix.texi:21829 doc/guix.texi:22055
 msgid "Database name."
 msgstr "Nom de la base de données."
 
 #. type: deftypevr
-#: doc/guix.texi:17692
+#: doc/guix.texi:21834
 #, no-wrap
 msgid "{@code{zabbix-server-configuration} parameter} string db-user"
 msgstr "{paramètre de @code{zabbix-server-configuration}} string db-user"
 
 #. type: deftypevr
-#: doc/guix.texi:17694 doc/guix.texi:17920
+#: doc/guix.texi:21836 doc/guix.texi:22062
 msgid "Database user."
 msgstr "Utilisateur de la base de données."
 
 #. type: deftypevr
-#: doc/guix.texi:17699
+#: doc/guix.texi:21841
 #, no-wrap
 msgid "{@code{zabbix-server-configuration} parameter} string db-password"
 msgstr "{paramètre de @code{zabbix-server-configuration}} string db-password"
 
 #. type: deftypevr
-#: doc/guix.texi:17702
+#: doc/guix.texi:21844
 msgid "Database password.  Please, use @code{include-files} with @code{DBPassword=SECRET} inside a specified file instead."
 msgstr "Mot de passe de la base de données.  Utilisez plutôt @code{include-files} avec @code{DBPassword=SECRET} dans le fichier spécifié à la place."
 
 #. type: deftypevr
-#: doc/guix.texi:17707
+#: doc/guix.texi:21849
 #, no-wrap
 msgid "{@code{zabbix-server-configuration} parameter} number db-port"
 msgstr "{paramètre de @code{zabbix-server-configuration}} number db-port"
 
 #. type: deftypevr
-#: doc/guix.texi:17709 doc/guix.texi:17906
+#: doc/guix.texi:21851 doc/guix.texi:22048
 msgid "Database port."
 msgstr "Port de la base de données."
 
 #. type: deftypevr
-#: doc/guix.texi:17711 doc/guix.texi:17908
+#: doc/guix.texi:21853 doc/guix.texi:22050
 msgid "Defaults to @samp{5432}."
 msgstr "La valeur par défaut est @samp{5432}."
 
 #. type: deftypevr
-#: doc/guix.texi:17714
+#: doc/guix.texi:21856
 #, no-wrap
 msgid "{@code{zabbix-server-configuration} parameter} string log-type"
 msgstr "{paramètre de @code{zabbix-server-configuration}} string log-type"
 
 #. type: deftypevr
-#: doc/guix.texi:17716 doc/guix.texi:17817
+#: doc/guix.texi:21858 doc/guix.texi:21959
 msgid "Specifies where log messages are written to:"
 msgstr "Spécifie où les messages de journalisation seront écrits :"
 
 #. type: itemize
-#: doc/guix.texi:17720 doc/guix.texi:17821
+#: doc/guix.texi:21862 doc/guix.texi:21963
 msgid "@code{system} - syslog."
 msgstr "@code{system} - syslog."
 
 #. type: itemize
-#: doc/guix.texi:17723 doc/guix.texi:17824
+#: doc/guix.texi:21865 doc/guix.texi:21966
 msgid "@code{file} - file specified with @code{log-file} parameter."
 msgstr "@code{file} - fichier spécifié par le paramètre @code{log-file}."
 
 #. type: itemize
-#: doc/guix.texi:17726 doc/guix.texi:17827
+#: doc/guix.texi:21868 doc/guix.texi:21969
 msgid "@code{console} - standard output."
 msgstr "@code{console} - sortie standard."
 
 #. type: deftypevr
-#: doc/guix.texi:17733
+#: doc/guix.texi:21875
 #, no-wrap
 msgid "{@code{zabbix-server-configuration} parameter} string log-file"
 msgstr "{paramètre de @code{zabbix-server-configuration}} string log-file"
 
 #. type: deftypevr
-#: doc/guix.texi:17735 doc/guix.texi:17836
+#: doc/guix.texi:21877 doc/guix.texi:21978
 msgid "Log file name for @code{log-type} @code{file} parameter."
 msgstr "Nom du fichier de journal lorsque le paramètre @code{log-type} vaut @code{file}."
 
 #. type: deftypevr
-#: doc/guix.texi:17737
+#: doc/guix.texi:21879
 msgid "Defaults to @samp{\"/var/log/zabbix/server.log\"}."
 msgstr "La valeur par défaut est @samp{\"/var/log/zabbix/server.log\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17740
+#: doc/guix.texi:21882
 #, no-wrap
 msgid "{@code{zabbix-server-configuration} parameter} string pid-file"
 msgstr "{paramètre de @code{zabbix-server-configuration}} string pid-file"
 
 #. type: deftypevr
-#: doc/guix.texi:17742 doc/guix.texi:17843
+#: doc/guix.texi:21884 doc/guix.texi:21985
 msgid "Name of PID file."
 msgstr "Nom du fichier de PID."
 
 #. type: deftypevr
-#: doc/guix.texi:17744
+#: doc/guix.texi:21886
 msgid "Defaults to @samp{\"/var/run/zabbix/zabbix_server.pid\"}."
 msgstr "La valeur par défaut est @samp{\"/var/run/zabbix/zabbix_server.pid\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17747
+#: doc/guix.texi:21889
 #, no-wrap
 msgid "{@code{zabbix-server-configuration} parameter} string ssl-ca-location"
 msgstr "{paramètre de @code{zabbix-server-configuration}} string ssl-ca-location"
 
 #. type: deftypevr
-#: doc/guix.texi:17750
+#: doc/guix.texi:21892
 msgid "The location of certificate authority (CA) files for SSL server certificate verification."
 msgstr "Emplacement des fichiers d'autorités de certification (AC) pour la vérification des certificats SSL du serveur."
 
 #. type: deftypevr
-#: doc/guix.texi:17752
+#: doc/guix.texi:21894
 msgid "Defaults to @samp{\"/etc/ssl/certs/ca-certificates.crt\"}."
 msgstr "La valeur par défaut est @samp{\"/etc/ssl/certs/ca-certificates.crt\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17755
+#: doc/guix.texi:21897
 #, no-wrap
 msgid "{@code{zabbix-server-configuration} parameter} string ssl-cert-location"
 msgstr "{paramètre de @code{zabbix-server-configuration}} string ssl-cert-location"
 
 #. type: deftypevr
-#: doc/guix.texi:17757
+#: doc/guix.texi:21899
 msgid "Location of SSL client certificates."
 msgstr "Emplacement des certificats SSL des clients."
 
 #. type: deftypevr
-#: doc/guix.texi:17759
+#: doc/guix.texi:21901
 msgid "Defaults to @samp{\"/etc/ssl/certs\"}."
 msgstr "La valeur par défaut est @samp{\"/etc/ssl/certs\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17762
+#: doc/guix.texi:21904
 #, no-wrap
 msgid "{@code{zabbix-server-configuration} parameter} string extra-options"
 msgstr "{paramètre de @code{zabbix-server-configuration}} string extra-options"
 
 #. type: deftypevr
-#: doc/guix.texi:17764 doc/guix.texi:17868
+#: doc/guix.texi:21906 doc/guix.texi:22010
 msgid "Extra options will be appended to Zabbix server configuration file."
 msgstr "Options supplémentaires ajoutées à la fin du fichier de configuration du serveur Zabbix."
 
 #. type: deftypevr
-#: doc/guix.texi:17769
+#: doc/guix.texi:21911
 #, no-wrap
 msgid "{@code{zabbix-server-configuration} parameter} include-files include-files"
 msgstr "{paramètre de @code{zabbix-server-configuration}} include-files include-files"
 
 #. type: deftypevr
-#: doc/guix.texi:17772 doc/guix.texi:17876
+#: doc/guix.texi:21914 doc/guix.texi:22018
 msgid "You may include individual files or all files in a directory in the configuration file."
 msgstr "Vous pouvez inclure des fichiers individuels ou tous les fichiers d'un répertoire dans le fichier de configuration."
 
 #. type: subsubheading
-#: doc/guix.texi:17779
+#: doc/guix.texi:21921
 #, no-wrap
 msgid "Zabbix agent"
 msgstr "Agent zabbix"
 
 #. type: cindex
-#: doc/guix.texi:17780
+#: doc/guix.texi:21922
 #, no-wrap
 msgid "zabbix zabbix-agent"
 msgstr "zabbix zabbix-agent"
 
 #. type: Plain text
-#: doc/guix.texi:17783
+#: doc/guix.texi:21925
 msgid "Zabbix agent gathers information for Zabbix server."
 msgstr "L'agent Zabbix récupère des informations pour le serveur Zabbix."
 
 #. type: Plain text
-#: doc/guix.texi:17787
+#: doc/guix.texi:21929
 msgid "Available @code{zabbix-agent-configuration} fields are:"
 msgstr "Les champs de @code{zabbix-agent-configuration} disponibles sont :"
 
 #. type: deftypevr
-#: doc/guix.texi:17788
+#: doc/guix.texi:21930
 #, no-wrap
 msgid "{@code{zabbix-agent-configuration} parameter} package zabbix-agent"
 msgstr "{paramètre de @code{zabbix-agent-configuration}} package zabbix-agent"
 
 #. type: deftypevr
-#: doc/guix.texi:17790
+#: doc/guix.texi:21932
 msgid "The zabbix-agent package."
 msgstr "Le paquet zabbix-agent."
 
 #. type: deftypevr
-#: doc/guix.texi:17793
+#: doc/guix.texi:21935
 #, no-wrap
 msgid "{@code{zabbix-agent-configuration} parameter} string user"
 msgstr "{paramètre de @code{zabbix-agent-configuration}} string user"
 
 #. type: deftypevr
-#: doc/guix.texi:17795
+#: doc/guix.texi:21937
 msgid "User who will run the Zabbix agent."
 msgstr "Utilisateur qui lancera l'agent Zabbix."
 
 #. type: deftypevr
-#: doc/guix.texi:17800
+#: doc/guix.texi:21942
 #, no-wrap
 msgid "{@code{zabbix-agent-configuration} parameter} group group"
 msgstr "{paramètre de @code{zabbix-agent-configuration}} group group"
 
 #. type: deftypevr
-#: doc/guix.texi:17802
+#: doc/guix.texi:21944
 msgid "Group who will run the Zabbix agent."
 msgstr "Groupe qui lancera l'agent Zabbix."
 
 #. type: deftypevr
-#: doc/guix.texi:17807
+#: doc/guix.texi:21949
 #, no-wrap
 msgid "{@code{zabbix-agent-configuration} parameter} string hostname"
 msgstr "{paramètre de @code{zabbix-agent-configuration}} string hostname"
 
 #. type: deftypevr
-#: doc/guix.texi:17810
+#: doc/guix.texi:21952
 msgid "Unique, case sensitive hostname which is required for active checks and must match hostname as configured on the server."
 msgstr "Noms d'hôte unique et sensible à la casse requis pour les vérifications actives et qui doit correspondre au nom d'hôte configuré sur le serveur."
 
 #. type: deftypevr
-#: doc/guix.texi:17812
+#: doc/guix.texi:21954
 msgid "Defaults to @samp{\"Zabbix server\"}."
 msgstr "La valeur par défaut est @samp{\"Zabbix server\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17815
+#: doc/guix.texi:21957
 #, no-wrap
 msgid "{@code{zabbix-agent-configuration} parameter} string log-type"
 msgstr "{paramètre de @code{zabbix-agent-configuration}} string log-type"
 
 #. type: deftypevr
-#: doc/guix.texi:17834
+#: doc/guix.texi:21976
 #, no-wrap
 msgid "{@code{zabbix-agent-configuration} parameter} string log-file"
 msgstr "{paramètre de @code{zabbix-agent-configuration}} string log-file"
 
 #. type: deftypevr
-#: doc/guix.texi:17838
+#: doc/guix.texi:21980
 msgid "Defaults to @samp{\"/var/log/zabbix/agent.log\"}."
 msgstr "La valeur par défaut est @samp{\"/var/log/zabbix/agent.log\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17841
+#: doc/guix.texi:21983
 #, no-wrap
 msgid "{@code{zabbix-agent-configuration} parameter} string pid-file"
 msgstr "{paramètre de @code{zabbix-agent-configuration}} string pid-file"
 
 #. type: deftypevr
-#: doc/guix.texi:17845
+#: doc/guix.texi:21987
 msgid "Defaults to @samp{\"/var/run/zabbix/zabbix_agent.pid\"}."
 msgstr "La valeur par défaut est @samp{\"/var/run/zabbix/zabbix_agent.pid\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:17848
+#: doc/guix.texi:21990
 #, no-wrap
 msgid "{@code{zabbix-agent-configuration} parameter} list server"
 msgstr "{paramètre de @code{zabbix-agent-configuration}} list server"
 
 #. type: deftypevr
-#: doc/guix.texi:17852
+#: doc/guix.texi:21994
 msgid "List of IP addresses, optionally in CIDR notation, or hostnames of Zabbix servers and Zabbix proxies.  Incoming connections will be accepted only from the hosts listed here."
 msgstr "Liste d'adresses IP, éventuellement en notation CIDR ou de noms d'hôtes de serveurs Zabbix et de mandataires Zabbix.  Les connexions entrantes ne seront acceptées que si elles viennent des hôtes listés ici."
 
 #. type: deftypevr
-#: doc/guix.texi:17854 doc/guix.texi:17863
+#: doc/guix.texi:21996 doc/guix.texi:22005
 msgid "Defaults to @samp{(\"127.0.0.1\")}."
 msgstr "La valeur par défaut est @samp{(\"127.0.0.1\")}."
 
 #. type: deftypevr
-#: doc/guix.texi:17857
+#: doc/guix.texi:21999
 #, no-wrap
 msgid "{@code{zabbix-agent-configuration} parameter} list server-active"
 msgstr "{paramètre de @code{zabbix-agent-configuration}} list server-active"
 
 #. type: deftypevr
-#: doc/guix.texi:17861
+#: doc/guix.texi:22003
 msgid "List of IP:port (or hostname:port) pairs of Zabbix servers and Zabbix proxies for active checks.  If port is not specified, default port is used.  If this parameter is not specified, active checks are disabled."
 msgstr "Liste de paires d'IP:port (ou nom d'hôte:port) de serveurs Zabbix et de mandataires Zabbix pour les vérifications actives.  Si le port n'est pas spécifié, le port par défaut est utilisé.  Si ce paramètre n'est pas spécifié, les vérifications actives sont désactivées."
 
 #. type: deftypevr
-#: doc/guix.texi:17866
+#: doc/guix.texi:22008
 #, no-wrap
 msgid "{@code{zabbix-agent-configuration} parameter} string extra-options"
 msgstr "{paramètre de @code{zabbix-agent-configuration}} string extra-options"
 
 #. type: deftypevr
-#: doc/guix.texi:17873
+#: doc/guix.texi:22015
 #, no-wrap
 msgid "{@code{zabbix-agent-configuration} parameter} include-files include-files"
 msgstr "{paramètre de @code{zabbix-agent-configuration}} include-files include-files"
 
 #. type: subsubheading
-#: doc/guix.texi:17883
+#: doc/guix.texi:22025
 #, no-wrap
 msgid "Zabbix front-end"
 msgstr "Interface utilisateur Zabbix"
 
 #. type: cindex
-#: doc/guix.texi:17884
+#: doc/guix.texi:22026
 #, no-wrap
 msgid "zabbix zabbix-front-end"
 msgstr "zabbix zabbix-front-end"
 
 #. type: Plain text
-#: doc/guix.texi:17887
+#: doc/guix.texi:22029
 msgid "This service provides a WEB interface to Zabbix server."
 msgstr "Ce service fournit une interface WEB au serveur Zabbix."
 
 #. type: Plain text
-#: doc/guix.texi:17891
+#: doc/guix.texi:22033
 msgid "Available @code{zabbix-front-end-configuration} fields are:"
 msgstr "Les champs de @code{zabbix-front-end-configuration} disponibles sont :"
 
 #. type: deftypevr
-#: doc/guix.texi:17892
+#: doc/guix.texi:22034
 #, no-wrap
 msgid "{@code{zabbix-front-end-configuration} parameter} nginx-server-configuration-list nginx"
 msgstr "{paramètre de @code{zabbix-front-end-configuration}} nginx-server-configuration-list nginx"
 
 #. type: deftypevr
-#: doc/guix.texi:17894 doc/guix.texi:22296
+#: doc/guix.texi:22036 doc/guix.texi:27895
 msgid "NGINX configuration."
 msgstr "Configuration Nginx."
 
 #. type: deftypevr
-#: doc/guix.texi:17897
+#: doc/guix.texi:22039
 #, no-wrap
 msgid "{@code{zabbix-front-end-configuration} parameter} string db-host"
 msgstr "{paramètre de @code{zabbix-front-end-configuration}} string db-host"
 
 #. type: deftypevr
-#: doc/guix.texi:17904
+#: doc/guix.texi:22046
 #, no-wrap
 msgid "{@code{zabbix-front-end-configuration} parameter} number db-port"
 msgstr "{paramètre de @code{zabbix-front-end-configuration}} number db-port"
 
 #. type: deftypevr
-#: doc/guix.texi:17911
+#: doc/guix.texi:22053
 #, no-wrap
 msgid "{@code{zabbix-front-end-configuration} parameter} string db-name"
 msgstr "{paramètre de @code{zabbix-front-end-configuration}} string db-name"
 
 #. type: deftypevr
-#: doc/guix.texi:17918
+#: doc/guix.texi:22060
 #, no-wrap
 msgid "{@code{zabbix-front-end-configuration} parameter} string db-user"
 msgstr "{paramètre de @code{zabbix-front-end-configuration}} string db-user"
 
 #. type: deftypevr
-#: doc/guix.texi:17925
+#: doc/guix.texi:22067
 #, no-wrap
 msgid "{@code{zabbix-front-end-configuration} parameter} string db-password"
 msgstr "{paramètre de @code{zabbix-front-end-configuration}} string db-password"
 
 #. type: deftypevr
-#: doc/guix.texi:17927
+#: doc/guix.texi:22069
 msgid "Database password.  Please, use @code{db-secret-file} instead."
 msgstr "Mot de passe de la base de données.  Utilisez plutôt @code{db-secret-file}."
 
 #. type: deftypevr
-#: doc/guix.texi:17932
+#: doc/guix.texi:22074
 #, no-wrap
 msgid "{@code{zabbix-front-end-configuration} parameter} string db-secret-file"
 msgstr "{paramètre de @code{zabbix-front-end-configuration}} string db-secret-file"
 
 #. type: deftypevr
-#: doc/guix.texi:17936
+#: doc/guix.texi:22078
 msgid "Secret file which will be appended to @file{zabbix.conf.php} file.  This file contains credentials for use by Zabbix front-end.  You are expected to create it manually."
 msgstr "Fichier de secrets qui sera ajouté au fichier @file{zabbix.conf.php}.  Ce fichier contient les paramètres d'authentification utilisés par Zabbix.  On s'attend à ce que vous le créiez manuellement."
 
 #. type: deftypevr
-#: doc/guix.texi:17941
+#: doc/guix.texi:22083
 #, no-wrap
 msgid "{@code{zabbix-front-end-configuration} parameter} string zabbix-host"
 msgstr "{paramètre de @code{zabbix-front-end-configuration}} string zabbix-host"
 
 #. type: deftypevr
-#: doc/guix.texi:17943
+#: doc/guix.texi:22085
 msgid "Zabbix server hostname."
 msgstr "Nom d'hôte du serveur Zabbix."
 
 #. type: deftypevr
-#: doc/guix.texi:17948
+#: doc/guix.texi:22090
 #, no-wrap
 msgid "{@code{zabbix-front-end-configuration} parameter} number zabbix-port"
 msgstr "{paramètre de @code{zabbix-front-end-configuration}} number zabbix-port"
 
 #. type: deftypevr
-#: doc/guix.texi:17950
+#: doc/guix.texi:22092
 msgid "Zabbix server port."
 msgstr "Port du serveur Zabbix."
 
 #. type: deftypevr
-#: doc/guix.texi:17952
+#: doc/guix.texi:22094
 msgid "Defaults to @samp{10051}."
 msgstr "La valeur par défaut est @samp{10051}."
 
 #. type: cindex
-#: doc/guix.texi:17960
+#: doc/guix.texi:22102
 #, no-wrap
 msgid "Kerberos"
 msgstr "Kerberos"
 
 #. type: Plain text
-#: doc/guix.texi:17964
+#: doc/guix.texi:22106
 msgid "The @code{(gnu services kerberos)} module provides services relating to the authentication protocol @dfn{Kerberos}."
 msgstr "Le module @code{(gnu services kerberos)} fournit des services liés au protocole d'authentification @dfn{Kerberos}."
 
 #. type: subsubheading
-#: doc/guix.texi:17965
+#: doc/guix.texi:22107
 #, no-wrap
 msgid "Krb5 Service"
 msgstr "Service Krb5"
 
 #. type: Plain text
-#: doc/guix.texi:17972
+#: doc/guix.texi:22114
 msgid "Programs using a Kerberos client library normally expect a configuration file in @file{/etc/krb5.conf}.  This service generates such a file from a definition provided in the operating system declaration.  It does not cause any daemon to be started."
 msgstr "Les programmes qui utilisent une bibliothèque cliente Kerberos s'attendent à trouver un fichier de configuration dans @file{/etc/krb5.conf}.  Ce service génère un tel fichier à partir d'une définition fournie par la déclaration de système d'exploitation.  Il ne démarre aucun démon."
 
 #. type: Plain text
-#: doc/guix.texi:17976
+#: doc/guix.texi:22118
 msgid "No ``keytab'' files are provided by this service---you must explicitly create them.  This service is known to work with the MIT client library, @code{mit-krb5}.  Other implementations have not been tested."
 msgstr "Aucun fichier « keytab » n'est fourni par ce service — vous devez les créer explicitement.  Ce service est connu pour fonctionner avec la bibliothèque cliente MIT, @code{mit-krb5}.  Les autres implémentations n'ont pas été testées."
 
 #. type: defvr
-#: doc/guix.texi:17977
+#: doc/guix.texi:22119
 #, no-wrap
 msgid "{Scheme Variable} krb5-service-type"
 msgstr "{Variable Scheme} krb5-service-type"
 
 #. type: defvr
-#: doc/guix.texi:17979
+#: doc/guix.texi:22121
 msgid "A service type for Kerberos 5 clients."
 msgstr "Un type de service pour les clients Kerberos 5."
 
 #. type: Plain text
-#: doc/guix.texi:17983
+#: doc/guix.texi:22125
 msgid "Here is an example of its use:"
 msgstr "Voici un exemple d'utilisation :"
 
 #. type: lisp
-#: doc/guix.texi:17997
+#: doc/guix.texi:22139
 #, no-wrap
 msgid ""
 "(service krb5-service-type\n"
@@ -33835,206 +41355,206 @@ msgstr ""
 "                    (kdc \"keys.argrx.edu\"))))))\n"
 
 #. type: Plain text
-#: doc/guix.texi:18001
+#: doc/guix.texi:22143
 msgid "This example provides a Kerberos@tie{}5 client configuration which:"
 msgstr "Cet exemple fournit une configuration cliente Kerberos@tie{}5 qui :"
 
 #. type: item
-#: doc/guix.texi:18002
+#: doc/guix.texi:22144
 #, no-wrap
 msgid "Recognizes two realms, @i{viz:} ``EXAMPLE.COM'' and ``ARGRX.EDU'', both"
 msgstr "Reconnais deux domaines : « EXAMPLE.COM » et « ARGREX.EDU », tous deux"
 
 #. type: itemize
-#: doc/guix.texi:18004
+#: doc/guix.texi:22146
 msgid "of which have distinct administration servers and key distribution centers;"
 msgstr "aillant des serveurs d'administration et des centres de distribution de clefs distincts ;"
 
 #. type: item
-#: doc/guix.texi:18004
+#: doc/guix.texi:22146
 #, no-wrap
 msgid "Will default to the realm ``EXAMPLE.COM'' if the realm is not explicitly"
 msgstr "Utilisera le domaine « EXAMPLE.COM » pr défaut si le domaine n'est pas spécifié"
 
 #. type: itemize
-#: doc/guix.texi:18006
+#: doc/guix.texi:22148
 msgid "specified by clients;"
 msgstr "explicitement par les clients ;"
 
 #. type: item
-#: doc/guix.texi:18006
+#: doc/guix.texi:22148
 #, no-wrap
 msgid "Accepts services which only support encryption types known to be weak."
 msgstr "Acceptera les services qui ne supportent que des types de chiffrements connus pour être faibles."
 
 #. type: Plain text
-#: doc/guix.texi:18014
+#: doc/guix.texi:22156
 msgid "The @code{krb5-realm} and @code{krb5-configuration} types have many fields.  Only the most commonly used ones are described here.  For a full list, and more detailed explanation of each, see the MIT @uref{https://web.mit.edu/kerberos/krb5-devel/doc/admin/conf_files/krb5_conf.html,,krb5.conf} documentation."
 msgstr "Les types @code{krb5-realm} et @code{krb5-configuration} ont de nombreux champs.  Seuls les plus communs sont décrits ici.  Pour une liste complète, et plus de détails sur chacun d'entre eux, voir la documentation de MIT @uref{https://web.mit.edu/kerberos/krb5-devel/doc/admin/conf_files/krb5_conf.html,,krb5.conf}."
 
 #. type: deftp
-#: doc/guix.texi:18016
+#: doc/guix.texi:22158
 #, no-wrap
 msgid "{Data Type} krb5-realm"
 msgstr "{Type de données} krb5-realm"
 
 #. type: cindex
-#: doc/guix.texi:18017
+#: doc/guix.texi:22159
 #, no-wrap
 msgid "realm, kerberos"
 msgstr "domaine, kerberos"
 
 #. type: table
-#: doc/guix.texi:18023
+#: doc/guix.texi:22165
 msgid "This field is a string identifying the name of the realm.  A common convention is to use the fully qualified DNS name of your organization, converted to upper case."
 msgstr "Ce champ est une chaîne identifiant le nom d'un domaine.  Une convention courante est d'utiliser le nom pleinement qualifié de votre organisation, converti en majuscule."
 
 #. type: code{#1}
-#: doc/guix.texi:18024
+#: doc/guix.texi:22166
 #, no-wrap
 msgid "admin-server"
 msgstr "admin-server"
 
 #. type: table
-#: doc/guix.texi:18027
+#: doc/guix.texi:22169
 msgid "This field is a string identifying the host where the administration server is running."
 msgstr "Ce champ est une chaîne identifiant l'hôte où le serveur d'administration tourne."
 
 #. type: code{#1}
-#: doc/guix.texi:18028
+#: doc/guix.texi:22170
 #, no-wrap
 msgid "kdc"
 msgstr "kdc"
 
 #. type: table
-#: doc/guix.texi:18031
+#: doc/guix.texi:22173
 msgid "This field is a string identifying the key distribution center for the realm."
 msgstr "Ce champ est une chaîne identifiant le centre de distribution de clefs pour ce domaine."
 
 #. type: deftp
-#: doc/guix.texi:18034
+#: doc/guix.texi:22176
 #, no-wrap
 msgid "{Data Type} krb5-configuration"
 msgstr "{Type de données} krb5-configuration"
 
 #. type: item
-#: doc/guix.texi:18037
+#: doc/guix.texi:22179
 #, no-wrap
 msgid "@code{allow-weak-crypto?} (default: @code{#f})"
 msgstr "@code{allow-weak-crypto?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:18040
+#: doc/guix.texi:22182
 msgid "If this flag is @code{#t} then services which only offer encryption algorithms known to be weak will be accepted."
 msgstr "Si ce drapeau est @code{#t} les services qui n'offrent que des algorithmes de chiffrement faibles seront acceptés."
 
 #. type: item
-#: doc/guix.texi:18041
+#: doc/guix.texi:22183
 #, no-wrap
 msgid "@code{default-realm} (default: @code{#f})"
 msgstr "@code{default-realm} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:18048
+#: doc/guix.texi:22190
 msgid "This field should be a string identifying the default Kerberos realm for the client.  You should set this field to the name of your Kerberos realm.  If this value is @code{#f} then a realm must be specified with every Kerberos principal when invoking programs such as @command{kinit}."
 msgstr "Ce champ devrait être une chaîne identifiant le domaine Kerberos par défaut pour le client.  Vous devriez mettre le nom de votre domaine Kerberos dans ce champ.  Si cette valeur est @code{#f} alors un domaine doit être spécifié pour chaque principal Kerberos à l'invocation des programmes comme @command{kinit}."
 
 #. type: code{#1}
-#: doc/guix.texi:18049
+#: doc/guix.texi:22191
 #, no-wrap
 msgid "realms"
 msgstr "realms"
 
 #. type: table
-#: doc/guix.texi:18054
+#: doc/guix.texi:22196
 msgid "This should be a non-empty list of @code{krb5-realm} objects, which clients may access.  Normally, one of them will have a @code{name} field matching the @code{default-realm} field."
 msgstr "Cela doit être une liste non-vide d'objets @code{krb5-realm}, auxquels les clients peuvent accéder.  Normalement, l'un d'entre eux aura un champ @code{name} qui correspond au champ @code{default-realm}."
 
 #. type: subsubheading
-#: doc/guix.texi:18058
+#: doc/guix.texi:22200
 #, no-wrap
 msgid "PAM krb5 Service"
 msgstr "Service PAM krb5"
 
 #. type: cindex
-#: doc/guix.texi:18059
+#: doc/guix.texi:22201
 #, no-wrap
 msgid "pam-krb5"
 msgstr "pam-krb5"
 
 #. type: Plain text
-#: doc/guix.texi:18065
+#: doc/guix.texi:22207
 msgid "The @code{pam-krb5} service allows for login authentication and password management via Kerberos.  You will need this service if you want PAM enabled applications to authenticate users using Kerberos."
 msgstr "Le service @code{pam-krb5} permet la connexion et la gestion des mots de passe par Kerberos.  Vous aurez besoin de ce service si vous voulez que les applications qui utilisent PAM puissent authentifier automatiquement les utilisateurs avec Kerberos."
 
 #. type: defvr
-#: doc/guix.texi:18066
+#: doc/guix.texi:22208
 #, no-wrap
 msgid "{Scheme Variable} pam-krb5-service-type"
 msgstr "{Variable Scheme} pam-krb5-service-type"
 
 #. type: defvr
-#: doc/guix.texi:18068
+#: doc/guix.texi:22210
 msgid "A service type for the Kerberos 5 PAM module."
 msgstr "Un type de service pour le module PAM Kerberos 5."
 
 #. type: deftp
-#: doc/guix.texi:18070
+#: doc/guix.texi:22212
 #, no-wrap
 msgid "{Data Type} pam-krb5-configuration"
 msgstr "{Type de données} pam-krb5-configuration"
 
 #. type: deftp
-#: doc/guix.texi:18073
+#: doc/guix.texi:22215
 msgid "Data type representing the configuration of the Kerberos 5 PAM module.  This type has the following parameters:"
 msgstr "Type de données représentant la configuration du module PAM Kerberos 5.  Ce type a les paramètres suivants :"
 
 #. type: item
-#: doc/guix.texi:18074
+#: doc/guix.texi:22216
 #, no-wrap
 msgid "@code{pam-krb5} (default: @code{pam-krb5})"
 msgstr "@code{pam-krb5} (par défaut : @code{pam-krb5})"
 
 #. type: table
-#: doc/guix.texi:18076
+#: doc/guix.texi:22218
 msgid "The pam-krb5 package to use."
 msgstr "Le paquet pam-krb5 à utiliser."
 
 #. type: item
-#: doc/guix.texi:18077
+#: doc/guix.texi:22219
 #, no-wrap
 msgid "@code{minimum-uid} (default: @code{1000})"
 msgstr "@code{minimum-uid} (par défaut : @code{1000})"
 
 #. type: table
-#: doc/guix.texi:18080
+#: doc/guix.texi:22222
 msgid "The smallest user ID for which Kerberos authentications should be attempted.  Local accounts with lower values will silently fail to authenticate."
 msgstr "Le plus petite ID utilisateur pour lequel les authentifications Kerberos devraient être tentées.  Les comptes locaux avec une valeur plus petite échoueront silencieusement leur authentification Kerberos."
 
 #. type: cindex
-#: doc/guix.texi:18086
+#: doc/guix.texi:22228
 #, no-wrap
 msgid "LDAP"
 msgstr "LDAP"
 
 #. type: cindex
-#: doc/guix.texi:18087
+#: doc/guix.texi:22229
 #, no-wrap
 msgid "nslcd, LDAP service"
 msgstr "nslcd, service LDAP"
 
 #. type: Plain text
-#: doc/guix.texi:18094
+#: doc/guix.texi:22236
 msgid "The @code{(gnu services authentication)} module provides the @code{nslcd-service-type}, which can be used to authenticate against an LDAP server.  In addition to configuring the service itself, you may want to add @code{ldap} as a name service to the Name Service Switch. @xref{Name Service Switch} for detailed information."
 msgstr "Le module @code{(gnu services authentication)} fournit le type de service @code{nslcd-service-type}, qui peut être utilisé pour l'authentification par LDAP.  En plus de configurer le service lui-même, vous pouvez ajouter @code{ldap} comme service de noms au Name Service Switch.  @xref{Name Service Switch} pour des informations détaillées."
 
 #. type: Plain text
-#: doc/guix.texi:18098
+#: doc/guix.texi:22240
 msgid "Here is a simple operating system declaration with a default configuration of the @code{nslcd-service-type} and a Name Service Switch configuration that consults the @code{ldap} name service last:"
 msgstr "Voici une déclaration de système d'exploitation simple avec une configuration par défaut pour @code{nslcd-service-type} et une configuration du Name Service Switch qui consulte le service de noms @code{ldap} en dernier :"
 
-#. type: example
-#: doc/guix.texi:18121
+#. type: lisp
+#: doc/guix.texi:22263
 #, no-wrap
 msgid ""
 "(use-service-modules authentication)\n"
@@ -34082,671 +41602,671 @@ msgstr ""
 "      (gshadow  services)))))\n"
 
 #. type: Plain text
-#: doc/guix.texi:18126
+#: doc/guix.texi:22268
 msgid "Available @code{nslcd-configuration} fields are:"
 msgstr "Les champs de @code{nslcd-configuration} disponibles sont :"
 
 #. type: deftypevr
-#: doc/guix.texi:18127
+#: doc/guix.texi:22269
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} package nss-pam-ldapd"
 msgstr "{paramètre de @code{nslcd-configuration}} package nss-pam-ldapd"
 
 #. type: deftypevr
-#: doc/guix.texi:18129
+#: doc/guix.texi:22271
 msgid "The @code{nss-pam-ldapd} package to use."
 msgstr "Le paquet @code{nss-pam-ldapd} à utiliser."
 
 #. type: deftypevr
-#: doc/guix.texi:18132
+#: doc/guix.texi:22274
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-number threads"
 msgstr "{paramètre de @code{nslcd-configuration}} maybe-number threads"
 
 #. type: deftypevr
-#: doc/guix.texi:18136
+#: doc/guix.texi:22278
 msgid "The number of threads to start that can handle requests and perform LDAP queries.  Each thread opens a separate connection to the LDAP server.  The default is to start 5 threads."
 msgstr "Le nombre de threads à démarrer qui peuvent gérer les requête et effectuer des requêtes LDAP.  Chaque thread ouvre une connexion séparée au serveur LDAP.  La valeur par défaut est de 5 threads."
 
 #. type: deftypevr
-#: doc/guix.texi:18138 doc/guix.texi:18180 doc/guix.texi:18188
-#: doc/guix.texi:18196 doc/guix.texi:18204 doc/guix.texi:18213
-#: doc/guix.texi:18221 doc/guix.texi:18228 doc/guix.texi:18236
-#: doc/guix.texi:18244 doc/guix.texi:18254 doc/guix.texi:18261
-#: doc/guix.texi:18285 doc/guix.texi:18293 doc/guix.texi:18319
-#: doc/guix.texi:18328 doc/guix.texi:18337 doc/guix.texi:18346
-#: doc/guix.texi:18355 doc/guix.texi:18364 doc/guix.texi:18372
-#: doc/guix.texi:18380 doc/guix.texi:18387 doc/guix.texi:18395
-#: doc/guix.texi:18402 doc/guix.texi:18410 doc/guix.texi:18418
-#: doc/guix.texi:18427 doc/guix.texi:18436 doc/guix.texi:18444
-#: doc/guix.texi:18452 doc/guix.texi:18460 doc/guix.texi:18471
-#: doc/guix.texi:18481 doc/guix.texi:18492 doc/guix.texi:18501
-#: doc/guix.texi:18511 doc/guix.texi:18519 doc/guix.texi:18530
-#: doc/guix.texi:18539 doc/guix.texi:18549 doc/guix.texi:20839
-#: doc/guix.texi:20846 doc/guix.texi:20853 doc/guix.texi:20860
-#: doc/guix.texi:20867 doc/guix.texi:20874 doc/guix.texi:20882
-#: doc/guix.texi:20890 doc/guix.texi:20897 doc/guix.texi:20904
-#: doc/guix.texi:20911 doc/guix.texi:20918 doc/guix.texi:20948
-#: doc/guix.texi:20986 doc/guix.texi:20993 doc/guix.texi:21002
-#: doc/guix.texi:21024 doc/guix.texi:21032 doc/guix.texi:21039
-#: doc/guix.texi:21194 doc/guix.texi:21214 doc/guix.texi:21229
-#: doc/guix.texi:21236 doc/guix.texi:23034 doc/guix.texi:23042
-#: doc/guix.texi:23050 doc/guix.texi:23058 doc/guix.texi:23066
-#: doc/guix.texi:23074
+#: doc/guix.texi:22280 doc/guix.texi:22323 doc/guix.texi:22331
+#: doc/guix.texi:22339 doc/guix.texi:22347 doc/guix.texi:22356
+#: doc/guix.texi:22364 doc/guix.texi:22371 doc/guix.texi:22379
+#: doc/guix.texi:22387 doc/guix.texi:22397 doc/guix.texi:22404
+#: doc/guix.texi:22428 doc/guix.texi:22436 doc/guix.texi:22462
+#: doc/guix.texi:22471 doc/guix.texi:22480 doc/guix.texi:22489
+#: doc/guix.texi:22498 doc/guix.texi:22507 doc/guix.texi:22515
+#: doc/guix.texi:22523 doc/guix.texi:22530 doc/guix.texi:22538
+#: doc/guix.texi:22545 doc/guix.texi:22553 doc/guix.texi:22561
+#: doc/guix.texi:22570 doc/guix.texi:22579 doc/guix.texi:22587
+#: doc/guix.texi:22595 doc/guix.texi:22603 doc/guix.texi:22614
+#: doc/guix.texi:22624 doc/guix.texi:22635 doc/guix.texi:22644
+#: doc/guix.texi:22654 doc/guix.texi:22662 doc/guix.texi:22673
+#: doc/guix.texi:22682 doc/guix.texi:22692 doc/guix.texi:25545
+#: doc/guix.texi:25552 doc/guix.texi:25559 doc/guix.texi:25566
+#: doc/guix.texi:25573 doc/guix.texi:25580 doc/guix.texi:25588
+#: doc/guix.texi:25596 doc/guix.texi:25603 doc/guix.texi:25610
+#: doc/guix.texi:25617 doc/guix.texi:25624 doc/guix.texi:25654
+#: doc/guix.texi:25692 doc/guix.texi:25699 doc/guix.texi:25708
+#: doc/guix.texi:25730 doc/guix.texi:25738 doc/guix.texi:25745
+#: doc/guix.texi:25900 doc/guix.texi:25920 doc/guix.texi:25935
+#: doc/guix.texi:25942 doc/guix.texi:28633 doc/guix.texi:28641
+#: doc/guix.texi:28649 doc/guix.texi:28657 doc/guix.texi:28665
+#: doc/guix.texi:28673
 msgid "Defaults to @samp{disabled}."
 msgstr "La valeur par défaut est @samp{disabled}."
 
 #. type: deftypevr
-#: doc/guix.texi:18141
+#: doc/guix.texi:22283
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} string uid"
 msgstr "{paramètre de @code{nslcd-configuration}} string uid"
 
 #. type: deftypevr
-#: doc/guix.texi:18143
+#: doc/guix.texi:22285
 msgid "This specifies the user id with which the daemon should be run."
 msgstr "Cela spécifie l'id de l'utilisateur sous lequel le démon devrait tourner."
 
 #. type: deftypevr
-#: doc/guix.texi:18145 doc/guix.texi:18152
+#: doc/guix.texi:22287 doc/guix.texi:22294
 msgid "Defaults to @samp{\"nslcd\"}."
 msgstr "La valeur par défaut est @samp{\"nslcd\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:18148
+#: doc/guix.texi:22290
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} string gid"
 msgstr "{paramètre de @code{nslcd-configuration}} string gid"
 
 #. type: deftypevr
-#: doc/guix.texi:18150
+#: doc/guix.texi:22292
 msgid "This specifies the group id with which the daemon should be run."
 msgstr "Cela spécifie l'id du groupe sous lequel le démon devrait tourner."
 
 #. type: deftypevr
-#: doc/guix.texi:18155
+#: doc/guix.texi:22297
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} log-option log"
 msgstr "{paramètre de @code{nslcd-configuration}} log-option log"
 
 #. type: deftypevr
-#: doc/guix.texi:18162
-msgid "This option controls the way logging is done via a list containing SCHEME and LEVEL.  The SCHEME argument may either be the symbols \"none\" or \"syslog\", or an absolute file name.  The LEVEL argument is optional and specifies the log level.  The log level may be one of the following symbols: \"crit\", \"error\", \"warning\", \"notice\", \"info\" or \"debug\".  All messages with the specified log level or higher are logged."
-msgstr "Cette option contrôle la journalisation via une liste contenant le schéma et le niveau.  Le schéma peut être soit un symbole « none », « syslog », soit un nom de fichier absolu.  Le niveau est facultatif et spécifie le niveau de journalisation.  Le niveau de journalisation peut être l'un des symboles suivants : « crit », « error », « warning », « notice », « info » ou « debug ».  Tous les messages avec le niveau spécifié ou supérieurs sont enregistrés."
+#: doc/guix.texi:22305
+msgid "This option controls the way logging is done via a list containing SCHEME and LEVEL.  The SCHEME argument may either be the symbols @samp{none} or @samp{syslog}, or an absolute file name.  The LEVEL argument is optional and specifies the log level.  The log level may be one of the following symbols: @samp{crit}, @samp{error}, @samp{warning}, @samp{notice}, @samp{info} or @samp{debug}.  All messages with the specified log level or higher are logged."
+msgstr "Cette option contrôle la journalisation via une liste contenant le schéma et le niveau.  Le schéma peut être soit un symbole @samp{none}, @samp{syslog}, soit un nom de fichier absolu.  Le niveau est facultatif et spécifie le niveau de journalisation.  Le niveau de journalisation peut être l'un des symboles suivants :@samp{crit}, @samp{error}, @samp{warning}, @samp{notice}, @samp{info} ou @samp{debug}.  Tous les messages avec le niveau spécifié ou supérieurs sont enregistrés."
 
 #. type: deftypevr
-#: doc/guix.texi:18164
+#: doc/guix.texi:22307
 msgid "Defaults to @samp{(\"/var/log/nslcd\" info)}."
 msgstr "La valeur par défaut est @samp{(\"/var/log/nslcd\" info)}."
 
 #. type: deftypevr
-#: doc/guix.texi:18167
+#: doc/guix.texi:22310
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} list uri"
 msgstr "{paramètre de @code{nslcd-configuration}} list uri"
 
 #. type: deftypevr
-#: doc/guix.texi:18170
+#: doc/guix.texi:22313
 msgid "The list of LDAP server URIs.  Normally, only the first server will be used with the following servers as fall-back."
 msgstr "La liste des URI des serveurs LDAP.  Normalement, seul le premier serveur sera utilisé avec les serveurs suivants comme secours."
 
 #. type: deftypevr
-#: doc/guix.texi:18172
+#: doc/guix.texi:22315
 msgid "Defaults to @samp{(\"ldap://localhost:389/\")}."
 msgstr "La valeur par défaut est @samp{(\"ldap://localhost:389/\")}."
 
 #. type: deftypevr
-#: doc/guix.texi:18175
+#: doc/guix.texi:22318
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-string ldap-version"
 msgstr "{paramètre de @code{nslcd-configuration}} maybe-string ldap-version"
 
 #. type: deftypevr
-#: doc/guix.texi:18178
+#: doc/guix.texi:22321
 msgid "The version of the LDAP protocol to use.  The default is to use the maximum version supported by the LDAP library."
 msgstr "La version du protocole LDAP à utiliser.  La valeur par défaut est d'utiliser la version maximum supportée par la bibliothèque LDAP."
 
 #. type: deftypevr
-#: doc/guix.texi:18183
+#: doc/guix.texi:22326
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-string binddn"
 msgstr "{paramètre de @code{nslcd-configuration}} maybe-string binddn"
 
 #. type: deftypevr
-#: doc/guix.texi:18186
+#: doc/guix.texi:22329
 msgid "Specifies the distinguished name with which to bind to the directory server for lookups.  The default is to bind anonymously."
 msgstr "Spécifie le nom distingué avec lequel se lier au serveur de répertoire pour les recherches.  La valeur par défaut est de se lier anonymement."
 
 #. type: deftypevr
-#: doc/guix.texi:18191
+#: doc/guix.texi:22334
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-string bindpw"
 msgstr "{paramètre de @code{nslcd-configuration}} maybe-string bindpw"
 
 #. type: deftypevr
-#: doc/guix.texi:18194
+#: doc/guix.texi:22337
 msgid "Specifies the credentials with which to bind.  This option is only applicable when used with binddn."
 msgstr "Spécifie le mot de passe avec lequel se lier.  Cette option n'est valable que lorsqu'elle est utilisée avec binddn."
 
 #. type: deftypevr
-#: doc/guix.texi:18199
+#: doc/guix.texi:22342
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-string rootpwmoddn"
 msgstr "{paramètre de @code{nslcd-configuration}} maybe-string rootpwmoddn"
 
 #. type: deftypevr
-#: doc/guix.texi:18202
+#: doc/guix.texi:22345
 msgid "Specifies the distinguished name to use when the root user tries to modify a user's password using the PAM module."
 msgstr "Spécifie le nom distingué à utiliser lorsque l'utilisateur root essaye de modifier le mot de passe d'un utilisateur avec le module PAM."
 
 #. type: deftypevr
-#: doc/guix.texi:18207
+#: doc/guix.texi:22350
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-string rootpwmodpw"
 msgstr "{paramètre de @code{nslcd-configuration}} maybe-string rootpwmodpw"
 
 #. type: deftypevr
-#: doc/guix.texi:18211
+#: doc/guix.texi:22354
 msgid "Specifies the credentials with which to bind if the root user tries to change a user's password.  This option is only applicable when used with rootpwmoddn"
 msgstr "Spécifie le mot de passe à utiliser pour se lier si l'utilisateur root essaye de modifier un mot de passe utilisateur.  Cette option n'est valable que si elle est utilisée avec rootpwmoddn"
 
 #. type: deftypevr
-#: doc/guix.texi:18216
+#: doc/guix.texi:22359
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-string sasl-mech"
 msgstr "{paramètre de @code{nslcd-configuration}} maybe-string sasl-mech"
 
 #. type: deftypevr
-#: doc/guix.texi:18219
+#: doc/guix.texi:22362
 msgid "Specifies the SASL mechanism to be used when performing SASL authentication."
 msgstr "Spécifie le mécanisme SASL à utiliser lors de l'authentification SASL."
 
 #. type: deftypevr
-#: doc/guix.texi:18224
+#: doc/guix.texi:22367
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-string sasl-realm"
 msgstr "{paramètre de @code{nslcd-configuration}} maybe-string sasl-realm"
 
 #. type: deftypevr
-#: doc/guix.texi:18226
+#: doc/guix.texi:22369
 msgid "Specifies the SASL realm to be used when performing SASL authentication."
 msgstr "Spécifie le royaume SASL à utiliser pour effectuer une authentification SASL."
 
 #. type: deftypevr
-#: doc/guix.texi:18231
+#: doc/guix.texi:22374
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-string sasl-authcid"
 msgstr "{paramètre de @code{nslcd-configuration}} maybe-string sasl-authcid"
 
 #. type: deftypevr
-#: doc/guix.texi:18234
+#: doc/guix.texi:22377
 msgid "Specifies the authentication identity to be used when performing SASL authentication."
 msgstr "Spécifie l'identité d'authentification à utiliser pour effectuer une authentification SASL."
 
 #. type: deftypevr
-#: doc/guix.texi:18239
+#: doc/guix.texi:22382
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-string sasl-authzid"
 msgstr "{paramètre de @code{nslcd-configuration}} maybe-string sasl-authzid"
 
 #. type: deftypevr
-#: doc/guix.texi:18242
+#: doc/guix.texi:22385
 msgid "Specifies the authorization identity to be used when performing SASL authentication."
 msgstr "Spécifie l'identité d'autorisation à utiliser lors d'une authentification SASL."
 
 #. type: deftypevr
-#: doc/guix.texi:18247
+#: doc/guix.texi:22390
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-boolean sasl-canonicalize?"
 msgstr "{paramètre de @code{nslcd-configuration}} maybe-boolean sasl-canonicalize?"
 
 #. type: deftypevr
-#: doc/guix.texi:18252
+#: doc/guix.texi:22395
 msgid "Determines whether the LDAP server host name should be canonicalised.  If this is enabled the LDAP library will do a reverse host name lookup.  By default, it is left up to the LDAP library whether this check is performed or not."
 msgstr "Détermine si le nom d'hôte du serveur LDAP devrait être canonalisé.  Si c'est activé la bibliothèque LDAP effectuera une recherche de nom d'hôte inversée.  Par défaut, il est laissé à la bibliothèque LDAP le soin de savoir si la vérification doit être effectuée ou non."
 
 #. type: deftypevr
-#: doc/guix.texi:18257
+#: doc/guix.texi:22400
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-string krb5-ccname"
 msgstr "{paramètre de @code{nslcd-configuration}} maybe-string krb5-ccname"
 
 #. type: deftypevr
-#: doc/guix.texi:18259
+#: doc/guix.texi:22402
 msgid "Set the name for the GSS-API Kerberos credentials cache."
 msgstr "Indique le nom du cache d'informations de connexion de GSS-API Kerberos."
 
 #. type: deftypevr
-#: doc/guix.texi:18264
+#: doc/guix.texi:22407
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} string base"
 msgstr "{paramètre de @code{nslcd-configuration}} string base"
 
 #. type: deftypevr
-#: doc/guix.texi:18266
+#: doc/guix.texi:22409
 msgid "The directory search base."
 msgstr "La base de recherche de répertoires."
 
 #. type: deftypevr
-#: doc/guix.texi:18268
+#: doc/guix.texi:22411
 msgid "Defaults to @samp{\"dc=example,dc=com\"}."
 msgstr "La valeur par défaut est @samp{\"dc=example,dc=com\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:18271
+#: doc/guix.texi:22414
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} scope-option scope"
 msgstr "{paramètre de @code{nslcd-configuration}} scope-option scope"
 
 #. type: deftypevr
-#: doc/guix.texi:18275
+#: doc/guix.texi:22418
 msgid "Specifies the search scope (subtree, onelevel, base or children).  The default scope is subtree; base scope is almost never useful for name service lookups; children scope is not supported on all servers."
 msgstr "Spécifie la portée de la recherche (subtree, onelevel, base ou children).  La portée par défaut est subtree ; la portée base n'est presque jamais utile pour les recherches de service de noms ; la portée children n'est pas prise en charge par tous les serveurs."
 
 #. type: deftypevr
-#: doc/guix.texi:18277
+#: doc/guix.texi:22420
 msgid "Defaults to @samp{(subtree)}."
 msgstr "La valeur par défaut est @samp{(subtree)}."
 
 #. type: deftypevr
-#: doc/guix.texi:18280
+#: doc/guix.texi:22423
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-deref-option deref"
 msgstr "{paramètre de @code{nslcd-configuration}} maybe-deref-option deref"
 
 #. type: deftypevr
-#: doc/guix.texi:18283
+#: doc/guix.texi:22426
 msgid "Specifies the policy for dereferencing aliases.  The default policy is to never dereference aliases."
 msgstr "Spécifie la politique de déréférencement des alias.  La politique par défaut est de ne jamais déréférencer d'alias."
 
 #. type: deftypevr
-#: doc/guix.texi:18288
+#: doc/guix.texi:22431
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-boolean referrals"
 msgstr "{paramètre de @code{nslcd-configuration}} maybe-boolean referrals"
 
 #. type: deftypevr
-#: doc/guix.texi:18291
+#: doc/guix.texi:22434
 msgid "Specifies whether automatic referral chasing should be enabled.  The default behaviour is to chase referrals."
 msgstr "Spécifie s'il faut activer le suivi de référence.  Le comportement par défaut est de suivre les références."
 
 #. type: deftypevr
-#: doc/guix.texi:18296
+#: doc/guix.texi:22439
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} list-of-map-entries maps"
 msgstr "{paramètre de @code{nslcd-configuration}} list-of-map-entries maps"
 
 #. type: deftypevr
-#: doc/guix.texi:18301
+#: doc/guix.texi:22444
 msgid "This option allows for custom attributes to be looked up instead of the default RFC 2307 attributes.  It is a list of maps, each consisting of the name of a map, the RFC 2307 attribute to match and the query expression for the attribute as it is available in the directory."
 msgstr "Cette option permet d'ajouter des attributs personnalisés à rechercher à la place des attributs par défaut de la RFC 2307.  C'est une liste de correspondances, consistant chacune en un nom, en l'attribut RFC 2307 à utiliser et l'expression de la requête pour l'attribut tel qu'il sera disponible dans le répertoire."
 
 #. type: deftypevr
-#: doc/guix.texi:18306
+#: doc/guix.texi:22449
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} list-of-filter-entries filters"
 msgstr "{paramètre de @code{nslcd-configuration}} list-of-filter-entries filters"
 
 #. type: deftypevr
-#: doc/guix.texi:18309
+#: doc/guix.texi:22452
 msgid "A list of filters consisting of the name of a map to which the filter applies and an LDAP search filter expression."
 msgstr "Une liste de filtres consistant en le nom d'une correspondance à laquelle applique le filtre et en une expression de filtre de recherche LDAP."
 
 #. type: deftypevr
-#: doc/guix.texi:18314
+#: doc/guix.texi:22457
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-number bind-timelimit"
 msgstr "{paramètre de @code{nslcd-configuration}} maybe-number bind-timelimit"
 
 #. type: deftypevr
-#: doc/guix.texi:18317
+#: doc/guix.texi:22460
 msgid "Specifies the time limit in seconds to use when connecting to the directory server.  The default value is 10 seconds."
 msgstr "Spécifie la limite de temps en seconds à utiliser lors de la connexion au serveur de répertoire.  La valeur par défaut est de 10 secondes."
 
 #. type: deftypevr
-#: doc/guix.texi:18322
+#: doc/guix.texi:22465
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-number timelimit"
 msgstr "{paramètre de @code{nslcd-configuration}} maybe-number timelimit"
 
 #. type: deftypevr
-#: doc/guix.texi:18326
+#: doc/guix.texi:22469
 msgid "Specifies the time limit (in seconds) to wait for a response from the LDAP server.  A value of zero, which is the default, is to wait indefinitely for searches to be completed."
 msgstr "Spécifie la limite de temps (en secondes) à attendre une réponse d'un serveur LDAP.  La valeur de zéro, par défaut, permet d'attendre indéfiniment la fin des recherches."
 
 #. type: deftypevr
-#: doc/guix.texi:18331
+#: doc/guix.texi:22474
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-number idle-timelimit"
 msgstr "{paramètre de @code{nslcd-configuration}} maybe-number idle-timelimit"
 
 #. type: deftypevr
-#: doc/guix.texi:18335
+#: doc/guix.texi:22478
 msgid "Specifies the period if inactivity (in seconds) after which the con‐ nection to the LDAP server will be closed.  The default is not to time out connections."
 msgstr "Spécifie la période d'inactivité (en seconde) après laquelle la connexion au serveur LDAP sera fermée.  La valeur par défaut est de ne jamais la fermer."
 
 #. type: deftypevr
-#: doc/guix.texi:18340
+#: doc/guix.texi:22483
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-number reconnect-sleeptime"
 msgstr "{paramètre de @code{nslcd-configuration}} maybe-number reconnect-sleeptime"
 
 #. type: deftypevr
-#: doc/guix.texi:18344
+#: doc/guix.texi:22487
 msgid "Specifies the number of seconds to sleep when connecting to all LDAP servers fails.  By default one second is waited between the first failure and the first retry."
 msgstr "Spécifie le nombre de secondes pendant laquelle attendre lorsque la connexion à tous les serveurs LDAP a échouée.  Par défaut, il y a une seconde d'attente entre le premier échec et la tentative suivante."
 
 #. type: deftypevr
-#: doc/guix.texi:18349
+#: doc/guix.texi:22492
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-number reconnect-retrytime"
 msgstr "{paramètre de @code{nslcd-configuration}} maybe-number reconnect-retrytime"
 
 #. type: deftypevr
-#: doc/guix.texi:18353
+#: doc/guix.texi:22496
 msgid "Specifies the time after which the LDAP server is considered to be permanently unavailable.  Once this time is reached retries will be done only once per this time period.  The default value is 10 seconds."
 msgstr "Spécifie la durée après laquelle le serveur LDAP est considéré comme définitivement inatteignable.  Une fois cette durée atteinte, les tentatives de connexions n'auront plus lieu qu'une fois par cet intervalle de temps.  La valeur par défaut est de 10 secondes."
 
 #. type: deftypevr
-#: doc/guix.texi:18358
+#: doc/guix.texi:22501
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-ssl-option ssl"
 msgstr "{paramètre de @code{nslcd-configuration}} maybe-ssl-option ssl"
 
 #. type: deftypevr
-#: doc/guix.texi:18362
+#: doc/guix.texi:22505
 msgid "Specifies whether to use SSL/TLS or not (the default is not to).  If 'start-tls is specified then StartTLS is used rather than raw LDAP over SSL."
 msgstr "Spécifie s'il faut utiliser SSL/TLS ou non (la valeur par défaut est non).  Si 'start-tls est spécifié alors StartTLS est utilisé à la place de LDAP sur SSL."
 
 #. type: deftypevr
-#: doc/guix.texi:18367
+#: doc/guix.texi:22510
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-tls-reqcert-option tls-reqcert"
 msgstr "{paramètre de @code{nslcd-configuration}} maybe-tls-reqcert-option tls-reqcert"
 
 #. type: deftypevr
-#: doc/guix.texi:18370
+#: doc/guix.texi:22513
 msgid "Specifies what checks to perform on a server-supplied certificate.  The meaning of the values is described in the ldap.conf(5) manual page."
 msgstr "Spécifie quelles vérifications effectuer sur les certificats donnés par les serveurs.  La signification des valeurs est décrite dans la page de manuel de ldap.conf(5)."
 
 #. type: deftypevr
-#: doc/guix.texi:18375
+#: doc/guix.texi:22518
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-string tls-cacertdir"
 msgstr "{paramètre de @code{nslcd-configuration}} maybe-string tls-cacertdir"
 
 #. type: deftypevr
-#: doc/guix.texi:18378
+#: doc/guix.texi:22521
 msgid "Specifies the directory containing X.509 certificates for peer authen‐ tication.  This parameter is ignored when using GnuTLS."
 msgstr "Spécifie le répertoire contenant les certificats X.509 pour l'authentification des pairs.  Ce paramètre est ignoré quand il est utilisé avec GnuTLS."
 
 #. type: deftypevr
-#: doc/guix.texi:18383
+#: doc/guix.texi:22526
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-string tls-cacertfile"
 msgstr "{paramètre de @code{nslcd-configuration}} maybe-string tls-cacertfile"
 
 #. type: deftypevr
-#: doc/guix.texi:18385
+#: doc/guix.texi:22528
 msgid "Specifies the path to the X.509 certificate for peer authentication."
 msgstr "Spécifie le chemin des certificats X.509 pour l'authentification des pairs."
 
 #. type: deftypevr
-#: doc/guix.texi:18390
+#: doc/guix.texi:22533
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-string tls-randfile"
 msgstr "{paramètre de @code{nslcd-configuration}} maybe-string tls-randfile"
 
 #. type: deftypevr
-#: doc/guix.texi:18393
+#: doc/guix.texi:22536
 msgid "Specifies the path to an entropy source.  This parameter is ignored when using GnuTLS."
 msgstr "Spécifie le chemin d'une source d'entropie.  Ce paramètre est ignoré quand il est utilisé avec GnuTLS."
 
 #. type: deftypevr
-#: doc/guix.texi:18398
+#: doc/guix.texi:22541
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-string tls-ciphers"
 msgstr "{paramètre de @code{nslcd-configuration}} maybe-string tls-ciphers"
 
 #. type: deftypevr
-#: doc/guix.texi:18400
+#: doc/guix.texi:22543
 msgid "Specifies the ciphers to use for TLS as a string."
 msgstr "Spécifie les suites de chiffrements à utiliser pour TLS en tant que chaîne de caractères."
 
 #. type: deftypevr
-#: doc/guix.texi:18405
+#: doc/guix.texi:22548
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-string tls-cert"
 msgstr "{paramètre de @code{nslcd-configuration}} maybe-string tls-cert"
 
 #. type: deftypevr
-#: doc/guix.texi:18408
+#: doc/guix.texi:22551
 msgid "Specifies the path to the file containing the local certificate for client TLS authentication."
 msgstr "Spécifie le chemin vers le fichier contenant le certificat local pour l'authentification TLS du client."
 
 #. type: deftypevr
-#: doc/guix.texi:18413
+#: doc/guix.texi:22556
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-string tls-key"
 msgstr "{paramètre de @code{nslcd-configuration}} maybe-string tls-key"
 
 #. type: deftypevr
-#: doc/guix.texi:18416
+#: doc/guix.texi:22559
 msgid "Specifies the path to the file containing the private key for client TLS authentication."
 msgstr "Spécifie le chemin du fichier contenant la clef privée pour l'authentification TLS du client."
 
 #. type: deftypevr
-#: doc/guix.texi:18421
+#: doc/guix.texi:22564
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-number pagesize"
 msgstr "{paramètre de @code{nslcd-configuration}} maybe-number pagesize"
 
 #. type: deftypevr
-#: doc/guix.texi:18425
+#: doc/guix.texi:22568
 msgid "Set this to a number greater than 0 to request paged results from the LDAP server in accordance with RFC2696.  The default (0) is to not request paged results."
 msgstr "Indiquez un nombre plus grand que 0 pour demander des résultats paginés au serveur LDAP en accord avec la RFC 2696.  La valeur par défaut (0) est de ne pas demander de pagination des résultats."
 
 #. type: deftypevr
-#: doc/guix.texi:18430
+#: doc/guix.texi:22573
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-ignore-users-option nss-initgroups-ignoreusers"
 msgstr "{paramètre de @code{nslcd-configuration}} maybe-ignore-users-option nss-initgroups-ignoreusers"
 
 #. type: deftypevr
-#: doc/guix.texi:18434
+#: doc/guix.texi:22577
 msgid "This option prevents group membership lookups through LDAP for the specified users.  Alternatively, the value 'all-local may be used.  With that value nslcd builds a full list of non-LDAP users on startup."
 msgstr "Cette option évite les recherches d'appartenance au groupe à travers le LDAP pour les utilisateurs spécifiés.  Autrement, la valeur 'all-local peut être utilisée.  Avec cette valeur nslcd construit une liste complète des utilisateurs non-LDAP au démarrage."
 
 #. type: deftypevr
-#: doc/guix.texi:18439
+#: doc/guix.texi:22582
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-number nss-min-uid"
 msgstr "{paramètre de @code{nslcd-configuration}} maybe-number nss-min-uid"
 
 #. type: deftypevr
-#: doc/guix.texi:18442
+#: doc/guix.texi:22585
 msgid "This option ensures that LDAP users with a numeric user id lower than the specified value are ignored."
 msgstr "Cette option s'assure que les utilisateurs LDAP avec un id utilisateur numérique plus petit que la valeur spécifiée sont ignorés."
 
 #. type: deftypevr
-#: doc/guix.texi:18447
+#: doc/guix.texi:22590
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-number nss-uid-offset"
 msgstr "{paramètre de @code{nslcd-configuration}} maybe-number nss-uid-offset"
 
 #. type: deftypevr
-#: doc/guix.texi:18450
+#: doc/guix.texi:22593
 msgid "This option specifies an offset that is added to all LDAP numeric user ids.  This can be used to avoid user id collisions with local users."
 msgstr "Cette option spécifie un décalage à ajouter à tous les id utilisateurs numériques LDAP.  Cela peut être utile pour éviter des collisions d'id utilisateurs avec des utilisateurs locaux."
 
 #. type: deftypevr
-#: doc/guix.texi:18455
+#: doc/guix.texi:22598
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-number nss-gid-offset"
 msgstr "{paramètre de @code{nslcd-configuration}} maybe-number nss-gid-offset"
 
 #. type: deftypevr
-#: doc/guix.texi:18458
+#: doc/guix.texi:22601
 msgid "This option specifies an offset that is added to all LDAP numeric group ids.  This can be used to avoid user id collisions with local groups."
 msgstr "Cette option spécifie un décalage à ajouter à tous les id de groupe numériques LDAP.  Cela peut être utile pour éviter des collisions d'id utilisateurs avec des groupes locaux."
 
 #. type: deftypevr
-#: doc/guix.texi:18463
+#: doc/guix.texi:22606
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-boolean nss-nested-groups"
 msgstr "{paramètre de @code{nslcd-configuration}} maybe-boolean nss-nested-groups"
 
 #. type: deftypevr
-#: doc/guix.texi:18469
+#: doc/guix.texi:22612
 msgid "If this option is set, the member attribute of a group may point to another group.  Members of nested groups are also returned in the higher level group and parent groups are returned when finding groups for a specific user.  The default is not to perform extra searches for nested groups."
 msgstr "Si cette option est indiquée, l'attribut de membre de groupe peut pointer vers un autre groupe.  Les membres de groupes imbriqués sont aussi renvoyés dans le groupe de haut-niveau et les groupes parents sont renvoyés lorsqu'on recherche un utilisateur spécifique.  La valeur par défaut est de ne pas effectuer de recherche supplémentaire sur les groupes imbriqués."
 
 #. type: deftypevr
-#: doc/guix.texi:18474
+#: doc/guix.texi:22617
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-boolean nss-getgrent-skipmembers"
 msgstr "{paramètre de @code{nslcd-configuration}} maybe-boolean nss-getgrent-skipmembers"
 
 #. type: deftypevr
-#: doc/guix.texi:18479
+#: doc/guix.texi:22622
 msgid "If this option is set, the group member list is not retrieved when looking up groups.  Lookups for finding which groups a user belongs to will remain functional so the user will likely still get the correct groups assigned on login."
 msgstr "Si cette option est indiqée, la liste de membres du groupe n'est pas récupérée lorsqu'on cherche un groupe.  Les recherches pour trouver les groupes auxquels un utilisateur appartient resteront fonctionnelles donc l'utilisateur obtiendra probablement les bons groupes à la connexion."
 
 #. type: deftypevr
-#: doc/guix.texi:18484
+#: doc/guix.texi:22627
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-boolean nss-disable-enumeration"
 msgstr "{paramètre de @code{nslcd-configuration}} maybe-boolean nss-disable-enumeration"
 
 #. type: deftypevr
-#: doc/guix.texi:18490
+#: doc/guix.texi:22633
 msgid "If this option is set, functions which cause all user/group entries to be loaded from the directory will not succeed in doing so.  This can dramatically reduce LDAP server load in situations where there are a great number of users and/or groups.  This option is not recommended for most configurations."
 msgstr "Si cette option est indiquée, les fonctions qui causent le chargement de toutes les entrées d'utilisateur et de groupe depuis le répertoire ne pourront pas le faire.  Cela peut grandement diminuer la charge du serveur LDAP dans des situations où il y a beaucoup d'utilisateurs et de groupes.  Cette option n'est pas recommandées pour la plupart des configurations."
 
 #. type: deftypevr
-#: doc/guix.texi:18495
+#: doc/guix.texi:22638
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-string validnames"
 msgstr "{paramètre de @code{nslcd-configuration}} maybe-string validnames"
 
 #. type: deftypevr
-#: doc/guix.texi:18499
+#: doc/guix.texi:22642
 msgid "This option can be used to specify how user and group names are verified within the system.  This pattern is used to check all user and group names that are requested and returned from LDAP."
 msgstr "Cette option peut être utilisée pour spécifier comment les noms d'utilisateurs et de groupes sont vérifiés sur le système.  Ce motif est utilisé pour vérifier tous les noms d'utilisateurs et de groupes qui sont demandés et renvoyés par le LDAP."
 
 #. type: deftypevr
-#: doc/guix.texi:18504
+#: doc/guix.texi:22647
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-boolean ignorecase"
 msgstr "{paramètre de @code{nslcd-configuration}} maybe-boolean ignorecase"
 
 #. type: deftypevr
-#: doc/guix.texi:18509
+#: doc/guix.texi:22652
 msgid "This specifies whether or not to perform searches using case-insensitive matching.  Enabling this could open up the system to authorization bypass vulnerabilities and introduce nscd cache poisoning vulnerabilities which allow denial of service."
 msgstr "Cela spécifie s'il faut ou non effectuer des recherches avec une correspondance sensible à la casse.  Activer cela pourrait mener à des vulnérabilités de type contournement d'authentification sur le système et introduire des vulnérabilité d'empoisonnement de cache nscd qui permettent un déni de service."
 
 #. type: deftypevr
-#: doc/guix.texi:18514
+#: doc/guix.texi:22657
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-boolean pam-authc-ppolicy"
 msgstr "{paramètre de @code{nslcd-configuration}} maybe-boolean pam-authc-ppolicy"
 
 #. type: deftypevr
-#: doc/guix.texi:18517
+#: doc/guix.texi:22660
 msgid "This option specifies whether password policy controls are requested and handled from the LDAP server when performing user authentication."
 msgstr "Cette option spécifie si des contrôles de la politique de mots de passe sont demandés et gérés par le serveur LDAP à l'authentification de l'utilisateur."
 
 #. type: deftypevr
-#: doc/guix.texi:18522
+#: doc/guix.texi:22665
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-string pam-authc-search"
 msgstr "{paramètre de @code{nslcd-configuration}} maybe-string pam-authc-search"
 
 #. type: deftypevr
-#: doc/guix.texi:18528
+#: doc/guix.texi:22671
 msgid "By default nslcd performs an LDAP search with the user's credentials after BIND (authentication) to ensure that the BIND operation was successful.  The default search is a simple check to see if the user's DN exists.  A search filter can be specified that will be used instead.  It should return at least one entry."
 msgstr "Par défaut nslcd effectue une recherche LDAP avec le mot de passe de l'utilisateur après BIND (authentification) pour s'assurer que l'opération BIND a bien réussi.  La recherche par défaut est une simple vérification que le DN de l'utilisateur existe.  Un filtre de recherche peut être spécifié pour l'utiliser à la place.  Il devrait renvoyer au moins une entrée."
 
 #. type: deftypevr
-#: doc/guix.texi:18533
+#: doc/guix.texi:22676
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-string pam-authz-search"
 msgstr "{paramètre de @code{nslcd-configuration}} maybe-string pam-authz-search"
 
 #. type: deftypevr
-#: doc/guix.texi:18537
+#: doc/guix.texi:22680
 msgid "This option allows flexible fine tuning of the authorisation check that should be performed.  The search filter specified is executed and if any entries match, access is granted, otherwise access is denied."
 msgstr "Cette option permet la configuration fine et flexible de la vérification d'autorisation qui devrait être effectuée.  Le filtre de recherche est exécuté et si une entrée correspond, l'accès est autorisé, sinon il est refusé."
 
 #. type: deftypevr
-#: doc/guix.texi:18542
+#: doc/guix.texi:22685
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-string pam-password-prohibit-message"
 msgstr "{paramètre de @code{nslcd-configuration}} maybe-string pam-password-prohibit-message"
 
 #. type: deftypevr
-#: doc/guix.texi:18547
+#: doc/guix.texi:22690
 msgid "If this option is set password modification using pam_ldap will be denied and the specified message will be presented to the user instead.  The message can be used to direct the user to an alternative means of changing their password."
 msgstr "Si cette option est indiquée, la modification de mot de passe par pam_ldap sera refusée et le message spécifié sera présenté à l'utilisateur à la place.  Le message peut être utilisé pour rediriger les utilisateurs vers une autre méthode pour changer leur mot de passe."
 
 #. type: deftypevr
-#: doc/guix.texi:18552
+#: doc/guix.texi:22695
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} list pam-services"
 msgstr "{paramètre de @code{nslcd-configuration}} list pam-services"
 
 #. type: deftypevr
-#: doc/guix.texi:18554
+#: doc/guix.texi:22697
 msgid "List of pam service names for which LDAP authentication should suffice."
 msgstr "Liste de noms de service pam pour lesquels l'authentification LDAP devrait suffire."
 
 #. type: cindex
-#: doc/guix.texi:18565
+#: doc/guix.texi:22708
 #, no-wrap
 msgid "web"
 msgstr "web"
 
 #. type: cindex
-#: doc/guix.texi:18566
+#: doc/guix.texi:22709
 #, no-wrap
 msgid "www"
 msgstr "www"
 
 #. type: cindex
-#: doc/guix.texi:18567
+#: doc/guix.texi:22710
 #, no-wrap
 msgid "HTTP"
 msgstr "HTTP"
 
 #. type: Plain text
-#: doc/guix.texi:18570
+#: doc/guix.texi:22713
 msgid "The @code{(gnu services web)} module provides the Apache HTTP Server, the nginx web server, and also a fastcgi wrapper daemon."
 msgstr "Le module @code{(gnu services web)} fournit le serveur Apache HTTP, le serveur web nginx et aussi un démon fastcgi."
 
 #. type: subsubheading
-#: doc/guix.texi:18571
+#: doc/guix.texi:22714
 #, no-wrap
 msgid "Apache HTTP Server"
 msgstr "Serveur Apache HTTP"
 
 #. type: deffn
-#: doc/guix.texi:18573
+#: doc/guix.texi:22716
 #, no-wrap
 msgid "{Scheme Variable} httpd-service-type"
 msgstr "{Variable Scheme} httpd-service-type"
 
 #. type: deffn
-#: doc/guix.texi:18577
+#: doc/guix.texi:22720
 msgid "Service type for the @uref{https://httpd.apache.org/,Apache HTTP} server (@dfn{httpd}).  The value for this service type is a @code{httpd-configuration} record."
 msgstr "Type de service pour le serveur @uref{https://httpd.apache.org/,Apache HTTP} (@dfn{httpd}).  La valeur de ce type de service est un enregistrement @code{httpd-configuration}."
 
 #. type: deffn
-#: doc/guix.texi:18579 doc/guix.texi:18760
+#: doc/guix.texi:22722 doc/guix.texi:22903
 msgid "A simple example configuration is given below."
 msgstr "Un exemple de configuration simple est donné ci-dessous."
 
-#. type: example
-#: doc/guix.texi:18587
+#. type: lisp
+#: doc/guix.texi:22730
 #, no-wrap
 msgid ""
 "(service httpd-service-type\n"
@@ -34764,140 +42284,140 @@ msgstr ""
 "               (document-root \"/srv/http/www.example.com\")))))\n"
 
 #. type: deffn
-#: doc/guix.texi:18591
+#: doc/guix.texi:22734
 msgid "Other services can also extend the @code{httpd-service-type} to add to the configuration."
 msgstr "D'autres services peuvent aussi étendre @code{httpd-service-type} pour être ajouté à la configuration."
 
-#. type: example
-#: doc/guix.texi:18600 doc/guix.texi:18740
+#. type: lisp
+#: doc/guix.texi:22743 doc/guix.texi:22883
 #, no-wrap
 msgid ""
-"(simple-service 'my-extra-server httpd-service-type\n"
+"(simple-service 'www.example.com-server httpd-service-type\n"
 "                (list\n"
 "                  (httpd-virtualhost\n"
 "                    \"*:80\"\n"
-"                    (list (string-append\n"
-"                           \"ServerName \"www.example.com\n"
-"                            DocumentRoot \\\"/srv/http/www.example.com\\\"\")))))\n"
+"                    (list (string-join '(\"ServerName www.example.com\"\n"
+"                                          \"DocumentRoot /srv/http/www.example.com\")\n"
+"                                       \"\\n\")))))\n"
 msgstr ""
-"(simple-service 'my-extra-server httpd-service-type\n"
+"(simple-service 'www.example.com-server httpd-service-type\n"
 "                (list\n"
 "                  (httpd-virtualhost\n"
 "                    \"*:80\"\n"
-"                    (list (string-append\n"
-"                           \"ServerName \"www.example.com\n"
-"                            DocumentRoot \\\"/srv/http/www.example.com\\\"\")))))\n"
+"                    (list (string-join '(\"ServerName www.example.com\"\n"
+"                                          \"DocumentRoot /srv/http/www.example.com\")\n"
+"                                       \"\\n\")))))\n"
 
 #. type: Plain text
-#: doc/guix.texi:18606
+#: doc/guix.texi:22749
 msgid "The details for the @code{httpd-configuration}, @code{httpd-module}, @code{httpd-config-file} and @code{httpd-virtualhost} record types are given below."
 msgstr "Les détails des types d'enregistrement @code{httpd-configuration}, @code{httpd-module}, @code{httpd-config-file} et @code{httpd-virtualhost} sont donnés plus bas."
 
 #. type: deffn
-#: doc/guix.texi:18607
+#: doc/guix.texi:22750
 #, no-wrap
 msgid "{Data Type} httpd-configuration"
 msgstr "{Type de données} httpd-configuration"
 
 #. type: deffn
-#: doc/guix.texi:18609
+#: doc/guix.texi:22752
 msgid "This data type represents the configuration for the httpd service."
 msgstr "Ce type de données représente la configuration du service httpd."
 
 #. type: item
-#: doc/guix.texi:18611
+#: doc/guix.texi:22754
 #, no-wrap
 msgid "@code{package} (default: @code{httpd})"
 msgstr "@code{package} (par défaut : @code{httpd})"
 
 #. type: table
-#: doc/guix.texi:18613
+#: doc/guix.texi:22756
 msgid "The httpd package to use."
 msgstr "Le paquet httpd à utiliser."
 
 #. type: item
-#: doc/guix.texi:18614 doc/guix.texi:18703
+#: doc/guix.texi:22757 doc/guix.texi:22846
 #, no-wrap
 msgid "@code{pid-file} (default: @code{\"/var/run/httpd\"})"
 msgstr "@code{pid-file} (par défaut : @code{\"/var/run/httpd\"})"
 
 #. type: table
-#: doc/guix.texi:18616
+#: doc/guix.texi:22759
 msgid "The pid file used by the shepherd-service."
 msgstr "Le fichier de pid utilisé par le service shepherd."
 
 #. type: item
-#: doc/guix.texi:18617
+#: doc/guix.texi:22760
 #, no-wrap
 msgid "@code{config} (default: @code{(httpd-config-file)})"
 msgstr "@code{config} (par défaut : @code{(httpd-config-file)})"
 
 #. type: table
-#: doc/guix.texi:18622
+#: doc/guix.texi:22765
 msgid "The configuration file to use with the httpd service. The default value is a @code{httpd-config-file} record, but this can also be a different G-expression that generates a file, for example a @code{plain-file}. A file outside of the store can also be specified through a string."
 msgstr "Le fichier de configuration à utiliser avec le service httpd.  La valeur par défaut est un enregistrement @code{httpd-config-file} mais cela peut aussi être un G-expression qui génère un fichier, par exemple un @code{plain-file}.  Un fichier en dehors du dépôt peut aussi être spécifié avec une chaîne de caractères."
 
 #. type: deffn
-#: doc/guix.texi:18626
+#: doc/guix.texi:22769
 #, no-wrap
 msgid "{Data Type} httpd-module"
 msgstr "{Type de données} httpd-module"
 
 #. type: deffn
-#: doc/guix.texi:18628
+#: doc/guix.texi:22771
 msgid "This data type represents a module for the httpd service."
 msgstr "Ce type de données représente un module pour le service httpd."
 
 #. type: table
-#: doc/guix.texi:18632
+#: doc/guix.texi:22775
 msgid "The name of the module."
 msgstr "Le nom du module."
 
 #. type: table
-#: doc/guix.texi:18638
+#: doc/guix.texi:22781
 msgid "The file for the module. This can be relative to the httpd package being used, the absolute location of a file, or a G-expression for a file within the store, for example @code{(file-append mod-wsgi \"/modules/mod_wsgi.so\")}."
 msgstr "Le fichier pour le module.  Cela peut être relatif au paquet httpd utilisé, l'emplacement absolu d'un fichier ou une G-expression pour un fichier dans le dépôt, par exemple @code{(file-append mod-wsgi \"/modules/mod_wsgi.so\")}."
 
 #. type: defvr
-#: doc/guix.texi:18642
+#: doc/guix.texi:22785
 #, no-wrap
 msgid "{Scheme Variable} %default-httpd-modules"
 msgstr "{Variable Scheme} %default-httpd-modules"
 
 #. type: defvr
-#: doc/guix.texi:18644
+#: doc/guix.texi:22787
 msgid "A default list of @code{httpd-module} objects."
 msgstr "Une liste par défaut des objets @code{httpd-module}."
 
 #. type: deffn
-#: doc/guix.texi:18646
+#: doc/guix.texi:22789
 #, no-wrap
 msgid "{Data Type} httpd-config-file"
 msgstr "{Type de données} httpd-config-file"
 
 #. type: deffn
-#: doc/guix.texi:18648
+#: doc/guix.texi:22791
 msgid "This data type represents a configuration file for the httpd service."
 msgstr "Ce type de données représente un fichier de configuration pour le service httpd."
 
 #. type: item
-#: doc/guix.texi:18650
+#: doc/guix.texi:22793
 #, no-wrap
 msgid "@code{modules} (default: @code{%default-httpd-modules})"
 msgstr "@code{modules} (par défaut : @code{%default-httpd-modules})"
 
 #. type: table
-#: doc/guix.texi:18653
+#: doc/guix.texi:22796
 msgid "The modules to load. Additional modules can be added here, or loaded by additional configuration."
 msgstr "Les modules à charger.  Les modules supplémentaires peuvent être ajoutés ici ou chargés par des configuration supplémentaires."
 
 #. type: table
-#: doc/guix.texi:18656
+#: doc/guix.texi:22799
 msgid "For example, in order to handle requests for PHP files, you can use Apache’s @code{mod_proxy_fcgi} module along with @code{php-fpm-service-type}:"
 msgstr "Par exemple, pour gérer les requêtes pour des fichiers PHP, vous pouvez utiliser le module @code{mod_proxy_fcgi} d'Apache avec @code{php-fpm-service-type} :"
 
-#. type: example
-#: doc/guix.texi:18678
+#. type: lisp
+#: doc/guix.texi:22821
 #, no-wrap
 msgid ""
 "(service httpd-service-type\n"
@@ -34943,165 +42463,165 @@ msgstr ""
 "          (socket-group \"httpd\")))\n"
 
 #. type: item
-#: doc/guix.texi:18680
+#: doc/guix.texi:22823
 #, no-wrap
 msgid "@code{server-root} (default: @code{httpd})"
 msgstr "@code{server-root} (par défaut : @code{httpd})"
 
 #. type: table
-#: doc/guix.texi:18684
+#: doc/guix.texi:22827
 msgid "The @code{ServerRoot} in the configuration file, defaults to the httpd package. Directives including @code{Include} and @code{LoadModule} are taken as relative to the server root."
 msgstr "Le @code{ServerRoot} dans le fichier de configuration, par défaut le paquet httpd.  Les directives comme @code{Include} et @code{LoadModule} sont prises relativement à la racine du serveur."
 
 #. type: item
-#: doc/guix.texi:18685
+#: doc/guix.texi:22828
 #, no-wrap
 msgid "@code{server-name} (default: @code{#f})"
 msgstr "@code{server-name} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:18689
+#: doc/guix.texi:22832
 msgid "The @code{ServerName} in the configuration file, used to specify the request scheme, hostname and port that the server uses to identify itself."
 msgstr "Le @code{ServerName} dans le fichier de configuration, utilisé pour spécifier le schéma de requête, le nom d'hôte et le port que le serveur utilise pour s'identifier."
 
 #. type: table
-#: doc/guix.texi:18693
-msgid "This doesn't need to be set in the server config, and can be specifyed in virtual hosts. The default is @code{#f} to not specify a @code{ServerName}."
+#: doc/guix.texi:22836
+msgid "This doesn't need to be set in the server config, and can be specified in virtual hosts. The default is @code{#f} to not specify a @code{ServerName}."
 msgstr "Cela n'a pas besoin d'être dans la configuration du serveur, et peut être spécifié dans les hôtes virtuels.  La valeur par défaut est @code{#f} pour ne pas spécifier de @code{ServerName}."
 
 #. type: item
-#: doc/guix.texi:18694
+#: doc/guix.texi:22837
 #, no-wrap
 msgid "@code{document-root} (default: @code{\"/srv/http\"})"
 msgstr "@code{document-root} (par défaut : @code{\"/srv/http\"})"
 
 #. type: table
-#: doc/guix.texi:18696
+#: doc/guix.texi:22839
 msgid "The @code{DocumentRoot} from which files will be served."
 msgstr "Le @code{DocumentRoot} depuis lequel les fichiers seront servis."
 
 #. type: item
-#: doc/guix.texi:18697
+#: doc/guix.texi:22840
 #, no-wrap
 msgid "@code{listen} (default: @code{'(\"80\")})"
 msgstr "@code{listen} (par défaut : @code{'(\"80\")})"
 
 #. type: table
-#: doc/guix.texi:18702
+#: doc/guix.texi:22845
 msgid "The list of values for the @code{Listen} directives in the config file. The value should be a list of strings, when each string can specify the port number to listen on, and optionally the IP address and protocol to use."
 msgstr "La liste des valeurs pour les directives @code{Listen} dans le fichier de configuration.  La valeur devrait être une liste de chaînes, où chacune spécifie le port sur lequel écouter et éventuellement une adresse IP et un protocole à utiliser."
 
 #. type: table
-#: doc/guix.texi:18707
+#: doc/guix.texi:22850
 msgid "The @code{PidFile} to use. This should match the @code{pid-file} set in the @code{httpd-configuration} so that the Shepherd service is configured correctly."
 msgstr "Le @code{PidFile} à utiliser.  Cela devrait correspondre à @code{pid-file} indiqué dans @code{httpd-configuration} pour que le service Shepherd soit correctement configuré."
 
 #. type: item
-#: doc/guix.texi:18708
+#: doc/guix.texi:22851
 #, no-wrap
 msgid "@code{error-log} (default: @code{\"/var/log/httpd/error_log\"})"
 msgstr "@code{error-log} (par défaut : @code{\"/var/log/httpd/error_log\"})"
 
 #. type: table
-#: doc/guix.texi:18710
+#: doc/guix.texi:22853
 msgid "The @code{ErrorLog} to which the server will log errors."
 msgstr "Le @code{ErrorLog} où le serveur écrit les journaux d'erreurs."
 
 #. type: item
-#: doc/guix.texi:18711
+#: doc/guix.texi:22854 doc/guix.texi:23415
 #, no-wrap
 msgid "@code{user} (default: @code{\"httpd\"})"
 msgstr "@code{user} (par défaut : @code{\"httpd\"})"
 
 #. type: table
-#: doc/guix.texi:18713
+#: doc/guix.texi:22856
 msgid "The @code{User} which the server will answer requests as."
 msgstr "Le @code{User} en tant que lequel le serveur répondra aux requêtes."
 
 #. type: item
-#: doc/guix.texi:18714
+#: doc/guix.texi:22857
 #, no-wrap
 msgid "@code{group} (default: @code{\"httpd\"})"
 msgstr "@code{group} (par défaut : @code{\"httpd\"})"
 
 #. type: table
-#: doc/guix.texi:18716
+#: doc/guix.texi:22859
 msgid "The @code{Group} which the server will answer requests as."
 msgstr "Le @code{Group} que le serveur utilisera pour répondre aux requêtes."
 
 #. type: item
-#: doc/guix.texi:18717
+#: doc/guix.texi:22860
 #, no-wrap
 msgid "@code{extra-config} (default: @code{(list \"TypesConfig etc/httpd/mime.types\")})"
 msgstr "@code{extra-config} (par défaut : @code{(list \"TypesConfig etc/httpd/mime.types\")})"
 
 #. type: table
-#: doc/guix.texi:18720
+#: doc/guix.texi:22863
 msgid "A flat list of strings and G-expressions which will be added to the end of the configuration file."
 msgstr "Une liste plate de chaînes et de G-expressions qui seront ajoutées à la fin du fichier de configuration."
 
 #. type: table
-#: doc/guix.texi:18723
+#: doc/guix.texi:22866
 msgid "Any values which the service is extended with will be appended to this list."
 msgstr "N'importe quelle valeur avec laquelle le service est étendu sera ajouté à cette liste."
 
 #. type: deffn
-#: doc/guix.texi:18727
+#: doc/guix.texi:22870
 #, no-wrap
 msgid "{Data Type} httpd-virtualhost"
 msgstr "{Type de données} httpd-virtualhost"
 
 #. type: deffn
-#: doc/guix.texi:18729
+#: doc/guix.texi:22872
 msgid "This data type represents a virtualhost configuration block for the httpd service."
 msgstr "Ce type de données représente la configuration d'un hôte virtuel pour le service httpd."
 
 #. type: deffn
-#: doc/guix.texi:18731
+#: doc/guix.texi:22874
 msgid "These should be added to the extra-config for the httpd-service."
 msgstr "Ils devraient être ajoutés à extra-config dans httpd-service."
 
 #. type: code{#1}
-#: doc/guix.texi:18743
+#: doc/guix.texi:22886
 #, no-wrap
 msgid "addresses-and-ports"
 msgstr "addresses-and-ports"
 
 #. type: table
-#: doc/guix.texi:18745
+#: doc/guix.texi:22888
 msgid "The addresses and ports for the @code{VirtualHost} directive."
 msgstr "L'adresse et le port pour la directive @code{VirtualHost}."
 
 #. type: code{#1}
-#: doc/guix.texi:18746
+#: doc/guix.texi:22889
 #, no-wrap
 msgid "contents"
 msgstr "contents"
 
 #. type: table
-#: doc/guix.texi:18749
+#: doc/guix.texi:22892
 msgid "The contents of the @code{VirtualHost} directive, this should be a list of strings and G-expressions."
 msgstr "Le contenu de la directive @code{VirtualHost}, cela devrait être une liste de chaîne et de G-expressions."
 
 #. type: subsubheading
-#: doc/guix.texi:18753
+#: doc/guix.texi:22896
 #, no-wrap
 msgid "NGINX"
 msgstr "NGINX"
 
 #. type: deffn
-#: doc/guix.texi:18755
+#: doc/guix.texi:22898
 #, no-wrap
 msgid "{Scheme Variable} nginx-service-type"
 msgstr "{Variable Scheme} nginx-service-type"
 
 #. type: deffn
-#: doc/guix.texi:18758
+#: doc/guix.texi:22901
 msgid "Service type for the @uref{https://nginx.org/,NGinx} web server.  The value for this service type is a @code{<nginx-configuration>} record."
 msgstr "Type de service pour le serveur web @uref{https://nginx.org/,NGinx}.  La valeur de ce service est un enregistrement @code{<nginx-configuration>}."
 
-#. type: example
-#: doc/guix.texi:18768 doc/guix.texi:18822
+#. type: lisp
+#: doc/guix.texi:22911 doc/guix.texi:22965
 #, no-wrap
 msgid ""
 "(service nginx-service-type\n"
@@ -35119,12 +42639,12 @@ msgstr ""
 "                     (root \"/srv/http/www.example.com\"))))))\n"
 
 #. type: deffn
-#: doc/guix.texi:18773
+#: doc/guix.texi:22916
 msgid "In addition to adding server blocks to the service configuration directly, this service can be extended by other services to add server blocks, as in this example:"
 msgstr "En plus d'ajouter des blocs de serveurs dans la configuration du service directement, ce service peut être étendu par d'autres services pour ajouter des blocs de serveurs, comme dans cet exemple :"
 
-#. type: example
-#: doc/guix.texi:18779
+#. type: lisp
+#: doc/guix.texi:22922
 #, no-wrap
 msgid ""
 "(simple-service 'my-extra-server nginx-service-type\n"
@@ -35138,88 +42658,88 @@ msgstr ""
 "                        (try-files (list \"$uri\" \"$uri/index.html\")))))\n"
 
 #. type: Plain text
-#: doc/guix.texi:18790
+#: doc/guix.texi:22933
 msgid "At startup, @command{nginx} has not yet read its configuration file, so it uses a default file to log error messages.  If it fails to load its configuration file, that is where error messages are logged.  After the configuration file is loaded, the default error log file changes as per configuration.  In our case, startup error messages can be found in @file{/var/run/nginx/logs/error.log}, and after configuration in @file{/var/log/nginx/error.log}.  The second location can be changed with the @var{log-directory} configuration option."
 msgstr "Au démarrage, @command{nginx} n'a pas encore lu son fichier de configuration, donc il utilise les fichiers par défaut pour les messages d'erreur.  S'il échoue à charger sa configuration, c'est là où les messages seront enregistrés.  Après la lecture du fichier de configuration, le fichier de journal d'erreur par défaut change en fonction de celle-ci.  Dans notre cas, les messages d'erreur au démarrage se trouvent dans @file{/var/run/nginx/logs/error.log} et après la configuration dans @file{/var/log/nginx/error.log}.  Ce second emplacement peut être modifié avec l'option de configuration @var{log-directory}."
 
 #. type: deffn
-#: doc/guix.texi:18791
+#: doc/guix.texi:22934
 #, no-wrap
 msgid "{Data Type} nginx-configuration"
 msgstr "{Type de données} nginx-configuration"
 
 #. type: deffn
-#: doc/guix.texi:18795
+#: doc/guix.texi:22938
 msgid "This data type represents the configuration for NGinx. Some configuration can be done through this and the other provided record types, or alternatively, a config file can be provided."
 msgstr "Ce type de données représente la configuration de NGinx.  Certaines configurations peuvent se faire ici et d'autres fournissent des types d'enregistrement ou éventuellement, on peut fournir un fichier de configuration."
 
 #. type: item
-#: doc/guix.texi:18797
+#: doc/guix.texi:22940
 #, no-wrap
 msgid "@code{nginx} (default: @code{nginx})"
 msgstr "@code{nginx} (par défaut : @code{nginx})"
 
 #. type: table
-#: doc/guix.texi:18799
+#: doc/guix.texi:22942
 msgid "The nginx package to use."
 msgstr "Le paquet nginx à utiliser."
 
 #. type: item
-#: doc/guix.texi:18800
+#: doc/guix.texi:22943
 #, no-wrap
 msgid "@code{log-directory} (default: @code{\"/var/log/nginx\"})"
 msgstr "@code{log-directory} (par défaut : @code{\"/var/log/nginx\"})"
 
 #. type: table
-#: doc/guix.texi:18802
+#: doc/guix.texi:22945
 msgid "The directory to which NGinx will write log files."
 msgstr "Le répertoire dans lequel NGinx écrira ses fichiers journaux."
 
 #. type: item
-#: doc/guix.texi:18803
+#: doc/guix.texi:22946
 #, no-wrap
 msgid "@code{run-directory} (default: @code{\"/var/run/nginx\"})"
 msgstr "@code{run-directory} (par défaut : @code{\"/var/run/nginx\"})"
 
 #. type: table
-#: doc/guix.texi:18806
+#: doc/guix.texi:22949
 msgid "The directory in which NGinx will create a pid file, and write temporary files."
 msgstr "Le répertoire dans lequel NGinx créera un fichier de pid et écrira des fichiers temporaires."
 
 #. type: item
-#: doc/guix.texi:18807
+#: doc/guix.texi:22950
 #, no-wrap
 msgid "@code{server-blocks} (default: @code{'()})"
 msgstr "@code{server-blocks} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:18811
+#: doc/guix.texi:22954
 msgid "A list of @dfn{server blocks} to create in the generated configuration file, the elements should be of type @code{<nginx-server-configuration>}."
 msgstr "Une liste de @dfn{blocs serveur} à créer dans le fichier de configuration généré, dont les éléments sont de type @code{<nginx-server-configuration>}."
 
 #. type: table
-#: doc/guix.texi:18815
+#: doc/guix.texi:22958
 msgid "The following example would setup NGinx to serve @code{www.example.com} from the @code{/srv/http/www.example.com} directory, without using HTTPS."
 msgstr "L'exemple suivant paramètre NGinx pour servir @code{www.example.com} depuis le répertoire @code{/srv/http/www.example.com} sans utiliser HTTPS."
 
 #. type: item
-#: doc/guix.texi:18824
+#: doc/guix.texi:22967
 #, no-wrap
 msgid "@code{upstream-blocks} (default: @code{'()})"
 msgstr "@code{upstream-blocks} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:18828
+#: doc/guix.texi:22971
 msgid "A list of @dfn{upstream blocks} to create in the generated configuration file, the elements should be of type @code{<nginx-upstream-configuration>}."
 msgstr "Une liste de @dfn{blocs amont} à créer dans le fichier de configuration généré, dont les éléments sont de type @code{<nginx-upstream-configuration>}."
 
 #. type: table
-#: doc/guix.texi:18835
+#: doc/guix.texi:22978
 msgid "Configuring upstreams through the @code{upstream-blocks} can be useful when combined with @code{locations} in the @code{<nginx-server-configuration>} records.  The following example creates a server configuration with one location configuration, that will proxy requests to a upstream configuration, which will handle requests with two servers."
 msgstr "Configurer les serveurs amont à travers les @code{upstream-blocks} peut être utile en combinaison avec @code{locations} dans les enregistrements @code{<nginx-server-configuration>}.  L'exemple suivant crée une configuration de serveur avec une configuration « location » qui sera mandataire pour une configuration amont, qui gérera les requêtes avec deux serveurs."
 
-#. type: example
-#: doc/guix.texi:18854
+#. type: lisp
+#: doc/guix.texi:22997
 #, no-wrap
 msgid ""
 "(service\n"
@@ -35259,366 +42779,456 @@ msgstr ""
 "                             \"server2.example.com\")))))))\n"
 
 #. type: table
-#: doc/guix.texi:18862
+#: doc/guix.texi:23005
 msgid "If a configuration @var{file} is provided, this will be used, rather than generating a configuration file from the provided @code{log-directory}, @code{run-directory}, @code{server-blocks} and @code{upstream-blocks}.  For proper operation, these arguments should match what is in @var{file} to ensure that the directories are created when the service is activated."
 msgstr "Si un fichier de configuration @var{file} est fourni, il sera utilisé au lieu de générer un fichier de configuration à partir des @code{log-directory}, @code{run-directory}, @code{server-blocks} et @code{upstream-blocks} fournis.  Pour un bon fonctionnement, ces arguments devraient correspondre à ce qui se trouve dans @var{file} pour s'assurer que les répertoires sont créé lorsque le service est activé."
 
 #. type: table
-#: doc/guix.texi:18866
+#: doc/guix.texi:23009
 msgid "This can be useful if you have an existing configuration file, or it's not possible to do what is required through the other parts of the nginx-configuration record."
 msgstr "Cela peut être utile si vous avez déjà un fichier de configuration existant ou s'il n'est pas possible de faire ce dont vous avez besoin avec les autres parties de l'enregistrement nginx-configuration."
 
 #. type: item
-#: doc/guix.texi:18867
+#: doc/guix.texi:23010
 #, no-wrap
 msgid "@code{server-names-hash-bucket-size} (default: @code{#f})"
 msgstr "@code{server-names-hash-bucket-size} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:18870
+#: doc/guix.texi:23013
 msgid "Bucket size for the server names hash tables, defaults to @code{#f} to use the size of the processors cache line."
 msgstr "Taille du seau pour les tables de hashage des noms de serveurs, par dauft @code{#f} pour utilise la taille des lignes de cache du processeur."
 
 #. type: item
-#: doc/guix.texi:18871
+#: doc/guix.texi:23014
 #, no-wrap
 msgid "@code{server-names-hash-bucket-max-size} (default: @code{#f})"
 msgstr "@code{server-names-hash-bucket-max-size} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:18873
+#: doc/guix.texi:23016
 msgid "Maximum bucket size for the server names hash tables."
 msgstr "Taille maximum des seaux pour les tables de hashage des serveurs de noms."
 
 #. type: table
-#: doc/guix.texi:18877
+#: doc/guix.texi:23020
+msgid "List of nginx dynamic modules to load.  This should be a list of file names of loadable modules, as in this example:"
+msgstr "Liste de modules dynamiques de nginx à charger.  Cela devrait être une liste de noms de fichiers de modules chargeables, comme dans cet exemple :"
+
+#. type: lisp
+#: doc/guix.texi:23028
+#, no-wrap
+msgid ""
+"(modules\n"
+" (list\n"
+"  (file-append nginx-accept-language-module \"\\\n"
+"/etc/nginx/modules/ngx_http_accept_language_module.so\")\n"
+"  (file-append nginx-lua-module \"\\\n"
+"/etc/nginx/modules/ngx_http_lua_module.so\")))\n"
+msgstr ""
+"(modules\n"
+" (list\n"
+"  (file-append nginx-accept-language-module \"\\\n"
+"/etc/nginx/modules/ngx_http_accept_language_module.so\")\n"
+"  (file-append nginx-lua-module \"\\\n"
+"/etc/nginx/modules/ngx_http_lua_module.so\")))\n"
+
+#. type: item
+#: doc/guix.texi:23030
+#, no-wrap
+msgid "@code{lua-package-path} (default: @code{'()})"
+msgstr "@code{lua-package-path} (par défaut : @code{'()})"
+
+#. type: table
+#: doc/guix.texi:23033
+msgid "List of nginx lua packages to load.  This should be a list of package names of loadable lua modules, as in this example:"
+msgstr "Liste des paquets lua à charger.  Cela devrait être une liste de noms de paquets de modules lua chargeables, comme dans cet exemple :"
+
+#. type: lisp
+#: doc/guix.texi:23040
+#, no-wrap
+msgid ""
+"(lua-package-path (list lua-resty-core\n"
+"                        lua-resty-lrucache\n"
+"                        lua-resty-signal\n"
+"                        lua-tablepool\n"
+"                        lua-resty-shell))\n"
+msgstr ""
+"(lua-package-path (list lua-resty-core\n"
+"                        lua-resty-lrucache\n"
+"                        lua-resty-signal\n"
+"                        lua-tablepool\n"
+"                        lua-resty-shell))\n"
+
+#. type: item
+#: doc/guix.texi:23042
+#, no-wrap
+msgid "@code{lua-package-cpath} (default: @code{'()})"
+msgstr "@code{lua-package-cpath} (par défaut : @code{'()})"
+
+#. type: table
+#: doc/guix.texi:23045
+msgid "List of nginx lua C packages to load.  This should be a list of package names of loadable lua C modules, as in this example:"
+msgstr "Liste de paquets lua C à charger.  cela devrait être une liste de noms de paquets de modules lua C, comme dans cet exemple :"
+
+#. type: lisp
+#: doc/guix.texi:23048
+#, no-wrap
+msgid "(lua-package-cpath (list lua-resty-signal))\n"
+msgstr "(lua-package-cpath (list lua-resty-signal))\n"
+
+#. type: item
+#: doc/guix.texi:23050
+#, no-wrap
+msgid "@code{global-directives} (default: @code{'((events . ()))})"
+msgstr "@code{global-directives} (par défaut : @code{'((events . ()))})"
+
+#. type: table
+#: doc/guix.texi:23053
+msgid "Association list of global directives for the top level of the nginx configuration.  Values may themselves be association lists."
+msgstr "Liste d'association des directives globales pour le plus haut niveau de la configuration de nginx.  Les valeurs peuvent elles-mêmes être des listes d'association."
+
+#. type: lisp
+#: doc/guix.texi:23059
+#, no-wrap
+msgid ""
+"(global-directives\n"
+" `((worker_processes . 16)\n"
+"   (pcre_jit . on)\n"
+"   (events . ((worker_connections . 1024)))))\n"
+msgstr ""
+"(global-directives\n"
+" `((worker_processes . 16)\n"
+"   (pcre_jit . on)\n"
+"   (events . ((worker_connections . 1024)))))\n"
+
+#. type: table
+#: doc/guix.texi:23064
 msgid "Extra content for the @code{http} block.  Should be string or a string valued G-expression."
 msgstr "Contenu supplémentaire du bloc @code{http}.  Cela devrait être une chaîne ou un G-expression."
 
 #. type: deftp
-#: doc/guix.texi:18881
+#: doc/guix.texi:23068
 #, no-wrap
 msgid "{Data Type} nginx-server-configuration"
 msgstr "{Type de données} nginx-server-configuration"
 
 #. type: deftp
-#: doc/guix.texi:18884
+#: doc/guix.texi:23071
 msgid "Data type representing the configuration of an nginx server block.  This type has the following parameters:"
 msgstr "Type de données représentant la configuration d'un bloc serveur de nginx.  Ce type a les paramètres suivants :"
 
 #. type: item
-#: doc/guix.texi:18886
+#: doc/guix.texi:23073
 #, no-wrap
 msgid "@code{listen} (default: @code{'(\"80\" \"443 ssl\")})"
 msgstr "@code{listen} (par défaut : @code{'(\"80\" \"443 ssl\")})"
 
 #. type: table
-#: doc/guix.texi:18891
+#: doc/guix.texi:23078
 msgid "Each @code{listen} directive sets the address and port for IP, or the path for a UNIX-domain socket on which the server will accept requests.  Both address and port, or only address or only port can be specified.  An address may also be a hostname, for example:"
 msgstr "Chaque directive @code{listen} indique l'adresse et le port pour le protocole IP ou le chemin d'un socket UNIX-domain sur lequel le serveur acceptera les connexions.  On peut spécifier l'adresse et le port, ou juste l'adresse ou juste le port.  Une adresse peut aussi être un nom d'hôte, par exemple :"
 
-#. type: example
-#: doc/guix.texi:18894
+#. type: lisp
+#: doc/guix.texi:23081
 #, no-wrap
 msgid "'(\"127.0.0.1:8000\" \"127.0.0.1\" \"8000\" \"*:8000\" \"localhost:8000\")\n"
 msgstr "'(\"127.0.0.1:8000\" \"127.0.0.1\" \"8000\" \"*:8000\" \"localhost:8000\")\n"
 
 #. type: item
-#: doc/guix.texi:18896
+#: doc/guix.texi:23083
 #, no-wrap
 msgid "@code{server-name} (default: @code{(list 'default)})"
 msgstr "@code{server-name} (par défaut : @code{(list 'default)})"
 
 #. type: table
-#: doc/guix.texi:18899
+#: doc/guix.texi:23086
 msgid "A list of server names this server represents. @code{'default} represents the default server for connections matching no other server."
 msgstr "Une liste de noms de serveurs que ce serveur représente.  @code{'default} représente le serveur par défaut pour les connexions qui ne correspondent à aucun autre serveur."
 
 #. type: item
-#: doc/guix.texi:18900
+#: doc/guix.texi:23087
 #, no-wrap
 msgid "@code{root} (default: @code{\"/srv/http\"})"
 msgstr "@code{root} (par défaut : @code{\"/srv/http\"})"
 
 #. type: table
-#: doc/guix.texi:18902
+#: doc/guix.texi:23089
 msgid "Root of the website nginx will serve."
 msgstr "Racine du site web que sert nginx."
 
 #. type: item
-#: doc/guix.texi:18903
+#: doc/guix.texi:23090
 #, no-wrap
 msgid "@code{locations} (default: @code{'()})"
 msgstr "@code{locations} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:18907
+#: doc/guix.texi:23094
 msgid "A list of @dfn{nginx-location-configuration} or @dfn{nginx-named-location-configuration} records to use within this server block."
 msgstr "Une liste d'enregistrements @dfn{nginx-location-configuration} ou @dfn{nginx-named-location-configuration} à utiliser dans ce bloc serveur."
 
 #. type: item
-#: doc/guix.texi:18908
+#: doc/guix.texi:23095
 #, no-wrap
 msgid "@code{index} (default: @code{(list \"index.html\")})"
 msgstr "@code{index} (par défaut : @code{(list \"index.html\")})"
 
 #. type: table
-#: doc/guix.texi:18911
+#: doc/guix.texi:23098
 msgid "Index files to look for when clients ask for a directory.  If it cannot be found, Nginx will send the list of files in the directory."
 msgstr "Fichiers d'index à chercher lorsque les clients demandent un répertoire.  S'il ne peut pas être trouvé, Nginx enverra la liste des fichiers dans le répertoire."
 
 #. type: item
-#: doc/guix.texi:18912
+#: doc/guix.texi:23099
 #, no-wrap
 msgid "@code{try-files} (default: @code{'()})"
 msgstr "@code{try-files} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:18915
+#: doc/guix.texi:23102
 msgid "A list of files whose existence is checked in the specified order.  @code{nginx} will use the first file it finds to process the request."
 msgstr "Une liste de fichiers dont l'existence doit être vérifiée dans l'ordre spécifié.  @code{nginx} utilisera le premier fichier trouvé pour satisfaire la requête."
 
 #. type: item
-#: doc/guix.texi:18916
+#: doc/guix.texi:23103
 #, no-wrap
 msgid "@code{ssl-certificate} (default: @code{#f})"
 msgstr "@code{ssl-certificate} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:18919
+#: doc/guix.texi:23106
 msgid "Where to find the certificate for secure connections.  Set it to @code{#f} if you don't have a certificate or you don't want to use HTTPS."
 msgstr "Où trouver les certificats pour les connexions sécurisées.  Indiquez @code{#f} si vous n'avez pas de certificats et que vous ne voulez pas utiliser HTTPS."
 
 #. type: item
-#: doc/guix.texi:18920
+#: doc/guix.texi:23107
 #, no-wrap
 msgid "@code{ssl-certificate-key} (default: @code{#f})"
 msgstr "@code{ssl-certificate-key} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:18923
+#: doc/guix.texi:23110
 msgid "Where to find the private key for secure connections.  Set it to @code{#f} if you don't have a key or you don't want to use HTTPS."
 msgstr "Où trouver la clef privée pour les connexions sécurisées.  Indiquez @code{#f} si vous n'avez pas de clef et que vous ne voulez pas utiliser HTTPS."
 
 #. type: item
-#: doc/guix.texi:18924
+#: doc/guix.texi:23111
 #, no-wrap
 msgid "@code{server-tokens?} (default: @code{#f})"
 msgstr "@code{server-tokens?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:18926
+#: doc/guix.texi:23113
 msgid "Whether the server should add its configuration to response."
 msgstr "Indique si le serveur devrait ajouter sa configuration dans les réponses."
 
 #. type: item
-#: doc/guix.texi:18927
+#: doc/guix.texi:23114
 #, no-wrap
 msgid "@code{raw-content} (default: @code{'()})"
 msgstr "@code{raw-content} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:18929
+#: doc/guix.texi:23116
 msgid "A list of raw lines added to the server block."
 msgstr "Une liste de lignes brutes à ajouter dans le bloc serveur."
 
 #. type: deftp
-#: doc/guix.texi:18933
+#: doc/guix.texi:23120
 #, no-wrap
 msgid "{Data Type} nginx-upstream-configuration"
 msgstr "{Type de données} nginx-upstream-configuration"
 
 #. type: deftp
-#: doc/guix.texi:18936
+#: doc/guix.texi:23123
 msgid "Data type representing the configuration of an nginx @code{upstream} block.  This type has the following parameters:"
 msgstr "Type de données représentant la configuration d'un bloc @code{upstream} nginx.  Ce type a les paramètres suivants :"
 
 #. type: table
-#: doc/guix.texi:18940
+#: doc/guix.texi:23127
 msgid "Name for this group of servers."
 msgstr "Nome de ces groupe de serveurs."
 
 #. type: code{#1}
-#: doc/guix.texi:18941
+#: doc/guix.texi:23128
 #, no-wrap
 msgid "servers"
 msgstr "serveurs"
 
 #. type: table
-#: doc/guix.texi:18948
+#: doc/guix.texi:23135
 msgid "Specify the addresses of the servers in the group.  The address can be specified as a IP address (e.g.@: @samp{127.0.0.1}), domain name (e.g.@: @samp{backend1.example.com}) or a path to a UNIX socket using the prefix @samp{unix:}.  For addresses using an IP address or domain name, the default port is 80, and a different port can be specified explicitly."
 msgstr "Spécifie les adresses des serveurs dans le groupe.  L'adresse peut être spécifié avec une adresse IP (p.@: ex.@: @samp{127.0.0.1}), un nom de domaine (p.@: ex.@: @samp{backend1.example.com}) ou un chemin vers un socket UNIX avec le préfixe @samp{unix:}.  Pour les adresse utilisant une adresse IP ou un nom de domaine, le port par défaut est 80 et un port différent peut être spécifié explicitement."
 
 #. type: deftp
-#: doc/guix.texi:18952
+#: doc/guix.texi:23139
 #, no-wrap
 msgid "{Data Type} nginx-location-configuration"
 msgstr "{Type de données} nginx-location-configuration"
 
 #. type: deftp
-#: doc/guix.texi:18955
+#: doc/guix.texi:23142
 msgid "Data type representing the configuration of an nginx @code{location} block.  This type has the following parameters:"
 msgstr "Type de données représentant la configuration d'un bloc @code{location} nginx.  Ce type a les paramètres suivants :"
 
 #. type: table
-#: doc/guix.texi:18959
+#: doc/guix.texi:23146
 msgid "URI which this location block matches."
 msgstr "URI qui correspond à ce bloc."
 
 #. type: anchor{#1}
-#: doc/guix.texi:18961
+#: doc/guix.texi:23148
 msgid "nginx-location-configuration body"
 msgstr "nginx-location-configuration body"
 
 #. type: code{#1}
-#: doc/guix.texi:18961 doc/guix.texi:18982
+#: doc/guix.texi:23148 doc/guix.texi:23169
 #, no-wrap
 msgid "body"
 msgstr "body"
 
 #. type: table
-#: doc/guix.texi:18968
+#: doc/guix.texi:23155
 msgid "Body of the location block, specified as a list of strings. This can contain many configuration directives.  For example, to pass requests to a upstream server group defined using an @code{nginx-upstream-configuration} block, the following directive would be specified in the body @samp{(list \"proxy_pass http://upstream-name;\")}."
 msgstr "Corps du block location, spécifié comme une liste de chaînes de caractères.  Cela peut contenir de nombreuses directives de configuration.  Par exemple, pour passer des requêtes à un groupe de serveurs amont définis dans un bloc @code{nginx-upstream-configuration}, la directive suivante peut être spécifiée dans le corps : @samp{(list \"proxy_pass http://upstream-name;\")}."
 
 #. type: deftp
-#: doc/guix.texi:18972
+#: doc/guix.texi:23159
 #, no-wrap
 msgid "{Data Type} nginx-named-location-configuration"
 msgstr "{Type de données} nginx-named-location-configuration"
 
 #. type: deftp
-#: doc/guix.texi:18977
+#: doc/guix.texi:23164
 msgid "Data type representing the configuration of an nginx named location block.  Named location blocks are used for request redirection, and not used for regular request processing.  This type has the following parameters:"
 msgstr "Type de données représentant la configuration d'un bloc location nginx nommé.  Les blocs location nommés sont utilisé les redirections de requêtes et pas pour le traitement des requêtes normales.  Ce type a les paramètres suivants :"
 
 #. type: table
-#: doc/guix.texi:18981
+#: doc/guix.texi:23168
 msgid "Name to identify this location block."
 msgstr "Nom pour identifier ce bloc location."
 
 #. type: table
-#: doc/guix.texi:18987
+#: doc/guix.texi:23174
 msgid "@xref{nginx-location-configuration body}, as the body for named location blocks can be used in a similar way to the @code{nginx-location-configuration body}.  One restriction is that the body of a named location block cannot contain location blocks."
 msgstr "@xref{nginx-location-configuration body}, comme le corps d'un bloc location nommé peut être utilisé de la même manière que @code{nginx-location-configuration body}.  Une restriction est que le corps d'un bloc location nommé ne peut pas contenir de bloc location."
 
 #. type: subsubheading
-#: doc/guix.texi:18991
+#: doc/guix.texi:23178
 #, no-wrap
 msgid "Varnish Cache"
 msgstr "Cache Varnish"
 
 #. type: cindex
-#: doc/guix.texi:18992
+#: doc/guix.texi:23179
 #, no-wrap
 msgid "Varnish"
 msgstr "Varnish"
 
 #. type: Plain text
-#: doc/guix.texi:18997
+#: doc/guix.texi:23184
 msgid "Varnish is a fast cache server that sits in between web applications and end users.  It proxies requests from clients and caches the accessed URLs such that multiple requests for the same resource only creates one request to the back-end."
 msgstr "Varnish est un serveur de cache rapide qui se trouve entre les applications web et les utilisateurs.  Il sert de serveur mandataire pour les requêtes des clients et met les URL accédées en cache pour que plusieurs requêtes à la même ressource ne crée qu'une requête au moteur."
 
 #. type: defvr
-#: doc/guix.texi:18998
+#: doc/guix.texi:23185
 #, no-wrap
 msgid "{Scheme Variable} varnish-service-type"
 msgstr "{Variable Scheme} varnish-service-type"
 
 #. type: defvr
-#: doc/guix.texi:19000
+#: doc/guix.texi:23187
 msgid "Service type for the Varnish daemon."
 msgstr "Type de service pour le démon Varnish."
 
 #. type: deftp
-#: doc/guix.texi:19002
+#: doc/guix.texi:23189
 #, no-wrap
 msgid "{Data Type} varnish-configuration"
 msgstr "{Type de données} varnish-configuration"
 
 #. type: deftp
-#: doc/guix.texi:19005
+#: doc/guix.texi:23192
 msgid "Data type representing the @code{varnish} service configuration.  This type has the following parameters:"
 msgstr "Type de données représentant la configuration du service @code{varnish}.  Ce type a les paramètres suivants :"
 
 #. type: item
-#: doc/guix.texi:19007
+#: doc/guix.texi:23194
 #, no-wrap
 msgid "@code{package} (default: @code{varnish})"
 msgstr "@code{package} (par défaut : @code{varnish})"
 
 #. type: table
-#: doc/guix.texi:19009
+#: doc/guix.texi:23196
 msgid "The Varnish package to use."
 msgstr "Le paquet Varnish à utiliser."
 
 #. type: item
-#: doc/guix.texi:19010
+#: doc/guix.texi:23197
 #, no-wrap
 msgid "@code{name} (default: @code{\"default\"})"
 msgstr "@code{name} (par défaut : @code{\"default\"})"
 
 #. type: table
-#: doc/guix.texi:19015
+#: doc/guix.texi:23202
 msgid "A name for this Varnish instance.  Varnish will create a directory in @file{/var/varnish/} with this name and keep temporary files there.  If the name starts with a forward slash, it is interpreted as an absolute directory name."
 msgstr "Un nom pour cet instance de Varnish.  Varnish va créer un répertoire dans @file{/var/varnish/} avec ce nom et gardera des fichiers temporaires à cet endroit.  Si le nom commence par une barre oblique, il est interprété comme un nom de répertoire absolu."
 
 #. type: table
-#: doc/guix.texi:19018
+#: doc/guix.texi:23205
 msgid "Pass the @code{-n} argument to other Varnish programs to connect to the named instance, e.g.@: @command{varnishncsa -n default}."
 msgstr "Passez l'argument @code{-n} aux autres programmes Varnish pour vous connecter à l'instance nommée, p.@: ex.@: @command{varnishncsa -n default}."
 
 #. type: item
-#: doc/guix.texi:19019
+#: doc/guix.texi:23206
 #, no-wrap
 msgid "@code{backend} (default: @code{\"localhost:8080\"})"
 msgstr "@code{backend} (par défaut : @code{\"localhost:8080\"})"
 
 #. type: table
-#: doc/guix.texi:19021
+#: doc/guix.texi:23208
 msgid "The backend to use.  This option has no effect if @code{vcl} is set."
 msgstr "Le moteur à utiliser.  Cette option n'a pas d'effet si @code{vcl} est vrai."
 
 #. type: item
-#: doc/guix.texi:19022
+#: doc/guix.texi:23209
 #, no-wrap
 msgid "@code{vcl} (default: #f)"
 msgstr "@code{vcl} (par défaut : #f)"
 
 #. type: table
-#: doc/guix.texi:19027
+#: doc/guix.texi:23214
 msgid "The @dfn{VCL} (Varnish Configuration Language) program to run.  If this is @code{#f}, Varnish will proxy @code{backend} using the default configuration.  Otherwise this must be a file-like object with valid VCL syntax."
 msgstr "Le programme @dfn{VCL} (Varnish Configuration Language) à lancer.  Si la valeur est @code{#f}, Varnsh servira de mandataire pour @code{backend} avec la configuration par défaut.  Sinon, ce doit être un objet simili-fichier avec une syntaxe VCL valide."
 
 #. type: table
-#: doc/guix.texi:19031
-msgid "For example, to mirror @url{http://www.gnu.org,www.gnu.org} with VCL you can do something along these lines:"
-msgstr "Par exemple, pour créer un miroir de @url{http://www.gnu.org,www.gnu.org} avec VCL vous pouvez faire quelque chose comme cela :"
+#: doc/guix.texi:23218
+msgid "For example, to mirror @url{https://www.gnu.org,www.gnu.org} with VCL you can do something along these lines:"
+msgstr "Par exemple, pour créer un miroir de @url{https://www.gnu.org,www.gnu.org} avec VCL vous pouvez faire quelque chose comme cela :"
 
-#. type: example
-#: doc/guix.texi:19038
+#. type: lisp
+#: doc/guix.texi:23224
 #, no-wrap
 msgid ""
 "(define %gnu-mirror\n"
-"  (plain-file\n"
-"   \"gnu.vcl\"\n"
-"   \"vcl 4.1;\n"
-"backend gnu @{ .host = \"www.gnu.org\"; @}\"))\n"
+"  (plain-file \"gnu.vcl\"\n"
+"              \"vcl 4.1;\n"
+"backend gnu @{ .host = \\\"www.gnu.org\\\"; @}\"))\n"
 "\n"
 msgstr ""
 "(define %gnu-mirror\n"
-"  (plain-file\n"
-"   \"gnu.vcl\"\n"
-"   \"vcl 4.1;\n"
-"backend gnu @{ .host = \"www.gnu.org\"; @}\"))\n"
+"  (plain-file \"gnu.vcl\"\n"
+"              \"vcl 4.1;\n"
+"backend gnu @{ .host = \\\"www.gnu.org\\\"; @}\"))\n"
 "\n"
 
-#. type: example
-#: doc/guix.texi:19046
+#. type: lisp
+#: doc/guix.texi:23232
 #, no-wrap
 msgid ""
 "(operating-system\n"
-"  ...\n"
+"  ;; @dots{}\n"
 "  (services (cons (service varnish-service-type\n"
 "                           (varnish-configuration\n"
 "                            (listen '(\":80\"))\n"
@@ -35626,7 +43236,7 @@ msgid ""
 "                  %base-services)))\n"
 msgstr ""
 "(operating-system\n"
-"  ...\n"
+"  ;; @dots{}\n"
 "  (services (cons (service varnish-service-type\n"
 "                           (varnish-configuration\n"
 "                            (listen '(\":80\"))\n"
@@ -35634,544 +43244,1058 @@ msgstr ""
 "                  %base-services)))\n"
 
 #. type: table
-#: doc/guix.texi:19050
+#: doc/guix.texi:23236
 msgid "The configuration of an already running Varnish instance can be inspected and changed using the @command{varnishadm} program."
 msgstr "On peut inspecter la configuration d'une instance Varnish actuellement lancée en utilisant le programme @command{varnishadm}."
 
 #. type: table
-#: doc/guix.texi:19054
+#: doc/guix.texi:23240
 msgid "Consult the @url{https://varnish-cache.org/docs/,Varnish User Guide} and @url{https://book.varnish-software.com/4.0/,Varnish Book} for comprehensive documentation on Varnish and its configuration language."
 msgstr "Consultez le @url{https://varnish-cache.org/docs/,guide utilisateur de varnish} et le @url{https://book.varnish-software.com/4.0/,livre varnish} pour une documentation complète sur Varnish et son langage de configuration."
 
 #. type: item
-#: doc/guix.texi:19055
+#: doc/guix.texi:23241
 #, no-wrap
 msgid "@code{listen} (default: @code{'(\"localhost:80\")})"
 msgstr "@code{listen} (par défaut : @code{'(\"localhost:80\")})"
 
 #. type: table
-#: doc/guix.texi:19057
+#: doc/guix.texi:23243
 msgid "List of addresses Varnish will listen on."
 msgstr "Liste des adresses sur lesquelles écoute Varnish."
 
 #. type: item
-#: doc/guix.texi:19058
+#: doc/guix.texi:23244
 #, no-wrap
 msgid "@code{storage} (default: @code{'(\"malloc,128m\")})"
 msgstr "@code{storage} (par défaut : @code{'(\"malloc,128m\")})"
 
 #. type: table
-#: doc/guix.texi:19060
+#: doc/guix.texi:23246
 msgid "List of storage backends that will be available in VCL."
 msgstr "Liste de moteurs de stockage qui seront disponibles en VCL."
 
 #. type: item
-#: doc/guix.texi:19061
+#: doc/guix.texi:23247
 #, no-wrap
 msgid "@code{parameters} (default: @code{'()})"
 msgstr "@code{parameters} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:19063
+#: doc/guix.texi:23249
 msgid "List of run-time parameters in the form @code{'((\"parameter\" . \"value\"))}."
 msgstr "Liste des paramètres à l'exécution de la forme @code{'((\"parameter\" . \"value\"))}."
 
 #. type: table
-#: doc/guix.texi:19066
+#: doc/guix.texi:23252
 msgid "Additional arguments to pass to the @command{varnishd} process."
 msgstr "Arguments supplémentaires à passer au processus @command{varnishd}."
 
+#. type: cindex
+#: doc/guix.texi:23256 doc/guix.texi:23257
+#, no-wrap
+msgid "Patchwork"
+msgstr "Patchwork"
+
+#. type: Plain text
+#: doc/guix.texi:23260
+msgid "Patchwork is a patch tracking system.  It can collect patches sent to a mailing list, and display them in a web interface."
+msgstr "Patchwork est un système de suivi de correctifs.  Il peut récupérer des correctifs envoyés à une liste de diffusion, et les afficher sur une interface web."
+
+#. type: defvr
+#: doc/guix.texi:23261
+#, no-wrap
+msgid "{Scheme Variable} patchwork-service-type"
+msgstr "{Variable Scheme} patchwork-service-type"
+
+#. type: defvr
+#: doc/guix.texi:23263
+msgid "Service type for Patchwork."
+msgstr "Type de service pour Patchwork."
+
+#. type: Plain text
+#: doc/guix.texi:23267
+msgid "The following example is an example of a minimal service for Patchwork, for the @code{patchwork.example.com} domain."
+msgstr "L'exemple suivant est un exemple de service Patchwork minimal, pour le domaine @code{patchwork.example.com}."
+
+#. type: lisp
+#: doc/guix.texi:23287
+#, no-wrap
+msgid ""
+"(service patchwork-service-type\n"
+"         (patchwork-configuration\n"
+"          (domain \"patchwork.example.com\")\n"
+"          (settings-module\n"
+"           (patchwork-settings-module\n"
+"            (allowed-hosts (list domain))\n"
+"            (default-from-email \"patchwork@@patchwork.example.com\")))\n"
+"          (getmail-retriever-config\n"
+"           (getmail-retriever-configuration\n"
+"            (type \"SimpleIMAPSSLRetriever\")\n"
+"            (server \"imap.example.com\")\n"
+"            (port 993)\n"
+"            (username \"patchwork\")\n"
+"            (password-command\n"
+"             (list (file-append coreutils \"/bin/cat\")\n"
+"                   \"/etc/getmail-patchwork-imap-password\"))\n"
+"            (extra-parameters\n"
+"            '((mailboxes . (\"Patches\"))))))))\n"
+"\n"
+msgstr ""
+"(service patchwork-service-type\n"
+"         (patchwork-configuration\n"
+"          (domain \"patchwork.example.com\")\n"
+"          (settings-module\n"
+"           (patchwork-settings-module\n"
+"            (allowed-hosts (list domain))\n"
+"            (default-from-email \"patchwork@@patchwork.example.com\")))\n"
+"          (getmail-retriever-config\n"
+"           (getmail-retriever-configuration\n"
+"            (type \"SimpleIMAPSSLRetriever\")\n"
+"            (server \"imap.example.com\")\n"
+"            (port 993)\n"
+"            (username \"patchwork\")\n"
+"            (password-command\n"
+"             (list (file-append coreutils \"/bin/cat\")\n"
+"                   \"/etc/getmail-patchwork-imap-password\"))\n"
+"            (extra-parameters\n"
+"            '((mailboxes . (\"Patches\"))))))))\n"
+"\n"
+
+#. type: Plain text
+#: doc/guix.texi:23293
+msgid "There are three records for configuring the Patchwork service.  The @code{<patchwork-configuration>} relates to the configuration for Patchwork within the HTTPD service."
+msgstr "Il y a trois enregistrements pour configurer le service Patchwork.  Le @code{<patchwork-configuration>} correspond à la configuration de Patchwork dans le service HTTPD."
+
+#. type: Plain text
+#: doc/guix.texi:23297
+msgid "The @code{settings-module} field within the @code{<patchwork-configuration>} record can be populated with the @code{<patchwork-settings-module>} record, which describes a settings module that is generated within the Guix store."
+msgstr "Le champ @code{settings-module} dans l'enregistrement @code{<patchwork-configuration>} peut être rempli avec l'enregistrement @code{<patchwork-settings-modules>}, qui décrit un module de paramètres généré dans le dépôt de Guix."
+
+#. type: Plain text
+#: doc/guix.texi:23301
+msgid "For the @code{database-configuration} field within the @code{<patchwork-settings-module>}, the @code{<patchwork-database-configuration>} must be used."
+msgstr "Pour le champ @code{database-configuration} dans @code{<patchwork-settings-module>}, il faut utiliser un @code{<patchwork-dataase-configuration>}."
+
+#. type: deftp
+#: doc/guix.texi:23302
+#, no-wrap
+msgid "{Data Type} patchwork-configuration"
+msgstr "{Type de données} patchwork-configuration"
+
+#. type: deftp
+#: doc/guix.texi:23305
+msgid "Data type representing the Patchwork service configuration.  This type has the following parameters:"
+msgstr "Type de données représentant la configuration du service Patchwork.  Ce type a les paramètres suivants :"
+
+#. type: item
+#: doc/guix.texi:23307
+#, no-wrap
+msgid "@code{patchwork} (default: @code{patchwork})"
+msgstr "@code{patchwork} (par défaut : @code{patchwork})"
+
+#. type: table
+#: doc/guix.texi:23309
+msgid "The Patchwork package to use."
+msgstr "Le paquet Patchwork à utiliser."
+
+#. type: code{#1}
+#: doc/guix.texi:23310
+#, no-wrap
+msgid "domain"
+msgstr "domain"
+
+#. type: table
+#: doc/guix.texi:23313
+msgid "The domain to use for Patchwork, this is used in the HTTPD service virtual host."
+msgstr "Le domaine à utiliser pour Patchwork, utilisé comme hôte virtuel dans le service HTTPD."
+
+#. type: code{#1}
+#: doc/guix.texi:23314
+#, no-wrap
+msgid "settings-module"
+msgstr "settings-module"
+
+#. type: table
+#: doc/guix.texi:23320
+msgid "The settings module to use for Patchwork. As a Django application, Patchwork is configured with a Python module containing the settings. This can either be an instance of the @code{<patchwork-settings-module>} record, any other record that represents the settings in the store, or a directory outside of the store."
+msgstr "Le module de paramètres à utiliser pour Patchwork.  En tant qu'application Django, Patchwork est configuré avec un module Python contenant les paramètres.  Il peut s'agir d'une instance de l'enregistrement @code{<patchwork-settings-module>}, de n'importe quel enregistrement qui représente les paramètres dans le dépôt, ou un répertoire en dehors du dépôt."
+
+#. type: item
+#: doc/guix.texi:23321
+#, no-wrap
+msgid "@code{static-path}  (default: @code{\"/static/\"})"
+msgstr "@code{static-path}  (par défaut : @code{\"/static/\"})"
+
+#. type: table
+#: doc/guix.texi:23323
+msgid "The path under which the HTTPD service should serve the static files."
+msgstr "Le chemin dans lequel le service HTTPD devrait servir les fichiers statiques."
+
+#. type: code{#1}
+#: doc/guix.texi:23324
+#, no-wrap
+msgid "getmail-retriever-config"
+msgstr "getmail-retriever-config"
+
+#. type: table
+#: doc/guix.texi:23328
+msgid "The getmail-retriever-configuration record value to use with Patchwork. Getmail will be configured with this value, the messages will be delivered to Patchwork."
+msgstr "La valeur d'enregistrement getmail-retriever-configuration à utiliser avec Patchwork.  getmail sera configuré avec cette valeur, les messages seront livrés à Patchwork."
+
+#. type: deftp
+#: doc/guix.texi:23332
+#, no-wrap
+msgid "{Data Type} patchwork-settings-module"
+msgstr "{Type de données} patchwork-settings-module"
+
+#. type: deftp
+#: doc/guix.texi:23337
+msgid "Data type representing a settings module for Patchwork.  Some of these settings relate directly to Patchwork, but others relate to Django, the web framework used by Patchwork, or the Django Rest Framework library.  This type has the following parameters:"
+msgstr "Type de données représentant le module de paramètres de Patchwork.  Certains de ces paramètres sont liés à Patchwork, mais d'autres sont liés à Django, le cadriciel web utilisé par Patchwork, ou la bibliothèque Django Rest Framework.  Ce type a les paramètres suivants :"
+
+#. type: item
+#: doc/guix.texi:23339
+#, no-wrap
+msgid "@code{database-configuration} (default: @code{(patchwork-database-configuration)})"
+msgstr "@code{database-configuration} (par défaut : @code{(patchwork-database-configuration)})"
+
+#. type: table
+#: doc/guix.texi:23342
+msgid "The database connection settings used for Patchwork.  See the @code{<patchwork-database-configuration>} record type for more information."
+msgstr "Les paramètres de connexion à la base de données à utiliser pour Patchwork.  Voir le type d'enregistrement @code{<patchwork-database-configuration>} pour plus d'information."
+
+#. type: item
+#: doc/guix.texi:23343
+#, no-wrap
+msgid "@code{secret-key-file} (default: @code{\"/etc/patchwork/django-secret-key\"})"
+msgstr "@code{secret-key-file} (par défaut : @code{\"/etc/patchwork/django-secret-key\"})"
+
+#. type: table
+#: doc/guix.texi:23346
+msgid "Patchwork, as a Django web application uses a secret key for cryptographically signing values.  This file should contain a unique unpredictable value."
+msgstr "Patchwork, en tant qu'application web Django, utilise une clé secrète pour signer des valeurs avec de la cryptographie.  Ce fichier devrait contenir une valeur unique imprévisible."
+
+#. type: table
+#: doc/guix.texi:23349
+msgid "If this file does not exist, it will be created and populated with a random value by the patchwork-setup shepherd service."
+msgstr "Si ce fichier n'existe pas, il sera créé avec une valeur aléatoire par le service patchwork-setup."
+
+#. type: table
+#: doc/guix.texi:23351
+msgid "This setting relates to Django."
+msgstr "Ce paramètre est lié à Django."
+
+#. type: code{#1}
+#: doc/guix.texi:23352
+#, no-wrap
+msgid "allowed-hosts"
+msgstr "allowed-hosts"
+
+#. type: table
+#: doc/guix.texi:23355
+msgid "A list of valid hosts for this Patchwork service. This should at least include the domain specified in the @code{<patchwork-configuration>} record."
+msgstr "Une liste des hôtes valides pour ce service Patchwork.  Cela doit au minimum inclure le domaine spécifié dans l'enregistrement @code{<patchwork-configuration>}"
+
+#. type: table
+#: doc/guix.texi:23357 doc/guix.texi:23371 doc/guix.texi:23377
+#: doc/guix.texi:23383
+msgid "This is a Django setting."
+msgstr "C'est un paramètre pour Django."
+
+#. type: code{#1}
+#: doc/guix.texi:23358
+#, no-wrap
+msgid "default-from-email"
+msgstr "default-from-email"
+
+#. type: table
+#: doc/guix.texi:23360
+msgid "The email address from which Patchwork should send email by default."
+msgstr "L'adresse de courriel sur laquelle Patchwork devrait envoyer les courriels par défaut."
+
+#. type: table
+#: doc/guix.texi:23362 doc/guix.texi:23388 doc/guix.texi:23393
+#: doc/guix.texi:23398
+msgid "This is a Patchwork setting."
+msgstr "C'est un paramètre de Patchwork."
+
+#. type: item
+#: doc/guix.texi:23363
+#, no-wrap
+msgid "@code{static-url} (default: @code{#f})"
+msgstr "@code{static-url} (par défaut : @code{#f})"
+
+#. type: table
+#: doc/guix.texi:23366
+msgid "The URL to use when serving static assets. It can be part of a URL, or a full URL, but must end in a @code{/}."
+msgstr "L'URL à utiliser pour servir les ressources statiques.  Cela peut être un bout d'URL ou une URL complète, mais doit finir par @code{/}."
+
+#. type: table
+#: doc/guix.texi:23369
+msgid "If the default value is used, the @code{static-path} value from the @code{<patchwork-configuration>} record will be used."
+msgstr "Si la valeur par défaut est utilisée, la valeur @code{static-path} de @code{<patchwork-configuration>} sera utilisée."
+
+#. type: item
+#: doc/guix.texi:23372
+#, no-wrap
+msgid "@code{admins} (default: @code{'()})"
+msgstr "@code{admins} (par défaut : @code{'()})"
+
+#. type: table
+#: doc/guix.texi:23375
+msgid "Email addresses to send the details of errors that occur.  Each value should be a list containing two elements, the name and then the email address."
+msgstr "Adresses de courriel auxquelles envoyer le détails des erreurs s'il y en a.  Chaque valeur de la liste contient deux éléments, le nom et l'adresse de courriel."
+
+#. type: table
+#: doc/guix.texi:23381
+msgid "Whether to run Patchwork in debug mode.  If set to @code{#t}, detailed error messages will be shown."
+msgstr "Indique s'il faut lancer Patchwork en mode de débogage.  Si la valeur est @code{#t}, les messages d'erreur détaillés seront affichés."
+
+#. type: item
+#: doc/guix.texi:23384
+#, no-wrap
+msgid "@code{enable-rest-api?} (default: @code{#t})"
+msgstr "@code{enable-rest-api?} (par défaut : @code{#t})"
+
+#. type: table
+#: doc/guix.texi:23386
+msgid "Whether to enable the Patchwork REST API."
+msgstr "Indique s'il faut activer l'API REST de Patchwork."
+
+#. type: item
+#: doc/guix.texi:23389
+#, no-wrap
+msgid "@code{enable-xmlrpc?} (default: @code{#t})"
+msgstr "@code{enable-xmlrpc?} (par défaut : @code{#t})"
+
+#. type: table
+#: doc/guix.texi:23391
+msgid "Whether to enable the XML RPC API."
+msgstr "Indique s'il faut active l'API RPC en XML."
+
+#. type: item
+#: doc/guix.texi:23394
+#, no-wrap
+msgid "@code{force-https-links?} (default: @code{#t})"
+msgstr "@code{force-https-links?} (par défaut : @code{#t})"
+
+#. type: table
+#: doc/guix.texi:23396
+msgid "Whether to use HTTPS links on Patchwork pages."
+msgstr "Indique s'il faut utiliser des liens HTTPS sur les pages de Patchwork."
+
+#. type: table
+#: doc/guix.texi:23401
+msgid "Extra code to place at the end of the Patchwork settings module."
+msgstr "Code supplémentaire à placer à la fin du module de paramètres de Patchwork."
+
+#. type: deftp
+#: doc/guix.texi:23405
+#, no-wrap
+msgid "{Data Type} patchwork-database-configuration"
+msgstr "{Type de données} patchwork-database-configuration"
+
+#. type: deftp
+#: doc/guix.texi:23407
+msgid "Data type representing the database configuration for Patchwork."
+msgstr "Type de données représentant la configuration de la base de données de Patchwork."
+
+#. type: item
+#: doc/guix.texi:23409
+#, no-wrap
+msgid "@code{engine} (default: @code{\"django.db.backends.postgresql_psycopg2\"})"
+msgstr "@code{engine} (par défaut : @code{\"django.db.backends.postgresql_psycopg2\"})"
+
+#. type: table
+#: doc/guix.texi:23411
+msgid "The database engine to use."
+msgstr "Le moteur de base de données à utiliser."
+
+#. type: item
+#: doc/guix.texi:23412
+#, no-wrap
+msgid "@code{name} (default: @code{\"patchwork\"})"
+msgstr "@code{name} (par défaut : @code{\"patchwork\"})"
+
+#. type: table
+#: doc/guix.texi:23414
+msgid "The name of the database to use."
+msgstr "Le nom de la base de données à utiliser."
+
+#. type: table
+#: doc/guix.texi:23417
+msgid "The user to connect to the database as."
+msgstr "L'utilisateur à utiliser pour se connecter à la base de données."
+
+#. type: item
+#: doc/guix.texi:23418
+#, no-wrap
+msgid "@code{password} (default: @code{\"\"})"
+msgstr "@code{password} (par défaut : @code{\"\"})"
+
+#. type: table
+#: doc/guix.texi:23420
+msgid "The password to use when connecting to the database."
+msgstr "Le mot de passe à utiliser lors de la connexion à la base de données."
+
+#. type: item
+#: doc/guix.texi:23421
+#, no-wrap
+msgid "@code{host} (default: @code{\"\"})"
+msgstr "@code{host} (par défaut : @code{\"\"})"
+
+#. type: table
+#: doc/guix.texi:23423
+msgid "The host to make the database connection to."
+msgstr "L'hôte sur lequel se connecter à la base de données."
+
+#. type: item
+#: doc/guix.texi:23424
+#, no-wrap
+msgid "@code{port} (default: @code{\"\"})"
+msgstr "@code{port} (par défaut : @code{\"\"})"
+
+#. type: table
+#: doc/guix.texi:23426
+msgid "The port on which to connect to the database."
+msgstr "Le port sur lequel se connecter à la base de données."
+
+#. type: subsubheading
+#: doc/guix.texi:23430
+#, no-wrap
+msgid "Mumi"
+msgstr "Mumi"
+
+#. type: cindex
+#: doc/guix.texi:23432
+#, no-wrap
+msgid "Mumi, Debbugs Web interface"
+msgstr "Mumi, interface web pour debbugs"
+
+#. type: cindex
+#: doc/guix.texi:23433
+#, no-wrap
+msgid "Debbugs, Mumi Web interface"
+msgstr "Debbugs, interface web Mumi"
+
+#. type: Plain text
+#: doc/guix.texi:23438
+msgid "@uref{https://git.elephly.net/gitweb.cgi?p=software/mumi.git, Mumi} is a Web interface to the Debbugs bug tracker, by default for @uref{https://bugs.gnu.org, the GNU instance}.  Mumi is a Web server, but it also fetches and indexes mail retrieved from Debbugs."
+msgstr "@uref{https://git.elephly.net/gitweb.cgi?p=software/mumi.git, Mumi} est une interface Web pour le logiciel de suivi de bogues Debbugs, par défaut pour @uref{https://bugs.gnu.org, l'instance de GNU}.  Mumi est un serveur Web, mais il récupère et indexe aussi les courriels provenant de Debbugs."
+
+#. type: defvr
+#: doc/guix.texi:23439
+#, no-wrap
+msgid "{Scheme Variable} mumi-service-type"
+msgstr "{Variable Scheme} mumi-service-type"
+
+#. type: defvr
+#: doc/guix.texi:23441
+msgid "This is the service type for Mumi."
+msgstr "Le type de service pour Mumi."
+
+#. type: deftp
+#: doc/guix.texi:23443
+#, no-wrap
+msgid "{Data Type} mumi-configuration"
+msgstr "{Type de données} mumi-configuration"
+
+#. type: deftp
+#: doc/guix.texi:23446
+msgid "Data type representing the Mumi service configuration.  This type has the following fields:"
+msgstr "Type de données représentant la configuration du service Mumi.  Ce type a les champs suivants :"
+
+#. type: item
+#: doc/guix.texi:23448
+#, no-wrap
+msgid "@code{mumi} (default: @code{mumi})"
+msgstr "@code{mumi} (par défaut : @code{mumi})"
+
+#. type: table
+#: doc/guix.texi:23450
+msgid "The Mumi package to use."
+msgstr "Le paquet Mumi à utiliser."
+
+#. type: item
+#: doc/guix.texi:23451
+#, no-wrap
+msgid "@code{mailer?} (default: @code{#true})"
+msgstr "@code{mailer?} (par défaut : @code{#true})"
+
+#. type: table
+#: doc/guix.texi:23453
+msgid "Whether to enable or disable the mailer component."
+msgstr "Indique s'il faut activer le composant d'envoie de courriels."
+
+#. type: code{#1}
+#: doc/guix.texi:23454
+#, no-wrap
+msgid "mumi-configuration-sender"
+msgstr "mumi-configuration-sender"
+
+#. type: table
+#: doc/guix.texi:23456
+msgid "The email address used as the sender for comments."
+msgstr "L'adresse de courriel utilisée comme expéditeur pour les commentaires."
+
+#. type: code{#1}
+#: doc/guix.texi:23457
+#, no-wrap
+msgid "mumi-configuration-smtp"
+msgstr "mumi-configuration-smtp"
+
+#. type: table
+#: doc/guix.texi:23462
+msgid "A URI to configure the SMTP settings for Mailutils.  This could be something like @code{sendmail:///path/to/bin/msmtp} or any other URI supported by Mailutils.  @xref{SMTP Mailboxes, SMTP Mailboxes,, mailutils, GNU@tie{}Mailutils}."
+msgstr "Une URI pour configurer les paramètres SMTP pour Mailutils.  Cela peut être quelque chose comme @code{sendmail:///path/to/bin/msmtp} ou toute autre URI prise en charge par Mailutils.  @xref{SMTP Mailboxes, SMTP Mailboxes,, mailutils, GNU@tie{}Mailutils}."
+
 #. type: subsubheading
-#: doc/guix.texi:19070
+#: doc/guix.texi:23467
 #, no-wrap
 msgid "FastCGI"
 msgstr "FastCGI"
 
 #. type: cindex
-#: doc/guix.texi:19071
+#: doc/guix.texi:23468
 #, no-wrap
 msgid "fastcgi"
 msgstr "fastcgi"
 
 #. type: cindex
-#: doc/guix.texi:19072
+#: doc/guix.texi:23469
 #, no-wrap
 msgid "fcgiwrap"
 msgstr "fcgiwrap"
 
 #. type: Plain text
-#: doc/guix.texi:19079
+#: doc/guix.texi:23476
 msgid "FastCGI is an interface between the front-end and the back-end of a web service.  It is a somewhat legacy facility; new web services should generally just talk HTTP between the front-end and the back-end.  However there are a number of back-end services such as PHP or the optimized HTTP Git repository access that use FastCGI, so we have support for it in Guix."
 msgstr "FastCGI est une interface entre le frontal et le moteur d'un service web.  C'est un dispositif quelque peu désuet ; les nouveaux services devraient généralement juste parler HTTP entre le frontal et le moteur.  Cependant il y a un certain nombre de services de moteurs comme PHP ou l'accès aux dépôts Git optimisé en HTTP qui utilisent FastCGI, donc nous le supportons dans Guix."
 
 #. type: Plain text
-#: doc/guix.texi:19086
+#: doc/guix.texi:23483
 msgid "To use FastCGI, you configure the front-end web server (e.g., nginx) to dispatch some subset of its requests to the fastcgi backend, which listens on a local TCP or UNIX socket.  There is an intermediary @code{fcgiwrap} program that sits between the actual backend process and the web server.  The front-end indicates which backend program to run, passing that information to the @code{fcgiwrap} process."
 msgstr "Pour utiliser FastCGI, vous configurez le serveur web frontal (p.@: ex.@: nginx) pour envoyer un sous-ensemble de ses requêtes au moteur fastcgi, qui écoute sur un socket UNIX ou TCP local.  Il y a un programme @code{fcgiwrap} intermédiaire qui se trouve entre le processus du moteur et le serveur web.  Le frontal indique quel moteur lancer, en passant cette information au processus @code{fcgiwrap}."
 
 #. type: defvr
-#: doc/guix.texi:19087
+#: doc/guix.texi:23484
 #, no-wrap
 msgid "{Scheme Variable} fcgiwrap-service-type"
 msgstr "{Variable Scheme} fcgiwrap-service-type"
 
 #. type: defvr
-#: doc/guix.texi:19089
+#: doc/guix.texi:23486
 msgid "A service type for the @code{fcgiwrap} FastCGI proxy."
 msgstr "Un type de service pour le mandataire FastCGI @code{fcgiwrap}."
 
 #. type: deftp
-#: doc/guix.texi:19091
+#: doc/guix.texi:23488
 #, no-wrap
 msgid "{Data Type} fcgiwrap-configuration"
 msgstr "{Type de données} fcgiwrap-configuration"
 
 #. type: deftp
-#: doc/guix.texi:19094
+#: doc/guix.texi:23491
 msgid "Data type representing the configuration of the @code{fcgiwrap} service.  This type has the following parameters:"
 msgstr "Type de données représentant la configuration du service @code{fcgiwrap}.  Ce type a les paramètres suivants :"
 
 #. type: item
-#: doc/guix.texi:19095
+#: doc/guix.texi:23492
 #, no-wrap
 msgid "@code{package} (default: @code{fcgiwrap})"
 msgstr "@code{package} (par défaut : @code{fcgiwrap})"
 
 #. type: table
-#: doc/guix.texi:19097
+#: doc/guix.texi:23494
 msgid "The fcgiwrap package to use."
 msgstr "Le paquet fcgiwrap à utiliser."
 
 #. type: item
-#: doc/guix.texi:19098
+#: doc/guix.texi:23495
 #, no-wrap
 msgid "@code{socket} (default: @code{tcp:127.0.0.1:9000})"
 msgstr "@code{socket} (par défaut : @code{tcp:127.0.0.1:9000})"
 
 #. type: table
-#: doc/guix.texi:19104
+#: doc/guix.texi:23501
 msgid "The socket on which the @code{fcgiwrap} process should listen, as a string.  Valid @var{socket} values include @code{unix:@var{/path/to/unix/socket}}, @code{tcp:@var{dot.ted.qu.ad}:@var{port}} and @code{tcp6:[@var{ipv6_addr}]:port}."
 msgstr "Le socket sur lequel le processus @code{fcgiwrap} écoute, en tant que chaîne de caractères.  Les valeurs valides de @var{socket} sont @code{unix:@var{/path/to/unix/socket}}, @code{tcp:@var{dot.ted.qu.ad}:@var{port}} et @code{tcp6:[@var{ipv6_addr}]:port}."
 
 #. type: item
-#: doc/guix.texi:19105
+#: doc/guix.texi:23502
 #, no-wrap
 msgid "@code{user} (default: @code{fcgiwrap})"
 msgstr "@code{user} (par défaut : @code{fcgiwrap})"
 
 #. type: itemx
-#: doc/guix.texi:19106
+#: doc/guix.texi:23503
 #, no-wrap
 msgid "@code{group} (default: @code{fcgiwrap})"
 msgstr "@code{group} (par défaut : @code{fcgiwrap})"
 
 #. type: table
-#: doc/guix.texi:19111
+#: doc/guix.texi:23508
 msgid "The user and group names, as strings, under which to run the @code{fcgiwrap} process.  The @code{fastcgi} service will ensure that if the user asks for the specific user or group names @code{fcgiwrap} that the corresponding user and/or group is present on the system."
 msgstr "Les noms de l'utilisateur et du groupe, en tant que chaînes de caractères, sous lesquels lancer le processus @code{fcgiwrap}.  Le service @code{fastcgi} s'assurera que si l'utilisateur demande les noms d'utilisateurs et de groupes @code{fcgiwrap} l'utilisateur et le groupe correspondant seront présents sur le système."
 
 #. type: table
-#: doc/guix.texi:19118
-msgid "It is possible to configure a FastCGI-backed web service to pass HTTP authentication information from the front-end to the back-end, and to allow @code{fcgiwrap} to run the back-end process as a corresponding local user.  To enable this capability on the back-end., run @code{fcgiwrap} as the @code{root} user and group.  Note that this capability also has to be configured on the front-end as well."
-msgstr "Il est possible de configurer un service web soutenu par FastCGI pour passer les informations d'authentification HTTP depuis le frontal jusqu'au moteur, et de permettre à @code{fcgiwrap} dans lancer le processus de moteur avec l'utilisateur correspondant.  Pour activer cette fonctionnalité sur le moteur, lancez @code{fcgiwrap} en tant qu'utilisateur et groupe @code{root}.  Remarquez que cette fonctionnalité doit aussi être configurée sur le frontal."
+#: doc/guix.texi:23515
+msgid "It is possible to configure a FastCGI-backed web service to pass HTTP authentication information from the front-end to the back-end, and to allow @code{fcgiwrap} to run the back-end process as a corresponding local user.  To enable this capability on the back-end, run @code{fcgiwrap} as the @code{root} user and group.  Note that this capability also has to be configured on the front-end as well."
+msgstr "Il est possible de configurer un service web soutenu par FastCGI pour passer les informations d'authentification HTTP depuis le frontal jusqu'au moteur, et de permettre à @code{fcgiwrap} dans lancer le processus de moteur avec l'utilisateur local correspondant.  Pour activer cette fonctionnalité sur le moteur, lancez @code{fcgiwrap} en tant qu'utilisateur et groupe @code{root}.  Remarquez que cette fonctionnalité doit aussi être configurée sur le frontal."
 
 #. type: cindex
-#: doc/guix.texi:19121
+#: doc/guix.texi:23518
 #, no-wrap
 msgid "php-fpm"
 msgstr "php-fpm"
 
 #. type: Plain text
-#: doc/guix.texi:19124
+#: doc/guix.texi:23521
 msgid "PHP-FPM (FastCGI Process Manager) is an alternative PHP FastCGI implementation with some additional features useful for sites of any size."
 msgstr "PHP-FPM (FastCGI Process Manager) est une implémentation FastCGI de PHP alternative avec quelques fonctionnalités supplémentaires utiles pour les sites de toutes tailles."
 
 #. type: Plain text
-#: doc/guix.texi:19126
+#: doc/guix.texi:23523
 msgid "These features include:"
 msgstr "Ces fonctionnalités comprennent :"
 
 #. type: item
-#: doc/guix.texi:19127
+#: doc/guix.texi:23524
 #, no-wrap
 msgid "Adaptive process spawning"
 msgstr "La création de processus adaptative"
 
 #. type: item
-#: doc/guix.texi:19128
+#: doc/guix.texi:23525
 #, no-wrap
 msgid "Basic statistics (similar to Apache's mod_status)"
 msgstr "Des statistiques de base (comme le mod_status d'Apache)"
 
 #. type: item
-#: doc/guix.texi:19129
+#: doc/guix.texi:23526
 #, no-wrap
 msgid "Advanced process management with graceful stop/start"
 msgstr "La gestion des processus avancée avec arrêt et démarrage sans heurts"
 
 #. type: item
-#: doc/guix.texi:19130
+#: doc/guix.texi:23527
 #, no-wrap
 msgid "Ability to start workers with different uid/gid/chroot/environment"
 msgstr "La possibilité de démarrer des processus de travail avec différents uid/gid/chroot/environnement"
 
 #. type: itemize
-#: doc/guix.texi:19132
+#: doc/guix.texi:23529
 msgid "and different php.ini (replaces safe_mode)"
 msgstr "et différents php.ini (à la place de safe_mode)"
 
 #. type: item
-#: doc/guix.texi:19132
+#: doc/guix.texi:23529
 #, no-wrap
 msgid "Stdout & stderr logging"
 msgstr "L'enregistrement des journaux sur stdout et stderr"
 
 #. type: item
-#: doc/guix.texi:19133
+#: doc/guix.texi:23530
 #, no-wrap
 msgid "Emergency restart in case of accidental opcode cache destruction"
 msgstr "Le redémarrage d'urgence dans le cas de la destruction accidentelle du cache des opcodes"
 
 #. type: item
-#: doc/guix.texi:19134
+#: doc/guix.texi:23531
 #, no-wrap
 msgid "Accelerated upload support"
 msgstr "Le support des téléversements accélérés"
 
 #. type: item
-#: doc/guix.texi:19135
+#: doc/guix.texi:23532
 #, no-wrap
 msgid "Support for a \"slowlog\""
 msgstr "Le support de « showlog »"
 
 #. type: item
-#: doc/guix.texi:19136
+#: doc/guix.texi:23533
 #, no-wrap
 msgid "Enhancements to FastCGI, such as fastcgi_finish_request() -"
 msgstr "Des améliorations à FastCGI, comme fastcgi_finish_request() -"
 
 #. type: itemize
-#: doc/guix.texi:19139
+#: doc/guix.texi:23536
 msgid "a special function to finish request & flush all data while continuing to do something time-consuming (video converting, stats processing, etc.)"
 msgstr "une fonction spéciale pour terminer la requête et nettoyer toutes les données tout en continuant à faire d'autres choses qui prennent du temps (conversion vidéo, gestion des stats, etc.)."
 
 #. type: Plain text
-#: doc/guix.texi:19141
+#: doc/guix.texi:23538
 msgid "...@: and much more."
 msgstr "…@: et bien plus."
 
 #. type: defvr
-#: doc/guix.texi:19142
+#: doc/guix.texi:23539
 #, no-wrap
 msgid "{Scheme Variable} php-fpm-service-type"
 msgstr "{Variable Scheme} php-fpm-service-type"
 
 #. type: defvr
-#: doc/guix.texi:19144
+#: doc/guix.texi:23541
 msgid "A Service type for @code{php-fpm}."
 msgstr "Un type de service pour @code{php-fpm}."
 
 #. type: deftp
-#: doc/guix.texi:19146
+#: doc/guix.texi:23543
 #, no-wrap
 msgid "{Data Type} php-fpm-configuration"
 msgstr "{Type de données} php-fpm-configuration"
 
 #. type: deftp
-#: doc/guix.texi:19148
+#: doc/guix.texi:23545
 msgid "Data Type for php-fpm service configuration."
 msgstr "Type de données pour la configuration du service php-fpm."
 
 #. type: item
-#: doc/guix.texi:19149
+#: doc/guix.texi:23546
 #, no-wrap
 msgid "@code{php} (default: @code{php})"
 msgstr "@code{php} (par défaut : @code{php})"
 
 #. type: table
-#: doc/guix.texi:19151
+#: doc/guix.texi:23548
 msgid "The php package to use."
 msgstr "Le paquet php à utiliser."
 
 #. type: item
-#: doc/guix.texi:19151
+#: doc/guix.texi:23548
 #, no-wrap
 msgid "@code{socket} (default: @code{(string-append \"/var/run/php\" (version-major (package-version php)) \"-fpm.sock\")})"
 msgstr "@code{socket} (par défaut : @code{(string-append \"/var/run/php\" (version-major (package-version php)) \"-fpm.sock\")})"
 
 #. type: table
-#: doc/guix.texi:19153
+#: doc/guix.texi:23550
 msgid "The address on which to accept FastCGI requests.  Valid syntaxes are:"
 msgstr "L'adresse sur laquelle accepter les requêtes FastCGI.  Les syntaxes valides sont :"
 
 #. type: code{#1}
-#: doc/guix.texi:19154
+#: doc/guix.texi:23551
 #, no-wrap
 msgid "\"ip.add.re.ss:port\""
 msgstr "\"ip.add.re.ss:port\""
 
 #. type: table
-#: doc/guix.texi:19156
+#: doc/guix.texi:23553
 msgid "Listen on a TCP socket to a specific address on a specific port."
 msgstr "Écoute sur un socket TCP sur l'adresse spécifiée sur un port spécifié."
 
 #. type: code{#1}
-#: doc/guix.texi:19156
+#: doc/guix.texi:23553
 #, no-wrap
 msgid "\"port\""
 msgstr "\"port\""
 
 #. type: table
-#: doc/guix.texi:19158
+#: doc/guix.texi:23555
 msgid "Listen on a TCP socket to all addresses on a specific port."
 msgstr "Écoute sur un socket TCP sur toutes les adresse sur un port spécifique."
 
 #. type: code{#1}
-#: doc/guix.texi:19158
+#: doc/guix.texi:23555
 #, no-wrap
 msgid "\"/path/to/unix/socket\""
 msgstr "\"/path/to/unix/socket\""
 
 #. type: table
-#: doc/guix.texi:19160
+#: doc/guix.texi:23557
 msgid "Listen on a unix socket."
 msgstr "Écoute sur un socket unix."
 
 #. type: item
-#: doc/guix.texi:19162
+#: doc/guix.texi:23559
 #, no-wrap
 msgid "@code{user} (default: @code{php-fpm})"
 msgstr "@code{user} (par défaut : @code{php-fpm})"
 
 #. type: table
-#: doc/guix.texi:19164
+#: doc/guix.texi:23561
 msgid "User who will own the php worker processes."
 msgstr "Utilisateur à qui appartiendra le processus de travail de php."
 
 #. type: item
-#: doc/guix.texi:19164
+#: doc/guix.texi:23561
 #, no-wrap
 msgid "@code{group} (default: @code{php-fpm})"
 msgstr "@code{group} (par défaut : @code{php-fpm})"
 
 #. type: table
-#: doc/guix.texi:19166
+#: doc/guix.texi:23563
 msgid "Group of the worker processes."
 msgstr "Groupe du processus de travail."
 
 #. type: item
-#: doc/guix.texi:19166
+#: doc/guix.texi:23563
 #, no-wrap
 msgid "@code{socket-user} (default: @code{php-fpm})"
 msgstr "@code{socket-user} (par défaut : @code{php-fpm})"
 
 #. type: table
-#: doc/guix.texi:19168
+#: doc/guix.texi:23565
 msgid "User who can speak to the php-fpm socket."
 msgstr "Utilisateur qui peut parler au socket php-fpm."
 
 #. type: item
-#: doc/guix.texi:19168
+#: doc/guix.texi:23565
 #, no-wrap
-msgid "@code{socket-group} (default: @code{php-fpm})"
-msgstr "@code{socket-group} (par défaut : @code{php-fpm})"
+msgid "@code{socket-group} (default: @code{nginx})"
+msgstr "@code{socket-group} (par défaut : @code{nginx})"
 
 #. type: table
-#: doc/guix.texi:19170
+#: doc/guix.texi:23567
 msgid "Group that can speak to the php-fpm socket."
 msgstr "Groupe qui peut parler au socket php-fpm."
 
 #. type: item
-#: doc/guix.texi:19170
+#: doc/guix.texi:23567
 #, no-wrap
 msgid "@code{pid-file} (default: @code{(string-append \"/var/run/php\" (version-major (package-version php)) \"-fpm.pid\")})"
 msgstr "@code{pid-file} (par défaut : @code{(string-append \"/var/run/php\" (version-major (package-version php)) \"-fpm.pid\")})"
 
 #. type: table
-#: doc/guix.texi:19173
+#: doc/guix.texi:23570
 msgid "The process id of the php-fpm process is written to this file once the service has started."
 msgstr "Le pid de php-fpm est écrit dans ce fichier une fois que le service a démarré."
 
 #. type: item
-#: doc/guix.texi:19173
+#: doc/guix.texi:23570
 #, no-wrap
 msgid "@code{log-file} (default: @code{(string-append \"/var/log/php\" (version-major (package-version php)) \"-fpm.log\")})"
 msgstr "@code{log-file} (par défaut : @code{(string-append \"/var/log/php\" (version-major (package-version php)) \"-fpm.log\")})"
 
 #. type: table
-#: doc/guix.texi:19175
+#: doc/guix.texi:23572
 msgid "Log for the php-fpm master process."
 msgstr "Fichier de journal pour le processus maître de php-fpm."
 
 #. type: item
-#: doc/guix.texi:19175
+#: doc/guix.texi:23572
 #, no-wrap
 msgid "@code{process-manager} (default: @code{(php-fpm-dynamic-process-manager-configuration)})"
 msgstr "@code{process-manager} (par défaut : @code{(php-fpm-dynamic-process-manager-configuration)})"
 
 #. type: table
-#: doc/guix.texi:19178
-msgid "Detailed settings for the php-fpm process manager.  Must be either:"
+#: doc/guix.texi:23575
+msgid "Detailed settings for the php-fpm process manager.  Must be one of:"
 msgstr "Configuration détaillée pour le gestionnaire de processus de php-fpm.  Il doit s'agir soit de :"
 
 #. type: code{#1}
-#: doc/guix.texi:19179
+#: doc/guix.texi:23576
 #, no-wrap
 msgid "<php-fpm-dynamic-process-manager-configuration>"
 msgstr "<php-fpm-dynamic-process-manager-configuration>"
 
 #. type: code{#1}
-#: doc/guix.texi:19180
+#: doc/guix.texi:23577
 #, no-wrap
 msgid "<php-fpm-static-process-manager-configuration>"
 msgstr "<php-fpm-static-process-manager-configuration> ou"
 
 #. type: code{#1}
-#: doc/guix.texi:19181
+#: doc/guix.texi:23578
 #, no-wrap
 msgid "<php-fpm-on-demand-process-manager-configuration>"
 msgstr "<php-fpm-on-demand-process-manager-configuration>"
 
 #. type: item
-#: doc/guix.texi:19183
+#: doc/guix.texi:23580
 #, no-wrap
 msgid "@code{display-errors} (default @code{#f})"
 msgstr "@code{display-errors} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:19188
+#: doc/guix.texi:23585
 msgid "Determines whether php errors and warning should be sent to clients and displayed in their browsers.  This is useful for local php development, but a security risk for public sites, as error messages can reveal passwords and personal data."
 msgstr "Détermine si les erreurs et les avertissements php doivent être envoyés aux clients et affichés dans leur navigateur.  Cela est utile pour un développement php local, mais un risque pour la sécurité pour les sites publics, comme les messages d'erreur peuvent révéler des mots de passes et des données personnelles."
 
 #. type: item
-#: doc/guix.texi:19188
+#: doc/guix.texi:23585
 #, no-wrap
 msgid "@code{timezone} (default @code{#f})"
 msgstr "@code{timezone} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:19190
+#: doc/guix.texi:23587
 msgid "Specifies @code{php_admin_value[date.timezone]} parameter."
 msgstr "Spécifie le paramètre @code{php_admin_value[date.timezone]}."
 
 #. type: item
-#: doc/guix.texi:19190
+#: doc/guix.texi:23587
 #, no-wrap
 msgid "@code{workers-logfile} (default @code{(string-append \"/var/log/php\" (version-major (package-version php)) \"-fpm.www.log\")})"
 msgstr "@code{workers-logfile} (par défaut : @code{(string-append \"/var/log/php\" (version-major (package-version php)) \"-fpm.www.log\")})"
 
 #. type: table
-#: doc/guix.texi:19193
+#: doc/guix.texi:23590
 msgid "This file will log the @code{stderr} outputs of php worker processes.  Can be set to @code{#f} to disable logging."
 msgstr "Ce fichier enregistrera la sortie @code{stderr} des processus de travail de php.  On peut indiquer @code{#f} pour désactiver la journalisation."
 
 #. type: item
-#: doc/guix.texi:19193
+#: doc/guix.texi:23590
 #, no-wrap
 msgid "@code{file} (default @code{#f})"
 msgstr "@code{file} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:19196
+#: doc/guix.texi:23593
 msgid "An optional override of the whole configuration.  You can use the @code{mixed-text-file} function or an absolute filepath for it."
 msgstr "Une version alternative de la configuration complète.  Vous pouvez utiliser la fonction @code{mixed-text-file} ou un chemin de fichier absolu."
 
+#. type: item
+#: doc/guix.texi:23593
+#, no-wrap
+msgid "@code{php-ini-file} (default @code{#f})"
+msgstr "@code{php-ini-file} (par défaut : @code{#f})"
+
+#. type: table
+#: doc/guix.texi:23597
+msgid "An optional override of the default php settings.  It may be any ``file-like'' object (@pxref{G-Expressions, file-like objects}).  You can use the @code{mixed-text-file} function or an absolute filepath for it."
+msgstr "Une version alternative de la configuration de php par défaut.  Il peut s'agir de n'importe quel objet « simili-fichier » (@pxref{G-Expressions, file-like objects}).  Vous pouvez utiliser la fonction @code{mixed-text-file} ou un chemin de fichier absolu."
+
+#. type: table
+#: doc/guix.texi:23601
+msgid "For local development it is useful to set a higher timeout and memory limit for spawned php processes.  This be accomplished with the following operating system configuration snippet:"
+msgstr "Pour le développement local il est utile d'indiquer un long délai d'attente et une limite mémoire plus importante pour les processus php créés.  Cela se fait avec les bouts de configuration systèmes suivants :"
+
+#. type: lisp
+#: doc/guix.texi:23606
+#, no-wrap
+msgid ""
+"(define %local-php-ini\n"
+"  (plain-file \"php.ini\"\n"
+"              \"memory_limit = 2G\n"
+"max_execution_time = 1800\"))\n"
+"\n"
+msgstr ""
+"(define %local-php-ini\n"
+"  (plain-file \"php.ini\"\n"
+"              \"memory_limit = 2G\n"
+"max_execution_time = 1800\"))\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:23613
+#, no-wrap
+msgid ""
+"(operating-system\n"
+"  ;; @dots{}\n"
+"  (services (cons (service php-fpm-service-type\n"
+"                           (php-fpm-configuration\n"
+"                            (php-ini-file %local-php-ini)))\n"
+"                  %base-services)))\n"
+msgstr ""
+"(operating-system\n"
+"  ;; @dots{}\n"
+"  (services (cons (service php-fpm-service-type\n"
+"                           (php-fpm-configuration\n"
+"                            (php-ini-file %local-php-ini)))\n"
+"                  %base-services)))\n"
+
+#. type: table
+#: doc/guix.texi:23618
+msgid "Consult the @url{https://www.php.net/manual/en/ini.core.php,core php.ini directives} for comprehensive documentation on the acceptable @file{php.ini} directives."
+msgstr "Consultez les @url{https://www.php.net/manual/en/ini.core.php,principales directives de php.ini} pour une documentation complète sur les directives @file{php.ini} possibles."
+
 #. type: deftp
-#: doc/guix.texi:19199
+#: doc/guix.texi:23621
 #, no-wrap
 msgid "{Data type} php-fpm-dynamic-process-manager-configuration"
 msgstr "{Type de données} php-fpm-dynamic-process-manager-configuration"
 
 #. type: deftp
-#: doc/guix.texi:19203
+#: doc/guix.texi:23625
 msgid "Data Type for the @code{dynamic} php-fpm process manager.  With the @code{dynamic} process manager, spare worker processes are kept around based on it's configured limits."
 msgstr "Type de données pour le gestionnaire de processus @code{dynamic} de php-fpm.  Avec le gestionnaire de processus @code{dynamic}, des processus de travail de secours sont gardés en fonction des limites configurées."
 
 #. type: item
-#: doc/guix.texi:19204 doc/guix.texi:19220 doc/guix.texi:19230
+#: doc/guix.texi:23626 doc/guix.texi:23642 doc/guix.texi:23652
 #, no-wrap
 msgid "@code{max-children} (default: @code{5})"
 msgstr "@code{max-children} (par défaut : @code{5})"
 
 #. type: table
-#: doc/guix.texi:19206 doc/guix.texi:19222 doc/guix.texi:19232
+#: doc/guix.texi:23628 doc/guix.texi:23644 doc/guix.texi:23654
 msgid "Maximum of worker processes."
 msgstr "Nombre maximum de processus de travail."
 
 #. type: item
-#: doc/guix.texi:19206
+#: doc/guix.texi:23628
 #, no-wrap
 msgid "@code{start-servers} (default: @code{2})"
 msgstr "@code{start-servers} (par défaut : @code{2})"
 
 #. type: table
-#: doc/guix.texi:19208
+#: doc/guix.texi:23630
 msgid "How many worker processes should be started on start-up."
 msgstr "Nombre de processus de travail au démarrage."
 
 #. type: item
-#: doc/guix.texi:19208
+#: doc/guix.texi:23630
 #, no-wrap
 msgid "@code{min-spare-servers} (default: @code{1})"
 msgstr "@code{min-spare-servers} (par défaut : @code{1})"
 
 #. type: table
-#: doc/guix.texi:19210
+#: doc/guix.texi:23632
 msgid "How many spare worker processes should be kept around at minimum."
 msgstr "Nombre de processus de travail de secours minimum qui doivent rester à disposition."
 
 #. type: item
-#: doc/guix.texi:19210
+#: doc/guix.texi:23632
 #, no-wrap
 msgid "@code{max-spare-servers} (default: @code{3})"
 msgstr "@code{max-spare-servers} (par défaut : @code{3})"
 
 #. type: table
-#: doc/guix.texi:19212
+#: doc/guix.texi:23634
 msgid "How many spare worker processes should be kept around at maximum."
 msgstr "Nombre maximum de processus de travail de secours qui peuvent rester à disposition."
 
 #. type: deftp
-#: doc/guix.texi:19215
+#: doc/guix.texi:23637
 #, no-wrap
 msgid "{Data type} php-fpm-static-process-manager-configuration"
 msgstr "{Type de données} php-fpm-static-process-manager-configuration"
 
 #. type: deftp
-#: doc/guix.texi:19219
+#: doc/guix.texi:23641
 msgid "Data Type for the @code{static} php-fpm process manager.  With the @code{static} process manager, an unchanging number of worker processes are created."
 msgstr "Type de données pour le gestionnaire de processus @code{static} de php-fpm.  Avec le gestionnaire de processus @code{static}, un nombre constant de processus de travail est créé."
 
 #. type: deftp
-#: doc/guix.texi:19225
+#: doc/guix.texi:23647
 #, no-wrap
 msgid "{Data type} php-fpm-on-demand-process-manager-configuration"
 msgstr "{Type de données} php-fpm-on-demand-process-manager-configuration"
 
 #. type: deftp
-#: doc/guix.texi:19229
+#: doc/guix.texi:23651
 msgid "Data Type for the @code{on-demand} php-fpm process manager.  With the @code{on-demand} process manager, worker processes are only created as requests arrive."
 msgstr "Type de données pour le gestionnaire de processus @code{on-demand} de php-fpm.  Avec le gestionnaire de processus @code{on-demand}, les processus de travail ne sont créés que lorsque les requêtes arrivent."
 
 #. type: item
-#: doc/guix.texi:19232
+#: doc/guix.texi:23654
 #, no-wrap
 msgid "@code{process-idle-timeout} (default: @code{10})"
 msgstr "@code{process-idle-timeout} (par défaut : @code{10})"
 
 #. type: table
-#: doc/guix.texi:19234
+#: doc/guix.texi:23656
 msgid "The time in seconds after which a process with no requests is killed."
 msgstr "La durée en secondes après laquelle un processus sans requête sera tué."
 
 #. type: deffn
-#: doc/guix.texi:19238
+#: doc/guix.texi:23660
 #, no-wrap
-msgid "{Scheme Procedure} nginx-php-fpm-location @"
-msgstr "{Procédure Scheme} nginx-php-fpm-location @"
+msgid "{Scheme Procedure} nginx-php-location @"
+msgstr "{Procédure Scheme} nginx-php-location @"
 
 #. type: deffn
-#: doc/guix.texi:19244
+#: doc/guix.texi:23666
 msgid "[#:nginx-package nginx] @ [socket (string-append \"/var/run/php\" @ (version-major (package-version php)) @ \"-fpm.sock\")] A helper function to quickly add php to an @code{nginx-server-configuration}."
 msgstr ""
 "[#:nginx-package nginx] @\n"
@@ -36181,12 +44305,12 @@ msgstr ""
 "Une fonction d'aide pour ajouter rapidement php à un @code{nginx-server-configuration}."
 
 #. type: Plain text
-#: doc/guix.texi:19247
+#: doc/guix.texi:23669
 msgid "A simple services setup for nginx with php can look like this:"
 msgstr "Une configuration simple de services pour php ressemble à ceci :"
 
-#. type: example
-#: doc/guix.texi:19260
+#. type: lisp
+#: doc/guix.texi:23682
 #, no-wrap
 msgid ""
 "(services (cons* (service dhcp-client-service-type)\n"
@@ -36216,24 +44340,24 @@ msgstr ""
 "                 %base-services))\n"
 
 #. type: cindex
-#: doc/guix.texi:19262
+#: doc/guix.texi:23684
 #, no-wrap
 msgid "cat-avatar-generator"
 msgstr "cat-avatar-generator"
 
 #. type: Plain text
-#: doc/guix.texi:19266
+#: doc/guix.texi:23688
 msgid "The cat avatar generator is a simple service to demonstrate the use of php-fpm in @code{Nginx}.  It is used to generate cat avatar from a seed, for instance the hash of a user's email address."
 msgstr "Le générateur d'avatar de chat est un simple service pour démontrer l'utilisation de php-fpm dans @code{Nginx}.  Il permet de générer des avatars de chats à partir d'une graine, par exemple le hash de l'adresse de courriel d'un utilisateur."
 
 #. type: deffn
-#: doc/guix.texi:19267
+#: doc/guix.texi:23689
 #, no-wrap
 msgid "{Scheme Procedure} cat-avatar-generator-service @"
 msgstr "{Procédure Scheme} cat-avatar-generator-service @"
 
 #. type: deffn
-#: doc/guix.texi:19275
+#: doc/guix.texi:23697
 msgid "[#:cache-dir \"/var/cache/cat-avatar-generator\"] @ [#:package cat-avatar-generator] @ [#:configuration (nginx-server-configuration)] Returns an nginx-server-configuration that inherits @code{configuration}.  It extends the nginx configuration to add a server block that serves @code{package}, a version of cat-avatar-generator.  During execution, cat-avatar-generator will be able to use @code{cache-dir} as its cache directory."
 msgstr ""
 "[#:cache-dir \"/var/cache/cat-avatar-generator\"] @\n"
@@ -36242,12 +44366,12 @@ msgstr ""
 "Renvoie un nginx-server-configuration qui hérite de @code{configuration}.  Il étend la configuration nginx pour ajouter un bloc de serveur qui sert @code{package}, une version de cat-avatar-generator.  Pendant l'exécution, cat-avatar-generator pourra utiliser @code{cache-dir} comme répertoire de cache."
 
 #. type: Plain text
-#: doc/guix.texi:19278
+#: doc/guix.texi:23700
 msgid "A simple setup for cat-avatar-generator can look like this:"
 msgstr "Une configuration simple de cat-avatar-generator ressemble à ceci :"
 
-#. type: example
-#: doc/guix.texi:19285
+#. type: lisp
+#: doc/guix.texi:23707
 #, no-wrap
 msgid ""
 "(services (cons* (cat-avatar-generator-service\n"
@@ -36265,155 +44389,155 @@ msgstr ""
 "                 %base-services))\n"
 
 #. type: subsubheading
-#: doc/guix.texi:19287
+#: doc/guix.texi:23709
 #, no-wrap
 msgid "Hpcguix-web"
 msgstr "Hpcguix-web"
 
 #. type: cindex
-#: doc/guix.texi:19289
+#: doc/guix.texi:23711
 #, no-wrap
 msgid "hpcguix-web"
 msgstr "hpcguix-web"
 
 #. type: Plain text
-#: doc/guix.texi:19294
-msgid "The @uref{hpcguix-web, https://github.com/UMCUGenetics/hpcguix-web/} program is a customizable web interface to browse Guix packages, initially designed for users of high-performance computing (HPC)  clusters."
-msgstr "Le programme @uref{hpcguix-web, https://github.com/UMCUGenetics/hpcguix-web/} est une interface web personnalisable pour naviguer dans les paquets Guix, initialement conçue pour les utilisateurs des grappes de calcul de haute performance (HPC)."
+#: doc/guix.texi:23716
+msgid "The @uref{https://github.com/UMCUGenetics/hpcguix-web/, hpcguix-web} program is a customizable web interface to browse Guix packages, initially designed for users of high-performance computing (HPC)  clusters."
+msgstr "Le programme @uref{https://github.com/UMCUGenetics/hpcguix-web/, hpcguix-web} est une interface web personnalisable pour naviguer dans les paquets Guix, initialement conçue pour les utilisateurs des grappes de calcul de haute performance (HPC)."
 
 #. type: defvr
-#: doc/guix.texi:19295
+#: doc/guix.texi:23717
 #, no-wrap
 msgid "{Scheme Variable} hpcguix-web-service-type"
 msgstr "{Variable Scheme} hpcguix-web-service-type"
 
 #. type: defvr
-#: doc/guix.texi:19297
+#: doc/guix.texi:23719
 msgid "The service type for @code{hpcguix-web}."
 msgstr "Le type de service pour @code{hpcguix-web}."
 
 #. type: deftp
-#: doc/guix.texi:19299
+#: doc/guix.texi:23721
 #, no-wrap
 msgid "{Data Type} hpcguix-web-configuration"
 msgstr "{Type de données} hpcguix-web-configuration"
 
 #. type: deftp
-#: doc/guix.texi:19301
+#: doc/guix.texi:23723
 msgid "Data type for the hpcguix-web service configuration."
 msgstr "Type de données pour la configuration du service hpcguix-web."
 
 #. type: code{#1}
-#: doc/guix.texi:19303
+#: doc/guix.texi:23725
 #, no-wrap
 msgid "specs"
 msgstr "specs"
 
 #. type: table
-#: doc/guix.texi:19306
+#: doc/guix.texi:23728
 msgid "A gexp (@pxref{G-Expressions}) specifying the hpcguix-web service configuration.  The main items available in this spec are:"
 msgstr "Une gexp (@pxref{G-Expressions}) spécifiant la configuration du service hpcguix-web.  Les éléments principaux disponibles dans cette spec sont :"
 
 #. type: item
-#: doc/guix.texi:19308
+#: doc/guix.texi:23730
 #, no-wrap
 msgid "@code{title-prefix} (default: @code{\"hpcguix | \"})"
 msgstr "@code{title-prefix} (par défaut : @code{\"hpcguix | \"})"
 
 #. type: table
-#: doc/guix.texi:19310
+#: doc/guix.texi:23732
 msgid "The page title prefix."
 msgstr "Le préfixe du titre des pages."
 
 #. type: item
-#: doc/guix.texi:19311
+#: doc/guix.texi:23733
 #, no-wrap
 msgid "@code{guix-command} (default: @code{\"guix\"})"
 msgstr "@code{guix-command} (par défaut : @code{\"guix\"})"
 
 #. type: table
-#: doc/guix.texi:19313
+#: doc/guix.texi:23735
 msgid "The @command{guix} command."
 msgstr "La commande @command{guix}"
 
 #. type: item
-#: doc/guix.texi:19314
+#: doc/guix.texi:23736
 #, no-wrap
 msgid "@code{package-filter-proc} (default: @code{(const #t)})"
 msgstr "@code{package-filter-proc} (par défaut : @code{(const #t)})"
 
 #. type: table
-#: doc/guix.texi:19316
+#: doc/guix.texi:23738
 msgid "A procedure specifying how to filter packages that are displayed."
 msgstr "Une procédure qui spécifie comment filtrer les paquets qui seront affichés."
 
 #. type: item
-#: doc/guix.texi:19317
+#: doc/guix.texi:23739
 #, no-wrap
 msgid "@code{package-page-extension-proc} (default: @code{(const '())})"
 msgstr "@code{package-page-extension-proc} (par défaut : @code{(const '())})"
 
 #. type: table
-#: doc/guix.texi:19319
+#: doc/guix.texi:23741
 msgid "Extension package for @code{hpcguix-web}."
 msgstr "Paquet d'extensions pour @code{hpcguix-web}."
 
 #. type: item
-#: doc/guix.texi:19320
+#: doc/guix.texi:23742
 #, no-wrap
 msgid "@code{menu} (default: @code{'()})"
 msgstr "@code{menu} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:19322
+#: doc/guix.texi:23744
 msgid "Additional entry in page @code{menu}."
 msgstr "Entrée supplémentaire dans la page @code{menu}."
 
 #. type: item
-#: doc/guix.texi:19323
+#: doc/guix.texi:23745
 #, no-wrap
 msgid "@code{channels} (default: @code{%default-channels})"
 msgstr "@code{channels} (par défaut : @code{%default-channels})"
 
 #. type: table
-#: doc/guix.texi:19325
+#: doc/guix.texi:23747
 msgid "List of channels from which the package list is built (@pxref{Channels})."
 msgstr "Liste des canaux depuis lesquels la liste des paquets est construite (@pxref{Channels})."
 
 #. type: item
-#: doc/guix.texi:19326
+#: doc/guix.texi:23748
 #, no-wrap
 msgid "@code{package-list-expiration} (default: @code{(* 12 3600)})"
 msgstr "@code{package-list-expiration} (par défaut : @code{(* 12 3600)})"
 
 #. type: table
-#: doc/guix.texi:19329
+#: doc/guix.texi:23751
 msgid "The expiration time, in seconds, after which the package list is rebuilt from the latest instances of the given channels."
 msgstr "Le temps d'expiration, en secondes, après lequel la liste des paquets est reconstruite depuis les dernières instance des canaux donnés."
 
 #. type: table
-#: doc/guix.texi:19334
+#: doc/guix.texi:23756
 msgid "See the hpcguix-web repository for a @uref{https://github.com/UMCUGenetics/hpcguix-web/blob/master/hpcweb-configuration.scm, complete example}."
 msgstr "Voir le dépôt hpcguix-web pour un @uref{https://github.com/UMCUGenetics/hpcguix-web/blob/master/hpcweb-configuration.scm, exemple complet}"
 
 #. type: item
-#: doc/guix.texi:19335
+#: doc/guix.texi:23757
 #, no-wrap
 msgid "@code{package} (default: @code{hpcguix-web})"
 msgstr "@code{package} (par défaut : @code{hpcguix-web})"
 
 #. type: table
-#: doc/guix.texi:19337
+#: doc/guix.texi:23759
 msgid "The hpcguix-web package to use."
 msgstr "Le paquet hpcguix-web à utiliser."
 
 #. type: Plain text
-#: doc/guix.texi:19341
+#: doc/guix.texi:23763
 msgid "A typical hpcguix-web service declaration looks like this:"
 msgstr "Une déclaration de service hpcguix-web typique ressemble à cela :"
 
-#. type: example
-#: doc/guix.texi:19350
+#. type: lisp
+#: doc/guix.texi:23772
 #, no-wrap
 msgid ""
 "(service hpcguix-web-service-type\n"
@@ -36433,77 +44557,144 @@ msgstr ""
 "                (menu '((\"/about\" \"ABOUT\"))))))))\n"
 
 #. type: quotation
-#: doc/guix.texi:19357
+#: doc/guix.texi:23779
 msgid "The hpcguix-web service periodically updates the package list it publishes by pulling channels from Git.  To that end, it needs to access X.509 certificates so that it can authenticate Git servers when communicating over HTTPS, and it assumes that @file{/etc/ssl/certs} contains those certificates."
 msgstr "Le service hpcguix-web met régulièrement à jour la liste des paquets qu'il publie en récupérant les canaux depuis Git.  Pour cela, il doit accéder aux certificats X.509 pour qu'il puisse authentifier les serveurs Git quand il communique en HTTPS, et il suppose que @file{/etc/ssl/certs} contient ces certificats."
 
 #. type: quotation
-#: doc/guix.texi:19361
+#: doc/guix.texi:23783
 msgid "Thus, make sure to add @code{nss-certs} or another certificate package to the @code{packages} field of your configuration.  @ref{X.509 Certificates}, for more information on X.509 certificates."
 msgstr "Ainsi, assurez-vous d'ajouter @code{nss-certs} ou un autre paquet de certificats dans le champ @code{packages} de votre configuration.  @ref{X.509 Certificates} pour plus d'informations sur les certificats X.509."
 
 #. type: cindex
-#: doc/guix.texi:19366
+#: doc/guix.texi:23785 doc/guix.texi:23787
+#, no-wrap
+msgid "gmnisrv"
+msgstr "gmnisrv"
+
+#. type: Plain text
+#: doc/guix.texi:23790
+msgid "The @uref{https://git.sr.ht/~sircmpwn/gmnisrv, gmnisrv} program is a simple @uref{https://gemini.circumlunar.space/, Gemini} protocol server."
+msgstr "Le programme @uref{https://git.sr.ht/~sircmpwn/gmnisrv, gmnisrv} est un serveur simple pour le protocole @uref{https://gemini.circumlunar.space/, Gemini}."
+
+#. type: deffn
+#: doc/guix.texi:23791
+#, no-wrap
+msgid "{Scheme Variable} gmnisrv-service-type"
+msgstr "{Variable Scheme} gmnisrv-service-type"
+
+#. type: deffn
+#: doc/guix.texi:23794
+msgid "This is the type of the gmnisrv service, whose value should be a @code{gmnisrv-configuration} object, as in this example:"
+msgstr "C'est le type du service gmnisrv, dont la valeur devrait être un objet @code{gmnisrv-configuration} comme dans cet exemple :"
+
+#. type: lisp
+#: doc/guix.texi:23799
+#, no-wrap
+msgid ""
+"(service gmnisrv-service-type\n"
+"         (gmnisrv-configuration\n"
+"           (config-file (local-file \"./my-gmnisrv.ini\"))))\n"
+msgstr ""
+"(service gmnisrv-service-type\n"
+"         (gmnisrv-configuration\n"
+"           (config-file (local-file \"./my-gmnisrv.ini\"))))\n"
+
+#. type: deftp
+#: doc/guix.texi:23802
+#, no-wrap
+msgid "{Data Type} gmnisrv-configuration"
+msgstr "{Type de données} gmnisrv-configuration"
+
+#. type: deftp
+#: doc/guix.texi:23804
+msgid "Data type representing the configuration of gmnisrv."
+msgstr "Type données qui représente la configuration de gmnisrv."
+
+#. type: item
+#: doc/guix.texi:23806
+#, no-wrap
+msgid "@code{package} (default: @var{gmnisrv})"
+msgstr "@code{package} (par défaut : @var{gmnisrv})"
+
+#. type: table
+#: doc/guix.texi:23808
+msgid "Package object of the gmnisrv server."
+msgstr "Objet de paquet du serveur gmnisrv."
+
+#. type: item
+#: doc/guix.texi:23809
+#, no-wrap
+msgid "@code{config-file} (default: @code{%default-gmnisrv-config-file})"
+msgstr "@code{config-file} (par défaut : @code{%default-gmnisrv-config-file})"
+
+#. type: table
+#: doc/guix.texi:23815
+msgid "File-like object of the gmnisrv configuration file to use.  The default configuration listens on port 1965 and serves files from @file{/srv/gemini}.  Certificates are stored in @file{/var/lib/gemini/certs}.  For more information, run @command{man gmnisrv} and @command{man gmnisrv.ini}."
+msgstr "Objet simili-fichier du fichier de configuration de gmnisrv à utiliser.  La configuration par défaut écoute sur le port 1965 et sert les fichiers de @file{/srv/gemini}.  Les certificats sont stockés dans @file{/var/lib/gemini/certs}.  Pour plus d'informations, lancez @command{man gmnisrv} et @command{man gmnisrv.ini}."
+
+#. type: cindex
+#: doc/guix.texi:23822
 #, no-wrap
 msgid "Web"
 msgstr "Web"
 
 #. type: cindex
-#: doc/guix.texi:19367
+#: doc/guix.texi:23823
 #, no-wrap
 msgid "HTTP, HTTPS"
 msgstr "HTTP, HTTPS"
 
 #. type: cindex
-#: doc/guix.texi:19368
+#: doc/guix.texi:23824
 #, no-wrap
 msgid "Let's Encrypt"
 msgstr "Let's Encrypt"
 
 #. type: cindex
-#: doc/guix.texi:19369
+#: doc/guix.texi:23825
 #, no-wrap
 msgid "TLS certificates"
-msgstr "certificats TLS"
+msgstr "Certificats TLS"
 
 #. type: Plain text
-#: doc/guix.texi:19376
+#: doc/guix.texi:23832
 msgid "The @code{(gnu services certbot)} module provides a service to automatically obtain a valid TLS certificate from the Let's Encrypt certificate authority.  These certificates can then be used to serve content securely over HTTPS or other TLS-based protocols, with the knowledge that the client will be able to verify the server's authenticity."
 msgstr "Le module @code{(gnu services certbot)} fournit un service qui récupère automatiquement un certificat TLS valide de l'autorité de certification Let's Encrypt.  Ces certificats peuvent ensuite être utilisés pour servir du contenu de manière sécurisée sur HTTPS et d'autres protocoles basés sur TLS, en sachant que le client sera capable de vérifier l'authenticité du serveur."
 
 #. type: Plain text
-#: doc/guix.texi:19388
+#: doc/guix.texi:23844
 msgid "@url{https://letsencrypt.org/, Let's Encrypt} provides the @code{certbot} tool to automate the certification process.  This tool first securely generates a key on the server.  It then makes a request to the Let's Encrypt certificate authority (CA) to sign the key.  The CA checks that the request originates from the host in question by using a challenge-response protocol, requiring the server to provide its response over HTTP.  If that protocol completes successfully, the CA signs the key, resulting in a certificate.  That certificate is valid for a limited period of time, and therefore to continue to provide TLS services, the server needs to periodically ask the CA to renew its signature."
 msgstr "@url{https://letsencrypt.org/, Let's Encrypt} fournit l'outil @code{certbot} pour automatiser le processus de certification.  Cet outil génère d'abord un clef sur le serveur de manière sécurisée.  Ensuite il demande à l'autorité de certification Let's Encrypt de signer la clef.  La CA vérifie que la requête provient de l'hôte en question en utilisant un protocole de défi-réponse, ce qui requiert que le serveur fournisse sa réponse par HTTP.  Si ce protocole se passe sans encombre, la CA signe la clef et on obtient un certificat.  Ce certificat est valide pour une durée limitée et donc, pour continuer à fournir des services en TLS, le serveur doit régulièrement demander à la CA de renouveler sa signature."
 
 #. type: Plain text
-#: doc/guix.texi:19395
+#: doc/guix.texi:23851
 msgid "The certbot service automates this process: the initial key generation, the initial certification request to the Let's Encrypt service, the web server challenge/response integration, writing the certificate to disk, the automated periodic renewals, and the deployment tasks associated with the renewal (e.g.@: reloading services, copying keys with different permissions)."
 msgstr "Le service certbot automatise ce processus : la génération initiale de la clef, la demande de certification initiale au service Let's Encrypt, l'intégration du protocole de défi/réponse dans le serveur web, l'écriture du certificat sur le disque, les renouvellements périodiques et les taches de déploiement avec le renouvellement (p.@: ex.@: recharger les services, copier les clefs avec d'autres permissions)."
 
 #. type: Plain text
-#: doc/guix.texi:19401
+#: doc/guix.texi:23857
 msgid "Certbot is run twice a day, at a random minute within the hour.  It won't do anything until your certificates are due for renewal or revoked, but running it regularly would give your service a chance of staying online in case a Let's Encrypt-initiated revocation happened for some reason."
 msgstr "Certbot est lancé deux fois par jour, à une minute aléatoire dans l'heure.  Il ne fera rien sauf si vos certificats doivent être renouvelés ou sont révoqués, mais le lancer régulièrement permettra à vos services de rester en ligne si Let's Encrypt décide de révoquer votre certificat."
 
 #. type: Plain text
-#: doc/guix.texi:19405
+#: doc/guix.texi:23861
 msgid "By using this service, you agree to the ACME Subscriber Agreement, which can be found there: @url{https://acme-v01.api.letsencrypt.org/directory}."
 msgstr "En utilisant ce service, vous acceptez le document « ACME Subscriber Agreement », qu'on peut trouver ici : @url{https://acme-v01.api.letsencrypt.org/directory}."
 
 #. type: defvr
-#: doc/guix.texi:19406
+#: doc/guix.texi:23862
 #, no-wrap
 msgid "{Scheme Variable} certbot-service-type"
 msgstr "{Variable Scheme} certbot-service-type"
 
 #. type: defvr
-#: doc/guix.texi:19409
+#: doc/guix.texi:23865
 msgid "A service type for the @code{certbot} Let's Encrypt client.  Its value must be a @code{certbot-configuration} record as in this example:"
 msgstr "Un type de service pour le client Let's Encrypt @code{certbot}.  Sa valeur doit être un enregistrement @code{certbot-configuration} comme dans cet exemple :"
 
-#. type: example
-#: doc/guix.texi:19416
+#. type: lisp
+#: doc/guix.texi:23872
 #, no-wrap
 msgid ""
 "(define %nginx-deploy-hook\n"
@@ -36520,8 +44711,8 @@ msgstr ""
 "       (kill pid SIGHUP))))\n"
 "\n"
 
-#. type: example
-#: doc/guix.texi:19427
+#. type: lisp
+#: doc/guix.texi:23883
 #, no-wrap
 msgid ""
 "(service certbot-service-type\n"
@@ -36547,213 +44738,230 @@ msgstr ""
 "             (domains '(\"bar.example.net\")))))))\n"
 
 #. type: defvr
-#: doc/guix.texi:19430
+#: doc/guix.texi:23886
 msgid "See below for details about @code{certbot-configuration}."
 msgstr "Voir plus bas pour des détails sur @code{certbot-configuration}."
 
 #. type: deftp
-#: doc/guix.texi:19432
+#: doc/guix.texi:23888
 #, no-wrap
 msgid "{Data Type} certbot-configuration"
 msgstr "{Type de données} certbot-configuration"
 
 #. type: deftp
-#: doc/guix.texi:19435
+#: doc/guix.texi:23891
 msgid "Data type representing the configuration of the @code{certbot} service.  This type has the following parameters:"
 msgstr "Type données représentant la configuration du service @code{certbot}.  Ce type a les paramètres suivants :"
 
 #. type: item
-#: doc/guix.texi:19437
+#: doc/guix.texi:23893
 #, no-wrap
 msgid "@code{package} (default: @code{certbot})"
 msgstr "@code{package} (par défaut : @code{certbot})"
 
 #. type: table
-#: doc/guix.texi:19439
+#: doc/guix.texi:23895
 msgid "The certbot package to use."
 msgstr "Le paquet certbot à utiliser."
 
 #. type: item
-#: doc/guix.texi:19440
+#: doc/guix.texi:23896
 #, no-wrap
 msgid "@code{webroot} (default: @code{/var/www})"
 msgstr "@code{webroot} (par défaut : @code{/var/www})"
 
 #. type: table
-#: doc/guix.texi:19443
+#: doc/guix.texi:23899
 msgid "The directory from which to serve the Let's Encrypt challenge/response files."
 msgstr "Le répertoire depuis lequel servir les fichiers du défi/réponse de Let's Encrypt."
 
 #. type: item
-#: doc/guix.texi:19444
+#: doc/guix.texi:23900
 #, no-wrap
 msgid "@code{certificates} (default: @code{()})"
 msgstr "@code{certificates} (par défaut : @code{()})"
 
 #. type: table
-#: doc/guix.texi:19448
+#: doc/guix.texi:23904
 msgid "A list of @code{certificates-configuration}s for which to generate certificates and request signatures.  Each certificate has a @code{name} and several @code{domains}."
 msgstr "Une liste de @code{certificates-configuration} pour lesquels générer des certificats et demander des signatures.  Chaque certificat a un @code{name} et plusieurs @code{domains}."
 
+#. type: item
+#: doc/guix.texi:23905
+#, no-wrap
+msgid "@code{email} (default: @code{#f})"
+msgstr "@code{email} (par défaut : @code{#f})"
+
 #. type: table
-#: doc/guix.texi:19452
-msgid "Mandatory email used for registration, recovery contact, and important account notifications."
-msgstr "Courriel obligatoire utilisé pour la création de compte, le contact en cas de problème et des notifications importantes sur le compte."
+#: doc/guix.texi:23909
+msgid "Optional email address used for registration and recovery contact.  Setting this is encouraged as it allows you to receive important notifications about the account and issued certificates."
+msgstr "Adresse de courriel facultative pour la création de compte et le contact de récupération de compte.  Il est recommandé de l'indiquer car cela vous permet de recevoir des notifications importantes à propos de votre compte et des certificats créés."
+
+#. type: item
+#: doc/guix.texi:23910
+#, no-wrap
+msgid "@code{server} (default: @code{#f})"
+msgstr "@code{server} (par défaut : @code{#f})"
+
+#. type: table
+#: doc/guix.texi:23913
+msgid "Optional URL of ACME server.  Setting this overrides certbot's default, which is the Let's Encrypt server."
+msgstr "URL facultative d'un serveur ACME.  Indiquer ce paramètre remplace la valeur de certbot par défaut, qui est le serveur de Let's Encrypt."
 
 #. type: item
-#: doc/guix.texi:19453
+#: doc/guix.texi:23914
 #, no-wrap
 msgid "@code{rsa-key-size} (default: @code{2048})"
 msgstr "@code{rsa-key-size} (par défaut : @code{2048})"
 
 #. type: table
-#: doc/guix.texi:19455
+#: doc/guix.texi:23916
 msgid "Size of the RSA key."
 msgstr "Taille de la clef RSA."
 
 #. type: item
-#: doc/guix.texi:19456
+#: doc/guix.texi:23917
 #, no-wrap
 msgid "@code{default-location} (default: @i{see below})"
 msgstr "@code{default-location} (par défaut : @i{voir plus bas})"
 
 #. type: table
-#: doc/guix.texi:19465
+#: doc/guix.texi:23926
 msgid "The default @code{nginx-location-configuration}.  Because @code{certbot} needs to be able to serve challenges and responses, it needs to be able to run a web server.  It does so by extending the @code{nginx} web service with an @code{nginx-server-configuration} listening on the @var{domains} on port 80, and which has a @code{nginx-location-configuration} for the @code{/.well-known/} URI path subspace used by Let's Encrypt.  @xref{Web Services}, for more on these nginx configuration data types."
 msgstr "Le @code{nginx-location-configuration} par défaut.  Comme @code{certbot} doit pouvoir servir les défis et les réponses, il doit être capable de lancer un serveur web.  Cela se fait en étendant le service web @code{nginx} avec un @code{nginx-server-configuration} qui écoute sur les @var{domains} sur le port 80 et qui a un @code{nginx-location-configuration} pour le chemin @code{/.well-known/} utilisé par Let's Encrypt.  @xref{Web Services} pour plus d'information sur les types de données de la configuration de nginx."
 
 #. type: table
-#: doc/guix.texi:19469
+#: doc/guix.texi:23930
 msgid "Requests to other URL paths will be matched by the @code{default-location}, which if present is added to all @code{nginx-server-configuration}s."
 msgstr "Les requêtes vers d'autres URL correspondra à @code{default-location}, qui, s'il est présent, sera ajout é à tous les @code{nginx-server-configuration}."
 
 #. type: table
-#: doc/guix.texi:19473
+#: doc/guix.texi:23934
 msgid "By default, the @code{default-location} will issue a redirect from @code{http://@var{domain}/...} to @code{https://@var{domain}/...}, leaving you to define what to serve on your site via @code{https}."
 msgstr "Par défaut, le @code{default-location} sera une redirection de @code{http://@var{domain}/…} vers @code{https://@var{domain}/…}, en vous laissant définir ce que vous voulez servir sur votre site en @code{https}."
 
 #. type: table
-#: doc/guix.texi:19475
+#: doc/guix.texi:23936
 msgid "Pass @code{#f} to not issue a default location."
 msgstr "Passez @code{#f} pour ne pas utiliser de location par défaut."
 
 #. type: deftp
-#: doc/guix.texi:19478
+#: doc/guix.texi:23939
 #, no-wrap
 msgid "{Data Type} certificate-configuration"
 msgstr "{Type de données} certificate-configuration"
 
 #. type: deftp
-#: doc/guix.texi:19481
+#: doc/guix.texi:23942
 msgid "Data type representing the configuration of a certificate.  This type has the following parameters:"
 msgstr "Type de données représentant la configuration d'un certificat.  Ce type a les paramètres suivants :"
 
 #. type: item
-#: doc/guix.texi:19483
+#: doc/guix.texi:23944
 #, no-wrap
 msgid "@code{name} (default: @i{see below})"
 msgstr "@code{name} (par défaut : @i{voir plus bas})"
 
 #. type: table
-#: doc/guix.texi:19487
+#: doc/guix.texi:23948
 msgid "This name is used by Certbot for housekeeping and in file paths; it doesn't affect the content of the certificate itself.  To see certificate names, run @code{certbot certificates}."
 msgstr "Ce nom est utilisé par Certbot pour ses tâches quotidiennes et dans les chemins de fichiers ; il n'affecte pas le contenu des certificats eux-mêmes.  Pour voir les noms des certificats, lancez @code{certbot certificates}."
 
 #. type: table
-#: doc/guix.texi:19489
+#: doc/guix.texi:23950
 msgid "Its default is the first provided domain."
 msgstr "Sa valeur par défaut est le premier domaine spécifié."
 
 #. type: item
-#: doc/guix.texi:19490
+#: doc/guix.texi:23951
 #, no-wrap
 msgid "@code{domains} (default: @code{()})"
 msgstr "@code{domains} (par défaut : @code{()})"
 
 #. type: table
-#: doc/guix.texi:19493
+#: doc/guix.texi:23954
 msgid "The first domain provided will be the subject CN of the certificate, and all domains will be Subject Alternative Names on the certificate."
 msgstr "Le premier domaine spécifié sera le CN du sujet du certificat, et tous les domaines seront les noms alternatifs du sujet dans le certificat."
 
 #. type: item
-#: doc/guix.texi:19494
+#: doc/guix.texi:23955
 #, no-wrap
 msgid "@code{challenge} (default: @code{#f})"
 msgstr "@code{challenge} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:19499
-msgid "The challenge type that has to be run by certbot.  If @code{#f} is specified, default to the HTTP challenge.  If a value is specified, defaults to the manual plugin (see @code{authentication-hook}, @code{cleanup-hook} and the documentation at @url{https://certbot.eff.org/docs/using.html#hooks})."
-msgstr "Le type de défi à utiliser avec certbot.  Si @code{#f} est spécifié, le défi HTTP par défaut sera utilisé.  Si une valeur est spécifiée, le greffon manuel sera utilisé (voir @code{authentication-hook}, @code{cleanup-hook} et la documentation sur @url{https://certbot.eff.org/docs/using.html#hooks})."
+#: doc/guix.texi:23962
+msgid "The challenge type that has to be run by certbot.  If @code{#f} is specified, default to the HTTP challenge.  If a value is specified, defaults to the manual plugin (see @code{authentication-hook}, @code{cleanup-hook} and the documentation at @url{https://certbot.eff.org/docs/using.html#hooks}), and gives Let's Encrypt permission to log the public IP address of the requesting machine."
+msgstr "Le type de défi à utiliser avec certbot.  Si @code{#f} est spécifié, le défi HTTP par défaut sera utilisé.  Si une valeur est spécifiée, le greffon manuel sera utilisé par défaut (voir @code{authentication-hook}, @code{cleanup-hook} et la documentation sur @url{https://certbot.eff.org/docs/using.html#hooks}), et donne à Let's Encrypt la permission d'enregistrer l'adresse IP publique de la machine qui a fait la demande."
 
 #. type: item
-#: doc/guix.texi:19500
+#: doc/guix.texi:23963
 #, no-wrap
 msgid "@code{authentication-hook} (default: @code{#f})"
 msgstr "@code{authentication-hook} (par défaut : @code{#t})"
 
 #. type: table
-#: doc/guix.texi:19506
+#: doc/guix.texi:23969
 msgid "Command to be run in a shell once for each certificate challenge to be answered.  For this command, the shell variable @code{$CERTBOT_DOMAIN} will contain the domain being authenticated, @code{$CERTBOT_VALIDATION} contains the validation string and @code{$CERTBOT_TOKEN} contains the file name of the resource requested when performing an HTTP-01 challenge."
 msgstr "Commande à lancer dans un shell une fois par défi de certificat auquel répondre.  Pour cette commande, la variable shell @code{$CERTBOT_DOMAIN} contiendra le domaine à authentifier, @code{$CERTBOT_VALIDATION} contiendra la chaîne de validation et @code{$CERTBOT_TOKEN} contiendra le nom de fichier de la ressource demandée pour le défi HTTP-01."
 
 #. type: item
-#: doc/guix.texi:19507
+#: doc/guix.texi:23970
 #, no-wrap
 msgid "@code{cleanup-hook} (default: @code{#f})"
 msgstr "@code{cleanup-hook} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:19513
+#: doc/guix.texi:23976
 msgid "Command to be run in a shell once for each certificate challenge that have been answered by the @code{auth-hook}.  For this command, the shell variables available in the @code{auth-hook} script are still available, and additionally @code{$CERTBOT_AUTH_OUTPUT} will contain the standard output of the @code{auth-hook} script."
 msgstr "Commande à lancer dans un shell une fois par défi de certificat auquel @code{auth-hook} a répondu.  Pour cette commande, les variables shell disponibles dans le script @code{auth-hook} sont toujours disponibles, et en plus @code{$CERTBOT_AUTH_OUTPUT} contiendra la sortie standard du script @code{auth-hook}."
 
 #. type: item
-#: doc/guix.texi:19514
+#: doc/guix.texi:23977
 #, no-wrap
 msgid "@code{deploy-hook} (default: @code{#f})"
 msgstr "@code{deploy-hook} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:19522
+#: doc/guix.texi:23985
 msgid "Command to be run in a shell once for each successfully issued certificate.  For this command, the shell variable @code{$RENEWED_LINEAGE} will point to the config live subdirectory (for example, @samp{\"/etc/letsencrypt/live/example.com\"}) containing the new certificates and keys; the shell variable @code{$RENEWED_DOMAINS} will contain a space-delimited list of renewed certificate domains (for example, @samp{\"example.com www.example.com\"}."
 msgstr "Commande à lancer dans un shell une fois par certificat récupéré avec succès.  Pour cette commande, la variable @code{$RENEWED_LINEAGE} pointera sur le sous-répertoire live (par exemple, @samp{\"/etc/letsencrypt/live/example.com\"}) contenant le nouveau certificat et la clef ; la variable @code{$RENEWED_DOMAINS} contiendra les noms de domaines séparés par des espaces (par exemple @samp{\"example.com www.example.com\"})."
 
 #. type: Plain text
-#: doc/guix.texi:19529
+#: doc/guix.texi:23992
 msgid "For each @code{certificate-configuration}, the certificate is saved to @code{/etc/letsencrypt/live/@var{name}/fullchain.pem} and the key is saved to @code{/etc/letsencrypt/live/@var{name}/privkey.pem}."
 msgstr "Pour chaque @code{certificate-configuration}, le certificat est sauvegardé dans @code{/etc/letsencrypt/live/@var{name}/fullchain.pem} et la clef est sauvegardée dans @code{/etc/letsencrypt/live/@var{name}/privkey.pem}."
 
 #. type: cindex
-#: doc/guix.texi:19531
+#: doc/guix.texi:23994
 #, no-wrap
 msgid "DNS (domain name system)"
 msgstr "DNS (domain name system)"
 
 #. type: cindex
-#: doc/guix.texi:19532
+#: doc/guix.texi:23995
 #, no-wrap
 msgid "domain name system (DNS)"
 msgstr "domain name system (DNS)"
 
 #. type: Plain text
-#: doc/guix.texi:19540
+#: doc/guix.texi:24003
 msgid "The @code{(gnu services dns)} module provides services related to the @dfn{domain name system} (DNS).  It provides a server service for hosting an @emph{authoritative} DNS server for multiple zones, slave or master.  This service uses @uref{https://www.knot-dns.cz/, Knot DNS}.  And also a caching and forwarding DNS server for the LAN, which uses @uref{http://www.thekelleys.org.uk/dnsmasq/doc.html, dnsmasq}."
 msgstr "Le module @code{(gnu services dns)} fournit des services liés au @dfn{système de noms de domaines} (DNS).  Il fournit un service de serveur pour héberger un serveur DNS @emph{faisant autorité} pour plusieurs zones, en esclave ou en maître.  Ce service utilise @uref{https://www.knot-dns.cz/, Knot DNS}.  Il fournit aussi un service de cache et de renvoie DNS pour le LAN, qui utilise @uref{http://www.thekelleys.org.uk/dnsmasq/doc.html, dnsmasq}."
 
 #. type: subsubheading
-#: doc/guix.texi:19541
+#: doc/guix.texi:24004
 #, no-wrap
 msgid "Knot Service"
 msgstr "Service Knot"
 
 #. type: Plain text
-#: doc/guix.texi:19545
+#: doc/guix.texi:24008
 msgid "An example configuration of an authoritative server for two zones, one master and one slave, is:"
 msgstr "Voici un exemple de configuration pour un serveur faisant autorité sur deux zone, un maître et un esclave :"
 
 #. type: lisp
-#: doc/guix.texi:19552
+#: doc/guix.texi:24015
 #, no-wrap
 msgid ""
 "(define-zone-entries example.org.zone\n"
@@ -36771,7 +44979,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:19559
+#: doc/guix.texi:24022
 #, no-wrap
 msgid ""
 "(define master-zone\n"
@@ -36791,7 +44999,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:19565
+#: doc/guix.texi:24028
 #, no-wrap
 msgid ""
 "(define slave-zone\n"
@@ -36809,7 +45017,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:19570
+#: doc/guix.texi:24033
 #, no-wrap
 msgid ""
 "(define plop-master\n"
@@ -36825,7 +45033,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:19579
+#: doc/guix.texi:24042
 #, no-wrap
 msgid ""
 "(operating-system\n"
@@ -36847,967 +45055,1070 @@ msgstr ""
 "                   %base-services)))\n"
 
 #. type: deffn
-#: doc/guix.texi:19581
+#: doc/guix.texi:24044
 #, no-wrap
 msgid "{Scheme Variable} knot-service-type"
 msgstr "{Variable Scheme} knot-service-type"
 
 #. type: deffn
-#: doc/guix.texi:19583
+#: doc/guix.texi:24046
 msgid "This is the type for the Knot DNS server."
 msgstr "C'est le type pour le serveur DNS Knot."
 
 #. type: deffn
-#: doc/guix.texi:19591
+#: doc/guix.texi:24054
 msgid "Knot DNS is an authoritative DNS server, meaning that it can serve multiple zones, that is to say domain names you would buy from a registrar.  This server is not a resolver, meaning that it can only resolve names for which it is authoritative.  This server can be configured to serve zones as a master server or a slave server as a per-zone basis.  Slave zones will get their data from masters, and will serve it as an authoritative server.  From the point of view of a resolver, there is no difference between master and slave."
 msgstr "Knot DNS est un serveur DNS faisant autorité, ce qui signifie qu'il peut servir plusieurs zones, c'est-à-dire des noms de domaines que vous achetez à un registrar.  Ce serveur n'est pas un résolveur, ce qui signifie qu'il ne peut pas résoudre les noms pour lesquels il ne fait pas autorité.  Ce serveur peut être configuré pour servir des zones comme un serveur maître ou comme un serveur esclave, en fonction des zones.  Les zones esclaves récupèrent leurs données des maîtres, et seront servies comme faisant autorité.  Du point de vue d'un résolveur, il n'y a pas de différence entre un maître et un esclave@footnote{NdT : Voir la conférence en Français de Stéphane Bortzmeyer pour en apprendre plus sur le DNS : @url{https://iletaitunefoisinternet.fr/dns-bortzmeyer/index.html}}."
 
 #. type: deffn
-#: doc/guix.texi:19593
+#: doc/guix.texi:24056
 msgid "The following data types are used to configure the Knot DNS server:"
 msgstr "Les types de données suivants sont utilisés pour configurer le serveur DNS Knot :"
 
 #. type: deftp
-#: doc/guix.texi:19595
+#: doc/guix.texi:24058
 #, no-wrap
 msgid "{Data Type} knot-key-configuration"
 msgstr "{Type de données} knot-key-configuration"
 
 #. type: deftp
-#: doc/guix.texi:19598
+#: doc/guix.texi:24061
 msgid "Data type representing a key.  This type has the following parameters:"
 msgstr "Type de données représentant une clef.  Ce type a les paramètres suivants :"
 
 #. type: item
-#: doc/guix.texi:19600 doc/guix.texi:19620 doc/guix.texi:19735
-#: doc/guix.texi:19761 doc/guix.texi:19796
+#: doc/guix.texi:24063 doc/guix.texi:24083 doc/guix.texi:24198
+#: doc/guix.texi:24224 doc/guix.texi:24259
 #, no-wrap
 msgid "@code{id} (default: @code{\"\"})"
 msgstr "@code{id} (par défaut : @code{\"\"})"
 
 #. type: table
-#: doc/guix.texi:19603
+#: doc/guix.texi:24066 doc/guix.texi:24086
 msgid "An identifier for other configuration fields to refer to this key. IDs must be unique and must not be empty."
 msgstr "Un identifiant pour d'autres champs de configuration qui se réfèrent à cette clef.  Les ID doivent être uniques et non vides."
 
 #. type: item
-#: doc/guix.texi:19604
+#: doc/guix.texi:24067
 #, no-wrap
 msgid "@code{algorithm} (default: @code{#f})"
 msgstr "@code{algorithm} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:19608
+#: doc/guix.texi:24071
 msgid "The algorithm to use.  Choose between @code{#f}, @code{'hmac-md5}, @code{'hmac-sha1}, @code{'hmac-sha224}, @code{'hmac-sha256}, @code{'hmac-sha384} and @code{'hmac-sha512}."
 msgstr "L'algorithme à utiliser.  Choisissez entre @code{#f}, @code{'hmac-md5}, @code{'hmac-sha1}, @code{'hmac-sha224}, @code{'hmac-sha256}, @code{'hmac-sha384} et @code{'hmac-sha512}."
 
 #. type: item
-#: doc/guix.texi:19609
+#: doc/guix.texi:24072
 #, no-wrap
 msgid "@code{secret} (default: @code{\"\"})"
 msgstr "@code{secret} (par défaut : @code{\"\"})"
 
 #. type: table
-#: doc/guix.texi:19611
+#: doc/guix.texi:24074
 msgid "The secret key itself."
 msgstr "La clef secrète elle-même."
 
 #. type: deftp
-#: doc/guix.texi:19615
+#: doc/guix.texi:24078
 #, no-wrap
 msgid "{Data Type} knot-acl-configuration"
 msgstr "{Type de données} knot-acl-configuration"
 
 #. type: deftp
-#: doc/guix.texi:19618
+#: doc/guix.texi:24081
 msgid "Data type representing an Access Control List (ACL) configuration.  This type has the following parameters:"
 msgstr "Type de données représentant une configuration de liste de contrôle d'accès (ACL).  Ce type a les paramètres suivants :"
 
-#. type: table
-#: doc/guix.texi:19623
-msgid "An identifier for ether configuration fields to refer to this key. IDs must be unique and must not be empty."
-msgstr "Un identifiant pour d'autres champs de configuration qui se réfèrent à cette clef.  Les ID doivent être uniques et non vides."
-
 #. type: item
-#: doc/guix.texi:19624 doc/guix.texi:19739
+#: doc/guix.texi:24087 doc/guix.texi:24202
 #, no-wrap
 msgid "@code{address} (default: @code{'()})"
 msgstr "@code{address} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:19628
+#: doc/guix.texi:24091
 msgid "An ordered list of IP addresses, network subnets, or network ranges represented with strings.  The query must match one of them.  Empty value means that address match is not required."
 msgstr "Une liste ordonnée d'adresses IP, de sous-réseaux ou d'intervalles de réseaux représentés par des chaînes de caractères.  La requête doit correspondre à l'une d'entre elles.  La valeur vide signifie que l'adresse n'a pas besoin de correspondre."
 
 #. type: item
-#: doc/guix.texi:19629
+#: doc/guix.texi:24092
 #, no-wrap
 msgid "@code{key} (default: @code{'()})"
 msgstr "@code{key} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:19633
+#: doc/guix.texi:24096
 msgid "An ordered list of references to keys represented with strings.  The string must match a key ID defined in a @code{knot-key-configuration}.  No key means that a key is not require to match that ACL."
 msgstr "Une liste ordonnées de références à des clefs représentés par des chaînes.  La chaîne doit correspondre à un ID définie dans un @code{knot-key-configuration}.  Aucune clef signifie qu'une clef n'est pas nécessaire pour correspondre à l'ACL."
 
 #. type: item
-#: doc/guix.texi:19634
+#: doc/guix.texi:24097
 #, no-wrap
 msgid "@code{action} (default: @code{'()})"
 msgstr "@code{action} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:19638
+#: doc/guix.texi:24101
 msgid "An ordered list of actions that are permitted or forbidden by this ACL.  Possible values are lists of zero or more elements from @code{'transfer}, @code{'notify} and @code{'update}."
 msgstr "Une liste ordonnée d'actions permises ou interdites par cet ACL.  Les valeurs possibles sont une liste de zéro ou plus d'éléments entre @code{'transfer}, @code{'notify} et @code{'update}."
 
 #. type: item
-#: doc/guix.texi:19639
+#: doc/guix.texi:24102
 #, no-wrap
 msgid "@code{deny?} (default: @code{#f})"
 msgstr "@code{deny?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:19642
+#: doc/guix.texi:24105
 msgid "When true, the ACL defines restrictions.  Listed actions are forbidden.  When false, listed actions are allowed."
 msgstr "Lorsque la valeur est vraie, l'ACL définie des restrictions.  Les actions listées sont interdites.  Lorsque la valeur est fausse, les actions listées sont autorisées."
 
 #. type: deftp
-#: doc/guix.texi:19646
+#: doc/guix.texi:24109
 #, no-wrap
 msgid "{Data Type} zone-entry"
 msgstr "{Type de données} zone-entry"
 
 #. type: deftp
-#: doc/guix.texi:19649
-msgid "Data type represnting a record entry in a zone file.  This type has the following parameters:"
+#: doc/guix.texi:24112
+msgid "Data type representing a record entry in a zone file.  This type has the following parameters:"
 msgstr "Type de données représentant une entrée dans un fichier de zone.  Ce type a les paramètres suivants :"
 
 #. type: item
-#: doc/guix.texi:19651
+#: doc/guix.texi:24114
 #, no-wrap
 msgid "@code{name} (default: @code{\"@@\"})"
 msgstr "@code{name} (par défaut : @code{\"@@\"})"
 
 #. type: table
-#: doc/guix.texi:19657
+#: doc/guix.texi:24120
 msgid "The name of the record.  @code{\"@@\"} refers to the origin of the zone.  Names are relative to the origin of the zone.  For example, in the @code{example.org} zone, @code{\"ns.example.org\"} actually refers to @code{ns.example.org.example.org}.  Names ending with a dot are absolute, which means that @code{\"ns.example.org.\"} refers to @code{ns.example.org}."
 msgstr "Le nom de l'enregistrement.  @code{\"@@\"} se réfère à l'origine de la zone.  Les noms sont relatifs à l'origine de la zone. Par exemple, dans la zone @code{example.org}, @code{\"ns.example.org\"} se réfère en fait à @code{ns.example.org.example.org}.  Les noms qui finissent par un point sont absolus, ce qui signifie que @code{\"ns.example.org.\"} se réfère bien à @code{ns.example.org}."
 
 #. type: item
-#: doc/guix.texi:19658
+#: doc/guix.texi:24121
 #, no-wrap
 msgid "@code{ttl} (default: @code{\"\"})"
 msgstr "@code{ttl} (par défaut : @code{\"\"})"
 
 #. type: table
-#: doc/guix.texi:19660
+#: doc/guix.texi:24123
 msgid "The Time-To-Live (TTL) of this record.  If not set, the default TTL is used."
 msgstr "La durée de vie (TTL) de cet enregistrement.  S'il n'est pas indiqué, le TTL par défaut est utilisé."
 
 #. type: item
-#: doc/guix.texi:19661
+#: doc/guix.texi:24124
 #, no-wrap
 msgid "@code{class} (default: @code{\"IN\"})"
 msgstr "@code{class} (par défaut : @code{\"IN\"})"
 
 #. type: table
-#: doc/guix.texi:19664
+#: doc/guix.texi:24127
 msgid "The class of the record.  Knot currently supports only @code{\"IN\"} and partially @code{\"CH\"}."
 msgstr "La classe de l'enregistrement.  Knot ne supporte actuellement que @code{\"IN\"} et partiellement @code{\"CH\"}."
 
 #. type: item
-#: doc/guix.texi:19665
+#: doc/guix.texi:24128
 #, no-wrap
 msgid "@code{type} (default: @code{\"A\"})"
 msgstr "@code{type} (par défaut : @code{\"A\"})"
 
 #. type: table
-#: doc/guix.texi:19669
+#: doc/guix.texi:24132
 msgid "The type of the record.  Common types include A (IPv4 address), AAAA (IPv6 address), NS (Name Server) and MX (Mail eXchange).  Many other types are defined."
 msgstr "Le type d'enregistrement.  Les types usuels sont A (une adresse IPv4), NS (serveur de nom) et MX (serveur de courriel).  Bien d'autres types sont définis."
 
 #. type: item
-#: doc/guix.texi:19670
+#: doc/guix.texi:24133
 #, no-wrap
 msgid "@code{data} (default: @code{\"\"})"
 msgstr "@code{data} (par défaut : @code{\"\"})"
 
 #. type: table
-#: doc/guix.texi:19674
+#: doc/guix.texi:24137
 msgid "The data contained in the record.  For instance an IP address associated with an A record, or a domain name associated with an NS record.  Remember that domain names are relative to the origin unless they end with a dot."
 msgstr "Les données contenues dans l'enregistrement.  Par exemple une adresse IP associée à un enregistrement A, ou un nom de domaine associé à un enregistrement NS.  Rappelez-vous que les noms de domaines sont relatifs à l'origine à moins qu'ils ne finissent par un point."
 
 #. type: deftp
-#: doc/guix.texi:19678
+#: doc/guix.texi:24141
 #, no-wrap
 msgid "{Data Type} zone-file"
 msgstr "{Type de données} zone-file"
 
 #. type: deftp
-#: doc/guix.texi:19681
+#: doc/guix.texi:24144
 msgid "Data type representing the content of a zone file.  This type has the following parameters:"
 msgstr "Type données représentant le contenu d'un fichier de zone.  Ce type a les paramètres suivants :"
 
 #. type: table
-#: doc/guix.texi:19690
+#: doc/guix.texi:24153
 msgid "The list of entries.  The SOA record is taken care of, so you don't need to put it in the list of entries.  This list should probably contain an entry for your primary authoritative DNS server.  Other than using a list of entries directly, you can use @code{define-zone-entries} to define a object containing the list of entries more easily, that you can later pass to the @code{entries} field of the @code{zone-file}."
 msgstr "La liste des entrées.  On s'occupe de l'enregistrement SOA, donc vous n'avez pas besoin de l'ajouter dans la liste des entrées.  Cette liste devrait contenir une entrée pour votre serveur DNS primaire faisant autorité.  En plus d'utiliser une liste des entrées directement, vous pouvez utiliser @code{define-zone-entries} pour définir un objet contenant la liste des entrées plus facilement, que vous pouvez ensuite passer au champ @code{entries} de @code{zone-file}."
 
 #. type: item
-#: doc/guix.texi:19691
+#: doc/guix.texi:24154
 #, no-wrap
 msgid "@code{origin} (default: @code{\"\"})"
 msgstr "@code{origin} (par défaut : @code{\"\"})"
 
 #. type: table
-#: doc/guix.texi:19693
+#: doc/guix.texi:24156
 msgid "The name of your zone.  This parameter cannot be empty."
 msgstr "Le nom de votre zone.  Ce paramètre ne peut pas être vide."
 
 #. type: item
-#: doc/guix.texi:19694
+#: doc/guix.texi:24157
 #, no-wrap
 msgid "@code{ns} (default: @code{\"ns\"})"
 msgstr "@code{ns} (par défaut : @code{\"ns\"})"
 
 #. type: table
-#: doc/guix.texi:19699
+#: doc/guix.texi:24162
 msgid "The domain of your primary authoritative DNS server.  The name is relative to the origin, unless it ends with a dot.  It is mandatory that this primary DNS server corresponds to an NS record in the zone and that it is associated to an IP address in the list of entries."
 msgstr "Le domaine de votre serveur DNS primaire faisant autorité.  Le nom est relatif à l'origine, à moins qu'il finisse par un point.  Il est nécessaire que ce serveur DNS primaire corresponde à un enregistrement NS dans la zone et qu'il soit associé à une adresse IP dans la liste des entrées."
 
 #. type: item
-#: doc/guix.texi:19700
+#: doc/guix.texi:24163
 #, no-wrap
 msgid "@code{mail} (default: @code{\"hostmaster\"})"
 msgstr "@code{mail} (par défaut : @code{\"hostmaster\"})"
 
 #. type: table
-#: doc/guix.texi:19703
+#: doc/guix.texi:24166
 msgid "An email address people can contact you at, as the owner of the zone.  This is translated as @code{<mail>@@<origin>}."
 msgstr "Une adresse de courriel pour vous contacter en tant que propriétaire de la zone.  Cela se transforme en @code{<mail>@@<origin>}."
 
 #. type: item
-#: doc/guix.texi:19704
+#: doc/guix.texi:24167
 #, no-wrap
 msgid "@code{serial} (default: @code{1})"
 msgstr "@code{serial} (par défaut : @code{1})"
 
 #. type: table
-#: doc/guix.texi:19708
+#: doc/guix.texi:24171
 msgid "The serial number of the zone.  As this is used to keep track of changes by both slaves and resolvers, it is mandatory that it @emph{never} decreases.  Always increment it when you make a change in your zone."
 msgstr "Le numéro de série de la zone.  Comme c'est utilisé pour vérifier les changements à la fois par les esclaves et par les résolveurs, il est nécessaire qu'il ne décroisse @emph{jamais}.  Incrémentez-le toujours quand vous faites un changement sur votre zone."
 
 #. type: item
-#: doc/guix.texi:19709
+#: doc/guix.texi:24172
 #, no-wrap
 msgid "@code{refresh} (default: @code{(* 2 24 3600)})"
 msgstr "@code{refresh} (par défaut : @code{(* 2 24 3600)})"
 
 #. type: table
-#: doc/guix.texi:19713
+#: doc/guix.texi:24176
 msgid "The frequency at which slaves will do a zone transfer.  This value is a number of seconds.  It can be computed by multiplications or with @code{(string->duration)}."
 msgstr "La fréquence à laquelle les esclaves demanderont un transfert de zone.  Cette valeur est un nombre de secondes.  On peut le calculer avec des multiplications ou avec @code{(string->duration)}."
 
 #. type: item
-#: doc/guix.texi:19714
+#: doc/guix.texi:24177
 #, no-wrap
 msgid "@code{retry} (default: @code{(* 15 60)})"
 msgstr "@code{retry} (par défaut : @code{(* 15 60)})"
 
 #. type: table
-#: doc/guix.texi:19717
+#: doc/guix.texi:24180
 msgid "The period after which a slave will retry to contact its master when it fails to do so a first time."
 msgstr "La période après laquelle un esclave essaiera de contacter son maître lorsqu'il échoue à le faire la première fois."
 
 #. type: item
-#: doc/guix.texi:19718
+#: doc/guix.texi:24181
 #, no-wrap
 msgid "@code{expiry} (default: @code{(* 14 24 3600)})"
 msgstr "@code{expiry} (par défaut : @code{(* 14 24 3600)})"
 
 #. type: table
-#: doc/guix.texi:19722
+#: doc/guix.texi:24185
 msgid "Default TTL of records.  Existing records are considered correct for at most this amount of time.  After this period, resolvers will invalidate their cache and check again that it still exists."
 msgstr "TTL par défaut des enregistrements.  Les enregistrements existants sont considérés corrects pour au moins cette durée.  Après cette période, les résolveurs invalideront leur cache et vérifieront de nouveau qu'ils existent toujours."
 
 #. type: item
-#: doc/guix.texi:19723
+#: doc/guix.texi:24186
 #, no-wrap
 msgid "@code{nx} (default: @code{3600})"
 msgstr "@code{nx} (par défaut : @code{3600})"
 
 #. type: table
-#: doc/guix.texi:19726
+#: doc/guix.texi:24189
 msgid "Default TTL of inexistant records.  This delay is usually short because you want your new domains to reach everyone quickly."
 msgstr "TTL par défaut des enregistrement inexistants.  Ce TTL est habituellement court parce que vous voulez que vous nouveaux domaines soient disponibles pour tout le monde le plus rapidement possible."
 
 #. type: deftp
-#: doc/guix.texi:19730
+#: doc/guix.texi:24193
 #, no-wrap
 msgid "{Data Type} knot-remote-configuration"
 msgstr "{Type de données} knot-remote-configuration"
 
 #. type: deftp
-#: doc/guix.texi:19733
+#: doc/guix.texi:24196
 msgid "Data type representing a remote configuration.  This type has the following parameters:"
 msgstr "Type de données représentant une configuration de serveurs distants.  Ce type a les paramètres suivants :"
 
 #. type: table
-#: doc/guix.texi:19738
+#: doc/guix.texi:24201
 msgid "An identifier for other configuration fields to refer to this remote. IDs must be unique and must not be empty."
 msgstr "Un identifiant pour que les autres champs de configuration se réfèrent à ce serveur distant.  les ID doivent être uniques et non vides."
 
 #. type: table
-#: doc/guix.texi:19743
+#: doc/guix.texi:24206
 msgid "An ordered list of destination IP addresses.  Addresses are tried in sequence.  An optional port can be given with the @@ separator.  For instance: @code{(list \"1.2.3.4\" \"2.3.4.5@@53\")}.  Default port is 53."
 msgstr "Une liste ordonnée d'adresses IP de destination.  Ces adresses sont essayées en séquence.  Un port facultatif peut être donné avec le séparateur @@.  Par exemple @code{(list \"1.2.3.4\" \"2.3.4.5@@53\")}.  Le port par défaut est le 53."
 
 #. type: item
-#: doc/guix.texi:19744
+#: doc/guix.texi:24207
 #, no-wrap
 msgid "@code{via} (default: @code{'()})"
 msgstr "@code{via} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:19748
+#: doc/guix.texi:24211
 msgid "An ordered list of source IP addresses.  An empty list will have Knot choose an appropriate source IP.  An optional port can be given with the @@ separator.  The default is to choose at random."
 msgstr "Une liste ordonnée d'adresses IP sources.  Une liste vide fera choisir une IP source appropriée à Knot.  Un port facultatif peut être donné avec le séparateur @@.  La valeur par défaut est de choisir aléatoirement."
 
 #. type: item
-#: doc/guix.texi:19749
+#: doc/guix.texi:24212
 #, no-wrap
 msgid "@code{key} (default: @code{#f})"
 msgstr "@code{key} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:19752
+#: doc/guix.texi:24215
 msgid "A reference to a key, that is a string containing the identifier of a key defined in a @code{knot-key-configuration} field."
 msgstr "Une référence à une clef, c'est-à-dire une chaîne contenant l'identifiant d'une clef définie dans un champ @code{knot-key-configuration}."
 
 #. type: deftp
-#: doc/guix.texi:19756
+#: doc/guix.texi:24219
 #, no-wrap
 msgid "{Data Type} knot-keystore-configuration"
 msgstr "{Type de données} knot-keystore-configuration"
 
 #. type: deftp
-#: doc/guix.texi:19759
+#: doc/guix.texi:24222
 msgid "Data type representing a keystore to hold dnssec keys.  This type has the following parameters:"
 msgstr "Type de données représentant une base de clefs pour garder les clefs dnssec.  Ce type a les paramètres suivants :"
 
 #. type: table
-#: doc/guix.texi:19763
+#: doc/guix.texi:24226
 msgid "The id of the keystore.  It must not be empty."
 msgstr "L'id de cette base de clefs.  Il ne doit pas être vide."
 
 #. type: item
-#: doc/guix.texi:19764
+#: doc/guix.texi:24227
 #, no-wrap
 msgid "@code{backend} (default: @code{'pem})"
 msgstr "@code{backend} (par défaut : @code{'pem})"
 
 #. type: table
-#: doc/guix.texi:19766
+#: doc/guix.texi:24229
 msgid "The backend to store the keys in.  Can be @code{'pem} or @code{'pkcs11}."
 msgstr "Le moteur de stockage des clefs.  Cela peut être @code{'pem} ou @code{'pkcs11}."
 
 #. type: item
-#: doc/guix.texi:19767
+#: doc/guix.texi:24230
 #, no-wrap
 msgid "@code{config} (default: @code{\"/var/lib/knot/keys/keys\"})"
 msgstr "@code{config} (par défaut : @code{\"/var/lib/knot/keys/keys\"})"
 
 #. type: table
-#: doc/guix.texi:19771
-msgid "The configuration string of the backend.  An example for the PKCS#11 is: @code{\"pkcs11:token=knot;pin-value=1234 /gnu/store/.../lib/pkcs11/libsofthsm2.so\"}.  For the pem backend, the string reprensents a path in the file system."
-msgstr "La chaîne de configuration pour le moteur.  Voici un exemple pour PKCS#11 : @code{\"pkcs11:token=knot;pin-value=1234 /gnu/store/.../lib/pkcs11/libsofthsm2.so\"}.  Pour le moteur pem, la chaîne représente un chemin dans le système de fichiers."
+#: doc/guix.texi:24234
+msgid "The configuration string of the backend.  An example for the PKCS#11 is: @code{\"pkcs11:token=knot;pin-value=1234 /gnu/store/.../lib/pkcs11/libsofthsm2.so\"}.  For the pem backend, the string represents a path in the file system."
+msgstr "La chaine de configuration du moteur.  Voici un exemple pour PKCS#11 : @code{\"pkcs11:token=knot;pin-value=1234 /gnu/store/.../lib/pkcs11/libsofthsm2.so\"}.  Pour le moteur pem, la chaine représente un chemin dans le système de fichiers."
 
 #. type: deftp
-#: doc/guix.texi:19775
+#: doc/guix.texi:24238
 #, no-wrap
 msgid "{Data Type} knot-policy-configuration"
 msgstr "{Type de données} knot-policy-configuration"
 
 #. type: deftp
-#: doc/guix.texi:19779
+#: doc/guix.texi:24242
 msgid "Data type representing a dnssec policy.  Knot DNS is able to automatically sign your zones.  It can either generate and manage your keys automatically or use keys that you generate."
 msgstr "Type de données représentant une politique dnssec.  Knot DNS est capable de signer automatiquement vos zones.  Il peut soit générer et gérer vos clefs automatiquement ou utiliser des clefs que vous générez."
 
 #. type: deftp
-#: doc/guix.texi:19786
+#: doc/guix.texi:24249
 msgid "Dnssec is usually implemented using two keys: a Key Signing Key (KSK) that is used to sign the second, and a Zone Signing Key (ZSK) that is used to sign the zone.  In order to be trusted, the KSK needs to be present in the parent zone (usually a top-level domain).  If your registrar supports dnssec, you will have to send them your KSK's hash so they can add a DS record in their zone.  This is not automated and need to be done each time you change your KSK."
 msgstr "Dnssec est habituellement implémenté avec deux clefs : une KSK (key signing key) qui est utilisé pour signer une seconde, la ZSK (zone signing key) qui est utilisée pour signer la zone.  Pour pouvoir être de confiance, la KSK doit être présente dans la zone parente (normalement un domaine de haut niveau).  Si votre registrar supporte dnssec, vous devrez leur envoyer le hash de votre KSK pour qu'il puisse ajouter un enregistrement DS dans la zone parente.  Ce n'est pas automatique et vous devrez le faire à chaque fois que vous changerez votre KSK."
 
 #. type: deftp
-#: doc/guix.texi:19792
+#: doc/guix.texi:24255
 msgid "The policy also defines the lifetime of keys.  Usually, ZSK can be changed easily and use weaker cryptographic functions (they use lower parameters) in order to sign records quickly, so they are changed often.  The KSK however requires manual interaction with the registrar, so they are changed less often and use stronger parameters because they sign only one record."
 msgstr "La politique définie aussi la durée de vie des clefs.  Habituellement, la ZSK peut être changée facilement et utilise des fonctions cryptographiques plus faibles (avec un paramètre plus faible) pour signer les enregistrements rapidement, donc elles sont changées très régulièrement.  La KSK en revanche requiert une interaction manuelle avec le registrar, donc elle change moins souvent et utilise des paramètres plus robustes puisqu'elle ne signe qu'un seul enregistrement."
 
 #. type: deftp
-#: doc/guix.texi:19794
+#: doc/guix.texi:24257
 msgid "This type has the following parameters:"
 msgstr "Ce type a les paramètres suivants :"
 
 #. type: table
-#: doc/guix.texi:19798
+#: doc/guix.texi:24261
 msgid "The id of the policy.  It must not be empty."
 msgstr "L'id de la politique.  Il ne doit pas être vide."
 
 #. type: item
-#: doc/guix.texi:19799
+#: doc/guix.texi:24262
 #, no-wrap
 msgid "@code{keystore} (default: @code{\"default\"})"
 msgstr "@code{keystore} (par défaut : @code{\"default\"})"
 
 #. type: table
-#: doc/guix.texi:19804
+#: doc/guix.texi:24267
 msgid "A reference to a keystore, that is a string containing the identifier of a keystore defined in a @code{knot-keystore-configuration} field.  The @code{\"default\"} identifier means the default keystore (a kasp database that was setup by this service)."
 msgstr "Une référence à une base de clefs, c'est-à-dire une chaîne contenant l'identifiant d'une base de clefs définie dans un champ @code{knot-keystore-configuration}.  L'identifiant @code{\"default\"} signifie la base par défaut (une base de données kasp initialisée par ce service)."
 
 #. type: item
-#: doc/guix.texi:19805
+#: doc/guix.texi:24268
 #, no-wrap
 msgid "@code{manual?} (default: @code{#f})"
 msgstr "@code{manual?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:19807
+#: doc/guix.texi:24270
 msgid "Whether the key management is manual or automatic."
 msgstr "Indique si la clef est gérée manuellement ou automatiquement."
 
 #. type: item
-#: doc/guix.texi:19808
+#: doc/guix.texi:24271
 #, no-wrap
 msgid "@code{single-type-signing?} (default: @code{#f})"
 msgstr "@code{single-type-signing?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:19810
+#: doc/guix.texi:24273
 msgid "When @code{#t}, use the Single-Type Signing Scheme."
 msgstr "Lorsque la valeur est @code{#t}, utilise le schéma de signature Single-Type."
 
 #. type: item
-#: doc/guix.texi:19811
+#: doc/guix.texi:24274
 #, no-wrap
 msgid "@code{algorithm} (default: @code{\"ecdsap256sha256\"})"
 msgstr "@code{algorithm} (par défaut : @code{\"ecdsap256sha256\"})"
 
 #. type: table
-#: doc/guix.texi:19813
+#: doc/guix.texi:24276
 msgid "An algorithm of signing keys and issued signatures."
 msgstr "Un algorithme de clef de signature et de signatures."
 
 #. type: item
-#: doc/guix.texi:19814
+#: doc/guix.texi:24277
 #, no-wrap
 msgid "@code{ksk-size} (default: @code{256})"
 msgstr "@code{ksk-size} (par défaut : @code{256})"
 
 #. type: table
-#: doc/guix.texi:19817
+#: doc/guix.texi:24280
 msgid "The length of the KSK.  Note that this value is correct for the default algorithm, but would be unsecure for other algorithms."
 msgstr "La longueur de la KSK.  Remarquez que cette valeur est correcte pour l'algorithme par défaut, mais ne serait pas sécurisée pour d'autres algorithmes."
 
 #. type: item
-#: doc/guix.texi:19818
+#: doc/guix.texi:24281
 #, no-wrap
 msgid "@code{zsk-size} (default: @code{256})"
 msgstr "@code{zsk-size} (par défaut : @code{256})"
 
 #. type: table
-#: doc/guix.texi:19821
+#: doc/guix.texi:24284
 msgid "The length of the ZSK.  Note that this value is correct for the default algorithm, but would be unsecure for other algorithms."
 msgstr "La longueur de la ZSK.  Remarquez que cette valeur est correcte pour l'algorithme par défaut, mais ne serait pas sécurisée pour d'autres algorithmes."
 
 #. type: item
-#: doc/guix.texi:19822
+#: doc/guix.texi:24285
 #, no-wrap
 msgid "@code{dnskey-ttl} (default: @code{'default})"
 msgstr "@code{dnskey-ttl} (par défaut : @code{'default})"
 
 #. type: table
-#: doc/guix.texi:19825
+#: doc/guix.texi:24288
 msgid "The TTL value for DNSKEY records added into zone apex.  The special @code{'default} value means same as the zone SOA TTL."
 msgstr "La valeur du TTL pour les enregistrements DNSKEY ajoutés au sommet de la zone.  La valeur spéciale @code{'default} signifie la même valeur que le TTL du SOA de la zone."
 
 #. type: item
-#: doc/guix.texi:19826
+#: doc/guix.texi:24289
 #, no-wrap
 msgid "@code{zsk-lifetime} (default: @code{(* 30 24 3600)})"
 msgstr "@code{zsk-lifetime} (par défaut : @code{(* 30 24 3600)})"
 
 #. type: table
-#: doc/guix.texi:19828
+#: doc/guix.texi:24291
 msgid "The period between ZSK publication and the next rollover initiation."
 msgstr "La période entre la publication d'une ZSK et l'initialisation d'un nouveau changement."
 
 #. type: item
-#: doc/guix.texi:19829
+#: doc/guix.texi:24292
 #, no-wrap
 msgid "@code{propagation-delay} (default: @code{(* 24 3600)})"
 msgstr "@code{propagation-delay} (par défaut : @code{(* 24 3600)})"
 
 #. type: table
-#: doc/guix.texi:19832
+#: doc/guix.texi:24295
 msgid "An extra delay added for each key rollover step.  This value should be high enough to cover propagation of data from the master server to all slaves."
 msgstr "Un délai supplémentaire pour chaque étape du changement.  Cette valeur devrait être assez grande pour couvrir le temps de propagation des données entre le serveur primaire et tous les secondaires."
 
 #. type: item
-#: doc/guix.texi:19833
+#: doc/guix.texi:24296
 #, no-wrap
 msgid "@code{rrsig-lifetime} (default: @code{(* 14 24 3600)})"
 msgstr "@code{rrsig-lifetime} (par défaut : @code{(* 14 24 3600)})"
 
 #. type: table
-#: doc/guix.texi:19835
+#: doc/guix.texi:24298
 msgid "A validity period of newly issued signatures."
 msgstr "Une période de validité des nouvelles signatures."
 
 #. type: item
-#: doc/guix.texi:19836
+#: doc/guix.texi:24299
 #, no-wrap
 msgid "@code{rrsig-refresh} (default: @code{(* 7 24 3600)})"
 msgstr "@code{rrsig-refresh} (par défaut : @code{(* 7 24 3600)})"
 
 #. type: table
-#: doc/guix.texi:19838
+#: doc/guix.texi:24301
 msgid "A period how long before a signature expiration the signature will be refreshed."
 msgstr "Une période qui indique combien de temps avant l'expiration d'une signature elle sera rafraîchie."
 
 #. type: item
-#: doc/guix.texi:19839
+#: doc/guix.texi:24302
 #, no-wrap
 msgid "@code{nsec3?} (default: @code{#f})"
 msgstr "@code{nsec3?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:19841
+#: doc/guix.texi:24304
 msgid "When @code{#t}, NSEC3 will be used instead of NSEC."
 msgstr "Lorsque la valeur est @code{#t}, on utilisera NSEC3 au lien de NSEC."
 
 #. type: item
-#: doc/guix.texi:19842
+#: doc/guix.texi:24305
 #, no-wrap
 msgid "@code{nsec3-iterations} (default: @code{5})"
 msgstr "@code{nsec3-iterations} (par défaut : @code{5})"
 
 #. type: table
-#: doc/guix.texi:19844
+#: doc/guix.texi:24307
 msgid "The number of additional times the hashing is performed."
 msgstr "Le nombre de fois supplémentaires que le hash est effectué."
 
 #. type: item
-#: doc/guix.texi:19845
+#: doc/guix.texi:24308
 #, no-wrap
 msgid "@code{nsec3-salt-length} (default: @code{8})"
 msgstr "@code{nsec3-salt-length} (par défaut : @code{8})"
 
 #. type: table
-#: doc/guix.texi:19848
+#: doc/guix.texi:24311
 msgid "The length of a salt field in octets, which is appended to the original owner name before hashing."
 msgstr "La longueur du champ de sel en octets, ajouté au nom du propriétaire avant de hasher."
 
 #. type: item
-#: doc/guix.texi:19849
+#: doc/guix.texi:24312
 #, no-wrap
 msgid "@code{nsec3-salt-lifetime} (default: @code{(* 30 24 3600)})"
 msgstr "@code{nsec3-salt-lifetime} (par défaut : @code{(* 30 24 3600)})"
 
 #. type: table
-#: doc/guix.texi:19851
+#: doc/guix.texi:24314
 msgid "The validity period of newly issued salt field."
 msgstr "La période de validité des nouveaux champs sel."
 
 #. type: deftp
-#: doc/guix.texi:19855
+#: doc/guix.texi:24318
 #, no-wrap
 msgid "{Data Type} knot-zone-configuration"
 msgstr "{Type de données} knot-zone-configuration"
 
 #. type: deftp
-#: doc/guix.texi:19858
+#: doc/guix.texi:24321
 msgid "Data type representing a zone served by Knot.  This type has the following parameters:"
 msgstr "Type de données représentant la zone servie par Knot.  ce type a les paramètres suivants :"
 
 #. type: item
-#: doc/guix.texi:19860
+#: doc/guix.texi:24323
 #, no-wrap
 msgid "@code{domain} (default: @code{\"\"})"
 msgstr "@code{domain} (par défaut : @code{\"\"})"
 
 #. type: table
-#: doc/guix.texi:19862
+#: doc/guix.texi:24325
 msgid "The domain served by this configuration.  It must not be empty."
 msgstr "Le domaine servi par cette configuration.  Il ne doit pas être vide."
 
 #. type: item
-#: doc/guix.texi:19863
+#: doc/guix.texi:24326
 #, no-wrap
 msgid "@code{file} (default: @code{\"\"})"
 msgstr "@code{file} (par défaut : @code{\"\"})"
 
 #. type: table
-#: doc/guix.texi:19866
+#: doc/guix.texi:24329
 msgid "The file where this zone is saved.  This parameter is ignored by master zones.  Empty means default location that depends on the domain name."
 msgstr "Le fichier où la zone est sauvegardée.  Ce paramètre est ignoré pour les zones maîtres.  La valeur vide signifie l'emplacement par défaut qui dépend du nom de domaine."
 
 #. type: item
-#: doc/guix.texi:19867
+#: doc/guix.texi:24330
 #, no-wrap
 msgid "@code{zone} (default: @code{(zone-file)})"
 msgstr "@code{zone} (par défaut : @code{(zone-file)})"
 
 #. type: table
-#: doc/guix.texi:19870
+#: doc/guix.texi:24333
 msgid "The content of the zone file.  This parameter is ignored by slave zones.  It must contain a zone-file record."
 msgstr "Le contenu du fichier de zone.  Ce paramètre est ignoré par les zones esclaves.  Il doit contenir un enregistrement zone-file."
 
 #. type: item
-#: doc/guix.texi:19871
+#: doc/guix.texi:24334
 #, no-wrap
 msgid "@code{master} (default: @code{'()})"
 msgstr "@code{master} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:19874
+#: doc/guix.texi:24337
 msgid "A list of master remotes.  When empty, this zone is a master.  When set, this zone is a slave.  This is a list of remotes identifiers."
 msgstr "Une liste des serveurs distants maîtres.  Lorsque la liste est vide, cette zone est un maître.  Lorsque la valeur est indiquée, cette zone est un esclave.  C'est al liste des identifiants des serveurs distants."
 
 #. type: item
-#: doc/guix.texi:19875
+#: doc/guix.texi:24338
 #, no-wrap
 msgid "@code{ddns-master} (default: @code{#f})"
 msgstr "@code{ddns-master} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:19878
+#: doc/guix.texi:24341
 msgid "The main master.  When empty, it defaults to the first master in the list of masters."
 msgstr "Le maître principal.  Lorsque la valeur est vide, la valeur par défaut est le premier maître de la liste des maîtres."
 
 #. type: item
-#: doc/guix.texi:19879
+#: doc/guix.texi:24342
 #, no-wrap
 msgid "@code{notify} (default: @code{'()})"
 msgstr "@code{notify} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:19881
+#: doc/guix.texi:24344
 msgid "A list of slave remote identifiers."
 msgstr "Une liste d'identifiants de groupe de serveurs esclaves."
 
 #. type: item
-#: doc/guix.texi:19882
+#: doc/guix.texi:24345
 #, no-wrap
 msgid "@code{acl} (default: @code{'()})"
 msgstr "@code{acl} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:19884
+#: doc/guix.texi:24347
 msgid "A list of acl identifiers."
 msgstr "Une liste d'identifiants d'ACL."
 
 #. type: item
-#: doc/guix.texi:19885
+#: doc/guix.texi:24348
 #, no-wrap
 msgid "@code{semantic-checks?} (default: @code{#f})"
 msgstr "@code{semantic-checks?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:19887
+#: doc/guix.texi:24350
 msgid "When set, this adds more semantic checks to the zone."
 msgstr "Lorsque la valeur est indiquée, cela ajoute plus de vérifications sémantiques à la zone."
 
 #. type: item
-#: doc/guix.texi:19888
+#: doc/guix.texi:24351
 #, no-wrap
 msgid "@code{disable-any?} (default: @code{#f})"
 msgstr "@code{disable-any?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:19890
+#: doc/guix.texi:24353
 msgid "When set, this forbids queries of the ANY type."
 msgstr "Lorsque la valeur est vraie, cela interdit les requêtes de type ANY."
 
 #. type: item
-#: doc/guix.texi:19891
+#: doc/guix.texi:24354
 #, no-wrap
 msgid "@code{zonefile-sync} (default: @code{0})"
 msgstr "@code{zonefile-sync} (par défaut : @code{0})"
 
 #. type: table
-#: doc/guix.texi:19894
+#: doc/guix.texi:24357
 msgid "The delay between a modification in memory and on disk.  0 means immediate synchronization."
 msgstr "Le délai entre une modification en mémoire et sur le disque.  0 signifie une synchronisation immédiate."
 
 #. type: item
-#: doc/guix.texi:19895
+#: doc/guix.texi:24358
 #, no-wrap
 msgid "@code{zonefile-load} (default: @code{#f})"
 msgstr "@code{zonefile-load} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:19898
+#: doc/guix.texi:24361
 msgid "The way the zone file contents are applied during zone load.  Possible values are:"
 msgstr "La manière dont le contenu du fichier de zone influe sur le chargement de la zone.  Les valeurs possibles sont :"
 
 #. type: item
-#: doc/guix.texi:19900
+#: doc/guix.texi:24363
 #, no-wrap
 msgid "@code{#f} for using the default value from Knot,"
 msgstr "@code{#f} pour utilise la valeur par défaut de Knot,"
 
 #. type: item
-#: doc/guix.texi:19901
+#: doc/guix.texi:24364
 #, no-wrap
 msgid "@code{'none} for not using the zone file at all,"
 msgstr "@code{'none} pour ne pas utiliser le fichier de zone du tout,"
 
 #. type: item
-#: doc/guix.texi:19902
+#: doc/guix.texi:24365
 #, no-wrap
 msgid "@code{'difference} for computing the difference between already available"
 msgstr "@code{'difference} pour calculer les différences entre le contenu déjà disponible"
 
 #. type: itemize
-#: doc/guix.texi:19904
+#: doc/guix.texi:24367
 msgid "contents and zone contents and applying it to the current zone contents,"
 msgstr "et le contenu du fichier de zone et les appliquer au contenu actuel de la zone,"
 
 #. type: item
-#: doc/guix.texi:19904
+#: doc/guix.texi:24367
 #, no-wrap
 msgid "@code{'difference-no-serial} for the same as @code{'difference}, but"
 msgstr "@code{'difference-no-serial} pour la même chose que @code{'difference}, mais"
 
 #. type: itemize
-#: doc/guix.texi:19907
+#: doc/guix.texi:24370
 msgid "ignoring the SOA serial in the zone file, while the server takes care of it automatically."
 msgstr "en ignorant le serial du SOA du fichier de zone, pour que le serveur s'en charge automatiquement."
 
 #. type: item
-#: doc/guix.texi:19907
+#: doc/guix.texi:24370
 #, no-wrap
 msgid "@code{'whole} for loading zone contents from the zone file."
 msgstr "@code{'whole} pour charger le contenu de la zone depuis le fichier de zone."
 
 #. type: item
-#: doc/guix.texi:19910
+#: doc/guix.texi:24373
 #, no-wrap
 msgid "@code{journal-content} (default: @code{#f})"
 msgstr "@code{journal-content} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:19915
+#: doc/guix.texi:24378
 msgid "The way the journal is used to store zone and its changes.  Possible values are @code{'none} to not use it at all, @code{'changes} to store changes and @code{'all} to store contents.  @code{#f} does not set this option, so the default value from Knot is used."
 msgstr "La manière dont le journal est utilisé pour stocker la zone et ses changements.  Les valeurs possibles sont @code{'none} pour ne pas l'utiliser du tout, @code{'changes} pour stocker les changements et @code{'all} pour stocker le contenu.  @code{#f} ne met pas en place cette option et la valeur par défaut de Knot est utilisée."
 
 #. type: item
-#: doc/guix.texi:19916
+#: doc/guix.texi:24379
 #, no-wrap
 msgid "@code{max-journal-usage} (default: @code{#f})"
 msgstr "@code{max-journal-usage} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:19919
+#: doc/guix.texi:24382
 msgid "The maximum size for the journal on disk.  @code{#f} does not set this option, so the default value from Knot is used."
 msgstr "La taille maximale du journal sur le disque.  @code{#f} ne met pas en place cette option et la valeur par défaut de Knot est utilisée."
 
 #. type: item
-#: doc/guix.texi:19920
+#: doc/guix.texi:24383
 #, no-wrap
 msgid "@code{max-journal-depth} (default: @code{#f})"
 msgstr "@code{max-journal-depth} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:19923
+#: doc/guix.texi:24386
 msgid "The maximum size of the history.  @code{#f} does not set this option, so the default value from Knot is used."
 msgstr "La taille maximale de l'historique.  @code{#f} ne met pas en place cette option et la valeur par défaut de Knot est utilisée."
 
 #. type: item
-#: doc/guix.texi:19924
+#: doc/guix.texi:24387
 #, no-wrap
 msgid "@code{max-zone-size} (default: @code{#f})"
 msgstr "@code{max-zone-size} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:19928
+#: doc/guix.texi:24391
 msgid "The maximum size of the zone file.  This limit is enforced for incoming transfer and updates.  @code{#f} does not set this option, so the default value from Knot is used."
 msgstr "La taille maximale du fichier de zone.  Cette limite est prise en charge pour les transferts entrants et les mises à jour.  @code{#f} ne met pas en place cette option et la valeur par défaut de Knot est utilisée."
 
 #. type: item
-#: doc/guix.texi:19929
+#: doc/guix.texi:24392
 #, no-wrap
 msgid "@code{dnssec-policy} (default: @code{#f})"
 msgstr "@code{dnssec-policy} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:19933
+#: doc/guix.texi:24396
 msgid "A reference to a @code{knot-policy-configuration} record, or the special name @code{\"default\"}.  If the value is @code{#f}, there is no dnssec signing on this zone."
 msgstr "Une référence à un enregistrement @code{knot-policy-configuration}, ou le nom spécial @code{\"default\"}.  Si la valeur est @code{#f}, cette zone n'est pas signée."
 
 #. type: item
-#: doc/guix.texi:19934
+#: doc/guix.texi:24397
 #, no-wrap
 msgid "@code{serial-policy} (default: @code{'increment})"
 msgstr "@code{serial-policy} (par défaut : @code{'increment})"
 
 #. type: table
-#: doc/guix.texi:19936
+#: doc/guix.texi:24399
 msgid "A policy between @code{'increment} and @code{'unixtime}."
 msgstr "Une politique entre @code{'increment} et @code{'unixtime}."
 
 #. type: deftp
-#: doc/guix.texi:19940
+#: doc/guix.texi:24403
 #, no-wrap
 msgid "{Data Type} knot-configuration"
 msgstr "{Type de données} knot-configuration"
 
 #. type: deftp
-#: doc/guix.texi:19943
+#: doc/guix.texi:24406
 msgid "Data type representing the Knot configuration.  This type has the following parameters:"
 msgstr "Type de données représentant la configuration de Knot.  Ce type a les paramètres suivants :"
 
 #. type: item
-#: doc/guix.texi:19945
+#: doc/guix.texi:24408
 #, no-wrap
 msgid "@code{knot} (default: @code{knot})"
 msgstr "@code{knot} (par défaut : @code{knot})"
 
 #. type: table
-#: doc/guix.texi:19947
+#: doc/guix.texi:24410
 msgid "The Knot package."
 msgstr "Le paquet Knot."
 
 #. type: item
-#: doc/guix.texi:19948
+#: doc/guix.texi:24411
 #, no-wrap
 msgid "@code{run-directory} (default: @code{\"/var/run/knot\"})"
 msgstr "@code{run-directory} (par défaut : @code{\"/var/run/knot\"})"
 
 #. type: table
-#: doc/guix.texi:19950
+#: doc/guix.texi:24413
 msgid "The run directory.  This directory will be used for pid file and sockets."
 msgstr "Le répertoire de travail.  Ce répertoire sera utilisé pour le fichier pid et les sockets."
 
 #. type: item
-#: doc/guix.texi:19951
+#: doc/guix.texi:24414
 #, no-wrap
 msgid "@code{includes} (default: @code{'()})"
 msgstr "@code{includes} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:19954
+#: doc/guix.texi:24417
 msgid "A list of strings or file-like objects denoting other files that must be included at the top of the configuration file."
 msgstr "Une liste plate de chaînes ou d'objets simili-fichiers qui seront inclus en haut du fichier de configuration."
 
 #. type: cindex
-#: doc/guix.texi:19955
+#: doc/guix.texi:24418
 #, no-wrap
 msgid "secrets, Knot service"
 msgstr "secrets, service Knot"
 
 #. type: table
-#: doc/guix.texi:19961
+#: doc/guix.texi:24424
 msgid "This can be used to manage secrets out-of-band.  For example, secret keys may be stored in an out-of-band file not managed by Guix, and thus not visible in @file{/gnu/store}---e.g., you could store secret key configuration in @file{/etc/knot/secrets.conf} and add this file to the @code{includes} list."
 msgstr "Cela peut être utile pour gérer des secrets hors-bande.  Par exemple, on peut stocker des clefs secrètes dans un fichier hors-bande qui n'est pas géré par Guix, et donc pas visible dans @file{/gnu/store} — p.@: ex.@: vous pouvez stocker la configuration des clefs secrètes dans @file{/etc/knot/secrets.conf} et ajouter ce fichier à la lite @code{includes}."
 
 #. type: table
-#: doc/guix.texi:19963
+#: doc/guix.texi:24429
+msgid "One can generate a secret tsig key (for nsupdate and zone transfers with the keymgr command from the knot package.  Note that the package is not automatically installed by the service.  The following example shows how to generate a new tsig key:"
+msgstr "On peut générer une clé secrète tsig (pour nsupdate et les transferts de zones) avec la commande keymgr du paquet knot.  Remarquez que le paquet n'est pas automatiquement installé par le service.  L'exemple suivant montre comment générer une nouvelle clé tsig :"
+
+#. type: example
+#: doc/guix.texi:24433
+#, no-wrap
+msgid ""
+"keymgr -t mysecret > /etc/knot/secrets.conf\n"
+"chmod 600 /etc/knot/secrets.conf\n"
+msgstr ""
+"keymgr -t mysecret > /etc/knot/secrets.conf\n"
+"chmod 600 /etc/knot/secrets.conf\n"
+
+#. type: table
+#: doc/guix.texi:24439
+msgid "Also note that the generated key will be named @var{mysecret}, so it is the name that needs to be used in the @var{key} field of the @code{knot-acl-configuration} record and in other places that need to refer to that key."
+msgstr "Remarquez aussi que la clé générée sera nommée @var{mysecret}, donc c'est le nom qui est requis dans le champ @var{key} de l'enregistrement @code{knot-acl-configuration} et aux autres endroits qui se réfèrent à cette clé."
+
+#. type: table
+#: doc/guix.texi:24441
 msgid "It can also be used to add configuration not supported by this interface."
 msgstr "Cela peut aussi être utilisé pour ajouter des configurations qui ne sont pas prises en charge par cette interface."
 
 #. type: item
-#: doc/guix.texi:19964
+#: doc/guix.texi:24442
 #, no-wrap
 msgid "@code{listen-v4} (default: @code{\"0.0.0.0\"})"
 msgstr "@code{listen-v4} (par défaut : @code{\"0.0.0.0\"})"
 
 #. type: table
-#: doc/guix.texi:19966 doc/guix.texi:19969
+#: doc/guix.texi:24444 doc/guix.texi:24447
 msgid "An ip address on which to listen."
 msgstr "Une adresse IP sur laquelle écouter."
 
 #. type: item
-#: doc/guix.texi:19967
+#: doc/guix.texi:24445
 #, no-wrap
 msgid "@code{listen-v6} (default: @code{\"::\"})"
 msgstr "@code{listen-v6} (par défaut : @code{\"::\"})"
 
 #. type: item
-#: doc/guix.texi:19970
+#: doc/guix.texi:24448
 #, no-wrap
 msgid "@code{listen-port} (default: @code{53})"
 msgstr "@code{listen-port} (par défaut : @code{53})"
 
 #. type: table
-#: doc/guix.texi:19972
+#: doc/guix.texi:24450
 msgid "A port on which to listen."
 msgstr "Un port sur lequel écouter."
 
 #. type: item
-#: doc/guix.texi:19973
+#: doc/guix.texi:24451
 #, no-wrap
 msgid "@code{keys} (default: @code{'()})"
 msgstr "@code{keys} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:19975
+#: doc/guix.texi:24453
 msgid "The list of knot-key-configuration used by this configuration."
 msgstr "La liste des knot-key-configuration utilisés par cette configuration."
 
 #. type: item
-#: doc/guix.texi:19976
+#: doc/guix.texi:24454
 #, no-wrap
 msgid "@code{acls} (default: @code{'()})"
 msgstr "@code{acls} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:19978
+#: doc/guix.texi:24456
 msgid "The list of knot-acl-configuration used by this configuration."
 msgstr "La liste des knot-acl-configuration utilisés par cette configuration."
 
 #. type: item
-#: doc/guix.texi:19979
+#: doc/guix.texi:24457
 #, no-wrap
 msgid "@code{remotes} (default: @code{'()})"
 msgstr "@code{remotes} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:19981
+#: doc/guix.texi:24459
 msgid "The list of knot-remote-configuration used by this configuration."
 msgstr "La liste des knot-remote-configuration utilisés par cette configuration."
 
 #. type: item
-#: doc/guix.texi:19982
+#: doc/guix.texi:24460
 #, no-wrap
 msgid "@code{zones} (default: @code{'()})"
 msgstr "@code{zones} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:19984
+#: doc/guix.texi:24462
 msgid "The list of knot-zone-configuration used by this configuration."
 msgstr "La liste des knot-zone-configuration utilisés par cette configuration."
 
 #. type: subsubheading
-#: doc/guix.texi:19988
+#: doc/guix.texi:24466
+#, no-wrap
+msgid "Knot Resolver Service"
+msgstr "Service de résolveur Knot"
+
+#. type: deffn
+#: doc/guix.texi:24468
+#, no-wrap
+msgid "{Scheme Variable} knot-resolver-service-type"
+msgstr "{Variable Scheme} knot-resolver-service-type"
+
+#. type: deffn
+#: doc/guix.texi:24471
+msgid "This is the type of the knot resolver service, whose value should be an @code{knot-resolver-configuration} object as in this example:"
+msgstr "C'est le type du service de résolution de knot, dont la valeur devrait être un objet @code{knot-resolver-configuration} comme dans cet exemple :"
+
+#. type: lisp
+#: doc/guix.texi:24481
+#, no-wrap
+msgid ""
+"(service knot-resolver-service-type\n"
+"         (knot-resolver-configuration\n"
+"           (kresd-config-file (plain-file \"kresd.conf\" \"\n"
+"net.listen('192.168.0.1', 5353)\n"
+"user('knot-resolver', 'knot-resolver')\n"
+"modules = @{ 'hints > iterate', 'stats', 'predict' @}\n"
+"cache.size = 100 * MB\n"
+"\"))))\n"
+msgstr ""
+"(service knot-resolver-service-type\n"
+"         (knot-resolver-configuration\n"
+"           (kresd-config-file (plain-file \"kresd.conf\" \"\n"
+"net.listen('192.168.0.1', 5353)\n"
+"user('knot-resolver', 'knot-resolver')\n"
+"modules = @{ 'hints > iterate', 'stats', 'predict' @}\n"
+"cache.size = 100 * MB\n"
+"\"))))\n"
+
+#. type: deffn
+#: doc/guix.texi:24484
+msgid "For more information, refer its @url{https://knot-resolver.readthedocs.org/en/stable/daemon.html#configuration, manual}."
+msgstr "Pour plus d'information, regardez @url{https://knot-resolver.readthedocs.org/en/stable/daemon.html#configuration, manual}."
+
+#. type: deftp
+#: doc/guix.texi:24486
+#, no-wrap
+msgid "{Data Type} knot-resolver-configuration"
+msgstr "{Type de données} knot-resolver-configuration"
+
+#. type: deftp
+#: doc/guix.texi:24488
+msgid "Data type representing the configuration of knot-resolver."
+msgstr "Type de données représentant la configuration de knot-resolver."
+
+#. type: item
+#: doc/guix.texi:24490
+#, no-wrap
+msgid "@code{package} (default: @var{knot-resolver})"
+msgstr "@code{package} (par défaut : @var{knot-resolver})"
+
+#. type: table
+#: doc/guix.texi:24492
+msgid "Package object of the knot DNS resolver."
+msgstr "Objet de paquet du résolveur DNS knot."
+
+#. type: item
+#: doc/guix.texi:24493
+#, no-wrap
+msgid "@code{kresd-config-file} (default: %kresd.conf)"
+msgstr "@code{kresd-config-file} (par défaut : %kresd.conf)"
+
+#. type: table
+#: doc/guix.texi:24496
+msgid "File-like object of the kresd configuration file to use, by default it will listen on @code{127.0.0.1} and @code{::1}."
+msgstr "Objet simili-fichier du fichier de configuration de kresd à utiliser.  Par défaut il écoutera sur @code{127.0.0.1} et @code{::1}"
+
+#. type: item
+#: doc/guix.texi:24497
+#, no-wrap
+msgid "@code{garbage-collection-interval} (default: 1000)"
+msgstr "@code{garbage-collection-interval} (par défaut : 1000)"
+
+#. type: table
+#: doc/guix.texi:24499
+msgid "Number of milliseconds for @code{kres-cache-gc} to periodically trim the cache."
+msgstr "Nombre de millisecondes correspondant à la périodicité avec laquelle @code{kres-cache-gc} nettoie le cache."
+
+#. type: subsubheading
+#: doc/guix.texi:24504
 #, no-wrap
 msgid "Dnsmasq Service"
 msgstr "Services Dnsmasq"
 
 #. type: deffn
-#: doc/guix.texi:19990
+#: doc/guix.texi:24506
 #, no-wrap
 msgid "{Scheme Variable} dnsmasq-service-type"
 msgstr "{Variable Scheme} dnsmasq-service-type"
 
 #. type: deffn
-#: doc/guix.texi:19993
+#: doc/guix.texi:24509
 msgid "This is the type of the dnsmasq service, whose value should be an @code{dnsmasq-configuration} object as in this example:"
 msgstr "C'est le type du service dnsmasq, dont la valeur devrait être un objet @code{dnsmasq-configuration} comme dans cet exemple :"
 
-#. type: example
-#: doc/guix.texi:19999
+#. type: lisp
+#: doc/guix.texi:24515
 #, no-wrap
 msgid ""
 "(service dnsmasq-service-type\n"
@@ -37821,1158 +46132,1563 @@ msgstr ""
 "           (servers '(\"192.168.1.1\"))))\n"
 
 #. type: deftp
-#: doc/guix.texi:20002
+#: doc/guix.texi:24518
 #, no-wrap
 msgid "{Data Type} dnsmasq-configuration"
 msgstr "{Type de données} dnsmasq-configuration"
 
 #. type: deftp
-#: doc/guix.texi:20004
+#: doc/guix.texi:24520
 msgid "Data type representing the configuration of dnsmasq."
 msgstr "Type de données qui représente la configuration de dnsmasq."
 
 #. type: item
-#: doc/guix.texi:20006
+#: doc/guix.texi:24522
 #, no-wrap
 msgid "@code{package} (default: @var{dnsmasq})"
 msgstr "@code{package} (par défaut : @var{dnsmasq})"
 
 #. type: table
-#: doc/guix.texi:20008
+#: doc/guix.texi:24524
 msgid "Package object of the dnsmasq server."
 msgstr "L'objet de paquet du serveur dnsmasq."
 
 #. type: item
-#: doc/guix.texi:20009
+#: doc/guix.texi:24525
 #, no-wrap
 msgid "@code{no-hosts?} (default: @code{#f})"
 msgstr "@code{no-hosts?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:20011
+#: doc/guix.texi:24527
 msgid "When true, don't read the hostnames in /etc/hosts."
 msgstr "Lorsque la valeur est vraie, ne pas lire les noms d'hôte dans /etc/hosts."
 
 #. type: item
-#: doc/guix.texi:20012
+#: doc/guix.texi:24528
 #, no-wrap
 msgid "@code{port} (default: @code{53})"
 msgstr "@code{port} (par défaut : @code{53})"
 
 #. type: table
-#: doc/guix.texi:20015
+#: doc/guix.texi:24531
 msgid "The port to listen on.  Setting this to zero completely disables DNS responses, leaving only DHCP and/or TFTP functions."
 msgstr "Le port sur lequel écouter.  Le mettre à zéro désactive complètement les réponses DNS, ce qui ne laisse que les fonctions DHCP et TFTP."
 
 #. type: item
-#: doc/guix.texi:20016
+#: doc/guix.texi:24532
 #, no-wrap
 msgid "@code{local-service?} (default: @code{#t})"
 msgstr "@code{local-service?} (par défaut : @code{#t})"
 
 #. type: table
-#: doc/guix.texi:20019
+#: doc/guix.texi:24535
 msgid "Accept DNS queries only from hosts whose address is on a local subnet, ie a subnet for which an interface exists on the server."
 msgstr "Accepte les requêtes DNS seulement des hôtes dont les adresses sont sur le sous-réseau local, c.-à-d.@: sur un sous-réseau pour lequel une interface existe sur le serveur."
 
 #. type: item
-#: doc/guix.texi:20020
+#: doc/guix.texi:24536
 #, no-wrap
 msgid "@code{listen-addresses} (default: @code{'()})"
 msgstr "@code{listen-addresses} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:20022
+#: doc/guix.texi:24538
 msgid "Listen on the given IP addresses."
 msgstr "Écoute sur le adresses IP données."
 
 #. type: item
-#: doc/guix.texi:20023
+#: doc/guix.texi:24539
 #, no-wrap
 msgid "@code{resolv-file} (default: @code{\"/etc/resolv.conf\"})"
 msgstr "@code{resolv-file} (par défaut : @code{\"/etc/resolv.conf\"})"
 
 #. type: table
-#: doc/guix.texi:20025
+#: doc/guix.texi:24541
 msgid "The file to read the IP address of the upstream nameservers from."
 msgstr "Le fichier où lire l'adresse IP des serveurs de noms en amont."
 
 #. type: item
-#: doc/guix.texi:20026
+#: doc/guix.texi:24542
 #, no-wrap
 msgid "@code{no-resolv?} (default: @code{#f})"
 msgstr "@code{no-resolv?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:20028
+#: doc/guix.texi:24544
 msgid "When true, don't read @var{resolv-file}."
 msgstr "Lorsque la valeur est vraie, ne pas lire @var{resolv-file}."
 
+#. type: item
+#: doc/guix.texi:24545
+#, no-wrap
+msgid "@code{servers} (default: @code{'()})"
+msgstr "@code{servers} (par défaut : @code{'()})"
+
 #. type: table
-#: doc/guix.texi:20031
+#: doc/guix.texi:24547
 msgid "Specify IP address of upstream servers directly."
 msgstr "Spécifiez l'adresse IP des serveurs en amont directement."
 
 #. type: item
-#: doc/guix.texi:20032
+#: doc/guix.texi:24548
+#, no-wrap
+msgid "@code{addresses} (default: @code{'()})"
+msgstr "@code{addresses} (par défaut : @code{'()})"
+
+#. type: table
+#: doc/guix.texi:24552
+msgid "For each entry, specify an IP address to return for any host in the given domains.  Queries in the domains are never forwarded and always replied to with the specified IP address."
+msgstr "Pour chaque entrée, spécifie une adresse IP à renvoyer pour les hôtes des domaines donnés.  Les requêtes dans les domaines ne sont jamais envoyés et la réponse sera toujours l'adresse IP spécifiée."
+
+#. type: table
+#: doc/guix.texi:24554
+msgid "This is useful for redirecting hosts locally, for example:"
+msgstr "C'est utile pour rediriger des hôtes localement, comme dans cet exemple :"
+
+#. type: lisp
+#: doc/guix.texi:24563
+#, no-wrap
+msgid ""
+"(service dnsmasq-service-type\n"
+"         (dnsmasq-configuration\n"
+"           (addresses\n"
+"             '(; Redirect to a local web-server.\n"
+"               \"/example.org/127.0.0.1\"\n"
+"               ; Redirect subdomain to a specific IP.\n"
+"               \"/subdomain.example.org/192.168.1.42\"))))\n"
+msgstr ""
+"(service dnsmasq-service-type\n"
+"         (dnsmasq-configuration\n"
+"           (addresses\n"
+"             '(; Redirige vers un serveur web local.\n"
+"               \"/example.org/127.0.0.1\"\n"
+"               ; Redirige un sous-domaine vers une adresse IP spécifique.\n"
+"               \"/subdomain.example.org/192.168.1.42\"))))\n"
+
+#. type: table
+#: doc/guix.texi:24566
+msgid "Note that rules in @file{/etc/hosts} take precedence over this."
+msgstr "Remarquez que les règles dans @file{/etc/hosts} prennent le pas sur celles-ci."
+
+#. type: item
+#: doc/guix.texi:24567
 #, no-wrap
 msgid "@code{cache-size} (default: @code{150})"
 msgstr "@code{cache-size} (par défaut : @code{150})"
 
 #. type: table
-#: doc/guix.texi:20035
+#: doc/guix.texi:24570
 msgid "Set the size of dnsmasq's cache.  Setting the cache size to zero disables caching."
 msgstr "Indique la taille du cache de dnsmasq.  Indiquer 0 désactive le cache."
 
 #. type: item
-#: doc/guix.texi:20036
+#: doc/guix.texi:24571
 #, no-wrap
 msgid "@code{negative-cache?} (default: @code{#t})"
 msgstr "@code{negative-cache?} (par défaut : @code{#t})"
 
 #. type: table
-#: doc/guix.texi:20038
+#: doc/guix.texi:24573
 msgid "When false, disable negative caching."
 msgstr "Lorsque la valeur est fausse, désactive le cache des réponses négatives."
 
+#. type: item
+#: doc/guix.texi:24574
+#, no-wrap
+msgid "@code{tftp-enable?} (default: @code{#f})"
+msgstr "@code{tftp-enable?} (par défaut : @code{#f})"
+
+#. type: table
+#: doc/guix.texi:24576
+msgid "Whether to enable the built-in TFTP server."
+msgstr "Indique s'il faut activer le serveur TFTP inclus."
+
+#. type: item
+#: doc/guix.texi:24577
+#, no-wrap
+msgid "@code{tftp-no-fail?} (default: @code{#f})"
+msgstr "@code{tftp-no-fail?} (par défaut : @code{#f})"
+
+#. type: table
+#: doc/guix.texi:24579
+msgid "If true, does not fail dnsmasq if the TFTP server could not start up."
+msgstr "Si la valeur est vraie, dnsmasq n'échoue pas si le serveur TFTP ne peut pas démarrer."
+
+#. type: item
+#: doc/guix.texi:24580
+#, no-wrap
+msgid "@code{tftp-single-port?} (default: @code{#f})"
+msgstr "@code{tftp-single-port?} (par défaut : @code{#f})"
+
+#. type: table
+#: doc/guix.texi:24582
+msgid "Whether to use only one single port for TFTP."
+msgstr "Indique s'il faut utiliser un seul port pour TFTP."
+
+#. type: item
+#: doc/guix.texi:24583
+#, no-wrap
+msgid "@code{tftp-secure?} (default: @code{#f})"
+msgstr "@code{tftp-secure?} (par défaut: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:24585
+msgid "If true, only files owned by the user running the dnsmasq process are accessible."
+msgstr "Si la valeur est vraie, seuls les fichiers appartenant à l'utilisateur sous lequel tourne dnsmasq sont accessibles."
+
+#. type: table
+#: doc/guix.texi:24589
+msgid "If dnsmasq is being run as root, different rules apply: @code{tftp-secure?} has no effect, but only files which have the world-readable bit set are accessible."
+msgstr "Si dnsmasq est lancé en root, des règles différentes s'appliquent : @code{tft-secure?} n'a pas d'effet, mais seuls les fichiers qui ont le bit de lecture pour tout le monde sont accessibles."
+
+#. type: item
+#: doc/guix.texi:24590
+#, no-wrap
+msgid "@code{tftp-max} (default: @code{#f})"
+msgstr "@code{tftp-max} (par défaut : @code{#f})"
+
+#. type: table
+#: doc/guix.texi:24592
+msgid "If set, sets the maximal number of concurrent connections allowed."
+msgstr "Si une valeur est indiquée, indique le nombre maximal de connexions permises en parallèle."
+
+#. type: item
+#: doc/guix.texi:24593
+#, no-wrap
+msgid "@code{tftp-mtu} (default: @code{#f})"
+msgstr "@code{tftp-mtu} (par défaut : @code{#f})"
+
+#. type: table
+#: doc/guix.texi:24595
+msgid "If set, sets the MTU for TFTP packets to that value."
+msgstr "Si une valeur est indiquée, indique le MTU pour les paquets TFTP."
+
+#. type: item
+#: doc/guix.texi:24596
+#, no-wrap
+msgid "@code{tftp-no-blocksize?} (default: @code{#f})"
+msgstr "@code{tftp-no-blocksize?} (par défaut : @code{#f})"
+
+#. type: table
+#: doc/guix.texi:24598
+msgid "If true, stops the TFTP server from negotiating the blocksize with a client."
+msgstr "Si la valeur est vraie, empêche que le serveur TFTP ne négocie la taille de bloc avec un client."
+
+#. type: item
+#: doc/guix.texi:24599
+#, no-wrap
+msgid "@code{tftp-lowercase?} (default: @code{#f})"
+msgstr "@code{tftp-lowercase?} (par défaut : @code{#f})"
+
+#. type: table
+#: doc/guix.texi:24601
+msgid "Whether to convert all filenames in TFTP requests to lowercase."
+msgstr "Indique s'il faut convertir tous les noms de fichiers dans les requêtes TFTP en minuscule."
+
+#. type: item
+#: doc/guix.texi:24602
+#, no-wrap
+msgid "@code{tftp-port-range} (default: @code{#f})"
+msgstr "@code{tftp-port-range} (par défaut : @code{#f})"
+
+#. type: table
+#: doc/guix.texi:24605
+msgid "If set, fixes the dynamical ports (one per client) to the given range (@code{\"<start>,<end>\"})."
+msgstr "Si une valeur est indiquée, fixe les ports dynamiques (un par client) à la zone données (@code{\"<début>,<fin>\"})."
+
+#. type: item
+#: doc/guix.texi:24606
+#, no-wrap
+msgid "@code{tftp-root} (default: @code{/var/empty,lo})"
+msgstr "@code{tftp-root} (par défaut : @code{/var/empty,lo})"
+
+#. type: table
+#: doc/guix.texi:24613
+msgid "Look for files to transfer using TFTP relative to the given directory.  When this is set, TFTP paths which include \"..\" are rejected, to stop clients getting outside the specified root. Absolute paths (starting with /) are allowed, but they must be within the tftp-root. If the optional interface argument is given, the directory is only used for TFTP requests via that interface."
+msgstr "Cherche les fichiers à transférer avec TFTP relativement au répertoire donné.  Lorsque la valeur est indiquée, les chemins TFTP qui contiennent « .. » sont rejeté, pour éviter que les client n'arrivent en dehors de la racine donnée.  Les chemins absolus (commençant par /) sont permis, mais ils doivent être à l'intérieur de la racine de tftp.  Si un argument d'interface facultatif est donné, le répertoire n'est utilisé que pour les requêtes TFTP via cette interface."
+
+#. type: item
+#: doc/guix.texi:24614
+#, no-wrap
+msgid "@code{tftp-unique-root} (default: @code{#f})"
+msgstr "@code{tftp-unique-root} (par défaut : @code{#f})"
+
+#. type: table
+#: doc/guix.texi:24619
+msgid "If set, add the IP or hardware address of the TFTP client as a path component on the end of the TFTP-root.  Only valid if a TFTP root is set and the directory exists.  Defaults to adding IP address (in standard dotted-quad format)."
+msgstr "Si une valeur est indiquée, ajoute d'IP ou l'adresse matérielle du client TFTP en tant que composant du chemin à la fin de la racine TFTP.  Valide uniquement si une racine TFTP est indiquée et que le répertoire existe.  La valeur par défaut ajoute l'adresse IP (au format à trois points standard)."
+
+#. type: table
+#: doc/guix.texi:24627
+msgid "For instance, if --tftp-root is \"/tftp\" and client 1.2.3.4 requests file \"myfile\" then the effective path will be \"/tftp/1.2.3.4/myfile\" if /tftp/1.2.3.4 exists or /tftp/myfile otherwise. When \"=mac\" is specified it will append the MAC address instead, using lowercase zero padded digits separated by dashes, e.g.: 01-02-03-04-aa-bb Note that resolving MAC addresses is only possible if the client is in the local network or obtained a DHCP lease from dnsmasq."
+msgstr "Par exemple, si --tftp-root est \"/tftp\" et que le client 1.2.3.4 demande le fichier « monfichier » alors le chemin effectif sera « /tftp/1.2.3.4/monfichier » si /tftp/1.2.3.4 existe, ou « /tftp/monfichier » sinon.  Avec « =mac », c'est l'adresse MAC qui sera ajoutée à la place, en utilisant des nombres en minuscule à taille fixe et séparés par des tirets, p.@: ex.@: : 01-02-03-04-aa-bb.  Remarquez que la résolution d'une adresse MAC n'est possible que si le client est sur le réseau local ou a obtenu un bail DHCP de dnsmasq."
+
 #. type: subsubheading
-#: doc/guix.texi:20042
+#: doc/guix.texi:24631
 #, no-wrap
 msgid "ddclient Service"
-msgstr "Service ddclient"
+msgstr "service ddclient"
 
 #. type: cindex
-#: doc/guix.texi:20044
+#: doc/guix.texi:24633
 #, no-wrap
 msgid "ddclient"
 msgstr "ddclient"
 
 #. type: Plain text
-#: doc/guix.texi:20048
+#: doc/guix.texi:24637
 msgid "The ddclient service described below runs the ddclient daemon, which takes care of automatically updating DNS entries for service providers such as @uref{https://dyn.com/dns/, Dyn}."
 msgstr "Le service ddclient décrit plus bas lance le démon ddclient, qui prend en charge la mise à jour automatique des entrées DNS pour les fournisseurs de service comme @uref{https://dyn.com/dns/, Dyn}."
 
 #. type: Plain text
-#: doc/guix.texi:20051
+#: doc/guix.texi:24640
 msgid "The following example show instantiates the service with its default configuration:"
 msgstr "L'exemple suivant montre comment instantier le service avec sa configuration par défaut :"
 
-#. type: example
-#: doc/guix.texi:20054
+#. type: lisp
+#: doc/guix.texi:24643
 #, no-wrap
 msgid "(service ddclient-service-type)\n"
 msgstr "(service ddclient-service-type)\n"
 
 #. type: Plain text
-#: doc/guix.texi:20063
-msgid "Note that ddclient needs to access credentials that are stored in a @dfn{secret file}, by default @file{/etc/ddclient/secrets} (see @code{secret-file} below.)  You are expected to create this file manually, in an ``out-of-band'' fashion (you @emph{could} make this file part of the service configuration, for instance by using @code{plain-file}, but it will be world-readable @i{via} @file{/gnu/store}.)  See the examples in the @file{share/ddclient} directory of the @code{ddclient} package."
+#: doc/guix.texi:24652
+msgid "Note that ddclient needs to access credentials that are stored in a @dfn{secret file}, by default @file{/etc/ddclient/secrets} (see @code{secret-file} below).  You are expected to create this file manually, in an ``out-of-band'' fashion (you @emph{could} make this file part of the service configuration, for instance by using @code{plain-file}, but it will be world-readable @i{via} @file{/gnu/store}).  See the examples in the @file{share/ddclient} directory of the @code{ddclient} package."
 msgstr "Remarquez que ddclient a besoin d'accéder à des identifiants stockés dans un @dfn{fichier de secrets}, par défaut @file{/etc/ddclient/secrets} (voir @code{secret-file} plus bas).  On s'attend à ce que vous créiez ce fichier manuellement, de manière externe à guix (vous @emph{pourriez} ajouter ce fichier dans une partie de votre configuration, par exemple avec @code{plain-file}, mais il serait lisible pour tout le monde via @file{/gnu/store}).  Vois les exemples dans le répertoire @file{share/ddclient} du paquet @code{ddclient}."
 
 #. type: Plain text
-#: doc/guix.texi:20067
+#: doc/guix.texi:24656
 msgid "Available @code{ddclient-configuration} fields are:"
 msgstr "Les champs de @code{ddclient-configuration} disponibles sont :"
 
 #. type: deftypevr
-#: doc/guix.texi:20068
+#: doc/guix.texi:24657
 #, no-wrap
 msgid "{@code{ddclient-configuration} parameter} package ddclient"
 msgstr "{paramètre de @code{ddclient-configuration}} package ddclient"
 
 #. type: deftypevr
-#: doc/guix.texi:20070
+#: doc/guix.texi:24659
 msgid "The ddclient package."
 msgstr "Le paquet ddclient."
 
 #. type: deftypevr
-#: doc/guix.texi:20073
+#: doc/guix.texi:24662
 #, no-wrap
 msgid "{@code{ddclient-configuration} parameter} integer daemon"
 msgstr "{paramètre de @code{ddclient-configuration}} integer daemon"
 
 #. type: deftypevr
-#: doc/guix.texi:20075
+#: doc/guix.texi:24664
 msgid "The period after which ddclient will retry to check IP and domain name."
 msgstr "La période après laquelle ddclient réessaiera de vérifier l'IP et le nom de domaine."
 
 #. type: deftypevr
-#: doc/guix.texi:20080
+#: doc/guix.texi:24669
 #, no-wrap
 msgid "{@code{ddclient-configuration} parameter} boolean syslog"
 msgstr "{paramètre de @code{ddclient-configuration}} boolean syslog"
 
 #. type: deftypevr
-#: doc/guix.texi:20082
+#: doc/guix.texi:24671
 msgid "Use syslog for the output."
 msgstr "Utiliser syslog pour la sortie."
 
 #. type: deftypevr
-#: doc/guix.texi:20087
+#: doc/guix.texi:24676
 #, no-wrap
 msgid "{@code{ddclient-configuration} parameter} string mail"
 msgstr "{paramètre de @code{ddclient-configuration}} string mail"
 
 #. type: deftypevr
-#: doc/guix.texi:20089
+#: doc/guix.texi:24678
 msgid "Mail to user."
 msgstr "Courriel de l'utilisateur."
 
 #. type: deftypevr
-#: doc/guix.texi:20091 doc/guix.texi:20098 doc/guix.texi:21435
+#: doc/guix.texi:24680 doc/guix.texi:24687 doc/guix.texi:26202
 msgid "Defaults to @samp{\"root\"}."
 msgstr "La valeur par défaut est @samp{\"root\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:20094
+#: doc/guix.texi:24683
 #, no-wrap
 msgid "{@code{ddclient-configuration} parameter} string mail-failure"
 msgstr "{paramètre de @code{ddclient-configuration}} string mail-failure"
 
 #. type: deftypevr
-#: doc/guix.texi:20096
+#: doc/guix.texi:24685
 msgid "Mail failed update to user."
 msgstr "Courriel de l'utilisateur pour les échecs."
 
 #. type: deftypevr
-#: doc/guix.texi:20101
+#: doc/guix.texi:24690
 #, no-wrap
 msgid "{@code{ddclient-configuration} parameter} string pid"
 msgstr "{paramètre de @code{ddclient-configuration}} string pid"
 
 #. type: deftypevr
-#: doc/guix.texi:20103
+#: doc/guix.texi:24692
 msgid "The ddclient PID file."
 msgstr "Le fichier de PID de ddclient."
 
 #. type: deftypevr
-#: doc/guix.texi:20105
+#: doc/guix.texi:24694
 msgid "Defaults to @samp{\"/var/run/ddclient/ddclient.pid\"}."
 msgstr "La valeur par défaut est @samp{\"/var/run/ddclient/ddclient.pid\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:20108
+#: doc/guix.texi:24697
 #, no-wrap
 msgid "{@code{ddclient-configuration} parameter} boolean ssl"
 msgstr "{paramètre de @code{ddclient-configuration}} boolean ssl"
 
 #. type: deftypevr
-#: doc/guix.texi:20110
+#: doc/guix.texi:24699
 msgid "Enable SSL support."
 msgstr "Activer le support de SSL."
 
 #. type: deftypevr
-#: doc/guix.texi:20115
+#: doc/guix.texi:24704
 #, no-wrap
 msgid "{@code{ddclient-configuration} parameter} string user"
 msgstr "{paramètre de @code{ddclient-configuration}} string user"
 
 #. type: deftypevr
-#: doc/guix.texi:20118
+#: doc/guix.texi:24707
 msgid "Specifies the user name or ID that is used when running ddclient program."
 msgstr "Spécifie le nm d'utilisateur ou l'ID qui est utilisé pour lancer le programme ddclient."
 
 #. type: deftypevr
-#: doc/guix.texi:20120 doc/guix.texi:20127
+#: doc/guix.texi:24709 doc/guix.texi:24716
 msgid "Defaults to @samp{\"ddclient\"}."
 msgstr "La valeur par défaut est @samp{\"ddclient\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:20123
+#: doc/guix.texi:24712
 #, no-wrap
 msgid "{@code{ddclient-configuration} parameter} string group"
 msgstr "{paramètre de @code{ddclient-configuration}} string group"
 
 #. type: deftypevr
-#: doc/guix.texi:20125
+#: doc/guix.texi:24714
 msgid "Group of the user who will run the ddclient program."
 msgstr "Groupe de l'utilisateur qui lancera le programme ddclient."
 
 #. type: deftypevr
-#: doc/guix.texi:20130
+#: doc/guix.texi:24719
 #, no-wrap
 msgid "{@code{ddclient-configuration} parameter} string secret-file"
 msgstr "{paramètre de @code{ddclient-configuration}} string secret-file"
 
 #. type: deftypevr
-#: doc/guix.texi:20134
+#: doc/guix.texi:24723
 msgid "Secret file which will be appended to @file{ddclient.conf} file.  This file contains credentials for use by ddclient.  You are expected to create it manually."
 msgstr "Fichier de secrets qui sera ajouté au fichier @file{ddclient.conf}.  Ce fichier contient les paramètres d'authentification utilisés par ddclient.  On s'attend à ce que vous le créiez manuellement."
 
 #. type: deftypevr
-#: doc/guix.texi:20136
+#: doc/guix.texi:24725
 msgid "Defaults to @samp{\"/etc/ddclient/secrets.conf\"}."
 msgstr "La valeur par défaut est @samp{\"/etc/ddclient/secrets.conf\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:20139
+#: doc/guix.texi:24728
 #, no-wrap
 msgid "{@code{ddclient-configuration} parameter} list extra-options"
 msgstr "{paramètre de @code{ddclient-configuration}} list extra-options"
 
 #. type: deftypevr
-#: doc/guix.texi:20141
+#: doc/guix.texi:24730
 msgid "Extra options will be appended to @file{ddclient.conf} file."
 msgstr "Options supplémentaires qui seront ajoutées au fichier @file{ddclient.conf}."
 
 #. type: cindex
-#: doc/guix.texi:20152
+#: doc/guix.texi:24741
 #, no-wrap
 msgid "VPN (virtual private network)"
 msgstr "VPN (réseau privé virtuel)"
 
 #. type: cindex
-#: doc/guix.texi:20153
+#: doc/guix.texi:24742
 #, no-wrap
 msgid "virtual private network (VPN)"
 msgstr "réseau privé virtuel (VPN)"
 
 #. type: Plain text
-#: doc/guix.texi:20159
+#: doc/guix.texi:24748
 msgid "The @code{(gnu services vpn)} module provides services related to @dfn{virtual private networks} (VPNs).  It provides a @emph{client} service for your machine to connect to a VPN, and a @emph{server} service for your machine to host a VPN.  Both services use @uref{https://openvpn.net/, OpenVPN}."
 msgstr "Le module @code{(gnu services vpn)} fournit des services liés aux @dfn{réseaux privés virtuels} (VPN).  Il fournit un srevice @emph{client} pour que votre machine se connecte à un VPN et un service @emph{serveur} pour que votre machine héberge un VPN.  Les deux services utilisent @uref{https://openvpn.net/, OpenVPN}."
 
 #. type: deffn
-#: doc/guix.texi:20160
+#: doc/guix.texi:24749
 #, no-wrap
 msgid "{Scheme Procedure} openvpn-client-service @"
 msgstr "{Procédure Scheme} openvpn-client-service @"
 
 #. type: deffn
-#: doc/guix.texi:20162
+#: doc/guix.texi:24751
 msgid "[#:config (openvpn-client-configuration)]"
 msgstr "[#:config (openvpn-client-configuration)]"
 
 #. type: deffn
-#: doc/guix.texi:20164
+#: doc/guix.texi:24753
 msgid "Return a service that runs @command{openvpn}, a VPN daemon, as a client."
 msgstr "Renvoie un service qui lance @command{openvpn}, un démon VPN, en tant que client."
 
 #. type: deffn
-#: doc/guix.texi:20166
+#: doc/guix.texi:24755
 #, no-wrap
 msgid "{Scheme Procedure} openvpn-server-service @"
 msgstr "{Procédure Scheme} openvpn-server-service @"
 
 #. type: deffn
-#: doc/guix.texi:20168
+#: doc/guix.texi:24757
 msgid "[#:config (openvpn-server-configuration)]"
 msgstr "[#:config (openvpn-server-configuration)]"
 
 #. type: deffn
-#: doc/guix.texi:20170
+#: doc/guix.texi:24759
 msgid "Return a service that runs @command{openvpn}, a VPN daemon, as a server."
 msgstr "Renvoie un service qui lance @command{openvpn}, un démon VPN, en tant que serveur."
 
 #. type: deffn
-#: doc/guix.texi:20172
+#: doc/guix.texi:24761
 msgid "Both can be run simultaneously."
 msgstr "Les deux services peuvent être lancés en même temps."
 
 #. type: Plain text
-#: doc/guix.texi:20177
+#: doc/guix.texi:24766
 msgid "Available @code{openvpn-client-configuration} fields are:"
 msgstr "Les champs de @code{openvpn-client-configuration} disponibles sont :"
 
 #. type: deftypevr
-#: doc/guix.texi:20178
+#: doc/guix.texi:24767
 #, no-wrap
 msgid "{@code{openvpn-client-configuration} parameter} package openvpn"
 msgstr "{paramètre de @code{openvpn-client-configuration}} package openvpn"
 
 #. type: deftypevr
-#: doc/guix.texi:20180 doc/guix.texi:20316
+#: doc/guix.texi:24769 doc/guix.texi:24920
 msgid "The OpenVPN package."
 msgstr "Le paquet OpenVPN."
 
 #. type: deftypevr
-#: doc/guix.texi:20183
+#: doc/guix.texi:24772
 #, no-wrap
 msgid "{@code{openvpn-client-configuration} parameter} string pid-file"
 msgstr "{paramètre de @code{openvpn-client-configuration}} string pid-file"
 
 #. type: deftypevr
-#: doc/guix.texi:20185 doc/guix.texi:20321
+#: doc/guix.texi:24774 doc/guix.texi:24925
 msgid "The OpenVPN pid file."
 msgstr "Le fichier de PID d'OpenVPN."
 
 #. type: deftypevr
-#: doc/guix.texi:20187 doc/guix.texi:20323
+#: doc/guix.texi:24776 doc/guix.texi:24927
 msgid "Defaults to @samp{\"/var/run/openvpn/openvpn.pid\"}."
 msgstr "La valeur par défaut est @samp{\"/var/run/openvpn/openvpn.pid\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:20190
+#: doc/guix.texi:24779
 #, no-wrap
 msgid "{@code{openvpn-client-configuration} parameter} proto proto"
 msgstr "{paramètre de @code{openvpn-client-configuration}} proto proto"
 
 #. type: deftypevr
-#: doc/guix.texi:20193 doc/guix.texi:20329
+#: doc/guix.texi:24782 doc/guix.texi:24933
 msgid "The protocol (UDP or TCP) used to open a channel between clients and servers."
 msgstr "Le protocole (UDP ou TCP) utilisé pour ouvrir un canal entre les clients et les serveurs."
 
 #. type: deftypevr
-#: doc/guix.texi:20195 doc/guix.texi:20331
+#: doc/guix.texi:24784 doc/guix.texi:24935
 msgid "Defaults to @samp{udp}."
 msgstr "La valeur par défaut est @samp{udp}."
 
 #. type: deftypevr
-#: doc/guix.texi:20198
+#: doc/guix.texi:24787
 #, no-wrap
 msgid "{@code{openvpn-client-configuration} parameter} dev dev"
 msgstr "{paramètre de @code{openvpn-client-configuration}} dev dev"
 
 #. type: deftypevr
-#: doc/guix.texi:20200 doc/guix.texi:20336
+#: doc/guix.texi:24789 doc/guix.texi:24940
 msgid "The device type used to represent the VPN connection."
 msgstr "Le périphérique utilisé pour représenter la connexion VPN."
 
 #. type: deftypevr
-#: doc/guix.texi:20202 doc/guix.texi:20338
+#: doc/guix.texi:24791 doc/guix.texi:24942
 msgid "Defaults to @samp{tun}."
 msgstr "La valeur par défaut est @samp{tun}."
 
 #. type: deftypevr
-#: doc/guix.texi:20205
+#: doc/guix.texi:24794
 #, no-wrap
 msgid "{@code{openvpn-client-configuration} parameter} string ca"
 msgstr "{paramètre de @code{openvpn-client-configuration}} string ca"
 
 #. type: deftypevr
-#: doc/guix.texi:20207 doc/guix.texi:20343
+#: doc/guix.texi:24796 doc/guix.texi:24947
 msgid "The certificate authority to check connections against."
 msgstr "L'autorité de certification qui sert à vérifier les connexions."
 
 #. type: deftypevr
-#: doc/guix.texi:20209 doc/guix.texi:20345
+#: doc/guix.texi:24798 doc/guix.texi:24949
 msgid "Defaults to @samp{\"/etc/openvpn/ca.crt\"}."
 msgstr "La valeur par défaut est @samp{\"/etc/openvpn/ca.crt\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:20212
+#: doc/guix.texi:24801
 #, no-wrap
 msgid "{@code{openvpn-client-configuration} parameter} string cert"
 msgstr "{paramètre de @code{openvpn-client-configuration}} string cert"
 
 #. type: deftypevr
-#: doc/guix.texi:20215 doc/guix.texi:20351
+#: doc/guix.texi:24804 doc/guix.texi:24955
 msgid "The certificate of the machine the daemon is running on.  It should be signed by the authority given in @code{ca}."
 msgstr "Le certificat de la machine sur laquelle tourne le démon.  Il devrait être signé par l'autorité indiquée dans @code{ca}."
 
 #. type: deftypevr
-#: doc/guix.texi:20217 doc/guix.texi:20353
+#: doc/guix.texi:24806 doc/guix.texi:24957
 msgid "Defaults to @samp{\"/etc/openvpn/client.crt\"}."
 msgstr "La valeur par défaut est @samp{\"/etc/openvpn/client.crt\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:20220
+#: doc/guix.texi:24809
 #, no-wrap
 msgid "{@code{openvpn-client-configuration} parameter} string key"
 msgstr "{paramètre de @code{openvpn-client-configuration}} string key"
 
 #. type: deftypevr
-#: doc/guix.texi:20223 doc/guix.texi:20359
+#: doc/guix.texi:24812 doc/guix.texi:24963
 msgid "The key of the machine the daemon is running on.  It must be the key whose certificate is @code{cert}."
 msgstr "La clef de la machine sur laquelle tourne le démon.  Elle doit être la clef dont le certificat est donné dans @code{cert}."
 
 #. type: deftypevr
-#: doc/guix.texi:20225 doc/guix.texi:20361
+#: doc/guix.texi:24814 doc/guix.texi:24965
 msgid "Defaults to @samp{\"/etc/openvpn/client.key\"}."
 msgstr "La valeur par défaut est @samp{\"/etc/openvpn/client.key\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:20228
+#: doc/guix.texi:24817
 #, no-wrap
 msgid "{@code{openvpn-client-configuration} parameter} boolean comp-lzo?"
 msgstr "{paramètre de @code{openvpn-client-configuration}} boolean comp-lzo?"
 
 #. type: deftypevr
-#: doc/guix.texi:20230 doc/guix.texi:20366
+#: doc/guix.texi:24819 doc/guix.texi:24970
 msgid "Whether to use the lzo compression algorithm."
 msgstr "Indique s'il faut utiliser l'algorithme de compression lzo."
 
 #. type: deftypevr
-#: doc/guix.texi:20235
+#: doc/guix.texi:24824
 #, no-wrap
 msgid "{@code{openvpn-client-configuration} parameter} boolean persist-key?"
 msgstr "{paramètre de @code{openvpn-client-configuration}} boolean persist-key?"
 
 #. type: deftypevr
-#: doc/guix.texi:20237 doc/guix.texi:20373
+#: doc/guix.texi:24826 doc/guix.texi:24977
 msgid "Don't re-read key files across SIGUSR1 or --ping-restart."
 msgstr "Ne pas relire les fichiers de clefs entre les SIGUSR1 et les --ping-restart."
 
 #. type: deftypevr
-#: doc/guix.texi:20242
+#: doc/guix.texi:24831
 #, no-wrap
 msgid "{@code{openvpn-client-configuration} parameter} boolean persist-tun?"
 msgstr "{paramètre de @code{openvpn-client-configuration}} boolean persist-tun?"
 
 #. type: deftypevr
-#: doc/guix.texi:20245 doc/guix.texi:20381
+#: doc/guix.texi:24834 doc/guix.texi:24985
 msgid "Don't close and reopen TUN/TAP device or run up/down scripts across SIGUSR1 or --ping-restart restarts."
 msgstr "Ne pas fermer et rouvrir les périphériques TUN/TAP ou lancer de scripts de démarrage/d'arrêt entre les SIGUSR1 et les --ping-restart."
 
 #. type: deftypevr
-#: doc/guix.texi:20250
+#: doc/guix.texi:24839
+#, no-wrap
+msgid "{@code{openvpn-client-configuration} parameter} boolean fast-io?"
+msgstr "{paramètre de @code{openvpn-client-configuration}} boolean fast-io?"
+
+#. type: deftypevr
+#: doc/guix.texi:24842 doc/guix.texi:24993
+msgid "(Experimental) Optimize TUN/TAP/UDP I/O writes by avoiding a call to poll/epoll/select prior to the write operation."
+msgstr "(Expérimental) Optimise les écritures TUN/TAP/UDP en évitant d'appeler poll/epoll/select avant l'opération d'écriture."
+
+#. type: deftypevr
+#: doc/guix.texi:24846
 #, no-wrap
 msgid "{@code{openvpn-client-configuration} parameter} number verbosity"
 msgstr "{paramètre de @code{openvpn-client-configuration}} number verbosity"
 
 #. type: deftypevr
-#: doc/guix.texi:20252 doc/guix.texi:20388
+#: doc/guix.texi:24848 doc/guix.texi:24999
 msgid "Verbosity level."
 msgstr "Niveau de verbosité."
 
 #. type: deftypevr
-#: doc/guix.texi:20254 doc/guix.texi:20390 doc/guix.texi:21703
-#: doc/guix.texi:21926
+#: doc/guix.texi:24850 doc/guix.texi:25001 doc/guix.texi:26470
+#: doc/guix.texi:26694
 msgid "Defaults to @samp{3}."
 msgstr "La valeur par défaut est @samp{3}."
 
 #. type: deftypevr
-#: doc/guix.texi:20257
+#: doc/guix.texi:24853
 #, no-wrap
 msgid "{@code{openvpn-client-configuration} parameter} tls-auth-client tls-auth"
 msgstr "{paramètre de @code{openvpn-client-configuration}} tls-auth-client tls-auth"
 
 #. type: deftypevr
-#: doc/guix.texi:20260 doc/guix.texi:20396
+#: doc/guix.texi:24856 doc/guix.texi:25007
 msgid "Add an additional layer of HMAC authentication on top of the TLS control channel to protect against DoS attacks."
 msgstr "Ajoute une couche d'authentification HMAC supplémentaire au dessus du canal de contrôle TLS pour se protéger contre les attaques DoS."
 
 #. type: deftypevr
-#: doc/guix.texi:20265
+#: doc/guix.texi:24861
+#, no-wrap
+msgid "{@code{openvpn-client-configuration} parameter} maybe-string auth-user-pass"
+msgstr "{paramètre de @code{openvpn-client-configuration}} maybe-string auth-user-pass"
+
+#. type: deftypevr
+#: doc/guix.texi:24865
+msgid "Authenticate with server using username/password.  The option is a file containing username/password on 2 lines.  Do not use a file-like object as it would be added to the store and readable by any user."
+msgstr "S'authentifie avec le serveur en utilisant le nom d'utilisateur et le mot de passe.  L'option est un fichier contenant le nom d'utilisateur et le mot de passe sur deux lignes.  N'utilisez pas un objet simili-fichier car il serait ajouté au dépôt et serait lisible pour n'importe quel utilisateur."
+
+#. type: deftypevr
+#: doc/guix.texi:24867
+msgid "Defaults to @samp{'disabled}."
+msgstr "La valeur par défaut est @samp{'disabled}."
+
+#. type: deftypevr
+#: doc/guix.texi:24869
 #, no-wrap
 msgid "{@code{openvpn-client-configuration} parameter} key-usage verify-key-usage?"
 msgstr "{paramètre de @code{openvpn-client-configuration}} key-usage verify-key-usage?"
 
 #. type: deftypevr
-#: doc/guix.texi:20267
+#: doc/guix.texi:24871
 msgid "Whether to check the server certificate has server usage extension."
 msgstr "Indique s'il faut vérifier que le certificat du serveur a l'extension d'utilisation."
 
 #. type: deftypevr
-#: doc/guix.texi:20272
+#: doc/guix.texi:24876
 #, no-wrap
 msgid "{@code{openvpn-client-configuration} parameter} bind bind?"
 msgstr "{paramètre de @code{openvpn-client-configuration}} bind bind?"
 
 #. type: deftypevr
-#: doc/guix.texi:20274
+#: doc/guix.texi:24878
 msgid "Bind to a specific local port number."
 msgstr "Se lier à un port spécifique."
 
 #. type: deftypevr
-#: doc/guix.texi:20279
+#: doc/guix.texi:24883
 #, no-wrap
 msgid "{@code{openvpn-client-configuration} parameter} resolv-retry resolv-retry?"
 msgstr "{paramètre de @code{openvpn-client-configuration}} resolv-retry resolv-retry?"
 
 #. type: deftypevr
-#: doc/guix.texi:20281
+#: doc/guix.texi:24885
 msgid "Retry resolving server address."
 msgstr "Réessayer de résoudre l'adresse du serveur."
 
 #. type: deftypevr
-#: doc/guix.texi:20286
+#: doc/guix.texi:24890
 #, no-wrap
 msgid "{@code{openvpn-client-configuration} parameter} openvpn-remote-list remote"
 msgstr "{paramètre de @code{openvpn-client-configuration}} openvpn-remote-list remote"
 
 #. type: deftypevr
-#: doc/guix.texi:20288
+#: doc/guix.texi:24892
 msgid "A list of remote servers to connect to."
 msgstr "Une liste de serveurs distants sur lesquels se connecter."
 
 #. type: deftypevr
-#: doc/guix.texi:20292
+#: doc/guix.texi:24896
 msgid "Available @code{openvpn-remote-configuration} fields are:"
 msgstr "Les champs de @code{openvpn-remote-configuration} disponibles sont :"
 
 #. type: deftypevr
-#: doc/guix.texi:20293
+#: doc/guix.texi:24897
 #, no-wrap
 msgid "{@code{openvpn-remote-configuration} parameter} string name"
 msgstr "{paramètre de @code{openvpn-remote-configuration}} string name"
 
 #. type: deftypevr
-#: doc/guix.texi:20295
+#: doc/guix.texi:24899
 msgid "Server name."
 msgstr "Nom du serveur."
 
 #. type: deftypevr
-#: doc/guix.texi:20297
+#: doc/guix.texi:24901
 msgid "Defaults to @samp{\"my-server\"}."
 msgstr "La valeur par défaut est @samp{\"my-server\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:20300
+#: doc/guix.texi:24904
 #, no-wrap
 msgid "{@code{openvpn-remote-configuration} parameter} number port"
 msgstr "{paramètre de @code{openvpn-remote-configuration}} number port"
 
 #. type: deftypevr
-#: doc/guix.texi:20302
+#: doc/guix.texi:24906
 msgid "Port number the server listens to."
 msgstr "Numéro de port sur lequel écoute le serveur."
 
 #. type: deftypevr
-#: doc/guix.texi:20304 doc/guix.texi:20405
+#: doc/guix.texi:24908 doc/guix.texi:25016
 msgid "Defaults to @samp{1194}."
 msgstr "La valeur par défaut est @samp{1194}."
 
 #. type: Plain text
-#: doc/guix.texi:20313
+#: doc/guix.texi:24917
 msgid "Available @code{openvpn-server-configuration} fields are:"
 msgstr "Les champs de @code{openvpn-server-configuration} disponibles sont :"
 
 #. type: deftypevr
-#: doc/guix.texi:20314
+#: doc/guix.texi:24918
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} package openvpn"
 msgstr "{paramètre de @code{openvpn-server-configuration}} package openvpn"
 
 #. type: deftypevr
-#: doc/guix.texi:20319
+#: doc/guix.texi:24923
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} string pid-file"
 msgstr "{paramètre de @code{openvpn-server-configuration}} string pid-file"
 
 #. type: deftypevr
-#: doc/guix.texi:20326
+#: doc/guix.texi:24930
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} proto proto"
 msgstr "{paramètre de @code{openvpn-server-configuration}} proto proto"
 
 #. type: deftypevr
-#: doc/guix.texi:20334
+#: doc/guix.texi:24938
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} dev dev"
 msgstr "{paramètre de @code{openvpn-server-configuration}} dev dev"
 
 #. type: deftypevr
-#: doc/guix.texi:20341
+#: doc/guix.texi:24945
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} string ca"
 msgstr "{paramètre de @code{openvpn-server-configuration}} string ca"
 
 #. type: deftypevr
-#: doc/guix.texi:20348
+#: doc/guix.texi:24952
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} string cert"
 msgstr "{paramètre de @code{openvpn-server-configuration}} string cert"
 
 #. type: deftypevr
-#: doc/guix.texi:20356
+#: doc/guix.texi:24960
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} string key"
 msgstr "{paramètre de @code{openvpn-server-configuration}} string key"
 
 #. type: deftypevr
-#: doc/guix.texi:20364
+#: doc/guix.texi:24968
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} boolean comp-lzo?"
 msgstr "{paramètre de @code{openvpn-server-configuration}} boolean comp-lzo?"
 
 #. type: deftypevr
-#: doc/guix.texi:20371
+#: doc/guix.texi:24975
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} boolean persist-key?"
 msgstr "{paramètre de @code{openvpn-server-configuration}} boolean persist-key?"
 
 #. type: deftypevr
-#: doc/guix.texi:20378
+#: doc/guix.texi:24982
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} boolean persist-tun?"
 msgstr "{paramètre de @code{openvpn-server-configuration}} boolean persist-tun?"
 
 #. type: deftypevr
-#: doc/guix.texi:20386
+#: doc/guix.texi:24990
+#, no-wrap
+msgid "{@code{openvpn-server-configuration} parameter} boolean fast-io?"
+msgstr "{paramètre de @code{openvpn-server-configuration}} boolean fast-io?"
+
+#. type: deftypevr
+#: doc/guix.texi:24997
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} number verbosity"
 msgstr "{paramètre de @code{openvpn-server-configuration}} number verbosity"
 
 #. type: deftypevr
-#: doc/guix.texi:20393
+#: doc/guix.texi:25004
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} tls-auth-server tls-auth"
 msgstr "{paramètre de @code{openvpn-server-configuration}} tls-auth-server tls-auth"
 
 #. type: deftypevr
-#: doc/guix.texi:20401
+#: doc/guix.texi:25012
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} number port"
 msgstr "{paramètre de @code{openvpn-server-configuration}} number port"
 
 #. type: deftypevr
-#: doc/guix.texi:20403
+#: doc/guix.texi:25014
 msgid "Specifies the port number on which the server listens."
 msgstr "Spécifie le numéro de port sur lequel les serveurs écoutent."
 
 #. type: deftypevr
-#: doc/guix.texi:20408
+#: doc/guix.texi:25019
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} ip-mask server"
 msgstr "{paramètre de @code{openvpn-server-configuration}} ip-mask server"
 
 #. type: deftypevr
-#: doc/guix.texi:20410
+#: doc/guix.texi:25021
 msgid "An ip and mask specifying the subnet inside the virtual network."
 msgstr "Une ip et un masque de sous-réseau spécifiant le sous-réseau dans le réseau virtuel."
 
 #. type: deftypevr
-#: doc/guix.texi:20412
+#: doc/guix.texi:25023
 msgid "Defaults to @samp{\"10.8.0.0 255.255.255.0\"}."
 msgstr "La valeur par défaut est @samp{\"10.8.0.0 255.255.255.0\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:20415
+#: doc/guix.texi:25026
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} cidr6 server-ipv6"
 msgstr "{paramètre de @code{openvpn-server-configuration}} cidr6 server-ipv6"
 
 #. type: deftypevr
-#: doc/guix.texi:20417
+#: doc/guix.texi:25028
 msgid "A CIDR notation specifying the IPv6 subnet inside the virtual network."
 msgstr "Une notation CIDR pour spécifier le sous-réseau IPv6 dans le réseau virtuel."
 
 #. type: deftypevr
-#: doc/guix.texi:20422
+#: doc/guix.texi:25033
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} string dh"
 msgstr "{paramètre de @code{openvpn-server-configuration}} string dh"
 
 #. type: deftypevr
-#: doc/guix.texi:20424
+#: doc/guix.texi:25035
 msgid "The Diffie-Hellman parameters file."
 msgstr "Le fichier de paramètres Diffie-Hellman."
 
 #. type: deftypevr
-#: doc/guix.texi:20426
+#: doc/guix.texi:25037
 msgid "Defaults to @samp{\"/etc/openvpn/dh2048.pem\"}."
 msgstr "La valeur par défaut est @samp{\"/etc/openvpn/dh2048.pem\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:20429
+#: doc/guix.texi:25040
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} string ifconfig-pool-persist"
 msgstr "{paramètre de @code{openvpn-server-configuration}} string ifconfig-pool-persist"
 
 #. type: deftypevr
-#: doc/guix.texi:20431
+#: doc/guix.texi:25042
 msgid "The file that records client IPs."
 msgstr "Le fichier qui enregistre les IP des clients."
 
 #. type: deftypevr
-#: doc/guix.texi:20433
+#: doc/guix.texi:25044
 msgid "Defaults to @samp{\"/etc/openvpn/ipp.txt\"}."
 msgstr "La valeur par défaut est @samp{\"/etc/openvpn/ipp.txt\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:20436
+#: doc/guix.texi:25047
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} gateway redirect-gateway?"
 msgstr "{paramètre de @code{openvpn-server-configuration}} gateway redirect-gateway?"
 
 #. type: deftypevr
-#: doc/guix.texi:20438
+#: doc/guix.texi:25049
 msgid "When true, the server will act as a gateway for its clients."
 msgstr "Lorsque la valeur est vraie, le serveur agira comme une passerelle pour ses clients."
 
 #. type: deftypevr
-#: doc/guix.texi:20443
+#: doc/guix.texi:25054
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} boolean client-to-client?"
 msgstr "{paramètre de @code{openvpn-server-configuration}} boolean client-to-client?"
 
 #. type: deftypevr
-#: doc/guix.texi:20445
+#: doc/guix.texi:25056
 msgid "When true, clients are allowed to talk to each other inside the VPN."
 msgstr "Lorsque la valeur est vraie, les clients sont autorisés à se parler entre eux dans le VPN."
 
 #. type: deftypevr
-#: doc/guix.texi:20450
+#: doc/guix.texi:25061
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} keepalive keepalive"
 msgstr "{paramètre de @code{openvpn-server-configuration}} keepalive keepalive"
 
 #. type: deftypevr
-#: doc/guix.texi:20456
+#: doc/guix.texi:25067
 msgid "Causes ping-like messages to be sent back and forth over the link so that each side knows when the other side has gone down.  @code{keepalive} requires a pair.  The first element is the period of the ping sending, and the second element is the timeout before considering the other side down."
 msgstr "Fait que des messages de ping sont envoyés régulièrement dans les deux sens pour que chaque côté sache quand l'autre n'est plus disponible.  @code{keepalive} a besoin d'une paire.  Le premier élément est la période d'envoi du ping, et le second élément est le délai d'attente avant de considéré que l'autre côté n'est plus disponible."
 
 #. type: deftypevr
-#: doc/guix.texi:20459
+#: doc/guix.texi:25070
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} number max-clients"
 msgstr "{paramètre de @code{openvpn-server-configuration}} number max-clients"
 
 #. type: deftypevr
-#: doc/guix.texi:20461
+#: doc/guix.texi:25072
 msgid "The maximum number of clients."
 msgstr "Le nombre maximum de clients."
 
 #. type: deftypevr
-#: doc/guix.texi:20466
+#: doc/guix.texi:25077
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} string status"
 msgstr "{paramètre de @code{openvpn-server-configuration}} string status"
 
 #. type: deftypevr
-#: doc/guix.texi:20469
+#: doc/guix.texi:25080
 msgid "The status file.  This file shows a small report on current connection.  It is truncated and rewritten every minute."
 msgstr "Le fichier de statut.  Ce fichier montre un court rapport sur les connexions actuelles.  Il est tronqué et réécrit toutes les minutes."
 
 #. type: deftypevr
-#: doc/guix.texi:20471
+#: doc/guix.texi:25082
 msgid "Defaults to @samp{\"/var/run/openvpn/status\"}."
 msgstr "La valeur par défaut est @samp{\"/var/run/openvpn/status\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:20474
+#: doc/guix.texi:25085
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} openvpn-ccd-list client-config-dir"
 msgstr "{paramètre de @code{openvpn-server-configuration}} openvpn-ccd-list client-config-dir"
 
 #. type: deftypevr
-#: doc/guix.texi:20476
+#: doc/guix.texi:25087
 msgid "The list of configuration for some clients."
 msgstr "La liste des configuration pour certains clients."
 
 #. type: deftypevr
-#: doc/guix.texi:20480
+#: doc/guix.texi:25091
 msgid "Available @code{openvpn-ccd-configuration} fields are:"
 msgstr "Les champs de @code{openvpn-ccd-configuration} disponibles sont :"
 
 #. type: deftypevr
-#: doc/guix.texi:20481
+#: doc/guix.texi:25092
 #, no-wrap
 msgid "{@code{openvpn-ccd-configuration} parameter} string name"
 msgstr "{paramètre de @code{openvpn-ccd-configuration}} string name"
 
 #. type: deftypevr
-#: doc/guix.texi:20483
+#: doc/guix.texi:25094
 msgid "Client name."
 msgstr "Nom du client."
 
 #. type: deftypevr
-#: doc/guix.texi:20485
+#: doc/guix.texi:25096
 msgid "Defaults to @samp{\"client\"}."
 msgstr "La valeur par défaut est @samp{\"client\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:20488
+#: doc/guix.texi:25099
 #, no-wrap
 msgid "{@code{openvpn-ccd-configuration} parameter} ip-mask iroute"
 msgstr "{paramètre de @code{openvpn-ccd-configuration}} ip-mask iroute"
 
 #. type: deftypevr
-#: doc/guix.texi:20490
+#: doc/guix.texi:25101
 msgid "Client own network"
 msgstr "Le réseau du client"
 
 #. type: deftypevr
-#: doc/guix.texi:20495
+#: doc/guix.texi:25106
 #, no-wrap
 msgid "{@code{openvpn-ccd-configuration} parameter} ip-mask ifconfig-push"
 msgstr "{paramètre de @code{openvpn-ccd-configuration}} ip-mask ifconfig-push"
 
 #. type: deftypevr
-#: doc/guix.texi:20497
+#: doc/guix.texi:25108
 msgid "Client VPN IP."
 msgstr "IP du client sur le VPN."
 
 #. type: cindex
-#: doc/guix.texi:20510
+#: doc/guix.texi:25121
 #, no-wrap
 msgid "NFS"
 msgstr "NFS"
 
 #. type: Plain text
-#: doc/guix.texi:20515
+#: doc/guix.texi:25126
 msgid "The @code{(gnu services nfs)} module provides the following services, which are most commonly used in relation to mounting or exporting directory trees as @dfn{network file systems} (NFS)."
 msgstr "Le module @code{(gnu services nfs)} fournit les services suivants, qui sont tous utilisés pour monter et exporter des arborescences de répertoires en @dfn{network file systems} (NFS)."
 
+#. type: Plain text
+#: doc/guix.texi:25130
+msgid "While it is possible to use the individual components that together make up a Network File System service, we recommended to configure an NFS server with the @code{nfs-service-type}."
+msgstr "Bien qu'il soit possible d'utiliser des composants individuels qui forment ensemble un service de système de fichiers en réseau, nous recommandons de configurer un serveur NFS avec @code{nfs-service-type}."
+
 #. type: subsubheading
-#: doc/guix.texi:20516
+#: doc/guix.texi:25131
+#, no-wrap
+msgid "NFS Service"
+msgstr "Services NFS"
+
+#. type: cindex
+#: doc/guix.texi:25132
+#, no-wrap
+msgid "NFS, server"
+msgstr "NFS, serveur"
+
+#. type: Plain text
+#: doc/guix.texi:25137
+msgid "The NFS service takes care of setting up all NFS component services, kernel configuration file systems, and installs configuration files in the locations that NFS expects."
+msgstr "Le service NFS s'occupe de paramétrer tous les services composant NFS, les systèmes de fichiers de configuration du noyau et installe les fichiers de configuration aux endroit attendus par NFS."
+
+#. type: defvr
+#: doc/guix.texi:25138
+#, no-wrap
+msgid "{Scheme Variable} nfs-service-type"
+msgstr "{Variable Scheme} nfs-service-type"
+
+#. type: defvr
+#: doc/guix.texi:25140
+msgid "A service type for a complete NFS server."
+msgstr "Un type de service pour un serveur NFS complet."
+
+#. type: deftp
+#: doc/guix.texi:25142
+#, no-wrap
+msgid "{Data Type} nfs-configuration"
+msgstr "{Type de données} nfs-configuration"
+
+#. type: deftp
+#: doc/guix.texi:25145
+msgid "This data type represents the configuration of the NFS service and all of its subsystems."
+msgstr "Ce type de données représente la configuration d'un service NFS et de tous ses sous-systèmes."
+
+#. type: deftp
+#: doc/guix.texi:25147
+msgid "It has the following parameters:"
+msgstr "Il prend les paramètres suivants :"
+
+#. type: item
+#: doc/guix.texi:25148 doc/guix.texi:25273 doc/guix.texi:25298
+#, no-wrap
+msgid "@code{nfs-utils} (default: @code{nfs-utils})"
+msgstr "@code{nfs-utils} (par défaut : @code{nfs-utils})"
+
+#. type: table
+#: doc/guix.texi:25150
+msgid "The nfs-utils package to use."
+msgstr "Le paquet nfs-utils à utiliser."
+
+#. type: item
+#: doc/guix.texi:25151
+#, no-wrap
+msgid "@code{nfs-versions} (default: @code{'(\"4.2\" \"4.1\" \"4.0\")})"
+msgstr "@code{nfs-versions} (par défaut : @code{'(\"4.2\" \"4.1\" \"4.0\")})"
+
+#. type: table
+#: doc/guix.texi:25154
+msgid "If a list of string values is provided, the @command{rpc.nfsd} daemon will be limited to supporting the given versions of the NFS protocol."
+msgstr "Si une liste de chaines est fournie, le démon @command{rpc.nfsd} sera limité à la prise en charge des versions données du protocole NFS."
+
+#. type: item
+#: doc/guix.texi:25155
+#, no-wrap
+msgid "@code{exports} (default: @code{'()})"
+msgstr "@code{exports} (par défaut : @code{'()})"
+
+#. type: table
+#: doc/guix.texi:25160
+msgid "This is a list of directories the NFS server should export.  Each entry is a list consisting of two elements: a directory name and a string containing all options.  This is an example in which the directory @file{/export} is served to all NFS clients as a read-only share:"
+msgstr "C'est une liste de répertoires que le serveur NFS devrait exporter.  Chaque entrée est une liste consistant en deux éléments : un nom de répertoire et une chaine de caractères contenant toutes les options.  Voici un exemple dans lequel le répertoire @file{/export} est servi à tous les clients en lecture-seule :"
+
+#. type: lisp
+#: doc/guix.texi:25166
+#, no-wrap
+msgid ""
+"(nfs-configuration\n"
+" (exports\n"
+"  '((\"/export\"\n"
+"     \"*(ro,insecure,no_subtree_check,crossmnt,fsid=0)\"))))\n"
+msgstr ""
+"(nfs-configuration\n"
+" (exports\n"
+"  '((\"/export\"\n"
+"     \"*(ro,insecure,no_subtree_check,crossmnt,fsid=0)\"))))\n"
+
+#. type: item
+#: doc/guix.texi:25168
+#, no-wrap
+msgid "@code{rpcmountd-port} (default: @code{#f})"
+msgstr "@code{rpcmountd-port} (par défaut : @code{#f})"
+
+#. type: table
+#: doc/guix.texi:25170
+msgid "The network port that the @command{rpc.mountd} daemon should use."
+msgstr "Le port réseau que le démon @command{rpc.mountd} devrait utiliser."
+
+#. type: item
+#: doc/guix.texi:25171
+#, no-wrap
+msgid "@code{rpcstatd-port} (default: @code{#f})"
+msgstr "@code{rpcstatd-port} (par défaut: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:25173
+msgid "The network port that the @command{rpc.statd} daemon should use."
+msgstr "Le port réseau que le démon @command{rpc.statd} devrait utiliser."
+
+#. type: item
+#: doc/guix.texi:25174 doc/guix.texi:25222
+#, no-wrap
+msgid "@code{rpcbind} (default: @code{rpcbind})"
+msgstr "@code{rpcbind} (par défaut : @code{rpcbind})"
+
+#. type: table
+#: doc/guix.texi:25176 doc/guix.texi:25224
+msgid "The rpcbind package to use."
+msgstr "Le paquet rpcbind à utiliser."
+
+#. type: item
+#: doc/guix.texi:25177
+#, no-wrap
+msgid "@code{idmap-domain} (default: @code{\"localdomain\"})"
+msgstr "@code{idmap-domain} (par défaut : @code{\"localdomain\"})"
+
+#. type: table
+#: doc/guix.texi:25179
+msgid "The local NFSv4 domain name."
+msgstr "Le nom de domaine NFSv4 local."
+
+#. type: item
+#: doc/guix.texi:25180
+#, no-wrap
+msgid "@code{nfsd-port} (default: @code{2049})"
+msgstr "@code{nfsd-port} (par défaut : @code{2049})"
+
+#. type: table
+#: doc/guix.texi:25182
+msgid "The network port that the @command{nfsd} daemon should use."
+msgstr "Le port réseau que le démon @command{nfsd} devrait utiliser."
+
+#. type: item
+#: doc/guix.texi:25183
+#, no-wrap
+msgid "@code{nfsd-threads} (default: @code{8})"
+msgstr "@code{nfsd-threads} (par défaut : @code{8})"
+
+#. type: table
+#: doc/guix.texi:25185
+msgid "The number of threads used by the @command{nfsd} daemon."
+msgstr "Le nombre de thread à utiliser par le démon @command{nfsd}."
+
+#. type: item
+#: doc/guix.texi:25186
+#, no-wrap
+msgid "@code{nfsd-tcp?} (default: @code{#t})"
+msgstr "@code{nfsd-tcp?} (par défaut : @code{#t})"
+
+#. type: table
+#: doc/guix.texi:25188
+msgid "Whether the @command{nfsd} daemon should listen on a TCP socket."
+msgstr "Indique si le démon @command{nfsd} devrait écouter sur une socket TCP."
+
+#. type: item
+#: doc/guix.texi:25189
+#, no-wrap
+msgid "@code{nfsd-udp?} (default: @code{#f})"
+msgstr "@code{nfsd-udp?} (par défaut : @code{#f})"
+
+#. type: table
+#: doc/guix.texi:25191
+msgid "Whether the @command{nfsd} daemon should listen on a UDP socket."
+msgstr "Indique si le démon @command{nfsd} devrait écouter sur une socket UDP."
+
+#. type: item
+#: doc/guix.texi:25192 doc/guix.texi:25276 doc/guix.texi:25301
+#, no-wrap
+msgid "@code{pipefs-directory} (default: @code{\"/var/lib/nfs/rpc_pipefs\"})"
+msgstr "@code{pipefs-directory} (par défaut : @code{\"/var/lib/nfs/rpc_pipefs\"})"
+
+#. type: table
+#: doc/guix.texi:25194 doc/guix.texi:25278 doc/guix.texi:25303
+msgid "The directory where the pipefs file system is mounted."
+msgstr "Le répertoire où le système de fichier pipefs doit être monté."
+
+#. type: item
+#: doc/guix.texi:25195
+#, no-wrap
+msgid "@code{debug} (default: @code{'()\"})"
+msgstr "@code{debug} (par défaut : @code{'()\"})"
+
+#. type: table
+#: doc/guix.texi:25199
+msgid "A list of subsystems for which debugging output should be enabled.  This is a list of symbols.  Any of these symbols are valid: @code{nfsd}, @code{nfs}, @code{rpc}, @code{idmap}, @code{statd}, or @code{mountd}."
+msgstr "Une liste des sous-systèmes pour lesquels la sortie de débogage est activée.  C'est une liste de symboles.  Ces symboles sont valides : @code{nfsd}, @code{nfs}, @code{rpc}, @code{idmap}, @code{statd} et @code{mountd}."
+
+#. type: Plain text
+#: doc/guix.texi:25204
+msgid "If you don't need a complete NFS service or prefer to build it yourself you can use the individual component services that are documented below."
+msgstr "Si vous n'avez pas besoin d'un service NFS complet ou préférez le construire vous-même vous pouvez utiliser les composants individuels décrit plus bas."
+
+#. type: subsubheading
+#: doc/guix.texi:25205
 #, no-wrap
 msgid "RPC Bind Service"
 msgstr "Service RPC Bind"
 
 #. type: cindex
-#: doc/guix.texi:20517
+#: doc/guix.texi:25206
 #, no-wrap
 msgid "rpcbind"
 msgstr "rpcbind"
 
 #. type: Plain text
-#: doc/guix.texi:20523
+#: doc/guix.texi:25212
 msgid "The RPC Bind service provides a facility to map program numbers into universal addresses.  Many NFS related services use this facility.  Hence it is automatically started when a dependent service starts."
 msgstr "Le service RPC Bind fournit un dispositif pour faire correspondre les numéros de programmes à des adresses universelles.  De nombreux services liés à NFS utilisent ce dispositif.  Donc il est automatiquement démarré lorsqu'un service qui en dépend est démarré."
 
 #. type: defvr
-#: doc/guix.texi:20524
+#: doc/guix.texi:25213
 #, no-wrap
 msgid "{Scheme Variable} rpcbind-service-type"
 msgstr "{Variable Scheme} rpcbind-service-type"
 
 #. type: defvr
-#: doc/guix.texi:20526
+#: doc/guix.texi:25215
 msgid "A service type for the RPC portmapper daemon."
 msgstr "Un type de service pour le démon RPC portmapper."
 
 #. type: deftp
-#: doc/guix.texi:20529
+#: doc/guix.texi:25218
 #, no-wrap
 msgid "{Data Type} rpcbind-configuration"
 msgstr "{Type de données} rpcbind-configuration"
 
 #. type: deftp
-#: doc/guix.texi:20532
+#: doc/guix.texi:25221
 msgid "Data type representing the configuration of the RPC Bind Service.  This type has the following parameters:"
 msgstr "Type données représentant la configuration du service RPC Bind.  Ce type a les paramètres suivants :"
 
 #. type: item
-#: doc/guix.texi:20533
-#, no-wrap
-msgid "@code{rpcbind} (default: @code{rpcbind})"
-msgstr "@code{rpcbind} (par défaut : @code{rpcbind})"
-
-#. type: table
-#: doc/guix.texi:20535
-msgid "The rpcbind package to use."
-msgstr "Le paquet rpcbind à utiliser."
-
-#. type: item
-#: doc/guix.texi:20536
+#: doc/guix.texi:25225
 #, no-wrap
 msgid "@code{warm-start?} (default: @code{#t})"
 msgstr "@code{warm-start?} (par défaut : @code{#t})"
 
 #. type: table
-#: doc/guix.texi:20540
+#: doc/guix.texi:25229
 msgid "If this parameter is @code{#t}, then the daemon will read a state file on startup thus reloading state information saved by a previous instance."
 msgstr "Si ce paramètre est @code{#t}, alors le démon lira un fichier d'état au démarrage ce qui lui fait recharger les informations d'états sauvegardés par une instance précédente."
 
 #. type: subsubheading
-#: doc/guix.texi:20544
+#: doc/guix.texi:25233
 #, no-wrap
 msgid "Pipefs Pseudo File System"
 msgstr "Pseudo-système de fichiers Pipefs"
 
 #. type: cindex
-#: doc/guix.texi:20545
+#: doc/guix.texi:25234
 #, no-wrap
 msgid "pipefs"
 msgstr "pipefs"
 
 #. type: cindex
-#: doc/guix.texi:20546
+#: doc/guix.texi:25235
 #, no-wrap
 msgid "rpc_pipefs"
 msgstr "rpc_pipefs"
 
 #. type: Plain text
-#: doc/guix.texi:20550
+#: doc/guix.texi:25239
 msgid "The pipefs file system is used to transfer NFS related data between the kernel and user space programs."
 msgstr "Le système de fichiers pipefs est utilisé pour transférer des données liées à NFS entre le noyau et les programmes en espace utilisateur."
 
 #. type: defvr
-#: doc/guix.texi:20551
+#: doc/guix.texi:25240
 #, no-wrap
 msgid "{Scheme Variable} pipefs-service-type"
 msgstr "{Variable Scheme} pipefs-service-type"
 
 #. type: defvr
-#: doc/guix.texi:20553
+#: doc/guix.texi:25242
 msgid "A service type for the pipefs pseudo file system."
 msgstr "Un type de service pour le pseudo-système de fichiers pipefs."
 
 #. type: deftp
-#: doc/guix.texi:20555
+#: doc/guix.texi:25244
 #, no-wrap
 msgid "{Data Type} pipefs-configuration"
 msgstr "{Type de données} pipefs-configuration"
 
 #. type: deftp
-#: doc/guix.texi:20558
+#: doc/guix.texi:25247
 msgid "Data type representing the configuration of the pipefs pseudo file system service.  This type has the following parameters:"
 msgstr "Type de données représentant la configuration du service du pseudo-système de fichiers pipefs.  Ce type a les paramètres suivants :"
 
 #. type: item
-#: doc/guix.texi:20559
+#: doc/guix.texi:25248
 #, no-wrap
 msgid "@code{mount-point} (default: @code{\"/var/lib/nfs/rpc_pipefs\"})"
 msgstr "@code{mount-point} (par défaut : @code{\"/var/lib/nfs/rpc_pipefs\"})"
 
 #. type: table
-#: doc/guix.texi:20561
+#: doc/guix.texi:25250
 msgid "The directory to which the file system is to be attached."
 msgstr "Le répertoire dans lequel le système de fichiers est attaché."
 
 #. type: subsubheading
-#: doc/guix.texi:20565
+#: doc/guix.texi:25254
 #, no-wrap
 msgid "GSS Daemon Service"
 msgstr "Service de démon GSS"
 
 #. type: cindex
-#: doc/guix.texi:20566
+#: doc/guix.texi:25255
 #, no-wrap
 msgid "GSSD"
 msgstr "GSSD"
 
 #. type: cindex
-#: doc/guix.texi:20567
+#: doc/guix.texi:25256
 #, no-wrap
 msgid "GSS"
 msgstr "GSS"
 
 #. type: cindex
-#: doc/guix.texi:20568
+#: doc/guix.texi:25257
 #, no-wrap
 msgid "global security system"
 msgstr "système de sécurité global"
 
 #. type: Plain text
-#: doc/guix.texi:20575
+#: doc/guix.texi:25264
 msgid "The @dfn{global security system} (GSS) daemon provides strong security for RPC based protocols.  Before exchanging RPC requests an RPC client must establish a security context.  Typically this is done using the Kerberos command @command{kinit} or automatically at login time using PAM services (@pxref{Kerberos Services})."
 msgstr "Le démon du @dfn{système de sécurité global} (GSS) fournit une sécurité forte pour les protocoles basés sur des RPC.  Avant d'échanger des requêtes RPC, un client RPC doit établir un contexte sécurisé.  Typiquement cela se fait avec la commande Kerberos @command{kinit} ou automatiquement à la connexion avec les services PAM (@pxref{Kerberos Services})."
 
 #. type: defvr
-#: doc/guix.texi:20576
+#: doc/guix.texi:25265
 #, no-wrap
 msgid "{Scheme Variable} gss-service-type"
 msgstr "{Variable Scheme} gss-service-type"
 
 #. type: defvr
-#: doc/guix.texi:20578
+#: doc/guix.texi:25267
 msgid "A service type for the Global Security System (GSS) daemon."
 msgstr "Un type de service pour le démon du système de sécurité global (GSS)."
 
 #. type: deftp
-#: doc/guix.texi:20580
+#: doc/guix.texi:25269
 #, no-wrap
 msgid "{Data Type} gss-configuration"
 msgstr "{Type de données} gss-configuration"
 
 #. type: deftp
-#: doc/guix.texi:20583
+#: doc/guix.texi:25272
 msgid "Data type representing the configuration of the GSS daemon service.  This type has the following parameters:"
 msgstr "Type de données représentant la configuration du service du démon GSS.  Ce type a les paramètres suivants :"
 
-#. type: item
-#: doc/guix.texi:20584 doc/guix.texi:20609
-#, no-wrap
-msgid "@code{nfs-utils} (default: @code{nfs-utils})"
-msgstr "@code{nfs-utils} (par défaut : @code{nfs-utils})"
-
 #. type: table
-#: doc/guix.texi:20586
+#: doc/guix.texi:25275
 msgid "The package in which the @command{rpc.gssd} command is to be found."
 msgstr "Le paquet dans lequel la commande @command{rpc.gssd} se trouve."
 
-#. type: item
-#: doc/guix.texi:20587 doc/guix.texi:20612
-#, no-wrap
-msgid "@code{pipefs-directory} (default: @code{\"/var/lib/nfs/rpc_pipefs\"})"
-msgstr "@code{pipefs-directory} (par défaut : @code{\"/var/lib/nfs/rpc_pipefs\"})"
-
-#. type: table
-#: doc/guix.texi:20589 doc/guix.texi:20614
-msgid "The directory where the pipefs file system is mounted."
-msgstr "Le répertoire où le système de fichier pipefs doit être monté."
-
 #. type: subsubheading
-#: doc/guix.texi:20594
+#: doc/guix.texi:25283
 #, no-wrap
 msgid "IDMAP Daemon Service"
 msgstr "Service de démon IDMAP"
 
 #. type: cindex
-#: doc/guix.texi:20595
+#: doc/guix.texi:25284
 #, no-wrap
 msgid "idmapd"
 msgstr "idmapd"
 
 #. type: cindex
-#: doc/guix.texi:20596
+#: doc/guix.texi:25285
 #, no-wrap
 msgid "name mapper"
 msgstr "correspondance de nom"
 
 #. type: Plain text
-#: doc/guix.texi:20600
+#: doc/guix.texi:25289
 msgid "The idmap daemon service provides mapping between user IDs and user names.  Typically it is required in order to access file systems mounted via NFSv4."
 msgstr "Le service du démon idmap fournit une correspondance entre les ID utilisateur et les noms d'utilisateurs.  Typiquement, cela est requis pour accéder aux systèmes de fichiers montés via NFSv4."
 
 #. type: defvr
-#: doc/guix.texi:20601
+#: doc/guix.texi:25290
 #, no-wrap
 msgid "{Scheme Variable} idmap-service-type"
 msgstr "{Variable Scheme} idmap-service-type"
 
 #. type: defvr
-#: doc/guix.texi:20603
+#: doc/guix.texi:25292
 msgid "A service type for the Identity Mapper (IDMAP) daemon."
 msgstr "Un type de service pour le démon de correspondance d'identité (IDMAP)."
 
 #. type: deftp
-#: doc/guix.texi:20605
+#: doc/guix.texi:25294
 #, no-wrap
 msgid "{Data Type} idmap-configuration"
 msgstr "{Type de données} idmap-configuration"
 
 #. type: deftp
-#: doc/guix.texi:20608
+#: doc/guix.texi:25297
 msgid "Data type representing the configuration of the IDMAP daemon service.  This type has the following parameters:"
 msgstr "Type de données représentant la configuration du service du démon IDMAP.  Ce type a les paramètres suivants :"
 
 #. type: table
-#: doc/guix.texi:20611
+#: doc/guix.texi:25300
 msgid "The package in which the @command{rpc.idmapd} command is to be found."
 msgstr "Le paquet dans lequel se trouve la commande @command{rpc.idmapd}."
 
 #. type: item
-#: doc/guix.texi:20615
+#: doc/guix.texi:25304
 #, no-wrap
 msgid "@code{domain} (default: @code{#f})"
 msgstr "@code{domain} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:20619
+#: doc/guix.texi:25308
 msgid "The local NFSv4 domain name.  This must be a string or @code{#f}.  If it is @code{#f} then the daemon will use the host's fully qualified domain name."
 msgstr "Le nom de domaine NFSv4 local.  Il faut que ce soit une chaîne de caractères ou @code{#f}.  Si la valeur est @code{#f} le démon utilisera le nom de domaine pleinement qualifié de l'hôte."
 
+#. type: item
+#: doc/guix.texi:25309
+#, no-wrap
+msgid "@code{verbosity} (default: @code{0})"
+msgstr "@code{verbosity} (par défaut : @code{0})"
+
+#. type: table
+#: doc/guix.texi:25311
+msgid "The verbosity level of the daemon."
+msgstr "Le niveau de verbosité du démon."
+
 #. type: Plain text
-#: doc/guix.texi:20630
+#: doc/guix.texi:25322
 msgid "@uref{https://git.savannah.gnu.org/cgit/guix/guix-cuirass.git, Cuirass} is a continuous integration tool for Guix.  It can be used both for development and for providing substitutes to others (@pxref{Substitutes})."
 msgstr "@uref{https://git.savannah.gnu.org/cgit/guix/guix-cuirass.git, Cuirass} est un outil d'intégration continue pour Guix.  On peut l'utiliser aussi bien pour le développement que pour fournir des substituts à d'autres (@pxref{Substituts})."
 
 #. type: Plain text
-#: doc/guix.texi:20632
+#: doc/guix.texi:25324
 msgid "The @code{(gnu services cuirass)} module provides the following service."
 msgstr "Le module @code{(gnu services cuirass)} fournit le service suivant."
 
 #. type: defvr
-#: doc/guix.texi:20633
+#: doc/guix.texi:25325
 #, no-wrap
 msgid "{Scheme Procedure} cuirass-service-type"
 msgstr "{Procédure Scheme} cuirass-service-type"
 
 #. type: defvr
-#: doc/guix.texi:20636
+#: doc/guix.texi:25328
 msgid "The type of the Cuirass service.  Its value must be a @code{cuirass-configuration} object, as described below."
 msgstr "Le type du service Cuirass.  Sa valeur doit être un objet @code{cuirass-configuration}, décrit ci-dessous."
 
 #. type: Plain text
-#: doc/guix.texi:20643
-msgid "To add build jobs, you have to set the @code{specifications} field of the configuration.  Here is an example of a service that polls the Guix repository and builds the packages from a manifest.  Some of the packages are defined in the @code{\"custom-packages\"} input, which is the equivalent of @code{GUIX_PACKAGE_PATH}."
+#: doc/guix.texi:25335
+msgid "To add build jobs, you have to set the @code{specifications} field of the configuration.  Here is an example of a service that polls the Guix repository and builds the packages from a manifest.  Some of the packages are defined in the @code{\"custom-packages\"} input, which is the equivalent of @env{GUIX_PACKAGE_PATH}."
 msgstr "Pour ajouter des travaux de construction, vous devez indiquer le champ @code{specifications} de la configuration.  Voici un exemple de service qui récupère le dépôt Guix et construit les paquets depuis un manifeste.  Certains des paquets sont définis dans l'entrée @code{\"custom-packages\"}, qui est l'équivalent de @code{GUIX_PACKAGE_PATH}."
 
-#. type: example
-#: doc/guix.texi:20671
+#. type: lisp
+#: doc/guix.texi:25363
 #, no-wrap
 msgid ""
 "(define %cuirass-specs\n"
@@ -38992,12 +47708,12 @@ msgid ""
 "                     (#:branch . \"master\")\n"
 "                     (#:no-compile? . #t))\n"
 "                    ((#:name . \"config\")\n"
-"                     (#:url . \"git://git.example.org/config.git\")\n"
+"                     (#:url . \"https://git.example.org/config.git\")\n"
 "                     (#:load-path . \".\")\n"
 "                     (#:branch . \"master\")\n"
 "                     (#:no-compile? . #t))\n"
 "                    ((#:name . \"custom-packages\")\n"
-"                     (#:url . \"git://git.example.org/custom-packages.git\")\n"
+"                     (#:url . \"https://git.example.org/custom-packages.git\")\n"
 "                     (#:load-path . \".\")\n"
 "                     (#:branch . \"master\")\n"
 "                     (#:no-compile? . #t)))))))\n"
@@ -39020,19 +47736,19 @@ msgstr ""
 "                     (#:branch . \"master\")\n"
 "                     (#:no-compile? . #t))\n"
 "                    ((#:name . \"config\")\n"
-"                     (#:url . \"git://git.example.org/config.git\")\n"
+"                     (#:url . \"https://git.example.org/config.git\")\n"
 "                     (#:load-path . \".\")\n"
 "                     (#:branch . \"master\")\n"
 "                     (#:no-compile? . #t))\n"
 "                    ((#:name . \"custom-packages\")\n"
-"                     (#:url . \"git://git.example.org/custom-packages.git\")\n"
+"                     (#:url . \"https://git.example.org/custom-packages.git\")\n"
 "                     (#:load-path . \".\")\n"
 "                     (#:branch . \"master\")\n"
 "                     (#:no-compile? . #t)))))))\n"
 "\n"
 
-#. type: example
-#: doc/guix.texi:20675
+#. type: lisp
+#: doc/guix.texi:25367
 #, no-wrap
 msgid ""
 "(service cuirass-service-type\n"
@@ -39044,1105 +47760,1141 @@ msgstr ""
 "          (specifications %cuirass-specs)))\n"
 
 #. type: Plain text
-#: doc/guix.texi:20680
+#: doc/guix.texi:25372
 msgid "While information related to build jobs is located directly in the specifications, global settings for the @command{cuirass} process are accessible in other @code{cuirass-configuration} fields."
 msgstr "Tandis que les informations liés aux travaux de construction sont directement dans les spécifications, les paramètres globaux pour le processus @command{cuirass} sont accessibles dans les autres champs de @code{cuirass-configuration}."
 
 #. type: deftp
-#: doc/guix.texi:20681
+#: doc/guix.texi:25373
 #, no-wrap
 msgid "{Data Type} cuirass-configuration"
 msgstr "{Type de données} cuirass-configuration"
 
 #. type: deftp
-#: doc/guix.texi:20683
+#: doc/guix.texi:25375
 msgid "Data type representing the configuration of Cuirass."
 msgstr "Type de données représentant la configuration de Cuirass."
 
 #. type: item
-#: doc/guix.texi:20685
+#: doc/guix.texi:25377
 #, no-wrap
 msgid "@code{log-file} (default: @code{\"/var/log/cuirass.log\"})"
 msgstr "@code{log-file} (par défaut : @code{\"/var/log/cuirass.log\"})"
 
 #. type: table
-#: doc/guix.texi:20687
+#: doc/guix.texi:25379
 msgid "Location of the log file."
 msgstr "Emplacement du fichier de journal."
 
 #. type: item
-#: doc/guix.texi:20688
+#: doc/guix.texi:25380
+#, no-wrap
+msgid "@code{web-log-file} (default: @code{\"/var/log/cuirass-web.log\"})"
+msgstr "@code{web-log-file} (par défaut : @code{\"/var/log/cuirass-web.log\"})"
+
+#. type: table
+#: doc/guix.texi:25382
+msgid "Location of the log file used by the web interface."
+msgstr "Emplacement du fichier journal utilisé par l'interface web."
+
+#. type: item
+#: doc/guix.texi:25383
+#, no-wrap
+msgid "@code{queries-log-file} (default: @code{#f})"
+msgstr "@code{queries-log-file} (par défaut : @code{#f})"
+
+#. type: table
+#: doc/guix.texi:25386
+msgid "Location of the SQL queries log file. By default, SQL queries logging is disabled."
+msgstr "Emplacement du fichier journal des requêtes SQL.  Par défaut, les requêtes SQL ne sont pas journalisées."
+
+#. type: item
+#: doc/guix.texi:25387
+#, no-wrap
+msgid "@code{web-queries-log-file} (default: @code{#f})"
+msgstr "@code{web-queries-log-file} (par défaut : @code{#f})"
+
+#. type: table
+#: doc/guix.texi:25390
+msgid "Location of the web SQL queries log file. By default, web SQL queries logging is disabled."
+msgstr "Emplacement du fichier journal des requêtes SQL web.  Par défaut les requêtes SQL web ne sont pas journalisées."
+
+#. type: item
+#: doc/guix.texi:25391
 #, no-wrap
 msgid "@code{cache-directory} (default: @code{\"/var/cache/cuirass\"})"
 msgstr "@code{cache-directory} (par défaut : @code{\"/var/cache/cuirass\"})"
 
 #. type: table
-#: doc/guix.texi:20690
+#: doc/guix.texi:25393
 msgid "Location of the repository cache."
 msgstr "Emplacement du cache du dépôt."
 
 #. type: item
-#: doc/guix.texi:20691
+#: doc/guix.texi:25394
 #, no-wrap
 msgid "@code{user} (default: @code{\"cuirass\"})"
 msgstr "@code{user} (par défaut : @code{\"cuirass\"})"
 
 #. type: table
-#: doc/guix.texi:20693
+#: doc/guix.texi:25396
 msgid "Owner of the @code{cuirass} process."
 msgstr "Propriétaire du processus @code{cuirass}."
 
 #. type: item
-#: doc/guix.texi:20694
+#: doc/guix.texi:25397
 #, no-wrap
 msgid "@code{group} (default: @code{\"cuirass\"})"
 msgstr "@code{group} (par défaut : @code{\"cuirass\"})"
 
 #. type: table
-#: doc/guix.texi:20696
+#: doc/guix.texi:25399
 msgid "Owner's group of the @code{cuirass} process."
 msgstr "Groupe du propriétaire du processus @code{cuirass}."
 
 #. type: item
-#: doc/guix.texi:20697
+#: doc/guix.texi:25400
 #, no-wrap
 msgid "@code{interval} (default: @code{60})"
 msgstr "@code{interval} (par défaut : @code{60})"
 
 #. type: table
-#: doc/guix.texi:20700
+#: doc/guix.texi:25403
 msgid "Number of seconds between the poll of the repositories followed by the Cuirass jobs."
 msgstr "Nombre de secondes entre les mises à jour du dépôt suivis des travaux de Cuirass."
 
 #. type: item
-#: doc/guix.texi:20701
+#: doc/guix.texi:25404
 #, no-wrap
 msgid "@code{database} (default: @code{\"/var/lib/cuirass/cuirass.db\"})"
 msgstr "@code{database} (par défaut : @code{\"/var/lib/cuirass/cuirass.db\"})"
 
 #. type: table
-#: doc/guix.texi:20704
+#: doc/guix.texi:25407
 msgid "Location of sqlite database which contains the build results and previously added specifications."
 msgstr "Emplacement de la base de données sqlite qui contient les résultats de construction et les spécifications précédemment ajoutées."
 
 #. type: item
-#: doc/guix.texi:20705
+#: doc/guix.texi:25408
 #, no-wrap
 msgid "@code{ttl} (default: @code{(* 30 24 3600)})"
 msgstr "@code{ttl} (par défaut : @code{(* 30 24 3600)})"
 
 #. type: table
-#: doc/guix.texi:20709
+#: doc/guix.texi:25412
 msgid "Specifies the time-to-live (TTL) in seconds of garbage collector roots that are registered for build results.  This means that build results are protected from garbage collection for at least @var{ttl} seconds."
 msgstr "Spécifie la durée de vie (TTL) en seconde des racines du ramasse-miette qui sont enregistrés comme des résultats de construction.  Cela signifie que les résultats de construction ne seront pas glanés pendant au moins @var{ttl} secondes."
 
 #. type: item
-#: doc/guix.texi:20710
+#: doc/guix.texi:25413
 #, no-wrap
 msgid "@code{port} (default: @code{8081})"
 msgstr "@code{port} (par défaut : @code{8081})"
 
 #. type: table
-#: doc/guix.texi:20712
+#: doc/guix.texi:25415
 msgid "Port number used by the HTTP server."
 msgstr "Numéro de port utilisé pour le serveur HTTP."
 
 #. type: table
-#: doc/guix.texi:20716
+#: doc/guix.texi:25419
 msgid "Listen on the network interface for @var{host}.  The default is to accept connections from localhost."
 msgstr "Écoute sur l'interface réseau de @var{host}.  La valeur par défaut est d'accepter les connexions depuis localhost."
 
 #. type: item
-#: doc/guix.texi:20717
+#: doc/guix.texi:25420
 #, no-wrap
 msgid "@code{specifications} (default: @code{#~'()})"
 msgstr "@code{specifications} (par défaut : @code{#~'()})"
 
 #. type: table
-#: doc/guix.texi:20723
+#: doc/guix.texi:25426
 msgid "A gexp (@pxref{G-Expressions}) that evaluates to a list of specifications, where a specification is an association list (@pxref{Associations Lists,,, guile, GNU Guile Reference Manual}) whose keys are keywords (@code{#:keyword-example}) as shown in the example above."
 msgstr "Une gexp (@pxref{G-Expressions}) qui s'évalue en une liste de spécifications, où une spécification est une liste d'association (@pxref{Associations Lists,,, guile, GNU Guile Reference Manual}) dont les clefs sont des mots-clefs (@code{#:exemple-de-mot-clef}) comme dans l'exemple plus haut."
 
 #. type: item
-#: doc/guix.texi:20724
+#: doc/guix.texi:25427
 #, no-wrap
 msgid "@code{use-substitutes?} (default: @code{#f})"
 msgstr "@code{use-substitutes?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:20727
+#: doc/guix.texi:25430
 msgid "This allows using substitutes to avoid building every dependencies of a job from source."
 msgstr "Cela permet d'utiliser des substituts pour éviter de construire toutes les dépendance d'un travail depuis les sources."
 
 #. type: item
-#: doc/guix.texi:20728 doc/guix.texi:25286
+#: doc/guix.texi:25431 doc/guix.texi:32053
 #, no-wrap
 msgid "@code{one-shot?} (default: @code{#f})"
 msgstr "@code{one-shot?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:20730
+#: doc/guix.texi:25433
 msgid "Only evaluate specifications and build derivations once."
 msgstr "N'évaluer les spécification et construire les dérivations qu'une seule fois."
 
 #. type: item
-#: doc/guix.texi:20731
+#: doc/guix.texi:25434
 #, no-wrap
 msgid "@code{fallback?} (default: @code{#f})"
 msgstr "@code{fallback?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:20734
+#: doc/guix.texi:25437
 msgid "When substituting a pre-built binary fails, fall back to building packages locally."
 msgstr "Lorsque la substitution d'un binaire pré-construit échoue, revenir à la construction locale du paquet."
 
+#. type: table
+#: doc/guix.texi:25440
+msgid "Extra options to pass when running the Cuirass processes."
+msgstr "Options supplémentaires à passer au lancement des processus de Cuirass."
+
 #. type: item
-#: doc/guix.texi:20735
+#: doc/guix.texi:25441
 #, no-wrap
 msgid "@code{cuirass} (default: @code{cuirass})"
 msgstr "@code{cuirass} (par défaut : @code{cuirass})"
 
 #. type: table
-#: doc/guix.texi:20737
+#: doc/guix.texi:25443
 msgid "The Cuirass package to use."
 msgstr "Le paquet Cuirass à utiliser."
 
 #. type: cindex
-#: doc/guix.texi:20743
+#: doc/guix.texi:25449
 #, no-wrap
 msgid "tlp"
 msgstr "tlp"
 
 #. type: cindex
-#: doc/guix.texi:20744
+#: doc/guix.texi:25450
 #, no-wrap
 msgid "power management with TLP"
 msgstr "gestion de l'énergie avec TLP"
 
 #. type: subsubheading
-#: doc/guix.texi:20745
+#: doc/guix.texi:25451
 #, no-wrap
 msgid "TLP daemon"
-msgstr "démon TLP"
+msgstr "Démon TLP"
 
 #. type: Plain text
-#: doc/guix.texi:20749
+#: doc/guix.texi:25455
 msgid "The @code{(gnu services pm)} module provides a Guix service definition for the Linux power management tool TLP."
 msgstr "Le module @code{(gnu services pm)} fournit une définition de service Guix pour l'outil de gestion d'énergie Linux TLP."
 
 #. type: Plain text
-#: doc/guix.texi:20755
+#: doc/guix.texi:25461
 msgid "TLP enables various powersaving modes in userspace and kernel.  Contrary to @code{upower-service}, it is not a passive, monitoring tool, as it will apply custom settings each time a new power source is detected.  More information can be found at @uref{https://linrunner.de/en/tlp/tlp.html, TLP home page}."
 msgstr "TLP active plusieurs modes un espace utilisateur et dans le noyau.  Contrairement à @code{upower-service}, ce n'est pas un outil passif de surveillance, puisqu'il applique des paramètres personnalisés à chaque fois qu'il détecte une nouvelle source d'énergie.  Vous pouvez trouver plus d'informations sur @uref{https://linrunner.de/en/tlp/tlp.html, la page d'accueil de TLP}."
 
 #. type: deffn
-#: doc/guix.texi:20756
+#: doc/guix.texi:25462
 #, no-wrap
 msgid "{Scheme Variable} tlp-service-type"
 msgstr "{Variable Scheme} tlp-service-type"
 
 #. type: deffn
-#: doc/guix.texi:20760
-msgid "The service type for the TLP tool.  Its value should be a valid TLP configuration (see below).  To use the default settings, simply write:"
-msgstr "Le type de service pour l'outil TLP.  Sa valeur devrait être une configuration valide de TLP (voir plus bas).  Pour utiliser les paramètres par défaut, écrivez simplement :"
+#: doc/guix.texi:25466
+msgid "The service type for the TLP tool.  The default settings are optimised for battery life on most systems, but you can tweak them to your heart's content by adding a valid @code{tlp-configuration}:"
+msgstr "Le type de service pour l'outil TLP.  Les paramètres par défaut sont optimisés pour la durée de la batterie sur la plupart des systèmes, mais vous pouvez les modifier comme vous voulez en ajoutant un @code{tlp-configuration} valide :"
 
-#. type: example
-#: doc/guix.texi:20762
+#. type: lisp
+#: doc/guix.texi:25471
 #, no-wrap
-msgid "(service tlp-service-type)\n"
-msgstr "(service tlp-service-type)\n"
-
-#. type: Plain text
-#: doc/guix.texi:20767
-msgid "By default TLP does not need much configuration but most TLP parameters can be tweaked using @code{tlp-configuration}."
-msgstr "Par défaut TLP n'a pas besoin de beaucoup de configuration mais la plupart des paramètres de TLP peuvent être modifiés avec @code{tlp-configuration}."
+msgid ""
+"(service tlp-service-type\n"
+"         (tlp-configuration\n"
+"          (cpu-scaling-governor-on-ac (list \"performance\"))\n"
+"          (sched-powersave-on-bat? #t)))\n"
+msgstr ""
+"(service tlp-service-type\n"
+"         (tlp-configuration\n"
+"          (cpu-scaling-governor-on-ac (list \"performance\"))\n"
+"          (sched-powersave-on-bat? #t)))\n"
 
 #. type: Plain text
-#: doc/guix.texi:20773
+#: doc/guix.texi:25479
 msgid "Each parameter definition is preceded by its type; for example, @samp{boolean foo} indicates that the @code{foo} parameter should be specified as a boolean.  Types starting with @code{maybe-} denote parameters that won't show up in TLP config file when their value is @code{'disabled}."
 msgstr "Chaque définition de paramètre est précédée par son type ; par exemple, @samp{boolean foo} indique que le paramètre @code{foo} doit être spécifié comme un booléen.  Les types qui commencent par @code{maybe-} dénotent des paramètres qui n'apparaîtront pas dans la configuration de TLP lorsque leur valeur est @code{'disabled}."
 
 #. type: Plain text
-#: doc/guix.texi:20783
+#: doc/guix.texi:25489
 msgid "Available @code{tlp-configuration} fields are:"
 msgstr "Les champs de @code{tlp-configuration} disponibles sont :"
 
 #. type: deftypevr
-#: doc/guix.texi:20784
+#: doc/guix.texi:25490
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} package tlp"
 msgstr "{paramètre de @code{tlp-configuration}} package tlp"
 
 #. type: deftypevr
-#: doc/guix.texi:20786
+#: doc/guix.texi:25492
 msgid "The TLP package."
 msgstr "Le paquet TLP."
 
 #. type: deftypevr
-#: doc/guix.texi:20789
+#: doc/guix.texi:25495
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} boolean tlp-enable?"
 msgstr "{paramètre de @code{tlp-configuration}} boolean tlp-enable?"
 
 #. type: deftypevr
-#: doc/guix.texi:20791
+#: doc/guix.texi:25497
 msgid "Set to true if you wish to enable TLP."
 msgstr "Indiquez vrai si vous souhaitez activer TLP."
 
 #. type: deftypevr
-#: doc/guix.texi:20796
+#: doc/guix.texi:25502
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} string tlp-default-mode"
 msgstr "{paramètre de @code{tlp-configuration}} string tlp-default-mode"
 
 #. type: deftypevr
-#: doc/guix.texi:20799
+#: doc/guix.texi:25505
 msgid "Default mode when no power supply can be detected.  Alternatives are AC and BAT."
 msgstr "Mode par défaut lorsqu'aucune source d'énergie ne peut être détectée.  Les possibilités sont AC et BAT."
 
 #. type: deftypevr
-#: doc/guix.texi:20801
+#: doc/guix.texi:25507
 msgid "Defaults to @samp{\"AC\"}."
 msgstr "La valeur par défaut est @samp{\"AC\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:20804
+#: doc/guix.texi:25510
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} non-negative-integer disk-idle-secs-on-ac"
 msgstr "{paramètre de @code{tlp-configuration}} non-negative-integer disk-idle-secs-on-ac"
 
 #. type: deftypevr
-#: doc/guix.texi:20807
+#: doc/guix.texi:25513
 msgid "Number of seconds Linux kernel has to wait after the disk goes idle, before syncing on AC."
 msgstr "Nombre de secondes que le noyau Linux doit attendre après que les disques s'arrêtent pour se synchroniser quand il est sur secteur."
 
 #. type: deftypevr
-#: doc/guix.texi:20812
+#: doc/guix.texi:25518
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} non-negative-integer disk-idle-secs-on-bat"
 msgstr "{paramètre de @code{tlp-configuration}} non-negative-integer disk-idle-secs-on-bat"
 
 #. type: deftypevr
-#: doc/guix.texi:20814
+#: doc/guix.texi:25520
 msgid "Same as @code{disk-idle-ac} but on BAT mode."
 msgstr "Comme @code{disk-idle-ac} mais en mode batterie."
 
 #. type: deftypevr
-#: doc/guix.texi:20816
+#: doc/guix.texi:25522
 msgid "Defaults to @samp{2}."
 msgstr "La valeur par défaut est @samp{2}."
 
 #. type: deftypevr
-#: doc/guix.texi:20819
+#: doc/guix.texi:25525
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} non-negative-integer max-lost-work-secs-on-ac"
 msgstr "{paramètre de @code{tlp-configuration}} non-negative-integer max-lost-work-secs-on-ac"
 
 #. type: deftypevr
-#: doc/guix.texi:20821
+#: doc/guix.texi:25527
 msgid "Dirty pages flushing periodicity, expressed in seconds."
 msgstr "Périodicité du nettoyage des pages invalidées, en secondes."
 
 #. type: deftypevr
-#: doc/guix.texi:20823 doc/guix.texi:21046 doc/guix.texi:22375
-#: doc/guix.texi:22383
+#: doc/guix.texi:25529 doc/guix.texi:25752 doc/guix.texi:27974
+#: doc/guix.texi:27982
 msgid "Defaults to @samp{15}."
 msgstr "La valeur par défaut est @samp{15}."
 
 #. type: deftypevr
-#: doc/guix.texi:20826
+#: doc/guix.texi:25532
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} non-negative-integer max-lost-work-secs-on-bat"
 msgstr "{paramètre de @code{tlp-configuration}} non-negative-integer max-lost-work-secs-on-bat"
 
 #. type: deftypevr
-#: doc/guix.texi:20828
+#: doc/guix.texi:25534
 msgid "Same as @code{max-lost-work-secs-on-ac} but on BAT mode."
 msgstr "Comme @code{max-lost-work-secs-on-ac} mais en mode batterie."
 
 #. type: deftypevr
-#: doc/guix.texi:20830
+#: doc/guix.texi:25536
 msgid "Defaults to @samp{60}."
 msgstr "La valeur par défaut est @samp{60}."
 
 #. type: deftypevr
-#: doc/guix.texi:20833
+#: doc/guix.texi:25539
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-space-separated-string-list cpu-scaling-governor-on-ac"
 msgstr "{paramètre de @code{tlp-configuration}} maybe-space-separated-string-list cpu-scaling-governor-on-ac"
 
 #. type: deftypevr
-#: doc/guix.texi:20837
+#: doc/guix.texi:25543
 msgid "CPU frequency scaling governor on AC mode.  With intel_pstate driver, alternatives are powersave and performance.  With acpi-cpufreq driver, alternatives are ondemand, powersave, performance and conservative."
 msgstr "Gouverneur de fréquence d'horloge sur secteur.  Avec le pilote intel_pstate, les possibilités sont powersave et performance.  Avec le pilote acpi-cpufreq, les possibilités sont ondemand, powersave, performance et conservative."
 
 #. type: deftypevr
-#: doc/guix.texi:20842
+#: doc/guix.texi:25548
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-space-separated-string-list cpu-scaling-governor-on-bat"
 msgstr "{paramètre de @code{tlp-configuration}} maybe-space-separated-string-list cpu-scaling-governor-on-bat"
 
 #. type: deftypevr
-#: doc/guix.texi:20844
+#: doc/guix.texi:25550
 msgid "Same as @code{cpu-scaling-governor-on-ac} but on BAT mode."
 msgstr "Comme @code{cpu-scaling-governor-on-ac} mais en mode batterie."
 
 #. type: deftypevr
-#: doc/guix.texi:20849
+#: doc/guix.texi:25555
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-scaling-min-freq-on-ac"
 msgstr "{paramètre de @code{tlp-configuration}} maybe-non-negative-integer cpu-scaling-min-freq-on-ac"
 
 #. type: deftypevr
-#: doc/guix.texi:20851
+#: doc/guix.texi:25557
 msgid "Set the min available frequency for the scaling governor on AC."
 msgstr "Indique la fréquence d'horloge minimale pour le gouverneur sur secteur."
 
 #. type: deftypevr
-#: doc/guix.texi:20856
+#: doc/guix.texi:25562
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-scaling-max-freq-on-ac"
 msgstr "{paramètre de @code{tlp-configuration}} maybe-non-negative-integer cpu-scaling-max-freq-on-ac"
 
 #. type: deftypevr
-#: doc/guix.texi:20858
+#: doc/guix.texi:25564
 msgid "Set the max available frequency for the scaling governor on AC."
 msgstr "Indique la fréquence d'horloge maximale pour le gouverneur sur secteur."
 
 #. type: deftypevr
-#: doc/guix.texi:20863
+#: doc/guix.texi:25569
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-scaling-min-freq-on-bat"
 msgstr "{paramètre de @code{tlp-configuration}} maybe-non-negative-integer cpu-scaling-min-freq-on-bat"
 
 #. type: deftypevr
-#: doc/guix.texi:20865
+#: doc/guix.texi:25571
 msgid "Set the min available frequency for the scaling governor on BAT."
 msgstr "Indique la fréquence d'horloge minimale pour le gouverneur sur batterie."
 
 #. type: deftypevr
-#: doc/guix.texi:20870
+#: doc/guix.texi:25576
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-scaling-max-freq-on-bat"
 msgstr "{paramètre de @code{tlp-configuration}} maybe-non-negative-integer cpu-scaling-max-freq-on-bat"
 
 #. type: deftypevr
-#: doc/guix.texi:20872
+#: doc/guix.texi:25578
 msgid "Set the max available frequency for the scaling governor on BAT."
 msgstr "Indique la fréquence d'horloge maximale pour le gouverneur sur batterie."
 
 #. type: deftypevr
-#: doc/guix.texi:20877
+#: doc/guix.texi:25583
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-min-perf-on-ac"
 msgstr "{paramètre de @code{tlp-configuration}} maybe-non-negative-integer cpu-min-perf-on-ac"
 
 #. type: deftypevr
-#: doc/guix.texi:20880
+#: doc/guix.texi:25586
 msgid "Limit the min P-state to control the power dissipation of the CPU, in AC mode.  Values are stated as a percentage of the available performance."
 msgstr "Limite le P-état minimum pour contrôler la dissipation de puissance dans le CPU, sur secteur.  Les valeurs sont indiqués comme un pourcentage des performances disponibles."
 
 #. type: deftypevr
-#: doc/guix.texi:20885
+#: doc/guix.texi:25591
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-max-perf-on-ac"
 msgstr "{paramètre de @code{tlp-configuration}} maybe-non-negative-integer cpu-max-perf-on-ac"
 
 #. type: deftypevr
-#: doc/guix.texi:20888
+#: doc/guix.texi:25594
 msgid "Limit the max P-state to control the power dissipation of the CPU, in AC mode.  Values are stated as a percentage of the available performance."
 msgstr "Limite le P-état maximum pour contrôler la dissipation de puissance dans le CPU, sur secteur.  Les valeurs sont indiqués comme un pourcentage des performances disponibles."
 
 #. type: deftypevr
-#: doc/guix.texi:20893
+#: doc/guix.texi:25599
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-min-perf-on-bat"
 msgstr "{paramètre de @code{tlp-configuration}} maybe-non-negative-integer cpu-min-perf-on-bat"
 
 #. type: deftypevr
-#: doc/guix.texi:20895
+#: doc/guix.texi:25601
 msgid "Same as @code{cpu-min-perf-on-ac} on BAT mode."
 msgstr "Comme @code{cpu-min-perf-on-ac} mais en mode batterie."
 
 #. type: deftypevr
-#: doc/guix.texi:20900
+#: doc/guix.texi:25606
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-max-perf-on-bat"
 msgstr "{paramètre de @code{tlp-configuration}} maybe-non-negative-integer cpu-max-perf-on-bat"
 
 #. type: deftypevr
-#: doc/guix.texi:20902
+#: doc/guix.texi:25608
 msgid "Same as @code{cpu-max-perf-on-ac} on BAT mode."
 msgstr "Comme @code{cpu-max-perf-on-ac} mais en mode batterie."
 
 #. type: deftypevr
-#: doc/guix.texi:20907
+#: doc/guix.texi:25613
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-boolean cpu-boost-on-ac?"
 msgstr "{paramètre de @code{tlp-configuration}} maybe-boolean cpu-boost-on-ac?"
 
 #. type: deftypevr
-#: doc/guix.texi:20909
+#: doc/guix.texi:25615
 msgid "Enable CPU turbo boost feature on AC mode."
 msgstr "Active la fonctionnalité turbo boost du CPU sur secteur."
 
 #. type: deftypevr
-#: doc/guix.texi:20914
+#: doc/guix.texi:25620
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-boolean cpu-boost-on-bat?"
 msgstr "{paramètre de @code{tlp-configuration}} maybe-boolean cpu-boost-on-bat?"
 
 #. type: deftypevr
-#: doc/guix.texi:20916
+#: doc/guix.texi:25622
 msgid "Same as @code{cpu-boost-on-ac?} on BAT mode."
 msgstr "Comme @code{cpu-boost-on-ac?} mais en mode batterie."
 
 #. type: deftypevr
-#: doc/guix.texi:20921
+#: doc/guix.texi:25627
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} boolean sched-powersave-on-ac?"
 msgstr "{paramètre de @code{tlp-configuration}} boolean sched-powersave-on-ac?"
 
 #. type: deftypevr
-#: doc/guix.texi:20924
+#: doc/guix.texi:25630
 msgid "Allow Linux kernel to minimize the number of CPU cores/hyper-threads used under light load conditions."
 msgstr "Permet au noyau Linux de minimiser le nombre de cœurs/hyper-threads CPU utilisés lorsque la charge est faible."
 
 #. type: deftypevr
-#: doc/guix.texi:20929
+#: doc/guix.texi:25635
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} boolean sched-powersave-on-bat?"
 msgstr "{paramètre de @code{tlp-configuration}} boolean sched-powersave-on-bat?"
 
 #. type: deftypevr
-#: doc/guix.texi:20931
+#: doc/guix.texi:25637
 msgid "Same as @code{sched-powersave-on-ac?} but on BAT mode."
 msgstr "Comme @code{sched-powersave-on-ac?} mais en mode batterie."
 
 #. type: deftypevr
-#: doc/guix.texi:20936
+#: doc/guix.texi:25642
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} boolean nmi-watchdog?"
 msgstr "{paramètre de @code{tlp-configuration}} boolean nmi-watchdog?"
 
 #. type: deftypevr
-#: doc/guix.texi:20938
+#: doc/guix.texi:25644
 msgid "Enable Linux kernel NMI watchdog."
 msgstr "Active le chien de garde NMI du noyau Linux."
 
 #. type: deftypevr
-#: doc/guix.texi:20943
+#: doc/guix.texi:25649
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-string phc-controls"
 msgstr "{paramètre de @code{tlp-configuration}} maybe-string phc-controls"
 
 #. type: deftypevr
-#: doc/guix.texi:20946
+#: doc/guix.texi:25652
 msgid "For Linux kernels with PHC patch applied, change CPU voltages.  An example value would be @samp{\"F:V F:V F:V F:V\"}."
 msgstr "Pour les noyaux Linux avec le correctif PHC, change le voltage du CPU.  Une valeur serait par exemple @samp{\"F:V F:V F:V F:V\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:20951
+#: doc/guix.texi:25657
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} string energy-perf-policy-on-ac"
 msgstr "{paramètre de @code{tlp-configuration}} string energy-perf-policy-on-ac"
 
 #. type: deftypevr
-#: doc/guix.texi:20954
+#: doc/guix.texi:25660
 msgid "Set CPU performance versus energy saving policy on AC.  Alternatives are performance, normal, powersave."
 msgstr "Indique le niveau de performance du CPU par rapport à la politique de gestion de l'énergie sur secteur.  Les possibilités sont performance, normal et powersave."
 
 #. type: deftypevr
-#: doc/guix.texi:20956 doc/guix.texi:21054 doc/guix.texi:21084
+#: doc/guix.texi:25662 doc/guix.texi:25760 doc/guix.texi:25790
 msgid "Defaults to @samp{\"performance\"}."
 msgstr "La valeur par défaut est @samp{\"performance\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:20959
+#: doc/guix.texi:25665
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} string energy-perf-policy-on-bat"
 msgstr "{paramètre de @code{tlp-configuration}} string energy-perf-policy-on-bat"
 
 #. type: deftypevr
-#: doc/guix.texi:20961
+#: doc/guix.texi:25667
 msgid "Same as @code{energy-perf-policy-ac} but on BAT mode."
 msgstr "Comme @code{energy-perf-policy-ac} mais en mode batterie."
 
 #. type: deftypevr
-#: doc/guix.texi:20963 doc/guix.texi:21061
+#: doc/guix.texi:25669 doc/guix.texi:25767
 msgid "Defaults to @samp{\"powersave\"}."
 msgstr "La valeur par défaut est @samp{\"powersave\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:20966
+#: doc/guix.texi:25672
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} space-separated-string-list disks-devices"
 msgstr "{paramètre de @code{tlp-configuration}} space-separated-string-list disks-devices"
 
 #. type: deftypevr
-#: doc/guix.texi:20968
+#: doc/guix.texi:25674
 msgid "Hard disk devices."
 msgstr "Périphériques de disque dur."
 
 #. type: deftypevr
-#: doc/guix.texi:20971
+#: doc/guix.texi:25677
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} space-separated-string-list disk-apm-level-on-ac"
 msgstr "{paramètre de @code{tlp-configuration}} space-separated-string-list disk-apm-level-on-ac"
 
 #. type: deftypevr
-#: doc/guix.texi:20973
+#: doc/guix.texi:25679
 msgid "Hard disk advanced power management level."
 msgstr "Niveau de gestion de l'énergie avancé des disques durs."
 
 #. type: deftypevr
-#: doc/guix.texi:20976
+#: doc/guix.texi:25682
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} space-separated-string-list disk-apm-level-on-bat"
 msgstr "{paramètre de @code{tlp-configuration}} space-separated-string-list disk-apm-level-on-bat"
 
 #. type: deftypevr
-#: doc/guix.texi:20978
+#: doc/guix.texi:25684
 msgid "Same as @code{disk-apm-bat} but on BAT mode."
 msgstr "Comme @code{disk-apm-bat} mais en mode batterie."
 
 #. type: deftypevr
-#: doc/guix.texi:20981
+#: doc/guix.texi:25687
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-space-separated-string-list disk-spindown-timeout-on-ac"
 msgstr "{paramètre de @code{tlp-configuration}} maybe-space-separated-string-list disk-spindown-timeout-on-ac"
 
 #. type: deftypevr
-#: doc/guix.texi:20984
+#: doc/guix.texi:25690
 msgid "Hard disk spin down timeout.  One value has to be specified for each declared hard disk."
 msgstr "Délai d'attente pour arrêter de faire tourner les disques.  Une valeur doit être spécifiée pour chaque disque dur déclaré."
 
 #. type: deftypevr
-#: doc/guix.texi:20989
+#: doc/guix.texi:25695
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-space-separated-string-list disk-spindown-timeout-on-bat"
 msgstr "{paramètre de @code{tlp-configuration}} maybe-space-separated-string-list disk-spindown-timeout-on-bat"
 
 #. type: deftypevr
-#: doc/guix.texi:20991
+#: doc/guix.texi:25697
 msgid "Same as @code{disk-spindown-timeout-on-ac} but on BAT mode."
 msgstr "Comme @code{disk-spindown-timeout-on-ac} mais en mode batterie."
 
 #. type: deftypevr
-#: doc/guix.texi:20996
+#: doc/guix.texi:25702
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-space-separated-string-list disk-iosched"
 msgstr "{paramètre de @code{tlp-configuration}} maybe-space-separated-string-list disk-iosched"
 
 #. type: deftypevr
-#: doc/guix.texi:21000
+#: doc/guix.texi:25706
 msgid "Select IO scheduler for disk devices.  One value has to be specified for each declared hard disk.  Example alternatives are cfq, deadline and noop."
 msgstr "Sélectionne l'ordonnanceur d'entrées-sorties pour le disque.  Une valeur doit être spécifiée pour chaque disque déclaré.  Les possibilités sont par exemple cfq, deadline et noop."
 
 #. type: deftypevr
-#: doc/guix.texi:21005
+#: doc/guix.texi:25711
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} string sata-linkpwr-on-ac"
 msgstr "{paramètre de @code{tlp-configuration}} string sata-linkpwr-on-ac"
 
 #. type: deftypevr
-#: doc/guix.texi:21008
+#: doc/guix.texi:25714
 msgid "SATA aggressive link power management (ALPM) level.  Alternatives are min_power, medium_power, max_performance."
 msgstr "Niveau de gestion de l'énergie des lien SATA aggressive (ALPM).  Les possibilités sont min_power, medium_power et max_performance."
 
 #. type: deftypevr
-#: doc/guix.texi:21010
+#: doc/guix.texi:25716
 msgid "Defaults to @samp{\"max_performance\"}."
 msgstr "La valeur par défaut est @samp{\"max_performance\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:21013
+#: doc/guix.texi:25719
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} string sata-linkpwr-on-bat"
 msgstr "{paramètre de @code{tlp-configuration}} string sata-linkpwr-on-bat"
 
 #. type: deftypevr
-#: doc/guix.texi:21015
+#: doc/guix.texi:25721
 msgid "Same as @code{sata-linkpwr-ac} but on BAT mode."
 msgstr "Comme @code{sata-linkpwr-ac} mais en mode batterie."
 
 #. type: deftypevr
-#: doc/guix.texi:21017
+#: doc/guix.texi:25723
 msgid "Defaults to @samp{\"min_power\"}."
 msgstr "La valeur par défaut est @samp{\"min_power\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:21020
+#: doc/guix.texi:25726
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-string sata-linkpwr-blacklist"
 msgstr "{paramètre de @code{tlp-configuration}} maybe-string sata-linkpwr-blacklist"
 
 #. type: deftypevr
-#: doc/guix.texi:21022
+#: doc/guix.texi:25728
 msgid "Exclude specified SATA host devices for link power management."
 msgstr "Exclu les périphériques SATA spécifiés de la gestion de l'énergie des liens."
 
 #. type: deftypevr
-#: doc/guix.texi:21027
+#: doc/guix.texi:25733
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-on-off-boolean ahci-runtime-pm-on-ac?"
 msgstr "{paramètre de @code{tlp-configuration}} maybe-on-off-boolean ahci-runtime-pm-on-ac?"
 
 #. type: deftypevr
-#: doc/guix.texi:21030
+#: doc/guix.texi:25736
 msgid "Enable Runtime Power Management for AHCI controller and disks on AC mode."
 msgstr "Active la gestion de l'énergie à l'exécution pour les contrôleurs AHCI et les disques, sur secteur."
 
 #. type: deftypevr
-#: doc/guix.texi:21035
+#: doc/guix.texi:25741
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-on-off-boolean ahci-runtime-pm-on-bat?"
 msgstr "{paramètre de @code{tlp-configuration}} maybe-on-off-boolean ahci-runtime-pm-on-bat?"
 
 #. type: deftypevr
-#: doc/guix.texi:21037
+#: doc/guix.texi:25743
 msgid "Same as @code{ahci-runtime-pm-on-ac} on BAT mode."
 msgstr "Comme @code{ahci-runtime-pm-on-ac} mais en mode batterie."
 
 #. type: deftypevr
-#: doc/guix.texi:21042
+#: doc/guix.texi:25748
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} non-negative-integer ahci-runtime-pm-timeout"
 msgstr "{paramètre de @code{tlp-configuration}} non-negative-integer ahci-runtime-pm-timeout"
 
 #. type: deftypevr
-#: doc/guix.texi:21044
+#: doc/guix.texi:25750
 msgid "Seconds of inactivity before disk is suspended."
 msgstr "Secondes d'inactivités avant de suspendre les disques."
 
 #. type: deftypevr
-#: doc/guix.texi:21049
+#: doc/guix.texi:25755
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} string pcie-aspm-on-ac"
 msgstr "{paramètre de @code{tlp-configuration}} string pcie-aspm-on-ac"
 
 #. type: deftypevr
-#: doc/guix.texi:21052
+#: doc/guix.texi:25758
 msgid "PCI Express Active State Power Management level.  Alternatives are default, performance, powersave."
 msgstr "Niveau de gestion de l'énergie des états actifs de PCI Express.  Les possibilités sont default, performance et powersave."
 
 #. type: deftypevr
-#: doc/guix.texi:21057
+#: doc/guix.texi:25763
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} string pcie-aspm-on-bat"
 msgstr "{paramètre de @code{tlp-configuration}} string pcie-aspm-on-bat"
 
 #. type: deftypevr
-#: doc/guix.texi:21059
+#: doc/guix.texi:25765
 msgid "Same as @code{pcie-aspm-ac} but on BAT mode."
 msgstr "Comme @code{pcie-aspm-ac} mais en mode batterie."
 
 #. type: deftypevr
-#: doc/guix.texi:21064
+#: doc/guix.texi:25770
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} string radeon-power-profile-on-ac"
 msgstr "{paramètre de @code{tlp-configuration}} string radeon-power-profile-on-ac"
 
 #. type: deftypevr
-#: doc/guix.texi:21067
+#: doc/guix.texi:25773
 msgid "Radeon graphics clock speed level.  Alternatives are low, mid, high, auto, default."
 msgstr "Niveau de vitesse de l'horloge des cartes graphiques Radeon.  Les possibilités sont low, mid, high, auto et default."
 
 #. type: deftypevr
-#: doc/guix.texi:21069
+#: doc/guix.texi:25775
 msgid "Defaults to @samp{\"high\"}."
 msgstr "La valeur par défaut est @samp{\"high\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:21072
+#: doc/guix.texi:25778
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} string radeon-power-profile-on-bat"
 msgstr "{paramètre de @code{tlp-configuration}} string radeon-power-profile-on-bat"
 
 #. type: deftypevr
-#: doc/guix.texi:21074
+#: doc/guix.texi:25780
 msgid "Same as @code{radeon-power-ac} but on BAT mode."
 msgstr "Comme @code{radeon-power-ac} mais en mode batterie."
 
 #. type: deftypevr
-#: doc/guix.texi:21076
+#: doc/guix.texi:25782
 msgid "Defaults to @samp{\"low\"}."
 msgstr "La valeur par défaut est @samp{\"low\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:21079
+#: doc/guix.texi:25785
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} string radeon-dpm-state-on-ac"
 msgstr "{paramètre de @code{tlp-configuration}} string radeon-dpm-state-on-ac"
 
 #. type: deftypevr
-#: doc/guix.texi:21082
+#: doc/guix.texi:25788
 msgid "Radeon dynamic power management method (DPM).  Alternatives are battery, performance."
 msgstr "Méthode de gestion de l'énergie dynamique de Radeon (DPM).  Les possibilités sont battery et performance."
 
 #. type: deftypevr
-#: doc/guix.texi:21087
+#: doc/guix.texi:25793
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} string radeon-dpm-state-on-bat"
 msgstr "{paramètre de @code{tlp-configuration}} string radeon-dpm-state-on-bat"
 
 #. type: deftypevr
-#: doc/guix.texi:21089
+#: doc/guix.texi:25795
 msgid "Same as @code{radeon-dpm-state-ac} but on BAT mode."
 msgstr "Comme @code{radeon-dpm-state-ac} mais en mode batterie."
 
 #. type: deftypevr
-#: doc/guix.texi:21091
+#: doc/guix.texi:25797
 msgid "Defaults to @samp{\"battery\"}."
 msgstr "La valeur par défaut est @samp{\"battery\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:21094
+#: doc/guix.texi:25800
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} string radeon-dpm-perf-level-on-ac"
 msgstr "{paramètre de @code{tlp-configuration}} string radeon-dpm-perf-level-on-ac"
 
 #. type: deftypevr
-#: doc/guix.texi:21096
+#: doc/guix.texi:25802
 msgid "Radeon DPM performance level.  Alternatives are auto, low, high."
 msgstr "Niveau de performance de DPM.  Les possibilités sont auto, low et high."
 
 #. type: deftypevr
-#: doc/guix.texi:21098 doc/guix.texi:21105 doc/guix.texi:21179
+#: doc/guix.texi:25804 doc/guix.texi:25811 doc/guix.texi:25885
 msgid "Defaults to @samp{\"auto\"}."
 msgstr "La valeur par défaut est @samp{\"auto\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:21101
+#: doc/guix.texi:25807
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} string radeon-dpm-perf-level-on-bat"
 msgstr "{paramètre de @code{tlp-configuration}} string radeon-dpm-perf-level-on-bat"
 
 #. type: deftypevr
-#: doc/guix.texi:21103
+#: doc/guix.texi:25809
 msgid "Same as @code{radeon-dpm-perf-ac} but on BAT mode."
 msgstr "Comme @code{radeon-dpm-perf-ac} mais en mode batterie."
 
 #. type: deftypevr
-#: doc/guix.texi:21108
+#: doc/guix.texi:25814
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} on-off-boolean wifi-pwr-on-ac?"
 msgstr "{paramètre de @code{tlp-configuration}} on-off-boolean wifi-pwr-on-ac?"
 
 #. type: deftypevr
-#: doc/guix.texi:21110
+#: doc/guix.texi:25816
 msgid "Wifi power saving mode."
 msgstr "Mode de gestion de l'énergie wifi."
 
 #. type: deftypevr
-#: doc/guix.texi:21115
+#: doc/guix.texi:25821
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} on-off-boolean wifi-pwr-on-bat?"
 msgstr "{paramètre de @code{tlp-configuration}} on-off-boolean wifi-pwr-on-bat?"
 
 #. type: deftypevr
-#: doc/guix.texi:21117
+#: doc/guix.texi:25823
 msgid "Same as @code{wifi-power-ac?} but on BAT mode."
 msgstr "Comme @code{wifi-power-ac?} mais en mode batterie."
 
 #. type: deftypevr
-#: doc/guix.texi:21122
+#: doc/guix.texi:25828
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} y-n-boolean wol-disable?"
 msgstr "{paramètre de @code{tlp-configuration}} y-n-boolean wol-disable?"
 
 #. type: deftypevr
-#: doc/guix.texi:21124
+#: doc/guix.texi:25830
 msgid "Disable wake on LAN."
 msgstr "Désactive wake on LAN."
 
 #. type: deftypevr
-#: doc/guix.texi:21129
+#: doc/guix.texi:25835
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} non-negative-integer sound-power-save-on-ac"
 msgstr "{paramètre de @code{tlp-configuration}} non-negative-integer sound-power-save-on-ac"
 
 #. type: deftypevr
-#: doc/guix.texi:21132
+#: doc/guix.texi:25838
 msgid "Timeout duration in seconds before activating audio power saving on Intel HDA and AC97 devices.  A value of 0 disables power saving."
 msgstr "Durée d'attente en secondes avant d'activer la gestion de l'énergie audio sur les périphériques Intel HDA et AC97.  La valeur 0 désactive la gestion de l'énergie."
 
 #. type: deftypevr
-#: doc/guix.texi:21137
+#: doc/guix.texi:25843
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} non-negative-integer sound-power-save-on-bat"
 msgstr "{paramètre de @code{tlp-configuration}} non-negative-integer sound-power-save-on-bat"
 
 #. type: deftypevr
-#: doc/guix.texi:21139
+#: doc/guix.texi:25845
 msgid "Same as @code{sound-powersave-ac} but on BAT mode."
 msgstr "Comme @code{sound-powersave-ac} mais en mode batterie."
 
 #. type: deftypevr
-#: doc/guix.texi:21141 doc/guix.texi:21668 doc/guix.texi:21812
-msgid "Defaults to @samp{1}."
-msgstr "La valeur par défaut est @samp{1}."
-
-#. type: deftypevr
-#: doc/guix.texi:21144
+#: doc/guix.texi:25850
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} y-n-boolean sound-power-save-controller?"
 msgstr "{paramètre de @code{tlp-configuration}} y-n-boolean sound-power-save-controller?"
 
 #. type: deftypevr
-#: doc/guix.texi:21146
+#: doc/guix.texi:25852
 msgid "Disable controller in powersaving mode on Intel HDA devices."
 msgstr "Désactive le contrôleur en mode de gestion de l'énergie sur les périphériques Intel HDA."
 
 #. type: deftypevr
-#: doc/guix.texi:21151
+#: doc/guix.texi:25857
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} boolean bay-poweroff-on-bat?"
 msgstr "{paramètre de @code{tlp-configuration}} boolean bay-poweroff-on-bat?"
 
 #. type: deftypevr
-#: doc/guix.texi:21155
+#: doc/guix.texi:25861
 msgid "Enable optical drive in UltraBay/MediaBay on BAT mode.  Drive can be powered on again by releasing (and reinserting) the eject lever or by pressing the disc eject button on newer models."
 msgstr "Active le périphérique optique AltraBay/MediaBay en mode batterie.  Le périphérique peut être de nouveau alimenté en lâchant (et en réinsérant) le levier d'éjection ou en appuyant sur le bouton d'éjection sur les modèles plus récents."
 
 #. type: deftypevr
-#: doc/guix.texi:21160
+#: doc/guix.texi:25866
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} string bay-device"
 msgstr "{paramètre de @code{tlp-configuration}} string bay-device"
 
 #. type: deftypevr
-#: doc/guix.texi:21162
+#: doc/guix.texi:25868
 msgid "Name of the optical drive device to power off."
 msgstr "Nom du périphérique optique à éteindre."
 
 #. type: deftypevr
-#: doc/guix.texi:21164
+#: doc/guix.texi:25870
 msgid "Defaults to @samp{\"sr0\"}."
 msgstr "La valeur par défaut est @samp{\"sr0\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:21167
+#: doc/guix.texi:25873
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} string runtime-pm-on-ac"
 msgstr "{paramètre de @code{tlp-configuration}} string runtime-pm-on-ac"
 
 #. type: deftypevr
-#: doc/guix.texi:21170
+#: doc/guix.texi:25876
 msgid "Runtime Power Management for PCI(e) bus devices.  Alternatives are on and auto."
 msgstr "Gestion de l'énergie à l'exécution sur les bus PCI(e).  Les possibilités sont on et auto."
 
 #. type: deftypevr
-#: doc/guix.texi:21172
+#: doc/guix.texi:25878
 msgid "Defaults to @samp{\"on\"}."
 msgstr "La valeur par défaut est @samp{\"on\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:21175
+#: doc/guix.texi:25881
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} string runtime-pm-on-bat"
 msgstr "{paramètre de @code{tlp-configuration}} string runtime-pm-on-bat"
 
 #. type: deftypevr
-#: doc/guix.texi:21177
+#: doc/guix.texi:25883
 msgid "Same as @code{runtime-pm-ac} but on BAT mode."
 msgstr "Comme @code{runtime-pm-ac} mais en mode batterie."
 
 #. type: deftypevr
-#: doc/guix.texi:21182
+#: doc/guix.texi:25888
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} boolean runtime-pm-all?"
 msgstr "{paramètre de @code{tlp-configuration}} boolean runtime-pm-all?"
 
 #. type: deftypevr
-#: doc/guix.texi:21185
+#: doc/guix.texi:25891
 msgid "Runtime Power Management for all PCI(e) bus devices, except blacklisted ones."
 msgstr "Gestion de l'énergie à l'exécution pour tous les bus PCI(e), sauf ceux en liste noire."
 
 #. type: deftypevr
-#: doc/guix.texi:21190
+#: doc/guix.texi:25896
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-space-separated-string-list runtime-pm-blacklist"
 msgstr "{paramètre de @code{tlp-configuration}} maybe-space-separated-string-list runtime-pm-blacklist"
 
 #. type: deftypevr
-#: doc/guix.texi:21192
+#: doc/guix.texi:25898
 msgid "Exclude specified PCI(e) device addresses from Runtime Power Management."
 msgstr "Exclue les adresses des périphériques PCI(e) spécifiés de la gestion de l'énergie à l'exécution."
 
 #. type: deftypevr
-#: doc/guix.texi:21197
+#: doc/guix.texi:25903
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} space-separated-string-list runtime-pm-driver-blacklist"
 msgstr "{paramètre de @code{tlp-configuration}} space-separated-string-list runtime-pm-driver-blacklist"
 
 #. type: deftypevr
-#: doc/guix.texi:21200
+#: doc/guix.texi:25906
 msgid "Exclude PCI(e) devices assigned to the specified drivers from Runtime Power Management."
 msgstr "Exclue les périphériques PCI(e) assignés aux pilotes spécifiés de la gestion de l'énergie à l'exécution."
 
 #. type: deftypevr
-#: doc/guix.texi:21203
+#: doc/guix.texi:25909
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} boolean usb-autosuspend?"
 msgstr "{paramètre de @code{tlp-configuration}} boolean usb-autosuspend?"
 
 #. type: deftypevr
-#: doc/guix.texi:21205
+#: doc/guix.texi:25911
 msgid "Enable USB autosuspend feature."
 msgstr "Active la fonctionnalité de mise en veille automatique de l'USB."
 
 #. type: deftypevr
-#: doc/guix.texi:21210
+#: doc/guix.texi:25916
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-string usb-blacklist"
 msgstr "{paramètre de @code{tlp-configuration}} maybe-string usb-blacklist"
 
 #. type: deftypevr
-#: doc/guix.texi:21212
+#: doc/guix.texi:25918
 msgid "Exclude specified devices from USB autosuspend."
 msgstr "Exclue les périphériques spécifiés de la mise en veille automatique de l'USB."
 
 #. type: deftypevr
-#: doc/guix.texi:21217
+#: doc/guix.texi:25923
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} boolean usb-blacklist-wwan?"
 msgstr "{paramètre de @code{tlp-configuration}} boolean usb-blacklist-wwan?"
 
 #. type: deftypevr
-#: doc/guix.texi:21219
+#: doc/guix.texi:25925
 msgid "Exclude WWAN devices from USB autosuspend."
 msgstr "Exclue les périphériques WWAN de la mise en veille automatique de l'USB."
 
 #. type: deftypevr
-#: doc/guix.texi:21224
+#: doc/guix.texi:25930
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-string usb-whitelist"
 msgstr "{paramètre de @code{tlp-configuration}} maybe-string usb-whitelist"
 
 #. type: deftypevr
-#: doc/guix.texi:21227
+#: doc/guix.texi:25933
 msgid "Include specified devices into USB autosuspend, even if they are already excluded by the driver or via @code{usb-blacklist-wwan?}."
 msgstr "Inclue les périphériques spécifiés dans la mise en veille automatique de l'USB, même s'ils sont déjà exclus par le pilote ou via @code{usb-blacklist-wwan?}."
 
 #. type: deftypevr
-#: doc/guix.texi:21232
+#: doc/guix.texi:25938
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-boolean usb-autosuspend-disable-on-shutdown?"
 msgstr "{paramètre de @code{tlp-configuration}} maybe-boolean usb-autosuspend-disable-on-shutdown?"
 
 #. type: deftypevr
-#: doc/guix.texi:21234
+#: doc/guix.texi:25940
 msgid "Enable USB autosuspend before shutdown."
 msgstr "Active la mise en veille de l'USB avant l'arrêt."
 
 #. type: deftypevr
-#: doc/guix.texi:21239
+#: doc/guix.texi:25945
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} boolean restore-device-state-on-startup?"
 msgstr "{paramètre de @code{tlp-configuration}} boolean restore-device-state-on-startup?"
 
 #. type: deftypevr
-#: doc/guix.texi:21242
+#: doc/guix.texi:25948
 msgid "Restore radio device state (bluetooth, wifi, wwan) from previous shutdown on system startup."
 msgstr "Restaure l'état des périphériques radio (bluetooth, wifi, wwan) du dernier arrêt au démarrage du système."
 
 #. type: cindex
-#: doc/guix.texi:21247
+#: doc/guix.texi:25953
 #, no-wrap
 msgid "thermald"
 msgstr "thermald"
 
 #. type: cindex
-#: doc/guix.texi:21248
+#: doc/guix.texi:25954
 #, no-wrap
 msgid "CPU frequency scaling with thermald"
-msgstr "gestion de la fréquence du CPU avec thermald"
+msgstr "Gestion de la fréquence du CPU avec thermald"
 
 #. type: subsubheading
-#: doc/guix.texi:21249
+#: doc/guix.texi:25955
 #, no-wrap
 msgid "Thermald daemon"
-msgstr "démon Thermald"
+msgstr "Démon Thermald"
 
 #. type: Plain text
-#: doc/guix.texi:21253
+#: doc/guix.texi:25959
 msgid "The @code{(gnu services pm)} module provides an interface to thermald, a CPU frequency scaling service which helps prevent overheating."
 msgstr "Le module @code{(gnu services pm)} fournit une interface pour thermald, un service de gestion de l'horloge CPU qui aide à éviter la surchauffe."
 
 #. type: defvr
-#: doc/guix.texi:21254
+#: doc/guix.texi:25960
 #, no-wrap
 msgid "{Scheme Variable} thermald-service-type"
 msgstr "{Variable Scheme} thermald-service-type"
 
 #. type: defvr
-#: doc/guix.texi:21259
+#: doc/guix.texi:25965
 msgid "This is the service type for @uref{https://01.org/linux-thermal-daemon/, thermald}, the Linux Thermal Daemon, which is responsible for controlling the thermal state of processors and preventing overheating."
 msgstr "C'est le type de service pour @uref{https://01.org/linux-thermal-daemon/, thermald}, le démon de température de Linux, responsable du contrôle de l'état thermique des processeurs et d'éviter la surchauffe."
 
 #. type: deftp
-#: doc/guix.texi:21261
+#: doc/guix.texi:25967
 #, no-wrap
 msgid "{Data Type} thermald-configuration"
 msgstr "{Type de données} thermald-configuration"
 
 #. type: deftp
-#: doc/guix.texi:21263
+#: doc/guix.texi:25969
 msgid "Data type representing the configuration of @code{thermald-service-type}."
 msgstr "Type de données représentant la configuration de @code{thermald-service-type}."
 
 #. type: item
-#: doc/guix.texi:21265
+#: doc/guix.texi:25971
 #, no-wrap
 msgid "@code{ignore-cpuid-check?} (default: @code{#f})"
 msgstr "@code{ignore-cpuid-check?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:21267
+#: doc/guix.texi:25973
 msgid "Ignore cpuid check for supported CPU models."
 msgstr "Ignore la vérification des modèles CPU supportés avec cpuid."
 
 #. type: item
-#: doc/guix.texi:21268
+#: doc/guix.texi:25974
 #, no-wrap
 msgid "@code{thermald} (default: @var{thermald})"
 msgstr "@code{thermald} (par défaut : @var{thermald})"
 
 #. type: table
-#: doc/guix.texi:21270
+#: doc/guix.texi:25976
 msgid "Package object of thermald."
 msgstr "Objet du paquet de thermald."
 
 #. type: Plain text
-#: doc/guix.texi:21279
+#: doc/guix.texi:25985
 msgid "The @code{(gnu services audio)} module provides a service to start MPD (the Music Player Daemon)."
 msgstr "Le module @code{(gnu services audio)} fournit un service qui lance MPD (le démon de lecture de musique)."
 
 #. type: cindex
-#: doc/guix.texi:21280
+#: doc/guix.texi:25986
 #, no-wrap
 msgid "mpd"
 msgstr "mpd"
 
 #. type: subsubheading
-#: doc/guix.texi:21281
+#: doc/guix.texi:25987
 #, no-wrap
 msgid "Music Player Daemon"
 msgstr "Music Player Daemon"
 
 #. type: Plain text
-#: doc/guix.texi:21286
+#: doc/guix.texi:25992
 msgid "The Music Player Daemon (MPD) is a service that can play music while being controlled from the local machine or over the network by a variety of clients."
 msgstr "Le démon de lecture de musique (MPD) est un service qui joue de la musique tout en étant contrôlé depuis la machine locale ou à travers le réseau par divers clients."
 
 #. type: Plain text
-#: doc/guix.texi:21289
+#: doc/guix.texi:25995
 msgid "The following example shows how one might run @code{mpd} as user @code{\"bob\"} on port @code{6666}.  It uses pulseaudio for output."
 msgstr "L'exemple suivant montre comment on peut lancer @code{mpd} en tant qu'utilisateur @code{\"bob\"} sur le port @code{6666}.  Il utilise pulseaudio pour la sortie audio."
 
-#. type: example
-#: doc/guix.texi:21295
+#. type: lisp
+#: doc/guix.texi:26001
 #, no-wrap
 msgid ""
 "(service mpd-service-type\n"
@@ -40156,150 +48908,268 @@ msgstr ""
 "          (port \"6666\")))\n"
 
 #. type: defvr
-#: doc/guix.texi:21297
+#: doc/guix.texi:26003
 #, no-wrap
 msgid "{Scheme Variable} mpd-service-type"
 msgstr "{Variable Scheme} mpd-service-type"
 
 #. type: defvr
-#: doc/guix.texi:21299
+#: doc/guix.texi:26005
 msgid "The service type for @command{mpd}"
 msgstr "Le type de service pour @command{mpd}."
 
 #. type: deftp
-#: doc/guix.texi:21301
+#: doc/guix.texi:26007
 #, no-wrap
 msgid "{Data Type} mpd-configuration"
 msgstr "{Type de données} mpd-configuration"
 
 #. type: deftp
-#: doc/guix.texi:21303
+#: doc/guix.texi:26009
 msgid "Data type representing the configuration of @command{mpd}."
 msgstr "Type de données représentant la configuration de @command{mpd}."
 
 #. type: item
-#: doc/guix.texi:21305
+#: doc/guix.texi:26011
 #, no-wrap
 msgid "@code{user} (default: @code{\"mpd\"})"
 msgstr "@code{user} (par défaut : @code{\"mpd\"})"
 
 #. type: table
-#: doc/guix.texi:21307
+#: doc/guix.texi:26013
 msgid "The user to run mpd as."
 msgstr "L'utilisateur qui lance mpd."
 
 #. type: item
-#: doc/guix.texi:21308
+#: doc/guix.texi:26014
 #, no-wrap
 msgid "@code{music-dir} (default: @code{\"~/Music\"})"
 msgstr "@code{music-dir} (par défaut : @code{\"~/Music\"})"
 
 #. type: table
-#: doc/guix.texi:21310
+#: doc/guix.texi:26016
 msgid "The directory to scan for music files."
 msgstr "Le répertoire à scanner pour trouver les fichiers de musique."
 
 #. type: item
-#: doc/guix.texi:21311
+#: doc/guix.texi:26017
 #, no-wrap
 msgid "@code{playlist-dir} (default: @code{\"~/.mpd/playlists\"})"
 msgstr "@code{playlist-dir} (par défaut : @code{\"~/.mpd/playlists\"})"
 
 #. type: table
-#: doc/guix.texi:21313
+#: doc/guix.texi:26019
 msgid "The directory to store playlists."
 msgstr "Le répertoire où stocker les playlists."
 
 #. type: item
-#: doc/guix.texi:21314
+#: doc/guix.texi:26020
 #, no-wrap
 msgid "@code{db-file} (default: @code{\"~/.mpd/tag_cache\"})"
 msgstr "@code{db-file} (par défaut : @code{\"~/.mpd/tag_cache\"})"
 
 #. type: table
-#: doc/guix.texi:21316
+#: doc/guix.texi:26022
 msgid "The location of the music database."
 msgstr "Emplacement de la base de données de musiques."
 
 #. type: item
-#: doc/guix.texi:21317
+#: doc/guix.texi:26023
 #, no-wrap
 msgid "@code{state-file} (default: @code{\"~/.mpd/state\"})"
 msgstr "@code{state-file} (par défaut : @code{\"~/.mpd/state\"})"
 
 #. type: table
-#: doc/guix.texi:21319
+#: doc/guix.texi:26025
 msgid "The location of the file that stores current MPD's state."
 msgstr "Emplacement du fichier qui stocke l'état actuel de MPD."
 
 #. type: item
-#: doc/guix.texi:21320
+#: doc/guix.texi:26026
 #, no-wrap
 msgid "@code{sticker-file} (default: @code{\"~/.mpd/sticker.sql\"})"
 msgstr "@code{sticker-file} (par défaut : @code{\"~/.mpd/sticker.sql\"})"
 
 #. type: table
-#: doc/guix.texi:21322
+#: doc/guix.texi:26028
 msgid "The location of the sticker database."
 msgstr "Emplacement de la base de données de stickers."
 
 #. type: item
-#: doc/guix.texi:21323
+#: doc/guix.texi:26029
 #, no-wrap
 msgid "@code{port} (default: @code{\"6600\"})"
 msgstr "@code{port} (par défaut : @code{\"6600\"})"
 
 #. type: table
-#: doc/guix.texi:21325
+#: doc/guix.texi:26031
 msgid "The port to run mpd on."
 msgstr "Le port sur lequel lancer mpd."
 
 #. type: item
-#: doc/guix.texi:21326
+#: doc/guix.texi:26032
 #, no-wrap
 msgid "@code{address} (default: @code{\"any\"})"
 msgstr "@code{address} (par défaut : @code{\"any\"})"
 
 #. type: table
-#: doc/guix.texi:21329
+#: doc/guix.texi:26035
 msgid "The address that mpd will bind to.  To use a Unix domain socket, an absolute path can be specified here."
 msgstr "L'adresse sur laquelle se lie mpd.  Pour utiliser un socket Unix domain, un chemin absolu peut être spécifié ici."
 
-#. type: subsection
-#: doc/guix.texi:21334
+#. type: item
+#: doc/guix.texi:26036
+#, no-wrap
+msgid "@code{outputs} (default: @code{\"(list (mpd-output))\"})"
+msgstr "@code{outputs} (par défaut : @code{\"(list (mpd-output))\"})"
+
+#. type: table
+#: doc/guix.texi:26038
+msgid "The audio outputs that MPD can use.  By default this is a single output using pulseaudio."
+msgstr "Les sorties audio que MPD peut utiliser.  Par défaut c'est une seule sortie audio utilisant pulseaudio."
+
+#. type: deftp
+#: doc/guix.texi:26042
+#, no-wrap
+msgid "{Data Type} mpd-output"
+msgstr "{Type de données} mpd-output"
+
+#. type: deftp
+#: doc/guix.texi:26044
+msgid "Data type representing an @command{mpd} audio output."
+msgstr "Type de données représentant une sortie audio de @command{mpd}."
+
+#. type: item
+#: doc/guix.texi:26046
+#, no-wrap
+msgid "@code{name} (default: @code{\"MPD\"})"
+msgstr "@code{name} (par défaut : @code{\"MPD\"})"
+
+#. type: table
+#: doc/guix.texi:26048
+msgid "The name of the audio output."
+msgstr "Le nom de la sortie audio."
+
+#. type: item
+#: doc/guix.texi:26049
+#, no-wrap
+msgid "@code{type} (default: @code{\"pulse\"})"
+msgstr "@code{type} (par défaut : @code{\"pulse\"})"
+
+#. type: table
+#: doc/guix.texi:26051
+msgid "The type of audio output."
+msgstr "Le type de sortie audio."
+
+#. type: item
+#: doc/guix.texi:26052
+#, no-wrap
+msgid "@code{enabled?} (default: @code{#t})"
+msgstr "@code{enabled?} (par défaut: @code{#t})"
+
+#. type: table
+#: doc/guix.texi:26057
+msgid "Specifies whether this audio output is enabled when MPD is started.  By default, all audio outputs are enabled.  This is just the default setting when there is no state file; with a state file, the previous state is restored."
+msgstr "Spécifie si cette sortie audio est activée au démarrage de MPD.  Par défaut, toutes les sorties audio sont activées.  C'est le paramètre par défaut s'il n'y a pas de fichier d'état ; avec un fichier d'état, l'état précédent est restauré."
+
+#. type: item
+#: doc/guix.texi:26058
+#, no-wrap
+msgid "@code{tags?} (default: @code{#t})"
+msgstr "@code{tags?} (par défaut: @code{#t})"
+
+#. type: table
+#: doc/guix.texi:26062
+msgid "If set to @code{#f}, then MPD will not send tags to this output.  This is only useful for output plugins that can receive tags, for example the @code{httpd} output plugin."
+msgstr "Si la valeur est @code{#f}, MPD n'enverra pas les tags à cette sortie.  C'est utile uniquement pour les greffons de sortie qui peuvent recevoir les tags, comme le greffon de sortie @code{httpd}."
+
+#. type: item
+#: doc/guix.texi:26063
+#, no-wrap
+msgid "@code{always-on?} (default: @code{#f})"
+msgstr "@code{always-on?} (par défaut : @code{#f})"
+
+#. type: table
+#: doc/guix.texi:26067
+msgid "If set to @code{#t}, then MPD attempts to keep this audio output always open. This may be useful for streaming servers, when you don’t want to disconnect all listeners even when playback is accidentally stopped."
+msgstr "Si la valeur est @code{#t}, alors MPD essaye de garder cette sortie audio toujours ouverte.  Cela peut être utile pour les serveurs de streaming, lorsque vous ne voulez pas déconnecter tous les clients même si la lecture est accidentellement interrompue."
+
+#. type: code{#1}
+#: doc/guix.texi:26068
 #, no-wrap
-msgid "Virtualization services"
-msgstr "services de virtualisation"
+msgid "mixer-type"
+msgstr "mixer-type"
+
+#. type: table
+#: doc/guix.texi:26074
+msgid "This field accepts a symbol that specifies which mixer should be used for this audio output: the @code{hardware} mixer, the @code{software} mixer, the @code{null} mixer (allows setting the volume, but with no effect; this can be used as a trick to implement an external mixer External Mixer) or no mixer (@code{none})."
+msgstr "Ce champ accepte un symbole qiu spécifie quel mixeur utiliser pour cette sortie audio : le mixeur @code{hardware}, le mixeur @code{software}, le mixer @code{null} (permet de gérer le volume, mais sans effet ; peut être utilisé pour implémenter un mixer externe) ou aucun mixeur (@code{none})."
+
+#. type: table
+#: doc/guix.texi:26078
+msgid "An association list of option symbols to string values to be appended to the audio output configuration."
+msgstr "Une liste d'association de symboles d'options à des valeurs à ajouter à la configuration de la sortie audio."
 
 #. type: Plain text
-#: doc/guix.texi:21339
+#: doc/guix.texi:26084
+msgid "The following example shows a configuration of @code{mpd} that provides an HTTP audio streaming output."
+msgstr "L'exemple suivant montre comment configurer @code{mpd} pour fournir une sortie de streaming audio HTTP."
+
+#. type: lisp
+#: doc/guix.texi:26096
+#, no-wrap
+msgid ""
+"(service mpd-service-type\n"
+"         (mpd-configuration\n"
+"           (outputs\n"
+"             (list (mpd-output\n"
+"                     (name \"streaming\")\n"
+"                     (type \"httpd\")\n"
+"                     (mixer-type 'null)\n"
+"                     (extra-options\n"
+"                      `((encoder . \"vorbis\")\n"
+"                        (port    . \"8080\"))))))))\n"
+msgstr ""
+"(service mpd-service-type\n"
+"         (mpd-configuration\n"
+"           (outputs\n"
+"             (list (mpd-output\n"
+"                     (name \"streaming\")\n"
+"                     (type \"httpd\")\n"
+"                     (mixer-type 'null)\n"
+"                     (extra-options\n"
+"                      `((encoder . \"vorbis\")\n"
+"                        (port    . \"8080\"))))))))\n"
+
+#. type: Plain text
+#: doc/guix.texi:26105
 msgid "The @code{(gnu services virtualization)} module provides services for the libvirt and virtlog daemons, as well as other virtualization-related services."
 msgstr "Le module @code{(gnu services virtualization)} fournit des services pour les démons libvirt et virtlog, ainsi que d'autres services liés à la virtualisation."
 
 #. type: subsubheading
-#: doc/guix.texi:21340
+#: doc/guix.texi:26106
 #, no-wrap
 msgid "Libvirt daemon"
-msgstr "démon libvirt"
+msgstr "Démon libvirt"
 
 #. type: Plain text
-#: doc/guix.texi:21344
+#: doc/guix.texi:26111
 msgid "@code{libvirtd} is the server side daemon component of the libvirt virtualization management system. This daemon runs on host servers and performs required management tasks for virtualized guests."
 msgstr "@code{libvirtd} est le démon côté serveur du système de gestion de virtualisation libvirt.  Ce démon tourne sur des serveurs hôtes et effectue les taches de gestion requises pour les clients virtualisés."
 
 #. type: deffn
-#: doc/guix.texi:21345
+#: doc/guix.texi:26112
 #, no-wrap
 msgid "{Scheme Variable} libvirt-service-type"
 msgstr "{Variable Scheme} libvirt-service-type"
 
 #. type: deffn
-#: doc/guix.texi:21348
+#: doc/guix.texi:26115
 msgid "This is the type of the @uref{https://libvirt.org, libvirt daemon}.  Its value must be a @code{libvirt-configuration}."
 msgstr "C'est le type du @uref{https://libvirt.org, démon libvirt}.  Sa valeur doit être un @code{libvirt-configuration}."
 
-#. type: example
-#: doc/guix.texi:21354
+#. type: lisp
+#: doc/guix.texi:26121
 #, no-wrap
 msgid ""
 "(service libvirt-service-type\n"
@@ -40313,874 +49183,874 @@ msgstr ""
 "          (tls-port \"16555\")))\n"
 
 #. type: Plain text
-#: doc/guix.texi:21359
+#: doc/guix.texi:26126
 msgid "Available @code{libvirt-configuration} fields are:"
 msgstr "Les champs de @code{libvirt-configuration} disponibles sont :"
 
 #. type: deftypevr
-#: doc/guix.texi:21360
+#: doc/guix.texi:26127
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} package libvirt"
 msgstr "{paramètre de @code{libvirt-configuration}} package libvirt"
 
 #. type: deftypevr
-#: doc/guix.texi:21362
+#: doc/guix.texi:26129
 msgid "Libvirt package."
 msgstr "Paquet libvirt."
 
 #. type: deftypevr
-#: doc/guix.texi:21365
+#: doc/guix.texi:26132
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} boolean listen-tls?"
 msgstr "{paramètre de @code{libvirt-configuration}} boolean listen-tls?"
 
 #. type: deftypevr
-#: doc/guix.texi:21368
-msgid "Flag listening for secure TLS connections on the public TCP/IP port.  must set @code{listen} for this to have any effect."
+#: doc/guix.texi:26135
+msgid "Flag listening for secure TLS connections on the public TCP/IP port.  You must set @code{listen} for this to have any effect."
 msgstr "Indique s'il faut écouter des connexions TLS sécurisées sur le port TCP/IP public.  Vous devez remplir le champ @code{listen} pour que cela ait un effet."
 
 #. type: deftypevr
-#: doc/guix.texi:21371
+#: doc/guix.texi:26138
 msgid "It is necessary to setup a CA and issue server certificates before using this capability."
 msgstr "Il est nécessaire de mettre en place une CA et de créer un certificat serveur avant d'utiliser cette fonctionnalité."
 
 #. type: deftypevr
-#: doc/guix.texi:21376
+#: doc/guix.texi:26143
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} boolean listen-tcp?"
 msgstr "{paramètre de @code{libvirt-configuration}} boolean listen-tcp?"
 
 #. type: deftypevr
-#: doc/guix.texi:21379
-msgid "Listen for unencrypted TCP connections on the public TCP/IP port.  must set @code{listen} for this to have any effect."
+#: doc/guix.texi:26146
+msgid "Listen for unencrypted TCP connections on the public TCP/IP port.  You must set @code{listen} for this to have any effect."
 msgstr "Écoute des connexions non-chiffrées sur le port TCP/IP public.  Vous devez remplir le champ @code{listen} pour que cela ait un effet."
 
 #. type: deftypevr
-#: doc/guix.texi:21383
-msgid "Using the TCP socket requires SASL authentication by default.  Only SASL mechanisms which support data encryption are allowed.  This is DIGEST_MD5 and GSSAPI (Kerberos5)"
-msgstr "L'utilisation des sockets TCP requiert une authentification SASL par défaut.  Seuls les mécanismes SASL qui supportent le chiffrement des données sont permis.  Il s'agit de DIGEST_MD5 et GSSAPI (Kerberos5)."
+#: doc/guix.texi:26150
+msgid "Using the TCP socket requires SASL authentication by default.  Only SASL mechanisms which support data encryption are allowed.  This is DIGEST_MD5 and GSSAPI (Kerberos5)."
+msgstr "L'utilisation des sockets TCP requiert une authentification SASL par défaut.  Seuls les mécanismes SASL qui prennent en charge le chiffrement des données sont permis.  Il s'agit de DIGEST_MD5 et GSSAPI (Kerberos5)."
 
 #. type: deftypevr
-#: doc/guix.texi:21388
+#: doc/guix.texi:26155
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string tls-port"
 msgstr "{paramètre de @code{libvirt-configuration}} string tls-port"
 
 #. type: deftypevr
-#: doc/guix.texi:21391
-msgid "Port for accepting secure TLS connections This can be a port number, or service name"
-msgstr "Port pour accepter les connexions TLS sécurisées.  Il peut s'agir d'un numéro de port ou d'un nom de service"
+#: doc/guix.texi:26158
+msgid "Port for accepting secure TLS connections.  This can be a port number, or service name."
+msgstr "Port pour accepter les connexions TLS sécurisées.  Il peut s'agir d'un numéro de port ou d'un nom de service."
 
 #. type: deftypevr
-#: doc/guix.texi:21393
+#: doc/guix.texi:26160
 msgid "Defaults to @samp{\"16514\"}."
 msgstr "La valeur par défaut est @samp{\"16514\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:21396
+#: doc/guix.texi:26163
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string tcp-port"
 msgstr "{paramètre de @code{libvirt-configuration}} string tcp-port"
 
 #. type: deftypevr
-#: doc/guix.texi:21399
-msgid "Port for accepting insecure TCP connections This can be a port number, or service name"
-msgstr "Port sur lequel accepter les connexions TCP non sécurisées.  Cela peut être un numéro de port ou un nom de service"
+#: doc/guix.texi:26166
+msgid "Port for accepting insecure TCP connections.  This can be a port number, or service name."
+msgstr "Port sur lequel accepter les connexions TCP non sécurisées.  Cela peut être un numéro de port ou un nom de service."
 
 #. type: deftypevr
-#: doc/guix.texi:21401
+#: doc/guix.texi:26168
 msgid "Defaults to @samp{\"16509\"}."
 msgstr "La valeur par défaut est @samp{\"16509\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:21404
+#: doc/guix.texi:26171
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string listen-addr"
 msgstr "{paramètre de @code{libvirt-configuration}} string listen-addr"
 
 #. type: deftypevr
-#: doc/guix.texi:21406
+#: doc/guix.texi:26173
 msgid "IP address or hostname used for client connections."
 msgstr "Adresse IP ou nom d'hôte utilisé pour les connexions des clients."
 
 #. type: deftypevr
-#: doc/guix.texi:21408
+#: doc/guix.texi:26175
 msgid "Defaults to @samp{\"0.0.0.0\"}."
 msgstr "La valeur par défaut est @samp{\"0.0.0.0\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:21411
+#: doc/guix.texi:26178
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} boolean mdns-adv?"
 msgstr "{paramètre de @code{libvirt-configuration}} boolean mdns-adv?"
 
 #. type: deftypevr
-#: doc/guix.texi:21413
+#: doc/guix.texi:26180
 msgid "Flag toggling mDNS advertisement of the libvirt service."
 msgstr "Indique s'il faut publier le service libvirt en mDNS."
 
 #. type: deftypevr
-#: doc/guix.texi:21416
+#: doc/guix.texi:26183
 msgid "Alternatively can disable for all services on a host by stopping the Avahi daemon."
 msgstr "Autrement, vous pouvez désactiver cela pour tous les services en stoppant le démon Avahi."
 
 #. type: deftypevr
-#: doc/guix.texi:21421
+#: doc/guix.texi:26188
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string mdns-name"
 msgstr "{paramètre de @code{libvirt-configuration}} string mdns-name"
 
 #. type: deftypevr
-#: doc/guix.texi:21424
+#: doc/guix.texi:26191
 msgid "Default mDNS advertisement name.  This must be unique on the immediate broadcast network."
 msgstr "Nom publié par défaut sur mDNS.  Cela doit être unique sur le réseau local."
 
 #. type: deftypevr
-#: doc/guix.texi:21426
+#: doc/guix.texi:26193
 msgid "Defaults to @samp{\"Virtualization Host <hostname>\"}."
 msgstr "La valeur par défaut est @samp{\"Virtualization Host <hostname>\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:21429
+#: doc/guix.texi:26196
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string unix-sock-group"
 msgstr "{paramètre de @code{libvirt-configuration}} string unix-sock-group"
 
 #. type: deftypevr
-#: doc/guix.texi:21433
+#: doc/guix.texi:26200
 msgid "UNIX domain socket group ownership.  This can be used to allow a 'trusted' set of users access to management capabilities without becoming root."
 msgstr "Groupe propriétaire du socket Unix domain.  Cela peut être utilisé pour permettre à un ensemble d'utilisateurs « de confiance » de gérer les fonctionnalités sans devenir root."
 
 #. type: deftypevr
-#: doc/guix.texi:21438
+#: doc/guix.texi:26205
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string unix-sock-ro-perms"
 msgstr "{paramètre de @code{libvirt-configuration}} string unix-sock-ro-perms"
 
 #. type: deftypevr
-#: doc/guix.texi:21441
+#: doc/guix.texi:26208
 msgid "UNIX socket permissions for the R/O socket.  This is used for monitoring VM status only."
 msgstr "Permission Unix pour le socket en lecture seule.  Il est utilisé pour surveiller le statut des VM uniquement."
 
 #. type: deftypevr
-#: doc/guix.texi:21443 doc/guix.texi:21461
+#: doc/guix.texi:26210 doc/guix.texi:26228
 msgid "Defaults to @samp{\"0777\"}."
 msgstr "La valeur par défaut est @samp{\"0777\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:21446
+#: doc/guix.texi:26213
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string unix-sock-rw-perms"
 msgstr "{paramètre de @code{libvirt-configuration}} string unix-sock-rw-perms"
 
 #. type: deftypevr
-#: doc/guix.texi:21450
+#: doc/guix.texi:26217
 msgid "UNIX socket permissions for the R/W socket.  Default allows only root.  If PolicyKit is enabled on the socket, the default will change to allow everyone (eg, 0777)"
 msgstr "Permission Unix pour le socket en lecture-écriture.  La valeur par défaut n'autorise que root.  Si PolicyKit est activé sur le socket, la valeur par défaut change et permet tout le monde (c.-à-d.@: 0777)."
 
 #. type: deftypevr
-#: doc/guix.texi:21452
+#: doc/guix.texi:26219
 msgid "Defaults to @samp{\"0770\"}."
 msgstr "La valeur par défaut est @samp{\"0770\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:21455
+#: doc/guix.texi:26222
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string unix-sock-admin-perms"
 msgstr "{paramètre de @code{libvirt-configuration}} string unix-sock-admin-perms"
 
 #. type: deftypevr
-#: doc/guix.texi:21459
+#: doc/guix.texi:26226
 msgid "UNIX socket permissions for the admin socket.  Default allows only owner (root), do not change it unless you are sure to whom you are exposing the access to."
 msgstr "Permissions Unix pour le socket d'administration.  La valeur par défaut ne permet que le propriétaire (root), ne la changez pas à moins que vous ne soyez sûr de savoir à qui vous exposez cet accès."
 
 #. type: deftypevr
-#: doc/guix.texi:21464
+#: doc/guix.texi:26231
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string unix-sock-dir"
 msgstr "{paramètre de @code{libvirt-configuration}} string unix-sock-dir"
 
 #. type: deftypevr
-#: doc/guix.texi:21466
+#: doc/guix.texi:26233
 msgid "The directory in which sockets will be found/created."
 msgstr "Le répertoire dans lequel les sockets sont créés."
 
 #. type: deftypevr
-#: doc/guix.texi:21468
+#: doc/guix.texi:26235
 msgid "Defaults to @samp{\"/var/run/libvirt\"}."
 msgstr "La valeur par défaut est @samp{\"/var/run/libvirt\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:21471
+#: doc/guix.texi:26238
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string auth-unix-ro"
 msgstr "{paramètre de @code{libvirt-configuration}} string auth-unix-ro"
 
 #. type: deftypevr
-#: doc/guix.texi:21474
+#: doc/guix.texi:26241
 msgid "Authentication scheme for UNIX read-only sockets.  By default socket permissions allow anyone to connect"
 msgstr "Schéma d'authentification pour les socket Unix en lecture-seule.  Par défaut les permissions des socket permettent à n'importe qui de se connecter"
 
 #. type: deftypevr
-#: doc/guix.texi:21476 doc/guix.texi:21485
+#: doc/guix.texi:26243 doc/guix.texi:26252
 msgid "Defaults to @samp{\"polkit\"}."
 msgstr "La valeur par défaut est @samp{\"polkit\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:21479
+#: doc/guix.texi:26246
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string auth-unix-rw"
 msgstr "{paramètre de @code{libvirt-configuration}} string auth-unix-rw"
 
 #. type: deftypevr
-#: doc/guix.texi:21483
+#: doc/guix.texi:26250
 msgid "Authentication scheme for UNIX read-write sockets.  By default socket permissions only allow root.  If PolicyKit support was compiled into libvirt, the default will be to use 'polkit' auth."
 msgstr "Schéma d'authentification pour les socket UNIX en lecture-écriture.  Par défaut les permissions du socket ne permettent que root.  Si le support de PolicyKit a été compilé dans libvirt, la valeur par défaut utilise l'authentification « polkit »."
 
 #. type: deftypevr
-#: doc/guix.texi:21488
+#: doc/guix.texi:26255
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string auth-tcp"
 msgstr "{paramètre de @code{libvirt-configuration}} string auth-tcp"
 
 #. type: deftypevr
-#: doc/guix.texi:21492
+#: doc/guix.texi:26259
 msgid "Authentication scheme for TCP sockets.  If you don't enable SASL, then all TCP traffic is cleartext.  Don't do this outside of a dev/test scenario."
 msgstr "Schéma d'authentification pour les sockets TCP.  Si vous n'avez pas activé SASL, alors tout le trafic TCP est en clair.  Ne le faites pas en dehors de scénario de développement ou de test."
 
 #. type: deftypevr
-#: doc/guix.texi:21494
+#: doc/guix.texi:26261
 msgid "Defaults to @samp{\"sasl\"}."
 msgstr "La valeur par défaut est @samp{\"sasl\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:21497
+#: doc/guix.texi:26264
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string auth-tls"
 msgstr "{paramètre de @code{libvirt-configuration}} string auth-tls"
 
 #. type: deftypevr
-#: doc/guix.texi:21501
+#: doc/guix.texi:26268
 msgid "Authentication scheme for TLS sockets.  TLS sockets already have encryption provided by the TLS layer, and limited authentication is done by certificates."
 msgstr "Schéma d'authentification pour les sockets TLS.  Les sockets TLS sont déjà chiffrés par la couche TLS, et une authentification limitée est effectuée avec les certificats."
 
 #. type: deftypevr
-#: doc/guix.texi:21504
+#: doc/guix.texi:26271
 msgid "It is possible to make use of any SASL authentication mechanism as well, by using 'sasl' for this option"
 msgstr "Il est possible d'utiliser de n'importe quel mécanisme d'authentification SASL en utilisant « sasl » pour cette option"
 
 #. type: deftypevr
-#: doc/guix.texi:21506
+#: doc/guix.texi:26273
 msgid "Defaults to @samp{\"none\"}."
 msgstr "La valeur par défaut est @samp{\"none\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:21509
+#: doc/guix.texi:26276
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} optional-list access-drivers"
 msgstr "{paramètre de @code{libvirt-configuration}} optional-list access-drivers"
 
 #. type: deftypevr
-#: doc/guix.texi:21511
+#: doc/guix.texi:26278
 msgid "API access control scheme."
 msgstr "Schéma de contrôle d'accès à l'API."
 
 #. type: deftypevr
-#: doc/guix.texi:21514
+#: doc/guix.texi:26281
 msgid "By default an authenticated user is allowed access to all APIs.  Access drivers can place restrictions on this."
 msgstr "Par défaut un utilisateur authentifié peut accéder à toutes les API.  Les pilotes d'accès peuvent placer des restrictions là-dessus."
 
 #. type: deftypevr
-#: doc/guix.texi:21519
+#: doc/guix.texi:26286
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string key-file"
 msgstr "{paramètre de @code{libvirt-configuration}} string key-file"
 
 #. type: deftypevr
-#: doc/guix.texi:21522
+#: doc/guix.texi:26289
 msgid "Server key file path.  If set to an empty string, then no private key is loaded."
 msgstr "Chemin de fichier de la clef du serveur.  Si la valeur est une chaîne vide, aucune clef privée n'est chargée."
 
 #. type: deftypevr
-#: doc/guix.texi:21527
+#: doc/guix.texi:26294
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string cert-file"
 msgstr "{paramètre de @code{libvirt-configuration}} string cert-file"
 
 #. type: deftypevr
-#: doc/guix.texi:21530
+#: doc/guix.texi:26297
 msgid "Server key file path.  If set to an empty string, then no certificate is loaded."
 msgstr "Chemin de fichier de la clef du serveur.  Si la chaîne est vide, aucun certificat n'est chargé."
 
 #. type: deftypevr
-#: doc/guix.texi:21535
+#: doc/guix.texi:26302
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string ca-file"
 msgstr "{paramètre de @code{libvirt-configuration}} string ca-file"
 
 #. type: deftypevr
-#: doc/guix.texi:21538
+#: doc/guix.texi:26305
 msgid "Server key file path.  If set to an empty string, then no CA certificate is loaded."
 msgstr "Chemin de fichier de la clef du serveur.  Si la chaîne est vide, aucun certificat de CA n'est chargé."
 
 #. type: deftypevr
-#: doc/guix.texi:21543
+#: doc/guix.texi:26310
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string crl-file"
 msgstr "{paramètre de @code{libvirt-configuration}} string crl-file"
 
 #. type: deftypevr
-#: doc/guix.texi:21546
+#: doc/guix.texi:26313
 msgid "Certificate revocation list path.  If set to an empty string, then no CRL is loaded."
 msgstr "Chemin de la liste de révocation des certificats.  Si la chaîne est vide, aucun CRL n'est chargé."
 
 #. type: deftypevr
-#: doc/guix.texi:21551
+#: doc/guix.texi:26318
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} boolean tls-no-sanity-cert"
 msgstr "{paramètre de @code{libvirt-configuration}} boolean tls-no-sanity-cert"
 
 #. type: deftypevr
-#: doc/guix.texi:21553
+#: doc/guix.texi:26320
 msgid "Disable verification of our own server certificates."
 msgstr "Désactive la vérification de nos propres certificats serveurs."
 
 #. type: deftypevr
-#: doc/guix.texi:21556
+#: doc/guix.texi:26323
 msgid "When libvirtd starts it performs some sanity checks against its own certificates."
 msgstr "Lorsque libvirtd démarre il effectue des vérifications de routine sur ses propres certificats."
 
 #. type: deftypevr
-#: doc/guix.texi:21561
+#: doc/guix.texi:26328
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} boolean tls-no-verify-cert"
 msgstr "{paramètre de @code{libvirt-configuration}} boolean tls-no-verify-cert"
 
 #. type: deftypevr
-#: doc/guix.texi:21563
+#: doc/guix.texi:26330
 msgid "Disable verification of client certificates."
 msgstr "Désactive la vérification des certificats clients."
 
 #. type: deftypevr
-#: doc/guix.texi:21567
+#: doc/guix.texi:26334
 msgid "Client certificate verification is the primary authentication mechanism.  Any client which does not present a certificate signed by the CA will be rejected."
 msgstr "La vérification des certificats clients est le mécanisme d'authentification principal.  Tout client qui ne présent pas de certificat signé par la CA sera rejeté."
 
 #. type: deftypevr
-#: doc/guix.texi:21572
+#: doc/guix.texi:26339
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} optional-list tls-allowed-dn-list"
 msgstr "{paramètre de @code{libvirt-configuration}} optional-list tls-allowed-dn-list"
 
 #. type: deftypevr
-#: doc/guix.texi:21574
+#: doc/guix.texi:26341
 msgid "Whitelist of allowed x509 Distinguished Name."
 msgstr "Liste blanche des Distinguished Name x509 autorisés."
 
 #. type: deftypevr
-#: doc/guix.texi:21579
+#: doc/guix.texi:26346
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} optional-list sasl-allowed-usernames"
 msgstr "{paramètre de @code{libvirt-configuration}} optional-list sasl-allowed-usernames"
 
 #. type: deftypevr
-#: doc/guix.texi:21582
+#: doc/guix.texi:26349
 msgid "Whitelist of allowed SASL usernames.  The format for username depends on the SASL authentication mechanism."
 msgstr "Liste blanche des noms d'utilisateur SASL permis.  Le format des noms d'utilisateurs dépend du mécanisme d'authentification SASL."
 
 #. type: deftypevr
-#: doc/guix.texi:21587
+#: doc/guix.texi:26354
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string tls-priority"
 msgstr "{paramètre de @code{libvirt-configuration}} string tls-priority"
 
 #. type: deftypevr
-#: doc/guix.texi:21591
-msgid "Override the compile time default TLS priority string.  The default is usually \"NORMAL\" unless overridden at build time.  Only set this is it is desired for libvirt to deviate from the global default settings."
-msgstr "Modifie la chaîne de priorité TLS par défaut fixée à la compilation.  La valeur par défaut est typiquement « NORMAL » à moins qu'elle n'ait été modifiée à la compilation.  Ne l'indiquez que si vous voulez que libvirt agisse différemment des paramètres par défaut globaux."
+#: doc/guix.texi:26358
+msgid "Override the compile time default TLS priority string.  The default is usually @samp{\"NORMAL\"} unless overridden at build time.  Only set this is it is desired for libvirt to deviate from the global default settings."
+msgstr "Modifie la chaine de priorité TLS par défaut fixée à la compilation.  La valeur par défaut est typiquement @samp{NORMAL} à moins qu'elle n'ait été modifiée à la compilation.  Ne l'indiquez que si vous voulez que libvirt agisse différemment des paramètres par défaut globaux."
 
 #. type: deftypevr
-#: doc/guix.texi:21593
+#: doc/guix.texi:26360
 msgid "Defaults to @samp{\"NORMAL\"}."
 msgstr "La valeur par défaut est @samp{\"NORMAL\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:21596
+#: doc/guix.texi:26363
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer max-clients"
 msgstr "{paramètre de @code{libvirt-configuration}} integer max-clients"
 
 #. type: deftypevr
-#: doc/guix.texi:21599 doc/guix.texi:22022
+#: doc/guix.texi:26366 doc/guix.texi:26790
 msgid "Maximum number of concurrent client connections to allow over all sockets combined."
 msgstr "Nombre maximum de connexions clientes en même temps sur tous les sockets."
 
 #. type: deftypevr
-#: doc/guix.texi:21601
+#: doc/guix.texi:26368
 msgid "Defaults to @samp{5000}."
 msgstr "La valeur par défaut est @samp{5000}."
 
 #. type: deftypevr
-#: doc/guix.texi:21604
+#: doc/guix.texi:26371
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer max-queued-clients"
 msgstr "{paramètre de @code{libvirt-configuration}} integer max-queued-clients"
 
 #. type: deftypevr
-#: doc/guix.texi:21608
+#: doc/guix.texi:26375
 msgid "Maximum length of queue of connections waiting to be accepted by the daemon.  Note, that some protocols supporting retransmission may obey this so that a later reattempt at connection succeeds."
 msgstr "Longueur maximum de la queue de connexions en attente d'acceptation du démon.  Remarquez que certains protocoles supportant la retransmission peuvent obéir à ce paramètre pour qu'une connexion ultérieure réussisse."
 
 #. type: deftypevr
-#: doc/guix.texi:21613
+#: doc/guix.texi:26380
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer max-anonymous-clients"
 msgstr "{paramètre de @code{libvirt-configuration}} integer max-anonymous-clients"
 
 #. type: deftypevr
-#: doc/guix.texi:21616
+#: doc/guix.texi:26383
 msgid "Maximum length of queue of accepted but not yet authenticated clients.  Set this to zero to turn this feature off"
 msgstr "Longueur maximum de la queue des clients acceptés mais pas authentifiés.  Indiquez zéro pour désactiver ce paramètre"
 
 #. type: deftypevr
-#: doc/guix.texi:21618 doc/guix.texi:21636 doc/guix.texi:21652
+#: doc/guix.texi:26385 doc/guix.texi:26403 doc/guix.texi:26419
 msgid "Defaults to @samp{20}."
 msgstr "La valeur par défaut est @samp{20}."
 
 #. type: deftypevr
-#: doc/guix.texi:21621
+#: doc/guix.texi:26388
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer min-workers"
 msgstr "{paramètre de @code{libvirt-configuration}} integer min-workers"
 
 #. type: deftypevr
-#: doc/guix.texi:21623
+#: doc/guix.texi:26390
 msgid "Number of workers to start up initially."
 msgstr "Nombre de processus de travail démarrés initialement."
 
 #. type: deftypevr
-#: doc/guix.texi:21628
+#: doc/guix.texi:26395
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer max-workers"
 msgstr "{paramètre de @code{libvirt-configuration}} integer max-workers"
 
 #. type: deftypevr
-#: doc/guix.texi:21630
+#: doc/guix.texi:26397
 msgid "Maximum number of worker threads."
 msgstr "Nombre maximum de threads de travail."
 
 #. type: deftypevr
-#: doc/guix.texi:21634
+#: doc/guix.texi:26401
 msgid "If the number of active clients exceeds @code{min-workers}, then more threads are spawned, up to max_workers limit.  Typically you'd want max_workers to equal maximum number of clients allowed."
 msgstr "Si le nombre de clients actifs dépasse @code{min-workers}, plus de threads seront démarrés, jusqu'à la limite de max_workers.  Typiquement vous voulez que max_workers soit égal au nombre maximum de clients permis."
 
 #. type: deftypevr
-#: doc/guix.texi:21639
+#: doc/guix.texi:26406
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer prio-workers"
 msgstr "{paramètre de @code{libvirt-configuration}} integer prio-workers"
 
 #. type: deftypevr
-#: doc/guix.texi:21643
+#: doc/guix.texi:26410
 msgid "Number of priority workers.  If all workers from above pool are stuck, some calls marked as high priority (notably domainDestroy) can be executed in this pool."
 msgstr "Nombre de travailleurs prioritaires.  Si tous les threads de travail du groupe ci-dessus sont bloqués, certains appels marqués comme prioritaires (notamment domainDestroy) peuvent être exécutés par ce groupe."
 
 #. type: deftypevr
-#: doc/guix.texi:21648
+#: doc/guix.texi:26415
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer max-requests"
 msgstr "{paramètre de @code{libvirt-configuration}} integer max-requests"
 
 #. type: deftypevr
-#: doc/guix.texi:21650
+#: doc/guix.texi:26417
 msgid "Total global limit on concurrent RPC calls."
 msgstr "Limite globale totale sur les appels RPC concurrents."
 
 #. type: deftypevr
-#: doc/guix.texi:21655
+#: doc/guix.texi:26422
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer max-client-requests"
 msgstr "{paramètre de @code{libvirt-configuration}} integer max-client-requests"
 
 #. type: deftypevr
-#: doc/guix.texi:21659
+#: doc/guix.texi:26426
 msgid "Limit on concurrent requests from a single client connection.  To avoid one client monopolizing the server this should be a small fraction of the global max_requests and max_workers parameter."
 msgstr "Limite de requêtes concurrentes depuis une connexion cliente unique. Pour éviter qu'un client ne monopolise le serveur, vous devriez indiquer une petite partie des paramètres global max_requests et max_workers."
 
 #. type: deftypevr
-#: doc/guix.texi:21664
+#: doc/guix.texi:26431
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer admin-min-workers"
 msgstr "{paramètre de @code{libvirt-configuration}} integer admin-min-workers"
 
 #. type: deftypevr
-#: doc/guix.texi:21666
+#: doc/guix.texi:26433
 msgid "Same as @code{min-workers} but for the admin interface."
 msgstr "Comme @code{min-workers} mais pour l'interface d'administration."
 
 #. type: deftypevr
-#: doc/guix.texi:21671
+#: doc/guix.texi:26438
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer admin-max-workers"
 msgstr "{paramètre de @code{libvirt-configuration}} integer admin-max-workers"
 
 #. type: deftypevr
-#: doc/guix.texi:21673
+#: doc/guix.texi:26440
 msgid "Same as @code{max-workers} but for the admin interface."
 msgstr "Comme @code{max-workers} mais pour l'interface d'administration."
 
 #. type: deftypevr
-#: doc/guix.texi:21678
+#: doc/guix.texi:26445
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer admin-max-clients"
 msgstr "{paramètre de @code{libvirt-configuration}} integer admin-max-clients"
 
 #. type: deftypevr
-#: doc/guix.texi:21680
+#: doc/guix.texi:26447
 msgid "Same as @code{max-clients} but for the admin interface."
 msgstr "Comme @code{max-clients} mais pour l'interface d'administration."
 
 #. type: deftypevr
-#: doc/guix.texi:21685
+#: doc/guix.texi:26452
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer admin-max-queued-clients"
 msgstr "{paramètre de @code{libvirt-configuration}} integer admin-max-queued-clients"
 
 #. type: deftypevr
-#: doc/guix.texi:21687
+#: doc/guix.texi:26454
 msgid "Same as @code{max-queued-clients} but for the admin interface."
 msgstr "Comme @code{max-queued-clients} mais pour l'interface d'administration."
 
 #. type: deftypevr
-#: doc/guix.texi:21692
+#: doc/guix.texi:26459
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer admin-max-client-requests"
 msgstr "{paramètre de @code{libvirt-configuration}} integer admin-max-client-requests"
 
 #. type: deftypevr
-#: doc/guix.texi:21694
+#: doc/guix.texi:26461
 msgid "Same as @code{max-client-requests} but for the admin interface."
 msgstr "Comme @code{max-client-requests} mais pour l'interface d'administration."
 
 #. type: deftypevr
-#: doc/guix.texi:21699
+#: doc/guix.texi:26466
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer log-level"
 msgstr "{paramètre de @code{libvirt-configuration}} integer log-level"
 
 #. type: deftypevr
-#: doc/guix.texi:21701 doc/guix.texi:21924
+#: doc/guix.texi:26468 doc/guix.texi:26692
 msgid "Logging level.  4 errors, 3 warnings, 2 information, 1 debug."
 msgstr "Niveau de journalisation.  4 : erreurs, 3 : avertissements, 2 : information, 1 : débogage."
 
 #. type: deftypevr
-#: doc/guix.texi:21706
+#: doc/guix.texi:26473
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string log-filters"
 msgstr "{paramètre de @code{libvirt-configuration}} string log-filters"
 
 #. type: deftypevr
-#: doc/guix.texi:21708 doc/guix.texi:21931
+#: doc/guix.texi:26475 doc/guix.texi:26699
 msgid "Logging filters."
 msgstr "Filtres de journalisation."
 
 #. type: deftypevr
-#: doc/guix.texi:21711 doc/guix.texi:21934
-msgid "A filter allows to select a different logging level for a given category of logs The format for a filter is one of:"
-msgstr "Un filtre qui permet de sélectionner plusieurs niveaux de journalisation pour une catégorie donnée.  Le format d'un filtre est :"
+#: doc/guix.texi:26478
+msgid "A filter allows to select a different logging level for a given category of logs.  The format for a filter is one of:"
+msgstr "Un filtre qui permet de sélectionner un niveau de journalisation différent pour une catégorie donnée.  Le format d'un filtre est :"
 
 #. type: itemize
-#: doc/guix.texi:21715 doc/guix.texi:21938
+#: doc/guix.texi:26482 doc/guix.texi:26706
 msgid "x:name"
 msgstr "x:nom"
 
 #. type: itemize
-#: doc/guix.texi:21718 doc/guix.texi:21941
+#: doc/guix.texi:26485 doc/guix.texi:26709
 msgid "x:+name"
 msgstr "x:+nom"
 
 #. type: deftypevr
-#: doc/guix.texi:21728 doc/guix.texi:21951
-msgid "where @code{name} is a string which is matched against the category given in the @code{VIR_LOG_INIT()} at the top of each libvirt source file, e.g., \"remote\", \"qemu\", or \"util.json\" (the name in the filter can be a substring of the full category name, in order to match multiple similar categories), the optional \"+\" prefix tells libvirt to log stack trace for each message matching name, and @code{x} is the minimal level where matching messages should be logged:"
-msgstr "où @code{nom} est une chaîne de caractères qui correspond à la catégorie donnée dans @code{VIR_LOG_INIT()} au début de chaque fichier source de libvirt, p.@: ex.@: « remote », « qemu » ou « util.json » (le nom dans le filtre peut être une sous-chaîne du nom complet de la catégorie, pour pouvoir correspondre à plusieurs catégories similaires), le préfixe facultatif « + » dit à libvirt d'enregistrer les traces de piles pour chaque message qui correspond au nom, et @code{x} est le niveau minimal des messages qui devraient être enregistrés :"
+#: doc/guix.texi:26496
+msgid "where @code{name} is a string which is matched against the category given in the @code{VIR_LOG_INIT()} at the top of each libvirt source file, e.g., @samp{\"remote\"}, @samp{\"qemu\"}, or @samp{\"util.json\"} (the name in the filter can be a substring of the full category name, in order to match multiple similar categories), the optional @samp{\"+\"} prefix tells libvirt to log stack trace for each message matching name, and @code{x} is the minimal level where matching messages should be logged:"
+msgstr "où @code{nom} est une chaine de caractères qui correspond à la catégorie donnée dans @code{VIR_LOG_INIT()} au début de chaque fichier source de libvirt, p.@: ex.@: @samp{remote}, @samp{qemu} ou @samp{util.json} (le nom dans le filtre peut être une sous-chaine du nom complet de la catégorie, pour pouvoir correspondre à plusieurs catégories similaires), le préfixe facultatif @samp{+} dit à libvirt d'enregistrer les traces de piles pour chaque message qui correspond au nom, et @code{x} est le niveau minimal des messages qui devraient être enregistrés :"
 
 #. type: itemize
-#: doc/guix.texi:21732 doc/guix.texi:21777 doc/guix.texi:21955
-#: doc/guix.texi:22000
+#: doc/guix.texi:26500 doc/guix.texi:26545 doc/guix.texi:26723
+#: doc/guix.texi:26768
 msgid "1: DEBUG"
 msgstr "1 : DEBUG"
 
 #. type: itemize
-#: doc/guix.texi:21735 doc/guix.texi:21780 doc/guix.texi:21958
-#: doc/guix.texi:22003
+#: doc/guix.texi:26503 doc/guix.texi:26548 doc/guix.texi:26726
+#: doc/guix.texi:26771
 msgid "2: INFO"
 msgstr "2 : INFO"
 
 #. type: itemize
-#: doc/guix.texi:21738 doc/guix.texi:21783 doc/guix.texi:21961
-#: doc/guix.texi:22006
+#: doc/guix.texi:26506 doc/guix.texi:26551 doc/guix.texi:26729
+#: doc/guix.texi:26774
 msgid "3: WARNING"
 msgstr "3 : WARNING"
 
 #. type: itemize
-#: doc/guix.texi:21741 doc/guix.texi:21786 doc/guix.texi:21964
-#: doc/guix.texi:22009
+#: doc/guix.texi:26509 doc/guix.texi:26554 doc/guix.texi:26732
+#: doc/guix.texi:26777
 msgid "4: ERROR"
 msgstr "4 : ERROR"
 
 #. type: deftypevr
-#: doc/guix.texi:21746 doc/guix.texi:21969
+#: doc/guix.texi:26514 doc/guix.texi:26737
 msgid "Multiple filters can be defined in a single filters statement, they just need to be separated by spaces."
 msgstr "On peut définir plusieurs filtres dans une seule déclaration de filtres, ils doivent juste être séparés par des espaces."
 
 #. type: deftypevr
-#: doc/guix.texi:21748 doc/guix.texi:21971
+#: doc/guix.texi:26516 doc/guix.texi:26739
 msgid "Defaults to @samp{\"3:remote 4:event\"}."
 msgstr "La valeur par défaut est @samp{\"3:remote 4:event\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:21751
+#: doc/guix.texi:26519
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string log-outputs"
 msgstr "{paramètre de @code{libvirt-configuration}} string log-outputs"
 
 #. type: deftypevr
-#: doc/guix.texi:21753 doc/guix.texi:21976
+#: doc/guix.texi:26521 doc/guix.texi:26744
 msgid "Logging outputs."
 msgstr "Sorties de débogage."
 
 #. type: deftypevr
-#: doc/guix.texi:21756
+#: doc/guix.texi:26524
 msgid "An output is one of the places to save logging information.  The format for an output can be:"
 msgstr "Une sortie est l'un des endroits où les journaux sont enregistrés.  Le format d'une sortie peut être :"
 
 #. type: item
-#: doc/guix.texi:21758 doc/guix.texi:21981
+#: doc/guix.texi:26526 doc/guix.texi:26749
 #, no-wrap
 msgid "x:stderr"
 msgstr "x:stderr"
 
 #. type: table
-#: doc/guix.texi:21760 doc/guix.texi:21983
+#: doc/guix.texi:26528 doc/guix.texi:26751
 msgid "output goes to stderr"
 msgstr "la sortie va vers stderr"
 
 #. type: item
-#: doc/guix.texi:21761 doc/guix.texi:21984
+#: doc/guix.texi:26529 doc/guix.texi:26752
 #, no-wrap
 msgid "x:syslog:name"
 msgstr "x:syslog:nom"
 
 #. type: table
-#: doc/guix.texi:21763 doc/guix.texi:21986
+#: doc/guix.texi:26531 doc/guix.texi:26754
 msgid "use syslog for the output and use the given name as the ident"
 msgstr "utilise syslog comme sortie et utilise le nom donné comme identifiant"
 
 #. type: item
-#: doc/guix.texi:21764 doc/guix.texi:21987
+#: doc/guix.texi:26532 doc/guix.texi:26755
 #, no-wrap
 msgid "x:file:file_path"
 msgstr "x:file:chemin_fichier"
 
 #. type: table
-#: doc/guix.texi:21766 doc/guix.texi:21989
+#: doc/guix.texi:26534 doc/guix.texi:26757
 msgid "output to a file, with the given filepath"
 msgstr "la sortie va vers un fichier, avec le chemin donné"
 
 #. type: item
-#: doc/guix.texi:21767 doc/guix.texi:21990
+#: doc/guix.texi:26535 doc/guix.texi:26758
 #, no-wrap
 msgid "x:journald"
 msgstr "x:journald"
 
 #. type: table
-#: doc/guix.texi:21769 doc/guix.texi:21992
+#: doc/guix.texi:26537 doc/guix.texi:26760
 msgid "output to journald logging system"
 msgstr "la sortie va vers le système de journalisation journald"
 
 #. type: deftypevr
-#: doc/guix.texi:21773 doc/guix.texi:21996
+#: doc/guix.texi:26541 doc/guix.texi:26764
 msgid "In all case the x prefix is the minimal level, acting as a filter"
 msgstr "Dans tous les cas, le préfixe x est le niveau minimal, qui agit comme un filtre"
 
 #. type: deftypevr
-#: doc/guix.texi:21791 doc/guix.texi:22014
+#: doc/guix.texi:26559 doc/guix.texi:26782
 msgid "Multiple outputs can be defined, they just need to be separated by spaces."
 msgstr "Plusieurs sorties peuvent être définies, elles doivent juste être séparées par des espaces."
 
 #. type: deftypevr
-#: doc/guix.texi:21793 doc/guix.texi:22016
+#: doc/guix.texi:26561 doc/guix.texi:26784
 msgid "Defaults to @samp{\"3:stderr\"}."
 msgstr "La valeur par défaut est @samp{\"3:stderr\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:21796
+#: doc/guix.texi:26564
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer audit-level"
 msgstr "{paramètre de @code{libvirt-configuration}} integer audit-level"
 
 #. type: deftypevr
-#: doc/guix.texi:21798
+#: doc/guix.texi:26566
 msgid "Allows usage of the auditing subsystem to be altered"
 msgstr "Permet de modifier l'utilisation du sous-système d'audit"
 
 #. type: itemize
-#: doc/guix.texi:21802
+#: doc/guix.texi:26570
 msgid "0: disable all auditing"
 msgstr "0 : désactive tout audit"
 
 #. type: itemize
-#: doc/guix.texi:21805
+#: doc/guix.texi:26573
 msgid "1: enable auditing, only if enabled on host"
 msgstr "1 : active l'audit, seulement s'il est activé sur l'hôte"
 
 #. type: itemize
-#: doc/guix.texi:21808
+#: doc/guix.texi:26576
 msgid "2: enable auditing, and exit if disabled on host."
 msgstr "2 : active l'audit, et quitte s'il est désactivé sur l'hôte."
 
 #. type: deftypevr
-#: doc/guix.texi:21815
+#: doc/guix.texi:26583
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} boolean audit-logging"
 msgstr "{paramètre de @code{libvirt-configuration}} boolean audit-logging"
 
 #. type: deftypevr
-#: doc/guix.texi:21817
+#: doc/guix.texi:26585
 msgid "Send audit messages via libvirt logging infrastructure."
 msgstr "Envoie les messages d'audit via l'infrastructure de journalisation de libvirt."
 
 #. type: deftypevr
-#: doc/guix.texi:21822
+#: doc/guix.texi:26590
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} optional-string host-uuid"
 msgstr "{paramètre de @code{libvirt-configuration}} optional-string host-uuid"
 
 #. type: deftypevr
-#: doc/guix.texi:21824
+#: doc/guix.texi:26592
 msgid "Host UUID.  UUID must not have all digits be the same."
 msgstr "UUID de l'hôte.  L'UUID ne doit pas avoir tous ses nombres identiques."
 
 #. type: deftypevr
-#: doc/guix.texi:21829
+#: doc/guix.texi:26597
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string host-uuid-source"
 msgstr "{paramètre de @code{libvirt-configuration}} string host-uuid-source"
 
 #. type: deftypevr
-#: doc/guix.texi:21831
+#: doc/guix.texi:26599
 msgid "Source to read host UUID."
 msgstr "Source où lire l'UUID de l'hôte."
 
 #. type: itemize
-#: doc/guix.texi:21835
+#: doc/guix.texi:26603
 msgid "@code{smbios}: fetch the UUID from @code{dmidecode -s system-uuid}"
 msgstr "@code{smbios} : récupère l'UUID à partir de @code{dmidecode -s system-uuid}"
 
 #. type: itemize
-#: doc/guix.texi:21838
+#: doc/guix.texi:26606
 msgid "@code{machine-id}: fetch the UUID from @code{/etc/machine-id}"
 msgstr "@code{machine-id} : récupère l'UUID à partir de @code{/etc/machine-id}"
 
 #. type: deftypevr
-#: doc/guix.texi:21843
+#: doc/guix.texi:26611
 msgid "If @code{dmidecode} does not provide a valid UUID a temporary UUID will be generated."
 msgstr "Si @code{dmidecode} ne fournit pas un UUID valide, un UUID temporaire sera généré."
 
 #. type: deftypevr
-#: doc/guix.texi:21845
+#: doc/guix.texi:26613
 msgid "Defaults to @samp{\"smbios\"}."
 msgstr "La valeur par défaut est @samp{\"smbios\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:21848
+#: doc/guix.texi:26616
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer keepalive-interval"
 msgstr "{paramètre de @code{libvirt-configuration}} integer keepalive-interval"
 
 #. type: deftypevr
-#: doc/guix.texi:21853
+#: doc/guix.texi:26621
 msgid "A keepalive message is sent to a client after @code{keepalive_interval} seconds of inactivity to check if the client is still responding.  If set to -1, libvirtd will never send keepalive requests; however clients can still send them and the daemon will send responses."
 msgstr "Un message keepalive est envoyé au client après @code{keepalive_interval} secondes d'inactivité pour vérifier si le client répond toujours.  Si la valeur est -1, libvirtd n'enverra jamais de requête keepalive ; cependant les clients peuvent toujours en envoyer et le démon y répondra."
 
 #. type: deftypevr
-#: doc/guix.texi:21858
+#: doc/guix.texi:26626
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer keepalive-count"
 msgstr "{paramètre de @code{libvirt-configuration}} integer keepalive-count"
 
 #. type: deftypevr
-#: doc/guix.texi:21862
+#: doc/guix.texi:26630
 msgid "Maximum number of keepalive messages that are allowed to be sent to the client without getting any response before the connection is considered broken."
 msgstr "Nombre maximum de messages keepalive qui peuvent être envoyés au client sans réponse avant que la connexion ne soit considérée comme cassée."
 
 #. type: deftypevr
-#: doc/guix.texi:21869
+#: doc/guix.texi:26637
 msgid "In other words, the connection is automatically closed approximately after @code{keepalive_interval * (keepalive_count + 1)} seconds since the last message received from the client.  When @code{keepalive-count} is set to 0, connections will be automatically closed after @code{keepalive-interval} seconds of inactivity without sending any keepalive messages."
 msgstr "En d'autres termes, la connexion est approximativement fermée après @code{keepalive_interval * (keepalive_count + 1)} secondes après le dernier message reçu de la part du client.  Lorsque @code{keepalive-count} est à 0, les connexions seront automatiquement fermées après @code{keepalive-interval} secondes d'inactivité sans envoyer le moindre message keepalive."
 
 #. type: deftypevr
-#: doc/guix.texi:21874
+#: doc/guix.texi:26642
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer admin-keepalive-interval"
 msgstr "{paramètre de @code{libvirt-configuration}} integer admin-keepalive-interval"
 
 #. type: deftypevr
-#: doc/guix.texi:21876 doc/guix.texi:21883
+#: doc/guix.texi:26644 doc/guix.texi:26651
 msgid "Same as above but for admin interface."
 msgstr "Comme précédemment, mais pour l'interface d'administration."
 
 #. type: deftypevr
-#: doc/guix.texi:21881
+#: doc/guix.texi:26649
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer admin-keepalive-count"
 msgstr "{paramètre de @code{libvirt-configuration}} integer admin-keepalive-count"
 
 #. type: deftypevr
-#: doc/guix.texi:21888
+#: doc/guix.texi:26656
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer ovs-timeout"
 msgstr "{paramètre de @code{libvirt-configuration}} integer ovs-timeout"
 
 #. type: deftypevr
-#: doc/guix.texi:21890
+#: doc/guix.texi:26658
 msgid "Timeout for Open vSwitch calls."
 msgstr "Délai d'attente pour les appels Open vSwitch."
 
 #. type: deftypevr
-#: doc/guix.texi:21894
+#: doc/guix.texi:26662
 msgid "The @code{ovs-vsctl} utility is used for the configuration and its timeout option is set by default to 5 seconds to avoid potential infinite waits blocking libvirt."
 msgstr "L'utilitaire @code{ovs-vsctl} est utilisé pour la configuration et son option de délai d'attente est à 5 secondes pour éviter qu'une attente infinie ne bloque libvirt."
 
 #. type: subsubheading
-#: doc/guix.texi:21901
+#: doc/guix.texi:26669
 #, no-wrap
 msgid "Virtlog daemon"
-msgstr "démon Virrlog"
+msgstr "Démon Virrlog"
 
 #. type: Plain text
-#: doc/guix.texi:21904
+#: doc/guix.texi:26672
 msgid "The virtlogd service is a server side daemon component of libvirt that is used to manage logs from virtual machine consoles."
 msgstr "Le service virtlogd est un démon côté serveur qui fait partie de libvirt, utilisé pour gérer les journaux des consoles des machines virtuelles."
 
 #. type: Plain text
-#: doc/guix.texi:21910
+#: doc/guix.texi:26678
 msgid "This daemon is not used directly by libvirt client applications, rather it is called on their behalf by @code{libvirtd}. By maintaining the logs in a standalone daemon, the main @code{libvirtd} daemon can be restarted without risk of losing logs. The @code{virtlogd} daemon has the ability to re-exec()  itself upon receiving @code{SIGUSR1}, to allow live upgrades without downtime."
 msgstr "Ce démon n'est pas utilisé directement par les clients libvirt, mais il est appelé pour eux par @code{libvirtd}.  En maintenant les journaux dans un démon séparé, le démon @code{libvirtd} principal peut être redémarré sans risque de perte de journaux.  Le démon @code{virtlogd} a la possibilité de ré-exécuter exec() sur lui-même quand il reçoit @code{SIGUSR1}, pour permettre des mises à jour à chaux sans temps mort."
 
 #. type: deffn
-#: doc/guix.texi:21911
+#: doc/guix.texi:26679
 #, no-wrap
 msgid "{Scheme Variable} virtlog-service-type"
 msgstr "{Variable Scheme} virtlog-service-type"
 
 #. type: deffn
-#: doc/guix.texi:21914
+#: doc/guix.texi:26682
 msgid "This is the type of the virtlog daemon.  Its value must be a @code{virtlog-configuration}."
 msgstr "Le type de service pour le démon virtlogd.  Sa valeur doit être un @code{virtlog-configuration}."
 
-#. type: example
-#: doc/guix.texi:21919
+#. type: lisp
+#: doc/guix.texi:26687
 #, no-wrap
 msgid ""
 "(service virtlog-service-type\n"
@@ -41192,162 +50062,177 @@ msgstr ""
 "          (max-clients 1000)))\n"
 
 #. type: deftypevr
-#: doc/guix.texi:21922
+#: doc/guix.texi:26690
 #, no-wrap
 msgid "{@code{virtlog-configuration} parameter} integer log-level"
 msgstr "{paramètre de @code{virtlog-configuration}} integer log-level"
 
 #. type: deftypevr
-#: doc/guix.texi:21929
+#: doc/guix.texi:26697
 #, no-wrap
 msgid "{@code{virtlog-configuration} parameter} string log-filters"
 msgstr "{paramètre de @code{virtlog-configuration}} string log-filters"
 
 #. type: deftypevr
-#: doc/guix.texi:21974
+#: doc/guix.texi:26702
+msgid "A filter allows to select a different logging level for a given category of logs The format for a filter is one of:"
+msgstr "Un filtre qui permet de sélectionner plusieurs niveaux de journalisation pour une catégorie donnée.  Le format d'un filtre est :"
+
+#. type: deftypevr
+#: doc/guix.texi:26719
+msgid "where @code{name} is a string which is matched against the category given in the @code{VIR_LOG_INIT()} at the top of each libvirt source file, e.g., \"remote\", \"qemu\", or \"util.json\" (the name in the filter can be a substring of the full category name, in order to match multiple similar categories), the optional \"+\" prefix tells libvirt to log stack trace for each message matching name, and @code{x} is the minimal level where matching messages should be logged:"
+msgstr "où @code{nom} est une chaîne de caractères qui correspond à la catégorie donnée dans @code{VIR_LOG_INIT()} au début de chaque fichier source de libvirt, p.@: ex.@: « remote », « qemu » ou « util.json » (le nom dans le filtre peut être une sous-chaîne du nom complet de la catégorie, pour pouvoir correspondre à plusieurs catégories similaires), le préfixe facultatif « + » dit à libvirt d'enregistrer les traces de piles pour chaque message qui correspond au nom, et @code{x} est le niveau minimal des messages qui devraient être enregistrés :"
+
+#. type: deftypevr
+#: doc/guix.texi:26742
 #, no-wrap
 msgid "{@code{virtlog-configuration} parameter} string log-outputs"
 msgstr "{paramètre de @code{virtlog-configuration}} string log-outputs"
 
 #. type: deftypevr
-#: doc/guix.texi:21979
+#: doc/guix.texi:26747
 msgid "An output is one of the places to save logging information The format for an output can be:"
 msgstr "Une sortie est l'un des endroits où les journaux sont enregistrés.  Le format d'une sortie peut être :"
 
 #. type: deftypevr
-#: doc/guix.texi:22019
+#: doc/guix.texi:26787
 #, no-wrap
 msgid "{@code{virtlog-configuration} parameter} integer max-clients"
 msgstr "{paramètre de @code{virtlog-configuration}} integer max-clients"
 
 #. type: deftypevr
-#: doc/guix.texi:22024
+#: doc/guix.texi:26792
 msgid "Defaults to @samp{1024}."
 msgstr "La valeur par défaut est @samp{1024}."
 
 #. type: deftypevr
-#: doc/guix.texi:22027
+#: doc/guix.texi:26795
 #, no-wrap
 msgid "{@code{virtlog-configuration} parameter} integer max-size"
 msgstr "{paramètre de @code{virtlog-configuration}} integer max-size"
 
 #. type: deftypevr
-#: doc/guix.texi:22029
+#: doc/guix.texi:26797
 msgid "Maximum file size before rolling over."
 msgstr "Taille de fichier maximale avant roulement."
 
 #. type: deftypevr
-#: doc/guix.texi:22031
+#: doc/guix.texi:26799
 msgid "Defaults to @samp{2MB}"
 msgstr "La valeur par défaut est @samp{2MB}."
 
 #. type: deftypevr
-#: doc/guix.texi:22034
+#: doc/guix.texi:26802
 #, no-wrap
 msgid "{@code{virtlog-configuration} parameter} integer max-backups"
 msgstr "{paramètre de @code{virtlog-configuration}} integer max-backups"
 
 #. type: deftypevr
-#: doc/guix.texi:22036
+#: doc/guix.texi:26804
 msgid "Maximum number of backup files to keep."
 msgstr "Nombre maximal de fichiers de sauvegardes à garder."
 
 #. type: deftypevr
-#: doc/guix.texi:22038
+#: doc/guix.texi:26806
 msgid "Defaults to @samp{3}"
 msgstr "La valeur par défaut est @samp{3}."
 
+#. type: anchor{#1}
+#: doc/guix.texi:26810
+msgid "transparent-emulation-qemu"
+msgstr "transparent-emulation-qemu"
+
 #. type: subsubheading
-#: doc/guix.texi:22041
+#: doc/guix.texi:26810
 #, no-wrap
 msgid "Transparent Emulation with QEMU"
 msgstr "Émulation transparente avec QEMU"
 
 #. type: cindex
-#: doc/guix.texi:22043
+#: doc/guix.texi:26812
 #, no-wrap
 msgid "emulation"
 msgstr "émulation"
 
 #. type: code{#1}
-#: doc/guix.texi:22044
+#: doc/guix.texi:26813
 #, no-wrap
 msgid "binfmt_misc"
 msgstr "binfmt_misc"
 
 #. type: Plain text
-#: doc/guix.texi:22050
-msgid "@code{qemu-binfmt-service-type} provides support for transparent emulation of program binaries built for different architectures---e.g., it allows you to transparently execute an ARMv7 program on an x86_64 machine.  It achieves this by combining the @uref{https://www.qemu.org, QEMU} emulator and the @code{binfmt_misc} feature of the kernel Linux."
-msgstr "@code{qemu-binfmt-service-type} fournit le support de l'émulation transparente de binaires construits pour des architectures différentes — p.@: ex.@: il permet d'exécuter de manière transparente des programmes ARMv sur une machine x86_64.  Cela se fait en combinant l'émulateur @uref{https://www.qemu.org, QEMU} et la fonctionnalité @code{binfmt_misc} du noyau Linux."
+#: doc/guix.texi:26821
+msgid "@code{qemu-binfmt-service-type} provides support for transparent emulation of program binaries built for different architectures---e.g., it allows you to transparently execute an ARMv7 program on an x86_64 machine.  It achieves this by combining the @uref{https://www.qemu.org, QEMU} emulator and the @code{binfmt_misc} feature of the kernel Linux.  This feature only allows you to emulate GNU/Linux on a different architecture, but see below for GNU/Hurd support."
+msgstr "@code{qemu-binfmt-service-type} fournit le support de l'émulation transparente de binaires construits pour des architectures différentes — p.@: ex.@: il permet d'exécuter de manière transparente des programmes ARMv7 sur une machine x86_64.  Cela se fait en combinant l'émulateur @uref{https://www.qemu.org, QEMU} et la fonctionnalité @code{binfmt_misc} du noyau Linux.  Cette fonctionnalité ne vous permet que d'émuler GNU/Linux sur une architecture différente, mais regardez plus bas pour GNU/Hurd."
 
 #. type: defvr
-#: doc/guix.texi:22051
+#: doc/guix.texi:26822
 #, no-wrap
 msgid "{Scheme Variable} qemu-binfmt-service-type"
 msgstr "{Variable Scheme} qemu-binfmt-service-type"
 
 #. type: defvr
-#: doc/guix.texi:22056
+#: doc/guix.texi:26827
 msgid "This is the type of the QEMU/binfmt service for transparent emulation.  Its value must be a @code{qemu-binfmt-configuration} object, which specifies the QEMU package to use as well as the architecture we want to emulated:"
 msgstr "Le type du service QEMU/binfmt pour l'émulation transparente.  Sa valeur doit être un objet @code{qemu-binfmt-configuration}, qui spécifie le paquet QEMU à utiliser ainsi que l'architecture que vous voulez émuler :"
 
-#. type: example
-#: doc/guix.texi:22061
+#. type: lisp
+#: doc/guix.texi:26832
 #, no-wrap
 msgid ""
 "(service qemu-binfmt-service-type\n"
 "         (qemu-binfmt-configuration\n"
-"           (platforms (lookup-qemu-platforms \"arm\" \"aarch64\" \"mips64el\"))))\n"
+"           (platforms (lookup-qemu-platforms \"arm\" \"aarch64\"))))\n"
 msgstr ""
 "(service qemu-binfmt-service-type\n"
 "         (qemu-binfmt-configuration\n"
-"           (platforms (lookup-qemu-platforms \"arm\" \"aarch64\" \"mips64el\"))))\n"
+"           (platforms (lookup-qemu-platforms \"arm\" \"aarch64\"))))\n"
 
 #. type: defvr
-#: doc/guix.texi:22067
+#: doc/guix.texi:26838
 msgid "In this example, we enable transparent emulation for the ARM and aarch64 platforms.  Running @code{herd stop qemu-binfmt} turns it off, and running @code{herd start qemu-binfmt} turns it back on (@pxref{Invoking herd, the @command{herd} command,, shepherd, The GNU Shepherd Manual})."
 msgstr "Dans cet exemple, on active l'émulation transparente pour les plateformes ARM et aarch64.  Lancer @code{herd stop qemu-binfmt} l'éteint et lancer @code{herd start qemu-binfmt} le rallume (@pxref{Invoking herd, the @command{herd} command,, shepherd, The GNU Shepherd Manual})."
 
 #. type: deftp
-#: doc/guix.texi:22069
+#: doc/guix.texi:26840
 #, no-wrap
 msgid "{Data Type} qemu-binfmt-configuration"
 msgstr "{Type de données} qemu-binfmt-configuration"
 
 #. type: deftp
-#: doc/guix.texi:22071
+#: doc/guix.texi:26842
 msgid "This is the configuration for the @code{qemu-binfmt} service."
 msgstr "La configuration du service @code{qemu-binfmt}."
 
 #. type: item
-#: doc/guix.texi:22073
+#: doc/guix.texi:26844
 #, no-wrap
 msgid "@code{platforms} (default: @code{'()})"
 msgstr "@code{platforms} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:22076
+#: doc/guix.texi:26847
 msgid "The list of emulated QEMU platforms.  Each item must be a @dfn{platform object} as returned by @code{lookup-qemu-platforms} (see below)."
 msgstr "La liste des plates-formes émulées par QEMU.  Chaque élément doit être un objet @dfn{platform object} tel que renvoyé par @code{lookup-qemu-platforms} (voir plus bas)."
 
 #. type: item
-#: doc/guix.texi:22077
+#: doc/guix.texi:26848
 #, no-wrap
 msgid "@code{guix-support?} (default: @code{#f})"
 msgstr "@code{guix-support?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:22083
-msgid "When it is true, QEMU and all its dependencies are added to the build environment of @command{guix-daemon} (@pxref{Invoking guix-daemon, @code{--chroot-directory} option}).  This allows the @code{binfmt_misc} handlers to be used within the build environment, which in turn means that you can transparently build programs for another architecture."
-msgstr "Lorsque la valeur est vraie, QEMU et toutes ses dépendances sont ajoutés à l'environnement de construction de @command{guix-daemon} (@pxref{Invoking guix-daemon, @code{--chroot-directory} option}).  Cela permet d'utiliser les gestionnaires @code{binfmt_misc} dans l'environnement de cosntruction, ce qui signifie que vous pouvez construire des programmes pour d'autres architectures de manière transparente."
+#: doc/guix.texi:26854
+msgid "When it is true, QEMU and all its dependencies are added to the build environment of @command{guix-daemon} (@pxref{Invoking guix-daemon, @option{--chroot-directory} option}).  This allows the @code{binfmt_misc} handlers to be used within the build environment, which in turn means that you can transparently build programs for another architecture."
+msgstr "Lorsque la valeur est vraie, QEMU et toutes ses dépendances sont ajoutés à l'environnement de construction de @command{guix-daemon} (@pxref{Invoking guix-daemon, @code{--chroot-directory} option}).  Cela permet d'utiliser les gestionnaires @code{binfmt_misc} dans l'environnement de construction, ce qui signifie que vous pouvez construire des programmes pour d'autres architectures de manière transparente."
 
 #. type: table
-#: doc/guix.texi:22086
+#: doc/guix.texi:26857
 msgid "For example, let's suppose you're on an x86_64 machine and you have this service:"
 msgstr "Par exemple, supposons que vous soyez sur une machine x86_64 et que vous avez ce services :"
 
-#. type: example
-#: doc/guix.texi:22092
+#. type: lisp
+#: doc/guix.texi:26863
 #, no-wrap
 msgid ""
 "(service qemu-binfmt-service-type\n"
@@ -41361,264 +50246,1790 @@ msgstr ""
 "           (guix-support? #t)))\n"
 
 #. type: table
-#: doc/guix.texi:22095
+#: doc/guix.texi:26866
 msgid "You can run:"
 msgstr "Vous pouvez lancer :"
 
 #. type: example
-#: doc/guix.texi:22098
+#: doc/guix.texi:26869
 #, no-wrap
 msgid "guix build -s armhf-linux inkscape\n"
 msgstr "guix build -s armhf-linux inkscape\n"
 
 #. type: table
-#: doc/guix.texi:22105
+#: doc/guix.texi:26876
 msgid "and it will build Inkscape for ARMv7 @emph{as if it were a native build}, transparently using QEMU to emulate the ARMv7 CPU.  Pretty handy if you'd like to test a package build for an architecture you don't have access to!"
 msgstr "et cela construira Inkscape pour ARMv7 @emph{comme s'il s'agissait d'une construction native}, de manière transparente avec QEMU pour émuler un CPU ARMv7.  Plutôt pratique si vous voulez tester un paquet construit pour une architecture à laquelle vous n'avez pas accès !"
 
 #. type: item
-#: doc/guix.texi:22106
+#: doc/guix.texi:26877
 #, no-wrap
 msgid "@code{qemu} (default: @code{qemu})"
 msgstr "@code{qemu} (par défaut : @code{qemu})"
 
 #. type: table
-#: doc/guix.texi:22108
+#: doc/guix.texi:26879 doc/guix.texi:26973
 msgid "The QEMU package to use."
 msgstr "Le paquet QEMU à utiliser."
 
 #. type: deffn
-#: doc/guix.texi:22111
+#: doc/guix.texi:26882
 #, no-wrap
 msgid "{Scheme Procedure} lookup-qemu-platforms @var{platforms}@dots{}"
 msgstr "{Procédure Scheme} lookup-qemu-platforms @var{platforms}@dots{}"
 
 #. type: deffn
-#: doc/guix.texi:22116
+#: doc/guix.texi:26887
 msgid "Return the list of QEMU platform objects corresponding to @var{platforms}@dots{}.  @var{platforms} must be a list of strings corresponding to platform names, such as @code{\"arm\"}, @code{\"sparc\"}, @code{\"mips64el\"}, and so on."
 msgstr "Renvoie la liste des objets de plates-formes QEMU correspondant à @var{platforms}@dots{}.  @var{platforms} doit être une liste de chaînes de caractères correspondant aux noms de plates-formes, comme @code{\"arm\"}, @code{\"sparc\"}, @code{\"mips64el\"} etc."
 
 #. type: deffn
-#: doc/guix.texi:22118
+#: doc/guix.texi:26889
 #, no-wrap
 msgid "{Scheme Procedure} qemu-platform? @var{obj}"
 msgstr "{Procédure Scheme} qemu-platform? @var{obj}"
 
 #. type: deffn
-#: doc/guix.texi:22120
+#: doc/guix.texi:26891
 msgid "Return true if @var{obj} is a platform object."
 msgstr "Renvoie vrai s i@var{obj} est un objet de plate-forme."
 
 #. type: deffn
-#: doc/guix.texi:22122
+#: doc/guix.texi:26893
 #, no-wrap
 msgid "{Scheme Procedure} qemu-platform-name @var{platform}"
 msgstr "{Procédure Scheme} qemu-platform-name @var{platform}"
 
 #. type: deffn
-#: doc/guix.texi:22124
+#: doc/guix.texi:26895
 msgid "Return the name of @var{platform}---a string such as @code{\"arm\"}."
 msgstr "Renvoie le nom de @var{platform} — une chaîne comme @code{\"arm\"}."
 
+#. type: subsubheading
+#: doc/guix.texi:26898
+#, no-wrap
+msgid "The Hurd in a Virtual Machine"
+msgstr "Exécuter le Hurd dans une machine virtuelle"
+
+#. type: cindex
+#: doc/guix.texi:26901
+#, no-wrap
+msgid "the Hurd"
+msgstr "le Hurd"
+
+#. type: cindex
+#: doc/guix.texi:26902
+#, no-wrap
+msgid "childhurd"
+msgstr "childhurd"
+
+#. type: Plain text
+#: doc/guix.texi:26910
+msgid "Service @code{hurd-vm} provides support for running GNU/Hurd in a virtual machine (VM), a so-called @dfn{childhurd}.  This service is meant to be used on GNU/Linux and the given GNU/Hurd operating system configuration is cross-compiled.  The virtual machine is a Shepherd service that can be referred to by the names @code{hurd-vm} and @code{childhurd} and be controlled with commands such as:"
+msgstr "Le service @code{hurd-vm} permet de lancer GNU/Hurd dans une machine virtuelle (VM), un @dfn{childhurd}.  Ce service est conçu pour être utilisé sur GNU/Linux et la configuration du système GNU/Hurd donné est compilée de manière croisée.  La machine virtuelle est un service Shepherd qui a les noms @code{hurd-vm} et @code{childhurd} et qui peut être contrôlé avec les commandes suivantes :"
+
+#. type: example
+#: doc/guix.texi:26914
+#, no-wrap
+msgid ""
+"herd start hurd-vm\n"
+"herd stop childhurd\n"
+msgstr ""
+"herd start hurd-vm\n"
+"herd stop childhurd\n"
+
+#. type: Plain text
+#: doc/guix.texi:26918
+msgid "When the service is running, you can view its console by connecting to it with a VNC client, for example with:"
+msgstr "Lorsque le service est lancé, vous pouvez voir sa console en vous y connectant avec un client VNC, par exemple avec :"
+
+#. type: example
+#: doc/guix.texi:26922
+#, no-wrap
+msgid ""
+"guix environment --ad-hoc tigervnc-client -- \\\n"
+"         vncviewer localhost:5900\n"
+msgstr ""
+"guix environment --ad-hoc tigervnc-client -- \\\n"
+"         vncviewer localhost:5900\n"
+
+#. type: Plain text
+#: doc/guix.texi:26928
+msgid "The default configuration (see @code{hurd-vm-configuration} below)  spawns a secure shell (SSH) server in your GNU/Hurd system, which QEMU (the virtual machine emulator) redirects to port 10222 on the host.  Thus, you can connect over SSH to the childhurd with:"
+msgstr "La configuration par défaut (voir @code{hurd-vm-configuration} ci-dessous) crée un serveur secure shell (SSH) dans votre système GNU/Hurd, que QEMU (l'émulateur de machine virtuelle) redirige sur le port 10222 de l'hôte.  Ainsi, vous pouvez vous connecter en SSH au childhurd avec :"
+
+#. type: example
+#: doc/guix.texi:26931
+#, no-wrap
+msgid "ssh root@@localhost -p 10022\n"
+msgstr "ssh root@@localhost -p 10022\n"
+
+#. type: Plain text
+#: doc/guix.texi:26940
+msgid "The childhurd is volatile and stateless: it starts with a fresh root file system every time you restart it.  By default though, all the files under @file{/etc/childhurd} on the host are copied as is to the root file system of the childhurd when it boots.  This allows you to initialize ``secrets'' inside the VM: SSH host keys, authorized substitute keys, and so on---see the explanation of @code{secret-root} below."
+msgstr "Le childhurd est volatile et sans état . il démarre avec un nouveau système de fichier à chaque fois que vous le redémarrez.  Par défaut cependant, tous les fichiers sous @file{/etc/childhurd} sur l'hôte sont copiés tels quels sur le système de fichiers racine du childhurd à son démarrage.  Cela vous permet d'initialiser des « secrets » à l'intérieur de la VM : les clés hôtes SSH, les clés de substituts autorisés, etc — voir l'explication de @code{secret-root} ci-dessous."
+
+#. type: defvr
+#: doc/guix.texi:26941
+#, no-wrap
+msgid "{Scheme Variable} hurd-vm-service-type"
+msgstr "{Variable Scheme} hurd-vm-service-type"
+
+#. type: defvr
+#: doc/guix.texi:26947
+msgid "This is the type of the Hurd in a Virtual Machine service.  Its value must be a @code{hurd-vm-configuration} object, which specifies the operating system (@pxref{operating-system Reference}) and the disk size for the Hurd Virtual Machine, the QEMU package to use as well as the options for running it."
+msgstr "C'est le type du service du Hurd dans une machine virtuelle.  Sa valeur doit être un objet @code{hurd-vm-configuration}, qui spécifie le système d'exploitation (@pxref{operating-system Reference}) et la taille de disque pour la machine virtuelle du Hurd, le paquet QEMU à utiliser ainsi que les options pour le lancer."
+
+#. type: lisp
+#: doc/guix.texi:26955
+#, no-wrap
+msgid ""
+"(service hurd-vm-service-type\n"
+"         (hurd-vm-configuration\n"
+"          (disk-size (* 5000 (expt 2 20))) ;5G\n"
+"          (memory-size 1024)))             ;1024MiB\n"
+msgstr ""
+"(service hurd-vm-service-type\n"
+"         (hurd-vm-configuration\n"
+"          (disk-size (* 5000 (expt 2 20))) ;5G\n"
+"          (memory-size 1024)))             ;1024MiB\n"
+
+#. type: defvr
+#: doc/guix.texi:26959
+msgid "would create a disk image big enough to build GNU@tie{}Hello, with some extra memory."
+msgstr "créerait une image disque assez grande pour construire GNU@tie{}Hello, avec une peu de place en plus."
+
+#. type: deftp
+#: doc/guix.texi:26961
+#, no-wrap
+msgid "{Data Type} hurd-vm-configuration"
+msgstr "{Type de données} hurd-vm-configuration"
+
+#. type: deftp
+#: doc/guix.texi:26964
+msgid "The data type representing the configuration for @code{hurd-vm-service-type}."
+msgstr "Type de données représentant la configuration de @code{hurd-vm-service-type}."
+
+#. type: item
+#: doc/guix.texi:26966
+#, no-wrap
+msgid "@code{os} (default: @var{%hurd-vm-operating-system})"
+msgstr "@code{os} (par défaut : @var{%hurd-vm-operating-system})"
+
+#. type: table
+#: doc/guix.texi:26970
+msgid "The operating system to instantiate.  This default is bare-bones with a permissive OpenSSH secure shell daemon listening on port 2222 (@pxref{Networking Services, @code{openssh-service-type}})."
+msgstr "Le système d'exploitation à instancier.  La valeur par défaut est le système minimal avec un démon OpenSSH permissif en écoute sur le port 2222 (@pxref{Networking Services, @code{openssh-service-type}})."
+
+#. type: item
+#: doc/guix.texi:26971
+#, no-wrap
+msgid "@code{qemu} (default: @code{qemu-minimal})"
+msgstr "@code{qemu} (par défaut : @code{qemu-minimal})"
+
+#. type: item
+#: doc/guix.texi:26974
+#, no-wrap
+msgid "@code{image} (default: @var{hurd-vm-disk-image})"
+msgstr "@code{image} (par défaut : @var{hurd-vm-disk-image})"
+
+#. type: table
+#: doc/guix.texi:26977
+msgid "The procedure used to build the disk-image built from this configuration."
+msgstr "La procédure utilisée pour construire l'image disque construite à partir de cette configuration."
+
+#. type: item
+#: doc/guix.texi:26978
+#, no-wrap
+msgid "@code{disk-size} (default: @code{'guess})"
+msgstr "@code{disk-size} (par défaut : @code{'guess})"
+
+#. type: table
+#: doc/guix.texi:26980
+msgid "The size of the disk image."
+msgstr "La taille de l'image disque."
+
+#. type: item
+#: doc/guix.texi:26981
+#, no-wrap
+msgid "@code{memory-size} (default: @code{512})"
+msgstr "@code{memory-size} (par défaut : @code{512})"
+
+#. type: table
+#: doc/guix.texi:26983
+msgid "The memory size of the Virtual Machine in mebibytes."
+msgstr "La taille de mémoire de la machine virtuelle en mébioctets."
+
+#. type: item
+#: doc/guix.texi:26984
+#, no-wrap
+msgid "@code{options} (default: @code{'(\"--snapshot\")})"
+msgstr "@code{options} (par défaut : @code{'(\"--snapshot\")})"
+
+#. type: table
+#: doc/guix.texi:26986
+msgid "The extra options for running QEMU."
+msgstr "Options supplémentaires pour lancer QEMU."
+
+#. type: table
+#: doc/guix.texi:26991
+msgid "If set, a non-zero positive integer used to parameterize Childhurd instances.  It is appended to the service's name, e.g. @code{childhurd1}."
+msgstr "Si l'option est indiquée, c'est un entier strictement positif utilisé créer plusieurs instances de childhurd.  Il est ajouté au nom du service, p.@: ex.@: @code{childhurd1}."
+
+#. type: item
+#: doc/guix.texi:26992
+#, no-wrap
+msgid "@code{net-options} (default: @var{hurd-vm-net-options})"
+msgstr "@code{net-options} (par défaut : @var{hurd-vm-net-options})"
+
+#. type: table
+#: doc/guix.texi:26994
+msgid "The procedure used to produce the list of QEMU networking options."
+msgstr "La procédure utilisée pour produire une liste d'options réseau pour QEMU."
+
+#. type: table
+#: doc/guix.texi:26996
+msgid "By default, it produces"
+msgstr "Par défaut, elle produit"
+
+#. type: lisp
+#: doc/guix.texi:27003
+#, no-wrap
+msgid ""
+"'(\"--device\" \"rtl8139,netdev=net0\"\n"
+"  \"--netdev\" \"user,id=net0\\\n"
+"              ,hostfwd=tcp:127.0.0.1:@var{secrets-port}-:1004\\\n"
+"              ,hostfwd=tcp:127.0.0.1:@var{ssh-port}-:2222\\\n"
+"              ,hostfwd=tcp:127.0.0.1:@var{vnc-port}-:5900\")\n"
+msgstr ""
+"'(\"--device\" \"rtl8139,netdev=net0\"\n"
+"  \"--netdev\" \"user,id=net0\\\n"
+"              ,hostfwd=tcp:127.0.0.1:@var{secrets-port}-:1004\\\n"
+"              ,hostfwd=tcp:127.0.0.1:@var{ssh-port}-:2222\\\n"
+"              ,hostfwd=tcp:127.0.0.1:@var{vnc-port}-:5900\")\n"
+
+#. type: table
+#: doc/guix.texi:27006
+msgid "with forwarded ports:"
+msgstr "avec les ports renvoyés :"
+
+#. type: example
+#: doc/guix.texi:27011
+#, no-wrap
+msgid ""
+"@var{secrets-port}: @code{(+ 11004 (* 1000 @var{ID}))}\n"
+"@var{ssh-port}: @code{(+ 10022 (* 1000 @var{ID}))}\n"
+"@var{vnc-port}: @code{(+ 15900 (* 1000 @var{ID}))}\n"
+msgstr ""
+"@var{secrets-port}: @code{(+ 11004 (* 1000 @var{ID}))}\n"
+"@var{ssh-port}: @code{(+ 10022 (* 1000 @var{ID}))}\n"
+"@var{vnc-port}: @code{(+ 15900 (* 1000 @var{ID}))}\n"
+
+#. type: item
+#: doc/guix.texi:27013
+#, no-wrap
+msgid "@code{secret-root} (default: @file{/etc/childhurd})"
+msgstr "@code{secret-root} (par défaut : @file{/etc/childhurd})"
+
+#. type: table
+#: doc/guix.texi:27018
+msgid "The root directory with out-of-band secrets to be installed into the childhurd once it runs.  Childhurds are volatile which means that on every startup, secrets such as the SSH host keys and Guix signing key are recreated."
+msgstr "Le répertoire racine avec des secrets externes à installer dans le childhurd une fois lancé.  Les childhurds sont volatile, ce qiu signifie qu'à chaque démarrage, les secrets comme les clés hôtes SSH et la clé de signature de Guix sont recréés."
+
+#. type: table
+#: doc/guix.texi:27022
+msgid "If the @file{/etc/childhurd} directory does not exist, the @code{secret-service} running in the Childhurd will be sent an empty list of secrets."
+msgstr "Si le répertoire @file{/etc/childhurd} n'existe pas, le @code{secret-service} qui tourne dans le Childhurd recevra une liste vide de secrets."
+
+#. type: table
+#: doc/guix.texi:27025
+msgid "By default, the service automatically populates @file{/etc/childhurd} with the following non-volatile secrets, unless they already exist:"
+msgstr "Par défaut, le service rempli automatiquement @file{/etc/childhurd} avec les secrets non-volatiles suivants, à moins qu'ils existent déjà :"
+
+#. type: example
+#: doc/guix.texi:27034
+#, no-wrap
+msgid ""
+"/etc/childhurd/etc/guix/acl\n"
+"/etc/childhurd/etc/guix/signing-key.pub\n"
+"/etc/childhurd/etc/guix/signing-key.sec\n"
+"/etc/childhurd/etc/ssh/ssh_host_ed25519_key\n"
+"/etc/childhurd/etc/ssh/ssh_host_ecdsa_key\n"
+"/etc/childhurd/etc/ssh/ssh_host_ed25519_key.pub\n"
+"/etc/childhurd/etc/ssh/ssh_host_ecdsa_key.pub\n"
+msgstr ""
+"/etc/childhurd/etc/guix/acl\n"
+"/etc/childhurd/etc/guix/signing-key.pub\n"
+"/etc/childhurd/etc/guix/signing-key.sec\n"
+"/etc/childhurd/etc/ssh/ssh_host_ed25519_key\n"
+"/etc/childhurd/etc/ssh/ssh_host_ecdsa_key\n"
+"/etc/childhurd/etc/ssh/ssh_host_ed25519_key.pub\n"
+"/etc/childhurd/etc/ssh/ssh_host_ecdsa_key.pub\n"
+
+#. type: table
+#: doc/guix.texi:27038
+msgid "These files are automatically sent to the guest Hurd VM when it boots, including permissions."
+msgstr "Ces fichiers sont automatiquement envoyés à la VM Hurd invitée au démarrage, avec les permissions."
+
+#. type: cindex
+#: doc/guix.texi:27039
+#, no-wrap
+msgid "childhurd, offloading"
+msgstr "childhurd, déchargement"
+
+#. type: cindex
+#: doc/guix.texi:27040
+#, no-wrap
+msgid "Hurd, offloading"
+msgstr "Hurd, déchargement"
+
+#. type: table
+#: doc/guix.texi:27044
+msgid "Having these files in place means that only a couple of things are missing to allow the host to offload @code{i586-gnu} builds to the childhurd:"
+msgstr "Avec ces fichiers en place, il ne manque plus grand chose pour pouvoir permettre à l'hôte de décharger les constructions @code{i586-gnu} au childhurd :"
+
+#. type: enumerate
+#: doc/guix.texi:27049
+msgid "Authorizing the childhurd's key on the host so that the host accepts build results coming from the childhurd, which can be done like so:"
+msgstr "Autoriser la clé du childhurd sur l'hôte pour que l'hôte puisse accepter les constructions venant du childhurd, ce qui peut se faire de cette manière :"
+
+#. type: example
+#: doc/guix.texi:27053
+#, no-wrap
+msgid ""
+"guix archive --authorize < \\\n"
+"  /etc/childhurd/etc/guix/signing-key.pub\n"
+msgstr ""
+"guix archive --authorize < \\\n"
+"  /etc/childhurd/etc/guix/signing-key.pub\n"
+
+#. type: enumerate
+#: doc/guix.texi:27058
+msgid "Adding the childhurd to @file{/etc/guix/machines.scm} (@pxref{Daemon Offload Setup})."
+msgstr "Ajouter le childhurd à @file{/etc/guix/machines.scm} (@pxref{Daemon Offload Setup})."
+
+#. type: table
+#: doc/guix.texi:27062
+msgid "We're working towards making that happen automatically---get in touch with us at @email{guix-devel@@gnu.org} to discuss it!"
+msgstr "Nous travaillons à rendre cela automatique — contactez nous sur @email{guix-devel@@gnu.org} pour en discuter !"
+
 #. type: Plain text
-#: doc/guix.texi:22136
+#: doc/guix.texi:27069
+msgid "Note that by default the VM image is volatile, i.e., once stopped the contents are lost.  If you want a stateful image instead, override the configuration's @code{image} and @code{options} without the @code{--snapshot} flag using something along these lines:"
+msgstr "Remarquez que par défaut l'image de la VM est volatile, c.-à-d.@: qu'une fois arrêtée le contenu est perdu.  Si vous voulez une image avec état à la place, remplacez les champs @code{image} et @code{options} pour enlever le drapeau @code{--snapshot} avec quelque chose de ce style-là :"
+
+#. type: lisp
+#: doc/guix.texi:27075
+#, no-wrap
+msgid ""
+"(service hurd-vm-service-type\n"
+"         (hurd-vm-configuration\n"
+"          (image   (const \"/out/of/store/writable/hurd.img\"))\n"
+"          (options '())))\n"
+msgstr ""
+"(service hurd-vm-service-type\n"
+"         (hurd-vm-configuration\n"
+"          (image   (const \"/out/of/store/writable/hurd.img\"))\n"
+"          (options '())))\n"
+
+#. type: subsubheading
+#: doc/guix.texi:27077
+#, no-wrap
+msgid "Ganeti"
+msgstr "Ganeti"
+
+#. type: cindex
+#: doc/guix.texi:27079
+#, no-wrap
+msgid "ganeti"
+msgstr "ganeti"
+
+#. type: quotation
+#: doc/guix.texi:27086
+msgid "This service is considered experimental.  Configuration options may be changed in a backwards-incompatible manner, and not all features have been thorougly tested.  Users of this service are encouraged to share their experience at @email{guix-devel@@gnu.org}."
+msgstr "Ce service est considéré comme étant expérimental.  Les options de configuration peuvent changer de manière non compatible, et tous les paramètres n'ont pas été testés.  Si vous utilisez ce service, nous vous encourageons à partager votre expérience avec @email{guix-devel@@gnu.org}."
+
+#. type: Plain text
+#: doc/guix.texi:27096
+msgid "Ganeti is a virtual machine management system.  It is designed to keep virtual machines running on a cluster of servers even in the event of hardware failures, and to make maintenance and recovery tasks easy.  It consists of multiple services which are described later in this section.  In addition to the Ganeti service, you will need the OpenSSH service (@pxref{Networking Services, @code{openssh-service-type}}), and update the @file{/etc/hosts} file (@pxref{operating-system Reference, @code{hosts-file}}) with the cluster name and address (or use a DNS server)."
+msgstr "Ganeti est un système de gestion de machines virtuelles.  Il est conçu pour faire tourner les machines virtuelles en continue sur une grappe de serveurs même dans le cas d'une erreur matérielle, et pour rendre les taches de maintenance et de récupération faciles.  Il consisste en plusieurs services qui sont décrits plus loin dans cette section.  En plus du service Ganeti, vous aurez besoin du service OpenSSH (@pxref{Networking Services, @code{openssh-service-type}}), et de mettre à jour le fichier @file{/etc/hosts} (@pxref{operating-system Reference, @code{hosts-file}}) avec le nom de la grappe et l'adresse (ou utiliser un serveur DNS)."
+
+#. type: Plain text
+#: doc/guix.texi:27101
+msgid "All nodes participating in a Ganeti cluster should have the same Ganeti and @file{/etc/hosts} configuration.  Here is an example configuration for a Ganeti cluster node that supports multiple storage backends, and installs the @code{debootstrap} and @code{guix} @dfn{OS providers}:"
+msgstr "Tous les nœuds participant dans une grappe Ganeti devraient avec la même configuration de Ganeti et @file{/etc/hosts}.  voici un exemple de configuration pour un nœud d'une grappe Ganeti qui prend en charge plusieurs moteurs de stockage et installe les @dfn{fournisseurs de systèmes} @code{debbotstrap} et @code{guix} :"
+
+#. type: lisp
+#: doc/guix.texi:27111
+#, no-wrap
+msgid ""
+"(use-package-modules virtualization)\n"
+"(use-service-modules base ganeti networking ssh)\n"
+"(operating-system\n"
+"  ;; @dots{}\n"
+"  (host-name \"node1\")\n"
+"  (hosts-file (plain-file \"hosts\" (format #f \"\n"
+"127.0.0.1       localhost\n"
+"::1             localhost\n"
+"\n"
+msgstr ""
+"(use-package-modules virtualization)\n"
+"(use-service-modules base ganeti networking ssh)\n"
+"(operating-system\n"
+"  ;; @dots{}\n"
+"  (host-name \"node1\")\n"
+"  (hosts-file (plain-file \"hosts\" (format #f \"\n"
+"127.0.0.1       localhost\n"
+"::1             localhost\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:27116
+#, no-wrap
+msgid ""
+"192.168.1.200   ganeti.example.com\n"
+"192.168.1.201   node1.example.com node1\n"
+"192.168.1.202   node2.example.com node2\n"
+"\")))\n"
+"\n"
+msgstr ""
+"192.168.1.200   ganeti.example.com\n"
+"192.168.1.201   node1.example.com node1\n"
+"192.168.1.202   node2.example.com node2\n"
+"\")))\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:27130
+#, no-wrap
+msgid ""
+"  ;; Install QEMU so we can use KVM-based instances, and LVM, DRBD and Ceph\n"
+"  ;; in order to use the \"plain\", \"drbd\" and \"rbd\" storage backends.\n"
+"  (packages (append (map specification->package\n"
+"                         '(\"qemu\" \"lvm2\" \"drbd-utils\" \"ceph\"\n"
+"                           ;; Add the debootstrap and guix OS providers.\n"
+"                           \"ganeti-instance-guix\" \"ganeti-instance-debootstrap\"))\n"
+"                    %base-packages))\n"
+"  (services\n"
+"   (append (list (static-networking-service \"eth0\" \"192.168.1.201\"\n"
+"                                            #:netmask \"255.255.255.0\"\n"
+"                                            #:gateway \"192.168.1.254\"\n"
+"                                            #:name-servers '(\"192.168.1.252\"\n"
+"                                                             \"192.168.1.253\"))\n"
+"\n"
+msgstr ""
+"  ;; Installe QEMU pour pouvoir utiliser les instances KVM, ainsi que LVM, DRBD et Ceph\n"
+"  ;; pour utiliser les moteurs de stockage « plain », « drbd » et « rbd ».\n"
+"  (packages (append (map specification->package\n"
+"                         '(\"qemu\" \"lvm2\" \"drbd-utils\" \"ceph\"\n"
+"                           ;; ajoute les fournisseurs de système debbotstrap et guix.\n"
+"                           \"ganeti-instance-guix\" \"ganeti-instance-debootstrap\"))\n"
+"                    %base-packages))\n"
+"  (services\n"
+"   (append (list (static-networking-service \"eth0\" \"192.168.1.201\"\n"
+"                                            #:netmask \"255.255.255.0\"\n"
+"                                            #:gateway \"192.168.1.254\"\n"
+"                                            #:name-servers '(\"192.168.1.252\"\n"
+"                                                             \"192.168.1.253\"))\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:27135
+#, no-wrap
+msgid ""
+"                 ;; Ganeti uses SSH to communicate between nodes.\n"
+"                 (service openssh-service-type\n"
+"                          (openssh-configuration\n"
+"                           (permit-root-login 'without-password)))\n"
+"\n"
+msgstr ""
+"                 ;; Ganeti utilise SSH pour communiquer entre les nœuds.\n"
+"                 (service openssh-service-type\n"
+"                          (openssh-configuration\n"
+"                           (permit-root-login 'without-password)))\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:27145
+#, no-wrap
+msgid ""
+"                 (service ganeti-service-type\n"
+"                          (ganeti-configuration\n"
+"                           ;; This list specifies allowed file system paths\n"
+"                           ;; for storing virtual machine images.\n"
+"                           (file-storage-paths '(\"/srv/ganeti/file-storage\"))\n"
+"                           ;; This variable configures a single \"variant\" for\n"
+"                           ;; both Debootstrap and Guix that works with KVM.\n"
+"                           (os %default-ganeti-os))))\n"
+"           %base-services)))\n"
+msgstr ""
+"                 (service ganeti-service-type\n"
+"                          (ganeti-configuration\n"
+"                           ;; cette liste spécifie les chemins du système de fichiers autorisés\n"
+"                           ;; pour le stockage des images de machines virtuelles.\n"
+"                           (file-storage-paths '(\"/srv/ganeti/file-storage\"))\n"
+"                           ;; Cette variable configure une « variante » pour\n"
+"                           ;; Debootstrap et Guix qui fonctionne avec KVM.\n"
+"                           (os %default-ganeti-os))))\n"
+"           %base-services)))\n"
+
+#. type: Plain text
+#: doc/guix.texi:27153
+msgid "Users are advised to read the @url{http://docs.ganeti.org/ganeti/master/html/admin.html,Ganeti administrators guide} to learn about the various cluster options and day-to-day operations.  There is also a @url{https://guix.gnu.org/blog/2020/running-a-ganeti-cluster-on-guix/,blog post} describing how to configure and initialize a small cluster."
+msgstr "Nous vous encourageons à lire le @url{http://docs.ganeti.org/ganeti/master/html/admin.html,guide d'administration de Ganeti} pour apprendre les diverse options de grappes et les opérations de base.  Il y a aussi un @url{https://guix.gnu.org/blog/2020/running-a-ganeti-cluster-on-guix/,billet de blog} décrivant comment configurer et initialiser une petite grappe."
+
+#. type: defvr
+#: doc/guix.texi:27154
+#, no-wrap
+msgid "{Scheme Variable} ganeti-service-type"
+msgstr "{Variable Scheme} ganeti-service-type"
+
+#. type: defvr
+#: doc/guix.texi:27157
+msgid "This is a service type that includes all the various services that Ganeti nodes should run."
+msgstr "C'est le type de service qui inclus tous les service dont les nœuds Ganeti ont besoin."
+
+#. type: defvr
+#: doc/guix.texi:27162
+msgid "Its value is a @code{ganeti-configuration} object that defines the package to use for CLI operations, as well as configuration for the various daemons.  Allowed file storage paths and available guest operating systems are also configured through this data type."
+msgstr "Sa valeur est un objet @code{ganeti-configurtaion} qui définie le paquet pour utiliser les opérations en ligne de commande, ainsi que pour les divers démons.  Les chemins de stockage autorisés et les systèmes d'exploitation invités disponibles sont aussi configurés à travers ce type de données."
+
+#. type: deftp
+#: doc/guix.texi:27164
+#, no-wrap
+msgid "{Data Type} ganeti-configuration"
+msgstr "{Type de données} ganeti-configuration"
+
+#. type: deftp
+#: doc/guix.texi:27166
+msgid "The @code{ganeti} service takes the following configuration options:"
+msgstr "Le service @code{ganeti} prend les options de configuration suivante :"
+
+#. type: item
+#: doc/guix.texi:27168 doc/guix.texi:27396 doc/guix.texi:27446
+#: doc/guix.texi:27476 doc/guix.texi:27503 doc/guix.texi:27535
+#: doc/guix.texi:27588 doc/guix.texi:27608 doc/guix.texi:27634
+#: doc/guix.texi:27667 doc/guix.texi:27707
+#, no-wrap
+msgid "@code{ganeti} (default: @code{ganeti})"
+msgstr "@code{ganeti} (par défaut : @code{ganeti})"
+
+#. type: table
+#: doc/guix.texi:27173
+msgid "The @code{ganeti} package to use.  It will be installed to the system profile and make @command{gnt-cluster}, @command{gnt-instance}, etc available.  Note that the value specified here does not affect the other services as each refer to a specific @code{ganeti} package (see below)."
+msgstr "Le paquet @code{ganeti} à utiliser.  Il sera installé sur le profil du système et rendra @command{gnt-cluster}, @command{gnt-instance}, etc disponibles.  Remarquez que la valeur spécifiée ici n'affecte pas les autres services auxquels se réfère le paquet @code{ganeti} (voir plus bas)."
+
+#. type: item
+#: doc/guix.texi:27174
+#, no-wrap
+msgid "@code{noded-configuration} (default: @code{(ganeti-noded-configuration)})"
+msgstr "@code{noded-configuration} (par défaut : @code{(ganeti-noded-configuration)})"
+
+#. type: itemx
+#: doc/guix.texi:27175
+#, no-wrap
+msgid "@code{confd-configuration} (default: @code{(ganeti-confd-configuration)})"
+msgstr "@code{confd-configuration} (par défaut : @code{(ganeti-confd-configuration)})"
+
+#. type: itemx
+#: doc/guix.texi:27176
+#, no-wrap
+msgid "@code{wconfd-configuration} (default: @code{(ganeti-wconfd-configuration)})"
+msgstr "@code{wconfd-configuration} (par défaut : @code{(ganeti-wconfd-configuration)})"
+
+#. type: itemx
+#: doc/guix.texi:27177
+#, no-wrap
+msgid "@code{luxid-configuration} (default: @code{(ganeti-luxid-configuration)})"
+msgstr "@code{luxid-configuration} (par défaut : @code{(ganeti-luxid-configuration)})"
+
+#. type: itemx
+#: doc/guix.texi:27178
+#, no-wrap
+msgid "@code{rapi-configuration} (default: @code{(ganeti-rapi-configuration)})"
+msgstr "@code{rapi-configuration} (par défaut : @code{(ganeti-rapi-configuration)})"
+
+#. type: itemx
+#: doc/guix.texi:27179
+#, no-wrap
+msgid "@code{kvmd-configuration} (default: @code{(ganeti-kvmd-configuration)})"
+msgstr "@code{kvmd-configuration} (par défaut : @code{(ganeti-kvmd-configuration)})"
+
+#. type: itemx
+#: doc/guix.texi:27180
+#, no-wrap
+msgid "@code{mond-configuration} (default: @code{(ganeti-mond-configuration)})"
+msgstr "@code{mond-configuration} (par défaut : @code{(ganeti-mond-configuration)})"
+
+#. type: itemx
+#: doc/guix.texi:27181
+#, no-wrap
+msgid "@code{metad-configuration} (default: @code{(ganeti-metad-configuration)})"
+msgstr "@code{metad-configuration} (par défaut : @code{(ganeti-metad-configuration)})"
+
+#. type: itemx
+#: doc/guix.texi:27182
+#, no-wrap
+msgid "@code{watcher-configuration} (default: @code{(ganeti-watcher-configuration)})"
+msgstr "@code{watcher-configuration} (par défaut : @code{(ganeti-watcher-configuration)})"
+
+#. type: itemx
+#: doc/guix.texi:27183
+#, no-wrap
+msgid "@code{cleaner-configuration} (default: @code{(ganeti-cleaner-configuration)})"
+msgstr "@code{cleaner-configuration} (par défaut : @code{(ganeti-cleaner-configuration)})"
+
+#. type: table
+#: doc/guix.texi:27188
+msgid "These options control the various daemons and cron jobs that are distributed with Ganeti.  The possible values for these are described in detail below.  To override a setting, you must use the configuration type for that service:"
+msgstr "Ces options contrôlent les divers démons et taches cron distribués avec Ganeti.  Les valeurs possibles sont détaillées plus bas.  Pour changer un paramètre, vous devez utiliser le type de configuration pour ce service :"
+
+#. type: lisp
+#: doc/guix.texi:27198
+#, no-wrap
+msgid ""
+"(service ganeti-service-type\n"
+"         (ganeti-configuration\n"
+"          (rapi-configuration\n"
+"           (ganeti-rapi-configuration\n"
+"            (interface \"eth1\"))))\n"
+"          (watcher-configuration\n"
+"           (ganeti-watcher-configuration\n"
+"            (rapi-ip \"10.0.0.1\"))))\n"
+msgstr ""
+"(service ganeti-service-type\n"
+"         (ganeti-configuration\n"
+"          (rapi-configuration\n"
+"           (ganeti-rapi-configuration\n"
+"            (interface \"eth1\"))))\n"
+"          (watcher-configuration\n"
+"           (ganeti-watcher-configuration\n"
+"            (rapi-ip \"10.0.0.1\"))))\n"
+
+#. type: item
+#: doc/guix.texi:27200
+#, no-wrap
+msgid "@code{file-storage-paths} (default: @code{'()})"
+msgstr "@code{file-storage-paths} (par défaut : @code{'()})"
+
+#. type: table
+#: doc/guix.texi:27202
+msgid "List of allowed directories for file storage backend."
+msgstr "Liste des répertoire autorisés pour le moteur de stockage de fichiers."
+
+#. type: item
+#: doc/guix.texi:27203
+#, no-wrap
+msgid "@code{os} (default: @code{%default-ganeti-os})"
+msgstr "@code{os} (par défaut : @code{%default-ganeti-os})"
+
+#. type: table
+#: doc/guix.texi:27205
+msgid "List of @code{<ganeti-os>} records."
+msgstr "Liste des enregistrements @code{<ganeti-os>}."
+
+#. type: deftp
+#: doc/guix.texi:27209
+msgid "In essence @code{ganeti-service-type} is shorthand for declaring each service individually:"
+msgstr "En résumé @code{ganeti-service-type} est un raccourci pour la déclaration de chaque service individuel :"
+
+#. type: lisp
+#: doc/guix.texi:27220
+#, no-wrap
+msgid ""
+"(service ganeti-noded-service-type)\n"
+"(service ganeti-confd-service-type)\n"
+"(service ganeti-wconfd-service-type)\n"
+"(service ganeti-luxid-service-type)\n"
+"(service ganeti-kvmd-service-type)\n"
+"(service ganeti-mond-service-type)\n"
+"(service ganeti-metad-service-type)\n"
+"(service ganeti-watcher-service-type)\n"
+"(service ganeti-cleaner-service-type)\n"
+msgstr ""
+"(service ganeti-noded-service-type)\n"
+"(service ganeti-confd-service-type)\n"
+"(service ganeti-wconfd-service-type)\n"
+"(service ganeti-luxid-service-type)\n"
+"(service ganeti-kvmd-service-type)\n"
+"(service ganeti-mond-service-type)\n"
+"(service ganeti-metad-service-type)\n"
+"(service ganeti-watcher-service-type)\n"
+"(service ganeti-cleaner-service-type)\n"
+
+#. type: deftp
+#: doc/guix.texi:27224
+msgid "Plus a service extension for @code{etc-service-type} that configures the file storage backend and OS variants."
+msgstr "Plus une extension de service pour @code{etc-service-type} qui configure le moteur de stockage de fichiers et les variantes de systèmes."
+
+#. type: deftp
+#: doc/guix.texi:27227
+#, no-wrap
+msgid "{Data Type} ganeti-os"
+msgstr "{Type de données} ganeti-os"
+
+#. type: deftp
+#: doc/guix.texi:27230
+msgid "This data type is suitable for passing to the @code{os} parameter of @code{ganeti-configuration}.  It takes the following parameters:"
+msgstr "Ce type de données peut être passé au paramètre @code{os} de @code{ganeti-configuration}.  Il prend les paramètres suivants :"
+
+#. type: table
+#: doc/guix.texi:27236
+msgid "The name for this OS provider.  It is only used to specify where the configuration ends up.  Setting it to ``debootstrap'' will create @file{/etc/ganeti/instance-debootstrap}."
+msgstr "Le nom du fournisseur de système.  Il est seulement utilisé pour spécifier où la configuration se trouve.  Indiquer « debootstrap » créera @file{/etc/ganeti/intance-debootstrap}."
+
+#. type: code{#1}
+#: doc/guix.texi:27237
+#, no-wrap
+msgid "extension"
+msgstr "extension"
+
+#. type: table
+#: doc/guix.texi:27240
+msgid "The file extension for variants of this OS type.  For example @file{.conf} or @file{.scm}."
+msgstr "Le fichier d'extension pour les variantes de ce type de système.  Par exemple @file{.conf} ou @file{.scm}."
+
+#. type: item
+#: doc/guix.texi:27241
+#, no-wrap
+msgid "@code{variants} (default: @code{'()})"
+msgstr "@code{variants} (par défaut : @code{'()})"
+
+#. type: table
+#: doc/guix.texi:27243
+msgid "List of @code{ganeti-os-variant} objects for this OS."
+msgstr "Une liste d'objets @code{ganeti-os-variant} pour ce système."
+
+#. type: deftp
+#: doc/guix.texi:27247
+#, no-wrap
+msgid "{Data Type} ganeti-os-variant"
+msgstr "{Type de données} ganeti-os-variant"
+
+#. type: deftp
+#: doc/guix.texi:27250
+msgid "This is the data type for a Ganeti OS variant.  It takes the following parameters:"
+msgstr "Type de données représentant une variante de système Ganeti.  Il prend les paramètres suivants :"
+
+#. type: table
+#: doc/guix.texi:27254
+msgid "The name of this variant."
+msgstr "Le nom de cette variante."
+
+#. type: code{#1}
+#: doc/guix.texi:27255
+#, no-wrap
+msgid "configuration"
+msgstr "configuration"
+
+#. type: table
+#: doc/guix.texi:27257
+msgid "A configuration file for this variant."
+msgstr "Un fichier de configuration pour cette variante."
+
+#. type: defvr
+#: doc/guix.texi:27260
+#, no-wrap
+msgid "{Scheme Variable} %default-debootstrap-hooks"
+msgstr "{Variable Scheme} %default-debootstrap-hooks"
+
+#. type: defvr
+#: doc/guix.texi:27262
+msgid "This variable contains hooks to configure networking and the GRUB bootloader."
+msgstr "Cette variable contient les crochet pour configurer le réseau et le chargeur d'amorçage GRUB."
+
+#. type: defvr
+#: doc/guix.texi:27264
+#, no-wrap
+msgid "{Scheme Variable} %default-debootstrap-extra-pkgs"
+msgstr "{variable Scheme} %default-debootstrap-extra-pkgs"
+
+#. type: defvr
+#: doc/guix.texi:27266
+msgid "This variable contains a list of packages suitable for a fully-virtualized guest."
+msgstr "Cette variable contient une liste de paquets requis pour un invité complètement virtualisé."
+
+#. type: deftp
+#: doc/guix.texi:27268
+#, no-wrap
+msgid "{Data Type} debootstrap-configuration"
+msgstr "{Type de données} debootstrap-configuration"
+
+#. type: deftp
+#: doc/guix.texi:27271
+msgid "This data type creates configuration files suitable for the debootstrap OS provider."
+msgstr "Ce type de données crée des fichiers de configurations pour le fournisseur de système debootstrap."
+
+#. type: item
+#: doc/guix.texi:27273
+#, no-wrap
+msgid "@code{hooks} (default: @code{%default-debootstrap-hooks})"
+msgstr "@code{hooks} (par défaut : @code{%default-debootstrap-hooks})"
+
+#. type: table
+#: doc/guix.texi:27277
+msgid "When not @code{#f}, this must be a G-expression that specifies a directory with scripts that will run when the OS is installed.  It can also be a list of @code{(name . file-like)} pairs.  For example:"
+msgstr "Lorsque la valeur n'est pas @code{#f}, cela doit être une G-expression qui spécifie un répertoire avec les scripts qui seront lancés à l'installation du système.  Elle peut aussi être une liste de pairs de @code{(nom, simili-fichier)}.  Par exemple :"
+
+#. type: lisp
+#: doc/guix.texi:27280
+#, no-wrap
+msgid "`((99-hello-world . ,(plain-file \"#!/bin/sh\\necho Hello, World\")))\n"
+msgstr "`((99-hello-world . ,(plain-file \"#!/bin/sh\\necho Hello, World\")))\n"
+
+#. type: table
+#: doc/guix.texi:27285
+msgid "That will create a directory with one executable named @code{99-hello-world} and run it every time this variant is installed.  If set to @code{#f}, hooks in @file{/etc/ganeti/instance-debootstrap/hooks} will be used, if any."
+msgstr "Cela va créer une répertoire avec un exécutable nommé @code{99-hello-world} et le lancera à chaque fois que cette variante est installée.  Si la valeur est @code{#f}, les crochets dans @file{/etc/ganeti/instance-debootstrap/hooks} seront utilisés, s'ils existent."
+
+#. type: item
+#: doc/guix.texi:27285
+#, no-wrap
+msgid "@code{proxy} (default: @code{#f})"
+msgstr "@code{proxy} (par défaut : @code{#f})"
+
+#. type: table
+#: doc/guix.texi:27287
+msgid "Optional HTTP proxy to use."
+msgstr "Serveur mandataire HTTP facultatif à utiliser."
+
+#. type: item
+#: doc/guix.texi:27287
+#, no-wrap
+msgid "@code{mirror} (default: @code{#f})"
+msgstr "@code{mirror} (par défaut : @code{#f})"
+
+#. type: table
+#: doc/guix.texi:27290
+msgid "The Debian mirror.  Typically something like @code{http://ftp.no.debian.org/debian}.  The default varies depending on the distribution."
+msgstr "Le miroir Debian.  Habituellement quelque chose comme @code{http://ftp.no.debian.org/debian}.  La valeur par défaut dépend de la distribution."
+
+#. type: item
+#: doc/guix.texi:27290
+#, no-wrap
+msgid "@code{arch} (default: @code{#f})"
+msgstr "@code{arch} (par défaut : @code{#f})"
+
+#. type: table
+#: doc/guix.texi:27293
+msgid "The dpkg architecture.  Set to @code{armhf} to debootstrap an ARMv7 instance on an AArch64 host.  Default is to use the current system architecture."
+msgstr "L'architecture pour dpkg.  Indiquez @code{armhf} pour debootstrap pour une instnace ARMv7 sur un hôte AArch64.  La valeur par défaut est l'architecture système actuelle."
+
+#. type: item
+#: doc/guix.texi:27293
+#, no-wrap
+msgid "@code{suite} (default: @code{\"stable\"})"
+msgstr "@code{suite} (par défaut : @code{\"stable\"})"
+
+#. type: table
+#: doc/guix.texi:27296
+msgid "When set, this must be a Debian distribution ``suite'' such as @code{buster} or @code{focal}.  If set to @code{#f}, the default for the OS provider is used."
+msgstr "Lorsqu'il est indiqué, ce paramètre doit être une distribution Debian comme @code{buster} ou @code{focal}.  Si la valeur est @code{#f}, la valeur par défaut du fournisseur de système est utilisée."
+
+#. type: item
+#: doc/guix.texi:27296
+#, no-wrap
+msgid "@code{extra-pkgs} (default: @code{%default-debootstrap-extra-pkgs})"
+msgstr "@code{extra-pkgs} (par défaut : @code{%default-debootstrap-extra-pkgs})"
+
+#. type: table
+#: doc/guix.texi:27299
+msgid "List of extra packages that will get installed by dpkg in addition to the minimal system."
+msgstr "Liste des paquets supplémentaires qui seront installés par dpkg en plus du système minimal."
+
+#. type: item
+#: doc/guix.texi:27299
+#, no-wrap
+msgid "@code{components} (default: @code{#f})"
+msgstr "@code{components} (par défaut : @code{#f})"
+
+#. type: table
+#: doc/guix.texi:27302
+msgid "When set, must be a list of Debian repository ``components''.  For example @code{'(\"main\" \"contrib\")}."
+msgstr "Lorsque la valeur est indiquée, doit être une liste de « composants » de répertoires Debian.  Par exemple @code{'(\"main\" \"contrib\")}."
+
+#. type: item
+#: doc/guix.texi:27302
+#, no-wrap
+msgid "@code{generate-cache?} (default: @code{#t})"
+msgstr "@code{generate-cache?} (par défaut : @code{#t})"
+
+#. type: table
+#: doc/guix.texi:27304
+msgid "Whether to automatically cache the generated debootstrap archive."
+msgstr "Indique s'il faut automatiquement mettre en cache l'archive debootstrap générée."
+
+#. type: item
+#: doc/guix.texi:27304
+#, no-wrap
+msgid "@code{clean-cache} (default: @code{14})"
+msgstr "@code{clean-cache} (par défaut : @code{14})"
+
+#. type: table
+#: doc/guix.texi:27307
+msgid "Discard the cache after this amount of days.  Use @code{#f} to never clear the cache."
+msgstr "Supprime le cache après ce nombre de jours.  Utilisez @code{#f} pour ne jamais vider le cache."
+
+#. type: item
+#: doc/guix.texi:27307
+#, no-wrap
+msgid "@code{partition-style} (default: @code{'msdos})"
+msgstr "@code{partition-style} (par défaut : @code{'msdos})"
+
+#. type: table
+#: doc/guix.texi:27310
+msgid "The type of partition to create.  When set, it must be one of @code{'msdos}, @code{'none} or a string."
+msgstr "Le type de partition à créer.  Lorsqu'il est indiqué, ce paramètre doit être @code{'msdos}, @code{'none} ou une chaine de caractères."
+
+#. type: item
+#: doc/guix.texi:27310
+#, no-wrap
+msgid "@code{partition-alignment} (default: @code{2048})"
+msgstr "@code{partition-alignment} (par défaut : @code{2048})"
+
+#. type: table
+#: doc/guix.texi:27312
+msgid "Alignment of the partition in sectors."
+msgstr "Alignement des partitions en nombre de secteur."
+
+#. type: deffn
+#: doc/guix.texi:27315
+#, no-wrap
+msgid "{Scheme Procedure} debootstrap-variant @var{name} @var{configuration}"
+msgstr "{Procédure Scheme} debootstrap-variant @var{nom} @var{configuration}"
+
+#. type: deffn
+#: doc/guix.texi:27318
+msgid "This is a helper procedure that creates a @code{ganeti-os-variant} record.  It takes two parameters: a name and a @code{debootstrap-configuration} object."
+msgstr "C'est une procédure auxiliaire qui crée un enregistrement @code{ganeti-os-variant}.  Il prend deux paramètres . un nom et un objet @code{debootstrap-configuration}."
+
+#. type: deffn
+#: doc/guix.texi:27320
+#, no-wrap
+msgid "{Scheme Procedure} debootstrap-os @var{variants}@dots{}"
+msgstr "{Procédure Scheme} debootstrap-os @var{variants}@dots{}"
+
+#. type: deffn
+#: doc/guix.texi:27323
+msgid "This is a helper procedure that creates a @code{ganeti-os} record.  It takes a list of variants created with @code{debootstrap-variant}."
+msgstr "C'est une procédure auxiliaire qui crée un enregistrement @code{ganeti-os}.  Elle prend une liste de variantes créé avec @code{debootstrap-variant}."
+
+#. type: deffn
+#: doc/guix.texi:27325
+#, no-wrap
+msgid "{Scheme Procedure} guix-variant @var{name} @var{configuration}"
+msgstr "{Procédure Scheme} guix-variant @var{name} @var{configuration}"
+
+#. type: deffn
+#: doc/guix.texi:27330
+msgid "This is a helper procedure that creates a @code{ganeti-os-variant} record for use with the Guix OS provider.  It takes a name and a G-expression that returns a ``file-like'' (@pxref{G-Expressions, file-like objects}) object containing a Guix System configuration."
+msgstr "C'est une procédure auxiliaire qui crée un enregistrement @code{ganeti-os-variant} à utiliser avec le fournisseur de système Guix.  Il prend un nom et une G-expression qui renvoie un objet simili-fichier (@pxref{G-Expressions, file-like objects}) contenant une configuration Guix System."
+
+#. type: deffn
+#: doc/guix.texi:27332
+#, no-wrap
+msgid "{Scheme Procedure} guix-os @var{variants}@dots{}"
+msgstr "{Procédure Scheme} guix-os @var{variants}@dots{}"
+
+#. type: deffn
+#: doc/guix.texi:27335
+msgid "This is a helper procedure that creates a @code{ganeti-os} record.  It takes a list of variants produced by @code{guix-variant}."
+msgstr "C'est une procédure auxiliaire qui crée un enregistrement @code{ganeti-os}.  Elle prend une liste de variantes produites par @code{guix-variant}."
+
+#. type: defvr
+#: doc/guix.texi:27337
+#, no-wrap
+msgid "{Scheme Variable} %default-debootstrap-variants"
+msgstr "{Variable Scheme} %default-debootstrap-variants"
+
+#. type: defvr
+#: doc/guix.texi:27341
+msgid "This is a convenience variable to make the debootstrap provider work ``out of the box'' without users having to declare variants manually.  It contains a single debootstrap variant with the default configuration:"
+msgstr "C'est une variable pratique pour que le fournisseur debootstrap fonctionne directement sans avoir à déclarer des variantes manuellement.  Elle contient une seule variante debootrstap avec la configuration par défaut :"
+
+#. type: lisp
+#: doc/guix.texi:27346
+#, no-wrap
+msgid ""
+"(list (debootstrap-variant\n"
+"       \"default\"\n"
+"       (debootstrap-configuration)))\n"
+msgstr ""
+"(list (debootstrap-variant\n"
+"       \"default\"\n"
+"       (debootstrap-configuration)))\n"
+
+#. type: defvr
+#: doc/guix.texi:27349
+#, no-wrap
+msgid "{Scheme Variable} %default-guix-variants"
+msgstr "{Variable Scheme} %default-guix-variants"
+
+#. type: defvr
+#: doc/guix.texi:27353
+msgid "This is a convenience variable to make the Guix OS provider work without additional configuration.  It creates a virtual machine that has an SSH server, a serial console, and authorizes the Ganeti hosts SSH keys."
+msgstr "C'est une variable pratique pour que le fournisseur Guix fonctionne directement sans configuration supplémentaire.  Elle crée une machine virtuelle qui a un serveur SSH, une console série et autorise les clés SSH des hôtes Ganeti."
+
+#. type: lisp
+#: doc/guix.texi:27359
+#, no-wrap
+msgid ""
+"(list (guix-variant\n"
+"       \"default\"\n"
+"       (file-append ganeti-instance-guix\n"
+"                    \"/share/doc/ganeti-instance-guix/examples/dynamic.scm\")))\n"
+msgstr ""
+"(list (guix-variant\n"
+"       \"default\"\n"
+"       (file-append ganeti-instance-guix\n"
+"                    \"/share/doc/ganeti-instance-guix/examples/dynamic.scm\")))\n"
+
+#. type: Plain text
+#: doc/guix.texi:27365
+msgid "Users can implement support for OS providers unbeknownst to Guix by extending the @code{ganeti-os} and @code{ganeti-os-variant} records appropriately.  For example:"
+msgstr "Les utilisateur·ice·s peuvent implémenter la prise en charge des fournisseurs de systèmes inconnus de Guix en étendant les enregistrement @code{ganeti-os} et @code{ganeti-os-variant} comme il faut.  Par exemple :"
+
+#. type: lisp
+#: doc/guix.texi:27374
+#, no-wrap
+msgid ""
+"(ganeti-os\n"
+" (name \"custom\")\n"
+" (extension \".conf\")\n"
+" (variants\n"
+"  (list (ganeti-os-variant\n"
+"         (name \"foo\")\n"
+"         (configuration (plain-file \"bar\" \"this is fine\"))))))\n"
+msgstr ""
+"(ganeti-os\n"
+" (name \"custom\")\n"
+" (extension \".conf\")\n"
+" (variants\n"
+"  (list (ganeti-os-variant\n"
+"         (name \"foo\")\n"
+"         (configuration (plain-file \"bar\" \"this is fine\"))))))\n"
+
+#. type: Plain text
+#: doc/guix.texi:27379
+msgid "That creates @file{/etc/ganeti/instance-custom/variants/foo.conf} which points to a file in the store with contents @code{this is fine}.  It also creates @file{/etc/ganeti/instance-custom/variants/variants.list} with contents @code{foo}."
+msgstr "Cela crée @file{/etc/ganeti/instance-custom/variants/foo.conf} qui pointe vers un fichier dans le dépôt qui contient @code{this is fine}.  Cela crée aussi @file{/etc/ganeti/instance-custom/variants/variants.list} qui contient @code{foo}."
+
+#. type: Plain text
+#: doc/guix.texi:27382
+msgid "Obviously this may not work for all OS providers out there.  If you find the interface limiting, please reach out to @email{guix-devel@@gnu.org}."
+msgstr "Évidemment cela ne fonctionnera pas avec tous les fournisseurs d'OS disponibles.  Si vous trouvez que cette interface est trop limitée, contactez-nous sur @email{guix-devel@@gnu.org}."
+
+#. type: Plain text
+#: doc/guix.texi:27385
+msgid "The rest of this section documents the various services that are included by @code{ganeti-service-type}."
+msgstr "Le reste de cette section documente les divers services inclus par @code{ganeti-service-type}."
+
+#. type: defvr
+#: doc/guix.texi:27386
+#, no-wrap
+msgid "{Scheme Variable} ganeti-noded-service-type"
+msgstr "{Variable Scheme} ganeti-noded-service-type"
+
+#. type: defvr
+#: doc/guix.texi:27390
+msgid "@command{ganeti-noded} is the daemon responsible for node-specific functions within the Ganeti system.  The value of this service must be a @code{ganeti-noded-configuration} object."
+msgstr "@command{ganeti-noded} est le démon responsable des fonctions spécifiques au nœud dans le système Ganeti.  La valeur de ce service doit être un objet @code{ganeti-noded-configuration}."
+
+#. type: deftp
+#: doc/guix.texi:27392
+#, no-wrap
+msgid "{Data Type} ganeti-noded-configuration"
+msgstr "{Type de données} ganeti-noded-configuration"
+
+#. type: deftp
+#: doc/guix.texi:27394
+msgid "This is the configuration for the @code{ganeti-noded} service."
+msgstr "La configuration du service @code{ganeti-noded}."
+
+#. type: table
+#: doc/guix.texi:27398 doc/guix.texi:27448 doc/guix.texi:27478
+#: doc/guix.texi:27505 doc/guix.texi:27537 doc/guix.texi:27590
+#: doc/guix.texi:27610 doc/guix.texi:27636 doc/guix.texi:27669
+msgid "The @code{ganeti} package to use for this service."
+msgstr "Le paquet @code{ganeti} à utiliser pour ce service."
+
+#. type: item
+#: doc/guix.texi:27399
+#, no-wrap
+msgid "@code{port} (default: @code{1811})"
+msgstr "@code{port} (par défaut : @code{1811})"
+
+#. type: table
+#: doc/guix.texi:27401
+msgid "The TCP port on which the node daemon listens for network requests."
+msgstr "Port TCP sur lequel le démon de nœud écoute les requêtes réseaux."
+
+#. type: item
+#: doc/guix.texi:27402 doc/guix.texi:27452 doc/guix.texi:27544
+#: doc/guix.texi:27614
+#, no-wrap
+msgid "@code{address} (default: @code{\"0.0.0.0\"})"
+msgstr "@code{address} (par défaut : @code{\"0.0.0.0\"})"
+
+#. type: table
+#: doc/guix.texi:27405
+msgid "The network address that the daemon will bind to.  The default address means bind to all available addresses."
+msgstr "Adresse réseau sur laquelle le démon se lie.  L'adresse par défaut signifie de se lier à toutes les adresse disponibles."
+
+#. type: table
+#: doc/guix.texi:27409
+msgid "When this is set, it must be a specific network interface (e.g.@: @code{eth0})  that the daemon will bind to."
+msgstr "Si une valeur est indiquée, elle doit être une interface réseau spécifique (p.@: ex.@: @code{eth0}) à laquelle le démon se liera."
+
+#. type: item
+#: doc/guix.texi:27410 doc/guix.texi:27552
+#, no-wrap
+msgid "@code{max-clients} (default: @code{20})"
+msgstr "@code{max-clients} (par défaut : @code{20})"
+
+#. type: table
+#: doc/guix.texi:27414
+msgid "This sets a limit on the maximum number of simultaneous client connections that the daemon will handle.  Connections above this count are accepted, but no responses will be sent until enough connections have closed."
+msgstr "Cela indique une limite du nombre de connexions clientes simultanées que le démon pourra prendre en charge.  Les connexions au delà de ce nombre sont acceptées, mais aucune réponse ne sera envoyée avant que suffisamment de connexions ne soient fermées."
+
+#. type: item
+#: doc/guix.texi:27415 doc/guix.texi:27557
+#, no-wrap
+msgid "@code{ssl?} (default: @code{#t})"
+msgstr "@code{ssl?} (par défaut : @code{#t})"
+
+#. type: table
+#: doc/guix.texi:27419
+msgid "Whether to use SSL/TLS to encrypt network communications.  The certificate is automatically provisioned by the cluster and can be rotated with @command{gnt-cluster renew-crypto}."
+msgstr "Indique s'il faut utiliser SSL/TLS pour chiffrer les communications réseaux.  Le certification est automatiquement intégré par la grappe et peut être modifié avec @command{gnt-cluster renew-crypto}."
+
+#. type: item
+#: doc/guix.texi:27420 doc/guix.texi:27560
+#, no-wrap
+msgid "@code{ssl-key} (default: @file{\"/var/lib/ganeti/server.pem\"})"
+msgstr "@code{ssl-key} (par défaut : @file{\"/var/lib/ganeti/server.pem\"})"
+
+#. type: table
+#: doc/guix.texi:27422 doc/guix.texi:27562
+msgid "This can be used to provide a specific encryption key for TLS communications."
+msgstr "Cela peut être utilisé pour fournir une clé de chiffrement spécifique pour les communications TLS."
+
+#. type: item
+#: doc/guix.texi:27423 doc/guix.texi:27563
+#, no-wrap
+msgid "@code{ssl-cert} (default: @file{\"/var/lib/ganeti/server.pem\"})"
+msgstr "@code{ssl-cert} (par défaut : @file{\"/var/lib/ganeti/server.pem\"})"
+
+#. type: table
+#: doc/guix.texi:27425 doc/guix.texi:27565
+msgid "This can be used to provide a specific certificate for TLS communications."
+msgstr "Cela peut être utilisé pour fournir un certification spécifique pour les communications TLS."
+
+#. type: table
+#: doc/guix.texi:27429 doc/guix.texi:27569
+msgid "When true, the daemon performs additional logging for debugging purposes.  Note that this will leak encryption details to the log files, use with caution."
+msgstr "Lorsque la valeur est vraie, le démon effectue plus de journalisation pour le débogage.  Remarque que cela laissera fuiter des détails de chiffrement dans les journaux, utilisez cette option avec prudence."
+
+#. type: defvr
+#: doc/guix.texi:27433
+#, no-wrap
+msgid "{Scheme Variable} ganeti-confd-service-type"
+msgstr "{Variable Scheme} ganeti-confd-service-type"
+
+#. type: defvr
+#: doc/guix.texi:27439
+msgid "@command{ganeti-confd} answers queries related to the configuration of a Ganeti cluster.  The purpose of this daemon is to have a highly available and fast way to query cluster configuration values.  It is automatically active on all @dfn{master candidates}.  The value of this service must be a @code{ganeti-confd-configuration} object."
+msgstr "@command{ganeti-confd} répond aux requêtes liées à la configuration de la grappe Ganeti.  Le but de ce démon est d'avoir une manière rapide et très disponible de demander les valeurs de configuration de la grappe.  Il est automatiquement activé sur tous les @dfn{candidats maitres}.  La valeur de ce service doit être un objet @code{ganeti-confd-configuration}."
+
+#. type: deftp
+#: doc/guix.texi:27442
+#, no-wrap
+msgid "{Data Type} ganeti-confd-configuration"
+msgstr "{Type de données} ganeti-confd-configuration"
+
+#. type: deftp
+#: doc/guix.texi:27444
+msgid "This is the configuration for the @code{ganeti-confd} service."
+msgstr "La configuration du service @code{ganeti-confd}."
+
+#. type: item
+#: doc/guix.texi:27449
+#, no-wrap
+msgid "@code{port} (default: @code{1814})"
+msgstr "@code{port} (par défaut : @code{1814})"
+
+#. type: table
+#: doc/guix.texi:27451
+msgid "The UDP port on which to listen for network requests."
+msgstr "Le port UDP sur lequel écouter les requêtes réseaux."
+
+#. type: table
+#: doc/guix.texi:27454
+msgid "Network address that the daemon will bind to."
+msgstr "L'adresse réseau sur laquelle le démon se liera."
+
+#. type: table
+#: doc/guix.texi:27457 doc/guix.texi:27486 doc/guix.texi:27513
+#: doc/guix.texi:27593 doc/guix.texi:27620 doc/guix.texi:27646
+msgid "When true, the daemon performs additional logging for debugging purposes."
+msgstr "Lorsque la valeur est vraie, le démon effectue des actions de journalisation supplémentaires pour le débogage."
+
+#. type: defvr
+#: doc/guix.texi:27461
+#, no-wrap
+msgid "{Scheme Variable} ganeti-wconfd-service-type"
+msgstr "{Variable Scheme} ganeti-wconfd-service-type"
+
+#. type: defvr
+#: doc/guix.texi:27467
+msgid "@command{ganeti-wconfd} is the daemon that has authoritative knowledge about the cluster configuration and is the only entity that can accept changes to it.  All jobs that need to modify the configuration will do so by sending appropriate requests to this daemon.  It only runs on the @dfn{master node} and will automatically disable itself on other nodes."
+msgstr "@command{ganeti-wconfd} est le démon qui fait autorité sur la configuration de la grappe et est la seule entité qui peut y accepter des changements.  Tous les travaux qui ont besoin de modifier la configuration le feront en envoyant les requêtes appropriées à ce démon.  Il ne tourne que sur le @dfn{nœud maitre} et sera automatiquement désactivé sur les autres nœuds."
+
+#. type: defvr
+#: doc/guix.texi:27470
+msgid "The value of this service must be a @code{ganeti-wconfd-configuration} object."
+msgstr "La valeur de ce service est un objet @code{ganeti-wconfd-configuration}."
+
+#. type: deftp
+#: doc/guix.texi:27472
+#, no-wrap
+msgid "{Data Type} ganeti-wconfd-configuration"
+msgstr "{Type de données} ganeti-wconfd-configuration"
+
+#. type: deftp
+#: doc/guix.texi:27474 doc/guix.texi:27501
+msgid "This is the configuration for the @code{ganeti-wconfd} service."
+msgstr "La configuration du service @code{ganeti-wconfd}."
+
+#. type: item
+#: doc/guix.texi:27479 doc/guix.texi:27506
+#, no-wrap
+msgid "@code{no-voting?} (default: @code{#f})"
+msgstr "@code{no-voting?} (par défaut : @code{#f})"
+
+#. type: table
+#: doc/guix.texi:27483
+msgid "The daemon will refuse to start if the majority of cluster nodes does not agree that it is running on the master node.  Set to @code{#t} to start even if a quorum can not be reached (dangerous, use with caution)."
+msgstr "Le démon refusera de démarrer si la majorité des nœuds de la grappe ne sont pas d'accord pour dire qu'il est le nœud maitre.  Indiquez @code{#t} pour le démarre même si le quorum n'a pas été atteint (dangereux, utilisez avec prudence)."
+
+#. type: defvr
+#: doc/guix.texi:27490
+#, no-wrap
+msgid "{Scheme Variable} ganeti-luxid-service-type"
+msgstr "{Variable Scheme} ganeti-luxid-service-type"
+
+#. type: defvr
+#: doc/guix.texi:27495
+msgid "@command{ganeti-luxid} is a daemon used to answer queries related to the configuration and the current live state of a Ganeti cluster.  Additionally, it is the authoritative daemon for the Ganeti job queue.  Jobs can be submitted via this daemon and it schedules and starts them."
+msgstr "@command{ganeti-luxid} est un démon utilisé pour répondre aux requêtes liées à la configuration et à l'état actuel d'une grappe Ganeti.  En plus, c'est le démon qui fait autorité pour la queue de travaux de Ganeti.  les travaux peuvent être soumis via ce démon et il les programme et les démarre."
+
+#. type: defvr
+#: doc/guix.texi:27497
+msgid "It takes a @code{ganeti-luxid-configuration} object."
+msgstr "Il prend un objet @code{ganeti-luxid-configuration}."
+
+#. type: deftp
+#: doc/guix.texi:27499
+#, no-wrap
+msgid "{Data Type} ganeti-luxid-configuration"
+msgstr "{Type de données} ganeti-luxid-configuration"
+
+#. type: table
+#: doc/guix.texi:27510
+msgid "The daemon will refuse to start if it cannot verify that the majority of cluster nodes believes that it is running on the master node.  Set to @code{#t} to ignore such checks and start anyway (this can be dangerous)."
+msgstr "Le démon refusera de démarrer s'il ne peut pas vérifier que la majorité des nœuds de la grappe pensent qu'il est le nœud maitre.  Indiquez @code{#t} pour le démarre malgré tout (cela peut être dangereux)."
+
+#. type: defvr
+#: doc/guix.texi:27517
+#, no-wrap
+msgid "{Scheme Variable} ganeti-rapi-service-type"
+msgstr "{Variable Scheme} ganeti-rapi-service-type"
+
+#. type: defvr
+#: doc/guix.texi:27521
+msgid "@command{ganeti-rapi} provides a remote API for Ganeti clusters.  It runs on the master node and can be used to perform cluster actions programmatically via a JSON-based RPC protocol."
+msgstr "@command{ganeti-rapi} fournit une API à distance pour les grappes Ganeti.  Il est lancé sur le maitre et peut être utilisé pour effectuer des actions programmées sur la grappe via un protocole de RPC basé sur JSON."
+
+#. type: defvr
+#: doc/guix.texi:27527
+msgid "Most query operations are allowed without authentication (unless @var{require-authentication?} is set), whereas write operations require explicit authorization via the @file{/var/lib/ganeti/rapi/users} file.  See the @url{http://docs.ganeti.org/ganeti/master/html/rapi.html, Ganeti Remote API documentation} for more information."
+msgstr "La plupart des opérations de requêtes sont permises sans authentification (à moins que @var{require-authentification?} ne soit indiqué), alors que les opérations en écriture requièrent une autorisation explicite via le fichier @var{/var/lib/ganeti/rapi/users}.  voir la @url{http://docs.ganeti.org/ganeti/master/html/rapi.html, documentation de l'API distante de Ganeti} pour plus d'informations."
+
+#. type: defvr
+#: doc/guix.texi:27529
+msgid "The value of this service must be a @code{ganeti-rapi-configuration} object."
+msgstr "La valeur de ce service doit être un objet @code{geneti-rapi-configuration}."
+
+#. type: deftp
+#: doc/guix.texi:27531
+#, no-wrap
+msgid "{Data Type} ganeti-rapi-configuration"
+msgstr "{Type de données} ganeti-rapi-configuration"
+
+#. type: deftp
+#: doc/guix.texi:27533
+msgid "This is the configuration for the @code{ganeti-rapi} service."
+msgstr "La configuration du service @code{ganeti-rapi}."
+
+#. type: item
+#: doc/guix.texi:27538
+#, no-wrap
+msgid "@code{require-authentication?} (default: @code{#f})"
+msgstr "@code{require-authentication?} (par défaut : @code{#f})"
+
+#. type: table
+#: doc/guix.texi:27540
+msgid "Whether to require authentication even for read-only operations."
+msgstr "Indique s'il faut demander une authentification même pour les opérations en lecture-seule."
+
+#. type: item
+#: doc/guix.texi:27541
+#, no-wrap
+msgid "@code{port} (default: @code{5080})"
+msgstr "@code{port} (^: @code{5080})"
+
+#. type: table
+#: doc/guix.texi:27543
+msgid "The TCP port on which to listen to API requests."
+msgstr "Le port TCP sur lequel écouter les requêtes de l'API."
+
+#. type: table
+#: doc/guix.texi:27547
+msgid "The network address that the service will bind to.  By default it listens on all configured addresses."
+msgstr "L'adresse réseau sur laquelle le service de liera.  Par défaut il écoute sur toutes les adresses."
+
+#. type: table
+#: doc/guix.texi:27551
+msgid "When set, it must specify a specific network interface such as @code{eth0} that the daemon will bind to."
+msgstr "Si une valeur est indiquée, elle doit spécifier une interface réseau spécifique comme @code{eth0} sur laquelle le démon se liera."
+
+#. type: table
+#: doc/guix.texi:27556
+msgid "The maximum number of simultaneous client requests to handle.  Further connections are allowed, but no responses are sent until enough connections have closed."
+msgstr "Le nombre maximum de requêtes clientes simultanées à prendre en charge.  Les connexions supplémentaires sont permises, mais aucune réponse ne sera envoyée tant qu'il n'y aura pas assez de connexions fermées."
+
+#. type: table
+#: doc/guix.texi:27559
+msgid "Whether to use SSL/TLS encryption on the RAPI port."
+msgstr "Indique s'il faut utiliser le chiffrement SSL/TLS sur le port RAPI."
+
+#. type: defvr
+#: doc/guix.texi:27573
+#, no-wrap
+msgid "{Scheme Variable} ganeti-kvmd-service-type"
+msgstr "{Variable Scheme} ganeti-kvmd-service-type"
+
+#. type: defvr
+#: doc/guix.texi:27581
+msgid "@command{ganeti-kvmd} is responsible for determining whether a given KVM instance was shut down by an administrator or a user.  Normally Ganeti will restart an instance that was not stopped through Ganeti itself.  If the cluster option @code{user_shutdown} is true, this daemon monitors the @code{QMP} socket provided by QEMU and listens for shutdown events, and marks the instance as @dfn{USER_down} instead of @dfn{ERROR_down} when it shuts down gracefully by itself."
+msgstr "@command{ganeti-kvmd} doit déterminer si une instance KVM donnée a été éteinte par un administrateur ou un utilisateur.  Normalement Ganeti redémarre une instance qui a été arrêtée par Ganeti lui-même.  Si l'option de grappe @code{user_shutdown} est vraie, ce démon vérifie la socket @code{QMP} fournie par QEMU et écoute les évènements d'extinction, et marque l'instance @dfn{USER down} au lieu de @dfn{ERROR down} lorsqu'elle s'éteint correctement par elle-même."
+
+#. type: defvr
+#: doc/guix.texi:27583
+msgid "It takes a @code{ganeti-kvmd-configuration} object."
+msgstr "Il prend un objet @code{ganeti-kvmd-configuration}."
+
+#. type: deftp
+#: doc/guix.texi:27585
+#, no-wrap
+msgid "{Data Type} ganeti-kvmd-configuration"
+msgstr "{Type de données} ganeti-kvmd-configuration"
+
+#. type: defvr
+#: doc/guix.texi:27597
+#, no-wrap
+msgid "{Scheme Variable} ganeti-mond-service-type"
+msgstr "{Variable Scheme} ganeti-mond-service-type"
+
+#. type: defvr
+#: doc/guix.texi:27601
+msgid "@command{ganeti-mond} is an optional daemon that provides Ganeti monitoring functionality.  It is responsible for running data collectors and publish the collected information through a HTTP interface."
+msgstr "@command{ganeti-mond} est un démon facultatif qui propose des fonctionnalités de surveillance de Ganeti.  Il est responsable des collecteurs de données et de la publication des informations récupérées sur une interface HTTP."
+
+#. type: defvr
+#: doc/guix.texi:27603
+msgid "It takes a @code{ganeti-mond-configuration} object."
+msgstr "Il prend un objet @code{ganeti-mond-configuration}."
+
+#. type: deftp
+#: doc/guix.texi:27605
+#, no-wrap
+msgid "{Data Type} ganeti-mond-configuration"
+msgstr "{Type de données} ganeti-mond-configuration"
+
+#. type: item
+#: doc/guix.texi:27611
+#, no-wrap
+msgid "@code{port} (default: @code{1815})"
+msgstr "@code{port} (par défaut : @code{1815})"
+
+#. type: table
+#: doc/guix.texi:27613 doc/guix.texi:27639
+msgid "The port on which the daemon will listen."
+msgstr "Le port sur lequel le démon écoutera."
+
+#. type: table
+#: doc/guix.texi:27617
+msgid "The network address that the daemon will bind to.  By default it binds to all available interfaces."
+msgstr "L'adresse réseau sur laquelle le démon se liera.  Par défaut, il se lie à toutes les interfaces disponibles."
+
+#. type: defvr
+#: doc/guix.texi:27624
+#, no-wrap
+msgid "{Scheme Variable} ganeti-metad-service-type"
+msgstr "{Variable Scheme} ganeti-metad-service-type"
+
+#. type: defvr
+#: doc/guix.texi:27627
+msgid "@command{ganeti-metad} is an optional daemon that can be used to provide information about the cluster to instances or OS install scripts."
+msgstr "@command{ganeti-metad} est un démon facultatif qui peut être utilisé pour fournir des informations sur la grappe aux instance ou aux scripts d'installation de systèmes."
+
+#. type: defvr
+#: doc/guix.texi:27629
+msgid "It takes a @code{ganeti-metad-configuration} object."
+msgstr "Il prend un objet @code{ganeti-metad-configuration}."
+
+#. type: deftp
+#: doc/guix.texi:27631
+#, no-wrap
+msgid "{Data Type} ganeti-metad-configuration"
+msgstr "{Type de données} ganeti-metad-configuration"
+
+#. type: item
+#: doc/guix.texi:27640
+#, no-wrap
+msgid "@code{address} (default: @code{#f})"
+msgstr "@code{address} (par défaut : @code{#f})"
+
+#. type: table
+#: doc/guix.texi:27643
+msgid "If set, the daemon will bind to this address only.  If left unset, the behavior depends on the cluster configuration."
+msgstr "Si la valeur est indiquée, le démon se liera à cette adresse uniquement.  Si la valeur n'est pas indiquée, le comportement dépend de la configuration de la grappe."
+
+#. type: defvr
+#: doc/guix.texi:27650
+#, no-wrap
+msgid "{Scheme Variable} ganeti-watcher-service-type"
+msgstr "{Variable Scheme} ganeti-watcher-service-type"
+
+#. type: defvr
+#: doc/guix.texi:27658
+msgid "@command{ganeti-watcher} is a script designed to run periodically and ensure the health of a cluster.  It will automatically restart instances that have stopped without Ganeti's consent, and repairs DRBD links in case a node has rebooted.  It also archives old cluster jobs and restarts Ganeti daemons that are not running.  If the cluster parameter @code{ensure_node_health} is set, the watcher will also shutdown instances and DRBD devices if the node it is running on is declared offline by known master candidates."
+msgstr "@command{ganeti-watcher} est un script conçu pour se lancer périodiquement et s'assurer de la santé de la grappe.  Il redémarrera automatiquement les instances qui sont arrêtées sans le consentement de Ganeti, et réparera les liens DRBD au cas où un nœud a redémarré.  Il archive aussi les anciennes tache de la grappe et redémarre les démons Ganeti qui ne sont pas lancés.  Si le paramètres de grappe @code{ensure_node_health} est indiqué, le gardien éteindra aussi les instances et les périphériques DRBD si le nœud sur lequel il est lancé est déclaré hors-ligne par un candidat maitre."
+
+#. type: defvr
+#: doc/guix.texi:27660
+msgid "It can be paused on all nodes with @command{gnt-cluster watcher pause}."
+msgstr "Il peut être mis en pause sur tous les nœuds avec @command{gnt-cluster watcher-pause}."
+
+#. type: defvr
+#: doc/guix.texi:27662
+msgid "The service takes a @code{ganeti-watcher-configuration} object."
+msgstr "Le service prend un objet @code{ganeti-watcher-configuration}."
+
+#. type: deftp
+#: doc/guix.texi:27664
+#, no-wrap
+msgid "{Data Type} ganeti-watcher-configuration"
+msgstr "{Type de données} ganeti-watcher-configuration"
+
+#. type: item
+#: doc/guix.texi:27670
+#, no-wrap
+msgid "@code{schedule} (default: @code{'(next-second-from (next-minute (range 0 60 5)))})"
+msgstr "@code{schedule} (par défaut : @code{'(next-second-from (next-minute (range 0 60 5)))})"
+
+#. type: table
+#: doc/guix.texi:27672
+msgid "How often to run the script.  The default is every five minutes."
+msgstr "Indique quand lancer le script.  Par défaut, toutes les cinq minutes."
+
+#. type: item
+#: doc/guix.texi:27673
+#, no-wrap
+msgid "@code{rapi-ip} (default: @code{#f})"
+msgstr "@code{rapi-ip} (par défaut : @code{#f})"
+
+#. type: table
+#: doc/guix.texi:27676
+msgid "This option needs to be specified only if the RAPI daemon is configured to use a particular interface or address.  By default the cluster address is used."
+msgstr "Cette option doit être spécifiée seulement si le démon RAPI est configuré pour utiliser une interface ou une adresse particulière.  Par défaut l'adresse de grappe est utilisée."
+
+#. type: item
+#: doc/guix.texi:27677
+#, no-wrap
+msgid "@code{job-age} (default: @code{(* 6 3600)})"
+msgstr "@code{job-age} (par défaut : @code{(* 6 3600)})"
+
+#. type: table
+#: doc/guix.texi:27680
+msgid "Archive cluster jobs older than this age, specified in seconds.  The default is 6 hours.  This keeps @command{gnt-job list} manageable."
+msgstr "Archive les taches de grappe plus vieilles que cela, en secondes.  Par défaut c'est 6 heure.  Cela permet de garder un @command{gnt-job list} gérable."
+
+#. type: item
+#: doc/guix.texi:27681
+#, no-wrap
+msgid "@code{verify-disks?} (default: @code{#t})"
+msgstr "@code{verify-disks?} (par défaut : @code{#t})"
+
+#. type: table
+#: doc/guix.texi:27685
+msgid "If this is @code{#f}, the watcher will not try to repair broken DRBD links automatically.  Administrators will need to use @command{gnt-cluster verify-disks} manually instead."
+msgstr "Si la valeur est @code{#f}, le gardien n'essaiera pas de réparer les liens DRBD cassés automatiquement.  Les administrateur·ice·s devront utiliser @command{gnt-cluster verify-disks} manuellement à la place."
+
+#. type: table
+#: doc/guix.texi:27688
+msgid "When @code{#t}, the script performs additional logging for debugging purposes."
+msgstr "Lorsque la valeur est @code{#t}, le script effectue des actions de journalisation supplémentaires pour le débogage."
+
+#. type: defvr
+#: doc/guix.texi:27692
+#, no-wrap
+msgid "{Scheme Variable} ganeti-cleaner-service-type"
+msgstr "{Variable Scheme} ganeti-cleaner-service-type"
+
+#. type: defvr
+#: doc/guix.texi:27700
+msgid "@command{ganeti-cleaner} is a script designed to run periodically and remove old files from the cluster.  This service type controls two @dfn{cron jobs}: one intended for the master node that permanently purges old cluster jobs, and one intended for every node that removes expired X509 certificates, keys, and outdated @command{ganeti-watcher} information.  Like all Ganeti services, it is safe to include even on non-master nodes as it will disable itself as necessary."
+msgstr "@command{ganeti-cleaner} est un script conçu pour être lancé périodiquement et supprimer les anciens fichiers de la grappe.  Ce type de service contrôle deux @dfn{tache cron} : l'une est conçue pour le nœud maitre et purge de manière permanente les ancienne taches de la grappe, et l'autre est conçue pour tous les nœuds et supprime les certificats X509, les clés et les informations @command{ganeti-watcher} périmées.  Comme tous les services Ganeti, on peut l'ajouter même sur les nœuds non-maitres car il se désactive tout seul en cas de besoin."
+
+#. type: defvr
+#: doc/guix.texi:27702
+msgid "It takes a @code{ganeti-cleaner-configuration} object."
+msgstr "Il prend un objet @code{ganeti-cleaner-configuration}."
+
+#. type: deftp
+#: doc/guix.texi:27704
+#, no-wrap
+msgid "{Data Type} ganeti-cleaner-configuration"
+msgstr "{Type de données} ganeti-cleaner-configuration"
+
+#. type: table
+#: doc/guix.texi:27709
+msgid "The @code{ganeti} package to use for the @command{gnt-cleaner} command."
+msgstr "Le paquet @code{ganeti} à utiliser pour la commande @command{gnt-cleaner}."
+
+#. type: item
+#: doc/guix.texi:27710
+#, no-wrap
+msgid "@code{master-schedule} (default: @code{\"45 1 * * *\"})"
+msgstr "@code{master-schedule} (par défaut : @code{\"45 1 * * *\"})"
+
+#. type: table
+#: doc/guix.texi:27713
+msgid "How often to run the master cleaning job.  The default is once per day, at 01:45:00."
+msgstr "La périodicité à laquelle lancer la tache de nettoyage maitre.  Par défaut c'est une fois par jour, à 01:45:00."
+
+#. type: item
+#: doc/guix.texi:27714
+#, no-wrap
+msgid "@code{node-schedule} (default: @code{\"45 2 * * *\"})"
+msgstr "@code{node-schedule} (par défaut : @code{\"45 2 * * *\"})"
+
+#. type: table
+#: doc/guix.texi:27717
+msgid "How often to run the node cleaning job.  The default is once per day, at 02:45:00."
+msgstr "La périodicité à laquelle lancer la tache de nettoyage des nœuds.  Par défaut une fois par jour, à 02:45:00."
+
+#. type: Plain text
+#: doc/guix.texi:27731
 msgid "The @code{(gnu services version-control)} module provides a service to allow remote access to local Git repositories.  There are three options: the @code{git-daemon-service}, which provides access to repositories via the @code{git://} unsecured TCP-based protocol, extending the @code{nginx} web server to proxy some requests to @code{git-http-backend}, or providing a web interface with @code{cgit-service-type}."
 msgstr "Le module @code{(gnu services version-control)} fournit un service pour permettre l'accès à distance à des dépôts Git locaux.  Il y a trois options : en utilisant @code{git-daemon-service} qui fournit un accès aux dépôts via le protocole non sécurisé @code{git://} basé sur TCP, en étendant le serveur web @code{nginx} pour relayer les requêtes vers @code{git-http-backend} ou en fournissant une interface web avec @code{cgit-service-type}."
 
 #. type: deffn
-#: doc/guix.texi:22137
+#: doc/guix.texi:27732
 #, no-wrap
 msgid "{Scheme Procedure} git-daemon-service [#:config (git-daemon-configuration)]"
 msgstr "{Procédure Scheme} git-daemon-service [#:config (git-daemon-configuration)]"
 
 #. type: deffn
-#: doc/guix.texi:22141
+#: doc/guix.texi:27736
 msgid "Return a service that runs @command{git daemon}, a simple TCP server to expose repositories over the Git protocol for anonymous access."
 msgstr "Renvoie un service qui lance @command{git daemon}, un serveur TCP simple pour exposer des dépôts sur le protocole Git pour des accès anonymes."
 
 #. type: deffn
-#: doc/guix.texi:22147
-msgid "The optional @var{config} argument should be a @code{<git-daemon-configuration>} object, by default it allows read-only access to exported@footnote{By creating the magic file \"git-daemon-export-ok\" in the repository directory.} repositories under @file{/srv/git}."
-msgstr "L'argument facultatif @var{config} devrait être un objet @code{<git-daemon-configuration>}, par défaut il permet l'accès en lecture-seule aux dépôts exportés@footnote{En créant le fichier magique « git-daemon-export-ok » dans le répertoire du dépôt.} dans @file{/srv/git}."
+#: doc/guix.texi:27742
+msgid "The optional @var{config} argument should be a @code{<git-daemon-configuration>} object, by default it allows read-only access to exported@footnote{By creating the magic file @file{git-daemon-export-ok} in the repository directory.} repositories under @file{/srv/git}."
+msgstr "L'argument facultatif @var{config} devrait être un objet @code{<git-daemon-configuration>}, par défaut il permet l'accès en lecture-seule aux dépôts exportés@footnote{En créant le fichier magique @file{git-daemon-export-ok} dans le répertoire du dépôt.} dans @file{/srv/git}."
 
 #. type: deftp
-#: doc/guix.texi:22150
+#: doc/guix.texi:27745
 #, no-wrap
 msgid "{Data Type} git-daemon-configuration"
 msgstr "{Type de données} git-daemon-configuration"
 
 #. type: deftp
-#: doc/guix.texi:22152
+#: doc/guix.texi:27747
 msgid "Data type representing the configuration for @code{git-daemon-service}."
 msgstr "Type de données représentnt la configuration de @code{git-daemon-service}."
 
 #. type: item
-#: doc/guix.texi:22154 doc/guix.texi:22210
+#: doc/guix.texi:27749
 #, no-wrap
-msgid "@code{package} (default: @var{git})"
-msgstr "@code{package} (par défaut : @var{git})"
+msgid "@code{package} (default: @code{git})"
+msgstr "@code{package} (par défaut : @code{git})"
 
 #. type: table
-#: doc/guix.texi:22156 doc/guix.texi:22212
+#: doc/guix.texi:27751 doc/guix.texi:27811
 msgid "Package object of the Git distributed version control system."
 msgstr "Objet de paquet du système de contrôle de version distribué Git."
 
 #. type: item
-#: doc/guix.texi:22157 doc/guix.texi:22216
+#: doc/guix.texi:27752 doc/guix.texi:27815
 #, no-wrap
-msgid "@code{export-all?} (default: @var{#f})"
-msgstr "@code{export-all?} (par défaut : @var{#f})"
+msgid "@code{export-all?} (default: @code{#f})"
+msgstr "@code{export-all?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:22160
+#: doc/guix.texi:27755
 msgid "Whether to allow access for all Git repositories, even if they do not have the @file{git-daemon-export-ok} file."
 msgstr "Indique s'il faut permettre l'accès à tous les dépôts Git, même s'ils n'ont pas le fichier @file{git-daemon-export-ok}."
 
 #. type: item
-#: doc/guix.texi:22161
+#: doc/guix.texi:27756
 #, no-wrap
 msgid "@code{base-path} (default: @file{/srv/git})"
 msgstr "@code{base-path} (par défaut : @file{/srv/git})"
 
 #. type: table
-#: doc/guix.texi:22166
-msgid "Whether to remap all the path requests as relative to the given path.  If you run git daemon with @var{(base-path \"/srv/git\")} on example.com, then if you later try to pull @code{git://example.com/hello.git}, git daemon will interpret the path as @code{/srv/git/hello.git}."
-msgstr "Indique s'il faut traduire toutes les requêtes de chemins relativement au chemin actuel.  Si vous lancez le démon git avec @var{(base-path \"/srv/git\")} sur example.com, si vous essayez ensuite de récupérer @code{git://example.com/hello.git}, le démon git interprétera ce chemin comme étant @code{/srv/git/hello.git}."
+#: doc/guix.texi:27762
+msgid "Whether to remap all the path requests as relative to the given path.  If you run @command{git daemon} with @code{(base-path \"/srv/git\")} on @samp{example.com}, then if you later try to pull @indicateurl{git://example.com/hello.git}, git daemon will interpret the path as @file{/srv/git/hello.git}."
+msgstr "Indique s'il faut traduire toutes les requêtes de chemins relativement au chemin actuel.  Si vous lancez @command{git daemon} avec @code{(base-path \"/srv/git\")} sur @samp{example.com}, et que vous essayez ensuite de récupérer @indicateurl{git://example.com/hello.git}, le démon git interprètera ce chemin comme étant @code{/srv/git/hello.git}."
 
 #. type: item
-#: doc/guix.texi:22167
+#: doc/guix.texi:27763
 #, no-wrap
-msgid "@code{user-path} (default: @var{#f})"
-msgstr "@code{user-path} (par défaut : @var{#f})"
+msgid "@code{user-path} (default: @code{#f})"
+msgstr "@code{user-path} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:22174
-msgid "Whether to allow @code{~user} notation to be used in requests.  When specified with empty string, requests to @code{git://host/~alice/foo} is taken as a request to access @code{foo} repository in the home directory of user @code{alice}.  If @var{(user-path \"path\")} is specified, the same request is taken as a request to access @code{path/foo} repository in the home directory of user @code{alice}."
-msgstr "Indique s'il faut permettre la notation @code{~user} dans les requêtes.  Lorsque spécifié avec une chaîne vide, les requêtes à @code{git://host/~alice/foo} sont des requêtes d'accès au dépôt @code{foo} dans le répertoire personnel de l'utilisateur @code{alice}.  Si @var{(user-path \"chemin\")} est spécifié, la même requête est interprétée comme accédant au répertoire @code{chemin/foo} dans le répertoire personnel de l'utilisateur @code{alice}."
+#: doc/guix.texi:27771
+msgid "Whether to allow @code{~user} notation to be used in requests.  When specified with empty string, requests to @indicateurl{git://host/~alice/foo} is taken as a request to access @code{foo} repository in the home directory of user @code{alice}.  If @code{(user-path \"@var{path}\")} is specified, the same request is taken as a request to access @file{@var{path}/foo} repository in the home directory of user @code{alice}."
+msgstr "Indique s'il faut permettre la notation @code{~user} dans les requêtes.  Lorsque spécifié avec une chaine vide, les requêtes à @indicateurl{git://host/~alice/foo} sont des requêtes d'accès au dépôt @code{foo} dans le répertoire personnel de l'utilisateur @code{alice}.  Si @var{(user-path \"@var{chemin}\")} est spécifié, la même requête est interprétée comme accédant au répertoire @file{@var{chemin}/foo} dans le répertoire personnel de l'utilisateur @code{alice}."
 
 #. type: item
-#: doc/guix.texi:22175
+#: doc/guix.texi:27772
 #, no-wrap
-msgid "@code{listen} (default: @var{'()})"
-msgstr "@code{listen} (par défaut : @var{'()})"
+msgid "@code{listen} (default: @code{'()})"
+msgstr "@code{listen} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:22178
+#: doc/guix.texi:27775
 msgid "Whether to listen on specific IP addresses or hostnames, defaults to all."
 msgstr "Indique s'il faut écouter sur des adresses IP ou des noms d'hôtes particuliers, par défaut tous."
 
 #. type: item
-#: doc/guix.texi:22179
+#: doc/guix.texi:27776
 #, no-wrap
-msgid "@code{port} (default: @var{#f})"
-msgstr "@code{port} (par défaut : @var{#f})"
+msgid "@code{port} (default: @code{#f})"
+msgstr "@code{port} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:22181
+#: doc/guix.texi:27778
 msgid "Whether to listen on an alternative port, which defaults to 9418."
 msgstr "Indique s'il faut écouter sur un port particulier, par défaut le 9418."
 
 #. type: item
-#: doc/guix.texi:22182
+#: doc/guix.texi:27779
 #, no-wrap
-msgid "@code{whitelist} (default: @var{'()})"
-msgstr "@code{whitelist} (par défaut : @var{'()})"
+msgid "@code{whitelist} (default: @code{'()})"
+msgstr "@code{whitelist} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:22184
+#: doc/guix.texi:27781
 msgid "If not empty, only allow access to this list of directories."
 msgstr "Si la liste n'est pas vide, n'autoriser l'accès qu'aux dossiers spécifiés."
 
-#. type: item
-#: doc/guix.texi:22185
-#, no-wrap
-msgid "@code{extra-options} (default: @var{'()})"
-msgstr "@code{extra-options} (par défaut : @var{'()})"
-
 #. type: table
-#: doc/guix.texi:22188
-msgid "Extra options will be passed to @code{git daemon}, please run @command{man git-daemon} for more information."
+#: doc/guix.texi:27785
+msgid "Extra options will be passed to @command{git daemon}, please run @command{man git-daemon} for more information."
 msgstr "Options supplémentaires qui seront passées à @code{git daemon}, lancez @command{man git-daemon} pour plus d'informations."
 
 #. type: Plain text
-#: doc/guix.texi:22202
-msgid "The @code{git://} protocol lacks authentication.  When you pull from a repository fetched via @code{git://}, you don't know that the data you receive was modified is really coming from the specified host, and you have your connection is subject to eavesdropping.  It's better to use an authenticated and encrypted transport, such as @code{https}.  Although Git allows you to serve repositories using unsophisticated file-based web servers, there is a faster protocol implemented by the @code{git-http-backend} program.  This program is the back-end of a proper Git web service.  It is designed to sit behind a FastCGI proxy.  @xref{Web Services}, for more on running the necessary @code{fcgiwrap} daemon."
+#: doc/guix.texi:27799
+msgid "The @code{git://} protocol lacks authentication.  When you pull from a repository fetched via @code{git://}, you don't know whether the data you receive was modified or is even coming from the specified host, and your connection is subject to eavesdropping.  It's better to use an authenticated and encrypted transport, such as @code{https}.  Although Git allows you to serve repositories using unsophisticated file-based web servers, there is a faster protocol implemented by the @code{git-http-backend} program.  This program is the back-end of a proper Git web service.  It is designed to sit behind a FastCGI proxy.  @xref{Web Services}, for more on running the necessary @code{fcgiwrap} daemon."
 msgstr "Le protocole @code{git://} ne permet pas l'authentification.  Lorsque vous récupérez un dépôt via @code{git://}, vous ne pouvez pas savoir si les données que vous recevez ont été modifiées ou si elles viennent bien de l'hôte spécifié, et votre connexion pourrait être espionnée.  Il est préférable d'utiliser un protocole de transport authentifié et chiffré, comme @code{https}.  Bien que Git vous permette de servir des dépôts avec un serveur web peu sophistiqué basé sur les fichiers, il y a un protocole plus rapide implémenté par le programme @code{git-http-backend}.  Ce programme est le moteur des services web Git corrects.  Il est conçu pour se trouver derrière un mandataire FastCGI.  @xref{Web Services} pour plus d'informations sur la manière de lancer le démon @code{fcgiwrap} nécessaire."
 
 #. type: Plain text
-#: doc/guix.texi:22205
+#: doc/guix.texi:27802
 msgid "Guix has a separate configuration data type for serving Git repositories over HTTP."
 msgstr "Guix a un type de données de configuration séparé pour servir des dépôts Git par HTTP."
 
 #. type: deftp
-#: doc/guix.texi:22206
+#: doc/guix.texi:27803
 #, no-wrap
 msgid "{Data Type} git-http-configuration"
 msgstr "{Type de données} git-http-configuration"
 
 #. type: deftp
-#: doc/guix.texi:22208
-msgid "Data type representing the configuration for @code{git-http-service}."
-msgstr "Type de données représentant la configuration de @code{git-http-service}."
+#: doc/guix.texi:27807
+msgid "Data type representing the configuration for a future @code{git-http-service-type}; can currently be used to configure Nginx trough @code{git-http-nginx-location-configuration}."
+msgstr "Type de données représentant la configuration d'un futur @code{git-http-service-type} ; il peut actuellement être utilisé pour configurer Nginx à travers @code{git-http-nginx-location-configuration}."
+
+#. type: item
+#: doc/guix.texi:27809
+#, no-wrap
+msgid "@code{package} (default: @var{git})"
+msgstr "@code{package} (par défaut : @var{git})"
 
 #. type: item
-#: doc/guix.texi:22213
+#: doc/guix.texi:27812
 #, no-wrap
 msgid "@code{git-root} (default: @file{/srv/git})"
 msgstr "@code{git-root} (par défaut : @file{/srv/git})"
 
 #. type: table
-#: doc/guix.texi:22215
+#: doc/guix.texi:27814
 msgid "Directory containing the Git repositories to expose to the world."
 msgstr "Répertoire contenant les dépôts Git à exposer au monde."
 
 #. type: table
-#: doc/guix.texi:22219
+#: doc/guix.texi:27818
 msgid "Whether to expose access for all Git repositories in @var{git-root}, even if they do not have the @file{git-daemon-export-ok} file."
 msgstr "Indique s'il faut exposer l'accès de tous les dépôts Git dans @var{git-root}, même s'ils n'ont pas le fichier @file{git-daemon-export-ok}."
 
 #. type: item
-#: doc/guix.texi:22220
+#: doc/guix.texi:27819
 #, no-wrap
-msgid "@code{uri-path} (default: @file{/git/})"
-msgstr "@code{uri-path} (par défaut : @file{/git/})"
+msgid "@code{uri-path} (default: @samp{/git/})"
+msgstr "@code{uri-path} (par défaut : @samp{/git/})"
 
 #. type: table
-#: doc/guix.texi:22225
-msgid "Path prefix for Git access.  With the default @code{/git/} prefix, this will map @code{http://@var{server}/git/@var{repo}.git} to @code{/srv/git/@var{repo}.git}.  Requests whose URI paths do not begin with this prefix are not passed on to this Git instance."
-msgstr "Préfixe du chemin pour l'accès Git.  Avec le préfixe @code{/git/} par défaut, cela traduira @code{http://@var{server}/git/@var{repo}.git} en @code{/sr/git/@var{repo}.git}.  Les requêtes dont les chemins d'URI ne commencent pas par ce préfixe ne seront pas passées à cette instance de Git."
+#: doc/guix.texi:27824
+msgid "Path prefix for Git access.  With the default @samp{/git/} prefix, this will map @indicateurl{http://@var{server}/git/@var{repo}.git} to @file{/srv/git/@var{repo}.git}.  Requests whose URI paths do not begin with this prefix are not passed on to this Git instance."
+msgstr "Préfixe du chemin pour l'accès Git.  Avec le préfixe @samp{/git/} par défaut, cela traduira @indicateurl{http://@var{server}/git/@var{repo}.git} en @file{/srv/git/@var{repo}.git}.  Les requêtes dont les chemins d'URI ne commencent pas par ce préfixe ne seront pas passées à cette instance de Git."
 
 #. type: item
-#: doc/guix.texi:22226
+#: doc/guix.texi:27825
 #, no-wrap
 msgid "@code{fcgiwrap-socket} (default: @code{127.0.0.1:9000})"
 msgstr "@code{fcgiwrap-socket} (par défaut : @code{127.0.0.1:9000})"
 
 #. type: table
-#: doc/guix.texi:22229
+#: doc/guix.texi:27828
 msgid "The socket on which the @code{fcgiwrap} daemon is listening.  @xref{Web Services}."
 msgstr "Le socket sur lequel le démon @code{fcgiwrap} écoute.  @xref{Web Services}."
 
 #. type: Plain text
-#: doc/guix.texi:22236
+#: doc/guix.texi:27835
 msgid "There is no @code{git-http-service-type}, currently; instead you can create an @code{nginx-location-configuration} from a @code{git-http-configuration} and then add that location to a web server."
 msgstr "Il n'y a pas de @code{git-http-service-type}, actuellement ; à la place vous pouvez créer un @code{nginx-location-configuration} à partir d'un @code{git-http-configuration} puis ajouter cela au serveur web."
 
 #. type: deffn
-#: doc/guix.texi:22237
+#: doc/guix.texi:27836
 #, no-wrap
 msgid "{Scheme Procedure} git-http-nginx-location-configuration @"
 msgstr "{Procédure Scheme} git-http-nginx-location-configuration @"
 
 #. type: deffn
-#: doc/guix.texi:22242
+#: doc/guix.texi:27841
 msgid "[config=(git-http-configuration)] Compute an @code{nginx-location-configuration} that corresponds to the given Git http configuration.  An example nginx service definition to serve the default @file{/srv/git} over HTTPS might be:"
 msgstr ""
 "[config=(git-http-configuration)]\n"
 "Calcule un @code{nginx-location-configuration} qui correspond à la configuration http Git donnée.  Voici un exemple de définition de service nginx qui sert le répertoire @file{/srv/git} par défaut en HTTPS :"
 
-#. type: example
-#: doc/guix.texi:22259
+#. type: lisp
+#: doc/guix.texi:27858
 #, no-wrap
 msgid ""
 "(service nginx-service-type\n"
@@ -41654,1420 +52065,1420 @@ msgstr ""
 "                (git-http-configuration (uri-path \"/\"))))))))))\n"
 
 #. type: deffn
-#: doc/guix.texi:22266
+#: doc/guix.texi:27865
 msgid "This example assumes that you are using Let's Encrypt to get your TLS certificate.  @xref{Certificate Services}.  The default @code{certbot} service will redirect all HTTP traffic on @code{git.my-host.org} to HTTPS.  You will also need to add an @code{fcgiwrap} proxy to your system services.  @xref{Web Services}."
 msgstr "Ce exemple suppose que vous utilisez Let's Encrypt pour récupérer votre certificat TLS.  @xref{Certificate Services}.  Le service @code{certbot} par défaut redirigera tout le trafic HTTP de @code{git.my-host.org} en HTTPS.  Vous devrez aussi ajouter un mandataire @code{fcgiwrap} à vos services systèmes.  @xref{Web Services}."
 
 #. type: subsubheading
-#: doc/guix.texi:22268
+#: doc/guix.texi:27867
 #, no-wrap
 msgid "Cgit Service"
 msgstr "Service Cgit"
 
 #. type: cindex
-#: doc/guix.texi:22270
+#: doc/guix.texi:27869
 #, no-wrap
 msgid "Cgit service"
-msgstr "service cgit"
+msgstr "Service cgit"
 
 #. type: cindex
-#: doc/guix.texi:22271
+#: doc/guix.texi:27870
 #, no-wrap
 msgid "Git, web interface"
-msgstr "git, interface web"
+msgstr "Git, interface web"
 
 #. type: Plain text
-#: doc/guix.texi:22274
+#: doc/guix.texi:27873
 msgid "@uref{https://git.zx2c4.com/cgit/, Cgit} is a web frontend for Git repositories written in C."
 msgstr "@uref{https://git.zx2c4.com/cgit/, Cgit} est une interface web pour des dépôts Git écrite en C."
 
 #. type: Plain text
-#: doc/guix.texi:22277
+#: doc/guix.texi:27876
 msgid "The following example will configure the service with default values.  By default, Cgit can be accessed on port 80 (@code{http://localhost:80})."
 msgstr "L'exemple suivant configurera le service avec les valeurs par défaut.  Par défaut, on peut accéder à Cgit sur le port  (@code{http://localhost:80})."
 
-#. type: example
-#: doc/guix.texi:22280
+#. type: lisp
+#: doc/guix.texi:27879
 #, no-wrap
 msgid "(service cgit-service-type)\n"
 msgstr "(service cgit-service-type)\n"
 
 #. type: Plain text
-#: doc/guix.texi:22284
+#: doc/guix.texi:27883
 msgid "The @code{file-object} type designates either a file-like object (@pxref{G-Expressions, file-like objects}) or a string."
 msgstr "Le type @code{file-object} désigne soit un objet simili-fichier (@pxref{G-Expressions, file-like objects}), soit une chaîne."
 
 #. type: Plain text
-#: doc/guix.texi:22288
+#: doc/guix.texi:27887
 msgid "Available @code{cgit-configuration} fields are:"
 msgstr "Les champs de @code{cgit-configuration} disponibles sont :"
 
 #. type: deftypevr
-#: doc/guix.texi:22289
+#: doc/guix.texi:27888
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} package package"
 msgstr "{paramètre de @code{cgit-configuration}} package package"
 
 #. type: deftypevr
-#: doc/guix.texi:22291
+#: doc/guix.texi:27890
 msgid "The CGIT package."
 msgstr "Le paquet cgit."
 
 #. type: deftypevr
-#: doc/guix.texi:22294
+#: doc/guix.texi:27893
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} nginx-server-configuration-list nginx"
 msgstr "{paramètre de @code{cgit-configuration}} nginx-server-configuration-list nginx"
 
 #. type: deftypevr
-#: doc/guix.texi:22299
+#: doc/guix.texi:27898
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} file-object about-filter"
 msgstr "{paramètre de @code{cgit-configuration}} file-object about-filter"
 
 #. type: deftypevr
-#: doc/guix.texi:22302
+#: doc/guix.texi:27901
 msgid "Specifies a command which will be invoked to format the content of about pages (both top-level and for each repository)."
 msgstr "Spécifie une commande qui doit être invoquée pour formater le contenu des pages « à propos » (au plus haut niveau et pour chaque dépôt)."
 
 #. type: deftypevr
-#: doc/guix.texi:22307
+#: doc/guix.texi:27906
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string agefile"
 msgstr "{paramètre de @code{cgit-configuration}} string agefile"
 
 #. type: deftypevr
-#: doc/guix.texi:22310
+#: doc/guix.texi:27909
 msgid "Specifies a path, relative to each repository path, which can be used to specify the date and time of the youngest commit in the repository."
 msgstr "Spécifie un chemin, relativement à chaque dépôt, qui peut être utilisé pour spécifier la date et l'heure du plus récent commit du dépôt."
 
 #. type: deftypevr
-#: doc/guix.texi:22315
+#: doc/guix.texi:27914
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} file-object auth-filter"
 msgstr "{paramètre de @code{cgit-configuration}} file-object auth-filter"
 
 #. type: deftypevr
-#: doc/guix.texi:22318
+#: doc/guix.texi:27917
 msgid "Specifies a command that will be invoked for authenticating repository access."
 msgstr "Spécifie une commande qui sera invoquée pour authentifier l'accès au dépôt."
 
 #. type: deftypevr
-#: doc/guix.texi:22323
+#: doc/guix.texi:27922
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string branch-sort"
 msgstr "{paramètre de @code{cgit-configuration}} string branch-sort"
 
 #. type: deftypevr
-#: doc/guix.texi:22326
+#: doc/guix.texi:27925
 msgid "Flag which, when set to @samp{age}, enables date ordering in the branch ref list, and when set @samp{name} enables ordering by branch name."
 msgstr "Drapeau qui, lorsqu'il vaut @samp{age}, active le trie par date dans la liste des branches, et le trie par nom lorsqu'il vaut @samp{name}."
 
 #. type: deftypevr
-#: doc/guix.texi:22328
+#: doc/guix.texi:27927
 msgid "Defaults to @samp{\"name\"}."
 msgstr "La valeur par défaut est @samp{\"name\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:22331
+#: doc/guix.texi:27930
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string cache-root"
 msgstr "{paramètre de @code{cgit-configuration}} string cache-root"
 
 #. type: deftypevr
-#: doc/guix.texi:22333
+#: doc/guix.texi:27932
 msgid "Path used to store the cgit cache entries."
 msgstr "Chemin utilisé pour stocker les entrées de cache de cgit."
 
 #. type: deftypevr
-#: doc/guix.texi:22335
+#: doc/guix.texi:27934
 msgid "Defaults to @samp{\"/var/cache/cgit\"}."
 msgstr "La valeur par défaut est @samp{\"/var/cache/cgit\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:22338
+#: doc/guix.texi:27937
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer cache-static-ttl"
 msgstr "{paramètre de @code{cgit-configuration}} integer cache-static-ttl"
 
 #. type: deftypevr
-#: doc/guix.texi:22341
+#: doc/guix.texi:27940
 msgid "Number which specifies the time-to-live, in minutes, for the cached version of repository pages accessed with a fixed SHA1."
 msgstr "Nombre qui spécifie le temps de vie, en minute, des versions en cache des pages du dépôt accédées par leur SHA-1."
 
 #. type: deftypevr
-#: doc/guix.texi:22343 doc/guix.texi:22786
+#: doc/guix.texi:27942 doc/guix.texi:28385
 msgid "Defaults to @samp{-1}."
 msgstr "La valeur par défaut est @samp{-1}."
 
 #. type: deftypevr
-#: doc/guix.texi:22346
+#: doc/guix.texi:27945
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer cache-dynamic-ttl"
 msgstr "{paramètre de @code{cgit-configuration}} integer cache-dynamic-ttl"
 
 #. type: deftypevr
-#: doc/guix.texi:22349
+#: doc/guix.texi:27948
 msgid "Number which specifies the time-to-live, in minutes, for the cached version of repository pages accessed without a fixed SHA1."
 msgstr "Nombre qui spécifie le temps de vie, en minutes, des version en cache des pages du dépôt accédées sans leur SHA1."
 
 #. type: deftypevr
-#: doc/guix.texi:22354
+#: doc/guix.texi:27953
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer cache-repo-ttl"
 msgstr "{paramètre de @code{cgit-configuration}} integer cache-repo-ttl"
 
 #. type: deftypevr
-#: doc/guix.texi:22357
+#: doc/guix.texi:27956
 msgid "Number which specifies the time-to-live, in minutes, for the cached version of the repository summary page."
 msgstr "Nombre qui spécifie le temps de vie, en minute, des version en cache de la page de résumé du dépôt."
 
 #. type: deftypevr
-#: doc/guix.texi:22362
+#: doc/guix.texi:27961
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer cache-root-ttl"
 msgstr "{paramètre de @code{cgit-configuration}} integer cache-root-ttl"
 
 #. type: deftypevr
-#: doc/guix.texi:22365
+#: doc/guix.texi:27964
 msgid "Number which specifies the time-to-live, in minutes, for the cached version of the repository index page."
 msgstr "Nombre qui spécifie le temps de vie, en minutes, de la version en cache de la page d'index du dépôt."
 
 #. type: deftypevr
-#: doc/guix.texi:22370
+#: doc/guix.texi:27969
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer cache-scanrc-ttl"
 msgstr "{paramètre de @code{cgit-configuration}} integer cache-scanrc-ttl"
 
 #. type: deftypevr
-#: doc/guix.texi:22373
+#: doc/guix.texi:27972
 msgid "Number which specifies the time-to-live, in minutes, for the result of scanning a path for Git repositories."
 msgstr "Nombre qui spécifie le temps de vie, en minutes, de la version en cache du résultat du scan d'un chemin dans le dépôt Git."
 
 #. type: deftypevr
-#: doc/guix.texi:22378
+#: doc/guix.texi:27977
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer cache-about-ttl"
 msgstr "{paramètre de @code{cgit-configuration}} integer cache-about-ttl"
 
 #. type: deftypevr
-#: doc/guix.texi:22381
+#: doc/guix.texi:27980
 msgid "Number which specifies the time-to-live, in minutes, for the cached version of the repository about page."
 msgstr "Nombre qui spécifie le temps de vie, en minutes, de la version en cache de la page « à propos » du dépôt."
 
 #. type: deftypevr
-#: doc/guix.texi:22386
+#: doc/guix.texi:27985
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer cache-snapshot-ttl"
 msgstr "{paramètre de @code{cgit-configuration}} integer cache-snapshot-ttl"
 
 #. type: deftypevr
-#: doc/guix.texi:22389
+#: doc/guix.texi:27988
 msgid "Number which specifies the time-to-live, in minutes, for the cached version of snapshots."
 msgstr "Nombre qui spécifie le temps de vie, en minutes, de la version en cache des archives."
 
 #. type: deftypevr
-#: doc/guix.texi:22394
+#: doc/guix.texi:27993
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer cache-size"
 msgstr "{paramètre de @code{cgit-configuration}} integer cache-size"
 
 #. type: deftypevr
-#: doc/guix.texi:22397
+#: doc/guix.texi:27996
 msgid "The maximum number of entries in the cgit cache.  When set to @samp{0}, caching is disabled."
 msgstr "Le nombre maximum d'entrées dans le cache de cgit.  Lorsque la valeur est @samp{0}, le cache est désactivé."
 
 #. type: deftypevr
-#: doc/guix.texi:22402
+#: doc/guix.texi:28001
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean case-sensitive-sort?"
 msgstr "{paramètre de @code{cgit-configuration}} boolean case-sensitive-sort?"
 
 #. type: deftypevr
-#: doc/guix.texi:22404
+#: doc/guix.texi:28003
 msgid "Sort items in the repo list case sensitively."
 msgstr "Indique si le tri des éléments est sensible à la casse."
 
 #. type: deftypevr
-#: doc/guix.texi:22409
+#: doc/guix.texi:28008
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} list clone-prefix"
 msgstr "{paramètre de @code{cgit-configuration}} list clone-prefix"
 
 #. type: deftypevr
-#: doc/guix.texi:22412
+#: doc/guix.texi:28011
 msgid "List of common prefixes which, when combined with a repository URL, generates valid clone URLs for the repository."
 msgstr "Liste des préfixes communs qui, lorsqu'ils sont combinés à l'URL du dépôt, génèrent des URL de clone valides pour le dépôt."
 
 #. type: deftypevr
-#: doc/guix.texi:22417
+#: doc/guix.texi:28016
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} list clone-url"
 msgstr "{paramètre de @code{cgit-configuration}} list clone-url"
 
 #. type: deftypevr
-#: doc/guix.texi:22419
+#: doc/guix.texi:28018
 msgid "List of @code{clone-url} templates."
 msgstr "Liste des modèles @code{clone-url}"
 
 #. type: deftypevr
-#: doc/guix.texi:22424
+#: doc/guix.texi:28023
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} file-object commit-filter"
 msgstr "{paramètre de @code{cgit-configuration}} file-object commit-filter"
 
 #. type: deftypevr
-#: doc/guix.texi:22426
+#: doc/guix.texi:28025
 msgid "Command which will be invoked to format commit messages."
 msgstr "Commande qui sera invoquée pour formater les messages de commit."
 
 #. type: deftypevr
-#: doc/guix.texi:22431
+#: doc/guix.texi:28030
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string commit-sort"
 msgstr "{paramètre de @code{cgit-configuration}} string commit-sort"
 
 #. type: deftypevr
-#: doc/guix.texi:22435 doc/guix.texi:22993
+#: doc/guix.texi:28034 doc/guix.texi:28592
 msgid "Flag which, when set to @samp{date}, enables strict date ordering in the commit log, and when set to @samp{topo} enables strict topological ordering."
 msgstr "Drapeau qui, s'il vaut @samp{date}, active le tri par date strict dans le messages de commit, et le tri topologique strict lorsqu'il vaut @samp{topo}."
 
 #. type: deftypevr
-#: doc/guix.texi:22437
+#: doc/guix.texi:28036
 msgid "Defaults to @samp{\"git log\"}."
 msgstr "La valeur par défaut est @samp{\"git log\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:22440
+#: doc/guix.texi:28039
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} file-object css"
 msgstr "{paramètre de @code{cgit-configuration}} file-object css"
 
 #. type: deftypevr
-#: doc/guix.texi:22442
+#: doc/guix.texi:28041
 msgid "URL which specifies the css document to include in all cgit pages."
 msgstr "URL qui spécifie le document css à inclure dans les pages cgit."
 
 #. type: deftypevr
-#: doc/guix.texi:22444
+#: doc/guix.texi:28043
 msgid "Defaults to @samp{\"/share/cgit/cgit.css\"}."
 msgstr "La valeur par défaut est @samp{\"/share/cgit/cgit.css\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:22447
+#: doc/guix.texi:28046
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} file-object email-filter"
 msgstr "{paramètre de @code{cgit-configuration}} file-object email-filter"
 
 #. type: deftypevr
-#: doc/guix.texi:22451
+#: doc/guix.texi:28050
 msgid "Specifies a command which will be invoked to format names and email address of committers, authors, and taggers, as represented in various places throughout the cgit interface."
 msgstr "Spécifie une commande qui sera invoquée pour formater les noms et l'adresse de courriel des commiteurs, des auteurs et des taggueurs, représentés à plusieurs endroits dans l'interface cgit."
 
 #. type: deftypevr
-#: doc/guix.texi:22456
+#: doc/guix.texi:28055
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean embedded?"
 msgstr "{paramètre de @code{cgit-configuration}} boolean embedded?"
 
 #. type: deftypevr
-#: doc/guix.texi:22459
+#: doc/guix.texi:28058
 msgid "Flag which, when set to @samp{#t}, will make cgit generate a HTML fragment suitable for embedding in other HTML pages."
 msgstr "Drapeau qui, s'il vaut @samp{#t}, fera générer un fragment HTML à cgit qu'il sera possible d'inclure dans d'autres pages HTML."
 
 #. type: deftypevr
-#: doc/guix.texi:22464
+#: doc/guix.texi:28063
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean enable-commit-graph?"
 msgstr "{paramètre de @code{cgit-configuration}} boolean enable-commit-graph?"
 
 #. type: deftypevr
-#: doc/guix.texi:22468
+#: doc/guix.texi:28067
 msgid "Flag which, when set to @samp{#t}, will make cgit print an ASCII-art commit history graph to the left of the commit messages in the repository log page."
 msgstr "Drapeau qui, lorsqu'il vaut @samp{#t}, fera afficher un historique en ASCII-art à gauche des messages de commit dans la page de log du dépôt."
 
 #. type: deftypevr
-#: doc/guix.texi:22473
+#: doc/guix.texi:28072
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean enable-filter-overrides?"
 msgstr "{paramètre de @code{cgit-configuration}} boolean enable-filter-overrides?"
 
 #. type: deftypevr
-#: doc/guix.texi:22476
+#: doc/guix.texi:28075
 msgid "Flag which, when set to @samp{#t}, allows all filter settings to be overridden in repository-specific cgitrc files."
 msgstr "Drapeau qui, lorsqu'il vaut @samp{#t}, permet à tous les paramètres de filtrage d'être modifiés dans des fichiers cgitrc spécifiques au dépôt."
 
 #. type: deftypevr
-#: doc/guix.texi:22481
+#: doc/guix.texi:28080
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean enable-follow-links?"
 msgstr "{paramètre de @code{cgit-configuration}} boolean enable-follow-links?"
 
 #. type: deftypevr
-#: doc/guix.texi:22484
+#: doc/guix.texi:28083
 msgid "Flag which, when set to @samp{#t}, allows users to follow a file in the log view."
 msgstr "Drapeau qui, s'il vaut @samp{#t}, permet aux utilisateurs de suivre un fichier dans la vue « log »."
 
 #. type: deftypevr
-#: doc/guix.texi:22489
+#: doc/guix.texi:28088
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean enable-http-clone?"
 msgstr "{paramètre de @code{cgit-configuration}} boolean enable-http-clone?"
 
 #. type: deftypevr
-#: doc/guix.texi:22492
+#: doc/guix.texi:28091
 msgid "If set to @samp{#t}, cgit will act as an dumb HTTP endpoint for Git clones."
 msgstr "Si la valeur est @samp{#t}, cgit agira comme un point d'accès HTTP idiot pour les clones Git."
 
 #. type: deftypevr
-#: doc/guix.texi:22497
+#: doc/guix.texi:28096
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean enable-index-links?"
 msgstr "{paramètre de @code{cgit-configuration}} boolean enable-index-links?"
 
 #. type: deftypevr
-#: doc/guix.texi:22500
+#: doc/guix.texi:28099
 msgid "Flag which, when set to @samp{#t}, will make cgit generate extra links \"summary\", \"commit\", \"tree\" for each repo in the repository index."
 msgstr "Drapeau qui, s'il vaut @samp{#t}, fera générer des liens « résumé », « commit » et « arborescence » supplémentaires poru chaque dépôt dans l'index des dépôts."
 
 #. type: deftypevr
-#: doc/guix.texi:22505
+#: doc/guix.texi:28104
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean enable-index-owner?"
 msgstr "{paramètre de @code{cgit-configuration}} boolean enable-index-owner?"
 
 #. type: deftypevr
-#: doc/guix.texi:22508
+#: doc/guix.texi:28107
 msgid "Flag which, when set to @samp{#t}, will make cgit display the owner of each repo in the repository index."
 msgstr "Drapeau qui, s'il vaut @samp{#t}, fera afficher le propriétaire de chaque dépôt dans l'index des dépôts."
 
 #. type: deftypevr
-#: doc/guix.texi:22513
+#: doc/guix.texi:28112
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean enable-log-filecount?"
 msgstr "{paramètre de @code{cgit-configuration}} boolean enable-log-filecount?"
 
 #. type: deftypevr
-#: doc/guix.texi:22516
+#: doc/guix.texi:28115
 msgid "Flag which, when set to @samp{#t}, will make cgit print the number of modified files for each commit on the repository log page."
 msgstr "Drapeau qui, s'il vaut @samp{#t}, fera afficher à cgit le nombre de fichiers modifiés pour chaque commit sur la page de log du dépôt."
 
 #. type: deftypevr
-#: doc/guix.texi:22521
+#: doc/guix.texi:28120
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean enable-log-linecount?"
 msgstr "{paramètre de @code{cgit-configuration}} boolean enable-log-linecount?"
 
 #. type: deftypevr
-#: doc/guix.texi:22524
+#: doc/guix.texi:28123
 msgid "Flag which, when set to @samp{#t}, will make cgit print the number of added and removed lines for each commit on the repository log page."
 msgstr "Drapeau qui, s'il vaut @samp{#t}, fera afficher à cgit le nombre de lignes ajoutées et enlevées pour chaque commit de la page de log du dépôt."
 
 #. type: deftypevr
-#: doc/guix.texi:22529
+#: doc/guix.texi:28128
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean enable-remote-branches?"
 msgstr "{paramètre de @code{cgit-configuration}} boolean enable-remote-branches?"
 
 #. type: deftypevr
-#: doc/guix.texi:22532 doc/guix.texi:23056
+#: doc/guix.texi:28131 doc/guix.texi:28655
 msgid "Flag which, when set to @code{#t}, will make cgit display remote branches in the summary and refs views."
 msgstr "Drapeau qui, s'il vaut @samp{#t}, fera afficher les branches distantes dans les vues du résumé et des références."
 
 #. type: deftypevr
-#: doc/guix.texi:22537
+#: doc/guix.texi:28136
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean enable-subject-links?"
 msgstr "{paramètre de @code{cgit-configuration}} boolean enable-subject-links?"
 
 #. type: deftypevr
-#: doc/guix.texi:22541
+#: doc/guix.texi:28140
 msgid "Flag which, when set to @code{1}, will make cgit use the subject of the parent commit as link text when generating links to parent commits in commit view."
 msgstr "Drapeau qui, s'il vaut @samp{1}, fera utiliser à cgit le sujet du commit parent comme texte du lien lors de la génération des liens vers les commits parents dans la vue des commits."
 
 #. type: deftypevr
-#: doc/guix.texi:22546
+#: doc/guix.texi:28145
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean enable-html-serving?"
 msgstr "{paramètre de @code{cgit-configuration}} boolean enable-html-serving?"
 
 #. type: deftypevr
-#: doc/guix.texi:22550
+#: doc/guix.texi:28149
 msgid "Flag which, when set to @samp{#t}, will make cgit use the subject of the parent commit as link text when generating links to parent commits in commit view."
 msgstr "Drapeau qui, s'il vaut @samp{#t}, fera utiliser à cgit l esujet du commit parent comme texte du lien lors de la génération des liens vers le commit parent dans la vue des commits."
 
 #. type: deftypevr
-#: doc/guix.texi:22555
+#: doc/guix.texi:28154
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean enable-tree-linenumbers?"
 msgstr "{paramètre de @code{cgit-configuration}} boolean enable-tree-linenumbers?"
 
 #. type: deftypevr
-#: doc/guix.texi:22558
+#: doc/guix.texi:28157
 msgid "Flag which, when set to @samp{#t}, will make cgit generate linenumber links for plaintext blobs printed in the tree view."
 msgstr "Drapeau qui, s'il vaut @samp{#t}, fera générer à cgit des liens vers le numéro de ligne pour les blobs en texte brut affichés dans la vue de l'arborescence."
 
 #. type: deftypevr
-#: doc/guix.texi:22563
+#: doc/guix.texi:28162
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean enable-git-config?"
 msgstr "{paramètre de @code{cgit-configuration}} boolean enable-git-config?"
 
 #. type: deftypevr
-#: doc/guix.texi:22566
+#: doc/guix.texi:28165
 msgid "Flag which, when set to @samp{#f}, will allow cgit to use Git config to set any repo specific settings."
 msgstr "Drapeau qui, s'il vaut @samp{#t}, permettra à cgit d'utiliser la configuration Git pour spécifier des paramètres spécifiques au dépôt."
 
 #. type: deftypevr
-#: doc/guix.texi:22571
+#: doc/guix.texi:28170
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} file-object favicon"
 msgstr "{paramètre de @code{cgit-configuration}} file-object favicon"
 
 #. type: deftypevr
-#: doc/guix.texi:22573
+#: doc/guix.texi:28172
 msgid "URL used as link to a shortcut icon for cgit."
 msgstr "URL utilisée comme lien vers un icône pour cgit."
 
 #. type: deftypevr
-#: doc/guix.texi:22575
+#: doc/guix.texi:28174
 msgid "Defaults to @samp{\"/favicon.ico\"}."
 msgstr "La valeur par défaut est @samp{\"/favicon.ico\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:22578
+#: doc/guix.texi:28177
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string footer"
 msgstr "{paramètre de @code{cgit-configuration}} string footer"
 
 #. type: deftypevr
-#: doc/guix.texi:22582
+#: doc/guix.texi:28181
 msgid "The content of the file specified with this option will be included verbatim at the bottom of all pages (i.e.@: it replaces the standard \"generated by...\"@: message)."
 msgstr "Le contenu du fichier spécifié avec cette option sera inclus directement au bas de toutes les pages (c.-à-d.@: qu'il remplace le message « généré par …@: » générique)."
 
 #. type: deftypevr
-#: doc/guix.texi:22587
+#: doc/guix.texi:28186
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string head-include"
 msgstr "{paramètre de @code{cgit-configuration}} string head-include"
 
 #. type: deftypevr
-#: doc/guix.texi:22590
+#: doc/guix.texi:28189
 msgid "The content of the file specified with this option will be included verbatim in the HTML HEAD section on all pages."
 msgstr "Le contenu du fichier spécifié dans cette option sera inclus directement dans la section HEAD HTML de toutes les pages."
 
 #. type: deftypevr
-#: doc/guix.texi:22595
+#: doc/guix.texi:28194
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string header"
 msgstr "{paramètre de @code{cgit-configuration}} string header"
 
 #. type: deftypevr
-#: doc/guix.texi:22598
+#: doc/guix.texi:28197
 msgid "The content of the file specified with this option will be included verbatim at the top of all pages."
 msgstr "Le contenu du fichier spécifié avec cette option sera inclus directement au début de toutes les pages."
 
 #. type: deftypevr
-#: doc/guix.texi:22603
+#: doc/guix.texi:28202
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} file-object include"
 msgstr "{paramètre de @code{cgit-configuration}} file-object include"
 
 #. type: deftypevr
-#: doc/guix.texi:22606
+#: doc/guix.texi:28205
 msgid "Name of a configfile to include before the rest of the current config- file is parsed."
 msgstr "Nom d'un fichier de configuration à inclure avant que le reste du fichier de configuration actuel ne soit analysé."
 
 #. type: deftypevr
-#: doc/guix.texi:22611
+#: doc/guix.texi:28210
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string index-header"
 msgstr "{paramètre de @code{cgit-configuration}} string index-header"
 
 #. type: deftypevr
-#: doc/guix.texi:22614
+#: doc/guix.texi:28213
 msgid "The content of the file specified with this option will be included verbatim above the repository index."
 msgstr "Le contenu du fichier spécifié avec cette option sera inclus directement au dessus de l'index des dépôts."
 
 #. type: deftypevr
-#: doc/guix.texi:22619
+#: doc/guix.texi:28218
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string index-info"
 msgstr "{paramètre de @code{cgit-configuration}} string index-info"
 
 #. type: deftypevr
-#: doc/guix.texi:22622
+#: doc/guix.texi:28221
 msgid "The content of the file specified with this option will be included verbatim below the heading on the repository index page."
 msgstr "Le contenu du fichier spécifié avec cette option sera inclus directement en dessous de l'en-tête sur la page d'index du dépôt."
 
 #. type: deftypevr
-#: doc/guix.texi:22627
+#: doc/guix.texi:28226
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean local-time?"
 msgstr "{paramètre de @code{cgit-configuration}} boolean local-time?"
 
 #. type: deftypevr
-#: doc/guix.texi:22630
+#: doc/guix.texi:28229
 msgid "Flag which, if set to @samp{#t}, makes cgit print commit and tag times in the servers timezone."
 msgstr "Drapeau qui, s'il vaut @samp{#t}, fera afficher à cgit l'heure et la date de commit et de tag dans le fuseau horaire du serveur."
 
 #. type: deftypevr
-#: doc/guix.texi:22635
+#: doc/guix.texi:28234
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} file-object logo"
 msgstr "{paramètre de @code{cgit-configuration}} file-object logo"
 
 #. type: deftypevr
-#: doc/guix.texi:22638
+#: doc/guix.texi:28237
 msgid "URL which specifies the source of an image which will be used as a logo on all cgit pages."
 msgstr "URL qui spécifie la source d'une image utilisé comme logo sur toutes les pages cgit."
 
 #. type: deftypevr
-#: doc/guix.texi:22640
+#: doc/guix.texi:28239
 msgid "Defaults to @samp{\"/share/cgit/cgit.png\"}."
 msgstr "La valeur par défaut est @samp{\"/share/cgit/cgit.png\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:22643
+#: doc/guix.texi:28242
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string logo-link"
 msgstr "{paramètre de @code{cgit-configuration}} string logo-link"
 
 #. type: deftypevr
-#: doc/guix.texi:22645 doc/guix.texi:23102
+#: doc/guix.texi:28244 doc/guix.texi:28701
 msgid "URL loaded when clicking on the cgit logo image."
 msgstr "URL chargée lors du clic sur l'image du logo de cgit."
 
 #. type: deftypevr
-#: doc/guix.texi:22650
+#: doc/guix.texi:28249
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} file-object owner-filter"
 msgstr "{paramètre de @code{cgit-configuration}} file-object owner-filter"
 
 #. type: deftypevr
-#: doc/guix.texi:22653
+#: doc/guix.texi:28252
 msgid "Command which will be invoked to format the Owner column of the main page."
 msgstr "Commande qui sera invoquée pour formater la colonne propriétaire sur la page principale."
 
 #. type: deftypevr
-#: doc/guix.texi:22658
+#: doc/guix.texi:28257
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer max-atom-items"
 msgstr "{paramètre de @code{cgit-configuration}} integer max-atom-items"
 
 #. type: deftypevr
-#: doc/guix.texi:22660
+#: doc/guix.texi:28259
 msgid "Number of items to display in atom feeds view."
 msgstr "Nombre d'éléments à afficher dans la vue des flux atom."
 
 #. type: deftypevr
-#: doc/guix.texi:22662 doc/guix.texi:22897 doc/guix.texi:22905
-#: doc/guix.texi:22913
+#: doc/guix.texi:28261 doc/guix.texi:28496 doc/guix.texi:28504
+#: doc/guix.texi:28512
 msgid "Defaults to @samp{10}."
 msgstr "La valeur par défaut est @samp{10}."
 
 #. type: deftypevr
-#: doc/guix.texi:22665
+#: doc/guix.texi:28264
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer max-commit-count"
 msgstr "{paramètre de @code{cgit-configuration}} integer max-commit-count"
 
 #. type: deftypevr
-#: doc/guix.texi:22667
+#: doc/guix.texi:28266
 msgid "Number of entries to list per page in \"log\" view."
 msgstr "Nombre d'éléments à lister par page dans la vue « log »."
 
 #. type: deftypevr
-#: doc/guix.texi:22669 doc/guix.texi:22684
+#: doc/guix.texi:28268 doc/guix.texi:28283
 msgid "Defaults to @samp{50}."
 msgstr "La valeur par défaut est @samp{50}."
 
 #. type: deftypevr
-#: doc/guix.texi:22672
+#: doc/guix.texi:28271
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer max-message-length"
 msgstr "{paramètre de @code{cgit-configuration}} integer max-message-length"
 
 #. type: deftypevr
-#: doc/guix.texi:22674
+#: doc/guix.texi:28273
 msgid "Number of commit message characters to display in \"log\" view."
 msgstr "Nombre caractères de messages de commit à afficher dans la vue « log »."
 
 #. type: deftypevr
-#: doc/guix.texi:22676 doc/guix.texi:22692
+#: doc/guix.texi:28275 doc/guix.texi:28291
 msgid "Defaults to @samp{80}."
 msgstr "La valeur par défaut est @samp{80}."
 
 #. type: deftypevr
-#: doc/guix.texi:22679
+#: doc/guix.texi:28278
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer max-repo-count"
 msgstr "{paramètre de @code{cgit-configuration}} integer max-repo-count"
 
 #. type: deftypevr
-#: doc/guix.texi:22682
+#: doc/guix.texi:28281
 msgid "Specifies the number of entries to list per page on the repository index page."
 msgstr "Spécifie le nombre d'éléments à lister par page sur la page de l'index des dépôts."
 
 #. type: deftypevr
-#: doc/guix.texi:22687
+#: doc/guix.texi:28286
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer max-repodesc-length"
 msgstr "{paramètre de @code{cgit-configuration}} integer max-repodesc-length"
 
 #. type: deftypevr
-#: doc/guix.texi:22690
+#: doc/guix.texi:28289
 msgid "Specifies the maximum number of repo description characters to display on the repository index page."
 msgstr "Spécifie le nombre maximum de caractères de description de dépôts à afficher sur la page d'index des dépôts."
 
 #. type: deftypevr
-#: doc/guix.texi:22695
+#: doc/guix.texi:28294
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer max-blob-size"
 msgstr "{paramètre de @code{cgit-configuration}} integer max-blob-size"
 
 #. type: deftypevr
-#: doc/guix.texi:22697
+#: doc/guix.texi:28296
 msgid "Specifies the maximum size of a blob to display HTML for in KBytes."
 msgstr "Spécifie la taille maximale d'un blob pour lequel afficher du HTML en kilo-octets."
 
 #. type: deftypevr
-#: doc/guix.texi:22702
+#: doc/guix.texi:28301
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string max-stats"
 msgstr "{paramètre de @code{cgit-configuration}} string max-stats"
 
 #. type: deftypevr
-#: doc/guix.texi:22705
+#: doc/guix.texi:28304
 msgid "Maximum statistics period.  Valid values are @samp{week},@samp{month}, @samp{quarter} and @samp{year}."
 msgstr "Période de statistiques maximale.  Les valeurs valides sont @samp{week}, @samp{month}, @samp{quarter} et @samp{year}."
 
 #. type: deftypevr
-#: doc/guix.texi:22710
+#: doc/guix.texi:28309
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} mimetype-alist mimetype"
 msgstr "{paramètre de @code{cgit-configuration}} mimetype-alist mimetype"
 
 #. type: deftypevr
-#: doc/guix.texi:22712
+#: doc/guix.texi:28311
 msgid "Mimetype for the specified filename extension."
 msgstr "Type mime pour l'extension de fichier spécifiée."
 
 #. type: deftypevr
-#: doc/guix.texi:22716
+#: doc/guix.texi:28315
 msgid "Defaults to @samp{((gif \"image/gif\") (html \"text/html\") (jpg \"image/jpeg\") (jpeg \"image/jpeg\") (pdf \"application/pdf\") (png \"image/png\") (svg \"image/svg+xml\"))}."
 msgstr "La valeur par défaut est @samp{((gif \"image/gif\") (html \"text/html\") (jpg \"image/jpeg\") (jpeg \"image/jpeg\") (pdf \"application/pdf\") (png \"image/png\") (svg \"image/svg+xml\"))}."
 
 #. type: deftypevr
-#: doc/guix.texi:22719
+#: doc/guix.texi:28318
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} file-object mimetype-file"
 msgstr "{paramètre de @code{cgit-configuration}} file-object mimetype-file"
 
 #. type: deftypevr
-#: doc/guix.texi:22721
+#: doc/guix.texi:28320
 msgid "Specifies the file to use for automatic mimetype lookup."
 msgstr "Spécifie le fichier à utiliser pour la recherche automatique de type mime."
 
 #. type: deftypevr
-#: doc/guix.texi:22726
+#: doc/guix.texi:28325
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string module-link"
 msgstr "{paramètre de @code{cgit-configuration}} string module-link"
 
 #. type: deftypevr
-#: doc/guix.texi:22729
+#: doc/guix.texi:28328
 msgid "Text which will be used as the formatstring for a hyperlink when a submodule is printed in a directory listing."
 msgstr "Texte qui sera utilisé comme chaîne de formatage pour un lien hypertexte lorsqu'un sous-module est affiché dans la liste du répertoire."
 
 #. type: deftypevr
-#: doc/guix.texi:22734
+#: doc/guix.texi:28333
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean nocache?"
 msgstr "{paramètre de @code{cgit-configuration}} boolean nocache?"
 
 #. type: deftypevr
-#: doc/guix.texi:22736
+#: doc/guix.texi:28335
 msgid "If set to the value @samp{#t} caching will be disabled."
 msgstr "Si la valeur est @samp{#t}, le cache est désactivé."
 
 #. type: deftypevr
-#: doc/guix.texi:22741
+#: doc/guix.texi:28340
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean noplainemail?"
 msgstr "{paramètre de @code{cgit-configuration}} boolean noplainemail?"
 
 #. type: deftypevr
-#: doc/guix.texi:22744
+#: doc/guix.texi:28343
 msgid "If set to @samp{#t} showing full author email addresses will be disabled."
 msgstr "Si la valeur est @samp{#t}, l'affichage des adresse de courriel des auteurs sera désactivé."
 
 #. type: deftypevr
-#: doc/guix.texi:22749
+#: doc/guix.texi:28348
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean noheader?"
 msgstr "{paramètre de @code{cgit-configuration}} boolean noheader?"
 
 #. type: deftypevr
-#: doc/guix.texi:22752
+#: doc/guix.texi:28351
 msgid "Flag which, when set to @samp{#t}, will make cgit omit the standard header on all pages."
 msgstr "Drapeau qui, s'il vaut @samp{#t}, fera omettre à cgit l'en-tête standard sur toutes les pages."
 
 #. type: deftypevr
-#: doc/guix.texi:22757
+#: doc/guix.texi:28356
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} project-list project-list"
 msgstr "{paramètre de @code{cgit-configuration}} project-list project-list"
 
 #. type: deftypevr
-#: doc/guix.texi:22761
+#: doc/guix.texi:28360
 msgid "A list of subdirectories inside of @code{repository-directory}, relative to it, that should loaded as Git repositories.  An empty list means that all subdirectories will be loaded."
 msgstr "UNe liste de sous-répertoires dans @code{repository-directory}, relativement à lui, qui devrait être chargé comme des dépôts Git.  Une liste vide signifie que tous les sous-répertoires seront chargés."
 
 #. type: deftypevr
-#: doc/guix.texi:22766
+#: doc/guix.texi:28365
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} file-object readme"
 msgstr "{paramètre de @code{cgit-configuration}} file-object readme"
 
 #. type: deftypevr
-#: doc/guix.texi:22768
+#: doc/guix.texi:28367
 msgid "Text which will be used as default value for @code{cgit-repo-readme}."
 msgstr "Texte utilisé comme valeur par défaut pour @code{cgit-repo-readme}."
 
 #. type: deftypevr
-#: doc/guix.texi:22773
+#: doc/guix.texi:28372
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean remove-suffix?"
 msgstr "{paramètre de @code{cgit-configuration}} boolean remove-suffix?"
 
 #. type: deftypevr
-#: doc/guix.texi:22777
+#: doc/guix.texi:28376
 msgid "If set to @code{#t} and @code{repository-directory} is enabled, if any repositories are found with a suffix of @code{.git}, this suffix will be removed for the URL and name."
 msgstr "Si la valeur est @code{#t} et que @code{repository-directory} est activé, si un dépôt avec un suffixe de @code{.git} est trouvé, ce suffixe sera supprimé de l'URL et du nom."
 
 #. type: deftypevr
-#: doc/guix.texi:22782
+#: doc/guix.texi:28381
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer renamelimit"
 msgstr "{paramètre de @code{cgit-configuration}} integer renamelimit"
 
 #. type: deftypevr
-#: doc/guix.texi:22784
+#: doc/guix.texi:28383
 msgid "Maximum number of files to consider when detecting renames."
 msgstr "Nombre maximum de fichiers à considérer lors de la détection des renommages."
 
 #. type: deftypevr
-#: doc/guix.texi:22789
+#: doc/guix.texi:28388
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string repository-sort"
 msgstr "{paramètre de @code{cgit-configuration}} string repository-sort"
 
 #. type: deftypevr
-#: doc/guix.texi:22791
+#: doc/guix.texi:28390
 msgid "The way in which repositories in each section are sorted."
 msgstr "La manière dont les dépôt de chaque section sont rangés."
 
 #. type: deftypevr
-#: doc/guix.texi:22796
+#: doc/guix.texi:28395
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} robots-list robots"
 msgstr "{paramètre de @code{cgit-configuration}} robots-list robots"
 
 #. type: deftypevr
-#: doc/guix.texi:22798
+#: doc/guix.texi:28397
 msgid "Text used as content for the @code{robots} meta-tag."
 msgstr "Texte utilisé comme contenu du méta-attribut @code{robots}."
 
 #. type: deftypevr
-#: doc/guix.texi:22800
+#: doc/guix.texi:28399
 msgid "Defaults to @samp{(\"noindex\" \"nofollow\")}."
 msgstr "La valeur par défaut est @samp{(\"noindex\" \"nofollow\")}."
 
 #. type: deftypevr
-#: doc/guix.texi:22803
+#: doc/guix.texi:28402
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string root-desc"
 msgstr "{paramètre de @code{cgit-configuration}} string root-desc"
 
 #. type: deftypevr
-#: doc/guix.texi:22805
+#: doc/guix.texi:28404
 msgid "Text printed below the heading on the repository index page."
 msgstr "Texte affiché en dessous de l'en-tête de la page d'index des dépôts."
 
 #. type: deftypevr
-#: doc/guix.texi:22807
+#: doc/guix.texi:28406
 msgid "Defaults to @samp{\"a fast webinterface for the git dscm\"}."
 msgstr "La valeur par défaut est @samp{\"a fast webinterface for the git dscm\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:22810
+#: doc/guix.texi:28409
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string root-readme"
 msgstr "{paramètre de @code{cgit-configuration}} string root-readme"
 
 #. type: deftypevr
-#: doc/guix.texi:22813
-msgid "The content of the file specified with this option will be included verbatim below thef \"about\" link on the repository index page."
+#: doc/guix.texi:28412
+msgid "The content of the file specified with this option will be included verbatim below the ``about'' link on the repository index page."
 msgstr "Le contenu du fichier spécifié avec cette option sera inclus directement en dessous du lien « à propos » sur la page d'index du dépôt."
 
 #. type: deftypevr
-#: doc/guix.texi:22818
+#: doc/guix.texi:28417
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string root-title"
 msgstr "{paramètre de @code{cgit-configuration}} string root-title"
 
 #. type: deftypevr
-#: doc/guix.texi:22820
+#: doc/guix.texi:28419
 msgid "Text printed as heading on the repository index page."
 msgstr "Texte affiché sur la page d'index des dépôts."
 
 #. type: deftypevr
-#: doc/guix.texi:22825
+#: doc/guix.texi:28424
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean scan-hidden-path"
 msgstr "{paramètre de @code{cgit-configuration}} boolean scan-hidden-path"
 
 #. type: deftypevr
-#: doc/guix.texi:22831
-msgid "If set to @samp{#t} and repository-directory is enabled, repository-directory will recurse into directories whose name starts with a period.  Otherwise, repository-directory will stay away from such directories, considered as \"hidden\".  Note that this does not apply to the \".git\" directory in non-bare repos."
-msgstr "Si la valeur est @samp{#t} et que repository-directory est activé, repository-directory recherchera de manière récursive dans les répertoires dont le nom commence par un point.  Sinon, repository-directory restera hors de ces répertoires, considérés comme « cachés ».  Remarquez que cela ne s'applique pas au répertoire « .git » dans le dépôts."
+#: doc/guix.texi:28430
+msgid "If set to @samp{#t} and repository-directory is enabled, repository-directory will recurse into directories whose name starts with a period.  Otherwise, repository-directory will stay away from such directories, considered as ``hidden''.  Note that this does not apply to the @file{.git} directory in non-bare repos."
+msgstr "Si la valeur est @samp{#t} et que repository-directory est activé, repository-directory recherchera de manière récursive dans les répertoires dont le nom commence par un point.  Sinon, repository-directory restera hors de ces répertoires, considérés comme « cachés ».  Remarquez que cela ne s'applique pas au répertoire « .git » dans le dépôts non bruts."
 
 #. type: deftypevr
-#: doc/guix.texi:22836
+#: doc/guix.texi:28435
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} list snapshots"
 msgstr "{paramètre de @code{cgit-configuration}} list snapshots"
 
 #. type: deftypevr
-#: doc/guix.texi:22839
+#: doc/guix.texi:28438
 msgid "Text which specifies the default set of snapshot formats that cgit generates links for."
 msgstr "Texte qui spécifie l'ensemble des formats d'archives par défaut pour lesquelles cgit générera un lien."
 
 #. type: deftypevr
-#: doc/guix.texi:22844
+#: doc/guix.texi:28443
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} repository-directory repository-directory"
 msgstr "{paramètre de @code{cgit-configuration}} repository-directory repository-directory"
 
 #. type: deftypevr
-#: doc/guix.texi:22847
+#: doc/guix.texi:28446
 msgid "Name of the directory to scan for repositories (represents @code{scan-path})."
 msgstr "Nom du répertoire à scanner pour trouver les dépôts (représente @code{scan-path})."
 
 #. type: deftypevr
-#: doc/guix.texi:22849
+#: doc/guix.texi:28448
 msgid "Defaults to @samp{\"/srv/git\"}."
 msgstr "La valeur par défaut est @samp{\"/srv/git\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:22852
+#: doc/guix.texi:28451
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string section"
 msgstr "{paramètre de @code{cgit-configuration}} string section"
 
 #. type: deftypevr
-#: doc/guix.texi:22855 doc/guix.texi:23171
+#: doc/guix.texi:28454 doc/guix.texi:28770
 msgid "The name of the current repository section - all repositories defined after this option will inherit the current section name."
 msgstr "Le nom de la section de dépôts actuelle — tous les dépôts définis après ce point hériterons du nom de section actuel."
 
 #. type: deftypevr
-#: doc/guix.texi:22860
+#: doc/guix.texi:28459
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string section-sort"
 msgstr "{paramètre de @code{cgit-configuration}} string section-sort"
 
 #. type: deftypevr
-#: doc/guix.texi:22863
+#: doc/guix.texi:28462
 msgid "Flag which, when set to @samp{1}, will sort the sections on the repository listing by name."
 msgstr "Drapeau qui, s'il vaut @samp{1}, triera les sections dans la liste des dépôts par nom."
 
 #. type: deftypevr
-#: doc/guix.texi:22868
+#: doc/guix.texi:28467
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer section-from-path"
 msgstr "{paramètre de @code{cgit-configuration}} integer section-from-path"
 
 #. type: deftypevr
-#: doc/guix.texi:22871
+#: doc/guix.texi:28470
 msgid "A number which, if defined prior to repository-directory, specifies how many path elements from each repo path to use as a default section name."
 msgstr "Un nombre qui, s'il est défini avant repository-directory, spécifier combien d'éléments de chemin de chaque chemin de dépôt utiliser comme nom de section par défaut."
 
 #. type: deftypevr
-#: doc/guix.texi:22876
+#: doc/guix.texi:28475
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean side-by-side-diffs?"
 msgstr "{paramètre de @code{cgit-configuration}} boolean side-by-side-diffs?"
 
 #. type: deftypevr
-#: doc/guix.texi:22879
+#: doc/guix.texi:28478
 msgid "If set to @samp{#t} shows side-by-side diffs instead of unidiffs per default."
 msgstr "Si la valeur est @samp{#t}, afficher des diffs côte à côte au lieu des unidiffs par défaut."
 
 #. type: deftypevr
-#: doc/guix.texi:22884
+#: doc/guix.texi:28483
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} file-object source-filter"
 msgstr "{paramètre de @code{cgit-configuration}} file-object source-filter"
 
 #. type: deftypevr
-#: doc/guix.texi:22887
+#: doc/guix.texi:28486
 msgid "Specifies a command which will be invoked to format plaintext blobs in the tree view."
 msgstr "Spécifie une commande qui sera invoquée pour formater les blobs en texte brut dans la vue de l'arborescence."
 
 #. type: deftypevr
-#: doc/guix.texi:22892
+#: doc/guix.texi:28491
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer summary-branches"
 msgstr "{paramètre de @code{cgit-configuration}} integer summary-branches"
 
 #. type: deftypevr
-#: doc/guix.texi:22895
-msgid "Specifies the number of branches to display in the repository \"summary\" view."
-msgstr "Spécifie le nombre de branches à afficher dans la vue de résumé du dépôt."
+#: doc/guix.texi:28494
+msgid "Specifies the number of branches to display in the repository ``summary'' view."
+msgstr "Spécifie le nombre de branches à afficher dans la vue « résumé » du dépôt."
 
 #. type: deftypevr
-#: doc/guix.texi:22900
+#: doc/guix.texi:28499
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer summary-log"
 msgstr "{paramètre de @code{cgit-configuration}} integer summary-log"
 
 #. type: deftypevr
-#: doc/guix.texi:22903
-msgid "Specifies the number of log entries to display in the repository \"summary\" view."
-msgstr "Spécifie le nombre d'élément du journal à afficher dans la vue résumé du dépôt."
+#: doc/guix.texi:28502
+msgid "Specifies the number of log entries to display in the repository ``summary'' view."
+msgstr "Spécifie le nombre d'élément du journal à afficher dans la vue « résumé » du dépôt."
 
 #. type: deftypevr
-#: doc/guix.texi:22908
+#: doc/guix.texi:28507
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer summary-tags"
 msgstr "{paramètre de @code{cgit-configuration}} integer summary-tags"
 
 #. type: deftypevr
-#: doc/guix.texi:22911
-msgid "Specifies the number of tags to display in the repository \"summary\" view."
-msgstr "Spécifie le nombre de tags à afficher dans la vue résumé du dépôt."
+#: doc/guix.texi:28510
+msgid "Specifies the number of tags to display in the repository ``summary'' view."
+msgstr "Spécifie le nombre de tags à afficher dans la vue « résumé » du dépôt."
 
 #. type: deftypevr
-#: doc/guix.texi:22916
+#: doc/guix.texi:28515
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string strict-export"
 msgstr "{paramètre de @code{cgit-configuration}} string strict-export"
 
 #. type: deftypevr
-#: doc/guix.texi:22919
+#: doc/guix.texi:28518
 msgid "Filename which, if specified, needs to be present within the repository for cgit to allow access to that repository."
 msgstr "Nom de fichier qui, s'il est spécifié, doit être présent dans le dépôt pour que cgit accorde l'accès à ce dépôt."
 
 #. type: deftypevr
-#: doc/guix.texi:22924
+#: doc/guix.texi:28523
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string virtual-root"
 msgstr "{paramètre de @code{cgit-configuration}} string virtual-root"
 
 #. type: deftypevr
-#: doc/guix.texi:22926
+#: doc/guix.texi:28525
 msgid "URL which, if specified, will be used as root for all cgit links."
 msgstr "URL qui, si elle est spécifiée, sera utilisée comme racine pour tous les liens cgit."
 
 #. type: deftypevr
-#: doc/guix.texi:22928
+#: doc/guix.texi:28527
 msgid "Defaults to @samp{\"/\"}."
 msgstr "La valeur par défaut est @samp{\"/\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:22931
+#: doc/guix.texi:28530
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} repository-cgit-configuration-list repositories"
 msgstr "{paramètre de @code{cgit-configuration}} repository-cgit-configuration-list repositories"
 
 #. type: deftypevr
-#: doc/guix.texi:22933
+#: doc/guix.texi:28532
 msgid "A list of @dfn{cgit-repo} records to use with config."
 msgstr "Une liste d'enregistrements @dfn{cgit-repo} à utiliser avec config."
 
 #. type: deftypevr
-#: doc/guix.texi:22937
+#: doc/guix.texi:28536
 msgid "Available @code{repository-cgit-configuration} fields are:"
 msgstr "Les champs de @code{repository-cgit-configuration} disponibles sont :"
 
 #. type: deftypevr
-#: doc/guix.texi:22938
+#: doc/guix.texi:28537
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-list snapshots"
 msgstr "{paramètre de @code{repository-cgit-configuration}} repo-list snapshots"
 
 #. type: deftypevr
-#: doc/guix.texi:22941
+#: doc/guix.texi:28540
 msgid "A mask of snapshot formats for this repo that cgit generates links for, restricted by the global @code{snapshots} setting."
 msgstr "Un masque de formats d'archives pour ce dépôt pour lesquelles cgit générera un lien, restreint par le paramètre @code{snapshots} global."
 
 #. type: deftypevr
-#: doc/guix.texi:22946
+#: doc/guix.texi:28545
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-file-object source-filter"
 msgstr "{paramètre de @code{repository-cgit-configuration}} repo-file-object source-filter"
 
 #. type: deftypevr
-#: doc/guix.texi:22948
+#: doc/guix.texi:28547
 msgid "Override the default @code{source-filter}."
 msgstr "Modifie le @code{source-filter} par défaut."
 
 #. type: deftypevr
-#: doc/guix.texi:22953
+#: doc/guix.texi:28552
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-string url"
 msgstr "{paramètre de @code{repository-cgit-configuration}} repo-string url"
 
 #. type: deftypevr
-#: doc/guix.texi:22955
+#: doc/guix.texi:28554
 msgid "The relative URL used to access the repository."
 msgstr "URL relative utilisée pour accéder au dépôt."
 
 #. type: deftypevr
-#: doc/guix.texi:22960
+#: doc/guix.texi:28559
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-file-object about-filter"
 msgstr "{paramètre de @code{repository-cgit-configuration}} repo-file-object about-filter"
 
 #. type: deftypevr
-#: doc/guix.texi:22962
+#: doc/guix.texi:28561
 msgid "Override the default @code{about-filter}."
 msgstr "Modifie le paramètre @code{about-filter} par défaut."
 
 #. type: deftypevr
-#: doc/guix.texi:22967
+#: doc/guix.texi:28566
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-string branch-sort"
 msgstr "{paramètre de @code{repository-cgit-configuration}} repo-string branch-sort"
 
 #. type: deftypevr
-#: doc/guix.texi:22970
+#: doc/guix.texi:28569
 msgid "Flag which, when set to @samp{age}, enables date ordering in the branch ref list, and when set to @samp{name} enables ordering by branch name."
 msgstr "Drapeau qui, s'il vaut @samp{age}, active le tri par date dans la liste des branches, et lorsqu'il vaut @samp{name}, le tri par nom."
 
 #. type: deftypevr
-#: doc/guix.texi:22975
+#: doc/guix.texi:28574
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-list clone-url"
 msgstr "{paramètre de @code{repository-cgit-configuration}} repo-list clone-url"
 
 #. type: deftypevr
-#: doc/guix.texi:22977
+#: doc/guix.texi:28576
 msgid "A list of URLs which can be used to clone repo."
 msgstr "Un liste d'URL qui peuvent être utilisées pour cloner ce dépôt."
 
 #. type: deftypevr
-#: doc/guix.texi:22982
+#: doc/guix.texi:28581
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-file-object commit-filter"
 msgstr "{paramètre de @code{repository-cgit-configuration}} repo-file-object commit-filter"
 
 #. type: deftypevr
-#: doc/guix.texi:22984
+#: doc/guix.texi:28583
 msgid "Override the default @code{commit-filter}."
 msgstr "Modifie le paramètre @code{commit-filter} par défaut."
 
 #. type: deftypevr
-#: doc/guix.texi:22989
+#: doc/guix.texi:28588
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-string commit-sort"
 msgstr "{paramètre de @code{repository-cgit-configuration}} repo-string commit-sort"
 
 #. type: deftypevr
-#: doc/guix.texi:22998
+#: doc/guix.texi:28597
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-string defbranch"
 msgstr "{paramètre de @code{repository-cgit-configuration}} repo-string defbranch"
 
 #. type: deftypevr
-#: doc/guix.texi:23003
-msgid "The name of the default branch for this repository.  If no such branch exists in the repository, the first branch name (when sorted) is used as default instead.  By default branch pointed to by HEAD, or \"master\" if there is no suitable HEAD."
+#: doc/guix.texi:28602
+msgid "The name of the default branch for this repository.  If no such branch exists in the repository, the first branch name (when sorted) is used as default instead.  By default branch pointed to by HEAD, or ``master'' if there is no suitable HEAD."
 msgstr "Le nom de la branche par défaut de ce dépôt.  Si cette branche n'existe pas dans le dépôt, le premier nom de branche (trié) sera utilisé par défaut.  Par défaut la branche pointée par HEAD, ou « master » s'il n'y a pas de HEAD convenable."
 
 #. type: deftypevr
-#: doc/guix.texi:23008
+#: doc/guix.texi:28607
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-string desc"
 msgstr "{paramètre de @code{repository-cgit-configuration}} repo-string desc"
 
 #. type: deftypevr
-#: doc/guix.texi:23010
+#: doc/guix.texi:28609
 msgid "The value to show as repository description."
 msgstr "La valeur à afficher comme description du dépôt."
 
 #. type: deftypevr
-#: doc/guix.texi:23015
+#: doc/guix.texi:28614
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-string homepage"
 msgstr "{paramètre de @code{repository-cgit-configuration}} repo-string homepage"
 
 #. type: deftypevr
-#: doc/guix.texi:23017
+#: doc/guix.texi:28616
 msgid "The value to show as repository homepage."
 msgstr "La valeur à afficher comme page d'accueil du dépôt."
 
 #. type: deftypevr
-#: doc/guix.texi:23022
+#: doc/guix.texi:28621
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-file-object email-filter"
 msgstr "{paramètre de @code{repository-cgit-configuration}} repo-file-object email-filter"
 
 #. type: deftypevr
-#: doc/guix.texi:23024
+#: doc/guix.texi:28623
 msgid "Override the default @code{email-filter}."
 msgstr "Modifie le paramètre @code{email-filter} par défaut."
 
 #. type: deftypevr
-#: doc/guix.texi:23029
+#: doc/guix.texi:28628
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} maybe-repo-boolean enable-commit-graph?"
 msgstr "{paramètre de @code{repository-cgit-configuration}} maybe-repo-boolean enable-commit-graph?"
 
 #. type: deftypevr
-#: doc/guix.texi:23032
+#: doc/guix.texi:28631
 msgid "A flag which can be used to disable the global setting @code{enable-commit-graph?}."
 msgstr "Un drapeau qui peut être utilisé pour désactiver le paramètre @code{enable-commit-graph?} global."
 
 #. type: deftypevr
-#: doc/guix.texi:23037
+#: doc/guix.texi:28636
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} maybe-repo-boolean enable-log-filecount?"
 msgstr "{paramètre de @code{repository-cgit-configuration}} maybe-repo-boolean enable-log-filecount?"
 
 #. type: deftypevr
-#: doc/guix.texi:23040
+#: doc/guix.texi:28639
 msgid "A flag which can be used to disable the global setting @code{enable-log-filecount?}."
 msgstr "Un drapeau qui peut être utilisé pour désactiver le paramètre @code{enable-log-filecount?} global."
 
 #. type: deftypevr
-#: doc/guix.texi:23045
+#: doc/guix.texi:28644
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} maybe-repo-boolean enable-log-linecount?"
 msgstr "{paramètre de @code{repository-cgit-configuration}} maybe-repo-boolean enable-log-linecount?"
 
 #. type: deftypevr
-#: doc/guix.texi:23048
+#: doc/guix.texi:28647
 msgid "A flag which can be used to disable the global setting @code{enable-log-linecount?}."
 msgstr "Un drapeau qui peut être utilisé pour désactiver le paramètre @code{enable-log-linecount?} global."
 
 #. type: deftypevr
-#: doc/guix.texi:23053
+#: doc/guix.texi:28652
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} maybe-repo-boolean enable-remote-branches?"
 msgstr "{paramètre de @code{repository-cgit-configuration}} maybe-repo-boolean enable-remote-branches?"
 
 #. type: deftypevr
-#: doc/guix.texi:23061
+#: doc/guix.texi:28660
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} maybe-repo-boolean enable-subject-links?"
 msgstr "{paramètre de @code{repository-cgit-configuration}} maybe-repo-boolean enable-subject-links?"
 
 #. type: deftypevr
-#: doc/guix.texi:23064
+#: doc/guix.texi:28663
 msgid "A flag which can be used to override the global setting @code{enable-subject-links?}."
 msgstr "Un drapeau qui peut être utilisé pour modifier le paramètre @code{enable-subject-links?} global."
 
 #. type: deftypevr
-#: doc/guix.texi:23069
+#: doc/guix.texi:28668
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} maybe-repo-boolean enable-html-serving?"
 msgstr "{paramètre de @code{repository-cgit-configuration}} maybe-repo-boolean enable-html-serving?"
 
 #. type: deftypevr
-#: doc/guix.texi:23072
+#: doc/guix.texi:28671
 msgid "A flag which can be used to override the global setting @code{enable-html-serving?}."
 msgstr "Un drapeau qui peut être utilisé pour modifier le paramètre @code{enable-html-serving?} global."
 
 #. type: deftypevr
-#: doc/guix.texi:23077
+#: doc/guix.texi:28676
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-boolean hide?"
 msgstr "{paramètre de @code{repository-cgit-configuration}} repo-boolean hide?"
 
 #. type: deftypevr
-#: doc/guix.texi:23080
+#: doc/guix.texi:28679
 msgid "Flag which, when set to @code{#t}, hides the repository from the repository index."
 msgstr "Drapeau qui, s'il vaut @code{#t}, cache le dépôt de l'index des dépôts."
 
 #. type: deftypevr
-#: doc/guix.texi:23085
+#: doc/guix.texi:28684
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-boolean ignore?"
 msgstr "{paramètre de @code{repository-cgit-configuration}} repo-boolean ignore?"
 
 #. type: deftypevr
-#: doc/guix.texi:23087
+#: doc/guix.texi:28686
 msgid "Flag which, when set to @samp{#t}, ignores the repository."
 msgstr "Drapeau qui, s'il vaut @code{#t},  ignore le dépôt."
 
 #. type: deftypevr
-#: doc/guix.texi:23092
+#: doc/guix.texi:28691
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-file-object logo"
 msgstr "{paramètre de @code{repository-cgit-configuration}} repo-file-object logo"
 
 #. type: deftypevr
-#: doc/guix.texi:23095
+#: doc/guix.texi:28694
 msgid "URL which specifies the source of an image which will be used as a logo on this repo’s pages."
 msgstr "URL qui spécifie la source d'une image qui sera utilisée comme logo sur les pages de ce dépôt."
 
 #. type: deftypevr
-#: doc/guix.texi:23100
+#: doc/guix.texi:28699
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-string logo-link"
 msgstr "{paramètre de @code{repository-cgit-configuration}} repo-string logo-link"
 
 #. type: deftypevr
-#: doc/guix.texi:23107
+#: doc/guix.texi:28706
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-file-object owner-filter"
 msgstr "{paramètre de @code{repository-cgit-configuration}} repo-file-object owner-filter"
 
 #. type: deftypevr
-#: doc/guix.texi:23109
+#: doc/guix.texi:28708
 msgid "Override the default @code{owner-filter}."
 msgstr "Modifie le paramètre @code{owner-filter} par défaut."
 
 #. type: deftypevr
-#: doc/guix.texi:23114
+#: doc/guix.texi:28713
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-string module-link"
 msgstr "{paramètre de @code{repository-cgit-configuration}} repo-string module-link"
 
 #. type: deftypevr
-#: doc/guix.texi:23118
+#: doc/guix.texi:28717
 msgid "Text which will be used as the formatstring for a hyperlink when a submodule is printed in a directory listing.  The arguments for the formatstring are the path and SHA1 of the submodule commit."
 msgstr "Texte qui sera utilisé comme chaîne de formatage pour un lien hypertexte lorsqu'un sous-module est affiché dans une liste de fichiers.  Les arguments pour la chaîne de formatage sont le chemin et le SHA1 du commit du sous-module."
 
 #. type: deftypevr
-#: doc/guix.texi:23123
+#: doc/guix.texi:28722
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} module-link-path module-link-path"
 msgstr "{paramètre de @code{repository-cgit-configuration}} module-link-path module-link-path"
 
 #. type: deftypevr
-#: doc/guix.texi:23127
+#: doc/guix.texi:28726
 msgid "Text which will be used as the formatstring for a hyperlink when a submodule with the specified subdirectory path is printed in a directory listing."
 msgstr "Texte qui sera utilisé comme chaîne de formatage lorsqu'un sous-module avec un chemin spécifié sera affiché dans une liste de fichiers."
 
 #. type: deftypevr
-#: doc/guix.texi:23132
+#: doc/guix.texi:28731
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-string max-stats"
 msgstr "{paramètre de @code{repository-cgit-configuration}} repo-string max-stats"
 
 #. type: deftypevr
-#: doc/guix.texi:23134
+#: doc/guix.texi:28733
 msgid "Override the default maximum statistics period."
 msgstr "Modifie la période de statistique maximale par défaut."
 
 #. type: deftypevr
-#: doc/guix.texi:23139
+#: doc/guix.texi:28738
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-string name"
 msgstr "{paramètre de @code{repository-cgit-configuration}} repo-string name"
 
 #. type: deftypevr
-#: doc/guix.texi:23141
+#: doc/guix.texi:28740
 msgid "The value to show as repository name."
 msgstr "La valeur à afficher comme nom de dépôt."
 
 #. type: deftypevr
-#: doc/guix.texi:23146
+#: doc/guix.texi:28745
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-string owner"
 msgstr "{paramètre de @code{repository-cgit-configuration}} repo-string owner"
 
 #. type: deftypevr
-#: doc/guix.texi:23148
+#: doc/guix.texi:28747
 msgid "A value used to identify the owner of the repository."
 msgstr "Une valeur utilisée pour identifier le propriétaire du dépôt."
 
 #. type: deftypevr
-#: doc/guix.texi:23153
+#: doc/guix.texi:28752
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-string path"
 msgstr "{paramètre de @code{repository-cgit-configuration}} repo-string path"
 
 #. type: deftypevr
-#: doc/guix.texi:23155
+#: doc/guix.texi:28754
 msgid "An absolute path to the repository directory."
 msgstr "Un chemin absolu vers le répertoire du dépôt."
 
 #. type: deftypevr
-#: doc/guix.texi:23160
+#: doc/guix.texi:28759
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-string readme"
 msgstr "{paramètre de @code{repository-cgit-configuration}} repo-string readme"
 
 #. type: deftypevr
-#: doc/guix.texi:23163
-msgid "A path (relative to repo) which specifies a file to include verbatim as the \"About\" page for this repo."
+#: doc/guix.texi:28762
+msgid "A path (relative to repo) which specifies a file to include verbatim as the ``About'' page for this repo."
 msgstr "Un chemin (relatif au dépôt) qui spécifie un fichier à inclure directement comme page « À propos » pour ce dépôt."
 
 #. type: deftypevr
-#: doc/guix.texi:23168
+#: doc/guix.texi:28767
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-string section"
 msgstr "{paramètre de @code{repository-cgit-configuration}} repo-string section"
 
 #. type: deftypevr
-#: doc/guix.texi:23176
+#: doc/guix.texi:28775
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-list extra-options"
 msgstr "{paramètre de @code{repository-cgit-configuration}} repo-list extra-options"
 
 #. type: deftypevr
-#: doc/guix.texi:23178 doc/guix.texi:23187
+#: doc/guix.texi:28777 doc/guix.texi:28786
 msgid "Extra options will be appended to cgitrc file."
 msgstr "Options supplémentaires ajoutées à la fin du fichier cgitrc."
 
 #. type: deftypevr
-#: doc/guix.texi:23185
+#: doc/guix.texi:28784
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} list extra-options"
 msgstr "{paramètre de @code{cgit-configuration}} list extra-options"
 
 #. type: Plain text
-#: doc/guix.texi:23199
+#: doc/guix.texi:28798
 msgid "However, it could be that you just want to get a @code{cgitrc} up and running.  In that case, you can pass an @code{opaque-cgit-configuration} as a record to @code{cgit-service-type}.  As its name indicates, an opaque configuration does not have easy reflective capabilities."
 msgstr "Cependant, vous pourriez vouloir simplement récupérer un @code{cgitrc} et l'utiliser.  Dans ce cas, vous pouvez passer un @code{opaque-cgit-configuration} comme enregistrement à @code{cgit-service-type}.  Comme son nom l'indique, une configuration opaque n'a pas de capacité de réflexion facile."
 
 #. type: Plain text
-#: doc/guix.texi:23201
+#: doc/guix.texi:28800
 msgid "Available @code{opaque-cgit-configuration} fields are:"
 msgstr "Les champs de @code{opaque-cgit-configuration} disponibles sont :"
 
 #. type: deftypevr
-#: doc/guix.texi:23202
+#: doc/guix.texi:28801
 #, no-wrap
 msgid "{@code{opaque-cgit-configuration} parameter} package cgit"
 msgstr "{paramètre de @code{opaque-cgit-configuration}} package cgit"
 
 #. type: deftypevr
-#: doc/guix.texi:23204
+#: doc/guix.texi:28803
 msgid "The cgit package."
 msgstr "Le paquet cgit."
 
 #. type: deftypevr
-#: doc/guix.texi:23206
+#: doc/guix.texi:28805
 #, no-wrap
 msgid "{@code{opaque-cgit-configuration} parameter} string string"
 msgstr "{paramètre de @code{opaque-cgit-configuration}} string string"
 
 #. type: deftypevr
-#: doc/guix.texi:23208
+#: doc/guix.texi:28807
 msgid "The contents of the @code{cgitrc}, as a string."
 msgstr "Le contenu de @code{cgitrc}, en tant que chaîne de caractère."
 
 #. type: Plain text
-#: doc/guix.texi:23212
+#: doc/guix.texi:28811
 msgid "For example, if your @code{cgitrc} is just the empty string, you could instantiate a cgit service like this:"
 msgstr "Par exemple, si votre @code{cgitrc} est juste la chaîne vide, vous pouvez instancier un service cgit ainsi :"
 
-#. type: example
-#: doc/guix.texi:23217
+#. type: lisp
+#: doc/guix.texi:28816
 #, no-wrap
 msgid ""
 "(service cgit-service-type\n"
@@ -43079,40 +53490,40 @@ msgstr ""
 "          (cgitrc \"\")))\n"
 
 #. type: subsubheading
-#: doc/guix.texi:23219
+#: doc/guix.texi:28818
 #, no-wrap
 msgid "Gitolite Service"
 msgstr "Service Gitolite"
 
 #. type: cindex
-#: doc/guix.texi:23221
+#: doc/guix.texi:28820
 #, no-wrap
 msgid "Gitolite service"
-msgstr "service Gitolite"
+msgstr "Service Gitolite"
 
 #. type: cindex
-#: doc/guix.texi:23222
+#: doc/guix.texi:28821
 #, no-wrap
 msgid "Git, hosting"
 msgstr "Git, hébergement"
 
 #. type: Plain text
-#: doc/guix.texi:23225
+#: doc/guix.texi:28824
 msgid "@uref{https://gitolite.com/gitolite/, Gitolite} is a tool for hosting Git repositories on a central server."
 msgstr "@uref{https://gitolite.com/gitolite/, Gitolite} est un outil pour héberger des dépôts Git sur un serveur central."
 
 #. type: Plain text
-#: doc/guix.texi:23228
+#: doc/guix.texi:28827
 msgid "Gitolite can handle multiple repositories and users, and supports flexible configuration of the permissions for the users on the repositories."
 msgstr "Gitolite peut gérer plusieurs dépôts et utilisateurs et supporte une configuration flexible des permissions pour les utilisateurs sur ces dépôts."
 
 #. type: Plain text
-#: doc/guix.texi:23231
+#: doc/guix.texi:28830
 msgid "The following example will configure Gitolite using the default @code{git} user, and the provided SSH public key."
 msgstr "L'exemple suivant configure Gitolite en utilisant l'utilisateur @code{git} par défaut et la clef SSH fournie."
 
-#. type: example
-#: doc/guix.texi:23238
+#. type: lisp
+#: doc/guix.texi:28837
 #, no-wrap
 msgid ""
 "(service gitolite-service-type\n"
@@ -43128,300 +53539,1337 @@ msgstr ""
 "                           \"ssh-rsa AAAA... guix@@example.com\"))))\n"
 
 #. type: Plain text
-#: doc/guix.texi:23243
+#: doc/guix.texi:28842
 msgid "Gitolite is configured through a special admin repository which you can clone, for example, if you setup Gitolite on @code{example.com}, you would run the following command to clone the admin repository."
 msgstr "Gitolite est configuré via un dépôt d'administration spécial que vous pouvez cloner.  Par exemple, si vous hébergez Gitolite sur @code{example.com}, vous pouvez lancer la commande suivante pour cloner le dépôt d'administration."
 
 #. type: example
-#: doc/guix.texi:23246
+#: doc/guix.texi:28845
 #, no-wrap
 msgid "git clone git@@example.com:gitolite-admin\n"
 msgstr "git clone git@@example.com:gitolite-admin\n"
 
 #. type: Plain text
-#: doc/guix.texi:23252
+#: doc/guix.texi:28851
 msgid "When the Gitolite service is activated, the provided @code{admin-pubkey} will be inserted in to the @file{keydir} directory in the gitolite-admin repository.  If this results in a change in the repository, it will be committed using the message ``gitolite setup by GNU Guix''."
 msgstr "Lorsque le service Gitolite est activé, la clef @code{admin-pubkey} fournie sera insérée dans le répertoire @file{keydir} du dépôt gitolite-admin.  Si cela change le dépôt, un commit sera effectué avec le message « gitolite setup by GNU Guix »."
 
 #. type: deftp
-#: doc/guix.texi:23253
+#: doc/guix.texi:28852
 #, no-wrap
 msgid "{Data Type} gitolite-configuration"
 msgstr "{Type de données} gitolite-configuration"
 
 #. type: deftp
-#: doc/guix.texi:23255
+#: doc/guix.texi:28854
 msgid "Data type representing the configuration for @code{gitolite-service-type}."
 msgstr "Type de données représentant la configuration de @code{gitolite-service-type}."
 
 #. type: item
-#: doc/guix.texi:23257
+#: doc/guix.texi:28856
 #, no-wrap
 msgid "@code{package} (default: @var{gitolite})"
 msgstr "@code{package} (par défaut : @var{gitolite})"
 
 #. type: table
-#: doc/guix.texi:23259
+#: doc/guix.texi:28858
 msgid "Gitolite package to use."
 msgstr "Le paquet Gitolite à utiliser."
 
 #. type: item
-#: doc/guix.texi:23260
+#: doc/guix.texi:28859
 #, no-wrap
 msgid "@code{user} (default: @var{git})"
 msgstr "@code{user} (par défaut : @var{git})"
 
 #. type: table
-#: doc/guix.texi:23263
+#: doc/guix.texi:28862
 msgid "User to use for Gitolite.  This will be user that you use when accessing Gitolite over SSH."
 msgstr "Utilisateur pour utiliser Gitolite.  Cela sera l'utilisateur à utiliser pour accéder à Gitolite par SSH."
 
 #. type: item
-#: doc/guix.texi:23264
+#: doc/guix.texi:28863
 #, no-wrap
 msgid "@code{group} (default: @var{git})"
 msgstr "@code{group} (par défaut : @var{git})"
 
 #. type: table
-#: doc/guix.texi:23266
+#: doc/guix.texi:28865
 msgid "Group to use for Gitolite."
 msgstr "Groupe à utiliser pour Gitolite."
 
 #. type: item
-#: doc/guix.texi:23267
+#: doc/guix.texi:28866
 #, no-wrap
 msgid "@code{home-directory} (default: @var{\"/var/lib/gitolite\"})"
 msgstr "@code{home-directory} (par défaut : @var{\"/var/lib/gitolite\"})"
 
 #. type: table
-#: doc/guix.texi:23269
+#: doc/guix.texi:28868
 msgid "Directory in which to store the Gitolite configuration and repositories."
 msgstr "Répertoire dans lequel stocker la configuration et les dépôts de Gitolite."
 
 #. type: item
-#: doc/guix.texi:23270
+#: doc/guix.texi:28869
 #, no-wrap
 msgid "@code{rc-file} (default: @var{(gitolite-rc-file)})"
 msgstr "@code{rc-file} (par défaut : @var{(gitolite-rc-file)})"
 
 #. type: table
-#: doc/guix.texi:23273
+#: doc/guix.texi:28872
 msgid "A ``file-like'' object (@pxref{G-Expressions, file-like objects}), representing the configuration for Gitolite."
 msgstr "Un objet « simili-fichier » (@pxref{G-Expressions, file-like objects}) représentant la configuration de Gitolite."
 
 #. type: item
-#: doc/guix.texi:23274
+#: doc/guix.texi:28873
 #, no-wrap
 msgid "@code{admin-pubkey} (default: @var{#f})"
 msgstr "@code{admin-pubkey} (par défaut : @var{#f})"
 
 #. type: table
-#: doc/guix.texi:23278
+#: doc/guix.texi:28877
 msgid "A ``file-like'' object (@pxref{G-Expressions, file-like objects}) used to setup Gitolite.  This will be inserted in to the @file{keydir} directory within the gitolite-admin repository."
 msgstr "Un objet « simili-fichier » (@pxref{G-Expressions, file-like objects}) utilisé pour paramétrer Gitolite.  Il sera inséré dans le répertoire @file{keydir} dans le dépôt gitolite-admin."
 
 #. type: table
-#: doc/guix.texi:23280
+#: doc/guix.texi:28879
 msgid "To specify the SSH key as a string, use the @code{plain-file} function."
 msgstr "Pour spécifier la clef SSH comme chaîne de caractère, utilisez la fonction @code{plain-file}."
 
-#. type: example
-#: doc/guix.texi:23283
+#. type: lisp
+#: doc/guix.texi:28882
 #, no-wrap
 msgid "(plain-file \"yourname.pub\" \"ssh-rsa AAAA... guix@@example.com\")\n"
 msgstr "(plain-file \"yourname.pub\" \"ssh-rsa AAAA... guix@@example.com\")\n"
 
 #. type: deftp
-#: doc/guix.texi:23288
+#: doc/guix.texi:28887
 #, no-wrap
 msgid "{Data Type} gitolite-rc-file"
 msgstr "{Type de données} gitolite-rc-file"
 
 #. type: deftp
-#: doc/guix.texi:23290
+#: doc/guix.texi:28889
 msgid "Data type representing the Gitolite RC file."
 msgstr "Type de données représentant le fichier RC de Gitolite."
 
 #. type: item
-#: doc/guix.texi:23292
+#: doc/guix.texi:28891
 #, no-wrap
 msgid "@code{umask} (default: @code{#o0077})"
 msgstr "@code{umask} (par défaut : @code{#o0077})"
 
 #. type: table
-#: doc/guix.texi:23295
+#: doc/guix.texi:28894
 msgid "This controls the permissions Gitolite sets on the repositories and their contents."
 msgstr "Cela contrôle les permissions que Gitolite propose sur les dépôts et leur contenu."
 
 #. type: table
-#: doc/guix.texi:23299
+#: doc/guix.texi:28898
 msgid "A value like @code{#o0027} will give read access to the group used by Gitolite (by default: @code{git}). This is necessary when using Gitolite with software like cgit or gitweb."
 msgstr "Une valeur comme @code{#o0027} donnera accès en lecture au groupe utilisé par Gitolite (par défaut : @code{git}).  Cel aest nécessaire lorsque vous utilise Gitolite avec un logiciel comme cgit ou gitweb."
 
 #. type: item
-#: doc/guix.texi:23300
+#: doc/guix.texi:28899
 #, no-wrap
 msgid "@code{git-config-keys} (default: @code{\"\"})"
 msgstr "@code{git-config-keys} (par défaut : @code{\"\"})"
 
 #. type: table
-#: doc/guix.texi:23303
-msgid "Gitolite allows you to set git config values using the \"config\" keyword. This setting allows control over the config keys to accept."
-msgstr "Gitolite vous permet de modifier les configurations git avec le mot-clef « config ».  Ce paramètre vous permet de contrôler les clefs de configuration acceptables."
+#: doc/guix.texi:28902
+msgid "Gitolite allows you to set git config values using the @samp{config} keyword. This setting allows control over the config keys to accept."
+msgstr "Gitolite vous permet de modifier les configurations git avec le mot-clef @samp{config}.  Ce paramètre vous permet de contrôler les clefs de configuration acceptables."
 
 #. type: item
-#: doc/guix.texi:23304
+#: doc/guix.texi:28903
 #, no-wrap
 msgid "@code{roles} (default: @code{'((\"READERS\" . 1) (\"WRITERS\" . ))})"
 msgstr "@code{roles} (par défaut : @code{'((\"READERS\" . 1) (\"WRITERS\" . ))})"
 
 #. type: table
-#: doc/guix.texi:23306
+#: doc/guix.texi:28905
 msgid "Set the role names allowed to be used by users running the perms command."
 msgstr "Indique les noms des rôles qui peuvent être utilisés par les utilisateurs avec la commande perms."
 
 #. type: item
-#: doc/guix.texi:23307
+#: doc/guix.texi:28906
 #, no-wrap
 msgid "@code{enable} (default: @code{'(\"help\" \"desc\" \"info\" \"perms\" \"writable\" \"ssh-authkeys\" \"git-config\" \"daemon\" \"gitweb\")})"
 msgstr "@code{enable} (par défaut : @code{'(\"help\" \"desc\" \"info\" \"perms\" \"writable\" \"ssh-authkeys\" \"git-config\" \"daemon\" \"gitweb\")})"
 
 #. type: table
-#: doc/guix.texi:23309
+#: doc/guix.texi:28908
 msgid "This setting controls the commands and features to enable within Gitolite."
 msgstr "Ce paramètre contrôle les commandes et les fonctionnalités à activer dans Gitolite."
 
 #. type: subsubheading
-#: doc/guix.texi:23317
+#: doc/guix.texi:28916
 #, no-wrap
 msgid "The Battle for Wesnoth Service"
 msgstr "Le service de la Bataille pour Wesnoth"
 
 #. type: cindex
-#: doc/guix.texi:23318
+#: doc/guix.texi:28917
 #, no-wrap
 msgid "wesnothd"
 msgstr "wesnothd"
 
 #. type: Plain text
-#: doc/guix.texi:23322
+#: doc/guix.texi:28921
 msgid "@uref{https://wesnoth.org, The Battle for Wesnoth} is a fantasy, turn based tactical strategy game, with several single player campaigns, and multiplayer games (both networked and local)."
 msgstr "@uref{https://wesnoth.org, La Bataille pour Wesnoth} est un jeu de stratégie en tour par tour dans un univers fantastique, avec plusieurs campagnes solo et des parties multijoueurs (en réseau et en local)."
 
 #. type: defvar
-#: doc/guix.texi:23323
+#: doc/guix.texi:28922
 #, no-wrap
 msgid "{Scheme Variable} wesnothd-service-type"
 msgstr "{Variable Scheme} wesnothd-service-type"
 
 #. type: defvar
-#: doc/guix.texi:23327
+#: doc/guix.texi:28926
 msgid "Service type for the wesnothd service.  Its value must be a @code{wesnothd-configuration} object.  To run wesnothd in the default configuration, instantiate it as:"
 msgstr "Type de service pour le service wesnothd.  Sa valeur doit être un objet @code{wesnothd-configuration}.  Pour lancer wesnothd avec la configuration par défaut, instanciez-le ainsi :"
 
-#. type: example
-#: doc/guix.texi:23330
+#. type: lisp
+#: doc/guix.texi:28929
 #, no-wrap
 msgid "(service wesnothd-service-type)\n"
 msgstr "(service wesnothd-service-type)\n"
 
 #. type: deftp
-#: doc/guix.texi:23333
+#: doc/guix.texi:28932
 #, no-wrap
 msgid "{Data Type} wesnothd-configuration"
 msgstr "{Type de données} wesnothd-configuration"
 
 #. type: deftp
-#: doc/guix.texi:23335
+#: doc/guix.texi:28934
 msgid "Data type representing the configuration of @command{wesnothd}."
 msgstr "Type de donées représentant la configuration de @command{wesnothd}."
 
 #. type: item
-#: doc/guix.texi:23337
+#: doc/guix.texi:28936
 #, no-wrap
 msgid "@code{package} (default: @code{wesnoth-server})"
 msgstr "@code{package} (par défaut : @code{wesnoth-server})"
 
 #. type: table
-#: doc/guix.texi:23339
+#: doc/guix.texi:28938
 msgid "The wesnoth server package to use."
 msgstr "Le paquet de serveur de wesnoth à utiliser."
 
 #. type: item
-#: doc/guix.texi:23340
+#: doc/guix.texi:28939
 #, no-wrap
 msgid "@code{port} (default: @code{15000})"
 msgstr "@code{port} (par défaut : @code{15000})"
 
 #. type: table
-#: doc/guix.texi:23342
+#: doc/guix.texi:28941
 msgid "The port to bind the server to."
 msgstr "Le pour sur lequel lier le serveur."
 
 #. type: cindex
-#: doc/guix.texi:23348
+#: doc/guix.texi:28947
+#, no-wrap
+msgid "pam-mount"
+msgstr "pam-mount"
+
+#. type: Plain text
+#: doc/guix.texi:28952
+msgid "The @code{(gnu services pam-mount)} module provides a service allowing users to mount volumes when they log in.  It should be able to mount any volume format supported by the system."
+msgstr "Le module @code{(gnu services pam-mount)} fournit un service qui permet de monter des volumes à la connexion de l'utilisateur·ice.  Il peut monter n'importe quel format de volume pris en charge par le système."
+
+#. type: defvar
+#: doc/guix.texi:28953
+#, no-wrap
+msgid "{Scheme Variable} pam-mount-service-type"
+msgstr "{Variable Scheme} pam-mount-service-type"
+
+#. type: defvar
+#: doc/guix.texi:28955
+msgid "Service type for PAM Mount support."
+msgstr "Type de service pour la prise en charge de PAM Mount."
+
+#. type: deftp
+#: doc/guix.texi:28957
+#, no-wrap
+msgid "{Data Type} pam-mount-configuration"
+msgstr "{Type de données} pam-mount-configuration"
+
+#. type: deftp
+#: doc/guix.texi:28959
+msgid "Data type representing the configuration of PAM Mount."
+msgstr "Type de données représentant la configuration de PAM Mount."
+
+#. type: code{#1}
+#: doc/guix.texi:28963
+#, no-wrap
+msgid "rules"
+msgstr "rules"
+
+#. type: table
+#: doc/guix.texi:28966
+msgid "The configuration rules that will be used to generate @file{/etc/security/pam_mount.conf.xml}."
+msgstr "Les règles de configuration utilisées pour générer @file{/etc/security/pam_mount.conf.xml}."
+
+#. type: table
+#: doc/guix.texi:28970
+msgid "The configuration rules are SXML elements (@pxref{SXML,,, guile, GNU Guile Reference Manual}), and the default ones don't mount anything for anyone at login:"
+msgstr "Les règles de configuration sont des éléments SXML (@pxref{SXML,,, guile, GNU Guile Reference Manual}), et les valeurs par défaut ne montent rien pour personne à la connexion :"
+
+#. type: lisp
+#: doc/guix.texi:28985
+#, no-wrap
+msgid ""
+"`((debug (@@ (enable \"0\")))\n"
+"  (mntoptions (@@ (allow ,(string-join\n"
+"                          '(\"nosuid\" \"nodev\" \"loop\"\n"
+"                            \"encryption\" \"fsck\" \"nonempty\"\n"
+"                            \"allow_root\" \"allow_other\")\n"
+"                          \",\"))))\n"
+"  (mntoptions (@@ (require \"nosuid,nodev\")))\n"
+"  (logout (@@ (wait \"0\")\n"
+"             (hup \"0\")\n"
+"             (term \"no\")\n"
+"             (kill \"no\")))\n"
+"  (mkmountpoint (@@ (enable \"1\")\n"
+"                   (remove \"true\"))))\n"
+msgstr ""
+"`((debug (@@ (enable \"0\")))\n"
+"  (mntoptions (@@ (allow ,(string-join\n"
+"                          '(\"nosuid\" \"nodev\" \"loop\"\n"
+"                            \"encryption\" \"fsck\" \"nonempty\"\n"
+"                            \"allow_root\" \"allow_other\")\n"
+"                          \",\"))))\n"
+"  (mntoptions (@@ (require \"nosuid,nodev\")))\n"
+"  (logout (@@ (wait \"0\")\n"
+"             (hup \"0\")\n"
+"             (term \"no\")\n"
+"             (kill \"no\")))\n"
+"  (mkmountpoint (@@ (enable \"1\")\n"
+"                   (remove \"true\"))))\n"
+
+#. type: table
+#: doc/guix.texi:28991
+msgid "Some @code{volume} elements must be added to automatically mount volumes at login.  Here's an example allowing the user @code{alice} to mount her encrypted @env{HOME} directory and allowing the user @code{bob} to mount the partition where he stores his data:"
+msgstr "Certains éléments de @code{volume} doivent être ajoutés pour automatiquement monter des volumes à la connexion.  voici un exemple qui permet à l'utilisatrice @code{alice} de monter son répertoire @env{HOME} chiffré et permet à l'utilisateur @code{bob} de monter la partition où il stocke ses données :"
+
+#. type: lisp
+#: doc/guix.texi:29016
+#, no-wrap
+msgid ""
+"(define pam-mount-rules\n"
+"`((debug (@@ (enable \"0\")))\n"
+"            (volume (@@ (user \"alice\")\n"
+"                       (fstype \"crypt\")\n"
+"                       (path \"/dev/sda2\")\n"
+"                       (mountpoint \"/home/alice\")))\n"
+"            (volume (@@ (user \"bob\")\n"
+"                       (fstype \"auto\")\n"
+"                       (path \"/dev/sdb3\")\n"
+"                       (mountpoint \"/home/bob/data\")\n"
+"                       (options \"defaults,autodefrag,compress\")))\n"
+"            (mntoptions (@@ (allow ,(string-join\n"
+"                                    '(\"nosuid\" \"nodev\" \"loop\"\n"
+"                                      \"encryption\" \"fsck\" \"nonempty\"\n"
+"                                      \"allow_root\" \"allow_other\")\n"
+"                                    \",\"))))\n"
+"            (mntoptions (@@ (require \"nosuid,nodev\")))\n"
+"            (logout (@@ (wait \"0\")\n"
+"                       (hup \"0\")\n"
+"                       (term \"no\")\n"
+"                       (kill \"no\")))\n"
+"            (mkmountpoint (@@ (enable \"1\")\n"
+"                             (remove \"true\")))))\n"
+"\n"
+msgstr ""
+"(define pam-mount-rules\n"
+"`((debug (@@ (enable \"0\")))\n"
+"            (volume (@@ (user \"alice\")\n"
+"                       (fstype \"crypt\")\n"
+"                       (path \"/dev/sda2\")\n"
+"                       (mountpoint \"/home/alice\")))\n"
+"            (volume (@@ (user \"bob\")\n"
+"                       (fstype \"auto\")\n"
+"                       (path \"/dev/sdb3\")\n"
+"                       (mountpoint \"/home/bob/data\")\n"
+"                       (options \"defaults,autodefrag,compress\")))\n"
+"            (mntoptions (@@ (allow ,(string-join\n"
+"                                    '(\"nosuid\" \"nodev\" \"loop\"\n"
+"                                      \"encryption\" \"fsck\" \"nonempty\"\n"
+"                                      \"allow_root\" \"allow_other\")\n"
+"                                    \",\"))))\n"
+"            (mntoptions (@@ (require \"nosuid,nodev\")))\n"
+"            (logout (@@ (wait \"0\")\n"
+"                       (hup \"0\")\n"
+"                       (term \"no\")\n"
+"                       (kill \"no\")))\n"
+"            (mkmountpoint (@@ (enable \"1\")\n"
+"                             (remove \"true\")))))\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:29020
+#, no-wrap
+msgid ""
+"(service pam-mount-service-type\n"
+"         (pam-mount-configuration\n"
+"           (rules pam-mount-rules)))\n"
+msgstr ""
+"(service pam-mount-service-type\n"
+"         (pam-mount-configuration\n"
+"           (rules pam-mount-rules)))\n"
+
+#. type: table
+#: doc/guix.texi:29024
+msgid "The complete list of possible options can be found in the man page for @uref{http://pam-mount.sourceforge.net/pam_mount.conf.5.html, pam_mount.conf}."
+msgstr "La liste complète des options disponibles se trouve sur la page de manuel de @uref{http://pam-mount.sourceforge.net/pam_mount.conf.5.html, pam_mount.conf}."
+
+#. type: subsubheading
+#: doc/guix.texi:29031
+#, no-wrap
+msgid "Guix Build Coordinator"
+msgstr "Guix Build Coordinator"
+
+#. type: Plain text
+#: doc/guix.texi:29037
+msgid "The @uref{https://git.cbaines.net/guix/build-coordinator/,Guix Build Coordinator} aids in distributing derivation builds among machines running an @dfn{agent}.  The build daemon is still used to build the derivations, but the Guix Build Coordinator manages allocating builds and working with the results."
+msgstr "Le @uref{https://git.cbaines.net/guix/build-coordinator/,Guix Build Coordinator} aide à distribuer la construction de dérivations entre machines sur lesquelles tourne un @dfn{agent}.  Le démon de construction est toujours utilisé pour construire les dérivations, mais Guix Build Coordinator gère l'allocation des construction et des résultats."
+
+#. type: quotation
+#: doc/guix.texi:29042
+msgid "This service is considered experimental.  Configuration options may be changed in a backwards-incompatible manner, and not all features have been thorougly tested."
+msgstr "Ce service est expérimental.  Les options de configuration peuvent changer et être incompatibles, et tous les paramètres n'ont pas été testés."
+
+#. type: Plain text
+#: doc/guix.texi:29049
+msgid "The Guix Build Coordinator consists of one @dfn{coordinator}, and one or more connected @dfn{agent} processes. The coordinator process handles clients submitting builds, and allocating builds to agents. The agent processes talk to a build daemon to actually perform the builds, then send the results back to the coordinator."
+msgstr "Le coordinateur des constructions Guix consiste en un @dfn{coordinateur}, et un ou plus processus @dfn{agents} connectés.  Le coordinateur gère les clients qui soumettent des constructions, et alloue les constructions aux agents.  Les processus agents parlent au démon de construction pour effectuer les constructions, puis envoie les résultats au coordinateur."
+
+#. type: Plain text
+#: doc/guix.texi:29053
+msgid "There is a script to run the coordinator component of the Guix Build Coordinator, but the Guix service uses a custom Guile script instead, to provide better integration with G-expressions used in the configuration."
+msgstr "Il y a un script pour lancer le composant du coordinateur de Guix Build Coordinator, mais le service Guix utilise un script Guile personnalisé à la place, pour fournir une meilleure intégration avec les G-expressions utilisées dans la configuration."
+
+#. type: defvar
+#: doc/guix.texi:29054
+#, no-wrap
+msgid "{Scheme Variable} guix-build-coordinator-service-type"
+msgstr "{Variable Scheme} guix-build-coordinator-service-type"
+
+#. type: defvar
+#: doc/guix.texi:29057
+msgid "Service type for the Guix Build Coordinator.  Its value must be a @code{guix-build-coordinator-configuration} object."
+msgstr "Le type de service pour Guix Build Coordinator.  Sa valeur doit être un @code{guix-build-coordinator-configuration}."
+
+#. type: deftp
+#: doc/guix.texi:29059
+#, no-wrap
+msgid "{Data Type} guix-build-coordinator-configuration"
+msgstr "{Type de données} guix-build-coordinator-configuration"
+
+#. type: deftp
+#: doc/guix.texi:29061
+msgid "Data type representing the configuration of the Guix Build Coordinator."
+msgstr "Le type de données représentant la configuration de Guix Build Coordinator."
+
+#. type: item
+#: doc/guix.texi:29063 doc/guix.texi:29107 doc/guix.texi:29166
+#, no-wrap
+msgid "@code{package} (default: @code{guix-build-coordinator})"
+msgstr "@code{package} (par défaut : @code{guix-build-coordinator})"
+
+#. type: table
+#: doc/guix.texi:29065 doc/guix.texi:29109 doc/guix.texi:29168
+msgid "The Guix Build Coordinator package to use."
+msgstr "Le paquet Guix Build Coordinator à utiliser."
+
+#. type: item
+#: doc/guix.texi:29066
+#, no-wrap
+msgid "@code{user} (default: @code{\"guix-build-coordinator\"})"
+msgstr "@code{user} (par défaut : @code{\"guix-build-coordinator\"})"
+
+#. type: table
+#: doc/guix.texi:29068 doc/guix.texi:29112 doc/guix.texi:29171
+#: doc/guix.texi:29217
+msgid "The system user to run the service as."
+msgstr "L'utilisateur qui lance le service."
+
+#. type: item
+#: doc/guix.texi:29069
+#, no-wrap
+msgid "@code{group} (default: @code{\"guix-build-coordinator\"})"
+msgstr "@code{group} (par défaut : @code{\"guix-build-coordinator\"})"
+
+#. type: table
+#: doc/guix.texi:29071 doc/guix.texi:29220
+msgid "The system group to run the service as."
+msgstr "Le groupe système qui lance le service."
+
+#. type: item
+#: doc/guix.texi:29072
+#, no-wrap
+msgid "@code{database-uri-string} (default: @code{\"sqlite:///var/lib/guix-build-coordinator/guix_build_coordinator.db\"})"
+msgstr "@code{database-uri-string} (par défaut : @code{\"sqlite:///var/lib/guix-build-coordinator/guix_build_coordinator.db\"})"
+
+#. type: table
+#: doc/guix.texi:29074
+msgid "The URI to use for the database."
+msgstr "L'URI à utiliser pour la base de données."
+
+#. type: item
+#: doc/guix.texi:29075
+#, no-wrap
+msgid "@code{agent-communication-uri} (default: @code{\"http://0.0.0.0:8745\"})"
+msgstr "@code{agent-communication-uri} (par défaut : @code{\"http://0.0.0.0:8745\"})"
+
+#. type: table
+#: doc/guix.texi:29077
+msgid "The URI describing how to listen to requests from agent processes."
+msgstr "L'URI décrivant comment écouter les requêtes des processus agents."
+
+#. type: item
+#: doc/guix.texi:29078
+#, no-wrap
+msgid "@code{client-communication-uri} (default: @code{\"http://127.0.0.1:8746\"})"
+msgstr "@code{client-communication-uri} (par défaut : @code{\"http://127.0.0.1:8746\"})"
+
+#. type: table
+#: doc/guix.texi:29082
+msgid "The URI describing how to listen to requests from clients.  The client API allows submitting builds and currently isn't authenticated, so take care when configuring this value."
+msgstr "L'URI décrivant comme écouter les requêtes des clients.  L'API cliente permet de soumettre des constructions et n'est pas actuellement authentifiée, donc faites attention lors de la configuration de cette valeur."
+
+#. type: item
+#: doc/guix.texi:29083
+#, no-wrap
+msgid "@code{allocation-strategy} (default: @code{#~basic-build-allocation-strategy})"
+msgstr "@code{allocation-strategy} (par défaut : @code{#~basic-build-allocation-strategy})"
+
+#. type: table
+#: doc/guix.texi:29087
+msgid "A G-expression for the allocation strategy to be used.  This is a procedure that takes the datastore as an argument and populates the allocation plan in the database."
+msgstr "Une G-expression pour la stratégie d'allocation à utiliser.  C'est une procédure qui prend le stockage de données en argument et rempli le plan d'allocation dans la base de données."
+
+#. type: item
+#: doc/guix.texi:29088
+#, no-wrap
+msgid "@code{hooks} (default: @var{'()})"
+msgstr "@code{hooks} (par défaut : @var{'()})"
+
+#. type: table
+#: doc/guix.texi:29091
+msgid "An association list of hooks.  These provide a way to execute arbitrary code upon certain events, like a build result being processed."
+msgstr "Une liste d'association de crochets.  Ils fournissent une manière d'exécuter du code arbitraire en fonction d'évènements, comme le traitement des résultats des constructions."
+
+#. type: item
+#: doc/guix.texi:29092
+#, no-wrap
+msgid "@code{guile} (default: @code{guile-3.0-latest})"
+msgstr "@code{guile} (par défaut : @code{guile-3.0-latest})"
+
+#. type: table
+#: doc/guix.texi:29094
+msgid "The Guile package with which to run the Guix Build Coordinator."
+msgstr "Le paquet Guile à utiliser pour lancer Guix Build Coordinator."
+
+#. type: defvar
+#: doc/guix.texi:29098
+#, no-wrap
+msgid "{Scheme Variable} guix-build-coordinator-agent-service-type"
+msgstr "{Variable Scheme} guix-build-coordinator-agent-service-type"
+
+#. type: defvar
+#: doc/guix.texi:29101
+msgid "Service type for a Guix Build Coordinator agent.  Its value must be a @code{guix-build-coordinator-agent-configuration} object."
+msgstr "Le type de service pour un agent Guix Build Coordinator.  Sa valeur doit être un @code{guix-build-coordinator-agent-configuration}."
+
+#. type: deftp
+#: doc/guix.texi:29103
+#, no-wrap
+msgid "{Data Type} guix-build-coordinator-agent-configuration"
+msgstr "{Type de données} guix-build-coordinator-agent-configuration"
+
+#. type: deftp
+#: doc/guix.texi:29105
+msgid "Data type representing the configuration a Guix Build Coordinator agent."
+msgstr "Type de données représentant la configuration d'un agent Guix Build Coordinator."
+
+#. type: item
+#: doc/guix.texi:29110
+#, no-wrap
+msgid "@code{user} (default: @code{\"guix-build-coordinator-agent\"})"
+msgstr "@code{user} (par défaut : @code{\"guix-build-coordinator-agent\"})"
+
+#. type: item
+#: doc/guix.texi:29113 doc/guix.texi:29172
+#, no-wrap
+msgid "@code{coordinator} (default: @code{\"http://localhost:8745\"})"
+msgstr "@code{coordinator} (par défaut : @code{\"http://localhost:8745\"})"
+
+#. type: table
+#: doc/guix.texi:29115 doc/guix.texi:29174
+msgid "The URI to use when connecting to the coordinator."
+msgstr "L'URI à utiliser lors de la connexion au coordinateur."
+
+#. type: table
+#: doc/guix.texi:29120
+msgid "The UUID of the agent.  This should be generated by the coordinator process, stored in the coordinator database, and used by the intended agent."
+msgstr "L'UUID de l'agent.  Il devrait être généré par le processus du coordinateur, stocké dans la base du coordinateur et utilisé par l'agent prévu."
+
+#. type: table
+#: doc/guix.texi:29124
+msgid "The password to use when connecting to the coordinator.  A file to read the password from can also be specified, and this is more secure."
+msgstr "Le mot de passe à utiliser pour la connexion avec le coordinateur.  Un fichier où lire le mot de passe peut aussi être spécifié, et c'est plus sécurisé."
+
+#. type: item
+#: doc/guix.texi:29125
+#, no-wrap
+msgid "@code{password-file} (default: @code{#f})"
+msgstr "@code{password-file} (par défaut : @code{#f})"
+
+#. type: table
+#: doc/guix.texi:29128
+msgid "A file containing the password to use when connecting to the coordinator."
+msgstr "Un fichier contenant le mot de passe à utiliser pour la connexion avec le coordinateur."
+
+#. type: item
+#: doc/guix.texi:29129
+#, no-wrap
+msgid "@code{systems} (default: @var{#f})"
+msgstr "@code{systems} (par défaut : @var{#f})"
+
+#. type: table
+#: doc/guix.texi:29132
+msgid "The systems for which this agent should fetch builds.  The agent process will use the current system it's running on as the default."
+msgstr "Les systèmes pour lesquels cet agent devrait récupérer les constructions.  Le processus de l'agent utilisera le système actuel comme valeur par défaut."
+
+#. type: item
+#: doc/guix.texi:29133
+#, no-wrap
+msgid "@code{max-parallel-builds} (default: @code{1})"
+msgstr "@code{max-parallel-builds} (par défaut : @code{1})"
+
+#. type: table
+#: doc/guix.texi:29135
+msgid "The number of builds to perform in parallel."
+msgstr "Le nombre de constructions qui peuvent tourner simultanément."
+
+#. type: item
+#: doc/guix.texi:29136
+#, no-wrap
+msgid "@code{derivation-substitute-urls} (default: @code{1})"
+msgstr "@code{derivation-substitute-urls} (par défaut : @code{1})"
+
+#. type: table
+#: doc/guix.texi:29139
+msgid "URLs from which to attempt to fetch substitutes for derivations, if the derivations aren't already available."
+msgstr "URL à partir desquelles essayer de récupérer les substituts pour les dérivations, si les dérivation ne sont pas déjà disponibles."
+
+#. type: item
+#: doc/guix.texi:29140
+#, no-wrap
+msgid "@code{non-derivation-substitute-urls} (default: @code{1})"
+msgstr "@code{non-derivation-substitute-urls} (par défaut : @code{1})"
+
+#. type: table
+#: doc/guix.texi:29143
+msgid "URLs from which to attempt to fetch substitutes for build inputs, if the input store items aren't already available."
+msgstr "URL à partir desquelles essayer de chercher les substituts pour les entrées des constructions, si les éléments du dépôt des entrées ne sont pas déjà disponibles."
+
+#. type: Plain text
+#: doc/guix.texi:29153
+msgid "The Guix Build Coordinator package contains a script to query an instance of the Guix Data Service for derivations to build, and then submit builds for those derivations to the coordinator.  The service type below assists in running this script.  This is an additional tool that may be useful when building derivations contained within an instance of the Guix Data Service."
+msgstr "Le paquet Guix Build Coordinator contient un script pour demander à une instance de Guix Data Service les dérivations à construire, puis pour soumettre les constructions de ces dérivations au coordinateur.  Le type de service ci-dessous vous aide à lancer ce script.  C'est un outil supplémentaire qui peut être utile lors de la construction de dérivations contenues dans une instance du Guix Data Service."
+
+#. type: defvar
+#: doc/guix.texi:29154
+#, no-wrap
+msgid "{Scheme Variable} guix-build-coordinator-queue-builds-service-type"
+msgstr "{Variable Scheme} guix-build-coordinator-queue-builds-service-type"
+
+#. type: defvar
+#: doc/guix.texi:29159
+msgid "Service type for the guix-build-coordinator-queue-builds-from-guix-data-service script.  Its value must be a @code{guix-build-coordinator-queue-builds-configuration} object."
+msgstr "Type de service pour le script guix-build-coordinator-queue-builds-from-guix-data-service.  Sa valeur doit être un objet @code{guix-build-coordinator-queue-builds-configuration}."
+
+#. type: deftp
+#: doc/guix.texi:29161
+#, no-wrap
+msgid "{Data Type} guix-build-coordinator-queue-builds-configuration"
+msgstr "{Type de données} guix-build-coordinator-queue-builds-configuration"
+
+#. type: deftp
+#: doc/guix.texi:29164
+msgid "Data type representing the options to the queue builds from guix data service script."
+msgstr "Le type de données représentant les options du script qui soumet les constructions à partir du guix data service."
+
+#. type: item
+#: doc/guix.texi:29169
+#, no-wrap
+msgid "@code{user} (default: @code{\"guix-build-coordinator-queue-builds\"})"
+msgstr "@code{user} (par défaut : @code{\"guix-build-coordinator-queue-builds\"})"
+
+#. type: item
+#: doc/guix.texi:29175
+#, no-wrap
+msgid "@code{systems} (default: @code{#f})"
+msgstr "@code{systems} (par défaut : @code{#f})"
+
+#. type: table
+#: doc/guix.texi:29177
+msgid "The systems for which to fetch derivations to build."
+msgstr "Les systèmes pour lesquels récupérer des dérivations à construire."
+
+#. type: item
+#: doc/guix.texi:29178
+#, no-wrap
+msgid "@code{systems-and-targets} (default: @code{#f})"
+msgstr "@code{systems-and-targets} (par défaut : @code{#f})"
+
+#. type: table
+#: doc/guix.texi:29181
+msgid "An association list of system and target pairs for which to fetch derivations to build."
+msgstr "Une liste d'association de paires de systèmes et de cibles pour lesquelles chercher des dérivations à construire."
+
+#. type: item
+#: doc/guix.texi:29182
+#, no-wrap
+msgid "@code{guix-data-service} (default: @code{\"https://data.guix.gnu.org\"})"
+msgstr "@code{guix-data-service} (par défaut : @code{\"https://data.guix.gnu.org\"})"
+
+#. type: table
+#: doc/guix.texi:29185
+msgid "The Guix Data Service instance from which to query to find out about derivations to build."
+msgstr "L'instance du Guix Data Service à laquelle demander les dérivations à construire."
+
+#. type: item
+#: doc/guix.texi:29186
+#, no-wrap
+msgid "@code{processed-commits-file} (default: @code{\"/var/cache/guix-build-coordinator-queue-builds/processed-commits\"})"
+msgstr "@code{processed-commits-file} (par défaut : @code{\"/var/cache/guix-build-coordinator-queue-builds/processed-commits\"})"
+
+#. type: table
+#: doc/guix.texi:29189
+msgid "A file to record which commits have been processed, to avoid needlessly processing them again if the service is restarted."
+msgstr "Un fichier qui enregistre les commits qui ont été traités, pour éviter de les traiter de nouveau inutilement si le service est redémarré."
+
+#. type: subsubheading
+#: doc/guix.texi:29193
+#, no-wrap
+msgid "Guix Data Service"
+msgstr "Guix Data Service"
+
+#. type: Plain text
+#: doc/guix.texi:29197
+msgid "The @uref{http://data.guix.gnu.org,Guix Data Service} processes, stores and provides data about GNU Guix.  This includes information about packages, derivations and lint warnings."
+msgstr "Le @uref{http://data.guix.gnu.org,Guix Data Service} traite, stocke et fournit des données à propos de GNU Guix.  Cela comprend des informations sur les paquets, les dérivations et les messages d'avertissement de formatage."
+
+#. type: Plain text
+#: doc/guix.texi:29200
+msgid "The data is stored in a PostgreSQL database, and available through a web interface."
+msgstr "Les données sont stockées dans une base PostgreSQL, et sont disponibles à travers une interface web."
+
+#. type: defvar
+#: doc/guix.texi:29201
+#, no-wrap
+msgid "{Scheme Variable} guix-data-service-type"
+msgstr "{Variable Scheme} guix-data-service-type"
+
+#. type: defvar
+#: doc/guix.texi:29206
+msgid "Service type for the Guix Data Service.  Its value must be a @code{guix-data-service-configuration} object.  The service optionally extends the getmail service, as the guix-commits mailing list is used to find out about changes in the Guix git repository."
+msgstr "Le type de service pour le Guix Data Service.  Sa valeur doit être un objet @code{guix-data-service-configuration}.  Le service étend éventuellement le service getmail, car la liste de diffusion guix-commits est utilisée pour récupérer les changement dans le dépôt git de Guix."
+
+#. type: deftp
+#: doc/guix.texi:29208
+#, no-wrap
+msgid "{Data Type} guix-data-service-configuration"
+msgstr "{Type de données} guix-data-service-configuration"
+
+#. type: deftp
+#: doc/guix.texi:29210
+msgid "Data type representing the configuration of the Guix Data Service."
+msgstr "Le type de données représentant la configuration du Guix Data Service."
+
+#. type: item
+#: doc/guix.texi:29212
+#, no-wrap
+msgid "@code{package} (default: @code{guix-data-service})"
+msgstr "@code{package} (par défaut : @code{guix-data-service})"
+
+#. type: table
+#: doc/guix.texi:29214
+msgid "The Guix Data Service package to use."
+msgstr "Le paquet Guix Data Service à utiliser."
+
+#. type: item
+#: doc/guix.texi:29215
+#, no-wrap
+msgid "@code{user} (default: @code{\"guix-data-service\"})"
+msgstr "@code{user} (par défaut : @code{\"guix-data-service\"})"
+
+#. type: item
+#: doc/guix.texi:29218
+#, no-wrap
+msgid "@code{group} (default: @code{\"guix-data-service\"})"
+msgstr "@code{group} (par défaut : @code{\"guix-data-service\"})"
+
+#. type: item
+#: doc/guix.texi:29221
+#, no-wrap
+msgid "@code{port} (default: @code{8765})"
+msgstr "@code{port} (par défaut : @code{8765})"
+
+#. type: table
+#: doc/guix.texi:29223
+msgid "The port to bind the web service to."
+msgstr "Le port sur lequel lier le service web."
+
+#. type: item
+#: doc/guix.texi:29224
+#, no-wrap
+msgid "@code{host} (default: @code{\"127.0.0.1\"})"
+msgstr "@code{host} (par défaut : @code{\"127.0.0.1\"})"
+
+#. type: table
+#: doc/guix.texi:29226
+msgid "The host to bind the web service to."
+msgstr "L'hôte sur lequel lier le service web."
+
+#. type: item
+#: doc/guix.texi:29227
+#, no-wrap
+msgid "@code{getmail-idle-mailboxes} (default: @code{#f})"
+msgstr "@code{getmail-idle-mailboxes} (par défaut : @code{#f})"
+
+#. type: table
+#: doc/guix.texi:29230
+msgid "If set, this is the list of mailboxes that the getmail service will be configured to listen to."
+msgstr "Si une valeur est indiquée, c'est la liste des boites de courriel que le service getmail récupère."
+
+#. type: item
+#: doc/guix.texi:29231
+#, no-wrap
+msgid "@code{commits-getmail-retriever-configuration} (default: @code{#f})"
+msgstr "@code{commits-getmail-retriever-configuration} (par défaut : @code{#f})"
+
+#. type: table
+#: doc/guix.texi:29235
+msgid "If set, this is the @code{getmail-retriever-configuration} object with which to configure getmail to fetch mail from the guix-commits mailing list."
+msgstr "Si la valeur est indiquée, c'est l'objet @code{getmail-retriever-configuration} avec lequel configurer getmail pour récupérer les courriels à part de la liste de diffusion guix-commits."
+
+#. type: item
+#: doc/guix.texi:29236
+#, no-wrap
+msgid "@code{extra-options} (default: @var{'()})"
+msgstr "@code{extra-options} (par défaut : @var{'()})"
+
+#. type: table
+#: doc/guix.texi:29238
+msgid "Extra command line options for @code{guix-data-service}."
+msgstr "Liste d'options supplémentaires de la ligne de commande pour @command{guix-data-service}."
+
+#. type: item
+#: doc/guix.texi:29239
+#, no-wrap
+msgid "@code{extra-process-jobs-options} (default: @var{'()})"
+msgstr "@code{extra-process-jobs-options} (par défaut : @var{'()})"
+
+#. type: table
+#: doc/guix.texi:29241
+msgid "Extra command line options for @code{guix-data-service-process-jobs}."
+msgstr "Liste d'options supplémentaires de la ligne de commande pour @command{guix-data-service-process-jobs}."
+
+#. type: cindex
+#: doc/guix.texi:29248
+#, no-wrap
+msgid "oom"
+msgstr "oom"
+
+#. type: cindex
+#: doc/guix.texi:29249
+#, no-wrap
+msgid "out of memory killer"
+msgstr "gestionnaire du remplissage de la mémoire"
+
+#. type: cindex
+#: doc/guix.texi:29250
+#, no-wrap
+msgid "earlyoom"
+msgstr "earlyoom"
+
+#. type: cindex
+#: doc/guix.texi:29251
+#, no-wrap
+msgid "early out of memory daemon"
+msgstr "démon de gestion du remplissage de la mémoire précoce"
+
+#. type: subsubheading
+#: doc/guix.texi:29252
+#, no-wrap
+msgid "Early OOM Service"
+msgstr "Service Early OOM"
+
+#. type: Plain text
+#: doc/guix.texi:29259
+msgid "@uref{https://github.com/rfjakob/earlyoom,Early OOM}, also known as Earlyoom, is a minimalist out of memory (OOM) daemon that runs in user space and provides a more responsive and configurable alternative to the in-kernel OOM killer.  It is useful to prevent the system from becoming unresponsive when it runs out of memory."
+msgstr "@uref{https://github.com/rfjakob/earlyoom,Early OOM}, aussi appelé Earlyoom, est un démon de gestion du remplissage mémoire (OOM) minimaliste qui se lance en espace utilisateur et fournit une alternative plus rapide et configurable que le gestionnaire du noyau.  Il est utile pour éviter que le système ne cesse de répondre lorsqu'il n'a plus de mémoire."
+
+#. type: deffn
+#: doc/guix.texi:29260
+#, no-wrap
+msgid "{Scheme Variable} earlyoom-service-type"
+msgstr "{Variable Scheme} earlyoom-service-type"
+
+#. type: deffn
+#: doc/guix.texi:29265
+msgid "The service type for running @command{earlyoom}, the Early OOM daemon.  Its value must be a @code{earlyoom-configuration} object, described below.  The service can be instantiated in its default configuration with:"
+msgstr "Le type de service pour le service @command{earlyoom}, le démon Early OOM.  Sa valeur doit être un objet @code{earlyoom-configuration}, décrit plus bas.  Vous pouvez instancier le service avec sa configuration par défaut avec :"
+
+#. type: lisp
+#: doc/guix.texi:29268
+#, no-wrap
+msgid "(service earlyoom-service-type)\n"
+msgstr "(service earlyoom-service-type)\n"
+
+#. type: deftp
+#: doc/guix.texi:29271
+#, no-wrap
+msgid "{Data Type} earlyoom-configuration"
+msgstr "{Type de données} earlyoom-configuration"
+
+#. type: deftp
+#: doc/guix.texi:29273
+msgid "This is the configuration record for the @code{earlyoom-service-type}."
+msgstr "La configuration pour @code{earlyoom-service-type}."
+
+#. type: item
+#: doc/guix.texi:29275
+#, no-wrap
+msgid "@code{earlyoom} (default: @var{earlyoom})"
+msgstr "@code{earlyoom} (par défaut : @var{earlyoom})"
+
+#. type: table
+#: doc/guix.texi:29277
+msgid "The Earlyoom package to use."
+msgstr "Le paquet Earlyoom à utiliser."
+
+#. type: item
+#: doc/guix.texi:29278
+#, no-wrap
+msgid "@code{minimum-available-memory} (default: @code{10})"
+msgstr "@code{minimum-available-memory} (par défaut : @code{10})"
+
+#. type: table
+#: doc/guix.texi:29280
+msgid "The threshold for the minimum @emph{available} memory, in percentages."
+msgstr "La limite de mémoire @emph{disponible} minimum, en pourcentage."
+
+#. type: item
+#: doc/guix.texi:29281
+#, no-wrap
+msgid "@code{minimum-free-swap} (default: @code{10})"
+msgstr "@code{minimum-free-swap} (par défaut : @code{10})"
+
+#. type: table
+#: doc/guix.texi:29283
+msgid "The threshold for the minimum free swap memory, in percentages."
+msgstr "La limite d'espace d'échange libre minimum, en pourcentage."
+
+#. type: item
+#: doc/guix.texi:29284
+#, no-wrap
+msgid "@code{prefer-regexp} (default: @code{#f})"
+msgstr "@code{prefer-regexp} (par défaut : @code{#f})"
+
+#. type: table
+#: doc/guix.texi:29287
+msgid "A regular expression (as a string) to match the names of the processes that should be preferably killed."
+msgstr "Une expression régulière (une chaine) qui correspond aux noms des processus à tuer en priorité."
+
+#. type: item
+#: doc/guix.texi:29288
+#, no-wrap
+msgid "@code{avoid-regexp} (default: @code{#f})"
+msgstr "@code{avoid-regexp} (par défaut : @code{#f})"
+
+#. type: table
+#: doc/guix.texi:29291
+msgid "A regular expression (as a string) to match the names of the processes that should @emph{not} be killed."
+msgstr "Une expression régulière (une chaine) des noms des processus qui ne doivent @emph{pas} être tués."
+
+#. type: item
+#: doc/guix.texi:29292
+#, no-wrap
+msgid "@code{memory-report-interval} (default: @code{0})"
+msgstr "@code{memory-report-interval} (par défaut : @code{0})"
+
+#. type: table
+#: doc/guix.texi:29295
+msgid "The interval in seconds at which a memory report is printed.  It is disabled by default."
+msgstr "L'intervalle en seconde d'affichage du rapport mémoire.  Il est désactivé par défaut."
+
+#. type: item
+#: doc/guix.texi:29296
+#, no-wrap
+msgid "@code{ignore-positive-oom-score-adj?} (default: @code{#f})"
+msgstr "@code{ignore-positive-oom-score-adj?} (par défaut : @code{#f})"
+
+#. type: table
+#: doc/guix.texi:29299
+msgid "A boolean indicating whether the positive adjustments set in @file{/proc/*/oom_score_adj} should be ignored."
+msgstr "Un booléen indiquant si les ajustements positifs indiqués dans @file{/proc/*/oom_score_adj} doivent être ignorés."
+
+#. type: item
+#: doc/guix.texi:29300
+#, no-wrap
+msgid "@code{show-debug-messages?} (default: @code{#f})"
+msgstr "@code{show-debug-messages?} (par défaut : @code{#f})"
+
+#. type: table
+#: doc/guix.texi:29303
+msgid "A boolean indicating whether debug messages should be printed.  The logs are saved at @file{/var/log/earlyoom.log}."
+msgstr "Un booléen indiquant si les messages de débogages doivent être affichés.  Les journaux sont sauvegardés dans @file{/var/log/earlyoom.log}."
+
+#. type: item
+#: doc/guix.texi:29304
+#, no-wrap
+msgid "@code{send-notification-command} (default: @code{#f})"
+msgstr "@code{send-notification-command} (par défaut : @code{#f})"
+
+#. type: table
+#: doc/guix.texi:29307
+msgid "This can be used to provide a custom command used for sending notifications."
+msgstr "On peut utiliser cette option pour fournir une commande personnalisée pour envoyer les notifications."
+
+#. type: cindex
+#: doc/guix.texi:29310
+#, no-wrap
+msgid "modprobe"
+msgstr "modprobe"
+
+#. type: cindex
+#: doc/guix.texi:29311
+#, no-wrap
+msgid "kernel module loader"
+msgstr "chargeur de module du noyau"
+
+#. type: subsubheading
+#: doc/guix.texi:29312
+#, no-wrap
+msgid "Kernel Module Loader Service"
+msgstr "Service de chargement de modules du noyau"
+
+#. type: Plain text
+#: doc/guix.texi:29318
+msgid "The kernel module loader service allows one to load loadable kernel modules at boot.  This is especially useful for modules that don't autoload and need to be manually loaded, as it's the case with @code{ddcci}."
+msgstr "Le service de chargement de modules du noyau vous permet de charger des modules du noyau au démarrage.  C'est particulièrement utile pour les modules qui ne sont pas chargés automatiquement et qui doivent être chargés manuellement, comme c'est le cas avec @code{ddcci}."
+
+#. type: deffn
+#: doc/guix.texi:29319
+#, no-wrap
+msgid "{Scheme Variable} kernel-module-loader-service-type"
+msgstr "{Variable Scheme} kernel-module-loader-service-type"
+
+#. type: deffn
+#: doc/guix.texi:29325
+msgid "The service type for loading loadable kernel modules at boot with @command{modprobe}.  Its value must be a list of strings representing module names.  For example loading the drivers provided by @code{ddcci-driver-linux}, in debugging mode by passing some module parameters, can be done as follow:"
+msgstr "Le type de service pour charger des modules du noyau au démarrage avec @command{modprobe}.  Sa valeur doit être une liste de chaines de caractères représentant les noms des modules.  Par exemple pour charger les pilotes fournis par @code{ddcci-driver-linux}, en mode débogage en passant certains paramètres au module, on peut faire :"
+
+#. type: lisp
+#: doc/guix.texi:29330
+#, no-wrap
+msgid ""
+"(use-modules (gnu) (gnu services))\n"
+"(use-package-modules linux)\n"
+"(use-service-modules linux)\n"
+"\n"
+msgstr ""
+"(use-modules (gnu) (gnu services))\n"
+"(use-package-modules linux)\n"
+"(use-service-modules linux)\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:29334
+#, no-wrap
+msgid ""
+"(define ddcci-config\n"
+"  (plain-file \"ddcci.conf\"\n"
+"              \"options ddcci dyndbg delay=120\"))\n"
+"\n"
+msgstr ""
+"(define ddcci-config\n"
+"  (plain-file \"ddcci.conf\"\n"
+"              \"options ddcci dyndbg delay=120\"))\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:29344
+#, no-wrap
+msgid ""
+"(operating-system\n"
+"  ...\n"
+"  (services (cons* (service kernel-module-loader-service-type\n"
+"                            '(\"ddcci\" \"ddcci_backlight\"))\n"
+"                   (simple-service 'ddcci-config etc-service-type\n"
+"                                   (list `(\"modprobe.d/ddcci.conf\"\n"
+"                                           ,ddcci-config)))\n"
+"                   %base-services))\n"
+"  (kernel-loadable-modules (list ddcci-driver-linux)))\n"
+msgstr ""
+"(operating-system\n"
+"  ...\n"
+"  (services (cons* (service kernel-module-loader-service-type\n"
+"                            '(\"ddcci\" \"ddcci_backlight\"))\n"
+"                   (simple-service 'ddcci-config etc-service-type\n"
+"                                   (list `(\"modprobe.d/ddcci.conf\"\n"
+"                                           ,ddcci-config)))\n"
+"                   %base-services))\n"
+"  (kernel-loadable-modules (list ddcci-driver-linux)))\n"
+
+#. type: cindex
+#: doc/guix.texi:29347
+#, no-wrap
+msgid "zram"
+msgstr "zram"
+
+#. type: cindex
+#: doc/guix.texi:29348
+#, no-wrap
+msgid "compressed swap"
+msgstr "espace d'échange compressé"
+
+#. type: cindex
+#: doc/guix.texi:29349
+#, no-wrap
+msgid "Compressed RAM-based block devices"
+msgstr "Périphériques blocs compressés basés sur la RAM"
+
+#. type: subsubheading
+#: doc/guix.texi:29350
+#, no-wrap
+msgid "Zram Device Service"
+msgstr "Service Zram"
+
+#. type: Plain text
+#: doc/guix.texi:29356
+msgid "The Zram device service provides a compressed swap device in system memory.  The Linux Kernel documentation has more information about @uref{https://www.kernel.org/doc/html/latest/admin-guide/blockdev/zram.html,zram} devices."
+msgstr "Le service de périphérique Zram fournit un périphérique de swap compressé en mémoire système.  La documentation du noyau Linux a plus d'information à propos de ces périphériques @uref{https://www.kernel.org/doc/html/latest/admin-guide/blockdev/zram.html,zram}."
+
+#. type: deffn
+#: doc/guix.texi:29357
+#, no-wrap
+msgid "{Scheme Variable} zram-device-service-type"
+msgstr "{Variable Scheme} zram-device-service-type"
+
+#. type: deffn
+#: doc/guix.texi:29361
+msgid "This service creates the zram block device, formats it as swap and enables it as a swap device.  The service's value is a @code{zram-device-configuration} record."
+msgstr "Ce service crée un périphérique de bloc zram, le formate en swap et active l'espace d'échange.  La valeur du service est un enregistrement @code{zram-device-configuration}."
+
+#. type: deftp
+#: doc/guix.texi:29362
+#, no-wrap
+msgid "{Data Type} zram-device-configuration"
+msgstr "{Type de données} zram-device-configuration"
+
+#. type: deftp
+#: doc/guix.texi:29365
+msgid "This is the data type representing the configuration for the zram-device service."
+msgstr "C'est le type de données représentant la configuration du service zram-device."
+
+#. type: item
+#: doc/guix.texi:29367
+#, no-wrap
+msgid "@code{size} (default @code{\"1G\"})"
+msgstr "@code{size} (par défaut : @code{\"1G\"})"
+
+#. type: table
+#: doc/guix.texi:29371
+msgid "This is the amount of space you wish to provide for the zram device.  It accepts a string and can be a number of bytes or use a suffix, eg.: @code{\"512M\"} or @code{1024000}."
+msgstr "C'est l'espace que vous voulez fournir à votre périphérique zram.  Il accepte une chaine et peut être un nombre d'octets ou utiliser un suffixe, p.@: ex.@: : @code{\"512M\"} ou @code{\"1024000\"}"
+
+#. type: item
+#: doc/guix.texi:29371
+#, no-wrap
+msgid "@code{compression-algorithm} (default @code{'lzo})"
+msgstr "@code{compression-algorithm} (par défaut : @code{'lzo})"
+
+#. type: table
+#: doc/guix.texi:29375
+msgid "This is the compression algorithm you wish to use.  It is difficult to list all the possible compression options, but common ones supported by Guix's Linux Libre Kernel include @code{'lzo}, @code{'lz4} and @code{'zstd}."
+msgstr "C'est l'algorithme de compression à utiliser.  Il est difficile de lister toutes les possibilités, mais les options habituelles prises en charge par le noyau Linux Libre de Guix sont @code{'lzo}, @code{'lz4} et @code{'zstd}."
+
+#. type: item
+#: doc/guix.texi:29375
+#, no-wrap
+msgid "@code{memory-limit} (default @code{0})"
+msgstr "@code{memory-limit} (par défaut : @code{0})"
+
+#. type: table
+#: doc/guix.texi:29382
+msgid "This is the maximum amount of memory which the zram device can use.  Setting it to '0' disables the limit.  While it is generally expected that compression will be 2:1, it is possible that uncompressable data can be written to swap and this is a method to limit how much memory can be used.  It accepts a string and can be a number of bytes or use a suffix, eg.: @code{\"2G\"}."
+msgstr "C'est la quantité de mémoire maximal que le périphérique zram peut utiliser.  le mettre à « 0 » désactive la limite.  Bien qu'il soit généralement accepté que la compression aura un ratio de 2 pour 1, il est possible que des données non-comprimables soient écrites en espace d'échange et c'est une méthode pour limiter la quantité de mémoire qui peut être utilisée.  Le paramètre accepte une chaine qui peut être un nombre d'octets ou utiliser un suffixe, p.@: ex.@: @code{\"2G\"}."
+
+#. type: item
+#: doc/guix.texi:29382
+#, no-wrap
+msgid "@code{priority} (default @code{-1})"
+msgstr "@code{priority} (par défaut : @code{-1})"
+
+#. type: table
+#: doc/guix.texi:29387
+msgid "This is the priority of the swap device created from the zram device.  @code{swapon} accepts values between -1 and 32767, with higher values indicating higher priority.  Higher priority swap will generally be used first."
+msgstr "C'est la priorité de l'espace d'échange créé à partir du périphérique zram.  @code{swapon} accepte les valeurs entre -1 et 32767, avec les valeurs plus grandes indiquant une plus grande priorité.  Les espaces d'échanges avec une plus grande priorité seront utilisés avant celui-ci."
+
+#. type: defvr
+#: doc/guix.texi:29395
+#, no-wrap
+msgid "{Scheme Variable} hurd-console-service-type"
+msgstr "{Variable Scheme} hurd-console-service-type"
+
+#. type: defvr
+#: doc/guix.texi:29397
+msgid "This service starts the fancy @code{VGA} console client on the Hurd."
+msgstr "Ce service démarre le client @code{VGA} sophistiqué en console sur le Hurd."
+
+#. type: defvr
+#: doc/guix.texi:29399
+msgid "The service's value is a @code{hurd-console-configuration} record."
+msgstr "La valeur du service est un enregistrement @code{hurd-console-configuration}."
+
+#. type: deftp
+#: doc/guix.texi:29401
+#, no-wrap
+msgid "{Data Type} hurd-console-configuration"
+msgstr "{Type de données} hurd-console-configuration"
+
+#. type: deftp
+#: doc/guix.texi:29404
+msgid "This is the data type representing the configuration for the hurd-console-service."
+msgstr "C'est le type de données représentant la configuration de hurd-console-service."
+
+#. type: item
+#: doc/guix.texi:29406 doc/guix.texi:29422
+#, no-wrap
+msgid "@code{hurd} (default: @var{hurd})"
+msgstr "@code{hurd} (par défaut : @var{hurd})"
+
+#. type: table
+#: doc/guix.texi:29408 doc/guix.texi:29424
+msgid "The Hurd package to use."
+msgstr "Le paquet Hurd à utiliser."
+
+#. type: defvr
+#: doc/guix.texi:29411
+#, no-wrap
+msgid "{Scheme Variable} hurd-getty-service-type"
+msgstr "{Variable Scheme} hurd-getty-service-type"
+
+#. type: defvr
+#: doc/guix.texi:29413
+msgid "This service starts a tty using the Hurd @code{getty} program."
+msgstr "Ce service démarre un tty avec le programme @code{getty}."
+
+#. type: defvr
+#: doc/guix.texi:29415
+msgid "The service's value is a @code{hurd-getty-configuration} record."
+msgstr "La valeur du service est un enregistrement @code{hurd-getty-configuration}."
+
+#. type: deftp
+#: doc/guix.texi:29417
+#, no-wrap
+msgid "{Data Type} hurd-getty-configuration"
+msgstr "{Type de données} hurd-getty-configuration"
+
+#. type: deftp
+#: doc/guix.texi:29420
+msgid "This is the data type representing the configuration for the hurd-getty-service."
+msgstr "Ce type de données représente la configuration de hurd-getty-service."
+
+#. type: table
+#: doc/guix.texi:29427
+msgid "The name of the console this Getty runs on---e.g., @code{\"tty1\"}."
+msgstr "Le nom de la console sur laquelle tourne ce Getty, p.@: ex.@: @code{\"tty1\"}."
+
+#. type: item
+#: doc/guix.texi:29428
+#, no-wrap
+msgid "@code{baud-rate} (default: @code{38400})"
+msgstr "@code{baud-rate} (par défaut : @code{38400})"
+
+#. type: table
+#: doc/guix.texi:29430
+msgid "An integer specifying the baud rate of the tty."
+msgstr "Un entier spécifiant le taux de Baud de ce tty."
+
+#. type: cindex
+#: doc/guix.texi:29437
 #, no-wrap
 msgid "fingerprint"
 msgstr "empreinte digitale"
 
 #. type: subsubheading
-#: doc/guix.texi:23349
+#: doc/guix.texi:29438
 #, no-wrap
 msgid "Fingerprint Service"
 msgstr "Service d'empreintes digitales"
 
 #. type: Plain text
-#: doc/guix.texi:23353
+#: doc/guix.texi:29442
 msgid "The @code{(gnu services authentication)} module provides a DBus service to read and identify fingerprints via a fingerprint sensor."
 msgstr "Le module @code{(gnu services authentication)} fournit un service DBus pour lire et identifier les empreintes digitales via un lecteur d'empreinte."
 
 #. type: defvr
-#: doc/guix.texi:23354
+#: doc/guix.texi:29443
 #, no-wrap
 msgid "{Scheme Variable} fprintd-service-type"
 msgstr "{Variable Scheme} fprintd-service-type"
 
 #. type: defvr
-#: doc/guix.texi:23357
+#: doc/guix.texi:29446
 msgid "The service type for @command{fprintd}, which provides the fingerprint reading capability."
 msgstr "Le type de service pour @command{fprintd}, qui fournit des capacités de lecture d'empreinte."
 
-#. type: example
-#: doc/guix.texi:23360
+#. type: lisp
+#: doc/guix.texi:29449
 #, no-wrap
 msgid "(service fprintd-service-type)\n"
 msgstr "(service fprintd-service-type)\n"
 
 #. type: cindex
-#: doc/guix.texi:23363
+#: doc/guix.texi:29452
 #, no-wrap
 msgid "sysctl"
 msgstr "sysctl"
 
 #. type: subsubheading
-#: doc/guix.texi:23364
+#: doc/guix.texi:29453
 #, no-wrap
 msgid "System Control Service"
 msgstr "Service de contrôle du système"
 
 #. type: Plain text
-#: doc/guix.texi:23368
+#: doc/guix.texi:29457
 msgid "The @code{(gnu services sysctl)} provides a service to configure kernel parameters at boot."
 msgstr "Le module @code{(gnu services sysctl)} fournit un service pour configurer les paramètres du noyau au démarrage."
 
 #. type: defvr
-#: doc/guix.texi:23369
+#: doc/guix.texi:29458
 #, no-wrap
 msgid "{Scheme Variable} sysctl-service-type"
 msgstr "{Variable Scheme} sysctl-service-type"
 
 #. type: defvr
-#: doc/guix.texi:23373
+#: doc/guix.texi:29462
 msgid "The service type for @command{sysctl}, which modifies kernel parameters under @file{/proc/sys/}.  To enable IPv4 forwarding, it can be instantiated as:"
 msgstr "Le type de service pour @command{sysctl}, qui modifie les paramètres du noyau dans @file{/proc/sys/}.  Pour activer le transfert d'IPv4, vous pouvez l'instancier ainsi :"
 
-#. type: example
-#: doc/guix.texi:23378
+#. type: lisp
+#: doc/guix.texi:29467
 #, no-wrap
 msgid ""
 "(service sysctl-service-type\n"
@@ -43433,130 +54881,130 @@ msgstr ""
 "           (settings '((\"net.ipv4.ip_forward\" . \"1\")))))\n"
 
 #. type: deftp
-#: doc/guix.texi:23381
+#: doc/guix.texi:29470
 #, no-wrap
 msgid "{Data Type} sysctl-configuration"
 msgstr "{Type de données} sysctl-configuration"
 
 #. type: deftp
-#: doc/guix.texi:23383
+#: doc/guix.texi:29472
 msgid "The data type representing the configuration of @command{sysctl}."
 msgstr "Le type de données représentant la configuration de @command{sysctl}."
 
 #. type: item
-#: doc/guix.texi:23385
+#: doc/guix.texi:29474
 #, no-wrap
 msgid "@code{sysctl} (default: @code{(file-append procps \"/sbin/sysctl\"})"
 msgstr "@code{sysctl} (par défaut : @code{(file-append procps \"/sbin/sysctl\"})"
 
 #. type: table
-#: doc/guix.texi:23387
+#: doc/guix.texi:29476
 msgid "The @command{sysctl} executable to use."
 msgstr "L'exécutable @command{sysctl} à utiliser."
 
 #. type: item
-#: doc/guix.texi:23388
+#: doc/guix.texi:29477
 #, no-wrap
 msgid "@code{settings} (default: @code{'()})"
 msgstr "@code{settings} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:23390
+#: doc/guix.texi:29479
 msgid "An association list specifies kernel parameters and their values."
 msgstr "Une liste d'association spécifiant les paramètres du noyau et leur valeur."
 
 #. type: cindex
-#: doc/guix.texi:23393
+#: doc/guix.texi:29482
 #, no-wrap
 msgid "pcscd"
 msgstr "pcscd"
 
 #. type: subsubheading
-#: doc/guix.texi:23394
+#: doc/guix.texi:29483
 #, no-wrap
 msgid "PC/SC Smart Card Daemon Service"
 msgstr "Service du démon PC/SC Smart Card"
 
 #. type: Plain text
-#: doc/guix.texi:23401
+#: doc/guix.texi:29490
 msgid "The @code{(gnu services security-token)} module provides the following service to run @command{pcscd}, the PC/SC Smart Card Daemon.  @command{pcscd} is the daemon program for pcsc-lite and the MuscleCard framework. It is a resource manager that coordinates communications with smart card readers, smart cards and cryptographic tokens that are connected to the system."
 msgstr "Le module @code{(gnu services security-token)} fournit le service suivant qui lance @command{pcscd}, le démon PC/SC Smart Card.  @command{pcscd} est le démon pour  pcsc-lite et MuscleCard.  C'est un gestionnaire de ressource qui coordonne les communications avec les lecteurs de smart cards, les smart cards et les jetons cryptographiques connectés au système."
 
 #. type: defvr
-#: doc/guix.texi:23402
+#: doc/guix.texi:29491
 #, no-wrap
 msgid "{Scheme Variable} pcscd-service-type"
 msgstr "{Variable Scheme} pcscd-service-type"
 
 #. type: defvr
-#: doc/guix.texi:23406
+#: doc/guix.texi:29495
 msgid "Service type for the @command{pcscd} service.  Its value must be a @code{pcscd-configuration} object.  To run pcscd in the default configuration, instantiate it as:"
 msgstr "Le type de service pour le service @command{pcscd}.  Sa valeur doit être un objet @code{pcscd-configuration}.  Pour lancer pcscd dans sa configuration par défaut, instantiez-le avec :"
 
-#. type: example
-#: doc/guix.texi:23409
+#. type: lisp
+#: doc/guix.texi:29498
 #, no-wrap
 msgid "(service pcscd-service-type)\n"
 msgstr "(service pcscd-service-type)\n"
 
 #. type: deftp
-#: doc/guix.texi:23412
+#: doc/guix.texi:29501
 #, no-wrap
 msgid "{Data Type} pcscd-configuration"
 msgstr "{Type de données} pcscd-configuration"
 
 #. type: deftp
-#: doc/guix.texi:23414
+#: doc/guix.texi:29503
 msgid "The data type representing the configuration of @command{pcscd}."
 msgstr "Type de données représentant la configuration de @command{pcscd}."
 
 #. type: item
-#: doc/guix.texi:23416
+#: doc/guix.texi:29505
 #, no-wrap
 msgid "@code{pcsc-lite} (default: @code{pcsc-lite})"
 msgstr "@code{pcsc-lite} (par défaut : @code{pcsc-lite})"
 
 #. type: table
-#: doc/guix.texi:23418
+#: doc/guix.texi:29507
 msgid "The pcsc-lite package that provides pcscd."
 msgstr "Le paquet pcsc-lite qui fournit pcscd."
 
 #. type: item
-#: doc/guix.texi:23418
+#: doc/guix.texi:29507
 #, no-wrap
 msgid "@code{usb-drivers} (default: @code{(list ccid)})"
 msgstr "@code{usb-drivers} (par défaut : @code{(list ccid)})"
 
 #. type: table
-#: doc/guix.texi:23421
+#: doc/guix.texi:29510
 msgid "List of packages that provide USB drivers to pcscd. Drivers are expected to be under @file{pcsc/drivers} in the store directory of the package."
 msgstr "Liste des paquets qui fournissent des pilotes USB à pcscd.  Les pilotes doivent être dans @file{pcsc/drivers} dans le répertoire du dépôt du paquet."
 
 #. type: cindex
-#: doc/guix.texi:23424
+#: doc/guix.texi:29513
 #, no-wrap
 msgid "lirc"
 msgstr "lirc"
 
 #. type: subsubheading
-#: doc/guix.texi:23425
+#: doc/guix.texi:29514
 #, no-wrap
 msgid "Lirc Service"
 msgstr "Service Lirc"
 
 #. type: Plain text
-#: doc/guix.texi:23428
+#: doc/guix.texi:29517
 msgid "The @code{(gnu services lirc)} module provides the following service."
 msgstr "Le module @code{(gnu services lirc)} fournit le service suivant."
 
 #. type: deffn
-#: doc/guix.texi:23429
+#: doc/guix.texi:29518
 #, no-wrap
 msgid "{Scheme Procedure} lirc-service [#:lirc lirc] @"
 msgstr "{Procédure Scheme} lirc-service [#:lirc lirc] @"
 
 #. type: deffn
-#: doc/guix.texi:23434
+#: doc/guix.texi:29523
 msgid "[#:device #f] [#:driver #f] [#:config-file #f] @ [#:extra-options '()] Return a service that runs @url{http://www.lirc.org,LIRC}, a daemon that decodes infrared signals from remote controls."
 msgstr ""
 "[#:device #f] [#:driver #f] [#:config-file #f] @\n"
@@ -43564,314 +55012,324 @@ msgstr ""
 "Renvoie un service qui lance @url{http://www.lirc.org,LIRC}, un démon qui décode les signaux infrarouges des télécommandes."
 
 #. type: deffn
-#: doc/guix.texi:23438
+#: doc/guix.texi:29527
 msgid "Optionally, @var{device}, @var{driver} and @var{config-file} (configuration file name) may be specified.  See @command{lircd} manual for details."
 msgstr "Éventuellement, @var{device}, @var{driver} et @var{config-file} (le nom du fichier de configuration) peuvent être spécifiés.  Voir le manuel de @command{lircd} pour plus de détails."
 
 #. type: deffn
-#: doc/guix.texi:23441
+#: doc/guix.texi:29530
 msgid "Finally, @var{extra-options} is a list of additional command-line options passed to @command{lircd}."
 msgstr "Enfin, @var{extra-options} est une liste d'options de la ligne de commande supplémentaires à passer à @command{lircd}."
 
 #. type: cindex
-#: doc/guix.texi:23443
+#: doc/guix.texi:29532
 #, no-wrap
 msgid "spice"
 msgstr "spice"
 
 #. type: subsubheading
-#: doc/guix.texi:23444
+#: doc/guix.texi:29533
 #, no-wrap
 msgid "Spice Service"
 msgstr "Service Spice"
 
 #. type: Plain text
-#: doc/guix.texi:23447
+#: doc/guix.texi:29536
 msgid "The @code{(gnu services spice)} module provides the following service."
 msgstr "Le module @code{(gnu services spice)} fournit le service suivant."
 
 #. type: deffn
-#: doc/guix.texi:23448
+#: doc/guix.texi:29537
 #, no-wrap
 msgid "{Scheme Procedure} spice-vdagent-service [#:spice-vdagent]"
 msgstr "{Procédure Scheme} spice-vdagent-service [#:spice-vdagent]"
 
 #. type: deffn
-#: doc/guix.texi:23452
+#: doc/guix.texi:29541
 msgid "Returns a service that runs @url{https://www.spice-space.org,VDAGENT}, a daemon that enables sharing the clipboard with a vm and setting the guest display resolution when the graphical console window resizes."
 msgstr "Renvoie un service qui lance @url{https://www.spice-space.org,VDAGENT}, un démon qui permet le partage du presse-papier avec une vm et de configurer la résolution d'affichage du client lorsque la fenêtre de la console graphique est redimensionnée."
 
 #. type: cindex
-#: doc/guix.texi:23454
+#: doc/guix.texi:29543
 #, no-wrap
 msgid "inputattach"
 msgstr "inputattach"
 
 #. type: subsubheading
-#: doc/guix.texi:23455
+#: doc/guix.texi:29544
 #, no-wrap
 msgid "inputattach Service"
-msgstr "Service inputattach"
+msgstr "service inputattach"
 
 #. type: cindex
-#: doc/guix.texi:23457
+#: doc/guix.texi:29546
 #, no-wrap
 msgid "tablet input, for Xorg"
 msgstr "entrée tablette, pour Xorg"
 
 #. type: cindex
-#: doc/guix.texi:23458
+#: doc/guix.texi:29547
 #, no-wrap
 msgid "touchscreen input, for Xorg"
 msgstr "écran tactile, pour Xorg"
 
 #. type: Plain text
-#: doc/guix.texi:23462
+#: doc/guix.texi:29551
 msgid "The @uref{https://linuxwacom.github.io/, inputattach} service allows you to use input devices such as Wacom tablets, touchscreens, or joysticks with the Xorg display server."
 msgstr "Le service @uref{https://linuxwacom.github.io/, inputattach} vous permet d'utiliser des périphériques d'entrée comme les tablettes Wacom, les écrans tactiles ou les joysticks avec le serveur d'affichage Xorg."
 
 #. type: deffn
-#: doc/guix.texi:23463
+#: doc/guix.texi:29552
 #, no-wrap
 msgid "{Scheme Variable} inputattach-service-type"
 msgstr "{Variable Scheme} inputattach-service-type"
 
 #. type: deffn
-#: doc/guix.texi:23466
+#: doc/guix.texi:29555
 msgid "Type of a service that runs @command{inputattach} on a device and dispatches events from it."
 msgstr "Type d'un service qui lance @command{inputattach} sur un appareil et envie les événements qu'il reçoit."
 
 #. type: deftp
-#: doc/guix.texi:23468
+#: doc/guix.texi:29557
 #, no-wrap
 msgid "{Data Type} inputattach-configuration"
 msgstr "{Type de données} inputattach-configuration"
 
 #. type: item
-#: doc/guix.texi:23470
+#: doc/guix.texi:29559
 #, no-wrap
 msgid "@code{device-type} (default: @code{\"wacom\"})"
 msgstr "@code{device-type} (par défaut : @code{\"wacom\"})"
 
 #. type: table
-#: doc/guix.texi:23473
+#: doc/guix.texi:29562
 msgid "The type of device to connect to.  Run @command{inputattach --help}, from the @code{inputattach} package, to see the list of supported device types."
 msgstr "Le type du périphérique à gérer.  Lancez @command{inputattach --help}, du paquet @code{inputattach}, pour voir la liste des types de périphériques supportés."
 
 #. type: item
-#: doc/guix.texi:23474
+#: doc/guix.texi:29563
 #, no-wrap
 msgid "@code{device} (default: @code{\"/dev/ttyS0\"})"
 msgstr "@code{device} (par défaut : @code{\"/dev/ttyS0\"})"
 
 #. type: table
-#: doc/guix.texi:23476
+#: doc/guix.texi:29565
 msgid "The device file to connect to the device."
 msgstr "Le fichier de périphérique pour s'y connecter."
 
+#. type: table
+#: doc/guix.texi:29569
+msgid "Baud rate to use for the serial connection.  Should be a number or @code{#f}."
+msgstr "Taux de Baud à utiliser pour la connexion série.  Cela doit être un nombre ou @code{#f}."
+
 #. type: item
-#: doc/guix.texi:23477
+#: doc/guix.texi:29570
 #, no-wrap
 msgid "@code{log-file} (default: @code{#f})"
 msgstr "@code{log-file} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:23479
+#: doc/guix.texi:29572
 msgid "If true, this must be the name of a file to log messages to."
 msgstr "Si la valeur est vraie, cela doit être le nom d'un fichier où enregistrer les messages."
 
-#. type: subsection
-#: doc/guix.texi:23482
+#. type: subsubheading
+#: doc/guix.texi:29575
 #, no-wrap
-msgid "Dictionary Services"
-msgstr "Services de dictionnaires"
+msgid "Dictionary Service"
+msgstr "Service de dictionnaire"
 
 #. type: cindex
-#: doc/guix.texi:23483
+#: doc/guix.texi:29576
 #, no-wrap
 msgid "dictionary"
 msgstr "dictionnaire"
 
 #. type: Plain text
-#: doc/guix.texi:23485
+#: doc/guix.texi:29578
 msgid "The @code{(gnu services dict)} module provides the following service:"
 msgstr "Le module @code{(gnu services dict)} fournit le service suivant :"
 
+#. type: defvr
+#: doc/guix.texi:29579
+#, no-wrap
+msgid "{Scheme Variable} dicod-service-type"
+msgstr "{Variable Scheme} dicod-service-type"
+
+#. type: defvr
+#: doc/guix.texi:29582
+msgid "This is the type of the service that runs the @command{dicod} daemon, an implementation of DICT server (@pxref{Dicod,,, dico, GNU Dico Manual})."
+msgstr "C'est le type de service qui lance le démon @command{dicod}, une implémentation du serveur DICT (@pxref{Dicod,,, dico, GNU Dico Manual})."
+
 #. type: deffn
-#: doc/guix.texi:23486
+#: doc/guix.texi:29584
 #, no-wrap
 msgid "{Scheme Procedure} dicod-service [#:config (dicod-configuration)]"
 msgstr "{Procédure Scheme} dicod-service [#:config (dicod-configuration)]"
 
 #. type: deffn
-#: doc/guix.texi:23489
+#: doc/guix.texi:29587
 msgid "Return a service that runs the @command{dicod} daemon, an implementation of DICT server (@pxref{Dicod,,, dico, GNU Dico Manual})."
 msgstr "Renvoie un service qui lance le démon @command{dicod}, une implémentation du serveur DICT (@pxref{Dicod,,, dico, GNU Dico Manual})."
 
 #. type: deffn
-#: doc/guix.texi:23493
-msgid "The optional @var{config} argument specifies the configuration for @command{dicod}, which should be a @code{<dicod-configuration>} object, by default it serves the GNU Collaborative International Dictonary of English."
+#: doc/guix.texi:29591
+msgid "The optional @var{config} argument specifies the configuration for @command{dicod}, which should be a @code{<dicod-configuration>} object, by default it serves the GNU Collaborative International Dictionary of English."
 msgstr "L'argument @var{config} facultatif spécifie la configuration pour @command{dicod}, qui devrait être un objet @code{<dicod-configuration>}, par défaut il sert le dictionnaire international collaboratif de GNU pour l'anglais."
 
 #. type: deffn
-#: doc/guix.texi:23497
+#: doc/guix.texi:29595
 msgid "You can add @command{open localhost} to your @file{~/.dico} file to make @code{localhost} the default server for @command{dico} client (@pxref{Initialization File,,, dico, GNU Dico Manual})."
 msgstr "Vous pouvez ajouter @command{open localhost} à votre fichier @file{~/.dico} pour faire de @code{localhost} le serveur par défaut du client @command{dico} (@pxref{Initialization File,,, dico, GNU Dico Manual})."
 
 #. type: deftp
-#: doc/guix.texi:23499
+#: doc/guix.texi:29597
 #, no-wrap
 msgid "{Data Type} dicod-configuration"
 msgstr "{Type de données} dicod-configuration"
 
 #. type: deftp
-#: doc/guix.texi:23501
+#: doc/guix.texi:29599
 msgid "Data type representing the configuration of dicod."
 msgstr "Type de données représentant la configuration de dicod."
 
 #. type: item
-#: doc/guix.texi:23503
+#: doc/guix.texi:29601
 #, no-wrap
 msgid "@code{dico} (default: @var{dico})"
 msgstr "@code{dico} (par défaut : @var{dico})"
 
 #. type: table
-#: doc/guix.texi:23505
+#: doc/guix.texi:29603
 msgid "Package object of the GNU Dico dictionary server."
 msgstr "Objet de paquet du serveur de dictionnaire GNU Dico."
 
 #. type: item
-#: doc/guix.texi:23506
+#: doc/guix.texi:29604
 #, no-wrap
 msgid "@code{interfaces} (default: @var{'(\"localhost\")})"
 msgstr "@code{interfaces} (par défaut : @var{'(\"localhost\")})"
 
 #. type: table
-#: doc/guix.texi:23510
+#: doc/guix.texi:29608
 msgid "This is the list of IP addresses and ports and possibly socket file names to listen to (@pxref{Server Settings, @code{listen} directive,, dico, GNU Dico Manual})."
 msgstr "C'est la liste des adresses IP et des ports et éventuellement des noms de fichiers de socket sur lesquels écouter (@pxref{Server Settings, @code{listen} directive,, dico, GNU Dico Manual})."
 
 #. type: item
-#: doc/guix.texi:23511
+#: doc/guix.texi:29609
 #, no-wrap
 msgid "@code{handlers} (default: @var{'()})"
 msgstr "@code{handlers} (par défaut : @var{'()})"
 
 #. type: table
-#: doc/guix.texi:23513
+#: doc/guix.texi:29611
 msgid "List of @code{<dicod-handler>} objects denoting handlers (module instances)."
 msgstr "Liste des objets @code{<dicod-handler>} qui définissent des gestionnaires (des instances de modules)."
 
 #. type: item
-#: doc/guix.texi:23514
+#: doc/guix.texi:29612
 #, no-wrap
 msgid "@code{databases} (default: @var{(list %dicod-database:gcide)})"
 msgstr "@code{databases} (par défaut : @var{(list %dicod-database:gcide)})"
 
 #. type: table
-#: doc/guix.texi:23516
+#: doc/guix.texi:29614
 msgid "List of @code{<dicod-database>} objects denoting dictionaries to be served."
 msgstr "Liste d'objets @code{<dicod-database>} qui définissent des dictionnaires à servir."
 
 #. type: deftp
-#: doc/guix.texi:23519
+#: doc/guix.texi:29617
 #, no-wrap
 msgid "{Data Type} dicod-handler"
 msgstr "{Type de données} dicod-handler"
 
 #. type: deftp
-#: doc/guix.texi:23521
+#: doc/guix.texi:29619
 msgid "Data type representing a dictionary handler (module instance)."
 msgstr "Type de données représentant un gestionnaire de dictionnaire (instance de module)."
 
 #. type: table
-#: doc/guix.texi:23525
+#: doc/guix.texi:29623
 msgid "Name of the handler (module instance)."
 msgstr "Nom du gestionnaire (instance de module)."
 
 #. type: item
-#: doc/guix.texi:23526
+#: doc/guix.texi:29624
 #, no-wrap
 msgid "@code{module} (default: @var{#f})"
 msgstr "@code{module} (par défaut : @var{#f})"
 
 #. type: table
-#: doc/guix.texi:23530
+#: doc/guix.texi:29628
 msgid "Name of the dicod module of the handler (instance).  If it is @code{#f}, the module has the same name as the handler.  (@pxref{Modules,,, dico, GNU Dico Manual})."
 msgstr "Nom du module dicod du gestionnaire (instance).  Si la valeur est @code{#f}, le module a le même nom que le gestionnaire.  (@pxref{Modules,,, dico, GNU Dico Manual})."
 
-#. type: code{#1}
-#: doc/guix.texi:23531 doc/guix.texi:23551
-#, no-wrap
-msgid "options"
-msgstr "options"
-
 #. type: table
-#: doc/guix.texi:23533
+#: doc/guix.texi:29631
 msgid "List of strings or gexps representing the arguments for the module handler"
 msgstr "Liste de chaînes ou de gexps représentant les arguments pour le gestionnaire de module"
 
 #. type: deftp
-#: doc/guix.texi:23536
+#: doc/guix.texi:29634
 #, no-wrap
 msgid "{Data Type} dicod-database"
 msgstr "{Type de données} dicod-database"
 
 #. type: deftp
-#: doc/guix.texi:23538
+#: doc/guix.texi:29636
 msgid "Data type representing a dictionary database."
 msgstr "Type de données représentant une base de données de dictionnaire."
 
 #. type: table
-#: doc/guix.texi:23542
+#: doc/guix.texi:29640
 msgid "Name of the database, will be used in DICT commands."
 msgstr "Nom de la base de données, qui sera utilisée dans les commande DICT."
 
 #. type: code{#1}
-#: doc/guix.texi:23543
+#: doc/guix.texi:29641
 #, no-wrap
 msgid "handler"
 msgstr "handler"
 
 #. type: table
-#: doc/guix.texi:23546
+#: doc/guix.texi:29644
 msgid "Name of the dicod handler (module instance) used by this database (@pxref{Handlers,,, dico, GNU Dico Manual})."
 msgstr "Nom du gestionnaire dicod (instance de module) utilisé par cette base de données (@pxref{Handlers,,, dico, GNU Dico Manual})."
 
 #. type: item
-#: doc/guix.texi:23547
+#: doc/guix.texi:29645
 #, no-wrap
 msgid "@code{complex?} (default: @var{#f})"
 msgstr "@code{complex?} (par défaut : @var{#f})"
 
 #. type: table
-#: doc/guix.texi:23550
+#: doc/guix.texi:29648
 msgid "Whether the database configuration complex.  The complex configuration will need a corresponding @code{<dicod-handler>} object, otherwise not."
 msgstr "Indique si la configuration est pour une base de données complexe.  La configuration complexe a besoin d'un objet @code{<dicod-handler>} correspondant, sinon inutile."
 
 #. type: table
-#: doc/guix.texi:23554
+#: doc/guix.texi:29652
 msgid "List of strings or gexps representing the arguments for the database (@pxref{Databases,,, dico, GNU Dico Manual})."
 msgstr "Liste de chaînes ou de gexps représentant les arguments pour la base de données (@pxref{Databases,,, dico, GNU Dico Manual})."
 
 #. type: defvr
-#: doc/guix.texi:23557
+#: doc/guix.texi:29655
 #, no-wrap
 msgid "{Scheme Variable} %dicod-database:gcide"
 msgstr "{Variable Scheme} %dicod-database:gcide"
 
 #. type: defvr
-#: doc/guix.texi:23560
+#: doc/guix.texi:29658
 msgid "A @code{<dicod-database>} object serving the GNU Collaborative International Dictionary of English using the @code{gcide} package."
 msgstr "Un objet @code{<dicod-database>} servant le dictionnaire international collaboratif en anglais via le paquet @code{gcide}."
 
 #. type: Plain text
-#: doc/guix.texi:23563
+#: doc/guix.texi:29661
 msgid "The following is an example @code{dicod-service} configuration."
 msgstr "Voici un exemple de configuration de @code{dicod-service}."
 
-#. type: example
-#: doc/guix.texi:23578
+#. type: lisp
+#: doc/guix.texi:29676
 #, no-wrap
 msgid ""
 "(dicod-service #:config\n"
@@ -43903,242 +55361,673 @@ msgstr ""
 "                    %dicod-database:gcide))))\n"
 
 #. type: cindex
-#: doc/guix.texi:23580
+#: doc/guix.texi:29678
 #, no-wrap
 msgid "Docker"
 msgstr "Docker"
 
 #. type: subsubheading
-#: doc/guix.texi:23581
+#: doc/guix.texi:29679
 #, no-wrap
 msgid "Docker Service"
 msgstr "Service Docker"
 
 #. type: Plain text
-#: doc/guix.texi:23584
-msgid "The @code{(gnu services docker)} module provides the following service."
-msgstr "Le module @code{(gnu services docker)} fournit le service suivant."
+#: doc/guix.texi:29682
+msgid "The @code{(gnu services docker)} module provides the following services."
+msgstr "Le module @code{(gnu services docker)} fournit les services suivants."
 
 #. type: defvr
-#: doc/guix.texi:23585
+#: doc/guix.texi:29683
 #, no-wrap
 msgid "{Scheme Variable} docker-service-type"
 msgstr "{Variable Scheme} docker-service-type"
 
 #. type: defvr
-#: doc/guix.texi:23590
+#: doc/guix.texi:29688
 msgid "This is the type of the service that runs @url{https://www.docker.com,Docker}, a daemon that can execute application bundles (sometimes referred to as ``containers'') in isolated environments."
 msgstr "C'est le type du service qui lance @url{https://www.docker.com,Docker}, un démon qui peut exécuter des lots applicatifs (aussi appelés « conteneurs ») dans des environnements isolés."
 
 #. type: deftp
-#: doc/guix.texi:23593
+#: doc/guix.texi:29691
 #, no-wrap
 msgid "{Data Type} docker-configuration"
 msgstr "{Type de données} docker-configuration"
 
 #. type: deftp
-#: doc/guix.texi:23595
+#: doc/guix.texi:29693
 msgid "This is the data type representing the configuration of Docker and Containerd."
 msgstr "Le type de données qui représente la configuration de Docker et Containerd."
 
 #. type: item
-#: doc/guix.texi:23598
+#: doc/guix.texi:29696
 #, no-wrap
 msgid "@code{package} (default: @code{docker})"
 msgstr "@code{package} (par défaut : @code{docker})"
 
 #. type: table
-#: doc/guix.texi:23600
-msgid "The Docker package to use."
-msgstr "Le paquet Docker à utiliser."
+#: doc/guix.texi:29698
+msgid "The Docker daemon package to use."
+msgstr "Le paquet du démon Docker à utiliser."
 
 #. type: item
-#: doc/guix.texi:23601
+#: doc/guix.texi:29699
+#, no-wrap
+msgid "@code{package} (default: @code{docker-cli})"
+msgstr "@code{package} (par défaut : @code{docker-cli})"
+
+#. type: table
+#: doc/guix.texi:29701
+msgid "The Docker client package to use."
+msgstr "Le paquet du client Docker à utiliser."
+
+#. type: item
+#: doc/guix.texi:29702
 #, no-wrap
 msgid "@code{containerd} (default: @var{containerd})"
 msgstr "@code{containerd} (par défaut : @var{containerd})"
 
 #. type: table
-#: doc/guix.texi:23603
+#: doc/guix.texi:29704
 msgid "The Containerd package to use."
 msgstr "Le paquet Containerd à utiliser."
 
+#. type: item
+#: doc/guix.texi:29705
+#, no-wrap
+msgid "@code{proxy} (default @var{docker-libnetwork-cmd-proxy})"
+msgstr "@code{proxy} (par défaut : @var{docker-libnetwork-cmd-proxy})"
+
+#. type: table
+#: doc/guix.texi:29707
+msgid "The Docker user-land networking proxy package to use."
+msgstr "Le paquet du mandataire réseau en espace utilisateur de Docker à utiliser."
+
+#. type: item
+#: doc/guix.texi:29708
+#, no-wrap
+msgid "@code{enable-proxy?} (default @code{#t})"
+msgstr "@code{enable-proxy?} (par défaut : @code{#t})"
+
+#. type: table
+#: doc/guix.texi:29710
+msgid "Enable or disable the use of the Docker user-land networking proxy."
+msgstr "Indique s'il faut utiliser le mandataire réseau en espace utilisateur de Docker."
+
+#. type: item
+#: doc/guix.texi:29711
+#, no-wrap
+msgid "@code{debug?} (default @code{#f})"
+msgstr "@code{debug?} (par défaut : @code{#f})"
+
+#. type: table
+#: doc/guix.texi:29713
+msgid "Enable or disable debug output."
+msgstr "Indique s'il faut activer la sortie de débogage."
+
+#. type: item
+#: doc/guix.texi:29714
+#, no-wrap
+msgid "@code{enable-iptables?} (default @code{#t})"
+msgstr "@code{enable-iptables?} (par défaut : @code{#t})"
+
+#. type: table
+#: doc/guix.texi:29716
+msgid "Enable or disable the addition of iptables rules."
+msgstr "Indique s'il faut ajouter des règles iptables."
+
+#. type: cindex
+#: doc/guix.texi:29720
+#, no-wrap
+msgid "Singularity, container service"
+msgstr "Singularity, service de conteneurs"
+
+#. type: defvr
+#: doc/guix.texi:29721
+#, no-wrap
+msgid "{Scheme Variable} singularity-service-type"
+msgstr "{Variable Scheme} singularity-service-type"
+
+#. type: defvr
+#: doc/guix.texi:29726
+msgid "This is the type of the service that allows you to run @url{https://www.sylabs.io/singularity/, Singularity}, a Docker-style tool to create and run application bundles (aka. ``containers'').  The value for this service is the Singularity package to use."
+msgstr "C'est le type de service qui vous permet de lancer @url{https://www.sylabs.io/singularity/, Singularity}, un outil similaire à Docker pour créer et lancer des lots applicatifs (aussi appelés « conteneurs »).  la valeur de ce service est le paquet Singularity à utiliser."
+
+#. type: defvr
+#: doc/guix.texi:29730
+msgid "The service does not install a daemon; instead, it installs helper programs as setuid-root (@pxref{Setuid Programs}) such that unprivileged users can invoke @command{singularity run} and similar commands."
+msgstr "Le service n'installe pas de démon : à la place, il installe des utilitaires en setuid-root (@pxref{Setuid Programs}) pour que les utilisateurs non privilégiés puisse invoquer @command{singularity run} et les commandes similaires."
+
+#. type: cindex
+#: doc/guix.texi:29732
+#, no-wrap
+msgid "Audit"
+msgstr "Audit"
+
+#. type: subsubheading
+#: doc/guix.texi:29733
+#, no-wrap
+msgid "Auditd Service"
+msgstr "Service auditd"
+
+#. type: Plain text
+#: doc/guix.texi:29736
+msgid "The @code{(gnu services auditd)} module provides the following service."
+msgstr "Le module @code{(gnu services auditd)} fournit le service suivant."
+
+#. type: defvr
+#: doc/guix.texi:29737
+#, no-wrap
+msgid "{Scheme Variable} auditd-service-type"
+msgstr "{Variable Scheme} auditd-service-type"
+
+#. type: defvr
+#: doc/guix.texi:29742
+msgid "This is the type of the service that runs @url{https://people.redhat.com/sgrubb/audit/,auditd}, a daemon that tracks security-relevant information on your system."
+msgstr "C'est le type du service qui lance @url{https://people.redhat.com/sgrubb/audit/,auditd}, un démon qui suit les informations de sécurité de votre système."
+
+#. type: defvr
+#: doc/guix.texi:29744
+msgid "Examples of things that can be tracked:"
+msgstr "Exemples de ce qui peut être suivi :"
+
+#. type: enumerate
+#: doc/guix.texi:29748
+msgid "File accesses"
+msgstr "Les accès aux fichiers"
+
+#. type: enumerate
+#: doc/guix.texi:29750
+msgid "System calls"
+msgstr "Les appels système"
+
+#. type: enumerate
+#: doc/guix.texi:29752
+msgid "Invoked commands"
+msgstr "Les commandes invoquées"
+
+#. type: enumerate
+#: doc/guix.texi:29754
+msgid "Failed login attempts"
+msgstr "Les tentatives de connexion échouées"
+
+#. type: enumerate
+#: doc/guix.texi:29756
+msgid "Firewall filtering"
+msgstr "Le filtrage du pare-feu"
+
+#. type: enumerate
+#: doc/guix.texi:29758
+msgid "Network access"
+msgstr "Les accès réseau"
+
+#. type: defvr
+#: doc/guix.texi:29769
+msgid "@command{auditctl} from the @code{audit} package can be used in order to add or remove events to be tracked (until the next reboot).  In order to permanently track events, put the command line arguments of auditctl into a file called @code{audit.rules} in the configuration directory (see below).  @command{aureport} from the @code{audit} package can be used in order to view a report of all recorded events.  The audit daemon by default logs into the file @file{/var/log/audit.log}."
+msgstr "@command{auditctl} du paquet @code{audit} peut être utilisé pour ajouter ou supprimer des évènements à suivre (jusqu'au prochain redémarrage).  Pour suivre les évènements de manière permanente, ajoutez des arguments à la commande auditctl dans un fichier nommé @code{audit.rules} dans le répertoire de configuration (voir plus bas).  @command{aureport} du paquet @code{audit} peut être utilisé pour visualiser un rapport de tous les évènements enregistrés.  le démon d'audit enregistre par défaut dans le fichier @file{/var/log/audit.log}."
+
+#. type: deftp
+#: doc/guix.texi:29772
+#, no-wrap
+msgid "{Data Type} auditd-configuration"
+msgstr "{Type de données} auditd-configuration"
+
+#. type: deftp
+#: doc/guix.texi:29774
+msgid "This is the data type representing the configuration of auditd."
+msgstr "Le type de données qui représente la configuration de auditd."
+
+#. type: item
+#: doc/guix.texi:29777
+#, no-wrap
+msgid "@code{audit} (default: @code{audit})"
+msgstr "@code{audit} (par défaut : @code{audit})"
+
+#. type: table
+#: doc/guix.texi:29779
+msgid "The audit package to use."
+msgstr "Le paquet audit à utiliser."
+
+#. type: item
+#: doc/guix.texi:29780
+#, no-wrap
+msgid "@code{configuration-directory} (default: @code{%default-auditd-configuration-directory})"
+msgstr "@code{configuration-directory} (par défaut : @code{%default-auditd-configuration-directory})"
+
+#. type: table
+#: doc/guix.texi:29784
+msgid "The directory containing the configuration file for the audit package, which must be named @code{auditd.conf}, and optionally some audit rules to instantiate on startup."
+msgstr "Le répertoire contenant le fichier de configuration du paquet audit, qui doit être nommé @code{auditd.conf}, et éventuellement des règles d'audit à instancier au démarrage."
+
+#. type: cindex
+#: doc/guix.texi:29788
+#, no-wrap
+msgid "rshiny"
+msgstr "rshiny"
+
+#. type: subsubheading
+#: doc/guix.texi:29789
+#, no-wrap
+msgid "R-Shiny service"
+msgstr "Service R-Shiny"
+
+#. type: Plain text
+#: doc/guix.texi:29792
+msgid "The @code{(gnu services science)} module provides the following service."
+msgstr "Le module @code{(gnu services science)} fournit le service suivant."
+
+#. type: defvr
+#: doc/guix.texi:29793
+#, no-wrap
+msgid "{Scheme Variable} rshiny-service-type"
+msgstr "{Variable Scheme} rshiny-service-type"
+
+#. type: defvr
+#: doc/guix.texi:29798
+msgid "This is a type of service which is used to run a webapp created with @code{r-shiny}.  This service sets the @env{R_LIBS_USER} environment variable and runs the provided script to call @code{runApp}."
+msgstr "C'est le type de service utilisé pour lancer une appli web créée avec @code{r-shiny}.  Ce service initialise la variable d'environnement @env{R_LIBS_USER} et lance le script fournit pour appeler @code{runApp}."
+
+#. type: deftp
+#: doc/guix.texi:29799
+#, no-wrap
+msgid "{Data Type} rshiny-configuration"
+msgstr "{Type de données} rshiny-configuration"
+
+#. type: deftp
+#: doc/guix.texi:29801
+msgid "This is the data type representing the configuration of rshiny."
+msgstr "Le type de données qui représente la configuration de rshiny."
+
+#. type: item
+#: doc/guix.texi:29804
+#, no-wrap
+msgid "@code{package} (default: @code{r-shiny})"
+msgstr "@code{package} (par défaut : @code{r-shiny})"
+
+#. type: table
+#: doc/guix.texi:29806
+msgid "The package to use."
+msgstr "Le paquet à utiliser."
+
+#. type: item
+#: doc/guix.texi:29807
+#, no-wrap
+msgid "@code{binary} (defaunlt @code{\"rshiny\"})"
+msgstr "@code{binary} (par défaut : @code{\"rshiny\"})"
+
+#. type: table
+#: doc/guix.texi:29810
+msgid "The name of the binary or shell script located at @code{package/bin/} to run when the service is run."
+msgstr "Le nom du binaire ou du script shell situé dans @code{package/bin/} à lancer au démarrage du service."
+
+#. type: table
+#: doc/guix.texi:29812
+msgid "The common way to create this file is as follows:"
+msgstr "La manière habituelle de créer ce fichier est :"
+
+#. type: lisp
+#: doc/guix.texi:29830
+#, no-wrap
+msgid ""
+"@dots{}\n"
+"(let* ((out       (assoc-ref %outputs \"out\"))\n"
+"       (targetdir (string-append out \"/share/\" ,name))\n"
+"       (app       (string-append out \"/bin/\" ,name))\n"
+"       (Rbin      (string-append (assoc-ref %build-inputs \"r-min\")\n"
+"                                 \"/bin/Rscript\")))\n"
+"  ;; @dots{}\n"
+"  (mkdir-p (string-append out \"/bin\"))\n"
+"  (call-with-output-file app\n"
+"    (lambda (port)\n"
+"      (format port\n"
+"\"#!~a\n"
+"library(shiny)\n"
+"setwd(\\\"~a\\\")\n"
+"runApp(launch.browser=0, port=4202)~%\\n\"\n"
+"      Rbin targetdir))))\n"
+msgstr ""
+"@dots{}\n"
+"(let* ((out       (assoc-ref %outputs \"out\"))\n"
+"       (targetdir (string-append out \"/share/\" ,name))\n"
+"       (app       (string-append out \"/bin/\" ,name))\n"
+"       (Rbin      (string-append (assoc-ref %build-inputs \"r-min\")\n"
+"                                 \"/bin/Rscript\")))\n"
+"  ;; @dots{}\n"
+"  (mkdir-p (string-append out \"/bin\"))\n"
+"  (call-with-output-file app\n"
+"    (lambda (port)\n"
+"      (format port\n"
+"\"#!~a\n"
+"library(shiny)\n"
+"setwd(\\\"~a\\\")\n"
+"runApp(launch.browser=0, port=4202)~%\\n\"\n"
+"      Rbin targetdir))))\n"
+
 #. type: cindex
-#: doc/guix.texi:23610
+#: doc/guix.texi:29836
+#, no-wrap
+msgid "Nix"
+msgstr "Nix"
+
+#. type: subsubheading
+#: doc/guix.texi:29837
+#, no-wrap
+msgid "Nix service"
+msgstr "Service Nix"
+
+#. type: Plain text
+#: doc/guix.texi:29840
+msgid "The @code{(gnu services nix)} module provides the following service."
+msgstr "Le module @code{(gnu services nix)} fournit le service suivant."
+
+#. type: defvr
+#: doc/guix.texi:29841
+#, no-wrap
+msgid "{Scheme Variable} nix-service-type"
+msgstr "{Variable Scheme} nix-service-type"
+
+#. type: defvr
+#: doc/guix.texi:29846
+msgid "This is the type of the service that runs build daemon of the @url{https://nixos.org/nix/, Nix} package manager.  Here is an example showing how to use it:"
+msgstr "C'est le type du service qui lance le démon de construction du gestionnaire de paquets @url{https://nixos.org/nix/, Nix}.  Voici un exemple qui montre comment l'utiliser :"
+
+#. type: lisp
+#: doc/guix.texi:29851
+#, no-wrap
+msgid ""
+"(use-modules (gnu))\n"
+"(use-service-modules nix)\n"
+"(use-package-modules package-management)\n"
+"\n"
+msgstr ""
+"(use-modules (gnu))\n"
+"(use-service-modules nix)\n"
+"(use-package-modules package-management)\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:29856
+#, no-wrap
+msgid ""
+"(operating-system\n"
+"  ;; @dots{}\n"
+"  (packages (append (list nix)\n"
+"                    %base-packages))\n"
+"\n"
+msgstr ""
+"(operating-system\n"
+"  ;; @dots{}\n"
+"  (packages (append (list nix)\n"
+"                    %base-packages))\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:29859
+#, no-wrap
+msgid ""
+"  (services (append (list (service nix-service-type))\n"
+"                    %base-services)))\n"
+msgstr ""
+"  (services (append (list (service nix-service-type))\n"
+"                    %base-services)))\n"
+
+#. type: defvr
+#: doc/guix.texi:29862
+msgid "After @command{guix system reconfigure} configure Nix for your user:"
+msgstr "Après @command{guix system reconfigure}, configurez Nix pour votre utilisateur :"
+
+#. type: item
+#: doc/guix.texi:29864
+#, no-wrap
+msgid "Add a Nix channel and update it.  See"
+msgstr "Ajoutez un canal Nix et mettez-le à jour.  Voir"
+
+#. type: itemize
+#: doc/guix.texi:29866
+msgid "@url{https://nixos.org/nix/manual/, Nix Package Manager Guide}."
+msgstr "@url{https://nixos.org/nix/manual/, Guide du gestionnaire de paquets Nix}."
+
+#. type: item
+#: doc/guix.texi:29867
+#, no-wrap
+msgid "Create a symlink to your profile and activate Nix profile:"
+msgstr "Créez un lien symbolique vers votre profil et activez le profil de Nix :"
+
+#. type: example
+#: doc/guix.texi:29873
+#, no-wrap
+msgid ""
+"$ ln -s \"/nix/var/nix/profiles/per-user/$USER/profile\" ~/.nix-profile\n"
+"$ source /run/current-system/profile/etc/profile.d/nix.sh\n"
+msgstr ""
+"$ ln -s \"/nix/var/nix/profiles/per-user/$USER/profile\" ~/.nix-profile\n"
+"$ source /run/current-system/profile/etc/profile.d/nix.sh\n"
+
+#. type: deftp
+#: doc/guix.texi:29877
+#, no-wrap
+msgid "{Data Type} nix-configuration"
+msgstr "{Type de données} nix-configuration"
+
+#. type: deftp
+#: doc/guix.texi:29879
+msgid "This data type represents the configuration of the Nix daemon."
+msgstr "Ce type de données représente la configuration du démon Nix."
+
+#. type: item
+#: doc/guix.texi:29881
+#, no-wrap
+msgid "@code{nix} (default: @code{nix})"
+msgstr "@code{nix} (par défaut : @code{nix})"
+
+#. type: table
+#: doc/guix.texi:29883
+msgid "The Nix package to use."
+msgstr "Le paquet Nix à utiliser."
+
+#. type: item
+#: doc/guix.texi:29884
+#, no-wrap
+msgid "@code{sandbox} (default: @code{#t})"
+msgstr "@code{sandbox} (par défaut : @code{#t})"
+
+#. type: table
+#: doc/guix.texi:29886
+msgid "Specifies whether builds are sandboxed by default."
+msgstr "Spécifie si les constructions sont effectuées dans un bac à sable par défaut."
+
+#. type: item
+#: doc/guix.texi:29887
+#, no-wrap
+msgid "@code{build-sandbox-items} (default: @code{'()})"
+msgstr "@code{build-sandbox-items} (par défaut : @code{'()})"
+
+#. type: table
+#: doc/guix.texi:29890
+msgid "This is a list of strings or objects appended to the @code{build-sandbox-items} field of the configuration file."
+msgstr "C'est une liste de chaines de caractères ou d'objets ajoutés au champ @code{build-sandbox-items} du fichier de configuration."
+
+#. type: table
+#: doc/guix.texi:29898
+msgid "Extra command line options for @code{nix-service-type}."
+msgstr "Options supplémentaires de la ligne de commande pour @code{nix-service-type}."
+
+#. type: cindex
+#: doc/guix.texi:29904
 #, no-wrap
 msgid "setuid programs"
 msgstr "programmes setuid"
 
 #. type: Plain text
-#: doc/guix.texi:23620
-msgid "Some programs need to run with ``root'' privileges, even when they are launched by unprivileged users.  A notorious example is the @command{passwd} program, which users can run to change their password, and which needs to access the @file{/etc/passwd} and @file{/etc/shadow} files---something normally restricted to root, for obvious security reasons.  To address that, these executables are @dfn{setuid-root}, meaning that they always run with root privileges (@pxref{How Change Persona,,, libc, The GNU C Library Reference Manual}, for more info about the setuid mechanism.)"
+#: doc/guix.texi:29914
+msgid "Some programs need to run with ``root'' privileges, even when they are launched by unprivileged users.  A notorious example is the @command{passwd} program, which users can run to change their password, and which needs to access the @file{/etc/passwd} and @file{/etc/shadow} files---something normally restricted to root, for obvious security reasons.  To address that, these executables are @dfn{setuid-root}, meaning that they always run with root privileges (@pxref{How Change Persona,,, libc, The GNU C Library Reference Manual}, for more info about the setuid mechanism)."
 msgstr "Certains programmes doivent être lancés avec les privilèges « root » même lorsqu'ils sont lancés par un utilisateur non privilégié.  Un exemple notoire est le programme @command{passwd}, que les utilisateurs peuvent appeler pour modifier leur mot de passe et qui doit accéder à @file{/etc/passwd} et @file{/etc/shadow} — ce qui est normalement réservé à root, pour des raisons de sécurité évidentes.  Pour contourner cela, ces exécutables sont @dfn{setuid-root}, ce qui signifie qu'ils seront toujours lancés avec les privilèges root (@pxref{How Change Persona,,, libc, The GNU C Library Reference Manual}, pour plus d'informations sur le mécanisme setuid)."
 
 #. type: Plain text
-#: doc/guix.texi:23627
+#: doc/guix.texi:29921
 msgid "The store itself @emph{cannot} contain setuid programs: that would be a security issue since any user on the system can write derivations that populate the store (@pxref{The Store}).  Thus, a different mechanism is used: instead of changing the setuid bit directly on files that are in the store, we let the system administrator @emph{declare} which programs should be setuid root."
 msgstr "Le dépôt lui-même ne @emph{peut pas} contenir de programmes setuid ; cela serait un problème de sécurité puisque n'importe quel utilisateur du système peut écrire une dérivation qui rempli le dépôt (@pxref{The Store}).  Donc, un mécanisme différent est utilisé : au lieu de changer le bit setuid directement sur les fichiers qui sont dans le dépôt, nous laissons à l'administrateur système le soit de @emph{déclarer} les programmes qui devraient être setuid root."
 
 #. type: Plain text
-#: doc/guix.texi:23633
+#: doc/guix.texi:29927
 msgid "The @code{setuid-programs} field of an @code{operating-system} declaration contains a list of G-expressions denoting the names of programs to be setuid-root (@pxref{Using the Configuration System}).  For instance, the @command{passwd} program, which is part of the Shadow package, can be designated by this G-expression (@pxref{G-Expressions}):"
 msgstr "Le champ @code{setuid-programs} d'une déclaration @code{operating-system} contient une liste de G-expressions qui dénotent les noms des programmes à rendre setuid-root (@pxref{Using the Configuration System}).  Par exemple, le programme @command{passwd}, qui fait partie du paquet Shadow, peut être désigné par cette G-expression (@pxref{G-Expressions}) :"
 
 #. type: example
-#: doc/guix.texi:23636
+#: doc/guix.texi:29930
 #, no-wrap
 msgid "#~(string-append #$shadow \"/bin/passwd\")\n"
 msgstr "#~(string-append #$shadow \"/bin/passwd\")\n"
 
 #. type: Plain text
-#: doc/guix.texi:23640
+#: doc/guix.texi:29934
 msgid "A default set of setuid programs is defined by the @code{%setuid-programs} variable of the @code{(gnu system)} module."
 msgstr "Un ensemble de programmes par défaut est défini par la variable @code{%setuid-programs} du module @code{(gnu system)}."
 
 #. type: defvr
-#: doc/guix.texi:23641
+#: doc/guix.texi:29935
 #, no-wrap
 msgid "{Scheme Variable} %setuid-programs"
 msgstr "{Variable Scheme} %setuid-programs"
 
 #. type: defvr
-#: doc/guix.texi:23643
+#: doc/guix.texi:29937
 msgid "A list of G-expressions denoting common programs that are setuid-root."
 msgstr "Une liste de G-expressions qui dénotent les programmes communément setuid-root."
 
 #. type: defvr
-#: doc/guix.texi:23646
+#: doc/guix.texi:29940
 msgid "The list includes commands such as @command{passwd}, @command{ping}, @command{su}, and @command{sudo}."
 msgstr "La liste inclus des commandes comme @command{passwd}, @command{ping}, @command{su} et @command{sudo}."
 
 #. type: Plain text
-#: doc/guix.texi:23652
+#: doc/guix.texi:29946
 msgid "Under the hood, the actual setuid programs are created in the @file{/run/setuid-programs} directory at system activation time.  The files in this directory refer to the ``real'' binaries, which are in the store."
 msgstr "Sous le capot, les programmes setuid sont créés dans le répertoire @file{/run/setuid-programs} au moment de l'activation du système.  Les fichiers dans ce répertoire se réfèrent aux « vrais » binaires, qui sont dans le dépot."
 
 #. type: cindex
-#: doc/guix.texi:23656
+#: doc/guix.texi:29950
 #, no-wrap
 msgid "HTTPS, certificates"
 msgstr "HTTPS, certificats"
 
 #. type: cindex
-#: doc/guix.texi:23657
+#: doc/guix.texi:29951
 #, no-wrap
 msgid "X.509 certificates"
-msgstr "certificats X.509"
+msgstr "Certificats X.509"
 
 #. type: cindex
-#: doc/guix.texi:23658
+#: doc/guix.texi:29952
 #, no-wrap
 msgid "TLS"
 msgstr "TLS"
 
 #. type: Plain text
-#: doc/guix.texi:23665
+#: doc/guix.texi:29959
 msgid "Web servers available over HTTPS (that is, HTTP over the transport-layer security mechanism, TLS) send client programs an @dfn{X.509 certificate} that the client can then use to @emph{authenticate} the server.  To do that, clients verify that the server's certificate is signed by a so-called @dfn{certificate authority} (CA).  But to verify the CA's signature, clients must have first acquired the CA's certificate."
 msgstr "Les serveurs web disponibles par HTTPS (c'est-à-dire HTTP sur le mécanisme de la couche de transport sécurisée, TLS) envoient aux clients un @dfn{certificat X.509} que les clients peuvent utiliser pour @emph{authentifier} le serveur.  Pour cela, les clients vérifient que le certificat du serveur est signé par une @dfn{autorité de certification} (AC ou CA).  Mais pour vérifier la signature de la CA, les clients doivent d'abord avoir récupéré le certificat de la CA."
 
 #. type: Plain text
-#: doc/guix.texi:23669
+#: doc/guix.texi:29963
 msgid "Web browsers such as GNU@tie{}IceCat include their own set of CA certificates, such that they are able to verify CA signatures out-of-the-box."
 msgstr "Les navigateurs web comme GNU@tie{}IceCat incluent leur propre liste de certificats, pour qu'ils puissent vérifier les signatures des CA directement."
 
 #. type: Plain text
-#: doc/guix.texi:23673
+#: doc/guix.texi:29967
 msgid "However, most other programs that can talk HTTPS---@command{wget}, @command{git}, @command{w3m}, etc.---need to be told where CA certificates can be found."
 msgstr "Cependant, la plupart des autres programmes qui peuvent parler HTTPS — @command{wget}, @command{git}, @command{w3m}, etc — doivent savoir où trouver les certificats des CA."
 
 #. type: Plain text
-#: doc/guix.texi:23680
+#: doc/guix.texi:29974
 msgid "In Guix, this is done by adding a package that provides certificates to the @code{packages} field of the @code{operating-system} declaration (@pxref{operating-system Reference}).  Guix includes one such package, @code{nss-certs}, which is a set of CA certificates provided as part of Mozilla's Network Security Services."
 msgstr "Dans Guix, cela se fait en ajoutant un paquet qui fournit les certificats dans le champ @code{packages} de la déclaration @code{operating-system} (@pxref{operating-system Reference}).  Guix inclut l'un de ces paquets, @code{nss-certs}, qui est un ensemble de certificats de CA fourni par les services de sécurité réseau de Mozilla (nss)."
 
 #. type: Plain text
-#: doc/guix.texi:23685
-msgid "Note that it is @emph{not} part of @var{%base-packages}, so you need to explicitly add it.  The @file{/etc/ssl/certs} directory, which is where most applications and libraries look for certificates by default, points to the certificates installed globally."
-msgstr "Remarquez qu'il ne fait @emph{pas} partie de @var{%base-packages}, donc vous devez explicitement l'ajouter.  Le répertoire @file{/etc/ssl/certs}, là où la plupart des applications et bibliothèques vont rechercher les certificats par défaut, pointe vers les certificats installés globalement."
+#: doc/guix.texi:29979
+msgid "Note that it is @emph{not} part of @code{%base-packages}, so you need to explicitly add it.  The @file{/etc/ssl/certs} directory, which is where most applications and libraries look for certificates by default, points to the certificates installed globally."
+msgstr "Remarquez qu'il ne fait @emph{pas} partie de @code{%base-packages}, donc vous devez explicitement l'ajouter.  Le répertoire @file{/etc/ssl/certs}, là où la plupart des applications et bibliothèques vont rechercher les certificats par défaut, pointe vers les certificats installés globalement."
 
 #. type: Plain text
-#: doc/guix.texi:23695
-msgid "Unprivileged users, including users of Guix on a foreign distro, can also install their own certificate package in their profile.  A number of environment variables need to be defined so that applications and libraries know where to find them.  Namely, the OpenSSL library honors the @code{SSL_CERT_DIR} and @code{SSL_CERT_FILE} variables.  Some applications add their own environment variables; for instance, the Git version control system honors the certificate bundle pointed to by the @code{GIT_SSL_CAINFO} environment variable.  Thus, you would typically run something like:"
-msgstr "Les utilisateurs non privilégiés, dont les utilisateurs de Guix sur une distro externe, peuvent aussi installer leur propre paquet de certificats dans leur profil.  Un certain nombre de variables d'environnement doivent être définies pour que les applications et les bibliothèques puissent les trouver.  En particulier, la bibliothèque OpenSSL honore les variables @code{SSL_CERT_DIR} et @code{SSL_CERT_FILE}.  Certaines applications ajoutent leurs propres variables, par exemple le système de contrôle de version Git honore le lot de certificats pointé par la variable d'environnement @code{GIT_SSL_CAINFO}.  Ainsi, vous lanceriez quelque chose comme ceci :"
+#: doc/guix.texi:29989
+msgid "Unprivileged users, including users of Guix on a foreign distro, can also install their own certificate package in their profile.  A number of environment variables need to be defined so that applications and libraries know where to find them.  Namely, the OpenSSL library honors the @env{SSL_CERT_DIR} and @env{SSL_CERT_FILE} variables.  Some applications add their own environment variables; for instance, the Git version control system honors the certificate bundle pointed to by the @env{GIT_SSL_CAINFO} environment variable.  Thus, you would typically run something like:"
+msgstr "Les utilisateurs non privilégiés, dont les utilisateurs de Guix sur une distro externe, peuvent aussi installer leur propre paquet de certificats dans leur profil.  Un certain nombre de variables d'environnement doivent être définies pour que les applications et les bibliothèques puissent les trouver.  En particulier, la bibliothèque OpenSSL honore les variables @env{SSL_CERT_DIR} et @env{SSL_CERT_FILE}.  Certaines applications ajoutent leurs propres variables, par exemple le système de contrôle de version Git honore le lot de certificats pointé par la variable d'environnement @env{GIT_SSL_CAINFO}.  Ainsi, vous lanceriez quelque chose comme ceci :"
 
 #. type: example
-#: doc/guix.texi:23701
+#: doc/guix.texi:29995
 #, no-wrap
 msgid ""
-"$ guix install nss-certs\n"
-"$ export SSL_CERT_DIR=\"$HOME/.guix-profile/etc/ssl/certs\"\n"
-"$ export SSL_CERT_FILE=\"$HOME/.guix-profile/etc/ssl/certs/ca-certificates.crt\"\n"
-"$ export GIT_SSL_CAINFO=\"$SSL_CERT_FILE\"\n"
+"guix install nss-certs\n"
+"export SSL_CERT_DIR=\"$HOME/.guix-profile/etc/ssl/certs\"\n"
+"export SSL_CERT_FILE=\"$HOME/.guix-profile/etc/ssl/certs/ca-certificates.crt\"\n"
+"export GIT_SSL_CAINFO=\"$SSL_CERT_FILE\"\n"
 msgstr ""
-"$ guix install nss-certs\n"
-"$ export SSL_CERT_DIR=\"$HOME/.guix-profile/etc/ssl/certs\"\n"
-"$ export SSL_CERT_FILE=\"$HOME/.guix-profile/etc/ssl/certs/ca-certificates.crt\"\n"
-"$ export GIT_SSL_CAINFO=\"$SSL_CERT_FILE\"\n"
+"guix install nss-certs\n"
+"export SSL_CERT_DIR=\"$HOME/.guix-profile/etc/ssl/certs\"\n"
+"export SSL_CERT_FILE=\"$HOME/.guix-profile/etc/ssl/certs/ca-certificates.crt\"\n"
+"export GIT_SSL_CAINFO=\"$SSL_CERT_FILE\"\n"
 
 #. type: Plain text
-#: doc/guix.texi:23706
-msgid "As another example, R requires the @code{CURL_CA_BUNDLE} environment variable to point to a certificate bundle, so you would have to run something like this:"
-msgstr "Un autre exemple serait R, qui requière que la variable d'environnement @code{CURL_CA_BUNDLE} pointe sur le lot de certificats, donc vous lanceriez quelque chose comme ceci :"
+#: doc/guix.texi:30000
+msgid "As another example, R requires the @env{CURL_CA_BUNDLE} environment variable to point to a certificate bundle, so you would have to run something like this:"
+msgstr "Un autre exemple serait R, qui a besoin que la variable d'environnement @env{CURL_CA_BUNDLE} pointe sur le lot de certificats, donc vous lanceriez quelque chose comme ceci :"
 
 #. type: example
-#: doc/guix.texi:23710
+#: doc/guix.texi:30004
 #, no-wrap
 msgid ""
-"$ guix install nss-certs\n"
-"$ export CURL_CA_BUNDLE=\"$HOME/.guix-profile/etc/ssl/certs/ca-certificates.crt\"\n"
+"guix install nss-certs\n"
+"export CURL_CA_BUNDLE=\"$HOME/.guix-profile/etc/ssl/certs/ca-certificates.crt\"\n"
 msgstr ""
-"$ guix install nss-certs\n"
-"$ export CURL_CA_BUNDLE=\"$HOME/.guix-profile/etc/ssl/certs/ca-certificates.crt\"\n"
+"guix install nss-certs\n"
+"export CURL_CA_BUNDLE=\"$HOME/.guix-profile/etc/ssl/certs/ca-certificates.crt\"\n"
 
 #. type: Plain text
-#: doc/guix.texi:23714
+#: doc/guix.texi:30008
 msgid "For other applications you may want to look up the required environment variable in the relevant documentation."
 msgstr "Pour d'autres applications vous pourriez avoir besoin de chercher la variable d'environnement requise dans leur documentation."
 
 #. type: cindex
-#: doc/guix.texi:23719
+#: doc/guix.texi:30013
 #, no-wrap
 msgid "name service switch"
 msgstr "name service switch"
 
 #. type: cindex
-#: doc/guix.texi:23720
+#: doc/guix.texi:30014
 #, no-wrap
 msgid "NSS"
 msgstr "NSS"
 
 #. type: Plain text
-#: doc/guix.texi:23729
+#: doc/guix.texi:30023
 msgid "The @code{(gnu system nss)} module provides bindings to the configuration file of the libc @dfn{name service switch} or @dfn{NSS} (@pxref{NSS Configuration File,,, libc, The GNU C Library Reference Manual}).  In a nutshell, the NSS is a mechanism that allows libc to be extended with new ``name'' lookup methods for system databases, which includes host names, service names, user accounts, and more (@pxref{Name Service Switch, System Databases and Name Service Switch,, libc, The GNU C Library Reference Manual})."
 msgstr "Le module @code{(gnu system nss)} fournit des liaisons pour le fichier de configuration du @dfn{name service switch} ou @dfn{NSS} de la libc (@pxref{NSS Configuration File,,, libc, The GNU C Library Reference Manual}).  En résumé, NSS est un mécanisme qui permet à la libc d'être étendue avec de nouvelles méthodes de résolution de « noms » dans les bases de données du système, comme les noms d'hôtes, les noms des services, les comptes utilisateurs et bien plus (@pxref{Name Service Switch, System Databases and Name Service Switch,, libc, The GNU C Library Reference Manual})."
 
 #. type: Plain text
-#: doc/guix.texi:23736
+#: doc/guix.texi:30030
 msgid "The NSS configuration specifies, for each system database, which lookup method is to be used, and how the various methods are chained together---for instance, under which circumstances NSS should try the next method in the list.  The NSS configuration is given in the @code{name-service-switch} field of @code{operating-system} declarations (@pxref{operating-system Reference, @code{name-service-switch}})."
 msgstr "La configuration de NSS spécifie, pour chaque base de données du système, quelle méthode de résolution utiliser, et comment les diverses méthodes sont enchaînées — par exemple, sous certaines circonstances, NSS devrait essayer la méthode suivante de la liste.  La configuration de NSS est donnée dans le champ @code{name-service-switch} de la déclaration @code{operating-system} (@pxref{operating-system Reference, @code{name-service-switch}})."
 
 #. type: cindex
-#: doc/guix.texi:23737
+#: doc/guix.texi:30031
 #, no-wrap
 msgid "nss-mdns"
 msgstr "nss-mdns"
 
 #. type: cindex
-#: doc/guix.texi:23738
+#: doc/guix.texi:30032
 #, no-wrap
 msgid ".local, host name lookup"
 msgstr ".local, résolution de nom d'hôte"
 
 #. type: Plain text
-#: doc/guix.texi:23743
-msgid "As an example, the declaration below configures the NSS to use the @uref{http://0pointer.de/lennart/projects/nss-mdns/, @code{nss-mdns} back-end}, which supports host name lookups over multicast DNS (mDNS)  for host names ending in @code{.local}:"
-msgstr "Par exemple, la déclation ci-dessous configure NSS pour utiliser le @uref{http://0pointer.de/lennart/projects/nss-mdns/, moteur @code{nss-mdns}}, qui supporte la résolution de nom d'hôte sur le DNS multicast (mDNS) pour les noms d'hôtes terminant par @code{.local} :"
+#: doc/guix.texi:30037
+msgid "As an example, the declaration below configures the NSS to use the @uref{https://0pointer.de/lennart/projects/nss-mdns/, @code{nss-mdns} back-end}, which supports host name lookups over multicast DNS (mDNS)  for host names ending in @code{.local}:"
+msgstr "Par exemple, la déclaration ci-dessous configure NSS pour utiliser le @uref{https://0pointer.de/lennart/projects/nss-mdns/, moteur @code{nss-mdns}}, qui supporte la résolution de nom d'hôte sur le DNS multicast (mDNS) pour les noms d'hôtes terminant par @code{.local} :"
 
-#. type: example
-#: doc/guix.texi:23747
+#. type: lisp
+#: doc/guix.texi:30041
 #, no-wrap
 msgid ""
 "(name-service-switch\n"
@@ -44149,8 +56038,8 @@ msgstr ""
 "   (hosts (list %files    ;first, check /etc/hosts\n"
 "\n"
 
-#. type: example
-#: doc/guix.texi:23752
+#. type: lisp
+#: doc/guix.texi:30046
 #, no-wrap
 msgid ""
 "                ;; If the above did not succeed, try\n"
@@ -44165,8 +56054,8 @@ msgstr ""
 "                  (name \"mdns_minimal\")\n"
 "\n"
 
-#. type: example
-#: doc/guix.texi:23758
+#. type: lisp
+#: doc/guix.texi:30052
 #, no-wrap
 msgid ""
 "                  ;; 'mdns_minimal' is authoritative for\n"
@@ -44183,8 +56072,8 @@ msgstr ""
 "                             (not-found => return))))\n"
 "\n"
 
-#. type: example
-#: doc/guix.texi:23762
+#. type: lisp
+#: doc/guix.texi:30056
 #, no-wrap
 msgid ""
 "                ;; Then fall back to DNS.\n"
@@ -44197,8 +56086,8 @@ msgstr ""
 "                  (name \"dns\"))\n"
 "\n"
 
-#. type: example
-#: doc/guix.texi:23766
+#. type: lisp
+#: doc/guix.texi:30060
 #, no-wrap
 msgid ""
 "                ;; Finally, try with the \"full\" 'mdns'.\n"
@@ -44210,157 +56099,157 @@ msgstr ""
 "                  (name \"mdns\")))))\n"
 
 #. type: Plain text
-#: doc/guix.texi:23771
+#: doc/guix.texi:30065
 msgid "Do not worry: the @code{%mdns-host-lookup-nss} variable (see below)  contains this configuration, so you will not have to type it if all you want is to have @code{.local} host lookup working."
 msgstr "Ne vous inquiétez pas : la variable @code{%mdns-host-lookup-nss} (voir plus bas) contient cette configuration, donc vous n'avez pas besoin de tout taper si vous voulez simplement que la résolution de nom en @code{.local} fonctionne."
 
 #. type: Plain text
-#: doc/guix.texi:23779
-msgid "Note that, in this case, in addition to setting the @code{name-service-switch} of the @code{operating-system} declaration, you also need to use @code{avahi-service-type} (@pxref{Networking Services, @code{avahi-service-type}}), or @var{%desktop-services}, which includes it (@pxref{Desktop Services}).  Doing this makes @code{nss-mdns} accessible to the name service cache daemon (@pxref{Base Services, @code{nscd-service}})."
-msgstr "Remarquez que dans ce cas, en plus de mettre en place le @code{name-service-switch} de la déclaration @code{operating-system}, vous devez aussi utiliser @code{avahi-service-type} (@pxref{Networking Services, @code{avahi-service}}), ou @var{%desktop-services} qui l'inclut (@pxref{Desktop Services}).  Cela rend @code{nss-mdns} accessible au démon de cache du service de nom (@pxref{Base Services, @code{nscd-service}})."
+#: doc/guix.texi:30073
+msgid "Note that, in this case, in addition to setting the @code{name-service-switch} of the @code{operating-system} declaration, you also need to use @code{avahi-service-type} (@pxref{Networking Services, @code{avahi-service-type}}), or @code{%desktop-services}, which includes it (@pxref{Desktop Services}).  Doing this makes @code{nss-mdns} accessible to the name service cache daemon (@pxref{Base Services, @code{nscd-service}})."
+msgstr "Remarquez que dans ce cas, en plus de mettre en place le @code{name-service-switch} de la déclaration @code{operating-system}, vous devez aussi utiliser @code{avahi-service-type} (@pxref{Networking Services, @code{avahi-service}}), ou @code{%desktop-services} qui l'inclut (@pxref{Desktop Services}).  Cela rend @code{nss-mdns} accessible au démon de cache du service de nom (@pxref{Base Services, @code{nscd-service}})."
 
 #. type: Plain text
-#: doc/guix.texi:23782
+#: doc/guix.texi:30076
 msgid "For convenience, the following variables provide typical NSS configurations."
 msgstr "Pour votre confort, les variables suivantes contiennent des configurations NSS typiques."
 
 #. type: defvr
-#: doc/guix.texi:23783
+#: doc/guix.texi:30077
 #, no-wrap
 msgid "{Scheme Variable} %default-nss"
 msgstr "{Variable Scheme} %default-nss"
 
 #. type: defvr
-#: doc/guix.texi:23786
+#: doc/guix.texi:30080
 msgid "This is the default name service switch configuration, a @code{name-service-switch} object."
 msgstr "C'est la configuration NSS par défaut, un objet @code{name-service-switch}."
 
 #. type: defvr
-#: doc/guix.texi:23788
+#: doc/guix.texi:30082
 #, no-wrap
 msgid "{Scheme Variable} %mdns-host-lookup-nss"
 msgstr "{Variable Scheme} %mdns-host-lookup-nss"
 
 #. type: defvr
-#: doc/guix.texi:23791
+#: doc/guix.texi:30085
 msgid "This is the name service switch configuration with support for host name lookup over multicast DNS (mDNS) for host names ending in @code{.local}."
 msgstr "C'est la configuration NSS avec le support de la résolution de noms sur DNS multicast (mDNS) pour les noms d'hôtes en @code{.local}."
 
 #. type: Plain text
-#: doc/guix.texi:23801
+#: doc/guix.texi:30095
 msgid "The reference for name service switch configuration is given below.  It is a direct mapping of the configuration file format of the C library , so please refer to the C library manual for more information (@pxref{NSS Configuration File,,, libc, The GNU C Library Reference Manual}).  Compared to the configuration file format of libc NSS, it has the advantage not only of adding this warm parenthetic feel that we like, but also static checks: you will know about syntax errors and typos as soon as you run @command{guix system}."
 msgstr "La référence pour la configuration de NSS est donnée ci-dessous.  C'est une correspondance directe avec le format de fichier de la bibliothèque C, donc référez-vous au manuel de la bibliothèque C pour plus d'informations (@pxref{NSS Configuration File,,, libc, The GNU C Library Reference Manual}).  Comparé au format de fichier de configuration de NSS, cette configuration a l'avantage non seulement d'ajouter ces bonnes vieilles parenthèses, mais aussi des vérifications statiques ; vous saurez s'il y a des erreurs de syntaxe et des coquilles dès que vous lancerez @command{guix system}."
 
 #. type: deftp
-#: doc/guix.texi:23802
+#: doc/guix.texi:30096
 #, no-wrap
 msgid "{Data Type} name-service-switch"
 msgstr "{Type de données} name-service-switch"
 
 #. type: deftp
-#: doc/guix.texi:23807
+#: doc/guix.texi:30101
 msgid "This is the data type representation the configuration of libc's name service switch (NSS).  Each field below represents one of the supported system databases."
 msgstr "C'est le type de données représentant la configuration de NSS.  Chaque champ ci-dessous représente l'un des système de bases de données supportés."
 
 #. type: item
-#: doc/guix.texi:23809
+#: doc/guix.texi:30103
 #, no-wrap
 msgid "aliases"
 msgstr "aliases"
 
 #. type: itemx
-#: doc/guix.texi:23810
+#: doc/guix.texi:30104
 #, no-wrap
 msgid "ethers"
 msgstr "ethers"
 
 #. type: itemx
-#: doc/guix.texi:23812
+#: doc/guix.texi:30106
 #, no-wrap
 msgid "gshadow"
 msgstr "gshadow"
 
 #. type: itemx
-#: doc/guix.texi:23813
+#: doc/guix.texi:30107
 #, no-wrap
 msgid "hosts"
 msgstr "hosts"
 
 #. type: itemx
-#: doc/guix.texi:23814
+#: doc/guix.texi:30108
 #, no-wrap
 msgid "initgroups"
 msgstr "initgroups"
 
 #. type: itemx
-#: doc/guix.texi:23815
+#: doc/guix.texi:30109
 #, no-wrap
 msgid "netgroup"
 msgstr "netgroup"
 
 #. type: itemx
-#: doc/guix.texi:23816
+#: doc/guix.texi:30110
 #, no-wrap
 msgid "networks"
 msgstr "networks"
 
 #. type: itemx
-#: doc/guix.texi:23818
+#: doc/guix.texi:30112
 #, no-wrap
 msgid "public-key"
 msgstr "public-key"
 
 #. type: itemx
-#: doc/guix.texi:23819
+#: doc/guix.texi:30113
 #, no-wrap
 msgid "rpc"
 msgstr "rpc"
 
 #. type: itemx
-#: doc/guix.texi:23821
+#: doc/guix.texi:30115
 #, no-wrap
 msgid "shadow"
 msgstr "shadow"
 
 #. type: table
-#: doc/guix.texi:23824
+#: doc/guix.texi:30118
 msgid "The system databases handled by the NSS.  Each of these fields must be a list of @code{<name-service>} objects (see below)."
 msgstr "Les bases de données du système gérées par NSS.  Chaque champ doit être une liste d'objets @code{<name-service>} (voir plus bas)."
 
 #. type: deftp
-#: doc/guix.texi:23827
+#: doc/guix.texi:30121
 #, no-wrap
 msgid "{Data Type} name-service"
 msgstr "{Type de données} name-service"
 
 #. type: deftp
-#: doc/guix.texi:23831
+#: doc/guix.texi:30125
 msgid "This is the data type representing an actual name service and the associated lookup action."
 msgstr "C'est le type de données représentant un service de noms et l'action de résolution associée."
 
 #. type: table
-#: doc/guix.texi:23836
+#: doc/guix.texi:30130
 msgid "A string denoting the name service (@pxref{Services in the NSS configuration,,, libc, The GNU C Library Reference Manual})."
 msgstr "Une chaîne dénotant le service de nom (@pxref{Services in the NSS configuration,,, libc, The GNU C Library Reference Manual})."
 
 #. type: table
-#: doc/guix.texi:23841
+#: doc/guix.texi:30135
 msgid "Note that name services listed here must be visible to nscd.  This is achieved by passing the @code{#:name-services} argument to @code{nscd-service} the list of packages providing the needed name services (@pxref{Base Services, @code{nscd-service}})."
 msgstr "Remarquez que les services de dnoms listés ici doivent être visibles à nscd.  Cela se fait en passant la liste des paquets fournissant les services de noms à l'argument @code{#:name-services} de @code{nscd-service} (@pxref{Base Services, @code{nscd-service}})."
 
 #. type: item
-#: doc/guix.texi:23842
+#: doc/guix.texi:30136
 #, no-wrap
 msgid "reaction"
 msgstr "reaction"
 
 #. type: table
-#: doc/guix.texi:23846
+#: doc/guix.texi:30140
 msgid "An action specified using the @code{lookup-specification} macro (@pxref{Actions in the NSS configuration,,, libc, The GNU C Library Reference Manual}).  For example:"
 msgstr "Une action spécifiée par la macro @code{lookup-specification} (@pxref{Actions in the NSS configuration,,, libc, The GNU C Library Reference Manual}).  Par exemple :"
 
-#. type: example
-#: doc/guix.texi:23850
+#. type: lisp
+#: doc/guix.texi:30144
 #, no-wrap
 msgid ""
 "(lookup-specification (unavailable => continue)\n"
@@ -44370,17 +56259,17 @@ msgstr ""
 "                      (success => return))\n"
 
 #. type: Plain text
-#: doc/guix.texi:23864
+#: doc/guix.texi:30158
 msgid "For bootstrapping purposes, the Linux-Libre kernel is passed an @dfn{initial RAM disk}, or @dfn{initrd}.  An initrd contains a temporary root file system as well as an initialization script.  The latter is responsible for mounting the real root file system, and for loading any kernel modules that may be needed to achieve that."
 msgstr "Pour le démarrage, on passe au noyau Linux-Libre un @dfn{disque de RAM initial} ou @dfn{initrd}.  Un initrd contient un système de fichier racine temporaire ainsi qu'un script d'initialisation.  Ce dernier est responsable du montage du vrai système de fichier racine et du chargement des modules du noyau qui peuvent être nécessaires à cette tâche."
 
 #. type: Plain text
-#: doc/guix.texi:23873
+#: doc/guix.texi:30167
 msgid "The @code{initrd-modules} field of an @code{operating-system} declaration allows you to specify Linux-libre kernel modules that must be available in the initrd.  In particular, this is where you would list modules needed to actually drive the hard disk where your root partition is---although the default value of @code{initrd-modules} should cover most use cases.  For example, assuming you need the @code{megaraid_sas} module in addition to the default modules to be able to access your root file system, you would write:"
 msgstr "Le champ @code{initrd-modules} d'une déclaration @code{operating-system} vous permet de spécifier les modules du noyau Linux-Libre qui doivent être disponibles dans l'initrd.  En particulier, c'est là où vous devez lister les modules requis pour effectivement piloter le disque dur où se trouve la partition racine — bien que la valeur par défaut de @code{initrd-modules} couvre la plupart des cas.  Par exemple, en supposant que vous ayez besoin du module @code{megaraid_sas} en plus des modules par défaut pour accéder à votre système de fichiers racine, vous écririez :"
 
-#. type: example
-#: doc/guix.texi:23878
+#. type: lisp
+#: doc/guix.texi:30172
 #, no-wrap
 msgid ""
 "(operating-system\n"
@@ -44392,28 +56281,28 @@ msgstr ""
 "  (initrd-modules (cons \"megaraid_sas\" %base-initrd-modules)))\n"
 
 #. type: defvr
-#: doc/guix.texi:23880
+#: doc/guix.texi:30174
 #, no-wrap
 msgid "{Scheme Variable} %base-initrd-modules"
 msgstr "{Variable Scheme} %base-initrd-modules"
 
 #. type: defvr
-#: doc/guix.texi:23882
+#: doc/guix.texi:30176
 msgid "This is the list of kernel modules included in the initrd by default."
 msgstr "C'est la liste des modules du noyau inclus dans l'initrd par défaut."
 
 #. type: Plain text
-#: doc/guix.texi:23890
+#: doc/guix.texi:30184
 msgid "Furthermore, if you need lower-level customization, the @code{initrd} field of an @code{operating-system} declaration allows you to specify which initrd you would like to use.  The @code{(gnu system linux-initrd)} module provides three ways to build an initrd: the high-level @code{base-initrd} procedure and the low-level @code{raw-initrd} and @code{expression->initrd} procedures."
 msgstr "En plus, si vous avez besoin de paramétrages plus bas niveau, le champ @code{initrd} d'une déclaration @code{operating-system} vous permet de spécifier quel initrd vous voudriez utiliser.  Le module @code{(gnu system linux-initrd)} fournit trois manières de construire un initrd : la procédure @code{base-initrd} de haut niveau et les procédures @code{raw-initrd} et @code{expression->initrd} de bas niveau."
 
 #. type: Plain text
-#: doc/guix.texi:23895
+#: doc/guix.texi:30189
 msgid "The @code{base-initrd} procedure is intended to cover most common uses.  For example, if you want to add a bunch of kernel modules to be loaded at boot time, you can define the @code{initrd} field of the operating system declaration like this:"
 msgstr "La procédure @code{base-initrd} est conçue pour couvrir la plupart des usages courants.  Par exemple, si vous voulez ajouter des modules du noyau à charger au démarrage, vous pouvez définir le champ @code{initrd} de votre déclaration de système d'exploitation ainsi :"
 
-#. type: example
-#: doc/guix.texi:23903
+#. type: lisp
+#: doc/guix.texi:30197
 #, no-wrap
 msgid ""
 "(initrd (lambda (file-systems . rest)\n"
@@ -44431,379 +56320,425 @@ msgstr ""
 "                 rest)))\n"
 
 #. type: Plain text
-#: doc/guix.texi:23908
+#: doc/guix.texi:30202
 msgid "The @code{base-initrd} procedure also handles common use cases that involves using the system as a QEMU guest, or as a ``live'' system with volatile root file system."
 msgstr "La procédure @code{base-initrd} gère aussi les cas d'utilisation courants qui concernent l'utilisation du système comme client QEMU, ou comme un système « live » avec un système de fichier racine volatile."
 
 #. type: Plain text
-#: doc/guix.texi:23915
+#: doc/guix.texi:30209
 msgid "The @code{base-initrd} procedure is built from @code{raw-initrd} procedure.  Unlike @code{base-initrd}, @code{raw-initrd} doesn't do anything high-level, such as trying to guess which kernel modules and packages should be included to the initrd. An example use of @code{raw-initrd} is when a user has a custom Linux kernel configuration and default kernel modules included by @code{base-initrd} are not available."
 msgstr "La procédure @code{base-initrd} est construite à partir de la procédure @code{raw-initrd}.  Contrairement à @code{base-initrd}, @code{raw-initrd} ne fait rien à haut-niveau, comme essayer de deviner les modules du noyau et les paquets qui devraient être inclus dans l'initrd.  Un exemple d'utilisation de @code{raw-initrd} serait si un utilisateur a une configuration personnalisée du noyau Linux et que les modules du noyau inclus par défaut par @code{base-initrd} ne sont pas disponibles."
 
 #. type: Plain text
-#: doc/guix.texi:23920
+#: doc/guix.texi:30214
 msgid "The initial RAM disk produced by @code{base-initrd} or @code{raw-initrd} honors several options passed on the Linux kernel command line (that is, arguments passed @i{via} the @code{linux} command of GRUB, or the @code{-append} option of QEMU), notably:"
 msgstr "Le disque de RAM initial produit par @code{base-initrd} ou @code{raw-initrd} honore plusieurs options passées par la ligne de commande du noyau Linux (c'est-à-dire les arguments passés via la commande @code{linux} de GRUB ou l'option @code{-append} de QEMU), notamment :"
 
 #. type: item
-#: doc/guix.texi:23922
+#: doc/guix.texi:30216
 #, no-wrap
 msgid "--load=@var{boot}"
 msgstr "--load=@var{boot}"
 
 #. type: table
-#: doc/guix.texi:23925
+#: doc/guix.texi:30219
 msgid "Tell the initial RAM disk to load @var{boot}, a file containing a Scheme program, once it has mounted the root file system."
 msgstr "Dit au disque de RAM initial de charger @var{boot}, un fichier contenant un programme Scheme, une fois qu'il a monté le système de fichier racine."
 
 #. type: table
-#: doc/guix.texi:23929
+#: doc/guix.texi:30223
 msgid "Guix uses this option to yield control to a boot program that runs the service activation programs and then spawns the GNU@tie{}Shepherd, the initialization system."
 msgstr "Guix utilise cette option pour donner le contrôle à un programme de démarrage qui lance les programmes d'activation de services puis démarre le GNU@tie{}Shepherd, le système d'initialisation."
 
 #. type: item
-#: doc/guix.texi:23930
+#: doc/guix.texi:30224
 #, no-wrap
 msgid "--root=@var{root}"
 msgstr "--root=@var{root}"
 
 #. type: table
-#: doc/guix.texi:23934
-msgid "Mount @var{root} as the root file system.  @var{root} can be a device name like @code{/dev/sda1}, a file system label, or a file system UUID."
-msgstr "Monte @var{root} comme système de fichier racine.  @var{root} peut être un nom de périphérique comme @code{/dev/sda1}, une étiquette de système de fichiers ou un UUID de système de fichiers."
+#: doc/guix.texi:30229
+msgid "Mount @var{root} as the root file system.  @var{root} can be a device name like @code{/dev/sda1}, a file system label, or a file system UUID.  When unspecified, the device name from the root file system of the operating system declaration is used."
+msgstr "Monte @var{root} comme système de fichier racine.  @var{root} peut être un nom de périphérique comme @code{/dev/sda1}, une étiquette de système de fichiers ou un UUID de système de fichiers.  Lorsque ce n'est pas spécifié, le nom de périphérique du système de fichier racine de la déclaration de système d'exploitation est utilisé."
 
 #. type: table
-#: doc/guix.texi:23938
+#: doc/guix.texi:30233
 msgid "Have @file{/run/booted-system} and @file{/run/current-system} point to @var{system}."
 msgstr "S'assure que @file{/run/booted-system} et @file{/run/current-system} pointent vers @var{system}."
 
 #. type: item
-#: doc/guix.texi:23939
+#: doc/guix.texi:30234
 #, no-wrap
 msgid "modprobe.blacklist=@var{modules}@dots{}"
 msgstr "modprobe.blacklist=@var{modules}@dots{}"
 
 #. type: cindex
-#: doc/guix.texi:23940
+#: doc/guix.texi:30235
 #, no-wrap
 msgid "module, black-listing"
 msgstr "module, black-list"
 
 #. type: cindex
-#: doc/guix.texi:23941
+#: doc/guix.texi:30236
 #, no-wrap
 msgid "black list, of kernel modules"
 msgstr "black-list, des modules du noyau"
 
 #. type: table
-#: doc/guix.texi:23946
+#: doc/guix.texi:30241
 msgid "Instruct the initial RAM disk as well as the @command{modprobe} command (from the kmod package) to refuse to load @var{modules}.  @var{modules} must be a comma-separated list of module names---e.g., @code{usbkbd,9pnet}."
 msgstr "Dit au disque de RAM initial ainsi qu'à la commande @command{modprobe} (du paquet kmod) de refuser de charger @var{modules}.  @var{modules} doit être une liste de noms de modules séparés par des virgules — p.@: ex.@: @code{usbkbd,9pnet}."
 
 #. type: item
-#: doc/guix.texi:23947
+#: doc/guix.texi:30242
 #, no-wrap
 msgid "--repl"
 msgstr "--repl"
 
 #. type: table
-#: doc/guix.texi:23953
+#: doc/guix.texi:30248
 msgid "Start a read-eval-print loop (REPL) from the initial RAM disk before it tries to load kernel modules and to mount the root file system.  Our marketing team calls it @dfn{boot-to-Guile}.  The Schemer in you will love it.  @xref{Using Guile Interactively,,, guile, GNU Guile Reference Manual}, for more information on Guile's REPL."
 msgstr "Démarre une boucle lecture-évaluation-affichage (REPL) depuis le disque de RAM initial avant qu'il n'essaye de charger les modules du noyau et de monter le système de fichiers racine.  Notre équipe commerciale appelle cela @dfn{boot-to-Guile}.  Le Schemeur en vous va adorer.  @xref{Using Guile Interactively,,, guile, GNU Guile Reference Manual}, pour plus d'information sur le REPL de Guile."
 
 #. type: Plain text
-#: doc/guix.texi:23959
+#: doc/guix.texi:30254
 msgid "Now that you know all the features that initial RAM disks produced by @code{base-initrd} and @code{raw-initrd} provide, here is how to use it and customize it further."
 msgstr "Maintenant que vous connaissez toutes les fonctionnalités des disques de RAM initiaux produits par @code{base-initrd} et @code{raw-initrd}, voici comment l'utiliser le personnalisé plus avant."
 
 #. type: deffn
-#: doc/guix.texi:23962
+#: doc/guix.texi:30257
 #, no-wrap
 msgid "{Scheme Procedure} raw-initrd @var{file-systems} @"
 msgstr "{Procédure Scheme} raw-initrd @var{file-systems} @"
 
 #. type: deffn
-#: doc/guix.texi:23975
-msgid "[#:linux-modules '()] [#:mapped-devices '()] @ [#:keyboard-layout #f] @ [#:helper-packages '()] [#:qemu-networking? #f] [#:volatile-root? #f] Return a derivation that builds a raw initrd.  @var{file-systems} is a list of file systems to be mounted by the initrd, possibly in addition to the root file system specified on the kernel command line via @code{--root}.  @var{linux-modules} is a list of kernel modules to be loaded at boot time.  @var{mapped-devices} is a list of device mappings to realize before @var{file-systems} are mounted (@pxref{Mapped Devices}).  @var{helper-packages} is a list of packages to be copied in the initrd. It may include @code{e2fsck/static} or other packages needed by the initrd to check the root file system."
+#: doc/guix.texi:30270
+msgid "[#:linux-modules '()] [#:mapped-devices '()] @ [#:keyboard-layout #f] @ [#:helper-packages '()] [#:qemu-networking? #f] [#:volatile-root? #f] Return a derivation that builds a raw initrd.  @var{file-systems} is a list of file systems to be mounted by the initrd, possibly in addition to the root file system specified on the kernel command line via @option{--root}.  @var{linux-modules} is a list of kernel modules to be loaded at boot time.  @var{mapped-devices} is a list of device mappings to realize before @var{file-systems} are mounted (@pxref{Mapped Devices}).  @var{helper-packages} is a list of packages to be copied in the initrd. It may include @code{e2fsck/static} or other packages needed by the initrd to check the root file system."
 msgstr ""
 "[#:linux-modules '()] [#:mapped-devices '()] @\n"
 "[#:keyboard-layout #f] @\n"
 "[#:helper-packages '()] [#:qemu-networking? #f] [#:volatile-root? #f]\n"
-"Renvoie une dérivation qui construit un initrd.  @var{file-systems} est une liste de systèmes de fichiers à monter par l'initrd, éventuellement en plus du système de fichier racine spécifié sur la ligne de commande du noyau via @code{--root}.  @var{linux-modules} est une liste de modules du noyau à charger au démarrage.  @var{mapped-devices} est une liste de correspondances de périphériques à réaliser avant que les @var{file-systems} ne soient montés (@pxref{Mapped Devices}).  @var{helper-packages} est une liste de paquets à copier dans l'initrd.  Elle peut inclure @code{e2fsck/static} ou d'autres paquets requis par l'initrd pour vérifier le système de fichiers racine."
+"Renvoie une dérivation qui construit un initrd.  @var{file-systems} est une liste de systèmes de fichiers à monter par l'initrd, éventuellement en plus du système de fichier racine spécifié sur la ligne de commande du noyau via @option{--root}.  @var{linux-modules} est une liste de modules du noyau à charger au démarrage.  @var{mapped-devices} est une liste de correspondances de périphériques à réaliser avant que les @var{file-systems} ne soient montés (@pxref{Mapped Devices}).  @var{helper-packages} est une liste de paquets à copier dans l'initrd.  Elle peut inclure @code{e2fsck/static} ou d'autres paquets requis par l'initrd pour vérifier le système de fichiers racine."
 
 #. type: deffn
-#: doc/guix.texi:23981 doc/guix.texi:24005
+#: doc/guix.texi:30276 doc/guix.texi:30300
 msgid "When true, @var{keyboard-layout} is a @code{<keyboard-layout>} record denoting the desired console keyboard layout.  This is done before @var{mapped-devices} are set up and before @var{file-systems} are mounted such that, should the user need to enter a passphrase or use the REPL, this happens using the intended keyboard layout."
 msgstr "Lorsque la valeur est vraie, @var{keyboard-layout} est un enregistrement @code{<keyboard-layout>} dénotant la disposition du clavier désirée pour la console.  Cela est effectuée avant que les @var{mapped-devices} ne soient créés et avant que les @var{file-systems} ne soient montés, de sorte que, si l'utilisateur au besoin de saisir une phrase de passe ou d'utiliser le REPL, cela arrive avec la disposition du clavier voulue."
 
 #. type: deffn
-#: doc/guix.texi:23985
+#: doc/guix.texi:30280
 msgid "When @var{qemu-networking?} is true, set up networking with the standard QEMU parameters.  When @var{virtio?} is true, load additional modules so that the initrd can be used as a QEMU guest with para-virtualized I/O drivers."
 msgstr "Lorsque @var{qemu-networking?} est vrai, paramètre le réseau avec les paramètres QEMU standards.  Lorsque @var{virtio?} est vrai, charge des modules supplémentaires pour que l'initrd puisse être utilisé comme client QEMU avec les pilotes I/O para-virtualisés."
 
 #. type: deffn
-#: doc/guix.texi:23988
+#: doc/guix.texi:30283
 msgid "When @var{volatile-root?} is true, the root file system is writable but any changes to it are lost."
 msgstr "Lorsque @var{volatile-root?} est vrai, le système de fichier racine est inscriptible mais tous les changements seront perdus."
 
 #. type: deffn
-#: doc/guix.texi:23990
+#: doc/guix.texi:30285
 #, no-wrap
 msgid "{Scheme Procedure} base-initrd @var{file-systems} @"
 msgstr "{Procédure Scheme} base-initrd @var{file-systems} @"
 
 #. type: deffn
-#: doc/guix.texi:23999
-msgid "[#:mapped-devices '()] [#:keyboard-layout #f] @ [#:qemu-networking? #f] [#:volatile-root? #f] @ [#:linux-modules '()] Return as a file-like object a generic initrd, with kernel modules taken from @var{linux}.  @var{file-systems} is a list of file-systems to be mounted by the initrd, possibly in addition to the root file system specified on the kernel command line via @code{--root}.  @var{mapped-devices} is a list of device mappings to realize before @var{file-systems} are mounted."
+#: doc/guix.texi:30294
+msgid "[#:mapped-devices '()] [#:keyboard-layout #f] @ [#:qemu-networking? #f] [#:volatile-root? #f] @ [#:linux-modules '()] Return as a file-like object a generic initrd, with kernel modules taken from @var{linux}.  @var{file-systems} is a list of file-systems to be mounted by the initrd, possibly in addition to the root file system specified on the kernel command line via @option{--root}.  @var{mapped-devices} is a list of device mappings to realize before @var{file-systems} are mounted."
 msgstr ""
 "[#:mapped-devices '()] [#:keyboard-layout #f] @\n"
 "[#:qemu-networking? #f] [#:volatile-root? #f] @\n"
 "[#:linux-modules '()]\n"
-"Renvoie un objet simili-fichier contenant un initrd générique, avec les modules du noyau de @var{linux}.  @var{file-systems} est une liste de systèmes de fichiers à monter par l'initrd, éventuellement en plus du système de fichiers racine spécifié sur la ligne de commande du noyau via @code{--root}.  @var{mapped-devices} est une liste de correspondances de périphériques à réaliser avant de monter les @var{file-systems}."
+"Renvoie un objet simili-fichier contenant un initrd générique, avec les modules du noyau de @var{linux}.  @var{file-systems} est une liste de systèmes de fichiers à monter par l'initrd, éventuellement en plus du système de fichiers racine spécifié sur la ligne de commande du noyau via @option{--root}.  @var{mapped-devices} est une liste de correspondances de périphériques à réaliser avant de monter les @var{file-systems}."
 
 #. type: deffn
-#: doc/guix.texi:24007
+#: doc/guix.texi:30302
 msgid "@var{qemu-networking?} and @var{volatile-root?} behaves as in @code{raw-initrd}."
 msgstr "@var{qemu-networking?} et @var{volatile-root?} se comportent comme pour @code{raw-initrd}."
 
 #. type: deffn
-#: doc/guix.texi:24012
+#: doc/guix.texi:30307
 msgid "The initrd is automatically populated with all the kernel modules necessary for @var{file-systems} and for the given options.  Additional kernel modules can be listed in @var{linux-modules}.  They will be added to the initrd, and loaded at boot time in the order in which they appear."
 msgstr "L'initrd est automatiquement remplie avec tous les modules du noyau requis pour @var{file-systems} et pour les options données.  On peut lister des modules supplémentaires dans @var{linux-modules}.  Ils seront ajoutés à l'initrd et chargés au démarrage dans l'ordre dans lequel ils apparaissent."
 
 #. type: Plain text
-#: doc/guix.texi:24019
+#: doc/guix.texi:30314
 msgid "Needless to say, the initrds we produce and use embed a statically-linked Guile, and the initialization program is a Guile program.  That gives a lot of flexibility.  The @code{expression->initrd} procedure builds such an initrd, given the program to run in that initrd."
 msgstr "Inutile de le dire, les initrds que nous produisons et utilisons incluent une version de Guile liée statiquement, et le programme d'initialisation est un programme Guile.  Cela donne beaucoup de flexibilité.  La procédure @code{expression->initrd} construit un tel initrd, étant donné le programme à lancer dans cet initrd."
 
 #. type: deffn
-#: doc/guix.texi:24020
+#: doc/guix.texi:30315
 #, no-wrap
 msgid "{Scheme Procedure} expression->initrd @var{exp} @"
 msgstr "{Procédure Scheme} expression->initrd @var{exp} @"
 
 #. type: deffn
-#: doc/guix.texi:24026
-msgid "[#:guile %guile-static-stripped] [#:name \"guile-initrd\"] Return as a file-like object a Linux initrd (a gzipped cpio archive)  containing @var{guile} and that evaluates @var{exp}, a G-expression, upon booting.  All the derivations referenced by @var{exp} are automatically copied to the initrd."
+#: doc/guix.texi:30321
+msgid "[#:guile %guile-3.0-static-stripped] [#:name \"guile-initrd\"] Return as a file-like object a Linux initrd (a gzipped cpio archive)  containing @var{guile} and that evaluates @var{exp}, a G-expression, upon booting.  All the derivations referenced by @var{exp} are automatically copied to the initrd."
 msgstr ""
-"[#:guile %guile-static-stripped] [#:name \"guile-initrd\"]\n"
+"[#:guile %guile-3.0-static-stripped] [#:name \"guile-initrd\"]\n"
 "Renvoie un objet simili-fichier contenant un initrd Linux (une archive cpio compressée avec gzip) contenant @var{guile} et qui évalue @var{exp}, une G-expression, au démarrage.  Toutes les dérivations référencées par @var{exp} sont automatiquement copiées dans l'initrd."
 
 #. type: cindex
-#: doc/guix.texi:24032
+#: doc/guix.texi:30327
 #, no-wrap
 msgid "boot loader"
 msgstr "chargeur d'amorçage"
 
 #. type: Plain text
-#: doc/guix.texi:24039
+#: doc/guix.texi:30334
 msgid "The operating system supports multiple bootloaders.  The bootloader is configured using @code{bootloader-configuration} declaration.  All the fields of this structure are bootloader agnostic except for one field, @code{bootloader} that indicates the bootloader to be configured and installed."
 msgstr "Le système d'exploitation supporte plusieurs chargeurs d'amorçage.  La configuration du chargeur d'amorçage se fait avec la déclaration @code{bootloader-configuration}.  Tous les champs de cette structure sont indépendants du chargeur d'amorçage sauf un, @code{bootloader} qui indique le chargeur d'amorçage à configurer et à installer."
 
 #. type: Plain text
-#: doc/guix.texi:24044
+#: doc/guix.texi:30339
 msgid "Some of the bootloaders do not honor every field of @code{bootloader-configuration}.  For instance, the extlinux bootloader does not support themes and thus ignores the @code{theme} field."
 msgstr "Certains chargeurs d'amorçage ne respectent pas tous les champs de @code{bootloader-configuration}.  Par exemple, le chargeur d'amorçage extlinux ne supporte pas les thèmes et ignore donc le champ @code{theme}."
 
 #. type: deftp
-#: doc/guix.texi:24045
+#: doc/guix.texi:30340
 #, no-wrap
 msgid "{Data Type} bootloader-configuration"
 msgstr "{Type de données} bootloader-configuration"
 
 #. type: deftp
-#: doc/guix.texi:24047
+#: doc/guix.texi:30342
 msgid "The type of a bootloader configuration declaration."
 msgstr "Le type d'une déclaration de configuration de chargeur d'amorçage."
 
 #. type: cindex
-#: doc/guix.texi:24051
+#: doc/guix.texi:30346
 #, no-wrap
 msgid "EFI, bootloader"
 msgstr "EFI, chargeur d'amorçage"
 
 #. type: cindex
-#: doc/guix.texi:24052
+#: doc/guix.texi:30347
 #, no-wrap
 msgid "UEFI, bootloader"
 msgstr "UEFI, chargeur d'amorçage"
 
 #. type: cindex
-#: doc/guix.texi:24053
+#: doc/guix.texi:30348
 #, no-wrap
 msgid "BIOS, bootloader"
 msgstr "BIOS, chargeur d'amorçage"
 
 #. type: table
-#: doc/guix.texi:24057
-msgid "The bootloader to use, as a @code{bootloader} object. For now @code{grub-bootloader}, @code{grub-efi-bootloader}, @code{extlinux-bootloader} and @code{u-boot-bootloader} are supported."
-msgstr "Le chargeur d'amorçage à utiliser, comme objet @code{bootloader}.  Pour l'instant @code{grub-bootloader}, @code{grub-efi-bootloader}, @code{extlinux-bootloader} et @code{u-boot-bootloader} sont supportés."
-
-#. type: table
-#: doc/guix.texi:24063
-msgid "@code{grub-efi-bootloader} allows to boot on modern systems using the @dfn{Unified Extensible Firmware Interface} (UEFI).  This is what you should use if the installation image contains a @file{/sys/firmware/efi} directory when you boot it on your system."
-msgstr "@code{grub-efi-bootloader} permet de démarrer sur un système moderne qui utilise l'UEFI (@dfn{Unified Extensible Firmware Interface}).  C'est ce que vous devriez utiliser si l'image d'installation contient un répertoire @file{/sys/firmware/efi} lorsque vous démarrez dessus sur votre machine."
-
-#. type: table
-#: doc/guix.texi:24067
-msgid "@code{grub-bootloader} allows you to boot in particular Intel-based machines in ``legacy'' BIOS mode."
-msgstr "@code{grub-bootloader} vous permet de démarrer en particulier sur des machines Intel en mode BIOS « legacy »."
+#: doc/guix.texi:30353
+msgid "The bootloader to use, as a @code{bootloader} object. For now @code{grub-bootloader}, @code{grub-efi-bootloader}, @code{grub-efi-netboot-bootloader}, @code{extlinux-bootloader} and @code{u-boot-bootloader} are supported."
+msgstr "Le chargeur d'amorçage à utiliser, en tant qu'objet @code{bootloader}.  Pour l'instant @code{grub-bootloader}, @code{grub-efi-bootloader}, @code{gru-efi-netboot-bootloader}, @code{extlinux-bootloader} et @code{u-boot-bootloader} sont pris en charge."
 
 #. type: cindex
-#: doc/guix.texi:24068
+#: doc/guix.texi:30354
 #, no-wrap
 msgid "ARM, bootloaders"
 msgstr "ARM, chargeurs d'amorçage"
 
 #. type: cindex
-#: doc/guix.texi:24069
+#: doc/guix.texi:30355
 #, no-wrap
 msgid "AArch64, bootloaders"
 msgstr "AArch64, chargeurs d'amorçage"
 
 #. type: table
-#: doc/guix.texi:24074
+#: doc/guix.texi:30360
 msgid "Available bootloaders are described in @code{(gnu bootloader @dots{})} modules.  In particular, @code{(gnu bootloader u-boot)} contains definitions of bootloaders for a wide range of ARM and AArch64 systems, using the @uref{https://www.denx.de/wiki/U-Boot/, U-Boot bootloader}."
 msgstr "Les chargeurs d'amorçage disponibles sont décrits dans les modules @code{(gnu bootloader @dots{})}.  En particulier, @code{(gnu bootloader u-boot)} contient des définitions de chargeurs d'amorçage pour une large gamme de systèmes ARM et AArch, à l'aide du @uref{https://www.denx.de/wiki/U-Boot/, chargeur d'amorçage U-Boot}"
 
 #. type: table
-#: doc/guix.texi:24078
+#: doc/guix.texi:30366
+msgid "@code{grub-efi-bootloader} allows to boot on modern systems using the @dfn{Unified Extensible Firmware Interface} (UEFI).  This is what you should use if the installation image contains a @file{/sys/firmware/efi} directory when you boot it on your system."
+msgstr "@code{grub-efi-bootloader} permet de démarrer sur un système moderne qui utilise l'UEFI (@dfn{Unified Extensible Firmware Interface}).  C'est ce que vous devriez utiliser si l'image d'installation contient un répertoire @file{/sys/firmware/efi} lorsque vous démarrez dessus sur votre machine."
+
+#. type: table
+#: doc/guix.texi:30370
+msgid "@code{grub-bootloader} allows you to boot in particular Intel-based machines in ``legacy'' BIOS mode."
+msgstr "@code{grub-bootloader} vous permet de démarrer en particulier sur des machines Intel en mode BIOS « legacy »."
+
+#. type: vindex
+#: doc/guix.texi:30371
+#, no-wrap
+msgid "grub-efi-netboot-bootloader"
+msgstr "grub-efi-netboot-bootloader"
+
+#. type: table
+#: doc/guix.texi:30375
+msgid "@code{grub-efi-netboot-bootloader} allows you to boot your system over network through TFTP.  In combination with an NFS root file system this allows you to build a diskless Guix system."
+msgstr "@code{grub-efi-netboot-bootloader} vous permet de démarrer votre système via le réseau avec TFTP.  En plus d'un système de fichier racine NFS, cela vous permet de démarrer un système Guix sans disque."
+
+#. type: table
+#: doc/guix.texi:30381
+msgid "The installation of the @code{grub-efi-netboot-bootloader} generates the content of the TFTP root directory at @code{target} (@pxref{Bootloader Configuration, @code{target}}), to be served by a TFTP server.  You may want to mount your TFTP server directory onto @code{target} to move the required files to the TFTP server automatically."
+msgstr "L'installation de @code{ggrub-efi-netboot-bootloader} génère le contenu du répertoire racine TFTP sur @code{target} (@pxref{Bootloader Configuration, @code{target}}), qui sera servi par un serveur TFTP.  Vous pouvez maintenant monter le répertoire du serveur TFTP directement sur @code{target} pour déplacer les fichiers requis vers le serveur TFTP automatiquement."
+
+#. type: table
+#: doc/guix.texi:30390
+msgid "If you plan to use an NFS root file system as well (actually if you mount the store from an NFS share), then the TFTP server needs to serve the file @file{/boot/grub/grub.cfg} and other files from the store (like GRUBs background image, the kernel (@pxref{operating-system Reference, @code{kernel}}) and the initrd (@pxref{operating-system Reference, @code{initrd}})), too.  All these files from the store will be accessed by GRUB through TFTP with their normal store path, for example as @file{tftp://tftp-server/gnu/store/…-initrd/initrd.cpio.gz}."
+msgstr "Si vous voulez aussi utiliser un système de fichier racine NFS (en fait si vous montez le dépôt depuis un partage NFS), alors le serveur TFTP doit aussi servir le fichier @file{/boot/grub/grub.cfg} et d'autres fichiers à partir du dépôt (comme l'image de fond de GRUB, le noyau  (@pxref{operating-system Reference, @code{kernel}}) et l'initrd (@pxref{operating-system Reference, @code{initrd}})).  Tous ces fichiers du dépôt seront accessibles pour GRUB à travers TFTP avec leurs chemins normaux, par exemple @file{tftp://tftp-server/gnu/store/…-initrd/initrd.cpio.gz}."
+
+#. type: table
+#: doc/guix.texi:30398
+msgid "Two symlinks are created to make this possible.  The first symlink is @code{target}@file{/efi/Guix/boot/grub/grub.cfg} pointing to @file{../../../boot/grub/grub.cfg}, where @code{target} may be @file{/boot}.  In this case the link is not leaving the served TFTP root directory, but otherwise it does.  The second link is @code{target}@file{/gnu/store} and points to @file{../gnu/store}.  This link is leaving the served TFTP root directory."
+msgstr "Deux liens symboliques sont créés pour rendre cela possible.  Le premier lien est @code{target}@file{/efi/Guix/boot/grub/grub.cfg} pointant vers @file{../../../boot/grub/grub.cfg}, où @code{target} peut être @file{/boot}.  Dans ce cas le lien ne quitte pas le répertoire racine du serveur TFTP.  Le second lien est @code{target}@file{/gnu/store} qui pointe vers @file{../gnu/store}.  ce lien est en dehors du répertoire racine du serveur TFTP."
+
+#. type: table
+#: doc/guix.texi:30403
+msgid "The assumption behind all this is that you have an NFS server exporting the root file system for your Guix system, and additionally a TFTP server exporting your @code{target} directory—usually @file{/boot}—from that same root file system for your Guix system.  In this constellation the symlinks will work."
+msgstr "L'hypothèse derrière tout ceci est que vous avez un serveur NFS qui exporte le système de fichiers racine de votre système Guix, et en plus, un serveur TFTP qui export votre répertoire @code{target} — habituellement @file{/boot} — à partir du même système de fichiers racine que votre système Guix.  Dans ce cas les liens symboliques vont fonctionner."
+
+#. type: table
+#: doc/guix.texi:30407
+msgid "For other constellations you will have to program your own bootloader installer, which then takes care to make necessary files from the store accessible through TFTP, for example by copying them into the TFTP root directory at @code{target}."
+msgstr "Pour d'autres cas vous devrez programmer votre propre installateur de chargeur d'amorçage qui rende les fichiers nécessaires du dépôt disponibles à travers TFTP, par exemple en les copiant vers la racine du répertoire de TFTP dans @code{target}."
+
+#. type: table
+#: doc/guix.texi:30412
+msgid "It is important to note that symlinks pointing outside the TFTP root directory may need to be allowed in the configuration of your TFTP server.  Further the store link exposes the whole store through TFTP.  Both points need to be considered carefully for security aspects."
+msgstr "Il est important de remarquer que les liens symboliques pointant hors du répertoire racine de TFTP peuvent ne pas être permis par dans configuration de votre serveur TFTP.  De plus le lien vers le dépôt expose la totalité de celui-ci à travers TFTP.  Ces deux points sont à prendre en compte pour les aspects de sécurité."
+
+#. type: table
+#: doc/guix.texi:30417
+msgid "Beside the @code{grub-efi-netboot-bootloader}, the already mentioned TFTP and NFS servers, you also need a properly configured DHCP server to make the booting over netboot possible.  For all this we can currently only recommend you to look for instructions about @acronym{PXE, Preboot eXecution Environment}."
+msgstr "En dehors de @code{grub-efi-netboot-bootloader}, des serveurs TFTP et NFS déjà mentionnés, vous pouvez utiliser un serveur DHCP correctement configuré pour permettre le démarrage réseau.  Pour cela nous ne pouvons que vous recommander de regarder les instructions sur @acronym{PXE, Preboot eXecution Environment}."
+
+#. type: table
+#: doc/guix.texi:30421
 msgid "This is a string denoting the target onto which to install the bootloader."
 msgstr "C'est une chaîne qui dénote la cible sur laquelle installer le chargeur d'amorçage."
 
 #. type: table
-#: doc/guix.texi:24085
-msgid "The interpretation depends on the bootloader in question.  For @code{grub-bootloader}, for example, it should be a device name understood by the bootloader @command{installer} command, such as @code{/dev/sda} or @code{(hd0)} (@pxref{Invoking grub-install,,, grub, GNU GRUB Manual}).  For @code{grub-efi-bootloader}, it should be the mount point of the EFI file system, usually @file{/boot/efi}."
-msgstr "L'interprétation dépend du chargeur d'amorçage en question.  Pour @code{grub-bootloader} par exemple, cela devrait être un nom de périphérique compris par la commande @command{installer} du chargeur d'amorçage, comme @code{/dev/sda} ou @code{(hd0)} (@pxref{Invoking grub-install,,, grub, GNU GRUB Manual}).  Pour @code{grub-efi-bootloader}, cela devrait être le point de montage du système de fichiers EFI, typiquement @file{/boot/efi}."
+#: doc/guix.texi:30430
+msgid "The interpretation depends on the bootloader in question.  For @code{grub-bootloader}, for example, it should be a device name understood by the bootloader @command{installer} command, such as @code{/dev/sda} or @code{(hd0)} (@pxref{Invoking grub-install,,, grub, GNU GRUB Manual}).  For @code{grub-efi-bootloader}, it should be the mount point of the EFI file system, usually @file{/boot/efi}.  For @code{grub-efi-netboot-bootloader}, @code{target} should be the mount point corresponding to the TFTP root directory of your TFTP server."
+msgstr "L'interprétation dépend du chargeur d'amorçage en question.  Pour @code{grub-bootloader} par exemple, cela devrait être un nom de périphérique compris par la commande @command{installer} du chargeur d'amorçage, comme @code{/dev/sda} ou @code{(hd0)} (@pxref{Invoking grub-install,,, grub, GNU GRUB Manual}).  Pour @code{grub-efi-bootloader}, cela devrait être le point de montage du système de fichiers EFI, typiquement @file{/boot/efi}.  Pour @code{grub-efi-netboot-bootloader}, @code{target} doit être le point de montage correspondant au répertoire racine de TFTP sur votre serveur TFTP."
 
 #. type: item
-#: doc/guix.texi:24086
+#: doc/guix.texi:30431
 #, no-wrap
 msgid "@code{menu-entries} (default: @code{()})"
 msgstr "@code{menu-entries} (par défaut : @code{()})"
 
 #. type: table
-#: doc/guix.texi:24090
+#: doc/guix.texi:30435
 msgid "A possibly empty list of @code{menu-entry} objects (see below), denoting entries to appear in the bootloader menu, in addition to the current system entry and the entry pointing to previous system generations."
 msgstr "Une liste éventuellement vide d'objets @code{menu-entry} (voir plus bas), dénotant les entrées qui doivent apparaître dans le menu du chargeur d'amorçage, en plus de l'entrée pour le système actuel et l'entrée pointant vers les générations précédentes."
 
 #. type: item
-#: doc/guix.texi:24091
+#: doc/guix.texi:30436
 #, no-wrap
 msgid "@code{default-entry} (default: @code{0})"
 msgstr "@code{default-entry} (par défaut : @code{0})"
 
 #. type: table
-#: doc/guix.texi:24094
+#: doc/guix.texi:30439
 msgid "The index of the default boot menu entry.  Index 0 is for the entry of the current system."
 msgstr "L'index de l'entrée du menu de démarrage par défaut.  L'index 0 correspond au système actuel."
 
 #. type: item
-#: doc/guix.texi:24095
+#: doc/guix.texi:30440
 #, no-wrap
 msgid "@code{timeout} (default: @code{5})"
 msgstr "@code{timeout} (par défaut : @code{5})"
 
 #. type: table
-#: doc/guix.texi:24098
+#: doc/guix.texi:30443
 msgid "The number of seconds to wait for keyboard input before booting.  Set to 0 to boot immediately, and to -1 to wait indefinitely."
 msgstr "Le nombre de secondes à attendre une entrée clavier avant de démarrer.  Indiquez 0 pour démarre immédiatement, et -1 pour attendre indéfiniment."
 
 #. type: cindex
-#: doc/guix.texi:24099
+#: doc/guix.texi:30444
 #, no-wrap
 msgid "keyboard layout, for the bootloader"
 msgstr "disposition du clavier, pour le chargeur d'amorçage"
 
 #. type: table
-#: doc/guix.texi:24103
+#: doc/guix.texi:30448
 msgid "If this is @code{#f}, the bootloader's menu (if any) uses the default keyboard layout, usually US@tie{}English (``qwerty'')."
 msgstr "Si c'est @code{#f}, le menu du chargeur d'amorçage (s'il y en a un) utilise la disposition du clavier par défaut, normalement pour l'anglais américain (« qwerty »)."
 
 #. type: table
-#: doc/guix.texi:24106
+#: doc/guix.texi:30451
 msgid "Otherwise, this must be a @code{keyboard-layout} object (@pxref{Keyboard Layout})."
 msgstr "Sinon, cela doit être un objet @code{keyboard-layout} (@pxref{Keyboard Layout})."
 
 #. type: quotation
-#: doc/guix.texi:24110
+#: doc/guix.texi:30455
 msgid "This option is currently ignored by bootloaders other than @code{grub} and @code{grub-efi}."
 msgstr "Cette option est actuellement ignorée par les chargeurs d'amorçage autre que @code{grub} et @code{grub-efi}."
 
 #. type: item
-#: doc/guix.texi:24112
+#: doc/guix.texi:30457
 #, no-wrap
 msgid "@code{theme} (default: @var{#f})"
 msgstr "@code{theme} (par défaut : @var{#f})"
 
 #. type: table
-#: doc/guix.texi:24116
+#: doc/guix.texi:30461
 msgid "The bootloader theme object describing the theme to use.  If no theme is provided, some bootloaders might use a default theme, that's true for GRUB."
 msgstr "L'objet de thème du chargeur d'amorçage décrivant le thème utilisé.  Si aucun thème n'est fournit, certains chargeurs d'amorçage peuvent utiliser un thème par défaut, c'est le cas de GRUB."
 
 #. type: item
-#: doc/guix.texi:24117
+#: doc/guix.texi:30462
 #, no-wrap
-msgid "@code{terminal-outputs} (default: @code{'gfxterm})"
-msgstr "@code{terminal-outputs} (par défaut : @code{'gfxterm})"
+msgid "@code{terminal-outputs} (default: @code{'(gfxterm)})"
+msgstr "@code{terminal-outputs} (par défaut : @code{'(gfxterm)})"
 
 #. type: table
-#: doc/guix.texi:24124
+#: doc/guix.texi:30469
 msgid "The output terminals used for the bootloader boot menu, as a list of symbols.  GRUB accepts the values: @code{console}, @code{serial}, @code{serial_@{0-3@}}, @code{gfxterm}, @code{vga_text}, @code{mda_text}, @code{morse}, and @code{pkmodem}.  This field corresponds to the GRUB variable @code{GRUB_TERMINAL_OUTPUT} (@pxref{Simple configuration,,, grub,GNU GRUB manual})."
 msgstr "Les terminaux de sortie utilisés par le menu de démarrage du chargeur d'amorçage, en tant que liste de symboles.  GRUB accepte les valeurs @code{console}, @code{serial}, @code{serial_@{0-3@}}, @code{gfxterm}, @code{vga_text}, @code{mda_text}, @code{morse} et @code{pkmodem}.  Ce champ correspond à la variable GRUB @code{GRUB_TERMINAL_OUTPUT} (@pxref{Simple configuration,,, grub,GNU GRUB manual})."
 
 #. type: item
-#: doc/guix.texi:24125
+#: doc/guix.texi:30470
 #, no-wrap
 msgid "@code{terminal-inputs} (default: @code{'()})"
 msgstr "@code{terminal-inputs} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:24133
+#: doc/guix.texi:30478
 msgid "The input terminals used for the bootloader boot menu, as a list of symbols.  For GRUB, the default is the native platform terminal as determined at run-time.  GRUB accepts the values: @code{console}, @code{serial}, @code{serial_@{0-3@}}, @code{at_keyboard}, and @code{usb_keyboard}.  This field corresponds to the GRUB variable @code{GRUB_TERMINAL_INPUT} (@pxref{Simple configuration,,, grub,GNU GRUB manual})."
 msgstr "Les terminaux d'entrée utilisés par le menu de démarrage du chargeur d'amorçage, en tant que liste de symboles.  Pour GRUB, la valeur par défaut est le terminal natif de la plate-forme déterminé à l'exécution.  GRUB accepte les valeurs @code{console}, @code{serial}, @code{serial_@{0-3@}}, @code{at_keyboard} et @code{usb_keyboard}.  Ce champ correspond à la variable GRUB @code{GRUB_TERMINAL_INPUT} (@pxref{Simple configuration,,, grub,GNU GRUB manual})."
 
 #. type: item
-#: doc/guix.texi:24134
+#: doc/guix.texi:30479
 #, no-wrap
 msgid "@code{serial-unit} (default: @code{#f})"
 msgstr "@code{serial-unit} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:24138
+#: doc/guix.texi:30483
 msgid "The serial unit used by the bootloader, as an integer from 0 to 3.  For GRUB, it is chosen at run-time; currently GRUB chooses 0, which corresponds to COM1 (@pxref{Serial terminal,,, grub,GNU GRUB manual})."
 msgstr "L'unitié série utilisée par le chargeur d'amorçage, en tant qu'entier entre 0 et 3.  Pour GRUB, il est choisi à l'exécution ; actuellement GRUB choisi 0, ce qui correspond à COM1 (@pxref{Serial terminal,,, grub,GNU GRUB manual})."
 
 #. type: item
-#: doc/guix.texi:24139
+#: doc/guix.texi:30484
 #, no-wrap
 msgid "@code{serial-speed} (default: @code{#f})"
 msgstr "@code{serial-speed} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:24143
+#: doc/guix.texi:30488
 msgid "The speed of the serial interface, as an integer.  For GRUB, the default value is chosen at run-time; currently GRUB chooses 9600@tie{}bps (@pxref{Serial terminal,,, grub,GNU GRUB manual})."
 msgstr "La vitesse de l'interface série, en tant qu'entier.  Pour GRUB, la valeur par défaut est choisie à l'exécution ; actuellement GRUB choisi 9600@tie{}bps (@pxref{Serial terminal,,, grub,GNU GRUB manual})."
 
 #. type: cindex
-#: doc/guix.texi:24147
+#: doc/guix.texi:30492
 #, no-wrap
 msgid "dual boot"
 msgstr "dual boot"
 
 #. type: cindex
-#: doc/guix.texi:24148
+#: doc/guix.texi:30493
 #, no-wrap
 msgid "boot menu"
 msgstr "menu de démarrage"
 
 #. type: Plain text
-#: doc/guix.texi:24154
+#: doc/guix.texi:30499
 msgid "Should you want to list additional boot menu entries @i{via} the @code{menu-entries} field above, you will need to create them with the @code{menu-entry} form.  For example, imagine you want to be able to boot another distro (hard to imagine!), you can define a menu entry along these lines:"
 msgstr "Si vous voulez lister des entrées du menu de démarrage supplémentaires via le champ @code{menu-entries} ci-dessus, vous devrez les créer avec la forme @code{menu-entry}.  Par exemple, imaginons que vous souhaitiez pouvoir démarrer sur une autre distro (c'est difficile à concevoir !), vous pourriez alors définir une entrée du menu comme ceci :"
 
-#. type: example
-#: doc/guix.texi:24161
+#. type: lisp
+#: doc/guix.texi:30506
 #, no-wrap
 msgid ""
 "(menu-entry\n"
@@ -44819,190 +56754,333 @@ msgstr ""
 "  (initrd \"/boot/old/initrd\"))\n"
 
 #. type: Plain text
-#: doc/guix.texi:24164
+#: doc/guix.texi:30509
 msgid "Details below."
 msgstr "Les détails suivent."
 
 #. type: deftp
-#: doc/guix.texi:24165
+#: doc/guix.texi:30510
 #, no-wrap
 msgid "{Data Type} menu-entry"
 msgstr "{Type de données} menu-entry"
 
 #. type: deftp
-#: doc/guix.texi:24167
+#: doc/guix.texi:30512
 msgid "The type of an entry in the bootloader menu."
 msgstr "Le type d'une entrée dans le menu du chargeur d'amorçage."
 
 #. type: table
-#: doc/guix.texi:24172
+#: doc/guix.texi:30517
 msgid "The label to show in the menu---e.g., @code{\"GNU\"}."
 msgstr "L'étiquette à montrer dans le menu — p.@: ex.@: @code{\"GNU\"}."
 
-#. type: code{#1}
-#: doc/guix.texi:24173
+#. type: item
+#: doc/guix.texi:30518
 #, no-wrap
-msgid "linux"
-msgstr "linux"
+msgid "@code{linux} (default: @code{#f})"
+msgstr "@code{linux} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:24175
+#: doc/guix.texi:30520
 msgid "The Linux kernel image to boot, for example:"
 msgstr "L'image du noyau Linux à démarrer, par exemple :"
 
-#. type: example
-#: doc/guix.texi:24178
+#. type: lisp
+#: doc/guix.texi:30523
 #, no-wrap
 msgid "(file-append linux-libre \"/bzImage\")\n"
 msgstr "(file-append linux-libre \"/bzImage\")\n"
 
 #. type: table
-#: doc/guix.texi:24183
+#: doc/guix.texi:30528
 msgid "For GRUB, it is also possible to specify a device explicitly in the file path using GRUB's device naming convention (@pxref{Naming convention,,, grub, GNU GRUB manual}), for example:"
 msgstr "Pour GRUB, il est aussi possible de spécifier un périphérique explicitement dans le chemin de fichier avec la convention de nommage de GRUB (@pxref{Naming convention,,, grub, GNU GRUB manual}), par exemple :"
 
 #. type: example
-#: doc/guix.texi:24186
+#: doc/guix.texi:30531
 #, no-wrap
 msgid "\"(hd0,msdos1)/boot/vmlinuz\"\n"
 msgstr "\"(hd0,msdos1)/boot/vmlinuz\"\n"
 
 #. type: table
-#: doc/guix.texi:24190
+#: doc/guix.texi:30535
 msgid "If the device is specified explicitly as above, then the @code{device} field is ignored entirely."
 msgstr "Si le périphérique est spécifié explicitement comme au-dessus, le champ @code{device} est complètement ignoré."
 
 #. type: item
-#: doc/guix.texi:24191
+#: doc/guix.texi:30536
 #, no-wrap
 msgid "@code{linux-arguments} (default: @code{()})"
 msgstr "@code{linux-arguments} (par défaut : @code{()})"
 
 #. type: table
-#: doc/guix.texi:24194
+#: doc/guix.texi:30539
 msgid "The list of extra Linux kernel command-line arguments---e.g., @code{(\"console=ttyS0\")}."
 msgstr "La liste des arguments de la ligne de commande du noyau supplémentaires — p.@: ex.@: @code{(\"console=ttyS0\")}."
 
+#. type: item
+#: doc/guix.texi:30540
+#, no-wrap
+msgid "@code{initrd} (default: @code{#f})"
+msgstr "@code{initrd} (par défaut : @code{#f})"
+
 #. type: table
-#: doc/guix.texi:24198
+#: doc/guix.texi:30543
 msgid "A G-Expression or string denoting the file name of the initial RAM disk to use (@pxref{G-Expressions})."
 msgstr "Une G-expression ou une chaîne dénotant le nom de fichier du disque de RAM initial à utiliser (@pxref{G-Expressions})."
 
 #. type: item
-#: doc/guix.texi:24198
+#: doc/guix.texi:30544
 #, no-wrap
 msgid "@code{device} (default: @code{#f})"
 msgstr "@code{device} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:24201
+#: doc/guix.texi:30547
 msgid "The device where the kernel and initrd are to be found---i.e., for GRUB, @dfn{root} for this menu entry (@pxref{root,,, grub, GNU GRUB manual})."
 msgstr "Le périphérique où le noyau et l'initrd se trouvent — c.-à-d.@: pour GRUB, l'option @dfn{root} de cette entrée de menu (@pxref{root,,, grub, GNU GRUB manual})."
 
 #. type: table
-#: doc/guix.texi:24207
+#: doc/guix.texi:30553
 msgid "This may be a file system label (a string), a file system UUID (a bytevector, @pxref{File Systems}), or @code{#f}, in which case the bootloader will search the device containing the file specified by the @code{linux} field (@pxref{search,,, grub, GNU GRUB manual}).  It must @emph{not} be an OS device name such as @file{/dev/sda1}."
 msgstr "Cela peut être une étiquette de système de fichiers (une chaîne), un UUID de système de fichiers (un vecteur d'octets, @pxref{File Systems}) ou @code{#f}, auquel cas le chargeur d'amorçage recherchera le périphérique contenant le fichier spécifié par le champ @code{linux} (@pxref{search,,, grub, GNU GRUB manual}).  Cela ne doit @emph{pas} être un nom de périphérique donné par l'OS comme @file{/dev/sda1}."
 
+#. type: item
+#: doc/guix.texi:30554
+#, no-wrap
+msgid "@code{multiboot-kernel} (default: @code{#f})"
+msgstr "@code{multiboot-kernel} (par défaut : @code{#f})"
+
+#. type: table
+#: doc/guix.texi:30558
+msgid "The kernel to boot in Multiboot-mode (@pxref{multiboot,,, grub, GNU GRUB manual}).  When this field is set, a Multiboot menu-entry is generated.  For example:"
+msgstr "Le noyau à démarrer en mode Multiboot (@pxref{multiboot,,, grub, GNU GRUB manual}).  Lorsque ce champ est spécifié, une entrée de menu Multiboot est générée.  Par exemple :"
+
+#. type: lisp
+#: doc/guix.texi:30561
+#, no-wrap
+msgid "(file-append mach \"/boot/gnumach\")\n"
+msgstr "(file-append mach \"/boot/gnumach\")\n"
+
+#. type: item
+#: doc/guix.texi:30563
+#, no-wrap
+msgid "@code{multiboot-arguments} (default: @code{()})"
+msgstr "@code{multiboot-arguments} (par défaut : @code{()})"
+
+#. type: table
+#: doc/guix.texi:30565
+msgid "The list of extra command-line arguments for the multiboot-kernel."
+msgstr "Liste d'arguments de la ligne de commande supplémentaires pour le multiboot-kernel."
+
+#. type: item
+#: doc/guix.texi:30566
+#, no-wrap
+msgid "@code{multiboot-modules} (default: @code{()})"
+msgstr "@code{multiboot-modules} (par défaut : @code{()})"
+
+#. type: table
+#: doc/guix.texi:30568
+msgid "The list of commands for loading Multiboot modules.  For example:"
+msgstr "Liste de commandes pour charger les modules Multiboot.  Par exemple :"
+
+#. type: lisp
+#: doc/guix.texi:30574
+#, no-wrap
+msgid ""
+"(list (list (file-append hurd \"/hurd/ext2fs.static\") \"ext2fs\"\n"
+"             @dots{})\n"
+"      (list (file-append libc \"/lib/ld.so.1\") \"exec\"\n"
+"             @dots{}))\n"
+msgstr ""
+"(list (list (file-append hurd \"/hurd/ext2fs.static\") \"ext2fs\"\n"
+"             @dots{})\n"
+"      (list (file-append libc \"/lib/ld.so.1\") \"exec\"\n"
+"             @dots{}))\n"
+
+#. type: cindex
+#: doc/guix.texi:30579 doc/guix.texi:30638
+#, no-wrap
+msgid "HDPI"
+msgstr "HDPI"
+
+#. type: cindex
+#: doc/guix.texi:30580 doc/guix.texi:30639
+#, no-wrap
+msgid "HiDPI"
+msgstr "HiDPI"
+
+#. type: cindex
+#: doc/guix.texi:30581 doc/guix.texi:30640
+#, no-wrap
+msgid "resolution"
+msgstr "resolution"
+
 #. type: Plain text
-#: doc/guix.texi:24214
-msgid "For now only GRUB has theme support. GRUB themes are created using the @code{grub-theme} form, which is not documented yet."
-msgstr "Pour l'instant seul GRUB supporte les thèmes.  On crée un thème GRUB avec la forme @code{grub-theme}, qui n'est pas encore documentée."
+#: doc/guix.texi:30585
+msgid "For now only GRUB has theme support.  GRUB themes are created using the @code{grub-theme} form, which is not fully documented yet."
+msgstr "Pour l'instant seul GRUB prend en charge les thèmes.  On crée un thème GRUB avec la forme @code{grub-theme}, qui n'est pas encore complètement documentée."
 
-#. type: defvr
-#: doc/guix.texi:24219
-msgid "This is the default GRUB theme used by the operating system if no @code{theme} field is specified in @code{bootloader-configuration} record."
-msgstr "C'est le thème par défaut de GRUB utilisé par le système d'exploitation si aucun champ @code{theme} n'est spécifié dans l'enregistrement @code{bootloader-configuration}."
+#. type: deftp
+#: doc/guix.texi:30586
+#, no-wrap
+msgid "{Data Type} grub-theme"
+msgstr "{Type de données} grub-theme"
 
-#. type: defvr
-#: doc/guix.texi:24222
+#. type: deftp
+#: doc/guix.texi:30588
+msgid "Data type representing the configuration of the GRUB theme."
+msgstr "Type de données représentant la configuration du thème GRUB."
+
+#. type: item
+#: doc/guix.texi:30590
+#, no-wrap
+msgid "@code{gfxmode} (default: @code{'(\"auto\")})"
+msgstr "@code{gfxmode} (par défaut : @code{'(\"auto\")})"
+
+#. type: table
+#: doc/guix.texi:30593
+msgid "The GRUB @code{gfxmode} to set (a list of screen resolution strings, @pxref{gfxmode,,, grub, GNU GRUB manual})."
+msgstr "Le @code{gfxmode} de GRUB à utiliser (une liste de chaines de résolution d'écran, @pxref{gfxmode,,, grub, GNU GRUB manual})."
+
+#. type: deffn
+#: doc/guix.texi:30596
+#, no-wrap
+msgid "{Scheme Procedure} grub-theme"
+msgstr "{Procédure Scheme} grub-theme"
+
+#. type: deffn
+#: doc/guix.texi:30600
+msgid "Return the default GRUB theme used by the operating system if no @code{theme} field is specified in @code{bootloader-configuration} record."
+msgstr "Renvoie le thème par défaut de GRUB utilisé par le système d'exploitation si aucun champ @code{theme} n'est spécifié dans l'enregistrement @code{bootloader-configuration}."
+
+#. type: deffn
+#: doc/guix.texi:30603
 msgid "It comes with a fancy background image displaying the GNU and Guix logos."
 msgstr "Il contient une image de fond sympathique avec les logos de GNU et de Guix."
 
+#. type: Plain text
+#: doc/guix.texi:30607
+msgid "For example, to override the default resolution, you may use something like"
+msgstr "Par exemple, pour changer la résolution par défaut, vous pouvez utiliser quelque chose comme"
+
+#. type: lisp
+#: doc/guix.texi:30615
+#, no-wrap
+msgid ""
+"(bootloader\n"
+" (bootloader-configuration\n"
+" ;; @dots{}\n"
+" (theme (grub-theme\n"
+"         (inherit (grub-theme))\n"
+"         (gfxmode '(\"1024x786x32\" \"auto\"))))))\n"
+msgstr ""
+"(bootloader\n"
+" (bootloader-configuration\n"
+" ;; @dots{}\n"
+" (theme (grub-theme\n"
+"         (inherit (grub-theme))\n"
+"         (gfxmode '(\"1024x786x32\" \"auto\"))))))\n"
+
 #. type: section
-#: doc/guix.texi:24226
+#: doc/guix.texi:30618
 #, no-wrap
 msgid "Invoking @code{guix system}"
 msgstr "Invoquer @code{guix system}"
 
 #. type: Plain text
-#: doc/guix.texi:24231
+#: doc/guix.texi:30623
 msgid "Once you have written an operating system declaration as seen in the previous section, it can be @dfn{instantiated} using the @command{guix system} command.  The synopsis is:"
 msgstr "Une fois que vous avez écrit une déclaration de système d'exploitation comme nous l'avons vu dans les sections précédentes, elle peut être instanciée avec la commande @command{guix system}.  Voici le résumé de la commande :"
 
 #. type: example
-#: doc/guix.texi:24234
+#: doc/guix.texi:30626
 #, no-wrap
 msgid "guix system @var{options}@dots{} @var{action} @var{file}\n"
 msgstr "guix system @var{options}@dots{} @var{action} @var{file}\n"
 
 #. type: Plain text
-#: doc/guix.texi:24240
+#: doc/guix.texi:30632
 msgid "@var{file} must be the name of a file containing an @code{operating-system} declaration.  @var{action} specifies how the operating system is instantiated.  Currently the following values are supported:"
 msgstr "@var{file} doit être le nom d'un fichier contenant une déclaration @code{operating-system}.  @var{action} spécifie comme le système d'exploitation est instancié.  Actuellement les valeurs suivantes sont supportées :"
 
 #. type: item
-#: doc/guix.texi:24242
+#: doc/guix.texi:30634
 #, no-wrap
 msgid "search"
 msgstr "search"
 
 #. type: table
-#: doc/guix.texi:24245
+#: doc/guix.texi:30637
 msgid "Display available service type definitions that match the given regular expressions, sorted by relevance:"
 msgstr "Affiche les définitions des types de services disponibles qui correspondent aux expressions régulières données, triées par pertinence :"
 
 #. type: example
-#: doc/guix.texi:24257
+#: doc/guix.texi:30659
 #, no-wrap
 msgid ""
-"$ guix system search console font\n"
+"$ guix system search console\n"
 "name: console-fonts\n"
-"location: gnu/services/base.scm:729:2\n"
+"location: gnu/services/base.scm:806:2\n"
 "extends: shepherd-root\n"
-"description: Install the given fonts on the specified ttys (fonts are\n"
-"+ per virtual console on GNU/Linux).  The value of this service is a list\n"
-"+ of tty/font pairs like:\n"
-"+ \n"
-"+      '((\"tty1\" . \"LatGrkCyr-8x16\"))\n"
-"relevance: 20\n"
+"description: Install the given fonts on the specified ttys (fonts are per\n"
+"+ virtual console on GNU/Linux).  The value of this service is a list of\n"
+"+ tty/font pairs.  The font can be the name of a font provided by the `kbd'\n"
+"+ package or any valid argument to `setfont', as in this example:\n"
+"+\n"
+"+      '((\"tty1\" . \"LatGrkCyr-8x16\")\n"
+"+        (\"tty2\" . (file-append\n"
+"+                      font-tamzen\n"
+"+                      \"/share/kbd/consolefonts/TamzenForPowerline10x20.psf\"))\n"
+"+        (\"tty3\" . (file-append\n"
+"+                      font-terminus\n"
+"+                      \"/share/consolefonts/ter-132n\"))) ; for HDPI\n"
+"relevance: 9\n"
 "\n"
 msgstr ""
-"$ guix system search console font\n"
+"$ guix system search console\n"
 "name: console-fonts\n"
-"location: gnu/services/base.scm:773:2\n"
+"location: gnu/services/base.scm:806:2\n"
 "extends: shepherd-root\n"
-"description: Installe des polices données sur les ttys spécifiés (les polices sont par console virtuelle sous GNU/Linux).  la valeur de ces service est une liste de paires\n"
-"+ de tty/police comme ceci :\n"
-"+ \n"
-"+      '((\"tty1\" . \"LatGrkCyr-8x16\"))\n"
-"relevance: 16\n"
+"description: Install the given fonts on the specified ttys (fonts are per\n"
+"+ virtual console on GNU/Linux).  The value of this service is a list of\n"
+"+ tty/font pairs.  The font can be the name of a font provided by the `kbd'\n"
+"+ package or any valid argument to `setfont', as in this example:\n"
+"+\n"
+"+      '((\"tty1\" . \"LatGrkCyr-8x16\")\n"
+"+        (\"tty2\" . (file-append\n"
+"+                      font-tamzen\n"
+"+                      \"/share/kbd/consolefonts/TamzenForPowerline10x20.psf\"))\n"
+"+        (\"tty3\" . (file-append\n"
+"+                      font-terminus\n"
+"+                      \"/share/consolefonts/ter-132n\"))) ; for HDPI\n"
+"relevance: 9\n"
 "\n"
 
 #. type: example
-#: doc/guix.texi:24263
+#: doc/guix.texi:30665
 #, no-wrap
 msgid ""
 "name: mingetty\n"
-"location: gnu/services/base.scm:1048:2\n"
+"location: gnu/services/base.scm:1190:2\n"
 "extends: shepherd-root\n"
 "description: Provide console login using the `mingetty' program.\n"
 "relevance: 2\n"
 "\n"
 msgstr ""
 "name: mingetty\n"
-"location: gnu/services/base.scm:1144:2\n"
+"location: gnu/services/base.scm:1190:2\n"
 "extends: shepherd-root\n"
-"description: Fournit la connexion en console avec le programme `mingetty'.\n"
-"relevance: 4\n"
+"description: Provide console login using the `mingetty' program.\n"
+"relevance: 2\n"
 "\n"
 
 #. type: example
-#: doc/guix.texi:24270
+#: doc/guix.texi:30672
 #, no-wrap
 msgid ""
 "name: login\n"
-"location: gnu/services/base.scm:775:2\n"
+"location: gnu/services/base.scm:860:2\n"
 "extends: pam\n"
 "description: Provide a console log-in service as specified by its\n"
 "+ configuration value, a `login-configuration' object.\n"
@@ -45010,261 +57088,308 @@ msgid ""
 "\n"
 msgstr ""
 "name: login\n"
-"location: gnu/services/base.scm:819:2\n"
+"location: gnu/services/base.scm:860:2\n"
 "extends: pam\n"
-"description: Fournit un service de connexion en console tel que spécifié par sa valeur de configuration, un objet `login-configuration'.\n"
-"relevance: 4\n"
+"description: Provide a console log-in service as specified by its\n"
+"+ configuration value, a `login-configuration' object.\n"
+"relevance: 2\n"
 "\n"
 
 #. type: example
-#: doc/guix.texi:24272
+#: doc/guix.texi:30674
 #, no-wrap
 msgid "@dots{}\n"
 msgstr "@dots{}\n"
 
 #. type: table
-#: doc/guix.texi:24277
+#: doc/guix.texi:30679
 msgid "As for @command{guix package --search}, the result is written in @code{recutils} format, which makes it easy to filter the output (@pxref{Top, GNU recutils databases,, recutils, GNU recutils manual})."
 msgstr "Comme pour @command{guix package --search}, le résultat est écrit au format @code{recutils}, ce qui rend facile le filtrage de la sortie (@pxref{Top, GNU recutils databases,, recutils, GNU recutils manual})."
 
 #. type: item
-#: doc/guix.texi:24278
+#: doc/guix.texi:30680
 #, no-wrap
 msgid "reconfigure"
 msgstr "reconfigure"
 
 #. type: table
-#: doc/guix.texi:24283
+#: doc/guix.texi:30685
 msgid "Build the operating system described in @var{file}, activate it, and switch to it@footnote{This action (and the related actions @code{switch-generation} and @code{roll-back}) are usable only on systems already running Guix System.}."
 msgstr "Construit le système d'exploitation décrit dans @var{file}, l'active et passe dessus@footnote{Cette action (et les action liées que sont @code{switch-generation} et @code{roll-back}) ne sont utilisables que sur les systèmes sous Guix System.}."
 
+#. type: quotation
+#: doc/guix.texi:30693
+msgid "It is highly recommended to run @command{guix pull} once before you run @command{guix system reconfigure} for the first time (@pxref{Invoking guix pull}).  Failing to do that you would see an older version of Guix once @command{reconfigure} has completed."
+msgstr "Il est grandement recommandé de lancer @command{guix pull} une fois avant de lancer @command{guix system reconfigure} pour la première fois (@pxref{Invoking guix pull}).  Sans cela, vous verriez une version plus ancienne de Guix une fois @command{reconfigure} terminé."
+
 #. type: table
-#: doc/guix.texi:24290
+#: doc/guix.texi:30701
 msgid "This effects all the configuration specified in @var{file}: user accounts, system services, global package list, setuid programs, etc.  The command starts system services specified in @var{file} that are not currently running; if a service is currently running this command will arrange for it to be upgraded the next time it is stopped (e.g.@: by @code{herd stop X} or @code{herd restart X})."
 msgstr "Cela met en application toute la configuration spécifiée dans @var{file} : les comptes utilisateurs, les services du système, la liste globale des paquets, les programmes setuid, etc.  La commande démarre les services systèmes spécifiés dans @var{file} qui ne sont pas actuellement lancés ; si un service est actuellement exécuté cette commande s'arrange pour qu'il soit mis à jour la prochaine fois qu'il est stoppé (p.@: ex@: par @code{herd stop X} ou @code{herd restart X})."
 
 #. type: table
-#: doc/guix.texi:24296
+#: doc/guix.texi:30707
 msgid "This command creates a new generation whose number is one greater than the current generation (as reported by @command{guix system list-generations}).  If that generation already exists, it will be overwritten.  This behavior mirrors that of @command{guix package} (@pxref{Invoking guix package})."
 msgstr "Cette commande crée une nouvelle génération dont le numéro est un de plus que la génération actuelle (rapportée par @command{guix system list-generations}).  Si cette génération existe déjà, elle sera réécrite.  Ce comportement correspond à celui de @command{guix package} (@pxref{Invoking guix package})."
 
 #. type: table
-#: doc/guix.texi:24301
+#: doc/guix.texi:30712
 msgid "It also adds a bootloader menu entry for the new OS configuration, ---unless @option{--no-bootloader} is passed.  For GRUB, it moves entries for older configurations to a submenu, allowing you to choose an older system generation at boot time should you need it."
 msgstr "Elle ajoute aussi une entrée de menu du chargeur d'amorçage pour la nouvelle configuration, à moins que @option{--no-bootloader} ne soit passé.  Pour GRUB, elle déplace les entrées pour les anciennes configurations dans un sous-menu, ce qui vous permet de choisir une ancienne génération au démarrage si vous en avez besoin."
 
-#. type: quotation
-#: doc/guix.texi:24309
-msgid "It is highly recommended to run @command{guix pull} once before you run @command{guix system reconfigure} for the first time (@pxref{Invoking guix pull}).  Failing to do that you would see an older version of Guix once @command{reconfigure} has completed."
-msgstr "Il est grandement recommandé de lancer @command{guix pull} une fois avant de lancer @command{guix system reconfigure} pour la première fois (@pxref{Invoking guix pull}).  Sans cela, vous verriez une version plus ancienne de Guix une fois @command{reconfigure} terminé."
+#. type: cindex
+#: doc/guix.texi:30713 doc/guix.texi:31016 doc/guix.texi:31959
+#, no-wrap
+msgid "provenance tracking, of the operating system"
+msgstr "suivi de provenance, pour le système d'exploitation"
+
+#. type: table
+#: doc/guix.texi:30718
+msgid "Upon completion, the new system is deployed under @file{/run/current-system}.  This directory contains @dfn{provenance meta-data}: the list of channels in use (@pxref{Channels}) and @var{file} itself, when available.  You can view it by running:"
+msgstr "À la fin, le nouveau système d'exploitation est déployé dans @file{/run/current-system}.  Ce répertoire contient les @dfn{métadonnées de provenance} : la liste des canaux utilisés (@pxref{Channels}) et @var{fichier} lui-même, s'il est disponible.  Vous pouvez les voir avec :"
+
+#. type: example
+#: doc/guix.texi:30721
+#, no-wrap
+msgid "guix system describe\n"
+msgstr "guix system describe\n"
+
+#. type: table
+#: doc/guix.texi:30727
+msgid "This information is useful should you later want to inspect how this particular generation was built.  In fact, assuming @var{file} is self-contained, you can later rebuild generation @var{n} of your operating system with:"
+msgstr "Cette information est utile si vous voulez plus tard inspecter comment une génération particulière a été construite.  En fait, en supposant que @var{file} est auto-contenu, vous pouvez reconstruire la génération @var{n} de votre système d'exploitation avec :"
+
+#. type: example
+#: doc/guix.texi:30733
+#, no-wrap
+msgid ""
+"guix time-machine \\\n"
+"  -C /var/guix/profiles/system-@var{n}-link/channels.scm -- \\\n"
+"  system reconfigure \\\n"
+"  /var/guix/profiles/system-@var{n}-link/configuration.scm\n"
+msgstr ""
+"guix time-machine \\\n"
+"  -C /var/guix/profiles/system-@var{n}-link/channels.scm -- \\\n"
+"  system reconfigure \\\n"
+"  /var/guix/profiles/system-@var{n}-link/configuration.scm\n"
+
+#. type: table
+#: doc/guix.texi:30739
+msgid "You can think of it as some sort of built-in version control! Your system is not just a binary artifact: @emph{it carries its own source}.  @xref{Service Reference, @code{provenance-service-type}}, for more information on provenance tracking."
+msgstr "Vous pouvez considérer cela comme une sorte de contrôle de version intégré !  Votre système n'est pas seulement un artéfact binaire : @emph{il contient ses propres sources}.  @xref{Service Reference, @code{provenance-service-type}}, pour plus d'informations sur le suivi de provenance."
+
+#. type: table
+#: doc/guix.texi:30745
+msgid "By default, @command{reconfigure} @emph{prevents you from downgrading your system}, which could (re)introduce security vulnerabilities and also cause problems with ``stateful'' services such as database management systems.  You can override that behavior by passing @option{--allow-downgrades}."
+msgstr "Par défaut, @command{reconfigure} @emph{vous empêche de faire revenir en arrière votre système}, ce qui pourrait (ré)introduire des vulnérabilités de sécurité et cause des problèmes avec les services « avec état » comme les systèmes de gestion de bases de données.  Vous pouvez contrôler ce comportement en passant @option{--allow-downgrades}."
 
 #. type: item
-#: doc/guix.texi:24311
+#: doc/guix.texi:30746
 #, no-wrap
 msgid "switch-generation"
 msgstr "switch-generation"
 
 #. type: table
-#: doc/guix.texi:24320
-msgid "Switch to an existing system generation.  This action atomically switches the system profile to the specified system generation.  It also rearranges the system's existing bootloader menu entries.  It makes the menu entry for the specified system generation the default, and it moves the entries for the other generatiors to a submenu, if supported by the bootloader being used.  The next time the system boots, it will use the specified system generation."
-msgstr "Passe à une génération existante du système.  Cette action change automatiquement le profil système vers la génération spécifiée.  Elle réarrange aussi les entrées existantes du menu du chargeur d'amorçage du système.  Elle fait de l'entrée du menu pour la génération spécifiée l'entrée par défaut et déplace les entrées pour les autres générations dans un sous-menu, si cela est supporté par le chargeur d'amorçage utilisé.  Lors du prochain démarrage du système, la génération du système spécifiée sera utilisée."
+#: doc/guix.texi:30755
+msgid "Switch to an existing system generation.  This action atomically switches the system profile to the specified system generation.  It also rearranges the system's existing bootloader menu entries.  It makes the menu entry for the specified system generation the default, and it moves the entries for the other generations to a submenu, if supported by the bootloader being used.  The next time the system boots, it will use the specified system generation."
+msgstr "Passe à une génération existante du système.  Cette action change automatiquement le profil système vers la génération spécifiée.  Elle réarrange aussi les entrées existantes du menu du chargeur d'amorçage du système.  Elle fait de l'entrée du menu pour la génération spécifiée l'entrée par défaut et déplace les entrées pour les autres générations dans un sous-menu, si cela est pris en charge par le chargeur d'amorçage utilisé.  Lors du prochain démarrage du système, la génération du système spécifiée sera utilisée."
 
 #. type: table
-#: doc/guix.texi:24324
+#: doc/guix.texi:30759
 msgid "The bootloader itself is not being reinstalled when using this command.  Thus, the installed bootloader is used with an updated configuration file."
 msgstr "Le chargeur d'amorçage lui-même n'est pas réinstallé avec cette commande.  Ainsi, le chargeur d'amorçage est utilisé avec un fichier de configuration plus à jour."
 
 #. type: table
-#: doc/guix.texi:24328
+#: doc/guix.texi:30763
 msgid "The target generation can be specified explicitly by its generation number.  For example, the following invocation would switch to system generation 7:"
 msgstr "La génération cible peut être spécifiée explicitement par son numéro de génération.  Par exemple, l'invocation suivante passerait à la génération 7 du système :"
 
 #. type: example
-#: doc/guix.texi:24331
+#: doc/guix.texi:30766
 #, no-wrap
 msgid "guix system switch-generation 7\n"
 msgstr "guix system switch-generation 7\n"
 
 #. type: table
-#: doc/guix.texi:24339
+#: doc/guix.texi:30774
 msgid "The target generation can also be specified relative to the current generation with the form @code{+N} or @code{-N}, where @code{+3} means ``3 generations ahead of the current generation,'' and @code{-1} means ``1 generation prior to the current generation.'' When specifying a negative value such as @code{-1}, you must precede it with @code{--} to prevent it from being parsed as an option.  For example:"
 msgstr "La génération cible peut aussi être spécifiée relativement à la génération actuelle avec la forme @code{+N} ou @code{-N}, où @code{+3} signifie « trois générations après la génération actuelle » et @code{-1} signifie « une génération précédent la génération actuelle ».  Lorsque vous spécifiez un nombre négatif comme @code{-1}, il doit être précédé de @code{--} pour éviter qu'il ne soit compris comme une option.  Par exemple :"
 
 #. type: example
-#: doc/guix.texi:24342
+#: doc/guix.texi:30777
 #, no-wrap
 msgid "guix system switch-generation -- -1\n"
 msgstr "guix system switch-generation -- -1\n"
 
 #. type: table
-#: doc/guix.texi:24350
+#: doc/guix.texi:30785
 msgid "Currently, the effect of invoking this action is @emph{only} to switch the system profile to an existing generation and rearrange the bootloader menu entries.  To actually start using the target system generation, you must reboot after running this action.  In the future, it will be updated to do the same things as @command{reconfigure}, like activating and deactivating services."
 msgstr "Actuellement, l'effet de l'invocation de cette action est @emph{uniquement} de passer au profil du système vers une autre génération existante et de réarranger le menu du chargeur d'amorçage. Pour vraiment commencer à utiliser la génération spécifiée, vous devez redémarrer après avoir lancé cette action.  Dans le futur, elle sera corrigée pour faire la même chose que @command{reconfigure}, comme réactiver et désactiver les services."
 
 #. type: table
-#: doc/guix.texi:24352
+#: doc/guix.texi:30787
 msgid "This action will fail if the specified generation does not exist."
 msgstr "Cette action échouera si la génération spécifiée n'existe pas."
 
 #. type: item
-#: doc/guix.texi:24353
+#: doc/guix.texi:30788
 #, no-wrap
 msgid "roll-back"
 msgstr "roll-back"
 
 #. type: table
-#: doc/guix.texi:24359
+#: doc/guix.texi:30794
 msgid "Switch to the preceding system generation.  The next time the system boots, it will use the preceding system generation.  This is the inverse of @command{reconfigure}, and it is exactly the same as invoking @command{switch-generation} with an argument of @code{-1}."
 msgstr "Passe à la génération précédente du système.  Au prochain démarrage, la génération précédente sera utilisée.  C'est le contraire de @command{reconfigure}, et c'est exactement comme invoquer @command{switch-generation} avec pour argument @code{-1}."
 
 #. type: table
-#: doc/guix.texi:24363
+#: doc/guix.texi:30798
 msgid "Currently, as with @command{switch-generation}, you must reboot after running this action to actually start using the preceding system generation."
 msgstr "Actuellement, comme pour @command{switch-generation}, vous devez redémarrer après avoir lancé cette action pour vraiment démarrer sur la génération précédente du système."
 
 #. type: item
-#: doc/guix.texi:24364
+#: doc/guix.texi:30799
 #, no-wrap
 msgid "delete-generations"
 msgstr "delete-generations"
 
 #. type: cindex
-#: doc/guix.texi:24365
+#: doc/guix.texi:30800
 #, no-wrap
 msgid "deleting system generations"
 msgstr "supprimer des générations du système"
 
 #. type: cindex
-#: doc/guix.texi:24366
+#: doc/guix.texi:30801
 #, no-wrap
 msgid "saving space"
 msgstr "gagner de la place"
 
 #. type: table
-#: doc/guix.texi:24370
+#: doc/guix.texi:30805
 msgid "Delete system generations, making them candidates for garbage collection (@pxref{Invoking guix gc}, for information on how to run the ``garbage collector'')."
 msgstr "Supprimer des générations du système, ce qui les rend disponibles pour le ramasse-miettes (@pxref{Invoking guix gc}, pour des informations sur la manière de lancer le « ramasse-miettes »)."
 
 #. type: table
-#: doc/guix.texi:24374
-msgid "This works in the same way as @command{guix package --delete-generations} (@pxref{Invoking guix package, @code{--delete-generations}}).  With no arguments, all system generations but the current one are deleted:"
-msgstr "Cela fonctionne comme pour @command{guix package --delete-generations} (@pxref{Invoking guix package, @code{--delete-generations}}).  Avec aucun argument, toutes les générations du système sauf la génération actuelle sont supprimées :"
+#: doc/guix.texi:30809
+msgid "This works in the same way as @samp{guix package --delete-generations} (@pxref{Invoking guix package, @option{--delete-generations}}).  With no arguments, all system generations but the current one are deleted:"
+msgstr "Cela fonctionne comme pour @samp{guix package --delete-generations} (@pxref{Invoking guix package, @code{--delete-generations}}).  Avec aucun argument, toutes les générations du système sauf la génération actuelle sont supprimées :"
 
 #. type: example
-#: doc/guix.texi:24377
+#: doc/guix.texi:30812
 #, no-wrap
 msgid "guix system delete-generations\n"
 msgstr "guix system delete-generations\n"
 
 #. type: table
-#: doc/guix.texi:24381
+#: doc/guix.texi:30816
 msgid "You can also select the generations you want to delete.  The example below deletes all the system generations that are more than two month old:"
 msgstr "Vous pouvez aussi choisir les générations que vous voulez supprimer.  L'exemple plus bas supprime toutes les génération du système plus vieilles que deux mois :"
 
 #. type: example
-#: doc/guix.texi:24384
+#: doc/guix.texi:30819
 #, no-wrap
 msgid "guix system delete-generations 2m\n"
 msgstr "guix system delete-generations 2m\n"
 
 #. type: table
-#: doc/guix.texi:24389
+#: doc/guix.texi:30824
 msgid "Running this command automatically reinstalls the bootloader with an updated list of menu entries---e.g., the ``old generations'' sub-menu in GRUB no longer lists the generations that have been deleted."
 msgstr "Lancer cette commande réinstalle automatiquement le chargeur d'amorçage avec une liste à jour d'entrées de menu — p.@: ex.@: le sous-menu « anciennes générations » dans GRUB ne liste plus les générations qui ont été supprimées."
 
 #. type: table
-#: doc/guix.texi:24394
+#: doc/guix.texi:30829
 msgid "Build the derivation of the operating system, which includes all the configuration files and programs needed to boot and run the system.  This action does not actually install anything."
 msgstr "Construit la dérivation du système d'exploitation, ce qui comprend tous les fichiers de configuration et les programmes requis pour démarrer et lancer le système.  Cette action n'installe rien."
 
 #. type: item
-#: doc/guix.texi:24395
+#: doc/guix.texi:30830
 #, no-wrap
 msgid "init"
 msgstr "init"
 
 #. type: table
-#: doc/guix.texi:24399
+#: doc/guix.texi:30834
 msgid "Populate the given directory with all the files necessary to run the operating system specified in @var{file}.  This is useful for first-time installations of Guix System.  For instance:"
 msgstr "Rempli le répertoire donné avec tous les fichiers nécessaires à lancer le système d'exploitation spécifié dans @var{file}.  C'est utile pour la première installation de Guix System.  Par exemple :"
 
 #. type: example
-#: doc/guix.texi:24402
+#: doc/guix.texi:30837
 #, no-wrap
 msgid "guix system init my-os-config.scm /mnt\n"
 msgstr "guix system init my-os-config.scm /mnt\n"
 
 #. type: table
-#: doc/guix.texi:24409
+#: doc/guix.texi:30844
 msgid "copies to @file{/mnt} all the store items required by the configuration specified in @file{my-os-config.scm}.  This includes configuration files, packages, and so on.  It also creates other essential files needed for the system to operate correctly---e.g., the @file{/etc}, @file{/var}, and @file{/run} directories, and the @file{/bin/sh} file."
 msgstr "copie tous les éléments du dépôt requis par la configuration spécifiée dans @file{my-os-config.scm} dans @file{/mnt}.  Cela comprend les fichiers de configuration, les paquets, etc.  Elle crée aussi d'autres fichiers essentiels requis pour que le système fonctionne correctement — p.@: ex.@: les répertoires @file{/etc}, @file{/var} et @file{/run} et le fichier @file{/bin/sh}."
 
 #. type: table
-#: doc/guix.texi:24413
+#: doc/guix.texi:30848
 msgid "This command also installs bootloader on the target specified in @file{my-os-config}, unless the @option{--no-bootloader} option was passed."
 msgstr "Cette commande installe aussi le chargeur d'amorçage sur la cible spécifiée dans @file{my-os-config}, à moins que l'option @option{--no-bootloader} ne soit passée."
 
 #. type: item
-#: doc/guix.texi:24414
+#: doc/guix.texi:30849
 #, no-wrap
 msgid "vm"
 msgstr "vm"
 
 #. type: cindex
-#: doc/guix.texi:24415 doc/guix.texi:24683
+#: doc/guix.texi:30850 doc/guix.texi:31384
 #, no-wrap
 msgid "virtual machine"
 msgstr "machine virtuelle"
 
 #. type: cindex
-#: doc/guix.texi:24416
+#: doc/guix.texi:30851
 #, no-wrap
 msgid "VM"
 msgstr "VM"
 
 #. type: anchor{#1}
-#: doc/guix.texi:24420
+#: doc/guix.texi:30855
 msgid "guix system vm"
 msgstr "guix system vm"
 
 #. type: table
-#: doc/guix.texi:24420
+#: doc/guix.texi:30855
 msgid "Build a virtual machine that contains the operating system declared in @var{file}, and return a script to run that virtual machine (VM)."
 msgstr "Construit une machine virtuelle qui contient le système d'exploitation déclaré dans @var{file} et renvoie un script pour lancer cette machine virtuelle (VM)."
 
 #. type: quotation
-#: doc/guix.texi:24428
+#: doc/guix.texi:30863
 msgid "The @code{vm} action and others below can use KVM support in the Linux-libre kernel.  Specifically, if the machine has hardware virtualization support, the corresponding KVM kernel module should be loaded, and the @file{/dev/kvm} device node must exist and be readable and writable by the user and by the build users of the daemon (@pxref{Build Environment Setup})."
 msgstr "Les actions @code{vm} et les autres plus bas peuvent utiliser la prise en charge KVM du noyau Linux-libre.  Plus spécifiquement, si la machine prend en charge la virtualisation matérielle, le module noyau KVM correspondant devrait être chargé, et le nœud de périphérique @file{/dev/kvm} devrait exister et être lisible et inscriptible pour l'utilisateur et pour les utilisateurs de construction du démon (@pxref{Build Environment Setup})."
 
 #. type: table
-#: doc/guix.texi:24433
+#: doc/guix.texi:30868
 msgid "Arguments given to the script are passed to QEMU as in the example below, which enables networking and requests 1@tie{}GiB of RAM for the emulated machine:"
 msgstr "Les arguments passés au script sont passés à QEMU comme dans l'exemple ci-dessous, qui active le réseau et demande 1@tie{}Go de RAM pour la machine émulée :"
 
 #. type: example
-#: doc/guix.texi:24436
+#: doc/guix.texi:30871
 #, no-wrap
-msgid "$ /gnu/store/@dots{}-run-vm.sh -m 1024 -net user\n"
-msgstr "$ /gnu/store/@dots{}-run-vm.sh -m 1024 -net user\n"
+msgid "$ /gnu/store/@dots{}-run-vm.sh -m 1024 -smp 2 -net user,model=virtio-net-pci\n"
+msgstr "$ /gnu/store/@dots{}-run-vm.sh -m 1024 -smp 2 -net user,model=virtio-net-pci\n"
 
 #. type: table
-#: doc/guix.texi:24439
+#: doc/guix.texi:30874
 msgid "The VM shares its store with the host system."
 msgstr "La VM partage sont dépôt avec le système hôte."
 
 #. type: table
-#: doc/guix.texi:24444
-msgid "Additional file systems can be shared between the host and the VM using the @code{--share} and @code{--expose} command-line options: the former specifies a directory to be shared with write access, while the latter provides read-only access to the shared directory."
-msgstr "Vous pouvez partager des fichiers supplémentaires entre l'hôte et la VM avec les options en ligne de commande @code{--share} et @code{--expose} : la première spécifie un répertoire à partager avec accès en écriture, tandis que le deuxième fournit un accès en lecture-seule au répertoire partagé."
+#: doc/guix.texi:30879
+msgid "Additional file systems can be shared between the host and the VM using the @option{--share} and @option{--expose} command-line options: the former specifies a directory to be shared with write access, while the latter provides read-only access to the shared directory."
+msgstr "Vous pouvez partager des fichiers supplémentaires entre l'hôte et la VM avec les options en ligne de commande @option{--share} et @option{--expose} : la première spécifie un répertoire à partager avec accès en écriture, tandis que le deuxième fournit un accès en lecture-seule au répertoire partagé."
 
 #. type: table
-#: doc/guix.texi:24448
+#: doc/guix.texi:30883
 msgid "The example below creates a VM in which the user's home directory is accessible read-only, and where the @file{/exchange} directory is a read-write mapping of @file{$HOME/tmp} on the host:"
 msgstr "L'exemple ci-dessous crée une VM dans laquelle le répertoire personnel de l'utilisateur est accessible en lecture-seule, et où le répertoire @file{/exchange} est une correspondance en lecture-écriture à @file{$HOME/tmp} sur l'hôte :"
 
 #. type: example
-#: doc/guix.texi:24452
+#: doc/guix.texi:30887
 #, no-wrap
 msgid ""
 "guix system vm my-config.scm \\\n"
@@ -45274,114 +57399,131 @@ msgstr ""
 "   --expose=$HOME --share=$HOME/tmp=/exchange\n"
 
 #. type: table
-#: doc/guix.texi:24457
+#: doc/guix.texi:30892
 msgid "On GNU/Linux, the default is to boot directly to the kernel; this has the advantage of requiring only a very tiny root disk image since the store of the host can then be mounted."
 msgstr "Sur GNU/Linux, le comportement par défaut consiste à démarrer directement sur le noyau ; cela a l'avantage de n'avoir besoin que d'une toute petite image disque puisque le dépôt de l'hôte peut ensuite être monté."
 
 #. type: table
-#: doc/guix.texi:24463
-msgid "The @code{--full-boot} option forces a complete boot sequence, starting with the bootloader.  This requires more disk space since a root image containing at least the kernel, initrd, and bootloader data files must be created.  The @code{--image-size} option can be used to specify the size of the image."
-msgstr "L'option @code{--full-boot} force une séquence de démarrage complète, en commençant par le chargeur d'amorçage.  Cela requiert plus d'espace disque puisqu'une image racine contenant au moins le noyau, l'initrd et les fichiers de données du chargeur d'amorçage doit être créé.  On peut utiliser l'option @code{--image-size} pour spécifier la taille de l'image."
+#: doc/guix.texi:30898
+msgid "The @option{--full-boot} option forces a complete boot sequence, starting with the bootloader.  This requires more disk space since a root image containing at least the kernel, initrd, and bootloader data files must be created.  The @option{--image-size} option can be used to specify the size of the image."
+msgstr "L'option @option{--full-boot} force une séquence de démarrage complète, en commençant par le chargeur d'amorçage.  Cela requiert plus d'espace disque puisqu'une image racine contenant au moins le noyau, l'initrd et les fichiers de données du chargeur d'amorçage doit être créé.  On peut utiliser l'option @option{--image-size} pour spécifier la taille de l'image."
 
 #. type: cindex
-#: doc/guix.texi:24464
+#: doc/guix.texi:30899
 #, no-wrap
 msgid "System images, creation in various formats"
 msgstr "Images système, création en divers formats"
 
 #. type: cindex
-#: doc/guix.texi:24465
+#: doc/guix.texi:30900
 #, no-wrap
 msgid "Creating system images in various formats"
 msgstr "Créer des images systèmes sous différents formats"
 
 #. type: item
-#: doc/guix.texi:24466
+#: doc/guix.texi:30901
 #, no-wrap
 msgid "vm-image"
 msgstr "vm-image"
 
 #. type: itemx
-#: doc/guix.texi:24467
+#: doc/guix.texi:30902
 #, no-wrap
 msgid "disk-image"
 msgstr "disk-image"
 
 #. type: itemx
-#: doc/guix.texi:24468
+#: doc/guix.texi:30903
 #, no-wrap
 msgid "docker-image"
 msgstr "docker-image"
 
 #. type: table
-#: doc/guix.texi:24476
+#: doc/guix.texi:30911
 msgid "Return a virtual machine, disk image, or Docker image of the operating system declared in @var{file} that stands alone.  By default, @command{guix system} estimates the size of the image needed to store the system, but you can use the @option{--image-size} option to specify a value.  Docker images are built to contain exactly what they need, so the @option{--image-size} option is ignored in the case of @code{docker-image}."
 msgstr "Renvoie une machine virtuelle, une image disque ou une image Docker du système d'exploitation déclaré dans @var{file} qui se suffit à elle-même.  Par défaut, @command{guix system} estime la taille de l'image requise pour stocker le système, mais vous pouvez utiliser l'option @option{--image-size} pour spécifier une valeur.  Les images Docker sont construites pour contenir exactement ce dont elles ont besoin, donc l'option @option{--image-size} est ignorée dans le cas de @code{docker-image}."
 
 #. type: table
-#: doc/guix.texi:24479
-msgid "You can specify the root file system type by using the @option{--file-system-type} option.  It defaults to @code{ext4}."
-msgstr "Vous pouvez spécifier le type de système de fichiers racine avec l'option @option{--file-system-type}.  La valeur par défaut est @code{ext4}."
+#: doc/guix.texi:30917
+msgid "The @code{disk-image} command can produce various image types.  The image type can be selected using the @command{--image-type} option.  It defaults to @code{raw}. When its value is @code{iso9660}, the @option{--label} option can be used to specify a volume ID with @code{disk-image}."
+msgstr "La commande @code{disk-image} peut produire plusieurs types d'images.  Le type d'image peut être choisi avec l'option @command{--image-type}.  Sa valeur par défaut est @code{raw}.  Lorsque sa valeur est @code{iso9660}, l'option @option{--label} peut être utilisée pour spécifier un nom de volume avec @code{disk-image}."
 
 #. type: table
-#: doc/guix.texi:24483
-msgid "When using @code{vm-image}, the returned image is in qcow2 format, which the QEMU emulator can efficiently use. @xref{Running Guix in a VM}, for more information on how to run the image in a virtual machine."
-msgstr "Lorsque vous utilisez @code{vm-image}, l'image renvoyée est au format qcow2, que l'émulateur QEMU peut utiliser efficacement.  @xref{Running Guix in a VM}, pour plus d'informations sur la manière de lancer l'image dans une machine virtuelle."
-
-#. type: table
-#: doc/guix.texi:24488
-msgid "When using @code{disk-image}, a raw disk image is produced; it can be copied as is to a USB stick, for instance.  Assuming @code{/dev/sdc} is the device corresponding to a USB stick, one can copy the image to it using the following command:"
-msgstr "Lorsque vous utilisez @code{disk-image}, une image disque brute est produite ; elle peut être copiée telle quelle sur un périphérique USB.  En supposant que @code{/dev/sdc} est le périphérique correspondant à une clef USB, on peut copier l'image dessus avec la commande suivante :"
+#: doc/guix.texi:30922
+msgid "When using the @code{raw} image type, a raw disk image is produced; it can be copied as is to a USB stick, for instance.  Assuming @code{/dev/sdc} is the device corresponding to a USB stick, one can copy the image to it using the following command:"
+msgstr "Lorsque vous utilisez le type d'image @code{raw}, une image disque brute est produite ; elle peut être copiée telle quelle sur un périphérique USB par exemple.  En supposant que @code{/dev/sdc} est le périphérique correspondant à une clé USB, on peut copier l'image dessus avec la commande suivante :"
 
 #. type: example
-#: doc/guix.texi:24491
+#: doc/guix.texi:30925
 #, no-wrap
-msgid "# dd if=$(guix system disk-image my-os.scm) of=/dev/sdc\n"
-msgstr "# dd if=$(guix system disk-image my-os.scm) of=/dev/sdc\n"
+msgid "# dd if=$(guix system disk-image my-os.scm) of=/dev/sdc status=progress\n"
+msgstr "# dd if=$(guix system disk-image my-os.scm) of=/dev/sdc status=progress\n"
+
+#. type: table
+#: doc/guix.texi:30929
+msgid "The @code{--list-image-types} command lists all the available image types."
+msgstr "La commande @code{--list-image-types} liste tous les types d'images disponibles."
 
 #. type: table
-#: doc/guix.texi:24498
+#: doc/guix.texi:30933
+msgid "When using @code{vm-image}, the returned image is in qcow2 format, which the QEMU emulator can efficiently use. @xref{Running Guix in a VM}, for more information on how to run the image in a virtual machine."
+msgstr "Lorsque vous utilisez @code{vm-image}, l'image renvoyée est au format qcow2, que l'émulateur QEMU peut utiliser efficacement.  @xref{Running Guix in a VM}, pour plus d'informations sur la manière de lancer l'image dans une machine virtuelle."
+
+#. type: table
+#: doc/guix.texi:30939
 msgid "When using @code{docker-image}, a Docker image is produced.  Guix builds the image from scratch, not from a pre-existing Docker base image.  As a result, it contains @emph{exactly} what you define in the operating system configuration file.  You can then load the image and launch a Docker container using commands like the following:"
 msgstr "En utilisant @code{docker-image}, on produit une image Docker.  Guix construit l'image de zéro, et non à partir d'une image Docker de base pré-existante.  En conséquence, elle contient @emph{exactly} ce que vous avez défini dans le fichier de configuration du système.  Vous pouvez ensuite charger l'image et lancer un conteneur Docker avec des commande comme :"
 
 #. type: example
-#: doc/guix.texi:24504
+#: doc/guix.texi:30944
 #, no-wrap
 msgid ""
-"image_id=\"$(docker load < guix-system-docker-image.tar.gz)\"\n"
-"docker run -e GUIX_NEW_SYSTEM=/var/guix/profiles/system \\\\\n"
-"    --entrypoint /var/guix/profiles/system/profile/bin/guile \\\\\n"
-"    $image_id /var/guix/profiles/system/boot\n"
+"image_id=\"`docker load < guix-system-docker-image.tar.gz`\"\n"
+"container_id=\"`docker create $image_id`\"\n"
+"docker start $container_id\n"
 msgstr ""
-"image_id=\"$(docker load < guix-system-docker-image.tar.gz)\"\n"
-"docker run -e GUIX_NEW_SYSTEM=/var/guix/profiles/system \\\\\n"
-"    --entrypoint /var/guix/profiles/system/profile/bin/guile \\\\\n"
-"    $image_id /var/guix/profiles/system/boot\n"
+"image_id=\"`docker load < guix-system-docker-image.tar.gz`\"\n"
+"container_id=\"`docker create $image_id`\"\n"
+"docker start $container_id\n"
 
 #. type: table
-#: doc/guix.texi:24514
-#, fuzzy
-#| msgid "Depending on what you run in the Docker container, it may be necessary to give the container additional permissions.  For example, if you intend to build software using Guix inside of the Docker container, you may need to pass the @option{--privileged} option to @code{docker create}."
-msgid "This command starts a new Docker container from the specified image.  It will boot the Guix system in the usual manner, which means it will start any services you have defined in the operating system configuration.  Depending on what you run in the Docker container, it may be necessary to give the container additional permissions.  For example, if you intend to build software using Guix inside of the Docker container, you may need to pass the @option{--privileged} option to @code{docker run}."
+#: doc/guix.texi:30951
+msgid "This command starts a new Docker container from the specified image.  It will boot the Guix system in the usual manner, which means it will start any services you have defined in the operating system configuration.  You can get an interactive shell running in the container using @command{docker exec}:"
+msgstr "Cette commande démarre un nouveau conteneur Docker à partir de l'image spécifiée.  Il démarrera le système Guix de la manière habituelle, ce qui signifie qu'il démarrera tous les services que vous avez définis dans la configuration du système d'exploitation.  Vous pouvez obtenir un shell interactif dans le conteneur en utilisant @command{docker exec} :"
+
+#. type: example
+#: doc/guix.texi:30954
+#, no-wrap
+msgid "docker exec -ti $container_id /run/current-system/profile/bin/bash --login\n"
+msgstr "docker exec -ti $container_id /run/current-system/profile/bin/bash --login\n"
+
+#. type: table
+#: doc/guix.texi:30961
+msgid "Depending on what you run in the Docker container, it may be necessary to give the container additional permissions.  For example, if you intend to build software using Guix inside of the Docker container, you may need to pass the @option{--privileged} option to @code{docker create}."
 msgstr "En fonction de ce que vous lancez dans le conteneur Docker, il peut être nécessaire de donner des permissions supplémentaires au conteneur.  Par exemple, si vous voulez construire des paquets avec Guix dans le conteneur Docker, vous devriez passer @option{--privileged} à @code{docker create}."
 
 #. type: table
-#: doc/guix.texi:24522
+#: doc/guix.texi:30965
+msgid "Last, the @option{--network} option applies to @command{guix system docker-image}: it produces an image where network is supposedly shared with the host, and thus without services like nscd or NetworkManager."
+msgstr "Enfin, l'option @option{--network} s'applique à @command{guix system docker-image}: elle produit une image où le réseau est partagé avec l'hôte, et donc sans services comme nscd ou NetworkManager."
+
+#. type: table
+#: doc/guix.texi:30973
 msgid "Return a script to run the operating system declared in @var{file} within a container.  Containers are a set of lightweight isolation mechanisms provided by the kernel Linux-libre.  Containers are substantially less resource-demanding than full virtual machines since the kernel, shared objects, and other resources can be shared with the host system; this also means they provide thinner isolation."
 msgstr "Renvoie un script qui lance le système d'exploitation déclaré dans @var{file} dans un conteneur.  Les conteneurs sont un ensemble de mécanismes d'isolation légers fournis par le noyau Linux-libre.  Les conteneurs sont substantiellement moins gourmands en ressources que les machines virtuelles complètes car le noyau, les objets partagés et d'autres ressources peuvent être partagés avec le système hôte ; cela signifie aussi une isolation moins complète."
 
 #. type: table
-#: doc/guix.texi:24526
+#: doc/guix.texi:30977
 msgid "Currently, the script must be run as root in order to support more than a single user and group.  The container shares its store with the host system."
 msgstr "Actuellement, le script doit être lancé en root pour pouvoir supporter plus d'un utilisateur et d'un groupe.  Le conteneur partage son dépôt avec le système hôte."
 
 #. type: table
-#: doc/guix.texi:24530
+#: doc/guix.texi:30981
 msgid "As with the @code{vm} action (@pxref{guix system vm}), additional file systems to be shared between the host and container can be specified using the @option{--share} and @option{--expose} options:"
 msgstr "Comme avec l'action @code{vm} (@pxref{guix system vm}), des systèmes de fichiers supplémentaires peuvent être partagés entre l'hôte et le conteneur avec les options @option{--share} et @option{--expose} :"
 
 #. type: example
-#: doc/guix.texi:24534
+#: doc/guix.texi:30985
 #, no-wrap
 msgid ""
 "guix system container my-config.scm \\\n"
@@ -45391,435 +57533,861 @@ msgstr ""
 "   --expose=$HOME --share=$HOME/tmp=/exchange\n"
 
 #. type: quotation
-#: doc/guix.texi:24538
+#: doc/guix.texi:30989
 msgid "This option requires Linux-libre 3.19 or newer."
 msgstr "Cette option requiert Linux-libre  ou supérieur."
 
 #. type: Plain text
-#: doc/guix.texi:24545
+#: doc/guix.texi:30996
 msgid "@var{options} can contain any of the common build options (@pxref{Common Build Options}).  In addition, @var{options} can contain one of the following:"
 msgstr "@var{options} peut contenir n'importe quelle option commune de construction (@pxref{Common Build Options}).  En plus, @var{options} peut contenir l'une de ces options :"
 
 #. type: table
-#: doc/guix.texi:24554
+#: doc/guix.texi:31005
 msgid "Consider the operating-system @var{expr} evaluates to.  This is an alternative to specifying a file which evaluates to an operating system.  This is used to generate the Guix system installer @pxref{Building the Installation Image})."
 msgstr "Considère le système d'exploitation en lequel s'évalue @var{expr}.  C'est une alternative à la spécification d'un fichier qui s'évalue en un système d'exploitation.  C'est utilisé pour générer l'installateur du système Guix (@pxref{Building the Installation Image})."
 
 #. type: table
-#: doc/guix.texi:24559
+#: doc/guix.texi:31010
 msgid "Attempt to build for @var{system} instead of the host system type.  This works as per @command{guix build} (@pxref{Invoking guix build})."
 msgstr "Essaye de construire pour @var{system} au lieu du type du système hôte.  Cela fonction comme pour @command{guix build} (@pxref{Invoking guix build})."
 
-#. type: item
-#: doc/guix.texi:24560
-#, no-wrap
-msgid "--derivation"
-msgstr "--derivation"
-
 #. type: table
-#: doc/guix.texi:24564
+#: doc/guix.texi:31015
 msgid "Return the derivation file name of the given operating system without building anything."
 msgstr "Renvoie le nom du fichier de dérivation du système d'exploitation donné sans rien construire."
 
+#. type: table
+#: doc/guix.texi:31024
+msgid "As discussed above, @command{guix system init} and @command{guix system reconfigure} always save provenance information @i{via} a dedicated service (@pxref{Service Reference, @code{provenance-service-type}}).  However, other commands don't do that by default.  If you wish to, say, create a virtual machine image that contains provenance information, you can run:"
+msgstr "Comme nous en avons parlé précédemment, @command{guix system init} et @command{guix system reconfigure} enregistrent toujours les informations de provenance via un service dédié (@pxref{Service Reference, @code{provenance-service-type}}).  Cependant, d'autres commande ne le font pas par défaut.  Si vous voulez, disons, créer une image de machine virtuelle contenant les informations de provenance, vous pouvez lancer :"
+
+#. type: example
+#: doc/guix.texi:31027
+#, no-wrap
+msgid "guix system vm-image --save-provenance config.scm\n"
+msgstr "guix system vm-image --save-provenance config.scm\n"
+
+#. type: table
+#: doc/guix.texi:31034
+msgid "That way, the resulting image will effectively ``embed its own source'' in the form of meta-data in @file{/run/current-system}.  With that information, one can rebuild the image to make sure it really contains what it pretends to contain; or they could use that to derive a variant of the image."
+msgstr "De cette façon, l'image qui en résulte va effectivement « intégrer sa propre source » sous la forme de méta-données dans @file{/run/current-system}.  Avec cette information, on peut reconstruire l'image pour s'assurer qu'elle contient vraiment ce qu'elle prétend contenir ; ou on peut utiliser ça pour dériver une variante de l'image."
+
 #. type: item
-#: doc/guix.texi:24565
+#: doc/guix.texi:31035
 #, no-wrap
-msgid "--file-system-type=@var{type}"
-msgstr "--file-system-type=@var{type}"
+msgid "--image-type=@var{type}"
+msgstr "--image-type=@var{type}"
 
 #. type: table
-#: doc/guix.texi:24569
-msgid "For the @code{disk-image} action, create a file system of the given @var{type} on the image."
-msgstr "Pour l'action @code{disk-image}, crée un système de fichier du @var{type} donné sur l'image."
+#: doc/guix.texi:31038
+msgid "For the @code{disk-image} action, create an image with given @var{type}."
+msgstr "Pour l'action @code{disk-image}, crée une image du @var{type} donné."
 
 #. type: table
-#: doc/guix.texi:24571
-msgid "When this option is omitted, @command{guix system} uses @code{ext4}."
-msgstr "Lorsque cette option est omise, @command{guix system} utilise @code{ext4}."
+#: doc/guix.texi:31041
+msgid "When this option is omitted, @command{guix system} uses the @code{raw} image type."
+msgstr "Lorsque cette option est omise, @command{guix system} utilise le type d'image @code{raw}."
 
 #. type: cindex
-#: doc/guix.texi:24572
+#: doc/guix.texi:31042
 #, no-wrap
 msgid "ISO-9660 format"
-msgstr "format ISO-9660"
+msgstr "Format ISO-9660"
 
 #. type: cindex
-#: doc/guix.texi:24573
+#: doc/guix.texi:31043
 #, no-wrap
 msgid "CD image format"
-msgstr "format d'image de CD"
+msgstr "Format d'image de CD"
 
 #. type: cindex
-#: doc/guix.texi:24574
+#: doc/guix.texi:31044
 #, no-wrap
 msgid "DVD image format"
-msgstr "format d'image de DVD"
+msgstr "Format d'image de DVD"
 
 #. type: table
-#: doc/guix.texi:24577
-msgid "@code{--file-system-type=iso9660} produces an ISO-9660 image, suitable for burning on CDs and DVDs."
-msgstr "@code{--file-system-type=iso9660} produit une image ISO-9660, qu'il est possible de graver sur un CD ou un DVD."
+#: doc/guix.texi:31047
+msgid "@option{--image-type=iso9660} produces an ISO-9660 image, suitable for burning on CDs and DVDs."
+msgstr "@option{--image-type=iso9660} produit une image ISO-9660, qu'il est possible de graver sur un CD ou un DVD."
 
 #. type: item
-#: doc/guix.texi:24578
+#: doc/guix.texi:31048
 #, no-wrap
 msgid "--image-size=@var{size}"
 msgstr "--image-size=@var{size}"
 
 #. type: table
-#: doc/guix.texi:24583
+#: doc/guix.texi:31053
 msgid "For the @code{vm-image} and @code{disk-image} actions, create an image of the given @var{size}.  @var{size} may be a number of bytes, or it may include a unit as a suffix (@pxref{Block size, size specifications,, coreutils, GNU Coreutils})."
 msgstr "Pour les actions @code{vm-image} et @code{disk-image}, crée une image de la taille donnée @var{size}.  @var{size} peut être un nombre d'octets ou contenir un suffixe d'unité (@pxref{Block size, size specifications,, coreutils, GNU Coreutils})."
 
 #. type: table
-#: doc/guix.texi:24587
+#: doc/guix.texi:31057
 msgid "When this option is omitted, @command{guix system} computes an estimate of the image size as a function of the size of the system declared in @var{file}."
 msgstr "Lorsque cette option est omise, @command{guix system} calcule une estimation de la taille de l'image en fonction de la taille du système déclaré dans @var{file}."
 
+#. type: table
+#: doc/guix.texi:31062
+msgid "For the @code{container} action, allow containers to access the host network, that is, do not create a network namespace."
+msgstr "Pour l'action @code{container}, permet aux conteneurs d'accéder au réseau de l'hôte, c'est-à-dire, ne crée pas pas d'espace de nom réseau."
+
 #. type: item
-#: doc/guix.texi:24593
+#: doc/guix.texi:31068
 #, no-wrap
 msgid "--skip-checks"
 msgstr "--skip-checks"
 
 #. type: table
-#: doc/guix.texi:24595
+#: doc/guix.texi:31070
 msgid "Skip pre-installation safety checks."
 msgstr "Passe les vérifications de sécurité avant l'installation."
 
 #. type: table
-#: doc/guix.texi:24602
+#: doc/guix.texi:31077
 msgid "By default, @command{guix system init} and @command{guix system reconfigure} perform safety checks: they make sure the file systems that appear in the @code{operating-system} declaration actually exist (@pxref{File Systems}), and that any Linux kernel modules that may be needed at boot time are listed in @code{initrd-modules} (@pxref{Initial RAM Disk}).  Passing this option skips these tests altogether."
 msgstr "Par défaut, @command{guix system init} et @command{guix system reconfigure} effectuent des vérifications de sécurité : ils s'assurent que les systèmes de fichiers qui apparaissent dans la déclaration @code{operating-system} existent vraiment (@pxref{File Systems}) et que les modules de noyau Linux qui peuvent être requis au démarrage sont listés dans @code{initrd-modules} (@pxref{Initial RAM Disk}).  Passer cette option saute ces vérifications complètement."
 
+#. type: table
+#: doc/guix.texi:31080
+msgid "Instruct @command{guix system reconfigure} to allow system downgrades."
+msgstr "Dit à @command{guix system reconfigure} de permettre le retour en arrière du système."
+
+#. type: table
+#: doc/guix.texi:31088
+msgid "By default, @command{reconfigure} prevents you from downgrading your system.  It achieves that by comparing the provenance info of your system (shown by @command{guix system describe}) with that of your @command{guix} command (shown by @command{guix describe}).  If the commits for @command{guix} are not descendants of those used for your system, @command{guix system reconfigure} errors out.  Passing @option{--allow-downgrades} allows you to bypass these checks."
+msgstr "Par défaut, @command{reconfigure} vous empêche de faire revenir votre système en arrière.  Il fait cela en comparant les informations de provenance de votre système (décrites par @command{guix system describe}) avec celles de la command @command{guix} (décrites par @command{guix describe}).  Si les commits de @command{guix} ne descendent pas de ceux utilisés pour votre système, @command{guix system reconfigure} renvoie une erreur.  Passer @option{--allow-downgrades} vous permet de passer ces tests."
+
 #. type: cindex
-#: doc/guix.texi:24603
+#: doc/guix.texi:31094
 #, no-wrap
 msgid "on-error"
 msgstr "on-error"
 
 #. type: cindex
-#: doc/guix.texi:24604
+#: doc/guix.texi:31095
 #, no-wrap
 msgid "on-error strategy"
 msgstr "stratégie on-error"
 
 #. type: cindex
-#: doc/guix.texi:24605
+#: doc/guix.texi:31096
 #, no-wrap
 msgid "error strategy"
 msgstr "stratégie en cas d'erreur"
 
 #. type: item
-#: doc/guix.texi:24606
+#: doc/guix.texi:31097
 #, no-wrap
 msgid "--on-error=@var{strategy}"
 msgstr "--on-error=@var{strategy}"
 
 #. type: table
-#: doc/guix.texi:24609
+#: doc/guix.texi:31100
 msgid "Apply @var{strategy} when an error occurs when reading @var{file}.  @var{strategy} may be one of the following:"
 msgstr "Applique @var{strategy} lorsqu'une erreur arrive lors de la lecture de @var{file}.  @var{strategy} peut être l'une des valeurs suivantes :"
 
 #. type: item
-#: doc/guix.texi:24611
+#: doc/guix.texi:31102
 #, no-wrap
 msgid "nothing-special"
 msgstr "nothing-special"
 
 #. type: table
-#: doc/guix.texi:24613
+#: doc/guix.texi:31104
 msgid "Report the error concisely and exit.  This is the default strategy."
 msgstr "Rapporte l'erreur de manière concise et quitte.  C'est la stratégie par défaut."
 
 #. type: item
-#: doc/guix.texi:24614
+#: doc/guix.texi:31105
 #, no-wrap
 msgid "backtrace"
 msgstr "backtrace"
 
 #. type: table
-#: doc/guix.texi:24616
+#: doc/guix.texi:31107
 msgid "Likewise, but also display a backtrace."
 msgstr "Pareil, mais affiche aussi une trace de débogage."
 
 #. type: item
-#: doc/guix.texi:24617
+#: doc/guix.texi:31108
 #, no-wrap
 msgid "debug"
 msgstr "debug"
 
 #. type: table
-#: doc/guix.texi:24623
+#: doc/guix.texi:31114
 msgid "Report the error and enter Guile's debugger.  From there, you can run commands such as @code{,bt} to get a backtrace, @code{,locals} to display local variable values, and more generally inspect the state of the program.  @xref{Debug Commands,,, guile, GNU Guile Reference Manual}, for a list of available debugging commands."
 msgstr "Rapporte l'erreur et entre dans le débogueur Guile.  À partir de là, vous pouvez lancer des commandes comme @code{,bt} pour obtenir une trace de débogage, @code{,locals} pour afficher les valeurs des variables locales et plus généralement inspecter l'état du programme.  @xref{Debug Commands,,, guile, GNU Guile Reference Manual}, pour une liste de commandes de débogage disponibles."
 
 #. type: Plain text
-#: doc/guix.texi:24630
+#: doc/guix.texi:31121
 msgid "Once you have built, configured, re-configured, and re-re-configured your Guix installation, you may find it useful to list the operating system generations available on disk---and that you can choose from the bootloader boot menu:"
 msgstr "Une fois que vous avez construit, re-configuré et re-re-configuré votre installation Guix, vous pourriez trouver utile de lister les générations du système disponibles sur le disque — et que vous pouvez choisir dans le menu du chargeur d'amorçage :"
 
 #. type: item
-#: doc/guix.texi:24633
+#: doc/guix.texi:31124
+#, no-wrap
+msgid "describe"
+msgstr "describe"
+
+#. type: table
+#: doc/guix.texi:31127
+msgid "Describe the current system generation: its file name, the kernel and bootloader used, etc., as well as provenance information when available."
+msgstr "Décrit la génération du système actuel : son nom de fichier, son noyau et chargeur d'amorçage utilisé, etc, ainsi que les informations de provenance si elles sont disponibles."
+
+#. type: item
+#: doc/guix.texi:31128
 #, no-wrap
 msgid "list-generations"
 msgstr "list-generations"
 
 #. type: table
-#: doc/guix.texi:24638
+#: doc/guix.texi:31133
 msgid "List a summary of each generation of the operating system available on disk, in a human-readable way.  This is similar to the @option{--list-generations} option of @command{guix package} (@pxref{Invoking guix package})."
 msgstr "Affiche un résumé de chaque génération du système d'exploitation disponible sur le disque, dans un format lisible pour un humain.  C'est similaire à l'option @option{--list-generations} de @command{guix package} (@pxref{Invoking guix package})."
 
 #. type: table
-#: doc/guix.texi:24643
+#: doc/guix.texi:31138
 msgid "Optionally, one can specify a pattern, with the same syntax that is used in @command{guix package --list-generations}, to restrict the list of generations displayed.  For instance, the following command displays generations that are up to 10 days old:"
 msgstr "Éventuellement, on peut spécifier un motif, avec la même syntaxe utilisée pour @command{guix package --list-generations}, pour restreindre la liste des générations affichées.  Par exemple, la commande suivante affiche les générations de moins de 10 jours :"
 
 #. type: example
-#: doc/guix.texi:24646
+#: doc/guix.texi:31141
 #, no-wrap
 msgid "$ guix system list-generations 10d\n"
 msgstr "$ guix system list-generations 10d\n"
 
 #. type: Plain text
-#: doc/guix.texi:24653
+#: doc/guix.texi:31148
 msgid "The @command{guix system} command has even more to offer! The following sub-commands allow you to visualize how your system services relate to each other:"
 msgstr "La commande @command{guix system} a même plus à proposer !  Les sous-commandes suivantes vous permettent de visualiser comme vos services systèmes sont liés les uns aux autres :"
 
 #. type: anchor{#1}
-#: doc/guix.texi:24655
+#: doc/guix.texi:31150
 msgid "system-extension-graph"
 msgstr "system-extension-graph"
 
 #. type: item
-#: doc/guix.texi:24657
+#: doc/guix.texi:31152
 #, no-wrap
 msgid "extension-graph"
 msgstr "extension-graph"
 
 #. type: table
-#: doc/guix.texi:24662
-msgid "Emit in Dot/Graphviz format to standard output the @dfn{service extension graph} of the operating system defined in @var{file} (@pxref{Service Composition}, for more information on service extensions.)"
-msgstr "Affiche le @dfn{graphe d'extension des services} du système d'exploitation défini dans @var{file} au format Dot/Graphviz sur la sortie standard (@pxref{Service Composition}, pour plus d'informations sur l'extension des services)."
+#: doc/guix.texi:31157
+msgid "Emit in Dot/Graphviz format to standard output the @dfn{service extension graph} of the operating system defined in @var{file} (@pxref{Service Composition}, for more information on service extensions)."
+msgstr "Émettre au format Dot/Graphviz vers la sortie standard le @dfn{graphe d'extension de service} du système d'exploitation défini dans @var{file} (@pxref{Service Composition}, pour plus d'informations sur les extensions de service)."
 
 #. type: table
-#: doc/guix.texi:24664
+#: doc/guix.texi:31159
 msgid "The command:"
 msgstr "La commande :"
 
 #. type: example
-#: doc/guix.texi:24667
+#: doc/guix.texi:31162
 #, no-wrap
-msgid "$ guix system extension-graph @var{file} | dot -Tpdf > services.pdf\n"
-msgstr "$ guix system extension-graph @var{file} | dot -Tpdf > services.pdf\n"
+msgid "$ guix system extension-graph @var{file} | xdot -\n"
+msgstr "$ guix system extension-graph @var{file} | xdot -\n"
 
 #. type: table
-#: doc/guix.texi:24670
-msgid "produces a PDF file showing the extension relations among services."
-msgstr "produit un fichier PDF montrant les relations d'extension entre les services."
+#: doc/guix.texi:31165
+msgid "shows the extension relations among services."
+msgstr "montre les relations d'extension entre les services."
 
 #. type: anchor{#1}
-#: doc/guix.texi:24672
+#: doc/guix.texi:31167
 msgid "system-shepherd-graph"
 msgstr "system-shepherd-graph"
 
 #. type: item
-#: doc/guix.texi:24672
+#: doc/guix.texi:31167
 #, no-wrap
 msgid "shepherd-graph"
 msgstr "shepherd-graph"
 
 #. type: table
-#: doc/guix.texi:24677
+#: doc/guix.texi:31172
 msgid "Emit in Dot/Graphviz format to standard output the @dfn{dependency graph} of shepherd services of the operating system defined in @var{file}.  @xref{Shepherd Services}, for more information and for an example graph."
 msgstr "Affiche le @dfn{graphe de dépendance} des services shepherd du système d'exploitation défini dans @var{file} au format Dot/Graphviz sur la sortie standard.  @xref{Shepherd Services}, pour plus d'informations et un exemple de graphe."
 
 #. type: section
-#: doc/guix.texi:24681
+#: doc/guix.texi:31176
+#, no-wrap
+msgid "Invoking @code{guix deploy}"
+msgstr "Invoquer @command{guix deploy}"
+
+#. type: Plain text
+#: doc/guix.texi:31184
+msgid "We've already seen @code{operating-system} declarations used to manage a machine's configuration locally.  Suppose you need to configure multiple machines, though---perhaps you're managing a service on the web that's comprised of several servers.  @command{guix deploy} enables you to use those same @code{operating-system} declarations to manage multiple remote hosts at once as a logical ``deployment''."
+msgstr "Nous avons déjà vu les déclarations de @code{operating-system} utilisées pour gérer la configuration d'une machine localement.  Supposez que vous ayez besoin de configurer plusieurs machines --- peut-être que vous gérez un service web comprenant plusieurs serveurs.  @command{guix deploy} vous permet d'utiliser les mêmes déclarations de systèmes d'exploitation pour gérer plusieurs hôtes distants en même temps dans le même « déploiement » logique."
+
+#. type: quotation
+#: doc/guix.texi:31189
+msgid "The functionality described in this section is still under development and is subject to change.  Get in touch with us on @email{guix-devel@@gnu.org}!"
+msgstr "La fonctionnalité décrite dans cette section est toujours en cours de développement et est sujette à changement.  Contactez-nous sur @email{guix-devel@@gnu.org} !"
+
+#. type: example
+#: doc/guix.texi:31193
+#, no-wrap
+msgid "guix deploy @var{file}\n"
+msgstr "guix deploy @var{fichier}\n"
+
+#. type: Plain text
+#: doc/guix.texi:31197
+msgid "Such an invocation will deploy the machines that the code within @var{file} evaluates to.  As an example, @var{file} might contain a definition like this:"
+msgstr "Une telle invocation déploiera les machines en lesquelles le code de @var{fichier} s'évalue.  Par exemple, @var{fichier} peut contenir une définition comme celle-ci :"
+
+#. type: lisp
+#: doc/guix.texi:31204
+#, no-wrap
+msgid ""
+";; This is a Guix deployment of a \"bare bones\" setup, with\n"
+";; no X11 display server, to a machine with an SSH daemon\n"
+";; listening on localhost:2222. A configuration such as this\n"
+";; may be appropriate for virtual machine with ports\n"
+";; forwarded to the host's loopback interface.\n"
+"\n"
+msgstr ""
+";; Ceci est le déploiement Guix d'un système « minimal » sans\n"
+";; serveur d'affichage X11, vers une machine dont le démon SSH\n"
+";; écoute sur localhost:2222. Une configuration comme celle-ci\n"
+";; est appropriée pour les machines virtuelles dont les ports sont relayés\n"
+";; vers l'interface de bouclage de l'hôte.\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:31207
+#, no-wrap
+msgid ""
+"(use-service-modules networking ssh)\n"
+"(use-package-modules bootloaders)\n"
+"\n"
+msgstr ""
+"(use-service-modules networking ssh)\n"
+"(use-package-modules bootloaders)\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:31228
+#, no-wrap
+msgid ""
+"(define %system\n"
+"  (operating-system\n"
+"   (host-name \"gnu-deployed\")\n"
+"   (timezone \"Etc/UTC\")\n"
+"   (bootloader (bootloader-configuration\n"
+"                (bootloader grub-bootloader)\n"
+"                (target \"/dev/vda\")\n"
+"                (terminal-outputs '(console))))\n"
+"   (file-systems (cons (file-system\n"
+"                        (mount-point \"/\")\n"
+"                        (device \"/dev/vda1\")\n"
+"                        (type \"ext4\"))\n"
+"                       %base-file-systems))\n"
+"   (services\n"
+"    (append (list (service dhcp-client-service-type)\n"
+"                  (service openssh-service-type\n"
+"                           (openssh-configuration\n"
+"                            (permit-root-login #t)\n"
+"                            (allow-empty-passwords? #t))))\n"
+"            %base-services))))\n"
+"\n"
+msgstr ""
+"(define %system\n"
+"  (operating-system\n"
+"   (host-name \"gnu-deployed\")\n"
+"   (timezone \"Etc/UTC\")\n"
+"   (bootloader (bootloader-configuration\n"
+"                (bootloader grub-bootloader)\n"
+"                (target \"/dev/vda\")\n"
+"                (terminal-outputs '(console))))\n"
+"   (file-systems (cons (file-system\n"
+"                        (mount-point \"/\")\n"
+"                        (device \"/dev/vda1\")\n"
+"                        (type \"ext4\"))\n"
+"                       %base-file-systems))\n"
+"   (services\n"
+"    (append (list (service dhcp-client-service-type)\n"
+"                  (service openssh-service-type\n"
+"                           (openssh-configuration\n"
+"                            (permit-root-login #t)\n"
+"                            (allow-empty-passwords? #t))))\n"
+"            %base-services))))\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:31238
+#, no-wrap
+msgid ""
+"(list (machine\n"
+"       (operating-system %system)\n"
+"       (environment managed-host-environment-type)\n"
+"       (configuration (machine-ssh-configuration\n"
+"                       (host-name \"localhost\")\n"
+"                       (system \"x86_64-linux\")\n"
+"                       (user \"alice\")\n"
+"                       (identity \"./id_rsa\")\n"
+"                       (port 2222)))))\n"
+msgstr ""
+"(list (machine\n"
+"       (operating-system %system)\n"
+"       (environment managed-host-environment-type)\n"
+"       (configuration (machine-ssh-configuration\n"
+"                       (host-name \"localhost\")\n"
+"                       (system \"x86_64-linux\")\n"
+"                       (user \"alice\")\n"
+"                       (identity \"./id_rsa\")\n"
+"                       (port 2222)))))\n"
+
+#. type: Plain text
+#: doc/guix.texi:31251
+msgid "The file should evaluate to a list of @var{machine} objects.  This example, upon being deployed, will create a new generation on the remote system realizing the @code{operating-system} declaration @code{%system}.  @code{environment} and @code{configuration} specify how the machine should be provisioned---that is, how the computing resources should be created and managed.  The above example does not create any resources, as a @code{'managed-host} is a machine that is already running the Guix system and available over the network.  This is a particularly simple case; a more complex deployment may involve, for example, starting virtual machines through a Virtual Private Server (VPS) provider.  In such a case, a different @var{environment} type would be used."
+msgstr "Le fichier devrait s'évaluer en une liste d'objets @var{machine}.  Cet exemple, lors du déploiement, créera une nouvelle génération sur le système distant en réalisant la déclaration @code{operating-system} @code{%system}.  @code{environment} et @code{configuration} spécifient comme la machine devrait être provisionnée --- c.-à-d.@: comment les ressources sont créées et gérées.  L'exemple ci-dessus ne crée aucune ressource, car un @code{'managed-host} est une machine qui fait déjà tourner le système Guix et est disponible sur le réseau.  Cela est un cas particulièrement simple ; un déploiement plus complexe pourrait impliquer, par exemple, le démarrage de machines virtuels chez un fournisseur de serveurs privés virtuels (VPS).  Dans ce cas, une type d'@var{environnement} différent devrait être utilisé."
+
+#. type: Plain text
+#: doc/guix.texi:31256
+msgid "Do note that you first need to generate a key pair on the coordinator machine to allow the daemon to export signed archives of files from the store (@pxref{Invoking guix archive}), though this step is automatic on Guix System:"
+msgstr "Prenez note que vous devez d'abord générer une paire de clés sur la machine coordinatrice pour permettre au démon d'exporter les archives signées des fichiers du dépôt (@pxref{Invoking guix archive}), bien que cette étape soit automatique sur Guix System :"
+
+#. type: Plain text
+#: doc/guix.texi:31264
+msgid "Each target machine must authorize the key of the master machine so that it accepts store items it receives from the coordinator:"
+msgstr "Chaque machine cible doit autoriser la clé de la machine maître afin qu'elle accepte les objets de stockage qu'elle reçoit du coordinateur :"
+
+#. type: example
+#: doc/guix.texi:31267
+#, no-wrap
+msgid "# guix archive --authorize < coordinator-public-key.txt\n"
+msgstr "# guix archive --authorize < coordinator-public-key.txt\n"
+
+#. type: Plain text
+#: doc/guix.texi:31278
+msgid "@code{user}, in this example, specifies the name of the user account to log in as to perform the deployment.  Its default value is @code{root}, but root login over SSH may be forbidden in some cases.  To work around this, @command{guix deploy} can log in as an unprivileged user and employ @code{sudo} to escalate privileges.  This will only work if @code{sudo} is currently installed on the remote and can be invoked non-interactively as @code{user}.  That is, the line in @code{sudoers} granting @code{user} the ability to use @code{sudo} must contain the @code{NOPASSWD} tag.  This can be accomplished with the following operating system configuration snippet:"
+msgstr "@code{user}, dans cet exemple, spécifie le nom du compte utilisateur à utiliser pour se connecter lors du déploiement.  Sa valeur par défaut est @code{root}, mais la connexion SSH en root peut être interdite dans certains cas.  Pour contourner cela, @command{guix deploy} peut se connecter en tant qu'utilisateur non-privilégié et utiliser @code{sudo} pour récupérer les privilèges.  Cela ne fonctionnera que si @code{sudo} est actuellement installé sur la machine distante et peut être invoqué de manière non interactive par @code{user}.  C'est-à-dire que la ligne @code{sudoers} permettant à @code{user} d'utiliser @code{sudo} doit contenir l'attribut @code{NOPASSWD}.  Cela peut se faire avec le bout de configuration du système d'exploitation suivant :"
+
+#. type: lisp
+#: doc/guix.texi:31282
+#, no-wrap
+msgid ""
+"(use-modules ...\n"
+"             (gnu system))               ;for %sudoers-specification\n"
+"\n"
+msgstr ""
+"(use-modules ...\n"
+"             (gnu system))               ;pour %sudoers-specification\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:31284
+#, no-wrap
+msgid ""
+"(define %user \"username\")\n"
+"\n"
+msgstr ""
+"(define %user \"username\")\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:31292
+#, no-wrap
+msgid ""
+"(operating-system\n"
+"  ...\n"
+"  (sudoers-file\n"
+"     (plain-file \"sudoers\"\n"
+"                 (string-append (plain-file-content %sudoers-specification)\n"
+"                                (format #f \"~a ALL = NOPASSWD: ALL~%\"\n"
+"                                        %user)))))\n"
+"\n"
+msgstr ""
+"(operating-system\n"
+"  ...\n"
+"  (sudoers-file\n"
+"     (plain-file \"sudoers\"\n"
+"                 (string-append (plain-file-content %sudoers-specification)\n"
+"                                (format #f \"~a ALL = NOPASSWD: ALL~%\"\n"
+"                                        %user)))))\n"
+"\n"
+
+#. type: Plain text
+#: doc/guix.texi:31297
+msgid "For more information regarding the format of the @file{sudoers} file, consult @command{man sudoers}."
+msgstr "Pour plus d'informations sur le format du fichier @file{sudoers}, consultez @command{man sudoers}."
+
+#. type: deftp
+#: doc/guix.texi:31298
+#, no-wrap
+msgid "{Data Type} machine"
+msgstr "{Type de données} machine"
+
+#. type: deftp
+#: doc/guix.texi:31301
+msgid "This is the data type representing a single machine in a heterogeneous Guix deployment."
+msgstr "C'est le type de données représentant une seule machine dans un déploiement Guix hétérogène."
+
+#. type: table
+#: doc/guix.texi:31305
+msgid "The object of the operating system configuration to deploy."
+msgstr "L'objet de la configuration du système d'exploitation à déployer."
+
+#. type: code{#1}
+#: doc/guix.texi:31306
+#, no-wrap
+msgid "environment"
+msgstr "environment"
+
+#. type: table
+#: doc/guix.texi:31308
+msgid "An @code{environment-type} describing how the machine should be provisioned."
+msgstr "Un @code{environment-type} décrit comment la machine est provisionnée."
+
+#. type: item
+#: doc/guix.texi:31309
+#, no-wrap
+msgid "@code{configuration} (default: @code{#f})"
+msgstr "@code{configuration} (par défaut : @code{#f})"
+
+#. type: table
+#: doc/guix.texi:31314
+msgid "An object describing the configuration for the machine's @code{environment}.  If the @code{environment} has a default configuration, @code{#f} may be used.  If @code{#f} is used for an environment with no default configuration, however, an error will be thrown."
+msgstr "Un objet décrivant la configuration de l'environnement de la machine.  Si l'objet @code{environment} a une configuration par défaut, vous pouvez utiliser @code{#f}.  Si vous utilisez @code{#f} mais que l'environnement n'a pas de configuration par défaut, une erreur sera renvoyée."
+
+#. type: deftp
+#: doc/guix.texi:31317
+#, no-wrap
+msgid "{Data Type} machine-ssh-configuration"
+msgstr "{Type de données}  machine-ssh-configuration"
+
+#. type: deftp
+#: doc/guix.texi:31320
+msgid "This is the data type representing the SSH client parameters for a machine with an @code{environment} of @code{managed-host-environment-type}."
+msgstr "C'est le type de données représentant les paramètres du client SSH pour une machine qui a pour @code{environment} @code{managed-host-environment-type}."
+
+#. type: item
+#: doc/guix.texi:31323
+#, no-wrap
+msgid "@code{build-locally?} (default: @code{#t})"
+msgstr "@code{build-locally?} (par défaut : @code{#t})"
+
+#. type: table
+#: doc/guix.texi:31325
+msgid "If false, system derivations will be built on the machine being deployed to."
+msgstr "Si la valeur est fausse, les dérivations du système seront construites sur la machine qui est déployée."
+
+#. type: code{#1}
+#: doc/guix.texi:31325
+#, no-wrap
+msgid "system"
+msgstr "system"
+
+#. type: table
+#: doc/guix.texi:31328
+msgid "The system type describing the architecture of the machine being deployed to---e.g., @code{\"x86_64-linux\"}."
+msgstr "Le type de système décrivant l'architecture de la machine déployée pour---par exemple, @code{\"x86_64-linux\"}."
+
+#. type: item
+#: doc/guix.texi:31328
+#, no-wrap
+msgid "@code{authorize?} (default: @code{#t})"
+msgstr "@code{authorize?} (par défaut : @code{#t})"
+
+#. type: table
+#: doc/guix.texi:31331
+msgid "If true, the coordinator's signing key will be added to the remote's ACL keyring."
+msgstr "Si la valeur est vraie, la clé de signature du coordinateur sera ajoutée au porteclé des ACL de la machine distante."
+
+#. type: item
+#: doc/guix.texi:31332
+#, no-wrap
+msgid "@code{user} (default: @code{\"root\"})"
+msgstr "@code{user} (par défaut : @code{\"root\"})"
+
+#. type: item
+#: doc/guix.texi:31333
+#, no-wrap
+msgid "@code{identity} (default: @code{#f})"
+msgstr "@code{identity} (par défaut : @code{#f})"
+
+#. type: table
+#: doc/guix.texi:31336
+msgid "If specified, the path to the SSH private key to use to authenticate with the remote host."
+msgstr "Si spécifié, le chemin d'accès à la clé privée SSH à utiliser pour s'authentifier auprès de l'hôte distant."
+
+#. type: item
+#: doc/guix.texi:31337
+#, no-wrap
+msgid "@code{host-key} (default: @code{#f})"
+msgstr "@code{host-key} (par défaut : @code{#f})"
+
+#. type: table
+#: doc/guix.texi:31339
+msgid "This should be the SSH host key of the machine, which looks like this:"
+msgstr "Cela devrait être la clé de l'hôte SSH de la machine, qui ressemble à cela :"
+
+#. type: example
+#: doc/guix.texi:31342
+#, no-wrap
+msgid "ssh-ed25519 AAAAC3Nz@dots{} root@@example.org\n"
+msgstr "ssh-ed25519 AAAAC3Nz@dots{} root@@example.org\n"
+
+#. type: table
+#: doc/guix.texi:31347
+msgid "When @code{host-key} is @code{#f}, the server is authenticated against the @file{~/.ssh/known_hosts} file, just like the OpenSSH @command{ssh} client does."
+msgstr "Quand @code{host-key} est @code{#f}, le serveur est authentifié avec le fichier @file{~/.ssh/known_hosts}, exactement comme le ferait le client @command{ssh} OpenSSH."
+
+#. type: item
+#: doc/guix.texi:31348
+#, no-wrap
+msgid "@code{allow-downgrades?} (default: @code{#f})"
+msgstr "@code{allow-downgrades?} (par défaut : @code{#f})"
+
+#. type: table
+#: doc/guix.texi:31350
+msgid "Whether to allow potential downgrades."
+msgstr "Autoriser ou non d'éventuels déclassements."
+
+#. type: table
+#: doc/guix.texi:31358
+msgid "Like @command{guix system reconfigure}, @command{guix deploy} compares the channel commits currently deployed on the remote host (as returned by @command{guix system describe}) to those currently in use (as returned by @command{guix describe}) to determine whether commits currently in use are descendants of those deployed.  When this is not the case and @code{allow-downgrades?} is false, it raises an error.  This ensures you do not accidentally downgrade remote machines."
+msgstr "Comme @command{guix sysetm reconfigure}, @command{guix deploy} compare les commits du canal actuellement déployé sur l'hôte distant (renvoyé par @command{guix system describe}) à ceux utilisés (renvoyés par @command{guix describe}) pour déterminer si les commits actuellement utilisés descendent de ceux déployés.  Lorsque ce n'est pas le cas et que @code{allow-downgrades?} est faux, cela lève une erreur.  Cela permet de s'assurer que vous ne déployez pas accidentellement une version plus ancienne version les machines distantes."
+
+#. type: deftp
+#: doc/guix.texi:31361
+#, no-wrap
+msgid "{Data Type} digital-ocean-configuration"
+msgstr "{Type de données} digital-ocean-configuration"
+
+#. type: deftp
+#: doc/guix.texi:31364
+msgid "This is the data type describing the Droplet that should be created for a machine with an @code{environment} of @code{digital-ocean-environment-type}."
+msgstr "C'est le type de données décrivant le Droplet qui devrait être créé pour une machine avec un @code{environment} valant @code{digital-ocean-environment-type}."
+
+#. type: code{#1}
+#: doc/guix.texi:31366
+#, no-wrap
+msgid "ssh-key"
+msgstr "ssh-key"
+
+#. type: table
+#: doc/guix.texi:31369
+msgid "The path to the SSH private key to use to authenticate with the remote host. In the future, this field may not exist."
+msgstr "Le chemin vers la clé SSH privée à utiliser pour s'authentifier avec l'hôte distant.  Dans le futur, le champ pourrait ne plus exister."
+
+#. type: code{#1}
+#: doc/guix.texi:31369
+#, no-wrap
+msgid "tags"
+msgstr "tags"
+
+#. type: table
+#: doc/guix.texi:31372
+msgid "A list of string ``tags'' that uniquely identify the machine. Must be given such that no two machines in the deployment have the same set of tags."
+msgstr "Une liste « d'attributs » qui identifient la machine de manière unique.  Il faut faire attention à ce que deux machine du déploiement n'aient pas le même ensemble d'attributs."
+
+#. type: code{#1}
+#: doc/guix.texi:31372
+#, no-wrap
+msgid "region"
+msgstr "region"
+
+#. type: table
+#: doc/guix.texi:31374
+msgid "A Digital Ocean region slug, such as @code{\"nyc3\"}."
+msgstr "Le nom d'une région de Digital Ocean, comme @code{\"nyc3\"}."
+
+#. type: table
+#: doc/guix.texi:31376
+msgid "A Digital Ocean size slug, such as @code{\"s-1vcpu-1gb\"}"
+msgstr "Le nom d'une taille de Digital Ocean, comme @code{\"s-1vcpu-1gb\"}"
+
+#. type: code{#1}
+#: doc/guix.texi:31376
+#, no-wrap
+msgid "enable-ipv6?"
+msgstr "enable-ipv6?"
+
+#. type: table
+#: doc/guix.texi:31378
+msgid "Whether or not the droplet should be created with IPv6 networking."
+msgstr "Indique s'il faut créer une IPv6 pour le droplet."
+
+#. type: section
+#: doc/guix.texi:31382
 #, no-wrap
 msgid "Running Guix in a Virtual Machine"
 msgstr "Exécuter Guix sur une machine virtuelle"
 
 #. type: Plain text
-#: doc/guix.texi:24690
+#: doc/guix.texi:31391
 msgid "To run Guix in a virtual machine (VM), one can use the pre-built Guix VM image distributed at @url{@value{BASE-URL}/guix-system-vm-image-@value{VERSION}.x86_64-linux.xz}.  This image is a compressed image in QCOW format.  You will first need to decompress with @command{xz -d}, and then you can pass it to an emulator such as QEMU (see below for details)."
 msgstr "Pour exécuter Guix sur une machine virtuelle (VM), on peut soit utiliser l'image de VM Guix pré-construite sur @indicateurl{@value{BASE-URL}/guix-system-vm-image-@value{VERSION}.x86_64-linux.xz} .  Cette image est une image compressée au format QCOW.  Vous devrez d'abord la décompresser avec @command{xz -d} puis la passer à un émulateur comme QEMU (voir plus bas pour des détails)."
 
 #. type: Plain text
-#: doc/guix.texi:24696
-msgid "This image boots the Xfce graphical environment and it contains some commonly-used tools.  You can install more software in the image by running @command{guix package} in a terminal (@pxref{Invoking guix package}).  You can also reconfigure the system based on its initial configuration file available as @file{/etc/config.scm} (@pxref{Using the Configuration System})."
-msgstr "Cette image démarre l'environnement graphique Xfce et contient certains outils couramment utilisés.  Vous pouvez installer plus de logiciels sur l'image en lançant @command{guix package} sur un terminal (@pxref{Invoking guix package}).  Vous pouvez aussi reconfigurer le système à partir de son fichier de configuration initiale disponible dans @file{/etc/config.scm} (@pxref{Using the Configuration System})."
+#: doc/guix.texi:31398
+msgid "This image boots the Xfce graphical environment and it contains some commonly used tools.  You can install more software in the image by running @command{guix package} in a terminal (@pxref{Invoking guix package}).  You can also reconfigure the system based on its initial configuration file available as @file{/run/current-system/configuration.scm} (@pxref{Using the Configuration System})."
+msgstr "Cette image démarre l'environnement graphique Xfce et contient certains outils couramment utilisés.  Vous pouvez installer plus de logiciels sur l'image en lançant @command{guix package} dans un terminal (@pxref{Invoking guix package}).  Vous pouvez aussi reconfigurer le système à partir de son fichier de configuration initiale disponible dans @file{/run/current-system/configuration.scm} (@pxref{Using the Configuration System})."
 
 #. type: Plain text
-#: doc/guix.texi:24701
+#: doc/guix.texi:31403
 msgid "Instead of using this pre-built image, one can also build their own virtual machine image using @command{guix system vm-image} (@pxref{Invoking guix system}).  The returned image is in qcow2 format, which the @uref{https://qemu.org/, QEMU emulator} can efficiently use."
 msgstr "Au lieu d'utiliser cette image pré-construite, on peut construire sa propre image de machine virtuelle avec @command{guix system vm-image} (@pxref{Invoking guix system}).  L'image renvoyée est au format qcow2, que @uref{https://qemu.org/,l'émulateur QEMU} peut utiliser efficacement."
 
 #. type: cindex
-#: doc/guix.texi:24702
+#: doc/guix.texi:31404
 #, no-wrap
 msgid "QEMU"
 msgstr "QEMU"
 
 #. type: Plain text
-#: doc/guix.texi:24709
+#: doc/guix.texi:31411
 msgid "If you built your own image, you must copy it out of the store (@pxref{The Store}) and give yourself permission to write to the copy before you can use it.  When invoking QEMU, you must choose a system emulator that is suitable for your hardware platform.  Here is a minimal QEMU invocation that will boot the result of @command{guix system vm-image} on x86_64 hardware:"
 msgstr "Si vous construisez votre propre image, vous devez la copier en dehors du dépôt (@pxref{The Store}) et vous donner la permission d'écrire sur la copie avant de pouvoir l'utiliser.  Lorsque vous invoquez QEMU, vous devez choisir un émulateur système correspondant à votre plate-forme matérielle.  Voici une invocation minimale de QEMU qui démarrera le résultat de @command{guix system vm-image} sur un matériel x8_64 :"
 
 #. type: example
-#: doc/guix.texi:24716
+#: doc/guix.texi:31418
 #, no-wrap
 msgid ""
 "$ qemu-system-x86_64 \\\n"
-"   -net user -net nic,model=virtio \\\n"
-"   -enable-kvm -m 512 \\\n"
+"   -nic user,model=virtio-net-pci \\\n"
+"   -enable-kvm -m 1024 \\\n"
 "   -device virtio-blk,drive=myhd \\\n"
 "   -drive if=none,file=/tmp/qemu-image,id=myhd\n"
 msgstr ""
 "$ qemu-system-x86_64 \\\n"
-"   -net user -net nic,model=virtio \\\n"
-"   -enable-kvm -m 512 \\\n"
+"   -nic user,model=virtio-net-pci \\\n"
+"   -enable-kvm -m 1024 \\\n"
 "   -device virtio-blk,drive=myhd \\\n"
 "   -drive if=none,file=/tmp/qemu-image,id=myhd\n"
 
 #. type: Plain text
-#: doc/guix.texi:24719
+#: doc/guix.texi:31421
 msgid "Here is what each of these options means:"
 msgstr "Voici la signification de ces options :"
 
 #. type: item
-#: doc/guix.texi:24721
+#: doc/guix.texi:31423
 #, no-wrap
 msgid "qemu-system-x86_64"
 msgstr "qemu-system-x86_64"
 
 #. type: table
-#: doc/guix.texi:24724
+#: doc/guix.texi:31426
 msgid "This specifies the hardware platform to emulate.  This should match the host."
 msgstr "Cela spécifie la plate-forme matérielle à émuler.  Elle doit correspondre à l'hôte."
 
 #. type: item
-#: doc/guix.texi:24725
-#, no-wrap
-msgid "-net user"
-msgstr "-net user"
-
-#. type: table
-#: doc/guix.texi:24729
-msgid "Enable the unprivileged user-mode network stack.  The guest OS can access the host but not vice versa.  This is the simplest way to get the guest OS online."
-msgstr "Active la pile réseau non privilégiée en mode utilisateur.  L'OS émulé peut accéder à l'hôte mais pas l'inverse.  C'est la manière la plus simple de connecter le client."
-
-#. type: item
-#: doc/guix.texi:24730
+#: doc/guix.texi:31427
 #, no-wrap
-msgid "-net nic,model=virtio"
-msgstr "-net nic,model=virtio"
+msgid "-nic user,model=virtio-net-pci"
+msgstr "-nic user,model=virtio-net-pci"
 
 #. type: table
-#: doc/guix.texi:24735
-msgid "You must create a network interface of a given model.  If you do not create a NIC, the boot will fail.  Assuming your hardware platform is x86_64, you can get a list of available NIC models by running @command{qemu-system-x86_64 -net nic,model=help}."
-msgstr "Vous devez créer une interface réseau d'un modèle donné.  Si vous ne créez pas de NIC, le démarrage échouera.  En supposant que votre plate-forme est x86_64, vous pouvez récupérer une liste des modèles de NIC disponibles en lançant @command{qemu-system-x86_64 -net nic,model=help}."
+#: doc/guix.texi:31435
+msgid "Enable the unprivileged user-mode network stack.  The guest OS can access the host but not vice versa.  This is the simplest way to get the guest OS online.  @code{model} specifies which network device to emulate: @code{virtio-net-pci} is a special device made for virtualized operating systems and recommended for most uses.  Assuming your hardware platform is x86_64, you can get a list of available NIC models by running @command{qemu-system-x86_64 -nic model=help}."
+msgstr "Active la pile réseau en mode utilisateur non privilégié.  Le système invité peut accéder à l'hôte mais pas l'inverse.  C'est la manière la plus simple de mettre le système en ligne.  @code{model} spécifie le périphérique réseau à émuler : @code{virtio-net-pci} est un périphérique spécial conçu pour les systèmes d'exploitation virtualisés et recommandés dans la plupart des cas.  En supposant que votre plateforme matérielle est x86_64, vous pouvez récupérer une liste des modèles d'interfaces réseaux en lançant @command{qemu-system-x86_64 -nic model=help}."
 
 #. type: item
-#: doc/guix.texi:24736
+#: doc/guix.texi:31436
 #, no-wrap
 msgid "-enable-kvm"
 msgstr "-enable-kvm"
 
 #. type: table
-#: doc/guix.texi:24740
+#: doc/guix.texi:31440
 msgid "If your system has hardware virtualization extensions, enabling the virtual machine support (KVM) of the Linux kernel will make things run faster."
 msgstr "Si votre système a des extensions de virtualisation matérielle, activer le support des machines virtuelles de Linux (KVM) accélérera les choses."
 
 #. type: item
-#: doc/guix.texi:24742
+#: doc/guix.texi:31442
 #, no-wrap
 msgid "-m 1024"
 msgstr "-m 1024"
 
 #. type: table
-#: doc/guix.texi:24745
+#: doc/guix.texi:31445
 msgid "RAM available to the guest OS, in mebibytes.  Defaults to 128@tie{}MiB, which may be insufficient for some operations."
 msgstr "RAM disponible sur l'OS émulé, en mébioctets.  La valeur par défaut est 128@tie{}Mo, ce qui peut ne pas suffire pour certaines opérations."
 
 #. type: item
-#: doc/guix.texi:24746
+#: doc/guix.texi:31446
 #, no-wrap
 msgid "-device virtio-blk,drive=myhd"
 msgstr "-device virtio-blk,drive=myhd"
 
 #. type: table
-#: doc/guix.texi:24751
+#: doc/guix.texi:31451
 msgid "Create a @code{virtio-blk} drive called ``myhd''.  @code{virtio-blk} is a ``paravirtualization'' mechanism for block devices that allows QEMU to achieve better performance than if it were emulating a complete disk drive.  See the QEMU and KVM documentation for more info."
 msgstr "Crée un lecteur @code{virtio-blk} nommé « myhd ».  @code{virtio-blk} est un mécanisme de « paravirtualisation » pour les périphériques blocs qui permet à QEMU d'avoir de meilleures performances que s'il émulait un disque complet.  Voir la documentation de QEMU et KVM pour plus d'info."
 
 #. type: item
-#: doc/guix.texi:24752
+#: doc/guix.texi:31452
 #, no-wrap
 msgid "-drive if=none,file=/tmp/qemu-image,id=myhd"
 msgstr "-drive if=none,file=/tmp/qemu-image,id=myhd"
 
 #. type: table
-#: doc/guix.texi:24755
-msgid "Use our QCOW image, the @file{/tmp/qemu-image} file, as the backing store the the ``myhd'' drive."
+#: doc/guix.texi:31455
+msgid "Use our QCOW image, the @file{/tmp/qemu-image} file, as the backing store of the ``myhd'' drive."
 msgstr "Utilise notre image QCOW, le fichier @file{/tmp/qemu-image}, comme stockage pour le lecteur « myhd »."
 
 #. type: Plain text
-#: doc/guix.texi:24765
-msgid "The default @command{run-vm.sh} script that is returned by an invocation of @command{guix system vm} does not add a @command{-net user} flag by default.  To get network access from within the vm add the @code{(dhcp-client-service)} to your system definition and start the VM using @command{`guix system vm config.scm` -net user}.  An important caveat of using @command{-net user} for networking is that @command{ping} will not work, because it uses the ICMP protocol.  You'll have to use a different command to check for network connectivity, for example @command{guix download}."
-msgstr "Le script @command{run-vm.sh} par défaut renvoyé par une invocation de @command{guix system vm} n'ajoute pas le drapeau @command{-net user} par défaut.  Pour avoir accès au réseau dans la vm, ajoutez le @code{(dhcp-client-service)} à votre définition et démarrez la VM avec @command{`guix system vm config.scm` -net user}.  Un problème important avec @command{-net user} pour le réseau, est que @command{ping} ne fonctionnera pas, car il utilise le protocole ICMP.  Vous devrez utiliser une autre commande pour vérifier la connectivité réseau, par exemple @command{guix download}."
+#: doc/guix.texi:31465
+msgid "The default @command{run-vm.sh} script that is returned by an invocation of @command{guix system vm} does not add a @command{-nic user} flag by default.  To get network access from within the vm add the @code{(dhcp-client-service)} to your system definition and start the VM using @command{`guix system vm config.scm` -nic user}.  An important caveat of using @command{-nic user} for networking is that @command{ping} will not work, because it uses the ICMP protocol.  You'll have to use a different command to check for network connectivity, for example @command{guix download}."
+msgstr "Le script @command{run-vm.sh} par défaut renvoyé par une invocation de @command{guix system vm} n'ajoute pas le drapeau @command{-nic user} par défaut.  Pour avoir accès au réseau dans la vm, ajoutez le @code{(dhcp-client-service)} à votre définition et démarrez la VM avec @command{`guix system vm config.scm` -nic user}.  Un problème important avec @command{-nic user} pour le réseau, est que @command{ping} ne fonctionnera pas, car il utilise le protocole ICMP.  Vous devrez utiliser une autre commande pour vérifier la connectivité réseau, par exemple @command{guix download}."
 
 #. type: subsection
-#: doc/guix.texi:24766
+#: doc/guix.texi:31466
 #, no-wrap
 msgid "Connecting Through SSH"
 msgstr "Se connecter par SSH"
 
 #. type: Plain text
-#: doc/guix.texi:24774
+#: doc/guix.texi:31474
 msgid "To enable SSH inside a VM you need to add an SSH server like @code{openssh-service-type} to your VM (@pxref{Networking Services, @code{openssh-service-type}}).  In addition you need to forward the SSH port, 22 by default, to the host.  You can do this with"
 msgstr "Pour activer SSH dans une VM vous devez ajouter un serveur SSH comme @code{opennssh-service-type} à votre VM (@pxref{Networking Services, @code{openssh-service-type}}).  En plus vous devez transférer le port 22, par défaut, à l'hôte.  Vous pouvez faire cela avec"
 
 #. type: example
-#: doc/guix.texi:24777
+#: doc/guix.texi:31477
 #, no-wrap
-msgid "`guix system vm config.scm` -net user,hostfwd=tcp::10022-:22\n"
-msgstr "`guix system vm config.scm` -net user,hostfwd=tcp::10022-:22\n"
+msgid "`guix system vm config.scm` -nic user,model=virtio-net-pci,hostfwd=tcp::10022-:22\n"
+msgstr "`guix system vm config.scm` -nic user,model=virtio-net-pci,hostfwd=tcp::10022-:22\n"
 
 #. type: Plain text
-#: doc/guix.texi:24780
+#: doc/guix.texi:31480
 msgid "To connect to the VM you can run"
 msgstr "Pour vous connecter à la VM vous pouvez lancer"
 
 #. type: example
-#: doc/guix.texi:24783
+#: doc/guix.texi:31483
 #, no-wrap
 msgid "ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p 10022\n"
 msgstr "ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p 10022\n"
 
 #. type: Plain text
-#: doc/guix.texi:24790
+#: doc/guix.texi:31490
 msgid "The @command{-p} tells @command{ssh} the port you want to connect to.  @command{-o UserKnownHostsFile=/dev/null} prevents @command{ssh} from complaining every time you modify your @command{config.scm} file and the @command{-o StrictHostKeyChecking=no} prevents you from having to allow a connection to an unknown host every time you connect."
 msgstr "Le @command{-p} donne le port auquel vous voulez vous connecter à @command{ssh}, @command{-o UserKnownHostsFile=/dev/null} évite que @command{ssh} ne se plaigne à chaque fois que vous modifiez le fichier @command{config.scm} et @command{-o StrictHostKeyChecking=no} évite que vous n'ayez à autoriser une connexion à un hôte inconnu à chaque fois que vous vous connectez."
 
 #. type: subsection
-#: doc/guix.texi:24791
+#: doc/guix.texi:31491
 #, no-wrap
 msgid "Using @command{virt-viewer} with Spice"
 msgstr "Utiliser @command{virt-viewer} avec Spice"
 
 #. type: Plain text
-#: doc/guix.texi:24797
+#: doc/guix.texi:31497
 msgid "As an alternative to the default @command{qemu} graphical client you can use the @command{remote-viewer} from the @command{virt-viewer} package.  To connect pass the @command{-spice port=5930,disable-ticketing} flag to @command{qemu}.  See previous section for further information on how to do this."
 msgstr "Alternativement au client graphique @command{qemu} par défaut vous pouvez utiliser @command{remote-viewer} du paquet @command{virt-viewer}.  Pour vous connecter, passez le drapeau @command{-spice port=5930,disable-ticketing} à @command{qemu}.  Voir les sections précédentes pour plus d'informations sur comment faire cela."
 
 #. type: Plain text
-#: doc/guix.texi:24800
+#: doc/guix.texi:31500
 msgid "Spice also allows you to do some nice stuff like share your clipboard with your VM.  To enable that you'll also have to pass the following flags to @command{qemu}:"
 msgstr "Spice a aussi de chouettes fonctionnalités comme le partage de votre presse-papier avec la VM.  Pour activer cela vous devrez aussi passer les drapeaux suivants à @command{qemu} :"
 
 #. type: example
-#: doc/guix.texi:24806
+#: doc/guix.texi:31506
 #, no-wrap
 msgid ""
 "-device virtio-serial-pci,id=virtio-serial0,max_ports=16,bus=pci.0,addr=0x5\n"
@@ -45833,81 +58401,81 @@ msgstr ""
 "name=com.redhat.spice.0\n"
 
 #. type: Plain text
-#: doc/guix.texi:24809
-msgid "You'll also need to add the @pxref{Miscellaneous Services, Spice service}."
-msgstr "Vous devrez aussi ajouter le @pxref{Miscellaneous Services, Spice service}."
+#: doc/guix.texi:31510
+msgid "You'll also need to add the @code{(spice-vdagent-service)} to your system definition (@pxref{Miscellaneous Services, Spice service})."
+msgstr "Vous devrez également ajouter le @code{(spice-vdagent-service)} à la définition de votre système (@pxref{Miscellaneous Services, Spice service})."
 
 #. type: Plain text
-#: doc/guix.texi:24816
+#: doc/guix.texi:31517
 msgid "The previous sections show the available services and how one can combine them in an @code{operating-system} declaration.  But how do we define them in the first place? And what is a service anyway?"
 msgstr "Les sections précédentes montrent les services disponibles et comment on peut les combiner dans une déclaration @code{operating-system}.  Mais, déjà, comment les définir ?  Et qu'est-ce qu'un service au fait ?"
 
 #. type: cindex
-#: doc/guix.texi:24828
+#: doc/guix.texi:31529
 #, no-wrap
 msgid "daemons"
 msgstr "démons"
 
 #. type: Plain text
-#: doc/guix.texi:24841
+#: doc/guix.texi:31542
 msgid "Here we define a @dfn{service} as, broadly, something that extends the functionality of the operating system.  Often a service is a process---a @dfn{daemon}---started when the system boots: a secure shell server, a Web server, the Guix build daemon, etc.  Sometimes a service is a daemon whose execution can be triggered by another daemon---e.g., an FTP server started by @command{inetd} or a D-Bus service activated by @command{dbus-daemon}.  Occasionally, a service does not map to a daemon.  For instance, the ``account'' service collects user accounts and makes sure they exist when the system runs; the ``udev'' service collects device management rules and makes them available to the eudev daemon; the @file{/etc} service populates the @file{/etc} directory of the system."
 msgstr "Ici nous définissons un @dfn{service} comme étant, assez largement, quelque chose qui étend la fonctionnalité d'un système d'exploitation.  Souvent un service est un processus — un @dfn{démon} — démarré lorsque le système démarre : un serveur ssh, un serveur web, le démon de construction de Guix, etc.  Parfois un service est un démon dont l'exécution peut être déclenchée par un autre démon — p.@: ex.@: un serveur FTP démarré par @command{inetd} ou un service D-Bus activé par @command{dbus-daemon}.  Parfois, un service ne correspond pas à un démon.  Par exemple, le service « de comptes » récupère la liste des comptes utilisateurs et s'assure qu'ils existent bien lorsque le système est lancé ; le service « udev » récupère les règles de gestion des périphériques et les rend disponible au démon eudev ; le service @file{/etc} rempli le répertoire @file{/etc} du système."
 
 #. type: cindex
-#: doc/guix.texi:24842
+#: doc/guix.texi:31543
 #, no-wrap
 msgid "service extensions"
 msgstr "extensions de service"
 
 #. type: Plain text
-#: doc/guix.texi:24854
+#: doc/guix.texi:31555
 msgid "Guix system services are connected by @dfn{extensions}.  For instance, the secure shell service @emph{extends} the Shepherd---the initialization system, running as PID@tie{}1---by giving it the command lines to start and stop the secure shell daemon (@pxref{Networking Services, @code{openssh-service-type}}); the UPower service extends the D-Bus service by passing it its @file{.service} specification, and extends the udev service by passing it device management rules (@pxref{Desktop Services, @code{upower-service}}); the Guix daemon service extends the Shepherd by passing it the command lines to start and stop the daemon, and extends the account service by passing it a list of required build user accounts (@pxref{Base Services})."
 msgstr "Les services de Guix sont connectés par des @dfn{extensions}.  Par exemple, le service ssh @dfn{étend} le Shepherd — le système d'initialisation de GuixSD, qui tourne en tant que PID@tie{}1 — en lui donnant les lignes de commande pour démarrer et arrêter le démon ssh (@pxref{Networking Services, @code{lsh-service}}) ; le service UPower étend le service D-Bus en lui passant sa spécification @file{.service} et étend le service udev en lui passant des règles de gestion de périphériques (@pxref{Desktop Services, @code{upower-service}}) ; le démon Guix étend le Shepherd en lui passant les lignes de commande pour démarrer et arrêter le démon et étend le service de comptes en lui passant une liste des comptes utilisateurs de constructions requis (@pxref{Base Services})."
 
 #. type: Plain text
-#: doc/guix.texi:24858
+#: doc/guix.texi:31559
 msgid "All in all, services and their ``extends'' relations form a directed acyclic graph (DAG).  If we represent services as boxes and extensions as arrows, a typical system might provide something like this:"
 msgstr "En définitive, les services et leurs relation « d'extensions » forment un graphe orienté acyclique (DAG).  Si nous représentons les services comme des boîtes et les extensions comme des flèches, un système typique pourrait fournir quelque chose comme cela :"
 
 #. type: Plain text
-#: doc/guix.texi:24860
+#: doc/guix.texi:31561
 msgid "@image{images/service-graph,,5in,Typical service extension graph.}"
 msgstr "@image{images/service-graph,,5in,Graphe d'extension des services typique.}"
 
 #. type: cindex
-#: doc/guix.texi:24861
+#: doc/guix.texi:31562
 #, no-wrap
 msgid "system service"
 msgstr "service système"
 
 #. type: Plain text
-#: doc/guix.texi:24869
+#: doc/guix.texi:31570
 msgid "At the bottom, we see the @dfn{system service}, which produces the directory containing everything to run and boot the system, as returned by the @command{guix system build} command.  @xref{Service Reference}, to learn about the other service types shown here.  @xref{system-extension-graph, the @command{guix system extension-graph} command}, for information on how to generate this representation for a particular operating system definition."
 msgstr "En bas, on voit le @dfn{service système} qui produit le répertoire contenant tout et lançant et démarrant le système, renvoyé par la commande @command{guix system build}.  @xref{Service Reference}, pour apprendre les autres types de services montrés ici.  @xref{system-extension-graph, the @command{guix system extension-graph} command}, pour plus d'informations sur la manière de générer cette représentation pour une définition de système d'exploitation particulière."
 
 #. type: cindex
-#: doc/guix.texi:24870
+#: doc/guix.texi:31571
 #, no-wrap
 msgid "service types"
 msgstr "types de services"
 
 #. type: Plain text
-#: doc/guix.texi:24876
+#: doc/guix.texi:31577
 msgid "Technically, developers can define @dfn{service types} to express these relations.  There can be any number of services of a given type on the system---for instance, a system running two instances of the GNU secure shell server (lsh) has two instances of @code{lsh-service-type}, with different parameters."
 msgstr "Techniquement, on peut définir des @dfn{types de services} pour exprimer ces relations.  Il peut y avoir n'importe quel quantité de services d'un type donné sur le système — par exemple, un système sur lequel tournent deux instances du serveur ssh de GNU (lsh) a deux instance de @var{lsh-service-type}, avec des paramètres différents."
 
 #. type: Plain text
-#: doc/guix.texi:24879
+#: doc/guix.texi:31580
 msgid "The following section describes the programming interface for service types and services."
 msgstr "La section suivante décrit l'interface de programmation des types de services et des services."
 
 #. type: Plain text
-#: doc/guix.texi:24886
+#: doc/guix.texi:31587
 msgid "A @dfn{service type} is a node in the DAG described above.  Let us start with a simple example, the service type for the Guix build daemon (@pxref{Invoking guix-daemon}):"
 msgstr "Un @dfn{type de service} est un nœud dans le DAG décrit plus haut.  Commençons avec un exemple simple, le type de service pour le démon de construction de Guix (@pxref{Invoking guix-daemon}) :"
 
-#. type: example
-#: doc/guix.texi:24896
+#. type: lisp
+#: doc/guix.texi:31597
 #, no-wrap
 msgid ""
 "(define guix-service-type\n"
@@ -45929,110 +58497,110 @@ msgstr ""
 "   (default-value (guix-configuration))))\n"
 
 #. type: Plain text
-#: doc/guix.texi:24900
+#: doc/guix.texi:31601
 msgid "It defines three things:"
 msgstr "Il définit trois choses :"
 
 #. type: enumerate
-#: doc/guix.texi:24904
+#: doc/guix.texi:31605
 msgid "A name, whose sole purpose is to make inspection and debugging easier."
 msgstr "Un nom, dont le seul but de rendre l'inspection et le débogage plus faciles."
 
 #. type: enumerate
-#: doc/guix.texi:24909
+#: doc/guix.texi:31610
 msgid "A list of @dfn{service extensions}, where each extension designates the target service type and a procedure that, given the parameters of the service, returns a list of objects to extend the service of that type."
 msgstr "Une liste d'@dfn{extensions de services}, où chaque extension désigne le type de service cible et une procédure qui, étant donné les paramètres du service, renvoie une liste d'objets pour étendre le service de ce type."
 
 #. type: enumerate
-#: doc/guix.texi:24912
+#: doc/guix.texi:31613
 msgid "Every service type has at least one service extension.  The only exception is the @dfn{boot service type}, which is the ultimate service."
 msgstr "Chaque type de service a au moins une extension de service.  La seule exception est le @dfn{type de service boot}, qui est le service ultime."
 
 #. type: enumerate
-#: doc/guix.texi:24915
+#: doc/guix.texi:31616
 msgid "Optionally, a default value for instances of this type."
 msgstr "Éventuellement, une valeur par défaut pour les instances de ce type."
 
 #. type: Plain text
-#: doc/guix.texi:24918
+#: doc/guix.texi:31619
 msgid "In this example, @code{guix-service-type} extends three services:"
 msgstr "Dans cet exemple, @var{guix-service-type} étend trois services :"
 
 #. type: item
-#: doc/guix.texi:24920
+#: doc/guix.texi:31621
 #, no-wrap
 msgid "shepherd-root-service-type"
 msgstr "shepherd-root-service-type"
 
 #. type: table
-#: doc/guix.texi:24925
+#: doc/guix.texi:31626
 msgid "The @code{guix-shepherd-service} procedure defines how the Shepherd service is extended.  Namely, it returns a @code{<shepherd-service>} object that defines how @command{guix-daemon} is started and stopped (@pxref{Shepherd Services})."
 msgstr "La procédure @var{guix-shepherd-service} définit comment le service du Shepherd est étendu.  En fait, elle renvoie un objet @code{<shepherd-service>} qui définit comment @command{guix-daemon} est démarré et stoppé (@pxref{Shepherd Services})."
 
 #. type: item
-#: doc/guix.texi:24926
+#: doc/guix.texi:31627
 #, no-wrap
 msgid "account-service-type"
 msgstr "account-service-type"
 
 #. type: table
-#: doc/guix.texi:24931
+#: doc/guix.texi:31632
 msgid "This extension for this service is computed by @code{guix-accounts}, which returns a list of @code{user-group} and @code{user-account} objects representing the build user accounts (@pxref{Invoking guix-daemon})."
 msgstr "Cette extension pour ce service est calculée par @var{guix-accounts}, qui renvoie une liste d'objets @code{user-group} et @code{user-account} représentant les comptes des utilisateurs de construction (@pxref{Invoking guix-daemon})."
 
 #. type: item
-#: doc/guix.texi:24932
+#: doc/guix.texi:31633
 #, no-wrap
 msgid "activation-service-type"
 msgstr "activation-service-type"
 
 #. type: table
-#: doc/guix.texi:24936
+#: doc/guix.texi:31637
 msgid "Here @code{guix-activation} is a procedure that returns a gexp, which is a code snippet to run at ``activation time''---e.g., when the service is booted."
 msgstr "Ici, @var{guix-activation} est une procédure qui renvoie une gexp, qui est un bout de code qui s'exécute au moment de l'activation — p.@: ex.@: lorsque le service est démarré."
 
 #. type: Plain text
-#: doc/guix.texi:24939
+#: doc/guix.texi:31640
 msgid "A service of this type is instantiated like this:"
 msgstr "Un service de ce type est instancié de cette manière :"
 
-#. type: example
-#: doc/guix.texi:24945
+#. type: lisp
+#: doc/guix.texi:31646
 #, no-wrap
 msgid ""
 "(service guix-service-type\n"
 "         (guix-configuration\n"
 "           (build-accounts 5)\n"
-"           (use-substitutes? #f)))\n"
+"           (extra-options '(\"--gc-keep-derivations\"))))\n"
 msgstr ""
 "(service guix-service-type\n"
 "         (guix-configuration\n"
 "           (build-accounts 5)\n"
-"           (use-substitutes? #f)))\n"
+"           (extra-options '(\"--gc-keep-derivations\"))))\n"
 
 #. type: Plain text
-#: doc/guix.texi:24953
+#: doc/guix.texi:31654
 msgid "The second argument to the @code{service} form is a value representing the parameters of this specific service instance.  @xref{guix-configuration-type, @code{guix-configuration}}, for information about the @code{guix-configuration} data type.  When the value is omitted, the default value specified by @code{guix-service-type} is used:"
 msgstr "Le deuxième argument de la forme @code{service} est une valeur représentant les paramètres de cet instance spécifique du service.  @xref{guix-configuration-type, @code{guix-configuration}}, pour plus d'informations sur le type de données @code{guix-configuration}.  Lorsque la valeur est omise, la valeur par défaut spécifiée par @code{guix-service-type} est utilisée :"
 
-#. type: example
-#: doc/guix.texi:24956
+#. type: lisp
+#: doc/guix.texi:31657
 #, no-wrap
 msgid "(service guix-service-type)\n"
 msgstr "(service guix-service-type)\n"
 
 #. type: Plain text
-#: doc/guix.texi:24960
+#: doc/guix.texi:31661
 msgid "@code{guix-service-type} is quite simple because it extends other services but is not extensible itself."
 msgstr "@var{guix-service-type} est très simple car il étend d'autres services mais ne peut pas être étendu."
 
 #. type: Plain text
-#: doc/guix.texi:24964
+#: doc/guix.texi:31665
 msgid "The service type for an @emph{extensible} service looks like this:"
 msgstr "Le type de service pour un service @emph{extensible} ressemble à ceci :"
 
-#. type: example
-#: doc/guix.texi:24971
+#. type: lisp
+#: doc/guix.texi:31672
 #, no-wrap
 msgid ""
 "(define udev-service-type\n"
@@ -46049,8 +58617,8 @@ msgstr ""
 "                                          udev-shepherd-service)))\n"
 "\n"
 
-#. type: example
-#: doc/guix.texi:24979
+#. type: lisp
+#: doc/guix.texi:31680
 #, no-wrap
 msgid ""
 "                (compose concatenate)       ;concatenate the list of rules\n"
@@ -46070,96 +58638,96 @@ msgstr ""
 "                              (rules (append initial-rules rules)))))))))\n"
 
 #. type: Plain text
-#: doc/guix.texi:24985
+#: doc/guix.texi:31686
 msgid "This is the service type for the @uref{https://wiki.gentoo.org/wiki/Project:Eudev, eudev device management daemon}.  Compared to the previous example, in addition to an extension of @code{shepherd-root-service-type}, we see two new fields:"
 msgstr "C'est le type de service pour le @uref{https://wiki.gentoo.org/wiki/Project:Eudev, le démon de gestion des périphériques eudev}.  Comparé à l'exemple précédent, en plus d'une extension de @var{shepherd-root-service-type}, on trouve deux nouveaux champs :"
 
 #. type: item
-#: doc/guix.texi:24987
+#: doc/guix.texi:31688
 #, no-wrap
 msgid "compose"
 msgstr "compose"
 
 #. type: table
-#: doc/guix.texi:24990
+#: doc/guix.texi:31691
 msgid "This is the procedure to @dfn{compose} the list of extensions to services of this type."
 msgstr "C'est la procédure pour @dfn{composer} la liste des extensions de services de ce type."
 
 #. type: table
-#: doc/guix.texi:24993
+#: doc/guix.texi:31694
 msgid "Services can extend the udev service by passing it lists of rules; we compose those extensions simply by concatenating them."
 msgstr "Les services peuvent étendre le service udev en lui passant des listes de règles ; on compose ces extensions simplement en les concaténant."
 
 #. type: item
-#: doc/guix.texi:24994
+#: doc/guix.texi:31695
 #, no-wrap
 msgid "extend"
 msgstr "extend"
 
 #. type: table
-#: doc/guix.texi:24997
+#: doc/guix.texi:31698
 msgid "This procedure defines how the value of the service is @dfn{extended} with the composition of the extensions."
 msgstr "Cette procédure définie comme la valeur du service est @dfn{étendue} avec la composition des extensions."
 
 #. type: table
-#: doc/guix.texi:25002
+#: doc/guix.texi:31703
 msgid "Udev extensions are composed into a list of rules, but the udev service value is itself a @code{<udev-configuration>} record.  So here, we extend that record by appending the list of rules it contains to the list of contributed rules."
 msgstr "Les extensions Udev sont composés en une liste de règles, mais la valeur du service udev est elle-même un enregistrement @code{<udev-configuration>}.  Donc ici, nous étendons cet enregistrement en ajoutant la liste des règle contribuées à la liste des règles qu'il contient déjà."
 
 #. type: table
-#: doc/guix.texi:25008
+#: doc/guix.texi:31709
 msgid "This is a string giving an overview of the service type.  The string can contain Texinfo markup (@pxref{Overview,,, texinfo, GNU Texinfo}).  The @command{guix system search} command searches these strings and displays them (@pxref{Invoking guix system})."
 msgstr "C'est une chaîne donnant un aperçu du type de service.  Elle peut contenir du balisage Texinfo (@pxref{Overview,,, texinfo, GNU Texinfo}).  La commande @command{guix system search} permet de rechercher dans ces chaînes et de les afficher (@pxref{Invoking guix system})."
 
 #. type: Plain text
-#: doc/guix.texi:25013
+#: doc/guix.texi:31714
 msgid "There can be only one instance of an extensible service type such as @code{udev-service-type}.  If there were more, the @code{service-extension} specifications would be ambiguous."
 msgstr "Il ne peut y avoir qu'une instance d'un type de service extensible comme @var{udev-service-type}.  S'il y en avait plus, les spécification @code{service-extension} seraient ambiguës."
 
 #. type: Plain text
-#: doc/guix.texi:25016
+#: doc/guix.texi:31717
 msgid "Still here? The next section provides a reference of the programming interface for services."
 msgstr "Toujours ici ? La section suivante fournit une référence de l'interface de programmation des services."
 
 #. type: Plain text
-#: doc/guix.texi:25024
+#: doc/guix.texi:31725
 msgid "We have seen an overview of service types (@pxref{Service Types and Services}).  This section provides a reference on how to manipulate services and service types.  This interface is provided by the @code{(gnu services)} module."
 msgstr "Nous avons vu un résumé des types de services (@pxref{Service Types and Services}).  Cette section fournit une référence sur la manière de manipuler les services et les types de services.  Cette interface est fournie par le module @code{(gnu services)}."
 
 #. type: deffn
-#: doc/guix.texi:25025
+#: doc/guix.texi:31726
 #, no-wrap
 msgid "{Scheme Procedure} service @var{type} [@var{value}]"
 msgstr "{Procédure Scheme} service @var{type} [@var{value}]"
 
 #. type: deffn
-#: doc/guix.texi:25029
-msgid "Return a new service of @var{type}, a @code{<service-type>} object (see below.)  @var{value} can be any object; it represents the parameters of this particular service instance."
-msgstr "Renvoie un nouveau service de type @var{type}, un objet @code{<service-type>} (voir plus bas).  @var{value}peut être n'importe quel objet ; il représente les paramètres de cette instance particulière du service."
+#: doc/guix.texi:31730
+msgid "Return a new service of @var{type}, a @code{<service-type>} object (see below).  @var{value} can be any object; it represents the parameters of this particular service instance."
+msgstr "Renvoie un nouveau service de type @var{type}, un objet @code{<service-type>} (voir plus bas).  @var{value}peut être n'importe quel objet ; il représente les paramètres de cette instance particulière de service."
 
 #. type: deffn
-#: doc/guix.texi:25033
+#: doc/guix.texi:31734
 msgid "When @var{value} is omitted, the default value specified by @var{type} is used; if @var{type} does not specify a default value, an error is raised."
 msgstr "Lorsque @var{value} est omise, la valeur par défaut spécifiée par @var{type} est utilisée ; si @var{type} ne spécifie pas de valeur par défaut, une erreur est levée."
 
 #. type: deffn
-#: doc/guix.texi:25035
+#: doc/guix.texi:31736
 msgid "For instance, this:"
 msgstr "Par exemple ceci :"
 
-#. type: example
-#: doc/guix.texi:25038
+#. type: lisp
+#: doc/guix.texi:31739
 #, no-wrap
 msgid "(service openssh-service-type)\n"
 msgstr "(service openssh-service-type)\n"
 
 #. type: deffn
-#: doc/guix.texi:25042
+#: doc/guix.texi:31743
 msgid "is equivalent to this:"
 msgstr "est équivalent à ceci :"
 
-#. type: example
-#: doc/guix.texi:25046
+#. type: lisp
+#: doc/guix.texi:31747
 #, no-wrap
 msgid ""
 "(service openssh-service-type\n"
@@ -46169,50 +58737,50 @@ msgstr ""
 "         (openssh-configuration))\n"
 
 #. type: deffn
-#: doc/guix.texi:25050
+#: doc/guix.texi:31751
 msgid "In both cases the result is an instance of @code{openssh-service-type} with the default configuration."
 msgstr "Dans les deux cas le résultat est une instance de @code{openssh-service-type} avec la configuration par défaut."
 
 #. type: deffn
-#: doc/guix.texi:25052
+#: doc/guix.texi:31753
 #, no-wrap
 msgid "{Scheme Procedure} service? @var{obj}"
 msgstr "{Procédure Scheme} service? @var{obj}"
 
 #. type: deffn
-#: doc/guix.texi:25054
+#: doc/guix.texi:31755
 msgid "Return true if @var{obj} is a service."
 msgstr "Renvoie vrai si @var{obj} est un service."
 
 #. type: deffn
-#: doc/guix.texi:25056
+#: doc/guix.texi:31757
 #, no-wrap
 msgid "{Scheme Procedure} service-kind @var{service}"
 msgstr "{Procédure Scheme} service-kind @var{service}"
 
 #. type: deffn
-#: doc/guix.texi:25058
+#: doc/guix.texi:31759
 msgid "Return the type of @var{service}---i.e., a @code{<service-type>} object."
 msgstr "Renvoie le type de @var{service} — c.-à-d.@: un objet @code{<service-type>}."
 
 #. type: deffn
-#: doc/guix.texi:25060
+#: doc/guix.texi:31761
 #, no-wrap
 msgid "{Scheme Procedure} service-value @var{service}"
 msgstr "{Procédure Scheme} service-value @var{service}"
 
 #. type: deffn
-#: doc/guix.texi:25063
+#: doc/guix.texi:31764
 msgid "Return the value associated with @var{service}.  It represents its parameters."
 msgstr "Renvoie la valeur associée à @var{service}.  Elle représente ses paramètres."
 
 #. type: Plain text
-#: doc/guix.texi:25066
+#: doc/guix.texi:31767
 msgid "Here is an example of how a service is created and manipulated:"
 msgstr "Voici un exemple de la manière dont un service est créé et manipulé :"
 
-#. type: example
-#: doc/guix.texi:25075
+#. type: lisp
+#: doc/guix.texi:31776
 #, no-wrap
 msgid ""
 "(define s\n"
@@ -46233,8 +58801,8 @@ msgstr ""
 "            (file config-file))))\n"
 "\n"
 
-#. type: example
-#: doc/guix.texi:25078
+#. type: lisp
+#: doc/guix.texi:31779
 #, no-wrap
 msgid ""
 "(service? s)\n"
@@ -46245,8 +58813,8 @@ msgstr ""
 "@result{} #t\n"
 "\n"
 
-#. type: example
-#: doc/guix.texi:25081
+#. type: lisp
+#: doc/guix.texi:31782
 #, no-wrap
 msgid ""
 "(eq? (service-kind s) nginx-service-type)\n"
@@ -46256,169 +58824,196 @@ msgstr ""
 "@result{} #t\n"
 
 #. type: Plain text
-#: doc/guix.texi:25091
+#: doc/guix.texi:31792
 msgid "The @code{modify-services} form provides a handy way to change the parameters of some of the services of a list such as @code{%base-services} (@pxref{Base Services, @code{%base-services}}).  It evaluates to a list of services.  Of course, you could always use standard list combinators such as @code{map} and @code{fold} to do that (@pxref{SRFI-1, List Library,, guile, GNU Guile Reference Manual}); @code{modify-services} simply provides a more concise form for this common pattern."
 msgstr "La forme @code{modify-services} fournit une manière pratique de modifier les paramètres de certains services d'une liste comme @var{%base-services} (@pxref{Base Services, @code{%base-services}}).  Elle s'évalue en une liste de services.  Bien sûr, vous pouvez toujours utiliser les combinateurs de liste standards comme @code{map} et @code{fold} pour cela (@pxref{SRFI-1, List Library,, guile, GNU Guile Reference Manual}) ; @code{modify-services} fournit simplement une manière plus concise pour ce besoin commun."
 
 #. type: deffn
-#: doc/guix.texi:25092
+#: doc/guix.texi:31793
 #, no-wrap
 msgid "{Scheme Syntax} modify-services @var{services} @"
 msgstr "{Syntaxe Scheme} modify-services @var{services} @"
 
 #. type: deffn
-#: doc/guix.texi:25094
+#: doc/guix.texi:31795
 msgid "(@var{type} @var{variable} => @var{body}) @dots{}"
 msgstr "(@var{type} @var{variable} => @var{body}) @dots{}"
 
 #. type: deffn
-#: doc/guix.texi:25097
+#: doc/guix.texi:31798
 msgid "Modify the services listed in @var{services} according to the given clauses.  Each clause has the form:"
 msgstr "Modifie les services listés dans @var{services} en fonction des clauses données.  Chaque clause à la forme :"
 
 #. type: example
-#: doc/guix.texi:25100
+#: doc/guix.texi:31801
 #, no-wrap
 msgid "(@var{type} @var{variable} => @var{body})\n"
 msgstr "(@var{type} @var{variable} => @var{body})\n"
 
 #. type: deffn
-#: doc/guix.texi:25107
+#: doc/guix.texi:31808
 msgid "where @var{type} is a service type---e.g., @code{guix-service-type}---and @var{variable} is an identifier that is bound within the @var{body} to the service parameters---e.g., a @code{guix-configuration} instance---of the original service of that @var{type}."
 msgstr "où @var{type} est un type de service — p.@: ex.@: @code{guix-service-type} — et @var{variable} est un identifiant lié dans @var{body} aux paramètres du service — p.@: ex.@: une instance de @code{guix-configuration} — du service original de ce @var{type}."
 
 #. type: deffn
-#: doc/guix.texi:25114
+#: doc/guix.texi:31815
 msgid "The @var{body} should evaluate to the new service parameters, which will be used to configure the new service.  This new service will replace the original in the resulting list.  Because a service's service parameters are created using @code{define-record-type*}, you can write a succinct @var{body} that evaluates to the new service parameters by using the @code{inherit} feature that @code{define-record-type*} provides."
 msgstr "La variable @var{body} devrait s'évaluer en de nouveaux paramètres de service, qui seront utilisés pour configurer le nouveau service.  Ce nouveau service remplacera l'original dans la liste qui en résulte.  Comme les paramètres d'un service sont créés avec @code{define-record-type*}, vous pouvez écrire un @var{body} court qui s'évalue en de nouveaux paramètres pour le services en utilisant @code{inherit}, fourni par @code{define-record-type*}."
 
 #. type: deffn
-#: doc/guix.texi:25116
+#: doc/guix.texi:31817
 msgid "@xref{Using the Configuration System}, for example usage."
 msgstr "@xref{Using the Configuration System} pour des exemples d'utilisation."
 
 #. type: Plain text
-#: doc/guix.texi:25123
+#: doc/guix.texi:31824
 msgid "Next comes the programming interface for service types.  This is something you want to know when writing new service definitions, but not necessarily when simply looking for ways to customize your @code{operating-system} declaration."
 msgstr "Suit l'interface de programmation des types de services.  Vous devrez la connaître pour écrire de nouvelles définitions de services, mais pas forcément lorsque vous cherchez des manières simples de personnaliser votre déclaration @code{operating-system}."
 
 #. type: deftp
-#: doc/guix.texi:25124
+#: doc/guix.texi:31825
 #, no-wrap
 msgid "{Data Type} service-type"
 msgstr "{Type de données} service-type"
 
 #. type: cindex
-#: doc/guix.texi:25125
+#: doc/guix.texi:31826
 #, no-wrap
 msgid "service type"
 msgstr "type de service"
 
 #. type: deftp
-#: doc/guix.texi:25128
+#: doc/guix.texi:31829
 msgid "This is the representation of a @dfn{service type} (@pxref{Service Types and Services})."
 msgstr "C'est la représentation d'un @dfn{type de service} (@pxref{Service Types and Services})."
 
 #. type: table
-#: doc/guix.texi:25132
+#: doc/guix.texi:31833
 msgid "This is a symbol, used only to simplify inspection and debugging."
 msgstr "C'est un symbole, utilisé seulement pour simplifier l'inspection et le débogage."
 
 #. type: code{#1}
-#: doc/guix.texi:25133
+#: doc/guix.texi:31834
 #, no-wrap
 msgid "extensions"
 msgstr "extensions"
 
 #. type: table
-#: doc/guix.texi:25135
+#: doc/guix.texi:31836
 msgid "A non-empty list of @code{<service-extension>} objects (see below)."
 msgstr "Une liste non-vide d'objets @code{<service-extension>} (voir plus bas)."
 
 #. type: item
-#: doc/guix.texi:25136
+#: doc/guix.texi:31837
 #, no-wrap
 msgid "@code{compose} (default: @code{#f})"
 msgstr "@code{compose} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:25140
+#: doc/guix.texi:31841
 msgid "If this is @code{#f}, then the service type denotes services that cannot be extended---i.e., services that do not receive ``values'' from other services."
 msgstr "S'il s'agit de @code{#f}, le type de service dénote des services qui ne peuvent pas être étendus — c.-à-d.@: qui ne reçoivent pas de « valeurs » d'autres services."
 
 #. type: table
-#: doc/guix.texi:25144
+#: doc/guix.texi:31845
 msgid "Otherwise, it must be a one-argument procedure.  The procedure is called by @code{fold-services} and is passed a list of values collected from extensions.  It may return any single value."
 msgstr "Sinon, ce doit être une procédure à un argument.  La procédure est appelée par @code{fold-services} et on lui passe une liste de valeurs collectées par les extensions.  Elle peut renvoyer n'importe quelle valeur simple."
 
 #. type: item
-#: doc/guix.texi:25145
+#: doc/guix.texi:31846
 #, no-wrap
 msgid "@code{extend} (default: @code{#f})"
 msgstr "@code{extend} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:25147
+#: doc/guix.texi:31848
 msgid "If this is @code{#f}, services of this type cannot be extended."
 msgstr "Si la valeur est @code{#f}, les services de ce type ne peuvent pas être étendus."
 
 #. type: table
-#: doc/guix.texi:25153
+#: doc/guix.texi:31854
 msgid "Otherwise, it must be a two-argument procedure: @code{fold-services} calls it, passing it the initial value of the service as the first argument and the result of applying @code{compose} to the extension values as the second argument.  It must return a value that is a valid parameter value for the service instance."
 msgstr "Sinon, il doit s'agir 'une procédure à deux arguments : @code{fold-services} l'appelle et lui passe la valeur initiale du service comme premier argument et le résultat de l'application de @code{compose} sur les valeurs d'extension en second argument.  Elle doit renvoyer une valeur qui est une valeur de paramètre valide pour l'instance du service."
 
+#. type: table
+#: doc/guix.texi:31860
+msgid "This is a string, possibly using Texinfo markup, describing in a couple of sentences what the service is about.  This string allows users to find about the service through @command{guix system search} (@pxref{Invoking guix system})."
+msgstr "C'est une chaine, éventuellement avec de la syntaxe Texinfo, décrivant une quelques phrases ce que le service fait.  Cette chaine permet aux utilisateurs de trouver le service à travers @command{guix system search} (@pxref{Invoking guix system})."
+
+#. type: item
+#: doc/guix.texi:31861
+#, no-wrap
+msgid "@code{default-value} (default: @code{&no-default-value})"
+msgstr "@code{default-value} (par défaut : @code{&no-default-value})"
+
+#. type: table
+#: doc/guix.texi:31864
+msgid "The default value associated for instances of this service type.  This allows users to use the @code{service} form without its second argument:"
+msgstr "La valeur par défaut associée aux instances de ce type de service.  Cela permet d'utiliser la forme @code{service} sans son second argument :"
+
+#. type: lisp
+#: doc/guix.texi:31867
+#, no-wrap
+msgid "(service @var{type})\n"
+msgstr "(service @var{type})\n"
+
+#. type: table
+#: doc/guix.texi:31871
+msgid "The returned service in this case has the default value specified by @var{type}."
+msgstr "Le service renvoyé dans ce cas a la valeur par défaut spécifiée par @var{type}."
+
 #. type: deftp
-#: doc/guix.texi:25156
+#: doc/guix.texi:31874
 msgid "@xref{Service Types and Services}, for examples."
 msgstr "@xref{Service Types and Services}, pour des exemples."
 
 #. type: deffn
-#: doc/guix.texi:25158
+#: doc/guix.texi:31876
 #, no-wrap
 msgid "{Scheme Procedure} service-extension @var{target-type} @"
 msgstr "{Procédure Scheme} service-extension @var{target-type} @"
 
 #. type: deffn
-#: doc/guix.texi:25164
+#: doc/guix.texi:31882
 msgid "@var{compute} Return a new extension for services of type @var{target-type}.  @var{compute} must be a one-argument procedure: @code{fold-services} calls it, passing it the value associated with the service that provides the extension; it must return a valid value for the target service."
 msgstr ""
 "@var{compute}\n"
 "Renvoie une nouvelle extension pour les services de type @var{target-type}.  @var{compute} doit être une procédure à un argument : @code{fold-services} l'appelle et lui passe la valeur associée au service qui fournit cette extension ; elle doit renvoyer une valeur valide pour le service cible."
 
 #. type: deffn
-#: doc/guix.texi:25166
+#: doc/guix.texi:31884
 #, no-wrap
 msgid "{Scheme Procedure} service-extension? @var{obj}"
 msgstr "{Procédure Scheme} service-extension? @var{obj}"
 
 #. type: deffn
-#: doc/guix.texi:25168
+#: doc/guix.texi:31886
 msgid "Return true if @var{obj} is a service extension."
 msgstr "Renvoie vrai si @var{obj} est une extension de service."
 
 #. type: Plain text
-#: doc/guix.texi:25174
+#: doc/guix.texi:31892
 msgid "Occasionally, you might want to simply extend an existing service.  This involves creating a new service type and specifying the extension of interest, which can be verbose; the @code{simple-service} procedure provides a shorthand for this."
 msgstr "Parfois, vous voudrez simplement étendre un service existant.  Cela implique de créer un nouveau type de service et de spécifier l'extension qui vous intéresse, ce qui peut être assez verbeux ; la procédure @code{simple-service} fournit un raccourci pour ce cas."
 
 #. type: deffn
-#: doc/guix.texi:25175
+#: doc/guix.texi:31893
 #, no-wrap
 msgid "{Scheme Procedure} simple-service @var{name} @var{target} @var{value}"
 msgstr "{Procédure Scheme} simple-service @var{name} @var{target} @var{value}"
 
 #. type: deffn
-#: doc/guix.texi:25179
+#: doc/guix.texi:31897
 msgid "Return a service that extends @var{target} with @var{value}.  This works by creating a singleton service type @var{name}, of which the returned service is an instance."
 msgstr "Renvoie un service qui étend @var{target} avec @var{value}.  Cela fonctionne en créant un type de service singleton @var{name}, dont le service renvoyé est une instance."
 
 #. type: deffn
-#: doc/guix.texi:25182
+#: doc/guix.texi:31900
 msgid "For example, this extends mcron (@pxref{Scheduled Job Execution}) with an additional job:"
 msgstr "Par exemple, cela étend mcron (@pxref{Scheduled Job Execution}) avec une tâche supplémentaire :"
 
-#. type: example
-#: doc/guix.texi:25186
+#. type: lisp
+#: doc/guix.texi:31904
 #, no-wrap
 msgid ""
 "(simple-service 'my-mcron-job mcron-service-type\n"
@@ -46428,310 +59023,395 @@ msgstr ""
 "                #~(job '(next-hour (3)) \"guix gc -F 2G\"))\n"
 
 #. type: Plain text
-#: doc/guix.texi:25196
+#: doc/guix.texi:31914
 msgid "At the core of the service abstraction lies the @code{fold-services} procedure, which is responsible for ``compiling'' a list of services down to a single directory that contains everything needed to boot and run the system---the directory shown by the @command{guix system build} command (@pxref{Invoking guix system}).  In essence, it propagates service extensions down the service graph, updating each node parameters on the way, until it reaches the root node."
 msgstr "Au cœur de l'abstraction des services se cache la procédure @code{fold-services}, responsable de la « compilation » d'une liste de services en un répertoire unique qui contient tout ce qui est nécessaire au démarrage et à l'exécution du système — le répertoire indiqué par la commande @command{guix system build} (@pxref{Invoking guix system}).  En soit, elle propage les extensions des services le long du graphe des services, en mettant à jour chaque paramètre des nœuds sur son chemin, jusqu'à atteindre le nœud racine."
 
 #. type: deffn
-#: doc/guix.texi:25197
+#: doc/guix.texi:31915
 #, no-wrap
 msgid "{Scheme Procedure} fold-services @var{services} @"
 msgstr "{Procédure Scheme} fold-services @var{services} @"
 
 #. type: deffn
-#: doc/guix.texi:25201
+#: doc/guix.texi:31919
 msgid "[#:target-type @var{system-service-type}] Fold @var{services} by propagating their extensions down to the root of type @var{target-type}; return the root service adjusted accordingly."
 msgstr ""
 "[#:target-type @var{system-service-type}]\n"
 "Replie @var{services} en propageant leurs extensions jusqu'à la racine de type @var{target-type} ; renvoie le service racine ajusté de cette manière."
 
 #. type: Plain text
-#: doc/guix.texi:25205
+#: doc/guix.texi:31923
 msgid "Lastly, the @code{(gnu services)} module also defines several essential service types, some of which are listed below."
 msgstr "Enfin, le module @code{(gnu services)} définie aussi divers types de services essentiels, dont certains sont listés ci-dessous."
 
 #. type: defvr
-#: doc/guix.texi:25206
+#: doc/guix.texi:31924
 #, no-wrap
 msgid "{Scheme Variable} system-service-type"
 msgstr "{Variable Scheme} system-service-type"
 
 #. type: defvr
-#: doc/guix.texi:25209
+#: doc/guix.texi:31927
 msgid "This is the root of the service graph.  It produces the system directory as returned by the @command{guix system build} command."
 msgstr "C'est la racine du graphe des services.  Il produit le répertoire du système renvoyé par la commande @command{guix system build}."
 
 #. type: defvr
-#: doc/guix.texi:25211
+#: doc/guix.texi:31929
 #, no-wrap
 msgid "{Scheme Variable} boot-service-type"
 msgstr "{Variable Scheme} boot-service-type"
 
 #. type: defvr
-#: doc/guix.texi:25214
+#: doc/guix.texi:31932
 msgid "The type of the ``boot service'', which produces the @dfn{boot script}.  The boot script is what the initial RAM disk runs when booting."
 msgstr "Le type du service « boot », qui produit le @dfn{script de démarrage}.  Le script de démarrage est ce que le disque de RAM initial lance au démarrage."
 
 #. type: defvr
-#: doc/guix.texi:25216
+#: doc/guix.texi:31934
 #, no-wrap
 msgid "{Scheme Variable} etc-service-type"
 msgstr "{Variable Scheme} etc-service-type"
 
 #. type: defvr
-#: doc/guix.texi:25220
+#: doc/guix.texi:31938
 msgid "The type of the @file{/etc} service.  This service is used to create files under @file{/etc} and can be extended by passing it name/file tuples such as:"
 msgstr "Le type du service @file{/etc}.  Ce service est utilisé pour créer des fichiers dans @file{/etc} et peut être étendu en lui passant des tuples nom/fichier comme ceci :"
 
-#. type: example
-#: doc/guix.texi:25223
+#. type: lisp
+#: doc/guix.texi:31941
 #, no-wrap
 msgid "(list `(\"issue\" ,(plain-file \"issue\" \"Welcome!\\n\")))\n"
 msgstr "(list `(\"issue\" ,(plain-file \"issue\" \"Bienvenue !\\n\")))\n"
 
 #. type: defvr
-#: doc/guix.texi:25227
+#: doc/guix.texi:31945
 msgid "In this example, the effect would be to add an @file{/etc/issue} file pointing to the given file."
 msgstr "Dans cet exemple, l'effet serait d'ajouter un fichier @file{/etc/issue} pointant vers le fichier donné."
 
 #. type: defvr
-#: doc/guix.texi:25229
+#: doc/guix.texi:31947
 #, no-wrap
 msgid "{Scheme Variable} setuid-program-service-type"
 msgstr "{Variable Scheme} setuid-program-service-type"
 
 #. type: defvr
-#: doc/guix.texi:25233
+#: doc/guix.texi:31951
 msgid "Type for the ``setuid-program service''.  This service collects lists of executable file names, passed as gexps, and adds them to the set of setuid-root programs on the system (@pxref{Setuid Programs})."
 msgstr "Le type du « service setuid ».  Ce service récupère des listes de noms de fichiers exécutables, passés en tant que gexps, et les ajoute à l'ensemble des programmes setuid root sur le système (@pxref{Setuid Programs})."
 
 #. type: defvr
-#: doc/guix.texi:25235
+#: doc/guix.texi:31953
 #, no-wrap
 msgid "{Scheme Variable} profile-service-type"
 msgstr "{Variable Scheme} profile-service-type"
 
 #. type: defvr
-#: doc/guix.texi:25239
+#: doc/guix.texi:31957
 msgid "Type of the service that populates the @dfn{system profile}---i.e., the programs under @file{/run/current-system/profile}.  Other services can extend it by passing it lists of packages to add to the system profile."
 msgstr "De type du service qui rempli le @dfn{profil du système} — c.-à-d.@: les programmes dans @file{/run/current-system/profile}.  Les autres services peuvent l'étendre en lui passant des listes de paquets à ajouter au profil du système."
 
+#. type: anchor{#1}
+#: doc/guix.texi:31961
+msgid "provenance-service-type"
+msgstr "provenance-service-type"
+
+#. type: defvr
+#: doc/guix.texi:31961
+#, no-wrap
+msgid "{Scheme Variable} provenance-service-type"
+msgstr "{Variable Scheme} provenance-service-type"
+
+#. type: defvr
+#: doc/guix.texi:31965
+msgid "This is the type of the service that records @dfn{provenance meta-data} in the system itself.  It creates several files under @file{/run/current-system}:"
+msgstr "C'est le type de service qui enregistre les @dfn{métadonnées de provenance} dans le système lui-même.  Il crée plusieurs fichiers dans @file{/run/current-system} :"
+
+#. type: item
+#: doc/guix.texi:31967
+#, no-wrap
+msgid "channels.scm"
+msgstr "channels.scm"
+
+#. type: table
+#: doc/guix.texi:31972
+msgid "This is a ``channel file'' that can be passed to @command{guix pull -C} or @command{guix time-machine -C}, and which describes the channels used to build the system, if that information was available (@pxref{Channels})."
+msgstr "C'est un « fichier de canaux » qui peut être passé à @command{guix pull -C} ou @command{guix time-machine -C}, et qui décrit les canaux utilisés pour construire le système, si cette information était disponible (@pxref{Channels})."
+
+#. type: item
+#: doc/guix.texi:31973
+#, no-wrap
+msgid "configuration.scm"
+msgstr "configuration.scm"
+
+#. type: table
+#: doc/guix.texi:31978
+msgid "This is the file that was passed as the value for this @code{provenance-service-type} service.  By default, @command{guix system reconfigure} automatically passes the OS configuration file it received on the command line."
+msgstr "C'est le fichier qui était passé en argument à ce service @code{provenance-service-type}.  Par défaut, @command{guix system reconfigure} passe automatiquement le fichier de configuration du système qu'il a reçu en argument de la ligne de commande."
+
+#. type: item
+#: doc/guix.texi:31979
+#, no-wrap
+msgid "provenance"
+msgstr "provenance"
+
+#. type: table
+#: doc/guix.texi:31982
+msgid "This contains the same information as the two other files but in a format that is more readily processable."
+msgstr "Cela contient la même information que les deux autres fichiers mais dans un format plus facile à traiter automatiquement."
+
+#. type: defvr
+#: doc/guix.texi:31986
+msgid "In general, these two pieces of information (channels and configuration file) are enough to reproduce the operating system ``from source''."
+msgstr "En général, ces deux informations (les canaux et le fichier de configuration) sont suffisants pour reproduire le système d'exploitation « depuis les sources »."
+
+#. type: quotation
+#: doc/guix.texi:31987
+#, no-wrap
+msgid "Caveats"
+msgstr "Limites"
+
+#. type: quotation
+#: doc/guix.texi:31994
+msgid "This information is necessary to rebuild your operating system, but it is not always sufficient.  In particular, @file{configuration.scm} itself is insufficient if it is not self-contained---if it refers to external Guile modules or to extra files.  If you want @file{configuration.scm} to be self-contained, we recommend that modules or files it refers to be part of a channel."
+msgstr "Cette information est nécessaire pour reconstruire votre système d'exploitation, mais elle n'est pas suffisante.  En particulier, @file{configuration.scm} lui-même n'est pas suffisant s'il n'est pas auto-contenu --- s'il référence des modules Guile externes ou des fichiers supplémentaires.  Si vous voulez que @file{configuration.scm} soit auto-contenu, nous vous recommandons de faire en sorte que les modules et les fichiers auxquels il fait référence se trouvent dans un canal."
+
+#. type: quotation
+#: doc/guix.texi:32002
+msgid "Besides, provenance meta-data is ``silent'' in the sense that it does not change the bits contained in your system, @emph{except for the meta-data bits themselves}.  Two different OS configurations or sets of channels can lead to the same system, bit-for-bit; when @code{provenance-service-type} is used, these two systems will have different meta-data and thus different store file names, which makes comparison less trivial."
+msgstr "De plus, les métadonnées de provenance sont « silencieuses » dans le sens où elles ne changent pas les bits contenus dans votre système, @emph{en dehors des bits des métadonnées elles-mêmes}.  Deux configuration de système différents ou des ensembles de canaux différents peuvent créer le même système, bit-à-bit, mais lorsque @code{provenance-service-type} est utilisé ces deux systèmes auront des métadonnées différentes et donc des noms de fichiers dans le dépôt différents, ce qui rend la comparaison plus difficile."
+
+#. type: defvr
+#: doc/guix.texi:32007
+msgid "This service is automatically added to your operating system configuration when you use @command{guix system reconfigure}, @command{guix system init}, or @command{guix deploy}."
+msgstr "Ce service est automatiquement ajouté à la configuration de votre système d'exploitation quand vous utilisez @command{guix system reconfigure}, @command{guix system init} et @command{guix deploy}."
+
 #. type: cindex
-#: doc/guix.texi:25245
+#: doc/guix.texi:32012
 #, no-wrap
 msgid "shepherd services"
 msgstr "services shepherd"
 
 #. type: cindex
-#: doc/guix.texi:25246
+#: doc/guix.texi:32013
 #, no-wrap
 msgid "PID 1"
 msgstr "PID 1"
 
 #. type: cindex
-#: doc/guix.texi:25247
+#: doc/guix.texi:32014
 #, no-wrap
 msgid "init system"
 msgstr "système d'init"
 
 #. type: Plain text
-#: doc/guix.texi:25253
+#: doc/guix.texi:32020
 msgid "The @code{(gnu services shepherd)} module provides a way to define services managed by the GNU@tie{}Shepherd, which is the initialization system---the first process that is started when the system boots, also known as PID@tie{}1 (@pxref{Introduction,,, shepherd, The GNU Shepherd Manual})."
 msgstr "Le module @code{(gnu services shepherd)} fournit une manière de définir les services gérés par le GNU@tie{}Shepherd, qui est le système d'initialisation — le premier processus démarré lorsque le système démarre, aussi connu comme étant le PID@tie{}1 (@pxref{Introduction,,, shepherd, The GNU Shepherd Manual})."
 
 #. type: Plain text
-#: doc/guix.texi:25259
+#: doc/guix.texi:32026
 msgid "Services in the Shepherd can depend on each other.  For instance, the SSH daemon may need to be started after the syslog daemon has been started, which in turn can only happen once all the file systems have been mounted.  The simple operating system defined earlier (@pxref{Using the Configuration System}) results in a service graph like this:"
 msgstr "Les services dans le Shepherd peuvent dépendre les uns des autres.  Par exemple, le démon SSH peut avoir besoin d'être démarré après le démon syslog, qui à son tour doit être démarré après le montage des systèmes de fichiers.  Le système d'exploitation simple déclaré précédemment (@pxref{Using the Configuration System}) crée un graphe de service comme ceci :"
 
 #. type: Plain text
-#: doc/guix.texi:25261
+#: doc/guix.texi:32028
 msgid "@image{images/shepherd-graph,,5in,Typical shepherd service graph.}"
 msgstr "@image{images/shepherd-graph,,5in,Graphe de service typique du shepherd.}"
 
 #. type: Plain text
-#: doc/guix.texi:25265
+#: doc/guix.texi:32032
 msgid "You can actually generate such a graph for any operating system definition using the @command{guix system shepherd-graph} command (@pxref{system-shepherd-graph, @command{guix system shepherd-graph}})."
 msgstr "Vous pouvez générer un tel graphe pour n'importe quelle définition de système d'exploitation avec la commande @command{guix system shepherd-graph} (@pxref{system-shepherd-graph, @command{guix system shepherd-graph}})."
 
 #. type: Plain text
-#: doc/guix.texi:25269
+#: doc/guix.texi:32036
 msgid "The @code{%shepherd-root-service} is a service object representing PID@tie{}1, of type @code{shepherd-root-service-type}; it can be extended by passing it lists of @code{<shepherd-service>} objects."
 msgstr "La variable @var{%shepherd-root-service} est un objet de service représentant le PID@tie{}1, de type @var{shepherd-root-service-type} ; il peut être étendu en lui passant des listes d'objets @code{<shepherd-service>}."
 
 #. type: deftp
-#: doc/guix.texi:25270
+#: doc/guix.texi:32037
 #, no-wrap
 msgid "{Data Type} shepherd-service"
 msgstr "{Type de données} shepherd-service"
 
 #. type: deftp
-#: doc/guix.texi:25272
+#: doc/guix.texi:32039
 msgid "The data type representing a service managed by the Shepherd."
 msgstr "Le type de données représentant un service géré par le Shepherd."
 
 #. type: code{#1}
-#: doc/guix.texi:25274
+#: doc/guix.texi:32041
 #, no-wrap
 msgid "provision"
 msgstr "provision"
 
 #. type: table
-#: doc/guix.texi:25276
+#: doc/guix.texi:32043
 msgid "This is a list of symbols denoting what the service provides."
 msgstr "C'est une liste de symboles dénotant ce que le service fournit."
 
 #. type: table
-#: doc/guix.texi:25281
+#: doc/guix.texi:32048
 msgid "These are the names that may be passed to @command{herd start}, @command{herd status}, and similar commands (@pxref{Invoking herd,,, shepherd, The GNU Shepherd Manual}).  @xref{Slots of services, the @code{provides} slot,, shepherd, The GNU Shepherd Manual}, for details."
 msgstr "Ce sont les noms qui peuvent être passés à @command{herd start}, @command{herd status} et les commandes similaires (@pxref{Invoking herd,,, shepherd, The GNU Shepherd Manual}).  @xref{Slots of services, the @code{provides} slot,, shepherd, The GNU Shepherd Manual}, pour plus de détails."
 
 #. type: item
-#: doc/guix.texi:25282
-#, fuzzy, no-wrap
-#| msgid "@code{requirement} (default: @code{'()})"
-msgid "@code{requirements} (default: @code{'()})"
-msgstr "@code{requirement} (par défaut : @code{'()})"
+#: doc/guix.texi:32049
+#, no-wrap
+msgid "@code{requirement} (default: @code{'()})"
+msgstr "@code{requirement} (par défaut: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:25284
+#: doc/guix.texi:32051
 msgid "List of symbols denoting the Shepherd services this one depends on."
 msgstr "Liste de symboles dénotant les services du Shepherd dont celui-ci dépend."
 
 #. type: cindex
-#: doc/guix.texi:25285
+#: doc/guix.texi:32052
 #, no-wrap
 msgid "one-shot services, for the Shepherd"
 msgstr "services ponctuels, pour le Shepherd"
 
 #. type: table
-#: doc/guix.texi:25290
+#: doc/guix.texi:32057
 msgid "Whether this service is @dfn{one-shot}.  One-shot services stop immediately after their @code{start} action has completed.  @xref{Slots of services,,, shepherd, The GNU Shepherd Manual}, for more info."
 msgstr "Indique si ce service est @dfn{ponctuel}.  Les services ponctuels s'arrêtent immédiatement à la fin de leur action @code{start}.  @xref{Slots of services,,, shepherd, The GNU Shepherd Manual}, pour plus d'infos."
 
 #. type: item
-#: doc/guix.texi:25291
+#: doc/guix.texi:32058
 #, no-wrap
 msgid "@code{respawn?} (default: @code{#t})"
 msgstr "@code{respawn?} (par défaut : @code{#t})"
 
 #. type: table
-#: doc/guix.texi:25294
+#: doc/guix.texi:32061
 msgid "Whether to restart the service when it stops, for instance when the underlying process dies."
 msgstr "Indique s'il faut redémarrer le service lorsqu'il s'arrête, par exemple si le processus sous-jacent meurt."
 
 #. type: code{#1}
-#: doc/guix.texi:25295
+#: doc/guix.texi:32062
 #, no-wrap
 msgid "start"
 msgstr "start"
 
 #. type: itemx
-#: doc/guix.texi:25296
+#: doc/guix.texi:32063
 #, no-wrap
 msgid "@code{stop} (default: @code{#~(const #f)})"
 msgstr "@code{stop} (par défaut : @code{#~(const #f)})"
 
 #. type: table
-#: doc/guix.texi:25302
+#: doc/guix.texi:32069
 msgid "The @code{start} and @code{stop} fields refer to the Shepherd's facilities to start and stop processes (@pxref{Service De- and Constructors,,, shepherd, The GNU Shepherd Manual}).  They are given as G-expressions that get expanded in the Shepherd configuration file (@pxref{G-Expressions})."
 msgstr "Les champs @code{start} et @code{stop} se réfèrent à la capacité du Shepherd de démarrer et d'arrêter des processus (@pxref{Service De- and Constructors,,, shepherd, The GNU Shepherd Manual}).  Ils sont donnés comme des G-expressions qui sont étendues dans le fichier de configuration du Shepherd (@pxref{G-Expressions})."
 
 #. type: item
-#: doc/guix.texi:25303
+#: doc/guix.texi:32070
 #, no-wrap
 msgid "@code{actions} (default: @code{'()})"
 msgstr "@code{actions} (par défaut : @code{'()})"
 
 #. type: cindex
-#: doc/guix.texi:25304
+#: doc/guix.texi:32071
 #, no-wrap
 msgid "actions, of Shepherd services"
 msgstr "action, des services Shepherd"
 
 #. type: table
-#: doc/guix.texi:25309
+#: doc/guix.texi:32076
 msgid "This is a list of @code{shepherd-action} objects (see below) defining @dfn{actions} supported by the service, in addition to the standard @code{start} and @code{stop} actions.  Actions listed here become available as @command{herd} sub-commands:"
 msgstr "C'est une liste d'objets @code{shepherd-action} (voir plus bas) définissant des @dfn{actions} supportées par le service, en plus des actions @code{start} et @code{stop} standards.  Les actions listées ici sont disponibles en tant que sous-commande de @command{herd} :"
 
 #. type: example
-#: doc/guix.texi:25312
+#: doc/guix.texi:32079
 #, no-wrap
 msgid "herd @var{action} @var{service} [@var{arguments}@dots{}]\n"
 msgstr "herd @var{action} @var{service} [@var{arguments}@dots{}]\n"
 
+#. type: item
+#: doc/guix.texi:32081
+#, no-wrap
+msgid "@code{auto-start?} (default: @code{#t})"
+msgstr "@code{auto-start?} (par défaut : @code{#t})"
+
 #. type: table
-#: doc/guix.texi:25316
+#: doc/guix.texi:32084
+msgid "Whether this service should be started automatically by the Shepherd.  If it is @code{#f} the service has to be started manually with @code{herd start}."
+msgstr "Indique si ce service doit être démarré automatiquement par le Shepherd.  Si la valeur est @code{#f}, le service doit être démarré manuellement avec @code{herd start}."
+
+#. type: table
+#: doc/guix.texi:32087
 msgid "A documentation string, as shown when running:"
 msgstr "Une chaîne de documentation, montrée lorsqu'on lance :"
 
 #. type: example
-#: doc/guix.texi:25319
+#: doc/guix.texi:32090
 #, no-wrap
 msgid "herd doc @var{service-name}\n"
 msgstr "herd doc @var{service-name}\n"
 
 #. type: table
-#: doc/guix.texi:25323
+#: doc/guix.texi:32094
 msgid "where @var{service-name} is one of the symbols in @code{provision} (@pxref{Invoking herd,,, shepherd, The GNU Shepherd Manual})."
 msgstr "où @var{service-name} est l'un des symboles dans @var{provision} (@pxref{Invoking herd,,, shepherd, The GNU Shepherd Manual})."
 
 #. type: item
-#: doc/guix.texi:25324
+#: doc/guix.texi:32095
 #, no-wrap
 msgid "@code{modules} (default: @code{%default-modules})"
 msgstr "@code{modules} (par défaut : @code{%default-modules})"
 
 #. type: table
-#: doc/guix.texi:25327
+#: doc/guix.texi:32098
 msgid "This is the list of modules that must be in scope when @code{start} and @code{stop} are evaluated."
 msgstr "C'est la liste des modules qui doivent être dans le contexte lorsque @code{start} et @code{stop} sont évalués."
 
 #. type: deftp
-#: doc/guix.texi:25331
+#: doc/guix.texi:32102
 #, no-wrap
 msgid "{Data Type} shepherd-action"
 msgstr "{Type de données} shepherd-action"
 
 #. type: deftp
-#: doc/guix.texi:25334
+#: doc/guix.texi:32105
 msgid "This is the data type that defines additional actions implemented by a Shepherd service (see above)."
 msgstr "C'est le type de données qui définie des actions supplémentaires implémentées par un service Shepherd (voir au-dessus)."
 
 #. type: table
-#: doc/guix.texi:25338
+#: doc/guix.texi:32109
 msgid "Symbol naming the action."
 msgstr "Symbole nommant l'action."
 
 #. type: table
-#: doc/guix.texi:25341
+#: doc/guix.texi:32112
 msgid "This is a documentation string for the action.  It can be viewed by running:"
 msgstr "C'est une chaîne de documentation pour l'action.  Elle peut être consultée avec :"
 
 #. type: example
-#: doc/guix.texi:25344
+#: doc/guix.texi:32115
 #, no-wrap
 msgid "herd doc @var{service} action @var{action}\n"
 msgstr "herd doc @var{service} action @var{action}\n"
 
 #. type: item
-#: doc/guix.texi:25346
+#: doc/guix.texi:32117
 #, no-wrap
 msgid "procedure"
 msgstr "procedure"
 
 #. type: table
-#: doc/guix.texi:25350
+#: doc/guix.texi:32121
 msgid "This should be a gexp that evaluates to a procedure of at least one argument, which is the ``running value'' of the service (@pxref{Slots of services,,, shepherd, The GNU Shepherd Manual})."
 msgstr "Cela devrait être une gexp qui s'évalue en une procédure à au moins un argument, la « valeur de lancement » du service (@pxref{Slots of services,,, shepherd, The GNU Shepherd Manual})."
 
 #. type: deftp
-#: doc/guix.texi:25354
+#: doc/guix.texi:32125
 msgid "The following example defines an action called @code{say-hello} that kindly greets the user:"
 msgstr "L'exemple suivant définie une action nommée @code{dire-bonjour} qui salue amicalement l'utilisateur :"
 
-#. type: example
-#: doc/guix.texi:25363
+#. type: lisp
+#: doc/guix.texi:32134
 #, no-wrap
 msgid ""
 "(shepherd-action\n"
@@ -46751,12 +59431,12 @@ msgstr ""
 "                 #t)))\n"
 
 #. type: deftp
-#: doc/guix.texi:25366
+#: doc/guix.texi:32137
 msgid "Assuming this action is added to the @code{example} service, then you can do:"
 msgstr "En supposant que cette action est ajoutée dans le service @code{example}, vous pouvez écrire :"
 
 #. type: example
-#: doc/guix.texi:25372
+#: doc/guix.texi:32143
 #, no-wrap
 msgid ""
 "# herd say-hello example\n"
@@ -46770,79 +59450,79 @@ msgstr ""
 "Salut, l'ami ! arguments : (\"a\" \"b\" \"c\")\n"
 
 #. type: deftp
-#: doc/guix.texi:25377
+#: doc/guix.texi:32148
 msgid "This, as you can see, is a fairly sophisticated way to say hello.  @xref{Service Convenience,,, shepherd, The GNU Shepherd Manual}, for more info on actions."
 msgstr "Comme vous pouvez le voir, c'est une manière assez sophistiquée de dire bonjour.  @xref{Service Convenience,,, shepherd, The GNU Shepherd Manual}, pour plus d'informations sur les actions."
 
 #. type: defvr
-#: doc/guix.texi:25379
+#: doc/guix.texi:32150
 #, no-wrap
 msgid "{Scheme Variable} shepherd-root-service-type"
 msgstr "{Variable Scheme} shepherd-root-service-type"
 
 #. type: defvr
-#: doc/guix.texi:25381
+#: doc/guix.texi:32152
 msgid "The service type for the Shepherd ``root service''---i.e., PID@tie{}1."
 msgstr "Le type de service pour le « service racine » du Shepherd — c.-à-d.@: le PID@tie{}1."
 
 #. type: defvr
-#: doc/guix.texi:25385
+#: doc/guix.texi:32156
 msgid "This is the service type that extensions target when they want to create shepherd services (@pxref{Service Types and Services}, for an example).  Each extension must pass a list of @code{<shepherd-service>}."
 msgstr "C'est le type de service que les extensions ciblent lorqu'elles veulent créer un service shepherd (@pxref{Service Types and Services}, pour un exemple).  Chaque extension doit passer une liste de @code{<shepherd-service>}."
 
 #. type: defvr
-#: doc/guix.texi:25387
+#: doc/guix.texi:32158
 #, no-wrap
 msgid "{Scheme Variable} %shepherd-root-service"
 msgstr "{Variable Scheme} %shepherd-root-service"
 
 #. type: defvr
-#: doc/guix.texi:25389
+#: doc/guix.texi:32160
 msgid "This service represents PID@tie{}1."
 msgstr "Ce service représente le PID@tie{}1."
 
 #. type: cindex
-#: doc/guix.texi:25395
+#: doc/guix.texi:32166
 #, no-wrap
 msgid "documentation, searching for"
 msgstr "documentation, recherche"
 
 #. type: cindex
-#: doc/guix.texi:25396
+#: doc/guix.texi:32167
 #, no-wrap
 msgid "searching for documentation"
 msgstr "chercher de la documentation"
 
 #. type: cindex
-#: doc/guix.texi:25397
+#: doc/guix.texi:32168
 #, no-wrap
 msgid "Info, documentation format"
 msgstr "Info, format de documentation"
 
 #. type: cindex
-#: doc/guix.texi:25398
+#: doc/guix.texi:32169
 #, no-wrap
 msgid "man pages"
 msgstr "man, pages de manuel"
 
 #. type: cindex
-#: doc/guix.texi:25399
+#: doc/guix.texi:32170
 #, no-wrap
 msgid "manual pages"
 msgstr "pages de manuel"
 
 #. type: Plain text
-#: doc/guix.texi:25406
+#: doc/guix.texi:32177
 msgid "In most cases packages installed with Guix come with documentation.  There are two main documentation formats: ``Info'', a browseable hypertext format used for GNU software, and ``manual pages'' (or ``man pages''), the linear documentation format traditionally found on Unix.  Info manuals are accessed with the @command{info} command or with Emacs, and man pages are accessed using @command{man}."
 msgstr "Dans la plupart des cas les paquets installés avec Guix ont une documentation.  Il y a deux formats de documentation principaux : « Info », un format hypertexte navigable utilisé par les logiciels GNU et les « pages de manuel » (ou « pages de man »), le format de documentation linéaire traditionnel chez Unix.  Les manuels Info sont disponibles via la commande @command{info} ou avec Emacs, et les pages de man sont accessibles via la commande @command{man}."
 
 #. type: Plain text
-#: doc/guix.texi:25410
+#: doc/guix.texi:32181
 msgid "You can look for documentation of software installed on your system by keyword.  For example, the following command searches for information about ``TLS'' in Info manuals:"
 msgstr "Vous pouvez chercher de la documentation pour les logiciels installés sur votre système par mot-clef.  Par exemple, la commande suivante recherche des informations sur « TLS » dans les manuels Info :"
 
 #. type: example
-#: doc/guix.texi:25418
+#: doc/guix.texi:32189
 #, no-wrap
 msgid ""
 "$ info -k TLS\n"
@@ -46860,12 +59540,12 @@ msgstr ""
 "@dots{}\n"
 
 #. type: Plain text
-#: doc/guix.texi:25422
+#: doc/guix.texi:32193
 msgid "The command below searches for the same keyword in man pages:"
 msgstr "La commande suivante recherche le même mot-clef dans les pages de man :"
 
 #. type: example
-#: doc/guix.texi:25428
+#: doc/guix.texi:32199
 #, no-wrap
 msgid ""
 "$ man -k TLS\n"
@@ -46879,108 +59559,210 @@ msgstr ""
 "@dots {}\n"
 
 #. type: Plain text
-#: doc/guix.texi:25434
+#: doc/guix.texi:32205
 msgid "These searches are purely local to your computer so you have the guarantee that documentation you find corresponds to what you have actually installed, you can access it off-line, and your privacy is respected."
 msgstr "Ces recherches sont purement locales à votre ordinateur donc vous savez que la documentation trouvée correspond à ce qui est effectivement installé, vous pouvez y accéder hors ligne et votre vie privée est préservée."
 
 #. type: Plain text
-#: doc/guix.texi:25437
+#: doc/guix.texi:32208
 msgid "Once you have these results, you can view the relevant documentation by running, say:"
 msgstr "Une fois que vous avez ces résultats, vous pouvez visualiser la documentation appropriée avec, disons :"
 
 #. type: example
-#: doc/guix.texi:25440
+#: doc/guix.texi:32211
 #, no-wrap
 msgid "$ info \"(gnutls)Core TLS API\"\n"
 msgstr "$ info \"(gnutls)Core TLS API\"\n"
 
 #. type: Plain text
-#: doc/guix.texi:25444
+#: doc/guix.texi:32215
 msgid "or:"
 msgstr "ou :"
 
 #. type: example
-#: doc/guix.texi:25447
+#: doc/guix.texi:32218
 #, no-wrap
 msgid "$ man certtool\n"
 msgstr "$ man certtool\n"
 
 #. type: Plain text
-#: doc/guix.texi:25455
+#: doc/guix.texi:32226
 msgid "Info manuals contain sections and indices as well as hyperlinks like those found in Web pages.  The @command{info} reader (@pxref{Top, Info reader,, info-stnd, Stand-alone GNU Info}) and its Emacs counterpart (@pxref{Misc Help,,, emacs, The GNU Emacs Manual}) provide intuitive key bindings to navigate manuals.  @xref{Getting Started,,, info, Info: An Introduction}, for an introduction to Info navigation."
 msgstr "Les manuels Info contiennent des sections et des indexs ainsi que des hyperliens comme ce qu'on trouve sur les pages Web.  Le lecteur @command{info} (@pxref{Top, Info reader,, info-stnd, Stand-alone GNU Info}) et sa contre-partie dans Emacs (@pxref{Misc Help,,, emacs, The GNU Emacs Manual}) fournissent des raccourcis claviers intuitifs pour naviguer dans les manuels  @xref{Getting Started,,, info, Info: An Introduction} pour trouver une introduction sur la navigation dans info."
 
 #. type: cindex
-#: doc/guix.texi:25459
+#: doc/guix.texi:32230
 #, no-wrap
 msgid "debugging files"
 msgstr "fichiers de débogage"
 
 #. type: Plain text
-#: doc/guix.texi:25465
+#: doc/guix.texi:32236
 msgid "Program binaries, as produced by the GCC compilers for instance, are typically written in the ELF format, with a section containing @dfn{debugging information}.  Debugging information is what allows the debugger, GDB, to map binary code to source code; it is required to debug a compiled program in good conditions."
 msgstr "Les binaires des programmes, produits par les compilateurs GCC par exemple, sont typiquement écrits au format ELF, avec une section contenant des @dfn{informations de débogage}.  Les informations de débogage sont ce qui permet au débogueur, GDB, de relier le code binaire et le code source ; elles sont requises pour déboguer un programme compilé dans de bonnes conditions."
 
 #. type: Plain text
-#: doc/guix.texi:25473
+#: doc/guix.texi:32240
+msgid "This chapter explains how to use separate debug info when packages provide it, and how to rebuild packages with debug info when it's missing."
+msgstr "Ce chapitre explique comme utiliser les information de débogages séparées quand un paquet ne les fournit pas, et comme reconstruire un paquet avec les informations de débogage manquantes."
+
+#. type: Plain text
+#: doc/guix.texi:32256
 msgid "The problem with debugging information is that is takes up a fair amount of disk space.  For example, debugging information for the GNU C Library weighs in at more than 60 MiB.  Thus, as a user, keeping all the debugging info of all the installed programs is usually not an option.  Yet, space savings should not come at the cost of an impediment to debugging---especially in the GNU system, which should make it easier for users to exert their computing freedom (@pxref{GNU Distribution})."
 msgstr "Le problème avec les informations de débogage est qu'elles prennent pas mal de place sur le disque. Par exemple, les informations de débogage de la bibliothèque C de GNU prend plus de 60 Mo. Ainsi, en tant qu'utilisateur, garder toutes les informations de débogage de tous les programmes installés n'est souvent pas une possibilité. Cependant, l'économie d'espace ne devrait pas empêcher le débogage — en particulier, dans le système GNU, qui devrait faciliter pour ses utilisateurs l'exercice de leurs libertés (@pxref{Distribution GNU})."
 
 #. type: Plain text
-#: doc/guix.texi:25480
+#: doc/guix.texi:32263
 msgid "Thankfully, the GNU Binary Utilities (Binutils) and GDB provide a mechanism that allows users to get the best of both worlds: debugging information can be stripped from the binaries and stored in separate files.  GDB is then able to load debugging information from those files, when they are available (@pxref{Separate Debug Files,,, gdb, Debugging with GDB})."
 msgstr "Heureusement, les utilitaires binaires de GNU (Binutils) et GDB fournissent un mécanisme qui permet aux utilisateurs d'avoir le meilleur des deux mondes : les informations de débogage peuvent être nettoyées des binaires et stockées dans des fichiers séparés.  GDB peut ensuite charger les informations de débogage depuis ces fichiers, lorsqu'elles sont disponibles (@pxref{Separate Debug Files,,, gdb, Debugging with GDB})."
 
 #. type: Plain text
-#: doc/guix.texi:25488
+#: doc/guix.texi:32271
 msgid "The GNU distribution takes advantage of this by storing debugging information in the @code{lib/debug} sub-directory of a separate package output unimaginatively called @code{debug} (@pxref{Packages with Multiple Outputs}).  Users can choose to install the @code{debug} output of a package when they need it.  For instance, the following command installs the debugging information for the GNU C Library and for GNU Guile:"
 msgstr "La distribution GNU se sert de cela pour stocker les informations de débogage dans le sous-répertoire @code{lib/debug} d'une sortie séparée du paquet appelée sans grande imagination @code{debug} (@pxref{Packages with Multiple Outputs}).  Les utilisateurs peuvent choisir d'installer la sortie @code{debug} d'un paquet lorsqu'ils en ont besoin.  Par exemple, la commande suivante installe les informations de débogage pour la bibliothèque C de GNU et pour GNU Guile :"
 
 #. type: example
-#: doc/guix.texi:25491
+#: doc/guix.texi:32274
 #, no-wrap
 msgid "guix install glibc:debug guile:debug\n"
 msgstr "guix install glibc:debug guile:debug\n"
 
 #. type: Plain text
-#: doc/guix.texi:25497
+#: doc/guix.texi:32280
 msgid "GDB must then be told to look for debug files in the user's profile, by setting the @code{debug-file-directory} variable (consider setting it from the @file{~/.gdbinit} file, @pxref{Startup,,, gdb, Debugging with GDB}):"
 msgstr "On doit ensuite dire à GDB de chercher les fichiers de débogage dans le profil de l'utilisateur, en remplissant la variable @code{debug-file-directory} (vous pourriez aussi l'instancier depuis le fichier @file{~/.gdbinit}, @pxref{Startup,,, gdb, Debugging with GDB}) :"
 
 #. type: example
-#: doc/guix.texi:25500
+#: doc/guix.texi:32283
 #, no-wrap
 msgid "(gdb) set debug-file-directory ~/.guix-profile/lib/debug\n"
 msgstr "(gdb) set debug-file-directory ~/.guix-profile/lib/debug\n"
 
 #. type: Plain text
-#: doc/guix.texi:25504
-msgid "From there on, GDB will pick up debugging information from the @code{.debug} files under @file{~/.guix-profile/lib/debug}."
-msgstr "À partir de maintenant, GDB récupérera les informations de débogage dans les fichiers @code{.debug} de @file{~/.guix-profile/lib/debug}."
+#: doc/guix.texi:32287
+msgid "From there on, GDB will pick up debugging information from the @file{.debug} files under @file{~/.guix-profile/lib/debug}."
+msgstr "À partir de là, GDB récuperera les informations de débogage des fichiers @file{.debug} sous @file{~/.guix-profile/lib/debug}."
 
 #. type: Plain text
-#: doc/guix.texi:25511
+#: doc/guix.texi:32294
 msgid "In addition, you will most likely want GDB to be able to show the source code being debugged.  To do that, you will have to unpack the source code of the package of interest (obtained with @code{guix build --source}, @pxref{Invoking guix build}), and to point GDB to that source directory using the @code{directory} command (@pxref{Source Path, @code{directory},, gdb, Debugging with GDB})."
 msgstr "EN plus, vous voudrez sans doute que GDB puisse montrer le code source débogué.  Pour cela, vous devrez désarchiver le code source du paquet qui vous intéresse (obtenu via @code{guix build --source}, @pxref{Invoking guix build}) et pointer GDB vers ce répertoire des sources avec la commande @code{directory} (@pxref{Source Path, @code{directory},, gdb, Debugging with GDB})."
 
 #. type: Plain text
-#: doc/guix.texi:25520
-msgid "The @code{debug} output mechanism in Guix is implemented by the @code{gnu-build-system} (@pxref{Build Systems}).  Currently, it is opt-in---debugging information is available only for the packages with definitions explicitly declaring a @code{debug} output.  This may be changed to opt-out in the future if our build farm servers can handle the load.  To check whether a package has a @code{debug} output, use @command{guix package --list-available} (@pxref{Invoking guix package})."
-msgstr "Le mécanisme de la sortie @code{debug} dans Guix est implémenté par le @code{gnu-build-system} (@pxref{Build Systems}).  Actuellement, ce n'est pas obligatoire — les informations de débogage sont disponibles uniquement si les définitions déclarent explicitement une sortie @code{debug}.  Cela pourrait être modifié tout en permettant aux paquets de s'en passer dans le futur si nos serveurs de construction peuvent tenir la charge.  Pour vérifier si un paquet a une sortie @code{debug}, utilisez @command{guix package --list-available} (@pxref{Invoking guix package})."
+#: doc/guix.texi:32302
+msgid "The @code{debug} output mechanism in Guix is implemented by the @code{gnu-build-system} (@pxref{Build Systems}).  Currently, it is opt-in---debugging information is available only for the packages with definitions explicitly declaring a @code{debug} output.  To check whether a package has a @code{debug} output, use @command{guix package --list-available} (@pxref{Invoking guix package})."
+msgstr "Le mécanisme de sortie @code{debug} dans Guix est implémenté par le @code{gnu-build-system} (@pxref{Build Systems}).  Actuellement, ce n'est pas obligatoire — les informations de débogage sont disponibles uniquement si les définitions déclarent explicitement une sortie @code{debug}.  Cela pourrait être modifié tout en permettant aux paquets de s'en passer dans le futur si nos serveurs de construction peuvent tenir la charge.  Pour vérifier si un paquet a une sortie @code{debug}, utilisez @command{guix package --list-available} (@pxref{Invoquer guix package})."
+
+#. type: Plain text
+#: doc/guix.texi:32304
+msgid "Read on for how to deal with packages lacking a @code{debug} output."
+msgstr "Continuez à lire pour apprendre comment gérer les paquets qui n'ont pas de sortie @code{debug}."
+
+#. type: Plain text
+#: doc/guix.texi:32316
+msgid "As we saw above, some packages, but not all, provide debugging info in a @code{debug} output.  What can you do when debugging info is missing? The @option{--with-debug-info} option provides a solution to that: it allows you to rebuild the package(s) for which debugging info is missing---and only those---and to graft those onto the application you're debugging.  Thus, while it's not as fast as installing a @code{debug} output, it is relatively inexpensive."
+msgstr "Comme nous l'avons montré, certains paquets, mais pas tous, fournissent des informations de débogage dans une sortie @code{debug}.  Que faire lorsque les informations de débogage sont manquantes ?  L'option @option{--with-debug-info} fournit une solution à cela : il vous permet de reconstruire les paquets pour lesquels les informations de débogages sont manquantes --- et seulement ceux-là --- et les greffe sur les applications que vous déboguez.  Ainsi, bien que ce ne soit pas aussi rapide qu'installer la sortie @code{debug}, ça demande relativement peu de choses."
+
+#. type: Plain text
+#: doc/guix.texi:32321
+msgid "Let's illustrate that.  Suppose you're experiencing a bug in Inkscape and would like to see what's going on in GLib, a library that's deep down in its dependency graph.  As it turns out, GLib does not have a @code{debug} output and the backtrace GDB shows is all sadness:"
+msgstr "Illustrons cela.  Supposons que vous rencontriez un bogue dans Inkscape et que vous souhaitiez voir ce qui se passe dans GLib, une bibliothèque assez loin dans le graphe de dépendances.  Il se trouve que GLib n'a pas de sortie @code{debug} et la trace de débogage de GDB est toute triste :"
+
+#. type: example
+#: doc/guix.texi:32332
+#, no-wrap
+msgid ""
+"(gdb) bt\n"
+"#0  0x00007ffff5f92190 in g_getenv ()\n"
+"   from /gnu/store/@dots{}-glib-2.62.6/lib/libglib-2.0.so.0\n"
+"#1  0x00007ffff608a7d6 in gobject_init_ctor ()\n"
+"   from /gnu/store/@dots{}-glib-2.62.6/lib/libgobject-2.0.so.0\n"
+"#2  0x00007ffff7fe275a in call_init (l=<optimized out>, argc=argc@@entry=1, argv=argv@@entry=0x7fffffffcfd8, \n"
+"    env=env@@entry=0x7fffffffcfe8) at dl-init.c:72\n"
+"#3  0x00007ffff7fe2866 in call_init (env=0x7fffffffcfe8, argv=0x7fffffffcfd8, argc=1, l=<optimized out>)\n"
+"    at dl-init.c:118\n"
+msgstr ""
+"(gdb) bt\n"
+"#0  0x00007ffff5f92190 in g_getenv ()\n"
+"   from /gnu/store/@dots{}-glib-2.62.6/lib/libglib-2.0.so.0\n"
+"#1  0x00007ffff608a7d6 in gobject_init_ctor ()\n"
+"   from /gnu/store/@dots{}-glib-2.62.6/lib/libgobject-2.0.so.0\n"
+"#2  0x00007ffff7fe275a in call_init (l=<optimized out>, argc=argc@@entry=1, argv=argv@@entry=0x7fffffffcfd8, \n"
+"    env=env@@entry=0x7fffffffcfe8) at dl-init.c:72\n"
+"#3  0x00007ffff7fe2866 in call_init (env=0x7fffffffcfe8, argv=0x7fffffffcfd8, argc=1, l=<optimized out>)\n"
+"    at dl-init.c:118\n"
+
+#. type: Plain text
+#: doc/guix.texi:32336
+msgid "To address that, you install Inkscape linked against a variant GLib that contains debug info:"
+msgstr "Pour corriger cela, vous installez Inkscape lié à une variante de GLib qui contient les informations de débogage :"
+
+#. type: Plain text
+#: doc/guix.texi:32342
+msgid "This time, debugging will be a whole lot nicer:"
+msgstr "Cette fois-ci, le débogage a bien plus d'informations :"
+
+#. type: example
+#: doc/guix.texi:32360
+#, no-wrap
+msgid ""
+"$ gdb --args sh -c 'exec inkscape'\n"
+"@dots{}\n"
+"(gdb) b g_getenv\n"
+"Function \"g_getenv\" not defined.\n"
+"Make breakpoint pending on future shared library load? (y or [n]) y\n"
+"Breakpoint 1 (g_getenv) pending.\n"
+"(gdb) r\n"
+"Starting program: /gnu/store/@dots{}-profile/bin/sh -c exec\\ inkscape\n"
+"@dots{}\n"
+"(gdb) bt\n"
+"#0  g_getenv (variable=variable@@entry=0x7ffff60c7a2e \"GOBJECT_DEBUG\") at ../glib-2.62.6/glib/genviron.c:252\n"
+"#1  0x00007ffff608a7d6 in gobject_init () at ../glib-2.62.6/gobject/gtype.c:4380\n"
+"#2  gobject_init_ctor () at ../glib-2.62.6/gobject/gtype.c:4493\n"
+"#3  0x00007ffff7fe275a in call_init (l=<optimized out>, argc=argc@@entry=3, argv=argv@@entry=0x7fffffffd088, \n"
+"    env=env@@entry=0x7fffffffd0a8) at dl-init.c:72\n"
+"@dots{}\n"
+msgstr ""
+"$ gdb --args sh -c 'exec inkscape'\n"
+"@dots{}\n"
+"(gdb) b g_getenv\n"
+"Function \"g_getenv\" not defined.\n"
+"Make breakpoint pending on future shared library load? (y or [n]) y\n"
+"Breakpoint 1 (g_getenv) pending.\n"
+"(gdb) r\n"
+"Starting program: /gnu/store/@dots{}-profile/bin/sh -c exec\\ inkscape\n"
+"@dots{}\n"
+"(gdb) bt\n"
+"#0  g_getenv (variable=variable@@entry=0x7ffff60c7a2e \"GOBJECT_DEBUG\") at ../glib-2.62.6/glib/genviron.c:252\n"
+"#1  0x00007ffff608a7d6 in gobject_init () at ../glib-2.62.6/gobject/gtype.c:4380\n"
+"#2  gobject_init_ctor () at ../glib-2.62.6/gobject/gtype.c:4493\n"
+"#3  0x00007ffff7fe275a in call_init (l=<optimized out>, argc=argc@@entry=3, argv=argv@@entry=0x7fffffffd088, \n"
+"    env=env@@entry=0x7fffffffd0a8) at dl-init.c:72\n"
+"@dots{}\n"
+
+#. type: Plain text
+#: doc/guix.texi:32363
+msgid "Much better!"
+msgstr "Bien mieux !"
+
+#. type: Plain text
+#: doc/guix.texi:32367
+msgid "Note that there can be packages for which @option{--with-debug-info} will not have the desired effect.  @xref{Package Transformation Options, @option{--with-debug-info}}, for more information."
+msgstr "Remarquez qu'il y a des paquets pour lesquels @option{--with-debug-info} n'a pas l'effet désiré.  @xref{Package Transformation Options, @option{--with-debug-info}}, pour plus d'informations."
 
 #. type: cindex
-#: doc/guix.texi:25525
+#: doc/guix.texi:32371
 #, no-wrap
 msgid "security updates"
 msgstr "mises à jour de sécurité"
 
 #. type: Plain text
-#: doc/guix.texi:25534
-msgid "Occasionally, important security vulnerabilities are discovered in software packages and must be patched.  Guix developers try hard to keep track of known vulnerabilities and to apply fixes as soon as possible in the @code{master} branch of Guix (we do not yet provide a ``stable'' branch containing only security updates.)  The @command{guix lint} tool helps developers find out about vulnerable versions of software packages in the distribution:"
+#: doc/guix.texi:32380
+msgid "Occasionally, important security vulnerabilities are discovered in software packages and must be patched.  Guix developers try hard to keep track of known vulnerabilities and to apply fixes as soon as possible in the @code{master} branch of Guix (we do not yet provide a ``stable'' branch containing only security updates).  The @command{guix lint} tool helps developers find out about vulnerable versions of software packages in the distribution:"
 msgstr "Parfois, des vulnérabilités importantes sont découvertes dans les paquets logiciels et doivent être corrigées.  Les développeur·euse·s de Guix essayent de suivre les vulnérabilités connues et d'appliquer des correctifs aussi vite que possible dans la branche @code{master} de Guix (nous n'avons pas encore de branche « stable » contenant seulement des mises à jour de sécurité).  L'outil @command{guix lint} aide à trouver les versions vulnérables des paquets logiciels dans la distribution :"
 
 #. type: smallexample
-#: doc/guix.texi:25541
+#: doc/guix.texi:32387
 #, no-wrap
 msgid ""
 "$ guix lint -c cve\n"
@@ -46996,44 +59778,39 @@ msgstr ""
 "@dots{}\n"
 
 #. type: Plain text
-#: doc/guix.texi:25544
+#: doc/guix.texi:32390
 msgid "@xref{Invoking guix lint}, for more information."
 msgstr "@xref{Invoking guix lint}, pour plus d'informations."
 
-#. type: quotation
-#: doc/guix.texi:25548
-msgid "As of version @value{VERSION}, the feature described below is considered ``beta''."
-msgstr "À la version @value{VERSION}, la fonctionnalité ci-dessous est considérée comme « bêta »."
-
 #. type: Plain text
-#: doc/guix.texi:25558
+#: doc/guix.texi:32399
 msgid "Guix follows a functional package management discipline (@pxref{Introduction}), which implies that, when a package is changed, @emph{every package that depends on it} must be rebuilt.  This can significantly slow down the deployment of fixes in core packages such as libc or Bash, since basically the whole distribution would need to be rebuilt.  Using pre-built binaries helps (@pxref{Substitutes}), but deployment may still take more time than desired."
 msgstr "Guix suit une discipline de gestion de paquets fonctionnelle (@pxref{Introduction}), ce qui implique que lorsqu'un paquet change, @emph{tous les paquets qui en dépendent} doivent être reconstruits. Cela peut grandement ralentir le déploiement de corrections dans les paquets du cœur comme libc ou bash comme presque toute la distribution aurait besoin d'être reconstruite. Cela aide d'utiliser des binaires pré-construits (@pxref{Substituts}), mais le déploiement peut toujours prendre plus de temps de souhaité."
 
 #. type: cindex
-#: doc/guix.texi:25559
+#: doc/guix.texi:32400
 #, no-wrap
 msgid "grafts"
 msgstr "greffes"
 
 #. type: Plain text
-#: doc/guix.texi:25567
+#: doc/guix.texi:32408
 msgid "To address this, Guix implements @dfn{grafts}, a mechanism that allows for fast deployment of critical updates without the costs associated with a whole-distribution rebuild.  The idea is to rebuild only the package that needs to be patched, and then to ``graft'' it onto packages explicitly installed by the user and that were previously referring to the original package.  The cost of grafting is typically very low, and order of magnitudes lower than a full rebuild of the dependency chain."
 msgstr "Pour corriger cela, Guix implémente les @dfn{greffes}, un mécanisme qui permet un déploiement rapide des mises à jour de sécurité critiques sans le coût associé à une reconstruction complète de la distribution.  L'idée est de reconstruire uniquement le paquet qui doit être corrigé puis de le « greffer » sur les paquets qui sont explicitement installés par l'utilisateur et qui se référaient avant au paquet d'origine.  Le coût d'une greffe est typiquement très bas, et plusieurs ordres de grandeurs moins élevé que de reconstruire tout la chaîne de dépendance."
 
 #. type: cindex
-#: doc/guix.texi:25568
+#: doc/guix.texi:32409
 #, no-wrap
 msgid "replacements of packages, for grafts"
 msgstr "remplacement de paquet, pour les greffes"
 
 #. type: Plain text
-#: doc/guix.texi:25574
+#: doc/guix.texi:32415
 msgid "For instance, suppose a security update needs to be applied to Bash.  Guix developers will provide a package definition for the ``fixed'' Bash, say @code{bash-fixed}, in the usual way (@pxref{Defining Packages}).  Then, the original package definition is augmented with a @code{replacement} field pointing to the package containing the bug fix:"
 msgstr "Par exemple, supposons qu'une mise à jour de sécurité doive être appliquée à Bash.  Les développeurs de Guix fourniront une définition de paquet pour le Bash « corrigé », disons @var{bash-fixed}, de la manière habituelle (@pxref{Defining Packages}).  Ensuite, la définition originale du paquet est augmentée avec un champ @code{replacement} qui pointe vers le paquet contenant la correction :"
 
-#. type: example
-#: doc/guix.texi:25581
+#. type: lisp
+#: doc/guix.texi:32422
 #, no-wrap
 msgid ""
 "(define bash\n"
@@ -47049,357 +59826,737 @@ msgstr ""
 "    (replacement bash-fixed)))\n"
 
 #. type: Plain text
-#: doc/guix.texi:25591
+#: doc/guix.texi:32432
 msgid "From there on, any package depending directly or indirectly on Bash---as reported by @command{guix gc --requisites} (@pxref{Invoking guix gc})---that is installed is automatically ``rewritten'' to refer to @code{bash-fixed} instead of @code{bash}.  This grafting process takes time proportional to the size of the package, usually less than a minute for an ``average'' package on a recent machine.  Grafting is recursive: when an indirect dependency requires grafting, then grafting ``propagates'' up to the package that the user is installing."
 msgstr "À partir de maintenant, tout paquet dépendant directement ou indirectement de Bash — rapporté par @command{guix gc --requisites} (@pxref{Invoking guix gc}) — installé est automatiquement « réécrit » pour se référer à @var{bash-fixed} au lieu de @var{bash}.  Ce processus de greffe prend du temps en proportion de la taille du paquet, typiquement moins d'une minute pour un paquet de taille « moyenne » sur une machine récente.  La greffe est récursive : lorsqu'une dépendance indirecte a besoin d'être greffée, la greffe se « propage » jusqu'au paquet que l'utilisateur installe."
 
 #. type: Plain text
-#: doc/guix.texi:25599
+#: doc/guix.texi:32440
 msgid "Currently, the length of the name and version of the graft and that of the package it replaces (@code{bash-fixed} and @code{bash} in the example above) must be equal.  This restriction mostly comes from the fact that grafting works by patching files, including binary files, directly.  Other restrictions may apply: for instance, when adding a graft to a package providing a shared library, the original shared library and its replacement must have the same @code{SONAME} and be binary-compatible."
 msgstr "Actuellement la longueur du nom et la version de la greffe et du paquet qu'il remplace (@var{bash-fixed} et @var{bash} dans l'exemple ci-dessus) doivent être identiques.  Cette restriction vient surtout du fait que la greffe fonctionne en corrigeant les fichiers, dont des fichiers binaires, directement.  D'autres restrictions peuvent apparaître : par exemple, si vous ajoutez une greffe à un paquet fournissant une bibliothèque partagée, la bibliothèque partagée originale et son remplacement doivent avoir le même @code{SONAME} et être compatibles au niveau binaire."
 
 #. type: Plain text
-#: doc/guix.texi:25603
+#: doc/guix.texi:32444
 msgid "The @option{--no-grafts} command-line option allows you to forcefully avoid grafting (@pxref{Common Build Options, @option{--no-grafts}}).  Thus, the command:"
 msgstr "L'option en ligne de commande @option{--no-grafts} vous permet d'éviter les greffes (@pxref{Common Build Options, @option{--no-grafts}}).  Donc la commande :"
 
 #. type: example
-#: doc/guix.texi:25606
+#: doc/guix.texi:32447
 #, no-wrap
 msgid "guix build bash --no-grafts\n"
 msgstr "guix build bash --no-grafts\n"
 
 #. type: Plain text
-#: doc/guix.texi:25610
+#: doc/guix.texi:32451
 msgid "returns the store file name of the original Bash, whereas:"
 msgstr "renvoie le nom de fichier dans les dépôt du Bash original, alors que :"
 
 #. type: example
-#: doc/guix.texi:25613
+#: doc/guix.texi:32454
 #, no-wrap
 msgid "guix build bash\n"
 msgstr "guix build bash\n"
 
 #. type: Plain text
-#: doc/guix.texi:25618
+#: doc/guix.texi:32459
 msgid "returns the store file name of the ``fixed'', replacement Bash.  This allows you to distinguish between the two variants of Bash."
 msgstr "renvoie le nom de fichier du Bash « corrigé » de remplacement.  Cela vous permet de distinguer les deux variantes de Bash."
 
 #. type: Plain text
-#: doc/guix.texi:25621
+#: doc/guix.texi:32462
 msgid "To verify which Bash your whole profile refers to, you can run (@pxref{Invoking guix gc}):"
 msgstr "Pour vérifier à quel Bash votre profil se réfère, vous pouvez lancer (@pxref{Invoking guix gc}) :"
 
 #. type: example
-#: doc/guix.texi:25624
+#: doc/guix.texi:32465
 #, no-wrap
 msgid "guix gc -R `readlink -f ~/.guix-profile` | grep bash\n"
 msgstr "guix gc -R `readlink -f ~/.guix-profile` | grep bash\n"
 
 #. type: Plain text
-#: doc/guix.texi:25629
+#: doc/guix.texi:32470
 msgid "@dots{} and compare the store file names that you get with those above.  Likewise for a complete Guix system generation:"
 msgstr "@dots{} et comparer les noms de fichiers que vous obtenez avec ceux du dessus.  De la même manière pour une génération du système Guix :"
 
 #. type: example
-#: doc/guix.texi:25632
+#: doc/guix.texi:32473
 #, no-wrap
 msgid "guix gc -R `guix system build my-config.scm` | grep bash\n"
 msgstr "guix gc -R `guix system build my-config.scm` | grep bash\n"
 
 #. type: Plain text
-#: doc/guix.texi:25636
+#: doc/guix.texi:32477
 msgid "Lastly, to check which Bash running processes are using, you can use the @command{lsof} command:"
 msgstr "Enfin, pour vérifier quelles processus Bash lancés vous utilisez, vous pouvez utiliser la commande @command{lsof} :"
 
 #. type: example
-#: doc/guix.texi:25639
+#: doc/guix.texi:32480
 #, no-wrap
 msgid "lsof | grep /gnu/store/.*bash\n"
 msgstr "lsof | grep /gnu/store/.*bash\n"
 
 #. type: cindex
-#: doc/guix.texi:25647
+#: doc/guix.texi:32488
 #, no-wrap
 msgid "bootstrapping"
 msgstr "bootstrap"
 
 #. type: Plain text
-#: doc/guix.texi:25657
+#: doc/guix.texi:32498
 msgid "Bootstrapping in our context refers to how the distribution gets built ``from nothing''.  Remember that the build environment of a derivation contains nothing but its declared inputs (@pxref{Introduction}).  So there's an obvious chicken-and-egg problem: how does the first package get built? How does the first compiler get compiled? Note that this is a question of interest only to the curious hacker, not to the regular user, so you can shamelessly skip this section if you consider yourself a ``regular user''."
 msgstr "Dans notre contexte, le bootstrap se réfère à la manière dont la distribution est construite « à partir de rien ».  Rappelez-vous que l'environnement de construction d'une dérivation ne contient rien d'autre que les entrées déclarées (@pxref{Introduction}).  Donc il y a un problème évident de poule et d'œuf : comment le premier paquet est-il construit ?  Comment le premier compilateur est-il construit ?  Remarquez que c'est une question qui intéressera uniquement le hacker curieux, pas l'utilisateur normal, donc vous pouvez sauter cette section sans avoir honte si vous vous considérez comme un « utilisateur normal »."
 
 #. type: cindex
-#: doc/guix.texi:25658 doc/guix.texi:25780
+#: doc/guix.texi:32499 doc/guix.texi:32711
 #, no-wrap
 msgid "bootstrap binaries"
 msgstr "binaires de bootstrap"
 
 #. type: Plain text
-#: doc/guix.texi:25668
+#: doc/guix.texi:32509
 msgid "The GNU system is primarily made of C code, with libc at its core.  The GNU build system itself assumes the availability of a Bourne shell and command-line tools provided by GNU Coreutils, Awk, Findutils, `sed', and `grep'.  Furthermore, build programs---programs that run @code{./configure}, @code{make}, etc.---are written in Guile Scheme (@pxref{Derivations}).  Consequently, to be able to build anything at all, from scratch, Guix relies on pre-built binaries of Guile, GCC, Binutils, libc, and the other packages mentioned above---the @dfn{bootstrap binaries}."
 msgstr "Le système GNU est surtout fait de code C, avec la libc en son cœur.  Le système de construction GNU lui-même suppose la disponibilité d'un shell Bourne et d'outils en ligne de commande fournis par GNU Coreutils, Awk, Findutils, sed et grep.  En plus, les programmes de construction — les programmes qui exécutent @code{./configure}, @code{make} etc — sont écrits en Guile Scheme (@pxref{Derivations}).  En conséquence, pour pouvoir construire quoi que ce soit, de zéro, Guix a besoin de binaire pré-construits de Guile, GCC, Binutils, la libc et des autres paquets mentionnés plus haut — les @dfn{binaires de bootstrap}."
 
 #. type: Plain text
-#: doc/guix.texi:25671
-msgid "These bootstrap binaries are ``taken for granted'', though we can also re-create them if needed (more on that later)."
-msgstr "Ces binaires de bootstrap sont pris comme des acquis, bien qu'on puisse les recréer (ça arrive plus tard)."
+#: doc/guix.texi:32513
+msgid "These bootstrap binaries are ``taken for granted'', though we can also re-create them if needed (@pxref{Preparing to Use the Bootstrap Binaries})."
+msgstr "Ces binaires de bootstrap sont pris comme des acquis, bien qu'on puisse les recréer (ça arrive plus tard) si besoin (@pxref{Preparing to Use the Bootstrap Binaries})."
 
-#. type: unnumberedsec
-#: doc/guix.texi:25672
+#. type: section
+#: doc/guix.texi:32520
 #, no-wrap
-msgid "Preparing to Use the Bootstrap Binaries"
-msgstr "Se préparer à utiliser les binaires de bootstrap"
+msgid "The Reduced Binary Seed Bootstrap"
+msgstr "Le bootstrap avec les sources binaires réduites"
 
 #. type: Plain text
-#: doc/guix.texi:25677
+#: doc/guix.texi:32527
+msgid "Guix---like other GNU/Linux distributions---is traditionally bootstrapped from a set of bootstrap binaries: Bourne shell, command-line tools provided by GNU Coreutils, Awk, Findutils, `sed', and `grep' and Guile, GCC, Binutils, and the GNU C Library (@pxref{Bootstrapping}).  Usually, these bootstrap binaries are ``taken for granted.''"
+msgstr "Guix --- comme les autres distributions GNU/Linux --- est traditionnellement bootstrappé à partir d'un ensemble de binaires de boostrap : Bourne shell, des outils en ligne de commande fournis par GNU Coreutils, Awk, Findutils, « sed » et « grep » et Guile, GCC, Binutils et la bibliothèque C de NU (@pxref{Bootstrapping}).  Habituellement, ces binaires de bootstrap sont « pris pour acquis »."
+
+#. type: Plain text
+#: doc/guix.texi:32533
+msgid "Taking the bootstrap binaries for granted means that we consider them to be a correct and trustworthy ``seed'' for building the complete system.  Therein lies a problem: the combined size of these bootstrap binaries is about 250MB (@pxref{Bootstrappable Builds,,, mes, GNU Mes}).  Auditing or even inspecting these is next to impossible."
+msgstr "Prendre les binaires de bootstrap pour acquis signifie que nous les considérons comme des « sources » corrects et de confiance pour la construction d'un système complet.  Là se trouve le problème : la taille de ces binaires de bootstrap est d'environ 250 Mo (@pxref{Bootstrappable Builds,,, mes, GNU Mes}).  Auditer ou même inspecter ces binaires est presque impossible."
+
+#. type: Plain text
+#: doc/guix.texi:32538
+msgid "For @code{i686-linux} and @code{x86_64-linux}, Guix now features a ``Reduced Binary Seed'' bootstrap @footnote{We would like to say: ``Full Source Bootstrap'' and while we are working towards that goal it would be hyperbole to use that term for what we do now.}."
+msgstr "Pour @code{i686-linux} et @code{x86_64-linux}, Guix propose maintenant un bootstrap avec « source binaire réduite » @footnote{On aimerait pouvoir dire « Bootstrap Source Complet » et même si on travail vers ce but, utiliser ce terme serait une hyperbole pour ce qu'on fait actuellement.}."
+
+#. type: Plain text
+#: doc/guix.texi:32544
+msgid "The Reduced Binary Seed bootstrap removes the most critical tools---from a trust perspective---from the bootstrap binaries: GCC, Binutils and the GNU C Library are replaced by: @code{bootstrap-mescc-tools} (a tiny assembler and linker) and @code{bootstrap-mes} (a small Scheme Interpreter and a C compiler written in Scheme and the Mes C Library, built for TinyCC and for GCC)."
+msgstr "Le bootstrap avec les sources binaires réduites supprime les outils les plus critiques --- du point de vue de la confiance --- des binaires de bootstrap : GCC, Binutils et la bibliothèque C de GNU sont remplacées par : @code{bootstrap-mescc-tools} (un petit assembleur et éditeur des liens) et @code{bootstrap-mes} (un petit interpréteur Scheme et un compilateur C écrit en Scheme et la bibliothèque C de Mes, construite pour TinyCC et pour GCC)."
+
+#. type: Plain text
+#: doc/guix.texi:32549
+msgid "Using these new binary seeds the ``missing'' Binutils, GCC, and the GNU C Library are built from source.  From here on the more traditional bootstrap process resumes.  This approach has reduced the bootstrap binaries in size to about 145MB in Guix v1.1."
+msgstr "À partir de ces nouvelles sources binaires, les Binutils, GCC et la bibliothèque C de GNU sont construits à partir des sources.  À partir de là, les processus de bootstrap plus traditionnel continue.  Cette approche a réduit la taille des binaires de bootstrap à environ 145 Mo dans Guix v1.1."
+
+#. type: Plain text
+#: doc/guix.texi:32557
+msgid "The next step that Guix has taken is to replace the shell and all its utilities with implementations in Guile Scheme, the @emph{Scheme-only bootstrap}.  Gash (@pxref{Gash,,, gash, The Gash manual}) is a POSIX-compatible shell that replaces Bash, and it comes with Gash Utils which has minimalist replacements for Awk, the GNU Core Utilities, Grep, Gzip, Sed, and Tar.  The rest of the bootstrap binary seeds that were removed are now built from source."
+msgstr "La prochaine étape qui Guix prépare est de remplacer le shell et tous ses utilitaires avec des implémentations en Guile Scheme, le @emph{bootstrap Scheme-seulement}.  Gash (@pxref{Gash,,, gash, The Gash manual}) est un shell compatible avec POSIX qui remplace Bash, et il propose Gash Utils qui a des remplaçants minimalistes pour Awk, les utilitaires GNu Core Utilities, Grep, Gzip, Sed et Tar.  Le reste des binaires de bootstrap que nous avons enlevés sont maintenant construits à partir des sources."
+
+#. type: Plain text
+#: doc/guix.texi:32567
+msgid "Building the GNU System from source is currently only possibly by adding some historical GNU packages as intermediate steps@footnote{Packages such as @code{gcc-2.95.3}, @code{binutils-2.14}, @code{glibc-2.2.5}, @code{gzip-1.2.4}, @code{tar-1.22}, and some others.  For details, see @file{gnu/packages/commencement.scm}.}.  As Gash and Gash Utils mature, and GNU packages become more bootstrappable again (e.g., new releases of GNU Sed will also ship as gzipped tarballs again, as alternative to the hard to bootstrap @code{xz}-compression), this set of added packages can hopefully be reduced again."
+msgstr "Construire le Système GNU à partir des sources est actuellement seulement possible en ajoutant certains paquets GNU historiques en tant qu'étapes intermédiaires@footnote{Les paquets comme @code{gcc-2.95.3}, @code{binutils-2.14}, @code{glicb-2.2.5}, @code{gzip-1.2.4}, @code{tar-1.22} et certains autres.  Pour les détails, voir @file{gnu/packages/commencement.scm}.}.  Tandis que Gash et Gash Utils avancent, et que les paquets GNU deviennent de nouveau plus bootstrappables (p.@: ex.@: les nouvelles versions de GNU Sed proposeront de nouveau des archives gzip, en alternative à la compression @code{xz} difficile à boostrapper), on espère pouvoir réduire de nouveau cet ensemble de paquets supplémentaires."
+
+#. type: Plain text
+#: doc/guix.texi:32571
+msgid "The graph below shows the resulting dependency graph for @code{gcc-core-mesboot0}, the bootstrap compiler used for the traditional bootstrap of the rest of the Guix System."
+msgstr "Le graphe ci-dessous montre le graphe de dépendance résultant pour @code{gcc-core-mesboot}, le compilateur de bootstrap utilisé pour le bootstrap traditionnel du reste du système Guix."
+
+#. type: Plain text
+#: doc/guix.texi:32574
+msgid "@image{images/gcc-core-mesboot0-graph,6in,,Dependency graph of gcc-core-mesboot0}"
+msgstr "@image{images/gcc-core-mesboot0-graph,6in,,Graphe de dépendance de gcc-core-mesboot0}"
+
+#. type: Plain text
+#: doc/guix.texi:32581
+msgid "The only significant binary bootstrap seeds that remain@footnote{ Ignoring the 68KB @code{mescc-tools}; that will be removed later, together with @code{mes}.} are a Scheme intepreter and a Scheme compiler: GNU Mes and GNU Guile@footnote{Not shown in this graph are the static binaries for @file{bash}, @code{tar}, and @code{xz} that are used to get Guile running.}."
+msgstr "La seule source binaire restant@footnote{En ignorant @code{mescc-tools} qui fait 68 Ko ; qui sera supprimée plus tard, avec @code{mes}.} sont un interpréteur Scheme et un compilateur Scheme : GNU Mes et GNU Guile@footnote{Ce graphe ne montre pas les binaires statiques pour @file{bash}, @code{tar} et @code{xz} utilisés pour pouvoir lancer Guile.}."
+
+#. type: Plain text
+#: doc/guix.texi:32584
+msgid "This further reduction has brought down the size of the binary seed to about 60MB for @code{i686-linux} and @code{x86_64-linux}."
+msgstr "Cette réduction supplémentaire a réduit la taille du bootstrap à environ 60 Mo pour @code{i686-linux} et @code{x86_64-linux}."
+
+#. type: Plain text
+#: doc/guix.texi:32589
+msgid "Work is ongoing to remove all binary blobs from our free software bootstrap stack, working towards a Full Source Bootstrap.  Also ongoing is work to bring these bootstraps to the @code{arm-linux} and @code{aarch64-linux} architectures and to the Hurd."
+msgstr "Le travail continue pour supprimer tous les blobs binaires de notre pile de bootstrap libre, en essayant d'atteindre un bootstrap complet par les sources.  Le travail continue aussi pour apporter ces bootstraps aux architectures @code{arm-linux} et @code{aarch64-linux} et au Hurd."
+
+#. type: Plain text
+#: doc/guix.texi:32593
+msgid "If you are interested, join us on @samp{#bootstrappable} on the Freenode IRC network or discuss on @email{bug-mes@@gnu.org} or @email{gash-devel@@nongnu.org}."
+msgstr "Si vous êtes intéressé·e, rejoignez-nous sur @samp{#bootstrappable} sur le réseau IRC Freenode our discutez-en sur @email{bug-mes@@gnu.org} ou @email{gash-devel@@nongnu.org}."
+
+#. type: Plain text
+#: doc/guix.texi:32600
 msgid "@image{images/bootstrap-graph,6in,,Dependency graph of the early bootstrap derivations}"
 msgstr "@image{images/bootstrap-graph,6in,,Graphe de dépendance des premières dérivations de bootstrap}"
 
 #. type: Plain text
-#: doc/guix.texi:25682
+#: doc/guix.texi:32605
 msgid "The figure above shows the very beginning of the dependency graph of the distribution, corresponding to the package definitions of the @code{(gnu packages bootstrap)} module.  A similar figure can be generated with @command{guix graph} (@pxref{Invoking guix graph}), along the lines of:"
 msgstr "La figure ci-dessus montre le tout début du graphe de dépendances de la distribution, correspondant aux définitions des paquets du module @code{(gnu packages bootstrap)}.  Une figure similaire peut être générée avec @command{guix graph} (@pxref{Invoking guix graph}),  de cette manière :"
 
 #. type: example
-#: doc/guix.texi:25687
+#: doc/guix.texi:32610
 #, no-wrap
 msgid ""
 "guix graph -t derivation \\\n"
 "  -e '(@@@@ (gnu packages bootstrap) %bootstrap-gcc)' \\\n"
-"  | dot -Tps > t.ps\n"
+"  | dot -Tps > gcc.ps\n"
 msgstr ""
 "guix graph -t derivation \\\n"
 "  -e '(@@@@ (gnu packages bootstrap) %bootstrap-gcc)' \\\n"
-"  | dot -Tps > t.ps\n"
+"  | dot -Tps > gcc.ps\n"
+
+#. type: Plain text
+#: doc/guix.texi:32613
+msgid "or, for the further Reduced Binary Seed bootstrap"
+msgstr "ou, pour le bootstrap avec les sources binaires plus réduites"
+
+#. type: example
+#: doc/guix.texi:32618
+#, no-wrap
+msgid ""
+"guix graph -t derivation \\\n"
+"  -e '(@@@@ (gnu packages bootstrap) %bootstrap-mes)' \\\n"
+"  | dot -Tps > mes.ps\n"
+msgstr ""
+"guix graph -t derivation \\\n"
+"  -e '(@@@@ (gnu packages bootstrap) %bootstrap-mes)' \\\n"
+"  | dot -Tps > mes.ps\n"
 
 #. type: Plain text
-#: doc/guix.texi:25696
+#: doc/guix.texi:32627
 msgid "At this level of detail, things are slightly complex.  First, Guile itself consists of an ELF executable, along with many source and compiled Scheme files that are dynamically loaded when it runs.  This gets stored in the @file{guile-2.0.7.tar.xz} tarball shown in this graph.  This tarball is part of Guix's ``source'' distribution, and gets inserted into the store with @code{add-to-store} (@pxref{The Store})."
 msgstr "À ce niveau de détails, les choses sont légèrement complexes.  Tout d'abord, Guile lui-même consiste en an exécutable ELF, avec plusieurs fichiers Scheme sources et compilés qui sont chargés dynamiquement quand il est exécuté.  Cela est stocké dans l'archive @file{guile-2.0.7.tar.xz} montrée dans ce graphe.  Cette archive fait parti de la distribution « source » de Guix, et est insérée dans le dépôt avec @code{add-to-store} (@pxref{The Store})."
 
 #. type: Plain text
-#: doc/guix.texi:25705
+#: doc/guix.texi:32636
 msgid "But how do we write a derivation that unpacks this tarball and adds it to the store? To solve this problem, the @code{guile-bootstrap-2.0.drv} derivation---the first one that gets built---uses @code{bash} as its builder, which runs @code{build-bootstrap-guile.sh}, which in turn calls @code{tar} to unpack the tarball.  Thus, @file{bash}, @file{tar}, @file{xz}, and @file{mkdir} are statically-linked binaries, also part of the Guix source distribution, whose sole purpose is to allow the Guile tarball to be unpacked."
 msgstr "Mais comment écrire une dérivation qui décompresse cette archive et l'ajoute au dépôt ?  Pour résoudre ce problème, la dérivation @code{guile-bootstrap-2.0.drv} — la première qui est construite — utilise @code{bash} comme constructeur, qui lance @code{build-bootstrap-guile.sh}, qui à son tour appelle @code{tar} pour décompresser l'archive.  Ainsi, @file{bash}, @file{tar}, @file{xz} et @file{mkdir} sont des binaires liés statiquement, qui font aussi partie de la distribution source de Guix, dont le seul but est de permettre à l'archive de Guile d'être décompressée."
 
 #. type: Plain text
-#: doc/guix.texi:25717
-msgid "Once @code{guile-bootstrap-2.0.drv} is built, we have a functioning Guile that can be used to run subsequent build programs.  Its first task is to download tarballs containing the other pre-built binaries---this is what the @code{.tar.xz.drv} derivations do.  Guix modules such as @code{ftp-client.scm} are used for this purpose.  The @code{module-import.drv} derivations import those modules in a directory in the store, using the original layout.  The @code{module-import-compiled.drv} derivations compile those modules, and write them in an output directory with the right layout.  This corresponds to the @code{#:modules} argument of @code{build-expression->derivation} (@pxref{Derivations})."
-msgstr "Une fois que @code{guile-bootstrap-2.0.drv} est construit, nous avons un Guile fonctionnel qui peut être utilisé pour exécuter les programmes de construction suivants.  Sa première tâche consiste à télécharger les archives contenant les autres binaires pré-construits — c'est ce que la dérivation @code{.tar.xz.drv} fait.  Les modules Guix comme @code{ftp-client.scm} sont utilisés pour cela.  Les dérivations @code{module-import.drv} importent ces modules dans un répertoire dans le dépôt, en utilisant la disposition d'origine.  Les dérivations @code{module-import-compiled.drv} compilent ces modules, et les écrivent dans un répertoire de sortie avec le bon agencement.  Cela correspond à l'argument @code{#:modules} de @code{build-expression->derivation} (@pxref{Derivations})."
+#: doc/guix.texi:32648
+msgid "Once @code{guile-bootstrap-2.0.drv} is built, we have a functioning Guile that can be used to run subsequent build programs.  Its first task is to download tarballs containing the other pre-built binaries---this is what the @file{.tar.xz.drv} derivations do.  Guix modules such as @code{ftp-client.scm} are used for this purpose.  The @code{module-import.drv} derivations import those modules in a directory in the store, using the original layout.  The @code{module-import-compiled.drv} derivations compile those modules, and write them in an output directory with the right layout.  This corresponds to the @code{#:modules} argument of @code{build-expression->derivation} (@pxref{Derivations})."
+msgstr "Une fois que @code{guile-bootstrap-2.0.drv} est construit, nous avons un Guile fonctionnel qui peut être utilisé pour exécuter les programmes de construction suivants.  Sa première tâche consiste à télécharger les archives contenant les autres binaires pré-construits — c'est ce que la dérivation @code{.tar.xz.drv} accomplit.  Les modules Guix comme @code{ftp-client.scm} sont utilisés pour cela.  Les dérivations @code{module-import.drv} importent ces modules dans un répertoire dans le dépôt, en utilisant la disposition d'origine.  Les dérivations @code{module-import-compiled.drv} compilent ces modules, et les écrivent dans un répertoire de sortie avec le bon agencement.  Cela correspond à l'argument @code{#:modules} de @code{build-expression->derivation} (@pxref{Derivations})."
 
 #. type: Plain text
-#: doc/guix.texi:25721
-msgid "Finally, the various tarballs are unpacked by the derivations @code{gcc-bootstrap-0.drv}, @code{glibc-bootstrap-0.drv}, etc., at which point we have a working C tool chain."
-msgstr "Enfin, les diverses archives sont décompressées par les dérivations @code{gcc-bootstrap-0.drv}, @code{glibc-bootstrap-0.drv}, etc, à partir de quoi nous avons une chaîne de compilation C fonctionnelle."
+#: doc/guix.texi:32653
+msgid "Finally, the various tarballs are unpacked by the derivations @code{gcc-bootstrap-0.drv}, @code{glibc-bootstrap-0.drv}, or @code{bootstrap-mes-0.drv} and @code{bootstrap-mescc-tools-0.drv}, at which point we have a working C tool chain."
+msgstr "Enfin, les diverses archives sont décompressées par les dérivations @code{gcc-bootstrap-0.drv}, @code{glibc-bootstrap-0.drv}, ou @code{bootstrap-mes-0.drv} et @code{bootstrap-mescc-tools-0.drv}, à ce stade, nous avons une chaîne d'outils C qui fonctionne."
 
 #. type: unnumberedsec
-#: doc/guix.texi:25723
+#: doc/guix.texi:32654
 #, no-wrap
 msgid "Building the Build Tools"
 msgstr "Construire les outils de construction"
 
 #. type: Plain text
-#: doc/guix.texi:25732
+#: doc/guix.texi:32663
 msgid "Bootstrapping is complete when we have a full tool chain that does not depend on the pre-built bootstrap tools discussed above.  This no-dependency requirement is verified by checking whether the files of the final tool chain contain references to the @file{/gnu/store} directories of the bootstrap inputs.  The process that leads to this ``final'' tool chain is described by the package definitions found in the @code{(gnu packages commencement)} module."
 msgstr "Le bootstrap est complet lorsque nous avons une chaîne d'outils complète qui ne dépend pas des outils de bootstrap pré-construits dont on vient de parler.  Ce pré-requis d'indépendance est vérifié en s'assurant que les fichiers de la chaîne d'outil finale ne contiennent pas de référence vers les répertoires @file{/gnu/store} des entrées de bootstrap.  Le processus qui mène à cette chaîne d'outils « finale » est décrit par les définitions de paquets qui se trouvent dans le module @code{(gnu packages commencement)}."
 
 #. type: Plain text
-#: doc/guix.texi:25739
+#: doc/guix.texi:32670
 msgid "The @command{guix graph} command allows us to ``zoom out'' compared to the graph above, by looking at the level of package objects instead of individual derivations---remember that a package may translate to several derivations, typically one derivation to download its source, one to build the Guile modules it needs, and one to actually build the package from source.  The command:"
 msgstr "La commande @command{guix graph} nous permet de « dézoomer » comparé au graphe précédent, en regardant au niveau des objets de paquets plutôt que des dérivations individuelles — rappelez-vous qu'un paquet peut se traduire en plusieurs dérivations, typiquement une dérivation pour télécharger ses sources, une pour les modules Guile dont il a besoin et une pour effectivement compiler le paquet depuis les sources.  La commande :"
 
 #. type: example
-#: doc/guix.texi:25744
+#: doc/guix.texi:32675
 #, no-wrap
 msgid ""
 "guix graph -t bag \\\n"
 "  -e '(@@@@ (gnu packages commencement)\n"
-"          glibc-final-with-bootstrap-bash)' | dot -Tps > t.ps\n"
+"          glibc-final-with-bootstrap-bash)' | xdot -\n"
 msgstr ""
 "guix graph -t bag \\\n"
 "  -e '(@@@@ (gnu packages commencement)\n"
 "          glibc-final-with-bootstrap-bash)' | dot -Tps > t.ps\n"
 
 #. type: Plain text
-#: doc/guix.texi:25751
-msgid "produces the dependency graph leading to the ``final'' C library@footnote{You may notice the @code{glibc-intermediate} label, suggesting that it is not @emph{quite} final, but as a good approximation, we will consider it final.}, depicted below."
-msgstr "produit le graphe de dépendances qui mène à la bibliothèque C « finale »@footnote{Vous remarquerez qu'elle s'appelle @code{glibc-intermediate}, ce qui suggère qu'elle n'est pas @emph{tout à fait} finale, mais c'est une bonne approximation tout de même.}, que voici :"
+#: doc/guix.texi:32682
+msgid "displays the dependency graph leading to the ``final'' C library@footnote{You may notice the @code{glibc-intermediate} label, suggesting that it is not @emph{quite} final, but as a good approximation, we will consider it final.}, depicted below."
+msgstr "produit le graphe de dépendances qui mène à la bibliothèque C « finale »@footnote{Vous remarquerez qu'elle s'appelle @code{glibc-intermediate}, ce qui suggère qu'elle n'est pas @emph{tout à fait} finale, mais c'est une bonne approximation tout de même.}, représentée ci-dessous."
 
 #. type: Plain text
-#: doc/guix.texi:25753
+#: doc/guix.texi:32684
 msgid "@image{images/bootstrap-packages,6in,,Dependency graph of the early packages}"
 msgstr "@image{images/bootstrap-packages,6in,,Graphe de dépendance des premiers paquets}"
 
 #. type: Plain text
-#: doc/guix.texi:25759
+#: doc/guix.texi:32690
 msgid "The first tool that gets built with the bootstrap binaries is GNU@tie{}Make---noted @code{make-boot0} above---which is a prerequisite for all the following packages.  From there Findutils and Diffutils get built."
 msgstr "Le premier outil construit avec les binaires de bootstrap est GNU@tie{}Make — appelé @code{make-boot0} ci-dessus — qui est un prérequis de tous les paquets suivants .  Ensuite, Findutils et Diffutils sont construits."
 
 #. type: Plain text
-#: doc/guix.texi:25764
-msgid "Then come the first-stage Binutils and GCC, built as pseudo cross tools---i.e., with @code{--target} equal to @code{--host}.  They are used to build libc.  Thanks to this cross-build trick, this libc is guaranteed not to hold any reference to the initial tool chain."
-msgstr "Ensuite vient la première passe de Binutils et GCC, construits comme des pseudo outils croisés — c.-à-d.@: dont @code{--target} égal à @code{--host}.  Ils sont utilisés pour construire la libc.  Grâce à cette astuce de compilation croisée, la libc est garantie de ne contenir aucune référence à la chaîne d'outils initiale."
+#: doc/guix.texi:32695
+msgid "Then come the first-stage Binutils and GCC, built as pseudo cross tools---i.e., with @option{--target} equal to @option{--host}.  They are used to build libc.  Thanks to this cross-build trick, this libc is guaranteed not to hold any reference to the initial tool chain."
+msgstr "Ensuite vient la première passe de Binutils et GCC, construits comme des pseudo outils croisés — c.-à-d.@: dont @option{--target} est égal à @code{--host}.  Ils sont utilisés pour construire la libc.  Grâce à cette astuce de compilation croisée, cette libc est garantie de ne contenir aucune référence à la chaîne d'outils initiale."
 
 #. type: Plain text
-#: doc/guix.texi:25770
-msgid "From there the final Binutils and GCC (not shown above) are built.  GCC uses @code{ld} from the final Binutils, and links programs against the just-built libc.  This tool chain is used to build the other packages used by Guix and by the GNU Build System: Guile, Bash, Coreutils, etc."
-msgstr "À partir de là, les Bintulis et GCC finaux (pas visibles ci-dessus) sont construits.  GCC utilise @code{ld} du Binutils final et lie les programme avec la libc qui vient d'être construite.  Cette chaîne d'outils est utilisée pour construire les autres paquets utilisés par Guix et par le système de construction de GNU : Guile, Bash, Coreutils, etc."
+#: doc/guix.texi:32701
+msgid "From there the final Binutils and GCC (not shown above) are built.  GCC uses @command{ld} from the final Binutils, and links programs against the just-built libc.  This tool chain is used to build the other packages used by Guix and by the GNU Build System: Guile, Bash, Coreutils, etc."
+msgstr "À partir de là, les Bintulis  finaux et GCC (non visibles ci-dessus) sont construits.  GCC utilise @command{ld} du Binutils final et lie les programme avec la libc qui vient d'être construite.  Cette chaîne d'outils est utilisée pour construire les autres paquets utilisés par Guix et par le système de construction de GNU : Guile, Bash, Coreutils, etc."
 
 #. type: Plain text
-#: doc/guix.texi:25776
+#: doc/guix.texi:32707
 msgid "And voilà! At this point we have the complete set of build tools that the GNU Build System expects.  These are in the @code{%final-inputs} variable of the @code{(gnu packages commencement)} module, and are implicitly used by any package that uses @code{gnu-build-system} (@pxref{Build Systems, @code{gnu-build-system}})."
 msgstr "Et voilà !  À partir de là nous avons l'ensemble complet des outils auxquels s'attend le système de construction GNU.  Ils sont dans la variable @code{%final-inputs} du module @code{(gnu packages commencement)} et sont implicitement utilisés par tous les paquets qui utilisent le @code{gnu-build-system} (@pxref{Build Systems, @code{gnu-build-system}})."
 
 #. type: unnumberedsec
-#: doc/guix.texi:25778
+#: doc/guix.texi:32709
 #, no-wrap
 msgid "Building the Bootstrap Binaries"
 msgstr "Construire les binaires de bootstrap"
 
 #. type: Plain text
-#: doc/guix.texi:25785
+#: doc/guix.texi:32716
 msgid "Because the final tool chain does not depend on the bootstrap binaries, those rarely need to be updated.  Nevertheless, it is useful to have an automated way to produce them, should an update occur, and this is what the @code{(gnu packages make-bootstrap)} module provides."
 msgstr "Comme la chaîne d'outils finale ne dépend pas des binaires de bootstrap, ils ont rarement besoin d'être mis à jour.  Cependant, il est utile d'avoir une manière de faire cela automatiquement, dans le cas d'une mise à jour et c'est ce que le module @code{(gnu packages make-bootstrap)} fournit."
 
 #. type: Plain text
-#: doc/guix.texi:25789
-msgid "The following command builds the tarballs containing the bootstrap binaries (Guile, Binutils, GCC, libc, and a tarball containing a mixture of Coreutils and other basic command-line tools):"
-msgstr "La commande suivante construit les archives contenant les binaires de bootstrap (Guile, Binutils, GCC, la libc et une archive contenant un mélange de Coreutils et d'autres outils en ligne de commande de base) :"
+#: doc/guix.texi:32722
+msgid "The following command builds the tarballs containing the bootstrap binaries (Binutils, GCC, glibc, for the traditional bootstrap and linux-libre-headers, bootstrap-mescc-tools, bootstrap-mes for the Reduced Binary Seed bootstrap, and Guile, and a tarball containing a mixture of Coreutils and other basic command-line tools):"
+msgstr "La commande suivante construit les archives contenant les binaires bootstrap (Binutils, GCC, glibc, pour le bootstrap traditionnel et les linux-libre-headers, bootstrap-mescc-tools, bootstrap-mes pour le bootstrap Reduced Binary Seed, et Guile, et une archive contenant un mélange de Coreutils et d'autres outils de base de la ligne de commande) :"
 
 #. type: example
-#: doc/guix.texi:25792
+#: doc/guix.texi:32725
 #, no-wrap
 msgid "guix build bootstrap-tarballs\n"
 msgstr "guix build bootstrap-tarballs\n"
 
 #. type: Plain text
-#: doc/guix.texi:25797
+#: doc/guix.texi:32730
 msgid "The generated tarballs are those that should be referred to in the @code{(gnu packages bootstrap)} module mentioned at the beginning of this section."
 msgstr "Les archives générées sont celles qui devraient être référencées dans le module @code{(gnu packages bootstrap)} au début de cette section."
 
 #. type: Plain text
-#: doc/guix.texi:25803
+#: doc/guix.texi:32736
 msgid "Still here? Then perhaps by now you've started to wonder: when do we reach a fixed point? That is an interesting question! The answer is unknown, but if you would like to investigate further (and have significant computational and storage resources to do so), then let us know."
 msgstr "Vous êtes toujours là ?  Alors peut-être que maintenant vous vous demandez, quand est-ce qu'on atteint un point fixe ?  C'est une question intéressante !  La réponse est inconnue, mais si vous voulez enquêter plus profondément (et que vous avez les ressources en puissance de calcul et en capacité de stockage pour cela), dites-le nous."
 
 #. type: unnumberedsec
-#: doc/guix.texi:25804
+#: doc/guix.texi:32737
 #, no-wrap
 msgid "Reducing the Set of Bootstrap Binaries"
 msgstr "Réduire l'ensemble des binaires de bootstrap"
 
 #. type: Plain text
-#: doc/guix.texi:25812
-msgid "Our bootstrap binaries currently include GCC, Guile, etc.  That's a lot of binary code! Why is that a problem? It's a problem because these big chunks of binary code are practically non-auditable, which makes it hard to establish what source code produced them.  Every unauditable binary also leaves us vulnerable to compiler backdoors as described by Ken Thompson in the 1984 paper @emph{Reflections on Trusting Trust}."
-msgstr "Nous binaires de bootstrap incluent actuellement GCC, Guile, etc.  C'est beaucoup de code binaire !  Pourquoi est-ce un problème ?  C'est un problème parce que ces gros morceaux de code binaire sont en pratique impossibles à auditer, ce qui fait qu'il est difficile d'établir quel code source les a produit.  Chaque binaire non auditable nous rend aussi vulnérable à des portes dérobées dans les compilateurs comme le décrit Ken Thompson dans le papier de 1984 @emph{Reflections on Trusting Trust}."
+#: doc/guix.texi:32745
+msgid "Our traditional bootstrap includes GCC, GNU Libc, Guile, etc.  That's a lot of binary code! Why is that a problem? It's a problem because these big chunks of binary code are practically non-auditable, which makes it hard to establish what source code produced them.  Every unauditable binary also leaves us vulnerable to compiler backdoors as described by Ken Thompson in the 1984 paper @emph{Reflections on Trusting Trust}."
+msgstr "Nos binaires de bootstrap incluent actuellement  GCC, GNU Libc, Guile, etc.  C'est beaucoup de code binaire !  Pourquoi est-ce un problème ?  C'est un problème parce que ces gros morceaux de code binaire sont en pratique impossibles à auditer, ce qui fait qu'il est difficile d'établir quel code source les a produit.  Chaque binaire non vérifiable nous rend également vulnérables aux portes dérobées des compilateurs, comme le décrit Ken Thompson dans le document @emph{Reflections on Trusting Trust} de 1984."
 
 #. type: Plain text
-#: doc/guix.texi:25818
+#: doc/guix.texi:32751
 msgid "This is mitigated by the fact that our bootstrap binaries were generated from an earlier Guix revision.  Nevertheless it lacks the level of transparency that we get in the rest of the package dependency graph, where Guix always gives us a source-to-binary mapping.  Thus, our goal is to reduce the set of bootstrap binaries to the bare minimum."
 msgstr "Cela est rendu moins inquiétant par le fait que les binaires de bootstrap ont été générés par une révision antérieure de Guix.  Cependant, il leur manque le niveau de transparence que l'on obtient avec le reste des paquets du graphe de dépendance, où Guix nous donne toujours une correspondance source-binaire.  Ainsi, notre but est de réduire l'ensemble des binaires de bootstrap au minimum."
 
 #. type: Plain text
-#: doc/guix.texi:25824
-msgid "The @uref{http://bootstrappable.org, Bootstrappable.org web site} lists on-going projects to do that.  One of these is about replacing the bootstrap GCC with a sequence of assemblers, interpreters, and compilers of increasing complexity, which could be built from source starting from a simple and auditable assembler.  Your help is welcome!"
-msgstr "Le @uref{http://bootstrappable.org, site web Bootstrappable.org} liste les projets en cours à ce sujet.  L'un d'entre eux parle de remplacer le GCC de bootstrap par une série d'assembleurs, d'interpréteurs et de compilateurs d'une complexité croissante, qui pourraient être construits à partir des sources à partir d'un assembleur simple et auditable.  Votre aide est la bienvenue !"
+#: doc/guix.texi:32757
+msgid "The @uref{https://bootstrappable.org, Bootstrappable.org web site} lists on-going projects to do that.  One of these is about replacing the bootstrap GCC with a sequence of assemblers, interpreters, and compilers of increasing complexity, which could be built from source starting from a simple and auditable assembler."
+msgstr "Le @uref{http://bootstrappable.org, site web Bootstrappable.org} liste les projets en cours à ce sujet.  L'un d'entre eux parle de remplacer le GCC de bootstrap par une série d'assembleurs, d'interpréteurs et de compilateurs d'une complexité croissante, qui pourraient être construits à partir des sources à partir d'un assembleur simple et auditable.  Votre aide est (bien sûr !) la bienvenue."
+
+#. type: Plain text
+#: doc/guix.texi:32766
+msgid "Our first major achievement is the replacement of of GCC, the GNU C Library and Binutils by MesCC-Tools (a simple hex linker and macro assembler) and Mes (@pxref{Top, GNU Mes Reference Manual,, mes, GNU Mes}, a Scheme interpreter and C compiler in Scheme).  Neither MesCC-Tools nor Mes can be fully bootstrapped yet and thus we inject them as binary seeds.  We call this the Reduced Binary Seed bootstrap, as it has halved the size of our bootstrap binaries! Also, it has eliminated the C compiler binary; i686-linux and x86_64-linux Guix packages are now bootstrapped without any binary C compiler."
+msgstr "Notre premier grand succès est le remplacement de GCC, de la bibliothèque C de GNU et de Binutils par MesCC-Tools (un éditeur de lien hexadécimal et un macro assembleur) et Mes (@pxref{Top, GNU Mes Reference Manual,, mes, GNU Mes}, un interpréteur Scheme et un compilateur C écrit en Scheme).  Ni MesCC-Tools ni Mes ne peuvent encore être bootstrappés et donc nous les injectons comme des sources binaires.  Nous appelons cela le bootstrap avec les sources binaires réduites, comme cela a réduit de moitié la taille de nous binaires de bootstrap !  Aussi, cela a éliminé le compilateur C binaire ; les paquets i686-linux et x86_64-linux de Guix sont maintenant bootstrappé sans aucun compilateur C binaire."
+
+#. type: Plain text
+#: doc/guix.texi:32769
+msgid "Work is ongoing to make MesCC-Tools and Mes fully bootstrappable and we are also looking at any other bootstrap binaries.  Your help is welcome!"
+msgstr "Le travail continue pour rendre MesCC-Tools et Mes complètement bootstrappables et nous cherchons aussi comment remplacer tout autre binaire de bootstrap.  votre aide est la bienvenue !"
 
 #. type: chapter
-#: doc/guix.texi:25827
+#: doc/guix.texi:32771
 #, no-wrap
 msgid "Porting to a New Platform"
 msgstr "Porter vers une nouvelle plateforme"
 
 #. type: Plain text
-#: doc/guix.texi:25836
+#: doc/guix.texi:32780
 msgid "As discussed above, the GNU distribution is self-contained, and self-containment is achieved by relying on pre-built ``bootstrap binaries'' (@pxref{Bootstrapping}).  These binaries are specific to an operating system kernel, CPU architecture, and application binary interface (ABI).  Thus, to port the distribution to a platform that is not yet supported, one must build those bootstrap binaries, and update the @code{(gnu packages bootstrap)} module to use them on that platform."
 msgstr "Comme nous en avons discuté plus haut, la distribution GNU est auto-contenue, et cela est possible en se basant sur des « binaires de bootstrap » pré-construits (@pxref{Bootstrapping}).  Ces binaires sont spécifiques au noyau de système d'exploitation, à l'architecture CPU et à l'interface applicative binaire (ABI).  Ainsi, pour porter la distribution sur une plateforme qui n'est pas encore supportée, on doit construire ces binaires de bootstrap et mettre à jour le module @code{(gnu packages bootstrap)} pour les utiliser sur cette plateforme."
 
 #. type: Plain text
-#: doc/guix.texi:25841
+#: doc/guix.texi:32785
 msgid "Fortunately, Guix can @emph{cross compile} those bootstrap binaries.  When everything goes well, and assuming the GNU tool chain supports the target platform, this can be as simple as running a command like this one:"
 msgstr "Heureusement, Guix peut effectuer une @emph{compilation croisée} de ces binaires de bootstrap.  Lorsque tout va bien, et en supposant que la chaîne d'outils GNU supporte la plateforme cible, cela peut être aussi simple que de lancer une commande comme ceci :"
 
 #. type: example
-#: doc/guix.texi:25844
+#: doc/guix.texi:32788
 #, no-wrap
 msgid "guix build --target=armv5tel-linux-gnueabi bootstrap-tarballs\n"
 msgstr "guix build --target=armv5tel-linux-gnueabi bootstrap-tarballs\n"
 
 #. type: Plain text
-#: doc/guix.texi:25851
+#: doc/guix.texi:32795
 msgid "For this to work, the @code{glibc-dynamic-linker} procedure in @code{(gnu packages bootstrap)} must be augmented to return the right file name for libc's dynamic linker on that platform; likewise, @code{system->linux-architecture} in @code{(gnu packages linux)} must be taught about the new platform."
 msgstr "Pour que cela fonctione, la procédure @code{glibc-dynamic-linker} dans @code{(gnu packages bootstrap)} doit être augmentée pour renvoyer le bon nom de fichier pour l'éditeur de lien dynamique de la libc sur cette plateforme ; de même, il faut indiquer cette nouvelle platefore à @code{system->linux-architecture} dans @code{(gnu packages linux)}."
 
 #. type: Plain text
-#: doc/guix.texi:25860
+#: doc/guix.texi:32804
 msgid "Once these are built, the @code{(gnu packages bootstrap)} module needs to be updated to refer to these binaries on the target platform.  That is, the hashes and URLs of the bootstrap tarballs for the new platform must be added alongside those of the currently supported platforms.  The bootstrap Guile tarball is treated specially: it is expected to be available locally, and @file{gnu/local.mk} has rules to download it for the supported architectures; a rule for the new platform must be added as well."
 msgstr "Une fois qu'ils sont construits, le module @code{(gnu packages bootstrap)} doit être mis à jour pour se référer à ces binaires sur la plateforme cible.  C'est à dire que les hashs et les URL des archives de bootstrap pour la nouvelle plateforme doivent être ajoutés avec ceux des plateformes actuellement supportées.  L'archive de bootstrap de Guile est traitée séparément : elle doit être disponible localement, et @file{gnu/local.mk} a une règle pour la télécharger pour les architectures supportées ; vous devez également ajouter une règle pour la nouvelle plateforme."
 
 #. type: Plain text
-#: doc/guix.texi:25869
-msgid "In practice, there may be some complications.  First, it may be that the extended GNU triplet that specifies an ABI (like the @code{eabi} suffix above) is not recognized by all the GNU tools.  Typically, glibc recognizes some of these, whereas GCC uses an extra @code{--with-abi} configure flag (see @code{gcc.scm} for examples of how to handle this).  Second, some of the required packages could fail to build for that platform.  Lastly, the generated binaries could be broken for some reason."
-msgstr "En pratique, il peut y avoir des complications.  Déjà, il se peut que le triplet GNU étendu qui spécifie l'ABI (comme le suffixe @code{eabi} ci-dessus) ne soit pas reconnu par tous les outils GNU.  Typiquement, la glibc en reconnais certains, alors que GCC utilise un drapeau de configure @code{--with-abi} supplémentaire (voir @code{gcc.scm} pour trouver des exemples où ce cas est géré).  Ensuite, certains des paquets requis pourraient échouer à se construire pour cette plateforme.  Enfin, les binaires générés pourraient être cassé pour une raison ou une autre."
+#: doc/guix.texi:32813
+msgid "In practice, there may be some complications.  First, it may be that the extended GNU triplet that specifies an ABI (like the @code{eabi} suffix above) is not recognized by all the GNU tools.  Typically, glibc recognizes some of these, whereas GCC uses an extra @option{--with-abi} configure flag (see @code{gcc.scm} for examples of how to handle this).  Second, some of the required packages could fail to build for that platform.  Lastly, the generated binaries could be broken for some reason."
+msgstr "En pratique, il peut y avoir des complications.  Déjà, il se peut que le triplet GNU étendu qui spécifie l'ABI (comme le suffixe @code{eabi} ci-dessus) ne soit pas reconnu par tous les outils GNU.  Typiquement, la glibc en reconnait certains, alors que GCC utilise un drapeau de configuration @option{--with-abi} supplémentaire (voir @code{gcc.scm} pour trouver des exemples où ce cas est géré).  Ensuite, certains des paquets requis pourraient échouer à se construire pour cette plateforme.  Enfin, les binaires générés pourraient être cassé pour une raison ou une autre."
 
 #. type: include
-#: doc/guix.texi:25871
+#: doc/guix.texi:32815
 #, no-wrap
 msgid "contributing.texi"
 msgstr "contributing.fr.texi"
 
 #. type: Plain text
-#: doc/guix.texi:25884
-msgid "Guix is based on the @uref{https://nixos.org/nix/, Nix package manager}, which was designed and implemented by Eelco Dolstra, with contributions from other people (see the @file{nix/AUTHORS} file in Guix.)  Nix pioneered functional package management, and promoted unprecedented features, such as transactional package upgrades and rollbacks, per-user profiles, and referentially transparent build processes.  Without this work, Guix would not exist."
-msgstr "Guix se base sur le @uref{https://nixos.org/nix/, gestionnaire de paquets Nix} conçu et implémenté par Eelco Dolstra, avec des contributions d'autres personnes (voir le fichier @file{nix/AUTHORS} dans Guix).  Nix a inventé la gestion de paquet fonctionnelle et promu des fonctionnalités sans précédents comme les mises à jour de paquets transactionnelles et les retours en arrière, les profils par utilisateurs et les processus de constructions transparents pour les références.  Sans ce travail, Guix n'existerait pas."
+#: doc/guix.texi:32828
+msgid "Guix is based on the @uref{https://nixos.org/nix/, Nix package manager}, which was designed and implemented by Eelco Dolstra, with contributions from other people (see the @file{nix/AUTHORS} file in Guix).  Nix pioneered functional package management, and promoted unprecedented features, such as transactional package upgrades and rollbacks, per-user profiles, and referentially transparent build processes.  Without this work, Guix would not exist."
+msgstr "Guix se base sur le @uref{https://nixos.org/nix/ gestionnaire de paquets Nix} conçu et implémenté par Eelco Dolstra, avec des contributions d'autres personnes (voir le fichier @file{nix/AUTHORS} dans Guix).  Nix a inventé la gestion de paquet fonctionnelle et promu des fonctionnalités sans précédents comme les mises à jour de paquets transactionnelles et les retours en arrière, les profils par utilisateurs et les processus de constructions transparents pour les références.  Sans ce travail, Guix n'existerait pas."
 
 #. type: Plain text
-#: doc/guix.texi:25887
+#: doc/guix.texi:32831
 msgid "The Nix-based software distributions, Nixpkgs and NixOS, have also been an inspiration for Guix."
 msgstr "Les distributions logicielles basées sur Nix, Nixpkgs et NixOS, ont aussi été une inspiration pour Guix."
 
 #. type: Plain text
-#: doc/guix.texi:25893
+#: doc/guix.texi:32837
 msgid "GNU@tie{}Guix itself is a collective work with contributions from a number of people.  See the @file{AUTHORS} file in Guix for more information on these fine people.  The @file{THANKS} file lists people who have helped by reporting bugs, taking care of the infrastructure, providing artwork and themes, making suggestions, and more---thank you!"
 msgstr "GNU@tie{}Guix lui-même est un travail collectif avec des contributions d'un grand nombre de personnes.  Voyez le fichier @file{AUTHORS} dans Guix pour plus d'information sur ces personnes de qualité.  Le fichier @file{THANKS} liste les personnes qui ont aidé en rapportant des bogues, en prenant soin de l'infrastructure, en fournissant des images et des thèmes, en faisant des suggestions et bien plus. Merci !"
 
 #. type: cindex
-#: doc/guix.texi:25898
+#: doc/guix.texi:32842
 #, no-wrap
 msgid "license, GNU Free Documentation License"
 msgstr "license, GNU Free Documentation License"
 
 #. type: include
-#: doc/guix.texi:25899
+#: doc/guix.texi:32843
 #, no-wrap
 msgid "fdl-1.3.texi"
 msgstr "fdl-1.3.texi"
 
-#~ msgid "little-endian 64-bit MIPS processors, specifically the Loongson series, n32 ABI, and Linux-Libre kernel.  This configuration is no longer fully supported; in particular, the project's build farms no longer provide substitutes for this architecture."
-#~ msgstr "les processeurs 64 bits MIPS en little-endian, spécifiquement la série Loongson, ABI n32, avec le noyau Linux-libre.  Cette configuration n'est plus totalement prise en charge ; en particulier, les fermes de construction du projet de fournissent plus de substituts pour cette architecture."
+#~ msgid "Packages can be manipulated in arbitrary ways.  An example of a useful transformation is @dfn{input rewriting}, whereby the dependency tree of a package is rewritten by replacing specific inputs by others:"
+#~ msgstr "On peut manipuler les paquets de manière arbitraire.  Une transformation utile est par exemple la @dfn{réécriture d'entrées} où l'arbre des dépendances d'un paquet est réécrit en replaçant des entrées spécifiques par d'autres :"
+
+#~ msgid "guix-daemon --substitute-urls=http://example.org:8080\n"
+#~ msgstr "guix-daemon --substitute-urls=http://example.org:8080\n"
+
+#~ msgid "{Scheme Procedure} postgresql-service [#:postgresql postgresql] @"
+#~ msgstr "{Procédure Scheme} postgresql-service [#:postgresql postgresql] @"
+
+#~ msgid "[#:config-file] [#:data-directory ``/var/lib/postgresql/data''] @ [#:port 5432] [#:locale ``en_US.utf8''] [#:extension-packages '()] Return a service that runs @var{postgresql}, the PostgreSQL database server."
+#~ msgstr ""
+#~ "[#:config-file] [#:data-directory ``/var/lib/postgresql/data''] @\n"
+#~ "[#:port 5432] [#:locale ``en_US.utf8''] [#:extension-packages '()]\n"
+#~ "Renvoie un service qui lance @var{postgresql}, le service de bases de données PostgreSQL."
+
+#~ msgid "The PostgreSQL daemon loads its runtime configuration from @var{config-file}, creates a database cluster with @var{locale} as the default locale, stored in @var{data-directory}.  It then listens on @var{port}."
+#~ msgstr "Le démon PostgreSQL charge sa configuration à l'exécution depuis @var{config-file}, crée une grappe de bases de données avec @var{locale} comme paramètre de régionalisation par défaut, stockée dans @var{data-directory}.  Il écoute ensuite sur @var{port}."
+
+#~ msgid "This section summarizes all the options available in @code{origin} declarations (@pxref{Defining Packages})."
+#~ msgstr "Cette section résume toutes les options disponibles dans le déclarations @code{origin} (@pxref{Defining Packages})."
+
+#~ msgid "A procedure that handles the URI."
+#~ msgstr "Un procédure qui gère l'URI."
+
+#~ msgid "Examples include:"
+#~ msgstr "Quelques exemples :"
+
+#~ msgid "@var{url-fetch} from @code{(guix download)}"
+#~ msgstr "@var{url-fetch} de @code{(guix download)}"
+
+#~ msgid "download a file from the HTTP, HTTPS, or FTP URL specified in the @code{uri} field;"
+#~ msgstr "télécharge un fichier depuis l'URL HTTP, HTTPS ou FTP spécifiée dans le champ @code{uri} ;"
+
+#~ msgid "@var{git-fetch} from @code{(guix git-download)}"
+#~ msgstr "@var{git-fetch} de @code{(guix git-download)}"
+
+#~ msgid "clone the Git version control repository, and check out the revision specified in the @code{uri} field as a @code{git-reference} object; a @code{git-reference} looks like this:"
+#~ msgstr "clone le dépôt sous contrôle de version Git et récupère la révision spécifiée dans le champ @code{uri} en tant qu'objet @code{git-reference} ; un objet @code{git-reference} ressemble à cela :"
+
+#~ msgid "The list of phases used for a particular package can be changed with the @code{#:phases} parameter.  For instance, passing:"
+#~ msgstr "La liste des phases utilisées par un paquet particulier peut être modifiée avec le paramètre @code{#:phases}.  Par exemple, en passant :"
+
+#~ msgid "#:phases (modify-phases %standard-phases (delete 'configure))\n"
+#~ msgstr "#:phases (modify-phases %standard-phases (delete 'configure))\n"
+
+#~ msgid "means that all the phases described above will be used, except the @code{configure} phase."
+#~ msgstr "signifie que toutes les procédures décrites plus haut seront utilisées, sauf la phase @code{configure}."
+
+#~ msgid "Note that, currently, the differing build results are not kept around, so you will have to manually investigate in case of an error---e.g., by stashing one of the build results with @code{guix archive --export} (@pxref{Invoking guix archive}), then rebuilding, and finally comparing the two results."
+#~ msgstr "Remarquez que, les résultats qui diffèrent ne sont pas gardés, donc vous devrez inspecter manuellement chaque erreur — p.@: ex.@: en gardant l'un des résultats avec @code{guix archive --export} (@pxref{Invoking guix archive}), puis en reconstruisant, et enfin en comparant les deux résultats."
+
+#~ msgid "An identifier for ether configuration fields to refer to this key. IDs must be unique and must not be empty."
+#~ msgstr "Un identifiant pour d'autres champs de configuration qui se réfèrent à cette clef.  Les ID doivent être uniques et non vides."
+
+#, fuzzy
+#~ msgid "@code{extra-options} (default: @code{'()\"})"
+#~ msgstr "@code{extra-options} (par défaut : @code{'()})"
+
+#~ msgid "Virtualization services"
+#~ msgstr "services de virtualisation"
+
+#~ msgid "How do you ensure that you obtained a genuine copy of the repository? Guix itself provides a tool to @dfn{authenticate} your checkout, but you must first make sure this tool is genuine in order to ``bootstrap'' the trust chain.  To do that, run:"
+#~ msgstr "Comment s'assurer d'obtenir une copie conforme du dépôt ?  Guix lui-même fournit un outil pour @dfn{authentifier} votre extrait, mais vous devez d'abord vous assurer que l'outil est conforme pour démarrer la chaîne de configance.  Pour cela lancez :"
+
+#~ msgid "git verify-commit `git log --format=%H build-aux/git-authenticate.scm`\n"
+#~ msgstr "git verify-commit `git log --format=%H build-aux/git-authenticate.scm`\n"
+
+#~ msgid "The output must look something like:"
+#~ msgstr "La sortie devra ressemble à ceci :"
+
+#~ msgid ""
+#~ "gpg: Signature made Fri 27 Dec 2019 01:27:41 PM CET\n"
+#~ "gpg:                using RSA key 3CE464558A84FDC69DB40CFB090B11993D9AEBB5\n"
+#~ "@dots{}\n"
+#~ "gpg: Signature made Fri 27 Dec 2019 01:25:22 PM CET\n"
+#~ "gpg:                using RSA key 3CE464558A84FDC69DB40CFB090B11993D9AEBB5\n"
+#~ "@dots{}\n"
+#~ msgstr ""
+#~ "gpg: Signature faite le ven. 27 dec 2019 01:27:41 PM CET\n"
+#~ "gpg:                avec la clef RSA 3CE464558A84FDC69DB40CFB090B11993D9AEBB5\n"
+#~ "@dots{}\n"
+#~ "gpg: Signature faite le ven. 27 dec 2019 01:25:22 PM CET\n"
+#~ "gpg:                avec la clef RSA 3CE464558A84FDC69DB40CFB090B11993D9AEBB5\n"
+#~ "@dots{}\n"
+
+#~ msgid "... meaning that changes to this file are all signed with key @code{3CE464558A84FDC69DB40CFB090B11993D9AEBB5} (you may need to fetch this key from a key server, if you have not done it yet)."
+#~ msgstr "… ce qui signifie que les changement dans le fichier ont été signés avec la clef @code{3CE464558A84FDC69DB40CFB090B11993D9AEBB5} (vous pouvez avoir besoin de récupérer la clef depuis un serveur de clef si vous ne l'avez pas encore fait)."
+
+#~ msgid "Fiddling with Guix interactively."
+#~ msgstr "S'amuser avec Guix de manière interactive."
+
+#~ msgid "@url{https://zlib.net, zlib};"
+#~ msgstr "@url{https://zlib.net, zlib},"
+
+#~ msgid "Produce verbose output, writing build logs to the standard error output."
+#~ msgstr "Produire une sortie verbeuse, en écrivant les journaux de construction sur la sortie d'erreur standard."
+
+#~ msgid "A bytevector containing the SHA-256 hash of the source.  Typically the @code{base32} form is used here to generate the bytevector from a base-32 string."
+#~ msgstr "Un bytevector contenant le hash SHA-256 de la source.  Typiquement la forme @code{base32} est utilisée ici pour générer le bytevector depuis une chaîne de caractères en base-32."
+
+#~ msgid "(copy build system)"
+#~ msgstr "(copy build system)"
+
+#~ msgid "@code{kernel-arguments} (default: @code{'(\"quiet\")})"
+#~ msgstr "@code{kernel-arguments} (par défaut : @code{'(\"quiet\")})"
+
+#~ msgid "Here we show how the default @var{udev-service} can be extended with it."
+#~ msgstr "Ici on montre comment le service @var{udev-service} par défaut peut être étendu avec cette règle."
+
+#~ msgid ""
+#~ "(operating-system\n"
+#~ " ;; @dots{}\n"
+#~ " (services\n"
+#~ " (modify-services %desktop-services\n"
+#~ "   (udev-service-type config =>\n"
+#~ "     (udev-configuration (inherit config)\n"
+#~ "      (rules (append (udev-configuration-rules config)\n"
+#~ "                     (list %example-udev-rule))))))))\n"
+#~ msgstr ""
+#~ "(operating-system\n"
+#~ " ;; @dots{}\n"
+#~ " (services\n"
+#~ " (modify-services %desktop-services\n"
+#~ "   (udev-service-type config =>\n"
+#~ "     (udev-configuration (inherit config)\n"
+#~ "      (rules (append (udev-configuration-rules config)\n"
+#~ "                     (list %example-udev-rule))))))))\n"
+
+#~ msgid ""
+#~ "  (groups (cons (user-group (system? #t) (name \"adbusers\"))\n"
+#~ "                %base-groups))\n"
+#~ "\n"
+#~ msgstr ""
+#~ "  (groups (cons (user-group (system? #t) (name \"adbusers\"))\n"
+#~ "                %base-groups))\n"
+#~ "\n"
+
+#~ msgid ""
+#~ "  ;; @dots{}\n"
+#~ "\n"
+#~ msgstr ""
+#~ "  ;; @dots{}\n"
+#~ "\n"
+
+#~ msgid ""
+#~ "  (services\n"
+#~ "   (modify-services %desktop-services\n"
+#~ "     (udev-service-type\n"
+#~ "      config =>\n"
+#~ "      (udev-configuration (inherit config)\n"
+#~ "                          (rules (cons android-udev-rules\n"
+#~ "                                       (udev-configuration-rules config))))))))\n"
+#~ msgstr ""
+#~ "  (services\n"
+#~ "   (modify-services %desktop-services\n"
+#~ "     (udev-service-type\n"
+#~ "      config =>\n"
+#~ "      (udev-configuration (inherit config)\n"
+#~ "                          (rules (cons android-udev-rules\n"
+#~ "                                       (udev-configuration-rules config))))))))\n"
+
+#, fuzzy
+#~ msgid "@code{servers} (default: @var{%openntp-servers})"
+#~ msgstr "@code{server} (par défaut : @var{%ntp-servers})"
+
+#~ msgid "Mandatory email used for registration, recovery contact, and important account notifications."
+#~ msgstr "Courriel obligatoire utilisé pour la création de compte, le contact en cas de problème et des notifications importantes sur le compte."
+
+#~ msgid "The service type for the TLP tool.  Its value should be a valid TLP configuration (see below).  To use the default settings, simply write:"
+#~ msgstr "Le type de service pour l'outil TLP.  Sa valeur devrait être une configuration valide de TLP (voir plus bas).  Pour utiliser les paramètres par défaut, écrivez simplement :"
+
+#~ msgid "(service tlp-service-type)\n"
+#~ msgstr "(service tlp-service-type)\n"
+
+#~ msgid "By default TLP does not need much configuration but most TLP parameters can be tweaked using @code{tlp-configuration}."
+#~ msgstr "Par défaut TLP n'a pas besoin de beaucoup de configuration mais la plupart des paramètres de TLP peuvent être modifiés avec @code{tlp-configuration}."
+
+#~ msgid "@code{user-path} (default: @var{#f})"
+#~ msgstr "@code{user-path} (par défaut : @var{#f})"
+
+#~ msgid "@code{listen} (default: @var{'()})"
+#~ msgstr "@code{listen} (par défaut : @var{'()})"
+
+#~ msgid "Data type representing the configuration for @code{git-http-service}."
+#~ msgstr "Type de données représentant la configuration de @code{git-http-service}."
+
+#~ msgid "linux"
+#~ msgstr "linux"
+
+#~ msgid "You can specify the root file system type by using the @option{--file-system-type} option.  It defaults to @code{ext4}."
+#~ msgstr "Vous pouvez spécifier le type de système de fichiers racine avec l'option @option{--file-system-type}.  La valeur par défaut est @code{ext4}."
+
+#~ msgid "--file-system-type=@var{type}"
+#~ msgstr "--file-system-type=@var{type}"
+
+#~ msgid "@xref{Invoking guix environment}, for more information on that command.  Extra dependencies can be added with @option{--ad-hoc}:"
+#~ msgstr "@xref{Invoquer guix environment}, pour plus d'information sur cette commande.  On peut ajouter des dépendances supplémentaires avec @option{--ad-hoc} :"
+
+#~ msgid "little-endian 64-bit ARMv8-A processors, Linux-Libre kernel.  This is currently in an experimental stage, with limited support.  @xref{Contributing}, for how to help!"
+#~ msgstr "les processeurs ARMv8-A 64-bits en little-endian avec le noyau Linux-libre.  Le support est actuellement expérimental et limité.  @xref{Contributing}, pour savoir comment aider !"
 
 #~ msgid ""
-#~ "image_id=\"`docker load < guix-system-docker-image.tar.gz`\"\n"
-#~ "container_id=\"`docker create $image_id`\"\n"
-#~ "docker start $container_id\n"
+#~ "$ gpg --keyserver @value{KEY-SERVER} \\\n"
+#~ "      --recv-keys @value{OPENPGP-SIGNING-KEY-ID}\n"
 #~ msgstr ""
-#~ "image_id=\"`docker load < guix-system-docker-image.tar.gz`\"\n"
-#~ "container_id=\"`docker create $image_id`\"\n"
-#~ "docker start $container_id\n"
+#~ "$ gpg --keyserver @value{KEY-SERVER} \\\n"
+#~ "      --recv-keys @value{OPENPGP-SIGNING-KEY-ID}\n"
+
+#~ msgid "Nix, compatibility"
+#~ msgstr "Nix, compatibilité"
+
+#~ msgid "When a working installation of @url{https://nixos.org/nix/, the Nix package manager} is available, you can instead configure Guix with @code{--disable-daemon}.  In that case, Nix replaces the three dependencies above."
+#~ msgstr "Lorsque vous avez une installation fonctionnelle du @url{https://nixos.org/nix/, gestionnaire de paquets Nix}, vous pouvez configurer Guix avec @code{--disable-daemon}.  Dan ce cas, Nix remplace les trois dépendances au dessus."
+
+#~ msgid "Guix is compatible with Nix, so it is possible to share the same store between both.  To do so, you must pass @command{configure} not only the same @code{--with-store-dir} value, but also the same @code{--localstatedir} value.  The latter is essential because it specifies where the database that stores metadata about the store is located, among other things.  The default values for Nix are @code{--with-store-dir=/nix/store} and @code{--localstatedir=/nix/var}.  Note that @code{--disable-daemon} is not required if your goal is to share the store with Nix."
+#~ msgstr "Guix est compatible avec Nix, donc il est possible de partager le même dépôt entre les deux.  Pour cela, vous devez passer à @command{configure} non seulement la même valeur de @code{--with-store-dir} mais aussi la même valeur de @code{--localstatedir}.  Cette dernière est nécessaires car elle spécifie l'emplacement de la base de données qui stocke les métadonnées sur le dépôt, entre autres choses.  Les valeurs par défaut pour Nix sont @code{--with-store-dir=/nix/store} et @code{--localstatedir=/nix/var}.  Remarquez que @code{--disable-daemon} n'est pas requis si votre but est de partager le dépôt avec Nix."
+
+#~ msgid "--no-build-hook"
+#~ msgstr "--no-build-hook"
+
+#~ msgid "Do not use the @dfn{build hook}."
+#~ msgstr "Ne pas utiliser le @dfn{crochet de construction}."
+
+#~ msgid "The build hook is a helper program that the daemon can start and to which it submits build requests.  This mechanism is used to offload builds to other machines (@pxref{Daemon Offload Setup})."
+#~ msgstr "Le crochet de construction est un programme d'aide qui le démon peut démarrer et auquel soumettre les requêtes de construction.  Ce mécanisme est utilisé pour décharger les constructions à d'autres machines (@pxref{Daemon Offload Setup})."
+
+#~ msgid "After installing fonts you may have to refresh the font cache to use them in applications.  The same applies when applications installed via Guix do not seem to find fonts.  To force rebuilding of the font cache run @code{fc-cache -f}.  The @code{fc-cache} command is provided by the @code{fontconfig} package."
+#~ msgstr "Après l'installation des polices vous devrez peut-être rafraîchir le cache des polices pour pouvoir les utiliser dans les applications.  Ça s'applique aussi lorsque les applications installées avec Guix n'ont pas l'air de trouver les polices.  Pour forcer la reconstruction du cache de polices lancez @code{fc-cache -f}.  La commande @code{fc-cache} est fournie par le paquet @code{fontconfig}."
+
+#~ msgid "When you install Emacs packages with Guix, the elisp files may be placed either in @file{$HOME/.guix-profile/share/emacs/site-lisp/} or in sub-directories of @file{$HOME/.guix-profile/share/emacs/site-lisp/guix.d/}.  The latter directory exists because potentially there may exist thousands of Emacs packages and storing all their files in a single directory may not be reliable (because of name conflicts).  So we think using a separate directory for each package is a good idea.  It is very similar to how the Emacs package system organizes the file structure (@pxref{Package Files,,, emacs, The GNU Emacs Manual})."
+#~ msgstr "Lorsque vous installez les paquets Emacs avec Guix, les fichiers elisp peuvent être placés soit dans @file{$HOME/.guix-profile/share/emacs/site-lisp/} soit dans des sous-répertoires de @file{$HOME/.guix-profile/share/emacs/site-lisp/guix.d/}.  Ce dernier existe car il existe potentiellement des milliers de paquets Emacs et stocker leurs fichiers dans un seul répertoire peut ne pas être fiable (à cause de conflits de noms).  Donc on pense qu'utiliser un répertoire séparé est une bonne idée.  C'est très similaire à la manière dont le système de paquet d'Emacs organise la structure de fichiers (@pxref{Package Files,,, emacs, The GNU Emacs Manual})."
+
+#~ msgid "ip a\n"
+#~ msgstr "ip a\n"
+
+#~ msgid "The ordering of the drives matters."
+#~ msgstr "L'ordre des périphérique est important."
+
+#~ msgid "In the VM console, quickly press the @kbd{F12} key to enter the boot menu.  Then press the @kbd{2} key and the @kbd{RET} key to validate your selection."
+#~ msgstr "Dans la console de la VM, appuyez rapidement sur @kbd{F12} pour entrer dans le menu de démarrage.  Ensuite appuyez sur @kbd{2} et la touche @kbd{Entrée} pour valider votre choix."
+
+#~ msgid "hydra"
+#~ msgstr "hydra"
 
-#~ msgid "This command starts a new Docker container from the specified image.  It will boot the Guix system in the usual manner, which means it will start any services you have defined in the operating system configuration.  You can get an interactive shell running in the container using @command{docker exec}:"
-#~ msgstr "Cette commande démarre un nouveau conteneur Docker à partir de l'image spécifiée.  Il démarrera le système Guix de la manière habituelle, ce qui signifie qu'il démarrera tous les services que vous avez définis dans la configuration du système d'exploitation.  Vous pouvez obtenir un shell interactif dans le conteneur en utilisant @command{docker exec} :"
+#~ msgid "Similarly, the @file{hydra.gnu.org.pub} file contains the public key of an independent build farm also run by the project, reachable at @indicateurl{https://mirror.hydra.gnu.org}."
+#~ msgstr "De même, le fichier @file{hydra.gnu.org.pub} contient la clef publique d'une ferme de construction indépendante qui appartient aussi au projet, disponible sur @indicateurl{https://mirror.hydra.gnu.org}."
 
-#~ msgid "docker exec -ti $container_id /run/current-system/profile/bin/bash --login\n"
-#~ msgstr "docker exec -ti $container_id /run/current-system/profile/bin/bash --login\n"
+#~ msgid "Display the list of packages added or upgraded since the previous generation."
+#~ msgstr "Afficher la liste des paquets ajoutés ou mis à jour depuis la génération précédente."
 
-#~ msgid "For the @code{container} action, allow containers to access the host network, that is, do not create a network namespace."
-#~ msgstr "Pour l'action @code{container}, permet aux conteneurs d'accéder au réseau de l'hôte, c'est-à-dire, ne crée pas pas d'espace de nom réseau."
+#~ msgid "For containers, share the file system @var{source} from the host system as the writable file system @var{target} within the container.  If @var{target} is not specified, @var{source} is used as the target mount point in the container."
+#~ msgstr "Pour les conteneurs, partage le système de fichiers @var{source} du système hôte comme un système de fichiers en lecture-écriture @var{cible} dans le conteneur.  Si @var{cible} n'est pas spécifiée, @var{source} est utilisée comme point de montage dans le conteneur."
 
-#~ msgid "@code{auto-start?} (default: @code{#t})"
-#~ msgstr "@code{auto-start?} (par défaut : @code{#t})"
+#~ msgid "The example below spawns a Guile REPL in a container in which the user's home directory is accessible for both reading and writing via the @file{/exchange} directory:"
+#~ msgstr "L'exemple ci-dessous crée un REPL Guile dans un conteneur dans lequel le répertoire personnel de l'utilisateur est accessible en lecture-écriture via le répertoire @file{/exchange} :"
 
-#~ msgid "Whether this service should be started automatically by the Shepherd.  If it is @code{#f} the service has to be started manually with @code{herd start}."
-#~ msgstr "Indique si ce service doit être démarré automatiquement par le Shepherd.  Si la valeur est @code{#f}, le service doit être démarré manuellement avec @code{herd start}."
+#~ msgid "guix environment --container --share=$HOME=/exchange --ad-hoc guile -- guile\n"
+#~ msgstr "guix environment --container --share=$HOME=/exchange --ad-hoc guile -- guile\n"
+
+#~ msgid "@code{maintainers} (default: @code{'()})"
+#~ msgstr "@code{maintainers} (par défaut : @code{'()})"
+
+#~ msgid "The list of maintainers of the package, as @code{maintainer} objects."
+#~ msgstr "La liste des mainteneurs du paquet, comme des objets @code{maintainer}."
+
+#~ msgid "In its @code{configure} phase, this build system replaces dependencies specified in the @file{Cargo.toml} file with inputs to the Guix package.  The @code{install} phase installs the binaries, and it also installs the source code and @file{Cargo.toml} file."
+#~ msgstr "Dans sa phase @code{configure}, ce système de construction remplace les dépendances spécifiées dans le fichier @file{Cargo.toml} par les paquets Guix spécifiés en entrée.  La phase @code{install} installe les binaires et installe aussi le code source et le fichier @file{Cargo.toml}."
+
+#~ msgid "Build @var{derivations} (a list of @code{<derivation>} objects or derivation paths), and return when the worker is done building them.  Return @code{#t} on success."
+#~ msgstr "Construit @var{derivaton} (ne liste d'objets @code{<derivation>} ou de chemins de dérivations) et retourne quand le travailleur a fini de les construire.  Renvoie @code{#t} en cas de réussite."
+
+#~ msgid "Information is extracted from the @code{DESCRIPTION} file of a package published on the web interface of the Bioconductor SVN repository."
+#~ msgstr "Les informations sont extraites du fichier @file{DESCRIPTION} d'un paquet publié sur l'interface web du dépôt SVN de Bioconductor."
+
+#~ msgid "Among other things, it is possible to query specific system types and specific package sets.  The available options are listed below."
+#~ msgstr "Entre autres choses, il est possible de demander des types de système particuliers et des ensembles de paquets particuliers.  Les options disponibles sont listées plus bas."
+
+#~ msgid "The gzip compression level at which substitutes are compressed.  Use @code{0} to disable compression altogether, and @code{9} to get the best compression ratio at the expense of increased CPU usage."
+#~ msgstr "Le niveau de compression gzip auquel les substituts sont compressés.  Utilisez @code{0} pour désactiver complètement la compression, et @code{9} pour avoir le meilleur taux de compression contre une plus grande utilisation du CPU."
+
+#~ msgid "The example below defines an operating system that provides log rotation with the default settings, for commonly encountered log files."
+#~ msgstr "L'exemple ci-dessous définit un système d'exploitation qui fournit la rotation des journaux avec les paramètres par défaut, pour les journaux les plus courants."
+
+#~ msgid "{Scheme Procedure} sddm-service config"
+#~ msgstr "{Procédure Scheme} sddm-service config"
+
+#~ msgid "Return a service that spawns the SDDM graphical login manager for config of type @code{<sddm-configuration>}."
+#~ msgstr "Renvoie un service qui démarre le gestionnaire de connexion graphique SDDM avec une configuration de type @code{<sddm-configuration>}."
+
+#~ msgid "{Scheme Procedure} colord-service [#:colord @var{colord}]"
+#~ msgstr "{Procédure Scheme} colord-service [#:colord @var{colord}]"
+
+#~ msgid ""
+#~ "image_id=\"$(docker load < guix-system-docker-image.tar.gz)\"\n"
+#~ "docker run -e GUIX_NEW_SYSTEM=/var/guix/profiles/system \\\\\n"
+#~ "    --entrypoint /var/guix/profiles/system/profile/bin/guile \\\\\n"
+#~ "    $image_id /var/guix/profiles/system/boot\n"
+#~ msgstr ""
+#~ "image_id=\"$(docker load < guix-system-docker-image.tar.gz)\"\n"
+#~ "docker run -e GUIX_NEW_SYSTEM=/var/guix/profiles/system \\\\\n"
+#~ "    --entrypoint /var/guix/profiles/system/profile/bin/guile \\\\\n"
+#~ "    $image_id /var/guix/profiles/system/boot\n"
+
+#~ msgid "-net user"
+#~ msgstr "-net user"
+
+#~ msgid "Enable the unprivileged user-mode network stack.  The guest OS can access the host but not vice versa.  This is the simplest way to get the guest OS online."
+#~ msgstr "Active la pile réseau non privilégiée en mode utilisateur.  L'OS émulé peut accéder à l'hôte mais pas l'inverse.  C'est la manière la plus simple de connecter le client."
+
+#~ msgid "You must create a network interface of a given model.  If you do not create a NIC, the boot will fail.  Assuming your hardware platform is x86_64, you can get a list of available NIC models by running @command{qemu-system-x86_64 -net nic,model=help}."
+#~ msgstr "Vous devez créer une interface réseau d'un modèle donné.  Si vous ne créez pas de NIC, le démarrage échouera.  En supposant que votre plate-forme est x86_64, vous pouvez récupérer une liste des modèles de NIC disponibles en lançant @command{qemu-system-x86_64 -net nic,model=help}."
+
+#~ msgid "As of version @value{VERSION}, the feature described below is considered ``beta''."
+#~ msgstr "À la version @value{VERSION}, la fonctionnalité ci-dessous est considérée comme « bêta »."
 
 #~ msgid "The @code{guix} package must remain available in @code{root}'s profile, or it would become subject to garbage collection---in which case you would find yourself badly handicapped by the lack of the @command{guix} command.  In other words, do not remove @code{guix} by running @code{guix package -r guix}."
 #~ msgstr "Le paquet @code{guix} doit rester disponible dans le profil de @code{root} ou il pourrait être sujet au ramassage de miettes — dans ce cas vous vous retrouveriez gravement handicapé par l'absence de la commande @command{guix}.  En d'autres termes, ne supprimez pas @code{guix} en lançant @code{guix package -r guix}."
@@ -47416,9 +60573,6 @@ msgstr "fdl-1.3.texi"
 #~ msgid "/tmp/qemu-image"
 #~ msgstr "/tmp/qemu-image"
 
-#~ msgid "The file name of the qcow2 image."
-#~ msgstr "Le nom de fichier de l'image qcow2."
-
 #~ msgid "As of version @value{VERSION}, Guix System is not production-ready.  It may contain bugs and lack important features.  Thus, if you are looking for a stable production system that respects your freedom as a computer user, a good solution at this point is to consider @url{http://www.gnu.org/distros/free-distros.html, one of the more established GNU/Linux distributions}.  We hope you can soon switch to the Guix System without fear, of course.  In the meantime, you can also keep using your distribution and try out the package manager on top of it (@pxref{Installation})."
 #~ msgstr "À la version @value{VERSION}, Guix System n'est pas prêt pour la production.  Elle peut contenir des bogues et ne pas avoir certaines fonctionnalités importantes.  Ainsi, si vous cherchez un système de production stable qui respecte votre liberté en tant qu'utilisateur, une bonne solution consiste à utiliser @url{http://www.gnu.org/distros/free-distros.html, une distribution GNU/Linux mieux établie}.  Nous espérons que vous pourrez bientôt passer à Guix System sans peur, bien sûr.  Pendant ce temps, vous pouvez aussi utiliser votre distribution actuelle et essayer le gestionnaire de paquet par dessus celle-ci (@pxref{Installation})."
 
@@ -47458,9 +60612,6 @@ msgstr "fdl-1.3.texi"
 #~ msgid "As of this writing @code{berlin.guixsd.org} is being upgraded so it can better scale up, but you might want to give it a try.  It is backed by 20 x86_64/i686 build nodes and may be able to provide substitutes more quickly than @code{mirror.hydra.gnu.org}."
 #~ msgstr "Au moment où ces lignes sont écrites, @code{berlin.guixsd.org} est mis à niveau pour mieux passer à l'échelle, mais vous pourriez vouloir le tester.  Il est associé à 20 nœuds de construction x86_64/i686 et pourrait fournir des substituts plus rapidement que @code{mirror.hydra.gnu.org}"
 
-#~ msgid "@code{self-native-input?} (default: @code{#f})"
-#~ msgstr "@code{self-native-input?} (par défaut : @code{#f})"
-
 #~ msgid "... yields the graph of packages that depend on OCaml."
 #~ msgstr "… montre le graphe des paquets qui dépendent de OCaml."
 
@@ -47664,9 +60815,6 @@ msgstr "fdl-1.3.texi"
 #~ msgid "Include the ``local state directory'', @file{/var/guix}, in the resulting pack."
 #~ msgstr "Inclure le « répertoire d'état local », @file{/var/guix} dans le paquet résultant."
 
-#~ msgid "{Scheme Procedure} guix-service @var{config}"
-#~ msgstr "{Procédure Scheme} guix-service @var{config}"
-
 #~ msgid "Return a service that runs the Guix build daemon according to @var{config}."
 #~ msgstr "Renvoie un service qui fait tourner le démon de construction de Guix en suivant @var{config}."
 
@@ -47710,8 +60858,5 @@ msgstr "fdl-1.3.texi"
 #~ msgid "The @code{(gnu services sound)} module provides an @code{alsa-service-type} service to generate an ALSA @file{/etc/asound.conf} configuration file.  This configuration file is what allows applications that produce sound using ALSA to be correctly handled."
 #~ msgstr "Le module @code{(gnu services sound)} fournit un service @code{alsa-service-type} pour générer un fichier de configuration @file{/etc/asound.conf}.  Ce fichier de configuration est ce qui permet aux applications de produire du son avec ALSA d'être correctement gérées."
 
-#~ msgid "@code{load-path} (default: @code{'()})"
-#~ msgstr "@code{load-path} (par défaut : @code{'()})"
-
 #~ msgid "Note that @command{./pre-inst-env guix pull} does @emph{not} upgrade the local source tree; it simply updates the @file{~/.config/guix/latest} symlink (@pxref{Invoking guix pull}).  Run @command{git pull} instead if you want to upgrade your local source tree.@footnote{If you would like to set up @command{guix} to use your Git checkout, you can point the @file{~/.config/guix/latest} symlink to your Git checkout directory.  If you are the sole user of your system, you may also consider pointing the @file{/root/.config/guix/latest} symlink to point to @file{~/.config/guix/latest}; this way it will always use the same @command{guix} as your user does.}"
 #~ msgstr "Remarquez que @command{./pre-inst-env guix pull} ne met @emph{pas} à jour l'arborescence des sources locale ; il met seulement à jour le lien symbolique @file{~/.config/guix/latest} (@pxref{Invoquer guix pull}).  Lancez @command{git pull} à la place si vous voulez mettre à jour votre arborescence des sources locale@footnote{Si vous voulez paramétrer @command{guix} pour qu'il utilise votre dépôt Git, vous pouvez faire pointer le lien symbolique @file{~/.config/guix/latest} vers le répertoire contenant ce dépôt.  Si vous le seul utilisateur du système, vous pouvez aussi considérer faire pointer le lien symbolique @file{/root/.config/guix/latest} vers @file{~/.config/guix/latest} ; comme ça root aura toujours la même commande @command{guix} que votre utilisateur}."
diff --git a/po/doc/guix-manual.ru.po b/po/doc/guix-manual.ru.po
index 04174f6909..34d73f56c9 100644
--- a/po/doc/guix-manual.ru.po
+++ b/po/doc/guix-manual.ru.po
@@ -1,16 +1,17 @@
 # guix manual Russian translation.
-# Copyright (C) 2019 the authors of Guix (msgids)
+# Copyright (C) 2012-2020 the authors of Guix (msgids)
 # This file is distributed under the same license as the guix package.
 # Znavko <znavko@tutanota.com>, 2019.
 # Pavlo Marianov <acid@jack.kiev.ua>, 2019, 2020.
-# Adam <rndd@tuta.io>, 2020.
+# Adam Kandur <rndd@tuta.io>, 2020.
+# Oleg Pykhalov <go.wigust@gmail.com>, 2020.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: guix-manual 1.1.0-pre2\n"
-"Report-Msgid-Bugs-To: ludo@gnu.org\n"
-"POT-Creation-Date: 2020-04-09 18:27+0200\n"
-"PO-Revision-Date: 2020-04-24 10:22+0300\n"
+"Project-Id-Version: guix-manual 1.2.0-pre2\n"
+"Report-Msgid-Bugs-To: bug-guix@gnu.org\n"
+"POT-Creation-Date: 2020-10-20 16:52+0200\n"
+"PO-Revision-Date: 2020-11-04 11:19+0200\n"
 "Last-Translator: Pavlo Marianov <acid@jack.kiev.ua>\n"
 "Language-Team: Russian <gnu@d07.ru>\n"
 "Language: ru\n"
@@ -18,13 +19,13 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "X-Bugs: Report translation errors to the Language-Team address.\n"
-"X-Generator: Poedit 2.2.3\n"
+"X-Generator: Poedit 2.2.1\n"
 
-#. #-#-#-#-#  contributing.pot (guix 1.1.0-pre2)  #-#-#-#-#
+#. #-#-#-#-#  contributing.pot (guix manual 1.2.0-pre2)  #-#-#-#-#
 #. type: chapter
-#. #-#-#-#-#  guix.pot (guix 1.1.0-pre2)  #-#-#-#-#
+#. #-#-#-#-#  guix.pot (guix manual 1.2.0-pre2)  #-#-#-#-#
 #. type: menuentry
-#: doc/contributing.texi:1 doc/contributing.texi:2 doc/guix.texi:155
+#: doc/contributing.texi:1 doc/contributing.texi:2 doc/guix.texi:161
 #, no-wrap
 msgid "Contributing"
 msgstr "Содействие"
@@ -59,326 +60,330 @@ msgid "Contributors are not required to use their legal name in patches and on-l
 msgstr "Участники не обязаны указывать реальные имена в патчах и в общении онлайн. Они могут пользоваться любым именем или псеводнимом по своему выбору."
 
 #. type: section
-#: doc/contributing.texi:31 doc/contributing.texi:33 doc/contributing.texi:34
+#: doc/contributing.texi:32 doc/contributing.texi:34 doc/contributing.texi:35
 #, no-wrap
 msgid "Building from Git"
 msgstr "Сборка из Git"
 
 #. type: menuentry
-#: doc/contributing.texi:31
+#: doc/contributing.texi:32
 msgid "The latest and greatest."
 msgstr "Новейший и величайший."
 
 #. type: section
-#: doc/contributing.texi:31 doc/contributing.texi:150
+#: doc/contributing.texi:32 doc/contributing.texi:150
 #: doc/contributing.texi:151
 #, no-wrap
 msgid "Running Guix Before It Is Installed"
-msgstr "Запуск Guix перед его устанвокой"
+msgstr "Запуск Guix перед его установкой"
 
 #. type: menuentry
-#: doc/contributing.texi:31
+#: doc/contributing.texi:32
 msgid "Hacker tricks."
 msgstr "Хакерские трюки"
 
 #. type: section
-#: doc/contributing.texi:31 doc/contributing.texi:214
-#: doc/contributing.texi:215
+#: doc/contributing.texi:32 doc/contributing.texi:223
+#: doc/contributing.texi:224
 #, no-wrap
 msgid "The Perfect Setup"
 msgstr "Совершенная установка"
 
 #. type: menuentry
-#: doc/contributing.texi:31
+#: doc/contributing.texi:32
 msgid "The right tools."
 msgstr "Правильные инструменты."
 
 #. type: section
-#: doc/contributing.texi:31 doc/contributing.texi:305
-#: doc/contributing.texi:306
+#: doc/contributing.texi:32 doc/contributing.texi:314
+#: doc/contributing.texi:315
 #, no-wrap
 msgid "Packaging Guidelines"
 msgstr "Принципы опакечивания"
 
 #. type: menuentry
-#: doc/contributing.texi:31
+#: doc/contributing.texi:32
 msgid "Growing the distribution."
 msgstr "Разрастание дистрибутива."
 
 #. type: section
-#: doc/contributing.texi:31 doc/contributing.texi:789
-#: doc/contributing.texi:790
+#: doc/contributing.texi:32 doc/contributing.texi:813
+#: doc/contributing.texi:814
 #, no-wrap
 msgid "Coding Style"
 msgstr "Стиль кодирования"
 
 #. type: menuentry
-#: doc/contributing.texi:31
+#: doc/contributing.texi:32
 msgid "Hygiene of the contributor."
 msgstr "Гигиена участника."
 
 #. type: section
-#: doc/contributing.texi:31 doc/contributing.texi:887
-#: doc/contributing.texi:888
+#: doc/contributing.texi:32 doc/contributing.texi:911
+#: doc/contributing.texi:912
 #, no-wrap
 msgid "Submitting Patches"
 msgstr "Отправка исправлений"
 
 #. type: menuentry
-#: doc/contributing.texi:31
+#: doc/contributing.texi:32
 msgid "Share your work."
 msgstr "Поделитесь своей работой."
 
 #. type: section
-#: doc/contributing.texi:31 doc/contributing.texi:1111
-#: doc/contributing.texi:1112
+#: doc/contributing.texi:32 doc/contributing.texi:1136
+#: doc/contributing.texi:1137
 #, no-wrap
 msgid "Tracking Bugs and Patches"
 msgstr "Отслеживание ошибок и патчей"
 
 #. type: menuentry
-#: doc/contributing.texi:31
+#: doc/contributing.texi:32
 msgid "Using Debbugs."
 msgstr "Использование Debbugs"
 
 #. type: section
-#: doc/contributing.texi:31 doc/contributing.texi:1160
-#: doc/contributing.texi:1161
+#: doc/contributing.texi:32 doc/contributing.texi:1187
+#: doc/contributing.texi:1188
 #, no-wrap
 msgid "Commit Access"
 msgstr "Доступ к коммитам"
 
 #. type: menuentry
-#: doc/contributing.texi:31
+#: doc/contributing.texi:32
 msgid "Pushing to the official repository."
 msgstr "Внесение изменений в официальный репозиторий"
 
+#. type: section
+#: doc/contributing.texi:32 doc/contributing.texi:1328
+#: doc/contributing.texi:1329
+#, fuzzy, no-wrap
+#| msgid "updating Guix"
+msgid "Updating the Guix Package"
+msgstr "обновление Guix"
+
+#. type: menuentry
+#: doc/contributing.texi:32
+#, fuzzy
+#| msgid "Updating package definitions."
+msgid "Updating the Guix package definition."
+msgstr "Обновление описаний пакетов."
+
 #. type: Plain text
-#: doc/contributing.texi:38
+#: doc/contributing.texi:39
 msgid "If you want to hack Guix itself, it is recommended to use the latest version from the Git repository:"
 msgstr "Если вы собираетесь хакать сам Guix, рекомендуется использовать последнюю версию из репозитория Git:"
 
 #. type: example
-#: doc/contributing.texi:41
+#: doc/contributing.texi:42
 #, no-wrap
 msgid "git clone https://git.savannah.gnu.org/git/guix.git\n"
 msgstr "git clone https://git.savannah.gnu.org/git/guix.git\n"
 
 #. type: cindex
-#: doc/contributing.texi:43
+#: doc/contributing.texi:44
 #, no-wrap
 msgid "authentication, of a Guix checkout"
 msgstr "аутентификация для проверки Guix"
 
 #. type: Plain text
-#: doc/contributing.texi:48
-msgid "How do you ensure that you obtained a genuine copy of the repository? Guix itself provides a tool to @dfn{authenticate} your checkout, but you must first make sure this tool is genuine in order to ``bootstrap'' the trust chain.  To do that, run:"
-msgstr "Как вы гарантируете, что вы получили подлинную копию репозитория? Guix предоставляет инструмент для @dfn{authenticate} вашей проверки, но вы должны сначала убедиться, что этот инструмент является подлинным, чтобы быть уверенным с самого начала. Для этого запустите:"
-
-#. type: example
-#: doc/contributing.texi:52
-#, no-wrap
-msgid "git verify-commit `git log --format=%H build-aux/git-authenticate.scm`\n"
-msgstr "git verify-commit `git log --format=%H build-aux/git-authenticate.scm`\n"
-
-#. type: Plain text
-#: doc/contributing.texi:55
-msgid "The output must look something like:"
-msgstr "Вывод должен выглядеть примерно так:"
+#: doc/contributing.texi:49
+msgid "How do you ensure that you obtained a genuine copy of the repository? To do that, run @command{guix git authenticate}, passing it the commit and OpenPGP fingerprint of the @dfn{channel introduction} (@pxref{Invoking guix git authenticate}):"
+msgstr "Как убедиться, что вы получили подлинную копию репозитория? Для этого запустите @command{guix git authenticate}, передав ему коммит и отпечаток ключа OpenPGP @dfn{channel introduction} (@pxref{Invoking guix git authenticate}):"
 
 #. type: example
-#: doc/contributing.texi:63
+#: doc/contributing.texi:56
 #, no-wrap
 msgid ""
-"gpg: Signature made Fri 27 Dec 2019 01:27:41 PM CET\n"
-"gpg:                using RSA key 3CE464558A84FDC69DB40CFB090B11993D9AEBB5\n"
-"@dots{}\n"
-"gpg: Signature made Fri 27 Dec 2019 01:25:22 PM CET\n"
-"gpg:                using RSA key 3CE464558A84FDC69DB40CFB090B11993D9AEBB5\n"
-"@dots{}\n"
+"git fetch origin keyring:keyring\n"
+"guix git authenticate 9edb3f66fd807b096b48283debdcddccfea34bad \\\n"
+"  \"BBB0 2DDF 2CEA F6A8 0D1D  E643 A2A0 6DF2 A33A 54FA\"\n"
 msgstr ""
-"gpg: Signature made Fri 27 Dec 2019 01:27:41 PM CET\n"
-"gpg:                using RSA key 3CE464558A84FDC69DB40CFB090B11993D9AEBB5\n"
-"@dots{}\n"
-"gpg: Signature made Fri 27 Dec 2019 01:25:22 PM CET\n"
-"gpg:                using RSA key 3CE464558A84FDC69DB40CFB090B11993D9AEBB5\n"
-"@dots{}\n"
+"git fetch origin keyring:keyring\n"
+"guix git authenticate 9edb3f66fd807b096b48283debdcddccfea34bad \\\n"
+"  \"BBB0 2DDF 2CEA F6A8 0D1D  E643 A2A0 6DF2 A33A 54FA\"\n"
 
 #. type: Plain text
-#: doc/contributing.texi:69
-msgid "... meaning that changes to this file are all signed with key @code{3CE464558A84FDC69DB40CFB090B11993D9AEBB5} (you may need to fetch this key from a key server, if you have not done it yet)."
-msgstr "... это означает, что все изменения в этом файле подписаны ключом @code{3CE464558A84FDC69DB40CFB090B11993D9AEBB5} (вам может потребоваться получить этот ключ с сервера ключей, если вы еще этого не сделали)."
+#: doc/contributing.texi:61
+msgid "This command completes with exit code zero on success; it prints an error message and exits with a non-zero code otherwise."
+msgstr "Эта команда возвращает нуль в случае успеха; в противном случае будет напечатано сообщение об ошибке и команда завершит работу, вернув ненулевой код."
 
 #. type: Plain text
-#: doc/contributing.texi:72
-msgid "From there on, you can authenticate all the commits included in your checkout by running:"
-msgstr "После этого вы можете аутентифицировать все проверенные коммиты, запустив:"
-
-#. type: example
-#: doc/contributing.texi:75
-#, no-wrap
-msgid "make authenticate\n"
-msgstr "make authenticate\n"
+#: doc/contributing.texi:68
+msgid "As you can see, there is a chicken-and-egg problem: you first need to have Guix installed.  Typically you would install Guix System (@pxref{System Installation}) or Guix on top of another distro (@pxref{Binary Installation}); in either case, you would verify the OpenPGP signature on the installation medium.  This ``bootstraps'' the trust chain."
+msgstr "Как видите, здесь возникает проблема курицы и яйца: сначала вам нужно установить Guix. Обычно вы устанавливаете Guix System (@pxref{System Installation}) или Guix поверх другого дистрибутива (@pxref{Binary Installation}); в любом случае вы должны проверить подпись OpenPGP на установочном носителе.  Это ``запускает'' (``bootstraps'') цепочку доверия."
 
 #. type: Plain text
-#: doc/contributing.texi:78
-msgid "The first run takes a couple of minutes, but subsequent runs are faster."
-msgstr "Первый запуск занимает пару минут, но последующие запускаются быстрее."
-
-#. type: quotation
-#: doc/contributing.texi:79 doc/contributing.texi:1207 doc/guix.texi:496
-#: doc/guix.texi:545 doc/guix.texi:1562 doc/guix.texi:1827 doc/guix.texi:2038
-#: doc/guix.texi:2259 doc/guix.texi:2454 doc/guix.texi:4265 doc/guix.texi:4481
-#: doc/guix.texi:4782 doc/guix.texi:5012 doc/guix.texi:5133 doc/guix.texi:5185
-#: doc/guix.texi:6839 doc/guix.texi:6909 doc/guix.texi:8642 doc/guix.texi:8654
-#: doc/guix.texi:10708 doc/guix.texi:11267 doc/guix.texi:11819
-#: doc/guix.texi:14564 doc/guix.texi:21036 doc/guix.texi:26359
-#: doc/guix.texi:26570 doc/guix.texi:26729 doc/guix.texi:26850
-#: doc/guix.texi:27032
-#, no-wrap
-msgid "Note"
-msgstr "Примечание"
-
-#. type: quotation
-#: doc/contributing.texi:83
-msgid "You are advised to run @command{make authenticate} after every @command{git pull} invocation.  This ensures you keep receiving valid changes to the repository"
-msgstr "Рекомендуется запускать @command{make authenticate} после каждого вызова @command{git pull}. Это гарантирует, что вы продолжаете получать действительные изменения в репозитории"
-
-#. type: Plain text
-#: doc/contributing.texi:89
+#: doc/contributing.texi:73
 msgid "The easiest way to set up a development environment for Guix is, of course, by using Guix! The following command starts a new shell where all the dependencies and appropriate environment variables are set up to hack on Guix:"
 msgstr "Самый простой способ установить развернуть среду разработки для Guix — это, конечно, использовать Guix! Следующая команда запустит новую оболочку во всеми зависимостями и необходимыми переменными окружения:"
 
 #. type: example
-#: doc/contributing.texi:92
+#: doc/contributing.texi:76
 #, no-wrap
 msgid "guix environment guix --pure\n"
 msgstr "guix environment guix --pure\n"
 
 #. type: Plain text
-#: doc/contributing.texi:95
+#: doc/contributing.texi:79
 msgid "@xref{Invoking guix environment}, for more information on that command."
 msgstr "Подробные сведения об этой команде см. в @xref{Invoking guix environment}."
 
 #. type: Plain text
-#: doc/contributing.texi:99
+#: doc/contributing.texi:83
 msgid "If you are unable to use Guix when building Guix from a checkout, the following are the required packages in addition to those mentioned in the installation instructions (@pxref{Requirements})."
 msgstr "Если вам Guix не удаётся использовать при сборке из чекаута, установите следующие пакеты в дополнение к тем, что были указаны в инструкции по установке (@pxref{Требования})."
 
 #. type: item
-#: doc/contributing.texi:101
+#: doc/contributing.texi:85
 #, no-wrap
 msgid "@url{https://gnu.org/software/autoconf/, GNU Autoconf};"
 msgstr "@url{https://gnu.org/software/autoconf/, GNU Autoconf};"
 
 #. type: item
-#: doc/contributing.texi:102
+#: doc/contributing.texi:86
 #, no-wrap
 msgid "@url{https://gnu.org/software/automake/, GNU Automake};"
 msgstr "@url{https://gnu.org/software/automake/, GNU Automake};"
 
 #. type: item
-#: doc/contributing.texi:103
+#: doc/contributing.texi:87
 #, no-wrap
 msgid "@url{https://gnu.org/software/gettext/, GNU Gettext};"
 msgstr "@url{https://gnu.org/software/gettext/, GNU Gettext};"
 
 #. type: item
-#: doc/contributing.texi:104
+#: doc/contributing.texi:88
 #, no-wrap
 msgid "@url{https://gnu.org/software/texinfo/, GNU Texinfo};"
 msgstr "@url{https://gnu.org/software/texinfo/, GNU Texinfo};"
 
 #. type: item
-#: doc/contributing.texi:105
+#: doc/contributing.texi:89
 #, no-wrap
 msgid "@url{https://www.graphviz.org/, Graphviz};"
 msgstr "@url{https://www.graphviz.org/, Graphviz};"
 
 #. type: item
-#: doc/contributing.texi:106
+#: doc/contributing.texi:90
 #, no-wrap
 msgid "@url{https://www.gnu.org/software/help2man/, GNU Help2man (optional)}."
 msgstr "@url{https://www.gnu.org/software/help2man/, GNU Help2man (optional)}."
 
 #. type: Plain text
-#: doc/contributing.texi:111
+#: doc/contributing.texi:95
 msgid "On Guix, extra dependencies can be added by instead running @command{guix environment} with @option{--ad-hoc}:"
 msgstr "В Guix дополнительные зависимости можно добавить, запустив @command{guix environment} с параметром @option{--ad-hoc}:"
 
 #. type: example
-#: doc/contributing.texi:114
+#: doc/contributing.texi:98
 #, no-wrap
 msgid "guix environment guix --pure --ad-hoc help2man git strace\n"
 msgstr "guix environment guix --pure --ad-hoc help2man git strace\n"
 
 #. type: Plain text
-#: doc/contributing.texi:118
+#: doc/contributing.texi:102
 msgid "Run @command{./bootstrap} to generate the build system infrastructure using Autoconf and Automake.  If you get an error like this one:"
 msgstr "Запустите @command{./bootstrap}, чтобы инициировать инфраструктуру сборки системы, используя Autoconf и Automake. Если вы получили такую ошибку:"
 
 #. type: example
-#: doc/contributing.texi:121
+#: doc/contributing.texi:105
 #, no-wrap
 msgid "configure.ac:46: error: possibly undefined macro: PKG_CHECK_MODULES\n"
 msgstr "configure.ac:46: error: possibly undefined macro: PKG_CHECK_MODULES\n"
 
 #. type: Plain text
-#: doc/contributing.texi:130
+#: doc/contributing.texi:114
 msgid "it probably means that Autoconf couldn’t find @file{pkg.m4}, which is provided by pkg-config.  Make sure that @file{pkg.m4} is available.  The same holds for the @file{guile.m4} set of macros provided by Guile.  For instance, if you installed Automake in @file{/usr/local}, it wouldn’t look for @file{.m4} files in @file{/usr/share}.  In that case, you have to invoke the following command:"
 msgstr "это означает, скорее всего, что Autoconf не смог найти файл @file{pkg.m4}, который предоставляется pkg-config. Убедитесь, что файл @file{pkg.m4} доступен. То же относится к @file{guile.m4}, набору макросов, предоставляемых Guile. Например, если вы установили Automake в @file{/usr/local}, он не будет искать файлы @file{.m4} в @file{/usr/share}. Тогда нужно выполнить следующую команду:"
 
 #. type: example
-#: doc/contributing.texi:133
+#: doc/contributing.texi:117
 #, no-wrap
 msgid "export ACLOCAL_PATH=/usr/share/aclocal\n"
 msgstr "export ACLOCAL_PATH=/usr/share/aclocal\n"
 
 #. type: Plain text
-#: doc/contributing.texi:137
+#: doc/contributing.texi:121
 msgid "@xref{Macro Search Path,,, automake, The GNU Automake Manual}, for more information."
 msgstr "см. @xref{Macro Search Path,,, automake, The GNU Automake Manual}, чтобы получить больше информации."
 
 #. type: Plain text
-#: doc/contributing.texi:143
-msgid "Then, run @command{./configure} as usual.  Make sure to pass @code{--localstatedir=@var{directory}} where @var{directory} is the @code{localstatedir} value used by your current installation (@pxref{The Store}, for information about this).  We recommend to use the value @code{/var}."
+#: doc/contributing.texi:128
+#, fuzzy
+#| msgid "Then, run @command{./configure} as usual.  Make sure to pass @code{--localstatedir=@var{directory}} where @var{directory} is the @code{localstatedir} value used by your current installation (@pxref{The Store}, for information about this).  We recommend to use the value @code{/var}."
+msgid "Then, run @command{./configure} as usual.  Make sure to pass @code{--localstatedir=@var{directory}} where @var{directory} is the @code{localstatedir} value used by your current installation (@pxref{The Store}, for information about this), usually @file{/var}.  Note that you will probably not run @command{make install} at the end (you don't have to) but it's still important to pass the right @code{localstatedir}."
 msgstr "Затем выполните команду @command{./configure} как обычно. Не забудьте указать параметр @code{--localstatedir=@var{directory}}, где @var{directory} — это значение @code{localstatedir}, указывающее на каталог текущей установки (подробные сведения см. в разделе @pxref{The Store}). Мы рекомендуем использовать значение @code{/var}."
 
 #. type: Plain text
-#: doc/contributing.texi:148
+#: doc/contributing.texi:133
 msgid "Finally, you have to invoke @code{make check} to run tests (@pxref{Running the Test Suite}).  If anything fails, take a look at installation instructions (@pxref{Installation})  or send a message to the @email{guix-devel@@gnu.org, mailing list}."
 msgstr "Наконец, нужно вызвать @code{make check}, чтобы запустить тесты (@pxref{Running the Test Suite}). Если что-либо неудачно, изучите инструкции установки (@pxref{Installation}) или отправьте сообщение в рассылку @email{guix-devel@@gnu.org}."
 
 #. type: Plain text
+#: doc/contributing.texi:136
+msgid "From there on, you can authenticate all the commits included in your checkout by running:"
+msgstr "После этого вы можете аутентифицировать все проверенные коммиты, запустив:"
+
+#. type: example
+#: doc/contributing.texi:139
+#, no-wrap
+msgid "make authenticate\n"
+msgstr "make authenticate\n"
+
+#. type: Plain text
+#: doc/contributing.texi:142
+msgid "The first run takes a couple of minutes, but subsequent runs are faster."
+msgstr "Первый запуск занимает пару минут, но последующие запускаются быстрее."
+
+#. type: quotation
+#: doc/contributing.texi:143 doc/contributing.texi:1254 doc/guix.texi:544
+#: doc/guix.texi:593 doc/guix.texi:1661 doc/guix.texi:1908 doc/guix.texi:2119
+#: doc/guix.texi:2340 doc/guix.texi:2541 doc/guix.texi:4235 doc/guix.texi:4249
+#: doc/guix.texi:4331 doc/guix.texi:4561 doc/guix.texi:5380 doc/guix.texi:5626
+#: doc/guix.texi:5747 doc/guix.texi:5799 doc/guix.texi:8183 doc/guix.texi:8253
+#: doc/guix.texi:9917 doc/guix.texi:9957 doc/guix.texi:10169
+#: doc/guix.texi:10181 doc/guix.texi:12319 doc/guix.texi:12894
+#: doc/guix.texi:13626 doc/guix.texi:16582 doc/guix.texi:16732
+#: doc/guix.texi:23304 doc/guix.texi:26577 doc/guix.texi:28534
+#: doc/guix.texi:29947 doc/guix.texi:30181 doc/guix.texi:30351
+#: doc/guix.texi:30482 doc/guix.texi:30584 doc/guix.texi:30680
+#, no-wrap
+msgid "Note"
+msgstr "Примечание"
+
+#. type: quotation
+#: doc/contributing.texi:147
+#, fuzzy
+#| msgid "You are advised to run @command{make authenticate} after every @command{git pull} invocation.  This ensures you keep receiving valid changes to the repository"
+msgid "You are advised to run @command{make authenticate} after every @command{git pull} invocation.  This ensures you keep receiving valid changes to the repository."
+msgstr "Рекомендуется запускать @command{make authenticate} после каждого вызова @command{git pull}. Это гарантирует, что вы продолжаете получать действительные изменения в репозитории"
+
+#. type: Plain text
 #: doc/contributing.texi:157
 msgid "In order to keep a sane working environment, you will find it useful to test the changes made in your local source tree checkout without actually installing them.  So that you can distinguish between your ``end-user'' hat and your ``motley'' costume."
 msgstr "Чтобы держать в порядке рабочее окружение, удобно тестировать изменения, сделанные в вашем локальном дереве исходников, без их установки. Так вы сможете отличить 'наряд' вашего конечного пользователя от 'пёстрого костюма'."
 
 #. type: Plain text
-#: doc/contributing.texi:168
+#: doc/contributing.texi:167
 #, fuzzy
-msgid "To that end, all the command-line tools can be used even if you have not run @code{make install}.  To do that, you first need to have an environment with all the dependencies available (@pxref{Building from Git}), and then simply prefix each command with @command{./pre-inst-env} (the @file{pre-inst-env} script lives in the top build tree of Guix; it is generated by @command{./configure}).  An example@footnote{The @option{-E} flag to @command{sudo} guarantees that @code{GUILE_LOAD_PATH} is correctly set such that @command{guix-daemon} and the tools it uses can find the Guile modules they need.}:"
+msgid "To that end, all the command-line tools can be used even if you have not run @code{make install}.  To do that, you first need to have an environment with all the dependencies available (@pxref{Building from Git}), and then simply prefix each command with @command{./pre-inst-env} (the @file{pre-inst-env} script lives in the top build tree of Guix; it is generated by @command{./configure}).  As an example, here is how you would build the @code{hello} package as defined in your working tree (this assumes @command{guix-daemon} is already running on your system; it's OK if it's a different version):"
 msgstr "Так все утилиты командной строки могут использоваться, даже если вы не запустили @code{make install}. Чтобы сделать это, нужно получить окружение со всеми доступными зависимостями (@pxref{Building from Git}) и запускать команду с префиксом @command{./pre-inst-env} (скрипт @file{pre-inst-env} расположен в верхнем уровне дерева сборки Guix; он создаётся командой @command{./configure}), как тут@footnote{Флаг @option{-E} команды @command{sudo}) гарантирует, что @code{GUILE_LOAD_PATH} корректно установлена, так чтобы @command{guix-daemon} и утилиты, которые он использует, могли найти необходимые модули Guile.}:"
 
 #. type: example
-#: doc/contributing.texi:172
-#, no-wrap
-msgid ""
-"$ sudo -E ./pre-inst-env guix-daemon --build-users-group=guixbuild\n"
-"$ ./pre-inst-env guix build hello\n"
-msgstr ""
-"$ sudo -E ./pre-inst-env guix-daemon --build-users-group=guixbuild\n"
-"$ ./pre-inst-env guix build hello\n"
+#: doc/contributing.texi:170
+#, fuzzy, no-wrap
+#| msgid "./pre-inst-env guix build gnew --keep-failed\n"
+msgid "$ ./pre-inst-env guix build hello\n"
+msgstr "./pre-inst-env guix build gnew --keep-failed\n"
 
 #. type: Plain text
-#: doc/contributing.texi:176
-#, fuzzy
-#| msgid "Similarly, for a Guile session using the Guix modules:"
+#: doc/contributing.texi:174
 msgid "Similarly, an example for a Guile session using the Guix modules:"
-msgstr "Так же для сессии Guile, пользуясь модулями Guix:"
+msgstr "Аналогично, пример для Guile сессии с использованием модулей Guix:"
 
 #. type: example
-#: doc/contributing.texi:179
+#: doc/contributing.texi:177
 #, no-wrap
 msgid ""
 "$ ./pre-inst-env guile -c '(use-modules (guix utils)) (pk (%current-system))'\n"
@@ -388,30 +393,30 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/contributing.texi:181
+#: doc/contributing.texi:179
 #, no-wrap
 msgid ";;; (\"x86_64-linux\")\n"
 msgstr ";;; (\"x86_64-linux\")\n"
 
 #. type: cindex
-#: doc/contributing.texi:184
+#: doc/contributing.texi:182
 #, no-wrap
 msgid "REPL"
 msgstr "REPL"
 
 #. type: cindex
-#: doc/contributing.texi:185
+#: doc/contributing.texi:183
 #, no-wrap
 msgid "read-eval-print loop"
 msgstr "цикл чтение-вычисление-вывод"
 
 #. type: Plain text
-#: doc/contributing.texi:188
+#: doc/contributing.texi:186
 msgid "@dots{} and for a REPL (@pxref{Using Guile Interactively,,, guile, Guile Reference Manual}):"
 msgstr "@dots{} и для REPL (@pxref{Using Guile Interactively,,, guile, Guile Reference Manual}):"
 
 #. type: example
-#: doc/contributing.texi:203
+#: doc/contributing.texi:201
 #, no-wrap
 msgid ""
 "$ ./pre-inst-env guile\n"
@@ -443,35 +448,52 @@ msgstr ""
 "$1 = 361\n"
 
 #. type: Plain text
-#: doc/contributing.texi:207
+#: doc/contributing.texi:209
+#, fuzzy
+msgid "If you are hacking on the daemon and its supporting code or if @command{guix-daemon} is not already running on your system, you can launch it straight from the build tree@footnote{The @option{-E} flag to @command{sudo} guarantees that @code{GUILE_LOAD_PATH} is correctly set such that @command{guix-daemon} and the tools it uses can find the Guile modules they need.}:"
+msgstr "Так все утилиты командной строки могут использоваться, даже если вы не запустили @code{make install}. Чтобы сделать это, нужно получить окружение со всеми доступными зависимостями (@pxref{Building from Git}) и запускать команду с префиксом @command{./pre-inst-env} (скрипт @file{pre-inst-env} расположен в верхнем уровне дерева сборки Guix; он создаётся командой @command{./configure}), как тут@footnote{Флаг @option{-E} команды @command{sudo}) гарантирует, что @code{GUILE_LOAD_PATH} корректно установлена, так чтобы @command{guix-daemon} и утилиты, которые он использует, могли найти необходимые модули Guile.}:"
+
+#. type: example
+#: doc/contributing.texi:212
+#, fuzzy, no-wrap
+#| msgid ""
+#| "$ sudo -E ./pre-inst-env guix-daemon --build-users-group=guixbuild\n"
+#| "$ ./pre-inst-env guix build hello\n"
+msgid "$ sudo -E ./pre-inst-env guix-daemon --build-users-group=guixbuild\n"
+msgstr ""
+"$ sudo -E ./pre-inst-env guix-daemon --build-users-group=guixbuild\n"
+"$ ./pre-inst-env guix build hello\n"
+
+#. type: Plain text
+#: doc/contributing.texi:216
 msgid "The @command{pre-inst-env} script sets up all the environment variables necessary to support this, including @env{PATH} and @env{GUILE_LOAD_PATH}."
 msgstr "Скрипт @command{pre-inst-env} устанавливает все переменные окружения, которые необходимы для этой задачи, включая @env{PATH} и @env{GUILE_LOAD_PATH}."
 
 #. type: Plain text
-#: doc/contributing.texi:212
+#: doc/contributing.texi:221
 msgid "Note that @command{./pre-inst-env guix pull} does @emph{not} upgrade the local source tree; it simply updates the @file{~/.config/guix/current} symlink (@pxref{Invoking guix pull}).  Run @command{git pull} instead if you want to upgrade your local source tree."
 msgstr "Заметим, что @command{./pre-inst-env guix pull} @emph{не} обновляет локальное дерево исходников. Эта команда только обновляет символическую ссылку @file{~/.config/guix/current} (@pxref{Invoking guix pull}). Выполните @command{git pull}, если вы хотите обновить локальное дерево исходников."
 
 #. type: Plain text
-#: doc/contributing.texi:222
+#: doc/contributing.texi:231
 #, fuzzy
 #| msgid "The Perfect Setup to hack on Guix is basically the perfect setup used for Guile hacking (@pxref{Using Guile in Emacs,,, guile, Guile Reference Manual}).  First, you need more than an editor, you need @url{http://www.gnu.org/software/emacs, Emacs}, empowered by the wonderful @url{http://nongnu.org/geiser/, Geiser}.  To set that up, run:"
 msgid "The Perfect Setup to hack on Guix is basically the perfect setup used for Guile hacking (@pxref{Using Guile in Emacs,,, guile, Guile Reference Manual}).  First, you need more than an editor, you need @url{https://www.gnu.org/software/emacs, Emacs}, empowered by the wonderful @url{https://nongnu.org/geiser/, Geiser}.  To set that up, run:"
 msgstr "Совершенная установка для программирования Guix --- это лучший способ разработки Guix (@pxref{Using Guile in Emacs,,, guile, Guile Reference Manual}). Во-первых, здесь нужен мощный текстовый редактор, нужен @url{http://www.gnu.org/software/emacs, Emacs}, дополненный замечательным @url{http://nongnu.org/geiser/, Geiser}. Чтобы установить это, введите:"
 
 #. type: example
-#: doc/contributing.texi:225
+#: doc/contributing.texi:234
 #, no-wrap
 msgid "guix package -i emacs guile emacs-geiser\n"
 msgstr "guix package -i emacs guile emacs-geiser\n"
 
 #. type: Plain text
-#: doc/contributing.texi:234
+#: doc/contributing.texi:243
 msgid "Geiser allows for interactive and incremental development from within Emacs: code compilation and evaluation from within buffers, access to on-line documentation (docstrings), context-sensitive completion, @kbd{M-.} to jump to an object definition, a REPL to try out your code, and more (@pxref{Introduction,,, geiser, Geiser User Manual}).  For convenient Guix development, make sure to augment Guile’s load path so that it finds source files from your checkout:"
 msgstr "Geiser добавляет возможности интерактивной пошаговой разработки внутри Emacs: компиляция и запуск кода в буферах, доступ к онлайн-документации (docstrings), контекстные дополнения, @kbd{M-.} для перемещения к определениям объектов, REPL для тестирования кода и многое другое (@pxref{Introduction,,, geiser, Geiser User Manual}). Для удобной разработки Guix обязательно настройте Guile для загрузки файлов из вашей инстанции:"
 
 #. type: lisp
-#: doc/contributing.texi:239
+#: doc/contributing.texi:248
 #, no-wrap
 msgid ""
 ";; @r{Assuming the Guix checkout is in ~/src/guix.}\n"
@@ -483,39 +505,39 @@ msgstr ""
 "  (add-to-list 'geiser-guile-load-path \"~/src/guix\"))\n"
 
 #. type: Plain text
-#: doc/contributing.texi:247
+#: doc/contributing.texi:256
 #, fuzzy
 #| msgid "To actually edit the code, Emacs already has a neat Scheme mode.  But in addition to that, you must not miss @url{http://www.emacswiki.org/emacs/ParEdit, Paredit}.  It provides facilities to directly operate on the syntax tree, such as raising an s-expression or wrapping it, swallowing or rejecting the following s-expression, etc."
 msgid "To actually edit the code, Emacs already has a neat Scheme mode.  But in addition to that, you must not miss @url{https://www.emacswiki.org/emacs/ParEdit, Paredit}.  It provides facilities to directly operate on the syntax tree, such as raising an s-expression or wrapping it, swallowing or rejecting the following s-expression, etc."
 msgstr "На самом деле, для редактирования кода в Emacs уже есть отличный режим Scheme. Но в дополнение к этому не забудьте @url{http://www.emacswiki.org/emacs/ParEdit, Paredit}. Он добавляет утилиты для непосредственной обработки синтаксиса, как например, вызов s-expression или покрытие его, принятие или отклонение следующего s-expression и т.д."
 
 #. type: cindex
-#: doc/contributing.texi:248
+#: doc/contributing.texi:257
 #, no-wrap
 msgid "code snippets"
 msgstr "сниппеты кода"
 
 #. type: cindex
-#: doc/contributing.texi:249
+#: doc/contributing.texi:258
 #, no-wrap
 msgid "templates"
 msgstr "шаблоны"
 
 #. type: cindex
-#: doc/contributing.texi:250
+#: doc/contributing.texi:259
 #, no-wrap
 msgid "reducing boilerplate"
 msgstr "сокращение шаблонов"
 
 #. type: Plain text
-#: doc/contributing.texi:257
+#: doc/contributing.texi:266
 #, fuzzy
 #| msgid "We also provide templates for common git commit messages and package definitions in the @file{etc/snippets} directory.  These templates can be used with @url{http://joaotavora.github.io/yasnippet/, YASnippet} to expand short trigger strings to interactive text snippets.  You may want to add the snippets directory to the @var{yas-snippet-dirs} variable in Emacs."
 msgid "We also provide templates for common git commit messages and package definitions in the @file{etc/snippets} directory.  These templates can be used with @url{https://joaotavora.github.io/yasnippet/, YASnippet} to expand short trigger strings to interactive text snippets.  You may want to add the snippets directory to the @var{yas-snippet-dirs} variable in Emacs."
 msgstr "Также мы предоставляем шаблоны стандартных сообщений коммитов git и шаблоны определений пакетов в директории @file{etc/snippets}. Эти шаблоны можно использовать с @url{http://joaotavora.github.io/yasnippet/, YASnippet} и вставлять сниппеты кода, используя короткие строки-триггеры. Возможно, вы захотите добавить директорию сниппетов в переменную Emacs @var{yas-snippet-dirs}."
 
 #. type: lisp
-#: doc/contributing.texi:262
+#: doc/contributing.texi:271
 #, no-wrap
 msgid ""
 ";; @r{Assuming the Guix checkout is in ~/src/guix.}\n"
@@ -527,40 +549,42 @@ msgstr ""
 "  (add-to-list 'yas-snippet-dirs \"~/src/guix/etc/snippets\"))\n"
 
 #. type: Plain text
-#: doc/contributing.texi:270
+#: doc/contributing.texi:279
 msgid "The commit message snippets depend on @url{https://magit.vc/, Magit} to display staged files.  When editing a commit message type @code{add} followed by @kbd{TAB} to insert a commit message template for adding a package; type @code{update} followed by @kbd{TAB} to insert a template for updating a package; type @code{https} followed by @kbd{TAB} to insert a template for changing the home page URI of a package to HTTPS."
 msgstr "Тексты сообщений коммитов зависят от отображения затронутых файлов @url{https://magit.vc/, Magit}. Во время редактирования сообщения коммита типа @code{add} нажмите @kbd{TAB} после его ввода, чтобы вставить шаблон сообщения коммита добавления пакета; редактируя тип @code{update}, нажмите @kbd{TAB}, чтобы вставить шаблон обновления пакета; тип @code{https} - кнопка @kbd{TAB} вставит шаблон изменения адреса домашней страницы пакета на HTTPS."
 
 #. type: Plain text
-#: doc/contributing.texi:276
+#: doc/contributing.texi:285
 msgid "The main snippet for @code{scheme-mode} is triggered by typing @code{package...} followed by @kbd{TAB}.  This snippet also inserts the trigger string @code{origin...}, which can be expanded further.  The @code{origin} snippet in turn may insert other trigger strings ending on @code{...}, which also can be expanded further."
 msgstr "Основной код для @code{scheme-mode} вызывается при вводе @code{package...} и кнопки @kbd{TAB}. Этот код также вставляет строку триггера @code{origin...}, который может быть расширен в дальнейшем. Код @code{origin...}, в свою очередь, может вставить строки других триггеров, завершающихся @code{...}, который также может быть расширен в дальнейшем."
 
 #. type: cindex
-#: doc/contributing.texi:277
+#: doc/contributing.texi:286
 #, no-wrap
 msgid "insert or update copyright"
 msgstr "внести или обновить авторские права"
 
 #. type: code{#1}
-#: doc/contributing.texi:278
+#: doc/contributing.texi:287
 #, no-wrap
 msgid "M-x guix-copyright"
 msgstr "M-x guix-copyright"
 
 #. type: code{#1}
-#: doc/contributing.texi:279
+#: doc/contributing.texi:288
 #, no-wrap
 msgid "M-x copyright-update"
-msgstr ""
+msgstr "M-x copyright-update"
 
 #. type: Plain text
-#: doc/contributing.texi:283
-msgid "Additionaly we provide insertion and automatic update of a copyright in @file{etc/copyright.el}.  You may want to set your full name, mail, and load a file."
+#: doc/contributing.texi:292
+#, fuzzy
+#| msgid "Additionaly we provide insertion and automatic update of a copyright in @file{etc/copyright.el}.  You may want to set your full name, mail, and load a file."
+msgid "We additionally provide insertion and automatic update of a copyright in @file{etc/copyright.el}.  You may want to set your full name, mail, and load a file."
 msgstr "Кроме того, мы предоставляем автоматическое обновление авторских прав в @file{etc/copyright.el}. Возможно, вы захотите указать свое полное имя, почту и загрузить файл."
 
 #. type: lisp
-#: doc/contributing.texi:289
+#: doc/contributing.texi:298
 #, no-wrap
 msgid ""
 "(setq user-full-name \"Alice Doe\")\n"
@@ -568,278 +592,296 @@ msgid ""
 ";; @r{Assuming the Guix checkout is in ~/src/guix.}\n"
 "(load-file \"~/src/guix/etc/copyright.el\")\n"
 msgstr ""
+"(setq user-full-name \"Alice Doe\")\n"
+"(setq user-mail-address \"alice@@mail.org\")\n"
+";; @r{Assuming the Guix checkout is in ~/src/guix.}\n"
+"(load-file \"~/src/guix/etc/copyright.el\")\n"
 
 #. type: Plain text
-#: doc/contributing.texi:292
+#: doc/contributing.texi:301
 msgid "To insert a copyright at the current line invoke @code{M-x guix-copyright}."
 msgstr "Чтобы ввести авторское право в текущей строке, вызовите @code{M-x guix-copyright}."
 
 #. type: Plain text
-#: doc/contributing.texi:294
+#: doc/contributing.texi:303
 msgid "To update a copyright you need to specify a @code{copyright-names-regexp}."
 msgstr "Для обновления авторских прав необходимо указать @code{copyright-names-regexp}."
 
 #. type: lisp
-#: doc/contributing.texi:298
+#: doc/contributing.texi:307
 #, no-wrap
 msgid ""
 "(setq copyright-names-regexp\n"
 "      (format \"%s <%s>\" user-full-name user-mail-address))\n"
 msgstr ""
+"(setq copyright-names-regexp\n"
+"      (format \"%s <%s>\" user-full-name user-mail-address))\n"
 
 #. type: Plain text
-#: doc/contributing.texi:304
+#: doc/contributing.texi:313
 msgid "You can check if your copyright is up to date by evaluating @code{M-x copyright-update}.  If you want to do it automatically after each buffer save then add @code{(add-hook 'after-save-hook 'copyright-update)} in Emacs."
 msgstr "Вы можете проверить актуальность своих авторских прав, вызвав @code{M-x copyright-update}. Если вы хотите делать это автоматически после каждого сохранения в буфер, то добавьте @code{(add-hook 'after-save-hook 'copyright-update)} в Emacs."
 
 #. type: cindex
-#: doc/contributing.texi:308
+#: doc/contributing.texi:317
 #, no-wrap
 msgid "packages, creating"
 msgstr "создание, пакетов"
 
 #. type: Plain text
-#: doc/contributing.texi:312
+#: doc/contributing.texi:321
 msgid "The GNU distribution is nascent and may well lack some of your favorite packages.  This section describes how you can help make the distribution grow."
 msgstr "Дистрибутив GNU - в процессе возникновения и может не содержать ваши любимые пакеты. Этот раздел описывает как можно помочь с развитием дистрибутива."
 
 #. type: Plain text
-#: doc/contributing.texi:320
+#: doc/contributing.texi:329
 msgid "Free software packages are usually distributed in the form of @dfn{source code tarballs}---typically @file{tar.gz} files that contain all the source files.  Adding a package to the distribution means essentially two things: adding a @dfn{recipe} that describes how to build the package, including a list of other packages required to build it, and adding @dfn{package metadata} along with that recipe, such as a description and licensing information."
 msgstr "Пакеты свободного программного обеспечения обычно распространяются в виде @dfn{архивов исходного кода} (файлы @file{tar.gz}), которые содержат все исходные файлы. Добавить пакет в дистрибутив означает, по существу, две вещи: добавление @dfn{рецепта}, в котором обозначено, как собирать пакет, включая список других пакетов, необходимых для сборки данного, а также добавление @dfn{метаданных пакета} вместе с рецептом, как например, описание информации о лицензировании."
 
 #. type: Plain text
-#: doc/contributing.texi:329
+#: doc/contributing.texi:338
 msgid "In Guix all this information is embodied in @dfn{package definitions}.  Package definitions provide a high-level view of the package.  They are written using the syntax of the Scheme programming language; in fact, for each package we define a variable bound to the package definition, and export that variable from a module (@pxref{Package Modules}).  However, in-depth Scheme knowledge is @emph{not} a prerequisite for creating packages.  For more information on package definitions, @pxref{Defining Packages}."
 msgstr "В Guix вся эта информация включена в @dfn{определения пакетов}. Определения пакетов представляют собой высокоуровневый обзор пакета. Они написаны с использованием синтаксиса языка программирования Scheme. Для каждого пакета задаётся набор переменных, которые составляют определение пакета, и затем это определение пакета экспортируется из модуля (@pxref{Package Modules}). Однако основательные знания Scheme @emph{not} не обязательны для создания пакетов. Для информации об определении пакетов см. @pxref{Defining Packages}."
 
 #. type: Plain text
-#: doc/contributing.texi:335
+#: doc/contributing.texi:344
 msgid "Once a package definition is in place, stored in a file in the Guix source tree, it can be tested using the @command{guix build} command (@pxref{Invoking guix build}).  For example, assuming the new package is called @code{gnew}, you may run this command from the Guix build tree (@pxref{Running Guix Before It Is Installed}):"
 msgstr "Когда определение пакета создано, сохранено в файле в дереве исходников Guix, оно может быть протестировано командой @command{guix build} (@pxref{Invoking guix build}). Например, допустим, новый пакет называется @code{gnew}, тогда можно запустить эту команду из дерева сборки Guix (@pxref{Running Guix Before It Is Installed}):"
 
 #. type: example
-#: doc/contributing.texi:338
+#: doc/contributing.texi:347
 #, no-wrap
 msgid "./pre-inst-env guix build gnew --keep-failed\n"
 msgstr "./pre-inst-env guix build gnew --keep-failed\n"
 
 #. type: Plain text
-#: doc/contributing.texi:344
+#: doc/contributing.texi:353
 msgid "Using @code{--keep-failed} makes it easier to debug build failures since it provides access to the failed build tree.  Another useful command-line option when debugging is @code{--log-file}, to access the build log."
 msgstr "Использование @code{--keep-failed} помогает при отладке ошибок сборки, так как эта опция предоставляет доступ к дереву неудачных сборок. Другая полезная опция командной строки при отладке - @code{--log-file}, которая даёт доступ к логу сборки."
 
 #. type: Plain text
-#: doc/contributing.texi:349
+#: doc/contributing.texi:358
 msgid "If the package is unknown to the @command{guix} command, it may be that the source file contains a syntax error, or lacks a @code{define-public} clause to export the package variable.  To figure it out, you may load the module from Guile to get more information about the actual error:"
 msgstr "Если пакет не известен команде @command{guix}, это может означать, что файл исходника содержит синтаксическую ошибку или не имеет предложения @code{define-public}, которое экспортирует переменную пакета. Чтобы разобраться, можно загрузить модуль из Guile и получить больше информации о текущей ошибке:"
 
 #. type: example
-#: doc/contributing.texi:352
+#: doc/contributing.texi:361
 #, no-wrap
 msgid "./pre-inst-env guile -c '(use-modules (gnu packages gnew))'\n"
 msgstr "./pre-inst-env guile -c '(use-modules (gnu packages gnew))'\n"
 
 #. type: Plain text
-#: doc/contributing.texi:359
-msgid "Once your package builds correctly, please send us a patch (@pxref{Submitting Patches}).  Well, if you need help, we will be happy to help you too.  Once the patch is committed in the Guix repository, the new package automatically gets built on the supported platforms by @url{@value{SUBSTITUTE-SERVER}, our continuous integration system}."
+#: doc/contributing.texi:368
+#, fuzzy
+#| msgid "Once your package builds correctly, please send us a patch (@pxref{Submitting Patches}).  Well, if you need help, we will be happy to help you too.  Once the patch is committed in the Guix repository, the new package automatically gets built on the supported platforms by @url{@value{SUBSTITUTE-SERVER}, our continuous integration system}."
+msgid "Once your package builds correctly, please send us a patch (@pxref{Submitting Patches}).  Well, if you need help, we will be happy to help you too.  Once the patch is committed in the Guix repository, the new package automatically gets built on the supported platforms by @url{@value{SUBSTITUTE-URL}, our continuous integration system}."
 msgstr "Если ваш пакет собирается без ошибок, пришлите нам свой патч (@pxref{Submitting Patches}). Если вам нужна помощь, мы будем рады помочь вам со своей стороны. После фиксации патча в репозитории Guix новый пакет будет автоматически собран для всех поддерживаемых платформ нашей @url{@value{SUBSTITUTE-SERVER} CI-системой}."
 
 #. type: cindex
-#: doc/contributing.texi:360
+#: doc/contributing.texi:369
 #, no-wrap
 msgid "substituter"
 msgstr "заменяющий"
 
 #. type: Plain text
-#: doc/contributing.texi:367
+#: doc/contributing.texi:376
 msgid "Users can obtain the new package definition simply by running @command{guix pull} (@pxref{Invoking guix pull}).  When @code{@value{SUBSTITUTE-SERVER}} is done building the package, installing the package automatically downloads binaries from there (@pxref{Substitutes}).  The only place where human intervention is needed is to review and apply the patch."
 msgstr "Пользователи могут получать новые доступные определения пакетов простым запуском @command{guix pull} (@pxref{Invoking guix pull}). Если @code{@value{SUBSTITUTE-SERVER}} выполнил сборку пакета, установка пакета выполнит автоматическое скачивание бинарных файлов оттуда (@pxref{Substitutes}). Единственное место, где нужна активность человека, - обзор и применение патча."
 
 #. type: subsection
-#: doc/contributing.texi:379 doc/contributing.texi:381
-#: doc/contributing.texi:382
+#: doc/contributing.texi:389 doc/contributing.texi:391
+#: doc/contributing.texi:392
 #, no-wrap
 msgid "Software Freedom"
 msgstr "Свобода программного обеспечения"
 
 #. type: menuentry
-#: doc/contributing.texi:379
+#: doc/contributing.texi:389
 msgid "What may go into the distribution."
 msgstr "Что может быть принято в дистрибутив."
 
 #. type: subsection
-#: doc/contributing.texi:379 doc/contributing.texi:409
-#: doc/contributing.texi:410
+#: doc/contributing.texi:389 doc/contributing.texi:419
+#: doc/contributing.texi:420
 #, no-wrap
 msgid "Package Naming"
 msgstr "Как называть пакеты"
 
 #. type: menuentry
-#: doc/contributing.texi:379
+#: doc/contributing.texi:389
 msgid "What's in a name?"
 msgstr "Что может быть в имени?"
 
 #. type: subsection
-#: doc/contributing.texi:379 doc/contributing.texi:434
-#: doc/contributing.texi:435
+#: doc/contributing.texi:389 doc/contributing.texi:444
+#: doc/contributing.texi:445
 #, no-wrap
 msgid "Version Numbers"
 msgstr "Номера версий"
 
 #. type: menuentry
-#: doc/contributing.texi:379
+#: doc/contributing.texi:389
 msgid "When the name is not enough."
 msgstr "Когда имени не достаточно."
 
 #. type: subsection
-#: doc/contributing.texi:379 doc/contributing.texi:525
-#: doc/contributing.texi:526
+#: doc/contributing.texi:389 doc/contributing.texi:535
+#: doc/contributing.texi:536
 #, no-wrap
 msgid "Synopses and Descriptions"
 msgstr "Краткие обзоры и описания"
 
 #. type: menuentry
-#: doc/contributing.texi:379
+#: doc/contributing.texi:389
 msgid "Helping users find the right package."
 msgstr "Помощь пользователю в поиске нужного пакета."
 
 #. type: subsection
-#: doc/contributing.texi:379 doc/contributing.texi:605
-#: doc/contributing.texi:606
+#: doc/contributing.texi:389 doc/contributing.texi:614
+#: doc/contributing.texi:615
+#, no-wrap
+msgid "Snippets versus Phases"
+msgstr "Сниппеты против Фаз"
+
+#. type: menuentry
+#: doc/contributing.texi:389
+msgid "Whether to use a snippet, or a build phase."
+msgstr "Где использовать сниппет, а где фазу сборки"
+
+#. type: subsection
+#: doc/contributing.texi:389 doc/contributing.texi:629
+#: doc/contributing.texi:630
 #, no-wrap
 msgid "Python Modules"
 msgstr "Модули Python"
 
 #. type: menuentry
-#: doc/contributing.texi:379
+#: doc/contributing.texi:389
 msgid "A touch of British comedy."
 msgstr "Английский юмор."
 
 #. type: subsection
-#: doc/contributing.texi:379 doc/contributing.texi:681
-#: doc/contributing.texi:682
+#: doc/contributing.texi:389 doc/contributing.texi:705
+#: doc/contributing.texi:706
 #, no-wrap
 msgid "Perl Modules"
 msgstr "Модули Perl"
 
 #. type: menuentry
-#: doc/contributing.texi:379
+#: doc/contributing.texi:389
 msgid "Little pearls."
 msgstr "Жемчужинки."
 
 #. type: subsection
-#: doc/contributing.texi:379 doc/contributing.texi:697
-#: doc/contributing.texi:698
+#: doc/contributing.texi:389 doc/contributing.texi:721
+#: doc/contributing.texi:722
 #, no-wrap
 msgid "Java Packages"
 msgstr "Пакеты Java"
 
 #. type: menuentry
-#: doc/contributing.texi:379
+#: doc/contributing.texi:389
 msgid "Coffee break."
 msgstr "Кофе-брейк."
 
 #. type: subsection
-#: doc/contributing.texi:379 doc/contributing.texi:717
-#: doc/contributing.texi:718
+#: doc/contributing.texi:389 doc/contributing.texi:741
+#: doc/contributing.texi:742
 #, no-wrap
 msgid "Rust Crates"
-msgstr ""
+msgstr "Rust Crates пакеты"
 
 #. type: menuentry
-#: doc/contributing.texi:379
-#, fuzzy
-#| msgid "Hardware Considerations"
+#: doc/contributing.texi:389
 msgid "Beware of oxidation."
-msgstr "По поводу железа"
+msgstr "Остерегайтесь окисления."
 
 #. type: subsection
-#: doc/contributing.texi:379 doc/contributing.texi:751
-#: doc/contributing.texi:752
+#: doc/contributing.texi:389 doc/contributing.texi:775
+#: doc/contributing.texi:776
 #, no-wrap
 msgid "Fonts"
 msgstr "Шрифты"
 
 #. type: menuentry
-#: doc/contributing.texi:379
+#: doc/contributing.texi:389
 msgid "Fond of fonts."
 msgstr "Любителям шрифтов."
 
 #. type: cindex
-#: doc/contributing.texi:385
+#: doc/contributing.texi:395
 #, no-wrap
 msgid "free software"
 msgstr "свободное программное обеспечение"
 
 #. type: Plain text
-#: doc/contributing.texi:393
+#: doc/contributing.texi:403
 #, fuzzy
 #| msgid "The GNU operating system has been developed so that users can have freedom in their computing.  GNU is @dfn{free software}, meaning that users have the @url{http://www.gnu.org/philosophy/free-sw.html,four essential freedoms}: to run the program, to study and change the program in source code form, to redistribute exact copies, and to distribute modified versions.  Packages found in the GNU distribution provide only software that conveys these four freedoms."
 msgid "The GNU operating system has been developed so that users can have freedom in their computing.  GNU is @dfn{free software}, meaning that users have the @url{https://www.gnu.org/philosophy/free-sw.html,four essential freedoms}: to run the program, to study and change the program in source code form, to redistribute exact copies, and to distribute modified versions.  Packages found in the GNU distribution provide only software that conveys these four freedoms."
 msgstr "Операционная система GNU разработана, чтобы пользователи имели свободу при работе за компьютером. GNU --- это @dfn{свободное программное обеспечение}, то есть пользователи могут иметь @url{http://www.gnu.org/philosophy/free-sw.html,четыре важнейшие свободы}: запускать программу, изучать и изменять исходный код программы, распространять самостоятельно точные копии и распространять изменённые версии. Пакеты, включенные в дистрибутив GNU, поставляют только программное обеспечение, которое даёт эти четыре свободы."
 
 #. type: Plain text
-#: doc/contributing.texi:399
+#: doc/contributing.texi:409
 #, fuzzy
 #| msgid "In addition, the GNU distribution follow the @url{http://www.gnu.org/distros/free-system-distribution-guidelines.html,free software distribution guidelines}.  Among other things, these guidelines reject non-free firmware, recommendations of non-free software, and discuss ways to deal with trademarks and patents."
 msgid "In addition, the GNU distribution follow the @url{https://www.gnu.org/distros/free-system-distribution-guidelines.html,free software distribution guidelines}.  Among other things, these guidelines reject non-free firmware, recommendations of non-free software, and discuss ways to deal with trademarks and patents."
 msgstr "Также дистрибутив GNU следует @url{http://www.gnu.org/distros/free-system-distribution-guidelines.html,рекомендациям для свободных дистрибутивов}. Эти рекомендации, среди прочих указаний, также отклоняют несвободные встроенные программы, рекомендации несвободного программного обеспечения и содержат доводы о том, как взаимодействовать с торговыми марками и патентами."
 
 #. type: Plain text
-#: doc/contributing.texi:407
+#: doc/contributing.texi:417
 msgid "Some otherwise free upstream package sources contain a small and optional subset that violates the above guidelines, for instance because this subset is itself non-free code.  When that happens, the offending items are removed with appropriate patches or code snippets in the @code{origin} form of the package (@pxref{Defining Packages}).  This way, @code{guix build --source} returns the ``freed'' source rather than the unmodified upstream source."
 msgstr "Но тем не менее, некоторые источники пакетов в оригинале содержат небольшие необязательные компоненты, которые нарушают указанные рекомендации, например, это может быть несвободный код. Если это происходит, такие компоненты удаляются применением соответствующих патчей или сниппетов в @code{исходный} код пакета @pxref{Defining Packages}). Так @code{guix build --source} возвращает \"восстановленный свободный\" исходный код вместо изначального исходника."
 
 #. type: cindex
-#: doc/contributing.texi:412
+#: doc/contributing.texi:422
 #, no-wrap
 msgid "package name"
 msgstr "имя пакета"
 
 #. type: Plain text
-#: doc/contributing.texi:420
+#: doc/contributing.texi:430
 msgid "A package has actually two names associated with it: First, there is the name of the @emph{Scheme variable}, the one following @code{define-public}.  By this name, the package can be made known in the Scheme code, for instance as input to another package.  Second, there is the string in the @code{name} field of a package definition.  This name is used by package management commands such as @command{guix package} and @command{guix build}."
 msgstr "Пакет, в действительности, имеет два имени, ассоциированных с ним: первое --- это имя @emph{переменной Scheme}, которая указана в @code{define-public}. Это имя делает пакет доступным в коде Scheme, например, может использоваться как входные данные другого пакета. Второе --- это строка в поле @code{name} в определении пакета. Это имя используется командами управления пакетами, например, @command{guix package} и @command{guix build}."
 
 #. type: Plain text
-#: doc/contributing.texi:425
+#: doc/contributing.texi:435
 msgid "Both are usually the same and correspond to the lowercase conversion of the project name chosen upstream, with underscores replaced with hyphens.  For instance, GNUnet is available as @code{gnunet}, and SDL_net as @code{sdl-net}."
 msgstr "Оба обычно представляют собой строки в нижнем регистре, содержащие имя оригинального проекта с дефисами вместо символов нижнего подчёркивания. Например, GNUnet доступен как @code{gnunet}, а SDL_net --- как @code{sdl-net}."
 
 #. type: Plain text
-#: doc/contributing.texi:430
+#: doc/contributing.texi:440
 msgid "We do not add @code{lib} prefixes for library packages, unless these are already part of the official project name.  But @pxref{Python Modules} and @ref{Perl Modules} for special rules concerning modules for the Python and Perl languages."
 msgstr "Мы не добавляем приставку @code{lib} для пакетов библиотек, несмотря на то, что это уже часть официального имени пакета. Но для @pxref{Python Modules} и @ref{Perl Modules} есть исключения, касающиеся модулей для языков Python и Perl."
 
 #. type: Plain text
-#: doc/contributing.texi:432
+#: doc/contributing.texi:442
 msgid "Font package names are handled differently, @pxref{Fonts}."
 msgstr "При именовании пакетов шрифтов имена меняются, @pxref{Fonts}."
 
 #. type: cindex
-#: doc/contributing.texi:437
+#: doc/contributing.texi:447
 #, no-wrap
 msgid "package version"
 msgstr "версия пакета"
 
 #. type: Plain text
-#: doc/contributing.texi:446
+#: doc/contributing.texi:456
 msgid "We usually package only the latest version of a given free software project.  But sometimes, for instance for incompatible library versions, two (or more) versions of the same package are needed.  These require different Scheme variable names.  We use the name as defined in @ref{Package Naming} for the most recent version; previous versions use the same name, suffixed by @code{-} and the smallest prefix of the version number that may distinguish the two versions."
 msgstr "Обычно мы опакечиваем только последнюю версию некоторого программного обеспечения. Но иногда, например, при наличии несовместимых версий библиотек, нужны две (или более) версии одного пакета. Это требует разных имён переменных Scheme. Мы используем имя, определённое в @ref{Package Naming}, для самой последней версии; предыдущие версии используют такое же имя с добавлением @code{-} и номера версии, что позволяет отличить две версии."
 
 #. type: Plain text
-#: doc/contributing.texi:449
+#: doc/contributing.texi:459
 msgid "The name inside the package definition is the same for all versions of a package and does not contain any version number."
 msgstr "Имя внутри описания пакета остаётся одно для всех версий пакета и не содержит номера версии."
 
 #. type: Plain text
-#: doc/contributing.texi:451
+#: doc/contributing.texi:461
 msgid "For instance, the versions 2.24.20 and 3.9.12 of GTK+ may be packaged as follows:"
 msgstr "Например, версии GTK+ 2.24.20 и 3.9.12 могут опакечиваться так:"
 
 #. type: lisp
-#: doc/contributing.texi:463
+#: doc/contributing.texi:473
 #, no-wrap
 msgid ""
 "(define-public gtk+\n"
@@ -865,12 +907,12 @@ msgstr ""
 "    ...))\n"
 
 #. type: Plain text
-#: doc/contributing.texi:465
+#: doc/contributing.texi:475
 msgid "If we also wanted GTK+ 3.8.2, this would be packaged as"
 msgstr "Если нам также нужен GTK+ 3.8.2, он будет размещён в пакете"
 
 #. type: lisp
-#: doc/contributing.texi:471
+#: doc/contributing.texi:481
 #, no-wrap
 msgid ""
 "(define-public gtk+-3.8\n"
@@ -886,23 +928,23 @@ msgstr ""
 "    ...))\n"
 
 #. type: cindex
-#: doc/contributing.texi:475
+#: doc/contributing.texi:485
 #, no-wrap
 msgid "version number, for VCS snapshots"
 msgstr "номер версии, для снимков СКВ"
 
 #. type: Plain text
-#: doc/contributing.texi:481
+#: doc/contributing.texi:491
 msgid "Occasionally, we package snapshots of upstream's version control system (VCS) instead of formal releases.  This should remain exceptional, because it is up to upstream developers to clarify what the stable release is.  Yet, it is sometimes necessary.  So, what should we put in the @code{version} field?"
 msgstr "Порой мы опакечиваем снепшоты исходников из системы контроля версий (СКВ) вместо официальных релизов. Это остаётся исключением, потому что только разработчики оригинальных программ решают, что является стабильным релизом. Иногда это имеет значение. Что же мы должны писать в поле @code{версия}?"
 
 #. type: Plain text
-#: doc/contributing.texi:489
+#: doc/contributing.texi:499
 msgid "Clearly, we need to make the commit identifier of the VCS snapshot visible in the version string, but we also need to make sure that the version string is monotonically increasing so that @command{guix package --upgrade} can determine which version is newer.  Since commit identifiers, notably with Git, are not monotonically increasing, we add a revision number that we increase each time we upgrade to a newer snapshot.  The resulting version string looks like this:"
 msgstr "Ясно, что нужно сделать отображение идентификатора коммита снепшота СКВ внутри строки версии, но мы также должны убедиться, что строка \"версия\" монотонно увеличивается, так чтобы @command{guix package --upgrade} могла определить, какая версия новее. Так как идентификаторы коммитов, что точно, Git, не увеличиваются, мы добавляем номер ревизии, которую мы увеличиваем каждый раз, когда мы обновляем до нового снепшота. Результирующая строка версии выглядит так:"
 
 #. type: example
-#: doc/contributing.texi:498
+#: doc/contributing.texi:508
 #, no-wrap
 msgid ""
 "2.0.11-3.cabba9e\n"
@@ -922,12 +964,14 @@ msgstr ""
 "последняя версия оригинала\n"
 
 #. type: Plain text
-#: doc/contributing.texi:507
-msgid "It is a good idea to strip commit identifiers in the @code{version} field to, say, 7 digits.  It avoids an aesthetic annoyance (assuming aesthetics have a role to play here) as well as problems related to OS limits such as the maximum shebang length (127 bytes for the Linux kernel.)  It is best to use the full commit identifiers in @code{origin}s, though, to avoid ambiguities.  A typical package definition may look like this:"
+#: doc/contributing.texi:517
+#, fuzzy
+#| msgid "It is a good idea to strip commit identifiers in the @code{version} field to, say, 7 digits.  It avoids an aesthetic annoyance (assuming aesthetics have a role to play here) as well as problems related to OS limits such as the maximum shebang length (127 bytes for the Linux kernel.)  It is best to use the full commit identifiers in @code{origin}s, though, to avoid ambiguities.  A typical package definition may look like this:"
+msgid "It is a good idea to strip commit identifiers in the @code{version} field to, say, 7 digits.  It avoids an aesthetic annoyance (assuming aesthetics have a role to play here) as well as problems related to OS limits such as the maximum shebang length (127 bytes for the Linux kernel).  It is best to use the full commit identifiers in @code{origin}s, though, to avoid ambiguities.  A typical package definition may look like this:"
 msgstr "Хорошая идея обрезать идентификаторы коммитов в поле @code{version}, скажем, до 7 цифр. Это позволяет избежать эстетического раздражения (эстетика здесь имеет значение), а также проблем с ограничениями ОС, как например, максимальная длина (127 байт для ядра Linux). Лучшее - это использовать полный идентификатор коммита в поле источник --- @code{origin} --- что позволяет избегать повторов. Стандартное описание пакета может выглядеть так:"
 
 #. type: lisp
-#: doc/contributing.texi:523
+#: doc/contributing.texi:533
 #, no-wrap
 msgid ""
 "(define my-package\n"
@@ -961,62 +1005,60 @@ msgstr ""
 "      )))\n"
 
 #. type: cindex
-#: doc/contributing.texi:528
+#: doc/contributing.texi:538
 #, no-wrap
 msgid "package description"
 msgstr "описание пакета"
 
 #. type: cindex
-#: doc/contributing.texi:529
+#: doc/contributing.texi:539
 #, no-wrap
 msgid "package synopsis"
 msgstr "краткий обзор пакета"
 
 #. type: Plain text
-#: doc/contributing.texi:536
+#: doc/contributing.texi:546
 msgid "As we have seen before, each package in GNU@tie{}Guix includes a synopsis and a description (@pxref{Defining Packages}).  Synopses and descriptions are important: They are what @command{guix package --search} searches, and a crucial piece of information to help users determine whether a given package suits their needs.  Consequently, packagers should pay attention to what goes into them."
 msgstr "Как мы видели ранее, каждый пакет в GNU@tie{}Guix включает краткое описание и полное описание (@pxref{Defining Packages}). Краткие описания и полные описания важны: по ним производится поиск @command{guix package --search}, и это важная информация, которая помогает пользователям определить, насколько пакет соответствует их потребностям. Следовательно, пакеты должны отвечать требованиям, предъявляемым к ним."
 
 #. type: Plain text
-#: doc/contributing.texi:544
+#: doc/contributing.texi:554
 msgid "Synopses must start with a capital letter and must not end with a period.  They must not start with ``a'' or ``the'', which usually does not bring anything; for instance, prefer ``File-frobbing tool'' over ``A tool that frobs files''.  The synopsis should say what the package is---e.g., ``Core GNU utilities (file, text, shell)''---or what it is used for---e.g., the synopsis for GNU@tie{}grep is ``Print lines matching a pattern''."
 msgstr "Краткие описания должны начинаться с прописной буквы и не должны заканчиваться точкой. Они не должны начинаться с артикля (англ. \"a\" или \"the\"), что обычно ничего не значит; например, лучше начать \"File-frobbing tool\" вместо \"A tool that frobs files\".  Краткое описание должно сообщать о том, что представляет собой пакет, то есть: \"Основные утилиты GNU (файлы, текст, оболочка)\", - или для чего он используется, то есть краткое описание для GNU@tie{}grep таково: \"Печать строк, содержащих паттерн\"."
 
 #. type: Plain text
-#: doc/contributing.texi:554
+#: doc/contributing.texi:564
 msgid "Keep in mind that the synopsis must be meaningful for a very wide audience.  For example, ``Manipulate alignments in the SAM format'' might make sense for a seasoned bioinformatics researcher, but might be fairly unhelpful or even misleading to a non-specialized audience.  It is a good idea to come up with a synopsis that gives an idea of the application domain of the package.  In this example, this might give something like ``Manipulate nucleotide sequence alignments'', which hopefully gives the user a better idea of whether this is what they are looking for."
 msgstr "Помните, что краткое описание должно быть понятным для очень широкой аудитории. Например, \"Манипулирование выравниванием в формате SAM\" может быть понятно продвинутым исследователям в области биоинформатики, но совершенно бесполезно или может ввести в заблужение не специалистов. Хорошая идея --- включать в краткое описание идею группы приложений, к которой относится пакет. В данном примере можно предложить такой вариант: \"Манипулирование выравниванием нуклеотидных последовательностей\", что, в целом, даёт пользователю лучшее представление о том, на что они смотрят."
 
 #. type: Plain text
-#: doc/contributing.texi:562
+#: doc/contributing.texi:572
 msgid "Descriptions should take between five and ten lines.  Use full sentences, and avoid using acronyms without first introducing them.  Please avoid marketing phrases such as ``world-leading'', ``industrial-strength'', and ``next-generation'', and avoid superlatives like ``the most advanced''---they are not helpful to users looking for a package and may even sound suspicious.  Instead, try to be factual, mentioning use cases and features."
 msgstr "Описания должны занимать от 5 до 10 строк. Используйте полные предложения, использование аббревиатур возможно при их первичной расшифровке. Пожалуйста, не пишите маркетинговые фразы типа \"мировой лидер\", \"промышленный\", \"следующего поколения\", также избегайте признаки превосходства, как \"самый продвинутый\" --- это не помогает пользователям отыскать пакет, и возможно, звучит сомнительно. Вместо этого рассказывайте о фактах, упоминая особенности и применение."
 
 #. type: cindex
-#: doc/contributing.texi:563
+#: doc/contributing.texi:573
 #, no-wrap
 msgid "Texinfo markup, in package descriptions"
 msgstr "Разметка Texinfo, в описаниях пакетов"
 
 #. type: Plain text
-#: doc/contributing.texi:572
+#: doc/contributing.texi:582
 msgid "Descriptions can include Texinfo markup, which is useful to introduce ornaments such as @code{@@code} or @code{@@dfn}, bullet lists, or hyperlinks (@pxref{Overview,,, texinfo, GNU Texinfo}).  However you should be careful when using some characters for example @samp{@@} and curly braces which are the basic special characters in Texinfo (@pxref{Special Characters,,, texinfo, GNU Texinfo}).  User interfaces such as @command{guix package --show} take care of rendering it appropriately."
 msgstr "Описания могут содержать разметку Texinfo, которая полезна при введении использовании подсветки как @code{@@code} или @code{@@dfn}, списков или гиперссылок (@pxref{Overview,,, texinfo, GNU Texinfo}). Однако будьте внимательны при пользовании символов @samp{@@} и фигурных скобок, которые вляются основными спецсимволами в Texinfo (@pxref{Special Characters,,, texinfo, GNU Texinfo}). Пользовательский интерфейс, например, @command{guix package --show}, учитывает и выводит текст с разметкой."
 
 #. type: Plain text
-#: doc/contributing.texi:578
-#, fuzzy
-#| msgid "Synopses and descriptions are translated by volunteers @uref{http://translationproject.org/domain/guix-packages.html, at the Translation Project} so that as many users as possible can read them in their native language.  User interfaces search them and display them in the language specified by the current locale."
+#: doc/contributing.texi:588
 msgid "Synopses and descriptions are translated by volunteers @uref{https://translationproject.org/domain/guix-packages.html, at the Translation Project} so that as many users as possible can read them in their native language.  User interfaces search them and display them in the language specified by the current locale."
-msgstr "Краткие описания и полные описания переведены участниками @uref{http://translationproject.org/domain/guix-packages.html, проекта Переводов}, это позволяет многим пользователям читать их на родном языке. Пользовательские интерфейсы ищут и отображают их на языке, заданном для текущей локали."
+msgstr ""
 
 #. type: Plain text
-#: doc/contributing.texi:583
+#: doc/contributing.texi:593
 msgid "To allow @command{xgettext} to extract them as translatable strings, synopses and descriptions @emph{must be literal strings}.  This means that you cannot use @code{string-append} or @code{format} to construct these strings:"
 msgstr "Чтобы дать возможность @command{xgettext} извлекать их как текст для перевода, краткие и полные описания  @emph{должны быть буквенными строками}.  Это означает, что нельзя пользоваться @code{string-append} или @code{format} при составлении этих строк:"
 
 #. type: lisp
-#: doc/contributing.texi:589
+#: doc/contributing.texi:599
 #, no-wrap
 msgid ""
 "(package\n"
@@ -1030,12 +1072,12 @@ msgstr ""
 "  (description (string-append \"Эта строка \" \"*не поддерживает*\" \" перевод.\")))\n"
 
 #. type: Plain text
-#: doc/contributing.texi:597
+#: doc/contributing.texi:607
 msgid "Translation is a lot of work so, as a packager, please pay even more attention to your synopses and descriptions as every change may entail additional work for translators.  In order to help them, it is possible to make recommendations or instructions visible to them by inserting special comments like this (@pxref{xgettext Invocation,,, gettext, GNU Gettext}):"
 msgstr "Перевод --- трудоёмкая работа. Как автор пакета, пожалуйста, уделите внимание краткому и полному описаниям, потому что каждое изменение влечет дополнительную работу для переводчиков. Чтобы помочь им, можно сделать рекомендации или инструкции, вставив специальные комментарии, как этот (@pxref{xgettext Invocation,,, gettext, GNU Gettext}):"
 
-#. type: example
-#: doc/contributing.texi:602
+#. type: lisp
+#: doc/contributing.texi:612
 #, no-wrap
 msgid ""
 ";; TRANSLATORS: \"X11 resize-and-rotate\" should not be translated.\n"
@@ -1047,769 +1089,831 @@ msgstr ""
 "for the X11 resize-and-rotate (RandR) extension. @dots{}\")\n"
 
 #. type: cindex
-#: doc/contributing.texi:608
+#: doc/contributing.texi:617
+#, no-wrap
+msgid "snippets, when to use"
+msgstr "сниппеты, где использовать"
+
+#. type: Plain text
+#: doc/contributing.texi:628
+msgid "The boundary between using an origin snippet versus a build phase to modify the sources of a package can be elusive.  Origin snippets are typically used to remove unwanted files such as bundled libraries, nonfree sources, or to apply simple substitutions.  The source derived from an origin should produce a source that can be used to build the package on any system that the upstream package supports (i.e., act as the corresponding source).  In particular, origin snippets must not embed store items in the sources; such patching should rather be done using build phases.  Refer to the @code{origin} record documentation for more information (@pxref{origin Reference})."
+msgstr "Граница между использованием сниппета и фазы сборки для изменения исходных кодов пакета может быть неуловимой. Обычно сниппеты используются для удаления нежелательных файлов, таких как связанные библиотеки, несвободные исходники, или для простых замен. Исходник, производный от оригинального исходника, должен создавать исходник, который можно использовать для сборки пакета в любой системе, поддерживаемой апстримом пакета. (т.е. действовать как соответствующий исходник).  В частности, сниппеты не должны встраивать элементы хранилища в источники; такое исправление лучше производить на этапах сборки.  Обратитель к @code{origin} документации за дополнительной информацией (@pxref{origin Reference})."
+
+#. type: cindex
+#: doc/contributing.texi:632
 #, no-wrap
 msgid "python"
 msgstr "python"
 
 #. type: Plain text
-#: doc/contributing.texi:614
+#: doc/contributing.texi:638
 msgid "We currently package Python 2 and Python 3, under the Scheme variable names @code{python-2} and @code{python} as explained in @ref{Version Numbers}.  To avoid confusion and naming clashes with other programming languages, it seems desirable that the name of a package for a Python module contains the word @code{python}."
 msgstr "В настоящее время мы поставляем пакеты Python 2 и Python 3 через переменную Scheme под именами @code{python-2} и @code{python} в соответствии с @ref{Version Numbers}. Чтобы предотвратить путанницу и конфликты имён других языков программирования, модули Python содержат слово @code{python}."
 
 #. type: Plain text
-#: doc/contributing.texi:621
+#: doc/contributing.texi:645
 #, fuzzy
 #| msgid "Some modules are compatible with only one version of Python, others with both.  If the package Foo compiles only with Python 3, we name it @code{python-foo}; if it compiles only with Python 2, we name it @code{python2-foo}. If it is compatible with both versions, we create two packages with the corresponding names."
 msgid "Some modules are compatible with only one version of Python, others with both.  If the package Foo is compiled with Python 3, we name it @code{python-foo}.  If it is compiled with Python 2, we name it @code{python2-foo}.  Packages should be added when they are necessary; we don't add Python 2 variants of the package unless we are going to use them."
 msgstr "Некоторые модули совместимы только с одной версией Python, другие - с обоими. Если пакет Foo работает только с Python 3, мы называем его @code{python-foo}. Если он работает только с Python 2, мы называем его @code{python2-foo}. Если он совместим с обеими версиями, мы создаём два пакета с соответствующими именами."
 
 #. type: Plain text
-#: doc/contributing.texi:627
+#: doc/contributing.texi:651
 msgid "If a project already contains the word @code{python}, we drop this; for instance, the module python-dateutil is packaged under the names @code{python-dateutil} and @code{python2-dateutil}.  If the project name starts with @code{py} (e.g.@: @code{pytz}), we keep it and prefix it as described above."
 msgstr "Если проект уже содержит слово @code{python}, мы отбрасываем его; например, модуль python-dateutil опакечен под именем @code{python-dateutil} и @code{python2-dateutil}. Если имя проекта начинается с @code{py} (т.е.@:  @code{pytz}), мы оставляем такое имя и добавляем префикс, как это описано выше."
 
 #. type: subsubsection
-#: doc/contributing.texi:628
+#: doc/contributing.texi:652
 #, no-wrap
 msgid "Specifying Dependencies"
 msgstr "Перечисление зависимостей"
 
 #. type: cindex
-#: doc/contributing.texi:629
+#: doc/contributing.texi:653
 #, no-wrap
 msgid "inputs, for Python packages"
 msgstr "входные данные, для пакетов Python"
 
 #. type: Plain text
-#: doc/contributing.texi:634
+#: doc/contributing.texi:658
 msgid "Dependency information for Python packages is usually available in the package source tree, with varying degrees of accuracy: in the @file{setup.py} file, in @file{requirements.txt}, or in @file{tox.ini}."
 msgstr "Информация о зависимостях для пакетов Python обычно доступна в дереве исходников пакета с различной степенью точности --- в файле @file{setup.py}, в @file{requirements.txt} или в @file{tox.ini}."
 
 #. type: Plain text
-#: doc/contributing.texi:640
+#: doc/contributing.texi:664
 msgid "Your mission, when writing a recipe for a Python package, is to map these dependencies to the appropriate type of ``input'' (@pxref{package Reference, inputs}).  Although the @code{pypi} importer normally does a good job (@pxref{Invoking guix import}), you may want to check the following check list to determine which dependency goes where."
 msgstr "Ваша миссия при написании рецепта сборки пакета Python --- отобразить эти зависимости в должном типе \"input\" (@pxref{package Reference, inputs}). Хотя импортёр @code{pypi} обычно отрабатывает хорошо (@pxref{Invoking guix import}), возможно, вы желаете просмотреть приведённый чек-лист, чтобы узнать о зависимостях."
 
 #. type: itemize
-#: doc/contributing.texi:648
+#: doc/contributing.texi:672
 msgid "We currently package Python 2 with @code{setuptools} and @code{pip} installed like Python 3.4 has per default.  Thus you don't need to specify either of these as an input.  @command{guix lint} will warn you if you do."
 msgstr "В настоящее время мы поставляем пакет Python 2 с @code{setuptools} и @code{pip}, установленные как Python 3.4 по умолчанию. Так что не нужно обозначать их как входные данные (input). @command{guix lint} сообщит об ошибке, если это происходит."
 
 #. type: itemize
-#: doc/contributing.texi:654
+#: doc/contributing.texi:678
 msgid "Python dependencies required at run time go into @code{propagated-inputs}.  They are typically defined with the @code{install_requires} keyword in @file{setup.py}, or in the @file{requirements.txt} file."
 msgstr "Зависимости Python, необходимые во время работы, идут в @code{propagated-inputs}. Они обычно определены с ключевым словом @code{install_requires} в @file{setup.py} или в файле @file{requirements.txt}."
 
 #. type: itemize
-#: doc/contributing.texi:662
+#: doc/contributing.texi:686
 msgid "Python packages required only at build time---e.g., those listed with the @code{setup_requires} keyword in @file{setup.py}---or only for testing---e.g., those in @code{tests_require}---go into @code{native-inputs}.  The rationale is that (1) they do not need to be propagated because they are not needed at run time, and (2) in a cross-compilation context, it's the ``native'' input that we'd want."
 msgstr "Пакеты Python, необходимые только во время сборки, то есть обозначенные в списке с ключевым словом @code{setup_requires} в @file{setup.py}, или только для тестов, то есть со словом @code{tests_require}, указываются в @code{native-inputs}. Основная причина в том, что, первое, они не должны распространяться, потому что они не нужны для запуска и работы, и второе, в контексте кросс-компиляции это \"нативные\" входные данные, которые нам требуются."
 
 #. type: itemize
-#: doc/contributing.texi:666
+#: doc/contributing.texi:690
 msgid "Examples are the @code{pytest}, @code{mock}, and @code{nose} test frameworks.  Of course if any of these packages is also required at run-time, it needs to go to @code{propagated-inputs}."
 msgstr "Примерами являются фреймворки тестирования @code{pytest}, @code{mock} и @code{nose}. Конечно, если какой-либо из этих пакетов также необходим во время запуска и работы, его следует указывать в @code{propagated-inputs}."
 
 #. type: itemize
-#: doc/contributing.texi:671
+#: doc/contributing.texi:695
 msgid "Anything that does not fall in the previous categories goes to @code{inputs}, for example programs or C libraries required for building Python packages containing C extensions."
 msgstr "Всё, что не попало в предыдущие категории, указывается в @code{inputs}, например, программы или библиотеки C, необходимые для сборки пакетов Python, которые используют расширения C."
 
 #. type: itemize
-#: doc/contributing.texi:677
+#: doc/contributing.texi:701
 msgid "If a Python package has optional dependencies (@code{extras_require}), it is up to you to decide whether to add them or not, based on their usefulness/overhead ratio (@pxref{Submitting Patches, @command{guix size}})."
 msgstr "Если у пакета Python есть необязательные зависимости (@code{extras_require}), самостоятельно решите, нужно ли их добавлять в зависимости от их полезности или избыточности (@pxref{Submitting Patches, @command{guix size}})."
 
 #. type: cindex
-#: doc/contributing.texi:684
+#: doc/contributing.texi:708
 #, no-wrap
 msgid "perl"
 msgstr "perl"
 
 #. type: Plain text
-#: doc/contributing.texi:695
+#: doc/contributing.texi:719
 msgid "Perl programs standing for themselves are named as any other package, using the lowercase upstream name.  For Perl packages containing a single class, we use the lowercase class name, replace all occurrences of @code{::} by dashes and prepend the prefix @code{perl-}.  So the class @code{XML::Parser} becomes @code{perl-xml-parser}.  Modules containing several classes keep their lowercase upstream name and are also prepended by @code{perl-}.  Such modules tend to have the word @code{perl} somewhere in their name, which gets dropped in favor of the prefix.  For instance, @code{libwww-perl} becomes @code{perl-libwww}."
 msgstr "Программы Perl именуются как и любой другой пакет, используя исходное имя в нижнем регистре. Для пакетов Perl, содержащих отдельный класс мы используем имя класса в нижнем регистре, заменяем все вхождения @code{::} на дефисы и добавляем приставку @code{perl-}. Так класс @code{XML::Parser} становится @code{perl-xml-parser}. Модули, содержащие несколько классов, сохраняют свои изначальные имена в нижнем регистре и также имеют префикс @code{perl-}. Подобные модули имеют тенденцию писать слово @code{perl} где-либо в их имени, так что это слово удаляется, так как префикс содержит это слово. Например, @code{libwww-perl} становится @code{perl-libwww}."
 
 #. type: cindex
-#: doc/contributing.texi:700
+#: doc/contributing.texi:724
 #, no-wrap
 msgid "java"
 msgstr "java"
 
 #. type: Plain text
-#: doc/contributing.texi:703
+#: doc/contributing.texi:727
 msgid "Java programs standing for themselves are named as any other package, using the lowercase upstream name."
 msgstr "Программы Java именуются как любой другой пакет, используя исходное им в нижнем регистре."
 
 #. type: Plain text
-#: doc/contributing.texi:709
+#: doc/contributing.texi:733
 msgid "To avoid confusion and naming clashes with other programming languages, it is desirable that the name of a package for a Java package is prefixed with @code{java-}.  If a project already contains the word @code{java}, we drop this; for instance, the package @code{ngsjava} is packaged under the name @code{java-ngs}."
 msgstr "Чтобы избежать путанницы и конфликтов имён с другими языками программирования, желательно именовать пакет, поставляющий программу Java, с префиксом @code{java-}. Если проект уже содержит слово @code{java}, мы обрезаем его. Например, пакет @code{ngsjava} опакечивается под именем @code{java-ngs}."
 
 #. type: Plain text
-#: doc/contributing.texi:715
+#: doc/contributing.texi:739
 msgid "For Java packages containing a single class or a small class hierarchy, we use the lowercase class name, replace all occurrences of @code{.} by dashes and prepend the prefix @code{java-}.  So the class @code{apache.commons.cli} becomes package @code{java-apache-commons-cli}."
 msgstr "Для пакетов Java, содержащих отдельный класс или небольшую ирархию, мы используем имя в нижнем регистре, заменяя все вхождения @code{.} на дефисы, и указываем префикс @code{java-}. Так класс  @code{apache.commons.cli} становится пакетом @code{java-apache-commons-cli}."
 
 #. type: cindex
-#: doc/contributing.texi:720
+#: doc/contributing.texi:744
 #, no-wrap
 msgid "rust"
-msgstr ""
+msgstr "rust"
 
 #. type: Plain text
-#: doc/contributing.texi:723
+#: doc/contributing.texi:747
 #, fuzzy
 #| msgid "Java programs standing for themselves are named as any other package, using the lowercase upstream name."
 msgid "Rust programs standing for themselves are named as any other package, using the lowercase upstream name."
 msgstr "Программы Java именуются как любой другой пакет, используя исходное им в нижнем регистре."
 
 #. type: Plain text
-#: doc/contributing.texi:727
+#: doc/contributing.texi:751
 msgid "To prevent namespace collisions we prefix all other Rust packages with the @code{rust-} prefix.  The name should be changed to lowercase as appropriate and dashes should remain in place."
 msgstr "Чтобы предотвратить конфликты пространства имен, мы используем префикс @code{rust-} для всех остальных пакетов Rust. Имя должно быть изменено на строчные буквы, если необходимо, и тире должны остаться на месте."
 
 #. type: Plain text
-#: doc/contributing.texi:733
+#: doc/contributing.texi:757
 msgid "In the rust ecosystem it is common for multiple incompatible versions of a package to be used at any given time, so all packages should have a versioned suffix.  If a package has passed version 1.0.0 then just the major version number is sufficient (e.g.@: @code{rust-clap-2}), otherwise the version suffix should contain both the major and minor version (e.g.@: @code{rust-rand-0.6})."
 msgstr "В экосистеме rust использование нескольких несовместимых версий пакета в любой момент времени является нормой, поэтому у всех пакетов должен быть версионный суффикс. Если пакет прошел версию 1.0.0, тогда достаточно только основного номера версии (например, @:@code{rust-clap-2}), в противном случае суффикс версии должен содержать как основную, так и вспомогательную версию (например, @:@code{rust-rand-0,6})."
 
 #. type: Plain text
-#: doc/contributing.texi:743
+#: doc/contributing.texi:767
 msgid "Because of the difficulty in reusing rust packages as pre-compiled inputs for other packages the Cargo build system (@pxref{Build Systems, @code{cargo-build-system}}) presents the @code{#:cargo-inputs} and @code{cargo-development-inputs} keywords as build system arguments.  It would be helpful to think of these as similar to @code{propagated-inputs} and @code{native-inputs}.  Rust @code{dependencies} and @code{build-dependencies} should go in @code{#:cargo-inputs}, and @code{dev-dependencies} should go in @code{#:cargo-development-inputs}.  If a Rust package links to other libraries then the standard placement in @code{inputs} and the like should be used."
-msgstr ""
+msgstr "Из-за сложности повторного использования rust пакетов в качестве предварительно скомпилированных входных данных для других пакетов система сборки Cargo (@pxref{Build Systems, @code{cargo-build-system}}) представляет @code{#:cargo-input} и ключевые слова @code{cargo-development-input} в качестве аргументов для системы сборки. Было бы полезно думать о них как о @code{propagated-inputs} и @code{native-inputs}. Rust @code{dependencies} и @code{build-dependencies} должны идти в @code{#:cargo-input}, а @code{dev-dependencies} должен идти в @code{#:cargo-development-input}. Если пакет Rust ссылается на другие библиотеки, то следует использовать стандартное размещение в @code{input} и т.п."
 
 #. type: Plain text
-#: doc/contributing.texi:749
+#: doc/contributing.texi:773
 msgid "Care should be taken to ensure the correct version of dependencies are used; to this end we try to refrain from skipping the tests or using @code{#:skip-build?} when possible.  Of course this is not always possible, as the package may be developed for a different Operating System, depend on features from the Nightly Rust compiler, or the test suite may have atrophied since it was released."
-msgstr ""
+msgstr "Следует позаботиться о том, чтобы была использована корректная версия зависимостей; с этой целью мы стараемся не пропускать тесты или использовать @code{#:skip-build?}, когда это возможно. Конечно, это не всегда возможно, так как пакет может быть разработан для другой операционной системы, зависить от новых функций компилятора Rust для разработчиков (Nightly), или тесты могли устареть с момента выпуска."
 
 #. type: cindex
-#: doc/contributing.texi:754 doc/guix.texi:1679
+#: doc/contributing.texi:778 doc/guix.texi:1778
 #, no-wrap
 msgid "fonts"
 msgstr "шрифты"
 
 #. type: Plain text
-#: doc/contributing.texi:760
+#: doc/contributing.texi:784
 msgid "For fonts that are in general not installed by a user for typesetting purposes, or that are distributed as part of a larger software package, we rely on the general packaging rules for software; for instance, this applies to the fonts delivered as part of the X.Org system or fonts that are part of TeX Live."
 msgstr "Для шрифтов, которые не установлены пользователем, исходя из настроек печати, или рааспространяемые как часть большого пакета программного  обеспечения, мы применяем обычные правила опакечивания программного обеспечения. Например, это относится к шрифтам, поставляемым как часть системы X.Org, или шрифтов TeX Live."
 
 #. type: Plain text
-#: doc/contributing.texi:764
+#: doc/contributing.texi:788
 msgid "To make it easier for a user to search for fonts, names for other packages containing only fonts are constructed as follows, independently of the upstream package name."
 msgstr "Чтобы облегчить пользовательский поиск шрифтов, имена пакетов, содержащих только шрифты, создаются следующим образом, независимо от изначального имени пакета."
 
 #. type: Plain text
-#: doc/contributing.texi:772
+#: doc/contributing.texi:796
 msgid "The name of a package containing only one font family starts with @code{font-}; it is followed by the foundry name and a dash @code{-} if the foundry is known, and the font family name, in which spaces are replaced by dashes (and as usual, all upper case letters are transformed to lower case).  For example, the Gentium font family by SIL is packaged under the name @code{font-sil-gentium}."
 msgstr "Имя пакета, содержащего только одно семейство шрифтов, начинается с @code{font-}; далее идёт литейное имя и дефис @code{-}, если литейное имя известно, а затем - имя семейства шрифтов, в котором пробелы заменяются дефисами (и обычно все буквы в верхнем регистре заменяются на нижний регистр). Например, семейство шрифтов Gentium от SIL опакечивается под именем @code{font-sil-gentium}."
 
 #. type: Plain text
-#: doc/contributing.texi:781
+#: doc/contributing.texi:805
 msgid "For a package containing several font families, the name of the collection is used in the place of the font family name.  For instance, the Liberation fonts consist of three families, Liberation Sans, Liberation Serif and Liberation Mono.  These could be packaged separately under the names @code{font-liberation-sans} and so on; but as they are distributed together under a common name, we prefer to package them together as @code{font-liberation}."
 msgstr "Пакет с несколькими семействами шрифтов имеет в названии имя коллекции вместо имени семейства. Например, шрифты Liberation состоят из трёх семейств: Liberation Sans, Liberation Serfif и Liberation Mono. Они могли бы опакечиваться отдельно под именами @code{font-liberation-sans} и так далее, но так как они распространяются вместе под общим именем, мы предпочитаем опакечивать их вместе как @code{font-liberation}."
 
 #. type: Plain text
-#: doc/contributing.texi:787
+#: doc/contributing.texi:811
 msgid "In the case where several formats of the same font family or font collection are packaged separately, a short form of the format, prepended by a dash, is added to the package name.  We use @code{-ttf} for TrueType fonts, @code{-otf} for OpenType fonts and @code{-type1} for PostScript Type 1 fonts."
 msgstr "В случае, когда несколько форматов одного семейства щрифтов или коллекции шрифтов опакечена отдельно, в имени присутствует небольшая отметка о формате с предваряющим дефисом. Мы используем @code{-ttf} для шрифтов TrueType, @code{-otf} - для шрифтов OpenType - и  @code{-type1} - для шрифтов PostScript Type 1."
 
 #. type: Plain text
-#: doc/contributing.texi:795
+#: doc/contributing.texi:819
 msgid "In general our code follows the GNU Coding Standards (@pxref{Top,,, standards, GNU Coding Standards}).  However, they do not say much about Scheme, so here are some additional rules."
 msgstr "В основном наш код следует стандартам кодирования GNU (@pxref{Top,,, standards, GNU Coding Standards}). Но они не имеют исчерпывающих указаний для Scheme, так что есть дополнительные правила."
 
 #. type: subsection
-#: doc/contributing.texi:801 doc/contributing.texi:803
-#: doc/contributing.texi:804
+#: doc/contributing.texi:825 doc/contributing.texi:827
+#: doc/contributing.texi:828
 #, no-wrap
 msgid "Programming Paradigm"
 msgstr "Парадигма программирования"
 
 #. type: menuentry
-#: doc/contributing.texi:801
+#: doc/contributing.texi:825
 msgid "How to compose your elements."
 msgstr "Как компоновать элементы"
 
 #. type: subsection
-#: doc/contributing.texi:801 doc/contributing.texi:810
-#: doc/contributing.texi:811
+#: doc/contributing.texi:825 doc/contributing.texi:834
+#: doc/contributing.texi:835
 #, no-wrap
 msgid "Modules"
 msgstr "Модули"
 
 #. type: menuentry
-#: doc/contributing.texi:801
+#: doc/contributing.texi:825
 msgid "Where to store your code?"
 msgstr "Где разместить код?"
 
 #. type: subsection
-#: doc/contributing.texi:801 doc/contributing.texi:821
-#: doc/contributing.texi:822
+#: doc/contributing.texi:825 doc/contributing.texi:845
+#: doc/contributing.texi:846
 #, no-wrap
 msgid "Data Types and Pattern Matching"
 msgstr "Типы данных и поиск образцов"
 
 #. type: menuentry
-#: doc/contributing.texi:801
+#: doc/contributing.texi:825
 msgid "Implementing data structures."
 msgstr "Использование структур данных."
 
 #. type: subsection
-#: doc/contributing.texi:801 doc/contributing.texi:835
-#: doc/contributing.texi:836
+#: doc/contributing.texi:825 doc/contributing.texi:859
+#: doc/contributing.texi:860
 #, no-wrap
 msgid "Formatting Code"
 msgstr "Форматирование кода"
 
 #. type: menuentry
-#: doc/contributing.texi:801
+#: doc/contributing.texi:825
 msgid "Writing conventions."
 msgstr "Написание соглашений."
 
 #. type: Plain text
-#: doc/contributing.texi:809
+#: doc/contributing.texi:833
 msgid "Scheme code in Guix is written in a purely functional style.  One exception is code that involves input/output, and procedures that implement low-level concepts, such as the @code{memoize} procedure."
 msgstr "Код Scheme в Guix написан в чисто функциональном стиле. Одно исключение - это код, который вызывает ввод/вывод и процедуры, которые реализуют низкоровневые операции, как например, процедура @code{memoize}."
 
 #. type: Plain text
-#: doc/contributing.texi:817
+#: doc/contributing.texi:841
 msgid "Guile modules that are meant to be used on the builder side must live in the @code{(guix build @dots{})} name space.  They must not refer to other Guix or GNU modules.  However, it is OK for a ``host-side'' module to use a build-side module."
 msgstr "Модули Guile, которые вызываются для сборки, должны жить в пространстве имён @code{(guix build @dots{})}. Они не должны ссылаться на другие модули Guix или GNU. Однако это нормально, если модуль типа \"host-side\" использует модуль типа build-side."
 
 #. type: Plain text
-#: doc/contributing.texi:820
+#: doc/contributing.texi:844
 msgid "Modules that deal with the broader GNU system should be in the @code{(gnu @dots{})} name space rather than @code{(guix @dots{})}."
 msgstr "Модули, которые работают во всей системе GNU, должны быть в пространстве имён @code{(gnu @dots{})}, но не @code{(guix @dots{})}."
 
 #. type: Plain text
-#: doc/contributing.texi:829
+#: doc/contributing.texi:853
 msgid "The tendency in classical Lisp is to use lists to represent everything, and then to browse them ``by hand'' using @code{car}, @code{cdr}, @code{cadr}, and co.  There are several problems with that style, notably the fact that it is hard to read, error-prone, and a hindrance to proper type error reports."
 msgstr "Правило классического Lisp - использование списков для представления всего и просмотр списков \"вручную\", используя @code{car}, @code{cdr}, @code{cadr} и тому подобное. Возникают некоторые проблемы этого стиля, например, это тяжело читается, провоцирует ошибки, и создаёт отчёты об ошибках без должной детализации."
 
 #. type: Plain text
-#: doc/contributing.texi:834
+#: doc/contributing.texi:858
 msgid "Guix code should define appropriate data types (for instance, using @code{define-record-type*}) rather than abuse lists.  In addition, it should use pattern matching, via Guile’s @code{(ice-9 match)} module, especially when matching lists."
 msgstr "Код Guix должен определить соответствующие типы данных (то есть пользуясь, например, @code{define-record-type*}) вместо насущных списков. А также он должен использовать поиск по образцам с помощью модуля Guile  @code{(ice-9 match)}, особенно для поиска списков."
 
 #. type: cindex
-#: doc/contributing.texi:838
+#: doc/contributing.texi:862
 #, no-wrap
 msgid "formatting code"
 msgstr "форматирование кода"
 
 #. type: cindex
-#: doc/contributing.texi:839
+#: doc/contributing.texi:863
 #, no-wrap
 msgid "coding style"
 msgstr "стиль кодирования"
 
 #. type: Plain text
-#: doc/contributing.texi:846
+#: doc/contributing.texi:870
 #, fuzzy
 #| msgid "When writing Scheme code, we follow common wisdom among Scheme programmers.  In general, we follow the @url{http://mumble.net/~campbell/scheme/style.txt, Riastradh's Lisp Style Rules}.  This document happens to describe the conventions mostly used in Guile’s code too.  It is very thoughtful and well written, so please do read it."
 msgid "When writing Scheme code, we follow common wisdom among Scheme programmers.  In general, we follow the @url{https://mumble.net/~campbell/scheme/style.txt, Riastradh's Lisp Style Rules}.  This document happens to describe the conventions mostly used in Guile’s code too.  It is very thoughtful and well written, so please do read it."
 msgstr "При написании кода Scheme мы пользуемся мудростью программистов Scheme. В основном мы следуем  @url{http://mumble.net/~campbell/scheme/style.txt, Riastradh's Lisp Style Rules}. Этот документ, к счастью, содержит большинство соглашений, которые применимы также для кода Guile. Это очень вдумчиая работа, пожалуйста, прочтите её."
 
 #. type: Plain text
-#: doc/contributing.texi:853
+#: doc/contributing.texi:877
 msgid "Some special forms introduced in Guix, such as the @code{substitute*} macro, have special indentation rules.  These are defined in the @file{.dir-locals.el} file, which Emacs automatically uses.  Also note that Emacs-Guix provides @code{guix-devel-mode} mode that indents and highlights Guix code properly (@pxref{Development,,, emacs-guix, The Emacs-Guix Reference Manual})."
 msgstr "Некоторые специальные формы, вводимые в Guix, как например, макрос @code{substitute*}, имеют специальные правила отступов. Они определены в файле @file{.dir-locals.el}, которые использует Emacs автоматически. Также отметим, что Emacs-Guix предоставляет режим @code{guix-devel-mode}, который вставляет отступы и подсвечивает код Guix должным образом (@pxref{Development,,, emacs-guix, The Emacs-Guix Reference Manual})."
 
 #. type: cindex
-#: doc/contributing.texi:854
+#: doc/contributing.texi:878
 #, no-wrap
 msgid "indentation, of code"
 msgstr "отступы, в коде"
 
 #. type: cindex
-#: doc/contributing.texi:855
+#: doc/contributing.texi:879
 #, no-wrap
 msgid "formatting, of code"
 msgstr "форматировние, кода"
 
 #. type: Plain text
-#: doc/contributing.texi:858
+#: doc/contributing.texi:882
 msgid "If you do not use Emacs, please make sure to let your editor knows these rules.  To automatically indent a package definition, you can also run:"
 msgstr "Если вы не пользуетесь Emacs, пожалуйста убедитесь, что ваш редактор знает эти правила. Для автоматической расстановки отступов можно запустить:"
 
 #. type: example
-#: doc/contributing.texi:861
+#: doc/contributing.texi:885
 #, no-wrap
 msgid "./etc/indent-code.el gnu/packages/@var{file}.scm @var{package}\n"
 msgstr "./etc/indent-code.el gnu/packages/@var{file}.scm @var{package}\n"
 
 #. type: Plain text
-#: doc/contributing.texi:867
+#: doc/contributing.texi:891
 msgid "This automatically indents the definition of @var{package} in @file{gnu/packages/@var{file}.scm} by running Emacs in batch mode.  To indent a whole file, omit the second argument:"
 msgstr "Это автоматически расставит отступы в определении @var{package} в файле @file{gnu/packages/@var{file}.scm}, запустив Emacs в фоновом режиме. Чтобы расставить отступы во всём файле, приведите слеующий аргумент:"
 
 #. type: example
-#: doc/contributing.texi:870
+#: doc/contributing.texi:894
 #, no-wrap
 msgid "./etc/indent-code.el gnu/services/@var{file}.scm\n"
 msgstr "./etc/indent-code.el gnu/services/@var{file}.scm\n"
 
 #. type: cindex
-#: doc/contributing.texi:872
+#: doc/contributing.texi:896
 #, no-wrap
 msgid "Vim, Scheme code editing"
 msgstr "Vim, редактирование кода Scheme"
 
 #. type: Plain text
-#: doc/contributing.texi:878
+#: doc/contributing.texi:902
 msgid "If you are editing code with Vim, we recommend that you run @code{:set autoindent} so that your code is automatically indented as you type.  Additionally, @uref{https://www.vim.org/scripts/script.php?script_id=3998, @code{paredit.vim}} may help you deal with all these parentheses."
 msgstr "Если вы редактируете код в Vim, мы рекомендуем запустить @code{:set autoindent}, так отступы будут автоматически вставляться в ваш код, пока вы печатаете. В дополнение вам может помочь для работы со всеми этими скобками @uref{https://www.vim.org/scripts/script.php?script_id=3998, @code{paredit.vim}}."
 
 #. type: Plain text
-#: doc/contributing.texi:882
+#: doc/contributing.texi:906
 msgid "We require all top-level procedures to carry a docstring.  This requirement can be relaxed for simple private procedures in the @code{(guix build @dots{})} name space, though."
 msgstr "Мы требуем, чтобы все высокоуровневые процедуры содержали строки документации. Хотя это требование может не учитываться для простых приватных процедур в пространстве имён @code{(guix build @dots{})}."
 
 #. type: Plain text
-#: doc/contributing.texi:885
+#: doc/contributing.texi:909
 msgid "Procedures should not have more than four positional parameters.  Use keyword parameters for procedures that take more than four parameters."
 msgstr "Процедуры должны иметь не более четырёх параметров. Передавайте параметры по ключевым словам в процедурах, которые принимают более четырёх параметров."
 
 #. type: Plain text
-#: doc/contributing.texi:896
+#: doc/contributing.texi:920
 msgid "Development is done using the Git distributed version control system.  Thus, access to the repository is not strictly necessary.  We welcome contributions in the form of patches as produced by @code{git format-patch} sent to the @email{guix-patches@@gnu.org} mailing list.  Seasoned Guix developers may also want to look at the section on commit access (@pxref{Commit Access})."
 msgstr "Разработка завершается использованием поставляемой системы контроля версиями Git. Доступ к репозиторию не обязателен. Мы приветствуем вклады в разработку в виде патчей, которые производит @code{git format-patch}, отправленных в рассылку @email{guix-patches@@gnu.org}."
 
 #. type: Plain text
-#: doc/contributing.texi:903
+#: doc/contributing.texi:927
 msgid "This mailing list is backed by a Debbugs instance, which allows us to keep track of submissions (@pxref{Tracking Bugs and Patches}).  Each message sent to that mailing list gets a new tracking number assigned; people can then follow up on the submission by sending email to @code{@var{NNN}@@debbugs.gnu.org}, where @var{NNN} is the tracking number (@pxref{Sending a Patch Series})."
 msgstr "Для данной рассылки создаются резервные копии с помощью Debbugs, что позволяет нам отслеживать присылаемые патчи (@pxref{Tracking Bugs and Patches}). Каждому сообщению, отправленному в эту рассылку, присваивается новый номер трекинга. Затем пользователи могут общаться относительно конкретного патча, отправляя электронные письма на адрес @code{@var{NNN}@@debbugs.gnu.org}, где @var{NNN} — это номер трекинга (@pxref{Sending a Patch Series})."
 
 #. type: Plain text
-#: doc/contributing.texi:907
+#: doc/contributing.texi:931
 msgid "Please write commit logs in the ChangeLog format (@pxref{Change Logs,,, standards, GNU Coding Standards}); you can check the commit history for examples."
 msgstr "Пожалуйста, пишите логи коммита в формате ChangeLog (@pxref{Change Logs,,, standards, GNU Coding Standards}); можно просмотреть историю коммитов, например."
 
 #. type: Plain text
-#: doc/contributing.texi:910
+#: doc/contributing.texi:934
 msgid "Before submitting a patch that adds or modifies a package definition, please run through this check list:"
 msgstr "Перед отправкой патча, который добавляет или изменяет описание пакета, пожалуйста, выполните следующие проверки:"
 
 #. type: enumerate
-#: doc/contributing.texi:917
+#: doc/contributing.texi:941
 msgid "If the authors of the packaged software provide a cryptographic signature for the release tarball, make an effort to verify the authenticity of the archive.  For a detached GPG signature file this would be done with the @code{gpg --verify} command."
 msgstr "Если авторы пакета программного обеспечения преоставляют криптографическую подпись для архива релиза, выполните проверку аутентичности архива. Для отдельного файла GPG-подписи это можно сделать командой @code{gpg --verify}."
 
 #. type: enumerate
-#: doc/contributing.texi:921
+#: doc/contributing.texi:945
 msgid "Take some time to provide an adequate synopsis and description for the package.  @xref{Synopses and Descriptions}, for some guidelines."
 msgstr "Потратьте немного времени, чтобы предоставить адекватное краткое описание и полное описание пакета. Смотрите @xref{Synopses and Descriptions} для подробностей."
 
 #. type: enumerate
-#: doc/contributing.texi:926
+#: doc/contributing.texi:950
 msgid "Run @code{guix lint @var{package}}, where @var{package} is the name of the new or modified package, and fix any errors it reports (@pxref{Invoking guix lint})."
 msgstr "Запустите @code{guix lint @var{package}}, где @var{package} - это имя нового изменённого пакета, и устраните любые ошибки из отчёта (@pxref{Invoking guix lint})."
 
 #. type: enumerate
-#: doc/contributing.texi:930
+#: doc/contributing.texi:954
 msgid "Make sure the package builds on your platform, using @code{guix build @var{package}}."
 msgstr "Убедитесь, что пакет собирается на вашей платформе, используя @code{guix build @var{package}}."
 
 #. type: enumerate
-#: doc/contributing.texi:937
+#: doc/contributing.texi:961
 msgid "We recommend you also try building the package on other supported platforms.  As you may not have access to actual hardware platforms, we recommend using the @code{qemu-binfmt-service-type} to emulate them.  In order to enable it, add the following service to the list of services in your @code{operating-system} configuration:"
 msgstr "Мы рекомендуем вам также попробовать собрать пакет под другими поддерживаемыми платформами. Возможно, вы не имеете доступа к современным аппаратным платформам, тогда мы рекомендуем использовать @code{qemu-binfmt-service-type}, чтобы эмулировать их. Чтобы обеспечить это, добавьте следующий сервис в конфигурацию @code{operating-system}:"
 
 #. type: lisp
-#: doc/contributing.texi:943
+#: doc/contributing.texi:967
 #, no-wrap
 msgid ""
 "(service qemu-binfmt-service-type\n"
 " (qemu-binfmt-configuration\n"
-"   (platforms (lookup-qemu-platforms \"arm\" \"aarch64\" \"mips64el\"))\n"
+"   (platforms (lookup-qemu-platforms \"arm\" \"aarch64\"))\n"
 "   (guix-support? #t)))\n"
 msgstr ""
 "(service qemu-binfmt-service-type\n"
 " (qemu-binfmt-configuration\n"
-"   (platforms (lookup-qemu-platforms \"arm\" \"aarch64\" \"mips64el\"))\n"
+"   (platforms (lookup-qemu-platforms \"arm\" \"aarch64\"))\n"
 "   (guix-support? #t)))\n"
 
 #. type: enumerate
-#: doc/contributing.texi:946
+#: doc/contributing.texi:970
 msgid "Then reconfigure your system."
 msgstr "И тогда запустите переконфигурирование системы."
 
 #. type: enumerate
-#: doc/contributing.texi:951
+#: doc/contributing.texi:975
 msgid "You can then build packages for different platforms by specifying the @code{--system} option.  For example, to build the \"hello\" package for the armhf, aarch64, or mips64 architectures, you would run the following commands, respectively:"
 msgstr "Также можно собирать пакеты под различные платформы, обозначив опцию @code{--system}. Например, чтобы собрать пакет \"hello\" для архитектур armhf, aarch64, или mips64 вы должны выполнить соответственно следующее:"
 
 #. type: example
-#: doc/contributing.texi:955
-#, no-wrap
+#: doc/contributing.texi:978
+#, fuzzy, no-wrap
 msgid ""
 "guix build --system=armhf-linux --rounds=2 hello\n"
 "guix build --system=aarch64-linux --rounds=2 hello\n"
-"guix build --system=mips64el-linux --rounds=2 hello\n"
 msgstr ""
-"guix build --system=armhf-linux --rounds=2 hello\n"
-"guix build --system=aarch64-linux --rounds=2 hello\n"
-"guix build --system=mips64el-linux --rounds=2 hello\n"
+"\"guix build --system=armhf-linux --rounds=2 hello\n"
+"\"guix build --system=aarch64-linux --rounds=2 hello\n"
 
 #. type: cindex
-#: doc/contributing.texi:958
+#: doc/contributing.texi:981
 #, no-wrap
 msgid "bundling"
 msgstr "сборка"
 
 #. type: enumerate
-#: doc/contributing.texi:961
+#: doc/contributing.texi:984
 msgid "Make sure the package does not use bundled copies of software already available as separate packages."
 msgstr "Убедитесь, что пакет не использует связанные копии программ, которые уже доступны как отдельные пакеты."
 
 #. type: enumerate
-#: doc/contributing.texi:970
+#: doc/contributing.texi:993
 msgid "Sometimes, packages include copies of the source code of their dependencies as a convenience for users.  However, as a distribution, we want to make sure that such packages end up using the copy we already have in the distribution, if there is one.  This improves resource usage (the dependency is built and stored only once), and allows the distribution to make transverse changes such as applying security updates for a given software package in a single place and have them affect the whole system---something that bundled copies prevent."
 msgstr "Иногда пакеты включают копии исходных кодов своих зависимостей, исходя из удобства для пользователей. Однако как дистрибутив, мы должны убедиться, что подобные пакеты ставятся, используя копию, которую мы уже имеем в дистрибутиве, если таковая имеется. Это улучшает использование ресурсов (зависимость собирается и сохраняется один раз) и позволяет дистрибутиву производить поперечные изменения, как например, применение обновлений безопасности для поставляемого пакета программного обеспечения в одном месте, и эти изменения будут иметь силу во всей системе, устраняя проблему лишних копий."
 
 #. type: enumerate
-#: doc/contributing.texi:979
+#: doc/contributing.texi:1002
 msgid "Take a look at the profile reported by @command{guix size} (@pxref{Invoking guix size}).  This will allow you to notice references to other packages unwillingly retained.  It may also help determine whether to split the package (@pxref{Packages with Multiple Outputs}), and which optional dependencies should be used.  In particular, avoid adding @code{texlive} as a dependency: because of its extreme size, use @code{texlive-tiny} or @code{texlive-union} instead."
 msgstr "Просмотрите отчеты  @command{guix size} (@pxref{Invoking guix size}). Это позволит найти связь с другими пакетами, сохранившуюся без необходимости. Это также позволяет решить, как разделить пакет (@pxref{Packages with Multiple Outputs}) и какие должны использоваться опциональные зависимости. В частности, это способ избежать использование большого @code{texlive} как зависимости и использовать @code{texlive-tiny} или @code{texlive-union} вместо него."
 
 #. type: enumerate
-#: doc/contributing.texi:984
+#: doc/contributing.texi:1007
 msgid "For important changes, check that dependent package (if applicable) are not affected by the change; @code{guix refresh --list-dependent @var{package}} will help you do that (@pxref{Invoking guix refresh})."
 msgstr "Для важных изменений проверьте, что зависимости пакета (если они есть) не затронуты изменениями. @code{guix refresh --list-dependent @var{package}} поможет вам сделать это (@pxref{Invoking guix refresh})."
 
 #. type: cindex
-#: doc/contributing.texi:986
+#: doc/contributing.texi:1009
 #, no-wrap
 msgid "branching strategy"
 msgstr "стратегия бренчей"
 
 #. type: cindex
-#: doc/contributing.texi:987
+#: doc/contributing.texi:1010
 #, no-wrap
 msgid "rebuild scheduling strategy"
 msgstr "стратегия планирования пересборки"
 
 #. type: enumerate
-#: doc/contributing.texi:990
+#: doc/contributing.texi:1013
 msgid "Depending on the number of dependent packages and thus the amount of rebuilding induced, commits go to different branches, along these lines:"
 msgstr "В зависимости от числа пакетов зависимостей и, как следствие, числа вызываемых пересборок, коммиты отправляются в разные бренчи следующим образом:"
 
 #. type: item
-#: doc/contributing.texi:992
+#: doc/contributing.texi:1015
 #, no-wrap
 msgid "300 dependent packages or less"
 msgstr "300 пакетов зависимостей или менее"
 
 #. type: table
-#: doc/contributing.texi:994
+#: doc/contributing.texi:1017
 msgid "@code{master} branch (non-disruptive changes)."
 msgstr "бренч @code{master} (не разрушающие изменения)."
 
 #. type: item
-#: doc/contributing.texi:995
-#, no-wrap
-msgid "between 300 and 1,200 dependent packages"
+#: doc/contributing.texi:1018
+#, fuzzy, no-wrap
+#| msgid "between 300 and 1,200 dependent packages"
+msgid "between 300 and 1,800 dependent packages"
 msgstr "от 300 до 1200 пакетов зависимостей"
 
 #. type: table
-#: doc/contributing.texi:1000
-msgid "@code{staging} branch (non-disruptive changes).  This branch is intended to be merged in @code{master} every 3 weeks or so.  Topical changes (e.g., an update of the GNOME stack) can instead go to a specific branch (say, @code{gnome-updates})."
+#: doc/contributing.texi:1023
+#, fuzzy
+#| msgid "@code{staging} branch (non-disruptive changes).  This branch is intended to be merged in @code{master} every 3 weeks or so.  Topical changes (e.g., an update of the GNOME stack) can instead go to a specific branch (say, @code{gnome-updates})."
+msgid "@code{staging} branch (non-disruptive changes).  This branch is intended to be merged in @code{master} every 6 weeks or so.  Topical changes (e.g., an update of the GNOME stack) can instead go to a specific branch (say, @code{gnome-updates})."
 msgstr "бренч @code{staging} (не разрушающие изменения). Этот бренч предназначен для включения в @code{master} каждые 3 недели (примерно). Тематические изменения (т.е. обновление стека GNOME) могут отправляться в специальный бренч, скажем, @code{gnome-updates}."
 
 #. type: item
-#: doc/contributing.texi:1001
-#, no-wrap
-msgid "more than 1,200 dependent packages"
+#: doc/contributing.texi:1024
+#, fuzzy, no-wrap
+#| msgid "more than 1,200 dependent packages"
+msgid "more than 1,800 dependent packages"
 msgstr "более 1200 пакетов зависимостей"
 
 #. type: table
-#: doc/contributing.texi:1005
-msgid "@code{core-updates} branch (may include major and potentially disruptive changes).  This branch is intended to be merged in @code{master} every 2.5 months or so."
+#: doc/contributing.texi:1028
+#, fuzzy
+#| msgid "@code{core-updates} branch (may include major and potentially disruptive changes).  This branch is intended to be merged in @code{master} every 2.5 months or so."
+msgid "@code{core-updates} branch (may include major and potentially disruptive changes).  This branch is intended to be merged in @code{master} every 6 months or so."
 msgstr "бренч @code{core-updates} (может включать главные и потенциально разрушительные изменения). Этот бренч предназначен для включения в  @code{master} каждые 2,5 месяца примерно."
 
 #. type: enumerate
-#: doc/contributing.texi:1012
+#: doc/contributing.texi:1035
 #, fuzzy
 #| msgid "All these branches are @uref{https://hydra.gnu.org/project/gnu, tracked by our build farm} and merged into @code{master} once everything has been successfully built.  This allows us to fix issues before they hit users, and to reduce the window during which pre-built binaries are not available."
-msgid "All these branches are @uref{@value{SUBSTITUTE-SERVER}, tracked by our build farm} and merged into @code{master} once everything has been successfully built.  This allows us to fix issues before they hit users, and to reduce the window during which pre-built binaries are not available."
+msgid "All these branches are @uref{@value{SUBSTITUTE-URL}, tracked by our build farm} and merged into @code{master} once everything has been successfully built.  This allows us to fix issues before they hit users, and to reduce the window during which pre-built binaries are not available."
 msgstr "Все эти бренчи @uref{https://hydra.gnu.org/project/gnu, размещаются на ферме сборки} и включаются в @code{master} после первой удачной сборки. Это позволяет нам исправлять проблемы перед тем, как они дойдут до пользователей, и сократить окно, в течение которого собранные бинарники не доступны."
 
 #. type: enumerate
-#: doc/contributing.texi:1019
+#: doc/contributing.texi:1042
 msgid "Generally, branches other than @code{master} are considered @emph{frozen} if there has been a recent evaluation, or there is a corresponding @code{-next} branch.  Please ask on the mailing list or IRC if unsure where to place a patch."
 msgstr "Обычно бренчи, отличные от @code{master} считаются @emph{замороженными}, если существует поседнее определение или соответствующий бренч @code{-next}. Пожалуйста, задайте вопрос в рассылках или IRC, если не уверенны куда разместить патч."
 
 #. type: cindex
-#: doc/contributing.texi:1021
+#: doc/contributing.texi:1044
 #, no-wrap
 msgid "determinism, of build processes"
 msgstr "детерминизм, процесса сборки"
 
 #. type: cindex
-#: doc/contributing.texi:1022
+#: doc/contributing.texi:1045
 #, no-wrap
 msgid "reproducible builds, checking"
 msgstr "воспроизводимые сорки, проверка"
 
 #. type: enumerate
-#: doc/contributing.texi:1026
+#: doc/contributing.texi:1049
 msgid "Check whether the package's build process is deterministic.  This typically means checking whether an independent build of the package yields the exact same result that you obtained, bit for bit."
 msgstr "Проверьте, является ли процесс сборки пакета детеминистическим. Это обычно означает необходимость проверки того, что независимая сборка пакета производит точно такой же результат, которым вы располагаете, бит к биту."
 
 #. type: enumerate
-#: doc/contributing.texi:1029
+#: doc/contributing.texi:1052
 msgid "A simple way to do that is by building the same package several times in a row on your machine (@pxref{Invoking guix build}):"
 msgstr "Простой способ выполнить это - собрать такой же пакет несколько раз подряд на вашей машине (@pxref{Invoking guix build}):"
 
 #. type: example
-#: doc/contributing.texi:1032
+#: doc/contributing.texi:1055
 #, no-wrap
 msgid "guix build --rounds=2 my-package\n"
 msgstr "guix build --rounds=2 my-package\n"
 
 #. type: enumerate
-#: doc/contributing.texi:1036
+#: doc/contributing.texi:1059
 msgid "This is enough to catch a class of common non-determinism issues, such as timestamps or randomly-generated output in the build result."
 msgstr "Этого достаточно, чтобы отловить привычный набор проблем, нарушающих детерминизм, как например, отпечаток времени или случайно генерируемый выход на результате сборке."
 
 #. type: enumerate
-#: doc/contributing.texi:1046
+#: doc/contributing.texi:1069
 msgid "Another option is to use @command{guix challenge} (@pxref{Invoking guix challenge}).  You may run it once the package has been committed and built by @code{@value{SUBSTITUTE-SERVER}} to check whether it obtains the same result as you did.  Better yet: Find another machine that can build it and run @command{guix publish}.  Since the remote build machine is likely different from yours, this can catch non-determinism issues related to the hardware---e.g., use of different instruction set extensions---or to the operating system kernel---e.g., reliance on @code{uname} or @file{/proc} files."
 msgstr "Другой способ --- использовать @command{guix challenge} (@pxref{Invoking guix challenge}). Можно запустить это один раз, когда коммит пакета был отправлен, и собрать с помощью @code{@value{SUBSTITUTE-SERVER}}, чтобы проверить, что это даёт результат такой же, как у вас.  Ещё лучше найти другую машину, на которой можно собрать это и выполнить @command{guix publish}. Так как другая удалённая машина дл сборки отличается от вашей, это может выявить проблемы, нарушающие детерминизм, связанные с аппаратным обеспечением, то есть вызванные использованием различных расширений ассемблера или другого ядра операционной системы, то есть касательно файлов @code{uname} или @file{/proc}."
 
 #. type: enumerate
-#: doc/contributing.texi:1052
+#: doc/contributing.texi:1075
 msgid "When writing documentation, please use gender-neutral wording when referring to people, such as @uref{https://en.wikipedia.org/wiki/Singular_they, singular ``they''@comma{} ``their''@comma{} ``them''}, and so forth."
 msgstr "При написании документации, пожалуйста, используйте нейтральную по гендеру лексику, когда речь идёт о людях, как например, тут @uref{https://en.wikipedia.org/wiki/Singular_they, singular \"they\"@comma{} \"their\"@comma{} \"them\"} и т.д."
 
 #. type: enumerate
-#: doc/contributing.texi:1056
+#: doc/contributing.texi:1079
 msgid "Verify that your patch contains only one set of related changes.  Bundling unrelated changes together makes reviewing harder and slower."
 msgstr "Проверьте, что ваш патч содержит изменения, связанные только с одной темой. Связывая вместе изменения, касающиеся различных тем, делает обзор сложным и медленным."
 
 #. type: enumerate
-#: doc/contributing.texi:1059
+#: doc/contributing.texi:1082
 msgid "Examples of unrelated changes include the addition of several packages, or a package update along with fixes to that package."
 msgstr "Примеры несвязанных изменений включают, в том числе, добавление некоторых пакетов или обновление пакета вместе с исправлениями в этом пакете."
 
 #. type: enumerate
-#: doc/contributing.texi:1064
+#: doc/contributing.texi:1087
 msgid "Please follow our code formatting rules, possibly running the @command{etc/indent-code.el} script to do that automatically for you (@pxref{Formatting Code})."
 msgstr "Пожалуйста, следуйте нашим правилам форматирования кода, по возможности запуская скрипт @command{etc/indent-code.el}, который сделает это автоматически (@pxref{Formatting Code})."
 
 #. type: enumerate
-#: doc/contributing.texi:1072
+#: doc/contributing.texi:1095
 msgid "When possible, use mirrors in the source URL (@pxref{Invoking guix download}).  Use reliable URLs, not generated ones.  For instance, GitHub archives are not necessarily identical from one generation to the next, so in this case it's often better to clone the repository.  Don't use the @command{name} field in the URL: it is not very useful and if the name changes, the URL will probably be wrong."
 msgstr "Если это возможно, используйте зеркала при указании URL исходников (@pxref{Invoking guix download}). Используйте надёжные URL'ы, а не сгенерированные. Например, архивы GitHub не являются идентичными между поколениями, так что в этом случае часто лучше клонировать репозиторий. Не используйте поле @command{name} в URL, это не очень удобно: если имя изменится, тогда URL будет неправильным."
 
 #. type: enumerate
-#: doc/contributing.texi:1076
+#: doc/contributing.texi:1099
 msgid "Check if Guix builds (@pxref{Building from Git}) and address the warnings, especially those about use of undefined symbols."
-msgstr ""
+msgstr "Проверьте, собирается ли Guix (@pxref{Building from Git}), и устраните предупреждения, особенно те, которые касаются использования неопределенных символов."
 
 #. type: enumerate
-#: doc/contributing.texi:1079
+#: doc/contributing.texi:1102
 msgid "Make sure your changes do not break Guix and simulate a @code{guix pull} with:"
 msgstr "Убедитесь, что ваши изменения не ломают Guix и имитируйте @code{guix pull} вместе с:"
 
 #. type: example
-#: doc/contributing.texi:1081
+#: doc/contributing.texi:1104
 #, no-wrap
 msgid "guix pull --url=/path/to/your/checkout --profile=/tmp/guix.master\n"
 msgstr "guix pull --url=/path/to/your/checkout --profile=/tmp/guix.master\n"
 
 #. type: Plain text
-#: doc/contributing.texi:1092
-msgid "When posting a patch to the mailing list, use @samp{[PATCH] @dots{}} as a subject.  You may use your email client or the @command{git send-email} command (@pxref{Sending a Patch Series}).  We prefer to get patches in plain text messages, either inline or as MIME attachments.  You are advised to pay attention if your email client changes anything like line breaks or indentation which could potentially break the patches."
+#: doc/contributing.texi:1117
+#, fuzzy
+#| msgid "When posting a patch to the mailing list, use @samp{[PATCH] @dots{}} as a subject.  You may use your email client or the @command{git send-email} command (@pxref{Sending a Patch Series}).  We prefer to get patches in plain text messages, either inline or as MIME attachments.  You are advised to pay attention if your email client changes anything like line breaks or indentation which could potentially break the patches."
+msgid "When posting a patch to the mailing list, use @samp{[PATCH] @dots{}} as a subject, if your patch is to be applied on a branch other than @code{master}, say @code{core-updates}, specify it in the subject like @samp{[PATCH core-updates] @dots{}}.  You may use your email client or the @command{git send-email} command (@pxref{Sending a Patch Series}).  We prefer to get patches in plain text messages, either inline or as MIME attachments.  You are advised to pay attention if your email client changes anything like line breaks or indentation which could potentially break the patches."
 msgstr "Когда отправляете патч в рассылку, используйте @samp{[PATCH] @dots{}} в теме письма. Можно пользоваться почтовым клиентом или командой @command{git send-email} (@pxref{Sending a Patch Series}). Мы предпочитаем получать патчи в виде простых текстовых сообщений внутри текста или отдельным вложением MIME. Рекомендуется уделять внимание вопросу, не изменяет ли почтовый клиент что-либо как символы новой строки или отступы, так как это потенциально может нарушить код патча."
 
 #. type: Plain text
-#: doc/contributing.texi:1095
+#: doc/contributing.texi:1120
 msgid "When a bug is resolved, please close the thread by sending an email to @email{@var{NNN}-done@@debbugs.gnu.org}."
 msgstr "Когда баг исправлен, пожалуйста, закройте тему, отправив сообщение на @email{@var{NNN}-done@@debbugs.gnu.org}."
 
 #. type: anchor{#1}
-#: doc/contributing.texi:1096 doc/contributing.texi:1098
+#: doc/contributing.texi:1121 doc/contributing.texi:1123
 #, no-wrap
 msgid "Sending a Patch Series"
 msgstr "Отправка пакета исправлений"
 
 #. type: cindex
-#: doc/contributing.texi:1098
+#: doc/contributing.texi:1123
 #, no-wrap
 msgid "patch series"
 msgstr "группы патчей"
 
 #. type: code{#1}
-#: doc/contributing.texi:1099
+#: doc/contributing.texi:1124
 #, no-wrap
 msgid "git send-email"
 msgstr "git send-email"
 
 #. type: code{#1}
-#: doc/contributing.texi:1100
+#: doc/contributing.texi:1125
 #, no-wrap
 msgid "git-send-email"
 msgstr "git-send-email"
 
 #. type: Plain text
-#: doc/contributing.texi:1110
+#: doc/contributing.texi:1135
 msgid "When sending a patch series (e.g., using @code{git send-email}), please first send one message to @email{guix-patches@@gnu.org}, and then send subsequent patches to @email{@var{NNN}@@debbugs.gnu.org} to make sure they are kept together.  See @uref{https://debbugs.gnu.org/Advanced.html, the Debbugs documentation} for more information.  You can install @command{git send-email} with @command{guix install git:send-email}."
 msgstr "При отправке набора патчей (например, используя @code{git send-email}), отправьте сначала одно сообщение в рассылку @email{guix-patches@@gnu.org}, а затем отправьте последующие патчи по адресу @email{@var{NNN}@@debbugs.gnu.org}, чтобы они были объединены. Подробные сведения см. в разделе @uref{https://debbugs.gnu.org/Advanced.html, Документация по Debbugs}. Команду @command{git send-email} можно установить с помощью @command{guix install git:send-email}."
 
 #. type: cindex
-#: doc/contributing.texi:1114
+#: doc/contributing.texi:1139
 #, no-wrap
 msgid "bug reports, tracking"
 msgstr "сообщения об ошибке, отслеживание"
 
 #. type: cindex
-#: doc/contributing.texi:1115
+#: doc/contributing.texi:1140
 #, no-wrap
 msgid "patch submissions, tracking"
 msgstr "отправка патча, отслеживание"
 
 #. type: cindex
-#: doc/contributing.texi:1116
+#: doc/contributing.texi:1141
 #, no-wrap
 msgid "issue tracking"
 msgstr "отслеживание заявок об ошибках"
 
 #. type: cindex
-#: doc/contributing.texi:1117
+#: doc/contributing.texi:1142
 #, no-wrap
 msgid "Debbugs, issue tracking system"
 msgstr "Debbugs, система отслеживания ошибок"
 
 #. type: Plain text
-#: doc/contributing.texi:1124
+#: doc/contributing.texi:1149
 msgid "Bug reports and patch submissions are currently tracked using the Debbugs instance at @uref{https://bugs.gnu.org}.  Bug reports are filed against the @code{guix} ``package'' (in Debbugs parlance), by sending email to @email{bug-guix@@gnu.org}, while patch submissions are filed against the @code{guix-patches} package by sending email to @email{guix-patches@@gnu.org} (@pxref{Submitting Patches})."
 msgstr "Отчёты об ошибках и предложенные исправления сейчас отслеживаются с помощью Debbugs на веб-сайте @uref{https://bugs.gnu.org}. Отчёты об ошибках, относящиеся к пакету @code{guix} (на языке Debbugs), отправляйте по адресу @email{bug-guix@@gnu.org}, а предлагаемые исправления для пакета @code{guix-patches} — по адресу @email{guix-patches@@gnu.org} (@pxref{Submitting Patches})."
 
 #. type: Plain text
-#: doc/contributing.texi:1127
+#: doc/contributing.texi:1152
 msgid "A web interface (actually @emph{two} web interfaces!) are available to browse issues:"
 msgstr "Для просмотра вопросов доступен веб-интерфейс (на самом деле даже @emph{два} веб-интерфейса):"
 
 #. type: itemize
-#: doc/contributing.texi:1131
+#: doc/contributing.texi:1161
+#, fuzzy
+#| msgid "You can also access both of these @i{via} the (nicer)  @url{https://issues.guix.gnu.org} interface@footnote{The web interface at @url{https://issues.guix.gnu.org} is powered by Mumi, a nice piece of software written in Guile, and you can help! See @url{https://git.elephly.net/gitweb.cgi?p=software/mumi.git}.}.  To view discussions related to issue number @var{n}, go to @indicateurl{https://issues.guix.gnu.org/issue/@var{n}} or @indicateurl{https://bugs.gnu.org/@var{n}}."
+msgid "@url{https://issues.guix.gnu.org} provides a pleasant interface@footnote{The web interface at @url{https://issues.guix.gnu.org} is powered by Mumi, a nice piece of software written in Guile, and you can help! See @url{https://git.elephly.net/gitweb.cgi?p=software/mumi.git}.} to browse bug reports and patches, and to participate in discussions;"
+msgstr "Вы также можете получить доступ к обоим @i{через} (более приятный) @url{https://issues.guix.gnu.org} интерфейс @footnote{Веб-интерфейс @url{https://issues.guix.gnu.org} работает на Mumi, прекрасном программном обеспечении, написанном на Guile, и вы можете помочь! См. @url{https://git.elephly.net/gitweb.cgi?p=software/mumi.git}.}. Чтобы просмотреть обсуждения, связанные с проблемой номер @var{n}, перейдите на страницу @indicateurl{https://issues.guix.gnu.org/issue/@var{n}} or @indicateurl{https://bugs.gnu.org/@var{n}}."
+
+#. type: itemize
+#: doc/contributing.texi:1163
 msgid "@url{https://bugs.gnu.org/guix} lists bug reports;"
 msgstr "@url{https://gnupg.org/, GNU libgcrypt} списки отчётов об ошибках;"
 
 #. type: itemize
-#: doc/contributing.texi:1133
+#: doc/contributing.texi:1165
 msgid "@url{https://bugs.gnu.org/guix-patches} lists patch submissions."
 msgstr "@url{https://bugs.gnu.org/guix-patches} списки патчей на рассмотрении."
 
 #. type: Plain text
-#: doc/contributing.texi:1143
-msgid "You can also access both of these @i{via} the (nicer)  @url{https://issues.guix.gnu.org} interface@footnote{The web interface at @url{https://issues.guix.gnu.org} is powered by Mumi, a nice piece of software written in Guile, and you can help! See @url{https://git.elephly.net/gitweb.cgi?p=software/mumi.git}.}.  To view discussions related to issue number @var{n}, go to @indicateurl{https://issues.guix.gnu.org/issue/@var{n}} or @indicateurl{https://bugs.gnu.org/@var{n}}."
-msgstr "Вы также можете получить доступ к обоим @i{через} (более приятный) @url{https://issues.guix.gnu.org} интерфейс @footnote{Веб-интерфейс @url{https://issues.guix.gnu.org} работает на Mumi, прекрасном программном обеспечении, написанном на Guile, и вы можете помочь! См. @url{https://git.elephly.net/gitweb.cgi?p=software/mumi.git}.}. Чтобы просмотреть обсуждения, связанные с проблемой номер @var{n}, перейдите на страницу @indicateurl{https://issues.guix.gnu.org/issue/@var{n}} or @indicateurl{https://bugs.gnu.org/@var{n}}."
+#: doc/contributing.texi:1170
+msgid "To view discussions related to issue number @var{n}, go to @indicateurl{https://issues.guix.gnu.org/@var{n}} or @indicateurl{https://bugs.gnu.org/@var{n}}."
+msgstr "Чтобы просмотреть обсуждения, связанные с номером проблемы @var{n}, перейдите на @indicateurl{https://issues.guix.gnu.org/@var{n}} или @indicateurl{https://bugs.gnu.org/@var{n}}."
 
 #. type: Plain text
-#: doc/contributing.texi:1146
+#: doc/contributing.texi:1173
 msgid "If you use Emacs, you may find it more convenient to interact with issues using @file{debbugs.el}, which you can install with:"
 msgstr "Если вы используете Emacs, вам может быть удобнее взаимодействовать с проблемами при помощи @file{debbugs.el}, который вы можете установить с помощью:"
 
 #. type: example
-#: doc/contributing.texi:1149
+#: doc/contributing.texi:1176
 #, no-wrap
 msgid "guix install emacs-debbugs\n"
 msgstr "guix install emacs-debbugs\n"
 
 #. type: Plain text
-#: doc/contributing.texi:1152
+#: doc/contributing.texi:1179
 msgid "For example, to list all open issues on @code{guix-patches}, hit:"
 msgstr "Например, чтбы уввидеть все открытые заявки на @code{guix-patches}, введите:"
 
 #. type: example
-#: doc/contributing.texi:1155
+#: doc/contributing.texi:1182
 #, no-wrap
 msgid "@kbd{C-u} @kbd{M-x} debbugs-gnu @kbd{RET} @kbd{RET} guix-patches @kbd{RET} n y\n"
 msgstr "@kbd{C-u} @kbd{M-x} debbugs-gnu @kbd{RET} @kbd{RET} guix-patches @kbd{RET} n y\n"
 
 #. type: Plain text
-#: doc/contributing.texi:1159
+#: doc/contributing.texi:1186
 msgid "@xref{Top,,, debbugs-ug, Debbugs User Guide}, for more information on this nifty tool!"
 msgstr "@xref{Invoking guix pack} для подробной информации об этом полезном инструменте."
 
 #. type: cindex
-#: doc/contributing.texi:1163
+#: doc/contributing.texi:1190
 #, no-wrap
 msgid "commit access, for developers"
 msgstr "доступ для отправки коммитов, для разработчиков"
 
 #. type: Plain text
-#: doc/contributing.texi:1167
+#: doc/contributing.texi:1194
 msgid "For frequent contributors, having write access to the repository is convenient.  When you deem it necessary, consider applying for commit access by following these steps:"
 msgstr "Для постоянных участников удобно иметь доступ для записи в хранилище. Когда вы сочтете это необходимым, рассмотрите возможность подачи заявки на коммит, выполнив следующие действия:"
 
 #. type: enumerate
-#: doc/contributing.texi:1176
+#: doc/contributing.texi:1203
 msgid "Find three committers who would vouch for you.  You can view the list of committers at @url{https://savannah.gnu.org/project/memberlist.php?group=guix}.  Each of them should email a statement to @email{guix-maintainers@@gnu.org} (a private alias for the collective of maintainers), signed with their OpenPGP key."
 msgstr "Найдите трех коммиттеров, которые поручаются за вас. Вы можете просмотреть список коммиттеров по адресу @url{https://savannah.gnu.org/project/memberlist.php?group=guix}. Каждый из них должен отправить заявление по электронной почте на адрес @email{guix-maintainers@@gnu.org} (личный псевдоним коллектива сопровождающих), подписанный ключом OpenPGP."
 
 #. type: enumerate
-#: doc/contributing.texi:1182
+#: doc/contributing.texi:1209
 msgid "Committers are expected to have had some interactions with you as a contributor and to be able to judge whether you are sufficiently familiar with the project's practices.  It is @emph{not} a judgment on the value of your work, so a refusal should rather be interpreted as ``let's try again later''."
 msgstr "Ожидается, что коммиттеры взаимодействовали с вами как c участником и могли судить, достаточно ли вы знакомы с проектом. Это @emph{не} суждение о ценности вашей работы, поэтому отказ следует скорее интерпретировать как «давайте попробуем позже»."
 
 #. type: enumerate
-#: doc/contributing.texi:1189
+#: doc/contributing.texi:1216
 msgid "Send @email{guix-maintainers@@gnu.org} a message stating your intent, listing the three committers who support your application, signed with the OpenPGP key you will use to sign commits, and giving its fingerprint (see below).  See @uref{https://emailselfdefense.fsf.org/en/}, for an introduction to public-key cryptography with GnuPG."
 msgstr "Отправьте @email{guix-keepers@@gnu.org} сообщение с указанием ваших намерений, перечисляя трех коммиттеров, поддерживающих вашу заявку, подписанных ключом OpenPGP, который вы будете использовать для подписания коммитов, и указав свой отпечаток (смотри ниже). Ознакомся с @uref{https://emailselfdefense.fsf.org/ru/}, чтобы познакомиться с криптографией с открытым ключом с помощью GnuPG."
 
 #. type: enumerate
-#: doc/contributing.texi:1193
+#: doc/contributing.texi:1222
+msgid "Set up GnuPG such that it never uses the SHA1 hash algorithm for digital signatures, which is known to be unsafe since 2019, for instance by adding the following line to @file{~/.gnupg/gpg.conf} (@pxref{GPG Esoteric Options,,, gnupg, The GNU Privacy Guard Manual}):"
+msgstr "Настройте GnuPG так, чтобы он никогда не использовал хэш-алгоритм SHA1 для цифровых подписей, который, как известно, небезопасен с 2019 года. Например, добавив следующую строку в @file{~/.gnupg/gpg.conf} (@pxref{GPG Esoteric Options,,, gnupg, The GNU Privacy Guard Manual}):"
+
+#. type: example
+#: doc/contributing.texi:1225
+#, no-wrap
+msgid "digest-algo sha512\n"
+msgstr "digest-algo sha512\n"
+
+#. type: enumerate
+#: doc/contributing.texi:1230
 msgid "Maintainers ultimately decide whether to grant you commit access, usually following your referrals' recommendation."
 msgstr "Маинтайнеры решают, предоставлять ли вам доступ к коммитам, обычно следуя рекомендациям ваших рефералов."
 
+#. type: cindex
+#: doc/contributing.texi:1232
+#, no-wrap
+msgid "OpenPGP, signed commits"
+msgstr "Коммиты, подписанные OpenPGP"
+
 #. type: enumerate
-#: doc/contributing.texi:1199
+#: doc/contributing.texi:1237
 msgid "If and once you've been given access, please send a message to @email{guix-devel@@gnu.org} to say so, again signed with the OpenPGP key you will use to sign commits (do that before pushing your first commit).  That way, everyone can notice and ensure you control that OpenPGP key."
 msgstr "Получив доступ, пожалуйста, отправьте сообщение на адрес @email{guix-devel@@gnu.org}, чтобы снова подписать его ключом OpenPGP, который вы будете использовать для подписания коммитов (сделайте это перед отправкой первого коммита). Таким образом, каждый может заметить и убедиться, что это ваш ключ OpenPGP."
 
+#. type: quotation
+#: doc/contributing.texi:1238
+#, no-wrap
+msgid "Important"
+msgstr "Важно"
+
+#. type: quotation
+#: doc/contributing.texi:1240
+msgid "Before you can push for the first time, maintainers must:"
+msgstr "Перед тем, как вы отправите изменения впервые, сопровождающие должны:"
+
+#. type: enumerate
+#: doc/contributing.texi:1244
+msgid "add your OpenPGP key to the @code{keyring} branch;"
+msgstr "добавить ваш OpenPGP ключ в @code{keyring} ветку;"
+
 #. type: enumerate
-#: doc/contributing.texi:1205
+#: doc/contributing.texi:1247
+msgid "add your OpenPGP fingerprint to the @file{.guix-authorizations} file of the branch(es) you will commit to."
+msgstr "добавьте отпечаток вашего OpenPGP ключа в @file{.guix-authorizations} файл ветки (-ок), которые вы подпишите (commit)."
+
+#. type: enumerate
+#: doc/contributing.texi:1252
 msgid "Make sure to read the rest of this section and... profit!"
 msgstr "Обязательно прочтите остальную часть этого раздела."
 
 #. type: quotation
-#: doc/contributing.texi:1211
+#: doc/contributing.texi:1258
 msgid "Maintainers are happy to give commit access to people who have been contributing for some time and have a track record---don't be shy and don't underestimate your work!"
 msgstr "Маинтейнеры с радостью предоставят доступ к коммитам людям, которые внесли свой вклад в течение некоторого времени и имеют послужной список - не стесняйтесь и не недооценивайте свою работу!"
 
 #. type: quotation
-#: doc/contributing.texi:1215
+#: doc/contributing.texi:1262
 msgid "However, note that the project is working towards a more automated patch review and merging system, which, as a consequence, may lead us to have fewer people with commit access to the main repository.  Stay tuned!"
 msgstr "Тем не менее, обратите внимание, что проект работает над созданием более автоматизированной системы проверки и объединения исправлений, что, как следствие, может привести к тому, что у нас будет меньше людей, имеющих доступ к главному репозиторию. Будьте на связи!"
 
 #. type: Plain text
-#: doc/contributing.texi:1220
+#: doc/contributing.texi:1267
 msgid "If you get commit access, please make sure to follow the policy below (discussions of the policy can take place on @email{guix-devel@@gnu.org})."
 msgstr "Если вы получили доступ к коммиту, пожалуйста, следуйте приведенной ниже политике (обсуждение политики может проходить по адресу @email{guix-devel@@gnu.org})."
 
 #. type: Plain text
-#: doc/contributing.texi:1225
+#: doc/contributing.texi:1272
 msgid "Non-trivial patches should always be posted to @email{guix-patches@@gnu.org} (trivial patches include fixing typos, etc.).  This mailing list fills the patch-tracking database (@pxref{Tracking Bugs and Patches})."
 msgstr "Нетривиальные патчи всегда должны публиковаться на @email{guix-patches@@gnu.org} (тривиальные патчи включают исправление опечаток и т.д.). Этот список рассылки заполняет базу данных отслеживания патчей (@pxref{Tracking Bugs and Patches})."
 
 #. type: Plain text
-#: doc/contributing.texi:1234
+#: doc/contributing.texi:1281
 msgid "For patches that just add a new package, and a simple one, it's OK to commit, if you're confident (which means you successfully built it in a chroot setup, and have done a reasonable copyright and license auditing).  Likewise for package upgrades, except upgrades that trigger a lot of rebuilds (for example, upgrading GnuTLS or GLib).  We have a mailing list for commit notifications (@email{guix-commits@@gnu.org}), so people can notice.  Before pushing your changes, make sure to run @code{git pull --rebase}."
 msgstr "Для патчей, которые просто добавляют новый пакет или внсит небольшие изменения считается нормальным отправить коммит, если вы уверены (что означает, что вы успешно встроили его в настройку chroot и провели разумный аудит авторских прав и лицензий). Аналогично для обновлений пакетов, за исключением обновлений, которые вызывают много перестроений (например, обновление GnuTLS или GLib). У нас есть список рассылки для уведомлений о коммитах (@email{guix-commits@@gnu.org}), так что люди могут это заметить. Перед отправкой изменений обязательно запустите @code{git pull --rebase}."
 
 #. type: Plain text
-#: doc/contributing.texi:1240
+#: doc/contributing.texi:1287
 msgid "All commits that are pushed to the central repository on Savannah must be signed with an OpenPGP key, and the public key should be uploaded to your user account on Savannah and to public key servers, such as @code{keys.openpgp.org}.  To configure Git to automatically sign commits, run:"
 msgstr "Все коммиты, которые передаются в центральный репозиторий в Саванне, должны быть подписаны ключом OpenPGP, а открытый ключ должен быть загружен в вашу учетную запись пользователя на Саванне и на серверы открытых ключей, такие как @code{keys.openpgp.org}. Чтобы настроить Git для автоматической подписи коммитов, запустите:"
 
 #. type: example
-#: doc/contributing.texi:1244
+#: doc/contributing.texi:1291
 #, no-wrap
 msgid ""
 "git config commit.gpgsign true\n"
@@ -1819,43 +1923,112 @@ msgstr ""
 "git config user.signingkey CABBA6EA1DC0FF33\n"
 
 #. type: Plain text
-#: doc/contributing.texi:1249
+#: doc/contributing.texi:1296
 msgid "You can prevent yourself from accidentally pushing unsigned commits to Savannah by using the pre-push Git hook called located at @file{etc/git/pre-push}:"
 msgstr "Вы можете предотвратить случайную отправку неподписанных коммитов в Саванну с помощью pre-push Git hook, расположенной в @file{etc/git/pre-push}:"
 
 #. type: example
-#: doc/contributing.texi:1252
+#: doc/contributing.texi:1299
 #, no-wrap
 msgid "cp etc/git/pre-push .git/hooks/pre-push\n"
 msgstr "cp etc/git/pre-push .git/hooks/pre-push\n"
 
 #. type: Plain text
-#: doc/contributing.texi:1258
+#: doc/contributing.texi:1305
 msgid "When pushing a commit on behalf of somebody else, please add a @code{Signed-off-by} line at the end of the commit log message---e.g., with @command{git am --signoff}.  This improves tracking of who did what."
 msgstr "Когда вы отправляете коммит от имени кого-то другого, добавьте строку @code{Signed-off-by} в конце сообщения коммит лога---например, с @command{git am --signoff}. Это улучшает отслеживание того, кто что сделал."
 
 #. type: Plain text
-#: doc/contributing.texi:1263
+#: doc/contributing.texi:1309
+msgid "When adding channel news entries (@pxref{Channels, Writing Channel News}), make sure they are well-formed by running the following command right before pushing:"
+msgstr ""
+
+#. type: example
+#: doc/contributing.texi:1312
+#, no-wrap
+msgid "make check-channel-news\n"
+msgstr "make check-channel-news\n"
+
+#. type: Plain text
+#: doc/contributing.texi:1318
 msgid "For anything else, please post to @email{guix-patches@@gnu.org} and leave time for a review, without committing anything (@pxref{Submitting Patches}).  If you didn’t receive any reply after two weeks, and if you're confident, it's OK to commit."
 msgstr "Для чего-либо еще, пожалуйста, отправьте сообщение на @email{guix-patches@@gnu.org} и оставьте время для обзора, ничего не коммитя (@pxref{Submitting Patches}). Если вы не получили никакого ответа через две недели, и если вы уверены, что все в порядке, будь нормальным совершить коммит."
 
 #. type: Plain text
-#: doc/contributing.texi:1266
+#: doc/contributing.texi:1321
 msgid "That last part is subject to being adjusted, allowing individuals to commit directly on non-controversial changes on parts they’re familiar with."
 msgstr "Эта последняя часть подлежит корректировке, что позволяет отдельным лицам вносить непосредственные изменения в не противоречивые изменения в тех частях, с которыми они знакомы."
 
 #. type: Plain text
-#: doc/contributing.texi:1271
+#: doc/contributing.texi:1327
 msgid "One last thing: the project keeps moving forward because committers not only push their own awesome changes, but also offer some of their time @emph{reviewing} and pushing other people's changes.  As a committer, you're welcome to use your expertise and commit rights to help other contributors, too!"
 msgstr "И последнее: проект продолжает двигаться вперед, потому что коммиттеры не только вносят свои собственные потрясающие изменения, но также уделяют свое время на @emph{reviewing} и продвижение изменений других людей. Как коммиттер, вы можете использовать свой опыт и передавать права, чтобы помочь и другим участникам!"
 
+#. type: cindex
+#: doc/contributing.texi:1331
+#, fuzzy, no-wrap
+#| msgid "guix package: (guix)Invoking guix package"
+msgid "update-guix-package, updating the guix package"
+msgstr "guix package: (guix)Запуск guix package"
+
+#. type: Plain text
+#: doc/contributing.texi:1337
+msgid "It is sometimes desirable to update the @code{guix} package itself (the package defined in @code{(gnu packages package-management)}), for example to make new daemon features available for use by the @code{guix-service-type} service type.  In order to simplify this task, the following command can be used:"
+msgstr ""
+
+#. type: example
+#: doc/contributing.texi:1340
+#, fuzzy, no-wrap
+#| msgid "make authenticate\n"
+msgid "make update-guix-package\n"
+msgstr "make authenticate\n"
+
+#. type: Plain text
+#: doc/contributing.texi:1347
+msgid "The @code{update-guix-package} make target will use the last known @emph{commit} corresponding to @code{HEAD} in your Guix checkout, compute the hash of the Guix sources corresponding to that commit and update the @code{commit}, @code{revision} and hash of the @code{guix} package definition."
+msgstr ""
+
+#. type: Plain text
+#: doc/contributing.texi:1351
+msgid "To validate that the updated @code{guix} package hashes are correct and that it can be built successfully, the following command can be run from the directory of your Guix checkout:"
+msgstr ""
+
+#. type: example
+#: doc/contributing.texi:1354
+#, fuzzy, no-wrap
+#| msgid "./pre-inst-env guix build gnew --keep-failed\n"
+msgid "./pre-inst-env guix build guix\n"
+msgstr "./pre-inst-env guix build gnew --keep-failed\n"
+
+#. type: Plain text
+#: doc/contributing.texi:1359
+msgid "To guard against accidentally updating the @code{guix} package to a commit that others can't refer to, a check is made that the commit used has already been pushed to the Savannah-hosted Guix git repository."
+msgstr ""
+
+#. type: Plain text
+#: doc/contributing.texi:1362
+msgid "This check can be disabled, @emph{at your own peril}, by setting the @code{GUIX_ALLOW_ME_TO_USE_PRIVATE_COMMIT} environment variable."
+msgstr ""
+
+#. type: Plain text
+#: doc/contributing.texi:1365
+msgid "To build the resulting 'guix' package when using a private commit, the following command can be used:"
+msgstr ""
+
+#. type: example
+#: doc/contributing.texi:1368
+#, fuzzy, no-wrap
+#| msgid "./pre-inst-env guix build gnew --keep-failed\n"
+msgid "./pre-inst-env guix build guix --with-git-url=guix=$PWD\n"
+msgstr "./pre-inst-env guix build gnew --keep-failed\n"
+
 #. type: Plain text
 #: doc/guix.texi:7
 msgid "@documentencoding UTF-8"
 msgstr "@documentencoding UTF-8"
 
 #. type: title
-#: doc/guix.texi:7 doc/guix.texi:107
+#: doc/guix.texi:7 doc/guix.texi:111
 #, no-wrap
 msgid "GNU Guix Reference Manual"
 msgstr "Руководство по GNU Guix"
@@ -1867,2041 +2040,2347 @@ msgid "version.texi"
 msgstr "version-ru.texi"
 
 #. type: copying
-#: doc/guix.texi:80
-#, fuzzy
-#| msgid "Copyright @copyright{} 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès@* Copyright @copyright{} 2013, 2014, 2016 Andreas Enge@* Copyright @copyright{} 2013 Nikita Karetnikov@* Copyright @copyright{} 2014, 2015, 2016 Alex Kost@* Copyright @copyright{} 2015, 2016 Mathieu Lirzin@* Copyright @copyright{} 2014 Pierre-Antoine Rault@* Copyright @copyright{} 2015 Taylan Ulrich Bayırlı/Kammer@* Copyright @copyright{} 2015, 2016, 2017, 2019 Leo Famulari@* Copyright @copyright{} 2015, 2016, 2017, 2018, 2019, 2020 Ricardo Wurmus@* Copyright @copyright{} 2016 Ben Woodcroft@* Copyright @copyright{} 2016, 2017, 2018 Chris Marusich@* Copyright @copyright{} 2016, 2017, 2018, 2019 Efraim Flashner@* Copyright @copyright{} 2016 John Darrington@* Copyright @copyright{} 2016, 2017 ng0@* Copyright @copyright{} 2016, 2017, 2018, 2019 Jan Nieuwenhuizen@* Copyright @copyright{} 2016 Julien Lepiller@* Copyright @copyright{} 2016 Alex ter Weele@* Copyright @copyright{} 2016, 2017, 2018, 2019 Christopher Baines@* Copyright @copyright{} 2017, 2018, 2019 Clément Lassieur@* Copyright @copyright{} 2017, 2018 Mathieu Othacehe@* Copyright @copyright{} 2017 Federico Beffa@* Copyright @copyright{} 2017, 2018 Carlo Zancanaro@* Copyright @copyright{} 2017 Thomas Danckaert@* Copyright @copyright{} 2017 humanitiesNerd@* Copyright @copyright{} 2017 Christopher Allan Webber@* Copyright @copyright{} 2017, 2018, 2019 Marius Bakke@* Copyright @copyright{} 2017, 2019, 2020 Hartmut Goebel@* Copyright @copyright{} 2017, 2019, 2020 Maxim Cournoyer@* Copyright @copyright{} 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice@* Copyright @copyright{} 2017 George Clemmer@* Copyright @copyright{} 2017 Andy Wingo@* Copyright @copyright{} 2017, 2018, 2019 Arun Isaac@* Copyright @copyright{} 2017 nee@* Copyright @copyright{} 2018 Rutger Helling@* Copyright @copyright{} 2018 Oleg Pykhalov@* Copyright @copyright{} 2018 Mike Gerwitz@* Copyright @copyright{} 2018 Pierre-Antoine Rouby@* Copyright @copyright{} 2018, 2019 Gábor Boskovits@* Copyright @copyright{} 2018, 2019 Florian Pelz@* Copyright @copyright{} 2018 Laura Lazzati@* Copyright @copyright{} 2018 Alex Vong@* Copyright @copyright{} 2019 Josh Holland@* Copyright @copyright{} 2019 Diego Nicola Barbato@* Copyright @copyright{} 2019 Ivan Petkov@* Copyright @copyright{} 2019 Jakob L. Kreuze@* Copyright @copyright{} 2019 Kyle Andrews@* Copyright @copyright{} 2019 Alex Griffin@* Copyright @copyright{} 2019 Guillaume Le Vaillant@* Copyright @copyright{} 2020 Leo Prikler@* Copyright @copyright{} 2019, 2020 Simon Tournier@* Copyright @copyright{} 2020 Wiktor Żelazny@* Copyright @copyright{} 2020 Damien Cassou@*"
-msgid "Copyright @copyright{} 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès@* Copyright @copyright{} 2013, 2014, 2016 Andreas Enge@* Copyright @copyright{} 2013 Nikita Karetnikov@* Copyright @copyright{} 2014, 2015, 2016 Alex Kost@* Copyright @copyright{} 2015, 2016 Mathieu Lirzin@* Copyright @copyright{} 2014 Pierre-Antoine Rault@* Copyright @copyright{} 2015 Taylan Ulrich Bayırlı/Kammer@* Copyright @copyright{} 2015, 2016, 2017, 2019, 2020 Leo Famulari@* Copyright @copyright{} 2015, 2016, 2017, 2018, 2019, 2020 Ricardo Wurmus@* Copyright @copyright{} 2016 Ben Woodcroft@* Copyright @copyright{} 2016, 2017, 2018 Chris Marusich@* Copyright @copyright{} 2016, 2017, 2018, 2019, 2020 Efraim Flashner@* Copyright @copyright{} 2016 John Darrington@* Copyright @copyright{} 2016, 2017 ng0@* Copyright @copyright{} 2016, 2017, 2018, 2019 Jan Nieuwenhuizen@* Copyright @copyright{} 2016 Julien Lepiller@* Copyright @copyright{} 2016 Alex ter Weele@* Copyright @copyright{} 2016, 2017, 2018, 2019 Christopher Baines@* Copyright @copyright{} 2017, 2018, 2019 Clément Lassieur@* Copyright @copyright{} 2017, 2018 Mathieu Othacehe@* Copyright @copyright{} 2017 Federico Beffa@* Copyright @copyright{} 2017, 2018 Carlo Zancanaro@* Copyright @copyright{} 2017 Thomas Danckaert@* Copyright @copyright{} 2017 humanitiesNerd@* Copyright @copyright{} 2017 Christopher Allan Webber@* Copyright @copyright{} 2017, 2018, 2019, 2020 Marius Bakke@* Copyright @copyright{} 2017, 2019, 2020 Hartmut Goebel@* Copyright @copyright{} 2017, 2019, 2020 Maxim Cournoyer@* Copyright @copyright{} 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice@* Copyright @copyright{} 2017 George Clemmer@* Copyright @copyright{} 2017 Andy Wingo@* Copyright @copyright{} 2017, 2018, 2019 Arun Isaac@* Copyright @copyright{} 2017 nee@* Copyright @copyright{} 2018 Rutger Helling@* Copyright @copyright{} 2018 Oleg Pykhalov@* Copyright @copyright{} 2018 Mike Gerwitz@* Copyright @copyright{} 2018 Pierre-Antoine Rouby@* Copyright @copyright{} 2018, 2019 Gábor Boskovits@* Copyright @copyright{} 2018, 2019 Florian Pelz@* Copyright @copyright{} 2018 Laura Lazzati@* Copyright @copyright{} 2018 Alex Vong@* Copyright @copyright{} 2019 Josh Holland@* Copyright @copyright{} 2019 Diego Nicola Barbato@* Copyright @copyright{} 2019 Ivan Petkov@* Copyright @copyright{} 2019 Jakob L. Kreuze@* Copyright @copyright{} 2019 Kyle Andrews@* Copyright @copyright{} 2019 Alex Griffin@* Copyright @copyright{} 2019 Guillaume Le Vaillant@* Copyright @copyright{} 2020 Leo Prikler@* Copyright @copyright{} 2019, 2020 Simon Tournier@* Copyright @copyright{} 2020 Wiktor Żelazny@* Copyright @copyright{} 2020 Damien Cassou@* Copyright @copyright{} 2020 Jakub Kądziołka@* Copyright @copyright{} 2020 Jack Hill@* Copyright @copyright{} 2020 Naga Malleswari@* Copyright @copyright{} 2020 Brice Waegeneire@*"
-msgstr "Copyright @copyright{} 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès@* Copyright @copyright{} 2013, 2014, 2016 Andreas Enge@* Copyright @copyright{} 2013 Nikita Karetnikov@* Copyright @copyright{} 2014, 2015, 2016 Alex Kost@* Copyright @copyright{} 2015, 2016 Mathieu Lirzin@* Copyright @copyright{} 2014 Pierre-Antoine Rault@* Copyright @copyright{} 2015 Taylan Ulrich Bayırlı/Kammer@* Copyright @copyright{} 2015, 2016, 2017, 2019 Leo Famulari@* Copyright @copyright{} 2015, 2016, 2017, 2018, 2019, 2020 Ricardo Wurmus@* Copyright @copyright{} 2016 Ben Woodcroft@* Copyright @copyright{} 2016, 2017, 2018 Chris Marusich@* Copyright @copyright{} 2016, 2017, 2018, 2019 Efraim Flashner@* Copyright @copyright{} 2016 John Darrington@* Copyright @copyright{} 2016, 2017 ng0@* Copyright @copyright{} 2016, 2017, 2018, 2019 Jan Nieuwenhuizen@* Copyright @copyright{} 2016 Julien Lepiller@* Copyright @copyright{} 2016 Alex ter Weele@* Copyright @copyright{} 2016, 2017, 2018, 2019 Christopher Baines@* Copyright @copyright{} 2017, 2018, 2019 Clément Lassieur@* Copyright @copyright{} 2017, 2018 Mathieu Othacehe@* Copyright @copyright{} 2017 Federico Beffa@* Copyright @copyright{} 2017, 2018 Carlo Zancanaro@* Copyright @copyright{} 2017 Thomas Danckaert@* Copyright @copyright{} 2017 humanitiesNerd@* Copyright @copyright{} 2017 Christopher Allan Webber@* Copyright @copyright{} 2017, 2018, 2019 Marius Bakke@* Copyright @copyright{} 2017, 2019, 2020 Hartmut Goebel@* Copyright @copyright{} 2017, 2019, 2020 Maxim Cournoyer@* Copyright @copyright{} 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice@* Copyright @copyright{} 2017 George Clemmer@* Copyright @copyright{} 2017 Andy Wingo@* Copyright @copyright{} 2017, 2018, 2019 Arun Isaac@* Copyright @copyright{} 2017 nee@* Copyright @copyright{} 2018 Rutger Helling@* Copyright @copyright{} 2018 Oleg Pykhalov@* Copyright @copyright{} 2018 Mike Gerwitz@* Copyright @copyright{} 2018 Pierre-Antoine Rouby@* Copyright @copyright{} 2018, 2019 Gábor Boskovits@* Copyright @copyright{} 2018, 2019 Florian Pelz@* Copyright @copyright{} 2018 Laura Lazzati@* Copyright @copyright{} 2018 Alex Vong@* Copyright @copyright{} 2019 Josh Holland@* Copyright @copyright{} 2019 Diego Nicola Barbato@* Copyright @copyright{} 2019 Ivan Petkov@* Copyright @copyright{} 2019 Jakob L. Kreuze@* Copyright @copyright{} 2019 Kyle Andrews@* Copyright @copyright{} 2019 Alex Griffin@* Copyright @copyright{} 2019 Guillaume Le Vaillant@* Copyright @copyright{} 2020 Leo Prikler@* Copyright @copyright{} 2019, 2020 Simon Tournier@* Copyright @copyright{} 2020 Wiktor Żelazny@* Copyright @copyright{} 2020 Damien Cassou@*"
+#: doc/guix.texi:84
+msgid "Copyright @copyright{} 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès@* Copyright @copyright{} 2013, 2014, 2016 Andreas Enge@* Copyright @copyright{} 2013 Nikita Karetnikov@* Copyright @copyright{} 2014, 2015, 2016 Alex Kost@* Copyright @copyright{} 2015, 2016 Mathieu Lirzin@* Copyright @copyright{} 2014 Pierre-Antoine Rault@* Copyright @copyright{} 2015 Taylan Ulrich Bayırlı/Kammer@* Copyright @copyright{} 2015, 2016, 2017, 2019, 2020 Leo Famulari@* Copyright @copyright{} 2015, 2016, 2017, 2018, 2019, 2020 Ricardo Wurmus@* Copyright @copyright{} 2016 Ben Woodcroft@* Copyright @copyright{} 2016, 2017, 2018 Chris Marusich@* Copyright @copyright{} 2016, 2017, 2018, 2019, 2020 Efraim Flashner@* Copyright @copyright{} 2016 John Darrington@* Copyright @copyright{} 2016, 2017 Nikita Gillmann@* Copyright @copyright{} 2016, 2017, 2018, 2019, 2020 Jan Nieuwenhuizen@* Copyright @copyright{} 2016, 2017, 2018, 2019, 2020 Julien Lepiller@* Copyright @copyright{} 2016 Alex ter Weele@* Copyright @copyright{} 2016, 2017, 2018, 2019 Christopher Baines@* Copyright @copyright{} 2017, 2018, 2019 Clément Lassieur@* Copyright @copyright{} 2017, 2018, 2020 Mathieu Othacehe@* Copyright @copyright{} 2017 Federico Beffa@* Copyright @copyright{} 2017, 2018 Carlo Zancanaro@* Copyright @copyright{} 2017 Thomas Danckaert@* Copyright @copyright{} 2017 humanitiesNerd@* Copyright @copyright{} 2017 Christopher Allan Webber@* Copyright @copyright{} 2017, 2018, 2019, 2020 Marius Bakke@* Copyright @copyright{} 2017, 2019, 2020 Hartmut Goebel@* Copyright @copyright{} 2017, 2019, 2020 Maxim Cournoyer@* Copyright @copyright{} 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice@* Copyright @copyright{} 2017 George Clemmer@* Copyright @copyright{} 2017 Andy Wingo@* Copyright @copyright{} 2017, 2018, 2019, 2020 Arun Isaac@* Copyright @copyright{} 2017 nee@* Copyright @copyright{} 2018 Rutger Helling@* Copyright @copyright{} 2018 Oleg Pykhalov@* Copyright @copyright{} 2018 Mike Gerwitz@* Copyright @copyright{} 2018 Pierre-Antoine Rouby@* Copyright @copyright{} 2018, 2019 Gábor Boskovits@* Copyright @copyright{} 2018, 2019, 2020 Florian Pelz@* Copyright @copyright{} 2018 Laura Lazzati@* Copyright @copyright{} 2018 Alex Vong@* Copyright @copyright{} 2019 Josh Holland@* Copyright @copyright{} 2019, 2020 Diego Nicola Barbato@* Copyright @copyright{} 2019 Ivan Petkov@* Copyright @copyright{} 2019 Jakob L. Kreuze@* Copyright @copyright{} 2019 Kyle Andrews@* Copyright @copyright{} 2019 Alex Griffin@* Copyright @copyright{} 2019 Guillaume Le Vaillant@* Copyright @copyright{} 2020 Leo Prikler@* Copyright @copyright{} 2019, 2020 Simon Tournier@* Copyright @copyright{} 2020 Wiktor Żelazny@* Copyright @copyright{} 2020 Damien Cassou@* Copyright @copyright{} 2020 Jakub Kądziołka@* Copyright @copyright{} 2020 Jack Hill@* Copyright @copyright{} 2020 Naga Malleswari@* Copyright @copyright{} 2020 Brice Waegeneire@* Copyright @copyright{} 2020 R Veera Kumar@* Copyright @copyright{} 2020 Pierre Langlois@* Copyright @copyright{} 2020 pinoaffe@* Copyright @copyright{} 2020 André Batista@*"
+msgstr "Copyright @copyright{} 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès@* Copyright @copyright{} 2013, 2014, 2016 Andreas Enge@* Copyright @copyright{} 2013 Nikita Karetnikov@* Copyright @copyright{} 2014, 2015, 2016 Alex Kost@* Copyright @copyright{} 2015, 2016 Mathieu Lirzin@* Copyright @copyright{} 2014 Pierre-Antoine Rault@* Copyright @copyright{} 2015 Taylan Ulrich Bayırlı/Kammer@* Copyright @copyright{} 2015, 2016, 2017, 2019, 2020 Leo Famulari@* Copyright @copyright{} 2015, 2016, 2017, 2018, 2019, 2020 Ricardo Wurmus@* Copyright @copyright{} 2016 Ben Woodcroft@* Copyright @copyright{} 2016, 2017, 2018 Chris Marusich@* Copyright @copyright{} 2016, 2017, 2018, 2019, 2020 Efraim Flashner@* Copyright @copyright{} 2016 John Darrington@* Copyright @copyright{} 2016, 2017 Nikita Gillmann@* Copyright @copyright{} 2016, 2017, 2018, 2019, 2020 Jan Nieuwenhuizen@* Copyright @copyright{} 2016, 2017, 2018, 2019, 2020 Julien Lepiller@* Copyright @copyright{} 2016 Alex ter Weele@* Copyright @copyright{} 2016, 2017, 2018, 2019 Christopher Baines@* Copyright @copyright{} 2017, 2018, 2019 Clément Lassieur@* Copyright @copyright{} 2017, 2018, 2020 Mathieu Othacehe@* Copyright @copyright{} 2017 Federico Beffa@* Copyright @copyright{} 2017, 2018 Carlo Zancanaro@* Copyright @copyright{} 2017 Thomas Danckaert@* Copyright @copyright{} 2017 humanitiesNerd@* Copyright @copyright{} 2017 Christopher Allan Webber@* Copyright @copyright{} 2017, 2018, 2019, 2020 Marius Bakke@* Copyright @copyright{} 2017, 2019, 2020 Hartmut Goebel@* Copyright @copyright{} 2017, 2019, 2020 Maxim Cournoyer@* Copyright @copyright{} 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice@* Copyright @copyright{} 2017 George Clemmer@* Copyright @copyright{} 2017 Andy Wingo@* Copyright @copyright{} 2017, 2018, 2019, 2020 Arun Isaac@* Copyright @copyright{} 2017 nee@* Copyright @copyright{} 2018 Rutger Helling@* Copyright @copyright{} 2018 Oleg Pykhalov@* Copyright @copyright{} 2018 Mike Gerwitz@* Copyright @copyright{} 2018 Pierre-Antoine Rouby@* Copyright @copyright{} 2018, 2019 Gábor Boskovits@* Copyright @copyright{} 2018, 2019, 2020 Florian Pelz@* Copyright @copyright{} 2018 Laura Lazzati@* Copyright @copyright{} 2018 Alex Vong@* Copyright @copyright{} 2019 Josh Holland@* Copyright @copyright{} 2019, 2020 Diego Nicola Barbato@* Copyright @copyright{} 2019 Ivan Petkov@* Copyright @copyright{} 2019 Jakob L. Kreuze@* Copyright @copyright{} 2019 Kyle Andrews@* Copyright @copyright{} 2019 Alex Griffin@* Copyright @copyright{} 2019 Guillaume Le Vaillant@* Copyright @copyright{} 2020 Leo Prikler@* Copyright @copyright{} 2019, 2020 Simon Tournier@* Copyright @copyright{} 2020 Wiktor Żelazny@* Copyright @copyright{} 2020 Damien Cassou@* Copyright @copyright{} 2020 Jakub Kądziołka@* Copyright @copyright{} 2020 Jack Hill@* Copyright @copyright{} 2020 Naga Malleswari@* Copyright @copyright{} 2020 Brice Waegeneire@* Copyright @copyright{} 2020 R Veera Kumar@* Copyright @copyright{} 2020 Pierre Langlois@* Copyright @copyright{} 2020 pinoaffe@* Copyright @copyright{} 2020 André Batista@*"
 
 #. type: copying
-#: doc/guix.texi:87
+#: doc/guix.texi:91
 msgid "Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.  A copy of the license is included in the section entitled ``GNU Free Documentation License''."
 msgstr "Разрешено копирование, распространение и/или модификация этого документа на условиях лицензии свободной документации GNU (GNU FDL) версии 1.3 или любой более поздней версии, опубликованной Фондом свободного программного обеспечения (FSF), исключая неизменяемые секции, исключая тексты, размещенные на переплёте и задней стороне обложки. Копия лицензии включена в документ в разделе под названием \"GNU Free Documentation Licens\"."
 
 #. type: dircategory
-#: doc/guix.texi:89
+#: doc/guix.texi:93
 #, no-wrap
 msgid "System administration"
 msgstr "Администрирование системы"
 
 #. type: menuentry
-#: doc/guix.texi:97
+#: doc/guix.texi:101
 msgid "Guix: (guix)"
 msgstr "Guix: (guix)"
 
 #. type: menuentry
-#: doc/guix.texi:97
+#: doc/guix.texi:101
 msgid "Manage installed software and system configuration."
 msgstr "Управление установленным ПО и настройка системы"
 
 #. type: menuentry
-#: doc/guix.texi:97
+#: doc/guix.texi:101
 msgid "guix package: (guix)Invoking guix package"
 msgstr "guix package: (guix)Запуск guix package"
 
 #. type: menuentry
-#: doc/guix.texi:97
+#: doc/guix.texi:101
 msgid "Installing, removing, and upgrading packages."
 msgstr "Установка, удаление и обновление пакетов"
 
 #. type: menuentry
-#: doc/guix.texi:97
+#: doc/guix.texi:101
 msgid "guix gc: (guix)Invoking guix gc"
 msgstr "guix gc: (guix)Запуск guix gc"
 
 #. type: menuentry
-#: doc/guix.texi:97
+#: doc/guix.texi:101
 msgid "Reclaiming unused disk space."
 msgstr "Освобождение неиспользуемого места на диске"
 
 #. type: menuentry
-#: doc/guix.texi:97
+#: doc/guix.texi:101
 msgid "guix pull: (guix)Invoking guix pull"
 msgstr "guix pull: (guix)Запуск guix pull"
 
 #. type: menuentry
-#: doc/guix.texi:97
+#: doc/guix.texi:101
 msgid "Update the list of available packages."
 msgstr "Обновление списка доступных пакетов"
 
 #. type: menuentry
-#: doc/guix.texi:97
+#: doc/guix.texi:101
 msgid "guix system: (guix)Invoking guix system"
 msgstr "guix system: (guix)Запуск guix system"
 
 #. type: menuentry
-#: doc/guix.texi:97
+#: doc/guix.texi:101
 msgid "Manage the operating system configuration."
 msgstr "Управление конфигурацией ОС"
 
 #. type: menuentry
-#: doc/guix.texi:97
+#: doc/guix.texi:101
 msgid "guix deploy: (guix)Invoking guix deploy"
 msgstr "guix deploy: (guix)Запуск guix deploy"
 
 #. type: menuentry
-#: doc/guix.texi:97
+#: doc/guix.texi:101
 msgid "Manage operating system configurations for remote hosts."
 msgstr "Управление конфигурациями ОС на удалённых машинах"
 
 #. type: dircategory
-#: doc/guix.texi:99
+#: doc/guix.texi:103
 #, no-wrap
 msgid "Software development"
 msgstr "Разработка программного обеспечения"
 
 #. type: menuentry
-#: doc/guix.texi:104
+#: doc/guix.texi:108
 msgid "guix environment: (guix)Invoking guix environment"
 msgstr "guix environment: (guix)Запуск guix environment"
 
 #. type: menuentry
-#: doc/guix.texi:104
+#: doc/guix.texi:108
 msgid "Building development environments with Guix."
 msgstr "Сборка среды разработки с помощью Guix"
 
 #. type: menuentry
-#: doc/guix.texi:104
+#: doc/guix.texi:108
 msgid "guix build: (guix)Invoking guix build"
 msgstr "guix build: (guix)Запуск guix build"
 
 #. type: menuentry
-#: doc/guix.texi:104
+#: doc/guix.texi:108
 msgid "Building packages."
 msgstr "Сборка пакетов"
 
 #. type: menuentry
-#: doc/guix.texi:104
+#: doc/guix.texi:108
 msgid "guix pack: (guix)Invoking guix pack"
 msgstr "guix pack: (guix)Запуск guix pack"
 
 #. type: menuentry
-#: doc/guix.texi:104
+#: doc/guix.texi:108
 msgid "Creating binary bundles."
 msgstr "Создание бинарных пакетов"
 
 #. type: subtitle
-#: doc/guix.texi:108
+#: doc/guix.texi:112
 #, no-wrap
 msgid "Using the GNU Guix Functional Package Manager"
 msgstr "Использование функционального пакетного менеджера GNU Guix"
 
 #. type: author
-#: doc/guix.texi:109
+#: doc/guix.texi:113
 #, no-wrap
 msgid "The GNU Guix Developers"
 msgstr "Разработчики GNU Guix"
 
 #. type: titlepage
-#: doc/guix.texi:115
+#: doc/guix.texi:119
 msgid "Edition @value{EDITION} @* @value{UPDATED} @*"
 msgstr "Ревизия @value{EDITION} @* @value{UPDATED} @*"
 
 #. type: node
-#: doc/guix.texi:122
+#: doc/guix.texi:126
 #, no-wrap
 msgid "Top"
 msgstr "Top"
 
 #. type: top
-#: doc/guix.texi:123
+#: doc/guix.texi:127
 #, no-wrap
 msgid "GNU Guix"
 msgstr "GNU Guix"
 
 #. type: Plain text
-#: doc/guix.texi:127
+#: doc/guix.texi:131
 msgid "This document describes GNU Guix version @value{VERSION}, a functional package management tool written for the GNU system."
 msgstr "В этом документе описывается GNU Guix версии @value{VERSION} — менеджер пакетов, написанный для системы GNU."
 
 #. type: Plain text
-#: doc/guix.texi:139
+#: doc/guix.texi:143
 msgid "This manual is also available in Simplified Chinese (@pxref{Top,,, guix.zh_CN, GNU Guix参考手册}), French (@pxref{Top,,, guix.fr, Manuel de référence de GNU Guix}), German (@pxref{Top,,, guix.de, Referenzhandbuch zu GNU Guix}), Spanish (@pxref{Top,,, guix.es, Manual de referencia de GNU Guix}), and Russian (@pxref{Top,,, guix.ru, Руководство GNU Guix}).  If you would like to translate it in your native language, consider joining the @uref{https://translationproject.org/domain/guix-manual.html, Translation Project}."
 msgstr "Это руководство доступно также на (упрощённом) китайском языке (@pxref{Top,,, guix.zh_CN, GNU Guix参考手册}), на французском (@pxref{Top,,, guix.fr, Manuel de référence de GNU Guix}), немецком (@pxref{Top,,, guix.de, Referenzhandbuch zu GNU Guix}), испанском (@pxref{Top,,, guix.es, Manual de referencia de GNU Guix}) и русском (@pxref{Top,,, guix.ru, Руководство по GNU Guix}) языках. Если вы хотите перевести его на свой язык, присоединяйтесь к Проекту переводов @uref{https://translationproject.org/domain/guix-manual.html, Проект переводов}."
 
 #. type: chapter
-#: doc/guix.texi:155 doc/guix.texi:165 doc/guix.texi:332 doc/guix.texi:333
+#: doc/guix.texi:161 doc/guix.texi:171 doc/guix.texi:369 doc/guix.texi:370
 #, no-wrap
 msgid "Introduction"
 msgstr "Введение"
 
 #. type: menuentry
-#: doc/guix.texi:155
+#: doc/guix.texi:161
 msgid "What is Guix about?"
 msgstr "Что такое Guix?"
 
 #. type: chapter
-#: doc/guix.texi:155 doc/guix.texi:170 doc/guix.texi:491 doc/guix.texi:492
+#: doc/guix.texi:161 doc/guix.texi:176 doc/guix.texi:539 doc/guix.texi:540
 #, no-wrap
 msgid "Installation"
 msgstr "Установка"
 
 #. type: menuentry
-#: doc/guix.texi:155
+#: doc/guix.texi:161
 msgid "Installing Guix."
 msgstr "Установка Guix."
 
 #. type: chapter
-#: doc/guix.texi:155 doc/guix.texi:185 doc/guix.texi:1816 doc/guix.texi:1817
+#: doc/guix.texi:161 doc/guix.texi:192 doc/guix.texi:1897 doc/guix.texi:1898
 #, no-wrap
 msgid "System Installation"
 msgstr "Установка системы"
 
 #. type: menuentry
-#: doc/guix.texi:155
+#: doc/guix.texi:161
 msgid "Installing the whole operating system."
 msgstr "Полная установка операционной системы."
 
 #. type: chapter
-#: doc/guix.texi:155 doc/guix.texi:202 doc/guix.texi:2554 doc/guix.texi:2555
+#: doc/guix.texi:161 doc/guix.texi:2641 doc/guix.texi:2642
+#, no-wrap
+msgid "Getting Started"
+msgstr "Начиная"
+
+#. type: menuentry
+#: doc/guix.texi:161
+msgid "Your first steps."
+msgstr "Прервые шаги"
+
+#. type: chapter
+#: doc/guix.texi:161 doc/guix.texi:209 doc/guix.texi:2845 doc/guix.texi:2846
 #, no-wrap
 msgid "Package Management"
 msgstr "Управление пакетами"
 
 #. type: menuentry
-#: doc/guix.texi:155
+#: doc/guix.texi:161
 msgid "Package installation, upgrade, etc."
 msgstr "Установка пакетов, обновление и т.д."
 
 #. type: chapter
-#: doc/guix.texi:155 doc/guix.texi:225 doc/guix.texi:4648 doc/guix.texi:4649
+#: doc/guix.texi:161 doc/guix.texi:231 doc/guix.texi:4740 doc/guix.texi:4741
+#, no-wrap
+msgid "Channels"
+msgstr "Каналы"
+
+#. type: menuentry
+#: doc/guix.texi:161
+msgid "Customizing the package collection."
+msgstr "Настройка коллекции пакетов."
+
+#. type: chapter
+#: doc/guix.texi:161 doc/guix.texi:244 doc/guix.texi:5243 doc/guix.texi:5244
 #, no-wrap
 msgid "Development"
 msgstr "Разработка"
 
 #. type: menuentry
-#: doc/guix.texi:155
+#: doc/guix.texi:161
 msgid "Guix-aided software development."
 msgstr "Разработка программного обеспечения при поддержке Guix."
 
 #. type: chapter
-#: doc/guix.texi:155 doc/guix.texi:230 doc/guix.texi:5330 doc/guix.texi:5331
+#: doc/guix.texi:161 doc/guix.texi:251 doc/guix.texi:6063 doc/guix.texi:6064
 #, no-wrap
 msgid "Programming Interface"
 msgstr "Программный интерфейс"
 
 #. type: menuentry
-#: doc/guix.texi:155
+#: doc/guix.texi:161
 msgid "Using Guix in Scheme."
 msgstr "Использование Guix в Scheme."
 
 #. type: chapter
-#: doc/guix.texi:155 doc/guix.texi:246 doc/guix.texi:8142 doc/guix.texi:8143
+#: doc/guix.texi:161 doc/guix.texi:269 doc/guix.texi:9556 doc/guix.texi:9557
 #, no-wrap
 msgid "Utilities"
 msgstr "Утилиты"
 
 #. type: menuentry
-#: doc/guix.texi:155
+#: doc/guix.texi:161
 msgid "Package management commands."
 msgstr "Команды управления пакетами."
 
 #. type: chapter
-#: doc/guix.texi:155 doc/guix.texi:271 doc/guix.texi:10943 doc/guix.texi:10944
+#: doc/guix.texi:161 doc/guix.texi:294 doc/guix.texi:12554 doc/guix.texi:12555
 #, no-wrap
 msgid "System Configuration"
 msgstr "Конфигурирование системы"
 
 #. type: menuentry
-#: doc/guix.texi:155
+#: doc/guix.texi:161
 msgid "Configuring the operating system."
 msgstr "Конфигурирование операционной системы."
 
 #. type: chapter
-#: doc/guix.texi:155 doc/guix.texi:27979 doc/guix.texi:27980
+#: doc/guix.texi:161 doc/guix.texi:31658 doc/guix.texi:31659
 #, no-wrap
 msgid "Documentation"
 msgstr "Документация"
 
 #. type: menuentry
-#: doc/guix.texi:155
+#: doc/guix.texi:161
 msgid "Browsing software user manuals."
 msgstr "Программы обзора пользовательских мануалов."
 
 #. type: chapter
-#: doc/guix.texi:155 doc/guix.texi:28043 doc/guix.texi:28044
+#: doc/guix.texi:161 doc/guix.texi:356 doc/guix.texi:31722 doc/guix.texi:31723
 #, no-wrap
 msgid "Installing Debugging Files"
 msgstr "Установка файлов отладки"
 
 #. type: menuentry
-#: doc/guix.texi:155
+#: doc/guix.texi:161
 msgid "Feeding the debugger."
 msgstr "Запуск отладчика."
 
 #. type: chapter
-#: doc/guix.texi:155 doc/guix.texi:28109 doc/guix.texi:28110
+#: doc/guix.texi:161 doc/guix.texi:31863 doc/guix.texi:31864
 #, no-wrap
 msgid "Security Updates"
 msgstr "Обновления безопасности"
 
 #. type: menuentry
-#: doc/guix.texi:155
+#: doc/guix.texi:161
 msgid "Deploying security fixes quickly."
 msgstr "Быстрое применение исправлений безопасности."
 
 #. type: chapter
-#: doc/guix.texi:155 doc/guix.texi:28224 doc/guix.texi:28225
+#: doc/guix.texi:161 doc/guix.texi:361 doc/guix.texi:31978 doc/guix.texi:31979
 #, no-wrap
 msgid "Bootstrapping"
 msgstr "Начальная загрузка"
 
 #. type: menuentry
-#: doc/guix.texi:155
+#: doc/guix.texi:161
 msgid "GNU/Linux built from scratch."
 msgstr "Сборка GNU/Linux с нуля."
 
 #. type: node
-#: doc/guix.texi:155 doc/guix.texi:28502
+#: doc/guix.texi:161 doc/guix.texi:32265
 #, no-wrap
 msgid "Porting"
 msgstr "Портирование"
 
 #. type: menuentry
-#: doc/guix.texi:155
+#: doc/guix.texi:161
 msgid "Targeting another platform or kernel."
 msgstr "Перевод на другую платформу или ядро."
 
 #. type: menuentry
-#: doc/guix.texi:155
+#: doc/guix.texi:161
 msgid "Your help needed!"
 msgstr "Нужна ваша помощь!"
 
 #. type: chapter
-#: doc/guix.texi:160 doc/guix.texi:28550 doc/guix.texi:28551
+#: doc/guix.texi:166 doc/guix.texi:32313 doc/guix.texi:32314
 #, no-wrap
 msgid "Acknowledgments"
 msgstr "Благодарности"
 
 #. type: menuentry
-#: doc/guix.texi:160
+#: doc/guix.texi:166
 msgid "Thanks!"
 msgstr "Спасибо"
 
 #. type: appendix
-#: doc/guix.texi:160 doc/guix.texi:28572 doc/guix.texi:28573
+#: doc/guix.texi:166 doc/guix.texi:32335 doc/guix.texi:32336
 #, no-wrap
 msgid "GNU Free Documentation License"
 msgstr "Лицензия свободной документации GNU"
 
 #. type: menuentry
-#: doc/guix.texi:160
+#: doc/guix.texi:166
 msgid "The license of this manual."
 msgstr "Лицензия этого руководства."
 
 #. type: unnumbered
-#: doc/guix.texi:160 doc/guix.texi:28578 doc/guix.texi:28579
+#: doc/guix.texi:166 doc/guix.texi:32341 doc/guix.texi:32342
 #, no-wrap
 msgid "Concept Index"
 msgstr "Термины и указатели"
 
 #. type: menuentry
-#: doc/guix.texi:160
+#: doc/guix.texi:166
 msgid "Concepts."
 msgstr "Понятия."
 
 #. type: unnumbered
-#: doc/guix.texi:160 doc/guix.texi:28582 doc/guix.texi:28583
+#: doc/guix.texi:166 doc/guix.texi:32345 doc/guix.texi:32346
 #, no-wrap
 msgid "Programming Index"
 msgstr "Программный индекс"
 
 #. type: menuentry
-#: doc/guix.texi:160
+#: doc/guix.texi:166
 msgid "Data types, functions, and variables."
 msgstr "Структуры данных, функции и переменные."
 
 #. type: menuentry
-#: doc/guix.texi:163
+#: doc/guix.texi:169
 msgid "--- The Detailed Node Listing ---"
 msgstr "--- Детальный список записей ---"
 
 #. type: section
-#: doc/guix.texi:168 doc/guix.texi:359 doc/guix.texi:361 doc/guix.texi:362
+#: doc/guix.texi:174 doc/guix.texi:396 doc/guix.texi:398 doc/guix.texi:399
 #, no-wrap
 msgid "Managing Software the Guix Way"
 msgstr "Управление программным обеспечением Guix Way"
 
 #. type: menuentry
-#: doc/guix.texi:168 doc/guix.texi:359
+#: doc/guix.texi:174 doc/guix.texi:396
 msgid "What's special."
 msgstr "В чём особенности?"
 
 #. type: section
-#: doc/guix.texi:168 doc/guix.texi:359 doc/guix.texi:416 doc/guix.texi:417
+#: doc/guix.texi:174 doc/guix.texi:396 doc/guix.texi:453 doc/guix.texi:454
 #, no-wrap
 msgid "GNU Distribution"
 msgstr "Дистрибутив GNU"
 
 #. type: menuentry
-#: doc/guix.texi:168 doc/guix.texi:359
+#: doc/guix.texi:174 doc/guix.texi:396
 msgid "The packages and tools."
 msgstr "Пакеты и утилиты."
 
 #. type: section
-#: doc/guix.texi:177 doc/guix.texi:531 doc/guix.texi:533 doc/guix.texi:534
+#: doc/guix.texi:184 doc/guix.texi:579 doc/guix.texi:581 doc/guix.texi:582
 #, no-wrap
 msgid "Binary Installation"
 msgstr "Бинарная установка"
 
 #. type: menuentry
-#: doc/guix.texi:177 doc/guix.texi:531
+#: doc/guix.texi:184 doc/guix.texi:579
 msgid "Getting Guix running in no time!"
 msgstr "Запустить Guix в кратчайшие сроки!"
 
 #. type: section
-#: doc/guix.texi:177 doc/guix.texi:531 doc/guix.texi:739 doc/guix.texi:740
+#: doc/guix.texi:184 doc/guix.texi:579 doc/guix.texi:799 doc/guix.texi:800
 #, no-wrap
 msgid "Requirements"
 msgstr "Требования"
 
 #. type: menuentry
-#: doc/guix.texi:177 doc/guix.texi:531
+#: doc/guix.texi:184 doc/guix.texi:579
 msgid "Software needed to build and run Guix."
 msgstr "Программное обеспечение, необходимое для запуска Guix."
 
 #. type: section
-#: doc/guix.texi:177 doc/guix.texi:531 doc/guix.texi:814 doc/guix.texi:815
+#: doc/guix.texi:184 doc/guix.texi:579 doc/guix.texi:876 doc/guix.texi:877
 #, no-wrap
 msgid "Running the Test Suite"
 msgstr "Запуск набора тестов"
 
 #. type: menuentry
-#: doc/guix.texi:177 doc/guix.texi:531
+#: doc/guix.texi:184 doc/guix.texi:579
 msgid "Testing Guix."
 msgstr "Тестирование Guix."
 
 #. type: section
-#: doc/guix.texi:177 doc/guix.texi:179 doc/guix.texi:531 doc/guix.texi:879
-#: doc/guix.texi:880
+#: doc/guix.texi:184 doc/guix.texi:186 doc/guix.texi:579 doc/guix.texi:941
+#: doc/guix.texi:942
 #, no-wrap
 msgid "Setting Up the Daemon"
 msgstr "Настройка демона"
 
 #. type: menuentry
-#: doc/guix.texi:177 doc/guix.texi:531
+#: doc/guix.texi:184 doc/guix.texi:579
 msgid "Preparing the build daemon's environment."
 msgstr "Подготовка окружения демона сборки."
 
 #. type: node
-#: doc/guix.texi:177 doc/guix.texi:531 doc/guix.texi:1310
+#: doc/guix.texi:184 doc/guix.texi:579 doc/guix.texi:1406
 #, no-wrap
 msgid "Invoking guix-daemon"
 msgstr "Вызов guix-daemon"
 
 #. type: menuentry
-#: doc/guix.texi:177 doc/guix.texi:531
+#: doc/guix.texi:184 doc/guix.texi:579
 msgid "Running the build daemon."
 msgstr "Запуск демона сборки."
 
 #. type: section
-#: doc/guix.texi:177 doc/guix.texi:531 doc/guix.texi:1576 doc/guix.texi:1577
+#: doc/guix.texi:184 doc/guix.texi:579 doc/guix.texi:1675 doc/guix.texi:1676
 #, no-wrap
 msgid "Application Setup"
 msgstr "Установка приложения"
 
 #. type: menuentry
-#: doc/guix.texi:177 doc/guix.texi:531
+#: doc/guix.texi:184 doc/guix.texi:579
 msgid "Application-specific setup."
 msgstr "Установка в качестве приожения."
 
+#. type: section
+#: doc/guix.texi:184 doc/guix.texi:579 doc/guix.texi:1860 doc/guix.texi:1861
+#, no-wrap
+msgid "Upgrading Guix"
+msgstr "Обновление Guix"
+
+#. type: menuentry
+#: doc/guix.texi:184 doc/guix.texi:579
+msgid "Upgrading Guix and its build daemon."
+msgstr "Обновление Guix и этого службы сборки."
+
 #. type: subsection
-#: doc/guix.texi:183 doc/guix.texi:899 doc/guix.texi:901 doc/guix.texi:902
+#: doc/guix.texi:190 doc/guix.texi:961 doc/guix.texi:963 doc/guix.texi:964
 #, no-wrap
 msgid "Build Environment Setup"
 msgstr "Установка окружения сборки"
 
 #. type: menuentry
-#: doc/guix.texi:183 doc/guix.texi:899
+#: doc/guix.texi:190 doc/guix.texi:961
 msgid "Preparing the isolated build environment."
 msgstr "Подготовка отдельного окружения сборки."
 
 #. type: node
-#: doc/guix.texi:183 doc/guix.texi:899 doc/guix.texi:1018
+#: doc/guix.texi:190 doc/guix.texi:961 doc/guix.texi:1082
 #, no-wrap
 msgid "Daemon Offload Setup"
 msgstr "Установка демона разгрузки"
 
 #. type: menuentry
-#: doc/guix.texi:183 doc/guix.texi:899
+#: doc/guix.texi:190 doc/guix.texi:961
 msgid "Offloading builds to remote machines."
 msgstr "Разгрузка сборок по удалённым машинам."
 
 #. type: subsection
-#: doc/guix.texi:183 doc/guix.texi:899 doc/guix.texi:1224 doc/guix.texi:1225
+#: doc/guix.texi:190 doc/guix.texi:961 doc/guix.texi:1320 doc/guix.texi:1321
 #, no-wrap
 msgid "SELinux Support"
 msgstr "Поддержка SELinux"
 
 #. type: menuentry
-#: doc/guix.texi:183 doc/guix.texi:899
+#: doc/guix.texi:190 doc/guix.texi:961
 msgid "Using an SELinux policy for the daemon."
 msgstr "Использование политики SELinux для демона."
 
 #. type: section
-#: doc/guix.texi:195 doc/guix.texi:1260 doc/guix.texi:1850 doc/guix.texi:1852
-#: doc/guix.texi:1853
+#: doc/guix.texi:202 doc/guix.texi:1356 doc/guix.texi:1931 doc/guix.texi:1933
+#: doc/guix.texi:1934
 #, no-wrap
 msgid "Limitations"
 msgstr "Ограничения"
 
 #. type: menuentry
-#: doc/guix.texi:195 doc/guix.texi:1850
+#: doc/guix.texi:202 doc/guix.texi:1931
 msgid "What you can expect."
 msgstr "Что нужно учитывать."
 
 #. type: section
-#: doc/guix.texi:195 doc/guix.texi:1850 doc/guix.texi:1881 doc/guix.texi:1882
+#: doc/guix.texi:202 doc/guix.texi:1931 doc/guix.texi:1962 doc/guix.texi:1963
 #, no-wrap
 msgid "Hardware Considerations"
 msgstr "По поводу железа"
 
 #. type: menuentry
-#: doc/guix.texi:195 doc/guix.texi:1850
+#: doc/guix.texi:202 doc/guix.texi:1931
 msgid "Supported hardware."
 msgstr "Поддерживаемое аппаратное обеспечение."
 
 #. type: section
-#: doc/guix.texi:195 doc/guix.texi:1850 doc/guix.texi:1916 doc/guix.texi:1917
+#: doc/guix.texi:202 doc/guix.texi:1931 doc/guix.texi:1997 doc/guix.texi:1998
 #, no-wrap
 msgid "USB Stick and DVD Installation"
 msgstr "Установочная флеш и DVD"
 
 #. type: menuentry
-#: doc/guix.texi:195 doc/guix.texi:1850
+#: doc/guix.texi:202 doc/guix.texi:1931
 msgid "Preparing the installation medium."
 msgstr "Подготовка установочного носителя."
 
 #. type: section
-#: doc/guix.texi:195 doc/guix.texi:1850 doc/guix.texi:2021 doc/guix.texi:2022
+#: doc/guix.texi:202 doc/guix.texi:1931 doc/guix.texi:2102 doc/guix.texi:2103
 #, no-wrap
 msgid "Preparing for Installation"
 msgstr "Подготовка к установке"
 
 #. type: menuentry
-#: doc/guix.texi:195 doc/guix.texi:1850
+#: doc/guix.texi:202 doc/guix.texi:1931
 msgid "Networking, partitioning, etc."
 msgstr "Сеть, разметка диска и т.д."
 
 #. type: section
-#: doc/guix.texi:195 doc/guix.texi:1850 doc/guix.texi:2044 doc/guix.texi:2045
+#: doc/guix.texi:202 doc/guix.texi:1931 doc/guix.texi:2125 doc/guix.texi:2126
 #, no-wrap
 msgid "Guided Graphical Installation"
 msgstr "Графическая установка в GUI"
 
 #. type: menuentry
-#: doc/guix.texi:195 doc/guix.texi:1850
+#: doc/guix.texi:202 doc/guix.texi:1931
 msgid "Easy graphical installation."
 msgstr "Простая графическая установка."
 
 #. type: section
-#: doc/guix.texi:195 doc/guix.texi:197 doc/guix.texi:1850 doc/guix.texi:2075
-#: doc/guix.texi:2076
+#: doc/guix.texi:202 doc/guix.texi:204 doc/guix.texi:1931 doc/guix.texi:2156
+#: doc/guix.texi:2157
 #, no-wrap
 msgid "Manual Installation"
 msgstr "Ручная установка"
 
 #. type: menuentry
-#: doc/guix.texi:195 doc/guix.texi:1850
+#: doc/guix.texi:202 doc/guix.texi:1931
 msgid "Manual installation for wizards."
 msgstr "Ручная установка для магов."
 
 #. type: section
-#: doc/guix.texi:195 doc/guix.texi:1850 doc/guix.texi:2437 doc/guix.texi:2438
+#: doc/guix.texi:202 doc/guix.texi:1931 doc/guix.texi:2524 doc/guix.texi:2525
 #, no-wrap
 msgid "After System Installation"
 msgstr "После установки системы"
 
 #. type: menuentry
-#: doc/guix.texi:195 doc/guix.texi:1850
+#: doc/guix.texi:202 doc/guix.texi:1931
 msgid "When installation succeeded."
 msgstr "Когда установка завершилась успешно."
 
 #. type: node
-#: doc/guix.texi:195 doc/guix.texi:1850 doc/guix.texi:2470
+#: doc/guix.texi:202 doc/guix.texi:1931 doc/guix.texi:2558
 #, no-wrap
 msgid "Installing Guix in a VM"
 msgstr "Установка Guix на виртуальную машину"
 
 #. type: menuentry
-#: doc/guix.texi:195 doc/guix.texi:1850
+#: doc/guix.texi:202 doc/guix.texi:1931
 msgid "Guix System playground."
 msgstr "Площадка системы Guix"
 
 #. type: section
-#: doc/guix.texi:195 doc/guix.texi:1850 doc/guix.texi:2521 doc/guix.texi:2522
+#: doc/guix.texi:202 doc/guix.texi:1931 doc/guix.texi:2609 doc/guix.texi:2610
 #, no-wrap
 msgid "Building the Installation Image"
 msgstr "Сборка установочного образа"
 
 #. type: menuentry
-#: doc/guix.texi:195 doc/guix.texi:1850
+#: doc/guix.texi:202 doc/guix.texi:1931
 msgid "How this comes to be."
 msgstr "Как это происходит."
 
 #. type: node
-#: doc/guix.texi:200 doc/guix.texi:2093 doc/guix.texi:2095
+#: doc/guix.texi:207 doc/guix.texi:2174 doc/guix.texi:2176
 #, no-wrap
 msgid "Keyboard Layout and Networking and Partitioning"
 msgstr "Раскладка клавиатуры и работа с сетью и разбиение диска"
 
 #. type: menuentry
-#: doc/guix.texi:200 doc/guix.texi:2093
+#: doc/guix.texi:207 doc/guix.texi:2174
 msgid "Initial setup."
 msgstr "Начальная установка."
 
 #. type: subsection
-#: doc/guix.texi:200 doc/guix.texi:2093 doc/guix.texi:2349 doc/guix.texi:2350
+#: doc/guix.texi:207 doc/guix.texi:2174 doc/guix.texi:2436 doc/guix.texi:2437
 #, no-wrap
 msgid "Proceeding with the Installation"
 msgstr "В продолжении установки"
 
 #. type: menuentry
-#: doc/guix.texi:200 doc/guix.texi:2093
+#: doc/guix.texi:207 doc/guix.texi:2174
 msgid "Installing."
 msgstr "Установка."
 
 #. type: section
-#: doc/guix.texi:214 doc/guix.texi:2587 doc/guix.texi:2589 doc/guix.texi:2590
+#: doc/guix.texi:220 doc/guix.texi:2877 doc/guix.texi:2879 doc/guix.texi:2880
 #, no-wrap
 msgid "Features"
 msgstr "Особенности"
 
 #. type: menuentry
-#: doc/guix.texi:214 doc/guix.texi:2587
+#: doc/guix.texi:220 doc/guix.texi:2877
 msgid "How Guix will make your life brighter."
 msgstr "Как Guix делает жизнь ярче."
 
 #. type: node
-#: doc/guix.texi:214 doc/guix.texi:2587 doc/guix.texi:2675
+#: doc/guix.texi:220 doc/guix.texi:2877 doc/guix.texi:2969
 #, no-wrap
 msgid "Invoking guix package"
 msgstr "Вызов guix package"
 
 #. type: menuentry
-#: doc/guix.texi:214 doc/guix.texi:2587
+#: doc/guix.texi:220 doc/guix.texi:2877
 msgid "Package installation, removal, etc."
 msgstr "Установка пакетов, удаление и т.д."
 
 #. type: section
-#: doc/guix.texi:214 doc/guix.texi:216 doc/guix.texi:2587 doc/guix.texi:3211
-#: doc/guix.texi:3212
+#: doc/guix.texi:220 doc/guix.texi:222 doc/guix.texi:2877 doc/guix.texi:3538
+#: doc/guix.texi:3539
 #, no-wrap
 msgid "Substitutes"
 msgstr "Подстановки"
 
 #. type: menuentry
-#: doc/guix.texi:214 doc/guix.texi:2587
+#: doc/guix.texi:220 doc/guix.texi:2877
 msgid "Downloading pre-built binaries."
 msgstr "Скачивание собранных бинарников."
 
 #. type: section
-#: doc/guix.texi:214 doc/guix.texi:2587 doc/guix.texi:3434 doc/guix.texi:3435
+#: doc/guix.texi:220 doc/guix.texi:2877 doc/guix.texi:3761 doc/guix.texi:3762
 #, no-wrap
 msgid "Packages with Multiple Outputs"
 msgstr "Пакеты со множественным выходом"
 
 #. type: menuentry
-#: doc/guix.texi:214 doc/guix.texi:2587
+#: doc/guix.texi:220 doc/guix.texi:2877
 msgid "Single source package, multiple outputs."
 msgstr "Один исходный пакет, различные выходы."
 
 #. type: node
-#: doc/guix.texi:214 doc/guix.texi:2587 doc/guix.texi:3488
+#: doc/guix.texi:220 doc/guix.texi:2877 doc/guix.texi:3815
 #, no-wrap
 msgid "Invoking guix gc"
 msgstr "Вызов guix gc"
 
 #. type: menuentry
-#: doc/guix.texi:214 doc/guix.texi:2587
+#: doc/guix.texi:220 doc/guix.texi:2877
 msgid "Running the garbage collector."
 msgstr "Запуск сборщика мусора."
 
 #. type: node
-#: doc/guix.texi:214 doc/guix.texi:2587 doc/guix.texi:3698
+#: doc/guix.texi:220 doc/guix.texi:2877 doc/guix.texi:4025
 #, no-wrap
 msgid "Invoking guix pull"
 msgstr "Запуск guix pull"
 
 #. type: menuentry
-#: doc/guix.texi:214 doc/guix.texi:2587
+#: doc/guix.texi:220 doc/guix.texi:2877
 msgid "Fetching the latest Guix and distribution."
 msgstr "Закачка последнего Guix и дистрибуции."
 
-#. type: section
-#: doc/guix.texi:214 doc/guix.texi:2587 doc/guix.texi:3915 doc/guix.texi:3916
-#, no-wrap
-msgid "Channels"
-msgstr "Каналы"
-
-#. type: menuentry
-#: doc/guix.texi:214 doc/guix.texi:2587
-msgid "Customizing the package collection."
-msgstr "Настройка коллекции пакетов."
-
 #. type: node
-#: doc/guix.texi:214 doc/guix.texi:2587 doc/guix.texi:4206
+#: doc/guix.texi:220 doc/guix.texi:2877 doc/guix.texi:4272
 #, no-wrap
 msgid "Invoking guix time-machine"
 msgstr "Вызов guix time-machine"
 
 #. type: menuentry
-#: doc/guix.texi:214 doc/guix.texi:2587
+#: doc/guix.texi:220 doc/guix.texi:2877
 msgid "Running an older revision of Guix."
 msgstr "Запуск более старых ревизий Guix."
 
 #. type: section
-#: doc/guix.texi:214 doc/guix.texi:2587 doc/guix.texi:4261 doc/guix.texi:4262
+#: doc/guix.texi:220 doc/guix.texi:2877 doc/guix.texi:4327 doc/guix.texi:4328
 #, no-wrap
 msgid "Inferiors"
 msgstr "Младшие версии"
 
 #. type: menuentry
-#: doc/guix.texi:214 doc/guix.texi:2587
+#: doc/guix.texi:220 doc/guix.texi:2877
 msgid "Interacting with another revision of Guix."
 msgstr "Взаимодействие с другими ревизиями Guix."
 
 #. type: node
-#: doc/guix.texi:214 doc/guix.texi:2587 doc/guix.texi:4389
+#: doc/guix.texi:220 doc/guix.texi:2877 doc/guix.texi:4455
 #, no-wrap
 msgid "Invoking guix describe"
 msgstr "Вызов guix describe"
 
 #. type: menuentry
-#: doc/guix.texi:214 doc/guix.texi:2587
+#: doc/guix.texi:220 doc/guix.texi:2877
 msgid "Display information about your Guix revision."
 msgstr "Отобразить информацию о ревизии Guix."
 
 #. type: node
-#: doc/guix.texi:214 doc/guix.texi:2587 doc/guix.texi:4470
+#: doc/guix.texi:220 doc/guix.texi:2877 doc/guix.texi:4550
 #, no-wrap
 msgid "Invoking guix archive"
 msgstr "Вызов guix archive"
 
 #. type: menuentry
-#: doc/guix.texi:214 doc/guix.texi:2587
+#: doc/guix.texi:220 doc/guix.texi:2877
 msgid "Exporting and importing store files."
 msgstr "Экспорт и импорт файлов склада."
 
 #. type: subsection
-#: doc/guix.texi:223 doc/guix.texi:3234 doc/guix.texi:3236 doc/guix.texi:3237
+#: doc/guix.texi:229 doc/guix.texi:3561 doc/guix.texi:3563 doc/guix.texi:3564
 #, no-wrap
 msgid "Official Substitute Server"
 msgstr "Официальный сервер подстановок"
 
 #. type: menuentry
-#: doc/guix.texi:223 doc/guix.texi:3234
+#: doc/guix.texi:229 doc/guix.texi:3561
 msgid "One particular source of substitutes."
 msgstr "Отдельный источник подстановок."
 
 #. type: subsection
-#: doc/guix.texi:223 doc/guix.texi:3234 doc/guix.texi:3265 doc/guix.texi:3266
+#: doc/guix.texi:229 doc/guix.texi:3561 doc/guix.texi:3592 doc/guix.texi:3593
 #, no-wrap
 msgid "Substitute Server Authorization"
 msgstr "Авторизация сервера подстановок"
 
 #. type: menuentry
-#: doc/guix.texi:223 doc/guix.texi:3234
+#: doc/guix.texi:229 doc/guix.texi:3561
 msgid "How to enable or disable substitutes."
 msgstr "Как включить или отключить подстановки."
 
 #. type: subsection
-#: doc/guix.texi:223 doc/guix.texi:3234 doc/guix.texi:3329 doc/guix.texi:3330
+#: doc/guix.texi:229 doc/guix.texi:3561 doc/guix.texi:3656 doc/guix.texi:3657
 #, no-wrap
 msgid "Substitute Authentication"
 msgstr "Аутентификация подстановок"
 
 #. type: menuentry
-#: doc/guix.texi:223 doc/guix.texi:3234
+#: doc/guix.texi:229 doc/guix.texi:3561
 msgid "How Guix verifies substitutes."
 msgstr "Как Guix проверяет подстановки."
 
 #. type: subsection
-#: doc/guix.texi:223 doc/guix.texi:3234 doc/guix.texi:3364 doc/guix.texi:3365
+#: doc/guix.texi:229 doc/guix.texi:3561 doc/guix.texi:3691 doc/guix.texi:3692
 #, no-wrap
 msgid "Proxy Settings"
 msgstr "Настройки proxy"
 
 #. type: menuentry
-#: doc/guix.texi:223 doc/guix.texi:3234
+#: doc/guix.texi:229 doc/guix.texi:3561
 msgid "How to get substitutes via proxy."
 msgstr "Как получить подстановки через proxy."
 
 #. type: subsection
-#: doc/guix.texi:223 doc/guix.texi:3234 doc/guix.texi:3376 doc/guix.texi:3377
+#: doc/guix.texi:229 doc/guix.texi:3561 doc/guix.texi:3703 doc/guix.texi:3704
 #, no-wrap
 msgid "Substitution Failure"
 msgstr "Ошибки при подстановке"
 
 #. type: menuentry
-#: doc/guix.texi:223 doc/guix.texi:3234
+#: doc/guix.texi:229 doc/guix.texi:3561
 msgid "What happens when substitution fails."
 msgstr "Что происходит, когда подстановка завершается ошибкой."
 
 #. type: subsection
-#: doc/guix.texi:223 doc/guix.texi:3234 doc/guix.texi:3404 doc/guix.texi:3405
+#: doc/guix.texi:229 doc/guix.texi:3561 doc/guix.texi:3731 doc/guix.texi:3732
 #, no-wrap
 msgid "On Trusting Binaries"
 msgstr "Касательно проверенных бинарников"
 
 #. type: menuentry
-#: doc/guix.texi:223 doc/guix.texi:3234
+#: doc/guix.texi:229 doc/guix.texi:3561
 msgid "How can you trust that binary blob?"
 msgstr "Как можно доверять определённому бинарному блоку?"
 
+#. type: section
+#: doc/guix.texi:242 doc/guix.texi:4770 doc/guix.texi:4772 doc/guix.texi:4773
+#, no-wrap
+msgid "Specifying Additional Channels"
+msgstr "Указание дополнительных каналов"
+
+#. type: menuentry
+#: doc/guix.texi:242 doc/guix.texi:4770
+msgid "Extending the package collection."
+msgstr "Расширение коллекции пакетов."
+
+#. type: section
+#: doc/guix.texi:242 doc/guix.texi:4770 doc/guix.texi:4822 doc/guix.texi:4823
+#, no-wrap
+msgid "Using a Custom Guix Channel"
+msgstr "Использование отдельного канала Guix"
+
+#. type: menuentry
+#: doc/guix.texi:242 doc/guix.texi:4770
+msgid "Using a customized Guix."
+msgstr "Использование кастомизированного Guix"
+
+#. type: section
+#: doc/guix.texi:242 doc/guix.texi:4770 doc/guix.texi:4844 doc/guix.texi:4845
+#, no-wrap
+msgid "Replicating Guix"
+msgstr "Копирование Guix"
+
+#. type: menuentry
+#: doc/guix.texi:242 doc/guix.texi:4770
+msgid "Running the @emph{exact same} Guix."
+msgstr "Запуск @emph{exact same} Guix."
+
+#. type: section
+#: doc/guix.texi:242 doc/guix.texi:4770 doc/guix.texi:4885 doc/guix.texi:4886
+#, no-wrap
+msgid "Channel Authentication"
+msgstr "Аутентификация канала"
+
+#. type: menuentry
+#: doc/guix.texi:242 doc/guix.texi:4770
+msgid "How Guix verifies what it fetches."
+msgstr "Как Guix проверяет то, что получает."
+
+#. type: section
+#: doc/guix.texi:242 doc/guix.texi:4770 doc/guix.texi:4925 doc/guix.texi:4926
+#, no-wrap
+msgid "Creating a Channel"
+msgstr "Создание канала"
+
+#. type: menuentry
+#: doc/guix.texi:242 doc/guix.texi:4770
+msgid "How to write your custom channel."
+msgstr "Как написать собственный канал"
+
+#. type: section
+#: doc/guix.texi:242 doc/guix.texi:4770 doc/guix.texi:4992 doc/guix.texi:4993
+#, no-wrap
+msgid "Package Modules in a Sub-directory"
+msgstr "Пакетные модули в поддиректории"
+
+#. type: menuentry
+#: doc/guix.texi:242 doc/guix.texi:4770
+msgid "Specifying the channel's package modules location."
+msgstr "Задание расположения пакетных модулей канала."
+
+#. type: section
+#: doc/guix.texi:242 doc/guix.texi:4770 doc/guix.texi:5006 doc/guix.texi:5007
+#, no-wrap
+msgid "Declaring Channel Dependencies"
+msgstr "Объявление зависимостей канала"
+
+#. type: menuentry
+#: doc/guix.texi:242 doc/guix.texi:4770
+msgid "How to depend on other channels."
+msgstr "Как зависеть от других каналов."
+
+#. type: section
+#: doc/guix.texi:242 doc/guix.texi:4770 doc/guix.texi:5048 doc/guix.texi:5049
+#, no-wrap
+msgid "Specifying Channel Authorizations"
+msgstr "Указание авторизаций канала"
+
+#. type: menuentry
+#: doc/guix.texi:242 doc/guix.texi:4770
+msgid "Defining channel authors authorizations."
+msgstr "Авторизация авторов канала."
+
+#. type: section
+#: doc/guix.texi:242 doc/guix.texi:4770 doc/guix.texi:5149 doc/guix.texi:5150
+#, no-wrap
+msgid "Primary URL"
+msgstr "Основной URL"
+
+#. type: menuentry
+#: doc/guix.texi:242 doc/guix.texi:4770
+msgid "Distinguishing mirror to original."
+msgstr "Отличие зеркала от оригинала"
+
+#. type: section
+#: doc/guix.texi:242 doc/guix.texi:4770 doc/guix.texi:5172 doc/guix.texi:5173
+#, no-wrap
+msgid "Writing Channel News"
+msgstr "Написание новостей канала"
+
+#. type: menuentry
+#: doc/guix.texi:242 doc/guix.texi:4770
+msgid "Communicating information to channel's users."
+msgstr "Передача информации пользователям канала."
+
 #. type: node
-#: doc/guix.texi:228 doc/guix.texi:4665 doc/guix.texi:4667
+#: doc/guix.texi:249 doc/guix.texi:5262 doc/guix.texi:5264
 #, no-wrap
 msgid "Invoking guix environment"
 msgstr "Запуск guix environment"
 
 #. type: menuentry
-#: doc/guix.texi:228 doc/guix.texi:4665
+#: doc/guix.texi:249 doc/guix.texi:5262
 msgid "Setting up development environments."
 msgstr "Настройка окружения сборки."
 
 #. type: node
-#: doc/guix.texi:228 doc/guix.texi:4665 doc/guix.texi:5004
+#: doc/guix.texi:249 doc/guix.texi:5262 doc/guix.texi:5618
 #, no-wrap
 msgid "Invoking guix pack"
 msgstr "Запуск guix pack"
 
 #. type: menuentry
-#: doc/guix.texi:228 doc/guix.texi:4665
+#: doc/guix.texi:249 doc/guix.texi:5262
 msgid "Creating software bundles."
 msgstr "Создание наборов программ."
 
 #. type: section
-#: doc/guix.texi:239 doc/guix.texi:5367 doc/guix.texi:5369 doc/guix.texi:5370
+#: doc/guix.texi:249 doc/guix.texi:5262 doc/guix.texi:5975 doc/guix.texi:5976
+#, no-wrap
+msgid "The GCC toolchain"
+msgstr "Тулчейн GCC"
+
+#. type: menuentry
+#: doc/guix.texi:249 doc/guix.texi:5262
+msgid "Working with languages supported by GCC."
+msgstr "Работа с языками, поддерживаемыми gcc"
+
+#. type: node
+#: doc/guix.texi:249 doc/guix.texi:5262 doc/guix.texi:6001
+#, no-wrap
+msgid "Invoking guix git authenticate"
+msgstr "Запуск guix git authenticate"
+
+#. type: menuentry
+#: doc/guix.texi:249 doc/guix.texi:5262
+msgid "Authenticating Git repositories."
+msgstr "Аутентификация Git репозиториев."
+
+#. type: section
+#: doc/guix.texi:262 doc/guix.texi:6102 doc/guix.texi:6104 doc/guix.texi:6105
 #, no-wrap
 msgid "Package Modules"
 msgstr "Пакетные модули"
 
 #. type: menuentry
-#: doc/guix.texi:239 doc/guix.texi:5367
+#: doc/guix.texi:262 doc/guix.texi:6102
 msgid "Packages from the programmer's viewpoint."
 msgstr "Пакеты с точки зрения программиста."
 
 #. type: section
-#: doc/guix.texi:239 doc/guix.texi:241 doc/guix.texi:5367 doc/guix.texi:5431
-#: doc/guix.texi:5432
+#: doc/guix.texi:262 doc/guix.texi:264 doc/guix.texi:6102 doc/guix.texi:6166
+#: doc/guix.texi:6167
 #, no-wrap
 msgid "Defining Packages"
 msgstr "Описание пакетов"
 
 #. type: menuentry
-#: doc/guix.texi:239 doc/guix.texi:5367
+#: doc/guix.texi:262 doc/guix.texi:6102
 msgid "Defining new packages."
 msgstr "Описание новых пакетов."
 
 #. type: section
-#: doc/guix.texi:239 doc/guix.texi:5367 doc/guix.texi:5931 doc/guix.texi:5932
+#: doc/guix.texi:262 doc/guix.texi:6102 doc/guix.texi:6793 doc/guix.texi:6794
 #, no-wrap
 msgid "Build Systems"
 msgstr "Системы сборки"
 
 #. type: menuentry
-#: doc/guix.texi:239 doc/guix.texi:5367
+#: doc/guix.texi:262 doc/guix.texi:6102
 msgid "Specifying how packages are built."
 msgstr "Задание параметров сборки пакетов."
 
+#. type: subsection
+#: doc/guix.texi:262 doc/guix.texi:6102 doc/guix.texi:7718 doc/guix.texi:7719
+#: doc/guix.texi:8084
+#, fuzzy, no-wrap
+msgid "Build Phases"
+msgstr "Build Phases"
+
+#. type: menuentry
+#: doc/guix.texi:262 doc/guix.texi:6102
+msgid "Phases of the build process of a package."
+msgstr "Фазы процесса сборки пакета"
+
 #. type: section
-#: doc/guix.texi:239 doc/guix.texi:5367 doc/guix.texi:6817 doc/guix.texi:6818
+#: doc/guix.texi:262 doc/guix.texi:6102 doc/guix.texi:7874 doc/guix.texi:7875
+#, fuzzy, no-wrap
+#| msgid "Utilities"
+msgid "Build Utilities"
+msgstr "Утилиты"
+
+#. type: menuentry
+#: doc/guix.texi:262 doc/guix.texi:6102
+#, fuzzy
+#| msgid "Importing package definitions."
+msgid "Helpers for your package definitions and more."
+msgstr "Импорт описаниий пакетов."
+
+#. type: section
+#: doc/guix.texi:262 doc/guix.texi:6102 doc/guix.texi:8161 doc/guix.texi:8162
 #, no-wrap
 msgid "The Store"
 msgstr "Хранилище"
 
 #. type: menuentry
-#: doc/guix.texi:239 doc/guix.texi:5367
+#: doc/guix.texi:262 doc/guix.texi:6102
 msgid "Manipulating the package store."
 msgstr "Работа с хранилищем пакетов."
 
 #. type: section
-#: doc/guix.texi:239 doc/guix.texi:5367 doc/guix.texi:6970 doc/guix.texi:6971
+#: doc/guix.texi:262 doc/guix.texi:6102 doc/guix.texi:8314 doc/guix.texi:8315
 #, no-wrap
 msgid "Derivations"
 msgstr "Деривации"
 
 #. type: menuentry
-#: doc/guix.texi:239 doc/guix.texi:5367
+#: doc/guix.texi:262 doc/guix.texi:6102
 msgid "Low-level interface to package derivations."
 msgstr "Низкоуровневый интерфейс дериваций пакетов."
 
 #. type: section
-#: doc/guix.texi:239 doc/guix.texi:5367 doc/guix.texi:7164 doc/guix.texi:7165
+#: doc/guix.texi:262 doc/guix.texi:6102 doc/guix.texi:8508 doc/guix.texi:8509
 #, no-wrap
 msgid "The Store Monad"
 msgstr "Устройство склада"
 
 #. type: menuentry
-#: doc/guix.texi:239 doc/guix.texi:5367
+#: doc/guix.texi:262 doc/guix.texi:6102
 msgid "Purely functional interface to the store."
 msgstr "Чисто функциональный интерфейс доступа к складу."
 
 #. type: section
-#: doc/guix.texi:239 doc/guix.texi:5367 doc/guix.texi:7479 doc/guix.texi:7480
+#: doc/guix.texi:262 doc/guix.texi:6102 doc/guix.texi:8827 doc/guix.texi:8828
 #, no-wrap
 msgid "G-Expressions"
 msgstr "G-Expressions"
 
 #. type: menuentry
-#: doc/guix.texi:239 doc/guix.texi:5367
+#: doc/guix.texi:262 doc/guix.texi:6102
 msgid "Manipulating build expressions."
 msgstr "Управление механизмом сборки."
 
 #. type: node
-#: doc/guix.texi:239 doc/guix.texi:5367 doc/guix.texi:8077
+#: doc/guix.texi:262 doc/guix.texi:6102 doc/guix.texi:9456
 #, no-wrap
 msgid "Invoking guix repl"
 msgstr "Запуск guix repl"
 
 #. type: menuentry
-#: doc/guix.texi:239 doc/guix.texi:5367
-msgid "Fiddling with Guix interactively."
-msgstr "Интерактивное общение с Guix"
+#: doc/guix.texi:262 doc/guix.texi:6102
+msgid "Programming Guix in Guile"
+msgstr "Программирование Guix в Guile"
 
 #. type: node
-#: doc/guix.texi:244 doc/guix.texi:5699 doc/guix.texi:5702
+#: doc/guix.texi:267 doc/guix.texi:6440 doc/guix.texi:6443
 #, no-wrap
 msgid "package Reference"
-msgstr "Интерфейс package"
+msgstr "ссылка на пакет"
 
 #. type: menuentry
-#: doc/guix.texi:244 doc/guix.texi:5699
+#: doc/guix.texi:267 doc/guix.texi:6440
 msgid "The package data type."
 msgstr "Тип данных package"
 
 #. type: node
-#: doc/guix.texi:244 doc/guix.texi:5699 doc/guix.texi:5843
+#: doc/guix.texi:267 doc/guix.texi:6440 doc/guix.texi:6614
 #, no-wrap
 msgid "origin Reference"
 msgstr "Интерфейс origin"
 
 #. type: menuentry
-#: doc/guix.texi:244 doc/guix.texi:5699
+#: doc/guix.texi:267 doc/guix.texi:6440
 msgid "The origin data type."
 msgstr "Тип данных origin"
 
 #. type: node
-#: doc/guix.texi:262 doc/guix.texi:8166 doc/guix.texi:8168
+#: doc/guix.texi:285 doc/guix.texi:9580 doc/guix.texi:9582
 #, no-wrap
 msgid "Invoking guix build"
 msgstr "Запуск guix build"
 
 #. type: menuentry
-#: doc/guix.texi:262 doc/guix.texi:8166
+#: doc/guix.texi:285 doc/guix.texi:9580
 msgid "Building packages from the command line."
 msgstr "Сборка пакетов в командной строке."
 
 #. type: node
-#: doc/guix.texi:262 doc/guix.texi:8166 doc/guix.texi:8829
+#: doc/guix.texi:285 doc/guix.texi:9580 doc/guix.texi:10356
 #, no-wrap
 msgid "Invoking guix edit"
 msgstr "Запуск guix edit"
 
 #. type: menuentry
-#: doc/guix.texi:262 doc/guix.texi:8166
+#: doc/guix.texi:285 doc/guix.texi:9580
 msgid "Editing package definitions."
 msgstr "Редактирование описания пакета."
 
 #. type: node
-#: doc/guix.texi:262 doc/guix.texi:8166 doc/guix.texi:8859
+#: doc/guix.texi:285 doc/guix.texi:9580 doc/guix.texi:10386
 #, no-wrap
 msgid "Invoking guix download"
 msgstr "Запуск guix download"
 
 #. type: menuentry
-#: doc/guix.texi:262 doc/guix.texi:8166
+#: doc/guix.texi:285 doc/guix.texi:9580
 msgid "Downloading a file and printing its hash."
 msgstr "Загрузка файла и вывод его хэша."
 
 #. type: node
-#: doc/guix.texi:262 doc/guix.texi:8166 doc/guix.texi:8912
+#: doc/guix.texi:285 doc/guix.texi:9580 doc/guix.texi:10444
 #, no-wrap
 msgid "Invoking guix hash"
 msgstr "Запуск guix hash"
 
 #. type: menuentry
-#: doc/guix.texi:262 doc/guix.texi:8166
+#: doc/guix.texi:285 doc/guix.texi:9580
 msgid "Computing the cryptographic hash of a file."
 msgstr "Вычисление криптографического хеша файла."
 
 #. type: node
-#: doc/guix.texi:262 doc/guix.texi:8166 doc/guix.texi:8974
+#: doc/guix.texi:285 doc/guix.texi:9580 doc/guix.texi:10516
 #, no-wrap
 msgid "Invoking guix import"
 msgstr "Запуск guix import"
 
 #. type: menuentry
-#: doc/guix.texi:262 doc/guix.texi:8166
+#: doc/guix.texi:285 doc/guix.texi:9580
 msgid "Importing package definitions."
 msgstr "Импорт описаниий пакетов."
 
 #. type: node
-#: doc/guix.texi:262 doc/guix.texi:8166 doc/guix.texi:9405
+#: doc/guix.texi:285 doc/guix.texi:9580 doc/guix.texi:10945
 #, no-wrap
 msgid "Invoking guix refresh"
 msgstr "Запуск guix refresh"
 
 #. type: menuentry
-#: doc/guix.texi:262 doc/guix.texi:8166
+#: doc/guix.texi:285 doc/guix.texi:9580
 msgid "Updating package definitions."
 msgstr "Обновление описаний пакетов."
 
 #. type: node
-#: doc/guix.texi:262 doc/guix.texi:8166 doc/guix.texi:9726
+#: doc/guix.texi:285 doc/guix.texi:9580 doc/guix.texi:11268
 #, no-wrap
 msgid "Invoking guix lint"
 msgstr "Запуск guix lint"
 
 #. type: menuentry
-#: doc/guix.texi:262 doc/guix.texi:8166
+#: doc/guix.texi:285 doc/guix.texi:9580
 msgid "Finding errors in package definitions."
 msgstr "Поиск ошибок в описаниях пакетов."
 
 #. type: node
-#: doc/guix.texi:262 doc/guix.texi:8166 doc/guix.texi:9875
+#: doc/guix.texi:285 doc/guix.texi:9580 doc/guix.texi:11428
 #, no-wrap
 msgid "Invoking guix size"
 msgstr "Запуск guix size"
 
 #. type: menuentry
-#: doc/guix.texi:262 doc/guix.texi:8166
+#: doc/guix.texi:285 doc/guix.texi:9580
 msgid "Profiling disk usage."
 msgstr "Обзор использования диска."
 
 #. type: node
-#: doc/guix.texi:262 doc/guix.texi:8166 doc/guix.texi:10006
+#: doc/guix.texi:285 doc/guix.texi:9580 doc/guix.texi:11572
 #, no-wrap
 msgid "Invoking guix graph"
 msgstr "Запуск guix graph"
 
 #. type: menuentry
-#: doc/guix.texi:262 doc/guix.texi:8166
+#: doc/guix.texi:285 doc/guix.texi:9580
 msgid "Visualizing the graph of packages."
 msgstr "Визуализация графа пакета."
 
 #. type: node
-#: doc/guix.texi:262 doc/guix.texi:8166 doc/guix.texi:10228
+#: doc/guix.texi:285 doc/guix.texi:9580 doc/guix.texi:11839
 #, no-wrap
 msgid "Invoking guix publish"
 msgstr "Запуск guix publish"
 
 #. type: menuentry
-#: doc/guix.texi:262 doc/guix.texi:8166
+#: doc/guix.texi:285 doc/guix.texi:9580
 msgid "Sharing substitutes."
 msgstr "Совместное использование подстановок."
 
 #. type: node
-#: doc/guix.texi:262 doc/guix.texi:8166 doc/guix.texi:10458
+#: doc/guix.texi:285 doc/guix.texi:9580 doc/guix.texi:12069
 #, no-wrap
 msgid "Invoking guix challenge"
 msgstr "Запуск guix challenge"
 
 #. type: menuentry
-#: doc/guix.texi:262 doc/guix.texi:8166
+#: doc/guix.texi:285 doc/guix.texi:9580
 msgid "Challenging substitute servers."
 msgstr "Соперничающие серверы подстановок."
 
 #. type: node
-#: doc/guix.texi:262 doc/guix.texi:8166 doc/guix.texi:10641
+#: doc/guix.texi:285 doc/guix.texi:9580 doc/guix.texi:12252
 #, no-wrap
 msgid "Invoking guix copy"
 msgstr "Запуск guix copy"
 
 #. type: menuentry
-#: doc/guix.texi:262 doc/guix.texi:8166
+#: doc/guix.texi:285 doc/guix.texi:9580
 msgid "Copying to and from a remote store."
 msgstr "Копирование из и в удалённый склад."
 
 #. type: node
-#: doc/guix.texi:262 doc/guix.texi:8166 doc/guix.texi:10704
+#: doc/guix.texi:285 doc/guix.texi:9580 doc/guix.texi:12315
 #, no-wrap
 msgid "Invoking guix container"
 msgstr "Запуск guix container"
 
 #. type: menuentry
-#: doc/guix.texi:262 doc/guix.texi:8166
+#: doc/guix.texi:285 doc/guix.texi:9580
 msgid "Process isolation."
 msgstr "Изоляция процесса."
 
 #. type: node
-#: doc/guix.texi:262 doc/guix.texi:8166 doc/guix.texi:10758
+#: doc/guix.texi:285 doc/guix.texi:9580 doc/guix.texi:12369
 #, no-wrap
 msgid "Invoking guix weather"
 msgstr "Запуск guix weather"
 
 #. type: menuentry
-#: doc/guix.texi:262 doc/guix.texi:8166
+#: doc/guix.texi:285 doc/guix.texi:9580
 msgid "Assessing substitute availability."
 msgstr "Оценка доступности подстановок."
 
 #. type: node
-#: doc/guix.texi:262 doc/guix.texi:8166 doc/guix.texi:10887
+#: doc/guix.texi:285 doc/guix.texi:9580 doc/guix.texi:12498
 #, no-wrap
 msgid "Invoking guix processes"
 msgstr "Запуск guix processes"
 
 #. type: menuentry
-#: doc/guix.texi:262 doc/guix.texi:8166
+#: doc/guix.texi:285 doc/guix.texi:9580
 msgid "Listing client processes."
 msgstr "Чтение клиентских процессов."
 
 #. type: section
-#: doc/guix.texi:264 doc/guix.texi:8169
+#: doc/guix.texi:287 doc/guix.texi:9583
 #, no-wrap
 msgid "Invoking @command{guix build}"
 msgstr "Запуск @command{guix build}"
 
 #. type: subsection
-#: doc/guix.texi:269 doc/guix.texi:8220 doc/guix.texi:8222 doc/guix.texi:8223
+#: doc/guix.texi:292 doc/guix.texi:9634 doc/guix.texi:9636 doc/guix.texi:9637
 #, no-wrap
 msgid "Common Build Options"
 msgstr "Стандартные параметры сборки"
 
 #. type: menuentry
-#: doc/guix.texi:269 doc/guix.texi:8220
+#: doc/guix.texi:292 doc/guix.texi:9634
 msgid "Build options for most commands."
 msgstr "Параметры сборки для большинства команд."
 
 #. type: subsection
-#: doc/guix.texi:269 doc/guix.texi:8220 doc/guix.texi:8378 doc/guix.texi:8379
+#: doc/guix.texi:292 doc/guix.texi:9634 doc/guix.texi:9790 doc/guix.texi:9791
 #, no-wrap
 msgid "Package Transformation Options"
 msgstr "Параметры преобразования пакета"
 
 #. type: menuentry
-#: doc/guix.texi:269 doc/guix.texi:8220
+#: doc/guix.texi:292 doc/guix.texi:9634
 msgid "Creating variants of packages."
 msgstr "Создание вариантов пакетов."
 
 #. type: subsection
-#: doc/guix.texi:269 doc/guix.texi:8220 doc/guix.texi:8527 doc/guix.texi:8528
+#: doc/guix.texi:292 doc/guix.texi:9634 doc/guix.texi:10045
+#: doc/guix.texi:10046
 #, no-wrap
 msgid "Additional Build Options"
 msgstr "Дополнительные параметры сборки"
 
 #. type: menuentry
-#: doc/guix.texi:269 doc/guix.texi:8220
+#: doc/guix.texi:292 doc/guix.texi:9634
 msgid "Options specific to 'guix build'."
 msgstr "Особые параметры для 'guix build'."
 
 #. type: subsection
-#: doc/guix.texi:269 doc/guix.texi:8220 doc/guix.texi:8749 doc/guix.texi:8750
+#: doc/guix.texi:292 doc/guix.texi:9634 doc/guix.texi:10276
+#: doc/guix.texi:10277
 #, no-wrap
 msgid "Debugging Build Failures"
 msgstr "Отладка ошибок сборки"
 
 #. type: menuentry
-#: doc/guix.texi:269 doc/guix.texi:8220
+#: doc/guix.texi:292 doc/guix.texi:9634
 msgid "Real life packaging experience."
 msgstr "Жизненный опыт в сборке пакетов."
 
 #. type: section
-#: doc/guix.texi:289 doc/guix.texi:10986 doc/guix.texi:10988
-#: doc/guix.texi:10989
+#: doc/guix.texi:312 doc/guix.texi:12597 doc/guix.texi:12599
+#: doc/guix.texi:12600
 #, no-wrap
 msgid "Using the Configuration System"
 msgstr "Использование системы конфигурации"
 
 #. type: menuentry
-#: doc/guix.texi:289 doc/guix.texi:10986
+#: doc/guix.texi:312 doc/guix.texi:12597
 msgid "Customizing your GNU system."
 msgstr "Настройка вашей системы GNU."
 
 #. type: node
-#: doc/guix.texi:289 doc/guix.texi:10986 doc/guix.texi:11224
+#: doc/guix.texi:312 doc/guix.texi:12597 doc/guix.texi:12839
 #, no-wrap
 msgid "operating-system Reference"
 msgstr "Интерфейс operating-system"
 
 #. type: menuentry
-#: doc/guix.texi:289 doc/guix.texi:10986
+#: doc/guix.texi:312 doc/guix.texi:12597
 msgid "Detail of operating-system declarations."
 msgstr "Подробные сведения об объявлениях opertaing-system"
 
 #. type: section
-#: doc/guix.texi:289 doc/guix.texi:10986 doc/guix.texi:11432
-#: doc/guix.texi:11433
+#: doc/guix.texi:312 doc/guix.texi:12597 doc/guix.texi:13066
+#: doc/guix.texi:13067
 #, no-wrap
 msgid "File Systems"
 msgstr "Файловые системы"
 
 #. type: menuentry
-#: doc/guix.texi:289 doc/guix.texi:10986
+#: doc/guix.texi:312 doc/guix.texi:12597
 msgid "Configuring file system mounts."
 msgstr "Настройка точек подключения файловой системы"
 
 #. type: section
-#: doc/guix.texi:289 doc/guix.texi:10986 doc/guix.texi:11605
-#: doc/guix.texi:11606
+#: doc/guix.texi:312 doc/guix.texi:12597 doc/guix.texi:13389
+#: doc/guix.texi:13390
 #, no-wrap
 msgid "Mapped Devices"
 msgstr "Размеченные устройства"
 
 #. type: menuentry
-#: doc/guix.texi:289 doc/guix.texi:10986
+#: doc/guix.texi:312 doc/guix.texi:12597
 msgid "Block device extra processing."
 msgstr "Дополнительные проверки блочных устройств."
 
 #. type: section
-#: doc/guix.texi:289 doc/guix.texi:10986 doc/guix.texi:11726
-#: doc/guix.texi:11727
+#: doc/guix.texi:312 doc/guix.texi:12597 doc/guix.texi:13510
+#: doc/guix.texi:13511
 #, no-wrap
 msgid "User Accounts"
 msgstr "Учётные записи пользователей"
 
 #. type: menuentry
-#: doc/guix.texi:289 doc/guix.texi:10986
+#: doc/guix.texi:312 doc/guix.texi:12597
 msgid "Specifying user accounts."
 msgstr "Задание пользовательских учётных записей."
 
 #. type: section
-#: doc/guix.texi:289 doc/guix.texi:2102 doc/guix.texi:10986
-#: doc/guix.texi:11879 doc/guix.texi:11880
+#: doc/guix.texi:312 doc/guix.texi:2183 doc/guix.texi:12597
+#: doc/guix.texi:13686 doc/guix.texi:13687
 #, no-wrap
 msgid "Keyboard Layout"
 msgstr "Раскладка клавиатуры"
 
 #. type: menuentry
-#: doc/guix.texi:289 doc/guix.texi:10986
+#: doc/guix.texi:312 doc/guix.texi:12597
 msgid "How the system interprets key strokes."
 msgstr "Интерпретация нажатия клавиш системой."
 
 #. type: section
-#: doc/guix.texi:289 doc/guix.texi:1584 doc/guix.texi:10986
-#: doc/guix.texi:12014 doc/guix.texi:12015
+#: doc/guix.texi:312 doc/guix.texi:1683 doc/guix.texi:12597
+#: doc/guix.texi:13821 doc/guix.texi:13822
 #, no-wrap
 msgid "Locales"
 msgstr "Региональные настройки"
 
 #. type: menuentry
-#: doc/guix.texi:289 doc/guix.texi:10986
+#: doc/guix.texi:312 doc/guix.texi:12597
 msgid "Language and cultural convention settings."
 msgstr "Настройка языка и культурных особенностей."
 
 #. type: section
-#: doc/guix.texi:289 doc/guix.texi:291 doc/guix.texi:10986 doc/guix.texi:12154
-#: doc/guix.texi:12155
+#: doc/guix.texi:312 doc/guix.texi:314 doc/guix.texi:12597 doc/guix.texi:13961
+#: doc/guix.texi:13962
 #, no-wrap
 msgid "Services"
 msgstr "Службы"
 
 #. type: menuentry
-#: doc/guix.texi:289 doc/guix.texi:10986
+#: doc/guix.texi:312 doc/guix.texi:12597
 msgid "Specifying system services."
 msgstr "Настройка системных служб."
 
 #. type: section
-#: doc/guix.texi:289 doc/guix.texi:10986 doc/guix.texi:25859
-#: doc/guix.texi:25860
+#: doc/guix.texi:312 doc/guix.texi:12597 doc/guix.texi:29396
+#: doc/guix.texi:29397
 #, no-wrap
 msgid "Setuid Programs"
 msgstr "Программы setuid"
 
 #. type: menuentry
-#: doc/guix.texi:289 doc/guix.texi:10986
+#: doc/guix.texi:312 doc/guix.texi:12597
 msgid "Programs running with root privileges."
 msgstr "Программы, выполняемые с правами root."
 
 #. type: section
-#: doc/guix.texi:289 doc/guix.texi:1733 doc/guix.texi:10986
-#: doc/guix.texi:25905 doc/guix.texi:25906
+#: doc/guix.texi:312 doc/guix.texi:1832 doc/guix.texi:12597
+#: doc/guix.texi:29442 doc/guix.texi:29443
 #, no-wrap
 msgid "X.509 Certificates"
 msgstr "Сертификаты X.509"
 
 #. type: menuentry
-#: doc/guix.texi:289 doc/guix.texi:10986
+#: doc/guix.texi:312 doc/guix.texi:12597
 msgid "Authenticating HTTPS servers."
 msgstr "Аутентификация серверов HTTPS."
 
 #. type: section
-#: doc/guix.texi:289 doc/guix.texi:1627 doc/guix.texi:10986
-#: doc/guix.texi:25968 doc/guix.texi:25969
+#: doc/guix.texi:312 doc/guix.texi:1726 doc/guix.texi:12597
+#: doc/guix.texi:29505 doc/guix.texi:29506
 #, no-wrap
 msgid "Name Service Switch"
 msgstr "Служба выбора имён"
 
 #. type: menuentry
-#: doc/guix.texi:289 doc/guix.texi:10986
+#: doc/guix.texi:312 doc/guix.texi:12597
 msgid "Configuring libc's name service switch."
 msgstr "Настройка службы имён libc."
 
 #. type: section
-#: doc/guix.texi:289 doc/guix.texi:10986 doc/guix.texi:26106
-#: doc/guix.texi:26107
+#: doc/guix.texi:312 doc/guix.texi:12597 doc/guix.texi:29643
+#: doc/guix.texi:29644
 #, no-wrap
 msgid "Initial RAM Disk"
 msgstr "Начальный RAM-диск"
 
 #. type: menuentry
-#: doc/guix.texi:289 doc/guix.texi:10986
+#: doc/guix.texi:312 doc/guix.texi:12597
 msgid "Linux-Libre bootstrapping."
 msgstr "Начальная загрузка Linux-Libre."
 
 #. type: section
-#: doc/guix.texi:289 doc/guix.texi:10986 doc/guix.texi:26280
-#: doc/guix.texi:26281
+#: doc/guix.texi:312 doc/guix.texi:12597 doc/guix.texi:29818
+#: doc/guix.texi:29819
 #, no-wrap
 msgid "Bootloader Configuration"
 msgstr "Настройка загрузчика"
 
 #. type: menuentry
-#: doc/guix.texi:289 doc/guix.texi:10986
+#: doc/guix.texi:312 doc/guix.texi:12597
 msgid "Configuring the boot loader."
 msgstr "Конфигурирование загрузчика диска."
 
 #. type: node
-#: doc/guix.texi:289 doc/guix.texi:10986 doc/guix.texi:26501
+#: doc/guix.texi:312 doc/guix.texi:12597 doc/guix.texi:30112
 #, no-wrap
 msgid "Invoking guix system"
 msgstr "Вызов guix system"
 
 #. type: menuentry
-#: doc/guix.texi:289 doc/guix.texi:10986
+#: doc/guix.texi:312 doc/guix.texi:12597
 msgid "Instantiating a system configuration."
 msgstr "Проверка конфигурации операционной системы."
 
 #. type: node
-#: doc/guix.texi:289 doc/guix.texi:10986 doc/guix.texi:27022
+#: doc/guix.texi:312 doc/guix.texi:12597 doc/guix.texi:30670
 #, no-wrap
 msgid "Invoking guix deploy"
 msgstr "Запуск guix deploy"
 
 #. type: menuentry
-#: doc/guix.texi:289 doc/guix.texi:10986
+#: doc/guix.texi:312 doc/guix.texi:12597
 msgid "Deploying a system configuration to a remote host."
 msgstr "Развёртывание конфигурации системы на удалённой машине."
 
 #. type: node
-#: doc/guix.texi:289 doc/guix.texi:10986 doc/guix.texi:27217
+#: doc/guix.texi:312 doc/guix.texi:12597 doc/guix.texi:30876
 #, no-wrap
 msgid "Running Guix in a VM"
 msgstr "Запуск Guix на виртуальной машине"
 
 #. type: menuentry
-#: doc/guix.texi:289 doc/guix.texi:10986
+#: doc/guix.texi:312 doc/guix.texi:12597
 msgid "How to run Guix System in a virtual machine."
 msgstr "Как запускать систему Guix на виртуальной машине."
 
 #. type: section
-#: doc/guix.texi:289 doc/guix.texi:322 doc/guix.texi:10986 doc/guix.texi:27345
-#: doc/guix.texi:27346
+#: doc/guix.texi:312 doc/guix.texi:349 doc/guix.texi:12597 doc/guix.texi:31006
+#: doc/guix.texi:31007
 #, no-wrap
 msgid "Defining Services"
 msgstr "Создание служб"
 
 #. type: menuentry
-#: doc/guix.texi:289 doc/guix.texi:10986
+#: doc/guix.texi:312 doc/guix.texi:12597
 msgid "Adding new service definitions."
 msgstr "Добавление новых определений служб."
 
 #. type: subsection
-#: doc/guix.texi:320 doc/guix.texi:12234 doc/guix.texi:12236
-#: doc/guix.texi:12237
+#: doc/guix.texi:347 doc/guix.texi:14043 doc/guix.texi:14045
+#: doc/guix.texi:14046
 #, no-wrap
 msgid "Base Services"
 msgstr "Базовые службы"
 
 #. type: menuentry
-#: doc/guix.texi:320 doc/guix.texi:12234
+#: doc/guix.texi:347 doc/guix.texi:14043
 msgid "Essential system services."
 msgstr "Ключевые службы системы."
 
 #. type: subsection
-#: doc/guix.texi:320 doc/guix.texi:12234 doc/guix.texi:13069
-#: doc/guix.texi:13070
+#: doc/guix.texi:347 doc/guix.texi:14043 doc/guix.texi:14878
+#: doc/guix.texi:14879
 #, no-wrap
 msgid "Scheduled Job Execution"
 msgstr "Запланированное исполнения задач"
 
 #. type: menuentry
-#: doc/guix.texi:320 doc/guix.texi:12234
+#: doc/guix.texi:347 doc/guix.texi:14043
 msgid "The mcron service."
 msgstr "Служба mcron."
 
 #. type: subsection
-#: doc/guix.texi:320 doc/guix.texi:12234 doc/guix.texi:13204
-#: doc/guix.texi:13205
+#: doc/guix.texi:347 doc/guix.texi:14043 doc/guix.texi:15015
+#: doc/guix.texi:15016
 #, no-wrap
 msgid "Log Rotation"
 msgstr "Ротация логов"
 
 #. type: menuentry
-#: doc/guix.texi:320 doc/guix.texi:12234
+#: doc/guix.texi:347 doc/guix.texi:14043
 msgid "The rottlog service."
 msgstr "Сервис rottlog."
 
 #. type: subsection
-#: doc/guix.texi:320 doc/guix.texi:12234 doc/guix.texi:13317
-#: doc/guix.texi:13318
+#: doc/guix.texi:347 doc/guix.texi:14043 doc/guix.texi:15128
+#: doc/guix.texi:15129
 #, no-wrap
 msgid "Networking Services"
 msgstr "Сервисы сети"
 
 #. type: menuentry
-#: doc/guix.texi:320 doc/guix.texi:12234
+#: doc/guix.texi:347 doc/guix.texi:14043
 msgid "Network setup, SSH daemon, etc."
 msgstr "Установка сети, демон SSH и т.д."
 
 #. type: subsection
-#: doc/guix.texi:320 doc/guix.texi:12234 doc/guix.texi:14432
-#: doc/guix.texi:14433
+#: doc/guix.texi:347 doc/guix.texi:14043 doc/guix.texi:16466
+#: doc/guix.texi:16467
+#, no-wrap
+msgid "Unattended Upgrades"
+msgstr "Автоматические обновления"
+
+#. type: menuentry
+#: doc/guix.texi:347 doc/guix.texi:14043
+msgid "Automated system upgrades."
+msgstr "Автоматические обновления системы."
+
+#. type: subsection
+#: doc/guix.texi:347 doc/guix.texi:14043 doc/guix.texi:16600
+#: doc/guix.texi:16601
 #, no-wrap
 msgid "X Window"
 msgstr "Оконная система X"
 
 #. type: menuentry
-#: doc/guix.texi:320 doc/guix.texi:12234
+#: doc/guix.texi:347 doc/guix.texi:14043
 msgid "Graphical display."
 msgstr "Графический дисплей."
 
 #. type: subsection
-#: doc/guix.texi:320 doc/guix.texi:12234 doc/guix.texi:14809
-#: doc/guix.texi:14810
+#: doc/guix.texi:347 doc/guix.texi:14043 doc/guix.texi:16978
+#: doc/guix.texi:16979
 #, no-wrap
 msgid "Printing Services"
 msgstr "Сервисы печати"
 
 #. type: menuentry
-#: doc/guix.texi:320 doc/guix.texi:12234
+#: doc/guix.texi:347 doc/guix.texi:14043
 msgid "Local and remote printer support."
 msgstr "Поддержка локальных и удалённых принтеров."
 
 #. type: subsection
-#: doc/guix.texi:320 doc/guix.texi:12234 doc/guix.texi:15661
-#: doc/guix.texi:15662
+#: doc/guix.texi:347 doc/guix.texi:14043 doc/guix.texi:17830
+#: doc/guix.texi:17831
 #, no-wrap
 msgid "Desktop Services"
 msgstr "Сервисы рабочего стола"
 
 #. type: menuentry
-#: doc/guix.texi:320 doc/guix.texi:12234
+#: doc/guix.texi:347 doc/guix.texi:14043
 msgid "D-Bus and desktop services."
 msgstr "D-Bus и сервисы рабочего стола."
 
 #. type: subsection
-#: doc/guix.texi:320 doc/guix.texi:12234 doc/guix.texi:16113
-#: doc/guix.texi:16114
+#: doc/guix.texi:347 doc/guix.texi:14043 doc/guix.texi:18307
+#: doc/guix.texi:18308
 #, no-wrap
 msgid "Sound Services"
 msgstr "Звуковые сервисы"
 
 #. type: menuentry
-#: doc/guix.texi:320 doc/guix.texi:12234
+#: doc/guix.texi:347 doc/guix.texi:14043
 msgid "ALSA and Pulseaudio services."
 msgstr "Сервисы ALSA и Pulseaudio."
 
 #. type: subsection
-#: doc/guix.texi:320 doc/guix.texi:12234 doc/guix.texi:16246
-#: doc/guix.texi:16247
+#: doc/guix.texi:347 doc/guix.texi:14043 doc/guix.texi:18447
+#: doc/guix.texi:18448
 #, no-wrap
 msgid "Database Services"
 msgstr "Сервисы баз данных"
 
 #. type: menuentry
-#: doc/guix.texi:320 doc/guix.texi:12234
+#: doc/guix.texi:347 doc/guix.texi:14043
 msgid "SQL databases, key-value stores, etc."
 msgstr "Базы данных SQL, базы ключ-значение и т. д."
 
 #. type: subsection
-#: doc/guix.texi:320 doc/guix.texi:12234 doc/guix.texi:16406
-#: doc/guix.texi:16407
+#: doc/guix.texi:347 doc/guix.texi:14043 doc/guix.texi:18625
+#: doc/guix.texi:18626
 #, no-wrap
 msgid "Mail Services"
 msgstr "Почтовые сервисы"
 
 #. type: menuentry
-#: doc/guix.texi:320 doc/guix.texi:12234
+#: doc/guix.texi:347 doc/guix.texi:14043
 msgid "IMAP, POP3, SMTP, and all that."
 msgstr "IMAP, POP3, SMTP и прочее."
 
 #. type: subsection
-#: doc/guix.texi:320 doc/guix.texi:12234 doc/guix.texi:18198
-#: doc/guix.texi:18199
+#: doc/guix.texi:347 doc/guix.texi:14043 doc/guix.texi:20417
+#: doc/guix.texi:20418
 #, no-wrap
 msgid "Messaging Services"
 msgstr "Сервисы сообщений"
 
 #. type: menuentry
-#: doc/guix.texi:320 doc/guix.texi:12234
+#: doc/guix.texi:347 doc/guix.texi:14043
 msgid "Messaging services."
 msgstr "Сервисы сообщений."
 
 #. type: subsection
-#: doc/guix.texi:320 doc/guix.texi:12234 doc/guix.texi:18700
-#: doc/guix.texi:18701
+#: doc/guix.texi:347 doc/guix.texi:14043 doc/guix.texi:20920
+#: doc/guix.texi:20921
 #, no-wrap
 msgid "Telephony Services"
 msgstr "Сервисы телефонии"
 
 #. type: menuentry
-#: doc/guix.texi:320 doc/guix.texi:12234
+#: doc/guix.texi:347 doc/guix.texi:14043
 msgid "Telephony services."
 msgstr "Сервисы телефонии."
 
 #. type: subsection
-#: doc/guix.texi:320 doc/guix.texi:12234 doc/guix.texi:18905
-#: doc/guix.texi:18906
+#: doc/guix.texi:347 doc/guix.texi:14043 doc/guix.texi:21125
+#: doc/guix.texi:21126
 #, no-wrap
 msgid "Monitoring Services"
 msgstr "Сервисы мониторинга"
 
 #. type: menuentry
-#: doc/guix.texi:320 doc/guix.texi:12234
+#: doc/guix.texi:347 doc/guix.texi:14043
 msgid "Monitoring services."
 msgstr "Сервисы мониторинга."
 
 #. type: subsection
-#: doc/guix.texi:320 doc/guix.texi:12234 doc/guix.texi:19410
-#: doc/guix.texi:19411
+#: doc/guix.texi:347 doc/guix.texi:14043 doc/guix.texi:21630
+#: doc/guix.texi:21631
 #, no-wrap
 msgid "Kerberos Services"
 msgstr "Сервисы Kerberos"
 
 #. type: menuentry
-#: doc/guix.texi:320 doc/guix.texi:12234
+#: doc/guix.texi:347 doc/guix.texi:14043
 msgid "Kerberos services."
 msgstr "Сервисы Kerberos."
 
 #. type: subsection
-#: doc/guix.texi:320 doc/guix.texi:12234 doc/guix.texi:20014
-#: doc/guix.texi:20015
+#: doc/guix.texi:347 doc/guix.texi:14043 doc/guix.texi:21756
+#: doc/guix.texi:21757
+#, no-wrap
+msgid "LDAP Services"
+msgstr "LDAP Сервисы"
+
+#. type: menuentry
+#: doc/guix.texi:347 doc/guix.texi:14043
+msgid "LDAP services."
+msgstr "LDAP сервисы"
+
+#. type: subsection
+#: doc/guix.texi:347 doc/guix.texi:14043 doc/guix.texi:22235
+#: doc/guix.texi:22236
 #, no-wrap
 msgid "Web Services"
 msgstr "Веб-сервисы"
 
 #. type: menuentry
-#: doc/guix.texi:320 doc/guix.texi:12234
+#: doc/guix.texi:347 doc/guix.texi:14043
 msgid "Web servers."
 msgstr "Веб-серверы."
 
 #. type: subsection
-#: doc/guix.texi:320 doc/guix.texi:12234 doc/guix.texi:21047
-#: doc/guix.texi:21048
+#: doc/guix.texi:347 doc/guix.texi:14043 doc/guix.texi:23315
+#: doc/guix.texi:23316
 #, no-wrap
 msgid "Certificate Services"
 msgstr "Сервисы сертификатов"
 
 #. type: menuentry
-#: doc/guix.texi:320 doc/guix.texi:12234
+#: doc/guix.texi:347 doc/guix.texi:14043
 msgid "TLS certificates via Let's Encrypt."
 msgstr "Сертификаты TLS через Let's Encrypt."
 
 #. type: subsection
-#: doc/guix.texi:320 doc/guix.texi:12234 doc/guix.texi:21219
-#: doc/guix.texi:21220
+#: doc/guix.texi:347 doc/guix.texi:14043 doc/guix.texi:23488
+#: doc/guix.texi:23489
 #, no-wrap
 msgid "DNS Services"
 msgstr "Сервисы DNS"
 
 #. type: menuentry
-#: doc/guix.texi:320 doc/guix.texi:12234
+#: doc/guix.texi:347 doc/guix.texi:14043
 msgid "DNS daemons."
 msgstr "DNS-демоны."
 
 #. type: subsection
-#: doc/guix.texi:320 doc/guix.texi:12234 doc/guix.texi:21893
-#: doc/guix.texi:21894
+#: doc/guix.texi:347 doc/guix.texi:14043 doc/guix.texi:24235
+#: doc/guix.texi:24236
 #, no-wrap
 msgid "VPN Services"
 msgstr "VPN-сервисы"
 
 #. type: menuentry
-#: doc/guix.texi:320 doc/guix.texi:12234
+#: doc/guix.texi:347 doc/guix.texi:14043
 msgid "VPN daemons."
 msgstr "VPN-демоны."
 
 #. type: subsection
-#: doc/guix.texi:320 doc/guix.texi:12234 doc/guix.texi:22273
-#: doc/guix.texi:22274
+#: doc/guix.texi:347 doc/guix.texi:14043 doc/guix.texi:24615
+#: doc/guix.texi:24616
 #, no-wrap
 msgid "Network File System"
 msgstr "Сетевые файловые системы"
 
 #. type: menuentry
-#: doc/guix.texi:320 doc/guix.texi:12234
+#: doc/guix.texi:347 doc/guix.texi:14043
 msgid "NFS related services."
 msgstr "Сервисы, работающие с сетевыми файловыми системами"
 
 #. type: subsection
-#: doc/guix.texi:320 doc/guix.texi:12234 doc/guix.texi:22463
-#: doc/guix.texi:22464
+#: doc/guix.texi:347 doc/guix.texi:14043 doc/guix.texi:24811
+#: doc/guix.texi:24812
 #, no-wrap
 msgid "Continuous Integration"
 msgstr "Длительная интеграция"
 
 #. type: menuentry
-#: doc/guix.texi:320 doc/guix.texi:12234
+#: doc/guix.texi:347 doc/guix.texi:14043
 msgid "The Cuirass service."
 msgstr "Сервис Cuirass"
 
 #. type: subsection
-#: doc/guix.texi:320 doc/guix.texi:12234 doc/guix.texi:22586
-#: doc/guix.texi:22587
+#: doc/guix.texi:347 doc/guix.texi:14043 doc/guix.texi:24942
+#: doc/guix.texi:24943
 #, no-wrap
 msgid "Power Management Services"
 msgstr "Сервисы управления питанием"
 
 #. type: menuentry
-#: doc/guix.texi:320 doc/guix.texi:12234
+#: doc/guix.texi:347 doc/guix.texi:14043
 msgid "Extending battery life."
 msgstr "Продление жизни батареи."
 
 #. type: subsection
-#: doc/guix.texi:320 doc/guix.texi:12234 doc/guix.texi:23120
-#: doc/guix.texi:23121
+#: doc/guix.texi:347 doc/guix.texi:14043 doc/guix.texi:25476
+#: doc/guix.texi:25477
 #, no-wrap
 msgid "Audio Services"
 msgstr "Сервисы аудио"
 
 #. type: menuentry
-#: doc/guix.texi:320 doc/guix.texi:12234
+#: doc/guix.texi:347 doc/guix.texi:14043
 msgid "The MPD."
 msgstr "MPD."
 
-#. type: node
-#: doc/guix.texi:320 doc/guix.texi:12234 doc/guix.texi:23239
+#. type: subsection
+#: doc/guix.texi:347 doc/guix.texi:14043 doc/guix.texi:25595
+#: doc/guix.texi:25596
 #, no-wrap
 msgid "Virtualization Services"
 msgstr "Сервисы виртуализации"
 
 #. type: menuentry
-#: doc/guix.texi:320 doc/guix.texi:12234
+#: doc/guix.texi:347 doc/guix.texi:14043
 msgid "Virtualization services."
 msgstr "Сервисы виртуализации."
 
 #. type: subsection
-#: doc/guix.texi:320 doc/guix.texi:12234 doc/guix.texi:24032
-#: doc/guix.texi:24033
+#: doc/guix.texi:347 doc/guix.texi:14043 doc/guix.texi:27217
+#: doc/guix.texi:27218
 #, no-wrap
 msgid "Version Control Services"
 msgstr "Сервисы упраления версиями"
 
 #. type: menuentry
-#: doc/guix.texi:320 doc/guix.texi:12234
+#: doc/guix.texi:347 doc/guix.texi:14043
 msgid "Providing remote access to Git repositories."
 msgstr "Доступ к удалённым репозиториям Git."
 
 #. type: subsection
-#: doc/guix.texi:320 doc/guix.texi:12234 doc/guix.texi:25220
-#: doc/guix.texi:25221
+#: doc/guix.texi:347 doc/guix.texi:14043 doc/guix.texi:28409
+#: doc/guix.texi:28410
 #, no-wrap
 msgid "Game Services"
 msgstr "Игровые службы"
 
 #. type: menuentry
-#: doc/guix.texi:320 doc/guix.texi:12234
+#: doc/guix.texi:347 doc/guix.texi:14043
 msgid "Game servers."
 msgstr "Игровые службы."
 
 #. type: subsection
-#: doc/guix.texi:320 doc/guix.texi:12234 doc/guix.texi:25252
-#: doc/guix.texi:25253
+#: doc/guix.texi:347 doc/guix.texi:14043 doc/guix.texi:28441
+#: doc/guix.texi:28442
 #, no-wrap
 msgid "PAM Mount Service"
 msgstr "Службы подключения PAM"
 
 #. type: menuentry
-#: doc/guix.texi:320 doc/guix.texi:12234
+#: doc/guix.texi:347 doc/guix.texi:14043
 msgid "Service to mount volumes when logging in."
 msgstr "Служба подключения томов при входе в систему."
 
-#. type: subsubheading
-#: doc/guix.texi:320 doc/guix.texi:12234 doc/guix.texi:25390
-#: doc/guix.texi:25391
+#. type: subsection
+#: doc/guix.texi:347 doc/guix.texi:14043 doc/guix.texi:28524
+#: doc/guix.texi:28525
+#, no-wrap
+msgid "Guix Services"
+msgstr "Сервисы Guix"
+
+#. type: menuentry
+#: doc/guix.texi:347 doc/guix.texi:14043
+msgid "Services relating specifically to Guix."
+msgstr "Сервисы, касающиеся конкретно Guix."
+
+#. type: subsection
+#: doc/guix.texi:347 doc/guix.texi:14043 doc/guix.texi:28741
+#: doc/guix.texi:28742
 #, no-wrap
 msgid "Linux Services"
 msgstr "Службы Linux"
 
 #. type: menuentry
-#: doc/guix.texi:320 doc/guix.texi:12234
+#: doc/guix.texi:347 doc/guix.texi:14043
 msgid "Services tied to the Linux kernel."
 msgstr "Службы, привязанные к ядру Linux."
 
 #. type: subsection
-#: doc/guix.texi:320 doc/guix.texi:12234 doc/guix.texi:25492
-#: doc/guix.texi:25493
+#: doc/guix.texi:347 doc/guix.texi:14043 doc/guix.texi:28888
+#: doc/guix.texi:28889
+#, no-wrap
+msgid "Hurd Services"
+msgstr "Сервисы Hurd"
+
+#. type: menuentry
+#: doc/guix.texi:347 doc/guix.texi:14043
+msgid "Services specific for a Hurd System."
+msgstr "Сервисы, касающиеся Hurd System."
+
+#. type: subsection
+#: doc/guix.texi:347 doc/guix.texi:14043 doc/guix.texi:28930
+#: doc/guix.texi:28931
 #, no-wrap
 msgid "Miscellaneous Services"
 msgstr "Разнообразные службы"
 
 #. type: menuentry
-#: doc/guix.texi:320 doc/guix.texi:12234
+#: doc/guix.texi:347 doc/guix.texi:14043
 msgid "Other services."
 msgstr "Другие службы."
 
 #. type: subsection
-#: doc/guix.texi:327 doc/guix.texi:27357 doc/guix.texi:27359
-#: doc/guix.texi:27360
+#: doc/guix.texi:354 doc/guix.texi:31018 doc/guix.texi:31020
+#: doc/guix.texi:31021
 #, no-wrap
 msgid "Service Composition"
 msgstr "Производство сервисов."
 
 #. type: menuentry
-#: doc/guix.texi:327 doc/guix.texi:27357
+#: doc/guix.texi:354 doc/guix.texi:31018
 msgid "The model for composing services."
 msgstr "Модель построения сервисов."
 
 #. type: subsection
-#: doc/guix.texi:327 doc/guix.texi:27357 doc/guix.texi:27415
-#: doc/guix.texi:27416
+#: doc/guix.texi:354 doc/guix.texi:31018 doc/guix.texi:31076
+#: doc/guix.texi:31077
 #, no-wrap
 msgid "Service Types and Services"
 msgstr "Типы сервисов и сервисы"
 
 #. type: menuentry
-#: doc/guix.texi:327 doc/guix.texi:27357
+#: doc/guix.texi:354 doc/guix.texi:31018
 msgid "Types and services."
 msgstr "Типы и сервисы."
 
 #. type: subsection
-#: doc/guix.texi:327 doc/guix.texi:27357 doc/guix.texi:27552
-#: doc/guix.texi:27553
+#: doc/guix.texi:354 doc/guix.texi:31018 doc/guix.texi:31213
+#: doc/guix.texi:31214
 #, no-wrap
 msgid "Service Reference"
 msgstr "Интерфейс сервиса"
 
 #. type: menuentry
-#: doc/guix.texi:327 doc/guix.texi:27357
+#: doc/guix.texi:354 doc/guix.texi:31018
 msgid "API reference."
 msgstr "Доступ через API."
 
 #. type: subsection
-#: doc/guix.texi:327 doc/guix.texi:27357 doc/guix.texi:27825
-#: doc/guix.texi:27826
+#: doc/guix.texi:354 doc/guix.texi:31018 doc/guix.texi:31504
+#: doc/guix.texi:31505
 #, no-wrap
 msgid "Shepherd Services"
 msgstr "Сервисы Shepherd"
 
 #. type: menuentry
-#: doc/guix.texi:327 doc/guix.texi:27357
+#: doc/guix.texi:354 doc/guix.texi:31018
 msgid "A particular type of service."
 msgstr "Особенный тип сервисов."
 
+#. type: section
+#: doc/guix.texi:359 doc/guix.texi:31739 doc/guix.texi:31741
+#: doc/guix.texi:31742
+#, no-wrap
+msgid "Separate Debug Info"
+msgstr "Отдельная информация об отладке"
+
+#. type: menuentry
+#: doc/guix.texi:359 doc/guix.texi:31739
+#, fuzzy
+#| msgid "Installing Debugging Files"
+msgid "Installing 'debug' outputs."
+msgstr "Установка файлов отладки"
+
+#. type: section
+#: doc/guix.texi:359 doc/guix.texi:31739 doc/guix.texi:31800
+#: doc/guix.texi:31801
+#, no-wrap
+msgid "Rebuilding Debug Info"
+msgstr "Сборка с отладочной информацией"
+
+#. type: menuentry
+#: doc/guix.texi:359 doc/guix.texi:31739
+msgid "Building missing debug info."
+msgstr "Сборка отсутствующей отладочной информации"
+
+#. type: node
+#: doc/guix.texi:364 doc/guix.texi:32012 doc/guix.texi:32014
+#, no-wrap
+msgid "Reduced Binary Seed Bootstrap"
+msgstr "Уменьшение Binary Seed Bootstrap"
+
+#. type: menuentry
+#: doc/guix.texi:364 doc/guix.texi:32012
+msgid "A Bootstrap worthy of GNU."
+msgstr "Первичная загрузка, достойная GNU."
+
+#. type: section
+#: doc/guix.texi:364 doc/guix.texi:32012 doc/guix.texi:32089
+#: doc/guix.texi:32090
+#, no-wrap
+msgid "Preparing to Use the Bootstrap Binaries"
+msgstr "Подготовка к использованию двоичных файлов первоначальной загрузки"
+
+#. type: menuentry
+#: doc/guix.texi:364 doc/guix.texi:32012
+msgid "Building that what matters most."
+msgstr "Сборка самого главного."
+
 #. type: cindex
-#: doc/guix.texi:335
+#: doc/guix.texi:372
 #, no-wrap
 msgid "purpose"
 msgstr "цель"
 
 #. type: Plain text
-#: doc/guix.texi:343
+#: doc/guix.texi:380
 msgid "GNU Guix@footnote{``Guix'' is pronounced like ``geeks'', or ``ɡiːks'' using the international phonetic alphabet (IPA).} is a package management tool for and distribution of the GNU system.  Guix makes it easy for unprivileged users to install, upgrade, or remove software packages, to roll back to a previous package set, to build packages from source, and generally assists with the creation and maintenance of software environments."
-msgstr "GNU Guix@footnote{\"Guix\" произносится \"гикс\".} --- это уитилита для управления пакетами и дистрибутив системы GNU. Guix позволяет непривилегированным пользователям устанавливать, обновлять и удалять программные пакеты, откатываться до предыдущих наборов пакетов, собирать пакеты из исходников и обеспечивает создание и поддержку программного окружения в целом."
+msgstr "GNU Guix@footnote{\"Guix\" произносится \"гикс\".} --- это утилита для управления пакетами и дистрибутив системы GNU. Guix позволяет непривилегированным пользователям устанавливать, обновлять и удалять программные пакеты, откатываться до предыдущих наборов пакетов, собирать пакеты из исходников и обеспечивает создание и поддержку программного окружения в целом."
 
 #. type: cindex
-#: doc/guix.texi:344 doc/guix.texi:419
+#: doc/guix.texi:381 doc/guix.texi:456
 #, no-wrap
 msgid "Guix System"
 msgstr "Система Guix"
 
 #. type: cindex
-#: doc/guix.texi:345
+#: doc/guix.texi:382
 #, no-wrap
 msgid "GuixSD, now Guix System"
 msgstr "GuixSD, теперь система Guix"
 
 #. type: cindex
-#: doc/guix.texi:346
+#: doc/guix.texi:383
 #, no-wrap
 msgid "Guix System Distribution, now Guix System"
 msgstr "Guix System Distribution, теперь система Guix"
 
 #. type: Plain text
-#: doc/guix.texi:355
+#: doc/guix.texi:392
 msgid "You can install GNU@tie{}Guix on top of an existing GNU/Linux system where it complements the available tools without interference (@pxref{Installation}), or you can use it as a standalone operating system distribution, @dfn{Guix@tie{}System}@footnote{We used to refer to Guix System as ``Guix System Distribution'' or ``GuixSD''.  We now consider it makes more sense to group everything under the ``Guix'' banner since, after all, Guix System is readily available through the @command{guix system} command, even if you're using a different distro underneath!}.  @xref{GNU Distribution}."
 msgstr "Вы можете установить GNU@tie{}Guix поверх существующей системы GNU/Linux, и она дополнит функции системы новой утилитой, не внося помехи (@pxref{Installation}). Или можно использовать отдельную операционную систему --- @dfn{систему@tie{}Guix}@footnote{Мы называли систему Guix \"Guix System Distribution\" или \"GuixSD\". Теперь мы считаем, удобнее объединить всё под названием \"Guix\", так что теперь командой @command{guix system} устанавливается система Guix, даже если вы используете другой дистирбутив для её запуска}.  @xref{GNU Distribution}."
 
 #. type: cindex
-#: doc/guix.texi:364
+#: doc/guix.texi:401
 #, no-wrap
 msgid "user interfaces"
 msgstr "пользовательские интерфейсы"
 
 #. type: Plain text
-#: doc/guix.texi:370
+#: doc/guix.texi:407
 msgid "Guix provides a command-line package management interface (@pxref{Package Management}), tools to help with software development (@pxref{Development}), command-line utilities for more advanced usage, (@pxref{Utilities}), as well as Scheme programming interfaces (@pxref{Programming Interface})."
 msgstr "Guix предоставляет интерфейс командной строки для управления пакетами (@pxref{Package Management}), инструменты, которые помогают в разработке программного обеспечения (@pxref{Development}), более сложные утилиты командной строки (@pxref{Utilities}), а также программный интерфейс Scheme (@pxref{Programming Interface})."
 
 #. type: cindex
-#: doc/guix.texi:370
+#: doc/guix.texi:407
 #, no-wrap
 msgid "build daemon"
 msgstr "демон сборки"
 
 #. type: Plain text
-#: doc/guix.texi:374
+#: doc/guix.texi:411
 msgid "Its @dfn{build daemon} is responsible for building packages on behalf of users (@pxref{Setting Up the Daemon}) and for downloading pre-built binaries from authorized sources (@pxref{Substitutes})."
 msgstr "Его @dfn{демон сборки} отвечает за сборку пакетов по запросам пользователей (@pxref{Setting Up the Daemon}) и за скачивание компилированных бинарников из авторизованных ресурсов (@pxref{Substitutes})."
 
 #. type: cindex
-#: doc/guix.texi:375
+#: doc/guix.texi:412
 #, no-wrap
 msgid "extensibility of the distribution"
 msgstr "расширяемость дистрибутива"
 
 #. type: cindex
-#: doc/guix.texi:376 doc/guix.texi:5391
+#: doc/guix.texi:413 doc/guix.texi:6126
 #, no-wrap
 msgid "customization, of packages"
 msgstr "настройка, пакетов"
 
 #. type: Plain text
-#: doc/guix.texi:385
+#: doc/guix.texi:422
 msgid "Guix includes package definitions for many GNU and non-GNU packages, all of which @uref{https://www.gnu.org/philosophy/free-sw.html, respect the user's computing freedom}.  It is @emph{extensible}: users can write their own package definitions (@pxref{Defining Packages}) and make them available as independent package modules (@pxref{Package Modules}).  It is also @emph{customizable}: users can @emph{derive} specialized package definitions from existing ones, including from the command line (@pxref{Package Transformation Options})."
 msgstr "Guix включает определения пакетов для множества проектов GNU и не-GNU, каждый из которых @uref{https://www.gnu.org/philosophy/free-sw.html, уважает свободу пользователя в работе за компьютером}. Он @emph{расширяемый}: пользователи могут писать свои собственные определения пакетов (@pxref{Defining Packages}) и делать их доступными как независимые пакетные модули (@pxref{Package Modules}). Он также @emph{настраиваемый}: пользователи могут @emph{получать} специальные определения пакетов из существующих, в том числе через командную строку (@pxref{Package Transformation Options})."
 
 #. type: cindex
-#: doc/guix.texi:386
+#: doc/guix.texi:423
 #, no-wrap
 msgid "functional package management"
 msgstr "функциональное управление пакетами"
 
 #. type: cindex
-#: doc/guix.texi:387
+#: doc/guix.texi:424
 #, no-wrap
 msgid "isolation"
 msgstr "изоляция"
 
 #. type: Plain text
-#: doc/guix.texi:402
+#: doc/guix.texi:439
 msgid "Under the hood, Guix implements the @dfn{functional package management} discipline pioneered by Nix (@pxref{Acknowledgments}).  In Guix, the package build and installation process is seen as a @emph{function}, in the mathematical sense.  That function takes inputs, such as build scripts, a compiler, and libraries, and returns an installed package.  As a pure function, its result depends solely on its inputs---for instance, it cannot refer to software or scripts that were not explicitly passed as inputs.  A build function always produces the same result when passed a given set of inputs.  It cannot alter the environment of the running system in any way; for instance, it cannot create, modify, or delete files outside of its build and installation directories.  This is achieved by running build processes in isolated environments (or @dfn{containers}), where only their explicit inputs are visible."
 msgstr "Под капотом Guix работает как @dfn{функциональный пакетный менеджер} --- принцип, впервые введённый Nix (@pxref{Acknowledgments}). В Guix процесс сборки и установки пакета рассматривается как @emph{функция} в математическом смысле. Эта функция принимает входные данные, как например, скрипты сборки, компилятор, её результат зависит только от входных данных, и он не может зависеть от программ или скриптов, которые не подаются на вход явным образом. Функция сборки всегда производит один результат, когда получает один и тот же набор входных данных. Она не может как-либо изменять окружение запущенной системы; например, она не может создавать, изменять или удалять файлы за пределами её директорий сборки и установки. Это достигается так: процесс сборки запускается в изолированном окружении (или @dfn{контейнере}), в котором видны только входные данные, заданные явно."
 
 #. type: cindex
-#: doc/guix.texi:403 doc/guix.texi:6820
+#: doc/guix.texi:440 doc/guix.texi:8164
 #, no-wrap
 msgid "store"
 msgstr "склад"
 
 #. type: Plain text
-#: doc/guix.texi:410
+#: doc/guix.texi:447
 msgid "The result of package build functions is @dfn{cached} in the file system, in a special directory called @dfn{the store} (@pxref{The Store}).  Each package is installed in a directory of its own in the store---by default under @file{/gnu/store}.  The directory name contains a hash of all the inputs used to build that package; thus, changing an input yields a different directory name."
 msgstr "Результат работы функций сборки пакетов кешируется в файловой системе в специальной директории, называемой @dfn{склад} (@pxref{The Store}).Каждый пакет устанавливается в собственную директорию склада, по умолчанию --- под @file{/gnu/store}. Имя директории содержит хеш всех входных данных, используемых для сборки этого пакета, так что изменение входных данных порождает различные имена директорий."
 
 #. type: Plain text
-#: doc/guix.texi:414
+#: doc/guix.texi:451
 msgid "This approach is the foundation for the salient features of Guix: support for transactional package upgrade and rollback, per-user installation, and garbage collection of packages (@pxref{Features})."
 msgstr "Этот подход является принципиальным, на нём основаны ключевые особенностей Guix: поддержка транзакционного обновления пакета и откаты, установка для отдельного пользователя, сборка мусора от пакетов (@pxref{Features})."
 
 #. type: Plain text
-#: doc/guix.texi:429
-#, fuzzy
-#| msgid "Guix comes with a distribution of the GNU system consisting entirely of free software@footnote{The term ``free'' here refers to the @url{http://www.gnu.org/philosophy/free-sw.html,freedom provided to users of that software}.}.  The distribution can be installed on its own (@pxref{System Installation}), but it is also possible to install Guix as a package manager on top of an installed GNU/Linux system (@pxref{Installation}).  When we need to distinguish between the two, we refer to the standalone distribution as Guix@tie{}System."
+#: doc/guix.texi:466
 msgid "Guix comes with a distribution of the GNU system consisting entirely of free software@footnote{The term ``free'' here refers to the @url{https://www.gnu.org/philosophy/free-sw.html,freedom provided to users of that software}.}.  The distribution can be installed on its own (@pxref{System Installation}), but it is also possible to install Guix as a package manager on top of an installed GNU/Linux system (@pxref{Installation}).  When we need to distinguish between the two, we refer to the standalone distribution as Guix@tie{}System."
-msgstr "Guix идёт с дистрибутивом системы GNU, которая состоит из полностью свободного программного обеспечения{Понятие свободы ПО раскрыто на странице @url{https://www.gnu.org/philosophy/free-sw.ru.html,Что такое свободная программа?}.}. Дистрибутив может устанавливаться как отдельная система (@pxref{System Installation}), а также возможно установить Guix как пакетный менеджер поверх имеющейся системы GNU/Linux (@pxref{Installation}). Чтобы различать эти понятия, мы обозначаем отдельный дистрибутив словом Система@tie{}Guix."
+msgstr "Guix поставляется с дистрибутивом системы GNU, полностью состоящим из свободного программного обеспечения @footnote{Термин ``свободного'' здесь относится к @url{https://www.gnu.org/philosophy/free-sw.ru.html,свобода, предоставляемая пользователям этого программного обеспечения}.}.  Дистрибутив можно установить отдельно (@pxref{System Installation}), но также можно установить Guix в качестве пакетного менеджера поверх установленной системы GNU/Linux (@pxref{Installation}).  Когда нам нужно провести различие между ними, мы называем самодостаточный дистрибутив Guix@tie{}System."
 
 #. type: Plain text
-#: doc/guix.texi:435
-#, fuzzy
-#| msgid "The distribution provides core GNU packages such as GNU libc, GCC, and Binutils, as well as many GNU and non-GNU applications.  The complete list of available packages can be browsed @url{http://www.gnu.org/software/guix/packages,on-line} or by running @command{guix package} (@pxref{Invoking guix package}):"
+#: doc/guix.texi:472
 msgid "The distribution provides core GNU packages such as GNU libc, GCC, and Binutils, as well as many GNU and non-GNU applications.  The complete list of available packages can be browsed @url{https://www.gnu.org/software/guix/packages,on-line} or by running @command{guix package} (@pxref{Invoking guix package}):"
-msgstr ""
-"Дистрибуив предоставляет основные пакет GNU, как GNU libc, GCC и Binutils, а также множество не-GNU приложений. Полный список доступных пакетов можно просмотреть @url{http://www.gnu.org/software/guix/\"\n"
-"\"packages,онлайн} или запуском команды @command{guix package} (@pxref{Invoking guix package}):"
+msgstr "Дистрибутив предоставляет основные пакеты GNU, такие как GNU libc, GCC и Binutils, а также многие приложения GNU и не-GNU.  Полный список доступных пакетов можно просмотреть по @url{https://www.gnu.org/software/guix/packages,онлайн} или запустив @command{guix package} (@pxref{Invoking guix package}):"
 
 #. type: example
-#: doc/guix.texi:438
+#: doc/guix.texi:475
 #, no-wrap
 msgid "guix package --list-available\n"
 msgstr "guix package --list-available\n"
 
 #. type: Plain text
-#: doc/guix.texi:444
+#: doc/guix.texi:481
 msgid "Our goal is to provide a practical 100% free software distribution of Linux-based and other variants of GNU, with a focus on the promotion and tight integration of GNU components, and an emphasis on programs and tools that help users exert that freedom."
 msgstr "Наша цель --- предоставить состоящий на 100% из свободного программного обеспечения рабочий дистрибуив Linux или другие варианты GNU. Мы ориентируемся на продвижении и полноценной интеграции компонентов GNU и поддержке программ и утилит, которые помогают пользователям реализовать их свободы."
 
 #. type: Plain text
-#: doc/guix.texi:446
+#: doc/guix.texi:483
 msgid "Packages are currently available on the following platforms:"
 msgstr "Пакеты в данные момент доступны для следующих платформ:"
 
 #. type: item
-#: doc/guix.texi:449 doc/guix.texi:1925
+#: doc/guix.texi:486 doc/guix.texi:2006
 #, no-wrap
 msgid "x86_64-linux"
 msgstr "x86_64-linux"
 
 #. type: table
-#: doc/guix.texi:451
-msgid "Intel/AMD @code{x86_64} architecture, Linux-Libre kernel;"
+#: doc/guix.texi:488
+#, fuzzy
+#| msgid "Intel/AMD @code{x86_64} architecture, Linux-Libre kernel;"
+msgid "Intel/AMD @code{x86_64} architecture, Linux-Libre kernel."
 msgstr "архитектура Intel/AMD @code{x86_64} с ядром Linux-Libre;"
 
 #. type: item
-#: doc/guix.texi:452 doc/guix.texi:1928
+#: doc/guix.texi:489 doc/guix.texi:2009
 #, no-wrap
 msgid "i686-linux"
 msgstr "i686-linux"
 
 #. type: table
-#: doc/guix.texi:454
-msgid "Intel 32-bit architecture (IA32), Linux-Libre kernel;"
+#: doc/guix.texi:491
+#, fuzzy
+#| msgid "Intel 32-bit architecture (IA32), Linux-Libre kernel;"
+msgid "Intel 32-bit architecture (IA32), Linux-Libre kernel."
 msgstr "архитектура Intel 32-bit (IA32) с ядром Linux-Libre;"
 
 #. type: item
-#: doc/guix.texi:455
+#: doc/guix.texi:492
 #, no-wrap
 msgid "armhf-linux"
 msgstr "armhf-linux"
 
 #. type: table
-#: doc/guix.texi:459
+#: doc/guix.texi:496
 msgid "ARMv7-A architecture with hard float, Thumb-2 and NEON, using the EABI hard-float application binary interface (ABI), and Linux-Libre kernel."
 msgstr "Архитектура ARMv7-A с hard float, Thumb-2 и NEON, используя двочиный интерфейс приложений EABI hard-float (ABI), с ядром Linux-Libre."
 
 #. type: item
-#: doc/guix.texi:460
+#: doc/guix.texi:497
 #, no-wrap
 msgid "aarch64-linux"
 msgstr "aarch64-linux"
 
 #. type: table
-#: doc/guix.texi:462
+#: doc/guix.texi:499
 msgid "little-endian 64-bit ARMv8-A processors, Linux-Libre kernel."
 msgstr "процессоры little-endian 64-bit ARMv8-A с ядром Linux-Libre."
 
 #. type: item
-#: doc/guix.texi:463
+#: doc/guix.texi:500
 #, no-wrap
-msgid "mips64el-linux"
-msgstr "mips64el-linux"
+msgid "i586-gnu"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:503
+msgid "@uref{https://hurd.gnu.org, GNU/Hurd} on the Intel 32-bit architecture (IA32)."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:509
+msgid "This configuration is experimental and under development.  The easiest way for you to give it a try is by setting up an instance of @code{hurd-vm-service-type} on your GNU/Linux machine (@pxref{transparent-emulation-qemu, @code{hurd-vm-service-type}}).  @xref{Contributing}, on how to help!"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:510
+#, fuzzy, no-wrap
+msgid "mips64el-linux (deprecated)"
+msgstr "mips64el-linux (устарело)"
 
 #. type: table
-#: doc/guix.texi:468
-msgid "little-endian 64-bit MIPS processors, specifically the Loongson series, n32 ABI, and Linux-Libre kernel.  This configuration is no longer fully supported; in particular, the project's build farms no longer provide substitutes for this architecture."
+#: doc/guix.texi:516
+#, fuzzy
+#| msgid "little-endian 64-bit MIPS processors, specifically the Loongson series, n32 ABI, and Linux-Libre kernel.  This configuration is no longer fully supported; in particular, the project's build farms no longer provide substitutes for this architecture."
+msgid "little-endian 64-bit MIPS processors, specifically the Loongson series, n32 ABI, and Linux-Libre kernel.  This configuration is no longer fully supported; in particular, there is no ongoing work to ensure that this architecture still works. Should someone decide they wish to revive this architecture then the code is still available."
 msgstr "64-разрядные little-endian процессоры MIPS порядком байтов, в частности серии Loongson, n32 ABI и ядро Linux-Libre. Эта конфигурация больше не поддерживается полностью; в частности, фермы сборки проекта больше не предоставляют замены этой архитектуре."
 
 #. type: Plain text
-#: doc/guix.texi:478
+#: doc/guix.texi:526
 msgid "With Guix@tie{}System, you @emph{declare} all aspects of the operating system configuration and Guix takes care of instantiating the configuration in a transactional, reproducible, and stateless fashion (@pxref{System Configuration}).  Guix System uses the Linux-libre kernel, the Shepherd initialization system (@pxref{Introduction,,, shepherd, The GNU Shepherd Manual}), the well-known GNU utilities and tool chain, as well as the graphical environment or system services of your choice."
 msgstr "Пользуясь системой@tie{}Guix, вы @emph{объявляете} все аспекты конфигурации системы, и Guix выполняет установку инстранции ОС транзакционным, повторяемым способом, не имеющей состояния (stateless) (@pxref{System Configuration}). Система Guix использует ядро Linux-libre, систему инициализации Shepherd (@pxref{Introduction,,, shepherd, The GNU Shepherd Manual}), хорошо известные утилиты и тулчейны GNU, а также графическое окружение на выбор."
 
 #. type: Plain text
-#: doc/guix.texi:481
+#: doc/guix.texi:529
 msgid "Guix System is available on all the above platforms except @code{mips64el-linux}."
 msgstr "Система Guix доступна для платформ, приведённых выше, кроме @code{mips64el-linux}."
 
 #. type: Plain text
-#: doc/guix.texi:485
+#: doc/guix.texi:533
 msgid "For information on porting to other architectures or kernels, @pxref{Porting}."
 msgstr "Информация о портировании на другие архитектуры и ядра доступна в @pxref{Porting}."
 
 #. type: Plain text
-#: doc/guix.texi:488
+#: doc/guix.texi:536
 msgid "Building this distribution is a cooperative effort, and you are invited to join! @xref{Contributing}, for information about how you can help."
 msgstr "Дистрибутив созаётся совместными усилиями, приглашаем вас! См. @xref{Contributing}, чтобы узнать о том, как вы можете помочь."
 
 #. type: cindex
-#: doc/guix.texi:494
+#: doc/guix.texi:542
 #, no-wrap
 msgid "installing Guix"
 msgstr "Установка Guix"
 
 #. type: quotation
-#: doc/guix.texi:506
+#: doc/guix.texi:554
 msgid "We recommend the use of this @uref{https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh, shell installer script} to install Guix on top of a running GNU/Linux system, thereafter called a @dfn{foreign distro}.@footnote{This section is concerned with the installation of the package manager, which can be done on top of a running GNU/Linux system.  If, instead, you want to install the complete GNU operating system, @pxref{System Installation}.} The script automates the download, installation, and initial configuration of Guix.  It should be run as the root user."
 msgstr "Мы рекомендуем использовать этот @uref{https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh, скрипт установки} для установки Guix на существующую систему GNU/Linux, называемый далее @dfn{чужой дистрибутив}.@footnote{Этот раздел описывает установку пакетного менеджера поверх существующей системы GNU/Linux. Если вместо этого вы хотите установить отдельную операционную систему GNU, смотрите @pxref{System Installation}.} Скрипт автоматизирует скачивание, установку и начальную конфигурацию Guix. Он должен запускаться от пользователя root."
 
 #. type: cindex
-#: doc/guix.texi:508 doc/guix.texi:1579
+#: doc/guix.texi:556 doc/guix.texi:1678
 #, no-wrap
 msgid "foreign distro"
 msgstr "чужой дистрибутив"
 
 #. type: cindex
-#: doc/guix.texi:509
+#: doc/guix.texi:557
 #, no-wrap
 msgid "directories related to foreign distro"
 msgstr "директории относящиеся к чужому дистрибутиву"
 
 #. type: Plain text
-#: doc/guix.texi:514
+#: doc/guix.texi:562
 msgid "When installed on a foreign distro, GNU@tie{}Guix complements the available tools without interference.  Its data lives exclusively in two directories, usually @file{/gnu/store} and @file{/var/guix}; other files on your system, such as @file{/etc}, are left untouched."
 msgstr "При установке на чужой дистрибутив GNU@tie{}Guix дополняет доступные утилиты без внесения помех. Его данные живут только в двух директориях --- обычно @file{/gnu/store} и @file{/var/guix}; другие файлы вашей системы, как @file{/etc}, остаются нетронутыми."
 
 #. type: Plain text
-#: doc/guix.texi:517
+#: doc/guix.texi:565
 msgid "Once installed, Guix can be updated by running @command{guix pull} (@pxref{Invoking guix pull})."
 msgstr "Установленный Guix можно обновлять командой @command{guix pull} (@pxref{Invoking guix pull})."
 
 #. type: Plain text
-#: doc/guix.texi:522
+#: doc/guix.texi:570
 msgid "If you prefer to perform the installation steps manually or want to tweak them, you may find the following subsections useful.  They describe the software requirements of Guix, as well as how to install it manually and get ready to use it."
 msgstr "Если вы предпочитаете выполнять шаги установки вручную или хотита подправить их, следующие параграфы будут полезны. В них описаны требования Guix к программному обеспечению, а также процесс ручной установки до запуска в работу."
 
-#. type: section
-#: doc/guix.texi:531 doc/guix.texi:1779 doc/guix.texi:1780
-#, no-wrap
-msgid "Upgrading Guix"
-msgstr "Обновление Guix"
-
-#. type: menuentry
-#: doc/guix.texi:531
-msgid "Upgrading Guix and its build daemon."
-msgstr "Обновление Guix и этого службы сборки."
-
 #. type: cindex
-#: doc/guix.texi:536
+#: doc/guix.texi:584
 #, no-wrap
 msgid "installing Guix from binaries"
 msgstr "установка Guix из бинарных файлов"
 
 #. type: cindex
-#: doc/guix.texi:537
+#: doc/guix.texi:585
 #, no-wrap
 msgid "installer script"
 msgstr "скрипт установки"
 
 #. type: Plain text
-#: doc/guix.texi:543
+#: doc/guix.texi:591
 msgid "This section describes how to install Guix on an arbitrary system from a self-contained tarball providing binaries for Guix and for all its dependencies.  This is often quicker than installing from source, which is described in the next sections.  The only requirement is to have GNU@tie{}tar and Xz."
 msgstr "Этот раздел описывает, как установить Guix на обычную систему из отдельного архива, который содержит бинарники Guix и все его зависимости. Это обычно быстрее установки из исходных кодов, которая описана в следующем разделе. Единственное требование - иметь GNU@tie{}tar и Xz."
 
 #. type: quotation
-#: doc/guix.texi:551
-msgid "We recommend the use of this @uref{https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh, shell installer script}.  The script automates the download, installation, and initial configuration steps described below.  It should be run as the root user."
+#: doc/guix.texi:599
+#, fuzzy
+#| msgid "We recommend the use of this @uref{https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh, shell installer script}.  The script automates the download, installation, and initial configuration steps described below.  It should be run as the root user."
+msgid "We recommend the use of this @uref{https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh, shell installer script}.  The script automates the download, installation, and initial configuration steps described below.  It should be run as the root user.  As root, you can thus run this:"
 msgstr "Мы рекомендуем использовать этот @uref{https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh, установочный скрипт}. Скрипт автоматизирует скачивание, установку и начальные шаги конфигурации, описанные ниже. Он должен запускаться от пользователя root."
 
+#. type: example
+#: doc/guix.texi:605
+#, no-wrap
+msgid ""
+"cd /tmp\n"
+"wget https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh\n"
+"chmod +x guix-install.sh\n"
+"./guix-install.sh\n"
+msgstr ""
+"cd /tmp\n"
+"wget https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh\n"
+"chmod +x guix-install.sh\n"
+"./guix-install.sh\n"
+
+#. type: quotation
+#: doc/guix.texi:609
+msgid "When you're done, @pxref{Application Setup} for extra configuration you might need, and @ref{Getting Started} for your first steps!"
+msgstr "Когда закончите, вам может понадобиться @pxref{Application Setup} для дополнительной настройки и @ref{Getting Started}."
+
 #. type: Plain text
-#: doc/guix.texi:554
+#: doc/guix.texi:612
 msgid "Installing goes along these lines:"
 msgstr "Установка производится следующими образом:"
 
 #. type: cindex
-#: doc/guix.texi:557
+#: doc/guix.texi:615
 #, no-wrap
 msgid "downloading Guix binary"
 msgstr "скачивание бинарника Guix"
 
 #. type: enumerate
-#: doc/guix.texi:562
-msgid "Download the binary tarball from @indicateurl{@value{BASE-URL}/guix-binary-@value{VERSION}.@var{system}.tar.xz}, where @var{system} is @code{x86_64-linux} for an @code{x86_64} machine already running the kernel Linux, and so on."
+#: doc/guix.texi:621
+#, fuzzy
+#| msgid "Download the binary tarball from @indicateurl{@value{BASE-URL}/guix-binary-@value{VERSION}.@var{system}.tar.xz}, where @var{system} is @code{x86_64-linux} for an @code{x86_64} machine already running the kernel Linux, and so on."
+msgid "Download the binary tarball from @indicateurl{@value{BASE-URL}/guix-binary-@value{VERSION}.x86_64-linux.tar.xz}, where @code{x86_64-linux} can be replaced with @code{i686-linux} for an @code{i686} (32-bits) machine already running the kernel Linux, and so on (@pxref{GNU Distribution})."
 msgstr "Скачайте архив с бинарником из @indicateurl{@value{BASE-URL}/guix-binary-@value{VERSION}.@var{system}.tar.xz}, где @var{system} --- это @code{x86_64-linux} для машины @code{x86_64}, на которой уже запущено ядро Linux, и так далее."
 
 #. type: enumerate
-#: doc/guix.texi:566
+#: doc/guix.texi:625
 msgid "Make sure to download the associated @file{.sig} file and to verify the authenticity of the tarball against it, along these lines:"
 msgstr "Убедитесь в аутентичности архива, скачав файл @file{.sig} и запустив:"
 
 #. type: example
-#: doc/guix.texi:570
+#: doc/guix.texi:629
 #, no-wrap
 msgid ""
-"$ wget @value{BASE-URL}/guix-binary-@value{VERSION}.@var{system}.tar.xz.sig\n"
-"$ gpg --verify guix-binary-@value{VERSION}.@var{system}.tar.xz.sig\n"
+"$ wget @value{BASE-URL}/guix-binary-@value{VERSION}.x86_64-linux.tar.xz.sig\n"
+"$ gpg --verify guix-binary-@value{VERSION}.x86_64-linux.tar.xz.sig\n"
 msgstr ""
-"$ wget @value{BASE-URL}/guix-binary-@value{VERSION}.@var{system}.tar.xz.sig\n"
-"$ gpg --verify guix-binary-@value{VERSION}.@var{system}.tar.xz.sig\n"
+"$ wget @value{BASE-URL}/guix-binary-@value{VERSION}.x86_64-linux.tar.xz.sig\n"
+"$ gpg --verify guix-binary-@value{VERSION}.x86_64-linux.tar.xz.sig\n"
 
 #. type: Plain text
-#: doc/guix.texi:574 doc/guix.texi:1943
+#: doc/guix.texi:633 doc/guix.texi:2024
 msgid "If that command fails because you do not have the required public key, then run this command to import it:"
 msgstr "Если это завершается ошибкой, значит у вас нет необходимого публичного ключа, тогда запустите команду для импорта ключа:"
 
 #. type: example
-#: doc/guix.texi:578 doc/guix.texi:1947
+#: doc/guix.texi:637 doc/guix.texi:2028
 #, no-wrap
 msgid ""
 "$ wget @value{OPENPGP-SIGNING-KEY-URL} \\\n"
@@ -3911,56 +4390,58 @@ msgstr ""
 "      -qO - | gpg --import -\n"
 
 #. type: Plain text
-#: doc/guix.texi:582 doc/guix.texi:1951
+#: doc/guix.texi:641 doc/guix.texi:2032
 msgid "and rerun the @code{gpg --verify} command."
 msgstr "и запустите команду @code{gpg --verify}."
 
 #. type: Plain text
-#: doc/guix.texi:585 doc/guix.texi:1954
+#: doc/guix.texi:644 doc/guix.texi:2035
 msgid "Take note that a warning like ``This key is not certified with a trusted signature!'' is normal."
-msgstr ""
+msgstr "Обратите внимание, что предупреждение по типу «Этот ключ не сертифицирован с доверенной подписью!» является нормальным."
 
 #. type: enumerate
-#: doc/guix.texi:591
+#: doc/guix.texi:650
 msgid "Now, you need to become the @code{root} user.  Depending on your distribution, you may have to run @code{su -} or @code{sudo -i}.  As @code{root}, run:"
 msgstr "Теперь вам необходимы привилегии пользователя @code{root}. В зависимости от вашего дистрибутива, можно запустить @code{su -} или @code{sudo -i}.  Под @code{root} запустите:"
 
 #. type: example
-#: doc/guix.texi:597
+#: doc/guix.texi:656
 #, no-wrap
 msgid ""
 "# cd /tmp\n"
 "# tar --warning=no-timestamp -xf \\\n"
-"     /path/to/guix-binary-@value{VERSION}.@var{system}.tar.xz\n"
+"     /path/to/guix-binary-@value{VERSION}.x86_64-linux.tar.xz\n"
 "# mv var/guix /var/ && mv gnu /\n"
 msgstr ""
 "# cd /tmp\n"
 "# tar --warning=no-timestamp -xf \\\n"
-"     /path/to/guix-binary-@value{VERSION}.@var{system}.tar.xz\n"
+"     /path/to/guix-binary-@value{VERSION}.x86_64-linux.tar.xz\n"
 "# mv var/guix /var/ && mv gnu /\n"
 
 #. type: enumerate
-#: doc/guix.texi:602
-msgid "This creates @file{/gnu/store} (@pxref{The Store}) and @file{/var/guix}.  The latter contains a ready-to-use profile for @code{root} (see next step.)"
+#: doc/guix.texi:661
+msgid "This creates @file{/gnu/store} (@pxref{The Store}) and @file{/var/guix}.  The latter contains a ready-to-use profile for @code{root} (see next step)."
 msgstr "Это создаёт @file{/gnu/store} (@pxref{The Store}) и @file{/var/guix}. Последнее содержит готовый к использованию профиль для @code{root} (подробнее в следующем шаге)."
 
 #. type: enumerate
-#: doc/guix.texi:605
+#: doc/guix.texi:664
 msgid "Do @emph{not} unpack the tarball on a working Guix system since that would overwrite its own essential files."
 msgstr "@emph{Не} распаковывайте архив в работающую систему Guix, так как это перезапишет её основные файлы."
 
 #. type: enumerate
-#: doc/guix.texi:615
-msgid "The @code{--warning=no-timestamp} option makes sure GNU@tie{}tar does not emit warnings about ``implausibly old time stamps'' (such warnings were triggered by GNU@tie{}tar 1.26 and older; recent versions are fine.)  They stem from the fact that all the files in the archive have their modification time set to zero (which means January 1st, 1970.)  This is done on purpose to make sure the archive content is independent of its creation time, thus making it reproducible."
+#: doc/guix.texi:674
+#, fuzzy
+#| msgid "The @code{--warning=no-timestamp} option makes sure GNU@tie{}tar does not emit warnings about ``implausibly old time stamps'' (such warnings were triggered by GNU@tie{}tar 1.26 and older; recent versions are fine.)  They stem from the fact that all the files in the archive have their modification time set to zero (which means January 1st, 1970.)  This is done on purpose to make sure the archive content is independent of its creation time, thus making it reproducible."
+msgid "The @option{--warning=no-timestamp} option makes sure GNU@tie{}tar does not emit warnings about ``implausibly old time stamps'' (such warnings were triggered by GNU@tie{}tar 1.26 and older; recent versions are fine).  They stem from the fact that all the files in the archive have their modification time set to zero (which means January 1st, 1970).  This is done on purpose to make sure the archive content is independent of its creation time, thus making it reproducible."
 msgstr "Опция  @code{--warning=no-timestamp} необходима, чтобы удостовериться, что GNU@tie{}tar не вызывает ошибок об \"устаревшей дате\", подобные ошибки появлялись в GNU@tie{}tar 1.26 и старше, в последних версиях всё в порядке). Они возникают из-за того, что архив имеет нулевую дату модификации (что соответствует 1 января 1970). Это сделано с той целью, чтобы удостовериться, что содержимое архива не засисит от даты его создания, что делает его воспроизводимым (повторяемым)."
 
 #. type: enumerate
-#: doc/guix.texi:619
+#: doc/guix.texi:678
 msgid "Make the profile available under @file{~root/.config/guix/current}, which is where @command{guix pull} will install updates (@pxref{Invoking guix pull}):"
 msgstr "Сделайте профиль доступным по пути @file{~root/.config/guix/current}, куда @command{guix pull} будет устанавливать обновления (@pxref{Invoking guix pull}):"
 
 #. type: example
-#: doc/guix.texi:624
+#: doc/guix.texi:683
 #, no-wrap
 msgid ""
 "# mkdir -p ~root/.config/guix\n"
@@ -3972,12 +4453,12 @@ msgstr ""
 "         ~root/.config/guix/current\n"
 
 #. type: enumerate
-#: doc/guix.texi:628
-msgid "Source @file{etc/profile} to augment @code{PATH} and other relevant environment variables:"
-msgstr "Добавьте @file{etc/profile} в @code{PATH} и другие соответствующие переменные окружения:"
+#: doc/guix.texi:687
+msgid "Source @file{etc/profile} to augment @env{PATH} and other relevant environment variables:"
+msgstr "Добавьте @file{etc/profile} в @code{PATH} и другие уместные переменные окружения:"
 
 #. type: example
-#: doc/guix.texi:632
+#: doc/guix.texi:691
 #, no-wrap
 msgid ""
 "# GUIX_PROFILE=\"`echo ~root`/.config/guix/current\" ; \\\n"
@@ -3987,39 +4468,41 @@ msgstr ""
 "  source $GUIX_PROFILE/etc/profile\n"
 
 #. type: enumerate
-#: doc/guix.texi:637
+#: doc/guix.texi:696
 msgid "Create the group and user accounts for build users as explained below (@pxref{Build Environment Setup})."
 msgstr "Создайте группу и пользовательские учётные записи, как это обозначено в (@pxref{Build Environment Setup})."
 
 #. type: enumerate
-#: doc/guix.texi:640
+#: doc/guix.texi:699
 msgid "Run the daemon, and set it to automatically start on boot."
 msgstr "Запустите демон и сделайте добавьте его в автоззагрузку после старта."
 
 #. type: enumerate
-#: doc/guix.texi:643
+#: doc/guix.texi:702
 msgid "If your host distro uses the systemd init system, this can be achieved with these commands:"
 msgstr "Если ваш дистрибутив использует систему инициализации systemd, этого можно добиться следующими командами:"
 
 #. type: example
-#: doc/guix.texi:655
+#: doc/guix.texi:715
 #, no-wrap
 msgid ""
-"# cp ~root/.config/guix/current/lib/systemd/system/guix-daemon.service \\\n"
+"# cp ~root/.config/guix/current/lib/systemd/system/gnu-store.mount \\\n"
+"     ~root/.config/guix/current/lib/systemd/system/guix-daemon.service \\\n"
 "     /etc/systemd/system/\n"
-"# systemctl start guix-daemon && systemctl enable guix-daemon\n"
+"# systemctl enable --now gnu-store.mount guix-daemon\n"
 msgstr ""
-"# cp ~root/.config/guix/current/lib/systemd/system/guix-daemon.service \\\n"
-"     /etc/systemd/system/\n"
-"# systemctl start guix-daemon && systemctl enable guix-daemon\n"
+"# cp ~root/.config/guix/current/lib/systemd/system/gnu-store.mount \\\n"
+"     ~root/.config/guix/current/lib/systemd/system/guix-daemon.service \\\n"
+"    /etc/systemd/system/\n"
+"# systemctl enable --now gnu-store.mount guix-daemon\n"
 
 #. type: itemize
-#: doc/guix.texi:658 doc/guix.texi:10448
+#: doc/guix.texi:718 doc/guix.texi:12059
 msgid "If your host distro uses the Upstart init system:"
 msgstr "Если ваш дистрибутив использует систему инициализации Upstart:"
 
 #. type: example
-#: doc/guix.texi:664
+#: doc/guix.texi:724
 #, no-wrap
 msgid ""
 "# initctl reload-configuration\n"
@@ -4033,12 +4516,12 @@ msgstr ""
 "# start guix-daemon\n"
 
 #. type: enumerate
-#: doc/guix.texi:667
+#: doc/guix.texi:727
 msgid "Otherwise, you can still start the daemon manually with:"
 msgstr "Или можно запускать демон вручную так:"
 
 #. type: example
-#: doc/guix.texi:671
+#: doc/guix.texi:731
 #, no-wrap
 msgid ""
 "# ~root/.config/guix/current/bin/guix-daemon \\\n"
@@ -4048,12 +4531,12 @@ msgstr ""
 "       --build-users-group=guixbuild\n"
 
 #. type: enumerate
-#: doc/guix.texi:676
+#: doc/guix.texi:736
 msgid "Make the @command{guix} command available to other users on the machine, for instance with:"
 msgstr "Сделайте команду @command{guix} доступной для других пользователей машины, например, так:"
 
 #. type: example
-#: doc/guix.texi:681
+#: doc/guix.texi:741
 #, no-wrap
 msgid ""
 "# mkdir -p /usr/local/bin\n"
@@ -4065,12 +4548,12 @@ msgstr ""
 "# ln -s /var/guix/profiles/per-user/root/current-guix/bin/guix\n"
 
 #. type: enumerate
-#: doc/guix.texi:685
+#: doc/guix.texi:745
 msgid "It is also a good idea to make the Info version of this manual available there:"
 msgstr "Хорошо также предоставить доступ к Info-версии руководства так:"
 
 #. type: example
-#: doc/guix.texi:691
+#: doc/guix.texi:751
 #, no-wrap
 msgid ""
 "# mkdir -p /usr/local/share/info\n"
@@ -4084,23 +4567,25 @@ msgstr ""
 "  do ln -s $i ; done\n"
 
 #. type: enumerate
-#: doc/guix.texi:697
-msgid "That way, assuming @file{/usr/local/share/info} is in the search path, running @command{info guix} will open this manual (@pxref{Other Info Directories,,, texinfo, GNU Texinfo}, for more details on changing the Info search path.)"
+#: doc/guix.texi:757
+#, fuzzy
+#| msgid "That way, assuming @file{/usr/local/share/info} is in the search path, running @command{info guix} will open this manual (@pxref{Other Info Directories,,, texinfo, GNU Texinfo}, for more details on changing the Info search path.)"
+msgid "That way, assuming @file{/usr/local/share/info} is in the search path, running @command{info guix} will open this manual (@pxref{Other Info Directories,,, texinfo, GNU Texinfo}, for more details on changing the Info search path)."
 msgstr "Это добавляет @file{/usr/local/share/info} в поиск, запуск @command{info guix} откроет это руководство, см. (@pxref{Other Info Directories,,, texinfo, GNU Texinfo} для подробной информации об изменении путей поиска Info). "
 
 #. type: cindex
-#: doc/guix.texi:699 doc/guix.texi:3269 doc/guix.texi:12760
+#: doc/guix.texi:759 doc/guix.texi:3596 doc/guix.texi:14569
 #, no-wrap
 msgid "substitutes, authorization thereof"
 msgstr "авторизация, подстановок"
 
 #. type: enumerate
-#: doc/guix.texi:702
+#: doc/guix.texi:762
 msgid "To use substitutes from @code{@value{SUBSTITUTE-SERVER}} or one of its mirrors (@pxref{Substitutes}), authorize them:"
 msgstr "Чтобы использовать подстановки из @code{@value{SUBSTITUTE-SERVER}} или из одного из зеркал (@pxref{Substitutes}), авторизуйте их:"
 
 #. type: example
-#: doc/guix.texi:706
+#: doc/guix.texi:766
 #, no-wrap
 msgid ""
 "# guix archive --authorize < \\\n"
@@ -4110,44 +4595,44 @@ msgstr ""
 "     ~root/.config/guix/current/share/guix/@value{SUBSTITUTE-SERVER}.pub\n"
 
 #. type: enumerate
-#: doc/guix.texi:711
+#: doc/guix.texi:771
 msgid "Each user may need to perform a few additional steps to make their Guix environment ready for use, @pxref{Application Setup}."
 msgstr "Каждый пользователь, возможно, должен выполнить дополнительные шаги, чтобы сделать их окружение Guix готовым к использованию @pxref{Application Setup}."
 
 #. type: Plain text
-#: doc/guix.texi:714
+#: doc/guix.texi:774
 msgid "Voilà, the installation is complete!"
 msgstr "Вуаля! Установка завершена!"
 
 #. type: Plain text
-#: doc/guix.texi:717
+#: doc/guix.texi:777
 msgid "You can confirm that Guix is working by installing a sample package into the root profile:"
 msgstr "Вы можете проверить, что Guix работает, установив тестовый пакет для профиля root:"
 
 #. type: example
-#: doc/guix.texi:720
+#: doc/guix.texi:780
 #, no-wrap
 msgid "# guix install hello\n"
 msgstr "# guix install hello\n"
 
 #. type: Plain text
-#: doc/guix.texi:724
+#: doc/guix.texi:784
 msgid "The binary installation tarball can be (re)produced and verified simply by running the following command in the Guix source tree:"
 msgstr "Архив для бинарной установки может быть воспроизведён (повторён) и проверен простым запуском следующей команды в дереве исходников Guix:"
 
 #. type: example
-#: doc/guix.texi:727
+#: doc/guix.texi:787
 #, no-wrap
 msgid "make guix-binary.@var{system}.tar.xz\n"
 msgstr "make guix-binary.@var{system}.tar.xz\n"
 
 #. type: Plain text
-#: doc/guix.texi:731
+#: doc/guix.texi:791
 msgid "...@: which, in turn, runs:"
-msgstr "...@, что в свою очередь, выполнит:"
+msgstr "..., что в свою очередь, выполнит:"
 
 #. type: example
-#: doc/guix.texi:735
+#: doc/guix.texi:795
 #, no-wrap
 msgid ""
 "guix pack -s @var{system} --localstatedir \\\n"
@@ -4157,273 +4642,288 @@ msgstr ""
 "  --profile-name=current-guix guix\n"
 
 #. type: Plain text
-#: doc/guix.texi:738
+#: doc/guix.texi:798
 msgid "@xref{Invoking guix pack}, for more info on this handy tool."
 msgstr "@xref{Invoking guix pack} для подробной информации об этом полезном инструменте."
 
 #. type: Plain text
-#: doc/guix.texi:746
+#: doc/guix.texi:806
 msgid "This section lists requirements when building Guix from source.  The build procedure for Guix is the same as for other GNU software, and is not covered here.  Please see the files @file{README} and @file{INSTALL} in the Guix source tree for additional details."
 msgstr "Этот раздел содержит требования для сборки Guix из исходников. Пожалуйста, смотрите файлы @file{README} и @file{INSTALL} в дереве исходников Guix для подробной информации."
 
 #. type: cindex
-#: doc/guix.texi:747
+#: doc/guix.texi:807
 #, no-wrap
 msgid "official website"
 msgstr "официальный веб-сайт"
 
 #. type: Plain text
-#: doc/guix.texi:750
+#: doc/guix.texi:810
 msgid "GNU Guix is available for download from its website at @url{https://www.gnu.org/software/guix/}."
 msgstr "GNU Guix доступен для скачивания на сайте @url{https://www.gnu.org/software/guix/}."
 
 #. type: Plain text
-#: doc/guix.texi:752
+#: doc/guix.texi:812
 msgid "GNU Guix depends on the following packages:"
 msgstr "GNU Guix зависит от следующих пакетов:"
 
 #. type: item
-#: doc/guix.texi:754
+#: doc/guix.texi:814
 #, no-wrap
 msgid "@url{https://gnu.org/software/guile/, GNU Guile}, version 3.0.x or"
 msgstr "@url{https://gnu.org/software/guile/, GNU Guile} версии 3.0.x или"
 
 #. type: itemize
-#: doc/guix.texi:756
+#: doc/guix.texi:816
 msgid "2.2.x;"
 msgstr "2.2.x;"
 
 #. type: item
-#: doc/guix.texi:756
+#: doc/guix.texi:816
 #, no-wrap
 msgid "@url{https://notabug.org/cwebber/guile-gcrypt, Guile-Gcrypt}, version"
 msgstr "@url{https://notabug.org/cwebber/guile-gcrypt, Guile-Gcrypt} версии"
 
 #. type: itemize
-#: doc/guix.texi:758
+#: doc/guix.texi:818
 msgid "0.1.0 or later;"
 msgstr "0.1.0 или более поздней;"
 
 #. type: itemize
-#: doc/guix.texi:762
+#: doc/guix.texi:822
 msgid "@uref{https://gnutls.org/, GnuTLS}, specifically its Guile bindings (@pxref{Guile Preparations, how to install the GnuTLS bindings for Guile,, gnutls-guile, GnuTLS-Guile});"
 msgstr "@uref{https://gnutls.org/, GnuTLS} применимо к привязкам Guile (@pxref{Guile Preparations, how to install the GnuTLS bindings for Guile,, gnutls-guile, GnuTLS-Guile});"
 
 #. type: itemize
-#: doc/guix.texi:765
+#: doc/guix.texi:825
 msgid "@uref{https://notabug.org/guile-sqlite3/guile-sqlite3, Guile-SQLite3}, version 0.1.0 or later;"
 msgstr "@uref{https://notabug.org/guile-sqlite3/guile-sqlite3, Guile-SQLite3} версии 0.1.0 или новее;"
 
+#. type: item
+#: doc/guix.texi:825
+#, no-wrap
+msgid "@uref{https://notabug.org/guile-zlib/guile-zlib, Guile-zlib};"
+msgstr "@uref{https://notabug.org/guile-zlib/guile-zlib, Guile-zlib};"
+
+#. type: item
+#: doc/guix.texi:826
+#, no-wrap
+msgid "@uref{https://notabug.org/guile-lzlib/guile-lzlib, Guile-lzlib};"
+msgstr "@uref{https://notabug.org/guile-lzlib/guile-lzlib, Guile-lzlib};"
+
 #. type: itemize
-#: doc/guix.texi:769
+#: doc/guix.texi:831
 msgid "@uref{https://gitlab.com/guile-git/guile-git, Guile-Git}, from August 2017 or later;"
 msgstr "@uref{https://gitlab.com/guile-git/guile-git, Guile-Git} от августа 2017 или более поздней;"
 
 #. type: item
-#: doc/guix.texi:769
+#: doc/guix.texi:831
 #, no-wrap
-msgid "@uref{https://savannah.nongnu.org/projects/guile-json/, Guile-JSON} 3.x;"
-msgstr "@uref{https://savannah.nongnu.org/projects/guile-json/, Guile-JSON} 3.x;"
+msgid "@uref{https://savannah.nongnu.org/projects/guile-json/, Guile-JSON}"
+msgstr "@uref{https://savannah.nongnu.org/projects/guile-json/, Guile-JSON}"
 
-#. type: item
-#: doc/guix.texi:770
-#, no-wrap
-msgid "@url{https://zlib.net, zlib};"
-msgstr "@url{https://zlib.net, zlib};"
+#. type: itemize
+#: doc/guix.texi:833
+msgid "4.3.0 or later;"
+msgstr "4.3.0 или более поздней;"
 
 #. type: item
-#: doc/guix.texi:771
+#: doc/guix.texi:833
 #, no-wrap
 msgid "@url{https://www.gnu.org/software/make/, GNU Make}."
 msgstr "@url{https://www.gnu.org/software/make/, GNU Make}."
 
 #. type: Plain text
-#: doc/guix.texi:775
+#: doc/guix.texi:837
 msgid "The following dependencies are optional:"
 msgstr "Следующие зависимости необязательны:"
 
 #. type: itemize
-#: doc/guix.texi:783
+#: doc/guix.texi:845
 #, fuzzy
 #| msgid "Support for build offloading (@pxref{Daemon Offload Setup}) and @command{guix copy} (@pxref{Invoking guix copy}) depends on @uref{https://github.com/artyom-poptsov/guile-ssh, Guile-SSH}, version 0.10.2 or later."
-msgid "Support for build offloading (@pxref{Daemon Offload Setup}) and @command{guix copy} (@pxref{Invoking guix copy}) depends on @uref{https://github.com/artyom-poptsov/guile-ssh, Guile-SSH}, version 0.12.0 or later."
+msgid "Support for build offloading (@pxref{Daemon Offload Setup}) and @command{guix copy} (@pxref{Invoking guix copy}) depends on @uref{https://github.com/artyom-poptsov/guile-ssh, Guile-SSH}, version 0.13.0 or later."
 msgstr "Поддержка разгрузки сборки (@pxref{Daemon Offload Setup}) и @command{guix copy} (@pxref{Invoking guix copy}) зависят от @uref{https://github.com/artyom-poptsov/guile-ssh, Guile-SSH} версии 0.10.2 или новее."
 
 #. type: itemize
-#: doc/guix.texi:788
+#: doc/guix.texi:850
 msgid "When @url{https://www.nongnu.org/lzip/lzlib.html, lzlib} is available, lzlib substitutes can be used and @command{guix publish} can compress substitutes with lzlib."
-msgstr ""
+msgstr "Когда библиотека @url{https://www.nongnu.org/lzip/lzlib.html, lzlib} установлена, можно использовать lzlib substitutes и @command{guix publish} может сжимать substitutes с помощью lzlib"
 
 #. type: itemize
-#: doc/guix.texi:792
+#: doc/guix.texi:854
 msgid "When @url{http://www.bzip.org, libbz2} is available, @command{guix-daemon} can use it to compress build logs."
 msgstr "Если доступна @url{http://www.bzip.org, libbz2}, @command{guix-daemon} может использовать её для сжатия логов сборки."
 
 #. type: Plain text
-#: doc/guix.texi:796
-msgid "Unless @code{--disable-daemon} was passed to @command{configure}, the following packages are also needed:"
+#: doc/guix.texi:858
+#, fuzzy
+#| msgid "Unless @code{--disable-daemon} was passed to @command{configure}, the following packages are also needed:"
+msgid "Unless @option{--disable-daemon} was passed to @command{configure}, the following packages are also needed:"
 msgstr "Если строка @code{--disable-daemon} не использовалась в @command{configure}, тогда необходимы также следующие пакеты:"
 
 #. type: item
-#: doc/guix.texi:798
+#: doc/guix.texi:860
 #, no-wrap
 msgid "@url{https://gnupg.org/, GNU libgcrypt};"
 msgstr "@url{https://gnupg.org/, GNU libgcrypt};"
 
 #. type: item
-#: doc/guix.texi:799
+#: doc/guix.texi:861
 #, no-wrap
 msgid "@url{https://sqlite.org, SQLite 3};"
 msgstr "@url{https://sqlite.org, SQLite 3};"
 
 #. type: item
-#: doc/guix.texi:800
+#: doc/guix.texi:862
 #, no-wrap
 msgid "@url{https://gcc.gnu.org, GCC's g++}, with support for the"
 msgstr "@url{https://gcc.gnu.org, GCC's g++} с поддержкой"
 
 #. type: itemize
-#: doc/guix.texi:802
+#: doc/guix.texi:864
 msgid "C++11 standard."
 msgstr "стандарта C++11."
 
 #. type: cindex
-#: doc/guix.texi:804
+#: doc/guix.texi:866
 #, no-wrap
 msgid "state directory"
 msgstr "главный каталог"
 
 #. type: Plain text
-#: doc/guix.texi:813
-msgid "When configuring Guix on a system that already has a Guix installation, be sure to specify the same state directory as the existing installation using the @code{--localstatedir} option of the @command{configure} script (@pxref{Directory Variables, @code{localstatedir},, standards, GNU Coding Standards}).  Usually, this @var{localstatedir} option is set to the value @file{/var}.  The @command{configure} script protects against unintended misconfiguration of @var{localstatedir} so you do not inadvertently corrupt your store (@pxref{The Store})."
+#: doc/guix.texi:875
+#, fuzzy
+#| msgid "When configuring Guix on a system that already has a Guix installation, be sure to specify the same state directory as the existing installation using the @code{--localstatedir} option of the @command{configure} script (@pxref{Directory Variables, @code{localstatedir},, standards, GNU Coding Standards}).  Usually, this @var{localstatedir} option is set to the value @file{/var}.  The @command{configure} script protects against unintended misconfiguration of @var{localstatedir} so you do not inadvertently corrupt your store (@pxref{The Store})."
+msgid "When configuring Guix on a system that already has a Guix installation, be sure to specify the same state directory as the existing installation using the @option{--localstatedir} option of the @command{configure} script (@pxref{Directory Variables, @code{localstatedir},, standards, GNU Coding Standards}).  Usually, this @var{localstatedir} option is set to the value @file{/var}.  The @command{configure} script protects against unintended misconfiguration of @var{localstatedir} so you do not inadvertently corrupt your store (@pxref{The Store})."
 msgstr "Если Guix развёртывается в системе, где уже был установлен Guix, необходимо указать главный каталог предыдущей инсталляции, используя параметр @code{--localstatedir} в скрипте @command{configure} (@pxref{Directory Variables, @code{localstatedir},, standards, GNU Coding Standards}). Скрипт @command{configure} защищает от ошибок в конфигурации @var{localstatedir}, предотвращая непреднамеренное повреждение хранилища (@pxref{The Store})."
 
 #. type: cindex
-#: doc/guix.texi:817
+#: doc/guix.texi:879
 #, no-wrap
 msgid "test suite"
 msgstr "набор тестов"
 
 #. type: Plain text
-#: doc/guix.texi:823
+#: doc/guix.texi:885
 msgid "After a successful @command{configure} and @code{make} run, it is a good idea to run the test suite.  It can help catch issues with the setup or environment, or bugs in Guix itself---and really, reporting test failures is a good way to help improve the software.  To run the test suite, type:"
 msgstr "После успешного завершения @command{configure} и @code{make} хорошо бы выполнить набор тестов. Это поможет выявить проблемы установки или в окружении, как и баги самого Guix (на самом деле, отчёты об ошибках тестов помогают улучшить ПО). Чтобы запустить тесты, напечатайте:"
 
 #. type: example
-#: doc/guix.texi:826
+#: doc/guix.texi:888
 #, no-wrap
 msgid "make check\n"
 msgstr "make check\n"
 
 #. type: Plain text
-#: doc/guix.texi:833
+#: doc/guix.texi:895
 msgid "Test cases can run in parallel: you can use the @code{-j} option of GNU@tie{}make to speed things up.  The first run may take a few minutes on a recent machine; subsequent runs will be faster because the store that is created for test purposes will already have various things in cache."
 msgstr "Тесты можно выполнять параллельно при включении опции @code{-j} в GNU@tie{}make, так быстрее. Первый запуск может длиться несколько минут на топовой машине, последующие запуски будут быстрее, так как склад, который создаётся для тестов, уже закеширует различные вещи."
 
 #. type: Plain text
-#: doc/guix.texi:836
+#: doc/guix.texi:898
 msgid "It is also possible to run a subset of the tests by defining the @code{TESTS} makefile variable as in this example:"
 msgstr "Также можно запустить отдельные наборы тестов, используя переменную @code{TESTS}, как в примере:"
 
 #. type: example
-#: doc/guix.texi:839
+#: doc/guix.texi:901
 #, no-wrap
 msgid "make check TESTS=\"tests/store.scm tests/cpio.scm\"\n"
 msgstr "make check TESTS=\"tests/store.scm tests/cpio.scm\"\n"
 
 #. type: Plain text
-#: doc/guix.texi:844
+#: doc/guix.texi:906
 msgid "By default, tests results are displayed at a file level.  In order to see the details of every individual test cases, it is possible to define the @code{SCM_LOG_DRIVER_FLAGS} makefile variable as in this example:"
 msgstr "По умолчанию результаты тестов выводятся в файл. Чтобы просмотреть результаты каждого отдельного теста, нужно задать переменную makifile @code{SCM_LOG_DRIVER_FLAGS}, как в примере:"
 
 #. type: example
-#: doc/guix.texi:847
+#: doc/guix.texi:909
 #, no-wrap
 msgid "make check TESTS=\"tests/base64.scm\" SCM_LOG_DRIVER_FLAGS=\"--brief=no\"\n"
 msgstr "make check TESTS=\"tests/base64.scm\" SCM_LOG_DRIVER_FLAGS=\"--brief=no\"\n"
 
 #. type: Plain text
-#: doc/guix.texi:853
+#: doc/guix.texi:915
 msgid "Upon failure, please email @email{bug-guix@@gnu.org} and attach the @file{test-suite.log} file.  Please specify the Guix version being used as well as version numbers of the dependencies (@pxref{Requirements}) in your message."
 msgstr "В случае ошибки, пожалуйста, отправьте сообщение на  @email{bug-guix@@gnu.org} и присоедините файл @file{test-suite.log}.  Пожалуйста, обозначьте в сообщении используемую версию Guix, а также номера версий зависимостей (@pxref{Requirements})."
 
 #. type: Plain text
-#: doc/guix.texi:857
+#: doc/guix.texi:919
 msgid "Guix also comes with a whole-system test suite that tests complete Guix System instances.  It can only run on systems where Guix is already installed, using:"
 msgstr "Guix также идёт с набором тестов для всей системы, который проверяет нстранцию системы Guix. Их можно запустить только в системах, где Guix уже установлен, так:"
 
 #. type: example
-#: doc/guix.texi:860
+#: doc/guix.texi:922
 #, no-wrap
 msgid "make check-system\n"
 msgstr "make check-system\n"
 
 #. type: Plain text
-#: doc/guix.texi:864
+#: doc/guix.texi:926
 msgid "or, again, by defining @code{TESTS} to select a subset of tests to run:"
 msgstr "или, опять же, задав @code{TESTS}, чтобы выбрать список тестов для запуска:"
 
 #. type: example
-#: doc/guix.texi:867
+#: doc/guix.texi:929
 #, no-wrap
 msgid "make check-system TESTS=\"basic mcron\"\n"
 msgstr "make check-system TESTS=\"basic mcron\"\n"
 
 #. type: Plain text
-#: doc/guix.texi:875
+#: doc/guix.texi:937
 msgid "These system tests are defined in the @code{(gnu tests @dots{})} modules.  They work by running the operating systems under test with lightweight instrumentation in a virtual machine (VM).  They can be computationally intensive or rather cheap, depending on whether substitutes are available for their dependencies (@pxref{Substitutes}).  Some of them require a lot of storage space to hold VM images."
 msgstr "Тесты системы определены в модулях @code{(gnu tests @dots{})}. При работе они запускают операционную систему под легковесным инструментарием в виртуальной машине. Они могут выполнять тяжёлые вычисления или довольно простые в зависимости от наличия подстановок их зависимостей (@pxref{Substitutes}). Некоторые из них требуют много места для работы с образами виртуальной машины."
 
 #. type: Plain text
-#: doc/guix.texi:878
+#: doc/guix.texi:940
 msgid "Again in case of test failures, please send @email{bug-guix@@gnu.org} all the details."
 msgstr "Конечно, в случае неудачных тестов, пожалуйста, направьте детали на @email{bug-guix@@gnu.org}."
 
 #. type: cindex
-#: doc/guix.texi:882
+#: doc/guix.texi:944
 #, no-wrap
 msgid "daemon"
 msgstr "демон"
 
 #. type: Plain text
-#: doc/guix.texi:890
+#: doc/guix.texi:952
 msgid "Operations such as building a package or running the garbage collector are all performed by a specialized process, the @dfn{build daemon}, on behalf of clients.  Only the daemon may access the store and its associated database.  Thus, any operation that manipulates the store goes through the daemon.  For instance, command-line tools such as @command{guix package} and @command{guix build} communicate with the daemon (@i{via} remote procedure calls) to instruct it what to do."
 msgstr "Такие операции, как сборка пакета или запуск сборщика мусора, выполняются запуском специальных процесса --- @dfn{демона сборки} --- по запросам клиентов. Только демон имеет доступ к складу и его базе данных. Так что операции управления складом выполняются с помощью демона. Например, инструменты командной строки, как @command{guix package} и @command{guix build}, обычно взаимодействуют с демоном @i{через} удалённый вызов процедур (RPC) и сообщают, что необходимо сделать."
 
 #. type: Plain text
-#: doc/guix.texi:894
+#: doc/guix.texi:956
 msgid "The following sections explain how to prepare the build daemon's environment.  See also @ref{Substitutes}, for information on how to allow the daemon to download pre-built binaries."
 msgstr "Следующие разделы поясняют как настроить окружение демона сборки. Смотрите также @ref{Substitutes} для подробной инсорации о том, как разрешить демону скачивать собранные бинарники."
 
 #. type: cindex
-#: doc/guix.texi:904 doc/guix.texi:1327
+#: doc/guix.texi:966 doc/guix.texi:1423
 #, no-wrap
 msgid "build environment"
 msgstr "окружение сборки"
 
 #. type: Plain text
-#: doc/guix.texi:912
+#: doc/guix.texi:974
 msgid "In a standard multi-user setup, Guix and its daemon---the @command{guix-daemon} program---are installed by the system administrator; @file{/gnu/store} is owned by @code{root} and @command{guix-daemon} runs as @code{root}.  Unprivileged users may use Guix tools to build packages or otherwise access the store, and the daemon will do it on their behalf, ensuring that the store is kept in a consistent state, and allowing built packages to be shared among users."
 msgstr "В случае стандартной многопользовательской установки Guix и его демон (программа @command{guix-daemon}) установливаются системным администратором; @file{/gnu/store} принадлежит @code{root}, и @command{guix-daemon} запущен от @code{root}. Непривилегированные пользователи могут пользоваться инструментами Guix, чтобы собирать пакеты или получить доступ к складу с какой-либо целью, и демон выполнит это по их запросу, убедившись, что склад находится в должном состоянии, и разрешив сборку пакетов и разделение их между пользователями."
 
 #. type: cindex
-#: doc/guix.texi:913
+#: doc/guix.texi:975
 #, no-wrap
 msgid "build users"
 msgstr "пользователи сборки"
 
 #. type: Plain text
-#: doc/guix.texi:924
+#: doc/guix.texi:986
 msgid "When @command{guix-daemon} runs as @code{root}, you may not want package build processes themselves to run as @code{root} too, for obvious security reasons.  To avoid that, a special pool of @dfn{build users} should be created for use by build processes started by the daemon.  These build users need not have a shell and a home directory: they will just be used when the daemon drops @code{root} privileges in build processes.  Having several such users allows the daemon to launch distinct build processes under separate UIDs, which guarantees that they do not interfere with each other---an essential feature since builds are regarded as pure functions (@pxref{Introduction})."
 msgstr "Когда @command{guix-daemon} запущен от @code{root}, возможно, из соображений безопасности вы не примете того, что процессы сборки пакетов тоже выполняются от @code{root}. Чтобы избежать этого, необходимо создать специальных @dfn{пользователей для сборки}. Ими будет пользоваться процесс сборки, запускаемый демоном. Эти пользователи сборки не должны иметь оболочки и домашней директории --- они просто будут использоваться, когда демон сбрасывает привилегии @code{root} в процессе сборки. Наличие нескольких таких пользователей позволит демону запускать отдельные процессы сборки  под отдельными UID, что гарантирует, что они не будут помехой друг другу --- важная особенность, учитывая, что сборка рассматривается как чистая функция (@pxref{Introduction})."
 
 #. type: Plain text
-#: doc/guix.texi:927
+#: doc/guix.texi:989
 msgid "On a GNU/Linux system, a build user pool may be created like this (using Bash syntax and the @code{shadow} commands):"
 msgstr "В системе GNU/Linux набор пользователей для сборки может быть создан так (используя синтаксис команды Bash @code{shadow}):"
 
 #. type: example
-#: doc/guix.texi:939
+#: doc/guix.texi:1001
 #, no-wrap
 msgid ""
 "# groupadd --system guixbuild\n"
@@ -4445,118 +4945,152 @@ msgstr ""
 "  done\n"
 
 #. type: Plain text
-#: doc/guix.texi:949
+#: doc/guix.texi:1011
 msgid "The number of build users determines how many build jobs may run in parallel, as specified by the @option{--max-jobs} option (@pxref{Invoking guix-daemon, @option{--max-jobs}}).  To use @command{guix system vm} and related commands, you may need to add the build users to the @code{kvm} group so they can access @file{/dev/kvm}, using @code{-G guixbuild,kvm} instead of @code{-G guixbuild} (@pxref{Invoking guix system})."
 msgstr "Число пользователей для сборки определяет, сколько задач сборки может быть запущено параллельно. Это задаётся опцией @option{--max-jobs} (@pxref{Invoking guix-daemon, @option{--max-jobs}}). Чтобы использовать @command{guix system vm} и подобные, вам потребуется добавить пользователей для сборки в группу @code{kvm}, так чтобы они имели доступ к @file{/dev/kvm}, используя @code{-G guixbuild,kvm} вместо @code{-G guixbuild} (@pxref{Invoking guix system})."
 
 #. type: Plain text
-#: doc/guix.texi:958
+#: doc/guix.texi:1020
 msgid "The @code{guix-daemon} program may then be run as @code{root} with the following command@footnote{If your machine uses the systemd init system, dropping the @file{@var{prefix}/lib/systemd/system/guix-daemon.service} file in @file{/etc/systemd/system} will ensure that @command{guix-daemon} is automatically started.  Similarly, if your machine uses the Upstart init system, drop the @file{@var{prefix}/lib/upstart/system/guix-daemon.conf} file in @file{/etc/init}.}:"
 msgstr "Программа @code{guix-daemon} тогда может запускаться от @code{root} следующим образом@footnote{Если ваша машина использует систему инициализации systemd, сбрасывание файла @file{@var{prefix}/lib/systemd/system/guix-daemon.service} в @file{/etc/systemd/system} должно гарантировать, что @command{guix-daemon} запущен автоматически. Также, если ваша машина использует систему инициализации Upstart, нужно сбрасить файл @file{@var{prefix}/lib/upstart/system/guix-daemon.conf} в @file{/etc/init}.}:"
 
 #. type: example
-#: doc/guix.texi:961 doc/guix.texi:1320
+#: doc/guix.texi:1023 doc/guix.texi:1416
 #, no-wrap
 msgid "# guix-daemon --build-users-group=guixbuild\n"
 msgstr "# guix-daemon --build-users-group=guixbuild\n"
 
 #. type: cindex
-#: doc/guix.texi:963 doc/guix.texi:1325
+#: doc/guix.texi:1025 doc/guix.texi:1421
 #, no-wrap
 msgid "chroot"
 msgstr "chroot"
 
 #. type: Plain text
-#: doc/guix.texi:968
+#: doc/guix.texi:1030
 msgid "This way, the daemon starts build processes in a chroot, under one of the @code{guixbuilder} users.  On GNU/Linux, by default, the chroot environment contains nothing but:"
 msgstr "Так демон стартует процессы сборки в chroot под одним из пользователей группы @code{guixbuilder}. В GNU/Linux по умолчанию окружение chroot содержит только следующее:"
 
 #. type: itemize
-#: doc/guix.texi:976
+#: doc/guix.texi:1038
 msgid "a minimal @code{/dev} directory, created mostly independently from the host @code{/dev}@footnote{``Mostly'', because while the set of files that appear in the chroot's @code{/dev} is fixed, most of these files can only be created if the host has them.};"
 msgstr "минимальный состав директории @code{/dev}, созданной максимально независимо от исходной @code{/dev}@footnote{\"Максимально\", потому что файлы, доступные в chroot под @code{/dev}, могут быть созданы только, если машина их имеет};"
 
 #. type: itemize
-#: doc/guix.texi:980
+#: doc/guix.texi:1042
 msgid "the @code{/proc} directory; it only shows the processes of the container since a separate PID name space is used;"
 msgstr "директория @code{/proc}; она показывает только процессы контейнера, так как используется отдельное пространство имён процессов PID;"
 
 #. type: itemize
-#: doc/guix.texi:984
+#: doc/guix.texi:1046
 msgid "@file{/etc/passwd} with an entry for the current user and an entry for user @file{nobody};"
 msgstr "@file{/etc/passwd} с записью о текущем пользователе и пользователе @file{nobody};"
 
 #. type: itemize
-#: doc/guix.texi:987
+#: doc/guix.texi:1049
 msgid "@file{/etc/group} with an entry for the user's group;"
 msgstr "@file{/etc/group} с записью о группе пользователя;"
 
 #. type: itemize
-#: doc/guix.texi:991
+#: doc/guix.texi:1053
 msgid "@file{/etc/hosts} with an entry that maps @code{localhost} to @code{127.0.0.1};"
 msgstr "@file{/etc/hosts} с записью, которая адресует @code{localhost} на @code{127.0.0.1};"
 
 #. type: itemize
-#: doc/guix.texi:994
+#: doc/guix.texi:1056
 msgid "a writable @file{/tmp} directory."
 msgstr "директория @file{/tmp}, доступная для записи."
 
 #. type: Plain text
-#: doc/guix.texi:1003
-msgid "You can influence the directory where the daemon stores build trees @i{via} the @code{TMPDIR} environment variable.  However, the build tree within the chroot is always called @file{/tmp/guix-build-@var{name}.drv-0}, where @var{name} is the derivation name---e.g., @code{coreutils-8.24}.  This way, the value of @code{TMPDIR} does not leak inside build environments, which avoids discrepancies in cases where build processes capture the name of their build tree."
+#: doc/guix.texi:1065
+#, fuzzy
+#| msgid "You can influence the directory where the daemon stores build trees @i{via} the @code{TMPDIR} environment variable.  However, the build tree within the chroot is always called @file{/tmp/guix-build-@var{name}.drv-0}, where @var{name} is the derivation name---e.g., @code{coreutils-8.24}.  This way, the value of @code{TMPDIR} does not leak inside build environments, which avoids discrepancies in cases where build processes capture the name of their build tree."
+msgid "You can influence the directory where the daemon stores build trees @i{via} the @env{TMPDIR} environment variable.  However, the build tree within the chroot is always called @file{/tmp/guix-build-@var{name}.drv-0}, where @var{name} is the derivation name---e.g., @code{coreutils-8.24}.  This way, the value of @env{TMPDIR} does not leak inside build environments, which avoids discrepancies in cases where build processes capture the name of their build tree."
 msgstr "Можно указать директорию, в которую демон сохраняет деревья сборки @i{через} переменную окружения @code{TMPDIR}. Однако дерево сборки внутри chroot всегда называется @file{/tmp/guix-build-@var{name}.drv-0}, где @var{name} - это имя деривации, то есть, например, @code{coreutils-8.24}. Так значение @code{TMPDIR} не проникает внутрь окружения сборки, что предотвращает расхождения и случаях, когда процессы сборки имеют иные имена их деревьев сборки."
 
 #. type: vindex
-#: doc/guix.texi:1004 doc/guix.texi:3367
+#: doc/guix.texi:1066 doc/guix.texi:3694
 #, no-wrap
 msgid "http_proxy"
 msgstr "http_proxy"
 
+#. type: vindex
+#: doc/guix.texi:1067 doc/guix.texi:3695
+#, no-wrap
+msgid "https_proxy"
+msgstr "https_proxy"
+
 #. type: Plain text
-#: doc/guix.texi:1008
-msgid "The daemon also honors the @code{http_proxy} environment variable for HTTP downloads it performs, be it for fixed-output derivations (@pxref{Derivations}) or for substitutes (@pxref{Substitutes})."
+#: doc/guix.texi:1072
+#, fuzzy
+#| msgid "The daemon also honors the @code{http_proxy} environment variable for HTTP downloads it performs, be it for fixed-output derivations (@pxref{Derivations}) or for substitutes (@pxref{Substitutes})."
+msgid "The daemon also honors the @env{http_proxy} and @env{https_proxy} environment variables for HTTP and HTTPS downloads it performs, be it for fixed-output derivations (@pxref{Derivations}) or for substitutes (@pxref{Substitutes})."
 msgstr "Демон также уважаем переменную окружения @code{http_proxy}, когда выполняет скачивание по HTTP как для дериваций с фиксированным результатом (@pxref{Derivations}), так и для подстановок (@pxref{Substitutes})."
 
 #. type: Plain text
-#: doc/guix.texi:1016
-msgid "If you are installing Guix as an unprivileged user, it is still possible to run @command{guix-daemon} provided you pass @code{--disable-chroot}.  However, build processes will not be isolated from one another, and not from the rest of the system.  Thus, build processes may interfere with each other, and may access programs, libraries, and other files available on the system---making it much harder to view them as @emph{pure} functions."
+#: doc/guix.texi:1080
+#, fuzzy
+#| msgid "If you are installing Guix as an unprivileged user, it is still possible to run @command{guix-daemon} provided you pass @code{--disable-chroot}.  However, build processes will not be isolated from one another, and not from the rest of the system.  Thus, build processes may interfere with each other, and may access programs, libraries, and other files available on the system---making it much harder to view them as @emph{pure} functions."
+msgid "If you are installing Guix as an unprivileged user, it is still possible to run @command{guix-daemon} provided you pass @option{--disable-chroot}.  However, build processes will not be isolated from one another, and not from the rest of the system.  Thus, build processes may interfere with each other, and may access programs, libraries, and other files available on the system---making it much harder to view them as @emph{pure} functions."
 msgstr "Если вы устанавливаете Guix как непривилегированный пользователь, всё ещё возможно запустить @command{guix-daemon} с указанием @code{--disable-chroot}. Однако процессы сборки не будут изолированы один от другого, а также от остальной системы. Так процессы сборки смогут внести помехи в работу друг друга, смогут получить доступ к программам, библиотекам и другим файлам, доступным в системе, что конечно, делает затруднительным рассмотрение сборки как @emph{чистой} функции."
 
 #. type: subsection
-#: doc/guix.texi:1019
+#: doc/guix.texi:1083
 #, no-wrap
 msgid "Using the Offload Facility"
 msgstr "Использование функционала разгрузки"
 
 #. type: cindex
-#: doc/guix.texi:1021 doc/guix.texi:1383
+#: doc/guix.texi:1085 doc/guix.texi:1479
 #, no-wrap
 msgid "offloading"
 msgstr "разгрузка"
 
 #. type: cindex
-#: doc/guix.texi:1022
+#: doc/guix.texi:1086
 #, no-wrap
 msgid "build hook"
 msgstr "хук сборки"
 
 #. type: Plain text
-#: doc/guix.texi:1036
-msgid "When desired, the build daemon can @dfn{offload} derivation builds to other machines running Guix, using the @code{offload} @dfn{build hook}@footnote{This feature is available only when @uref{https://github.com/artyom-poptsov/guile-ssh, Guile-SSH} is present.}.  When that feature is enabled, a list of user-specified build machines is read from @file{/etc/guix/machines.scm}; every time a build is requested, for instance via @code{guix build}, the daemon attempts to offload it to one of the machines that satisfy the constraints of the derivation, in particular its system type---e.g., @file{x86_64-linux}.  Missing prerequisites for the build are copied over SSH to the target machine, which then proceeds with the build; upon success the output(s) of the build are copied back to the initial machine."
+#: doc/guix.texi:1105
+#, fuzzy
+#| msgid "When desired, the build daemon can @dfn{offload} derivation builds to other machines running Guix, using the @code{offload} @dfn{build hook}@footnote{This feature is available only when @uref{https://github.com/artyom-poptsov/guile-ssh, Guile-SSH} is present.}.  When that feature is enabled, a list of user-specified build machines is read from @file{/etc/guix/machines.scm}; every time a build is requested, for instance via @code{guix build}, the daemon attempts to offload it to one of the machines that satisfy the constraints of the derivation, in particular its system type---e.g., @file{x86_64-linux}.  Missing prerequisites for the build are copied over SSH to the target machine, which then proceeds with the build; upon success the output(s) of the build are copied back to the initial machine."
+msgid "When desired, the build daemon can @dfn{offload} derivation builds to other machines running Guix, using the @code{offload} @dfn{build hook}@footnote{This feature is available only when @uref{https://github.com/artyom-poptsov/guile-ssh, Guile-SSH} is present.}.  When that feature is enabled, a list of user-specified build machines is read from @file{/etc/guix/machines.scm}; every time a build is requested, for instance via @code{guix build}, the daemon attempts to offload it to one of the machines that satisfy the constraints of the derivation, in particular its system types---e.g., @code{x86_64-linux}.  A single machine can have multiple system types, either because its architecture natively supports it, via emulation (@pxref{transparent-emulation-qemu, Transparent Emulation with QEMU}), or both.  Missing prerequisites for the build are copied over SSH to the target machine, which then proceeds with the build; upon success the output(s) of the build are copied back to the initial machine.  The offload facility comes with a basic scheduler that attempts to select the best machine.  The best machine is chosen among the available machines based on criteria such as:"
 msgstr "При необходимости, демон сборки может @dfn{разгружать} сборку деривации на другие машины, работающие с Guix, используя @code{разгрузочный} @dfn{хук сборки}@footnote{Эта функция доступна только при наличии @uref{https://github.com/artyom-poptsov/guile-ssh, Guile-SSH}.}. Когда эта функция включена, тогда считывается список машин для сборки, заданный пользователем в файле @file{/etc/guix/machines.scm}; при каждом запросе сборки командой @code{guix build} демон предпринимает попытку разгрузить сборку на одну из машин, удовлетворяющих требованиям деривации, в частноси, требованиям к типу системы, т.е. @file{x86_64-linux}. Отсутствующий набор данных и пакетов, необходимы для сборки, копируется через SSH на целевую машину, на которой затем выполняется процесс сборки. После успешного завершения результат(ы) сборки копируются обратно на машину, инициировавшую сборку."
 
+#. type: enumerate
+#: doc/guix.texi:1111
+msgid "The availability of a build slot.  A build machine can have as many build slots (connections) as the value of the @code{parallel-builds} field of its @code{build-machine} object."
+msgstr "Наличие слота для сборки.  Машина для сборки может иметь столько слотов для сборки (соединений), сколько указано в значении @code{parallel-builds} определения объекта @code{build-machine}."
+
+#. type: enumerate
+#: doc/guix.texi:1115
+msgid "Its relative speed, as defined via the @code{speed} field of its @code{build-machine} object."
+msgstr "Ее относительная скорость, указанная через значение @code{speed} определения объекта @code{build-machine}."
+
+#. type: enumerate
+#: doc/guix.texi:1120
+msgid "Its load.  The normalized machine load must be lower than a threshold value, configurable via the @code{overload-threshold} field of its @code{build-machine} object."
+msgstr "Ее нагрузка.  Нормализованная нагрузка на машину должна быть ниже порогового значения, которое можно настроить с помощью поля @code{overload-threshold} объекта @code{build-machine}."
+
+#. type: enumerate
+#: doc/guix.texi:1123
+msgid "Disk space availability.  More than a 100 MiB must be available."
+msgstr "Доступность дискового пространства.  Должно быть доступно более 100 МБ."
+
 #. type: Plain text
-#: doc/guix.texi:1038
+#: doc/guix.texi:1126
 msgid "The @file{/etc/guix/machines.scm} file typically looks like this:"
 msgstr "Файл @file{/etc/guix/machines.scm} обычно выглядит так:"
 
 #. type: lisp
-#: doc/guix.texi:1046
+#: doc/guix.texi:1134
 #, no-wrap
 msgid ""
 "(list (build-machine\n"
 "        (name \"eightysix.example.org\")\n"
-"        (system \"x86_64-linux\")\n"
+"        (systems (list \"x86_64-linux\" \"i686-linux\"))\n"
 "        (host-key \"ssh-ed25519 AAAAC3Nza@dots{}\")\n"
 "        (user \"bob\")\n"
 "        (speed 2.))     ;incredibly fast!\n"
@@ -4564,19 +5098,18 @@ msgid ""
 msgstr ""
 "(list (build-machine\n"
 "        (name \"eightysix.example.org\")\n"
-"        (system \"x86_64-linux\")\n"
+"        (systems (list \"x86_64-linux\" \"i686-linux\"))\n"
 "        (host-key \"ssh-ed25519 AAAAC3Nza@dots{}\")\n"
 "        (user \"bob\")\n"
 "        (speed 2.))     ;incredibly fast!\n"
-"\n"
 
 #. type: lisp
-#: doc/guix.texi:1055
+#: doc/guix.texi:1143
 #, no-wrap
 msgid ""
 "      (build-machine\n"
-"        (name \"meeps.example.org\")\n"
-"        (system \"mips64el-linux\")\n"
+"        (name \"armeight.example.org\")\n"
+"        (systems (list \"aarch64-linux\"))\n"
 "        (host-key \"ssh-rsa AAAAB3Nza@dots{}\")\n"
 "        (user \"alice\")\n"
 "        (private-key\n"
@@ -4584,8 +5117,8 @@ msgid ""
 "                        \"/.ssh/identity-for-guix\"))))\n"
 msgstr ""
 "      (build-machine\n"
-"        (name \"meeps.example.org\")\n"
-"        (system \"mips64el-linux\")\n"
+"        (name \"armeight.example.org\")\n"
+"        (systems (list \"aarch64-linux\"))\n"
 "        (host-key \"ssh-rsa AAAAB3Nza@dots{}\")\n"
 "        (user \"alice\")\n"
 "        (private-key\n"
@@ -4593,93 +5126,97 @@ msgstr ""
 "                        \"/.ssh/identity-for-guix\"))))\n"
 
 #. type: Plain text
-#: doc/guix.texi:1061
-msgid "In the example above we specify a list of two build machines, one for the @code{x86_64} architecture and one for the @code{mips64el} architecture."
+#: doc/guix.texi:1149
+#, fuzzy
+#| msgid "In the example above we specify a list of two build machines, one for the @code{x86_64} architecture and one for the @code{mips64el} architecture."
+msgid "In the example above we specify a list of two build machines, one for the @code{x86_64} and @code{i686} architectures and one for the @code{aarch64} architecture."
 msgstr "В примере выше мы обозначили список, состоящий из двух машин: одна --- для архитектуры @code{x86_64}, а другая --- для архитектуры @code{mips64el}."
 
 #. type: Plain text
-#: doc/guix.texi:1070
+#: doc/guix.texi:1158
 msgid "In fact, this file is---not surprisingly!---a Scheme file that is evaluated when the @code{offload} hook is started.  Its return value must be a list of @code{build-machine} objects.  While this example shows a fixed list of build machines, one could imagine, say, using DNS-SD to return a list of potential build machines discovered in the local network (@pxref{Introduction, Guile-Avahi,, guile-avahi, Using Avahi in Guile Scheme Programs}).  The @code{build-machine} data type is detailed below."
 msgstr "По факту, этот файл, что не удивительно, является файлом Scheme, и он имеет значение, когда запускается @code{хук разгрузки}. Он возвращает объекты класса @code{build-machine}. Приведённый пример показывает фиксированный список машин для сборки, но можно представить, скажем, используя DNS-SD, он может возвращать список потенциальных машин, обнаруженных в локальной сети (@pxref{Introduction, Guile-Avahi,, guile-avahi, Using Avahi in Guile Scheme Programs}). Тип данных @code{build-machine} описан ниже."
 
 #. type: deftp
-#: doc/guix.texi:1071
+#: doc/guix.texi:1159
 #, no-wrap
 msgid "{Data Type} build-machine"
 msgstr "{Тип данных} build-machine"
 
 #. type: deftp
-#: doc/guix.texi:1074
+#: doc/guix.texi:1162
 msgid "This data type represents build machines to which the daemon may offload builds.  The important fields are:"
 msgstr "Этот тип данных представляет машины для сборки, на которые демон может разгружать сборки. Важные поля:"
 
 #. type: item
-#: doc/guix.texi:1077 doc/guix.texi:5712 doc/guix.texi:11761
-#: doc/guix.texi:11843 doc/guix.texi:12073 doc/guix.texi:13868
-#: doc/guix.texi:18886 doc/guix.texi:19471 doc/guix.texi:20082
-#: doc/guix.texi:20412 doc/guix.texi:20453 doc/guix.texi:25674
-#: doc/guix.texi:25691 doc/guix.texi:26085 doc/guix.texi:27665
-#: doc/guix.texi:27923
+#: doc/guix.texi:1165 doc/guix.texi:6453 doc/guix.texi:13556
+#: doc/guix.texi:13650 doc/guix.texi:13880 doc/guix.texi:15744
+#: doc/guix.texi:21106 doc/guix.texi:21691 doc/guix.texi:22303
+#: doc/guix.texi:22655 doc/guix.texi:22696 doc/guix.texi:26728
+#: doc/guix.texi:26748 doc/guix.texi:29117 doc/guix.texi:29134
+#: doc/guix.texi:29622 doc/guix.texi:31326 doc/guix.texi:31602
 #, no-wrap
 msgid "name"
 msgstr "name"
 
 #. type: table
-#: doc/guix.texi:1079
+#: doc/guix.texi:1167
 msgid "The host name of the remote machine."
 msgstr "Имя хоста удалённой машины"
 
-#. type: code{#1}
-#: doc/guix.texi:1080 doc/guix.texi:27171
+#. type: item
+#: doc/guix.texi:1168
 #, no-wrap
-msgid "system"
-msgstr "system"
+msgid "systems"
+msgstr "systems"
 
 #. type: table
-#: doc/guix.texi:1082
-msgid "The system type of the remote machine---e.g., @code{\"x86_64-linux\"}."
+#: doc/guix.texi:1171
+#, fuzzy
+#| msgid "The system type of the remote machine---e.g., @code{\"x86_64-linux\"}."
+msgid "The system types the remote machine supports---e.g., @code{(list \"x86_64-linux\" \"i686-linux\")}."
 msgstr "Тип системы удалённой машины, то есть @code{x86_64-linux}."
 
 #. type: code{#1}
-#: doc/guix.texi:1083 doc/guix.texi:13878
+#: doc/guix.texi:1172 doc/guix.texi:15754
 #, no-wrap
 msgid "user"
 msgstr "user"
 
 #. type: table
-#: doc/guix.texi:1087
+#: doc/guix.texi:1176
 msgid "The user account to use when connecting to the remote machine over SSH.  Note that the SSH key pair must @emph{not} be passphrase-protected, to allow non-interactive logins."
 msgstr "Аккаунт пользователя, используемый для соединения с удалённой машиной через SSH. Отметим, что ключ-пара SSH @emph{не} должна быть защищена парольной фразой, чтобы разрешить не интерактивные авторизации."
 
 #. type: item
-#: doc/guix.texi:1088
+#: doc/guix.texi:1177
 #, no-wrap
 msgid "host-key"
 msgstr "host-key"
 
 #. type: table
-#: doc/guix.texi:1092
+#: doc/guix.texi:1181
 msgid "This must be the machine's SSH @dfn{public host key} in OpenSSH format.  This is used to authenticate the machine when we connect to it.  It is a long string that looks like this:"
 msgstr "Это @dfn{публичный ключ хоста} в формает OpenSSH. Он используется при аутентификации машины, когда мы подсоединяемс к ней. Это длинная строка, которая выглядит примерно так:"
 
 #. type: example
-#: doc/guix.texi:1095
+#: doc/guix.texi:1184
 #, no-wrap
 msgid "ssh-ed25519 AAAAC3NzaC@dots{}mde+UhL hint@@example.org\n"
 msgstr "ssh-ed25519 AAAAC3NzaC@dots{}mde+UhL hint@@example.org\n"
 
 #. type: table
-#: doc/guix.texi:1100
+#: doc/guix.texi:1189
 msgid "If the machine is running the OpenSSH daemon, @command{sshd}, the host key can be found in a file such as @file{/etc/ssh/ssh_host_ed25519_key.pub}."
 msgstr "Если на машине запущен демон OpenSSH @command{sshd}, ключ хоста может быть найден в файле под директорией /etc/ssh, например, @file{/etc/ssh/ssh_host_ed25519_key.pub}."
 
 #. type: table
-#: doc/guix.texi:1105
+#: doc/guix.texi:1194
 msgid "If the machine is running the SSH daemon of GNU@tie{}lsh, @command{lshd}, the host key is in @file{/etc/lsh/host-key.pub} or a similar file.  It can be converted to the OpenSSH format using @command{lsh-export-key} (@pxref{Converting keys,,, lsh, LSH Manual}):"
 msgstr "Если на машине запущен демон SSH GNU@tie{}lsh, @command{lshd}, тогда ключ хоста расположен в @file{/etc/lsh/host-key.pub} или подобном файле. Его можно конвертировать в формат OpenSSH, используя @command{lsh-export-key} (@pxref{Converting keys,,, lsh, LSH Manual}):"
 
 #. type: example
-#: doc/guix.texi:1109
+#: doc/guix.texi:1198
 #, no-wrap
 msgid ""
 "$ lsh-export-key --openssh < /etc/lsh/host-key.pub\n"
@@ -4689,838 +5226,888 @@ msgstr ""
 "ssh-rsa AAAAB3NzaC1yc2EAAAAEOp8FoQAAAQEAs1eB46LV@dots{}\n"
 
 #. type: deftp
-#: doc/guix.texi:1114
+#: doc/guix.texi:1203
 msgid "A number of optional fields may be specified:"
 msgstr "Список необязательных полей:"
 
 #. type: item
-#: doc/guix.texi:1117 doc/guix.texi:27177
+#: doc/guix.texi:1206 doc/guix.texi:30826
 #, no-wrap
 msgid "@code{port} (default: @code{22})"
 msgstr "@code{port} (default: @code{22})"
 
 #. type: table
-#: doc/guix.texi:1119
+#: doc/guix.texi:1208
 msgid "Port number of SSH server on the machine."
 msgstr "Номер порта сервера SSH на машине."
 
 #. type: item
-#: doc/guix.texi:1120
+#: doc/guix.texi:1209
 #, no-wrap
 msgid "@code{private-key} (default: @file{~root/.ssh/id_rsa})"
 msgstr "@code{private-key} (default: @file{~root/.ssh/id_rsa})"
 
 #. type: table
-#: doc/guix.texi:1123
+#: doc/guix.texi:1212
 msgid "The SSH private key file to use when connecting to the machine, in OpenSSH format.  This key must not be protected with a passphrase."
 msgstr "Файл приватного ключа в формате OpenSSH, используемого в соединении с машиной. Этот ключ не должен быть защищён парольной фразой."
 
 #. type: table
-#: doc/guix.texi:1126
+#: doc/guix.texi:1215
 msgid "Note that the default value is the private key @emph{of the root account}.  Make sure it exists if you use the default."
 msgstr "Отметим, что значение по умолчанию --- приватный ключ @emph{аккаунта root}. Убедитесь, что он существует, если вы используете настройки по умолчанию."
 
 #. type: item
-#: doc/guix.texi:1127
+#: doc/guix.texi:1216
 #, no-wrap
 msgid "@code{compression} (default: @code{\"zlib@@openssh.com,zlib\"})"
 msgstr "@code{compression} (default: @code{\"zlib@@openssh.com,zlib\"})"
 
 #. type: itemx
-#: doc/guix.texi:1128
+#: doc/guix.texi:1217
 #, no-wrap
 msgid "@code{compression-level} (default: @code{3})"
 msgstr "@code{compression-level} (default: @code{3})"
 
 #. type: table
-#: doc/guix.texi:1130
+#: doc/guix.texi:1219
 msgid "The SSH-level compression methods and compression level requested."
 msgstr "Методы компрессии уровня SSH и уровень компрессии."
 
 #. type: table
-#: doc/guix.texi:1133
+#: doc/guix.texi:1222
 msgid "Note that offloading relies on SSH compression to reduce bandwidth usage when transferring files to and from build machines."
 msgstr "Отметим, что разгрузка зависит от компрессии SSH, что уменьшает использование траффика при передаче файлов на и с машин для сборки."
 
 #. type: item
-#: doc/guix.texi:1134
+#: doc/guix.texi:1223
 #, no-wrap
 msgid "@code{daemon-socket} (default: @code{\"/var/guix/daemon-socket/socket\"})"
 msgstr "@code{daemon-socket} (default: @code{\"/var/guix/daemon-socket/socket\"})"
 
 #. type: table
-#: doc/guix.texi:1137
+#: doc/guix.texi:1226
 msgid "File name of the Unix-domain socket @command{guix-daemon} is listening to on that machine."
 msgstr "Имя файла сокета Unix-домена, который слушает @command{guix-daemon} на удалённой машине."
 
 #. type: item
-#: doc/guix.texi:1138
+#: doc/guix.texi:1227
+#, fuzzy, no-wrap
+#| msgid "@code{port} (default: @code{22})"
+msgid "@code{overload-threshold} (default: @code{0.6})"
+msgstr "@code{port} (default: @code{22})"
+
+#. type: table
+#: doc/guix.texi:1233
+msgid "The load threshold above which a potential offload machine is disregarded by the offload scheduler.  The value roughly translates to the total processor usage of the build machine, ranging from 0.0 (0%) to 1.0 (100%).  It can also be disabled by setting @code{overload-threshold} to @code{#f}."
+msgstr "Порог нагрузки, выше которого потенциальная offload машина не учитывается offload планировщиком.  Это значение примерно соответствует общему использованию процессора машиной сборки в диапазоне от 0,0 (0%) до 1,0 (100%).  Это также можно отключить, установив @code{overload-threshold} в @code{#f}."
+
+#. type: item
+#: doc/guix.texi:1234
 #, no-wrap
 msgid "@code{parallel-builds} (default: @code{1})"
 msgstr "@code{parallel-builds} (default: @code{1})"
 
 #. type: table
-#: doc/guix.texi:1140
+#: doc/guix.texi:1236
 msgid "The number of builds that may run in parallel on the machine."
 msgstr "Число сборок, которые могут быть запущены на машине."
 
 #. type: item
-#: doc/guix.texi:1141
+#: doc/guix.texi:1237
 #, no-wrap
 msgid "@code{speed} (default: @code{1.0})"
 msgstr "@code{speed} (default: @code{1.0})"
 
 #. type: table
-#: doc/guix.texi:1144
+#: doc/guix.texi:1240
 msgid "A ``relative speed factor''.  The offload scheduler will tend to prefer machines with a higher speed factor."
 msgstr "Показатель скорости. Планировщик разгрузки предпримет попытку выбрать машину с наибольшим показателем скорости."
 
 #. type: item
-#: doc/guix.texi:1145
+#: doc/guix.texi:1241
 #, no-wrap
 msgid "@code{features} (default: @code{'()})"
 msgstr "@code{features} (default: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:1150
+#: doc/guix.texi:1246
 msgid "A list of strings denoting specific features supported by the machine.  An example is @code{\"kvm\"} for machines that have the KVM Linux modules and corresponding hardware support.  Derivations can request features by name, and they will be scheduled on matching build machines."
 msgstr "Набор строк, описывающий специфические функции, которые поддерживаются на машине. Например, @code{\"kvm\"} для машин, которые имеют модули Linux KVM и соответствующую поддерку аппаратного обеспечения. Деривации могут запрашивать функции по имени, и тогда они будут запранированы на соответствующих машинах для сборки."
 
 #. type: Plain text
-#: doc/guix.texi:1156
+#: doc/guix.texi:1252
 msgid "The @command{guix} command must be in the search path on the build machines.  You can check whether this is the case by running:"
 msgstr "Команда @command{guix} должна быть в путях для поиска на машинах лоя сборки. Можно проверить это, выполнив:"
 
 #. type: example
-#: doc/guix.texi:1159
+#: doc/guix.texi:1255
 #, no-wrap
 msgid "ssh build-machine guix repl --version\n"
 msgstr "ssh build-machine guix repl --version\n"
 
 #. type: Plain text
-#: doc/guix.texi:1166
+#: doc/guix.texi:1262
 msgid "There is one last thing to do once @file{machines.scm} is in place.  As explained above, when offloading, files are transferred back and forth between the machine stores.  For this to work, you first need to generate a key pair on each machine to allow the daemon to export signed archives of files from the store (@pxref{Invoking guix archive}):"
 msgstr "Есть ещё одна вещь, которую нужно выполнить после размещения @file{machines.scm}. Выше описано, что при разгрузке файлы передаются вперёд и назад между складами на машинах. Для этого необходимо сгенерировать ключ-пару на кадой машине, чтобы позволить демону экспортировать подписанные архивы файлов из склада (@pxref{Invoking guix archive}):"
 
 #. type: example
-#: doc/guix.texi:1169 doc/guix.texi:27105
+#: doc/guix.texi:1265 doc/guix.texi:30754
 #, no-wrap
 msgid "# guix archive --generate-key\n"
 msgstr "# guix archive --generate-key\n"
 
 #. type: Plain text
-#: doc/guix.texi:1174
+#: doc/guix.texi:1270
 msgid "Each build machine must authorize the key of the master machine so that it accepts store items it receives from the master:"
 msgstr "Каждая машина для сорки должна авторизовать ключ машины-инициатора, чтобы принимать элементы из склада, которые присылает инициатор:"
 
 #. type: example
-#: doc/guix.texi:1177
+#: doc/guix.texi:1273
 #, no-wrap
 msgid "# guix archive --authorize < master-public-key.txt\n"
 msgstr "# guix archive --authorize < master-public-key.txt\n"
 
 #. type: Plain text
-#: doc/guix.texi:1181
+#: doc/guix.texi:1277
 msgid "Likewise, the master machine must authorize the key of each build machine."
 msgstr "Точно так же машина-инициатор должна авторизовать ключ каждой машины для сборки."
 
 #. type: Plain text
-#: doc/guix.texi:1187
+#: doc/guix.texi:1283
 msgid "All the fuss with keys is here to express pairwise mutual trust relations between the master and the build machines.  Concretely, when the master receives files from a build machine (and @i{vice versa}), its build daemon can make sure they are genuine, have not been tampered with, and that they are signed by an authorized key."
 msgstr "Всё движение с ключами, описанное здесь, создаёт надёжную двустороннюю свзь между инициатором и машинами для сборки. А именно, когда машина-инициатор принимает файлы из машины для сборки (или @i{наборот}), её демон может удостоверить их подлинность и невмешательство других, а также то, что они подписаны авторизованным ключом."
 
 #. type: cindex
-#: doc/guix.texi:1188
+#: doc/guix.texi:1284
 #, no-wrap
 msgid "offload test"
 msgstr "тест разгрузки"
 
 #. type: Plain text
-#: doc/guix.texi:1191
+#: doc/guix.texi:1287
 msgid "To test whether your setup is operational, run this command on the master node:"
 msgstr "Чтобы проверить работоспособность настроек, запустите следующую команду на инициирующем узле:"
 
 #. type: example
-#: doc/guix.texi:1194
+#: doc/guix.texi:1290
 #, no-wrap
 msgid "# guix offload test\n"
 msgstr "# guix offload test\n"
 
 #. type: Plain text
-#: doc/guix.texi:1200
+#: doc/guix.texi:1296
 msgid "This will attempt to connect to each of the build machines specified in @file{/etc/guix/machines.scm}, make sure Guile and the Guix modules are available on each machine, attempt to export to the machine and import from it, and report any error in the process."
 msgstr "Это выполнит попытку соединиться с каждой из машин для сборки, обозначенных в @file{/etc/guix/machines.scm}, проверит наличие модулей Guile и Guix на каждой машине, а также сделает попытку экспортировать и импортировать, а затем выведет отчёт об этом процессе."
 
 #. type: Plain text
-#: doc/guix.texi:1203
+#: doc/guix.texi:1299
 msgid "If you want to test a different machine file, just specify it on the command line:"
 msgstr "Если нужно тестировать другой файл с описанием машин, просто приведите его в командной строке:"
 
 #. type: example
-#: doc/guix.texi:1206
+#: doc/guix.texi:1302
 #, no-wrap
 msgid "# guix offload test machines-qualif.scm\n"
 msgstr "# guix offload test machines-qualif.scm\n"
 
 #. type: Plain text
-#: doc/guix.texi:1210
+#: doc/guix.texi:1306
 msgid "Last, you can test the subset of the machines whose name matches a regular expression like this:"
 msgstr "И последнее, можно тестировать набор машин, чьи имена соответствуют регулярному выражению, например:"
 
 #. type: example
-#: doc/guix.texi:1213
+#: doc/guix.texi:1309
 #, no-wrap
 msgid "# guix offload test machines.scm '\\.gnu\\.org$'\n"
 msgstr "# guix offload test machines.scm '\\.gnu\\.org$'\n"
 
 #. type: cindex
-#: doc/guix.texi:1215
+#: doc/guix.texi:1311
 #, no-wrap
 msgid "offload status"
 msgstr "статус разгрузки"
 
 #. type: Plain text
-#: doc/guix.texi:1218
+#: doc/guix.texi:1314
 msgid "To display the current load of all build hosts, run this command on the main node:"
 msgstr "Чтобы отобразить текущую загрузку всех машин для сборки, запустите команду на инициирущем узле:"
 
 #. type: example
-#: doc/guix.texi:1221
+#: doc/guix.texi:1317
 #, no-wrap
 msgid "# guix offload status\n"
 msgstr "# guix offload status\n"
 
 #. type: cindex
-#: doc/guix.texi:1227
+#: doc/guix.texi:1323
 #, no-wrap
 msgid "SELinux, daemon policy"
 msgstr "SELinux, политика демона"
 
 #. type: cindex
-#: doc/guix.texi:1228
+#: doc/guix.texi:1324
 #, no-wrap
 msgid "mandatory access control, SELinux"
 msgstr "мандатный контроль доступа, SELinux"
 
 #. type: cindex
-#: doc/guix.texi:1229
+#: doc/guix.texi:1325
 #, no-wrap
 msgid "security, guix-daemon"
 msgstr "безопасность, guix-daemon"
 
 #. type: Plain text
-#: doc/guix.texi:1235
+#: doc/guix.texi:1331
 msgid "Guix includes an SELinux policy file at @file{etc/guix-daemon.cil} that can be installed on a system where SELinux is enabled, in order to label Guix files and to specify the expected behavior of the daemon.  Since Guix System does not provide an SELinux base policy, the daemon policy cannot be used on Guix System."
 msgstr "Guix включает файл политик SELinnux @file{etc/guix-daemon.cil}, который может устанавливаться в систему, в которой включен SELinux, тогда файлы Guix будут помечены и настроены для соответствующего поведения демона. Так как система Guix не предоставляет политику SELinux, политика демона не может использоваться в системе Guix."
 
 #. type: subsubsection
-#: doc/guix.texi:1236
+#: doc/guix.texi:1332
 #, no-wrap
 msgid "Installing the SELinux policy"
 msgstr "Установка политики SELinux"
 
 #. type: cindex
-#: doc/guix.texi:1237
+#: doc/guix.texi:1333
 #, no-wrap
 msgid "SELinux, policy installation"
 msgstr "SELinux, установка политики"
 
 #. type: Plain text
-#: doc/guix.texi:1239
+#: doc/guix.texi:1335
 msgid "To install the policy run this command as root:"
 msgstr "Чтобы установить политику, запустите следующую команду от root:"
 
 #. type: example
-#: doc/guix.texi:1242
+#: doc/guix.texi:1338
 #, no-wrap
 msgid "semodule -i etc/guix-daemon.cil\n"
 msgstr "semodule -i etc/guix-daemon.cil\n"
 
 #. type: Plain text
-#: doc/guix.texi:1246
+#: doc/guix.texi:1342
 msgid "Then relabel the file system with @code{restorecon} or by a different mechanism provided by your system."
 msgstr "Затем измените метку файловой системы с @code{restorecon} или другим механизмом, поставляемым вашей системой."
 
 #. type: Plain text
-#: doc/guix.texi:1251
+#: doc/guix.texi:1347
 msgid "Once the policy is installed, the file system has been relabeled, and the daemon has been restarted, it should be running in the @code{guix_daemon_t} context.  You can confirm this with the following command:"
 msgstr "Когда политика установлена, изменена метка файловой системы и демон перезапущен, она должна работать в контексте @code{guix_daemon_t}. Можно проверить это следующей командой:"
 
 #. type: example
-#: doc/guix.texi:1254
+#: doc/guix.texi:1350
 #, no-wrap
 msgid "ps -Zax | grep guix-daemon\n"
 msgstr "ps -Zax | grep guix-daemon\n"
 
 #. type: Plain text
-#: doc/guix.texi:1259
+#: doc/guix.texi:1355
 msgid "Monitor the SELinux log files as you run a command like @code{guix build hello} to convince yourself that SELinux permits all necessary operations."
 msgstr "Наблюдайте файлы логов SELinux во время работы команды @code{guix build hello}, чтобы удостовериться, что SELinux позволяет выполнение необходимых операций."
 
 #. type: cindex
-#: doc/guix.texi:1261
+#: doc/guix.texi:1357
 #, no-wrap
 msgid "SELinux, limitations"
 msgstr "SELinux, ограничения"
 
 #. type: Plain text
-#: doc/guix.texi:1266
+#: doc/guix.texi:1362
 msgid "This policy is not perfect.  Here is a list of limitations or quirks that should be considered when deploying the provided SELinux policy for the Guix daemon."
 msgstr "Эта политика не совершенна. Тут есть ряд ограничений или причуд, который нужно учитывать при разворачивании политики SELinux для демона Guix."
 
 #. type: enumerate
-#: doc/guix.texi:1273
+#: doc/guix.texi:1369
 msgid "@code{guix_daemon_socket_t} isn’t actually used.  None of the socket operations involve contexts that have anything to do with @code{guix_daemon_socket_t}.  It doesn’t hurt to have this unused label, but it would be preferrable to define socket rules for only this label."
 msgstr "@code{guix_daemon_socket_t} на самом деле не используется. Никакие операции с сокетом не выполняются. Ничего плохого в том, чтобы иметь эту неиспользуемую метку, но желательно определить правила сокета для этой метки."
 
 #. type: enumerate
-#: doc/guix.texi:1284
+#: doc/guix.texi:1380
 msgid "@code{guix gc} cannot access arbitrary links to profiles.  By design, the file label of the destination of a symlink is independent of the file label of the link itself.  Although all profiles under $localstatedir are labelled, the links to these profiles inherit the label of the directory they are in.  For links in the user’s home directory this will be @code{user_home_t}.  But for links from the root user’s home directory, or @file{/tmp}, or the HTTP server’s working directory, etc, this won’t work.  @code{guix gc} would be prevented from reading and following these links."
 msgstr "@code{guix gc} не может получить доступ к обычным ссылкам профилей. По задумке метка файла назначения символической ссылки не зависит от метки файла самой ссылки. Хотя все профили под $localstatedir помечены, ссылки на эти профили не наследуют метку директории, в которой они находятся. Для ссылок на домашние директории пользователей это будет @code{user_home_t}. Но для ссылок из домашней директории root, а также @file{/tmp} или рабочей директории HTTP-сервера и т.п., это не работает.  @code{guix gc} не будет допускаться к чтению и следованию по этим ссылкам."
 
 #. type: enumerate
-#: doc/guix.texi:1289
+#: doc/guix.texi:1385
 msgid "The daemon’s feature to listen for TCP connections might no longer work.  This might require extra rules, because SELinux treats network sockets differently from files."
 msgstr "Функция демона прослушивать соединения TCP может более не работать. Это может потребовать дополнительных правил, потому что SELinux относится к сетевым сокетам иначе, чем к файлам."
 
 #. type: enumerate
-#: doc/guix.texi:1300
+#: doc/guix.texi:1396
 msgid "Currently all files with a name matching the regular expression @code{/gnu/store/.+-(guix-.+|profile)/bin/guix-daemon} are assigned the label @code{guix_daemon_exec_t}; this means that @emph{any} file with that name in any profile would be permitted to run in the @code{guix_daemon_t} domain.  This is not ideal.  An attacker could build a package that provides this executable and convince a user to install and run it, which lifts it into the @code{guix_daemon_t} domain.  At that point SELinux could not prevent it from accessing files that are allowed for processes in that domain."
 msgstr "В настоящее время всем файлам с именами, соответствующими регулярному выражению @code{/gnu/store/.+-(guix-.+|profile)/bin/guix-daemon}, присвоена метка @code{guix_daemon_exec_t}; это означает, что @emph{любому} файлу с таким именем в любом профиле разрешён запуск в домене @code{guix_daemon_t}. Это не идеально. Атакующий может собрать пакет, который содержит исполняемый файл и убеить пользователя установить и запустить его, и таким образом он получит доступ к домену @code{guix_daemon_t}. В этой связи SELinux мог бы не давать ему доступ к файлам, которые разрешены для процессов в этом домене."
 
 #. type: enumerate
-#: doc/guix.texi:1308
+#: doc/guix.texi:1404
 msgid "We could generate a much more restrictive policy at installation time, so that only the @emph{exact} file name of the currently installed @code{guix-daemon} executable would be labelled with @code{guix_daemon_exec_t}, instead of using a broad regular expression.  The downside is that root would have to install or upgrade the policy at installation time whenever the Guix package that provides the effectively running @code{guix-daemon} executable is upgraded."
 msgstr "Мы можем создать политику с большими ограничениями во время установки, так чтобы только @emph{точное} имя исполняемого файла установленного в данный момент @code{guix-daemon} было помечено меткой @code{guix_daemon_exec_t} вместо того, чтобы использовать регулярное выражение, выбирающее большой ряд файлов. Проблемой в данном случае будет то, что root потребуется устанавливать или обновлять политику во время любой установки в случае, если обновлён исполняемый файл @code{guix-daemon}."
 
 #. type: section
-#: doc/guix.texi:1311
+#: doc/guix.texi:1407
 #, no-wrap
 msgid "Invoking @command{guix-daemon}"
 msgstr "Вызов @command{guix-daemon}"
 
 #. type: Plain text
-#: doc/guix.texi:1317
+#: doc/guix.texi:1413
 msgid "The @command{guix-daemon} program implements all the functionality to access the store.  This includes launching build processes, running the garbage collector, querying the availability of a build result, etc.  It is normally run as @code{root} like this:"
 msgstr "Программа @command{guix-daemon} реализует весь функционал доступа к складу. Это включает запуск процессов сборки, запуск сборщика мусора, проверка доступности результата сборки и т.д. Он должен быть запущен от @code{root} так:"
 
 #. type: Plain text
-#: doc/guix.texi:1324
+#: doc/guix.texi:1420
 msgid "For details on how to set it up, @pxref{Setting Up the Daemon}."
 msgstr "Для подробностей о том, как настроить его, смотрите @pxref{Setting Up the Daemon}."
 
 #. type: cindex
-#: doc/guix.texi:1326
+#: doc/guix.texi:1422
 #, no-wrap
 msgid "container, build environment"
 msgstr "контейнер, окружение сборки"
 
 #. type: cindex
-#: doc/guix.texi:1328 doc/guix.texi:2637 doc/guix.texi:3348
-#: doc/guix.texi:10461
+#: doc/guix.texi:1424 doc/guix.texi:2931 doc/guix.texi:3675
+#: doc/guix.texi:12072
 #, no-wrap
 msgid "reproducible builds"
 msgstr "воспроизводимые сборки"
 
 #. type: Plain text
-#: doc/guix.texi:1340
-msgid "By default, @command{guix-daemon} launches build processes under different UIDs, taken from the build group specified with @code{--build-users-group}.  In addition, each build process is run in a chroot environment that only contains the subset of the store that the build process depends on, as specified by its derivation (@pxref{Programming Interface, derivation}), plus a set of specific system directories.  By default, the latter contains @file{/dev} and @file{/dev/pts}.  Furthermore, on GNU/Linux, the build environment is a @dfn{container}: in addition to having its own file system tree, it has a separate mount name space, its own PID name space, network name space, etc.  This helps achieve reproducible builds (@pxref{Features})."
+#: doc/guix.texi:1436
+#, fuzzy
+#| msgid "By default, @command{guix-daemon} launches build processes under different UIDs, taken from the build group specified with @code{--build-users-group}.  In addition, each build process is run in a chroot environment that only contains the subset of the store that the build process depends on, as specified by its derivation (@pxref{Programming Interface, derivation}), plus a set of specific system directories.  By default, the latter contains @file{/dev} and @file{/dev/pts}.  Furthermore, on GNU/Linux, the build environment is a @dfn{container}: in addition to having its own file system tree, it has a separate mount name space, its own PID name space, network name space, etc.  This helps achieve reproducible builds (@pxref{Features})."
+msgid "By default, @command{guix-daemon} launches build processes under different UIDs, taken from the build group specified with @option{--build-users-group}.  In addition, each build process is run in a chroot environment that only contains the subset of the store that the build process depends on, as specified by its derivation (@pxref{Programming Interface, derivation}), plus a set of specific system directories.  By default, the latter contains @file{/dev} and @file{/dev/pts}.  Furthermore, on GNU/Linux, the build environment is a @dfn{container}: in addition to having its own file system tree, it has a separate mount name space, its own PID name space, network name space, etc.  This helps achieve reproducible builds (@pxref{Features})."
 msgstr "По умолчанию @command{guix-daemon} запускает процессы сборки под различными UID, от пользователей из группы, обозначенной в @code{--build-users-group}. В дополнение каждый процесс сборки запускается в окружении chroot, которое содержит только набор элементов склада, от которых зависит процесс сборки, как это обозначено в деривации (@pxref{Programming Interface, derivation}), а также набор специфичных системных директорий. По умолчанию последнее включает @file{/dev} и @file{/dev/pts}. Более того, под GNU/Linux окружение сборки --- это @dfn{контейнер}: в дополнение к тому, что он имеет собственное дерево файловой системы, он также имеет отдельное пространство имён монтирования, своё собственное пространство имён процессов PID, пространство сетевых имён и т.д. Это позволяет получить воспроизводимые сборки (@pxref{Features})."
 
 #. type: Plain text
-#: doc/guix.texi:1346
-msgid "When the daemon performs a build on behalf of the user, it creates a build directory under @file{/tmp} or under the directory specified by its @code{TMPDIR} environment variable.  This directory is shared with the container for the duration of the build, though within the container, the build tree is always called @file{/tmp/guix-build-@var{name}.drv-0}."
+#: doc/guix.texi:1442
+#, fuzzy
+#| msgid "When the daemon performs a build on behalf of the user, it creates a build directory under @file{/tmp} or under the directory specified by its @code{TMPDIR} environment variable.  This directory is shared with the container for the duration of the build, though within the container, the build tree is always called @file{/tmp/guix-build-@var{name}.drv-0}."
+msgid "When the daemon performs a build on behalf of the user, it creates a build directory under @file{/tmp} or under the directory specified by its @env{TMPDIR} environment variable.  This directory is shared with the container for the duration of the build, though within the container, the build tree is always called @file{/tmp/guix-build-@var{name}.drv-0}."
 msgstr "Когда демон выполняет сборку по запросу пользователя, он создаёт директорию под @file{/tmp} или под директорией, заданной его переменной окружения @code{TMPDIR}. Эта директория разделяется с контейнером на время сборки, хотя внутри контейнера дерево сборки всегда называется @file{/tmp/guix-build-@var{name}.drv-0}."
 
 #. type: Plain text
-#: doc/guix.texi:1350
+#: doc/guix.texi:1446
 msgid "The build directory is automatically deleted upon completion, unless the build failed and the client specified @option{--keep-failed} (@pxref{Invoking guix build, @option{--keep-failed}})."
 msgstr "Директория сборки автоматически удаляется по завершении, если конечно, сборка не завершилась с ошибкой, и клиент не обозначил @option{--keep-failed} (@pxref{Invoking guix build, @option{--keep-failed}})."
 
 #. type: Plain text
-#: doc/guix.texi:1356
-msgid "The daemon listens for connections and spawns one sub-process for each session started by a client (one of the @command{guix} sub-commands.)  The @command{guix processes} command allows you to get an overview of the activity on your system by viewing each of the active sessions and clients.  @xref{Invoking guix processes}, for more information."
+#: doc/guix.texi:1452
+#, fuzzy
+#| msgid "The daemon listens for connections and spawns one sub-process for each session started by a client (one of the @command{guix} sub-commands.)  The @command{guix processes} command allows you to get an overview of the activity on your system by viewing each of the active sessions and clients.  @xref{Invoking guix processes}, for more information."
+msgid "The daemon listens for connections and spawns one sub-process for each session started by a client (one of the @command{guix} sub-commands).  The @command{guix processes} command allows you to get an overview of the activity on your system by viewing each of the active sessions and clients.  @xref{Invoking guix processes}, for more information."
 msgstr "Демон слушает соединения и порождает один под-процесс для каждой сессии, запускаемой клиентом (одну из подкоманд @command{guix}). Команда @command{guix processes} позволяет мониторить активность вашей системы, предоставляя обзор каждой активной сессии и клиентов. Смотрите @xref{Invoking guix processes} для подробной информации."
 
 #. type: Plain text
-#: doc/guix.texi:1358
+#: doc/guix.texi:1454
 msgid "The following command-line options are supported:"
 msgstr "Поддерживаются следующие опции командной строки:"
 
 #. type: item
-#: doc/guix.texi:1360
+#: doc/guix.texi:1456
 #, no-wrap
 msgid "--build-users-group=@var{group}"
 msgstr "--build-users-group=@var{group}"
 
 #. type: table
-#: doc/guix.texi:1363
+#: doc/guix.texi:1459
 msgid "Take users from @var{group} to run build processes (@pxref{Setting Up the Daemon, build users})."
 msgstr "Использовать пользователей из группы @var{group} для запуска процессов сборки (@pxref{Setting Up the Daemon, build users})."
 
 #. type: item
-#: doc/guix.texi:1364 doc/guix.texi:8282
+#: doc/guix.texi:1460 doc/guix.texi:9696
 #, no-wrap
 msgid "--no-substitutes"
 msgstr "--no-substitutes"
 
 #. type: cindex
-#: doc/guix.texi:1365 doc/guix.texi:2649 doc/guix.texi:3214
+#: doc/guix.texi:1461 doc/guix.texi:2943 doc/guix.texi:3541
 #, no-wrap
 msgid "substitutes"
 msgstr "подстановки"
 
 #. type: table
-#: doc/guix.texi:1369 doc/guix.texi:8286
+#: doc/guix.texi:1465 doc/guix.texi:9700
 msgid "Do not use substitutes for build products.  That is, always build things locally instead of allowing downloads of pre-built binaries (@pxref{Substitutes})."
 msgstr "Не использовать подстановки для сборок. Это означает --- собирать элементы локально вместо того, чтобы скачивать собранные бинарники (@pxref{Substitutes})."
 
 #. type: table
-#: doc/guix.texi:1373
-msgid "When the daemon runs with @code{--no-substitutes}, clients can still explicitly enable substitution @i{via} the @code{set-build-options} remote procedure call (@pxref{The Store})."
+#: doc/guix.texi:1469
+#, fuzzy
+#| msgid "When the daemon runs with @code{--no-substitutes}, clients can still explicitly enable substitution @i{via} the @code{set-build-options} remote procedure call (@pxref{The Store})."
+msgid "When the daemon runs with @option{--no-substitutes}, clients can still explicitly enable substitution @i{via} the @code{set-build-options} remote procedure call (@pxref{The Store})."
 msgstr "Когда демон работает с @code{--no-substitutes}, клиенты всё ещё могут явно включить подстановку @i{с помощью} удалённого вызова процедур @code{set-build-options} (@pxref{The Store})."
 
 #. type: item
-#: doc/guix.texi:1374 doc/guix.texi:8269 doc/guix.texi:9966
-#: doc/guix.texi:10607 doc/guix.texi:10832
+#: doc/guix.texi:1470 doc/guix.texi:9683 doc/guix.texi:11532
+#: doc/guix.texi:12218 doc/guix.texi:12443
 #, no-wrap
 msgid "--substitute-urls=@var{urls}"
 msgstr "--substitute-urls=@var{urls}"
 
 #. type: anchor{#1}
-#: doc/guix.texi:1379
+#: doc/guix.texi:1475
 msgid "daemon-substitute-urls"
 msgstr "daemon-substitute-urls"
 
 #. type: table
-#: doc/guix.texi:1379
+#: doc/guix.texi:1475
 msgid "Consider @var{urls} the default whitespace-separated list of substitute source URLs.  When this option is omitted, @indicateurl{https://@value{SUBSTITUTE-SERVER}} is used."
 msgstr "Использовать адреса @var{urls}, разделённые пробелом по умолчанию, как список источников подстановок. Если эта опция пропущена, используется @indicateurl{https://@value{SUBSTITUTE-SERVER}}"
 
 #. type: table
-#: doc/guix.texi:1382
+#: doc/guix.texi:1478
 msgid "This means that substitutes may be downloaded from @var{urls}, as long as they are signed by a trusted signature (@pxref{Substitutes})."
 msgstr "Это означает, что подстановки могут скачиваться из адресов @var{urls}, если конечно они подписаны доверенной подписью (@pxref{Substitutes})."
 
 #. type: item
-#: doc/guix.texi:1384 doc/guix.texi:8307
+#: doc/guix.texi:1480 doc/guix.texi:9719
 #, no-wrap
 msgid "--no-offload"
 msgstr "--no-offload"
 
 #. type: table
-#: doc/guix.texi:1388 doc/guix.texi:8311
+#: doc/guix.texi:1484 doc/guix.texi:9723
 #, fuzzy
 #| msgid "Do not use substitutes for build products.  That is, always build things locally instead of allowing downloads of pre-built binaries (@pxref{Substitutes})."
 msgid "Do not use offload builds to other machines (@pxref{Daemon Offload Setup}).  That is, always build things locally instead of offloading builds to remote machines."
 msgstr "Не использовать подстановки для сборок. Это означает --- собирать элементы локально вместо того, чтобы скачивать собранные бинарники (@pxref{Substitutes})."
 
 #. type: item
-#: doc/guix.texi:1389
+#: doc/guix.texi:1485
 #, no-wrap
 msgid "--cache-failures"
 msgstr "--cache-failures"
 
 #. type: table
-#: doc/guix.texi:1391
+#: doc/guix.texi:1487
 msgid "Cache build failures.  By default, only successful builds are cached."
 msgstr "Кешировать ошибки сборки. По умолчанию кешируются только успешные сборки."
 
 #. type: table
-#: doc/guix.texi:1396
+#: doc/guix.texi:1492
 msgid "When this option is used, @command{guix gc --list-failures} can be used to query the set of store items marked as failed; @command{guix gc --clear-failures} removes store items from the set of cached failures.  @xref{Invoking guix gc}."
 msgstr "При установке этой опции можно использовать @command{guix gc --list-failures}, чтобы просматривать элементы склада, помеченные как ошибочные; @command{guix gc --clear-failures} удаляет элементы склада из кеша ошибок.  @xref{Invoking guix gc}."
 
 #. type: item
-#: doc/guix.texi:1397 doc/guix.texi:8336
+#: doc/guix.texi:1493 doc/guix.texi:9748
 #, no-wrap
 msgid "--cores=@var{n}"
 msgstr "--cores=@var{n}"
 
 #. type: itemx
-#: doc/guix.texi:1398 doc/guix.texi:8337
+#: doc/guix.texi:1494 doc/guix.texi:9749
 #, no-wrap
 msgid "-c @var{n}"
 msgstr "-c @var{n}"
 
 #. type: table
-#: doc/guix.texi:1401
+#: doc/guix.texi:1497
 msgid "Use @var{n} CPU cores to build each derivation; @code{0} means as many as available."
 msgstr "Использовать @var{n} ядер процессора для сборки каждой деривации; @code{0} означает использовать все доступные."
 
 #. type: table
-#: doc/guix.texi:1405
-msgid "The default value is @code{0}, but it may be overridden by clients, such as the @code{--cores} option of @command{guix build} (@pxref{Invoking guix build})."
+#: doc/guix.texi:1501
+#, fuzzy
+#| msgid "The default value is @code{0}, but it may be overridden by clients, such as the @code{--cores} option of @command{guix build} (@pxref{Invoking guix build})."
+msgid "The default value is @code{0}, but it may be overridden by clients, such as the @option{--cores} option of @command{guix build} (@pxref{Invoking guix build})."
 msgstr "Значение по умолчанию - @code{0}, но оно может быть изменено клиентами, в частности, опцией @code{--cores} команды @command{guix build} (@pxref{Invoking guix build})."
 
 #. type: table
-#: doc/guix.texi:1409
-msgid "The effect is to define the @code{NIX_BUILD_CORES} environment variable in the build process, which can then use it to exploit internal parallelism---for instance, by running @code{make -j$NIX_BUILD_CORES}."
+#: doc/guix.texi:1505
+#, fuzzy
+#| msgid "The effect is to define the @code{NIX_BUILD_CORES} environment variable in the build process, which can then use it to exploit internal parallelism---for instance, by running @code{make -j$NIX_BUILD_CORES}."
+msgid "The effect is to define the @env{NIX_BUILD_CORES} environment variable in the build process, which can then use it to exploit internal parallelism---for instance, by running @code{make -j$NIX_BUILD_CORES}."
 msgstr "В результате устанавливается переменная окружения @code{NIX_BUILD_CORES} для процесса сборки, который затем может использовать её для применения внутреннего параллелизма, например, для запуска @code{make -j$NIX_BUILD_CORES}."
 
 #. type: item
-#: doc/guix.texi:1410 doc/guix.texi:8341
+#: doc/guix.texi:1506 doc/guix.texi:9753
 #, no-wrap
 msgid "--max-jobs=@var{n}"
 msgstr "--max-jobs=@var{n}"
 
 #. type: itemx
-#: doc/guix.texi:1411 doc/guix.texi:8342
+#: doc/guix.texi:1507 doc/guix.texi:9754
 #, no-wrap
 msgid "-M @var{n}"
 msgstr "-M @var{n}"
 
 #. type: table
-#: doc/guix.texi:1416
+#: doc/guix.texi:1512
 msgid "Allow at most @var{n} build jobs in parallel.  The default value is @code{1}.  Setting it to @code{0} means that no builds will be performed locally; instead, the daemon will offload builds (@pxref{Daemon Offload Setup}), or simply fail."
 msgstr "Разрешить максимум @var{n} параллельных задач сборки. Значение по умолчанию - @code{1}. Установка в @code{0} означает, чтоб сборки не будут выполняться локально, вместо этого, демон будет разгружать сборки (@pxref{Daemon Offload Setup}) или просто отчитается об ошибке."
 
 #. type: item
-#: doc/guix.texi:1417 doc/guix.texi:8312
+#: doc/guix.texi:1513 doc/guix.texi:9724
 #, no-wrap
 msgid "--max-silent-time=@var{seconds}"
 msgstr "--max-silent-time=@var{seconds}"
 
 #. type: table
-#: doc/guix.texi:1420 doc/guix.texi:8315
+#: doc/guix.texi:1516 doc/guix.texi:9727
 msgid "When the build or substitution process remains silent for more than @var{seconds}, terminate it and report a build failure."
 msgstr "Когда процесс сборки или подстановки молчит более @var{seconds} секунд, завершить его и отчитаться об ошибке сборки."
 
 #. type: table
-#: doc/guix.texi:1422 doc/guix.texi:1431
+#: doc/guix.texi:1518 doc/guix.texi:1527
 msgid "The default value is @code{0}, which disables the timeout."
 msgstr "Значение по умолчанию - @code{0}, что значит отключить таймаут."
 
 #. type: table
-#: doc/guix.texi:1425
-msgid "The value specified here can be overridden by clients (@pxref{Common Build Options, @code{--max-silent-time}})."
+#: doc/guix.texi:1521
+#, fuzzy
+#| msgid "The value specified here can be overridden by clients (@pxref{Common Build Options, @code{--max-silent-time}})."
+msgid "The value specified here can be overridden by clients (@pxref{Common Build Options, @option{--max-silent-time}})."
 msgstr "Значение, заданное здесь, может быть переопределено клиентами (@pxref{Common Build Options, @code{--max-silent-time}})."
 
 #. type: item
-#: doc/guix.texi:1426 doc/guix.texi:8319
+#: doc/guix.texi:1522 doc/guix.texi:9731
 #, no-wrap
 msgid "--timeout=@var{seconds}"
 msgstr "--timeout=@var{seconds}"
 
 #. type: table
-#: doc/guix.texi:1429 doc/guix.texi:8322
+#: doc/guix.texi:1525 doc/guix.texi:9734
 msgid "Likewise, when the build or substitution process lasts for more than @var{seconds}, terminate it and report a build failure."
 msgstr "Точно так же, когда процесс сборки или подстановки длится более @var{seconds}, завершить его и отчитаться об ошибке сборки."
 
 #. type: table
-#: doc/guix.texi:1434
-msgid "The value specified here can be overridden by clients (@pxref{Common Build Options, @code{--timeout}})."
+#: doc/guix.texi:1530
+#, fuzzy
+#| msgid "The value specified here can be overridden by clients (@pxref{Common Build Options, @code{--timeout}})."
+msgid "The value specified here can be overridden by clients (@pxref{Common Build Options, @option{--timeout}})."
 msgstr "Значение, заданное здесь, может быть переопределено клиентами (@pxref{Common Build Options, @code{--timeout}})."
 
 #. type: item
-#: doc/guix.texi:1435
+#: doc/guix.texi:1531
 #, no-wrap
 msgid "--rounds=@var{N}"
 msgstr "--rounds=@var{N}"
 
 #. type: table
-#: doc/guix.texi:1440
+#: doc/guix.texi:1536
 msgid "Build each derivation @var{n} times in a row, and raise an error if consecutive build results are not bit-for-bit identical.  Note that this setting can be overridden by clients such as @command{guix build} (@pxref{Invoking guix build})."
 msgstr "Собирать каждую деривацию @var{n} раз подряд и вызывать ошибку, если результаты последовательных сборок не идентичны бит-к-биту. Отметим, что эта настройка может быть переопределена клиентами в команде, например, @command{guix build} (@pxref{Invoking guix build})."
 
 #. type: table
-#: doc/guix.texi:1444 doc/guix.texi:8691
+#: doc/guix.texi:1540 doc/guix.texi:9718 doc/guix.texi:10218
 msgid "When used in conjunction with @option{--keep-failed}, the differing output is kept in the store, under @file{/gnu/store/@dots{}-check}.  This makes it easy to look for differences between the two results."
 msgstr "При использовании вместе с @option{--keep-failed} различные результаты сохраняются на складе под @file{/gnu/store/@dots{}-check}. Это делает возможным просмотр различий между двумя результатами."
 
 #. type: item
-#: doc/guix.texi:1445
+#: doc/guix.texi:1541
 #, no-wrap
 msgid "--debug"
 msgstr "--debug"
 
 #. type: table
-#: doc/guix.texi:1447
+#: doc/guix.texi:1543
 msgid "Produce debugging output."
 msgstr "Выводить отладочную информацию."
 
 #. type: table
-#: doc/guix.texi:1451
-msgid "This is useful to debug daemon start-up issues, but then it may be overridden by clients, for example the @code{--verbosity} option of @command{guix build} (@pxref{Invoking guix build})."
+#: doc/guix.texi:1547
+#, fuzzy
+#| msgid "This is useful to debug daemon start-up issues, but then it may be overridden by clients, for example the @code{--verbosity} option of @command{guix build} (@pxref{Invoking guix build})."
+msgid "This is useful to debug daemon start-up issues, but then it may be overridden by clients, for example the @option{--verbosity} option of @command{guix build} (@pxref{Invoking guix build})."
 msgstr "Это полезно для отладки проблем запуска демона, но затем это может быть переопределено клиентами, например, опцией  @code{--verbosity} команды @command{guix build} (@pxref{Invoking guix build})."
 
 #. type: item
-#: doc/guix.texi:1452
+#: doc/guix.texi:1548
 #, no-wrap
 msgid "--chroot-directory=@var{dir}"
 msgstr "--chroot-directory=@var{dir}"
 
 #. type: table
-#: doc/guix.texi:1454
+#: doc/guix.texi:1550
 msgid "Add @var{dir} to the build chroot."
 msgstr "Добавить директорию @var{dir} в chroot сборки."
 
 #. type: table
-#: doc/guix.texi:1460
+#: doc/guix.texi:1556
 msgid "Doing this may change the result of build processes---for instance if they use optional dependencies found in @var{dir} when it is available, and not otherwise.  For that reason, it is not recommended to do so.  Instead, make sure that each derivation declares all the inputs that it needs."
 msgstr "Это может изменить результаты процессов сборки, например, если они используют необязательные (опциональные) зависимости, найденные в  @var{dir}, если они доступны, но только так, а не иначе. Поэтому не рекомендуется делать так. Вместо этого, убедитесь, что каждая деривация объявляет все необходимые входные данные."
 
 #. type: item
-#: doc/guix.texi:1461
+#: doc/guix.texi:1557
 #, no-wrap
 msgid "--disable-chroot"
 msgstr "--disable-chroot"
 
 #. type: table
-#: doc/guix.texi:1463
+#: doc/guix.texi:1559
 msgid "Disable chroot builds."
 msgstr "Отключить chroot для сборки."
 
 #. type: table
-#: doc/guix.texi:1468
+#: doc/guix.texi:1564
 msgid "Using this option is not recommended since, again, it would allow build processes to gain access to undeclared dependencies.  It is necessary, though, when @command{guix-daemon} is running under an unprivileged user account."
 msgstr "Использование этой опции не рекомендуется, так как опять же это позволит процессам сборки получить доступ к не объявленным зависимостям. Это важно, даже если @command{guix-daemon} запущен под аккаунтом непривилегированного пользователя."
 
 #. type: item
-#: doc/guix.texi:1469
+#: doc/guix.texi:1565
 #, no-wrap
 msgid "--log-compression=@var{type}"
 msgstr "--log-compression=@var{type}"
 
 #. type: table
-#: doc/guix.texi:1472
+#: doc/guix.texi:1568
 msgid "Compress build logs according to @var{type}, one of @code{gzip}, @code{bzip2}, or @code{none}."
 msgstr "Архивировать логи сборки методом @var{type}. Это один из: @code{gzip}, @code{bzip2} или @code{none}."
 
 #. type: table
-#: doc/guix.texi:1476
-msgid "Unless @code{--lose-logs} is used, all the build logs are kept in the @var{localstatedir}.  To save space, the daemon automatically compresses them with bzip2 by default."
+#: doc/guix.texi:1572
+#, fuzzy
+#| msgid "Unless @code{--lose-logs} is used, all the build logs are kept in the @var{localstatedir}.  To save space, the daemon automatically compresses them with bzip2 by default."
+msgid "Unless @option{--lose-logs} is used, all the build logs are kept in the @var{localstatedir}.  To save space, the daemon automatically compresses them with Bzip2 by default."
 msgstr "Если не используется @code{--lose-logs}, все логи сборки сохраняются в @var{localstatedir}. Для экономии места демон автоматически сжимает их с помощью bzip2 по умолчанию."
 
 #. type: item
-#: doc/guix.texi:1477
+#: doc/guix.texi:1573
 #, no-wrap
 msgid "--disable-deduplication"
 msgstr "--disable-deduplication"
 
 #. type: cindex
-#: doc/guix.texi:1478 doc/guix.texi:3686
+#: doc/guix.texi:1574 doc/guix.texi:4013
 #, no-wrap
 msgid "deduplication"
 msgstr "дедупликация"
 
 #. type: table
-#: doc/guix.texi:1480
+#: doc/guix.texi:1576
 msgid "Disable automatic file ``deduplication'' in the store."
 msgstr "Отключить автоматическую \"дедупликацию\" файлов на складе."
 
 #. type: table
-#: doc/guix.texi:1487
+#: doc/guix.texi:1583
 msgid "By default, files added to the store are automatically ``deduplicated'': if a newly added file is identical to another one found in the store, the daemon makes the new file a hard link to the other file.  This can noticeably reduce disk usage, at the expense of slightly increased input/output load at the end of a build process.  This option disables this optimization."
 msgstr "По умолчанию файлы, добавленные на склад, автоматически \"дедуплицируются\": если вновь добавленный файл идентичен другому, найденному на складе, демон делает новый файл жесткой ссылкой на другой файл. Это существенно сокращает использование места на диске за счёт небольшого увеличения запросов ввода/вывода в конце процесса сборки. Эта опция отключает такую оптимизацию."
 
 #. type: item
-#: doc/guix.texi:1488
+#: doc/guix.texi:1584
 #, no-wrap
 msgid "--gc-keep-outputs[=yes|no]"
 msgstr "--gc-keep-outputs[=yes|no]"
 
 #. type: table
-#: doc/guix.texi:1491
+#: doc/guix.texi:1587
 msgid "Tell whether the garbage collector (GC) must keep outputs of live derivations."
 msgstr "Сообщить, должен ли сборщик мусора (GC) сохранять выходные данные живой деривации."
 
 #. type: cindex
-#: doc/guix.texi:1492 doc/guix.texi:3499
+#: doc/guix.texi:1588 doc/guix.texi:3826
 #, no-wrap
 msgid "GC roots"
 msgstr "Корни сборщика мусора"
 
 #. type: cindex
-#: doc/guix.texi:1493 doc/guix.texi:3500
+#: doc/guix.texi:1589 doc/guix.texi:3827
 #, no-wrap
 msgid "garbage collector roots"
 msgstr "корни сборщика мусора"
 
 #. type: table
-#: doc/guix.texi:1498
-msgid "When set to ``yes'', the GC will keep the outputs of any live derivation available in the store---the @code{.drv} files.  The default is ``no'', meaning that derivation outputs are kept only if they are reachable from a GC root.  @xref{Invoking guix gc}, for more on GC roots."
+#: doc/guix.texi:1595
+#, fuzzy
+#| msgid "When set to ``yes'', the GC will keep the outputs of any live derivation available in the store---the @code{.drv} files.  The default is ``no'', meaning that derivation outputs are kept only if they are reachable from a GC root.  @xref{Invoking guix gc}, for more on GC roots."
+msgid "When set to @code{yes}, the GC will keep the outputs of any live derivation available in the store---the @file{.drv} files.  The default is @code{no}, meaning that derivation outputs are kept only if they are reachable from a GC root.  @xref{Invoking guix gc}, for more on GC roots."
 msgstr "При установке в \"yes\" (да), сборщик мусора (GC) будет сохранять результаты любой живой деривации, доступной на складе, --- файлы @code{.drv}. Значение по умолчанию - \"no\" (нет) - означает, что результаты дериваций хранятся только, если они доступны из корней сборщика мусора (GC roots). Смотрите @xref{Invoking guix gc} для информации о корнях сборщика мусора."
 
 #. type: item
-#: doc/guix.texi:1499
+#: doc/guix.texi:1596
 #, no-wrap
 msgid "--gc-keep-derivations[=yes|no]"
 msgstr "--gc-keep-derivations[=yes|no]"
 
 #. type: table
-#: doc/guix.texi:1502
+#: doc/guix.texi:1599
 msgid "Tell whether the garbage collector (GC) must keep derivations corresponding to live outputs."
 msgstr "Сообщить, должен ли сборщик мусора (GC) сохранять деривации, соответствующие живым результатам."
 
 #. type: table
-#: doc/guix.texi:1507
-msgid "When set to ``yes'', as is the case by default, the GC keeps derivations---i.e., @code{.drv} files---as long as at least one of their outputs is live.  This allows users to keep track of the origins of items in their store.  Setting it to ``no'' saves a bit of disk space."
+#: doc/guix.texi:1605
+#, fuzzy
+#| msgid "When set to ``yes'', as is the case by default, the GC keeps derivations---i.e., @code{.drv} files---as long as at least one of their outputs is live.  This allows users to keep track of the origins of items in their store.  Setting it to ``no'' saves a bit of disk space."
+msgid "When set to @code{yes}, as is the case by default, the GC keeps derivations---i.e., @file{.drv} files---as long as at least one of their outputs is live.  This allows users to keep track of the origins of items in their store.  Setting it to @code{no} saves a bit of disk space."
 msgstr "При указании \"yes\" (да), что является значением по умолчанию, сборщик мусора сохраняет деривации, то есть файлы @code{.drv}, до тех пор, пока любой из их выходов остаётся живым. Это позволяет пользователям отслеживать исходники элементов на складе. Установка в \"no\" (нет) немного экономит место на диске."
 
 #. type: table
-#: doc/guix.texi:1515
-msgid "In this way, setting @code{--gc-keep-derivations} to ``yes'' causes liveness to flow from outputs to derivations, and setting @code{--gc-keep-outputs} to ``yes'' causes liveness to flow from derivations to outputs.  When both are set to ``yes'', the effect is to keep all the build prerequisites (the sources, compiler, libraries, and other build-time tools) of live objects in the store, regardless of whether these prerequisites are reachable from a GC root.  This is convenient for developers since it saves rebuilds or downloads."
+#: doc/guix.texi:1614
+#, fuzzy
+#| msgid "In this way, setting @code{--gc-keep-derivations} to ``yes'' causes liveness to flow from outputs to derivations, and setting @code{--gc-keep-outputs} to ``yes'' causes liveness to flow from derivations to outputs.  When both are set to ``yes'', the effect is to keep all the build prerequisites (the sources, compiler, libraries, and other build-time tools) of live objects in the store, regardless of whether these prerequisites are reachable from a GC root.  This is convenient for developers since it saves rebuilds or downloads."
+msgid "In this way, setting @option{--gc-keep-derivations} to @code{yes} causes liveness to flow from outputs to derivations, and setting @option{--gc-keep-outputs} to @code{yes} causes liveness to flow from derivations to outputs.  When both are set to @code{yes}, the effect is to keep all the build prerequisites (the sources, compiler, libraries, and other build-time tools) of live objects in the store, regardless of whether these prerequisites are reachable from a GC root.  This is convenient for developers since it saves rebuilds or downloads."
 msgstr "Таким образом, установка @code{--gc-keep-derivations} в \"yes\" (да) даётт возможность пройти от результатов до дериваций, а установка  @code{--gc-keep-outputs} в \"yes\" (да), делает возможным пройти от дериваций до результатов. Если оба установлены в \"yes\", тогда это сохранит всё используемое для сборки (исходники, компилятор, библиотеки и другие инструменты сборки) живых объектов на складе, без учёта, доступны эти инструменты сборки из корней сборщика мусора или нет. Это удобно для разработчиков, так как это сокращает пересборки или скачивания."
 
 #. type: item
-#: doc/guix.texi:1516
+#: doc/guix.texi:1615
 #, no-wrap
 msgid "--impersonate-linux-2.6"
 msgstr "--impersonate-linux-2.6"
 
 #. type: table
-#: doc/guix.texi:1519
-msgid "On Linux-based systems, impersonate Linux 2.6.  This means that the kernel's @code{uname} system call will report 2.6 as the release number."
+#: doc/guix.texi:1618
+#, fuzzy
+#| msgid "On Linux-based systems, impersonate Linux 2.6.  This means that the kernel's @code{uname} system call will report 2.6 as the release number."
+msgid "On Linux-based systems, impersonate Linux 2.6.  This means that the kernel's @command{uname} system call will report 2.6 as the release number."
 msgstr "На системах, основанных на Linux, выдавать себя за Linux 2.6. Это означает, что системный вызов ядра @code{uname} будет выдавать 2.6 номером релиза."
 
 #. type: table
-#: doc/guix.texi:1522
+#: doc/guix.texi:1621
 msgid "This might be helpful to build programs that (usually wrongfully) depend on the kernel version number."
 msgstr "Это полезно для сборки программ, которые (обычно по ошибке) зависят от версии ядра."
 
 #. type: item
-#: doc/guix.texi:1523
+#: doc/guix.texi:1622
 #, no-wrap
 msgid "--lose-logs"
 msgstr "--lose-logs"
 
 #. type: table
-#: doc/guix.texi:1526
-msgid "Do not keep build logs.  By default they are kept under @code{@var{localstatedir}/guix/log}."
+#: doc/guix.texi:1625
+#, fuzzy
+#| msgid "Do not keep build logs.  By default they are kept under @code{@var{localstatedir}/guix/log}."
+msgid "Do not keep build logs.  By default they are kept under @file{@var{localstatedir}/guix/log}."
 msgstr "Не сохранять логи сборки. По умолчанию они сохраняются под @code{@var{localstatedir}/guix/log}."
 
 #. type: item
-#: doc/guix.texi:1527 doc/guix.texi:3894 doc/guix.texi:4908 doc/guix.texi:5248
-#: doc/guix.texi:8635 doc/guix.texi:9993 doc/guix.texi:10199
-#: doc/guix.texi:10837 doc/guix.texi:26187 doc/guix.texi:26869
+#: doc/guix.texi:1626 doc/guix.texi:4254 doc/guix.texi:5522 doc/guix.texi:5893
+#: doc/guix.texi:10162 doc/guix.texi:11559 doc/guix.texi:11810
+#: doc/guix.texi:12448 doc/guix.texi:29725 doc/guix.texi:30501
 #, no-wrap
 msgid "--system=@var{system}"
 msgstr "--system=@var{system}"
 
 #. type: table
-#: doc/guix.texi:1531
+#: doc/guix.texi:1630
 msgid "Assume @var{system} as the current system type.  By default it is the architecture/kernel pair found at configure time, such as @code{x86_64-linux}."
 msgstr "Считать @var{system} текущим типом системы. По умолчанию это пара архитектура/ядро, обнаруженная во время конфигурации, например, @code{x86_64-linux}."
 
 #. type: item
-#: doc/guix.texi:1532 doc/guix.texi:8115
+#: doc/guix.texi:1631 doc/guix.texi:9529
 #, no-wrap
 msgid "--listen=@var{endpoint}"
 msgstr "--listen=@var{endpoint}"
 
 #. type: table
-#: doc/guix.texi:1537
+#: doc/guix.texi:1636
 msgid "Listen for connections on @var{endpoint}.  @var{endpoint} is interpreted as the file name of a Unix-domain socket if it starts with @code{/} (slash sign).  Otherwise, @var{endpoint} is interpreted as a host name or host name and port to listen to.  Here are a few examples:"
 msgstr "Слушать соединения с @var{endpoint}. @var{endpoint} интерпретируется как имя файла сокета Unix-домена, если начинается с @code{/} (знак слеша). В противном случае @var{endpoint} интерпретируется как имя хоста или им хоста и порт для прослушивания. Вот несколько примеров:"
 
 #. type: item
-#: doc/guix.texi:1539
+#: doc/guix.texi:1638
 #, no-wrap
 msgid "--listen=/gnu/var/daemon"
 msgstr "--listen=/gnu/var/daemon"
 
 #. type: table
-#: doc/guix.texi:1542
+#: doc/guix.texi:1641
 msgid "Listen for connections on the @file{/gnu/var/daemon} Unix-domain socket, creating it if needed."
 msgstr "Слушать соединения с сокетом Unix-домена @file{/gnu/var/daemon}, который создаётся при необходимости."
 
 #. type: item
-#: doc/guix.texi:1543
+#: doc/guix.texi:1642
 #, no-wrap
 msgid "--listen=localhost"
 msgstr "--listen=localhost"
 
 #. type: cindex
-#: doc/guix.texi:1544 doc/guix.texi:6869
+#: doc/guix.texi:1643 doc/guix.texi:8213
 #, no-wrap
 msgid "daemon, remote access"
 msgstr "демон, удалённый доступ"
 
 #. type: cindex
-#: doc/guix.texi:1545 doc/guix.texi:6870
+#: doc/guix.texi:1644 doc/guix.texi:8214
 #, no-wrap
 msgid "remote access to the daemon"
 msgstr "удалённый доступ к демону"
 
 #. type: cindex
-#: doc/guix.texi:1546 doc/guix.texi:6871
+#: doc/guix.texi:1645 doc/guix.texi:8215
 #, no-wrap
 msgid "daemon, cluster setup"
 msgstr "демон, установка кластера"
 
 #. type: cindex
-#: doc/guix.texi:1547 doc/guix.texi:6872
+#: doc/guix.texi:1646 doc/guix.texi:8216
 #, no-wrap
 msgid "clusters, daemon setup"
 msgstr "кластеры, установка демона"
 
 #. type: table
-#: doc/guix.texi:1550
+#: doc/guix.texi:1649
 msgid "Listen for TCP connections on the network interface corresponding to @code{localhost}, on port 44146."
 msgstr "Слушать соединения TCP сетевого интерфейса, относящиеся к @code{localhost}, на порту 44146."
 
 #. type: item
-#: doc/guix.texi:1551
+#: doc/guix.texi:1650
 #, no-wrap
 msgid "--listen=128.0.0.42:1234"
 msgstr "--listen=128.0.0.42:1234"
 
 #. type: table
-#: doc/guix.texi:1554
+#: doc/guix.texi:1653
 msgid "Listen for TCP connections on the network interface corresponding to @code{128.0.0.42}, on port 1234."
 msgstr "Слушать соединения TCP сетевого интерфейса, относящиеся к @code{128.0.0.42}, на порту 1234."
 
 #. type: table
-#: doc/guix.texi:1561
-msgid "This option can be repeated multiple times, in which case @command{guix-daemon} accepts connections on all the specified endpoints.  Users can tell client commands what endpoint to connect to by setting the @code{GUIX_DAEMON_SOCKET} environment variable (@pxref{The Store, @code{GUIX_DAEMON_SOCKET}})."
+#: doc/guix.texi:1660
+#, fuzzy
+#| msgid "This option can be repeated multiple times, in which case @command{guix-daemon} accepts connections on all the specified endpoints.  Users can tell client commands what endpoint to connect to by setting the @code{GUIX_DAEMON_SOCKET} environment variable (@pxref{The Store, @code{GUIX_DAEMON_SOCKET}})."
+msgid "This option can be repeated multiple times, in which case @command{guix-daemon} accepts connections on all the specified endpoints.  Users can tell client commands what endpoint to connect to by setting the @env{GUIX_DAEMON_SOCKET} environment variable (@pxref{The Store, @env{GUIX_DAEMON_SOCKET}})."
 msgstr "Эта опция может повторяться много раз, в таком случае @command{guix-daemon} принимает соединения на всех обозначенных точках. Пользователи могут через клиентские команды сообщать, через какие точки соединяться, для этого нужно устанавливать переменную окружения @code{GUIX_DAEMON_SOCKET} (@pxref{The Store, @code{GUIX_DAEMON_SOCKET}})."
 
 #. type: quotation
-#: doc/guix.texi:1568
-msgid "The daemon protocol is @emph{unauthenticated and unencrypted}.  Using @code{--listen=@var{host}} is suitable on local networks, such as clusters, where only trusted nodes may connect to the build daemon.  In other cases where remote access to the daemon is needed, we recommend using Unix-domain sockets along with SSH."
+#: doc/guix.texi:1667
+#, fuzzy
+#| msgid "The daemon protocol is @emph{unauthenticated and unencrypted}.  Using @code{--listen=@var{host}} is suitable on local networks, such as clusters, where only trusted nodes may connect to the build daemon.  In other cases where remote access to the daemon is needed, we recommend using Unix-domain sockets along with SSH."
+msgid "The daemon protocol is @emph{unauthenticated and unencrypted}.  Using @option{--listen=@var{host}} is suitable on local networks, such as clusters, where only trusted nodes may connect to the build daemon.  In other cases where remote access to the daemon is needed, we recommend using Unix-domain sockets along with SSH."
 msgstr "Протокол демона @emph{неаутентичный и нешифрованный}. Использование @code{--listen=@var{host}} подходит локальным сетям, как например, кластерам, где только доверенные узлы могут соединяться с демоном сборки. В других случаях, когда необходим удалённый доступ к демону рекомендуется использовать сокеты Unix-домена вместе с SSH."
 
 #. type: table
-#: doc/guix.texi:1573
-msgid "When @code{--listen} is omitted, @command{guix-daemon} listens for connections on the Unix-domain socket located at @file{@var{localstatedir}/guix/daemon-socket/socket}."
+#: doc/guix.texi:1672
+#, fuzzy
+#| msgid "When @code{--listen} is omitted, @command{guix-daemon} listens for connections on the Unix-domain socket located at @file{@var{localstatedir}/guix/daemon-socket/socket}."
+msgid "When @option{--listen} is omitted, @command{guix-daemon} listens for connections on the Unix-domain socket located at @file{@var{localstatedir}/guix/daemon-socket/socket}."
 msgstr "Когда @code{--listen} пропущена, @command{guix-daemon} слушает соединения с сокетом Unix-домена, расположенным в @file{@var{localstatedir}/guix/daemon-socket/socket}."
 
 #. type: Plain text
-#: doc/guix.texi:1583
+#: doc/guix.texi:1682
 msgid "When using Guix on top of GNU/Linux distribution other than Guix System---a so-called @dfn{foreign distro}---a few additional steps are needed to get everything in place.  Here are some of them."
 msgstr "При использовании дистрибутива GNU/Linux, отличного от системы, называемого также @dfn{чужой дистрибутив}, необходимо несколько дополнительных шагов, чтобы всё работало. Вот некоторые из них."
 
 #. type: anchor{#1}
-#: doc/guix.texi:1587
+#: doc/guix.texi:1686
 msgid "locales-and-locpath"
 msgstr "locales-and-locpath"
 
 #. type: cindex
-#: doc/guix.texi:1587
+#: doc/guix.texi:1686
 #, no-wrap
 msgid "locales, when not on Guix System"
 msgstr "локали, если не на системе Guix"
 
 #. type: vindex
-#: doc/guix.texi:1588 doc/guix.texi:12057
+#: doc/guix.texi:1687 doc/guix.texi:13864
 #, no-wrap
 msgid "LOCPATH"
 msgstr "LOCPATH"
 
 #. type: vindex
-#: doc/guix.texi:1589
+#: doc/guix.texi:1688
 #, no-wrap
 msgid "GUIX_LOCPATH"
 msgstr "GUIX_LOCPATH"
 
 #. type: Plain text
-#: doc/guix.texi:1594
-msgid "Packages installed @i{via} Guix will not use the locale data of the host system.  Instead, you must first install one of the locale packages available with Guix and then define the @code{GUIX_LOCPATH} environment variable:"
+#: doc/guix.texi:1693
+#, fuzzy
+#| msgid "Packages installed @i{via} Guix will not use the locale data of the host system.  Instead, you must first install one of the locale packages available with Guix and then define the @code{GUIX_LOCPATH} environment variable:"
+msgid "Packages installed @i{via} Guix will not use the locale data of the host system.  Instead, you must first install one of the locale packages available with Guix and then define the @env{GUIX_LOCPATH} environment variable:"
 msgstr "Пакеты, установленные @i{с помощью} Guix, не будут использовать данные локали хост-системы. Вместо этого вы должны вначале установить один из пакетов локали, доступных в Guix, а затем определить переменную окружения @code{GUIX_LOCPATH}:"
 
 #. type: example
-#: doc/guix.texi:1598
+#: doc/guix.texi:1697
 #, no-wrap
 msgid ""
 "$ guix install glibc-locales\n"
@@ -5530,723 +6117,701 @@ msgstr ""
 "$ export GUIX_LOCPATH=$HOME/.guix-profile/lib/locale\n"
 
 #. type: Plain text
-#: doc/guix.texi:1604
+#: doc/guix.texi:1703
 #, fuzzy
 #| msgid "Note that the @code{glibc-locales} package contains data for all the locales supported by the GNU@tie{}libc and weighs in at around 110@tie{}MiB.  Alternatively, the @code{glibc-utf8-locales} is smaller but limited to a few UTF-8 locales."
 msgid "Note that the @code{glibc-locales} package contains data for all the locales supported by the GNU@tie{}libc and weighs in at around 917@tie{}MiB.  Alternatively, the @code{glibc-utf8-locales} is smaller but limited to a few UTF-8 locales."
 msgstr "Отметим, что пакет  @code{glibc-locales} содержит данные для всех локалей, поддерживаемых GNU@tie{}libc, и весит околоа 110@tie{}Миб. В альтернативу @code{glibc-utf8-locales} меньше, но ограничен несколькими локалями UTF-8."
 
 #. type: Plain text
-#: doc/guix.texi:1608
-msgid "The @code{GUIX_LOCPATH} variable plays a role similar to @code{LOCPATH} (@pxref{Locale Names, @code{LOCPATH},, libc, The GNU C Library Reference Manual}).  There are two important differences though:"
+#: doc/guix.texi:1707
+#, fuzzy
+#| msgid "The @code{GUIX_LOCPATH} variable plays a role similar to @code{LOCPATH} (@pxref{Locale Names, @code{LOCPATH},, libc, The GNU C Library Reference Manual}).  There are two important differences though:"
+msgid "The @env{GUIX_LOCPATH} variable plays a role similar to @env{LOCPATH} (@pxref{Locale Names, @env{LOCPATH},, libc, The GNU C Library Reference Manual}).  There are two important differences though:"
 msgstr "Переменная @code{GUIX_LOCPATH} играет ту же роль, что и @code{LOCPATH} (@pxref{Locale Names, @code{LOCPATH},, libc, The GNU C Library Reference Manual}). Но есть два существенных различия."
 
 #. type: enumerate
-#: doc/guix.texi:1615
-msgid "@code{GUIX_LOCPATH} is honored only by the libc in Guix, and not by the libc provided by foreign distros.  Thus, using @code{GUIX_LOCPATH} allows you to make sure the programs of the foreign distro will not end up loading incompatible locale data."
+#: doc/guix.texi:1714
+#, fuzzy
+#| msgid "@code{GUIX_LOCPATH} is honored only by the libc in Guix, and not by the libc provided by foreign distros.  Thus, using @code{GUIX_LOCPATH} allows you to make sure the programs of the foreign distro will not end up loading incompatible locale data."
+msgid "@env{GUIX_LOCPATH} is honored only by the libc in Guix, and not by the libc provided by foreign distros.  Thus, using @env{GUIX_LOCPATH} allows you to make sure the programs of the foreign distro will not end up loading incompatible locale data."
 msgstr "@code{GUIX_LOCPATH} учитывается только libc в Guix, но не учитывается libc, предоставляемым чужим дистрибутивом. Так что использование @code{GUIX_LOCPATH} позволяет вам убедиться, что программы чужого дистрибутива не будут производить загрузку несовместимых данных локали."
 
 #. type: enumerate
-#: doc/guix.texi:1622
-msgid "libc suffixes each entry of @code{GUIX_LOCPATH} with @code{/X.Y}, where @code{X.Y} is the libc version---e.g., @code{2.22}.  This means that, should your Guix profile contain a mixture of programs linked against different libc version, each libc version will only try to load locale data in the right format."
+#: doc/guix.texi:1721
+#, fuzzy
+#| msgid "libc suffixes each entry of @code{GUIX_LOCPATH} with @code{/X.Y}, where @code{X.Y} is the libc version---e.g., @code{2.22}.  This means that, should your Guix profile contain a mixture of programs linked against different libc version, each libc version will only try to load locale data in the right format."
+msgid "libc suffixes each entry of @env{GUIX_LOCPATH} with @code{/X.Y}, where @code{X.Y} is the libc version---e.g., @code{2.22}.  This means that, should your Guix profile contain a mixture of programs linked against different libc version, each libc version will only try to load locale data in the right format."
 msgstr "libc добавляет суффиксы @code{/X.Y} к каждому компоненту @code{GUIX_LOCPATH}, где @code{X.Y} - это версия libc, например, @code{2.22}. Это значит, что если ваш профиль Guix будет содержать смесь программ, связанных с дугой версией libc, каждая версия libc будет пытаться загружать только данные локали в правильном формате."
 
 #. type: Plain text
-#: doc/guix.texi:1626
+#: doc/guix.texi:1725
 msgid "This is important because the locale data format used by different libc versions may be incompatible."
 msgstr "Это важно, потому что использование данных локали другой версией libc может быть неприемлемо."
 
 #. type: cindex
-#: doc/guix.texi:1629
+#: doc/guix.texi:1728
 #, no-wrap
 msgid "name service switch, glibc"
 msgstr "выбор имён сервисов, glibc"
 
 #. type: cindex
-#: doc/guix.texi:1630
+#: doc/guix.texi:1729
 #, no-wrap
 msgid "NSS (name service switch), glibc"
 msgstr "NSS (выбор имён сервисов), glibc"
 
 #. type: cindex
-#: doc/guix.texi:1631
+#: doc/guix.texi:1730
 #, no-wrap
 msgid "nscd (name service caching daemon)"
 msgstr "nscd (демон кеша имён сервисов)"
 
 #. type: cindex
-#: doc/guix.texi:1632
+#: doc/guix.texi:1731
 #, no-wrap
 msgid "name service caching daemon (nscd)"
 msgstr "демон кеша имён сервисов (nscd)"
 
 #. type: Plain text
-#: doc/guix.texi:1639
+#: doc/guix.texi:1738
 msgid "When using Guix on a foreign distro, we @emph{strongly recommend} that the system run the GNU C library's @dfn{name service cache daemon}, @command{nscd}, which should be listening on the @file{/var/run/nscd/socket} socket.  Failing to do that, applications installed with Guix may fail to look up host names or user accounts, or may even crash.  The next paragraphs explain why."
 msgstr "При использовании Guix на чужом дистрибутиве мы @emph{настойчиво рекомендуем}, чтобы система запускала @dfn{демон кеша имён сервисов} библиотеки GNU C, @command{nscd}, который должен слушать сокет @file{/var/run/nscd/socket}. Если это не сделано, приложения, установленные Guix, могут некорректно адресовать имена хостов или аккаунты пользователей и даже падать. Ниже объясняется почему."
 
 #. type: file{#1}
-#: doc/guix.texi:1640
+#: doc/guix.texi:1739
 #, no-wrap
 msgid "nsswitch.conf"
 msgstr "nsswitch.conf"
 
 #. type: Plain text
-#: doc/guix.texi:1645
+#: doc/guix.texi:1744
 msgid "The GNU C library implements a @dfn{name service switch} (NSS), which is an extensible mechanism for ``name lookups'' in general: host name resolution, user accounts, and more (@pxref{Name Service Switch,,, libc, The GNU C Library Reference Manual})."
 msgstr "Библиотека GNU C реализует @dfn{выбор имён сервисов} (NSS), который представляет собой расширяемый механизм для резолвинга имён в целом: резолвинг имён хостов, аккаунтов пользователей и другое (@pxref{Name Service Switch,,, libc, The GNU C Library Reference Manual})."
 
 #. type: cindex
-#: doc/guix.texi:1646
+#: doc/guix.texi:1745
 #, no-wrap
 msgid "Network information service (NIS)"
 msgstr "Сервис сетевой информации (NIS)"
 
 #. type: cindex
-#: doc/guix.texi:1647
+#: doc/guix.texi:1746
 #, no-wrap
 msgid "NIS (Network information service)"
 msgstr "NIS (сервис сетевой информации)"
 
 #. type: Plain text
-#: doc/guix.texi:1656
+#: doc/guix.texi:1755
 msgid "Being extensible, the NSS supports @dfn{plugins}, which provide new name lookup implementations: for example, the @code{nss-mdns} plugin allow resolution of @code{.local} host names, the @code{nis} plugin allows user account lookup using the Network information service (NIS), and so on.  These extra ``lookup services'' are configured system-wide in @file{/etc/nsswitch.conf}, and all the programs running on the system honor those settings (@pxref{NSS Configuration File,,, libc, The GNU C Reference Manual})."
 msgstr "Будучи расширяемым, NSS поддерживает @dfn{плагины}, которые предоставляют реализации разрешения новых имён: плагин @code{nss-mdns} резолвит имена хостов @code{.local}, плагин @code{nis} адресует пользовательские аккаунты, используя сервис сетевой информации (NIS) и т.д. Эти дополнительные сервисы адресации настраиваются для всей системы в @file{/etc/nsswitch.conf}, и все запущенные в системе программы учитывают эти настройки (@pxref{NSS Configuration File,,, libc, The GNU C Reference Manual})."
 
 #. type: Plain text
-#: doc/guix.texi:1666
+#: doc/guix.texi:1765
 msgid "When they perform a name lookup---for instance by calling the @code{getaddrinfo} function in C---applications first try to connect to the nscd; on success, nscd performs name lookups on their behalf.  If the nscd is not running, then they perform the name lookup by themselves, by loading the name lookup services into their own address space and running it.  These name lookup services---the @file{libnss_*.so} files---are @code{dlopen}'d, but they may come from the host system's C library, rather than from the C library the application is linked against (the C library coming from Guix)."
 msgstr "Когда выполняется разрешение имён, например, вызовом функции C @code{getaddrinfo}, приложения вначале делают попытку соединиться с nscd; в случае успеха nscd выполняет разрешение имён по их запросу. Если nscd не запущен, тогда они выполняют разрешение имён самостоятельно, загружая сервисы разрешения имён в их собственные адресные пространства и запуская их. Эти сервисы разрешения имён --- файлы @file{libnss_*.so} --- запускаются @code{dlopen}, но они могут поставляться системной библиотекой C, а не библиотекой C, с которой залинковано приложение (библиотека C из Guix)."
 
 #. type: Plain text
-#: doc/guix.texi:1671
+#: doc/guix.texi:1770
 msgid "And this is where the problem is: if your application is linked against Guix's C library (say, glibc 2.24) and tries to load NSS plugins from another C library (say, @code{libnss_mdns.so} for glibc 2.22), it will likely crash or have its name lookups fail unexpectedly."
 msgstr "Вот где кроется проблема --- если ваше приложение залинковано с библиотекой C Guix (скажем, glibc 2.24) и пытается загрузить плагины NSS из другой библиотеки C (скажем, @code{libnss_mdns.so} для glibc 2.22), это вероятно вызовет падение или резолвинг имени завершится с ошибкой."
 
 #. type: Plain text
-#: doc/guix.texi:1676
+#: doc/guix.texi:1775
 msgid "Running @command{nscd} on the system, among other advantages, eliminates this binary incompatibility problem because those @code{libnss_*.so} files are loaded in the @command{nscd} process, not in applications themselves."
 msgstr "Запуск @command{nscd} в системе, помимо преимуществ, также исключает эту проблему несовместимости программ, потому что файлы @code{libnss_*.so} загружены в процессе @command{nscd}, а не в самом приложении."
 
 #. type: subsection
-#: doc/guix.texi:1677
+#: doc/guix.texi:1776
 #, no-wrap
 msgid "X11 Fonts"
 msgstr "Шрифты X11"
 
 #. type: Plain text
-#: doc/guix.texi:1687
-msgid "The majority of graphical applications use Fontconfig to locate and load fonts and perform X11-client-side rendering.  The @code{fontconfig} package in Guix looks for fonts in @file{$HOME/.guix-profile} by default.  Thus, to allow graphical applications installed with Guix to display fonts, you have to install fonts with Guix as well.  Essential font packages include @code{gs-fonts}, @code{font-dejavu}, and @code{font-gnu-freefont-ttf}."
+#: doc/guix.texi:1786
+#, fuzzy
+#| msgid "The majority of graphical applications use Fontconfig to locate and load fonts and perform X11-client-side rendering.  The @code{fontconfig} package in Guix looks for fonts in @file{$HOME/.guix-profile} by default.  Thus, to allow graphical applications installed with Guix to display fonts, you have to install fonts with Guix as well.  Essential font packages include @code{gs-fonts}, @code{font-dejavu}, and @code{font-gnu-freefont-ttf}."
+msgid "The majority of graphical applications use Fontconfig to locate and load fonts and perform X11-client-side rendering.  The @code{fontconfig} package in Guix looks for fonts in @file{$HOME/.guix-profile} by default.  Thus, to allow graphical applications installed with Guix to display fonts, you have to install fonts with Guix as well.  Essential font packages include @code{gs-fonts}, @code{font-dejavu}, and @code{font-gnu-freefont}."
 msgstr "Большинство графических приложений использует Fontconfig для обнаружения и загрузки шрифтов, а также рендеринга X11 на клиенте. Пакет Guix @code{fontconfig} отвечает за шрифты в @file{$HOME/.guix-profile} по умолчанию. Так что, чтобы графические приложения, установленные с помощью Guix, отображали шрифты, необходимо установить шрифты также с помощью Guix. Основные пакеты шрифтов:  @code{gs-fonts}, @code{font-dejavu} и @code{font-gnu-freefont-ttf}."
 
 #. type: code{#1}
-#: doc/guix.texi:1688
+#: doc/guix.texi:1787
 #, no-wrap
 msgid "fc-cache"
 msgstr "fc-cache"
 
 #. type: cindex
-#: doc/guix.texi:1689
+#: doc/guix.texi:1788
 #, no-wrap
 msgid "font cache"
 msgstr "кеш шрифтов"
 
 #. type: Plain text
-#: doc/guix.texi:1693
+#: doc/guix.texi:1792
 msgid "Once you have installed or removed fonts, or when you notice an application that does not find fonts, you may need to install Fontconfig and to force an update of its font cache by running:"
-msgstr ""
+msgstr "После того, как вы установили или удалили шрифты, или когда вы заметили приложение, которое не находит шрифты, вам может потребоваться установить Fontconfig и принудительно обновить кэш шрифтов, выполнив:"
 
 #. type: example
-#: doc/guix.texi:1697
+#: doc/guix.texi:1796
 #, no-wrap
 msgid ""
 "guix install fontconfig\n"
 "fc-cache -rv\n"
 msgstr ""
+"guix install fontconfig\n"
+"fc-cache -rv\n"
 
 #. type: Plain text
-#: doc/guix.texi:1705
+#: doc/guix.texi:1804
 msgid "To display text written in Chinese languages, Japanese, or Korean in graphical applications, consider installing @code{font-adobe-source-han-sans} or @code{font-wqy-zenhei}.  The former has multiple outputs, one per language family (@pxref{Packages with Multiple Outputs}).  For instance, the following command installs fonts for Chinese languages:"
 msgstr "Для отображения в графических приложениях текста на китайском, японском, корейском нужно установить @code{font-adobe-source-han-sans} или @code{font-wqy-zenhei}. Первый имеет множественный выход, один для языковой семьи (@pxref{Packages with Multiple Outputs}). Например, следующая команда устанавливает шрифты для китайских языков:"
 
 #. type: example
-#: doc/guix.texi:1708
+#: doc/guix.texi:1807
 #, no-wrap
 msgid "guix install font-adobe-source-han-sans:cn\n"
 msgstr "guix install font-adobe-source-han-sans:cn\n"
 
 #. type: code{#1}
-#: doc/guix.texi:1710
+#: doc/guix.texi:1809
 #, no-wrap
 msgid "xterm"
 msgstr "xterm"
 
 #. type: Plain text
-#: doc/guix.texi:1714
+#: doc/guix.texi:1813
 msgid "Older programs such as @command{xterm} do not use Fontconfig and instead rely on server-side font rendering.  Such programs require to specify a full name of a font using XLFD (X Logical Font Description), like this:"
 msgstr "Старые программы, например, @command{xterm}, не используют Fontconfig, а вместо этого вызывают рендеринг шрифтов на стороне сервера. Таким программам необходимо указывать полное имя шрифта, используя XLFD (X Logical Font Description), примерно так:"
 
 #. type: example
-#: doc/guix.texi:1717
+#: doc/guix.texi:1816
 #, no-wrap
 msgid "-*-dejavu sans-medium-r-normal-*-*-100-*-*-*-*-*-1\n"
 msgstr "-*-dejavu sans-medium-r-normal-*-*-100-*-*-*-*-*-1\n"
 
 #. type: Plain text
-#: doc/guix.texi:1721
+#: doc/guix.texi:1820
 msgid "To be able to use such full names for the TrueType fonts installed in your Guix profile, you need to extend the font path of the X server:"
 msgstr "Чтобы иметь возможность использовать такие полные имена для шрифтов TrueType, установленных в вашем профиле Guix, вам нужно расширить пути шрифтов X-сервера:"
 
 #. type: example
-#: doc/guix.texi:1726
+#: doc/guix.texi:1825
 #, no-wrap
 msgid "xset +fp $(dirname $(readlink -f ~/.guix-profile/share/fonts/truetype/fonts.dir))\n"
 msgstr "xset +fp $(dirname $(readlink -f ~/.guix-profile/share/fonts/truetype/fonts.dir))\n"
 
 #. type: code{#1}
-#: doc/guix.texi:1728
+#: doc/guix.texi:1827
 #, no-wrap
 msgid "xlsfonts"
 msgstr "xlsfonts"
 
 #. type: Plain text
-#: doc/guix.texi:1731
+#: doc/guix.texi:1830
 msgid "After that, you can run @code{xlsfonts} (from @code{xlsfonts} package)  to make sure your TrueType fonts are listed there."
 msgstr "После этого можно запустить @code{xlsfonts} (из пакета @code{xlsfonts}), чтобы убедиться, что ваши шрифты TrueType находятся там."
 
 #. type: code{#1}
-#: doc/guix.texi:1735 doc/guix.texi:25926
+#: doc/guix.texi:1834 doc/guix.texi:29463
 #, no-wrap
 msgid "nss-certs"
 msgstr "nss-certs"
 
 #. type: Plain text
-#: doc/guix.texi:1738
+#: doc/guix.texi:1837
 msgid "The @code{nss-certs} package provides X.509 certificates, which allow programs to authenticate Web servers accessed over HTTPS."
 msgstr "Пакет @code{nss-certs} предоставялет сертификаты X.509, которые позволяют программам аутентифицировать веб-серверы и работать через HTTPS."
 
 #. type: Plain text
-#: doc/guix.texi:1743
+#: doc/guix.texi:1842
 msgid "When using Guix on a foreign distro, you can install this package and define the relevant environment variables so that packages know where to look for certificates.  @xref{X.509 Certificates}, for detailed information."
 msgstr "При использовании Guix на чужом дистрибутиве можно установить этот пакет и определить соответствующие переменные окружения, чтобы пакеты знали, где искать сертификаты. Смотрите @xref{X.509 Certificates} для подробной информации."
 
 #. type: subsection
-#: doc/guix.texi:1744
+#: doc/guix.texi:1843
 #, no-wrap
 msgid "Emacs Packages"
 msgstr "Пакеты Emacs"
 
 #. type: code{#1}
-#: doc/guix.texi:1746
+#: doc/guix.texi:1845
 #, no-wrap
 msgid "emacs"
 msgstr "emacs"
 
 #. type: Plain text
-#: doc/guix.texi:1752
-msgid "When you install Emacs packages with Guix, the Elisp files are placed under the @file{share/emacs/site-lisp/} directory of the profile in which they are installed.  The Elisp libraries are made available to Emacs through the @code{EMACSLOADPATH} environment variable, which is set when installing Emacs itself."
-msgstr ""
+#: doc/guix.texi:1851
+#, fuzzy
+#| msgid "When you install Emacs packages with Guix, the Elisp files are placed under the @file{share/emacs/site-lisp/} directory of the profile in which they are installed.  The Elisp libraries are made available to Emacs through the @code{EMACSLOADPATH} environment variable, which is set when installing Emacs itself."
+msgid "When you install Emacs packages with Guix, the Elisp files are placed under the @file{share/emacs/site-lisp/} directory of the profile in which they are installed.  The Elisp libraries are made available to Emacs through the @env{EMACSLOADPATH} environment variable, which is set when installing Emacs itself."
+msgstr "Когда вы устанавливаете пакеты Emacs с Guix, файлы пакетов помещаются в каталог @file{share/emacs/site-lisp/} того профиля, в котором они установлены. Библиотеки Elisp доступны для Emacs через переменную среды @code{EMACSLOADPATH}, которая устанавливается при установке самого Emacs."
 
 #. type: Plain text
-#: doc/guix.texi:1759
+#: doc/guix.texi:1858
 #, fuzzy
 #| msgid "By default, Emacs (installed with Guix) ``knows'' where these packages are placed, so you do not need to perform any configuration.  If, for some reason, you want to avoid auto-loading Emacs packages installed with Guix, you can do so by running Emacs with @code{--no-site-file} option (@pxref{Init File,,, emacs, The GNU Emacs Manual})."
-msgid "Additionally, autoload definitions are automatically evaluated at the initialization of Emacs, by the Guix-specific @code{guix-emacs-autoload-packages} procedure.  If, for some reason, you want to avoid auto-loading the Emacs packages installed with Guix, you can do so by running Emacs with the @code{--no-site-file} option (@pxref{Init File,,, emacs, The GNU Emacs Manual})."
+msgid "Additionally, autoload definitions are automatically evaluated at the initialization of Emacs, by the Guix-specific @code{guix-emacs-autoload-packages} procedure.  If, for some reason, you want to avoid auto-loading the Emacs packages installed with Guix, you can do so by running Emacs with the @option{--no-site-file} option (@pxref{Init File,,, emacs, The GNU Emacs Manual})."
 msgstr "По умолчанию Emacs (установленный Guix) \"знает\", куда размещаются эти пакеты, так что вам не нужно выполнять конфигурацию. Если по каким-либо причинам вы хотите отменить автозагрузку пакетов Emacs, установленных с помощью Guix, вы можете это сделать, запустив Emacs с опцией @code{--no-site-file} (@pxref{Init File,,, emacs, The GNU Emacs Manual})."
 
-#. type: subsection
-#: doc/guix.texi:1760
-#, no-wrap
-msgid "The GCC toolchain"
-msgstr "Тулчейн GCC"
-
-#. type: cindex
-#: doc/guix.texi:1762
-#, no-wrap
-msgid "GCC"
-msgstr "GCC"
-
 #. type: cindex
-#: doc/guix.texi:1763
-#, no-wrap
-msgid "ld-wrapper"
-msgstr "ld-wrapper"
-
-#. type: Plain text
-#: doc/guix.texi:1772
-msgid "Guix offers individual compiler packages such as @code{gcc} but if you are in need of a complete toolchain for compiling and linking source code what you really want is the @code{gcc-toolchain} package.  This package provides a complete GCC toolchain for C/C++ development, including GCC itself, the GNU C Library (headers and binaries, plus debugging symbols in the @code{debug} output), Binutils, and a linker wrapper."
-msgstr "Guix предлагает индивидуальные пакеты компиляторов, как например, @code{gcc}. Но если вам необходим полный набор инструментов (тулчейн) для компиляции и линковки исходного кода, тогда то, что вам действительно нужно, --- это пакет @code{gcc-toolchain}. Этот пакет предоставляет полный тулчейн GCC для разработки C/C++, включая сам GCC, библиотеку GNU C (заголовки и бинарники, а также отладочные символы в выходе @code{debug}), Binutils и набор линковщика."
-
-#. type: Plain text
-#: doc/guix.texi:1778
-msgid "The wrapper's purpose is to inspect the @code{-L} and @code{-l} switches passed to the linker, add corresponding @code{-rpath} arguments, and invoke the actual linker with this new set of arguments.  You can instruct the wrapper to refuse to link against libraries not in the store by setting the @code{GUIX_LD_WRAPPER_ALLOW_IMPURITIES} environment variable to @code{no}."
-msgstr "Цель оболочки --- проверять опции @code{-L} и @code{-l}, направленные линковщику, и соответствующие аргументы @code{-rpath}, и вызывать соответствующий линковщик с этим новым набором аргументов. Вы можете указать оболочке отклонять линковку с библиотеками, находящимися не на складе, установив переменную окружения @code{GUIX_LD_WRAPPER_ALLOW_IMPURITIES} в значение @code{no}."
-
-#. type: cindex
-#: doc/guix.texi:1782
+#: doc/guix.texi:1863
 #, no-wrap
 msgid "Upgrading Guix, on a foreign distro"
 msgstr "Обновление Guix на ином дистрибутиве"
 
 #. type: Plain text
-#: doc/guix.texi:1785
-#, fuzzy
-#| msgid "upgrading Guix"
+#: doc/guix.texi:1866
 msgid "To upgrade Guix, run:"
 msgstr "Чтобы обновить Guix, запустите:"
 
 #. type: example
-#: doc/guix.texi:1788
-#, fuzzy, no-wrap
-#| msgid "guix pull"
+#: doc/guix.texi:1869 doc/guix.texi:2739
+#, no-wrap
 msgid "guix pull\n"
 msgstr "guix pull\n"
 
 #. type: Plain text
-#: doc/guix.texi:1791
-#, fuzzy
-#| msgid "@xref{Invoking guix pack}, for more info on this handy tool."
+#: doc/guix.texi:1872
 msgid "@xref{Invoking guix pull}, for more information."
-msgstr "@xref{Invoking guix pack} для подробной информации об этом полезном инструменте."
+msgstr "@xref{Invoking guix pull} для дополнительной информации."
 
 #. type: cindex
-#: doc/guix.texi:1792
+#: doc/guix.texi:1873
 #, no-wrap
 msgid "upgrading Guix for the root user, on a foreign distro"
 msgstr "обновление Guix для пользователя root на ином дистрибутиве"
 
 #. type: cindex
-#: doc/guix.texi:1793
+#: doc/guix.texi:1874
 #, no-wrap
 msgid "upgrading the Guix daemon, on a foreign distro"
 msgstr "обновление Guix демона на ином дистрибутиве"
 
 #. type: cindex
-#: doc/guix.texi:1794
+#: doc/guix.texi:1875
 #, no-wrap
 msgid "@command{guix pull} for the root user, on a foreign distro"
 msgstr "@command{guix pull} для пользователя root, на ином дистрибутиве"
 
 #. type: Plain text
-#: doc/guix.texi:1797
+#: doc/guix.texi:1878
 msgid "On a foreign distro, you can upgrade the build daemon by running:"
-msgstr ""
+msgstr "В ином дистрибутиве вы можете обновить демон сборки, запустив:"
 
 #. type: example
-#: doc/guix.texi:1800
-#, fuzzy, no-wrap
-#| msgid "Invoking guix pull"
+#: doc/guix.texi:1881
+#, no-wrap
 msgid "sudo -i guix pull\n"
-msgstr "Запуск guix pull"
+msgstr "sudo -i guix pull\n"
 
 #. type: Plain text
-#: doc/guix.texi:1805
+#: doc/guix.texi:1886
 msgid "followed by (assuming your distro uses the systemd service management tool):"
-msgstr ""
+msgstr "затем (при условии, что ваш дистрибутив использует инструмент управления сервисами systemd):"
 
 #. type: example
-#: doc/guix.texi:1808
-#, fuzzy, no-wrap
-#| msgid "semodule -i etc/guix-daemon.cil\n"
+#: doc/guix.texi:1889
+#, no-wrap
 msgid "systemctl restart guix-daemon.service\n"
-msgstr "semodule -i etc/guix-daemon.cil\n"
+msgstr "systemctl restart guix-daemon.service\n"
 
 #. type: Plain text
-#: doc/guix.texi:1812
+#: doc/guix.texi:1893
 msgid "On Guix System, upgrading the daemon is achieved by reconfiguring the system (@pxref{Invoking guix system, @code{guix system reconfigure}})."
-msgstr ""
+msgstr "В системе Guix обновление демона достигается путем перенастройки системы (@pxref{Invoking guix system, @code{guix system reconfigure}})."
 
 #. type: cindex
-#: doc/guix.texi:1819
+#: doc/guix.texi:1900
 #, no-wrap
 msgid "installing Guix System"
 msgstr "установка системы Guix"
 
 #. type: cindex
-#: doc/guix.texi:1820
+#: doc/guix.texi:1901
 #, no-wrap
 msgid "Guix System, installation"
 msgstr "Система Guix, установка"
 
 #. type: Plain text
-#: doc/guix.texi:1825
+#: doc/guix.texi:1906
 msgid "This section explains how to install Guix System on a machine.  Guix, as a package manager, can also be installed on top of a running GNU/Linux system, @pxref{Installation}."
 msgstr "Этот раздел объясняет, как установить систему Guix на компьютер. Guix, как пакетный менеджер, можно также установить на уже установленную систему GNU/Linux (@pxref{Installation})."
 
 #. type: quotation
-#: doc/guix.texi:1834
+#: doc/guix.texi:1915
 msgid "You are reading this documentation with an Info reader.  For details on how to use it, hit the @key{RET} key (``return'' or ``enter'') on the link that follows: @pxref{Top, Info reader,, info-stnd, Stand-alone GNU Info}.  Hit @kbd{l} afterwards to come back here."
 msgstr "Вы читаете этот документ с помощью info-просмотрщика. Чтобы узнать, как им пользоваться, нажмите кнопку @key{Ввод} (enter) по ссылке: @pxref{Top, Info reader,, info-stnd, Stand-alone GNU Info}. Нажмите @kbd{1} после этого, чтобы вернуться."
 
 #. type: quotation
-#: doc/guix.texi:1837
-msgid "Alternately, run @command{info info} in another tty to keep the manual available."
+#: doc/guix.texi:1918
+#, fuzzy
+#| msgid "Alternately, run @command{info info} in another tty to keep the manual available."
+msgid "Alternatively, run @command{info info} in another tty to keep the manual available."
 msgstr "Или запустите @command{info info} в другом  tty, чтобы оставить руководство доступным."
 
 #. type: Plain text
-#: doc/guix.texi:1858
+#: doc/guix.texi:1939
 msgid "We consider Guix System to be ready for a wide range of ``desktop'' and server use cases.  The reliability guarantees it provides---transactional upgrades and rollbacks, reproducibility---make it a solid foundation."
 msgstr "Мы полагаем, система Guix будет широко применяться для офисных и серверных решений. Гарантия надёжности основана на транзакционных обновлениях, откатах и воспроизводимости. Это наше прочное основание."
 
 #. type: Plain text
-#: doc/guix.texi:1861
+#: doc/guix.texi:1942
 msgid "Nevertheless, before you proceed with the installation, be aware of the following noteworthy limitations applicable to version @value{VERSION}:"
 msgstr "Тем не менее, перед началом установки, ознакомьтесь с важной информацией об ограничениях версии @value{VERSION}:"
 
 #. type: itemize
-#: doc/guix.texi:1865
+#: doc/guix.texi:1946
 msgid "Support for the Logical Volume Manager (LVM) is missing."
 msgstr "Менеджер логических томов (LVM) отсутствует."
 
 #. type: itemize
-#: doc/guix.texi:1869
+#: doc/guix.texi:1950
 msgid "More and more system services are provided (@pxref{Services}), but some may be missing."
 msgstr "Мы постоянно добавляем новые сервисы (@pxref{Services}), но некоторые могут отсутствовать."
 
 #. type: itemize
-#: doc/guix.texi:1874
+#: doc/guix.texi:1955
 msgid "GNOME, Xfce, LXDE, and Enlightenment are available (@pxref{Desktop Services}), as well as a number of X11 window managers.  However, KDE is currently missing."
 msgstr "Доступные GNOME, Xfce, LXDE и Enlightenment (@pxref{Desktop Services}), а также ряд оконных менеджеров X11. Однако, KDE в настоящее время отсутствует."
 
 #. type: Plain text
-#: doc/guix.texi:1879
+#: doc/guix.texi:1960
 msgid "More than a disclaimer, this is an invitation to report issues (and success stories!), and to join us in improving it.  @xref{Contributing}, for more info."
 msgstr "Мы настойчиво призываем вас присылать отчёты о проблемах (или историиуспеха!). Присоединяйтесь к нам, если вы хотите улучшить Guix. Смотрите @xref{Contributing}, чтобы узнать больше."
 
 #. type: cindex
-#: doc/guix.texi:1884
+#: doc/guix.texi:1965
 #, no-wrap
 msgid "hardware support on Guix System"
 msgstr "поддержка аппаратного обеспечения в системе Guix"
 
 #. type: Plain text
-#: doc/guix.texi:1893
+#: doc/guix.texi:1974
 msgid "GNU@tie{}Guix focuses on respecting the user's computing freedom.  It builds around the kernel Linux-libre, which means that only hardware for which free software drivers and firmware exist is supported.  Nowadays, a wide range of off-the-shelf hardware is supported on GNU/Linux-libre---from keyboards to graphics cards to scanners and Ethernet controllers.  Unfortunately, there are still areas where hardware vendors deny users control over their own computing, and such hardware is not supported on Guix System."
 msgstr "GNU@tie{}Guix особенно заботится об уважении свободы пользователя при работе за компьютером. Она построена на ядре Linux-libre, что означает, что поддерживается только аппаратное обеспечение, которое имеет свободные драйверы и прошивки. Сегодня широкий список наличествующей аппаратуры поддерживается GNU/Linux-libre --- от клавиатур и графических карт до сканеров и контроллеров Ethernet. К сожалению, всё ещё остаётся ряд производителей железа, которые запрещают пользователям управлять их устройствами, и такое аппаратное обеспечение не поддерживается системой Guix."
 
 #. type: cindex
-#: doc/guix.texi:1894
-#, fuzzy, no-wrap
+#: doc/guix.texi:1975
+#, no-wrap
 msgid "WiFi, hardware support"
-msgstr ""
-"#-#-#-#-#  guix-manual-1.0.0-pre3.ru.po (guix-manual 1.0.0-pre3)  #-#-#-#-#\n"
-"WiFi, поддержка аппаратного обеспечения\n"
-"#-#-#-#-#  guix-manual-1.0.0-pre3.ru_RU.po (guix-manual 1.0.0-pre1)  #-#-#-#-#\n"
-"Wi-Fi, поддержка аппаратного обеспечения"
+msgstr "WiFi, поддержка аппаратного обеспечения"
 
 #. type: Plain text
-#: doc/guix.texi:1903
+#: doc/guix.texi:1984
 msgid "One of the main areas where free drivers or firmware are lacking is WiFi devices.  WiFi devices known to work include those using Atheros chips (AR9271 and AR7010), which corresponds to the @code{ath9k} Linux-libre driver, and those using Broadcom/AirForce chips (BCM43xx with Wireless-Core Revision 5), which corresponds to the @code{b43-open} Linux-libre driver.  Free firmware exists for both and is available out-of-the-box on Guix System, as part of @code{%base-firmware} (@pxref{operating-system Reference, @code{firmware}})."
 msgstr "Основной областью, в которой отсутствуют свободные драйверы и прошивки, являются устройства Wi-Fi. Работают устройства Wi-Fi, которые используют платы Atheros (AR9271 и AR7010) и взаимодействуют с драйвером Linux-libre @code{ath9k}, также использующие платы Broadcom/AirForce (BCM43xx with Wireless-Core Revision 5), которые работают с драйвером Linux-libre @code{b43-open}. Свободная прошивка существует для обоих и доступна в системе Guix из коробки как часть @var{%base-firmware} (@pxref{operating-system Reference, @code{firmware}})."
 
 #. type: cindex
-#: doc/guix.texi:1904
+#: doc/guix.texi:1985
 #, no-wrap
 msgid "RYF, Respects Your Freedom"
 msgstr "уважение вашей свободы (RYF)"
 
 #. type: Plain text
-#: doc/guix.texi:1910
+#: doc/guix.texi:1991
 msgid "The @uref{https://www.fsf.org/, Free Software Foundation} runs @uref{https://www.fsf.org/ryf, @dfn{Respects Your Freedom}} (RYF), a certification program for hardware products that respect your freedom and your privacy and ensure that you have control over your device.  We encourage you to check the list of RYF-certified devices."
 msgstr "@uref{https://www.fsf.org/, Фонд свободного программного обспечения FSF} ведёт @uref{https://www.fsf.org/ryf, @dfn{Уважение вашей свободы}} (RYF) --- программу сертификации аппаратного обеспечения, которое уважает вашу свободу и вашу безопасность и утверждает, что вы имеете контроль над вашими устройствами. Мы побуждаем вас проверить список устройств, сертифицированных RYF."
 
 #. type: Plain text
-#: doc/guix.texi:1914
+#: doc/guix.texi:1995
 msgid "Another useful resource is the @uref{https://www.h-node.org/, H-Node} web site.  It contains a catalog of hardware devices with information about their support in GNU/Linux."
 msgstr "Другой полезный ресурс --- сайт @uref{https://www.h-node.org/, H-Node}. Он содержит каталог устройств с информацией об их поддержке в GNU/Linux."
 
 #. type: Plain text
-#: doc/guix.texi:1923
-msgid "An ISO-9660 installation image that can be written to a USB stick or burnt to a DVD can be downloaded from @indicateurl{@value{BASE-URL}/guix-system-install-@value{VERSION}.@var{system}.iso.xz}, where @var{system} is one of:"
+#: doc/guix.texi:2004
+#, fuzzy
+#| msgid "An ISO-9660 installation image that can be written to a USB stick or burnt to a DVD can be downloaded from @indicateurl{@value{BASE-URL}/guix-system-install-@value{VERSION}.@var{system}.iso.xz}, where @var{system} is one of:"
+msgid "An ISO-9660 installation image that can be written to a USB stick or burnt to a DVD can be downloaded from @indicateurl{@value{BASE-URL}/guix-system-install-@value{VERSION}.x86_64-linux.iso.xz}, where you can replace @code{x86_64-linux} with one of:"
 msgstr "Установочный образ ISO-9660 может быть записан на USB-флеш или DVD, скачать его можно по адресу: @indicateurl{https://alpha.gnu.org/gnu/guix/guix-system-install-@value{VERSION}.@var{system}.iso.xz}, где @var{system} одна из следующих:"
 
 #. type: table
-#: doc/guix.texi:1927
+#: doc/guix.texi:2008
 msgid "for a GNU/Linux system on Intel/AMD-compatible 64-bit CPUs;"
 msgstr "для системы GNU/Linux на 64-битных Intel/AMD-совместимых процессорах;"
 
 #. type: table
-#: doc/guix.texi:1930
+#: doc/guix.texi:2011
 msgid "for a 32-bit GNU/Linux system on Intel-compatible CPUs."
 msgstr "для системы GNU/Linux на 32-битных Intel-совместимых процессорах."
 
 #. type: Plain text
-#: doc/guix.texi:1935
+#: doc/guix.texi:2016
 msgid "Make sure to download the associated @file{.sig} file and to verify the authenticity of the image against it, along these lines:"
 msgstr "Обязательно скачайте связанный файл подписи @file{.sig} и проверьте аутентичность образа так:"
 
 #. type: example
-#: doc/guix.texi:1939
+#: doc/guix.texi:2020
 #, no-wrap
 msgid ""
-"$ wget @value{BASE-URL}/guix-system-install-@value{VERSION}.@var{system}.iso.xz.sig\n"
-"$ gpg --verify guix-system-install-@value{VERSION}.@var{system}.iso.xz.sig\n"
+"$ wget @value{BASE-URL}/guix-system-install-@value{VERSION}.x86_64-linux.iso.xz.sig\n"
+"$ gpg --verify guix-system-install-@value{VERSION}.x86_64-linux.iso.xz.sig\n"
 msgstr ""
-"$ wget @value{BASE-URL}/guix-system-install-@value{VERSION}.@var{system}.iso.xz.sig\n"
-"$ gpg --verify guix-system-install-@value{VERSION}.@var{system}.iso.xz.sig\n"
+"$ wget @value{BASE-URL}/guix-system-install-@value{VERSION}.x86_64-linux.iso.xz.sig\n"
+"$ gpg --verify guix-system-install-@value{VERSION}.x86_64-linux.iso.xz.sig\n"
 
 #. type: Plain text
-#: doc/guix.texi:1959
+#: doc/guix.texi:2040
 msgid "This image contains the tools necessary for an installation.  It is meant to be copied @emph{as is} to a large-enough USB stick or DVD."
 msgstr "Этот образ содержит инструменты, необходимые для установки. Он должен копироваться @emph{как есть} на большую USB-флеш или DVD."
 
 #. type: unnumberedsubsec
-#: doc/guix.texi:1960
+#: doc/guix.texi:2041
 #, no-wrap
 msgid "Copying to a USB Stick"
 msgstr "Запись на USB-флеш"
 
 #. type: Plain text
-#: doc/guix.texi:1963
+#: doc/guix.texi:2044
 msgid "To copy the image to a USB stick, follow these steps:"
 msgstr "Чтобы записать образ на USB-флеш, выполните следующие шаги:"
 
 #. type: enumerate
-#: doc/guix.texi:1967 doc/guix.texi:1992
+#: doc/guix.texi:2048 doc/guix.texi:2073
 msgid "Decompress the image using the @command{xz} command:"
 msgstr "Распакуйте образ, используя команду @command{xz}:"
 
 #. type: example
-#: doc/guix.texi:1970 doc/guix.texi:1995
+#: doc/guix.texi:2051 doc/guix.texi:2076
 #, no-wrap
-msgid "xz -d guix-system-install-@value{VERSION}.@var{system}.iso.xz\n"
-msgstr "xz -d guix-system-install-@value{VERSION}.@var{system}.iso.xz\n"
+msgid "xz -d guix-system-install-@value{VERSION}.x86_64-linux.iso.xz\n"
+msgstr "xz -d guix-system-install-@value{VERSION}.x86_64-linux.iso.xz\n"
 
 #. type: enumerate
-#: doc/guix.texi:1976
+#: doc/guix.texi:2057
 msgid "Insert a USB stick of 1@tie{}GiB or more into your machine, and determine its device name.  Assuming that the USB stick is known as @file{/dev/sdX}, copy the image with:"
 msgstr "Вставьте в компьютер USB-флеш объёмом 1@tie{}Гб или более и определите его имя. Учитывая имя (обычно соответствующее @file{/dev/sdX}) скопируйте образ на него:"
 
 #. type: example
-#: doc/guix.texi:1980
+#: doc/guix.texi:2061
 #, no-wrap
 msgid ""
-"dd if=guix-system-install-@value{VERSION}.@var{system}.iso of=/dev/sdX\n"
+"dd if=guix-system-install-@value{VERSION}.x86_64-linux.iso of=/dev/sdX status=progress\n"
 "sync\n"
 msgstr ""
-"dd if=guix-system-install-@value{VERSION}.@var{system}.iso of=/dev/sdX\n"
+"dd if=guix-system-install-@value{VERSION}.x86_64-linux.iso of=/dev/sdX status=progress\n"
 "sync\n"
 
 #. type: enumerate
-#: doc/guix.texi:1983
+#: doc/guix.texi:2064
 msgid "Access to @file{/dev/sdX} usually requires root privileges."
 msgstr "Доступ к @file{/dev/sdX} обычно требует привилегий root."
 
 #. type: unnumberedsubsec
-#: doc/guix.texi:1985
+#: doc/guix.texi:2066
 #, no-wrap
 msgid "Burning on a DVD"
 msgstr "Запись на DVD"
 
 #. type: Plain text
-#: doc/guix.texi:1988
+#: doc/guix.texi:2069
 msgid "To copy the image to a DVD, follow these steps:"
 msgstr "Чтобы скопировать образ на DVD, проделайте следующие шаги:"
 
 #. type: enumerate
-#: doc/guix.texi:2001
+#: doc/guix.texi:2082
 msgid "Insert a blank DVD into your machine, and determine its device name.  Assuming that the DVD drive is known as @file{/dev/srX}, copy the image with:"
 msgstr "Вставьте чистый DVD в компьютер и определите имя устройства. Обычно DVD определяется как @file{/dev/srX}, скопируйте образ так:"
 
 #. type: example
-#: doc/guix.texi:2004
+#: doc/guix.texi:2085
 #, no-wrap
-msgid "growisofs -dvd-compat -Z /dev/srX=guix-system-install-@value{VERSION}.@var{system}.iso\n"
-msgstr "growisofs -dvd-compat -Z /dev/srX=guix-system-install-@value{VERSION}.@var{system}.iso\n"
+msgid "growisofs -dvd-compat -Z /dev/srX=guix-system-install-@value{VERSION}.x86_64-linux.iso\n"
+msgstr "growisofs -dvd-compat -Z /dev/srX=guix-system-install-@value{VERSION}.x86_64-linux.iso\n"
 
 #. type: enumerate
-#: doc/guix.texi:2007
+#: doc/guix.texi:2088
 msgid "Access to @file{/dev/srX} usually requires root privileges."
 msgstr "Доступ к @file{/dev/srX} обычно требует привилегий root."
 
 #. type: unnumberedsubsec
-#: doc/guix.texi:2009
+#: doc/guix.texi:2090
 #, no-wrap
 msgid "Booting"
 msgstr "Загрузка"
 
 #. type: Plain text
-#: doc/guix.texi:2016
+#: doc/guix.texi:2097
 #, fuzzy
 #| msgid "Once this is done, you should be able to reboot the system and boot from the USB stick or DVD.  The latter usually requires you to get in the BIOS or UEFI boot menu, where you can choose to boot from the USB stick."
 msgid "Once this is done, you should be able to reboot the system and boot from the USB stick or DVD.  The latter usually requires you to get in the BIOS or UEFI boot menu, where you can choose to boot from the USB stick.  In order to boot from Libreboot, switch to the command mode by pressing the @kbd{c} key and type @command{search_grub usb}."
 msgstr "Когда это сделано, вы должны перезагрузить систему и загрузиться с USB-флеш или DVD. Последнее обычно требует доступа к меню BIOS или UEFI, где можно выбрать загрузку с USB-флеш."
 
 #. type: Plain text
-#: doc/guix.texi:2019
+#: doc/guix.texi:2100
 msgid "@xref{Installing Guix in a VM}, if, instead, you would like to install Guix System in a virtual machine (VM)."
 msgstr "Смотрите @xref{Installing Guix in a VM}, если вы хотите установить систему Guix на виртуальную машину (VM)."
 
 #. type: Plain text
-#: doc/guix.texi:2029
-msgid "Once you have booted, you can use the guided graphical installer, which makes it easy to get started (@pxref{Guided Graphical Installation}).  Alternately, if you are already familiar with GNU/Linux and if you want more control than what the graphical installer provides, you can choose the ``manual'' installation process (@pxref{Manual Installation})."
+#: doc/guix.texi:2110
+#, fuzzy
+#| msgid "Once you have booted, you can use the guided graphical installer, which makes it easy to get started (@pxref{Guided Graphical Installation}).  Alternately, if you are already familiar with GNU/Linux and if you want more control than what the graphical installer provides, you can choose the ``manual'' installation process (@pxref{Manual Installation})."
+msgid "Once you have booted, you can use the guided graphical installer, which makes it easy to get started (@pxref{Guided Graphical Installation}).  Alternatively, if you are already familiar with GNU/Linux and if you want more control than what the graphical installer provides, you can choose the ``manual'' installation process (@pxref{Manual Installation})."
 msgstr "Когда вы загрузитесь, вы можете использовать графическую установку, которая намного проще для начала (@pxref{Guided Graphical Installation}). Или если вы уже знакомы с GNU/Linux или вы хотите больший контроль, чем это предоставляет графическая установка, вы можете выбрать ручной процесс установки (@pxref{Manual Installation})."
 
 #. type: Plain text
-#: doc/guix.texi:2037
+#: doc/guix.texi:2118
 msgid "The graphical installer is available on TTY1.  You can obtain root shells on TTYs 3 to 6 by hitting @kbd{ctrl-alt-f3}, @kbd{ctrl-alt-f4}, etc.  TTY2 shows this documentation and you can reach it with @kbd{ctrl-alt-f2}.  Documentation is browsable using the Info reader commands (@pxref{Top,,, info-stnd, Stand-alone GNU Info}).  The installation system runs the GPM mouse daemon, which allows you to select text with the left mouse button and to paste it with the middle button."
 msgstr "Графическа установка доступна в TTY1. Вы можете запустить оболочку root в TTY 3-6, нажимая @kbd{ctrl-alt-f3}, @kbd{ctrl-alt-f4} и т.д.  TTY2 отображает эту документацию, открыть его можно клавишами @kbd{ctrl-alt-f2}. Листать документацию можно командами просмотрщика Info (@pxref{Top,,, info-stnd, Stand-alone GNU Info}). Установка системы запускает демона мыши GPM, который позволяет вам выделять текст лековй кнопкой мыши и вставлять средней кнопкой."
 
 #. type: quotation
-#: doc/guix.texi:2042
+#: doc/guix.texi:2123
 msgid "Installation requires access to the Internet so that any missing dependencies of your system configuration can be downloaded.  See the ``Networking'' section below."
 msgstr "Установка требует доступа к Интернету, чтобы скачивать любые отсутствующие зависимости в вашей конфигурации системы. Смотрите раздел \"Сеть\" ниже."
 
 #. type: Plain text
-#: doc/guix.texi:2049
+#: doc/guix.texi:2130
 msgid "The graphical installer is a text-based user interface.  It will guide you, with dialog boxes, through the steps needed to install GNU@tie{}Guix System."
 msgstr "Графический установщик представляет собой текстовый интерфейс. Он взаимодействует через диалоговые блоки, проходя шаги установки системы GNU@tie{}Guix."
 
 #. type: Plain text
-#: doc/guix.texi:2054
+#: doc/guix.texi:2135
 msgid "The first dialog boxes allow you to set up the system as you use it during the installation: you can choose the language, keyboard layout, and set up networking, which will be used during the installation.  The image below shows the networking dialog."
 msgstr "Первый диалоговый блок позволяет вам установить систему в таком виде, как во время установки. Вы можете выбрать язык, раскладку клавиатуры, задать настройки сети для установки. На картинке ниже --- диалог настройки сети."
 
 #. type: Plain text
-#: doc/guix.texi:2056
+#: doc/guix.texi:2137
 msgid "@image{images/installer-network,5in,, networking setup with the graphical installer}"
 msgstr "@image{images/installer-network,5in,, networking setup with the graphical installer}"
 
 #. type: Plain text
-#: doc/guix.texi:2061
+#: doc/guix.texi:2142
 msgid "Later steps allow you to partition your hard disk, as shown in the image below, to choose whether or not to use encrypted file systems, to enter the host name and root password, and to create an additional account, among other things."
 msgstr "Следующие шаги позволят вам разметить диск, как это показано на картинке ниже. Также можно выбрать шифрование вайловой системы (или без шифрования), ввести имя хоста и пароль root, создать дополнительную учётную запись и другие действия."
 
 #. type: Plain text
-#: doc/guix.texi:2063
+#: doc/guix.texi:2144
 msgid "@image{images/installer-partitions,5in,, partitioning with the graphical installer}"
 msgstr "@image{images/installer-partitions,5in,, partitioning with the graphical installer}"
 
 #. type: Plain text
-#: doc/guix.texi:2066
+#: doc/guix.texi:2147
 msgid "Note that, at any time, the installer allows you to exit the current installation step and resume at a previous step, as show in the image below."
 msgstr "Отметим, что в любое время установщик позволяет вам отменить текущий шаг и вернуться к предыдущему шагу установки, как это показано на картинке ниже."
 
 #. type: Plain text
-#: doc/guix.texi:2068
+#: doc/guix.texi:2149
 msgid "@image{images/installer-resume,5in,, resuming the installation process}"
 msgstr "@image{images/installer-resume,5in,, resuming the installation process}"
 
 #. type: Plain text
-#: doc/guix.texi:2073
+#: doc/guix.texi:2154
 msgid "Once you're done, the installer produces an operating system configuration and displays it (@pxref{Using the Configuration System}).  At that point you can hit ``OK'' and installation will proceed.  On success, you can reboot into the new system and enjoy.  @xref{After System Installation}, for what's next!"
 msgstr "Когда настройки выполнены, установщик сгенерирует конфигурацию операционной системы и отобразит её (@pxref{Using the Configuration System}). На этом этапе нажатие \"OK\" запустит установку. После успешнго завершения нужно перезагрузиться и использовать новую систему. Смотрите @xref{After System Installation}, чтобы узнать ещё больше."
 
 #. type: Plain text
-#: doc/guix.texi:2083
+#: doc/guix.texi:2164
 msgid "This section describes how you would ``manually'' install GNU@tie{}Guix System on your machine.  This option requires familiarity with GNU/Linux, with the shell, and with common administration tools.  If you think this is not for you, consider using the guided graphical installer (@pxref{Guided Graphical Installation})."
 msgstr "Этот раздел описывает, как можно вручную установить систему GNU@tie{}Guix на вашу машину. Это потребует знаний GNU/Linux, оболочки и инструментов администрирования. Если вы считаете, это не для вас, используйте вариант графической установки (@pxref{Guided Graphical Installation})."
 
 #. type: Plain text
-#: doc/guix.texi:2089
+#: doc/guix.texi:2170
 msgid "The installation system provides root shells on TTYs 3 to 6; press @kbd{ctrl-alt-f3}, @kbd{ctrl-alt-f4}, and so on to reach them.  It includes many common tools needed to install the system.  But it is also a full-blown Guix System, which means that you can install additional packages, should you need it, using @command{guix package} (@pxref{Invoking guix package})."
 msgstr "Во время установки доступна оболочка root в TTY от 3 до 6. Нажмите  @kbd{ctrl-alt-f3}, @kbd{ctrl-alt-f4} и т.д., чтобы переключиться на них. Они имеют много стандартных инструментов для установки системы. Но это также работающая система Guix, а это значит, что вы можете установить дополнительные пакеты, которые потребуются, используя @command{guix package} (@pxref{Invoking guix package})."
 
 #. type: subsection
-#: doc/guix.texi:2096
+#: doc/guix.texi:2177
 #, no-wrap
 msgid "Keyboard Layout, Networking, and Partitioning"
 msgstr "Раскладка клавиатуры, Сеть, Разметка диска"
 
 #. type: Plain text
-#: doc/guix.texi:2101
+#: doc/guix.texi:2182
 msgid "Before you can install the system, you may want to adjust the keyboard layout, set up networking, and partition your target hard disk.  This section will guide you through this."
 msgstr "Перед установкой системы вам может понадобиться смена раскладки клавиатуры, а также настройка сети и разметка целевого жёсткого диска. В этом разделе приведены соответствующие инструкции."
 
 #. type: cindex
-#: doc/guix.texi:2104 doc/guix.texi:11882
+#: doc/guix.texi:2185 doc/guix.texi:13689
 #, no-wrap
 msgid "keyboard layout"
 msgstr "раскладка клавиатуры"
 
 #. type: Plain text
-#: doc/guix.texi:2108
+#: doc/guix.texi:2189
 msgid "The installation image uses the US qwerty keyboard layout.  If you want to change it, you can use the @command{loadkeys} command.  For example, the following command selects the Dvorak keyboard layout:"
 msgstr "Установочный образ использует раскладку клавиатуры US qwerty. Если нужно поменять её, можно пользоваться командой @command{loadkeys}. Например, следующая команда выбирает раскладку клавиатуры Dvorak:"
 
 #. type: example
-#: doc/guix.texi:2111
+#: doc/guix.texi:2192
 #, no-wrap
 msgid "loadkeys dvorak\n"
 msgstr "loadkeys dvorak\n"
 
 #. type: Plain text
-#: doc/guix.texi:2116
+#: doc/guix.texi:2197
 msgid "See the files under @file{/run/current-system/profile/share/keymaps} for a list of available keyboard layouts.  Run @command{man loadkeys} for more information."
 msgstr "Смотрите файлы в @file{/run/current-system/profile/share/keymaps}, чтобы найти список доступных раскладок. Запустите @command{man loadkeys}, чтобы узнать больше."
 
 #. type: subsubsection
-#: doc/guix.texi:2117
+#: doc/guix.texi:2198
 #, no-wrap
 msgid "Networking"
 msgstr "Сеть"
 
 #. type: Plain text
-#: doc/guix.texi:2120
+#: doc/guix.texi:2201
 msgid "Run the following command to see what your network interfaces are called:"
 msgstr "Запустите следующую команду, чтобы узнать имена сетевых интерфейсов:"
 
 #. type: example
-#: doc/guix.texi:2123
+#: doc/guix.texi:2204
 #, no-wrap
 msgid "ifconfig -a\n"
 msgstr "ifconfig -a\n"
 
 #. type: table
-#: doc/guix.texi:2127 doc/guix.texi:2149
+#: doc/guix.texi:2208 doc/guix.texi:2230
 msgid "@dots{} or, using the GNU/Linux-specific @command{ip} command:"
 msgstr "@dots{} или используйте специальную команду GNU/Linux @command{ip}:"
 
 #. type: example
-#: doc/guix.texi:2130
+#: doc/guix.texi:2211
 #, fuzzy, no-wrap
-#| msgid "ip a\n"
 msgid "ip address\n"
-msgstr "ip a\n"
+msgstr "ip address\n"
 
 #. type: Plain text
-#: doc/guix.texi:2137
+#: doc/guix.texi:2218
 msgid "Wired interfaces have a name starting with @samp{e}; for example, the interface corresponding to the first on-board Ethernet controller is called @samp{eno1}.  Wireless interfaces have a name starting with @samp{w}, like @samp{w1p2s0}."
 msgstr "Проводные интерфейсы называются на букву @samp{e}; например, интерфейс, соответствующий первому контроллеру Ethernet на материнской плате, называется @samp{eno1}. Беспроводные интерфейсы имеют имена, начинающиеся с @samp{w}, как @samp{w1p2s0}."
 
 #. type: item
-#: doc/guix.texi:2139
+#: doc/guix.texi:2220
 #, no-wrap
 msgid "Wired connection"
 msgstr "Проводное соединение"
 
 #. type: table
-#: doc/guix.texi:2142
+#: doc/guix.texi:2223
 msgid "To configure a wired network run the following command, substituting @var{interface} with the name of the wired interface you want to use."
 msgstr "Чтобы настроить проводную сеть, запустите следующую команду, заменив @var{interface} именем проводного интерфейса, который вы хотите использовать."
 
 #. type: example
-#: doc/guix.texi:2145
+#: doc/guix.texi:2226
 #, no-wrap
 msgid "ifconfig @var{interface} up\n"
 msgstr "ifconfig @var{interface} up\n"
 
 #. type: example
-#: doc/guix.texi:2152
+#: doc/guix.texi:2233
 #, fuzzy, no-wrap
 #| msgid "ifconfig @var{interface} up\n"
 msgid "ip link set @var{interface} up\n"
 msgstr "ifconfig @var{interface} up\n"
 
 #. type: item
-#: doc/guix.texi:2154
+#: doc/guix.texi:2235
 #, no-wrap
 msgid "Wireless connection"
 msgstr "Беспроводное соединение"
 
 #. type: cindex
-#: doc/guix.texi:2155 doc/guix.texi:13404
+#: doc/guix.texi:2236 doc/guix.texi:15215
 #, no-wrap
 msgid "wireless"
 msgstr "беспроводной"
 
 #. type: cindex
-#: doc/guix.texi:2156 doc/guix.texi:13405
+#: doc/guix.texi:2237 doc/guix.texi:15216
 #, fuzzy, no-wrap
 msgid "WiFi"
 msgstr ""
@@ -6256,23 +6821,23 @@ msgstr ""
 "Wi-Fi"
 
 #. type: table
-#: doc/guix.texi:2161
+#: doc/guix.texi:2242
 msgid "To configure wireless networking, you can create a configuration file for the @command{wpa_supplicant} configuration tool (its location is not important) using one of the available text editors such as @command{nano}:"
 msgstr "Чтобы настроить беспроводную сеть, можно создать конфигурционный файл для @command{wpa_supplicant} (расположение файла неважно). Можно пользоваться любым доступным текстовым редактором, например, @command{nano}:"
 
 #. type: example
-#: doc/guix.texi:2164
+#: doc/guix.texi:2245
 #, no-wrap
 msgid "nano wpa_supplicant.conf\n"
 msgstr "nano wpa_supplicant.conf\n"
 
 #. type: table
-#: doc/guix.texi:2169
+#: doc/guix.texi:2250
 msgid "As an example, the following stanza can go to this file and will work for many wireless networks, provided you give the actual SSID and passphrase for the network you are connecting to:"
 msgstr "Следующий пример настроек подойдёт для большинства беспроводных сетей. Нужно предоставить фактический SSID и парольную фразу для сети, к которой вы подключаетесь:"
 
 #. type: example
-#: doc/guix.texi:2176
+#: doc/guix.texi:2257
 #, no-wrap
 msgid ""
 "network=@{\n"
@@ -6288,209 +6853,216 @@ msgstr ""
 "@}\n"
 
 #. type: table
-#: doc/guix.texi:2181
+#: doc/guix.texi:2262
 msgid "Start the wireless service and run it in the background with the following command (substitute @var{interface} with the name of the network interface you want to use):"
 msgstr "Запустите сервис беспроводной сети в фоновом режиме следующей командой (замените @var{interface} именем сетевого интерфейса, который вы используете):"
 
 #. type: example
-#: doc/guix.texi:2184
+#: doc/guix.texi:2265
 #, no-wrap
 msgid "wpa_supplicant -c wpa_supplicant.conf -i @var{interface} -B\n"
 msgstr "wpa_supplicant -c wpa_supplicant.conf -i @var{interface} -B\n"
 
 #. type: table
-#: doc/guix.texi:2187
+#: doc/guix.texi:2268
 msgid "Run @command{man wpa_supplicant} for more information."
 msgstr "Запустите @command{man wpa_supplicant}, чтобы узнать больше."
 
 #. type: cindex
-#: doc/guix.texi:2189
+#: doc/guix.texi:2270
 #, no-wrap
 msgid "DHCP"
 msgstr "DHCP"
 
 #. type: Plain text
-#: doc/guix.texi:2192
+#: doc/guix.texi:2273
 msgid "At this point, you need to acquire an IP address.  On a network where IP addresses are automatically assigned @i{via} DHCP, you can run:"
 msgstr "Теперь нужно получить IP-адрес. В случае сети, где IP-адреса автоматически распределяются @i{с помощью} DHCP, можно запустить:"
 
 #. type: example
-#: doc/guix.texi:2195
+#: doc/guix.texi:2276
 #, no-wrap
 msgid "dhclient -v @var{interface}\n"
 msgstr "dhclient -v @var{interface}\n"
 
 #. type: Plain text
-#: doc/guix.texi:2198
+#: doc/guix.texi:2279
 msgid "Try to ping a server to see if networking is up and running:"
 msgstr "Попробуйте пинговать сервер, чтобы узнать, работает ли сеть:"
 
 #. type: example
-#: doc/guix.texi:2201
+#: doc/guix.texi:2282
 #, no-wrap
 msgid "ping -c 3 gnu.org\n"
 msgstr "ping -c 3 gnu.org\n"
 
 #. type: Plain text
-#: doc/guix.texi:2205
+#: doc/guix.texi:2286
 msgid "Setting up network access is almost always a requirement because the image does not contain all the software and tools that may be needed."
 msgstr "Настройка доступа к сети необходима почти всегда, потому что ораз может не иметь программное обеспечение и инструменты, которые могут понадобиться."
 
 #. type: cindex
-#: doc/guix.texi:2206
+#: doc/guix.texi:2287
 #, fuzzy, no-wrap
 #| msgid "Guix System, installation"
 msgid "proxy, during system installation"
 msgstr "Система Guix, установка"
 
 #. type: Plain text
-#: doc/guix.texi:2209
+#: doc/guix.texi:2290
 msgid "If you need HTTP and HTTPS access to go through a proxy, run the following command:"
-msgstr ""
+msgstr "Если вам нужено настроить доступ HTTP и HTTPS прокси, выполните следующую команду:"
 
 #. type: example
-#: doc/guix.texi:2212
+#: doc/guix.texi:2293
 #, no-wrap
 msgid "herd set-http-proxy guix-daemon @var{URL}\n"
-msgstr ""
+msgstr "herd set-http-proxy guix-daemon @var{URL}\n"
 
 #. type: Plain text
-#: doc/guix.texi:2217
+#: doc/guix.texi:2298
 msgid "where @var{URL} is the proxy URL, for example @code{http://example.org:8118}."
-msgstr ""
+msgstr "где @var{URL} адрес прокси, например @code{http://example.org:8118}."
 
 #. type: cindex
-#: doc/guix.texi:2218
+#: doc/guix.texi:2299
 #, no-wrap
 msgid "installing over SSH"
 msgstr "установка через SSH"
 
 #. type: Plain text
-#: doc/guix.texi:2221
+#: doc/guix.texi:2302
 msgid "If you want to, you can continue the installation remotely by starting an SSH server:"
 msgstr "Если желаете, вы можете продолжить установку удалённо, запустив SSH-сервер:"
 
 #. type: example
-#: doc/guix.texi:2224
+#: doc/guix.texi:2305
 #, no-wrap
 msgid "herd start ssh-daemon\n"
 msgstr "herd start ssh-daemon\n"
 
 #. type: Plain text
-#: doc/guix.texi:2228
+#: doc/guix.texi:2309
 msgid "Make sure to either set a password with @command{passwd}, or configure OpenSSH public key authentication before logging in."
 msgstr "Не забудьте задать пароль командой @command{passwd} или настроить публичный ключ OpenSSH для аутентификации, чтобы иметь возможность подключиться."
 
 #. type: subsubsection
-#: doc/guix.texi:2229
+#: doc/guix.texi:2310
 #, no-wrap
 msgid "Disk Partitioning"
 msgstr "Разметка диска"
 
 #. type: Plain text
-#: doc/guix.texi:2233
+#: doc/guix.texi:2314
 msgid "Unless this has already been done, the next step is to partition, and then format the target partition(s)."
 msgstr "Если это ещё не сделано, тогда нужно разделить диск, а затем отформатировать целевой(-ые) раздел(ы)."
 
 #. type: Plain text
-#: doc/guix.texi:2238
+#: doc/guix.texi:2319
 msgid "The installation image includes several partitioning tools, including Parted (@pxref{Overview,,, parted, GNU Parted User Manual}), @command{fdisk}, and @command{cfdisk}.  Run it and set up your disk with the partition layout you want:"
 msgstr "Установочный образ содержит несколько инструментов для разметки, включая Parted (@pxref{Overview,,, parted, GNU Parted User Manual}), @command{fdisk} и @command{cfdisk}. Запустите и настройте ваш диск, используя план разметки, который нужен:"
 
 #. type: example
-#: doc/guix.texi:2241
+#: doc/guix.texi:2322
 #, no-wrap
 msgid "cfdisk\n"
 msgstr "cfdisk\n"
 
 #. type: Plain text
-#: doc/guix.texi:2247
+#: doc/guix.texi:2328
 msgid "If your disk uses the GUID Partition Table (GPT) format and you plan to install BIOS-based GRUB (which is the default), make sure a BIOS Boot Partition is available (@pxref{BIOS installation,,, grub, GNU GRUB manual})."
 msgstr "Если ваш диск использует формат GUID Partition Table (GPT), и вы планируете использовать GRUB, работающий с BIOS (что по умолчанию), убедитесь, что раздел BIOS Boot Partition доступен (@pxref{BIOS installation,,, grub, GNU GRUB manual})."
 
 #. type: cindex
-#: doc/guix.texi:2248
+#: doc/guix.texi:2329
 #, no-wrap
 msgid "EFI, installation"
 msgstr "EFI, установка"
 
 #. type: cindex
-#: doc/guix.texi:2249
+#: doc/guix.texi:2330
 #, no-wrap
 msgid "UEFI, installation"
 msgstr "UEFI, установка"
 
 #. type: cindex
-#: doc/guix.texi:2250
+#: doc/guix.texi:2331
 #, no-wrap
 msgid "ESP, EFI system partition"
 msgstr "ESP, EFI разметка системы"
 
 #. type: Plain text
-#: doc/guix.texi:2254
+#: doc/guix.texi:2335
 msgid "If you instead wish to use EFI-based GRUB, a FAT32 @dfn{EFI System Partition} (ESP) is required.  This partition can be mounted at @file{/boot/efi} for instance and must have the @code{esp} flag set.  E.g., for @command{parted}:"
 msgstr "Если вместо этого вы хотите использовать GRUB, работающий с EFI, тогда необходима @dfn{разметка система EFI} FAT32 (ESP). Такая разметка может, например, монтироваться в @file{/boot/efi} и должна иметь флаг @code{esp}. То есть в случае @command{parted}:"
 
 #. type: example
-#: doc/guix.texi:2257
+#: doc/guix.texi:2338
 #, no-wrap
 msgid "parted /dev/sda set 1 esp on\n"
 msgstr "parted /dev/sda set 1 esp on\n"
 
 #. type: vindex
-#: doc/guix.texi:2260 doc/guix.texi:26316
+#: doc/guix.texi:2341 doc/guix.texi:29862
 #, no-wrap
 msgid "grub-bootloader"
 msgstr "grub-bootloader"
 
 #. type: vindex
-#: doc/guix.texi:2261 doc/guix.texi:26310
+#: doc/guix.texi:2342 doc/guix.texi:29856
 #, no-wrap
 msgid "grub-efi-bootloader"
 msgstr "grub-efi-bootloader"
 
 #. type: quotation
-#: doc/guix.texi:2268
+#: doc/guix.texi:2349
 msgid "Unsure whether to use EFI- or BIOS-based GRUB? If the directory @file{/sys/firmware/efi} exists in the installation image, then you should probably perform an EFI installation, using @code{grub-efi-bootloader}.  Otherwise you should use the BIOS-based GRUB, known as @code{grub-bootloader}.  @xref{Bootloader Configuration}, for more info on bootloaders."
 msgstr "Не уверенны, что выбрать: GRUB, взаимодействующий с EFI или BIOS? Если существует директория @file{/sys/firmware/efi} в установочом образе, тогда вам следует использовать установку EFI и @code{grub-efi-bootloader}. В противном случае нужно использовать GRUB, работающий с BIOS, называемый @code{grub-bootloader}. Смотрите @xref{Bootloader Configuration} для большей информации о загрузчиках."
 
 #. type: Plain text
-#: doc/guix.texi:2276
+#: doc/guix.texi:2357
 #, fuzzy
 #| msgid "Once you are done partitioning the target hard disk drive, you have to create a file system on the relevant partition(s)@footnote{Currently Guix System only supports ext4 and btrfs file systems.  In particular, code that reads file system UUIDs and labels only works for these file system types.}.  For the ESP, if you have one and assuming it is @file{/dev/sda1}, run:"
 msgid "Once you are done partitioning the target hard disk drive, you have to create a file system on the relevant partition(s)@footnote{Currently Guix System only supports ext4, btrfs, and JFS file systems.  In particular, code that reads file system UUIDs and labels only works for these file system types.}.  For the ESP, if you have one and assuming it is @file{/dev/sda1}, run:"
 msgstr "Когда разметка целевого диска выполнена, нужно создать файловую систему на соответствующем(-их) разделе(-ах)@footnote{В данный момент система Guix поддерживает только файловые системы ext4 и btrfs. По факту, код, читающий UUID и метки файлвых систем, работает только для этих типов файловых систем.}. В случае ESP, если у вас раздел @file{/dev/sda1}, выполните:"
 
 #. type: example
-#: doc/guix.texi:2279
+#: doc/guix.texi:2360
 #, no-wrap
 msgid "mkfs.fat -F32 /dev/sda1\n"
 msgstr "mkfs.fat -F32 /dev/sda1\n"
 
 #. type: Plain text
-#: doc/guix.texi:2287
+#: doc/guix.texi:2367
+msgid "For the root file system, ext4 is the most widely used format.  Other file systems, such as Btrfs, support compression, which is reported to nicely complement file deduplication that the daemon performs independently of the file system (@pxref{Invoking guix-daemon, deduplication})."
+msgstr "Для корневой файловой системы наиболее широко используется формат ext4.  Другие файловые системы, такие как Btrfs, поддерживают сжатие, которое, как известно, прекрасно дополняет дедупликацию файлов, которую демон выполняет независимо от файловой системы (@pxref{Invoking guix-daemon, deduplication})."
+
+#. type: Plain text
+#: doc/guix.texi:2374
 msgid "Preferably, assign file systems a label so that you can easily and reliably refer to them in @code{file-system} declarations (@pxref{File Systems}).  This is typically done using the @code{-L} option of @command{mkfs.ext4} and related commands.  So, assuming the target root partition lives at @file{/dev/sda2}, a file system with the label @code{my-root} can be created with:"
 msgstr "Желательно добавить метки файловых систем, чтобы вы могли ссылаться на них по именам в объявлениях @code{file-system} (@pxref{File Systems}). Обычно это можно сделать опцией @code{-L} в @command{mkfs.ext4}, например. Допустим, раздел root располагается в @file{/dev/sda2}, можно добавить метку @code{my-root} следующим образом:"
 
 #. type: example
-#: doc/guix.texi:2290
+#: doc/guix.texi:2377
 #, no-wrap
 msgid "mkfs.ext4 -L my-root /dev/sda2\n"
 msgstr "mkfs.ext4 -L my-root /dev/sda2\n"
 
 #. type: cindex
-#: doc/guix.texi:2292 doc/guix.texi:11132
+#: doc/guix.texi:2379 doc/guix.texi:12747
 #, no-wrap
 msgid "encrypted disk"
 msgstr "шифрованный диск"
 
 #. type: Plain text
-#: doc/guix.texi:2299
-msgid "If you are instead planning to encrypt the root partition, you can use the Cryptsetup/LUKS utilities to do that (see @inlinefmtifelse{html, @uref{https://linux.die.net/man/8/cryptsetup, @code{man cryptsetup}}, @code{man cryptsetup}} for more information.)  Assuming you want to store the root partition on @file{/dev/sda2}, the command sequence would be along these lines:"
+#: doc/guix.texi:2386
+#, fuzzy
+#| msgid "If you are instead planning to encrypt the root partition, you can use the Cryptsetup/LUKS utilities to do that (see @inlinefmtifelse{html, @uref{https://linux.die.net/man/8/cryptsetup, @code{man cryptsetup}}, @code{man cryptsetup}} for more information.)  Assuming you want to store the root partition on @file{/dev/sda2}, the command sequence would be along these lines:"
+msgid "If you are instead planning to encrypt the root partition, you can use the Cryptsetup/LUKS utilities to do that (see @inlinefmtifelse{html, @uref{https://linux.die.net/man/8/cryptsetup, @code{man cryptsetup}}, @code{man cryptsetup}} for more information).  Assuming you want to store the root partition on @file{/dev/sda2}, the command sequence would be along these lines:"
 msgstr "Если же вы планируете шифровать раздел root, можно воспользоваться утилитами Cryptsetup/LUKS (смотрите @inlinefmtifelse{html, @uref{https://linux.die.net/man/8/cryptsetup, @code{man cryptsetup}}, @code{man cryptsetup}} for more information.) Допустим, если раздел root размещается в @file{/dev/sda2}, необходимо выполнить следующие команды:"
 
 #. type: example
-#: doc/guix.texi:2304
+#: doc/guix.texi:2391
 #, no-wrap
 msgid ""
 "cryptsetup luksFormat /dev/sda2\n"
@@ -6502,28 +7074,28 @@ msgstr ""
 "mkfs.ext4 -L my-root /dev/mapper/my-partition\n"
 
 #. type: Plain text
-#: doc/guix.texi:2309
+#: doc/guix.texi:2396
 msgid "Once that is done, mount the target file system under @file{/mnt} with a command like (again, assuming @code{my-root} is the label of the root file system):"
 msgstr "Когда это сделано, монтируйте целевую файловую систему под @file{/mnt} следующей командой (опять же полагая, что метка раздела root --- @code{my-root}):"
 
 #. type: example
-#: doc/guix.texi:2312
+#: doc/guix.texi:2399
 #, no-wrap
 msgid "mount LABEL=my-root /mnt\n"
 msgstr "mount LABEL=my-root /mnt\n"
 
 #. type: Plain text
-#: doc/guix.texi:2318
+#: doc/guix.texi:2405
 msgid "Also mount any other file systems you would like to use on the target system relative to this path.  If you have opted for @file{/boot/efi} as an EFI mount point for example, mount it at @file{/mnt/boot/efi} now so it is found by @code{guix system init} afterwards."
 msgstr "Также монтируйте любые другие файловые системы внутрь целевой файловой системы. Если например, выбрана точка монтирования EFI @file{/boot/efi}, монтируйте её в @file{/mnt/boot/efi}, так, чтобы она обнаруживалась после запуска @code{guix system init}."
 
 #. type: Plain text
-#: doc/guix.texi:2323
+#: doc/guix.texi:2410
 msgid "Finally, if you plan to use one or more swap partitions (@pxref{Memory Concepts, swap space,, libc, The GNU C Library Reference Manual}), make sure to initialize them with @command{mkswap}.  Assuming you have one swap partition on @file{/dev/sda3}, you would run:"
 msgstr "Наконец, если вы планируете использовать один или более разделов swap (@pxref{Memory Concepts, swap space,, libc, The GNU C Library Reference Manual}), обязательно инициируйте их командой @command{mkswap}. Допустим, если ваш раздел swap размещён в @file{/dev/sda3}, нужно выполнить:"
 
 #. type: example
-#: doc/guix.texi:2327
+#: doc/guix.texi:2414
 #, no-wrap
 msgid ""
 "mkswap /dev/sda3\n"
@@ -6533,12 +7105,12 @@ msgstr ""
 "swapon /dev/sda3\n"
 
 #. type: Plain text
-#: doc/guix.texi:2335
+#: doc/guix.texi:2422
 msgid "Alternatively, you may use a swap file.  For example, assuming that in the new system you want to use the file @file{/swapfile} as a swap file, you would run@footnote{This example will work for many types of file systems (e.g., ext4).  However, for copy-on-write file systems (e.g., btrfs), the required steps may be different.  For details, see the manual pages for @command{mkswap} and @command{swapon}.}:"
 msgstr "Возможно, вместо этого вы используете swap-файл. Например, предположим, вы хотите использовать в новой системе swap-файл в @file{/swapfile}, тогда нужно выполнить@footnote{Этот пример работает для многих типов файловых систем, например, ext4. Однако для файловых систем, использующих механизм копирование при записи (copy-on-write), например, btrfs, необходимы другие шаги. Подробнее смотрите в мануалах для @command{mkswap} и @command{swapon}.}:"
 
 #. type: example
-#: doc/guix.texi:2343
+#: doc/guix.texi:2430
 #, no-wrap
 msgid ""
 "# This is 10 GiB of swap space.  Adjust \"count\" to change the size.\n"
@@ -6556,38 +7128,38 @@ msgstr ""
 "swapon /mnt/swapfile\n"
 
 #. type: Plain text
-#: doc/guix.texi:2348
+#: doc/guix.texi:2435
 msgid "Note that if you have encrypted the root partition and created a swap file in its file system as described above, then the encryption also protects the swap file, just like any other file in that file system."
 msgstr "Заметим, что если вы шифруете раздел root и создаёте swap-файл в его файловой системе, как это описано выше, шифрование также будет защищать swap-файл, как и любой другой файл в этой файловой системе."
 
 #. type: Plain text
-#: doc/guix.texi:2354
+#: doc/guix.texi:2441
 msgid "With the target partitions ready and the target root mounted on @file{/mnt}, we're ready to go.  First, run:"
 msgstr "Когда целевые разделы готовы и раздел root монтирован под @file{/mnt}, всё готово для старта. Сначала запустите:"
 
 #. type: example
-#: doc/guix.texi:2357
+#: doc/guix.texi:2444
 #, no-wrap
 msgid "herd start cow-store /mnt\n"
 msgstr "herd start cow-store /mnt\n"
 
 #. type: Plain text
-#: doc/guix.texi:2364
+#: doc/guix.texi:2451
 msgid "This makes @file{/gnu/store} copy-on-write, such that packages added to it during the installation phase are written to the target disk on @file{/mnt} rather than kept in memory.  This is necessary because the first phase of the @command{guix system init} command (see below) entails downloads or builds to @file{/gnu/store} which, initially, is an in-memory file system."
 msgstr "Это сделает @file{/gnu/store} копируемым при записи (copy-on-write), что заставит систему записывать пакеты, добавляемые в систему на этапе установки, на целевой диск под @file{/mnt}, а не держать их в памяти. Это важно, потому что по команде @command{guix system init} (смотрите ниже) будут скачиваться или собираться пакеты в @file{/gnu/store}, которая изначально находится в файловой системе, загрузженной в память."
 
 #. type: Plain text
-#: doc/guix.texi:2375
+#: doc/guix.texi:2462
 msgid "Next, you have to edit a file and provide the declaration of the operating system to be installed.  To that end, the installation system comes with three text editors.  We recommend GNU nano (@pxref{Top,,, nano, GNU nano Manual}), which supports syntax highlighting and parentheses matching; other editors include GNU Zile (an Emacs clone), and nvi (a clone of the original BSD @command{vi} editor).  We strongly recommend storing that file on the target root file system, say, as @file{/mnt/etc/config.scm}.  Failing to do that, you will have lost your configuration file once you have rebooted into the newly-installed system."
 msgstr "Далее нужно редактировать файл объявления операционной системы, которым будет пользоваться установщик. Для этого при установке системы можно использовать три текстовых редактора. Мы ркомендуем GNU nano (@pxref{Top,,, nano, GNU nano Manual}) --- он поддерживает подсветку синтаксиса и работу со скобками. Другие редакторы: GNU Zile (клон Emacs), nvi (клон исходного редактора BSD @command{vi}). Мы настойчиво рекомендуем сохранять файл конфигураций в целевой файловой системе root, например, как @file{/mnt/etc/config.scm}. Иначе есть возможность потерять конфигурационный файл, когда вы загрузитесь в новую установенную систему."
 
 #. type: Plain text
-#: doc/guix.texi:2382
+#: doc/guix.texi:2469
 msgid "@xref{Using the Configuration System}, for an overview of the configuration file.  The example configurations discussed in that section are available under @file{/etc/configuration} in the installation image.  Thus, to get started with a system configuration providing a graphical display server (a ``desktop'' system), you can run something along these lines:"
 msgstr "Смотрите @xref{Using the Configuration System} для подробностей о конфигурационном файле. Конфигурационный файл для примера доступен под @file{/etc/configuration} установочного образа. Например, чтобы получить систему с графическим сервером (т.е. десктопную систему), можно это сделать примерно так:"
 
 #. type: example
-#: doc/guix.texi:2387
+#: doc/guix.texi:2474
 #, no-wrap
 msgid ""
 "# mkdir /mnt/etc\n"
@@ -6599,53 +7171,53 @@ msgstr ""
 "# nano /mnt/etc/config.scm\n"
 
 #. type: Plain text
-#: doc/guix.texi:2391
+#: doc/guix.texi:2478
 msgid "You should pay attention to what your configuration file contains, and in particular:"
 msgstr "Нужно уделить внимание содержимому конфигурационного файла, в частности:"
 
 #. type: itemize
-#: doc/guix.texi:2402
+#: doc/guix.texi:2489
 msgid "Make sure the @code{bootloader-configuration} form refers to the target you want to install GRUB on.  It should mention @code{grub-bootloader} if you are installing GRUB in the legacy way, or @code{grub-efi-bootloader} for newer UEFI systems.  For legacy systems, the @code{target} field names a device, like @code{/dev/sda}; for UEFI systems it names a path to a mounted EFI partition, like @code{/boot/efi}; do make sure the path is currently mounted and a @code{file-system} entry is specified in your configuration."
 msgstr "Убедитесь, что @code{bootloader-configuration} указывает на тот раздел, в который вы хотите установить GRUB. Он должен содержать @code{grub-bootloader}, если вы используете legacy-GRUB, или @code{grub-efi-bootloader} для новых систем UEFI. Для систем legacy поле @code{target} содержит имя устройства, например, @code{/dev/sda}; для систем UEFI он указывает имя раздела EFI, например, @code{/boot/efi}. Так что обязательно проверьте, чтобы нужный путь был монтирован, и запись @code{file-system} содержала нужную уонфигурацию."
 
 #. type: itemize
-#: doc/guix.texi:2408
+#: doc/guix.texi:2495
 msgid "Be sure that your file system labels match the value of their respective @code{device} fields in your @code{file-system} configuration, assuming your @code{file-system} configuration uses the @code{file-system-label} procedure in its @code{device} field."
 msgstr "Убедитесь, чтобы в полях @code{device} были указаны метки ваших файловых систем внутри конфигурации @code{file-system}, если конечно, конфигурация @code{file-system} использует процедуру @code{file-system-label} в поле @code{device}."
 
 #. type: itemize
-#: doc/guix.texi:2412
+#: doc/guix.texi:2499
 msgid "If there are encrypted or RAID partitions, make sure to add a @code{mapped-devices} field to describe them (@pxref{Mapped Devices})."
 msgstr "При наличии шифрованных разделов RAID, обязательно добавьте поле @code{mapped-devices}, чтобы описать их (@pxref{Mapped Devices})."
 
 #. type: Plain text
-#: doc/guix.texi:2417
+#: doc/guix.texi:2504
 msgid "Once you are done preparing the configuration file, the new system must be initialized (remember that the target root file system is mounted under @file{/mnt}):"
 msgstr "Когда вы подготовили конфигурационный файл, нужно инициализировать новую систему (помните, что целевой раздел root монтирован под @file{/mnt}):"
 
 #. type: example
-#: doc/guix.texi:2420
+#: doc/guix.texi:2507
 #, no-wrap
 msgid "guix system init /mnt/etc/config.scm /mnt\n"
 msgstr "guix system init /mnt/etc/config.scm /mnt\n"
 
 #. type: Plain text
-#: doc/guix.texi:2427
+#: doc/guix.texi:2514
 msgid "This copies all the necessary files and installs GRUB on @file{/dev/sdX}, unless you pass the @option{--no-bootloader} option.  For more information, @pxref{Invoking guix system}.  This command may trigger downloads or builds of missing packages, which can take some time."
 msgstr "Это копирует все нужные файлы и устанавливает GRUB в @file{/dev/sdX}, если конечно, вы не задали опцию @option{--no-bootloader}. Подробнее - @pxref{Invoking guix system}. Эта команда может вызывать скачивание или сборку отсутствующих пакетов, что может занять время."
 
 #. type: Plain text
-#: doc/guix.texi:2435
+#: doc/guix.texi:2522
 msgid "Once that command has completed---and hopefully succeeded!---you can run @command{reboot} and boot into the new system.  The @code{root} password in the new system is initially empty; other users' passwords need to be initialized by running the @command{passwd} command as @code{root}, unless your configuration specifies otherwise (@pxref{user-account-password, user account passwords}).  @xref{After System Installation}, for what's next!"
 msgstr "Когда эта команда завершена, надеемся, успешно, можно запустить @command{reboot} и загрузиться в новую систему.  Пароль @code{root} в новой системе изначально пустой; пароли других пользователей должны быть заданы командой @command{passwd} от @code{root}, если конечно, ваша конфиурация не содержит указания (@pxref{user-account-password, user account passwords}). Смотрите @xref{After System Installation}, чтобы узнать, что дальше."
 
 #. type: Plain text
-#: doc/guix.texi:2442
+#: doc/guix.texi:2529
 msgid "Success, you've now booted into Guix System! From then on, you can update the system whenever you want by running, say:"
 msgstr "Замечательно! Теперь вы загрузились в систему Guix! Теперь можно обновить систему, когда у вас будет на это время, запустив, например:"
 
 #. type: example
-#: doc/guix.texi:2446
+#: doc/guix.texi:2533
 #, no-wrap
 msgid ""
 "guix pull\n"
@@ -6655,417 +7227,670 @@ msgstr ""
 "sudo guix system reconfigure /etc/config.scm\n"
 
 #. type: Plain text
-#: doc/guix.texi:2452
+#: doc/guix.texi:2539
 msgid "This builds a new system generation with the latest packages and services (@pxref{Invoking guix system}).  We recommend doing that regularly so that your system includes the latest security updates (@pxref{Security Updates})."
 msgstr "Это соберёт поколение (generation) системы с последними пакетами и сервисами (@pxref{Invoking guix system}). Мы рекомендуем делать это регулярно, чтобы ваша система содержала обновления безопасности (@pxref{Security Updates})."
 
 #. type: cindex
-#: doc/guix.texi:2455
+#: doc/guix.texi:2542
 #, no-wrap
 msgid "sudo vs. @command{guix pull}"
 msgstr "sudo vs. @command{guix pull}"
 
 #. type: quotation
-#: doc/guix.texi:2459
-msgid "Note that @command{sudo guix} runs your user's @command{guix} command and @emph{not} root's, because @command{sudo} leaves @code{PATH} unchanged.  To explicitly run root's @command{guix}, type @command{sudo -i guix @dots{}}."
+#: doc/guix.texi:2546
+#, fuzzy
+#| msgid "Note that @command{sudo guix} runs your user's @command{guix} command and @emph{not} root's, because @command{sudo} leaves @code{PATH} unchanged.  To explicitly run root's @command{guix}, type @command{sudo -i guix @dots{}}."
+msgid "Note that @command{sudo guix} runs your user's @command{guix} command and @emph{not} root's, because @command{sudo} leaves @env{PATH} unchanged.  To explicitly run root's @command{guix}, type @command{sudo -i guix @dots{}}."
 msgstr "Отметим, что @command{sudo guix} запускает команду @command{guix} от вашего пользователя, но @emph{не} от root, потому что @command{sudo} не меняет @code{PATH}. Чтобы вместо этого запустить @command{guix} от root, напечатайте @command{sudo -i guix @dots{}}."
 
 #. type: quotation
-#: doc/guix.texi:2464
+#: doc/guix.texi:2551
 msgid "The difference matters here, because @command{guix pull} updates the @command{guix} command and package definitions only for the user it is ran as.  This means that if you choose to use @command{guix system reconfigure} in root's login shell, you'll need to @command{guix pull} separately."
-msgstr ""
+msgstr "Разница важна, потому что @command{guix pull} обновляет команду @command{guix} и определения пакетов только для пользователя, от имени которого она запускается. Это означает, что если вы решите использовать @command{guix system reconfigure} от имени root, вам нужно будет запустить @command{guix pull} отдельно."
 
 #. type: Plain text
-#: doc/guix.texi:2468
-msgid "Join us on @code{#guix} on the Freenode IRC network or on @email{guix-devel@@gnu.org} to share your experience!"
+#: doc/guix.texi:2556
+#, fuzzy
+#| msgid "Join us on @code{#guix} on the Freenode IRC network or on @email{guix-devel@@gnu.org} to share your experience!"
+msgid "Now, @pxref{Getting Started}, and join us on @code{#guix} on the Freenode IRC network or on @email{guix-devel@@gnu.org} to share your experience!"
 msgstr "Присоединяйтесь к нашему IRC-каналу @code{#guix} в сети Freenode или пишите на @email{guix-devel@@gnu.org}, чтобы поделиться опытом!"
 
 #. type: section
-#: doc/guix.texi:2471
+#: doc/guix.texi:2559
 #, no-wrap
 msgid "Installing Guix in a Virtual Machine"
 msgstr "Установка Guix на виртуальную машину (VM)"
 
 #. type: cindex
-#: doc/guix.texi:2473
+#: doc/guix.texi:2561
 #, no-wrap
 msgid "virtual machine, Guix System installation"
 msgstr "виртуальная машина, установка системы Guix"
 
 #. type: cindex
-#: doc/guix.texi:2474
+#: doc/guix.texi:2562
 #, no-wrap
 msgid "virtual private server (VPS)"
 msgstr "виртуальный приватный сервер (VPS)"
 
 #. type: cindex
-#: doc/guix.texi:2475
+#: doc/guix.texi:2563
 #, no-wrap
 msgid "VPS (virtual private server)"
 msgstr "VPS (virtual private server)"
 
 #. type: Plain text
-#: doc/guix.texi:2479
+#: doc/guix.texi:2567
 msgid "If you'd like to install Guix System in a virtual machine (VM) or on a virtual private server (VPS) rather than on your beloved machine, this section is for you."
 msgstr "Если вы хотите установить систему Guix на виртуальную машину (VM) или на виртуальный приватный сервер (VPS) вместо вашей любимой машины, этот раздел для вас."
 
 #. type: Plain text
-#: doc/guix.texi:2482
+#: doc/guix.texi:2570
 #, fuzzy
 #| msgid "To boot a @uref{http://qemu.org/,QEMU} VM for installing Guix System in a disk image, follow these steps:"
 msgid "To boot a @uref{https://qemu.org/,QEMU} VM for installing Guix System in a disk image, follow these steps:"
 msgstr "Чтобы загрузить Guix в @uref{http://qemu.org/,QEMU} VM и установить образ, выполните шаги:"
 
 #. type: enumerate
-#: doc/guix.texi:2487
+#: doc/guix.texi:2575
 msgid "First, retrieve and decompress the Guix system installation image as described previously (@pxref{USB Stick and DVD Installation})."
 msgstr "Во-первых, найдите и распакуйте установочный образ системы Guix, как описано ранее (@pxref{USB Stick and DVD Installation})."
 
 #. type: enumerate
-#: doc/guix.texi:2491
+#: doc/guix.texi:2579
 msgid "Create a disk image that will hold the installed system.  To make a qcow2-formatted disk image, use the @command{qemu-img} command:"
 msgstr "Создайте образ диска, который будет содержать установленную систему. Чтобы создать образ диска qcow2, используйте команду @command{qemu-img}:"
 
 #. type: example
-#: doc/guix.texi:2494
+#: doc/guix.texi:2582
 #, fuzzy, no-wrap
 #| msgid "qemu-img create -f qcow2 guixsd.img 50G\n"
 msgid "qemu-img create -f qcow2 guix-system.img 50G\n"
 msgstr "qemu-img create -f qcow2 guixsd.img 50G\n"
 
 #. type: enumerate
-#: doc/guix.texi:2498
+#: doc/guix.texi:2586
 msgid "The resulting file will be much smaller than 50 GB (typically less than 1 MB), but it will grow as the virtualized storage device is filled up."
 msgstr "Результирующий файл будет намного меньше 50Гб (обычно менее 1Мб), но он будет увеличиваться с заполнение виртуального устройства."
 
 #. type: enumerate
-#: doc/guix.texi:2501
+#: doc/guix.texi:2589
 msgid "Boot the USB installation image in an VM:"
 msgstr "Загрузите установочный образ USB в VM:"
 
 #. type: example
-#: doc/guix.texi:2507
-#, fuzzy, no-wrap
-#| msgid ""
-#| "qemu-system-x86_64 -m 1024 -smp 1 \\\n"
-#| "  -net user -net nic,model=virtio -boot menu=on \\\n"
-#| "  -drive file=guix-system-install-@value{VERSION}.@var{system}.iso \\\n"
-#| "  -drive file=guixsd.img\n"
+#: doc/guix.texi:2595
+#, no-wrap
 msgid ""
 "qemu-system-x86_64 -m 1024 -smp 1 -enable-kvm \\\n"
 "  -nic user,model=virtio-net-pci -boot menu=on,order=d \\\n"
 "  -drive file=guix-system.img \\\n"
 "  -drive media=cdrom,file=guix-system-install-@value{VERSION}.@var{system}.iso\n"
 msgstr ""
-"qemu-system-x86_64 -m 1024 -smp 1 \\\n"
-"  -net user -net nic,model=virtio -boot menu=on \\\n"
-"  -drive file=guix-system-install-@value{VERSION}.@var{system}.iso \\\n"
-"  -drive file=guixsd.img\n"
+"qemu-system-x86_64 -m 1024 -smp 1 -enable-kvm \\\n"
+"  -nic user,model=virtio-net-pci -boot menu=on,order=d \\\n"
+"  -drive file=guix-system.img \\\n"
+"  -drive media=cdrom,file=guix-system-install-@value{VERSION}.@var{system}.iso\n"
 
 #. type: enumerate
-#: doc/guix.texi:2511
+#: doc/guix.texi:2599
 msgid "@code{-enable-kvm} is optional, but significantly improves performance, @pxref{Running Guix in a VM}."
-msgstr ""
+msgstr "@code{-enable-kvm} опционален, но значительно улучшает производительность, @pxref{Running Guix in a VM}."
 
 #. type: enumerate
-#: doc/guix.texi:2515
+#: doc/guix.texi:2603
 msgid "You're now root in the VM, proceed with the installation process.  @xref{Preparing for Installation}, and follow the instructions."
 msgstr "Теперь вы в корне VM, проделайте процесс установки @xref{Preparing for Installation} и последующие инструкции."
 
 #. type: Plain text
-#: doc/guix.texi:2520
+#: doc/guix.texi:2608
 #, fuzzy
 #| msgid "Once installation is complete, you can boot the system that's on your @file{guixsd.img} image.  @xref{Running Guix in a VM}, for how to do that."
 msgid "Once installation is complete, you can boot the system that's on your @file{guix-system.img} image.  @xref{Running Guix in a VM}, for how to do that."
 msgstr "Когда установка завершена, можно загрузиться в систему, которая расположена в образе @file{guixsd.img}. Смотрите @xref{Running Guix in a VM}, чтобы узнать, как это сделать."
 
 #. type: cindex
-#: doc/guix.texi:2524
+#: doc/guix.texi:2612
 #, no-wrap
 msgid "installation image"
 msgstr "установочный образ"
 
 #. type: Plain text
-#: doc/guix.texi:2527
+#: doc/guix.texi:2615
 msgid "The installation image described above was built using the @command{guix system} command, specifically:"
 msgstr "Установочный образ, описанный выше, собран командой @command{guix system}, а именно:"
 
 #. type: example
-#: doc/guix.texi:2531
+#: doc/guix.texi:2618
 #, no-wrap
-msgid ""
-"guix system disk-image --file-system-type=iso9660 \\\n"
-"  gnu/system/install.scm\n"
-msgstr ""
-"guix system disk-image --file-system-type=iso9660 \\\n"
-"  gnu/system/install.scm\n"
+msgid "guix system disk-image -t iso9660 gnu/system/install.scm\n"
+msgstr "guix system disk-image -t iso9660 gnu/system/install.scm\n"
 
 #. type: Plain text
-#: doc/guix.texi:2536
+#: doc/guix.texi:2623
 msgid "Have a look at @file{gnu/system/install.scm} in the source tree, and see also @ref{Invoking guix system} for more information about the installation image."
 msgstr "Нужно просмотреть @file{gnu/system/install.scm} в дереве исходников, а также @ref{Invoking guix system}, чтобы получить больше информации об установочном образе."
 
 #. type: section
-#: doc/guix.texi:2537
+#: doc/guix.texi:2624
 #, no-wrap
 msgid "Building the Installation Image for ARM Boards"
 msgstr "Сбрка и установка образа для плат ARM"
 
 #. type: Plain text
-#: doc/guix.texi:2541
+#: doc/guix.texi:2628
 #, fuzzy
 #| msgid "Many ARM boards require a specific variant of the @uref{http://www.denx.de/wiki/U-Boot/, U-Boot} bootloader."
 msgid "Many ARM boards require a specific variant of the @uref{https://www.denx.de/wiki/U-Boot/, U-Boot} bootloader."
 msgstr "Многие платы ARM требуют специфический вариант загрузчика  @uref{http://www.denx.de/wiki/U-Boot/, U-Boot}."
 
 #. type: Plain text
-#: doc/guix.texi:2545
+#: doc/guix.texi:2632
 msgid "If you build a disk image and the bootloader is not available otherwise (on another boot drive etc), it's advisable to build an image that includes the bootloader, specifically:"
 msgstr "Если вы собираете образ диска, а загрузчик не доступен (на другом устройстве загрузке и т.п.), советуем собрать образ, который включает загрузчик, то есть так:"
 
 #. type: example
-#: doc/guix.texi:2548
+#: doc/guix.texi:2635
 #, no-wrap
 msgid "guix system disk-image --system=armhf-linux -e '((@@ (gnu system install) os-with-u-boot) (@@ (gnu system install) installation-os) \"A20-OLinuXino-Lime2\")'\n"
 msgstr "guix system disk-image --system=armhf-linux -e '((@@ (gnu system install) os-with-u-boot) (@@ (gnu system install) installation-os) \"A20-OLinuXino-Lime2\")'\n"
 
 #. type: Plain text
-#: doc/guix.texi:2552
+#: doc/guix.texi:2639
 msgid "@code{A20-OLinuXino-Lime2} is the name of the board.  If you specify an invalid board, a list of possible boards will be printed."
 msgstr "@code{A20-OLinuXino-Lime2} --- это имя материнской платы. Если вы обозначите недействительную плату, будет выведен список возможных плат."
 
+#. type: Plain text
+#: doc/guix.texi:2649
+msgid "Presumably, you've reached this section because either you have installed Guix on top of another distribution (@pxref{Installation}), or you've installed the standalone Guix System (@pxref{System Installation}).  It's time for you to get started using Guix and this section aims to help you do that and give you a feel of what it's like."
+msgstr "Предположительно, вы попали в этот раздел, потому что либо вы установили Guix поверх другого дистрибутива (@pxref{Installation}), либо вы установили отдельную операционную систему Guix (@pxref{System Installation}).  Пора вам начать использовать Guix, и этот раздел призван помочь вам в этом."
+
+#. type: Plain text
+#: doc/guix.texi:2653
+msgid "Guix is about installing software, so probably the first thing you'll want to do is to actually look for software.  Let's say you're looking for a text editor, you can run:"
+msgstr "Guix занимается установкой программного обеспечения, поэтому, вероятно, первое, что вам нужно сделать, это поискать программное обеспечение.  Допустим, вы ищете текстовый редактор, вы можете запустить:"
+
+#. type: example
+#: doc/guix.texi:2656
+#, no-wrap
+msgid "guix search text editor\n"
+msgstr "guix search text editor\n"
+
+#. type: Plain text
+#: doc/guix.texi:2663
+msgid "This command shows you a number of matching @dfn{packages}, each time showing the package's name, version, a description, and additional info.  Once you've found out the one you want to use, let's say Emacs (ah ha!), you can go ahead and install it (run this command as a regular user, @emph{no need for root privileges}!):"
+msgstr "Эта команда показывает количество подходящих @dfn{пакетов}, каждый раз показывая имя пакета, версию, описание и дополнительную информацию.  Как только вы определились с тем, какой пакет хотите использовать, скажем, Emacs (ха!), вы можете установить его следующей командой (запустите эту команду как обычный пользователь, root привилегии не нужны!):"
+
+#. type: example
+#: doc/guix.texi:2666
+#, no-wrap
+msgid "guix install emacs\n"
+msgstr "guix install emacs\n"
+
+#. type: Plain text
+#: doc/guix.texi:2672
+msgid "You've installed your first package, congrats! In the process, you've probably noticed that Guix downloaded pre-built binaries; or, if you explicitly chose to @emph{not} use pre-built binaries, then probably Guix is still building software (@pxref{Substitutes}, for more info)."
+msgstr "Вы установили свой первый пакет, поздравляю!  В процессе вы, вероятно, заметили, что Guix загружает заранее собранные двоичные файлы; или, если вы явно решили не использовать предварительно созданные двоичные файлы, то, вероятно, Guix все еще собирает программное обеспечение (@pxref{Substitutes}, для дополнительной информации)."
+
+#. type: Plain text
+#: doc/guix.texi:2675
+msgid "Unless you're using Guix System, the @command{guix install} command must have printed this hint:"
+msgstr "Пока вы используете Guix System, @command{guix install} команда должна выводить данную подсказку:"
+
+#. type: example
+#: doc/guix.texi:2678
+#, no-wrap
+msgid ""
+"hint: Consider setting the necessary environment variables by running:\n"
+"\n"
+msgstr "hint: Consider setting the necessary environment variables by running:\n"
+
+#. type: example
+#: doc/guix.texi:2681
+#, no-wrap
+msgid ""
+"     GUIX_PROFILE=\"$HOME/.guix-profile\"\n"
+"     . \"$GUIX_PROFILE/etc/profile\"\n"
+"\n"
+msgstr ""
+"     GUIX_PROFILE=\\\"$HOME/.guix-profile\\\"\n"
+"     . \\\"$GUIX_PROFILE/etc/profile\\\"\n"
+"\n"
+
+#. type: example
+#: doc/guix.texi:2683
+#, no-wrap
+msgid "Alternately, see `guix package --search-paths -p \"$HOME/.guix-profile\"'.\n"
+msgstr "Или смотрите `guix package --search-paths -p \"$HOME/.guix-profile\"'.\n"
+
+#. type: Plain text
+#: doc/guix.texi:2697
+msgid "Indeed, you must now tell your shell where @command{emacs} and other programs installed with Guix are to be found.  Pasting the two lines above will do just that: it will add @code{$HOME/.guix-profile/bin}---which is where the installed package is---to the @code{PATH} environment variable.  You can paste these two lines in your shell so they take effect right away, but more importantly you should add them to @file{~/.bash_profile} (or equivalent file if you do not use Bash) so that environment variables are set next time you spawn a shell.  You only need to do this once and other search paths environment variables will be taken care of similarly---e.g., if you eventually install @code{python} and Python libraries, @code{PYTHONPATH} will be defined."
+msgstr "Действительно, теперь вы должны указать своей оболочке, где находятся @code{emacs} и другие программы, установленные вместе с Guix.  Вставка двух строк выше сделает именно это: это добавит @code{$HOME/.guix-profile/bin} (там где находится установленный пакет) в переменную окружения @code{PATH}.  Вы можете вставить эти две строки в свою оболочку, чтобы они сразу вступили в силу, но, что более важно, вы должны добавить их в @file{~/.bash_profile} (или аналогичный файл, если вы не используете Bash), чтобы переменные среды устанавливались в следующий раз, когда вы создаете оболочку.  Вам нужно сделать это только один раз, и другие переменные среды путей поиска будут обработаны аналогичным образом.  Например, если вы установите @code{python} или библиотеки Python, @code{PYTHONPATH} будет определена."
+
+#. type: Plain text
+#: doc/guix.texi:2700
+msgid "You can go on installing packages at your will.  To list installed packages, run:"
+msgstr "Вы можете продолжать установку пакетов по своему желанию. Чтобы вывести список установленных пакетов, запустите:"
+
+#. type: example
+#: doc/guix.texi:2703
+#, fuzzy, no-wrap
+msgid "guix package --list-installed\n"
+msgstr "guix package --list-installed\n"
+
+#. type: Plain text
+#: doc/guix.texi:2708
+msgid "To remove a package, you would unsurprisingly run @command{guix remove}.  A distinguishing feature is the ability to @dfn{roll back} any operation you made---installation, removal, upgrade---by simply typing:"
+msgstr "Для удаления пакета вы можете выполнить команду @command{guix remove}.  Отличительная черта - возможность @dfn{откатить} любую операцию, которую вы сделали (установка, удаление, обновление):"
+
+#. type: example
+#: doc/guix.texi:2711
+#, no-wrap
+msgid "guix package --roll-back\n"
+msgstr "guix package --roll-back\n"
+
+#. type: Plain text
+#: doc/guix.texi:2716
+msgid "This is because each operation is in fact a @dfn{transaction} that creates a new @dfn{generation}.  These generations and the difference between them can be displayed by running:"
+msgstr "Каждая операция фактически является транзакцией, которая создает новое поколение.  Эти поколения и разницу между ними можно отобразить, запустив:"
+
+#. type: example
+#: doc/guix.texi:2719
+#, no-wrap
+msgid "guix package --list-generations\n"
+msgstr "guix package --list-generations\n"
+
+#. type: Plain text
+#: doc/guix.texi:2722
+msgid "Now you know the basics of package management!"
+msgstr "Теперь вы знаете основы управления пакетами!"
+
+#. type: quotation
+#: doc/guix.texi:2723 doc/guix.texi:2782
+#, no-wrap
+msgid "Going further"
+msgstr "Больше информации"
+
+#. type: quotation
+#: doc/guix.texi:2731
+msgid "@xref{Package Management}, for more about package management.  You may like @dfn{declarative} package management with @command{guix package --manifest}, managing separate @dfn{profiles} with @option{--profile}, deleting old generations, collecting garbage, and other nifty features that will come in handy as you become more familiar with Guix.  If you are a developer, @pxref{Development} for additional tools.  And if you're curious, @pxref{Features}, to peek under the hood."
+msgstr "@xref{Package Management}, для получения дополнительной информации об управлении пакетами.  Вам может понравиться @dfn{декларативное} управление пакетами с помощью @command{guix package --manifest}, управление отдельными @dfn{профилями} с помощью @option{--profile}, удаление старых поколений, сбор мусора и другие полезные функции, которые помогут пригодится по мере того, как вы ближе познакомитесь с Guix.  Если вы разработчик, @pxref{Development} для получения дополнительных инструментов.  И если вам интересно, @pxref{Features}, чтобы заглянуть под капот."
+
+#. type: Plain text
+#: doc/guix.texi:2736
+msgid "Once you've installed a set of packages, you will want to periodically @emph{upgrade} them to the latest and greatest version.  To do that, you will first pull the latest revision of Guix and its package collection:"
+msgstr "После того, как вы установили набор пакетов, вам нужно будет периодически @emph{обновлять} их до последней и самой лучшей версии.  Для этого вы сначала загрузите последнюю версию Guix и его коллекцию пакетов:"
+
+#. type: Plain text
+#: doc/guix.texi:2746
+msgid "The end result is a new @command{guix} command, under @file{~/.config/guix/current/bin}.  Unless you're on Guix System, the first time you run @command{guix pull}, be sure to follow the hint that the command prints and, similar to what we saw above, paste these two lines in your terminal and @file{.bash_profile}:"
+msgstr "Конечным результатом является новая команда @command{guix} в @file{~/.config/guix/current/bin}.  Если вы не используете Guix System, при первом запуске @command{guix pull} обязательно следуйте подсказке, которую выводит команда, и, подобно тому, что мы видели выше, вставьте эти две строки в свой терминал и @file{.bash_profile}:"
+
+#. type: example
+#: doc/guix.texi:2750
+#, no-wrap
+msgid ""
+"GUIX_PROFILE=\"$HOME/.config/guix/current/etc/profile\"\n"
+". \"$GUIX_PROFILE/etc/profile\"\n"
+msgstr ""
+"GUIX_PROFILE=\"$HOME/.config/guix/current/etc/profile\"\n"
+". \"$GUIX_PROFILE/etc/profile\"\n"
+
+#. type: Plain text
+#: doc/guix.texi:2754
+msgid "You must also instruct your shell to point to this new @command{guix}:"
+msgstr "Вы также должны указать своей оболочке, чтобы она указывала на новую команду @command{guix}:"
+
+#. type: example
+#: doc/guix.texi:2757
+#, no-wrap
+msgid "hash guix\n"
+msgstr "hash guix\n"
+
+#. type: Plain text
+#: doc/guix.texi:2761
+msgid "At this point, you're running a brand new Guix.  You can thus go ahead and actually upgrade all the packages you previously installed:"
+msgstr "На данный момент вы используете новый Guix.  Вы можете обновить все ранее установленные пакеты:"
+
+#. type: example
+#: doc/guix.texi:2764
+#, no-wrap
+msgid "guix upgrade\n"
+msgstr "guix upgrade\n"
+
+#. type: Plain text
+#: doc/guix.texi:2770
+msgid "As you run this command, you will see that binaries are downloaded (or perhaps some packages are built), and eventually you end up with the upgraded packages.  Should one of these upgraded packages not be to your liking, remember you can always roll back!"
+msgstr "Когда вы запустите эту команду, вы увидите, что загружены двоичные файлы (или, возможно, собраны некоторые пакеты), и в конечном итоге вы получите обновленные пакеты.  Если один из этих обновленных пакетов вам не понравится, помните, что вы всегда можете выполнить откат!"
+
+#. type: Plain text
+#: doc/guix.texi:2773
+msgid "You can display the exact revision of Guix you're currently using by running:"
+msgstr "Вы можете отобразить точную версию Guix, которую сейчас используете, запустив:"
+
+#. type: example
+#: doc/guix.texi:2776
+#, fuzzy, no-wrap
+msgid "guix describe\n"
+msgstr "guix describe\n"
+
+#. type: Plain text
+#: doc/guix.texi:2781
+msgid "The information it displays is @emph{all it takes to reproduce the exact same Guix}, be it at a different point in time or on a different machine."
+msgstr "Отображаемая информация - это @emph{все, что нужно для воспроизведения того же самого Guix}, будь то в другой момент времени или на другой машине."
+
+#. type: quotation
+#: doc/guix.texi:2787
+msgid "@xref{Invoking guix pull}, for more information.  @xref{Channels}, on how to specify additional @dfn{channels} to pull packages from, how to replicate Guix, and more.  You may also find @command{time-machine} handy (@pxref{Invoking guix time-machine})."
+msgstr "@xref{Invoking guix pull}, для дополнительной информации.  @xref{Channels}, как указать дополнительные @dfn{каналы} для получения пакетов, как реплицировать Guix и т. д.  Также команда @command{time-machine} может оказаться полезной (@pxref{Invoking guix time-machine})."
+
+#. type: Plain text
+#: doc/guix.texi:2792
+msgid "If you installed Guix System, one of the first things you'll want to do is to upgrade your system.  Once you've run @command{guix pull} to get the latest Guix, you can upgrade the system like this:"
+msgstr "Если вы установили Guix System, первое, что вам нужно сделать, это обновить вашу систему.  После того, как вы запустите команду @command{guix pull}, чтобы получить последнюю версию Guix, вы можете обновить систему следующим образом:"
+
+#. type: example
+#: doc/guix.texi:2795
+#, no-wrap
+msgid "sudo guix system reconfigure /etc/config.scm\n"
+msgstr "sudo guix system reconfigure /etc/config.scm\n"
+
+#. type: Plain text
+#: doc/guix.texi:2804
+msgid "Upon completion, the system runs the latest versions of its software packages.  When you eventually reboot, you'll notice a sub-menu in the bootloader that reads ``Old system generations'': it's what allows you to boot @emph{an older generation of your system}, should the latest generation be ``broken'' or otherwise unsatisfying.  Just like for packages, you can always @emph{roll back} to a previous generation @emph{of the whole system}:"
+msgstr "По завершении в системе будут запущены последние версии пакетов.  Когда вы перезагрузите машину, вы заметите подменю в загрузчике ``Old system generations'': это то, что позволяет вам загружать @emph{старшее поколение вашей системы}, если последнее поколение ``сломано'' или не соответствует вашим ожиданиям.  Как и в случае с пакетами, вы всегда можете @emph{откатиться} на предыдущее поколение @emph{всей системы}:"
+
+#. type: example
+#: doc/guix.texi:2807
+#, no-wrap
+msgid "sudo guix system roll-back\n"
+msgstr "sudo guix system roll-back\n"
+
+#. type: Plain text
+#: doc/guix.texi:2814
+msgid "There are many things you'll probably want to tweak on your system: adding new user accounts, adding new system services, fiddling with the configuration of those services, etc.  The system configuration is @emph{entirely} described in the @file{/etc/config.scm} file.  @xref{Using the Configuration System}, to learn how to change it."
+msgstr "Есть много вещей, которые вы, вероятно, захотите настроить в своей системе: добавление новых учетных записей пользователей, добавление новых системных служб, изменение конфигурации этих служб и т.д.  Конфигурация системы @emph{полностью} определена в файле @file{/etc/config.scm}.  @xref{Using the Configuration System}, узнать о настройке системы."
+
+#. type: Plain text
+#: doc/guix.texi:2816
+msgid "Now you know enough to get started!"
+msgstr "Теперь вы знаете достаточно, чтобы начать!"
+
+#. type: quotation
+#: doc/guix.texi:2817
+#, no-wrap
+msgid "Resources"
+msgstr "Ресурсы"
+
+#. type: quotation
+#: doc/guix.texi:2820
+msgid "The rest of this manual provides a reference for all things Guix.  Here are some additional resources you may find useful:"
+msgstr "Остальная часть этого руководства представляет собой справочник по всему, что связано с Guix.  Вот несколько дополнительных ресурсов, которые могут вам пригодиться:"
+
+#. type: itemize
+#: doc/guix.texi:2825
+msgid "@xref{Top,,, guix-cookbook, The GNU Guix Cookbook}, for a list of ``how-to'' style of recipes for a variety of applications."
+msgstr "@xref{Top,,, guix-cookbook, The GNU Guix Cookbook}, статьи с готовыми решениями для различных ситуаций в стиле ``how-to''."
+
+#. type: itemize
+#: doc/guix.texi:2830
+msgid "The @uref{https://guix.gnu.org/guix-refcard.pdf, GNU Guix Reference Card} lists in two pages most of the commands and options you'll ever need."
+msgstr "@uref{https://guix.gnu.org/guix-refcard.pdf, GNU Guix Reference Card} шпаргалка с большинством команд и опций, которые вам когда-либо понадобятся."
+
+#. type: itemize
+#: doc/guix.texi:2835
+msgid "The web site contains @uref{https://guix.gnu.org/en/videos/, instructional videos} covering topics such as everyday use of Guix, how to get help, and how to become a contributor."
+msgstr "Веб-сайт содержит @uref{https://guix.gnu.org/en/videos/, обучающие видеоролики} по таким темам, как повседневное использование Guix, как получить помощь и как стать участником сообщества."
+
+#. type: itemize
+#: doc/guix.texi:2839
+msgid "@xref{Documentation}, to learn how to access documentation on your computer."
+msgstr "@xref{Documentation}, чтобы узнать, как получить доступ к документации на вашем компьютере."
+
+#. type: quotation
+#: doc/guix.texi:2842
+msgid "We hope you will enjoy Guix as much as the community enjoys building it!"
+msgstr "Мы надеемся, что вам понравится Guix так же, как и сообществу нравится его создавать!"
+
 #. type: cindex
-#: doc/guix.texi:2557
+#: doc/guix.texi:2848
 #, no-wrap
 msgid "packages"
 msgstr "пакеты"
 
 #. type: Plain text
-#: doc/guix.texi:2562
+#: doc/guix.texi:2853
 msgid "The purpose of GNU Guix is to allow users to easily install, upgrade, and remove software packages, without having to know about their build procedures or dependencies.  Guix also goes beyond this obvious set of features."
 msgstr "Целью GNU Guix является предоставление пользователям возможности легко устанавливать, обновлять и удалять пакеты программного обеспечения, без необходимости изучения процедур их сборки и без необходимости разрешения зависимостей. Также Guix имеет следующие обязательные особенности."
 
 #. type: Plain text
-#: doc/guix.texi:2570
+#: doc/guix.texi:2861
 msgid "This chapter describes the main features of Guix, as well as the package management tools it provides.  Along with the command-line interface described below (@pxref{Invoking guix package, @code{guix package}}), you may also use the Emacs-Guix interface (@pxref{Top,,, emacs-guix, The Emacs-Guix Reference Manual}), after installing @code{emacs-guix} package (run @kbd{M-x guix-help} command to start with it):"
 msgstr ""
 "Этот раздел описывает основные особенности Guix и предоставляемые им инструменты управления пакетами. Кроме интерфейса командной строки, который описан ниже (@pxref{Invoking guix package, @code{guix package}}), можно также использовать интерфейс Emacs-Guix (@pxref{Top,,, emacs-guix, The Emacs-\"\n"
 "\"Guix Reference Manual}), если установить пакет @code{emacs-guix} (выполните команду @kbd{M-x guix-help}, чтобы начать работу с ним):"
 
 #. type: example
-#: doc/guix.texi:2573
+#: doc/guix.texi:2864
 #, no-wrap
 msgid "guix install emacs-guix\n"
 msgstr "guix install emacs-guix\n"
 
 #. type: Plain text
-#: doc/guix.texi:2595
+#: doc/guix.texi:2885
+msgid "Here we assume you've already made your first steps with Guix (@pxref{Getting Started}) and would like to get an overview about what's going on under the hood."
+msgstr "Здесь мы предполагаем, что вы уже сделали свои первые шаги с Guix (@pxref{Getting Started}) и хотели бы получить обзор того, что происходит под капотом."
+
+#. type: Plain text
+#: doc/guix.texi:2889
 msgid "When using Guix, each package ends up in the @dfn{package store}, in its own directory---something that resembles @file{/gnu/store/xxx-package-1.2}, where @code{xxx} is a base32 string."
 msgstr "При использовании Guix каждый пакет после установки размещается в @dfn{package store}, в собственной директории, например, @file{/gnu/store/xxx-package-1.2}, где @code{xxx} - это строка base32."
 
 #. type: Plain text
-#: doc/guix.texi:2600
+#: doc/guix.texi:2894
 msgid "Instead of referring to these directories, users have their own @dfn{profile}, which points to the packages that they actually want to use.  These profiles are stored within each user's home directory, at @code{$HOME/.guix-profile}."
 msgstr "Вместо того, чтобы ссылаться на эти директории, пользователям нужно обращаться к их @dfn{профилям}, профиль указывает на пакеты, которые они хотят использовать. Эти профили хранятся в домашней директории каждого пользователя в @code{$HOME/.guix-profile}."
 
 #. type: Plain text
-#: doc/guix.texi:2608
+#: doc/guix.texi:2902
 msgid "For example, @code{alice} installs GCC 4.7.2.  As a result, @file{/home/alice/.guix-profile/bin/gcc} points to @file{/gnu/store/@dots{}-gcc-4.7.2/bin/gcc}.  Now, on the same machine, @code{bob} had already installed GCC 4.8.0.  The profile of @code{bob} simply continues to point to @file{/gnu/store/@dots{}-gcc-4.8.0/bin/gcc}---i.e., both versions of GCC coexist on the same system without any interference."
 msgstr "Например,  @code{alice} устанавливает GCC 4.7.2. В результате @file{/home/alice/.guix-profile/bin/gcc} указывает на @file{/gnu/store/@dots{}-gcc-4.7.2/bin/gcc}. Допустим, на той же машине @code{bob} установил GCC 4.8.0. Профиль пользователя @code{bob} просто указывает на @file{/gnu/store/@dots{}-gcc-4.8.0/bin/gcc}. То есть обе версии GCC присутствуют в одной системе без помех."
 
 #. type: Plain text
-#: doc/guix.texi:2612
+#: doc/guix.texi:2906
 msgid "The @command{guix package} command is the central tool to manage packages (@pxref{Invoking guix package}).  It operates on the per-user profiles, and can be used @emph{with normal user privileges}."
 msgstr "Команда @command{guix package} --- главный инструмент для управления пакетами (@pxref{Invoking guix package}). Она работает с профилями пользователей, которые имеют @emph{права обычных пользователей}."
 
 #. type: cindex
-#: doc/guix.texi:2613 doc/guix.texi:2692
+#: doc/guix.texi:2907 doc/guix.texi:2986
 #, no-wrap
 msgid "transactions"
 msgstr "транзакции"
 
 #. type: Plain text
-#: doc/guix.texi:2620
+#: doc/guix.texi:2914
 msgid "The command provides the obvious install, remove, and upgrade operations.  Each invocation is actually a @emph{transaction}: either the specified operation succeeds, or nothing happens.  Thus, if the @command{guix package} process is terminated during the transaction, or if a power outage occurs during the transaction, then the user's profile remains in its previous state, and remains usable."
 msgstr "Команда предоставляет обязательные операции установки, удаления и обновления. Каждый вызов представляет собой @emph{транзакцию}, независимо от того, выполнены успешно заданные операции, или ничего не произошло. Так, если процесс @command{guix package} завершился во время транзакции, или произошёл сбой питания во время транзакции, тогда профиль пользователя остаётся в исходном состоянии, готовом к использованию."
 
 #. type: Plain text
-#: doc/guix.texi:2628
+#: doc/guix.texi:2922
 msgid "In addition, any package transaction may be @emph{rolled back}.  So, if, for example, an upgrade installs a new version of a package that turns out to have a serious bug, users may roll back to the previous instance of their profile, which was known to work well.  Similarly, the global system configuration on Guix is subject to transactional upgrades and roll-back (@pxref{Using the Configuration System})."
 msgstr "В дополнение, каждую транзакцию, которая работает с пакетами, можно @emph{откатить}. Так если, например, обновление устанавливает новую версию пакета, которая имеет серьёзный баг, пользователи могут откатиться до предыдущей инстанции своего профиля, который работал нормально. Точно так же, глобальные настройки системы Guix являются объектом транзакционных обновлений и откатов (@pxref{Using the Configuration System})."
 
 #. type: Plain text
-#: doc/guix.texi:2635
+#: doc/guix.texi:2929
 msgid "All packages in the package store may be @emph{garbage-collected}.  Guix can determine which packages are still referenced by user profiles, and remove those that are provably no longer referenced (@pxref{Invoking guix gc}).  Users may also explicitly remove old generations of their profile so that the packages they refer to can be collected."
 msgstr "Все пакеты на складе могут быть @emph{собраны как мусор}. Guix может определить, какие пакеты всё ещё используются профилями пользователей, и удалить те, которые однозначно больше не используются  (@pxref{Invoking guix gc}). Также пользователи могут явно удалить старые поколения (generations) их профилей, поэтому пакеты, на которые ссылались старые профили, могут быть удалены."
 
 #. type: cindex
-#: doc/guix.texi:2636 doc/guix.texi:4392
+#: doc/guix.texi:2930 doc/guix.texi:4458
 #, no-wrap
 msgid "reproducibility"
 msgstr "воспроизводимость"
 
 #. type: Plain text
-#: doc/guix.texi:2648
+#: doc/guix.texi:2942
 msgid "Guix takes a @dfn{purely functional} approach to package management, as described in the introduction (@pxref{Introduction}).  Each @file{/gnu/store} package directory name contains a hash of all the inputs that were used to build that package---compiler, libraries, build scripts, etc.  This direct correspondence allows users to make sure a given package installation matches the current state of their distribution.  It also helps maximize @dfn{build reproducibility}: thanks to the isolated build environments that are used, a given build is likely to yield bit-identical files when performed on different machines (@pxref{Invoking guix-daemon, container})."
 msgstr "Guix реализует @dfn{чисто функциональный} подход к управлению пакетами, как описано во введении (@pxref{Introduction}). В @file{/gnu/store} имя директории каждого пакета содержит хеш всех входных данных, которые использовались при сборке пакета: компилятор, библиотеки, скрипты сборки и т.д. Это прямое соответствие позволяет пользователям убедиться, что данная установка пакета соответствует текущему состоянию дистрибутива. Также это помогает улучшить @dfn{воспроизводимость сборки}: благодаря изолированному окружению сборки, которая используется при установке пакета, результат сборки содержит точно такие же файлы на разных машинах (@pxref{Invoking guix-daemon, container})."
 
 #. type: Plain text
-#: doc/guix.texi:2659
+#: doc/guix.texi:2953
 msgid "This foundation allows Guix to support @dfn{transparent binary/source deployment}.  When a pre-built binary for a @file{/gnu/store} item is available from an external source---a @dfn{substitute}, Guix just downloads it and unpacks it; otherwise, it builds the package from source, locally (@pxref{Substitutes}).  Because build results are usually bit-for-bit reproducible, users do not have to trust servers that provide substitutes: they can force a local build and @emph{challenge} providers (@pxref{Invoking guix challenge})."
 msgstr "Эта концепция позволяет Guix поддерживать @dfn{прозрачное внедрение бинарников/исходников}. Когда доступен элемент @file{/gnu/store}, собранный заранее на внешнем источнике, то есть готова @dfn{подстановка}, Guix просто скачивает и распаковывает его. В противном случае он собирает пакет из исходников на локальной машине (@pxref{Substitutes}). Так как результаты сборки обычно воспроизводимы бит-к-биту, пользователи не должны доверять серверам, которые поставляют подстановки --- они могут целенаправленно запросить локальную сборку и @emph{не пользоваться} серверами подстановки (@pxref{Invoking guix challenge})."
 
 #. type: Plain text
-#: doc/guix.texi:2665
+#: doc/guix.texi:2959
 msgid "Control over the build environment is a feature that is also useful for developers.  The @command{guix environment} command allows developers of a package to quickly set up the right development environment for their package, without having to manually install the dependencies of the package into their profile (@pxref{Invoking guix environment})."
 msgstr "Управление окружением сборки --- функция, которая полезна для разработчиков. Команда @command{guix environment} позволяет разработчикам пакетов быстро установить требуемое окружение разработки без необходимости устанавливать в свой профиль зависимости пакета вручную (@pxref{Invoking guix environment})."
 
 #. type: cindex
-#: doc/guix.texi:2666
+#: doc/guix.texi:2960
 #, no-wrap
 msgid "replication, of software environments"
 msgstr "повторение, окружения программного обеспечения"
 
 #. type: cindex
-#: doc/guix.texi:2667
+#: doc/guix.texi:2961
 #, no-wrap
 msgid "provenance tracking, of software artifacts"
 msgstr "трекинг источника, артефакты программного обеспечения"
 
 #. type: Plain text
-#: doc/guix.texi:2674
+#: doc/guix.texi:2968
 msgid "All of Guix and its package definitions is version-controlled, and @command{guix pull} allows you to ``travel in time'' on the history of Guix itself (@pxref{Invoking guix pull}).  This makes it possible to replicate a Guix instance on a different machine or at a later point in time, which in turn allows you to @emph{replicate complete software environments}, while retaining precise @dfn{provenance tracking} of the software."
 msgstr "Guix и его определения пакетов подчняются контролю версиями, и @command{guix pull} позволяет \"путешествовать во времени\" по истории Guix (@pxref{Invoking guix pull}). Это позволяет повторять инстанцию Guix на разных машинах или по прошествию времени, что в свою очередь позволяет вам @emph{повторять полностью программное окружение} из достпуных @dfn{трекеров источников} программного обеспечения."
 
 #. type: section
-#: doc/guix.texi:2676
+#: doc/guix.texi:2970
 #, no-wrap
 msgid "Invoking @command{guix package}"
 msgstr "Вызов @command{guix package}"
 
 #. type: cindex
-#: doc/guix.texi:2678
+#: doc/guix.texi:2972
 #, no-wrap
 msgid "installing packages"
 msgstr "установка пакетов"
 
 #. type: cindex
-#: doc/guix.texi:2679
+#: doc/guix.texi:2973
 #, no-wrap
 msgid "removing packages"
 msgstr "удаление пакетов"
 
 #. type: cindex
-#: doc/guix.texi:2680
+#: doc/guix.texi:2974
 #, no-wrap
 msgid "package installation"
 msgstr "установка пакета"
 
 #. type: cindex
-#: doc/guix.texi:2681
+#: doc/guix.texi:2975
 #, no-wrap
 msgid "package removal"
 msgstr "удаление пакета"
 
 #. type: Plain text
-#: doc/guix.texi:2687
+#: doc/guix.texi:2981
 msgid "The @command{guix package} command is the tool that allows users to install, upgrade, and remove packages, as well as rolling back to previous configurations.  It operates only on the user's own profile, and works with normal user privileges (@pxref{Features}).  Its syntax is:"
 msgstr "Команда @command{guix package} --- инструмент, который позволяет пользователям устанавливать, обновлять и удалять пакеты, а также откатываться до предыдущих конфигураций (@pxref{Features}). Его синтаксис:"
 
 #. type: example
-#: doc/guix.texi:2690
+#: doc/guix.texi:2984
 #, no-wrap
 msgid "guix package @var{options}\n"
 msgstr "guix package @var{options}\n"
 
 #. type: Plain text
-#: doc/guix.texi:2697
+#: doc/guix.texi:2991
 msgid "Primarily, @var{options} specifies the operations to be performed during the transaction.  Upon completion, a new profile is created, but previous @dfn{generations} of the profile remain available, should the user want to roll back."
 msgstr "В первую очередь, @var{options} (опции) задают операции, которые нужно выполнить в транзакции. По завершении создаётся новый профиль, а предыдущие @dfn{поколения} (generations) профиля остаются доступными, если пользователь решит откатиться."
 
 #. type: Plain text
-#: doc/guix.texi:2700
+#: doc/guix.texi:2994
 msgid "For example, to remove @code{lua} and install @code{guile} and @code{guile-cairo} in a single transaction:"
 msgstr "Например, чтобы удалить @code{lua} и устанвоить @code{guile} и @code{guile-cairo} в одной транзакции, напечатайте:"
 
 #. type: example
-#: doc/guix.texi:2703
+#: doc/guix.texi:2997
 #, no-wrap
 msgid "guix package -r lua -i guile guile-cairo\n"
 msgstr "guix package -r lua -i guile guile-cairo\n"
 
 #. type: cindex
-#: doc/guix.texi:2705
+#: doc/guix.texi:2999
 #, no-wrap
 msgid "aliases, for @command{guix package}"
 msgstr "синонимы, для @command{guix package}"
 
 #. type: Plain text
-#: doc/guix.texi:2707
+#: doc/guix.texi:3001
 msgid "For your convenience, we also provide the following aliases:"
 msgstr "Для вашего удобства мы также предоставляем следующие синонимы:"
 
 #. type: itemize
-#: doc/guix.texi:2711
+#: doc/guix.texi:3005
 msgid "@command{guix search} is an alias for @command{guix package -s},"
 msgstr "@command{guix search} - синоним @command{guix package -s},"
 
 #. type: itemize
-#: doc/guix.texi:2713
+#: doc/guix.texi:3007
 msgid "@command{guix install} is an alias for @command{guix package -i},"
 msgstr "@command{guix install} - синоним @command{guix package -i},"
 
 #. type: itemize
-#: doc/guix.texi:2715
+#: doc/guix.texi:3009
 msgid "@command{guix remove} is an alias for @command{guix package -r},"
 msgstr "@command{guix remove} - синоним @command{guix package -r},"
 
 #. type: itemize
-#: doc/guix.texi:2717
+#: doc/guix.texi:3011
 msgid "@command{guix upgrade} is an alias for @command{guix package -u},"
 msgstr "@command{guix upgrade} — это синоним @command{guix package -u},"
 
 #. type: itemize
-#: doc/guix.texi:2719
-#, fuzzy
-#| msgid "@command{guix search} is an alias for @command{guix package -s},"
+#: doc/guix.texi:3013
 msgid "and @command{guix show} is an alias for @command{guix package --show=}."
-msgstr "@command{guix search} - синоним @command{guix package -s},"
+msgstr "и @command{guix show} псевдоним (alias) для @command{guix package --show=}."
 
 #. type: Plain text
-#: doc/guix.texi:2724
+#: doc/guix.texi:3018
 msgid "These aliases are less expressive than @command{guix package} and provide fewer options, so in some cases you'll probably want to use @command{guix package} directly."
 msgstr "Эти синонимы не такие мощные, как @command{guix package}, и предоставляют меньше опций, так что в некоторых случаях вам скорее нужно пользоваться непосредственно @command{guix package}."
 
 #. type: Plain text
-#: doc/guix.texi:2729
+#: doc/guix.texi:3023
 msgid "@command{guix package} also supports a @dfn{declarative approach} whereby the user specifies the exact set of packages to be available and passes it @i{via} the @option{--manifest} option (@pxref{profile-manifest, @option{--manifest}})."
 msgstr "@command{guix package} также поддерживает @dfn{декларативный подход}, с помощью которого пользователь зааёт точный набор пакетов, которые должны быть доступны, и передаёт его @i{в опции} @option{--manifest} (@pxref{profile-manifest, @option{--manifest}})."
 
 #. type: cindex
-#: doc/guix.texi:2730
+#: doc/guix.texi:3024
 #, no-wrap
 msgid "profile"
 msgstr "профиль"
 
 #. type: Plain text
-#: doc/guix.texi:2736
-msgid "For each user, a symlink to the user's default profile is automatically created in @file{$HOME/.guix-profile}.  This symlink always points to the current generation of the user's default profile.  Thus, users can add @file{$HOME/.guix-profile/bin} to their @code{PATH} environment variable, and so on."
+#: doc/guix.texi:3030
+#, fuzzy
+#| msgid "For each user, a symlink to the user's default profile is automatically created in @file{$HOME/.guix-profile}.  This symlink always points to the current generation of the user's default profile.  Thus, users can add @file{$HOME/.guix-profile/bin} to their @code{PATH} environment variable, and so on."
+msgid "For each user, a symlink to the user's default profile is automatically created in @file{$HOME/.guix-profile}.  This symlink always points to the current generation of the user's default profile.  Thus, users can add @file{$HOME/.guix-profile/bin} to their @env{PATH} environment variable, and so on."
 msgstr "Для каждого пользователя автоматически создаётся символическая ссылка на профиль по умолчанию, она располагается в файле @file{$HOME/.guix-profile}. Эта ссылка всегда указывает на текущее поколение пользовательского профиля по умолчанию. Так пользователи могут добавить @file{$HOME/.guix-profile/bin} в свою переменную окружения @code{PATH} и прочее."
 
 #. type: cindex
-#: doc/guix.texi:2736 doc/guix.texi:2934
+#: doc/guix.texi:3030 doc/guix.texi:3260
 #, no-wrap
 msgid "search paths"
 msgstr "пути поиска"
 
 #. type: Plain text
-#: doc/guix.texi:2741
+#: doc/guix.texi:3035
 msgid "If you are not using Guix System, consider adding the following lines to your @file{~/.bash_profile} (@pxref{Bash Startup Files,,, bash, The GNU Bash Reference Manual}) so that newly-spawned shells get all the right environment variable definitions:"
 msgstr "Если вы не используете систему Guix, предполагается добавление следующих строк в ваш @file{~/.bash_profile} (@pxref{Bash Startup Files,,, bash, The GNU Bash Reference Manual}), чтобы порождаемые оболочки получили все необходимые определения переменных окружения:"
 
 #. type: example
-#: doc/guix.texi:2745
+#: doc/guix.texi:3039
 #, no-wrap
 msgid ""
 "GUIX_PROFILE=\"$HOME/.guix-profile\" ; \\\n"
@@ -7075,249 +7900,310 @@ msgstr ""
 "source \"$HOME/.guix-profile/etc/profile\"\n"
 
 #. type: Plain text
-#: doc/guix.texi:2756
-msgid "In a multi-user setup, user profiles are stored in a place registered as a @dfn{garbage-collector root}, which @file{$HOME/.guix-profile} points to (@pxref{Invoking guix gc}).  That directory is normally @code{@var{localstatedir}/guix/profiles/per-user/@var{user}}, where @var{localstatedir} is the value passed to @code{configure} as @code{--localstatedir}, and @var{user} is the user name.  The @file{per-user} directory is created when @command{guix-daemon} is started, and the @var{user} sub-directory is created by @command{guix package}."
+#: doc/guix.texi:3050
+#, fuzzy
+#| msgid "In a multi-user setup, user profiles are stored in a place registered as a @dfn{garbage-collector root}, which @file{$HOME/.guix-profile} points to (@pxref{Invoking guix gc}).  That directory is normally @code{@var{localstatedir}/guix/profiles/per-user/@var{user}}, where @var{localstatedir} is the value passed to @code{configure} as @code{--localstatedir}, and @var{user} is the user name.  The @file{per-user} directory is created when @command{guix-daemon} is started, and the @var{user} sub-directory is created by @command{guix package}."
+msgid "In a multi-user setup, user profiles are stored in a place registered as a @dfn{garbage-collector root}, which @file{$HOME/.guix-profile} points to (@pxref{Invoking guix gc}).  That directory is normally @code{@var{localstatedir}/guix/profiles/per-user/@var{user}}, where @var{localstatedir} is the value passed to @code{configure} as @option{--localstatedir}, and @var{user} is the user name.  The @file{per-user} directory is created when @command{guix-daemon} is started, and the @var{user} sub-directory is created by @command{guix package}."
 msgstr "В случае многопользовательской установки, профили пользователей сохраняются в месте, которое зарегстрировано как @dfn{garbage-collector root}, которое указывет на @file{$HOME/.guix-profile} (@pxref{Invoking guix gc}). Эта директория обычно ссылается на @code{@var{localstatedir}/guix/profiles/per-user/@var{user}}, где @var{localstatedir} --- значение, переданное скрипту @code{configure} опцией @code{--localstatedir}, а @var{user} --- имя пользователя. Директория @file{per-user} создаёся, когда запускается @command{guix-daemon}, а поддиректория @var{user} создаётся @command{guix package}."
 
 #. type: Plain text
-#: doc/guix.texi:2758
+#: doc/guix.texi:3052
 msgid "The @var{options} can be among the following:"
 msgstr "Опции @var{options} могут быть следующими:"
 
 #. type: item
-#: doc/guix.texi:2761
+#: doc/guix.texi:3055
 #, no-wrap
 msgid "--install=@var{package} @dots{}"
 msgstr "--install=@var{package} @dots{}"
 
 #. type: itemx
-#: doc/guix.texi:2762
+#: doc/guix.texi:3056
 #, no-wrap
 msgid "-i @var{package} @dots{}"
 msgstr "-i @var{package} @dots{}"
 
 #. type: table
-#: doc/guix.texi:2764
+#: doc/guix.texi:3058
 msgid "Install the specified @var{package}s."
 msgstr "Установить заданный пакет."
 
 #. type: table
-#: doc/guix.texi:2769
-msgid "Each @var{package} may specify either a simple package name, such as @code{guile}, or a package name followed by an at-sign and version number, such as @code{guile@@1.8.8} or simply @code{guile@@1.8} (in the latter case, the newest version prefixed by @code{1.8} is selected.)"
+#: doc/guix.texi:3063
+#, fuzzy
+#| msgid "Each @var{package} may specify either a simple package name, such as @code{guile}, or a package name followed by an at-sign and version number, such as @code{guile@@1.8.8} or simply @code{guile@@1.8} (in the latter case, the newest version prefixed by @code{1.8} is selected.)"
+msgid "Each @var{package} may specify either a simple package name, such as @code{guile}, or a package name followed by an at-sign and version number, such as @code{guile@@1.8.8} or simply @code{guile@@1.8} (in the latter case, the newest version prefixed by @code{1.8} is selected)."
 msgstr "Каждый @var{package} может задавать простое имя пакета, как например, @code{guile}, или имя пакета с указанием номера версии, например, @code{guile@@1.8.8} или просто @code{guile@@1.8} (в последнем случае выбирается самая новая версия с префиксом @code{1.8}.)"
 
 #. type: table
-#: doc/guix.texi:2777
+#: doc/guix.texi:3071
 msgid "If no version number is specified, the newest available version will be selected.  In addition, @var{package} may contain a colon, followed by the name of one of the outputs of the package, as in @code{gcc:doc} or @code{binutils@@2.22:lib} (@pxref{Packages with Multiple Outputs}).  Packages with a corresponding name (and optionally version) are searched for among the GNU distribution modules (@pxref{Package Modules})."
 msgstr "Если не задан номер версии, тогда будет выбрана самая новая доступная версия. Добавм, что @var{package} может содержать двоеточие и одно имя выходных данных пакета, как @code{gcc:doc} или @code{binutils@@2.22:lib} (@pxref{Packages with Multiple Outputs}). Пакеты с соответствующим именем (и опционально, версией) будут отыскиваться в модулях дистрибутива GNU (@pxref{Package Modules})."
 
 #. type: cindex
-#: doc/guix.texi:2778
+#: doc/guix.texi:3072
 #, no-wrap
 msgid "propagated inputs"
 msgstr "распространяемые входные данные"
 
 #. type: table
-#: doc/guix.texi:2784
+#: doc/guix.texi:3078
 msgid "Sometimes packages have @dfn{propagated inputs}: these are dependencies that automatically get installed along with the required package (@pxref{package-propagated-inputs, @code{propagated-inputs} in @code{package} objects}, for information about propagated inputs in package definitions)."
 msgstr "Иногда пакеты имеют @dfn{распространённые входные данные} (propagated inputs) --- это зависимости, которые устанавливаются автоматически вместе с требуемыми пакетами (см. @pxref{package-propagated-inputs, @code{propagated-inputs} in @code{package} objects} для подробной информации о распространяемых входных днных в определениях пакетов)."
 
 #. type: anchor{#1}
-#: doc/guix.texi:2791
+#: doc/guix.texi:3085
 msgid "package-cmd-propagated-inputs"
 msgstr "package-cmd-propagated-inputs"
 
 #. type: table
-#: doc/guix.texi:2791
+#: doc/guix.texi:3085
 msgid "An example is the GNU MPC library: its C header files refer to those of the GNU MPFR library, which in turn refer to those of the GMP library.  Thus, when installing MPC, the MPFR and GMP libraries also get installed in the profile; removing MPC also removes MPFR and GMP---unless they had also been explicitly installed by the user."
 msgstr "Примером является библиотека GNU MPC: его файлы заголовков C ссылаются на файлы библиотеки GNU MPFR, которые в свою очередь, ссылаются на библиотеку GMP. Так при установке MPC, также в профиль будут устанволены библиотеки MPFR и GMP; удаление MPC также удалит MPFR и GMP, если конечно, они не были явно установлены пользователем."
 
 #. type: table
-#: doc/guix.texi:2796
-msgid "Besides, packages sometimes rely on the definition of environment variables for their search paths (see explanation of @code{--search-paths} below).  Any missing or possibly incorrect environment variable definitions are reported here."
+#: doc/guix.texi:3090
+#, fuzzy
+#| msgid "Besides, packages sometimes rely on the definition of environment variables for their search paths (see explanation of @code{--search-paths} below).  Any missing or possibly incorrect environment variable definitions are reported here."
+msgid "Besides, packages sometimes rely on the definition of environment variables for their search paths (see explanation of @option{--search-paths} below).  Any missing or possibly incorrect environment variable definitions are reported here."
 msgstr "Кроме того, пакеты иногда зависят от переменных окружения --- от их путей поиска (смотрите разъяснение @code{--search-paths} ниже). Любая отсутствующая или, возможно, некорректная переменная окружения вызывает сообщение отчета."
 
 #. type: item
-#: doc/guix.texi:2797
+#: doc/guix.texi:3091
 #, no-wrap
 msgid "--install-from-expression=@var{exp}"
 msgstr "--install-from-expression=@var{exp}"
 
 #. type: itemx
-#: doc/guix.texi:2798
+#: doc/guix.texi:3092
 #, no-wrap
 msgid "-e @var{exp}"
 msgstr "-e @var{exp}"
 
 #. type: table
-#: doc/guix.texi:2800
+#: doc/guix.texi:3094
 msgid "Install the package @var{exp} evaluates to."
 msgstr "Устанавить пакет, соответствующий @var{exp}."
 
 #. type: table
-#: doc/guix.texi:2805
+#: doc/guix.texi:3099
 msgid "@var{exp} must be a Scheme expression that evaluates to a @code{<package>} object.  This option is notably useful to disambiguate between same-named variants of a package, with expressions such as @code{(@@ (gnu packages base) guile-final)}."
 msgstr "@var{exp} должно быть выражением Scheme, которое определяет объект @code{<package>}. Эта опция полезна, чтобы указать однозначно пакет, который имеет схожие варианты имён, например, выражением @code{(@@ (gnu packages base) guile-final)}."
 
 #. type: table
-#: doc/guix.texi:2809
+#: doc/guix.texi:3103
 msgid "Note that this option installs the first output of the specified package, which may be insufficient when needing a specific output of a multiple-output package."
 msgstr "Отметим, что эта опция устанавливает первое содержимое пакета, чего может быть недостаточно, если нужен специфичный выход пакета со множественным выходом."
 
 #. type: item
-#: doc/guix.texi:2810
+#: doc/guix.texi:3104
 #, no-wrap
 msgid "--install-from-file=@var{file}"
 msgstr "--install-from-file=@var{file}"
 
 #. type: itemx
-#: doc/guix.texi:2811 doc/guix.texi:8542
+#: doc/guix.texi:3105 doc/guix.texi:10060
 #, no-wrap
 msgid "-f @var{file}"
 msgstr "-f @var{file}"
 
 #. type: table
-#: doc/guix.texi:2813
+#: doc/guix.texi:3107
 msgid "Install the package that the code within @var{file} evaluates to."
 msgstr "Устанавить пакет, который определён в файле."
 
 #. type: table
-#: doc/guix.texi:2816 doc/guix.texi:4841
+#: doc/guix.texi:3110 doc/guix.texi:5455
 msgid "As an example, @var{file} might contain a definition like this (@pxref{Defining Packages}):"
 msgstr "Например, @var{file} может содержать содержать определение (@pxref{Defining Packages}):"
 
 #. type: include
-#: doc/guix.texi:2818 doc/guix.texi:8550
+#: doc/guix.texi:3112 doc/guix.texi:10068
 #, no-wrap
 msgid "package-hello.scm"
 msgstr "package-hello.scm"
 
 #. type: table
-#: doc/guix.texi:2825
+#: doc/guix.texi:3119
 msgid "Developers may find it useful to include such a @file{guix.scm} file in the root of their project source tree that can be used to test development snapshots and create reproducible development environments (@pxref{Invoking guix environment})."
 msgstr "Пользователи могут найти полезным включить подобный файл @file{guix.scm} в корень дерева своего проекта исходного кода, и он будет использоваться для тестирования разработки снепшотов и для создания воспроизводимого окружения разработки (@pxref{Invoking guix environment})."
 
+#. type: table
+#: doc/guix.texi:3124
+msgid "The @var{file} may also contain a JSON representation of one or more package definitions.  Running @code{guix package -f} on @file{hello.json} with the following contents would result in installing the package @code{greeter} after building @code{myhello}:"
+msgstr "@var{file} может также содержать JSON-представление одного или нескольких определений пакетов.  Запуск @code{guix package -f} на файле @file{hello.json} со следующим содержимым, установит пакет @code{greeter} после сборки @code{myhello}:"
+
+#. type: example
+#: doc/guix.texi:3127 doc/guix.texi:10078
+#, fuzzy, no-wrap
+#| msgid "@verbatiminclude environment-gdb.scm\n"
+msgid "@verbatiminclude package-hello.json\n"
+msgstr "@verbatiminclude environment-gdb.scm\n"
+
 #. type: item
-#: doc/guix.texi:2826
+#: doc/guix.texi:3129
 #, no-wrap
 msgid "--remove=@var{package} @dots{}"
 msgstr "--remove=@var{package} @dots{}"
 
 #. type: itemx
-#: doc/guix.texi:2827
+#: doc/guix.texi:3130
 #, no-wrap
 msgid "-r @var{package} @dots{}"
 msgstr "-r @var{package} @dots{}"
 
 #. type: table
-#: doc/guix.texi:2829
+#: doc/guix.texi:3132
 msgid "Remove the specified @var{package}s."
 msgstr "Удалить обозначенный пакет."
 
 #. type: table
-#: doc/guix.texi:2834
-msgid "As for @code{--install}, each @var{package} may specify a version number and/or output name in addition to the package name.  For instance, @code{-r glibc:debug} would remove the @code{debug} output of @code{glibc}."
+#: doc/guix.texi:3137
+#, fuzzy
+#| msgid "As for @code{--install}, each @var{package} may specify a version number and/or output name in addition to the package name.  For instance, @code{-r glibc:debug} would remove the @code{debug} output of @code{glibc}."
+msgid "As for @option{--install}, each @var{package} may specify a version number and/or output name in addition to the package name.  For instance, @samp{-r glibc:debug} would remove the @code{debug} output of @code{glibc}."
 msgstr "Касаемо @code{--install}, каждый пакет @var{package} может задавать номер версии и имя содержимого в добавлении к имени пакета. Например,  @code{-r glibc:debug} удалит содержимое @code{debug} из  @code{glibc}."
 
 #. type: item
-#: doc/guix.texi:2835
+#: doc/guix.texi:3138
 #, no-wrap
 msgid "--upgrade[=@var{regexp} @dots{}]"
 msgstr "--upgrade[=@var{regexp} @dots{}]"
 
 #. type: itemx
-#: doc/guix.texi:2836
+#: doc/guix.texi:3139
 #, no-wrap
 msgid "-u [@var{regexp} @dots{}]"
 msgstr "-u [@var{regexp} @dots{}]"
 
 #. type: cindex
-#: doc/guix.texi:2837
+#: doc/guix.texi:3140
 #, no-wrap
 msgid "upgrading packages"
 msgstr "обновление пакетов"
 
 #. type: table
-#: doc/guix.texi:2841
-msgid "Upgrade all the installed packages.  If one or more @var{regexp}s are specified, upgrade only installed packages whose name matches a @var{regexp}.  Also see the @code{--do-not-upgrade} option below."
+#: doc/guix.texi:3144
+#, fuzzy
+#| msgid "Upgrade all the installed packages.  If one or more @var{regexp}s are specified, upgrade only installed packages whose name matches a @var{regexp}.  Also see the @code{--do-not-upgrade} option below."
+msgid "Upgrade all the installed packages.  If one or more @var{regexp}s are specified, upgrade only installed packages whose name matches a @var{regexp}.  Also see the @option{--do-not-upgrade} option below."
 msgstr "Обновить все устанволенные пакеты. Если задано одно или более значений @var{regexp}, обновление затронет только пакеты, которые соответствуют @var{regexp}. Также смотрите опцию @code{--do-not-upgrade} ниже."
 
 #. type: table
-#: doc/guix.texi:2846
+#: doc/guix.texi:3149
 msgid "Note that this upgrades package to the latest version of packages found in the distribution currently installed.  To update your distribution, you should regularly run @command{guix pull} (@pxref{Invoking guix pull})."
 msgstr "Отметим, что это обновляет пакеты, которые установлены в системе, до последних версий, имеющихся в дистрибутиве. Чтобы обновить дистрибутив, нужно регулярно запускать @command{guix pull} (@pxref{Invoking guix pull})."
 
+#. type: cindex
+#: doc/guix.texi:3150
+#, fuzzy, no-wrap
+#| msgid "Package Transformation Options"
+msgid "package transformations, upgrades"
+msgstr "Параметры преобразования пакета"
+
+#. type: table
+#: doc/guix.texi:3155
+msgid "When upgrading, package transformations that were originally applied when creating the profile are automatically re-applied (@pxref{Package Transformation Options}).  For example, assume you first installed Emacs from the tip of its development branch with:"
+msgstr "При обновлении автоматически применяются преобразования пакета, которые были первоначально применены при создании профиля (@pxref{Package Transformation Options}).  Например, предположим, что вы сначала установили Emacs из ветки разработки с помощью:"
+
+#. type: example
+#: doc/guix.texi:3158
+#, no-wrap
+msgid "guix install emacs-next --with-branch=emacs-next=master\n"
+msgstr "guix install emacs-next --with-branch=emacs-next=master\n"
+
+#. type: table
+#: doc/guix.texi:3163
+msgid "Next time you run @command{guix upgrade}, Guix will again pull the tip of the Emacs development branch and build @code{emacs-next} from that checkout."
+msgstr "В следующий раз, когда вы запустите @command{guix upgrade}, Guix снова посмотрит на ветку разработки Emacs и соберет новый @code{emacs-next}."
+
+#. type: table
+#: doc/guix.texi:3168
+msgid "Note that transformation options such as @option{--with-branch} and @option{--with-source} depend on external state; it is up to you to ensure that they work as expected.  You can also discard a transformations that apply to a package by running:"
+msgstr "Обратите внимание, что параметры преобразования, такие как @option{--with-branch} и @option{--with-source}, зависят от внешнего состояния;  вам решать, чтобы они работали должным образом.  Вы также можете отменить преобразования, которые применяются к пакету, запустив:"
+
+#. type: example
+#: doc/guix.texi:3171
+#, no-wrap
+msgid "guix install @var{package}\n"
+msgstr "guix install @var{package}\n"
+
 #. type: item
-#: doc/guix.texi:2847
+#: doc/guix.texi:3173
 #, no-wrap
 msgid "--do-not-upgrade[=@var{regexp} @dots{}]"
 msgstr "--do-not-upgrade[=@var{regexp} @dots{}]"
 
 #. type: table
-#: doc/guix.texi:2852
-msgid "When used together with the @code{--upgrade} option, do @emph{not} upgrade any packages whose name matches a @var{regexp}.  For example, to upgrade all packages in the current profile except those containing the substring ``emacs'':"
+#: doc/guix.texi:3178
+#, fuzzy
+#| msgid "When used together with the @code{--upgrade} option, do @emph{not} upgrade any packages whose name matches a @var{regexp}.  For example, to upgrade all packages in the current profile except those containing the substring ``emacs'':"
+msgid "When used together with the @option{--upgrade} option, do @emph{not} upgrade any packages whose name matches a @var{regexp}.  For example, to upgrade all packages in the current profile except those containing the substring ``emacs'':"
 msgstr "При совместном использовании с опцией @code{--upgrade} @emph{не} обновляет ни один пакет, чьё имя соответствует @var{regexp}. Например, обновить все пакеты в текущем профиле , кроме тех, которые содержат подстроку \"emacs\":"
 
 #. type: example
-#: doc/guix.texi:2855
+#: doc/guix.texi:3181
 #, no-wrap
 msgid "$ guix package --upgrade . --do-not-upgrade emacs\n"
 msgstr "$ guix package --upgrade . --do-not-upgrade emacs\n"
 
 #. type: anchor{#1}
-#: doc/guix.texi:2857
+#: doc/guix.texi:3183
 #, no-wrap
 msgid "profile-manifest"
 msgstr "profile-manifest"
 
 #. type: item
-#: doc/guix.texi:2857 doc/guix.texi:4846 doc/guix.texi:5234 doc/guix.texi:9525
-#: doc/guix.texi:10843
+#: doc/guix.texi:3183 doc/guix.texi:5460 doc/guix.texi:5879
+#: doc/guix.texi:11065 doc/guix.texi:12454
 #, no-wrap
 msgid "--manifest=@var{file}"
 msgstr "--manifest=@var{file}"
 
 #. type: itemx
-#: doc/guix.texi:2858 doc/guix.texi:4847 doc/guix.texi:5235 doc/guix.texi:9526
+#: doc/guix.texi:3184 doc/guix.texi:5461 doc/guix.texi:5880
+#: doc/guix.texi:11066
 #, no-wrap
 msgid "-m @var{file}"
 msgstr "-m @var{file}"
 
 #. type: cindex
-#: doc/guix.texi:2859
+#: doc/guix.texi:3185
 #, no-wrap
 msgid "profile declaration"
 msgstr "описание профиля"
 
 #. type: cindex
-#: doc/guix.texi:2860
+#: doc/guix.texi:3186
 #, no-wrap
 msgid "profile manifest"
 msgstr "манифест профиля"
 
 #. type: table
-#: doc/guix.texi:2864
+#: doc/guix.texi:3190
 msgid "Create a new generation of the profile from the manifest object returned by the Scheme code in @var{file}.  This option can be repeated several times, in which case the manifests are concatenated."
 msgstr "Создаёт новую версию профиля из объекта манифеста, возвращаемого кодом Scheme в @var{file}. Этот параметр можно указывать несколько раз. В результате манифесты будут объединены в один."
 
 #. type: table
-#: doc/guix.texi:2870
-msgid "This allows you to @emph{declare} the profile's contents rather than constructing it through a sequence of @code{--install} and similar commands.  The advantage is that @var{file} can be put under version control, copied to different machines to reproduce the same profile, and so on."
+#: doc/guix.texi:3196
+#, fuzzy
+#| msgid "This allows you to @emph{declare} the profile's contents rather than constructing it through a sequence of @code{--install} and similar commands.  The advantage is that @var{file} can be put under version control, copied to different machines to reproduce the same profile, and so on."
+msgid "This allows you to @emph{declare} the profile's contents rather than constructing it through a sequence of @option{--install} and similar commands.  The advantage is that @var{file} can be put under version control, copied to different machines to reproduce the same profile, and so on."
 msgstr "Это позволяет вам @emph{описать} содержимое профиля вместо того, чтобы собирать его последовательностью команд @code{--install} и других. Преимущество в том, что @var{file} может подчиняться контролю версиями, копироваться на другие машины, чтобы повторить такой же профиль и т.д."
 
 #. type: table
-#: doc/guix.texi:2874
+#: doc/guix.texi:3200
 msgid "@var{file} must return a @dfn{manifest} object, which is roughly a list of packages:"
 msgstr "@var{file} должен возвращать объект @dfn{manifest}, который, грубо говоря, является списком пакетов:"
 
 #. type: findex
-#: doc/guix.texi:2875
+#: doc/guix.texi:3201
 #, no-wrap
 msgid "packages->manifest"
 msgstr "packages->manifest"
 
 #. type: lisp
-#: doc/guix.texi:2878
+#: doc/guix.texi:3204
 #, no-wrap
 msgid ""
 "(use-package-modules guile emacs)\n"
@@ -7327,7 +8213,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:2884
+#: doc/guix.texi:3210
 #, no-wrap
 msgid ""
 "(packages->manifest\n"
@@ -7343,18 +8229,18 @@ msgstr ""
 "       (list guile-2.0 \"debug\")))\n"
 
 #. type: findex
-#: doc/guix.texi:2886
+#: doc/guix.texi:3212
 #, no-wrap
 msgid "specifications->manifest"
 msgstr "specifications->manifest"
 
 #. type: table
-#: doc/guix.texi:2893
+#: doc/guix.texi:3219
 msgid "In this example we have to know which modules define the @code{emacs} and @code{guile-2.0} variables to provide the right @code{use-package-modules} line, which can be cumbersome.  We can instead provide regular package specifications and let @code{specifications->manifest} look up the corresponding package objects, like this:"
 msgstr "В этом примере мыдолжны знать, какие модули содержат определения переменных @code{emacs} и @code{guile-2.0}, чтобы написать правильную строку @code{use-package-modules}, что может быть затруднительно. Вместо этого мы можем обозначить обычные спецификации пакетов и сделать, чтобы @code{specifications->manifest} искал соответствующие объекты пакетов так:"
 
 #. type: lisp
-#: doc/guix.texi:2897
+#: doc/guix.texi:3223
 #, no-wrap
 msgid ""
 "(specifications->manifest\n"
@@ -7364,122 +8250,130 @@ msgstr ""
 " '(\"emacs\" \"guile@@2.2\" \"guile@@2.2:debug\"))\n"
 
 #. type: item
-#: doc/guix.texi:2899 doc/guix.texi:3848
+#: doc/guix.texi:3225 doc/guix.texi:4179
 #, no-wrap
 msgid "--roll-back"
 msgstr "--roll-back"
 
 #. type: cindex
-#: doc/guix.texi:2900 doc/guix.texi:3849 doc/guix.texi:26662
+#: doc/guix.texi:3226 doc/guix.texi:4180 doc/guix.texi:30284
 #, no-wrap
 msgid "rolling back"
 msgstr "откат"
 
 #. type: cindex
-#: doc/guix.texi:2901 doc/guix.texi:3850
+#: doc/guix.texi:3227 doc/guix.texi:4181
 #, no-wrap
 msgid "undoing transactions"
 msgstr "отменение транзакций"
 
 #. type: cindex
-#: doc/guix.texi:2902 doc/guix.texi:3851
+#: doc/guix.texi:3228 doc/guix.texi:4182
 #, no-wrap
 msgid "transactions, undoing"
 msgstr "транзакции, отмена"
 
 #. type: table
-#: doc/guix.texi:2905
+#: doc/guix.texi:3231
 msgid "Roll back to the previous @dfn{generation} of the profile---i.e., undo the last transaction."
 msgstr "Откатиться до предыдущего @dfn{поколения} профиля, то есть отменить последнюю транзакцию."
 
 #. type: table
-#: doc/guix.texi:2908
-msgid "When combined with options such as @code{--install}, roll back occurs before any other actions."
+#: doc/guix.texi:3234
+#, fuzzy
+#| msgid "When combined with options such as @code{--install}, roll back occurs before any other actions."
+msgid "When combined with options such as @option{--install}, roll back occurs before any other actions."
 msgstr "При сочетании с опциеями как @code{--install}, откат выполняется до всех прочих действий."
 
 #. type: table
-#: doc/guix.texi:2912
+#: doc/guix.texi:3238
 msgid "When rolling back from the first generation that actually contains installed packages, the profile is made to point to the @dfn{zeroth generation}, which contains no files apart from its own metadata."
 msgstr "При откате от первого поколения, которое по факту содержит установленные пакеты, профиль будет указывать на @dfn{нулевое поколение}, которое не содержит файлы, кроме собственных метаданных."
 
 #. type: table
-#: doc/guix.texi:2916
+#: doc/guix.texi:3242
 msgid "After having rolled back, installing, removing, or upgrading packages overwrites previous future generations.  Thus, the history of the generations in a profile is always linear."
 msgstr "После выполнения отката, установка, удаление или обновление пакетов по факту заменяет прежние будущие поколения. То есть история поколений в профиле всегда линейная."
 
 #. type: item
-#: doc/guix.texi:2917 doc/guix.texi:3855
+#: doc/guix.texi:3243 doc/guix.texi:4186
 #, no-wrap
 msgid "--switch-generation=@var{pattern}"
 msgstr "--switch-generation=@var{pattern}"
 
 #. type: itemx
-#: doc/guix.texi:2918 doc/guix.texi:3856
+#: doc/guix.texi:3244 doc/guix.texi:4187
 #, no-wrap
 msgid "-S @var{pattern}"
 msgstr "-S @var{pattern}"
 
 #. type: cindex
-#: doc/guix.texi:2919 doc/guix.texi:3147 doc/guix.texi:3857
-#: doc/guix.texi:26620
+#: doc/guix.texi:3245 doc/guix.texi:3474 doc/guix.texi:4188
+#: doc/guix.texi:30242
 #, no-wrap
 msgid "generations"
 msgstr "поколения"
 
 #. type: table
-#: doc/guix.texi:2921 doc/guix.texi:3859
+#: doc/guix.texi:3247 doc/guix.texi:4190
 msgid "Switch to a particular generation defined by @var{pattern}."
 msgstr "Переключиться на определённое поколение, опрделённое @var{pattern}."
 
 #. type: table
-#: doc/guix.texi:2927 doc/guix.texi:3865
-msgid "@var{pattern} may be either a generation number or a number prefixed with ``+'' or ``-''.  The latter means: move forward/backward by a specified number of generations.  For example, if you want to return to the latest generation after @code{--roll-back}, use @code{--switch-generation=+1}."
+#: doc/guix.texi:3253 doc/guix.texi:4196
+#, fuzzy
+#| msgid "@var{pattern} may be either a generation number or a number prefixed with ``+'' or ``-''.  The latter means: move forward/backward by a specified number of generations.  For example, if you want to return to the latest generation after @code{--roll-back}, use @code{--switch-generation=+1}."
+msgid "@var{pattern} may be either a generation number or a number prefixed with ``+'' or ``-''.  The latter means: move forward/backward by a specified number of generations.  For example, if you want to return to the latest generation after @option{--roll-back}, use @option{--switch-generation=+1}."
 msgstr "@var{pattern} может быть либо номером поколения или числом с префиксом \"+\" или \"-\". Последнее означает сменить вперёд/назад на обозначенное число поколений. Например, если вы хотите вернуться к последнему поколению после @code{--roll-back}, используйте @code{--switch-generation=+1}."
 
 #. type: table
-#: doc/guix.texi:2932
-msgid "The difference between @code{--roll-back} and @code{--switch-generation=-1} is that @code{--switch-generation} will not make a zeroth generation, so if a specified generation does not exist, the current generation will not be changed."
+#: doc/guix.texi:3258
+#, fuzzy
+#| msgid "The difference between @code{--roll-back} and @code{--switch-generation=-1} is that @code{--switch-generation} will not make a zeroth generation, so if a specified generation does not exist, the current generation will not be changed."
+msgid "The difference between @option{--roll-back} and @option{--switch-generation=-1} is that @option{--switch-generation} will not make a zeroth generation, so if a specified generation does not exist, the current generation will not be changed."
 msgstr "Разница между @code{--roll-back} и @code{--switch-generation=-1} заключается в том, что @code{--switch-generation} не создаёт нулевое поколение, так что если заданное поколение не существует, текущее поколение не будет изменено."
 
 #. type: item
-#: doc/guix.texi:2933
+#: doc/guix.texi:3259
 #, no-wrap
 msgid "--search-paths[=@var{kind}]"
 msgstr "--search-paths[=@var{kind}]"
 
 #. type: table
-#: doc/guix.texi:2939
+#: doc/guix.texi:3265
 msgid "Report environment variable definitions, in Bash syntax, that may be needed in order to use the set of installed packages.  These environment variables are used to specify @dfn{search paths} for files used by some of the installed packages."
 msgstr "Вывести отчёт об определениях переменных окружения в синтаксисе Bash. Это может понадобиться для использования набора установленных пакетов. Эти переменные окружения используются некоторыми установленными пакетами для поиска файлов."
 
 #. type: table
-#: doc/guix.texi:2947
-msgid "For example, GCC needs the @code{CPATH} and @code{LIBRARY_PATH} environment variables to be defined so it can look for headers and libraries in the user's profile (@pxref{Environment Variables,,, gcc, Using the GNU Compiler Collection (GCC)}).  If GCC and, say, the C library are installed in the profile, then @code{--search-paths} will suggest setting these variables to @code{@var{profile}/include} and @code{@var{profile}/lib}, respectively."
+#: doc/guix.texi:3273
+#, fuzzy
+#| msgid "For example, GCC needs the @code{CPATH} and @code{LIBRARY_PATH} environment variables to be defined so it can look for headers and libraries in the user's profile (@pxref{Environment Variables,,, gcc, Using the GNU Compiler Collection (GCC)}).  If GCC and, say, the C library are installed in the profile, then @code{--search-paths} will suggest setting these variables to @code{@var{profile}/include} and @code{@var{profile}/lib}, respectively."
+msgid "For example, GCC needs the @env{CPATH} and @env{LIBRARY_PATH} environment variables to be defined so it can look for headers and libraries in the user's profile (@pxref{Environment Variables,,, gcc, Using the GNU Compiler Collection (GCC)}).  If GCC and, say, the C library are installed in the profile, then @option{--search-paths} will suggest setting these variables to @file{@var{profile}/include} and @file{@var{profile}/lib}, respectively."
 msgstr "Например, для GCC должны быть определены переменные окружения @code{CPATH} и @code{LIBRARY_PATH}, чтобы он мог искать заголовки и библиотеки в профиле пользователя (@pxref{Environment Variables,,, gcc, Using the GNU Compiler Collection (GCC)}). Если GCC и, скажем, библиотека C установлены в профиле, тогда @code{--search-paths} предложит установить эти переменные в @code{@var{profile}/include} и @code{@var{profile}/lib} соответственно."
 
 #. type: table
-#: doc/guix.texi:2950
+#: doc/guix.texi:3276
 msgid "The typical use case is to define these environment variables in the shell:"
 msgstr "Обычный способ определить эти переменные окружения в оболочке:"
 
 #. type: example
-#: doc/guix.texi:2953
+#: doc/guix.texi:3279
 #, no-wrap
 msgid "$ eval `guix package --search-paths`\n"
 msgstr "$ eval `guix package --search-paths`\n"
 
 #. type: table
-#: doc/guix.texi:2959
+#: doc/guix.texi:3285
 msgid "@var{kind} may be one of @code{exact}, @code{prefix}, or @code{suffix}, meaning that the returned environment variable definitions will either be exact settings, or prefixes or suffixes of the current value of these variables.  When omitted, @var{kind} defaults to @code{exact}."
 msgstr "Вид @var{kind} может быть либо точный адрес @code{exact}, либо префикс @code{prefix}, либо суффикс @code{suffix}, то есть возвращаемые переменные окружения могут быть либо точными, либо префиксами и суффиксами текущего значения этих переменных. При пропуске вид @var{kind} по умолчанию выбирается точный @code{exact}."
 
 #. type: table
-#: doc/guix.texi:2962
+#: doc/guix.texi:3288
 msgid "This option can also be used to compute the @emph{combined} search paths of several profiles.  Consider this example:"
 msgstr "Эта опция также может использоваться для вычисления @emph{комбинированных} путей поиска нескольких профилей. Рассмотрим пример:"
 
 #. type: example
-#: doc/guix.texi:2967
+#: doc/guix.texi:3293
 #, no-wrap
 msgid ""
 "$ guix package -p foo -i guile\n"
@@ -7491,34 +8385,36 @@ msgstr ""
 "$ guix package -p foo -p bar --search-paths\n"
 
 #. type: table
-#: doc/guix.texi:2972
-msgid "The last command above reports about the @code{GUILE_LOAD_PATH} variable, even though, taken individually, neither @file{foo} nor @file{bar} would lead to that recommendation."
+#: doc/guix.texi:3298
+#, fuzzy
+#| msgid "The last command above reports about the @code{GUILE_LOAD_PATH} variable, even though, taken individually, neither @file{foo} nor @file{bar} would lead to that recommendation."
+msgid "The last command above reports about the @env{GUILE_LOAD_PATH} variable, even though, taken individually, neither @file{foo} nor @file{bar} would lead to that recommendation."
 msgstr "Последняя команда выше составляет отчёт о переменной @code{GUILE_LOAD_PATH}, даже если по отдельности ни @file{foo}, ни @file{bar} не предшествуют рекомендациям."
 
 #. type: item
-#: doc/guix.texi:2974 doc/guix.texi:3885 doc/guix.texi:4465
+#: doc/guix.texi:3300 doc/guix.texi:4216 doc/guix.texi:4545
 #, no-wrap
 msgid "--profile=@var{profile}"
 msgstr "--profile=@var{profile}"
 
 #. type: itemx
-#: doc/guix.texi:2975 doc/guix.texi:3886 doc/guix.texi:4466
+#: doc/guix.texi:3301 doc/guix.texi:4217 doc/guix.texi:4546
 #, no-wrap
 msgid "-p @var{profile}"
 msgstr "-p @var{profile}"
 
 #. type: table
-#: doc/guix.texi:2977
+#: doc/guix.texi:3303
 msgid "Use @var{profile} instead of the user's default profile."
 msgstr "Использовать @var{profile} вместо пользовательского профиля по умолчанию."
 
 #. type: table
-#: doc/guix.texi:2982
+#: doc/guix.texi:3308
 msgid "@var{profile} must be the name of a file that will be created upon completion.  Concretely, @var{profile} will be a mere symbolic link (``symlink'') pointing to the actual profile where packages are installed:"
-msgstr ""
+msgstr "@var{profile} должен быть именем файла, который будет создан по завершении.  Конкретно @var{profile} будет простой символической ссылкой (``символическая ссылка''), указывающей на текущий профиль, в котором установлены пакеты:"
 
 #. type: example
-#: doc/guix.texi:2988
+#: doc/guix.texi:3314
 #, no-wrap
 msgid ""
 "$ guix install hello -p ~/code/my-profile\n"
@@ -7526,31 +8422,35 @@ msgid ""
 "$ ~/code/my-profile/bin/hello\n"
 "Hello, world!\n"
 msgstr ""
+"$ guix install hello -p ~/code/my-profile\n"
+"@dots{}\n"
+"$ ~/code/my-profile/bin/hello\n"
+"Hello, world!\n"
 
 #. type: table
-#: doc/guix.texi:2992
+#: doc/guix.texi:3318
 msgid "All it takes to get rid of the profile is to remove this symlink and its siblings that point to specific generations:"
-msgstr ""
+msgstr "Чтобы избавиться от профиля, нужно удалить символическую ссылку и привязанные к ней элементы, которые указывают на конкретные поколения:"
 
 #. type: example
-#: doc/guix.texi:2995
+#: doc/guix.texi:3321
 #, no-wrap
 msgid "$ rm ~/code/my-profile ~/code/my-profile-*-link\n"
-msgstr ""
+msgstr "$ rm ~/code/my-profile ~/code/my-profile-*-link\n"
 
 #. type: item
-#: doc/guix.texi:2997
+#: doc/guix.texi:3323
 #, no-wrap
 msgid "--list-profiles"
 msgstr "--list-profiles"
 
 #. type: table
-#: doc/guix.texi:2999
+#: doc/guix.texi:3325
 msgid "List all the user's profiles:"
-msgstr ""
+msgstr "Перечислить все профили пользователя:"
 
 #. type: example
-#: doc/guix.texi:3006
+#: doc/guix.texi:3332
 #, no-wrap
 msgid ""
 "$ guix package --list-profiles\n"
@@ -7559,92 +8459,102 @@ msgid ""
 "/home/charlie/code/devel-profile\n"
 "/home/charlie/tmp/test\n"
 msgstr ""
+"$ guix package --list-profiles\n"
+"/home/charlie/.guix-profile\n"
+"/home/charlie/code/my-profile\n"
+"/home/charlie/code/devel-profile\n"
+"/home/charlie/tmp/test\n"
 
 #. type: table
-#: doc/guix.texi:3009
+#: doc/guix.texi:3335
 msgid "When running as root, list all the profiles of all the users."
-msgstr ""
+msgstr "При запуске от имени root будут перечислены все профили всех пользователей."
 
 #. type: cindex
-#: doc/guix.texi:3010
+#: doc/guix.texi:3336
 #, no-wrap
 msgid "collisions, in a profile"
 msgstr "противоречия, в профиле"
 
 #. type: cindex
-#: doc/guix.texi:3011
+#: doc/guix.texi:3337
 #, no-wrap
 msgid "colliding packages in profiles"
 msgstr "соперничающие пакеты в профиле"
 
 #. type: cindex
-#: doc/guix.texi:3012
+#: doc/guix.texi:3338
 #, no-wrap
 msgid "profile collisions"
 msgstr "противоречеия профиля"
 
 #. type: item
-#: doc/guix.texi:3013
+#: doc/guix.texi:3339
 #, no-wrap
 msgid "--allow-collisions"
 msgstr "--allow-collisions"
 
 #. type: table
-#: doc/guix.texi:3015
+#: doc/guix.texi:3341
 msgid "Allow colliding packages in the new profile.  Use at your own risk!"
 msgstr "Разрешить соперничающие пакеты в новом профиле. Используйте на свой собственный страх и риск!"
 
 #. type: table
-#: doc/guix.texi:3019
+#: doc/guix.texi:3345
 msgid "By default, @command{guix package} reports as an error @dfn{collisions} in the profile.  Collisions happen when two or more different versions or variants of a given package end up in the profile."
 msgstr "По умолчанию @command{guix package} делает отчёт о противоречиях @dfn{collisions} в профиле. Противоречия происходят, когда дви или более разных версии или варианта данного пакета присутсвуют в профиле."
 
 #. type: item
-#: doc/guix.texi:3020 doc/guix.texi:3902 doc/guix.texi:5319
+#: doc/guix.texi:3346 doc/guix.texi:4259 doc/guix.texi:5965
 #, no-wrap
 msgid "--bootstrap"
 msgstr "--bootstrap"
 
 #. type: table
-#: doc/guix.texi:3023
+#: doc/guix.texi:3349
 msgid "Use the bootstrap Guile to build the profile.  This option is only useful to distribution developers."
 msgstr "Использовать бутстрап Guile для сборки профиля. Эта опция полезна только разработчикам дистрибутива."
 
 #. type: Plain text
-#: doc/guix.texi:3029
+#: doc/guix.texi:3355
 msgid "In addition to these actions, @command{guix package} supports the following options to query the current state of a profile, or the availability of packages:"
 msgstr "В дополнение к этим действиям @command{guix package} поддерживает следующие опции при обращении к текущему состоянию профиля или для проверки доступности пакетов:"
 
 #. type: item
-#: doc/guix.texi:3032
+#: doc/guix.texi:3358
 #, no-wrap
 msgid "--search=@var{regexp}"
 msgstr "--search=@var{regexp}"
 
 #. type: itemx
-#: doc/guix.texi:3033
+#: doc/guix.texi:3359
 #, no-wrap
 msgid "-s @var{regexp}"
 msgstr "-s @var{regexp}"
 
+#. type: anchor{#1}
+#: doc/guix.texi:3361
+msgid "guix-search"
+msgstr "guix-search"
+
 #. type: cindex
-#: doc/guix.texi:3034
+#: doc/guix.texi:3361
 #, no-wrap
 msgid "searching for packages"
 msgstr "поиск пакетов"
 
 #. type: table
-#: doc/guix.texi:3040
+#: doc/guix.texi:3367
 msgid "List the available packages whose name, synopsis, or description matches @var{regexp} (in a case-insensitive fashion), sorted by relevance.  Print all the metadata of matching packages in @code{recutils} format (@pxref{Top, GNU recutils databases,, recutils, GNU recutils manual})."
 msgstr "Вывести список пакетов, чьи имена или описания содержат выражение @var{regexp} с учётом регистра, упорядоченные по соответствию. Печать всех метаданных соответствующих пакетов в формате @code{recutils} (@pxref{Top, GNU recutils databases,, recutils, GNU recutils manual})."
 
 #. type: table
-#: doc/guix.texi:3043
+#: doc/guix.texi:3370
 msgid "This allows specific fields to be extracted using the @command{recsel} command, for instance:"
 msgstr "Это позволяет извлекать заданые поля, используя команду @command{recsel}, например:"
 
 #. type: example
-#: doc/guix.texi:3049
+#: doc/guix.texi:3376
 #, no-wrap
 msgid ""
 "$ guix package -s malloc | recsel -p name,version,relevance\n"
@@ -7660,7 +8570,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:3053
+#: doc/guix.texi:3380
 #, no-wrap
 msgid ""
 "name: glibc\n"
@@ -7674,7 +8584,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:3057
+#: doc/guix.texi:3384
 #, no-wrap
 msgid ""
 "name: libgc\n"
@@ -7686,12 +8596,12 @@ msgstr ""
 "relevance: 1\n"
 
 #. type: table
-#: doc/guix.texi:3061
+#: doc/guix.texi:3388
 msgid "Similarly, to show the name of all the packages available under the terms of the GNU@tie{}LGPL version 3:"
 msgstr "Также для отображения имён всех доступных пакетов под лицензией GNU@tie{}LGPL версии 3:"
 
 #. type: example
-#: doc/guix.texi:3065
+#: doc/guix.texi:3392
 #, no-wrap
 msgid ""
 "$ guix package -s \"\" | recsel -p name -e 'license ~ \"LGPL 3\"'\n"
@@ -7703,7 +8613,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:3068
+#: doc/guix.texi:3395
 #, no-wrap
 msgid ""
 "name: gmp\n"
@@ -7713,12 +8623,12 @@ msgstr ""
 "@dots{}\n"
 
 #. type: table
-#: doc/guix.texi:3074
+#: doc/guix.texi:3401
 msgid "It is also possible to refine search results using several @code{-s} flags to @command{guix package}, or several arguments to @command{guix search}.  For example, the following command returns a list of board games (this time using the @command{guix search} alias):"
 msgstr "Также можно уточнить поиск, используя несколько флагов @code{-s} в команде @command{guix package} или несколько аргументов в @command{guix search}.  Например, следующая команда возвращает список настольных игр (используя синоним @command{guix search} на этот раз):"
 
 #. type: example
-#: doc/guix.texi:3079
+#: doc/guix.texi:3406
 #, no-wrap
 msgid ""
 "$ guix search '\\<board\\>' game | recsel -p name\n"
@@ -7730,17 +8640,17 @@ msgstr ""
 "@dots{}\n"
 
 #. type: table
-#: doc/guix.texi:3085
+#: doc/guix.texi:3412
 msgid "If we were to omit @code{-s game}, we would also get software packages that deal with printed circuit boards; removing the angle brackets around @code{board} would further add packages that have to do with keyboards."
 msgstr "При пропуске @code{-s game} мы получим пакеты программного обеспечения, которые работают с печатными платами (boards); удалив угловые скобки рядом с @code{board}, получим пакеты, которые также работают с клавиатурами (keyboards)."
 
 #. type: table
-#: doc/guix.texi:3089
+#: doc/guix.texi:3416
 msgid "And now for a more elaborate example.  The following command searches for cryptographic libraries, filters out Haskell, Perl, Python, and Ruby libraries, and prints the name and synopsis of the matching packages:"
 msgstr "А теперь более запутанный пример. Следующая команда ищет библиотеки криптографии, фильтрует библиотеки Haskel, Perl, Python и Ruby и печатает имена и краткие описания найденных пакетов:"
 
 #. type: example
-#: doc/guix.texi:3093
+#: doc/guix.texi:3420
 #, no-wrap
 msgid ""
 "$ guix search crypto library | \\\n"
@@ -7750,23 +8660,23 @@ msgstr ""
 "    recsel -e '! (name ~ \"^(ghc|perl|python|ruby)\")' -p name,synopsis\n"
 
 #. type: table
-#: doc/guix.texi:3098
+#: doc/guix.texi:3425
 msgid "@xref{Selection Expressions,,, recutils, GNU recutils manual}, for more information on @dfn{selection expressions} for @code{recsel -e}."
 msgstr "См. @xref{Selection Expressions,,, recutils, GNU recutils manual} для подробной информации о регуларяных выражениях @dfn{selection expressions} для @code{recsel -e}."
 
 #. type: item
-#: doc/guix.texi:3099
+#: doc/guix.texi:3426
 #, no-wrap
 msgid "--show=@var{package}"
 msgstr "--show=@var{package}"
 
 #. type: table
-#: doc/guix.texi:3103
+#: doc/guix.texi:3430
 msgid "Show details about @var{package}, taken from the list of available packages, in @code{recutils} format (@pxref{Top, GNU recutils databases,, recutils, GNU recutils manual})."
 msgstr "Показать детали пакета @var{package} из списка доступных пакетов в формате @code{recutils} (@pxref{Top, GNU recutils databases,, recutils, GNU recutils manual})."
 
 #. type: example
-#: doc/guix.texi:3108
+#: doc/guix.texi:3435
 #, no-wrap
 msgid ""
 "$ guix package --show=python | recsel -p name,version\n"
@@ -7780,7 +8690,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:3111
+#: doc/guix.texi:3438
 #, no-wrap
 msgid ""
 "name: python\n"
@@ -7790,259 +8700,261 @@ msgstr ""
 "version: 3.3.5\n"
 
 #. type: table
-#: doc/guix.texi:3115
-#, fuzzy
-#| msgid "You may also specify the full name of a package to only get details about a specific version of it:"
+#: doc/guix.texi:3442
 msgid "You may also specify the full name of a package to only get details about a specific version of it (this time using the @command{guix show} alias):"
-msgstr "Можно также указать полное имя пакета, чтобы получить детали определённой версии пакета:"
+msgstr "Можно также указать полное имя пакета, чтобы только получить детали его определённой версии (в этот раз, используя @command{guix show} псевдоним):"
 
 #. type: example
-#: doc/guix.texi:3119
-#, fuzzy, no-wrap
-#| msgid ""
-#| "$ guix package --show=python@@3.4 | recsel -p name,version\n"
-#| "name: python\n"
-#| "version: 3.4.3\n"
+#: doc/guix.texi:3446
+#, no-wrap
 msgid ""
 "$ guix show python@@3.4 | recsel -p name,version\n"
 "name: python\n"
 "version: 3.4.3\n"
 msgstr ""
-"$ guix package --show=python@@3.4 | recsel -p name,version\n"
-"name: python\n"
-"version: 3.4.3\n"
+"\"$ guix show python@@3.4 | recsel -p name,version\"\n"
+"\"name: python\"\n"
+"\"version: 3.4.3\"\n"
 
 #. type: item
-#: doc/guix.texi:3123
+#: doc/guix.texi:3450
 #, no-wrap
 msgid "--list-installed[=@var{regexp}]"
 msgstr "--list-installed[=@var{regexp}]"
 
 #. type: itemx
-#: doc/guix.texi:3124
+#: doc/guix.texi:3451
 #, no-wrap
 msgid "-I [@var{regexp}]"
 msgstr "-I [@var{regexp}]"
 
 #. type: table
-#: doc/guix.texi:3128
+#: doc/guix.texi:3455
 msgid "List the currently installed packages in the specified profile, with the most recently installed packages shown last.  When @var{regexp} is specified, list only installed packages whose name matches @var{regexp}."
 msgstr "Вывести текущий список установленных пакетов в заданном профиле, отобразив самый последний установленный пакет последним. Если задано @var{regexp}, будут выведены только пакеты, чьи имена содержат @var{regexp}."
 
 #. type: table
-#: doc/guix.texi:3134
+#: doc/guix.texi:3461
 msgid "For each installed package, print the following items, separated by tabs: the package name, its version string, the part of the package that is installed (for instance, @code{out} for the default output, @code{include} for its headers, etc.), and the path of this package in the store."
 msgstr "Для каждого установленного пакета выводит следующие элементы, разделенные табуляцией (tab): имя пакета, строка версии, частью какого пакета является установленный пакет (например, @code{out} вывода по умолчанию включает @code{include} его заголовки т.д.), а также путь этого пакета на складе."
 
 #. type: item
-#: doc/guix.texi:3135
+#: doc/guix.texi:3462
 #, no-wrap
 msgid "--list-available[=@var{regexp}]"
 msgstr "--list-available[=@var{regexp}]"
 
 #. type: itemx
-#: doc/guix.texi:3136
+#: doc/guix.texi:3463
 #, no-wrap
 msgid "-A [@var{regexp}]"
 msgstr "-A [@var{regexp}]"
 
 #. type: table
-#: doc/guix.texi:3140
+#: doc/guix.texi:3467
 #, fuzzy
 #| msgid "List packages currently available in the distribution for this system (@pxref{GNU Distribution}).  When @var{regexp} is specified, list only installed packages whose name matches @var{regexp}."
 msgid "List packages currently available in the distribution for this system (@pxref{GNU Distribution}).  When @var{regexp} is specified, list only available packages whose name matches @var{regexp}."
 msgstr "Вывести список пакетов, доступных на текущий момент в дистрибутиве данной системы (@pxref{GNU Distribution}). Если задано @var{regexp}, выводит только установленные пакеты, чьё имя содержит @var{regexp}."
 
 #. type: table
-#: doc/guix.texi:3144
+#: doc/guix.texi:3471
 msgid "For each package, print the following items separated by tabs: its name, its version string, the parts of the package (@pxref{Packages with Multiple Outputs}), and the source location of its definition."
 msgstr "Для каждого пакета выводит следующие элементы, разделённые табуляцией: его имя, строка версии, часть пакета (@pxref{Packages with Multiple Outputs}), а также расположение его определения в исходниках."
 
 #. type: item
-#: doc/guix.texi:3145 doc/guix.texi:3841
+#: doc/guix.texi:3472 doc/guix.texi:4172
 #, no-wrap
 msgid "--list-generations[=@var{pattern}]"
 msgstr "--list-generations[=@var{pattern}]"
 
 #. type: itemx
-#: doc/guix.texi:3146 doc/guix.texi:3842
+#: doc/guix.texi:3473 doc/guix.texi:4173
 #, no-wrap
 msgid "-l [@var{pattern}]"
 msgstr "-l [@var{pattern}]"
 
 #. type: table
-#: doc/guix.texi:3152
+#: doc/guix.texi:3479
 msgid "Return a list of generations along with their creation dates; for each generation, show the installed packages, with the most recently installed packages shown last.  Note that the zeroth generation is never shown."
 msgstr "Вывести список поколений (generations) с датами их создания; для каждого поколения отобразить установленные пакеты, самый последний установленный пакет отобразать последним. Отметим, что нулевое поколение никогда не показывается."
 
 #. type: table
-#: doc/guix.texi:3157
+#: doc/guix.texi:3484
 msgid "For each installed package, print the following items, separated by tabs: the name of a package, its version string, the part of the package that is installed (@pxref{Packages with Multiple Outputs}), and the location of this package in the store."
 msgstr "Для каждого установленного пакета отображает следующие элементы, разделённые табуляцией: имя пакета, строка версии, частью какого пакета является установленный пакет (@pxref{Packages with Multiple Outputs}), а также расположение пакета на складе."
 
 #. type: table
-#: doc/guix.texi:3160
+#: doc/guix.texi:3487
 msgid "When @var{pattern} is used, the command returns only matching generations.  Valid patterns include:"
 msgstr "Если используется @var{pattern}, команда выводит только соответствующие поколения. Правильные паттерны содержат:"
 
 #. type: item
-#: doc/guix.texi:3162
+#: doc/guix.texi:3489
 #, no-wrap
 msgid "@emph{Integers and comma-separated integers}.  Both patterns denote"
 msgstr "@emph{Числа и числа, разделённые запятыми}. Оба паттерна обозначают"
 
 #. type: itemize
-#: doc/guix.texi:3165
-msgid "generation numbers.  For instance, @code{--list-generations=1} returns the first one."
-msgstr "номера поколений. Например, @code{--list-generations=1} возвращает первое."
+#: doc/guix.texi:3492
+msgid "generation numbers.  For instance, @option{--list-generations=1} returns the first one."
+msgstr "номера поколений. Например, @option{--list-generations=1} возвращает первое."
 
 #. type: itemize
-#: doc/guix.texi:3168
-msgid "And @code{--list-generations=1,8,2} outputs three generations in the specified order.  Neither spaces nor trailing commas are allowed."
-msgstr "А @code{--list-generations=1,8,2} даёт три поколения в заданном пордке. Не опускаются ни пробелы, ни запятые на конце."
+#: doc/guix.texi:3495
+msgid "And @option{--list-generations=1,8,2} outputs three generations in the specified order.  Neither spaces nor trailing commas are allowed."
+msgstr "Опция @code{--list-generations=1,8,2} выводит три поколения в заданном пордке. Пробелы и запятые на конце запрещены."
 
 #. type: item
-#: doc/guix.texi:3169
+#: doc/guix.texi:3496
 #, no-wrap
-msgid "@emph{Ranges}.  @code{--list-generations=2..9} prints the"
-msgstr "@emph{Диапазоны}.  @code{--list-generations=2..9} выводит"
+msgid "@emph{Ranges}.  @option{--list-generations=2..9} prints the"
+msgstr "@emph{Ranges}.  @option{--list-generations=2..9} выводит"
 
 #. type: itemize
-#: doc/guix.texi:3172
+#: doc/guix.texi:3499
 msgid "specified generations and everything in between.  Note that the start of a range must be smaller than its end."
 msgstr "заданные поколения и все между ними. Отметим, что начало диапазона должно быть меньше его конца."
 
 #. type: itemize
-#: doc/guix.texi:3176
-msgid "It is also possible to omit the endpoint.  For example, @code{--list-generations=2..}, returns all generations starting from the second one."
+#: doc/guix.texi:3503
+#, fuzzy
+#| msgid "It is also possible to omit the endpoint.  For example, @code{--list-generations=2..}, returns all generations starting from the second one."
+msgid "It is also possible to omit the endpoint.  For example, @option{--list-generations=2..}, returns all generations starting from the second one."
 msgstr "Также можно пропустить конечную точку. Например, @code{--list-generations=2..} возвращает все поколения, начиная со второго."
 
 #. type: item
-#: doc/guix.texi:3177
+#: doc/guix.texi:3504
 #, no-wrap
 msgid "@emph{Durations}.  You can also get the last @emph{N}@tie{}days, weeks,"
 msgstr "@emph{Сроки}. Также можно задать последние @emph{N}@tie{}дней, недель"
 
 #. type: itemize
-#: doc/guix.texi:3181
-msgid "or months by passing an integer along with the first letter of the duration.  For example, @code{--list-generations=20d} lists generations that are up to 20 days old."
+#: doc/guix.texi:3508
+#, fuzzy
+#| msgid "or months by passing an integer along with the first letter of the duration.  For example, @code{--list-generations=20d} lists generations that are up to 20 days old."
+msgid "or months by passing an integer along with the first letter of the duration.  For example, @option{--list-generations=20d} lists generations that are up to 20 days old."
 msgstr "или месяцев, указав число и первую букву срока (d,w,m). Например,  @code{--list-generations=20d} отобразит список поколений старше 20 дней."
 
 #. type: item
-#: doc/guix.texi:3183 doc/guix.texi:3866
+#: doc/guix.texi:3510 doc/guix.texi:4197
 #, no-wrap
 msgid "--delete-generations[=@var{pattern}]"
 msgstr "--delete-generations[=@var{pattern}]"
 
 #. type: itemx
-#: doc/guix.texi:3184 doc/guix.texi:3867
+#: doc/guix.texi:3511 doc/guix.texi:4198
 #, no-wrap
 msgid "-d [@var{pattern}]"
 msgstr "-d [@var{pattern}]"
 
 #. type: table
-#: doc/guix.texi:3187 doc/guix.texi:3870
+#: doc/guix.texi:3514 doc/guix.texi:4201
 msgid "When @var{pattern} is omitted, delete all generations except the current one."
 msgstr "Если @var{pattern} пропущен, удалит все поголения, кроме текущего."
 
 #. type: table
-#: doc/guix.texi:3193 doc/guix.texi:3876
-msgid "This command accepts the same patterns as @option{--list-generations}.  When @var{pattern} is specified, delete the matching generations.  When @var{pattern} specifies a duration, generations @emph{older} than the specified duration match.  For instance, @code{--delete-generations=1m} deletes generations that are more than one month old."
+#: doc/guix.texi:3520 doc/guix.texi:4207
+#, fuzzy
+#| msgid "This command accepts the same patterns as @option{--list-generations}.  When @var{pattern} is specified, delete the matching generations.  When @var{pattern} specifies a duration, generations @emph{older} than the specified duration match.  For instance, @code{--delete-generations=1m} deletes generations that are more than one month old."
+msgid "This command accepts the same patterns as @option{--list-generations}.  When @var{pattern} is specified, delete the matching generations.  When @var{pattern} specifies a duration, generations @emph{older} than the specified duration match.  For instance, @option{--delete-generations=1m} deletes generations that are more than one month old."
 msgstr "Эта команда принимает такие же паттерны, как @option{--list-generations}. Если @var{pattern} задан, удалит соответствующие поколения. Если паттерн @var{pattern} задаёт срок, выбираются поколения @emph{старше} срока. Например, @code{--delete-generations=1m} удалит поколения, которые старше одного месяца."
 
 #. type: table
-#: doc/guix.texi:3196
+#: doc/guix.texi:3523
 msgid "If the current generation matches, it is @emph{not} deleted.  Also, the zeroth generation is never deleted."
 msgstr "Если текущее поколение попадает под условия паттерна, оно не будет удалено. А также нулевое поокление никогда не удаляется."
 
 #. type: table
-#: doc/guix.texi:3199 doc/guix.texi:3881
+#: doc/guix.texi:3526 doc/guix.texi:4212
 msgid "Note that deleting generations prevents rolling back to them.  Consequently, this command must be used with care."
 msgstr "Отметим, что удаление поколений делает невозможным откат к ним. Следовательно эта команда должна использоваться внимательно."
 
 #. type: Plain text
-#: doc/guix.texi:3210
-msgid "Finally, since @command{guix package} may actually start build processes, it supports all the common build options (@pxref{Common Build Options}).  It also supports package transformation options, such as @option{--with-source} (@pxref{Package Transformation Options}).  However, note that package transformations are lost when upgrading; to preserve transformations across upgrades, you should define your own package variant in a Guile module and add it to @code{GUIX_PACKAGE_PATH} (@pxref{Defining Packages})."
+#: doc/guix.texi:3537
+#, fuzzy
+#| msgid "Finally, since @command{guix package} may actually start build processes, it supports all the common build options (@pxref{Common Build Options}).  It also supports package transformation options, such as @option{--with-source} (@pxref{Package Transformation Options}).  However, note that package transformations are lost when upgrading; to preserve transformations across upgrades, you should define your own package variant in a Guile module and add it to @code{GUIX_PACKAGE_PATH} (@pxref{Defining Packages})."
+msgid "Finally, since @command{guix package} may actually start build processes, it supports all the common build options (@pxref{Common Build Options}).  It also supports package transformation options, such as @option{--with-source} (@pxref{Package Transformation Options}).  However, note that package transformations are lost when upgrading; to preserve transformations across upgrades, you should define your own package variant in a Guile module and add it to @env{GUIX_PACKAGE_PATH} (@pxref{Defining Packages})."
 msgstr "Наконец, так как @command{guix package} может запускать процессы сборки, она поддерживает все привычные опции сборки (@pxref{Common Build Options}). Она также поддерживает опции трансформации пакетов, как @option{--with-source} (@pxref{Package Transformation Options}). Однако, отметим, что трансформации пакетов теряются после обновлений; чтобы сохранить трансформации при обновлениях, нужно определить собственный вариант пакета в модуле Guile и добавить его в @code{GUIX_PACKAGE_PATH} (@pxref{Defining Packages})."
 
 #. type: cindex
-#: doc/guix.texi:3215
+#: doc/guix.texi:3542
 #, no-wrap
 msgid "pre-built binaries"
 msgstr "собранные бинарники"
 
 #. type: Plain text
-#: doc/guix.texi:3221
+#: doc/guix.texi:3548
 msgid "Guix supports transparent source/binary deployment, which means that it can either build things locally, or download pre-built items from a server, or both.  We call these pre-built items @dfn{substitutes}---they are substitutes for local build results.  In many cases, downloading a substitute is much faster than building things locally."
 msgstr "Guix поддерживает прозрачную развёртку исходников/бинарников, это означает возможность сборки пакетов локально или скачивания собранных элементов с сервера, или и то и другое. Мы называем собранные элементы @dfn{подстановками} (substitutes) --- это подстановки результатов локальных сборок. Часто скасивание подстановки намного быстрее, чем сборка пакетов локально."
 
 #. type: Plain text
-#: doc/guix.texi:3226
+#: doc/guix.texi:3553
 msgid "Substitutes can be anything resulting from a derivation build (@pxref{Derivations}).  Of course, in the common case, they are pre-built package binaries, but source tarballs, for instance, which also result from derivation builds, can be available as substitutes."
 msgstr "В качестве подстановок может выступать какой угодно результат сборки деривации (@pxref{Derivations}). Конечно, обычно это собранные пакеты, но также архивы исходников, например, представляя собой результаты сборок дериваций, могут быть доступны в качестве подстановок."
 
 #. type: cindex
-#: doc/guix.texi:3239
+#: doc/guix.texi:3566
 #, no-wrap
 msgid "build farm"
 msgstr "ферма сборки"
 
 #. type: Plain text
-#: doc/guix.texi:3249
+#: doc/guix.texi:3576
 msgid "The @code{@value{SUBSTITUTE-SERVER}} server is a front-end to an official build farm that builds packages from Guix continuously for some architectures, and makes them available as substitutes.  This is the default source of substitutes; it can be overridden by passing the @option{--substitute-urls} option either to @command{guix-daemon} (@pxref{daemon-substitute-urls,, @code{guix-daemon --substitute-urls}})  or to client tools such as @command{guix package} (@pxref{client-substitute-urls,, client @option{--substitute-urls} option})."
 msgstr "Сервер @code{@value{SUBSTITUTE-SERVER}} представляет собой интерфейс официальной фермы сборки, которая последовательно собирает пакеты Guix для некоторых архитектур и делает их доступными в качестве подстановок. Это источник подстановок по умолчанию; он может быть изменён при указании опции @option{--substitute-urls} как для @command{guix-daemon} (@pxref{daemon-substitute-urls,, @code{guix-daemon --substitute-urls}}) так и для клиентских инструментов, как @command{guix package} (@pxref{client-substitute-urls,, client @option{--substitute-urls} option})."
 
 #. type: Plain text
-#: doc/guix.texi:3255
+#: doc/guix.texi:3582
 msgid "Substitute URLs can be either HTTP or HTTPS.  HTTPS is recommended because communications are encrypted; conversely, using HTTP makes all communications visible to an eavesdropper, who could use the information gathered to determine, for instance, whether your system has unpatched security vulnerabilities."
 msgstr "URL подстановок могут быть либо HTTP, либо HTTPS. Рекомендуется HTTPS, так как такая связь шифруется; и наоборот, использование HTTP делает связь видимой для подслушивающих, и они могут использовать собранную информацию, чтобы определить, например, что ваша система не имеет патчей, покрывающих уязвимости безопасности."
 
 #. type: Plain text
-#: doc/guix.texi:3264
+#: doc/guix.texi:3591
 msgid "Substitutes from the official build farm are enabled by default when using Guix System (@pxref{GNU Distribution}).  However, they are disabled by default when using Guix on a foreign distribution, unless you have explicitly enabled them via one of the recommended installation steps (@pxref{Installation}).  The following paragraphs describe how to enable or disable substitutes for the official build farm; the same procedure can also be used to enable substitutes for any other substitute server."
 msgstr "Подстановки из официальной фермы сборки доступны по умолчанию при использовании системы Guix (@pxref{GNU Distribution}). Однако они отключены по умолчанию при использовании Guix на чужом дистрибутиве, если конечно вы явно не включили их на одном из рекомендуемых шагов установки (@pxref{Installation}). Ниже объясняется, как включить или отключить подстановки с официальной фермы сборки; такая же процедура может также использоваться для включения подстановок с любого другого сервера подстановок."
 
 #. type: cindex
-#: doc/guix.texi:3268
+#: doc/guix.texi:3595
 #, no-wrap
 msgid "security"
 msgstr "безопасность"
 
 #. type: cindex
-#: doc/guix.texi:3270
+#: doc/guix.texi:3597
 #, no-wrap
 msgid "access control list (ACL), for substitutes"
 msgstr "список контроля доступом (ACL), для подстановок"
 
 #. type: cindex
-#: doc/guix.texi:3271
+#: doc/guix.texi:3598
 #, no-wrap
 msgid "ACL (access control list), for substitutes"
 msgstr "ACL (список контроля доступом), для подстановок"
 
 #. type: Plain text
-#: doc/guix.texi:3278
+#: doc/guix.texi:3605
 msgid "To allow Guix to download substitutes from @code{@value{SUBSTITUTE-SERVER}} or a mirror thereof, you must add its public key to the access control list (ACL) of archive imports, using the @command{guix archive} command (@pxref{Invoking guix archive}).  Doing so implies that you trust @code{@value{SUBSTITUTE-SERVER}} to not be compromised and to serve genuine substitutes."
 msgstr "Чтобы разрешить Guix скачивать подстановки из @code{@value{SUBSTITUTE-SERVER}} или зеркала, вы должны добавить его публичный ключ в список контроля доступа (ACL) импорта архивов, используя команду @command{guix archive} (@pxref{Invoking guix archive}). Это действие означает, что вы доверяете @code{@value{SUBSTITUTE-SERVER}}, что он не скомпрометирован и может давать подлинные подстановки."
 
 #. type: Plain text
-#: doc/guix.texi:3285
+#: doc/guix.texi:3612
 msgid "The public key for @code{@value{SUBSTITUTE-SERVER}} is installed along with Guix, in @code{@var{prefix}/share/guix/@value{SUBSTITUTE-SERVER}.pub}, where @var{prefix} is the installation prefix of Guix.  If you installed Guix from source, make sure you checked the GPG signature of @file{guix-@value{VERSION}.tar.gz}, which contains this public key file.  Then, you can run something like this:"
 msgstr "Публичный ключ для @code{@value{SUBSTITUTE-SERVER}} устанавливается вместе с Guix в  @code{@var{prefix}/share/guix/@value{SUBSTITUTE-SERVER}.pub}, где @var{prefix} --- префикс установки Guix. Если вы установили Guix из исходников, проверьте подпись GPG @file{guix-@value{VERSION}.tar.gz}, где содержится файл публичного ключа. Затем можно выполнить примерно следующее:"
 
 #. type: example
-#: doc/guix.texi:3288
+#: doc/guix.texi:3615
 #, no-wrap
 msgid "# guix archive --authorize < @var{prefix}/share/guix/@value{SUBSTITUTE-SERVER}.pub\n"
 msgstr "# guix archive --authorize < @var{prefix}/share/guix/@value{SUBSTITUTE-SERVER}.pub\n"
 
 #. type: Plain text
-#: doc/guix.texi:3292
+#: doc/guix.texi:3619
 msgid "Once this is in place, the output of a command like @code{guix build} should change from something like:"
 msgstr "Когда это сделано, вывод команды @code{guix build} должен измениться с примерно такого:"
 
 #. type: example
-#: doc/guix.texi:3301
+#: doc/guix.texi:3628
 #, no-wrap
 msgid ""
 "$ guix build emacs --dry-run\n"
@@ -8062,12 +8974,12 @@ msgstr ""
 "@dots{}\n"
 
 #. type: Plain text
-#: doc/guix.texi:3305
+#: doc/guix.texi:3632
 msgid "to something like:"
 msgstr "на примерно следующий:"
 
 #. type: example
-#: doc/guix.texi:3314
+#: doc/guix.texi:3641
 #, no-wrap
 msgid ""
 "$ guix build emacs --dry-run\n"
@@ -8087,149 +8999,159 @@ msgstr ""
 "@dots{}\n"
 
 #. type: Plain text
-#: doc/guix.texi:3321
+#: doc/guix.texi:3648
 #, fuzzy
 #| msgid "This indicates that substitutes from @code{@value{SUBSTITUTE-SERVER}} are usable and will be downloaded, when possible, for future builds."
 msgid "The text changed from ``The following derivations would be built'' to ``112.3 MB would be downloaded''.  This indicates that substitutes from @code{@value{SUBSTITUTE-SERVER}} are usable and will be downloaded, when possible, for future builds."
 msgstr "Это показывает, что подстановки из @code{@value{SUBSTITUTE-SERVER}} готовы к использованию и будут скачиваться, если это возможно, в будущих сборках."
 
 #. type: cindex
-#: doc/guix.texi:3322
+#: doc/guix.texi:3649
 #, no-wrap
 msgid "substitutes, how to disable"
 msgstr "подстановки, как отключить"
 
 #. type: Plain text
-#: doc/guix.texi:3328
-msgid "The substitute mechanism can be disabled globally by running @code{guix-daemon} with @code{--no-substitutes} (@pxref{Invoking guix-daemon}).  It can also be disabled temporarily by passing the @code{--no-substitutes} option to @command{guix package}, @command{guix build}, and other command-line tools."
+#: doc/guix.texi:3655
+#, fuzzy
+#| msgid "The substitute mechanism can be disabled globally by running @code{guix-daemon} with @code{--no-substitutes} (@pxref{Invoking guix-daemon}).  It can also be disabled temporarily by passing the @code{--no-substitutes} option to @command{guix package}, @command{guix build}, and other command-line tools."
+msgid "The substitute mechanism can be disabled globally by running @code{guix-daemon} with @option{--no-substitutes} (@pxref{Invoking guix-daemon}).  It can also be disabled temporarily by passing the @option{--no-substitutes} option to @command{guix package}, @command{guix build}, and other command-line tools."
 msgstr "Механизм подстановок может быть отключен глобально путём запуска @code{guix-daemon} с @code{--no-substitutes} (@pxref{Invoking guix-daemon}). Также он может отключиться временно путём указания опции @code{--no-substitutes} в @command{guix package}, @command{guix build} и других инструментах командной строки."
 
 #. type: cindex
-#: doc/guix.texi:3332
+#: doc/guix.texi:3659
 #, no-wrap
 msgid "digital signatures"
 msgstr "цифровые подписи"
 
 #. type: Plain text
-#: doc/guix.texi:3336
+#: doc/guix.texi:3663
 msgid "Guix detects and raises an error when attempting to use a substitute that has been tampered with.  Likewise, it ignores substitutes that are not signed, or that are not signed by one of the keys listed in the ACL."
 msgstr "Guix определяет и вызывает ошибку, если происходит попытка использовать поддельную подстановку. А также он игнорирует подстановки, которые не подписаны, или те, которые не подписаны ни одним ключом из списка ACL."
 
 #. type: Plain text
-#: doc/guix.texi:3342
+#: doc/guix.texi:3669
 msgid "There is one exception though: if an unauthorized server provides substitutes that are @emph{bit-for-bit identical} to those provided by an authorized server, then the unauthorized server becomes eligible for downloads.  For example, assume we have chosen two substitute servers with this option:"
 msgstr "Но всё же есть одно исключение: если не авторизованный сервер предоставляет подстановки, которые являются @emph{идентичными бит-к-биту} с теми, которые предоставляет авторизованный сервер, тогда неавторизованный сервер становится приемлемым для скачивания. Например, положим, мы выбрали два сервера подстановок такой опцией:"
 
 #. type: example
-#: doc/guix.texi:3345
+#: doc/guix.texi:3672
 #, no-wrap
 msgid "--substitute-urls=\"https://a.example.org https://b.example.org\"\n"
 msgstr "--substitute-urls=\"https://a.example.org https://b.example.org\"\n"
 
 #. type: Plain text
-#: doc/guix.texi:3356
-msgid "If the ACL contains only the key for @code{b.example.org}, and if @code{a.example.org} happens to serve the @emph{exact same} substitutes, then Guix will download substitutes from @code{a.example.org} because it comes first in the list and can be considered a mirror of @code{b.example.org}.  In practice, independent build machines usually produce the same binaries, thanks to bit-reproducible builds (see below)."
+#: doc/guix.texi:3683
+#, fuzzy
+#| msgid "If the ACL contains only the key for @code{b.example.org}, and if @code{a.example.org} happens to serve the @emph{exact same} substitutes, then Guix will download substitutes from @code{a.example.org} because it comes first in the list and can be considered a mirror of @code{b.example.org}.  In practice, independent build machines usually produce the same binaries, thanks to bit-reproducible builds (see below)."
+msgid "If the ACL contains only the key for @samp{b.example.org}, and if @samp{a.example.org} happens to serve the @emph{exact same} substitutes, then Guix will download substitutes from @samp{a.example.org} because it comes first in the list and can be considered a mirror of @samp{b.example.org}.  In practice, independent build machines usually produce the same binaries, thanks to bit-reproducible builds (see below)."
 msgstr "Если ACL содержит только ключ для @code{b.example.org}, и если вдруг @code{a.example.org} предоставляет @emph{идентичные} подстановки, тогда Guix будет скачивать подстановки из @code{a.example.org}, потому что он идёт первым в списке и может рассматриваться как зеркало @code{b.example.org}. На практике независимые машины сборки обычно производят одинаковые бинарники благодаря воспроизводимым сборкам (смотрите ниже)."
 
 #. type: Plain text
-#: doc/guix.texi:3363
-msgid "When using HTTPS, the server's X.509 certificate is @emph{not} validated (in other words, the server is not authenticated), contrary to what HTTPS clients such as Web browsers usually do.  This is because Guix authenticates substitute information itself, as explained above, which is what we care about (whereas X.509 certificates are about authenticating bindings between domain names and public keys.)"
+#: doc/guix.texi:3690
+#, fuzzy
+#| msgid "When using HTTPS, the server's X.509 certificate is @emph{not} validated (in other words, the server is not authenticated), contrary to what HTTPS clients such as Web browsers usually do.  This is because Guix authenticates substitute information itself, as explained above, which is what we care about (whereas X.509 certificates are about authenticating bindings between domain names and public keys.)"
+msgid "When using HTTPS, the server's X.509 certificate is @emph{not} validated (in other words, the server is not authenticated), contrary to what HTTPS clients such as Web browsers usually do.  This is because Guix authenticates substitute information itself, as explained above, which is what we care about (whereas X.509 certificates are about authenticating bindings between domain names and public keys)."
 msgstr "При использовании HTTPS, сертификат X.509 сервера @emph{не} проверяется (другими словами, сервер не проходит аутентификацию), супротив тому, что HTTPS-клиенты, как веб-браузеры, обычно делают это. Это потому, что Guix аутентифицирует саму информацию подстановки, как это описано выше, что собственно и представляет для нас интерес (в то время, как сертификаты X.509 относятся к аутентификации связок между доменными именами и публичными ключами)."
 
 #. type: Plain text
-#: doc/guix.texi:3375
-msgid "Substitutes are downloaded over HTTP or HTTPS.  The @code{http_proxy} environment variable can be set in the environment of @command{guix-daemon} and is honored for downloads of substitutes.  Note that the value of @code{http_proxy} in the environment where @command{guix build}, @command{guix package}, and other client commands are run has @emph{absolutely no effect}."
+#: doc/guix.texi:3702
+#, fuzzy
+#| msgid "Substitutes are downloaded over HTTP or HTTPS.  The @code{http_proxy} environment variable can be set in the environment of @command{guix-daemon} and is honored for downloads of substitutes.  Note that the value of @code{http_proxy} in the environment where @command{guix build}, @command{guix package}, and other client commands are run has @emph{absolutely no effect}."
+msgid "Substitutes are downloaded over HTTP or HTTPS.  The @env{http_proxy} and @env{https_proxy} environment variables can be set in the environment of @command{guix-daemon} and are honored for downloads of substitutes.  Note that the value of those environment variables in the environment where @command{guix build}, @command{guix package}, and other client commands are run has @emph{absolutely no effect}."
 msgstr "Подстановки скачиваются через HTTP или HTTPS. Можно установить переменную окружения @code{http_proxy} в окружении  @command{guix-daemon}, чтобы она учитывалась при скачивании. Отметим, что значение @code{http_proxy} в окружении, в котором запускаются  @command{guix build}, @command{guix package} и другие клиентские команды @emph{совершенно не даёт эффекта}."
 
 #. type: Plain text
-#: doc/guix.texi:3384
+#: doc/guix.texi:3711
 msgid "Even when a substitute for a derivation is available, sometimes the substitution attempt will fail.  This can happen for a variety of reasons: the substitute server might be offline, the substitute may recently have been deleted, the connection might have been interrupted, etc."
 msgstr "Даже когда подстановка для деривации доступна, иногда попытка подстановки завершается неудачно. Это может происходить по разным причинам: сервер подстановок может быть отключен, подстановка могла быть недавно удалена, связь может прерываться и т.д."
 
 #. type: Plain text
-#: doc/guix.texi:3398
-msgid "When substitutes are enabled and a substitute for a derivation is available, but the substitution attempt fails, Guix will attempt to build the derivation locally depending on whether or not @code{--fallback} was given (@pxref{fallback-option,, common build option @code{--fallback}}).  Specifically, if @code{--fallback} was omitted, then no local build will be performed, and the derivation is considered to have failed.  However, if @code{--fallback} was given, then Guix will attempt to build the derivation locally, and the success or failure of the derivation depends on the success or failure of the local build.  Note that when substitutes are disabled or no substitute is available for the derivation in question, a local build will @emph{always} be performed, regardless of whether or not @code{--fallback} was given."
+#: doc/guix.texi:3725
+#, fuzzy
+#| msgid "When substitutes are enabled and a substitute for a derivation is available, but the substitution attempt fails, Guix will attempt to build the derivation locally depending on whether or not @code{--fallback} was given (@pxref{fallback-option,, common build option @code{--fallback}}).  Specifically, if @code{--fallback} was omitted, then no local build will be performed, and the derivation is considered to have failed.  However, if @code{--fallback} was given, then Guix will attempt to build the derivation locally, and the success or failure of the derivation depends on the success or failure of the local build.  Note that when substitutes are disabled or no substitute is available for the derivation in question, a local build will @emph{always} be performed, regardless of whether or not @code{--fallback} was given."
+msgid "When substitutes are enabled and a substitute for a derivation is available, but the substitution attempt fails, Guix will attempt to build the derivation locally depending on whether or not @option{--fallback} was given (@pxref{fallback-option,, common build option @option{--fallback}}).  Specifically, if @option{--fallback} was omitted, then no local build will be performed, and the derivation is considered to have failed.  However, if @option{--fallback} was given, then Guix will attempt to build the derivation locally, and the success or failure of the derivation depends on the success or failure of the local build.  Note that when substitutes are disabled or no substitute is available for the derivation in question, a local build will @emph{always} be performed, regardless of whether or not @option{--fallback} was given."
 msgstr "Когда подстановки включены, и подстановка для деривации доступна, но попытка подстановки завершается с ошибкой, Guix будет пытаться собрать деривацию локально в зависимости от того, задана или нет опция @code{--fallback} (@pxref{fallback-option,, common build option @code{--fallback}}). То есть, если @code{--fallback} пропущена, тогда локальная сборка не будет выполняться, а деривация будет рассматриваться как неудачная. Однако, если @code{--fallback} задана, тогда Guix попытается собрать деривацию локально, и успех или неудача деривации будет зависеть от успешной или неудачной процедуры локальной сборки. Отметим, что когда подстановки отключены или нет доступных подстановок для деривации, локальная сборка @emph{всегда} будет исполняться, вне зависимости от установки опции @code{--fallback}."
 
 #. type: Plain text
-#: doc/guix.texi:3403
+#: doc/guix.texi:3730
 msgid "To get an idea of how many substitutes are available right now, you can try running the @command{guix weather} command (@pxref{Invoking guix weather}).  This command provides statistics on the substitutes provided by a server."
 msgstr "Чтобы узнать,. сколько подстановок доступны в данный момент, можно попробовать запустить команду @command{guix weather} (@pxref{Invoking guix weather}). Эта команда предоставляет статистику подстановок, предоставляемых сервером."
 
 #. type: cindex
-#: doc/guix.texi:3407
+#: doc/guix.texi:3734
 #, no-wrap
 msgid "trust, of pre-built binaries"
 msgstr "доверие, собранным бинарникам"
 
 #. type: Plain text
-#: doc/guix.texi:3417
+#: doc/guix.texi:3744
 msgid "Today, each individual's control over their own computing is at the mercy of institutions, corporations, and groups with enough power and determination to subvert the computing infrastructure and exploit its weaknesses.  While using @code{@value{SUBSTITUTE-SERVER}} substitutes can be convenient, we encourage users to also build on their own, or even run their own build farm, such that @code{@value{SUBSTITUTE-SERVER}} is less of an interesting target.  One way to help is by publishing the software you build using @command{guix publish} so that others have one more choice of server to download substitutes from (@pxref{Invoking guix publish})."
 msgstr "Сегодня индивидуальный контроль над работой за компьютером находится в заложниках у корпораций, организаций и групп, которые имеют достаточно силы и решимости разрушить инфраструктуру компьютерных сетей и внедрить уязвимости. Использование подстановок @code{@value{SUBSTITUTE-SERVER}} может быть удобным, мы также стимулируем пользователей собирать их у себя или даже устанавливать собственные фермы сборки, чтобы уменьшить зависимость от @code{@value{SUBSTITUTE-SERVER}}. Одним из способов помочь является публикация программного обеспечения, которое вы собираете, используя @command{guix publish}, тогда другие получат дополнительный сервер на выбор, чтобы скачивать подстановки (@pxref{Invoking guix publish})."
 
 #. type: Plain text
-#: doc/guix.texi:3429
+#: doc/guix.texi:3756
 msgid "Guix has the foundations to maximize build reproducibility (@pxref{Features}).  In most cases, independent builds of a given package or derivation should yield bit-identical results.  Thus, through a diverse set of independent package builds, we can strengthen the integrity of our systems.  The @command{guix challenge} command aims to help users assess substitute servers, and to assist developers in finding out about non-deterministic package builds (@pxref{Invoking guix challenge}).  Similarly, the @option{--check} option of @command{guix build} allows users to check whether previously-installed substitutes are genuine by rebuilding them locally (@pxref{build-check, @command{guix build --check}})."
 msgstr "Guix определяет цель максимизировать воспроизводимость сборок (@pxref{Features}). В большинстве случаев независимые сборки заданного пакета или деривации должны давать результаты, идентичные до бита. То есть, благодаря ряду независимых сборок пакета мы можем улучшить чистоту наших систем. Команда @command{guix challenge} должна помочь пользователям оценить серверы подстановок, а разработчикам - помочь выявить недетерминистические сборки пакетов (@pxref{Invoking guix challenge}). Подобным образом опция @option{--check} команды @command{guix build} даёт возможность пользователям проверить, яляются ли установленные ранее подстановки подлинными, выполнив их локальную сборку (@pxref{build-check, @command{guix build --check}})."
 
 #. type: Plain text
-#: doc/guix.texi:3433
+#: doc/guix.texi:3760
 msgid "In the future, we want Guix to have support to publish and retrieve binaries to/from other users, in a peer-to-peer fashion.  If you would like to discuss this project, join us on @email{guix-devel@@gnu.org}."
 msgstr "Мы хотим, чтобы Guix в будущем поддерживал публикации и запросы бинарников от/для пользователей в формате равноправного обмена (peer-to-peer). Если вы желаете обсудить этот проект, присоединяйтесь к нам @email{guix-devel@@gnu.org}."
 
 #. type: cindex
-#: doc/guix.texi:3437
+#: doc/guix.texi:3764
 #, no-wrap
 msgid "multiple-output packages"
 msgstr "пакеты со множественным результатом"
 
 #. type: cindex
-#: doc/guix.texi:3438
+#: doc/guix.texi:3765
 #, no-wrap
 msgid "package outputs"
 msgstr "результаты пакета"
 
 #. type: cindex
-#: doc/guix.texi:3439
+#: doc/guix.texi:3766
 #, no-wrap
 msgid "outputs"
 msgstr "результаты"
 
 #. type: Plain text
-#: doc/guix.texi:3449
+#: doc/guix.texi:3776
 msgid "Often, packages defined in Guix have a single @dfn{output}---i.e., the source package leads to exactly one directory in the store.  When running @command{guix install glibc}, one installs the default output of the GNU libc package; the default output is called @code{out}, but its name can be omitted as shown in this command.  In this particular case, the default output of @code{glibc} contains all the C header files, shared libraries, static libraries, Info documentation, and other supporting files."
 msgstr "Часто пакеты, определённые в Guix, имеют один @dfn{выход}, это значит, что исходный пакет даёт только одну директорию на складе. При запуске @command{guix package -i glibc} это устанавливает результат по умолчанию; результат по умолчанию называется @code{выходом}, но его имя может пропускаться, как показано в этой команде. В этом частном случае результат по умолчанию для @code{glibc} содержит все файлы заголовков C, разделяемые библиотеки, статические библиотеки, документацию Info и другие поставляемые файлы."
 
 #. type: Plain text
-#: doc/guix.texi:3457
+#: doc/guix.texi:3784
 msgid "Sometimes it is more appropriate to separate the various types of files produced from a single source package into separate outputs.  For instance, the GLib C library (used by GTK+ and related packages)  installs more than 20 MiB of reference documentation as HTML pages.  To save space for users who do not need it, the documentation goes to a separate output, called @code{doc}.  To install the main GLib output, which contains everything but the documentation, one would run:"
 msgstr "Часто более приемлемым будет разделить различные типы файлов, поставляемых одним исходным пакетом, на отдельные выходы (результаты). Например, библиотека GLib C, используемая GTK+ и связанными с ним пакетами, устанавливает более 20Мб связанной документации в виде страниц HTML. Чтобы экономить место, пользователи, которым это не нужно, документацию можно выделить в отдельный выход, называемый @code{doc}. Чтобы установить основной выход GLib, который содерит всё, кроме документации, можно запустить:"
 
 #. type: example
-#: doc/guix.texi:3460
+#: doc/guix.texi:3787
 #, no-wrap
 msgid "guix install glib\n"
 msgstr "guix install glib\n"
 
 #. type: item
-#: doc/guix.texi:3462 doc/guix.texi:27901 doc/guix.texi:27926
+#: doc/guix.texi:3789 doc/guix.texi:31580 doc/guix.texi:31605
 #, no-wrap
 msgid "documentation"
 msgstr "документация"
 
 #. type: Plain text
-#: doc/guix.texi:3464
+#: doc/guix.texi:3791
 msgid "The command to install its documentation is:"
 msgstr "Команда для установки её документации:"
 
 #. type: example
-#: doc/guix.texi:3467
+#: doc/guix.texi:3794
 #, no-wrap
 msgid "guix install glib:doc\n"
 msgstr "guix install glib:doc\n"
 
 #. type: Plain text
-#: doc/guix.texi:3478
+#: doc/guix.texi:3805
 #, fuzzy
 msgid "Some packages install programs with different ``dependency footprints''.  For instance, the WordNet package installs both command-line tools and graphical user interfaces (GUIs).  The former depend solely on the C library, whereas the latter depend on Tcl/Tk and the underlying X libraries.  In this case, we leave the command-line tools in the default output, whereas the GUIs are in a separate output.  This allows users who do not need the GUIs to save space.  The @command{guix size} command can help find out about such situations (@pxref{Invoking guix size}).  @command{guix graph} can also be helpful (@pxref{Invoking guix graph})."
 msgstr ""
@@ -8239,484 +9161,505 @@ msgstr ""
 "Некоторые пакеты устанавливают программы с различными \"отпечатками зависимостей\". Например, пакет WordNet устанавливает и инструменты командной строки, и графический интерфейс (GUI). Первое зависит только от библиотеки C, а последнее зависит от Tcl/Tk и библиотек X. В таком случае мы оставляем инструменты командной строки в качестве результата (выхода) по умолчанию, в то время как GUI поставляется как отдельный выход. Это экономит место для пользователей, которым не нужен GUI. Команда @command{guix size} может помочь выявить такие ситуации (@pxref{Invoking guix size}). @command{guix graph} также полезна (@pxref{Invoking guix graph})."
 
 #. type: Plain text
-#: doc/guix.texi:3486
+#: doc/guix.texi:3813
 msgid "There are several such multiple-output packages in the GNU distribution.  Other conventional output names include @code{lib} for libraries and possibly header files, @code{bin} for stand-alone programs, and @code{debug} for debugging information (@pxref{Installing Debugging Files}).  The outputs of a packages are listed in the third column of the output of @command{guix package --list-available} (@pxref{Invoking guix package})."
 msgstr "Есть несколько таких пакетов со множественным выходом в дистрибутиве GNU. Другие традиционные имена выходов включают @code{lib} - для библиотек и иногда файлов заголовков, @code{bin} - для самих программ, @code{debug} - для отладочной информации (@pxref{Installing Debugging Files}). Выходы пакетов представлены в третьей колонке вывода @command{guix package --list-available} (@pxref{Invoking guix package})."
 
 #. type: section
-#: doc/guix.texi:3489
+#: doc/guix.texi:3816
 #, no-wrap
 msgid "Invoking @command{guix gc}"
 msgstr "Вызов @command{guix gc}"
 
 #. type: cindex
-#: doc/guix.texi:3491
+#: doc/guix.texi:3818
 #, no-wrap
 msgid "garbage collector"
 msgstr "сборщик мусора"
 
 #. type: cindex
-#: doc/guix.texi:3492
+#: doc/guix.texi:3819
 #, no-wrap
 msgid "disk space"
 msgstr "место на диске"
 
 #. type: Plain text
-#: doc/guix.texi:3498
+#: doc/guix.texi:3825
 msgid "Packages that are installed, but not used, may be @dfn{garbage-collected}.  The @command{guix gc} command allows users to explicitly run the garbage collector to reclaim space from the @file{/gnu/store} directory.  It is the @emph{only} way to remove files from @file{/gnu/store}---removing files or directories manually may break it beyond repair!"
 msgstr "Пакеты, которые установлены, но не используются, могут быть очищены как мусор (@dfn{garbage-collected}).  Команда @command{guix gc} позволяет пользователям непосредственно запустить сборщик мусора и восстановить место в директории @file{/gnu/store}. Это @emph{единственный} способ удалить файлы из @file{/gnu/store} --- удаление файлов вручную может поломать её безвозвратно!"
 
 #. type: Plain text
-#: doc/guix.texi:3509
+#: doc/guix.texi:3836
 msgid "The garbage collector has a set of known @dfn{roots}: any file under @file{/gnu/store} reachable from a root is considered @dfn{live} and cannot be deleted; any other file is considered @dfn{dead} and may be deleted.  The set of garbage collector roots (``GC roots'' for short)  includes default user profiles; by default, the symlinks under @file{/var/guix/gcroots} represent these GC roots.  New GC roots can be added with @command{guix build --root}, for example (@pxref{Invoking guix build}).  The @command{guix gc --list-roots} command lists them."
 msgstr "Сборщик мусора имеет набор известных корней (@dfn{roots}): любой файл в @file{/gnu/store}, доступный из корня, рассматривается как живой (@dfn{live}) и не может быть удалён; любой другой файл рассматривается как мёртвый (@dfn{dead}) и может быть удалён. Набор корней сборщика мусора (сокращённо \"GC roots\") содержит профили пользователей по умолчанию; по умолчанию символические ссылки в @file{/var/guix/gcroots} представляют эти корни сборщика мусора. Новые корни могут добавляться, например, командой @command{guix build --root} (@pxref{Invoking guix build}). Команда @command{guix gc --list-roots} отображает их."
 
 #. type: Plain text
-#: doc/guix.texi:3515
+#: doc/guix.texi:3842
 msgid "Prior to running @code{guix gc --collect-garbage} to make space, it is often useful to remove old generations from user profiles; that way, old package builds referenced by those generations can be reclaimed.  This is achieved by running @code{guix package --delete-generations} (@pxref{Invoking guix package})."
 msgstr "Перед запуском @code{guix gc --collect-garbage} для освобождения места часто бывает полезно удалить старые поколения из пользовательских профилей; так старые пакеты, относящиеся к этим поколениям, будут удалены. Это можно сделать, запустив @code{guix package --delete-generations} (@pxref{Invoking guix package})."
 
 #. type: Plain text
-#: doc/guix.texi:3519
+#: doc/guix.texi:3846
 msgid "Our recommendation is to run a garbage collection periodically, or when you are short on disk space.  For instance, to guarantee that at least 5@tie{}GB are available on your disk, simply run:"
 msgstr "Мы рекомендуем запускать сборщик мусора периодически, или когда вы хотите освободить место на диске. Например, чтобы гарантировать, что по меньшей мере 5@tie{}Гб будет доступно на вашем диске, просто запустите:"
 
 #. type: example
-#: doc/guix.texi:3522
+#: doc/guix.texi:3849
 #, no-wrap
 msgid "guix gc -F 5G\n"
 msgstr "guix gc -F 5G\n"
 
 #. type: Plain text
-#: doc/guix.texi:3531
+#: doc/guix.texi:3858
 msgid "It is perfectly safe to run as a non-interactive periodic job (@pxref{Scheduled Job Execution}, for how to set up such a job).  Running @command{guix gc} with no arguments will collect as much garbage as it can, but that is often inconvenient: you may find yourself having to rebuild or re-download software that is ``dead'' from the GC viewpoint but that is necessary to build other pieces of software---e.g., the compiler tool chain."
 msgstr "Хорошо бы запускать это как неинтерактивную периодическую задачу (@pxref{Scheduled Job Execution}, чтобы узнать, как добавить такую задачу). Запуск @command{guix gc} без аргументов соберёт столько мусора, сколько возможно, но это часто не удобно: можно обнаружить, что придётся заново собирать или скачивать программы, \"убитые\" сборщиком мусора, хотя они необходимы для сборки другого софта, например, это касается инструментов компилятора."
 
 #. type: Plain text
-#: doc/guix.texi:3537
-msgid "The @command{guix gc} command has three modes of operation: it can be used to garbage-collect any dead files (the default), to delete specific files (the @code{--delete} option), to print garbage-collector information, or for more advanced queries.  The garbage collection options are as follows:"
+#: doc/guix.texi:3864
+#, fuzzy
+#| msgid "The @command{guix gc} command has three modes of operation: it can be used to garbage-collect any dead files (the default), to delete specific files (the @code{--delete} option), to print garbage-collector information, or for more advanced queries.  The garbage collection options are as follows:"
+msgid "The @command{guix gc} command has three modes of operation: it can be used to garbage-collect any dead files (the default), to delete specific files (the @option{--delete} option), to print garbage-collector information, or for more advanced queries.  The garbage collection options are as follows:"
 msgstr "Команда @command{guix gc} предоставляет три способа взаимодействия: может использоваться для сборки мусора (garbage-collect) любых мёртвых файлов (по умолчанию), для удаления конкретных файлов (опция @code{--delete}), для вывода информации сборщика мусора, а также для более изощрённых запросов. Опции сборщика мусора:"
 
 #. type: item
-#: doc/guix.texi:3539
+#: doc/guix.texi:3866
 #, no-wrap
 msgid "--collect-garbage[=@var{min}]"
 msgstr "--collect-garbage[=@var{min}]"
 
 #. type: itemx
-#: doc/guix.texi:3540
+#: doc/guix.texi:3867
 #, no-wrap
 msgid "-C [@var{min}]"
 msgstr "-C [@var{min}]"
 
 #. type: table
-#: doc/guix.texi:3544
+#: doc/guix.texi:3871
 msgid "Collect garbage---i.e., unreachable @file{/gnu/store} files and sub-directories.  This is the default operation when no option is specified."
 msgstr "Собрать мусор, то есть недоступные файлы в @file{/gnu/store} и поддиректориях. Это операция по умолчанию, если не заданы опции."
 
 #. type: table
-#: doc/guix.texi:3549
+#: doc/guix.texi:3876
 msgid "When @var{min} is given, stop once @var{min} bytes have been collected.  @var{min} may be a number of bytes, or it may include a unit as a suffix, such as @code{MiB} for mebibytes and @code{GB} for gigabytes (@pxref{Block size, size specifications,, coreutils, GNU Coreutils})."
 msgstr "Если задана @var{min}, остановиться, когда @var{min} байт собрано.  @var{min} может быть числом байт или может содержать единицу измерения в суффиксе, как например, @code{MiB} для мебибайт и @code{GB} гигабайт (@pxref{Block size, size specifications,, coreutils, GNU Coreutils})."
 
 #. type: table
-#: doc/guix.texi:3551
+#: doc/guix.texi:3878
 msgid "When @var{min} is omitted, collect all the garbage."
 msgstr "Если @var{min} пропущено, собрать весь мусор."
 
 #. type: item
-#: doc/guix.texi:3552
+#: doc/guix.texi:3879
 #, no-wrap
 msgid "--free-space=@var{free}"
 msgstr "--free-space=@var{free}"
 
 #. type: itemx
-#: doc/guix.texi:3553
+#: doc/guix.texi:3880
 #, no-wrap
 msgid "-F @var{free}"
 msgstr "-F @var{free}"
 
 #. type: table
-#: doc/guix.texi:3557
+#: doc/guix.texi:3884
 msgid "Collect garbage until @var{free} space is available under @file{/gnu/store}, if possible; @var{free} denotes storage space, such as @code{500MiB}, as described above."
 msgstr "Собирать мусор, пока не станет доступно @var{free} места в @file{/gnu/store}, если возможно; @var{free} описывает дисковое пространство, как @code{500MiB}, как это описанов выше."
 
 #. type: table
-#: doc/guix.texi:3560
+#: doc/guix.texi:3887
 msgid "When @var{free} or more is already available in @file{/gnu/store}, do nothing and exit immediately."
 msgstr "Когда @var{free} или более места стало свободно в @file{/gnu/store}, ничего не делать и немедленно выйти."
 
 #. type: item
-#: doc/guix.texi:3561
+#: doc/guix.texi:3888
 #, no-wrap
 msgid "--delete-generations[=@var{duration}]"
 msgstr "--delete-generations[=@var{duration}]"
 
 #. type: itemx
-#: doc/guix.texi:3562
+#: doc/guix.texi:3889
 #, no-wrap
 msgid "-d [@var{duration}]"
 msgstr "-d [@var{duration}]"
 
 #. type: table
-#: doc/guix.texi:3566
+#: doc/guix.texi:3893
 msgid "Before starting the garbage collection process, delete all the generations older than @var{duration}, for all the user profiles; when run as root, this applies to all the profiles @emph{of all the users}."
 msgstr "Перед запуском сборщика мусора удалить все поколения, старше @var{duration}, для всех пользовательских профилей; если запускать от root, это применяется для всех профилей @emph{всех пользователей}."
 
 #. type: table
-#: doc/guix.texi:3570
+#: doc/guix.texi:3897
 msgid "For example, this command deletes all the generations of all your profiles that are older than 2 months (except generations that are current), and then proceeds to free space until at least 10 GiB are available:"
 msgstr "Например, следующая команда удаляет все поколения всех ваших профилей, которые старше 2 месцев (кроме текущего поколения), а затем запускается процесс освобождения мместа, пока по меньшей мере 10 GiB не станет доступно:"
 
 #. type: example
-#: doc/guix.texi:3573
+#: doc/guix.texi:3900
 #, no-wrap
 msgid "guix gc -d 2m -F 10G\n"
 msgstr "guix gc -d 2m -F 10G\n"
 
 #. type: item
-#: doc/guix.texi:3575
+#: doc/guix.texi:3902
 #, no-wrap
 msgid "--delete"
 msgstr "--delete"
 
 #. type: itemx
-#: doc/guix.texi:3576
+#: doc/guix.texi:3903
 #, no-wrap
 msgid "-D"
 msgstr "-D"
 
 #. type: table
-#: doc/guix.texi:3580
+#: doc/guix.texi:3907
 msgid "Attempt to delete all the store files and directories specified as arguments.  This fails if some of the files are not in the store, or if they are still live."
 msgstr "Попытаться удалить все файлы и директории склада, приведённые в аргументах. Это завершается с ошибкой, если какие-либо файлы не присутствуют на складе, или если они ещё живы (live)."
 
 #. type: item
-#: doc/guix.texi:3581
+#: doc/guix.texi:3908
 #, no-wrap
 msgid "--list-failures"
 msgstr "--list-failures"
 
 #. type: table
-#: doc/guix.texi:3583
+#: doc/guix.texi:3910
 msgid "List store items corresponding to cached build failures."
 msgstr "Вывести список элементов склада, которые относятся к кешированным неудачным сборкам."
 
 #. type: table
-#: doc/guix.texi:3587
+#: doc/guix.texi:3914
 msgid "This prints nothing unless the daemon was started with @option{--cache-failures} (@pxref{Invoking guix-daemon, @option{--cache-failures}})."
 msgstr "Это ничего не выводит, если демон не был запущен с опцией @option{--cache-failures} (@pxref{Invoking guix-daemon, @option{--cache-failures}})."
 
 #. type: item
-#: doc/guix.texi:3588
+#: doc/guix.texi:3915
 #, no-wrap
 msgid "--list-roots"
 msgstr "--list-roots"
 
 #. type: table
-#: doc/guix.texi:3591
+#: doc/guix.texi:3918
 msgid "List the GC roots owned by the user; when run as root, list @emph{all} the GC roots."
 msgstr "Вывести список корней сборщика мусора (GC roots), которыми владеет пользователь; при запуске от root, выводит список @emph{всех} корней сборщика мусора."
 
 #. type: item
-#: doc/guix.texi:3592
+#: doc/guix.texi:3919
 #, fuzzy, no-wrap
-#| msgid "--list-roots"
 msgid "--list-busy"
-msgstr "--list-roots"
+msgstr "--list-busy"
 
 #. type: table
-#: doc/guix.texi:3595
+#: doc/guix.texi:3922
 msgid "List store items in use by currently running processes.  These store items are effectively considered GC roots: they cannot be deleted."
-msgstr ""
+msgstr "Составляет список элементов хранилица, исользуемых запущенными в данное время процессами. Эти элементы считаются корнями GC: они не могут быть удалены."
 
 #. type: item
-#: doc/guix.texi:3596
+#: doc/guix.texi:3923
 #, no-wrap
 msgid "--clear-failures"
 msgstr "--clear-failures"
 
 #. type: table
-#: doc/guix.texi:3598
+#: doc/guix.texi:3925
 msgid "Remove the specified store items from the failed-build cache."
 msgstr "Удалить заданные элементы склада из кеша неудачных сборок."
 
 #. type: table
-#: doc/guix.texi:3601
+#: doc/guix.texi:3928
 msgid "Again, this option only makes sense when the daemon is started with @option{--cache-failures}.  Otherwise, it does nothing."
 msgstr "Опять же эта опция имеет смысл, если демон запущен с @option{--cache-failures}. В противном случае это не имеет эффекта."
 
 #. type: item
-#: doc/guix.texi:3602
+#: doc/guix.texi:3929
 #, no-wrap
 msgid "--list-dead"
 msgstr "--list-dead"
 
 #. type: table
-#: doc/guix.texi:3605
+#: doc/guix.texi:3932
 msgid "Show the list of dead files and directories still present in the store---i.e., files and directories no longer reachable from any root."
 msgstr "Вывести список мёртвых файлов и директорий, которые по-прежнему присутствуют на складе, то есть файлы и директории, не доступные более из любого корня."
 
 #. type: item
-#: doc/guix.texi:3606
+#: doc/guix.texi:3933
 #, no-wrap
 msgid "--list-live"
 msgstr "--list-live"
 
 #. type: table
-#: doc/guix.texi:3608
+#: doc/guix.texi:3935
 msgid "Show the list of live store files and directories."
 msgstr "Вывести список живых файлов и директорий склада."
 
 #. type: Plain text
-#: doc/guix.texi:3612
+#: doc/guix.texi:3939
 msgid "In addition, the references among existing store files can be queried:"
 msgstr "В дополнение можно запросить связи между существующими файлами на складе:"
 
 #. type: item
-#: doc/guix.texi:3615
+#: doc/guix.texi:3942
 #, no-wrap
 msgid "--references"
 msgstr "--references"
 
 #. type: itemx
-#: doc/guix.texi:3616
+#: doc/guix.texi:3943
 #, no-wrap
 msgid "--referrers"
 msgstr "--referrers"
 
 #. type: cindex
-#: doc/guix.texi:3617 doc/guix.texi:10011
+#: doc/guix.texi:3944 doc/guix.texi:11577
 #, no-wrap
 msgid "package dependencies"
 msgstr "зависимости пакетов"
 
 #. type: table
-#: doc/guix.texi:3620
+#: doc/guix.texi:3947
 msgid "List the references (respectively, the referrers) of store files given as arguments."
 msgstr "Вывести список связанных (обязательно, ссылающихся) файлов на складе с указанными аргументами."
 
 #. type: item
-#: doc/guix.texi:3621
+#: doc/guix.texi:3948
 #, no-wrap
 msgid "--requisites"
 msgstr "--requisites"
 
 #. type: itemx
-#: doc/guix.texi:3622 doc/guix.texi:5151
+#: doc/guix.texi:3949 doc/guix.texi:5765
 #, no-wrap
 msgid "-R"
 msgstr "-R"
 
 #. type: item
-#: doc/guix.texi:3623 doc/guix.texi:9880 doc/guix.texi:9908 doc/guix.texi:9976
+#: doc/guix.texi:3950 doc/guix.texi:11433 doc/guix.texi:11461
+#: doc/guix.texi:11542
 #, no-wrap
 msgid "closure"
 msgstr "конвейер"
 
 #. type: table
-#: doc/guix.texi:3628
+#: doc/guix.texi:3955
 msgid "List the requisites of the store files passed as arguments.  Requisites include the store files themselves, their references, and the references of these, recursively.  In other words, the returned list is the @dfn{transitive closure} of the store files."
 msgstr "Вывести всё необходимое для файлов на складе, указанных в аргументах. Всё необходимое включает сами файлы на складе, их связи и связи их связей рекурсивно. Другими словами, выводимый список --- это @dfn{непосредственный конвейер} файлов на складе."
 
 #. type: table
-#: doc/guix.texi:3632
+#: doc/guix.texi:3959
 msgid "@xref{Invoking guix size}, for a tool to profile the size of the closure of an element.  @xref{Invoking guix graph}, for a tool to visualize the graph of references."
 msgstr "См. @xref{Invoking guix size} для информации об инструменте профилирования конвейера для элемента. См. @xref{Invoking guix graph} для информации об инструменте визуализации графа связей."
 
 #. type: item
-#: doc/guix.texi:3633
+#: doc/guix.texi:3960
 #, no-wrap
 msgid "--derivers"
 msgstr "--derivers"
 
 #. type: item
-#: doc/guix.texi:3634 doc/guix.texi:5346 doc/guix.texi:10112
+#: doc/guix.texi:3961 doc/guix.texi:6079 doc/guix.texi:11305
+#: doc/guix.texi:11686
 #, no-wrap
 msgid "derivation"
 msgstr "деривация"
 
 #. type: table
-#: doc/guix.texi:3637
+#: doc/guix.texi:3964
 msgid "Return the derivation(s) leading to the given store items (@pxref{Derivations})."
 msgstr "Вернуть деривацию(-ии), производящие данные элементы склада (@pxref{Derivations})."
 
 #. type: table
-#: doc/guix.texi:3639
+#: doc/guix.texi:3966
 msgid "For example, this command:"
 msgstr "Например, эта команда:"
 
 #. type: example
-#: doc/guix.texi:3642
+#: doc/guix.texi:3969
 #, no-wrap
 msgid "guix gc --derivers `guix package -I ^emacs$ | cut -f4`\n"
 msgstr "guix gc --derivers `guix package -I ^emacs$ | cut -f4`\n"
 
 #. type: table
-#: doc/guix.texi:3647
+#: doc/guix.texi:3974
 msgid "returns the @file{.drv} file(s) leading to the @code{emacs} package installed in your profile."
 msgstr "возвращает файл(ы) @file{.drv}, которые произвели пакет @code{emacs}, установленный в вашем профиле."
 
 #. type: table
-#: doc/guix.texi:3651
+#: doc/guix.texi:3978
 msgid "Note that there may be zero matching @file{.drv} files, for instance because these files have been garbage-collected.  There can also be more than one matching @file{.drv} due to fixed-output derivations."
 msgstr "Отметим, что может быть не найдено ни одного файла @file{.drv}, например, потому что эти файлы были удалены сборщиком мусора. Также может быть более одного файла @file{.drv} из-за дериваций с фиксированным выходом."
 
 #. type: Plain text
-#: doc/guix.texi:3655
+#: doc/guix.texi:3982
 msgid "Lastly, the following options allow you to check the integrity of the store and to control disk usage."
 msgstr "Наконец, следующие опции позволяют проверить целостность склада и контролировать использование диска."
 
 #. type: item
-#: doc/guix.texi:3658
+#: doc/guix.texi:3985
 #, no-wrap
 msgid "--verify[=@var{options}]"
 msgstr "--verify[=@var{options}]"
 
 #. type: cindex
-#: doc/guix.texi:3659
+#: doc/guix.texi:3986
 #, no-wrap
 msgid "integrity, of the store"
 msgstr "целостность, склада"
 
 #. type: cindex
-#: doc/guix.texi:3660
+#: doc/guix.texi:3987
 #, no-wrap
 msgid "integrity checking"
 msgstr "проверка целостности"
 
 #. type: table
-#: doc/guix.texi:3662
+#: doc/guix.texi:3989
 msgid "Verify the integrity of the store."
 msgstr "Проверить целостность склада."
 
 #. type: table
-#: doc/guix.texi:3665
+#: doc/guix.texi:3992
 msgid "By default, make sure that all the store items marked as valid in the database of the daemon actually exist in @file{/gnu/store}."
 msgstr "По умолчанию убедиться, что все элементы склада, которые в базе данных демона помечены как действующие, на самом деле присутствуют в @file{/gnu/store}."
 
 #. type: table
-#: doc/guix.texi:3668
+#: doc/guix.texi:3995
 msgid "When provided, @var{options} must be a comma-separated list containing one or more of @code{contents} and @code{repair}."
 msgstr "Опции @var{options}, если они указаны, должны представлять собой список, разделённый запятыми, содержащий одно или более значений @code{contents} и @code{repair}."
 
 #. type: table
-#: doc/guix.texi:3674
+#: doc/guix.texi:4001
 msgid "When passing @option{--verify=contents}, the daemon computes the content hash of each store item and compares it against its hash in the database.  Hash mismatches are reported as data corruptions.  Because it traverses @emph{all the files in the store}, this command can take a long time, especially on systems with a slow disk drive."
 msgstr "Если задано @option{--verify=contents}, демон вычисляет хеш содержимого каждого элемента склада и сравнивает с его хешем в базе данных. Несовпадения хеша отображаются в отчёте как повреждение данных. Так как она проходит @emph{все файлы склада}, эта команда может занять много времени, особенно в системах с медленным диском."
 
 #. type: cindex
-#: doc/guix.texi:3675
+#: doc/guix.texi:4002
 #, no-wrap
 msgid "repairing the store"
 msgstr "восстановление склада"
 
 #. type: cindex
-#: doc/guix.texi:3676 doc/guix.texi:8694
+#: doc/guix.texi:4003 doc/guix.texi:10221
 #, no-wrap
 msgid "corruption, recovering from"
 msgstr "разрушение, его восстановление"
 
 #. type: table
-#: doc/guix.texi:3684
+#: doc/guix.texi:4011
 msgid "Using @option{--verify=repair} or @option{--verify=contents,repair} causes the daemon to try to repair corrupt store items by fetching substitutes for them (@pxref{Substitutes}).  Because repairing is not atomic, and thus potentially dangerous, it is available only to the system administrator.  A lightweight alternative, when you know exactly which items in the store are corrupt, is @command{guix build --repair} (@pxref{Invoking guix build})."
 msgstr "Использование @option{--verify=repair} или @option{--verify=contents,repair} указывает демону предпринять попытку восстановить разрушенные элементы склада, выбирая подстановки для них (@pxref{Substitutes}). Так как восстановление не атомарное, и поэтому потенциально опасно, оно доступно только системному администратору. Малозатратная альтернатива в случае, если вы знаете точно, какие элементы склада испорчены, --- это @command{guix build --repair} (@pxref{Invoking guix build})."
 
 #. type: item
-#: doc/guix.texi:3685
+#: doc/guix.texi:4012
 #, no-wrap
 msgid "--optimize"
 msgstr "--optimize"
 
 #. type: table
-#: doc/guix.texi:3689
+#: doc/guix.texi:4016
 msgid "Optimize the store by hard-linking identical files---this is @dfn{deduplication}."
 msgstr "Оптимизировать склад с помощью жёстких ссылок на идентичные файлы --- это @dfn{дедупликация}."
 
 #. type: table
-#: doc/guix.texi:3695
-msgid "The daemon performs deduplication after each successful build or archive import, unless it was started with @code{--disable-deduplication} (@pxref{Invoking guix-daemon, @code{--disable-deduplication}}).  Thus, this option is primarily useful when the daemon was running with @code{--disable-deduplication}."
+#: doc/guix.texi:4022
+#, fuzzy
+#| msgid "The daemon performs deduplication after each successful build or archive import, unless it was started with @code{--disable-deduplication} (@pxref{Invoking guix-daemon, @code{--disable-deduplication}}).  Thus, this option is primarily useful when the daemon was running with @code{--disable-deduplication}."
+msgid "The daemon performs deduplication after each successful build or archive import, unless it was started with @option{--disable-deduplication} (@pxref{Invoking guix-daemon, @option{--disable-deduplication}}).  Thus, this option is primarily useful when the daemon was running with @option{--disable-deduplication}."
 msgstr "Демон выполняет дедупликацию после каждой успешной сборки или импорта архива, если конечно оно не было запущено с @code{--disable-deduplication} (@pxref{Invoking guix-daemon, @code{--disable-deduplication}}). Так что эта опция особенно важна, если демон запущено с @code{--disable-deduplication}."
 
 #. type: section
-#: doc/guix.texi:3699
+#: doc/guix.texi:4026
 #, no-wrap
 msgid "Invoking @command{guix pull}"
 msgstr "Вызов @command{guix pull}"
 
 #. type: cindex
-#: doc/guix.texi:3701
+#: doc/guix.texi:4028
 #, no-wrap
 msgid "upgrading Guix"
 msgstr "обновление версии Guix"
 
 #. type: cindex
-#: doc/guix.texi:3702
+#: doc/guix.texi:4029
 #, no-wrap
 msgid "updating Guix"
 msgstr "обновление Guix"
 
 #. type: command{#1}
-#: doc/guix.texi:3703
+#: doc/guix.texi:4030
 #, no-wrap
 msgid "guix pull"
 msgstr "guix pull"
 
 #. type: cindex
-#: doc/guix.texi:3704
+#: doc/guix.texi:4031
 #, no-wrap
 msgid "pull"
 msgstr "получение"
 
+#. type: cindex
+#: doc/guix.texi:4032
+#, fuzzy, no-wrap
+#| msgid "sudo vs. @command{guix pull}"
+msgid "security, @command{guix pull}"
+msgstr "sudo vs. @command{guix pull}"
+
+#. type: cindex
+#: doc/guix.texi:4033
+#, fuzzy, no-wrap
+#| msgid "relocatable binaries, with @command{guix pack}"
+msgid "authenticity, of code obtained with @command{guix pull}"
+msgstr "перемещаемые бинарники, с @command{guix pack}"
+
 #. type: Plain text
-#: doc/guix.texi:3712
-msgid "Packages are installed or upgraded to the latest version available in the distribution currently available on your local machine.  To update that distribution, along with the Guix tools, you must run @command{guix pull}: the command downloads the latest Guix source code and package descriptions, and deploys it.  Source code is downloaded from a @uref{https://git-scm.com, Git} repository, by default the official GNU@tie{}Guix repository, though this can be customized."
+#: doc/guix.texi:4043
+#, fuzzy
+#| msgid "Packages are installed or upgraded to the latest version available in the distribution currently available on your local machine.  To update that distribution, along with the Guix tools, you must run @command{guix pull}: the command downloads the latest Guix source code and package descriptions, and deploys it.  Source code is downloaded from a @uref{https://git-scm.com, Git} repository, by default the official GNU@tie{}Guix repository, though this can be customized."
+msgid "Packages are installed or upgraded to the latest version available in the distribution currently available on your local machine.  To update that distribution, along with the Guix tools, you must run @command{guix pull}: the command downloads the latest Guix source code and package descriptions, and deploys it.  Source code is downloaded from a @uref{https://git-scm.com, Git} repository, by default the official GNU@tie{}Guix repository, though this can be customized.  @command{guix pull} ensures that the code it downloads is @emph{authentic} by verifying that commits are signed by Guix developers."
 msgstr "Пакеты, которые были установлены или обновлены до последней версии, доступные в дистрибутиве, доступны и на вашей локальной машине. Для обновления этого дистрибутива инструментами Guix нужно запустить @command{guix pull}: команда скачивает последние исходные коды Guix, описания пакетов и разворачивает их. Исходный код скачивается из репозитория @uref{https://git-scm.com, Git}, репозитория GNU@tie{}Guix по умолчанию, хотя это можно поменять."
 
 #. type: Plain text
-#: doc/guix.texi:3715
+#: doc/guix.texi:4046
 msgid "Specifically, @command{guix pull} downloads code from the @dfn{channels} (@pxref{Channels}) specified by one of the followings, in this order:"
-msgstr ""
+msgstr "В частности, @command{guix pull} загружает код из @dfn{channel} (@pxref{Channels}), указанного одним из следующих способов, в следующем порядке:"
 
 #. type: enumerate
-#: doc/guix.texi:3719
+#: doc/guix.texi:4050
 msgid "the @option{--channels} option;"
-msgstr ""
+msgstr "опция @option{--channels}"
 
 #. type: enumerate
-#: doc/guix.texi:3721
+#: doc/guix.texi:4052
 msgid "the user's @file{~/.config/guix/channels.scm} file;"
 msgstr "пользовательский файл @file{~/.config/guix/channels.scm};"
 
 #. type: enumerate
-#: doc/guix.texi:3723
+#: doc/guix.texi:4054
 msgid "the system-wide @file{/etc/guix/channels.scm} file;"
-msgstr ""
+msgstr "общесистемный файл @file{/etc/guix/channels.scm} file;"
 
 #. type: enumerate
-#: doc/guix.texi:3726
+#: doc/guix.texi:4057
 msgid "the built-in default channels specified in the @code{%default-channels} variable."
 msgstr "встроенные по умолчанию каналы определены в переменной @code{%default-channels}."
 
 #. type: Plain text
-#: doc/guix.texi:3733
+#: doc/guix.texi:4064
 msgid "On completion, @command{guix package} will use packages and package versions from this just-retrieved copy of Guix.  Not only that, but all the Guix commands and Scheme modules will also be taken from that latest version.  New @command{guix} sub-commands added by the update also become available."
 msgstr "После выполнения этой команды @command{guix package} будет использовать пакеты и те их версии, которые имеются в только что полученной копии Guix. Эта последняя версия будет источником также всех команд Guix, модулей Scheme. Из этого обновления станет доступен набор команд @command{guix}."
 
 #. type: Plain text
-#: doc/guix.texi:3739
+#: doc/guix.texi:4070
 #, fuzzy
 #| msgid "Any user can update their Guix copy using @command{guix pull}, and the effect is limited to the user who run @command{guix pull}.  For instance, when user @code{root} runs @command{guix pull}, this has no effect on the version of Guix that user @code{alice} sees, and vice versa."
 msgid "Any user can update their Guix copy using @command{guix pull}, and the effect is limited to the user who ran @command{guix pull}.  For instance, when user @code{root} runs @command{guix pull}, this has no effect on the version of Guix that user @code{alice} sees, and vice versa."
 msgstr "Любой пользователь может обновить свою копию Guix, используя @command{guix pull}, эффект коснётся только пользователя, который запустил @command{guix pull}. Например, если пользователь @code{root} запускает @command{guix pull}, это не имеет эффекта на версию Guix, которую видит @code{alice} sees, и наоборот."
 
 #. type: Plain text
-#: doc/guix.texi:3745
+#: doc/guix.texi:4076
 msgid "The result of running @command{guix pull} is a @dfn{profile} available under @file{~/.config/guix/current} containing the latest Guix.  Thus, make sure to add it to the beginning of your search path so that you use the latest version, and similarly for the Info manual (@pxref{Documentation}):"
 msgstr "Результат запуска @command{guix pull} --- это профиль @dfn{profile}, доступный в @file{~/.config/guix/current}, содержащий последний Guix. Так что обязательно добавьте этот адрес первым в пути поиска, чтобы использовать последнюю версию, а также для руководства Info (@pxref{Documentation}):"
 
 #. type: example
-#: doc/guix.texi:3749
+#: doc/guix.texi:4080
 #, no-wrap
 msgid ""
 "export PATH=\"$HOME/.config/guix/current/bin:$PATH\"\n"
@@ -8726,12 +9669,14 @@ msgstr ""
 "export INFOPATH=\"$HOME/.config/guix/current/share/info:$INFOPATH\"\n"
 
 #. type: Plain text
-#: doc/guix.texi:3753
-msgid "The @code{--list-generations} or @code{-l} option lists past generations produced by @command{guix pull}, along with details about their provenance:"
+#: doc/guix.texi:4084
+#, fuzzy
+#| msgid "The @code{--list-generations} or @code{-l} option lists past generations produced by @command{guix pull}, along with details about their provenance:"
+msgid "The @option{--list-generations} or @option{-l} option lists past generations produced by @command{guix pull}, along with details about their provenance:"
 msgstr "Опция @code{--list-generations} или @code{-l} выводит список последних поколений, поставленных @command{guix pull}, вместе с деталями об их происхождении:"
 
 #. type: example
-#: doc/guix.texi:3761
+#: doc/guix.texi:4092
 #, no-wrap
 msgid ""
 "$ guix pull -l\n"
@@ -8751,7 +9696,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:3771
+#: doc/guix.texi:4102
 #, no-wrap
 msgid ""
 "Generation 2\tJun 11 2018 11:02:49\n"
@@ -8777,7 +9722,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:3779
+#: doc/guix.texi:4110
 #, no-wrap
 msgid ""
 "Generation 3\tJun 13 2018 23:31:07\t(current)\n"
@@ -8797,19 +9742,19 @@ msgstr ""
 "  69 packages upgraded: borg@@1.1.6, cheese@@3.28.0, @dots{}\n"
 
 #. type: Plain text
-#: doc/guix.texi:3783
+#: doc/guix.texi:4114
 msgid "@xref{Invoking guix describe, @command{guix describe}}, for other ways to describe the current status of Guix."
-msgstr "Смотрите @xref{Invoking guix describe, @command{guix describe}} для информации о других способах получить информацию о текущем статусе Guix."
+msgstr "Смотрите @xref{Invoking guix describe, @command{guix describe}}, для информации о других способах получить информацию о текущем статусе Guix."
 
 #. type: Plain text
-#: doc/guix.texi:3788
+#: doc/guix.texi:4119
 #, fuzzy
 #| msgid "This @code{~/.config/guix/current} profile works like any other profile created by @command{guix package} (@pxref{Invoking guix package}).  That is, you can list generations, roll back to the previous generation---i.e., the previous Guix---and so on:"
 msgid "This @code{~/.config/guix/current} profile works exactly like the profiles created by @command{guix package} (@pxref{Invoking guix package}). That is, you can list generations, roll back to the previous generation---i.e., the previous Guix---and so on:"
 msgstr "Этот профиль @code{~/.config/guix/current} работает, как любой другой профиль, созданный @command{guix package} (@pxref{Invoking guix package}). Так что можно вывести список поколений, откатиться до предыдущего поколения, то есть до предыдущего Guix, и так далее:"
 
 #. type: example
-#: doc/guix.texi:3794
+#: doc/guix.texi:4125
 #, fuzzy, no-wrap
 #| msgid ""
 #| "$ guix package -p ~/.config/guix/current --roll-back\n"
@@ -8828,12 +9773,12 @@ msgstr ""
 "deleting /var/guix/profiles/per-user/charlie/current-guix-1-link\n"
 
 #. type: Plain text
-#: doc/guix.texi:3798
+#: doc/guix.texi:4129
 msgid "You can also use @command{guix package} (@pxref{Invoking guix package})  to manage the profile by naming it explicitly:"
 msgstr "Вы также можете использовать @command{guix package} (@pxref{Invoking guix package}), чтобы управлять профилем, называя его явно: "
 
 #. type: example
-#: doc/guix.texi:3803
+#: doc/guix.texi:4134
 #, no-wrap
 msgid ""
 "$ guix package -p ~/.config/guix/current --roll-back\n"
@@ -8847,744 +9792,361 @@ msgstr ""
 "deleting /var/guix/profiles/per-user/charlie/current-guix-1-link\n"
 
 #. type: Plain text
-#: doc/guix.texi:3807
+#: doc/guix.texi:4138
 msgid "The @command{guix pull} command is usually invoked with no arguments, but it supports the following options:"
 msgstr "Команда @command{guix pull} обычно вызывается без аргументов, но поддерживает следующие опции:"
 
 #. type: item
-#: doc/guix.texi:3809 doc/guix.texi:4232
+#: doc/guix.texi:4140 doc/guix.texi:4298
 #, no-wrap
 msgid "--url=@var{url}"
 msgstr "--url=@var{url}"
 
 #. type: itemx
-#: doc/guix.texi:3810 doc/guix.texi:4233
+#: doc/guix.texi:4141 doc/guix.texi:4299
 #, no-wrap
 msgid "--commit=@var{commit}"
 msgstr "--commit=@var{commit}"
 
 #. type: itemx
-#: doc/guix.texi:3811 doc/guix.texi:4234
+#: doc/guix.texi:4142 doc/guix.texi:4300
 #, no-wrap
 msgid "--branch=@var{branch}"
 msgstr "--branch=@var{branch}"
 
 #. type: table
-#: doc/guix.texi:3815
+#: doc/guix.texi:4146
 msgid "Download code for the @code{guix} channel from the specified @var{url}, at the given @var{commit} (a valid Git commit ID represented as a hexadecimal string), or @var{branch}."
 msgstr "Скачать код канала @code{guix} из указанного @var{url}, относящийся к обозначенному коммиту @var{commit} (корректный ID коммита Git, представленный в виде шестнадцатеричной строки), или ветке @var{branch}."
 
 #. type: cindex
-#: doc/guix.texi:3816 doc/guix.texi:3919
+#: doc/guix.texi:4147 doc/guix.texi:4744
 #, no-wrap
 msgid "@file{channels.scm}, configuration file"
 msgstr "@file{channels.scm}, configuration file"
 
 #. type: cindex
-#: doc/guix.texi:3817 doc/guix.texi:3920
+#: doc/guix.texi:4148 doc/guix.texi:4745
 #, no-wrap
 msgid "configuration file for channels"
 msgstr "конфигурационный файл для каналов"
 
 #. type: table
-#: doc/guix.texi:3821
+#: doc/guix.texi:4152
 msgid "These options are provided for convenience, but you can also specify your configuration in the @file{~/.config/guix/channels.scm} file or using the @option{--channels} option (see below)."
 msgstr "Эти опции внедрены для удобства, но также можно задать конфигурационный файл @file{~/.config/guix/channels.scm} или использовать опцию @option{--channels} (смотрите ниже)."
 
 #. type: item
-#: doc/guix.texi:3822 doc/guix.texi:4239
+#: doc/guix.texi:4153 doc/guix.texi:4305
 #, no-wrap
 msgid "--channels=@var{file}"
 msgstr "--channels=@var{file}"
 
 #. type: itemx
-#: doc/guix.texi:3823 doc/guix.texi:4240
+#: doc/guix.texi:4154 doc/guix.texi:4306
 #, no-wrap
 msgid "-C @var{file}"
 msgstr "-C @var{file}"
 
 #. type: table
-#: doc/guix.texi:3829
+#: doc/guix.texi:4160
 #, fuzzy
 #| msgid "Read the list of channels from @var{file} instead of @file{~/.config/guix/channels.scm}.  @var{file} must contain Scheme code that evaluates to a list of channel objects.  @xref{Channels}, for more information."
 msgid "Read the list of channels from @var{file} instead of @file{~/.config/guix/channels.scm} or @file{/etc/guix/channels.scm}.  @var{file} must contain Scheme code that evaluates to a list of channel objects.  @xref{Channels}, for more information."
 msgstr "Считать список каналов из файла @var{file} вместо @file{~/.config/guix/channels.scm}. @var{file} должен содержать код Scheme, который определяет список объектов \"канал\". См.  @xref{Channels} для подробной информации."
 
 #. type: cindex
-#: doc/guix.texi:3830
+#: doc/guix.texi:4161
 #, fuzzy, no-wrap
 #| msgid "channels"
 msgid "channel news"
 msgstr "каналы"
 
 #. type: item
-#: doc/guix.texi:3831
+#: doc/guix.texi:4162
 #, no-wrap
 msgid "--news"
 msgstr "--news"
 
 #. type: itemx
-#: doc/guix.texi:3832 doc/guix.texi:4926 doc/guix.texi:26922
+#: doc/guix.texi:4163 doc/guix.texi:5540 doc/guix.texi:30554
 #, no-wrap
 msgid "-N"
 msgstr "-N"
 
 #. type: table
-#: doc/guix.texi:3836
+#: doc/guix.texi:4167
 msgid "Display the list of packages added or upgraded since the previous generation, as well as, occasionally, news written by channel authors for their users (@pxref{Channels, Writing Channel News})."
-msgstr ""
+msgstr "Отображение списка пакетов, добавленных или обновленных со времени предыдущего поколения, а также, иногда, новостей, написанных авторами каналов для своих пользователей (@pxref{Channels, Writing Channel News})."
 
 #. type: table
-#: doc/guix.texi:3840
+#: doc/guix.texi:4171
 #, fuzzy
 #| msgid "This is the same information as displayed upon @command{guix pull} completion, but without ellipses; it is also similar to the output of @command{guix pull -l} for the last generation (see below)."
 msgid "The package information is the same as displayed upon @command{guix pull} completion, but without ellipses; it is also similar to the output of @command{guix pull -l} for the last generation (see below)."
 msgstr "Это та же информация, которая отображается по завершении @command{guix pull}, но без эллипсов. Это также совпадает с выводом @command{guix pull -l} для последнего поколения (смотрите ниже)."
 
 #. type: table
-#: doc/guix.texi:3847
+#: doc/guix.texi:4178
 msgid "List all the generations of @file{~/.config/guix/current} or, if @var{pattern} is provided, the subset of generations that match @var{pattern}.  The syntax of @var{pattern} is the same as with @code{guix package --list-generations} (@pxref{Invoking guix package})."
 msgstr "Вывести список всех поколений @file{~/.config/guix/current} или, если предоставлен паттерн @var{pattern}, подмножество поколений, которые соответствуют @var{pattern}. Синтаксис @var{pattern} --- такой же, как у @code{guix package --list-generations} (@pxref{Invoking guix package})."
 
 #. type: table
-#: doc/guix.texi:3854
+#: doc/guix.texi:4185
 #, fuzzy
 #| msgid "Roll back to the previous @dfn{generation} of the profile---i.e., undo the last transaction."
 msgid "Roll back to the previous @dfn{generation} of @file{~/.config/guix/current}---i.e., undo the last transaction."
 msgstr "Откатиться до предыдущего @dfn{поколения} профиля, то есть отменить последнюю транзакцию."
 
 #. type: table
-#: doc/guix.texi:3878
+#: doc/guix.texi:4209
 #, fuzzy
 #| msgid "If the current generation matches, it is @emph{not} deleted.  Also, the zeroth generation is never deleted."
 msgid "If the current generation matches, it is @emph{not} deleted."
 msgstr "Если текущее поколение попадает под условия паттерна, оно не будет удалено. А также нулевое поокление никогда не удаляется."
 
 #. type: table
-#: doc/guix.texi:3884
+#: doc/guix.texi:4215
 msgid "@xref{Invoking guix describe}, for a way to display information about the current generation only."
 msgstr "См. @xref{Invoking guix describe}, чтобы узнать, как вывести информацию только о текущем поколении."
 
 #. type: table
-#: doc/guix.texi:3888
+#: doc/guix.texi:4219
 msgid "Use @var{profile} instead of @file{~/.config/guix/current}."
 msgstr "Использовать профиль @var{profile} вместо @file{~/.config/guix/current}."
 
 #. type: item
-#: doc/guix.texi:3889 doc/guix.texi:8260
+#: doc/guix.texi:4220 doc/guix.texi:9674
 #, no-wrap
 msgid "--dry-run"
 msgstr "--dry-run"
 
 #. type: itemx
-#: doc/guix.texi:3890 doc/guix.texi:8261
+#: doc/guix.texi:4221 doc/guix.texi:9675
 #, no-wrap
 msgid "-n"
 msgstr "-n"
 
 #. type: table
-#: doc/guix.texi:3893
+#: doc/guix.texi:4224
 msgid "Show which channel commit(s) would be used and what would be built or substituted but do not actually do it."
 msgstr "Показать, какие коммиты будут использоваться, и что будет собрано или скачано в виде подстановок, но не выполнять эту работу."
 
-#. type: itemx
-#: doc/guix.texi:3895 doc/guix.texi:4909 doc/guix.texi:5249 doc/guix.texi:8636
-#: doc/guix.texi:9994 doc/guix.texi:10200 doc/guix.texi:10838
-#: doc/guix.texi:26870
-#, no-wrap
-msgid "-s @var{system}"
-msgstr "-s @var{system}"
-
-#. type: table
-#: doc/guix.texi:3898 doc/guix.texi:5252
-msgid "Attempt to build for @var{system}---e.g., @code{i686-linux}---instead of the system type of the build host."
-msgstr "Предпринять попытку собрать систему @var{system}, т.е. @code{i686-linux}, вместо типа системы хоста сборки."
-
 #. type: item
-#: doc/guix.texi:3899 doc/guix.texi:10634
-#, no-wrap
-msgid "--verbose"
-msgstr "--verbose"
-
-#. type: table
-#: doc/guix.texi:3901
-msgid "Produce verbose output, writing build logs to the standard error output."
-msgstr "Производить вывод логов, отображая логи сборки в стандартный вывод ошибок."
+#: doc/guix.texi:4225 doc/guix.texi:30573
+#, fuzzy, no-wrap
+msgid "--allow-downgrades"
+msgstr "--allow-downgrades"
 
 #. type: table
-#: doc/guix.texi:3905
-msgid "Use the bootstrap Guile to build the latest Guix.  This option is only useful to Guix developers."
-msgstr "Использовать бутстрап Guile для сорки последнего Guix. Эта опция полезна только для разработчиков."
-
-#. type: Plain text
-#: doc/guix.texi:3911
-msgid "The @dfn{channel} mechanism allows you to instruct @command{guix pull} which repository and branch to pull from, as well as @emph{additional} repositories containing package modules that should be deployed.  @xref{Channels}, for more information."
-msgstr "Механизм каналов @dfn{channel} позволяет указать @command{guix pull}, из какого репозитория или ветки скачивать, а также какие @emph{дополнительные} репозитории должны использоваться для развёртки. См. @xref{Channels} для подробной информации."
-
-#. type: Plain text
-#: doc/guix.texi:3914
-msgid "In addition, @command{guix pull} supports all the common build options (@pxref{Common Build Options})."
-msgstr "В добавок @command{guix pull} поддерживает все стандартные опции сборки (@pxref{Common Build Options})."
-
-#. type: item
-#: doc/guix.texi:3918 doc/guix.texi:4454
-#, no-wrap
-msgid "channels"
-msgstr "каналы"
-
-#. type: cindex
-#: doc/guix.texi:3921
-#, no-wrap
-msgid "@command{guix pull}, configuration file"
-msgstr "@command{guix pull}, конфигурационный файл"
+#: doc/guix.texi:4228
+msgid "Allow pulling older or unrelated revisions of channels than those currently in use."
+msgstr "Разрешить загружать более старые или несвязанные версии каналов, чем те, которые используются в настоящее время."
 
 #. type: cindex
-#: doc/guix.texi:3922
+#: doc/guix.texi:4229
 #, no-wrap
-msgid "configuration of @command{guix pull}"
-msgstr "конфигурация @command{guix pull}"
-
-#. type: Plain text
-#: doc/guix.texi:3931
-msgid "Guix and its package collection are updated by running @command{guix pull} (@pxref{Invoking guix pull}).  By default @command{guix pull} downloads and deploys Guix itself from the official GNU@tie{}Guix repository.  This can be customized by defining @dfn{channels} in the @file{~/.config/guix/channels.scm} file.  A channel specifies a URL and branch of a Git repository to be deployed, and @command{guix pull} can be instructed to pull from one or more channels.  In other words, channels can be used to @emph{customize} and to @emph{extend} Guix, as we will see below."
-msgstr "Guix и его коллекция пакетов можно обновить запуском @command{guix pull} (@pxref{Invoking guix pull}). По умолчанию @command{guix pull} скачивает и разворачивает Guix из официального репозитория GNU@tie{}Guix. Это может быть изменено определением каналов @dfn{channels} в файле @file{~/.config/guix/channels.scm}. Канал обозначает URL или ветку репозитория Git для разворачивания. Также @command{guix pull} может быть настроена для скачивания из одного или более каналов. Другими словами, каналы могут использоваться для @emph{настройки} и для @emph{расширения} Guix, как это будет показано ниже."
-
-#. type: subsection
-#: doc/guix.texi:3932
-#, no-wrap
-msgid "Using a Custom Guix Channel"
-msgstr "Использование отдельного канала Guix"
+msgid "downgrade attacks, protection against"
+msgstr "атаки на понижение версии, защита от"
 
-#. type: Plain text
-#: doc/guix.texi:3939
-msgid "The channel called @code{guix} specifies where Guix itself---its command-line tools as well as its package collection---should be downloaded.  For instance, suppose you want to update from your own copy of the Guix repository at @code{example.org}, and specifically the @code{super-hacks} branch, you can write in @code{~/.config/guix/channels.scm} this specification:"
-msgstr "Канал, названный @code{guix}, обозначает, откуда должен скачиваться сам Guix (его инструменты командной строки и коллекция пакетов). Например, предположим вы хотите обновиться из вашей собственной копии репозитория Guix на @code{example.org}, а именно из ветки @code{super-hacks}, тогда можно написать в @code{~/.config/guix/channels.scm} следующую спецификацию:"
-
-#. type: lisp
-#: doc/guix.texi:3946
-#, no-wrap
-msgid ""
-";; Tell 'guix pull' to use my own repo.\n"
-"(list (channel\n"
-"        (name 'guix)\n"
-"        (url \"https://example.org/my-guix.git\")\n"
-"        (branch \"super-hacks\")))\n"
-msgstr ""
-";; Tell 'guix pull' to use my own repo.\n"
-"(list (channel\n"
-"        (name 'guix)\n"
-"        (url \"https://example.org/my-guix.git\")\n"
-"        (branch \"super-hacks\")))\n"
-
-#. type: Plain text
-#: doc/guix.texi:3951
-msgid "From there on, @command{guix pull} will fetch code from the @code{super-hacks} branch of the repository at @code{example.org}."
-msgstr "При такой настройке @command{guix pull} будет скачивать код из ветки @code{super-hacks} репозитория в @code{example.org}."
-
-#. type: subsection
-#: doc/guix.texi:3952
-#, no-wrap
-msgid "Specifying Additional Channels"
-msgstr "Указание дополнительных каналов"
-
-#. type: cindex
-#: doc/guix.texi:3954
-#, no-wrap
-msgid "extending the package collection (channels)"
-msgstr "расширение коллекции пакетов (каналов)"
-
-#. type: cindex
-#: doc/guix.texi:3955
-#, no-wrap
-msgid "personal packages (channels)"
-msgstr "собственные пакеты (каналы)"
-
-#. type: cindex
-#: doc/guix.texi:3956
-#, no-wrap
-msgid "channels, for personal packages"
-msgstr "каналы, для собственных пакетов"
-
-#. type: Plain text
-#: doc/guix.texi:3964
-msgid "You can also specify @emph{additional channels} to pull from.  Let's say you have a bunch of custom package variants or personal packages that you think would make little sense to contribute to the Guix project, but would like to have these packages transparently available to you at the command line.  You would first write modules containing those package definitions (@pxref{Package Modules}), maintain them in a Git repository, and then you and anyone else can use it as an additional channel to get packages from.  Neat, no?"
-msgstr "Можно также задать @emph{дополнительные каналы} для выборки оттуда. Ну, например, у вас ряд собственных вариантов пакетов или собственные пакеты, которые вы считаете не особо важным для отправки в проект Guix, но хотите, чтобы эти пакеты были доступны вам в командной строке прозрачно, без дополнительных действий. Вначале можно написать модули, содержащие определения этих пакетов (@pxref{Package Modules}), затем разместить их в репозитории Git, и тогда вы или кто-либо ещё сможете использовать их в качестве дополнтельного канала для получения пакетов. Красиво, да?"
-
-#. type: quotation
-#: doc/guix.texi:3968 doc/guix.texi:16198
-#, no-wrap
-msgid "Warning"
-msgstr "Внимание"
-
-#. type: quotation
-#: doc/guix.texi:3972
-msgid "Before you, dear user, shout---``woow this is @emph{soooo coool}!''---and publish your personal channel to the world, we would like to share a few words of caution:"
-msgstr "Прежде чем вы крикнете @emph{Ух-ты, это круто!} и опубликуете собственный канал, необходимо учесть некоторые предостережения:"
-
-#. type: itemize
-#: doc/guix.texi:3980
-msgid "Before publishing a channel, please consider contributing your package definitions to Guix proper (@pxref{Contributing}).  Guix as a project is open to free software of all sorts, and packages in Guix proper are readily available to all Guix users and benefit from the project's quality assurance process."
-msgstr "Перед публикацией канала, пожалуйста, рассмотрите возможность поделиться вашими определениями пакетов со сборником Guix (@pxref{Contributing}). Guix, как проект, открыт свободному программному обеспечению любого назначения, и пакеты в сборнике Guix готовы и доступны для использования всеми пользователями Guix и прошли проверку качества."
-
-#. type: itemize
-#: doc/guix.texi:3989
-msgid "When you maintain package definitions outside Guix, we, Guix developers, consider that @emph{the compatibility burden is on you}.  Remember that package modules and package definitions are just Scheme code that uses various programming interfaces (APIs).  We want to remain free to change these APIs to keep improving Guix, possibly in ways that break your channel.  We never change APIs gratuitously, but we will @emph{not} commit to freezing APIs either."
-msgstr "Когда вы выгружаете определение пакета вне Guix, мы, разработчики Guix, полагаем, что вопрос @emph{совместимости ложится на вас}. Учтите, что пакетные модули и определения пакетов --- это код Scheme, который используют различные программные интерфейсы (API). Мы хотим оставить возможность для себя изменять эти API, чтобы продолжить улучшать Guix. И это может привести к поломке вашего канала. Мы никогда не меняем API необоснованно, но всё же мы @emph{не} будем обновлять устаревшие, замороженные API."
-
-#. type: itemize
-#: doc/guix.texi:3993
-msgid "Corollary: if you're using an external channel and that channel breaks, please @emph{report the issue to the channel authors}, not to the Guix project."
-msgstr "Вывод: если вы используете внешний канал, и этот канал ломается, пожалуйста, @emph{заявите об этой проблеме авторам каналв}, но не в проект Guix."
+#. type: table
+#: doc/guix.texi:4234
+msgid "By default, @command{guix pull} protects against so-called ``downgrade attacks'' whereby the Git repository of a channel would be reset to an earlier or unrelated revision of itself, potentially leading you to install older, known-vulnerable versions of software packages."
+msgstr "По умолчанию @command{guix pull} защищает от так называемых ``атак на более раннюю версию'', когда репозиторий Git данного канала будет сброшен до более ранней или несвязанной версии, что может привести к установке более старых, известных уязвимых версий пакетов."
 
 #. type: quotation
-#: doc/guix.texi:4000
-msgid "You've been warned! Having said this, we believe external channels are a practical way to exert your freedom to augment Guix' package collection and to share your improvements, which are basic tenets of @uref{https://www.gnu.org/philosophy/free-sw.html, free software}.  Please email us at @email{guix-devel@@gnu.org} if you'd like to discuss this."
-msgstr "Вы предупреждены! Обозначив это, мы верим, что внешние каналы --- это способ для вас проявлять свою свободу и вместе с тем расширять коллекцию пакетов Guix и делиться улучшениями, что является основными догматами @uref{https://www.gnu.org/philosophy/free-sw.ru.html, свободного программного обеспечения}. Пожалуйста, свяжитесь с нами по e-mail @email{guix-devel@@gnu.org}, если вы хотите обсудить это."
-
-#. type: Plain text
-#: doc/guix.texi:4005
-msgid "To use a channel, write @code{~/.config/guix/channels.scm} to instruct @command{guix pull} to pull from it @emph{in addition} to the default Guix channel(s):"
-msgstr "Чтобы использовать канал, напишите @code{~/.config/guix/channels.scm}, чтобы обозначить @command{guix pull} скачивать оттуда @emph{в дополнение} к каналу(-ам) Guix по умолчанию:"
+#: doc/guix.texi:4238 doc/guix.texi:30587
+msgid "Make sure you understand its security implications before using @option{--allow-downgrades}."
+msgstr "Прежде чем использовать @option{--allow-downgrades}, убедитесь, что вы понимаете его последствия для безопасности."
 
-#. type: vindex
-#: doc/guix.texi:4006
-#, no-wrap
-msgid "%default-channels"
-msgstr "%default-channels"
-
-#. type: lisp
-#: doc/guix.texi:4013
-#, no-wrap
-msgid ""
-";; Add my personal packages to those Guix provides.\n"
-"(cons (channel\n"
-"        (name 'my-personal-packages)\n"
-"        (url \"https://example.org/personal-packages.git\"))\n"
-"      %default-channels)\n"
-msgstr ""
-";; Add my personal packages to those Guix provides.\n"
-"(cons (channel\n"
-"        (name 'my-personal-packages)\n"
-"        (url \"https://example.org/personal-packages.git\"))\n"
-"      %default-channels)\n"
-
-#. type: Plain text
-#: doc/guix.texi:4023
-msgid "Note that the snippet above is (as always!)@: Scheme code; we use @code{cons} to add a channel the list of channels that the variable @code{%default-channels} is bound to (@pxref{Pairs, @code{cons} and lists,, guile, GNU Guile Reference Manual}).  With this file in place, @command{guix pull} builds not only Guix but also the package modules from your own repository.  The result in @file{~/.config/guix/current} is the union of Guix with your own package modules:"
-msgstr "Заметим, что сниппет выше (всегда!)@: код Scheme; мы используем @code{cons} для добавления канала в список каналов, то есть в переменную @code{%default-channels} (@pxref{Pairs, @code{cons} and lists,, guile, GNU Guile Reference Manual}). Если этот файл написан, @command{guix pull} производит сборку не только Guix, но и пакетных модулей из вашего репозитория. В результате в @file{~/.config/guix/current} содержится объединение Guix и ваших собственных пакетных модулей:"
-
-#. type: example
-#: doc/guix.texi:4038
-#, no-wrap
-msgid ""
-"$ guix pull --list-generations\n"
-"@dots{}\n"
-"Generation 19\tAug 27 2018 16:20:48\n"
-"  guix d894ab8\n"
-"    repository URL: https://git.savannah.gnu.org/git/guix.git\n"
-"    branch: master\n"
-"    commit: d894ab8e9bfabcefa6c49d9ba2e834dd5a73a300\n"
-"  my-personal-packages dd3df5e\n"
-"    repository URL: https://example.org/personal-packages.git\n"
-"    branch: master\n"
-"    commit: dd3df5e2c8818760a8fc0bd699e55d3b69fef2bb\n"
-"  11 new packages: my-gimp, my-emacs-with-cool-features, @dots{}\n"
-"  4 packages upgraded: emacs-racket-mode@@0.0.2-2.1b78827, @dots{}\n"
-msgstr ""
-"$ guix pull --list-generations\n"
-"@dots{}\n"
-"Generation 19\tAug 27 2018 16:20:48\n"
-"  guix d894ab8\n"
-"    repository URL: https://git.savannah.gnu.org/git/guix.git\n"
-"    branch: master\n"
-"    commit: d894ab8e9bfabcefa6c49d9ba2e834dd5a73a300\n"
-"  my-personal-packages dd3df5e\n"
-"    repository URL: https://example.org/personal-packages.git\n"
-"    branch: master\n"
-"    commit: dd3df5e2c8818760a8fc0bd699e55d3b69fef2bb\n"
-"  11 new packages: my-gimp, my-emacs-with-cool-features, @dots{}\n"
-"  4 packages upgraded: emacs-racket-mode@@0.0.2-2.1b78827, @dots{}\n"
-
-#. type: Plain text
-#: doc/guix.texi:4046
-msgid "The output of @command{guix pull} above shows that Generation@tie{}19 includes both Guix and packages from the @code{my-personal-packages} channel.  Among the new and upgraded packages that are listed, some like @code{my-gimp} and @code{my-emacs-with-cool-features} might come from @code{my-personal-packages}, while others come from the Guix default channel."
-msgstr "Результат @command{guix pull} выше показывает, что поколение Generation@tie{}19 включает как репозиторий Guix, так и пакеты из канала @code{my-personal-packages}. Вместе с новыми и обновлёнными пакетами, которые присутствуют в списке, что-нибудь типа @code{my-gimp} и @code{my-emacs-with-cool-features} может прийти из @code{my-personal-packages}, когда остальные идут из канала Guix по умолчанию."
-
-#. type: Plain text
-#: doc/guix.texi:4057
-msgid "To create a channel, create a Git repository containing your own package modules and make it available.  The repository can contain anything, but a useful channel will contain Guile modules that export packages.  Once you start using a channel, Guix will behave as if the root directory of that channel's Git repository has been added to the Guile load path (@pxref{Load Paths,,, guile, GNU Guile Reference Manual}).  For example, if your channel contains a file at @file{my-packages/my-tools.scm} that defines a Guile module, then the module will be available under the name @code{(my-packages my-tools)}, and you will be able to use it like any other module (@pxref{Modules,,, guile, GNU Guile Reference Manual})."
-msgstr "Чтобы создать канал, создайте репозиторий Git, содержащий ваши собственные пакетные модули, и сделайте его доступным. Репозиторий может содержать что-либо, но полезный канал будет содержать модули Guile, экспортирующие пакеты. Когда вы начали использовать канал, Guix будет работать, как будто корневая директория репозитория Git этого канала добавлена в путь загрузки Guile (@pxref{Load Paths,,, guile, GNU Guile Reference Manual}). Например, если ваш канал содержит файл @file{my-packages/my-tools.scm}, который определяет модуль Guile, тогда модуль будет доступен под именем @code{(my-packages my-tools)}, и вы сможете использовать его, как любой другой модуль (@pxref{Modules,,, guile, GNU Guile Reference Manual})."
-
-#. type: cindex
-#: doc/guix.texi:4058
-#, no-wrap
-msgid "dependencies, channels"
-msgstr "зависимости, каналы"
-
-#. type: cindex
-#: doc/guix.texi:4059
-#, no-wrap
-msgid "meta-data, channels"
-msgstr "метаданные, каналы"
-
-#. type: subsection
-#: doc/guix.texi:4060
-#, no-wrap
-msgid "Declaring Channel Dependencies"
-msgstr "Объявление зависимостей канала"
-
-#. type: Plain text
-#: doc/guix.texi:4066
-msgid "Channel authors may decide to augment a package collection provided by other channels.  They can declare their channel to be dependent on other channels in a meta-data file @file{.guix-channel}, which is to be placed in the root of the channel repository."
-msgstr "Авторы канала могут решить расширить коллекцию пакетов пакетами, которые поставляются другими каналами. Они могут объявить, что их канал зависит от других каналов, в файле метаданных @file{.guix-channel}, который нужно разместить в корне репозитория канала."
-
-#. type: Plain text
-#: doc/guix.texi:4068
-msgid "The meta-data file should contain a simple S-expression like this:"
-msgstr "Файл метаданных должен содержать простое выражение S-expression как это:"
-
-#. type: lisp
-#: doc/guix.texi:4080
-#, no-wrap
-msgid ""
-"(channel\n"
-" (version 0)\n"
-" (dependencies\n"
-"  (channel\n"
-"   (name some-collection)\n"
-"   (url \"https://example.org/first-collection.git\"))\n"
-"  (channel\n"
-"   (name some-other-collection)\n"
-"   (url \"https://example.org/second-collection.git\")\n"
-"   (branch \"testing\"))))\n"
-msgstr ""
-"(channel\n"
-" (version 0)\n"
-" (dependencies\n"
-"  (channel\n"
-"   (name some-collection)\n"
-"   (url \"https://example.org/first-collection.git\"))\n"
-"  (channel\n"
-"   (name some-other-collection)\n"
-"   (url \"https://example.org/second-collection.git\")\n"
-"   (branch \"testing\"))))\n"
-
-#. type: Plain text
-#: doc/guix.texi:4086
-msgid "In the above example this channel is declared to depend on two other channels, which will both be fetched automatically.  The modules provided by the channel will be compiled in an environment where the modules of all these declared channels are available."
-msgstr "В примере выше объявлен канал, который зависит от двух других каналов, из которых оба будут скачаны автоматически. Модули, предоставляемые каналом, будут скомпилированы в окружении, в котором доступны модули всех этих каналов."
-
-#. type: Plain text
-#: doc/guix.texi:4090
-msgid "For the sake of reliability and maintainability, you should avoid dependencies on channels that you don't control, and you should aim to keep the number of dependencies to a minimum."
-msgstr "В целях воспроизводимости и сопровождения вы должны избегать зависимостей от каналов, которые вы не контролируете, и вы должны стремиться минимизировать число зависимостей."
-
-#. type: cindex
-#: doc/guix.texi:4091
-#, no-wrap
-msgid "subdirectory, channels"
-msgstr "подкаталог, каналы"
-
-#. type: subsection
-#: doc/guix.texi:4092
+#. type: item
+#: doc/guix.texi:4240
 #, fuzzy, no-wrap
-#| msgid "Package Modules"
-msgid "Package Modules in a Sub-directory"
-msgstr "Пакетные модули"
-
-#. type: Plain text
-#: doc/guix.texi:4097
-msgid "As a channel author, you may want to keep your channel modules in a sub-directory.  If your modules are in the sub-directory @file{guix}, you must add a meta-data file @file{.guix-channel} that contains:"
-msgstr ""
+msgid "--disable-authentication"
+msgstr "--disable-authentication"
 
-#. type: lisp
-#: doc/guix.texi:4102
-#, no-wrap
-msgid ""
-"(channel\n"
-"  (version 0)\n"
-"  (directory \"guix\"))\n"
-msgstr ""
+#. type: table
+#: doc/guix.texi:4242
+msgid "Allow pulling channel code without authenticating it."
+msgstr "Разрешить загрузку канала без его аутентификации."
 
 #. type: cindex
-#: doc/guix.texi:4104
-#, fuzzy, no-wrap
-#| msgid "dependencies, channels"
-msgid "news, for channels"
-msgstr "зависимости, каналы"
-
-#. type: subsection
-#: doc/guix.texi:4105
+#: doc/guix.texi:4243 doc/guix.texi:4889
 #, fuzzy, no-wrap
-#| msgid "pinning, channels"
-msgid "Writing Channel News"
-msgstr "связывание, каналов"
-
-#. type: Plain text
-#: doc/guix.texi:4110
-msgid "Channel authors may occasionally want to communicate to their users information about important changes in the channel.  You'd send them all an email, but that's not convenient."
-msgstr ""
+#| msgid "authentication, of a Guix checkout"
+msgid "authentication, of channel code"
+msgstr "аутентификация для проверки Guix"
 
-#. type: Plain text
-#: doc/guix.texi:4115
-msgid "Instead, channels can provide a @dfn{news file}; when the channel users run @command{guix pull}, that news file is automatically read and @command{guix pull --news} can display the announcements that correspond to the new commits that have been pulled, if any."
-msgstr ""
+#. type: table
+#: doc/guix.texi:4248
+msgid "By default, @command{guix pull} authenticates code downloaded from channels by verifying that its commits are signed by authorized developers, and raises an error if this is not the case.  This option instructs it to not perform any such verification."
+msgstr "По умолчанию @command{guix pull} аутентифицирует код, загруженный из каналов, проверяя, что его коммиты подписаны авторизованными разработчиками, и выдает ошибку, если это не так.  Эта опция дает указание не выполнять такую проверку."
 
-#. type: Plain text
-#: doc/guix.texi:4118
-msgid "To do that, channel authors must first declare the name of the news file in their @file{.guix-channel} file:"
-msgstr ""
+#. type: quotation
+#: doc/guix.texi:4252
+msgid "Make sure you understand its security implications before using @option{--disable-authentication}."
+msgstr "Прежде чем использовать @option{--disable-authentication}, убедитесь, что вы понимаете его последствия для безопасности."
 
-#. type: lisp
-#: doc/guix.texi:4123
+#. type: itemx
+#: doc/guix.texi:4255 doc/guix.texi:5523 doc/guix.texi:5894
+#: doc/guix.texi:10163 doc/guix.texi:11560 doc/guix.texi:11811
+#: doc/guix.texi:12449 doc/guix.texi:30502
 #, no-wrap
-msgid ""
-"(channel\n"
-"  (version 0)\n"
-"  (news-file \"etc/news.txt\"))\n"
-msgstr ""
-
-#. type: Plain text
-#: doc/guix.texi:4127
-msgid "The news file itself, @file{etc/news.txt} in this example, must look something like this:"
-msgstr ""
+msgid "-s @var{system}"
+msgstr "-s @var{system}"
 
-#. type: lisp
-#: doc/guix.texi:4140
-#, no-wrap
-msgid ""
-"(channel-news\n"
-"  (version 0)\n"
-"  (entry (tag \"the-bug-fix\")\n"
-"         (title (en \"Fixed terrible bug\")\n"
-"                (fr \"Oh la la\"))\n"
-"         (body (en \"@@emph@{Good news@}!  It's fixed!\")\n"
-"               (eo \"Certe ĝi pli bone funkcias nun!\")))\n"
-"  (entry (commit \"bdcabe815cd28144a2d2b4bc3c5057b051fa9906\")\n"
-"         (title (en \"Added a great package\")\n"
-"                (ca \"Què vol dir guix?\"))\n"
-"         (body (en \"Don't miss the @@code@{hello@} package!\"))))\n"
-msgstr ""
+#. type: table
+#: doc/guix.texi:4258 doc/guix.texi:5897
+msgid "Attempt to build for @var{system}---e.g., @code{i686-linux}---instead of the system type of the build host."
+msgstr "Предпринять попытку собрать систему @var{system}, т.е. @code{i686-linux}, вместо типа системы хоста сборки."
 
-#. type: Plain text
-#: doc/guix.texi:4146
-msgid "The file consists of a list of @dfn{news entries}.  Each entry is associated with a commit or tag: it describes changes made in this commit, possibly in preceding commits as well.  Users see entries only the first time they obtain the commit the entry refers to."
-msgstr ""
+#. type: table
+#: doc/guix.texi:4262
+msgid "Use the bootstrap Guile to build the latest Guix.  This option is only useful to Guix developers."
+msgstr "Использовать бутстрап Guile для сорки последнего Guix. Эта опция полезна только для разработчиков."
 
 #. type: Plain text
-#: doc/guix.texi:4152
-msgid "The @code{title} field should be a one-line summary while @code{body} can be arbitrarily long, and both can contain Texinfo markup (@pxref{Overview,,, texinfo, GNU Texinfo}).  Both the title and body are a list of language tag/message tuples, which allows @command{guix pull} to display news in the language that corresponds to the user's locale."
-msgstr ""
+#: doc/guix.texi:4268
+msgid "The @dfn{channel} mechanism allows you to instruct @command{guix pull} which repository and branch to pull from, as well as @emph{additional} repositories containing package modules that should be deployed.  @xref{Channels}, for more information."
+msgstr "Механизм каналов @dfn{channel} позволяет указать @command{guix pull}, из какого репозитория или ветки скачивать, а также какие @emph{дополнительные} репозитории должны использоваться для развёртки. См. @xref{Channels} для подробной информации."
 
 #. type: Plain text
-#: doc/guix.texi:4158
-msgid "If you want to translate news using a gettext-based workflow, you can extract translatable strings with @command{xgettext} (@pxref{xgettext Invocation,,, gettext, GNU Gettext Utilities}).  For example, assuming you write news entries in English first, the command below creates a PO file containing the strings to translate:"
-msgstr ""
+#: doc/guix.texi:4271
+msgid "In addition, @command{guix pull} supports all the common build options (@pxref{Common Build Options})."
+msgstr "В добавок @command{guix pull} поддерживает все стандартные опции сборки (@pxref{Common Build Options})."
 
-#. type: example
-#: doc/guix.texi:4161
+#. type: section
+#: doc/guix.texi:4273
 #, no-wrap
-msgid "xgettext -o news.po -l scheme -ken etc/news.scm\n"
-msgstr "xgettext -o news.po -l scheme -ken etc/news.scm\n"
-
-#. type: Plain text
-#: doc/guix.texi:4165
-msgid "To sum up, yes, you could use your channel as a blog.  But beware, this is @emph{not quite} what your users might expect."
-msgstr ""
+msgid "Invoking @command{guix time-machine}"
+msgstr "Запуск @command{guix time-machine}"
 
-#. type: subsection
-#: doc/guix.texi:4166
+#. type: command{#1}
+#: doc/guix.texi:4275
 #, no-wrap
-msgid "Replicating Guix"
-msgstr "Копирование Guix"
+msgid "guix time-machine"
+msgstr "guix time-machine"
 
 #. type: cindex
-#: doc/guix.texi:4168 doc/guix.texi:4210
+#: doc/guix.texi:4276 doc/guix.texi:4847
 #, no-wrap
 msgid "pinning, channels"
 msgstr "связывание, каналы"
 
 #. type: cindex
-#: doc/guix.texi:4169 doc/guix.texi:4211 doc/guix.texi:4393
+#: doc/guix.texi:4277 doc/guix.texi:4459 doc/guix.texi:4848
 #, no-wrap
 msgid "replicating Guix"
 msgstr "копирование Guix"
 
 #. type: cindex
-#: doc/guix.texi:4170 doc/guix.texi:4212
+#: doc/guix.texi:4278 doc/guix.texi:4849
 #, no-wrap
 msgid "reproducibility, of Guix"
 msgstr "воспроизводимость, Guix"
 
 #. type: Plain text
-#: doc/guix.texi:4175
-msgid "The @command{guix pull --list-generations} output above shows precisely which commits were used to build this instance of Guix.  We can thus replicate it, say, on another machine, by providing a channel specification in @file{~/.config/guix/channels.scm} that is ``pinned'' to these commits:"
-msgstr "Результат @command{guix pull --list-generations} выше показывает точно, какие коммиты были использованы для сборки данной инстанции Guix. Так что мы можем повторить её, скажем, на другой машине, предоставив объявление канала в @file{~/.config/guix/channels.scm}, которое завязано на этих коммитах:"
-
-#. type: lisp
-#: doc/guix.texi:4186
-#, fuzzy, no-wrap
-#| msgid ""
-#| ";; Deploy specific commits of my channels of interest.\n"
-#| "(list (channel\n"
-#| "       (name 'guix)\n"
-#| "       (url \"https://git.savannah.gnu.org/git/guix.git\")\n"
-#| "       (commit \"d894ab8e9bfabcefa6c49d9ba2e834dd5a73a300\"))\n"
-#| "      (channel\n"
-#| "       (name 'my-personal-packages)\n"
-#| "       (url \"https://example.org/personal-packages.git\")\n"
-#| "       (branch \"dd3df5e2c8818760a8fc0bd699e55d3b69fef2bb\")))\n"
-msgid ""
-";; Deploy specific commits of my channels of interest.\n"
-"(list (channel\n"
-"       (name 'guix)\n"
-"       (url \"https://git.savannah.gnu.org/git/guix.git\")\n"
-"       (commit \"d894ab8e9bfabcefa6c49d9ba2e834dd5a73a300\"))\n"
-"      (channel\n"
-"       (name 'my-personal-packages)\n"
-"       (url \"https://example.org/personal-packages.git\")\n"
-"       (commit \"dd3df5e2c8818760a8fc0bd699e55d3b69fef2bb\")))\n"
-msgstr ""
-";; Deploy specific commits of my channels of interest.\n"
-"(list (channel\n"
-"       (name 'guix)\n"
-"       (url \"https://git.savannah.gnu.org/git/guix.git\")\n"
-"       (commit \"d894ab8e9bfabcefa6c49d9ba2e834dd5a73a300\"))\n"
-"      (channel\n"
-"       (name 'my-personal-packages)\n"
-"       (url \"https://example.org/personal-packages.git\")\n"
-"       (branch \"dd3df5e2c8818760a8fc0bd699e55d3b69fef2bb\")))\n"
-
-#. type: Plain text
-#: doc/guix.texi:4193
-#, fuzzy
-#| msgid "The @command{guix describe --format=channels} command can even generate this list of channels directly (@pxref{Invoking guix describe})."
-msgid "The @command{guix describe --format=channels} command can even generate this list of channels directly (@pxref{Invoking guix describe}).  The resulting file can be used with the -C options of @command{guix pull} (@pxref{Invoking guix pull}) or @command{guix time-machine} (@pxref{Invoking guix time-machine})."
-msgstr "Команда @command{guix describe --format=channels} даже может непосредственно воспроизвести этот список каналов (@pxref{Invoking guix describe})."
-
-#. type: Plain text
-#: doc/guix.texi:4200
-msgid "At this point the two machines run the @emph{exact same Guix}, with access to the @emph{exact same packages}.  The output of @command{guix build gimp} on one machine will be exactly the same, bit for bit, as the output of the same command on the other machine.  It also means both machines have access to all the source code of Guix and, transitively, to all the source code of every package it defines."
-msgstr "И тогда две машины будут работать с @emph{полностью одинаковым Guix}, имея доступ к @emph{абсолютно одинаковым пакетам}. Результат @command{guix build gimp} на одной машине будет совершенно таким же, бит к биту, как результат этой команды на другой машине. Это также означает, что обе машины имеют доступ ко всем исходным кодам Guix, следовательно, ко всем исходным кодам каждого пакета, определённого в Guix."
-
-#. type: Plain text
-#: doc/guix.texi:4205
-msgid "This gives you super powers, allowing you to track the provenance of binary artifacts with very fine grain, and to reproduce software environments at will---some sort of ``meta reproducibility'' capabilities, if you will.  @xref{Inferiors}, for another way to take advantage of these super powers."
-msgstr "Это даёт вам супервозможности, позволяя вам отслеживать и управлять происхождением артефактов бинарников с точной детализацией, также повторять программные окружения --- это воспроизводимость высокого уровня. Смотрите @xref{Inferiors}, чтобы узнать другие преимущества таких супервозможностей."
-
-#. type: section
-#: doc/guix.texi:4207
-#, no-wrap
-msgid "Invoking @command{guix time-machine}"
-msgstr "Запуск @command{guix time-machine}"
-
-#. type: command{#1}
-#: doc/guix.texi:4209
-#, no-wrap
-msgid "guix time-machine"
-msgstr "guix time-machine"
-
-#. type: Plain text
-#: doc/guix.texi:4220
+#: doc/guix.texi:4286
 msgid "The @command{guix time-machine} command provides access to other revisions of Guix, for example to install older versions of packages, or to reproduce a computation in an identical environment.  The revision of Guix to be used is defined by a commit or by a channel description file created by @command{guix describe} (@pxref{Invoking guix describe})."
-msgstr ""
+msgstr "Команда @command{guix time-machine} предоставляет доступ к другим версиям Guix, например, для установки более старых версий пакетов или для воспроизведения вычислений в идентичной среде. Версия используемого Guix определяется коммитом или файлом описания канала, созданным @command{guix describe} (@pxref{Invoking guix describe})."
 
 #. type: Plain text
-#: doc/guix.texi:4222 doc/guix.texi:4681 doc/guix.texi:8180 doc/guix.texi:8922
-#: doc/guix.texi:8989 doc/guix.texi:9846 doc/guix.texi:10253
-#: doc/guix.texi:10592 doc/guix.texi:10681 doc/guix.texi:10720
-#: doc/guix.texi:10817
+#: doc/guix.texi:4288 doc/guix.texi:5278 doc/guix.texi:6017 doc/guix.texi:9471
+#: doc/guix.texi:9594 doc/guix.texi:10454 doc/guix.texi:10531
+#: doc/guix.texi:11399 doc/guix.texi:11864 doc/guix.texi:12203
+#: doc/guix.texi:12292 doc/guix.texi:12331 doc/guix.texi:12428
 msgid "The general syntax is:"
 msgstr "Основной синтаксис:"
 
 #. type: example
-#: doc/guix.texi:4225
-#, no-wrap
+#: doc/guix.texi:4291
+#, fuzzy, no-wrap
+#| msgid "guix time-machine @var{options}@dots{} -- @var{command} @var{arg}@dots{}\n"
 msgid "guix time-machine @var{options}@dots{} -- @var{command} @var {arg}@dots{}\n"
-msgstr "guix time-machine @var{options}@dots{} -- @var{command} @var {arg}@dots{}\n"
+msgstr "guix time-machine @var{options}@dots{} -- @var{command} @var{arg}@dots{}\n"
 
 #. type: Plain text
-#: doc/guix.texi:4230
+#: doc/guix.texi:4296
 msgid "where @var{command} and @var{arg}@dots{} are passed unmodified to the @command{guix} command of the specified revision.  The @var{options} that define this revision are the same as for @command{guix pull} (@pxref{Invoking guix pull}):"
-msgstr ""
+msgstr "где @var{command} и @var{arg}@dots{} передаются без изменений в команду @command{guix} указанной ревизии. @var{options}, которые определяют эту ревизию, такие же, как и для @command{guix pull} (@pxref{Invoking guix pull}):"
 
 #. type: table
-#: doc/guix.texi:4238
+#: doc/guix.texi:4304
 #, fuzzy
 #| msgid "Download code for the @code{guix} channel from the specified @var{url}, at the given @var{commit} (a valid Git commit ID represented as a hexadecimal string), or @var{branch}."
 msgid "Use the @code{guix} channel from the specified @var{url}, at the given @var{commit} (a valid Git commit ID represented as a hexadecimal string), or @var{branch}."
 msgstr "Скачать код канала @code{guix} из указанного @var{url}, относящийся к обозначенному коммиту @var{commit} (корректный ID коммита Git, представленный в виде шестнадцатеричной строки), или ветке @var{branch}."
 
 #. type: table
-#: doc/guix.texi:4244
+#: doc/guix.texi:4310
 #, fuzzy
 #| msgid "Read the list of channels from @var{file} instead of @file{~/.config/guix/channels.scm}.  @var{file} must contain Scheme code that evaluates to a list of channel objects.  @xref{Channels}, for more information."
 msgid "Read the list of channels from @var{file}.  @var{file} must contain Scheme code that evaluates to a list of channel objects.  @xref{Channels} for more information."
 msgstr "Считать список каналов из файла @var{file} вместо @file{~/.config/guix/channels.scm}. @var{file} должен содержать код Scheme, который определяет список объектов \"канал\". См.  @xref{Channels} для подробной информации."
 
 #. type: Plain text
-#: doc/guix.texi:4248
+#: doc/guix.texi:4314
 msgid "As for @command{guix pull}, the absence of any options means that the the latest commit on the master branch will be used. The command"
-msgstr ""
+msgstr "Что касается @command{guix pull}, то отсутствие каких-либо опций означает, что будет использоваться последний коммит в основной ветке. Команда"
 
 #. type: example
-#: doc/guix.texi:4251
+#: doc/guix.texi:4317
 #, no-wrap
 msgid "guix time-machine -- build hello\n"
 msgstr "guix time-machine -- build hello\n"
 
 #. type: Plain text
-#: doc/guix.texi:4256
+#: doc/guix.texi:4322
 msgid "will thus build the package @code{hello} as defined in the master branch, which is in general a newer revision of Guix than you have installed.  Time travel works in both directions!"
 msgstr "таким образом, мы соберем пакет @code{hello}, как определено в основной ветке, которая, как правило, является более новой версией Guix, чем вы установили. Путешествие во времени работает в обоих направлениях!"
 
 #. type: Plain text
-#: doc/guix.texi:4260
+#: doc/guix.texi:4326
 #, fuzzy
 #| msgid "If the specified packages are not built yet, @command{guix archive} automatically builds them.  The build process may be controlled with the common build options (@pxref{Common Build Options})."
 msgid "Note that @command{guix time-machine} can trigger builds of channels and their dependencies, and these are controlled by the standard build options (@pxref{Common Build Options})."
 msgstr "Если указанные пакеты ещё не собраны, @command{guix archive} автоматически соберёт их. Процесс сборки может контролироваться обычными опциями сборки (@pxref{Common Build Options})."
 
 #. type: quotation
-#: doc/guix.texi:4268
+#: doc/guix.texi:4334
 msgid "The functionality described here is a ``technology preview'' as of version @value{VERSION}.  As such, the interface is subject to change."
 msgstr "Функциональность, описанная здесь, --- это обзор технологии версии @value{VERSION}. Интерфейс может меняться."
 
 #. type: cindex
-#: doc/guix.texi:4270 doc/guix.texi:8094
+#: doc/guix.texi:4336 doc/guix.texi:9508
 #, no-wrap
 msgid "inferiors"
 msgstr "ранние версии"
 
 #. type: cindex
-#: doc/guix.texi:4271
+#: doc/guix.texi:4337
 #, no-wrap
 msgid "composition of Guix revisions"
 msgstr "составление ревизий Guix"
 
 #. type: Plain text
-#: doc/guix.texi:4276
+#: doc/guix.texi:4342
 msgid "Sometimes you might need to mix packages from the revision of Guix you're currently running with packages available in a different revision of Guix.  Guix @dfn{inferiors} allow you to achieve that by composing different Guix revisions in arbitrary ways."
 msgstr "Иногда вам может понадобиться перемешивать пакеты из ревизии Guix, которая работает в настоящий момент, с пакетами, доступными в другой ревизии Guix. Основания Guix @dfn{inferiors} позволяют вам получить это, составляя различные ревизии Guix произвольным образом."
 
 #. type: cindex
-#: doc/guix.texi:4277 doc/guix.texi:4342
+#: doc/guix.texi:4343 doc/guix.texi:4408
 #, no-wrap
 msgid "inferior packages"
 msgstr "пакеты ранних версий"
 
 #. type: Plain text
-#: doc/guix.texi:4283
+#: doc/guix.texi:4349
 msgid "Technically, an ``inferior'' is essentially a separate Guix process connected to your main Guix process through a REPL (@pxref{Invoking guix repl}).  The @code{(guix inferior)} module allows you to create inferiors and to communicate with them.  It also provides a high-level interface to browse and manipulate the packages that an inferior provides---@dfn{inferior packages}."
 msgstr "Технически работа с ранними версиями --- это в целом отдельный процесс Guix, связанный с главным процессом Guix через REPL (@pxref{Invoking guix repl}). Модуль @code{(guix inferior)} позволяет запускать ранние версии и взаимодействовать с ними. Он также предоставляет высокоуровневый интерфейс для обзора и управления пакетами, которые поставляет ранняя версия --- @dfn{ранние версии пакетов}."
 
 #. type: Plain text
-#: doc/guix.texi:4293
+#: doc/guix.texi:4359
 msgid "When combined with channels (@pxref{Channels}), inferiors provide a simple way to interact with a separate revision of Guix.  For example, let's assume you want to install in your profile the current @code{guile} package, along with the @code{guile-json} as it existed in an older revision of Guix---perhaps because the newer @code{guile-json} has an incompatible API and you want to run your code against the old API@.  To do that, you could write a manifest for use by @code{guix package --manifest} (@pxref{Invoking guix package}); in that manifest, you would create an inferior for that old Guix revision you care about, and you would look up the @code{guile-json} package in the inferior:"
 msgstr "При сочетании с каналами (@pxref{Channels}) ранние версии преоставляют простой способ взаимодействовать с отдельными ревизиями Guix. Например, предположим, вы хотите установить в ваш профиль текущий пакет @code{guile} вместе с тем @code{guile-json}, который был определён в предыдущей ревизии Guix (может быть, потому что новый @code{guile-json} имеет несовместимый API, и вы хотите запустить ваш код со старым API). Чтобы это сделать, можно написать манифест для использования с @code{guix package --manifest} (@pxref{Invoking guix package}). В этом манифесте вы создадите описание ранней версии той предыдущей ревизии Guix, которая вас интересует, в которой вы ищете пакет @code{guile-json} ранней версии:"
 
 #. type: lisp
-#: doc/guix.texi:4297
+#: doc/guix.texi:4363
 #, no-wrap
 msgid ""
 "(use-modules (guix inferior) (guix channels)\n"
@@ -9596,7 +10158,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:4306
+#: doc/guix.texi:4372
 #, no-wrap
 msgid ""
 "(define channels\n"
@@ -9620,7 +10182,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:4310
+#: doc/guix.texi:4376
 #, no-wrap
 msgid ""
 "(define inferior\n"
@@ -9634,7 +10196,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:4316
+#: doc/guix.texi:4382
 #, no-wrap
 msgid ""
 ";; Now create a manifest with the current \"guile\" package\n"
@@ -9650,186 +10212,186 @@ msgstr ""
 "       (specification->package \"guile\")))\n"
 
 #. type: Plain text
-#: doc/guix.texi:4321
+#: doc/guix.texi:4387
 msgid "On its first run, @command{guix package --manifest} might have to build the channel you specified before it can create the inferior; subsequent runs will be much faster because the Guix revision will be cached."
 msgstr "Далее запуск @command{guix package --manifest} может вызвать сборку канала, который вы обозначили ранее, и в результате это задействует раннюю версию. Последовательные запуски будут быстрее, потому что ревизия Guix будет кеширована."
 
 #. type: Plain text
-#: doc/guix.texi:4324
+#: doc/guix.texi:4390
 msgid "The @code{(guix inferior)} module provides the following procedures to open an inferior:"
 msgstr "Модуль @code{(guix inferior)} предоставляет следующие процедуры для работы с ранними версиями:"
 
 #. type: deffn
-#: doc/guix.texi:4325
+#: doc/guix.texi:4391
 #, no-wrap
 msgid "{Scheme Procedure} inferior-for-channels @var{channels} @"
 msgstr "{Процедура Scheme} inferior-for-channels @var{channels} @"
 
 #. type: deffn
-#: doc/guix.texi:4330
+#: doc/guix.texi:4396
 msgid "[#:cache-directory] [#:ttl] Return an inferior for @var{channels}, a list of channels.  Use the cache at @var{cache-directory}, where entries can be reclaimed after @var{ttl} seconds.  This procedure opens a new connection to the build daemon."
 msgstr "[#:cache-directory] [#:ttl] Возвращает раннюю версию для списка каналов @var{channels}.  Использует кеш в @var{cache-directory}, где компоненты могут восстанавливаться через @var{ttl} секунд. Эта процедура открывает новое соединение с демоном сборки."
 
 #. type: deffn
-#: doc/guix.texi:4333
+#: doc/guix.texi:4399
 msgid "As a side effect, this procedure may build or substitute binaries for @var{channels}, which can take time."
 msgstr "Как побочный эффект, эта процедура может собирать или скачивать подстановки бинарников для @var{channels}, что может занять время."
 
 #. type: deffn
-#: doc/guix.texi:4335
+#: doc/guix.texi:4401
 #, no-wrap
 msgid "{Scheme Procedure} open-inferior @var{directory} @"
 msgstr "{Процедура Scheme} open-inferior @var{directory} @"
 
 #. type: deffn
-#: doc/guix.texi:4340
+#: doc/guix.texi:4406
 msgid "[#:command \"bin/guix\"] Open the inferior Guix in @var{directory}, running @code{@var{directory}/@var{command} repl} or equivalent.  Return @code{#f} if the inferior could not be launched."
 msgstr "[#:command \"bin/guix\"] Открывает раннюю версию Guix в @var{directory}, запустив repl @code{@var{directory}/@var{command}} или эквивалент. Возвращает @code{#f}, если ранняя версия не может быть запущена."
 
 #. type: Plain text
-#: doc/guix.texi:4345
+#: doc/guix.texi:4411
 msgid "The procedures listed below allow you to obtain and manipulate inferior packages."
 msgstr "Процедуры, приведённые ниже, обеспечивают работу и управление ранними версиями пакетов."
 
 #. type: deffn
-#: doc/guix.texi:4346
+#: doc/guix.texi:4412
 #, no-wrap
 msgid "{Scheme Procedure} inferior-packages @var{inferior}"
 msgstr "{Процедура Scheme} inferior-packages @var{inferior}"
 
 #. type: deffn
-#: doc/guix.texi:4348
+#: doc/guix.texi:4414
 msgid "Return the list of packages known to @var{inferior}."
 msgstr "Возвращает список пакетов, относящихся к ранней версии @var{inferior}."
 
 #. type: deffn
-#: doc/guix.texi:4350
+#: doc/guix.texi:4416
 #, no-wrap
 msgid "{Scheme Procedure} lookup-inferior-packages @var{inferior} @var{name} @"
 msgstr "{Процедура Scheme} lookup-inferior-packages @var{inferior} @var{name} @"
 
 #. type: deffn
-#: doc/guix.texi:4355
+#: doc/guix.texi:4421
 msgid "[@var{version}] Return the sorted list of inferior packages matching @var{name} in @var{inferior}, with highest version numbers first.  If @var{version} is true, return only packages with a version number prefixed by @var{version}."
 msgstr "[@var{version}] Возвращает сортированный список пакетов ранней версии  @var{inferior}, содержащих имя @var{name}, поздняя версия - вначале. Если версия @var{version} задана, возвращает только пакеты с номером версии, начинающейся с @var{version}."
 
 #. type: deffn
-#: doc/guix.texi:4357
+#: doc/guix.texi:4423
 #, no-wrap
 msgid "{Scheme Procedure} inferior-package? @var{obj}"
 msgstr "{Процедура Scheme} inferior-package? @var{obj}"
 
 #. type: deffn
-#: doc/guix.texi:4359
+#: doc/guix.texi:4425
 msgid "Return true if @var{obj} is an inferior package."
 msgstr "Возвращает true, если объект @var{obj} --- это пакет ранней версии."
 
 #. type: deffn
-#: doc/guix.texi:4361
+#: doc/guix.texi:4427
 #, no-wrap
 msgid "{Scheme Procedure} inferior-package-name @var{package}"
 msgstr "{Процедура Scheme} inferior-package-name @var{package}"
 
 #. type: deffnx
-#: doc/guix.texi:4362
+#: doc/guix.texi:4428
 #, no-wrap
 msgid "{Scheme Procedure} inferior-package-version @var{package}"
 msgstr "{Процедура Scheme} inferior-package-version @var{package}"
 
 #. type: deffnx
-#: doc/guix.texi:4363
+#: doc/guix.texi:4429
 #, no-wrap
 msgid "{Scheme Procedure} inferior-package-synopsis @var{package}"
 msgstr "{Процедура Scheme} inferior-package-synopsis @var{package}"
 
 #. type: deffnx
-#: doc/guix.texi:4364
+#: doc/guix.texi:4430
 #, no-wrap
 msgid "{Scheme Procedure} inferior-package-description @var{package}"
 msgstr "{Процедура Scheme} inferior-package-description @var{package}"
 
 #. type: deffnx
-#: doc/guix.texi:4365
+#: doc/guix.texi:4431
 #, no-wrap
 msgid "{Scheme Procedure} inferior-package-home-page @var{package}"
 msgstr "{Процедура Scheme} inferior-package-home-page @var{package}"
 
 #. type: deffnx
-#: doc/guix.texi:4366
+#: doc/guix.texi:4432
 #, no-wrap
 msgid "{Scheme Procedure} inferior-package-location @var{package}"
 msgstr "{Процедура Scheme} inferior-package-location @var{package}"
 
 #. type: deffnx
-#: doc/guix.texi:4367
+#: doc/guix.texi:4433
 #, no-wrap
 msgid "{Scheme Procedure} inferior-package-inputs @var{package}"
 msgstr "{Процедура Scheme} inferior-package-inputs @var{package}"
 
 #. type: deffnx
-#: doc/guix.texi:4368
+#: doc/guix.texi:4434
 #, no-wrap
 msgid "{Scheme Procedure} inferior-package-native-inputs @var{package}"
 msgstr "{Процедура Scheme} inferior-package-native-inputs @var{package}"
 
 #. type: deffnx
-#: doc/guix.texi:4369
+#: doc/guix.texi:4435
 #, no-wrap
 msgid "{Scheme Procedure} inferior-package-propagated-inputs @var{package}"
 msgstr "{Процедура Scheme} inferior-package-propagated-inputs @var{package}"
 
 #. type: deffnx
-#: doc/guix.texi:4370
+#: doc/guix.texi:4436
 #, no-wrap
 msgid "{Scheme Procedure} inferior-package-transitive-propagated-inputs @var{package}"
 msgstr "{Процедура Scheme} inferior-package-transitive-propagated-inputs @var{package}"
 
 #. type: deffnx
-#: doc/guix.texi:4371
+#: doc/guix.texi:4437
 #, no-wrap
 msgid "{Scheme Procedure} inferior-package-native-search-paths @var{package}"
 msgstr "{Процедура Scheme} inferior-package-native-search-paths @var{package}"
 
 #. type: deffnx
-#: doc/guix.texi:4372
+#: doc/guix.texi:4438
 #, no-wrap
 msgid "{Scheme Procedure} inferior-package-transitive-native-search-paths @var{package}"
 msgstr "{Процедура Scheme} inferior-package-transitive-native-search-paths @var{package}"
 
 #. type: deffnx
-#: doc/guix.texi:4373
+#: doc/guix.texi:4439
 #, no-wrap
 msgid "{Scheme Procedure} inferior-package-search-paths @var{package}"
 msgstr "{Процедура Scheme} inferior-package-search-paths @var{package}"
 
 #. type: deffn
-#: doc/guix.texi:4378
+#: doc/guix.texi:4444
 msgid "These procedures are the counterpart of package record accessors (@pxref{package Reference}).  Most of them work by querying the inferior @var{package} comes from, so the inferior must still be live when you call these procedures."
 msgstr "Эти процедуры являются двойниками метода доступа к записям пакетов (@pxref{package Reference}). Большинство из них работают с запросами для ранней версии, из которой происходит @var{package}, так что ранняя версия должна оставаться живой, когда вы вызываете эти процедуры."
 
 #. type: Plain text
-#: doc/guix.texi:4388
+#: doc/guix.texi:4454
 msgid "Inferior packages can be used transparently like any other package or file-like object in G-expressions (@pxref{G-Expressions}).  They are also transparently handled by the @code{packages->manifest} procedure, which is commonly use in manifests (@pxref{Invoking guix package, the @option{--manifest} option of @command{guix package}}).  Thus you can insert an inferior package pretty much anywhere you would insert a regular package: in manifests, in the @code{packages} field of your @code{operating-system} declaration, and so on."
 msgstr "Пакеты ранних версий могут использоваться прозрачно, как любой другой пакет или объект типа файл в выражении G-expressions (@pxref{G-Expressions}). Они также прозрачно используются в процедуре @code{packages->manifest}, которая обычно используется в манифестах (@pxref{Invoking guix package, the @option{--manifest} option of @command{guix package}}). Так можно вставлять пакет ранней версии в принципе куда угодно, как если вставлять обычный пакет: в манифесты, в поле @code{packages} вашего объявления @code{operating-system} и т.д."
 
 #. type: section
-#: doc/guix.texi:4390
+#: doc/guix.texi:4456
 #, no-wrap
 msgid "Invoking @command{guix describe}"
 msgstr "Вызов @command{guix describe}"
 
 #. type: Plain text
-#: doc/guix.texi:4401
+#: doc/guix.texi:4467
 msgid "Often you may want to answer questions like: ``Which revision of Guix am I using?'' or ``Which channels am I using?'' This is useful information in many situations: if you want to @emph{replicate} an environment on a different machine or user account, if you want to report a bug or to determine what change in the channels you are using caused it, or if you want to record your system state for reproducibility purposes.  The @command{guix describe} command answers these questions."
 msgstr "Часто может возникать вопрос: \"Какую ревизию Guix я использую?\" - Или: \"Какие каналы я использую?\" Это полезна информация во многих ситуациях: если вы хотите @emph{повторить} окружение на другой машине или в другом пользовательском аккаунте, если вы хотите составить отчёт об ошибке, чтобы определить, какие изменения в канале, который вы используете, вызвали ошибку, или если вы хотите записать состояние вашей системы в целях воспроизводимости. Команда @command{guix describe} отвечает на эти вопросы."
 
 #. type: Plain text
-#: doc/guix.texi:4405
+#: doc/guix.texi:4471
 msgid "When run from a @command{guix pull}ed @command{guix}, @command{guix describe} displays the channel(s) that it was built from, including their repository URL and commit IDs (@pxref{Channels}):"
 msgstr "В случае запуска после @command{guix pull} команда @command{guix describe} отображает канал(ы), из которых производилась сборка, включая URL и репозиториев и ID коммитов (@pxref{Channels}):"
 
 #. type: example
-#: doc/guix.texi:4413
+#: doc/guix.texi:4479
 #, no-wrap
 msgid ""
 "$ guix describe\n"
@@ -9847,25 +10409,37 @@ msgstr ""
 "    commit: e0fa68c7718fffd33d81af415279d6ddb518f727\n"
 
 #. type: Plain text
-#: doc/guix.texi:4422
+#: doc/guix.texi:4488
 msgid "If you're familiar with the Git version control system, this is similar in spirit to @command{git describe}; the output is also similar to that of @command{guix pull --list-generations}, but limited to the current generation (@pxref{Invoking guix pull, the @option{--list-generations} option}).  Because the Git commit ID shown above unambiguously refers to a snapshot of Guix, this information is all it takes to describe the revision of Guix you're using, and also to replicate it."
 msgstr "Если вы знакомы с системой контроля версиями Git, эта команда по сути похожа на @command{git describe}; выход тот же, что в @command{guix pull --list-generations}, но ограничен текущим поколением (@pxref{Invoking guix pull, the @option{--list-generations} option}).  Так как ID коммита Git выше ссылается однозначно на снимок Guix, эта информация --- всё, что нужно для описания используемой ревизии Guix и повторения её."
 
 #. type: Plain text
-#: doc/guix.texi:4425
+#: doc/guix.texi:4491
 msgid "To make it easier to replicate Guix, @command{guix describe} can also be asked to return a list of channels instead of the human-readable description above:"
 msgstr "Чтобы проще повторить Guix, @command{guix describe} также может вызываться для вывода списка каналов вместо читаемого описания выше:"
 
 #. type: example
-#: doc/guix.texi:4433
-#, no-wrap
+#: doc/guix.texi:4504
+#, fuzzy, no-wrap
+#| msgid ""
+#| "$ guix describe -f channels\n"
+#| "(list (channel\n"
+#| "        (name 'guix)\n"
+#| "        (url \"https://git.savannah.gnu.org/git/guix.git\")\n"
+#| "        (commit\n"
+#| "          \"e0fa68c7718fffd33d81af415279d6ddb518f727\")))\n"
 msgid ""
 "$ guix describe -f channels\n"
 "(list (channel\n"
 "        (name 'guix)\n"
 "        (url \"https://git.savannah.gnu.org/git/guix.git\")\n"
 "        (commit\n"
-"          \"e0fa68c7718fffd33d81af415279d6ddb518f727\")))\n"
+"          \"e0fa68c7718fffd33d81af415279d6ddb518f727\")\n"
+"        (introduction\n"
+"          (make-channel-introduction\n"
+"            \"9edb3f66fd807b096b48283debdcddccfea34bad\"\n"
+"            (openpgp-fingerprint\n"
+"              \"BBB0 2DDF 2CEA F6A8 0D1D  E643 A2A0 6DF2 A33A 54FA\")))))\n"
 msgstr ""
 "$ guix describe -f channels\n"
 "(list (channel\n"
@@ -9875,473 +10449,1225 @@ msgstr ""
 "          \"e0fa68c7718fffd33d81af415279d6ddb518f727\")))\n"
 
 #. type: Plain text
-#: doc/guix.texi:4442
+#: doc/guix.texi:4513
 msgid "You can save this to a file and feed it to @command{guix pull -C} on some other machine or at a later point in time, which will instantiate @emph{this exact Guix revision} (@pxref{Invoking guix pull, the @option{-C} option}).  From there on, since you're able to deploy the same revision of Guix, you can just as well @emph{replicate a complete software environment}.  We humbly think that this is @emph{awesome}, and we hope you'll like it too!"
 msgstr "Можно сохранить это в файл и подать на вход @command{guix pull -C} на любой другой машине или через время, чтобы инициализировать @emph{эту конкретную ревизию Guix} (@pxref{Invoking guix pull, the @option{-C} option}). Теперь, когда можно развернуть подобную ревизию Guix, вы можете также @emph{полностью повторить программное окружение}. Мы скромно полагаем, это @emph{чудесно}. Надеемся, вам это тоже понравится!"
 
 #. type: Plain text
-#: doc/guix.texi:4445
+#: doc/guix.texi:4516
 msgid "The details of the options supported by @command{guix describe} are as follows:"
 msgstr "Подробнее об опциях, поддерживаемых @command{guix describe}:"
 
 #. type: item
-#: doc/guix.texi:4447 doc/guix.texi:5110
+#: doc/guix.texi:4518 doc/guix.texi:5724
 #, no-wrap
 msgid "--format=@var{format}"
 msgstr "--format=@var{format}"
 
 #. type: itemx
-#: doc/guix.texi:4448 doc/guix.texi:5111
+#: doc/guix.texi:4519 doc/guix.texi:5725
 #, no-wrap
 msgid "-f @var{format}"
 msgstr "-f @var{format}"
 
 #. type: table
-#: doc/guix.texi:4450
+#: doc/guix.texi:4521
 msgid "Produce output in the specified @var{format}, one of:"
 msgstr "Произвести вывод в указанном формате @var{format}, одном из:"
 
 #. type: item
-#: doc/guix.texi:4452
+#: doc/guix.texi:4523
 #, no-wrap
 msgid "human"
 msgstr "human"
 
 #. type: table
-#: doc/guix.texi:4454
+#: doc/guix.texi:4525
 msgid "produce human-readable output;"
 msgstr "произвести вывод для чтения человеком;"
 
+#. type: cindex
+#: doc/guix.texi:4525 doc/guix.texi:4743
+#, no-wrap
+msgid "channels"
+msgstr "каналы"
+
 #. type: table
-#: doc/guix.texi:4458
+#: doc/guix.texi:4529
 msgid "produce a list of channel specifications that can be passed to @command{guix pull -C} or installed as @file{~/.config/guix/channels.scm} (@pxref{Invoking guix pull});"
 msgstr "произвести список спецификаций каналов, который может использоваться в @command{guix pull -C} или вставлен в файл @file{~/.config/guix/channels.scm} (@pxref{Invoking guix pull});"
 
 #. type: item
-#: doc/guix.texi:4458 doc/guix.texi:9170
+#: doc/guix.texi:4529
+#, no-wrap
+msgid "channels-sans-intro"
+msgstr "channels-sans-intro"
+
+#. type: table
+#: doc/guix.texi:4535
+msgid "like @code{channels}, but omit the @code{introduction} field; use it to produce a channel specification suitable for Guix version 1.1.0 or earlier---the @code{introduction} field has to do with channel authentication (@pxref{Channels, Channel Authentication}) and is not supported by these older versions;"
+msgstr "как @code{channels}, но без поля @code{Introduction}; используйте его для создания спецификации канала, подходящей для Guix версии 1.1.0 или более ранней.  Поле @code{Introduction} связано с аутентификацией канала (@pxref{Channels, Channel Authentication}) и не поддерживается этими более ранними версиями;"
+
+#. type: item
+#: doc/guix.texi:4535 doc/guix.texi:10710
 #, no-wrap
 msgid "json"
 msgstr "json"
 
 #. type: cindex
-#: doc/guix.texi:4459
+#: doc/guix.texi:4536
 #, no-wrap
 msgid "JSON"
 msgstr "JSON"
 
 #. type: table
-#: doc/guix.texi:4461
+#: doc/guix.texi:4538
 msgid "produce a list of channel specifications in JSON format;"
 msgstr "произвести список спецификаций каналов в формате JSON;"
 
 #. type: item
-#: doc/guix.texi:4461
+#: doc/guix.texi:4538
 #, no-wrap
 msgid "recutils"
 msgstr "recutils"
 
 #. type: table
-#: doc/guix.texi:4463
+#: doc/guix.texi:4540
 msgid "produce a list of channel specifications in Recutils format."
 msgstr "произвести список спецификаций каналов в формате Recutils."
 
+#. type: item
+#: doc/guix.texi:4542
+#, fuzzy, no-wrap
+#| msgid "--list-roots"
+msgid "--list-formats"
+msgstr "--list-roots"
+
+#. type: table
+#: doc/guix.texi:4544
+msgid "Display available formats for @option{--format} option."
+msgstr "Вывести доступные форматы для @option{--format} опции."
+
 #. type: table
-#: doc/guix.texi:4468
+#: doc/guix.texi:4548
 msgid "Display information about @var{profile}."
 msgstr "Вывести информацию о профиле @var{profile}."
 
 #. type: section
-#: doc/guix.texi:4471
+#: doc/guix.texi:4551
 #, no-wrap
 msgid "Invoking @command{guix archive}"
 msgstr "Вызов @command{guix archive}"
 
 #. type: command{#1}
-#: doc/guix.texi:4473
+#: doc/guix.texi:4553
 #, no-wrap
 msgid "guix archive"
 msgstr "guix archive"
 
 #. type: cindex
-#: doc/guix.texi:4474
+#: doc/guix.texi:4554
 #, no-wrap
 msgid "archive"
 msgstr "архив"
 
 #. type: Plain text
-#: doc/guix.texi:4480
+#: doc/guix.texi:4560
 msgid "The @command{guix archive} command allows users to @dfn{export} files from the store into a single archive, and to later @dfn{import} them on a machine that runs Guix.  In particular, it allows store files to be transferred from one machine to the store on another machine."
 msgstr "Команда @command{guix archive} даёт возможность пользователям @dfn{экспортировать} файлы со склада в простой архив и затем @dfn{импортировать} их на машину с работающим Guix. В частности, это позволяет передавать файлы склада одной машины на склад другой машины."
 
 #. type: quotation
-#: doc/guix.texi:4484
+#: doc/guix.texi:4564
 msgid "If you're looking for a way to produce archives in a format suitable for tools other than Guix, @pxref{Invoking guix pack}."
 msgstr "Если вы ищете способ производить архивы в формате, который подходит для инструментов, отличных от Guix, смотрите @pxref{Invoking guix pack}."
 
 #. type: cindex
-#: doc/guix.texi:4486
+#: doc/guix.texi:4566
 #, no-wrap
 msgid "exporting store items"
 msgstr "экспорт элементов склада"
 
 #. type: Plain text
-#: doc/guix.texi:4488
+#: doc/guix.texi:4568
 msgid "To export store files as an archive to standard output, run:"
 msgstr "Чтобы экспортировать файлы склада в архив в стандартный вывод, выполните:"
 
 #. type: example
-#: doc/guix.texi:4491
+#: doc/guix.texi:4571
 #, no-wrap
 msgid "guix archive --export @var{options} @var{specifications}...\n"
 msgstr "guix archive --export @var{options} @var{specifications}...\n"
 
 #. type: Plain text
-#: doc/guix.texi:4498
+#: doc/guix.texi:4578
 msgid "@var{specifications} may be either store file names or package specifications, as for @command{guix package} (@pxref{Invoking guix package}).  For instance, the following command creates an archive containing the @code{gui} output of the @code{git} package and the main output of @code{emacs}:"
 msgstr "Спецификации @var{specifications} могут быть либо именами файлов или пакетами, как для команде @command{guix package} (@pxref{Invoking guix package}). Например, следующая команда создаёт архив, содержащий выход @code{gui} пакета @code{git} и главный выход @code{emacs}:"
 
 #. type: example
-#: doc/guix.texi:4501
+#: doc/guix.texi:4581
 #, no-wrap
 msgid "guix archive --export git:gui /gnu/store/...-emacs-24.3 > great.nar\n"
 msgstr "guix archive --export git:gui /gnu/store/...-emacs-24.3 > great.nar\n"
 
 #. type: Plain text
-#: doc/guix.texi:4506
+#: doc/guix.texi:4586
 msgid "If the specified packages are not built yet, @command{guix archive} automatically builds them.  The build process may be controlled with the common build options (@pxref{Common Build Options})."
 msgstr "Если указанные пакеты ещё не собраны, @command{guix archive} автоматически соберёт их. Процесс сборки может контролироваться обычными опциями сборки (@pxref{Common Build Options})."
 
 #. type: Plain text
-#: doc/guix.texi:4509
+#: doc/guix.texi:4589
 msgid "To transfer the @code{emacs} package to a machine connected over SSH, one would run:"
 msgstr "Чтобы передать пакет @code{emacs} на машину, соединённую по SSH, нужно следующее:"
 
 #. type: example
-#: doc/guix.texi:4512
+#: doc/guix.texi:4592
 #, no-wrap
 msgid "guix archive --export -r emacs | ssh the-machine guix archive --import\n"
 msgstr "guix archive --export -r emacs | ssh the-machine guix archive --import\n"
 
 #. type: Plain text
-#: doc/guix.texi:4517
+#: doc/guix.texi:4597
 msgid "Similarly, a complete user profile may be transferred from one machine to another like this:"
 msgstr "Точно также для передачи всего профиля пользователя из одной машины на другую, выполните:"
 
 #. type: example
-#: doc/guix.texi:4521
-#, fuzzy, no-wrap
-#| msgid ""
-#| "guix archive --export -r $(readlink -f ~/.guix-profile) | \\\n"
-#| "  ssh the-machine guix-archive --import\n"
+#: doc/guix.texi:4601
+#, no-wrap
 msgid ""
 "guix archive --export -r $(readlink -f ~/.guix-profile) | \\\n"
 "  ssh the-machine guix archive --import\n"
 msgstr ""
 "guix archive --export -r $(readlink -f ~/.guix-profile) | \\\n"
-"  ssh the-machine guix-archive --import\n"
+"  ssh the-machine guix archive --import\n"
 
 #. type: Plain text
-#: doc/guix.texi:4531
-msgid "However, note that, in both examples, all of @code{emacs} and the profile as well as all of their dependencies are transferred (due to @code{-r}), regardless of what is already available in the store on the target machine.  The @code{--missing} option can help figure out which items are missing from the target store.  The @command{guix copy} command simplifies and optimizes this whole process, so this is probably what you should use in this case (@pxref{Invoking guix copy})."
+#: doc/guix.texi:4611
+#, fuzzy
+#| msgid "However, note that, in both examples, all of @code{emacs} and the profile as well as all of their dependencies are transferred (due to @code{-r}), regardless of what is already available in the store on the target machine.  The @code{--missing} option can help figure out which items are missing from the target store.  The @command{guix copy} command simplifies and optimizes this whole process, so this is probably what you should use in this case (@pxref{Invoking guix copy})."
+msgid "However, note that, in both examples, all of @code{emacs} and the profile as well as all of their dependencies are transferred (due to @option{-r}), regardless of what is already available in the store on the target machine.  The @option{--missing} option can help figure out which items are missing from the target store.  The @command{guix copy} command simplifies and optimizes this whole process, so this is probably what you should use in this case (@pxref{Invoking guix copy})."
 msgstr "Однако заметим, что в обоих примерах, передаются весь @code{emacs} и профиль вместе с их зависимости (ввиду @code{-r}), не учитывая, что доступно на складе целевой машины. Опция @code{--missing} помогает определить отсутствующие элементы на целевом складе. Команда @command{guix copy} упрощает и оптимизирует весь этот процесс, так что в данном случае она решает проблему (@pxref{Invoking guix copy})."
 
 #. type: cindex
-#: doc/guix.texi:4532
+#: doc/guix.texi:4612
 #, no-wrap
 msgid "nar, archive format"
 msgstr "nar, формат архива"
 
 #. type: cindex
-#: doc/guix.texi:4533
+#: doc/guix.texi:4613
 #, no-wrap
 msgid "normalized archive (nar)"
 msgstr "нормализованный архив (nar)"
 
+#. type: cindex
+#: doc/guix.texi:4614
+#, fuzzy, no-wrap
+#| msgid "nar, archive format"
+msgid "nar bundle, archive format"
+msgstr "nar, формат архива"
+
 #. type: Plain text
-#: doc/guix.texi:4543
-msgid "Archives are stored in the ``normalized archive'' or ``nar'' format, which is comparable in spirit to `tar', but with differences that make it more appropriate for our purposes.  First, rather than recording all Unix metadata for each file, the nar format only mentions the file type (regular, directory, or symbolic link); Unix permissions and owner/group are dismissed.  Second, the order in which directory entries are stored always follows the order of file names according to the C locale collation order.  This makes archive production fully deterministic."
-msgstr "Архивы сохраняются в нормализованном виде, или в формате nar, который по сути совместим с tar, но с отличиями, которые делают его более подходящим для наших целей. Во-первых, вместо записи всех метаданных Unix для каждого файла, формат nar упоминает только формат файла (обычный, директория, символическая ссылка); права доступа Unix и владелец/группа не учитываются. Во-вторых, порядок, в котором сохраняются компоненты директории, всегда соответствуют порядку имён файлов в соответствии с порядком сортировки локали C. Это делает производство архива полностью детерминистическим."
+#: doc/guix.texi:4619
+msgid "Each store item is written in the @dfn{normalized archive} or @dfn{nar} format (described below), and the output of @command{guix archive --export} (and input of @command{guix archive --import}) is a @dfn{nar bundle}."
+msgstr "Каждый элемент храниища написан в @dfn{normalized archive} или @dfn{nar} формате (описано ниже), и вывод @command{guix archive --export} (и ввод @command{guix archive --import}) есть @dfn{nar bundle}."
 
 #. type: Plain text
-#: doc/guix.texi:4549
+#: doc/guix.texi:4629
+msgid "The nar format is comparable in spirit to `tar', but with differences that make it more appropriate for our purposes.  First, rather than recording all Unix metadata for each file, the nar format only mentions the file type (regular, directory, or symbolic link); Unix permissions and owner/group are dismissed.  Second, the order in which directory entries are stored always follows the order of file names according to the C locale collation order.  This makes archive production fully deterministic."
+msgstr "Формат nar по духу сравним с tar, но с отличиями, которые делают его более подходящим для наших целей.  Во-первых, вместо записи всех метаданных Unix для каждого файла, в формате nar упоминается только тип файла (обычный, каталог или символическая ссылка); Разрешения Unix и владелец/группа отклонены.  Во-вторых, порядок, в котором хранятся записи каталога, всегда следует порядку имен файлов в соответствии с порядком сопоставления @code{C} локали.  Это делает создание архивов полностью детерминированным."
+
+#. type: Plain text
+#: doc/guix.texi:4633
+msgid "That nar bundle format is essentially the concatenation of zero or more nars along with metadata for each store item it contains: its file name, references, corresponding derivation, and a digital signature."
+msgstr "Формат пакета nar - это, по сути, конкатенация нуля или более nars вместе с метаданными для каждого элемента store, который содержит: имя файла, ссылки, соответствующую derivation и цифровую подпись."
+
+#. type: Plain text
+#: doc/guix.texi:4639
 msgid "When exporting, the daemon digitally signs the contents of the archive, and that digital signature is appended.  When importing, the daemon verifies the signature and rejects the import in case of an invalid signature or if the signing key is not authorized."
 msgstr "При экспортировании демон подписывает цифровой подписью содержимое архива, и эта цифровая подпись прикрепляется. При импорте демон проверяет подпись и отменяет импорт в случае недействительной подписи, или если ключ подписи не авторизован."
 
 #. type: Plain text
-#: doc/guix.texi:4551
+#: doc/guix.texi:4641
 msgid "The main options are:"
 msgstr "Основные опции:"
 
 #. type: item
-#: doc/guix.texi:4553
+#: doc/guix.texi:4643
 #, no-wrap
 msgid "--export"
 msgstr "--export"
 
 #. type: table
-#: doc/guix.texi:4556
-msgid "Export the specified store files or packages (see below.)  Write the resulting archive to the standard output."
-msgstr "Экспортировать указанные файлы склада или пакеты (смотрите ниже). Писать результирующий архив в стандартный вывод."
+#: doc/guix.texi:4646
+msgid "Export the specified store files or packages (see below).  Write the resulting archive to the standard output."
+msgstr "Экспортировать указанные файлы хранилища или пакеты (смотрите ниже). Писать результирующий архив в стандартный вывод."
 
 #. type: table
-#: doc/guix.texi:4559
-msgid "Dependencies are @emph{not} included in the output, unless @code{--recursive} is passed."
-msgstr "Зависимости @emph{не} включаются в выход, если не задана опция  @code{--recursive}."
+#: doc/guix.texi:4649
+msgid "Dependencies are @emph{not} included in the output, unless @option{--recursive} is passed."
+msgstr "Зависимости @emph{не} включаются в выход, если не задана опция @option{--recursive}."
 
 #. type: itemx
-#: doc/guix.texi:4560 doc/guix.texi:8945 doc/guix.texi:9047 doc/guix.texi:9072
-#: doc/guix.texi:9275 doc/guix.texi:9316 doc/guix.texi:9363 doc/guix.texi:9388
+#: doc/guix.texi:4650 doc/guix.texi:10487 doc/guix.texi:10589
+#: doc/guix.texi:10614 doc/guix.texi:10815 doc/guix.texi:10856
+#: doc/guix.texi:10903 doc/guix.texi:10928
 #, no-wrap
 msgid "-r"
 msgstr "-r"
 
 #. type: item
-#: doc/guix.texi:4561 doc/guix.texi:8944 doc/guix.texi:9046 doc/guix.texi:9071
-#: doc/guix.texi:9274 doc/guix.texi:9315 doc/guix.texi:9362 doc/guix.texi:9387
-#: doc/guix.texi:9439
+#: doc/guix.texi:4651 doc/guix.texi:10486 doc/guix.texi:10588
+#: doc/guix.texi:10613 doc/guix.texi:10814 doc/guix.texi:10855
+#: doc/guix.texi:10902 doc/guix.texi:10927 doc/guix.texi:10979
 #, no-wrap
 msgid "--recursive"
 msgstr "--recursive"
 
 #. type: table
-#: doc/guix.texi:4566
-msgid "When combined with @code{--export}, this instructs @command{guix archive} to include dependencies of the given items in the archive.  Thus, the resulting archive is self-contained: it contains the closure of the exported store items."
+#: doc/guix.texi:4656
+#, fuzzy
+#| msgid "When combined with @code{--export}, this instructs @command{guix archive} to include dependencies of the given items in the archive.  Thus, the resulting archive is self-contained: it contains the closure of the exported store items."
+msgid "When combined with @option{--export}, this instructs @command{guix archive} to include dependencies of the given items in the archive.  Thus, the resulting archive is self-contained: it contains the closure of the exported store items."
 msgstr "При сочетании с @code{--export} это указывает @command{guix archive} включать в архив зависимости обозначенных элементов. Так результирующий архив будет \"сам в себе\": содержит полный конвейер экспортированных элементов склада."
 
 #. type: item
-#: doc/guix.texi:4567
+#: doc/guix.texi:4657
 #, no-wrap
 msgid "--import"
 msgstr "--import"
 
 #. type: table
-#: doc/guix.texi:4572
-msgid "Read an archive from the standard input, and import the files listed therein into the store.  Abort if the archive has an invalid digital signature, or if it is signed by a public key not among the authorized keys (see @code{--authorize} below.)"
+#: doc/guix.texi:4662
+#, fuzzy
+#| msgid "Read an archive from the standard input, and import the files listed therein into the store.  Abort if the archive has an invalid digital signature, or if it is signed by a public key not among the authorized keys (see @code{--authorize} below.)"
+msgid "Read an archive from the standard input, and import the files listed therein into the store.  Abort if the archive has an invalid digital signature, or if it is signed by a public key not among the authorized keys (see @option{--authorize} below)."
 msgstr "Читать архив из стандартного ввода и импортировать файлы, поставляемые им, на склад. Отклонить, если архив имеет недействительную цифровую подпись, или если он подписан публичным ключом, который не находится в списке авторизованных ключей (смотрите @code{--authorize} ниже)."
 
 #. type: item
-#: doc/guix.texi:4573
+#: doc/guix.texi:4663
 #, no-wrap
 msgid "--missing"
 msgstr "--missing"
 
 #. type: table
-#: doc/guix.texi:4577
+#: doc/guix.texi:4667
 msgid "Read a list of store file names from the standard input, one per line, and write on the standard output the subset of these files missing from the store."
 msgstr "Читать список имён файлов склада из стандартного ввода, одна линия - один файл, и писать в стандартный вывод подмножество этих файлов, отсутствующих на складе."
 
 #. type: item
-#: doc/guix.texi:4578
+#: doc/guix.texi:4668
 #, no-wrap
 msgid "--generate-key[=@var{parameters}]"
 msgstr "--generate-key[=@var{parameters}]"
 
 #. type: cindex
-#: doc/guix.texi:4579
+#: doc/guix.texi:4669
 #, no-wrap
 msgid "signing, archives"
 msgstr "подпись, архивов"
 
 #. type: table
-#: doc/guix.texi:4584
-msgid "Generate a new key pair for the daemon.  This is a prerequisite before archives can be exported with @code{--export}.  Note that this operation usually takes time, because it needs to gather enough entropy to generate the key pair."
+#: doc/guix.texi:4676
+#, fuzzy
+#| msgid "Generate a new key pair for the daemon.  This is a prerequisite before archives can be exported with @code{--export}.  Note that this operation usually takes time, because it needs to gather enough entropy to generate the key pair."
+msgid "Generate a new key pair for the daemon.  This is a prerequisite before archives can be exported with @option{--export}.  This operation is usually instantaneous but it can take time if the system's entropy pool needs to be refilled.  On Guix System, @code{guix-service-type} takes care of generating this key pair the first boot."
 msgstr "Генерировать новую ключ-пару для демона. Это необходимо получить перед тем, как экспортировать архивы опцией @code{--export}. Отметим, что эта операция обычно занимает время, так как необходимо собрать много энтропии для ключ-пары."
 
 #. type: table
-#: doc/guix.texi:4594
-msgid "The generated key pair is typically stored under @file{/etc/guix}, in @file{signing-key.pub} (public key) and @file{signing-key.sec} (private key, which must be kept secret.)  When @var{parameters} is omitted, an ECDSA key using the Ed25519 curve is generated, or, for Libgcrypt versions before 1.6.0, it is a 4096-bit RSA key.  Alternatively, @var{parameters} can specify @code{genkey} parameters suitable for Libgcrypt (@pxref{General public-key related Functions, @code{gcry_pk_genkey},, gcrypt, The Libgcrypt Reference Manual})."
+#: doc/guix.texi:4686
+#, fuzzy
+#| msgid "The generated key pair is typically stored under @file{/etc/guix}, in @file{signing-key.pub} (public key) and @file{signing-key.sec} (private key, which must be kept secret.)  When @var{parameters} is omitted, an ECDSA key using the Ed25519 curve is generated, or, for Libgcrypt versions before 1.6.0, it is a 4096-bit RSA key.  Alternatively, @var{parameters} can specify @code{genkey} parameters suitable for Libgcrypt (@pxref{General public-key related Functions, @code{gcry_pk_genkey},, gcrypt, The Libgcrypt Reference Manual})."
+msgid "The generated key pair is typically stored under @file{/etc/guix}, in @file{signing-key.pub} (public key) and @file{signing-key.sec} (private key, which must be kept secret).  When @var{parameters} is omitted, an ECDSA key using the Ed25519 curve is generated, or, for Libgcrypt versions before 1.6.0, it is a 4096-bit RSA key.  Alternatively, @var{parameters} can specify @code{genkey} parameters suitable for Libgcrypt (@pxref{General public-key related Functions, @code{gcry_pk_genkey},, gcrypt, The Libgcrypt Reference Manual})."
 msgstr "Сгенерированная ключ-пара обычно сохраняется под @file{/etc/guix}, в файлы @file{signing-key.pub} (публичный ключ) и @file{signing-key.sec} (прватный ключ, который должен оставаться в секрете). Если параметры @var{parameters} пропущены, генерируется ключ ECDSA, используя кривую Ed25519, или для Libgcrypt версии ранее 1.6.0 --- это 4096-битный ключ RSA. Альтернативно в параметрах @var{parameters} можно указать @code{genkey}, соответствующие Libgcrypt (@pxref{General public-key related Functions, @code{gcry_pk_genkey},, gcrypt, The Libgcrypt Reference Manual})."
 
 #. type: item
-#: doc/guix.texi:4595
+#: doc/guix.texi:4687
 #, no-wrap
 msgid "--authorize"
 msgstr "--authorize"
 
 #. type: cindex
-#: doc/guix.texi:4596
+#: doc/guix.texi:4688
 #, no-wrap
 msgid "authorizing, archives"
 msgstr "авторизация, архивов"
 
 #. type: table
-#: doc/guix.texi:4600
+#: doc/guix.texi:4692
 msgid "Authorize imports signed by the public key passed on standard input.  The public key must be in ``s-expression advanced format''---i.e., the same format as the @file{signing-key.pub} file."
 msgstr "Авторизовать импорт, подписанный публичным ключом, поступивший на стандартный ввод. Публичный ключ должен быть в формате s-expression, то есть в таком же формате, как файл @file{signing-key.pub}."
 
 #. type: table
-#: doc/guix.texi:4607
+#: doc/guix.texi:4699
 #, fuzzy
 #| msgid "The list of authorized keys is kept in the human-editable file @file{/etc/guix/acl}.  The file contains @url{http://people.csail.mit.edu/rivest/Sexp.txt, ``advanced-format s-expressions''} and is structured as an access-control list in the @url{http://theworld.com/~cme/spki.txt, Simple Public-Key Infrastructure (SPKI)}."
 msgid "The list of authorized keys is kept in the human-editable file @file{/etc/guix/acl}.  The file contains @url{https://people.csail.mit.edu/rivest/Sexp.txt, ``advanced-format s-expressions''} and is structured as an access-control list in the @url{https://theworld.com/~cme/spki.txt, Simple Public-Key Infrastructure (SPKI)}."
 msgstr "Список авторизованных ключей хранится в файле @file{/etc/guix/acl}, доступном для редактирования человеком. Файл содержит @url{http://people.csail.mit.edu/rivest/Sexp.txt, s-expression расширенного формата}, и он структурирован в виде списка контроля доступа в @url{http://theworld.com/~cme/spki.txt, Simple Public-Key Infrastructure (SPKI)}."
 
 #. type: item
-#: doc/guix.texi:4608
+#: doc/guix.texi:4700
 #, no-wrap
 msgid "--extract=@var{directory}"
 msgstr "--extract=@var{directory}"
 
 #. type: itemx
-#: doc/guix.texi:4609
+#: doc/guix.texi:4701
 #, no-wrap
 msgid "-x @var{directory}"
 msgstr "-x @var{directory}"
 
 #. type: table
-#: doc/guix.texi:4613
+#: doc/guix.texi:4705
 msgid "Read a single-item archive as served by substitute servers (@pxref{Substitutes}) and extract it to @var{directory}.  This is a low-level operation needed in only very narrow use cases; see below."
 msgstr "Читать архив, представляющий один элемент, в качестве поставленного серверами подстановки (@pxref{Substitutes}) и извлечь его в директорию @var{directory}. Это низкоуровневая операция, необходимая только в очень редких случаях, смотрите ниже."
 
 #. type: table
-#: doc/guix.texi:4616
+#: doc/guix.texi:4708
 msgid "For example, the following command extracts the substitute for Emacs served by @code{@value{SUBSTITUTE-SERVER}} to @file{/tmp/emacs}:"
 msgstr "Например, следующая команда распаковывает подстановку Emacs, поставленную @code{@value{SUBSTITUTE-SERVER}} в @file{/tmp/emacs}:"
 
 #. type: example
-#: doc/guix.texi:4621
+#: doc/guix.texi:4713
 #, no-wrap
 msgid ""
 "$ wget -O - \\\n"
-"  https://@value{SUBSTITUTE-SERVER}/nar/@dots{}-emacs-24.5 \\\n"
-"  | bunzip2 | guix archive -x /tmp/emacs\n"
+"  https://@value{SUBSTITUTE-SERVER}/nar/gzip/@dots{}-emacs-24.5 \\\n"
+"  | gunzip | guix archive -x /tmp/emacs\n"
 msgstr ""
 "$ wget -O - \\\n"
-"  https://@value{SUBSTITUTE-SERVER}/nar/@dots{}-emacs-24.5 \\\n"
-"  | bunzip2 | guix archive -x /tmp/emacs\n"
+"  https://@value{SUBSTITUTE-SERVER}/nar/gzip/@dots{}-emacs-24.5 \\\n"
+"  | gunzip | guix archive -x /tmp/emacs\n"
 
 #. type: table
-#: doc/guix.texi:4628
+#: doc/guix.texi:4720
 msgid "Single-item archives are different from multiple-item archives produced by @command{guix archive --export}; they contain a single store item, and they do @emph{not} embed a signature.  Thus this operation does @emph{no} signature verification and its output should be considered unsafe."
 msgstr "Архивы, представляющие один элемент, отличаются от архивов, содержащих множество элементов, производимых @command{guix archive --export}. Они содержат один элемент склада, но они @emph{не} включают подпись. Так что эта операция @emph{не} использует верификацию, и его выход должен рассматриваться как небезопасный."
 
 #. type: table
-#: doc/guix.texi:4631
-msgid "The primary purpose of this operation is to facilitate inspection of archive contents coming from possibly untrusted substitute servers."
+#: doc/guix.texi:4724
+#, fuzzy
+#| msgid "The primary purpose of this operation is to facilitate inspection of archive contents coming from possibly untrusted substitute servers."
+msgid "The primary purpose of this operation is to facilitate inspection of archive contents coming from possibly untrusted substitute servers (@pxref{Invoking guix challenge})."
 msgstr "Основная цель этой операции --- упростить просмотр содержимого архива, происходящего, возможно, из недоверенных серверов подстановок."
 
 #. type: item
-#: doc/guix.texi:4632
-#, fuzzy, no-wrap
-#| msgid "--list-dead"
+#: doc/guix.texi:4725
+#, no-wrap
 msgid "--list"
-msgstr "--list-dead"
+msgstr "--list"
 
 #. type: itemx
-#: doc/guix.texi:4633 doc/guix.texi:9262 doc/guix.texi:9309
+#: doc/guix.texi:4726 doc/guix.texi:10802 doc/guix.texi:10849
 #, no-wrap
 msgid "-t"
-msgstr ""
+msgstr "-t"
 
 #. type: table
-#: doc/guix.texi:4637
+#: doc/guix.texi:4730
 #, fuzzy
 #| msgid "Read a single-item archive as served by substitute servers (@pxref{Substitutes}) and extract it to @var{directory}.  This is a low-level operation needed in only very narrow use cases; see below."
 msgid "Read a single-item archive as served by substitute servers (@pxref{Substitutes}) and print the list of files it contains, as in this example:"
 msgstr "Читать архив, представляющий один элемент, в качестве поставленного серверами подстановки (@pxref{Substitutes}) и извлечь его в директорию @var{directory}. Это низкоуровневая операция, необходимая только в очень редких случаях, смотрите ниже."
 
 #. type: example
-#: doc/guix.texi:4642
-#, fuzzy, no-wrap
-#| msgid ""
-#| "$ wget -O - \\\n"
-#| "  https://@value{SUBSTITUTE-SERVER}/nar/@dots{}-emacs-24.5 \\\n"
-#| "  | bunzip2 | guix archive -x /tmp/emacs\n"
+#: doc/guix.texi:4735
+#, no-wrap
 msgid ""
 "$ wget -O - \\\n"
 "  https://@value{SUBSTITUTE-SERVER}/nar/lzip/@dots{}-emacs-26.3 \\\n"
 "  | lzip -d | guix archive -t\n"
 msgstr ""
 "$ wget -O - \\\n"
-"  https://@value{SUBSTITUTE-SERVER}/nar/@dots{}-emacs-24.5 \\\n"
-"  | bunzip2 | guix archive -x /tmp/emacs\n"
+"  https://@value{SUBSTITUTE-SERVER}/nar/lzip/@dots{}-emacs-26.3 \\\n"
+"  | lzip -d | guix archive -t\n"
+
+#. type: cindex
+#: doc/guix.texi:4746
+#, no-wrap
+msgid "@command{guix pull}, configuration file"
+msgstr "@command{guix pull}, конфигурационный файл"
+
+#. type: cindex
+#: doc/guix.texi:4747
+#, no-wrap
+msgid "configuration of @command{guix pull}"
+msgstr "конфигурация @command{guix pull}"
+
+#. type: Plain text
+#: doc/guix.texi:4758
+#, fuzzy
+#| msgid "Guix and its package collection are updated by running @command{guix pull} (@pxref{Invoking guix pull}).  By default @command{guix pull} downloads and deploys Guix itself from the official GNU@tie{}Guix repository.  This can be customized by defining @dfn{channels} in the @file{~/.config/guix/channels.scm} file.  A channel specifies a URL and branch of a Git repository to be deployed, and @command{guix pull} can be instructed to pull from one or more channels.  In other words, channels can be used to @emph{customize} and to @emph{extend} Guix, as we will see below."
+msgid "Guix and its package collection are updated by running @command{guix pull} (@pxref{Invoking guix pull}).  By default @command{guix pull} downloads and deploys Guix itself from the official GNU@tie{}Guix repository.  This can be customized by defining @dfn{channels} in the @file{~/.config/guix/channels.scm} file.  A channel specifies a URL and branch of a Git repository to be deployed, and @command{guix pull} can be instructed to pull from one or more channels.  In other words, channels can be used to @emph{customize} and to @emph{extend} Guix, as we will see below.  Guix is able to take into account security concerns and deal with authenticated updates."
+msgstr "Guix и его коллекция пакетов можно обновить запуском @command{guix pull} (@pxref{Invoking guix pull}). По умолчанию @command{guix pull} скачивает и разворачивает Guix из официального репозитория GNU@tie{}Guix. Это может быть изменено определением каналов @dfn{channels} в файле @file{~/.config/guix/channels.scm}. Канал обозначает URL или ветку репозитория Git для разворачивания. Также @command{guix pull} может быть настроена для скачивания из одного или более каналов. Другими словами, каналы могут использоваться для @emph{настройки} и для @emph{расширения} Guix, как это будет показано ниже."
+
+#. type: cindex
+#: doc/guix.texi:4775
+#, no-wrap
+msgid "extending the package collection (channels)"
+msgstr "расширение коллекции пакетов (каналов)"
+
+#. type: cindex
+#: doc/guix.texi:4776
+#, fuzzy, no-wrap
+#| msgid "personal packages (channels)"
+msgid "variant packages (channels)"
+msgstr "собственные пакеты (каналы)"
+
+#. type: Plain text
+#: doc/guix.texi:4780
+#, fuzzy
+#| msgid "To use a channel, write @code{~/.config/guix/channels.scm} to instruct @command{guix pull} to pull from it @emph{in addition} to the default Guix channel(s):"
+msgid "You can specify @emph{additional channels} to pull from. To use a channel, write @code{~/.config/guix/channels.scm} to instruct @command{guix pull} to pull from it @emph{in addition} to the default Guix channel(s):"
+msgstr "Чтобы использовать канал, напишите @code{~/.config/guix/channels.scm}, чтобы обозначить @command{guix pull} скачивать оттуда @emph{в дополнение} к каналу(-ам) Guix по умолчанию:"
+
+#. type: vindex
+#: doc/guix.texi:4781
+#, no-wrap
+msgid "%default-channels"
+msgstr "%default-channels"
+
+#. type: lisp
+#: doc/guix.texi:4788
+#, fuzzy, no-wrap
+#| msgid ""
+#| ";; Add my personal packages to those Guix provides.\n"
+#| "(cons (channel\n"
+#| "        (name 'my-personal-packages)\n"
+#| "        (url \"https://example.org/personal-packages.git\"))\n"
+#| "      %default-channels)\n"
+msgid ""
+";; Add variant packages to those Guix provides.\n"
+"(cons (channel\n"
+"        (name 'variant-packages)\n"
+"        (url \"https://example.org/variant-packages.git\"))\n"
+"      %default-channels)\n"
+msgstr ""
+";; Add my personal packages to those Guix provides.\n"
+"(cons (channel\n"
+"        (name 'my-personal-packages)\n"
+"        (url \"https://example.org/personal-packages.git\"))\n"
+"      %default-channels)\n"
+
+#. type: Plain text
+#: doc/guix.texi:4798
+msgid "Note that the snippet above is (as always!)@: Scheme code; we use @code{cons} to add a channel the list of channels that the variable @code{%default-channels} is bound to (@pxref{Pairs, @code{cons} and lists,, guile, GNU Guile Reference Manual}).  With this file in place, @command{guix pull} builds not only Guix but also the package modules from your own repository.  The result in @file{~/.config/guix/current} is the union of Guix with your own package modules:"
+msgstr "Заметим, что сниппет выше (всегда!)@: код Scheme; мы используем @code{cons} для добавления канала в список каналов, то есть в переменную @code{%default-channels} (@pxref{Pairs, @code{cons} and lists,, guile, GNU Guile Reference Manual}). Если этот файл написан, @command{guix pull} производит сборку не только Guix, но и пакетных модулей из вашего репозитория. В результате в @file{~/.config/guix/current} содержится объединение Guix и ваших собственных пакетных модулей:"
+
+#. type: example
+#: doc/guix.texi:4813
+#, fuzzy, no-wrap
+#| msgid ""
+#| "$ guix pull --list-generations\n"
+#| "@dots{}\n"
+#| "Generation 19\tAug 27 2018 16:20:48\n"
+#| "  guix d894ab8\n"
+#| "    repository URL: https://git.savannah.gnu.org/git/guix.git\n"
+#| "    branch: master\n"
+#| "    commit: d894ab8e9bfabcefa6c49d9ba2e834dd5a73a300\n"
+#| "  my-personal-packages dd3df5e\n"
+#| "    repository URL: https://example.org/personal-packages.git\n"
+#| "    branch: master\n"
+#| "    commit: dd3df5e2c8818760a8fc0bd699e55d3b69fef2bb\n"
+#| "  11 new packages: my-gimp, my-emacs-with-cool-features, @dots{}\n"
+#| "  4 packages upgraded: emacs-racket-mode@@0.0.2-2.1b78827, @dots{}\n"
+msgid ""
+"$ guix pull --list-generations\n"
+"@dots{}\n"
+"Generation 19\tAug 27 2018 16:20:48\n"
+"  guix d894ab8\n"
+"    repository URL: https://git.savannah.gnu.org/git/guix.git\n"
+"    branch: master\n"
+"    commit: d894ab8e9bfabcefa6c49d9ba2e834dd5a73a300\n"
+"  variant-packages dd3df5e\n"
+"    repository URL: https://example.org/variant-packages.git\n"
+"    branch: master\n"
+"    commit: dd3df5e2c8818760a8fc0bd699e55d3b69fef2bb\n"
+"  11 new packages: variant-gimp, variant-emacs-with-cool-features, @dots{}\n"
+"  4 packages upgraded: emacs-racket-mode@@0.0.2-2.1b78827, @dots{}\n"
+msgstr ""
+"$ guix pull --list-generations\n"
+"@dots{}\n"
+"Generation 19\tAug 27 2018 16:20:48\n"
+"  guix d894ab8\n"
+"    repository URL: https://git.savannah.gnu.org/git/guix.git\n"
+"    branch: master\n"
+"    commit: d894ab8e9bfabcefa6c49d9ba2e834dd5a73a300\n"
+"  my-personal-packages dd3df5e\n"
+"    repository URL: https://example.org/personal-packages.git\n"
+"    branch: master\n"
+"    commit: dd3df5e2c8818760a8fc0bd699e55d3b69fef2bb\n"
+"  11 new packages: my-gimp, my-emacs-with-cool-features, @dots{}\n"
+"  4 packages upgraded: emacs-racket-mode@@0.0.2-2.1b78827, @dots{}\n"
+
+#. type: Plain text
+#: doc/guix.texi:4821
+#, fuzzy
+#| msgid "The output of @command{guix pull} above shows that Generation@tie{}19 includes both Guix and packages from the @code{my-personal-packages} channel.  Among the new and upgraded packages that are listed, some like @code{my-gimp} and @code{my-emacs-with-cool-features} might come from @code{my-personal-packages}, while others come from the Guix default channel."
+msgid "The output of @command{guix pull} above shows that Generation@tie{}19 includes both Guix and packages from the @code{variant-personal-packages} channel.  Among the new and upgraded packages that are listed, some like @code{variant-gimp} and @code{variant-emacs-with-cool-features} might come from @code{variant-packages}, while others come from the Guix default channel."
+msgstr "Результат @command{guix pull} выше показывает, что поколение Generation@tie{}19 включает как репозиторий Guix, так и пакеты из канала @code{my-personal-packages}. Вместе с новыми и обновлёнными пакетами, которые присутствуют в списке, что-нибудь типа @code{my-gimp} и @code{my-emacs-with-cool-features} может прийти из @code{my-personal-packages}, когда остальные идут из канала Guix по умолчанию."
+
+#. type: Plain text
+#: doc/guix.texi:4830
+#, fuzzy
+#| msgid "The channel called @code{guix} specifies where Guix itself---its command-line tools as well as its package collection---should be downloaded.  For instance, suppose you want to update from your own copy of the Guix repository at @code{example.org}, and specifically the @code{super-hacks} branch, you can write in @code{~/.config/guix/channels.scm} this specification:"
+msgid "The channel called @code{guix} specifies where Guix itself---its command-line tools as well as its package collection---should be downloaded.  For instance, suppose you want to update from another copy of the Guix repository at @code{example.org}, and specifically the @code{super-hacks} branch, you can write in @code{~/.config/guix/channels.scm} this specification:"
+msgstr "Канал, названный @code{guix}, обозначает, откуда должен скачиваться сам Guix (его инструменты командной строки и коллекция пакетов). Например, предположим вы хотите обновиться из вашей собственной копии репозитория Guix на @code{example.org}, а именно из ветки @code{super-hacks}, тогда можно написать в @code{~/.config/guix/channels.scm} следующую спецификацию:"
+
+#. type: lisp
+#: doc/guix.texi:4837
+#, fuzzy, no-wrap
+#| msgid ""
+#| ";; Tell 'guix pull' to use my own repo.\n"
+#| "(list (channel\n"
+#| "        (name 'guix)\n"
+#| "        (url \"https://example.org/my-guix.git\")\n"
+#| "        (branch \"super-hacks\")))\n"
+msgid ""
+";; Tell 'guix pull' to use another repo.\n"
+"(list (channel\n"
+"        (name 'guix)\n"
+"        (url \"https://example.org/another-guix.git\")\n"
+"        (branch \"super-hacks\")))\n"
+msgstr ""
+";; Tell 'guix pull' to use my own repo.\n"
+"(list (channel\n"
+"        (name 'guix)\n"
+"        (url \"https://example.org/my-guix.git\")\n"
+"        (branch \"super-hacks\")))\n"
+
+#. type: Plain text
+#: doc/guix.texi:4843
+#, fuzzy
+#| msgid "From there on, @command{guix pull} will fetch code from the @code{super-hacks} branch of the repository at @code{example.org}."
+msgid "From there on, @command{guix pull} will fetch code from the @code{super-hacks} branch of the repository at @code{example.org}.  The authentication concern is addressed below ((@pxref{Channel Authentication})."
+msgstr "При такой настройке @command{guix pull} будет скачивать код из ветки @code{super-hacks} репозитория в @code{example.org}."
+
+#. type: Plain text
+#: doc/guix.texi:4854
+msgid "The @command{guix pull --list-generations} output above shows precisely which commits were used to build this instance of Guix.  We can thus replicate it, say, on another machine, by providing a channel specification in @file{~/.config/guix/channels.scm} that is ``pinned'' to these commits:"
+msgstr "Результат @command{guix pull --list-generations} выше показывает точно, какие коммиты были использованы для сборки данной инстанции Guix. Так что мы можем повторить её, скажем, на другой машине, предоставив объявление канала в @file{~/.config/guix/channels.scm}, которое завязано на этих коммитах:"
+
+#. type: lisp
+#: doc/guix.texi:4865
+#, fuzzy, no-wrap
+#| msgid ""
+#| ";; Deploy specific commits of my channels of interest.\n"
+#| "(list (channel\n"
+#| "       (name 'guix)\n"
+#| "       (url \"https://git.savannah.gnu.org/git/guix.git\")\n"
+#| "       (commit \"d894ab8e9bfabcefa6c49d9ba2e834dd5a73a300\"))\n"
+#| "      (channel\n"
+#| "       (name 'my-personal-packages)\n"
+#| "       (url \"https://example.org/personal-packages.git\")\n"
+#| "       (branch \"dd3df5e2c8818760a8fc0bd699e55d3b69fef2bb\")))\n"
+msgid ""
+";; Deploy specific commits of my channels of interest.\n"
+"(list (channel\n"
+"       (name 'guix)\n"
+"       (url \"https://git.savannah.gnu.org/git/guix.git\")\n"
+"       (commit \"6298c3ffd9654d3231a6f25390b056483e8f407c\"))\n"
+"      (channel\n"
+"       (name 'variant-packages)\n"
+"       (url \"https://example.org/variant-packages.git\")\n"
+"       (commit \"dd3df5e2c8818760a8fc0bd699e55d3b69fef2bb\")))\n"
+msgstr ""
+";; Deploy specific commits of my channels of interest.\n"
+"(list (channel\n"
+"       (name 'guix)\n"
+"       (url \"https://git.savannah.gnu.org/git/guix.git\")\n"
+"       (commit \"d894ab8e9bfabcefa6c49d9ba2e834dd5a73a300\"))\n"
+"      (channel\n"
+"       (name 'my-personal-packages)\n"
+"       (url \"https://example.org/personal-packages.git\")\n"
+"       (branch \"dd3df5e2c8818760a8fc0bd699e55d3b69fef2bb\")))\n"
+
+#. type: Plain text
+#: doc/guix.texi:4872
+#, fuzzy
+#| msgid "The @command{guix describe --format=channels} command can even generate this list of channels directly (@pxref{Invoking guix describe})."
+msgid "The @command{guix describe --format=channels} command can even generate this list of channels directly (@pxref{Invoking guix describe}).  The resulting file can be used with the -C options of @command{guix pull} (@pxref{Invoking guix pull}) or @command{guix time-machine} (@pxref{Invoking guix time-machine})."
+msgstr "Команда @command{guix describe --format=channels} даже может непосредственно воспроизвести этот список каналов (@pxref{Invoking guix describe})."
+
+#. type: Plain text
+#: doc/guix.texi:4879
+msgid "At this point the two machines run the @emph{exact same Guix}, with access to the @emph{exact same packages}.  The output of @command{guix build gimp} on one machine will be exactly the same, bit for bit, as the output of the same command on the other machine.  It also means both machines have access to all the source code of Guix and, transitively, to all the source code of every package it defines."
+msgstr "И тогда две машины будут работать с @emph{полностью одинаковым Guix}, имея доступ к @emph{абсолютно одинаковым пакетам}. Результат @command{guix build gimp} на одной машине будет совершенно таким же, бит к биту, как результат этой команды на другой машине. Это также означает, что обе машины имеют доступ ко всем исходным кодам Guix, следовательно, ко всем исходным кодам каждого пакета, определённого в Guix."
+
+#. type: Plain text
+#: doc/guix.texi:4884
+msgid "This gives you super powers, allowing you to track the provenance of binary artifacts with very fine grain, and to reproduce software environments at will---some sort of ``meta reproducibility'' capabilities, if you will.  @xref{Inferiors}, for another way to take advantage of these super powers."
+msgstr "Это даёт вам супервозможности, позволяя вам отслеживать и управлять происхождением артефактов бинарников с точной детализацией, также повторять программные окружения --- это воспроизводимость высокого уровня. Смотрите @xref{Inferiors}, чтобы узнать другие преимущества таких супервозможностей."
+
+#. type: anchor{#1}
+#: doc/guix.texi:4889
+#, fuzzy
+msgid "channel-authentication"
+msgstr "channel-authentication"
+
+#. type: Plain text
+#: doc/guix.texi:4895
+msgid "The @command{guix pull} and @command{guix time-machine} commands @dfn{authenticate} the code retrieved from channels: they make sure each commit that is fetched is signed by an authorized developer.  The goal is to protect from unauthorized modifications to the channel that would lead users to run malicious code."
+msgstr "@command{guix pull} и @command{guix time-machine} @dfn{аутентифицируют} код, полученный из каналов: они гарантируют, что каждый полученный коммит подписан авторизованным разработчиком.  Цель состоит в том, чтобы защитить канал от несанкционированных изменений, которые могут привести к запуску вредоносного кода пользователями."
+
+#. type: Plain text
+#: doc/guix.texi:4900
+msgid "As a user, you must provide a @dfn{channel introduction} in your channels file so that Guix knows how to authenticate its first commit.  A channel specification, including its introduction, looks something along these lines:"
+msgstr ""
+"As a user, you must provide a @dfn{channel introduction} in your channels file so that Guix knows how to authenticate its first commit.  A channel specification, including its introduction, looks something along these lines:\n"
+"Как пользователь, вы должны предоставить @dfn{channel introduction} в вашем файле канала, чтобы Guix знал как авторизовать свой первый коммит. Спецификация канала, включая введения, выглядит как-то так:"
+
+#. type: lisp
+#: doc/guix.texi:4910
+#, no-wrap
+msgid ""
+"(channel\n"
+"  (name 'some-channel)\n"
+"  (url \"https://example.org/some-channel.git\")\n"
+"  (introduction\n"
+"   (make-channel-introduction\n"
+"    \"6f0d8cc0d88abb59c324b2990bfee2876016bb86\"\n"
+"    (openpgp-fingerprint\n"
+"     \"CABB A931 C0FF EEC6 900D  0CFB 090B 1199 3D9A EBB5\"))))\n"
+msgstr ""
+"(channel\n"
+"  (name 'some-channel)\n"
+"  (url \"https://example.org/some-channel.git\")\n"
+"  (introduction\n"
+"   (make-channel-introduction\n"
+"    \"6f0d8cc0d88abb59c324b2990bfee2876016bb86\"\n"
+"    (openpgp-fingerprint\n"
+"     \"CABB A931 C0FF EEC6 900D  0CFB 090B 1199 3D9A EBB5\"))))\n"
+
+#. type: Plain text
+#: doc/guix.texi:4916
+msgid "The specification above shows the name and URL of the channel.  The call to @code{make-channel-introduction} above specifies that authentication of this channel starts at commit @code{6f0d8cc@dots{}}, which is signed by the OpenPGP key with fingerprint @code{CABB A931@dots{}}."
+msgstr "В приведенной выше спецификации указано имя и URL-адрес канала.  Вызов @code{make-channel-introduction} выше указывает, что аутентификация этого канала начинается с коммита @code{6f0d8cc@dots{}}, который подписывается ключом OpenPGP с отпечатком @code{CABB A931@dots{}}."
+
+#. type: Plain text
+#: doc/guix.texi:4922
+msgid "For the main channel, called @code{guix}, you automatically get that information from your Guix installation.  For other channels, include the channel introduction provided by the channel authors in your @file{channels.scm} file.  Make sure you retrieve the channel introduction from a trusted source since that is the root of your trust."
+msgstr "Для основного канала, называемого @code{guix}, вы автоматически получаете эту информацию из вашей установки Guix.  Для других каналов, укажите introduction для канала, предоставленное авторами канала, в ваш файл @file{channels.scm}.  Убедитесь, что вы получили introduction канала из надежного источника, так как это основа вашего доверия."
+
+#. type: Plain text
+#: doc/guix.texi:4924
+msgid "If you're curious about the authentication mechanics, read on!"
+msgstr "Если вам любопытены механизмы авторизации, читайте дальше!"
+
+#. type: cindex
+#: doc/guix.texi:4928
+#, no-wrap
+msgid "personal packages (channels)"
+msgstr "собственные пакеты (каналы)"
+
+#. type: cindex
+#: doc/guix.texi:4929
+#, no-wrap
+msgid "channels, for personal packages"
+msgstr "каналы, для собственных пакетов"
+
+#. type: Plain text
+#: doc/guix.texi:4937
+#, fuzzy
+#| msgid "You can also specify @emph{additional channels} to pull from.  Let's say you have a bunch of custom package variants or personal packages that you think would make little sense to contribute to the Guix project, but would like to have these packages transparently available to you at the command line.  You would first write modules containing those package definitions (@pxref{Package Modules}), maintain them in a Git repository, and then you and anyone else can use it as an additional channel to get packages from.  Neat, no?"
+msgid "Let's say you have a bunch of custom package variants or personal packages that you think would make little sense to contribute to the Guix project, but would like to have these packages transparently available to you at the command line.  You would first write modules containing those package definitions (@pxref{Package Modules}), maintain them in a Git repository, and then you and anyone else can use it as an additional channel to get packages from.  Neat, no?"
+msgstr "Можно также задать @emph{дополнительные каналы} для выборки оттуда. Ну, например, у вас ряд собственных вариантов пакетов или собственные пакеты, которые вы считаете не особо важным для отправки в проект Guix, но хотите, чтобы эти пакеты были доступны вам в командной строке прозрачно, без дополнительных действий. Вначале можно написать модули, содержащие определения этих пакетов (@pxref{Package Modules}), затем разместить их в репозитории Git, и тогда вы или кто-либо ещё сможете использовать их в качестве дополнтельного канала для получения пакетов. Красиво, да?"
+
+#. type: quotation
+#: doc/guix.texi:4941 doc/guix.texi:12865 doc/guix.texi:18392
+#: doc/guix.texi:18399
+#, no-wrap
+msgid "Warning"
+msgstr "Внимание"
+
+#. type: quotation
+#: doc/guix.texi:4945
+msgid "Before you, dear user, shout---``woow this is @emph{soooo coool}!''---and publish your personal channel to the world, we would like to share a few words of caution:"
+msgstr "Прежде чем вы крикнете @emph{Ух-ты, это круто!} и опубликуете собственный канал, необходимо учесть некоторые предостережения:"
+
+#. type: itemize
+#: doc/guix.texi:4953
+msgid "Before publishing a channel, please consider contributing your package definitions to Guix proper (@pxref{Contributing}).  Guix as a project is open to free software of all sorts, and packages in Guix proper are readily available to all Guix users and benefit from the project's quality assurance process."
+msgstr "Перед публикацией канала, пожалуйста, рассмотрите возможность поделиться вашими определениями пакетов со сборником Guix (@pxref{Contributing}). Guix, как проект, открыт свободному программному обеспечению любого назначения, и пакеты в сборнике Guix готовы и доступны для использования всеми пользователями Guix и прошли проверку качества."
+
+#. type: itemize
+#: doc/guix.texi:4962
+msgid "When you maintain package definitions outside Guix, we, Guix developers, consider that @emph{the compatibility burden is on you}.  Remember that package modules and package definitions are just Scheme code that uses various programming interfaces (APIs).  We want to remain free to change these APIs to keep improving Guix, possibly in ways that break your channel.  We never change APIs gratuitously, but we will @emph{not} commit to freezing APIs either."
+msgstr "Когда вы выгружаете определение пакета вне Guix, мы, разработчики Guix, полагаем, что вопрос @emph{совместимости ложится на вас}. Учтите, что пакетные модули и определения пакетов --- это код Scheme, который используют различные программные интерфейсы (API). Мы хотим оставить возможность для себя изменять эти API, чтобы продолжить улучшать Guix. И это может привести к поломке вашего канала. Мы никогда не меняем API необоснованно, но всё же мы @emph{не} будем обновлять устаревшие, замороженные API."
+
+#. type: itemize
+#: doc/guix.texi:4966
+msgid "Corollary: if you're using an external channel and that channel breaks, please @emph{report the issue to the channel authors}, not to the Guix project."
+msgstr "Вывод: если вы используете внешний канал, и этот канал ломается, пожалуйста, @emph{заявите об этой проблеме авторам каналв}, но не в проект Guix."
+
+#. type: quotation
+#: doc/guix.texi:4973
+msgid "You've been warned! Having said this, we believe external channels are a practical way to exert your freedom to augment Guix' package collection and to share your improvements, which are basic tenets of @uref{https://www.gnu.org/philosophy/free-sw.html, free software}.  Please email us at @email{guix-devel@@gnu.org} if you'd like to discuss this."
+msgstr "Вы предупреждены! Обозначив это, мы верим, что внешние каналы --- это способ для вас проявлять свою свободу и вместе с тем расширять коллекцию пакетов Guix и делиться улучшениями, что является основными догматами @uref{https://www.gnu.org/philosophy/free-sw.ru.html, свободного программного обеспечения}. Пожалуйста, свяжитесь с нами по e-mail @email{guix-devel@@gnu.org}, если вы хотите обсудить это."
+
+#. type: Plain text
+#: doc/guix.texi:4985
+msgid "To create a channel, create a Git repository containing your own package modules and make it available.  The repository can contain anything, but a useful channel will contain Guile modules that export packages.  Once you start using a channel, Guix will behave as if the root directory of that channel's Git repository has been added to the Guile load path (@pxref{Load Paths,,, guile, GNU Guile Reference Manual}).  For example, if your channel contains a file at @file{my-packages/my-tools.scm} that defines a Guile module, then the module will be available under the name @code{(my-packages my-tools)}, and you will be able to use it like any other module (@pxref{Modules,,, guile, GNU Guile Reference Manual})."
+msgstr "Чтобы создать канал, создайте репозиторий Git, содержащий ваши собственные пакетные модули, и сделайте его доступным. Репозиторий может содержать что-либо, но полезный канал будет содержать модули Guile, экспортирующие пакеты. Когда вы начали использовать канал, Guix будет работать, как будто корневая директория репозитория Git этого канала добавлена в путь загрузки Guile (@pxref{Load Paths,,, guile, GNU Guile Reference Manual}). Например, если ваш канал содержит файл @file{my-packages/my-tools.scm}, который определяет модуль Guile, тогда модуль будет доступен под именем @code{(my-packages my-tools)}, и вы сможете использовать его, как любой другой модуль (@pxref{Modules,,, guile, GNU Guile Reference Manual})."
+
+#. type: Plain text
+#: doc/guix.texi:4990
+msgid "As a channel author, consider bundling authentication material with your channel so that users can authenticate it.  @xref{Channel Authentication}, and @ref{Specifying Channel Authorizations}, for info on how to do it."
+msgstr "Как автор канала, рассмотрите возможность объединения материалов для аутентификации с вашим каналом, чтобы пользователи могли его аутентифицировать.  @xref{Channel Authentication} и @ref{Specifying Channel Authorizations} для получения информации о том, как это сделать."
 
 #. type: cindex
-#: doc/guix.texi:4651
+#: doc/guix.texi:4995
+#, no-wrap
+msgid "subdirectory, channels"
+msgstr "подкаталог, каналы"
+
+#. type: Plain text
+#: doc/guix.texi:4999
+msgid "As a channel author, you may want to keep your channel modules in a sub-directory.  If your modules are in the sub-directory @file{guix}, you must add a meta-data file @file{.guix-channel} that contains:"
+msgstr "Как автор канала, вы можете хранить модули канала в подкаталоге. Если ваши модули находятся в подкаталоге @file{guix}, вы должны добавить файл метаданных @file{.guix-channel}, который содержит:"
+
+#. type: lisp
+#: doc/guix.texi:5004
+#, no-wrap
+msgid ""
+"(channel\n"
+"  (version 0)\n"
+"  (directory \"guix\"))\n"
+msgstr ""
+"(channel\n"
+"  (version 0)\n"
+"  (directory \"guix\"))\n"
+
+#. type: cindex
+#: doc/guix.texi:5009
+#, no-wrap
+msgid "dependencies, channels"
+msgstr "зависимости, каналы"
+
+#. type: cindex
+#: doc/guix.texi:5010
+#, no-wrap
+msgid "meta-data, channels"
+msgstr "метаданные, каналы"
+
+#. type: Plain text
+#: doc/guix.texi:5015
+msgid "Channel authors may decide to augment a package collection provided by other channels.  They can declare their channel to be dependent on other channels in a meta-data file @file{.guix-channel}, which is to be placed in the root of the channel repository."
+msgstr "Авторы канала могут решить расширить коллекцию пакетов пакетами, которые поставляются другими каналами. Они могут объявить, что их канал зависит от других каналов, в файле метаданных @file{.guix-channel}, который нужно разместить в корне репозитория канала."
+
+#. type: Plain text
+#: doc/guix.texi:5017
+msgid "The meta-data file should contain a simple S-expression like this:"
+msgstr "Файл метаданных должен содержать простое выражение S-expression как это:"
+
+#. type: lisp
+#: doc/guix.texi:5025
+#, no-wrap
+msgid ""
+"(channel\n"
+" (version 0)\n"
+" (dependencies\n"
+"  (channel\n"
+"   (name 'some-collection)\n"
+"   (url \"https://example.org/first-collection.git\")\n"
+"\n"
+msgstr ""
+"(channel\n"
+" (version 0)\n"
+" (dependencies\n"
+"  (channel\n"
+"   (name 'some-collection)\n"
+"   (url \"https://example.org/first-collection.git\")\n"
+
+#. type: lisp
+#: doc/guix.texi:5037
+#, no-wrap
+msgid ""
+"   ;; The 'introduction' bit below is optional: you would\n"
+"   ;; provide it for dependencies that can be authenticated.\n"
+"   (introduction\n"
+"    (channel-introduction\n"
+"      (version 0)\n"
+"      (commit \"a8883b58dc82e167c96506cf05095f37c2c2c6cd\")\n"
+"      (signer \"CABB A931 C0FF EEC6 900D  0CFB 090B 1199 3D9A EBB5\"))))\n"
+"  (channel\n"
+"   (name 'some-other-collection)\n"
+"   (url \"https://example.org/second-collection.git\")\n"
+"   (branch \"testing\"))))\n"
+msgstr ""
+"   ;; The 'introduction' bit below is optional: you would\n"
+"   ;; provide it for dependencies that can be authenticated.\n"
+"   (introduction\n"
+"    (channel-introduction\n"
+"      (version 0)\n"
+"      (commit \"a8883b58dc82e167c96506cf05095f37c2c2c6cd\")\n"
+"      (signer \"CABB A931 C0FF EEC6 900D  0CFB 090B 1199 3D9A EBB5\"))))\n"
+"  (channel\n"
+"   (name 'some-other-collection)\n"
+"   (url \"https://example.org/second-collection.git\")\n"
+"   (branch \"testing\"))))\n"
+
+#. type: Plain text
+#: doc/guix.texi:5043
+msgid "In the above example this channel is declared to depend on two other channels, which will both be fetched automatically.  The modules provided by the channel will be compiled in an environment where the modules of all these declared channels are available."
+msgstr "В примере выше объявлен канал, который зависит от двух других каналов, из которых оба будут скачаны автоматически. Модули, предоставляемые каналом, будут скомпилированы в окружении, в котором доступны модули всех этих каналов."
+
+#. type: Plain text
+#: doc/guix.texi:5047
+msgid "For the sake of reliability and maintainability, you should avoid dependencies on channels that you don't control, and you should aim to keep the number of dependencies to a minimum."
+msgstr "В целях воспроизводимости и сопровождения вы должны избегать зависимостей от каналов, которые вы не контролируете, и вы должны стремиться минимизировать число зависимостей."
+
+#. type: cindex
+#: doc/guix.texi:5051
+#, no-wrap
+msgid "channel authorizations"
+msgstr "авторизации канала"
+
+#. type: anchor{#1}
+#: doc/guix.texi:5065
+msgid "channel-authorizations"
+msgstr "channel-authorizations"
+
+#. type: Plain text
+#: doc/guix.texi:5065
+msgid "As we saw above, Guix ensures the source code it pulls from channels comes from authorized developers.  As a channel author, you need to specify the list of authorized developers in the @file{.guix-authorizations} file in the channel's Git repository.  The authentication rule is simple: each commit must be signed by a key listed in the @file{.guix-authorizations} file of its parent commit(s)@footnote{Git commits form a @dfn{directed acyclic graph} (DAG).  Each commit can have zero or more parents; ``regular'' commits have one parent and merge commits have two parent commits.  Read @uref{https://eagain.net/articles/git-for-computer-scientists/, @i{Git for Computer Scientists}} for a great overview.} The @file{.guix-authorizations} file looks like this:"
+msgstr "Как мы видели выше, Guix гарантирует, что исходный код, который он получает из каналов, поступает от авторизованных разработчиков.  Как автор канала, вам необходимо указать список авторизованных разработчиков в файле @file{.guix-authorizations} в репозитории Git канала.  Правило аутентификации простое: каждый коммит должен быть подписан ключом, указанным в файле @file{.guix-authorizations} его родительского коммита(ов) @footnote{Git коммитит из @dfn{directed acyclic graph}(DAG).  У каждого коммита может быть ноль или более родителей; ``обычные'' коммиты имеют одного родителя, а ``merge'' коммиты имеют два родительских коммита.  Прочтите @uref{https://eagain.net/articles/git-for-computer-scientists/, @i{Git for Computer Scientists}}, чтобы получить больше информации.} файл @file{.guix-authorizations} выглядит так:"
+
+#. type: lisp
+#: doc/guix.texi:5068
+#, no-wrap
+msgid ""
+";; Example '.guix-authorizations' file.\n"
+"\n"
+msgstr ""
+";; Пример '.guix-authorizations' файла.\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:5071
+#, no-wrap
+msgid ""
+"(authorizations\n"
+" (version 0)               ;current file format version\n"
+"\n"
+msgstr ""
+"(authorizations\n"
+" (version 0)               ;current file format version\n"
+
+#. type: lisp
+#: doc/guix.texi:5078
+#, no-wrap
+msgid ""
+" ((\"AD17 A21E F8AE D8F1 CC02  DBD9 F8AE D8F1 765C 61E3\"\n"
+"   (name \"alice\"))\n"
+"  (\"2A39 3FFF 68F4 EF7A 3D29  12AF 68F4 EF7A 22FB B2D5\"\n"
+"   (name \"bob\"))\n"
+"  (\"CABB A931 C0FF EEC6 900D  0CFB 090B 1199 3D9A EBB5\"\n"
+"   (name \"charlie\"))))\n"
+msgstr ""
+" ((\"AD17 A21E F8AE D8F1 CC02  DBD9 F8AE D8F1 765C 61E3\"\n"
+"   (name \"alice\"))\n"
+"  (\"2A39 3FFF 68F4 EF7A 3D29  12AF 68F4 EF7A 22FB B2D5\"\n"
+"   (name \"bob\"))\n"
+"  (\"CABB A931 C0FF EEC6 900D  0CFB 090B 1199 3D9A EBB5\"\n"
+"   (name \"charlie\"))))\n"
+
+#. type: Plain text
+#: doc/guix.texi:5082
+msgid "Each fingerprint is followed by optional key/value pairs, as in the example above.  Currently these key/value pairs are ignored."
+msgstr "За каждым отпечатком следуют необязательные пары ключ/значение, как в примере выше.  В настоящее время эти пары ключ/значение игнорируются."
+
+#. type: Plain text
+#: doc/guix.texi:5087
+msgid "This authentication rule creates a chicken-and-egg issue: how do we authenticate the first commit? Related to that: how do we deal with channels whose repository history contains unsigned commits and lack @file{.guix-authorizations}? And how do we fork existing channels?"
+msgstr "Это правило аутентификации создает проблему с курицей и яйцом: как мы аутентифицируем первый коммит?  В связи с этим: как нам поступать с каналами, история репозитория которых содержит неподписанные коммиты и не имеет @file{.guix-authorizations}?  И как нам разветвлять существующие каналы?"
+
+#. type: cindex
+#: doc/guix.texi:5088
+#, no-wrap
+msgid "channel introduction"
+msgstr "введение канала"
+
+#. type: Plain text
+#: doc/guix.texi:5095
+msgid "Channel introductions answer these questions by describing the first commit of a channel that should be authenticated.  The first time a channel is fetched with @command{guix pull} or @command{guix time-machine}, the command looks up the introductory commit and verifies that it is signed by the specified OpenPGP key.  From then on, it authenticates commits according to the rule above."
+msgstr "Channel introductory отвечает на данные вопросы, описывая первый коммит канала, который должен быть аутентифицирован.  При первом вызове канала с помощью @command{guix pull} или @command{guix time-machine} команда ищет introductory коммит и проверяет, что он подписан указанным ключом OpenPGP.  С этого момента он аутентифицирует коммиты в соответствии с приведенным выше правилом."
+
+#. type: Plain text
+#: doc/guix.texi:5102
+msgid "Additionally, your channel must provide all the OpenPGP keys that were ever mentioned in @file{.guix-authorizations}, stored as @file{.key} files, which can be either binary or ``ASCII-armored''.  By default, those @file{.key} files are searched for in the branch named @code{keyring} but you can specify a different branch name in @code{.guix-channel} like so:"
+msgstr "Кроме того, ваш канал должен предоставлять все ключи OpenPGP, которые когда-либо упоминались в @file{.guix-authorizations}, хранящиеся как файлы @file{.key}, которые могут быть либо двоичными, либо ``ASCII-armored''.  По умолчанию эти файлы @file{.key} ищутся в ветке с именем @code{keyring}, но вы можете указать другое имя ветки в @code{.guix-channel} следующим образом:"
+
+#. type: lisp
+#: doc/guix.texi:5107
+#, no-wrap
+msgid ""
+"(channel\n"
+"  (version 0)\n"
+"  (keyring-reference \"my-keyring-branch\"))\n"
+msgstr ""
+"(channel\n"
+"  (version 0)\n"
+"  (keyring-reference \"my-keyring-branch\"))\n"
+
+#. type: Plain text
+#: doc/guix.texi:5111
+msgid "To summarize, as the author of a channel, there are three things you have to do to allow users to authenticate your code:"
+msgstr "Подытоживая, как автор канала, вы должны сделать три вещи, чтобы позволить другим пользователям авторизовать ваш код:"
+
+#. type: enumerate
+#: doc/guix.texi:5117
+msgid "Export the OpenPGP keys of past and present committers with @command{gpg --export} and store them in @file{.key} files, by default in a branch named @code{keyring} (we recommend making it an @dfn{orphan branch})."
+msgstr "Экспортируйте ключи OpenPGP прошлых и нынешних коммиттеров с помощью @command{gpg --export} и сохраните их в файлах @file{.key}, по умолчанию в ветке с именем @code{keyring} (мы рекомендуем сделать это в @dfn{orphan branch})."
+
+#. type: enumerate
+#: doc/guix.texi:5122
+msgid "Introduce an initial @file{.guix-authorizations} in the channel's repository.  Do that in a signed commit (@pxref{Commit Access}, for information on how to sign Git commits.)"
+msgstr "Добавьте @file{.guix-authorizations} в репозиторий канала.  Сделайте это в подписанном коммите (@pxref{Commit Access}, чтобы узнать, как подписывать коммиты Git)."
+
+#. type: enumerate
+#: doc/guix.texi:5128
+msgid "Advertise the channel introduction, for instance on your channel's web page.  The channel introduction, as we saw above, is the commit/key pair---i.e., the commit that introduced @file{.guix-authorizations}, and the fingerprint of the OpenPGP used to sign it."
+msgstr "Рекламируйте channel introduction, например, на веб-странице вашего канала.  Channel introduction, как мы видели выше, - это пара коммит/ключ, то есть коммит, который представляет @file{.guix-authorizations}, и отпечаток OpenPGP, использованный для его подписи."
+
+#. type: Plain text
+#: doc/guix.texi:5133
+msgid "Before pushing to your public Git repository, you can run @command{guix git-authenticate} to verify that you did sign all the commits you are about to push with an authorized key:"
+msgstr "Перед отправкой в ваш общедоступный репозиторий Git вы можете запустить @command{guix git-authenticate}, чтобы убедиться, что вы подписали все коммиты, которые собираетесь отправить, авторизованным ключом:"
+
+#. type: example
+#: doc/guix.texi:5136
+#, no-wrap
+msgid "guix git authenticate @var{commit} @var{signer}\n"
+msgstr "guix git authenticate @var{commit} @var{signer}\n"
+
+#. type: Plain text
+#: doc/guix.texi:5141
+msgid "where @var{commit} and @var{signer} are your channel introduction.  @xref{Invoking guix git authenticate}, for details."
+msgstr "где @var{commit} и @var{signer} являются вашим channel introduction.  @xref{Invoking guix git authenticate}, подробнее."
+
+#. type: Plain text
+#: doc/guix.texi:5148
+msgid "Publishing a signed channel requires discipline: any mistake, such as an unsigned commit or a commit signed by an unauthorized key, will prevent users from pulling from your channel---well, that's the whole point of authentication! Pay attention to merges in particular: merge commits are considered authentic if and only if they are signed by a key present in the @file{.guix-authorizations} file of @emph{both} branches."
+msgstr "Публикация подписанного канала требует дисциплины: любая ошибка, такая как неподписанная фиксация или фиксация, подписанная неавторизованным ключом, не позволит пользователям pull'ить с вашего канала - в этом весь смысл аутентификации!  Обратите внимание на merge, в частности: merge коммиты считаются аутентичными, если и только если они подписаны ключом, присутствующим в файле @file{.guix-authorizations} @emph{обоих} веток."
+
+#. type: cindex
+#: doc/guix.texi:5152
+#, no-wrap
+msgid "primary URL, channels"
+msgstr "основной URL, каналы"
+
+#. type: Plain text
+#: doc/guix.texi:5155
+msgid "Channel authors can indicate the primary URL of their channel's Git repository in the @file{.guix-channel} file, like so:"
+msgstr "Авторы каналов могут указать основной URL-адрес репозитория Git своего канала в файле @file{.guix-channel}, например:"
+
+#. type: lisp
+#: doc/guix.texi:5160
+#, no-wrap
+msgid ""
+"(channel\n"
+"  (version 0)\n"
+"  (url \"https://example.org/guix.git\"))\n"
+msgstr ""
+"(channel\n"
+"  (version 0)\n"
+"  (url \"https://example.org/guix.git\"))\n"
+
+#. type: Plain text
+#: doc/guix.texi:5167
+msgid "This allows @command{guix pull} to determine whether it is pulling code from a mirror of the channel; when that is the case, it warns the user that the mirror might be stale and displays the primary URL.  That way, users cannot be tricked into fetching code from a stale mirror that does not receive security updates."
+msgstr "Это позволяет @command{guix pull} определять, pull'ит ли он код из зеркала канала; в этом случае он предупреждает пользователя о том, что зеркало может быть устаревшим, и отображает основной URL-адрес.  Таким образом, пользователей нельзя обмануть, заставив их получить код с устаревшего зеркала, которое не получает обновлений безопасности."
+
+#. type: Plain text
+#: doc/guix.texi:5171
+msgid "This feature only makes sense for authenticated repositories, such as the official @code{guix} channel, for which @command{guix pull} ensures the code it fetches is authentic."
+msgstr "Эта функция имеет смысл только для аутентифицированных репозиториев, таких как официальный канал @code{guix}, для которого @command{guix pull} гарантирует, что полученный код аутентичен."
+
+#. type: cindex
+#: doc/guix.texi:5175
+#, fuzzy, no-wrap
+msgid "news, for channels"
+msgstr "новости, для каналов"
+
+#. type: Plain text
+#: doc/guix.texi:5179
+msgid "Channel authors may occasionally want to communicate to their users information about important changes in the channel.  You'd send them all an email, but that's not convenient."
+msgstr "Авторы канала могут захотеть сообщить своим пользователям информацию о важных изменениях в канале. Вы можете отправить им письмо по электронной почте, но это не удобно."
+
+#. type: Plain text
+#: doc/guix.texi:5184
+msgid "Instead, channels can provide a @dfn{news file}; when the channel users run @command{guix pull}, that news file is automatically read and @command{guix pull --news} can display the announcements that correspond to the new commits that have been pulled, if any."
+msgstr "Вместо этого каналы могут предоставлять @dfn{файл новостей}; когда пользователи канала запускают @command{guix pull}, этот файл новостей автоматически читается, и @command{guix pull --news} может отображать объявления, которые соответствуют новым зафиксированным коммитам, если таковые имеются."
+
+#. type: Plain text
+#: doc/guix.texi:5187
+msgid "To do that, channel authors must first declare the name of the news file in their @file{.guix-channel} file:"
+msgstr "Для этого авторы каналов должны сначала объявить имя файла новостей в своем файле @file{.guix-channel}:"
+
+#. type: lisp
+#: doc/guix.texi:5192
+#, no-wrap
+msgid ""
+"(channel\n"
+"  (version 0)\n"
+"  (news-file \"etc/news.txt\"))\n"
+msgstr ""
+"(channel\n"
+"  (version 0)\n"
+"  (news-file \"etc/news.txt\"))\n"
+
+#. type: Plain text
+#: doc/guix.texi:5196
+msgid "The news file itself, @file{etc/news.txt} in this example, must look something like this:"
+msgstr "Сам файл новостей, @file{etc/news.txt} в этом примере, должен выглядеть примерно так:"
+
+#. type: lisp
+#: doc/guix.texi:5209
+#, no-wrap
+msgid ""
+"(channel-news\n"
+"  (version 0)\n"
+"  (entry (tag \"the-bug-fix\")\n"
+"         (title (en \"Fixed terrible bug\")\n"
+"                (fr \"Oh la la\"))\n"
+"         (body (en \"@@emph@{Good news@}!  It's fixed!\")\n"
+"               (eo \"Certe ĝi pli bone funkcias nun!\")))\n"
+"  (entry (commit \"bdcabe815cd28144a2d2b4bc3c5057b051fa9906\")\n"
+"         (title (en \"Added a great package\")\n"
+"                (ca \"Què vol dir guix?\"))\n"
+"         (body (en \"Don't miss the @@code@{hello@} package!\"))))\n"
+msgstr ""
+"(channel-news\n"
+"  (version 0)\n"
+"  (entry (tag \"the-bug-fix\")\n"
+"         (title (en \"Fixed terrible bug\")\n"
+"                (fr \"Oh la la\"))\n"
+"         (body (en \"@@emph@{Good news@}!  It's fixed!\")\n"
+"               (eo \"Certe ĝi pli bone funkcias nun!\")))\n"
+"  (entry (commit \"bdcabe815cd28144a2d2b4bc3c5057b051fa9906\")\n"
+"         (title (en \"Added a great package\")\n"
+"                (ca \"Què vol dir guix?\"))\n"
+"         (body (en \"Don't miss the @@code@{hello@} package!\"))))\n"
+
+#. type: Plain text
+#: doc/guix.texi:5216
+msgid "While the news file is using the Scheme syntax, avoid naming it with a @file{.scm} extension or else it will get picked up when building the channel and yield an error since it is not a valid module.  Alternatively, you can move the channel module to a subdirectory and store the news file in another directory."
+msgstr "В то время как файл новостей использует синтаксис Scheme, избегайте называть его расширением @file{.scm}, иначе он будет выбран при построении канала и выдаст ошибку, поскольку это недопустимый модуль.  Кроме того, вы можете переместить модуль канала в подкаталог и сохранить файл новостей в другом каталоге."
+
+#. type: Plain text
+#: doc/guix.texi:5221
+msgid "The file consists of a list of @dfn{news entries}.  Each entry is associated with a commit or tag: it describes changes made in this commit, possibly in preceding commits as well.  Users see entries only the first time they obtain the commit the entry refers to."
+msgstr "Файл состоит из списка @dfn{news entries}. Каждая запись связана с коммитом или тегом: она описывает изменения, сделанные в этом коммите, возможно, также и в предыдущих коммитах. Пользователи видят записи только при первом получении коммита, на который ссылается запись."
+
+#. type: Plain text
+#: doc/guix.texi:5227
+msgid "The @code{title} field should be a one-line summary while @code{body} can be arbitrarily long, and both can contain Texinfo markup (@pxref{Overview,,, texinfo, GNU Texinfo}).  Both the title and body are a list of language tag/message tuples, which allows @command{guix pull} to display news in the language that corresponds to the user's locale."
+msgstr "Поле @code{title} должно быть однострочным, а @code{body} может быть произвольно длинным, и оба могут содержать Texinfo разметку (@pxref{Overview,,, texinfo, GNU Texinfo}). И заголовок, и тело являются списком языковых тегов/кортежей сообщений, что позволяет комманде @command{guix pull} отображать новости на языке, соответствующем языку пользователя."
+
+#. type: Plain text
+#: doc/guix.texi:5233
+msgid "If you want to translate news using a gettext-based workflow, you can extract translatable strings with @command{xgettext} (@pxref{xgettext Invocation,,, gettext, GNU Gettext Utilities}).  For example, assuming you write news entries in English first, the command below creates a PO file containing the strings to translate:"
+msgstr "Если вы хотите перевести новости, используя рабочий процесс на основе gettext, вы можете извлечь переводимые строки с помощью @command{xgettext} (@pxref{xgettext Invocation,,, gettext, GNU Gettext Utilities}). Например, если вы сначала пишете новости на английском языке, команда ниже создает PO-файл, содержащий строки для перевода:"
+
+#. type: example
+#: doc/guix.texi:5236
+#, fuzzy, no-wrap
+msgid "xgettext -o news.po -l scheme -ken etc/news.txt\n"
+msgstr "xgettext -o news.po -l scheme -ken etc/news.txt\n"
+
+#. type: Plain text
+#: doc/guix.texi:5240
+msgid "To sum up, yes, you could use your channel as a blog.  But beware, this is @emph{not quite} what your users might expect."
+msgstr "Подводя итог, да, вы можете использовать свой канал в качестве блога. Но будьте осторожны, это @emph{не совсем} то, что могут ожидать ваши пользователи."
+
+#. type: cindex
+#: doc/guix.texi:5246
 #, no-wrap
 msgid "software development"
 msgstr "разработка программного обеспечения"
 
 #. type: Plain text
-#: doc/guix.texi:4655
+#: doc/guix.texi:5250
 msgid "If you are a software developer, Guix provides tools that you should find helpful---independently of the language you're developing in.  This is what this chapter is about."
 msgstr "Если вы являетесь разработчиком программного обеспечения, Guix предоставляет инструменты, которые вы можете найти полезными, независимо от языка разработки. Об этом данный раздел."
 
 #. type: Plain text
-#: doc/guix.texi:4661
+#: doc/guix.texi:5256
 msgid "The @command{guix environment} command provides a convenient way to set up @dfn{development environments} containing all the dependencies and tools necessary to work on the software package of your choice.  The @command{guix pack} command allows you to create @dfn{application bundles} that can be easily distributed to users who do not run Guix."
 msgstr "Команда @command{guix environment} предоставляет удобный способ установить @dfn{окружение разработки} на ваш выбор, содержащее все зависимости и инструменты, необходимые для работы с пакетом программы. Команда @command{guix pack} позволяет создавать @dfn{наборы приложений}, которые могут легко распространяться для пользователей, которые не используют Guix."
 
 #. type: section
-#: doc/guix.texi:4668
+#: doc/guix.texi:5265
 #, no-wrap
 msgid "Invoking @command{guix environment}"
 msgstr "Вызов @command{guix environment}"
 
 #. type: cindex
-#: doc/guix.texi:4670
+#: doc/guix.texi:5267
 #, no-wrap
 msgid "reproducible build environments"
 msgstr "воспроизводимые окружения сборки"
 
 #. type: cindex
-#: doc/guix.texi:4671
+#: doc/guix.texi:5268
 #, no-wrap
 msgid "development environments"
 msgstr "окружения разработки"
 
 #. type: command{#1}
-#: doc/guix.texi:4672
+#: doc/guix.texi:5269
 #, no-wrap
 msgid "guix environment"
 msgstr "guix environment"
 
 #. type: cindex
-#: doc/guix.texi:4673
+#: doc/guix.texi:5270
 #, no-wrap
 msgid "environment, package build environment"
 msgstr "окружение, окружение сборки пакета"
 
 #. type: Plain text
-#: doc/guix.texi:4679
+#: doc/guix.texi:5276
 msgid "The purpose of @command{guix environment} is to assist hackers in creating reproducible development environments without polluting their package profile.  The @command{guix environment} tool takes one or more packages, builds all of their inputs, and creates a shell environment to use them."
 msgstr "Цель @command{guix environment} --- помощь программистам в создании окружения разработки, которое можно повторять, без влияния на профили пакетов. Инструмент @command{guix environment} принимает один или более пакетов, собирает все входные данные для них и создаёт окружение оболочки для их использования."
 
 #. type: example
-#: doc/guix.texi:4684
+#: doc/guix.texi:5281
 #, no-wrap
 msgid "guix environment @var{options} @var{package}@dots{}\n"
 msgstr "guix environment @var{options} @var{package}@dots{}\n"
 
 #. type: Plain text
-#: doc/guix.texi:4688
+#: doc/guix.texi:5285
 msgid "The following example spawns a new shell set up for the development of GNU@tie{}Guile:"
 msgstr "Следующий пример порождает новую оболочку, установленную для разработки GNU@tie{}Guile:"
 
 #. type: example
-#: doc/guix.texi:4691
+#: doc/guix.texi:5288
 #, no-wrap
 msgid "guix environment guile\n"
 msgstr "guix environment guile\n"
 
 #. type: Plain text
-#: doc/guix.texi:4708
-msgid "If the needed dependencies are not built yet, @command{guix environment} automatically builds them.  The environment of the new shell is an augmented version of the environment that @command{guix environment} was run in.  It contains the necessary search paths for building the given package added to the existing environment variables.  To create a ``pure'' environment, in which the original environment variables have been unset, use the @code{--pure} option@footnote{Users sometimes wrongfully augment environment variables such as @code{PATH} in their @file{~/.bashrc} file.  As a consequence, when @code{guix environment} launches it, Bash may read @file{~/.bashrc}, thereby introducing ``impurities'' in these environment variables.  It is an error to define such environment variables in @file{.bashrc}; instead, they should be defined in @file{.bash_profile}, which is sourced only by log-in shells.  @xref{Bash Startup Files,,, bash, The GNU Bash Reference Manual}, for details on Bash start-up files.}."
-msgstr "Если необходимые зависимости ещё не собраны, @command{guix environment} автоматически собирает их. Окружение новой оболочки является приращённой версией окружения, которое создаётся командой @command{guix environment}. Оно создаёт необходимые пути поиска для сборки данного пакета и добавляет их к существующим переменным окружения. Чтобы создать \"чистое\" окружение, в котором исходные переменные окружения не установлены, используйте опцию @code{--pure} option@footnote{Пользователи обычно некорректно расширяют переменные окружения, как например, @code{PATH}, в их файлах @file{~/.bashrc}. Как следствие, @code{guix environment} запускает их, Bash может читать @file{~/.bashrc}, производя таким образом \"нечистоту\" в этих переменных окружения. Ошибочно определять такие переменные окружения в @file{.bashrc}; вместо этого они должны быть определены в @file{.bash_profile}, который вызывается оболочками только при авторизации. Смотрите @xref{Bash Startup Files,,, bash, The GNU Bash Reference Manual} для подробной информации о файлах Bash, вызываемых при входе.}."
+#: doc/guix.texi:5305
+msgid "If the needed dependencies are not built yet, @command{guix environment} automatically builds them.  The environment of the new shell is an augmented version of the environment that @command{guix environment} was run in.  It contains the necessary search paths for building the given package added to the existing environment variables.  To create a ``pure'' environment, in which the original environment variables have been unset, use the @option{--pure} option@footnote{Users sometimes wrongfully augment environment variables such as @env{PATH} in their @file{~/.bashrc} file.  As a consequence, when @command{guix environment} launches it, Bash may read @file{~/.bashrc}, thereby introducing ``impurities'' in these environment variables.  It is an error to define such environment variables in @file{.bashrc}; instead, they should be defined in @file{.bash_profile}, which is sourced only by log-in shells.  @xref{Bash Startup Files,,, bash, The GNU Bash Reference Manual}, for details on Bash start-up files.}."
+msgstr "Если необходимые зависимости еще не собраны, @command{guix environment} автоматически построит их.  Среда новой оболочки - это расширенная версия среды, в которой была запущена @command{guix environment}.  Она содержит необходимые пути поиска для сборки данного пакета, добавленные к существующим переменным среды.  Чтобы создать ``чистую'' среду, в которой исходные переменные среды не были установлены, используйте параметр @option{--pure} @footnote{Пользователи иногда ошибочно изменяют переменные среды, такие как @env{PATH}, в своем @file{~/.bashrc} файле.  Как следствие, когда @command{guix environment} запускает его, Bash может читать @file{~/.bashrc}, тем самым вводя ``примеси'' в эти переменные среды.  Ошибочно определять такие переменные среды в @file{.bashrc}; вместо этого они должны быть определены в @file{.bash_profile}, источником которого являются только оболочки входа в систему.  @xref{Bash Startup Files,,, bash, The GNU Bash Reference Manual}, для получения подробной информации о файлах запуска Bash.}."
 
 #. type: vindex
-#: doc/guix.texi:4709
+#: doc/guix.texi:5306
 #, no-wrap
 msgid "GUIX_ENVIRONMENT"
 msgstr "GUIX_ENVIRONMENT"
 
 #. type: Plain text
-#: doc/guix.texi:4715
-msgid "@command{guix environment} defines the @code{GUIX_ENVIRONMENT} variable in the shell it spawns; its value is the file name of the profile of this environment.  This allows users to, say, define a specific prompt for development environments in their @file{.bashrc} (@pxref{Bash Startup Files,,, bash, The GNU Bash Reference Manual}):"
+#: doc/guix.texi:5312
+#, fuzzy
+#| msgid "@command{guix environment} defines the @code{GUIX_ENVIRONMENT} variable in the shell it spawns; its value is the file name of the profile of this environment.  This allows users to, say, define a specific prompt for development environments in their @file{.bashrc} (@pxref{Bash Startup Files,,, bash, The GNU Bash Reference Manual}):"
+msgid "@command{guix environment} defines the @env{GUIX_ENVIRONMENT} variable in the shell it spawns; its value is the file name of the profile of this environment.  This allows users to, say, define a specific prompt for development environments in their @file{.bashrc} (@pxref{Bash Startup Files,,, bash, The GNU Bash Reference Manual}):"
 msgstr "@command{guix environment} определяет переменную @code{GUIX_ENVIRONMENT} в оболочке, которую создаёт; её значением является имя файла профиля этого окружения. Это позволяет пользователям, скажем, определить специфичные значения окружений разработки в @file{.bashrc} (@pxref{Bash Startup Files,,, bash, The GNU Bash Reference Manual}):"
 
 #. type: example
-#: doc/guix.texi:4721
+#: doc/guix.texi:5318
 #, no-wrap
 msgid ""
 "if [ -n \"$GUIX_ENVIRONMENT\" ]\n"
@@ -10355,287 +11681,330 @@ msgstr ""
 "fi\n"
 
 #. type: Plain text
-#: doc/guix.texi:4725
+#: doc/guix.texi:5322
 msgid "...@: or to browse the profile:"
 msgstr "...@: или просмотеть профиль:"
 
 #. type: example
-#: doc/guix.texi:4728
+#: doc/guix.texi:5325
 #, no-wrap
 msgid "$ ls \"$GUIX_ENVIRONMENT/bin\"\n"
 msgstr "$ ls \"$GUIX_ENVIRONMENT/bin\"\n"
 
 #. type: Plain text
-#: doc/guix.texi:4734
+#: doc/guix.texi:5331
 msgid "Additionally, more than one package may be specified, in which case the union of the inputs for the given packages are used.  For example, the command below spawns a shell where all of the dependencies of both Guile and Emacs are available:"
 msgstr "Дополним, что может быть указано более одного пакета, в таком случае используется объединённые входные данные для указанных пакетов. Например, команда ниже порождает оболочку, в котором доступны все зависимости, как Guile, так и Emacs:"
 
 #. type: example
-#: doc/guix.texi:4737
+#: doc/guix.texi:5334
 #, no-wrap
 msgid "guix environment guile emacs\n"
 msgstr "guix environment guile emacs\n"
 
 #. type: Plain text
-#: doc/guix.texi:4742
+#: doc/guix.texi:5339
 msgid "Sometimes an interactive shell session is not desired.  An arbitrary command may be invoked by placing the @code{--} token to separate the command from the rest of the arguments:"
 msgstr "Иногда интерактивная сессия оболочки не нужна. Можно вызвать произвольную команду при указании токена @code{--}, который отделяет команду от остальных аргументов:"
 
 #. type: example
-#: doc/guix.texi:4745
+#: doc/guix.texi:5342
 #, no-wrap
 msgid "guix environment guile -- make -j4\n"
 msgstr "guix environment guile -- make -j4\n"
 
 #. type: Plain text
-#: doc/guix.texi:4751
+#: doc/guix.texi:5348
 msgid "In other situations, it is more convenient to specify the list of packages needed in the environment.  For example, the following command runs @command{python} from an environment containing Python@tie{}2.7 and NumPy:"
 msgstr "В других ситуациях удобнее указать список паетов, необходимых для окружения. Например, следующая команда запускает @command{python} из окружения, содержащего Python@tie{}2.7 и NumPy:"
 
 #. type: example
-#: doc/guix.texi:4754
+#: doc/guix.texi:5351
 #, no-wrap
 msgid "guix environment --ad-hoc python2-numpy python-2.7 -- python\n"
 msgstr "guix environment --ad-hoc python2-numpy python-2.7 -- python\n"
 
 #. type: Plain text
-#: doc/guix.texi:4765
-msgid "Furthermore, one might want the dependencies of a package and also some additional packages that are not build-time or runtime dependencies, but are useful when developing nonetheless.  Because of this, the @code{--ad-hoc} flag is positional.  Packages appearing before @code{--ad-hoc} are interpreted as packages whose dependencies will be added to the environment.  Packages appearing after are interpreted as packages that will be added to the environment directly.  For example, the following command creates a Guix development environment that additionally includes Git and strace:"
+#: doc/guix.texi:5362
+#, fuzzy
+#| msgid "Furthermore, one might want the dependencies of a package and also some additional packages that are not build-time or runtime dependencies, but are useful when developing nonetheless.  Because of this, the @code{--ad-hoc} flag is positional.  Packages appearing before @code{--ad-hoc} are interpreted as packages whose dependencies will be added to the environment.  Packages appearing after are interpreted as packages that will be added to the environment directly.  For example, the following command creates a Guix development environment that additionally includes Git and strace:"
+msgid "Furthermore, one might want the dependencies of a package and also some additional packages that are not build-time or runtime dependencies, but are useful when developing nonetheless.  Because of this, the @option{--ad-hoc} flag is positional.  Packages appearing before @option{--ad-hoc} are interpreted as packages whose dependencies will be added to the environment.  Packages appearing after are interpreted as packages that will be added to the environment directly.  For example, the following command creates a Guix development environment that additionally includes Git and strace:"
 msgstr "Более того, возможно, вам потребуются зависимости пакета, а также некоторые дополнительные пакеты, которые не являются зависимостями процесса сборки или процесса исполнения (работы), но важны при разработке. Для этого и указан флаш @code{--ad-hoc}. Пакеты, обозначенные до @code{--ad-hoc} интерпретируются как пакеты, чьи зависимости будут добавлены в окружение. Пакеты, которые обозначены после @code{--ad-hoc}, интерпретируются как пакеты, которые будут добавлены в окружение непосредственно. Например, следующая команда создаёт окружение разработки Guix, которая в дополнение включает Git и strace:"
 
 #. type: example
-#: doc/guix.texi:4768
+#: doc/guix.texi:5365
 #, fuzzy, no-wrap
 #| msgid "guix environment guix --ad-hoc git strace\n"
 msgid "guix environment --pure guix --ad-hoc git strace\n"
 msgstr "guix environment guix --ad-hoc git strace\n"
 
+#. type: item
+#: doc/guix.texi:5367 doc/guix.texi:5528 doc/guix.texi:12317
+#: doc/guix.texi:30461
+#, no-wrap
+msgid "container"
+msgstr "контейнер"
+
 #. type: Plain text
-#: doc/guix.texi:4777
+#: doc/guix.texi:5375
 msgid "Sometimes it is desirable to isolate the environment as much as possible, for maximal purity and reproducibility.  In particular, when using Guix on a host distro that is not Guix System, it is desirable to prevent access to @file{/usr/bin} and other system-wide resources from the development environment.  For example, the following command spawns a Guile REPL in a ``container'' where only the store and the current working directory are mounted:"
 msgstr "Иногда возникает необходимость изолировать окружение настолько, насколькоо возможно, для максимальной чистоты и воспроизводимости. В частности, при использовании Guix на дистрибутиве, отличном от системы Guix, желательно предотвращать доступ из окружения разработки к @file{/usr/bin} и другим ресурсам системы. Например, следующая команда порождает Guile REPL в \"контейнере\", в котором монтированы только склад и текущая рабочая директория:"
 
 #. type: example
-#: doc/guix.texi:4780
+#: doc/guix.texi:5378
 #, no-wrap
 msgid "guix environment --ad-hoc --container guile -- guile\n"
 msgstr "guix environment --ad-hoc --container guile -- guile\n"
 
 #. type: quotation
-#: doc/guix.texi:4784
-msgid "The @code{--container} option requires Linux-libre 3.19 or newer."
+#: doc/guix.texi:5382
+#, fuzzy
+#| msgid "The @code{--container} option requires Linux-libre 3.19 or newer."
+msgid "The @option{--container} option requires Linux-libre 3.19 or newer."
 msgstr "Опция @code{--container} требует Linux-libre 3.19 или новее."
 
+#. type: cindex
+#: doc/guix.texi:5384
+#, fuzzy, no-wrap
+#| msgid "X.509 Certificates"
+msgid "certificates"
+msgstr "Сертификаты X.509"
+
 #. type: Plain text
-#: doc/guix.texi:4787
+#: doc/guix.texi:5391
+msgid "Another typical use case for containers is to run security-sensitive applications such as a web browser.  To run Eolie, we must expose and share some files and directories; we include @code{nss-certs} and expose @file{/etc/ssl/certs/} for HTTPS authentication; finally we preserve the the @env{DISPLAY} environment variable since containerized graphical applications won't display without it."
+msgstr "Другой типичный вариант использования контейнеров - запуск приложений, чувствительных к безопасности, таких как веб-браузер.  Чтобы запустить Eolie, мы должны предоставить доступ к некоторым файлам и каталогам; мы используем @code{nss-certs} и предоставляем @file{/etc /ssl /certs/} для аутентификации HTTPS; наконец, мы сохраняем переменную среды @env{DISPLAY}, поскольку контейнерные графические приложения не будут отображаться без нее."
+
+#. type: example
+#: doc/guix.texi:5398
+#, no-wrap
+msgid ""
+"guix environment --preserve='^DISPLAY$' --container --network \\\n"
+"  --expose=/etc/machine-id \\\n"
+"  --expose=/etc/ssl/certs/ \\\n"
+"  --share=$HOME/.local/share/eolie/=$HOME/.local/share/eolie/ \\\n"
+"  --ad-hoc eolie nss-certs dbus --  eolie\n"
+msgstr ""
+"guix environment --preserve='^DISPLAY$' --container --network \\\n"
+"  --expose=/etc/machine-id \\\n"
+"  --expose=/etc/ssl/certs/ \\\n"
+"  --share=$HOME/.local/share/eolie/=$HOME/.local/share/eolie/ \\\n"
+"  --ad-hoc eolie nss-certs dbus --  eolie\n"
+
+#. type: Plain text
+#: doc/guix.texi:5401
 msgid "The available options are summarized below."
 msgstr "Доступные опции резюмированы ниже."
 
 #. type: item
-#: doc/guix.texi:4789 doc/guix.texi:5293 doc/guix.texi:8705
-#: doc/guix.texi:26926
+#: doc/guix.texi:5403 doc/guix.texi:5939 doc/guix.texi:10232
+#: doc/guix.texi:30558
 #, no-wrap
 msgid "--root=@var{file}"
 msgstr "--root=@var{file}"
 
 #. type: itemx
-#: doc/guix.texi:4790 doc/guix.texi:5294 doc/guix.texi:8706
-#: doc/guix.texi:26927
+#: doc/guix.texi:5404 doc/guix.texi:5940 doc/guix.texi:10233
+#: doc/guix.texi:30559
 #, no-wrap
 msgid "-r @var{file}"
 msgstr "-r @var{file}"
 
 #. type: cindex
-#: doc/guix.texi:4791
+#: doc/guix.texi:5405
 #, no-wrap
 msgid "persistent environment"
 msgstr "постоянное окружение"
 
 #. type: cindex
-#: doc/guix.texi:4792
+#: doc/guix.texi:5406
 #, no-wrap
 msgid "garbage collector root, for environments"
 msgstr "корень сборщика мусора, для окружений"
 
 #. type: table
-#: doc/guix.texi:4795
+#: doc/guix.texi:5409
 msgid "Make @var{file} a symlink to the profile for this environment, and register it as a garbage collector root."
 msgstr "Создать символическую ссылку @var{file} на профиль этого окружения и зарегистрировать её как корень сборщика мусора."
 
 #. type: table
-#: doc/guix.texi:4798
+#: doc/guix.texi:5412
 msgid "This is useful if you want to protect your environment from garbage collection, to make it ``persistent''."
 msgstr "Это полезно, если вы хотите защитить своё окружение от сборщика мусора, сделать его \"постоянным\"."
 
 #. type: table
-#: doc/guix.texi:4804
+#: doc/guix.texi:5418
 msgid "When this option is omitted, the environment is protected from garbage collection only for the duration of the @command{guix environment} session.  This means that next time you recreate the same environment, you could have to rebuild or re-download packages.  @xref{Invoking guix gc}, for more on GC roots."
 msgstr "Если эта опция пропущена, окружеие защищено от сборщика мусора только на время сессии @command{guix environment}. Это означает, что в следующий раз, когда вы создадите такое же окружение, вам потребуется пересобирать и скачивать пакеты заново. @xref{Invoking guix gc}, for more on GC roots."
 
 #. type: item
-#: doc/guix.texi:4805 doc/guix.texi:5226 doc/guix.texi:8558 doc/guix.texi:9484
-#: doc/guix.texi:10189 doc/guix.texi:26861
+#: doc/guix.texi:5419 doc/guix.texi:5871 doc/guix.texi:10085
+#: doc/guix.texi:11024 doc/guix.texi:11800 doc/guix.texi:30493
 #, no-wrap
 msgid "--expression=@var{expr}"
 msgstr "--expression=@var{expr}"
 
 #. type: itemx
-#: doc/guix.texi:4806 doc/guix.texi:5227 doc/guix.texi:8559 doc/guix.texi:9485
-#: doc/guix.texi:10190 doc/guix.texi:26862
+#: doc/guix.texi:5420 doc/guix.texi:5872 doc/guix.texi:10086
+#: doc/guix.texi:11025 doc/guix.texi:11801 doc/guix.texi:30494
 #, no-wrap
 msgid "-e @var{expr}"
 msgstr "-e @var{expr}"
 
 #. type: table
-#: doc/guix.texi:4809
+#: doc/guix.texi:5423
 msgid "Create an environment for the package or list of packages that @var{expr} evaluates to."
 msgstr "Создать окружение для пакета или списка пакетов, которые соответствуют выражению @var{expr}."
 
 #. type: table
-#: doc/guix.texi:4811
+#: doc/guix.texi:5425
 msgid "For example, running:"
 msgstr "Например, запуск:"
 
 #. type: example
-#: doc/guix.texi:4814
+#: doc/guix.texi:5428
 #, no-wrap
 msgid "guix environment -e '(@@ (gnu packages maths) petsc-openmpi)'\n"
 msgstr "guix environment -e '(@@ (gnu packages maths) petsc-openmpi)'\n"
 
 #. type: table
-#: doc/guix.texi:4818
+#: doc/guix.texi:5432
 msgid "starts a shell with the environment for this specific variant of the PETSc package."
 msgstr "запускает оболочку с окружением для этого специфического варианта пакета PETSc."
 
 #. type: table
-#: doc/guix.texi:4820
+#: doc/guix.texi:5434
 msgid "Running:"
 msgstr "Запуск:"
 
 #. type: example
-#: doc/guix.texi:4823
+#: doc/guix.texi:5437
 #, no-wrap
 msgid "guix environment --ad-hoc -e '(@@ (gnu) %base-packages)'\n"
 msgstr "guix environment --ad-hoc -e '(@@ (gnu) %base-packages)'\n"
 
 #. type: table
-#: doc/guix.texi:4826
+#: doc/guix.texi:5440
 msgid "starts a shell with all the base system packages available."
 msgstr "стартует оболочку со всеми доступными базовыми пакетами."
 
 #. type: table
-#: doc/guix.texi:4829
+#: doc/guix.texi:5443
 msgid "The above commands only use the default output of the given packages.  To select other outputs, two element tuples can be specified:"
 msgstr "Команды выше используют только выход по умолчанию обозначенных пакетов. Чтобы выбрать другие выходы, можно указать два элемента кортежей:"
 
 #. type: example
-#: doc/guix.texi:4832
+#: doc/guix.texi:5446
 #, no-wrap
 msgid "guix environment --ad-hoc -e '(list (@@ (gnu packages bash) bash) \"include\")'\n"
 msgstr "guix environment --ad-hoc -e '(list (@@ (gnu packages bash) bash) \"include\")'\n"
 
 #. type: item
-#: doc/guix.texi:4834
+#: doc/guix.texi:5448
 #, no-wrap
 msgid "--load=@var{file}"
 msgstr "--load=@var{file}"
 
 #. type: itemx
-#: doc/guix.texi:4835
+#: doc/guix.texi:5449
 #, no-wrap
 msgid "-l @var{file}"
 msgstr "-l @var{file}"
 
 #. type: table
-#: doc/guix.texi:4838
+#: doc/guix.texi:5452
 msgid "Create an environment for the package or list of packages that the code within @var{file} evaluates to."
 msgstr "Создать окружение для пакета или списка пакетов, код которых задан в файле @var{file}."
 
 #. type: lisp
-#: doc/guix.texi:4844
+#: doc/guix.texi:5458
 #, no-wrap
 msgid "@verbatiminclude environment-gdb.scm\n"
 msgstr "@verbatiminclude environment-gdb.scm\n"
 
 #. type: table
-#: doc/guix.texi:4851
+#: doc/guix.texi:5465
 #, fuzzy
 #| msgid "Create an environment for the packages contained in the manifest object returned by the Scheme code in @var{file}."
 msgid "Create an environment for the packages contained in the manifest object returned by the Scheme code in @var{file}.  This option can be repeated several times, in which case the manifests are concatenated."
 msgstr "Создать окружение для пакетов, содержащихся в объекте манифеста, возвращаемого кодом Scheme в файле @var{file}."
 
 #. type: table
-#: doc/guix.texi:4855
+#: doc/guix.texi:5469
 msgid "This is similar to the same-named option in @command{guix package} (@pxref{profile-manifest, @option{--manifest}}) and uses the same manifest files."
 msgstr "Это то же, что опция с таким же именем в @command{guix package} (@pxref{profile-manifest, @option{--manifest}}) и использует такие же файлы манифестов."
 
 #. type: item
-#: doc/guix.texi:4856
+#: doc/guix.texi:5470
 #, no-wrap
 msgid "--ad-hoc"
 msgstr "--ad-hoc"
 
 #. type: table
-#: doc/guix.texi:4861
+#: doc/guix.texi:5475
 msgid "Include all specified packages in the resulting environment, as if an @i{ad hoc} package were defined with them as inputs.  This option is useful for quickly creating an environment without having to write a package expression to contain the desired inputs."
 msgstr "Включить все указанные пакеты в результирующее окружение, если бы целевой (лат. @i{ad hoc}) пакет имел бы их как входные данные. Эта опция полезна для быстрого создания окружения без необходимости писать выражение типа пакет, содержащее желаемые входные данные."
 
 #. type: table
-#: doc/guix.texi:4863
+#: doc/guix.texi:5477
 msgid "For instance, the command:"
 msgstr "Например, команда:"
 
 #. type: example
-#: doc/guix.texi:4866
+#: doc/guix.texi:5480
 #, no-wrap
 msgid "guix environment --ad-hoc guile guile-sdl -- guile\n"
 msgstr "guix environment --ad-hoc guile guile-sdl -- guile\n"
 
 #. type: table
-#: doc/guix.texi:4870
+#: doc/guix.texi:5484
 msgid "runs @command{guile} in an environment where Guile and Guile-SDL are available."
 msgstr "запускает @command{guile} в окружении, в котором доступны Guile и Guile-SDL."
 
 #. type: table
-#: doc/guix.texi:4875
+#: doc/guix.texi:5489
 msgid "Note that this example implicitly asks for the default output of @code{guile} and @code{guile-sdl}, but it is possible to ask for a specific output---e.g., @code{glib:bin} asks for the @code{bin} output of @code{glib} (@pxref{Packages with Multiple Outputs})."
 msgstr "Отметим, что этот пример явно запрашивает выходы @code{guile} и  @code{guile-sdl} по умолчанию, но возможно запросить специфичный выход, то есть @code{glib:bin} запрашивает выход @code{bin} из @code{glib} (@pxref{Packages with Multiple Outputs})."
 
 #. type: table
-#: doc/guix.texi:4881
-msgid "This option may be composed with the default behavior of @command{guix environment}.  Packages appearing before @code{--ad-hoc} are interpreted as packages whose dependencies will be added to the environment, the default behavior.  Packages appearing after are interpreted as packages that will be added to the environment directly."
+#: doc/guix.texi:5495
+#, fuzzy
+#| msgid "This option may be composed with the default behavior of @command{guix environment}.  Packages appearing before @code{--ad-hoc} are interpreted as packages whose dependencies will be added to the environment, the default behavior.  Packages appearing after are interpreted as packages that will be added to the environment directly."
+msgid "This option may be composed with the default behavior of @command{guix environment}.  Packages appearing before @option{--ad-hoc} are interpreted as packages whose dependencies will be added to the environment, the default behavior.  Packages appearing after are interpreted as packages that will be added to the environment directly."
 msgstr "Эта опция может сочетаться с поведением по умолчанию @command{guix environment}. Пакеты, которые появляются до @code{--ad-hoc} интерпретируются как пакеты, чьи зависимости будут добавлены в окружение (поведение по умолчанию). Пакеты, которые появляются после этой опции, интерпретируются как пакеты, которые будут добавлены в окружение непосредственно."
 
 #. type: item
-#: doc/guix.texi:4882
+#: doc/guix.texi:5496
 #, no-wrap
 msgid "--pure"
 msgstr "--pure"
 
 #. type: table
-#: doc/guix.texi:4886
-msgid "Unset existing environment variables when building the new environment, except those specified with @option{--preserve} (see below.)  This has the effect of creating an environment in which search paths only contain package inputs."
+#: doc/guix.texi:5500
+#, fuzzy
+#| msgid "Unset existing environment variables when building the new environment, except those specified with @option{--preserve} (see below.)  This has the effect of creating an environment in which search paths only contain package inputs."
+msgid "Unset existing environment variables when building the new environment, except those specified with @option{--preserve} (see below).  This has the effect of creating an environment in which search paths only contain package inputs."
 msgstr "Сброс существующих переменных окружения при сборке нового окружения, кроме обозначенных в опции @option{--preserve} (смотрите ниже). Эффект этой опции --- создание окружения, в котором пути поиска содержат только входные данные пакета."
 
 #. type: item
-#: doc/guix.texi:4887
+#: doc/guix.texi:5501
 #, no-wrap
 msgid "--preserve=@var{regexp}"
 msgstr "--preserve=@var{regexp}"
 
 #. type: itemx
-#: doc/guix.texi:4888
+#: doc/guix.texi:5502
 #, no-wrap
 msgid "-E @var{regexp}"
 msgstr "-E @var{regexp}"
 
 #. type: table
-#: doc/guix.texi:4893
+#: doc/guix.texi:5507
 msgid "When used alongside @option{--pure}, preserve the environment variables matching @var{regexp}---in other words, put them on a ``white list'' of environment variables that must be preserved.  This option can be repeated several times."
 msgstr "При использовании вместе с @option{--pure}, оставить содержимое переменных окружения, соответствующих выражению @var{regexp} --- другими словами, включить их в \"белый список\" переменных окружения, которые не должны обнуляться. Эту опцию можно повторять несколько раз."
 
 #. type: example
-#: doc/guix.texi:4897
+#: doc/guix.texi:5511
 #, no-wrap
 msgid ""
 "guix environment --pure --preserve=^SLURM --ad-hoc openmpi @dots{} \\\n"
@@ -10645,111 +12014,117 @@ msgstr ""
 "  -- mpirun @dots{}\n"
 
 #. type: table
-#: doc/guix.texi:4903
-msgid "This example runs @command{mpirun} in a context where the only environment variables defined are @code{PATH}, environment variables whose name starts with @code{SLURM}, as well as the usual ``precious'' variables (@code{HOME}, @code{USER}, etc.)"
+#: doc/guix.texi:5517
+#, fuzzy
+#| msgid "This example runs @command{mpirun} in a context where the only environment variables defined are @code{PATH}, environment variables whose name starts with @code{SLURM}, as well as the usual ``precious'' variables (@code{HOME}, @code{USER}, etc.)"
+msgid "This example runs @command{mpirun} in a context where the only environment variables defined are @env{PATH}, environment variables whose name starts with @samp{SLURM}, as well as the usual ``precious'' variables (@env{HOME}, @env{USER}, etc.)."
 msgstr "Этот пример запускает @command{mpirun} в контексте, в котором определены только следующие переменные окружения: @code{PATH}, переменные окружения, чьи имена начинаются с @code{SLURM}, а также обычные \"дорогие\" переменные (@code{HOME}, @code{USER}, и т.д.)"
 
 #. type: item
-#: doc/guix.texi:4904
+#: doc/guix.texi:5518
 #, no-wrap
 msgid "--search-paths"
 msgstr "--search-paths"
 
 #. type: table
-#: doc/guix.texi:4907
+#: doc/guix.texi:5521
 msgid "Display the environment variable definitions that make up the environment."
 msgstr "Отобразить определения переменных окружения, которые составляют окружение."
 
 #. type: table
-#: doc/guix.texi:4911
+#: doc/guix.texi:5525
 msgid "Attempt to build for @var{system}---e.g., @code{i686-linux}."
 msgstr "Попытаться собрать систему @var{system}, то есть @code{i686-linux}."
 
 #. type: item
-#: doc/guix.texi:4912
+#: doc/guix.texi:5526
 #, no-wrap
 msgid "--container"
 msgstr "--container"
 
 #. type: itemx
-#: doc/guix.texi:4913
+#: doc/guix.texi:5527
 #, no-wrap
 msgid "-C"
 msgstr "-C"
 
-#. type: item
-#: doc/guix.texi:4914 doc/guix.texi:10706 doc/guix.texi:26829
-#, no-wrap
-msgid "container"
-msgstr "контейнер"
-
 #. type: table
-#: doc/guix.texi:4920
-msgid "Run @var{command} within an isolated container.  The current working directory outside the container is mapped inside the container.  Additionally, unless overridden with @code{--user}, a dummy home directory is created that matches the current user's home directory, and @file{/etc/passwd} is configured accordingly."
+#: doc/guix.texi:5534
+#, fuzzy
+#| msgid "Run @var{command} within an isolated container.  The current working directory outside the container is mapped inside the container.  Additionally, unless overridden with @code{--user}, a dummy home directory is created that matches the current user's home directory, and @file{/etc/passwd} is configured accordingly."
+msgid "Run @var{command} within an isolated container.  The current working directory outside the container is mapped inside the container.  Additionally, unless overridden with @option{--user}, a dummy home directory is created that matches the current user's home directory, and @file{/etc/passwd} is configured accordingly."
 msgstr "Запустить @var{command} в изолированном контейнере. Текущая рабочая директория за пределами контейнера отображается внутри контейнера. В дополнение, если это не переопределено опцией @code{--user}, тогда настраивается фиктивная домашняя директория, которая совпадает с домашней директорией текущего пользователя, а также соответствующий файл @file{/etc/passwd}."
 
 #. type: table
-#: doc/guix.texi:4924
-msgid "The spawned process runs as the current user outside the container.  Inside the container, it has the same UID and GID as the current user, unless @option{--user} is passed (see below.)"
+#: doc/guix.texi:5538
+#, fuzzy
+#| msgid "The spawned process runs as the current user outside the container.  Inside the container, it has the same UID and GID as the current user, unless @option{--user} is passed (see below.)"
+msgid "The spawned process runs as the current user outside the container.  Inside the container, it has the same UID and GID as the current user, unless @option{--user} is passed (see below)."
 msgstr "Порождаемый процесс снаружи предстаёт как запущенный от текущего пользователя. Внутри контейнера он имеет такие же UID и GID, что и текущий пользователь, если не обозначена @option{--user} (смотрите ниже)."
 
 #. type: item
-#: doc/guix.texi:4925 doc/guix.texi:26921
+#: doc/guix.texi:5539 doc/guix.texi:30553
 #, no-wrap
 msgid "--network"
 msgstr "--network"
 
 #. type: table
-#: doc/guix.texi:4930
+#: doc/guix.texi:5544
 msgid "For containers, share the network namespace with the host system.  Containers created without this flag only have access to the loopback device."
 msgstr "Разделять пространство сетевых имён контейнера с хостящей системой. Контейнеры, созданные без этого флага, могут только иметь доступ к петлевому устройству."
 
 #. type: item
-#: doc/guix.texi:4931
+#: doc/guix.texi:5545
 #, no-wrap
 msgid "--link-profile"
 msgstr "--link-profile"
 
 #. type: itemx
-#: doc/guix.texi:4932
+#: doc/guix.texi:5546
 #, no-wrap
 msgid "-P"
 msgstr "-P"
 
 #. type: table
-#: doc/guix.texi:4939
-msgid "For containers, link the environment profile to @file{~/.guix-profile} within the container.  This is equivalent to running the command @command{ln -s $GUIX_ENVIRONMENT ~/.guix-profile} within the container.  Linking will fail and abort the environment if the directory already exists, which will certainly be the case if @command{guix environment} was invoked in the user's home directory."
+#: doc/guix.texi:5554
+#, fuzzy
+#| msgid "For containers, link the environment profile to @file{~/.guix-profile} within the container.  This is equivalent to running the command @command{ln -s $GUIX_ENVIRONMENT ~/.guix-profile} within the container.  Linking will fail and abort the environment if the directory already exists, which will certainly be the case if @command{guix environment} was invoked in the user's home directory."
+msgid "For containers, link the environment profile to @file{~/.guix-profile} within the container and set @code{GUIX_ENVIRONMENT} to that.  This is equivalent to making @file{~/.guix-profile} a symlink to the actual profile within the container.  Linking will fail and abort the environment if the directory already exists, which will certainly be the case if @command{guix environment} was invoked in the user's home directory."
 msgstr "Связать профиль окружения контейнера с @file{~/.guix-profile} внутри контейнера. Это эквивалент запуска команды @command{ln -s $GUIX_ENVIRONMENT ~/.guix-profile} внутри контейнера. Связывание завершится ошибкой и отменит создание окружения, если директория уже существует, что, конечно, будет происходить, если @command{guix environment} вызвана в домашней директории пользователя."
 
 #. type: table
-#: doc/guix.texi:4946
-msgid "Certain packages are configured to look in @code{~/.guix-profile} for configuration files and data;@footnote{For example, the @code{fontconfig} package inspects @file{~/.guix-profile/share/fonts} for additional fonts.} @code{--link-profile} allows these programs to behave as expected within the environment."
+#: doc/guix.texi:5560
+#, fuzzy
+#| msgid "Certain packages are configured to look in @code{~/.guix-profile} for configuration files and data;@footnote{For example, the @code{fontconfig} package inspects @file{~/.guix-profile/share/fonts} for additional fonts.} @code{--link-profile} allows these programs to behave as expected within the environment."
+msgid "Certain packages are configured to look in @file{~/.guix-profile} for configuration files and data;@footnote{For example, the @code{fontconfig} package inspects @file{~/.guix-profile/share/fonts} for additional fonts.} @option{--link-profile} allows these programs to behave as expected within the environment."
 msgstr "Определённые пакеты сконфигурированы, чтобы смотреть конфигурационные файлы и данные в @code{~/.guix-profile};@footnote{Например, пакет @code{fontconfig} просматривает @file{~/.guix-profile/share/fonts} для дополнительных шрифтов.} @code{--link-profile} позволяет этим программам вести себя ожидаемо внутри окружения."
 
 #. type: item
-#: doc/guix.texi:4947 doc/guix.texi:10321
+#: doc/guix.texi:5561 doc/guix.texi:11932
 #, no-wrap
 msgid "--user=@var{user}"
 msgstr "--user=@var{user}"
 
 #. type: itemx
-#: doc/guix.texi:4948 doc/guix.texi:10322
+#: doc/guix.texi:5562 doc/guix.texi:11933
 #, no-wrap
 msgid "-u @var{user}"
 msgstr "-u @var{user}"
 
 #. type: table
-#: doc/guix.texi:4955
+#: doc/guix.texi:5569
 msgid "For containers, use the username @var{user} in place of the current user.  The generated @file{/etc/passwd} entry within the container will contain the name @var{user}, the home directory will be @file{/home/@var{user}}, and no user GECOS data will be copied.  Furthermore, the UID and GID inside the container are 1000.  @var{user} need not exist on the system."
 msgstr "Использовать в контейнере имя пользователя @var{user} вместо текущего пользователя. Созданная внутри контейнера запись @file{/etc/passwd} будет содержать имя @var{user}, домашняя директория будет @file{/home/@var{user}}, но не будут копированы пользовательские данные GECOS. Более того, внутри контейнера UID и GID будут 1000.  @var{user} не обязательно должен существовать в системе."
 
 #. type: table
-#: doc/guix.texi:4960
-msgid "Additionally, any shared or exposed path (see @code{--share} and @code{--expose} respectively) whose target is within the current user's home directory will be remapped relative to @file{/home/USER}; this includes the automatic mapping of the current working directory."
+#: doc/guix.texi:5574
+#, fuzzy
+#| msgid "Additionally, any shared or exposed path (see @code{--share} and @code{--expose} respectively) whose target is within the current user's home directory will be remapped relative to @file{/home/USER}; this includes the automatic mapping of the current working directory."
+msgid "Additionally, any shared or exposed path (see @option{--share} and @option{--expose} respectively) whose target is within the current user's home directory will be remapped relative to @file{/home/USER}; this includes the automatic mapping of the current working directory."
 msgstr "В дополнение, любой разделяемый или расширяемый путь (смотрите @code{--share} и @code{--expose} соответственно), чьи цели находятся в домашней директории пользователя, будут отображены соответственно в @file{/home/USER}; это включает автоматическое отображение текущей рабочей директории."
 
 #. type: example
-#: doc/guix.texi:4967
+#: doc/guix.texi:5581
 #, no-wrap
 msgid ""
 "# will expose paths as /home/foo/wd, /home/foo/test, and /home/foo/target\n"
@@ -10765,108 +12140,110 @@ msgstr ""
 "     --expose=/tmp/target=$HOME/target\n"
 
 #. type: table
-#: doc/guix.texi:4972
+#: doc/guix.texi:5586
 msgid "While this will limit the leaking of user identity through home paths and each of the user fields, this is only one useful component of a broader privacy/anonymity solution---not one in and of itself."
 msgstr "Это ограничит утечку данных идентификации пользователя через домашние пути и каждое из полей пользователя. Это один единственный компонент расширенного решения приватности/анонимности --- ничто не войдёт, ничто не выйдет."
 
 #. type: item
-#: doc/guix.texi:4973
+#: doc/guix.texi:5587
 #, no-wrap
 msgid "--no-cwd"
-msgstr ""
+msgstr "--no-cwd"
 
 #. type: table
-#: doc/guix.texi:4980
-msgid "For containers, the default behavior is to share the current working directory with the isolated container and immediately change to that directory within the container.  If this is undesirable, @code{--no-cwd} will cause the current working directory to @emph{not} be automatically shared and will change to the user's home directory within the container instead.  See also @code{--user}."
+#: doc/guix.texi:5594
+#, fuzzy
+#| msgid "For containers, the default behavior is to share the current working directory with the isolated container and immediately change to that directory within the container.  If this is undesirable, @code{--no-cwd} will cause the current working directory to @emph{not} be automatically shared and will change to the user's home directory within the container instead.  See also @code{--user}."
+msgid "For containers, the default behavior is to share the current working directory with the isolated container and immediately change to that directory within the container.  If this is undesirable, @option{--no-cwd} will cause the current working directory to @emph{not} be automatically shared and will change to the user's home directory within the container instead.  See also @option{--user}."
 msgstr "Для контейнеров стандартным поведением является разделение текущего рабочего каталога с изолированным контейнером и немедленное переключение на этот каталог в контейнере. Если это нежелательно, @code{--no-cwd} приведет к автоматическому доступу к текущему рабочему каталогу @emph{not}, который изменится на домашний каталог пользователя в контейнере. Смотрите также @code{--user}."
 
 #. type: item
-#: doc/guix.texi:4981
+#: doc/guix.texi:5595
 #, no-wrap
 msgid "--expose=@var{source}[=@var{target}]"
 msgstr "--expose=@var{source}[=@var{target}]"
 
 #. type: itemx
-#: doc/guix.texi:4982
+#: doc/guix.texi:5596
 #, no-wrap
 msgid "--share=@var{source}[=@var{target}]"
 msgstr "--share=@var{source}[=@var{target}]"
 
 #. type: table
-#: doc/guix.texi:4988
+#: doc/guix.texi:5602
 #, fuzzy
 #| msgid "For containers, expose the file system @var{source} from the host system as the read-only file system @var{target} within the container.  If @var{target} is not specified, @var{source} is used as the target mount point in the container."
-msgid "For containers, @code{--expose} (resp. @code{--share}) exposes the file system @var{source} from the host system as the read-only (resp. writable) file system @var{target} within the container.  If @var{target} is not specified, @var{source} is used as the target mount point in the container."
+msgid "For containers, @option{--expose} (resp. @option{--share}) exposes the file system @var{source} from the host system as the read-only (resp. writable) file system @var{target} within the container.  If @var{target} is not specified, @var{source} is used as the target mount point in the container."
 msgstr "Расширить файловую систему контейнера источником @var{source} из хостящей системы в качестве файловой системы только для чтения с целью @var{target} внутри контейнера.  Если цель @var{target} не задана, источник @var{source} используется как целевая точка монтирования в контейнере."
 
 #. type: table
-#: doc/guix.texi:4992
+#: doc/guix.texi:5606
 msgid "The example below spawns a Guile REPL in a container in which the user's home directory is accessible read-only via the @file{/exchange} directory:"
 msgstr "Пример ниже порождает Guile REPL в контейнере, в котором домашняя директория пользователя доступна только для чтения через директорию @file{/exchange}:"
 
 #. type: example
-#: doc/guix.texi:4995
+#: doc/guix.texi:5609
 #, no-wrap
 msgid "guix environment --container --expose=$HOME=/exchange --ad-hoc guile -- guile\n"
 msgstr "guix environment --container --expose=$HOME=/exchange --ad-hoc guile -- guile\n"
 
 #. type: Plain text
-#: doc/guix.texi:5003
+#: doc/guix.texi:5617
 msgid "@command{guix environment} also supports all of the common build options that @command{guix build} supports (@pxref{Common Build Options}) as well as package transformation options (@pxref{Package Transformation Options})."
 msgstr "@command{guix environment} также поддерживает все обычные опции сборки, которые поддерживает команда @command{guix build} (@pxref{Common Build Options}), а также опции трансформации пакета (@pxref{Package Transformation Options})."
 
 #. type: section
-#: doc/guix.texi:5005
+#: doc/guix.texi:5619
 #, no-wrap
 msgid "Invoking @command{guix pack}"
 msgstr "Вызов @command{guix pack}"
 
 #. type: Plain text
-#: doc/guix.texi:5011
+#: doc/guix.texi:5625
 msgid "Occasionally you want to pass software to people who are not (yet!)  lucky enough to be using Guix.  You'd tell them to run @command{guix package -i @var{something}}, but that's not possible in this case.  This is where @command{guix pack} comes in."
 msgstr "Иногда бывает необходимо передать программу людям, которые (ещё!) не являются счастливыми обладателями Guix. Вы могли бы им рекомендовать заустить @command{guix package -i @var{something}}, но в данном случае это не подхлдит. Тогда @command{guix pack} решает вопрос."
 
 #. type: quotation
-#: doc/guix.texi:5016
+#: doc/guix.texi:5630
 msgid "If you are looking for ways to exchange binaries among machines that already run Guix, @pxref{Invoking guix copy}, @ref{Invoking guix publish}, and @ref{Invoking guix archive}."
 msgstr "Если вы ищете способ обмена бинарниками между машинами, работающими с Guix, @pxref{Invoking guix copy}, @ref{Invoking guix publish} и @ref{Invoking guix archive}."
 
 #. type: cindex
-#: doc/guix.texi:5018
+#: doc/guix.texi:5632
 #, no-wrap
 msgid "pack"
 msgstr "упаковка"
 
 #. type: cindex
-#: doc/guix.texi:5019
+#: doc/guix.texi:5633
 #, no-wrap
 msgid "bundle"
 msgstr "набор"
 
 #. type: cindex
-#: doc/guix.texi:5020
+#: doc/guix.texi:5634
 #, no-wrap
 msgid "application bundle"
 msgstr "набор приложений"
 
 #. type: cindex
-#: doc/guix.texi:5021
+#: doc/guix.texi:5635
 #, no-wrap
 msgid "software bundle"
 msgstr "набор приложений"
 
 #. type: Plain text
-#: doc/guix.texi:5030
+#: doc/guix.texi:5644
 msgid "The @command{guix pack} command creates a shrink-wrapped @dfn{pack} or @dfn{software bundle}: it creates a tarball or some other archive containing the binaries of the software you're interested in, and all its dependencies.  The resulting archive can be used on any machine that does not have Guix, and people can run the exact same binaries as those you have with Guix.  The pack itself is created in a bit-reproducible fashion, so anyone can verify that it really contains the build results that you pretend to be shipping."
 msgstr "Команда @command{guix pack} создаёт обёрнутый @dfn{набор} или @dfn{программный набор}: она создаёт архив tarball или другой архив, содержащий исполняемые файлы программного обеспечения, которое вас интересует, а также все его зависимости. Результирующий архив может использоваться на любой машине, которая не имеет Guix, а люди могут запустить совершенно такие же бинарники, как у вас в Guix. Набор создаётся со свойством воспроизводимости до бита, так что любой может проверить, что он действительно содержит результаты сборок, которые вы поставляете."
 
 #. type: Plain text
-#: doc/guix.texi:5033
+#: doc/guix.texi:5647
 msgid "For example, to create a bundle containing Guile, Emacs, Geiser, and all their dependencies, you can run:"
 msgstr "Например, чтобы создать набор, содержащий Guile, Emacs, Geiser и все их зависимости, можно запустить:"
 
 #. type: example
-#: doc/guix.texi:5038
+#: doc/guix.texi:5652
 #, no-wrap
 msgid ""
 "$ guix pack guile emacs geiser\n"
@@ -10878,278 +12255,349 @@ msgstr ""
 "/gnu/store/@dots{}-pack.tar.gz\n"
 
 #. type: Plain text
-#: doc/guix.texi:5046
+#: doc/guix.texi:5660
 msgid "The result here is a tarball containing a @file{/gnu/store} directory with all the relevant packages.  The resulting tarball contains a @dfn{profile} with the three packages of interest; the profile is the same as would be created by @command{guix package -i}.  It is this mechanism that is used to create Guix's own standalone binary tarball (@pxref{Binary Installation})."
 msgstr "Результатом будет архив tarball, содержащий директорию @file{/gnu/store} со всеми соответствующими пакетами. Результирующий архив содержат @dfn{профиль} с тремя запрошенными пакетами; профиль представляет то же самое, что можно создать командой @command{guix package -i}. Это механизм, который используется, собственно, для создания автономного (standalone) бинарного архива Guix (@pxref{Binary Installation})."
 
 #. type: Plain text
-#: doc/guix.texi:5051
+#: doc/guix.texi:5665
 msgid "Users of this pack would have to run @file{/gnu/store/@dots{}-profile/bin/guile} to run Guile, which you may find inconvenient.  To work around it, you can create, say, a @file{/opt/gnu/bin} symlink to the profile:"
 msgstr "Пользователи этого пакета должны запускать @file{/gnu/store/@dots{}-profile/bin/guile} для запуска Guile, что может быть не удобно. Чтобы исправить это, можно создать, например, символическую ссылку @file{/opt/gnu/bin} на профиль:"
 
 #. type: example
-#: doc/guix.texi:5054
+#: doc/guix.texi:5668
 #, no-wrap
 msgid "guix pack -S /opt/gnu/bin=bin guile emacs geiser\n"
 msgstr "guix pack -S /opt/gnu/bin=bin guile emacs geiser\n"
 
 #. type: Plain text
-#: doc/guix.texi:5058
+#: doc/guix.texi:5672
 msgid "That way, users can happily type @file{/opt/gnu/bin/guile} and enjoy."
 msgstr "Так пользователи смогут благополучно напечатать @file{/opt/gnu/bin/guile}, и всё хорошо."
 
 #. type: cindex
-#: doc/guix.texi:5059
+#: doc/guix.texi:5673
 #, no-wrap
 msgid "relocatable binaries, with @command{guix pack}"
 msgstr "перемещаемые бинарники, с @command{guix pack}"
 
 #. type: Plain text
-#: doc/guix.texi:5067
-msgid "What if the recipient of your pack does not have root privileges on their machine, and thus cannot unpack it in the root file system? In that case, you will want to use the @code{--relocatable} option (see below).  This option produces @dfn{relocatable binaries}, meaning they they can be placed anywhere in the file system hierarchy: in the example above, users can unpack your tarball in their home directory and directly run @file{./opt/gnu/bin/guile}."
+#: doc/guix.texi:5681
+#, fuzzy
+#| msgid "What if the recipient of your pack does not have root privileges on their machine, and thus cannot unpack it in the root file system? In that case, you will want to use the @code{--relocatable} option (see below).  This option produces @dfn{relocatable binaries}, meaning they they can be placed anywhere in the file system hierarchy: in the example above, users can unpack your tarball in their home directory and directly run @file{./opt/gnu/bin/guile}."
+msgid "What if the recipient of your pack does not have root privileges on their machine, and thus cannot unpack it in the root file system? In that case, you will want to use the @option{--relocatable} option (see below).  This option produces @dfn{relocatable binaries}, meaning they they can be placed anywhere in the file system hierarchy: in the example above, users can unpack your tarball in their home directory and directly run @file{./opt/gnu/bin/guile}."
 msgstr "Что если получатель вашего пакета не имеет привилегий root на своей машине, и поэтому не может распаковать его в корне файловой системы? В таком случае вам стоит использовать опцию @code{--relocatable} (смотрите ниже). Эта опция производит @dfn{перемещаемые бинарники}, в том плане, что они могут размещаться где угодно в иерархии файловой системы: в примере выше пользователи могут распаковать ваш архив в свои домашние директории и напрямую запустить @file{./opt/gnu/bin/guile}."
 
 #. type: cindex
-#: doc/guix.texi:5068
+#: doc/guix.texi:5682
 #, no-wrap
 msgid "Docker, build an image with guix pack"
 msgstr "Docker, сборка образа с помощью guix pack"
 
 #. type: Plain text
-#: doc/guix.texi:5071
+#: doc/guix.texi:5685
 msgid "Alternatively, you can produce a pack in the Docker image format using the following command:"
 msgstr "В качестве альтернативы можно производить пакет в формате образа Docker, используя следующую команду:"
 
 #. type: example
-#: doc/guix.texi:5074
+#: doc/guix.texi:5688
 #, fuzzy, no-wrap
 #| msgid "guix pack -f docker guile emacs geiser\n"
 msgid "guix pack -f docker -S /bin=bin guile guile-readline\n"
 msgstr "guix pack -f docker guile emacs geiser\n"
 
 #. type: Plain text
-#: doc/guix.texi:5079
+#: doc/guix.texi:5693
 #, fuzzy
 #| msgid "The result is a tarball that can be passed to the @command{docker load} command.  See the @uref{https://docs.docker.com/engine/reference/commandline/load/, Docker documentation} for more information."
 msgid "The result is a tarball that can be passed to the @command{docker load} command, followed by @code{docker run}:"
 msgstr "Результатом будет архив, который можно передать команде @command{docker load}. Смотрите @uref{https://docs.docker.com/engine/reference/commandline/load/, документацию Docker} для подробной информации."
 
 #. type: example
-#: doc/guix.texi:5083
+#: doc/guix.texi:5697
 #, no-wrap
 msgid ""
 "docker load < @var{file}\n"
 "docker run -ti guile-guile-readline /bin/guile\n"
 msgstr ""
+"docker load < @var{file}\n"
+"docker run -ti guile-guile-readline /bin/guile\n"
 
 #. type: Plain text
-#: doc/guix.texi:5090
+#: doc/guix.texi:5704
 #, fuzzy
 #| msgid "The result is a tarball that can be passed to the @command{docker load} command.  See the @uref{https://docs.docker.com/engine/reference/commandline/load/, Docker documentation} for more information."
 msgid "where @var{file} is the image returned by @var{guix pack}, and @code{guile-guile-readline} is its ``image tag''.  See the @uref{https://docs.docker.com/engine/reference/commandline/load/, Docker documentation} for more information."
 msgstr "Результатом будет архив, который можно передать команде @command{docker load}. Смотрите @uref{https://docs.docker.com/engine/reference/commandline/load/, документацию Docker} для подробной информации."
 
 #. type: cindex
-#: doc/guix.texi:5091
+#: doc/guix.texi:5705
 #, no-wrap
 msgid "Singularity, build an image with guix pack"
 msgstr "Singularity, сборка образа с помощью guix pack"
 
 #. type: cindex
-#: doc/guix.texi:5092
+#: doc/guix.texi:5706
 #, no-wrap
 msgid "SquashFS, build an image with guix pack"
 msgstr "SquashFS, сборка образа с помощью guix pack"
 
 #. type: Plain text
-#: doc/guix.texi:5095
+#: doc/guix.texi:5709
 msgid "Yet another option is to produce a SquashFS image with the following command:"
 msgstr "Ещё одна опция производит образ SquashFS следующей командой:"
 
 #. type: example
-#: doc/guix.texi:5098
+#: doc/guix.texi:5712
 #, fuzzy, no-wrap
 #| msgid "guix pack -f squashfs guile emacs geiser\n"
 msgid "guix pack -f squashfs bash guile emacs geiser\n"
 msgstr "guix pack -f squashfs guile emacs geiser\n"
 
 #. type: Plain text
-#: doc/guix.texi:5106
+#: doc/guix.texi:5720
 #, fuzzy
 #| msgid "The result is a SquashFS file system image that can either be mounted or directly be used as a file system container image with the @uref{http://singularity.lbl.gov, Singularity container execution environment}, using commands like @command{singularity shell} or @command{singularity exec}."
-msgid "The result is a SquashFS file system image that can either be mounted or directly be used as a file system container image with the @uref{https://singularity.lbl.gov, Singularity container execution environment}, using commands like @command{singularity shell} or @command{singularity exec}."
+msgid "The result is a SquashFS file system image that can either be mounted or directly be used as a file system container image with the @uref{https://www.sylabs.io/docs/, Singularity container execution environment}, using commands like @command{singularity shell} or @command{singularity exec}."
 msgstr "Результатом будет образ файловой системы SquashFS, который может  непосредственно монтироваться как образ, содержащий контейнер файловой системы, с помощью  @uref{http://singularity.lbl.gov, контейнерного окружения Singularity}, используя команды типа @command{singularity shell} или @command{singularity exec}."
 
 #. type: Plain text
-#: doc/guix.texi:5108
+#: doc/guix.texi:5722
 msgid "Several command-line options allow you to customize your pack:"
 msgstr "Несколько опций командной строки позволяют вам переделывать ваш пакет:"
 
 #. type: table
-#: doc/guix.texi:5113
+#: doc/guix.texi:5727
 msgid "Produce a pack in the given @var{format}."
 msgstr "Произвести пакет в указанном формате @var{format}."
 
 #. type: table
-#: doc/guix.texi:5115
+#: doc/guix.texi:5729
 msgid "The available formats are:"
 msgstr "Возможные форматы:"
 
 #. type: item
-#: doc/guix.texi:5117
+#: doc/guix.texi:5731
 #, no-wrap
 msgid "tarball"
 msgstr "tarball"
 
 #. type: table
-#: doc/guix.texi:5120
+#: doc/guix.texi:5734
 msgid "This is the default format.  It produces a tarball containing all the specified binaries and symlinks."
 msgstr "Это формат по умолчанию. Он производит архив tarball, содержащий все заданные бинарники и символические ссылки."
 
 #. type: item
-#: doc/guix.texi:5121
+#: doc/guix.texi:5735
 #, no-wrap
 msgid "docker"
 msgstr "docker"
 
 #. type: table
-#: doc/guix.texi:5127
+#: doc/guix.texi:5741
 #, fuzzy
 #| msgid "This produces a tarball that follows the @uref{https://github.com/docker/docker/blob/master/image/spec/v1.2.md, Docker Image Specification}."
 msgid "This produces a tarball that follows the @uref{https://github.com/docker/docker/blob/master/image/spec/v1.2.md, Docker Image Specification}.  The ``repository name'' as it appears in the output of the @command{docker images} command is computed from package names passed on the command line or in the manifest file."
 msgstr "Это производит архив, соответствующий @uref{https://github.com/docker/docker/blob/master/image/spec/v1.2.md, спецификации образа Docker}."
 
 #. type: item
-#: doc/guix.texi:5128
+#: doc/guix.texi:5742
 #, no-wrap
 msgid "squashfs"
 msgstr "squashfs"
 
 #. type: table
-#: doc/guix.texi:5132
+#: doc/guix.texi:5746
 msgid "This produces a SquashFS image containing all the specified binaries and symlinks, as well as empty mount points for virtual file systems like procfs."
 msgstr "Это создает образ SquashFS, содержащий все указанные двоичные файлы и символические ссылки, а также пустые точки монтирования для виртуальных файловых систем, таких как procfs."
 
 #. type: quotation
-#: doc/guix.texi:5138
+#: doc/guix.texi:5752
 msgid "Singularity @emph{requires} you to provide @file{/bin/sh} in the image.  For that reason, @command{guix pack -f squashfs} always implies @code{-S /bin=bin}.  Thus, your @command{guix pack} invocation must always start with something like:"
-msgstr ""
+msgstr "Singularity @emph{требует}, чтобы вы указали @file{/bin /sh} в образе.  По этой причине @command{guix pack -f squashfs} всегда подразумевает @code{-S /bin=bin}.  Таким образом, вызов @command{guix pack} всегда должен начинаться с чего-то вроде:"
 
 #. type: example
-#: doc/guix.texi:5141
+#: doc/guix.texi:5755
 #, fuzzy, no-wrap
 #| msgid "guix pack -f squashfs guile emacs geiser\n"
 msgid "guix pack -f squashfs bash @dots{}\n"
 msgstr "guix pack -f squashfs guile emacs geiser\n"
 
 #. type: quotation
-#: doc/guix.texi:5146
+#: doc/guix.texi:5760
 msgid "If you forget the @code{bash} (or similar) package, @command{singularity run} and @command{singularity exec} will fail with an unhelpful ``no such file or directory'' message."
-msgstr ""
+msgstr "Если вы забудете пакет @code{bash} (или аналогичный), @command{singularity run} и @command{singularity exec} выдаст бесполезное сообщение ``нет такого файла или каталога''."
 
 #. type: cindex
-#: doc/guix.texi:5149
+#: doc/guix.texi:5763
 #, no-wrap
 msgid "relocatable binaries"
 msgstr "перемещаемые двоичные файлы"
 
 #. type: item
-#: doc/guix.texi:5150
+#: doc/guix.texi:5764
 #, no-wrap
 msgid "--relocatable"
 msgstr "--relocatable"
 
 #. type: table
-#: doc/guix.texi:5154
+#: doc/guix.texi:5768
 msgid "Produce @dfn{relocatable binaries}---i.e., binaries that can be placed anywhere in the file system hierarchy and run from there."
-msgstr ""
+msgstr "Создавать @dfn{relocatable binaries} --- то есть двоичные файлы, которые можно разместить в любом месте иерархии файловой системы и запускать оттуда."
 
 #. type: table
-#: doc/guix.texi:5162
-msgid "When this option is passed once, the resulting binaries require support for @dfn{user namespaces} in the kernel Linux; when passed @emph{twice}@footnote{Here's a trick to memorize it: @code{-RR}, which adds PRoot support, can be thought of as the abbreviation of ``Really Relocatable''.  Neat, isn't it?}, relocatable binaries fall to back to PRoot if user namespaces are unavailable, and essentially work anywhere---see below for the implications."
-msgstr ""
+#: doc/guix.texi:5776
+msgid "When this option is passed once, the resulting binaries require support for @dfn{user namespaces} in the kernel Linux; when passed @emph{twice}@footnote{Here's a trick to memorize it: @code{-RR}, which adds PRoot support, can be thought of as the abbreviation of ``Really Relocatable''.  Neat, isn't it?}, relocatable binaries fall to back to other techniques if user namespaces are unavailable, and essentially work anywhere---see below for the implications."
+msgstr "Когда эта опция передается один раз, конечные двоичные файлы требуют поддержки @dfn{user namespaces} в ядре Linux; при передаче @emph{дважды}@footnote{Вот трюк, чтобы запомнить его: @code{-RR}, который добавляет поддержку PRoot, можно рассматривать как сокращение от ``Really Relocatable''.  Удобно, не правда ли?}, Relocatable двоичные файлы возвращаются к другим методам, если пользовательские пространства имен недоступны, и по существу работают где угодно - см. ниже что под этим подразумевается."
 
 #. type: table
-#: doc/guix.texi:5164
+#: doc/guix.texi:5778
 msgid "For example, if you create a pack containing Bash with:"
-msgstr ""
+msgstr "Например, если вы создаете пакет, содержащий Bash, с помощью:"
 
 #. type: example
-#: doc/guix.texi:5167
+#: doc/guix.texi:5781
 #, no-wrap
 msgid "guix pack -RR -S /mybin=bin bash\n"
-msgstr ""
+msgstr "guix pack -RR -S /mybin=bin bash\n"
 
 #. type: table
-#: doc/guix.texi:5172
+#: doc/guix.texi:5786
 msgid "...@: you can copy that pack to a machine that lacks Guix, and from your home directory as a normal user, run:"
-msgstr ""
+msgstr "...@: вы можете скопировать этот пакет на машину, на которой отсутствует Guix, и из своего домашнего каталога как обычный пользователь запустите:"
 
 #. type: example
-#: doc/guix.texi:5176
+#: doc/guix.texi:5790
 #, no-wrap
 msgid ""
 "tar xf pack.tar.gz\n"
 "./mybin/sh\n"
 msgstr ""
+"tar xf pack.tar.gz\n"
+"./mybin/sh\n"
 
 #. type: table
-#: doc/guix.texi:5184
+#: doc/guix.texi:5798
 msgid "In that shell, if you type @code{ls /gnu/store}, you'll notice that @file{/gnu/store} shows up and contains all the dependencies of @code{bash}, even though the machine actually lacks @file{/gnu/store} altogether! That is probably the simplest way to deploy Guix-built software on a non-Guix machine."
-msgstr ""
+msgstr "В этой оболочке, если вы наберете @code{ls /gnu/store}, вы заметите, что отобразятся @file{/gnu/store} и содержатся все зависимости @code{bash}, даже если на машине нет @file{/gnu/store}!  Это, вероятно, самый простой способ установить программное обеспечение, созданное с помощью Guix, на машине, отличной от Guix."
 
 #. type: quotation
-#: doc/guix.texi:5190
+#: doc/guix.texi:5804
 msgid "By default, relocatable binaries rely on the @dfn{user namespace} feature of the kernel Linux, which allows unprivileged users to mount or change root.  Old versions of Linux did not support it, and some GNU/Linux distributions turn it off."
-msgstr ""
+msgstr "По умолчанию relocatable двоичные файлы полагаются на функцию @dfn{user namespace} ядра Linux, которая позволяет непривилегированным пользователям монтировать или изменять root.  Старые версии Linux не поддерживали его, а некоторые дистрибутивы GNU/Linux его отключили."
 
 #. type: quotation
-#: doc/guix.texi:5195
-msgid "To produce relocatable binaries that work even in the absence of user namespaces, pass @option{--relocatable} or @option{-R} @emph{twice}.  In that case, binaries will try user namespace support and fall back to PRoot if user namespaces are not supported."
+#: doc/guix.texi:5810
+msgid "To produce relocatable binaries that work even in the absence of user namespaces, pass @option{--relocatable} or @option{-R} @emph{twice}.  In that case, binaries will try user namespace support and fall back to another @dfn{execution engine} if user namespaces are not supported.  The following execution engines are supported:"
+msgstr "Чтобы создать relocatable двоичные файлы, которые работают даже при отсутствии пользовательских пространств имен, передайте @option{--relocatable} или @option{-R} @emph{дважды}.  В этом случае двоичные файлы будут пытаться использовать пространство имен пользователей и возвращаться к другому @dfn{механизму выполнения}, если пространства имен пользователей не поддерживаются.  Поддерживаются следующие механизмы выполнения:"
+
+#. type: item
+#: doc/guix.texi:5812 doc/guix.texi:15312
+#, no-wrap
+msgid "default"
 msgstr ""
 
-#. type: quotation
-#: doc/guix.texi:5201
-msgid "The @uref{https://proot-me.github.io/, PRoot} program provides the necessary support for file system virtualization.  It achieves that by using the @code{ptrace} system call on the running program.  This approach has the advantage to work without requiring special kernel support, but it incurs run-time overhead every time a system call is made."
+#. type: table
+#: doc/guix.texi:5815
+msgid "Try user namespaces and fall back to PRoot if user namespaces are not supported (see below)."
+msgstr "Попробовать использовать пространства имен пользователей и вернуться к PRoot, если пространства имен пользователей не поддерживаются (см. ниже)."
+
+#. type: item
+#: doc/guix.texi:5816
+#, fuzzy, no-wrap
+#| msgid "formatting code"
+msgid "performance"
+msgstr "форматирование кода"
+
+#. type: table
+#: doc/guix.texi:5819
+msgid "Try user namespaces and fall back to Fakechroot if user namespaces are not supported (see below)."
+msgstr "Попробовать использовать пространства имен пользователей и вернуться к Fakechroot, если пространства имен пользователей не поддерживаются (см. ниже)."
+
+#. type: item
+#: doc/guix.texi:5820
+#, fuzzy, no-wrap
+#| msgid "user"
+msgid "userns"
+msgstr "user"
+
+#. type: table
+#: doc/guix.texi:5823
+msgid "Run the program through user namespaces and abort if they are not supported."
+msgstr "Запустить программу через пользовательские пространства имен и прервать, если они не поддерживаются."
+
+#. type: item
+#: doc/guix.texi:5824
+#, fuzzy, no-wrap
+#| msgid "chroot"
+msgid "proot"
+msgstr "chroot"
+
+#. type: table
+#: doc/guix.texi:5831
+msgid "Run through PRoot.  The @uref{https://proot-me.github.io/, PRoot} program provides the necessary support for file system virtualization.  It achieves that by using the @code{ptrace} system call on the running program.  This approach has the advantage to work without requiring special kernel support, but it incurs run-time overhead every time a system call is made."
+msgstr "Запустить PRoot.  Программа @uref{https://proot-me.github.io/, PRoot} обеспечивает необходимую поддержку виртуализации файловой системы.  Это достигается с помощью системного вызова @code{ptrace} в запущенной программе.  Преимущество этого подхода заключается в том, что это не требует специальной поддержки ядра, но это требует дополнительных затрат времени выполнения каждый раз, когда выполняется системный вызов."
+
+#. type: item
+#: doc/guix.texi:5832
+#, fuzzy, no-wrap
+#| msgid "chroot"
+msgid "fakechroot"
+msgstr "chroot"
+
+#. type: table
+#: doc/guix.texi:5840
+msgid "Run through Fakechroot.  @uref{https://github.com/dex4er/fakechroot/, Fakechroot} virtualizes file system accesses by intercepting calls to C library functions such as @code{open}, @code{stat}, @code{exec}, and so on.  Unlike PRoot, it incurs very little overhead.  However, it does not always work: for example, some file system accesses made from within the C library are not intercepted, and file system accesses made @i{via} direct syscalls are not intercepted either, leading to erratic behavior."
+msgstr "Запустить Fakechroot. @uref{https://github.com/dex4er/fakechroot/, Fakechroot} виртуализирует доступ к файловой системе путем перехвата вызовов функций библиотеки C, таких как @code{open}, @code{stat}, @code{exec} и т.п.  В отличие от PRoot, накладных расходов очень мало.  Однако это не всегда работает: например, некоторые обращения к файловой системе, сделанные из библиотеки C, не перехватываются, а обращения к файловой системе, сделанные @i{через} прямые системные вызовы, также не перехватываются, что приводит к нестабильному поведению."
+
+#. type: vindex
+#: doc/guix.texi:5842
+#, no-wrap
+msgid "GUIX_EXECUTION_ENGINE"
 msgstr ""
 
+#. type: quotation
+#: doc/guix.texi:5846
+msgid "When running a wrapped program, you can explicitly request one of the execution engines listed above by setting the @env{GUIX_EXECUTION_ENGINE} environment variable accordingly."
+msgstr "При запуске обернутой программы вы можете явно запросить один из механизмов выполнения, перечисленных выше, установив соответствующую переменную среды @env{GUIX_EXECUTION_ENGINE}."
+
 #. type: cindex
-#: doc/guix.texi:5203
+#: doc/guix.texi:5848
 #, no-wrap
 msgid "entry point, for Docker images"
 msgstr "точка входа, для Docker образов"
 
 #. type: item
-#: doc/guix.texi:5204
+#: doc/guix.texi:5849
 #, fuzzy, no-wrap
 #| msgid "--commit=@var{commit}"
 msgid "--entry-point=@var{command}"
 msgstr "--commit=@var{commit}"
 
 #. type: table
-#: doc/guix.texi:5209
+#: doc/guix.texi:5854
 msgid "Use @var{command} as the @dfn{entry point} of the resulting pack, if the pack format supports it---currently @code{docker} and @code{squashfs} (Singularity)  support it.  @var{command} must be relative to the profile contained in the pack."
-msgstr ""
+msgstr "Используйте @var{command} в качестве @dfn{точки входа} конечного пакета, если формат пакета поддерживает это --- в настоящее время @code{docker} и @code{squashfs} (Singularity) поддерживают это.  @var{command} должна относиться к профилю, содержащемуся в пакете."
 
 #. type: table
-#: doc/guix.texi:5213
+#: doc/guix.texi:5858
 msgid "The entry point specifies the command that tools like @code{docker run} or @code{singularity run} automatically start by default.  For example, you can do:"
-msgstr ""
+msgstr "Точка входа указывает команду, которую по умолчанию автоматически запускают такие инструменты, как @code{docker run} или @code{singularity run}.  Например, вы можете сделать:"
 
 #. type: example
-#: doc/guix.texi:5216
+#: doc/guix.texi:5861
 #, fuzzy, no-wrap
 #| msgid "guix pack -f docker guile emacs geiser\n"
 msgid "guix pack -f docker --entry-point=bin/guile guile\n"
 msgstr "guix pack -f docker guile emacs geiser\n"
 
 #. type: table
-#: doc/guix.texi:5220
+#: doc/guix.texi:5865
 msgid "The resulting pack can easily be loaded and @code{docker run} with no extra arguments will spawn @code{bin/guile}:"
-msgstr ""
+msgstr "Полученный пакет может быть легко импортирован, и запущен через @code{docker run} без дополнительных аргументов, пораждая @code{bin/guile}:"
 
 #. type: example
-#: doc/guix.texi:5224
+#: doc/guix.texi:5869
 #, no-wrap
 msgid ""
 "docker load -i pack.tar.gz\n"
@@ -11157,256 +12605,412 @@ msgid ""
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:5229 doc/guix.texi:9487 doc/guix.texi:10192
+#: doc/guix.texi:5874 doc/guix.texi:11027 doc/guix.texi:11803
 msgid "Consider the package @var{expr} evaluates to."
-msgstr ""
+msgstr "Процедура, при выполнении которой возвращается пакет."
 
 #. type: table
-#: doc/guix.texi:5233
-msgid "This has the same purpose as the same-named option in @command{guix build} (@pxref{Additional Build Options, @code{--expression} in @command{guix build}})."
-msgstr ""
+#: doc/guix.texi:5878
+#, fuzzy
+#| msgid "This is similar to the same-named option in @command{guix package} (@pxref{profile-manifest, @option{--manifest}}) and uses the same manifest files."
+msgid "This has the same purpose as the same-named option in @command{guix build} (@pxref{Additional Build Options, @option{--expression} in @command{guix build}})."
+msgstr "Это то же, что опция с таким же именем в @command{guix package} (@pxref{profile-manifest, @option{--manifest}}) и использует такие же файлы манифестов."
 
 #. type: table
-#: doc/guix.texi:5239
+#: doc/guix.texi:5884
 #, fuzzy
-#| msgid "Create an environment for the packages contained in the manifest object returned by the Scheme code in @var{file}."
 msgid "Use the packages contained in the manifest object returned by the Scheme code in @var{file}.  This option can be repeated several times, in which case the manifests are concatenated."
-msgstr "Создать окружение для пакетов, содержащихся в объекте манифеста, возвращаемого кодом Scheme в файле @var{file}."
+msgstr "Использовать пакеты, содержащиеся в объекте манифеста, возвращенном кодом Scheme в @var{file}.  Эта опция может быть указана несколько раз, и в этом случае манифесты объединяются."
 
 #. type: table
-#: doc/guix.texi:5247
+#: doc/guix.texi:5892
 msgid "This has a similar purpose as the same-named option in @command{guix package} (@pxref{profile-manifest, @option{--manifest}}) and uses the same manifest files.  It allows you to define a collection of packages once and use it both for creating profiles and for creating archives for use on machines that do not have Guix installed.  Note that you can specify @emph{either} a manifest file @emph{or} a list of packages, but not both."
-msgstr ""
+msgstr "Она служит для того же, что и одноименная опция в @command{guix package} (@pxref{profile-manifest, @option{--manifest}}) и использует те же файлы манифеста.  Она позволяет вам один раз определить набор пакетов и использовать его как для создания профилей, так и для создания архивов для использования на машинах, на которых не установлен Guix.  Обратите внимание, что вы можете указать @emph{либо} файл манифеста @emph{либо} список пакетов, но не то и другое вместе."
 
 #. type: item
-#: doc/guix.texi:5253 doc/guix.texi:8669
+#: doc/guix.texi:5898 doc/guix.texi:10196
 #, no-wrap
 msgid "--target=@var{triplet}"
 msgstr "--target=@var{triplet}"
 
 #. type: cindex
-#: doc/guix.texi:5254 doc/guix.texi:5610 doc/guix.texi:8670
+#: doc/guix.texi:5899 doc/guix.texi:6349 doc/guix.texi:10197
 #, no-wrap
 msgid "cross-compilation"
-msgstr ""
+msgstr "кросс-компиляция"
 
 #. type: table
-#: doc/guix.texi:5258
-msgid "Cross-build for @var{triplet}, which must be a valid GNU triplet, such as @code{\"mips64el-linux-gnu\"} (@pxref{Specifying target triplets, GNU configuration triplets,, autoconf, Autoconf})."
-msgstr ""
+#: doc/guix.texi:5903
+msgid "Cross-build for @var{triplet}, which must be a valid GNU triplet, such as @code{\"aarch64-linux-gnu\"} (@pxref{Specifying target triplets, GNU configuration triplets,, autoconf, Autoconf})."
+msgstr "Cross-сборка для @var{triplet}, который должен быть допустимым GNU triplet, например @code{\\ \"aarch64-linux-gnu\\\"} (@pxref{Specifying target triplets, GNU configuration triplets,, autoconf, Autoconf})."
 
 #. type: item
-#: doc/guix.texi:5259
+#: doc/guix.texi:5904
 #, no-wrap
 msgid "--compression=@var{tool}"
-msgstr ""
+msgstr "--compression=@var{tool}"
 
 #. type: itemx
-#: doc/guix.texi:5260
+#: doc/guix.texi:5905
 #, no-wrap
 msgid "-C @var{tool}"
-msgstr ""
+msgstr "-C @var{tool}"
 
 #. type: table
-#: doc/guix.texi:5263
-msgid "Compress the resulting tarball using @var{tool}---one of @code{gzip}, @code{bzip2}, @code{xz}, @code{lzip}, or @code{none} for no compression."
-msgstr ""
+#: doc/guix.texi:5909
+#, fuzzy
+#| msgid "Compress build logs according to @var{type}, one of @code{gzip}, @code{bzip2}, or @code{none}."
+msgid "Compress the resulting tarball using @var{tool}---one of @code{gzip}, @code{zstd}, @code{bzip2}, @code{xz}, @code{lzip}, or @code{none} for no compression."
+msgstr "Архивировать логи сборки методом @var{type}. Это один из: @code{gzip}, @code{bzip2} или @code{none}."
 
 #. type: item
-#: doc/guix.texi:5264
+#: doc/guix.texi:5910
 #, no-wrap
 msgid "--symlink=@var{spec}"
-msgstr ""
+msgstr "--symlink=@var{spec}"
 
 #. type: itemx
-#: doc/guix.texi:5265
+#: doc/guix.texi:5911
 #, no-wrap
 msgid "-S @var{spec}"
-msgstr ""
+msgstr "-S @var{spec}"
 
 #. type: table
-#: doc/guix.texi:5268
+#: doc/guix.texi:5914
 msgid "Add the symlinks specified by @var{spec} to the pack.  This option can appear several times."
-msgstr ""
+msgstr "Добавить в пакет символические ссылки, указанные в @var{spec}.  Эта опция может быть указана несколько раз."
 
 #. type: table
-#: doc/guix.texi:5272
+#: doc/guix.texi:5918
 msgid "@var{spec} has the form @code{@var{source}=@var{target}}, where @var{source} is the symlink that will be created and @var{target} is the symlink target."
-msgstr ""
+msgstr "@var{spec} имеет вид @code{@var{source}=@var{target}}, где @var{source} - это символическая ссылка, которая будет создана, а @var{target} - это цель символьной ссылки."
 
 #. type: table
-#: doc/guix.texi:5275
+#: doc/guix.texi:5921
 msgid "For instance, @code{-S /opt/gnu/bin=bin} creates a @file{/opt/gnu/bin} symlink pointing to the @file{bin} sub-directory of the profile."
-msgstr ""
+msgstr "Например, @code{-S /opt/gnu/bin=bin} создает символическую ссылку @file{/opt/gnu/bin}, указывающую на подкаталог @file{bin} профиля."
 
 #. type: item
-#: doc/guix.texi:5276 doc/guix.texi:26880
+#: doc/guix.texi:5922 doc/guix.texi:30512
 #, no-wrap
 msgid "--save-provenance"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:5280
+#: doc/guix.texi:5926
 msgid "Save provenance information for the packages passed on the command line.  Provenance information includes the URL and commit of the channels in use (@pxref{Channels})."
-msgstr ""
+msgstr "Сохранить информацию о происхождении пакетов, переданных в командной строке.  Информация о происхождении включает в себя URL и фиксацию используемых каналов (@pxref{Channels})."
 
 #. type: table
-#: doc/guix.texi:5286
+#: doc/guix.texi:5932
 msgid "Provenance information is saved in the @file{/gnu/store/@dots{}-profile/manifest} file in the pack, along with the usual package metadata---the name and version of each package, their propagated inputs, and so on.  It is useful information to the recipient of the pack, who then knows how the pack was (supposedly) obtained."
-msgstr ""
+msgstr "Информация о происхождении сохраняется в файле @file{/gnu/store/@dots{}-profile/manifest} в пакете вместе с обычными метаданными пакета - названием и версией каждого пакета, их propagated inputs и т.п.  Это полезная информация для получателя pack, который исходя из нее знает, как (предположительно) был собран pack."
 
 #. type: table
-#: doc/guix.texi:5292
+#: doc/guix.texi:5938
 msgid "This option is not enabled by default because, like timestamps, provenance information contributes nothing to the build process.  In other words, there is an infinity of channel URLs and commit IDs that can lead to the same pack.  Recording such ``silent'' metadata in the output thus potentially breaks the source-to-binary bitwise reproducibility property."
-msgstr ""
+msgstr "Этот параметр не включен по умолчанию, поскольку, как и временные метки, информация о происхождении не влияет на процесс сборки.  Другими словами, существует бесконечное количество URL-адресов каналов и ID коммитов, которые могут привести к одному и тому же pack.  Таким образом, запись таких ``тихих'' метаданных в output потенциально нарушает свойство побитовой воспроизводимости."
 
 #. type: cindex
-#: doc/guix.texi:5295
+#: doc/guix.texi:5941
 #, fuzzy, no-wrap
 #| msgid "garbage collector roots"
 msgid "garbage collector root, for packs"
 msgstr "корни сборщика мусора"
 
 #. type: table
-#: doc/guix.texi:5298
+#: doc/guix.texi:5944
 #, fuzzy
 #| msgid "Make @var{file} a symlink to the profile for this environment, and register it as a garbage collector root."
 msgid "Make @var{file} a symlink to the resulting pack, and register it as a garbage collector root."
 msgstr "Создать символическую ссылку @var{file} на профиль этого окружения и зарегистрировать её как корень сборщика мусора."
 
 #. type: item
-#: doc/guix.texi:5299
+#: doc/guix.texi:5945
 #, no-wrap
 msgid "--localstatedir"
-msgstr ""
+msgstr "--localstatedir"
 
 #. type: itemx
-#: doc/guix.texi:5300
+#: doc/guix.texi:5946
 #, no-wrap
 msgid "--profile-name=@var{name}"
-msgstr ""
+msgstr "--profile-name=@var{name}"
 
 #. type: table
-#: doc/guix.texi:5305
+#: doc/guix.texi:5951
 msgid "Include the ``local state directory'', @file{/var/guix}, in the resulting pack, and notably the @file{/var/guix/profiles/per-user/root/@var{name}} profile---by default @var{name} is @code{guix-profile}, which corresponds to @file{~root/.guix-profile}."
-msgstr ""
+msgstr "Включите в конечный пакет ``локальный каталог состояния'', @file{/var/guix} и, в частности, профиль @file{/var/guix/profiles/per-user/root/@var{name}} --- по умолчанию @var{name} - это @code{guix-profile}, что соответствует @file{~root/.guix-profile}."
 
 #. type: table
-#: doc/guix.texi:5311
+#: doc/guix.texi:5957
 msgid "@file{/var/guix} contains the store database (@pxref{The Store}) as well as garbage-collector roots (@pxref{Invoking guix gc}).  Providing it in the pack means that the store is ``complete'' and manageable by Guix; not providing it pack means that the store is ``dead'': items cannot be added to it or removed from it after extraction of the pack."
-msgstr ""
+msgstr "@file{/var/guix} содержит базу данных store (@pxref{The Store}), а также корни сборщика мусора (@pxref{Invoking guix gc}).  Предоставление ее в pack означает, что store является ``полным'' и управляемым Guix; отсутствие в pack означает, что store ``мертв'': пакеты нельзя добавить в него или удалить из него после извлечения pack."
 
 #. type: table
-#: doc/guix.texi:5314
+#: doc/guix.texi:5960
 msgid "One use case for this is the Guix self-contained binary tarball (@pxref{Binary Installation})."
-msgstr ""
+msgstr "Одним из вариантов использования является включающий себя двоичный архив Guix (@pxref{Binary Installation})."
 
 #. type: item
-#: doc/guix.texi:5315 doc/guix.texi:26874
+#: doc/guix.texi:5961 doc/guix.texi:30506
 #, no-wrap
 msgid "--derivation"
-msgstr ""
+msgstr "--derivation"
 
 #. type: itemx
-#: doc/guix.texi:5316 doc/guix.texi:8701 doc/guix.texi:26875
+#: doc/guix.texi:5962 doc/guix.texi:10228 doc/guix.texi:30507
 #, no-wrap
 msgid "-d"
-msgstr ""
+msgstr "-d"
 
 #. type: table
-#: doc/guix.texi:5318
+#: doc/guix.texi:5964
 msgid "Print the name of the derivation that builds the pack."
-msgstr ""
+msgstr "Выведите имя derivation, которая создает pack."
 
 #. type: table
-#: doc/guix.texi:5322
+#: doc/guix.texi:5968
 msgid "Use the bootstrap binaries to build the pack.  This option is only useful to Guix developers."
-msgstr ""
+msgstr "Использовать bootstrap бинарники для сборки пакета.  Эта опция полезна только разработчикам Guix."
 
 #. type: Plain text
-#: doc/guix.texi:5327
+#: doc/guix.texi:5973
 msgid "In addition, @command{guix pack} supports all the common build options (@pxref{Common Build Options}) and all the package transformation options (@pxref{Package Transformation Options})."
+msgstr "Кроме того, @command{guix pack} поддерживает все стандартные параметры сборки (@pxref{Common Build Options}) и все параметры преобразования пакетов (@pxref{Package Transformation Options})."
+
+#. type: cindex
+#: doc/guix.texi:5978
+#, no-wrap
+msgid "GCC"
+msgstr "GCC"
+
+#. type: cindex
+#: doc/guix.texi:5979
+#, no-wrap
+msgid "ld-wrapper"
+msgstr "ld-wrapper"
+
+#. type: cindex
+#: doc/guix.texi:5980
+#, fuzzy, no-wrap
+#| msgid "ld-wrapper"
+msgid "linker wrapper"
+msgstr "ld-wrapper"
+
+#. type: cindex
+#: doc/guix.texi:5981
+#, fuzzy, no-wrap
+#| msgid "Software development"
+msgid "toolchain, for C development"
+msgstr "Разработка программного обеспечения"
+
+#. type: cindex
+#: doc/guix.texi:5982
+#, no-wrap
+msgid "toolchain, for Fortran development"
+msgstr "инструменты, для разработки на Fortran"
+
+#. type: Plain text
+#: doc/guix.texi:5989
+#, fuzzy
+#| msgid "Guix offers individual compiler packages such as @code{gcc} but if you are in need of a complete toolchain for compiling and linking source code what you really want is the @code{gcc-toolchain} package.  This package provides a complete GCC toolchain for C/C++ development, including GCC itself, the GNU C Library (headers and binaries, plus debugging symbols in the @code{debug} output), Binutils, and a linker wrapper."
+msgid "If you need a complete toolchain for compiling and linking C or C++ source code, use the @code{gcc-toolchain} package.  This package provides a complete GCC toolchain for C/C++ development, including GCC itself, the GNU C Library (headers and binaries, plus debugging symbols in the @code{debug} output), Binutils, and a linker wrapper."
+msgstr "Guix предлагает индивидуальные пакеты компиляторов, как например, @code{gcc}. Но если вам необходим полный набор инструментов (тулчейн) для компиляции и линковки исходного кода, тогда то, что вам действительно нужно, --- это пакет @code{gcc-toolchain}. Этот пакет предоставляет полный тулчейн GCC для разработки C/C++, включая сам GCC, библиотеку GNU C (заголовки и бинарники, а также отладочные символы в выходе @code{debug}), Binutils и набор линковщика."
+
+#. type: Plain text
+#: doc/guix.texi:5995
+#, fuzzy
+#| msgid "The wrapper's purpose is to inspect the @code{-L} and @code{-l} switches passed to the linker, add corresponding @code{-rpath} arguments, and invoke the actual linker with this new set of arguments.  You can instruct the wrapper to refuse to link against libraries not in the store by setting the @code{GUIX_LD_WRAPPER_ALLOW_IMPURITIES} environment variable to @code{no}."
+msgid "The wrapper's purpose is to inspect the @code{-L} and @code{-l} switches passed to the linker, add corresponding @code{-rpath} arguments, and invoke the actual linker with this new set of arguments.  You can instruct the wrapper to refuse to link against libraries not in the store by setting the @env{GUIX_LD_WRAPPER_ALLOW_IMPURITIES} environment variable to @code{no}."
+msgstr "Цель оболочки --- проверять опции @code{-L} и @code{-l}, направленные линковщику, и соответствующие аргументы @code{-rpath}, и вызывать соответствующий линковщик с этим новым набором аргументов. Вы можете указать оболочке отклонять линковку с библиотеками, находящимися не на складе, установив переменную окружения @code{GUIX_LD_WRAPPER_ALLOW_IMPURITIES} в значение @code{no}."
+
+#. type: Plain text
+#: doc/guix.texi:5999
+msgid "The package @code{gfortran-toolchain} provides a complete GCC toolchain for Fortran development.  For other languages, please use @samp{guix search gcc toolchain} (@pxref{guix-search,, Invoking guix package})."
+msgstr "Пакет @code{gfortran-toolchain} предоставляет полный набор инструментов GCC для разработки Fortran.  Для других языков используйте @samp{guix search gcc toolchain} (@pxref{guix-search,, Invoking guix package})."
+
+#. type: section
+#: doc/guix.texi:6002
+#, fuzzy, no-wrap
+#| msgid "Invoking @command{guix package}"
+msgid "Invoking @command{guix git authenticate}"
+msgstr "Вызов @command{guix package}"
+
+#. type: Plain text
+#: doc/guix.texi:6010
+msgid "The @command{guix git authenticate} command authenticates a Git checkout following the same rule as for channels (@pxref{channel-authentication, channel authentication}).  That is, starting from a given commit, it ensures that all subsequent commits are signed by an OpenPGP key whose fingerprint appears in the @file{.guix-authorizations} file of its parent commit(s)."
+msgstr "Команда @command{guix git Authenticate} аутентифицирует проверку Git по тому же правилу, что и для каналов (@pxref{channel-authentication, channel authentication}).  То есть, начиная с данного коммита, он гарантирует, что все последующие коммиты подписаны ключом OpenPGP, отпечаток которого указан в файле @file{.guix-authorizations} его родительского коммита(ов)."
+
+#. type: Plain text
+#: doc/guix.texi:6015
+msgid "You will find this command useful if you maintain a channel.  But in fact, this authentication mechanism is useful in a broader context, so you might want to use it for Git repositories that have nothing to do with Guix."
+msgstr "Вы найдете эту команду полезной, если будете поддерживать канал.  Но на самом деле этот механизм аутентификации полезен в более широком контексте, поэтому вы можете использовать его для репозиториев Git, которые не имеют ничего общего с Guix."
+
+#. type: example
+#: doc/guix.texi:6020
+#, fuzzy, no-wrap
+#| msgid "guix environment @var{options} @var{package}@dots{}\n"
+msgid "guix git authenticate @var{commit} @var{signer} [@var{options}@dots{}]\n"
+msgstr "guix environment @var{options} @var{package}@dots{}\n"
+
+#. type: Plain text
+#: doc/guix.texi:6029
+msgid "By default, this command authenticates the Git checkout in the current directory; it outputs nothing and exits with exit code zero on success and non-zero on failure.  @var{commit} above denotes the first commit where authentication takes place, and @var{signer} is the OpenPGP fingerprint of public key used to sign @var{commit}.  Together, they form a ``channel introduction'' (@pxref{channel-authentication, channel introduction}).  The options below allow you to fine-tune the process."
+msgstr "По умолчанию эта команда аутентифицирует проверку Git в текущем каталоге; она ничего не выводит и завершает работу с нулевым кодом в случае успеха и ненулевым в случае неудачи.  @var{commit} выше обозначает первый коммит, в котором происходит аутентификация, а @var{signer} - это отпечаток открытого ключа OpenPGP, используемый для подписи @var{commit}.  Вместе они образуют ``channel introduction'' (@pxref{channel-authentication, channel introduction}).  Указанные ниже параметры позволяют вам точно настроить процесс."
+
+#. type: item
+#: doc/guix.texi:6031
+#, fuzzy, no-wrap
+#| msgid "--extract=@var{directory}"
+msgid "--repository=@var{directory}"
+msgstr "--extract=@var{directory}"
+
+#. type: itemx
+#: doc/guix.texi:6032
+#, fuzzy, no-wrap
+#| msgid "-x @var{directory}"
+msgid "-r @var{directory}"
+msgstr "-x @var{directory}"
+
+#. type: table
+#: doc/guix.texi:6035
+msgid "Open the Git repository in @var{directory} instead of the current directory."
+msgstr "Открыть репозиторий Git в @var{directory} вместо текущего каталога."
+
+#. type: item
+#: doc/guix.texi:6036
+#, fuzzy, no-wrap
+#| msgid "--expression=@var{expr}"
+msgid "--keyring=@var{reference}"
+msgstr "--expression=@var{expr}"
+
+#. type: itemx
+#: doc/guix.texi:6037
+#, fuzzy, no-wrap
+#| msgid "-F @var{free}"
+msgid "-k @var{reference}"
+msgstr "-F @var{free}"
+
+#. type: table
+#: doc/guix.texi:6043
+msgid "Load OpenPGP keyring from @var{reference}, the reference of a branch such as @code{origin/keyring} or @code{my-keyring}.  The branch must contain OpenPGP public keys in @file{.key} files, either in binary form or ``ASCII-armored''.  By default the keyring is loaded from the branch named @code{keyring}."
+msgstr "Загрузить связку ключей OpenPGP из @var{reference}, ссылки на branch, например @code{origin/keyring} или @code{my-keyring}.  branch должна содержать открытые ключи OpenPGP в файлах @file{.key} либо в двоичной форме, либо в ``ASCII-armored'' виде.  По умолчанию связка ключей загружается из branch с именем @code{keyring}."
+
+#. type: item
+#: doc/guix.texi:6044
+#, no-wrap
+msgid "--stats"
 msgstr ""
 
+#. type: table
+#: doc/guix.texi:6046
+msgid "Display commit signing statistics upon completion."
+msgstr "Отобразить статистику подписания commit'ов по завершению."
+
+#. type: item
+#: doc/guix.texi:6047
+#, fuzzy, no-wrap
+#| msgid "--search=@var{regexp}"
+msgid "--cache-key=@var{key}"
+msgstr "--search=@var{regexp}"
+
+#. type: table
+#: doc/guix.texi:6051
+msgid "Previously-authenticated commits are cached in a file under @file{~/.cache/guix/authentication}.  This option forces the cache to be stored in file @var{key} in that directory."
+msgstr "Ранее аутентифицированные коммиты кэшируются в файле под @file{~/.cache/guix/authentication}.  Эта опция заставляет хранить кеш в файле @var{key} в этом каталоге."
+
+#. type: item
+#: doc/guix.texi:6052
+#, fuzzy, no-wrap
+#| msgid "--install-from-file=@var{file}"
+msgid "--historical-authorizations=@var{file}"
+msgstr "--install-from-file=@var{file}"
+
+#. type: table
+#: doc/guix.texi:6059
+msgid "By default, any commit whose parent commit(s) lack the @file{.guix-authorizations} file is considered inauthentic.  In contrast, this option considers the authorizations in @var{file} for any commit that lacks @file{.guix-authorizations}.  The format of @var{file} is the same as that of @file{.guix-authorizations} (@pxref{channel-authorizations, @file{.guix-authorizations} format})."
+msgstr "По умолчанию любой коммит, родительский коммит которого не содержит файла @file{.guix-authorizations}, считается недостоверным.  Напротив, эта опция учитывает авторизацию в @var{file} для любого коммита, в котором отсутствует @file{.guix-authorizations}.  Формат @var{file} такой же, как у @file{.guix-authorizations} (@pxref{channel-authorizations, @file{.guix-authorizations} format})."
+
 #. type: Plain text
-#: doc/guix.texi:5339
+#: doc/guix.texi:6072
 msgid "GNU Guix provides several Scheme programming interfaces (APIs) to define, build, and query packages.  The first interface allows users to write high-level package definitions.  These definitions refer to familiar packaging concepts, such as the name and version of a package, its build system, and its dependencies.  These definitions can then be turned into concrete build actions."
-msgstr ""
+msgstr "GNU Guix предоставляет несколько Scheme программных интерфейсов (API) для определения, сборки и запроса пакетов.  Первый интерфейс позволяет пользователям писать высокоуровневые определения пакетов.  Эти определения относятся к знакомым концепциям упаковки, таким как имя и версия пакета, его система сборки и зависимости.  Затем эти определения можно превратить в конкретные действия по сборке."
 
 #. type: Plain text
-#: doc/guix.texi:5345
-msgid "Build actions are performed by the Guix daemon, on behalf of users.  In a standard setup, the daemon has write access to the store---the @file{/gnu/store} directory---whereas users do not.  The recommended setup also has the daemon perform builds in chroots, under a specific build users, to minimize interference with the rest of the system."
-msgstr ""
+#: doc/guix.texi:6078
+msgid "Build actions are performed by the Guix daemon, on behalf of users.  In a standard setup, the daemon has write access to the store---the @file{/gnu/store} directory---whereas users do not.  The recommended setup also has the daemon perform builds in chroots, under specific build users, to minimize interference with the rest of the system."
+msgstr "Действия по сборке выполняются демоном Guix от имени пользователей.  В стандартной настройке демон имеет доступ на запись в хранилище---каталог @file{/gnu/store}---, в то время как пользователи не имеют.  Рекомендуемая установка также предусматривает, что демон выполняет сборки в chroot, под определенными пользователями сборки, чтобы минимизировать влияние на остальную систему."
 
 #. type: Plain text
-#: doc/guix.texi:5354
+#: doc/guix.texi:6087
 msgid "Lower-level APIs are available to interact with the daemon and the store.  To instruct the daemon to perform a build action, users actually provide it with a @dfn{derivation}.  A derivation is a low-level representation of the build actions to be taken, and the environment in which they should occur---derivations are to package definitions what assembly is to C programs.  The term ``derivation'' comes from the fact that build results @emph{derive} from them."
-msgstr ""
+msgstr "Доступны API нижнего уровня для взаимодействия с демоном и хранилищем.  Чтобы дать демону команду выполнить действие сборки, пользователи фактически предоставляют ему @dfn{derivation}. Derivation - это низкоуровневое представление действий сборки, которые должны быть предприняты, и среды, в которой они должны происходить - derivation'ы относятся к определениям пакетов, как сборка для программ на C.  Термин ``derivation'' происходит от того факта, что результаты сборки @emph{производные} от них."
 
 #. type: Plain text
-#: doc/guix.texi:5357
+#: doc/guix.texi:6090
 msgid "This chapter describes all these APIs in turn, starting from high-level package definitions."
-msgstr ""
+msgstr "В этой главе описываются все эти API по очереди, начиная с определений пакетов высокого уровня."
 
 #. type: Plain text
-#: doc/guix.texi:5383
+#: doc/guix.texi:6118
 msgid "From a programming viewpoint, the package definitions of the GNU distribution are provided by Guile modules in the @code{(gnu packages @dots{})} name space@footnote{Note that packages under the @code{(gnu packages @dots{})} module name space are not necessarily ``GNU packages''.  This module naming scheme follows the usual Guile module naming convention: @code{gnu} means that these modules are distributed as part of the GNU system, and @code{packages} identifies modules that define packages.} (@pxref{Modules, Guile modules,, guile, GNU Guile Reference Manual}).  For instance, the @code{(gnu packages emacs)} module exports a variable named @code{emacs}, which is bound to a @code{<package>} object (@pxref{Defining Packages})."
-msgstr ""
+msgstr "С точки зрения программирования, определения пакетов дистрибутива GNU предоставляются модулями Guile в пространстве имен @code{(gnu packages @dots{})} @footnote{Обратите внимание, что пакеты в @code{(gnu packages @dots{})} пространстве имен модуля не обязательно являются ``пакетами GNU''.  Эта схема именования модулей соответствует обычному соглашению об именах модулей Guile: @code{gnu} означает, что эти модули распространяются как часть системы GNU, а @code{packages} идентифицирует модули, которые определяют пакеты.} (@pxref{Modules, Guile modules,, guile, GNU Guile Reference Manual})).  Например, модуль @code{(gnu packages emacs)} экспортирует переменную с именем @code{emacs}, которая привязана к @code{<package>} объекту (@pxref{Defining Packages})."
 
 #. type: Plain text
-#: doc/guix.texi:5390
+#: doc/guix.texi:6125
 msgid "The @code{(gnu packages @dots{})} module name space is automatically scanned for packages by the command-line tools.  For instance, when running @code{guix install emacs}, all the @code{(gnu packages @dots{})} modules are scanned until one that exports a package object whose name is @code{emacs} is found.  This package search facility is implemented in the @code{(gnu packages)} module."
-msgstr ""
+msgstr "Пространство имен модуля @code{(gnu packages @dots{})} автоматически сканируется на наличие пакетов с помощью инструментов командной строки.  Например, при запуске @code{guix install emacs} все модули @code{(gnu packages @dots{})} сканируются до тех пор, пока не будет найден тот, который экспортирует объект пакета с именем @code{emacs}.  Это средство поиска пакетов реализовано в модуле @code{(gnu packages)}."
 
 #. type: cindex
-#: doc/guix.texi:5392
+#: doc/guix.texi:6127
 #, no-wrap
 msgid "package module search path"
-msgstr ""
+msgstr "путь для поиска пакетных модулей"
 
 #. type: Plain text
-#: doc/guix.texi:5401
-msgid "Users can store package definitions in modules with different names---e.g., @code{(my-packages emacs)}@footnote{Note that the file name and module name must match.  For instance, the @code{(my-packages emacs)} module must be stored in a @file{my-packages/emacs.scm} file relative to the load path specified with @option{--load-path} or @code{GUIX_PACKAGE_PATH}.  @xref{Modules and the File System,,, guile, GNU Guile Reference Manual}, for details.}.  There are two ways to make these package definitions visible to the user interfaces:"
-msgstr ""
+#: doc/guix.texi:6136
+msgid "Users can store package definitions in modules with different names---e.g., @code{(my-packages emacs)}@footnote{Note that the file name and module name must match.  For instance, the @code{(my-packages emacs)} module must be stored in a @file{my-packages/emacs.scm} file relative to the load path specified with @option{--load-path} or @env{GUIX_PACKAGE_PATH}.  @xref{Modules and the File System,,, guile, GNU Guile Reference Manual}, for details.}.  There are two ways to make these package definitions visible to the user interfaces:"
+msgstr "Пользователи могут хранить определения пакетов в модулях с разными именами - например, @code{(my-packages emacs)} @footnote{Обратите внимание, что имя файла и имя модуля должны совпадать.  Например, модуль @code{(my-packages emacs)} должен храниться в файле @file{my-packages/emacs.scm} относительно пути загрузки, указанного с помощью @option{--load-path} или @env{GUIX_PACKAGE_PATH}.  @xref{Modules and the File System,,, guile, GNU Guile Reference Manual}, для подробностей.}.  Есть два способа сделать эти определения пакетов видимыми для пользовательских интерфейсов:"
 
 #. type: enumerate
-#: doc/guix.texi:5408
-msgid "By adding the directory containing your package modules to the search path with the @code{-L} flag of @command{guix package} and other commands (@pxref{Common Build Options}), or by setting the @code{GUIX_PACKAGE_PATH} environment variable described below."
-msgstr ""
+#: doc/guix.texi:6143
+msgid "By adding the directory containing your package modules to the search path with the @code{-L} flag of @command{guix package} and other commands (@pxref{Common Build Options}), or by setting the @env{GUIX_PACKAGE_PATH} environment variable described below."
+msgstr "Добавить каталог, содержащий модули вашего пакета, в пути поиска с помощью флага @code{-L} команды @command{guix package} и другие команды (@pxref{Common Build Options}) или указать переменную окружения @env{GUIX_PACKAGE_PATH}, описанную ниже."
 
 #. type: enumerate
-#: doc/guix.texi:5414
+#: doc/guix.texi:6149
 msgid "By defining a @dfn{channel} and configuring @command{guix pull} so that it pulls from it.  A channel is essentially a Git repository containing package modules.  @xref{Channels}, for more information on how to define and use channels."
-msgstr ""
+msgstr "Определить @dfn{канал} и настроить @command{guix pull} так, чтобы он учитывал его.  Канал - это, по сути, репозиторий Git, содержащий модули пакетов.  @xref{Channels}, чтобы узнать больше о том, как определять и использовать каналы."
 
 #. type: Plain text
-#: doc/guix.texi:5417
-msgid "@code{GUIX_PACKAGE_PATH} works similarly to other search path variables:"
-msgstr ""
+#: doc/guix.texi:6152
+msgid "@env{GUIX_PACKAGE_PATH} works similarly to other search path variables:"
+msgstr "@env{GUIX_PACKAGE_PATH} работает аналогично другим переменным пути поиска:"
 
 #. type: defvr
-#: doc/guix.texi:5418
+#: doc/guix.texi:6153
 #, no-wrap
 msgid "{Environment Variable} GUIX_PACKAGE_PATH"
-msgstr ""
+msgstr "{Environment Variable} GUIX_PACKAGE_PATH"
 
 #. type: defvr
-#: doc/guix.texi:5422
+#: doc/guix.texi:6157
 msgid "This is a colon-separated list of directories to search for additional package modules.  Directories listed in this variable take precedence over the own modules of the distribution."
-msgstr ""
+msgstr "Это список каталогов, разделенных двоеточиями, для поиска дополнительных модулей пакета.  Каталоги, перечисленные в этой переменной, имеют приоритет над собственными модулями дистрибутива."
 
 #. type: Plain text
-#: doc/guix.texi:5430
+#: doc/guix.texi:6165
 msgid "The distribution is fully @dfn{bootstrapped} and @dfn{self-contained}: each package is built based solely on other packages in the distribution.  The root of this dependency graph is a small set of @dfn{bootstrap binaries}, provided by the @code{(gnu packages bootstrap)} module.  For more information on bootstrapping, @pxref{Bootstrapping}."
-msgstr ""
+msgstr "Дистрибутив полностью @dfn{bootstrapped} и @dfn{самодостаточный}: каждый пакет построен исключительно на основе других пакетов в дистрибутиве.  Корнем этого графа зависимостей является небольшой набор @dfn{bootstrap бинарный файлы}, предоставляемых модулем @code{(gnu packages bootstrap)}.  Для получения дополнительной информации о начальной загрузке @pxref{Bootstrapping}"
 
 #. type: Plain text
-#: doc/guix.texi:5438
+#: doc/guix.texi:6173
 msgid "The high-level interface to package definitions is implemented in the @code{(guix packages)} and @code{(guix build-system)} modules.  As an example, the package definition, or @dfn{recipe}, for the GNU Hello package looks like this:"
-msgstr ""
+msgstr "Интерфейс высокого уровня к определениям пакетов реализован в модулях @code{(guix packages)} и @code{(guix build-system)}.  Например, определение пакета или @dfn{рецепта} для пакета GNU Hello выглядит так:"
 
 #. type: lisp
-#: doc/guix.texi:5446
+#: doc/guix.texi:6181
 #, no-wrap
 msgid ""
 "(define-module (gnu packages hello)\n"
@@ -11417,9 +13021,16 @@ msgid ""
 "  #:use-module (gnu packages gawk))\n"
 "\n"
 msgstr ""
+"(define-module (gnu packages hello)\n"
+"  #:use-module (guix packages)\n"
+"  #:use-module (guix download)\n"
+"  #:use-module (guix build-system gnu)\n"
+"  #:use-module (guix licenses)\n"
+"  #:use-module (gnu packages gawk))\n"
+"\n"
 
 #. type: lisp
-#: doc/guix.texi:5465
+#: doc/guix.texi:6200
 #, no-wrap
 msgid ""
 "(define-public hello\n"
@@ -11441,279 +13052,302 @@ msgid ""
 "    (home-page \"https://www.gnu.org/software/hello/\")\n"
 "    (license gpl3+)))\n"
 msgstr ""
+"(define-public hello\n"
+"  (package\n"
+"    (name \"hello\")\n"
+"    (version \"2.10\")\n"
+"    (source (origin\n"
+"              (method url-fetch)\n"
+"              (uri (string-append \"mirror://gnu/hello/hello-\" version\n"
+"                                  \".tar.gz\"))\n"
+"              (sha256\n"
+"               (base32\n"
+"                \"0ssi1wpaf7plaswqqjwigppsg5fyh99vdlb9kzl7c9lng89ndq1i\"))))\n"
+"    (build-system gnu-build-system)\n"
+"    (arguments '(#:configure-flags '(\"--enable-silent-rules\")))\n"
+"    (inputs `((\"gawk\" ,gawk)))\n"
+"    (synopsis \"Hello, GNU world: An example GNU package\")\n"
+"    (description \"Guess what GNU Hello prints!\")\n"
+"    (home-page \"https://www.gnu.org/software/hello/\")\n"
+"    (license gpl3+)))\n"
 
 #. type: Plain text
-#: doc/guix.texi:5475
+#: doc/guix.texi:6210
 msgid "Without being a Scheme expert, the reader may have guessed the meaning of the various fields here.  This expression binds the variable @code{hello} to a @code{<package>} object, which is essentially a record (@pxref{SRFI-9, Scheme records,, guile, GNU Guile Reference Manual}).  This package object can be inspected using procedures found in the @code{(guix packages)} module; for instance, @code{(package-name hello)} returns---surprise!---@code{\"hello\"}."
-msgstr ""
+msgstr "Не будучи Scheme экспертом, вы можете догадаться о значении различных полей.  Это выражение связывает переменную @code{hello} с объектом @code{<package>}, который по сути является record (@pxref{SRFI-9, Scheme records,, guile, GNU Guile Reference Manual}).  Этот объект пакета можно проверить с помощью процедур из модуля @code{(guix packages)}; например, @code{(package-name hello)} возвращает---сюрприз!---@code{\"hello\"}."
 
 #. type: Plain text
-#: doc/guix.texi:5479
+#: doc/guix.texi:6214
 msgid "With luck, you may be able to import part or all of the definition of the package you are interested in from another repository, using the @code{guix import} command (@pxref{Invoking guix import})."
-msgstr ""
+msgstr "Если повезет, вы сможете импортировать часть или все определение интересующего вас пакета из другого репозитория с помощью команды @code{guix import} (@pxref{Invoking guix import})."
 
 #. type: Plain text
-#: doc/guix.texi:5485
-msgid "In the example above, @var{hello} is defined in a module of its own, @code{(gnu packages hello)}.  Technically, this is not strictly necessary, but it is convenient to do so: all the packages defined in modules under @code{(gnu packages @dots{})} are automatically known to the command-line tools (@pxref{Package Modules})."
-msgstr ""
+#: doc/guix.texi:6220
+msgid "In the example above, @code{hello} is defined in a module of its own, @code{(gnu packages hello)}.  Technically, this is not strictly necessary, but it is convenient to do so: all the packages defined in modules under @code{(gnu packages @dots{})} are automatically known to the command-line tools (@pxref{Package Modules})."
+msgstr "В приведенном выше примере @code{hello} определен в собственном модуле @code{(gnu packages hello)}.  Технически в этом нет строгой необходимости, но это удобно: все пакеты, определенные в модулях под @code{(gnu packages @dots{})}, автоматически становятся известны инструментам командной строки (@pxref{Package Modules})."
 
 #. type: Plain text
-#: doc/guix.texi:5487
+#: doc/guix.texi:6222
 msgid "There are a few points worth noting in the above package definition:"
-msgstr ""
+msgstr "В приведенном выше определении пакета стоит отметить несколько моментов:"
 
 #. type: itemize
-#: doc/guix.texi:5494
+#: doc/guix.texi:6229
 msgid "The @code{source} field of the package is an @code{<origin>} object (@pxref{origin Reference}, for the complete reference).  Here, the @code{url-fetch} method from @code{(guix download)} is used, meaning that the source is a file to be downloaded over FTP or HTTP."
-msgstr ""
+msgstr "Поле @code{source} пакета представляет собой объект @code{<origin>} (@pxref{origin Reference}, for the complete reference).  Здесь используется метод @code{url-fetch} из @code{(guix download)}, что означает, что источником является файл, который нужно загрузить через FTP или HTTP."
 
 #. type: itemize
-#: doc/guix.texi:5497
+#: doc/guix.texi:6232
 msgid "The @code{mirror://gnu} prefix instructs @code{url-fetch} to use one of the GNU mirrors defined in @code{(guix download)}."
-msgstr ""
+msgstr "Префикс @code{mirror://gnu} указывает @code{url-fetch} использовать одно из зеркал GNU, определенных в @code{(guix download)}."
 
 #. type: itemize
-#: doc/guix.texi:5504
+#: doc/guix.texi:6239
 msgid "The @code{sha256} field specifies the expected SHA256 hash of the file being downloaded.  It is mandatory, and allows Guix to check the integrity of the file.  The @code{(base32 @dots{})} form introduces the base32 representation of the hash.  You can obtain this information with @code{guix download} (@pxref{Invoking guix download}) and @code{guix hash} (@pxref{Invoking guix hash})."
-msgstr ""
+msgstr "Поле @code{sha256} указывает ожидаемый хэш SHA256 загружаемого файла.  Это обязательно и позволяет Guix проверять целостность файла.  Форма @code{(base32 @dots{})} указывает представление хеша в формате base32.  Вы можете получить эту информацию с помощью @code{guix download} (@pxref{Invoking guix download}) @code{guix hash} (@pxref{Invoking guix hash})."
 
 #. type: cindex
-#: doc/guix.texi:5505
+#: doc/guix.texi:6240
 #, no-wrap
 msgid "patches"
-msgstr ""
+msgstr "патчи"
 
 #. type: itemize
-#: doc/guix.texi:5509
+#: doc/guix.texi:6244
 msgid "When needed, the @code{origin} form can also have a @code{patches} field listing patches to be applied, and a @code{snippet} field giving a Scheme expression to modify the source code."
-msgstr ""
+msgstr "При необходимости форма @code{origin} может также иметь поле @code{patches} со списком исправлений, которые необходимо применить, и поле @code{snippet}, содержащее Scheme выражение для изменения исходного кода."
 
 #. type: cindex
-#: doc/guix.texi:5511
+#: doc/guix.texi:6246
 #, no-wrap
 msgid "GNU Build System"
-msgstr ""
+msgstr "Система сборки GNU"
 
 #. type: itemize
-#: doc/guix.texi:5517
-msgid "The @code{build-system} field specifies the procedure to build the package (@pxref{Build Systems}).  Here, @var{gnu-build-system} represents the familiar GNU Build System, where packages may be configured, built, and installed with the usual @code{./configure && make && make check && make install} command sequence."
-msgstr ""
+#: doc/guix.texi:6252
+msgid "The @code{build-system} field specifies the procedure to build the package (@pxref{Build Systems}).  Here, @code{gnu-build-system} represents the familiar GNU Build System, where packages may be configured, built, and installed with the usual @code{./configure && make && make check && make install} command sequence."
+msgstr "Поле @code{build-system} указывает процедуру сборки пакета (@pxref{Build Systems}).  Здесь @code{gnu-build-system} представляет знакомую систему сборки GNU, в которой пакеты могут быть настроены, собраны и установлены с помощью обычной последовательности команд @code{./configure && make && make check && make install}."
 
 #. type: itemize
-#: doc/guix.texi:5523
-msgid "The @code{arguments} field specifies options for the build system (@pxref{Build Systems}).  Here it is interpreted by @var{gnu-build-system} as a request run @file{configure} with the @code{--enable-silent-rules} flag."
-msgstr ""
+#: doc/guix.texi:6256
+msgid "When you start packaging non-trivial software, you may need tools to manipulate those build phases, manipulate files, and so on.  @xref{Build Utilities}, for more on this."
+msgstr "Когда вы начинаете упаковывать нетривиальное программное обеспечение, вам могут потребоваться инструменты для управления этими этапами сборки, управления файлами и т.д. @xref{Build Utilities}, чтобы узнать об этом подробнее."
+
+#. type: itemize
+#: doc/guix.texi:6262
+msgid "The @code{arguments} field specifies options for the build system (@pxref{Build Systems}).  Here it is interpreted by @code{gnu-build-system} as a request run @file{configure} with the @option{--enable-silent-rules} flag."
+msgstr "Поле @code{arguments} определяет параметры для системы сборки (@pxref{Build Systems}).  В примере это интерпретируется @code{gnu-build-system} как запуск запроса @file{configure} с флагом @option{--enable-silent-rules}."
 
 #. type: findex
-#: doc/guix.texi:5524 doc/guix.texi:5527
+#: doc/guix.texi:6263 doc/guix.texi:6266
 #, no-wrap
 msgid "quote"
-msgstr ""
+msgstr "цитата"
 
 #. type: cindex
-#: doc/guix.texi:5525
+#: doc/guix.texi:6264
 #, no-wrap
 msgid "quoting"
-msgstr ""
+msgstr "цитирование"
 
 #. type: findex
-#: doc/guix.texi:5526
+#: doc/guix.texi:6265
 #, no-wrap
 msgid "'"
-msgstr ""
+msgstr "'"
 
 #. type: itemize
-#: doc/guix.texi:5535
+#: doc/guix.texi:6274
 msgid "What about these quote (@code{'}) characters? They are Scheme syntax to introduce a literal list; @code{'} is synonymous with @code{quote}.  @xref{Expression Syntax, quoting,, guile, GNU Guile Reference Manual}, for details.  Here the value of the @code{arguments} field is a list of arguments passed to the build system down the road, as with @code{apply} (@pxref{Fly Evaluation, @code{apply},, guile, GNU Guile Reference Manual})."
-msgstr ""
+msgstr "А как насчет этих символов кавычек (@code{'})?  Это синтаксис Scheme для представления literal списка; @code{'} является синонимом @code{цитата}.  @xref{Expression Syntax, quoting,, guile, GNU Guile Reference Manual}, для подробностей.  Здесь значение поля @code{arguments} представляет собой список аргументов, переданных системе сборки в будущем, как и в случае с @code{apply} (@pxref{Fly Evaluation, @code{apply},, guile, GNU Guile Reference Manual})."
 
 #. type: itemize
-#: doc/guix.texi:5541
+#: doc/guix.texi:6280
 msgid "The hash-colon (@code{#:}) sequence defines a Scheme @dfn{keyword} (@pxref{Keywords,,, guile, GNU Guile Reference Manual}), and @code{#:configure-flags} is a keyword used to pass a keyword argument to the build system (@pxref{Coding With Keywords,,, guile, GNU Guile Reference Manual})."
-msgstr ""
+msgstr "Последовательность хэш-двоеточие (@code{#:}) определяет Scheme @dfn{ключевое слово} (@pxref{Keywords,,, guile, GNU Guile Reference Manual}), а @code{#:configure-flags} - это ключевое слово, используемое для передачи аргумента ключевого слова системе сборки (@pxref{Coding With Keywords,,, guile, GNU Guile Reference Manual})."
 
 #. type: itemize
-#: doc/guix.texi:5547
-msgid "The @code{inputs} field specifies inputs to the build process---i.e., build-time or run-time dependencies of the package.  Here, we define an input called @code{\"gawk\"} whose value is that of the @var{gawk} variable; @var{gawk} is itself bound to a @code{<package>} object."
-msgstr ""
+#: doc/guix.texi:6286
+msgid "The @code{inputs} field specifies inputs to the build process---i.e., build-time or run-time dependencies of the package.  Here, we define an input called @code{\"gawk\"} whose value is that of the @code{gawk} variable; @code{gawk} is itself bound to a @code{<package>} object."
+msgstr "Поле @code{inputs} указывает входные данные для процесса сборки, т.е. зависимости пакета во время сборки или выполнения.  Здесь мы определяем input с именем @code{\"gawk\"}, значение которого совпадает со значением переменной @code{gawk}; @code{gawk} сам связан с объектом @code{<package>}."
 
 #. type: cindex
-#: doc/guix.texi:5548
+#: doc/guix.texi:6287
 #, no-wrap
 msgid "backquote (quasiquote)"
 msgstr ""
 
 #. type: findex
-#: doc/guix.texi:5549
+#: doc/guix.texi:6288
 #, no-wrap
 msgid "`"
-msgstr ""
+msgstr "`"
 
 #. type: findex
-#: doc/guix.texi:5550
+#: doc/guix.texi:6289
 #, no-wrap
 msgid "quasiquote"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:5551
+#: doc/guix.texi:6290
 #, no-wrap
 msgid "comma (unquote)"
 msgstr ""
 
 #. type: findex
-#: doc/guix.texi:5552
+#: doc/guix.texi:6291
 #, no-wrap
 msgid ","
-msgstr ""
+msgstr ","
 
 #. type: findex
-#: doc/guix.texi:5553
+#: doc/guix.texi:6292
 #, no-wrap
 msgid "unquote"
 msgstr ""
 
 #. type: findex
-#: doc/guix.texi:5554
+#: doc/guix.texi:6293
 #, no-wrap
 msgid ",@@"
 msgstr ""
 
 #. type: findex
-#: doc/guix.texi:5555
+#: doc/guix.texi:6294
 #, no-wrap
 msgid "unquote-splicing"
 msgstr ""
 
 #. type: itemize
-#: doc/guix.texi:5561
+#: doc/guix.texi:6300
 msgid "Again, @code{`} (a backquote, synonymous with @code{quasiquote}) allows us to introduce a literal list in the @code{inputs} field, while @code{,} (a comma, synonymous with @code{unquote}) allows us to insert a value in that list (@pxref{Expression Syntax, unquote,, guile, GNU Guile Reference Manual})."
-msgstr ""
+msgstr "Опять же, @code{`} (обратная кавычка, синоним @code{quasiquote}) позволяет нам ввести literal список в поле @code{inputs}, а @code{,} (запятая, синоним @code{unquote}) позволяет нам вставить значение в этот список (@pxref{Expression Syntax, unquote,, guile, GNU Guile Reference Manual})."
 
 #. type: itemize
-#: doc/guix.texi:5565
-msgid "Note that GCC, Coreutils, Bash, and other essential tools do not need to be specified as inputs here.  Instead, @var{gnu-build-system} takes care of ensuring that they are present (@pxref{Build Systems})."
-msgstr ""
+#: doc/guix.texi:6304
+msgid "Note that GCC, Coreutils, Bash, and other essential tools do not need to be specified as inputs here.  Instead, @code{gnu-build-system} takes care of ensuring that they are present (@pxref{Build Systems})."
+msgstr "Обратите внимание, что GCC, Coreutils, Bash и другие важные инструменты не нужно указывать здесь в качестве inputs.  Вместо этого @code{gnu-build-system} позаботится об их наличии (@pxref{Build Systems})"
 
 #. type: itemize
-#: doc/guix.texi:5569
+#: doc/guix.texi:6308
 msgid "However, any other dependencies need to be specified in the @code{inputs} field.  Any dependency not specified here will simply be unavailable to the build process, possibly leading to a build failure."
-msgstr ""
+msgstr "Однако любые другие зависимости необходимо указать в поле @code{inputs}.  Любая не указанная здесь зависимость будет просто недоступна для процесса сборки, что может привести к сбою сборки."
 
 #. type: Plain text
-#: doc/guix.texi:5572
+#: doc/guix.texi:6311
 msgid "@xref{package Reference}, for a full description of possible fields."
-msgstr ""
+msgstr "@xref{package Reference}, для полного описания возможных полей."
 
 #. type: Plain text
-#: doc/guix.texi:5583
+#: doc/guix.texi:6322
 msgid "Once a package definition is in place, the package may actually be built using the @code{guix build} command-line tool (@pxref{Invoking guix build}), troubleshooting any build failures you encounter (@pxref{Debugging Build Failures}).  You can easily jump back to the package definition using the @command{guix edit} command (@pxref{Invoking guix edit}).  @xref{Packaging Guidelines}, for more information on how to test package definitions, and @ref{Invoking guix lint}, for information on how to check a definition for style conformance."
-msgstr ""
+msgstr "После того, как определение пакета введено, пакет может быть фактически собран с помощью инструмента командной строки @code{guix build} (@pxref{Invoking guix build}), устраняя любые возникающие ошибки сборки (@pxref{Debugging Build Failures}).  Вы можете легко вернуться к определению пакета с помощью команды @command{guix edit} (@pxref{Invoking guix edit}).  @xref{Packaging Guidelines} для получения дополнительной информации о том, как тестировать определения пакетов, и @ref{Invoking guix lint} для получения информации о том, как проверить определение на соответствие стилю."
 
 #. type: vindex
-#: doc/guix.texi:5583
+#: doc/guix.texi:6322
 #, no-wrap
 msgid "GUIX_PACKAGE_PATH"
-msgstr ""
+msgstr "GUIX_PACKAGE_PATH"
 
 #. type: Plain text
-#: doc/guix.texi:5587
+#: doc/guix.texi:6326
 msgid "Lastly, @pxref{Channels}, for information on how to extend the distribution by adding your own package definitions in a ``channel''."
-msgstr ""
+msgstr "Наконец, @pxref{Channels}, чтобы узнать, как расширить дистрибутив, добавив собственные определения пакетов в ``канал''."
 
 #. type: Plain text
-#: doc/guix.texi:5591
+#: doc/guix.texi:6330
 msgid "Finally, updating the package definition to a new upstream version can be partly automated by the @command{guix refresh} command (@pxref{Invoking guix refresh})."
-msgstr ""
+msgstr "Наконец, обновление определения пакета до новой исходной версии можно частично автоматизировать с помощью команды @command{guix refresh} (@pxref{Invoking guix refresh})."
 
 #. type: Plain text
-#: doc/guix.texi:5597
-msgid "Behind the scenes, a derivation corresponding to the @code{<package>} object is first computed by the @code{package-derivation} procedure.  That derivation is stored in a @code{.drv} file under @file{/gnu/store}.  The build actions it prescribes may then be realized by using the @code{build-derivations} procedure (@pxref{The Store})."
-msgstr ""
+#: doc/guix.texi:6336
+msgid "Behind the scenes, a derivation corresponding to the @code{<package>} object is first computed by the @code{package-derivation} procedure.  That derivation is stored in a @file{.drv} file under @file{/gnu/store}.  The build actions it prescribes may then be realized by using the @code{build-derivations} procedure (@pxref{The Store})."
+msgstr "За кулисами derivation, соответствующая объекту @code{<package>}, сначала вычисляется с помощью процедуры @code{package-diveration}.  Этот вывод хранится в файле @file{.drv} в каталоге @file{/gnu/store}.  Действия сборки, которые он предписывает, затем могут быть реализованы с помощью процедуры @code{build-derivations} (@pxref{The Store})."
 
 #. type: deffn
-#: doc/guix.texi:5598
+#: doc/guix.texi:6337
 #, no-wrap
 msgid "{Scheme Procedure} package-derivation @var{store} @var{package} [@var{system}]"
-msgstr ""
+msgstr "{Процедура Scheme} package-derivation @var{store} @var{package} [@var{system}]"
 
 #. type: deffn
-#: doc/guix.texi:5601
+#: doc/guix.texi:6340
 msgid "Return the @code{<derivation>} object of @var{package} for @var{system} (@pxref{Derivations})."
-msgstr ""
+msgstr "Возвращает the @code{<derivation>} объект @var{package} для @var{system} (@pxref{Derivations})."
 
 #. type: deffn
-#: doc/guix.texi:5607
+#: doc/guix.texi:6346
 msgid "@var{package} must be a valid @code{<package>} object, and @var{system} must be a string denoting the target system type---e.g., @code{\"x86_64-linux\"} for an x86_64 Linux-based GNU system.  @var{store} must be a connection to the daemon, which operates on the store (@pxref{The Store})."
-msgstr ""
+msgstr "@var{package} должен быть допустимым объектом @code{<package>}, а @var{system} должен быть строкой, обозначающей тип системы---например, @code{\"x86_64-linux\"} для системы GNU на базе x86_64 Linux.  @var{store} должен быть подключен к демону, который работает с хранилищем (@pxref{The Store})."
 
 #. type: Plain text
-#: doc/guix.texi:5613
+#: doc/guix.texi:6352
 msgid "Similarly, it is possible to compute a derivation that cross-builds a package for some other system:"
-msgstr ""
+msgstr "Точно так же можно вычислить derivation, которая cross собирает пакет для некоторой другой системы:"
 
 #. type: deffn
-#: doc/guix.texi:5614
+#: doc/guix.texi:6353
 #, no-wrap
 msgid "{Scheme Procedure} package-cross-derivation @var{store} @"
-msgstr ""
+msgstr "{Процедура Scheme} package-cross-derivation @var{store} @"
 
 #. type: deffn
-#: doc/guix.texi:5618
+#: doc/guix.texi:6357
 msgid "@var{package} @var{target} [@var{system}] Return the @code{<derivation>} object of @var{package} cross-built from @var{system} to @var{target}."
-msgstr ""
+msgstr "@var{package} @var{target} [@var{system}] Возвращает @code{<derivation>} объект @var{package} cross-собранный из @var{system} в @var{target}."
 
 #. type: deffn
-#: doc/guix.texi:5622
-msgid "@var{target} must be a valid GNU triplet denoting the target hardware and operating system, such as @code{\"mips64el-linux-gnu\"} (@pxref{Specifying Target Triplets,,, autoconf, Autoconf})."
-msgstr ""
+#: doc/guix.texi:6361
+msgid "@var{target} must be a valid GNU triplet denoting the target hardware and operating system, such as @code{\"aarch64-linux-gnu\"} (@pxref{Specifying Target Triplets,,, autoconf, Autoconf})."
+msgstr "@var{target} должен быть допустимым  GNU triplet'ом, обозначающим желамое оборудование и операционную систему, например @code{\"aarch64-linux-gnu\"} (@pxref{Specifying Target Triplets,,, autoconf, Autoconf})."
 
 #. type: cindex
-#: doc/guix.texi:5624
+#: doc/guix.texi:6363
 #, no-wrap
 msgid "package transformations"
-msgstr ""
+msgstr "пакетные преобразования"
 
 #. type: cindex
-#: doc/guix.texi:5625
+#: doc/guix.texi:6364
 #, no-wrap
 msgid "input rewriting"
-msgstr ""
+msgstr "перезапись input"
 
 #. type: cindex
-#: doc/guix.texi:5626
+#: doc/guix.texi:6365
 #, no-wrap
 msgid "dependency tree rewriting"
-msgstr ""
+msgstr "перезапись дерева зависимостей"
 
 #. type: Plain text
-#: doc/guix.texi:5630
+#: doc/guix.texi:6369
 msgid "Packages can be manipulated in arbitrary ways.  An example of a useful transformation is @dfn{input rewriting}, whereby the dependency tree of a package is rewritten by replacing specific inputs by others:"
-msgstr ""
+msgstr "Пакетами можно манипулировать различными способами.  Примером полезного преобразования является @dfn{input rewriting}, при котором дерево зависимостей пакета переписывается путем замены определенных входных данных другими:"
 
 #. type: deffn
-#: doc/guix.texi:5631
+#: doc/guix.texi:6370
 #, no-wrap
 msgid "{Scheme Procedure} package-input-rewriting @var{replacements} @"
-msgstr ""
+msgstr "{Процедура Scheme} package-input-rewriting @var{replacements} @"
 
 #. type: deffn
-#: doc/guix.texi:5638
-msgid "[@var{rewrite-name}] Return a procedure that, when passed a package, replaces its direct and indirect dependencies (but not its implicit inputs) according to @var{replacements}.  @var{replacements} is a list of package pairs; the first element of each pair is the package to replace, and the second one is the replacement."
-msgstr ""
+#: doc/guix.texi:6377
+msgid "[@var{rewrite-name}] [#:deep? #t] Return a procedure that, when passed a package, replaces its direct and indirect dependencies, including implicit inputs when @var{deep?} is true, according to @var{replacements}.  @var{replacements} is a list of package pairs; the first element of each pair is the package to replace, and the second one is the replacement."
+msgstr "[@var{rewrite-name}] [#:deep? #t] Возвращает процедуру, которая при передаче пакета заменяет его прямые и косвенные зависимости, включая неявные входы, когда @var{deep?} истинна, согласно @var{replacements}.  @var{replacements} - это список пар пакетов; первый элемент каждой пары - это заменяемый пакет, а второй - заменяющий."
 
 #. type: deffn
-#: doc/guix.texi:5641
+#: doc/guix.texi:6380
 msgid "Optionally, @var{rewrite-name} is a one-argument procedure that takes the name of a package and returns its new name after rewrite."
-msgstr ""
+msgstr "При необходимости, @var{rewrite-name} - это процедура с одним аргументом, которая принимает имя пакета и возвращает его новое имя после перезаписи."
 
-#. type: Plain text
-#: doc/guix.texi:5645
+#. type: table
+#: doc/guix.texi:6384 doc/guix.texi:9935
 msgid "Consider this example:"
-msgstr ""
+msgstr "Рассмотрим пример:"
 
 #. type: lisp
-#: doc/guix.texi:5651
+#: doc/guix.texi:6390
 #, no-wrap
 msgid ""
 "(define libressl-instead-of-openssl\n"
@@ -11722,346 +13356,363 @@ msgid ""
 "  (package-input-rewriting `((,openssl . ,libressl))))\n"
 "\n"
 msgstr ""
+"(define libressl-instead-of-openssl\n"
+"  ;; This is a procedure to replace OPENSSL by LIBRESSL,\n"
+"  ;; recursively.\n"
+"  (package-input-rewriting `((,openssl . ,libressl))))\n"
+"\n"
 
 #. type: lisp
-#: doc/guix.texi:5654
+#: doc/guix.texi:6393
 #, no-wrap
 msgid ""
 "(define git-with-libressl\n"
 "  (libressl-instead-of-openssl git))\n"
 msgstr ""
+"(define git-with-libressl\n"
+"  (libressl-instead-of-openssl git))\n"
 
 #. type: Plain text
-#: doc/guix.texi:5662
+#: doc/guix.texi:6401
 msgid "Here we first define a rewriting procedure that replaces @var{openssl} with @var{libressl}.  Then we use it to define a @dfn{variant} of the @var{git} package that uses @var{libressl} instead of @var{openssl}.  This is exactly what the @option{--with-input} command-line option does (@pxref{Package Transformation Options, @option{--with-input}})."
-msgstr ""
+msgstr "Здесь мы сначала определяем процедуру перезаписи, которая заменяет @var{openssl} на @var{libressl}.  Затем мы используем это, чтобы определить @dfn{вариант} пакета @var{git}, который использует @var{libressl} вместо @var{openssl}.  Это именно то, что делает параметр командной строки @option{--with-input} (@pxref{Package Transformation Options, @option{--with-input}})."
 
 #. type: Plain text
-#: doc/guix.texi:5665
+#: doc/guix.texi:6404
 msgid "The following variant of @code{package-input-rewriting} can match packages to be replaced by name rather than by identity."
-msgstr ""
+msgstr "Следующий вариант @code{package-input-rewriting} может сопоставлять пакеты, подлежащие замене, по имени, а не по идентификатору."
 
 #. type: deffn
-#: doc/guix.texi:5666
-#, no-wrap
-msgid "{Scheme Procedure} package-input-rewriting/spec @var{replacements}"
-msgstr ""
+#: doc/guix.texi:6405
+#, fuzzy, no-wrap
+#| msgid "{Scheme Procedure} inferior-package-inputs @var{package}"
+msgid "{Scheme Procedure} package-input-rewriting/spec @var{replacements} [#:deep? #t]"
+msgstr "{Процедура Scheme} inferior-package-inputs @var{package}"
 
 #. type: deffn
-#: doc/guix.texi:5672
-msgid "Return a procedure that, given a package, applies the given @var{replacements} to all the package graph (excluding implicit inputs).  @var{replacements} is a list of spec/procedures pair; each spec is a package specification such as @code{\"gcc\"} or @code{\"guile@@2\"}, and each procedure takes a matching package and returns a replacement for that package."
-msgstr ""
+#: doc/guix.texi:6412
+msgid "Return a procedure that, given a package, applies the given @var{replacements} to all the package graph, including implicit inputs unless @var{deep?} is false.  @var{replacements} is a list of spec/procedures pair; each spec is a package specification such as @code{\"gcc\"} or @code{\"guile@@2\"}, and each procedure takes a matching package and returns a replacement for that package."
+msgstr "Возвращает процедуру, которая для данного пакета применяет заданные @var{replacements} ко всему графу пакета, включая неявные входные данные, если @var{deep?} не ложно.  @var{replacements} - это список пары спецификация/процедуры; каждая спецификация - это спецификация пакета, такая как @code{\"gcc\"} или @code{\"guile@@2\"}, и каждая процедура берет соответствующий пакет и возвращает замену для этого пакета."
 
 #. type: Plain text
-#: doc/guix.texi:5675
+#: doc/guix.texi:6415
 msgid "The example above could be rewritten this way:"
-msgstr ""
+msgstr "Приведенный выше пример можно переписать так:"
 
 #. type: lisp
-#: doc/guix.texi:5680
+#: doc/guix.texi:6420
 #, no-wrap
 msgid ""
 "(define libressl-instead-of-openssl\n"
 "  ;; Replace all the packages called \"openssl\" with LibreSSL.\n"
 "  (package-input-rewriting/spec `((\"openssl\" . ,(const libressl)))))\n"
 msgstr ""
+"(define libressl-instead-of-openssl\n"
+"  ;; Replace all the packages called \"openssl\" with LibreSSL.\n"
+"  (package-input-rewriting/spec `((\"openssl\" . ,(const libressl)))))\n"
 
 #. type: Plain text
-#: doc/guix.texi:5685
+#: doc/guix.texi:6425
 msgid "The key difference here is that, this time, packages are matched by spec and not by identity.  In other words, any package in the graph that is called @code{openssl} will be replaced."
-msgstr ""
+msgstr "Ключевое отличие здесь в том, что на этот раз пакеты сопоставляются по спецификации, а не по идентичности.  Другими словами, любой пакет в графе, который называется @code{openssl}, будет заменен."
 
 #. type: Plain text
-#: doc/guix.texi:5689
+#: doc/guix.texi:6429
 msgid "A more generic procedure to rewrite a package dependency graph is @code{package-mapping}: it supports arbitrary changes to nodes in the graph."
-msgstr ""
+msgstr "Более общая процедура для перезаписи графа зависимостей пакетов - это @code{package-mapping}: она поддерживает произвольные изменения узлов в графе."
 
 #. type: deffn
-#: doc/guix.texi:5690
-#, no-wrap
-msgid "{Scheme Procedure} package-mapping @var{proc} [@var{cut?}]"
-msgstr ""
+#: doc/guix.texi:6430
+#, fuzzy, no-wrap
+#| msgid "{Scheme Procedure} inferior-package-location @var{package}"
+msgid "{Scheme Procedure} package-mapping @var{proc} [@var{cut?}] [#:deep? #f]"
+msgstr "{Процедура Scheme} inferior-package-location @var{package}"
 
 #. type: deffn
-#: doc/guix.texi:5694
-msgid "Return a procedure that, given a package, applies @var{proc} to all the packages depended on and returns the resulting package.  The procedure stops recursion when @var{cut?} returns true for a given package."
-msgstr ""
+#: doc/guix.texi:6435
+msgid "Return a procedure that, given a package, applies @var{proc} to all the packages depended on and returns the resulting package.  The procedure stops recursion when @var{cut?} returns true for a given package.  When @var{deep?} is true, @var{proc} is applied to implicit inputs as well."
+msgstr "Вернуть процедуру, которая для данного пакета применяет @var{proc} ко всем зависимым пакетам и возвращает полученный пакет.  Процедура останавливает рекурсию, когда @var{cut?} возвращает истину для данного пакета.  Когда @var{deep?} истинно, @var{proc} также применяется к неявным входным данным."
 
 #. type: subsection
-#: doc/guix.texi:5703
+#: doc/guix.texi:6444
 #, no-wrap
 msgid "@code{package} Reference"
-msgstr ""
+msgstr "@code{package} Ссылка"
 
 #. type: Plain text
-#: doc/guix.texi:5707
+#: doc/guix.texi:6448
 msgid "This section summarizes all the options available in @code{package} declarations (@pxref{Defining Packages})."
-msgstr ""
+msgstr "В этом разделе перечислены все параметры, доступные в объявлениях @code{package} (@pxref{Defining Packages})."
 
 #. type: deftp
-#: doc/guix.texi:5708
+#: doc/guix.texi:6449
 #, no-wrap
 msgid "{Data Type} package"
-msgstr ""
+msgstr "{Тип данных} package"
 
 #. type: deftp
-#: doc/guix.texi:5710
+#: doc/guix.texi:6451
 msgid "This is the data type representing a package recipe."
-msgstr ""
+msgstr "Это тип данных, представляющий рецепт пакета."
 
 #. type: table
-#: doc/guix.texi:5714
+#: doc/guix.texi:6455
 msgid "The name of the package, as a string."
-msgstr ""
+msgstr "Название пакета в виде строки."
 
 #. type: code{#1}
-#: doc/guix.texi:5715
+#: doc/guix.texi:6456
 #, no-wrap
 msgid "version"
-msgstr ""
+msgstr "версия"
 
 #. type: table
-#: doc/guix.texi:5717
+#: doc/guix.texi:6458
 msgid "The version of the package, as a string."
-msgstr ""
+msgstr "Версия пакета, в виде строки."
 
 #. type: code{#1}
-#: doc/guix.texi:5718 doc/guix.texi:9746 doc/guix.texi:11636
-#: doc/guix.texi:12077
+#: doc/guix.texi:6459 doc/guix.texi:11288 doc/guix.texi:13420
+#: doc/guix.texi:13884
 #, no-wrap
 msgid "source"
-msgstr ""
+msgstr "источник"
 
 #. type: table
-#: doc/guix.texi:5725
+#: doc/guix.texi:6466
 msgid "An object telling how the source code for the package should be acquired.  Most of the time, this is an @code{origin} object, which denotes a file fetched from the Internet (@pxref{origin Reference}).  It can also be any other ``file-like'' object such as a @code{local-file}, which denotes a file from the local file system (@pxref{G-Expressions, @code{local-file}})."
-msgstr ""
+msgstr "Объект, указывающий, как должен быть получен исходный код пакета.  В большинстве случаев это объект @code{origin}, который обозначает файл, полученный из Интернета (@pxref{origin Reference}).  Это также может быть любой другой объект, подобный файлу, например @code{local-file}, который представляет собой файл из локальной файловой системы (@pxref{G-Expressions, @code{local-file}})."
 
 #. type: code{#1}
-#: doc/guix.texi:5726
+#: doc/guix.texi:6467
 #, no-wrap
 msgid "build-system"
-msgstr ""
+msgstr "система сборки"
 
 #. type: table
-#: doc/guix.texi:5729
+#: doc/guix.texi:6470
 msgid "The build system that should be used to build the package (@pxref{Build Systems})."
-msgstr ""
+msgstr "Система сборки, которую следует использовать для сборки пакета (@pxref{Build Systems})."
 
 #. type: item
-#: doc/guix.texi:5730 doc/guix.texi:13886
+#: doc/guix.texi:6471 doc/guix.texi:15762
 #, no-wrap
 msgid "@code{arguments} (default: @code{'()})"
-msgstr ""
+msgstr "@code{arguments} (default: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:5733
+#: doc/guix.texi:6474
 msgid "The arguments that should be passed to the build system.  This is a list, typically containing sequential keyword-value pairs."
-msgstr ""
+msgstr "Аргументы, которые следует передать системе сборки.  Это список, обычно содержащий последовательные пары ключевого слова и значения."
 
 #. type: item
-#: doc/guix.texi:5734
+#: doc/guix.texi:6475
 #, no-wrap
 msgid "@code{inputs} (default: @code{'()})"
-msgstr ""
+msgstr "@code{inputs} (default: @code{'()})"
 
 #. type: itemx
-#: doc/guix.texi:5735
+#: doc/guix.texi:6476
 #, no-wrap
 msgid "@code{native-inputs} (default: @code{'()})"
-msgstr ""
+msgstr "@code{native-inputs} (default: @code{'()})"
 
 #. type: itemx
-#: doc/guix.texi:5736
+#: doc/guix.texi:6477
 #, no-wrap
 msgid "@code{propagated-inputs} (default: @code{'()})"
-msgstr ""
+msgstr "@code{propagated-inputs} (default: @code{'()})"
 
 #. type: cindex
-#: doc/guix.texi:5737
+#: doc/guix.texi:6478
 #, no-wrap
 msgid "inputs, of packages"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:5745
+#: doc/guix.texi:6486
 msgid "These fields list dependencies of the package.  Each one is a list of tuples, where each tuple has a label for the input (a string) as its first element, a package, origin, or derivation as its second element, and optionally the name of the output thereof that should be used, which defaults to @code{\"out\"} (@pxref{Packages with Multiple Outputs}, for more on package outputs).  For example, the list below specifies three inputs:"
-msgstr ""
+msgstr "В этих полях перечислены зависимости пакета.  Каждый из них представляет собой список кортежей, где каждый кортеж имеет метку для ввода (строку) в качестве своего первого элемента, пакет, источник или derivation в качестве второго элемента и, необязательно, имя его вывода, которое следует использовать, которое по умолчанию является @code{\"out\"} (@pxref{Packages with Multiple Outputs}, for more on package outputs).  Например, в списке ниже указаны три входа:"
 
 #. type: lisp
-#: doc/guix.texi:5750
+#: doc/guix.texi:6491
 #, no-wrap
 msgid ""
 "`((\"libffi\" ,libffi)\n"
 "  (\"libunistring\" ,libunistring)\n"
 "  (\"glib:bin\" ,glib \"bin\"))  ;the \"bin\" output of Glib\n"
 msgstr ""
+"`((\"libffi\" ,libffi)\n"
+"  (\"libunistring\" ,libunistring)\n"
+"  (\"glib:bin\" ,glib \"bin\"))  ;the \"bin\" output of Glib\n"
 
 #. type: cindex
-#: doc/guix.texi:5752
+#: doc/guix.texi:6493
 #, no-wrap
 msgid "cross compilation, package dependencies"
-msgstr ""
+msgstr "кросс-компиляция, зависимости пакетов"
 
 #. type: table
-#: doc/guix.texi:5758
+#: doc/guix.texi:6499
 msgid "The distinction between @code{native-inputs} and @code{inputs} is necessary when considering cross-compilation.  When cross-compiling, dependencies listed in @code{inputs} are built for the @emph{target} architecture; conversely, dependencies listed in @code{native-inputs} are built for the architecture of the @emph{build} machine."
-msgstr ""
+msgstr "Различие между @code{native-inputs} и @code{inputs} необходимо при рассмотрении кросс-компиляции.  При кросс-компиляции зависимости, перечисленные в @code{input}, создаются для архитектуры @emph{target}; и наоборот, зависимости, перечисленные в @code{native-inputs}, созданы для архитектуры машины, выполняющей @emph{сборку}."
 
 #. type: table
-#: doc/guix.texi:5763
+#: doc/guix.texi:6504
 msgid "@code{native-inputs} is typically used to list tools needed at build time, but not at run time, such as Autoconf, Automake, pkg-config, Gettext, or Bison.  @command{guix lint} can report likely mistakes in this area (@pxref{Invoking guix lint})."
-msgstr ""
+msgstr "@code{native-inputs} обычно используется для перечисления инструментов, необходимых во время сборки, но не во время выполнения, таких как Autoconf, Automake, pkg-config, Gettext или Bison.  @command{guix lint} может сообщить о вероятных ошибках в этой области (@pxref{Invoking guix lint})."
 
 #. type: anchor{#1}
-#: doc/guix.texi:5770
+#: doc/guix.texi:6512
 msgid "package-propagated-inputs"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:5770
-msgid "Lastly, @code{propagated-inputs} is similar to @code{inputs}, but the specified packages will be automatically installed alongside the package they belong to (@pxref{package-cmd-propagated-inputs, @command{guix package}}, for information on how @command{guix package} deals with propagated inputs.)"
-msgstr ""
+#: doc/guix.texi:6512
+msgid "Lastly, @code{propagated-inputs} is similar to @code{inputs}, but the specified packages will be automatically installed to profiles (@pxref{Features, the role of profiles in Guix}) alongside the package they belong to (@pxref{package-cmd-propagated-inputs, @command{guix package}}, for information on how @command{guix package} deals with propagated inputs)."
+msgstr "Наконец, @code{propagated-inputs} похоже на @code{inputs}, но указанные пакеты будут автоматически установлены в профили (@pxref{Features, the role of profiles in Guix}) вместе с пакетом, которому они принадлежат (@pxref{package-cmd-propagated-inputs, @command{guix package}}, for information on how @command{guix package} deals with propagated inputs)."
 
 #. type: table
-#: doc/guix.texi:5774
-msgid "For example this is necessary when a C/C++ library needs headers of another library to compile, or when a pkg-config file refers to another one @i{via} its @code{Requires} field."
-msgstr ""
+#: doc/guix.texi:6516
+msgid "For example this is necessary when packaging a C/C++ library that needs headers of another library to compile, or when a pkg-config file refers to another one @i{via} its @code{Requires} field."
+msgstr "Например, это необходимо при упаковке библиотеки C/C++, которой для компиляции требуются заголовки другой библиотеки, или когда файл pkg-config ссылается на другое поле @i{через} его @code{Requires}."
 
 #. type: table
-#: doc/guix.texi:5781
-msgid "Another example where @code{propagated-inputs} is useful is for languages that lack a facility to record the run-time search path akin to the @code{RUNPATH} of ELF files; this includes Guile, Python, Perl, and more.  To ensure that libraries written in those languages can find library code they depend on at run time, run-time dependencies must be listed in @code{propagated-inputs} rather than @code{inputs}."
-msgstr ""
+#: doc/guix.texi:6523
+msgid "Another example where @code{propagated-inputs} is useful is for languages that lack a facility to record the run-time search path akin to the @code{RUNPATH} of ELF files; this includes Guile, Python, Perl, and more.  When packaging libraries written in those languages, ensure they can find library code they depend on at run time by listing run-time dependencies in @code{propagated-inputs} rather than @code{inputs}."
+msgstr "Другой пример использования @code{propagated-inputs} - это языки, в которых отсутствует возможность записывать путь поиска во время выполнения, аналогичный @code{RUNPATH} файлов ELF; сюда входят Guile, Python, Perl и другие.  При упаковке библиотек, написанных на этих языках, убедитесь, что они могут найти код библиотеки, от которого они зависят, во время выполнения, указав зависимости времени выполнения в @code{propagated-inputs}, а не в @code{inputs}."
 
 #. type: item
-#: doc/guix.texi:5782
+#: doc/guix.texi:6524
 #, no-wrap
 msgid "@code{outputs} (default: @code{'(\"out\")})"
-msgstr ""
+msgstr "@code{outputs} (default: @code{'(\"out\")})"
 
 #. type: table
-#: doc/guix.texi:5785
+#: doc/guix.texi:6527
 msgid "The list of output names of the package.  @xref{Packages with Multiple Outputs}, for typical uses of additional outputs."
-msgstr ""
+msgstr "Список выходных имен пакета.  @xref{Packages with Multiple Outputs}, для типичного использования дополнительных выходов."
 
 #. type: item
-#: doc/guix.texi:5786
+#: doc/guix.texi:6528
 #, no-wrap
 msgid "@code{native-search-paths} (default: @code{'()})"
-msgstr ""
+msgstr "@code{native-search-paths} (default: @code{'()})"
 
 #. type: itemx
-#: doc/guix.texi:5787
+#: doc/guix.texi:6529
 #, no-wrap
 msgid "@code{search-paths} (default: @code{'()})"
-msgstr ""
+msgstr "@code{search-paths} (по умолчанию: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:5790
+#: doc/guix.texi:6532
 msgid "A list of @code{search-path-specification} objects describing search-path environment variables honored by the package."
-msgstr ""
+msgstr "Список объектов @code{search-path-specification}, описывающих переменные среды пути поиска, учитываемые пакетом."
 
 #. type: item
-#: doc/guix.texi:5791
+#: doc/guix.texi:6533
 #, no-wrap
 msgid "@code{replacement} (default: @code{#f})"
-msgstr ""
+msgstr "@code{replacement} (по умолчанию: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:5795
+#: doc/guix.texi:6537
 msgid "This must be either @code{#f} or a package object that will be used as a @dfn{replacement} for this package.  @xref{Security Updates, grafts}, for details."
-msgstr ""
+msgstr "Это должен быть либо @code{#f}, либо объект пакета, который будет использоваться как @dfn{замена} для этого пакета.  @xref{Security Updates, grafts}, чтобы узнать подробности."
 
 #. type: item
-#: doc/guix.texi:5796 doc/guix.texi:9738
+#: doc/guix.texi:6538 doc/guix.texi:11280
 #, no-wrap
 msgid "synopsis"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:5798
+#: doc/guix.texi:6540
 msgid "A one-line description of the package."
-msgstr ""
+msgstr "Описание пакета в одну строку."
 
-#. type: item
-#: doc/guix.texi:5799 doc/guix.texi:9739 doc/guix.texi:27538
+#. type: code{#1}
+#: doc/guix.texi:6541 doc/guix.texi:11281 doc/guix.texi:31199
+#: doc/guix.texi:31350
 #, no-wrap
 msgid "description"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:5801
+#: doc/guix.texi:6543
 msgid "A more elaborate description of the package."
-msgstr ""
+msgstr "Более подробное описание пакета."
 
 #. type: code{#1}
-#: doc/guix.texi:5802
+#: doc/guix.texi:6544
 #, no-wrap
 msgid "license"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:5803
+#: doc/guix.texi:6545
 #, no-wrap
 msgid "license, of packages"
-msgstr ""
+msgstr "лицензии пакетов"
 
 #. type: table
-#: doc/guix.texi:5806
+#: doc/guix.texi:6548
 msgid "The license of the package; a value from @code{(guix licenses)}, or a list of such values."
-msgstr ""
+msgstr "Лицензия пакета; значение из @code{(guix licenses)} или список таких значений."
 
 #. type: itemx
-#: doc/guix.texi:5807 doc/guix.texi:9747
+#: doc/guix.texi:6549 doc/guix.texi:11289
 #, no-wrap
 msgid "home-page"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:5809
+#: doc/guix.texi:6551
 msgid "The URL to the home-page of the package, as a string."
-msgstr ""
+msgstr "URL-адрес домашней страницы пакета в виде строки."
 
 #. type: item
-#: doc/guix.texi:5810
-#, no-wrap
-msgid "@code{supported-systems} (default: @var{%supported-systems})"
-msgstr ""
+#: doc/guix.texi:6552
+#, fuzzy, no-wrap
+#| msgid "@code{port} (default: @code{22})"
+msgid "@code{supported-systems} (default: @code{%supported-systems})"
+msgstr "@code{port} (default: @code{22})"
 
 #. type: table
-#: doc/guix.texi:5813
+#: doc/guix.texi:6555
 msgid "The list of systems supported by the package, as strings of the form @code{architecture-kernel}, for example @code{\"x86_64-linux\"}."
-msgstr ""
+msgstr "Список систем, поддерживаемых пакетом, в виде строк вида @code{architecture-kernel}, например @code{\"x86_64-linux\"}."
 
 #. type: item
-#: doc/guix.texi:5814
+#: doc/guix.texi:6556
 #, no-wrap
 msgid "@code{location} (default: source location of the @code{package} form)"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:5818
+#: doc/guix.texi:6560
 msgid "The source location of the package.  It is useful to override this when inheriting from another package, in which case this field is not automatically corrected."
-msgstr ""
+msgstr "Исходное расположение пакета.  Это полезно переопределить при наследовании от другого пакета, и в этом случае это поле не корректируется автоматически."
 
 #. type: deffn
-#: doc/guix.texi:5821
+#: doc/guix.texi:6563
 #, no-wrap
 msgid "{Scheme Syntax} this-package"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:5824
+#: doc/guix.texi:6566
 msgid "When used in the @emph{lexical scope} of a package field definition, this identifier resolves to the package being defined."
-msgstr ""
+msgstr "При использовании в @emph{lexical scope} определения поля пакета этот идентификатор преобразуется в определяемый пакет."
 
 #. type: deffn
-#: doc/guix.texi:5827
+#: doc/guix.texi:6569
 msgid "The example below shows how to add a package as a native input of itself when cross-compiling:"
-msgstr ""
+msgstr "В приведенном ниже примере показано, как добавить пакет в качестве собственного ввода при кросс-компиляции:"
 
 #. type: lisp
-#: doc/guix.texi:5832
+#: doc/guix.texi:6574
 #, no-wrap
 msgid ""
 "(package\n"
@@ -12069,9 +13720,13 @@ msgid ""
 "  ;; ...\n"
 "\n"
 msgstr ""
+"(package\n"
+"  (name \"guile\")\n"
+"  ;; ...\n"
+"\n"
 
 #. type: lisp
-#: doc/guix.texi:5838
+#: doc/guix.texi:6580
 #, no-wrap
 msgid ""
 "  ;; When cross-compiled, Guile, for example, depends on\n"
@@ -12080,1778 +13735,2669 @@ msgid ""
 "                     `((\"self\" ,this-package))\n"
 "                     '())))\n"
 msgstr ""
+"  ;; When cross-compiled, Guile, for example, depends on\n"
+"  ;; a native version of itself.  Add it here.\n"
+"  (native-inputs (if (%current-target-system)\n"
+"                     `((\"self\" ,this-package))\n"
+"                     '())))\n"
 
 #. type: deffn
-#: doc/guix.texi:5841
+#: doc/guix.texi:6583
 msgid "It is an error to refer to @code{this-package} outside a package definition."
+msgstr "Ссылка на @code{this-package} вне определения пакета является ошибкой."
+
+#. type: Plain text
+#: doc/guix.texi:6589
+msgid "Because packages are regular Scheme objects that capture a complete dependency graph and associated build procedures, it is often useful to write procedures that take a package and return a modified version thereof according to some parameters.  Below are a few examples."
+msgstr "Поскольку пакеты являются обычными Scheme объектами, которые захватывают полный граф зависимостей и связанные процедуры сборки, часто бывает полезно написать процедуры, которые принимают пакет и возвращают его измененную версию в соответствии с некоторыми параметрами.  Ниже приведены несколько примеров."
+
+#. type: cindex
+#: doc/guix.texi:6590
+#, no-wrap
+msgid "tool chain, choosing a package's tool chain"
+msgstr "tool chain, выбор инструментов пакета"
+
+#. type: deffn
+#: doc/guix.texi:6591
+#, fuzzy, no-wrap
+#| msgid "{Scheme Procedure} inferior-package-location @var{package}"
+msgid "{Scheme Procedure} package-with-c-toolchain @var{package} @var{toolchain}"
+msgstr "{Процедура Scheme} inferior-package-location @var{package}"
+
+#. type: deffn
+#: doc/guix.texi:6596
+msgid "Return a variant of @var{package} that uses @var{toolchain} instead of the default GNU C/C++ toolchain.  @var{toolchain} must be a list of inputs (label/package tuples) providing equivalent functionality, such as the @code{gcc-toolchain} package."
+msgstr "Вернуть вариант @var{package}, в котором используется @var{toolchain} вместо стандартного набора инструментов GNU C/C++.  @var{toolchain} должен быть списком входов (кортежи меток/пакетов), обеспечивающих эквивалентную функциональность, например, пакет @code{gcc-toolchain}."
+
+#. type: deffn
+#: doc/guix.texi:6600
+msgid "The example below returns a variant of the @code{hello} package built with GCC@tie{}10.x and the rest of the GNU tool chain (Binutils and the GNU C Library) instead of the default tool chain:"
+msgstr "Пример ниже возвращает вариант пакета @code{hello}, созданный с помощью GCC@tie{}10.x и остальной части GNU утилит (Binutils и библиотеки GNU C) вместо цепочки инструментов по умолчанию:"
+
+#. type: lisp
+#: doc/guix.texi:6604
+#, no-wrap
+msgid ""
+"(let ((toolchain (specification->package \"gcc-toolchain@@10\")))\n"
+"  (package-with-c-toolchain hello `((\"toolchain\" ,toolchain))))\n"
 msgstr ""
 
+#. type: deffn
+#: doc/guix.texi:6612
+msgid "The build tool chain is part of the @dfn{implicit inputs} of packages---it's usually not listed as part of the various ``inputs'' fields and is instead pulled in by the build system.  Consequently, this procedure works by changing the build system of @var{package} so that it pulls in @var{toolchain} instead of the defaults.  @ref{Build Systems}, for more on build systems."
+msgstr "Инструменты сборки являются частью @dfn{неявных входных данных} пакетов - обычно они не указываются как часть различных полей ``входных данных'', а вместо этого извлекается системой сборки.  Следовательно, эта процедура работает путем изменения системы сборки @var{package}, так что она использует @var{toolchain} вместо значений по умолчанию.  @ref{Build Systems}, чтобы узнать больше о системах сборки."
+
 #. type: subsection
-#: doc/guix.texi:5844
+#: doc/guix.texi:6615
 #, no-wrap
 msgid "@code{origin} Reference"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:5848
-msgid "This section summarizes all the options available in @code{origin} declarations (@pxref{Defining Packages})."
-msgstr ""
+#: doc/guix.texi:6623
+msgid "This section documents @dfn{origins}.  An @code{origin} declaration specifies data that must be ``produced''---downloaded, usually---and whose content hash is known in advance.  Origins are primarily used to represent the source code of packages (@pxref{Defining Packages}).  For that reason, the @code{origin} form allows you to declare patches to apply to the original source code as well as code snippets to modify it."
+msgstr "Этот раздел документирует @dfn{origins}.  Объявление @code{origin} определяет данные, которые должны быть ``произведены''---обычно загружены---и чей хэш содержимого известен заранее.  Origins в основном используются для представления исходного кода пакетов (@pxref{Defining Packages}).  По этой причине форма @code{origin} позволяет вам объявлять исправления для применения к исходному исходному коду, а также фрагменты кода для его изменения."
 
 #. type: deftp
-#: doc/guix.texi:5849
+#: doc/guix.texi:6624
 #, no-wrap
 msgid "{Data Type} origin"
-msgstr ""
+msgstr "{Тип данных} origin"
 
 #. type: deftp
-#: doc/guix.texi:5851
+#: doc/guix.texi:6626
 msgid "This is the data type representing a source code origin."
-msgstr ""
+msgstr "Это тип данных, представляющий источник исходного кода."
 
 #. type: code{#1}
-#: doc/guix.texi:5853 doc/guix.texi:20431
+#: doc/guix.texi:6628 doc/guix.texi:22674
 #, no-wrap
 msgid "uri"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:5858
+#: doc/guix.texi:6633
 msgid "An object containing the URI of the source.  The object type depends on the @code{method} (see below).  For example, when using the @var{url-fetch} method of @code{(guix download)}, the valid @code{uri} values are: a URL represented as a string, or a list thereof."
-msgstr ""
+msgstr "Объект, содержащий URI источника.  Тип объекта зависит от @code{method} (см. ниже).  Например, при использовании метода @var{url-fetch} для @code{(guix download)} допустимые значения @code{uri}: URL, представленный в виде строки, или их список."
+
+#. type: cindex
+#: doc/guix.texi:6634
+#, no-wrap
+msgid "fixed-output derivations, for download"
+msgstr "derivation'ы с фиксированным выводом, для загрузки"
 
 #. type: code{#1}
-#: doc/guix.texi:5859
+#: doc/guix.texi:6635
 #, no-wrap
 msgid "method"
-msgstr ""
+msgstr "метод"
 
 #. type: table
-#: doc/guix.texi:5861
-msgid "A procedure that handles the URI."
-msgstr ""
+#: doc/guix.texi:6642
+msgid "A monadic procedure that handles the given URI.  The procedure must accept at least three arguments: the value of the @code{uri} field and the hash algorithm and hash value specified by the @code{hash} field.  It must return a store item or a derivation in the store monad (@pxref{The Store Monad}); most methods return a fixed-output derivation (@pxref{Derivations})."
+msgstr "Монадическая процедура, обрабатывающая данный URI.  Процедура должна принимать по крайней мере три аргумента: значение поля @code{uri}, а также алгоритм хеширования и значение хеш-функции, указанные в поле @code{hash}.  Она должна возвращать элемент store или derivation в store монаде (@pxref{The Store Monad}); большинство методов возвращают derivation с фиксированным выводом (@pxref{Derivations})."
 
 #. type: table
-#: doc/guix.texi:5863
-msgid "Examples include:"
-msgstr ""
-
-#. type: item
-#: doc/guix.texi:5865
-#, no-wrap
-msgid "@var{url-fetch} from @code{(guix download)}"
-msgstr ""
-
-#. type: table
-#: doc/guix.texi:5868
-msgid "download a file from the HTTP, HTTPS, or FTP URL specified in the @code{uri} field;"
-msgstr ""
-
-#. type: vindex
-#: doc/guix.texi:5869 doc/guix.texi:8962
-#, no-wrap
-msgid "git-fetch"
-msgstr ""
+#: doc/guix.texi:6646
+msgid "Commonly used methods include @code{url-fetch}, which fetches data from a URL, and @code{git-fetch}, which fetches data from a Git repository (see below)."
+msgstr "Обычно используемые методы включают @code{url-fetch}, который извлекает данные из URL-адреса, и @code{git-fetch}, который извлекает данные из репозитория Git (см. ниже)."
 
-#. type: item
-#: doc/guix.texi:5870
+#. type: code{#1}
+#: doc/guix.texi:6647
 #, no-wrap
-msgid "@var{git-fetch} from @code{(guix git-download)}"
+msgid "sha256"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:5874
-msgid "clone the Git version control repository, and check out the revision specified in the @code{uri} field as a @code{git-reference} object; a @code{git-reference} looks like this:"
-msgstr ""
-
-#. type: lisp
-#: doc/guix.texi:5879
-#, fuzzy, no-wrap
-#| msgid "git clone https://git.savannah.gnu.org/git/guix.git\n"
-msgid ""
-"(git-reference\n"
-"  (url \"https://git.savannah.gnu.org/git/hello.git\")\n"
-"  (commit \"v2.10\"))\n"
-msgstr "git clone https://git.savannah.gnu.org/git/guix.git\n"
+#: doc/guix.texi:6651
+msgid "A bytevector containing the SHA-256 hash of the source.  This is equivalent to providing a @code{content-hash} SHA256 object in the @code{hash} field described below."
+msgstr "Байт-вектор, содержащий хэш SHA-256 источника.  Это эквивалент предоставлению объекта SHA256 @code{content-hash} в поле @code{hash}, описанном ниже."
 
 #. type: code{#1}
-#: doc/guix.texi:5882
+#: doc/guix.texi:6652
 #, no-wrap
-msgid "sha256"
+msgid "hash"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:5886
-msgid "A bytevector containing the SHA-256 hash of the source.  Typically the @code{base32} form is used here to generate the bytevector from a base-32 string."
-msgstr ""
+#: doc/guix.texi:6655
+msgid "The @code{content-hash} object of the source---see below for how to use @code{content-hash}."
+msgstr "Объект @code{content-hash} источника---см. ниже, как использовать @code{content-hash}."
 
 #. type: table
-#: doc/guix.texi:5890
+#: doc/guix.texi:6659
 msgid "You can obtain this information using @code{guix download} (@pxref{Invoking guix download}) or @code{guix hash} (@pxref{Invoking guix hash})."
-msgstr ""
+msgstr "Вы можете получить эту информацию, используя @code{guix download} (@pxref{Invoking guix download}) или @code{guix hash} (@pxref{Invoking guix hash})."
 
 #. type: item
-#: doc/guix.texi:5891
+#: doc/guix.texi:6660
 #, no-wrap
 msgid "@code{file-name} (default: @code{#f})"
-msgstr ""
+msgstr "@code{file-name} (по умолчанию: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:5897
+#: doc/guix.texi:6666
 msgid "The file name under which the source code should be saved.  When this is @code{#f}, a sensible default value will be used in most cases.  In case the source is fetched from a URL, the file name from the URL will be used.  For version control checkouts, it is recommended to provide the file name explicitly because the default is not very descriptive."
-msgstr ""
+msgstr "Имя файла, под которым должен быть сохранен исходный код.  Когда это @code{#f}, в большинстве случаев будет использоваться разумное значение по умолчанию.  В случае, если источник извлекается из URL-адреса, будет использоваться имя файла из URL-адреса.  Для проверок контроля версий рекомендуется явно указывать имя файла, поскольку значение по умолчанию не очень информативно."
 
 #. type: item
-#: doc/guix.texi:5898
+#: doc/guix.texi:6667
 #, no-wrap
 msgid "@code{patches} (default: @code{'()})"
-msgstr ""
+msgstr "@code{patches} (по умолчанию: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:5901
+#: doc/guix.texi:6670
 msgid "A list of file names, origins, or file-like objects (@pxref{G-Expressions, file-like objects}) pointing to patches to be applied to the source."
-msgstr ""
+msgstr "Список имен файлов, источников или объектов подобных файлами (@pxref{G-Expressions, file-like objects}), указывающих на исправления, которые будут применены к источнику."
 
 #. type: table
-#: doc/guix.texi:5905
+#: doc/guix.texi:6674
 msgid "This list of patches must be unconditional.  In particular, it cannot depend on the value of @code{%current-system} or @code{%current-target-system}."
-msgstr ""
+msgstr "Данный список исправлений должен быть безвариативным.  В частности, он не может зависеть от значения @code{%current-system} или @code{%current-target-system}."
 
 #. type: item
-#: doc/guix.texi:5906
+#: doc/guix.texi:6675
 #, no-wrap
 msgid "@code{snippet} (default: @code{#f})"
-msgstr ""
+msgstr "@code{snippet} (по умолчанию: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:5910
+#: doc/guix.texi:6679
 msgid "A G-expression (@pxref{G-Expressions}) or S-expression that will be run in the source directory.  This is a convenient way to modify the source, sometimes more convenient than a patch."
-msgstr ""
+msgstr "G-выражение (@pxref{G-Expressions}) или S-выражение, которое будет выполнено в исходном каталоге.  Это удобный способ изменить исходный код, иногда более удобный, чем патч."
 
 #. type: item
-#: doc/guix.texi:5911
+#: doc/guix.texi:6680
 #, no-wrap
 msgid "@code{patch-flags} (default: @code{'(\"-p1\")})"
-msgstr ""
+msgstr "@code{patch-flags} (по умолчанию: @code{'(\"-p1\")})"
 
 #. type: table
-#: doc/guix.texi:5914
+#: doc/guix.texi:6683
 msgid "A list of command-line flags that should be passed to the @code{patch} command."
-msgstr ""
+msgstr "Список флагов командной строки, которые следует передать команде @code{patch}."
 
 #. type: item
-#: doc/guix.texi:5915
+#: doc/guix.texi:6684
 #, no-wrap
 msgid "@code{patch-inputs} (default: @code{#f})"
-msgstr ""
+msgstr "@code{patch-inputs} (по умолчанию: @code{#f})\""
 
 #. type: table
-#: doc/guix.texi:5919
+#: doc/guix.texi:6688
 msgid "Input packages or derivations to the patching process.  When this is @code{#f}, the usual set of inputs necessary for patching are provided, such as GNU@tie{}Patch."
-msgstr ""
+msgstr "Входные пакеты или derivation'ы для процесса исправления.  Когда это @code{#f}, предоставляется обычный набор входных данных, необходимых для исправления, например GNU@tie{}Patch."
 
 #. type: item
-#: doc/guix.texi:5920 doc/guix.texi:20326
+#: doc/guix.texi:6689 doc/guix.texi:22547
 #, no-wrap
 msgid "@code{modules} (default: @code{'()})"
-msgstr ""
+msgstr "@code{modules} (по умолчанию: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:5923
+#: doc/guix.texi:6692
 msgid "A list of Guile modules that should be loaded during the patching process and while running the code in the @code{snippet} field."
-msgstr ""
+msgstr "Список модулей Guile, которые должны быть загружены в процессе установки исправлений и при выполнении кода, в поле @code{snippet}."
 
 #. type: item
-#: doc/guix.texi:5924
+#: doc/guix.texi:6693
 #, no-wrap
 msgid "@code{patch-guile} (default: @code{#f})"
-msgstr ""
+msgstr "@code{patch-guile} (по умолчанию: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:5927
+#: doc/guix.texi:6696
 msgid "The Guile package that should be used in the patching process.  When this is @code{#f}, a sensible default is used."
+msgstr "Пакет Guile, который следует использовать в процессе установки исправлений.  Когда это @code{#f}, используется разумное значение по умолчанию."
+
+#. type: deftp
+#: doc/guix.texi:6699
+#, no-wrap
+msgid "{Data Type} content-hash @var{value} [@var{algorithm}]"
+msgstr "{Тип данных} content-hash @var{value} [@var{algorithm}]"
+
+#. type: deftp
+#: doc/guix.texi:6703
+msgid "Construct a content hash object for the given @var{algorithm}, and with @var{value} as its hash value.  When @var{algorithm} is omitted, assume it is @code{sha256}."
+msgstr "Создать объект хэша содержимого для заданного @var{algorithm} и с @var{value} в качестве его хеш-значения.  Если @var{algorithm} опущен, предполагается, что это @code{sha256}."
+
+#. type: deftp
+#: doc/guix.texi:6706
+msgid "@var{value} can be a literal string, in which case it is base32-decoded, or it can be a bytevector."
+msgstr "@var{value} может быть буквальной строкой, и в этом случае она декодируется с помощью base32, или может быть байтовым вектором."
+
+#. type: deftp
+#: doc/guix.texi:6708
+#, fuzzy
+#| msgid "The following dependencies are optional:"
+msgid "The following forms are all equivalent:"
+msgstr "Следующие зависимости необязательны:"
+
+#. type: lisp
+#: doc/guix.texi:6717
+#, no-wrap
+msgid ""
+"(content-hash \"05zxkyz9bv3j9h0xyid1rhvh3klhsmrpkf3bcs6frvlgyr2gwilj\")\n"
+"(content-hash \"05zxkyz9bv3j9h0xyid1rhvh3klhsmrpkf3bcs6frvlgyr2gwilj\"\n"
+"              sha256)\n"
+"(content-hash (base32\n"
+"               \"05zxkyz9bv3j9h0xyid1rhvh3klhsmrpkf3bcs6frvlgyr2gwilj\"))\n"
+"(content-hash (base64 \"kkb+RPaP7uyMZmu4eXPVkM4BN8yhRd8BTHLslb6f/Rc=\")\n"
+"              sha256)\n"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:6722
+msgid "Technically, @code{content-hash} is currently implemented as a macro.  It performs sanity checks at macro-expansion time, when possible, such as ensuring that @var{value} has the right size for @var{algorithm}."
+msgstr "Технически @code{content-hash} в настоящее время реализован как макрос.  Он выполняет проверки работоспособности во время раскрытия макроса, когда это возможно, например, гарантирует, что @var{value} имеет правильный размер для @var{algorithm}."
+
+#. type: Plain text
+#: doc/guix.texi:6728
+msgid "As we have seen above, how exactly the data an origin refers to is retrieved is determined by its @code{method} field.  The @code{(guix download)} module provides the most common method, @code{url-fetch}, described below."
+msgstr "Как мы видели выше, то, как именно извлекаются данные, на которые ссылается источник, определяется его полем @code{method}.  Модуль @code{(guix download)} предоставляет наиболее распространенный метод @code{url-fetch}, описанный ниже."
+
+#. type: deffn
+#: doc/guix.texi:6729
+#, fuzzy, no-wrap
+msgid "{Scheme Procedure} url-fetch @var{url} @var{hash-algo} @var{hash} @"
+msgstr "{Scheme Procedure} lookup-inferior-packages @var{inferior} @var{name} @"
+
+#. type: deffn
+#: doc/guix.texi:6737
+msgid "[name] [#:executable? #f] Return a fixed-output derivation that fetches data from @var{url} (a string, or a list of strings denoting alternate URLs), which is expected to have hash @var{hash} of type @var{hash-algo} (a symbol).  By default, the file name is the base name of URL; optionally, @var{name} can specify a different file name.  When @var{executable?} is true, make the downloaded file executable."
+msgstr "[name] [#:executable? #f] Возвращает derivation с фиксированным выводом, которая извлекает данные из @var{url} (строка или список строк, обозначающих альтернативные URL-адреса), который, как ожидается, будет иметь хэш @var{hash} типа @var{hash-algo} (символ).  По умолчанию имя файла - это базовое имя URL-адреса; при желании @var{name} может указывать другое имя файла.  Если @var{executable?} истинно, загруженный файл будет исполняемым."
+
+#. type: deffn
+#: doc/guix.texi:6740
+msgid "When one of the URL starts with @code{mirror://}, then its host part is interpreted as the name of a mirror scheme, taken from @file{%mirror-file}."
+msgstr "Когда один из URL-адресов начинается с @code{mirror://}, тогда его хост-часть интерпретируется как имя схемы зеркала, взятой из @file{%mirror-file}."
+
+#. type: deffn
+#: doc/guix.texi:6743
+msgid "Alternatively, when URL starts with @code{file://}, return the corresponding file name in the store."
+msgstr "В качестве альтернативного варианта, если URL-адрес начинается с @code{file://}, вернуть соответствующее имя файла в store."
+
+#. type: Plain text
+#: doc/guix.texi:6749
+msgid "Likewise, the @code{(guix git-download)} module defines the @code{git-download} origin method, which fetches data from a Git version control repository, and the @code{git-reference} data type to describe the repository and revision to fetch."
+msgstr "Аналогичным образом, модуль @code{(guix git-download)} определяет метод источника @code{git-download}, который извлекает данные из репозитория управления версиями Git, и тип данных @code{git-reference} для описания репозиторий и ревизия для загрузки."
+
+#. type: deffn
+#: doc/guix.texi:6750
+#, fuzzy, no-wrap
+#| msgid "{Scheme Procedure} mixed-text-file @var{name} @var{text} @dots{}"
+msgid "{Scheme Procedure} git-fetch @var{ref} @var{hash-algo} @var{hash}"
+msgstr "{Scheme Procedure} mixed-text-file @var{name} @var{text} @dots{}"
+
+#. type: deffn
+#: doc/guix.texi:6755
+msgid "Return a fixed-output derivation that fetches @var{ref}, a @code{<git-reference>} object.  The output is expected to have recursive hash @var{hash} of type @var{hash-algo} (a symbol).  Use @var{name} as the file name, or a generic name if @code{#f}."
+msgstr "Вернуть derivation с фиксированным выводом, которая выбирает объект @var{ref}, @code{<git-reference>}.  Ожидается, что на выходе будет рекурсивный хеш @var{hash} типа @var{hash-algo} (символ).  Использовать @var{name} в качестве имени файла или общее имя, если @code{#f}."
+
+#. type: deftp
+#: doc/guix.texi:6757
+#, fuzzy, no-wrap
+#| msgid "{Data Type} build-machine"
+msgid "{Data Type} git-reference"
+msgstr "{Тип данных} build-machine"
+
+#. type: deftp
+#: doc/guix.texi:6760
+#, fuzzy
+#| msgid "Manage the operating system configuration."
+msgid "This data type represents a Git reference for @code{git-fetch} to retrieve."
+msgstr "Управление конфигурацией операционной системы."
+
+#. type: code{#1}
+#: doc/guix.texi:6762 doc/guix.texi:21113
+#, no-wrap
+msgid "url"
 msgstr ""
 
+#. type: table
+#: doc/guix.texi:6764
+msgid "The URL of the Git repository to clone."
+msgstr "URL-адрес репозитория Git для клонирования."
+
+#. type: code{#1}
+#: doc/guix.texi:6765
+#, no-wrap
+msgid "commit"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:6769
+msgid "This string denotes either the commit to fetch (a hexadecimal string, either the full SHA1 commit or a ``short'' commit string; the latter is not recommended) or the tag to fetch."
+msgstr "Эта строка обозначает либо коммит для загрузки (шестнадцатеричная строка, либо полный SHA1 коммит, либо ``short'' коммит строка; последнее не рекомендуется), либо тег."
+
+#. type: item
+#: doc/guix.texi:6770
+#, fuzzy, no-wrap
+#| msgid "@code{features} (default: @code{'()})"
+msgid "@code{recursive?} (default: @code{#f})"
+msgstr "@code{features} (default: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:6772
+msgid "This Boolean indicates whether to recursively fetch Git sub-modules."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:6776
+msgid "The example below denotes the @code{v2.10} tag of the GNU@tie{}Hello repository:"
+msgstr "Пример ниже обозначает тег @code{v2.10} репозитория GNU@tie{}Hello:"
+
+#. type: lisp
+#: doc/guix.texi:6781
+#, fuzzy, no-wrap
+#| msgid "git clone https://git.savannah.gnu.org/git/guix.git\n"
+msgid ""
+"(git-reference\n"
+"  (url \"https://git.savannah.gnu.org/git/hello.git\")\n"
+"  (commit \"v2.10\"))\n"
+msgstr "git clone https://git.savannah.gnu.org/git/guix.git\n"
+
+#. type: deftp
+#: doc/guix.texi:6785
+msgid "This is equivalent to the reference below, which explicitly names the commit:"
+msgstr "Это эквивалентно приведенной ниже ссылке, которая явно называет коммит:"
+
+#. type: lisp
+#: doc/guix.texi:6790
+#, fuzzy, no-wrap
+#| msgid "git clone https://git.savannah.gnu.org/git/guix.git\n"
+msgid ""
+"(git-reference\n"
+"  (url \"https://git.savannah.gnu.org/git/hello.git\")\n"
+"  (commit \"dc7dc56a00e48fe6f231a58f6537139fe2908fb9\"))\n"
+msgstr "git clone https://git.savannah.gnu.org/git/guix.git\n"
+
 #. type: cindex
-#: doc/guix.texi:5934
+#: doc/guix.texi:6796
 #, no-wrap
 msgid "build system"
-msgstr ""
+msgstr "система сборки"
 
 #. type: Plain text
-#: doc/guix.texi:5939
+#: doc/guix.texi:6801
 msgid "Each package definition specifies a @dfn{build system} and arguments for that build system (@pxref{Defining Packages}).  This @code{build-system} field represents the build procedure of the package, as well as implicit dependencies of that build procedure."
-msgstr ""
+msgstr "В каждом определении пакета указывается @dfn{система сборки} и аргументы для этой системы сборки (@pxref{Defining Packages}).  Это поле @code{build-system} представляет процедуру сборки пакета, а также неявные зависимости этой процедуры сборки."
 
 #. type: Plain text
-#: doc/guix.texi:5943
+#: doc/guix.texi:6805
 msgid "Build systems are @code{<build-system>} objects.  The interface to create and manipulate them is provided by the @code{(guix build-system)} module, and actual build systems are exported by specific modules."
-msgstr ""
+msgstr "Системы сборки - это объекты @code{<build-system>}.  Интерфейс для их создания и управления ими предоставляется модулем @code{(guix build-system)}, а фактические системы сборки экспортируются определенными модулями."
 
 #. type: cindex
-#: doc/guix.texi:5944
+#: doc/guix.texi:6806
 #, no-wrap
 msgid "bag (low-level package representation)"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:5951
-msgid "Under the hood, build systems first compile package objects to @dfn{bags}.  A @dfn{bag} is like a package, but with less ornamentation---in other words, a bag is a lower-level representation of a package, which includes all the inputs of that package, including some that were implicitly added by the build system.  This intermediate representation is then compiled to a derivation (@pxref{Derivations})."
-msgstr ""
+#: doc/guix.texi:6816
+msgid "Under the hood, build systems first compile package objects to @dfn{bags}.  A @dfn{bag} is like a package, but with less ornamentation---in other words, a bag is a lower-level representation of a package, which includes all the inputs of that package, including some that were implicitly added by the build system.  This intermediate representation is then compiled to a derivation (@pxref{Derivations}).  The @code{package-with-c-toolchain} is an example of a way to change the implicit inputs that a package's build system pulls in (@pxref{package Reference, @code{package-with-c-toolchain}})."
+msgstr "Под капотом системы сборки сначала компилируют объекты пакета в @dfn{bag}.  @dfn{bag} похож на пакет, но с меньшим количеством украшений---другими словами, bag - это представление пакета нижнего уровня, которое включает в себя все входные данные этого пакета, включая те, которые были неявно добавлены система сборки.  Это промежуточное представление затем компилируется в derivation (@pxref{Derivations}).  @code{package-with-c-toolchain} - это пример способа изменить неявные входные данные, которые использует система сборки пакета (@pxref{package Reference, @code{package-with-c-toolchain}})."
 
 #. type: Plain text
-#: doc/guix.texi:5959
+#: doc/guix.texi:6824
 msgid "Build systems accept an optional list of @dfn{arguments}.  In package definitions, these are passed @i{via} the @code{arguments} field (@pxref{Defining Packages}).  They are typically keyword arguments (@pxref{Optional Arguments, keyword arguments in Guile,, guile, GNU Guile Reference Manual}).  The value of these arguments is usually evaluated in the @dfn{build stratum}---i.e., by a Guile process launched by the daemon (@pxref{Derivations})."
-msgstr ""
+msgstr "Системы сборки принимают необязательный список из @dfn{arguments}.  В определениях пакетов они передаются @i{через} поле @code{arguments} (@pxref{Defining Packages}).  Обычно это аргументы ключевого слова (@pxref{Optional Arguments, keyword arguments in Guile,, guile, GNU Guile Reference Manual}).  Значение этих аргументов обычно оценивается в @dfn{build stratum}---то есть процессом Guile, запущенным демоном (@pxref{Derivations})."
 
 #. type: Plain text
-#: doc/guix.texi:5963
+#: doc/guix.texi:6828
 msgid "The main build system is @code{gnu-build-system}, which implements the standard build procedure for GNU and many other packages.  It is provided by the @code{(guix build-system gnu)} module."
-msgstr ""
+msgstr "Основная система сборки - это @code{gnu-build-system}, которая реализует стандартную процедуру сборки для GNU и многих других пакетов.  Она предоставляется модулем @code{(guix build-system gnu)}."
 
 #. type: defvr
-#: doc/guix.texi:5964
+#: doc/guix.texi:6829
 #, no-wrap
 msgid "{Scheme Variable} gnu-build-system"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:5968
+#: doc/guix.texi:6833
 msgid "@code{gnu-build-system} represents the GNU Build System, and variants thereof (@pxref{Configuration, configuration and makefile conventions,, standards, GNU Coding Standards})."
-msgstr ""
+msgstr "@code{gnu-build-system} представляет систему сборки GNU и ее варианты (@pxref{Configuration, configuration and makefile conventions,, standards, GNU Coding Standards})."
 
 #. type: cindex
-#: doc/guix.texi:5969 doc/guix.texi:6768
+#: doc/guix.texi:6834 doc/guix.texi:7669 doc/guix.texi:8086
 #, no-wrap
 msgid "build phases"
-msgstr ""
+msgstr "build phases"
 
 #. type: defvr
-#: doc/guix.texi:5976
+#: doc/guix.texi:6841
 msgid "In a nutshell, packages using it are configured, built, and installed with the usual @code{./configure && make && make check && make install} command sequence.  In practice, a few additional steps are often needed.  All these steps are split up in separate @dfn{phases}, notably@footnote{Please see the @code{(guix build gnu-build-system)} modules for more details about the build phases.}:"
-msgstr ""
+msgstr "Вкратце, пакеты, использующие его, настраиваются, собираются и устанавливаются с помощью обычной последовательности команд @code{./configure && make && make check && make install}.  На практике часто требуется несколько дополнительных шагов.  Все эти шаги разделены на отдельные @dfn{фазы}, в частности @footnote{Please see the @code{(guix build gnu-build-system)} modules for more details about the build phases.}:"
 
 #. type: item
-#: doc/guix.texi:5978
+#: doc/guix.texi:6843
 #, no-wrap
 msgid "unpack"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:5982
+#: doc/guix.texi:6847
 msgid "Unpack the source tarball, and change the current directory to the extracted source tree.  If the source is actually a directory, copy it to the build tree, and enter that directory."
-msgstr ""
+msgstr "Распаковать архив исходных текстов и измените текущий каталог на извлеченное дерево исходных текстов.  Если источник на самом деле является каталогом, скопировать его в дерево сборки и войдите в этот каталог."
 
 #. type: item
-#: doc/guix.texi:5983
+#: doc/guix.texi:6848
 #, no-wrap
 msgid "patch-source-shebangs"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:5987
+#: doc/guix.texi:6852
 msgid "Patch shebangs encountered in source files so they refer to the right store file names.  For instance, this changes @code{#!/bin/sh} to @code{#!/gnu/store/@dots{}-bash-4.3/bin/sh}."
-msgstr ""
+msgstr "Изменить shebang, встречающиеся в исходных файлах, чтобы они ссылались на правильные имена файлов хранилища.  Например, это изменяет @code{#!/bin/sh} на @code{#!/gnu/store/@dots{}-bash-4.3/bin/sh}."
 
 #. type: item
-#: doc/guix.texi:5988 doc/guix.texi:6726 doc/guix.texi:6774
+#: doc/guix.texi:6853 doc/guix.texi:7626 doc/guix.texi:7675
 #, no-wrap
 msgid "configure"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:5992
-msgid "Run the @file{configure} script with a number of default options, such as @code{--prefix=/gnu/store/@dots{}}, as well as the options specified by the @code{#:configure-flags} argument."
-msgstr ""
+#: doc/guix.texi:6857
+msgid "Run the @file{configure} script with a number of default options, such as @option{--prefix=/gnu/store/@dots{}}, as well as the options specified by the @code{#:configure-flags} argument."
+msgstr "Запустить сценарий @file{configure} с несколькими параметрами по умолчанию, такими как @option{--prefix=/gnu/store/@dots{}}, а также параметрами, указанными в @code{#:configure-flags} аргументе."
 
 #. type: item
-#: doc/guix.texi:5993 doc/guix.texi:6259 doc/guix.texi:6731 doc/guix.texi:6778
-#: doc/guix.texi:26698
+#: doc/guix.texi:6858 doc/guix.texi:7116 doc/guix.texi:7632 doc/guix.texi:7679
+#: doc/guix.texi:30320
 #, no-wrap
 msgid "build"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:5997
+#: doc/guix.texi:6862
 msgid "Run @code{make} with the list of flags specified with @code{#:make-flags}.  If the @code{#:parallel-build?} argument is true (the default), build with @code{make -j}."
-msgstr ""
+msgstr "Запустить @code{make} со списком флагов, указанным с помощью @code{#:make-flags}.  Если аргумент @code{#:parallel-build?} истинен (по умолчанию), выполнить сборку с @code{make -j}."
 
 #. type: item
-#: doc/guix.texi:5998 doc/guix.texi:6269 doc/guix.texi:6735
+#: doc/guix.texi:6863 doc/guix.texi:7126 doc/guix.texi:7636
 #, no-wrap
 msgid "check"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:6003
+#: doc/guix.texi:6868
 msgid "Run @code{make check}, or some other target specified with @code{#:test-target}, unless @code{#:tests? #f} is passed.  If the @code{#:parallel-tests?} argument is true (the default), run @code{make check -j}."
-msgstr ""
+msgstr "Запустить @code{make check} или другой target, указанный с помощью @code{#:test-target}, если только @code{#:tests? #f} пройден.  Если аргумент @code{#:parallel-tests?} истинен (по умолчанию), запустить @code{make check -j}."
 
 #. type: item
-#: doc/guix.texi:6004 doc/guix.texi:6277 doc/guix.texi:6739 doc/guix.texi:6782
+#: doc/guix.texi:6869 doc/guix.texi:7134 doc/guix.texi:7640 doc/guix.texi:7683
 #, no-wrap
 msgid "install"
-msgstr ""
+msgstr "установка"
 
 #. type: table
-#: doc/guix.texi:6006
+#: doc/guix.texi:6871
 msgid "Run @code{make install} with the flags listed in @code{#:make-flags}."
-msgstr ""
+msgstr "Запустить @code{make install} с флагами, перечисленными в @code{#:make-flags}."
 
 #. type: item
-#: doc/guix.texi:6007
+#: doc/guix.texi:6872
 #, no-wrap
 msgid "patch-shebangs"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:6009
+#: doc/guix.texi:6874
 msgid "Patch shebangs on the installed executable files."
-msgstr ""
+msgstr "Изменить shebangs на установленные исполняемые файлы."
 
 #. type: item
-#: doc/guix.texi:6010
+#: doc/guix.texi:6875
 #, no-wrap
 msgid "strip"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:6014
+#: doc/guix.texi:6879
 msgid "Strip debugging symbols from ELF files (unless @code{#:strip-binaries?} is false), copying them to the @code{debug} output when available (@pxref{Installing Debugging Files})."
-msgstr ""
+msgstr "Удалить символы отладки из файлов ELF (если @code{#:strip-binaries?} не является ложным), скопировав их в выходные данные @code{debug}, если они доступны (@pxref{Installing Debugging Files})."
 
 #. type: vindex
-#: doc/guix.texi:6016
+#: doc/guix.texi:6881
 #, no-wrap
 msgid "%standard-phases"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:6021
+#: doc/guix.texi:6886
 msgid "The build-side module @code{(guix build gnu-build-system)} defines @code{%standard-phases} as the default list of build phases.  @code{%standard-phases} is a list of symbol/procedure pairs, where the procedure implements the actual phase."
-msgstr ""
-
-#. type: defvr
-#: doc/guix.texi:6024
-msgid "The list of phases used for a particular package can be changed with the @code{#:phases} parameter.  For instance, passing:"
-msgstr ""
-
-#. type: example
-#: doc/guix.texi:6027
-#, no-wrap
-msgid "#:phases (modify-phases %standard-phases (delete 'configure))\n"
-msgstr ""
+msgstr "Модуль на стороне сборки @code{(guix build gnu-build-system)} определяет @code{%standard-phase} как список фаз сборки по умолчанию.  @code{%standard-phase} - это список пар символ/процедура, в которых процедура реализует фазу."
 
 #. type: defvr
-#: doc/guix.texi:6031
-msgid "means that all the phases described above will be used, except the @code{configure} phase."
-msgstr ""
+#: doc/guix.texi:6889
+#, fuzzy
+#| msgid "@xref{Invoking guix pack}, for more info on this handy tool."
+msgid "@xref{Build Phases}, for more info on build phases and ways to customize them."
+msgstr "@xref{Invoking guix pack} для подробной информации об этом полезном инструменте."
 
 #. type: defvr
-#: doc/guix.texi:6038
+#: doc/guix.texi:6896
 msgid "In addition, this build system ensures that the ``standard'' environment for GNU packages is available.  This includes tools such as GCC, libc, Coreutils, Bash, Make, Diffutils, grep, and sed (see the @code{(guix build-system gnu)} module for a complete list).  We call these the @dfn{implicit inputs} of a package, because package definitions do not have to mention them."
-msgstr ""
+msgstr "Кроме того, эта система сборки гарантирует, что доступна ``стандартная'' среда для пакетов GNU.  Сюда входят такие инструменты, как GCC, libc, Coreutils, Bash, Make, Diffutils, grep и sed (полный список см. в модуле @code{(guix build-system gnu)}).  Мы называем их @dfn{неявными входами} пакета, потому что в определениях пакетов они не упоминаются."
 
 #. type: Plain text
-#: doc/guix.texi:6045
+#: doc/guix.texi:6903
 msgid "Other @code{<build-system>} objects are defined to support other conventions and tools used by free software packages.  They inherit most of @code{gnu-build-system}, and differ mainly in the set of inputs implicitly added to the build process, and in the list of phases executed.  Some of these build systems are listed below."
-msgstr ""
+msgstr "Другие объекты @code{<build-system>} определены для поддержки других соглашений и инструментов, используемых пакетами свободного программного обеспечения.  Они наследуют большую часть @code{gnu-build-system} и различаются в основном набором входных данных, неявно добавляемых в процесс сборки, и списком выполняемых фаз.  Некоторые из этих систем сборки перечислены ниже."
 
 #. type: defvr
-#: doc/guix.texi:6046
+#: doc/guix.texi:6904
 #, no-wrap
 msgid "{Scheme Variable} ant-build-system"
-msgstr ""
+msgstr "{Scheme Variable} ant-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6050
+#: doc/guix.texi:6908
 msgid "This variable is exported by @code{(guix build-system ant)}.  It implements the build procedure for Java packages that can be built with @url{https://ant.apache.org/, Ant build tool}."
-msgstr ""
+msgstr "Эта переменная экспортируется @code{(guix build-system ant)}.  Она реализует процедуру сборки пакетов Java, которые можно собрать с помощью @url{https://ant.apache.org/, Ant build tool}."
 
 #. type: defvr
-#: doc/guix.texi:6055
+#: doc/guix.texi:6913
 msgid "It adds both @code{ant} and the @dfn{Java Development Kit} (JDK) as provided by the @code{icedtea} package to the set of inputs.  Different packages can be specified with the @code{#:ant} and @code{#:jdk} parameters, respectively."
-msgstr ""
+msgstr "Она добавляет к набору входных данных как @code{ant}, так и @dfn{Java Development Kit} (JDK), предоставленные пакетом @code{icedtea}.  Различные пакеты можно указать с помощью параметров @code{#:ant} и @code{#:jdk} соответственно."
 
 #. type: defvr
-#: doc/guix.texi:6061
+#: doc/guix.texi:6919
 msgid "When the original package does not provide a suitable Ant build file, the parameter @code{#:jar-name} can be used to generate a minimal Ant build file @file{build.xml} with tasks to build the specified jar archive.  In this case the parameter @code{#:source-dir} can be used to specify the source sub-directory, defaulting to ``src''."
-msgstr ""
+msgstr "Когда исходный пакет не предоставляет подходящий файл сборки Ant, параметр @code{#:jar-name} можно использовать для создания минимального файла сборки Ant @file{build.xml} с задачами для создания указанного архива jar.  В этом случае параметр @code{#:source-dir} можно использовать для указания подкаталога источника, по умолчанию - src."
 
 #. type: defvr
-#: doc/guix.texi:6069
+#: doc/guix.texi:6927
 msgid "The @code{#:main-class} parameter can be used with the minimal ant buildfile to specify the main class of the resulting jar.  This makes the jar file executable.  The @code{#:test-include} parameter can be used to specify the list of junit tests to run. It defaults to @code{(list \"**/*Test.java\")}.  The @code{#:test-exclude} can be used to disable some tests. It defaults to @code{(list \"**/Abstract*.java\")}, because abstract classes cannot be run as tests."
-msgstr ""
+msgstr "Параметр @code{#:main-class} можно использовать с минимальным файлом сборки ant для указания основного класса результирующего jar-файла.  Это делает файл jar исполняемым.  Параметр @code{#:test-include} можно использовать для указания списка запускаемых тестов junit.  По умолчанию это @code{(list \"**/*Test.java\")}.  @code{#:test-exclude} можно использовать для отключения некоторых тестов.  По умолчанию это @code{(list \"**/Abstract*.java\")}, потому что абстрактные классы не могут быть запущены как тесты."
 
 #. type: defvr
-#: doc/guix.texi:6073
+#: doc/guix.texi:6931
 msgid "The parameter @code{#:build-target} can be used to specify the Ant task that should be run during the @code{build} phase.  By default the ``jar'' task will be run."
-msgstr ""
+msgstr "Параметр @code{#:build-target} можно использовать для указания задачи Ant, которая должна выполняться на этапе @code{build}.  По умолчанию будет запущена задача jar."
 
 #. type: defvr
-#: doc/guix.texi:6076
+#: doc/guix.texi:6934
 #, no-wrap
 msgid "{Scheme Variable} android-ndk-build-system"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:6077
+#: doc/guix.texi:6935
 #, no-wrap
 msgid "Android distribution"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:6078
+#: doc/guix.texi:6936
 #, no-wrap
 msgid "Android NDK build system"
-msgstr ""
+msgstr "система сборки Android NDK"
 
 #. type: defvr
-#: doc/guix.texi:6082
+#: doc/guix.texi:6940
 msgid "This variable is exported by @code{(guix build-system android-ndk)}.  It implements a build procedure for Android NDK (native development kit)  packages using a Guix-specific build process."
-msgstr ""
+msgstr "Эта переменная экспортируется @code{(guix build-system android-ndk)}.  Она реализует процедуру сборки пакетов Android NDK (собственный комплект разработки) с использованием процесса сборки, специфичного для Guix."
 
 #. type: defvr
-#: doc/guix.texi:6086
-msgid "The build system assumes that packages install their public interface (header) files to the subdirectory \"include\" of the \"out\" output and their libraries to the subdirectory \"lib\" of the \"out\" output."
-msgstr ""
+#: doc/guix.texi:6944
+msgid "The build system assumes that packages install their public interface (header) files to the subdirectory @file{include} of the @code{out} output and their libraries to the subdirectory @file{lib} the @code{out} output."
+msgstr "Система сборки предполагает, что пакеты устанавливают свои файлы общедоступного интерфейса (заголовки) в подкаталог @file{include} вывода @code{out}, а их библиотеки - в подкаталог @file{lib} вывода @code{out}."
 
 #. type: defvr
-#: doc/guix.texi:6089
+#: doc/guix.texi:6947
 msgid "It's also assumed that the union of all the dependencies of a package has no conflicting files."
-msgstr ""
+msgstr "Также предполагается, что объединение всех зависимостей пакета не имеет конфликтующих файлов."
 
 #. type: defvr
-#: doc/guix.texi:6092
+#: doc/guix.texi:6950
 msgid "For the time being, cross-compilation is not supported - so right now the libraries and header files are assumed to be host tools."
-msgstr ""
+msgstr "В настоящее время кросс-компиляция не поддерживается, поэтому сейчас предполагается, что библиотеки и файлы заголовков являются хост-инструментами."
 
 #. type: defvr
-#: doc/guix.texi:6095
+#: doc/guix.texi:6953
 #, no-wrap
 msgid "{Scheme Variable} asdf-build-system/source"
 msgstr ""
 
 #. type: defvrx
-#: doc/guix.texi:6096
+#: doc/guix.texi:6954
 #, no-wrap
 msgid "{Scheme Variable} asdf-build-system/sbcl"
 msgstr ""
 
 #. type: defvrx
-#: doc/guix.texi:6097
+#: doc/guix.texi:6955
 #, no-wrap
 msgid "{Scheme Variable} asdf-build-system/ecl"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:6103
+#: doc/guix.texi:6961
 msgid "These variables, exported by @code{(guix build-system asdf)}, implement build procedures for Common Lisp packages using @url{https://common-lisp.net/project/asdf/, ``ASDF''}. ASDF is a system definition facility for Common Lisp programs and libraries."
-msgstr ""
+msgstr "Эти переменные, экспортированные @code{(guix build-system asdf)}, реализуют процедуры сборки для пакетов Common Lisp с использованием @url{https://common-lisp.net/project/asdf/, ``ASDF''}.  ASDF - это средство определения системы для программ и библиотек Common Lisp."
 
 #. type: defvr
-#: doc/guix.texi:6110
+#: doc/guix.texi:6968
 msgid "The @code{asdf-build-system/source} system installs the packages in source form, and can be loaded using any common lisp implementation, via ASDF.  The others, such as @code{asdf-build-system/sbcl}, install binary systems in the format which a particular implementation understands.  These build systems can also be used to produce executable programs, or lisp images which contain a set of packages pre-loaded."
-msgstr ""
+msgstr "Система @code{asdf-build-system/source} устанавливает пакеты в исходной форме и может быть загружена с использованием любой распространенной реализации Lisp через ASDF.  Другие, такие как @code{asdf-build-system/sbcl}, устанавливают двоичные системы в формате, понятном конкретной реализации.  Эти системы сборки также могут использоваться для создания исполняемых программ или образов lisp, которые содержат набор предварительно загруженных пакетов."
 
 #. type: defvr
-#: doc/guix.texi:6114
+#: doc/guix.texi:6972
 msgid "The build system uses naming conventions.  For binary packages, the package name should be prefixed with the lisp implementation, such as @code{sbcl-} for @code{asdf-build-system/sbcl}."
-msgstr ""
+msgstr "В системе сборки используются соглашения об именах.  Для бинарных пакетов перед именем пакета должен стоять префикс реализации lisp, например @code{sbcl-} для @code{asdf-build-system/sbcl}."
 
 #. type: defvr
-#: doc/guix.texi:6118
+#: doc/guix.texi:6976
 msgid "Additionally, the corresponding source package should be labeled using the same convention as python packages (see @ref{Python Modules}), using the @code{cl-} prefix."
-msgstr ""
+msgstr "Кроме того, соответствующий исходный пакет должен быть помечен с использованием того же соглашения, что и пакеты python (см. @ref{Python Modules}), с использованием префикса @code{cl-}."
 
 #. type: defvr
-#: doc/guix.texi:6123
+#: doc/guix.texi:6981
 msgid "For binary packages, each system should be defined as a Guix package.  If one package @code{origin} contains several systems, package variants can be created in order to build all the systems.  Source packages, which use @code{asdf-build-system/source}, may contain several systems."
-msgstr ""
+msgstr "Для binary пакетов каждая система должна быть определена как пакет Guix.  Если один пакет @code{origin} содержит несколько систем, можно создать варианты пакета, чтобы собрать все системы.  Пакеты с исходным кодом, в которых используется @code{asdf-build-system/source}, могут содержать несколько систем."
 
 #. type: defvr
-#: doc/guix.texi:6130
+#: doc/guix.texi:6988
 msgid "In order to create executable programs and images, the build-side procedures @code{build-program} and @code{build-image} can be used.  They should be called in a build phase after the @code{create-symlinks} phase, so that the system which was just built can be used within the resulting image.  @code{build-program} requires a list of Common Lisp expressions to be passed as the @code{#:entry-program} argument."
-msgstr ""
+msgstr "Для создания исполняемых программ и образов можно использовать процедуры сборки @code{build-program} и @code{build-image}.  Их следует вызывать в фазе сборки после фазы @code{create-symlinks}, чтобы только что созданную систему можно было использовать в полученном образе.  @code{build-program} требует, чтобы список выражений Common Lisp был передан в качестве аргумента @code{#:entry-program}."
 
 #. type: defvr
-#: doc/guix.texi:6139
-msgid "If the system is not defined within its own @code{.asd} file of the same name, then the @code{#:asd-file} parameter should be used to specify which file the system is defined in.  Furthermore, if the package defines a system for its tests in a separate file, it will be loaded before the tests are run if it is specified by the @code{#:test-asd-file} parameter.  If it is not set, the files @code{<system>-tests.asd}, @code{<system>-test.asd}, @code{tests.asd}, and @code{test.asd} will be tried if they exist."
-msgstr ""
+#: doc/guix.texi:6997
+msgid "If the system is not defined within its own @file{.asd} file of the same name, then the @code{#:asd-file} parameter should be used to specify which file the system is defined in.  Furthermore, if the package defines a system for its tests in a separate file, it will be loaded before the tests are run if it is specified by the @code{#:test-asd-file} parameter.  If it is not set, the files @code{<system>-tests.asd}, @code{<system>-test.asd}, @code{tests.asd}, and @code{test.asd} will be tried if they exist."
+msgstr "Если система не определена в собственном файле @file{.asd} с тем же именем, тогда следует использовать параметр @code{#:asd-file}, чтобы указать, в каком файле определена система.  Кроме того, если пакет определяет систему для своих тестов в отдельном файле, он будет загружен перед запуском тестов, если он указан параметром @code{#:test-asd-file}.  Если он не установлен, будут попробованы файлы @code{<system>-tests.asd}, @code{<system>-test.asd}, @code{tests.asd} и @code{test.asd}, если они есть."
 
 #. type: defvr
-#: doc/guix.texi:6143
+#: doc/guix.texi:7001
 msgid "If for some reason the package must be named in a different way than the naming conventions suggest, the @code{#:asd-system-name} parameter can be used to specify the name of the system."
-msgstr ""
+msgstr "Если по какой-то причине пакет должен быть назван иначе, чем это предлагается в соглашениях об именах, можно использовать параметр @code{#:asd-system-name} для указания имени системы."
 
 #. type: defvr
-#: doc/guix.texi:6146
+#: doc/guix.texi:7004
 #, no-wrap
 msgid "{Scheme Variable} cargo-build-system"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:6147
+#: doc/guix.texi:7005
 #, no-wrap
 msgid "Rust programming language"
-msgstr ""
+msgstr "Язык программирования Rust"
 
 #. type: cindex
-#: doc/guix.texi:6148
+#: doc/guix.texi:7006
 #, no-wrap
 msgid "Cargo (Rust build system)"
-msgstr ""
+msgstr "Cargo (система сборки Rust)"
 
 #. type: defvr
-#: doc/guix.texi:6152
+#: doc/guix.texi:7010
 msgid "This variable is exported by @code{(guix build-system cargo)}.  It supports builds of packages using Cargo, the build tool of the @uref{https://www.rust-lang.org, Rust programming language}."
-msgstr ""
+msgstr "Эта переменная экспортируется @code{(guix build-system cargo)}.  Она поддерживает сборку пакетов с использованием Cargo, инструмента сборки @uref{https://www.rust-lang.org, языка программирования Rust}."
 
 #. type: defvr
-#: doc/guix.texi:6155
+#: doc/guix.texi:7013
 msgid "It adds @code{rustc} and @code{cargo} to the set of inputs.  A different Rust package can be specified with the @code{#:rust} parameter."
-msgstr ""
+msgstr "Она добавляет @code{rustc} и @code{cargo} к набору входных данных.  Другой пакет Rust можно указать с помощью параметра @code{#:rust}."
 
 #. type: defvr
-#: doc/guix.texi:6163
+#: doc/guix.texi:7021
 msgid "Regular cargo dependencies should be added to the package definition via the @code{#:cargo-inputs} parameter as a list of name and spec pairs, where the spec can be a package or a source definition.  Note that the spec must evaluate to a path to a gzipped tarball which includes a @code{Cargo.toml} file at its root, or it will be ignored.  Similarly, cargo dev-dependencies should be added to the package definition via the @code{#:cargo-development-inputs} parameter."
-msgstr ""
+msgstr "Обычные cargo зависимости должны быть добавлены к определению пакета через параметр @code{#:cargo-inputs} в виде списка пар имени и спецификации, где спецификацией может быть определение пакета или источника.  Обратите внимание, что в спецификации должен быть указан путь к сжатому архиву, который содержит файл @code{Cargo.toml} в своем корне, иначе он будет проигнорирован.  Точно так же dev-зависимости cargo должны быть добавлены в определение пакета с помощью параметра @code{#:cargo-development-inputs}."
 
 #. type: defvr
-#: doc/guix.texi:6170
-msgid "In its @code{configure} phase, this build system will make any source inputs specified in the @code{#:cargo-inputs} and @code{#:cargo-development-inputs} parameters available to cargo.  It will also remove an included @code{Cargo.lock} file to be recreated by @code{cargo} during the @code{build} phase.  The @code{install} phase installs any crate the binaries if they are defined by the crate."
-msgstr ""
+#: doc/guix.texi:7028
+msgid "In its @code{configure} phase, this build system will make any source inputs specified in the @code{#:cargo-inputs} and @code{#:cargo-development-inputs} parameters available to cargo.  It will also remove an included @code{Cargo.lock} file to be recreated by @code{cargo} during the @code{build} phase.  The @code{install} phase installs the binaries defined by the crate."
+msgstr "На этапе @code{configure} эта система сборки собирет любые исходные данные, указанные в параметрах @code{#:cargo-inputs} и @code{#:cargo-development-inputs}, доступными для cargo.  Она также удалит файл @code{Cargo.lock}, который будет воссоздан @code{cargo} на этапе @code{build}.  На этапе @code{install} устанавливаются двоичные файлы, определенные crate."
 
 #. type: defvr
-#: doc/guix.texi:6173
+#: doc/guix.texi:7031
 #, no-wrap
 msgid "{Scheme Variable} copy-build-system"
 msgstr ""
 
-#. type: cindex
-#: doc/guix.texi:6174
-#, fuzzy, no-wrap
-#| msgid "Build Systems"
-msgid "(copy build system)"
-msgstr "Системы сборки"
-
 #. type: defvr
-#: doc/guix.texi:6178
+#: doc/guix.texi:7035
 msgid "This variable is exported by @code{(guix build-system copy)}.  It supports builds of simple packages that don't require much compiling, mostly just moving files around."
-msgstr ""
+msgstr "Эта переменная экспортируется в @code{(guix build-system copy)}.  Она поддерживает сборку простых пакетов, которые не требуют большой компиляции, в основном просто перемещения файлов."
 
 #. type: defvr
-#: doc/guix.texi:6183
+#: doc/guix.texi:7040
 msgid "It adds much of the @code{gnu-build-system} packages to the set of inputs.  Because of this, the @code{copy-build-system} does not require all the boilerplate code often needed for the @code{trivial-build-system}."
-msgstr ""
+msgstr "Она добавляет большую часть пакетов @code{gnu-build-system} в набор входных данных.  По этой причине @code{copy-build-system} не требуется весь шаблонный код, часто необходимый для @code{trivial-build-system}."
 
 #. type: defvr
-#: doc/guix.texi:6188
+#: doc/guix.texi:7045
 msgid "To further simplify the file installation process, an @code{#:install-plan} argument is exposed to let the packager specify which files go where.  The install plan is a list of @code{(@var{source} @var{target} [@var{filters}])}.  @var{filters} are optional."
-msgstr ""
+msgstr "Чтобы еще больше упростить процесс установки файла, предоставляется аргумент @code{#:install-plan}, позволяющий упаковщику указывать, какие файлы куда установить.  План установки представляет собой список @code{(@var{source} @var{target} [@var{filters}])}.  @var{filters} необязательны."
 
 #. type: item
-#: doc/guix.texi:6190
+#: doc/guix.texi:7047
 #, no-wrap
 msgid "When @var{source} matches a file or directory without trailing slash, install it to @var{target}."
-msgstr ""
+msgstr "Когда @var{source} соответствует файл или каталог без косой черты, установить его в @var{target}."
 
 #. type: item
-#: doc/guix.texi:6192
+#: doc/guix.texi:7049
 #, no-wrap
 msgid "If @var{target} has a trailing slash, install @var{source} basename beneath @var{target}."
-msgstr ""
+msgstr "Если @var{target} имеет косую черту в конце, установить @var{source} basename ниже @var{target}."
 
 #. type: item
-#: doc/guix.texi:6193
+#: doc/guix.texi:7050
 #, fuzzy, no-wrap
 #| msgid "--share=@var{source}[=@var{target}]"
 msgid "Otherwise install @var{source} as @var{target}."
 msgstr "--share=@var{source}[=@var{target}]"
 
 #. type: item
-#: doc/guix.texi:6196
+#: doc/guix.texi:7053
 #, no-wrap
 msgid "When @var{source} is a directory with a trailing slash, or when @var{filters} are used,"
-msgstr ""
+msgstr "Когда @var{source} - это каталог с косой чертой в конце или когда используются @var{filters},"
 
 #. type: itemize
-#: doc/guix.texi:6199
+#: doc/guix.texi:7056
 msgid "the trailing slash of @var{target} is implied with the same meaning as above."
-msgstr ""
+msgstr "завершающая косая черта @var{target} подразумевается с тем же значением, что и выше."
 
 #. type: item
-#: doc/guix.texi:6200
+#: doc/guix.texi:7057
 #, no-wrap
 msgid "Without @var{filters}, install the full @var{source} @emph{content} to @var{target}."
-msgstr ""
+msgstr "Без @var{filter} установить @emph{содержимое} @var{source} в @var{target}."
 
 #. type: item
-#: doc/guix.texi:6201
+#: doc/guix.texi:7058
 #, no-wrap
 msgid "With @var{filters} among @code{#:include}, @code{#:include-regexp}, @code{#:exclude},"
-msgstr ""
+msgstr "С @var{filters} среди @code{#:include}, @code{#:include-regexp}, @code{#:exclude},"
 
 #. type: itemize
-#: doc/guix.texi:6204
+#: doc/guix.texi:7061
 msgid "@code{#:exclude-regexp}, only select files are installed depending on the filters.  Each filters is specified by a list of strings."
-msgstr ""
+msgstr "@code{#:exclude-regexp}, установить только избранные файлы в зависимости от фильтров.  Каждый фильтр определяется списком строк."
 
 #. type: item
-#: doc/guix.texi:6205
+#: doc/guix.texi:7062
 #, no-wrap
 msgid "With @code{#:include}, install all the files which the path suffix matches"
-msgstr ""
+msgstr "С помощью @code{#:include} установите все файлы, суффикс пути которых соответствует"
 
 #. type: itemize
-#: doc/guix.texi:6207
+#: doc/guix.texi:7064
 msgid "at least one of the elements in the given list."
-msgstr ""
+msgstr "хотя бы одному из элементов в данном списке."
 
 #. type: item
-#: doc/guix.texi:6207
+#: doc/guix.texi:7064
 #, no-wrap
 msgid "With @code{#:include-regexp}, install all the files which the"
-msgstr ""
+msgstr "С помощью @code{#:include-regex} установить все файлы,"
 
 #. type: itemize
-#: doc/guix.texi:6210
+#: doc/guix.texi:7067
 msgid "subpaths match at least one of the regular expressions in the given list."
-msgstr ""
+msgstr "подкаталоги которых соответствуют хотя бы одному из регулярных выражений в данном списке."
 
 #. type: item
-#: doc/guix.texi:6210
+#: doc/guix.texi:7067
 #, no-wrap
 msgid "The @code{#:exclude} and @code{#:exclude-regexp} filters"
-msgstr ""
+msgstr "Фильтры @code{#:exclude} и @code{#:exclude-regexp}"
 
 #. type: itemize
-#: doc/guix.texi:6215
+#: doc/guix.texi:7072
 msgid "are the complement of their inclusion counterpart.  Without @code{#:include} flags, install all files but those matching the exclusion filters.  If both inclusions and exclusions are specified, the exclusions are done on top of the inclusions."
-msgstr ""
+msgstr "являются дополнением к своим аналогам включения.  Без флагов @code{#:include} установить все файлы, кроме тех, которые соответствуют фильтрам исключения.  Если указаны и включения, и исключения, исключения выполняются поверх включений."
 
 #. type: itemize
-#: doc/guix.texi:6219
+#: doc/guix.texi:7076
 msgid "In all cases, the paths relative to @var{source} are preserved within @var{target}."
-msgstr ""
+msgstr "В любом случае пути, относительные к @var{source}, сохраняются в @var{target}."
 
 #. type: defvr
-#: doc/guix.texi:6222
+#: doc/guix.texi:7079
 msgid "Examples:"
-msgstr ""
+msgstr "Примеры:"
 
 #. type: item
-#: doc/guix.texi:6224
+#: doc/guix.texi:7081
 #, no-wrap
 msgid "@code{(\"foo/bar\" \"share/my-app/\")}: Install @file{bar} to @file{share/my-app/bar}."
-msgstr ""
+msgstr "@code{(\"foo/bar\" \"share/my-app/\")}: Установить @file{bar} в @file{share/my-app/bar}.\""
 
 #. type: item
-#: doc/guix.texi:6225
+#: doc/guix.texi:7082
 #, no-wrap
 msgid "@code{(\"foo/bar\" \"share/my-app/baz\")}: Install @file{bar} to @file{share/my-app/baz}."
-msgstr ""
+msgstr "@code{(\"foo/bar\" \"share/my-app/baz\")}: Установить @file{bar} в @file{share/my-app/baz}."
 
 #. type: item
-#: doc/guix.texi:6226
+#: doc/guix.texi:7083
 #, no-wrap
 msgid "@code{(\"foo/\" \"share/my-app\")}: Install the content of @file{foo} inside @file{share/my-app},"
-msgstr ""
+msgstr "@code{(\"foo/\" \"share/my-app\")}: Установить содержимое @file{foo} в @file{share/my-app},"
 
 #. type: itemize
-#: doc/guix.texi:6228
+#: doc/guix.texi:7085
 msgid "e.g., install @file{foo/sub/file} to @file{share/my-app/sub/file}."
-msgstr ""
+msgstr "например, установить @file{foo/sub/file} в @file{share/my-app/sub/file}."
 
 #. type: item
-#: doc/guix.texi:6228
+#: doc/guix.texi:7085
 #, no-wrap
 msgid "@code{(\"foo/\" \"share/my-app\" #:include (\"sub/file\"))}: Install only @file{foo/sub/file} to"
-msgstr ""
+msgstr "@code{(\"foo/\" \"share/my-app\" #:include (\"sub/file\"))}: Установить только @file{foo/sub/file} в"
 
 #. type: itemize
-#: doc/guix.texi:6230
+#: doc/guix.texi:7087
 msgid "@file{share/my-app/sub/file}."
-msgstr ""
+msgstr "@file{share/my-app/sub/file}."
 
 #. type: item
-#: doc/guix.texi:6230
+#: doc/guix.texi:7087
 #, no-wrap
 msgid "@code{(\"foo/sub\" \"share/my-app\" #:include (\"file\"))}: Install @file{foo/sub/file} to"
-msgstr ""
+msgstr "@code{(\"foo/sub\" \"share/my-app\" #:include (\"file\"))}: Установить @file{foo/sub/file} в"
 
 #. type: itemize
-#: doc/guix.texi:6232
+#: doc/guix.texi:7089
 msgid "@file{share/my-app/file}."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:6236
+#: doc/guix.texi:7093
 #, no-wrap
 msgid "Clojure (programming language)"
-msgstr ""
+msgstr "Clojure (язык программирования)"
 
 #. type: cindex
-#: doc/guix.texi:6237
+#: doc/guix.texi:7094
 #, no-wrap
 msgid "simple Clojure build system"
-msgstr ""
+msgstr "простая система сборки Clojure"
 
 #. type: defvr
-#: doc/guix.texi:6238
+#: doc/guix.texi:7095
 #, no-wrap
 msgid "{Scheme Variable} clojure-build-system"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:6243
+#: doc/guix.texi:7100
 msgid "This variable is exported by @code{(guix build-system clojure)}.  It implements a simple build procedure for @uref{https://clojure.org/, Clojure} packages using plain old @code{compile} in Clojure.  Cross-compilation is not supported yet."
-msgstr ""
+msgstr "Эта переменная экспортируется @code{(guix build-system clojure)}.  Она реализует простую процедуру сборки пакетов @uref{https://clojure.org/, Clojure} с использованием простого старого @code{compile} в Clojure.  Кросс-компиляция пока не поддерживается."
 
 #. type: defvr
-#: doc/guix.texi:6247
+#: doc/guix.texi:7104
 msgid "It adds @code{clojure}, @code{icedtea} and @code{zip} to the set of inputs.  Different packages can be specified with the @code{#:clojure}, @code{#:jdk} and @code{#:zip} parameters, respectively."
-msgstr ""
+msgstr "Она добавляет @code{clojure}, @code{icedtea} и @code{zip} к набору входных данных.  Различные пакеты можно указать с помощью параметров @code{#:clojure}, @code{#:jdk} и @code{#:zip} соответственно."
 
 #. type: defvr
-#: doc/guix.texi:6253
+#: doc/guix.texi:7110
 msgid "A list of source directories, test directories and jar names can be specified with the @code{#:source-dirs}, @code{#:test-dirs} and @code{#:jar-names} parameters, respectively.  Compile directory and main class can be specified with the @code{#:compile-dir} and @code{#:main-class} parameters, respectively.  Other parameters are documented below."
-msgstr ""
+msgstr "Список исходных каталогов, тестовых каталогов и имен jar-файлов можно указать с помощью параметров @code{#:source-dirs}, @code{#:test-dirs} и @code{#:jar-names} соответственно.  Каталог компиляции и основной класс можно указать с помощью параметров @code{#:compile-dir} и @code{#:main-class} соответственно.  Остальные параметры описаны ниже."
 
 #. type: defvr
-#: doc/guix.texi:6256
+#: doc/guix.texi:7113
 msgid "This build system is an extension of @code{ant-build-system}, but with the following phases changed:"
-msgstr ""
+msgstr "Эта система сборки является расширением @code{ant-build-system}, но со следующими изменениями:"
 
 #. type: table
-#: doc/guix.texi:6268
+#: doc/guix.texi:7125
 msgid "This phase calls @code{compile} in Clojure to compile source files and runs @command{jar} to create jars from both source files and compiled files according to the include list and exclude list specified in @code{#:aot-include} and @code{#:aot-exclude}, respectively.  The exclude list has priority over the include list.  These lists consist of symbols representing Clojure libraries or the special keyword @code{#:all} representing all Clojure libraries found under the source directories.  The parameter @code{#:omit-source?} decides if source should be included into the jars."
-msgstr ""
+msgstr "На этом этапе вызывается @code{compile} в Clojure для компиляции исходных файлов и запускается @command{jar} для создания jar-файлов как из исходных файлов, так и из скомпилированных файлов в соответствии со списком включения и списком исключений, указанным в @code{#:aot-include} и @code{#:aot-exclude} соответственно.  Список исключений имеет приоритет над списком включения.  Эти списки состоят из символов, представляющих библиотеки Clojure, или специального ключевого слова @code{#:all}, представляющего все библиотеки Clojure, находящиеся в исходных каталогах.  Параметр @code{#:omit-source?} определяет, следует ли включать исходники в jar-файлы."
 
 #. type: table
-#: doc/guix.texi:6276
+#: doc/guix.texi:7133
 msgid "This phase runs tests according to the include list and exclude list specified in @code{#:test-include} and @code{#:test-exclude}, respectively.  Their meanings are analogous to that of @code{#:aot-include} and @code{#:aot-exclude}, except that the special keyword @code{#:all} now stands for all Clojure libraries found under the test directories.  The parameter @code{#:tests?} decides if tests should be run."
-msgstr ""
+msgstr "На этом этапе выполняются тесты в соответствии со списком включения и списком исключений, указанными в @code{#:test-include} и @code{#:test-exclude} соответственно.  Их значения аналогичны значениям @code{#:aot-include} и @code{#:aot-exclude}, за исключением того, что специальное ключевое слово @code{#:all} теперь обозначает все библиотеки Clojure, находящиеся в каталогах test.  Параметр @code{#:tests?} определяет, нужно ли запускать тесты."
 
 #. type: table
-#: doc/guix.texi:6279
+#: doc/guix.texi:7136
 msgid "This phase installs all jars built previously."
-msgstr ""
+msgstr "На этом этапе устанавливаются все созданные ранее jars."
 
 #. type: defvr
-#: doc/guix.texi:6282
+#: doc/guix.texi:7139
 msgid "Apart from the above, this build system also contains an additional phase:"
-msgstr ""
+msgstr "Помимо вышесказанного, эта система сборки также содержит дополнительную фазу:"
 
 #. type: item
-#: doc/guix.texi:6285
+#: doc/guix.texi:7142
 #, no-wrap
 msgid "install-doc"
-msgstr ""
+msgstr "install-doc"
 
 #. type: table
-#: doc/guix.texi:6290
+#: doc/guix.texi:7147
 msgid "This phase installs all top-level files with base name matching @code{%doc-regex}.  A different regex can be specified with the @code{#:doc-regex} parameter.  All files (recursively) inside the documentation directories specified in @code{#:doc-dirs} are installed as well."
-msgstr ""
+msgstr "На этом этапе устанавливаются все файлы верхнего уровня с базовым именем, совпадающим с @code{%doc-regex}.  Другое регулярное выражение можно указать с помощью параметра @code{#:doc-regex}.  Все файлы (рекурсивно) в каталогах документации, указанные в @code{#:doc-dirs}, также устанавливаются."
 
 #. type: defvr
-#: doc/guix.texi:6293
+#: doc/guix.texi:7150
 #, no-wrap
 msgid "{Scheme Variable} cmake-build-system"
-msgstr ""
+msgstr "{Scheme переменная} cmake-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6297
+#: doc/guix.texi:7154
 msgid "This variable is exported by @code{(guix build-system cmake)}.  It implements the build procedure for packages using the @url{https://www.cmake.org, CMake build tool}."
-msgstr ""
+msgstr "Эта переменная экспортируется @code{(guix build-system cmake)}.  Она реализует процедуру сборки пакетов с использованием @url{https://www.cmake.org, инструмента сборки CMake}."
 
 #. type: defvr
-#: doc/guix.texi:6301
+#: doc/guix.texi:7158
 msgid "It automatically adds the @code{cmake} package to the set of inputs.  Which package is used can be specified with the @code{#:cmake} parameter."
-msgstr ""
+msgstr "Она автоматически добавляет пакет @code{cmake} в набор входных данных.  Какой пакет используется, можно указать с помощью параметра @code{#:cmake}."
 
 #. type: defvr
-#: doc/guix.texi:6308
+#: doc/guix.texi:7165
 msgid "The @code{#:configure-flags} parameter is taken as a list of flags passed to the @command{cmake} command.  The @code{#:build-type} parameter specifies in abstract terms the flags passed to the compiler; it defaults to @code{\"RelWithDebInfo\"} (short for ``release mode with debugging information''), which roughly means that code is compiled with @code{-O2 -g}, as is the case for Autoconf-based packages by default."
-msgstr ""
+msgstr "Параметр @code{#:configure-flags} используется как список флагов, переданных команде @command{cmake}.  Параметр @code{#:build-type} абстрактно определяет флаги, передаваемые компилятору; по умолчанию используется @code{\"RelWithDebInfo\"} (сокращение от ``release mode с отладочной информацией''), что примерно означает, что код компилируется с помощью @code{-O2 -g}, как в случае пакетов на основе Autoconf по умолчанию."
 
 #. type: defvr
-#: doc/guix.texi:6310
+#: doc/guix.texi:7167
 #, no-wrap
 msgid "{Scheme Variable} dune-build-system"
-msgstr ""
+msgstr "{Scheme переменная} dune-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6317
+#: doc/guix.texi:7174
 msgid "This variable is exported by @code{(guix build-system dune)}.  It supports builds of packages using @uref{https://dune.build/, Dune}, a build tool for the OCaml programming language.  It is implemented as an extension of the @code{ocaml-build-system} which is described below.  As such, the @code{#:ocaml} and @code{#:findlib} parameters can be passed to this build system."
-msgstr ""
+msgstr "Эта переменная экспортируется в @code{(guix build-system dune)}.  Она поддерживает сборку пакетов с использованием @uref{https://dune.build/, Dune}, инструмента сборки для языка программирования OCaml.  Она реализована как расширение @code{ocaml-build-system}, описанную ниже.  Таким образом, в эту систему сборки можно передать параметры @code{#:ocaml} и @code{#:findlib}."
 
 #. type: defvr
-#: doc/guix.texi:6321
+#: doc/guix.texi:7178
 msgid "It automatically adds the @code{dune} package to the set of inputs.  Which package is used can be specified with the @code{#:dune} parameter."
-msgstr ""
+msgstr "Она автоматически добавляет пакет @code{dune} в набор входных данных.  Какой пакет используется, можно указать с помощью параметра @code{#:dune}."
 
 #. type: defvr
-#: doc/guix.texi:6325
+#: doc/guix.texi:7182
 msgid "There is no @code{configure} phase because dune packages typically don't need to be configured.  The @code{#:build-flags} parameter is taken as a list of flags passed to the @code{dune} command during the build."
-msgstr ""
+msgstr "Фаза @code{configure} отсутствует, потому что dune пакеты обычно не нужно настраивать.  Параметр @code{#:build-flags} используется как список флагов, переданных команде @code{dune} во время сборки."
 
 #. type: defvr
-#: doc/guix.texi:6329
+#: doc/guix.texi:7186
 msgid "The @code{#:jbuild?} parameter can be passed to use the @code{jbuild} command instead of the more recent @code{dune} command while building a package.  Its default value is @code{#f}."
-msgstr ""
+msgstr "Параметр @code{#:jbuild?} можно передать для использования команды @code{jbuild} вместо более новой команды @code{dune} при сборке пакета.  Его значение по умолчанию - @code{#f}."
 
 #. type: defvr
-#: doc/guix.texi:6334
+#: doc/guix.texi:7191
 msgid "The @code{#:package} parameter can be passed to specify a package name, which is useful when a package contains multiple packages and you want to build only one of them.  This is equivalent to passing the @code{-p} argument to @code{dune}."
-msgstr ""
+msgstr "Параметр @code{#:package} может быть передан для указания имени пакета, что полезно, когда пакет содержит несколько пакетов, и вы хотите создать только один из них.  Это эквивалентно передаче аргумента @code{-p} в @code{dune}."
 
 #. type: defvr
-#: doc/guix.texi:6336
+#: doc/guix.texi:7193
 #, no-wrap
 msgid "{Scheme Variable} go-build-system"
-msgstr ""
+msgstr "{Scheme переменная} go-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6341
+#: doc/guix.texi:7198
 msgid "This variable is exported by @code{(guix build-system go)}.  It implements a build procedure for Go packages using the standard @url{https://golang.org/cmd/go/#hdr-Compile_packages_and_dependencies, Go build mechanisms}."
-msgstr ""
+msgstr "Эта переменная экспортируется @code{(guix build-system go)}.  Онf реализует процедуру сборки пакетов Go с использованием стандартного @url{https://golang.org/cmd/go/#hdr-Compile_packages_and_dependencies, механизмов сборки Go}."
 
 #. type: defvr
-#: doc/guix.texi:6352
+#: doc/guix.texi:7209
 msgid "The user is expected to provide a value for the key @code{#:import-path} and, in some cases, @code{#:unpack-path}.  The @url{https://golang.org/doc/code.html#ImportPaths, import path} corresponds to the file system path expected by the package's build scripts and any referring packages, and provides a unique way to refer to a Go package.  It is typically based on a combination of the package source code's remote URI and file system hierarchy structure.  In some cases, you will need to unpack the package's source code to a different directory structure than the one indicated by the import path, and @code{#:unpack-path} should be used in such cases."
-msgstr ""
+msgstr "Ожидается, что пользователь предоставит значение для ключа @code{#:import-path} и, в некоторых случаях, @code{#:unpack-path}.  @url{https://golang.org/doc/code.html#ImportPaths, import path} соответствует пути к файловой системе, ожидаемому сценариями сборки пакета и любыми ссылочными пакетами, и обеспечивает уникальный способ ссылки на Go пакет.  Обычно он основан на комбинации удаленного URI исходного кода пакета и иерархической структуры файловой системы.  В некоторых случаях вам нужно будет распаковать исходный код пакета в другую структуру каталогов, отличную от той, которая указана в пути импорта, и в таких случаях следует использовать @code{#:unpack-path}."
 
 #. type: defvr
-#: doc/guix.texi:6357
+#: doc/guix.texi:7214
 msgid "Packages that provide Go libraries should install their source code into the built output.  The key @code{#:install-source?}, which defaults to @code{#t}, controls whether or not the source code is installed.  It can be set to @code{#f} for packages that only provide executable files."
-msgstr ""
+msgstr "Пакеты, которые предоставляют библиотеки Go, должны устанавливать свой исходный код во встроенные выходные данные.  Ключ @code{#:install-source?}, который по умолчанию равен @code{#t}, определяет, установливается ли исходный код.  Для пакетов, которые предоставляют только исполняемые файлы, может быть установлено значение @code{#f}."
 
 #. type: defvr
-#: doc/guix.texi:6359
+#: doc/guix.texi:7216
 #, no-wrap
 msgid "{Scheme Variable} glib-or-gtk-build-system"
-msgstr ""
+msgstr "{Scheme переменная} glib-or-gtk-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6362
+#: doc/guix.texi:7219
 msgid "This variable is exported by @code{(guix build-system glib-or-gtk)}.  It is intended for use with packages making use of GLib or GTK+."
-msgstr ""
+msgstr "Эта переменная экспортируется в @code{(guix build-system glib-or-gtk)}.  Она предназначена для использования с пакетами, использующими GLib или GTK+."
 
 #. type: defvr
-#: doc/guix.texi:6365
+#: doc/guix.texi:7222
 msgid "This build system adds the following two phases to the ones defined by @code{gnu-build-system}:"
-msgstr ""
+msgstr "Эта система сборки добавляет следующие две фазы к тем, которые определены в @code{gnu-build-system}:"
 
 #. type: item
-#: doc/guix.texi:6367 doc/guix.texi:6755
+#: doc/guix.texi:7224 doc/guix.texi:7656
 #, no-wrap
 msgid "glib-or-gtk-wrap"
-msgstr ""
+msgstr "glib-or-gtk-wrap"
 
 #. type: table
-#: doc/guix.texi:6374
-msgid "The phase @code{glib-or-gtk-wrap} ensures that programs in @file{bin/} are able to find GLib ``schemas'' and @uref{https://developer.gnome.org/gtk3/stable/gtk-running.html, GTK+ modules}.  This is achieved by wrapping the programs in launch scripts that appropriately set the @code{XDG_DATA_DIRS} and @code{GTK_PATH} environment variables."
-msgstr ""
+#: doc/guix.texi:7231
+msgid "The phase @code{glib-or-gtk-wrap} ensures that programs in @file{bin/} are able to find GLib ``schemas'' and @uref{https://developer.gnome.org/gtk3/stable/gtk-running.html, GTK+ modules}.  This is achieved by wrapping the programs in launch scripts that appropriately set the @env{XDG_DATA_DIRS} and @env{GTK_PATH} environment variables."
+msgstr "Фаза @code{glib-or-gtk-wrap} гарантирует, что программы в @file{bin/} смогут найти GLib ``schemas'' и @uref{https://developer.gnome.org/gtk3/stable /gtk-running.html, модули GTK+}.  Это достигается путем включения программ в сценарии запуска, которые соответствующим образом устанавливают переменные среды @env{XDG_DATA_DIRS} и @env{GTK_PATH}."
 
 #. type: table
-#: doc/guix.texi:6381
+#: doc/guix.texi:7238
 msgid "It is possible to exclude specific package outputs from that wrapping process by listing their names in the @code{#:glib-or-gtk-wrap-excluded-outputs} parameter.  This is useful when an output is known not to contain any GLib or GTK+ binaries, and where wrapping would gratuitously add a dependency of that output on GLib and GTK+."
-msgstr ""
+msgstr "Можно исключить определенные выходные данные пакета из этого процесса упаковки, указав их имена в параметре @code{#:glib-or-gtk-wrap-excluded-output}.  Это полезно, когда известно, что выходной файл не содержит двоичных файлов GLib или GTK+, и где wrapping может произвольно добавить зависимость этого вывода от GLib и GTK+."
 
 #. type: item
-#: doc/guix.texi:6382 doc/guix.texi:6759
+#: doc/guix.texi:7239 doc/guix.texi:7660
 #, no-wrap
 msgid "glib-or-gtk-compile-schemas"
-msgstr ""
+msgstr "glib-or-gtk-compile-schemas"
 
 #. type: table
-#: doc/guix.texi:6390
+#: doc/guix.texi:7247
 msgid "The phase @code{glib-or-gtk-compile-schemas} makes sure that all @uref{https://developer.gnome.org/gio/stable/glib-compile-schemas.html, GSettings schemas} of GLib are compiled.  Compilation is performed by the @command{glib-compile-schemas} program.  It is provided by the package @code{glib:bin} which is automatically imported by the build system.  The @code{glib} package providing @command{glib-compile-schemas} can be specified with the @code{#:glib} parameter."
-msgstr ""
+msgstr "Фаза @code{glib-or-gtk-compile-schemas} гарантирует, что все @uref{https://developer.gnome.org/gio/stable/glib-compile-schemas.html, GSettings schemas} в GLib скомпилированы.  Компиляция выполняется программой @command{glib-compile-schemas}.  Она предоставляется пакетом @code{glib:bin}, который автоматически импортируется системой сборки.  Пакет @code{glib}, предоставляющий @command{glib-compile-schemas}, можно указать с помощью параметра @code{#:glib}."
 
 #. type: defvr
-#: doc/guix.texi:6393
+#: doc/guix.texi:7250
 msgid "Both phases are executed after the @code{install} phase."
-msgstr ""
+msgstr "Обе фазы выполняются после фазы @code{install}."
 
 #. type: defvr
-#: doc/guix.texi:6395
+#: doc/guix.texi:7252
 #, no-wrap
 msgid "{Scheme Variable} guile-build-system"
-msgstr ""
+msgstr "{Scheme переменная} guile-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6402
+#: doc/guix.texi:7259
 msgid "This build system is for Guile packages that consist exclusively of Scheme code and that are so lean that they don't even have a makefile, let alone a @file{configure} script.  It compiles Scheme code using @command{guild compile} (@pxref{Compilation,,, guile, GNU Guile Reference Manual}) and installs the @file{.scm} and @file{.go} files in the right place.  It also installs documentation."
-msgstr ""
+msgstr "Эта система сборки предназначена для пакетов Guile, которые состоят исключительно из кода Scheme и настолько скудны, что у них даже нет make-файла, не говоря уже о сценарии @file{configure}.  Она компилирует Scheme код с помощью @command{guild compile} (@pxref{Compilation,,, guile, GNU Guile Reference Manual}) и устанавливает файлы @file{.scm} и @file{.go} в нужное место.  Она также устанавливает документацию."
 
 #. type: defvr
-#: doc/guix.texi:6405
-msgid "This build system supports cross-compilation by using the @code{--target} option of @command{guild compile}."
-msgstr ""
+#: doc/guix.texi:7262
+msgid "This build system supports cross-compilation by using the @option{--target} option of @samp{guild compile}."
+msgstr "Эта система сборки поддерживает кросс-компиляцию с использованием параметра @option{--target} в @samp{guild compile}."
 
 #. type: defvr
-#: doc/guix.texi:6408
+#: doc/guix.texi:7265
 msgid "Packages built with @code{guile-build-system} must provide a Guile package in their @code{native-inputs} field."
-msgstr ""
+msgstr "Пакеты, созданные с помощью @code{guile-build-system}, должны содержать пакет Guile в поле @code{native-inputs}."
 
 #. type: defvr
-#: doc/guix.texi:6410
+#: doc/guix.texi:7267
 #, no-wrap
 msgid "{Scheme Variable} julia-build-system"
-msgstr ""
+msgstr "{Scheme переменная} julia-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6416
-msgid "This variable is exported by @code{(guix build-system julia)}.  It implements the build procedure used by @uref{https://julialang.org/, julia} packages, which essentially is similar to running @command{julia -e 'using Pkg; Pkg.add(package)'} in an environment where @code{JULIA_LOAD_PATH} contains the paths to all Julia package inputs.  Tests are run not run."
-msgstr ""
+#: doc/guix.texi:7274
+msgid "This variable is exported by @code{(guix build-system julia)}.  It implements the build procedure used by @uref{https://julialang.org/, julia} packages, which essentially is similar to running @samp{julia -e 'using Pkg; Pkg.add(package)'} in an environment where @env{JULIA_LOAD_PATH} contains the paths to all Julia package inputs.  Tests are run with @code{Pkg.test}."
+msgstr "Эта переменная экспортируется в @code{(guix build-system julia)}.  Она реализует процедуру сборки, используемую пакетами @uref{https://julialang.org/, julia}, которая по сути аналогична запуску @samp{julia -e 'используя Pkg; Pkg.add(package)'} в среде, где @env{JULIA_LOAD_PATH} содержит пути ко всем входным данным пакета Julia.  Тесты запускаются с @code{Pkg.test}."
 
 #. type: defvr
-#: doc/guix.texi:6419
+#: doc/guix.texi:7277
 msgid "Julia packages require the source @code{file-name} to be the real name of the package, correctly capitalized."
-msgstr ""
+msgstr "Пакеты Julia требуют, чтобы исходный код @code{file-name} был настоящим именем пакета, написанным с заглавной буквы."
 
 #. type: defvr
-#: doc/guix.texi:6424
+#: doc/guix.texi:7282
 msgid "For packages requiring shared library dependencies, you may need to write the @file{/deps/deps.jl} file manually. It's usually a line of @code{const variable = /gnu/store/library.so} for each dependency, plus a void function @code{check_deps() = nothing}."
-msgstr ""
+msgstr "Для пакетов, требующих зависимостей shared библиотек, вам может потребоваться вручную написать файл @file{/deps/deps.jl}.  Обычно это строка @code{const variable = /gnu/store/library.so} для каждой зависимости плюс void функция @code{check_deps() = nothing}."
 
 #. type: defvr
-#: doc/guix.texi:6431
+#: doc/guix.texi:7289
 msgid "Some older packages that aren't using @file{Package.toml} yet, will require this file to be created, too. The function @code{julia-create-package-toml} helps creating the file. You need to pass the outputs and the source of the package, it's name (the same as the @code{file-name} parameter), the package uuid, the package version, and a list of dependencies specified by their name and their uuid."
-msgstr ""
+msgstr "Некоторые старые пакеты, которые еще не используют @file{Package.toml}, также потребуют создания этого файла.  Функция @code{julia-create-package-toml} помогает создать файл.  Вам необходимо передать выходные данные и источник пакета, его имя (такое же, как параметр @code{file-name}), uuid пакета, версию пакета и список зависимостей, указанных по их имени и их uuid."
+
+#. type: defvr
+#: doc/guix.texi:7291
+#, fuzzy, no-wrap
+#| msgid "{Scheme Variable} ant-build-system"
+msgid "{Scheme Variable} maven-build-system"
+msgstr "{Scheme Variable} ant-build-system"
+
+#. type: defvr
+#: doc/guix.texi:7298
+msgid "This variable is exported by @code{(guix build-system maven)}.  It implements a build procedure for @uref{https://maven.apache.org, Maven} packages.  Maven is a dependency and lifecycle management tool for Java.  A user of Maven specifies dependencies and plugins in a @file{pom.xml} file that Maven reads.  When Maven does not have one of the dependencies or plugins in its repository, it will download them and use them to build the package."
+msgstr "Эта переменная экспортируется в @code{(guix build-system maven)}.  Она реализует процедуру сборки пакетов @uref{https://maven.apache.org, Maven}.  Maven - это инструмент для управления зависимостями и жизненным циклом Java.  Пользователь Maven указывает зависимости и плагины в файле @file{pom.xml}, который читает Maven.  Когда Maven не имеет одной из зависимостей или плагинов в своем репозитории, он загружает их и использует для сборки пакета."
+
+#. type: defvr
+#: doc/guix.texi:7308
+msgid "The maven build system ensures that maven will not try to download any dependency by running in offline mode.  Maven will fail if a dependency is missing.  Before running Maven, the @file{pom.xml} (and subprojects) are modified to specify the version of dependencies and plugins that match the versions available in the guix build environment.  Dependencies and plugins must be installed in the fake maven repository at @file{lib/m2}, and are symlinked into a proper repository before maven is run.  Maven is instructed to use that repository for the build and installs built artifacts there.  Changed files are copied to the @file{lib/m2} directory of the package output."
+msgstr "Система сборки maven гарантирует, что maven не будет пытаться загрузить какие-либо зависимости, работая в offline режиме.  Maven завершится ошибкой, если зависимость отсутствует.  Перед запуском Maven @file{pom.xml} (и подпроекты) модифицируются, чтобы указать версию зависимостей и плагинов, которые соответствуют версиям, доступным в среде сборки guix.  Зависимости и плагины должны быть установлены в поддельном репозитории maven по адресу @file{lib/m2} и перед запуском maven привязаны к соответствующему репозиторию.  Maven получает указание использовать этот репозиторий для сборки и устанавливает туда созданные артефакты.  Измененные файлы копируются в каталог @file{lib/m2} выходных данных пакета."
+
+#. type: defvr
+#: doc/guix.texi:7311
+msgid "You can specify a @file{pom.xml} file with the @code{#:pom-file} argument, or let the build system use the default @file{pom.xml} file in the sources."
+msgstr "Вы можете указать файл @file{pom.xml} с аргументом @code{#:pom-file} или позволить системе сборки использовать файл @file{pom.xml} по умолчанию в источниках."
+
+#. type: defvr
+#: doc/guix.texi:7317
+msgid "In case you need to specify a dependency's version manually, you can use the @code{#:local-packages} argument.  It takes an association list where the key is the groupId of the package and its value is an association list where the key is the artifactId of the package and its value is the version you want to override in the @file{pom.xml}."
+msgstr "Если вам нужно указать версию зависимости вручную, вы можете использовать аргумент @code{#:local-packages}.  Он принимает список ассоциаций, где ключ - это groupId пакета, а его значение - это список ассоциаций, где ключ - это artifactId пакета, а его значение - это версия, которую вы хотите переопределить в @file{pom.xml}."
+
+#. type: defvr
+#: doc/guix.texi:7323
+msgid "Some packages use dependencies or plugins that are not useful at runtime nor at build time in Guix.  You can alter the @file{pom.xml} file to remove them using the @code{#:exclude} argument.  Its value is an association list where the key is the groupId of the plugin or dependency you want to remove, and the value is a list of artifactId you want to remove."
+msgstr "Некоторые пакеты используют зависимости или плагины, которые не используются ни во время выполнения, ни во время сборки в Guix.  Вы можете изменить файл @file{pom.xml}, чтобы удалить их, используя аргумент @code{#:exclude}.  Его значение - это список ассоциаций, где ключ - это groupId плагина или зависимости, которые вы хотите удалить, а значение - это список artifactId, которые вы хотите удалить."
+
+#. type: defvr
+#: doc/guix.texi:7326
+msgid "You can override the default @code{jdk} and @code{maven} packages with the corresponding argument, @code{#:jdk} and @code{#:maven}."
+msgstr "Вы можете переопределить пакеты по умолчанию @code{jdk} и @code{maven} с помощью соответствующего аргумента, @code{#:jdk} и @code{#:maven}."
+
+#. type: defvr
+#: doc/guix.texi:7331
+msgid "The @code{#:maven-plugins} argument is a list of maven plugins used during the build, with the same format as the @code{inputs} fields of the package declaration.  Its default value is @code{(default-maven-plugins)} which is also exported."
+msgstr "Аргумент @code{#:maven-plugins} - это список подключаемых модулей maven, используемых во время сборки, в том же формате, что и поля @code{inputs} в объявлении пакета.  Его значение по умолчанию - @code{(default-maven-plugins)}, которое также экспортируется."
 
 #. type: defvr
-#: doc/guix.texi:6433
+#: doc/guix.texi:7333
 #, no-wrap
 msgid "{Scheme Variable} minify-build-system"
-msgstr ""
+msgstr "{Scheme переменная} minify-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6436
+#: doc/guix.texi:7336
 msgid "This variable is exported by @code{(guix build-system minify)}.  It implements a minification procedure for simple JavaScript packages."
-msgstr ""
+msgstr "Эта переменная экспортируется в @code{(guix build-system minify)}.  Она реализует процедуру минификации для простых пакетов JavaScript."
 
 #. type: defvr
-#: doc/guix.texi:6442
+#: doc/guix.texi:7342
 msgid "It adds @code{uglify-js} to the set of inputs and uses it to compress all JavaScript files in the @file{src} directory.  A different minifier package can be specified with the @code{#:uglify-js} parameter, but it is expected that the package writes the minified code to the standard output."
-msgstr ""
+msgstr "Он добавляет @code{uglify-js} к набору входных данных и использует его для сжатия всех файлов JavaScript в каталоге @file{src}.  Другой minifier пакет можно указать с помощью параметра @code{#:uglify-js}, но ожидается, что этот пакет запишет минимизированный код в стандартный вывод."
 
 #. type: defvr
-#: doc/guix.texi:6446
+#: doc/guix.texi:7346
 msgid "When the input JavaScript files are not all located in the @file{src} directory, the parameter @code{#:javascript-files} can be used to specify a list of file names to feed to the minifier."
-msgstr ""
+msgstr "Когда не все входные файлы JavaScript находятся в каталоге @file{src}, можно использовать параметр @code{#:javascript-files}, чтобы указать список имен файлов для передачи в minifier."
 
 #. type: defvr
-#: doc/guix.texi:6448
+#: doc/guix.texi:7348
 #, no-wrap
 msgid "{Scheme Variable} ocaml-build-system"
-msgstr ""
+msgstr "{Scheme переменная} ocaml-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6454
+#: doc/guix.texi:7354
 msgid "This variable is exported by @code{(guix build-system ocaml)}.  It implements a build procedure for @uref{https://ocaml.org, OCaml} packages, which consists of choosing the correct set of commands to run for each package.  OCaml packages can expect many different commands to be run.  This build system will try some of them."
-msgstr ""
+msgstr "Эта переменная экспортируется в @code{(guix build-system ocaml)}.  Она реализует процедуру сборки пакетов @uref{https://ocaml.org, OCaml}, которая заключается в выборе правильного набора команд для запуска для каждого пакета.  Пакеты OCaml могут ожидать выполнения множества различных команд.  Эта система сборки попробует некоторые из них."
 
 #. type: defvr
-#: doc/guix.texi:6464
+#: doc/guix.texi:7364
 msgid "When the package has a @file{setup.ml} file present at the top-level, it will run @code{ocaml setup.ml -configure}, @code{ocaml setup.ml -build} and @code{ocaml setup.ml -install}.  The build system will assume that this file was generated by @uref{http://oasis.forge.ocamlcore.org/, OASIS} and will take care of setting the prefix and enabling tests if they are not disabled.  You can pass configure and build flags with the @code{#:configure-flags} and @code{#:build-flags}.  The @code{#:test-flags} key can be passed to change the set of flags used to enable tests.  The @code{#:use-make?} key can be used to bypass this system in the build and install phases."
-msgstr ""
+msgstr "Если в пакете есть файл @file{setup.ml} на верхнем уровне, он будет запускать @code{ocaml setup.ml -configure}, @code{ocaml setup.ml -build} и @code{ocaml setup.ml -install}. Система сборки предполагает, что этот файл был сгенерирован @uref{http://oasis.forge.ocamlcore.org/, OASIS}, и позаботится об установке префикса и включении тестов, если они не отключены.  Вы можете передать флаги конфигурации и сборки с помощью @code{#:configure-flags} и @code{#:build-flags}.  Ключ @code{#:test-flags} может быть передан для изменения набора флагов, используемых для включения тестов.  Ключ @code{#:use-make?} можно использовать для обхода этой системы на этапах сборки и установки."
 
 #. type: defvr
-#: doc/guix.texi:6469
+#: doc/guix.texi:7369
 msgid "When the package has a @file{configure} file, it is assumed that it is a hand-made configure script that requires a different argument format than in the @code{gnu-build-system}.  You can add more flags with the @code{#:configure-flags} key."
-msgstr ""
+msgstr "Когда в пакете есть файл @file{configure}, предполагается, что это созданный вручную скрипт настройки, для которого требуется другой формат аргументов, чем в @code{gnu-build-system}.  Вы можете добавить дополнительные флаги с помощью клавиши @code{#:configure-flags}."
 
 #. type: defvr
-#: doc/guix.texi:6473
+#: doc/guix.texi:7373
 msgid "When the package has a @file{Makefile} file (or @code{#:use-make?} is @code{#t}), it will be used and more flags can be passed to the build and install phases with the @code{#:make-flags} key."
-msgstr ""
+msgstr "Когда в пакете есть файл @file{Makefile} (или @code{#:use-make?} - это @code{#t}), он будет использоваться, и дополнительные флаги могут быть переданы на этапы сборки и установки с @code{#:make-flags} ключом."
 
 #. type: defvr
-#: doc/guix.texi:6481
+#: doc/guix.texi:7381
 msgid "Finally, some packages do not have these files and use a somewhat standard location for its build system.  In that case, the build system will run @code{ocaml pkg/pkg.ml} or @code{ocaml pkg/build.ml} and take care of providing the path to the required findlib module.  Additional flags can be passed via the @code{#:build-flags} key.  Install is taken care of by @command{opam-installer}.  In this case, the @code{opam} package must be added to the @code{native-inputs} field of the package definition."
-msgstr ""
+msgstr "Наконец, некоторые пакеты не имеют этих файлов и используют стандартное расположение для своей системы сборки.  В этом случае система сборки запустит @code{ocaml pkg/pkg.ml} или @code{ocaml pkg/build.ml} и позаботится о предоставлении пути к необходимому модулю findlib.  Дополнительные флаги можно передать с помощью ключа @code{#:build-flags}.  Об установке позаботится @command{opam-installer}.  В этом случае пакет @code{opam} необходимо добавить в поле @code{native-inputs} в определении пакета."
 
 #. type: defvr
-#: doc/guix.texi:6489
-msgid "Note that most OCaml packages assume they will be installed in the same directory as OCaml, which is not what we want in guix.  In particular, they will install @file{.so} files in their module's directory, which is usually fine because it is in the OCaml compiler directory.  In guix though, these libraries cannot be found and we use @code{CAML_LD_LIBRARY_PATH}.  This variable points to @file{lib/ocaml/site-lib/stubslibs} and this is where @file{.so} libraries should be installed."
-msgstr ""
+#: doc/guix.texi:7389
+msgid "Note that most OCaml packages assume they will be installed in the same directory as OCaml, which is not what we want in guix.  In particular, they will install @file{.so} files in their module's directory, which is usually fine because it is in the OCaml compiler directory.  In guix though, these libraries cannot be found and we use @env{CAML_LD_LIBRARY_PATH}.  This variable points to @file{lib/ocaml/site-lib/stubslibs} and this is where @file{.so} libraries should be installed."
+msgstr "Обратите внимание, что большинство пакетов OCaml предполагают, что они будут установлены в том же каталоге, что и OCaml, что не является тем, что мы хотим в guix.  В частности, они устанавливают файлы @file{.so} в каталог своего модуля, что обычно нормально, потому что он находится в каталоге компилятора OCaml.  Однако в guix эти библиотеки нельзя найти, и мы используем @env{CAML_LD_LIBRARY_PATH}.  Эта переменная указывает на @file{lib/ocaml/site-lib/stubslibs}, и именно здесь должны быть установлены библиотеки @file{.so}."
 
 #. type: defvr
-#: doc/guix.texi:6491
+#: doc/guix.texi:7391
 #, no-wrap
 msgid "{Scheme Variable} python-build-system"
-msgstr ""
+msgstr "{Scheme переменная} python-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6496
+#: doc/guix.texi:7396
 msgid "This variable is exported by @code{(guix build-system python)}.  It implements the more or less standard build procedure used by Python packages, which consists in running @code{python setup.py build} and then @code{python setup.py install --prefix=/gnu/store/@dots{}}."
-msgstr ""
+msgstr "Эта переменная экспортируется в @code{(guix build-system python)}.  Она реализует более или менее стандартную процедуру сборки, используемую пакетами Python, которая заключается в запуске @code{python setup.py build}, а затем @code{python setup.py install --prefix=/gnu/store/@dots{}}."
 
 #. type: defvr
-#: doc/guix.texi:6500
-msgid "For packages that install stand-alone Python programs under @code{bin/}, it takes care of wrapping these programs so that their @code{PYTHONPATH} environment variable points to all the Python libraries they depend on."
-msgstr ""
+#: doc/guix.texi:7400
+msgid "For packages that install stand-alone Python programs under @code{bin/}, it takes care of wrapping these programs so that their @env{PYTHONPATH} environment variable points to all the Python libraries they depend on."
+msgstr "Для пакетов, которые устанавливают само-достаточные программы Python в @code{bin/}, она заботится об обертке этих программ, чтобы их переменная среды @env{PYTHONPATH} указывала на все библиотеки Python, от которых они зависят."
 
 #. type: defvr
-#: doc/guix.texi:6506
+#: doc/guix.texi:7406
 msgid "Which Python package is used to perform the build can be specified with the @code{#:python} parameter.  This is a useful way to force a package to be built for a specific version of the Python interpreter, which might be necessary if the package is only compatible with a single interpreter version."
-msgstr ""
+msgstr "Какой пакет Python используется для сборки, можно указать с помощью параметра @code{#:python}.  Это полезный способ принудительно создать пакет для определенной версии интерпретатора Python, что может потребоваться, если пакет совместим только с одной версией интерпретатора."
 
 #. type: defvr
-#: doc/guix.texi:6511
+#: doc/guix.texi:7411
 msgid "By default guix calls @code{setup.py} under control of @code{setuptools}, much like @command{pip} does.  Some packages are not compatible with setuptools (and pip), thus you can disable this by setting the @code{#:use-setuptools?} parameter to @code{#f}."
-msgstr ""
+msgstr "По умолчанию guix вызывает @code{setup.py} под управлением @code{setuptools}, как и @command{pip}.  Некоторые пакеты несовместимы с setuptools (и pip), поэтому вы можете отключить это, установив для параметра @code{#:use-setuptools?} значение @code{#f}."
 
 #. type: defvr
-#: doc/guix.texi:6513
+#: doc/guix.texi:7413
 #, no-wrap
 msgid "{Scheme Variable} perl-build-system"
-msgstr ""
+msgstr "{Scheme Variable} perl-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6525
+#: doc/guix.texi:7425
 msgid "This variable is exported by @code{(guix build-system perl)}.  It implements the standard build procedure for Perl packages, which either consists in running @code{perl Build.PL --prefix=/gnu/store/@dots{}}, followed by @code{Build} and @code{Build install}; or in running @code{perl Makefile.PL PREFIX=/gnu/store/@dots{}}, followed by @code{make} and @code{make install}, depending on which of @code{Build.PL} or @code{Makefile.PL} is present in the package distribution.  Preference is given to the former if both @code{Build.PL} and @code{Makefile.PL} exist in the package distribution.  This preference can be reversed by specifying @code{#t} for the @code{#:make-maker?} parameter."
-msgstr ""
+msgstr "Эта переменная экспортируется в @code{(guix build-system perl)}.  Она реализует стандартную процедуру сборки для пакетов Perl, которая заключается либо в запуске @code{perl Build.PL --prefix=/gnu/store/@dots{}}, за которым следуют @code{Build} и @code{Build install}; или при запуске @code{perl Makefile.PL PREFIX=/gnu/store/@dots{}}, за которым следуют @code{make} и @code{make install}, в зависимости от того, какой из @code{Build.PL} или @code{Makefile.PL} присутствует в дистрибутиве пакета.  Предпочтение отдается первому, если в дистрибутиве пакета есть и @code{Build.PL}, и @code{Makefile.PL}.  Это предпочтение можно отменить, указав @code{#t} для параметра @code{#:make-maker?}."
 
 #. type: defvr
-#: doc/guix.texi:6529
+#: doc/guix.texi:7429
 msgid "The initial @code{perl Makefile.PL} or @code{perl Build.PL} invocation passes flags specified by the @code{#:make-maker-flags} or @code{#:module-build-flags} parameter, respectively."
-msgstr ""
+msgstr "Первоначальный вызов @code{perl Makefile.PL} или @code{perl Build.PL} передает флаги, указанные в параметре @code{#:make-maker-flags} или @code{#:module-build-flags}, соответственно."
 
 #. type: defvr
-#: doc/guix.texi:6531
+#: doc/guix.texi:7431
 msgid "Which Perl package is used can be specified with @code{#:perl}."
-msgstr ""
+msgstr "Какой пакет Perl используется, можно указать с помощью @code{#:perl}."
 
 #. type: defvr
-#: doc/guix.texi:6533
+#: doc/guix.texi:7433
 #, no-wrap
 msgid "{Scheme Variable} qt-build-system"
-msgstr ""
+msgstr "{Scheme переменная} qt-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6536
+#: doc/guix.texi:7436
 msgid "This variable is exported by @code{(guix build-system qt)}.  It is intended for use with applications using Qt or KDE."
-msgstr ""
+msgstr "Эта переменная экспортируется в @code{(guix build-system qt)}.  Она предназначена для использования с приложениями, использующими Qt или KDE."
 
 #. type: defvr
-#: doc/guix.texi:6539
+#: doc/guix.texi:7439
 msgid "This build system adds the following two phases to the ones defined by @code{cmake-build-system}:"
-msgstr ""
+msgstr "Эта система сборки добавляет следующие две фазы к тем, которые определены в @code{cmake-build-system}:"
 
 #. type: item
-#: doc/guix.texi:6541
+#: doc/guix.texi:7441
 #, no-wrap
 msgid "check-setup"
-msgstr ""
+msgstr "check-setup"
 
 #. type: table
-#: doc/guix.texi:6548
+#: doc/guix.texi:7448
 msgid "The phase @code{check-setup} prepares the environment for running the checks as commonly used by Qt test programs.  For now this only sets some environment variables: @code{QT_QPA_PLATFORM=offscreen}, @code{DBUS_FATAL_WARNINGS=0} and @code{CTEST_OUTPUT_ON_FAILURE=1}."
-msgstr ""
+msgstr "Фаза @code{check-setup} подготавливает среду к запуску проверок, которые обычно используются тестовыми программами Qt.  Пока это устанавливает только некоторые переменные среды: @code{QT_QPA_PLATFORM=offscreen}, @code{DBUS_FATAL_WARNINGS=0} и @code{CTEST_OUTPUT_ON_FAILURE=1}."
 
 #. type: table
-#: doc/guix.texi:6551
+#: doc/guix.texi:7451
 msgid "This phase is added before the @code{check} phase.  It's a separate phase to ease adjusting if necessary."
-msgstr ""
+msgstr "Этот этап добавляется перед этапом @code{check}.  Это отдельный этап для облегчения настройки."
 
 #. type: item
-#: doc/guix.texi:6552
+#: doc/guix.texi:7452
 #, no-wrap
 msgid "qt-wrap"
-msgstr ""
+msgstr "qt-wrap"
 
 #. type: table
-#: doc/guix.texi:6558
+#: doc/guix.texi:7458
 msgid "The phase @code{qt-wrap} searches for Qt5 plugin paths, QML paths and some XDG in the inputs and output.  In case some path is found, all programs in the output's @file{bin/}, @file{sbin/}, @file{libexec/} and @file{lib/libexec/} directories are wrapped in scripts defining the necessary environment variables."
-msgstr ""
+msgstr "Фаза @code{qt-wrap} ищет пути к плагинам Qt5, пути QML и некоторый XDG во входных и выходных данных.  Если путь найден, все программы в выходных каталогах @file{bin/}, @file{sbin/}, @file{libexec/} и @file{lib/libexec/} заключены в сценарии, определяющие необходимые environment переменные."
 
 #. type: table
-#: doc/guix.texi:6564
+#: doc/guix.texi:7464
 msgid "It is possible to exclude specific package outputs from that wrapping process by listing their names in the @code{#:qt-wrap-excluded-outputs} parameter.  This is useful when an output is known not to contain any Qt binaries, and where wrapping would gratuitously add a dependency of that output on Qt, KDE, or such."
-msgstr ""
+msgstr "Можно исключить определенные выходные данные пакета из этого процесса упаковки, указав их имена в параметре @code{#:qt-wrap-excluded-output}.  Это полезно, когда известно, что вывод не содержит никаких двоичных файлов Qt, и когда обертка может произвольно добавить зависимость этого вывода от Qt, KDE и т.п."
 
 #. type: table
-#: doc/guix.texi:6566
+#: doc/guix.texi:7466
 msgid "This phase is added after the @code{install} phase."
-msgstr ""
+msgstr "Эта фаза добавляется после фазы @code{install}."
 
 #. type: defvr
-#: doc/guix.texi:6569
+#: doc/guix.texi:7469
 #, no-wrap
 msgid "{Scheme Variable} r-build-system"
-msgstr ""
+msgstr "{Scheme Variable} r-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6577
-msgid "This variable is exported by @code{(guix build-system r)}.  It implements the build procedure used by @uref{https://r-project.org, R} packages, which essentially is little more than running @code{R CMD INSTALL --library=/gnu/store/@dots{}} in an environment where @code{R_LIBS_SITE} contains the paths to all R package inputs.  Tests are run after installation using the R function @code{tools::testInstalledPackage}."
-msgstr ""
+#: doc/guix.texi:7477
+msgid "This variable is exported by @code{(guix build-system r)}.  It implements the build procedure used by @uref{https://r-project.org, R} packages, which essentially is little more than running @samp{R CMD INSTALL --library=/gnu/store/@dots{}} in an environment where @env{R_LIBS_SITE} contains the paths to all R package inputs.  Tests are run after installation using the R function @code{tools::testInstalledPackage}."
+msgstr "Эта переменная экспортируется в @code{(guix build-system r)}.  Она реализует процедуру сборки, используемую пакетами @uref{https://r-project.org, R}, которая, по сути, немного больше, чем запуск @samp{R CMD INSTALL --library=/gnu/store/@dots{}} в среде, где @env{R_LIBS_SITE} содержит пути ко всем входам пакета R.  Тесты запускаются после установки с использованием R-функции @code{tools::testInstalledPackage}."
 
 #. type: defvr
-#: doc/guix.texi:6579
+#: doc/guix.texi:7479
 #, no-wrap
 msgid "{Scheme Variable} rakudo-build-system"
-msgstr ""
+msgstr "{Scheme переменная} rakudo-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6587
+#: doc/guix.texi:7487
 msgid "This variable is exported by @code{(guix build-system rakudo)}.  It implements the build procedure used by @uref{https://rakudo.org/, Rakudo} for @uref{https://perl6.org/, Perl6} packages. It installs the package to @code{/gnu/store/@dots{}/NAME-VERSION/share/perl6} and installs the binaries, library files and the resources, as well as wrap the files under the @code{bin/} directory.  Tests can be skipped by passing @code{#f} to the @code{tests?} parameter."
-msgstr ""
+msgstr "Эта переменная экспортируется @code{(guix build-system rakudo)}.  Она реализует процедуру сборки, используемую @uref{https://rakudo.org/, Rakudo} для пакетов @uref{https://perl6.org/, Perl6}.  Она устанавливает пакет в @code{/gnu/store/@dots{}/NAME-VERSION/share/perl6} и устанавливает двоичные файлы, файлы библиотеки и resources, а также помещает файлы в @code{bin/ } каталог.  Тесты можно пропустить, передав @code{#f} параметру @code{tests?}."
 
 #. type: defvr
-#: doc/guix.texi:6595
+#: doc/guix.texi:7495
 msgid "Which rakudo package is used can be specified with @code{rakudo}.  Which perl6-tap-harness package used for the tests can be specified with @code{#:prove6} or removed by passing @code{#f} to the @code{with-prove6?} parameter.  Which perl6-zef package used for tests and installing can be specified with @code{#:zef} or removed by passing @code{#f} to the @code{with-zef?} parameter."
-msgstr ""
+msgstr "Какой пакет rakudo используется, можно указать с помощью @code{rakudo}.  Какой пакет perl6-tap-harness, используемый для тестов, можно указать с помощью @code{#:verify6} или удалить, передав @code{#f} в параметр @code{with-verify6?}.  Какой пакет perl6-zef, используемый для тестирования и установки, можно указать с помощью @code{#:zef} или удалить, передав @code{#f} в параметр @code{with-zef?}."
 
 #. type: defvr
-#: doc/guix.texi:6597
+#: doc/guix.texi:7497
 #, no-wrap
 msgid "{Scheme Variable} texlive-build-system"
-msgstr ""
+msgstr "{Scheme переменная} texlive-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6602
-msgid "This variable is exported by @code{(guix build-system texlive)}.  It is used to build TeX packages in batch mode with a specified engine.  The build system sets the @code{TEXINPUTS} variable to find all TeX source files in the inputs."
-msgstr ""
+#: doc/guix.texi:7502
+msgid "This variable is exported by @code{(guix build-system texlive)}.  It is used to build TeX packages in batch mode with a specified engine.  The build system sets the @env{TEXINPUTS} variable to find all TeX source files in the inputs."
+msgstr "Эта переменная экспортируется в @code{(guix build-system texlive)}.  Она используется для сборки пакетов TeX в batch режиме с указанным движком.  Система сборки устанавливает переменную @env{TEXINPUTS} для поиска всех исходных файлов TeX во входных данных."
 
 #. type: defvr
-#: doc/guix.texi:6611
+#: doc/guix.texi:7511
 msgid "By default it runs @code{luatex} on all files ending on @code{ins}.  A different engine and format can be specified with the @code{#:tex-format} argument.  Different build targets can be specified with the @code{#:build-targets} argument, which expects a list of file names.  The build system adds only @code{texlive-bin} and @code{texlive-latex-base} (both from @code{(gnu packages tex}) to the inputs.  Both can be overridden with the arguments @code{#:texlive-bin} and @code{#:texlive-latex-base}, respectively."
-msgstr ""
+msgstr "По умолчанию она запускает @code{luatex} для всех файлов, заканчивающихся на @code{ins}.  Другой механизм и формат можно указать с помощью аргумента @code{#:tex-format}.  Различные цели сборки могут быть указаны с помощью аргумента @code{#:build-target}, который ожидает список имен файлов.  Система сборки добавляет к входам только @code{texlive-bin} и @code{texlive-latex-base} (оба из @code{(gnu packages tex}).  Оба могут быть переопределены с помощью аргументов @code{#:texlive-bin} и @code{#:texlive-latex-base} соответственно."
 
 #. type: defvr
-#: doc/guix.texi:6614
+#: doc/guix.texi:7514
 msgid "The @code{#:tex-directory} parameter tells the build system where to install the built files under the texmf tree."
-msgstr ""
+msgstr "Параметр @code{#:tex-directory} сообщает системе сборки, где установить созданные файлы в дереве texmf.\""
 
 #. type: defvr
-#: doc/guix.texi:6616
+#: doc/guix.texi:7516
 #, no-wrap
 msgid "{Scheme Variable} ruby-build-system"
-msgstr ""
+msgstr "{Scheme переменная} ruby-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6620
+#: doc/guix.texi:7520
 msgid "This variable is exported by @code{(guix build-system ruby)}.  It implements the RubyGems build procedure used by Ruby packages, which involves running @code{gem build} followed by @code{gem install}."
-msgstr ""
+msgstr "Эта переменная экспортируется в @code{(guix build-system ruby)}.  Она реализует процедуру сборки RubyGems, используемую пакетами Ruby, которая включает запуск @code{gem build}, за которым следует @code{gem install}."
 
 #. type: defvr
-#: doc/guix.texi:6628
+#: doc/guix.texi:7528
 msgid "The @code{source} field of a package that uses this build system typically references a gem archive, since this is the format that Ruby developers use when releasing their software.  The build system unpacks the gem archive, potentially patches the source, runs the test suite, repackages the gem, and installs it.  Additionally, directories and tarballs may be referenced to allow building unreleased gems from Git or a traditional source release tarball."
-msgstr ""
+msgstr "Поле @code{source} пакета, использующего эту систему сборки, обычно ссылается на gem архив, поскольку это формат, который разработчики Ruby используют при выпуске своего программного обеспечения.  Система сборки распаковывает gem архив, потенциально исправляет исходный код, запускает набор тестов, переупаковывает gem и устанавливает его.  Кроме того, на каталоги и архивы можно ссылаться, чтобы можно было создавать unreleased gem'ы из Git или традиционного архива с исходным кодом."
 
 #. type: defvr
-#: doc/guix.texi:6632
+#: doc/guix.texi:7532
 msgid "Which Ruby package is used can be specified with the @code{#:ruby} parameter.  A list of additional flags to be passed to the @command{gem} command can be specified with the @code{#:gem-flags} parameter."
-msgstr ""
+msgstr "Какой пакет Ruby используется, можно указать с помощью параметра @code{#:ruby}.  Список дополнительных флагов, передаваемых команде @command{gem}, можно указать с помощью параметра @code{#:gem-flags}."
 
 #. type: defvr
-#: doc/guix.texi:6634
+#: doc/guix.texi:7534
 #, no-wrap
 msgid "{Scheme Variable} waf-build-system"
-msgstr ""
+msgstr "{Scheme переменная} waf-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6640
+#: doc/guix.texi:7540
 msgid "This variable is exported by @code{(guix build-system waf)}.  It implements a build procedure around the @code{waf} script.  The common phases---@code{configure}, @code{build}, and @code{install}---are implemented by passing their names as arguments to the @code{waf} script."
-msgstr ""
+msgstr "Эта переменная экспортируется в @code{(guix build-system waf)}.  Она реализует процедуру сборки вокруг сценария @code{waf}.  Общие этапы---@code{configure}, @code{build} и @code{install}---реализуются путем передачи их имен в качестве аргументов сценарию @code{waf}."
 
 #. type: defvr
-#: doc/guix.texi:6644
+#: doc/guix.texi:7544
 msgid "The @code{waf} script is executed by the Python interpreter.  Which Python package is used to run the script can be specified with the @code{#:python} parameter."
-msgstr ""
+msgstr "Скрипт @code{waf} выполняется интерпретатором Python. Какой пакет Python используется для запуска сценария, можно указать с помощью параметра @code{#:python}."
 
 #. type: defvr
-#: doc/guix.texi:6646
+#: doc/guix.texi:7546
 #, no-wrap
 msgid "{Scheme Variable} scons-build-system"
-msgstr ""
+msgstr "{Scheme переменная} scons-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6652
+#: doc/guix.texi:7552
 msgid "This variable is exported by @code{(guix build-system scons)}.  It implements the build procedure used by the SCons software construction tool.  This build system runs @code{scons} to build the package, @code{scons test} to run tests, and then @code{scons install} to install the package."
-msgstr ""
+msgstr "Эта переменная экспортируется в @code{(guix build-system scons)}.  Она реализует процедуру сборки, используемую инструментом сборки программного обеспечения SCons.  Эта система сборки запускает @code{scons} для сборки пакета, @code{scons test} для запуска тестов и затем @code{scons install} для установки пакета."
 
 #. type: defvr
-#: doc/guix.texi:6659
+#: doc/guix.texi:7559
 msgid "Additional flags to be passed to @code{scons} can be specified with the @code{#:scons-flags} parameter.  The default build and install targets can be overridden with @code{#:build-targets} and @code{#:install-targets} respectively.  The version of Python used to run SCons can be specified by selecting the appropriate SCons package with the @code{#:scons} parameter."
-msgstr ""
+msgstr "Дополнительные флаги, передаваемые в @code{scons}, можно указать с помощью параметра @code{#:scons-flags}.  Цели сборки и установки по умолчанию могут быть переопределены с помощью @code{#:build-target} и @code{#:install-target} соответственно.  Версия Python, используемая для запуска SCons, может быть указана путем выбора соответствующего пакета SCons с параметром @code{#:scons}."
 
 #. type: defvr
-#: doc/guix.texi:6661
+#: doc/guix.texi:7561
 #, no-wrap
 msgid "{Scheme Variable} haskell-build-system"
-msgstr ""
+msgstr "{Scheme переменная} haskell-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6675
+#: doc/guix.texi:7575
 msgid "This variable is exported by @code{(guix build-system haskell)}.  It implements the Cabal build procedure used by Haskell packages, which involves running @code{runhaskell Setup.hs configure --prefix=/gnu/store/@dots{}} and @code{runhaskell Setup.hs build}.  Instead of installing the package by running @code{runhaskell Setup.hs install}, to avoid trying to register libraries in the read-only compiler store directory, the build system uses @code{runhaskell Setup.hs copy}, followed by @code{runhaskell Setup.hs register}.  In addition, the build system generates the package documentation by running @code{runhaskell Setup.hs haddock}, unless @code{#:haddock? #f} is passed.  Optional Haddock parameters can be passed with the help of the @code{#:haddock-flags} parameter.  If the file @code{Setup.hs} is not found, the build system looks for @code{Setup.lhs} instead."
-msgstr ""
+msgstr "Эта переменная экспортируется в @code{(guix build-system haskell)}.  Она реализует процедуру сборки Cabal, используемую пакетами Haskell, которая включает запуск @code{runhaskell Setup.hs configure --prefix=/gnu/store/@dots{}} и @code{runhaskell Setup.hs build}.  Вместо установки пакета путем запуска @code{runhaskell Setup.hs install}, чтобы избежать попыток регистрации библиотек в каталоге хранилища компилятора только для чтения, система сборки использует @code{runhaskell Setup.hs copy}, за которым следует @code{runhaskell Setup.hs register}.  Кроме того, система сборки генерирует документацию по пакету, запуская @code{runhaskell Setup.hs haddock}, если только @code{#:haddock? #f} пройден.  Дополнительные параметры можно передать с помощью параметра @code{#:haddock-flags}.  Если файл @code{Setup.hs} не найден, система сборки вместо этого ищет @code{Setup.lhs}."
 
 #. type: defvr
-#: doc/guix.texi:6678
+#: doc/guix.texi:7578
 msgid "Which Haskell compiler is used can be specified with the @code{#:haskell} parameter which defaults to @code{ghc}."
-msgstr ""
+msgstr "Какой компилятор Haskell используется, можно указать с помощью параметра @code{#:haskell}, который по умолчанию равен @code{ghc}."
 
 #. type: defvr
-#: doc/guix.texi:6680
+#: doc/guix.texi:7580
 #, no-wrap
 msgid "{Scheme Variable} dub-build-system"
-msgstr ""
+msgstr "{Scheme переменная} dub-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6685
+#: doc/guix.texi:7585
 msgid "This variable is exported by @code{(guix build-system dub)}.  It implements the Dub build procedure used by D packages, which involves running @code{dub build} and @code{dub run}.  Installation is done by copying the files manually."
-msgstr ""
+msgstr "Эта переменная экспортируется в @code{(guix build-system dub)}.  Она реализует процедуру сборки Dub, используемую пакетами D, которая включает запуск @code{dub build} и @code{dub run}.  Установка осуществляется путем копирования файлов вручную."
 
 #. type: defvr
-#: doc/guix.texi:6688
+#: doc/guix.texi:7588
 msgid "Which D compiler is used can be specified with the @code{#:ldc} parameter which defaults to @code{ldc}."
-msgstr ""
+msgstr "Какой компилятор D используется, можно указать с помощью параметра @code{#:ldc}, который по умолчанию равен @code{ldc}."
 
 #. type: defvr
-#: doc/guix.texi:6690
+#: doc/guix.texi:7590
 #, no-wrap
 msgid "{Scheme Variable} emacs-build-system"
-msgstr ""
+msgstr "{Scheme переменная} emacs-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6694
+#: doc/guix.texi:7594
 msgid "This variable is exported by @code{(guix build-system emacs)}.  It implements an installation procedure similar to the packaging system of Emacs itself (@pxref{Packages,,, emacs, The GNU Emacs Manual})."
-msgstr ""
+msgstr "Эта переменная экспортируется в @code{(guix build-system emacs)}.  Она реализует процедуру установки, аналогичную системе упаковки самого Emacs (@pxref{Packages,,, emacs, The GNU Emacs Manual})."
 
 #. type: defvr
-#: doc/guix.texi:6700
+#: doc/guix.texi:7600
 msgid "It first creates the @code{@code{package}-autoloads.el} file, then it byte compiles all Emacs Lisp files.  Differently from the Emacs packaging system, the Info documentation files are moved to the standard documentation directory and the @file{dir} file is deleted.  The Elisp package files are installed directly under @file{share/emacs/site-lisp}."
-msgstr ""
+msgstr "Сначала она создает файл @code{@code{package}-autoloads.el}, а затем байт-компилирует все файлы Emacs Lisp.  В отличие от системы упаковки Emacs, файлы документации Info перемещаются в стандартный каталог документации, а файл @file{dir} удаляется.  Файлы пакета Elisp устанавливаются непосредственно в @file{share/emacs/site-lisp}."
 
 #. type: defvr
-#: doc/guix.texi:6702
+#: doc/guix.texi:7602
 #, no-wrap
 msgid "{Scheme Variable} font-build-system"
-msgstr ""
+msgstr "{Scheme переменная} font-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6708
+#: doc/guix.texi:7608
 msgid "This variable is exported by @code{(guix build-system font)}.  It implements an installation procedure for font packages where upstream provides pre-compiled TrueType, OpenType, etc.@: font files that merely need to be copied into place.  It copies font files to standard locations in the output directory."
-msgstr ""
+msgstr "Эта переменная экспортируется в @code{(guix build-system font)}.  Она реализует процедуру установки для пакетов шрифтов, в которой upstream предоставляет предварительно скомпилированные файлы TrueType, OpenType и т.д.@: файлы шрифтов, которые необходимо просто скопировать на место.  Она копирует файлы шрифтов в стандартные места выходного каталога."
 
 #. type: defvr
-#: doc/guix.texi:6710
+#: doc/guix.texi:7610
 #, no-wrap
 msgid "{Scheme Variable} meson-build-system"
-msgstr ""
+msgstr "{Scheme переменная} meson-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6714
+#: doc/guix.texi:7614
 msgid "This variable is exported by @code{(guix build-system meson)}.  It implements the build procedure for packages that use @url{https://mesonbuild.com, Meson} as their build system."
-msgstr ""
+msgstr "Эта переменная экспортируется в @code{(guix build-system meson)}.  Она реализует процедуру сборки для пакетов, которые используют @url{https://mesonbuild.com, Meson} в качестве своей системы сборки."
 
 #. type: defvr
-#: doc/guix.texi:6720
+#: doc/guix.texi:7620
 msgid "It adds both Meson and @uref{https://ninja-build.org/, Ninja} to the set of inputs, and they can be changed with the parameters @code{#:meson} and @code{#:ninja} if needed.  The default Meson is @code{meson-for-build}, which is special because it doesn't clear the @code{RUNPATH} of binaries and libraries when they are installed."
-msgstr ""
+msgstr "Она добавляет к набору входов как Meson, так и @uref{https://ninja-build.org/, Ninja}, и их можно изменить с помощью параметров @code{#:meson} и @code{#:ninja}. если нужно.  По умолчанию Meson - это @code{meson-for-build}, что является особенным, потому что он не очищает @code{RUNPATH} от двоичных файлов и библиотек при их установке."
 
 #. type: defvr
-#: doc/guix.texi:6723
+#: doc/guix.texi:7623
 msgid "This build system is an extension of @code{gnu-build-system}, but with the following phases changed to some specific for Meson:"
-msgstr ""
+msgstr "Эта система сборки является расширением @code{gnu-build-system}, но со следующими фазами, измененными на некоторые специфичные для Meson:"
 
 #. type: table
-#: doc/guix.texi:6730
-msgid "The phase runs @code{meson} with the flags specified in @code{#:configure-flags}.  The flag @code{--build-type} is always set to @code{plain} unless something else is specified in @code{#:build-type}."
-msgstr ""
+#: doc/guix.texi:7631
+msgid "The phase runs @code{meson} with the flags specified in @code{#:configure-flags}.  The flag @option{--buildtype} is always set to @code{debugoptimized} unless something else is specified in @code{#:build-type}."
+msgstr "На этапе выполняется @code{meson} с флагами, указанными в @code{#:configure-flags}.  Флаг @option{--buildtype} всегда установлен на @code{debugoptimized}, если что-то еще не указано в @code{#:build-type}."
 
 #. type: table
-#: doc/guix.texi:6734
+#: doc/guix.texi:7635
 msgid "The phase runs @code{ninja} to build the package in parallel by default, but this can be changed with @code{#:parallel-build?}."
-msgstr ""
+msgstr "На этапе выполняется @code{ninja} для параллельной сборки пакета по умолчанию, но это можно изменить с помощью @code{#:parallel-build?}."
 
 #. type: table
-#: doc/guix.texi:6738
+#: doc/guix.texi:7639
 msgid "The phase runs @code{ninja} with the target specified in @code{#:test-target}, which is @code{\"test\"} by default."
-msgstr ""
+msgstr "На этапе выполняется @code{ninja} с целью, указанной в @code{#:test-target}, по умолчанию это @code{\"test\"}."
 
 #. type: table
-#: doc/guix.texi:6741
+#: doc/guix.texi:7642
 msgid "The phase runs @code{ninja install} and can not be changed."
-msgstr ""
+msgstr "Фаза выполняется @code{ninja install} и не может быть изменен."
 
 #. type: defvr
-#: doc/guix.texi:6744
+#: doc/guix.texi:7645
 msgid "Apart from that, the build system also adds the following phases:"
-msgstr ""
+msgstr "Помимо этого, система сборки также добавляет следующие фазы:"
 
 #. type: item
-#: doc/guix.texi:6747
+#: doc/guix.texi:7648
 #, no-wrap
 msgid "fix-runpath"
-msgstr ""
+msgstr "fix-runpath"
 
 #. type: table
-#: doc/guix.texi:6754
+#: doc/guix.texi:7655
 msgid "This phase ensures that all binaries can find the libraries they need.  It searches for required libraries in subdirectories of the package being built, and adds those to @code{RUNPATH} where needed.  It also removes references to libraries left over from the build phase by @code{meson-for-build}, such as test dependencies, that aren't actually required for the program to run."
-msgstr ""
+msgstr "Эта фаза гарантирует, что все двоичные файлы могут найти нужные библиотеки.  Она ищет необходимые библиотеки в подкаталогах собираемого пакета и, при необходимости, добавляет их в @code{RUNPATH}.  Она также удаляет ссылки на библиотеки, оставшиеся от фазы сборки @code{meson-for-build}, такие как тестовые зависимости, которые на самом деле не требуются для запуска программы."
 
 #. type: table
-#: doc/guix.texi:6758 doc/guix.texi:6762
+#: doc/guix.texi:7659 doc/guix.texi:7663
 msgid "This phase is the phase provided by @code{glib-or-gtk-build-system}, and it is not enabled by default.  It can be enabled with @code{#:glib-or-gtk?}."
-msgstr ""
+msgstr "Эта фаза предоставляется @code{glib-or-gtk-build-system} и по умолчанию не включена.  Ее можно включить с помощью @code{#:glib-or-gtk?}."
 
 #. type: defvr
-#: doc/guix.texi:6765
+#: doc/guix.texi:7666
 #, no-wrap
 msgid "{Scheme Variable} linux-module-build-system"
-msgstr ""
+msgstr "{Scheme переменная} linux-module-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6767
+#: doc/guix.texi:7668
 msgid "@code{linux-module-build-system} allows building Linux kernel modules."
-msgstr ""
+msgstr "@code{linux-module-build-system} позволяет создавать модули ядра Linux."
 
 #. type: defvr
-#: doc/guix.texi:6771
+#: doc/guix.texi:7672
 msgid "This build system is an extension of @code{gnu-build-system}, but with the following phases changed:"
-msgstr ""
+msgstr "Эта система сборки является расширением @code{gnu-build-system}, но со следующими изменениями:"
 
 #. type: table
-#: doc/guix.texi:6777
+#: doc/guix.texi:7678
 msgid "This phase configures the environment so that the Linux kernel's Makefile can be used to build the external kernel module."
-msgstr ""
+msgstr "На этой фазе среда настраивается таким образом, чтобы Makefile ядра Linux можно было использовать для сборки внешнего модуля ядра."
 
 #. type: table
-#: doc/guix.texi:6781
+#: doc/guix.texi:7682
 msgid "This phase uses the Linux kernel's Makefile in order to build the external kernel module."
-msgstr ""
+msgstr "На этой фазе используется Makefile ядра Linux для сборки внешнего модуля ядра."
 
 #. type: table
-#: doc/guix.texi:6785
+#: doc/guix.texi:7686
 msgid "This phase uses the Linux kernel's Makefile in order to install the external kernel module."
-msgstr ""
+msgstr "На этой фазе используется Makefile ядра Linux для установки внешнего модуля ядра."
 
 #. type: defvr
-#: doc/guix.texi:6790
-msgid "It is possible and useful to specify the Linux kernel to use for building the module (in the \"arguments\" form of a package using the linux-module-build-system, use the key #:linux to specify it)."
-msgstr ""
+#: doc/guix.texi:7691
+msgid "It is possible and useful to specify the Linux kernel to use for building the module (in the @code{arguments} form of a package using the @code{linux-module-build-system}, use the key @code{#:linux} to specify it)."
+msgstr "Возможно и полезно указать ядро Linux, которое будет использоваться для сборки модуля (в форме @code{arguments} пакета с использованием @code{linux-module-build-system} используйте ключ @code{#:linux}, чтобы указать это)."
 
 #. type: defvr
-#: doc/guix.texi:6792
+#: doc/guix.texi:7693
 #, no-wrap
 msgid "{Scheme Variable} node-build-system"
-msgstr ""
+msgstr "{Scheme переменная} node-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6797
+#: doc/guix.texi:7698
 msgid "This variable is exported by @code{(guix build-system node)}.  It implements the build procedure used by @uref{https://nodejs.org, Node.js}, which implements an approximation of the @code{npm install} command, followed by an @code{npm test} command."
-msgstr ""
+msgstr "Эта переменная экспортируется в @code{(guix build-system node)}.  Она реализует процедуру сборки, используемую @uref{https://nodejs.org, Node.js}, которая реализует аппроксимацию команды @code{npm install}, за которой следует команда @code{npm test}."
 
 #. type: defvr
-#: doc/guix.texi:6801
+#: doc/guix.texi:7702
 msgid "Which Node.js package is used to interpret the @code{npm} commands can be specified with the @code{#:node} parameter which defaults to @code{node}."
-msgstr ""
+msgstr "Какой пакет Node.js используется для интерпретации команд @code{npm}, можно указать с помощью параметра @code{#:node}, который по умолчанию равен @code{node}."
 
 #. type: Plain text
-#: doc/guix.texi:6807
+#: doc/guix.texi:7708
 msgid "Lastly, for packages that do not need anything as sophisticated, a ``trivial'' build system is provided.  It is trivial in the sense that it provides basically no support: it does not pull any implicit inputs, and does not have a notion of build phases."
-msgstr ""
+msgstr "Наконец, для пакетов, которым не нужно ничего столь же сложного, предоставляется ``trivial'' система сборки.  Она тривиальна в том смысле, что она практически не оказывает поддержки при сборке: она не извлекает никаких неявных входных данных и не имеет понятия о этапах сборки."
 
 #. type: defvr
-#: doc/guix.texi:6808
+#: doc/guix.texi:7709
 #, no-wrap
 msgid "{Scheme Variable} trivial-build-system"
-msgstr ""
+msgstr "{Scheme переменная} trivial-build-system"
 
 #. type: defvr
-#: doc/guix.texi:6810
+#: doc/guix.texi:7711
 msgid "This variable is exported by @code{(guix build-system trivial)}."
-msgstr ""
+msgstr "Эта переменная экспортируется @code{(guix build-system trivial)}."
 
 #. type: defvr
-#: doc/guix.texi:6815
+#: doc/guix.texi:7716
 msgid "This build system requires a @code{#:builder} argument.  This argument must be a Scheme expression that builds the package output(s)---as with @code{build-expression->derivation} (@pxref{Derivations, @code{build-expression->derivation}})."
+msgstr "Эта система сборки требует аргумента @code{#:builder}.  Этот аргумент должен быть Scheme выражением, которое строит выходные данные пакета---как с @code{build-expression->derivation} (@pxref{Derivations, @code{build-expression->derivation}})."
+
+#. type: cindex
+#: doc/guix.texi:7721
+#, fuzzy, no-wrap
+#| msgid "inputs, for Python packages"
+msgid "build phases, for packages"
+msgstr "входные данные, для пакетов Python"
+
+#. type: Plain text
+#: doc/guix.texi:7727
+msgid "Almost all package build systems implement a notion @dfn{build phases}: a sequence of actions that the build system executes, when you build the package, leading to the installed byproducts in the store.  A notable exception is the ``bare-bones'' @code{trivial-build-system} (@pxref{Build Systems})."
+msgstr "Почти все системы сборки пакетов реализуют понятие @dfn{фазы сборки}: последовательность действий, которые система сборки выполняет при сборке пакета, что приводит к установке побочных продуктов в store.  Заметным исключением является ``bare-bones'' @code{trivial-build-system} (@pxref{Build Systems})."
+
+#. type: Plain text
+#: doc/guix.texi:7741
+msgid "As discussed in the previous section, those build systems provide a standard list of phases.  For @code{gnu-build-system}, the standard phases include an @code{unpack} phase to unpack the source code tarball, a @command{configure} phase to run @code{./configure}, a @code{build} phase to run @command{make}, and (among others) an @code{install} phase to run @command{make install}; @pxref{Build Systems}, for a more detailed view of these phases.  Likewise, @code{cmake-build-system} inherits these phases, but its @code{configure} phase runs @command{cmake} instead of @command{./configure}.  Other build systems, such as @code{python-build-system}, have a wholly different list of standard phases.  All this code runs on the @dfn{build side}: it is evaluated when you actually build the package, in a dedicated build process spawned by the build daemon (@pxref{Invoking guix-daemon})."
+msgstr "Как обсуждалось в предыдущем разделе, эти системы сборки предоставляют стандартный список фаз.  Для @code{gnu-build-system} стандартные фазы включают фазу @code{unpack} для распаковки архива исходного кода, фазу @command{configure} для запуска @code{./configure}, @code{build} фаза для запуска @command{make} и (среди прочего) фазу @code{install} для запуска @command{make install}; @pxref{Build Systems}, чтобы получить более подробное представление об этих фазах.  Точно так же @code{cmake-build-system} наследует эти фазы, но его фаза @code{configure} запускает @command{cmake} вместо @command{./configure}.  Другие системы сборки, такие как @code{python-build-system}, имеют совершенно другой список стандартных фаз.  Весь этот код выполняется на @dfn{build side}: он выполняется, когда вы фактически собираете пакет, в отдельном процессе сборки, порожденном демоном сборки (@pxref{Invoking guix-daemon})."
+
+#. type: Plain text
+#: doc/guix.texi:7748
+msgid "Build phases are represented as association lists or ``alists'' (@pxref{Association Lists,,, guile, GNU Guile Reference Manual}) where each key is a symbol for the name of the phase and the associated value is a procedure that accepts an arbitrary number of arguments.  By convention, those procedures receive information about the build in the form of @dfn{keyword parameters}, which they can use or ignore."
+msgstr "Этапы сборки представлены в виде ассоциативных списков или ``alists'' (@pxref{Association Lists,,, guile, GNU Guile Reference Manual}), где каждый ключ является символом имени фазы, а соответствующее значение - процедурой, которая принимает произвольное количество аргументов.  По соглашению эти процедуры получают информацию о сборке в виде @dfn{ключевых параметров}, которые они могут использовать или игнорировать."
+
+#. type: Plain text
+#: doc/guix.texi:7754
+msgid "For example, here is how @code{(guix build gnu-build-system)} defines @code{%standard-phases}, the variable holding its alist of build phases@footnote{We present a simplified view of those build phases, but do take a look at @code{(guix build gnu-build-system)} to see all the details!}:"
+msgstr "Например, вот как @code{(guix build gnu-build-system)} определяет @code{%standard-phase}, переменную, содержащую список фаз сборки @footnote{Мы представляем упрощенное представление этих фаз сборки, но обязательно взгляните на @code{(guix build gnu-build-system)}, чтобы увидеть все подробности!}:"
+
+#. type: lisp
+#: doc/guix.texi:7757
+#, no-wrap
+msgid ""
+";; The build phases of 'gnu-build-system'.\n"
+"\n"
+msgstr ""
+
+#. type: lisp
+#: doc/guix.texi:7761
+#, no-wrap
+msgid ""
+"(define* (unpack #:key source #:allow-other-keys)\n"
+"  ;; Extract the source tarball.\n"
+"  (invoke \"tar\" \"xvf\" source))\n"
+"\n"
+msgstr ""
+
+#. type: lisp
+#: doc/guix.texi:7767
+#, no-wrap
+msgid ""
+"(define* (configure #:key outputs #:allow-other-keys)\n"
+"  ;; Run the 'configure' script.  Install to output \"out\".\n"
+"  (let ((out (assoc-ref outputs \"out\")))\n"
+"    (invoke \"./configure\"\n"
+"            (string-append \"--prefix=\" out))))\n"
+"\n"
+msgstr ""
+
+#. type: lisp
+#: doc/guix.texi:7771
+#, no-wrap
+msgid ""
+"(define* (build #:allow-other-keys)\n"
+"  ;; Compile.\n"
+"  (invoke \"make\"))\n"
+"\n"
+msgstr ""
+
+#. type: lisp
+#: doc/guix.texi:7778
+#, no-wrap
+msgid ""
+"(define* (check #:key (test-target \"check\") (tests? #true)\n"
+"                #:allow-other-keys)\n"
+"  ;; Run the test suite.\n"
+"  (if tests?\n"
+"      (invoke \"make\" test-target)\n"
+"      (display \"test suite not run\\n\")))\n"
+"\n"
+msgstr ""
+
+#. type: lisp
+#: doc/guix.texi:7782
+#, no-wrap
+msgid ""
+"(define* (install #:allow-other-keys)\n"
+"  ;; Install files to the prefix 'configure' specified.\n"
+"  (invoke \"make\" \"install\"))\n"
+"\n"
+msgstr ""
+
+#. type: lisp
+#: doc/guix.texi:7791
+#, no-wrap
+msgid ""
+"(define %standard-phases\n"
+"  ;; The list of standard phases (quite a few are omitted\n"
+"  ;; for brevity).  Each element is a symbol/procedure pair.\n"
+"  (list (cons 'unpack unpack)\n"
+"        (cons 'configure configure)\n"
+"        (cons 'build build)\n"
+"        (cons 'check check)\n"
+"        (cons 'install install)))\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:7801
+msgid "This shows how @code{%standard-phases} is defined as a list of symbol/procedure pairs (@pxref{Pairs,,, guile, GNU Guile Reference Manual}).  The first pair associates the @code{unpack} procedure with the @code{unpack} symbol---a name; the second pair defines the @code{configure} phase similarly, and so on.  When building a package that uses @code{gnu-build-system} with its default list of phases, those phases are executed sequentially.  You can see the name of each phase started and completed in the build log of packages that you build."
+msgstr "Это показывает, как @code{%standard-phase} определяется как список пар символ/процедура (@pxref{Pairs,,, guile, GNU Guile Reference Manual}).  Первая пара связывает процедуру @code{unpack} с символом @code{unpack}---именем; вторая пара аналогичным образом определяет фазу @code{configure} и так далее.  При сборке пакета, который использует @code{gnu-build-system} со списком фаз по умолчанию, эти фазы выполняются последовательно.  Вы можете увидеть название каждой фазы, запущенной и завершенной, в журнале сборки пакетов, которые вы собираете."
+
+#. type: Plain text
+#: doc/guix.texi:7807
+msgid "Let's now look at the procedures themselves.  Each one is defined with @code{define*}: @code{#:key} lists keyword parameters the procedure accepts, possibly with a default value, and @code{#:allow-other-keys} specifies that other keyword parameters are ignored (@pxref{Optional Arguments,,, guile, GNU Guile Reference Manual})."
+msgstr "Теперь посмотрим на сами процедуры.  Каждая из них определяется с помощью @code{define*}: @code{#:key} перечисляет параметры ключевого слова, которые принимает процедура, возможно, со значением по умолчанию, а @code{#:allow-other-keys} указывает, что другие параметры ключевого слова являются игнорируется (@pxref{Optional Arguments,,, guile, GNU Guile Reference Manual})."
+
+#. type: Plain text
+#: doc/guix.texi:7823
+msgid "The @code{unpack} procedure honors the @code{source} parameter, which the build system uses to pass the file name of the source tarball (or version control checkout), and it ignores other parameters.  The @code{configure} phase only cares about the @code{outputs} parameter, an alist mapping package output names to their store file name (@pxref{Packages with Multiple Outputs}).  It extracts the file name of for @code{out}, the default output, and passes it to @command{./configure} as the installation prefix, meaning that @command{make install} will eventually copy all the files in that directory (@pxref{Configuration, configuration and makefile conventions,, standards, GNU Coding Standards}).  @code{build} and @code{install} ignore all their arguments.  @code{check} honors the @code{test-target} argument, which specifies the name of the Makefile target to run tests; it prints a message and skips tests when @code{tests?} is false."
+msgstr "Процедура @code{unpack} учитывает параметр @code{source}, который система сборки использует для передачи имени файла исходного архива (или checkout контроля версий), и игнорирует другие параметры.  Фаза @code{configure} касается только параметра @code{output}, списка имен выходных пакетов, отображающих имена файлов хранилища (@pxref{Packages with Multiple Outputs}).  Она извлекает имя файла для @code{out}, вывода по умолчанию, и передает его @command{./configure} в качестве префикса установки, что означает, что @command{make install} в конечном итоге скопирует все файлы в этом каталоге (@pxref{Configuration, configuration and makefile conventions,, standards, GNU Coding Standards}).  @code{build} и @code{install} игнорируют все свои аргументы.  @code{check} учитывает аргумент @code{test-target}, который указывает имя цели Makefile для запуска тестов; она печатает сообщение и пропускает тесты, если @code{tests?} ложно."
+
+#. type: cindex
+#: doc/guix.texi:7824
+#, fuzzy, no-wrap
+msgid "build phases, customizing"
+msgstr "build phases, customizing"
+
+#. type: Plain text
+#: doc/guix.texi:7833
+msgid "The list of phases used for a particular package can be changed with the @code{#:phases} parameter of the build system.  Changing the set of build phases boils down to building a new alist of phases based on the @code{%standard-phases} alist described above.  This can be done with standard alist procedures such as @code{alist-delete} (@pxref{SRFI-1 Association Lists,,, guile, GNU Guile Reference Manual}); however, it is more convenient to do so with @code{modify-phases} (@pxref{Build Utilities, @code{modify-phases}})."
+msgstr "Список фаз, используемых для конкретного пакета, можно изменить с помощью параметра @code{#:phase} системы сборки.  Изменение набора фаз сборки сводится к созданию нового списка фаз на основе списка @code{%standard-phase}, описанного выше.  Это можно сделать с помощью стандартных процедур списков, таких как @code{alist-delete} (@pxref{SRFI-1 Association Lists,,, guile, GNU Guile Reference Manual}); однако это удобнее делать с помощью @code{modify-phase} (@pxref{Build Utilities, @code{modify-phases}})."
+
+#. type: Plain text
+#: doc/guix.texi:7838
+msgid "Here is an example of a package definition that removes the @code{configure} phase of @code{%standard-phases} and inserts a new phase before the @code{build} phase, called @code{set-prefix-in-makefile}:"
+msgstr "Вот пример определения пакета, который удаляет фазу @code{configure} из @code{%standard-phase} и вставляет новую фазу перед фазой @code{build}, которая называется @code{set-prefix-in- makefile}:"
+
+#. type: lisp
+#: doc/guix.texi:7858
+#, no-wrap
+msgid ""
+"(define-public example\n"
+"  (package\n"
+"    (name \"example\")\n"
+"    ;; other fields omitted\n"
+"    (build-system gnu-build-system)\n"
+"    (arguments\n"
+"     '(#:phases (modify-phases %standard-phases\n"
+"                  (delete 'configure)\n"
+"                  (add-before 'build 'set-prefix-in-makefile\n"
+"                    (lambda* (#:key outputs #:allow-other-keys)\n"
+"                      ;; Modify the makefile so that its\n"
+"                      ;; 'PREFIX' variable points to \"out\".\n"
+"                      (let ((out (assoc-ref outputs \"out\")))\n"
+"                        (substitute* \"Makefile\"\n"
+"                          ((\"PREFIX =.*\")\n"
+"                           (string-append \"PREFIX = \"\n"
+"                                          out \"\\n\")))\n"
+"                        #true))))))))\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:7864
+msgid "The new phase that is inserted is written as an anonymous procedure, introduced with @code{lambda*}; it honors the @code{outputs} parameter we have seen before.  @xref{Build Utilities}, for more about the helpers used by this phase, and for more examples of @code{modify-phases}."
+msgstr "Новая вставляемая фаза записывается как анонимная процедура, представленная с помощью @code{lambda*}; она учитывает параметр @code{output}, который мы видели ранее.  @xref{Build Utilities}, чтобы узнать больше о помощниках, используемых в этой фазе, и получить больше примеров @code{modify-phase}."
+
+#. type: cindex
+#: doc/guix.texi:7865 doc/guix.texi:8838
+#, no-wrap
+msgid "code staging"
+msgstr "staging кода"
+
+#. type: cindex
+#: doc/guix.texi:7866 doc/guix.texi:8839
+#, fuzzy, no-wrap
+#| msgid "formatting, of code"
+msgid "staging, of code"
+msgstr "форматировние, кода"
+
+#. type: Plain text
+#: doc/guix.texi:7873
+msgid "Keep in mind that build phases are code evaluated at the time the package is actually built.  This explains why the whole @code{modify-phases} expression above is quoted (it comes after the @code{'} or apostrophe): it is @dfn{staged} for later execution.  @xref{G-Expressions}, for an explanation of code staging and the @dfn{code strata} involved."
+msgstr "Имейте в виду, что фазы сборки - это код, выполняемый во время фактической сборки пакета.  Это объясняет, почему приведенное выше выражение @code{modify-phase} целиком (оно идет после @code{'} или апострофа): это @dfn{staged} для последующего выполнения.  @xref{G-Expressions} для объяснения staging кода и задействованных @dfn{code strata}."
+
+#. type: Plain text
+#: doc/guix.texi:7883
+msgid "As soon as you start writing non-trivial package definitions (@pxref{Defining Packages}) or other build actions (@pxref{G-Expressions}), you will likely start looking for helpers for ``shell-like'' actions---creating directories, copying and deleting files recursively, manipulating build phases, and so on.  The @code{(guix build utils)} module provides such utility procedures."
+msgstr "Как только вы начнете писать нетривиальные определения пакетов (@pxref{Defining Packages}) или другие действия сборки (@pxref{G-Expressions}), вы, скорее всего, начнете искать помощников для действий, подобных оболочке---создание каталогов, рекурсивное копирование и удаление файлов, управление этапами сборки и т.д.  Модуль @code{(guix build utils)} предоставляет такие служебные процедуры."
+
+#. type: Plain text
+#: doc/guix.texi:7887
+msgid "Most build systems load @code{(guix build utils)} (@pxref{Build Systems}).  Thus, when writing custom build phases for your package definitions, you can usually assume those procedures are in scope."
+msgstr "Большинство систем сборки загружают @code{(guix build utils)} (@pxref{Build Systems}).  Таким образом, при написании настраиваемых фаз сборки для определений пакетов вы обычно можете предположить, что эти процедуры входят в область действия."
+
+#. type: Plain text
+#: doc/guix.texi:7892
+msgid "When writing G-expressions, you can import @code{(guix build utils)} on the ``build side'' using @code{with-imported-modules} and then put it in scope with the @code{use-modules} form (@pxref{Using Guile Modules,,, guile, GNU Guile Reference Manual}):"
+msgstr "При написании G-выражений вы можете импортировать @code{(guix build utils)} на ``стороне сборки'', используя @code{with-import-modules}, а затем поместить его в область видимости с помощью формы @code{use-modules} (@pxref{Using Guile Modules,,, guile, GNU Guile Reference Manual}):"
+
+#. type: lisp
+#: doc/guix.texi:7899
+#, no-wrap
+msgid ""
+"(with-imported-modules '((guix build utils))  ;import it\n"
+"  (computed-file \"empty-tree\"\n"
+"                 #~(begin\n"
+"                     ;; Put it in scope.\n"
+"                     (use-modules (guix build utils))\n"
+"\n"
+msgstr ""
+
+#. type: lisp
+#: doc/guix.texi:7902
+#, no-wrap
+msgid ""
+"                     ;; Happily use its 'mkdir-p' procedure.\n"
+"                     (mkdir-p (string-append #$output \"/a/b/c\")))))\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:7906
+msgid "The remainder of this section is the reference for most of the utility procedures provided by @code{(guix build utils)}."
+msgstr "Оставшаяся часть этого раздела является справочником по большинству служебных процедур, предоставляемых @code{(guix build utils)}."
+
+#. type: subsection
+#: doc/guix.texi:7909
+#, no-wrap
+msgid "Dealing with Store File Names"
+msgstr "Работа с именами файлов в store"
+
+#. type: Plain text
+#: doc/guix.texi:7912
+msgid "This section documents procedures that deal with store file names."
+msgstr "В этом разделе описаны процедуры, относящиеся к именам файлов в store."
+
+#. type: deffn
+#: doc/guix.texi:7913
+#, fuzzy, no-wrap
+#| msgid "{Scheme Procedure} sane-service-type"
+msgid "{Scheme Procedure} %store-directory"
+msgstr "{Процедура Scheme} sane-service-type"
+
+#. type: deffn
+#: doc/guix.texi:7915
+#, fuzzy
+#| msgid "Verify the integrity of the store."
+msgid "Return the directory name of the store."
+msgstr "Проверить целостность склада."
+
+#. type: deffn
+#: doc/guix.texi:7917
+#, fuzzy, no-wrap
+#| msgid "{Scheme Procedure} file-union @var{name} @var{files}"
+msgid "{Scheme Procedure} store-file-name? @var{file}"
+msgstr "{Scheme Procedure} file-union @var{name} @var{files}"
+
+#. type: deffn
+#: doc/guix.texi:7919
+#, fuzzy
+#| msgid "Return true if @var{obj} is an inferior package."
+msgid "Return true if @var{file} is in the store."
+msgstr "Возвращает true, если объект @var{obj} --- это пакет ранней версии."
+
+#. type: deffn
+#: doc/guix.texi:7921
+#, fuzzy, no-wrap
+#| msgid "{Scheme Procedure} file-union @var{name} @var{files}"
+msgid "{Scheme Procedure} strip-store-file-name @var{file}"
+msgstr "{Scheme Procedure} file-union @var{name} @var{files}"
+
+#. type: deffn
+#: doc/guix.texi:7924
+msgid "Strip the @file{/gnu/store} and hash from @var{file}, a store file name.  The result is typically a @code{\"@var{package}-@var{version}\"} string."
+msgstr "Удалиnm @file{/gnu/store} и хэш из @var{file}, имени файла в store.  Результатом обычно является строка @code{\"@var{package}-@var{version}\"}."
+
+#. type: deffn
+#: doc/guix.texi:7926
+#, fuzzy, no-wrap
+#| msgid "{Scheme Procedure} inferior-package-version @var{package}"
+msgid "{Scheme Procedure} package-name->name+version @var{name}"
+msgstr "{Процедура Scheme} inferior-package-version @var{package}"
+
+#. type: deffn
+#: doc/guix.texi:7931
+msgid "Given @var{name}, a package name like @code{\"foo-0.9.1b\"}, return two values: @code{\"foo\"} and @code{\"0.9.1b\"}.  When the version part is unavailable, @var{name} and @code{#f} are returned.  The first hyphen followed by a digit is considered to introduce the version part."
+msgstr "Учитывая @var{name}, имя пакета, такое как @code{\"foo-0.9.1b\"}, возвращает два значения: @code{\"foo\"} и @code{\"0.9.1b\"}.  Если часть версии недоступна, возвращаются @var{name} и @code{#f}.  Считается, что первый дефис, за которым следует цифра, обозначает часть версии."
+
+#. type: subsection
+#: doc/guix.texi:7933
+#, fuzzy, no-wrap
+#| msgid "File Systems"
+msgid "File Types"
+msgstr "Файловые системы"
+
+#. type: Plain text
+#: doc/guix.texi:7936
+#, fuzzy
+#| msgid "The procedures listed below allow you to obtain and manipulate inferior packages."
+msgid "The procedures below deal with files and file types."
+msgstr "Процедуры, приведённые ниже, обеспечивают работу и управление ранними версиями пакетов."
+
+#. type: deffn
+#: doc/guix.texi:7937
+#, fuzzy, no-wrap
+#| msgid "{Scheme Procedure} directory-union @var{name} @var{things}"
+msgid "{Scheme Procedure} directory-exists? @var{dir}"
+msgstr "{Scheme Procedure} directory-union @var{name} @var{things}"
+
+#. type: deffn
+#: doc/guix.texi:7939
+msgid "Return @code{#t} if @var{dir} exists and is a directory."
+msgstr "Вернуть @code{#t}, если @var{dir} существует и является каталогом."
+
+#. type: deffn
+#: doc/guix.texi:7941
+#, fuzzy, no-wrap
+#| msgid "{Scheme Procedure} file-union @var{name} @var{files}"
+msgid "{Scheme Procedure} executable-file? @var{file}"
+msgstr "{Scheme Procedure} file-union @var{name} @var{files}"
+
+#. type: deffn
+#: doc/guix.texi:7943
+msgid "Return @code{#t} if @var{file} exists and is executable."
+msgstr "Вернуть @code{#t}, если @var{file} существует и исполняемый файл."
+
+#. type: deffn
+#: doc/guix.texi:7945
+#, fuzzy, no-wrap
+#| msgid "{Scheme Procedure} file-union @var{name} @var{files}"
+msgid "{Scheme Procedure} symbolic-link? @var{file}"
+msgstr "{Scheme Procedure} file-union @var{name} @var{files}"
+
+#. type: deffn
+#: doc/guix.texi:7947
+msgid "Return @code{#t} if @var{file} is a symbolic link (aka. a ``symlink'')."
+msgstr "Вернуть @code{#t}, если @var{file} является символической ссылкой (также известной как ``символическая ссылка'')."
+
+#. type: deffn
+#: doc/guix.texi:7949
+#, fuzzy, no-wrap
+#| msgid "{Scheme Procedure} file-union @var{name} @var{files}"
+msgid "{Scheme Procedure} elf-file? @var{file}"
+msgstr "{Scheme Procedure} file-union @var{name} @var{files}"
+
+#. type: deffnx
+#: doc/guix.texi:7950
+#, fuzzy, no-wrap
+#| msgid "{Scheme Procedure} file-union @var{name} @var{files}"
+msgid "{Scheme Procedure} ar-file? @var{file}"
+msgstr "{Scheme Procedure} file-union @var{name} @var{files}"
+
+#. type: deffnx
+#: doc/guix.texi:7951
+#, fuzzy, no-wrap
+#| msgid "{Scheme Procedure} file-union @var{name} @var{files}"
+msgid "{Scheme Procedure} gzip-file? @var{file}"
+msgstr "{Scheme Procedure} file-union @var{name} @var{files}"
+
+#. type: deffn
+#: doc/guix.texi:7954
+msgid "Return @code{#t} if @var{file} is, respectively, an ELF file, an @code{ar} archive (such as a @file{.a} static library), or a gzip file."
+msgstr "Вернуть @code{#t}, если @var{file} является, соответственно, файлом ELF, архивом @code{ar} (например, статической библиотекой @file{.a}) или файлом gzip."
+
+#. type: deffn
+#: doc/guix.texi:7956
+#, fuzzy, no-wrap
+#| msgid "{Scheme Procedure} inferior-package-inputs @var{package}"
+msgid "{Scheme Procedure} reset-gzip-timestamp @var{file} [#:keep-mtime? #t]"
+msgstr "{Процедура Scheme} inferior-package-inputs @var{package}"
+
+#. type: deffn
+#: doc/guix.texi:7960
+msgid "If @var{file} is a gzip file, reset its embedded timestamp (as with @command{gzip --no-name}) and return true.  Otherwise return @code{#f}.  When @var{keep-mtime?} is true, preserve @var{file}'s modification time."
+msgstr "Если @var{file} является файлом gzip, сбросить его timestamp (как в случае @command{gzip --no-name}) и вернуть истину.  В противном случае вернуть @code{#f}.  Когда @var{keep-mtime?} истинна, сохранить время модификации @var{file}."
+
+#. type: subsection
+#: doc/guix.texi:7962
+#, no-wrap
+msgid "File Manipulation"
+msgstr "Управление файлами"
+
+#. type: Plain text
+#: doc/guix.texi:7969
+msgid "The following procedures and macros help create, modify, and delete files.  They provide functionality comparable to common shell utilities such as @command{mkdir -p}, @command{cp -r}, @command{rm -r}, and @command{sed}.  They complement Guile's extensive, but low-level, file system interface (@pxref{POSIX,,, guile, GNU Guile Reference Manual})."
+msgstr "Следующие процедуры и макросы помогают создавать, изменять и удалять файлы.  Они обеспечивают функциональность, сопоставимую с такими обычными утилитами оболочки, как @command{mkdir -p}, @command{cp -r}, @command{rm -r} и @command{sed}.  Они дополняют обширный, но низкоуровневый интерфейс файловой системы Guile (@pxref{POSIX,,, guile, GNU Guile Reference Manual})."
+
+#. type: deffn
+#: doc/guix.texi:7970
+#, fuzzy, no-wrap
+#| msgid "{Scheme Syntax} let-system @var{system} @var{body}@dots{}"
+msgid "{Scheme Syntax} with-directory-excursion @var{directory} @var{body}@dots{}"
+msgstr "{Scheme Syntax} let-system @var{system} @var{body}@dots{}"
+
+#. type: deffn
+#: doc/guix.texi:7972
+msgid "Run @var{body} with @var{directory} as the process's current directory."
+msgstr "Запустить @var{body} с @var{directory} в качестве текущего каталога процесса."
+
+#. type: deffn
+#: doc/guix.texi:7979
+msgid "Essentially, this macro changes the current directory to @var{directory} before evaluating @var{body}, using @code{chdir} (@pxref{Processes,,, guile, GNU Guile Reference Manual}).  It changes back to the initial directory when the dynamic extent of @var{body} is left, be it @i{via} normal procedure return or @i{via} a non-local exit such as an exception."
+msgstr "По сути, этот макрос изменяет текущий каталог на @var{directory} перед вычислением @var{body}, используя @code{chdir} (@pxref{Processes,,, guile, GNU Guile Reference Manual}).  Она возвращается в исходный каталог, когда остается динамический extent @var{body}, будь то @i{через} возврат нормальной процедуры или @i{через} нелокальный выход, такой как исключение."
+
+#. type: deffn
+#: doc/guix.texi:7981
+#, fuzzy, no-wrap
+#| msgid "{Scheme Procedure} inferior-packages @var{inferior}"
+msgid "{Scheme Procedure} mkdir-p @var{dir}"
+msgstr "{Процедура Scheme} inferior-packages @var{inferior}"
+
+#. type: deffn
+#: doc/guix.texi:7983
+msgid "Create directory @var{dir} and all its ancestors."
+msgstr "Создать каталог @var{dir} и всех его предков."
+
+#. type: deffn
+#: doc/guix.texi:7985
+#, fuzzy, no-wrap
+#| msgid "{Scheme Procedure} open-inferior @var{directory} @"
+msgid "{Scheme Procedure} install-file @var{file} @var{directory}"
+msgstr "{Процедура Scheme} open-inferior @var{directory} @"
+
+#. type: deffn
+#: doc/guix.texi:7988
+msgid "Create @var{directory} if it does not exist and copy @var{file} in there under the same name."
+msgstr "Создать @var{каталог}, если он не существует, и скопировать туда @var{file} под тем же именем."
+
+#. type: deffn
+#: doc/guix.texi:7990
+#, fuzzy, no-wrap
+#| msgid "{Scheme Procedure} file-union @var{name} @var{files}"
+msgid "{Scheme Procedure} make-file-writable @var{file}"
+msgstr "{Scheme Procedure} file-union @var{name} @var{files}"
+
+#. type: deffn
+#: doc/guix.texi:7992
+msgid "Make @var{file} writable for its owner."
+msgstr "Сделать @var{file} доступным для записи его владельцу."
+
+#. type: deffn
+#: doc/guix.texi:7994
+#, fuzzy, no-wrap
+msgid "{Scheme Procedure} copy-recursively @var{source} @var{destination} @"
+msgstr "{Scheme Procedure} lookup-inferior-packages @var{inferior} @var{name} @"
+
+#. type: deffn
+#: doc/guix.texi:8001
+msgid "[#:log (current-output-port)] [#:follow-symlinks? #f] [#:keep-mtime? #f] Copy @var{source} directory to @var{destination}.  Follow symlinks if @var{follow-symlinks?} is true; otherwise, just preserve them.  When @var{keep-mtime?} is true, keep the modification time of the files in @var{source} on those of @var{destination}.  Write verbose output to the @var{log} port."
+msgstr "[#:log (current-output-port)] [#:follow-symlinks? #f] [#:keep-mtime? #f] Скопировать каталог @var{source} в @var{destination}.  Следовать символическим ссылкам, если @var{follow-symlinks?} истинна; в противном случае просто сохранить их.  Когда @var{keep-mtime?} истинна, оставить время изменения файлов в @var{source} таким же, как у @var{destination}.  Записывать подробный вывод в порт @var{log}."
+
+#. type: deffn
+#: doc/guix.texi:8003
+#, fuzzy, no-wrap
+#| msgid "{Scheme Procedure} open-inferior @var{directory} @"
+msgid "{Scheme Procedure} delete-file-recursively @var{dir} @"
+msgstr "{Процедура Scheme} open-inferior @var{directory} @"
+
+#. type: deffn
+#: doc/guix.texi:8008
+msgid "[#:follow-mounts? #f] Delete @var{dir} recursively, like @command{rm -rf}, without following symlinks.  Don't follow mount points either, unless @var{follow-mounts?} is true.  Report but ignore errors."
+msgstr "[#:follow-mounts? #f] @var{dir} рекурсивно, как @command{rm -rf}, без использования символических ссылок.  Также не следовать точкам монтирования, если @var{follow-mounts?} не истинна.  Сообщать об ошибках, но игнорировать их."
+
+#. type: deffn
+#: doc/guix.texi:8010
+#, fuzzy, no-wrap
+#| msgid "{Scheme Syntax} let-system @var{system} @var{body}@dots{}"
+msgid "{Scheme Syntax} substitute* @var{file} @"
+msgstr "{Scheme Syntax} let-system @var{system} @var{body}@dots{}"
+
+#. type: deffn
+#: doc/guix.texi:8015
+msgid "((@var{regexp} @var{match-var}@dots{}) @var{body}@dots{}) @dots{} Substitute @var{regexp} in @var{file} by the string returned by @var{body}.  @var{body} is evaluated with each @var{match-var} bound to the corresponding positional regexp sub-expression.  For example:"
+msgstr "((@var{regexp} @var{match-var}@dots{}) @var{body}@dots{}) @dots{} Заменить @var{regexp} в @var{file} строкой, возвращаемой @var{body}.  @var{body} вычисляется с каждой привязкой @var{match-var} к соответствующему подвыражению позиционного регулярного выражения.  Например:"
+
+#. type: lisp
+#: doc/guix.texi:8022
+#, no-wrap
+msgid ""
+"(substitute* file\n"
+"  ((\"hello\")\n"
+"   \"good morning\\n\")\n"
+"  ((\"foo([a-z]+)bar(.*)$\" all letters end)\n"
+"   (string-append \"baz\" letter end)))\n"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:8028
+msgid "Here, anytime a line of @var{file} contains @code{hello}, it is replaced by @code{good morning}.  Anytime a line of @var{file} matches the second regexp, @code{all} is bound to the complete match, @code{letters} is bound to the first sub-expression, and @code{end} is bound to the last one."
+msgstr "Здесь, когда строка @var{file} содержит @code{hello}, она заменяется на @code{good morning}.  Каждый раз, когда строка @var{file} соответствует второму регулярному выражению, @code{all} привязывается к полному совпадению, @code{letters} привязано к первому подвыражению, а @code{end} привязано к последнему."
+
+#. type: deffn
+#: doc/guix.texi:8031
+msgid "When one of the @var{match-var} is @code{_}, no variable is bound to the corresponding match substring."
+msgstr "Когда одно из @var{match-var} - @code{_}, никакая переменная не связана с соответствующей подстрокой соответствия."
+
+#. type: deffn
+#: doc/guix.texi:8034
+msgid "Alternatively, @var{file} may be a list of file names, in which case they are all subject to the substitutions."
+msgstr "В качестве альтернативы @var{file} может быть списком имен файлов, и в этом случае все они могут быть заменены."
+
+#. type: deffn
+#: doc/guix.texi:8037
+msgid "Be careful about using @code{$} to match the end of a line; by itself it won't match the terminating newline of a line."
+msgstr "В качестве альтернативы @var{file} может быть списком имен файлов, и в этом случае все они могут быть заменены."
+
+#. type: subsection
+#: doc/guix.texi:8039
+#, fuzzy, no-wrap
+#| msgid "File Systems"
+msgid "File Search"
+msgstr "Файловые системы"
+
+#. type: cindex
+#: doc/guix.texi:8041
+#, no-wrap
+msgid "file, searching"
+msgstr "файл, поиск"
+
+#. type: Plain text
+#: doc/guix.texi:8043
+msgid "This section documents procedures to search and filter files."
+msgstr "В этом разделе описаны процедуры поиска и фильтрации файлов."
+
+#. type: deffn
+#: doc/guix.texi:8044
+#, fuzzy, no-wrap
+#| msgid "{Scheme Procedure} inferior-package? @var{obj}"
+msgid "{Scheme Procedure} file-name-predicate @var{regexp}"
+msgstr "{Процедура Scheme} inferior-package? @var{obj}"
+
+#. type: deffn
+#: doc/guix.texi:8047
+msgid "Return a predicate that returns true when passed a file name whose base name matches @var{regexp}."
+msgstr "Вернуть предикат, который возвращает истину при передаче имени файла, базовое имя которого совпадает с @var{regexp}."
+
+#. type: deffn
+#: doc/guix.texi:8049
+#, fuzzy, no-wrap
+#| msgid "{Scheme Procedure} lookup-inferior-packages @var{inferior} @var{name} @"
+msgid "{Scheme Procedure} find-files @var{dir} [@var{pred}] @"
+msgstr "{Процедура Scheme} lookup-inferior-packages @var{inferior} @var{name} @"
+
+#. type: deffn
+#: doc/guix.texi:8060
+msgid "[#:stat lstat] [#:directories? #f] [#:fail-on-error? #f] Return the lexicographically sorted list of files under @var{dir} for which @var{pred} returns true.  @var{pred} is passed two arguments: the absolute file name, and its stat buffer; the default predicate always returns true.  @var{pred} can also be a regular expression, in which case it is equivalent to @code{(file-name-predicate @var{pred})}.  @var{stat} is used to obtain file information; using @code{lstat} means that symlinks are not followed.  If @var{directories?} is true, then directories will also be included.  If @var{fail-on-error?} is true, raise an exception upon error."
+msgstr "[#:stat lstat] [#:directories? #f] [#:fail-on-error? #f] Возвращает лексикографически отсортированный список файлов в @var{dir}, для которых @var{pred} возвращает истину.  @var{pred} передается два аргумента: абсолютное имя файла и его буфер статистики; предикат по умолчанию всегда возвращает истину.  @var{pred} также может быть регулярным выражением, в этом случае оно эквивалентно @code{(file-name-predicate @var{pred})}.  @var{stat} используется для получения информации о файле; использование @code{lstat} означает, что символические ссылки не соблюдаются.  Если @var{directories?} истина, то каталоги также будут включены.  Если @var{fail-on-error?} истина, генерировать исключение при ошибке."
+
+#. type: Plain text
+#: doc/guix.texi:8064
+msgid "Here are a few examples where we assume that the current directory is the root of the Guix source tree:"
+msgstr "Вот несколько примеров, в которых мы предполагаем, что текущий каталог является корнем дерева исходников Guix:"
+
+#. type: lisp
+#: doc/guix.texi:8069
+#, no-wrap
+msgid ""
+";; List all the regular files in the current directory.\n"
+"(find-files \".\")\n"
+"@result{} (\"./.dir-locals.el\" \"./.gitignore\" @dots{})\n"
+"\n"
+msgstr ""
+
+#. type: lisp
+#: doc/guix.texi:8073
+#, no-wrap
+msgid ""
+";; List all the .scm files under gnu/services.\n"
+"(find-files \"gnu/services\" \"\\\\.scm$\")\n"
+"@result{} (\"gnu/services/admin.scm\" \"gnu/services/audio.scm\" @dots{})\n"
+"\n"
+msgstr ""
+
+#. type: lisp
+#: doc/guix.texi:8077
+#, no-wrap
+msgid ""
+";; List ar files in the current directory.\n"
+"(find-files \".\" (lambda (file stat) (ar-file? file)))\n"
+"@result{} (\"./libformat.a\" \"./libstore.a\" @dots{})\n"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:8079
+#, fuzzy, no-wrap
+#| msgid "{Scheme Procedure} inferior-packages @var{inferior}"
+msgid "{Scheme Procedure} which @var{program}"
+msgstr "{Процедура Scheme} inferior-packages @var{inferior}"
+
+#. type: deffn
+#: doc/guix.texi:8082
+msgid "Return the complete file name for @var{program} as found in @code{$PATH}, or @code{#f} if @var{program} could not be found."
+msgstr "Вернуть полное имя файла для @var{program}, как в @code{$PATH}, или @code{#f}, если @var{program} не найдена."
+
+#. type: Plain text
+#: doc/guix.texi:8093
+msgid "The @code{(guix build utils)} also contains tools to manipulate build phases as used by build systems (@pxref{Build Systems}).  Build phases are represented as association lists or ``alists'' (@pxref{Association Lists,,, guile, GNU Guile Reference Manual}) where each key is a symbol naming the phase and the associated value is a procedure (@pxref{Build Phases})."
+msgstr "@code{(guix build utils)} также содержит инструменты для управления фазами сборки, которые используются системами сборки (@pxref{Build Systems}).  Фазы сборки представлены в виде ассоциативных списков или ``alists'' (@pxref{Association Lists,,, guile, GNU Guile Reference Manual}), где каждый ключ представляет собой символ, обозначающий фазу, а связанное значение представляет собой процедуру (@pxref{Build Phases})."
+
+#. type: Plain text
+#: doc/guix.texi:8097
+msgid "Guile core and the @code{(srfi srfi-1)} module both provide tools to manipulate alists.  The @code{(guix build utils)} module complements those with tools written with build phases in mind."
+msgstr "Ядро Guile и модуль @code{(srfi srfi-1)} предоставляют инструменты для управления списками.  Модуль @code{(guix build utils)} дополняет их инструментами, написанными с учетом фаз сборки."
+
+#. type: cindex
+#: doc/guix.texi:8098
+#, fuzzy, no-wrap
+msgid "build phases, modifying"
+msgstr "build phases, modifying"
+
+#. type: deffn
+#: doc/guix.texi:8099
+#, fuzzy, no-wrap
+#| msgid "{Scheme Syntax} let-system @var{system} @var{body}@dots{}"
+msgid "{Scheme Syntax} modify-phases @var{phases} @var{clause}@dots{}"
+msgstr "{Scheme Syntax} let-system @var{system} @var{body}@dots{}"
+
+#. type: deffn
+#: doc/guix.texi:8102
+msgid "Modify @var{phases} sequentially as per each @var{clause}, which may have one of the following forms:"
+msgstr "Изменить @var{phases} последовательно в соответствии с каждым @var{clause}, которое может иметь одну из следующих форм:"
+
+#. type: lisp
+#: doc/guix.texi:8108
+#, no-wrap
+msgid ""
+"(delete @var{old-phase-name})\n"
+"(replace @var{old-phase-name} @var{new-phase})\n"
+"(add-before @var{old-phase-name} @var{new-phase-name} @var{new-phase})\n"
+"(add-after @var{old-phase-name} @var{new-phase-name} @var{new-phase})\n"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:8112
+msgid "Where every @var{phase-name} above is an expression evaluating to a symbol, and @var{new-phase} an expression evaluating to a procedure."
+msgstr "Где каждая @var{phase-name} выше - это выражение, преобразующееся в символ, а @var{new-phase} - выражение, преобразующееся в процедуру."
+
+#. type: Plain text
+#: doc/guix.texi:8123
+msgid "The example below is taken from the definition of the @code{grep} package.  It adds a phase to run after the @code{install} phase, called @code{fix-egrep-and-fgrep}.  That phase is a procedure (@code{lambda*} is for anonymous procedures) that takes a @code{#:outputs} keyword argument and ignores extra keyword arguments (@pxref{Optional Arguments,,, guile, GNU Guile Reference Manual}, for more on @code{lambda*} and optional and keyword arguments.)  The phase uses @code{substitute*} to modify the installed @file{egrep} and @file{fgrep} scripts so that they refer to @code{grep} by its absolute file name:"
+msgstr "Пример ниже взят из определения пакета @code{grep}.  Он добавляет фазу для запуска после фазы @code{install}, которая называется @code{fix-egrep-and-fgrep}.  Эта фаза представляет собой процедуру (@code{lambda*} обозначает анонимную процедуру), которая принимает аргумент ключевого слова @code{#:output} и игнорирует дополнительные аргументы ключевого слова (@pxref{Optional Arguments,,, guile, GNU Guile Reference Manual}, for more on @code{lambda*} and optional and keyword arguments.)  В фазе используется @code{substitute*} для изменения установленных сценариев @file{egrep} и @file{fgrep}, чтобы они ссылались на @code{grep} по абсолютному имени файла:"
+
+#. type: lisp
+#: doc/guix.texi:8137
+#, no-wrap
+msgid ""
+"(modify-phases %standard-phases\n"
+"  (add-after 'install 'fix-egrep-and-fgrep\n"
+"    ;; Patch 'egrep' and 'fgrep' to execute 'grep' via its\n"
+"    ;; absolute file name instead of searching for it in $PATH.\n"
+"    (lambda* (#:key outputs #:allow-other-keys)\n"
+"      (let* ((out (assoc-ref outputs \"out\"))\n"
+"             (bin (string-append out \"/bin\")))\n"
+"        (substitute* (list (string-append bin \"/egrep\")\n"
+"                           (string-append bin \"/fgrep\"))\n"
+"          ((\"^exec grep\")\n"
+"           (string-append \"exec \" bin \"/grep\")))\n"
+"        #t))))\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:8144
+msgid "In the example below, phases are modified in two ways: the standard @code{configure} phase is deleted, presumably because the package does not have a @file{configure} script or anything similar, and the default @code{install} phase is replaced by one that manually copies the executable files to be installed:"
+msgstr "В приведенном ниже примере фазы изменяются двумя способами: стандартная фаза @code{configure} удаляется, предположительно потому, что в пакете нет сценария @file{configure} или чего-то подобного, и фаза @code{install} по умолчанию заменяется файлом, который вручную копирует устанавливаемые исполняемые файлы:"
+
+#. type: lisp
+#: doc/guix.texi:8157
+#, no-wrap
+msgid ""
+"(modify-phases %standard-phases\n"
+"  (delete 'configure)      ;no 'configure' script\n"
+"  (replace 'install\n"
+"    (lambda* (#:key outputs #:allow-other-keys)\n"
+"      ;; The package's Makefile doesn't provide an \"install\"\n"
+"      ;; rule so do it by ourselves.\n"
+"      (let ((bin (string-append (assoc-ref outputs \"out\")\n"
+"                                \"/bin\")))\n"
+"        (install-file \"footswitch\" bin)\n"
+"        (install-file \"scythe\" bin)\n"
+"        #t))))\n"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:6821
+#: doc/guix.texi:8165
 #, no-wrap
 msgid "store items"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:6822
+#: doc/guix.texi:8166
 #, no-wrap
 msgid "store paths"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:6833
+#: doc/guix.texi:8177
 msgid "Conceptually, the @dfn{store} is the place where derivations that have been built successfully are stored---by default, @file{/gnu/store}.  Sub-directories in the store are referred to as @dfn{store items} or sometimes @dfn{store paths}.  The store has an associated database that contains information such as the store paths referred to by each store path, and the list of @emph{valid} store items---results of successful builds.  This database resides in @file{@var{localstatedir}/guix/db}, where @var{localstatedir} is the state directory specified @i{via} @option{--localstatedir} at configure time, usually @file{/var}."
-msgstr ""
+msgstr "Концептуально @dfn{store} - это место, где хранятся успешно построенные derivation'ы - по умолчанию @file{/gnu/store}.  Подкаталоги в store называются @dfn{store items} или иногда @dfn{store paths}.  У store есть связанная база данных, которая содержит такую информацию, как store paths, на которые ссылается каждый store path, и список @emph{валидных} store item'ов---результаты успешных сборок.  Эта база данных находится в @file{@var{localstatedir}/guix/db}, где @var{localstatedir} - это каталог состояний, указанный @i{через} @option{--localstatedir} во время configure, обычно @file{/var}."
 
 #. type: Plain text
-#: doc/guix.texi:6838
+#: doc/guix.texi:8182
 msgid "The store is @emph{always} accessed by the daemon on behalf of its clients (@pxref{Invoking guix-daemon}).  To manipulate the store, clients connect to the daemon over a Unix-domain socket, send requests to it, and read the result---these are remote procedure calls, or RPCs."
-msgstr ""
+msgstr "Демон @emph{всегда} обращается к store от имени своих клиентов (@pxref{Invoking guix-daemon}).  Чтобы управлять store, клиенты подключаются к демону через сокет домена Unix, отправляют ему запросы и читают результат - это вызовы удаленных процедур или RPC."
 
 #. type: quotation
-#: doc/guix.texi:6843
+#: doc/guix.texi:8187
 msgid "Users must @emph{never} modify files under @file{/gnu/store} directly.  This would lead to inconsistencies and break the immutability assumptions of Guix's functional model (@pxref{Introduction})."
-msgstr ""
+msgstr "Пользователи должны @emph{никогда} напрямую изменять файлы в @file{/gnu/store}.  Это приведет к несоответствиям и нарушит предположения о неизменности функциональной модели Guix (@pxref{Introduction})."
 
 #. type: quotation
-#: doc/guix.texi:6847
+#: doc/guix.texi:8191
 msgid "@xref{Invoking guix gc, @command{guix gc --verify}}, for information on how to check the integrity of the store and attempt recovery from accidental modifications."
-msgstr ""
+msgstr "@xref{Invoking guix gc, @command{guix gc --verify}}, для получения информации о том, как проверить целостность store и попытаться восстановить его после случайных изменений."
 
 #. type: Plain text
-#: doc/guix.texi:6854
-msgid "The @code{(guix store)} module provides procedures to connect to the daemon, and to perform RPCs.  These are described below.  By default, @code{open-connection}, and thus all the @command{guix} commands, connect to the local daemon or to the URI specified by the @code{GUIX_DAEMON_SOCKET} environment variable."
-msgstr ""
+#: doc/guix.texi:8198
+msgid "The @code{(guix store)} module provides procedures to connect to the daemon, and to perform RPCs.  These are described below.  By default, @code{open-connection}, and thus all the @command{guix} commands, connect to the local daemon or to the URI specified by the @env{GUIX_DAEMON_SOCKET} environment variable."
+msgstr "Модуль @code{(guix store)} предоставляет процедуры для подключения к демону и выполнения RPC.  Они описаны ниже.  По умолчанию @code{open-connection} и, следовательно, все команды @command{guix} подключаются к локальному демону или к URI, указанному в переменной среды @env{GUIX_DAEMON_SOCKET}."
 
 #. type: defvr
-#: doc/guix.texi:6855
+#: doc/guix.texi:8199
 #, no-wrap
 msgid "{Environment Variable} GUIX_DAEMON_SOCKET"
-msgstr ""
+msgstr "{Environment Variable} GUIX_DAEMON_SOCKET"
 
 #. type: defvr
-#: doc/guix.texi:6860
+#: doc/guix.texi:8204
 msgid "When set, the value of this variable should be a file name or a URI designating the daemon endpoint.  When it is a file name, it denotes a Unix-domain socket to connect to.  In addition to file names, the supported URI schemes are:"
-msgstr ""
+msgstr "Если установлено, значение этой переменной должно быть именем файла или URI, обозначающим конечную точку демона.  Когда это имя файла, оно обозначает сокет домена Unix, к которому нужно подключиться.  Помимо имен файлов, поддерживаются следующие схемы URI:"
 
 #. type: code{#1}
-#: doc/guix.texi:6862 doc/guix.texi:20085
+#: doc/guix.texi:8206 doc/guix.texi:22306
 #, no-wrap
 msgid "file"
 msgstr ""
 
 #. type: itemx
-#: doc/guix.texi:6863
+#: doc/guix.texi:8207
 #, no-wrap
 msgid "unix"
-msgstr ""
+msgstr "unix"
 
 #. type: table
-#: doc/guix.texi:6867
+#: doc/guix.texi:8211
 msgid "These are for Unix-domain sockets.  @code{file:///var/guix/daemon-socket/socket} is equivalent to @file{/var/guix/daemon-socket/socket}."
-msgstr ""
+msgstr "Это для сокетов домена Unix.  @code{file:///var/guix/daemon-socket/socket} эквивалентен @file{/var/guix/daemon-socket/socket}."
 
 #. type: item
-#: doc/guix.texi:6868
+#: doc/guix.texi:8212
 #, no-wrap
 msgid "guix"
-msgstr ""
+msgstr "guix"
 
 #. type: table
-#: doc/guix.texi:6876
+#: doc/guix.texi:8220
 msgid "These URIs denote connections over TCP/IP, without encryption nor authentication of the remote host.  The URI must specify the host name and optionally a port number (by default port 44146 is used):"
-msgstr ""
+msgstr "Эти URI обозначают соединения через TCP/IP без шифрования и аутентификации удаленного хоста.  В URI необходимо указать имя хоста и, возможно, номер порта (по умолчанию используется порт 44146):"
 
 #. type: example
-#: doc/guix.texi:6879
+#: doc/guix.texi:8223
 #, no-wrap
 msgid "guix://master.guix.example.org:1234\n"
-msgstr ""
+msgstr "guix://master.guix.example.org:1234\n"
 
 #. type: table
-#: doc/guix.texi:6884
+#: doc/guix.texi:8228
 msgid "This setup is suitable on local networks, such as clusters, where only trusted nodes may connect to the build daemon at @code{master.guix.example.org}."
-msgstr ""
+msgstr "Эта настройка подходит для локальных сетей, таких как кластеры, где только доверенные узлы могут подключаться к демону сборки по адресу @code{master.guix.example.org}."
 
 #. type: table
-#: doc/guix.texi:6888
-msgid "The @code{--listen} option of @command{guix-daemon} can be used to instruct it to listen for TCP connections (@pxref{Invoking guix-daemon, @code{--listen}})."
-msgstr ""
+#: doc/guix.texi:8232
+msgid "The @option{--listen} option of @command{guix-daemon} can be used to instruct it to listen for TCP connections (@pxref{Invoking guix-daemon, @option{--listen}})."
+msgstr "Параметр @option{--listen} команды @command{guix-daemon} можно использовать для указания ему прослушивать TCP-соединения (@pxref{Invoking guix-daemon, @option{--listen}})."
 
 #. type: item
-#: doc/guix.texi:6889
+#: doc/guix.texi:8233
 #, no-wrap
 msgid "ssh"
-msgstr ""
+msgstr "ssh"
 
 #. type: cindex
-#: doc/guix.texi:6890
+#: doc/guix.texi:8234
 #, no-wrap
 msgid "SSH access to build daemons"
-msgstr ""
+msgstr "доступ к демонам сборки по ssh"
 
 #. type: table
-#: doc/guix.texi:6896
-msgid "These URIs allow you to connect to a remote daemon over SSH.  This feature requires Guile-SSH (@pxref{Requirements}) and a working @code{guile} binary in @code{PATH} on the destination machine.  It supports public key and GSSAPI authentication.  A typical URL might look like this:"
-msgstr ""
+#: doc/guix.texi:8240
+msgid "These URIs allow you to connect to a remote daemon over SSH.  This feature requires Guile-SSH (@pxref{Requirements}) and a working @command{guile} binary in @env{PATH} on the destination machine.  It supports public key and GSSAPI authentication.  A typical URL might look like this:"
+msgstr "Эти URI позволяют подключаться к удаленному демону через SSH.  Для этой функции требуется Guile-SSH (@pxref{Requirements}) и рабочий @command{guile} binary файл в @env{PATH} на конечном компьютере.  Он поддерживает открытый ключ и аутентификацию GSSAPI.  Типичный URL-адрес может выглядеть так:"
 
 #. type: example
-#: doc/guix.texi:6899
+#: doc/guix.texi:8243
 #, no-wrap
 msgid "ssh://charlie@@guix.example.org:22\n"
-msgstr ""
+msgstr "ssh://charlie@@guix.example.org:22\n"
 
 #. type: table
-#: doc/guix.texi:6903
+#: doc/guix.texi:8247
 msgid "As for @command{guix copy}, the usual OpenSSH client configuration files are honored (@pxref{Invoking guix copy})."
-msgstr ""
+msgstr "Что касается @command{guix copy}, учитываются обычные файлы конфигурации клиента OpenSSH (@pxref{Invoking guix copy})."
 
 #. type: defvr
-#: doc/guix.texi:6906
+#: doc/guix.texi:8250
 msgid "Additional URI schemes may be supported in the future."
-msgstr ""
+msgstr "В будущем могут поддерживаться дополнительные схемы URI."
 
 #. type: quotation
-#: doc/guix.texi:6913
+#: doc/guix.texi:8257
 msgid "The ability to connect to remote build daemons is considered experimental as of @value{VERSION}.  Please get in touch with us to share any problems or suggestions you may have (@pxref{Contributing})."
-msgstr ""
+msgstr "Возможность подключения к демонам удаленной сборки считается экспериментальной с @value{VERSION}.  Пожалуйста, свяжитесь с нами, чтобы поделиться любыми проблемами или предложениями, которые могут у вас возникнуть (@pxref{Contributing})."
 
 #. type: deffn
-#: doc/guix.texi:6916
+#: doc/guix.texi:8260
 #, no-wrap
 msgid "{Scheme Procedure} open-connection [@var{uri}] [#:reserve-space? #t]"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:6921
+#: doc/guix.texi:8265
 msgid "Connect to the daemon over the Unix-domain socket at @var{uri} (a string).  When @var{reserve-space?} is true, instruct it to reserve a little bit of extra space on the file system so that the garbage collector can still operate should the disk become full.  Return a server object."
-msgstr ""
+msgstr "Подключится к демону через сокет домена Unix по адресу @var{uri} (строка).  Когда @var{reserve-space?} истинна, указать ему, чтобы он зарезервировал немного дополнительного места в файловой системе, чтобы сборщик мусора мог работать, если диск заполнится.  Вернуть объект сервера."
 
 #. type: deffn
-#: doc/guix.texi:6924
+#: doc/guix.texi:8268
 msgid "@var{file} defaults to @code{%default-socket-path}, which is the normal location given the options that were passed to @command{configure}."
-msgstr ""
+msgstr "@var{file} по умолчанию - @code{%default-socket-path}, что является обычным расположением с учетом параметров, переданных в @command{configure}."
 
 #. type: deffn
-#: doc/guix.texi:6926
+#: doc/guix.texi:8270
 #, no-wrap
 msgid "{Scheme Procedure} close-connection @var{server}"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:6928
+#: doc/guix.texi:8272
 msgid "Close the connection to @var{server}."
-msgstr ""
+msgstr "Закрыть соединение с @var{server}."
 
 #. type: defvr
-#: doc/guix.texi:6930
+#: doc/guix.texi:8274
 #, no-wrap
 msgid "{Scheme Variable} current-build-output-port"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:6933
+#: doc/guix.texi:8277
 msgid "This variable is bound to a SRFI-39 parameter, which refers to the port where build and error logs sent by the daemon should be written."
-msgstr ""
+msgstr "Эта переменная привязана к параметру SRFI-39, который относится к порту, на который должны быть записаны журналы сборки и ошибок, отправляемые демоном."
 
 #. type: Plain text
-#: doc/guix.texi:6937
+#: doc/guix.texi:8281
 msgid "Procedures that make RPCs all take a server object as their first argument."
-msgstr ""
+msgstr "Процедуры, которые заставляют все RPC принимать объект сервера в качестве своего первого аргумента."
 
 #. type: deffn
-#: doc/guix.texi:6938
+#: doc/guix.texi:8282
 #, no-wrap
 msgid "{Scheme Procedure} valid-path? @var{server} @var{path}"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:6939
+#: doc/guix.texi:8283
 #, no-wrap
 msgid "invalid store items"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:6944
-msgid "Return @code{#t} when @var{path} designates a valid store item and @code{#f} otherwise (an invalid item may exist on disk but still be invalid, for instance because it is the result of an aborted or failed build.)"
-msgstr ""
+#: doc/guix.texi:8288
+msgid "Return @code{#t} when @var{path} designates a valid store item and @code{#f} otherwise (an invalid item may exist on disk but still be invalid, for instance because it is the result of an aborted or failed build)."
+msgstr "Возвращать @code{#t}, когда @var{path} обозначает допустимый элемент хранилища, и @code{#f} в противном случае (недопустимый элемент может существовать на диске, но по-прежнему быть недопустимым, например, потому что он является результатом прерывания или неудачной сборки)."
 
 #. type: deffn
-#: doc/guix.texi:6947
+#: doc/guix.texi:8291
 msgid "A @code{&store-protocol-error} condition is raised if @var{path} is not prefixed by the store directory (@file{/gnu/store})."
-msgstr ""
+msgstr "Условие @code{&store-protocol-error} возникает, если @var{path} не имеет префикса в каталоге store (@file{/gnu/store})."
 
 #. type: deffn
-#: doc/guix.texi:6949
+#: doc/guix.texi:8293
 #, no-wrap
 msgid "{Scheme Procedure} add-text-to-store @var{server} @var{name} @var{text} [@var{references}]"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:6953
+#: doc/guix.texi:8297
 msgid "Add @var{text} under file @var{name} in the store, and return its store path.  @var{references} is the list of store paths referred to by the resulting store path."
-msgstr ""
+msgstr "Добавить @var{text} в файл @var{name} в store и вернуть его store path.  @var{references} - это список store path'ы, на которые ссылается конечный store path."
 
 #. type: deffn
-#: doc/guix.texi:6955
+#: doc/guix.texi:8299
 #, fuzzy, no-wrap
-#| msgid "{Scheme Procedure} lookup-inferior-packages @var{inferior} @var{name} @"
 msgid "{Scheme Procedure} build-derivations @var{store} @var{derivations} @"
-msgstr "{Процедура Scheme} lookup-inferior-packages @var{inferior} @var{name} @"
+msgstr "{Scheme Procedure} lookup-inferior-packages @var{inferior} @var{name} @"
 
 #. type: deffn
-#: doc/guix.texi:6960
+#: doc/guix.texi:8304
 msgid "[@var{mode}] Build @var{derivations}, a list of @code{<derivation>} objects, @file{.drv} file names, or derivation/output pairs, using the specified @var{mode}---@code{(build-mode normal)} by default."
-msgstr ""
+msgstr "[@var{mode}] Собрать @var{derivations}, список объектов @code{<derivation>}, имен файлов @file{.drv} или пар derivation/output, используя указанный @var{mode}---@code{(build-mode normal)} по умолчанию."
 
 #. type: Plain text
-#: doc/guix.texi:6966
+#: doc/guix.texi:8310
 msgid "Note that the @code{(guix monads)} module provides a monad as well as monadic versions of the above procedures, with the goal of making it more convenient to work with code that accesses the store (@pxref{The Store Monad})."
-msgstr ""
+msgstr "Обратите внимание, что модуль @code{(guix monads)} предоставляет как монаду, так и монадические версии вышеупомянутых процедур с целью сделать более удобной работу с кодом, который обращается к store (@pxref{The Store Monad})."
 
 #. type: i{#1}
-#: doc/guix.texi:6969
+#: doc/guix.texi:8313
 msgid "This section is currently incomplete."
-msgstr ""
+msgstr "Этот раздел в настоящее время не завершен."
 
 #. type: cindex
-#: doc/guix.texi:6973
+#: doc/guix.texi:8317
 #, no-wrap
 msgid "derivations"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:6977
+#: doc/guix.texi:8321
 msgid "Low-level build actions and the environment in which they are performed are represented by @dfn{derivations}.  A derivation contains the following pieces of information:"
-msgstr ""
+msgstr "Действия низкоуровневой сборки и среда, в которой они выполняются, представлены через @dfn{derivations}.  Derivation содержит следующую информацию:"
 
 #. type: itemize
-#: doc/guix.texi:6982
+#: doc/guix.texi:8326
 msgid "The outputs of the derivation---derivations produce at least one file or directory in the store, but may produce more."
-msgstr ""
+msgstr "The outputs of the derivation---derivations создают по крайней мере один файл или каталог в store, но могут создавать и больше."
 
 #. type: cindex
-#: doc/guix.texi:6984
+#: doc/guix.texi:8328
 #, no-wrap
 msgid "build-time dependencies"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:6985
+#: doc/guix.texi:8329
 #, no-wrap
 msgid "dependencies, build-time"
 msgstr ""
 
 #. type: itemize
-#: doc/guix.texi:6989
-msgid "The inputs of the derivations---i.e., its build-time dependencies---which may be other derivations or plain files in the store (patches, build scripts, etc.)"
-msgstr ""
+#: doc/guix.texi:8333
+msgid "The inputs of the derivations---i.e., its build-time dependencies---which may be other derivations or plain files in the store (patches, build scripts, etc.)."
+msgstr "Входные данные производных---то есть его build-time зависимости - которые могут быть другими derivation'ами или простыми файлами в store (патчи, скрипты сборки и т.д.)."
 
 #. type: itemize
-#: doc/guix.texi:6992
+#: doc/guix.texi:8336
 msgid "The system type targeted by the derivation---e.g., @code{x86_64-linux}."
-msgstr ""
+msgstr "Тип системы, на который нацелена derivation - например, @code{x86_64-linux}."
 
 #. type: itemize
-#: doc/guix.texi:6996
+#: doc/guix.texi:8340
 msgid "The file name of a build script in the store, along with the arguments to be passed."
-msgstr ""
+msgstr "Имя файла скрипта сборки в store вместе с передаваемыми аргументами."
 
 #. type: itemize
-#: doc/guix.texi:6999
+#: doc/guix.texi:8343
 msgid "A list of environment variables to be defined."
-msgstr ""
+msgstr "Список переменных среды, которые необходимо определить."
 
 #. type: cindex
-#: doc/guix.texi:7002
+#: doc/guix.texi:8346
 #, no-wrap
 msgid "derivation path"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:7010
-msgid "Derivations allow clients of the daemon to communicate build actions to the store.  They exist in two forms: as an in-memory representation, both on the client- and daemon-side, and as files in the store whose name end in @code{.drv}---these files are referred to as @dfn{derivation paths}.  Derivations paths can be passed to the @code{build-derivations} procedure to perform the build actions they prescribe (@pxref{The Store})."
-msgstr ""
+#: doc/guix.texi:8354
+msgid "Derivations allow clients of the daemon to communicate build actions to the store.  They exist in two forms: as an in-memory representation, both on the client- and daemon-side, and as files in the store whose name end in @file{.drv}---these files are referred to as @dfn{derivation paths}.  Derivations paths can be passed to the @code{build-derivations} procedure to perform the build actions they prescribe (@pxref{The Store})."
+msgstr "Derivation'ы позволяют клиентам демона передавать действия сборки в store.  Они существуют в двух формах: как представление в памяти, как на стороне клиента, так и на стороне демона, и в виде файлов в хранилище, имена которых заканчиваются на @file{.drv} - эти файлы называются @dfn{derivation paths}.  Derivation paths могут быть переданы в процедуру @code{build-derivations} для выполнения действий сборки, которые они предписывают (@pxref{The Store})."
 
 #. type: cindex
-#: doc/guix.texi:7011
+#: doc/guix.texi:8355
 #, no-wrap
 msgid "fixed-output derivations"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:7018
+#: doc/guix.texi:8362
 msgid "Operations such as file downloads and version-control checkouts for which the expected content hash is known in advance are modeled as @dfn{fixed-output derivations}.  Unlike regular derivations, the outputs of a fixed-output derivation are independent of its inputs---e.g., a source code download produces the same result regardless of the download method and tools being used."
-msgstr ""
+msgstr "Такие операции, как загрузка файлов и проверка версий, для которых заранее известен ожидаемый хэш содержимого, моделируются как @dfn{fixed-output derivations}.  В отличие от обычных дериваций, выходные данные деривации с фиксированным выходом не зависят от его входных данных - например, загрузка исходного кода дает тот же результат независимо от метода загрузки и используемых инструментов."
 
 #. type: item
-#: doc/guix.texi:7019 doc/guix.texi:10139
+#: doc/guix.texi:8363 doc/guix.texi:11713
 #, no-wrap
 msgid "references"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:7020
+#: doc/guix.texi:8364
 #, no-wrap
 msgid "run-time dependencies"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:7021
+#: doc/guix.texi:8365
 #, no-wrap
 msgid "dependencies, run-time"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:7028
+#: doc/guix.texi:8372
 msgid "The outputs of derivations---i.e., the build results---have a set of @dfn{references}, as reported by the @code{references} RPC or the @command{guix gc --references} command (@pxref{Invoking guix gc}).  References are the set of run-time dependencies of the build results.  References are a subset of the inputs of the derivation; this subset is automatically computed by the build daemon by scanning all the files in the outputs."
-msgstr ""
+msgstr "Outputs of derivations---то есть результаты сборки---имеют множество @dfn{references}, в соответствии с указаниями RPC @code{references} или команды @command{guix gc --references} (@pxref{Invoking guix gc}).  References - это набор run-time зависимостей результатов сборки.  References - это подмножество входных данных derivation; это подмножество автоматически вычисляется демоном сборки путем сканирования всех файлов в выходных данных."
 
 #. type: Plain text
-#: doc/guix.texi:7033
+#: doc/guix.texi:8377
 msgid "The @code{(guix derivations)} module provides a representation of derivations as Scheme objects, along with procedures to create and otherwise manipulate derivations.  The lowest-level primitive to create a derivation is the @code{derivation} procedure:"
-msgstr ""
+msgstr "Модуль @code{(guix diverations)} предоставляет представление derivation'ов в виде Scheme объектов, а также процедуры для создания derivation'ов и других манипуляций с ними.  Самым низкоуровневым примитивом для создания derivation'а является процедура @code{derivation}:"
 
 #. type: deffn
-#: doc/guix.texi:7034
+#: doc/guix.texi:8378
 #, no-wrap
 msgid "{Scheme Procedure} derivation @var{store} @var{name} @var{builder} @"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:7043
+#: doc/guix.texi:8387
 msgid "@var{args} [#:outputs '(\"out\")] [#:hash #f] [#:hash-algo #f] @ [#:recursive? #f] [#:inputs '()] [#:env-vars '()] @ [#:system (%current-system)] [#:references-graphs #f] @ [#:allowed-references #f] [#:disallowed-references #f] @ [#:leaked-env-vars #f] [#:local-build? #f] @ [#:substitutable? #t] [#:properties '()] Build a derivation with the given arguments, and return the resulting @code{<derivation>} object."
-msgstr ""
+msgstr "@var{args} [#:outputs '(\\\"out\\\")] [#:hash #f] [#:hash-algo #f] @ [#:recursive? #f] [#:inputs '()] [#:env-vars '()] @ [#:system (%current-system)] [#:references-graphs #f] @ [#:allowed-references #f] [#:disallowed-references #f] @ [#:leaked-env-vars #f] [#:local-build? #f] @ [#:substitutable? #t] [#:properties '()] Собрать производную с заданными аргументами и вернуть полученный объект @code{<derivation>}."
 
 #. type: deffn
-#: doc/guix.texi:7050
+#: doc/guix.texi:8394
 msgid "When @var{hash} and @var{hash-algo} are given, a @dfn{fixed-output derivation} is created---i.e., one whose result is known in advance, such as a file download.  If, in addition, @var{recursive?} is true, then that fixed output may be an executable file or a directory and @var{hash} must be the hash of an archive containing this output."
-msgstr ""
+msgstr "Когда заданы @var{hash} и @var{hash-algo}, создается @dfn{fixed-output derivation} - то есть результат, который известен заранее, например, загрузка файла.  Кроме того, если @var{recursive?} истинна, то этот фиксированный вывод может быть исполняемым файлом или каталогом, а @var{hash} должен быть хешем архива, содержащего этот вывод."
 
 #. type: deffn
-#: doc/guix.texi:7055
+#: doc/guix.texi:8399
 msgid "When @var{references-graphs} is true, it must be a list of file name/store path pairs.  In that case, the reference graph of each store path is exported in the build environment in the corresponding file, in a simple text format."
-msgstr ""
+msgstr "Когда @var{links-graphs} истинна, данная переменная должна быть списком из пар имя файла и путь к store.  В этом случае граф ссылок каждого store path экспортируется в среду сборки в соответствующий файл в простом текстовом формате."
 
 #. type: deffn
-#: doc/guix.texi:7060
+#: doc/guix.texi:8404
 msgid "When @var{allowed-references} is true, it must be a list of store items or outputs that the derivation's output may refer to.  Likewise, @var{disallowed-references}, if true, must be a list of things the outputs may @emph{not} refer to."
-msgstr ""
+msgstr "Когда @var{allowed-links} истинна, данная переменная должна быть списком store item'ов или выходных данных, на которые может ссылаться выход derivation'а.  Аналогично, @var{disallowed-links}, если она истинна, данная переменная должна быть списком сущностей, на которые @emph{не} могут ссылаться выходные данные."
 
 #. type: deffn
-#: doc/guix.texi:7067
+#: doc/guix.texi:8411
 msgid "When @var{leaked-env-vars} is true, it must be a list of strings denoting environment variables that are allowed to ``leak'' from the daemon's environment to the build environment.  This is only applicable to fixed-output derivations---i.e., when @var{hash} is true.  The main use is to allow variables such as @code{http_proxy} to be passed to derivations that download files."
-msgstr ""
+msgstr "Когда @var{leaked-env-vars} истинна, данная переменная должна быть списком строк, обозначающих переменные среды, которым разрешено ``просачиваться'' из среды демона в среду сборки.  Это применимо только к fixed-output derivation'ам, т.е. когда @var{hash} истинна.  Основное использование - разрешить передачу таких переменных, как @code{http_proxy}, derivation'ам, которые загружают файлы."
 
 #. type: deffn
-#: doc/guix.texi:7072
+#: doc/guix.texi:8416
 msgid "When @var{local-build?} is true, declare that the derivation is not a good candidate for offloading and should rather be built locally (@pxref{Daemon Offload Setup}).  This is the case for small derivations where the costs of data transfers would outweigh the benefits."
-msgstr ""
+msgstr "Когда @var{local-build?} истинна, объявить, что производная не является хорошим кандидатом для offload и должна быть собрана локально (@pxref{Daemon Offload Setup}).  Это справедливо для небольших derivation'ов, когда затраты на передачу данных перевешивают выгоды."
 
 #. type: deffn
-#: doc/guix.texi:7077
+#: doc/guix.texi:8421
 msgid "When @var{substitutable?} is false, declare that substitutes of the derivation's output should not be used (@pxref{Substitutes}).  This is useful, for instance, when building packages that capture details of the host CPU instruction set."
-msgstr ""
+msgstr "Когда @var{substitutable?} ложно, объявить, что substitutes derivation'ов не должны использоваться (@pxref{Substitutes}).  Это полезно, например, при создании пакетов, которые фиксируют подробности набора команд центрального процессора."
 
 #. type: deffn
-#: doc/guix.texi:7080
+#: doc/guix.texi:8424
 msgid "@var{properties} must be an association list describing ``properties'' of the derivation.  It is kept as-is, uninterpreted, in the derivation."
-msgstr ""
+msgstr "@var{properties} должна быть списком ассоциаций, описывающих ``свойства'' derivation'а.  При выводе они сохраняются как есть, без интерпретации."
 
 #. type: Plain text
-#: doc/guix.texi:7086
+#: doc/guix.texi:8430
 msgid "Here's an example with a shell script as its builder, assuming @var{store} is an open connection to the daemon, and @var{bash} points to a Bash executable in the store:"
-msgstr ""
+msgstr "Вот пример со shell скриптом в качестве его builder'а, предполагая, что @var{store} является открытым соединением с демоном, а @var{bash} указывает на исполняемый файл Bash в store:"
 
 #. type: lisp
-#: doc/guix.texi:7091
+#: doc/guix.texi:8435
 #, no-wrap
 msgid ""
 "(use-modules (guix utils)\n"
@@ -13859,9 +16405,13 @@ msgid ""
 "             (guix derivations))\n"
 "\n"
 msgstr ""
+"(use-modules (guix utils)\n"
+"             (guix store)\n"
+"             (guix derivations))\n"
+"\n"
 
 #. type: lisp
-#: doc/guix.texi:7100
+#: doc/guix.texi:8444
 #, no-wrap
 msgid ""
 "(let ((builder   ; add the Bash script to the store\n"
@@ -13873,50 +16423,58 @@ msgid ""
 "              #:env-vars '((\"HOME\" . \"/homeless\"))))\n"
 "@result{} #<derivation /gnu/store/@dots{}-foo.drv => /gnu/store/@dots{}-foo>\n"
 msgstr ""
+"(let ((builder   ; add the Bash script to the store\n"
+"        (add-text-to-store store \"my-builder.sh\"\n"
+"                           \"echo hello world > $out\\n\" '())))\n"
+"  (derivation store \"foo\"\n"
+"              bash `(\"-e\" ,builder)\n"
+"              #:inputs `((,bash) (,builder))\n"
+"              #:env-vars '((\"HOME\" . \"/homeless\"))))\n"
+"@result{} #<derivation /gnu/store/@dots{}-foo.drv => /gnu/store/@dots{}-foo>\n"
 
 #. type: Plain text
-#: doc/guix.texi:7107
+#: doc/guix.texi:8451
 msgid "As can be guessed, this primitive is cumbersome to use directly.  A better approach is to write build scripts in Scheme, of course! The best course of action for that is to write the build code as a ``G-expression'', and to pass it to @code{gexp->derivation}.  For more information, @pxref{G-Expressions}."
-msgstr ""
+msgstr "Как можно догадаться, этот примитив неудобно использовать напрямую.  Конечно, лучший подход - писать скрипты сборки на Scheme!  Лучше всего для этого написать код сборки как ``G-выражение'' и передать его в @code{gexp->derivation}.  Для получения дополнительной информации, @pxref{G-Expressions}."
 
 #. type: Plain text
-#: doc/guix.texi:7112
+#: doc/guix.texi:8456
 msgid "Once upon a time, @code{gexp->derivation} did not exist and constructing derivations with build code written in Scheme was achieved with @code{build-expression->derivation}, documented below.  This procedure is now deprecated in favor of the much nicer @code{gexp->derivation}."
-msgstr ""
+msgstr "Когда-то давно @code{gexp->derivation} не существовала, и построение derivation'ов с помощью кода сборки, написанного на Scheme, достигалось с помощью @code{build-expression->derivation}, описанной ниже.  Эта процедура теперь устарела и заменена более приятным @code{gexp->derivation}."
 
 #. type: deffn
-#: doc/guix.texi:7113
+#: doc/guix.texi:8457
 #, no-wrap
 msgid "{Scheme Procedure} build-expression->derivation @var{store} @"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:7129
+#: doc/guix.texi:8473
 msgid "@var{name} @var{exp} @ [#:system (%current-system)] [#:inputs '()] @ [#:outputs '(\"out\")] [#:hash #f] [#:hash-algo #f] @ [#:recursive? #f] [#:env-vars '()] [#:modules '()] @ [#:references-graphs #f] [#:allowed-references #f] @ [#:disallowed-references #f] @ [#:local-build? #f] [#:substitutable? #t] [#:guile-for-build #f] Return a derivation that executes Scheme expression @var{exp} as a builder for derivation @var{name}.  @var{inputs} must be a list of @code{(name drv-path sub-drv)} tuples; when @var{sub-drv} is omitted, @code{\"out\"} is assumed.  @var{modules} is a list of names of Guile modules from the current search path to be copied in the store, compiled, and made available in the load path during the execution of @var{exp}---e.g., @code{((guix build utils) (guix build gnu-build-system))}."
-msgstr ""
+msgstr "@var{name} @var{exp} @ [#:system (%current-system)] [#:inputs '()] @ [#:outputs '(\\\"out\\\")] [#:hash #f] [#:hash-algo #f] @ [#:recursive? #f] [#:env-vars '()] [#:modules '()] @ [#:references-graphs #f] [#:allowed-references #f] @ [#:disallowed-references #f] @ [#:local-build? #f] [#:substitutable? #t] [#:guile-for-build #f] Возвращает derivation, которая исполняет Scheme выражение @var{exp} как builder для derivation'а @var{name}.  @var{inputs} должна быть списком кортежей @code{(name drv-path sub-drv)}; когда @var{sub-drv} опущена, предполагается @code{\"out\"}.  @var{modules} - это список имен модулей Guile из текущего пути поиска, которые будут скопированы в store, скомпилированы и станут доступными в пути загрузки во время выполнения @var{exp}---например, @code{((guix build utils) (guix build gnu-build-system))}."
 
 #. type: deffn
-#: doc/guix.texi:7137
+#: doc/guix.texi:8481
 msgid "@var{exp} is evaluated in an environment where @code{%outputs} is bound to a list of output/path pairs, and where @code{%build-inputs} is bound to a list of string/output-path pairs made from @var{inputs}.  Optionally, @var{env-vars} is a list of string pairs specifying the name and value of environment variables visible to the builder.  The builder terminates by passing the result of @var{exp} to @code{exit}; thus, when @var{exp} returns @code{#f}, the build is considered to have failed."
-msgstr ""
+msgstr "@var{exp} выполняется в среде, где @code{%output} привязан к списку пар output/path, а где @code{%build-inputs} привязан к списку пар строка/output-path сделаными из @var{input}.  Необязательно, @var{env-vars} - это список пар строк, определяющих имя и значение переменных среды, видимых builder'у.  Builder завершает работу, передавая результат @var{exp} в @code{exit}; таким образом, когда @var{exp} возвращает @code{#f}, сборка считается неудачной."
 
 #. type: deffn
-#: doc/guix.texi:7141
+#: doc/guix.texi:8485
 msgid "@var{exp} is built using @var{guile-for-build} (a derivation).  When @var{guile-for-build} is omitted or is @code{#f}, the value of the @code{%guile-for-build} fluid is used instead."
-msgstr ""
+msgstr "@var{exp} собирается с использованием @var{guile-for-build} (derivation). Когда @var{guile-for-build} опущена или равна @code{#f}, вместо этого используется значение fluid'а @code{%guile-for-build}."
 
 #. type: deffn
-#: doc/guix.texi:7146
+#: doc/guix.texi:8490
 msgid "See the @code{derivation} procedure for the meaning of @var{references-graphs}, @var{allowed-references}, @var{disallowed-references}, @var{local-build?}, and @var{substitutable?}."
-msgstr ""
+msgstr "См. в процедуре @code{derivation} значение @var{references-graphs}, @var{allowed-references}, @var{disallowed-references}, @var{local-build?} и @var{substitutable?}."
 
 #. type: Plain text
-#: doc/guix.texi:7151
+#: doc/guix.texi:8495
 msgid "Here's an example of a single-output derivation that creates a directory containing one file:"
-msgstr ""
+msgstr "Вот пример single-output derivation'а, которая создает каталог, содержащий один файл:"
 
 #. type: lisp
-#: doc/guix.texi:7159
+#: doc/guix.texi:8503
 #, no-wrap
 msgid ""
 "(let ((builder '(let ((out (assoc-ref %outputs \"out\")))\n"
@@ -13927,53 +16485,60 @@ msgid ""
 "  (build-expression->derivation store \"goo\" builder))\n"
 "\n"
 msgstr ""
+"(let ((builder '(let ((out (assoc-ref %outputs \"out\")))\n"
+"                  (mkdir out)    ; create /gnu/store/@dots{}-goo\n"
+"                  (call-with-output-file (string-append out \"/test\")\n"
+"                    (lambda (p)\n"
+"                      (display '(hello guix) p))))))\n"
+"  (build-expression->derivation store \"goo\" builder))\n"
+"\n"
 
 #. type: lisp
-#: doc/guix.texi:7161
+#: doc/guix.texi:8505
 #, no-wrap
 msgid "@result{} #<derivation /gnu/store/@dots{}-goo.drv => @dots{}>\n"
-msgstr ""
+msgstr "@result{} #<derivation /gnu/store/@dots{}-goo.drv => @dots{}>\n"
 
 #. type: cindex
-#: doc/guix.texi:7167
+#: doc/guix.texi:8511
 #, no-wrap
 msgid "monad"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:7173
+#: doc/guix.texi:8517
 msgid "The procedures that operate on the store described in the previous sections all take an open connection to the build daemon as their first argument.  Although the underlying model is functional, they either have side effects or depend on the current state of the store."
-msgstr ""
+msgstr "Все процедуры, которые работают с store, описанные в предыдущих разделах, принимают открытое соединение с демоном сборки в качестве первого аргумента.  Хотя основная модель является функциональной, они либо имеют побочные эффекты, либо зависят от текущего состояния store."
 
 #. type: Plain text
-#: doc/guix.texi:7179
+#: doc/guix.texi:8523
 msgid "The former is inconvenient: the connection to the build daemon has to be carried around in all those functions, making it impossible to compose functions that do not take that parameter with functions that do.  The latter can be problematic: since store operations have side effects and/or depend on external state, they have to be properly sequenced."
-msgstr ""
+msgstr "Первое неудобно: соединение с демоном сборки должно поддерживаться во всех этих функциях, что делает невозможным составление функций, которые не принимают этот параметр, с функциями, которые его принимают.  Последнее может быть проблематичным: поскольку операции store имеют побочные эффекты и/или зависят от внешнего состояния, они должны быть правильно упорядочены."
 
 #. type: cindex
-#: doc/guix.texi:7180
+#: doc/guix.texi:8524
 #, no-wrap
 msgid "monadic values"
-msgstr ""
+msgstr "монадические значения"
 
 #. type: cindex
-#: doc/guix.texi:7181
+#: doc/guix.texi:8525
 #, no-wrap
 msgid "monadic functions"
-msgstr ""
+msgstr "монадические функции"
 
 #. type: Plain text
-#: doc/guix.texi:7191
+#: doc/guix.texi:8535
 msgid "This is where the @code{(guix monads)} module comes in.  This module provides a framework for working with @dfn{monads}, and a particularly useful monad for our uses, the @dfn{store monad}.  Monads are a construct that allows two things: associating ``context'' with values (in our case, the context is the store), and building sequences of computations (here computations include accesses to the store).  Values in a monad---values that carry this additional context---are called @dfn{monadic values}; procedures that return such values are called @dfn{monadic procedures}."
-msgstr ""
+msgstr "Здесь на помощь приходит модуль @code{(guix monads)}.  Этот модуль предоставляет основу для работы с @dfn{monads} и особенно полезную монаду для наших целей - @dfn{store monad}.  Монады - это конструкции, которая позволяют две вещи: связывать ``контекст'' со значениями (в нашем случае контекст - это store) и строить последовательности вычислений (здесь вычисления включают доступ к store).  Значения в монаде---значения, которые несут этот дополнительный контекст---называются @dfn{монадическими значениями}; процедуры, возвращающие такие значения, называются @dfn{монадическими процедурами}."
 
 #. type: Plain text
-#: doc/guix.texi:7193
+#: doc/guix.texi:8537
 msgid "Consider this ``normal'' procedure:"
-msgstr ""
+msgstr "Рассмотрим эту ``нормальную'' процедуру:"
 
 #. type: lisp
-#: doc/guix.texi:7202
+#: doc/guix.texi:8546
 #, no-wrap
 msgid ""
 "(define (sh-symlink store)\n"
@@ -13984,14 +16549,21 @@ msgid ""
 "    (build-expression->derivation store \"sh\"\n"
 "                                  `(symlink ,sh %output))))\n"
 msgstr ""
+"(define (sh-symlink store)\n"
+"  ;; Return a derivation that symlinks the 'bash' executable.\n"
+"  (let* ((drv (package-derivation store bash))\n"
+"         (out (derivation->output-path drv))\n"
+"         (sh  (string-append out \"/bin/bash\")))\n"
+"    (build-expression->derivation store \"sh\"\n"
+"                                  `(symlink ,sh %output))))\n"
 
 #. type: Plain text
-#: doc/guix.texi:7206
+#: doc/guix.texi:8550
 msgid "Using @code{(guix monads)} and @code{(guix gexp)}, it may be rewritten as a monadic function:"
-msgstr ""
+msgstr "Используя @code{(guix monads)} и @code{(guix gexp)}, ее можно переписать как монадическую функцию:"
 
 #. type: lisp
-#: doc/guix.texi:7214
+#: doc/guix.texi:8558
 #, no-wrap
 msgid ""
 "(define (sh-symlink)\n"
@@ -14001,19 +16573,25 @@ msgid ""
 "                      #~(symlink (string-append #$drv \"/bin/bash\")\n"
 "                                 #$output))))\n"
 msgstr ""
+"(define (sh-symlink)\n"
+"  ;; Same, but return a monadic value.\n"
+"  (mlet %store-monad ((drv (package->derivation bash)))\n"
+"    (gexp->derivation \"sh\"\n"
+"                      #~(symlink (string-append #$drv \"/bin/bash\")\n"
+"                                 #$output))))\n"
 
 #. type: Plain text
-#: doc/guix.texi:7221
+#: doc/guix.texi:8565
 msgid "There are several things to note in the second version: the @code{store} parameter is now implicit and is ``threaded'' in the calls to the @code{package->derivation} and @code{gexp->derivation} monadic procedures, and the monadic value returned by @code{package->derivation} is @dfn{bound} using @code{mlet} instead of plain @code{let}."
-msgstr ""
+msgstr "Во второй версии следует отметить несколько моментов: параметр @code{store} теперь является неявным и является ``threaded'' в вызовах @code{package->derivation} и @code{gexp->derivation} монадические процедуры, а монадическим значением, возвращаемым @code{package->derivation}, является @dfn{bound} с использованием @code{mlet} вместо простого @code{let}."
 
 #. type: Plain text
-#: doc/guix.texi:7225
+#: doc/guix.texi:8569
 msgid "As it turns out, the call to @code{package->derivation} can even be omitted since it will take place implicitly, as we will see later (@pxref{G-Expressions}):"
-msgstr ""
+msgstr "Оказывается, вызов @code{package->derivation} можно даже опустить, поскольку она будет выполняться неявно, как мы увидим позже (@pxref{G-Expressions}):"
 
 #. type: lisp
-#: doc/guix.texi:7231
+#: doc/guix.texi:8575
 #, no-wrap
 msgid ""
 "(define (sh-symlink)\n"
@@ -14021,40 +16599,48 @@ msgid ""
 "                    #~(symlink (string-append #$bash \"/bin/bash\")\n"
 "                               #$output)))\n"
 msgstr ""
+"(define (sh-symlink)\n"
+"  (gexp->derivation \"sh\"\n"
+"                    #~(symlink (string-append #$bash \"/bin/bash\")\n"
+"                               #$output)))\n"
 
 #. type: Plain text
-#: doc/guix.texi:7240
+#: doc/guix.texi:8584
 msgid "Calling the monadic @code{sh-symlink} has no effect.  As someone once said, ``you exit a monad like you exit a building on fire: by running''.  So, to exit the monad and get the desired effect, one must use @code{run-with-store}:"
-msgstr ""
+msgstr "Вызов монадического @code{sh-symlink} ни на что не влияет.  Как кто-то однажды сказал: ``Вы выходите из монады, как вы выходите из горящего здания: by running''.  Итак, чтобы выйти из монады и получить желаемый эффект, нужно использовать @code{run-with-store}:"
 
 #. type: lisp
-#: doc/guix.texi:7244
+#: doc/guix.texi:8588
 #, no-wrap
 msgid ""
 "(run-with-store (open-connection) (sh-symlink))\n"
 "@result{} /gnu/store/...-sh-symlink\n"
 msgstr ""
+"(run-with-store (open-connection) (sh-symlink))\n"
+"@result{} /gnu/store/...-sh-symlink\n"
 
 #. type: Plain text
-#: doc/guix.texi:7250
+#: doc/guix.texi:8594
 msgid "Note that the @code{(guix monad-repl)} module extends the Guile REPL with new ``meta-commands'' to make it easier to deal with monadic procedures: @code{run-in-store}, and @code{enter-store-monad}.  The former is used to ``run'' a single monadic value through the store:"
-msgstr ""
+msgstr "Обратите внимание, что модуль @code{(guix monad-repl)} расширяет Guile REPL новыми ``метакомандами'', чтобы упростить работу с монадическими процедурами: @code{run-in-store} и @code{Enter-store-monad}.  Первая используется для ``run'' одного монадического значения через store:"
 
 #. type: example
-#: doc/guix.texi:7254
+#: doc/guix.texi:8598
 #, no-wrap
 msgid ""
 "scheme@@(guile-user)> ,run-in-store (package->derivation hello)\n"
 "$1 = #<derivation /gnu/store/@dots{}-hello-2.9.drv => @dots{}>\n"
 msgstr ""
+"scheme@@(guile-user)> ,run-in-store (package->derivation hello)\n"
+"$1 = #<derivation /gnu/store/@dots{}-hello-2.9.drv => @dots{}>\n"
 
 #. type: Plain text
-#: doc/guix.texi:7258
+#: doc/guix.texi:8602
 msgid "The latter enters a recursive REPL, where all the return values are automatically run through the store:"
-msgstr ""
+msgstr "Последний входит в рекурсивный REPL, где все возвращаемые значения автоматически проходят через хранилище:"
 
 #. type: example
-#: doc/guix.texi:7267
+#: doc/guix.texi:8611
 #, no-wrap
 msgid ""
 "scheme@@(guile-user)> ,enter-store-monad\n"
@@ -14065,52 +16651,60 @@ msgid ""
 "store-monad@@(guile-user) [1]> ,q\n"
 "scheme@@(guile-user)>\n"
 msgstr ""
+"scheme@@(guile-user)> ,enter-store-monad\n"
+"store-monad@@(guile-user) [1]> (package->derivation hello)\n"
+"$2 = #<derivation /gnu/store/@dots{}-hello-2.9.drv => @dots{}>\n"
+"store-monad@@(guile-user) [1]> (text-file \"foo\" \"Hello!\")\n"
+"$3 = \"/gnu/store/@dots{}-foo\"\n"
+"store-monad@@(guile-user) [1]> ,q\n"
+"scheme@@(guile-user)>\n"
 
 #. type: Plain text
-#: doc/guix.texi:7272
+#: doc/guix.texi:8616
 msgid "Note that non-monadic values cannot be returned in the @code{store-monad} REPL."
-msgstr ""
+msgstr "Обратите внимание, что немонадические значения не могут быть возвращены в REPL @code{store-monad}."
 
 #. type: Plain text
-#: doc/guix.texi:7275
+#: doc/guix.texi:8619
 msgid "The main syntactic forms to deal with monads in general are provided by the @code{(guix monads)} module and are described below."
-msgstr ""
+msgstr "Основные синтаксические формы для работы с монадами в целом предоставляются модулем @code{(guix monads)} и описаны ниже."
 
 #. type: deffn
-#: doc/guix.texi:7276
+#: doc/guix.texi:8620
 #, no-wrap
 msgid "{Scheme Syntax} with-monad @var{monad} @var{body} ..."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:7279
+#: doc/guix.texi:8623
 msgid "Evaluate any @code{>>=} or @code{return} forms in @var{body} as being in @var{monad}."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:7281
+#: doc/guix.texi:8625
 #, no-wrap
 msgid "{Scheme Syntax} return @var{val}"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:7283
+#: doc/guix.texi:8627
+#, fuzzy
 msgid "Return a monadic value that encapsulates @var{val}."
-msgstr ""
+msgstr "Возвращает монадическое значение, инкапсулирующее @var{val}."
 
 #. type: deffn
-#: doc/guix.texi:7285
+#: doc/guix.texi:8629
 #, no-wrap
 msgid "{Scheme Syntax} >>= @var{mval} @var{mproc} ..."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:7292
+#: doc/guix.texi:8636
 msgid "@dfn{Bind} monadic value @var{mval}, passing its ``contents'' to monadic procedures @var{mproc}@dots{}@footnote{This operation is commonly referred to as ``bind'', but that name denotes an unrelated procedure in Guile.  Thus we use this somewhat cryptic symbol inherited from the Haskell language.}.  There can be one @var{mproc} or several of them, as in this example:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:7300
+#: doc/guix.texi:8644
 #, no-wrap
 msgid ""
 "(run-with-state\n"
@@ -14121,109 +16715,118 @@ msgid ""
 "  'some-state)\n"
 "\n"
 msgstr ""
+"(run-with-state\n"
+"    (with-monad %state-monad\n"
+"      (>>= (return 1)\n"
+"           (lambda (x) (return (+ 1 x)))\n"
+"           (lambda (x) (return (* 2 x)))))\n"
+"  'some-state)\n"
+"\n"
 
 #. type: lisp
-#: doc/guix.texi:7303
+#: doc/guix.texi:8647
 #, no-wrap
 msgid ""
 "@result{} 4\n"
 "@result{} some-state\n"
 msgstr ""
+"@result{} 4\n"
+"@result{} some-state\n"
 
 #. type: deffn
-#: doc/guix.texi:7306
+#: doc/guix.texi:8650
 #, no-wrap
 msgid "{Scheme Syntax} mlet @var{monad} ((@var{var} @var{mval}) ...) @"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:7308
+#: doc/guix.texi:8652
 msgid "@var{body} ..."
-msgstr ""
+msgstr "@var{body} ..."
 
 #. type: deffnx
-#: doc/guix.texi:7308
+#: doc/guix.texi:8652
 #, no-wrap
 msgid "{Scheme Syntax} mlet* @var{monad} ((@var{var} @var{mval}) ...) @"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:7320
+#: doc/guix.texi:8664
 msgid "@var{body} ...  Bind the variables @var{var} to the monadic values @var{mval} in @var{body}, which is a sequence of expressions.  As with the bind operator, this can be thought of as ``unpacking'' the raw, non-monadic value ``contained'' in @var{mval} and making @var{var} refer to that raw, non-monadic value within the scope of the @var{body}.  The form (@var{var} -> @var{val}) binds @var{var} to the ``normal'' value @var{val}, as per @code{let}.  The binding operations occur in sequence from left to right.  The last expression of @var{body} must be a monadic expression, and its result will become the result of the @code{mlet} or @code{mlet*} when run in the @var{monad}."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:7323
+#: doc/guix.texi:8667
 msgid "@code{mlet*} is to @code{mlet} what @code{let*} is to @code{let} (@pxref{Local Bindings,,, guile, GNU Guile Reference Manual})."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:7325
+#: doc/guix.texi:8669
 #, no-wrap
 msgid "{Scheme System} mbegin @var{monad} @var{mexp} ..."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:7329
+#: doc/guix.texi:8673
 msgid "Bind @var{mexp} and the following monadic expressions in sequence, returning the result of the last expression.  Every expression in the sequence must be a monadic expression."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:7333
+#: doc/guix.texi:8677
 msgid "This is akin to @code{mlet}, except that the return values of the monadic expressions are ignored.  In that sense, it is analogous to @code{begin}, but applied to monadic expressions."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:7335
+#: doc/guix.texi:8679
 #, no-wrap
 msgid "{Scheme System} mwhen @var{condition} @var{mexp0} @var{mexp*} ..."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:7340
+#: doc/guix.texi:8684
 msgid "When @var{condition} is true, evaluate the sequence of monadic expressions @var{mexp0}..@var{mexp*} as in an @code{mbegin}.  When @var{condition} is false, return @code{*unspecified*} in the current monad.  Every expression in the sequence must be a monadic expression."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:7342
+#: doc/guix.texi:8686
 #, no-wrap
 msgid "{Scheme System} munless @var{condition} @var{mexp0} @var{mexp*} ..."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:7347
+#: doc/guix.texi:8691
 msgid "When @var{condition} is false, evaluate the sequence of monadic expressions @var{mexp0}..@var{mexp*} as in an @code{mbegin}.  When @var{condition} is true, return @code{*unspecified*} in the current monad.  Every expression in the sequence must be a monadic expression."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:7349
+#: doc/guix.texi:8693
 #, no-wrap
 msgid "state monad"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:7353
+#: doc/guix.texi:8697
 msgid "The @code{(guix monads)} module provides the @dfn{state monad}, which allows an additional value---the state---to be @emph{threaded} through monadic procedure calls."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:7354
+#: doc/guix.texi:8698
 #, no-wrap
 msgid "{Scheme Variable} %state-monad"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:7357
+#: doc/guix.texi:8701
 msgid "The state monad.  Procedures in the state monad can access and change the state that is threaded."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:7361
+#: doc/guix.texi:8705
 msgid "Consider the example below.  The @code{square} procedure returns a value in the state monad.  It returns the square of its argument, but also increments the current state value:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:7368
+#: doc/guix.texi:8712
 #, no-wrap
 msgid ""
 "(define (square x)\n"
@@ -14233,158 +16836,167 @@ msgid ""
 "      (return (* x x)))))\n"
 "\n"
 msgstr ""
+"(define (square x)\n"
+"  (mlet %state-monad ((count (current-state)))\n"
+"    (mbegin %state-monad\n"
+"      (set-current-state (+ 1 count))\n"
+"      (return (* x x)))))\n"
+"\n"
 
 #. type: lisp
-#: doc/guix.texi:7372
+#: doc/guix.texi:8716
 #, no-wrap
 msgid ""
 "(run-with-state (sequence %state-monad (map square (iota 3))) 0)\n"
 "@result{} (0 1 4)\n"
 "@result{} 3\n"
 msgstr ""
+"(run-with-state (sequence %state-monad (map square (iota 3))) 0)\n"
+"@result{} (0 1 4)\n"
+"@result{} 3\n"
 
 #. type: defvr
-#: doc/guix.texi:7376
-msgid "When ``run'' through @var{%state-monad}, we obtain that additional state value, which is the number of @code{square} calls."
+#: doc/guix.texi:8720
+msgid "When ``run'' through @code{%state-monad}, we obtain that additional state value, which is the number of @code{square} calls."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:7378
+#: doc/guix.texi:8722
 #, no-wrap
 msgid "{Monadic Procedure} current-state"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:7380
+#: doc/guix.texi:8724
 msgid "Return the current state as a monadic value."
-msgstr ""
+msgstr "Вернуть текущее состояние в виде монадического значения."
 
 #. type: deffn
-#: doc/guix.texi:7382
+#: doc/guix.texi:8726
 #, no-wrap
 msgid "{Monadic Procedure} set-current-state @var{value}"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:7385
+#: doc/guix.texi:8729
 msgid "Set the current state to @var{value} and return the previous state as a monadic value."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:7387
+#: doc/guix.texi:8731
 #, no-wrap
 msgid "{Monadic Procedure} state-push @var{value}"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:7390
+#: doc/guix.texi:8734
 msgid "Push @var{value} to the current state, which is assumed to be a list, and return the previous state as a monadic value."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:7392
+#: doc/guix.texi:8736
 #, no-wrap
 msgid "{Monadic Procedure} state-pop"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:7395
+#: doc/guix.texi:8739
 msgid "Pop a value from the current state and return it as a monadic value.  The state is assumed to be a list."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:7397
+#: doc/guix.texi:8741
 #, no-wrap
 msgid "{Scheme Procedure} run-with-state @var{mval} [@var{state}]"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:7400
+#: doc/guix.texi:8744
 msgid "Run monadic value @var{mval} starting with @var{state} as the initial state.  Return two values: the resulting value, and the resulting state."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:7404
+#: doc/guix.texi:8748
 msgid "The main interface to the store monad, provided by the @code{(guix store)} module, is as follows."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:7405
+#: doc/guix.texi:8749
 #, no-wrap
 msgid "{Scheme Variable} %store-monad"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:7407
-msgid "The store monad---an alias for @var{%state-monad}."
+#: doc/guix.texi:8751
+msgid "The store monad---an alias for @code{%state-monad}."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:7411
-msgid "Values in the store monad encapsulate accesses to the store.  When its effect is needed, a value of the store monad must be ``evaluated'' by passing it to the @code{run-with-store} procedure (see below.)"
+#: doc/guix.texi:8755
+msgid "Values in the store monad encapsulate accesses to the store.  When its effect is needed, a value of the store monad must be ``evaluated'' by passing it to the @code{run-with-store} procedure (see below)."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:7413
+#: doc/guix.texi:8757
 #, no-wrap
 msgid "{Scheme Procedure} run-with-store @var{store} @var{mval} [#:guile-for-build] [#:system (%current-system)]"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:7416
+#: doc/guix.texi:8760
 msgid "Run @var{mval}, a monadic value in the store monad, in @var{store}, an open store connection."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:7418
+#: doc/guix.texi:8762
 #, no-wrap
 msgid "{Monadic Procedure} text-file @var{name} @var{text} [@var{references}]"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:7422
+#: doc/guix.texi:8766
 msgid "Return as a monadic value the absolute file name in the store of the file containing @var{text}, a string.  @var{references} is a list of store items that the resulting text file refers to; it defaults to the empty list."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:7424
+#: doc/guix.texi:8768
 #, no-wrap
 msgid "{Monadic Procedure} binary-file @var{name} @var{data} [@var{references}]"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:7428
+#: doc/guix.texi:8772
 msgid "Return as a monadic value the absolute file name in the store of the file containing @var{data}, a bytevector.  @var{references} is a list of store items that the resulting binary file refers to; it defaults to the empty list."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:7430
+#: doc/guix.texi:8774
 #, no-wrap
 msgid "{Monadic Procedure} interned-file @var{file} [@var{name}] @"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:7435
+#: doc/guix.texi:8779
 msgid "[#:recursive? #t] [#:select? (const #t)] Return the name of @var{file} once interned in the store.  Use @var{name} as its store name, or the basename of @var{file} if @var{name} is omitted."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:7439 doc/guix.texi:7856
+#: doc/guix.texi:8783 doc/guix.texi:9206
 msgid "When @var{recursive?} is true, the contents of @var{file} are added recursively; if @var{file} designates a flat file and @var{recursive?} is true, its contents are added, and its permission bits are kept."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:7444 doc/guix.texi:7861
+#: doc/guix.texi:8788 doc/guix.texi:9211
 msgid "When @var{recursive?} is true, call @code{(@var{select?} @var{file} @var{stat})} for each directory entry, where @var{file} is the entry's absolute file name and @var{stat} is the result of @code{lstat}; exclude entries for which @var{select?} does not return true."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:7446
+#: doc/guix.texi:8790
 msgid "The example below adds a file to the store, under two different names:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:7452
+#: doc/guix.texi:8796
 #, no-wrap
 msgid ""
 "(run-with-store (open-connection)\n"
@@ -14393,117 +17005,127 @@ msgid ""
 "    (return (list a b))))\n"
 "\n"
 msgstr ""
+"(run-with-store (open-connection)\n"
+"  (mlet %store-monad ((a (interned-file \"README\"))\n"
+"                      (b (interned-file \"README\" \"LEGU-MIN\")))\n"
+"    (return (list a b))))\n"
+"\n"
 
 #. type: lisp
-#: doc/guix.texi:7454
+#: doc/guix.texi:8798
 #, no-wrap
 msgid "@result{} (\"/gnu/store/rwm@dots{}-README\" \"/gnu/store/44i@dots{}-LEGU-MIN\")\n"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:7460
+#: doc/guix.texi:8804
 msgid "The @code{(guix packages)} module exports the following package-related monadic procedures:"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:7461
+#: doc/guix.texi:8805
 #, no-wrap
 msgid "{Monadic Procedure} package-file @var{package} [@var{file}] @"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:7469
+#: doc/guix.texi:8813
 msgid "[#:system (%current-system)] [#:target #f] @ [#:output \"out\"] Return as a monadic value in the absolute file name of @var{file} within the @var{output} directory of @var{package}.  When @var{file} is omitted, return the name of the @var{output} directory of @var{package}.  When @var{target} is true, use it as a cross-compilation target triplet."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:7471
+#: doc/guix.texi:8817
+msgid "Note that this procedure does @emph{not} build @var{package}.  Thus, the result might or might not designate an existing file.  We recommend not using this procedure unless you know what you are doing."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:8819
 #, no-wrap
 msgid "{Monadic Procedure} package->derivation @var{package} [@var{system}]"
 msgstr ""
 
 #. type: deffnx
-#: doc/guix.texi:7472
+#: doc/guix.texi:8820
 #, no-wrap
 msgid "{Monadic Procedure} package->cross-derivation @var{package} @"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:7476
+#: doc/guix.texi:8824
 msgid "@var{target} [@var{system}] Monadic version of @code{package-derivation} and @code{package-cross-derivation} (@pxref{Defining Packages})."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:7482
+#: doc/guix.texi:8830
 #, no-wrap
 msgid "G-expression"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:7483
+#: doc/guix.texi:8831
 #, no-wrap
 msgid "build code quoting"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:7489
+#: doc/guix.texi:8837
 msgid "So we have ``derivations'', which represent a sequence of build actions to be performed to produce an item in the store (@pxref{Derivations}).  These build actions are performed when asking the daemon to actually build the derivations; they are run by the daemon in a container (@pxref{Invoking guix-daemon})."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:7490
+#: doc/guix.texi:8840
 #, no-wrap
 msgid "strata of code"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:7502
-msgid "It should come as no surprise that we like to write these build actions in Scheme.  When we do that, we end up with two @dfn{strata} of Scheme code@footnote{The term @dfn{stratum} in this context was coined by Manuel Serrano et al.@: in the context of their work on Hop.  Oleg Kiselyov, who has written insightful @url{http://okmij.org/ftp/meta-programming/#meta-scheme, essays and code on this topic}, refers to this kind of code generation as @dfn{staging}.}: the ``host code''---code that defines packages, talks to the daemon, etc.---and the ``build code''---code that actually performs build actions, such as making directories, invoking @command{make}, etc."
+#: doc/guix.texi:8852
+msgid "It should come as no surprise that we like to write these build actions in Scheme.  When we do that, we end up with two @dfn{strata} of Scheme code@footnote{The term @dfn{stratum} in this context was coined by Manuel Serrano et al.@: in the context of their work on Hop.  Oleg Kiselyov, who has written insightful @url{http://okmij.org/ftp/meta-programming/#meta-scheme, essays and code on this topic}, refers to this kind of code generation as @dfn{staging}.}: the ``host code''---code that defines packages, talks to the daemon, etc.---and the ``build code''---code that actually performs build actions, such as making directories, invoking @command{make}, and so on (@pxref{Build Phases})."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:7509
+#: doc/guix.texi:8859
 msgid "To describe a derivation and its build actions, one typically needs to embed build code inside host code.  It boils down to manipulating build code as data, and the homoiconicity of Scheme---code has a direct representation as data---comes in handy for that.  But we need more than the normal @code{quasiquote} mechanism in Scheme to construct build expressions."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:7518
+#: doc/guix.texi:8868
 msgid "The @code{(guix gexp)} module implements @dfn{G-expressions}, a form of S-expressions adapted to build expressions.  G-expressions, or @dfn{gexps}, consist essentially of three syntactic forms: @code{gexp}, @code{ungexp}, and @code{ungexp-splicing} (or simply: @code{#~}, @code{#$}, and @code{#$@@}), which are comparable to @code{quasiquote}, @code{unquote}, and @code{unquote-splicing}, respectively (@pxref{Expression Syntax, @code{quasiquote},, guile, GNU Guile Reference Manual}).  However, there are major differences:"
 msgstr ""
 
 #. type: itemize
-#: doc/guix.texi:7523
+#: doc/guix.texi:8873
 msgid "Gexps are meant to be written to a file and run or manipulated by other processes."
 msgstr ""
 
 #. type: itemize
-#: doc/guix.texi:7528
+#: doc/guix.texi:8878
 msgid "When a high-level object such as a package or derivation is unquoted inside a gexp, the result is as if its output file name had been introduced."
 msgstr ""
 
 #. type: itemize
-#: doc/guix.texi:7533
+#: doc/guix.texi:8883
 msgid "Gexps carry information about the packages or derivations they refer to, and these dependencies are automatically added as inputs to the build processes that use them."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:7535 doc/guix.texi:8063
+#: doc/guix.texi:8885 doc/guix.texi:9442
 #, no-wrap
 msgid "lowering, of high-level objects in gexps"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:7545
-msgid "This mechanism is not limited to package and derivation objects: @dfn{compilers} able to ``lower'' other high-level objects to derivations or files in the store can be defined, such that these objects can also be inserted into gexps.  For example, a useful type of high-level objects that can be inserted in a gexp is ``file-like objects'', which make it easy to add files to the store and to refer to them in derivations and such (see @code{local-file} and @code{plain-file} below.)"
+#: doc/guix.texi:8895
+msgid "This mechanism is not limited to package and derivation objects: @dfn{compilers} able to ``lower'' other high-level objects to derivations or files in the store can be defined, such that these objects can also be inserted into gexps.  For example, a useful type of high-level objects that can be inserted in a gexp is ``file-like objects'', which make it easy to add files to the store and to refer to them in derivations and such (see @code{local-file} and @code{plain-file} below)."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:7547
+#: doc/guix.texi:8897
 msgid "To illustrate the idea, here is an example of a gexp:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:7555
+#: doc/guix.texi:8905
 #, no-wrap
 msgid ""
 "(define build-exp\n"
@@ -14513,36 +17135,42 @@ msgid ""
 "      (symlink (string-append #$coreutils \"/bin/ls\")\n"
 "               \"list-files\")))\n"
 msgstr ""
+"(define build-exp\n"
+"  #~(begin\n"
+"      (mkdir #$output)\n"
+"      (chdir #$output)\n"
+"      (symlink (string-append #$coreutils \"/bin/ls\")\n"
+"               \"list-files\")))\n"
 
 #. type: Plain text
-#: doc/guix.texi:7560
+#: doc/guix.texi:8910
 msgid "This gexp can be passed to @code{gexp->derivation}; we obtain a derivation that builds a directory containing exactly one symlink to @file{/gnu/store/@dots{}-coreutils-8.22/bin/ls}:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:7563
+#: doc/guix.texi:8913
 #, no-wrap
 msgid "(gexp->derivation \"the-thing\" build-exp)\n"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:7571
+#: doc/guix.texi:8921
 msgid "As one would expect, the @code{\"/gnu/store/@dots{}-coreutils-8.22\"} string is substituted to the reference to the @var{coreutils} package in the actual build code, and @var{coreutils} is automatically made an input to the derivation.  Likewise, @code{#$output} (equivalent to @code{(ungexp output)}) is replaced by a string containing the directory name of the output of the derivation."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:7572
+#: doc/guix.texi:8922
 #, no-wrap
 msgid "cross compilation"
-msgstr ""
+msgstr "кросс-компиляция"
 
 #. type: Plain text
-#: doc/guix.texi:7578
+#: doc/guix.texi:8928
 msgid "In a cross-compilation context, it is useful to distinguish between references to the @emph{native} build of a package---that can run on the host---versus references to cross builds of a package.  To that end, the @code{#+} plays the same role as @code{#$}, but is a reference to a native package build:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:7589
+#: doc/guix.texi:8939
 #, no-wrap
 msgid ""
 "(gexp->derivation \"vi\"\n"
@@ -14553,33 +17181,42 @@ msgid ""
 "                \"-s\"\n"
 "                (string-append #$emacs \"/bin/emacs\")\n"
 "                (string-append #$output \"/bin/vi\")))\n"
-"   #:target \"mips64el-linux-gnu\")\n"
+"   #:target \"aarch64-linux-gnu\")\n"
 msgstr ""
+"(gexp->derivation \"vi\"\n"
+"   #~(begin\n"
+"       (mkdir #$output)\n"
+"       (mkdir (string-append #$output \"/bin\"))\n"
+"       (system* (string-append #+coreutils \"/bin/ln\")\n"
+"                \"-s\"\n"
+"                (string-append #$emacs \"/bin/emacs\")\n"
+"                (string-append #$output \"/bin/vi\")))\n"
+"   #:target \"aarch64-linux-gnu\")\n"
 
 #. type: Plain text
-#: doc/guix.texi:7595
+#: doc/guix.texi:8945
 msgid "In the example above, the native build of @var{coreutils} is used, so that @command{ln} can actually run on the host; but then the cross-compiled build of @var{emacs} is referenced."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:7596
+#: doc/guix.texi:8946
 #, no-wrap
 msgid "imported modules, for gexps"
-msgstr ""
+msgstr "импортированные модули, для gexps"
 
 #. type: findex
-#: doc/guix.texi:7597
+#: doc/guix.texi:8947
 #, no-wrap
 msgid "with-imported-modules"
-msgstr ""
+msgstr "with-imported-modules"
 
 #. type: Plain text
-#: doc/guix.texi:7602
+#: doc/guix.texi:8952
 msgid "Another gexp feature is @dfn{imported modules}: sometimes you want to be able to use certain Guile modules from the ``host environment'' in the gexp, so those modules should be imported in the ``build environment''.  The @code{with-imported-modules} form allows you to express that:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:7613
+#: doc/guix.texi:8963
 #, no-wrap
 msgid ""
 "(let ((build (with-imported-modules '((guix build utils))\n"
@@ -14592,39 +17229,50 @@ msgid ""
 "                        (display \"success!\\n\")\n"
 "                        #t)))\n"
 msgstr ""
+"(let ((build (with-imported-modules '((guix build utils))\n"
+"               #~(begin\n"
+"                   (use-modules (guix build utils))\n"
+"                   (mkdir-p (string-append #$output \"/bin\"))))))\n"
+"  (gexp->derivation \"empty-dir\"\n"
+"                    #~(begin\n"
+"                        #$build\n"
+"                        (display \"success!\\n\")\n"
+"                        #t)))\n"
 
 #. type: Plain text
-#: doc/guix.texi:7619
+#: doc/guix.texi:8969
 msgid "In this example, the @code{(guix build utils)} module is automatically pulled into the isolated build environment of our gexp, such that @code{(use-modules (guix build utils))} works as expected."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:7620
+#: doc/guix.texi:8970
 #, no-wrap
 msgid "module closure"
 msgstr ""
 
 #. type: findex
-#: doc/guix.texi:7621
+#: doc/guix.texi:8971
 #, no-wrap
 msgid "source-module-closure"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:7628
+#: doc/guix.texi:8978
 msgid "Usually you want the @emph{closure} of the module to be imported---i.e., the module itself and all the modules it depends on---rather than just the module; failing to do that, attempts to use the module will fail because of missing dependent modules.  The @code{source-module-closure} procedure computes the closure of a module by looking at its source file headers, which comes in handy in this case:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:7631
+#: doc/guix.texi:8981
 #, no-wrap
 msgid ""
 "(use-modules (guix modules))   ;for 'source-module-closure'\n"
 "\n"
 msgstr ""
+"(use-modules (guix modules))   ;for 'source-module-closure'\n"
+"\n"
 
 #. type: lisp
-#: doc/guix.texi:7640
+#: doc/guix.texi:8990
 #, no-wrap
 msgid ""
 "(with-imported-modules (source-module-closure\n"
@@ -14636,34 +17284,44 @@ msgid ""
 "                                     (gnu build vm))\n"
 "                        @dots{})))\n"
 msgstr ""
+"(with-imported-modules (source-module-closure\n"
+"                         '((guix build utils)\n"
+"                           (gnu build vm)))\n"
+"  (gexp->derivation \"something-with-vms\"\n"
+"                    #~(begin\n"
+"                        (use-modules (guix build utils)\n"
+"                                     (gnu build vm))\n"
+"                        @dots{})))\n"
 
 #. type: cindex
-#: doc/guix.texi:7642
+#: doc/guix.texi:8992
 #, no-wrap
 msgid "extensions, for gexps"
 msgstr ""
 
 #. type: findex
-#: doc/guix.texi:7643
+#: doc/guix.texi:8993
 #, no-wrap
 msgid "with-extensions"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:7648
+#: doc/guix.texi:8998
 msgid "In the same vein, sometimes you want to import not just pure-Scheme modules, but also ``extensions'' such as Guile bindings to C libraries or other ``full-blown'' packages.  Say you need the @code{guile-json} package available on the build side, here's how you would do it:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:7651
+#: doc/guix.texi:9001
 #, no-wrap
 msgid ""
 "(use-modules (gnu packages guile))  ;for 'guile-json'\n"
 "\n"
 msgstr ""
+"(use-modules (gnu packages guile))  ;for 'guile-json'\n"
+"\n"
 
 #. type: lisp
-#: doc/guix.texi:7657
+#: doc/guix.texi:9007
 #, no-wrap
 msgid ""
 "(with-extensions (list guile-json)\n"
@@ -14672,186 +17330,191 @@ msgid ""
 "                        (use-modules (json))\n"
 "                        @dots{})))\n"
 msgstr ""
+"(with-extensions (list guile-json)\n"
+"  (gexp->derivation \"something-with-json\"\n"
+"                    #~(begin\n"
+"                        (use-modules (json))\n"
+"                        @dots{})))\n"
 
 #. type: Plain text
-#: doc/guix.texi:7660
+#: doc/guix.texi:9010
 msgid "The syntactic form to construct gexps is summarized below."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:7661
+#: doc/guix.texi:9011
 #, no-wrap
 msgid "{Scheme Syntax} #~@var{exp}"
 msgstr ""
 
 #. type: deffnx
-#: doc/guix.texi:7662
+#: doc/guix.texi:9012
 #, no-wrap
 msgid "{Scheme Syntax} (gexp @var{exp})"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:7665
+#: doc/guix.texi:9015
 msgid "Return a G-expression containing @var{exp}.  @var{exp} may contain one or more of the following forms:"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:7667
+#: doc/guix.texi:9017
 #, no-wrap
 msgid "#$@var{obj}"
-msgstr ""
+msgstr "#$@var{obj}"
 
 #. type: itemx
-#: doc/guix.texi:7668
+#: doc/guix.texi:9018
 #, no-wrap
 msgid "(ungexp @var{obj})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:7673
+#: doc/guix.texi:9023
 msgid "Introduce a reference to @var{obj}.  @var{obj} may have one of the supported types, for example a package or a derivation, in which case the @code{ungexp} form is replaced by its output file name---e.g., @code{\"/gnu/store/@dots{}-coreutils-8.22}."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:7676
+#: doc/guix.texi:9026
 msgid "If @var{obj} is a list, it is traversed and references to supported objects are substituted similarly."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:7679
+#: doc/guix.texi:9029
 msgid "If @var{obj} is another gexp, its contents are inserted and its dependencies are added to those of the containing gexp."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:7681
+#: doc/guix.texi:9031
 msgid "If @var{obj} is another kind of object, it is inserted as is."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:7682
+#: doc/guix.texi:9032
 #, no-wrap
 msgid "#$@var{obj}:@var{output}"
 msgstr ""
 
 #. type: itemx
-#: doc/guix.texi:7683
+#: doc/guix.texi:9033
 #, no-wrap
 msgid "(ungexp @var{obj} @var{output})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:7687
+#: doc/guix.texi:9037
 msgid "This is like the form above, but referring explicitly to the @var{output} of @var{obj}---this is useful when @var{obj} produces multiple outputs (@pxref{Packages with Multiple Outputs})."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:7688
+#: doc/guix.texi:9038
 #, no-wrap
 msgid "#+@var{obj}"
 msgstr ""
 
 #. type: itemx
-#: doc/guix.texi:7689
+#: doc/guix.texi:9039
 #, no-wrap
 msgid "#+@var{obj}:output"
 msgstr ""
 
 #. type: itemx
-#: doc/guix.texi:7690
+#: doc/guix.texi:9040
 #, no-wrap
 msgid "(ungexp-native @var{obj})"
 msgstr ""
 
 #. type: itemx
-#: doc/guix.texi:7691
+#: doc/guix.texi:9041
 #, no-wrap
 msgid "(ungexp-native @var{obj} @var{output})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:7694
+#: doc/guix.texi:9044
 msgid "Same as @code{ungexp}, but produces a reference to the @emph{native} build of @var{obj} when used in a cross compilation context."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:7695
+#: doc/guix.texi:9045
 #, no-wrap
 msgid "#$output[:@var{output}]"
 msgstr ""
 
 #. type: itemx
-#: doc/guix.texi:7696
+#: doc/guix.texi:9046
 #, no-wrap
 msgid "(ungexp output [@var{output}])"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:7699
+#: doc/guix.texi:9049
 msgid "Insert a reference to derivation output @var{output}, or to the main output when @var{output} is omitted."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:7701
+#: doc/guix.texi:9051
 msgid "This only makes sense for gexps passed to @code{gexp->derivation}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:7702
+#: doc/guix.texi:9052
 #, no-wrap
 msgid "#$@@@var{lst}"
 msgstr ""
 
 #. type: itemx
-#: doc/guix.texi:7703
+#: doc/guix.texi:9053
 #, no-wrap
 msgid "(ungexp-splicing @var{lst})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:7706
+#: doc/guix.texi:9056
 msgid "Like the above, but splices the contents of @var{lst} inside the containing list."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:7707
+#: doc/guix.texi:9057
 #, no-wrap
 msgid "#+@@@var{lst}"
 msgstr ""
 
 #. type: itemx
-#: doc/guix.texi:7708
+#: doc/guix.texi:9058
 #, no-wrap
 msgid "(ungexp-native-splicing @var{lst})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:7711
+#: doc/guix.texi:9061
 msgid "Like the above, but refers to native builds of the objects listed in @var{lst}."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:7716
-msgid "G-expressions created by @code{gexp} or @code{#~} are run-time objects of the @code{gexp?} type (see below.)"
+#: doc/guix.texi:9066
+msgid "G-expressions created by @code{gexp} or @code{#~} are run-time objects of the @code{gexp?} type (see below)."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:7718
+#: doc/guix.texi:9068
 #, no-wrap
 msgid "{Scheme Syntax} with-imported-modules @var{modules} @var{body}@dots{}"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:7721
+#: doc/guix.texi:9071
 msgid "Mark the gexps defined in @var{body}@dots{} as requiring @var{modules} in their execution environment."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:7725
+#: doc/guix.texi:9075
 msgid "Each item in @var{modules} can be the name of a module, such as @code{(guix build utils)}, or it can be a module name, followed by an arrow, followed by a file-like object:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:7731
+#: doc/guix.texi:9081
 #, no-wrap
 msgid ""
 "`((guix build utils)\n"
@@ -14859,82 +17522,86 @@ msgid ""
 "  ((guix config) => ,(scheme-file \"config.scm\"\n"
 "                                  #~(define-module @dots{}))))\n"
 msgstr ""
+"`((guix build utils)\n"
+"  (guix gcrypt)\n"
+"  ((guix config) => ,(scheme-file \"config.scm\"\n"
+"                                  #~(define-module @dots{}))))\n"
 
 #. type: deffn
-#: doc/guix.texi:7736
+#: doc/guix.texi:9086
 msgid "In the example above, the first two modules are taken from the search path, and the last one is created from the given file-like object."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:7740
+#: doc/guix.texi:9090
 msgid "This form has @emph{lexical} scope: it has an effect on the gexps directly defined in @var{body}@dots{}, but not on those defined, say, in procedures called from @var{body}@dots{}."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:7742
+#: doc/guix.texi:9092
 #, no-wrap
 msgid "{Scheme Syntax} with-extensions @var{extensions} @var{body}@dots{}"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:7747
+#: doc/guix.texi:9097
 msgid "Mark the gexps defined in @var{body}@dots{} as requiring @var{extensions} in their build and execution environment.  @var{extensions} is typically a list of package objects such as those defined in the @code{(gnu packages guile)} module."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:7752
+#: doc/guix.texi:9102
 msgid "Concretely, the packages listed in @var{extensions} are added to the load path while compiling imported modules in @var{body}@dots{}; they are also added to the load path of the gexp returned by @var{body}@dots{}."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:7754
+#: doc/guix.texi:9104
 #, no-wrap
 msgid "{Scheme Procedure} gexp? @var{obj}"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:7756
+#: doc/guix.texi:9106
 msgid "Return @code{#t} if @var{obj} is a G-expression."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:7762
-msgid "G-expressions are meant to be written to disk, either as code building some derivation, or as plain files in the store.  The monadic procedures below allow you to do that (@pxref{The Store Monad}, for more information about monads.)"
+#: doc/guix.texi:9112
+msgid "G-expressions are meant to be written to disk, either as code building some derivation, or as plain files in the store.  The monadic procedures below allow you to do that (@pxref{The Store Monad}, for more information about monads)."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:7763
+#: doc/guix.texi:9113
 #, no-wrap
 msgid "{Monadic Procedure} gexp->derivation @var{name} @var{exp} @"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:7781
-msgid "[#:system (%current-system)] [#:target #f] [#:graft? #t] @ [#:hash #f] [#:hash-algo #f] @ [#:recursive? #f] [#:env-vars '()] [#:modules '()] @ [#:module-path @var{%load-path}] @ [#:effective-version \"2.2\"] @ [#:references-graphs #f] [#:allowed-references #f] @ [#:disallowed-references #f] @ [#:leaked-env-vars #f] @ [#:script-name (string-append @var{name} \"-builder\")] @ [#:deprecation-warnings #f] @ [#:local-build? #f] [#:substitutable? #t] @ [#:properties '()] [#:guile-for-build #f] Return a derivation @var{name} that runs @var{exp} (a gexp) with @var{guile-for-build} (a derivation) on @var{system}; @var{exp} is stored in a file called @var{script-name}.  When @var{target} is true, it is used as the cross-compilation target triplet for packages referred to by @var{exp}."
+#: doc/guix.texi:9131
+msgid "[#:system (%current-system)] [#:target #f] [#:graft? #t] @ [#:hash #f] [#:hash-algo #f] @ [#:recursive? #f] [#:env-vars '()] [#:modules '()] @ [#:module-path @code{%load-path}] @ [#:effective-version \"2.2\"] @ [#:references-graphs #f] [#:allowed-references #f] @ [#:disallowed-references #f] @ [#:leaked-env-vars #f] @ [#:script-name (string-append @var{name} \"-builder\")] @ [#:deprecation-warnings #f] @ [#:local-build? #f] [#:substitutable? #t] @ [#:properties '()] [#:guile-for-build #f] Return a derivation @var{name} that runs @var{exp} (a gexp) with @var{guile-for-build} (a derivation) on @var{system}; @var{exp} is stored in a file called @var{script-name}.  When @var{target} is true, it is used as the cross-compilation target triplet for packages referred to by @var{exp}."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:7789
+#: doc/guix.texi:9139
 msgid "@var{modules} is deprecated in favor of @code{with-imported-modules}.  Its meaning is to make @var{modules} available in the evaluation context of @var{exp}; @var{modules} is a list of names of Guile modules searched in @var{module-path} to be copied in the store, compiled, and made available in the load path during the execution of @var{exp}---e.g., @code{((guix build utils) (guix build gnu-build-system))}."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:7792
+#: doc/guix.texi:9142
 msgid "@var{effective-version} determines the string to use when adding extensions of @var{exp} (see @code{with-extensions}) to the search path---e.g., @code{\"2.2\"}."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:7795
+#: doc/guix.texi:9145
 msgid "@var{graft?} determines whether packages referred to by @var{exp} should be grafted when applicable."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:7798
+#: doc/guix.texi:9148
 msgid "When @var{references-graphs} is true, it must be a list of tuples of one of the following forms:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:7805
+#: doc/guix.texi:9155
 #, no-wrap
 msgid ""
 "(@var{file-name} @var{package})\n"
@@ -14943,40 +17610,45 @@ msgid ""
 "(@var{file-name} @var{derivation} @var{output})\n"
 "(@var{file-name} @var{store-item})\n"
 msgstr ""
+"(@var{file-name} @var{package})\n"
+"(@var{file-name} @var{package} @var{output})\n"
+"(@var{file-name} @var{derivation})\n"
+"(@var{file-name} @var{derivation} @var{output})\n"
+"(@var{file-name} @var{store-item})\n"
 
 #. type: deffn
-#: doc/guix.texi:7811
+#: doc/guix.texi:9161
 msgid "The right-hand-side of each element of @var{references-graphs} is automatically made an input of the build process of @var{exp}.  In the build environment, each @var{file-name} contains the reference graph of the corresponding item, in a simple text format."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:7817
+#: doc/guix.texi:9167
 msgid "@var{allowed-references} must be either @code{#f} or a list of output names and packages.  In the latter case, the list denotes store items that the result is allowed to refer to.  Any reference to another store item will lead to a build error.  Similarly for @var{disallowed-references}, which can list items that must not be referenced by the outputs."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:7820
+#: doc/guix.texi:9170
 msgid "@var{deprecation-warnings} determines whether to show deprecation warnings while compiling modules.  It can be @code{#f}, @code{#t}, or @code{'detailed}."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:7822
+#: doc/guix.texi:9172
 msgid "The other arguments are as for @code{derivation} (@pxref{Derivations})."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:7824
+#: doc/guix.texi:9174
 #, no-wrap
 msgid "file-like objects"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:7829
+#: doc/guix.texi:9179
 msgid "The @code{local-file}, @code{plain-file}, @code{computed-file}, @code{program-file}, and @code{scheme-file} procedures below return @dfn{file-like objects}.  That is, when unquoted in a G-expression, these objects lead to a file in the store.  Consider this G-expression:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:7833
+#: doc/guix.texi:9183
 #, no-wrap
 msgid ""
 "#~(system* #$(file-append glibc \"/sbin/nscd\") \"-f\"\n"
@@ -14984,76 +17656,76 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:7842
+#: doc/guix.texi:9192
 msgid "The effect here is to ``intern'' @file{/tmp/my-nscd.conf} by copying it to the store.  Once expanded, for instance @i{via} @code{gexp->derivation}, the G-expression refers to that copy under @file{/gnu/store}; thus, modifying or removing the file in @file{/tmp} does not have any effect on what the G-expression does.  @code{plain-file} can be used similarly; it differs in that the file content is directly passed as a string."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:7843
+#: doc/guix.texi:9193
 #, no-wrap
 msgid "{Scheme Procedure} local-file @var{file} [@var{name}] @"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:7852
+#: doc/guix.texi:9202
 msgid "[#:recursive? #f] [#:select? (const #t)] Return an object representing local file @var{file} to add to the store; this object can be used in a gexp.  If @var{file} is a literal string denoting a relative file name, it is looked up relative to the source file where it appears; if @var{file} is not a literal string, it is looked up relative to the current working directory at run time.  @var{file} will be added to the store under @var{name}--by default the base name of @var{file}."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:7864
+#: doc/guix.texi:9214
 msgid "This is the declarative counterpart of the @code{interned-file} monadic procedure (@pxref{The Store Monad, @code{interned-file}})."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:7866
+#: doc/guix.texi:9216
 #, no-wrap
 msgid "{Scheme Procedure} plain-file @var{name} @var{content}"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:7869
+#: doc/guix.texi:9219
 msgid "Return an object representing a text file called @var{name} with the given @var{content} (a string or a bytevector) to be added to the store."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:7871
+#: doc/guix.texi:9221
 msgid "This is the declarative counterpart of @code{text-file}."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:7873
+#: doc/guix.texi:9223
 #, no-wrap
 msgid "{Scheme Procedure} computed-file @var{name} @var{gexp} @"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:7878
-msgid "[#:options '(#:local-build? #t)] Return an object representing the store item @var{name}, a file or directory computed by @var{gexp}.  @var{options} is a list of additional arguments to pass to @code{gexp->derivation}."
+#: doc/guix.texi:9230
+msgid "[#:local-build? #t] [#:options '()] Return an object representing the store item @var{name}, a file or directory computed by @var{gexp}.  When @var{local-build?} is true (the default), the derivation is built locally.  @var{options} is a list of additional arguments to pass to @code{gexp->derivation}."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:7880
+#: doc/guix.texi:9232
 msgid "This is the declarative counterpart of @code{gexp->derivation}."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:7882
+#: doc/guix.texi:9234
 #, no-wrap
 msgid "{Monadic Procedure} gexp->script @var{name} @var{exp} @"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:7888
+#: doc/guix.texi:9240
 msgid "[#:guile (default-guile)] [#:module-path %load-path] @ [#:system (%current-system)] [#:target #f] Return an executable script @var{name} that runs @var{exp} using @var{guile}, with @var{exp}'s imported modules in its search path.  Look up @var{exp}'s modules in @var{module-path}."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:7891
+#: doc/guix.texi:9243
 msgid "The example below builds a script that simply invokes the @command{ls} command:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:7894
+#: doc/guix.texi:9246
 #, no-wrap
 msgid ""
 "(use-modules (guix gexp) (gnu packages base))\n"
@@ -15061,7 +17733,7 @@ msgid ""
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:7898
+#: doc/guix.texi:9250
 #, no-wrap
 msgid ""
 "(gexp->script \"list-files\"\n"
@@ -15070,12 +17742,12 @@ msgid ""
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:7903
+#: doc/guix.texi:9255
 msgid "When ``running'' it through the store (@pxref{The Store Monad, @code{run-with-store}}), we obtain a derivation that produces an executable file @file{/gnu/store/@dots{}-list-files} along these lines:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:7908
+#: doc/guix.texi:9260
 #, no-wrap
 msgid ""
 "#!/gnu/store/@dots{}-guile-2.0.11/bin/guile -ds\n"
@@ -15084,76 +17756,76 @@ msgid ""
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:7911
+#: doc/guix.texi:9263
 #, no-wrap
 msgid "{Scheme Procedure} program-file @var{name} @var{exp} @"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:7916
+#: doc/guix.texi:9268
 msgid "[#:guile #f] [#:module-path %load-path] Return an object representing the executable store item @var{name} that runs @var{gexp}.  @var{guile} is the Guile package used to execute that script.  Imported modules of @var{gexp} are looked up in @var{module-path}."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:7918
+#: doc/guix.texi:9270
 msgid "This is the declarative counterpart of @code{gexp->script}."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:7920
+#: doc/guix.texi:9272
 #, no-wrap
 msgid "{Monadic Procedure} gexp->file @var{name} @var{exp} @"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:7927
+#: doc/guix.texi:9279
 msgid "[#:set-load-path? #t] [#:module-path %load-path] @ [#:splice? #f] @ [#:guile (default-guile)] Return a derivation that builds a file @var{name} containing @var{exp}.  When @var{splice?} is true, @var{exp} is considered to be a list of expressions that will be spliced in the resulting file."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:7932
+#: doc/guix.texi:9284
 msgid "When @var{set-load-path?} is true, emit code in the resulting file to set @code{%load-path} and @code{%load-compiled-path} to honor @var{exp}'s imported modules.  Look up @var{exp}'s modules in @var{module-path}."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:7935
+#: doc/guix.texi:9287
 msgid "The resulting file holds references to all the dependencies of @var{exp} or a subset thereof."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:7937
-#, no-wrap
-msgid "{Scheme Procedure} scheme-file @var{name} @var{exp} [#:splice? #f]"
-msgstr ""
+#: doc/guix.texi:9289
+#, fuzzy, no-wrap
+msgid "{Scheme Procedure} scheme-file @var{name} @var{exp} @"
+msgstr "{Scheme Procedure} scheme-file @var{name} @var{exp} @"
 
 #. type: deffn
-#: doc/guix.texi:7940
-msgid "Return an object representing the Scheme file @var{name} that contains @var{exp}."
-msgstr ""
+#: doc/guix.texi:9293
+msgid "[#:splice? #f] [#:set-load-path? #t] Return an object representing the Scheme file @var{name} that contains @var{exp}."
+msgstr "[#:splice? #f] [#:set-load-path? #t] Возвращает объект, представляющий Scheme файл file @var{name} содержащий @var{exp}."
 
 #. type: deffn
-#: doc/guix.texi:7942
+#: doc/guix.texi:9295
 msgid "This is the declarative counterpart of @code{gexp->file}."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:7944
+#: doc/guix.texi:9297
 #, no-wrap
 msgid "{Monadic Procedure} text-file* @var{name} @var{text} @dots{}"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:7950
+#: doc/guix.texi:9303
 msgid "Return as a monadic value a derivation that builds a text file containing all of @var{text}.  @var{text} may list, in addition to strings, objects of any type that can be used in a gexp: packages, derivations, local file objects, etc.  The resulting store file holds references to all these."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:7955
+#: doc/guix.texi:9308
 msgid "This variant should be preferred over @code{text-file} anytime the file to create will reference items from the store.  This is typically the case when building a configuration file that embeds store file names, like this:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:7963
+#: doc/guix.texi:9316
 #, no-wrap
 msgid ""
 "(define (profile.sh)\n"
@@ -15163,49 +17835,57 @@ msgid ""
 "              \"export PATH=\" coreutils \"/bin:\"\n"
 "              grep \"/bin:\" sed \"/bin\\n\"))\n"
 msgstr ""
+"(define (profile.sh)\n"
+"  ;; Return the name of a shell script in the store that\n"
+"  ;; initializes the 'PATH' environment variable.\n"
+"  (text-file* \"profile.sh\"\n"
+"              \"export PATH=\" coreutils \"/bin:\"\n"
+"              grep \"/bin:\" sed \"/bin\\n\"))\n"
 
 #. type: deffn
-#: doc/guix.texi:7968
+#: doc/guix.texi:9321
 msgid "In this example, the resulting @file{/gnu/store/@dots{}-profile.sh} file will reference @var{coreutils}, @var{grep}, and @var{sed}, thereby preventing them from being garbage-collected during its lifetime."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:7970
+#: doc/guix.texi:9323
 #, no-wrap
 msgid "{Scheme Procedure} mixed-text-file @var{name} @var{text} @dots{}"
-msgstr ""
+msgstr "{Scheme Procedure} mixed-text-file @var{name} @var{text} @dots{}"
 
 #. type: deffn
-#: doc/guix.texi:7974
+#: doc/guix.texi:9327
 msgid "Return an object representing store file @var{name} containing @var{text}.  @var{text} is a sequence of strings and file-like objects, as in:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:7978
+#: doc/guix.texi:9331
 #, no-wrap
 msgid ""
 "(mixed-text-file \"profile\"\n"
 "                 \"export PATH=\" coreutils \"/bin:\" grep \"/bin\")\n"
 msgstr ""
+"(mixed-text-file \"profile\"\n"
+"                 \"export PATH=\" coreutils \"/bin:\" grep \"/bin\")\n"
 
 #. type: deffn
-#: doc/guix.texi:7981
+#: doc/guix.texi:9334
 msgid "This is the declarative counterpart of @code{text-file*}."
-msgstr ""
+msgstr "Это декларативный аналог @code{text-file*}."
 
 #. type: deffn
-#: doc/guix.texi:7983
+#: doc/guix.texi:9336
 #, no-wrap
 msgid "{Scheme Procedure} file-union @var{name} @var{files}"
-msgstr ""
+msgstr "{Scheme Procedure} file-union @var{name} @var{files}"
 
 #. type: deffn
-#: doc/guix.texi:7988
+#: doc/guix.texi:9341
 msgid "Return a @code{<computed-file>} that builds a directory containing all of @var{files}.  Each item in @var{files} must be a two-element list where the first element is the file name to use in the new directory, and the second element is a gexp denoting the target file.  Here's an example:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:7995
+#: doc/guix.texi:9348
 #, no-wrap
 msgid ""
 "(file-union \"etc\"\n"
@@ -15214,147 +17894,260 @@ msgid ""
 "              (\"bashrc\" ,(plain-file \"bashrc\"\n"
 "                                     \"alias ls='ls --color=auto'\"))))\n"
 msgstr ""
+"(file-union \"etc\"\n"
+"            `((\"hosts\" ,(plain-file \"hosts\"\n"
+"                                    \"127.0.0.1 localhost\"))\n"
+"              (\\\"bashrc\\\" ,(plain-file \"bashrc\"\n"
+"                                     \"alias ls='ls --color=auto'\"))))\n"
 
 #. type: deffn
-#: doc/guix.texi:7998
+#: doc/guix.texi:9351
 msgid "This yields an @code{etc} directory containing these two files."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:8000
+#: doc/guix.texi:9353
 #, no-wrap
 msgid "{Scheme Procedure} directory-union @var{name} @var{things}"
-msgstr ""
+msgstr "{Scheme Procedure} directory-union @var{name} @var{things}"
 
 #. type: deffn
-#: doc/guix.texi:8003
+#: doc/guix.texi:9356
 msgid "Return a directory that is the union of @var{things}, where @var{things} is a list of file-like objects denoting directories.  For example:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:8006
+#: doc/guix.texi:9359
 #, no-wrap
 msgid "(directory-union \"guile+emacs\" (list guile emacs))\n"
-msgstr ""
+msgstr "(directory-union \"guile+emacs\" (list guile emacs))\n"
 
 #. type: deffn
-#: doc/guix.texi:8009
+#: doc/guix.texi:9362
 msgid "yields a directory that is the union of the @code{guile} and @code{emacs} packages."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:8011
+#: doc/guix.texi:9364
 #, no-wrap
 msgid "{Scheme Procedure} file-append @var{obj} @var{suffix} @dots{}"
-msgstr ""
+msgstr "{Scheme Procedure} file-append @var{obj} @var{suffix} @dots{}"
 
 #. type: deffn
-#: doc/guix.texi:8015
+#: doc/guix.texi:9368
 msgid "Return a file-like object that expands to the concatenation of @var{obj} and @var{suffix}, where @var{obj} is a lowerable object and each @var{suffix} is a string."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:8017
+#: doc/guix.texi:9370
 msgid "As an example, consider this gexp:"
-msgstr ""
+msgstr "В качестве примера рассмотрим этот gexp:"
 
 #. type: lisp
-#: doc/guix.texi:8022
+#: doc/guix.texi:9375
 #, no-wrap
 msgid ""
 "(gexp->script \"run-uname\"\n"
 "              #~(system* #$(file-append coreutils\n"
 "                                        \"/bin/uname\")))\n"
 msgstr ""
+"(gexp->script \"run-uname\"\n"
+"              #~(system* #$(file-append coreutils\n"
+"                                        \"/bin/uname\")))\n"
 
 #. type: deffn
-#: doc/guix.texi:8025
+#: doc/guix.texi:9378
 msgid "The same effect could be achieved with:"
-msgstr ""
+msgstr "Такого же эффекта можно добиться с помощью:"
 
 #. type: lisp
-#: doc/guix.texi:8030
+#: doc/guix.texi:9383
 #, no-wrap
 msgid ""
 "(gexp->script \"run-uname\"\n"
 "              #~(system* (string-append #$coreutils\n"
 "                                        \"/bin/uname\")))\n"
 msgstr ""
+"(gexp->script \"run-uname\"\n"
+"              #~(system* (string-append #$coreutils\n"
+"                                        \"/bin/uname\")))\n"
 
 #. type: deffn
-#: doc/guix.texi:8036
+#: doc/guix.texi:9389
 msgid "There is one difference though: in the @code{file-append} case, the resulting script contains the absolute file name as a string, whereas in the second case, the resulting script contains a @code{(string-append @dots{})} expression to construct the file name @emph{at run time}."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:8038
+#: doc/guix.texi:9391
+#, no-wrap
+msgid "{Scheme Syntax} let-system @var{system} @var{body}@dots{}"
+msgstr "{Scheme Syntax} let-system @var{system} @var{body}@dots{}"
+
+#. type: deffnx
+#: doc/guix.texi:9392
+#, no-wrap
+msgid "{Scheme Syntax} let-system (@var{system} @var{target}) @var{body}@dots{}"
+msgstr "{Scheme Syntax} let-system (@var{system} @var{target}) @var{body}@dots{}"
+
+#. type: deffn
+#: doc/guix.texi:9395
+msgid "Bind @var{system} to the currently targeted system---e.g., @code{\"x86_64-linux\"}---within @var{body}."
+msgstr "Привязать @var{system} к текущей целевой системе---например, @code{\\\"x86_64-linux\\\"}---в @var{body}."
+
+#. type: deffn
+#: doc/guix.texi:9400
+msgid "In the second case, additionally bind @var{target} to the current cross-compilation target---a GNU triplet such as @code{\"arm-linux-gnueabihf\"}---or @code{#f} if we are not cross-compiling."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:9403
+msgid "@code{let-system} is useful in the occasional case where the object spliced into the gexp depends on the target system, as in this example:"
+msgstr ""
+
+#. type: lisp
+#: doc/guix.texi:9414
+#, no-wrap
+msgid ""
+"#~(system*\n"
+"   #+(let-system system\n"
+"       (cond ((string-prefix? \"armhf-\" system)\n"
+"              (file-append qemu \"/bin/qemu-system-arm\"))\n"
+"             ((string-prefix? \"x86_64-\" system)\n"
+"              (file-append qemu \"/bin/qemu-system-x86_64\"))\n"
+"             (else\n"
+"              (error \"dunno!\"))))\n"
+"   \"-net\" \"user\" #$image)\n"
+msgstr ""
+"#~(system*\n"
+"   #+(let-system system\n"
+"       (cond ((string-prefix? \"armhf-\" system)\n"
+"              (file-append qemu \"/bin/qemu-system-arm\"))\n"
+"             ((string-prefix? \"x86_64-\" system)\n"
+"              (file-append qemu \"/bin/qemu-system-x86_64\"))\n"
+"             (else\n"
+"              (error \"dunno!\"))))\n"
+"   \"-net\" \"user\" #$image)\n"
+
+#. type: deffn
+#: doc/guix.texi:9417
 #, no-wrap
 msgid "{Scheme Syntax} with-parameters ((@var{parameter} @var{value}) @dots{}) @var{exp}"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:8044
+#: doc/guix.texi:9423
 msgid "This macro is similar to the @code{parameterize} form for dynamically-bound @dfn{parameters} (@pxref{Parameters,,, guile, GNU Guile Reference Manual}).  The key difference is that it takes effect when the file-like object returned by @var{exp} is lowered to a derivation or store item."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:8047
+#: doc/guix.texi:9426
 msgid "A typical use of @code{with-parameters} is to force the system in effect for a given object:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:8051
+#: doc/guix.texi:9430
 #, no-wrap
 msgid ""
 "(with-parameters ((%current-system \"i686-linux\"))\n"
 "  coreutils)\n"
 msgstr ""
+"(with-parameters ((%current-system \"i686-linux\"))\n"
+"  coreutils)\n"
 
 #. type: deffn
-#: doc/guix.texi:8055
+#: doc/guix.texi:9434
 msgid "The example above returns an object that corresponds to the i686 build of Coreutils, regardless of the current value of @code{%current-system}."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:8062
+#: doc/guix.texi:9441
 msgid "Of course, in addition to gexps embedded in ``host'' code, there are also modules containing build tools.  To make it clear that they are meant to be used in the build stratum, these modules are kept in the @code{(guix build @dots{})} name space."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:8068
+#: doc/guix.texi:9447
 msgid "Internally, high-level objects are @dfn{lowered}, using their compiler, to either derivations or store items.  For instance, lowering a package yields a derivation, and lowering a @code{plain-file} yields a store item.  This is achieved using the @code{lower-object} monadic procedure."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:8069
+#: doc/guix.texi:9448
 #, no-wrap
 msgid "{Monadic Procedure} lower-object @var{obj} [@var{system}] @"
-msgstr ""
+msgstr "{Monadic Procedure} lower-object @var{obj} [@var{system}] @"
 
 #. type: deffn
-#: doc/guix.texi:8075
-msgid "[#:target #f] Return as a value in @var{%store-monad} the derivation or store item corresponding to @var{obj} for @var{system}, cross-compiling for @var{target} if @var{target} is true.  @var{obj} must be an object that has an associated gexp compiler, such as a @code{<package>}."
+#: doc/guix.texi:9454
+msgid "[#:target #f] Return as a value in @code{%store-monad} the derivation or store item corresponding to @var{obj} for @var{system}, cross-compiling for @var{target} if @var{target} is true.  @var{obj} must be an object that has an associated gexp compiler, such as a @code{<package>}."
 msgstr ""
 
 #. type: section
-#: doc/guix.texi:8078
+#: doc/guix.texi:9457
 #, no-wrap
 msgid "Invoking @command{guix repl}"
-msgstr ""
+msgstr "Вызов @command{guix repl}"
 
 #. type: cindex
-#: doc/guix.texi:8080
+#: doc/guix.texi:9459
+#, fuzzy, no-wrap
+#| msgid "read-eval-print loop"
+msgid "REPL, read-eval-print loop, script"
+msgstr "цикл чтение-вычисление-вывод"
+
+#. type: Plain text
+#: doc/guix.texi:9469
+msgid "The @command{guix repl} command makes it easier to program Guix in Guile by launching a Guile @dfn{read-eval-print loop} (REPL) for interactive programming (@pxref{Using Guile Interactively,,, guile, GNU Guile Reference Manual}), or by running Guile scripts (@pxref{Running Guile Scripts,,, guile, GNU Guile Reference Manual}).  Compared to just launching the @command{guile} command, @command{guix repl} guarantees that all the Guix modules and all its dependencies are available in the search path."
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:9474
+#, fuzzy, no-wrap
+msgid "guix repl @var{options} [@var{file} @var{args}]\n"
+msgstr "guix repl @var{options} [@var{file} @var{args}]\n"
+
+#. type: Plain text
+#: doc/guix.texi:9478
+msgid "When a @var{file} argument is provided, @var{file} is executed as a Guile scripts:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:9481
+#, no-wrap
+msgid "guix repl my-script.scm\n"
+msgstr "guix repl my-script.scm\n"
+
+#. type: Plain text
+#: doc/guix.texi:9485
+msgid "To pass arguments to the script, use @code{--} to prevent them from being interpreted as arguments to @command{guix repl} itself:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:9488
+#, no-wrap
+msgid "guix repl -- my-script.scm --input=foo.txt\n"
+msgstr "guix repl -- my-script.scm --input=foo.txt\n"
+
+#. type: Plain text
+#: doc/guix.texi:9493
+msgid "To make a script executable directly from the shell, using the guix executable that is on the user's search path, add the following two lines at the top of the script:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:9497
 #, no-wrap
-msgid "REPL, read-eval-print loop"
+msgid ""
+"@code{#!/usr/bin/env -S guix repl --}\n"
+"@code{!#}\n"
 msgstr ""
+"@code{#!/usr/bin/env -S guix repl --}\n"
+"@code{!#}\n"
 
 #. type: Plain text
-#: doc/guix.texi:8086
-msgid "The @command{guix repl} command spawns a Guile @dfn{read-eval-print loop} (REPL) for interactive programming (@pxref{Using Guile Interactively,,, guile, GNU Guile Reference Manual}).  Compared to just launching the @command{guile} command, @command{guix repl} guarantees that all the Guix modules and all its dependencies are available in the search path.  You can use it this way:"
+#: doc/guix.texi:9500
+msgid "Without a file name argument, a Guile REPL is started:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:8092
+#: doc/guix.texi:9506
 #, no-wrap
 msgid ""
 "$ guix repl\n"
@@ -15362,772 +18155,927 @@ msgid ""
 "scheme@@(guile-user)> coreutils\n"
 "$1 = #<package coreutils@@8.29 gnu/packages/base.scm:327 3e28300>\n"
 msgstr ""
+"$ guix repl\n"
+"scheme@@(guile-user)> ,use (gnu packages base)\n"
+"scheme@@(guile-user)> coreutils\n"
+"$1 = #<package coreutils@@8.29 gnu/packages/base.scm:327 3e28300>\n"
 
 #. type: Plain text
-#: doc/guix.texi:8099
+#: doc/guix.texi:9513
 msgid "In addition, @command{guix repl} implements a simple machine-readable REPL protocol for use by @code{(guix inferior)}, a facility to interact with @dfn{inferiors}, separate processes running a potentially different revision of Guix."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:8101
+#: doc/guix.texi:9515
 msgid "The available options are as follows:"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:8103 doc/guix.texi:10172
+#: doc/guix.texi:9517 doc/guix.texi:11769
 #, no-wrap
 msgid "--type=@var{type}"
-msgstr ""
+msgstr "--type=@var{type}"
 
 #. type: itemx
-#: doc/guix.texi:8104 doc/guix.texi:10173 doc/guix.texi:26899
+#: doc/guix.texi:9518 doc/guix.texi:11770 doc/guix.texi:30531
 #, no-wrap
 msgid "-t @var{type}"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:8106
+#: doc/guix.texi:9520
 msgid "Start a REPL of the given @var{TYPE}, which can be one of the following:"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:8108
+#: doc/guix.texi:9522
 #, no-wrap
 msgid "guile"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:8110
+#: doc/guix.texi:9524
 msgid "This is default, and it spawns a standard full-featured Guile REPL."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:8110
+#: doc/guix.texi:9524
 #, no-wrap
 msgid "machine"
-msgstr ""
+msgstr "компьютер"
 
 #. type: table
-#: doc/guix.texi:8113
+#: doc/guix.texi:9527
 msgid "Spawn a REPL that uses the machine-readable protocol.  This is the protocol that the @code{(guix inferior)} module speaks."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:8119
+#: doc/guix.texi:9533
 msgid "By default, @command{guix repl} reads from standard input and writes to standard output.  When this option is passed, it will instead listen for connections on @var{endpoint}.  Here are examples of valid options:"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:8121
+#: doc/guix.texi:9535
 #, no-wrap
 msgid "--listen=tcp:37146"
-msgstr ""
+msgstr "--listen=tcp:37146"
 
 #. type: table
-#: doc/guix.texi:8123
+#: doc/guix.texi:9537
 msgid "Accept connections on localhost on port 37146."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:8124
+#: doc/guix.texi:9538
 #, no-wrap
 msgid "--listen=unix:/tmp/socket"
-msgstr ""
+msgstr "--listen=unix:/tmp/socket"
 
 #. type: table
-#: doc/guix.texi:8126
+#: doc/guix.texi:9540
 msgid "Accept connections on the Unix-domain socket @file{/tmp/socket}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:8128 doc/guix.texi:8232 doc/guix.texi:9705 doc/guix.texi:9865
-#: doc/guix.texi:9997 doc/guix.texi:10206
+#: doc/guix.texi:9542 doc/guix.texi:9646 doc/guix.texi:11247
+#: doc/guix.texi:11418 doc/guix.texi:11563 doc/guix.texi:11817
 #, no-wrap
 msgid "--load-path=@var{directory}"
-msgstr ""
+msgstr "--load-path=@var{directory}"
 
 #. type: itemx
-#: doc/guix.texi:8129 doc/guix.texi:8233 doc/guix.texi:9866 doc/guix.texi:9998
-#: doc/guix.texi:10207
+#: doc/guix.texi:9543 doc/guix.texi:9647 doc/guix.texi:11419
+#: doc/guix.texi:11564 doc/guix.texi:11818
 #, no-wrap
 msgid "-L @var{directory}"
-msgstr ""
+msgstr "-L @var{directory}"
 
 #. type: table
-#: doc/guix.texi:8132 doc/guix.texi:8236 doc/guix.texi:9708 doc/guix.texi:9869
-#: doc/guix.texi:10001 doc/guix.texi:10210
+#: doc/guix.texi:9546 doc/guix.texi:9650 doc/guix.texi:11250
+#: doc/guix.texi:11422 doc/guix.texi:11567 doc/guix.texi:11821
 msgid "Add @var{directory} to the front of the package module search path (@pxref{Package Modules})."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:8135
-msgid "This allows users to define their own packages and make them visible to the command-line tool."
+#: doc/guix.texi:9549
+msgid "This allows users to define their own packages and make them visible to the script or REPL."
 msgstr ""
 
 #. type: itemx
-#: doc/guix.texi:8136 doc/guix.texi:8536
+#: doc/guix.texi:9550 doc/guix.texi:10054
 #, no-wrap
 msgid "-q"
-msgstr ""
+msgstr "-q"
 
 #. type: table
-#: doc/guix.texi:8139
+#: doc/guix.texi:9553
 msgid "Inhibit loading of the @file{~/.guile} file.  By default, that configuration file is loaded when spawning a @code{guile} REPL."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:8149
+#: doc/guix.texi:9563
 msgid "This section describes Guix command-line utilities.  Some of them are primarily targeted at developers and users who write new package definitions, while others are more generally useful.  They complement the Scheme programming interface of Guix in a convenient way."
-msgstr ""
+msgstr "В этом разделе описаны утилиты командной строки Guix. Некоторые из них в первую очередь нацелены на разработчиков и пользователей, которые пишут новые определения пакетов, в то время как другие полезны в целом. Они удобно дополняют программный интерфейс Scheme в Guix."
 
 #. type: cindex
-#: doc/guix.texi:8171
+#: doc/guix.texi:9585
 #, no-wrap
 msgid "package building"
-msgstr ""
+msgstr "сборка пакета"
 
 #. type: command{#1}
-#: doc/guix.texi:8172
+#: doc/guix.texi:9586
 #, no-wrap
 msgid "guix build"
-msgstr ""
+msgstr "guix build"
 
 #. type: Plain text
-#: doc/guix.texi:8178
+#: doc/guix.texi:9592
 msgid "The @command{guix build} command builds packages or derivations and their dependencies, and prints the resulting store paths.  Note that it does not modify the user's profile---this is the job of the @command{guix package} command (@pxref{Invoking guix package}).  Thus, it is mainly useful for distribution developers."
-msgstr ""
+msgstr "Команда @command{guix build} собирает пакеты или производные и их зависимости и выводит полученные пути в хранилище (store paths). Обратите внимание, что она не изменяет профиль пользователя---это задача команды @command{guix package} (@pxref{Invoking guix package}). Таким образом, это в основном полезно для разработчиков дистрибутива."
 
 #. type: example
-#: doc/guix.texi:8183
+#: doc/guix.texi:9597
 #, no-wrap
 msgid "guix build @var{options} @var{package-or-derivation}@dots{}\n"
-msgstr ""
+msgstr "guix build @var{options} @var{package-or-derivation}@dots{}\n"
 
 #. type: Plain text
-#: doc/guix.texi:8188
+#: doc/guix.texi:9602
 msgid "As an example, the following command builds the latest versions of Emacs and of Guile, displays their build logs, and finally displays the resulting directories:"
-msgstr ""
+msgstr "В качестве примера следующая команда собирает последние версии Emacs и Guile, отображает их логи и, наконец, отображает полученные директории:"
 
 #. type: example
-#: doc/guix.texi:8191
+#: doc/guix.texi:9605
 #, no-wrap
 msgid "guix build emacs guile\n"
-msgstr ""
+msgstr "guix build emacs guile\n"
 
 #. type: Plain text
-#: doc/guix.texi:8194
+#: doc/guix.texi:9608
 msgid "Similarly, the following command builds all the available packages:"
-msgstr ""
+msgstr "Аналогичным образом следующая команда собирает все доступные пакеты:"
 
 #. type: example
-#: doc/guix.texi:8198
+#: doc/guix.texi:9612
 #, no-wrap
 msgid ""
 "guix build --quiet --keep-going \\\n"
 "  `guix package -A | cut -f1,2 --output-delimiter=@@`\n"
 msgstr ""
+"guix build --quiet --keep-going \\\n"
+"  `guix package -A | cut -f1,2 --output-delimiter=@@`\n"
 
 #. type: Plain text
-#: doc/guix.texi:8206
+#: doc/guix.texi:9620
 msgid "@var{package-or-derivation} may be either the name of a package found in the software distribution such as @code{coreutils} or @code{coreutils@@8.20}, or a derivation such as @file{/gnu/store/@dots{}-coreutils-8.19.drv}.  In the former case, a package with the corresponding name (and optionally version) is searched for among the GNU distribution modules (@pxref{Package Modules})."
-msgstr ""
+msgstr "@var{package-or-derivation} может быть именем пакета, найденного в дистрибутиве программного обеспечения, например @code{coreutils} или @code{coreutils@@8.20}, или производным, например @file{/gnu/store/@dots{}-coreutils-8.19.drv}. В первом случае пакет с соответствующим именем (и, возможно, версией) ищется среди модулей дистрибутива GNU (@pxref{Package Modules})."
 
 #. type: Plain text
-#: doc/guix.texi:8211
-msgid "Alternatively, the @code{--expression} option may be used to specify a Scheme expression that evaluates to a package; this is useful when disambiguating among several same-named packages or package variants is needed."
-msgstr ""
+#: doc/guix.texi:9625
+msgid "Alternatively, the @option{--expression} option may be used to specify a Scheme expression that evaluates to a package; this is useful when disambiguating among several same-named packages or package variants is needed."
+msgstr "В качестве альтернативы можно использовать параметр @option{--expression}, чтобы указать выражение на языке Scheme, оценивающее пакет; это полезно, когда требуется устранение неоднозначности между несколькими пакетами с одинаковыми именами или вариантами пакетов."
 
 #. type: Plain text
-#: doc/guix.texi:8214
+#: doc/guix.texi:9628
 msgid "There may be zero or more @var{options}.  The available options are described in the subsections below."
-msgstr ""
+msgstr "Может быть ноль или больше @var{options}. Доступные параметры описаны в подразделах ниже."
 
 #. type: Plain text
-#: doc/guix.texi:8229
+#: doc/guix.texi:9643
 msgid "A number of options that control the build process are common to @command{guix build} and other commands that can spawn builds, such as @command{guix package} or @command{guix archive}.  These are the following:"
-msgstr ""
+msgstr "Ряд параметров, управляющих процессом сборки, является общим для @command{guix build} и других команд, которые могут порождать сборки, например @command{guix package} или @command{guix archive}. Это следующие:"
 
 #. type: table
-#: doc/guix.texi:8239 doc/guix.texi:9711 doc/guix.texi:9872
-#: doc/guix.texi:10004 doc/guix.texi:10213
+#: doc/guix.texi:9653 doc/guix.texi:11253 doc/guix.texi:11425
+#: doc/guix.texi:11570 doc/guix.texi:11824
 msgid "This allows users to define their own packages and make them visible to the command-line tools."
-msgstr ""
+msgstr "Это позволяет пользователям определять свои собственные пакеты и делать их видимыми для инструментов командной строки."
 
 #. type: item
-#: doc/guix.texi:8240
+#: doc/guix.texi:9654
 #, no-wrap
 msgid "--keep-failed"
-msgstr ""
+msgstr "--keep-failed"
 
 #. type: itemx
-#: doc/guix.texi:8241
+#: doc/guix.texi:9655
 #, no-wrap
 msgid "-K"
-msgstr ""
+msgstr "-K"
 
 #. type: table
-#: doc/guix.texi:8247
+#: doc/guix.texi:9661
 msgid "Keep the build tree of failed builds.  Thus, if a build fails, its build tree is kept under @file{/tmp}, in a directory whose name is shown at the end of the build log.  This is useful when debugging build issues.  @xref{Debugging Build Failures}, for tips and tricks on how to debug build issues."
-msgstr ""
+msgstr "Сохраните дерево сборки неудачных попыток сборки. Таким образом, в случае сбоя сборки ее дерево сборки сохраняется в @file{/tmp}, в каталоге, имя которого отображается в конце журнала сборки. Это полезно при отладке проблем сборки. @xref{Debugging Build Failures}, советы и рекомендации по отладке проблем сборки."
 
 #. type: table
-#: doc/guix.texi:8251
-msgid "This option implies @option{--no-offload}, and it has no effect when connecting to a remote daemon with a @code{guix://} URI (@pxref{The Store, the @code{GUIX_DAEMON_SOCKET} variable})."
-msgstr ""
+#: doc/guix.texi:9665
+msgid "This option implies @option{--no-offload}, and it has no effect when connecting to a remote daemon with a @code{guix://} URI (@pxref{The Store, the @env{GUIX_DAEMON_SOCKET} variable})."
+msgstr "Этот параметр предполагает @option{--no-offload} и не действует при подключении к удалённому демону с URI @code{guix://} (@pxref{The Store, the @env{GUIX_DAEMON_SOCKET}}."
 
 #. type: item
-#: doc/guix.texi:8252
+#: doc/guix.texi:9666
 #, no-wrap
 msgid "--keep-going"
-msgstr ""
+msgstr "--keep-going"
 
 #. type: itemx
-#: doc/guix.texi:8253
+#: doc/guix.texi:9667
 #, no-wrap
 msgid "-k"
-msgstr ""
+msgstr "-k"
 
 #. type: table
-#: doc/guix.texi:8256
+#: doc/guix.texi:9670
 msgid "Keep going when some of the derivations fail to build; return only once all the builds have either completed or failed."
-msgstr ""
+msgstr "Продолжайте, когда некоторые из производных не удается построить; возвращайтесь только после того, как все сборки будут завершены или не пройдены."
 
 #. type: table
-#: doc/guix.texi:8259
+#: doc/guix.texi:9673
 msgid "The default behavior is to stop as soon as one of the specified derivations has failed."
-msgstr ""
+msgstr "Поведение по умолчанию---остановка, как только одна из указанных производных не удалась."
 
 #. type: table
-#: doc/guix.texi:8263
+#: doc/guix.texi:9677
 msgid "Do not build the derivations."
-msgstr ""
+msgstr "Не собирайте производные."
 
 #. type: anchor{#1}
-#: doc/guix.texi:8265
+#: doc/guix.texi:9679
 msgid "fallback-option"
-msgstr ""
+msgstr "fallback-option"
 
 #. type: item
-#: doc/guix.texi:8265
+#: doc/guix.texi:9679
 #, no-wrap
 msgid "--fallback"
-msgstr ""
+msgstr "--fallback"
 
 #. type: table
-#: doc/guix.texi:8268
+#: doc/guix.texi:9682
 msgid "When substituting a pre-built binary fails, fall back to building packages locally (@pxref{Substitution Failure})."
-msgstr ""
+msgstr "Если замена предварительно созданного двоичного файла не удалась, процесс возвращается к сборке пакетов локально (@pxref{Substitution Failure})."
 
 #. type: anchor{#1}
-#: doc/guix.texi:8274
+#: doc/guix.texi:9688
 msgid "client-substitute-urls"
-msgstr ""
+msgstr "client-substitute-urls"
 
 #. type: table
-#: doc/guix.texi:8274
+#: doc/guix.texi:9688
 msgid "Consider @var{urls} the whitespace-separated list of substitute source URLs, overriding the default list of URLs of @command{guix-daemon} (@pxref{daemon-substitute-urls,, @command{guix-daemon} URLs})."
-msgstr ""
+msgstr "Рассмотрим @var{urls} разделенный пробелами список URL-адресов источников замещений, заменяющий список URL-адресов по умолчанию @command{guix-daemon} (@pxref{daemon-substitute-urls,, @command{guix-daemon} URLs}).\""
 
 #. type: table
-#: doc/guix.texi:8278
+#: doc/guix.texi:9692
 msgid "This means that substitutes may be downloaded from @var{urls}, provided they are signed by a key authorized by the system administrator (@pxref{Substitutes})."
-msgstr ""
+msgstr "Это означает, что заменители могут быть загружены с @var{urls}, при условии, что они подписаны ключом, авторизованным системным администратором (@pxref{Substitutes})."
 
 #. type: table
-#: doc/guix.texi:8281
+#: doc/guix.texi:9695
 msgid "When @var{urls} is the empty string, substitutes are effectively disabled."
-msgstr ""
+msgstr "Когда @var{urls} является пустой строкой---замены фактически отключены."
 
 #. type: item
-#: doc/guix.texi:8287
+#: doc/guix.texi:9701
 #, no-wrap
 msgid "--no-grafts"
-msgstr ""
+msgstr "--no-grafts"
 
 #. type: table
-#: doc/guix.texi:8291
+#: doc/guix.texi:9705
 msgid "Do not ``graft'' packages.  In practice, this means that package updates available as grafts are not applied.  @xref{Security Updates}, for more information on grafts."
-msgstr ""
+msgstr "Не ``прививайте'' (graft) пакеты. На практике это означает, что обновления пакетов, доступные в виде прививок, не применяются. Ознакомьтесь с @xref{Security Updates}, чтобы узнать больше о прививках (grafts)."
 
 #. type: item
-#: doc/guix.texi:8292
+#: doc/guix.texi:9706
 #, no-wrap
 msgid "--rounds=@var{n}"
-msgstr ""
+msgstr "--rounds=@var{n}"
 
 #. type: table
-#: doc/guix.texi:8295
+#: doc/guix.texi:9709
 msgid "Build each derivation @var{n} times in a row, and raise an error if consecutive build results are not bit-for-bit identical."
-msgstr ""
+msgstr "Соберите каждое производное @var{n} раз подряд и вызовите появление ошибки, если последовательные результаты построения не будут побитно идентичны."
 
 #. type: table
-#: doc/guix.texi:8300
+#: doc/guix.texi:9714
 msgid "This is a useful way to detect non-deterministic builds processes.  Non-deterministic build processes are a problem because they make it practically impossible for users to @emph{verify} whether third-party binaries are genuine.  @xref{Invoking guix challenge}, for more."
-msgstr ""
+msgstr "Это полезный способ обнаружения недетерминированных процессов сборки. Недетерминированные процессы сборки представляют собой проблему, потому что они делают практически невозможным для пользователей @emph{verify} подлинность сторонних двоичных файлов. Обратитесь к @xref{Invoking guix challenge}, чтобы узнать больше."
 
 #. type: table
-#: doc/guix.texi:8306
-msgid "Note that, currently, the differing build results are not kept around, so you will have to manually investigate in case of an error---e.g., by stashing one of the build results with @code{guix archive --export} (@pxref{Invoking guix archive}), then rebuilding, and finally comparing the two results."
-msgstr ""
-
-#. type: table
-#: doc/guix.texi:8318
-msgid "By default, the daemon's setting is honored (@pxref{Invoking guix-daemon, @code{--max-silent-time}})."
-msgstr ""
+#: doc/guix.texi:9730
+msgid "By default, the daemon's setting is honored (@pxref{Invoking guix-daemon, @option{--max-silent-time}})."
+msgstr "По умолчанию настройки демона соблюдаются (@pxref{Invoking guix-daemon, @option{--max-silent-time}})."
 
 #. type: table
-#: doc/guix.texi:8325
-msgid "By default, the daemon's setting is honored (@pxref{Invoking guix-daemon, @code{--timeout}})."
-msgstr ""
+#: doc/guix.texi:9737
+#, fuzzy
+#| msgid "This prints nothing unless the daemon was started with @option{--cache-failures} (@pxref{Invoking guix-daemon, @option{--cache-failures}})."
+msgid "By default, the daemon's setting is honored (@pxref{Invoking guix-daemon, @option{--timeout}})."
+msgstr "Это ничего не выводит, если демон не был запущен с опцией @option{--cache-failures} (@pxref{Invoking guix-daemon, @option{--cache-failures}})."
 
 #. type: cindex
-#: doc/guix.texi:8328
+#: doc/guix.texi:9740
 #, no-wrap
 msgid "verbosity, of the command-line tools"
-msgstr ""
+msgstr "многословие инструментов командной строки"
 
 #. type: cindex
-#: doc/guix.texi:8329
+#: doc/guix.texi:9741
 #, no-wrap
 msgid "build logs, verbosity"
-msgstr ""
+msgstr "журналы сборки, многословие"
 
 #. type: item
-#: doc/guix.texi:8330
+#: doc/guix.texi:9742
 #, no-wrap
 msgid "-v @var{level}"
-msgstr ""
+msgstr "-v @var{level}"
 
 #. type: itemx
-#: doc/guix.texi:8331
+#: doc/guix.texi:9743
 #, no-wrap
 msgid "--verbosity=@var{level}"
-msgstr ""
+msgstr "--verbosity=@var{level}"
 
 #. type: table
-#: doc/guix.texi:8335
+#: doc/guix.texi:9747
 msgid "Use the given verbosity @var{level}, an integer.  Choosing 0 means that no output is produced, 1 is for quiet output, and 2 shows all the build log output on standard error."
-msgstr ""
+msgstr "Используйте заданную степень многословия @var{level} (целое число). Выбор 0 означает, что вывод не производится, 1 - для тихого вывода, а 2 показывает весь вывод журнала сборки при стандартной ошибке."
 
 #. type: table
-#: doc/guix.texi:8340
+#: doc/guix.texi:9752
 msgid "Allow the use of up to @var{n} CPU cores for the build.  The special value @code{0} means to use as many CPU cores as available."
-msgstr ""
+msgstr "Разрешить использование до @var{n} ядер ЦП для сборки. Специальное значение @code{0} означает использование максимально доступного количества ядер ЦП."
 
 #. type: table
-#: doc/guix.texi:8346
-msgid "Allow at most @var{n} build jobs in parallel.  @xref{Invoking guix-daemon, @code{--max-jobs}}, for details about this option and the equivalent @command{guix-daemon} option."
-msgstr ""
+#: doc/guix.texi:9758
+msgid "Allow at most @var{n} build jobs in parallel.  @xref{Invoking guix-daemon, @option{--max-jobs}}, for details about this option and the equivalent @command{guix-daemon} option."
+msgstr "Разрешить не более @var{n} сборок параллельно. Обратитесь к @xref{Invoking guix-daemon, @option{--max-jobs}} для получения подробной информации об этой опции и аналогичной опции @command{guix-daemon}."
 
 #. type: item
-#: doc/guix.texi:8347
+#: doc/guix.texi:9759
 #, no-wrap
 msgid "--debug=@var{level}"
-msgstr ""
+msgstr "--debug=@var{level}"
 
 #. type: table
-#: doc/guix.texi:8351
+#: doc/guix.texi:9763
 msgid "Produce debugging output coming from the build daemon.  @var{level} must be an integer between 0 and 5; higher means more verbose output.  Setting a level of 4 or more may be helpful when debugging setup issues with the build daemon."
-msgstr ""
+msgstr "Создавать отладочные данные, поступающие от демона сборки. @var{level} должен быть целым числом от 0 до 5; чем выше, тем подробнее вывод. Уровнь 4 или выше может быть полезен при отладке проблемы с установкой демона сборки."
 
 #. type: Plain text
-#: doc/guix.texi:8358
+#: doc/guix.texi:9770
 msgid "Behind the scenes, @command{guix build} is essentially an interface to the @code{package-derivation} procedure of the @code{(guix packages)} module, and to the @code{build-derivations} procedure of the @code{(guix derivations)} module."
-msgstr ""
+msgstr "За кулисами @command{guix build}, по сути, является интерфейсом к процедуре @code{package-diveration} модуля @code{(guix packages)} и к процедуре @code{build-diverations} модуля @code{(guix derivations)} модуль."
 
 #. type: Plain text
-#: doc/guix.texi:8362
-msgid "In addition to options explicitly passed on the command line, @command{guix build} and other @command{guix} commands that support building honor the @code{GUIX_BUILD_OPTIONS} environment variable."
-msgstr ""
+#: doc/guix.texi:9774
+msgid "In addition to options explicitly passed on the command line, @command{guix build} and other @command{guix} commands that support building honor the @env{GUIX_BUILD_OPTIONS} environment variable."
+msgstr "Помимо параметров, явно переданных в командной строке, @command{guix build} и другие команды @command{guix}, поддерживающие сборку, учитывают переменную среды @env{GUIX_BUILD_OPTIONS}."
 
 #. type: defvr
-#: doc/guix.texi:8363
+#: doc/guix.texi:9775
 #, no-wrap
 msgid "{Environment Variable} GUIX_BUILD_OPTIONS"
-msgstr ""
+msgstr "{Environment Variable} GUIX_BUILD_OPTIONS"
 
 #. type: defvr
-#: doc/guix.texi:8368
+#: doc/guix.texi:9780
 msgid "Users can define this variable to a list of command line options that will automatically be used by @command{guix build} and other @command{guix} commands that can perform builds, as in the example below:"
-msgstr ""
+msgstr "Пользователи могут определить эту переменную для списка параметров командной строки, которые будут автоматически использоваться @command{guix build} и другими командами @command{guix}, которые могут выполнять сборки, как в примере ниже:"
 
 #. type: example
-#: doc/guix.texi:8371
+#: doc/guix.texi:9783
 #, no-wrap
 msgid "$ export GUIX_BUILD_OPTIONS=\"--no-substitutes -c 2 -L /foo/bar\"\n"
-msgstr ""
+msgstr "$ export GUIX_BUILD_OPTIONS=\"--no-substitutes -c 2 -L /foo/bar\"\n"
 
 #. type: defvr
-#: doc/guix.texi:8375
+#: doc/guix.texi:9787
 msgid "These options are parsed independently, and the result is appended to the parsed command-line options."
-msgstr ""
+msgstr "Эти параметры анализируются независимо, а результат добавляется к проанализированным параметрам командной строки."
 
 #. type: cindex
-#: doc/guix.texi:8381
+#: doc/guix.texi:9793
 #, no-wrap
 msgid "package variants"
-msgstr ""
+msgstr "варианты пакета"
 
 #. type: Plain text
-#: doc/guix.texi:8389
+#: doc/guix.texi:9801
 msgid "Another set of command-line options supported by @command{guix build} and also @command{guix package} are @dfn{package transformation options}.  These are options that make it possible to define @dfn{package variants}---for instance, packages built from different source code.  This is a convenient way to create customized packages on the fly without having to type in the definitions of package variants (@pxref{Defining Packages})."
-msgstr ""
+msgstr "Другой набор параметров командной строки, поддерживаемых @command{guix build} и @command{guix package} это @dfn{package transformation options}. Это параметры, которые позволяют определять @dfn{package variants}---например, пакеты, созданные из другого исходного кода. Это удобный способ создавать индивидуальные пакеты на лету без необходимости вводить определения вариантов пакета (@pxref{Defining Packages})."
+
+#. type: Plain text
+#: doc/guix.texi:9805
+msgid "Package transformation options are preserved across upgrades: @command{guix upgrade} attempts to apply transformation options initially used when creating the profile to the upgraded packages."
+msgstr "Параметры преобразования пакета сохраняются при обновлении: @command{guix upgrade} пытается применить параметры преобразования, которые изначально использовались при создании профиля, к обновленным пакетам."
+
+#. type: Plain text
+#: doc/guix.texi:9810
+msgid "The available options are listed below.  Most commands support them and also support a @option{--help-transform} option that lists all the available options and a synopsis (these options are not shown in the @option{--help} output for brevity)."
+msgstr "Доступные варианты перечислены ниже. Большинство команд поддерживают их, а также поддерживают параметр @option{--help-transform}, в котором перечислены все доступные параметры и их крткое описание (эти параметры не показаны в выводе @option{--help} для краткости)."
 
 #. type: item
-#: doc/guix.texi:8392
+#: doc/guix.texi:9813
 #, no-wrap
 msgid "--with-source=@var{source}"
-msgstr ""
+msgstr "--with-source=@var{source}"
 
 #. type: itemx
-#: doc/guix.texi:8393
+#: doc/guix.texi:9814
 #, no-wrap
 msgid "--with-source=@var{package}=@var{source}"
-msgstr ""
+msgstr "--with-source=@var{package}=@var{source}"
 
 #. type: itemx
-#: doc/guix.texi:8394
+#: doc/guix.texi:9815
 #, no-wrap
 msgid "--with-source=@var{package}@@@var{version}=@var{source}"
-msgstr ""
+msgstr "--with-source=@var{package}@@@var{version}=@var{source}"
 
 #. type: table
-#: doc/guix.texi:8399
+#: doc/guix.texi:9820
 msgid "Use @var{source} as the source of @var{package}, and @var{version} as its version number.  @var{source} must be a file name or a URL, as for @command{guix download} (@pxref{Invoking guix download})."
-msgstr ""
+msgstr "Используйте @var{source} в качестве источника @var{package} и @var{version} в качестве номера версии. @var{source} должен быть именем файла или URL-адресом, как для @command{guix download} (@pxref{Invoking guix download})."
 
 #. type: table
-#: doc/guix.texi:8405
+#: doc/guix.texi:9826
 msgid "When @var{package} is omitted, it is taken to be the package name specified on the command line that matches the base of @var{source}---e.g., if @var{source} is @code{/src/guile-2.0.10.tar.gz}, the corresponding package is @code{guile}."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:8408
+#: doc/guix.texi:9829
 msgid "Likewise, when @var{version} is omitted, the version string is inferred from @var{source}; in the previous example, it is @code{2.0.10}."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:8413
+#: doc/guix.texi:9834
 msgid "This option allows users to try out versions of packages other than the one provided by the distribution.  The example below downloads @file{ed-1.7.tar.gz} from a GNU mirror and uses that as the source for the @code{ed} package:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:8416
+#: doc/guix.texi:9837
 #, no-wrap
 msgid "guix build ed --with-source=mirror://gnu/ed/ed-1.7.tar.gz\n"
-msgstr ""
+msgstr "guix build ed --with-source=mirror://gnu/ed/ed-1.7.tar.gz\n"
 
 #. type: table
-#: doc/guix.texi:8420
-msgid "As a developer, @code{--with-source} makes it easy to test release candidates:"
+#: doc/guix.texi:9841
+msgid "As a developer, @option{--with-source} makes it easy to test release candidates:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:8423
+#: doc/guix.texi:9844
 #, no-wrap
 msgid "guix build guile --with-source=../guile-2.0.9.219-e1bb7.tar.xz\n"
-msgstr ""
+msgstr "guix build guile --with-source=../guile-2.0.9.219-e1bb7.tar.xz\n"
 
 #. type: table
-#: doc/guix.texi:8426
+#: doc/guix.texi:9847
 msgid "@dots{} or to build from a checkout in a pristine environment:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:8430
+#: doc/guix.texi:9851
 #, no-wrap
 msgid ""
 "$ git clone git://git.sv.gnu.org/guix.git\n"
 "$ guix build guix --with-source=guix@@1.0=./guix\n"
 msgstr ""
+"$ git clone git://git.sv.gnu.org/guix.git\n"
+"$ guix build guix --with-source=guix@@1.0=./guix\n"
 
 #. type: item
-#: doc/guix.texi:8432
+#: doc/guix.texi:9853
 #, no-wrap
 msgid "--with-input=@var{package}=@var{replacement}"
-msgstr ""
+msgstr "--with-input=@var{package}=@var{replacement}"
 
 #. type: table
-#: doc/guix.texi:8437
+#: doc/guix.texi:9858
 msgid "Replace dependency on @var{package} by a dependency on @var{replacement}.  @var{package} must be a package name, and @var{replacement} must be a package specification such as @code{guile} or @code{guile@@1.8}."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:8441
+#: doc/guix.texi:9862
 msgid "For instance, the following command builds Guix, but replaces its dependency on the current stable version of Guile with a dependency on the legacy version of Guile, @code{guile@@2.0}:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:8444
+#: doc/guix.texi:9865
 #, no-wrap
 msgid "guix build --with-input=guile=guile@@2.0 guix\n"
-msgstr ""
+msgstr "guix build --with-input=guile=guile@@2.0 guix\n"
 
 #. type: table
-#: doc/guix.texi:8449
+#: doc/guix.texi:9870
 msgid "This is a recursive, deep replacement.  So in this example, both @code{guix} and its dependency @code{guile-json} (which also depends on @code{guile}) get rebuilt against @code{guile@@2.0}."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:8452
+#: doc/guix.texi:9873
 msgid "This is implemented using the @code{package-input-rewriting} Scheme procedure (@pxref{Defining Packages, @code{package-input-rewriting}})."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:8453
+#: doc/guix.texi:9874
 #, no-wrap
 msgid "--with-graft=@var{package}=@var{replacement}"
-msgstr ""
+msgstr "--with-graft=@var{package}=@var{replacement}"
 
 #. type: table
-#: doc/guix.texi:8459
-msgid "This is similar to @code{--with-input} but with an important difference: instead of rebuilding the whole dependency chain, @var{replacement} is built and then @dfn{grafted} onto the binaries that were initially referring to @var{package}.  @xref{Security Updates}, for more information on grafts."
+#: doc/guix.texi:9880
+msgid "This is similar to @option{--with-input} but with an important difference: instead of rebuilding the whole dependency chain, @var{replacement} is built and then @dfn{grafted} onto the binaries that were initially referring to @var{package}.  @xref{Security Updates}, for more information on grafts."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:8463
+#: doc/guix.texi:9884
 msgid "For example, the command below grafts version 3.5.4 of GnuTLS onto Wget and all its dependencies, replacing references to the version of GnuTLS they currently refer to:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:8466
+#: doc/guix.texi:9887
 #, no-wrap
 msgid "guix build --with-graft=gnutls=gnutls@@3.5.4 wget\n"
-msgstr ""
+msgstr "guix build --with-graft=gnutls=gnutls@@3.5.4 wget\n"
 
 #. type: table
-#: doc/guix.texi:8475
+#: doc/guix.texi:9896
 msgid "This has the advantage of being much faster than rebuilding everything.  But there is a caveat: it works if and only if @var{package} and @var{replacement} are strictly compatible---for example, if they provide a library, the application binary interface (ABI) of those libraries must be compatible.  If @var{replacement} is somehow incompatible with @var{package}, then the resulting package may be unusable.  Use with care!"
 msgstr ""
 
+#. type: cindex
+#: doc/guix.texi:9897 doc/guix.texi:31803
+#, fuzzy, no-wrap
+#| msgid "debugging files"
+msgid "debugging info, rebuilding"
+msgstr "отладка файлов"
+
 #. type: item
-#: doc/guix.texi:8476
+#: doc/guix.texi:9898
+#, fuzzy, no-wrap
+msgid "--with-debug-info=@var{package}"
+msgstr "--without-tests=@var{package}"
+
+#. type: table
+#: doc/guix.texi:9903
+msgid "Build @var{package} in a way that preserves its debugging info and graft it onto packages that depend on it.  This is useful if @var{package} does not already provide debugging info as a @code{debug} output (@pxref{Installing Debugging Files})."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:9909
+msgid "For example, suppose you're experiencing a crash in Inkscape and would like to see what's up in GLib, a library deep down in Inkscape's dependency graph.  GLib lacks a @code{debug} output, so debugging is tough.  Fortunately, you rebuild GLib with debugging info and tack it on Inkscape:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:9912 doc/guix.texi:31834
 #, no-wrap
-msgid "--with-git-url=@var{package}=@var{url}"
+msgid "guix install inkscape --with-debug-info=glib\n"
 msgstr ""
 
+#. type: table
+#: doc/guix.texi:9916
+msgid "Only GLib needs to be recompiled so this takes a reasonable amount of time.  @xref{Installing Debugging Files}, for more info."
+msgstr ""
+
+#. type: quotation
+#: doc/guix.texi:9922
+msgid "Under the hood, this option works by passing the @samp{#:strip-binaries? #f} to the build system of the package of interest (@pxref{Build Systems}).  Most build systems support that option but some do not.  In that case, an error is raised."
+msgstr ""
+
+#. type: quotation
+#: doc/guix.texi:9926
+msgid "Likewise, if a C/C++ package is built without @code{-g} (which is rarely the case), debugging info will remain unavailable even when @code{#:strip-binaries?} is false."
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:9928
+#, no-wrap
+msgid "tool chain, changing the build tool chain of a package"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:9929
+#, fuzzy, no-wrap
+#| msgid "--with-commit=@var{package}=@var{commit}"
+msgid "--with-c-toolchain=@var{package}=@var{toolchain}"
+msgstr "--with-commit=@var{package}=@var{commit}"
+
+#. type: table
+#: doc/guix.texi:9933
+msgid "This option changes the compilation of @var{package} and everything that depends on it so that they get built with @var{toolchain} instead of the default GNU tool chain for C/C++."
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:9940
+#, no-wrap
+msgid ""
+"guix build octave-cli \\\n"
+"  --with-c-toolchain=fftw=gcc-toolchain@@10 \\\n"
+"  --with-c-toolchain=fftwf=gcc-toolchain@@10\n"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:9947
+msgid "The command above builds a variant of the @code{fftw} and @code{fftwf} packages using version 10 of @code{gcc-toolchain} instead of the default tool chain, and then builds a variant of the GNU@tie{}Octave command-line interface using them.  GNU@tie{}Octave itself is also built with @code{gcc-toolchain@@10}."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:9951
+msgid "This other example builds the Hardware Locality (@code{hwloc}) library and its dependents up to @code{intel-mpi-benchmarks} with the Clang C compiler:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:9955
+#, no-wrap
+msgid ""
+"guix build --with-c-toolchain=hwloc=clang-toolchain \\\n"
+"           intel-mpi-benchmarks\n"
+msgstr ""
+
+#. type: quotation
+#: doc/guix.texi:9964
+msgid "There can be application binary interface (ABI) incompatibilities among tool chains.  This is particularly true of the C++ standard library and run-time support libraries such as that of OpenMP.  By rebuilding all dependents with the same tool chain, @option{--with-c-toolchain} minimizes the risks of incompatibility but cannot entirely eliminate them.  Choose @var{package} wisely."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:9966
+#, no-wrap
+msgid "--with-git-url=@var{package}=@var{url}"
+msgstr "--with-git-url=@var{package}=@var{url}"
+
 #. type: cindex
-#: doc/guix.texi:8477
+#: doc/guix.texi:9967
 #, no-wrap
 msgid "Git, using the latest commit"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:8478
+#: doc/guix.texi:9968
 #, no-wrap
 msgid "latest commit, building"
-msgstr ""
+msgstr "последний коммит, сборка"
 
 #. type: table
-#: doc/guix.texi:8482
+#: doc/guix.texi:9972
 msgid "Build @var{package} from the latest commit of the @code{master} branch of the Git repository at @var{url}.  Git sub-modules of the repository are fetched, recursively."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:8485
+#: doc/guix.texi:9975
 msgid "For example, the following command builds the NumPy Python library against the latest commit of the master branch of Python itself:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:8489
+#: doc/guix.texi:9979
 #, no-wrap
 msgid ""
 "guix build python-numpy \\\n"
 "  --with-git-url=python=https://github.com/python/cpython\n"
 msgstr ""
+"guix build python-numpy \\\n"
+"  --with-git-url=python=https://github.com/python/cpython\n"
 
 #. type: table
-#: doc/guix.texi:8493
-msgid "This option can also be combined with @code{--with-branch} or @code{--with-commit} (see below)."
+#: doc/guix.texi:9983
+msgid "This option can also be combined with @option{--with-branch} or @option{--with-commit} (see below)."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:8494 doc/guix.texi:22466
+#: doc/guix.texi:9984 doc/guix.texi:24814
 #, no-wrap
 msgid "continuous integration"
-msgstr ""
+msgstr "непрерывная интеграция"
 
 #. type: table
-#: doc/guix.texi:8500
+#: doc/guix.texi:9990
 msgid "Obviously, since it uses the latest commit of the given branch, the result of such a command varies over time.  Nevertheless it is a convenient way to rebuild entire software stacks against the latest commit of one or more packages.  This is particularly useful in the context of continuous integration (CI)."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:8504
+#: doc/guix.texi:9994
 msgid "Checkouts are kept in a cache under @file{~/.cache/guix/checkouts} to speed up consecutive accesses to the same repository.  You may want to clean it up once in a while to save disk space."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:8505
+#: doc/guix.texi:9995
 #, no-wrap
 msgid "--with-branch=@var{package}=@var{branch}"
-msgstr ""
+msgstr "--with-branch=@var{package}=@var{branch}"
 
 #. type: table
-#: doc/guix.texi:8511
-msgid "Build @var{package} from the latest commit of @var{branch}.  If the @code{source} field of @var{package} is an origin with the @code{git-fetch} method (@pxref{origin Reference}) or a @code{git-checkout} object, the repository URL is taken from that @code{source}.  Otherwise you have to use @code{--with-git-url} to specify the URL of the Git repository."
+#: doc/guix.texi:10001
+msgid "Build @var{package} from the latest commit of @var{branch}.  If the @code{source} field of @var{package} is an origin with the @code{git-fetch} method (@pxref{origin Reference}) or a @code{git-checkout} object, the repository URL is taken from that @code{source}.  Otherwise you have to use @option{--with-git-url} to specify the URL of the Git repository."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:8516
+#: doc/guix.texi:10006
 msgid "For instance, the following command builds @code{guile-sqlite3} from the latest commit of its @code{master} branch, and then builds @code{guix} (which depends on it) and @code{cuirass} (which depends on @code{guix}) against this specific @code{guile-sqlite3} build:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:8519
+#: doc/guix.texi:10009
 #, no-wrap
 msgid "guix build --with-branch=guile-sqlite3=master cuirass\n"
-msgstr ""
+msgstr "guix build --with-branch=guile-sqlite3=master cuirass\n"
 
 #. type: item
-#: doc/guix.texi:8521
+#: doc/guix.texi:10011
 #, no-wrap
 msgid "--with-commit=@var{package}=@var{commit}"
+msgstr "--with-commit=@var{package}=@var{commit}"
+
+#. type: table
+#: doc/guix.texi:10015
+msgid "This is similar to @option{--with-branch}, except that it builds from @var{commit} rather than the tip of a branch.  @var{commit} must be a valid Git commit SHA1 identifier or a tag."
 msgstr ""
 
+#. type: cindex
+#: doc/guix.texi:10016
+#, fuzzy, no-wrap
+#| msgid "test suite"
+msgid "test suite, skipping"
+msgstr "набор тестов"
+
+#. type: item
+#: doc/guix.texi:10017
+#, fuzzy, no-wrap
+msgid "--without-tests=@var{package}"
+msgstr "--without-tests=@var{package}"
+
 #. type: table
-#: doc/guix.texi:8525
-msgid "This is similar to @code{--with-branch}, except that it builds from @var{commit} rather than the tip of a branch.  @var{commit} must be a valid Git commit SHA1 identifier or a tag."
+#: doc/guix.texi:10023
+msgid "Build @var{package} without running its tests.  This can be useful in situations where you want to skip the lengthy test suite of a intermediate package, or if a package's test suite fails in a non-deterministic fashion.  It should be used with care because running the test suite is a good way to ensure a package is working as intended."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:10027
+msgid "Turning off tests leads to a different store item.  Consequently, when using this option, anything that depends on @var{package} must be rebuilt, as in this example:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:10030
+#, no-wrap
+msgid "guix install --without-tests=python python-notebook\n"
+msgstr "guix install --without-tests=python python-notebook\n"
+
+#. type: table
+#: doc/guix.texi:10036
+msgid "The command above installs @code{python-notebook} on top of @code{python} built without running its test suite.  To do so, it also rebuilds everything that depends on @code{python}, including @code{python-notebook} itself."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:10042
+msgid "Internally, @option{--without-tests} relies on changing the @code{#:tests?} option of a package's @code{check} phase (@pxref{Build Systems}).  Note that some packages use a customized @code{check} phase that does not respect a @code{#:tests? #f} setting.  Therefore, @option{--without-tests} has no effect on these packages."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:8532
+#: doc/guix.texi:10050
 msgid "The command-line options presented below are specific to @command{guix build}."
-msgstr ""
+msgstr "Параметры командной строки, представленные ниже, относятся к @command{guix build}."
 
 #. type: item
-#: doc/guix.texi:8535
+#: doc/guix.texi:10053
 #, no-wrap
 msgid "--quiet"
-msgstr ""
+msgstr "--quiet"
 
 #. type: table
-#: doc/guix.texi:8540
-msgid "Build quietly, without displaying the build log; this is equivalent to @code{--verbosity=0}.  Upon completion, the build log is kept in @file{/var} (or similar) and can always be retrieved using the @option{--log-file} option."
+#: doc/guix.texi:10058
+msgid "Build quietly, without displaying the build log; this is equivalent to @option{--verbosity=0}.  Upon completion, the build log is kept in @file{/var} (or similar) and can always be retrieved using the @option{--log-file} option."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:8541
+#: doc/guix.texi:10059
 #, no-wrap
 msgid "--file=@var{file}"
-msgstr ""
+msgstr "--file=@var{file}"
 
 #. type: table
-#: doc/guix.texi:8545
+#: doc/guix.texi:10063
 msgid "Build the package, derivation, or other file-like object that the code within @var{file} evaluates to (@pxref{G-Expressions, file-like objects})."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:8548
+#: doc/guix.texi:10066
 msgid "As an example, @var{file} might contain a package definition like this (@pxref{Defining Packages}):"
 msgstr ""
 
+#. type: table
+#: doc/guix.texi:10075
+msgid "The @var{file} may also contain a JSON representation of one or more package definitions.  Running @code{guix build -f} on @file{hello.json} with the following contents would result in building the packages @code{myhello} and @code{greeter}:"
+msgstr ""
+
 #. type: item
-#: doc/guix.texi:8553
+#: doc/guix.texi:10080
 #, fuzzy, no-wrap
 #| msgid "--manifest=@var{file}"
 msgid "--manifest=@var{manifest}"
 msgstr "--manifest=@var{file}"
 
 #. type: itemx
-#: doc/guix.texi:8554
+#: doc/guix.texi:10081
 #, fuzzy, no-wrap
 #| msgid "-m @var{file}"
 msgid "-m @var{manifest}"
 msgstr "-m @var{file}"
 
 #. type: table
-#: doc/guix.texi:8557
+#: doc/guix.texi:10084
 msgid "Build all packages listed in the given @var{manifest} (@pxref{profile-manifest, @option{--manifest}})."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:8561
+#: doc/guix.texi:10088
 msgid "Build the package or derivation @var{expr} evaluates to."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:8565
+#: doc/guix.texi:10092
 msgid "For example, @var{expr} may be @code{(@@ (gnu packages guile)  guile-1.8)}, which unambiguously designates this specific variant of version 1.8 of Guile."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:8569
+#: doc/guix.texi:10096
 msgid "Alternatively, @var{expr} may be a G-expression, in which case it is used as a build program passed to @code{gexp->derivation} (@pxref{G-Expressions})."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:8573
+#: doc/guix.texi:10100
 msgid "Lastly, @var{expr} may refer to a zero-argument monadic procedure (@pxref{The Store Monad}).  The procedure must return a derivation as a monadic value, which is then passed through @code{run-with-store}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:8574
+#: doc/guix.texi:10101
 #, no-wrap
 msgid "--source"
 msgstr ""
 
 #. type: itemx
-#: doc/guix.texi:8575
+#: doc/guix.texi:10102
 #, no-wrap
 msgid "-S"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:8578
+#: doc/guix.texi:10105
 msgid "Build the source derivations of the packages, rather than the packages themselves."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:8582
+#: doc/guix.texi:10109
 msgid "For instance, @code{guix build -S gcc} returns something like @file{/gnu/store/@dots{}-gcc-4.7.2.tar.bz2}, which is the GCC source tarball."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:8586
+#: doc/guix.texi:10113
 msgid "The returned source tarball is the result of applying any patches and code snippets specified in the package @code{origin} (@pxref{Defining Packages})."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:8591
+#: doc/guix.texi:10118
 msgid "Note that @command{guix build -S} compiles the sources only of the specified packages.  They do not include the sources of statically linked dependencies and by themselves are insufficient for reproducing the packages."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:8592
+#: doc/guix.texi:10119
 #, no-wrap
 msgid "--sources"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:8599
-msgid "Fetch and return the source of @var{package-or-derivation} and all their dependencies, recursively.  This is a handy way to obtain a local copy of all the source code needed to build @var{packages}, allowing you to eventually build them even without network access.  It is an extension of the @code{--source} option and can accept one of the following optional argument values:"
+#: doc/guix.texi:10126
+msgid "Fetch and return the source of @var{package-or-derivation} and all their dependencies, recursively.  This is a handy way to obtain a local copy of all the source code needed to build @var{packages}, allowing you to eventually build them even without network access.  It is an extension of the @option{--source} option and can accept one of the following optional argument values:"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:8601 doc/guix.texi:10050
+#: doc/guix.texi:10128 doc/guix.texi:11624
 #, no-wrap
 msgid "package"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:8604
-msgid "This value causes the @code{--sources} option to behave in the same way as the @code{--source} option."
+#: doc/guix.texi:10131
+msgid "This value causes the @option{--sources} option to behave in the same way as the @option{--source} option."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:8605 doc/guix.texi:14934
+#: doc/guix.texi:10132 doc/guix.texi:17103
 #, no-wrap
 msgid "all"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:8608
+#: doc/guix.texi:10135
 msgid "Build the source derivations of all packages, including any source that might be listed as @code{inputs}.  This is the default value."
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:8614
+#: doc/guix.texi:10141
 #, no-wrap
 msgid ""
 "$ guix build --sources tzdata\n"
@@ -16137,18 +19085,18 @@ msgid ""
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:8616
+#: doc/guix.texi:10143
 #, no-wrap
 msgid "transitive"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:8620
+#: doc/guix.texi:10147
 msgid "Build the source derivations of all packages, as well of all transitive inputs to the packages.  This can be used e.g.@: to prefetch package source for later offline building."
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:8631
+#: doc/guix.texi:10158
 #, no-wrap
 msgid ""
 "$ guix build --sources=transitive tzdata\n"
@@ -16163,152 +19111,152 @@ msgid ""
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:8641
+#: doc/guix.texi:10168
 msgid "Attempt to build for @var{system}---e.g., @code{i686-linux}---instead of the system type of the build host.  The @command{guix build} command allows you to repeat this option several times, in which case it builds for all the specified systems; other commands ignore extraneous @option{-s} options."
 msgstr ""
 
 #. type: quotation
-#: doc/guix.texi:8646
-msgid "The @code{--system} flag is for @emph{native} compilation and must not be confused with cross-compilation.  See @code{--target} below for information on cross-compilation."
+#: doc/guix.texi:10173
+msgid "The @option{--system} flag is for @emph{native} compilation and must not be confused with cross-compilation.  See @option{--target} below for information on cross-compilation."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:8653
-msgid "An example use of this is on Linux-based systems, which can emulate different personalities.  For instance, passing @code{--system=i686-linux} on an @code{x86_64-linux} system or @code{--system=armhf-linux} on an @code{aarch64-linux} system allows you to build packages in a complete 32-bit environment."
+#: doc/guix.texi:10180
+msgid "An example use of this is on Linux-based systems, which can emulate different personalities.  For instance, passing @option{--system=i686-linux} on an @code{x86_64-linux} system or @option{--system=armhf-linux} on an @code{aarch64-linux} system allows you to build packages in a complete 32-bit environment."
 msgstr ""
 
 #. type: quotation
-#: doc/guix.texi:8658
+#: doc/guix.texi:10185
 msgid "Building for an @code{armhf-linux} system is unconditionally enabled on @code{aarch64-linux} machines, although certain aarch64 chipsets do not allow for this functionality, notably the ThunderX."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:8664
+#: doc/guix.texi:10191
 msgid "Similarly, when transparent emulation with QEMU and @code{binfmt_misc} is enabled (@pxref{Virtualization Services, @code{qemu-binfmt-service-type}}), you can build for any system for which a QEMU @code{binfmt_misc} handler is installed."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:8668
+#: doc/guix.texi:10195
 msgid "Builds for a system other than that of the machine you are using can also be offloaded to a remote machine of the right architecture.  @xref{Daemon Offload Setup}, for more information on offloading."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:8674
-msgid "Cross-build for @var{triplet}, which must be a valid GNU triplet, such as @code{\"mips64el-linux-gnu\"} (@pxref{Specifying Target Triplets, GNU configuration triplets,, autoconf, Autoconf})."
+#: doc/guix.texi:10201
+msgid "Cross-build for @var{triplet}, which must be a valid GNU triplet, such as @code{\"aarch64-linux-gnu\"} (@pxref{Specifying Target Triplets, GNU configuration triplets,, autoconf, Autoconf})."
 msgstr ""
 
 #. type: anchor{#1}
-#: doc/guix.texi:8676
+#: doc/guix.texi:10203
 msgid "build-check"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:8676
+#: doc/guix.texi:10203
 #, no-wrap
 msgid "--check"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:8677
+#: doc/guix.texi:10204
 #, no-wrap
 msgid "determinism, checking"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:8678
+#: doc/guix.texi:10205
 #, no-wrap
 msgid "reproducibility, checking"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:8682
+#: doc/guix.texi:10209
 msgid "Rebuild @var{package-or-derivation}, which are already available in the store, and raise an error if the build results are not bit-for-bit identical."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:8687
+#: doc/guix.texi:10214
 msgid "This mechanism allows you to check whether previously installed substitutes are genuine (@pxref{Substitutes}), or whether the build result of a package is deterministic.  @xref{Invoking guix challenge}, for more background information and tools."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:8692
+#: doc/guix.texi:10219
 #, no-wrap
 msgid "--repair"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:8693
+#: doc/guix.texi:10220
 #, no-wrap
 msgid "repairing store items"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:8697
+#: doc/guix.texi:10224
 msgid "Attempt to repair the specified store items, if they are corrupt, by re-downloading or rebuilding them."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:8699
+#: doc/guix.texi:10226
 msgid "This operation is not atomic and thus restricted to @code{root}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:8700
+#: doc/guix.texi:10227
 #, no-wrap
 msgid "--derivations"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:8704
+#: doc/guix.texi:10231
 msgid "Return the derivation paths, not the output paths, of the given packages."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:8707
+#: doc/guix.texi:10234
 #, no-wrap
 msgid "GC roots, adding"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:8708
+#: doc/guix.texi:10235
 #, no-wrap
 msgid "garbage collector roots, adding"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:8711 doc/guix.texi:26930
+#: doc/guix.texi:10238 doc/guix.texi:30562
 msgid "Make @var{file} a symlink to the result, and register it as a garbage collector root."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:8717
+#: doc/guix.texi:10244
 msgid "Consequently, the results of this @command{guix build} invocation are protected from garbage collection until @var{file} is removed.  When that option is omitted, build results are eligible for garbage collection as soon as the build completes.  @xref{Invoking guix gc}, for more on GC roots."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:8718
+#: doc/guix.texi:10245
 #, no-wrap
 msgid "--log-file"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:8719
+#: doc/guix.texi:10246
 #, no-wrap
 msgid "build logs, access"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:8723
+#: doc/guix.texi:10250
 msgid "Return the build log file names or URLs for the given @var{package-or-derivation}, or raise an error if build logs are missing."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:8726
+#: doc/guix.texi:10253
 msgid "This works regardless of how packages or derivations are specified.  For instance, the following invocations are equivalent:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:8732
+#: doc/guix.texi:10259
 #, no-wrap
 msgid ""
 "guix build --log-file `guix build -d guile`\n"
@@ -16318,51 +19266,51 @@ msgid ""
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:8737
-msgid "If a log is unavailable locally, and unless @code{--no-substitutes} is passed, the command looks for a corresponding log on one of the substitute servers (as specified with @code{--substitute-urls}.)"
+#: doc/guix.texi:10264
+msgid "If a log is unavailable locally, and unless @option{--no-substitutes} is passed, the command looks for a corresponding log on one of the substitute servers (as specified with @option{--substitute-urls})."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:8740
+#: doc/guix.texi:10267
 msgid "So for instance, imagine you want to see the build log of GDB on MIPS, but you are actually on an @code{x86_64} machine:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:8744
+#: doc/guix.texi:10271
 #, no-wrap
 msgid ""
-"$ guix build --log-file gdb -s mips64el-linux\n"
+"$ guix build --log-file gdb -s aarch64-linux\n"
 "https://@value{SUBSTITUTE-SERVER}/log/@dots{}-gdb-7.10\n"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:8747
+#: doc/guix.texi:10274
 msgid "You can freely access a huge library of build logs!"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:8752
+#: doc/guix.texi:10279
 #, no-wrap
 msgid "build failures, debugging"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:8758
+#: doc/guix.texi:10285
 msgid "When defining a new package (@pxref{Defining Packages}), you will probably find yourself spending some time debugging and tweaking the build until it succeeds.  To do that, you need to operate the build commands yourself in an environment as close as possible to the one the build daemon uses."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:8763
-msgid "To that end, the first thing to do is to use the @option{--keep-failed} or @option{-K} option of @command{guix build}, which will keep the failed build tree in @file{/tmp} or whatever directory you specified as @code{TMPDIR} (@pxref{Invoking guix build, @code{--keep-failed}})."
+#: doc/guix.texi:10290
+msgid "To that end, the first thing to do is to use the @option{--keep-failed} or @option{-K} option of @command{guix build}, which will keep the failed build tree in @file{/tmp} or whatever directory you specified as @env{TMPDIR} (@pxref{Invoking guix build, @option{--keep-failed}})."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:8769
+#: doc/guix.texi:10296
 msgid "From there on, you can @command{cd} to the failed build tree and source the @file{environment-variables} file, which contains all the environment variable definitions that were in place when the build failed.  So let's say you're debugging a build failure in package @code{foo}; a typical session would look like this:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:8776
+#: doc/guix.texi:10303
 #, no-wrap
 msgid ""
 "$ guix build foo -K\n"
@@ -16373,22 +19321,22 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:8780
+#: doc/guix.texi:10307
 msgid "Now, you can invoke commands as if you were the daemon (almost) and troubleshoot your build process."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:8786
+#: doc/guix.texi:10313
 msgid "Sometimes it happens that, for example, a package's tests pass when you run them manually but they fail when the daemon runs them.  This can happen because the daemon runs builds in containers where, unlike in our environment above, network access is missing, @file{/bin/sh} does not exist, etc. (@pxref{Build Environment Setup})."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:8789
+#: doc/guix.texi:10316
 msgid "In such cases, you may need to run inspect the build process from within a container similar to the one the build daemon creates:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:8797
+#: doc/guix.texi:10324
 #, no-wrap
 msgid ""
 "$ guix build -K foo\n"
@@ -16400,256 +19348,291 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:8806
-msgid "Here, @command{guix environment -C} creates a container and spawns a new shell in it (@pxref{Invoking guix environment}).  The @command{--ad-hoc strace gdb} part adds the @command{strace} and @command{gdb} commands to the container, which would may find handy while debugging.  The @option{--no-grafts} option makes sure we get the exact same environment, with ungrafted packages (@pxref{Security Updates}, for more info on grafts)."
+#: doc/guix.texi:10333
+msgid "Here, @command{guix environment -C} creates a container and spawns a new shell in it (@pxref{Invoking guix environment}).  The @command{--ad-hoc strace gdb} part adds the @command{strace} and @command{gdb} commands to the container, which you may find handy while debugging.  The @option{--no-grafts} option makes sure we get the exact same environment, with ungrafted packages (@pxref{Security Updates}, for more info on grafts)."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:8809
+#: doc/guix.texi:10336
 msgid "To get closer to a container like that used by the build daemon, we can remove @file{/bin/sh}:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:8812
+#: doc/guix.texi:10339
 #, no-wrap
 msgid "[env]# rm /bin/sh\n"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:8816
+#: doc/guix.texi:10343
 msgid "(Don't worry, this is harmless: this is all happening in the throw-away container created by @command{guix environment}.)"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:8819
+#: doc/guix.texi:10346
 msgid "The @command{strace} command is probably not in the search path, but we can run:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:8822
+#: doc/guix.texi:10349
 #, no-wrap
 msgid "[env]# $GUIX_ENVIRONMENT/bin/strace -f -o log make check\n"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:8827
+#: doc/guix.texi:10354
 msgid "In this way, not only you will have reproduced the environment variables the daemon uses, you will also be running the build process in a container similar to the one the daemon uses."
 msgstr ""
 
 #. type: section
-#: doc/guix.texi:8830
+#: doc/guix.texi:10357
 #, no-wrap
 msgid "Invoking @command{guix edit}"
 msgstr ""
 
 #. type: command{#1}
-#: doc/guix.texi:8832
+#: doc/guix.texi:10359
 #, no-wrap
 msgid "guix edit"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:8833
+#: doc/guix.texi:10360
 #, no-wrap
 msgid "package definition, editing"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:8838
+#: doc/guix.texi:10365
 msgid "So many packages, so many source files! The @command{guix edit} command facilitates the life of users and packagers by pointing their editor at the source file containing the definition of the specified packages.  For instance:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:8841
+#: doc/guix.texi:10368
 #, no-wrap
 msgid "guix edit gcc@@4.9 vim\n"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:8847
-msgid "launches the program specified in the @code{VISUAL} or in the @code{EDITOR} environment variable to view the recipe of GCC@tie{}4.9.3 and that of Vim."
+#: doc/guix.texi:10374
+msgid "launches the program specified in the @env{VISUAL} or in the @env{EDITOR} environment variable to view the recipe of GCC@tie{}4.9.3 and that of Vim."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:8853
-msgid "If you are using a Guix Git checkout (@pxref{Building from Git}), or have created your own packages on @code{GUIX_PACKAGE_PATH} (@pxref{Package Modules}), you will be able to edit the package recipes.  In other cases, you will be able to examine the read-only recipes for packages currently in the store."
+#: doc/guix.texi:10380
+msgid "If you are using a Guix Git checkout (@pxref{Building from Git}), or have created your own packages on @env{GUIX_PACKAGE_PATH} (@pxref{Package Modules}), you will be able to edit the package recipes.  In other cases, you will be able to examine the read-only recipes for packages currently in the store."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:8858
-msgid "Instead of @code{GUIX_PACKAGE_PATH}, the command-line option @code{--load-path=@var{directory}} (or in short @code{-L @var{directory}}) allows you to add @var{directory} to the front of the package module search path and so make your own packages visible."
+#: doc/guix.texi:10385
+msgid "Instead of @env{GUIX_PACKAGE_PATH}, the command-line option @option{--load-path=@var{directory}} (or in short @option{-L @var{directory}}) allows you to add @var{directory} to the front of the package module search path and so make your own packages visible."
 msgstr ""
 
 #. type: section
-#: doc/guix.texi:8860
+#: doc/guix.texi:10387
 #, no-wrap
 msgid "Invoking @command{guix download}"
 msgstr ""
 
 #. type: command{#1}
-#: doc/guix.texi:8862
+#: doc/guix.texi:10389
 #, no-wrap
 msgid "guix download"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:8863
+#: doc/guix.texi:10390
 #, no-wrap
 msgid "downloading package sources"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:8870
+#: doc/guix.texi:10397
 msgid "When writing a package definition, developers typically need to download a source tarball, compute its SHA256 hash, and write that hash in the package definition (@pxref{Defining Packages}).  The @command{guix download} tool helps with this task: it downloads a file from the given URI, adds it to the store, and prints both its file name in the store and its SHA256 hash."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:8877
+#: doc/guix.texi:10404
 msgid "The fact that the downloaded file is added to the store saves bandwidth: when the developer eventually tries to build the newly defined package with @command{guix build}, the source tarball will not have to be downloaded again because it is already in the store.  It is also a convenient way to temporarily stash files, which may be deleted eventually (@pxref{Invoking guix gc})."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:8885
+#: doc/guix.texi:10412
 msgid "The @command{guix download} command supports the same URIs as used in package definitions.  In particular, it supports @code{mirror://} URIs.  @code{https} URIs (HTTP over TLS) are supported @emph{provided} the Guile bindings for GnuTLS are available in the user's environment; when they are not available, an error is raised.  @xref{Guile Preparations, how to install the GnuTLS bindings for Guile,, gnutls-guile, GnuTLS-Guile}, for more information."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:8890
-msgid "@command{guix download} verifies HTTPS server certificates by loading the certificates of X.509 authorities from the directory pointed to by the @code{SSL_CERT_DIR} environment variable (@pxref{X.509 Certificates}), unless @option{--no-check-certificate} is used."
+#: doc/guix.texi:10417
+msgid "@command{guix download} verifies HTTPS server certificates by loading the certificates of X.509 authorities from the directory pointed to by the @env{SSL_CERT_DIR} environment variable (@pxref{X.509 Certificates}), unless @option{--no-check-certificate} is used."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:8892 doc/guix.texi:10311
+#: doc/guix.texi:10419 doc/guix.texi:11922
 msgid "The following options are available:"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:8894 doc/guix.texi:8933
+#: doc/guix.texi:10421 doc/guix.texi:10465
+#, fuzzy, no-wrap
+#| msgid "--show=@var{package}"
+msgid "--hash=@var{algorithm}"
+msgstr "--show=@var{package}"
+
+#. type: itemx
+#: doc/guix.texi:10422 doc/guix.texi:10466
+#, fuzzy, no-wrap
+#| msgid "-f @var{format}"
+msgid "-H @var{algorithm}"
+msgstr "-f @var{format}"
+
+#. type: table
+#: doc/guix.texi:10425
+msgid "Compute a hash using the specified @var{algorithm}.  @xref{Invoking guix hash}, for more information."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:10426 doc/guix.texi:10475
 #, no-wrap
 msgid "--format=@var{fmt}"
 msgstr ""
 
 #. type: itemx
-#: doc/guix.texi:8895 doc/guix.texi:8934
+#: doc/guix.texi:10427 doc/guix.texi:10476
 #, no-wrap
 msgid "-f @var{fmt}"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:8898
+#: doc/guix.texi:10430
 msgid "Write the hash in the format specified by @var{fmt}.  For more information on the valid values for @var{fmt}, @pxref{Invoking guix hash}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:8899
+#: doc/guix.texi:10431
 #, no-wrap
 msgid "--no-check-certificate"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:8901
+#: doc/guix.texi:10433
 msgid "Do not validate the X.509 certificates of HTTPS servers."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:8905
+#: doc/guix.texi:10437
 msgid "When using this option, you have @emph{absolutely no guarantee} that you are communicating with the authentic server responsible for the given URL, which makes you vulnerable to ``man-in-the-middle'' attacks."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:8906
+#: doc/guix.texi:10438
 #, no-wrap
 msgid "--output=@var{file}"
 msgstr ""
 
 #. type: itemx
-#: doc/guix.texi:8907
+#: doc/guix.texi:10439
 #, no-wrap
 msgid "-o @var{file}"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:8910
+#: doc/guix.texi:10442
 msgid "Save the downloaded file to @var{file} instead of adding it to the store."
 msgstr ""
 
 #. type: section
-#: doc/guix.texi:8913
+#: doc/guix.texi:10445
 #, no-wrap
 msgid "Invoking @command{guix hash}"
 msgstr ""
 
 #. type: command{#1}
-#: doc/guix.texi:8915
+#: doc/guix.texi:10447
 #, no-wrap
 msgid "guix hash"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:8920
-msgid "The @command{guix hash} command computes the SHA256 hash of a file.  It is primarily a convenience tool for anyone contributing to the distribution: it computes the cryptographic hash of a file, which can be used in the definition of a package (@pxref{Defining Packages})."
+#: doc/guix.texi:10452
+msgid "The @command{guix hash} command computes the hash of a file.  It is primarily a convenience tool for anyone contributing to the distribution: it computes the cryptographic hash of a file, which can be used in the definition of a package (@pxref{Defining Packages})."
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:8925
+#: doc/guix.texi:10457
 #, no-wrap
 msgid "guix hash @var{option} @var{file}\n"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:8930
+#: doc/guix.texi:10462
 msgid "When @var{file} is @code{-} (a hyphen), @command{guix hash} computes the hash of data read from standard input.  @command{guix hash} has the following options:"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:8936
+#: doc/guix.texi:10469
+msgid "Compute a hash using the specified @var{algorithm}, @code{sha256} by default."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:10474
+msgid "@var{algorithm} must the name of a cryptographic hash algorithm supported by Libgcrypt @i{via} Guile-Gcrypt---e.g., @code{sha512} or @code{sha3-256} (@pxref{Hash Functions,,, guile-gcrypt, Guile-Gcrypt Reference Manual})."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:10478
 msgid "Write the hash in the format specified by @var{fmt}."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:8939
-msgid "Supported formats: @code{nix-base32}, @code{base32}, @code{base16} (@code{hex} and @code{hexadecimal} can be used as well)."
+#: doc/guix.texi:10481
+msgid "Supported formats: @code{base64}, @code{nix-base32}, @code{base32}, @code{base16} (@code{hex} and @code{hexadecimal} can be used as well)."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:8943
+#: doc/guix.texi:10485
 msgid "If the @option{--format} option is not specified, @command{guix hash} will output the hash in @code{nix-base32}.  This representation is used in the definitions of packages."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:8947
+#: doc/guix.texi:10489
 msgid "Compute the hash on @var{file} recursively."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:8956
+#: doc/guix.texi:10498
 msgid "In this case, the hash is computed on an archive containing @var{file}, including its children if it is a directory.  Some of the metadata of @var{file} is part of the archive; for instance, when @var{file} is a regular file, the hash is different depending on whether @var{file} is executable or not.  Metadata such as time stamps has no impact on the hash (@pxref{Invoking guix archive})."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:8957
+#: doc/guix.texi:10499
 #, no-wrap
 msgid "--exclude-vcs"
 msgstr ""
 
 #. type: itemx
-#: doc/guix.texi:8958
+#: doc/guix.texi:10500
 #, no-wrap
 msgid "-x"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:8961
-msgid "When combined with @option{--recursive}, exclude version control system directories (@file{.bzr}, @file{.git}, @file{.hg}, etc.)"
+#: doc/guix.texi:10503
+msgid "When combined with @option{--recursive}, exclude version control system directories (@file{.bzr}, @file{.git}, @file{.hg}, etc.)."
 msgstr ""
 
+#. type: vindex
+#: doc/guix.texi:10504
+#, no-wrap
+msgid "git-fetch"
+msgstr "git-fetch"
+
 #. type: table
-#: doc/guix.texi:8966
+#: doc/guix.texi:10508
 msgid "As an example, here is how you would compute the hash of a Git checkout, which is useful when using the @code{git-fetch} method (@pxref{origin Reference}):"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:8971
+#: doc/guix.texi:10513
 #, no-wrap
 msgid ""
 "$ git clone http://example.org/foo.git\n"
@@ -16658,322 +19641,323 @@ msgid ""
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:8975 doc/guix.texi:8980
+#: doc/guix.texi:10517 doc/guix.texi:10522
 #, no-wrap
 msgid "Invoking @command{guix import}"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:8977
+#: doc/guix.texi:10519
 #, no-wrap
 msgid "importing packages"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:8978
+#: doc/guix.texi:10520
 #, no-wrap
 msgid "package import"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:8979
+#: doc/guix.texi:10521
 #, no-wrap
 msgid "package conversion"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:8987
+#: doc/guix.texi:10529
 msgid "The @command{guix import} command is useful for people who would like to add a package to the distribution with as little work as possible---a legitimate demand.  The command knows of a few repositories from which it can ``import'' package metadata.  The result is a package definition, or a template thereof, in the format we know (@pxref{Defining Packages})."
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:8992
+#: doc/guix.texi:10534
 #, no-wrap
 msgid "guix import @var{importer} @var{options}@dots{}\n"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:8997
+#: doc/guix.texi:10539
 msgid "@var{importer} specifies the source from which to import package metadata, and @var{options} specifies a package identifier and other options specific to @var{importer}."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:9001
+#: doc/guix.texi:10543
 msgid "Some of the importers rely on the ability to run the @command{gpgv} command.  For these, GnuPG must be installed and in @code{$PATH}; run @code{guix install gnupg} if needed."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:9003
+#: doc/guix.texi:10545
 #, fuzzy
 #| msgid "The available formats are:"
 msgid "Currently, the available ``importers'' are:"
 msgstr "Возможные форматы:"
 
 #. type: item
-#: doc/guix.texi:9005 doc/guix.texi:9536
+#: doc/guix.texi:10547 doc/guix.texi:11076
 #, no-wrap
 msgid "gnu"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9009
+#: doc/guix.texi:10551
 msgid "Import metadata for the given GNU package.  This provides a template for the latest version of that GNU package, including the hash of its source tarball, and its canonical synopsis and description."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9012
+#: doc/guix.texi:10554
 msgid "Additional information such as the package dependencies and its license needs to be figured out manually."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9015
+#: doc/guix.texi:10557
 msgid "For example, the following command returns a package definition for GNU@tie{}Hello:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:9018
+#: doc/guix.texi:10560
 #, no-wrap
 msgid "guix import gnu hello\n"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9021 doc/guix.texi:9256 doc/guix.texi:9306 doc/guix.texi:9335
+#: doc/guix.texi:10563 doc/guix.texi:10796 doc/guix.texi:10846
+#: doc/guix.texi:10875
 msgid "Specific command-line options are:"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:9023 doc/guix.texi:9685
+#: doc/guix.texi:10565 doc/guix.texi:11227
 #, no-wrap
 msgid "--key-download=@var{policy}"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9027
-msgid "As for @code{guix refresh}, specify the policy to handle missing OpenPGP keys when verifying the package signature.  @xref{Invoking guix refresh, @code{--key-download}}."
+#: doc/guix.texi:10569
+msgid "As for @command{guix refresh}, specify the policy to handle missing OpenPGP keys when verifying the package signature.  @xref{Invoking guix refresh, @option{--key-download}}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:9029 doc/guix.texi:9030 doc/guix.texi:9554
+#: doc/guix.texi:10571 doc/guix.texi:10572 doc/guix.texi:11096
 #, no-wrap
 msgid "pypi"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9037
+#: doc/guix.texi:10579
 msgid "Import metadata from the @uref{https://pypi.python.org/, Python Package Index}.  Information is taken from the JSON-formatted description available at @code{pypi.python.org} and usually includes all the relevant information, including package dependencies.  For maximum efficiency, it is recommended to install the @command{unzip} utility, so that the importer can unzip Python wheels and gather data from them."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9040
+#: doc/guix.texi:10582
 msgid "The command below imports metadata for the @code{itsdangerous} Python package:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:9043
+#: doc/guix.texi:10585
 #, no-wrap
 msgid "guix import pypi itsdangerous\n"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9051 doc/guix.texi:9076 doc/guix.texi:9279 doc/guix.texi:9320
-#: doc/guix.texi:9367 doc/guix.texi:9392
+#: doc/guix.texi:10593 doc/guix.texi:10618 doc/guix.texi:10819
+#: doc/guix.texi:10860 doc/guix.texi:10907 doc/guix.texi:10932
 msgid "Traverse the dependency graph of the given upstream package recursively and generate package expressions for all those packages that are not yet in Guix."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:9053 doc/guix.texi:9054 doc/guix.texi:9556
+#: doc/guix.texi:10595 doc/guix.texi:10596 doc/guix.texi:11098
 #, no-wrap
 msgid "gem"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9063
+#: doc/guix.texi:10605
 msgid "Import metadata from @uref{https://rubygems.org/, RubyGems}.  Information is taken from the JSON-formatted description available at @code{rubygems.org} and includes most relevant information, including runtime dependencies.  There are some caveats, however.  The metadata doesn't distinguish between synopses and descriptions, so the same string is used for both fields.  Additionally, the details of non-Ruby dependencies required to build native extensions is unavailable and left as an exercise to the packager."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9065
+#: doc/guix.texi:10607
 msgid "The command below imports metadata for the @code{rails} Ruby package:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:9068
+#: doc/guix.texi:10610
 #, no-wrap
 msgid "guix import gem rails\n"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:9078 doc/guix.texi:9552
+#: doc/guix.texi:10620 doc/guix.texi:11094
 #, no-wrap
 msgid "cpan"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:9079
+#: doc/guix.texi:10621
 #, no-wrap
 msgid "CPAN"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9087
+#: doc/guix.texi:10629
 msgid "Import metadata from @uref{https://www.metacpan.org/, MetaCPAN}.  Information is taken from the JSON-formatted metadata provided through @uref{https://fastapi.metacpan.org/, MetaCPAN's API} and includes most relevant information, such as module dependencies.  License information should be checked closely.  If Perl is available in the store, then the @code{corelist} utility will be used to filter core modules out of the list of dependencies."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9090
-msgid "The command command below imports metadata for the @code{Acme::Boolean} Perl module:"
+#: doc/guix.texi:10632
+msgid "The command command below imports metadata for the Acme::Boolean Perl module:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:9093
+#: doc/guix.texi:10635
 #, no-wrap
 msgid "guix import cpan Acme::Boolean\n"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:9095 doc/guix.texi:9548
+#: doc/guix.texi:10637 doc/guix.texi:11090
 #, no-wrap
 msgid "cran"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:9096
+#: doc/guix.texi:10638
 #, no-wrap
 msgid "CRAN"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:9097
+#: doc/guix.texi:10639
 #, no-wrap
 msgid "Bioconductor"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9101
+#: doc/guix.texi:10643
 msgid "Import metadata from @uref{https://cran.r-project.org/, CRAN}, the central repository for the @uref{https://r-project.org, GNU@tie{}R statistical and graphical environment}."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9103
-msgid "Information is extracted from the @code{DESCRIPTION} file of the package."
+#: doc/guix.texi:10645
+msgid "Information is extracted from the @file{DESCRIPTION} file of the package."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9106
-msgid "The command command below imports metadata for the @code{Cairo} R package:"
+#: doc/guix.texi:10647
+msgid "The command command below imports metadata for the Cairo R package:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:9109
+#: doc/guix.texi:10650
 #, no-wrap
 msgid "guix import cran Cairo\n"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9114
-msgid "When @code{--recursive} is added, the importer will traverse the dependency graph of the given upstream package recursively and generate package expressions for all those packages that are not yet in Guix."
+#: doc/guix.texi:10655
+msgid "When @option{--recursive} is added, the importer will traverse the dependency graph of the given upstream package recursively and generate package expressions for all those packages that are not yet in Guix."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9119
-msgid "When @code{--archive=bioconductor} is added, metadata is imported from @uref{https://www.bioconductor.org/, Bioconductor}, a repository of R packages for for the analysis and comprehension of high-throughput genomic data in bioinformatics."
+#: doc/guix.texi:10660
+msgid "When @option{--archive=bioconductor} is added, metadata is imported from @uref{https://www.bioconductor.org/, Bioconductor}, a repository of R packages for the analysis and comprehension of high-throughput genomic data in bioinformatics."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9122
-msgid "Information is extracted from the @code{DESCRIPTION} file contained in the package archive."
+#: doc/guix.texi:10663
+msgid "Information is extracted from the @file{DESCRIPTION} file contained in the package archive."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9125
-msgid "The command below imports metadata for the @code{GenomicRanges} R package:"
+#: doc/guix.texi:10665
+msgid "The command below imports metadata for the GenomicRanges R package:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:9128
+#: doc/guix.texi:10668
 #, no-wrap
 msgid "guix import cran --archive=bioconductor GenomicRanges\n"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9133
-msgid "Finally, you can also import R packages that have not yet been published on CRAN or Bioconductor as long as they are in a git repository.  Use @code{--archive=git} followed by the URL of the git repository:"
+#: doc/guix.texi:10673
+msgid "Finally, you can also import R packages that have not yet been published on CRAN or Bioconductor as long as they are in a git repository.  Use @option{--archive=git} followed by the URL of the git repository:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:9136
+#: doc/guix.texi:10676
 #, no-wrap
 msgid "guix import cran --archive=git https://github.com/immunogenomics/harmony\n"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:9138
+#: doc/guix.texi:10678
 #, no-wrap
 msgid "texlive"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:9139
+#: doc/guix.texi:10679
 #, no-wrap
 msgid "TeX Live"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:9140
+#: doc/guix.texi:10680
 #, no-wrap
 msgid "CTAN"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9144
+#: doc/guix.texi:10684
 msgid "Import metadata from @uref{https://www.ctan.org/, CTAN}, the comprehensive TeX archive network for TeX packages that are part of the @uref{https://www.tug.org/texlive/, TeX Live distribution}."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9149
+#: doc/guix.texi:10689
 msgid "Information about the package is obtained through the XML API provided by CTAN, while the source code is downloaded from the SVN repository of the Tex Live project.  This is done because the CTAN does not keep versioned archives."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9152
+#: doc/guix.texi:10692
 msgid "The command command below imports metadata for the @code{fontspec} TeX package:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:9155
+#: doc/guix.texi:10695
 #, no-wrap
 msgid "guix import texlive fontspec\n"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9161
-msgid "When @code{--archive=DIRECTORY} is added, the source code is downloaded not from the @file{latex} sub-directory of the @file{texmf-dist/source} tree in the TeX Live SVN repository, but from the specified sibling directory under the same root."
+#: doc/guix.texi:10701
+msgid "When @option{--archive=@var{directory}} is added, the source code is downloaded not from the @file{latex} sub-directory of the @file{texmf-dist/source} tree in the TeX Live SVN repository, but from the specified sibling @var{directory} under the same root."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9165
+#: doc/guix.texi:10705
 msgid "The command below imports metadata for the @code{ifxetex} package from CTAN while fetching the sources from the directory @file{texmf/source/generic}:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:9168
+#: doc/guix.texi:10708
 #, no-wrap
 msgid "guix import texlive --archive=generic ifxetex\n"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:9171
+#: doc/guix.texi:10711
 #, no-wrap
 msgid "JSON, import"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9174
+#: doc/guix.texi:10714
 msgid "Import package metadata from a local JSON file.  Consider the following example package definition in JSON format:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:9187
+#: doc/guix.texi:10727
 #, no-wrap
 msgid ""
 "@{\n"
@@ -16990,17 +19974,17 @@ msgid ""
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9193
+#: doc/guix.texi:10733
 msgid "The field names are the same as for the @code{<package>} record (@xref{Defining Packages}).  References to other packages are provided as JSON lists of quoted package specification strings such as @code{guile} or @code{guile@@2.0}."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9196
+#: doc/guix.texi:10736
 msgid "The importer also supports a more explicit source definition using the common fields for @code{<origin>} records:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:9209
+#: doc/guix.texi:10749
 #, no-wrap
 msgid ""
 "@{\n"
@@ -17017,339 +20001,344 @@ msgid ""
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9213
+#: doc/guix.texi:10753
 msgid "The command below reads metadata from the JSON file @code{hello.json} and outputs a package expression:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:9216
+#: doc/guix.texi:10756
 #, no-wrap
 msgid "guix import json hello.json\n"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:9218
+#: doc/guix.texi:10758
 #, no-wrap
 msgid "nix"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9227
+#: doc/guix.texi:10767
 msgid "Import metadata from a local copy of the source of the @uref{https://nixos.org/nixpkgs/, Nixpkgs distribution}@footnote{This relies on the @command{nix-instantiate} command of @uref{https://nixos.org/nix/, Nix}.}.  Package definitions in Nixpkgs are typically written in a mixture of Nix-language and Bash code.  This command only imports the high-level package structure that is written in the Nix language.  It normally includes all the basic fields of a package definition."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9230
+#: doc/guix.texi:10770
 msgid "When importing a GNU package, the synopsis and descriptions are replaced by their canonical upstream variant."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9232
+#: doc/guix.texi:10772
 msgid "Usually, you will first need to do:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:9235
+#: doc/guix.texi:10775
 #, no-wrap
 msgid "export NIX_REMOTE=daemon\n"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9239
+#: doc/guix.texi:10779
 msgid "so that @command{nix-instantiate} does not try to open the Nix database."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9243
+#: doc/guix.texi:10783
 msgid "As an example, the command below imports the package definition of LibreOffice (more precisely, it imports the definition of the package bound to the @code{libreoffice} top-level attribute):"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:9246
+#: doc/guix.texi:10786
 #, no-wrap
 msgid "guix import nix ~/path/to/nixpkgs libreoffice\n"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:9248 doc/guix.texi:9249 doc/guix.texi:9560
+#: doc/guix.texi:10788 doc/guix.texi:10789 doc/guix.texi:11102
 #, no-wrap
 msgid "hackage"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9254
+#: doc/guix.texi:10794
 msgid "Import metadata from the Haskell community's central package archive @uref{https://hackage.haskell.org/, Hackage}.  Information is taken from Cabal files and includes all the relevant information, including package dependencies."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:9258
+#: doc/guix.texi:10798
 #, no-wrap
 msgid "--stdin"
 msgstr ""
 
 #. type: itemx
-#: doc/guix.texi:9259
+#: doc/guix.texi:10799
 #, no-wrap
 msgid "-s"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9261
+#: doc/guix.texi:10801
 msgid "Read a Cabal file from standard input."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:9261 doc/guix.texi:9308
+#: doc/guix.texi:10801 doc/guix.texi:10848
 #, no-wrap
 msgid "--no-test-dependencies"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9264 doc/guix.texi:9311
+#: doc/guix.texi:10804 doc/guix.texi:10851
 msgid "Do not include dependencies required only by the test suites."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:9264
+#: doc/guix.texi:10804
 #, no-wrap
 msgid "--cabal-environment=@var{alist}"
 msgstr ""
 
 #. type: itemx
-#: doc/guix.texi:9265
+#: doc/guix.texi:10805
 #, no-wrap
 msgid "-e @var{alist}"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9274
+#: doc/guix.texi:10814
 msgid "@var{alist} is a Scheme alist defining the environment in which the Cabal conditionals are evaluated.  The accepted keys are: @code{os}, @code{arch}, @code{impl} and a string representing the name of a flag.  The value associated with a flag has to be either the symbol @code{true} or @code{false}.  The value associated with other keys has to conform to the Cabal file format definition.  The default value associated with the keys @code{os}, @code{arch} and @code{impl} is @samp{linux}, @samp{x86_64} and @samp{ghc}, respectively."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9284
-msgid "The command below imports metadata for the latest version of the @code{HTTP} Haskell package without including test dependencies and specifying the value of the flag @samp{network-uri} as @code{false}:"
+#: doc/guix.texi:10824
+msgid "The command below imports metadata for the latest version of the HTTP Haskell package without including test dependencies and specifying the value of the flag @samp{network-uri} as @code{false}:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:9287
+#: doc/guix.texi:10827
 #, no-wrap
 msgid "guix import hackage -t -e \"'((\\\"network-uri\\\" . false))\" HTTP\n"
-msgstr ""
+msgstr "guix import hackage -t -e \"'((\\\"network-uri\\\" . false))\" HTTP\n"
 
 #. type: table
-#: doc/guix.texi:9291
+#: doc/guix.texi:10831
 msgid "A specific package version may optionally be specified by following the package name by an at-sign and a version number as in the following example:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:9294
+#: doc/guix.texi:10834
 #, no-wrap
 msgid "guix import hackage mtl@@2.1.3.1\n"
-msgstr ""
+msgstr "guix import hackage mtl@@2.1.3.1\n"
 
 #. type: item
-#: doc/guix.texi:9296 doc/guix.texi:9297 doc/guix.texi:9562
+#: doc/guix.texi:10836 doc/guix.texi:10837 doc/guix.texi:11104
 #, no-wrap
 msgid "stackage"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9304
+#: doc/guix.texi:10844
 msgid "The @code{stackage} importer is a wrapper around the @code{hackage} one.  It takes a package name, looks up the package version included in a long-term support (LTS) @uref{https://www.stackage.org, Stackage} release and uses the @code{hackage} importer to retrieve its metadata.  Note that it is up to you to select an LTS release compatible with the GHC compiler used by Guix."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:9311
+#: doc/guix.texi:10851
 #, no-wrap
 msgid "--lts-version=@var{version}"
-msgstr ""
+msgstr "--lts-version=@var{version}"
 
 #. type: itemx
-#: doc/guix.texi:9312
+#: doc/guix.texi:10852
 #, no-wrap
 msgid "-l @var{version}"
-msgstr ""
+msgstr "-l @var{version}"
 
 #. type: table
-#: doc/guix.texi:9315
+#: doc/guix.texi:10855
 msgid "@var{version} is the desired LTS release version.  If omitted the latest release is used."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9324
-msgid "The command below imports metadata for the @code{HTTP} Haskell package included in the LTS Stackage release version 7.18:"
+#: doc/guix.texi:10864
+msgid "The command below imports metadata for the HTTP Haskell package included in the LTS Stackage release version 7.18:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:9327
+#: doc/guix.texi:10867
 #, no-wrap
 msgid "guix import stackage --lts-version=7.18 HTTP\n"
-msgstr ""
+msgstr "guix import stackage --lts-version=7.18 HTTP\n"
 
 #. type: item
-#: doc/guix.texi:9329 doc/guix.texi:9330 doc/guix.texi:9546
+#: doc/guix.texi:10869 doc/guix.texi:10870 doc/guix.texi:11088
 #, no-wrap
 msgid "elpa"
-msgstr ""
+msgstr "elpa"
 
 #. type: table
-#: doc/guix.texi:9333
+#: doc/guix.texi:10873
 msgid "Import metadata from an Emacs Lisp Package Archive (ELPA) package repository (@pxref{Packages,,, emacs, The GNU Emacs Manual})."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:9337
+#: doc/guix.texi:10877
 #, no-wrap
 msgid "--archive=@var{repo}"
-msgstr ""
+msgstr "--archive=@var{repo}"
 
 #. type: itemx
-#: doc/guix.texi:9338
+#: doc/guix.texi:10878
 #, no-wrap
 msgid "-a @var{repo}"
-msgstr ""
+msgstr "-a @var{repo}"
 
 #. type: table
-#: doc/guix.texi:9342
+#: doc/guix.texi:10882
 msgid "@var{repo} identifies the archive repository from which to retrieve the information.  Currently the supported repositories and their identifiers are:"
 msgstr ""
 
 #. type: itemize
-#: doc/guix.texi:9346
+#: doc/guix.texi:10886
 msgid "@uref{https://elpa.gnu.org/packages, GNU}, selected by the @code{gnu} identifier.  This is the default."
 msgstr ""
 
 #. type: itemize
-#: doc/guix.texi:9352
+#: doc/guix.texi:10892
 msgid "Packages from @code{elpa.gnu.org} are signed with one of the keys contained in the GnuPG keyring at @file{share/emacs/25.1/etc/package-keyring.gpg} (or similar) in the @code{emacs} package (@pxref{Package Installation, ELPA package signatures,, emacs, The GNU Emacs Manual})."
 msgstr ""
 
 #. type: itemize
-#: doc/guix.texi:9356
+#: doc/guix.texi:10896
 msgid "@uref{https://stable.melpa.org/packages, MELPA-Stable}, selected by the @code{melpa-stable} identifier."
 msgstr ""
 
 #. type: itemize
-#: doc/guix.texi:9360
+#: doc/guix.texi:10900
 msgid "@uref{https://melpa.org/packages, MELPA}, selected by the @code{melpa} identifier."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:9369 doc/guix.texi:9370 doc/guix.texi:9564
+#: doc/guix.texi:10909 doc/guix.texi:10910 doc/guix.texi:11106
 #, no-wrap
 msgid "crate"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9373
+#: doc/guix.texi:10913
 msgid "Import metadata from the crates.io Rust package repository @uref{https://crates.io, crates.io}, as in this example:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:9376
+#: doc/guix.texi:10916
 #, no-wrap
 msgid "guix import crate blake2-rfc\n"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9379
+#: doc/guix.texi:10919
 msgid "The crate importer also allows you to specify a version string:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:9382
+#: doc/guix.texi:10922
 #, no-wrap
 msgid "guix import crate constant-time-eq@@0.1.0\n"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9385
+#: doc/guix.texi:10925
 #, fuzzy
-#| msgid "Additional Build Options"
 msgid "Additional options include:"
-msgstr "Дополительные опции сборки"
+msgstr "Дополительные опции включают"
 
 #. type: item
-#: doc/guix.texi:9394
+#: doc/guix.texi:10934
 #, no-wrap
 msgid "opam"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:9395
+#: doc/guix.texi:10935
 #, no-wrap
 msgid "OPAM"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:9396
+#: doc/guix.texi:10936
 #, no-wrap
 msgid "OCaml"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9399
+#: doc/guix.texi:10939
 msgid "Import metadata from the @uref{https://opam.ocaml.org/, OPAM} package repository used by the OCaml community."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:9404
+#: doc/guix.texi:10944
 msgid "The structure of the @command{guix import} code is modular.  It would be useful to have more importers for other package formats, and your help is welcome here (@pxref{Contributing})."
 msgstr ""
 
 #. type: section
-#: doc/guix.texi:9406
+#: doc/guix.texi:10946
 #, no-wrap
 msgid "Invoking @command{guix refresh}"
 msgstr ""
 
 #. type: command{#1}
-#: doc/guix.texi:9408
+#: doc/guix.texi:10948
 #, no-wrap
 msgid "guix refresh"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:9413
+#: doc/guix.texi:10953
 msgid "The primary audience of the @command{guix refresh} command is developers of the GNU software distribution.  By default, it reports any packages provided by the distribution that are outdated compared to the latest upstream version, like this:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:9418
+#: doc/guix.texi:10958
 #, no-wrap
 msgid ""
 "$ guix refresh\n"
 "gnu/packages/gettext.scm:29:13: gettext would be upgraded from 0.18.1.1 to 0.18.2.1\n"
 "gnu/packages/glib.scm:77:12: glib would be upgraded from 2.34.3 to 2.37.0\n"
 msgstr ""
+"$ guix refresh\n"
+"gnu/packages/gettext.scm:29:13: gettext would be upgraded from 0.18.1.1 to 0.18.2.1\n"
+"gnu/packages/glib.scm:77:12: glib would be upgraded from 2.34.3 to 2.37.0\n"
 
 #. type: Plain text
-#: doc/guix.texi:9422
-msgid "Alternately, one can specify packages to consider, in which case a warning is emitted for packages that lack an updater:"
+#: doc/guix.texi:10962
+msgid "Alternatively, one can specify packages to consider, in which case a warning is emitted for packages that lack an updater:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:9427
+#: doc/guix.texi:10967
 #, no-wrap
 msgid ""
 "$ guix refresh coreutils guile guile-ssh\n"
 "gnu/packages/ssh.scm:205:2: warning: no updater for guile-ssh\n"
 "gnu/packages/guile.scm:136:12: guile would be upgraded from 2.0.12 to 2.0.13\n"
 msgstr ""
+"$ guix refresh coreutils guile guile-ssh\n"
+"gnu/packages/ssh.scm:205:2: warning: no updater for guile-ssh\n"
+"gnu/packages/guile.scm:136:12: guile would be upgraded from 2.0.12 to 2.0.13\n"
 
 #. type: Plain text
-#: doc/guix.texi:9436
+#: doc/guix.texi:10976
 msgid "@command{guix refresh} browses the upstream repository of each package and determines the highest version number of the releases therein.  The command knows how to update specific types of packages: GNU packages, ELPA packages, etc.---see the documentation for @option{--type} below.  There are many packages, though, for which it lacks a method to determine whether a new upstream release is available.  However, the mechanism is extensible, so feel free to get in touch with us to add a new method!"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9441
+#: doc/guix.texi:10981
 msgid "Consider the packages specified, and all the packages upon which they depend."
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:9449
+#: doc/guix.texi:10989
 #, no-wrap
 msgid ""
 "$ guix refresh --recursive coreutils\n"
@@ -17359,14 +20348,20 @@ msgid ""
 "gnu/packages/multiprecision.scm:40:12: info: 6.1.2 is already the latest version of gmp\n"
 "@dots{}\n"
 msgstr ""
+"$ guix refresh --recursive coreutils\n"
+"gnu/packages/acl.scm:35:2: warning: no updater for acl\n"
+"gnu/packages/m4.scm:30:12: info: 1.4.18 is already the latest version of m4\n"
+"gnu/packages/xml.scm:68:2: warning: no updater for expat\n"
+"gnu/packages/multiprecision.scm:40:12: info: 6.1.2 is already the latest version of gmp\n"
+"@dots{}\n"
 
 #. type: Plain text
-#: doc/guix.texi:9457
+#: doc/guix.texi:10997
 msgid "Sometimes the upstream name differs from the package name used in Guix, and @command{guix refresh} needs a little help.  Most updaters honor the @code{upstream-name} property in package definitions, which can be used to that effect:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:9464
+#: doc/guix.texi:11004
 #, no-wrap
 msgid ""
 "(define-public network-manager\n"
@@ -17375,244 +20370,260 @@ msgid ""
 "    ;; @dots{}\n"
 "    (properties '((upstream-name . \"NetworkManager\")))))\n"
 msgstr ""
+"(define-public network-manager\n"
+"  (package\n"
+"    (name \"network-manager\")\n"
+"    ;; @dots{}\n"
+"    (properties '((upstream-name . \"NetworkManager\")))))\n"
 
 #. type: Plain text
-#: doc/guix.texi:9473
-msgid "When passed @code{--update}, it modifies distribution source files to update the version numbers and source tarball hashes of those package recipes (@pxref{Defining Packages}).  This is achieved by downloading each package's latest source tarball and its associated OpenPGP signature, authenticating the downloaded tarball against its signature using @command{gpgv}, and finally computing its hash---note that GnuPG must be installed and in @code{$PATH}; run @code{guix install gnupg} if needed."
+#: doc/guix.texi:11013
+msgid "When passed @option{--update}, it modifies distribution source files to update the version numbers and source tarball hashes of those package recipes (@pxref{Defining Packages}).  This is achieved by downloading each package's latest source tarball and its associated OpenPGP signature, authenticating the downloaded tarball against its signature using @command{gpgv}, and finally computing its hash---note that GnuPG must be installed and in @code{$PATH}; run @code{guix install gnupg} if needed."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:9479
+#: doc/guix.texi:11019
 msgid "When the public key used to sign the tarball is missing from the user's keyring, an attempt is made to automatically retrieve it from a public key server; when this is successful, the key is added to the user's keyring; otherwise, @command{guix refresh} reports an error."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:9481
+#: doc/guix.texi:11021
 msgid "The following options are supported:"
-msgstr ""
+msgstr "Поддерживаются следующие варианты:"
 
 #. type: table
-#: doc/guix.texi:9489 doc/guix.texi:10194
+#: doc/guix.texi:11029 doc/guix.texi:11805
 msgid "This is useful to precisely refer to a package, as in this example:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:9492
+#: doc/guix.texi:11032
 #, no-wrap
 msgid "guix refresh -l -e '(@@@@ (gnu packages commencement) glibc-final)'\n"
-msgstr ""
+msgstr "guix refresh -l -e '(@@@@ (gnu packages commencement) glibc-final)'\n"
 
 #. type: table
-#: doc/guix.texi:9496
-msgid "This command lists the dependents of the ``final'' libc (essentially all the packages.)"
+#: doc/guix.texi:11036
+msgid "This command lists the dependents of the ``final'' libc (essentially all the packages)."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:9497
+#: doc/guix.texi:11037
 #, no-wrap
 msgid "--update"
-msgstr ""
+msgstr "--update"
 
 #. type: itemx
-#: doc/guix.texi:9498
+#: doc/guix.texi:11038
 #, no-wrap
 msgid "-u"
-msgstr ""
+msgstr "-u"
 
 #. type: table
-#: doc/guix.texi:9502
+#: doc/guix.texi:11042
 msgid "Update distribution source files (package recipes) in place.  This is usually run from a checkout of the Guix source tree (@pxref{Running Guix Before It Is Installed}):"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:9505
+#: doc/guix.texi:11045
 #, no-wrap
 msgid "$ ./pre-inst-env guix refresh -s non-core -u\n"
-msgstr ""
+msgstr "$ ./pre-inst-env guix refresh -s non-core -u\n"
 
 #. type: table
-#: doc/guix.texi:9508
+#: doc/guix.texi:11048
 msgid "@xref{Defining Packages}, for more information on package definitions."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:9509
+#: doc/guix.texi:11049
 #, no-wrap
 msgid "--select=[@var{subset}]"
-msgstr ""
+msgstr "--select=[@var{subset}]"
 
 #. type: itemx
-#: doc/guix.texi:9510
+#: doc/guix.texi:11050
 #, no-wrap
 msgid "-s @var{subset}"
-msgstr ""
+msgstr "-s @var{subset}"
 
 #. type: table
-#: doc/guix.texi:9513
+#: doc/guix.texi:11053
 msgid "Select all the packages in @var{subset}, one of @code{core} or @code{non-core}."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9520
+#: doc/guix.texi:11060
 msgid "The @code{core} subset refers to all the packages at the core of the distribution---i.e., packages that are used to build ``everything else''.  This includes GCC, libc, Binutils, Bash, etc.  Usually, changing one of these packages in the distribution entails a rebuild of all the others.  Thus, such updates are an inconvenience to users in terms of build time or bandwidth used to achieve the upgrade."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9524
+#: doc/guix.texi:11064
 msgid "The @code{non-core} subset refers to the remaining packages.  It is typically useful in cases where an update of the core packages would be inconvenient."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9529
+#: doc/guix.texi:11069
 msgid "Select all the packages from the manifest in @var{file}. This is useful to check if any packages of the user manifest can be updated."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:9530
+#: doc/guix.texi:11070
 #, no-wrap
 msgid "--type=@var{updater}"
-msgstr ""
+msgstr "--type=@var{updater}"
 
 #. type: itemx
-#: doc/guix.texi:9531
+#: doc/guix.texi:11071
 #, no-wrap
 msgid "-t @var{updater}"
-msgstr ""
+msgstr "-t @var{updater}"
 
 #. type: table
-#: doc/guix.texi:9534
+#: doc/guix.texi:11074
 msgid "Select only packages handled by @var{updater} (may be a comma-separated list of updaters).  Currently, @var{updater} may be one of:"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9538
+#: doc/guix.texi:11078
 msgid "the updater for GNU packages;"
+msgstr "средство обновления пакетов GNU;"
+
+#. type: item
+#: doc/guix.texi:11078
+#, no-wrap
+msgid "savannah"
+msgstr "savannah"
+
+#. type: table
+#: doc/guix.texi:11080
+msgid "the updater for packages hosted at @uref{https://savannah.gnu.org, Savannah};"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:9538
+#: doc/guix.texi:11080
 #, no-wrap
 msgid "gnome"
-msgstr ""
+msgstr "gnome"
 
 #. type: table
-#: doc/guix.texi:9540
+#: doc/guix.texi:11082
 msgid "the updater for GNOME packages;"
-msgstr ""
+msgstr "средство обновления пакетов GNOME;"
 
 #. type: item
-#: doc/guix.texi:9540
+#: doc/guix.texi:11082
 #, no-wrap
 msgid "kde"
-msgstr ""
+msgstr "kde"
 
 #. type: table
-#: doc/guix.texi:9542
+#: doc/guix.texi:11084
 msgid "the updater for KDE packages;"
-msgstr ""
+msgstr "средство обновления пакетов KDE"
 
 #. type: item
-#: doc/guix.texi:9542
+#: doc/guix.texi:11084
 #, no-wrap
 msgid "xorg"
-msgstr ""
+msgstr "xorg"
 
 #. type: table
-#: doc/guix.texi:9544
+#: doc/guix.texi:11086
 msgid "the updater for X.org packages;"
-msgstr ""
+msgstr "средство обновления пакетов X.org"
 
 #. type: item
-#: doc/guix.texi:9544
+#: doc/guix.texi:11086
 #, no-wrap
 msgid "kernel.org"
-msgstr ""
+msgstr "kernel.org"
 
 #. type: table
-#: doc/guix.texi:9546
+#: doc/guix.texi:11088
 msgid "the updater for packages hosted on kernel.org;"
-msgstr ""
+msgstr "средство обновления пакетов, размещенных на kernel.org"
 
 #. type: table
-#: doc/guix.texi:9548
+#: doc/guix.texi:11090
 msgid "the updater for @uref{https://elpa.gnu.org/, ELPA} packages;"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9550
+#: doc/guix.texi:11092
 msgid "the updater for @uref{https://cran.r-project.org/, CRAN} packages;"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:9550
+#: doc/guix.texi:11092
 #, no-wrap
 msgid "bioconductor"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9552
+#: doc/guix.texi:11094
 msgid "the updater for @uref{https://www.bioconductor.org/, Bioconductor} R packages;"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9554
+#: doc/guix.texi:11096
 msgid "the updater for @uref{https://www.cpan.org/, CPAN} packages;"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9556
+#: doc/guix.texi:11098
 msgid "the updater for @uref{https://pypi.python.org, PyPI} packages."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9558
+#: doc/guix.texi:11100
 msgid "the updater for @uref{https://rubygems.org, RubyGems} packages."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:9558
+#: doc/guix.texi:11100
 #, no-wrap
 msgid "github"
-msgstr ""
+msgstr "github"
 
 #. type: table
-#: doc/guix.texi:9560
+#: doc/guix.texi:11102
 msgid "the updater for @uref{https://github.com, GitHub} packages."
-msgstr ""
+msgstr "средство обновления пакетов @uref{https://github.com, GitHub}"
 
 #. type: table
-#: doc/guix.texi:9562
+#: doc/guix.texi:11104
 msgid "the updater for @uref{https://hackage.haskell.org, Hackage} packages."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9564
+#: doc/guix.texi:11106
 msgid "the updater for @uref{https://www.stackage.org, Stackage} packages."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9566
+#: doc/guix.texi:11108
 msgid "the updater for @uref{https://crates.io, Crates} packages."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:9566
+#: doc/guix.texi:11108
 #, no-wrap
 msgid "launchpad"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9568
+#: doc/guix.texi:11110
 msgid "the updater for @uref{https://launchpad.net, Launchpad} packages."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9572
+#: doc/guix.texi:11114
 msgid "For instance, the following command only checks for updates of Emacs packages hosted at @code{elpa.gnu.org} and for updates of CRAN packages:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:9577
+#: doc/guix.texi:11119
 #, no-wrap
 msgid ""
 "$ guix refresh --type=elpa,cran\n"
@@ -17621,77 +20632,77 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:9583
+#: doc/guix.texi:11125
 msgid "In addition, @command{guix refresh} can be passed one or more package names, as in this example:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:9586
+#: doc/guix.texi:11128
 #, no-wrap
 msgid "$ ./pre-inst-env guix refresh -u emacs idutils gcc@@4.8\n"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:9592
-msgid "The command above specifically updates the @code{emacs} and @code{idutils} packages.  The @code{--select} option would have no effect in this case."
+#: doc/guix.texi:11134
+msgid "The command above specifically updates the @code{emacs} and @code{idutils} packages.  The @option{--select} option would have no effect in this case."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:9597
+#: doc/guix.texi:11139
 msgid "When considering whether to upgrade a package, it is sometimes convenient to know which packages would be affected by the upgrade and should be checked for compatibility.  For this the following option may be used when passing @command{guix refresh} one or more package names:"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:9600
+#: doc/guix.texi:11142
 #, no-wrap
 msgid "--list-updaters"
 msgstr ""
 
 #. type: itemx
-#: doc/guix.texi:9601
+#: doc/guix.texi:11143
 #, no-wrap
 msgid "-L"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9603
-msgid "List available updaters and exit (see @option{--type} above.)"
+#: doc/guix.texi:11145
+msgid "List available updaters and exit (see @option{--type} above)."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9606
+#: doc/guix.texi:11148
 msgid "For each updater, display the fraction of packages it covers; at the end, display the fraction of packages covered by all these updaters."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:9607
+#: doc/guix.texi:11149
 #, no-wrap
 msgid "--list-dependent"
 msgstr ""
 
 #. type: itemx
-#: doc/guix.texi:9608 doc/guix.texi:9856
+#: doc/guix.texi:11150 doc/guix.texi:11409
 #, no-wrap
 msgid "-l"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9611
+#: doc/guix.texi:11153
 msgid "List top-level dependent packages that would need to be rebuilt as a result of upgrading one or more packages."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9615
+#: doc/guix.texi:11157
 msgid "@xref{Invoking guix graph, the @code{reverse-package} type of @command{guix graph}}, for information on how to visualize the list of dependents of a package."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:9621
-msgid "Be aware that the @code{--list-dependent} option only @emph{approximates} the rebuilds that would be required as a result of an upgrade.  More rebuilds might be required under some circumstances."
+#: doc/guix.texi:11163
+msgid "Be aware that the @option{--list-dependent} option only @emph{approximates} the rebuilds that would be required as a result of an upgrade.  More rebuilds might be required under some circumstances."
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:9626
+#: doc/guix.texi:11168
 #, no-wrap
 msgid ""
 "$ guix refresh --list-dependent flex\n"
@@ -17700,23 +20711,23 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:9630
+#: doc/guix.texi:11172
 msgid "The command above lists a set of packages that could be built to check for compatibility with an upgraded @code{flex} package."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:9633
+#: doc/guix.texi:11175
 #, no-wrap
 msgid "--list-transitive"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9635
+#: doc/guix.texi:11177
 msgid "List all the packages which one or more packages depend upon."
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:9640
+#: doc/guix.texi:11182
 #, no-wrap
 msgid ""
 "$ guix refresh --list-transitive flex\n"
@@ -17725,287 +20736,307 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:9646
+#: doc/guix.texi:11188
 msgid "The command above lists a set of packages which, when changed, would cause @code{flex} to be rebuilt."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:9648
+#: doc/guix.texi:11190
 msgid "The following options can be used to customize GnuPG operation:"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:9651
+#: doc/guix.texi:11193
 #, no-wrap
 msgid "--gpg=@var{command}"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9654
+#: doc/guix.texi:11196
 msgid "Use @var{command} as the GnuPG 2.x command.  @var{command} is searched for in @code{$PATH}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:9655
+#: doc/guix.texi:11197
 #, no-wrap
 msgid "--keyring=@var{file}"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9661
+#: doc/guix.texi:11203
 msgid "Use @var{file} as the keyring for upstream keys.  @var{file} must be in the @dfn{keybox format}.  Keybox files usually have a name ending in @file{.kbx} and the GNU@tie{}Privacy Guard (GPG) can manipulate these files (@pxref{kbxutil, @command{kbxutil},, gnupg, Using the GNU Privacy Guard}, for information on a tool to manipulate keybox files)."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9667
-msgid "When this option is omitted, @command{guix refresh} uses @file{~/.config/guix/upstream/trustedkeys.kbx} as the keyring for upstream signing keys.  OpenPGP signatures are checked against keys from this keyring; missing keys are downloaded to this keyring as well (see @option{--key-download} below.)"
+#: doc/guix.texi:11209
+msgid "When this option is omitted, @command{guix refresh} uses @file{~/.config/guix/upstream/trustedkeys.kbx} as the keyring for upstream signing keys.  OpenPGP signatures are checked against keys from this keyring; missing keys are downloaded to this keyring as well (see @option{--key-download} below)."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9670
+#: doc/guix.texi:11212
 msgid "You can export keys from your default GPG keyring into a keybox file using commands like this one:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:9673
+#: doc/guix.texi:11215
 #, no-wrap
 msgid "gpg --export rms@@gnu.org | kbxutil --import-openpgp >> mykeyring.kbx\n"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9676
+#: doc/guix.texi:11218
 msgid "Likewise, you can fetch keys to a specific keybox file like this:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:9680
+#: doc/guix.texi:11222
 #, no-wrap
 msgid ""
 "gpg --no-default-keyring --keyring mykeyring.kbx \\\n"
 "  --recv-keys @value{OPENPGP-SIGNING-KEY-ID}\n"
 msgstr ""
+"gpg --no-default-keyring --keyring mykeyring.kbx \\\n"
+"  --recv-keys @value{OPENPGP-SIGNING-KEY-ID}\n"
 
 #. type: table
-#: doc/guix.texi:9684
+#: doc/guix.texi:11226
 msgid "@ref{GPG Configuration Options, @option{--keyring},, gnupg, Using the GNU Privacy Guard}, for more information on GPG's @option{--keyring} option."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9688
+#: doc/guix.texi:11230
 msgid "Handle missing OpenPGP keys according to @var{policy}, which may be one of:"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:9690 doc/guix.texi:17209
+#: doc/guix.texi:11232 doc/guix.texi:19428
 #, no-wrap
 msgid "always"
-msgstr ""
+msgstr "всегда"
 
 #. type: table
-#: doc/guix.texi:9693
+#: doc/guix.texi:11235
 msgid "Always download missing OpenPGP keys from the key server, and add them to the user's GnuPG keyring."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:9694 doc/guix.texi:17211
+#: doc/guix.texi:11236 doc/guix.texi:19430
 #, no-wrap
 msgid "never"
-msgstr ""
+msgstr "никогда"
 
 #. type: table
-#: doc/guix.texi:9696
+#: doc/guix.texi:11238
 msgid "Never try to download missing OpenPGP keys.  Instead just bail out."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:9697
+#: doc/guix.texi:11239
 #, no-wrap
 msgid "interactive"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9700
+#: doc/guix.texi:11242
 msgid "When a package signed with an unknown OpenPGP key is encountered, ask the user whether to download it or not.  This is the default behavior."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:9702
+#: doc/guix.texi:11244
 #, no-wrap
 msgid "--key-server=@var{host}"
-msgstr ""
+msgstr "--key-server=@var{host}"
 
 #. type: table
-#: doc/guix.texi:9704
+#: doc/guix.texi:11246
 msgid "Use @var{host} as the OpenPGP key server when importing a public key."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:9724
-msgid "The @code{github} updater uses the @uref{https://developer.github.com/v3/, GitHub API} to query for new releases.  When used repeatedly e.g.@: when refreshing all packages, GitHub will eventually refuse to answer any further API requests.  By default 60 API requests per hour are allowed, and a full refresh on all GitHub packages in Guix requires more than this.  Authentication with GitHub through the use of an API token alleviates these limits.  To use an API token, set the environment variable @code{GUIX_GITHUB_TOKEN} to a token procured from @uref{https://github.com/settings/tokens} or otherwise."
+#: doc/guix.texi:11266
+msgid "The @code{github} updater uses the @uref{https://developer.github.com/v3/, GitHub API} to query for new releases.  When used repeatedly e.g.@: when refreshing all packages, GitHub will eventually refuse to answer any further API requests.  By default 60 API requests per hour are allowed, and a full refresh on all GitHub packages in Guix requires more than this.  Authentication with GitHub through the use of an API token alleviates these limits.  To use an API token, set the environment variable @env{GUIX_GITHUB_TOKEN} to a token procured from @uref{https://github.com/settings/tokens} or otherwise."
 msgstr ""
 
 #. type: section
-#: doc/guix.texi:9727
+#: doc/guix.texi:11269
 #, no-wrap
 msgid "Invoking @command{guix lint}"
-msgstr ""
+msgstr "Вызов  @command{guix lint}"
 
 #. type: command{#1}
-#: doc/guix.texi:9729
+#: doc/guix.texi:11271
 #, no-wrap
 msgid "guix lint"
-msgstr ""
+msgstr "guix lint"
 
 #. type: cindex
-#: doc/guix.texi:9730
+#: doc/guix.texi:11272
 #, no-wrap
 msgid "package, checking for errors"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:9736
-msgid "The @command{guix lint} command is meant to help package developers avoid common errors and use a consistent style.  It runs a number of checks on a given set of packages in order to find common mistakes in their definitions.  Available @dfn{checkers} include (see @code{--list-checkers} for a complete list):"
+#: doc/guix.texi:11278
+msgid "The @command{guix lint} command is meant to help package developers avoid common errors and use a consistent style.  It runs a number of checks on a given set of packages in order to find common mistakes in their definitions.  Available @dfn{checkers} include (see @option{--list-checkers} for a complete list):"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9742
+#: doc/guix.texi:11284
 msgid "Validate certain typographical and stylistic rules about package descriptions and synopses."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:9743
+#: doc/guix.texi:11285
 #, no-wrap
 msgid "inputs-should-be-native"
-msgstr ""
+msgstr "inputs-should-be-native"
 
 #. type: table
-#: doc/guix.texi:9745
+#: doc/guix.texi:11287
 msgid "Identify inputs that should most likely be native inputs."
 msgstr ""
 
 #. type: itemx
-#: doc/guix.texi:9748
+#: doc/guix.texi:11290
 #, no-wrap
 msgid "mirror-url"
-msgstr ""
+msgstr "mirror-url"
 
 #. type: itemx
-#: doc/guix.texi:9749
+#: doc/guix.texi:11291
 #, no-wrap
 msgid "github-url"
-msgstr ""
+msgstr "github-url"
 
 #. type: itemx
-#: doc/guix.texi:9750
+#: doc/guix.texi:11292
 #, no-wrap
 msgid "source-file-name"
-msgstr ""
+msgstr "source-file-name"
 
 #. type: table
-#: doc/guix.texi:9757
+#: doc/guix.texi:11299
 msgid "Probe @code{home-page} and @code{source} URLs and report those that are invalid.  Suggest a @code{mirror://} URL when applicable.  If the @code{source} URL redirects to a GitHub URL, recommend usage of the GitHub URL.  Check that the source file name is meaningful, e.g.@: is not just a version number or ``git-checkout'', without a declared @code{file-name} (@pxref{origin Reference})."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:9758
+#: doc/guix.texi:11300
 #, no-wrap
 msgid "source-unstable-tarball"
-msgstr ""
+msgstr "source-unstable-tarball"
 
 #. type: table
-#: doc/guix.texi:9762
+#: doc/guix.texi:11304
 msgid "Parse the @code{source} URL to determine if a tarball from GitHub is autogenerated or if it is a release tarball.  Unfortunately GitHub's autogenerated tarballs are sometimes regenerated."
 msgstr ""
 
+#. type: table
+#: doc/guix.texi:11308
+#, fuzzy
+#| msgid "Return the derivation(s) leading to the given store items (@pxref{Derivations})."
+msgid "Check that the derivation of the given packages can be successfully computed for all the supported systems (@pxref{Derivations})."
+msgstr "Вернуть деривацию(-ии), производящие данные элементы склада (@pxref{Derivations})."
+
 #. type: item
-#: doc/guix.texi:9763
+#: doc/guix.texi:11309
 #, fuzzy, no-wrap
-#| msgid "archive"
+#| msgid "profile collisions"
+msgid "profile-collisions"
+msgstr "противоречеия профиля"
+
+#. type: table
+#: doc/guix.texi:11315
+msgid "Check whether installing the given packages in a profile would lead to collisions.  Collisions occur when several packages with the same name but a different version or a different store file name are propagated.  @xref{package Reference, @code{propagated-inputs}}, for more information on propagated inputs."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:11316
+#, no-wrap
 msgid "archival"
-msgstr "архив"
+msgstr "архивирование"
 
 #. type: cindex
-#: doc/guix.texi:9764
+#: doc/guix.texi:11317
 #, no-wrap
 msgid "Software Heritage, source code archive"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:9765
+#: doc/guix.texi:11318
 #, no-wrap
 msgid "archival of source code, Software Heritage"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9768
+#: doc/guix.texi:11321
 msgid "Checks whether the package's source code is archived at @uref{https://www.softwareheritage.org, Software Heritage}."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9776
+#: doc/guix.texi:11329
 msgid "When the source code that is not archived comes from a version-control system (VCS)---e.g., it's obtained with @code{git-fetch}, send Software Heritage a ``save'' request so that it eventually archives it.  This ensures that the source will remain available in the long term, and that Guix can fall back to Software Heritage should the source code disappear from its original host.  The status of recent ``save'' requests can be @uref{https://archive.softwareheritage.org/save/#requests, viewed on-line}."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9781
+#: doc/guix.texi:11334
 msgid "When source code is a tarball obtained with @code{url-fetch}, simply print a message when it is not archived.  As of this writing, Software Heritage does not allow requests to save arbitrary tarballs; we are working on ways to ensure that non-VCS source code is also archived."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9787
+#: doc/guix.texi:11340
 msgid "Software Heritage @uref{https://archive.softwareheritage.org/api/#rate-limiting, limits the request rate per IP address}.  When the limit is reached, @command{guix lint} prints a message and the @code{archival} checker stops doing anything until that limit has been reset."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:9788
+#: doc/guix.texi:11341
 #, no-wrap
 msgid "cve"
-msgstr ""
+msgstr "cve"
 
 #. type: cindex
-#: doc/guix.texi:9789 doc/guix.texi:28113
+#: doc/guix.texi:11342 doc/guix.texi:31867
 #, no-wrap
 msgid "security vulnerabilities"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:9790
+#: doc/guix.texi:11343
 #, no-wrap
 msgid "CVE, Common Vulnerabilities and Exposures"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9795
+#: doc/guix.texi:11348
 msgid "Report known vulnerabilities found in the Common Vulnerabilities and Exposures (CVE) databases of the current and past year @uref{https://nvd.nist.gov/vuln/data-feeds, published by the US NIST}."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9797
+#: doc/guix.texi:11350
 msgid "To view information about a particular vulnerability, visit pages such as:"
 msgstr ""
 
 #. type: indicateurl{#1}
-#: doc/guix.texi:9801
+#: doc/guix.texi:11354
 msgid "https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-YYYY-ABCD"
 msgstr ""
 
 #. type: indicateurl{#1}
-#: doc/guix.texi:9803
+#: doc/guix.texi:11356
 msgid "https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-YYYY-ABCD"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9808
+#: doc/guix.texi:11361
 msgid "where @code{CVE-YYYY-ABCD} is the CVE identifier---e.g., @code{CVE-2015-7554}."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9813
+#: doc/guix.texi:11366
 msgid "Package developers can specify in package recipes the @uref{https://nvd.nist.gov/products/cpe,Common Platform Enumeration (CPE)} name and version of the package when they differ from the name or version that Guix uses, as in this example:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:9821
+#: doc/guix.texi:11374
 #, no-wrap
 msgid ""
 "(package\n"
@@ -18017,12 +21048,12 @@ msgid ""
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9828
+#: doc/guix.texi:11381
 msgid "Some entries in the CVE database do not specify which version of a package they apply to, and would thus ``stick around'' forever.  Package developers who found CVE alerts and verified they can be ignored can declare them as in this example:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:9838
+#: doc/guix.texi:11391
 #, no-wrap
 msgid ""
 "(package\n"
@@ -18036,91 +21067,91 @@ msgid ""
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:9840
+#: doc/guix.texi:11393
 #, no-wrap
 msgid "formatting"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9843
+#: doc/guix.texi:11396
 msgid "Warn about obvious source code formatting issues: trailing white space, use of tabulations, etc."
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:9849
+#: doc/guix.texi:11402
 #, no-wrap
 msgid "guix lint @var{options} @var{package}@dots{}\n"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:9853
+#: doc/guix.texi:11406
 msgid "If no package is given on the command line, then all packages are checked.  The @var{options} may be zero or more of the following:"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:9855
+#: doc/guix.texi:11408
 #, no-wrap
 msgid "--list-checkers"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9859
+#: doc/guix.texi:11412
 msgid "List and describe all the available checkers that will be run on packages and exit."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:9860
+#: doc/guix.texi:11413
 #, no-wrap
 msgid "--checkers"
 msgstr ""
 
 #. type: itemx
-#: doc/guix.texi:9861
+#: doc/guix.texi:11414
 #, no-wrap
 msgid "-c"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9864
-msgid "Only enable the checkers specified in a comma-separated list using the names returned by @code{--list-checkers}."
+#: doc/guix.texi:11417
+msgid "Only enable the checkers specified in a comma-separated list using the names returned by @option{--list-checkers}."
 msgstr ""
 
 #. type: section
-#: doc/guix.texi:9876
+#: doc/guix.texi:11429
 #, no-wrap
 msgid "Invoking @command{guix size}"
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:9878 doc/guix.texi:27210
+#: doc/guix.texi:11431 doc/guix.texi:30869
 #, no-wrap
 msgid "size"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:9879
+#: doc/guix.texi:11432
 #, no-wrap
 msgid "package size"
 msgstr ""
 
 #. type: command{#1}
-#: doc/guix.texi:9881
+#: doc/guix.texi:11434
 #, no-wrap
 msgid "guix size"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:9888
+#: doc/guix.texi:11441
 msgid "The @command{guix size} command helps package developers profile the disk usage of packages.  It is easy to overlook the impact of an additional dependency added to a package, or the impact of using a single output for a package that could easily be split (@pxref{Packages with Multiple Outputs}).  Such are the typical issues that @command{guix size} can highlight."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:9893
+#: doc/guix.texi:11446
 msgid "The command can be passed one or more package specifications such as @code{gcc@@4.8} or @code{guile:debug}, or a file name in the store.  Consider this example:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:9906
+#: doc/guix.texi:11459
 #, no-wrap
 msgid ""
 "$ guix size coreutils\n"
@@ -18137,43 +21168,54 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:9912
+#: doc/guix.texi:11465
 msgid "The store items listed here constitute the @dfn{transitive closure} of Coreutils---i.e., Coreutils and all its dependencies, recursively---as would be returned by:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:9915
+#: doc/guix.texi:11468
 #, no-wrap
 msgid "$ guix gc -R /gnu/store/@dots{}-coreutils-8.23\n"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:9923
+#: doc/guix.texi:11476
 msgid "Here the output shows three columns next to store items.  The first column, labeled ``total'', shows the size in mebibytes (MiB) of the closure of the store item---that is, its own size plus the size of all its dependencies.  The next column, labeled ``self'', shows the size of the item itself.  The last column shows the ratio of the size of the item itself to the space occupied by all the items listed here."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:9929
+#: doc/guix.texi:11482
 msgid "In this example, we see that the closure of Coreutils weighs in at 79@tie{}MiB, most of which is taken by libc and GCC's run-time support libraries.  (That libc and GCC's libraries represent a large fraction of the closure is not a problem @i{per se} because they are always available on the system anyway.)"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:9938
+#: doc/guix.texi:11485
+msgid "Since the command also accepts store file names, assessing the size of a build result is straightforward:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:11488
+#, fuzzy, no-wrap
+msgid "guix size $(guix system build config.scm)\n"
+msgstr "guix size $(guix system build config.scm)\n"
+
+#. type: Plain text
+#: doc/guix.texi:11498
 msgid "When the package(s) passed to @command{guix size} are available in the store@footnote{More precisely, @command{guix size} looks for the @emph{ungrafted} variant of the given package(s), as returned by @code{guix build @var{package} --no-grafts}.  @xref{Security Updates}, for information on grafts.}, @command{guix size} queries the daemon to determine its dependencies, and measures its size in the store, similar to @command{du -ms --apparent-size} (@pxref{du invocation,,, coreutils, GNU Coreutils})."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:9943
+#: doc/guix.texi:11503
 msgid "When the given packages are @emph{not} in the store, @command{guix size} reports information based on the available substitutes (@pxref{Substitutes}).  This makes it possible it to profile disk usage of store items that are not even on disk, only available remotely."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:9945
+#: doc/guix.texi:11505
 msgid "You can also specify several package names:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:9955
+#: doc/guix.texi:11515
 #, no-wrap
 msgid ""
 "$ guix size coreutils grep sed bash\n"
@@ -18185,739 +21227,831 @@ msgid ""
 "@dots{}\n"
 "total: 102.3 MiB\n"
 msgstr ""
+"$ guix size coreutils grep sed bash\n"
+"store item                               total    self\n"
+"/gnu/store/@dots{}-coreutils-8.24          77.8    13.8  13.4%\n"
+"/gnu/store/@dots{}-grep-2.22               73.1     0.8   0.8%\n"
+"/gnu/store/@dots{}-bash-4.3.42             72.3     4.7   4.6%\n"
+"/gnu/store/@dots{}-readline-6.3            67.6     1.2   1.2%\n"
+"@dots{}\n"
+"total: 102.3 MiB\n"
 
 #. type: Plain text
-#: doc/guix.texi:9961
+#: doc/guix.texi:11521
 msgid "In this example we see that the combination of the four packages takes 102.3@tie{}MiB in total, which is much less than the sum of each closure since they have a lot of dependencies in common."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:9963
-msgid "The available options are:"
+#: doc/guix.texi:11527
+msgid "When looking at the profile returned by @command{guix size}, you may find yourself wondering why a given package shows up in the profile at all.  To understand it, you can use @command{guix graph --path -t references} to display the shortest path between the two packages (@pxref{Invoking guix graph})."
 msgstr ""
 
+#. type: Plain text
+#: doc/guix.texi:11529
+msgid "The available options are:"
+msgstr "Доступные опции:"
+
 #. type: table
-#: doc/guix.texi:9969
+#: doc/guix.texi:11535
 msgid "Use substitute information from @var{urls}.  @xref{client-substitute-urls, the same option for @code{guix build}}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:9970
+#: doc/guix.texi:11536
 #, no-wrap
 msgid "--sort=@var{key}"
-msgstr ""
+msgstr "--sort=@var{key}"
 
 #. type: table
-#: doc/guix.texi:9972
+#: doc/guix.texi:11538
 msgid "Sort lines according to @var{key}, one of the following options:"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:9974
+#: doc/guix.texi:11540
 #, no-wrap
 msgid "self"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9976
+#: doc/guix.texi:11542
 msgid "the size of each item (the default);"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9978
+#: doc/guix.texi:11544
 msgid "the total size of the item's closure."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:9980
+#: doc/guix.texi:11546
 #, no-wrap
 msgid "--map-file=@var{file}"
-msgstr ""
+msgstr "--map-file=@var{file}"
 
 #. type: table
-#: doc/guix.texi:9982
+#: doc/guix.texi:11548
 msgid "Write a graphical map of disk usage in PNG format to @var{file}."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9984
+#: doc/guix.texi:11550
 msgid "For the example above, the map looks like this:"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9987
+#: doc/guix.texi:11553
 msgid "@image{images/coreutils-size-map,5in,, map of Coreutils disk usage produced by @command{guix size}}"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9992
+#: doc/guix.texi:11558
 msgid "This option requires that @uref{https://wingolog.org/software/guile-charting/, Guile-Charting} be installed and visible in Guile's module search path.  When that is not the case, @command{guix size} fails as it tries to load it."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:9996
+#: doc/guix.texi:11562
 msgid "Consider packages for @var{system}---e.g., @code{x86_64-linux}."
 msgstr ""
 
 #. type: section
-#: doc/guix.texi:10007
+#: doc/guix.texi:11573
 #, no-wrap
 msgid "Invoking @command{guix graph}"
-msgstr ""
+msgstr "Вызов @command{guix graph}"
 
 #. type: cindex
-#: doc/guix.texi:10009
+#: doc/guix.texi:11575
 #, no-wrap
 msgid "DAG"
-msgstr ""
+msgstr "DAG"
 
 #. type: command{#1}
-#: doc/guix.texi:10010
+#: doc/guix.texi:11576
 #, no-wrap
 msgid "guix graph"
-msgstr ""
+msgstr "guix graph"
 
 #. type: Plain text
-#: doc/guix.texi:10024
-msgid "Packages and their dependencies form a @dfn{graph}, specifically a directed acyclic graph (DAG).  It can quickly become difficult to have a mental model of the package DAG, so the @command{guix graph} command provides a visual representation of the DAG.  By default, @command{guix graph} emits a DAG representation in the input format of @uref{https://www.graphviz.org/, Graphviz}, so its output can be passed directly to the @command{dot} command of Graphviz.  It can also emit an HTML page with embedded JavaScript code to display a ``chord diagram'' in a Web browser, using the @uref{https://d3js.org/, d3.js} library, or emit Cypher queries to construct a graph in a graph database supporting the @uref{https://www.opencypher.org/, openCypher} query language.  The general syntax is:"
+#: doc/guix.texi:11591
+msgid "Packages and their dependencies form a @dfn{graph}, specifically a directed acyclic graph (DAG).  It can quickly become difficult to have a mental model of the package DAG, so the @command{guix graph} command provides a visual representation of the DAG.  By default, @command{guix graph} emits a DAG representation in the input format of @uref{https://www.graphviz.org/, Graphviz}, so its output can be passed directly to the @command{dot} command of Graphviz.  It can also emit an HTML page with embedded JavaScript code to display a ``chord diagram'' in a Web browser, using the @uref{https://d3js.org/, d3.js} library, or emit Cypher queries to construct a graph in a graph database supporting the @uref{https://www.opencypher.org/, openCypher} query language.  With @option{--path}, it simply displays the shortest path between two packages.  The general syntax is:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:10027
+#: doc/guix.texi:11594
 #, no-wrap
 msgid "guix graph @var{options} @var{package}@dots{}\n"
-msgstr ""
+msgstr "guix graph @var{options} @var{package}@dots{}\n"
 
 #. type: Plain text
-#: doc/guix.texi:10032
+#: doc/guix.texi:11599
 msgid "For example, the following command generates a PDF file representing the package DAG for the GNU@tie{}Core Utilities, showing its build-time dependencies:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:10035
+#: doc/guix.texi:11602
 #, no-wrap
 msgid "guix graph coreutils | dot -Tpdf > dag.pdf\n"
-msgstr ""
+msgstr "guix graph coreutils | dot -Tpdf > dag.pdf\n"
 
 #. type: Plain text
-#: doc/guix.texi:10038
+#: doc/guix.texi:11605
 msgid "The output looks like this:"
-msgstr ""
+msgstr "Вывод должен быть таким:"
 
 #. type: Plain text
-#: doc/guix.texi:10040
+#: doc/guix.texi:11607
 msgid "@image{images/coreutils-graph,2in,,Dependency graph of the GNU Coreutils}"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:10042
+#: doc/guix.texi:11609
 msgid "Nice little graph, no?"
+msgstr "Неплохой граф, не так ли?"
+
+#. type: Plain text
+#: doc/guix.texi:11612
+msgid "You may find it more pleasant to navigate the graph interactively with @command{xdot} (from the @code{xdot} package):"
 msgstr ""
 
+#. type: example
+#: doc/guix.texi:11615
+#, no-wrap
+msgid "guix graph coreutils | xdot -\n"
+msgstr "guix graph coreutils | xdot -\n"
+
 #. type: Plain text
-#: doc/guix.texi:10048
+#: doc/guix.texi:11622
 msgid "But there is more than one graph! The one above is concise: it is the graph of package objects, omitting implicit inputs such as GCC, libc, grep, etc.  It is often useful to have such a concise graph, but sometimes one may want to see more details.  @command{guix graph} supports several types of graphs, allowing you to choose the level of detail:"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:10054
+#: doc/guix.texi:11628
 msgid "This is the default type used in the example above.  It shows the DAG of package objects, excluding implicit dependencies.  It is concise, but filters out many details."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:10055
+#: doc/guix.texi:11629
 #, no-wrap
 msgid "reverse-package"
-msgstr ""
+msgstr "reverse-package"
 
 #. type: table
-#: doc/guix.texi:10057
+#: doc/guix.texi:11631
 msgid "This shows the @emph{reverse} DAG of packages.  For example:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:10060
+#: doc/guix.texi:11634
 #, no-wrap
 msgid "guix graph --type=reverse-package ocaml\n"
-msgstr ""
+msgstr "guix graph --type=reverse-package ocaml\n"
 
 #. type: table
-#: doc/guix.texi:10065
-msgid "...@: yields the graph of packages that @emph{explicitly} depend on OCaml (if you are also interested in cases where OCaml is an implicit dependency, see @code{reverse-bag} below.)"
+#: doc/guix.texi:11639
+msgid "...@: yields the graph of packages that @emph{explicitly} depend on OCaml (if you are also interested in cases where OCaml is an implicit dependency, see @code{reverse-bag} below)."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:10070
+#: doc/guix.texi:11644
 msgid "Note that for core packages this can yield huge graphs.  If all you want is to know the number of packages that depend on a given package, use @command{guix refresh --list-dependent} (@pxref{Invoking guix refresh, @option{--list-dependent}})."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:10071
+#: doc/guix.texi:11645
 #, no-wrap
 msgid "bag-emerged"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:10073
+#: doc/guix.texi:11647
 msgid "This is the package DAG, @emph{including} implicit inputs."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:10075
+#: doc/guix.texi:11649
 msgid "For instance, the following command:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:10078
+#: doc/guix.texi:11652
 #, no-wrap
-msgid "guix graph --type=bag-emerged coreutils | dot -Tpdf > dag.pdf\n"
-msgstr ""
+msgid "guix graph --type=bag-emerged coreutils\n"
+msgstr "guix graph --type=bag-emerged coreutils\n"
 
 #. type: table
-#: doc/guix.texi:10081
+#: doc/guix.texi:11655
 msgid "...@: yields this bigger graph:"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:10083
+#: doc/guix.texi:11657
 msgid "@image{images/coreutils-bag-graph,,5in,Detailed dependency graph of the GNU Coreutils}"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:10086
+#: doc/guix.texi:11660
 msgid "At the bottom of the graph, we see all the implicit inputs of @var{gnu-build-system} (@pxref{Build Systems, @code{gnu-build-system}})."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:10090
+#: doc/guix.texi:11664
 msgid "Now, note that the dependencies of these implicit inputs---that is, the @dfn{bootstrap dependencies} (@pxref{Bootstrapping})---are not shown here, for conciseness."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:10091
+#: doc/guix.texi:11665
 #, no-wrap
 msgid "bag"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:10094
+#: doc/guix.texi:11668
 msgid "Similar to @code{bag-emerged}, but this time including all the bootstrap dependencies."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:10095
+#: doc/guix.texi:11669
 #, no-wrap
 msgid "bag-with-origins"
-msgstr ""
+msgstr "bag-with-origins"
 
 #. type: table
-#: doc/guix.texi:10097
+#: doc/guix.texi:11671
 msgid "Similar to @code{bag}, but also showing origins and their dependencies."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:10098
+#: doc/guix.texi:11672
 #, no-wrap
 msgid "reverse-bag"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:10101
+#: doc/guix.texi:11675
 msgid "This shows the @emph{reverse} DAG of packages.  Unlike @code{reverse-package}, it also takes implicit dependencies into account.  For example:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:10104
+#: doc/guix.texi:11678
 #, no-wrap
 msgid "guix graph -t reverse-bag dune\n"
-msgstr ""
+msgstr "guix graph -t reverse-bag dune\n"
 
 #. type: table
-#: doc/guix.texi:10111
+#: doc/guix.texi:11685
 msgid "...@: yields the graph of all packages that depend on Dune, directly or indirectly.  Since Dune is an @emph{implicit} dependency of many packages @i{via} @code{dune-build-system}, this shows a large number of packages, whereas @code{reverse-package} would show very few if any."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:10117
+#: doc/guix.texi:11691
 msgid "This is the most detailed representation: It shows the DAG of derivations (@pxref{Derivations}) and plain store items.  Compared to the above representation, many additional nodes are visible, including build scripts, patches, Guile modules, etc."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:10120
+#: doc/guix.texi:11694
 msgid "For this type of graph, it is also possible to pass a @file{.drv} file name instead of a package name, as in:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:10123
+#: doc/guix.texi:11697
 #, no-wrap
 msgid "guix graph -t derivation `guix system build -d my-config.scm`\n"
-msgstr ""
+msgstr "guix graph -t derivation `guix system build -d my-config.scm`\n"
 
 #. type: item
-#: doc/guix.texi:10125
+#: doc/guix.texi:11699
 #, no-wrap
 msgid "module"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:10129
+#: doc/guix.texi:11703
 msgid "This is the graph of @dfn{package modules} (@pxref{Package Modules}).  For example, the following command shows the graph for the package module that defines the @code{guile} package:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:10132
+#: doc/guix.texi:11706
 #, no-wrap
-msgid "guix graph -t module guile | dot -Tpdf > module-graph.pdf\n"
-msgstr ""
+msgid "guix graph -t module guile | xdot -\n"
+msgstr "guix graph -t module guile | xdot -\n"
 
 #. type: Plain text
-#: doc/guix.texi:10137
+#: doc/guix.texi:11711
 msgid "All the types above correspond to @emph{build-time dependencies}.  The following graph type represents the @emph{run-time dependencies}:"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:10142
+#: doc/guix.texi:11716
 msgid "This is the graph of @dfn{references} of a package output, as returned by @command{guix gc --references} (@pxref{Invoking guix gc})."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:10145
+#: doc/guix.texi:11719
 msgid "If the given package output is not available in the store, @command{guix graph} attempts to obtain dependency information from substitutes."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:10149
+#: doc/guix.texi:11723
 msgid "Here you can also pass a store file name instead of a package name.  For example, the command below produces the reference graph of your profile (which can be big!):"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:10152
+#: doc/guix.texi:11726
 #, no-wrap
 msgid "guix graph -t references `readlink -f ~/.guix-profile`\n"
-msgstr ""
+msgstr "guix graph -t references `readlink -f ~/.guix-profile`\n"
 
 #. type: item
-#: doc/guix.texi:10154
+#: doc/guix.texi:11728
 #, no-wrap
 msgid "referrers"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:10157
+#: doc/guix.texi:11731
 msgid "This is the graph of the @dfn{referrers} of a store item, as returned by @command{guix gc --referrers} (@pxref{Invoking guix gc})."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:10163
+#: doc/guix.texi:11737
 msgid "This relies exclusively on local information from your store.  For instance, let us suppose that the current Inkscape is available in 10 profiles on your machine; @command{guix graph -t referrers inkscape} will show a graph rooted at Inkscape and with those 10 profiles linked to it."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:10166
+#: doc/guix.texi:11740
 msgid "It can help determine what is preventing a store item from being garbage collected."
 msgstr ""
 
+#. type: cindex
+#: doc/guix.texi:11743
+#, fuzzy, no-wrap
+msgid "shortest path, between packages"
+msgstr "кратчайший путь между пакетами"
+
+#. type: Plain text
+#: doc/guix.texi:11750
+msgid "Often, the graph of the package you are interested in does not fit on your screen, and anyway all you want to know is @emph{why} that package actually depends on some seemingly unrelated package.  The @option{--path} option instructs @command{guix graph} to display the shortest path between two packages (or derivations, or store items, etc.):"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:11764
+#, no-wrap
+msgid ""
+"$ guix graph --path emacs libunistring\n"
+"emacs@@26.3\n"
+"mailutils@@3.9\n"
+"libunistring@@0.9.10\n"
+"$ guix graph --path -t derivation emacs libunistring\n"
+"/gnu/store/@dots{}-emacs-26.3.drv\n"
+"/gnu/store/@dots{}-mailutils-3.9.drv\n"
+"/gnu/store/@dots{}-libunistring-0.9.10.drv\n"
+"$ guix graph --path -t references emacs libunistring\n"
+"/gnu/store/@dots{}-emacs-26.3\n"
+"/gnu/store/@dots{}-libidn2-2.2.0\n"
+"/gnu/store/@dots{}-libunistring-0.9.10\n"
+msgstr ""
+"$ guix graph --path emacs libunistring\n"
+"emacs@@26.3\n"
+"mailutils@@3.9\n"
+"libunistring@@0.9.10\n"
+"$ guix graph --path -t derivation emacs libunistring\n"
+"/gnu/store/@dots{}-emacs-26.3.drv\n"
+"/gnu/store/@dots{}-mailutils-3.9.drv\n"
+"/gnu/store/@dots{}-libunistring-0.9.10.drv\n"
+"$ guix graph --path -t references emacs libunistring\n"
+"/gnu/store/@dots{}-emacs-26.3\n"
+"/gnu/store/@dots{}-libidn2-2.2.0\n"
+"/gnu/store/@dots{}-libunistring-0.9.10\n"
+
 #. type: Plain text
-#: doc/guix.texi:10170
+#: doc/guix.texi:11767
 msgid "The available options are the following:"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:10176
+#: doc/guix.texi:11773
 msgid "Produce a graph output of @var{type}, where @var{type} must be one of the values listed above."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:10177
+#: doc/guix.texi:11774
 #, no-wrap
 msgid "--list-types"
-msgstr ""
+msgstr "--list-types"
 
 #. type: table
-#: doc/guix.texi:10179
+#: doc/guix.texi:11776
 msgid "List the supported graph types."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:10180
+#: doc/guix.texi:11777
 #, no-wrap
 msgid "--backend=@var{backend}"
-msgstr ""
+msgstr "--backend=@var{backend}"
 
 #. type: itemx
-#: doc/guix.texi:10181
+#: doc/guix.texi:11778
 #, no-wrap
 msgid "-b @var{backend}"
-msgstr ""
+msgstr "-b @var{backend}"
 
 #. type: table
-#: doc/guix.texi:10183
+#: doc/guix.texi:11780
 msgid "Produce a graph using the selected @var{backend}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:10184
+#: doc/guix.texi:11781
 #, no-wrap
 msgid "--list-backends"
-msgstr ""
+msgstr "--list-backends"
 
 #. type: table
-#: doc/guix.texi:10186
+#: doc/guix.texi:11783
 msgid "List the supported graph backends."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:10188
+#: doc/guix.texi:11785
 msgid "Currently, the available backends are Graphviz and d3.js."
 msgstr ""
 
+#. type: item
+#: doc/guix.texi:11786
+#, fuzzy, no-wrap
+msgid "--path"
+msgstr "--paths"
+
+#. type: table
+#: doc/guix.texi:11791
+msgid "Display the shortest path between two nodes of the type specified by @option{--type}.  The example below shows the shortest path between @code{libreoffice} and @code{llvm} according to the references of @code{libreoffice}:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:11798
+#, no-wrap
+msgid ""
+"$ guix graph --path -t references libreoffice llvm\n"
+"/gnu/store/@dots{}-libreoffice-6.4.2.2\n"
+"/gnu/store/@dots{}-libepoxy-1.5.4\n"
+"/gnu/store/@dots{}-mesa-19.3.4\n"
+"/gnu/store/@dots{}-llvm-9.0.1\n"
+msgstr ""
+"$ guix graph --path -t references libreoffice llvm\n"
+"/gnu/store/@dots{}-libreoffice-6.4.2.2\n"
+"/gnu/store/@dots{}-libepoxy-1.5.4\n"
+"/gnu/store/@dots{}-mesa-19.3.4\n"
+"/gnu/store/@dots{}-llvm-9.0.1\n"
+
 #. type: example
-#: doc/guix.texi:10197
+#: doc/guix.texi:11808
 #, no-wrap
 msgid "guix graph -e '(@@@@ (gnu packages commencement) gnu-make-final)'\n"
-msgstr ""
+msgstr "guix graph -e '(@@@@ (gnu packages commencement) gnu-make-final)'\n"
 
 #. type: table
-#: doc/guix.texi:10202
+#: doc/guix.texi:11813
 msgid "Display the graph for @var{system}---e.g., @code{i686-linux}."
-msgstr ""
+msgstr "Вывести граф для @var{system}---например, @code{i686-linux}."
 
 #. type: table
-#: doc/guix.texi:10205
+#: doc/guix.texi:11816
 msgid "The package dependency graph is largely architecture-independent, but there are some architecture-dependent bits that this option allows you to visualize."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:10221
+#: doc/guix.texi:11832
 msgid "On top of that, @command{guix graph} supports all the usual package transformation options (@pxref{Package Transformation Options}).  This makes it easy to view the effect of a graph-rewriting transformation such as @option{--with-input}.  For example, the command below outputs the graph of @code{git} once @code{openssl} has been replaced by @code{libressl} everywhere in the graph:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:10224
+#: doc/guix.texi:11835
 #, no-wrap
 msgid "guix graph git --with-input=openssl=libressl\n"
-msgstr ""
+msgstr "guix graph git --with-input=openssl=libressl\n"
 
 #. type: Plain text
-#: doc/guix.texi:10227
+#: doc/guix.texi:11838
 msgid "So many possibilities, so much fun!"
 msgstr ""
 
 #. type: section
-#: doc/guix.texi:10229
+#: doc/guix.texi:11840
 #, no-wrap
 msgid "Invoking @command{guix publish}"
-msgstr ""
+msgstr "Вызов @command{guix publish}"
 
 #. type: command{#1}
-#: doc/guix.texi:10231
+#: doc/guix.texi:11842
 #, no-wrap
 msgid "guix publish"
-msgstr ""
+msgstr "guix publish"
 
 #. type: Plain text
-#: doc/guix.texi:10235
+#: doc/guix.texi:11846
 msgid "The purpose of @command{guix publish} is to enable users to easily share their store with others, who can then use it as a substitute server (@pxref{Substitutes})."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:10241
+#: doc/guix.texi:11852
 msgid "When @command{guix publish} runs, it spawns an HTTP server which allows anyone with network access to obtain substitutes from it.  This means that any machine running Guix can also act as if it were a build farm, since the HTTP interface is compatible with Cuirass, the software behind the @code{@value{SUBSTITUTE-SERVER}} build farm."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:10247
-msgid "For security, each substitute is signed, allowing recipients to check their authenticity and integrity (@pxref{Substitutes}).  Because @command{guix publish} uses the signing key of the system, which is only readable by the system administrator, it must be started as root; the @code{--user} option makes it drop root privileges early on."
+#: doc/guix.texi:11858
+msgid "For security, each substitute is signed, allowing recipients to check their authenticity and integrity (@pxref{Substitutes}).  Because @command{guix publish} uses the signing key of the system, which is only readable by the system administrator, it must be started as root; the @option{--user} option makes it drop root privileges early on."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:10251
+#: doc/guix.texi:11862
 msgid "The signing key pair must be generated before @command{guix publish} is launched, using @command{guix archive --generate-key} (@pxref{Invoking guix archive})."
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:10256
+#: doc/guix.texi:11867
 #, no-wrap
 msgid "guix publish @var{options}@dots{}\n"
-msgstr ""
+msgstr "guix publish @var{options}@dots{}\n"
 
 #. type: Plain text
-#: doc/guix.texi:10260
+#: doc/guix.texi:11871
 msgid "Running @command{guix publish} without any additional arguments will spawn an HTTP server on port 8080:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:10263
+#: doc/guix.texi:11874
 #, no-wrap
 msgid "guix publish\n"
-msgstr ""
+msgstr "guix publish\n"
 
 #. type: Plain text
-#: doc/guix.texi:10267
+#: doc/guix.texi:11878
 msgid "Once a publishing server has been authorized (@pxref{Invoking guix archive}), the daemon may download substitutes from it:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:10270
+#: doc/guix.texi:11881
 #, no-wrap
 msgid "guix-daemon --substitute-urls=http://example.org:8080\n"
-msgstr ""
+msgstr "guix-daemon --substitute-urls=http://example.org:8080\n"
 
 #. type: Plain text
-#: doc/guix.texi:10279
+#: doc/guix.texi:11890
 msgid "By default, @command{guix publish} compresses archives on the fly as it serves them.  This ``on-the-fly'' mode is convenient in that it requires no setup and is immediately available.  However, when serving lots of clients, we recommend using the @option{--cache} option, which enables caching of the archives before they are sent to clients---see below for details.  The @command{guix weather} command provides a handy way to check what a server provides (@pxref{Invoking guix weather})."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:10286
+#: doc/guix.texi:11897
 msgid "As a bonus, @command{guix publish} also serves as a content-addressed mirror for source files referenced in @code{origin} records (@pxref{origin Reference}).  For instance, assuming @command{guix publish} is running on @code{example.org}, the following URL returns the raw @file{hello-2.10.tar.gz} file with the given SHA256 hash (represented in @code{nix-base32} format, @pxref{Invoking guix hash}):"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:10289
+#: doc/guix.texi:11900
 #, no-wrap
 msgid "http://example.org/file/hello-2.10.tar.gz/sha256/0ssi1@dots{}ndq1i\n"
-msgstr ""
+msgstr "http://example.org/file/hello-2.10.tar.gz/sha256/0ssi1@dots{}ndq1i\n"
 
 #. type: Plain text
-#: doc/guix.texi:10293
+#: doc/guix.texi:11904
 msgid "Obviously, these URLs only work for files that are in the store; in other cases, they return 404 (``Not Found'')."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:10294
+#: doc/guix.texi:11905
 #, no-wrap
 msgid "build logs, publication"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:10296
+#: doc/guix.texi:11907
 msgid "Build logs are available from @code{/log} URLs like:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:10299
+#: doc/guix.texi:11910
 #, no-wrap
 msgid "http://example.org/log/gwspk@dots{}-guile-2.2.3\n"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:10309
-msgid "When @command{guix-daemon} is configured to save compressed build logs, as is the case by default (@pxref{Invoking guix-daemon}), @code{/log} URLs return the compressed log as-is, with an appropriate @code{Content-Type} and/or @code{Content-Encoding} header.  We recommend running @command{guix-daemon} with @code{--log-compression=gzip} since Web browsers can automatically decompress it, which is not the case with bzip2 compression."
+#: doc/guix.texi:11920
+msgid "When @command{guix-daemon} is configured to save compressed build logs, as is the case by default (@pxref{Invoking guix-daemon}), @code{/log} URLs return the compressed log as-is, with an appropriate @code{Content-Type} and/or @code{Content-Encoding} header.  We recommend running @command{guix-daemon} with @option{--log-compression=gzip} since Web browsers can automatically decompress it, which is not the case with Bzip2 compression."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:10313
+#: doc/guix.texi:11924
 #, no-wrap
 msgid "--port=@var{port}"
 msgstr ""
 
 #. type: itemx
-#: doc/guix.texi:10314
+#: doc/guix.texi:11925
 #, no-wrap
 msgid "-p @var{port}"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:10316
+#: doc/guix.texi:11927
 msgid "Listen for HTTP requests on @var{port}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:10317
+#: doc/guix.texi:11928
 #, no-wrap
 msgid "--listen=@var{host}"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:10320
+#: doc/guix.texi:11931
 msgid "Listen on the network interface for @var{host}.  The default is to accept connections from any interface."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:10325
+#: doc/guix.texi:11936
 msgid "Change privileges to @var{user} as soon as possible---i.e., once the server socket is open and the signing key has been read."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:10326
+#: doc/guix.texi:11937
 #, fuzzy, no-wrap
 #| msgid "--log-compression=@var{type}"
 msgid "--compression[=@var{method}[:@var{level}]]"
 msgstr "--log-compression=@var{type}"
 
 #. type: itemx
-#: doc/guix.texi:10327
+#: doc/guix.texi:11938
 #, no-wrap
 msgid "-C [@var{method}[:@var{level}]]"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:10331
+#: doc/guix.texi:11942
 msgid "Compress data using the given @var{method} and @var{level}.  @var{method} is one of @code{lzip} and @code{gzip}; when @var{method} is omitted, @code{gzip} is used."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:10335
+#: doc/guix.texi:11946
 msgid "When @var{level} is zero, disable compression.  The range 1 to 9 corresponds to different compression levels: 1 is the fastest, and 9 is the best (CPU-intensive).  The default is 3."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:10340
+#: doc/guix.texi:11951
 msgid "Usually, @code{lzip} compresses noticeably better than @code{gzip} for a small increase in CPU usage; see @uref{https://nongnu.org/lzip/lzip_benchmark.html,benchmarks on the lzip Web page}."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:10349
+#: doc/guix.texi:11960
 msgid "Unless @option{--cache} is used, compression occurs on the fly and the compressed streams are not cached.  Thus, to reduce load on the machine that runs @command{guix publish}, it may be a good idea to choose a low compression level, to run @command{guix publish} behind a caching proxy, or to use @option{--cache}.  Using @option{--cache} has the advantage that it allows @command{guix publish} to add @code{Content-Length} HTTP header to its responses."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:10354
+#: doc/guix.texi:11965
 msgid "This option can be repeated, in which case every substitute gets compressed using all the selected methods, and all of them are advertised.  This is useful when users may not support all the compression methods: they can select the one they support."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:10355
+#: doc/guix.texi:11966
 #, no-wrap
 msgid "--cache=@var{directory}"
 msgstr ""
 
 #. type: itemx
-#: doc/guix.texi:10356
+#: doc/guix.texi:11967
 #, no-wrap
 msgid "-c @var{directory}"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:10359
+#: doc/guix.texi:11970
 msgid "Cache archives and meta-data (@code{.narinfo} URLs) to @var{directory} and only serve archives that are in cache."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:10367
+#: doc/guix.texi:11978
 msgid "When this option is omitted, archives and meta-data are created on-the-fly.  This can reduce the available bandwidth, especially when compression is enabled, since this may become CPU-bound.  Another drawback of the default mode is that the length of archives is not known in advance, so @command{guix publish} does not add a @code{Content-Length} HTTP header to its responses, which in turn prevents clients from knowing the amount of data being downloaded."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:10375
+#: doc/guix.texi:11986
 msgid "Conversely, when @option{--cache} is used, the first request for a store item (@i{via} a @code{.narinfo} URL) returns 404 and triggers a background process to @dfn{bake} the archive---computing its @code{.narinfo} and compressing the archive, if needed.  Once the archive is cached in @var{directory}, subsequent requests succeed and are served directly from the cache, which guarantees that clients get the best possible bandwidth."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:10379
+#: doc/guix.texi:11990
 msgid "The ``baking'' process is performed by worker threads.  By default, one thread per CPU core is created, but this can be customized.  See @option{--workers} below."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:10382
+#: doc/guix.texi:11993
 msgid "When @option{--ttl} is used, cached entries are automatically deleted when they have expired."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:10383
+#: doc/guix.texi:11994
 #, no-wrap
 msgid "--workers=@var{N}"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:10386
+#: doc/guix.texi:11997
 msgid "When @option{--cache} is used, request the allocation of @var{N} worker threads to ``bake'' archives."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:10387
+#: doc/guix.texi:11998
 #, no-wrap
 msgid "--ttl=@var{ttl}"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:10391
+#: doc/guix.texi:12002
 msgid "Produce @code{Cache-Control} HTTP headers that advertise a time-to-live (TTL) of @var{ttl}.  @var{ttl} must denote a duration: @code{5d} means 5 days, @code{1m} means 1 month, and so on."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:10396
+#: doc/guix.texi:12007
 msgid "This allows the user's Guix to keep substitute information in cache for @var{ttl}.  However, note that @code{guix publish} does not itself guarantee that the store items it provides will indeed remain available for as long as @var{ttl}."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:10400
+#: doc/guix.texi:12011
 msgid "Additionally, when @option{--cache} is used, cached entries that have not been accessed for @var{ttl} and that no longer have a corresponding item in the store, may be deleted."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:10401
+#: doc/guix.texi:12012
 #, no-wrap
 msgid "--nar-path=@var{path}"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:10404
+#: doc/guix.texi:12015
 msgid "Use @var{path} as the prefix for the URLs of ``nar'' files (@pxref{Invoking guix archive, normalized archives})."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:10408
+#: doc/guix.texi:12019
 msgid "By default, nars are served at a URL such as @code{/nar/gzip/@dots{}-coreutils-8.25}.  This option allows you to change the @code{/nar} part to @var{path}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:10409
+#: doc/guix.texi:12020
 #, no-wrap
 msgid "--public-key=@var{file}"
 msgstr ""
 
 #. type: itemx
-#: doc/guix.texi:10410
+#: doc/guix.texi:12021
 #, no-wrap
 msgid "--private-key=@var{file}"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:10413
+#: doc/guix.texi:12024
 msgid "Use the specific @var{file}s as the public/private key pair used to sign the store items being published."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:10420
+#: doc/guix.texi:12031
 msgid "The files must correspond to the same key pair (the private key is used for signing and the public key is merely advertised in the signature metadata).  They must contain keys in the canonical s-expression format as produced by @command{guix archive --generate-key} (@pxref{Invoking guix archive}).  By default, @file{/etc/guix/signing-key.pub} and @file{/etc/guix/signing-key.sec} are used."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:10421
+#: doc/guix.texi:12032
 #, no-wrap
 msgid "--repl[=@var{port}]"
 msgstr ""
 
 #. type: itemx
-#: doc/guix.texi:10422
+#: doc/guix.texi:12033
 #, no-wrap
 msgid "-r [@var{port}]"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:10426
+#: doc/guix.texi:12037
 msgid "Spawn a Guile REPL server (@pxref{REPL Servers,,, guile, GNU Guile Reference Manual}) on @var{port} (37146 by default).  This is used primarily for debugging a running @command{guix publish} server."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:10432
+#: doc/guix.texi:12043
 msgid "Enabling @command{guix publish} on Guix System is a one-liner: just instantiate a @code{guix-publish-service-type} service in the @code{services} field of the @code{operating-system} declaration (@pxref{guix-publish-service-type, @code{guix-publish-service-type}})."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:10435
+#: doc/guix.texi:12046
 msgid "If you are instead running Guix on a ``foreign distro'', follow these instructions:"
 msgstr ""
 
 #. type: itemize
-#: doc/guix.texi:10439
+#: doc/guix.texi:12050
 msgid "If your host distro uses the systemd init system:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:10444
+#: doc/guix.texi:12055
 #, no-wrap
 msgid ""
 "# ln -s ~root/.guix-profile/lib/systemd/system/guix-publish.service \\\n"
@@ -18926,7 +22060,7 @@ msgid ""
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:10452
+#: doc/guix.texi:12063
 #, no-wrap
 msgid ""
 "# ln -s ~root/.guix-profile/lib/upstart/system/guix-publish.conf /etc/init/\n"
@@ -18934,56 +22068,56 @@ msgid ""
 msgstr ""
 
 #. type: itemize
-#: doc/guix.texi:10456
+#: doc/guix.texi:12067
 msgid "Otherwise, proceed similarly with your distro's init system."
 msgstr ""
 
 #. type: section
-#: doc/guix.texi:10459
+#: doc/guix.texi:12070
 #, no-wrap
 msgid "Invoking @command{guix challenge}"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:10462
+#: doc/guix.texi:12073
 #, no-wrap
 msgid "verifiable builds"
 msgstr ""
 
 #. type: command{#1}
-#: doc/guix.texi:10463
+#: doc/guix.texi:12074
 #, no-wrap
 msgid "guix challenge"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:10464
+#: doc/guix.texi:12075
 #, no-wrap
 msgid "challenge"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:10469
+#: doc/guix.texi:12080
 msgid "Do the binaries provided by this server really correspond to the source code it claims to build? Is a package build process deterministic? These are the questions the @command{guix challenge} command attempts to answer."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:10477
+#: doc/guix.texi:12088
 msgid "The former is obviously an important question: Before using a substitute server (@pxref{Substitutes}), one had better @emph{verify} that it provides the right binaries, and thus @emph{challenge} it.  The latter is what enables the former: If package builds are deterministic, then independent builds of the package should yield the exact same result, bit for bit; if a server provides a binary different from the one obtained locally, it may be either corrupt or malicious."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:10486
+#: doc/guix.texi:12097
 msgid "We know that the hash that shows up in @file{/gnu/store} file names is the hash of all the inputs of the process that built the file or directory---compilers, libraries, build scripts, etc. (@pxref{Introduction}).  Assuming deterministic build processes, one store file name should map to exactly one build output.  @command{guix challenge} checks whether there is, indeed, a single mapping by comparing the build outputs of several independent builds of any given store item."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:10488
+#: doc/guix.texi:12099
 msgid "The command output looks like this:"
 msgstr ""
 
 #. type: smallexample
-#: doc/guix.texi:10500
+#: doc/guix.texi:12111
 #, no-wrap
 msgid ""
 "$ guix challenge --substitute-urls=\"https://@value{SUBSTITUTE-SERVER} https://guix.example.org\"\n"
@@ -19000,7 +22134,7 @@ msgid ""
 msgstr ""
 
 #. type: smallexample
-#: doc/guix.texi:10507
+#: doc/guix.texi:12118
 #, no-wrap
 msgid ""
 "/gnu/store/@dots{}-git-2.5.0 contents differ:\n"
@@ -19013,7 +22147,7 @@ msgid ""
 msgstr ""
 
 #. type: smallexample
-#: doc/guix.texi:10514
+#: doc/guix.texi:12125
 #, no-wrap
 msgid ""
 "/gnu/store/@dots{}-pius-2.1.1 contents differ:\n"
@@ -19026,7 +22160,7 @@ msgid ""
 msgstr ""
 
 #. type: smallexample
-#: doc/guix.texi:10516
+#: doc/guix.texi:12127
 #, no-wrap
 msgid ""
 "@dots{}\n"
@@ -19034,7 +22168,7 @@ msgid ""
 msgstr ""
 
 #. type: smallexample
-#: doc/guix.texi:10521
+#: doc/guix.texi:12132
 #, no-wrap
 msgid ""
 "6,406 store items were analyzed:\n"
@@ -19044,28 +22178,28 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:10529
+#: doc/guix.texi:12140
 msgid "In this example, @command{guix challenge} first scans the store to determine the set of locally-built derivations---as opposed to store items that were downloaded from a substitute server---and then queries all the substitute servers.  It then reports those store items for which the servers obtained a result different from the local build."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:10530
+#: doc/guix.texi:12141
 #, no-wrap
 msgid "non-determinism, in package builds"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:10541
+#: doc/guix.texi:12152
 msgid "As an example, @code{guix.example.org} always gets a different answer.  Conversely, @code{@value{SUBSTITUTE-SERVER}} agrees with local builds, except in the case of Git.  This might indicate that the build process of Git is non-deterministic, meaning that its output varies as a function of various things that Guix does not fully control, in spite of building packages in isolated environments (@pxref{Features}).  Most common sources of non-determinism include the addition of timestamps in build results, the inclusion of random numbers, and directory listings sorted by inode number.  See @uref{https://reproducible-builds.org/docs/}, for more information."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:10544
+#: doc/guix.texi:12155
 msgid "To find out what is wrong with this Git binary, the easiest approach is to run:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:10549
+#: doc/guix.texi:12160
 #, no-wrap
 msgid ""
 "guix challenge git \\\n"
@@ -19074,183 +22208,196 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:10553
+#: doc/guix.texi:12164
 msgid "This automatically invokes @command{diffoscope}, which displays detailed information about files that differ."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:10556
-msgid "Alternately, we can do something along these lines (@pxref{Invoking guix archive}):"
+#: doc/guix.texi:12167
+msgid "Alternatively, we can do something along these lines (@pxref{Invoking guix archive}):"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:10561
-#, no-wrap
+#: doc/guix.texi:12172
+#, fuzzy, no-wrap
+#| msgid ""
+#| "$ wget -O - \\\n"
+#| "  https://@value{SUBSTITUTE-SERVER}/nar/@dots{}-emacs-24.5 \\\n"
+#| "  | bunzip2 | guix archive -x /tmp/emacs\n"
 msgid ""
-"$ wget -q -O - https://@value{SUBSTITUTE-SERVER}/nar/@dots{}-git-2.5.0 \\\n"
-"   | guix archive -x /tmp/git\n"
+"$ wget -q -O - https://@value{SUBSTITUTE-SERVER}/nar/lzip/@dots{}-git-2.5.0 \\\n"
+"   | lzip -d | guix archive -x /tmp/git\n"
 "$ diff -ur --no-dereference /gnu/store/@dots{}-git.2.5.0 /tmp/git\n"
 msgstr ""
+"$ wget -O - \\\n"
+"  https://@value{SUBSTITUTE-SERVER}/nar/@dots{}-emacs-24.5 \\\n"
+"  | bunzip2 | guix archive -x /tmp/emacs\n"
 
 #. type: Plain text
-#: doc/guix.texi:10570
+#: doc/guix.texi:12181
 msgid "This command shows the difference between the files resulting from the local build, and the files resulting from the build on @code{@value{SUBSTITUTE-SERVER}} (@pxref{Overview, Comparing and Merging Files,, diffutils, Comparing and Merging Files}).  The @command{diff} command works great for text files.  When binary files differ, a better option is @uref{https://diffoscope.org/, Diffoscope}, a tool that helps visualize differences for all kinds of files."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:10578
+#: doc/guix.texi:12189
 msgid "Once you have done that work, you can tell whether the differences are due to a non-deterministic build process or to a malicious server.  We try hard to remove sources of non-determinism in packages to make it easier to verify substitutes, but of course, this is a process that involves not just Guix, but a large part of the free software community.  In the meantime, @command{guix challenge} is one tool to help address the problem."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:10582
+#: doc/guix.texi:12193
 msgid "If you are writing packages for Guix, you are encouraged to check whether @code{@value{SUBSTITUTE-SERVER}} and other substitute servers obtain the same build result as you did with:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:10585
+#: doc/guix.texi:12196
 #, no-wrap
 msgid "$ guix challenge @var{package}\n"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:10590
+#: doc/guix.texi:12201
 msgid "where @var{package} is a package specification such as @code{guile@@2.0} or @code{glibc:debug}."
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:10595
+#: doc/guix.texi:12206
 #, no-wrap
 msgid "guix challenge @var{options} [@var{packages}@dots{}]\n"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:10602
-msgid "When a difference is found between the hash of a locally-built item and that of a server-provided substitute, or among substitutes provided by different servers, the command displays it as in the example above and its exit code is 2 (other non-zero exit codes denote other kinds of errors.)"
+#: doc/guix.texi:12213
+msgid "When a difference is found between the hash of a locally-built item and that of a server-provided substitute, or among substitutes provided by different servers, the command displays it as in the example above and its exit code is 2 (other non-zero exit codes denote other kinds of errors)."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:10604
+#: doc/guix.texi:12215
 msgid "The one option that matters is:"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:10610
+#: doc/guix.texi:12221
 msgid "Consider @var{urls} the whitespace-separated list of substitute source URLs to compare to."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:10611
+#: doc/guix.texi:12222
 #, fuzzy, no-wrap
 #| msgid "--load=@var{file}"
 msgid "--diff=@var{mode}"
 msgstr "--load=@var{file}"
 
 #. type: table
-#: doc/guix.texi:10613
+#: doc/guix.texi:12224
 msgid "Upon mismatches, show differences according to @var{mode}, one of:"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:10615
+#: doc/guix.texi:12226
 #, fuzzy, no-wrap
 #| msgid "@code{speed} (default: @code{1.0})"
 msgid "@code{simple} (the default)"
 msgstr "@code{speed} (default: @code{1.0})"
 
 #. type: table
-#: doc/guix.texi:10617
+#: doc/guix.texi:12228
 #, fuzzy
 #| msgid "Show the list of live store files and directories."
 msgid "Show the list of files that differ."
 msgstr "Вывести список живых файлов и директорий склада."
 
 #. type: code{#1}
-#: doc/guix.texi:10618
+#: doc/guix.texi:12229
 #, no-wrap
 msgid "diffoscope"
 msgstr ""
 
 #. type: var{#1}
-#: doc/guix.texi:10619
+#: doc/guix.texi:12230
 #, no-wrap
 msgid "command"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:10622
+#: doc/guix.texi:12233
 msgid "Invoke @uref{https://diffoscope.org/, Diffoscope}, passing it two directories whose contents do not match."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:10625
+#: doc/guix.texi:12236
 msgid "When @var{command} is an absolute file name, run @var{command} instead of Diffoscope."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:10626 doc/guix.texi:13535 doc/guix.texi:14931
+#: doc/guix.texi:12237 doc/guix.texi:15346 doc/guix.texi:17100
 #, no-wrap
 msgid "none"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:10628
+#: doc/guix.texi:12239
 msgid "Do not show further details about the differences."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:10633
-msgid "Thus, unless @code{--diff=none} is passed, @command{guix challenge} downloads the store items from the given substitute servers so that it can compare them."
+#: doc/guix.texi:12244
+msgid "Thus, unless @option{--diff=none} is passed, @command{guix challenge} downloads the store items from the given substitute servers so that it can compare them."
 msgstr ""
 
+#. type: item
+#: doc/guix.texi:12245
+#, no-wrap
+msgid "--verbose"
+msgstr "--verbose"
+
 #. type: itemx
-#: doc/guix.texi:10635
+#: doc/guix.texi:12246
 #, no-wrap
 msgid "-v"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:10638
+#: doc/guix.texi:12249
 msgid "Show details about matches (identical contents) in addition to information about mismatches."
 msgstr ""
 
 #. type: section
-#: doc/guix.texi:10642
+#: doc/guix.texi:12253
 #, no-wrap
 msgid "Invoking @command{guix copy}"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:10644
+#: doc/guix.texi:12255
 #, no-wrap
 msgid "copy, of store items, over SSH"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:10645
+#: doc/guix.texi:12256
 #, no-wrap
 msgid "SSH, copy of store items"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:10646
+#: doc/guix.texi:12257
 #, no-wrap
 msgid "sharing store items across machines"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:10647
+#: doc/guix.texi:12258
 #, no-wrap
 msgid "transferring store items across machines"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:10654
+#: doc/guix.texi:12265
 msgid "The @command{guix copy} command copies items from the store of one machine to that of another machine over a secure shell (SSH)  connection@footnote{This command is available only when Guile-SSH was found.  @xref{Requirements}, for details.}.  For example, the following command copies the @code{coreutils} package, the user's profile, and all their dependencies over to @var{host}, logged in as @var{user}:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:10658
+#: doc/guix.texi:12269
 #, no-wrap
 msgid ""
 "guix copy --to=@var{user}@@@var{host} \\\n"
@@ -19258,192 +22405,192 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:10662
+#: doc/guix.texi:12273
 msgid "If some of the items to be copied are already present on @var{host}, they are not actually sent."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:10665
+#: doc/guix.texi:12276
 msgid "The command below retrieves @code{libreoffice} and @code{gimp} from @var{host}, assuming they are available there:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:10668
+#: doc/guix.texi:12279
 #, no-wrap
 msgid "guix copy --from=@var{host} libreoffice gimp\n"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:10673
+#: doc/guix.texi:12284
 msgid "The SSH connection is established using the Guile-SSH client, which is compatible with OpenSSH: it honors @file{~/.ssh/known_hosts} and @file{~/.ssh/config}, and uses the SSH agent for authentication."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:10679
+#: doc/guix.texi:12290
 msgid "The key used to sign items that are sent must be accepted by the remote machine.  Likewise, the key used by the remote machine to sign items you are retrieving must be in @file{/etc/guix/acl} so it is accepted by your own daemon.  @xref{Invoking guix archive}, for more information about store item authentication."
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:10684
+#: doc/guix.texi:12295
 #, no-wrap
 msgid "guix copy [--to=@var{spec}|--from=@var{spec}] @var{items}@dots{}\n"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:10687
+#: doc/guix.texi:12298
 msgid "You must always specify one of the following options:"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:10689
+#: doc/guix.texi:12300
 #, no-wrap
 msgid "--to=@var{spec}"
 msgstr ""
 
 #. type: itemx
-#: doc/guix.texi:10690
+#: doc/guix.texi:12301
 #, no-wrap
 msgid "--from=@var{spec}"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:10694
+#: doc/guix.texi:12305
 msgid "Specify the host to send to or receive from.  @var{spec} must be an SSH spec such as @code{example.org}, @code{charlie@@example.org}, or @code{charlie@@example.org:2222}."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:10698
+#: doc/guix.texi:12309
 msgid "The @var{items} can be either package names, such as @code{gimp}, or store items, such as @file{/gnu/store/@dots{}-idutils-4.6}."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:10702
+#: doc/guix.texi:12313
 msgid "When specifying the name of a package to send, it is first built if needed, unless @option{--dry-run} was specified.  Common build options are supported (@pxref{Common Build Options})."
 msgstr ""
 
 #. type: section
-#: doc/guix.texi:10705
+#: doc/guix.texi:12316
 #, no-wrap
 msgid "Invoking @command{guix container}"
 msgstr ""
 
 #. type: command{#1}
-#: doc/guix.texi:10707
+#: doc/guix.texi:12318
 #, no-wrap
 msgid "guix container"
 msgstr ""
 
 #. type: quotation
-#: doc/guix.texi:10711
+#: doc/guix.texi:12322
 msgid "As of version @value{VERSION}, this tool is experimental.  The interface is subject to radical change in the future."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:10718
+#: doc/guix.texi:12329
 msgid "The purpose of @command{guix container} is to manipulate processes running within an isolated environment, commonly known as a ``container'', typically created by the @command{guix environment} (@pxref{Invoking guix environment}) and @command{guix system container} (@pxref{Invoking guix system}) commands."
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:10723
+#: doc/guix.texi:12334
 #, no-wrap
 msgid "guix container @var{action} @var{options}@dots{}\n"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:10727
+#: doc/guix.texi:12338
 msgid "@var{action} specifies the operation to perform with a container, and @var{options} specifies the context-specific arguments for the action."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:10729
+#: doc/guix.texi:12340
 msgid "The following actions are available:"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:10731
+#: doc/guix.texi:12342
 #, no-wrap
 msgid "exec"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:10733
+#: doc/guix.texi:12344
 msgid "Execute a command within the context of a running container."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:10735
+#: doc/guix.texi:12346
 msgid "The syntax is:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:10738
+#: doc/guix.texi:12349
 #, no-wrap
 msgid "guix container exec @var{pid} @var{program} @var{arguments}@dots{}\n"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:10744
+#: doc/guix.texi:12355
 msgid "@var{pid} specifies the process ID of the running container.  @var{program} specifies an executable file name within the root file system of the container.  @var{arguments} are the additional options that will be passed to @var{program}."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:10748
+#: doc/guix.texi:12359
 msgid "The following command launches an interactive login shell inside a Guix system container, started by @command{guix system container}, and whose process ID is 9001:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:10751
+#: doc/guix.texi:12362
 #, no-wrap
 msgid "guix container exec 9001 /run/current-system/profile/bin/bash --login\n"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:10755
+#: doc/guix.texi:12366
 msgid "Note that the @var{pid} cannot be the parent process of a container.  It must be PID 1 of the container or one of its child processes."
 msgstr ""
 
 #. type: section
-#: doc/guix.texi:10759
+#: doc/guix.texi:12370
 #, no-wrap
 msgid "Invoking @command{guix weather}"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:10768
+#: doc/guix.texi:12379
 msgid "Occasionally you're grumpy because substitutes are lacking and you end up building packages by yourself (@pxref{Substitutes}).  The @command{guix weather} command reports on substitute availability on the specified servers so you can have an idea of whether you'll be grumpy today.  It can sometimes be useful info as a user, but it is primarily useful to people running @command{guix publish} (@pxref{Invoking guix publish})."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:10769
+#: doc/guix.texi:12380
 #, no-wrap
 msgid "statistics, for substitutes"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:10770
+#: doc/guix.texi:12381
 #, no-wrap
 msgid "availability of substitutes"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:10771
+#: doc/guix.texi:12382
 #, no-wrap
 msgid "substitute availability"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:10772
+#: doc/guix.texi:12383
 #, no-wrap
 msgid "weather, substitute availability"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:10774
+#: doc/guix.texi:12385
 msgid "Here's a sample run:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:10786
+#: doc/guix.texi:12397
 #, no-wrap
 msgid ""
 "$ guix weather --substitute-urls=https://guix.example.org\n"
@@ -19460,7 +22607,7 @@ msgid ""
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:10796
+#: doc/guix.texi:12407
 #, no-wrap
 msgid ""
 "  9.8% (342 out of 3,470) of the missing items are queued\n"
@@ -19475,81 +22622,81 @@ msgid ""
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:10798
+#: doc/guix.texi:12409
 #, no-wrap
 msgid "continuous integration, statistics"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:10809
+#: doc/guix.texi:12420
 msgid "As you can see, it reports the fraction of all the packages for which substitutes are available on the server---regardless of whether substitutes are enabled, and regardless of whether this server's signing key is authorized.  It also reports the size of the compressed archives (``nars'') provided by the server, the size the corresponding store items occupy in the store (assuming deduplication is turned off), and the server's throughput.  The second part gives continuous integration (CI) statistics, if the server supports it.  In addition, using the @option{--coverage} option, @command{guix weather} can list ``important'' package substitutes missing on the server (see below)."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:10815
+#: doc/guix.texi:12426
 msgid "To achieve that, @command{guix weather} queries over HTTP(S) meta-data (@dfn{narinfos}) for all the relevant store items.  Like @command{guix challenge}, it ignores signatures on those substitutes, which is innocuous since the command only gathers statistics and cannot install those substitutes."
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:10820
+#: doc/guix.texi:12431
 #, fuzzy, no-wrap
 #| msgid "guix environment @var{options} @var{package}@dots{}\n"
 msgid "guix weather @var{options}@dots{} [@var{packages}@dots{}]\n"
 msgstr "guix environment @var{options} @var{package}@dots{}\n"
 
 #. type: Plain text
-#: doc/guix.texi:10828
+#: doc/guix.texi:12439
 msgid "When @var{packages} is omitted, @command{guix weather} checks the availability of substitutes for @emph{all} the packages, or for those specified with @option{--manifest}; otherwise it only considers the specified packages.  It is also possible to query specific system types with @option{--system}.  @command{guix weather} exits with a non-zero code when the fraction of available substitutes is below 100%."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:10830
+#: doc/guix.texi:12441
 #, fuzzy
 #| msgid "The available options are summarized below."
 msgid "The available options are listed below."
 msgstr "Доступные опции резюмированы ниже."
 
 #. type: table
-#: doc/guix.texi:10836
+#: doc/guix.texi:12447
 msgid "@var{urls} is the space-separated list of substitute server URLs to query.  When this option is omitted, the default set of substitute servers is queried."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:10842
+#: doc/guix.texi:12453
 msgid "Query substitutes for @var{system}---e.g., @code{aarch64-linux}.  This option can be repeated, in which case @command{guix weather} will query substitutes for several system types."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:10848
+#: doc/guix.texi:12459
 msgid "Instead of querying substitutes for all the packages, only ask for those specified in @var{file}.  @var{file} must contain a @dfn{manifest}, as with the @code{-m} option of @command{guix package} (@pxref{Invoking guix package})."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:10851
+#: doc/guix.texi:12462
 #, fuzzy
 #| msgid "Create an environment for the packages contained in the manifest object returned by the Scheme code in @var{file}."
 msgid "This option can be repeated several times, in which case the manifests are concatenated."
 msgstr "Создать окружение для пакетов, содержащихся в объекте манифеста, возвращаемого кодом Scheme в файле @var{file}."
 
 #. type: item
-#: doc/guix.texi:10852
+#: doc/guix.texi:12463
 #, no-wrap
 msgid "--coverage[=@var{count}]"
 msgstr ""
 
 #. type: itemx
-#: doc/guix.texi:10853
+#: doc/guix.texi:12464
 #, no-wrap
 msgid "-c [@var{count}]"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:10859
+#: doc/guix.texi:12470
 msgid "Report on substitute coverage for packages: list packages with at least @var{count} dependents (zero by default) for which substitutes are unavailable.  Dependent packages themselves are not listed: if @var{b} depends on @var{a} and @var{a} has no substitutes, only @var{a} is listed, even though @var{b} usually lacks substitutes as well.  The result looks like this:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:10873
+#: doc/guix.texi:12484
 #, no-wrap
 msgid ""
 "$ guix weather --substitute-urls=@value{SUBSTITUTE-URL} -c 10\n"
@@ -19567,40 +22714,40 @@ msgid ""
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:10878
+#: doc/guix.texi:12489
 msgid "What this example shows is that @code{kcoreaddons} and presumably the 58 packages that depend on it have no substitutes at @code{ci.guix.info}; likewise for @code{qgpgme} and the 46 packages that depend on it."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:10882
+#: doc/guix.texi:12493
 msgid "If you are a Guix developer, or if you are taking care of this build farm, you'll probably want to have a closer look at these packages: they may simply fail to build."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:10883
+#: doc/guix.texi:12494
 #, fuzzy, no-wrap
 #| msgid "--missing"
 msgid "--display-missing"
 msgstr "--missing"
 
 #. type: table
-#: doc/guix.texi:10885
+#: doc/guix.texi:12496
 msgid "Display the list of store items for which substitutes are missing."
 msgstr ""
 
 #. type: section
-#: doc/guix.texi:10888
+#: doc/guix.texi:12499
 #, no-wrap
 msgid "Invoking @command{guix processes}"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:10896
+#: doc/guix.texi:12507
 msgid "The @command{guix processes} command can be useful to developers and system administrators, especially on multi-user machines and on build farms: it lists the current sessions (connections to the daemon), as well as information about the processes involved@footnote{Remote sessions, when @command{guix-daemon} is started with @option{--listen} specifying a TCP endpoint, are @emph{not} listed.}.  Here's an example of the information it returns:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:10902
+#: doc/guix.texi:12513
 #, no-wrap
 msgid ""
 "$ sudo guix processes\n"
@@ -19611,7 +22758,7 @@ msgid ""
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:10906
+#: doc/guix.texi:12517
 #, no-wrap
 msgid ""
 "SessionPID: 19402\n"
@@ -19621,7 +22768,7 @@ msgid ""
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:10916
+#: doc/guix.texi:12527
 #, no-wrap
 msgid ""
 "SessionPID: 19444\n"
@@ -19636,22 +22783,22 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:10923
+#: doc/guix.texi:12534
 msgid "In this example we see that @command{guix-daemon} has three clients: @command{guix environment}, @command{guix publish}, and the Cuirass continuous integration tool; their process identifier (PID) is given by the @code{ClientPID} field.  The @code{SessionPID} field gives the PID of the @command{guix-daemon} sub-process of this particular session."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:10930
-msgid "The @code{LockHeld} fields show which store items are currently locked by this session, which corresponds to store items being built or substituted (the @code{LockHeld} field is not displayed when @command{guix processes} is not running as root.)  Last, by looking at the @code{ChildProcess} field, we understand that these three builds are being offloaded (@pxref{Daemon Offload Setup})."
+#: doc/guix.texi:12541
+msgid "The @code{LockHeld} fields show which store items are currently locked by this session, which corresponds to store items being built or substituted (the @code{LockHeld} field is not displayed when @command{guix processes} is not running as root).  Last, by looking at the @code{ChildProcess} field, we understand that these three builds are being offloaded (@pxref{Daemon Offload Setup})."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:10935
+#: doc/guix.texi:12546
 msgid "The output is in Recutils format so we can use the handy @command{recsel} command to select sessions of interest (@pxref{Selection Expressions,,, recutils, GNU recutils manual}).  As an example, the command shows the command line and PID of the client that triggered the build of a Perl package:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:10941
+#: doc/guix.texi:12552
 #, no-wrap
 msgid ""
 "$ sudo guix processes | \\\n"
@@ -19661,90 +22808,90 @@ msgid ""
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:10946
+#: doc/guix.texi:12557
 #, no-wrap
 msgid "system configuration"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:10952
+#: doc/guix.texi:12563
 msgid "Guix System supports a consistent whole-system configuration mechanism.  By that we mean that all aspects of the global system configuration---such as the available system services, timezone and locale settings, user accounts---are declared in a single place.  Such a @dfn{system configuration} can be @dfn{instantiated}---i.e., effected."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:10962
+#: doc/guix.texi:12573
 msgid "One of the advantages of putting all the system configuration under the control of Guix is that it supports transactional system upgrades, and makes it possible to roll back to a previous system instantiation, should something go wrong with the new one (@pxref{Features}).  Another advantage is that it makes it easy to replicate the exact same configuration across different machines, or at different points in time, without having to resort to additional administration tools layered on top of the own tools of the system."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:10967
+#: doc/guix.texi:12578
 msgid "This section describes this mechanism.  First we focus on the system administrator's viewpoint---explaining how the system is configured and instantiated.  Then we show how this mechanism can be extended, for instance to support new system services."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:10996
+#: doc/guix.texi:12607
 msgid "The operating system is configured by providing an @code{operating-system} declaration in a file that can then be passed to the @command{guix system} command (@pxref{Invoking guix system}).  A simple setup, with the default system services, the default Linux-Libre kernel, initial RAM disk, and boot loader looks like this:"
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:10997 doc/guix.texi:27149
+#: doc/guix.texi:12608 doc/guix.texi:30798
 #, no-wrap
 msgid "operating-system"
 msgstr ""
 
 #. type: include
-#: doc/guix.texi:10999
+#: doc/guix.texi:12610
 #, no-wrap
 msgid "os-config-bare-bones.texi"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:11006
+#: doc/guix.texi:12617
 msgid "This example should be self-describing.  Some of the fields defined above, such as @code{host-name} and @code{bootloader}, are mandatory.  Others, such as @code{packages} and @code{services}, can be omitted, in which case they get a default value."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:11011
+#: doc/guix.texi:12622
 msgid "Below we discuss the effect of some of the most important fields (@pxref{operating-system Reference}, for details about all the available fields), and how to @dfn{instantiate} the operating system using @command{guix system}."
 msgstr ""
 
 #. type: unnumberedsubsec
-#: doc/guix.texi:11012
+#: doc/guix.texi:12623
 #, no-wrap
 msgid "Bootloader"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:11014
+#: doc/guix.texi:12625
 #, no-wrap
 msgid "legacy boot, on Intel machines"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:11015
+#: doc/guix.texi:12626
 #, no-wrap
 msgid "BIOS boot, on Intel machines"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:11016
+#: doc/guix.texi:12627
 #, no-wrap
 msgid "UEFI boot"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:11017
+#: doc/guix.texi:12628
 #, no-wrap
 msgid "EFI boot"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:11023
+#: doc/guix.texi:12634
 msgid "The @code{bootloader} field describes the method that will be used to boot your system.  Machines based on Intel processors can boot in ``legacy'' BIOS mode, as in the example above.  However, more recent machines rely instead on the @dfn{Unified Extensible Firmware Interface} (UEFI) to boot.  In that case, the @code{bootloader} field should contain something along these lines:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:11028
+#: doc/guix.texi:12639
 #, no-wrap
 msgid ""
 "(bootloader-configuration\n"
@@ -19753,29 +22900,29 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:11032
+#: doc/guix.texi:12643
 msgid "@xref{Bootloader Configuration}, for more information on the available configuration options."
 msgstr ""
 
 #. type: unnumberedsubsec
-#: doc/guix.texi:11033
+#: doc/guix.texi:12644
 #, no-wrap
 msgid "Globally-Visible Packages"
 msgstr ""
 
 #. type: vindex
-#: doc/guix.texi:11035
+#: doc/guix.texi:12646
 #, no-wrap
 msgid "%base-packages"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:11048
-msgid "The @code{packages} field lists packages that will be globally visible on the system, for all user accounts---i.e., in every user's @code{PATH} environment variable---in addition to the per-user profiles (@pxref{Invoking guix package}).  The @code{%base-packages} variable provides all the tools one would expect for basic user and administrator tasks---including the GNU Core Utilities, the GNU Networking Utilities, the GNU Zile lightweight text editor, @command{find}, @command{grep}, etc.  The example above adds GNU@tie{}Screen to those, taken from the @code{(gnu packages screen)} module (@pxref{Package Modules}).  The @code{(list package output)} syntax can be used to add a specific output of a package:"
+#: doc/guix.texi:12659
+msgid "The @code{packages} field lists packages that will be globally visible on the system, for all user accounts---i.e., in every user's @env{PATH} environment variable---in addition to the per-user profiles (@pxref{Invoking guix package}).  The @code{%base-packages} variable provides all the tools one would expect for basic user and administrator tasks---including the GNU Core Utilities, the GNU Networking Utilities, the GNU Zile lightweight text editor, @command{find}, @command{grep}, etc.  The example above adds GNU@tie{}Screen to those, taken from the @code{(gnu packages screen)} module (@pxref{Package Modules}).  The @code{(list package output)} syntax can be used to add a specific output of a package:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:11052
+#: doc/guix.texi:12663
 #, no-wrap
 msgid ""
 "(use-modules (gnu packages))\n"
@@ -19784,7 +22931,7 @@ msgid ""
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:11057
+#: doc/guix.texi:12668
 #, no-wrap
 msgid ""
 "(operating-system\n"
@@ -19794,18 +22941,18 @@ msgid ""
 msgstr ""
 
 #. type: findex
-#: doc/guix.texi:11059
+#: doc/guix.texi:12670
 #, no-wrap
 msgid "specification->package"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:11068
+#: doc/guix.texi:12679
 msgid "Referring to packages by variable name, like @code{bind} above, has the advantage of being unambiguous; it also allows typos and such to be diagnosed right away as ``unbound variables''.  The downside is that one needs to know which module defines which package, and to augment the @code{use-package-modules} line accordingly.  To avoid that, one can use the @code{specification->package} procedure of the @code{(gnu packages)} module, which returns the best package for a given name or name and version:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:11071
+#: doc/guix.texi:12682
 #, no-wrap
 msgid ""
 "(use-modules (gnu packages))\n"
@@ -19813,7 +22960,7 @@ msgid ""
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:11077
+#: doc/guix.texi:12688
 #, no-wrap
 msgid ""
 "(operating-system\n"
@@ -19824,52 +22971,52 @@ msgid ""
 msgstr ""
 
 #. type: unnumberedsubsec
-#: doc/guix.texi:11079
+#: doc/guix.texi:12690
 #, no-wrap
 msgid "System Services"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:11081 doc/guix.texi:26072 doc/guix.texi:27362
+#: doc/guix.texi:12692 doc/guix.texi:29609 doc/guix.texi:31023
 #, no-wrap
 msgid "services"
 msgstr ""
 
 #. type: vindex
-#: doc/guix.texi:11082
+#: doc/guix.texi:12693
 #, no-wrap
 msgid "%base-services"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:11092
+#: doc/guix.texi:12703
 msgid "The @code{services} field lists @dfn{system services} to be made available when the system starts (@pxref{Services}).  The @code{operating-system} declaration above specifies that, in addition to the basic services, we want the OpenSSH secure shell daemon listening on port 2222 (@pxref{Networking Services, @code{openssh-service-type}}).  Under the hood, @code{openssh-service-type} arranges so that @command{sshd} is started with the right command-line options, possibly with supporting configuration files generated as needed (@pxref{Defining Services})."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:11093
+#: doc/guix.texi:12704
 #, no-wrap
 msgid "customization, of services"
 msgstr ""
 
 #. type: findex
-#: doc/guix.texi:11094
+#: doc/guix.texi:12705
 #, no-wrap
 msgid "modify-services"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:11098
+#: doc/guix.texi:12709
 msgid "Occasionally, instead of using the base services as is, you will want to customize them.  To do this, use @code{modify-services} (@pxref{Service Reference, @code{modify-services}}) to modify the list."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:11103
+#: doc/guix.texi:12714
 msgid "For example, suppose you want to modify @code{guix-daemon} and Mingetty (the console log-in) in the @code{%base-services} list (@pxref{Base Services, @code{%base-services}}).  To do that, you can write the following in your operating system declaration:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:11116
+#: doc/guix.texi:12731
 #, no-wrap
 msgid ""
 "(define %my-services\n"
@@ -19878,16 +23025,20 @@ msgid ""
 "    (guix-service-type config =>\n"
 "                       (guix-configuration\n"
 "                        (inherit config)\n"
-"                        (use-substitutes? #f)\n"
-"                        (extra-options '(\"--gc-keep-derivations\"))))\n"
+"                        ;; Fetch substitutes from example.org.\n"
+"                        (substitute-urls\n"
+"                          (list \"https://example.org/guix\"\n"
+"                                \"https://ci.guix.gnu.org\"))))\n"
 "    (mingetty-service-type config =>\n"
 "                           (mingetty-configuration\n"
-"                            (inherit config)))))\n"
+"                            (inherit config)\n"
+"                            ;; Automatially log in as \"guest\".\n"
+"                            (auto-login \"guest\")))))\n"
 "\n"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:11120
+#: doc/guix.texi:12735
 #, no-wrap
 msgid ""
 "(operating-system\n"
@@ -19896,49 +23047,49 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:11131
+#: doc/guix.texi:12746
 msgid "This changes the configuration---i.e., the service parameters---of the @code{guix-service-type} instance, and that of all the @code{mingetty-service-type} instances in the @code{%base-services} list.  Observe how this is accomplished: first, we arrange for the original configuration to be bound to the identifier @code{config} in the @var{body}, and then we write the @var{body} so that it evaluates to the desired configuration.  In particular, notice how we use @code{inherit} to create a new configuration which has the same values as the old configuration, but with a few modifications."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:11138
+#: doc/guix.texi:12753
 msgid "The configuration for a typical ``desktop'' usage, with an encrypted root partition, the X11 display server, GNOME and Xfce (users can choose which of these desktop environments to use at the log-in screen by pressing @kbd{F1}), network management, power management, and more, would look like this:"
 msgstr ""
 
 #. type: include
-#: doc/guix.texi:11140
+#: doc/guix.texi:12755
 #, no-wrap
 msgid "os-config-desktop.texi"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:11145
+#: doc/guix.texi:12760
 msgid "A graphical system with a choice of lightweight window managers instead of full-blown desktop environments would look like this:"
 msgstr ""
 
 #. type: include
-#: doc/guix.texi:11147
+#: doc/guix.texi:12762
 #, no-wrap
 msgid "os-config-lightweight-desktop.texi"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:11153
+#: doc/guix.texi:12768
 msgid "This example refers to the @file{/boot/efi} file system by its UUID, @code{1234-ABCD}.  Replace this UUID with the right UUID on your system, as returned by the @command{blkid} command."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:11157
+#: doc/guix.texi:12772
 msgid "@xref{Desktop Services}, for the exact list of services provided by @code{%desktop-services}.  @xref{X.509 Certificates}, for background information about the @code{nss-certs} package that is used here."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:11164
+#: doc/guix.texi:12779
 msgid "Again, @code{%desktop-services} is just a list of service objects.  If you want to remove services from there, you can do so using the procedures for list filtering (@pxref{SRFI-1 Filtering and Partitioning,,, guile, GNU Guile Reference Manual}).  For instance, the following expression returns a list that contains all the services in @code{%desktop-services} minus the Avahi service:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:11169
+#: doc/guix.texi:12784
 #, no-wrap
 msgid ""
 "(remove (lambda (service)\n"
@@ -19947,334 +23098,358 @@ msgid ""
 msgstr ""
 
 #. type: unnumberedsubsec
-#: doc/guix.texi:11171
+#: doc/guix.texi:12786
 #, no-wrap
 msgid "Instantiating the System"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:11178
+#: doc/guix.texi:12793
 msgid "Assuming the @code{operating-system} declaration is stored in the @file{my-system-config.scm} file, the @command{guix system reconfigure my-system-config.scm} command instantiates that configuration, and makes it the default GRUB boot entry (@pxref{Invoking guix system})."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:11186
+#: doc/guix.texi:12801
 msgid "The normal way to change the system configuration is by updating this file and re-running @command{guix system reconfigure}.  One should never have to touch files in @file{/etc} or to run commands that modify the system state such as @command{useradd} or @command{grub-install}.  In fact, you must avoid that since that would not only void your warranty but also prevent you from rolling back to previous versions of your system, should you ever need to."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:11187
+#: doc/guix.texi:12802
 #, no-wrap
 msgid "roll-back, of the operating system"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:11197
+#: doc/guix.texi:12812
 msgid "Speaking of roll-back, each time you run @command{guix system reconfigure}, a new @dfn{generation} of the system is created---without modifying or deleting previous generations.  Old system generations get an entry in the bootloader boot menu, allowing you to boot them in case something went wrong with the latest generation.  Reassuring, no? The @command{guix system list-generations} command lists the system generations available on disk.  It is also possible to roll back the system via the commands @command{guix system roll-back} and @command{guix system switch-generation}."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:11203
+#: doc/guix.texi:12818
 msgid "Although the @command{guix system reconfigure} command will not modify previous generations, you must take care when the current generation is not the latest (e.g., after invoking @command{guix system roll-back}), since the operation might overwrite a later generation (@pxref{Invoking guix system})."
 msgstr ""
 
 #. type: unnumberedsubsec
-#: doc/guix.texi:11204
+#: doc/guix.texi:12819
 #, no-wrap
 msgid "The Programming Interface"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:11209
+#: doc/guix.texi:12824
 msgid "At the Scheme level, the bulk of an @code{operating-system} declaration is instantiated with the following monadic procedure (@pxref{The Store Monad}):"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:11210
+#: doc/guix.texi:12825
 #, no-wrap
 msgid "{Monadic Procedure} operating-system-derivation os"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:11213
+#: doc/guix.texi:12828
 msgid "Return a derivation that builds @var{os}, an @code{operating-system} object (@pxref{Derivations})."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:11217
+#: doc/guix.texi:12832
 msgid "The output of the derivation is a single directory that refers to all the packages, configuration files, and other supporting files needed to instantiate @var{os}."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:11222
+#: doc/guix.texi:12837
 msgid "This procedure is provided by the @code{(gnu system)} module.  Along with @code{(gnu services)} (@pxref{Services}), this module contains the guts of Guix System.  Make sure to visit it!"
 msgstr ""
 
 #. type: section
-#: doc/guix.texi:11225
+#: doc/guix.texi:12840
 #, no-wrap
 msgid "@code{operating-system} Reference"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:11230
+#: doc/guix.texi:12845
 msgid "This section summarizes all the options available in @code{operating-system} declarations (@pxref{Using the Configuration System})."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:11231
+#: doc/guix.texi:12846
 #, no-wrap
 msgid "{Data Type} operating-system"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:11235
+#: doc/guix.texi:12850
 msgid "This is the data type representing an operating system configuration.  By that, we mean all the global system configuration, not per-user configuration (@pxref{Using the Configuration System})."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:11237
+#: doc/guix.texi:12852
+#, fuzzy, no-wrap
+#| msgid "@code{port} (default: @code{22})"
+msgid "@code{kernel} (default: @code{linux-libre})"
+msgstr "@code{port} (default: @code{22})"
+
+#. type: table
+#: doc/guix.texi:12857
+msgid "The package object of the operating system kernel to use@footnote{Currently only the Linux-libre kernel is fully supported.  Using GNU@tie{}mach with the GNU@tie{}Hurd is experimental and only available when building a virtual machine disk image.}."
+msgstr ""
+
+#. type: code{#1}
+#: doc/guix.texi:12858 doc/guix.texi:26396
 #, no-wrap
-msgid "@code{kernel} (default: @var{linux-libre})"
+msgid "hurd"
 msgstr ""
 
+#. type: item
+#: doc/guix.texi:12859
+#, fuzzy, no-wrap
+#| msgid "@code{speed} (default: @code{1.0})"
+msgid "@code{hurd} (default: @code{#f})"
+msgstr "@code{speed} (default: @code{1.0})"
+
 #. type: table
-#: doc/guix.texi:11241
-msgid "The package object of the operating system kernel to use@footnote{Currently only the Linux-libre kernel is supported.  In the future, it will be possible to use the GNU@tie{}Hurd.}."
+#: doc/guix.texi:12864
+msgid "The package object of the hurd to be started by the kernel.  When this field is set, produce a GNU/Hurd operating system.  In that case, @code{kernel} must also be set to the @code{gnumach} package---the microkernel the Hurd runs on."
+msgstr ""
+
+#. type: quotation
+#: doc/guix.texi:12867
+msgid "This feature is experimental and only supported for disk images."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:11242
+#: doc/guix.texi:12869
 #, fuzzy, no-wrap
 #| msgid "@code{features} (default: @code{'()})"
 msgid "@code{kernel-loadable-modules} (default: '())"
 msgstr "@code{features} (default: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:11245
+#: doc/guix.texi:12872
 msgid "A list of objects (usually packages) to collect loadable kernel modules from--e.g. @code{(list ddcci-driver-linux)}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:11246
-#, no-wrap
-msgid "@code{kernel-arguments} (default: @code{'(\"quiet\")})"
-msgstr ""
+#: doc/guix.texi:12873
+#, fuzzy, no-wrap
+#| msgid "@code{features} (default: @code{'()})"
+msgid "@code{kernel-arguments} (default: @code{%default-kernel-arguments})"
+msgstr "@code{features} (default: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:11249
+#: doc/guix.texi:12876
 msgid "List of strings or gexps representing additional arguments to pass on the command-line of the kernel---e.g., @code{(\"console=ttyS0\")}."
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:11250 doc/guix.texi:26283 doc/guix.texi:26302
+#: doc/guix.texi:12877 doc/guix.texi:29821 doc/guix.texi:29840
 #, no-wrap
 msgid "bootloader"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:11252
+#: doc/guix.texi:12879
 msgid "The system bootloader configuration object.  @xref{Bootloader Configuration}."
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:11253 doc/guix.texi:26422
+#: doc/guix.texi:12880 doc/guix.texi:30010
 #, no-wrap
 msgid "label"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:11256
+#: doc/guix.texi:12883
 msgid "This is the label (a string) as it appears in the bootloader's menu entry.  The default label includes the kernel name and version."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:11257 doc/guix.texi:14756 doc/guix.texi:26352
+#: doc/guix.texi:12884 doc/guix.texi:16925 doc/guix.texi:29940
 #, no-wrap
 msgid "@code{keyboard-layout} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:11261
+#: doc/guix.texi:12888
 msgid "This field specifies the keyboard layout to use in the console.  It can be either @code{#f}, in which case the default keyboard layout is used (usually US English), or a @code{<keyboard-layout>} record."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:11266
+#: doc/guix.texi:12893
 msgid "This keyboard layout is in effect as soon as the kernel has booted.  For instance, it is the keyboard layout in effect when you type a passphrase if your root file system is on a @code{luks-device-mapping} mapped device (@pxref{Mapped Devices})."
 msgstr ""
 
 #. type: quotation
-#: doc/guix.texi:11273
+#: doc/guix.texi:12900
 msgid "This does @emph{not} specify the keyboard layout used by the bootloader, nor that used by the graphical display server.  @xref{Bootloader Configuration}, for information on how to specify the bootloader's keyboard layout.  @xref{X Window}, for information on how to specify the keyboard layout used by the X Window System."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:11275
+#: doc/guix.texi:12902
 #, no-wrap
 msgid "@code{initrd-modules} (default: @code{%base-initrd-modules})"
 msgstr ""
 
-#. type: code{#1}
-#: doc/guix.texi:11276 doc/guix.texi:26109 doc/guix.texi:26212
-#: doc/guix.texi:26447
+#. type: cindex
+#: doc/guix.texi:12903 doc/guix.texi:29646 doc/guix.texi:29750
 #, no-wrap
 msgid "initrd"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:11277 doc/guix.texi:26110 doc/guix.texi:26213
+#: doc/guix.texi:12904 doc/guix.texi:29647 doc/guix.texi:29751
 #, no-wrap
 msgid "initial RAM disk"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:11280
+#: doc/guix.texi:12907
 msgid "The list of Linux kernel modules that need to be available in the initial RAM disk.  @xref{Initial RAM Disk}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:11281
+#: doc/guix.texi:12908
 #, no-wrap
 msgid "@code{initrd} (default: @code{base-initrd})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:11285
+#: doc/guix.texi:12912
 msgid "A procedure that returns an initial RAM disk for the Linux kernel.  This field is provided to support low-level customization and should rarely be needed for casual use.  @xref{Initial RAM Disk}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:11286
+#: doc/guix.texi:12913
 #, fuzzy, no-wrap
 #| msgid "@code{port} (default: @code{22})"
 msgid "@code{firmware} (default: @code{%base-firmware})"
 msgstr "@code{port} (default: @code{22})"
 
 #. type: cindex
-#: doc/guix.texi:11287
+#: doc/guix.texi:12914
 #, no-wrap
 msgid "firmware"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:11289
+#: doc/guix.texi:12916
 msgid "List of firmware packages loadable by the operating system kernel."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:11294
+#: doc/guix.texi:12921
 msgid "The default includes firmware needed for Atheros- and Broadcom-based WiFi devices (Linux-libre modules @code{ath9k} and @code{b43-open}, respectively).  @xref{Hardware Considerations}, for more info on supported hardware."
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:11295 doc/guix.texi:27168
+#: doc/guix.texi:12922 doc/guix.texi:30817
 #, no-wrap
 msgid "host-name"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:11297
+#: doc/guix.texi:12924
 msgid "The host name."
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:11298
+#: doc/guix.texi:12925
 #, no-wrap
 msgid "hosts-file"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:11299
+#: doc/guix.texi:12926
 #, no-wrap
 msgid "hosts file"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:11304
+#: doc/guix.texi:12931
 msgid "A file-like object (@pxref{G-Expressions, file-like objects}) for use as @file{/etc/hosts} (@pxref{Host Names,,, libc, The GNU C Library Reference Manual}).  The default is a file with entries for @code{localhost} and @var{host-name}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:11305
+#: doc/guix.texi:12932
 #, no-wrap
 msgid "@code{mapped-devices} (default: @code{'()})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:11307
+#: doc/guix.texi:12934
 msgid "A list of mapped devices.  @xref{Mapped Devices}."
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:11308
+#: doc/guix.texi:12935
 #, no-wrap
 msgid "file-systems"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:11310
+#: doc/guix.texi:12937
 msgid "A list of file systems.  @xref{File Systems}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:11311
+#: doc/guix.texi:12938
 #, no-wrap
 msgid "@code{swap-devices} (default: @code{'()})"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:11312
+#: doc/guix.texi:12939
 #, no-wrap
 msgid "swap devices"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:11319
+#: doc/guix.texi:12946
 msgid "A list of strings identifying devices or files to be used for ``swap space'' (@pxref{Memory Concepts,,, libc, The GNU C Library Reference Manual}).  For example, @code{'(\"/dev/sda3\")} or @code{'(\"/swapfile\")}.  It is possible to specify a swap file in a file system on a mapped device, provided that the necessary device mapping and file system are also specified.  @xref{Mapped Devices} and @ref{File Systems}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:11320
+#: doc/guix.texi:12947
 #, no-wrap
 msgid "@code{users} (default: @code{%base-user-accounts})"
 msgstr ""
 
 #. type: itemx
-#: doc/guix.texi:11321
+#: doc/guix.texi:12948
 #, fuzzy, no-wrap
 #| msgid "@code{port} (default: @code{22})"
 msgid "@code{groups} (default: @code{%base-groups})"
 msgstr "@code{port} (default: @code{22})"
 
 #. type: table
-#: doc/guix.texi:11323
+#: doc/guix.texi:12950
 msgid "List of user accounts and groups.  @xref{User Accounts}."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:11326
+#: doc/guix.texi:12953
 msgid "If the @code{users} list lacks a user account with UID@tie{}0, a ``root'' account with UID@tie{}0 is automatically added."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:11327
+#: doc/guix.texi:12954
 #, no-wrap
 msgid "@code{skeletons} (default: @code{(default-skeletons)})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:11331
-msgid "A list target file name/file-like object tuples (@pxref{G-Expressions, file-like objects}).  These are the skeleton files that will be added to the home directory of newly-created user accounts."
+#: doc/guix.texi:12958
+msgid "A list of target file name/file-like object tuples (@pxref{G-Expressions, file-like objects}).  These are the skeleton files that will be added to the home directory of newly-created user accounts."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:11333
+#: doc/guix.texi:12960
 msgid "For instance, a valid value may look like this:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:11339
+#: doc/guix.texi:12966
 #, no-wrap
 msgid ""
 "`((\".bashrc\" ,(plain-file \"bashrc\" \"echo Hello\\n\"))\n"
@@ -20284,199 +23459,210 @@ msgid ""
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:11341
+#: doc/guix.texi:12968
 #, fuzzy, no-wrap
 #| msgid "@code{port} (default: @code{22})"
 msgid "@code{issue} (default: @code{%default-issue})"
 msgstr "@code{port} (default: @code{22})"
 
 #. type: table
-#: doc/guix.texi:11344
+#: doc/guix.texi:12971
 msgid "A string denoting the contents of the @file{/etc/issue} file, which is displayed when users log in on a text console."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:11345
+#: doc/guix.texi:12972
 #, fuzzy, no-wrap
 #| msgid "@code{speed} (default: @code{1.0})"
 msgid "@code{packages} (default: @code{%base-packages})"
 msgstr "@code{speed} (default: @code{1.0})"
 
 #. type: table
-#: doc/guix.texi:11348
-msgid "The set of packages installed in the global profile, which is accessible at @file{/run/current-system/profile}."
+#: doc/guix.texi:12976
+msgid "A list of packages to be installed in the global profile, which is accessible at @file{/run/current-system/profile}.  Each element is either a package variable or a package/output tuple.  Here's a simple example of both:"
+msgstr ""
+
+#. type: lisp
+#: doc/guix.texi:12981
+#, no-wrap
+msgid ""
+"(cons* git                     ; the default \"out\" output\n"
+"       (list git \"send-email\") ; another output of git\n"
+"       %base-packages)         ; the default set\n"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:11352
+#: doc/guix.texi:12986
 msgid "The default set includes core utilities and it is good practice to install non-core utilities in user profiles (@pxref{Invoking guix package})."
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:11353
+#: doc/guix.texi:12987
 #, no-wrap
 msgid "timezone"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:11355
+#: doc/guix.texi:12989
 msgid "A timezone identifying string---e.g., @code{\"Europe/Paris\"}."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:11359
+#: doc/guix.texi:12993
 msgid "You can run the @command{tzselect} command to find out which timezone string corresponds to your region.  Choosing an invalid timezone name causes @command{guix system} to fail."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:11360
+#: doc/guix.texi:12994
 #, no-wrap
 msgid "@code{locale} (default: @code{\"en_US.utf8\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:11363
+#: doc/guix.texi:12997
 msgid "The name of the default locale (@pxref{Locale Names,,, libc, The GNU C Library Reference Manual}).  @xref{Locales}, for more information."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:11364
+#: doc/guix.texi:12998
 #, fuzzy, no-wrap
 #| msgid "@code{features} (default: @code{'()})"
 msgid "@code{locale-definitions} (default: @code{%default-locale-definitions})"
 msgstr "@code{features} (default: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:11367
+#: doc/guix.texi:13001
 msgid "The list of locale definitions to be compiled and that may be used at run time.  @xref{Locales}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:11368
+#: doc/guix.texi:13002
 #, no-wrap
 msgid "@code{locale-libcs} (default: @code{(list @var{glibc})})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:11372
+#: doc/guix.texi:13006
 msgid "The list of GNU@tie{}libc packages whose locale data and tools are used to build the locale definitions.  @xref{Locales}, for compatibility considerations that justify this option."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:11373
+#: doc/guix.texi:13007
 #, fuzzy, no-wrap
 #| msgid "@code{port} (default: @code{22})"
 msgid "@code{name-service-switch} (default: @code{%default-nss})"
 msgstr "@code{port} (default: @code{22})"
 
 #. type: table
-#: doc/guix.texi:11377
+#: doc/guix.texi:13011
 msgid "Configuration of the libc name service switch (NSS)---a @code{<name-service-switch>} object.  @xref{Name Service Switch}, for details."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:11378
+#: doc/guix.texi:13012
 #, fuzzy, no-wrap
 #| msgid "@code{speed} (default: @code{1.0})"
 msgid "@code{services} (default: @code{%base-services})"
 msgstr "@code{speed} (default: @code{1.0})"
 
 #. type: table
-#: doc/guix.texi:11380
+#: doc/guix.texi:13014
 msgid "A list of service objects denoting system services.  @xref{Services}."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:11381
+#: doc/guix.texi:13015
 #, no-wrap
 msgid "essential services"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:11382
+#: doc/guix.texi:13016
 #, no-wrap
 msgid "@code{essential-services} (default: ...)"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:11387
+#: doc/guix.texi:13021
 msgid "The list of ``essential services''---i.e., things like instances of @code{system-service-type} and @code{host-name-service-type} (@pxref{Service Reference}), which are derived from the operating system definition itself.  As a user you should @emph{never} need to touch this field."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:11388
+#: doc/guix.texi:13022
 #, no-wrap
 msgid "@code{pam-services} (default: @code{(base-pam-services)})"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:11389
+#: doc/guix.texi:13023
 #, no-wrap
 msgid "PAM"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:11390
+#: doc/guix.texi:13024
 #, no-wrap
 msgid "pluggable authentication modules"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:11393
+#: doc/guix.texi:13027
 msgid "Linux @dfn{pluggable authentication module} (PAM) services."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:11394
-#, no-wrap
-msgid "@code{setuid-programs} (default: @var{%setuid-programs})"
-msgstr ""
+#: doc/guix.texi:13028
+#, fuzzy, no-wrap
+#| msgid "@code{port} (default: @code{22})"
+msgid "@code{setuid-programs} (default: @code{%setuid-programs})"
+msgstr "@code{port} (default: @code{22})"
 
 #. type: table
-#: doc/guix.texi:11397
+#: doc/guix.texi:13031
 msgid "List of string-valued G-expressions denoting setuid programs.  @xref{Setuid Programs}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:11398
-#, no-wrap
-msgid "@code{sudoers-file} (default: @var{%sudoers-specification})"
-msgstr ""
+#: doc/guix.texi:13032
+#, fuzzy, no-wrap
+#| msgid "@code{speed} (default: @code{1.0})"
+msgid "@code{sudoers-file} (default: @code{%sudoers-specification})"
+msgstr "@code{speed} (default: @code{1.0})"
 
 #. type: cindex
-#: doc/guix.texi:11399
+#: doc/guix.texi:13033
 #, no-wrap
 msgid "sudoers file"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:11402
+#: doc/guix.texi:13036
 msgid "The contents of the @file{/etc/sudoers} file as a file-like object (@pxref{G-Expressions, @code{local-file} and @code{plain-file}})."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:11407
+#: doc/guix.texi:13041
 msgid "This file specifies which users can use the @command{sudo} command, what they are allowed to do, and what privileges they may gain.  The default is that only @code{root} and members of the @code{wheel} group may use @code{sudo}."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:11410
+#: doc/guix.texi:13044
 #, no-wrap
 msgid "{Scheme Syntax} this-operating-system"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:11413
+#: doc/guix.texi:13047
 msgid "When used in the @emph{lexical scope} of an operating system field definition, this identifier resolves to the operating system being defined."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:11416
+#: doc/guix.texi:13050
 msgid "The example below shows how to refer to the operating system being defined in the definition of the @code{label} field:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:11419 doc/guix.texi:14301
+#: doc/guix.texi:13053 doc/guix.texi:16335
 #, no-wrap
 msgid ""
 "(use-modules (gnu) (guix))\n"
@@ -20484,7 +23670,7 @@ msgid ""
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:11424
+#: doc/guix.texi:13058
 #, no-wrap
 msgid ""
 "(operating-system\n"
@@ -20494,17 +23680,17 @@ msgid ""
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:11428
+#: doc/guix.texi:13062
 msgid "It is an error to refer to @code{this-operating-system} outside an operating system definition."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:11439
+#: doc/guix.texi:13073
 msgid "The list of file systems to be mounted is specified in the @code{file-systems} field of the operating system declaration (@pxref{Using the Configuration System}).  Each file system is declared using the @code{file-system} form, like this:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:11445
+#: doc/guix.texi:13079
 #, no-wrap
 msgid ""
 "(file-system\n"
@@ -20514,67 +23700,67 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:11449
+#: doc/guix.texi:13083
 msgid "As usual, some of the fields are mandatory---those shown in the example above---while others can be omitted.  These are described below."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:11450
+#: doc/guix.texi:13084
 #, no-wrap
 msgid "{Data Type} file-system"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:11453
+#: doc/guix.texi:13087
 msgid "Objects of this type represent file systems to be mounted.  They contain the following members:"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:11455 doc/guix.texi:11649
+#: doc/guix.texi:13089 doc/guix.texi:13433
 #, no-wrap
 msgid "type"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:11458
+#: doc/guix.texi:13092
 msgid "This is a string specifying the type of the file system---e.g., @code{\"ext4\"}."
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:11459
+#: doc/guix.texi:13093
 #, no-wrap
 msgid "mount-point"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:11461
+#: doc/guix.texi:13095
 msgid "This designates the place where the file system is to be mounted."
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:11462
+#: doc/guix.texi:13096
 #, no-wrap
 msgid "device"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:11472
+#: doc/guix.texi:13106
 msgid "This names the ``source'' of the file system.  It can be one of three things: a file system label, a file system UUID, or the name of a @file{/dev} node.  Labels and UUIDs offer a way to refer to file systems without having to hard-code their actual device name@footnote{Note that, while it is tempting to use @file{/dev/disk/by-uuid} and similar device names to achieve the same result, this is not recommended: These special device nodes are created by the udev daemon and may be unavailable at the time the device is mounted.}."
 msgstr ""
 
 #. type: findex
-#: doc/guix.texi:11473
+#: doc/guix.texi:13107
 #, no-wrap
 msgid "file-system-label"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:11478
+#: doc/guix.texi:13112
 msgid "File system labels are created using the @code{file-system-label} procedure, UUIDs are created using @code{uuid}, and @file{/dev} node are plain strings.  Here's an example of a file system referred to by its label, as shown by the @command{e2label} command:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:11484
+#: doc/guix.texi:13118
 #, no-wrap
 msgid ""
 "(file-system\n"
@@ -20583,19 +23769,19 @@ msgid ""
 "  (device (file-system-label \"my-home\")))\n"
 msgstr ""
 
-#. type: findex
-#: doc/guix.texi:11486
+#. type: code{#1}
+#: doc/guix.texi:13120 doc/guix.texi:28612
 #, no-wrap
 msgid "uuid"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:11494
+#: doc/guix.texi:13128
 msgid "UUIDs are converted from their string representation (as shown by the @command{tune2fs -l} command) using the @code{uuid} form@footnote{The @code{uuid} form expects 16-byte UUIDs as defined in @uref{https://tools.ietf.org/html/rfc4122, RFC@tie{}4122}.  This is the form of UUID used by the ext2 family of file systems and others, but it is different from ``UUIDs'' found in FAT file systems, for instance.}, like this:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:11500
+#: doc/guix.texi:13134
 #, no-wrap
 msgid ""
 "(file-system\n"
@@ -20605,268 +23791,473 @@ msgid ""
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:11508
+#: doc/guix.texi:13142
 msgid "When the source of a file system is a mapped device (@pxref{Mapped Devices}), its @code{device} field @emph{must} refer to the mapped device name---e.g., @file{\"/dev/mapper/root-partition\"}.  This is required so that the system knows that mounting the file system depends on having the corresponding device mapping established."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:11509
+#: doc/guix.texi:13143
 #, no-wrap
 msgid "@code{flags} (default: @code{'()})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:11519
+#: doc/guix.texi:13153
 msgid "This is a list of symbols denoting mount flags.  Recognized flags include @code{read-only}, @code{bind-mount}, @code{no-dev} (disallow access to special files), @code{no-suid} (ignore setuid and setgid bits), @code{no-atime} (do not update file access times), @code{strict-atime} (update file access time), @code{lazy-time} (only update time on the in-memory version of the file inode), and @code{no-exec} (disallow program execution).  @xref{Mount-Unmount-Remount,,, libc, The GNU C Library Reference Manual}, for more information on these flags."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:11520
+#: doc/guix.texi:13154
 #, no-wrap
 msgid "@code{options} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:11525
-msgid "This is either @code{#f}, or a string denoting mount options passed to the file system driver.  @xref{Mount-Unmount-Remount,,, libc, The GNU C Library Reference Manual}, for details and run @command{man 8 mount} for options for various file systems."
+#: doc/guix.texi:13163
+msgid "This is either @code{#f}, or a string denoting mount options passed to the file system driver.  @xref{Mount-Unmount-Remount,,, libc, The GNU C Library Reference Manual}, for details and run @command{man 8 mount} for options for various file systems.  Note that the @code{file-system-options->alist} and @code{alist->file-system-options} procedures from @code{(gnu system file-systems)} can be used to convert file system options given as an association list to the string representation, and vice-versa."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:11526
+#: doc/guix.texi:13164
 #, no-wrap
 msgid "@code{mount?} (default: @code{#t})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:11531
+#: doc/guix.texi:13169
 msgid "This value indicates whether to automatically mount the file system when the system is brought up.  When set to @code{#f}, the file system gets an entry in @file{/etc/fstab} (read by the @command{mount} command) but is not automatically mounted."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:11532
+#: doc/guix.texi:13170
 #, no-wrap
 msgid "@code{needed-for-boot?} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:11537
+#: doc/guix.texi:13175
 msgid "This Boolean value indicates whether the file system is needed when booting.  If that is true, then the file system is mounted when the initial RAM disk (initrd) is loaded.  This is always the case, for instance, for the root file system."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:11538
+#: doc/guix.texi:13176
 #, no-wrap
 msgid "@code{check?} (default: @code{#t})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:11541
+#: doc/guix.texi:13179
 msgid "This Boolean indicates whether the file system needs to be checked for errors before being mounted."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:11542
+#: doc/guix.texi:13180
 #, no-wrap
 msgid "@code{create-mount-point?} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:11544
+#: doc/guix.texi:13182
 msgid "When true, the mount point is created if it does not exist yet."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:11545
+#: doc/guix.texi:13183
+#, fuzzy, no-wrap
+#| msgid "@code{speed} (default: @code{1.0})"
+msgid "@code{mount-may-fail?} (default: @code{#f})"
+msgstr "@code{speed} (default: @code{1.0})"
+
+#. type: table
+#: doc/guix.texi:13188
+msgid "When true, this indicates that mounting this file system can fail but that should not be considered an error.  This is useful in unusual cases; an example of this is @code{efivarfs}, a file system that can only be mounted on EFI/UEFI systems."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13189
 #, no-wrap
 msgid "@code{dependencies} (default: @code{'()})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:11549
+#: doc/guix.texi:13193
 msgid "This is a list of @code{<file-system>} or @code{<mapped-device>} objects representing file systems that must be mounted or mapped devices that must be opened before (and unmounted or closed after) this one."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:11553
+#: doc/guix.texi:13197
 msgid "As an example, consider a hierarchy of mounts: @file{/sys/fs/cgroup} is a dependency of @file{/sys/fs/cgroup/cpu} and @file{/sys/fs/cgroup/memory}."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:11556
+#: doc/guix.texi:13200
 msgid "Another example is a file system that depends on a mapped device, for example for an encrypted partition (@pxref{Mapped Devices})."
 msgstr ""
 
+#. type: deffn
+#: doc/guix.texi:13203
+#, fuzzy, no-wrap
+#| msgid "{Scheme Procedure} inferior-package? @var{obj}"
+msgid "{Scheme Procedure} file-system-label @var{str}"
+msgstr "{Процедура Scheme} inferior-package? @var{obj}"
+
+#. type: deffn
+#: doc/guix.texi:13206
+msgid "This procedure returns an opaque file system label from @var{str}, a string:"
+msgstr ""
+
+#. type: lisp
+#: doc/guix.texi:13210
+#, no-wrap
+msgid ""
+"(file-system-label \"home\")\n"
+"@result{} #<file-system-label \"home\">\n"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:13214
+msgid "File system labels are used to refer to file systems by label rather than by device name.  See above for examples."
+msgstr ""
+
 #. type: Plain text
-#: doc/guix.texi:11561
+#: doc/guix.texi:13218
 msgid "The @code{(gnu system file-systems)} exports the following useful variables."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:11562
+#: doc/guix.texi:13219
 #, no-wrap
 msgid "{Scheme Variable} %base-file-systems"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:11567
-msgid "These are essential file systems that are required on normal systems, such as @var{%pseudo-terminal-file-system} and @var{%immutable-store} (see below.)  Operating system declarations should always contain at least these."
+#: doc/guix.texi:13224
+msgid "These are essential file systems that are required on normal systems, such as @code{%pseudo-terminal-file-system} and @code{%immutable-store} (see below).  Operating system declarations should always contain at least these."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:11569
+#: doc/guix.texi:13226
 #, no-wrap
 msgid "{Scheme Variable} %pseudo-terminal-file-system"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:11575
+#: doc/guix.texi:13232
 msgid "This is the file system to be mounted as @file{/dev/pts}.  It supports @dfn{pseudo-terminals} created @i{via} @code{openpty} and similar functions (@pxref{Pseudo-Terminals,,, libc, The GNU C Library Reference Manual}).  Pseudo-terminals are used by terminal emulators such as @command{xterm}."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:11577
+#: doc/guix.texi:13234
 #, no-wrap
 msgid "{Scheme Variable} %shared-memory-file-system"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:11581
+#: doc/guix.texi:13238
 msgid "This file system is mounted as @file{/dev/shm} and is used to support memory sharing across processes (@pxref{Memory-mapped I/O, @code{shm_open},, libc, The GNU C Library Reference Manual})."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:11583
+#: doc/guix.texi:13240
 #, no-wrap
 msgid "{Scheme Variable} %immutable-store"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:11588
+#: doc/guix.texi:13245
 msgid "This file system performs a read-only ``bind mount'' of @file{/gnu/store}, making it read-only for all the users including @code{root}.  This prevents against accidental modification by software running as @code{root} or by system administrators."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:11591
+#: doc/guix.texi:13248
 msgid "The daemon itself is still able to write to the store: it remounts it read-write in its own ``name space.''"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:11593
+#: doc/guix.texi:13250
 #, no-wrap
 msgid "{Scheme Variable} %binary-format-file-system"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:11597
+#: doc/guix.texi:13254
 msgid "The @code{binfmt_misc} file system, which allows handling of arbitrary executable file types to be delegated to user space.  This requires the @code{binfmt.ko} kernel module to be loaded."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:11599
+#: doc/guix.texi:13256
 #, no-wrap
 msgid "{Scheme Variable} %fuse-control-file-system"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:11603
+#: doc/guix.texi:13260
 msgid "The @code{fusectl} file system, which allows unprivileged users to mount and unmount user-space FUSE file systems.  This requires the @code{fuse.ko} kernel module to be loaded."
 msgstr ""
 
+#. type: Plain text
+#: doc/guix.texi:13264
+msgid "The @code{(gnu system uuid)} module provides tools to deal with file system ``unique identifiers'' (UUIDs)."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:13265
+#, fuzzy, no-wrap
+#| msgid "{Scheme Procedure} lookup-inferior-packages @var{inferior} @var{name} @"
+msgid "{Scheme Procedure} uuid @var{str} [@var{type}]"
+msgstr "{Процедура Scheme} lookup-inferior-packages @var{inferior} @var{name} @"
+
+#. type: deffn
+#: doc/guix.texi:13268
+msgid "Return an opaque UUID (unique identifier) object of the given @var{type} (a symbol) by parsing @var{str} (a string):"
+msgstr ""
+
+#. type: lisp
+#: doc/guix.texi:13272
+#, no-wrap
+msgid ""
+"(uuid \"4dab5feb-d176-45de-b287-9b0a6e4c01cb\")\n"
+"@result{} #<<uuid> type: dce bv: @dots{}>\n"
+"\n"
+msgstr ""
+
+#. type: lisp
+#: doc/guix.texi:13275
+#, no-wrap
+msgid ""
+"(uuid \"1234-ABCD\" 'fat)\n"
+"@result{} #<<uuid> type: fat bv: @dots{}>\n"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:13279
+msgid "@var{type} may be one of @code{dce}, @code{iso9660}, @code{fat}, @code{ntfs}, or one of the commonly found synonyms for these."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:13282
+msgid "UUIDs are another way to unambiguously refer to file systems in operating system configuration.  See the examples above."
+msgstr ""
+
+#. type: subsection
+#: doc/guix.texi:13285 doc/guix.texi:13286
+#, fuzzy, no-wrap
+#| msgid "Network File System"
+msgid "Btrfs file system"
+msgstr "Сетевые файловые системы"
+
+#. type: Plain text
+#: doc/guix.texi:13292
+msgid "The Btrfs has special features, such as subvolumes, that merit being explained in more details.  The following section attempts to cover basic as well as complex uses of a Btrfs file system with the Guix System."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:13295
+msgid "In its simplest usage, a Btrfs file system can be described, for example, by:"
+msgstr ""
+
+#. type: lisp
+#: doc/guix.texi:13301
+#, no-wrap
+msgid ""
+"(file-system\n"
+"  (mount-point \"/home\")\n"
+"  (type \"btrfs\")\n"
+"  (device (file-system-label \"my-home\")))\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:13307
+msgid "The example below is more complex, as it makes use of a Btrfs subvolume, named @code{rootfs}.  The parent Btrfs file system is labeled @code{my-btrfs-pool}, and is located on an encrypted device (hence the dependency on @code{mapped-devices}):"
+msgstr ""
+
+#. type: lisp
+#: doc/guix.texi:13315
+#, no-wrap
+msgid ""
+"(file-system\n"
+"  (device (file-system-label \"my-btrfs-pool\"))\n"
+"  (mount-point \"/\")\n"
+"  (type \"btrfs\")\n"
+"  (options \"subvol=rootfs\")\n"
+"  (dependencies mapped-devices))\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:13326
+msgid "Some bootloaders, for example GRUB, only mount a Btrfs partition at its top level during the early boot, and rely on their configuration to refer to the correct subvolume path within that top level.  The bootloaders operating in this way typically produce their configuration on a running system where the Btrfs partitions are already mounted and where the subvolume information is readily available.  As an example, @command{grub-mkconfig}, the configuration generator command shipped with GRUB, reads @file{/proc/self/mountinfo} to determine the top-level path of a subvolume."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:13334
+msgid "The Guix System produces a bootloader configuration using the operating system configuration as its sole input; it is therefore necessary to extract the subvolume name on which @file{/gnu/store} lives (if any)  from that operating system configuration.  To better illustrate, consider a subvolume named 'rootfs' which contains the root file system data.  In such situation, the GRUB bootloader would only see the top level of the root Btrfs partition, e.g.:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:13341
+#, no-wrap
+msgid ""
+"/                   (top level)\n"
+"├── rootfs          (subvolume directory)\n"
+"    ├── gnu         (normal directory)\n"
+"        ├── store   (normal directory)\n"
+"[...]\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:13346
+msgid "Thus, the subvolume name must be prepended to the @file{/gnu/store} path of the kernel, initrd binaries and any other files referred to in the GRUB configuration that must be found during the early boot."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:13349
+msgid "The next example shows a nested hierarchy of subvolumes and directories:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:13356
+#, no-wrap
+msgid ""
+"/                   (top level)\n"
+"├── rootfs          (subvolume)\n"
+"    ├── gnu         (normal directory)\n"
+"        ├── store   (subvolume)\n"
+"[...]\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:13363
+msgid "This scenario would work without mounting the 'store' subvolume.  Mounting 'rootfs' is sufficient, since the subvolume name matches its intended mount point in the file system hierarchy.  Alternatively, the 'store' subvolume could be referred to by setting the @code{subvol} option to either @code{/rootfs/gnu/store} or @code{rootfs/gnu/store}."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:13365
+msgid "Finally, a more contrived example of nested subvolumes:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:13372
+#, no-wrap
+msgid ""
+"/                           (top level)\n"
+"├── root-snapshots          (subvolume)\n"
+"    ├── root-current        (subvolume)\n"
+"        ├── guix-store      (subvolume)\n"
+"[...]\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:13379
+msgid "Here, the 'guix-store' subvolume doesn't match its intended mount point, so it is necessary to mount it.  The subvolume must be fully specified, by passing its file name to the @code{subvol} option.  To illustrate, the 'guix-store' subvolume could be mounted on @file{/gnu/store} by using a file system declaration such as:"
+msgstr ""
+
+#. type: lisp
+#: doc/guix.texi:13387
+#, no-wrap
+msgid ""
+"(file-system\n"
+"  (device (file-system-label \"btrfs-pool-1\"))\n"
+"  (mount-point \"/gnu/store\")\n"
+"  (type \"btrfs\")\n"
+"  (options \"subvol=root-snapshots/root-current/guix-store,\\\n"
+"compress-force=zstd,space_cache=v2\"))\n"
+msgstr ""
+
 #. type: cindex
-#: doc/guix.texi:11608
+#: doc/guix.texi:13392
 #, no-wrap
 msgid "device mapping"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:11609
+#: doc/guix.texi:13393
 #, no-wrap
 msgid "mapped devices"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:11627
+#: doc/guix.texi:13411
 msgid "The Linux kernel has a notion of @dfn{device mapping}: a block device, such as a hard disk partition, can be @dfn{mapped} into another device, usually in @code{/dev/mapper/}, with additional processing over the data that flows through it@footnote{Note that the GNU@tie{}Hurd makes no difference between the concept of a ``mapped device'' and that of a file system: both boil down to @emph{translating} input/output operations made on a file to operations on its backing store.  Thus, the Hurd implements mapped devices, like file systems, using the generic @dfn{translator} mechanism (@pxref{Translators,,, hurd, The GNU Hurd Reference Manual}).}.  A typical example is encryption device mapping: all writes to the mapped device are encrypted, and all reads are deciphered, transparently.  Guix extends this notion by considering any device or set of devices that are @dfn{transformed} in some way to create a new device; for instance, RAID devices are obtained by @dfn{assembling} several other devices, such as hard disks or partitions, into a new one that behaves as one partition.  Other examples, not yet implemented, are LVM logical volumes."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:11630
+#: doc/guix.texi:13414
 msgid "Mapped devices are declared using the @code{mapped-device} form, defined as follows; for examples, see below."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:11631
+#: doc/guix.texi:13415
 #, no-wrap
 msgid "{Data Type} mapped-device"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:11634
+#: doc/guix.texi:13418
 msgid "Objects of this type represent device mappings that will be made when the system boots up."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:11640
+#: doc/guix.texi:13424
 msgid "This is either a string specifying the name of the block device to be mapped, such as @code{\"/dev/sda3\"}, or a list of such strings when several devices need to be assembled for creating a new one."
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:11641 doc/guix.texi:26327
+#: doc/guix.texi:13425 doc/guix.texi:29913
 #, no-wrap
 msgid "target"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:11648
+#: doc/guix.texi:13432
 msgid "This string specifies the name of the resulting mapped device.  For kernel mappers such as encrypted devices of type @code{luks-device-mapping}, specifying @code{\"my-partition\"} leads to the creation of the @code{\"/dev/mapper/my-partition\"} device.  For RAID devices of type @code{raid-device-mapping}, the full device name such as @code{\"/dev/md0\"} needs to be given."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:11652
+#: doc/guix.texi:13436
 msgid "This must be a @code{mapped-device-kind} object, which specifies how @var{source} is mapped to @var{target}."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:11655
+#: doc/guix.texi:13439
 #, no-wrap
 msgid "{Scheme Variable} luks-device-mapping"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:11659
+#: doc/guix.texi:13443
 msgid "This defines LUKS block device encryption using the @command{cryptsetup} command from the package with the same name.  It relies on the @code{dm-crypt} Linux kernel module."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:11661
+#: doc/guix.texi:13445
 #, no-wrap
 msgid "{Scheme Variable} raid-device-mapping"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:11666
+#: doc/guix.texi:13450
 msgid "This defines a RAID device, which is assembled using the @code{mdadm} command from the package with the same name.  It requires a Linux kernel module for the appropriate RAID level to be loaded, such as @code{raid456} for RAID-4, RAID-5 or RAID-6, or @code{raid10} for RAID-10."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:11668
+#: doc/guix.texi:13452
 #, no-wrap
 msgid "disk encryption"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:11669
+#: doc/guix.texi:13453
 #, no-wrap
 msgid "LUKS"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:11677
+#: doc/guix.texi:13461
 msgid "The following example specifies a mapping from @file{/dev/sda3} to @file{/dev/mapper/home} using LUKS---the @url{https://gitlab.com/cryptsetup/cryptsetup,Linux Unified Key Setup}, a standard mechanism for disk encryption.  The @file{/dev/mapper/home} device can then be used as the @code{device} of a @code{file-system} declaration (@pxref{File Systems})."
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:11683
+#: doc/guix.texi:13467
 #, no-wrap
 msgid ""
 "(mapped-device\n"
@@ -20876,23 +24267,23 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:11688
+#: doc/guix.texi:13472
 msgid "Alternatively, to become independent of device numbering, one may obtain the LUKS UUID (@dfn{unique identifier}) of the source device by a command like:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:11691
+#: doc/guix.texi:13475
 #, no-wrap
 msgid "cryptsetup luksUUID /dev/sda3\n"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:11694
+#: doc/guix.texi:13478
 msgid "and use it as follows:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:11700
+#: doc/guix.texi:13484
 #, no-wrap
 msgid ""
 "(mapped-device\n"
@@ -20902,23 +24293,23 @@ msgid ""
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:11702
+#: doc/guix.texi:13486
 #, no-wrap
 msgid "swap encryption"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:11708
+#: doc/guix.texi:13492
 msgid "It is also desirable to encrypt swap space, since swap space may contain sensitive data.  One way to accomplish that is to use a swap file in a file system on a device mapped via LUKS encryption.  In this way, the swap file is encrypted because the entire device is encrypted.  @xref{Preparing for Installation,,Disk Partitioning}, for an example."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:11711
+#: doc/guix.texi:13495
 msgid "A RAID device formed of the partitions @file{/dev/sda1} and @file{/dev/sdb1} may be declared as follows:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:11717
+#: doc/guix.texi:13501
 #, no-wrap
 msgid ""
 "(mapped-device\n"
@@ -20928,35 +24319,35 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:11724
+#: doc/guix.texi:13508
 msgid "The @file{/dev/md0} device can then be used as the @code{device} of a @code{file-system} declaration (@pxref{File Systems}).  Note that the RAID level need not be given; it is chosen during the initial creation and formatting of the RAID device and is determined automatically later."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:11729
+#: doc/guix.texi:13513
 #, no-wrap
 msgid "users"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:11730
+#: doc/guix.texi:13514
 #, no-wrap
 msgid "accounts"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:11731
+#: doc/guix.texi:13515
 #, no-wrap
 msgid "user accounts"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:11735
+#: doc/guix.texi:13519
 msgid "User accounts and groups are entirely managed through the @code{operating-system} declaration.  They are specified with the @code{user-account} and @code{user-group} forms:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:11746
+#: doc/guix.texi:13529
 #, no-wrap
 msgid ""
 "(user-account\n"
@@ -20966,154 +24357,187 @@ msgid ""
 "                          \"audio\"   ;sound card\n"
 "                          \"video\"   ;video devices such as webcams\n"
 "                          \"cdrom\")) ;the good ol' CD-ROM\n"
-"  (comment \"Bob's sister\")\n"
-"  (home-directory \"/home/alice\"))\n"
+"  (comment \"Bob's sister\"))\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:13533
+msgid "Here's a user account that uses a different shell and a custom home directory (the default would be @file{\"/home/bob\"}):"
+msgstr ""
+
+#. type: lisp
+#: doc/guix.texi:13541
+#, no-wrap
+msgid ""
+"(user-account\n"
+"  (name \"bob\")\n"
+"  (group \"users\")\n"
+"  (comment \"Alice's bro\")\n"
+"  (shell (file-append zsh \"/bin/zsh\"))\n"
+"  (home-directory \"/home/robert\"))\n"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:11755
+#: doc/guix.texi:13550
 msgid "When booting or upon completion of @command{guix system reconfigure}, the system ensures that only the user accounts and groups specified in the @code{operating-system} declaration exist, and with the specified properties.  Thus, account or group creations or modifications made by directly invoking commands such as @command{useradd} are lost upon reconfiguration or reboot.  This ensures that the system remains exactly as declared."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:11756
+#: doc/guix.texi:13551
 #, no-wrap
 msgid "{Data Type} user-account"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:11759
+#: doc/guix.texi:13554
 msgid "Objects of this type represent user accounts.  The following members may be specified:"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:11763
+#: doc/guix.texi:13558
 msgid "The name of the user account."
 msgstr ""
 
 #. type: itemx
-#: doc/guix.texi:11764 doc/guix.texi:26063
+#: doc/guix.texi:13559 doc/guix.texi:29600
 #, no-wrap
 msgid "group"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:11765 doc/guix.texi:11832
+#: doc/guix.texi:13560 doc/guix.texi:13639
 #, no-wrap
 msgid "groups"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:11768
+#: doc/guix.texi:13563
 msgid "This is the name (a string) or identifier (a number) of the user group this account belongs to."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:11769
+#: doc/guix.texi:13564
 #, no-wrap
 msgid "@code{supplementary-groups} (default: @code{'()})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:11772
+#: doc/guix.texi:13567
 msgid "Optionally, this can be defined as a list of group names that this account belongs to."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:11773
+#: doc/guix.texi:13568
 #, no-wrap
 msgid "@code{uid} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:11777
+#: doc/guix.texi:13572
 msgid "This is the user ID for this account (a number), or @code{#f}.  In the latter case, a number is automatically chosen by the system when the account is created."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:11778
+#: doc/guix.texi:13573
 #, no-wrap
 msgid "@code{comment} (default: @code{\"\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:11780
+#: doc/guix.texi:13575
 msgid "A comment about the account, such as the account owner's full name."
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:11781
+#: doc/guix.texi:13576
 #, no-wrap
 msgid "home-directory"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:11783
+#: doc/guix.texi:13578
 msgid "This is the name of the home directory for the account."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:11784
+#: doc/guix.texi:13579
 #, no-wrap
 msgid "@code{create-home-directory?} (default: @code{#t})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:11787
+#: doc/guix.texi:13582
 msgid "Indicates whether the home directory of this account should be created if it does not exist yet."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:11788
+#: doc/guix.texi:13583
 #, no-wrap
 msgid "@code{shell} (default: Bash)"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:11791
-msgid "This is a G-expression denoting the file name of a program to be used as the shell (@pxref{G-Expressions})."
+#: doc/guix.texi:13587
+msgid "This is a G-expression denoting the file name of a program to be used as the shell (@pxref{G-Expressions}).  For example, you would refer to the Bash executable like this:"
+msgstr ""
+
+#. type: lisp
+#: doc/guix.texi:13590
+#, no-wrap
+msgid "(file-append bash \"/bin/bash\")\n"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13594
+msgid "... and to the Zsh executable like that:"
+msgstr ""
+
+#. type: lisp
+#: doc/guix.texi:13597
+#, no-wrap
+msgid "(file-append zsh \"/bin/zsh\")\n"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:11792 doc/guix.texi:11850
+#: doc/guix.texi:13599 doc/guix.texi:13657
 #, no-wrap
 msgid "@code{system?} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:11796
+#: doc/guix.texi:13603
 msgid "This Boolean value indicates whether the account is a ``system'' account.  System accounts are sometimes treated specially; for instance, graphical login managers do not list them."
 msgstr ""
 
 #. type: anchor{#1}
-#: doc/guix.texi:11798
+#: doc/guix.texi:13605
 msgid "user-account-password"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:11798
+#: doc/guix.texi:13605
 #, no-wrap
 msgid "password, for user accounts"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:11799 doc/guix.texi:11854
+#: doc/guix.texi:13606 doc/guix.texi:13661 doc/guix.texi:28617
 #, no-wrap
 msgid "@code{password} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:11805
+#: doc/guix.texi:13612
 msgid "You would normally leave this field to @code{#f}, initialize user passwords as @code{root} with the @command{passwd} command, and then let users change it with @command{passwd}.  Passwords set with @command{passwd} are of course preserved across reboot and reconfiguration."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:11809
+#: doc/guix.texi:13616
 msgid "If you @emph{do} want to set an initial password for an account, then this field must contain the encrypted password, as a string.  You can use the @code{crypt} procedure for this purpose:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:11814
+#: doc/guix.texi:13621
 #, no-wrap
 msgid ""
 "(user-account\n"
@@ -21123,7 +24547,7 @@ msgid ""
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:11817
+#: doc/guix.texi:13624
 #, no-wrap
 msgid ""
 "  ;; Specify a SHA-512-hashed initial password.\n"
@@ -21131,150 +24555,150 @@ msgid ""
 msgstr ""
 
 #. type: quotation
-#: doc/guix.texi:11823
+#: doc/guix.texi:13630
 msgid "The hash of this initial password will be available in a file in @file{/gnu/store}, readable by all the users, so this method must be used with care."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:11828
+#: doc/guix.texi:13635
 msgid "@xref{Passphrase Storage,,, libc, The GNU C Library Reference Manual}, for more information on password encryption, and @ref{Encryption,,, guile, GNU Guile Reference Manual}, for information on Guile's @code{crypt} procedure."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:11834
+#: doc/guix.texi:13641
 msgid "User group declarations are even simpler:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:11837
+#: doc/guix.texi:13644
 #, no-wrap
 msgid "(user-group (name \"students\"))\n"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:11839
+#: doc/guix.texi:13646
 #, no-wrap
 msgid "{Data Type} user-group"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:11841
+#: doc/guix.texi:13648
 msgid "This type is for, well, user groups.  There are just a few fields:"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:11845
+#: doc/guix.texi:13652
 msgid "The name of the group."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:11846
+#: doc/guix.texi:13653 doc/guix.texi:26483
 #, no-wrap
 msgid "@code{id} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:11849
+#: doc/guix.texi:13656
 msgid "The group identifier (a number).  If @code{#f}, a new number is automatically allocated when the group is created."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:11853
+#: doc/guix.texi:13660
 msgid "This Boolean value indicates whether the group is a ``system'' group.  System groups have low numerical IDs."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:11857
+#: doc/guix.texi:13664
 msgid "What, user groups can have a password? Well, apparently yes.  Unless @code{#f}, this field specifies the password of the group."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:11863
+#: doc/guix.texi:13670
 msgid "For convenience, a variable lists all the basic user groups one may expect:"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:11864
+#: doc/guix.texi:13671
 #, no-wrap
 msgid "{Scheme Variable} %base-groups"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:11869
+#: doc/guix.texi:13676
 msgid "This is the list of basic user groups that users and/or packages expect to be present on the system.  This includes groups such as ``root'', ``wheel'', and ``users'', as well as groups used to control access to specific devices such as ``audio'', ``disk'', and ``cdrom''."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:11871
+#: doc/guix.texi:13678
 #, no-wrap
 msgid "{Scheme Variable} %base-user-accounts"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:11874
+#: doc/guix.texi:13681
 msgid "This is the list of basic system accounts that programs may expect to find on a GNU/Linux system, such as the ``nobody'' account."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:11877
+#: doc/guix.texi:13684
 msgid "Note that the ``root'' account is not included here.  It is a special-case and is automatically added whether or not it is specified."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:11883
+#: doc/guix.texi:13690
 #, no-wrap
 msgid "keymap"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:11891
+#: doc/guix.texi:13698
 msgid "To specify what each key of your keyboard does, you need to tell the operating system what @dfn{keyboard layout} you want to use.  The default, when nothing is specified, is the US English QWERTY layout for 105-key PC keyboards.  However, German speakers will usually prefer the German QWERTZ layout, French speakers will want the AZERTY layout, and so on; hackers might prefer Dvorak or bépo, and they might even want to further customize the effect of some of the keys.  This section explains how to get that done."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:11892
+#: doc/guix.texi:13699
 #, no-wrap
 msgid "keyboard layout, definition"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:11894
+#: doc/guix.texi:13701
 msgid "There are three components that will want to know about your keyboard layout:"
 msgstr ""
 
 #. type: itemize
-#: doc/guix.texi:11901
+#: doc/guix.texi:13708
 msgid "The @emph{bootloader} may want to know what keyboard layout you want to use (@pxref{Bootloader Configuration, @code{keyboard-layout}}).  This is useful if you want, for instance, to make sure that you can type the passphrase of your encrypted root partition using the right layout."
 msgstr ""
 
 #. type: itemize
-#: doc/guix.texi:11906
+#: doc/guix.texi:13713
 msgid "The @emph{operating system kernel}, Linux, will need that so that the console is properly configured (@pxref{operating-system Reference, @code{keyboard-layout}})."
 msgstr ""
 
 #. type: itemize
-#: doc/guix.texi:11910
+#: doc/guix.texi:13717
 msgid "The @emph{graphical display server}, usually Xorg, also has its own idea of the keyboard layout (@pxref{X Window, @code{keyboard-layout}})."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:11914
+#: doc/guix.texi:13721
 msgid "Guix allows you to configure all three separately but, fortunately, it allows you to share the same keyboard layout for all three components."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:11915
+#: doc/guix.texi:13722
 #, no-wrap
 msgid "XKB, keyboard layouts"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:11923
+#: doc/guix.texi:13730
 msgid "Keyboard layouts are represented by records created by the @code{keyboard-layout} procedure of @code{(gnu system keyboard)}.  Following the X Keyboard extension (XKB), each layout has four attributes: a name (often a language code such as ``fi'' for Finnish or ``jp'' for Japanese), an optional variant name, an optional keyboard model name, and a possibly empty list of additional options.  In most cases the layout name is all you care about.  Here are a few example:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:11928
+#: doc/guix.texi:13735
 #, no-wrap
 msgid ""
 ";; The German QWERTZ layout.  Here we assume a standard\n"
@@ -21284,7 +24708,7 @@ msgid ""
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:11931
+#: doc/guix.texi:13738
 #, no-wrap
 msgid ""
 ";; The bépo variant of the French layout.\n"
@@ -21293,7 +24717,7 @@ msgid ""
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:11934
+#: doc/guix.texi:13741
 #, no-wrap
 msgid ""
 ";; The Catalan layout.\n"
@@ -21302,7 +24726,7 @@ msgid ""
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:11937
+#: doc/guix.texi:13744
 #, no-wrap
 msgid ""
 ";; Arabic layout with \"Alt-Shift\" to switch to US layout.\n"
@@ -21311,7 +24735,7 @@ msgid ""
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:11944
+#: doc/guix.texi:13751
 #, no-wrap
 msgid ""
 ";; The Latin American Spanish layout.  In addition, the\n"
@@ -21324,7 +24748,7 @@ msgid ""
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:11947
+#: doc/guix.texi:13754
 #, no-wrap
 msgid ""
 ";; The Russian layout for a ThinkPad keyboard.\n"
@@ -21333,7 +24757,7 @@ msgid ""
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:11952
+#: doc/guix.texi:13759
 #, no-wrap
 msgid ""
 ";; The \"US international\" layout, which is the US layout plus\n"
@@ -21343,29 +24767,29 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:11956
+#: doc/guix.texi:13763
 msgid "See the @file{share/X11/xkb} directory of the @code{xkeyboard-config} package for a complete list of supported layouts, variants, and models."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:11957
+#: doc/guix.texi:13764
 #, no-wrap
 msgid "keyboard layout, configuration"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:11961
+#: doc/guix.texi:13768
 msgid "Let's say you want your system to use the Turkish keyboard layout throughout your system---bootloader, console, and Xorg.  Here's what your system configuration would look like:"
 msgstr ""
 
 #. type: findex
-#: doc/guix.texi:11962
+#: doc/guix.texi:13769
 #, no-wrap
 msgid "set-xorg-configuration"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:11966
+#: doc/guix.texi:13773
 #, no-wrap
 msgid ""
 ";; Using the Turkish layout for the bootloader, the console,\n"
@@ -21374,7 +24798,7 @@ msgid ""
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:11978
+#: doc/guix.texi:13785
 #, no-wrap
 msgid ""
 "(operating-system\n"
@@ -21391,76 +24815,76 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:11985
+#: doc/guix.texi:13792
 msgid "In the example above, for GRUB and for Xorg, we just refer to the @code{keyboard-layout} field defined above, but we could just as well refer to a different layout.  The @code{set-xorg-configuration} procedure communicates the desired Xorg configuration to the graphical log-in manager, by default GDM."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:11988
+#: doc/guix.texi:13795
 msgid "We've discussed how to specify the @emph{default} keyboard layout of your system when it starts, but you can also adjust it at run time:"
 msgstr ""
 
 #. type: itemize
-#: doc/guix.texi:11993
+#: doc/guix.texi:13800
 msgid "If you're using GNOME, its settings panel has a ``Region & Language'' entry where you can select one or more keyboard layouts."
 msgstr ""
 
 #. type: itemize
-#: doc/guix.texi:11998
+#: doc/guix.texi:13805
 msgid "Under Xorg, the @command{setxkbmap} command (from the same-named package)  allows you to change the current layout.  For example, this is how you would change the layout to US Dvorak:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:12001
+#: doc/guix.texi:13808
 #, no-wrap
 msgid "setxkbmap us dvorak\n"
 msgstr ""
 
 #. type: itemize
-#: doc/guix.texi:12008
+#: doc/guix.texi:13815
 msgid "The @code{loadkeys} command changes the keyboard layout in effect in the Linux console.  However, note that @code{loadkeys} does @emph{not} use the XKB keyboard layout categorization described above.  The command below loads the French bépo layout:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:12011
+#: doc/guix.texi:13818
 #, no-wrap
 msgid "loadkeys fr-bepo\n"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:12017
+#: doc/guix.texi:13824
 #, no-wrap
 msgid "locale"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:12024
+#: doc/guix.texi:13831
 msgid "A @dfn{locale} defines cultural conventions for a particular language and region of the world (@pxref{Locales,,, libc, The GNU C Library Reference Manual}).  Each locale has a name that typically has the form @code{@var{language}_@var{territory}.@var{codeset}}---e.g., @code{fr_LU.utf8} designates the locale for the French language, with cultural conventions from Luxembourg, and using the UTF-8 encoding."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:12025
+#: doc/guix.texi:13832
 #, no-wrap
 msgid "locale definition"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:12029
+#: doc/guix.texi:13836
 msgid "Usually, you will want to specify the default locale for the machine using the @code{locale} field of the @code{operating-system} declaration (@pxref{operating-system Reference, @code{locale}})."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:12038
+#: doc/guix.texi:13845
 msgid "The selected locale is automatically added to the @dfn{locale definitions} known to the system if needed, with its codeset inferred from its name---e.g., @code{bo_CN.utf8} will be assumed to use the @code{UTF-8} codeset.  Additional locale definitions can be specified in the @code{locale-definitions} slot of @code{operating-system}---this is useful, for instance, if the codeset could not be inferred from the locale name.  The default set of locale definitions includes some widely used locales, but not all the available locales, in order to save space."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:12041
+#: doc/guix.texi:13848
 msgid "For instance, to add the North Frisian locale for Germany, the value of that field may be:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:12046
+#: doc/guix.texi:13853
 #, no-wrap
 msgid ""
 "(cons (locale-definition\n"
@@ -21469,12 +24893,12 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:12050
+#: doc/guix.texi:13857
 msgid "Likewise, to save space, one might want @code{locale-definitions} to list only the locales that are actually used, as in:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:12055
+#: doc/guix.texi:13862
 #, no-wrap
 msgid ""
 "(list (locale-definition\n"
@@ -21483,114 +24907,114 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:12064
-msgid "The compiled locale definitions are available at @file{/run/current-system/locale/X.Y}, where @code{X.Y} is the libc version, which is the default location where the GNU@tie{}libc provided by Guix looks for locale data.  This can be overridden using the @code{LOCPATH} environment variable (@pxref{locales-and-locpath, @code{LOCPATH} and locale packages})."
+#: doc/guix.texi:13871
+msgid "The compiled locale definitions are available at @file{/run/current-system/locale/X.Y}, where @code{X.Y} is the libc version, which is the default location where the GNU@tie{}libc provided by Guix looks for locale data.  This can be overridden using the @env{LOCPATH} environment variable (@pxref{locales-and-locpath, @env{LOCPATH} and locale packages})."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:12067
+#: doc/guix.texi:13874
 msgid "The @code{locale-definition} form is provided by the @code{(gnu system locale)} module.  Details are given below."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:12068
+#: doc/guix.texi:13875
 #, no-wrap
 msgid "{Data Type} locale-definition"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:12070
+#: doc/guix.texi:13877
 msgid "This is the data type of a locale definition."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12076
+#: doc/guix.texi:13883
 msgid "The name of the locale.  @xref{Locale Names,,, libc, The GNU C Library Reference Manual}, for more information on locale names."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12080
+#: doc/guix.texi:13887
 msgid "The name of the source for that locale.  This is typically the @code{@var{language}_@var{territory}} part of the locale name."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12081
+#: doc/guix.texi:13888
 #, no-wrap
 msgid "@code{charset} (default: @code{\"UTF-8\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12085
+#: doc/guix.texi:13892
 msgid "The ``character set'' or ``code set'' for that locale, @uref{https://www.iana.org/assignments/character-sets, as defined by IANA}."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:12089
+#: doc/guix.texi:13896
 #, no-wrap
 msgid "{Scheme Variable} %default-locale-definitions"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:12093
+#: doc/guix.texi:13900
 msgid "A list of commonly used UTF-8 locales, used as the default value of the @code{locale-definitions} field of @code{operating-system} declarations."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:12094
+#: doc/guix.texi:13901
 #, no-wrap
 msgid "locale name"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:12095
+#: doc/guix.texi:13902
 #, no-wrap
 msgid "normalized codeset in locale names"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:12101
+#: doc/guix.texi:13908
 msgid "These locale definitions use the @dfn{normalized codeset} for the part that follows the dot in the name (@pxref{Using gettextized software, normalized codeset,, libc, The GNU C Library Reference Manual}).  So for instance it has @code{uk_UA.utf8} but @emph{not}, say, @code{uk_UA.UTF-8}."
 msgstr ""
 
 #. type: subsection
-#: doc/guix.texi:12103
+#: doc/guix.texi:13910
 #, no-wrap
 msgid "Locale Data Compatibility Considerations"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:12105
+#: doc/guix.texi:13912
 #, no-wrap
 msgid "incompatibility, of locale data"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:12112
+#: doc/guix.texi:13919
 msgid "@code{operating-system} declarations provide a @code{locale-libcs} field to specify the GNU@tie{}libc packages that are used to compile locale declarations (@pxref{operating-system Reference}).  ``Why would I care?'', you may ask.  Well, it turns out that the binary format of locale data is occasionally incompatible from one libc version to another."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:12124
-msgid "For instance, a program linked against libc version 2.21 is unable to read locale data produced with libc 2.22; worse, that program @emph{aborts} instead of simply ignoring the incompatible locale data@footnote{Versions 2.23 and later of GNU@tie{}libc will simply skip the incompatible locale data, which is already an improvement.}.  Similarly, a program linked against libc 2.22 can read most, but not all, of the locale data from libc 2.21 (specifically, @code{LC_COLLATE} data is incompatible); thus calls to @code{setlocale} may fail, but programs will not abort."
+#: doc/guix.texi:13931
+msgid "For instance, a program linked against libc version 2.21 is unable to read locale data produced with libc 2.22; worse, that program @emph{aborts} instead of simply ignoring the incompatible locale data@footnote{Versions 2.23 and later of GNU@tie{}libc will simply skip the incompatible locale data, which is already an improvement.}.  Similarly, a program linked against libc 2.22 can read most, but not all, of the locale data from libc 2.21 (specifically, @env{LC_COLLATE} data is incompatible); thus calls to @code{setlocale} may fail, but programs will not abort."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:12129
+#: doc/guix.texi:13936
 msgid "The ``problem'' with Guix is that users have a lot of freedom: They can choose whether and when to upgrade software in their profiles, and might be using a libc version different from the one the system administrator used to build the system-wide locale data."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:12133
-msgid "Fortunately, unprivileged users can also install their own locale data and define @var{GUIX_LOCPATH} accordingly (@pxref{locales-and-locpath, @code{GUIX_LOCPATH} and locale packages})."
+#: doc/guix.texi:13940
+msgid "Fortunately, unprivileged users can also install their own locale data and define @env{GUIX_LOCPATH} accordingly (@pxref{locales-and-locpath, @env{GUIX_LOCPATH} and locale packages})."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:12140
+#: doc/guix.texi:13947
 msgid "Still, it is best if the system-wide locale data at @file{/run/current-system/locale} is built for all the libc versions actually in use on the system, so that all the programs can access it---this is especially crucial on a multi-user system.  To do that, the administrator can specify several libc packages in the @code{locale-libcs} field of @code{operating-system}:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:12143
+#: doc/guix.texi:13950
 #, no-wrap
 msgid ""
 "(use-package-modules base)\n"
@@ -21598,7 +25022,7 @@ msgid ""
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:12147
+#: doc/guix.texi:13954
 #, no-wrap
 msgid ""
 "(operating-system\n"
@@ -21607,39 +25031,39 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:12152
+#: doc/guix.texi:13959
 msgid "This example would lead to a system containing locale definitions for both libc 2.21 and the current version of libc in @file{/run/current-system/locale}."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:12157
+#: doc/guix.texi:13964
 #, no-wrap
 msgid "system services"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:12163
+#: doc/guix.texi:13970
 msgid "An important part of preparing an @code{operating-system} declaration is listing @dfn{system services} and their configuration (@pxref{Using the Configuration System}).  System services are typically daemons launched when the system boots, or other actions needed at that time---e.g., configuring network access."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:12170
+#: doc/guix.texi:13977
 msgid "Guix has a broad definition of ``service'' (@pxref{Service Composition}), but many services are managed by the GNU@tie{}Shepherd (@pxref{Shepherd Services}).  On a running system, the @command{herd} command allows you to list the available services, show their status, start and stop them, or do other specific operations (@pxref{Jump Start,,, shepherd, The GNU Shepherd Manual}).  For example:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:12173
+#: doc/guix.texi:13980
 #, no-wrap
 msgid "# herd status\n"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:12178
+#: doc/guix.texi:13985
 msgid "The above command, run as @code{root}, lists the currently defined services.  The @command{herd doc} command shows a synopsis of the given service and its associated actions:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:12182
+#: doc/guix.texi:13989
 #, no-wrap
 msgid ""
 "# herd doc nscd\n"
@@ -21648,7 +25072,7 @@ msgid ""
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:12185
+#: doc/guix.texi:13992
 #, no-wrap
 msgid ""
 "# herd doc nscd action invalidate\n"
@@ -21656,12 +25080,12 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:12190
+#: doc/guix.texi:13997
 msgid "The @command{start}, @command{stop}, and @command{restart} sub-commands have the effect you would expect.  For instance, the commands below stop the nscd service and restart the Xorg display server:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:12197
+#: doc/guix.texi:14004
 #, no-wrap
 msgid ""
 "# herd stop nscd\n"
@@ -21672,56 +25096,33 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:12202
+#: doc/guix.texi:14009
 msgid "The following sections document the available services, starting with the core services, that may be used in an @code{operating-system} declaration."
 msgstr ""
 
-#. type: subsection
-#: doc/guix.texi:12234 doc/guix.texi:19536 doc/guix.texi:19537
-#, no-wrap
-msgid "LDAP Services"
-msgstr ""
-
-#. type: menuentry
-#: doc/guix.texi:12234
-msgid "LDAP services."
-msgstr ""
-
-#. type: subsection
-#: doc/guix.texi:12234 doc/guix.texi:25335 doc/guix.texi:25336
-#, fuzzy, no-wrap
-#| msgid "Audio Services"
-msgid "Guix Services"
-msgstr "Сервисы аудио"
-
-#. type: menuentry
-#: doc/guix.texi:12234
-msgid "Services relating specifically to Guix."
-msgstr ""
-
 #. type: Plain text
-#: doc/guix.texi:12242
+#: doc/guix.texi:14051
 msgid "The @code{(gnu services base)} module provides definitions for the basic services that one expects from the system.  The services exported by this module are listed below."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:12243
+#: doc/guix.texi:14052
 #, no-wrap
 msgid "{Scheme Variable} %base-services"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:12249
+#: doc/guix.texi:14058
 msgid "This variable contains a list of basic services (@pxref{Service Types and Services}, for more information on service objects) one would expect from the system: a login service (mingetty) on each tty, syslogd, the libc name service cache daemon (nscd), the udev device manager, and more."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:12254
+#: doc/guix.texi:14063
 msgid "This is the default value of the @code{services} field of @code{operating-system} declarations.  Usually, when customizing a system, you will want to append services to @code{%base-services}, like this:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:12259
+#: doc/guix.texi:14068
 #, no-wrap
 msgid ""
 "(append (list (service avahi-service-type)\n"
@@ -21730,58 +25131,58 @@ msgid ""
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:12262
+#: doc/guix.texi:14071
 #, no-wrap
 msgid "{Scheme Variable} special-files-service-type"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:12265
+#: doc/guix.texi:14074
 msgid "This is the service that sets up ``special files'' such as @file{/bin/sh}; an instance of it is part of @code{%base-services}."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:12269
+#: doc/guix.texi:14078
 msgid "The value associated with @code{special-files-service-type} services must be a list of tuples where the first element is the ``special file'' and the second element is its target.  By default it is:"
 msgstr ""
 
 #. type: file{#1}
-#: doc/guix.texi:12270
+#: doc/guix.texi:14079
 #, no-wrap
 msgid "/bin/sh"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:12271
+#: doc/guix.texi:14080
 #, no-wrap
 msgid "@file{sh}, in @file{/bin}"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:12274
+#: doc/guix.texi:14083
 #, no-wrap
 msgid "`((\"/bin/sh\" ,(file-append bash \"/bin/sh\")))\n"
 msgstr ""
 
 #. type: file{#1}
-#: doc/guix.texi:12276
+#: doc/guix.texi:14085
 #, no-wrap
 msgid "/usr/bin/env"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:12277
+#: doc/guix.texi:14086
 #, no-wrap
 msgid "@file{env}, in @file{/usr/bin}"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:12280
+#: doc/guix.texi:14089
 msgid "If you want to add, say, @code{/usr/bin/env} to your system, you can change it to:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:12284
+#: doc/guix.texi:14093
 #, no-wrap
 msgid ""
 "`((\"/bin/sh\" ,(file-append bash \"/bin/sh\"))\n"
@@ -21789,28 +25190,28 @@ msgid ""
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:12291
-msgid "Since this is part of @code{%base-services}, you can use @code{modify-services} to customize the set of special files (@pxref{Service Reference, @code{modify-services}}).  But the simple way to add a special file is @i{via} the @code{extra-special-file} procedure (see below.)"
+#: doc/guix.texi:14100
+msgid "Since this is part of @code{%base-services}, you can use @code{modify-services} to customize the set of special files (@pxref{Service Reference, @code{modify-services}}).  But the simple way to add a special file is @i{via} the @code{extra-special-file} procedure (see below)."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:12293
+#: doc/guix.texi:14102
 #, no-wrap
 msgid "{Scheme Procedure} extra-special-file @var{file} @var{target}"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:12295
+#: doc/guix.texi:14104
 msgid "Use @var{target} as the ``special file'' @var{file}."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:12299
+#: doc/guix.texi:14108
 msgid "For example, adding the following lines to the @code{services} field of your operating system declaration leads to a @file{/usr/bin/env} symlink:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:12303
+#: doc/guix.texi:14112
 #, no-wrap
 msgid ""
 "(extra-special-file \"/usr/bin/env\"\n"
@@ -21818,30 +25219,30 @@ msgid ""
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:12306
+#: doc/guix.texi:14115
 #, no-wrap
 msgid "{Scheme Procedure} host-name-service @var{name}"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:12308
+#: doc/guix.texi:14117
 msgid "Return a service that sets the host name to @var{name}."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:12310
+#: doc/guix.texi:14119
 #, fuzzy, no-wrap
 #| msgid "{Scheme Procedure} sane-service-type"
 msgid "{Scheme Variable} console-font-service-type"
 msgstr "{Процедура Scheme} sane-service-type"
 
 #. type: defvr
-#: doc/guix.texi:12315
+#: doc/guix.texi:14124
 msgid "Install the given fonts on the specified ttys (fonts are per virtual console on the kernel Linux).  The value of this service is a list of tty/font pairs.  The font can be the name of a font provided by the @code{kbd} package or any valid argument to @command{setfont}, as in this example:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:12324
+#: doc/guix.texi:14133
 #, no-wrap
 msgid ""
 "`((\"tty1\" . \"LatGrkCyr-8x16\")\n"
@@ -21854,1176 +25255,1183 @@ msgid ""
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:12327
+#: doc/guix.texi:14136
 #, no-wrap
 msgid "{Scheme Procedure} login-service @var{config}"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:12331
+#: doc/guix.texi:14140
 msgid "Return a service to run login according to @var{config}, a @code{<login-configuration>} object, which specifies the message of the day, among other things."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:12333
+#: doc/guix.texi:14142
 #, no-wrap
 msgid "{Data Type} login-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:12335
+#: doc/guix.texi:14144
 msgid "This is the data type representing the configuration of login."
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:12338
+#: doc/guix.texi:14147
 #, no-wrap
 msgid "motd"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:12339
+#: doc/guix.texi:14148
 #, no-wrap
 msgid "message of the day"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12341
+#: doc/guix.texi:14150
 msgid "A file-like object containing the ``message of the day''."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12342 doc/guix.texi:14542
+#: doc/guix.texi:14151 doc/guix.texi:16710
 #, no-wrap
 msgid "@code{allow-empty-passwords?} (default: @code{#t})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12345
+#: doc/guix.texi:14154
 msgid "Allow empty passwords by default so that first-time users can log in when the 'root' account has just been created."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:12349
+#: doc/guix.texi:14158
 #, no-wrap
 msgid "{Scheme Procedure} mingetty-service @var{config}"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:12353
+#: doc/guix.texi:14162
 msgid "Return a service to run mingetty according to @var{config}, a @code{<mingetty-configuration>} object, which specifies the tty to run, among other things."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:12355
+#: doc/guix.texi:14164
 #, no-wrap
 msgid "{Data Type} mingetty-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:12358
+#: doc/guix.texi:14167
 msgid "This is the data type representing the configuration of Mingetty, which provides the default implementation of virtual console log-in."
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:12361 doc/guix.texi:12397
+#: doc/guix.texi:14170 doc/guix.texi:14206 doc/guix.texi:28921
 #, no-wrap
 msgid "tty"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12363
+#: doc/guix.texi:14172
 msgid "The name of the console this Mingetty runs on---e.g., @code{\"tty1\"}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12364 doc/guix.texi:12426 doc/guix.texi:12585
+#: doc/guix.texi:14173 doc/guix.texi:14235 doc/guix.texi:14394
 #, no-wrap
 msgid "@code{auto-login} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12368
+#: doc/guix.texi:14177
 msgid "When true, this field must be a string denoting the user name under which the system automatically logs in.  When it is @code{#f}, a user name and password must be entered to log in."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12369
+#: doc/guix.texi:14178
 #, no-wrap
 msgid "@code{login-program} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12373
+#: doc/guix.texi:14182
 msgid "This must be either @code{#f}, in which case the default log-in program is used (@command{login} from the Shadow tool suite), or a gexp denoting the name of the log-in program."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12374
+#: doc/guix.texi:14183
 #, no-wrap
 msgid "@code{login-pause?} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12377
+#: doc/guix.texi:14186
 msgid "When set to @code{#t} in conjunction with @var{auto-login}, the user will have to press a key before the log-in shell is launched."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12378
+#: doc/guix.texi:14187
 #, no-wrap
 msgid "@code{mingetty} (default: @var{mingetty})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12380
+#: doc/guix.texi:14189
 msgid "The Mingetty package to use."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:12384
+#: doc/guix.texi:14193
 #, no-wrap
 msgid "{Scheme Procedure} agetty-service @var{config}"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:12388
+#: doc/guix.texi:14197
 msgid "Return a service to run agetty according to @var{config}, an @code{<agetty-configuration>} object, which specifies the tty to run, among other things."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:12390
+#: doc/guix.texi:14199
 #, no-wrap
 msgid "{Data Type} agetty-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:12394
+#: doc/guix.texi:14203
 msgid "This is the data type representing the configuration of agetty, which implements virtual and serial console log-in.  See the @code{agetty(8)} man page for more information."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12401
-msgid "The name of the console this agetty runs on, as a string---e.g., @code{\"ttyS0\"}. This argument is optional, it will default to a reasonable default serial port used by the kernel Linux."
+#: doc/guix.texi:14210
+msgid "The name of the console this agetty runs on, as a string---e.g., @code{\"ttyS0\"}.  This argument is optional, it will default to a reasonable default serial port used by the kernel Linux."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12405
+#: doc/guix.texi:14214
 msgid "For this, if there is a value for an option @code{agetty.tty} in the kernel command line, agetty will extract the device name of the serial port from it and use that."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12409
+#: doc/guix.texi:14218
 msgid "If not and if there is a value for an option @code{console} with a tty in the Linux command line, agetty will extract the device name of the serial port from it and use that."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12413
+#: doc/guix.texi:14222
 msgid "In both cases, agetty will leave the other serial device settings (baud rate etc.)@: alone---in the hope that Linux pinned them to the correct values."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12414 doc/guix.texi:25624
+#: doc/guix.texi:14223 doc/guix.texi:29062
 #, no-wrap
 msgid "@code{baud-rate} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12417
+#: doc/guix.texi:14226
 msgid "A string containing a comma-separated list of one or more baud rates, in descending order."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12418
+#: doc/guix.texi:14227
 #, no-wrap
 msgid "@code{term} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12421
-msgid "A string containing the value used for the @code{TERM} environment variable."
+#: doc/guix.texi:14230
+msgid "A string containing the value used for the @env{TERM} environment variable."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12422
+#: doc/guix.texi:14231
 #, no-wrap
 msgid "@code{eight-bits?} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12425
+#: doc/guix.texi:14234
 msgid "When @code{#t}, the tty is assumed to be 8-bit clean, and parity detection is disabled."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12429 doc/guix.texi:12588
+#: doc/guix.texi:14238 doc/guix.texi:14397
 msgid "When passed a login name, as a string, the specified user will be logged in automatically without prompting for their login name or password."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12430
+#: doc/guix.texi:14239
 #, no-wrap
 msgid "@code{no-reset?} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12432
+#: doc/guix.texi:14241
 msgid "When @code{#t}, don't reset terminal cflags (control modes)."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12433
+#: doc/guix.texi:14242
 #, no-wrap
 msgid "@code{host} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12436
-msgid "This accepts a string containing the \"login_host\", which will be written into the @file{/var/run/utmpx} file."
+#: doc/guix.texi:14245
+msgid "This accepts a string containing the ``login_host'', which will be written into the @file{/var/run/utmpx} file."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12437
+#: doc/guix.texi:14246
 #, no-wrap
 msgid "@code{remote?} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12441
+#: doc/guix.texi:14250
 msgid "When set to @code{#t} in conjunction with @var{host}, this will add an @code{-r} fakehost option to the command line of the login program specified in @var{login-program}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12442
+#: doc/guix.texi:14251
 #, no-wrap
 msgid "@code{flow-control?} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12444
+#: doc/guix.texi:14253
 msgid "When set to @code{#t}, enable hardware (RTS/CTS) flow control."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12445
+#: doc/guix.texi:14254
 #, no-wrap
 msgid "@code{no-issue?} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12448
+#: doc/guix.texi:14257
 msgid "When set to @code{#t}, the contents of the @file{/etc/issue} file will not be displayed before presenting the login prompt."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12449
+#: doc/guix.texi:14258
 #, no-wrap
 msgid "@code{init-string} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12452
+#: doc/guix.texi:14261
 msgid "This accepts a string that will be sent to the tty or modem before sending anything else.  It can be used to initialize a modem."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12453
+#: doc/guix.texi:14262
 #, no-wrap
 msgid "@code{no-clear?} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12456
+#: doc/guix.texi:14265
 msgid "When set to @code{#t}, agetty will not clear the screen before showing the login prompt."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12457
+#: doc/guix.texi:14266
 #, no-wrap
 msgid "@code{login-program} (default: (file-append shadow \"/bin/login\"))"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12461
+#: doc/guix.texi:14270
 msgid "This must be either a gexp denoting the name of a log-in program, or unset, in which case the default value is the @command{login} from the Shadow tool suite."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12462
+#: doc/guix.texi:14271
 #, no-wrap
 msgid "@code{local-line} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12466
+#: doc/guix.texi:14275
 msgid "Control the CLOCAL line flag.  This accepts one of three symbols as arguments, @code{'auto}, @code{'always}, or @code{'never}. If @code{#f}, the default value chosen by agetty is @code{'auto}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12467
+#: doc/guix.texi:14276
 #, no-wrap
 msgid "@code{extract-baud?} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12470
+#: doc/guix.texi:14279
 msgid "When set to @code{#t}, instruct agetty to try to extract the baud rate from the status messages produced by certain types of modems."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12471
+#: doc/guix.texi:14280
 #, no-wrap
 msgid "@code{skip-login?} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12475
+#: doc/guix.texi:14284
 msgid "When set to @code{#t}, do not prompt the user for a login name.  This can be used with @var{login-program} field to use non-standard login systems."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12476
+#: doc/guix.texi:14285
 #, no-wrap
 msgid "@code{no-newline?} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12479
+#: doc/guix.texi:14288
 msgid "When set to @code{#t}, do not print a newline before printing the @file{/etc/issue} file."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12481
+#: doc/guix.texi:14290
 #, no-wrap
 msgid "@code{login-options} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12486
+#: doc/guix.texi:14295
 msgid "This option accepts a string containing options that are passed to the login program.  When used with the @var{login-program}, be aware that a malicious user could try to enter a login name containing embedded options that could be parsed by the login program."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12487
+#: doc/guix.texi:14296
 #, no-wrap
 msgid "@code{login-pause} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12491
+#: doc/guix.texi:14300
 msgid "When set to @code{#t}, wait for any key before showing the login prompt.  This can be used in conjunction with @var{auto-login} to save memory by lazily spawning shells."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12492
+#: doc/guix.texi:14301
 #, no-wrap
 msgid "@code{chroot} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12495
+#: doc/guix.texi:14304
 msgid "Change root to the specified directory.  This option accepts a directory path as a string."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12496
+#: doc/guix.texi:14305
 #, no-wrap
 msgid "@code{hangup?} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12499
+#: doc/guix.texi:14308
 msgid "Use the Linux system call @code{vhangup} to do a virtual hangup of the specified terminal."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12500
+#: doc/guix.texi:14309
 #, no-wrap
 msgid "@code{keep-baud?} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12504
+#: doc/guix.texi:14313
 msgid "When set to @code{#t}, try to keep the existing baud rate.  The baud rates from @var{baud-rate} are used when agetty receives a @key{BREAK} character."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12505
+#: doc/guix.texi:14314
 #, no-wrap
 msgid "@code{timeout} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12508
+#: doc/guix.texi:14317
 msgid "When set to an integer value, terminate if no user name could be read within @var{timeout} seconds."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12509
+#: doc/guix.texi:14318
 #, no-wrap
 msgid "@code{detect-case?} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12515
+#: doc/guix.texi:14324
 msgid "When set to @code{#t}, turn on support for detecting an uppercase-only terminal.  This setting will detect a login name containing only uppercase letters as indicating an uppercase-only terminal and turn on some upper-to-lower case conversions.  Note that this will not support Unicode characters."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12516
+#: doc/guix.texi:14325
 #, no-wrap
 msgid "@code{wait-cr?} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12521
+#: doc/guix.texi:14330
 msgid "When set to @code{#t}, wait for the user or modem to send a carriage-return or linefeed character before displaying @file{/etc/issue} or login prompt.  This is typically used with the @var{init-string} option."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12522
+#: doc/guix.texi:14331
 #, no-wrap
 msgid "@code{no-hints?} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12525
+#: doc/guix.texi:14334
 msgid "When set to @code{#t}, do not print hints about Num, Caps, and Scroll locks."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12526
+#: doc/guix.texi:14335
 #, no-wrap
 msgid "@code{no-hostname?} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12529
+#: doc/guix.texi:14338
 msgid "By default, the hostname is printed.  When this option is set to @code{#t}, no hostname will be shown at all."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12530
+#: doc/guix.texi:14339
 #, no-wrap
 msgid "@code{long-hostname?} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12534
+#: doc/guix.texi:14343
 msgid "By default, the hostname is only printed until the first dot.  When this option is set to @code{#t}, the fully qualified hostname by @code{gethostname} or @code{getaddrinfo} is shown."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12535
+#: doc/guix.texi:14344
 #, no-wrap
 msgid "@code{erase-characters} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12538
+#: doc/guix.texi:14347
 msgid "This option accepts a string of additional characters that should be interpreted as backspace when the user types their login name."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12539
+#: doc/guix.texi:14348
 #, no-wrap
 msgid "@code{kill-characters} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12543
-msgid "This option accepts a string that should be interpreted to mean \"ignore all previous characters\" (also called a \"kill\" character) when the user types their login name."
+#: doc/guix.texi:14352
+msgid "This option accepts a string that should be interpreted to mean ``ignore all previous characters'' (also called a ``kill'' character) when the user types their login name."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12544
+#: doc/guix.texi:14353
 #, no-wrap
 msgid "@code{chdir} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12547
+#: doc/guix.texi:14356
 msgid "This option accepts, as a string, a directory path that will be changed to before login."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12548
+#: doc/guix.texi:14357
 #, no-wrap
 msgid "@code{delay} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12551
+#: doc/guix.texi:14360
 msgid "This options accepts, as an integer, the number of seconds to sleep before opening the tty and displaying the login prompt."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12552
+#: doc/guix.texi:14361
 #, no-wrap
 msgid "@code{nice} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12555
+#: doc/guix.texi:14364
 msgid "This option accepts, as an integer, the nice value with which to run the @command{login} program."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12556 doc/guix.texi:12787 doc/guix.texi:13605
-#: doc/guix.texi:20537 doc/guix.texi:22578
+#: doc/guix.texi:14365 doc/guix.texi:14596 doc/guix.texi:15419
+#: doc/guix.texi:22780 doc/guix.texi:24934 doc/guix.texi:25571
+#: doc/guix.texi:27278 doc/guix.texi:29391
 #, no-wrap
 msgid "@code{extra-options} (default: @code{'()})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12559
-msgid "This option provides an \"escape hatch\" for the user to provide arbitrary command-line arguments to @command{agetty} as a list of strings."
+#: doc/guix.texi:14368
+msgid "This option provides an ``escape hatch'' for the user to provide arbitrary command-line arguments to @command{agetty} as a list of strings."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:12563
+#: doc/guix.texi:14372
 #, no-wrap
 msgid "{Scheme Procedure} kmscon-service-type @var{config}"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:12567
+#: doc/guix.texi:14376
 msgid "Return a service to run @uref{https://www.freedesktop.org/wiki/Software/kmscon,kmscon} according to @var{config}, a @code{<kmscon-configuration>} object, which specifies the tty to run, among other things."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:12569
+#: doc/guix.texi:14378
 #, no-wrap
 msgid "{Data Type} kmscon-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:12572
+#: doc/guix.texi:14381
 msgid "This is the data type representing the configuration of Kmscon, which implements virtual console log-in."
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:12575
+#: doc/guix.texi:14384
 #, no-wrap
 msgid "virtual-terminal"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12577
+#: doc/guix.texi:14386
 msgid "The name of the console this Kmscon runs on---e.g., @code{\"tty1\"}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12578
+#: doc/guix.texi:14387
 #, no-wrap
 msgid "@code{login-program} (default: @code{#~(string-append #$shadow \"/bin/login\")})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12581
+#: doc/guix.texi:14390
 msgid "A gexp denoting the name of the log-in program. The default log-in program is @command{login} from the Shadow tool suite."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12582
+#: doc/guix.texi:14391
 #, no-wrap
 msgid "@code{login-arguments} (default: @code{'(\"-p\")})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12584
+#: doc/guix.texi:14393
 msgid "A list of arguments to pass to @command{login}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12589
+#: doc/guix.texi:14398
 #, no-wrap
 msgid "@code{hardware-acceleration?} (default: #f)"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12591
+#: doc/guix.texi:14400
 msgid "Whether to use hardware acceleration."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12592
+#: doc/guix.texi:14401
 #, no-wrap
 msgid "@code{kmscon} (default: @var{kmscon})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12594
+#: doc/guix.texi:14403
 msgid "The Kmscon package to use."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:12598
+#: doc/guix.texi:14407
 #, no-wrap
 msgid "name service cache daemon"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:12599
+#: doc/guix.texi:14408
 #, no-wrap
 msgid "nscd"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:12600
+#: doc/guix.texi:14409
 #, no-wrap
 msgid "{Scheme Procedure} nscd-service [@var{config}] [#:glibc glibc] @"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:12605
+#: doc/guix.texi:14414
 msgid "[#:name-services '()] Return a service that runs the libc name service cache daemon (nscd) with the given @var{config}---an @code{<nscd-configuration>} object.  @xref{Name Service Switch}, for an example."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:12607
+#: doc/guix.texi:14416
 msgid "For convenience, the Shepherd service for nscd provides the following actions:"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12609
+#: doc/guix.texi:14418
 #, no-wrap
 msgid "invalidate"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:12610
+#: doc/guix.texi:14419
 #, no-wrap
 msgid "cache invalidation, nscd"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:12611
+#: doc/guix.texi:14420
 #, no-wrap
 msgid "nscd, cache invalidation"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12613
+#: doc/guix.texi:14422
 msgid "This invalidate the given cache.  For instance, running:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:12616
+#: doc/guix.texi:14425
 #, no-wrap
 msgid "herd invalidate nscd hosts\n"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12620
+#: doc/guix.texi:14429
 msgid "invalidates the host name lookup cache of nscd."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12621
+#: doc/guix.texi:14430
 #, no-wrap
 msgid "statistics"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12624
+#: doc/guix.texi:14433
 msgid "Running @command{herd statistics nscd} displays information about nscd usage and caches."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:12628
+#: doc/guix.texi:14437
 #, no-wrap
 msgid "{Scheme Variable} %nscd-default-configuration"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:12632
-msgid "This is the default @code{<nscd-configuration>} value (see below) used by @code{nscd-service}.  It uses the caches defined by @var{%nscd-default-caches}; see below."
+#: doc/guix.texi:14441
+msgid "This is the default @code{<nscd-configuration>} value (see below) used by @code{nscd-service}.  It uses the caches defined by @code{%nscd-default-caches}; see below."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:12634
+#: doc/guix.texi:14443
 #, no-wrap
 msgid "{Data Type} nscd-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:12637
+#: doc/guix.texi:14446
 msgid "This is the data type representing the name service cache daemon (nscd)  configuration."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12640
+#: doc/guix.texi:14449
 #, no-wrap
 msgid "@code{name-services} (default: @code{'()})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12643
+#: doc/guix.texi:14452
 msgid "List of packages denoting @dfn{name services} that must be visible to the nscd---e.g., @code{(list @var{nss-mdns})}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12644
+#: doc/guix.texi:14453
 #, no-wrap
 msgid "@code{glibc} (default: @var{glibc})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12647
+#: doc/guix.texi:14456
 msgid "Package object denoting the GNU C Library providing the @command{nscd} command."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12648
+#: doc/guix.texi:14457
 #, no-wrap
 msgid "@code{log-file} (default: @code{\"/var/log/nscd.log\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12651
+#: doc/guix.texi:14460
 msgid "Name of the nscd log file.  This is where debugging output goes when @code{debug-level} is strictly positive."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12652
+#: doc/guix.texi:14461
 #, no-wrap
 msgid "@code{debug-level} (default: @code{0})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12655
+#: doc/guix.texi:14464
 msgid "Integer denoting the debugging levels.  Higher numbers mean that more debugging output is logged."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12656
-#, no-wrap
-msgid "@code{caches} (default: @var{%nscd-default-caches})"
-msgstr ""
+#: doc/guix.texi:14465
+#, fuzzy, no-wrap
+#| msgid "@code{port} (default: @code{22})"
+msgid "@code{caches} (default: @code{%nscd-default-caches})"
+msgstr "@code{port} (default: @code{22})"
 
 #. type: table
-#: doc/guix.texi:12659
+#: doc/guix.texi:14468
 msgid "List of @code{<nscd-cache>} objects denoting things to be cached; see below."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:12663
+#: doc/guix.texi:14472
 #, no-wrap
 msgid "{Data Type} nscd-cache"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:12665
+#: doc/guix.texi:14474
 msgid "Data type representing a cache database of nscd and its parameters."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:12668 doc/guix.texi:16249
+#: doc/guix.texi:14477 doc/guix.texi:18450
 #, no-wrap
 msgid "database"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12673
+#: doc/guix.texi:14482
 msgid "This is a symbol representing the name of the database to be cached.  Valid values are @code{passwd}, @code{group}, @code{hosts}, and @code{services}, which designate the corresponding NSS database (@pxref{NSS Basics,,, libc, The GNU C Library Reference Manual})."
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:12674
+#: doc/guix.texi:14483
 #, no-wrap
 msgid "positive-time-to-live"
 msgstr ""
 
 #. type: itemx
-#: doc/guix.texi:12675
+#: doc/guix.texi:14484
 #, no-wrap
 msgid "@code{negative-time-to-live} (default: @code{20})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12678
+#: doc/guix.texi:14487
 msgid "A number representing the number of seconds during which a positive or negative lookup result remains in cache."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12679
+#: doc/guix.texi:14488
 #, no-wrap
 msgid "@code{check-files?} (default: @code{#t})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12682
+#: doc/guix.texi:14491
 msgid "Whether to check for updates of the files corresponding to @var{database}."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12686
+#: doc/guix.texi:14495
 msgid "For instance, when @var{database} is @code{hosts}, setting this flag instructs nscd to check for updates in @file{/etc/hosts} and to take them into account."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12687
+#: doc/guix.texi:14496
 #, no-wrap
 msgid "@code{persistent?} (default: @code{#t})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12689
+#: doc/guix.texi:14498
 msgid "Whether the cache should be stored persistently on disk."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12690
+#: doc/guix.texi:14499
 #, no-wrap
 msgid "@code{shared?} (default: @code{#t})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12692
+#: doc/guix.texi:14501
 msgid "Whether the cache should be shared among users."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12693
+#: doc/guix.texi:14502
 #, no-wrap
 msgid "@code{max-database-size} (default: 32@tie{}MiB)"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12695
+#: doc/guix.texi:14504
 msgid "Maximum size in bytes of the database cache."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:12702
+#: doc/guix.texi:14511
 #, no-wrap
 msgid "{Scheme Variable} %nscd-default-caches"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:12705
+#: doc/guix.texi:14514
 msgid "List of @code{<nscd-cache>} objects used by default by @code{nscd-configuration} (see above)."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:12711
+#: doc/guix.texi:14520
 msgid "It enables persistent and aggressive caching of service and host name lookups.  The latter provides better host name lookup performance, resilience in the face of unreliable name servers, and also better privacy---often the result of host name lookups is in local cache, so external name servers do not even need to be queried."
 msgstr ""
 
 #. type: anchor{#1}
-#: doc/guix.texi:12714
+#: doc/guix.texi:14523
 msgid "syslog-configuration-type"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:12714 doc/guix.texi:12730
+#: doc/guix.texi:14523 doc/guix.texi:14539
 #, no-wrap
 msgid "syslog"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:12715 doc/guix.texi:13209
+#: doc/guix.texi:14524 doc/guix.texi:15020
 #, no-wrap
 msgid "logging"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:12716
+#: doc/guix.texi:14525
 #, no-wrap
 msgid "{Data Type} syslog-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:12718
+#: doc/guix.texi:14527
 msgid "This data type represents the configuration of the syslog daemon."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12720
+#: doc/guix.texi:14529
 #, no-wrap
 msgid "@code{syslogd} (default: @code{#~(string-append #$inetutils \"/libexec/syslogd\")})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12722
+#: doc/guix.texi:14531
 msgid "The syslog daemon to use."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12723
+#: doc/guix.texi:14532
 #, no-wrap
 msgid "@code{config-file} (default: @code{%default-syslog.conf})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12725
+#: doc/guix.texi:14534
 msgid "The syslog configuration file to use."
 msgstr ""
 
 #. type: anchor{#1}
-#: doc/guix.texi:12730
+#: doc/guix.texi:14539
 msgid "syslog-service"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:12731
+#: doc/guix.texi:14540
 #, no-wrap
 msgid "{Scheme Procedure} syslog-service @var{config}"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:12733
+#: doc/guix.texi:14542
 msgid "Return a service that runs a syslog daemon according to @var{config}."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:12736
+#: doc/guix.texi:14545
 msgid "@xref{syslogd invocation,,, inetutils, GNU Inetutils}, for more information on the configuration file syntax."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:12738
+#: doc/guix.texi:14547
 #, no-wrap
 msgid "{Scheme Variable} guix-service-type"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:12742
+#: doc/guix.texi:14551
 msgid "This is the type of the service that runs the build daemon, @command{guix-daemon} (@pxref{Invoking guix-daemon}).  Its value must be a @code{guix-configuration} record as described below."
 msgstr ""
 
 #. type: anchor{#1}
-#: doc/guix.texi:12745
+#: doc/guix.texi:14554
 msgid "guix-configuration-type"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:12745
+#: doc/guix.texi:14554
 #, no-wrap
 msgid "{Data Type} guix-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:12748
+#: doc/guix.texi:14557
 msgid "This data type represents the configuration of the Guix build daemon.  @xref{Invoking guix-daemon}, for more information."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12750
+#: doc/guix.texi:14559
 #, no-wrap
 msgid "@code{guix} (default: @var{guix})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12752 doc/guix.texi:12986
+#: doc/guix.texi:14561 doc/guix.texi:14795
 msgid "The Guix package to use."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12753
+#: doc/guix.texi:14562
 #, no-wrap
 msgid "@code{build-group} (default: @code{\"guixbuild\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12755
+#: doc/guix.texi:14564
 msgid "Name of the group for build user accounts."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12756
+#: doc/guix.texi:14565
 #, no-wrap
 msgid "@code{build-accounts} (default: @code{10})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12758
+#: doc/guix.texi:14567
 msgid "Number of build user accounts to create."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12759
+#: doc/guix.texi:14568
 #, no-wrap
 msgid "@code{authorize-key?} (default: @code{#t})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12764
+#: doc/guix.texi:14573
 msgid "Whether to authorize the substitute keys listed in @code{authorized-keys}---by default that of @code{@value{SUBSTITUTE-SERVER}} (@pxref{Substitutes})."
 msgstr ""
 
 #. type: vindex
-#: doc/guix.texi:12765
+#: doc/guix.texi:14574
 #, no-wrap
 msgid "%default-authorized-guix-keys"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12766
+#: doc/guix.texi:14575
 #, fuzzy, no-wrap
 #| msgid "@code{port} (default: @code{22})"
 msgid "@code{authorized-keys} (default: @code{%default-authorized-guix-keys})"
 msgstr "@code{port} (default: @code{22})"
 
 #. type: table
-#: doc/guix.texi:12770
+#: doc/guix.texi:14579
 msgid "The list of authorized key files for archive imports, as a list of string-valued gexps (@pxref{Invoking guix archive}).  By default, it contains that of @code{@value{SUBSTITUTE-SERVER}} (@pxref{Substitutes})."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12771
+#: doc/guix.texi:14580
 #, no-wrap
 msgid "@code{use-substitutes?} (default: @code{#t})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12773
+#: doc/guix.texi:14582
 msgid "Whether to use substitutes."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12774
+#: doc/guix.texi:14583
 #, fuzzy, no-wrap
 #| msgid "@code{port} (default: @code{22})"
 msgid "@code{substitute-urls} (default: @code{%default-substitute-urls})"
 msgstr "@code{port} (default: @code{22})"
 
 #. type: table
-#: doc/guix.texi:12776
+#: doc/guix.texi:14585
 msgid "The list of URLs where to look for substitutes by default."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12777
+#: doc/guix.texi:14586
 #, no-wrap
 msgid "@code{max-silent-time} (default: @code{0})"
 msgstr ""
 
 #. type: itemx
-#: doc/guix.texi:12778
+#: doc/guix.texi:14587
 #, no-wrap
 msgid "@code{timeout} (default: @code{0})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12782
+#: doc/guix.texi:14591
 msgid "The number of seconds of silence and the number of seconds of activity, respectively, after which a build process times out.  A value of zero disables the timeout."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12783
+#: doc/guix.texi:14592
 #, no-wrap
 msgid "@code{log-compression} (default: @code{'bzip2})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12786
+#: doc/guix.texi:14595
 msgid "The type of compression used for build logs---one of @code{gzip}, @code{bzip2}, or @code{none}."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12789
+#: doc/guix.texi:14598
 msgid "List of extra command-line options for @command{guix-daemon}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12790
+#: doc/guix.texi:14599
 #, no-wrap
 msgid "@code{log-file} (default: @code{\"/var/log/guix-daemon.log\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12793
+#: doc/guix.texi:14602
 msgid "File where @command{guix-daemon}'s standard output and standard error are written."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:12794
+#: doc/guix.texi:14603
 #, no-wrap
 msgid "HTTP proxy, for @code{guix-daemon}"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:12795
+#: doc/guix.texi:14604
 #, no-wrap
 msgid "proxy, for @code{guix-daemon} HTTP access"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12796
+#: doc/guix.texi:14605
 #, no-wrap
 msgid "@code{http-proxy} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12799
+#: doc/guix.texi:14608
 msgid "The URL of the HTTP and HTTPS proxy used for downloading fixed-output derivations and substitutes."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12802
+#: doc/guix.texi:14611
 msgid "It is also possible to change the daemon's proxy at run time through the @code{set-http-proxy} action, which restarts it:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:12805
+#: doc/guix.texi:14614
 #, no-wrap
 msgid "herd set-http-proxy guix-daemon http://localhost:8118\n"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12808
+#: doc/guix.texi:14617
 msgid "To clear the proxy settings, run:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:12811
+#: doc/guix.texi:14620
 #, fuzzy, no-wrap
 #| msgid "herd start ssh-daemon\n"
 msgid "herd set-http-proxy guix-daemon\n"
 msgstr "herd start ssh-daemon\n"
 
 #. type: item
-#: doc/guix.texi:12813
+#: doc/guix.texi:14622
 #, no-wrap
 msgid "@code{tmpdir} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12815
+#: doc/guix.texi:14624
 msgid "A directory path where the @command{guix-daemon} will perform builds."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:12819
+#: doc/guix.texi:14628
 #, no-wrap
 msgid "{Scheme Procedure} udev-service [#:udev @var{eudev} #:rules @code{'()}]"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:12824
-msgid "Run @var{udev}, which populates the @file{/dev} directory dynamically.  udev rules can be provided as a list of files through the @var{rules} variable.  The procedures @code{udev-rule} and @code{file->udev-rule} from @code{(gnu services base)} simplify the creation of such rule files."
+#: doc/guix.texi:14634
+msgid "Run @var{udev}, which populates the @file{/dev} directory dynamically.  udev rules can be provided as a list of files through the @var{rules} variable.  The procedures @code{udev-rule}, @code{udev-rules-service} and @code{file->udev-rule} from @code{(gnu services base)} simplify the creation of such rule files."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:14637
+msgid "The @command{herd rules udev} command, as root, returns the name of the directory containing all the active udev rules."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:12826
+#: doc/guix.texi:14639
 #, no-wrap
 msgid "{Scheme Procedure} udev-rule [@var{file-name} @var{contents}]"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:12829
+#: doc/guix.texi:14642
 msgid "Return a udev-rule file named @var{file-name} containing the rules defined by the @var{contents} literal."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:12833
+#: doc/guix.texi:14646
 msgid "In the following example, a rule for a USB device is defined to be stored in the file @file{90-usb-thing.rules}.  The rule runs a script upon detecting a USB device with a given product identifier."
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:12841
+#: doc/guix.texi:14654
 #, no-wrap
 msgid ""
 "(define %example-udev-rule\n"
@@ -23035,47 +26443,51 @@ msgid ""
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:12845
-msgid "The @command{herd rules udev} command, as root, returns the name of the directory containing all the active udev rules."
+#: doc/guix.texi:14657
+#, fuzzy, no-wrap
+#| msgid "{Scheme Procedure} lookup-inferior-packages @var{inferior} @var{name} @"
+msgid "{Scheme Procedure} udev-rules-service [@var{name} @var{rules}] @"
+msgstr "{Процедура Scheme} lookup-inferior-packages @var{inferior} @var{name} @"
+
+#. type: deffn
+#: doc/guix.texi:14664
+msgid "[#:groups @var{groups}] Return a service that extends @code{udev-service-type } with @var{rules} and @code{account-service-type} with @var{groups} as system groups.  This works by creating a singleton service type @code{@var{name}-udev-rules}, of which the returned service is an instance."
 msgstr ""
 
-#. type: Plain text
-#: doc/guix.texi:12848
-msgid "Here we show how the default @var{udev-service} can be extended with it."
+#. type: deffn
+#: doc/guix.texi:14667
+msgid "Here we show how it can be used to extend @code{udev-service-type} with the previously defined rule @code{%example-udev-rule}."
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:12858
+#: doc/guix.texi:14674
 #, no-wrap
 msgid ""
 "(operating-system\n"
 " ;; @dots{}\n"
 " (services\n"
-" (modify-services %desktop-services\n"
-"   (udev-service-type config =>\n"
-"     (udev-configuration (inherit config)\n"
-"      (rules (append (udev-configuration-rules config)\n"
-"                     (list %example-udev-rule))))))))\n"
+"   (cons (udev-rules-service 'usb-thing %example-udev-rule)\n"
+"         %desktop-services)))\n"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:12860
+#: doc/guix.texi:14677
 #, no-wrap
 msgid "{Scheme Procedure} file->udev-rule [@var{file-name} @var{file}]"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:12863
+#: doc/guix.texi:14680
 msgid "Return a udev file named @var{file-name} containing the rules defined within @var{file}, a file-like object."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:12865
+#: doc/guix.texi:14682
 msgid "The following example showcases how we can use an existing rule file."
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:12870
+#: doc/guix.texi:14687
 #, no-wrap
 msgid ""
 "(use-modules (guix download)     ;for url-fetch\n"
@@ -23085,7 +26497,7 @@ msgid ""
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:12881
+#: doc/guix.texi:14698
 #, no-wrap
 msgid ""
 "(define %android-udev-rules\n"
@@ -23101,17 +26513,17 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:12890
+#: doc/guix.texi:14707
 msgid "Additionally, Guix package definitions can be included in @var{rules} in order to extend the udev rules with the definitions found under their @file{lib/udev/rules.d} sub-directory.  In lieu of the previous @var{file->udev-rule} example, we could have used the @var{android-udev-rules} package which exists in Guix in the @code{(gnu packages android)} module."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:12899
-msgid "The following example shows how to use the @var{android-udev-rules} package so that the Android tool @command{adb} can detect devices without root privileges.  It also details how to create the @code{adbusers} group, which is required for the proper functioning of the rules defined within the @var{android-udev-rules} package.  To create such a group, we must define it both as part of the @var{supplementary-groups} of our @var{user-account} declaration, as well as in the @var{groups} field of the @var{operating-system} record."
+#: doc/guix.texi:14716
+msgid "The following example shows how to use the @var{android-udev-rules} package so that the Android tool @command{adb} can detect devices without root privileges.  It also details how to create the @code{adbusers} group, which is required for the proper functioning of the rules defined within the @code{android-udev-rules} package.  To create such a group, we must define it both as part of the @code{supplementary-groups} of our @code{user-account} declaration, as well as in the @var{groups} of the @code{udev-rules-service} procedure."
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:12904
+#: doc/guix.texi:14721
 #, no-wrap
 msgid ""
 "(use-modules (gnu packages android)  ;for android-udev-rules\n"
@@ -23121,7 +26533,7 @@ msgid ""
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:12912
+#: doc/guix.texi:14734
 #, no-wrap
 msgid ""
 "(operating-system\n"
@@ -23131,323 +26543,297 @@ msgid ""
 "                (supplementary-groups\n"
 "                 '(\"adbusers\"   ;for adb\n"
 "                   \"wheel\" \"netdev\" \"audio\" \"video\")))))\n"
-"\n"
-msgstr ""
-
-#. type: lisp
-#: doc/guix.texi:12915
-#, no-wrap
-msgid ""
-"  (groups (cons (user-group (system? #t) (name \"adbusers\"))\n"
-"                %base-groups))\n"
-"\n"
-msgstr ""
-
-#. type: lisp
-#: doc/guix.texi:12917
-#, no-wrap
-msgid ""
 "  ;; @dots{}\n"
-"\n"
-msgstr ""
-
-#. type: lisp
-#: doc/guix.texi:12925
-#, no-wrap
-msgid ""
 "  (services\n"
-"   (modify-services %desktop-services\n"
-"     (udev-service-type\n"
-"      config =>\n"
-"      (udev-configuration (inherit config)\n"
-"                          (rules (cons android-udev-rules\n"
-"                                       (udev-configuration-rules config))))))))\n"
+"    (cons (udev-rules-service 'android android-udev-rules\n"
+"                              #:groups '(\"adbusers\"))\n"
+"          %desktop-services)))\n"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:12927
+#: doc/guix.texi:14736
 #, no-wrap
 msgid "{Scheme Variable} urandom-seed-service-type"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:12932
-msgid "Save some entropy in @var{%random-seed-file} to seed @file{/dev/urandom} when rebooting.  It also tries to seed @file{/dev/urandom} from @file{/dev/hwrng} while booting, if @file{/dev/hwrng} exists and is readable."
+#: doc/guix.texi:14741
+msgid "Save some entropy in @code{%random-seed-file} to seed @file{/dev/urandom} when rebooting.  It also tries to seed @file{/dev/urandom} from @file{/dev/hwrng} while booting, if @file{/dev/hwrng} exists and is readable."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:12934
+#: doc/guix.texi:14743
 #, no-wrap
 msgid "{Scheme Variable} %random-seed-file"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:12938
+#: doc/guix.texi:14747
 msgid "This is the name of the file where some random bytes are saved by @var{urandom-seed-service} to seed @file{/dev/urandom} when rebooting.  It defaults to @file{/var/lib/random-seed}."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:12940
+#: doc/guix.texi:14749
 #, no-wrap
 msgid "mouse"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:12941
+#: doc/guix.texi:14750
 #, no-wrap
 msgid "gpm"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:12942
+#: doc/guix.texi:14751
 #, no-wrap
 msgid "{Scheme Variable} gpm-service-type"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:12947
+#: doc/guix.texi:14756
 msgid "This is the type of the service that runs GPM, the @dfn{general-purpose mouse daemon}, which provides mouse support to the Linux console.  GPM allows users to use the mouse in the console, notably to select, copy, and paste text."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:12950
+#: doc/guix.texi:14759
 msgid "The value for services of this type must be a @code{gpm-configuration} (see below).  This service is not part of @code{%base-services}."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:12952
+#: doc/guix.texi:14761
 #, no-wrap
 msgid "{Data Type} gpm-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:12954
+#: doc/guix.texi:14763
 msgid "Data type representing the configuration of GPM."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12956
+#: doc/guix.texi:14765
 #, no-wrap
 msgid "@code{options} (default: @code{%default-gpm-options})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12961
+#: doc/guix.texi:14770
 msgid "Command-line options passed to @command{gpm}.  The default set of options instruct @command{gpm} to listen to mouse events on @file{/dev/input/mice}.  @xref{Command Line,,, gpm, gpm manual}, for more information."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12962
+#: doc/guix.texi:14771
 #, no-wrap
 msgid "@code{gpm} (default: @code{gpm})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12964
+#: doc/guix.texi:14773
 msgid "The GPM package to use."
 msgstr ""
 
 #. type: anchor{#1}
-#: doc/guix.texi:12969
+#: doc/guix.texi:14778
 msgid "guix-publish-service-type"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:12969
+#: doc/guix.texi:14778
 #, no-wrap
 msgid "{Scheme Variable} guix-publish-service-type"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:12973
+#: doc/guix.texi:14782
 msgid "This is the service type for @command{guix publish} (@pxref{Invoking guix publish}).  Its value must be a @code{guix-publish-configuration} object, as described below."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:12977
+#: doc/guix.texi:14786
 msgid "This assumes that @file{/etc/guix} already contains a signing key pair as created by @command{guix archive --generate-key} (@pxref{Invoking guix archive}).  If that is not the case, the service will fail to start."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:12979
+#: doc/guix.texi:14788
 #, no-wrap
 msgid "{Data Type} guix-publish-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:12982
+#: doc/guix.texi:14791
 msgid "Data type representing the configuration of the @code{guix publish} service."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12984
+#: doc/guix.texi:14793
 #, no-wrap
 msgid "@code{guix} (default: @code{guix})"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12987
+#: doc/guix.texi:14796 doc/guix.texi:27133
 #, no-wrap
 msgid "@code{port} (default: @code{80})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12989
+#: doc/guix.texi:14798
 msgid "The TCP port to listen for connections."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12990 doc/guix.texi:22556
+#: doc/guix.texi:14799 doc/guix.texi:24912
 #, no-wrap
 msgid "@code{host} (default: @code{\"localhost\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12993
+#: doc/guix.texi:14802
 msgid "The host (and thus, network interface) to listen to.  Use @code{\"0.0.0.0\"} to listen on all the network interfaces."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12994
+#: doc/guix.texi:14803
 #, fuzzy, no-wrap
 #| msgid "@code{compression-level} (default: @code{3})"
 msgid "@code{compression} (default: @code{'((\"gzip\" 3))})"
 msgstr "@code{compression-level} (default: @code{3})"
 
 #. type: table
-#: doc/guix.texi:12998
+#: doc/guix.texi:14807
 msgid "This is a list of compression method/level tuple used when compressing substitutes.  For example, to compress all substitutes with @emph{both} lzip at level 7 and gzip at level 9, write:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:13001
+#: doc/guix.texi:14810
 #, no-wrap
 msgid "'((\"lzip\" 7) (\"gzip\" 9))\n"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:13005
+#: doc/guix.texi:14814
 msgid "Level 9 achieves the best compression ratio at the expense of increased CPU usage, whereas level 1 achieves fast compression."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:13007
+#: doc/guix.texi:14816
 msgid "An empty list disables compression altogether."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13008
+#: doc/guix.texi:14817
 #, no-wrap
 msgid "@code{nar-path} (default: @code{\"nar\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:13011
-msgid "The URL path at which ``nars'' can be fetched.  @xref{Invoking guix publish, @code{--nar-path}}, for details."
+#: doc/guix.texi:14820
+msgid "The URL path at which ``nars'' can be fetched.  @xref{Invoking guix publish, @option{--nar-path}}, for details."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13012
+#: doc/guix.texi:14821
 #, no-wrap
 msgid "@code{cache} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:13018
+#: doc/guix.texi:14827
 msgid "When it is @code{#f}, disable caching and instead generate archives on demand.  Otherwise, this should be the name of a directory---e.g., @code{\"/var/cache/guix/publish\"}---where @command{guix publish} caches archives and meta-data ready to be sent.  @xref{Invoking guix publish, @option{--cache}}, for more information on the tradeoffs involved."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13019
+#: doc/guix.texi:14828
 #, no-wrap
 msgid "@code{workers} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:13023
+#: doc/guix.texi:14832
 msgid "When it is an integer, this is the number of worker threads used for caching; when @code{#f}, the number of processors is used.  @xref{Invoking guix publish, @option{--workers}}, for more information."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13024
+#: doc/guix.texi:14833
 #, no-wrap
 msgid "@code{ttl} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:13028
+#: doc/guix.texi:14837
 msgid "When it is an integer, this denotes the @dfn{time-to-live} in seconds of the published archives.  @xref{Invoking guix publish, @option{--ttl}}, for more information."
 msgstr ""
 
 #. type: anchor{#1}
-#: doc/guix.texi:13032
+#: doc/guix.texi:14841
 msgid "rngd-service"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:13032
+#: doc/guix.texi:14841
 #, no-wrap
 msgid "{Scheme Procedure} rngd-service [#:rng-tools @var{rng-tools}] @"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:13037
+#: doc/guix.texi:14846
 msgid "[#:device \"/dev/hwrng\"] Return a service that runs the @command{rngd} program from @var{rng-tools} to add @var{device} to the kernel's entropy pool.  The service will fail if @var{device} does not exist."
 msgstr ""
 
 #. type: anchor{#1}
-#: doc/guix.texi:13040
+#: doc/guix.texi:14849
 msgid "pam-limits-service"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:13040
+#: doc/guix.texi:14849
 #, no-wrap
 msgid "session limits"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:13041
+#: doc/guix.texi:14850
 #, no-wrap
 msgid "ulimit"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:13042
+#: doc/guix.texi:14851
 #, no-wrap
 msgid "priority"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:13043
+#: doc/guix.texi:14852
 #, no-wrap
 msgid "realtime"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:13044
+#: doc/guix.texi:14853
 #, no-wrap
 msgid "jackd"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:13045
+#: doc/guix.texi:14854
 #, no-wrap
 msgid "{Scheme Procedure} pam-limits-service [#:limits @code{'()}]"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:13052
+#: doc/guix.texi:14861
 msgid "Return a service that installs a configuration file for the @uref{http://linux-pam.org/Linux-PAM-html/sag-pam_limits.html, @code{pam_limits} module}.  The procedure optionally takes a list of @code{pam-limits-entry} values, which can be used to specify @code{ulimit} limits and nice priority limits to user sessions."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:13055
+#: doc/guix.texi:14864
 msgid "The following limits definition sets two hard and soft limits for all login sessions of users in the @code{realtime} group:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:13061
+#: doc/guix.texi:14870
 #, no-wrap
 msgid ""
 "(pam-limits-service\n"
@@ -23457,40 +26843,40 @@ msgid ""
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:13067
+#: doc/guix.texi:14876
 msgid "The first entry increases the maximum realtime priority for non-privileged processes; the second entry lifts any restriction of the maximum address space that can be locked in memory.  These settings are commonly used for real-time audio systems."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:13072
+#: doc/guix.texi:14881
 #, no-wrap
 msgid "cron"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:13073
+#: doc/guix.texi:14882
 #, no-wrap
 msgid "mcron"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:13074
+#: doc/guix.texi:14883
 #, no-wrap
 msgid "scheduling jobs"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:13081
+#: doc/guix.texi:14890
 msgid "The @code{(gnu services mcron)} module provides an interface to GNU@tie{}mcron, a daemon to run jobs at scheduled times (@pxref{Top,,, mcron, GNU@tie{}mcron}).  GNU@tie{}mcron is similar to the traditional Unix @command{cron} daemon; the main difference is that it is implemented in Guile Scheme, which provides a lot of flexibility when specifying the scheduling of jobs and their actions."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:13089
+#: doc/guix.texi:14898
 msgid "The example below defines an operating system that runs the @command{updatedb} (@pxref{Invoking updatedb,,, find, Finding Files})  and the @command{guix gc} commands (@pxref{Invoking guix gc}) daily, as well as the @command{mkid} command on behalf of an unprivileged user (@pxref{mkid invocation,,, idutils, ID Database Utilities}).  It uses gexps to introduce job definitions that are passed to mcron (@pxref{G-Expressions})."
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:13093
+#: doc/guix.texi:14902
 #, no-wrap
 msgid ""
 "(use-modules (guix) (gnu) (gnu services mcron))\n"
@@ -23499,7 +26885,7 @@ msgid ""
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:13102
+#: doc/guix.texi:14911
 #, no-wrap
 msgid ""
 "(define updatedb-job\n"
@@ -23514,7 +26900,7 @@ msgid ""
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:13108
+#: doc/guix.texi:14917
 #, no-wrap
 msgid ""
 "(define garbage-collector-job\n"
@@ -23526,7 +26912,7 @@ msgid ""
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:13115
+#: doc/guix.texi:14924
 #, no-wrap
 msgid ""
 "(define idutils-job\n"
@@ -23539,7 +26925,7 @@ msgid ""
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:13124
+#: doc/guix.texi:14933
 #, no-wrap
 msgid ""
 "(operating-system\n"
@@ -23553,12 +26939,12 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:13131
+#: doc/guix.texi:14940
 msgid "For more complex jobs defined in Scheme where you need control over the top level, for instance to introduce a @code{use-modules} form, you can move your code to a separate program using the @code{program-file} procedure of the @code{(guix gexp)} module (@pxref{G-Expressions}).  The example below illustrates that."
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:13158
+#: doc/guix.texi:14956
 #, no-wrap
 msgid ""
 "(define %battery-alert-job\n"
@@ -23570,12 +26956,26 @@ msgid ""
 "        (with-imported-modules (source-module-closure\n"
 "                                '((guix build utils)))\n"
 "          #~(begin\n"
-"              (define %min-level 20)\n"
 "              (use-modules (guix build utils)\n"
 "                           (ice-9 popen)\n"
 "                           (ice-9 regex)\n"
 "                           (ice-9 textual-ports)\n"
 "                           (srfi srfi-2))\n"
+"\n"
+msgstr ""
+
+#. type: lisp
+#: doc/guix.texi:14958
+#, no-wrap
+msgid ""
+"              (define %min-level 20)\n"
+"\n"
+msgstr ""
+
+#. type: lisp
+#: doc/guix.texi:14969
+#, no-wrap
+msgid ""
 "              (setenv \"LC_ALL\" \"C\")     ;ensure English output\n"
 "              (and-let* ((input-pipe (open-pipe*\n"
 "                                      OPEN_READ\n"
@@ -23589,105 +26989,105 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:13163
+#: doc/guix.texi:14974
 msgid "@xref{Guile Syntax, mcron job specifications,, mcron, GNU@tie{}mcron}, for more information on mcron job specifications.  Below is the reference of the mcron service."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:13166
+#: doc/guix.texi:14977
 msgid "On a running system, you can use the @code{schedule} action of the service to visualize the mcron jobs that will be executed next:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:13169
+#: doc/guix.texi:14980
 #, no-wrap
 msgid "# herd schedule mcron\n"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:13174
+#: doc/guix.texi:14985
 msgid "The example above lists the next five tasks that will be executed, but you can also specify the number of tasks to display:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:13177
+#: doc/guix.texi:14988
 #, no-wrap
 msgid "# herd schedule mcron 10\n"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:13179
+#: doc/guix.texi:14990
 #, no-wrap
 msgid "{Scheme Variable} mcron-service-type"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:13182
+#: doc/guix.texi:14993
 msgid "This is the type of the @code{mcron} service, whose value is an @code{mcron-configuration} object."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:13187
+#: doc/guix.texi:14998
 msgid "This service type can be the target of a service extension that provides it additional job specifications (@pxref{Service Composition}).  In other words, it is possible to define services that provide additional mcron jobs to run."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:13189
+#: doc/guix.texi:15000
 #, no-wrap
 msgid "{Data Type} mcron-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:13191
+#: doc/guix.texi:15002
 msgid "Data type representing the configuration of mcron."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13193
+#: doc/guix.texi:15004
 #, no-wrap
 msgid "@code{mcron} (default: @var{mcron})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:13195
+#: doc/guix.texi:15006
 msgid "The mcron package to use."
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:13196 doc/guix.texi:13265
+#: doc/guix.texi:15007 doc/guix.texi:15076
 #, no-wrap
 msgid "jobs"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:13200
+#: doc/guix.texi:15011
 msgid "This is a list of gexps (@pxref{G-Expressions}), where each gexp corresponds to an mcron job specification (@pxref{Syntax, mcron job specifications,, mcron, GNU@tie{}mcron})."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:13207
+#: doc/guix.texi:15018
 #, no-wrap
 msgid "rottlog"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:13208
+#: doc/guix.texi:15019
 #, no-wrap
 msgid "log rotation"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:13215
+#: doc/guix.texi:15026
 msgid "Log files such as those found in @file{/var/log} tend to grow endlessly, so it's a good idea to @dfn{rotate} them once in a while---i.e., archive their contents in separate files, possibly compressed.  The @code{(gnu services admin)} module provides an interface to GNU@tie{}Rot[t]log, a log rotation tool (@pxref{Top,,, rottlog, GNU Rot[t]log Manual})."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:13221
+#: doc/guix.texi:15032
 msgid "This service is part of @code{%base-services}, and thus enabled by default, with the default settings, for commonly encountered log files.  The example below shows how to extend it with an additional @dfn{rotation}, should you need to do that (usually, services that produce log files already take care of that):"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:13225
+#: doc/guix.texi:15036
 #, no-wrap
 msgid ""
 "(use-modules (guix) (gnu))\n"
@@ -23696,7 +27096,7 @@ msgid ""
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:13229
+#: doc/guix.texi:15040
 #, no-wrap
 msgid ""
 "(define my-log-files\n"
@@ -23706,7 +27106,7 @@ msgid ""
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:13238
+#: doc/guix.texi:15049
 #, no-wrap
 msgid ""
 "(operating-system\n"
@@ -23720,93 +27120,93 @@ msgid ""
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:13240
+#: doc/guix.texi:15051
 #, no-wrap
 msgid "{Scheme Variable} rottlog-service-type"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:13243
+#: doc/guix.texi:15054
 msgid "This is the type of the Rottlog service, whose value is a @code{rottlog-configuration} object."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:13246
+#: doc/guix.texi:15057
 msgid "Other services can extend this one with new @code{log-rotation} objects (see below), thereby augmenting the set of files to be rotated."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:13249
+#: doc/guix.texi:15060
 msgid "This service type can define mcron jobs (@pxref{Scheduled Job Execution}) to run the rottlog service."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:13251
+#: doc/guix.texi:15062
 #, no-wrap
 msgid "{Data Type} rottlog-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:13253
+#: doc/guix.texi:15064
 msgid "Data type representing the configuration of rottlog."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13255
+#: doc/guix.texi:15066
 #, no-wrap
 msgid "@code{rottlog} (default: @code{rottlog})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:13257
+#: doc/guix.texi:15068
 msgid "The Rottlog package to use."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13258
+#: doc/guix.texi:15069
 #, no-wrap
 msgid "@code{rc-file} (default: @code{(file-append rottlog \"/etc/rc\")})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:13261
+#: doc/guix.texi:15072
 msgid "The Rottlog configuration file to use (@pxref{Mandatory RC Variables,,, rottlog, GNU Rot[t]log Manual})."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13262
+#: doc/guix.texi:15073
 #, no-wrap
 msgid "@code{rotations} (default: @code{%default-rotations})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:13264
+#: doc/guix.texi:15075
 msgid "A list of @code{log-rotation} objects as defined below."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:13268
+#: doc/guix.texi:15079
 msgid "This is a list of gexps where each gexp corresponds to an mcron job specification (@pxref{Scheduled Job Execution})."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:13271
+#: doc/guix.texi:15082
 #, no-wrap
 msgid "{Data Type} log-rotation"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:13273
+#: doc/guix.texi:15084
 msgid "Data type representing the rotation of a group of log files."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:13277
+#: doc/guix.texi:15088
 msgid "Taking an example from the Rottlog manual (@pxref{Period Related File Examples,,, rottlog, GNU Rot[t]log Manual}), a log rotation might be defined like this:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:13286
+#: doc/guix.texi:15097
 #, no-wrap
 msgid ""
 "(log-rotation\n"
@@ -23819,111 +27219,111 @@ msgid ""
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:13289
+#: doc/guix.texi:15100
 msgid "The list of fields is as follows:"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13291
+#: doc/guix.texi:15102
 #, no-wrap
 msgid "@code{frequency} (default: @code{'weekly})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:13293
+#: doc/guix.texi:15104
 msgid "The log rotation frequency, a symbol."
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:13294
+#: doc/guix.texi:15105
 #, no-wrap
 msgid "files"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:13296
+#: doc/guix.texi:15107
 msgid "The list of files or file glob patterns to rotate."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13297
+#: doc/guix.texi:15108
 #, no-wrap
 msgid "@code{options} (default: @code{'()})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:13300
+#: doc/guix.texi:15111
 msgid "The list of rottlog options for this rotation (@pxref{Configuration parameters,,, rottlog, GNU Rot[t]lg Manual})."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13301
+#: doc/guix.texi:15112
 #, no-wrap
 msgid "@code{post-rotate} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:13303
+#: doc/guix.texi:15114
 msgid "Either @code{#f} or a gexp to execute once the rotation has completed."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:13306
+#: doc/guix.texi:15117
 #, no-wrap
 msgid "{Scheme Variable} %default-rotations"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:13309
-msgid "Specifies weekly rotation of @var{%rotated-files} and of @file{/var/log/guix-daemon.log}."
+#: doc/guix.texi:15120
+msgid "Specifies weekly rotation of @code{%rotated-files} and of @file{/var/log/guix-daemon.log}."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:13311
+#: doc/guix.texi:15122
 #, no-wrap
 msgid "{Scheme Variable} %rotated-files"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:13315
+#: doc/guix.texi:15126
 msgid "The list of syslog-controlled files to be rotated.  By default it is: @code{'(\"/var/log/messages\" \"/var/log/secure\" \"/var/log/debug\" \\ \"/var/log/maillog\")}."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:13322
+#: doc/guix.texi:15133
 msgid "The @code{(gnu services networking)} module provides services to configure the network interface."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:13323
+#: doc/guix.texi:15134
 #, no-wrap
 msgid "DHCP, networking service"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:13324
+#: doc/guix.texi:15135
 #, no-wrap
 msgid "{Scheme Variable} dhcp-client-service-type"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:13328
+#: doc/guix.texi:15139
 msgid "This is the type of services that run @var{dhcp}, a Dynamic Host Configuration Protocol (DHCP) client, on all the non-loopback network interfaces.  Its value is the DHCP client package to use, @code{isc-dhcp} by default."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:13330
+#: doc/guix.texi:15141
 #, no-wrap
 msgid "{Scheme Procedure} dhcpd-service-type"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:13334
+#: doc/guix.texi:15145
 msgid "This type defines a service that runs a DHCP daemon.  To create a service of this type, you must supply a @code{<dhcpd-configuration>}.  For example:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:13340
+#: doc/guix.texi:15151
 #, no-wrap
 msgid ""
 "(service dhcpd-service-type\n"
@@ -23933,111 +27333,111 @@ msgid ""
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:13343
+#: doc/guix.texi:15154
 #, no-wrap
 msgid "{Data Type} dhcpd-configuration"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13345
+#: doc/guix.texi:15156
 #, no-wrap
 msgid "@code{package} (default: @code{isc-dhcp})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:13350
+#: doc/guix.texi:15161
 msgid "The package that provides the DHCP daemon.  This package is expected to provide the daemon at @file{sbin/dhcpd} relative to its output directory.  The default package is the @uref{https://www.isc.org/products/DHCP, ISC's DHCP server}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13350 doc/guix.texi:13602 doc/guix.texi:17839
+#: doc/guix.texi:15161 doc/guix.texi:15416 doc/guix.texi:20058
 #, no-wrap
 msgid "@code{config-file} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:13355
+#: doc/guix.texi:15166
 msgid "The configuration file to use.  This is required.  It will be passed to @code{dhcpd} via its @code{-cf} option.  This may be any ``file-like'' object (@pxref{G-Expressions, file-like objects}).  See @code{man dhcpd.conf} for details on the configuration file syntax."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13355
+#: doc/guix.texi:15166
 #, no-wrap
 msgid "@code{version} (default: @code{\"4\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:13360
+#: doc/guix.texi:15171
 msgid "The DHCP version to use.  The ISC DHCP server supports the values ``4'', ``6'', and ``4o6''.  These correspond to the @code{dhcpd} program options @code{-4}, @code{-6}, and @code{-4o6}.  See @code{man dhcpd} for details."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13360
+#: doc/guix.texi:15171
 #, no-wrap
 msgid "@code{run-directory} (default: @code{\"/run/dhcpd\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:13363
+#: doc/guix.texi:15174
 msgid "The run directory to use.  At service activation time, this directory will be created if it does not exist."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13363
+#: doc/guix.texi:15174
 #, no-wrap
 msgid "@code{pid-file} (default: @code{\"/run/dhcpd/dhcpd.pid\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:13366
+#: doc/guix.texi:15177
 msgid "The PID file to use.  This corresponds to the @code{-pf} option of @code{dhcpd}.  See @code{man dhcpd} for details."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13366
+#: doc/guix.texi:15177
 #, no-wrap
 msgid "@code{interfaces} (default: @code{'()})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:13372
+#: doc/guix.texi:15183
 msgid "The names of the network interfaces on which dhcpd should listen for broadcasts.  If this list is not empty, then its elements (which must be strings) will be appended to the @code{dhcpd} invocation when starting the daemon.  It may not be necessary to explicitly specify any interfaces here; see @code{man dhcpd} for details."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:13375
+#: doc/guix.texi:15186
 #, no-wrap
 msgid "{Scheme Variable} static-networking-service-type"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:13378
+#: doc/guix.texi:15189
 msgid "This is the type for statically-configured network interfaces."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:13380
+#: doc/guix.texi:15191
 #, no-wrap
 msgid "{Scheme Procedure} static-networking-service @var{interface} @var{ip} @"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:13388
+#: doc/guix.texi:15199
 msgid "[#:netmask #f] [#:gateway #f] [#:name-servers @code{'()}] @ [#:requirement @code{'(udev)}] 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.  @var{requirement} can be used to declare a dependency on another service before configuring the interface."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:13393
+#: doc/guix.texi:15204
 msgid "This procedure can be called several times, one for each network interface of interest.  Behind the scenes what it does is extend @code{static-networking-service-type} with additional network interfaces to handle."
 msgstr ""
 
-#. type: deffn
-#: doc/guix.texi:13395
+#. type: defvr
+#: doc/guix.texi:15206 doc/guix.texi:26445
 msgid "For example:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:13400
+#: doc/guix.texi:15211
 #, no-wrap
 msgid ""
 "(static-networking-service \"eno1\" \"192.168.1.82\"\n"
@@ -24046,235 +27446,229 @@ msgid ""
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:13403
+#: doc/guix.texi:15214
 #, no-wrap
 msgid "wicd"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:13406
+#: doc/guix.texi:15217
 #, no-wrap
 msgid "network management"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:13407
+#: doc/guix.texi:15218
 #, no-wrap
 msgid "{Scheme Procedure} wicd-service [#:wicd @var{wicd}]"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:13410
+#: doc/guix.texi:15221
 msgid "Return a service that runs @url{https://launchpad.net/wicd,Wicd}, a network management daemon that aims to simplify wired and wireless networking."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:13415
+#: doc/guix.texi:15226
 msgid "This service adds the @var{wicd} package to the global profile, providing several commands to interact with the daemon and configure networking: @command{wicd-client}, a graphical user interface, and the @command{wicd-cli} and @command{wicd-curses} user interfaces."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:13417
+#: doc/guix.texi:15228
 #, no-wrap
 msgid "ModemManager"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:13419
+#: doc/guix.texi:15230
 #, no-wrap
 msgid "{Scheme Variable} modem-manager-service-type"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:13424
+#: doc/guix.texi:15235
 msgid "This is the service type for the @uref{https://wiki.gnome.org/Projects/ModemManager, ModemManager} service. The value for this service type is a @code{modem-manager-configuration} record."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:13427 doc/guix.texi:13455 doc/guix.texi:13487
+#: doc/guix.texi:15238 doc/guix.texi:15266 doc/guix.texi:15298
 msgid "This service is part of @code{%desktop-services} (@pxref{Desktop Services})."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:13429
+#: doc/guix.texi:15240
 #, no-wrap
 msgid "{Data Type} modem-manager-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:13431
+#: doc/guix.texi:15242
 msgid "Data type representing the configuration of ModemManager."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13433
+#: doc/guix.texi:15244
 #, no-wrap
 msgid "@code{modem-manager} (default: @code{modem-manager})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:13435
+#: doc/guix.texi:15246
 msgid "The ModemManager package to use."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:13439
+#: doc/guix.texi:15250
 #, no-wrap
 msgid "USB_ModeSwitch"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:13440
+#: doc/guix.texi:15251
 #, no-wrap
 msgid "Modeswitching"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:13442
+#: doc/guix.texi:15253
 #, no-wrap
 msgid "{Scheme Variable} usb-modeswitch-service-type"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:13446
+#: doc/guix.texi:15257
 msgid "This is the service type for the @uref{https://www.draisberghof.de/usb_modeswitch/, USB_ModeSwitch} service. The value for this service type is a @code{usb-modeswitch-configuration} record."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:13452
+#: doc/guix.texi:15263
 msgid "When plugged in, some USB modems (and other USB devices) initially present themselves as a read-only storage medium and not as a modem.  They need to be @dfn{modeswitched} before they are usable.  The USB_ModeSwitch service type installs udev rules to automatically modeswitch these devices when they are plugged in."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:13457
+#: doc/guix.texi:15268
 #, no-wrap
 msgid "{Data Type} usb-modeswitch-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:13459
+#: doc/guix.texi:15270
 msgid "Data type representing the configuration of USB_ModeSwitch."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13461
+#: doc/guix.texi:15272
 #, fuzzy, no-wrap
 #| msgid "@code{port} (default: @code{22})"
 msgid "@code{usb-modeswitch} (default: @code{usb-modeswitch})"
 msgstr "@code{port} (default: @code{22})"
 
 #. type: table
-#: doc/guix.texi:13463
+#: doc/guix.texi:15274
 msgid "The USB_ModeSwitch package providing the binaries for modeswitching."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13464
+#: doc/guix.texi:15275
 #, fuzzy, no-wrap
 #| msgid "@code{port} (default: @code{22})"
 msgid "@code{usb-modeswitch-data} (default: @code{usb-modeswitch-data})"
 msgstr "@code{port} (default: @code{22})"
 
 #. type: table
-#: doc/guix.texi:13467
+#: doc/guix.texi:15278
 msgid "The package providing the device data and udev rules file used by USB_ModeSwitch."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13468
+#: doc/guix.texi:15279
 #, no-wrap
 msgid "@code{config-file} (default: @code{#~(string-append #$usb-modeswitch:dispatcher \"/etc/usb_modeswitch.conf\")})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:13473
+#: doc/guix.texi:15284
 msgid "Which config file to use for the USB_ModeSwitch dispatcher.  By default the config file shipped with USB_ModeSwitch is used which disables logging to @file{/var/log} among other default settings.  If set to @code{#f}, no config file is used."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:13477
+#: doc/guix.texi:15288
 #, no-wrap
 msgid "NetworkManager"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:13479
+#: doc/guix.texi:15290
 #, no-wrap
 msgid "{Scheme Variable} network-manager-service-type"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:13484
+#: doc/guix.texi:15295
 msgid "This is the service type for the @uref{https://wiki.gnome.org/Projects/NetworkManager, NetworkManager} service. The value for this service type is a @code{network-manager-configuration} record."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:13489
+#: doc/guix.texi:15300
 #, no-wrap
 msgid "{Data Type} network-manager-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:13491
+#: doc/guix.texi:15302
 msgid "Data type representing the configuration of NetworkManager."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13493
+#: doc/guix.texi:15304
 #, no-wrap
 msgid "@code{network-manager} (default: @code{network-manager})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:13495
+#: doc/guix.texi:15306
 msgid "The NetworkManager package to use."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13496
+#: doc/guix.texi:15307
 #, no-wrap
 msgid "@code{dns} (default: @code{\"default\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:13499
+#: doc/guix.texi:15310
 msgid "Processing mode for DNS, which affects how NetworkManager uses the @code{resolv.conf} configuration file."
 msgstr ""
 
-#. type: item
-#: doc/guix.texi:13501
-#, no-wrap
-msgid "default"
-msgstr ""
-
 #. type: table
-#: doc/guix.texi:13504
+#: doc/guix.texi:15315
 msgid "NetworkManager will update @code{resolv.conf} to reflect the nameservers provided by currently active connections."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13505
+#: doc/guix.texi:15316
 #, no-wrap
 msgid "dnsmasq"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:13509
+#: doc/guix.texi:15320
 msgid "NetworkManager will run @code{dnsmasq} as a local caching nameserver, using a @dfn{conditional forwarding} configuration if you are connected to a VPN, and then update @code{resolv.conf} to point to the local nameserver."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:13515
+#: doc/guix.texi:15326
 msgid "With this setting, you can share your network connection.  For example when you want to share your network connection to another laptop @i{via} an Ethernet cable, you can open @command{nm-connection-editor} and configure the Wired connection's method for IPv4 and IPv6 to be ``Shared to other computers'' and reestablish the connection (or reboot)."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:13522
+#: doc/guix.texi:15333
 msgid "You can also set up a @dfn{host-to-guest connection} to QEMU VMs (@pxref{Installing Guix in a VM}).  With a host-to-guest connection, you can e.g.@: access a Web server running on the VM (@pxref{Web Services}) from a Web browser on your host system, or connect to the VM @i{via} SSH (@pxref{Networking Services, @code{openssh-service-type}}).  To set up a host-to-guest connection, run this command once:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:13529
+#: doc/guix.texi:15340
 #, no-wrap
 msgid ""
 "nmcli connection add type tun \\\n"
@@ -24285,50 +27679,50 @@ msgid ""
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:13534
+#: doc/guix.texi:15345
 msgid "Then each time you launch your QEMU VM (@pxref{Running Guix in a VM}), pass @option{-nic tap,ifname=tap0,script=no,downscript=no} to @command{qemu-system-...}."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:13537
+#: doc/guix.texi:15348
 msgid "NetworkManager will not modify @code{resolv.conf}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13539
+#: doc/guix.texi:15350
 #, no-wrap
 msgid "@code{vpn-plugins} (default: @code{'()})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:13543
+#: doc/guix.texi:15354
 msgid "This is the list of available plugins for virtual private networks (VPNs).  An example of this is the @code{network-manager-openvpn} package, which allows NetworkManager to manage VPNs @i{via} OpenVPN."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:13547
+#: doc/guix.texi:15358
 #, no-wrap
 msgid "Connman"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:13548
+#: doc/guix.texi:15359
 #, no-wrap
 msgid "{Scheme Variable} connman-service-type"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:13551
+#: doc/guix.texi:15362
 msgid "This is the service type to run @url{https://01.org/connman,Connman}, a network connection manager."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:13554
+#: doc/guix.texi:15365
 msgid "Its value must be an @code{connman-configuration} record as in this example:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:13559
+#: doc/guix.texi:15370
 #, no-wrap
 msgid ""
 "(service connman-service-type\n"
@@ -24337,149 +27731,314 @@ msgid ""
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:13562
+#: doc/guix.texi:15373
 msgid "See below for details about @code{connman-configuration}."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:13564
+#: doc/guix.texi:15375
 #, no-wrap
 msgid "{Data Type} connman-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:13566
+#: doc/guix.texi:15377
 msgid "Data Type representing the configuration of connman."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13568
+#: doc/guix.texi:15379
 #, no-wrap
 msgid "@code{connman} (default: @var{connman})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:13570
+#: doc/guix.texi:15381
 msgid "The connman package to use."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13571
+#: doc/guix.texi:15382
 #, no-wrap
 msgid "@code{disable-vpn?} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:13573
+#: doc/guix.texi:15384
 msgid "When true, disable connman's vpn plugin."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:13576
+#: doc/guix.texi:15387
 #, no-wrap
 msgid "WPA Supplicant"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:13577
+#: doc/guix.texi:15388
 #, no-wrap
 msgid "{Scheme Variable} wpa-supplicant-service-type"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:13581
+#: doc/guix.texi:15392
 msgid "This is the service type to run @url{https://w1.fi/wpa_supplicant/,WPA supplicant}, an authentication daemon required to authenticate against encrypted WiFi or ethernet networks."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:13583
+#: doc/guix.texi:15394
 #, no-wrap
 msgid "{Data Type} wpa-supplicant-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:13585
+#: doc/guix.texi:15396
 msgid "Data type representing the configuration of WPA Supplicant."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:13587 doc/guix.texi:25268
+#: doc/guix.texi:15398 doc/guix.texi:28457
 msgid "It takes the following parameters:"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13589
+#: doc/guix.texi:15400
 #, no-wrap
 msgid "@code{wpa-supplicant} (default: @code{wpa-supplicant})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:13591
+#: doc/guix.texi:15402
 msgid "The WPA Supplicant package to use."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13592
+#: doc/guix.texi:15403
+#, fuzzy, no-wrap
+#| msgid "@code{features} (default: @code{'()})"
+msgid "@code{requirement} (default: @code{'(user-processes loopback syslogd)}"
+msgstr "@code{features} (default: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:15405
+msgid "List of services that should be started before WPA Supplicant starts."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:15406
 #, no-wrap
 msgid "@code{dbus?} (default: @code{#t})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:13594
+#: doc/guix.texi:15408
 msgid "Whether to listen for requests on D-Bus."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13595
+#: doc/guix.texi:15409
 #, no-wrap
 msgid "@code{pid-file} (default: @code{\"/var/run/wpa_supplicant.pid\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:13597
+#: doc/guix.texi:15411
 msgid "Where to store the PID file."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13598
+#: doc/guix.texi:15412 doc/guix.texi:26902 doc/guix.texi:27044
 #, no-wrap
 msgid "@code{interface} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:13601
+#: doc/guix.texi:15415
 msgid "If this is set, it must specify the name of a network interface that WPA supplicant will control."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:13604
+#: doc/guix.texi:15418
 msgid "Optional configuration file to use."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:13607
+#: doc/guix.texi:15421
 msgid "List of additional command-line arguments to pass to the daemon."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:13610
+#: doc/guix.texi:15424
+#, no-wrap
+msgid "hostapd service, for Wi-Fi access points"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:15425
+#, no-wrap
+msgid "Wi-Fi access points, hostapd service"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:15426
+#, fuzzy, no-wrap
+#| msgid "{Scheme Procedure} sane-service-type"
+msgid "{Scheme Variable} hostapd-service-type"
+msgstr "{Процедура Scheme} sane-service-type"
+
+#. type: defvr
+#: doc/guix.texi:15431
+msgid "This is the service type to run the @uref{https://w1.fi/hostapd/, hostapd} daemon to set up WiFi (IEEE 802.11) access points and authentication servers.  Its associated value must be a @code{hostapd-configuration} as shown below:"
+msgstr ""
+
+#. type: lisp
+#: doc/guix.texi:15439
+#, no-wrap
+msgid ""
+";; Use wlan1 to run the access point for \"My Network\".\n"
+"(service hostapd-service-type\n"
+"         (hostapd-configuration\n"
+"          (interface \"wlan1\")\n"
+"          (ssid \"My Network\")\n"
+"          (channel 12)))\n"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:15442
+#, fuzzy, no-wrap
+#| msgid "System Configuration"
+msgid "{Data Type} hostapd-configuration"
+msgstr "Конфигурирование системы"
+
+#. type: deftp
+#: doc/guix.texi:15445
+#, fuzzy
+#| msgid "This data type represents build machines to which the daemon may offload builds.  The important fields are:"
+msgid "This data type represents the configuration of the hostapd service, with the following fields:"
+msgstr "Этот тип данных представляет машины для сборки, на которые демон может разгружать сборки. Важные поля:"
+
+#. type: item
+#: doc/guix.texi:15447
+#, fuzzy, no-wrap
+#| msgid "@code{speed} (default: @code{1.0})"
+msgid "@code{package} (default: @code{hostapd})"
+msgstr "@code{speed} (default: @code{1.0})"
+
+#. type: table
+#: doc/guix.texi:15449
+#, fuzzy
+#| msgid "The package data type."
+msgid "The hostapd package to use."
+msgstr "Тип данных пакет"
+
+#. type: item
+#: doc/guix.texi:15450
+#, fuzzy, no-wrap
+#| msgid "@code{port} (default: @code{22})"
+msgid "@code{interface} (default: @code{\"wlan0\"})"
+msgstr "@code{port} (default: @code{22})"
+
+#. type: table
+#: doc/guix.texi:15452
+msgid "The network interface to run the WiFi access point."
+msgstr ""
+
+#. type: code{#1}
+#: doc/guix.texi:15453
+#, no-wrap
+msgid "ssid"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:15456
+msgid "The SSID (@dfn{service set identifier}), a string that identifies this network."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:15457
+#, fuzzy, no-wrap
+#| msgid "@code{port} (default: @code{22})"
+msgid "@code{broadcast-ssid?} (default: @code{#t})"
+msgstr "@code{port} (default: @code{22})"
+
+#. type: table
+#: doc/guix.texi:15459
+msgid "Whether to broadcast this SSID."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:15460
+#, fuzzy, no-wrap
+#| msgid "@code{speed} (default: @code{1.0})"
+msgid "@code{channel} (default: @code{1})"
+msgstr "@code{speed} (default: @code{1.0})"
+
+#. type: table
+#: doc/guix.texi:15462
+#, fuzzy
+#| msgid "The package data type."
+msgid "The WiFi channel to use."
+msgstr "Тип данных пакет"
+
+#. type: item
+#: doc/guix.texi:15463
+#, fuzzy, no-wrap
+#| msgid "@code{speed} (default: @code{1.0})"
+msgid "@code{driver} (default: @code{\"nl80211\"})"
+msgstr "@code{speed} (default: @code{1.0})"
+
+#. type: table
+#: doc/guix.texi:15467
+msgid "The driver interface type.  @code{\"nl80211\"} is used with all Linux mac80211 drivers.  Use @code{\"none\"} if building hostapd as a standalone RADIUS server that does # not control any wireless/wired driver."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:15468 doc/guix.texi:20883 doc/guix.texi:22929
+#, no-wrap
+msgid "@code{extra-settings} (default: @code{\"\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:15472
+msgid "Extra settings to append as-is to the hostapd configuration file.  See @uref{https://w1.fi/cgit/hostap/plain/hostapd/hostapd.conf} for the configuration file reference."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:15475
+#, fuzzy, no-wrap
+#| msgid "{Scheme Procedure} sane-service-type"
+msgid "{Scheme Variable} simulated-wifi-service-type"
+msgstr "{Процедура Scheme} sane-service-type"
+
+#. type: defvr
+#: doc/guix.texi:15482
+msgid "This is the type of a service to simulate WiFi networking, which can be useful in virtual machines for testing purposes.  The service loads the Linux kernel @uref{https://www.kernel.org/doc/html/latest/networking/mac80211_hwsim/mac80211_hwsim.html, @code{mac80211_hwsim} module} and starts hostapd to create a pseudo WiFi network that can be seen on @code{wlan0}, by default."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:15484
+msgid "The service's value is a @code{hostapd-configuration} record."
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:15486
 #, no-wrap
 msgid "iptables"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:13611
+#: doc/guix.texi:15487
 #, no-wrap
 msgid "{Scheme Variable} iptables-service-type"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:13617
+#: doc/guix.texi:15493
 msgid "This is the service type to set up an iptables configuration.  iptables is a packet filtering framework supported by the Linux kernel.  This service supports configuring iptables for both IPv4 and IPv6.  A simple example configuration rejecting all incoming connections except those to the ssh port 22 is shown below."
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:13637
+#: doc/guix.texi:15513
 #, no-wrap
 msgid ""
 "(service iptables-service-type\n"
@@ -24503,249 +28062,249 @@ msgid ""
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:13640
+#: doc/guix.texi:15516
 #, no-wrap
 msgid "{Data Type} iptables-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:13642
+#: doc/guix.texi:15518
 msgid "The data type representing the configuration of iptables."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13644
+#: doc/guix.texi:15520
 #, no-wrap
 msgid "@code{iptables} (default: @code{iptables})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:13647
+#: doc/guix.texi:15523
 msgid "The iptables package that provides @code{iptables-restore} and @code{ip6tables-restore}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13647
+#: doc/guix.texi:15523
 #, no-wrap
 msgid "@code{ipv4-rules} (default: @code{%iptables-accept-all-rules})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:13651
+#: doc/guix.texi:15527
 msgid "The iptables rules to use.  It will be passed to @code{iptables-restore}.  This may be any ``file-like'' object (@pxref{G-Expressions, file-like objects})."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13651
+#: doc/guix.texi:15527
 #, no-wrap
 msgid "@code{ipv6-rules} (default: @code{%iptables-accept-all-rules})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:13655
+#: doc/guix.texi:15531
 msgid "The ip6tables rules to use.  It will be passed to @code{ip6tables-restore}.  This may be any ``file-like'' object (@pxref{G-Expressions, file-like objects})."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:13658
+#: doc/guix.texi:15534
 #, no-wrap
 msgid "nftables"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:13659
+#: doc/guix.texi:15535
 #, no-wrap
 msgid "{Scheme Variable} nftables-service-type"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:13667
+#: doc/guix.texi:15543
 msgid "This is the service type to set up a nftables configuration.  nftables is a netfilter project that aims to replace the existing iptables, ip6tables, arptables and ebtables framework.  It provides a new packet filtering framework, a new user-space utility @command{nft}, and a compatibility layer for iptables.  This service comes with a default ruleset @code{%default-nftables-ruleset} that rejecting all incomming connections except those to the ssh port 22.  To use it, simply write:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:13670
+#: doc/guix.texi:15546
 #, no-wrap
 msgid "(service nftables-service-type)\n"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:13673
+#: doc/guix.texi:15549
 #, fuzzy, no-wrap
 #| msgid "{Data Type} build-machine"
 msgid "{Data Type} nftables-configuration"
 msgstr "{Тип данных} build-machine"
 
 #. type: deftp
-#: doc/guix.texi:13675
+#: doc/guix.texi:15551
 #, fuzzy
 #| msgid "Manage the operating system configuration."
 msgid "The data type representing the configuration of nftables."
 msgstr "Управление конфигурацией операционной системы."
 
 #. type: item
-#: doc/guix.texi:13677
+#: doc/guix.texi:15553
 #, fuzzy, no-wrap
 #| msgid "@code{speed} (default: @code{1.0})"
 msgid "@code{package} (default: @code{nftables})"
 msgstr "@code{speed} (default: @code{1.0})"
 
 #. type: table
-#: doc/guix.texi:13679
+#: doc/guix.texi:15555
 msgid "The nftables package that provides @command{nft}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13679
+#: doc/guix.texi:15555
 #, fuzzy, no-wrap
 #| msgid "@code{features} (default: @code{'()})"
 msgid "@code{ruleset} (default: @code{%default-nftables-ruleset})"
 msgstr "@code{features} (default: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:13682
+#: doc/guix.texi:15558
 msgid "The nftables ruleset to use.  This may be any ``file-like'' object (@pxref{G-Expressions, file-like objects})."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:13685
+#: doc/guix.texi:15561
 #, no-wrap
 msgid "NTP (Network Time Protocol), service"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:13686
+#: doc/guix.texi:15562
 #, no-wrap
 msgid "ntpd, service for the Network Time Protocol daemon"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:13687
+#: doc/guix.texi:15563
 #, no-wrap
 msgid "real time clock"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:13688
+#: doc/guix.texi:15564
 #, no-wrap
 msgid "{Scheme Variable} ntp-service-type"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:13692
+#: doc/guix.texi:15568
 msgid "This is the type of the service running the @uref{https://www.ntp.org, Network Time Protocol (NTP)} daemon, @command{ntpd}.  The daemon will keep the system clock synchronized with that of the specified NTP servers."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:13695
+#: doc/guix.texi:15571
 msgid "The value of this service is an @code{ntpd-configuration} object, as described below."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:13697
+#: doc/guix.texi:15573
 #, no-wrap
 msgid "{Data Type} ntp-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:13699
+#: doc/guix.texi:15575
 msgid "This is the data type for the NTP service configuration."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13701
+#: doc/guix.texi:15577
 #, no-wrap
 msgid "@code{servers} (default: @code{%ntp-servers})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:13705
+#: doc/guix.texi:15581
 msgid "This is the list of servers (@code{<ntp-server>} records) with which @command{ntpd} will be synchronized.  See the @code{ntp-server} data type definition below."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13706
+#: doc/guix.texi:15582
 #, fuzzy, no-wrap
 #| msgid "@code{parallel-builds} (default: @code{1})"
 msgid "@code{allow-large-adjustment?} (default: @code{#t})"
 msgstr "@code{parallel-builds} (default: @code{1})"
 
 #. type: table
-#: doc/guix.texi:13709
+#: doc/guix.texi:15585
 msgid "This determines whether @command{ntpd} is allowed to make an initial adjustment of more than 1,000 seconds."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13710
+#: doc/guix.texi:15586
 #, no-wrap
 msgid "@code{ntp} (default: @code{ntp})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:13712
+#: doc/guix.texi:15588
 msgid "The NTP package to use."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:13715
+#: doc/guix.texi:15591
 #, no-wrap
 msgid "{Scheme Variable} %ntp-servers"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:13718
+#: doc/guix.texi:15594
 msgid "List of host names used as the default NTP servers.  These are servers of the @uref{https://www.ntppool.org/en/, NTP Pool Project}."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:13720
+#: doc/guix.texi:15596
 #, no-wrap
 msgid "{Data Type} ntp-server"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:13722
+#: doc/guix.texi:15598
 msgid "The data type representing the configuration of a NTP server."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13724
+#: doc/guix.texi:15600
 #, fuzzy, no-wrap
 #| msgid "@code{port} (default: @code{22})"
 msgid "@code{type} (default: @code{'server})"
 msgstr "@code{port} (default: @code{22})"
 
 #. type: table
-#: doc/guix.texi:13727
+#: doc/guix.texi:15603
 msgid "The type of the NTP server, given as a symbol. One of @code{'pool}, @code{'server}, @code{'peer}, @code{'broadcast} or @code{'manycastclient}."
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:13728
+#: doc/guix.texi:15604
 #, no-wrap
 msgid "address"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:13730
+#: doc/guix.texi:15606
 #, fuzzy
 #| msgid "The ordering of the drives matters."
 msgid "The address of the server, as a string."
 msgstr "Порядок следования устройств имеет значение."
 
 #. type: code{#1}
-#: doc/guix.texi:13731 doc/guix.texi:25682 doc/guix.texi:25702
+#: doc/guix.texi:15607 doc/guix.texi:29125 doc/guix.texi:29145
 #, no-wrap
 msgid "options"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:13736
+#: doc/guix.texi:15612
 msgid "NTPD options to use with that specific server, given as a list of option names and/or of option names and values tuples. The following example define a server to use with the options @option{iburst} and @option{prefer}, as well as @option{version} 3 and a @option{maxpoll} time of 16 seconds."
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:13742
+#: doc/guix.texi:15618
 #, no-wrap
 msgid ""
 "(ntp-server\n"
@@ -24755,24 +28314,24 @@ msgid ""
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:13746
+#: doc/guix.texi:15622
 #, no-wrap
 msgid "OpenNTPD"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:13747
+#: doc/guix.texi:15623
 #, no-wrap
 msgid "{Scheme Procedure} openntpd-service-type"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:13751
+#: doc/guix.texi:15627
 msgid "Run the @command{ntpd}, the Network Time Protocol (NTP) daemon, as implemented by @uref{http://www.openntpd.org, OpenNTPD}.  The daemon will keep the system clock synchronized with that of the given servers."
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:13761
+#: doc/guix.texi:15637
 #, no-wrap
 msgid ""
 "(service\n"
@@ -24787,147 +28346,147 @@ msgid ""
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:13765
+#: doc/guix.texi:15641
 #, no-wrap
 msgid "{Scheme Variable} %openntpd-servers"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:13768
-msgid "This variable is a list of the server addresses defined in @var{%ntp-servers}."
+#: doc/guix.texi:15644
+msgid "This variable is a list of the server addresses defined in @code{%ntp-servers}."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:13770
+#: doc/guix.texi:15646
 #, no-wrap
 msgid "{Data Type} openntpd-configuration"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13772
+#: doc/guix.texi:15648
 #, no-wrap
 msgid "@code{openntpd} (default: @code{(file-append openntpd \"/sbin/ntpd\")})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:13774
+#: doc/guix.texi:15650
 msgid "The openntpd executable to use."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13774
+#: doc/guix.texi:15650
 #, no-wrap
 msgid "@code{listen-on} (default: @code{'(\"127.0.0.1\" \"::1\")})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:13776
+#: doc/guix.texi:15652
 msgid "A list of local IP addresses or hostnames the ntpd daemon should listen on."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13776
+#: doc/guix.texi:15652
 #, no-wrap
 msgid "@code{query-from} (default: @code{'()})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:13778
+#: doc/guix.texi:15654
 msgid "A list of local IP address the ntpd daemon should use for outgoing queries."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13778
+#: doc/guix.texi:15654
 #, no-wrap
 msgid "@code{sensor} (default: @code{'()})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:13783
+#: doc/guix.texi:15659
 msgid "Specify a list of timedelta sensor devices ntpd should use.  @code{ntpd} will listen to each sensor that actually exists and ignore non-existent ones.  See @uref{https://man.openbsd.org/ntpd.conf, upstream documentation} for more information."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13783
+#: doc/guix.texi:15659
 #, fuzzy, no-wrap
 #| msgid "@code{features} (default: @code{'()})"
 msgid "@code{server} (default: @code{'()})"
 msgstr "@code{features} (default: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:13785
+#: doc/guix.texi:15661
 msgid "Specify a list of IP addresses or hostnames of NTP servers to synchronize to."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13785
+#: doc/guix.texi:15661
 #, fuzzy, no-wrap
 #| msgid "@code{features} (default: @code{'()})"
-msgid "@code{servers} (default: @var{%openntp-servers})"
+msgid "@code{servers} (default: @code{%openntp-servers})"
 msgstr "@code{features} (default: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:13787
+#: doc/guix.texi:15663
 msgid "Specify a list of IP addresses or hostnames of NTP pools to synchronize to."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13787
+#: doc/guix.texi:15663
 #, no-wrap
 msgid "@code{constraint-from} (default: @code{'()})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:13794
+#: doc/guix.texi:15670
 msgid "@code{ntpd} can be configured to query the ‘Date’ from trusted HTTPS servers via TLS.  This time information is not used for precision but acts as an authenticated constraint, thereby reducing the impact of unauthenticated NTP man-in-the-middle attacks.  Specify a list of URLs, IP addresses or hostnames of HTTPS servers to provide a constraint."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13794
+#: doc/guix.texi:15670
 #, no-wrap
 msgid "@code{constraints-from} (default: @code{'()})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:13798
+#: doc/guix.texi:15674
 msgid "As with constraint from, specify a list of URLs, IP addresses or hostnames of HTTPS servers to provide a constraint.  Should the hostname resolve to multiple IP addresses, @code{ntpd} will calculate a median constraint from all of them."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13798
+#: doc/guix.texi:15674
 #, no-wrap
 msgid "@code{allow-large-adjustment?} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:13801
+#: doc/guix.texi:15677
 msgid "Determines if @code{ntpd} is allowed to make an initial adjustment of more than 180 seconds."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:13804
+#: doc/guix.texi:15680
 #, no-wrap
 msgid "inetd"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:13805
+#: doc/guix.texi:15681
 #, no-wrap
 msgid "{Scheme variable} inetd-service-type"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:13810
+#: doc/guix.texi:15686
 msgid "This service runs the @command{inetd} (@pxref{inetd invocation,,, inetutils, GNU Inetutils}) daemon.  @command{inetd} listens for connections on internet sockets, and lazily starts the specified server program when a connection is made on one of these sockets."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:13816
+#: doc/guix.texi:15692
 msgid "The value of this service is an @code{inetd-configuration} object.  The following example configures the @command{inetd} daemon to provide the built-in @command{echo} service, as well as an smtp service which forwards smtp traffic over ssh to a server @code{smtp-server} behind a gateway @code{hostname}:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:13839
+#: doc/guix.texi:15715
 #, no-wrap
 msgid ""
 "(service\n"
@@ -24954,220 +28513,220 @@ msgid ""
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:13842
+#: doc/guix.texi:15718
 msgid "See below for more details about @code{inetd-configuration}."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:13844
+#: doc/guix.texi:15720
 #, no-wrap
 msgid "{Data Type} inetd-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:13846
+#: doc/guix.texi:15722
 msgid "Data type representing the configuration of @command{inetd}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13848
+#: doc/guix.texi:15724
 #, no-wrap
 msgid "@code{program} (default: @code{(file-append inetutils \"/libexec/inetd\")})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:13850
+#: doc/guix.texi:15726
 msgid "The @command{inetd} executable to use."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13851 doc/guix.texi:21373
+#: doc/guix.texi:15727 doc/guix.texi:23642
 #, no-wrap
 msgid "@code{entries} (default: @code{'()})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:13854
+#: doc/guix.texi:15730
 msgid "A list of @command{inetd} service entries.  Each entry should be created by the @code{inetd-entry} constructor."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:13857
+#: doc/guix.texi:15733
 #, no-wrap
 msgid "{Data Type} inetd-entry"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:13861
+#: doc/guix.texi:15737
 msgid "Data type representing an entry in the @command{inetd} configuration.  Each entry corresponds to a socket where @command{inetd} will listen for requests."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13863
+#: doc/guix.texi:15739
 #, no-wrap
 msgid "@code{node} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:13868
+#: doc/guix.texi:15744
 msgid "Optional string, a comma-separated list of local addresses @command{inetd} should use when listening for this service.  @xref{Configuration file,,, inetutils, GNU Inetutils} for a complete description of all options."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:13870
+#: doc/guix.texi:15746
 msgid "A string, the name must correspond to an entry in @code{/etc/services}."
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:13870
+#: doc/guix.texi:15746
 #, no-wrap
 msgid "socket-type"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:13873
+#: doc/guix.texi:15749
 msgid "One of @code{'stream}, @code{'dgram}, @code{'raw}, @code{'rdm} or @code{'seqpacket}."
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:13873
+#: doc/guix.texi:15749
 #, no-wrap
 msgid "protocol"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:13875
+#: doc/guix.texi:15751
 msgid "A string, must correspond to an entry in @code{/etc/protocols}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13875
+#: doc/guix.texi:15751
 #, no-wrap
 msgid "@code{wait?} (default: @code{#t})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:13878
+#: doc/guix.texi:15754
 msgid "Whether @command{inetd} should wait for the server to exit before listening to new service requests."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:13883
+#: doc/guix.texi:15759
 msgid "A string containing the user (and, optionally, group) name of the user as whom the server should run.  The group name can be specified in a suffix, separated by a colon or period, i.e.@: @code{\"user\"}, @code{\"user:group\"} or @code{\"user.group\"}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13883
+#: doc/guix.texi:15759
 #, no-wrap
 msgid "@code{program} (default: @code{\"internal\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:13886
+#: doc/guix.texi:15762
 msgid "The server program which will serve the requests, or @code{\"internal\"} if @command{inetd} should use a built-in service."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:13891
+#: doc/guix.texi:15767
 msgid "A list strings or file-like objects, which are the server program's arguments, starting with the zeroth argument, i.e.@: the name of the program itself.  For @command{inetd}'s internal services, this entry must be @code{'()} or @code{'(\"internal\")}."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:13895
+#: doc/guix.texi:15771
 msgid "@xref{Configuration file,,, inetutils, GNU Inetutils} for a more detailed discussion of each configuration field."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:13897
+#: doc/guix.texi:15773
 #, no-wrap
 msgid "Tor"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:13898
+#: doc/guix.texi:15774
 #, no-wrap
 msgid "{Scheme Variable} tor-service-type"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:13903
+#: doc/guix.texi:15779
 msgid "This is the type for a service that runs the @uref{https://torproject.org, Tor} anonymous networking daemon.  The service is configured using a @code{<tor-configuration>} record.  By default, the Tor daemon runs as the @code{tor} unprivileged user, which is a member of the @code{tor} group."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:13906
+#: doc/guix.texi:15782
 #, no-wrap
 msgid "{Data Type} tor-configuration"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13908
+#: doc/guix.texi:15784
 #, no-wrap
 msgid "@code{tor} (default: @code{tor})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:13913
+#: doc/guix.texi:15789
 msgid "The package that provides the Tor daemon.  This package is expected to provide the daemon at @file{bin/tor} relative to its output directory.  The default package is the @uref{https://www.torproject.org, Tor Project's} implementation."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13914
+#: doc/guix.texi:15790
 #, no-wrap
 msgid "@code{config-file} (default: @code{(plain-file \"empty\" \"\")})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:13920
+#: doc/guix.texi:15796
 msgid "The configuration file to use.  It will be appended to a default configuration file, and the final configuration file will be passed to @code{tor} via its @code{-f} option.  This may be any ``file-like'' object (@pxref{G-Expressions, file-like objects}).  See @code{man tor} for details on the configuration file syntax."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13921
+#: doc/guix.texi:15797
 #, no-wrap
 msgid "@code{hidden-services} (default: @code{'()})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:13927
+#: doc/guix.texi:15803
 msgid "The list of @code{<hidden-service>} records to use.  For any hidden service you include in this list, appropriate configuration to enable the hidden service will be automatically added to the default configuration file.  You may conveniently create @code{<hidden-service>} records using the @code{tor-hidden-service} procedure described below."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13928
+#: doc/guix.texi:15804
 #, no-wrap
 msgid "@code{socks-socket-type} (default: @code{'tcp})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:13935
+#: doc/guix.texi:15811
 msgid "The default socket type that Tor should use for its SOCKS socket.  This must be either @code{'tcp} or @code{'unix}.  If it is @code{'tcp}, then by default Tor will listen on TCP port 9050 on the loopback interface (i.e., localhost).  If it is @code{'unix}, then Tor will listen on the UNIX domain socket @file{/var/run/tor/socks-sock}, which will be made writable by members of the @code{tor} group."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:13940
+#: doc/guix.texi:15816
 msgid "If you want to customize the SOCKS socket in more detail, leave @code{socks-socket-type} at its default value of @code{'tcp} and use @code{config-file} to override the default by providing your own @code{SocksPort} option."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:13943
+#: doc/guix.texi:15819
 #, no-wrap
 msgid "hidden service"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:13944
+#: doc/guix.texi:15820
 #, no-wrap
 msgid "{Scheme Procedure} tor-hidden-service @var{name} @var{mapping}"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:13947
+#: doc/guix.texi:15823
 msgid "Define a new Tor @dfn{hidden service} called @var{name} and implementing @var{mapping}.  @var{mapping} is a list of port/host tuples, such as:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:13951
+#: doc/guix.texi:15827
 #, no-wrap
 msgid ""
 " '((22 \"127.0.0.1:22\")\n"
@@ -25175,288 +28734,288 @@ msgid ""
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:13955
+#: doc/guix.texi:15831
 msgid "In this example, port 22 of the hidden service is mapped to local port 22, and port 80 is mapped to local port 8080."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:13959
+#: doc/guix.texi:15835
 msgid "This creates a @file{/var/lib/tor/hidden-services/@var{name}} directory, where the @file{hostname} file contains the @code{.onion} host name for the hidden service."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:13962
+#: doc/guix.texi:15838
 msgid "See @uref{https://www.torproject.org/docs/tor-hidden-service.html.en, the Tor project's documentation} for more information."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:13965
+#: doc/guix.texi:15841
 msgid "The @code{(gnu services rsync)} module provides the following services:"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:13969
+#: doc/guix.texi:15845
 msgid "You might want an rsync daemon if you have files that you want available so anyone (or just yourself) can download existing files or upload new files."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:13970
+#: doc/guix.texi:15846
 #, no-wrap
 msgid "{Scheme Variable} rsync-service-type"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:13974
+#: doc/guix.texi:15850
 msgid "This is the service type for the @uref{https://rsync.samba.org, rsync} daemon, The value for this service type is a @command{rsync-configuration} record as in this example:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:13977
+#: doc/guix.texi:15853
 #, no-wrap
 msgid "(service rsync-service-type)\n"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:13980
+#: doc/guix.texi:15856
 msgid "See below for details about @code{rsync-configuration}."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:13982
+#: doc/guix.texi:15858
 #, no-wrap
 msgid "{Data Type} rsync-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:13984
+#: doc/guix.texi:15860
 msgid "Data type representing the configuration for @code{rsync-service}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13986
+#: doc/guix.texi:15862
 #, no-wrap
 msgid "@code{package} (default: @var{rsync})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:13988
+#: doc/guix.texi:15864
 msgid "@code{rsync} package to use."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13989
+#: doc/guix.texi:15865
 #, no-wrap
 msgid "@code{port-number} (default: @code{873})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:13993
+#: doc/guix.texi:15869
 msgid "TCP port on which @command{rsync} listens for incoming connections.  If port is less than @code{1024} @command{rsync} needs to be started as the @code{root} user and group."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13994
+#: doc/guix.texi:15870
 #, no-wrap
 msgid "@code{pid-file} (default: @code{\"/var/run/rsyncd/rsyncd.pid\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:13996
+#: doc/guix.texi:15872
 msgid "Name of the file where @command{rsync} writes its PID."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13997
+#: doc/guix.texi:15873
 #, no-wrap
 msgid "@code{lock-file} (default: @code{\"/var/run/rsyncd/rsyncd.lock\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:13999
+#: doc/guix.texi:15875
 msgid "Name of the file where @command{rsync} writes its lock file."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14000
+#: doc/guix.texi:15876
 #, no-wrap
 msgid "@code{log-file} (default: @code{\"/var/log/rsyncd.log\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14002
+#: doc/guix.texi:15878 doc/guix.texi:16315
 msgid "Name of the file where @command{rsync} writes its log file."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14003
+#: doc/guix.texi:15879
 #, no-wrap
 msgid "@code{use-chroot?} (default: @var{#t})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14005
+#: doc/guix.texi:15881
 msgid "Whether to use chroot for @command{rsync} shared directory."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14006
+#: doc/guix.texi:15882
 #, no-wrap
 msgid "@code{share-path} (default: @file{/srv/rsync})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14008
+#: doc/guix.texi:15884
 msgid "Location of the @command{rsync} shared directory."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14009
+#: doc/guix.texi:15885
 #, no-wrap
 msgid "@code{share-comment} (default: @code{\"Rsync share\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14011
+#: doc/guix.texi:15887
 msgid "Comment of the @command{rsync} shared directory."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14012
+#: doc/guix.texi:15888
 #, no-wrap
 msgid "@code{read-only?} (default: @var{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14014
+#: doc/guix.texi:15890
 msgid "Read-write permissions to shared directory."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14015
+#: doc/guix.texi:15891
 #, no-wrap
 msgid "@code{timeout} (default: @code{300})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14017
+#: doc/guix.texi:15893
 msgid "I/O timeout in seconds."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14018
+#: doc/guix.texi:15894
 #, no-wrap
 msgid "@code{user} (default: @var{\"root\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14020
+#: doc/guix.texi:15896
 msgid "Owner of the @code{rsync} process."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14021
+#: doc/guix.texi:15897
 #, no-wrap
 msgid "@code{group} (default: @var{\"root\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14023
+#: doc/guix.texi:15899
 msgid "Group of the @code{rsync} process."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14024
+#: doc/guix.texi:15900
 #, no-wrap
 msgid "@code{uid} (default: @var{\"rsyncd\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14027
+#: doc/guix.texi:15903
 msgid "User name or user ID that file transfers to and from that module should take place as when the daemon was run as @code{root}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14028
+#: doc/guix.texi:15904
 #, no-wrap
 msgid "@code{gid} (default: @var{\"rsyncd\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14030
+#: doc/guix.texi:15906 doc/guix.texi:16300
 msgid "Group name or group ID that will be used when accessing the module."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:14035
+#: doc/guix.texi:15911
 msgid "Furthermore, @code{(gnu services ssh)} provides the following services."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:14035 doc/guix.texi:14074 doc/guix.texi:27303
+#: doc/guix.texi:15911 doc/guix.texi:15950 doc/guix.texi:30963
 #, no-wrap
 msgid "SSH"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:14036 doc/guix.texi:14075 doc/guix.texi:27304
+#: doc/guix.texi:15912 doc/guix.texi:15951 doc/guix.texi:30964
 #, no-wrap
 msgid "SSH server"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:14038
+#: doc/guix.texi:15914
 #, no-wrap
 msgid "{Scheme Procedure} lsh-service [#:host-key \"/etc/lsh/host-key\"] @"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:14047
+#: doc/guix.texi:15923
 msgid "[#:daemonic? #t] [#:interfaces '()] [#:port-number 22] @ [#:allow-empty-passwords? #f] [#:root-login? #f] @ [#:syslog-output? #t] [#:x11-forwarding? #t] @ [#:tcp/ip-forwarding? #t] [#:password-authentication? #t] @ [#:public-key-authentication? #t] [#:initialize? #t] Run the @command{lshd} program from @var{lsh} to listen on port @var{port-number}.  @var{host-key} must designate a file containing the host key, and readable only by root."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:14053
+#: doc/guix.texi:15929
 msgid "When @var{daemonic?} is true, @command{lshd} will detach from the controlling terminal and log its output to syslogd, unless one sets @var{syslog-output?} to false.  Obviously, it also makes lsh-service depend on existence of syslogd service.  When @var{pid-file?} is true, @command{lshd} writes its PID to the file called @var{pid-file}."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:14057
+#: doc/guix.texi:15933
 msgid "When @var{initialize?} is true, automatically create the seed and host key upon service activation if they do not exist yet.  This may take long and require interaction."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:14062
+#: doc/guix.texi:15938
 msgid "When @var{initialize?} is false, it is up to the user to initialize the randomness generator (@pxref{lsh-make-seed,,, lsh, LSH Manual}), and to create a key pair with the private key stored in file @var{host-key} (@pxref{lshd basics,,, lsh, LSH Manual})."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:14066
+#: doc/guix.texi:15942
 msgid "When @var{interfaces} is empty, lshd listens for connections on all the network interfaces; otherwise, @var{interfaces} must be a list of host names or addresses."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:14070
+#: doc/guix.texi:15946
 msgid "@var{allow-empty-passwords?} specifies whether to accept log-ins with empty passwords, and @var{root-login?} specifies whether to accept log-ins as root."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:14072
+#: doc/guix.texi:15948
 msgid "The other options should be self-descriptive."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:14076
+#: doc/guix.texi:15952
 #, no-wrap
 msgid "{Scheme Variable} openssh-service-type"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:14080
+#: doc/guix.texi:15956
 msgid "This is the type for the @uref{http://www.openssh.org, OpenSSH} secure shell daemon, @command{sshd}.  Its value must be an @code{openssh-configuration} record as in this example:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:14089
+#: doc/guix.texi:15965
 #, no-wrap
 msgid ""
 "(service openssh-service-type\n"
@@ -25469,17 +29028,17 @@ msgid ""
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:14092
+#: doc/guix.texi:15968
 msgid "See below for details about @code{openssh-configuration}."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:14095
+#: doc/guix.texi:15971
 msgid "This service can be extended with extra authorized keys, as in this example:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:14100
+#: doc/guix.texi:15976
 #, no-wrap
 msgid ""
 "(service-extension openssh-service-type\n"
@@ -25488,192 +29047,206 @@ msgid ""
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:14103
+#: doc/guix.texi:15979
 #, no-wrap
 msgid "{Data Type} openssh-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:14105
+#: doc/guix.texi:15981
 msgid "This is the configuration record for OpenSSH's @command{sshd}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14107
+#: doc/guix.texi:15983
+#, fuzzy, no-wrap
+#| msgid "@code{port} (default: @code{22})"
+msgid "@code{openssh} (default @var{openssh})"
+msgstr "@code{port} (default: @code{22})"
+
+#. type: table
+#: doc/guix.texi:15985
+#, fuzzy
+#| msgid "The package data type."
+msgid "The Openssh package to use."
+msgstr "Тип данных пакет"
+
+#. type: item
+#: doc/guix.texi:15986
 #, no-wrap
 msgid "@code{pid-file} (default: @code{\"/var/run/sshd.pid\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14109
+#: doc/guix.texi:15988
 msgid "Name of the file where @command{sshd} writes its PID."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14110
+#: doc/guix.texi:15989
 #, no-wrap
 msgid "@code{port-number} (default: @code{22})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14112
+#: doc/guix.texi:15991
 msgid "TCP port on which @command{sshd} listens for incoming connections."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14113
+#: doc/guix.texi:15992
 #, no-wrap
 msgid "@code{permit-root-login} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14118
+#: doc/guix.texi:15997
 msgid "This field determines whether and when to allow logins as root.  If @code{#f}, root logins are disallowed; if @code{#t}, they are allowed.  If it's the symbol @code{'without-password}, then root logins are permitted but not with password-based authentication."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14119 doc/guix.texi:14280
+#: doc/guix.texi:15998 doc/guix.texi:16159
 #, no-wrap
 msgid "@code{allow-empty-passwords?} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14122
+#: doc/guix.texi:16001
 msgid "When true, users with empty passwords may log in.  When false, they may not."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14123 doc/guix.texi:14283
+#: doc/guix.texi:16002 doc/guix.texi:16162
 #, no-wrap
 msgid "@code{password-authentication?} (default: @code{#t})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14126
+#: doc/guix.texi:16005
 msgid "When true, users may log in with their password.  When false, they have other authentication methods."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14127
+#: doc/guix.texi:16006
 #, no-wrap
 msgid "@code{public-key-authentication?} (default: @code{#t})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14130
+#: doc/guix.texi:16009
 msgid "When true, users may log in using public key authentication.  When false, users have to use other authentication method."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14133
+#: doc/guix.texi:16012
 msgid "Authorized public keys are stored in @file{~/.ssh/authorized_keys}.  This is used only by protocol version 2."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14134
+#: doc/guix.texi:16013
 #, no-wrap
 msgid "@code{x11-forwarding?} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14138
+#: doc/guix.texi:16017
 msgid "When true, forwarding of X11 graphical client connections is enabled---in other words, @command{ssh} options @option{-X} and @option{-Y} will work."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14139
+#: doc/guix.texi:16018
 #, no-wrap
 msgid "@code{allow-agent-forwarding?} (default: @code{#t})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14141
+#: doc/guix.texi:16020
 msgid "Whether to allow agent forwarding."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14142
+#: doc/guix.texi:16021
 #, no-wrap
 msgid "@code{allow-tcp-forwarding?} (default: @code{#t})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14144
+#: doc/guix.texi:16023
 msgid "Whether to allow TCP forwarding."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14145
+#: doc/guix.texi:16024
 #, no-wrap
 msgid "@code{gateway-ports?} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14147
+#: doc/guix.texi:16026
 msgid "Whether to allow gateway ports."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14148
+#: doc/guix.texi:16027
 #, no-wrap
 msgid "@code{challenge-response-authentication?} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14151
+#: doc/guix.texi:16030
 msgid "Specifies whether challenge response authentication is allowed (e.g.@: via PAM)."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14152
+#: doc/guix.texi:16031
 #, no-wrap
 msgid "@code{use-pam?} (default: @code{#t})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14158
+#: doc/guix.texi:16037
 msgid "Enables the Pluggable Authentication Module interface.  If set to @code{#t}, this will enable PAM authentication using @code{challenge-response-authentication?} and @code{password-authentication?}, in addition to PAM account and session module processing for all authentication types."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14163
+#: doc/guix.texi:16042
 msgid "Because PAM challenge response authentication usually serves an equivalent role to password authentication, you should disable either @code{challenge-response-authentication?} or @code{password-authentication?}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14164
+#: doc/guix.texi:16043
 #, no-wrap
 msgid "@code{print-last-log?} (default: @code{#t})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14167
+#: doc/guix.texi:16046
 msgid "Specifies whether @command{sshd} should print the date and time of the last user login when a user logs in interactively."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14168
+#: doc/guix.texi:16047
 #, no-wrap
 msgid "@code{subsystems} (default: @code{'((\"sftp\" \"internal-sftp\"))})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14170
+#: doc/guix.texi:16049
 msgid "Configures external subsystems (e.g.@: file transfer daemon)."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14174
+#: doc/guix.texi:16053
 msgid "This is a list of two-element lists, each of which containing the subsystem name and a command (with optional arguments) to execute upon subsystem request."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14177
-msgid "The command @command{internal-sftp} implements an in-process SFTP server.  Alternately, one can specify the @command{sftp-server} command:"
+#: doc/guix.texi:16056
+msgid "The command @command{internal-sftp} implements an in-process SFTP server.  Alternatively, one can specify the @command{sftp-server} command:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:14182
+#: doc/guix.texi:16061
 #, no-wrap
 msgid ""
 "(service openssh-service-type\n"
@@ -25683,28 +29256,28 @@ msgid ""
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14184
+#: doc/guix.texi:16063
 #, no-wrap
 msgid "@code{accepted-environment} (default: @code{'()})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14186
+#: doc/guix.texi:16065
 msgid "List of strings describing which environment variables may be exported."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14189
+#: doc/guix.texi:16068
 msgid "Each string gets on its own line.  See the @code{AcceptEnv} option in @code{man sshd_config}."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14194
-msgid "This example allows ssh-clients to export the @code{COLORTERM} variable.  It is set by terminal emulators, which support colors.  You can use it in your shell's resource file to enable colors for the prompt and commands if this variable is set."
+#: doc/guix.texi:16073
+msgid "This example allows ssh-clients to export the @env{COLORTERM} variable.  It is set by terminal emulators, which support colors.  You can use it in your shell's resource file to enable colors for the prompt and commands if this variable is set."
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:14199
+#: doc/guix.texi:16078
 #, no-wrap
 msgid ""
 "(service openssh-service-type\n"
@@ -25713,30 +29286,30 @@ msgid ""
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14201
+#: doc/guix.texi:16080
 #, no-wrap
 msgid "@code{authorized-keys} (default: @code{'()})"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:14202
+#: doc/guix.texi:16081
 #, no-wrap
 msgid "authorized keys, SSH"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:14203
+#: doc/guix.texi:16082
 #, no-wrap
 msgid "SSH authorized keys"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14207
+#: doc/guix.texi:16086
 msgid "This is the list of authorized keys.  Each element of the list is a user name followed by one or more file-like objects that represent SSH public keys.  For example:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:14214
+#: doc/guix.texi:16093
 #, no-wrap
 msgid ""
 "(openssh-configuration\n"
@@ -25747,44 +29320,44 @@ msgid ""
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14219
+#: doc/guix.texi:16098
 msgid "registers the specified public keys for user accounts @code{rekado}, @code{chris}, and @code{root}."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14222
+#: doc/guix.texi:16101
 msgid "Additional authorized keys can be specified @i{via} @code{service-extension}."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14225
+#: doc/guix.texi:16104
 msgid "Note that this does @emph{not} interfere with the use of @file{~/.ssh/authorized_keys}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14226
+#: doc/guix.texi:16105
 #, no-wrap
 msgid "@code{log-level} (default: @code{'info})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14230
+#: doc/guix.texi:16109
 msgid "This is a symbol specifying the logging level: @code{quiet}, @code{fatal}, @code{error}, @code{info}, @code{verbose}, @code{debug}, etc.  See the man page for @file{sshd_config} for the full list of level names."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14231 doc/guix.texi:20348
+#: doc/guix.texi:16110 doc/guix.texi:22591
 #, no-wrap
 msgid "@code{extra-content} (default: @code{\"\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14236
+#: doc/guix.texi:16115
 msgid "This field can be used to append arbitrary text to the configuration file.  It is especially useful for elaborate configurations that cannot be expressed otherwise.  This configuration, for example, would generally disable root logins, but permit them from one specific IP address:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:14242
+#: doc/guix.texi:16121
 #, no-wrap
 msgid ""
 "(openssh-configuration\n"
@@ -25794,23 +29367,23 @@ msgid ""
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:14247
+#: doc/guix.texi:16126
 #, no-wrap
 msgid "{Scheme Procedure} dropbear-service [@var{config}]"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:14251
+#: doc/guix.texi:16130
 msgid "Run the @uref{https://matt.ucc.asn.au/dropbear/dropbear.html,Dropbear SSH daemon} with the given @var{config}, a @code{<dropbear-configuration>} object."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:14254
+#: doc/guix.texi:16133
 msgid "For example, to specify a Dropbear service listening on port 1234, add this call to the operating system's @code{services} field:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:14258
+#: doc/guix.texi:16137
 #, no-wrap
 msgid ""
 "(dropbear-service (dropbear-configuration\n"
@@ -25818,99 +29391,430 @@ msgid ""
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:14261
+#: doc/guix.texi:16140
 #, no-wrap
 msgid "{Data Type} dropbear-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:14263
+#: doc/guix.texi:16142
 msgid "This data type represents the configuration of a Dropbear SSH daemon."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14265
+#: doc/guix.texi:16144
 #, no-wrap
 msgid "@code{dropbear} (default: @var{dropbear})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14267
+#: doc/guix.texi:16146
 msgid "The Dropbear package to use."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14268
+#: doc/guix.texi:16147
 #, no-wrap
 msgid "@code{port-number} (default: 22)"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14270
+#: doc/guix.texi:16149
 msgid "The TCP port where the daemon waits for incoming connections."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14271
+#: doc/guix.texi:16150
 #, no-wrap
 msgid "@code{syslog-output?} (default: @code{#t})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14273
+#: doc/guix.texi:16152
 msgid "Whether to enable syslog output."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14274
+#: doc/guix.texi:16153
 #, no-wrap
 msgid "@code{pid-file} (default: @code{\"/var/run/dropbear.pid\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14276
+#: doc/guix.texi:16155
 msgid "File name of the daemon's PID file."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14277
+#: doc/guix.texi:16156
 #, no-wrap
 msgid "@code{root-login?} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14279
+#: doc/guix.texi:16158
 msgid "Whether to allow @code{root} logins."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14282
+#: doc/guix.texi:16161
 msgid "Whether to allow empty passwords."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14285
+#: doc/guix.texi:16164
 msgid "Whether to enable password-based authentication."
 msgstr ""
 
+#. type: cindex
+#: doc/guix.texi:16167
+#, no-wrap
+msgid "AutoSSH"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:16168
+#, fuzzy, no-wrap
+#| msgid "{Scheme Procedure} sane-service-type"
+msgid "{Scheme Variable} autossh-service-type"
+msgstr "{Процедура Scheme} sane-service-type"
+
+#. type: deffn
+#: doc/guix.texi:16176
+msgid "This is the type for the @uref{https://www.harding.motd.ca/autossh, AutoSSH} program that runs a copy of @command{ssh} and monitors it, restarting it as necessary should it die or stop passing traffic.  AutoSSH can be run manually from the command-line by passing arguments to the binary @command{autossh} from the package @code{autossh}, but it can also be run as a Guix service.  This latter use case is documented here."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:16180
+msgid "AutoSSH can be used to forward local traffic to a remote machine using an SSH tunnel, and it respects the @file{~/.ssh/config} of the user it is run as."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:16185
+msgid "For example, to specify a service running autossh as the user @code{pino} and forwarding all local connections to port @code{8081} to @code{remote:8081} using an SSH tunnel, add this call to the operating system's @code{services} field:"
+msgstr ""
+
+#. type: lisp
+#: doc/guix.texi:16191
+#, no-wrap
+msgid ""
+"(service autossh-service-type\n"
+"         (autossh-configuration\n"
+"          (user \"pino\")\n"
+"          (ssh-options (list \"-T\" \"-N\" \"-L\" \"8081:localhost:8081\" \"remote.net\"))))\n"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:16194
+#, fuzzy, no-wrap
+#| msgid "{Data Type} build-machine"
+msgid "{Data Type} autossh-configuration"
+msgstr "{Тип данных} build-machine"
+
+#. type: deftp
+#: doc/guix.texi:16196
+#, fuzzy
+#| msgid "Manage the operating system configuration."
+msgid "This data type represents the configuration of an AutoSSH service."
+msgstr "Управление конфигурацией операционной системы."
+
+#. type: item
+#: doc/guix.texi:16199
+#, fuzzy, no-wrap
+#| msgid "@code{port} (default: @code{22})"
+msgid "@code{user} (default @code{\"autossh\"})"
+msgstr "@code{port} (default: @code{22})"
+
+#. type: table
+#: doc/guix.texi:16202
+msgid "The user as which the AutoSSH service is to be run.  This assumes that the specified user exists."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:16203
+#, fuzzy, no-wrap
+#| msgid "@code{port} (default: @code{22})"
+msgid "@code{poll} (default @code{600})"
+msgstr "@code{port} (default: @code{22})"
+
+#. type: table
+#: doc/guix.texi:16205
+msgid "Specifies the connection poll time in seconds."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:16206
+#, fuzzy, no-wrap
+#| msgid "@code{port} (default: @code{22})"
+msgid "@code{first-poll} (default @code{#f})"
+msgstr "@code{port} (default: @code{22})"
+
+#. type: table
+#: doc/guix.texi:16212
+msgid "Specifies how many seconds AutoSSH waits before the first connection test.  After this first test, polling is resumed at the pace defined in @code{poll}.  When set to @code{#f}, the first poll is not treated specially and will also use the connection poll specified in @code{poll}."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:16213
+#, fuzzy, no-wrap
+#| msgid "@code{port} (default: @code{22})"
+msgid "@code{gate-time} (default @code{30})"
+msgstr "@code{port} (default: @code{22})"
+
+#. type: table
+#: doc/guix.texi:16216
+msgid "Specifies how many seconds an SSH connection must be active before it is considered successful."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:16217
+#, fuzzy, no-wrap
+#| msgid "@code{speed} (default: @code{1.0})"
+msgid "@code{log-level} (default @code{1})"
+msgstr "@code{speed} (default: @code{1.0})"
+
+#. type: table
+#: doc/guix.texi:16220
+msgid "The log level, corresponding to the levels used by syslog---so @code{0} is the most silent while @code{7} is the chattiest."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:16221
+#, fuzzy, no-wrap
+#| msgid "@code{port} (default: @code{22})"
+msgid "@code{max-start} (default @code{#f})"
+msgstr "@code{port} (default: @code{22})"
+
+#. type: table
+#: doc/guix.texi:16224
+msgid "The maximum number of times SSH may be (re)started before AutoSSH exits.  When set to @code{#f}, no maximum is configured and AutoSSH may restart indefinitely."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:16225
+#, fuzzy, no-wrap
+#| msgid "@code{port} (default: @code{22})"
+msgid "@code{message} (default @code{\"\"})"
+msgstr "@code{port} (default: @code{22})"
+
+#. type: table
+#: doc/guix.texi:16227
+msgid "The message to append to the echo message sent when testing connections."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:16228
+#, fuzzy, no-wrap
+#| msgid "@code{port} (default: @code{22})"
+msgid "@code{port} (default @code{\"0\"})"
+msgstr "@code{port} (default: @code{22})"
+
+#. type: table
+#: doc/guix.texi:16238
+msgid "The ports used for monitoring the connection.  When set to @code{\"0\"}, monitoring is disabled.  When set to @code{\"@var{n}\"} where @var{n} is a positive integer, ports @var{n} and @var{n}+1 are used for monitoring the connection, such that port @var{n} is the base monitoring port and @code{n+1} is the echo port.  When set to @code{\"@var{n}:@var{m}\"} where @var{n} and @var{m} are positive integers, the ports @var{n} and @var{m} are used for monitoring the connection, such that port @var{n} is the base monitoring port and @var{m} is the echo port."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:16239
+#, fuzzy, no-wrap
+#| msgid "@code{features} (default: @code{'()})"
+msgid "@code{ssh-options} (default @code{'()})"
+msgstr "@code{features} (default: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:16243
+msgid "The list of command-line arguments to pass to @command{ssh} when it is run.  Options @option{-f} and @option{-M} are reserved for AutoSSH and may cause undefined behaviour."
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:16247
+#, no-wrap
+msgid "WebSSH"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:16248
+#, fuzzy, no-wrap
+#| msgid "{Scheme Procedure} sane-service-type"
+msgid "{Scheme Variable} webssh-service-type"
+msgstr "{Процедура Scheme} sane-service-type"
+
+#. type: deffn
+#: doc/guix.texi:16254
+msgid "This is the type for the @uref{https://webssh.huashengdun.org/, WebSSH} program that runs a web SSH client.  WebSSH can be run manually from the command-line by passing arguments to the binary @command{wssh} from the package @code{webssh}, but it can also be run as a Guix service.  This latter use case is documented here."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:16260
+msgid "For example, to specify a service running WebSSH on loopback interface on port @code{8888} with reject policy with a list of allowed to connection hosts, and NGINX as a reverse-proxy to this service listening for HTTPS connection, add this call to the operating system's @code{services} field:"
+msgstr ""
+
+#. type: lisp
+#: doc/guix.texi:16268
+#, no-wrap
+msgid ""
+"(service webssh-service-type\n"
+"  (webssh-configuration (address \"127.0.0.1\")\n"
+"                        (port 8888)\n"
+"                        (policy 'reject)\n"
+"                        (known-hosts '(\"localhost ecdsa-sha2-nistp256 AAAA…\"\n"
+"                                       \"127.0.0.1 ecdsa-sha2-nistp256 AAAA…\"))))\n"
+"\n"
+msgstr ""
+
+#. type: lisp
+#: doc/guix.texi:16284
+#, no-wrap
+msgid ""
+"(service nginx-service-type\n"
+"         (nginx-configuration\n"
+"          (server-blocks\n"
+"           (list\n"
+"            (nginx-server-configuration\n"
+"             (inherit %webssh-configuration-nginx)\n"
+"             (server-name '(\"webssh.example.com\"))\n"
+"             (listen '(\"443 ssl\"))\n"
+"             (ssl-certificate (letsencrypt-certificate \"webssh.example.com\"))\n"
+"             (ssl-certificate-key (letsencrypt-key \"webssh.example.com\"))\n"
+"             (locations\n"
+"              (cons (nginx-location-configuration\n"
+"                     (uri \"/.well-known\")\n"
+"                     (body '(\"root /var/www;\")))\n"
+"                    (nginx-server-configuration-locations %webssh-configuration-nginx))))))))\n"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:16287
+#, fuzzy, no-wrap
+#| msgid "System Configuration"
+msgid "{Data Type} webssh-configuration"
+msgstr "Конфигурирование системы"
+
+#. type: deftp
+#: doc/guix.texi:16289
+#, fuzzy
+#| msgid "Manage the operating system configuration."
+msgid "Data type representing the configuration for @code{webssh-service}."
+msgstr "Управление конфигурацией операционной системы."
+
+#. type: item
+#: doc/guix.texi:16291
+#, fuzzy, no-wrap
+#| msgid "@code{port} (default: @code{22})"
+msgid "@code{package} (default: @var{webssh})"
+msgstr "@code{port} (default: @code{22})"
+
+#. type: table
+#: doc/guix.texi:16293
+#, fuzzy
+#| msgid "The package data type."
+msgid "@code{webssh} package to use."
+msgstr "Тип данных пакет"
+
+#. type: item
+#: doc/guix.texi:16294
+#, fuzzy, no-wrap
+#| msgid "@code{port} (default: @code{22})"
+msgid "@code{user-name} (default: @var{\"webssh\"})"
+msgstr "@code{port} (default: @code{22})"
+
+#. type: table
+#: doc/guix.texi:16297
+msgid "User name or user ID that file transfers to and from that module should take place."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:16298
+#, fuzzy, no-wrap
+#| msgid "@code{port} (default: @code{22})"
+msgid "@code{group-name} (default: @var{\"webssh\"})"
+msgstr "@code{port} (default: @code{22})"
+
+#. type: item
+#: doc/guix.texi:16301
+#, fuzzy, no-wrap
+#| msgid "@code{features} (default: @code{'()})"
+msgid "@code{address} (default: @var{#f})"
+msgstr "@code{features} (default: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:16303
+msgid "IP address on which @command{webssh} listens for incoming connections."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:16304
+#, fuzzy, no-wrap
+#| msgid "@code{port} (default: @code{22})"
+msgid "@code{port} (default: @var{8888})"
+msgstr "@code{port} (default: @code{22})"
+
+#. type: table
+#: doc/guix.texi:16306
+msgid "TCP port on which @command{webssh} listens for incoming connections."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:16307
+#, fuzzy, no-wrap
+#| msgid "@code{speed} (default: @code{1.0})"
+msgid "@code{policy} (default: @var{#f})"
+msgstr "@code{speed} (default: @code{1.0})"
+
+#. type: table
+#: doc/guix.texi:16309
+msgid "Connection policy.  @var{reject} policy requires to specify @var{known-hosts}."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:16310
+#, fuzzy, no-wrap
+#| msgid "@code{inputs} (default: @code{'()})"
+msgid "@code{known-hosts} (default: @var{'()})"
+msgstr "@code{inputs} (default: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:16312
+msgid "List of hosts which allowed for SSH connection from @command{webssh}."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:16313
+#, fuzzy, no-wrap
+#| msgid "@code{daemon-socket} (default: @code{\"/var/guix/daemon-socket/socket\"})"
+msgid "@code{log-file} (default: @file{\"/var/log/webssh.log\"})"
+msgstr "@code{daemon-socket} (default: @code{\"/var/guix/daemon-socket/socket\"})"
+
+#. type: item
+#: doc/guix.texi:16316
+#, fuzzy, no-wrap
+#| msgid "@code{features} (default: @code{'()})"
+msgid "@code{log-level} (default: @var{#f})"
+msgstr "@code{features} (default: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:16318
+msgid "Logging level."
+msgstr ""
+
 #. type: defvr
-#: doc/guix.texi:14288
+#: doc/guix.texi:16322
 #, no-wrap
 msgid "{Scheme Variable} %facebook-host-aliases"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:14294
+#: doc/guix.texi:16328
 msgid "This variable contains a string for use in @file{/etc/hosts} (@pxref{Host Names,,, libc, The GNU C Library Reference Manual}).  Each line contains a entry that maps a known server name of the Facebook on-line service---e.g., @code{www.facebook.com}---to the local host---@code{127.0.0.1} or its IPv6 equivalent, @code{::1}."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:14298
+#: doc/guix.texi:16332
 msgid "This variable is typically used in the @code{hosts-file} field of an @code{operating-system} declaration (@pxref{operating-system Reference, @file{/etc/hosts}}):"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:14311
+#: doc/guix.texi:16345
 #, no-wrap
 msgid ""
 "(operating-system\n"
@@ -25925,176 +29829,176 @@ msgid ""
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:14315
+#: doc/guix.texi:16349
 msgid "This mechanism can prevent programs running locally, such as Web browsers, from accessing Facebook."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:14318
+#: doc/guix.texi:16352
 msgid "The @code{(gnu services avahi)} provides the following definition."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:14319
+#: doc/guix.texi:16353
 #, no-wrap
 msgid "{Scheme Variable} avahi-service-type"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:14324
+#: doc/guix.texi:16358
 msgid "This is the service that runs @command{avahi-daemon}, a system-wide mDNS/DNS-SD responder that allows for service discovery and ``zero-configuration'' host name lookups (see @uref{https://avahi.org/}).  Its value must be a @code{zero-configuration} record---see below."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:14329
+#: doc/guix.texi:16363
 msgid "This service extends the name service cache daemon (nscd) so that it can resolve @code{.local} host names using @uref{https://0pointer.de/lennart/projects/nss-mdns/, nss-mdns}.  @xref{Name Service Switch}, for information on host name resolution."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:14332
+#: doc/guix.texi:16366
 msgid "Additionally, add the @var{avahi} package to the system profile so that commands such as @command{avahi-browse} are directly usable."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:14334
+#: doc/guix.texi:16368
 #, no-wrap
 msgid "{Data Type} avahi-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:14336
+#: doc/guix.texi:16370
 msgid "Data type representation the configuration for Avahi."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14339
+#: doc/guix.texi:16373
 #, no-wrap
 msgid "@code{host-name} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14342
+#: doc/guix.texi:16376
 msgid "If different from @code{#f}, use that as the host name to publish for this machine; otherwise, use the machine's actual host name."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14343
+#: doc/guix.texi:16377
 #, no-wrap
 msgid "@code{publish?} (default: @code{#t})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14346
+#: doc/guix.texi:16380
 msgid "When true, allow host names and services to be published (broadcast) over the network."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14347
+#: doc/guix.texi:16381
 #, no-wrap
 msgid "@code{publish-workstation?} (default: @code{#t})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14351
+#: doc/guix.texi:16385
 msgid "When true, @command{avahi-daemon} publishes the machine's host name and IP address via mDNS on the local network.  To view the host names published on your local network, you can run:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:14354
+#: doc/guix.texi:16388
 #, no-wrap
 msgid "avahi-browse _workstation._tcp\n"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14356
+#: doc/guix.texi:16390
 #, no-wrap
 msgid "@code{wide-area?} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14358
+#: doc/guix.texi:16392
 msgid "When true, DNS-SD over unicast DNS is enabled."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14359
+#: doc/guix.texi:16393
 #, no-wrap
 msgid "@code{ipv4?} (default: @code{#t})"
 msgstr ""
 
 #. type: itemx
-#: doc/guix.texi:14360
+#: doc/guix.texi:16394
 #, no-wrap
 msgid "@code{ipv6?} (default: @code{#t})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14362
+#: doc/guix.texi:16396
 msgid "These fields determine whether to use IPv4/IPv6 sockets."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14363
+#: doc/guix.texi:16397
 #, no-wrap
 msgid "@code{domains-to-browse} (default: @code{'()})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14365
+#: doc/guix.texi:16399
 msgid "This is a list of domains to browse."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:14368
+#: doc/guix.texi:16402
 #, no-wrap
 msgid "{Scheme Variable} openvswitch-service-type"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:14372
+#: doc/guix.texi:16406
 msgid "This is the type of the @uref{https://www.openvswitch.org, Open vSwitch} service, whose value should be an @code{openvswitch-configuration} object."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:14374
+#: doc/guix.texi:16408
 #, no-wrap
 msgid "{Data Type} openvswitch-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:14378
+#: doc/guix.texi:16412
 msgid "Data type representing the configuration of Open vSwitch, a multilayer virtual switch which is designed to enable massive network automation through programmatic extension."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14380
+#: doc/guix.texi:16414
 #, no-wrap
 msgid "@code{package} (default: @var{openvswitch})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14382
+#: doc/guix.texi:16416
 msgid "Package object of the Open vSwitch."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:14386
+#: doc/guix.texi:16420
 #, no-wrap
 msgid "{Scheme Variable} pagekite-service-type"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:14391
+#: doc/guix.texi:16425
 msgid "This is the service type for the @uref{https://pagekite.net, PageKite} service, a tunneling solution for making localhost servers publicly visible, even from behind restrictive firewalls or NAT without forwarded ports.  The value for this service type is a @code{pagekite-configuration} record."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:14393
+#: doc/guix.texi:16427
 msgid "Here's an example exposing the local HTTP and SSH daemons:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:14400
+#: doc/guix.texi:16434
 #, no-wrap
 msgid ""
 "(service pagekite-service-type\n"
@@ -26105,290 +30009,511 @@ msgid ""
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:14403
+#: doc/guix.texi:16437
 #, no-wrap
 msgid "{Data Type} pagekite-configuration"
 msgstr "{Data Type} pagekite-configuration"
 
 #. type: deftp
-#: doc/guix.texi:14405
+#: doc/guix.texi:16439
 #, fuzzy
 #| msgid "Manage the operating system configuration."
 msgid "Data type representing the configuration of PageKite."
 msgstr "Управление конфигурацией операционной системы."
 
 #. type: item
-#: doc/guix.texi:14407
+#: doc/guix.texi:16441
 #, fuzzy, no-wrap
 #| msgid "@code{port} (default: @code{22})"
 msgid "@code{package} (default: @var{pagekite})"
 msgstr "@code{port} (default: @code{22})"
 
 #. type: table
-#: doc/guix.texi:14409
+#: doc/guix.texi:16443
 msgid "Package object of PageKite."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14410
+#: doc/guix.texi:16444
 #, fuzzy, no-wrap
 #| msgid "@code{port} (default: @code{22})"
 msgid "@code{kitename} (default: @code{#f})"
 msgstr "@code{port} (default: @code{22})"
 
 #. type: table
-#: doc/guix.texi:14412
+#: doc/guix.texi:16446
 msgid "PageKite name for authenticating to the frontend server."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14413
+#: doc/guix.texi:16447
 #, fuzzy, no-wrap
 #| msgid "@code{speed} (default: @code{1.0})"
 msgid "@code{kitesecret} (default: @code{#f})"
 msgstr "@code{speed} (default: @code{1.0})"
 
 #. type: table
-#: doc/guix.texi:14416
+#: doc/guix.texi:16450
 msgid "Shared secret for authenticating to the frontend server.  You should probably put this inside @code{extra-file} instead."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14417
+#: doc/guix.texi:16451
 #, fuzzy, no-wrap
 #| msgid "@code{speed} (default: @code{1.0})"
 msgid "@code{frontend} (default: @code{#f})"
 msgstr "@code{speed} (default: @code{1.0})"
 
 #. type: table
-#: doc/guix.texi:14420
+#: doc/guix.texi:16454
 msgid "Connect to the named PageKite frontend server instead of the @uref{https://pagekite.net,,pagekite.net} service."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14421
+#: doc/guix.texi:16455
 #, no-wrap
 msgid "@code{kites} (default: @code{'(\"http:@@kitename:localhost:80:@@kitesecret\")})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14424
+#: doc/guix.texi:16458
 msgid "List of service kites to use.  Exposes HTTP on port 80 by default. The format is @code{proto:kitename:host:port:secret}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14425
+#: doc/guix.texi:16459
 #, fuzzy, no-wrap
 #| msgid "@code{speed} (default: @code{1.0})"
 msgid "@code{extra-file} (default: @code{#f})"
 msgstr "@code{speed} (default: @code{1.0})"
 
 #. type: table
-#: doc/guix.texi:14428
+#: doc/guix.texi:16462
 msgid "Extra configuration file to read, which you are expected to create manually.  Use this to add additional options and manage shared secrets out-of-band."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:14435
+#: doc/guix.texi:16469
+#, no-wrap
+msgid "unattended upgrades"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:16470
+#, no-wrap
+msgid "upgrades, unattended"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:16475
+msgid "Guix provides a service to perform @emph{unattended upgrades}: periodically, the system automatically reconfigures itself from the latest Guix.  Guix System has several properties that make unattended upgrades safe:"
+msgstr ""
+
+#. type: itemize
+#: doc/guix.texi:16480
+msgid "upgrades are transactional (either the upgrade succeeds or it fails, but you cannot end up with an ``in-between'' system state);"
+msgstr ""
+
+#. type: itemize
+#: doc/guix.texi:16484
+msgid "the upgrade log is kept---you can view it with @command{guix system list-generations}---and you can roll back to any previous generation, should the upgraded system fail to behave as intended;"
+msgstr ""
+
+#. type: itemize
+#: doc/guix.texi:16487
+msgid "channel code is authenticated so you know you can only run genuine code (@pxref{Channels});"
+msgstr ""
+
+#. type: itemize
+#: doc/guix.texi:16490
+msgid "@command{guix system reconfigure} prevents downgrades, which makes it immune to @dfn{downgrade attacks}."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:16495
+msgid "To set up unattended upgrades, add an instance of @code{unattended-upgrade-service-type} like the one below to the list of your operating system services:"
+msgstr ""
+
+#. type: lisp
+#: doc/guix.texi:16498
+#, no-wrap
+msgid "(service unattended-upgrade-service-type)\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:16505
+msgid "The defaults above set up weekly upgrades: every Sunday at midnight.  You do not need to provide the operating system configuration file: it uses @file{/run/current-system/configuration.scm}, which ensures it always uses your latest configuration---@pxref{provenance-service-type}, for more information about this file."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:16511
+msgid "There are several things that can be configured, in particular the periodicity and services (daemons) to be restarted upon completion.  When the upgrade is successful, the service takes care of deleting system generations older that some threshold, as per @command{guix system delete-generations}.  See the reference below for details."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:16515
+msgid "To ensure that upgrades are actually happening, you can run @command{guix system describe}.  To investigate upgrade failures, visit the unattended upgrade log file (see below)."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:16516
+#, fuzzy, no-wrap
+#| msgid "{Scheme Procedure} sane-service-type"
+msgid "{Scheme Variable} unattended-upgrade-service-type"
+msgstr "{Процедура Scheme} sane-service-type"
+
+#. type: defvr
+#: doc/guix.texi:16520
+msgid "This is the service type for unattended upgrades.  It sets up an mcron job (@pxref{Scheduled Job Execution}) that runs @command{guix system reconfigure} from the latest version of the specified channels."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:16523
+msgid "Its value must be a @code{unattended-upgrade-configuration} record (see below)."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:16525
+#, fuzzy, no-wrap
+#| msgid "{Data Type} build-machine"
+msgid "{Data Type} unattended-upgrade-configuration"
+msgstr "{Тип данных} build-machine"
+
+#. type: deftp
+#: doc/guix.texi:16528
+#, fuzzy
+#| msgid "This data type represents build machines to which the daemon may offload builds.  The important fields are:"
+msgid "This data type represents the configuration of the unattended upgrade service.  The following fields are available:"
+msgstr "Этот тип данных представляет машины для сборки, на которые демон может разгружать сборки. Важные поля:"
+
+#. type: item
+#: doc/guix.texi:16530
+#, fuzzy, no-wrap
+#| msgid "@code{speed} (default: @code{1.0})"
+msgid "@code{schedule} (default: @code{\"30 01 * * 0\"})"
+msgstr "@code{speed} (default: @code{1.0})"
+
+#. type: table
+#: doc/guix.texi:16534
+msgid "This is the schedule of upgrades, expressed as a gexp containing an mcron job schedule (@pxref{Guile Syntax, mcron job specifications,, mcron, GNU@tie{}mcron})."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:16535
+#, fuzzy, no-wrap
+#| msgid "@code{port} (default: @code{22})"
+msgid "@code{channels} (default: @code{#~%default-channels})"
+msgstr "@code{port} (default: @code{22})"
+
+#. type: table
+#: doc/guix.texi:16539
+msgid "This gexp specifies the channels to use for the upgrade (@pxref{Channels}).  By default, the tip of the official @code{guix} channel is used."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:16540
+#, fuzzy, no-wrap
+#| msgid "@code{daemon-socket} (default: @code{\"/var/guix/daemon-socket/socket\"})"
+msgid "@code{operating-system-file} (default: @code{\"/run/current-system/configuration.scm\"})"
+msgstr "@code{daemon-socket} (default: @code{\"/var/guix/daemon-socket/socket\"})"
+
+#. type: table
+#: doc/guix.texi:16543
+msgid "This field specifies the operating system configuration file to use.  The default is to reuse the config file of the current configuration."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:16549
+msgid "There are cases, though, where referring to @file{/run/current-system/configuration.scm} is not enough, for instance because that file refers to extra files (SSH public keys, extra configuration files, etc.) @i{via} @code{local-file} and similar constructs.  For those cases, we recommend something along these lines:"
+msgstr ""
+
+#. type: lisp
+#: doc/guix.texi:16555
+#, no-wrap
+msgid ""
+"(unattended-upgrade-configuration\n"
+"  (operating-system-file\n"
+"    (file-append (local-file \".\" \"config-dir\" #:recursive? #t)\n"
+"                 \"/config.scm\")))\n"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:16562
+msgid "The effect here is to import all of the current directory into the store, and to refer to @file{config.scm} within that directory.  Therefore, uses of @code{local-file} within @file{config.scm} will work as expected.  @xref{G-Expressions}, for information about @code{local-file} and @code{file-append}."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:16563
+#, fuzzy, no-wrap
+#| msgid "@code{features} (default: @code{'()})"
+msgid "@code{services-to-restart} (default: @code{'(mcron)})"
+msgstr "@code{features} (default: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:16566
+msgid "This field specifies the Shepherd services to restart when the upgrade completes."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:16573
+msgid "Those services are restarted right away upon completion, as with @command{herd restart}, which ensures that the latest version is running---remember that by default @command{guix system reconfigure} only restarts services that are not currently running, which is conservative: it minimizes disruption but leaves outdated services running."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:16576
+msgid "By default, the @code{mcron} service is restarted.  This ensures that the latest version of the unattended upgrade job will be used next time."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:16577
+#, fuzzy, no-wrap
+#| msgid "@code{features} (default: @code{'()})"
+msgid "@code{system-expiration} (default: @code{(* 3 30 24 3600)})"
+msgstr "@code{features} (default: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:16581
+msgid "This is the expiration time in seconds for system generations.  System generations older that this amount of time are deleted with @command{guix system delete-generations} when an upgrade completes."
+msgstr ""
+
+#. type: quotation
+#: doc/guix.texi:16586
+msgid "The unattended upgrade service does not run the garbage collector.  You will probably want to set up your own mcron job to run @command{guix gc} periodically."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:16588
+#, fuzzy, no-wrap
+#| msgid "@code{port} (default: @code{22})"
+msgid "@code{maximum-duration} (default: @code{3600})"
+msgstr "@code{port} (default: @code{22})"
+
+#. type: table
+#: doc/guix.texi:16591
+msgid "Maximum duration in seconds for the upgrade; past that time, the upgrade aborts."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:16594
+msgid "This is primarily useful to ensure the upgrade does not end up rebuilding or re-downloading ``the world''."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:16595
+#, fuzzy, no-wrap
+#| msgid "@code{daemon-socket} (default: @code{\"/var/guix/daemon-socket/socket\"})"
+msgid "@code{log-file} (default: @code{\"/var/log/unattended-upgrade.log\"})"
+msgstr "@code{daemon-socket} (default: @code{\"/var/guix/daemon-socket/socket\"})"
+
+#. type: table
+#: doc/guix.texi:16597
+msgid "File where unattended upgrades are logged."
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:16603
 #, no-wrap
 msgid "X11"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:14436
+#: doc/guix.texi:16604
 #, no-wrap
 msgid "X Window System"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:14437 doc/guix.texi:14689
+#: doc/guix.texi:16605 doc/guix.texi:16858
 #, no-wrap
 msgid "login manager"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:14442
+#: doc/guix.texi:16610
 msgid "Support for the X Window graphical display system---specifically Xorg---is provided by the @code{(gnu services xorg)} module.  Note that there is no @code{xorg-service} procedure.  Instead, the X server is started by the @dfn{login manager}, by default the GNOME Display Manager (GDM)."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:14443
+#: doc/guix.texi:16611
 #, no-wrap
 msgid "GDM"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:14444
+#: doc/guix.texi:16612
 #, no-wrap
 msgid "GNOME, login manager"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:14448
+#: doc/guix.texi:16616
 msgid "GDM of course allows users to log in into window managers and desktop environments other than GNOME; for those using GNOME, GDM is required for features such as automatic screen locking."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:14449
+#: doc/guix.texi:16617
 #, no-wrap
 msgid "window manager"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:14454
+#: doc/guix.texi:16622
 msgid "To use X11, you must install at least one @dfn{window manager}---for example the @code{windowmaker} or @code{openbox} packages---preferably by adding it to the @code{packages} field of your operating system definition (@pxref{operating-system Reference, system-wide packages})."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:14455
+#: doc/guix.texi:16623
 #, no-wrap
 msgid "{Scheme Variable} gdm-service-type"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:14460
-msgid "This is the type for the @uref{https://wiki.gnome.org/Projects/GDM/, GNOME Desktop Manager} (GDM), a program that manages graphical display servers and handles graphical user logins.  Its value must be a @code{gdm-configuration} (see below.)"
+#: doc/guix.texi:16628
+msgid "This is the type for the @uref{https://wiki.gnome.org/Projects/GDM/, GNOME Desktop Manager} (GDM), a program that manages graphical display servers and handles graphical user logins.  Its value must be a @code{gdm-configuration} (see below)."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:14461
+#: doc/guix.texi:16629
 #, no-wrap
 msgid "session types (X11)"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:14462
+#: doc/guix.texi:16630
 #, no-wrap
 msgid "X11 session types"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:14468
+#: doc/guix.texi:16636
 msgid "GDM looks for @dfn{session types} described by the @file{.desktop} files in @file{/run/current-system/profile/share/xsessions} and allows users to choose a session from the log-in screen.  Packages such as @code{gnome}, @code{xfce}, and @code{i3} provide @file{.desktop} files; adding them to the system-wide set of packages automatically makes them available at the log-in screen."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:14472
+#: doc/guix.texi:16640
 msgid "In addition, @file{~/.xsession} files are honored.  When available, @file{~/.xsession} must be an executable that starts a window manager and/or other X clients."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:14474
+#: doc/guix.texi:16642
 #, no-wrap
 msgid "{Data Type} gdm-configuration"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14476 doc/guix.texi:14545
+#: doc/guix.texi:16644 doc/guix.texi:16713
 #, no-wrap
 msgid "@code{auto-login?} (default: @code{#f})"
 msgstr ""
 
 #. type: itemx
-#: doc/guix.texi:14477
+#: doc/guix.texi:16645
 #, no-wrap
 msgid "@code{default-user} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14479
+#: doc/guix.texi:16647
 msgid "When @code{auto-login?} is false, GDM presents a log-in screen."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14482
+#: doc/guix.texi:16650
 msgid "When @code{auto-login?} is true, GDM logs in directly as @code{default-user}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14483 doc/guix.texi:18986 doc/guix.texi:20665
+#: doc/guix.texi:16651 doc/guix.texi:21206 doc/guix.texi:22908
+#: doc/guix.texi:26922 doc/guix.texi:26951 doc/guix.texi:26980
+#: doc/guix.texi:27007 doc/guix.texi:27062 doc/guix.texi:27087
+#: doc/guix.texi:27114 doc/guix.texi:27140 doc/guix.texi:27182
 #, no-wrap
 msgid "@code{debug?} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14485
+#: doc/guix.texi:16653
 msgid "When true, GDM writes debug messages to its log."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14486
+#: doc/guix.texi:16654
 #, no-wrap
 msgid "@code{gnome-shell-assets} (default: ...)"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14488
+#: doc/guix.texi:16656
 msgid "List of GNOME Shell assets needed by GDM: icon theme, fonts, etc."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14489
+#: doc/guix.texi:16657
 #, no-wrap
 msgid "@code{xorg-configuration} (default: @code{(xorg-configuration)})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14491 doc/guix.texi:14572 doc/guix.texi:14655
+#: doc/guix.texi:16659 doc/guix.texi:16740 doc/guix.texi:16824
 msgid "Configuration of the Xorg graphical server."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14492
+#: doc/guix.texi:16660
 #, no-wrap
 msgid "@code{xsession} (default: @code{(xinitrc)})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14494 doc/guix.texi:14670
+#: doc/guix.texi:16662 doc/guix.texi:16839
 msgid "Script to run before starting a X session."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14495
+#: doc/guix.texi:16663
 #, no-wrap
 msgid "@code{dbus-daemon} (default: @code{dbus-daemon-wrapper})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14497
+#: doc/guix.texi:16665
 msgid "File name of the @code{dbus-daemon} executable."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14498
+#: doc/guix.texi:16666
 #, no-wrap
 msgid "@code{gdm} (default: @code{gdm})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14500
+#: doc/guix.texi:16668
 msgid "The GDM package to use."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:14503
+#: doc/guix.texi:16671
 #, no-wrap
 msgid "{Scheme Variable} slim-service-type"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:14505
+#: doc/guix.texi:16673
 msgid "This is the type for the SLiM graphical login manager for X11."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:14509
+#: doc/guix.texi:16677
 msgid "Like GDM, SLiM looks for session types described by @file{.desktop} files and allows users to choose a session from the log-in screen using @kbd{F1}.  It also honors @file{~/.xsession} files."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:14516
+#: doc/guix.texi:16684
 msgid "Unlike GDM, SLiM does not spawn the user session on a different VT after logging in, which means that you can only start one graphical session.  If you want to be able to run multiple graphical sessions at the same time you have to add multiple SLiM services to your system services.  The following example shows how to replace the default GDM service with two SLiM services on tty7 and tty8."
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:14522
+#: doc/guix.texi:16690
 #, fuzzy, no-wrap
 #| msgid ""
 #| "(use-modules (guix inferior) (guix channels)\n"
@@ -26406,7 +30531,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:14534
+#: doc/guix.texi:16702
 #, no-wrap
 msgid ""
 "(operating-system\n"
@@ -26423,484 +30548,486 @@ msgid ""
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:14538
+#: doc/guix.texi:16706
 #, no-wrap
 msgid "{Data Type} slim-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:14540
+#: doc/guix.texi:16708
 msgid "Data type representing the configuration of @code{slim-service-type}."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14544
+#: doc/guix.texi:16712
 msgid "Whether to allow logins with empty passwords."
 msgstr ""
 
 #. type: itemx
-#: doc/guix.texi:14546
+#: doc/guix.texi:16714
 #, no-wrap
 msgid "@code{default-user} (default: @code{\"\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14548
+#: doc/guix.texi:16716
 msgid "When @code{auto-login?} is false, SLiM presents a log-in screen."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14551
+#: doc/guix.texi:16719
 msgid "When @code{auto-login?} is true, SLiM logs in directly as @code{default-user}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14552
+#: doc/guix.texi:16720
 #, no-wrap
 msgid "@code{theme} (default: @code{%default-slim-theme})"
 msgstr ""
 
 #. type: itemx
-#: doc/guix.texi:14553
+#: doc/guix.texi:16721
 #, no-wrap
 msgid "@code{theme-name} (default: @code{%default-slim-theme-name})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14555
+#: doc/guix.texi:16723
 msgid "The graphical theme to use and its name."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14556
+#: doc/guix.texi:16724
 #, no-wrap
 msgid "@code{auto-login-session} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14559
+#: doc/guix.texi:16727
 msgid "If true, this must be the name of the executable to start as the default session---e.g., @code{(file-append windowmaker \"/bin/windowmaker\")}."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14563
+#: doc/guix.texi:16731
 msgid "If false, a session described by one of the available @file{.desktop} files in @code{/run/current-system/profile} and @code{~/.guix-profile} will be used."
 msgstr ""
 
 #. type: quotation
-#: doc/guix.texi:14568
+#: doc/guix.texi:16736
 msgid "You must install at least one window manager in the system profile or in your user profile.  Failing to do that, if @code{auto-login-session} is false, you will be unable to log in."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14570 doc/guix.texi:14653
+#: doc/guix.texi:16738 doc/guix.texi:16822
 #, no-wrap
 msgid "@code{xorg-configuration} (default @code{(xorg-configuration)})"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14573
+#: doc/guix.texi:16741
 #, fuzzy, no-wrap
 #| msgid "@code{speed} (default: @code{1.0})"
 msgid "@code{display} (default @code{\":0\"})"
 msgstr "@code{speed} (default: @code{1.0})"
 
 #. type: table
-#: doc/guix.texi:14575
+#: doc/guix.texi:16743
 msgid "The display on which to start the Xorg graphical server."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14576
+#: doc/guix.texi:16744
 #, fuzzy, no-wrap
 #| msgid "@code{port} (default: @code{22})"
 msgid "@code{vt} (default @code{\"vt7\"})"
 msgstr "@code{port} (default: @code{22})"
 
 #. type: table
-#: doc/guix.texi:14578
+#: doc/guix.texi:16746
 msgid "The VT on which to start the Xorg graphical server."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14579
+#: doc/guix.texi:16747
 #, no-wrap
 msgid "@code{xauth} (default: @code{xauth})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14581
+#: doc/guix.texi:16749
 msgid "The XAuth package to use."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14582
+#: doc/guix.texi:16750
 #, no-wrap
 msgid "@code{shepherd} (default: @code{shepherd})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14585
+#: doc/guix.texi:16753
 msgid "The Shepherd package used when invoking @command{halt} and @command{reboot}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14586
+#: doc/guix.texi:16754
 #, no-wrap
 msgid "@code{sessreg} (default: @code{sessreg})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14588
+#: doc/guix.texi:16756
 msgid "The sessreg package used in order to register the session."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14589
+#: doc/guix.texi:16757
 #, no-wrap
 msgid "@code{slim} (default: @code{slim})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14591
+#: doc/guix.texi:16759
 msgid "The SLiM package to use."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:14594 doc/guix.texi:26480
+#: doc/guix.texi:16762
 #, no-wrap
 msgid "{Scheme Variable} %default-theme"
 msgstr ""
 
 #. type: defvrx
-#: doc/guix.texi:14595
+#: doc/guix.texi:16763
 #, no-wrap
 msgid "{Scheme Variable} %default-theme-name"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:14597
+#: doc/guix.texi:16765
 msgid "The default SLiM theme and its name."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:14600 doc/guix.texi:14706
+#: doc/guix.texi:16768 doc/guix.texi:16875
 #, no-wrap
 msgid "{Data Type} sddm-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:14602
-msgid "This is the data type representing the sddm service configuration."
-msgstr ""
+#: doc/guix.texi:16770
+#, fuzzy
+#| msgid "Manage the operating system configuration."
+msgid "This is the data type representing the SDDM service configuration."
+msgstr "Управление конфигурацией операционной системы."
 
 #. type: item
-#: doc/guix.texi:14604
+#: doc/guix.texi:16772
 #, no-wrap
 msgid "@code{display-server} (default: \"x11\")"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14607
-msgid "Select display server to use for the greeter. Valid values are \"x11\" or \"wayland\"."
+#: doc/guix.texi:16775
+msgid "Select display server to use for the greeter.  Valid values are @samp{\"x11\"} or @samp{\"wayland\"}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14608
+#: doc/guix.texi:16776
 #, no-wrap
 msgid "@code{numlock} (default: \"on\")"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14610
-msgid "Valid values are \"on\", \"off\" or \"none\"."
+#: doc/guix.texi:16778
+msgid "Valid values are @samp{\"on\"}, @samp{\"off\"} or @samp{\"none\"}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14611
+#: doc/guix.texi:16779
 #, no-wrap
 msgid "@code{halt-command} (default @code{#~(string-apppend #$shepherd \"/sbin/halt\")})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14613
+#: doc/guix.texi:16781
 msgid "Command to run when halting."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14614
+#: doc/guix.texi:16782
 #, no-wrap
 msgid "@code{reboot-command} (default @code{#~(string-append #$shepherd \"/sbin/reboot\")})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14616
+#: doc/guix.texi:16784
 msgid "Command to run when rebooting."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14617
+#: doc/guix.texi:16785
 #, no-wrap
 msgid "@code{theme} (default \"maldives\")"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14619
-msgid "Theme to use. Default themes provided by SDDM are \"elarun\", \"maldives\" or \"maya\"."
+#: doc/guix.texi:16788
+msgid "Theme to use.  Default themes provided by SDDM are @samp{\"elarun\"}, @samp{\"maldives\"} or @samp{\"maya\"}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14620
+#: doc/guix.texi:16789
 #, no-wrap
 msgid "@code{themes-directory} (default \"/run/current-system/profile/share/sddm/themes\")"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14622
+#: doc/guix.texi:16791
 msgid "Directory to look for themes."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14623
+#: doc/guix.texi:16792
 #, no-wrap
 msgid "@code{faces-directory} (default \"/run/current-system/profile/share/sddm/faces\")"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14625
+#: doc/guix.texi:16794
 msgid "Directory to look for faces."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14626
+#: doc/guix.texi:16795
 #, no-wrap
 msgid "@code{default-path} (default \"/run/current-system/profile/bin\")"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14628
+#: doc/guix.texi:16797
 msgid "Default PATH to use."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14629
+#: doc/guix.texi:16798
 #, fuzzy, no-wrap
 #| msgid "@code{speed} (default: @code{1.0})"
 msgid "@code{minimum-uid} (default: 1000)"
 msgstr "@code{speed} (default: @code{1.0})"
 
 #. type: table
-#: doc/guix.texi:14631
+#: doc/guix.texi:16800
 msgid "Minimum UID displayed in SDDM and allowed for log-in."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14632
+#: doc/guix.texi:16801
 #, fuzzy, no-wrap
 #| msgid "@code{parallel-builds} (default: @code{1})"
 msgid "@code{maximum-uid} (default: 2000)"
 msgstr "@code{parallel-builds} (default: @code{1})"
 
 #. type: table
-#: doc/guix.texi:14634
+#: doc/guix.texi:16803
 msgid "Maximum UID to display in SDDM."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14635
+#: doc/guix.texi:16804
 #, no-wrap
 msgid "@code{remember-last-user?} (default #t)"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14637
+#: doc/guix.texi:16806
 msgid "Remember last user."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14638
+#: doc/guix.texi:16807
 #, no-wrap
 msgid "@code{remember-last-session?} (default #t)"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14640
+#: doc/guix.texi:16809
 msgid "Remember last session."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14641
+#: doc/guix.texi:16810
 #, no-wrap
 msgid "@code{hide-users} (default \"\")"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14643
+#: doc/guix.texi:16812
 msgid "Usernames to hide from SDDM greeter."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14644
+#: doc/guix.texi:16813
 #, no-wrap
 msgid "@code{hide-shells} (default @code{#~(string-append #$shadow \"/sbin/nologin\")})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14646
+#: doc/guix.texi:16815
 msgid "Users with shells listed will be hidden from the SDDM greeter."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14647
+#: doc/guix.texi:16816
 #, no-wrap
 msgid "@code{session-command} (default @code{#~(string-append #$sddm \"/share/sddm/scripts/wayland-session\")})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14649
+#: doc/guix.texi:16818
 msgid "Script to run before starting a wayland session."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14650
+#: doc/guix.texi:16819
 #, no-wrap
 msgid "@code{sessions-directory} (default \"/run/current-system/profile/share/wayland-sessions\")"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14652
+#: doc/guix.texi:16821
 msgid "Directory to look for desktop files starting wayland sessions."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14656
+#: doc/guix.texi:16825
 #, no-wrap
 msgid "@code{xauth-path} (default @code{#~(string-append #$xauth \"/bin/xauth\")})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14658
+#: doc/guix.texi:16827
 msgid "Path to xauth."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14659
+#: doc/guix.texi:16828
 #, no-wrap
 msgid "@code{xephyr-path} (default @code{#~(string-append #$xorg-server \"/bin/Xephyr\")})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14661
+#: doc/guix.texi:16830
 msgid "Path to Xephyr."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14662
+#: doc/guix.texi:16831
 #, no-wrap
 msgid "@code{xdisplay-start} (default @code{#~(string-append #$sddm \"/share/sddm/scripts/Xsetup\")})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14664
+#: doc/guix.texi:16833
 msgid "Script to run after starting xorg-server."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14665
+#: doc/guix.texi:16834
 #, no-wrap
 msgid "@code{xdisplay-stop} (default @code{#~(string-append #$sddm \"/share/sddm/scripts/Xstop\")})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14667
+#: doc/guix.texi:16836
 msgid "Script to run before stopping xorg-server."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14668
+#: doc/guix.texi:16837
 #, no-wrap
 msgid "@code{xsession-command} (default: @code{xinitrc})"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14671
+#: doc/guix.texi:16840
 #, no-wrap
 msgid "@code{xsessions-directory} (default: \"/run/current-system/profile/share/xsessions\")"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14673
+#: doc/guix.texi:16842
 msgid "Directory to look for desktop files starting X sessions."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14674
+#: doc/guix.texi:16843
 #, no-wrap
 msgid "@code{minimum-vt} (default: 7)"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14676
+#: doc/guix.texi:16845
 msgid "Minimum VT to use."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14677
+#: doc/guix.texi:16846
 #, no-wrap
 msgid "@code{auto-login-user} (default \"\")"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14679
+#: doc/guix.texi:16848
 msgid "User to use for auto-login."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14680
+#: doc/guix.texi:16849
 #, no-wrap
 msgid "@code{auto-login-session} (default \"\")"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14682
+#: doc/guix.texi:16851
 msgid "Desktop file to use for auto-login."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14683
+#: doc/guix.texi:16852
 #, no-wrap
 msgid "@code{relogin?} (default #f)"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14685
+#: doc/guix.texi:16854
 msgid "Relogin after logout."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:14690
+#: doc/guix.texi:16859
 #, no-wrap
 msgid "X11 login"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:14691
+#: doc/guix.texi:16860
 #, no-wrap
 msgid "{Scheme Variable} sddm-service-type"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:14695
+#: doc/guix.texi:16864
 msgid "This is the type of the service to run the @uref{https://github.com/sddm/sddm,SDDM display manager}.  Its value must be a @code{sddm-configuration} record (see below)."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:14697
+#: doc/guix.texi:16866
 msgid "Here's an example use:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:14703
+#: doc/guix.texi:16872
 #, no-wrap
 msgid ""
 "(service sddm-service-type\n"
@@ -26910,272 +31037,272 @@ msgid ""
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:14709
+#: doc/guix.texi:16878
 #, fuzzy
 #| msgid "This data type represents build machines to which the daemon may offload builds.  The important fields are:"
 msgid "This data type represents the configuration of the SDDM login manager.  The available fields are:"
 msgstr "Этот тип данных представляет машины для сборки, на которые демон может разгружать сборки. Важные поля:"
 
 #. type: item
-#: doc/guix.texi:14711
+#: doc/guix.texi:16880
 #, fuzzy, no-wrap
 #| msgid "@code{speed} (default: @code{1.0})"
 msgid "@code{sddm} (default: @code{sddm})"
 msgstr "@code{speed} (default: @code{1.0})"
 
 #. type: table
-#: doc/guix.texi:14713
+#: doc/guix.texi:16882
 #, fuzzy
 #| msgid "The package data type."
 msgid "The SDDM package to use."
 msgstr "Тип данных пакет"
 
 #. type: item
-#: doc/guix.texi:14714
+#: doc/guix.texi:16883
 #, fuzzy, no-wrap
 #| msgid "@code{speed} (default: @code{1.0})"
 msgid "@code{display-server} (default: @code{\"x11\"})"
 msgstr "@code{speed} (default: @code{1.0})"
 
 #. type: table
-#: doc/guix.texi:14716
+#: doc/guix.texi:16885
 msgid "This must be either @code{\"x11\"} or @code{\"wayland\"}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14719
+#: doc/guix.texi:16888
 #, fuzzy, no-wrap
 #| msgid "@code{port} (default: @code{22})"
 msgid "@code{auto-login-user} (default: @code{\"\"})"
 msgstr "@code{port} (default: @code{22})"
 
 #. type: table
-#: doc/guix.texi:14722
+#: doc/guix.texi:16891
 msgid "If non-empty, this is the user account under which to log in automatically."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14723
+#: doc/guix.texi:16892
 #, fuzzy, no-wrap
 #| msgid "@code{compression-level} (default: @code{3})"
 msgid "@code{auto-login-session} (default: @code{\"\"})"
 msgstr "@code{compression-level} (default: @code{3})"
 
 #. type: table
-#: doc/guix.texi:14726
+#: doc/guix.texi:16895
 msgid "If non-empty, this is the @file{.desktop} file name to use as the auto-login session."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:14729
+#: doc/guix.texi:16898
 #, no-wrap
 msgid "Xorg, configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:14730
+#: doc/guix.texi:16899
 #, no-wrap
 msgid "{Data Type} xorg-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:14735
-msgid "This data type represents the configuration of the Xorg graphical display server.  Note that there is not Xorg service; instead, the X server is started by a ``display manager'' such as GDM, SDDM, and SLiM.  Thus, the configuration of these display managers aggregates an @code{xorg-configuration} record."
+#: doc/guix.texi:16904
+msgid "This data type represents the configuration of the Xorg graphical display server.  Note that there is no Xorg service; instead, the X server is started by a ``display manager'' such as GDM, SDDM, and SLiM.  Thus, the configuration of these display managers aggregates an @code{xorg-configuration} record."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14737
+#: doc/guix.texi:16906
 #, no-wrap
 msgid "@code{modules} (default: @code{%default-xorg-modules})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14740
+#: doc/guix.texi:16909
 msgid "This is a list of @dfn{module packages} loaded by the Xorg server---e.g., @code{xf86-video-vesa}, @code{xf86-input-keyboard}, and so on."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14741
+#: doc/guix.texi:16910
 #, no-wrap
 msgid "@code{fonts} (default: @code{%default-xorg-fonts})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14743
+#: doc/guix.texi:16912
 msgid "This is a list of font directories to add to the server's @dfn{font path}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14744
+#: doc/guix.texi:16913
 #, no-wrap
 msgid "@code{drivers} (default: @code{'()})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14748
+#: doc/guix.texi:16917
 msgid "This must be either the empty list, in which case Xorg chooses a graphics driver automatically, or a list of driver names that will be tried in this order---e.g., @code{(\"modesetting\" \"vesa\")}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14749
+#: doc/guix.texi:16918
 #, no-wrap
 msgid "@code{resolutions} (default: @code{'()})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14753
+#: doc/guix.texi:16922
 msgid "When @code{resolutions} is the empty list, Xorg chooses an appropriate screen resolution.  Otherwise, it must be a list of resolutions---e.g., @code{((1024 768) (640 480))}."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:14754
+#: doc/guix.texi:16923
 #, no-wrap
 msgid "keyboard layout, for Xorg"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:14755
+#: doc/guix.texi:16924
 #, no-wrap
 msgid "keymap, for Xorg"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14759
+#: doc/guix.texi:16928
 msgid "If this is @code{#f}, Xorg uses the default keyboard layout---usually US English (``qwerty'') for a 105-key PC keyboard."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14763
+#: doc/guix.texi:16932
 msgid "Otherwise this must be a @code{keyboard-layout} object specifying the keyboard layout in use when Xorg is running.  @xref{Keyboard Layout}, for more information on how to specify the keyboard layout."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14764
+#: doc/guix.texi:16933 doc/guix.texi:29386
 #, no-wrap
 msgid "@code{extra-config} (default: @code{'()})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14767
+#: doc/guix.texi:16936 doc/guix.texi:29390
 msgid "This is a list of strings or objects appended to the configuration file.  It is used to pass extra text to be added verbatim to the configuration file."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14768
+#: doc/guix.texi:16937
 #, no-wrap
 msgid "@code{server} (default: @code{xorg-server})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14770
+#: doc/guix.texi:16939
 msgid "This is the package providing the Xorg server."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14771
+#: doc/guix.texi:16940
 #, no-wrap
 msgid "@code{server-arguments} (default: @code{%default-xorg-server-arguments})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14774
+#: doc/guix.texi:16943
 msgid "This is the list of command-line arguments to pass to the X server.  The default is @code{-nolisten tcp}."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:14777
+#: doc/guix.texi:16946
 #, no-wrap
 msgid "{Scheme Procedure} set-xorg-configuration @var{config} @"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:14781
+#: doc/guix.texi:16950
 msgid "[@var{login-manager-service-type}] Tell the log-in manager (of type @var{login-manager-service-type}) to use @var{config}, an @code{<xorg-configuration>} record."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:14785
+#: doc/guix.texi:16954
 msgid "Since the Xorg configuration is embedded in the log-in manager's configuration---e.g., @code{gdm-configuration}---this procedure provides a shorthand to set the Xorg configuration."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:14787
+#: doc/guix.texi:16956
 #, no-wrap
 msgid "{Scheme Procedure} xorg-start-command [@var{config}]"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:14791
+#: doc/guix.texi:16960
 msgid "Return a @code{startx} script in which the modules, fonts, etc. specified in @var{config}, are available.  The result should be used in place of @code{startx}."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:14793
+#: doc/guix.texi:16962
 msgid "Usually the X server is started by a login manager."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:14796
+#: doc/guix.texi:16965
 #, no-wrap
 msgid "{Scheme Procedure} screen-locker-service @var{package} [@var{program}]"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:14800
+#: doc/guix.texi:16969
 msgid "Add @var{package}, a package for a screen locker or screen saver whose command is @var{program}, to the set of setuid programs and add a PAM entry for it.  For example:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:14803
+#: doc/guix.texi:16972
 #, no-wrap
 msgid "(screen-locker-service xlockmore \"xlock\")\n"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:14806
+#: doc/guix.texi:16975
 msgid "makes the good ol' XlockMore usable."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:14812
+#: doc/guix.texi:16981
 #, no-wrap
 msgid "printer support with CUPS"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:14816
+#: doc/guix.texi:16985
 msgid "The @code{(gnu services cups)} module provides a Guix service definition for the CUPS printing service.  To add printer support to a Guix system, add a @code{cups-service} to the operating system definition:"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:14817
+#: doc/guix.texi:16986
 #, no-wrap
 msgid "{Scheme Variable} cups-service-type"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:14821
+#: doc/guix.texi:16990
 msgid "The service type for the CUPS print server.  Its value should be a valid CUPS configuration (see below).  To use the default settings, simply write:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:14823
+#: doc/guix.texi:16992
 #, no-wrap
 msgid "(service cups-service-type)\n"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:14833
+#: doc/guix.texi:17002
 msgid "The CUPS configuration controls the basic things about your CUPS installation: what interfaces it listens on, what to do if a print job fails, how much logging to do, and so on.  To actually add a printer, you have to visit the @url{http://localhost:631} URL, or use a tool such as GNOME's printer configuration services.  By default, configuring a CUPS service will generate a self-signed certificate if needed, for secure connections to the print server."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:14838
+#: doc/guix.texi:17007
 msgid "Suppose you want to enable the Web interface of CUPS and also add support for Epson printers @i{via} the @code{escpr} package and for HP printers @i{via} the @code{hplip-minimal} package.  You can do that directly, like this (you need to use the @code{(gnu packages cups)} module):"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:14845
+#: doc/guix.texi:17014
 #, no-wrap
 msgid ""
 "(service cups-service-type\n"
@@ -27186,1560 +31313,1560 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:14850
+#: doc/guix.texi:17019
 msgid "Note: If you wish to use the Qt5 based GUI which comes with the hplip package then it is suggested that you install the @code{hplip} package, either in your OS configuration file or as your user."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:14857
+#: doc/guix.texi:17026
 msgid "The available configuration parameters follow.  Each parameter definition is preceded by its type; for example, @samp{string-list foo} indicates that the @code{foo} parameter should be specified as a list of strings.  There is also a way to specify the configuration as a string, if you have an old @code{cupsd.conf} file that you want to port over from some other system; see the end for more details."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:14868
+#: doc/guix.texi:17037
 msgid "Available @code{cups-configuration} fields are:"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14869
+#: doc/guix.texi:17038
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} package cups"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14871 doc/guix.texi:15639
+#: doc/guix.texi:17040 doc/guix.texi:17808
 msgid "The CUPS package."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14873
+#: doc/guix.texi:17042
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} package-list extensions"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14875
+#: doc/guix.texi:17044
 msgid "Drivers and other extensions to the CUPS package."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14877
+#: doc/guix.texi:17046
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} files-configuration files-configuration"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14880
+#: doc/guix.texi:17049
 msgid "Configuration of where to write logs, what directories to use for print spools, and related privileged configuration parameters."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14882
+#: doc/guix.texi:17051
 msgid "Available @code{files-configuration} fields are:"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14883
+#: doc/guix.texi:17052
 #, no-wrap
 msgid "{@code{files-configuration} parameter} log-location access-log"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14891
+#: doc/guix.texi:17060
 msgid "Defines the access log filename.  Specifying a blank filename disables access log generation.  The value @code{stderr} causes log entries to be sent to the standard error file when the scheduler is running in the foreground, or to the system log daemon when run in the background.  The value @code{syslog} causes log entries to be sent to the system log daemon.  The server name may be included in filenames using the string @code{%s}, as in @code{/var/log/cups/%s-access_log}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14893
+#: doc/guix.texi:17062
 msgid "Defaults to @samp{\"/var/log/cups/access_log\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14895
+#: doc/guix.texi:17064
 #, no-wrap
 msgid "{@code{files-configuration} parameter} file-name cache-dir"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14897
+#: doc/guix.texi:17066
 msgid "Where CUPS should cache data."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14899
+#: doc/guix.texi:17068
 msgid "Defaults to @samp{\"/var/cache/cups\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14901
+#: doc/guix.texi:17070
 #, no-wrap
 msgid "{@code{files-configuration} parameter} string config-file-perm"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14904
+#: doc/guix.texi:17073
 msgid "Specifies the permissions for all configuration files that the scheduler writes."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14910
+#: doc/guix.texi:17079
 msgid "Note that the permissions for the printers.conf file are currently masked to only allow access from the scheduler user (typically root).  This is done because printer device URIs sometimes contain sensitive authentication information that should not be generally known on the system.  There is no way to disable this security feature."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14912
+#: doc/guix.texi:17081
 msgid "Defaults to @samp{\"0640\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14914
+#: doc/guix.texi:17083
 #, no-wrap
 msgid "{@code{files-configuration} parameter} log-location error-log"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14922
+#: doc/guix.texi:17091
 msgid "Defines the error log filename.  Specifying a blank filename disables error log generation.  The value @code{stderr} causes log entries to be sent to the standard error file when the scheduler is running in the foreground, or to the system log daemon when run in the background.  The value @code{syslog} causes log entries to be sent to the system log daemon.  The server name may be included in filenames using the string @code{%s}, as in @code{/var/log/cups/%s-error_log}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14924
+#: doc/guix.texi:17093
 msgid "Defaults to @samp{\"/var/log/cups/error_log\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14926
+#: doc/guix.texi:17095
 #, no-wrap
 msgid "{@code{files-configuration} parameter} string fatal-errors"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14929
+#: doc/guix.texi:17098
 msgid "Specifies which errors are fatal, causing the scheduler to exit.  The kind strings are:"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14933
+#: doc/guix.texi:17102
 msgid "No errors are fatal."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14936
+#: doc/guix.texi:17105
 msgid "All of the errors below are fatal."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14937
+#: doc/guix.texi:17106
 #, no-wrap
 msgid "browse"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14940
+#: doc/guix.texi:17109
 msgid "Browsing initialization errors are fatal, for example failed connections to the DNS-SD daemon."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14941
+#: doc/guix.texi:17110
 #, no-wrap
 msgid "config"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14943
+#: doc/guix.texi:17112
 msgid "Configuration file syntax errors are fatal."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14944
+#: doc/guix.texi:17113
 #, no-wrap
 msgid "listen"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14947
+#: doc/guix.texi:17116
 msgid "Listen or Port errors are fatal, except for IPv6 failures on the loopback or @code{any} addresses."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14948
+#: doc/guix.texi:17117
 #, no-wrap
 msgid "log"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14950
+#: doc/guix.texi:17119
 msgid "Log file creation or write errors are fatal."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14951
+#: doc/guix.texi:17120
 #, no-wrap
 msgid "permissions"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14954
+#: doc/guix.texi:17123
 msgid "Bad startup file permissions are fatal, for example shared TLS certificate and key files with world-read permissions."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14957
+#: doc/guix.texi:17126
 msgid "Defaults to @samp{\"all -browse\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14959
+#: doc/guix.texi:17128
 #, no-wrap
 msgid "{@code{files-configuration} parameter} boolean file-device?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14962
+#: doc/guix.texi:17131
 msgid "Specifies whether the file pseudo-device can be used for new printer queues.  The URI @uref{file:///dev/null} is always allowed."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14964 doc/guix.texi:15034 doc/guix.texi:15076
-#: doc/guix.texi:15096 doc/guix.texi:15102 doc/guix.texi:15118
-#: doc/guix.texi:15206 doc/guix.texi:15300 doc/guix.texi:15613
-#: doc/guix.texi:15626 doc/guix.texi:17930 doc/guix.texi:18036
-#: doc/guix.texi:18101 doc/guix.texi:18110 doc/guix.texi:21998
-#: doc/guix.texi:22012 doc/guix.texi:22034 doc/guix.texi:22149
-#: doc/guix.texi:22163 doc/guix.texi:22184 doc/guix.texi:22205
-#: doc/guix.texi:22212 doc/guix.texi:22257 doc/guix.texi:22264
-#: doc/guix.texi:22772 doc/guix.texi:22786 doc/guix.texi:22958
-#: doc/guix.texi:23003 doc/guix.texi:23090 doc/guix.texi:23291
-#: doc/guix.texi:23324 doc/guix.texi:23464 doc/guix.texi:23475
-#: doc/guix.texi:23725 doc/guix.texi:24367 doc/guix.texi:24376
-#: doc/guix.texi:24384 doc/guix.texi:24392 doc/guix.texi:24408
-#: doc/guix.texi:24424 doc/guix.texi:24432 doc/guix.texi:24440
-#: doc/guix.texi:24449 doc/guix.texi:24458 doc/guix.texi:24474
-#: doc/guix.texi:24538 doc/guix.texi:24644 doc/guix.texi:24652
-#: doc/guix.texi:24660 doc/guix.texi:24685 doc/guix.texi:24739
-#: doc/guix.texi:24787 doc/guix.texi:24988 doc/guix.texi:24995
+#: doc/guix.texi:17133 doc/guix.texi:17203 doc/guix.texi:17245
+#: doc/guix.texi:17265 doc/guix.texi:17271 doc/guix.texi:17287
+#: doc/guix.texi:17375 doc/guix.texi:17469 doc/guix.texi:17782
+#: doc/guix.texi:17795 doc/guix.texi:20149 doc/guix.texi:20255
+#: doc/guix.texi:20320 doc/guix.texi:20329 doc/guix.texi:24340
+#: doc/guix.texi:24354 doc/guix.texi:24376 doc/guix.texi:24491
+#: doc/guix.texi:24505 doc/guix.texi:24526 doc/guix.texi:24547
+#: doc/guix.texi:24554 doc/guix.texi:24599 doc/guix.texi:24606
+#: doc/guix.texi:25128 doc/guix.texi:25142 doc/guix.texi:25314
+#: doc/guix.texi:25359 doc/guix.texi:25446 doc/guix.texi:25648
+#: doc/guix.texi:25681 doc/guix.texi:25821 doc/guix.texi:25832
+#: doc/guix.texi:26083 doc/guix.texi:27556 doc/guix.texi:27565
+#: doc/guix.texi:27573 doc/guix.texi:27581 doc/guix.texi:27597
+#: doc/guix.texi:27613 doc/guix.texi:27621 doc/guix.texi:27629
+#: doc/guix.texi:27638 doc/guix.texi:27647 doc/guix.texi:27663
+#: doc/guix.texi:27727 doc/guix.texi:27833 doc/guix.texi:27841
+#: doc/guix.texi:27849 doc/guix.texi:27874 doc/guix.texi:27928
+#: doc/guix.texi:27976 doc/guix.texi:28177 doc/guix.texi:28184
 msgid "Defaults to @samp{#f}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14966
+#: doc/guix.texi:17135
 #, no-wrap
 msgid "{@code{files-configuration} parameter} string group"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14969
+#: doc/guix.texi:17138
 msgid "Specifies the group name or ID that will be used when executing external programs."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14971 doc/guix.texi:15051
+#: doc/guix.texi:17140 doc/guix.texi:17220
 msgid "Defaults to @samp{\"lp\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14973
+#: doc/guix.texi:17142
 #, no-wrap
 msgid "{@code{files-configuration} parameter} string log-file-perm"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14975
+#: doc/guix.texi:17144
 msgid "Specifies the permissions for all log files that the scheduler writes."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14977
+#: doc/guix.texi:17146
 msgid "Defaults to @samp{\"0644\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14979
+#: doc/guix.texi:17148
 #, no-wrap
 msgid "{@code{files-configuration} parameter} log-location page-log"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14987
+#: doc/guix.texi:17156
 msgid "Defines the page log filename.  Specifying a blank filename disables page log generation.  The value @code{stderr} causes log entries to be sent to the standard error file when the scheduler is running in the foreground, or to the system log daemon when run in the background.  The value @code{syslog} causes log entries to be sent to the system log daemon.  The server name may be included in filenames using the string @code{%s}, as in @code{/var/log/cups/%s-page_log}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14989
+#: doc/guix.texi:17158
 msgid "Defaults to @samp{\"/var/log/cups/page_log\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14991
+#: doc/guix.texi:17160
 #, no-wrap
 msgid "{@code{files-configuration} parameter} string remote-root"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14994
+#: doc/guix.texi:17163
 msgid "Specifies the username that is associated with unauthenticated accesses by clients claiming to be the root user.  The default is @code{remroot}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14996
+#: doc/guix.texi:17165
 msgid "Defaults to @samp{\"remroot\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14998
+#: doc/guix.texi:17167
 #, no-wrap
 msgid "{@code{files-configuration} parameter} file-name request-root"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15001
+#: doc/guix.texi:17170
 msgid "Specifies the directory that contains print jobs and other HTTP request data."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15003
+#: doc/guix.texi:17172
 msgid "Defaults to @samp{\"/var/spool/cups\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15005
+#: doc/guix.texi:17174
 #, no-wrap
 msgid "{@code{files-configuration} parameter} sandboxing sandboxing"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15010
+#: doc/guix.texi:17179
 msgid "Specifies the level of security sandboxing that is applied to print filters, backends, and other child processes of the scheduler; either @code{relaxed} or @code{strict}.  This directive is currently only used/supported on macOS."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15012
+#: doc/guix.texi:17181
 msgid "Defaults to @samp{strict}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15014
+#: doc/guix.texi:17183
 #, no-wrap
 msgid "{@code{files-configuration} parameter} file-name server-keychain"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15019
-msgid "Specifies the location of TLS certificates and private keys.  CUPS will look for public and private keys in this directory: a @code{.crt} files for PEM-encoded certificates and corresponding @code{.key} files for PEM-encoded private keys."
+#: doc/guix.texi:17188
+msgid "Specifies the location of TLS certificates and private keys.  CUPS will look for public and private keys in this directory: @file{.crt} files for PEM-encoded certificates and corresponding @file{.key} files for PEM-encoded private keys."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15021
+#: doc/guix.texi:17190
 msgid "Defaults to @samp{\"/etc/cups/ssl\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15023
+#: doc/guix.texi:17192
 #, no-wrap
 msgid "{@code{files-configuration} parameter} file-name server-root"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15025
+#: doc/guix.texi:17194
 msgid "Specifies the directory containing the server configuration files."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15027
+#: doc/guix.texi:17196
 msgid "Defaults to @samp{\"/etc/cups\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15029
+#: doc/guix.texi:17198
 #, no-wrap
 msgid "{@code{files-configuration} parameter} boolean sync-on-close?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15032
+#: doc/guix.texi:17201
 msgid "Specifies whether the scheduler calls fsync(2) after writing configuration or state files."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15036
+#: doc/guix.texi:17205
 #, no-wrap
 msgid "{@code{files-configuration} parameter} space-separated-string-list system-group"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15038
+#: doc/guix.texi:17207
 msgid "Specifies the group(s) to use for @code{@@SYSTEM} group authentication."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15040
+#: doc/guix.texi:17209
 #, no-wrap
 msgid "{@code{files-configuration} parameter} file-name temp-dir"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15042
+#: doc/guix.texi:17211
 msgid "Specifies the directory where temporary files are stored."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15044
+#: doc/guix.texi:17213
 msgid "Defaults to @samp{\"/var/spool/cups/tmp\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15046
+#: doc/guix.texi:17215
 #, no-wrap
 msgid "{@code{files-configuration} parameter} string user"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15049
+#: doc/guix.texi:17218
 msgid "Specifies the user name or ID that is used when running external programs."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15053
+#: doc/guix.texi:17222
 #, no-wrap
 msgid "{@code{files-configuration} parameter} string set-env"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15055
+#: doc/guix.texi:17224
 msgid "Set the specified environment variable to be passed to child processes."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15057
+#: doc/guix.texi:17226
 msgid "Defaults to @samp{\"variable value\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15060
+#: doc/guix.texi:17229
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} access-log-level access-log-level"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15067
+#: doc/guix.texi:17236
 msgid "Specifies the logging level for the AccessLog file.  The @code{config} level logs when printers and classes are added, deleted, or modified and when configuration files are accessed or updated.  The @code{actions} level logs when print jobs are submitted, held, released, modified, or canceled, and any of the conditions for @code{config}.  The @code{all} level logs all requests."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15069
+#: doc/guix.texi:17238
 msgid "Defaults to @samp{actions}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15071
+#: doc/guix.texi:17240
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} boolean auto-purge-jobs?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15074
+#: doc/guix.texi:17243
 msgid "Specifies whether to purge job history data automatically when it is no longer required for quotas."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15078
+#: doc/guix.texi:17247
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} comma-separated-string-list browse-dns-sd-sub-types"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15082
+#: doc/guix.texi:17251
 msgid "Specifies a list of DNS-SD sub-types to advertise for each shared printer.  For example, @samp{\"_cups\" \"_print\"} will tell network clients that both CUPS sharing and IPP Everywhere are supported."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15084
+#: doc/guix.texi:17253
 msgid "Defaults to @samp{\"_cups\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15086
+#: doc/guix.texi:17255
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} browse-local-protocols browse-local-protocols"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15088
+#: doc/guix.texi:17257
 msgid "Specifies which protocols to use for local printer sharing."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15090
+#: doc/guix.texi:17259
 msgid "Defaults to @samp{dnssd}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15092
+#: doc/guix.texi:17261
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} boolean browse-web-if?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15094
+#: doc/guix.texi:17263
 msgid "Specifies whether the CUPS web interface is advertised."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15098
+#: doc/guix.texi:17267
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} boolean browsing?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15100
+#: doc/guix.texi:17269
 msgid "Specifies whether shared printers are advertised."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15104
+#: doc/guix.texi:17273
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} string classification"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15109
-msgid "Specifies the security classification of the server.  Any valid banner name can be used, including \"classified\", \"confidential\", \"secret\", \"topsecret\", and \"unclassified\", or the banner can be omitted to disable secure printing functions."
-msgstr ""
-
-#. type: deftypevr
-#: doc/guix.texi:15111 doc/guix.texi:15448 doc/guix.texi:17151
-#: doc/guix.texi:17163 doc/guix.texi:17937 doc/guix.texi:17951
-#: doc/guix.texi:17958 doc/guix.texi:17965 doc/guix.texi:17995
-#: doc/guix.texi:18093 doc/guix.texi:19156 doc/guix.texi:19182
-#: doc/guix.texi:19218 doc/guix.texi:19283 doc/guix.texi:19322
-#: doc/guix.texi:19381 doc/guix.texi:19390 doc/guix.texi:23430
-#: doc/guix.texi:23438 doc/guix.texi:23446 doc/guix.texi:23454
-#: doc/guix.texi:23732 doc/guix.texi:24210 doc/guix.texi:24218
-#: doc/guix.texi:24226 doc/guix.texi:24334 doc/guix.texi:24359
-#: doc/guix.texi:24490 doc/guix.texi:24498 doc/guix.texi:24506
-#: doc/guix.texi:24514 doc/guix.texi:24522 doc/guix.texi:24530
-#: doc/guix.texi:24553 doc/guix.texi:24561 doc/guix.texi:24613
-#: doc/guix.texi:24629 doc/guix.texi:24637 doc/guix.texi:24676
-#: doc/guix.texi:24699 doc/guix.texi:24721 doc/guix.texi:24728
-#: doc/guix.texi:24763 doc/guix.texi:24771 doc/guix.texi:24795
-#: doc/guix.texi:24827 doc/guix.texi:24856 doc/guix.texi:24863
-#: doc/guix.texi:24870 doc/guix.texi:24878 doc/guix.texi:24892
-#: doc/guix.texi:24901 doc/guix.texi:24911 doc/guix.texi:24918
-#: doc/guix.texi:24925 doc/guix.texi:24932 doc/guix.texi:25003
-#: doc/guix.texi:25010 doc/guix.texi:25017 doc/guix.texi:25026
-#: doc/guix.texi:25042 doc/guix.texi:25049 doc/guix.texi:25056
-#: doc/guix.texi:25063 doc/guix.texi:25071 doc/guix.texi:25079
+#: doc/guix.texi:17278
+msgid "Specifies the security classification of the server.  Any valid banner name can be used, including @samp{\"classified\"}, @samp{\"confidential\"}, @samp{\"secret\"}, @samp{\"topsecret\"}, and @samp{\"unclassified\"}, or the banner can be omitted to disable secure printing functions."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17280 doc/guix.texi:17617 doc/guix.texi:19370
+#: doc/guix.texi:19382 doc/guix.texi:20156 doc/guix.texi:20170
+#: doc/guix.texi:20177 doc/guix.texi:20184 doc/guix.texi:20214
+#: doc/guix.texi:20312 doc/guix.texi:21376 doc/guix.texi:21402
+#: doc/guix.texi:21438 doc/guix.texi:21503 doc/guix.texi:21542
+#: doc/guix.texi:21601 doc/guix.texi:21610 doc/guix.texi:25787
+#: doc/guix.texi:25795 doc/guix.texi:25803 doc/guix.texi:25811
+#: doc/guix.texi:26090 doc/guix.texi:27399 doc/guix.texi:27407
+#: doc/guix.texi:27415 doc/guix.texi:27523 doc/guix.texi:27548
+#: doc/guix.texi:27679 doc/guix.texi:27687 doc/guix.texi:27695
+#: doc/guix.texi:27703 doc/guix.texi:27711 doc/guix.texi:27719
+#: doc/guix.texi:27742 doc/guix.texi:27750 doc/guix.texi:27802
+#: doc/guix.texi:27818 doc/guix.texi:27826 doc/guix.texi:27865
+#: doc/guix.texi:27888 doc/guix.texi:27910 doc/guix.texi:27917
+#: doc/guix.texi:27952 doc/guix.texi:27960 doc/guix.texi:27984
+#: doc/guix.texi:28016 doc/guix.texi:28045 doc/guix.texi:28052
+#: doc/guix.texi:28059 doc/guix.texi:28067 doc/guix.texi:28081
+#: doc/guix.texi:28090 doc/guix.texi:28100 doc/guix.texi:28107
+#: doc/guix.texi:28114 doc/guix.texi:28121 doc/guix.texi:28192
+#: doc/guix.texi:28199 doc/guix.texi:28206 doc/guix.texi:28215
+#: doc/guix.texi:28231 doc/guix.texi:28238 doc/guix.texi:28245
+#: doc/guix.texi:28252 doc/guix.texi:28260 doc/guix.texi:28268
 msgid "Defaults to @samp{\"\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15113
+#: doc/guix.texi:17282
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} boolean classify-override?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15116
+#: doc/guix.texi:17285
 msgid "Specifies whether users may override the classification (cover page) of individual print jobs using the @code{job-sheets} option."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15120
+#: doc/guix.texi:17289
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} default-auth-type default-auth-type"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15122
+#: doc/guix.texi:17291
 msgid "Specifies the default type of authentication to use."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15124
+#: doc/guix.texi:17293
 msgid "Defaults to @samp{Basic}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15126
+#: doc/guix.texi:17295
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} default-encryption default-encryption"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15128
+#: doc/guix.texi:17297
 msgid "Specifies whether encryption will be used for authenticated requests."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15130
+#: doc/guix.texi:17299
 msgid "Defaults to @samp{Required}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15132
+#: doc/guix.texi:17301
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} string default-language"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15134
+#: doc/guix.texi:17303
 msgid "Specifies the default language to use for text and web content."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15136
+#: doc/guix.texi:17305
 msgid "Defaults to @samp{\"en\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15138
+#: doc/guix.texi:17307
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} string default-paper-size"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15143
+#: doc/guix.texi:17312
 msgid "Specifies the default paper size for new print queues.  @samp{\"Auto\"} uses a locale-specific default, while @samp{\"None\"} specifies there is no default paper size.  Specific size names are typically @samp{\"Letter\"} or @samp{\"A4\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15145
+#: doc/guix.texi:17314
 msgid "Defaults to @samp{\"Auto\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15147
+#: doc/guix.texi:17316
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} string default-policy"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15149
+#: doc/guix.texi:17318
 msgid "Specifies the default access policy to use."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15151
+#: doc/guix.texi:17320
 msgid "Defaults to @samp{\"default\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15153
+#: doc/guix.texi:17322
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} boolean default-shared?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15155
+#: doc/guix.texi:17324
 msgid "Specifies whether local printers are shared by default."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15157 doc/guix.texi:15237 doc/guix.texi:15533
-#: doc/guix.texi:18027 doc/guix.texi:18078 doc/guix.texi:18085
-#: doc/guix.texi:21827 doc/guix.texi:21855 doc/guix.texi:21975
-#: doc/guix.texi:21982 doc/guix.texi:21990 doc/guix.texi:22027
-#: doc/guix.texi:22041 doc/guix.texi:22126 doc/guix.texi:22133
-#: doc/guix.texi:22141 doc/guix.texi:22639 doc/guix.texi:22779
-#: doc/guix.texi:22965 doc/guix.texi:22972 doc/guix.texi:22994
-#: doc/guix.texi:23033 doc/guix.texi:23053 doc/guix.texi:23067
-#: doc/guix.texi:23279 doc/guix.texi:24312 doc/guix.texi:24400
-#: doc/guix.texi:24416 doc/guix.texi:24466
+#: doc/guix.texi:17326 doc/guix.texi:17406 doc/guix.texi:17702
+#: doc/guix.texi:20246 doc/guix.texi:20297 doc/guix.texi:20304
+#: doc/guix.texi:24169 doc/guix.texi:24197 doc/guix.texi:24317
+#: doc/guix.texi:24324 doc/guix.texi:24332 doc/guix.texi:24369
+#: doc/guix.texi:24383 doc/guix.texi:24468 doc/guix.texi:24475
+#: doc/guix.texi:24483 doc/guix.texi:24995 doc/guix.texi:25135
+#: doc/guix.texi:25321 doc/guix.texi:25328 doc/guix.texi:25350
+#: doc/guix.texi:25389 doc/guix.texi:25409 doc/guix.texi:25423
+#: doc/guix.texi:25636 doc/guix.texi:27501 doc/guix.texi:27589
+#: doc/guix.texi:27605 doc/guix.texi:27655
 msgid "Defaults to @samp{#t}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15159
+#: doc/guix.texi:17328
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer dirty-clean-interval"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15163
+#: doc/guix.texi:17332
 msgid "Specifies the delay for updating of configuration and state files, in seconds.  A value of 0 causes the update to happen as soon as possible, typically within a few milliseconds."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15165 doc/guix.texi:15213 doc/guix.texi:15222
-#: doc/guix.texi:15243 doc/guix.texi:15540
+#: doc/guix.texi:17334 doc/guix.texi:17382 doc/guix.texi:17391
+#: doc/guix.texi:17412 doc/guix.texi:17709
 msgid "Defaults to @samp{30}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15167
+#: doc/guix.texi:17336
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} error-policy error-policy"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15173
+#: doc/guix.texi:17342
 msgid "Specifies what to do when an error occurs.  Possible values are @code{abort-job}, which will discard the failed print job; @code{retry-job}, which will retry the job at a later time; @code{retry-current-job}, which retries the failed job immediately; and @code{stop-printer}, which stops the printer."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15175
+#: doc/guix.texi:17344
 msgid "Defaults to @samp{stop-printer}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15177
+#: doc/guix.texi:17346
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer filter-limit"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15185
+#: doc/guix.texi:17354
 msgid "Specifies the maximum cost of filters that are run concurrently, which can be used to minimize disk, memory, and CPU resource problems.  A limit of 0 disables filter limiting.  An average print to a non-PostScript printer needs a filter limit of about 200.  A PostScript printer needs about half that (100).  Setting the limit below these thresholds will effectively limit the scheduler to printing a single job at any time."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15187 doc/guix.texi:15195 doc/guix.texi:15250
-#: doc/guix.texi:15366 doc/guix.texi:15380 doc/guix.texi:15387
-#: doc/guix.texi:16593 doc/guix.texi:16609 doc/guix.texi:17255
-#: doc/guix.texi:17267 doc/guix.texi:18046 doc/guix.texi:18055
-#: doc/guix.texi:18063 doc/guix.texi:18071 doc/guix.texi:22655
-#: doc/guix.texi:22980 doc/guix.texi:24305 doc/guix.texi:24605
-#: doc/guix.texi:24779
+#: doc/guix.texi:17356 doc/guix.texi:17364 doc/guix.texi:17419
+#: doc/guix.texi:17535 doc/guix.texi:17549 doc/guix.texi:17556
+#: doc/guix.texi:18812 doc/guix.texi:18828 doc/guix.texi:19474
+#: doc/guix.texi:19486 doc/guix.texi:20265 doc/guix.texi:20274
+#: doc/guix.texi:20282 doc/guix.texi:20290 doc/guix.texi:25011
+#: doc/guix.texi:25336 doc/guix.texi:27494 doc/guix.texi:27794
+#: doc/guix.texi:27968
 msgid "Defaults to @samp{0}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15189
+#: doc/guix.texi:17358
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer filter-nice"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15193
+#: doc/guix.texi:17362
 msgid "Specifies the scheduling priority of filters that are run to print a job.  The nice value ranges from 0, the highest priority, to 19, the lowest priority."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15197
+#: doc/guix.texi:17366
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} host-name-lookups host-name-lookups"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15204
+#: doc/guix.texi:17373
 msgid "Specifies whether to do reverse lookups on connecting clients.  The @code{double} setting causes @code{cupsd} to verify that the hostname resolved from the address matches one of the addresses returned for that hostname.  Double lookups also prevent clients with unregistered addresses from connecting to your server.  Only set this option to @code{#t} or @code{double} if absolutely required."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15208
+#: doc/guix.texi:17377
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer job-kill-delay"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15211
+#: doc/guix.texi:17380
 msgid "Specifies the number of seconds to wait before killing the filters and backend associated with a canceled or held job."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15215
+#: doc/guix.texi:17384
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer job-retry-interval"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15220
+#: doc/guix.texi:17389
 msgid "Specifies the interval between retries of jobs in seconds.  This is typically used for fax queues but can also be used with normal print queues whose error policy is @code{retry-job} or @code{retry-current-job}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15224
+#: doc/guix.texi:17393
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer job-retry-limit"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15229
+#: doc/guix.texi:17398
 msgid "Specifies the number of retries that are done for jobs.  This is typically used for fax queues but can also be used with normal print queues whose error policy is @code{retry-job} or @code{retry-current-job}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15231 doc/guix.texi:23531 doc/guix.texi:23551
-#: doc/guix.texi:23567 doc/guix.texi:23581 doc/guix.texi:23588
-#: doc/guix.texi:23595 doc/guix.texi:23602 doc/guix.texi:23761
-#: doc/guix.texi:23777 doc/guix.texi:23784 doc/guix.texi:23791
-#: doc/guix.texi:23802 doc/guix.texi:24257 doc/guix.texi:24265
-#: doc/guix.texi:24273 doc/guix.texi:24297
+#: doc/guix.texi:17400 doc/guix.texi:25888 doc/guix.texi:25908
+#: doc/guix.texi:25924 doc/guix.texi:25938 doc/guix.texi:25945
+#: doc/guix.texi:25952 doc/guix.texi:25959 doc/guix.texi:26119
+#: doc/guix.texi:26135 doc/guix.texi:26142 doc/guix.texi:26149
+#: doc/guix.texi:26160 doc/guix.texi:27446 doc/guix.texi:27454
+#: doc/guix.texi:27462 doc/guix.texi:27486
 msgid "Defaults to @samp{5}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15233
+#: doc/guix.texi:17402
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} boolean keep-alive?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15235
+#: doc/guix.texi:17404
 msgid "Specifies whether to support HTTP keep-alive connections."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15239
+#: doc/guix.texi:17408
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer keep-alive-timeout"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15241
+#: doc/guix.texi:17410
 msgid "Specifies how long an idle client connection remains open, in seconds."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15245
+#: doc/guix.texi:17414
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer limit-request-body"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15248
+#: doc/guix.texi:17417
 msgid "Specifies the maximum size of print files, IPP requests, and HTML form data.  A limit of 0 disables the limit check."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15252
+#: doc/guix.texi:17421
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} multiline-string-list listen"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15259
+#: doc/guix.texi:17428
 msgid "Listens on the specified interfaces for connections.  Valid values are of the form @var{address}:@var{port}, where @var{address} is either an IPv6 address enclosed in brackets, an IPv4 address, or @code{*} to indicate all addresses.  Values can also be file names of local UNIX domain sockets.  The Listen directive is similar to the Port directive but allows you to restrict access to specific interfaces or networks."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15261
+#: doc/guix.texi:17430
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer listen-back-log"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15268
+#: doc/guix.texi:17437
 msgid "Specifies the number of pending connections that will be allowed.  This normally only affects very busy servers that have reached the MaxClients limit, but can also be triggered by large numbers of simultaneous connections.  When the limit is reached, the operating system will refuse additional connections until the scheduler can accept the pending ones."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15270
+#: doc/guix.texi:17439
 msgid "Defaults to @samp{128}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15272
+#: doc/guix.texi:17441
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} location-access-control-list location-access-controls"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15274
+#: doc/guix.texi:17443
 msgid "Specifies a set of additional access controls."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15276
+#: doc/guix.texi:17445
 msgid "Available @code{location-access-controls} fields are:"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15277
+#: doc/guix.texi:17446
 #, no-wrap
 msgid "{@code{location-access-controls} parameter} file-name path"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15279
+#: doc/guix.texi:17448
 msgid "Specifies the URI path to which the access control applies."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15281
+#: doc/guix.texi:17450
 #, no-wrap
 msgid "{@code{location-access-controls} parameter} access-control-list access-controls"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15284
+#: doc/guix.texi:17453
 msgid "Access controls for all access to this path, in the same format as the @code{access-controls} of @code{operation-access-control}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15286 doc/guix.texi:15292 doc/guix.texi:15306
-#: doc/guix.texi:15313 doc/guix.texi:15455 doc/guix.texi:15514
-#: doc/guix.texi:15592 doc/guix.texi:15606 doc/guix.texi:17741
-#: doc/guix.texi:17944 doc/guix.texi:17972 doc/guix.texi:18002
-#: doc/guix.texi:18117 doc/guix.texi:18130 doc/guix.texi:18137
-#: doc/guix.texi:19226 doc/guix.texi:19330 doc/guix.texi:19755
-#: doc/guix.texi:19763 doc/guix.texi:20008 doc/guix.texi:21886
-#: doc/guix.texi:22048 doc/guix.texi:22243 doc/guix.texi:23422
-#: doc/guix.texi:23482 doc/guix.texi:23490 doc/guix.texi:24320
-#: doc/guix.texi:24327 doc/guix.texi:24669 doc/guix.texi:24747
-#: doc/guix.texi:24841 doc/guix.texi:24849 doc/guix.texi:24885
-#: doc/guix.texi:25035 doc/guix.texi:25086 doc/guix.texi:25095
+#: doc/guix.texi:17455 doc/guix.texi:17461 doc/guix.texi:17475
+#: doc/guix.texi:17482 doc/guix.texi:17624 doc/guix.texi:17683
+#: doc/guix.texi:17761 doc/guix.texi:17775 doc/guix.texi:19960
+#: doc/guix.texi:20163 doc/guix.texi:20191 doc/guix.texi:20221
+#: doc/guix.texi:20336 doc/guix.texi:20349 doc/guix.texi:20356
+#: doc/guix.texi:21446 doc/guix.texi:21550 doc/guix.texi:21976
+#: doc/guix.texi:21984 doc/guix.texi:22229 doc/guix.texi:24228
+#: doc/guix.texi:24390 doc/guix.texi:24585 doc/guix.texi:25779
+#: doc/guix.texi:25839 doc/guix.texi:25847 doc/guix.texi:27509
+#: doc/guix.texi:27516 doc/guix.texi:27858 doc/guix.texi:27936
+#: doc/guix.texi:28030 doc/guix.texi:28038 doc/guix.texi:28074
+#: doc/guix.texi:28224 doc/guix.texi:28275 doc/guix.texi:28284
 msgid "Defaults to @samp{()}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15288
+#: doc/guix.texi:17457
 #, no-wrap
 msgid "{@code{location-access-controls} parameter} method-access-control-list method-access-controls"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15290
+#: doc/guix.texi:17459
 msgid "Access controls for method-specific access to this path."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15294
+#: doc/guix.texi:17463
 msgid "Available @code{method-access-controls} fields are:"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15295
+#: doc/guix.texi:17464
 #, no-wrap
 msgid "{@code{method-access-controls} parameter} boolean reverse?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15298
+#: doc/guix.texi:17467
 msgid "If @code{#t}, apply access controls to all methods except the listed methods.  Otherwise apply to only the listed methods."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15302
+#: doc/guix.texi:17471
 #, no-wrap
 msgid "{@code{method-access-controls} parameter} method-list methods"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15304
+#: doc/guix.texi:17473
 msgid "Methods to which this access control applies."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15308
+#: doc/guix.texi:17477
 #, no-wrap
 msgid "{@code{method-access-controls} parameter} access-control-list access-controls"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15311
-msgid "Access control directives, as a list of strings.  Each string should be one directive, such as \"Order allow,deny\"."
+#: doc/guix.texi:17480
+msgid "Access control directives, as a list of strings.  Each string should be one directive, such as @samp{\"Order allow,deny\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15317
+#: doc/guix.texi:17486
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer log-debug-history"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15321
+#: doc/guix.texi:17490
 msgid "Specifies the number of debugging messages that are retained for logging if an error occurs in a print job.  Debug messages are logged regardless of the LogLevel setting."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15323 doc/guix.texi:15344 doc/guix.texi:15351
-#: doc/guix.texi:17501 doc/guix.texi:22228
+#: doc/guix.texi:17492 doc/guix.texi:17513 doc/guix.texi:17520
+#: doc/guix.texi:19720 doc/guix.texi:24570
 msgid "Defaults to @samp{100}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15325
+#: doc/guix.texi:17494
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} log-level log-level"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15328
+#: doc/guix.texi:17497
 msgid "Specifies the level of logging for the ErrorLog file.  The value @code{none} stops all logging while @code{debug2} logs everything."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15330
+#: doc/guix.texi:17499
 msgid "Defaults to @samp{info}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15332
+#: doc/guix.texi:17501
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} log-time-format log-time-format"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15335
+#: doc/guix.texi:17504
 msgid "Specifies the format of the date and time in the log files.  The value @code{standard} logs whole seconds while @code{usecs} logs microseconds."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15337
+#: doc/guix.texi:17506
 msgid "Defaults to @samp{standard}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15339
+#: doc/guix.texi:17508
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer max-clients"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15342
+#: doc/guix.texi:17511
 msgid "Specifies the maximum number of simultaneous clients that are allowed by the scheduler."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15346
+#: doc/guix.texi:17515
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer max-clients-per-host"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15349
+#: doc/guix.texi:17518
 msgid "Specifies the maximum number of simultaneous clients that are allowed from a single address."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15353
+#: doc/guix.texi:17522
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer max-copies"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15356
+#: doc/guix.texi:17525
 msgid "Specifies the maximum number of copies that a user can print of each job."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15358
+#: doc/guix.texi:17527
 msgid "Defaults to @samp{9999}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15360
+#: doc/guix.texi:17529
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer max-hold-time"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15364
+#: doc/guix.texi:17533
 msgid "Specifies the maximum time a job may remain in the @code{indefinite} hold state before it is canceled.  A value of 0 disables cancellation of held jobs."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15368
+#: doc/guix.texi:17537
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer max-jobs"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15371
+#: doc/guix.texi:17540
 msgid "Specifies the maximum number of simultaneous jobs that are allowed.  Set to 0 to allow an unlimited number of jobs."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15373
+#: doc/guix.texi:17542
 msgid "Defaults to @samp{500}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15375
+#: doc/guix.texi:17544
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer max-jobs-per-printer"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15378
+#: doc/guix.texi:17547
 msgid "Specifies the maximum number of simultaneous jobs that are allowed per printer.  A value of 0 allows up to MaxJobs jobs per printer."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15382
+#: doc/guix.texi:17551
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer max-jobs-per-user"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15385
+#: doc/guix.texi:17554
 msgid "Specifies the maximum number of simultaneous jobs that are allowed per user.  A value of 0 allows up to MaxJobs jobs per user."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15389
+#: doc/guix.texi:17558
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer max-job-time"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15392
-msgid "Specifies the maximum time a job may take to print before it is canceled, in seconds.  Set to 0 to disable cancellation of \"stuck\" jobs."
+#: doc/guix.texi:17561
+msgid "Specifies the maximum time a job may take to print before it is canceled, in seconds.  Set to 0 to disable cancellation of ``stuck'' jobs."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15394
+#: doc/guix.texi:17563
 msgid "Defaults to @samp{10800}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15396
+#: doc/guix.texi:17565
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer max-log-size"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15399
+#: doc/guix.texi:17568
 msgid "Specifies the maximum size of the log files before they are rotated, in bytes.  The value 0 disables log rotation."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15401
+#: doc/guix.texi:17570
 msgid "Defaults to @samp{1048576}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15403
+#: doc/guix.texi:17572
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer multiple-operation-timeout"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15406
+#: doc/guix.texi:17575
 msgid "Specifies the maximum amount of time to allow between files in a multiple file print job, in seconds."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15408 doc/guix.texi:15619 doc/guix.texi:21820
+#: doc/guix.texi:17577 doc/guix.texi:17788 doc/guix.texi:24162
 msgid "Defaults to @samp{300}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15410
+#: doc/guix.texi:17579
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} string page-log-format"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15415
+#: doc/guix.texi:17584
 msgid "Specifies the format of PageLog lines.  Sequences beginning with percent (@samp{%}) characters are replaced with the corresponding information, while all other characters are copied literally.  The following percent sequences are recognized:"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:15417
+#: doc/guix.texi:17586
 #, no-wrap
 msgid "%%"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:15419
+#: doc/guix.texi:17588
 msgid "insert a single percent character"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:15420
+#: doc/guix.texi:17589
 #, no-wrap
 msgid "%@{name@}"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:15422
+#: doc/guix.texi:17591
 msgid "insert the value of the specified IPP attribute"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:15423
+#: doc/guix.texi:17592
 #, no-wrap
 msgid "%C"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:15425
+#: doc/guix.texi:17594
 msgid "insert the number of copies for the current page"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:15426
+#: doc/guix.texi:17595
 #, no-wrap
 msgid "%P"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:15428
+#: doc/guix.texi:17597
 msgid "insert the current page number"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:15429
+#: doc/guix.texi:17598
 #, no-wrap
 msgid "%T"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:15431
+#: doc/guix.texi:17600
 msgid "insert the current date and time in common log format"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:15432
+#: doc/guix.texi:17601
 #, no-wrap
 msgid "%j"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:15434
+#: doc/guix.texi:17603
 msgid "insert the job ID"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:15435 doc/guix.texi:17111
+#: doc/guix.texi:17604 doc/guix.texi:19330
 #, no-wrap
 msgid "%p"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:15437
+#: doc/guix.texi:17606
 msgid "insert the printer name"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:15438 doc/guix.texi:17134
+#: doc/guix.texi:17607 doc/guix.texi:19353
 #, no-wrap
 msgid "%u"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:15440
+#: doc/guix.texi:17609
 msgid "insert the username"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15446
+#: doc/guix.texi:17615
 msgid "A value of the empty string disables page logging.  The string @code{%p %u %j %T %P %C %@{job-billing@} %@{job-originating-host-name@} %@{job-name@} %@{media@} %@{sides@}} creates a page log with the standard items."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15450
+#: doc/guix.texi:17619
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} environment-variables environment-variables"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15453
+#: doc/guix.texi:17622
 msgid "Passes the specified environment variable(s) to child processes; a list of strings."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15457
+#: doc/guix.texi:17626
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} policy-configuration-list policies"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15459
+#: doc/guix.texi:17628
 msgid "Specifies named access control policies."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15461
+#: doc/guix.texi:17630
 msgid "Available @code{policy-configuration} fields are:"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15462
+#: doc/guix.texi:17631
 #, no-wrap
 msgid "{@code{policy-configuration} parameter} string name"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15464
+#: doc/guix.texi:17633
 msgid "Name of the policy."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15466
+#: doc/guix.texi:17635
 #, no-wrap
 msgid "{@code{policy-configuration} parameter} string job-private-access"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15476
+#: doc/guix.texi:17645
 msgid "Specifies an access list for a job's private values.  @code{@@ACL} maps to the printer's requesting-user-name-allowed or requesting-user-name-denied values.  @code{@@OWNER} maps to the job's owner.  @code{@@SYSTEM} maps to the groups listed for the @code{system-group} field of the @code{files-config} configuration, which is reified into the @code{cups-files.conf(5)} file.  Other possible elements of the access list include specific user names, and @code{@@@var{group}} to indicate members of a specific group.  The access list may also be simply @code{all} or @code{default}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15478 doc/guix.texi:15500
+#: doc/guix.texi:17647 doc/guix.texi:17669
 msgid "Defaults to @samp{\"@@OWNER @@SYSTEM\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15480
+#: doc/guix.texi:17649
 #, no-wrap
 msgid "{@code{policy-configuration} parameter} string job-private-values"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15483 doc/guix.texi:15505
+#: doc/guix.texi:17652 doc/guix.texi:17674
 msgid "Specifies the list of job values to make private, or @code{all}, @code{default}, or @code{none}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15486
+#: doc/guix.texi:17655
 msgid "Defaults to @samp{\"job-name job-originating-host-name job-originating-user-name phone\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15488
+#: doc/guix.texi:17657
 #, no-wrap
 msgid "{@code{policy-configuration} parameter} string subscription-private-access"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15498
+#: doc/guix.texi:17667
 msgid "Specifies an access list for a subscription's private values.  @code{@@ACL} maps to the printer's requesting-user-name-allowed or requesting-user-name-denied values.  @code{@@OWNER} maps to the job's owner.  @code{@@SYSTEM} maps to the groups listed for the @code{system-group} field of the @code{files-config} configuration, which is reified into the @code{cups-files.conf(5)} file.  Other possible elements of the access list include specific user names, and @code{@@@var{group}} to indicate members of a specific group.  The access list may also be simply @code{all} or @code{default}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15502
+#: doc/guix.texi:17671
 #, no-wrap
 msgid "{@code{policy-configuration} parameter} string subscription-private-values"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15508
+#: doc/guix.texi:17677
 msgid "Defaults to @samp{\"notify-events notify-pull-method notify-recipient-uri notify-subscriber-user-name notify-user-data\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15510
+#: doc/guix.texi:17679
 #, no-wrap
 msgid "{@code{policy-configuration} parameter} operation-access-control-list access-controls"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15512
+#: doc/guix.texi:17681
 msgid "Access control by IPP operation."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15517
+#: doc/guix.texi:17686
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} boolean-or-non-negative-integer preserve-job-files"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15522
+#: doc/guix.texi:17691
 msgid "Specifies whether job files (documents) are preserved after a job is printed.  If a numeric value is specified, job files are preserved for the indicated number of seconds after printing.  Otherwise a boolean value applies indefinitely."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15524
+#: doc/guix.texi:17693
 msgid "Defaults to @samp{86400}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15526
+#: doc/guix.texi:17695
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} boolean-or-non-negative-integer preserve-job-history"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15531
+#: doc/guix.texi:17700
 msgid "Specifies whether the job history is preserved after a job is printed.  If a numeric value is specified, the job history is preserved for the indicated number of seconds after printing.  If @code{#t}, the job history is preserved until the MaxJobs limit is reached."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15535
+#: doc/guix.texi:17704
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer reload-timeout"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15538
+#: doc/guix.texi:17707
 msgid "Specifies the amount of time to wait for job completion before restarting the scheduler."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15542
+#: doc/guix.texi:17711
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} string rip-cache"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15545
+#: doc/guix.texi:17714
 msgid "Specifies the maximum amount of memory to use when converting documents into bitmaps for a printer."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15547
+#: doc/guix.texi:17716
 msgid "Defaults to @samp{\"128m\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15549
+#: doc/guix.texi:17718
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} string server-admin"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15551
+#: doc/guix.texi:17720
 msgid "Specifies the email address of the server administrator."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15553
+#: doc/guix.texi:17722
 msgid "Defaults to @samp{\"root@@localhost.localdomain\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15555
+#: doc/guix.texi:17724
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} host-name-list-or-* server-alias"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15563
+#: doc/guix.texi:17732
 msgid "The ServerAlias directive is used for HTTP Host header validation when clients connect to the scheduler from external interfaces.  Using the special name @code{*} can expose your system to known browser-based DNS rebinding attacks, even when accessing sites through a firewall.  If the auto-discovery of alternate names does not work, we recommend listing each alternate name with a ServerAlias directive instead of using @code{*}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15565
+#: doc/guix.texi:17734
 msgid "Defaults to @samp{*}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15567
+#: doc/guix.texi:17736
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} string server-name"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15569
+#: doc/guix.texi:17738
 msgid "Specifies the fully-qualified host name of the server."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15571 doc/guix.texi:19353 doc/guix.texi:19397
+#: doc/guix.texi:17740 doc/guix.texi:21573 doc/guix.texi:21617
 msgid "Defaults to @samp{\"localhost\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15573
+#: doc/guix.texi:17742
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} server-tokens server-tokens"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15581
+#: doc/guix.texi:17750
 msgid "Specifies what information is included in the Server header of HTTP responses.  @code{None} disables the Server header.  @code{ProductOnly} reports @code{CUPS}.  @code{Major} reports @code{CUPS 2}.  @code{Minor} reports @code{CUPS 2.0}.  @code{Minimal} reports @code{CUPS 2.0.0}.  @code{OS} reports @code{CUPS 2.0.0 (@var{uname})} where @var{uname} is the output of the @code{uname} command.  @code{Full} reports @code{CUPS 2.0.0 (@var{uname}) IPP/2.0}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15583
+#: doc/guix.texi:17752
 msgid "Defaults to @samp{Minimal}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15585
+#: doc/guix.texi:17754
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} multiline-string-list ssl-listen"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15590
+#: doc/guix.texi:17759
 msgid "Listens on the specified interfaces for encrypted connections.  Valid values are of the form @var{address}:@var{port}, where @var{address} is either an IPv6 address enclosed in brackets, an IPv4 address, or @code{*} to indicate all addresses."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15594
+#: doc/guix.texi:17763
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} ssl-options ssl-options"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15604
+#: doc/guix.texi:17773
 msgid "Sets encryption options.  By default, CUPS only supports encryption using TLS v1.0 or higher using known secure cipher suites.  Security is reduced when @code{Allow} options are used, and enhanced when @code{Deny} options are used.  The @code{AllowRC4} option enables the 128-bit RC4 cipher suites, which are required for some older clients.  The @code{AllowSSL3} option enables SSL v3.0, which is required for some older clients that do not support TLS v1.0.  The @code{DenyCBC} option disables all CBC cipher suites.  The @code{DenyTLS1.0} option disables TLS v1.0 support - this sets the minimum protocol version to TLS v1.1."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15608
+#: doc/guix.texi:17777
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} boolean strict-conformance?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15611
+#: doc/guix.texi:17780
 msgid "Specifies whether the scheduler requires clients to strictly adhere to the IPP specifications."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15615
+#: doc/guix.texi:17784
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer timeout"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15617
+#: doc/guix.texi:17786
 msgid "Specifies the HTTP request timeout, in seconds."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15622
+#: doc/guix.texi:17791
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} boolean web-interface?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15624
+#: doc/guix.texi:17793
 msgid "Specifies whether the web interface is enabled."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:15634
+#: doc/guix.texi:17803
 msgid "At this point you're probably thinking ``oh dear, Guix manual, I like you but you can stop already with the configuration options''.  Indeed.  However, one more point: it could be that you have an existing @code{cupsd.conf} that you want to use.  In that case, you can pass an @code{opaque-cups-configuration} as the configuration of a @code{cups-service-type}."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:15636
+#: doc/guix.texi:17805
 msgid "Available @code{opaque-cups-configuration} fields are:"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15637
+#: doc/guix.texi:17806
 #, no-wrap
 msgid "{@code{opaque-cups-configuration} parameter} package cups"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15641
+#: doc/guix.texi:17810
 #, no-wrap
 msgid "{@code{opaque-cups-configuration} parameter} string cupsd.conf"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15643
+#: doc/guix.texi:17812
 msgid "The contents of the @code{cupsd.conf}, as a string."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15645
+#: doc/guix.texi:17814
 #, no-wrap
 msgid "{@code{opaque-cups-configuration} parameter} string cups-files.conf"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15647
+#: doc/guix.texi:17816
 msgid "The contents of the @code{cups-files.conf} file, as a string."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:15652
+#: doc/guix.texi:17821
 msgid "For example, if your @code{cupsd.conf} and @code{cups-files.conf} are in strings of the same name, you could instantiate a CUPS service like this:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:15658
+#: doc/guix.texi:17827
 #, no-wrap
 msgid ""
 "(service cups-service-type\n"
@@ -28749,199 +32876,244 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:15669
+#: doc/guix.texi:17838
 msgid "The @code{(gnu services desktop)} module provides services that are usually useful in the context of a ``desktop'' setup---that is, on a machine running a graphical display server, possibly with graphical user interfaces, etc.  It also defines services that provide specific desktop environments like GNOME, Xfce or MATE."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:15673
+#: doc/guix.texi:17842
 msgid "To simplify things, the module defines a variable containing the set of services that users typically expect on a machine with a graphical environment and networking:"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:15674
+#: doc/guix.texi:17843
 #, no-wrap
 msgid "{Scheme Variable} %desktop-services"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:15677
+#: doc/guix.texi:17846
 msgid "This is a list of services that builds upon @code{%base-services} and adds or adjusts services for a typical ``desktop'' setup."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:15688
+#: doc/guix.texi:17857
 msgid "In particular, it adds a graphical login manager (@pxref{X Window, @code{gdm-service-type}}), screen lockers, a network management tool (@pxref{Networking Services, @code{network-manager-service-type}}) with modem support (@pxref{Networking Services, @code{modem-manager-service-type}}), energy and color management services, the @code{elogind} login and seat manager, the Polkit privilege service, the GeoClue location service, the AccountsService daemon that allows authorized users change system passwords, an NTP client (@pxref{Networking Services}), the Avahi daemon, and has the name service switch service configured to be able to use @code{nss-mdns} (@pxref{Name Service Switch, mDNS})."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:15693
+#: doc/guix.texi:17862
 msgid "The @code{%desktop-services} variable can be used as the @code{services} field of an @code{operating-system} declaration (@pxref{operating-system Reference, @code{services}})."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:15716
-msgid "Additionally, the @code{gnome-desktop-service-type}, @code{xfce-desktop-service}, @code{mate-desktop-service-type} and @code{enlightenment-desktop-service-type} procedures can add GNOME, Xfce, MATE and/or Enlightenment to a system.  To ``add GNOME'' means that system-level services like the backlight adjustment helpers and the power management utilities are added to the system, extending @code{polkit} and @code{dbus} appropriately, allowing GNOME to operate with elevated privileges on a limited number of special-purpose system interfaces.  Additionally, adding a service made by @code{gnome-desktop-service-type} adds the GNOME metapackage to the system profile.  Likewise, adding the Xfce service not only adds the @code{xfce} metapackage to the system profile, but it also gives the Thunar file manager the ability to open a ``root-mode'' file management window, if the user authenticates using the administrator's password via the standard polkit graphical interface.  To ``add MATE'' means that @code{polkit} and @code{dbus} are extended appropriately, allowing MATE to operate with elevated privileges on a limited number of special-purpose system interfaces.  Additionally, adding a service of type @code{mate-desktop-service-type} adds the MATE metapackage to the system profile.  ``Adding Enlightenment'' means that @code{dbus} is extended appropriately, and several of Enlightenment's binaries are set as setuid, allowing Enlightenment's screen locker and other functionality to work as expected."
+#: doc/guix.texi:17885
+msgid "Additionally, the @code{gnome-desktop-service-type}, @code{xfce-desktop-service}, @code{mate-desktop-service-type}, @code{lxqt-desktop-service-type} and @code{enlightenment-desktop-service-type} procedures can add GNOME, Xfce, MATE and/or Enlightenment to a system.  To ``add GNOME'' means that system-level services like the backlight adjustment helpers and the power management utilities are added to the system, extending @code{polkit} and @code{dbus} appropriately, allowing GNOME to operate with elevated privileges on a limited number of special-purpose system interfaces.  Additionally, adding a service made by @code{gnome-desktop-service-type} adds the GNOME metapackage to the system profile.  Likewise, adding the Xfce service not only adds the @code{xfce} metapackage to the system profile, but it also gives the Thunar file manager the ability to open a ``root-mode'' file management window, if the user authenticates using the administrator's password via the standard polkit graphical interface.  To ``add MATE'' means that @code{polkit} and @code{dbus} are extended appropriately, allowing MATE to operate with elevated privileges on a limited number of special-purpose system interfaces.  Additionally, adding a service of type @code{mate-desktop-service-type} adds the MATE metapackage to the system profile.  ``Adding Enlightenment'' means that @code{dbus} is extended appropriately, and several of Enlightenment's binaries are set as setuid, allowing Enlightenment's screen locker and other functionality to work as expected."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:15725
+#: doc/guix.texi:17894
 msgid "The desktop environments in Guix use the Xorg display server by default.  If you'd like to use the newer display server protocol called Wayland, you need to use the @code{sddm-service} instead of GDM as the graphical login manager.  You should then select the ``GNOME (Wayland)'' session in SDDM.  Alternatively you can also try starting GNOME on Wayland manually from a TTY with the command ``XDG_SESSION_TYPE=wayland exec dbus-run-session gnome-session``.  Currently only GNOME has support for Wayland."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:15726
+#: doc/guix.texi:17895
 #, no-wrap
 msgid "{Scheme Variable} gnome-desktop-service-type"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:15730
-msgid "This is the type of the service that adds the @uref{https://www.gnome.org, GNOME} desktop environment.  Its value is a @code{gnome-desktop-configuration} object (see below.)"
+#: doc/guix.texi:17899
+msgid "This is the type of the service that adds the @uref{https://www.gnome.org, GNOME} desktop environment.  Its value is a @code{gnome-desktop-configuration} object (see below)."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:15733
+#: doc/guix.texi:17902
 msgid "This service adds the @code{gnome} package to the system profile, and extends polkit with the actions from @code{gnome-settings-daemon}."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:15735
+#: doc/guix.texi:17904
 #, no-wrap
 msgid "{Data Type} gnome-desktop-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:15737
+#: doc/guix.texi:17906
 msgid "Configuration record for the GNOME desktop environment."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:15739
+#: doc/guix.texi:17908
 #, fuzzy, no-wrap
 #| msgid "@code{port} (default: @code{22})"
 msgid "@code{gnome} (default: @code{gnome})"
 msgstr "@code{port} (default: @code{22})"
 
 #. type: table
-#: doc/guix.texi:15741
+#: doc/guix.texi:17910
 msgid "The GNOME package to use."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:15744
+#: doc/guix.texi:17913
 #, no-wrap
 msgid "{Scheme Variable} xfce-desktop-service-type"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:15748
-msgid "This is the type of a service to run the @uref{Xfce, https://xfce.org/} desktop environment.  Its value is an @code{xfce-desktop-configuration} object (see below.)"
+#: doc/guix.texi:17917
+msgid "This is the type of a service to run the @uref{Xfce, https://xfce.org/} desktop environment.  Its value is an @code{xfce-desktop-configuration} object (see below)."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:15753
+#: doc/guix.texi:17922
 msgid "This service adds the @code{xfce} package to the system profile, and extends polkit with the ability for @code{thunar} to manipulate the file system as root from within a user session, after the user has authenticated with the administrator's password."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:15755
+#: doc/guix.texi:17924
 #, no-wrap
 msgid "{Data Type} xfce-desktop-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:15757
+#: doc/guix.texi:17926
 msgid "Configuration record for the Xfce desktop environment."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:15759
+#: doc/guix.texi:17928
 #, fuzzy, no-wrap
 #| msgid "@code{speed} (default: @code{1.0})"
 msgid "@code{xfce} (default: @code{xfce})"
 msgstr "@code{speed} (default: @code{1.0})"
 
 #. type: table
-#: doc/guix.texi:15761
+#: doc/guix.texi:17930
 msgid "The Xfce package to use."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:15764
+#: doc/guix.texi:17933
 #, no-wrap
 msgid "{Scheme Variable} mate-desktop-service-type"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:15768
-msgid "This is the type of the service that runs the @uref{https://mate-desktop.org/, MATE desktop environment}.  Its value is a @code{mate-desktop-configuration} object (see below.)"
+#: doc/guix.texi:17937
+msgid "This is the type of the service that runs the @uref{https://mate-desktop.org/, MATE desktop environment}.  Its value is a @code{mate-desktop-configuration} object (see below)."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:15772
+#: doc/guix.texi:17941
 msgid "This service adds the @code{mate} package to the system profile, and extends polkit with the actions from @code{mate-settings-daemon}."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:15774
+#: doc/guix.texi:17943
 #, no-wrap
 msgid "{Data Type} mate-desktop-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:15776
+#: doc/guix.texi:17945
 msgid "Configuration record for the MATE desktop environment."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:15778
+#: doc/guix.texi:17947
 #, fuzzy, no-wrap
 #| msgid "@code{port} (default: @code{22})"
 msgid "@code{mate} (default: @code{mate})"
 msgstr "@code{port} (default: @code{22})"
 
 #. type: table
-#: doc/guix.texi:15780
+#: doc/guix.texi:17949
 msgid "The MATE package to use."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:15783
+#: doc/guix.texi:17952
+#, fuzzy, no-wrap
+#| msgid "{Scheme Variable} etc-service-type"
+msgid "{Scheme Variable} lxqt-desktop-service-type"
+msgstr "{Scheme Variable} etc-service-type"
+
+#. type: deffn
+#: doc/guix.texi:17956
+msgid "This is the type of the service that runs the @uref{https://lxqt.github.io, LXQt desktop environment}.  Its value is a @code{lxqt-desktop-configuration} object (see below)."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:17959
+msgid "This service adds the @code{lxqt} package to the system profile."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:17961
+#, fuzzy, no-wrap
+#| msgid "System Configuration"
+msgid "{Data Type} lxqt-desktop-configuration"
+msgstr "Конфигурирование системы"
+
+#. type: deftp
+#: doc/guix.texi:17963
+#, fuzzy
+#| msgid "configuration file for channels"
+msgid "Configuration record for the LXQt desktop environment."
+msgstr "конфигурационный файл для каналов"
+
+#. type: item
+#: doc/guix.texi:17965
+#, fuzzy, no-wrap
+#| msgid "@code{port} (default: @code{22})"
+msgid "@code{lxqt} (default: @code{lxqt})"
+msgstr "@code{port} (default: @code{22})"
+
+#. type: table
+#: doc/guix.texi:17967
+#, fuzzy
+#| msgid "The package data type."
+msgid "The LXQT package to use."
+msgstr "Тип данных пакет"
+
+#. type: deffn
+#: doc/guix.texi:17970
 #, no-wrap
 msgid "{Scheme Variable} enlightenment-desktop-service-type"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:15786
+#: doc/guix.texi:17973
 msgid "Return a service that adds the @code{enlightenment} package to the system profile, and extends dbus with actions from @code{efl}."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:15788
+#: doc/guix.texi:17975
 #, no-wrap
 msgid "{Data Type} enlightenment-desktop-service-configuration"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:15790
+#: doc/guix.texi:17977
 #, fuzzy, no-wrap
 #| msgid "@code{features} (default: @code{'()})"
 msgid "@code{enlightenment} (default: @code{enlightenment})"
 msgstr "@code{features} (default: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:15792
+#: doc/guix.texi:17979
 msgid "The enlightenment package to use."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:15800
+#: doc/guix.texi:17987
 msgid "Because the GNOME, Xfce and MATE desktop services pull in so many packages, the default @code{%desktop-services} variable doesn't include any of them by default.  To add GNOME, Xfce or MATE, just @code{cons} them onto @code{%desktop-services} in the @code{services} field of your @code{operating-system}:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:15811
+#: doc/guix.texi:17998
 #, no-wrap
 msgid ""
 "(use-modules (gnu))\n"
@@ -28956,755 +33128,761 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:15815
+#: doc/guix.texi:18002
 msgid "These desktop environments will then be available as options in the graphical login window."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:15819
+#: doc/guix.texi:18006
 msgid "The actual service definitions included in @code{%desktop-services} and provided by @code{(gnu services dbus)} and @code{(gnu services desktop)} are described below."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:15820
+#: doc/guix.texi:18007
 #, no-wrap
 msgid "{Scheme Procedure} dbus-service [#:dbus @var{dbus}] [#:services '()]"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:15823
+#: doc/guix.texi:18010
 msgid "Return a service that runs the ``system bus'', using @var{dbus}, with support for @var{services}."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:15827
+#: doc/guix.texi:18014
 msgid "@uref{https://dbus.freedesktop.org/, D-Bus} is an inter-process communication facility.  Its system bus is used to allow system services to communicate and to be notified of system-wide events."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:15832
+#: doc/guix.texi:18019
 msgid "@var{services} must be a list of packages that provide an @file{etc/dbus-1/system.d} directory containing additional D-Bus configuration and policy files.  For example, to allow avahi-daemon to use the system bus, @var{services} must be equal to @code{(list avahi)}."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:15834
+#: doc/guix.texi:18021
 #, no-wrap
 msgid "{Scheme Procedure} elogind-service [#:config @var{config}]"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:15840
+#: doc/guix.texi:18027
 msgid "Return a service that runs the @code{elogind} login and seat management daemon.  @uref{https://github.com/elogind/elogind, Elogind} exposes a D-Bus interface that can be used to know which users are logged in, know what kind of sessions they have open, suspend the system, inhibit system suspend, reboot the system, and other tasks."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:15844
+#: doc/guix.texi:18031
 msgid "Elogind handles most system-level power events for a computer, for example suspending the system when a lid is closed, or shutting it down when the power button is pressed."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:15849
+#: doc/guix.texi:18036
 msgid "The @var{config} keyword argument specifies the configuration for elogind, and should be the result of an @code{(elogind-configuration (@var{parameter} @var{value})...)} invocation.  Available parameters and their default values are:"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:15851
+#: doc/guix.texi:18038
 #, no-wrap
 msgid "kill-user-processes?"
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:15853 doc/guix.texi:15871 doc/guix.texi:15873
-#: doc/guix.texi:15875 doc/guix.texi:15887
+#: doc/guix.texi:18040 doc/guix.texi:18060 doc/guix.texi:18062
+#: doc/guix.texi:18064 doc/guix.texi:18076
 msgid "#f"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:15853
+#: doc/guix.texi:18040
 #, no-wrap
 msgid "kill-only-users"
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:15855 doc/guix.texi:15893
+#: doc/guix.texi:18042 doc/guix.texi:18082
 msgid "()"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:15855
+#: doc/guix.texi:18042
 #, no-wrap
 msgid "kill-exclude-users"
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:15857
+#: doc/guix.texi:18044
 msgid "(\"root\")"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:15857
+#: doc/guix.texi:18044
 #, no-wrap
 msgid "inhibit-delay-max-seconds"
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:15859
+#: doc/guix.texi:18046
 msgid "5"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:15859
+#: doc/guix.texi:18046
 #, no-wrap
 msgid "handle-power-key"
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:15861
+#: doc/guix.texi:18048
 msgid "poweroff"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:15861
+#: doc/guix.texi:18048
 #, no-wrap
 msgid "handle-suspend-key"
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:15863 doc/guix.texi:15867
+#: doc/guix.texi:18050 doc/guix.texi:18054
 msgid "suspend"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:15863
+#: doc/guix.texi:18050
 #, no-wrap
 msgid "handle-hibernate-key"
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:15865
+#: doc/guix.texi:18052
 msgid "hibernate"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:15865
+#: doc/guix.texi:18052
 #, no-wrap
 msgid "handle-lid-switch"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:15867
+#: doc/guix.texi:18054
 #, no-wrap
 msgid "handle-lid-switch-docked"
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:15869 doc/guix.texi:15881
+#: doc/guix.texi:18056 doc/guix.texi:18058 doc/guix.texi:18070
 msgid "ignore"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:15869
+#: doc/guix.texi:18056
+#, no-wrap
+msgid "handle-lid-switch-external-power"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:18058
 #, no-wrap
 msgid "power-key-ignore-inhibited?"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:15871
+#: doc/guix.texi:18060
 #, no-wrap
 msgid "suspend-key-ignore-inhibited?"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:15873
+#: doc/guix.texi:18062
 #, no-wrap
 msgid "hibernate-key-ignore-inhibited?"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:15875
+#: doc/guix.texi:18064
 #, no-wrap
 msgid "lid-switch-ignore-inhibited?"
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:15877 doc/guix.texi:15889
+#: doc/guix.texi:18066 doc/guix.texi:18078
 msgid "#t"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:15877
+#: doc/guix.texi:18066
 #, no-wrap
 msgid "holdoff-timeout-seconds"
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:15879
+#: doc/guix.texi:18068
 msgid "30"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:15879
+#: doc/guix.texi:18068
 #, no-wrap
 msgid "idle-action"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:15881
+#: doc/guix.texi:18070
 #, no-wrap
 msgid "idle-action-seconds"
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:15883
+#: doc/guix.texi:18072
 msgid "(* 30 60)"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:15883
+#: doc/guix.texi:18072
 #, no-wrap
 msgid "runtime-directory-size-percent"
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:15885
+#: doc/guix.texi:18074
 msgid "10"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:15885
+#: doc/guix.texi:18074
 #, no-wrap
 msgid "runtime-directory-size"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:15887
+#: doc/guix.texi:18076
 #, no-wrap
 msgid "remove-ipc?"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:15889
+#: doc/guix.texi:18078
 #, no-wrap
 msgid "suspend-state"
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:15891
+#: doc/guix.texi:18080
 msgid "(\"mem\" \"standby\" \"freeze\")"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:15891
+#: doc/guix.texi:18080
 #, no-wrap
 msgid "suspend-mode"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:15893
+#: doc/guix.texi:18082
 #, no-wrap
 msgid "hibernate-state"
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:15895 doc/guix.texi:15899
+#: doc/guix.texi:18084 doc/guix.texi:18088
 msgid "(\"disk\")"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:15895
+#: doc/guix.texi:18084
 #, no-wrap
 msgid "hibernate-mode"
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:15897
+#: doc/guix.texi:18086
 msgid "(\"platform\" \"shutdown\")"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:15897
+#: doc/guix.texi:18086
 #, no-wrap
 msgid "hybrid-sleep-state"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:15899
+#: doc/guix.texi:18088
 #, no-wrap
 msgid "hybrid-sleep-mode"
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:15901
+#: doc/guix.texi:18090
 msgid "(\"suspend\" \"platform\" \"shutdown\")"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:15904
+#: doc/guix.texi:18093
 #, no-wrap
 msgid "{Scheme Procedure} accountsservice-service @"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:15912
+#: doc/guix.texi:18101
 msgid "[#:accountsservice @var{accountsservice}] Return a service that runs AccountsService, a system service that can list available accounts, change their passwords, and so on.  AccountsService integrates with PolicyKit to enable unprivileged users to acquire the capability to modify their system configuration.  @uref{https://www.freedesktop.org/wiki/Software/AccountsService/, the accountsservice web site} for more information."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:15915
+#: doc/guix.texi:18104
 msgid "The @var{accountsservice} keyword argument is the @code{accountsservice} package to expose as a service."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:15917
+#: doc/guix.texi:18106
 #, no-wrap
 msgid "{Scheme Procedure} polkit-service @"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:15926
+#: doc/guix.texi:18115
 msgid "[#:polkit @var{polkit}] Return a service that runs the @uref{https://www.freedesktop.org/wiki/Software/polkit/, Polkit privilege management service}, which allows system administrators to grant access to privileged operations in a structured way.  By querying the Polkit service, a privileged system component can know when it should grant additional capabilities to ordinary users.  For example, an ordinary user can be granted the capability to suspend the system if the user is logged in locally."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:15928
+#: doc/guix.texi:18117
 #, no-wrap
 msgid "{Scheme Variable} polkit-wheel-service"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:15933
+#: doc/guix.texi:18122
 msgid "Service that adds the @code{wheel} group as admins to the Polkit service.  This makes it so that users in the @code{wheel} group are queried for their own passwords when performing administrative actions instead of @code{root}'s, similar to the behaviour used by @code{sudo}."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:15935
+#: doc/guix.texi:18124
 #, no-wrap
 msgid "{Scheme Variable} upower-service-type"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:15939
+#: doc/guix.texi:18128
 msgid "Service that runs @uref{https://upower.freedesktop.org/, @command{upowerd}}, a system-wide monitor for power consumption and battery levels, with the given configuration settings."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:15942
+#: doc/guix.texi:18131
 msgid "It implements the @code{org.freedesktop.UPower} D-Bus interface, and is notably used by GNOME."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:15944
+#: doc/guix.texi:18133
 #, no-wrap
 msgid "{Data Type} upower-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:15946
+#: doc/guix.texi:18135
 msgid "Data type representation the configuration for UPower."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:15949
+#: doc/guix.texi:18138
 #, no-wrap
 msgid "@code{upower} (default: @var{upower})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:15951
+#: doc/guix.texi:18140
 msgid "Package to use for @code{upower}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:15952
+#: doc/guix.texi:18141
 #, no-wrap
 msgid "@code{watts-up-pro?} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:15954
+#: doc/guix.texi:18143
 msgid "Enable the Watts Up Pro device."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:15955
+#: doc/guix.texi:18144
 #, no-wrap
 msgid "@code{poll-batteries?} (default: @code{#t})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:15957
+#: doc/guix.texi:18146
 msgid "Enable polling the kernel for battery level changes."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:15958
+#: doc/guix.texi:18147
 #, no-wrap
 msgid "@code{ignore-lid?} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:15960
+#: doc/guix.texi:18149
 msgid "Ignore the lid state, this can be useful if it's incorrect on a device."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:15961
+#: doc/guix.texi:18150
 #, no-wrap
 msgid "@code{use-percentage-for-policy?} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:15964
+#: doc/guix.texi:18153
 msgid "Whether battery percentage based policy should be used.  The default is to use the time left, change to @code{#t} to use the percentage."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:15965
+#: doc/guix.texi:18154
 #, no-wrap
 msgid "@code{percentage-low} (default: @code{10})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:15968
+#: doc/guix.texi:18157
 msgid "When @code{use-percentage-for-policy?} is @code{#t}, this sets the percentage at which the battery is considered low."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:15969
+#: doc/guix.texi:18158
 #, no-wrap
 msgid "@code{percentage-critical} (default: @code{3})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:15972
+#: doc/guix.texi:18161
 msgid "When @code{use-percentage-for-policy?} is @code{#t}, this sets the percentage at which the battery is considered critical."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:15973
+#: doc/guix.texi:18162
 #, no-wrap
 msgid "@code{percentage-action} (default: @code{2})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:15976
+#: doc/guix.texi:18165
 msgid "When @code{use-percentage-for-policy?} is @code{#t}, this sets the percentage at which action will be taken."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:15977
+#: doc/guix.texi:18166
 #, no-wrap
 msgid "@code{time-low} (default: @code{1200})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:15980
+#: doc/guix.texi:18169
 msgid "When @code{use-time-for-policy?} is @code{#f}, this sets the time remaining in seconds at which the battery is considered low."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:15981
+#: doc/guix.texi:18170
 #, no-wrap
 msgid "@code{time-critical} (default: @code{300})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:15984
+#: doc/guix.texi:18173
 msgid "When @code{use-time-for-policy?} is @code{#f}, this sets the time remaining in seconds at which the battery is considered critical."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:15985
+#: doc/guix.texi:18174
 #, no-wrap
 msgid "@code{time-action} (default: @code{120})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:15988
+#: doc/guix.texi:18177
 msgid "When @code{use-time-for-policy?} is @code{#f}, this sets the time remaining in seconds at which action will be taken."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:15989
+#: doc/guix.texi:18178
 #, no-wrap
 msgid "@code{critical-power-action} (default: @code{'hybrid-sleep})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:15992
+#: doc/guix.texi:18181
 msgid "The action taken when @code{percentage-action} or @code{time-action} is reached (depending on the configuration of @code{use-percentage-for-policy?})."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:15994
+#: doc/guix.texi:18183
 msgid "Possible values are:"
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:15998
+#: doc/guix.texi:18187
 msgid "'power-off"
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:16001
+#: doc/guix.texi:18190
 msgid "'hibernate"
 msgstr ""
 
 #. type: itemize
-#: doc/guix.texi:16004
+#: doc/guix.texi:18193
 msgid "@code{'hybrid-sleep}."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:16009
+#: doc/guix.texi:18198
 #, no-wrap
 msgid "{Scheme Procedure} udisks-service [#:udisks @var{udisks}]"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:16014
-msgid "Return a service for @uref{https://udisks.freedesktop.org/docs/latest/, UDisks}, a @dfn{disk management} daemon that provides user interfaces with notifications and ways to mount/unmount disks.  Programs that talk to UDisks include the @command{udisksctl} command, part of UDisks, and GNOME Disks."
+#: doc/guix.texi:18208
+msgid "Return a service for @uref{https://udisks.freedesktop.org/docs/latest/, UDisks}, a @dfn{disk management} daemon that provides user interfaces with notifications and ways to mount/unmount disks.  Programs that talk to UDisks include the @command{udisksctl} command, part of UDisks, and GNOME Disks.  Note that Udisks relies on the @command{mount} command, so it will only be able to use the file-system utilities installed in the system profile.  For example if you want to be able to mount NTFS file-systems in read and write fashion, you'll need to have @code{ntfs-3g} installed system-wide."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:16016
+#: doc/guix.texi:18210
 #, no-wrap
 msgid "{Scheme Variable} colord-service-type"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:16023
+#: doc/guix.texi:18217
 msgid "This is the type of the service that runs @command{colord}, a system service with a D-Bus interface to manage the color profiles of input and output devices such as screens and scanners.  It is notably used by the GNOME Color Manager graphical tool.  See @uref{https://www.freedesktop.org/software/colord/, the colord web site} for more information."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:16025
+#: doc/guix.texi:18219
 #, no-wrap
 msgid "{Scheme Procedure} geoclue-application name [#:allowed? #t] [#:system? #f] [#:users '()]"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:16034
+#: doc/guix.texi:18228
 msgid "Return a configuration allowing an application to access GeoClue location data.  @var{name} is the Desktop ID of the application, without the @code{.desktop} part.  If @var{allowed?} is true, the application will have access to location information by default.  The boolean @var{system?} value indicates whether an application is a system component or not.  Finally @var{users} is a list of UIDs of all users for which this application is allowed location info access.  An empty users list means that all users are allowed."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:16036
+#: doc/guix.texi:18230
 #, no-wrap
 msgid "scanner access"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:16037
+#: doc/guix.texi:18231
 #, no-wrap
 msgid "{Scheme Procedure} sane-service-type"
 msgstr "{Процедура Scheme} sane-service-type"
 
 #. type: deffn
-#: doc/guix.texi:16041
+#: doc/guix.texi:18235
 msgid "This service provides access to scanners @i{via} @uref{http://www.sane-project.org, SANE} by installing the necessary udev rules."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:16043
+#: doc/guix.texi:18237
 #, no-wrap
 msgid "{Scheme Variable} %standard-geoclue-applications"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:16050
+#: doc/guix.texi:18244
 msgid "The standard list of well-known GeoClue application configurations, granting authority to the GNOME date-and-time utility to ask for the current location in order to set the time zone, and allowing the IceCat and Epiphany web browsers to request location information.  IceCat and Epiphany both query the user before allowing a web page to know the user's location."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:16052
+#: doc/guix.texi:18246
 #, no-wrap
 msgid "{Scheme Procedure} geoclue-service [#:colord @var{colord}] @"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:16065
+#: doc/guix.texi:18259
 msgid "[#:whitelist '()] @ [#:wifi-geolocation-url \"https://location.services.mozilla.com/v1/geolocate?key=geoclue\"] @ [#:submit-data? #f] [#:wifi-submission-url \"https://location.services.mozilla.com/v1/submit?key=geoclue\"] @ [#:submission-nick \"geoclue\"] @ [#:applications %standard-geoclue-applications] Return a service that runs the GeoClue location service.  This service provides a D-Bus interface to allow applications to request access to a user's physical location, and optionally to add information to online location databases.  See @uref{https://wiki.freedesktop.org/www/Software/GeoClue/, the GeoClue web site} for more information."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:16067
+#: doc/guix.texi:18261
 #, no-wrap
 msgid "{Scheme Procedure} bluetooth-service [#:bluez @var{bluez}] @"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:16074
+#: doc/guix.texi:18268
 msgid "[@w{#:auto-enable? #f}] Return a service that runs the @command{bluetoothd} daemon, which manages all the Bluetooth devices and provides a number of D-Bus interfaces.  When AUTO-ENABLE? is true, the bluetooth controller is powered automatically at boot, which can be useful when using a bluetooth keyboard or mouse."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:16076
+#: doc/guix.texi:18270
 msgid "Users need to be in the @code{lp} group to access the D-Bus service."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:16078
+#: doc/guix.texi:18272
 #, no-wrap
 msgid "{Scheme Variable} gnome-keyring-service-type"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:16082
-msgid "This is the type of the service that adds the @uref{https://wiki.gnome.org/Projects/GnomeKeyring, GNOME Keyring}.  Its value is a @code{gnome-keyring-configuration} object (see below.)"
+#: doc/guix.texi:18276
+msgid "This is the type of the service that adds the @uref{https://wiki.gnome.org/Projects/GnomeKeyring, GNOME Keyring}.  Its value is a @code{gnome-keyring-configuration} object (see below)."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:16086
+#: doc/guix.texi:18280
 msgid "This service adds the @code{gnome-keyring} package to the system profile and extends PAM with entries using @code{pam_gnome_keyring.so}, unlocking a user's login keyring when they log in or setting its password with passwd."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:16088
+#: doc/guix.texi:18282
 #, no-wrap
 msgid "{Data Type} gnome-keyring-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:16090
+#: doc/guix.texi:18284
 msgid "Configuration record for the GNOME Keyring service."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:16092
+#: doc/guix.texi:18286
 #, fuzzy, no-wrap
 #| msgid "@code{port} (default: @code{22})"
 msgid "@code{keyring} (default: @code{gnome-keyring})"
 msgstr "@code{port} (default: @code{22})"
 
 #. type: table
-#: doc/guix.texi:16094
+#: doc/guix.texi:18288
 msgid "The GNOME keyring package to use."
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:16095
+#: doc/guix.texi:18289
 #, fuzzy, no-wrap
 #| msgid "Base Services"
 msgid "pam-services"
 msgstr "Базовые сервисы"
 
 #. type: table
-#: doc/guix.texi:16100
+#: doc/guix.texi:18294
 msgid "A list of @code{(@var{service} . @var{kind})} pairs denoting PAM services to extend, where @var{service} is the name of an existing service to extend and @var{kind} is one of @code{login} or @code{passwd}."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16106
+#: doc/guix.texi:18300
 msgid "If @code{login} is given, it adds an optional @code{pam_gnome_keyring.so} to the auth block without arguments and to the session block with @code{auto_start}.  If @code{passwd} is given, it adds an optional @code{pam_gnome_keyring.so} to the password block without arguments."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16109
+#: doc/guix.texi:18303
 msgid "By default, this field contains ``gdm-password'' with the value @code{login} and ``passwd'' is with the value @code{passwd}."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:16116
+#: doc/guix.texi:18310
 #, no-wrap
 msgid "sound support"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:16117
+#: doc/guix.texi:18311
 #, no-wrap
 msgid "ALSA"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:16118
+#: doc/guix.texi:18312
 #, no-wrap
 msgid "PulseAudio, sound support"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:16123
+#: doc/guix.texi:18317
 msgid "The @code{(gnu services sound)} module provides a service to configure the Advanced Linux Sound Architecture (ALSA) system, which makes PulseAudio the preferred ALSA output driver."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:16124
+#: doc/guix.texi:18318
 #, no-wrap
 msgid "{Scheme Variable} alsa-service-type"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:16129
+#: doc/guix.texi:18323
 msgid "This is the type for the @uref{https://alsa-project.org/, Advanced Linux Sound Architecture} (ALSA) system, which generates the @file{/etc/asound.conf} configuration file.  The value for this type is a @command{alsa-configuration} record as in this example:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:16132
+#: doc/guix.texi:18326
 #, no-wrap
 msgid "(service alsa-service-type)\n"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:16135
+#: doc/guix.texi:18329
 msgid "See below for details about @code{alsa-configuration}."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:16137
+#: doc/guix.texi:18331
 #, no-wrap
 msgid "{Data Type} alsa-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:16139
+#: doc/guix.texi:18333
 msgid "Data type representing the configuration for @code{alsa-service}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:16141
+#: doc/guix.texi:18335
 #, no-wrap
 msgid "@code{alsa-plugins} (default: @var{alsa-plugins})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16143
+#: doc/guix.texi:18337
 msgid "@code{alsa-plugins} package to use."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:16144
+#: doc/guix.texi:18338
 #, no-wrap
 msgid "@code{pulseaudio?} (default: @var{#t})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16147
+#: doc/guix.texi:18341
 msgid "Whether ALSA applications should transparently be made to use the @uref{https://www.pulseaudio.org/, PulseAudio} sound server."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16151
+#: doc/guix.texi:18345
 msgid "Using PulseAudio allows you to run several sound-producing applications at the same time and to individual control them @i{via} @command{pavucontrol}, among other things."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:16152
+#: doc/guix.texi:18346
 #, no-wrap
 msgid "@code{extra-options} (default: @var{\"\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16154
+#: doc/guix.texi:18348
 msgid "String to append to the @file{/etc/asound.conf} file."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:16160
+#: doc/guix.texi:18354
 msgid "Individual users who want to override the system configuration of ALSA can do it with the @file{~/.asoundrc} file:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:16166
+#: doc/guix.texi:18360
 #, no-wrap
 msgid ""
 "# In guix, we have to specify the absolute path for plugins.\n"
@@ -29715,7 +33893,7 @@ msgid ""
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:16175
+#: doc/guix.texi:18369
 #, no-wrap
 msgid ""
 "# Routing ALSA to jack:\n"
@@ -29730,7 +33908,7 @@ msgid ""
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:16181
+#: doc/guix.texi:18375
 #, no-wrap
 msgid ""
 "  capture_ports @{\n"
@@ -29742,7 +33920,7 @@ msgid ""
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:16188
+#: doc/guix.texi:18382
 #, no-wrap
 msgid ""
 "pcm.!default @{\n"
@@ -29754,101 +33932,106 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:16192
+#: doc/guix.texi:18386
 msgid "See @uref{https://www.alsa-project.org/main/index.php/Asoundrc} for the details."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:16193
+#: doc/guix.texi:18387
 #, no-wrap
 msgid "{Scheme Variable} pulseaudio-service-type"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:16197
+#: doc/guix.texi:18391
 msgid "This is the type for the @uref{https://www.pulseaudio.org/, PulseAudio} sound server.  It exists to allow system overrides of the default settings via @code{pulseaudio-configuration}, see below."
 msgstr ""
 
 #. type: quotation
-#: doc/guix.texi:16204
+#: doc/guix.texi:18397
+msgid "This service overrides per-user configuration files.  If you want PulseAudio to honor configuraton files in @file{~/.config/pulse} you have to unset the environment variables @env{PULSE_CONFIG} and @env{PULSE_CLIENTCONFIG} in your @file{~/.bash_profile}."
+msgstr ""
+
+#. type: quotation
+#: doc/guix.texi:18405
 msgid "This service on its own does not ensure, that the @code{pulseaudio} package exists on your machine.  It merely adds configuration files for it, as detailed below.  In the (admittedly unlikely) case, that you find yourself without a @code{pulseaudio} package, consider enabling it through the @code{alsa-service-type} above."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:16207
+#: doc/guix.texi:18408
 #, fuzzy, no-wrap
 #| msgid "{Data Type} build-machine"
 msgid "{Data Type} pulseaudio-configuration"
 msgstr "{Тип данных} build-machine"
 
 #. type: deftp
-#: doc/guix.texi:16209
+#: doc/guix.texi:18410
 msgid "Data type representing the configuration for @code{pulseaudio-service}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:16211
+#: doc/guix.texi:18412
 #, fuzzy, no-wrap
 #| msgid "@code{features} (default: @code{'()})"
 msgid "@var{client-conf} (default: @code{'()})"
 msgstr "@code{features} (default: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:16216
+#: doc/guix.texi:18417
 msgid "List of settings to set in @file{client.conf}.  Accepts a list of strings or a symbol-value pairs.  A string will be inserted as-is with a newline added.  A pair will be formatted as ``key = value'', again with a newline added."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:16217
+#: doc/guix.texi:18418
 #, no-wrap
 msgid "@var{daemon-conf} (default: @code{'((flat-volumes . no))})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16220
+#: doc/guix.texi:18421
 msgid "List of settings to set in @file{daemon.conf}, formatted just like @var{client-conf}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:16221
+#: doc/guix.texi:18422
 #, no-wrap
 msgid "@var{script-file} (default: @code{(file-append pulseaudio \"/etc/pulse/default.pa\")})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16223
-msgid "Script file to use as as @file{default.pa}."
+#: doc/guix.texi:18424
+msgid "Script file to use as @file{default.pa}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:16224
+#: doc/guix.texi:18425
 #, no-wrap
 msgid "@var{system-script-file} (default: @code{(file-append pulseaudio \"/etc/pulse/system.pa\")})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16226
-msgid "Script file to use as as @file{system.pa}."
+#: doc/guix.texi:18427
+msgid "Script file to use as @file{system.pa}."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:16229
+#: doc/guix.texi:18430
 #, no-wrap
 msgid "{Scheme Variable} ladspa-service-type"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:16232
+#: doc/guix.texi:18433
 msgid "This service sets the @var{LADSPA_PATH} variable, so that programs, which respect it, e.g. PulseAudio, can load LADSPA plugins."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:16235
+#: doc/guix.texi:18436
 msgid "The following example will setup the service to enable modules from the @code{swh-plugins} package:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:16239
+#: doc/guix.texi:18440
 #, no-wrap
 msgid ""
 "(service ladspa-service-type\n"
@@ -29856,56 +34039,75 @@ msgid ""
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:16243
+#: doc/guix.texi:18444
 msgid "See @uref{http://plugin.org.uk/ladspa-swh/docs/ladspa-swh.html} for the details."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:16250
+#: doc/guix.texi:18451
 #, no-wrap
 msgid "SQL"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:16252
+#: doc/guix.texi:18453
 msgid "The @code{(gnu services databases)} module provides the following services."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:16253
+#: doc/guix.texi:18454
 #, no-wrap
 msgid "{Scheme Procedure} postgresql-service [#:postgresql postgresql] @"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:16258
+#: doc/guix.texi:18459
 msgid "[#:config-file] [#:data-directory ``/var/lib/postgresql/data''] @ [#:port 5432] [#:locale ``en_US.utf8''] [#:extension-packages '()] Return a service that runs @var{postgresql}, the PostgreSQL database server."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:16262
+#: doc/guix.texi:18463
 msgid "The PostgreSQL daemon loads its runtime configuration from @var{config-file}, creates a database cluster with @var{locale} as the default locale, stored in @var{data-directory}.  It then listens on @var{port}."
 msgstr ""
 
+#. type: deffn
+#: doc/guix.texi:18468
+msgid "If the services fails to start, it may be due to an incompatible cluster already present in @var{data-directory}.  Adjust it (or, if you don't need the cluster anymore, delete @var{data-directory}), then restart the service."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:18475
+msgid "Peer authentication is used by default and the @code{postgres} user account has no shell, which prevents the direct execution of @code{psql} commands as this user.  To use @code{psql}, you can temporarily log in as @code{postgres} using a shell, create a PostgreSQL superuser with the same name as one of the system users and then create the associated database."
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:18480
+#, no-wrap
+msgid ""
+"sudo -u postgres -s /bin/sh\n"
+"createuser --interactive\n"
+"createdb $MY_USER_LOGIN      # Replace appropriately.\n"
+msgstr ""
+
 #. type: cindex
-#: doc/guix.texi:16263
+#: doc/guix.texi:18482
 #, no-wrap
 msgid "postgresql extension-packages"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:16268
+#: doc/guix.texi:18487
 msgid "Additional extensions are loaded from packages listed in @var{extension-packages}.  Extensions are available at runtime.  For instance, to create a geographic database using the @code{postgis} extension, a user can configure the postgresql-service as in this example:"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:16269
+#: doc/guix.texi:18488
 #, no-wrap
 msgid "postgis"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:16272
+#: doc/guix.texi:18491
 #, no-wrap
 msgid ""
 "(use-package-modules databases geo)\n"
@@ -29913,7 +34115,7 @@ msgid ""
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:16282
+#: doc/guix.texi:18501
 #, no-wrap
 msgid ""
 "(operating-system\n"
@@ -29928,12 +34130,12 @@ msgid ""
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:16286
+#: doc/guix.texi:18505
 msgid "Then the extension becomes visible and you can initialise an empty geographic database in this way:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:16293
+#: doc/guix.texi:18512
 #, no-wrap
 msgid ""
 "psql -U postgres\n"
@@ -29944,320 +34146,320 @@ msgid ""
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:16298
+#: doc/guix.texi:18517
 msgid "There is no need to add this field for contrib extensions such as hstore or dblink as they are already loadable by postgresql.  This field is only required to add extensions provided by other packages."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:16300
+#: doc/guix.texi:18519
 #, no-wrap
 msgid "{Scheme Procedure} mysql-service [#:config (mysql-configuration)]"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:16303
+#: doc/guix.texi:18522
 msgid "Return a service that runs @command{mysqld}, the MySQL or MariaDB database server."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:16306
+#: doc/guix.texi:18525
 msgid "The optional @var{config} argument specifies the configuration for @command{mysqld}, which should be a @code{<mysql-configuration>} object."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:16308
+#: doc/guix.texi:18527
 #, no-wrap
 msgid "{Data Type} mysql-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:16310
+#: doc/guix.texi:18529
 msgid "Data type representing the configuration of @var{mysql-service}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:16312
+#: doc/guix.texi:18531
 #, no-wrap
 msgid "@code{mysql} (default: @var{mariadb})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16315
+#: doc/guix.texi:18534
 msgid "Package object of the MySQL database server, can be either @var{mariadb} or @var{mysql}."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16318
+#: doc/guix.texi:18537
 msgid "For MySQL, a temporary root password will be displayed at activation time.  For MariaDB, the root password is empty."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:16319
+#: doc/guix.texi:18538
 #, no-wrap
 msgid "@code{port} (default: @code{3306})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16321
+#: doc/guix.texi:18540
 msgid "TCP port on which the database server listens for incoming connections."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:16324
+#: doc/guix.texi:18543
 #, no-wrap
 msgid "{Scheme Variable} memcached-service-type"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:16328
+#: doc/guix.texi:18547
 msgid "This is the service type for the @uref{https://memcached.org/, Memcached} service, which provides a distributed in memory cache.  The value for the service type is a @code{memcached-configuration} object."
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:16332
+#: doc/guix.texi:18551
 #, no-wrap
 msgid "(service memcached-service-type)\n"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:16334
+#: doc/guix.texi:18553
 #, no-wrap
 msgid "{Data Type} memcached-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:16336
+#: doc/guix.texi:18555
 msgid "Data type representing the configuration of memcached."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:16338
+#: doc/guix.texi:18557
 #, no-wrap
 msgid "@code{memcached} (default: @code{memcached})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16340
+#: doc/guix.texi:18559
 msgid "The Memcached package to use."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:16341
+#: doc/guix.texi:18560
 #, no-wrap
 msgid "@code{interfaces} (default: @code{'(\"0.0.0.0\")})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16343
+#: doc/guix.texi:18562
 msgid "Network interfaces on which to listen."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:16344
+#: doc/guix.texi:18563
 #, no-wrap
 msgid "@code{tcp-port} (default: @code{11211})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16346
+#: doc/guix.texi:18565
 msgid "Port on which to accept connections on,"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:16347
+#: doc/guix.texi:18566
 #, no-wrap
 msgid "@code{udp-port} (default: @code{11211})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16350
+#: doc/guix.texi:18569
 msgid "Port on which to accept UDP connections on, a value of 0 will disable listening on a UDP socket."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:16351
+#: doc/guix.texi:18570
 #, no-wrap
 msgid "@code{additional-options} (default: @code{'()})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16353
+#: doc/guix.texi:18572
 msgid "Additional command line options to pass to @code{memcached}."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:16356
+#: doc/guix.texi:18575
 #, no-wrap
 msgid "{Scheme Variable} mongodb-service-type"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:16359
+#: doc/guix.texi:18578
 msgid "This is the service type for @uref{https://www.mongodb.com/, MongoDB}.  The value for the service type is a @code{mongodb-configuration} object."
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:16363
+#: doc/guix.texi:18582
 #, no-wrap
 msgid "(service mongodb-service-type)\n"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:16365
+#: doc/guix.texi:18584
 #, no-wrap
 msgid "{Data Type} mongodb-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:16367
+#: doc/guix.texi:18586
 msgid "Data type representing the configuration of mongodb."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:16369
+#: doc/guix.texi:18588
 #, no-wrap
 msgid "@code{mongodb} (default: @code{mongodb})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16371
+#: doc/guix.texi:18590
 msgid "The MongoDB package to use."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:16372
+#: doc/guix.texi:18591
 #, no-wrap
 msgid "@code{config-file} (default: @code{%default-mongodb-configuration-file})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16374
+#: doc/guix.texi:18593
 msgid "The configuration file for MongoDB."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:16375
+#: doc/guix.texi:18594
 #, no-wrap
 msgid "@code{data-directory} (default: @code{\"/var/lib/mongodb\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16379
+#: doc/guix.texi:18598
 msgid "This value is used to create the directory, so that it exists and is owned by the mongodb user.  It should match the data-directory which MongoDB is configured to use through the configuration file."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:16382
+#: doc/guix.texi:18601
 #, no-wrap
 msgid "{Scheme Variable} redis-service-type"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:16385
+#: doc/guix.texi:18604
 msgid "This is the service type for the @uref{https://redis.io/, Redis} key/value store, whose value is a @code{redis-configuration} object."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:16387
+#: doc/guix.texi:18606
 #, no-wrap
 msgid "{Data Type} redis-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:16389
+#: doc/guix.texi:18608
 msgid "Data type representing the configuration of redis."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:16391
+#: doc/guix.texi:18610
 #, no-wrap
 msgid "@code{redis} (default: @code{redis})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16393
+#: doc/guix.texi:18612
 msgid "The Redis package to use."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:16394
+#: doc/guix.texi:18613
 #, no-wrap
 msgid "@code{bind} (default: @code{\"127.0.0.1\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16396
+#: doc/guix.texi:18615
 msgid "Network interface on which to listen."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:16397
+#: doc/guix.texi:18616
 #, no-wrap
 msgid "@code{port} (default: @code{6379})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16400
+#: doc/guix.texi:18619
 msgid "Port on which to accept connections on, a value of 0 will disable listening on a TCP socket."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:16401
+#: doc/guix.texi:18620
 #, no-wrap
 msgid "@code{working-directory} (default: @code{\"/var/lib/redis\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16403
+#: doc/guix.texi:18622
 msgid "Directory in which to store the database and related files."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:16409
+#: doc/guix.texi:18628
 #, no-wrap
 msgid "mail"
 msgstr ""
 
-#. type: code{#1}
-#: doc/guix.texi:16410 doc/guix.texi:21133
+#. type: cindex
+#: doc/guix.texi:18629
 #, no-wrap
 msgid "email"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:16415
+#: doc/guix.texi:18634
 msgid "The @code{(gnu services mail)} module provides Guix service definitions for email services: IMAP, POP3, and LMTP servers, as well as mail transport agents (MTAs).  Lots of acronyms! These services are detailed in the subsections below."
 msgstr ""
 
 #. type: subsubheading
-#: doc/guix.texi:16416
+#: doc/guix.texi:18635
 #, no-wrap
 msgid "Dovecot Service"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:16418
+#: doc/guix.texi:18637
 #, no-wrap
 msgid "{Scheme Procedure} dovecot-service [#:config (dovecot-configuration)]"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:16420
+#: doc/guix.texi:18639
 msgid "Return a service that runs the Dovecot IMAP/POP3/LMTP mail server."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:16430
+#: doc/guix.texi:18649
 msgid "By default, Dovecot does not need much configuration; the default configuration object created by @code{(dovecot-configuration)} will suffice if your mail is delivered to @code{~/Maildir}.  A self-signed certificate will be generated for TLS-protected connections, though Dovecot will also listen on cleartext ports by default.  There are a number of options, though, which mail administrators might need to change, and as is the case with other services, Guix allows the system administrator to specify these parameters via a uniform Scheme interface."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:16433
+#: doc/guix.texi:18652
 msgid "For example, to specify that mail is located at @code{maildir~/.mail}, one would instantiate the Dovecot service like this:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:16438
+#: doc/guix.texi:18657
 #, no-wrap
 msgid ""
 "(dovecot-service #:config\n"
@@ -30266,2379 +34468,2379 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:16446
+#: doc/guix.texi:18665
 msgid "The available configuration parameters follow.  Each parameter definition is preceded by its type; for example, @samp{string-list foo} indicates that the @code{foo} parameter should be specified as a list of strings.  There is also a way to specify the configuration as a string, if you have an old @code{dovecot.conf} file that you want to port over from some other system; see the end for more details."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:16456
+#: doc/guix.texi:18675
 msgid "Available @code{dovecot-configuration} fields are:"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16457
+#: doc/guix.texi:18676
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} package dovecot"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16459 doc/guix.texi:17765
+#: doc/guix.texi:18678 doc/guix.texi:19984
 msgid "The dovecot package."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16461
+#: doc/guix.texi:18680
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} comma-separated-string-list listen"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16467
+#: doc/guix.texi:18686
 msgid "A list of IPs or hosts where to listen for connections.  @samp{*} listens on all IPv4 interfaces, @samp{::} listens on all IPv6 interfaces.  If you want to specify non-default ports or anything more complex, customize the address and port fields of the @samp{inet-listener} of the specific services you are interested in."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16469
+#: doc/guix.texi:18688
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} protocol-configuration-list protocols"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16472
+#: doc/guix.texi:18691
 msgid "List of protocols we want to serve.  Available protocols include @samp{imap}, @samp{pop3}, and @samp{lmtp}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16474
+#: doc/guix.texi:18693
 msgid "Available @code{protocol-configuration} fields are:"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16475
+#: doc/guix.texi:18694
 #, no-wrap
 msgid "{@code{protocol-configuration} parameter} string name"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16477
+#: doc/guix.texi:18696
 msgid "The name of the protocol."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16479
+#: doc/guix.texi:18698
 #, no-wrap
 msgid "{@code{protocol-configuration} parameter} string auth-socket-path"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16483
+#: doc/guix.texi:18702
 msgid "UNIX socket path to the master authentication server to find users.  This is used by imap (for shared users) and lda.  It defaults to @samp{\"/var/run/dovecot/auth-userdb\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16485
+#: doc/guix.texi:18704
 #, no-wrap
 msgid "{@code{protocol-configuration} parameter} space-separated-string-list mail-plugins"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16487
+#: doc/guix.texi:18706
 msgid "Space separated list of plugins to load."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16489
+#: doc/guix.texi:18708
 #, no-wrap
 msgid "{@code{protocol-configuration} parameter} non-negative-integer mail-max-userip-connections"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16493
+#: doc/guix.texi:18712
 msgid "Maximum number of IMAP connections allowed for a user from each IP address.  NOTE: The username is compared case-sensitively.  Defaults to @samp{10}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16497
+#: doc/guix.texi:18716
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} service-configuration-list services"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16501
+#: doc/guix.texi:18720
 msgid "List of services to enable.  Available services include @samp{imap}, @samp{imap-login}, @samp{pop3}, @samp{pop3-login}, @samp{auth}, and @samp{lmtp}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16503
+#: doc/guix.texi:18722
 msgid "Available @code{service-configuration} fields are:"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16504
+#: doc/guix.texi:18723
 #, no-wrap
 msgid "{@code{service-configuration} parameter} string kind"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16509
+#: doc/guix.texi:18728
 msgid "The service kind.  Valid values include @code{director}, @code{imap-login}, @code{pop3-login}, @code{lmtp}, @code{imap}, @code{pop3}, @code{auth}, @code{auth-worker}, @code{dict}, @code{tcpwrap}, @code{quota-warning}, or anything else."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16511
+#: doc/guix.texi:18730
 #, no-wrap
 msgid "{@code{service-configuration} parameter} listener-configuration-list listeners"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16516
+#: doc/guix.texi:18735
 msgid "Listeners for the service.  A listener is either a @code{unix-listener-configuration}, a @code{fifo-listener-configuration}, or an @code{inet-listener-configuration}.  Defaults to @samp{()}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16518
+#: doc/guix.texi:18737
 msgid "Available @code{unix-listener-configuration} fields are:"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16519
+#: doc/guix.texi:18738
 #, no-wrap
 msgid "{@code{unix-listener-configuration} parameter} string path"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16522 doc/guix.texi:16545
+#: doc/guix.texi:18741 doc/guix.texi:18764
 msgid "Path to the file, relative to @code{base-dir} field.  This is also used as the section name."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16524
+#: doc/guix.texi:18743
 #, no-wrap
 msgid "{@code{unix-listener-configuration} parameter} string mode"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16527 doc/guix.texi:16550
+#: doc/guix.texi:18746 doc/guix.texi:18769
 msgid "The access mode for the socket.  Defaults to @samp{\"0600\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16529
+#: doc/guix.texi:18748
 #, no-wrap
 msgid "{@code{unix-listener-configuration} parameter} string user"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16532 doc/guix.texi:16555
+#: doc/guix.texi:18751 doc/guix.texi:18774
 msgid "The user to own the socket.  Defaults to @samp{\"\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16534
+#: doc/guix.texi:18753
 #, no-wrap
 msgid "{@code{unix-listener-configuration} parameter} string group"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16537 doc/guix.texi:16560
+#: doc/guix.texi:18756 doc/guix.texi:18779
 msgid "The group to own the socket.  Defaults to @samp{\"\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16541
+#: doc/guix.texi:18760
 msgid "Available @code{fifo-listener-configuration} fields are:"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16542
+#: doc/guix.texi:18761
 #, no-wrap
 msgid "{@code{fifo-listener-configuration} parameter} string path"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16547
+#: doc/guix.texi:18766
 #, no-wrap
 msgid "{@code{fifo-listener-configuration} parameter} string mode"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16552
+#: doc/guix.texi:18771
 #, no-wrap
 msgid "{@code{fifo-listener-configuration} parameter} string user"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16557
+#: doc/guix.texi:18776
 #, no-wrap
 msgid "{@code{fifo-listener-configuration} parameter} string group"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16564
+#: doc/guix.texi:18783
 msgid "Available @code{inet-listener-configuration} fields are:"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16565
+#: doc/guix.texi:18784
 #, no-wrap
 msgid "{@code{inet-listener-configuration} parameter} string protocol"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16567
+#: doc/guix.texi:18786
 msgid "The protocol to listen for."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16569
+#: doc/guix.texi:18788
 #, no-wrap
 msgid "{@code{inet-listener-configuration} parameter} string address"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16572
+#: doc/guix.texi:18791
 msgid "The address on which to listen, or empty for all addresses.  Defaults to @samp{\"\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16574
+#: doc/guix.texi:18793
 #, no-wrap
 msgid "{@code{inet-listener-configuration} parameter} non-negative-integer port"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16576
+#: doc/guix.texi:18795
 msgid "The port on which to listen."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16578
+#: doc/guix.texi:18797
 #, no-wrap
 msgid "{@code{inet-listener-configuration} parameter} boolean ssl?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16582
+#: doc/guix.texi:18801
 msgid "Whether to use SSL for this service; @samp{yes}, @samp{no}, or @samp{required}.  Defaults to @samp{#t}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16586
+#: doc/guix.texi:18805
 #, no-wrap
 msgid "{@code{service-configuration} parameter} non-negative-integer client-limit"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16591
+#: doc/guix.texi:18810
 msgid "Maximum number of simultaneous client connections per process.  Once this number of connections is received, the next incoming connection will prompt Dovecot to spawn another process.  If set to 0, @code{default-client-limit} is used instead."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16596
+#: doc/guix.texi:18815
 #, no-wrap
 msgid "{@code{service-configuration} parameter} non-negative-integer service-count"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16601
+#: doc/guix.texi:18820
 msgid "Number of connections to handle before starting a new process.  Typically the only useful values are 0 (unlimited) or 1.  1 is more secure, but 0 is faster.  <doc/wiki/LoginProcess.txt>.  Defaults to @samp{1}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16604
+#: doc/guix.texi:18823
 #, no-wrap
 msgid "{@code{service-configuration} parameter} non-negative-integer process-limit"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16607
+#: doc/guix.texi:18826
 msgid "Maximum number of processes that can exist for this service.  If set to 0, @code{default-process-limit} is used instead."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16612
+#: doc/guix.texi:18831
 #, no-wrap
 msgid "{@code{service-configuration} parameter} non-negative-integer process-min-avail"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16615
+#: doc/guix.texi:18834
 msgid "Number of processes to always keep waiting for more connections.  Defaults to @samp{0}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16617
+#: doc/guix.texi:18836
 #, no-wrap
 msgid "{@code{service-configuration} parameter} non-negative-integer vsz-limit"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16621
+#: doc/guix.texi:18840
 msgid "If you set @samp{service-count 0}, you probably need to grow this.  Defaults to @samp{256000000}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16625
+#: doc/guix.texi:18844
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} dict-configuration dict"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16628
+#: doc/guix.texi:18847
 msgid "Dict configuration, as created by the @code{dict-configuration} constructor."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16630
+#: doc/guix.texi:18849
 msgid "Available @code{dict-configuration} fields are:"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16631
+#: doc/guix.texi:18850
 #, no-wrap
 msgid "{@code{dict-configuration} parameter} free-form-fields entries"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16634
+#: doc/guix.texi:18853
 msgid "A list of key-value pairs that this dict should hold.  Defaults to @samp{()}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16638
+#: doc/guix.texi:18857
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} passdb-configuration-list passdbs"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16641
+#: doc/guix.texi:18860
 msgid "A list of passdb configurations, each one created by the @code{passdb-configuration} constructor."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16643
+#: doc/guix.texi:18862
 msgid "Available @code{passdb-configuration} fields are:"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16644
+#: doc/guix.texi:18863
 #, no-wrap
 msgid "{@code{passdb-configuration} parameter} string driver"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16649
+#: doc/guix.texi:18868
 msgid "The driver that the passdb should use.  Valid values include @samp{pam}, @samp{passwd}, @samp{shadow}, @samp{bsdauth}, and @samp{static}.  Defaults to @samp{\"pam\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16651
+#: doc/guix.texi:18870
 #, no-wrap
 msgid "{@code{passdb-configuration} parameter} space-separated-string-list args"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16654
+#: doc/guix.texi:18873
 msgid "Space separated list of arguments to the passdb driver.  Defaults to @samp{\"\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16658
+#: doc/guix.texi:18877
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} userdb-configuration-list userdbs"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16661
+#: doc/guix.texi:18880
 msgid "List of userdb configurations, each one created by the @code{userdb-configuration} constructor."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16663
+#: doc/guix.texi:18882
 msgid "Available @code{userdb-configuration} fields are:"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16664
+#: doc/guix.texi:18883
 #, no-wrap
 msgid "{@code{userdb-configuration} parameter} string driver"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16668
+#: doc/guix.texi:18887
 msgid "The driver that the userdb should use.  Valid values include @samp{passwd} and @samp{static}.  Defaults to @samp{\"passwd\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16670
+#: doc/guix.texi:18889
 #, no-wrap
 msgid "{@code{userdb-configuration} parameter} space-separated-string-list args"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16673
+#: doc/guix.texi:18892
 msgid "Space separated list of arguments to the userdb driver.  Defaults to @samp{\"\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16675
+#: doc/guix.texi:18894
 #, no-wrap
 msgid "{@code{userdb-configuration} parameter} free-form-args override-fields"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16678
+#: doc/guix.texi:18897
 msgid "Override fields from passwd.  Defaults to @samp{()}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16682
+#: doc/guix.texi:18901
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} plugin-configuration plugin-configuration"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16685
+#: doc/guix.texi:18904
 msgid "Plug-in configuration, created by the @code{plugin-configuration} constructor."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16687
+#: doc/guix.texi:18906
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} list-of-namespace-configuration namespaces"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16690
+#: doc/guix.texi:18909
 msgid "List of namespaces.  Each item in the list is created by the @code{namespace-configuration} constructor."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16692
+#: doc/guix.texi:18911
 msgid "Available @code{namespace-configuration} fields are:"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16693
+#: doc/guix.texi:18912
 #, no-wrap
 msgid "{@code{namespace-configuration} parameter} string name"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16695
+#: doc/guix.texi:18914
 msgid "Name for this namespace."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16697
+#: doc/guix.texi:18916
 #, no-wrap
 msgid "{@code{namespace-configuration} parameter} string type"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16700
+#: doc/guix.texi:18919
 msgid "Namespace type: @samp{private}, @samp{shared} or @samp{public}.  Defaults to @samp{\"private\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16702
+#: doc/guix.texi:18921
 #, no-wrap
 msgid "{@code{namespace-configuration} parameter} string separator"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16708
+#: doc/guix.texi:18927
 msgid "Hierarchy separator to use. You should use the same separator for all namespaces or some clients get confused.  @samp{/} is usually a good one.  The default however depends on the underlying mail storage format.  Defaults to @samp{\"\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16710
+#: doc/guix.texi:18929
 #, no-wrap
 msgid "{@code{namespace-configuration} parameter} string prefix"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16714
+#: doc/guix.texi:18933
 msgid "Prefix required to access this namespace.  This needs to be different for all namespaces. For example @samp{Public/}.  Defaults to @samp{\"\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16716
+#: doc/guix.texi:18935
 #, no-wrap
 msgid "{@code{namespace-configuration} parameter} string location"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16720
+#: doc/guix.texi:18939
 msgid "Physical location of the mailbox. This is in the same format as mail_location, which is also the default for it.  Defaults to @samp{\"\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16722
+#: doc/guix.texi:18941
 #, no-wrap
 msgid "{@code{namespace-configuration} parameter} boolean inbox?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16726
+#: doc/guix.texi:18945
 msgid "There can be only one INBOX, and this setting defines which namespace has it.  Defaults to @samp{#f}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16728
+#: doc/guix.texi:18947
 #, no-wrap
 msgid "{@code{namespace-configuration} parameter} boolean hidden?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16736
+#: doc/guix.texi:18955
 msgid "If namespace is hidden, it's not advertised to clients via NAMESPACE extension. You'll most likely also want to set @samp{list? #f}.  This is mostly useful when converting from another server with different namespaces which you want to deprecate but still keep working.  For example you can create hidden namespaces with prefixes @samp{~/mail/}, @samp{~%u/mail/} and @samp{mail/}.  Defaults to @samp{#f}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16738
+#: doc/guix.texi:18957
 #, no-wrap
 msgid "{@code{namespace-configuration} parameter} boolean list?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16744
+#: doc/guix.texi:18963
 msgid "Show the mailboxes under this namespace with the LIST command. This makes the namespace visible for clients that do not support the NAMESPACE extension.  The special @code{children} value lists child mailboxes, but hides the namespace prefix.  Defaults to @samp{#t}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16746
+#: doc/guix.texi:18965
 #, no-wrap
 msgid "{@code{namespace-configuration} parameter} boolean subscriptions?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16751
+#: doc/guix.texi:18970
 msgid "Namespace handles its own subscriptions.  If set to @code{#f}, the parent namespace handles them.  The empty prefix should always have this as @code{#t}).  Defaults to @samp{#t}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16753
+#: doc/guix.texi:18972
 #, no-wrap
 msgid "{@code{namespace-configuration} parameter} mailbox-configuration-list mailboxes"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16756
+#: doc/guix.texi:18975
 msgid "List of predefined mailboxes in this namespace.  Defaults to @samp{()}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16758
+#: doc/guix.texi:18977
 msgid "Available @code{mailbox-configuration} fields are:"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16759
+#: doc/guix.texi:18978
 #, no-wrap
 msgid "{@code{mailbox-configuration} parameter} string name"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16761
+#: doc/guix.texi:18980
 msgid "Name for this mailbox."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16763
+#: doc/guix.texi:18982
 #, no-wrap
 msgid "{@code{mailbox-configuration} parameter} string auto"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16767
+#: doc/guix.texi:18986
 msgid "@samp{create} will automatically create this mailbox.  @samp{subscribe} will both create and subscribe to the mailbox.  Defaults to @samp{\"no\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16769
+#: doc/guix.texi:18988
 #, no-wrap
 msgid "{@code{mailbox-configuration} parameter} space-separated-string-list special-use"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16774
+#: doc/guix.texi:18993
 msgid "List of IMAP @code{SPECIAL-USE} attributes as specified by RFC 6154.  Valid values are @code{\\All}, @code{\\Archive}, @code{\\Drafts}, @code{\\Flagged}, @code{\\Junk}, @code{\\Sent}, and @code{\\Trash}.  Defaults to @samp{()}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16780
+#: doc/guix.texi:18999
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} file-name base-dir"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16783
+#: doc/guix.texi:19002
 msgid "Base directory where to store runtime data.  Defaults to @samp{\"/var/run/dovecot/\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16785
+#: doc/guix.texi:19004
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string login-greeting"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16788
+#: doc/guix.texi:19007
 msgid "Greeting message for clients.  Defaults to @samp{\"Dovecot ready.\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16790
+#: doc/guix.texi:19009
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} space-separated-string-list login-trusted-networks"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16797
+#: doc/guix.texi:19016
 msgid "List of trusted network ranges.  Connections from these IPs are allowed to override their IP addresses and ports (for logging and for authentication checks).  @samp{disable-plaintext-auth} is also ignored for these networks.  Typically you would specify your IMAP proxy servers here.  Defaults to @samp{()}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16799
+#: doc/guix.texi:19018
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} space-separated-string-list login-access-sockets"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16802
+#: doc/guix.texi:19021
 msgid "List of login access check sockets (e.g.@: tcpwrap).  Defaults to @samp{()}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16804
+#: doc/guix.texi:19023
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean verbose-proctitle?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16810
+#: doc/guix.texi:19029
 msgid "Show more verbose process titles (in ps).  Currently shows user name and IP address.  Useful for seeing who is actually using the IMAP processes (e.g.@: shared mailboxes or if the same uid is used for multiple accounts).  Defaults to @samp{#f}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16812
+#: doc/guix.texi:19031
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean shutdown-clients?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16818
+#: doc/guix.texi:19037
 msgid "Should all processes be killed when Dovecot master process shuts down.  Setting this to @code{#f} means that Dovecot can be upgraded without forcing existing client connections to close (although that could also be a problem if the upgrade is e.g.@: due to a security fix).  Defaults to @samp{#t}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16820
+#: doc/guix.texi:19039
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} non-negative-integer doveadm-worker-count"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16824
+#: doc/guix.texi:19043
 msgid "If non-zero, run mail commands via this many connections to doveadm server, instead of running them directly in the same process.  Defaults to @samp{0}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16826
+#: doc/guix.texi:19045
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string doveadm-socket-path"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16829
+#: doc/guix.texi:19048
 msgid "UNIX socket or host:port used for connecting to doveadm server.  Defaults to @samp{\"doveadm-server\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16831
+#: doc/guix.texi:19050
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} space-separated-string-list import-environment"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16835
+#: doc/guix.texi:19054
 msgid "List of environment variables that are preserved on Dovecot startup and passed down to all of its child processes.  You can also give key=value pairs to always set specific settings."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16837
+#: doc/guix.texi:19056
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean disable-plaintext-auth?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16844
+#: doc/guix.texi:19063
 msgid "Disable LOGIN command and all other plaintext authentications unless SSL/TLS is used (LOGINDISABLED capability).  Note that if the remote IP matches the local IP (i.e.@: you're connecting from the same computer), the connection is considered secure and plaintext authentication is allowed.  See also ssl=required setting.  Defaults to @samp{#t}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16846
+#: doc/guix.texi:19065
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} non-negative-integer auth-cache-size"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16851
+#: doc/guix.texi:19070
 msgid "Authentication cache size (e.g.@: @samp{#e10e6}).  0 means it's disabled.  Note that bsdauth, PAM and vpopmail require @samp{cache-key} to be set for caching to be used.  Defaults to @samp{0}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16853
+#: doc/guix.texi:19072
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string auth-cache-ttl"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16861
+#: doc/guix.texi:19080
 msgid "Time to live for cached data.  After TTL expires the cached record is no longer used, *except* if the main database lookup returns internal failure.  We also try to handle password changes automatically: If user's previous authentication was successful, but this one wasn't, the cache isn't used.  For now this works only with plaintext authentication.  Defaults to @samp{\"1 hour\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16863
+#: doc/guix.texi:19082
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string auth-cache-negative-ttl"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16867
+#: doc/guix.texi:19086
 msgid "TTL for negative hits (user not found, password mismatch).  0 disables caching them completely.  Defaults to @samp{\"1 hour\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16869
+#: doc/guix.texi:19088
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} space-separated-string-list auth-realms"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16875
+#: doc/guix.texi:19094
 msgid "List of realms for SASL authentication mechanisms that need them.  You can leave it empty if you don't want to support multiple realms.  Many clients simply use the first one listed here, so keep the default realm first.  Defaults to @samp{()}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16877
+#: doc/guix.texi:19096
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string auth-default-realm"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16882
+#: doc/guix.texi:19101
 msgid "Default realm/domain to use if none was specified.  This is used for both SASL realms and appending @@domain to username in plaintext logins.  Defaults to @samp{\"\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16884
+#: doc/guix.texi:19103
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string auth-username-chars"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16891
+#: doc/guix.texi:19110
 msgid "List of allowed characters in username.  If the user-given username contains a character not listed in here, the login automatically fails.  This is just an extra check to make sure user can't exploit any potential quote escaping vulnerabilities with SQL/LDAP databases.  If you want to allow all characters, set this value to empty.  Defaults to @samp{\"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890.-_@@\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16893
+#: doc/guix.texi:19112
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string auth-username-translation"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16899
+#: doc/guix.texi:19118
 msgid "Username character translations before it's looked up from databases.  The value contains series of from -> to characters.  For example @samp{#@@/@@} means that @samp{#} and @samp{/} characters are translated to @samp{@@}.  Defaults to @samp{\"\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16901
+#: doc/guix.texi:19120
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string auth-username-format"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16908
+#: doc/guix.texi:19127
 msgid "Username formatting before it's looked up from databases.  You can use the standard variables here, e.g.@: %Lu would lowercase the username, %n would drop away the domain if it was given, or @samp{%n-AT-%d} would change the @samp{@@} into @samp{-AT-}.  This translation is done after @samp{auth-username-translation} changes.  Defaults to @samp{\"%Lu\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16910
+#: doc/guix.texi:19129
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string auth-master-user-separator"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16918
+#: doc/guix.texi:19137
 msgid "If you want to allow master users to log in by specifying the master username within the normal username string (i.e.@: not using SASL mechanism's support for it), you can specify the separator character here.  The format is then <username><separator><master username>.  UW-IMAP uses @samp{*} as the separator, so that could be a good choice.  Defaults to @samp{\"\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16920
+#: doc/guix.texi:19139
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string auth-anonymous-username"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16924
+#: doc/guix.texi:19143
 msgid "Username to use for users logging in with ANONYMOUS SASL mechanism.  Defaults to @samp{\"anonymous\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16926
+#: doc/guix.texi:19145
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} non-negative-integer auth-worker-max-count"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16931
+#: doc/guix.texi:19150
 msgid "Maximum number of dovecot-auth worker processes.  They're used to execute blocking passdb and userdb queries (e.g.@: MySQL and PAM).  They're automatically created and destroyed as needed.  Defaults to @samp{30}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16933
+#: doc/guix.texi:19152
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string auth-gssapi-hostname"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16938
+#: doc/guix.texi:19157
 msgid "Host name to use in GSSAPI principal names.  The default is to use the name returned by gethostname().  Use @samp{$ALL} (with quotes) to allow all keytab entries.  Defaults to @samp{\"\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16940
+#: doc/guix.texi:19159
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string auth-krb5-keytab"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16946
+#: doc/guix.texi:19165
 msgid "Kerberos keytab to use for the GSSAPI mechanism.  Will use the system default (usually @file{/etc/krb5.keytab}) if not specified.  You may need to change the auth service to run as root to be able to read this file.  Defaults to @samp{\"\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16948
+#: doc/guix.texi:19167
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean auth-use-winbind?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16953
+#: doc/guix.texi:19172
 msgid "Do NTLM and GSS-SPNEGO authentication using Samba's winbind daemon and @samp{ntlm-auth} helper.  <doc/wiki/Authentication/Mechanisms/Winbind.txt>.  Defaults to @samp{#f}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16955
+#: doc/guix.texi:19174
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} file-name auth-winbind-helper-path"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16958
+#: doc/guix.texi:19177
 msgid "Path for Samba's @samp{ntlm-auth} helper binary.  Defaults to @samp{\"/usr/bin/ntlm_auth\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16960
+#: doc/guix.texi:19179
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string auth-failure-delay"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16963
+#: doc/guix.texi:19182
 msgid "Time to delay before replying to failed authentications.  Defaults to @samp{\"2 secs\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16965
+#: doc/guix.texi:19184
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean auth-ssl-require-client-cert?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16969
+#: doc/guix.texi:19188
 msgid "Require a valid SSL client certificate or the authentication fails.  Defaults to @samp{#f}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16971
+#: doc/guix.texi:19190
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean auth-ssl-username-from-cert?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16976
+#: doc/guix.texi:19195
 msgid "Take the username from client's SSL certificate, using @code{X509_NAME_get_text_by_NID()} which returns the subject's DN's CommonName.  Defaults to @samp{#f}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16978
+#: doc/guix.texi:19197
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} space-separated-string-list auth-mechanisms"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16984
+#: doc/guix.texi:19203
 msgid "List of wanted authentication mechanisms.  Supported mechanisms are: @samp{plain}, @samp{login}, @samp{digest-md5}, @samp{cram-md5}, @samp{ntlm}, @samp{rpa}, @samp{apop}, @samp{anonymous}, @samp{gssapi}, @samp{otp}, @samp{skey}, and @samp{gss-spnego}.  NOTE: See also @samp{disable-plaintext-auth} setting."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16986
+#: doc/guix.texi:19205
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} space-separated-string-list director-servers"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16991
+#: doc/guix.texi:19210
 msgid "List of IPs or hostnames to all director servers, including ourself.  Ports can be specified as ip:port.  The default port is the same as what director service's @samp{inet-listener} is using.  Defaults to @samp{()}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16993
+#: doc/guix.texi:19212
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} space-separated-string-list director-mail-servers"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16997
+#: doc/guix.texi:19216
 msgid "List of IPs or hostnames to all backend mail servers.  Ranges are allowed too, like 10.0.0.10-10.0.0.30.  Defaults to @samp{()}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16999
+#: doc/guix.texi:19218
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string director-user-expire"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17003
+#: doc/guix.texi:19222
 msgid "How long to redirect users to a specific server after it no longer has any connections.  Defaults to @samp{\"15 min\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17005
+#: doc/guix.texi:19224
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string director-username-hash"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17010
+#: doc/guix.texi:19229
 msgid "How the username is translated before being hashed.  Useful values include %Ln if user can log in with or without @@domain, %Ld if mailboxes are shared within domain.  Defaults to @samp{\"%Lu\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17012
+#: doc/guix.texi:19231
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string log-path"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17016
+#: doc/guix.texi:19235
 msgid "Log file to use for error messages.  @samp{syslog} logs to syslog, @samp{/dev/stderr} logs to stderr.  Defaults to @samp{\"syslog\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17018
+#: doc/guix.texi:19237
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string info-log-path"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17022
+#: doc/guix.texi:19241
 msgid "Log file to use for informational messages.  Defaults to @samp{log-path}.  Defaults to @samp{\"\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17024
+#: doc/guix.texi:19243
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string debug-log-path"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17028
+#: doc/guix.texi:19247
 msgid "Log file to use for debug messages.  Defaults to @samp{info-log-path}.  Defaults to @samp{\"\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17030
+#: doc/guix.texi:19249
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string syslog-facility"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17035
+#: doc/guix.texi:19254
 msgid "Syslog facility to use if you're logging to syslog.  Usually if you don't want to use @samp{mail}, you'll use local0..local7.  Also other standard facilities are supported.  Defaults to @samp{\"mail\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17037
+#: doc/guix.texi:19256
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean auth-verbose?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17041
+#: doc/guix.texi:19260
 msgid "Log unsuccessful authentication attempts and the reasons why they failed.  Defaults to @samp{#f}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17043
+#: doc/guix.texi:19262
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string auth-verbose-passwords"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17050
+#: doc/guix.texi:19269
 msgid "In case of password mismatches, log the attempted password.  Valid values are no, plain and sha1.  sha1 can be useful for detecting brute force password attempts vs.  user simply trying the same password over and over again.  You can also truncate the value to n chars by appending \":n\" (e.g.@: sha1:6).  Defaults to @samp{\"no\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17052
+#: doc/guix.texi:19271
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean auth-debug?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17056
+#: doc/guix.texi:19275
 msgid "Even more verbose logging for debugging purposes.  Shows for example SQL queries.  Defaults to @samp{#f}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17058
+#: doc/guix.texi:19277
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean auth-debug-passwords?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17063
+#: doc/guix.texi:19282
 msgid "In case of password mismatches, log the passwords and used scheme so the problem can be debugged.  Enabling this also enables @samp{auth-debug}.  Defaults to @samp{#f}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17065
+#: doc/guix.texi:19284
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean mail-debug?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17069
+#: doc/guix.texi:19288
 msgid "Enable mail process debugging.  This can help you figure out why Dovecot isn't finding your mails.  Defaults to @samp{#f}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17071
+#: doc/guix.texi:19290
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean verbose-ssl?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17074
+#: doc/guix.texi:19293
 msgid "Show protocol level SSL errors.  Defaults to @samp{#f}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17076
+#: doc/guix.texi:19295
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string log-timestamp"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17080
+#: doc/guix.texi:19299
 msgid "Prefix for each line written to log file.  % codes are in strftime(3) format.  Defaults to @samp{\"\\\"%b %d %H:%M:%S \\\"\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17082
+#: doc/guix.texi:19301
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} space-separated-string-list login-log-format-elements"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17086
+#: doc/guix.texi:19305
 msgid "List of elements we want to log.  The elements which have a non-empty variable value are joined together to form a comma-separated string."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17088
+#: doc/guix.texi:19307
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string login-log-format"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17092
+#: doc/guix.texi:19311
 msgid "Login log format.  %s contains @samp{login-log-format-elements} string, %$ contains the data we want to log.  Defaults to @samp{\"%$: %s\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17094
+#: doc/guix.texi:19313
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string mail-log-prefix"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17098
+#: doc/guix.texi:19317
 msgid "Log prefix for mail processes.  See doc/wiki/Variables.txt for list of possible variables you can use.  Defaults to @samp{\"\\\"%s(%u)<%@{pid@}><%@{session@}>: \\\"\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17100
+#: doc/guix.texi:19319
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string deliver-log-format"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17102
+#: doc/guix.texi:19321
 msgid "Format to use for logging mail deliveries.  You can use variables:"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:17103
+#: doc/guix.texi:19322
 #, no-wrap
 msgid "%$"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17105
+#: doc/guix.texi:19324
 msgid "Delivery status message (e.g.@: @samp{saved to INBOX})"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:17105
+#: doc/guix.texi:19324
 #, no-wrap
 msgid "%m"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17107
+#: doc/guix.texi:19326
 msgid "Message-ID"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:17107 doc/guix.texi:17639
+#: doc/guix.texi:19326 doc/guix.texi:19858
 #, no-wrap
 msgid "%s"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17109
+#: doc/guix.texi:19328
 msgid "Subject"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:17109
+#: doc/guix.texi:19328
 #, no-wrap
 msgid "%f"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17111
+#: doc/guix.texi:19330
 msgid "From address"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17113
+#: doc/guix.texi:19332
 msgid "Physical size"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:17113
+#: doc/guix.texi:19332
 #, no-wrap
 msgid "%w"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17115
+#: doc/guix.texi:19334
 msgid "Virtual size."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17117
+#: doc/guix.texi:19336
 msgid "Defaults to @samp{\"msgid=%m: %$\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17119
+#: doc/guix.texi:19338
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string mail-location"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17124
+#: doc/guix.texi:19343
 msgid "Location for users' mailboxes.  The default is empty, which means that Dovecot tries to find the mailboxes automatically.  This won't work if the user doesn't yet have any mail, so you should explicitly tell Dovecot the full location."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17130
-msgid "If you're using mbox, giving a path to the INBOX file (e.g.@: /var/mail/%u) isn't enough.  You'll also need to tell Dovecot where the other mailboxes are kept.  This is called the \"root mail directory\", and it must be the first path given in the @samp{mail-location} setting."
+#: doc/guix.texi:19349
+msgid "If you're using mbox, giving a path to the INBOX file (e.g.@: @file{/var/mail/%u}) isn't enough.  You'll also need to tell Dovecot where the other mailboxes are kept.  This is called the @emph{root mail directory}, and it must be the first path given in the @samp{mail-location} setting."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17132
-msgid "There are a few special variables you can use, eg.:"
+#: doc/guix.texi:19351
+msgid "There are a few special variables you can use, e.g.:"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17136
+#: doc/guix.texi:19355
 msgid "username"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:17136 doc/guix.texi:17635
+#: doc/guix.texi:19355 doc/guix.texi:19854
 #, no-wrap
 msgid "%n"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17138
+#: doc/guix.texi:19357
 msgid "user part in user@@domain, same as %u if there's no domain"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:17138
+#: doc/guix.texi:19357
 #, no-wrap
 msgid "%d"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17140
+#: doc/guix.texi:19359
 msgid "domain part in user@@domain, empty if there's no domain"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:17140
+#: doc/guix.texi:19359
 #, no-wrap
 msgid "%h"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17142
+#: doc/guix.texi:19361
 msgid "home director"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17145
+#: doc/guix.texi:19364
 msgid "See doc/wiki/Variables.txt for full list.  Some examples:"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:17146
+#: doc/guix.texi:19365
 #, no-wrap
 msgid "maildir:~/Maildir"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:17147
+#: doc/guix.texi:19366
 #, no-wrap
 msgid "mbox:~/mail:INBOX=/var/mail/%u"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:17148
+#: doc/guix.texi:19367
 #, no-wrap
 msgid "mbox:/var/mail/%d/%1n/%n:INDEX=/var/indexes/%d/%1n/%"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17153
+#: doc/guix.texi:19372
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string mail-uid"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17158
+#: doc/guix.texi:19377
 msgid "System user and group used to access mails.  If you use multiple, userdb can override these by returning uid or gid fields.  You can use either numbers or names.  <doc/wiki/UserIds.txt>.  Defaults to @samp{\"\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17160
+#: doc/guix.texi:19379
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string mail-gid"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17165
+#: doc/guix.texi:19384
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string mail-privileged-group"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17171
-msgid "Group to enable temporarily for privileged operations.  Currently this is used only with INBOX when either its initial creation or dotlocking fails.  Typically this is set to \"mail\" to give access to /var/mail.  Defaults to @samp{\"\"}."
+#: doc/guix.texi:19390
+msgid "Group to enable temporarily for privileged operations.  Currently this is used only with INBOX when either its initial creation or dotlocking fails.  Typically this is set to @samp{\"mail\"} to give access to @file{/var/mail}.  Defaults to @samp{\"\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17173
+#: doc/guix.texi:19392
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string mail-access-groups"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17181
-msgid "Grant access to these supplementary groups for mail processes.  Typically these are used to set up access to shared mailboxes.  Note that it may be dangerous to set these if users can create symlinks (e.g.@: if \"mail\" group is set here, ln -s /var/mail ~/mail/var could allow a user to delete others' mailboxes, or ln -s /secret/shared/box ~/mail/mybox would allow reading it).  Defaults to @samp{\"\"}."
+#: doc/guix.texi:19400
+msgid "Grant access to these supplementary groups for mail processes.  Typically these are used to set up access to shared mailboxes.  Note that it may be dangerous to set these if users can create symlinks (e.g.@: if @samp{mail} group is set here, @code{ln -s /var/mail ~/mail/var} could allow a user to delete others' mailboxes, or @code{ln -s /secret/shared/box ~/mail/mybox} would allow reading it).  Defaults to @samp{\"\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17183
+#: doc/guix.texi:19402
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean mail-full-filesystem-access?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17189
-msgid "Allow full file system access to clients.  There's no access checks other than what the operating system does for the active UID/GID.  It works with both maildir and mboxes, allowing you to prefix mailboxes names with e.g.@: /path/ or ~user/.  Defaults to @samp{#f}."
+#: doc/guix.texi:19408
+msgid "Allow full file system access to clients.  There's no access checks other than what the operating system does for the active UID/GID.  It works with both maildir and mboxes, allowing you to prefix mailboxes names with e.g.@: @file{/path/} or @file{~user/}.  Defaults to @samp{#f}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17191
+#: doc/guix.texi:19410
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean mmap-disable?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17195
-msgid "Don't use mmap() at all.  This is required if you store indexes to shared file systems (NFS or clustered file system).  Defaults to @samp{#f}."
+#: doc/guix.texi:19414
+msgid "Don't use @code{mmap()} at all.  This is required if you store indexes to shared file systems (NFS or clustered file system).  Defaults to @samp{#f}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17197
+#: doc/guix.texi:19416
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean dotlock-use-excl?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17202
+#: doc/guix.texi:19421
 msgid "Rely on @samp{O_EXCL} to work when creating dotlock files.  NFS supports @samp{O_EXCL} since version 3, so this should be safe to use nowadays by default.  Defaults to @samp{#t}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17204
+#: doc/guix.texi:19423
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string mail-fsync"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17206
+#: doc/guix.texi:19425
 msgid "When to use fsync() or fdatasync() calls:"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:17207
+#: doc/guix.texi:19426
 #, no-wrap
 msgid "optimized"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17209
+#: doc/guix.texi:19428
 msgid "Whenever necessary to avoid losing important data"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17211
-msgid "Useful with e.g.@: NFS when write()s are delayed"
+#: doc/guix.texi:19430
+msgid "Useful with e.g.@: NFS when @code{write()}s are delayed"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17213
+#: doc/guix.texi:19432
 msgid "Never use it (best performance, but crashes can lose data)."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17215
+#: doc/guix.texi:19434
 msgid "Defaults to @samp{\"optimized\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17217
+#: doc/guix.texi:19436
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean mail-nfs-storage?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17222
+#: doc/guix.texi:19441
 msgid "Mail storage exists in NFS.  Set this to yes to make Dovecot flush NFS caches whenever needed.  If you're using only a single mail server this isn't needed.  Defaults to @samp{#f}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17224
+#: doc/guix.texi:19443
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean mail-nfs-index?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17228
+#: doc/guix.texi:19447
 msgid "Mail index files also exist in NFS.  Setting this to yes requires @samp{mmap-disable? #t} and @samp{fsync-disable? #f}.  Defaults to @samp{#f}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17230
+#: doc/guix.texi:19449
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string lock-method"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17236
+#: doc/guix.texi:19455
 msgid "Locking method for index files.  Alternatives are fcntl, flock and dotlock.  Dotlocking uses some tricks which may create more disk I/O than other locking methods.  NFS users: flock doesn't work, remember to change @samp{mmap-disable}.  Defaults to @samp{\"fcntl\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17238
+#: doc/guix.texi:19457
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} file-name mail-temp-dir"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17242
+#: doc/guix.texi:19461
 msgid "Directory in which LDA/LMTP temporarily stores incoming mails >128 kB.  Defaults to @samp{\"/tmp\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17244
+#: doc/guix.texi:19463
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} non-negative-integer first-valid-uid"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17250
+#: doc/guix.texi:19469
 msgid "Valid UID range for users.  This is mostly to make sure that users can't log in as daemons or other system users.  Note that denying root logins is hardcoded to dovecot binary and can't be done even if @samp{first-valid-uid} is set to 0.  Defaults to @samp{500}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17252
+#: doc/guix.texi:19471
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} non-negative-integer last-valid-uid"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17257
+#: doc/guix.texi:19476
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} non-negative-integer first-valid-gid"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17262
+#: doc/guix.texi:19481
 msgid "Valid GID range for users.  Users having non-valid GID as primary group ID aren't allowed to log in.  If user belongs to supplementary groups with non-valid GIDs, those groups are not set.  Defaults to @samp{1}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17264
+#: doc/guix.texi:19483
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} non-negative-integer last-valid-gid"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17269
+#: doc/guix.texi:19488
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} non-negative-integer mail-max-keyword-length"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17273
+#: doc/guix.texi:19492
 msgid "Maximum allowed length for mail keyword name.  It's only forced when trying to create new keywords.  Defaults to @samp{50}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17275
+#: doc/guix.texi:19494
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} colon-separated-file-name-list valid-chroot-dirs"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17285
-msgid "List of directories under which chrooting is allowed for mail processes (i.e.@: /var/mail will allow chrooting to /var/mail/foo/bar too).  This setting doesn't affect @samp{login-chroot} @samp{mail-chroot} or auth chroot settings.  If this setting is empty, \"/./\" in home dirs are ignored.  WARNING: Never add directories here which local users can modify, that may lead to root exploit.  Usually this should be done only if you don't allow shell access for users.  <doc/wiki/Chrooting.txt>.  Defaults to @samp{()}."
+#: doc/guix.texi:19504
+msgid "List of directories under which chrooting is allowed for mail processes (i.e.@: @file{/var/mail} will allow chrooting to @file{/var/mail/foo/bar} too).  This setting doesn't affect @samp{login-chroot} @samp{mail-chroot} or auth chroot settings.  If this setting is empty, @samp{/./} in home dirs are ignored.  WARNING: Never add directories here which local users can modify, that may lead to root exploit.  Usually this should be done only if you don't allow shell access for users.  <doc/wiki/Chrooting.txt>.  Defaults to @samp{()}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17287
+#: doc/guix.texi:19506
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string mail-chroot"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17296
-msgid "Default chroot directory for mail processes.  This can be overridden for specific users in user database by giving /./ in user's home directory (e.g.@: /home/./user chroots into /home).  Note that usually there is no real need to do chrooting, Dovecot doesn't allow users to access files outside their mail directory anyway.  If your home directories are prefixed with the chroot directory, append \"/.\"@: to @samp{mail-chroot}.  <doc/wiki/Chrooting.txt>.  Defaults to @samp{\"\"}."
+#: doc/guix.texi:19515
+msgid "Default chroot directory for mail processes.  This can be overridden for specific users in user database by giving @samp{/./} in user's home directory (e.g.@: @samp{/home/./user} chroots into @file{/home}).  Note that usually there is no real need to do chrooting, Dovecot doesn't allow users to access files outside their mail directory anyway.  If your home directories are prefixed with the chroot directory, append @samp{/.} to @samp{mail-chroot}.  <doc/wiki/Chrooting.txt>.  Defaults to @samp{\"\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17298
+#: doc/guix.texi:19517
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} file-name auth-socket-path"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17302
+#: doc/guix.texi:19521
 msgid "UNIX socket path to master authentication server to find users.  This is used by imap (for shared users) and lda.  Defaults to @samp{\"/var/run/dovecot/auth-userdb\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17304
+#: doc/guix.texi:19523
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} file-name mail-plugin-dir"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17307
+#: doc/guix.texi:19526
 msgid "Directory where to look up mail plugins.  Defaults to @samp{\"/usr/lib/dovecot\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17309
+#: doc/guix.texi:19528
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} space-separated-string-list mail-plugins"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17313
+#: doc/guix.texi:19532
 msgid "List of plugins to load for all services.  Plugins specific to IMAP, LDA, etc.@: are added to this list in their own .conf files.  Defaults to @samp{()}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17315
+#: doc/guix.texi:19534
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} non-negative-integer mail-cache-min-mail-count"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17320
+#: doc/guix.texi:19539
 msgid "The minimum number of mails in a mailbox before updates are done to cache file.  This allows optimizing Dovecot's behavior to do less disk writes at the cost of more disk reads.  Defaults to @samp{0}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17322
+#: doc/guix.texi:19541
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string mailbox-idle-check-interval"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17329
+#: doc/guix.texi:19548
 msgid "When IDLE command is running, mailbox is checked once in a while to see if there are any new mails or other changes.  This setting defines the minimum time to wait between those checks.  Dovecot can also use dnotify, inotify and kqueue to find out immediately when changes occur.  Defaults to @samp{\"30 secs\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17331
+#: doc/guix.texi:19550
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean mail-save-crlf?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17338
+#: doc/guix.texi:19557
 msgid "Save mails with CR+LF instead of plain LF.  This makes sending those mails take less CPU, especially with sendfile() syscall with Linux and FreeBSD.  But it also creates a bit more disk I/O which may just make it slower.  Also note that if other software reads the mboxes/maildirs, they may handle the extra CRs wrong and cause problems.  Defaults to @samp{#f}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17340
+#: doc/guix.texi:19559
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean maildir-stat-dirs?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17348
+#: doc/guix.texi:19567
 msgid "By default LIST command returns all entries in maildir beginning with a dot.  Enabling this option makes Dovecot return only entries which are directories.  This is done by stat()ing each entry, so it causes more disk I/O.  (For systems setting struct @samp{dirent->d_type} this check is free and it's done always regardless of this setting).  Defaults to @samp{#f}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17350
+#: doc/guix.texi:19569
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean maildir-copy-with-hardlinks?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17355
+#: doc/guix.texi:19574
 msgid "When copying a message, do it with hard links whenever possible.  This makes the performance much better, and it's unlikely to have any side effects.  Defaults to @samp{#t}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17357
+#: doc/guix.texi:19576
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean maildir-very-dirty-syncs?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17362
+#: doc/guix.texi:19581
 msgid "Assume Dovecot is the only MUA accessing Maildir: Scan cur/ directory only when its mtime changes unexpectedly or when we can't find the mail otherwise.  Defaults to @samp{#f}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17364
+#: doc/guix.texi:19583
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} space-separated-string-list mbox-read-locks"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17367
+#: doc/guix.texi:19586
 msgid "Which locking methods to use for locking mbox.  There are four available:"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:17369
+#: doc/guix.texi:19588
 #, no-wrap
 msgid "dotlock"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17373
+#: doc/guix.texi:19592
 msgid "Create <mailbox>.lock file.  This is the oldest and most NFS-safe solution.  If you want to use /var/mail/ like directory, the users will need write access to that directory."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:17373
+#: doc/guix.texi:19592
 #, no-wrap
 msgid "dotlock-try"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17376
+#: doc/guix.texi:19595
 msgid "Same as dotlock, but if it fails because of permissions or because there isn't enough disk space, just skip it."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:17376
+#: doc/guix.texi:19595
 #, no-wrap
 msgid "fcntl"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17378
+#: doc/guix.texi:19597
 msgid "Use this if possible.  Works with NFS too if lockd is used."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:17378
+#: doc/guix.texi:19597
 #, no-wrap
 msgid "flock"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17380 doc/guix.texi:17382
+#: doc/guix.texi:19599 doc/guix.texi:19601
 msgid "May not exist in all systems.  Doesn't work with NFS."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:17380
+#: doc/guix.texi:19599
 #, no-wrap
 msgid "lockf"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17388
+#: doc/guix.texi:19607
 msgid "You can use multiple locking methods; if you do the order they're declared in is important to avoid deadlocks if other MTAs/MUAs are using multiple locking methods as well.  Some operating systems don't allow using some of them simultaneously."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17390
+#: doc/guix.texi:19609
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} space-separated-string-list mbox-write-locks"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17394
+#: doc/guix.texi:19613
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string mbox-lock-timeout"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17397
+#: doc/guix.texi:19616
 msgid "Maximum time to wait for lock (all of them) before aborting.  Defaults to @samp{\"5 mins\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17399
+#: doc/guix.texi:19618
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string mbox-dotlock-change-timeout"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17403
+#: doc/guix.texi:19622
 msgid "If dotlock exists but the mailbox isn't modified in any way, override the lock file after this much time.  Defaults to @samp{\"2 mins\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17405
+#: doc/guix.texi:19624
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean mbox-dirty-syncs?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17416
+#: doc/guix.texi:19635
 msgid "When mbox changes unexpectedly we have to fully read it to find out what changed.  If the mbox is large this can take a long time.  Since the change is usually just a newly appended mail, it'd be faster to simply read the new mails.  If this setting is enabled, Dovecot does this but still safely fallbacks to re-reading the whole mbox file whenever something in mbox isn't how it's expected to be.  The only real downside to this setting is that if some other MUA changes message flags, Dovecot doesn't notice it immediately.  Note that a full sync is done with SELECT, EXAMINE, EXPUNGE and CHECK commands.  Defaults to @samp{#t}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17418
+#: doc/guix.texi:19637
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean mbox-very-dirty-syncs?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17423
+#: doc/guix.texi:19642
 msgid "Like @samp{mbox-dirty-syncs}, but don't do full syncs even with SELECT, EXAMINE, EXPUNGE or CHECK commands.  If this is set, @samp{mbox-dirty-syncs} is ignored.  Defaults to @samp{#f}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17425
+#: doc/guix.texi:19644
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean mbox-lazy-writes?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17431
+#: doc/guix.texi:19650
 msgid "Delay writing mbox headers until doing a full write sync (EXPUNGE and CHECK commands and when closing the mailbox).  This is especially useful for POP3 where clients often delete all mails.  The downside is that our changes aren't immediately visible to other MUAs.  Defaults to @samp{#t}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17433
+#: doc/guix.texi:19652
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} non-negative-integer mbox-min-index-size"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17438
+#: doc/guix.texi:19657
 msgid "If mbox size is smaller than this (e.g.@: 100k), don't write index files.  If an index file already exists it's still read, just not updated.  Defaults to @samp{0}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17440
+#: doc/guix.texi:19659
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} non-negative-integer mdbox-rotate-size"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17443
+#: doc/guix.texi:19662
 msgid "Maximum dbox file size until it's rotated.  Defaults to @samp{10000000}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17445
+#: doc/guix.texi:19664
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string mdbox-rotate-interval"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17450
+#: doc/guix.texi:19669
 msgid "Maximum dbox file age until it's rotated.  Typically in days.  Day begins from midnight, so 1d = today, 2d = yesterday, etc.  0 = check disabled.  Defaults to @samp{\"1d\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17452
+#: doc/guix.texi:19671
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean mdbox-preallocate-space?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17457
+#: doc/guix.texi:19676
 msgid "When creating new mdbox files, immediately preallocate their size to @samp{mdbox-rotate-size}.  This setting currently works only in Linux with some file systems (ext4, xfs).  Defaults to @samp{#f}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17459
+#: doc/guix.texi:19678
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string mail-attachment-dir"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17463
+#: doc/guix.texi:19682
 msgid "sdbox and mdbox support saving mail attachments to external files, which also allows single instance storage for them.  Other backends don't support this for now."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17465
+#: doc/guix.texi:19684
 msgid "WARNING: This feature hasn't been tested much yet.  Use at your own risk."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17468
+#: doc/guix.texi:19687
 msgid "Directory root where to store mail attachments.  Disabled, if empty.  Defaults to @samp{\"\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17470
+#: doc/guix.texi:19689
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} non-negative-integer mail-attachment-min-size"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17475
+#: doc/guix.texi:19694
 msgid "Attachments smaller than this aren't saved externally.  It's also possible to write a plugin to disable saving specific attachments externally.  Defaults to @samp{128000}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17477
+#: doc/guix.texi:19696
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string mail-attachment-fs"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17479
+#: doc/guix.texi:19698
 msgid "File system backend to use for saving attachments:"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:17480
+#: doc/guix.texi:19699
 #, no-wrap
 msgid "posix"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17482
+#: doc/guix.texi:19701
 msgid "No SiS done by Dovecot (but this might help FS's own deduplication)"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:17482
+#: doc/guix.texi:19701
 #, no-wrap
 msgid "sis posix"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17484
+#: doc/guix.texi:19703
 msgid "SiS with immediate byte-by-byte comparison during saving"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:17484
+#: doc/guix.texi:19703
 #, no-wrap
 msgid "sis-queue posix"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17486
+#: doc/guix.texi:19705
 msgid "SiS with delayed comparison and deduplication."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17488
+#: doc/guix.texi:19707
 msgid "Defaults to @samp{\"sis posix\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17490
+#: doc/guix.texi:19709
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string mail-attachment-hash"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17496
+#: doc/guix.texi:19715
 msgid "Hash format to use in attachment filenames.  You can add any text and variables: @code{%@{md4@}}, @code{%@{md5@}}, @code{%@{sha1@}}, @code{%@{sha256@}}, @code{%@{sha512@}}, @code{%@{size@}}.  Variables can be truncated, e.g.@: @code{%@{sha256:80@}} returns only first 80 bits.  Defaults to @samp{\"%@{sha1@}\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17498
+#: doc/guix.texi:19717
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} non-negative-integer default-process-limit"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17503
+#: doc/guix.texi:19722
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} non-negative-integer default-client-limit"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17506 doc/guix.texi:23516
+#: doc/guix.texi:19725 doc/guix.texi:25873
 msgid "Defaults to @samp{1000}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17508
+#: doc/guix.texi:19727
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} non-negative-integer default-vsz-limit"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17513
+#: doc/guix.texi:19732
 msgid "Default VSZ (virtual memory size) limit for service processes.  This is mainly intended to catch and kill processes that leak memory before they eat up everything.  Defaults to @samp{256000000}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17515
+#: doc/guix.texi:19734
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string default-login-user"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17520
+#: doc/guix.texi:19739
 msgid "Login user is internally used by login processes.  This is the most untrusted user in Dovecot system.  It shouldn't have access to anything at all.  Defaults to @samp{\"dovenull\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17522
+#: doc/guix.texi:19741
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string default-internal-user"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17527
+#: doc/guix.texi:19746
 msgid "Internal user is used by unprivileged processes.  It should be separate from login user, so that login processes can't disturb other processes.  Defaults to @samp{\"dovecot\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17529
+#: doc/guix.texi:19748
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string ssl?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17532
+#: doc/guix.texi:19751
 msgid "SSL/TLS support: yes, no, required.  <doc/wiki/SSL.txt>.  Defaults to @samp{\"required\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17534
+#: doc/guix.texi:19753
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string ssl-cert"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17537
+#: doc/guix.texi:19756
 msgid "PEM encoded X.509 SSL/TLS certificate (public key).  Defaults to @samp{\"</etc/dovecot/default.pem\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17539
+#: doc/guix.texi:19758
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string ssl-key"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17544
+#: doc/guix.texi:19763
 msgid "PEM encoded SSL/TLS private key.  The key is opened before dropping root privileges, so keep the key file unreadable by anyone but root.  Defaults to @samp{\"</etc/dovecot/private/default.pem\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17546
+#: doc/guix.texi:19765
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string ssl-key-password"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17552
+#: doc/guix.texi:19771
 msgid "If key file is password protected, give the password here.  Alternatively give it when starting dovecot with -p parameter.  Since this file is often world-readable, you may want to place this setting instead to a different.  Defaults to @samp{\"\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17554
+#: doc/guix.texi:19773
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string ssl-ca"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17560
+#: doc/guix.texi:19779
 msgid "PEM encoded trusted certificate authority.  Set this only if you intend to use @samp{ssl-verify-client-cert? #t}.  The file should contain the CA certificate(s) followed by the matching CRL(s).  (e.g.@: @samp{ssl-ca </etc/ssl/certs/ca.pem}).  Defaults to @samp{\"\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17562
+#: doc/guix.texi:19781
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean ssl-require-crl?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17565
+#: doc/guix.texi:19784
 msgid "Require that CRL check succeeds for client certificates.  Defaults to @samp{#t}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17567
+#: doc/guix.texi:19786
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean ssl-verify-client-cert?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17571
+#: doc/guix.texi:19790
 msgid "Request client to send a certificate.  If you also want to require it, set @samp{auth-ssl-require-client-cert? #t} in auth section.  Defaults to @samp{#f}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17573
+#: doc/guix.texi:19792
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string ssl-cert-username-field"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17578
+#: doc/guix.texi:19797
 msgid "Which field from certificate to use for username.  commonName and x500UniqueIdentifier are the usual choices.  You'll also need to set @samp{auth-ssl-username-from-cert? #t}.  Defaults to @samp{\"commonName\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17580
+#: doc/guix.texi:19799
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string ssl-min-protocol"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17583
+#: doc/guix.texi:19802
 msgid "Minimum SSL protocol version to accept.  Defaults to @samp{\"TLSv1\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17585
+#: doc/guix.texi:19804
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string ssl-cipher-list"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17588
+#: doc/guix.texi:19807
 msgid "SSL ciphers to use.  Defaults to @samp{\"ALL:!kRSA:!SRP:!kDHd:!DSS:!aNULL:!eNULL:!EXPORT:!DES:!3DES:!MD5:!PSK:!RC4:!ADH:!LOW@@STRENGTH\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17590
+#: doc/guix.texi:19809
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string ssl-crypto-device"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17593
+#: doc/guix.texi:19812
 msgid "SSL crypto device to use, for valid values run \"openssl engine\".  Defaults to @samp{\"\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17595
+#: doc/guix.texi:19814
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string postmaster-address"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17599
+#: doc/guix.texi:19818
 msgid "Address to use when sending rejection mails.  %d expands to recipient domain.  Defaults to @samp{\"postmaster@@%d\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17601
+#: doc/guix.texi:19820
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string hostname"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17605
+#: doc/guix.texi:19824
 msgid "Hostname to use in various parts of sent mails (e.g.@: in Message-Id)  and in LMTP replies.  Default is the system's real hostname@@domain.  Defaults to @samp{\"\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17607
+#: doc/guix.texi:19826
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean quota-full-tempfail?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17611
+#: doc/guix.texi:19830
 msgid "If user is over quota, return with temporary failure instead of bouncing the mail.  Defaults to @samp{#f}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17613
+#: doc/guix.texi:19832
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} file-name sendmail-path"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17616
+#: doc/guix.texi:19835
 msgid "Binary to use for sending mails.  Defaults to @samp{\"/usr/sbin/sendmail\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17618
+#: doc/guix.texi:19837
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string submission-host"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17622
+#: doc/guix.texi:19841
 msgid "If non-empty, send mails via this SMTP host[:port] instead of sendmail.  Defaults to @samp{\"\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17624
+#: doc/guix.texi:19843
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string rejection-subject"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17628
+#: doc/guix.texi:19847
 msgid "Subject: header to use for rejection mails.  You can use the same variables as for @samp{rejection-reason} below.  Defaults to @samp{\"Rejected: %s\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17630
+#: doc/guix.texi:19849
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string rejection-reason"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17633
+#: doc/guix.texi:19852
 msgid "Human readable error message for rejection mails.  You can use variables:"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17637
+#: doc/guix.texi:19856
 msgid "CRLF"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:17637
+#: doc/guix.texi:19856
 #, no-wrap
 msgid "%r"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17639
+#: doc/guix.texi:19858
 msgid "reason"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17641
+#: doc/guix.texi:19860
 msgid "original subject"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:17641
+#: doc/guix.texi:19860
 #, no-wrap
 msgid "%t"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17643
+#: doc/guix.texi:19862
 msgid "recipient"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17645
+#: doc/guix.texi:19864
 msgid "Defaults to @samp{\"Your message to <%t> was automatically rejected:%n%r\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17647
+#: doc/guix.texi:19866
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string recipient-delimiter"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17651
+#: doc/guix.texi:19870
 msgid "Delimiter character between local-part and detail in email address.  Defaults to @samp{\"+\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17653
+#: doc/guix.texi:19872
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string lda-original-recipient-header"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17659
+#: doc/guix.texi:19878
 msgid "Header where the original recipient address (SMTP's RCPT TO: address) is taken from if not available elsewhere.  With dovecot-lda -a parameter overrides this.  A commonly used header for this is X-Original-To.  Defaults to @samp{\"\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17661
+#: doc/guix.texi:19880
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean lda-mailbox-autocreate?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17665
+#: doc/guix.texi:19884
 msgid "Should saving a mail to a nonexistent mailbox automatically create it?.  Defaults to @samp{#f}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17667
+#: doc/guix.texi:19886
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean lda-mailbox-autosubscribe?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17671
+#: doc/guix.texi:19890
 msgid "Should automatically created mailboxes be also automatically subscribed?.  Defaults to @samp{#f}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17673
+#: doc/guix.texi:19892
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} non-negative-integer imap-max-line-length"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17679
+#: doc/guix.texi:19898
 msgid "Maximum IMAP command line length.  Some clients generate very long command lines with huge mailboxes, so you may need to raise this if you get \"Too long argument\" or \"IMAP command line too large\" errors often.  Defaults to @samp{64000}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17681
+#: doc/guix.texi:19900
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string imap-logout-format"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17683
+#: doc/guix.texi:19902
 msgid "IMAP logout format string:"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:17684
+#: doc/guix.texi:19903
 #, no-wrap
 msgid "%i"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17686
+#: doc/guix.texi:19905
 msgid "total number of bytes read from client"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:17686
+#: doc/guix.texi:19905
 #, no-wrap
 msgid "%o"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17688
+#: doc/guix.texi:19907
 msgid "total number of bytes sent to client."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17691
+#: doc/guix.texi:19910
 msgid "See @file{doc/wiki/Variables.txt} for a list of all the variables you can use.  Defaults to @samp{\"in=%i out=%o deleted=%@{deleted@} expunged=%@{expunged@} trashed=%@{trashed@} hdr_count=%@{fetch_hdr_count@} hdr_bytes=%@{fetch_hdr_bytes@} body_count=%@{fetch_body_count@} body_bytes=%@{fetch_body_bytes@}\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17693
+#: doc/guix.texi:19912
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string imap-capability"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17697
+#: doc/guix.texi:19916
 msgid "Override the IMAP CAPABILITY response.  If the value begins with '+', add the given capabilities on top of the defaults (e.g.@: +XFOO XBAR).  Defaults to @samp{\"\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17699
+#: doc/guix.texi:19918
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string imap-idle-notify-interval"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17703
+#: doc/guix.texi:19922
 msgid "How long to wait between \"OK Still here\" notifications when client is IDLEing.  Defaults to @samp{\"2 mins\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17705
+#: doc/guix.texi:19924
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string imap-id-send"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17711
+#: doc/guix.texi:19930
 msgid "ID field names and values to send to clients.  Using * as the value makes Dovecot use the default value.  The following fields have default values currently: name, version, os, os-version, support-url, support-email.  Defaults to @samp{\"\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17713
+#: doc/guix.texi:19932
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string imap-id-log"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17716
+#: doc/guix.texi:19935
 msgid "ID fields sent by client to log.  * means everything.  Defaults to @samp{\"\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17718
+#: doc/guix.texi:19937
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} space-separated-string-list imap-client-workarounds"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17720
+#: doc/guix.texi:19939
 msgid "Workarounds for various client bugs:"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:17722
+#: doc/guix.texi:19941
 #, no-wrap
 msgid "delay-newmail"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17729
+#: doc/guix.texi:19948
 msgid "Send EXISTS/RECENT new mail notifications only when replying to NOOP and CHECK commands.  Some clients ignore them otherwise, for example OSX Mail (<v2.1).  Outlook Express breaks more badly though, without this it may show user \"Message no longer in server\" errors.  Note that OE6 still breaks even with this workaround if synchronization is set to \"Headers Only\"."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:17730
+#: doc/guix.texi:19949
 #, no-wrap
 msgid "tb-extra-mailbox-sep"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17734
+#: doc/guix.texi:19953
 msgid "Thunderbird gets somehow confused with LAYOUT=fs (mbox and dbox) and adds extra @samp{/} suffixes to mailbox names.  This option causes Dovecot to ignore the extra @samp{/} instead of treating it as invalid mailbox name."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:17735
+#: doc/guix.texi:19954
 #, no-wrap
 msgid "tb-lsub-flags"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17739
+#: doc/guix.texi:19958
 msgid "Show \\Noselect flags for LSUB replies with LAYOUT=fs (e.g.@: mbox).  This makes Thunderbird realize they aren't selectable and show them greyed out, instead of only later giving \"not selectable\" popup error."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17743
+#: doc/guix.texi:19962
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string imap-urlauth-host"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17746
+#: doc/guix.texi:19965
 msgid "Host allowed in URLAUTH URLs sent by client.  \"*\" allows all.  Defaults to @samp{\"\"}."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:17754
+#: doc/guix.texi:19973
 msgid "Whew! Lots of configuration options.  The nice thing about it though is that Guix has a complete interface to Dovecot's configuration language.  This allows not only a nice way to declare configurations, but also offers reflective capabilities as well: users can write code to inspect and transform configurations from within Scheme."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:17760
+#: doc/guix.texi:19979
 msgid "However, it could be that you just want to get a @code{dovecot.conf} up and running.  In that case, you can pass an @code{opaque-dovecot-configuration} as the @code{#:config} parameter to @code{dovecot-service}.  As its name indicates, an opaque configuration does not have easy reflective capabilities."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:17762
+#: doc/guix.texi:19981
 msgid "Available @code{opaque-dovecot-configuration} fields are:"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17763
+#: doc/guix.texi:19982
 #, no-wrap
 msgid "{@code{opaque-dovecot-configuration} parameter} package dovecot"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17767
+#: doc/guix.texi:19986
 #, no-wrap
 msgid "{@code{opaque-dovecot-configuration} parameter} string string"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17769
+#: doc/guix.texi:19988
 msgid "The contents of the @code{dovecot.conf}, as a string."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:17773
+#: doc/guix.texi:19992
 msgid "For example, if your @code{dovecot.conf} is just the empty string, you could instantiate a dovecot service like this:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:17778
+#: doc/guix.texi:19997
 #, no-wrap
 msgid ""
 "(dovecot-service #:config\n"
@@ -32647,24 +36849,24 @@ msgid ""
 msgstr ""
 
 #. type: subsubheading
-#: doc/guix.texi:17780
+#: doc/guix.texi:19999
 #, no-wrap
 msgid "OpenSMTPD Service"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:17782
+#: doc/guix.texi:20001
 #, no-wrap
 msgid "{Scheme Variable} opensmtpd-service-type"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:17786
+#: doc/guix.texi:20005
 msgid "This is the type of the @uref{https://www.opensmtpd.org, OpenSMTPD} service, whose value should be an @code{opensmtpd-configuration} object as in this example:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:17791
+#: doc/guix.texi:20010
 #, no-wrap
 msgid ""
 "(service opensmtpd-service-type\n"
@@ -32673,76 +36875,76 @@ msgid ""
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:17794
+#: doc/guix.texi:20013
 #, no-wrap
 msgid "{Data Type} opensmtpd-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:17796
+#: doc/guix.texi:20015
 msgid "Data type representing the configuration of opensmtpd."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:17798
+#: doc/guix.texi:20017
 #, no-wrap
 msgid "@code{package} (default: @var{opensmtpd})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17800
+#: doc/guix.texi:20019
 msgid "Package object of the OpenSMTPD SMTP server."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:17801
+#: doc/guix.texi:20020
 #, fuzzy, no-wrap
 #| msgid "@code{features} (default: @code{'()})"
 msgid "@code{config-file} (default: @code{%default-opensmtpd-file})"
 msgstr "@code{features} (default: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:17806
+#: doc/guix.texi:20025
 msgid "File-like object of the OpenSMTPD configuration file to use.  By default it listens on the loopback network interface, and allows for mail from users and daemons on the local machine, as well as permitting email to remote servers.  Run @command{man smtpd.conf} for more information."
 msgstr ""
 
 #. type: subsubheading
-#: doc/guix.texi:17810
+#: doc/guix.texi:20029
 #, no-wrap
 msgid "Exim Service"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:17812
+#: doc/guix.texi:20031
 #, no-wrap
 msgid "mail transfer agent (MTA)"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:17813
+#: doc/guix.texi:20032
 #, no-wrap
 msgid "MTA (mail transfer agent)"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:17814
+#: doc/guix.texi:20033
 #, no-wrap
 msgid "SMTP"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:17816
+#: doc/guix.texi:20035
 #, no-wrap
 msgid "{Scheme Variable} exim-service-type"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:17820
+#: doc/guix.texi:20039
 msgid "This is the type of the @uref{https://exim.org, Exim} mail transfer agent (MTA), whose value should be an @code{exim-configuration} object as in this example:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:17825
+#: doc/guix.texi:20044
 #, no-wrap
 msgid ""
 "(service exim-service-type\n"
@@ -32751,557 +36953,557 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:17831
+#: doc/guix.texi:20050
 msgid "In order to use an @code{exim-service-type} service you must also have a @code{mail-aliases-service-type} service present in your @code{operating-system} (even if it has no aliases)."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:17832
+#: doc/guix.texi:20051
 #, no-wrap
 msgid "{Data Type} exim-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:17834
+#: doc/guix.texi:20053
 msgid "Data type representing the configuration of exim."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:17836
+#: doc/guix.texi:20055
 #, no-wrap
 msgid "@code{package} (default: @var{exim})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17838
+#: doc/guix.texi:20057
 msgid "Package object of the Exim server."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17845
+#: doc/guix.texi:20064
 msgid "File-like object of the Exim configuration file to use. If its value is @code{#f} then use the default configuration file from the package provided in @code{package}. The resulting configuration file is loaded after setting the @code{exim_user} and @code{exim_group} configuration variables."
 msgstr ""
 
 #. type: subsubheading
-#: doc/guix.texi:17849
+#: doc/guix.texi:20068
 #, fuzzy, no-wrap
 #| msgid "Mail Services"
 msgid "Getmail service"
 msgstr "Почтовые сервисы"
 
 #. type: cindex
-#: doc/guix.texi:17851
+#: doc/guix.texi:20070
 #, no-wrap
 msgid "IMAP"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:17852
+#: doc/guix.texi:20071
 #, no-wrap
 msgid "POP"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:17854
+#: doc/guix.texi:20073
 #, no-wrap
 msgid "{Scheme Variable} getmail-service-type"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:17857
+#: doc/guix.texi:20076
 msgid "This is the type of the @uref{http://pyropus.ca/software/getmail/, Getmail} mail retriever, whose value should be an @code{getmail-configuration}."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:17860
+#: doc/guix.texi:20079
 msgid "Available @code{getmail-configuration} fields are:"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17861
+#: doc/guix.texi:20080
 #, no-wrap
 msgid "{@code{getmail-configuration} parameter} symbol name"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17863
+#: doc/guix.texi:20082
 msgid "A symbol to identify the getmail service."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17865
+#: doc/guix.texi:20084
 msgid "Defaults to @samp{\"unset\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17868
+#: doc/guix.texi:20087
 #, no-wrap
 msgid "{@code{getmail-configuration} parameter} package package"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17870
+#: doc/guix.texi:20089
 #, fuzzy
 #| msgid "The package data type."
 msgid "The getmail package to use."
 msgstr "Тип данных пакет"
 
 #. type: deftypevr
-#: doc/guix.texi:17873
+#: doc/guix.texi:20092
 #, no-wrap
 msgid "{@code{getmail-configuration} parameter} string user"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17875
+#: doc/guix.texi:20094
 msgid "The user to run getmail as."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17877 doc/guix.texi:17884
+#: doc/guix.texi:20096 doc/guix.texi:20103
 msgid "Defaults to @samp{\"getmail\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17880
+#: doc/guix.texi:20099
 #, no-wrap
 msgid "{@code{getmail-configuration} parameter} string group"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17882
+#: doc/guix.texi:20101
 msgid "The group to run getmail as."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17887
+#: doc/guix.texi:20106
 #, no-wrap
 msgid "{@code{getmail-configuration} parameter} string directory"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17889
+#: doc/guix.texi:20108
 msgid "The getmail directory to use."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17891
+#: doc/guix.texi:20110
 msgid "Defaults to @samp{\"/var/lib/getmail/default\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17894
+#: doc/guix.texi:20113
 #, no-wrap
 msgid "{@code{getmail-configuration} parameter} getmail-configuration-file rcfile"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17896
+#: doc/guix.texi:20115
 #, fuzzy
 #| msgid "configuration file for channels"
 msgid "The getmail configuration file to use."
 msgstr "конфигурационный файл для каналов"
 
 #. type: deftypevr
-#: doc/guix.texi:17898
+#: doc/guix.texi:20117
 msgid "Available @code{getmail-configuration-file} fields are:"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17899
+#: doc/guix.texi:20118
 #, no-wrap
 msgid "{@code{getmail-configuration-file} parameter} getmail-retriever-configuration retriever"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17901
+#: doc/guix.texi:20120
 msgid "What mail account to retrieve mail from, and how to access that account."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17903
+#: doc/guix.texi:20122
 msgid "Available @code{getmail-retriever-configuration} fields are:"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17904
+#: doc/guix.texi:20123
 #, no-wrap
 msgid "{@code{getmail-retriever-configuration} parameter} string type"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17907
+#: doc/guix.texi:20126
 msgid "The type of mail retriever to use.  Valid values include @samp{passwd} and @samp{static}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17909
+#: doc/guix.texi:20128
 msgid "Defaults to @samp{\"SimpleIMAPSSLRetriever\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17912
+#: doc/guix.texi:20131
 #, no-wrap
 msgid "{@code{getmail-retriever-configuration} parameter} string server"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17914 doc/guix.texi:17921
+#: doc/guix.texi:20133 doc/guix.texi:20140
 msgid "Username to login to the mail server with."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17916 doc/guix.texi:17923 doc/guix.texi:17987
+#: doc/guix.texi:20135 doc/guix.texi:20142 doc/guix.texi:20206
 msgid "Defaults to @samp{unset}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17919
+#: doc/guix.texi:20138
 #, no-wrap
 msgid "{@code{getmail-retriever-configuration} parameter} string username"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17926
+#: doc/guix.texi:20145
 #, no-wrap
 msgid "{@code{getmail-retriever-configuration} parameter} non-negative-integer port"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17928
+#: doc/guix.texi:20147
 msgid "Port number to connect to."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17933
+#: doc/guix.texi:20152
 #, no-wrap
 msgid "{@code{getmail-retriever-configuration} parameter} string password"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17935 doc/guix.texi:17942
+#: doc/guix.texi:20154 doc/guix.texi:20161
 msgid "Override fields from passwd."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17940
+#: doc/guix.texi:20159
 #, no-wrap
 msgid "{@code{getmail-retriever-configuration} parameter} list password-command"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17947
+#: doc/guix.texi:20166
 #, no-wrap
 msgid "{@code{getmail-retriever-configuration} parameter} string keyfile"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17949
+#: doc/guix.texi:20168
 msgid "PEM-formatted key file to use for the TLS negotiation."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17954
+#: doc/guix.texi:20173
 #, no-wrap
 msgid "{@code{getmail-retriever-configuration} parameter} string certfile"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17956
+#: doc/guix.texi:20175
 msgid "PEM-formatted certificate file to use for the TLS negotiation."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17961
+#: doc/guix.texi:20180
 #, no-wrap
 msgid "{@code{getmail-retriever-configuration} parameter} string ca-certs"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17963
+#: doc/guix.texi:20182
 #, fuzzy
 #| msgid "Certificate Services"
 msgid "CA certificates to use."
 msgstr "Сервисы сертификатов"
 
 #. type: deftypevr
-#: doc/guix.texi:17968
+#: doc/guix.texi:20187
 #, no-wrap
 msgid "{@code{getmail-retriever-configuration} parameter} parameter-alist extra-parameters"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17970
+#: doc/guix.texi:20189
 msgid "Extra retriever parameters."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17977
+#: doc/guix.texi:20196
 #, no-wrap
 msgid "{@code{getmail-configuration-file} parameter} getmail-destination-configuration destination"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17979
+#: doc/guix.texi:20198
 msgid "What to do with retrieved messages."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17981
+#: doc/guix.texi:20200
 msgid "Available @code{getmail-destination-configuration} fields are:"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17982
+#: doc/guix.texi:20201
 #, no-wrap
 msgid "{@code{getmail-destination-configuration} parameter} string type"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17985
+#: doc/guix.texi:20204
 msgid "The type of mail destination.  Valid values include @samp{Maildir}, @samp{Mboxrd} and @samp{MDA_external}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17990
+#: doc/guix.texi:20209
 #, no-wrap
 msgid "{@code{getmail-destination-configuration} parameter} string-or-filelike path"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17993
+#: doc/guix.texi:20212
 msgid "The path option for the mail destination.  The behaviour depends on the chosen type."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:17998
+#: doc/guix.texi:20217
 #, no-wrap
 msgid "{@code{getmail-destination-configuration} parameter} parameter-alist extra-parameters"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18000
+#: doc/guix.texi:20219
 msgid "Extra destination parameters"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18007
+#: doc/guix.texi:20226
 #, no-wrap
 msgid "{@code{getmail-configuration-file} parameter} getmail-options-configuration options"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18009
+#: doc/guix.texi:20228
 msgid "Configure getmail."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18011
+#: doc/guix.texi:20230
 msgid "Available @code{getmail-options-configuration} fields are:"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18012
+#: doc/guix.texi:20231
 #, no-wrap
 msgid "{@code{getmail-options-configuration} parameter} non-negative-integer verbose"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18017
+#: doc/guix.texi:20236
 msgid "If set to @samp{0}, getmail will only print warnings and errors.  A value of @samp{1} means that messages will be printed about retrieving and deleting messages.  If set to @samp{2}, getmail will print messages about each of it's actions."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18019 doc/guix.texi:22987 doc/guix.texi:23574
-#: doc/guix.texi:23718
+#: doc/guix.texi:20238 doc/guix.texi:25343 doc/guix.texi:25931
+#: doc/guix.texi:26076
 msgid "Defaults to @samp{1}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18022
+#: doc/guix.texi:20241
 #, no-wrap
 msgid "{@code{getmail-options-configuration} parameter} boolean read-all"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18025
+#: doc/guix.texi:20244
 msgid "If true, getmail will retrieve all available messages.  Otherwise it will only retrieve messages it hasn't seen previously."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18030
+#: doc/guix.texi:20249
 #, no-wrap
 msgid "{@code{getmail-options-configuration} parameter} boolean delete"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18034
+#: doc/guix.texi:20253
 msgid "If set to true, messages will be deleted from the server after retrieving and successfully delivering them.  Otherwise, messages will be left on the server."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18039
+#: doc/guix.texi:20258
 #, no-wrap
 msgid "{@code{getmail-options-configuration} parameter} non-negative-integer delete-after"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18044
+#: doc/guix.texi:20263
 msgid "Getmail will delete messages this number of days after seeing them, if they have been delivered.  This means messages will be left on the server this number of days after delivering them.  A value of @samp{0} disabled this feature."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18049
+#: doc/guix.texi:20268
 #, no-wrap
 msgid "{@code{getmail-options-configuration} parameter} non-negative-integer delete-bigger-than"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18053
+#: doc/guix.texi:20272
 msgid "Delete messages larger than this of bytes after retrieving them, even if the delete and delete-after options are disabled.  A value of @samp{0} disables this feature."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18058
+#: doc/guix.texi:20277
 #, no-wrap
 msgid "{@code{getmail-options-configuration} parameter} non-negative-integer max-bytes-per-session"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18061
+#: doc/guix.texi:20280
 msgid "Retrieve messages totalling up to this number of bytes before closing the session with the server.  A value of @samp{0} disables this feature."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18066
+#: doc/guix.texi:20285
 #, no-wrap
 msgid "{@code{getmail-options-configuration} parameter} non-negative-integer max-message-size"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18069
+#: doc/guix.texi:20288
 msgid "Don't retrieve messages larger than this number of bytes.  A value of @samp{0} disables this feature."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18074
+#: doc/guix.texi:20293
 #, no-wrap
 msgid "{@code{getmail-options-configuration} parameter} boolean delivered-to"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18076
+#: doc/guix.texi:20295
 msgid "If true, getmail will add a Delivered-To header to messages."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18081
+#: doc/guix.texi:20300
 #, no-wrap
 msgid "{@code{getmail-options-configuration} parameter} boolean received"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18083
+#: doc/guix.texi:20302
 msgid "If set, getmail adds a Received header to the messages."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18088
+#: doc/guix.texi:20307
 #, no-wrap
 msgid "{@code{getmail-options-configuration} parameter} string message-log"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18091
+#: doc/guix.texi:20310
 msgid "Getmail will record a log of its actions to the named file.  A value of @samp{\"\"} disables this feature."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18096
+#: doc/guix.texi:20315
 #, no-wrap
 msgid "{@code{getmail-options-configuration} parameter} boolean message-log-syslog"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18099
+#: doc/guix.texi:20318
 msgid "If true, getmail will record a log of its actions using the system logger."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18104
+#: doc/guix.texi:20323
 #, no-wrap
 msgid "{@code{getmail-options-configuration} parameter} boolean message-log-verbose"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18108
+#: doc/guix.texi:20327
 msgid "If true, getmail will log information about messages not retrieved and the reason for not retrieving them, as well as starting and ending information lines."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18113
+#: doc/guix.texi:20332
 #, no-wrap
 msgid "{@code{getmail-options-configuration} parameter} parameter-alist extra-parameters"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18115
+#: doc/guix.texi:20334
 msgid "Extra options to include."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18124
+#: doc/guix.texi:20343
 #, no-wrap
 msgid "{@code{getmail-configuration} parameter} list idle"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18128
+#: doc/guix.texi:20347
 msgid "A list of mailboxes that getmail should wait on the server for new mail notifications.  This depends on the server supporting the IDLE extension."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18133
+#: doc/guix.texi:20352
 #, no-wrap
 msgid "{@code{getmail-configuration} parameter} list environment-variables"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18135
+#: doc/guix.texi:20354
 msgid "Environment variables to set for getmail."
 msgstr ""
 
 #. type: subsubheading
-#: doc/guix.texi:18140
+#: doc/guix.texi:20359
 #, no-wrap
 msgid "Mail Aliases Service"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:18142
+#: doc/guix.texi:20361
 #, no-wrap
 msgid "email aliases"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:18143
+#: doc/guix.texi:20362
 #, no-wrap
 msgid "aliases, for email addresses"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:18145
+#: doc/guix.texi:20364
 #, no-wrap
 msgid "{Scheme Variable} mail-aliases-service-type"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:18148
+#: doc/guix.texi:20367
 msgid "This is the type of the service which provides @code{/etc/aliases}, specifying how to deliver mail to users on this system."
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:18153
+#: doc/guix.texi:20372
 #, no-wrap
 msgid ""
 "(service mail-aliases-service-type\n"
@@ -33310,34 +37512,34 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:18161
+#: doc/guix.texi:20380
 msgid "The configuration for a @code{mail-aliases-service-type} service is an association list denoting how to deliver mail that comes to this system. Each entry is of the form @code{(alias addresses ...)}, with @code{alias} specifying the local alias and @code{addresses} specifying where to deliver this user's mail."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:18167
+#: doc/guix.texi:20386
 msgid "The aliases aren't required to exist as users on the local system. In the above example, there doesn't need to be a @code{postmaster} entry in the @code{operating-system}'s @code{user-accounts} in order to deliver the @code{postmaster} mail to @code{bob} (which subsequently would deliver mail to @code{bob@@example.com} and @code{bob@@example2.com})."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:18168 doc/guix.texi:18169
+#: doc/guix.texi:20387 doc/guix.texi:20388
 #, no-wrap
 msgid "GNU Mailutils IMAP4 Daemon"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:18171
+#: doc/guix.texi:20390
 #, no-wrap
 msgid "{Scheme Variable} imap4d-service-type"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:18175
+#: doc/guix.texi:20394
 msgid "This is the type of the GNU Mailutils IMAP4 Daemon (@pxref{imap4d,,, mailutils, GNU Mailutils Manual}), whose value should be an @code{imap4d-configuration} object as in this example:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:18180
+#: doc/guix.texi:20399
 #, no-wrap
 msgid ""
 "(service imap4d-service-type\n"
@@ -33346,80 +37548,82 @@ msgid ""
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:18183
+#: doc/guix.texi:20402
 #, no-wrap
 msgid "{Data Type} imap4d-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:18185
+#: doc/guix.texi:20404
 msgid "Data type representing the configuration of @command{imap4d}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18187
+#: doc/guix.texi:20406
 #, no-wrap
 msgid "@code{package} (default: @code{mailutils})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18189
+#: doc/guix.texi:20408
 msgid "The package that provides @command{imap4d}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18190
+#: doc/guix.texi:20409
 #, no-wrap
 msgid "@code{config-file} (default: @code{%default-imap4d-config-file})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18194
+#: doc/guix.texi:20413
 msgid "File-like object of the configuration file to use, by default it will listen on TCP port 143 of @code{localhost}.  @xref{Conf-imap4d,,, mailutils, GNU Mailutils Manual}, for details."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:18201
+#: doc/guix.texi:20420
 #, no-wrap
 msgid "messaging"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:18202
+#: doc/guix.texi:20421
 #, no-wrap
 msgid "jabber"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:18203
+#: doc/guix.texi:20422
 #, no-wrap
 msgid "XMPP"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:18206
-msgid "The @code{(gnu services messaging)} module provides Guix service definitions for messaging services: currently only Prosody is supported."
-msgstr ""
+#: doc/guix.texi:20426
+#, fuzzy
+#| msgid "The @code{(guix inferior)} module provides the following procedures to open an inferior:"
+msgid "The @code{(gnu services messaging)} module provides Guix service definitions for messaging services.  Currently it provides the following services:"
+msgstr "Модуль @code{(guix inferior)} предоставляет следующие процедуры для работы с ранними версиями:"
 
 #. type: subsubheading
-#: doc/guix.texi:18207
+#: doc/guix.texi:20427
 #, no-wrap
 msgid "Prosody Service"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:18209
+#: doc/guix.texi:20429
 #, no-wrap
 msgid "{Scheme Variable} prosody-service-type"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:18213
+#: doc/guix.texi:20433
 msgid "This is the type for the @uref{https://prosody.im, Prosody XMPP communication server}.  Its value must be a @code{prosody-configuration} record as in this example:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:18228
+#: doc/guix.texi:20448
 #, no-wrap
 msgid ""
 "(service prosody-service-type\n"
@@ -33438,690 +37642,690 @@ msgid ""
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:18231
+#: doc/guix.texi:20451
 msgid "See below for details about @code{prosody-configuration}."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:18237
+#: doc/guix.texi:20457
 msgid "By default, Prosody does not need much configuration.  Only one @code{virtualhosts} field is needed: it specifies the domain you wish Prosody to serve."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:18240
+#: doc/guix.texi:20460
 msgid "You can perform various sanity checks on the generated configuration with the @code{prosodyctl check} command."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:18244
+#: doc/guix.texi:20464
 msgid "Prosodyctl will also help you to import certificates from the @code{letsencrypt} directory so that the @code{prosody} user can access them.  See @url{https://prosody.im/doc/letsencrypt}."
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:18247
+#: doc/guix.texi:20467
 #, no-wrap
 msgid "prosodyctl --root cert import /etc/letsencrypt/live\n"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:18254
+#: doc/guix.texi:20474
 msgid "The available configuration parameters follow.  Each parameter definition is preceded by its type; for example, @samp{string-list foo} indicates that the @code{foo} parameter should be specified as a list of strings.  Types starting with @code{maybe-} denote parameters that won't show up in @code{prosody.cfg.lua} when their value is @code{'disabled}."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:18258
+#: doc/guix.texi:20478
 msgid "There is also a way to specify the configuration as a string, if you have an old @code{prosody.cfg.lua} file that you want to port over from some other system; see the end for more details."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:18261
+#: doc/guix.texi:20481
 msgid "The @code{file-object} type designates either a file-like object (@pxref{G-Expressions, file-like objects}) or a file name."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:18271
+#: doc/guix.texi:20491
 msgid "Available @code{prosody-configuration} fields are:"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18272
+#: doc/guix.texi:20492
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} package prosody"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18274
+#: doc/guix.texi:20494
 msgid "The Prosody package."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18276
+#: doc/guix.texi:20496
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} file-name data-path"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18280
+#: doc/guix.texi:20500
 msgid "Location of the Prosody data storage directory.  See @url{https://prosody.im/doc/configure}.  Defaults to @samp{\"/var/lib/prosody\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18282
+#: doc/guix.texi:20502
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} file-object-list plugin-paths"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18286
+#: doc/guix.texi:20506
 msgid "Additional plugin directories.  They are searched in all the specified paths in order.  See @url{https://prosody.im/doc/plugins_directory}.  Defaults to @samp{()}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18288
+#: doc/guix.texi:20508
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} file-name certificates"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18293
+#: doc/guix.texi:20513
 msgid "Every virtual host and component needs a certificate so that clients and servers can securely verify its identity.  Prosody will automatically load certificates/keys from the directory specified here.  Defaults to @samp{\"/etc/prosody/certs\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18295
+#: doc/guix.texi:20515
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} string-list admins"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18301
+#: doc/guix.texi:20521
 msgid "This is a list of accounts that are admins for the server.  Note that you must create the accounts separately.  See @url{https://prosody.im/doc/admins} and @url{https://prosody.im/doc/creating_accounts}.  Example: @code{(admins '(\"user1@@example.com\" \"user2@@example.net\"))} Defaults to @samp{()}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18303
+#: doc/guix.texi:20523
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} boolean use-libevent?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18307
+#: doc/guix.texi:20527
 msgid "Enable use of libevent for better performance under high load.  See @url{https://prosody.im/doc/libevent}.  Defaults to @samp{#f}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18309
+#: doc/guix.texi:20529
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} module-list modules-enabled"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18315
+#: doc/guix.texi:20535
 msgid "This is the list of modules Prosody will load on startup.  It looks for @code{mod_modulename.lua} in the plugins folder, so make sure that exists too.  Documentation on modules can be found at: @url{https://prosody.im/doc/modules}.  Defaults to @samp{(\"roster\" \"saslauth\" \"tls\" \"dialback\" \"disco\" \"carbons\" \"private\" \"blocklist\" \"vcard\" \"version\" \"uptime\" \"time\" \"ping\" \"pep\" \"register\" \"admin_adhoc\")}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18317
+#: doc/guix.texi:20537
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} string-list modules-disabled"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18321
+#: doc/guix.texi:20541
 msgid "@samp{\"offline\"}, @samp{\"c2s\"} and @samp{\"s2s\"} are auto-loaded, but should you want to disable them then add them to this list.  Defaults to @samp{()}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18323
+#: doc/guix.texi:20543
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} file-object groups-file"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18328
+#: doc/guix.texi:20548
 msgid "Path to a text file where the shared groups are defined.  If this path is empty then @samp{mod_groups} does nothing.  See @url{https://prosody.im/doc/modules/mod_groups}.  Defaults to @samp{\"/var/lib/prosody/sharedgroups.txt\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18330
+#: doc/guix.texi:20550
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} boolean allow-registration?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18334
+#: doc/guix.texi:20554
 msgid "Disable account creation by default, for security.  See @url{https://prosody.im/doc/creating_accounts}.  Defaults to @samp{#f}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18336
+#: doc/guix.texi:20556
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} maybe-ssl-configuration ssl"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18341
+#: doc/guix.texi:20561
 msgid "These are the SSL/TLS-related settings.  Most of them are disabled so to use Prosody's defaults.  If you do not completely understand these options, do not add them to your config, it is easy to lower the security of your server using them.  See @url{https://prosody.im/doc/advanced_ssl_config}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18343
+#: doc/guix.texi:20563
 msgid "Available @code{ssl-configuration} fields are:"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18344
+#: doc/guix.texi:20564
 #, no-wrap
 msgid "{@code{ssl-configuration} parameter} maybe-string protocol"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18346
+#: doc/guix.texi:20566
 msgid "This determines what handshake to use."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18348
+#: doc/guix.texi:20568
 #, no-wrap
 msgid "{@code{ssl-configuration} parameter} maybe-file-name key"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18350
+#: doc/guix.texi:20570
 msgid "Path to your private key file."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18352
+#: doc/guix.texi:20572
 #, no-wrap
 msgid "{@code{ssl-configuration} parameter} maybe-file-name certificate"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18354
+#: doc/guix.texi:20574
 msgid "Path to your certificate file."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18356
+#: doc/guix.texi:20576
 #, no-wrap
 msgid "{@code{ssl-configuration} parameter} file-object capath"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18360
+#: doc/guix.texi:20580
 msgid "Path to directory containing root certificates that you wish Prosody to trust when verifying the certificates of remote servers.  Defaults to @samp{\"/etc/ssl/certs\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18362
+#: doc/guix.texi:20582
 #, no-wrap
 msgid "{@code{ssl-configuration} parameter} maybe-file-object cafile"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18365
+#: doc/guix.texi:20585
 msgid "Path to a file containing root certificates that you wish Prosody to trust.  Similar to @code{capath} but with all certificates concatenated together."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18367
+#: doc/guix.texi:20587
 #, no-wrap
 msgid "{@code{ssl-configuration} parameter} maybe-string-list verify"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18370
+#: doc/guix.texi:20590
 msgid "A list of verification options (these mostly map to OpenSSL's @code{set_verify()} flags)."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18372
+#: doc/guix.texi:20592
 #, no-wrap
 msgid "{@code{ssl-configuration} parameter} maybe-string-list options"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18376
+#: doc/guix.texi:20596
 msgid "A list of general options relating to SSL/TLS.  These map to OpenSSL's @code{set_options()}.  For a full list of options available in LuaSec, see the LuaSec source."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18378
+#: doc/guix.texi:20598
 #, no-wrap
 msgid "{@code{ssl-configuration} parameter} maybe-non-negative-integer depth"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18381
+#: doc/guix.texi:20601
 msgid "How long a chain of certificate authorities to check when looking for a trusted root certificate."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18383
+#: doc/guix.texi:20603
 #, no-wrap
 msgid "{@code{ssl-configuration} parameter} maybe-string ciphers"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18386
+#: doc/guix.texi:20606
 msgid "An OpenSSL cipher string.  This selects what ciphers Prosody will offer to clients, and in what order."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18388
+#: doc/guix.texi:20608
 #, no-wrap
 msgid "{@code{ssl-configuration} parameter} maybe-file-name dhparam"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18392
+#: doc/guix.texi:20612
 msgid "A path to a file containing parameters for Diffie-Hellman key exchange.  You can create such a file with: @code{openssl dhparam -out /etc/prosody/certs/dh-2048.pem 2048}"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18394
+#: doc/guix.texi:20614
 #, no-wrap
 msgid "{@code{ssl-configuration} parameter} maybe-string curve"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18397
-msgid "Curve for Elliptic curve Diffie-Hellman. Prosody's default is @samp{\"secp384r1\"}."
+#: doc/guix.texi:20617
+msgid "Curve for Elliptic curve Diffie-Hellman.  Prosody's default is @samp{\"secp384r1\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18399
+#: doc/guix.texi:20619
 #, no-wrap
 msgid "{@code{ssl-configuration} parameter} maybe-string-list verifyext"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18401
-msgid "A list of \"extra\" verification options."
+#: doc/guix.texi:20621
+msgid "A list of ``extra'' verification options."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18403
+#: doc/guix.texi:20623
 #, no-wrap
 msgid "{@code{ssl-configuration} parameter} maybe-string password"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18405
+#: doc/guix.texi:20625
 msgid "Password for encrypted private keys."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18409
+#: doc/guix.texi:20629
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} boolean c2s-require-encryption?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18413
+#: doc/guix.texi:20633
 msgid "Whether to force all client-to-server connections to be encrypted or not.  See @url{https://prosody.im/doc/modules/mod_tls}.  Defaults to @samp{#f}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18415
+#: doc/guix.texi:20635
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} string-list disable-sasl-mechanisms"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18419
+#: doc/guix.texi:20639
 msgid "Set of mechanisms that will never be offered.  See @url{https://prosody.im/doc/modules/mod_saslauth}.  Defaults to @samp{(\"DIGEST-MD5\")}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18421
+#: doc/guix.texi:20641
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} boolean s2s-require-encryption?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18425
+#: doc/guix.texi:20645
 msgid "Whether to force all server-to-server connections to be encrypted or not.  See @url{https://prosody.im/doc/modules/mod_tls}.  Defaults to @samp{#f}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18427
+#: doc/guix.texi:20647
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} boolean s2s-secure-auth?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18433
+#: doc/guix.texi:20653
 msgid "Whether to require encryption and certificate authentication.  This provides ideal security, but requires servers you communicate with to support encryption AND present valid, trusted certificates.  See @url{https://prosody.im/doc/s2s#security}.  Defaults to @samp{#f}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18435
+#: doc/guix.texi:20655
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} string-list s2s-insecure-domains"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18441
+#: doc/guix.texi:20661
 msgid "Many servers don't support encryption or have invalid or self-signed certificates.  You can list domains here that will not be required to authenticate using certificates.  They will be authenticated using DNS.  See @url{https://prosody.im/doc/s2s#security}.  Defaults to @samp{()}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18443
+#: doc/guix.texi:20663
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} string-list s2s-secure-domains"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18448
+#: doc/guix.texi:20668
 msgid "Even if you leave @code{s2s-secure-auth?} disabled, you can still require valid certificates for some domains by specifying a list here.  See @url{https://prosody.im/doc/s2s#security}.  Defaults to @samp{()}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18450
+#: doc/guix.texi:20670
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} string authentication"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18458
+#: doc/guix.texi:20678
 msgid "Select the authentication backend to use.  The default provider stores passwords in plaintext and uses Prosody's configured data storage to store the authentication data.  If you do not trust your server please see @url{https://prosody.im/doc/modules/mod_auth_internal_hashed} for information about using the hashed backend.  See also @url{https://prosody.im/doc/authentication} Defaults to @samp{\"internal_plain\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18460
+#: doc/guix.texi:20680
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} maybe-string log"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18464
+#: doc/guix.texi:20684
 msgid "Set logging options.  Advanced logging configuration is not yet supported by the Prosody service.  See @url{https://prosody.im/doc/logging}.  Defaults to @samp{\"*syslog\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18466
+#: doc/guix.texi:20686
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} file-name pidfile"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18469
+#: doc/guix.texi:20689
 msgid "File to write pid in.  See @url{https://prosody.im/doc/modules/mod_posix}.  Defaults to @samp{\"/var/run/prosody/prosody.pid\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18471
+#: doc/guix.texi:20691
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} maybe-non-negative-integer http-max-content-size"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18473
+#: doc/guix.texi:20693
 msgid "Maximum allowed size of the HTTP body (in bytes)."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18475
+#: doc/guix.texi:20695
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} maybe-string http-external-url"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18480
+#: doc/guix.texi:20700
 msgid "Some modules expose their own URL in various ways.  This URL is built from the protocol, host and port used.  If Prosody sits behind a proxy, the public URL will be @code{http-external-url} instead.  See @url{https://prosody.im/doc/http#external_url}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18482
+#: doc/guix.texi:20702
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} virtualhost-configuration-list virtualhosts"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18487
+#: doc/guix.texi:20707
 msgid "A host in Prosody is a domain on which user accounts can be created.  For example if you want your users to have addresses like @samp{\"john.smith@@example.com\"} then you need to add a host @samp{\"example.com\"}.  All options in this list will apply only to this host."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18493
-msgid "Note: the name \"virtual\" host is used in configuration to avoid confusion with the actual physical host that Prosody is installed on.  A single Prosody instance can serve many domains, each one defined as a VirtualHost entry in Prosody's configuration.  Conversely a server that hosts a single domain would have just one VirtualHost entry."
+#: doc/guix.texi:20713
+msgid "Note: the name @emph{virtual} host is used in configuration to avoid confusion with the actual physical host that Prosody is installed on.  A single Prosody instance can serve many domains, each one defined as a VirtualHost entry in Prosody's configuration.  Conversely a server that hosts a single domain would have just one VirtualHost entry."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18495
+#: doc/guix.texi:20715
 msgid "See @url{https://prosody.im/doc/configure#virtual_host_settings}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18497
+#: doc/guix.texi:20717
 msgid "Available @code{virtualhost-configuration} fields are:"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18499 doc/guix.texi:18521 doc/guix.texi:18574
+#: doc/guix.texi:20719 doc/guix.texi:20741 doc/guix.texi:20794
 msgid "all these @code{prosody-configuration} fields: @code{admins}, @code{use-libevent?}, @code{modules-enabled}, @code{modules-disabled}, @code{groups-file}, @code{allow-registration?}, @code{ssl}, @code{c2s-require-encryption?}, @code{disable-sasl-mechanisms}, @code{s2s-require-encryption?}, @code{s2s-secure-auth?}, @code{s2s-insecure-domains}, @code{s2s-secure-domains}, @code{authentication}, @code{log}, @code{http-max-content-size}, @code{http-external-url}, @code{raw-content}, plus:"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18499
+#: doc/guix.texi:20719
 #, no-wrap
 msgid "{@code{virtualhost-configuration} parameter} string domain"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18501
+#: doc/guix.texi:20721
 msgid "Domain you wish Prosody to serve."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18505
+#: doc/guix.texi:20725
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} int-component-configuration-list int-components"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18510
+#: doc/guix.texi:20730
 msgid "Components are extra services on a server which are available to clients, usually on a subdomain of the main server (such as @samp{\"mycomponent.example.com\"}).  Example components might be chatroom servers, user directories, or gateways to other protocols."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18514
+#: doc/guix.texi:20734
 msgid "Internal components are implemented with Prosody-specific plugins.  To add an internal component, you simply fill the hostname field, and the plugin you wish to use for the component."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18517
+#: doc/guix.texi:20737
 msgid "See @url{https://prosody.im/doc/components}.  Defaults to @samp{()}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18519
+#: doc/guix.texi:20739
 msgid "Available @code{int-component-configuration} fields are:"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18521
+#: doc/guix.texi:20741
 #, no-wrap
 msgid "{@code{int-component-configuration} parameter} string hostname"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18523 doc/guix.texi:18580
+#: doc/guix.texi:20743 doc/guix.texi:20800
 msgid "Hostname of the component."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18525
+#: doc/guix.texi:20745
 #, no-wrap
 msgid "{@code{int-component-configuration} parameter} string plugin"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18527
+#: doc/guix.texi:20747
 msgid "Plugin you wish to use for the component."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18529
+#: doc/guix.texi:20749
 #, no-wrap
 msgid "{@code{int-component-configuration} parameter} maybe-mod-muc-configuration mod-muc"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18532
+#: doc/guix.texi:20752
 msgid "Multi-user chat (MUC) is Prosody's module for allowing you to create hosted chatrooms/conferences for XMPP users."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18536
-msgid "General information on setting up and using multi-user chatrooms can be found in the \"Chatrooms\" documentation (@url{https://prosody.im/doc/chatrooms}), which you should read if you are new to XMPP chatrooms."
+#: doc/guix.texi:20756
+msgid "General information on setting up and using multi-user chatrooms can be found in the ``Chatrooms'' documentation (@url{https://prosody.im/doc/chatrooms}), which you should read if you are new to XMPP chatrooms."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18538
+#: doc/guix.texi:20758
 msgid "See also @url{https://prosody.im/doc/modules/mod_muc}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18540
+#: doc/guix.texi:20760
 msgid "Available @code{mod-muc-configuration} fields are:"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18541
+#: doc/guix.texi:20761
 #, no-wrap
 msgid "{@code{mod-muc-configuration} parameter} string name"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18544
+#: doc/guix.texi:20764
 msgid "The name to return in service discovery responses.  Defaults to @samp{\"Prosody Chatrooms\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18546
+#: doc/guix.texi:20766
 #, no-wrap
 msgid "{@code{mod-muc-configuration} parameter} string-or-boolean restrict-room-creation"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18553
+#: doc/guix.texi:20773
 msgid "If @samp{#t}, this will only allow admins to create new chatrooms.  Otherwise anyone can create a room.  The value @samp{\"local\"} restricts room creation to users on the service's parent domain.  E.g.@: @samp{user@@example.com} can create rooms on @samp{rooms.example.com}.  The value @samp{\"admin\"} restricts to service administrators only.  Defaults to @samp{#f}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18555
+#: doc/guix.texi:20775
 #, no-wrap
 msgid "{@code{mod-muc-configuration} parameter} non-negative-integer max-history-messages"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18559
+#: doc/guix.texi:20779
 msgid "Maximum number of history messages that will be sent to the member that has just joined the room.  Defaults to @samp{20}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18565
+#: doc/guix.texi:20785
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} ext-component-configuration-list ext-components"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18570
+#: doc/guix.texi:20790
 msgid "External components use XEP-0114, which most standalone components support.  To add an external component, you simply fill the hostname field.  See @url{https://prosody.im/doc/components}.  Defaults to @samp{()}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18572
+#: doc/guix.texi:20792
 msgid "Available @code{ext-component-configuration} fields are:"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18574
+#: doc/guix.texi:20794
 #, no-wrap
 msgid "{@code{ext-component-configuration} parameter} string component-secret"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18576
+#: doc/guix.texi:20796
 msgid "Password which the component will use to log in."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18578
+#: doc/guix.texi:20798
 #, no-wrap
 msgid "{@code{ext-component-configuration} parameter} string hostname"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18584
+#: doc/guix.texi:20804
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} non-negative-integer-list component-ports"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18587
+#: doc/guix.texi:20807
 msgid "Port(s) Prosody listens on for component connections.  Defaults to @samp{(5347)}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18589
+#: doc/guix.texi:20809
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} string component-interface"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18592
+#: doc/guix.texi:20812
 msgid "Interface Prosody listens on for component connections.  Defaults to @samp{\"127.0.0.1\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18594
+#: doc/guix.texi:20814
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} maybe-raw-content raw-content"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18596
+#: doc/guix.texi:20816
 msgid "Raw content that will be added to the configuration file."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:18604
+#: doc/guix.texi:20824
 msgid "It could be that you just want to get a @code{prosody.cfg.lua} up and running.  In that case, you can pass an @code{opaque-prosody-configuration} record as the value of @code{prosody-service-type}.  As its name indicates, an opaque configuration does not have easy reflective capabilities.  Available @code{opaque-prosody-configuration} fields are:"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18605
+#: doc/guix.texi:20825
 #, no-wrap
 msgid "{@code{opaque-prosody-configuration} parameter} package prosody"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18607
+#: doc/guix.texi:20827
 msgid "The prosody package."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18609
+#: doc/guix.texi:20829
 #, no-wrap
 msgid "{@code{opaque-prosody-configuration} parameter} string prosody.cfg.lua"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18611
+#: doc/guix.texi:20831
 msgid "The contents of the @code{prosody.cfg.lua} to use."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:18615
+#: doc/guix.texi:20835
 msgid "For example, if your @code{prosody.cfg.lua} is just the empty string, you could instantiate a prosody service like this:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:18620
+#: doc/guix.texi:20840
 #, no-wrap
 msgid ""
 "(service prosody-service-type\n"
@@ -34130,219 +38334,213 @@ msgid ""
 msgstr ""
 
 #. type: subsubheading
-#: doc/guix.texi:18624
+#: doc/guix.texi:20844
 #, no-wrap
 msgid "BitlBee Service"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:18626 doc/guix.texi:18670
+#: doc/guix.texi:20846 doc/guix.texi:20890
 #, no-wrap
 msgid "IRC (Internet Relay Chat)"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:18627
+#: doc/guix.texi:20847
 #, no-wrap
 msgid "IRC gateway"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:18630
+#: doc/guix.texi:20850
 msgid "@url{https://bitlbee.org,BitlBee} is a gateway that provides an IRC interface to a variety of messaging protocols such as XMPP."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:18631
+#: doc/guix.texi:20851
 #, no-wrap
 msgid "{Scheme Variable} bitlbee-service-type"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:18635
+#: doc/guix.texi:20855
 msgid "This is the service type for the @url{https://bitlbee.org,BitlBee} IRC gateway daemon.  Its value is a @code{bitlbee-configuration} (see below)."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:18638
+#: doc/guix.texi:20858
 msgid "To have BitlBee listen on port 6667 on localhost, add this line to your services:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:18641
+#: doc/guix.texi:20861
 #, no-wrap
 msgid "(service bitlbee-service-type)\n"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:18644
+#: doc/guix.texi:20864
 #, no-wrap
 msgid "{Data Type} bitlbee-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:18646
+#: doc/guix.texi:20866
 msgid "This is the configuration for BitlBee, with the following fields:"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18648
+#: doc/guix.texi:20868
 #, no-wrap
 msgid "@code{interface} (default: @code{\"127.0.0.1\"})"
 msgstr ""
 
 #. type: itemx
-#: doc/guix.texi:18649
+#: doc/guix.texi:20869
 #, no-wrap
 msgid "@code{port} (default: @code{6667})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18652
+#: doc/guix.texi:20872
 msgid "Listen on the network interface corresponding to the IP address specified in @var{interface}, on @var{port}."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18656
+#: doc/guix.texi:20876
 msgid "When @var{interface} is @code{127.0.0.1}, only local clients can connect; when it is @code{0.0.0.0}, connections can come from any networking interface."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18657
+#: doc/guix.texi:20877
 #, fuzzy, no-wrap
 #| msgid "@code{port} (default: @code{22})"
 msgid "@code{bitlbee} (default: @code{bitlbee})"
 msgstr "@code{port} (default: @code{22})"
 
 #. type: table
-#: doc/guix.texi:18659
+#: doc/guix.texi:20879
 msgid "The BitlBee package to use."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18660
+#: doc/guix.texi:20880
 #, no-wrap
 msgid "@code{plugins} (default: @code{'()})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18662
+#: doc/guix.texi:20882
 msgid "List of plugin packages to use---e.g., @code{bitlbee-discord}."
 msgstr ""
 
-#. type: item
-#: doc/guix.texi:18663 doc/guix.texi:20686
-#, no-wrap
-msgid "@code{extra-settings} (default: @code{\"\"})"
-msgstr ""
-
 #. type: table
-#: doc/guix.texi:18665
+#: doc/guix.texi:20885
 msgid "Configuration snippet added as-is to the BitlBee configuration file."
 msgstr ""
 
 #. type: subsubheading
-#: doc/guix.texi:18668
+#: doc/guix.texi:20888
 #, no-wrap
 msgid "Quassel Service"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:18674
+#: doc/guix.texi:20894
 msgid "@url{https://quassel-irc.org/,Quassel} is a distributed IRC client, meaning that one or more clients can attach to and detach from the central core."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:18675
+#: doc/guix.texi:20895
 #, no-wrap
 msgid "{Scheme Variable} quassel-service-type"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:18679
+#: doc/guix.texi:20899
 msgid "This is the service type for the @url{https://quassel-irc.org/,Quassel} IRC backend daemon.  Its value is a @code{quassel-configuration} (see below)."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:18681
+#: doc/guix.texi:20901
 #, no-wrap
 msgid "{Data Type} quassel-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:18683
+#: doc/guix.texi:20903
 msgid "This is the configuration for Quassel, with the following fields:"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18685
+#: doc/guix.texi:20905
 #, no-wrap
 msgid "@code{quassel} (default: @code{quassel})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18687
+#: doc/guix.texi:20907
 msgid "The Quassel package to use."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18688
+#: doc/guix.texi:20908
 #, no-wrap
 msgid "@code{interface} (default: @code{\"::,0.0.0.0\"})"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18689
+#: doc/guix.texi:20909
 #, no-wrap
 msgid "@code{port} (default: @code{4242})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18693
+#: doc/guix.texi:20913
 msgid "Listen on the network interface(s) corresponding to the IPv4 or IPv6 interfaces specified in the comma delimited @var{interface}, on @var{port}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18694
+#: doc/guix.texi:20914
 #, no-wrap
 msgid "@code{loglevel} (default: @code{\"Info\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18697
+#: doc/guix.texi:20917
 msgid "The level of logging desired.  Accepted values are Debug, Info, Warning and Error."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:18703
+#: doc/guix.texi:20923
 #, no-wrap
 msgid "Murmur (VoIP server)"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:18704
+#: doc/guix.texi:20924
 #, no-wrap
 msgid "VoIP server"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:18708
+#: doc/guix.texi:20928
 msgid "This section describes how to set up and run a Murmur server.  Murmur is the server of the @uref{https://mumble.info, Mumble} voice-over-IP (VoIP) suite."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:18709
+#: doc/guix.texi:20929
 #, no-wrap
 msgid "{Data Type} murmur-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:18712
+#: doc/guix.texi:20932
 msgid "The service type for the Murmur server.  An example configuration can look like this:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:18721
+#: doc/guix.texi:20941
 #, no-wrap
 msgid ""
 "(service murmur-service-type\n"
@@ -34355,503 +38553,497 @@ msgid ""
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:18725
+#: doc/guix.texi:20945
 msgid "After reconfiguring your system, you can manually set the murmur @code{SuperUser} password with the command that is printed during the activation phase."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:18734
+#: doc/guix.texi:20954
 msgid "It is recommended to register a normal Mumble user account and grant it admin or moderator rights.  You can use the @code{mumble} client to login as new normal user, register yourself, and log out.  For the next step login with the name @code{SuperUser} use the @code{SuperUser} password that you set previously, and grant your newly registered mumble user administrator or moderator rights and create some channels."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:18736
+#: doc/guix.texi:20956
 msgid "Available @code{murmur-configuration} fields are:"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18738
+#: doc/guix.texi:20958
 #, no-wrap
 msgid "@code{package} (default: @code{mumble})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18740
+#: doc/guix.texi:20960
 msgid "Package that contains @code{bin/murmurd}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18741
+#: doc/guix.texi:20961
 #, no-wrap
 msgid "@code{user} (default: @code{\"murmur\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18743
+#: doc/guix.texi:20963
 msgid "User who will run the Murmur server."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18744
+#: doc/guix.texi:20964
 #, no-wrap
 msgid "@code{group} (default: @code{\"murmur\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18746
+#: doc/guix.texi:20966
 msgid "Group of the user who will run the murmur server."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18747
+#: doc/guix.texi:20967
 #, no-wrap
 msgid "@code{port} (default: @code{64738})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18749
+#: doc/guix.texi:20969
 msgid "Port on which the server will listen."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18750
+#: doc/guix.texi:20970
 #, no-wrap
 msgid "@code{welcome-text} (default: @code{\"\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18752
+#: doc/guix.texi:20972
 msgid "Welcome text sent to clients when they connect."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18753
+#: doc/guix.texi:20973
 #, no-wrap
 msgid "@code{server-password} (default: @code{\"\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18755
+#: doc/guix.texi:20975
 msgid "Password the clients have to enter in order to connect."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18756
+#: doc/guix.texi:20976
 #, no-wrap
 msgid "@code{max-users} (default: @code{100})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18758
+#: doc/guix.texi:20978
 msgid "Maximum of users that can be connected to the server at once."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18759
+#: doc/guix.texi:20979
 #, no-wrap
 msgid "@code{max-user-bandwidth} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18761
+#: doc/guix.texi:20981
 msgid "Maximum voice traffic a user can send per second."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18762
+#: doc/guix.texi:20982
 #, no-wrap
 msgid "@code{database-file} (default: @code{\"/var/lib/murmur/db.sqlite\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18765
+#: doc/guix.texi:20985
 msgid "File name of the sqlite database.  The service's user will become the owner of the directory."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18766
+#: doc/guix.texi:20986
 #, no-wrap
 msgid "@code{log-file} (default: @code{\"/var/log/murmur/murmur.log\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18769
+#: doc/guix.texi:20989
 msgid "File name of the log file.  The service's user will become the owner of the directory."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18770
+#: doc/guix.texi:20990
 #, no-wrap
 msgid "@code{autoban-attempts} (default: @code{10})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18773
+#: doc/guix.texi:20993
 msgid "Maximum number of logins a user can make in @code{autoban-timeframe} without getting auto banned for @code{autoban-time}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18774
+#: doc/guix.texi:20994
 #, no-wrap
 msgid "@code{autoban-timeframe} (default: @code{120})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18776
+#: doc/guix.texi:20996
 msgid "Timeframe for autoban in seconds."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18777
+#: doc/guix.texi:20997
 #, no-wrap
 msgid "@code{autoban-time} (default: @code{300})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18780
+#: doc/guix.texi:21000
 msgid "Amount of time in seconds for which a client gets banned when violating the autoban limits."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18781
+#: doc/guix.texi:21001
 #, no-wrap
 msgid "@code{opus-threshold} (default: @code{100})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18784
+#: doc/guix.texi:21004
 msgid "Percentage of clients that need to support opus before switching over to opus audio codec."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18785
+#: doc/guix.texi:21005
 #, no-wrap
 msgid "@code{channel-nesting-limit} (default: @code{10})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18787
+#: doc/guix.texi:21007
 msgid "How deep channels can be nested at maximum."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18788
+#: doc/guix.texi:21008
 #, no-wrap
 msgid "@code{channelname-regex} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18790
+#: doc/guix.texi:21010
 msgid "A string in form of a Qt regular expression that channel names must conform to."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18791
+#: doc/guix.texi:21011
 #, no-wrap
 msgid "@code{username-regex} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18793
+#: doc/guix.texi:21013
 msgid "A string in form of a Qt regular expression that user names must conform to."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18794
+#: doc/guix.texi:21014
 #, no-wrap
 msgid "@code{text-message-length} (default: @code{5000})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18796
+#: doc/guix.texi:21016
 msgid "Maximum size in bytes that a user can send in one text chat message."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18797
+#: doc/guix.texi:21017
 #, no-wrap
 msgid "@code{image-message-length} (default: @code{(* 128 1024)})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18799
+#: doc/guix.texi:21019
 msgid "Maximum size in bytes that a user can send in one image message."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18800
+#: doc/guix.texi:21020
 #, no-wrap
 msgid "@code{cert-required?} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18803
+#: doc/guix.texi:21023
 msgid "If it is set to @code{#t} clients that use weak password authentication will not be accepted. Users must have completed the certificate wizard to join."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18804
+#: doc/guix.texi:21024
 #, no-wrap
 msgid "@code{remember-channel?} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18807
+#: doc/guix.texi:21027
 msgid "Should murmur remember the last channel each user was in when they disconnected and put them into the remembered channel when they rejoin."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18808
+#: doc/guix.texi:21028
 #, no-wrap
 msgid "@code{allow-html?} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18810
+#: doc/guix.texi:21030
 msgid "Should html be allowed in text messages, user comments, and channel descriptions."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18811
+#: doc/guix.texi:21031
 #, no-wrap
 msgid "@code{allow-ping?} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18815
+#: doc/guix.texi:21035
 msgid "Setting to true exposes the current user count, the maximum user count, and the server's maximum bandwidth per client to unauthenticated users. In the Mumble client, this information is shown in the Connect dialog."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18817
+#: doc/guix.texi:21037
 msgid "Disabling this setting will prevent public listing of the server."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18818
+#: doc/guix.texi:21038
 #, no-wrap
 msgid "@code{bonjour?} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18820
+#: doc/guix.texi:21040
 msgid "Should the server advertise itself in the local network through the bonjour protocol."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18821
+#: doc/guix.texi:21041
 #, no-wrap
 msgid "@code{send-version?} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18823
+#: doc/guix.texi:21043
 msgid "Should the murmur server version be exposed in ping requests."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18824
+#: doc/guix.texi:21044
 #, no-wrap
 msgid "@code{log-days} (default: @code{31})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18828
+#: doc/guix.texi:21048
 msgid "Murmur also stores logs in the database, which are accessible via RPC.  The default is 31 days of months, but you can set this setting to 0 to keep logs forever, or -1 to disable logging to the database."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18829
+#: doc/guix.texi:21049
 #, no-wrap
 msgid "@code{obfuscate-ips?} (default: @code{#t})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18831
+#: doc/guix.texi:21051
 msgid "Should logged ips be obfuscated to protect the privacy of users."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18832
+#: doc/guix.texi:21052
 #, no-wrap
 msgid "@code{ssl-cert} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18834
+#: doc/guix.texi:21054
 msgid "File name of the SSL/TLS certificate used for encrypted connections."
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:18837
+#: doc/guix.texi:21057
 #, no-wrap
 msgid "(ssl-cert \"/etc/letsencrypt/live/example.com/fullchain.pem\")\n"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18838
+#: doc/guix.texi:21058
 #, no-wrap
 msgid "@code{ssl-key} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18840
+#: doc/guix.texi:21060
 msgid "Filepath to the ssl private key used for encrypted connections."
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:18842
+#: doc/guix.texi:21062
 #, no-wrap
 msgid "(ssl-key \"/etc/letsencrypt/live/example.com/privkey.pem\")\n"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18844
+#: doc/guix.texi:21064
 #, no-wrap
 msgid "@code{ssl-dh-params} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18849
+#: doc/guix.texi:21069
 msgid "File name of a PEM-encoded file with Diffie-Hellman parameters for the SSL/TLS encryption.  Alternatively you set it to @code{\"@@ffdhe2048\"}, @code{\"@@ffdhe3072\"}, @code{\"@@ffdhe4096\"}, @code{\"@@ffdhe6144\"} or @code{\"@@ffdhe8192\"} to use bundled parameters from RFC 7919."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18850
+#: doc/guix.texi:21070
 #, no-wrap
 msgid "@code{ssl-ciphers} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18853
+#: doc/guix.texi:21073
 msgid "The @code{ssl-ciphers} option chooses the cipher suites to make available for use in SSL/TLS."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18857
+#: doc/guix.texi:21077
 msgid "This option is specified using @uref{https://www.openssl.org/docs/apps/ciphers.html#CIPHER-LIST-FORMAT, OpenSSL cipher list notation}."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18862
+#: doc/guix.texi:21082
 msgid "It is recommended that you try your cipher string using 'openssl ciphers <string>' before setting it here, to get a feel for which cipher suites you will get.  After setting this option, it is recommend that you inspect your Murmur log to ensure that Murmur is using the cipher suites that you expected it to."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18866
+#: doc/guix.texi:21086
 msgid "Note: Changing this option may impact the backwards compatibility of your Murmur server, and can remove the ability for older Mumble clients to be able to connect to it."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18867
+#: doc/guix.texi:21087
 #, no-wrap
 msgid "@code{public-registration} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18869
+#: doc/guix.texi:21089
 msgid "Must be a @code{<murmur-public-registration-configuration>} record or @code{#f}."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18874
+#: doc/guix.texi:21094
 msgid "You can optionally register your server in the public server list that the @code{mumble} client shows on startup.  You cannot register your server if you have set a @code{server-password}, or set @code{allow-ping} to @code{#f}."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18876
+#: doc/guix.texi:21096
 msgid "It might take a few hours until it shows up in the public list."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18877 doc/guix.texi:20308
+#: doc/guix.texi:21097 doc/guix.texi:22529
 #, no-wrap
 msgid "@code{file} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18879
+#: doc/guix.texi:21099
 msgid "Optional alternative override for this configuration."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:18882
+#: doc/guix.texi:21102
 #, no-wrap
 msgid "{Data Type} murmur-public-registration-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:18884
+#: doc/guix.texi:21104
 msgid "Configuration for public registration of a murmur service."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18888
+#: doc/guix.texi:21108
 msgid "This is a display name for your server. Not to be confused with the hostname."
 msgstr ""
 
 #. type: itemx
-#: doc/guix.texi:18889 doc/guix.texi:26069
+#: doc/guix.texi:21109 doc/guix.texi:29606
 #, no-wrap
 msgid "password"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18892
+#: doc/guix.texi:21112
 msgid "A password to identify your registration.  Subsequent updates will need the same password. Don't lose your password."
 msgstr ""
 
-#. type: code{#1}
-#: doc/guix.texi:18893
-#, no-wrap
-msgid "url"
-msgstr ""
-
 #. type: table
-#: doc/guix.texi:18896
+#: doc/guix.texi:21116
 msgid "This should be a @code{http://} or @code{https://} link to your web site."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18897
+#: doc/guix.texi:21117
 #, no-wrap
 msgid "@code{hostname} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18900
+#: doc/guix.texi:21120
 msgid "By default your server will be listed by its IP address.  If it is set your server will be linked by this host name instead."
 msgstr ""
 
 #. type: subsubheading
-#: doc/guix.texi:18908
+#: doc/guix.texi:21128
 #, no-wrap
 msgid "Tailon Service"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:18912
+#: doc/guix.texi:21132
 msgid "@uref{https://tailon.readthedocs.io/, Tailon} is a web application for viewing and searching log files."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:18915
+#: doc/guix.texi:21135
 msgid "The following example will configure the service with default values.  By default, Tailon can be accessed on port 8080 (@code{http://localhost:8080})."
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:18918
+#: doc/guix.texi:21138
 #, no-wrap
 msgid "(service tailon-service-type)\n"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:18922
+#: doc/guix.texi:21142
 msgid "The following example customises more of the Tailon configuration, adding @command{sed} to the list of allowed commands."
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:18929
+#: doc/guix.texi:21149
 #, no-wrap
 msgid ""
 "(service tailon-service-type\n"
@@ -34862,34 +39054,34 @@ msgid ""
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:18932
+#: doc/guix.texi:21152
 #, no-wrap
 msgid "{Data Type} tailon-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:18935
+#: doc/guix.texi:21155
 msgid "Data type representing the configuration of Tailon.  This type has the following parameters:"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18937
+#: doc/guix.texi:21157
 #, no-wrap
 msgid "@code{config-file} (default: @code{(tailon-configuration-file)})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18941
+#: doc/guix.texi:21161
 msgid "The configuration file to use for Tailon. This can be set to a @dfn{tailon-configuration-file} record value, or any gexp (@pxref{G-Expressions})."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18944
+#: doc/guix.texi:21164
 msgid "For example, to instead use a local file, the @code{local-file} function can be used:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:18949
+#: doc/guix.texi:21169
 #, no-wrap
 msgid ""
 "(service tailon-service-type\n"
@@ -34898,144 +39090,144 @@ msgid ""
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18951
+#: doc/guix.texi:21171
 #, no-wrap
 msgid "@code{package} (default: @code{tailon})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18953
+#: doc/guix.texi:21173
 msgid "The tailon package to use."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:18957
+#: doc/guix.texi:21177
 #, no-wrap
 msgid "{Data Type} tailon-configuration-file"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:18960
+#: doc/guix.texi:21180
 msgid "Data type representing the configuration options for Tailon.  This type has the following parameters:"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18962
+#: doc/guix.texi:21182
 #, no-wrap
 msgid "@code{files} (default: @code{(list \"/var/log\")})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18967
+#: doc/guix.texi:21187
 msgid "List of files to display. The list can include strings for a single file or directory, or a list, where the first item is the name of a subsection, and the remaining items are the files or directories in that subsection."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18968
+#: doc/guix.texi:21188
 #, no-wrap
 msgid "@code{bind} (default: @code{\"localhost:8080\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18970
+#: doc/guix.texi:21190
 msgid "Address and port to which Tailon should bind on."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18971
+#: doc/guix.texi:21191
 #, no-wrap
 msgid "@code{relative-root} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18973
+#: doc/guix.texi:21193
 msgid "URL path to use for Tailon, set to @code{#f} to not use a path."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18974
+#: doc/guix.texi:21194
 #, no-wrap
 msgid "@code{allow-transfers?} (default: @code{#t})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18976
+#: doc/guix.texi:21196
 msgid "Allow downloading the log files in the web interface."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18977
+#: doc/guix.texi:21197
 #, no-wrap
 msgid "@code{follow-names?} (default: @code{#t})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18979
+#: doc/guix.texi:21199
 msgid "Allow tailing of not-yet existent files."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18980
+#: doc/guix.texi:21200
 #, no-wrap
 msgid "@code{tail-lines} (default: @code{200})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18982
+#: doc/guix.texi:21202
 msgid "Number of lines to read initially from each file."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18983
+#: doc/guix.texi:21203
 #, no-wrap
 msgid "@code{allowed-commands} (default: @code{(list \"tail\" \"grep\" \"awk\")})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18985
+#: doc/guix.texi:21205
 msgid "Commands to allow running. By default, @code{sed} is disabled."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18988
+#: doc/guix.texi:21208
 msgid "Set @code{debug?} to @code{#t} to show debug messages."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18989
+#: doc/guix.texi:21209
 #, no-wrap
 msgid "@code{wrap-lines} (default: @code{#t})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18993
+#: doc/guix.texi:21213
 msgid "Initial line wrapping state in the web interface. Set to @code{#t} to initially wrap lines (the default), or to @code{#f} to initially not wrap lines."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18994
+#: doc/guix.texi:21214
 #, no-wrap
 msgid "@code{http-auth} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18998
+#: doc/guix.texi:21218
 msgid "HTTP authentication type to use. Set to @code{#f} to disable authentication (the default). Supported values are @code{\"digest\"} or @code{\"basic\"}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18999
+#: doc/guix.texi:21219
 #, no-wrap
 msgid "@code{users} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:19004
+#: doc/guix.texi:21224
 msgid "If HTTP authentication is enabled (see @code{http-auth}), access will be restricted to the credentials provided here. To configure users, use a list of pairs, where the first element of the pair is the username, and the 2nd element of the pair is the password."
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:19010
+#: doc/guix.texi:21230
 #, no-wrap
 msgid ""
 "(tailon-configuration-file\n"
@@ -35045,35 +39237,35 @@ msgid ""
 msgstr ""
 
 #. type: subsubheading
-#: doc/guix.texi:19016
+#: doc/guix.texi:21236
 #, no-wrap
 msgid "Darkstat Service"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:19017
+#: doc/guix.texi:21237
 #, no-wrap
 msgid "darkstat"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:19020
+#: doc/guix.texi:21240
 msgid "Darkstat is a packet sniffer that captures network traffic, calculates statistics about usage, and serves reports over HTTP."
 msgstr ""
 
 #. type: defvar
-#: doc/guix.texi:19021
+#: doc/guix.texi:21241
 #, no-wrap
 msgid "{Scheme Variable} darkstat-service-type"
 msgstr ""
 
 #. type: defvar
-#: doc/guix.texi:19026
+#: doc/guix.texi:21246
 msgid "This is the service type for the @uref{https://unix4lyfe.org/darkstat/, darkstat} service, its value must be a @code{darkstat-configuration} record as in this example:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:19031
+#: doc/guix.texi:21251
 #, no-wrap
 msgid ""
 "(service darkstat-service-type\n"
@@ -35082,101 +39274,101 @@ msgid ""
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:19034
+#: doc/guix.texi:21254
 #, no-wrap
 msgid "{Data Type} darkstat-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:19036
+#: doc/guix.texi:21256
 msgid "Data type representing the configuration of @command{darkstat}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:19038
+#: doc/guix.texi:21258
 #, no-wrap
 msgid "@code{package} (default: @code{darkstat})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:19040
+#: doc/guix.texi:21260
 msgid "The darkstat package to use."
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:19041
+#: doc/guix.texi:21261
 #, no-wrap
 msgid "interface"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:19043
+#: doc/guix.texi:21263
 msgid "Capture traffic on the specified network interface."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:19044
+#: doc/guix.texi:21264
 #, no-wrap
 msgid "@code{port} (default: @code{\"667\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:19046
+#: doc/guix.texi:21266
 msgid "Bind the web interface to the specified port."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:19047
+#: doc/guix.texi:21267
 #, no-wrap
 msgid "@code{bind-address} (default: @code{\"127.0.0.1\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:19049 doc/guix.texi:19087
+#: doc/guix.texi:21269 doc/guix.texi:21307
 msgid "Bind the web interface to the specified address."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:19050
+#: doc/guix.texi:21270
 #, no-wrap
 msgid "@code{base} (default: @code{\"/\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:19053
+#: doc/guix.texi:21273
 msgid "Specify the path of the base URL.  This can be useful if @command{darkstat} is accessed via a reverse proxy."
 msgstr ""
 
 #. type: subsubheading
-#: doc/guix.texi:19057
+#: doc/guix.texi:21277
 #, no-wrap
 msgid "Prometheus Node Exporter Service"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:19059
+#: doc/guix.texi:21279
 #, no-wrap
 msgid "prometheus-node-exporter"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:19064
+#: doc/guix.texi:21284
 msgid "The Prometheus ``node exporter'' makes hardware and operating system statistics provided by the Linux kernel available for the Prometheus monitoring system.  This service should be deployed on all physical nodes and virtual machines, where monitoring these statistics is desirable."
 msgstr ""
 
 #. type: defvar
-#: doc/guix.texi:19065
+#: doc/guix.texi:21285
 #, no-wrap
 msgid "{Scheme variable} prometheus-node-exporter-service-type"
 msgstr ""
 
 #. type: defvar
-#: doc/guix.texi:19070
+#: doc/guix.texi:21290
 msgid "This is the service type for the @uref{https://github.com/prometheus/node_exporter/, prometheus-node-exporter} service, its value must be a @code{prometheus-node-exporter-configuration} record as in this example:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:19075
+#: doc/guix.texi:21295
 #, no-wrap
 msgid ""
 "(service prometheus-node-exporter-service-type\n"
@@ -35185,609 +39377,609 @@ msgid ""
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:19078
+#: doc/guix.texi:21298
 #, no-wrap
 msgid "{Data Type} prometheus-node-exporter-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:19080
+#: doc/guix.texi:21300
 msgid "Data type representing the configuration of @command{node_exporter}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:19082
+#: doc/guix.texi:21302
 #, no-wrap
 msgid "@code{package} (default: @code{go-github-com-prometheus-node-exporter})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:19084
+#: doc/guix.texi:21304
 msgid "The prometheus-node-exporter package to use."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:19085
+#: doc/guix.texi:21305
 #, no-wrap
 msgid "@code{web-listen-address} (default: @code{\":9100\"})"
 msgstr ""
 
 #. type: subsubheading
-#: doc/guix.texi:19091
+#: doc/guix.texi:21311
 #, no-wrap
 msgid "Zabbix server"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:19092
+#: doc/guix.texi:21312
 #, no-wrap
 msgid "zabbix zabbix-server"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:19095
+#: doc/guix.texi:21315
 msgid "Zabbix provides monitoring metrics, among others network utilization, CPU load and disk space consumption:"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:19097
+#: doc/guix.texi:21317
 #, no-wrap
 msgid "High performance, high capacity (able to monitor hundreds of thousands of devices)."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:19098
+#: doc/guix.texi:21318
 #, no-wrap
 msgid "Auto-discovery of servers and network devices and interfaces."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:19099
+#: doc/guix.texi:21319
 #, no-wrap
 msgid "Low-level discovery, allows to automatically start monitoring new items, file systems or network interfaces among others."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:19100
+#: doc/guix.texi:21320
 #, no-wrap
 msgid "Distributed monitoring with centralized web administration."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:19101
+#: doc/guix.texi:21321
 #, no-wrap
 msgid "Native high performance agents."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:19102
+#: doc/guix.texi:21322
 #, no-wrap
 msgid "SLA, and ITIL KPI metrics on reporting."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:19103
+#: doc/guix.texi:21323
 #, no-wrap
 msgid "High-level (business) view of monitored resources through user-defined visual console screens and dashboards."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:19104
+#: doc/guix.texi:21324
 #, no-wrap
 msgid "Remote command execution through Zabbix proxies."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:19110
+#: doc/guix.texi:21330
 msgid "Available @code{zabbix-server-configuration} fields are:"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19111
+#: doc/guix.texi:21331
 #, no-wrap
 msgid "{@code{zabbix-server-configuration} parameter} package zabbix-server"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19113
+#: doc/guix.texi:21333
 msgid "The zabbix-server package."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19116
+#: doc/guix.texi:21336
 #, no-wrap
 msgid "{@code{zabbix-server-configuration} parameter} string user"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19118
+#: doc/guix.texi:21338
 msgid "User who will run the Zabbix server."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19120 doc/guix.texi:19127 doc/guix.texi:19141
-#: doc/guix.texi:19148 doc/guix.texi:19249 doc/guix.texi:19256
-#: doc/guix.texi:19367 doc/guix.texi:19374
+#: doc/guix.texi:21340 doc/guix.texi:21347 doc/guix.texi:21361
+#: doc/guix.texi:21368 doc/guix.texi:21469 doc/guix.texi:21476
+#: doc/guix.texi:21587 doc/guix.texi:21594
 msgid "Defaults to @samp{\"zabbix\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19123
+#: doc/guix.texi:21343
 #, no-wrap
 msgid "{@code{zabbix-server-configuration} parameter} group group"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19125
+#: doc/guix.texi:21345
 msgid "Group who will run the Zabbix server."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19130
+#: doc/guix.texi:21350
 #, no-wrap
 msgid "{@code{zabbix-server-configuration} parameter} string db-host"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19132 doc/guix.texi:19351
+#: doc/guix.texi:21352 doc/guix.texi:21571
 msgid "Database host name."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19134
+#: doc/guix.texi:21354
 msgid "Defaults to @samp{\"127.0.0.1\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19137
+#: doc/guix.texi:21357
 #, no-wrap
 msgid "{@code{zabbix-server-configuration} parameter} string db-name"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19139 doc/guix.texi:19365
+#: doc/guix.texi:21359 doc/guix.texi:21585
 msgid "Database name."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19144
+#: doc/guix.texi:21364
 #, no-wrap
 msgid "{@code{zabbix-server-configuration} parameter} string db-user"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19146 doc/guix.texi:19372
+#: doc/guix.texi:21366 doc/guix.texi:21592
 msgid "Database user."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19151
+#: doc/guix.texi:21371
 #, no-wrap
 msgid "{@code{zabbix-server-configuration} parameter} string db-password"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19154
+#: doc/guix.texi:21374
 msgid "Database password.  Please, use @code{include-files} with @code{DBPassword=SECRET} inside a specified file instead."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19159
+#: doc/guix.texi:21379
 #, no-wrap
 msgid "{@code{zabbix-server-configuration} parameter} number db-port"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19161 doc/guix.texi:19358
+#: doc/guix.texi:21381 doc/guix.texi:21578
 msgid "Database port."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19163 doc/guix.texi:19360
+#: doc/guix.texi:21383 doc/guix.texi:21580
 msgid "Defaults to @samp{5432}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19166
+#: doc/guix.texi:21386
 #, no-wrap
 msgid "{@code{zabbix-server-configuration} parameter} string log-type"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19168 doc/guix.texi:19269
+#: doc/guix.texi:21388 doc/guix.texi:21489
 msgid "Specifies where log messages are written to:"
 msgstr ""
 
 #. type: itemize
-#: doc/guix.texi:19172 doc/guix.texi:19273
+#: doc/guix.texi:21392 doc/guix.texi:21493
 msgid "@code{system} - syslog."
 msgstr ""
 
 #. type: itemize
-#: doc/guix.texi:19175 doc/guix.texi:19276
+#: doc/guix.texi:21395 doc/guix.texi:21496
 msgid "@code{file} - file specified with @code{log-file} parameter."
 msgstr ""
 
 #. type: itemize
-#: doc/guix.texi:19178 doc/guix.texi:19279
+#: doc/guix.texi:21398 doc/guix.texi:21499
 msgid "@code{console} - standard output."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19185
+#: doc/guix.texi:21405
 #, no-wrap
 msgid "{@code{zabbix-server-configuration} parameter} string log-file"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19187 doc/guix.texi:19288
+#: doc/guix.texi:21407 doc/guix.texi:21508
 msgid "Log file name for @code{log-type} @code{file} parameter."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19189
+#: doc/guix.texi:21409
 msgid "Defaults to @samp{\"/var/log/zabbix/server.log\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19192
+#: doc/guix.texi:21412
 #, no-wrap
 msgid "{@code{zabbix-server-configuration} parameter} string pid-file"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19194 doc/guix.texi:19295
+#: doc/guix.texi:21414 doc/guix.texi:21515
 msgid "Name of PID file."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19196
+#: doc/guix.texi:21416
 msgid "Defaults to @samp{\"/var/run/zabbix/zabbix_server.pid\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19199
+#: doc/guix.texi:21419
 #, no-wrap
 msgid "{@code{zabbix-server-configuration} parameter} string ssl-ca-location"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19202
+#: doc/guix.texi:21422
 msgid "The location of certificate authority (CA) files for SSL server certificate verification."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19204
+#: doc/guix.texi:21424
 msgid "Defaults to @samp{\"/etc/ssl/certs/ca-certificates.crt\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19207
+#: doc/guix.texi:21427
 #, no-wrap
 msgid "{@code{zabbix-server-configuration} parameter} string ssl-cert-location"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19209
+#: doc/guix.texi:21429
 msgid "Location of SSL client certificates."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19211
+#: doc/guix.texi:21431
 msgid "Defaults to @samp{\"/etc/ssl/certs\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19214
+#: doc/guix.texi:21434
 #, no-wrap
 msgid "{@code{zabbix-server-configuration} parameter} string extra-options"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19216 doc/guix.texi:19320
+#: doc/guix.texi:21436 doc/guix.texi:21540
 msgid "Extra options will be appended to Zabbix server configuration file."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19221
+#: doc/guix.texi:21441
 #, no-wrap
 msgid "{@code{zabbix-server-configuration} parameter} include-files include-files"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19224 doc/guix.texi:19328
+#: doc/guix.texi:21444 doc/guix.texi:21548
 msgid "You may include individual files or all files in a directory in the configuration file."
 msgstr ""
 
 #. type: subsubheading
-#: doc/guix.texi:19231
+#: doc/guix.texi:21451
 #, no-wrap
 msgid "Zabbix agent"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:19232
+#: doc/guix.texi:21452
 #, no-wrap
 msgid "zabbix zabbix-agent"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:19235
+#: doc/guix.texi:21455
 msgid "Zabbix agent gathers information for Zabbix server."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:19239
+#: doc/guix.texi:21459
 msgid "Available @code{zabbix-agent-configuration} fields are:"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19240
+#: doc/guix.texi:21460
 #, no-wrap
 msgid "{@code{zabbix-agent-configuration} parameter} package zabbix-agent"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19242
+#: doc/guix.texi:21462
 msgid "The zabbix-agent package."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19245
+#: doc/guix.texi:21465
 #, no-wrap
 msgid "{@code{zabbix-agent-configuration} parameter} string user"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19247
+#: doc/guix.texi:21467
 msgid "User who will run the Zabbix agent."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19252
+#: doc/guix.texi:21472
 #, no-wrap
 msgid "{@code{zabbix-agent-configuration} parameter} group group"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19254
+#: doc/guix.texi:21474
 msgid "Group who will run the Zabbix agent."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19259
+#: doc/guix.texi:21479
 #, no-wrap
 msgid "{@code{zabbix-agent-configuration} parameter} string hostname"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19262
+#: doc/guix.texi:21482
 msgid "Unique, case sensitive hostname which is required for active checks and must match hostname as configured on the server."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19264
+#: doc/guix.texi:21484
 msgid "Defaults to @samp{\"Zabbix server\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19267
+#: doc/guix.texi:21487
 #, no-wrap
 msgid "{@code{zabbix-agent-configuration} parameter} string log-type"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19286
+#: doc/guix.texi:21506
 #, no-wrap
 msgid "{@code{zabbix-agent-configuration} parameter} string log-file"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19290
+#: doc/guix.texi:21510
 msgid "Defaults to @samp{\"/var/log/zabbix/agent.log\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19293
+#: doc/guix.texi:21513
 #, no-wrap
 msgid "{@code{zabbix-agent-configuration} parameter} string pid-file"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19297
+#: doc/guix.texi:21517
 msgid "Defaults to @samp{\"/var/run/zabbix/zabbix_agent.pid\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19300
+#: doc/guix.texi:21520
 #, no-wrap
 msgid "{@code{zabbix-agent-configuration} parameter} list server"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19304
+#: doc/guix.texi:21524
 msgid "List of IP addresses, optionally in CIDR notation, or hostnames of Zabbix servers and Zabbix proxies.  Incoming connections will be accepted only from the hosts listed here."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19306 doc/guix.texi:19315
+#: doc/guix.texi:21526 doc/guix.texi:21535
 msgid "Defaults to @samp{(\"127.0.0.1\")}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19309
+#: doc/guix.texi:21529
 #, no-wrap
 msgid "{@code{zabbix-agent-configuration} parameter} list server-active"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19313
+#: doc/guix.texi:21533
 msgid "List of IP:port (or hostname:port) pairs of Zabbix servers and Zabbix proxies for active checks.  If port is not specified, default port is used.  If this parameter is not specified, active checks are disabled."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19318
+#: doc/guix.texi:21538
 #, no-wrap
 msgid "{@code{zabbix-agent-configuration} parameter} string extra-options"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19325
+#: doc/guix.texi:21545
 #, no-wrap
 msgid "{@code{zabbix-agent-configuration} parameter} include-files include-files"
 msgstr ""
 
 #. type: subsubheading
-#: doc/guix.texi:19335
+#: doc/guix.texi:21555
 #, no-wrap
 msgid "Zabbix front-end"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:19336
+#: doc/guix.texi:21556
 #, no-wrap
 msgid "zabbix zabbix-front-end"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:19339
+#: doc/guix.texi:21559
 msgid "This service provides a WEB interface to Zabbix server."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:19343
+#: doc/guix.texi:21563
 msgid "Available @code{zabbix-front-end-configuration} fields are:"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19344
+#: doc/guix.texi:21564
 #, no-wrap
 msgid "{@code{zabbix-front-end-configuration} parameter} nginx-server-configuration-list nginx"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19346 doc/guix.texi:24202
+#: doc/guix.texi:21566 doc/guix.texi:27391
 msgid "NGINX configuration."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19349
+#: doc/guix.texi:21569
 #, no-wrap
 msgid "{@code{zabbix-front-end-configuration} parameter} string db-host"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19356
+#: doc/guix.texi:21576
 #, no-wrap
 msgid "{@code{zabbix-front-end-configuration} parameter} number db-port"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19363
+#: doc/guix.texi:21583
 #, no-wrap
 msgid "{@code{zabbix-front-end-configuration} parameter} string db-name"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19370
+#: doc/guix.texi:21590
 #, no-wrap
 msgid "{@code{zabbix-front-end-configuration} parameter} string db-user"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19377
+#: doc/guix.texi:21597
 #, no-wrap
 msgid "{@code{zabbix-front-end-configuration} parameter} string db-password"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19379
+#: doc/guix.texi:21599
 msgid "Database password.  Please, use @code{db-secret-file} instead."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19384
+#: doc/guix.texi:21604
 #, no-wrap
 msgid "{@code{zabbix-front-end-configuration} parameter} string db-secret-file"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19388
+#: doc/guix.texi:21608
 msgid "Secret file which will be appended to @file{zabbix.conf.php} file.  This file contains credentials for use by Zabbix front-end.  You are expected to create it manually."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19393
+#: doc/guix.texi:21613
 #, no-wrap
 msgid "{@code{zabbix-front-end-configuration} parameter} string zabbix-host"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19395
+#: doc/guix.texi:21615
 msgid "Zabbix server hostname."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19400
+#: doc/guix.texi:21620
 #, no-wrap
 msgid "{@code{zabbix-front-end-configuration} parameter} number zabbix-port"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19402
+#: doc/guix.texi:21622
 msgid "Zabbix server port."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19404
+#: doc/guix.texi:21624
 msgid "Defaults to @samp{10051}."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:19412
+#: doc/guix.texi:21632
 #, no-wrap
 msgid "Kerberos"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:19416
+#: doc/guix.texi:21636
 msgid "The @code{(gnu services kerberos)} module provides services relating to the authentication protocol @dfn{Kerberos}."
 msgstr ""
 
 #. type: subsubheading
-#: doc/guix.texi:19417
+#: doc/guix.texi:21637
 #, no-wrap
 msgid "Krb5 Service"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:19424
+#: doc/guix.texi:21644
 msgid "Programs using a Kerberos client library normally expect a configuration file in @file{/etc/krb5.conf}.  This service generates such a file from a definition provided in the operating system declaration.  It does not cause any daemon to be started."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:19428
+#: doc/guix.texi:21648
 msgid "No ``keytab'' files are provided by this service---you must explicitly create them.  This service is known to work with the MIT client library, @code{mit-krb5}.  Other implementations have not been tested."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:19429
+#: doc/guix.texi:21649
 #, no-wrap
 msgid "{Scheme Variable} krb5-service-type"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:19431
+#: doc/guix.texi:21651
 msgid "A service type for Kerberos 5 clients."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:19435
+#: doc/guix.texi:21655
 msgid "Here is an example of its use:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:19449
+#: doc/guix.texi:21669
 #, no-wrap
 msgid ""
 "(service krb5-service-type\n"
@@ -35806,206 +39998,206 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:19453
+#: doc/guix.texi:21673
 msgid "This example provides a Kerberos@tie{}5 client configuration which:"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:19454
+#: doc/guix.texi:21674
 #, no-wrap
 msgid "Recognizes two realms, @i{viz:} ``EXAMPLE.COM'' and ``ARGRX.EDU'', both"
 msgstr ""
 
 #. type: itemize
-#: doc/guix.texi:19456
+#: doc/guix.texi:21676
 msgid "of which have distinct administration servers and key distribution centers;"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:19456
+#: doc/guix.texi:21676
 #, no-wrap
 msgid "Will default to the realm ``EXAMPLE.COM'' if the realm is not explicitly"
 msgstr ""
 
 #. type: itemize
-#: doc/guix.texi:19458
+#: doc/guix.texi:21678
 msgid "specified by clients;"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:19458
+#: doc/guix.texi:21678
 #, no-wrap
 msgid "Accepts services which only support encryption types known to be weak."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:19466
+#: doc/guix.texi:21686
 msgid "The @code{krb5-realm} and @code{krb5-configuration} types have many fields.  Only the most commonly used ones are described here.  For a full list, and more detailed explanation of each, see the MIT @uref{https://web.mit.edu/kerberos/krb5-devel/doc/admin/conf_files/krb5_conf.html,,krb5.conf} documentation."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:19468
+#: doc/guix.texi:21688
 #, no-wrap
 msgid "{Data Type} krb5-realm"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:19469
+#: doc/guix.texi:21689
 #, no-wrap
 msgid "realm, kerberos"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:19475
+#: doc/guix.texi:21695
 msgid "This field is a string identifying the name of the realm.  A common convention is to use the fully qualified DNS name of your organization, converted to upper case."
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:19476
+#: doc/guix.texi:21696
 #, no-wrap
 msgid "admin-server"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:19479
+#: doc/guix.texi:21699
 msgid "This field is a string identifying the host where the administration server is running."
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:19480
+#: doc/guix.texi:21700
 #, no-wrap
 msgid "kdc"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:19483
+#: doc/guix.texi:21703
 msgid "This field is a string identifying the key distribution center for the realm."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:19486
+#: doc/guix.texi:21706
 #, no-wrap
 msgid "{Data Type} krb5-configuration"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:19489
+#: doc/guix.texi:21709
 #, no-wrap
 msgid "@code{allow-weak-crypto?} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:19492
+#: doc/guix.texi:21712
 msgid "If this flag is @code{#t} then services which only offer encryption algorithms known to be weak will be accepted."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:19493
+#: doc/guix.texi:21713
 #, no-wrap
 msgid "@code{default-realm} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:19500
+#: doc/guix.texi:21720
 msgid "This field should be a string identifying the default Kerberos realm for the client.  You should set this field to the name of your Kerberos realm.  If this value is @code{#f} then a realm must be specified with every Kerberos principal when invoking programs such as @command{kinit}."
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:19501
+#: doc/guix.texi:21721
 #, no-wrap
 msgid "realms"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:19506
+#: doc/guix.texi:21726
 msgid "This should be a non-empty list of @code{krb5-realm} objects, which clients may access.  Normally, one of them will have a @code{name} field matching the @code{default-realm} field."
 msgstr ""
 
 #. type: subsubheading
-#: doc/guix.texi:19510
+#: doc/guix.texi:21730
 #, no-wrap
 msgid "PAM krb5 Service"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:19511
+#: doc/guix.texi:21731
 #, no-wrap
 msgid "pam-krb5"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:19517
+#: doc/guix.texi:21737
 msgid "The @code{pam-krb5} service allows for login authentication and password management via Kerberos.  You will need this service if you want PAM enabled applications to authenticate users using Kerberos."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:19518
+#: doc/guix.texi:21738
 #, no-wrap
 msgid "{Scheme Variable} pam-krb5-service-type"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:19520
+#: doc/guix.texi:21740
 msgid "A service type for the Kerberos 5 PAM module."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:19522
+#: doc/guix.texi:21742
 #, no-wrap
 msgid "{Data Type} pam-krb5-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:19525
+#: doc/guix.texi:21745
 msgid "Data type representing the configuration of the Kerberos 5 PAM module.  This type has the following parameters:"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:19526
+#: doc/guix.texi:21746
 #, no-wrap
 msgid "@code{pam-krb5} (default: @code{pam-krb5})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:19528
+#: doc/guix.texi:21748
 msgid "The pam-krb5 package to use."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:19529
+#: doc/guix.texi:21749
 #, no-wrap
 msgid "@code{minimum-uid} (default: @code{1000})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:19532
+#: doc/guix.texi:21752
 msgid "The smallest user ID for which Kerberos authentications should be attempted.  Local accounts with lower values will silently fail to authenticate."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:19538
+#: doc/guix.texi:21758
 #, no-wrap
 msgid "LDAP"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:19539
+#: doc/guix.texi:21759
 #, no-wrap
 msgid "nslcd, LDAP service"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:19546
+#: doc/guix.texi:21766
 msgid "The @code{(gnu services authentication)} module provides the @code{nslcd-service-type}, which can be used to authenticate against an LDAP server.  In addition to configuring the service itself, you may want to add @code{ldap} as a name service to the Name Service Switch. @xref{Name Service Switch} for detailed information."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:19550
+#: doc/guix.texi:21770
 msgid "Here is a simple operating system declaration with a default configuration of the @code{nslcd-service-type} and a Name Service Switch configuration that consults the @code{ldap} name service last:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:19573
+#: doc/guix.texi:21793
 #, no-wrap
 msgid ""
 "(use-service-modules authentication)\n"
@@ -36032,671 +40224,671 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:19578
+#: doc/guix.texi:21798
 msgid "Available @code{nslcd-configuration} fields are:"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19579
+#: doc/guix.texi:21799
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} package nss-pam-ldapd"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19581
+#: doc/guix.texi:21801
 msgid "The @code{nss-pam-ldapd} package to use."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19584
+#: doc/guix.texi:21804
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-number threads"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19588
+#: doc/guix.texi:21808
 msgid "The number of threads to start that can handle requests and perform LDAP queries.  Each thread opens a separate connection to the LDAP server.  The default is to start 5 threads."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19590 doc/guix.texi:19632 doc/guix.texi:19640
-#: doc/guix.texi:19648 doc/guix.texi:19656 doc/guix.texi:19665
-#: doc/guix.texi:19673 doc/guix.texi:19680 doc/guix.texi:19688
-#: doc/guix.texi:19696 doc/guix.texi:19706 doc/guix.texi:19713
-#: doc/guix.texi:19737 doc/guix.texi:19745 doc/guix.texi:19771
-#: doc/guix.texi:19780 doc/guix.texi:19789 doc/guix.texi:19798
-#: doc/guix.texi:19807 doc/guix.texi:19816 doc/guix.texi:19824
-#: doc/guix.texi:19832 doc/guix.texi:19839 doc/guix.texi:19847
-#: doc/guix.texi:19854 doc/guix.texi:19862 doc/guix.texi:19870
-#: doc/guix.texi:19879 doc/guix.texi:19888 doc/guix.texi:19896
-#: doc/guix.texi:19904 doc/guix.texi:19912 doc/guix.texi:19923
-#: doc/guix.texi:19933 doc/guix.texi:19944 doc/guix.texi:19953
-#: doc/guix.texi:19963 doc/guix.texi:19971 doc/guix.texi:19982
-#: doc/guix.texi:19991 doc/guix.texi:20001 doc/guix.texi:22685
-#: doc/guix.texi:22692 doc/guix.texi:22699 doc/guix.texi:22706
-#: doc/guix.texi:22713 doc/guix.texi:22720 doc/guix.texi:22728
-#: doc/guix.texi:22736 doc/guix.texi:22743 doc/guix.texi:22750
-#: doc/guix.texi:22757 doc/guix.texi:22764 doc/guix.texi:22794
-#: doc/guix.texi:22832 doc/guix.texi:22839 doc/guix.texi:22848
-#: doc/guix.texi:22870 doc/guix.texi:22878 doc/guix.texi:22885
-#: doc/guix.texi:23040 doc/guix.texi:23060 doc/guix.texi:23075
-#: doc/guix.texi:23082 doc/guix.texi:24940 doc/guix.texi:24948
-#: doc/guix.texi:24956 doc/guix.texi:24964 doc/guix.texi:24972
-#: doc/guix.texi:24980
+#: doc/guix.texi:21810 doc/guix.texi:21853 doc/guix.texi:21861
+#: doc/guix.texi:21869 doc/guix.texi:21877 doc/guix.texi:21886
+#: doc/guix.texi:21894 doc/guix.texi:21901 doc/guix.texi:21909
+#: doc/guix.texi:21917 doc/guix.texi:21927 doc/guix.texi:21934
+#: doc/guix.texi:21958 doc/guix.texi:21966 doc/guix.texi:21992
+#: doc/guix.texi:22001 doc/guix.texi:22010 doc/guix.texi:22019
+#: doc/guix.texi:22028 doc/guix.texi:22037 doc/guix.texi:22045
+#: doc/guix.texi:22053 doc/guix.texi:22060 doc/guix.texi:22068
+#: doc/guix.texi:22075 doc/guix.texi:22083 doc/guix.texi:22091
+#: doc/guix.texi:22100 doc/guix.texi:22109 doc/guix.texi:22117
+#: doc/guix.texi:22125 doc/guix.texi:22133 doc/guix.texi:22144
+#: doc/guix.texi:22154 doc/guix.texi:22165 doc/guix.texi:22174
+#: doc/guix.texi:22184 doc/guix.texi:22192 doc/guix.texi:22203
+#: doc/guix.texi:22212 doc/guix.texi:22222 doc/guix.texi:25041
+#: doc/guix.texi:25048 doc/guix.texi:25055 doc/guix.texi:25062
+#: doc/guix.texi:25069 doc/guix.texi:25076 doc/guix.texi:25084
+#: doc/guix.texi:25092 doc/guix.texi:25099 doc/guix.texi:25106
+#: doc/guix.texi:25113 doc/guix.texi:25120 doc/guix.texi:25150
+#: doc/guix.texi:25188 doc/guix.texi:25195 doc/guix.texi:25204
+#: doc/guix.texi:25226 doc/guix.texi:25234 doc/guix.texi:25241
+#: doc/guix.texi:25396 doc/guix.texi:25416 doc/guix.texi:25431
+#: doc/guix.texi:25438 doc/guix.texi:28129 doc/guix.texi:28137
+#: doc/guix.texi:28145 doc/guix.texi:28153 doc/guix.texi:28161
+#: doc/guix.texi:28169
 msgid "Defaults to @samp{disabled}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19593
+#: doc/guix.texi:21813
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} string uid"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19595
+#: doc/guix.texi:21815
 msgid "This specifies the user id with which the daemon should be run."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19597 doc/guix.texi:19604
+#: doc/guix.texi:21817 doc/guix.texi:21824
 msgid "Defaults to @samp{\"nslcd\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19600
+#: doc/guix.texi:21820
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} string gid"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19602
+#: doc/guix.texi:21822
 msgid "This specifies the group id with which the daemon should be run."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19607
+#: doc/guix.texi:21827
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} log-option log"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19614
-msgid "This option controls the way logging is done via a list containing SCHEME and LEVEL.  The SCHEME argument may either be the symbols \"none\" or \"syslog\", or an absolute file name.  The LEVEL argument is optional and specifies the log level.  The log level may be one of the following symbols: \"crit\", \"error\", \"warning\", \"notice\", \"info\" or \"debug\".  All messages with the specified log level or higher are logged."
+#: doc/guix.texi:21835
+msgid "This option controls the way logging is done via a list containing SCHEME and LEVEL.  The SCHEME argument may either be the symbols @samp{none} or @samp{syslog}, or an absolute file name.  The LEVEL argument is optional and specifies the log level.  The log level may be one of the following symbols: @samp{crit}, @samp{error}, @samp{warning}, @samp{notice}, @samp{info} or @samp{debug}.  All messages with the specified log level or higher are logged."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19616
+#: doc/guix.texi:21837
 msgid "Defaults to @samp{(\"/var/log/nslcd\" info)}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19619
+#: doc/guix.texi:21840
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} list uri"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19622
+#: doc/guix.texi:21843
 msgid "The list of LDAP server URIs.  Normally, only the first server will be used with the following servers as fall-back."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19624
+#: doc/guix.texi:21845
 msgid "Defaults to @samp{(\"ldap://localhost:389/\")}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19627
+#: doc/guix.texi:21848
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-string ldap-version"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19630
+#: doc/guix.texi:21851
 msgid "The version of the LDAP protocol to use.  The default is to use the maximum version supported by the LDAP library."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19635
+#: doc/guix.texi:21856
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-string binddn"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19638
+#: doc/guix.texi:21859
 msgid "Specifies the distinguished name with which to bind to the directory server for lookups.  The default is to bind anonymously."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19643
+#: doc/guix.texi:21864
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-string bindpw"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19646
+#: doc/guix.texi:21867
 msgid "Specifies the credentials with which to bind.  This option is only applicable when used with binddn."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19651
+#: doc/guix.texi:21872
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-string rootpwmoddn"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19654
+#: doc/guix.texi:21875
 msgid "Specifies the distinguished name to use when the root user tries to modify a user's password using the PAM module."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19659
+#: doc/guix.texi:21880
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-string rootpwmodpw"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19663
+#: doc/guix.texi:21884
 msgid "Specifies the credentials with which to bind if the root user tries to change a user's password.  This option is only applicable when used with rootpwmoddn"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19668
+#: doc/guix.texi:21889
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-string sasl-mech"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19671
+#: doc/guix.texi:21892
 msgid "Specifies the SASL mechanism to be used when performing SASL authentication."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19676
+#: doc/guix.texi:21897
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-string sasl-realm"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19678
+#: doc/guix.texi:21899
 msgid "Specifies the SASL realm to be used when performing SASL authentication."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19683
+#: doc/guix.texi:21904
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-string sasl-authcid"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19686
+#: doc/guix.texi:21907
 msgid "Specifies the authentication identity to be used when performing SASL authentication."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19691
+#: doc/guix.texi:21912
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-string sasl-authzid"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19694
+#: doc/guix.texi:21915
 msgid "Specifies the authorization identity to be used when performing SASL authentication."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19699
+#: doc/guix.texi:21920
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-boolean sasl-canonicalize?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19704
+#: doc/guix.texi:21925
 msgid "Determines whether the LDAP server host name should be canonicalised.  If this is enabled the LDAP library will do a reverse host name lookup.  By default, it is left up to the LDAP library whether this check is performed or not."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19709
+#: doc/guix.texi:21930
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-string krb5-ccname"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19711
+#: doc/guix.texi:21932
 msgid "Set the name for the GSS-API Kerberos credentials cache."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19716
+#: doc/guix.texi:21937
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} string base"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19718
+#: doc/guix.texi:21939
 msgid "The directory search base."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19720
+#: doc/guix.texi:21941
 msgid "Defaults to @samp{\"dc=example,dc=com\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19723
+#: doc/guix.texi:21944
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} scope-option scope"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19727
+#: doc/guix.texi:21948
 msgid "Specifies the search scope (subtree, onelevel, base or children).  The default scope is subtree; base scope is almost never useful for name service lookups; children scope is not supported on all servers."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19729
+#: doc/guix.texi:21950
 msgid "Defaults to @samp{(subtree)}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19732
+#: doc/guix.texi:21953
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-deref-option deref"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19735
+#: doc/guix.texi:21956
 msgid "Specifies the policy for dereferencing aliases.  The default policy is to never dereference aliases."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19740
+#: doc/guix.texi:21961
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-boolean referrals"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19743
+#: doc/guix.texi:21964
 msgid "Specifies whether automatic referral chasing should be enabled.  The default behaviour is to chase referrals."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19748
+#: doc/guix.texi:21969
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} list-of-map-entries maps"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19753
+#: doc/guix.texi:21974
 msgid "This option allows for custom attributes to be looked up instead of the default RFC 2307 attributes.  It is a list of maps, each consisting of the name of a map, the RFC 2307 attribute to match and the query expression for the attribute as it is available in the directory."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19758
+#: doc/guix.texi:21979
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} list-of-filter-entries filters"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19761
+#: doc/guix.texi:21982
 msgid "A list of filters consisting of the name of a map to which the filter applies and an LDAP search filter expression."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19766
+#: doc/guix.texi:21987
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-number bind-timelimit"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19769
+#: doc/guix.texi:21990
 msgid "Specifies the time limit in seconds to use when connecting to the directory server.  The default value is 10 seconds."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19774
+#: doc/guix.texi:21995
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-number timelimit"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19778
+#: doc/guix.texi:21999
 msgid "Specifies the time limit (in seconds) to wait for a response from the LDAP server.  A value of zero, which is the default, is to wait indefinitely for searches to be completed."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19783
+#: doc/guix.texi:22004
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-number idle-timelimit"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19787
+#: doc/guix.texi:22008
 msgid "Specifies the period if inactivity (in seconds) after which the con‐ nection to the LDAP server will be closed.  The default is not to time out connections."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19792
+#: doc/guix.texi:22013
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-number reconnect-sleeptime"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19796
+#: doc/guix.texi:22017
 msgid "Specifies the number of seconds to sleep when connecting to all LDAP servers fails.  By default one second is waited between the first failure and the first retry."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19801
+#: doc/guix.texi:22022
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-number reconnect-retrytime"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19805
+#: doc/guix.texi:22026
 msgid "Specifies the time after which the LDAP server is considered to be permanently unavailable.  Once this time is reached retries will be done only once per this time period.  The default value is 10 seconds."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19810
+#: doc/guix.texi:22031
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-ssl-option ssl"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19814
+#: doc/guix.texi:22035
 msgid "Specifies whether to use SSL/TLS or not (the default is not to).  If 'start-tls is specified then StartTLS is used rather than raw LDAP over SSL."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19819
+#: doc/guix.texi:22040
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-tls-reqcert-option tls-reqcert"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19822
+#: doc/guix.texi:22043
 msgid "Specifies what checks to perform on a server-supplied certificate.  The meaning of the values is described in the ldap.conf(5) manual page."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19827
+#: doc/guix.texi:22048
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-string tls-cacertdir"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19830
+#: doc/guix.texi:22051
 msgid "Specifies the directory containing X.509 certificates for peer authen‐ tication.  This parameter is ignored when using GnuTLS."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19835
+#: doc/guix.texi:22056
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-string tls-cacertfile"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19837
+#: doc/guix.texi:22058
 msgid "Specifies the path to the X.509 certificate for peer authentication."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19842
+#: doc/guix.texi:22063
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-string tls-randfile"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19845
+#: doc/guix.texi:22066
 msgid "Specifies the path to an entropy source.  This parameter is ignored when using GnuTLS."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19850
+#: doc/guix.texi:22071
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-string tls-ciphers"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19852
+#: doc/guix.texi:22073
 msgid "Specifies the ciphers to use for TLS as a string."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19857
+#: doc/guix.texi:22078
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-string tls-cert"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19860
+#: doc/guix.texi:22081
 msgid "Specifies the path to the file containing the local certificate for client TLS authentication."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19865
+#: doc/guix.texi:22086
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-string tls-key"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19868
+#: doc/guix.texi:22089
 msgid "Specifies the path to the file containing the private key for client TLS authentication."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19873
+#: doc/guix.texi:22094
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-number pagesize"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19877
+#: doc/guix.texi:22098
 msgid "Set this to a number greater than 0 to request paged results from the LDAP server in accordance with RFC2696.  The default (0) is to not request paged results."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19882
+#: doc/guix.texi:22103
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-ignore-users-option nss-initgroups-ignoreusers"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19886
+#: doc/guix.texi:22107
 msgid "This option prevents group membership lookups through LDAP for the specified users.  Alternatively, the value 'all-local may be used.  With that value nslcd builds a full list of non-LDAP users on startup."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19891
+#: doc/guix.texi:22112
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-number nss-min-uid"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19894
+#: doc/guix.texi:22115
 msgid "This option ensures that LDAP users with a numeric user id lower than the specified value are ignored."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19899
+#: doc/guix.texi:22120
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-number nss-uid-offset"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19902
+#: doc/guix.texi:22123
 msgid "This option specifies an offset that is added to all LDAP numeric user ids.  This can be used to avoid user id collisions with local users."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19907
+#: doc/guix.texi:22128
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-number nss-gid-offset"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19910
+#: doc/guix.texi:22131
 msgid "This option specifies an offset that is added to all LDAP numeric group ids.  This can be used to avoid user id collisions with local groups."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19915
+#: doc/guix.texi:22136
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-boolean nss-nested-groups"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19921
+#: doc/guix.texi:22142
 msgid "If this option is set, the member attribute of a group may point to another group.  Members of nested groups are also returned in the higher level group and parent groups are returned when finding groups for a specific user.  The default is not to perform extra searches for nested groups."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19926
+#: doc/guix.texi:22147
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-boolean nss-getgrent-skipmembers"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19931
+#: doc/guix.texi:22152
 msgid "If this option is set, the group member list is not retrieved when looking up groups.  Lookups for finding which groups a user belongs to will remain functional so the user will likely still get the correct groups assigned on login."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19936
+#: doc/guix.texi:22157
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-boolean nss-disable-enumeration"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19942
+#: doc/guix.texi:22163
 msgid "If this option is set, functions which cause all user/group entries to be loaded from the directory will not succeed in doing so.  This can dramatically reduce LDAP server load in situations where there are a great number of users and/or groups.  This option is not recommended for most configurations."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19947
+#: doc/guix.texi:22168
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-string validnames"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19951
+#: doc/guix.texi:22172
 msgid "This option can be used to specify how user and group names are verified within the system.  This pattern is used to check all user and group names that are requested and returned from LDAP."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19956
+#: doc/guix.texi:22177
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-boolean ignorecase"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19961
+#: doc/guix.texi:22182
 msgid "This specifies whether or not to perform searches using case-insensitive matching.  Enabling this could open up the system to authorization bypass vulnerabilities and introduce nscd cache poisoning vulnerabilities which allow denial of service."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19966
+#: doc/guix.texi:22187
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-boolean pam-authc-ppolicy"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19969
+#: doc/guix.texi:22190
 msgid "This option specifies whether password policy controls are requested and handled from the LDAP server when performing user authentication."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19974
+#: doc/guix.texi:22195
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-string pam-authc-search"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19980
+#: doc/guix.texi:22201
 msgid "By default nslcd performs an LDAP search with the user's credentials after BIND (authentication) to ensure that the BIND operation was successful.  The default search is a simple check to see if the user's DN exists.  A search filter can be specified that will be used instead.  It should return at least one entry."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19985
+#: doc/guix.texi:22206
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-string pam-authz-search"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19989
+#: doc/guix.texi:22210
 msgid "This option allows flexible fine tuning of the authorisation check that should be performed.  The search filter specified is executed and if any entries match, access is granted, otherwise access is denied."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19994
+#: doc/guix.texi:22215
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} maybe-string pam-password-prohibit-message"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19999
+#: doc/guix.texi:22220
 msgid "If this option is set password modification using pam_ldap will be denied and the specified message will be presented to the user instead.  The message can be used to direct the user to an alternative means of changing their password."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20004
+#: doc/guix.texi:22225
 #, no-wrap
 msgid "{@code{nslcd-configuration} parameter} list pam-services"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20006
+#: doc/guix.texi:22227
 msgid "List of pam service names for which LDAP authentication should suffice."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:20017
+#: doc/guix.texi:22238
 #, no-wrap
 msgid "web"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:20018
+#: doc/guix.texi:22239
 #, no-wrap
 msgid "www"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:20019
+#: doc/guix.texi:22240
 #, no-wrap
 msgid "HTTP"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:20022
+#: doc/guix.texi:22243
 msgid "The @code{(gnu services web)} module provides the Apache HTTP Server, the nginx web server, and also a fastcgi wrapper daemon."
 msgstr ""
 
 #. type: subsubheading
-#: doc/guix.texi:20023
+#: doc/guix.texi:22244
 #, no-wrap
 msgid "Apache HTTP Server"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:20025
+#: doc/guix.texi:22246
 #, no-wrap
 msgid "{Scheme Variable} httpd-service-type"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:20029
+#: doc/guix.texi:22250
 msgid "Service type for the @uref{https://httpd.apache.org/,Apache HTTP} server (@dfn{httpd}).  The value for this service type is a @code{httpd-configuration} record."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:20031 doc/guix.texi:20212
+#: doc/guix.texi:22252 doc/guix.texi:22433
 msgid "A simple example configuration is given below."
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:20039
+#: doc/guix.texi:22260
 #, no-wrap
 msgid ""
 "(service httpd-service-type\n"
@@ -36708,12 +40900,12 @@ msgid ""
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:20043
+#: doc/guix.texi:22264
 msgid "Other services can also extend the @code{httpd-service-type} to add to the configuration."
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:20052 doc/guix.texi:20192
+#: doc/guix.texi:22273 doc/guix.texi:22413
 #, no-wrap
 msgid ""
 "(simple-service 'www.example.com-server httpd-service-type\n"
@@ -36726,115 +40918,115 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:20058
+#: doc/guix.texi:22279
 msgid "The details for the @code{httpd-configuration}, @code{httpd-module}, @code{httpd-config-file} and @code{httpd-virtualhost} record types are given below."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:20059
+#: doc/guix.texi:22280
 #, no-wrap
 msgid "{Data Type} httpd-configuration"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:20061
+#: doc/guix.texi:22282
 msgid "This data type represents the configuration for the httpd service."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20063
+#: doc/guix.texi:22284
 #, no-wrap
 msgid "@code{package} (default: @code{httpd})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20065
+#: doc/guix.texi:22286
 msgid "The httpd package to use."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20066 doc/guix.texi:20155
+#: doc/guix.texi:22287 doc/guix.texi:22376
 #, no-wrap
 msgid "@code{pid-file} (default: @code{\"/var/run/httpd\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20068
+#: doc/guix.texi:22289
 msgid "The pid file used by the shepherd-service."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20069
+#: doc/guix.texi:22290
 #, no-wrap
 msgid "@code{config} (default: @code{(httpd-config-file)})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20074
+#: doc/guix.texi:22295
 msgid "The configuration file to use with the httpd service. The default value is a @code{httpd-config-file} record, but this can also be a different G-expression that generates a file, for example a @code{plain-file}. A file outside of the store can also be specified through a string."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:20078
+#: doc/guix.texi:22299
 #, no-wrap
 msgid "{Data Type} httpd-module"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:20080
+#: doc/guix.texi:22301
 msgid "This data type represents a module for the httpd service."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20084
+#: doc/guix.texi:22305
 msgid "The name of the module."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20090
+#: doc/guix.texi:22311
 msgid "The file for the module. This can be relative to the httpd package being used, the absolute location of a file, or a G-expression for a file within the store, for example @code{(file-append mod-wsgi \"/modules/mod_wsgi.so\")}."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:20094
+#: doc/guix.texi:22315
 #, no-wrap
 msgid "{Scheme Variable} %default-httpd-modules"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:20096
+#: doc/guix.texi:22317
 msgid "A default list of @code{httpd-module} objects."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:20098
+#: doc/guix.texi:22319
 #, no-wrap
 msgid "{Data Type} httpd-config-file"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:20100
+#: doc/guix.texi:22321
 msgid "This data type represents a configuration file for the httpd service."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20102
+#: doc/guix.texi:22323
 #, no-wrap
 msgid "@code{modules} (default: @code{%default-httpd-modules})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20105
+#: doc/guix.texi:22326
 msgid "The modules to load. Additional modules can be added here, or loaded by additional configuration."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20108
+#: doc/guix.texi:22329
 msgid "For example, in order to handle requests for PHP files, you can use Apache’s @code{mod_proxy_fcgi} module along with @code{php-fpm-service-type}:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:20130
+#: doc/guix.texi:22351
 #, no-wrap
 msgid ""
 "(service httpd-service-type\n"
@@ -36860,165 +41052,165 @@ msgid ""
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20132
+#: doc/guix.texi:22353
 #, no-wrap
 msgid "@code{server-root} (default: @code{httpd})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20136
+#: doc/guix.texi:22357
 msgid "The @code{ServerRoot} in the configuration file, defaults to the httpd package. Directives including @code{Include} and @code{LoadModule} are taken as relative to the server root."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20137
+#: doc/guix.texi:22358
 #, no-wrap
 msgid "@code{server-name} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20141
+#: doc/guix.texi:22362
 msgid "The @code{ServerName} in the configuration file, used to specify the request scheme, hostname and port that the server uses to identify itself."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20145
+#: doc/guix.texi:22366
 msgid "This doesn't need to be set in the server config, and can be specified in virtual hosts. The default is @code{#f} to not specify a @code{ServerName}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20146
+#: doc/guix.texi:22367
 #, no-wrap
 msgid "@code{document-root} (default: @code{\"/srv/http\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20148
+#: doc/guix.texi:22369
 msgid "The @code{DocumentRoot} from which files will be served."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20149
+#: doc/guix.texi:22370
 #, no-wrap
 msgid "@code{listen} (default: @code{'(\"80\")})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20154
+#: doc/guix.texi:22375
 msgid "The list of values for the @code{Listen} directives in the config file. The value should be a list of strings, when each string can specify the port number to listen on, and optionally the IP address and protocol to use."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20159
+#: doc/guix.texi:22380
 msgid "The @code{PidFile} to use. This should match the @code{pid-file} set in the @code{httpd-configuration} so that the Shepherd service is configured correctly."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20160
+#: doc/guix.texi:22381
 #, no-wrap
 msgid "@code{error-log} (default: @code{\"/var/log/httpd/error_log\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20162
+#: doc/guix.texi:22383
 msgid "The @code{ErrorLog} to which the server will log errors."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20163 doc/guix.texi:20702
+#: doc/guix.texi:22384 doc/guix.texi:22945
 #, no-wrap
 msgid "@code{user} (default: @code{\"httpd\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20165
+#: doc/guix.texi:22386
 msgid "The @code{User} which the server will answer requests as."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20166
+#: doc/guix.texi:22387
 #, no-wrap
 msgid "@code{group} (default: @code{\"httpd\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20168
+#: doc/guix.texi:22389
 msgid "The @code{Group} which the server will answer requests as."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20169
+#: doc/guix.texi:22390
 #, no-wrap
 msgid "@code{extra-config} (default: @code{(list \"TypesConfig etc/httpd/mime.types\")})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20172
+#: doc/guix.texi:22393
 msgid "A flat list of strings and G-expressions which will be added to the end of the configuration file."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20175
+#: doc/guix.texi:22396
 msgid "Any values which the service is extended with will be appended to this list."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:20179
+#: doc/guix.texi:22400
 #, no-wrap
 msgid "{Data Type} httpd-virtualhost"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:20181
+#: doc/guix.texi:22402
 msgid "This data type represents a virtualhost configuration block for the httpd service."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:20183
+#: doc/guix.texi:22404
 msgid "These should be added to the extra-config for the httpd-service."
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:20195
+#: doc/guix.texi:22416
 #, no-wrap
 msgid "addresses-and-ports"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20197
+#: doc/guix.texi:22418
 msgid "The addresses and ports for the @code{VirtualHost} directive."
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:20198
+#: doc/guix.texi:22419
 #, no-wrap
 msgid "contents"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20201
+#: doc/guix.texi:22422
 msgid "The contents of the @code{VirtualHost} directive, this should be a list of strings and G-expressions."
 msgstr ""
 
 #. type: subsubheading
-#: doc/guix.texi:20205
+#: doc/guix.texi:22426
 #, no-wrap
 msgid "NGINX"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:20207
+#: doc/guix.texi:22428
 #, no-wrap
 msgid "{Scheme Variable} nginx-service-type"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:20210
+#: doc/guix.texi:22431
 msgid "Service type for the @uref{https://nginx.org/,NGinx} web server.  The value for this service type is a @code{<nginx-configuration>} record."
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:20220 doc/guix.texi:20274
+#: doc/guix.texi:22441 doc/guix.texi:22495
 #, no-wrap
 msgid ""
 "(service nginx-service-type\n"
@@ -37030,12 +41222,12 @@ msgid ""
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:20225
+#: doc/guix.texi:22446
 msgid "In addition to adding server blocks to the service configuration directly, this service can be extended by other services to add server blocks, as in this example:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:20231
+#: doc/guix.texi:22452
 #, no-wrap
 msgid ""
 "(simple-service 'my-extra-server nginx-service-type\n"
@@ -37045,88 +41237,88 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:20242
+#: doc/guix.texi:22463
 msgid "At startup, @command{nginx} has not yet read its configuration file, so it uses a default file to log error messages.  If it fails to load its configuration file, that is where error messages are logged.  After the configuration file is loaded, the default error log file changes as per configuration.  In our case, startup error messages can be found in @file{/var/run/nginx/logs/error.log}, and after configuration in @file{/var/log/nginx/error.log}.  The second location can be changed with the @var{log-directory} configuration option."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:20243
+#: doc/guix.texi:22464
 #, no-wrap
 msgid "{Data Type} nginx-configuration"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:20247
+#: doc/guix.texi:22468
 msgid "This data type represents the configuration for NGinx. Some configuration can be done through this and the other provided record types, or alternatively, a config file can be provided."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20249
+#: doc/guix.texi:22470
 #, no-wrap
 msgid "@code{nginx} (default: @code{nginx})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20251
+#: doc/guix.texi:22472
 msgid "The nginx package to use."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20252
+#: doc/guix.texi:22473
 #, no-wrap
 msgid "@code{log-directory} (default: @code{\"/var/log/nginx\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20254
+#: doc/guix.texi:22475
 msgid "The directory to which NGinx will write log files."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20255
+#: doc/guix.texi:22476
 #, no-wrap
 msgid "@code{run-directory} (default: @code{\"/var/run/nginx\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20258
+#: doc/guix.texi:22479
 msgid "The directory in which NGinx will create a pid file, and write temporary files."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20259
+#: doc/guix.texi:22480
 #, no-wrap
 msgid "@code{server-blocks} (default: @code{'()})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20263
+#: doc/guix.texi:22484
 msgid "A list of @dfn{server blocks} to create in the generated configuration file, the elements should be of type @code{<nginx-server-configuration>}."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20267
+#: doc/guix.texi:22488
 msgid "The following example would setup NGinx to serve @code{www.example.com} from the @code{/srv/http/www.example.com} directory, without using HTTPS."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20276
+#: doc/guix.texi:22497
 #, no-wrap
 msgid "@code{upstream-blocks} (default: @code{'()})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20280
+#: doc/guix.texi:22501
 msgid "A list of @dfn{upstream blocks} to create in the generated configuration file, the elements should be of type @code{<nginx-upstream-configuration>}."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20287
+#: doc/guix.texi:22508
 msgid "Configuring upstreams through the @code{upstream-blocks} can be useful when combined with @code{locations} in the @code{<nginx-server-configuration>} records.  The following example creates a server configuration with one location configuration, that will proxy requests to a upstream configuration, which will handle requests with two servers."
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:20306
+#: doc/guix.texi:22527
 #, no-wrap
 msgid ""
 "(service\n"
@@ -37149,66 +41341,109 @@ msgid ""
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20314
+#: doc/guix.texi:22535
 msgid "If a configuration @var{file} is provided, this will be used, rather than generating a configuration file from the provided @code{log-directory}, @code{run-directory}, @code{server-blocks} and @code{upstream-blocks}.  For proper operation, these arguments should match what is in @var{file} to ensure that the directories are created when the service is activated."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20318
+#: doc/guix.texi:22539
 msgid "This can be useful if you have an existing configuration file, or it's not possible to do what is required through the other parts of the nginx-configuration record."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20319
+#: doc/guix.texi:22540
 #, no-wrap
 msgid "@code{server-names-hash-bucket-size} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20322
+#: doc/guix.texi:22543
 msgid "Bucket size for the server names hash tables, defaults to @code{#f} to use the size of the processors cache line."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20323
+#: doc/guix.texi:22544
 #, no-wrap
 msgid "@code{server-names-hash-bucket-max-size} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20325
+#: doc/guix.texi:22546
 msgid "Maximum bucket size for the server names hash tables."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20329
+#: doc/guix.texi:22550
 msgid "List of nginx dynamic modules to load.  This should be a list of file names of loadable modules, as in this example:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:20335
+#: doc/guix.texi:22558
 #, no-wrap
 msgid ""
 "(modules\n"
 " (list\n"
 "  (file-append nginx-accept-language-module \"\\\n"
-"/etc/nginx/modules/ngx_http_accept_language_module.so\")))\n"
+"/etc/nginx/modules/ngx_http_accept_language_module.so\")\n"
+"  (file-append nginx-lua-module \"\\\n"
+"/etc/nginx/modules/ngx_http_lua_module.so\")))\n"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20337
+#: doc/guix.texi:22560
+#, fuzzy, no-wrap
+#| msgid "@code{native-search-paths} (default: @code{'()})"
+msgid "@code{lua-package-path} (default: @code{'()})"
+msgstr "@code{native-search-paths} (default: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:22563
+msgid "List of nginx lua packages to load.  This should be a list of package names of loadable lua modules, as in this example:"
+msgstr ""
+
+#. type: lisp
+#: doc/guix.texi:22570
+#, no-wrap
+msgid ""
+"(lua-package-path (list lua-resty-core\n"
+"                        lua-resty-lrucache\n"
+"                        lua-resty-signal\n"
+"                        lua-tablepool\n"
+"                        lua-resty-shell))\n"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:22572
+#, fuzzy, no-wrap
+#| msgid "@code{native-search-paths} (default: @code{'()})"
+msgid "@code{lua-package-cpath} (default: @code{'()})"
+msgstr "@code{native-search-paths} (default: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:22575
+msgid "List of nginx lua C packages to load.  This should be a list of package names of loadable lua C modules, as in this example:"
+msgstr ""
+
+#. type: lisp
+#: doc/guix.texi:22578
+#, no-wrap
+msgid "(lua-package-cpath (list lua-resty-signal))\n"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:22580
 #, fuzzy, no-wrap
 #| msgid "@code{features} (default: @code{'()})"
 msgid "@code{global-directives} (default: @code{'((events . ()))})"
 msgstr "@code{features} (default: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:20340
+#: doc/guix.texi:22583
 msgid "Association list of global directives for the top level of the nginx configuration.  Values may themselves be association lists."
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:20346
+#: doc/guix.texi:22589
 #, no-wrap
 msgid ""
 "(global-directives\n"
@@ -37218,312 +41453,312 @@ msgid ""
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20351
+#: doc/guix.texi:22594
 msgid "Extra content for the @code{http} block.  Should be string or a string valued G-expression."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:20355
+#: doc/guix.texi:22598
 #, no-wrap
 msgid "{Data Type} nginx-server-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:20358
+#: doc/guix.texi:22601
 msgid "Data type representing the configuration of an nginx server block.  This type has the following parameters:"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20360
+#: doc/guix.texi:22603
 #, no-wrap
 msgid "@code{listen} (default: @code{'(\"80\" \"443 ssl\")})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20365
+#: doc/guix.texi:22608
 msgid "Each @code{listen} directive sets the address and port for IP, or the path for a UNIX-domain socket on which the server will accept requests.  Both address and port, or only address or only port can be specified.  An address may also be a hostname, for example:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:20368
+#: doc/guix.texi:22611
 #, no-wrap
 msgid "'(\"127.0.0.1:8000\" \"127.0.0.1\" \"8000\" \"*:8000\" \"localhost:8000\")\n"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20370
+#: doc/guix.texi:22613
 #, no-wrap
 msgid "@code{server-name} (default: @code{(list 'default)})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20373
+#: doc/guix.texi:22616
 msgid "A list of server names this server represents. @code{'default} represents the default server for connections matching no other server."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20374
+#: doc/guix.texi:22617
 #, no-wrap
 msgid "@code{root} (default: @code{\"/srv/http\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20376
+#: doc/guix.texi:22619
 msgid "Root of the website nginx will serve."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20377
+#: doc/guix.texi:22620
 #, no-wrap
 msgid "@code{locations} (default: @code{'()})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20381
+#: doc/guix.texi:22624
 msgid "A list of @dfn{nginx-location-configuration} or @dfn{nginx-named-location-configuration} records to use within this server block."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20382
+#: doc/guix.texi:22625
 #, no-wrap
 msgid "@code{index} (default: @code{(list \"index.html\")})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20385
+#: doc/guix.texi:22628
 msgid "Index files to look for when clients ask for a directory.  If it cannot be found, Nginx will send the list of files in the directory."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20386
+#: doc/guix.texi:22629
 #, no-wrap
 msgid "@code{try-files} (default: @code{'()})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20389
+#: doc/guix.texi:22632
 msgid "A list of files whose existence is checked in the specified order.  @code{nginx} will use the first file it finds to process the request."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20390
+#: doc/guix.texi:22633
 #, no-wrap
 msgid "@code{ssl-certificate} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20393
+#: doc/guix.texi:22636
 msgid "Where to find the certificate for secure connections.  Set it to @code{#f} if you don't have a certificate or you don't want to use HTTPS."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20394
+#: doc/guix.texi:22637
 #, no-wrap
 msgid "@code{ssl-certificate-key} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20397
+#: doc/guix.texi:22640
 msgid "Where to find the private key for secure connections.  Set it to @code{#f} if you don't have a key or you don't want to use HTTPS."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20398
+#: doc/guix.texi:22641
 #, no-wrap
 msgid "@code{server-tokens?} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20400
+#: doc/guix.texi:22643
 msgid "Whether the server should add its configuration to response."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20401
+#: doc/guix.texi:22644
 #, no-wrap
 msgid "@code{raw-content} (default: @code{'()})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20403
+#: doc/guix.texi:22646
 msgid "A list of raw lines added to the server block."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:20407
+#: doc/guix.texi:22650
 #, no-wrap
 msgid "{Data Type} nginx-upstream-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:20410
+#: doc/guix.texi:22653
 msgid "Data type representing the configuration of an nginx @code{upstream} block.  This type has the following parameters:"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20414
+#: doc/guix.texi:22657
 msgid "Name for this group of servers."
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:20415
+#: doc/guix.texi:22658
 #, no-wrap
 msgid "servers"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20422
+#: doc/guix.texi:22665
 msgid "Specify the addresses of the servers in the group.  The address can be specified as a IP address (e.g.@: @samp{127.0.0.1}), domain name (e.g.@: @samp{backend1.example.com}) or a path to a UNIX socket using the prefix @samp{unix:}.  For addresses using an IP address or domain name, the default port is 80, and a different port can be specified explicitly."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:20426
+#: doc/guix.texi:22669
 #, no-wrap
 msgid "{Data Type} nginx-location-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:20429
+#: doc/guix.texi:22672
 msgid "Data type representing the configuration of an nginx @code{location} block.  This type has the following parameters:"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20433
+#: doc/guix.texi:22676
 msgid "URI which this location block matches."
 msgstr ""
 
 #. type: anchor{#1}
-#: doc/guix.texi:20435
+#: doc/guix.texi:22678
 msgid "nginx-location-configuration body"
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:20435 doc/guix.texi:20456
+#: doc/guix.texi:22678 doc/guix.texi:22699
 #, no-wrap
 msgid "body"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20442
+#: doc/guix.texi:22685
 msgid "Body of the location block, specified as a list of strings. This can contain many configuration directives.  For example, to pass requests to a upstream server group defined using an @code{nginx-upstream-configuration} block, the following directive would be specified in the body @samp{(list \"proxy_pass http://upstream-name;\")}."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:20446
+#: doc/guix.texi:22689
 #, no-wrap
 msgid "{Data Type} nginx-named-location-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:20451
+#: doc/guix.texi:22694
 msgid "Data type representing the configuration of an nginx named location block.  Named location blocks are used for request redirection, and not used for regular request processing.  This type has the following parameters:"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20455
+#: doc/guix.texi:22698
 msgid "Name to identify this location block."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20461
+#: doc/guix.texi:22704
 msgid "@xref{nginx-location-configuration body}, as the body for named location blocks can be used in a similar way to the @code{nginx-location-configuration body}.  One restriction is that the body of a named location block cannot contain location blocks."
 msgstr ""
 
 #. type: subsubheading
-#: doc/guix.texi:20465
+#: doc/guix.texi:22708
 #, no-wrap
 msgid "Varnish Cache"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:20466
+#: doc/guix.texi:22709
 #, no-wrap
 msgid "Varnish"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:20471
+#: doc/guix.texi:22714
 msgid "Varnish is a fast cache server that sits in between web applications and end users.  It proxies requests from clients and caches the accessed URLs such that multiple requests for the same resource only creates one request to the back-end."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:20472
+#: doc/guix.texi:22715
 #, no-wrap
 msgid "{Scheme Variable} varnish-service-type"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:20474
+#: doc/guix.texi:22717
 msgid "Service type for the Varnish daemon."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:20476
+#: doc/guix.texi:22719
 #, no-wrap
 msgid "{Data Type} varnish-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:20479
+#: doc/guix.texi:22722
 msgid "Data type representing the @code{varnish} service configuration.  This type has the following parameters:"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20481
+#: doc/guix.texi:22724
 #, no-wrap
 msgid "@code{package} (default: @code{varnish})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20483
+#: doc/guix.texi:22726
 msgid "The Varnish package to use."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20484
+#: doc/guix.texi:22727
 #, no-wrap
 msgid "@code{name} (default: @code{\"default\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20489
+#: doc/guix.texi:22732
 msgid "A name for this Varnish instance.  Varnish will create a directory in @file{/var/varnish/} with this name and keep temporary files there.  If the name starts with a forward slash, it is interpreted as an absolute directory name."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20492
+#: doc/guix.texi:22735
 msgid "Pass the @code{-n} argument to other Varnish programs to connect to the named instance, e.g.@: @command{varnishncsa -n default}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20493
+#: doc/guix.texi:22736
 #, no-wrap
 msgid "@code{backend} (default: @code{\"localhost:8080\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20495
+#: doc/guix.texi:22738
 msgid "The backend to use.  This option has no effect if @code{vcl} is set."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20496
+#: doc/guix.texi:22739
 #, no-wrap
 msgid "@code{vcl} (default: #f)"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20501
+#: doc/guix.texi:22744
 msgid "The @dfn{VCL} (Varnish Configuration Language) program to run.  If this is @code{#f}, Varnish will proxy @code{backend} using the default configuration.  Otherwise this must be a file-like object with valid VCL syntax."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20505
+#: doc/guix.texi:22748
 msgid "For example, to mirror @url{https://www.gnu.org,www.gnu.org} with VCL you can do something along these lines:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:20511
+#: doc/guix.texi:22754
 #, no-wrap
 msgid ""
 "(define %gnu-mirror\n"
@@ -37534,7 +41769,7 @@ msgid ""
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:20519
+#: doc/guix.texi:22762
 #, no-wrap
 msgid ""
 "(operating-system\n"
@@ -37547,84 +41782,84 @@ msgid ""
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20523
+#: doc/guix.texi:22766
 msgid "The configuration of an already running Varnish instance can be inspected and changed using the @command{varnishadm} program."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20527
+#: doc/guix.texi:22770
 msgid "Consult the @url{https://varnish-cache.org/docs/,Varnish User Guide} and @url{https://book.varnish-software.com/4.0/,Varnish Book} for comprehensive documentation on Varnish and its configuration language."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20528
+#: doc/guix.texi:22771
 #, no-wrap
 msgid "@code{listen} (default: @code{'(\"localhost:80\")})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20530
+#: doc/guix.texi:22773
 msgid "List of addresses Varnish will listen on."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20531
+#: doc/guix.texi:22774
 #, no-wrap
 msgid "@code{storage} (default: @code{'(\"malloc,128m\")})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20533
+#: doc/guix.texi:22776
 msgid "List of storage backends that will be available in VCL."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20534
+#: doc/guix.texi:22777
 #, no-wrap
 msgid "@code{parameters} (default: @code{'()})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20536
+#: doc/guix.texi:22779
 msgid "List of run-time parameters in the form @code{'((\"parameter\" . \"value\"))}."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20539
+#: doc/guix.texi:22782
 msgid "Additional arguments to pass to the @command{varnishd} process."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:20543 doc/guix.texi:20544
+#: doc/guix.texi:22786 doc/guix.texi:22787
 #, no-wrap
 msgid "Patchwork"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:20547
+#: doc/guix.texi:22790
 msgid "Patchwork is a patch tracking system.  It can collect patches sent to a mailing list, and display them in a web interface."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:20548
+#: doc/guix.texi:22791
 #, no-wrap
 msgid "{Scheme Variable} patchwork-service-type"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:20550
+#: doc/guix.texi:22793
 #, fuzzy
 #| msgid "Share your work."
 msgid "Service type for Patchwork."
 msgstr "Поделитесь своей работой."
 
 #. type: Plain text
-#: doc/guix.texi:20554
+#: doc/guix.texi:22797
 msgid "The following example is an example of a minimal service for Patchwork, for the @code{patchwork.example.com} domain."
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:20574
+#: doc/guix.texi:22817
 #, no-wrap
 msgid ""
 "(service patchwork-service-type\n"
@@ -37649,923 +41884,969 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:20580
+#: doc/guix.texi:22823
 msgid "There are three records for configuring the Patchwork service.  The @code{<patchwork-configuration>} relates to the configuration for Patchwork within the HTTPD service."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:20584
+#: doc/guix.texi:22827
 msgid "The @code{settings-module} field within the @code{<patchwork-configuration>} record can be populated with the @code{<patchwork-settings-module>} record, which describes a settings module that is generated within the Guix store."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:20588
+#: doc/guix.texi:22831
 msgid "For the @code{database-configuration} field within the @code{<patchwork-settings-module>}, the @code{<patchwork-database-configuration>} must be used."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:20589
+#: doc/guix.texi:22832
 #, no-wrap
 msgid "{Data Type} patchwork-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:20592
+#: doc/guix.texi:22835
 msgid "Data type representing the Patchwork service configuration.  This type has the following parameters:"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20594
+#: doc/guix.texi:22837
 #, fuzzy, no-wrap
 #| msgid "@code{port} (default: @code{22})"
 msgid "@code{patchwork} (default: @code{patchwork})"
 msgstr "@code{port} (default: @code{22})"
 
 #. type: table
-#: doc/guix.texi:20596
+#: doc/guix.texi:22839
 #, fuzzy
 #| msgid "The package data type."
 msgid "The Patchwork package to use."
 msgstr "Тип данных пакет"
 
 #. type: code{#1}
-#: doc/guix.texi:20597
+#: doc/guix.texi:22840
 #, no-wrap
 msgid "domain"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20600
+#: doc/guix.texi:22843
 msgid "The domain to use for Patchwork, this is used in the HTTPD service virtual host."
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:20601
+#: doc/guix.texi:22844
 #, no-wrap
 msgid "settings-module"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20607
+#: doc/guix.texi:22850
 msgid "The settings module to use for Patchwork. As a Django application, Patchwork is configured with a Python module containing the settings. This can either be an instance of the @code{<patchwork-settings-module>} record, any other record that represents the settings in the store, or a directory outside of the store."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20608
+#: doc/guix.texi:22851
 #, fuzzy, no-wrap
 #| msgid "@code{port} (default: @code{22})"
 msgid "@code{static-path}  (default: @code{\"/static/\"})"
 msgstr "@code{port} (default: @code{22})"
 
 #. type: table
-#: doc/guix.texi:20610
+#: doc/guix.texi:22853
 msgid "The path under which the HTTPD service should serve the static files."
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:20611
+#: doc/guix.texi:22854
 #, no-wrap
 msgid "getmail-retriever-config"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20615
+#: doc/guix.texi:22858
 msgid "The getmail-retriever-configuration record value to use with Patchwork. Getmail will be configured with this value, the messages will be delivered to Patchwork."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:20619
+#: doc/guix.texi:22862
 #, no-wrap
 msgid "{Data Type} patchwork-settings-module"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:20624
+#: doc/guix.texi:22867
 msgid "Data type representing a settings module for Patchwork.  Some of these settings relate directly to Patchwork, but others relate to Django, the web framework used by Patchwork, or the Django Rest Framework library.  This type has the following parameters:"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20626
+#: doc/guix.texi:22869
 #, no-wrap
 msgid "@code{database-configuration} (default: @code{(patchwork-database-configuration)})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20629
+#: doc/guix.texi:22872
 msgid "The database connection settings used for Patchwork.  See the @code{<patchwork-database-configuration>} record type for more information."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20630
+#: doc/guix.texi:22873
 #, fuzzy, no-wrap
 #| msgid "@code{daemon-socket} (default: @code{\"/var/guix/daemon-socket/socket\"})"
 msgid "@code{secret-key-file} (default: @code{\"/etc/patchwork/django-secret-key\"})"
 msgstr "@code{daemon-socket} (default: @code{\"/var/guix/daemon-socket/socket\"})"
 
 #. type: table
-#: doc/guix.texi:20633
+#: doc/guix.texi:22876
 msgid "Patchwork, as a Django web application uses a secret key for cryptographically signing values.  This file should contain a unique unpredictable value."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20636
+#: doc/guix.texi:22879
 msgid "If this file does not exist, it will be created and populated with a random value by the patchwork-setup shepherd service."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20638
+#: doc/guix.texi:22881
 msgid "This setting relates to Django."
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:20639
+#: doc/guix.texi:22882
 #, no-wrap
 msgid "allowed-hosts"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20642
+#: doc/guix.texi:22885
 msgid "A list of valid hosts for this Patchwork service. This should at least include the domain specified in the @code{<patchwork-configuration>} record."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20644 doc/guix.texi:20658 doc/guix.texi:20664
-#: doc/guix.texi:20670
+#: doc/guix.texi:22887 doc/guix.texi:22901 doc/guix.texi:22907
+#: doc/guix.texi:22913
 msgid "This is a Django setting."
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:20645
+#: doc/guix.texi:22888
 #, no-wrap
 msgid "default-from-email"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20647
+#: doc/guix.texi:22890
 msgid "The email address from which Patchwork should send email by default."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20649 doc/guix.texi:20675 doc/guix.texi:20680
-#: doc/guix.texi:20685
+#: doc/guix.texi:22892 doc/guix.texi:22918 doc/guix.texi:22923
+#: doc/guix.texi:22928
 msgid "This is a Patchwork setting."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20650
+#: doc/guix.texi:22893
 #, fuzzy, no-wrap
 #| msgid "@code{features} (default: @code{'()})"
 msgid "@code{static-url} (default: @code{#f})"
 msgstr "@code{features} (default: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:20653
+#: doc/guix.texi:22896
 msgid "The URL to use when serving static assets. It can be part of a URL, or a full URL, but must end in a @code{/}."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20656
+#: doc/guix.texi:22899
 msgid "If the default value is used, the @code{static-path} value from the @code{<patchwork-configuration>} record will be used."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20659
+#: doc/guix.texi:22902
 #, fuzzy, no-wrap
 #| msgid "@code{features} (default: @code{'()})"
 msgid "@code{admins} (default: @code{'()})"
 msgstr "@code{features} (default: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:20662
+#: doc/guix.texi:22905
 msgid "Email addresses to send the details of errors that occur.  Each value should be a list containing two elements, the name and then the email address."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20668
+#: doc/guix.texi:22911
 msgid "Whether to run Patchwork in debug mode.  If set to @code{#t}, detailed error messages will be shown."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20671
+#: doc/guix.texi:22914
 #, fuzzy, no-wrap
 #| msgid "@code{features} (default: @code{'()})"
 msgid "@code{enable-rest-api?} (default: @code{#t})"
 msgstr "@code{features} (default: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:20673
+#: doc/guix.texi:22916
 msgid "Whether to enable the Patchwork REST API."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20676
+#: doc/guix.texi:22919
 #, fuzzy, no-wrap
 #| msgid "@code{port} (default: @code{22})"
 msgid "@code{enable-xmlrpc?} (default: @code{#t})"
 msgstr "@code{port} (default: @code{22})"
 
 #. type: table
-#: doc/guix.texi:20678
+#: doc/guix.texi:22921
 msgid "Whether to enable the XML RPC API."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20681
+#: doc/guix.texi:22924
 #, fuzzy, no-wrap
 #| msgid "@code{port} (default: @code{22})"
 msgid "@code{force-https-links?} (default: @code{#t})"
 msgstr "@code{port} (default: @code{22})"
 
 #. type: table
-#: doc/guix.texi:20683
+#: doc/guix.texi:22926
 msgid "Whether to use HTTPS links on Patchwork pages."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20688
+#: doc/guix.texi:22931
 msgid "Extra code to place at the end of the Patchwork settings module."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:20692
+#: doc/guix.texi:22935
 #, no-wrap
 msgid "{Data Type} patchwork-database-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:20694
+#: doc/guix.texi:22937
 msgid "Data type representing the database configuration for Patchwork."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20696
+#: doc/guix.texi:22939
 #, fuzzy, no-wrap
 #| msgid "@code{port} (default: @code{22})"
 msgid "@code{engine} (default: @code{\"django.db.backends.postgresql_psycopg2\"})"
 msgstr "@code{port} (default: @code{22})"
 
 #. type: table
-#: doc/guix.texi:20698
+#: doc/guix.texi:22941
 msgid "The database engine to use."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20699
+#: doc/guix.texi:22942
 #, fuzzy, no-wrap
 #| msgid "@code{port} (default: @code{22})"
 msgid "@code{name} (default: @code{\"patchwork\"})"
 msgstr "@code{port} (default: @code{22})"
 
 #. type: table
-#: doc/guix.texi:20701
+#: doc/guix.texi:22944
 #, fuzzy
 #| msgid "The host name of the remote machine."
 msgid "The name of the database to use."
 msgstr "Имя хоста удалённой машины"
 
 #. type: table
-#: doc/guix.texi:20704
+#: doc/guix.texi:22947
 msgid "The user to connect to the database as."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20705
+#: doc/guix.texi:22948
 #, fuzzy, no-wrap
 #| msgid "@code{port} (default: @code{22})"
 msgid "@code{password} (default: @code{\"\"})"
 msgstr "@code{port} (default: @code{22})"
 
 #. type: table
-#: doc/guix.texi:20707
+#: doc/guix.texi:22950
 msgid "The password to use when connecting to the database."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20708
+#: doc/guix.texi:22951
 #, fuzzy, no-wrap
 #| msgid "@code{port} (default: @code{22})"
 msgid "@code{host} (default: @code{\"\"})"
 msgstr "@code{port} (default: @code{22})"
 
 #. type: table
-#: doc/guix.texi:20710
+#: doc/guix.texi:22953
 msgid "The host to make the database connection to."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20711
+#: doc/guix.texi:22954
 #, fuzzy, no-wrap
 #| msgid "@code{port} (default: @code{22})"
 msgid "@code{port} (default: @code{\"\"})"
 msgstr "@code{port} (default: @code{22})"
 
 #. type: table
-#: doc/guix.texi:20713
+#: doc/guix.texi:22956
 msgid "The port on which to connect to the database."
 msgstr ""
 
 #. type: subsubheading
-#: doc/guix.texi:20717
+#: doc/guix.texi:22960
 #, no-wrap
 msgid "Mumi"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:20719
+#: doc/guix.texi:22962
 #, fuzzy, no-wrap
 #| msgid "user interfaces"
 msgid "Mumi, Debbugs Web interface"
 msgstr "пользовательские интерфейсы"
 
 #. type: cindex
-#: doc/guix.texi:20720
+#: doc/guix.texi:22963
 #, fuzzy, no-wrap
 #| msgid "user interfaces"
 msgid "Debbugs, Mumi Web interface"
 msgstr "пользовательские интерфейсы"
 
 #. type: Plain text
-#: doc/guix.texi:20725
+#: doc/guix.texi:22968
 msgid "@uref{https://git.elephly.net/gitweb.cgi?p=software/mumi.git, Mumi} is a Web interface to the Debbugs bug tracker, by default for @uref{https://bugs.gnu.org, the GNU instance}.  Mumi is a Web server, but it also fetches and indexes mail retrieved from Debbugs."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:20726
+#: doc/guix.texi:22969
 #, no-wrap
 msgid "{Scheme Variable} mumi-service-type"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:20728
+#: doc/guix.texi:22971
 msgid "This is the service type for Mumi."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:20730
+#: doc/guix.texi:22973
 #, fuzzy, no-wrap
 #| msgid "{Data Type} build-machine"
 msgid "{Data Type} mumi-configuration"
 msgstr "{Тип данных} build-machine"
 
 #. type: deftp
-#: doc/guix.texi:20733
+#: doc/guix.texi:22976
 #, fuzzy
 #| msgid "Manage the operating system configuration."
 msgid "Data type representing the Mumi service configuration.  This type has the following fields:"
 msgstr "Управление конфигурацией операционной системы."
 
 #. type: item
-#: doc/guix.texi:20735
+#: doc/guix.texi:22978
 #, fuzzy, no-wrap
 #| msgid "@code{port} (default: @code{22})"
 msgid "@code{mumi} (default: @code{mumi})"
 msgstr "@code{port} (default: @code{22})"
 
 #. type: table
-#: doc/guix.texi:20737
+#: doc/guix.texi:22980
 #, fuzzy
 #| msgid "The package data type."
 msgid "The Mumi package to use."
 msgstr "Тип данных пакет"
 
 #. type: item
-#: doc/guix.texi:20738
+#: doc/guix.texi:22981
 #, fuzzy, no-wrap
 #| msgid "@code{speed} (default: @code{1.0})"
 msgid "@code{mailer?} (default: @code{#true})"
 msgstr "@code{speed} (default: @code{1.0})"
 
 #. type: table
-#: doc/guix.texi:20740
+#: doc/guix.texi:22983
 msgid "Whether to enable or disable the mailer component."
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:20741
+#: doc/guix.texi:22984
 #, fuzzy, no-wrap
 #| msgid "System Configuration"
 msgid "mumi-configuration-sender"
 msgstr "Конфигурирование системы"
 
 #. type: table
-#: doc/guix.texi:20743
+#: doc/guix.texi:22986
 msgid "The email address used as the sender for comments."
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:20744
+#: doc/guix.texi:22987
 #, fuzzy, no-wrap
 #| msgid "System Configuration"
 msgid "mumi-configuration-smtp"
 msgstr "Конфигурирование системы"
 
 #. type: table
-#: doc/guix.texi:20749
+#: doc/guix.texi:22992
 msgid "A URI to configure the SMTP settings for Mailutils.  This could be something like @code{sendmail:///path/to/bin/msmtp} or any other URI supported by Mailutils.  @xref{SMTP Mailboxes, SMTP Mailboxes,, mailutils, GNU@tie{}Mailutils}."
 msgstr ""
 
 #. type: subsubheading
-#: doc/guix.texi:20754
+#: doc/guix.texi:22997
 #, no-wrap
 msgid "FastCGI"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:20755
+#: doc/guix.texi:22998
 #, no-wrap
 msgid "fastcgi"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:20756
+#: doc/guix.texi:22999
 #, no-wrap
 msgid "fcgiwrap"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:20763
+#: doc/guix.texi:23006
 msgid "FastCGI is an interface between the front-end and the back-end of a web service.  It is a somewhat legacy facility; new web services should generally just talk HTTP between the front-end and the back-end.  However there are a number of back-end services such as PHP or the optimized HTTP Git repository access that use FastCGI, so we have support for it in Guix."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:20770
+#: doc/guix.texi:23013
 msgid "To use FastCGI, you configure the front-end web server (e.g., nginx) to dispatch some subset of its requests to the fastcgi backend, which listens on a local TCP or UNIX socket.  There is an intermediary @code{fcgiwrap} program that sits between the actual backend process and the web server.  The front-end indicates which backend program to run, passing that information to the @code{fcgiwrap} process."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:20771
+#: doc/guix.texi:23014
 #, no-wrap
 msgid "{Scheme Variable} fcgiwrap-service-type"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:20773
+#: doc/guix.texi:23016
 msgid "A service type for the @code{fcgiwrap} FastCGI proxy."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:20775
+#: doc/guix.texi:23018
 #, no-wrap
 msgid "{Data Type} fcgiwrap-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:20778
+#: doc/guix.texi:23021
 msgid "Data type representing the configuration of the @code{fcgiwrap} service.  This type has the following parameters:"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20779
+#: doc/guix.texi:23022
 #, no-wrap
 msgid "@code{package} (default: @code{fcgiwrap})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20781
+#: doc/guix.texi:23024
 msgid "The fcgiwrap package to use."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20782
+#: doc/guix.texi:23025
 #, no-wrap
 msgid "@code{socket} (default: @code{tcp:127.0.0.1:9000})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20788
+#: doc/guix.texi:23031
 msgid "The socket on which the @code{fcgiwrap} process should listen, as a string.  Valid @var{socket} values include @code{unix:@var{/path/to/unix/socket}}, @code{tcp:@var{dot.ted.qu.ad}:@var{port}} and @code{tcp6:[@var{ipv6_addr}]:port}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20789
+#: doc/guix.texi:23032
 #, no-wrap
 msgid "@code{user} (default: @code{fcgiwrap})"
 msgstr ""
 
 #. type: itemx
-#: doc/guix.texi:20790
+#: doc/guix.texi:23033
 #, no-wrap
 msgid "@code{group} (default: @code{fcgiwrap})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20795
+#: doc/guix.texi:23038
 msgid "The user and group names, as strings, under which to run the @code{fcgiwrap} process.  The @code{fastcgi} service will ensure that if the user asks for the specific user or group names @code{fcgiwrap} that the corresponding user and/or group is present on the system."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20802
+#: doc/guix.texi:23045
 msgid "It is possible to configure a FastCGI-backed web service to pass HTTP authentication information from the front-end to the back-end, and to allow @code{fcgiwrap} to run the back-end process as a corresponding local user.  To enable this capability on the back-end, run @code{fcgiwrap} as the @code{root} user and group.  Note that this capability also has to be configured on the front-end as well."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:20805
+#: doc/guix.texi:23048
 #, no-wrap
 msgid "php-fpm"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:20808
+#: doc/guix.texi:23051
 msgid "PHP-FPM (FastCGI Process Manager) is an alternative PHP FastCGI implementation with some additional features useful for sites of any size."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:20810
+#: doc/guix.texi:23053
 msgid "These features include:"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20811
+#: doc/guix.texi:23054
 #, no-wrap
 msgid "Adaptive process spawning"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20812
+#: doc/guix.texi:23055
 #, no-wrap
 msgid "Basic statistics (similar to Apache's mod_status)"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20813
+#: doc/guix.texi:23056
 #, no-wrap
 msgid "Advanced process management with graceful stop/start"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20814
+#: doc/guix.texi:23057
 #, no-wrap
 msgid "Ability to start workers with different uid/gid/chroot/environment"
 msgstr ""
 
 #. type: itemize
-#: doc/guix.texi:20816
+#: doc/guix.texi:23059
 msgid "and different php.ini (replaces safe_mode)"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20816
+#: doc/guix.texi:23059
 #, no-wrap
 msgid "Stdout & stderr logging"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20817
+#: doc/guix.texi:23060
 #, no-wrap
 msgid "Emergency restart in case of accidental opcode cache destruction"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20818
+#: doc/guix.texi:23061
 #, no-wrap
 msgid "Accelerated upload support"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20819
+#: doc/guix.texi:23062
 #, no-wrap
 msgid "Support for a \"slowlog\""
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20820
+#: doc/guix.texi:23063
 #, no-wrap
 msgid "Enhancements to FastCGI, such as fastcgi_finish_request() -"
 msgstr ""
 
 #. type: itemize
-#: doc/guix.texi:20823
+#: doc/guix.texi:23066
 msgid "a special function to finish request & flush all data while continuing to do something time-consuming (video converting, stats processing, etc.)"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:20825
+#: doc/guix.texi:23068
 msgid "...@: and much more."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:20826
+#: doc/guix.texi:23069
 #, no-wrap
 msgid "{Scheme Variable} php-fpm-service-type"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:20828
+#: doc/guix.texi:23071
 msgid "A Service type for @code{php-fpm}."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:20830
+#: doc/guix.texi:23073
 #, no-wrap
 msgid "{Data Type} php-fpm-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:20832
+#: doc/guix.texi:23075
 msgid "Data Type for php-fpm service configuration."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20833
+#: doc/guix.texi:23076
 #, no-wrap
 msgid "@code{php} (default: @code{php})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20835
+#: doc/guix.texi:23078
 msgid "The php package to use."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20835
+#: doc/guix.texi:23078
 #, no-wrap
 msgid "@code{socket} (default: @code{(string-append \"/var/run/php\" (version-major (package-version php)) \"-fpm.sock\")})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20837
+#: doc/guix.texi:23080
 msgid "The address on which to accept FastCGI requests.  Valid syntaxes are:"
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:20838
+#: doc/guix.texi:23081
 #, no-wrap
 msgid "\"ip.add.re.ss:port\""
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20840
+#: doc/guix.texi:23083
 msgid "Listen on a TCP socket to a specific address on a specific port."
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:20840
+#: doc/guix.texi:23083
 #, no-wrap
 msgid "\"port\""
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20842
+#: doc/guix.texi:23085
 msgid "Listen on a TCP socket to all addresses on a specific port."
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:20842
+#: doc/guix.texi:23085
 #, no-wrap
 msgid "\"/path/to/unix/socket\""
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20844
+#: doc/guix.texi:23087
 msgid "Listen on a unix socket."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20846
+#: doc/guix.texi:23089
 #, no-wrap
 msgid "@code{user} (default: @code{php-fpm})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20848
+#: doc/guix.texi:23091
 msgid "User who will own the php worker processes."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20848
+#: doc/guix.texi:23091
 #, no-wrap
 msgid "@code{group} (default: @code{php-fpm})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20850
+#: doc/guix.texi:23093
 msgid "Group of the worker processes."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20850
+#: doc/guix.texi:23093
 #, no-wrap
 msgid "@code{socket-user} (default: @code{php-fpm})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20852
+#: doc/guix.texi:23095
 msgid "User who can speak to the php-fpm socket."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20852
+#: doc/guix.texi:23095
 #, fuzzy, no-wrap
 #| msgid "@code{port} (default: @code{22})"
 msgid "@code{socket-group} (default: @code{nginx})"
 msgstr "@code{port} (default: @code{22})"
 
 #. type: table
-#: doc/guix.texi:20854
+#: doc/guix.texi:23097
 msgid "Group that can speak to the php-fpm socket."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20854
+#: doc/guix.texi:23097
 #, no-wrap
 msgid "@code{pid-file} (default: @code{(string-append \"/var/run/php\" (version-major (package-version php)) \"-fpm.pid\")})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20857
+#: doc/guix.texi:23100
 msgid "The process id of the php-fpm process is written to this file once the service has started."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20857
+#: doc/guix.texi:23100
 #, no-wrap
 msgid "@code{log-file} (default: @code{(string-append \"/var/log/php\" (version-major (package-version php)) \"-fpm.log\")})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20859
+#: doc/guix.texi:23102
 msgid "Log for the php-fpm master process."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20859
+#: doc/guix.texi:23102
 #, no-wrap
 msgid "@code{process-manager} (default: @code{(php-fpm-dynamic-process-manager-configuration)})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20862
+#: doc/guix.texi:23105
 msgid "Detailed settings for the php-fpm process manager.  Must be one of:"
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:20863
+#: doc/guix.texi:23106
 #, no-wrap
 msgid "<php-fpm-dynamic-process-manager-configuration>"
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:20864
+#: doc/guix.texi:23107
 #, no-wrap
 msgid "<php-fpm-static-process-manager-configuration>"
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:20865
+#: doc/guix.texi:23108
 #, no-wrap
 msgid "<php-fpm-on-demand-process-manager-configuration>"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20867
+#: doc/guix.texi:23110
 #, no-wrap
 msgid "@code{display-errors} (default @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20872
+#: doc/guix.texi:23115
 msgid "Determines whether php errors and warning should be sent to clients and displayed in their browsers.  This is useful for local php development, but a security risk for public sites, as error messages can reveal passwords and personal data."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20872
+#: doc/guix.texi:23115
 #, no-wrap
 msgid "@code{timezone} (default @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20874
+#: doc/guix.texi:23117
 msgid "Specifies @code{php_admin_value[date.timezone]} parameter."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20874
+#: doc/guix.texi:23117
 #, no-wrap
 msgid "@code{workers-logfile} (default @code{(string-append \"/var/log/php\" (version-major (package-version php)) \"-fpm.www.log\")})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20877
+#: doc/guix.texi:23120
 msgid "This file will log the @code{stderr} outputs of php worker processes.  Can be set to @code{#f} to disable logging."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20877
+#: doc/guix.texi:23120
 #, no-wrap
 msgid "@code{file} (default @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20880
+#: doc/guix.texi:23123
 msgid "An optional override of the whole configuration.  You can use the @code{mixed-text-file} function or an absolute filepath for it."
 msgstr ""
 
+#. type: item
+#: doc/guix.texi:23123
+#, fuzzy, no-wrap
+#| msgid "@code{speed} (default: @code{1.0})"
+msgid "@code{php-ini-file} (default @code{#f})"
+msgstr "@code{speed} (default: @code{1.0})"
+
+#. type: table
+#: doc/guix.texi:23127
+msgid "An optional override of the default php settings.  It may be any ``file-like'' object (@pxref{G-Expressions, file-like objects}).  You can use the @code{mixed-text-file} function or an absolute filepath for it."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:23131
+msgid "For local development it is useful to set a higher timeout and memory limit for spawned php processes.  This be accomplished with the following operating system configuration snippet:"
+msgstr ""
+
+#. type: lisp
+#: doc/guix.texi:23136
+#, no-wrap
+msgid ""
+"(define %local-php-ini\n"
+"  (plain-file \"php.ini\"\n"
+"              \"memory_limit = 2G\n"
+"max_execution_time = 1800\"))\n"
+"\n"
+msgstr ""
+
+#. type: lisp
+#: doc/guix.texi:23143
+#, no-wrap
+msgid ""
+"(operating-system\n"
+"  ;; @dots{}\n"
+"  (services (cons (service php-fpm-service-type\n"
+"                           (php-fpm-configuration\n"
+"                            (php-ini-file %local-php-ini)))\n"
+"                  %base-services)))\n"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:23148
+msgid "Consult the @url{https://www.php.net/manual/en/ini.core.php,core php.ini directives} for comprehensive documentation on the acceptable @file{php.ini} directives."
+msgstr ""
+
 #. type: deftp
-#: doc/guix.texi:20883
+#: doc/guix.texi:23151
 #, no-wrap
 msgid "{Data type} php-fpm-dynamic-process-manager-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:20887
+#: doc/guix.texi:23155
 msgid "Data Type for the @code{dynamic} php-fpm process manager.  With the @code{dynamic} process manager, spare worker processes are kept around based on it's configured limits."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20888 doc/guix.texi:20904 doc/guix.texi:20914
+#: doc/guix.texi:23156 doc/guix.texi:23172 doc/guix.texi:23182
 #, no-wrap
 msgid "@code{max-children} (default: @code{5})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20890 doc/guix.texi:20906 doc/guix.texi:20916
+#: doc/guix.texi:23158 doc/guix.texi:23174 doc/guix.texi:23184
 msgid "Maximum of worker processes."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20890
+#: doc/guix.texi:23158
 #, no-wrap
 msgid "@code{start-servers} (default: @code{2})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20892
+#: doc/guix.texi:23160
 msgid "How many worker processes should be started on start-up."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20892
+#: doc/guix.texi:23160
 #, no-wrap
 msgid "@code{min-spare-servers} (default: @code{1})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20894
+#: doc/guix.texi:23162
 msgid "How many spare worker processes should be kept around at minimum."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20894
+#: doc/guix.texi:23162
 #, no-wrap
 msgid "@code{max-spare-servers} (default: @code{3})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20896
+#: doc/guix.texi:23164
 msgid "How many spare worker processes should be kept around at maximum."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:20899
+#: doc/guix.texi:23167
 #, no-wrap
 msgid "{Data type} php-fpm-static-process-manager-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:20903
+#: doc/guix.texi:23171
 msgid "Data Type for the @code{static} php-fpm process manager.  With the @code{static} process manager, an unchanging number of worker processes are created."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:20909
+#: doc/guix.texi:23177
 #, no-wrap
 msgid "{Data type} php-fpm-on-demand-process-manager-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:20913
+#: doc/guix.texi:23181
 msgid "Data Type for the @code{on-demand} php-fpm process manager.  With the @code{on-demand} process manager, worker processes are only created as requests arrive."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20916
+#: doc/guix.texi:23184
 #, no-wrap
 msgid "@code{process-idle-timeout} (default: @code{10})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20918
+#: doc/guix.texi:23186
 msgid "The time in seconds after which a process with no requests is killed."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:20922
-#, no-wrap
-msgid "{Scheme Procedure} nginx-php-fpm-location @"
-msgstr ""
+#: doc/guix.texi:23190
+#, fuzzy, no-wrap
+#| msgid "{Scheme Procedure} inferior-package-location @var{package}"
+msgid "{Scheme Procedure} nginx-php-location @"
+msgstr "{Процедура Scheme} inferior-package-location @var{package}"
 
 #. type: deffn
-#: doc/guix.texi:20928
+#: doc/guix.texi:23196
 msgid "[#:nginx-package nginx] @ [socket (string-append \"/var/run/php\" @ (version-major (package-version php)) @ \"-fpm.sock\")] A helper function to quickly add php to an @code{nginx-server-configuration}."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:20931
+#: doc/guix.texi:23199
 msgid "A simple services setup for nginx with php can look like this:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:20944
+#: doc/guix.texi:23212
 #, no-wrap
 msgid ""
 "(services (cons* (service dhcp-client-service-type)\n"
@@ -38583,34 +42864,34 @@ msgid ""
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:20946
+#: doc/guix.texi:23214
 #, no-wrap
 msgid "cat-avatar-generator"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:20950
+#: doc/guix.texi:23218
 msgid "The cat avatar generator is a simple service to demonstrate the use of php-fpm in @code{Nginx}.  It is used to generate cat avatar from a seed, for instance the hash of a user's email address."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:20951
+#: doc/guix.texi:23219
 #, no-wrap
 msgid "{Scheme Procedure} cat-avatar-generator-service @"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:20959
+#: doc/guix.texi:23227
 msgid "[#:cache-dir \"/var/cache/cat-avatar-generator\"] @ [#:package cat-avatar-generator] @ [#:configuration (nginx-server-configuration)] Returns an nginx-server-configuration that inherits @code{configuration}.  It extends the nginx configuration to add a server block that serves @code{package}, a version of cat-avatar-generator.  During execution, cat-avatar-generator will be able to use @code{cache-dir} as its cache directory."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:20962
+#: doc/guix.texi:23230
 msgid "A simple setup for cat-avatar-generator can look like this:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:20969
+#: doc/guix.texi:23237
 #, no-wrap
 msgid ""
 "(services (cons* (cat-avatar-generator-service\n"
@@ -38622,155 +42903,155 @@ msgid ""
 msgstr ""
 
 #. type: subsubheading
-#: doc/guix.texi:20971
+#: doc/guix.texi:23239
 #, no-wrap
 msgid "Hpcguix-web"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:20973
+#: doc/guix.texi:23241
 #, no-wrap
 msgid "hpcguix-web"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:20978
+#: doc/guix.texi:23246
 msgid "The @uref{https://github.com/UMCUGenetics/hpcguix-web/, hpcguix-web} program is a customizable web interface to browse Guix packages, initially designed for users of high-performance computing (HPC)  clusters."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:20979
+#: doc/guix.texi:23247
 #, no-wrap
 msgid "{Scheme Variable} hpcguix-web-service-type"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:20981
+#: doc/guix.texi:23249
 msgid "The service type for @code{hpcguix-web}."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:20983
+#: doc/guix.texi:23251
 #, no-wrap
 msgid "{Data Type} hpcguix-web-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:20985
+#: doc/guix.texi:23253
 msgid "Data type for the hpcguix-web service configuration."
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:20987
+#: doc/guix.texi:23255
 #, no-wrap
 msgid "specs"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20990
+#: doc/guix.texi:23258
 msgid "A gexp (@pxref{G-Expressions}) specifying the hpcguix-web service configuration.  The main items available in this spec are:"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20992
+#: doc/guix.texi:23260
 #, no-wrap
 msgid "@code{title-prefix} (default: @code{\"hpcguix | \"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20994
+#: doc/guix.texi:23262
 msgid "The page title prefix."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20995
+#: doc/guix.texi:23263
 #, no-wrap
 msgid "@code{guix-command} (default: @code{\"guix\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20997
+#: doc/guix.texi:23265
 msgid "The @command{guix} command."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20998
+#: doc/guix.texi:23266
 #, no-wrap
 msgid "@code{package-filter-proc} (default: @code{(const #t)})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21000
+#: doc/guix.texi:23268
 msgid "A procedure specifying how to filter packages that are displayed."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21001
+#: doc/guix.texi:23269
 #, no-wrap
 msgid "@code{package-page-extension-proc} (default: @code{(const '())})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21003
+#: doc/guix.texi:23271
 msgid "Extension package for @code{hpcguix-web}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21004
+#: doc/guix.texi:23272
 #, no-wrap
 msgid "@code{menu} (default: @code{'()})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21006
+#: doc/guix.texi:23274
 msgid "Additional entry in page @code{menu}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21007
+#: doc/guix.texi:23275
 #, no-wrap
 msgid "@code{channels} (default: @code{%default-channels})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21009
+#: doc/guix.texi:23277
 msgid "List of channels from which the package list is built (@pxref{Channels})."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21010
+#: doc/guix.texi:23278
 #, no-wrap
 msgid "@code{package-list-expiration} (default: @code{(* 12 3600)})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21013
+#: doc/guix.texi:23281
 msgid "The expiration time, in seconds, after which the package list is rebuilt from the latest instances of the given channels."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21018
+#: doc/guix.texi:23286
 msgid "See the hpcguix-web repository for a @uref{https://github.com/UMCUGenetics/hpcguix-web/blob/master/hpcweb-configuration.scm, complete example}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21019
+#: doc/guix.texi:23287
 #, no-wrap
 msgid "@code{package} (default: @code{hpcguix-web})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21021
+#: doc/guix.texi:23289
 msgid "The hpcguix-web package to use."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:21025
+#: doc/guix.texi:23293
 msgid "A typical hpcguix-web service declaration looks like this:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:21034
+#: doc/guix.texi:23302
 #, no-wrap
 msgid ""
 "(service hpcguix-web-service-type\n"
@@ -38783,77 +43064,77 @@ msgid ""
 msgstr ""
 
 #. type: quotation
-#: doc/guix.texi:21041
+#: doc/guix.texi:23309
 msgid "The hpcguix-web service periodically updates the package list it publishes by pulling channels from Git.  To that end, it needs to access X.509 certificates so that it can authenticate Git servers when communicating over HTTPS, and it assumes that @file{/etc/ssl/certs} contains those certificates."
 msgstr ""
 
 #. type: quotation
-#: doc/guix.texi:21045
+#: doc/guix.texi:23313
 msgid "Thus, make sure to add @code{nss-certs} or another certificate package to the @code{packages} field of your configuration.  @ref{X.509 Certificates}, for more information on X.509 certificates."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:21050
+#: doc/guix.texi:23318
 #, no-wrap
 msgid "Web"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:21051
+#: doc/guix.texi:23319
 #, no-wrap
 msgid "HTTP, HTTPS"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:21052
+#: doc/guix.texi:23320
 #, no-wrap
 msgid "Let's Encrypt"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:21053
+#: doc/guix.texi:23321
 #, no-wrap
 msgid "TLS certificates"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:21060
+#: doc/guix.texi:23328
 msgid "The @code{(gnu services certbot)} module provides a service to automatically obtain a valid TLS certificate from the Let's Encrypt certificate authority.  These certificates can then be used to serve content securely over HTTPS or other TLS-based protocols, with the knowledge that the client will be able to verify the server's authenticity."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:21072
+#: doc/guix.texi:23340
 msgid "@url{https://letsencrypt.org/, Let's Encrypt} provides the @code{certbot} tool to automate the certification process.  This tool first securely generates a key on the server.  It then makes a request to the Let's Encrypt certificate authority (CA) to sign the key.  The CA checks that the request originates from the host in question by using a challenge-response protocol, requiring the server to provide its response over HTTP.  If that protocol completes successfully, the CA signs the key, resulting in a certificate.  That certificate is valid for a limited period of time, and therefore to continue to provide TLS services, the server needs to periodically ask the CA to renew its signature."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:21079
+#: doc/guix.texi:23347
 msgid "The certbot service automates this process: the initial key generation, the initial certification request to the Let's Encrypt service, the web server challenge/response integration, writing the certificate to disk, the automated periodic renewals, and the deployment tasks associated with the renewal (e.g.@: reloading services, copying keys with different permissions)."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:21085
+#: doc/guix.texi:23353
 msgid "Certbot is run twice a day, at a random minute within the hour.  It won't do anything until your certificates are due for renewal or revoked, but running it regularly would give your service a chance of staying online in case a Let's Encrypt-initiated revocation happened for some reason."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:21089
+#: doc/guix.texi:23357
 msgid "By using this service, you agree to the ACME Subscriber Agreement, which can be found there: @url{https://acme-v01.api.letsencrypt.org/directory}."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:21090
+#: doc/guix.texi:23358
 #, no-wrap
 msgid "{Scheme Variable} certbot-service-type"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:21093
+#: doc/guix.texi:23361
 msgid "A service type for the @code{certbot} Let's Encrypt client.  Its value must be a @code{certbot-configuration} record as in this example:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:21100
+#: doc/guix.texi:23368
 #, no-wrap
 msgid ""
 "(define %nginx-deploy-hook\n"
@@ -38865,7 +43146,7 @@ msgid ""
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:21111
+#: doc/guix.texi:23379
 #, no-wrap
 msgid ""
 "(service certbot-service-type\n"
@@ -38881,225 +43162,232 @@ msgid ""
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:21114
+#: doc/guix.texi:23382
 msgid "See below for details about @code{certbot-configuration}."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:21116
+#: doc/guix.texi:23384
 #, no-wrap
 msgid "{Data Type} certbot-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:21119
+#: doc/guix.texi:23387
 msgid "Data type representing the configuration of the @code{certbot} service.  This type has the following parameters:"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21121
+#: doc/guix.texi:23389
 #, no-wrap
 msgid "@code{package} (default: @code{certbot})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21123
+#: doc/guix.texi:23391
 msgid "The certbot package to use."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21124
+#: doc/guix.texi:23392
 #, no-wrap
 msgid "@code{webroot} (default: @code{/var/www})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21127
+#: doc/guix.texi:23395
 msgid "The directory from which to serve the Let's Encrypt challenge/response files."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21128
+#: doc/guix.texi:23396
 #, no-wrap
 msgid "@code{certificates} (default: @code{()})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21132
+#: doc/guix.texi:23400
 msgid "A list of @code{certificates-configuration}s for which to generate certificates and request signatures.  Each certificate has a @code{name} and several @code{domains}."
 msgstr ""
 
+#. type: item
+#: doc/guix.texi:23401
+#, fuzzy, no-wrap
+#| msgid "@code{speed} (default: @code{1.0})"
+msgid "@code{email} (default: @code{#f})"
+msgstr "@code{speed} (default: @code{1.0})"
+
 #. type: table
-#: doc/guix.texi:21136
-msgid "Mandatory email used for registration, recovery contact, and important account notifications."
+#: doc/guix.texi:23405
+msgid "Optional email address used for registration and recovery contact.  Setting this is encouraged as it allows you to receive important notifications about the account and issued certificates."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21137
+#: doc/guix.texi:23406
 #, fuzzy, no-wrap
 #| msgid "@code{features} (default: @code{'()})"
 msgid "@code{server} (default: @code{#f})"
 msgstr "@code{features} (default: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:21140
+#: doc/guix.texi:23409
 msgid "Optional URL of ACME server.  Setting this overrides certbot's default, which is the Let's Encrypt server."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21141
+#: doc/guix.texi:23410
 #, no-wrap
 msgid "@code{rsa-key-size} (default: @code{2048})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21143
+#: doc/guix.texi:23412
 msgid "Size of the RSA key."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21144
+#: doc/guix.texi:23413
 #, no-wrap
 msgid "@code{default-location} (default: @i{see below})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21153
+#: doc/guix.texi:23422
 msgid "The default @code{nginx-location-configuration}.  Because @code{certbot} needs to be able to serve challenges and responses, it needs to be able to run a web server.  It does so by extending the @code{nginx} web service with an @code{nginx-server-configuration} listening on the @var{domains} on port 80, and which has a @code{nginx-location-configuration} for the @code{/.well-known/} URI path subspace used by Let's Encrypt.  @xref{Web Services}, for more on these nginx configuration data types."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21157
+#: doc/guix.texi:23426
 msgid "Requests to other URL paths will be matched by the @code{default-location}, which if present is added to all @code{nginx-server-configuration}s."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21161
+#: doc/guix.texi:23430
 msgid "By default, the @code{default-location} will issue a redirect from @code{http://@var{domain}/...} to @code{https://@var{domain}/...}, leaving you to define what to serve on your site via @code{https}."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21163
+#: doc/guix.texi:23432
 msgid "Pass @code{#f} to not issue a default location."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:21166
+#: doc/guix.texi:23435
 #, no-wrap
 msgid "{Data Type} certificate-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:21169
+#: doc/guix.texi:23438
 msgid "Data type representing the configuration of a certificate.  This type has the following parameters:"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21171
+#: doc/guix.texi:23440
 #, no-wrap
 msgid "@code{name} (default: @i{see below})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21175
+#: doc/guix.texi:23444
 msgid "This name is used by Certbot for housekeeping and in file paths; it doesn't affect the content of the certificate itself.  To see certificate names, run @code{certbot certificates}."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21177
+#: doc/guix.texi:23446
 msgid "Its default is the first provided domain."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21178
+#: doc/guix.texi:23447
 #, no-wrap
 msgid "@code{domains} (default: @code{()})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21181
+#: doc/guix.texi:23450
 msgid "The first domain provided will be the subject CN of the certificate, and all domains will be Subject Alternative Names on the certificate."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21182
+#: doc/guix.texi:23451
 #, no-wrap
 msgid "@code{challenge} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21189
+#: doc/guix.texi:23458
 msgid "The challenge type that has to be run by certbot.  If @code{#f} is specified, default to the HTTP challenge.  If a value is specified, defaults to the manual plugin (see @code{authentication-hook}, @code{cleanup-hook} and the documentation at @url{https://certbot.eff.org/docs/using.html#hooks}), and gives Let's Encrypt permission to log the public IP address of the requesting machine."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21190
+#: doc/guix.texi:23459
 #, no-wrap
 msgid "@code{authentication-hook} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21196
+#: doc/guix.texi:23465
 msgid "Command to be run in a shell once for each certificate challenge to be answered.  For this command, the shell variable @code{$CERTBOT_DOMAIN} will contain the domain being authenticated, @code{$CERTBOT_VALIDATION} contains the validation string and @code{$CERTBOT_TOKEN} contains the file name of the resource requested when performing an HTTP-01 challenge."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21197
+#: doc/guix.texi:23466
 #, no-wrap
 msgid "@code{cleanup-hook} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21203
+#: doc/guix.texi:23472
 msgid "Command to be run in a shell once for each certificate challenge that have been answered by the @code{auth-hook}.  For this command, the shell variables available in the @code{auth-hook} script are still available, and additionally @code{$CERTBOT_AUTH_OUTPUT} will contain the standard output of the @code{auth-hook} script."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21204
+#: doc/guix.texi:23473
 #, no-wrap
 msgid "@code{deploy-hook} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21212
+#: doc/guix.texi:23481
 msgid "Command to be run in a shell once for each successfully issued certificate.  For this command, the shell variable @code{$RENEWED_LINEAGE} will point to the config live subdirectory (for example, @samp{\"/etc/letsencrypt/live/example.com\"}) containing the new certificates and keys; the shell variable @code{$RENEWED_DOMAINS} will contain a space-delimited list of renewed certificate domains (for example, @samp{\"example.com www.example.com\"}."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:21219
+#: doc/guix.texi:23488
 msgid "For each @code{certificate-configuration}, the certificate is saved to @code{/etc/letsencrypt/live/@var{name}/fullchain.pem} and the key is saved to @code{/etc/letsencrypt/live/@var{name}/privkey.pem}."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:21221
+#: doc/guix.texi:23490
 #, no-wrap
 msgid "DNS (domain name system)"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:21222
+#: doc/guix.texi:23491
 #, no-wrap
 msgid "domain name system (DNS)"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:21230
+#: doc/guix.texi:23499
 msgid "The @code{(gnu services dns)} module provides services related to the @dfn{domain name system} (DNS).  It provides a server service for hosting an @emph{authoritative} DNS server for multiple zones, slave or master.  This service uses @uref{https://www.knot-dns.cz/, Knot DNS}.  And also a caching and forwarding DNS server for the LAN, which uses @uref{http://www.thekelleys.org.uk/dnsmasq/doc.html, dnsmasq}."
 msgstr ""
 
 #. type: subsubheading
-#: doc/guix.texi:21231
+#: doc/guix.texi:23500
 #, no-wrap
 msgid "Knot Service"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:21235
+#: doc/guix.texi:23504
 msgid "An example configuration of an authoritative server for two zones, one master and one slave, is:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:21242
+#: doc/guix.texi:23511
 #, no-wrap
 msgid ""
 "(define-zone-entries example.org.zone\n"
@@ -39111,7 +43399,7 @@ msgid ""
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:21249
+#: doc/guix.texi:23518
 #, no-wrap
 msgid ""
 "(define master-zone\n"
@@ -39124,7 +43412,7 @@ msgid ""
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:21255
+#: doc/guix.texi:23524
 #, no-wrap
 msgid ""
 "(define slave-zone\n"
@@ -39136,7 +43424,7 @@ msgid ""
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:21260
+#: doc/guix.texi:23529
 #, no-wrap
 msgid ""
 "(define plop-master\n"
@@ -39147,7 +43435,7 @@ msgid ""
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:21269
+#: doc/guix.texi:23538
 #, no-wrap
 msgid ""
 "(operating-system\n"
@@ -39161,878 +43449,873 @@ msgid ""
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:21271
+#: doc/guix.texi:23540
 #, no-wrap
 msgid "{Scheme Variable} knot-service-type"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:21273
+#: doc/guix.texi:23542
 msgid "This is the type for the Knot DNS server."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:21281
+#: doc/guix.texi:23550
 msgid "Knot DNS is an authoritative DNS server, meaning that it can serve multiple zones, that is to say domain names you would buy from a registrar.  This server is not a resolver, meaning that it can only resolve names for which it is authoritative.  This server can be configured to serve zones as a master server or a slave server as a per-zone basis.  Slave zones will get their data from masters, and will serve it as an authoritative server.  From the point of view of a resolver, there is no difference between master and slave."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:21283
+#: doc/guix.texi:23552
 msgid "The following data types are used to configure the Knot DNS server:"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:21285
+#: doc/guix.texi:23554
 #, no-wrap
 msgid "{Data Type} knot-key-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:21288
+#: doc/guix.texi:23557
 msgid "Data type representing a key.  This type has the following parameters:"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21290 doc/guix.texi:21310 doc/guix.texi:21425
-#: doc/guix.texi:21451 doc/guix.texi:21486
+#: doc/guix.texi:23559 doc/guix.texi:23579 doc/guix.texi:23694
+#: doc/guix.texi:23720 doc/guix.texi:23755
 #, no-wrap
 msgid "@code{id} (default: @code{\"\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21293
+#: doc/guix.texi:23562 doc/guix.texi:23582
 msgid "An identifier for other configuration fields to refer to this key. IDs must be unique and must not be empty."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21294
+#: doc/guix.texi:23563
 #, no-wrap
 msgid "@code{algorithm} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21298
+#: doc/guix.texi:23567
 msgid "The algorithm to use.  Choose between @code{#f}, @code{'hmac-md5}, @code{'hmac-sha1}, @code{'hmac-sha224}, @code{'hmac-sha256}, @code{'hmac-sha384} and @code{'hmac-sha512}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21299
+#: doc/guix.texi:23568
 #, no-wrap
 msgid "@code{secret} (default: @code{\"\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21301
+#: doc/guix.texi:23570
 msgid "The secret key itself."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:21305
+#: doc/guix.texi:23574
 #, no-wrap
 msgid "{Data Type} knot-acl-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:21308
+#: doc/guix.texi:23577
 msgid "Data type representing an Access Control List (ACL) configuration.  This type has the following parameters:"
 msgstr ""
 
-#. type: table
-#: doc/guix.texi:21313
-msgid "An identifier for ether configuration fields to refer to this key. IDs must be unique and must not be empty."
-msgstr ""
-
 #. type: item
-#: doc/guix.texi:21314 doc/guix.texi:21429
+#: doc/guix.texi:23583 doc/guix.texi:23698
 #, no-wrap
 msgid "@code{address} (default: @code{'()})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21318
+#: doc/guix.texi:23587
 msgid "An ordered list of IP addresses, network subnets, or network ranges represented with strings.  The query must match one of them.  Empty value means that address match is not required."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21319
+#: doc/guix.texi:23588
 #, no-wrap
 msgid "@code{key} (default: @code{'()})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21323
+#: doc/guix.texi:23592
 msgid "An ordered list of references to keys represented with strings.  The string must match a key ID defined in a @code{knot-key-configuration}.  No key means that a key is not require to match that ACL."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21324
+#: doc/guix.texi:23593
 #, no-wrap
 msgid "@code{action} (default: @code{'()})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21328
+#: doc/guix.texi:23597
 msgid "An ordered list of actions that are permitted or forbidden by this ACL.  Possible values are lists of zero or more elements from @code{'transfer}, @code{'notify} and @code{'update}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21329
+#: doc/guix.texi:23598
 #, no-wrap
 msgid "@code{deny?} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21332
+#: doc/guix.texi:23601
 msgid "When true, the ACL defines restrictions.  Listed actions are forbidden.  When false, listed actions are allowed."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:21336
+#: doc/guix.texi:23605
 #, no-wrap
 msgid "{Data Type} zone-entry"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:21339
+#: doc/guix.texi:23608
 msgid "Data type representing a record entry in a zone file.  This type has the following parameters:"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21341
+#: doc/guix.texi:23610
 #, no-wrap
 msgid "@code{name} (default: @code{\"@@\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21347
+#: doc/guix.texi:23616
 msgid "The name of the record.  @code{\"@@\"} refers to the origin of the zone.  Names are relative to the origin of the zone.  For example, in the @code{example.org} zone, @code{\"ns.example.org\"} actually refers to @code{ns.example.org.example.org}.  Names ending with a dot are absolute, which means that @code{\"ns.example.org.\"} refers to @code{ns.example.org}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21348
+#: doc/guix.texi:23617
 #, no-wrap
 msgid "@code{ttl} (default: @code{\"\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21350
+#: doc/guix.texi:23619
 msgid "The Time-To-Live (TTL) of this record.  If not set, the default TTL is used."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21351
+#: doc/guix.texi:23620
 #, no-wrap
 msgid "@code{class} (default: @code{\"IN\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21354
+#: doc/guix.texi:23623
 msgid "The class of the record.  Knot currently supports only @code{\"IN\"} and partially @code{\"CH\"}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21355
+#: doc/guix.texi:23624
 #, no-wrap
 msgid "@code{type} (default: @code{\"A\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21359
+#: doc/guix.texi:23628
 msgid "The type of the record.  Common types include A (IPv4 address), AAAA (IPv6 address), NS (Name Server) and MX (Mail eXchange).  Many other types are defined."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21360
+#: doc/guix.texi:23629
 #, no-wrap
 msgid "@code{data} (default: @code{\"\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21364
+#: doc/guix.texi:23633
 msgid "The data contained in the record.  For instance an IP address associated with an A record, or a domain name associated with an NS record.  Remember that domain names are relative to the origin unless they end with a dot."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:21368
+#: doc/guix.texi:23637
 #, no-wrap
 msgid "{Data Type} zone-file"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:21371
+#: doc/guix.texi:23640
 msgid "Data type representing the content of a zone file.  This type has the following parameters:"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21380
+#: doc/guix.texi:23649
 msgid "The list of entries.  The SOA record is taken care of, so you don't need to put it in the list of entries.  This list should probably contain an entry for your primary authoritative DNS server.  Other than using a list of entries directly, you can use @code{define-zone-entries} to define a object containing the list of entries more easily, that you can later pass to the @code{entries} field of the @code{zone-file}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21381
+#: doc/guix.texi:23650
 #, no-wrap
 msgid "@code{origin} (default: @code{\"\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21383
+#: doc/guix.texi:23652
 msgid "The name of your zone.  This parameter cannot be empty."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21384
+#: doc/guix.texi:23653
 #, no-wrap
 msgid "@code{ns} (default: @code{\"ns\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21389
+#: doc/guix.texi:23658
 msgid "The domain of your primary authoritative DNS server.  The name is relative to the origin, unless it ends with a dot.  It is mandatory that this primary DNS server corresponds to an NS record in the zone and that it is associated to an IP address in the list of entries."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21390
+#: doc/guix.texi:23659
 #, no-wrap
 msgid "@code{mail} (default: @code{\"hostmaster\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21393
+#: doc/guix.texi:23662
 msgid "An email address people can contact you at, as the owner of the zone.  This is translated as @code{<mail>@@<origin>}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21394
+#: doc/guix.texi:23663
 #, no-wrap
 msgid "@code{serial} (default: @code{1})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21398
+#: doc/guix.texi:23667
 msgid "The serial number of the zone.  As this is used to keep track of changes by both slaves and resolvers, it is mandatory that it @emph{never} decreases.  Always increment it when you make a change in your zone."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21399
+#: doc/guix.texi:23668
 #, no-wrap
 msgid "@code{refresh} (default: @code{(* 2 24 3600)})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21403
+#: doc/guix.texi:23672
 msgid "The frequency at which slaves will do a zone transfer.  This value is a number of seconds.  It can be computed by multiplications or with @code{(string->duration)}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21404
+#: doc/guix.texi:23673
 #, no-wrap
 msgid "@code{retry} (default: @code{(* 15 60)})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21407
+#: doc/guix.texi:23676
 msgid "The period after which a slave will retry to contact its master when it fails to do so a first time."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21408
+#: doc/guix.texi:23677
 #, no-wrap
 msgid "@code{expiry} (default: @code{(* 14 24 3600)})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21412
+#: doc/guix.texi:23681
 msgid "Default TTL of records.  Existing records are considered correct for at most this amount of time.  After this period, resolvers will invalidate their cache and check again that it still exists."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21413
+#: doc/guix.texi:23682
 #, no-wrap
 msgid "@code{nx} (default: @code{3600})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21416
+#: doc/guix.texi:23685
 msgid "Default TTL of inexistant records.  This delay is usually short because you want your new domains to reach everyone quickly."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:21420
+#: doc/guix.texi:23689
 #, no-wrap
 msgid "{Data Type} knot-remote-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:21423
+#: doc/guix.texi:23692
 msgid "Data type representing a remote configuration.  This type has the following parameters:"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21428
+#: doc/guix.texi:23697
 msgid "An identifier for other configuration fields to refer to this remote. IDs must be unique and must not be empty."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21433
+#: doc/guix.texi:23702
 msgid "An ordered list of destination IP addresses.  Addresses are tried in sequence.  An optional port can be given with the @@ separator.  For instance: @code{(list \"1.2.3.4\" \"2.3.4.5@@53\")}.  Default port is 53."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21434
+#: doc/guix.texi:23703
 #, no-wrap
 msgid "@code{via} (default: @code{'()})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21438
+#: doc/guix.texi:23707
 msgid "An ordered list of source IP addresses.  An empty list will have Knot choose an appropriate source IP.  An optional port can be given with the @@ separator.  The default is to choose at random."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21439
+#: doc/guix.texi:23708
 #, no-wrap
 msgid "@code{key} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21442
+#: doc/guix.texi:23711
 msgid "A reference to a key, that is a string containing the identifier of a key defined in a @code{knot-key-configuration} field."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:21446
+#: doc/guix.texi:23715
 #, no-wrap
 msgid "{Data Type} knot-keystore-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:21449
+#: doc/guix.texi:23718
 msgid "Data type representing a keystore to hold dnssec keys.  This type has the following parameters:"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21453
+#: doc/guix.texi:23722
 msgid "The id of the keystore.  It must not be empty."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21454
+#: doc/guix.texi:23723
 #, no-wrap
 msgid "@code{backend} (default: @code{'pem})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21456
+#: doc/guix.texi:23725
 msgid "The backend to store the keys in.  Can be @code{'pem} or @code{'pkcs11}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21457
+#: doc/guix.texi:23726
 #, no-wrap
 msgid "@code{config} (default: @code{\"/var/lib/knot/keys/keys\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21461
+#: doc/guix.texi:23730
 msgid "The configuration string of the backend.  An example for the PKCS#11 is: @code{\"pkcs11:token=knot;pin-value=1234 /gnu/store/.../lib/pkcs11/libsofthsm2.so\"}.  For the pem backend, the string represents a path in the file system."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:21465
+#: doc/guix.texi:23734
 #, no-wrap
 msgid "{Data Type} knot-policy-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:21469
+#: doc/guix.texi:23738
 msgid "Data type representing a dnssec policy.  Knot DNS is able to automatically sign your zones.  It can either generate and manage your keys automatically or use keys that you generate."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:21476
+#: doc/guix.texi:23745
 msgid "Dnssec is usually implemented using two keys: a Key Signing Key (KSK) that is used to sign the second, and a Zone Signing Key (ZSK) that is used to sign the zone.  In order to be trusted, the KSK needs to be present in the parent zone (usually a top-level domain).  If your registrar supports dnssec, you will have to send them your KSK's hash so they can add a DS record in their zone.  This is not automated and need to be done each time you change your KSK."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:21482
+#: doc/guix.texi:23751
 msgid "The policy also defines the lifetime of keys.  Usually, ZSK can be changed easily and use weaker cryptographic functions (they use lower parameters) in order to sign records quickly, so they are changed often.  The KSK however requires manual interaction with the registrar, so they are changed less often and use stronger parameters because they sign only one record."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:21484
+#: doc/guix.texi:23753
 msgid "This type has the following parameters:"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21488
+#: doc/guix.texi:23757
 msgid "The id of the policy.  It must not be empty."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21489
+#: doc/guix.texi:23758
 #, no-wrap
 msgid "@code{keystore} (default: @code{\"default\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21494
+#: doc/guix.texi:23763
 msgid "A reference to a keystore, that is a string containing the identifier of a keystore defined in a @code{knot-keystore-configuration} field.  The @code{\"default\"} identifier means the default keystore (a kasp database that was setup by this service)."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21495
+#: doc/guix.texi:23764
 #, no-wrap
 msgid "@code{manual?} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21497
+#: doc/guix.texi:23766
 msgid "Whether the key management is manual or automatic."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21498
+#: doc/guix.texi:23767
 #, no-wrap
 msgid "@code{single-type-signing?} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21500
+#: doc/guix.texi:23769
 msgid "When @code{#t}, use the Single-Type Signing Scheme."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21501
+#: doc/guix.texi:23770
 #, no-wrap
 msgid "@code{algorithm} (default: @code{\"ecdsap256sha256\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21503
+#: doc/guix.texi:23772
 msgid "An algorithm of signing keys and issued signatures."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21504
+#: doc/guix.texi:23773
 #, no-wrap
 msgid "@code{ksk-size} (default: @code{256})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21507
+#: doc/guix.texi:23776
 msgid "The length of the KSK.  Note that this value is correct for the default algorithm, but would be unsecure for other algorithms."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21508
+#: doc/guix.texi:23777
 #, no-wrap
 msgid "@code{zsk-size} (default: @code{256})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21511
+#: doc/guix.texi:23780
 msgid "The length of the ZSK.  Note that this value is correct for the default algorithm, but would be unsecure for other algorithms."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21512
+#: doc/guix.texi:23781
 #, no-wrap
 msgid "@code{dnskey-ttl} (default: @code{'default})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21515
+#: doc/guix.texi:23784
 msgid "The TTL value for DNSKEY records added into zone apex.  The special @code{'default} value means same as the zone SOA TTL."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21516
+#: doc/guix.texi:23785
 #, no-wrap
 msgid "@code{zsk-lifetime} (default: @code{(* 30 24 3600)})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21518
+#: doc/guix.texi:23787
 msgid "The period between ZSK publication and the next rollover initiation."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21519
+#: doc/guix.texi:23788
 #, no-wrap
 msgid "@code{propagation-delay} (default: @code{(* 24 3600)})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21522
+#: doc/guix.texi:23791
 msgid "An extra delay added for each key rollover step.  This value should be high enough to cover propagation of data from the master server to all slaves."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21523
+#: doc/guix.texi:23792
 #, no-wrap
 msgid "@code{rrsig-lifetime} (default: @code{(* 14 24 3600)})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21525
+#: doc/guix.texi:23794
 msgid "A validity period of newly issued signatures."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21526
+#: doc/guix.texi:23795
 #, no-wrap
 msgid "@code{rrsig-refresh} (default: @code{(* 7 24 3600)})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21528
+#: doc/guix.texi:23797
 msgid "A period how long before a signature expiration the signature will be refreshed."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21529
+#: doc/guix.texi:23798
 #, no-wrap
 msgid "@code{nsec3?} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21531
+#: doc/guix.texi:23800
 msgid "When @code{#t}, NSEC3 will be used instead of NSEC."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21532
+#: doc/guix.texi:23801
 #, no-wrap
 msgid "@code{nsec3-iterations} (default: @code{5})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21534
+#: doc/guix.texi:23803
 msgid "The number of additional times the hashing is performed."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21535
+#: doc/guix.texi:23804
 #, no-wrap
 msgid "@code{nsec3-salt-length} (default: @code{8})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21538
+#: doc/guix.texi:23807
 msgid "The length of a salt field in octets, which is appended to the original owner name before hashing."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21539
+#: doc/guix.texi:23808
 #, no-wrap
 msgid "@code{nsec3-salt-lifetime} (default: @code{(* 30 24 3600)})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21541
+#: doc/guix.texi:23810
 msgid "The validity period of newly issued salt field."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:21545
+#: doc/guix.texi:23814
 #, no-wrap
 msgid "{Data Type} knot-zone-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:21548
+#: doc/guix.texi:23817
 msgid "Data type representing a zone served by Knot.  This type has the following parameters:"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21550
+#: doc/guix.texi:23819
 #, no-wrap
 msgid "@code{domain} (default: @code{\"\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21552
+#: doc/guix.texi:23821
 msgid "The domain served by this configuration.  It must not be empty."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21553
+#: doc/guix.texi:23822
 #, no-wrap
 msgid "@code{file} (default: @code{\"\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21556
+#: doc/guix.texi:23825
 msgid "The file where this zone is saved.  This parameter is ignored by master zones.  Empty means default location that depends on the domain name."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21557
+#: doc/guix.texi:23826
 #, no-wrap
 msgid "@code{zone} (default: @code{(zone-file)})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21560
+#: doc/guix.texi:23829
 msgid "The content of the zone file.  This parameter is ignored by slave zones.  It must contain a zone-file record."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21561
+#: doc/guix.texi:23830
 #, no-wrap
 msgid "@code{master} (default: @code{'()})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21564
+#: doc/guix.texi:23833
 msgid "A list of master remotes.  When empty, this zone is a master.  When set, this zone is a slave.  This is a list of remotes identifiers."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21565
+#: doc/guix.texi:23834
 #, no-wrap
 msgid "@code{ddns-master} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21568
+#: doc/guix.texi:23837
 msgid "The main master.  When empty, it defaults to the first master in the list of masters."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21569
+#: doc/guix.texi:23838
 #, no-wrap
 msgid "@code{notify} (default: @code{'()})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21571
+#: doc/guix.texi:23840
 msgid "A list of slave remote identifiers."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21572
+#: doc/guix.texi:23841
 #, no-wrap
 msgid "@code{acl} (default: @code{'()})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21574
+#: doc/guix.texi:23843
 msgid "A list of acl identifiers."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21575
+#: doc/guix.texi:23844
 #, no-wrap
 msgid "@code{semantic-checks?} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21577
+#: doc/guix.texi:23846
 msgid "When set, this adds more semantic checks to the zone."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21578
+#: doc/guix.texi:23847
 #, no-wrap
 msgid "@code{disable-any?} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21580
+#: doc/guix.texi:23849
 msgid "When set, this forbids queries of the ANY type."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21581
+#: doc/guix.texi:23850
 #, no-wrap
 msgid "@code{zonefile-sync} (default: @code{0})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21584
+#: doc/guix.texi:23853
 msgid "The delay between a modification in memory and on disk.  0 means immediate synchronization."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21585
+#: doc/guix.texi:23854
 #, no-wrap
 msgid "@code{zonefile-load} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21588
+#: doc/guix.texi:23857
 msgid "The way the zone file contents are applied during zone load.  Possible values are:"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21590
+#: doc/guix.texi:23859
 #, no-wrap
 msgid "@code{#f} for using the default value from Knot,"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21591
+#: doc/guix.texi:23860
 #, no-wrap
 msgid "@code{'none} for not using the zone file at all,"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21592
+#: doc/guix.texi:23861
 #, no-wrap
 msgid "@code{'difference} for computing the difference between already available"
 msgstr ""
 
 #. type: itemize
-#: doc/guix.texi:21594
+#: doc/guix.texi:23863
 msgid "contents and zone contents and applying it to the current zone contents,"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21594
+#: doc/guix.texi:23863
 #, no-wrap
 msgid "@code{'difference-no-serial} for the same as @code{'difference}, but"
 msgstr ""
 
 #. type: itemize
-#: doc/guix.texi:21597
+#: doc/guix.texi:23866
 msgid "ignoring the SOA serial in the zone file, while the server takes care of it automatically."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21597
+#: doc/guix.texi:23866
 #, no-wrap
 msgid "@code{'whole} for loading zone contents from the zone file."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21600
+#: doc/guix.texi:23869
 #, no-wrap
 msgid "@code{journal-content} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21605
+#: doc/guix.texi:23874
 msgid "The way the journal is used to store zone and its changes.  Possible values are @code{'none} to not use it at all, @code{'changes} to store changes and @code{'all} to store contents.  @code{#f} does not set this option, so the default value from Knot is used."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21606
+#: doc/guix.texi:23875
 #, no-wrap
 msgid "@code{max-journal-usage} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21609
+#: doc/guix.texi:23878
 msgid "The maximum size for the journal on disk.  @code{#f} does not set this option, so the default value from Knot is used."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21610
+#: doc/guix.texi:23879
 #, no-wrap
 msgid "@code{max-journal-depth} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21613
+#: doc/guix.texi:23882
 msgid "The maximum size of the history.  @code{#f} does not set this option, so the default value from Knot is used."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21614
+#: doc/guix.texi:23883
 #, no-wrap
 msgid "@code{max-zone-size} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21618
+#: doc/guix.texi:23887
 msgid "The maximum size of the zone file.  This limit is enforced for incoming transfer and updates.  @code{#f} does not set this option, so the default value from Knot is used."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21619
+#: doc/guix.texi:23888
 #, no-wrap
 msgid "@code{dnssec-policy} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21623
+#: doc/guix.texi:23892
 msgid "A reference to a @code{knot-policy-configuration} record, or the special name @code{\"default\"}.  If the value is @code{#f}, there is no dnssec signing on this zone."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21624
+#: doc/guix.texi:23893
 #, no-wrap
 msgid "@code{serial-policy} (default: @code{'increment})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21626
+#: doc/guix.texi:23895
 msgid "A policy between @code{'increment} and @code{'unixtime}."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:21630
+#: doc/guix.texi:23899
 #, no-wrap
 msgid "{Data Type} knot-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:21633
+#: doc/guix.texi:23902
 msgid "Data type representing the Knot configuration.  This type has the following parameters:"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21635
+#: doc/guix.texi:23904
 #, no-wrap
 msgid "@code{knot} (default: @code{knot})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21637
+#: doc/guix.texi:23906
 msgid "The Knot package."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21638
+#: doc/guix.texi:23907
 #, no-wrap
 msgid "@code{run-directory} (default: @code{\"/var/run/knot\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21640
+#: doc/guix.texi:23909
 msgid "The run directory.  This directory will be used for pid file and sockets."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21641
+#: doc/guix.texi:23910
 #, no-wrap
 msgid "@code{includes} (default: @code{'()})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21644
+#: doc/guix.texi:23913
 msgid "A list of strings or file-like objects denoting other files that must be included at the top of the configuration file."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:21645
+#: doc/guix.texi:23914
 #, no-wrap
 msgid "secrets, Knot service"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21651
+#: doc/guix.texi:23920
 msgid "This can be used to manage secrets out-of-band.  For example, secret keys may be stored in an out-of-band file not managed by Guix, and thus not visible in @file{/gnu/store}---e.g., you could store secret key configuration in @file{/etc/knot/secrets.conf} and add this file to the @code{includes} list."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21656
+#: doc/guix.texi:23925
 msgid "One can generate a secret tsig key (for nsupdate and zone transfers with the keymgr command from the knot package.  Note that the package is not automatically installed by the service.  The following example shows how to generate a new tsig key:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:21660
+#: doc/guix.texi:23929
 #, no-wrap
 msgid ""
 "keymgr -t mysecret > /etc/knot/secrets.conf\n"
@@ -40040,107 +44323,107 @@ msgid ""
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21666
+#: doc/guix.texi:23935
 msgid "Also note that the generated key will be named @var{mysecret}, so it is the name that needs to be used in the @var{key} field of the @code{knot-acl-configuration} record and in other places that need to refer to that key."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21668
+#: doc/guix.texi:23937
 msgid "It can also be used to add configuration not supported by this interface."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21669
+#: doc/guix.texi:23938
 #, no-wrap
 msgid "@code{listen-v4} (default: @code{\"0.0.0.0\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21671 doc/guix.texi:21674
+#: doc/guix.texi:23940 doc/guix.texi:23943
 msgid "An ip address on which to listen."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21672
+#: doc/guix.texi:23941
 #, no-wrap
 msgid "@code{listen-v6} (default: @code{\"::\"})"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21675
+#: doc/guix.texi:23944
 #, no-wrap
 msgid "@code{listen-port} (default: @code{53})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21677
+#: doc/guix.texi:23946
 msgid "A port on which to listen."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21678
+#: doc/guix.texi:23947
 #, no-wrap
 msgid "@code{keys} (default: @code{'()})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21680
+#: doc/guix.texi:23949
 msgid "The list of knot-key-configuration used by this configuration."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21681
+#: doc/guix.texi:23950
 #, no-wrap
 msgid "@code{acls} (default: @code{'()})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21683
+#: doc/guix.texi:23952
 msgid "The list of knot-acl-configuration used by this configuration."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21684
+#: doc/guix.texi:23953
 #, no-wrap
 msgid "@code{remotes} (default: @code{'()})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21686
+#: doc/guix.texi:23955
 msgid "The list of knot-remote-configuration used by this configuration."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21687
+#: doc/guix.texi:23956
 #, no-wrap
 msgid "@code{zones} (default: @code{'()})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21689
+#: doc/guix.texi:23958
 msgid "The list of knot-zone-configuration used by this configuration."
 msgstr ""
 
 #. type: subsubheading
-#: doc/guix.texi:21693
+#: doc/guix.texi:23962
 #, fuzzy, no-wrap
 #| msgid "Kerberos Services"
 msgid "Knot Resolver Service"
 msgstr "Сервисы Kerberos"
 
 #. type: deffn
-#: doc/guix.texi:21695
+#: doc/guix.texi:23964
 #, no-wrap
 msgid "{Scheme Variable} knot-resolver-service-type"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:21698
+#: doc/guix.texi:23967
 msgid "This this the type of the knot resolver service, whose value should be an @code{knot-resolver-configuration} object as in this example:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:21708
+#: doc/guix.texi:23977
 #, no-wrap
 msgid ""
 "(service knot-resolver-service-type\n"
@@ -40154,78 +44437,78 @@ msgid ""
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:21711
+#: doc/guix.texi:23980
 msgid "For more information, refer its @url{https://knot-resolver.readthedocs.org/en/stable/daemon.html#configuration, manual}."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:21713
+#: doc/guix.texi:23982
 #, no-wrap
 msgid "{Data Type} knot-resolver-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:21715
+#: doc/guix.texi:23984
 #, fuzzy
 #| msgid "Manage the operating system configuration."
 msgid "Data type representing the configuration of knot-resolver."
 msgstr "Управление конфигурацией операционной системы."
 
 #. type: item
-#: doc/guix.texi:21717
+#: doc/guix.texi:23986
 #, fuzzy, no-wrap
 #| msgid "@code{port} (default: @code{22})"
 msgid "@code{package} (default: @var{knot-resolver})"
 msgstr "@code{port} (default: @code{22})"
 
 #. type: table
-#: doc/guix.texi:21719
+#: doc/guix.texi:23988
 msgid "Package object of the knot DNS resolver."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21720
+#: doc/guix.texi:23989
 #, fuzzy, no-wrap
 #| msgid "@code{compression-level} (default: @code{3})"
 msgid "@code{kresd-config-file} (default: %kresd.conf)"
 msgstr "@code{compression-level} (default: @code{3})"
 
 #. type: table
-#: doc/guix.texi:21723
+#: doc/guix.texi:23992
 msgid "File-like object of the kresd configuration file to use, by default it will listen on @code{127.0.0.1} and @code{::1}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21724
+#: doc/guix.texi:23993
 #, fuzzy, no-wrap
 #| msgid "@code{parallel-builds} (default: @code{1})"
 msgid "@code{garbage-collection-interval} (default: 1000)"
 msgstr "@code{parallel-builds} (default: @code{1})"
 
 #. type: table
-#: doc/guix.texi:21726
+#: doc/guix.texi:23995
 msgid "Number of milliseconds for @code{kres-cache-gc} to periodically trim the cache."
 msgstr ""
 
 #. type: subsubheading
-#: doc/guix.texi:21731
+#: doc/guix.texi:24000
 #, no-wrap
 msgid "Dnsmasq Service"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:21733
+#: doc/guix.texi:24002
 #, no-wrap
 msgid "{Scheme Variable} dnsmasq-service-type"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:21736
+#: doc/guix.texi:24005
 msgid "This is the type of the dnsmasq service, whose value should be an @code{dnsmasq-configuration} object as in this example:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:21742
+#: doc/guix.texi:24011
 #, no-wrap
 msgid ""
 "(service dnsmasq-service-type\n"
@@ -40235,1011 +44518,1188 @@ msgid ""
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:21745
+#: doc/guix.texi:24014
 #, no-wrap
 msgid "{Data Type} dnsmasq-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:21747
+#: doc/guix.texi:24016
 msgid "Data type representing the configuration of dnsmasq."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21749
+#: doc/guix.texi:24018
 #, no-wrap
 msgid "@code{package} (default: @var{dnsmasq})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21751
+#: doc/guix.texi:24020
 msgid "Package object of the dnsmasq server."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21752
+#: doc/guix.texi:24021
 #, no-wrap
 msgid "@code{no-hosts?} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21754
+#: doc/guix.texi:24023
 msgid "When true, don't read the hostnames in /etc/hosts."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21755
+#: doc/guix.texi:24024
 #, no-wrap
 msgid "@code{port} (default: @code{53})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21758
+#: doc/guix.texi:24027
 msgid "The port to listen on.  Setting this to zero completely disables DNS responses, leaving only DHCP and/or TFTP functions."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21759
+#: doc/guix.texi:24028
 #, no-wrap
 msgid "@code{local-service?} (default: @code{#t})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21762
+#: doc/guix.texi:24031
 msgid "Accept DNS queries only from hosts whose address is on a local subnet, ie a subnet for which an interface exists on the server."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21763
+#: doc/guix.texi:24032
 #, no-wrap
 msgid "@code{listen-addresses} (default: @code{'()})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21765
+#: doc/guix.texi:24034
 msgid "Listen on the given IP addresses."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21766
+#: doc/guix.texi:24035
 #, no-wrap
 msgid "@code{resolv-file} (default: @code{\"/etc/resolv.conf\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21768
+#: doc/guix.texi:24037
 msgid "The file to read the IP address of the upstream nameservers from."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21769
+#: doc/guix.texi:24038
 #, no-wrap
 msgid "@code{no-resolv?} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21771
+#: doc/guix.texi:24040
 msgid "When true, don't read @var{resolv-file}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21772
+#: doc/guix.texi:24041
 #, no-wrap
 msgid "@code{servers} (default: @code{'()})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21774
+#: doc/guix.texi:24043
 msgid "Specify IP address of upstream servers directly."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21775
+#: doc/guix.texi:24044
+#, fuzzy, no-wrap
+#| msgid "@code{features} (default: @code{'()})"
+msgid "@code{addresses} (default: @code{'()})"
+msgstr "@code{features} (default: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:24048
+msgid "For each entry, specify an IP address to return for any host in the given domains.  Queries in the domains are never forwarded and always replied to with the specified IP address."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:24050
+msgid "This is useful for redirecting hosts locally, for example:"
+msgstr ""
+
+#. type: lisp
+#: doc/guix.texi:24059
+#, no-wrap
+msgid ""
+"(service dnsmasq-service-type\n"
+"         (dnsmasq-configuration\n"
+"           (addresses\n"
+"             '(; Redirect to a local web-server.\n"
+"               \"/example.org/127.0.0.1\"\n"
+"               ; Redirect subdomain to a specific IP.\n"
+"               \"/subdomain.example.org/192.168.1.42\"))))\n"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:24062
+msgid "Note that rules in @file{/etc/hosts} take precedence over this."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:24063
 #, no-wrap
 msgid "@code{cache-size} (default: @code{150})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21778
+#: doc/guix.texi:24066
 msgid "Set the size of dnsmasq's cache.  Setting the cache size to zero disables caching."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21779
+#: doc/guix.texi:24067
 #, no-wrap
 msgid "@code{negative-cache?} (default: @code{#t})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21781
+#: doc/guix.texi:24069
 msgid "When false, disable negative caching."
 msgstr ""
 
+#. type: item
+#: doc/guix.texi:24070
+#, fuzzy, no-wrap
+#| msgid "@code{speed} (default: @code{1.0})"
+msgid "@code{tftp-enable?} (default: @code{#f})"
+msgstr "@code{speed} (default: @code{1.0})"
+
+#. type: table
+#: doc/guix.texi:24072
+msgid "Whether to enable the built-in TFTP server."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:24073
+#, fuzzy, no-wrap
+#| msgid "@code{speed} (default: @code{1.0})"
+msgid "@code{tftp-no-fail?} (default: @code{#f})"
+msgstr "@code{speed} (default: @code{1.0})"
+
+#. type: table
+#: doc/guix.texi:24075
+msgid "If true, does not fail dnsmasq if the TFTP server could not start up."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:24076
+#, fuzzy, no-wrap
+#| msgid "@code{port} (default: @code{22})"
+msgid "@code{tftp-single-port?} (default: @code{#f})"
+msgstr "@code{port} (default: @code{22})"
+
+#. type: table
+#: doc/guix.texi:24078
+msgid "Whether to use only one single port for TFTP."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:24079
+#, fuzzy, no-wrap
+#| msgid "@code{speed} (default: @code{1.0})"
+msgid "@code{tftp-secure?} (default: @code{#f})"
+msgstr "@code{speed} (default: @code{1.0})"
+
+#. type: table
+#: doc/guix.texi:24081
+msgid "If true, only files owned by the user running the dnsmasq process are accessible."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:24085
+msgid "If dnsmasq is being run as root, different rules apply: @code{tftp-secure?} has no effect, but only files which have the world-readable bit set are accessible."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:24086
+#, fuzzy, no-wrap
+#| msgid "@code{speed} (default: @code{1.0})"
+msgid "@code{tftp-max} (default: @code{#f})"
+msgstr "@code{speed} (default: @code{1.0})"
+
+#. type: table
+#: doc/guix.texi:24088
+msgid "If set, sets the maximal number of concurrent connections allowed."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:24089
+#, fuzzy, no-wrap
+#| msgid "@code{port} (default: @code{22})"
+msgid "@code{tftp-mtu} (default: @code{#f})"
+msgstr "@code{port} (default: @code{22})"
+
+#. type: table
+#: doc/guix.texi:24091
+msgid "If set, sets the MTU for TFTP packets to that value."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:24092
+#, fuzzy, no-wrap
+#| msgid "@code{port} (default: @code{22})"
+msgid "@code{tftp-no-blocksize?} (default: @code{#f})"
+msgstr "@code{port} (default: @code{22})"
+
+#. type: table
+#: doc/guix.texi:24094
+msgid "If true, stops the TFTP server from negotiating the blocksize with a client."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:24095
+#, fuzzy, no-wrap
+#| msgid "@code{port} (default: @code{22})"
+msgid "@code{tftp-lowercase?} (default: @code{#f})"
+msgstr "@code{port} (default: @code{22})"
+
+#. type: table
+#: doc/guix.texi:24097
+msgid "Whether to convert all filenames in TFTP requests to lowercase."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:24098
+#, fuzzy, no-wrap
+#| msgid "@code{port} (default: @code{22})"
+msgid "@code{tftp-port-range} (default: @code{#f})"
+msgstr "@code{port} (default: @code{22})"
+
+#. type: table
+#: doc/guix.texi:24101
+msgid "If set, fixes the dynamical ports (one per client) to the given range (@code{\"<start>,<end>\"})."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:24102
+#, fuzzy, no-wrap
+#| msgid "@code{port} (default: @code{22})"
+msgid "@code{tftp-root} (default: @code{/var/empty,lo})"
+msgstr "@code{port} (default: @code{22})"
+
+#. type: table
+#: doc/guix.texi:24109
+msgid "Look for files to transfer using TFTP relative to the given directory.  When this is set, TFTP paths which include \"..\" are rejected, to stop clients getting outside the specified root. Absolute paths (starting with /) are allowed, but they must be within the tftp-root. If the optional interface argument is given, the directory is only used for TFTP requests via that interface."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:24110
+#, fuzzy, no-wrap
+#| msgid "@code{port} (default: @code{22})"
+msgid "@code{tftp-unique-root} (default: @code{#f})"
+msgstr "@code{port} (default: @code{22})"
+
+#. type: table
+#: doc/guix.texi:24115
+msgid "If set, add the IP or hardware address of the TFTP client as a path component on the end of the TFTP-root.  Only valid if a TFTP root is set and the directory exists.  Defaults to adding IP address (in standard dotted-quad format)."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:24123
+msgid "For instance, if --tftp-root is \"/tftp\" and client 1.2.3.4 requests file \"myfile\" then the effective path will be \"/tftp/1.2.3.4/myfile\" if /tftp/1.2.3.4 exists or /tftp/myfile otherwise. When \"=mac\" is specified it will append the MAC address instead, using lowercase zero padded digits separated by dashes, e.g.: 01-02-03-04-aa-bb Note that resolving MAC addresses is only possible if the client is in the local network or obtained a DHCP lease from dnsmasq."
+msgstr ""
+
 #. type: subsubheading
-#: doc/guix.texi:21785
+#: doc/guix.texi:24127
 #, no-wrap
 msgid "ddclient Service"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:21787
+#: doc/guix.texi:24129
 #, no-wrap
 msgid "ddclient"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:21791
+#: doc/guix.texi:24133
 msgid "The ddclient service described below runs the ddclient daemon, which takes care of automatically updating DNS entries for service providers such as @uref{https://dyn.com/dns/, Dyn}."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:21794
+#: doc/guix.texi:24136
 msgid "The following example show instantiates the service with its default configuration:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:21797
+#: doc/guix.texi:24139
 #, no-wrap
 msgid "(service ddclient-service-type)\n"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:21806
-msgid "Note that ddclient needs to access credentials that are stored in a @dfn{secret file}, by default @file{/etc/ddclient/secrets} (see @code{secret-file} below.)  You are expected to create this file manually, in an ``out-of-band'' fashion (you @emph{could} make this file part of the service configuration, for instance by using @code{plain-file}, but it will be world-readable @i{via} @file{/gnu/store}.)  See the examples in the @file{share/ddclient} directory of the @code{ddclient} package."
+#: doc/guix.texi:24148
+msgid "Note that ddclient needs to access credentials that are stored in a @dfn{secret file}, by default @file{/etc/ddclient/secrets} (see @code{secret-file} below).  You are expected to create this file manually, in an ``out-of-band'' fashion (you @emph{could} make this file part of the service configuration, for instance by using @code{plain-file}, but it will be world-readable @i{via} @file{/gnu/store}).  See the examples in the @file{share/ddclient} directory of the @code{ddclient} package."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:21810
+#: doc/guix.texi:24152
 msgid "Available @code{ddclient-configuration} fields are:"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21811
+#: doc/guix.texi:24153
 #, no-wrap
 msgid "{@code{ddclient-configuration} parameter} package ddclient"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21813
+#: doc/guix.texi:24155
 msgid "The ddclient package."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21816
+#: doc/guix.texi:24158
 #, no-wrap
 msgid "{@code{ddclient-configuration} parameter} integer daemon"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21818
+#: doc/guix.texi:24160
 msgid "The period after which ddclient will retry to check IP and domain name."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21823
+#: doc/guix.texi:24165
 #, no-wrap
 msgid "{@code{ddclient-configuration} parameter} boolean syslog"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21825
+#: doc/guix.texi:24167
 msgid "Use syslog for the output."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21830
+#: doc/guix.texi:24172
 #, no-wrap
 msgid "{@code{ddclient-configuration} parameter} string mail"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21832
+#: doc/guix.texi:24174
 msgid "Mail to user."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21834 doc/guix.texi:21841 doc/guix.texi:23341
+#: doc/guix.texi:24176 doc/guix.texi:24183 doc/guix.texi:25698
 msgid "Defaults to @samp{\"root\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21837
+#: doc/guix.texi:24179
 #, no-wrap
 msgid "{@code{ddclient-configuration} parameter} string mail-failure"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21839
+#: doc/guix.texi:24181
 msgid "Mail failed update to user."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21844
+#: doc/guix.texi:24186
 #, no-wrap
 msgid "{@code{ddclient-configuration} parameter} string pid"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21846
+#: doc/guix.texi:24188
 msgid "The ddclient PID file."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21848
+#: doc/guix.texi:24190
 msgid "Defaults to @samp{\"/var/run/ddclient/ddclient.pid\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21851
+#: doc/guix.texi:24193
 #, no-wrap
 msgid "{@code{ddclient-configuration} parameter} boolean ssl"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21853
+#: doc/guix.texi:24195
 msgid "Enable SSL support."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21858
+#: doc/guix.texi:24200
 #, no-wrap
 msgid "{@code{ddclient-configuration} parameter} string user"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21861
+#: doc/guix.texi:24203
 msgid "Specifies the user name or ID that is used when running ddclient program."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21863 doc/guix.texi:21870
+#: doc/guix.texi:24205 doc/guix.texi:24212
 msgid "Defaults to @samp{\"ddclient\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21866
+#: doc/guix.texi:24208
 #, no-wrap
 msgid "{@code{ddclient-configuration} parameter} string group"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21868
+#: doc/guix.texi:24210
 msgid "Group of the user who will run the ddclient program."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21873
+#: doc/guix.texi:24215
 #, no-wrap
 msgid "{@code{ddclient-configuration} parameter} string secret-file"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21877
+#: doc/guix.texi:24219
 msgid "Secret file which will be appended to @file{ddclient.conf} file.  This file contains credentials for use by ddclient.  You are expected to create it manually."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21879
+#: doc/guix.texi:24221
 msgid "Defaults to @samp{\"/etc/ddclient/secrets.conf\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21882
+#: doc/guix.texi:24224
 #, no-wrap
 msgid "{@code{ddclient-configuration} parameter} list extra-options"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21884
+#: doc/guix.texi:24226
 msgid "Extra options will be appended to @file{ddclient.conf} file."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:21895
+#: doc/guix.texi:24237
 #, no-wrap
 msgid "VPN (virtual private network)"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:21896
+#: doc/guix.texi:24238
 #, no-wrap
 msgid "virtual private network (VPN)"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:21902
+#: doc/guix.texi:24244
 msgid "The @code{(gnu services vpn)} module provides services related to @dfn{virtual private networks} (VPNs).  It provides a @emph{client} service for your machine to connect to a VPN, and a @emph{server} service for your machine to host a VPN.  Both services use @uref{https://openvpn.net/, OpenVPN}."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:21903
+#: doc/guix.texi:24245
 #, no-wrap
 msgid "{Scheme Procedure} openvpn-client-service @"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:21905
+#: doc/guix.texi:24247
 msgid "[#:config (openvpn-client-configuration)]"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:21907
+#: doc/guix.texi:24249
 msgid "Return a service that runs @command{openvpn}, a VPN daemon, as a client."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:21909
+#: doc/guix.texi:24251
 #, no-wrap
 msgid "{Scheme Procedure} openvpn-server-service @"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:21911
+#: doc/guix.texi:24253
 msgid "[#:config (openvpn-server-configuration)]"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:21913
+#: doc/guix.texi:24255
 msgid "Return a service that runs @command{openvpn}, a VPN daemon, as a server."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:21915
+#: doc/guix.texi:24257
 msgid "Both can be run simultaneously."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:21920
+#: doc/guix.texi:24262
 msgid "Available @code{openvpn-client-configuration} fields are:"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21921
+#: doc/guix.texi:24263
 #, no-wrap
 msgid "{@code{openvpn-client-configuration} parameter} package openvpn"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21923 doc/guix.texi:22074
+#: doc/guix.texi:24265 doc/guix.texi:24416
 msgid "The OpenVPN package."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21926
+#: doc/guix.texi:24268
 #, no-wrap
 msgid "{@code{openvpn-client-configuration} parameter} string pid-file"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21928 doc/guix.texi:22079
+#: doc/guix.texi:24270 doc/guix.texi:24421
 msgid "The OpenVPN pid file."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21930 doc/guix.texi:22081
+#: doc/guix.texi:24272 doc/guix.texi:24423
 msgid "Defaults to @samp{\"/var/run/openvpn/openvpn.pid\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21933
+#: doc/guix.texi:24275
 #, no-wrap
 msgid "{@code{openvpn-client-configuration} parameter} proto proto"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21936 doc/guix.texi:22087
+#: doc/guix.texi:24278 doc/guix.texi:24429
 msgid "The protocol (UDP or TCP) used to open a channel between clients and servers."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21938 doc/guix.texi:22089
+#: doc/guix.texi:24280 doc/guix.texi:24431
 msgid "Defaults to @samp{udp}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21941
+#: doc/guix.texi:24283
 #, no-wrap
 msgid "{@code{openvpn-client-configuration} parameter} dev dev"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21943 doc/guix.texi:22094
+#: doc/guix.texi:24285 doc/guix.texi:24436
 msgid "The device type used to represent the VPN connection."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21945 doc/guix.texi:22096
+#: doc/guix.texi:24287 doc/guix.texi:24438
 msgid "Defaults to @samp{tun}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21948
+#: doc/guix.texi:24290
 #, no-wrap
 msgid "{@code{openvpn-client-configuration} parameter} string ca"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21950 doc/guix.texi:22101
+#: doc/guix.texi:24292 doc/guix.texi:24443
 msgid "The certificate authority to check connections against."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21952 doc/guix.texi:22103
+#: doc/guix.texi:24294 doc/guix.texi:24445
 msgid "Defaults to @samp{\"/etc/openvpn/ca.crt\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21955
+#: doc/guix.texi:24297
 #, no-wrap
 msgid "{@code{openvpn-client-configuration} parameter} string cert"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21958 doc/guix.texi:22109
+#: doc/guix.texi:24300 doc/guix.texi:24451
 msgid "The certificate of the machine the daemon is running on.  It should be signed by the authority given in @code{ca}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21960 doc/guix.texi:22111
+#: doc/guix.texi:24302 doc/guix.texi:24453
 msgid "Defaults to @samp{\"/etc/openvpn/client.crt\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21963
+#: doc/guix.texi:24305
 #, no-wrap
 msgid "{@code{openvpn-client-configuration} parameter} string key"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21966 doc/guix.texi:22117
+#: doc/guix.texi:24308 doc/guix.texi:24459
 msgid "The key of the machine the daemon is running on.  It must be the key whose certificate is @code{cert}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21968 doc/guix.texi:22119
+#: doc/guix.texi:24310 doc/guix.texi:24461
 msgid "Defaults to @samp{\"/etc/openvpn/client.key\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21971
+#: doc/guix.texi:24313
 #, no-wrap
 msgid "{@code{openvpn-client-configuration} parameter} boolean comp-lzo?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21973 doc/guix.texi:22124
+#: doc/guix.texi:24315 doc/guix.texi:24466
 msgid "Whether to use the lzo compression algorithm."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21978
+#: doc/guix.texi:24320
 #, no-wrap
 msgid "{@code{openvpn-client-configuration} parameter} boolean persist-key?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21980 doc/guix.texi:22131
+#: doc/guix.texi:24322 doc/guix.texi:24473
 msgid "Don't re-read key files across SIGUSR1 or --ping-restart."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21985
+#: doc/guix.texi:24327
 #, no-wrap
 msgid "{@code{openvpn-client-configuration} parameter} boolean persist-tun?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21988 doc/guix.texi:22139
+#: doc/guix.texi:24330 doc/guix.texi:24481
 msgid "Don't close and reopen TUN/TAP device or run up/down scripts across SIGUSR1 or --ping-restart restarts."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21993
+#: doc/guix.texi:24335
 #, no-wrap
 msgid "{@code{openvpn-client-configuration} parameter} boolean fast-io?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21996 doc/guix.texi:22147
+#: doc/guix.texi:24338 doc/guix.texi:24489
 msgid "(Experimental) Optimize TUN/TAP/UDP I/O writes by avoiding a call to poll/epoll/select prior to the write operation."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22000
+#: doc/guix.texi:24342
 #, no-wrap
 msgid "{@code{openvpn-client-configuration} parameter} number verbosity"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22002 doc/guix.texi:22153
+#: doc/guix.texi:24344 doc/guix.texi:24495
 msgid "Verbosity level."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22004 doc/guix.texi:22155 doc/guix.texi:23609
-#: doc/guix.texi:23832
+#: doc/guix.texi:24346 doc/guix.texi:24497 doc/guix.texi:25966
+#: doc/guix.texi:26190
 msgid "Defaults to @samp{3}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22007
+#: doc/guix.texi:24349
 #, no-wrap
 msgid "{@code{openvpn-client-configuration} parameter} tls-auth-client tls-auth"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22010 doc/guix.texi:22161
+#: doc/guix.texi:24352 doc/guix.texi:24503
 msgid "Add an additional layer of HMAC authentication on top of the TLS control channel to protect against DoS attacks."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22015
+#: doc/guix.texi:24357
 #, no-wrap
 msgid "{@code{openvpn-client-configuration} parameter} maybe-string auth-user-pass"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22019
+#: doc/guix.texi:24361
 msgid "Authenticate with server using username/password.  The option is a file containing username/password on 2 lines.  Do not use a file-like object as it would be added to the store and readable by any user."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22021
+#: doc/guix.texi:24363
 msgid "Defaults to @samp{'disabled}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22023
+#: doc/guix.texi:24365
 #, no-wrap
 msgid "{@code{openvpn-client-configuration} parameter} key-usage verify-key-usage?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22025
+#: doc/guix.texi:24367
 msgid "Whether to check the server certificate has server usage extension."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22030
+#: doc/guix.texi:24372
 #, no-wrap
 msgid "{@code{openvpn-client-configuration} parameter} bind bind?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22032
+#: doc/guix.texi:24374
 msgid "Bind to a specific local port number."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22037
+#: doc/guix.texi:24379
 #, no-wrap
 msgid "{@code{openvpn-client-configuration} parameter} resolv-retry resolv-retry?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22039
+#: doc/guix.texi:24381
 msgid "Retry resolving server address."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22044
+#: doc/guix.texi:24386
 #, no-wrap
 msgid "{@code{openvpn-client-configuration} parameter} openvpn-remote-list remote"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22046
+#: doc/guix.texi:24388
 msgid "A list of remote servers to connect to."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22050
+#: doc/guix.texi:24392
 msgid "Available @code{openvpn-remote-configuration} fields are:"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22051
+#: doc/guix.texi:24393
 #, no-wrap
 msgid "{@code{openvpn-remote-configuration} parameter} string name"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22053
+#: doc/guix.texi:24395
 msgid "Server name."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22055
+#: doc/guix.texi:24397
 msgid "Defaults to @samp{\"my-server\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22058
+#: doc/guix.texi:24400
 #, no-wrap
 msgid "{@code{openvpn-remote-configuration} parameter} number port"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22060
+#: doc/guix.texi:24402
 msgid "Port number the server listens to."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22062 doc/guix.texi:22170
+#: doc/guix.texi:24404 doc/guix.texi:24512
 msgid "Defaults to @samp{1194}."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:22071
+#: doc/guix.texi:24413
 msgid "Available @code{openvpn-server-configuration} fields are:"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22072
+#: doc/guix.texi:24414
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} package openvpn"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22077
+#: doc/guix.texi:24419
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} string pid-file"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22084
+#: doc/guix.texi:24426
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} proto proto"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22092
+#: doc/guix.texi:24434
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} dev dev"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22099
+#: doc/guix.texi:24441
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} string ca"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22106
+#: doc/guix.texi:24448
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} string cert"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22114
+#: doc/guix.texi:24456
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} string key"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22122
+#: doc/guix.texi:24464
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} boolean comp-lzo?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22129
+#: doc/guix.texi:24471
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} boolean persist-key?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22136
+#: doc/guix.texi:24478
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} boolean persist-tun?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22144
+#: doc/guix.texi:24486
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} boolean fast-io?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22151
+#: doc/guix.texi:24493
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} number verbosity"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22158
+#: doc/guix.texi:24500
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} tls-auth-server tls-auth"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22166
+#: doc/guix.texi:24508
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} number port"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22168
+#: doc/guix.texi:24510
 msgid "Specifies the port number on which the server listens."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22173
+#: doc/guix.texi:24515
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} ip-mask server"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22175
+#: doc/guix.texi:24517
 msgid "An ip and mask specifying the subnet inside the virtual network."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22177
+#: doc/guix.texi:24519
 msgid "Defaults to @samp{\"10.8.0.0 255.255.255.0\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22180
+#: doc/guix.texi:24522
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} cidr6 server-ipv6"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22182
+#: doc/guix.texi:24524
 msgid "A CIDR notation specifying the IPv6 subnet inside the virtual network."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22187
+#: doc/guix.texi:24529
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} string dh"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22189
+#: doc/guix.texi:24531
 msgid "The Diffie-Hellman parameters file."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22191
+#: doc/guix.texi:24533
 msgid "Defaults to @samp{\"/etc/openvpn/dh2048.pem\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22194
+#: doc/guix.texi:24536
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} string ifconfig-pool-persist"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22196
+#: doc/guix.texi:24538
 msgid "The file that records client IPs."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22198
+#: doc/guix.texi:24540
 msgid "Defaults to @samp{\"/etc/openvpn/ipp.txt\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22201
+#: doc/guix.texi:24543
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} gateway redirect-gateway?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22203
+#: doc/guix.texi:24545
 msgid "When true, the server will act as a gateway for its clients."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22208
+#: doc/guix.texi:24550
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} boolean client-to-client?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22210
+#: doc/guix.texi:24552
 msgid "When true, clients are allowed to talk to each other inside the VPN."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22215
+#: doc/guix.texi:24557
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} keepalive keepalive"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22221
+#: doc/guix.texi:24563
 msgid "Causes ping-like messages to be sent back and forth over the link so that each side knows when the other side has gone down.  @code{keepalive} requires a pair.  The first element is the period of the ping sending, and the second element is the timeout before considering the other side down."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22224
+#: doc/guix.texi:24566
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} number max-clients"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22226
+#: doc/guix.texi:24568
 msgid "The maximum number of clients."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22231
+#: doc/guix.texi:24573
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} string status"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22234
+#: doc/guix.texi:24576
 msgid "The status file.  This file shows a small report on current connection.  It is truncated and rewritten every minute."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22236
+#: doc/guix.texi:24578
 msgid "Defaults to @samp{\"/var/run/openvpn/status\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22239
+#: doc/guix.texi:24581
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} openvpn-ccd-list client-config-dir"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22241
+#: doc/guix.texi:24583
 msgid "The list of configuration for some clients."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22245
+#: doc/guix.texi:24587
 msgid "Available @code{openvpn-ccd-configuration} fields are:"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22246
+#: doc/guix.texi:24588
 #, no-wrap
 msgid "{@code{openvpn-ccd-configuration} parameter} string name"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22248
+#: doc/guix.texi:24590
 msgid "Client name."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22250
+#: doc/guix.texi:24592
 msgid "Defaults to @samp{\"client\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22253
+#: doc/guix.texi:24595
 #, no-wrap
 msgid "{@code{openvpn-ccd-configuration} parameter} ip-mask iroute"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22255
+#: doc/guix.texi:24597
 msgid "Client own network"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22260
+#: doc/guix.texi:24602
 #, no-wrap
 msgid "{@code{openvpn-ccd-configuration} parameter} ip-mask ifconfig-push"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22262
+#: doc/guix.texi:24604
 msgid "Client VPN IP."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:22275
+#: doc/guix.texi:24617
 #, no-wrap
 msgid "NFS"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:22280
+#: doc/guix.texi:24622
 msgid "The @code{(gnu services nfs)} module provides the following services, which are most commonly used in relation to mounting or exporting directory trees as @dfn{network file systems} (NFS)."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:22284
+#: doc/guix.texi:24626
 msgid "While it is possible to use the individual components that together make up a Network File System service, we recommended to configure an NFS server with the @code{nfs-service-type}."
 msgstr ""
 
 #. type: subsubheading
-#: doc/guix.texi:22285
+#: doc/guix.texi:24627
 #, fuzzy, no-wrap
 #| msgid "DNS Services"
 msgid "NFS Service"
 msgstr "Сервисы DNS"
 
 #. type: cindex
-#: doc/guix.texi:22286
+#: doc/guix.texi:24628
 #, fuzzy, no-wrap
 #| msgid "Web servers."
 msgid "NFS, server"
 msgstr "Веб-серверы."
 
 #. type: Plain text
-#: doc/guix.texi:22291
+#: doc/guix.texi:24633
 msgid "The NFS service takes care of setting up all NFS component services, kernel configuration file systems, and installs configuration files in the locations that NFS expects."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:22292
+#: doc/guix.texi:24634
 #, no-wrap
 msgid "{Scheme Variable} nfs-service-type"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:22294
+#: doc/guix.texi:24636
 msgid "A service type for a complete NFS server."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:22296
+#: doc/guix.texi:24638
 #, fuzzy, no-wrap
 #| msgid "System Configuration"
 msgid "{Data Type} nfs-configuration"
 msgstr "Конфигурирование системы"
 
 #. type: deftp
-#: doc/guix.texi:22299
+#: doc/guix.texi:24641
 msgid "This data type represents the configuration of the NFS service and all of its subsystems."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:22301
+#: doc/guix.texi:24643
 #, fuzzy
 #| msgid "GNU Guix depends on the following packages:"
 msgid "It has the following parameters:"
 msgstr "GNU Guix зависит от следующих пакетов:"
 
 #. type: item
-#: doc/guix.texi:22302 doc/guix.texi:22421 doc/guix.texi:22446
+#: doc/guix.texi:24644 doc/guix.texi:24769 doc/guix.texi:24794
 #, no-wrap
 msgid "@code{nfs-utils} (default: @code{nfs-utils})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:22304
+#: doc/guix.texi:24646
 #, fuzzy
 #| msgid "The package data type."
 msgid "The nfs-utils package to use."
 msgstr "Тип данных пакет"
 
 #. type: item
-#: doc/guix.texi:22305
+#: doc/guix.texi:24647
 #, fuzzy, no-wrap
 #| msgid "@code{speed} (default: @code{1.0})"
 msgid "@code{nfs-versions} (default: @code{'(\"4.2\" \"4.1\" \"4.0\")})"
 msgstr "@code{speed} (default: @code{1.0})"
 
 #. type: table
-#: doc/guix.texi:22308
+#: doc/guix.texi:24650
 msgid "If a list of string values is provided, the @command{rpc.nfsd} daemon will be limited to supporting the given versions of the NFS protocol."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:22309
+#: doc/guix.texi:24651
 #, fuzzy, no-wrap
 #| msgid "@code{port} (default: @code{22})"
 msgid "@code{exports} (default: @code{'()})"
 msgstr "@code{port} (default: @code{22})"
 
 #. type: table
-#: doc/guix.texi:22314
+#: doc/guix.texi:24656
 msgid "This is a list of directories the NFS server should export.  Each entry is a list consisting of two elements: a directory name and a string containing all options.  This is an example in which the directory @file{/export} is served to all NFS clients as a read-only share:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:22320
+#: doc/guix.texi:24662
 #, no-wrap
 msgid ""
 "(nfs-configuration\n"
@@ -41249,369 +45709,393 @@ msgid ""
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:22322
+#: doc/guix.texi:24664
 #, fuzzy, no-wrap
 #| msgid "@code{port} (default: @code{22})"
 msgid "@code{rpcmountd-port} (default: @code{#f})"
 msgstr "@code{port} (default: @code{22})"
 
 #. type: table
-#: doc/guix.texi:22324
+#: doc/guix.texi:24666
 msgid "The network port that the @command{rpc.mountd} daemon should use."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:22325
+#: doc/guix.texi:24667
 #, fuzzy, no-wrap
 #| msgid "@code{port} (default: @code{22})"
 msgid "@code{rpcstatd-port} (default: @code{#f})"
 msgstr "@code{port} (default: @code{22})"
 
 #. type: table
-#: doc/guix.texi:22327
+#: doc/guix.texi:24669
 msgid "The network port that the @command{rpc.statd} daemon should use."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:22328 doc/guix.texi:22370
+#: doc/guix.texi:24670 doc/guix.texi:24718
 #, no-wrap
 msgid "@code{rpcbind} (default: @code{rpcbind})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:22330 doc/guix.texi:22372
+#: doc/guix.texi:24672 doc/guix.texi:24720
 msgid "The rpcbind package to use."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:22331
+#: doc/guix.texi:24673
 #, fuzzy, no-wrap
 #| msgid "@code{port} (default: @code{22})"
 msgid "@code{idmap-domain} (default: @code{\"localdomain\"})"
 msgstr "@code{port} (default: @code{22})"
 
 #. type: table
-#: doc/guix.texi:22333
+#: doc/guix.texi:24675
 msgid "The local NFSv4 domain name."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:22334
+#: doc/guix.texi:24676
 #, fuzzy, no-wrap
 #| msgid "@code{port} (default: @code{22})"
 msgid "@code{nfsd-port} (default: @code{2049})"
 msgstr "@code{port} (default: @code{22})"
 
 #. type: table
-#: doc/guix.texi:22336
+#: doc/guix.texi:24678
 msgid "The network port that the @command{nfsd} daemon should use."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:22337
+#: doc/guix.texi:24679
 #, fuzzy, no-wrap
 #| msgid "@code{features} (default: @code{'()})"
 msgid "@code{nfsd-threads} (default: @code{8})"
 msgstr "@code{features} (default: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:22339
+#: doc/guix.texi:24681
 msgid "The number of threads used by the @command{nfsd} daemon."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:22340 doc/guix.texi:22424 doc/guix.texi:22449
+#: doc/guix.texi:24682
+#, fuzzy, no-wrap
+#| msgid "@code{port} (default: @code{22})"
+msgid "@code{nfsd-tcp?} (default: @code{#t})"
+msgstr "@code{port} (default: @code{22})"
+
+#. type: table
+#: doc/guix.texi:24684
+msgid "Whether the @command{nfsd} daemon should listen on a TCP socket."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:24685
+#, fuzzy, no-wrap
+#| msgid "@code{port} (default: @code{22})"
+msgid "@code{nfsd-udp?} (default: @code{#f})"
+msgstr "@code{port} (default: @code{22})"
+
+#. type: table
+#: doc/guix.texi:24687
+msgid "Whether the @command{nfsd} daemon should listen on a UDP socket."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:24688 doc/guix.texi:24772 doc/guix.texi:24797
 #, no-wrap
 msgid "@code{pipefs-directory} (default: @code{\"/var/lib/nfs/rpc_pipefs\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:22342 doc/guix.texi:22426 doc/guix.texi:22451
+#: doc/guix.texi:24690 doc/guix.texi:24774 doc/guix.texi:24799
 msgid "The directory where the pipefs file system is mounted."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:22343
+#: doc/guix.texi:24691
 #, fuzzy, no-wrap
 #| msgid "@code{features} (default: @code{'()})"
 msgid "@code{debug} (default: @code{'()\"})"
 msgstr "@code{features} (default: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:22347
+#: doc/guix.texi:24695
 msgid "A list of subsystems for which debugging output should be enabled.  This is a list of symbols.  Any of these symbols are valid: @code{nfsd}, @code{nfs}, @code{rpc}, @code{idmap}, @code{statd}, or @code{mountd}."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:22352
+#: doc/guix.texi:24700
 msgid "If you don't need a complete NFS service or prefer to build it yourself you can use the individual component services that are documented below."
 msgstr ""
 
 #. type: subsubheading
-#: doc/guix.texi:22353
+#: doc/guix.texi:24701
 #, no-wrap
 msgid "RPC Bind Service"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:22354
+#: doc/guix.texi:24702
 #, no-wrap
 msgid "rpcbind"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:22360
+#: doc/guix.texi:24708
 msgid "The RPC Bind service provides a facility to map program numbers into universal addresses.  Many NFS related services use this facility.  Hence it is automatically started when a dependent service starts."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:22361
+#: doc/guix.texi:24709
 #, no-wrap
 msgid "{Scheme Variable} rpcbind-service-type"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:22363
+#: doc/guix.texi:24711
 msgid "A service type for the RPC portmapper daemon."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:22366
+#: doc/guix.texi:24714
 #, no-wrap
 msgid "{Data Type} rpcbind-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:22369
+#: doc/guix.texi:24717
 msgid "Data type representing the configuration of the RPC Bind Service.  This type has the following parameters:"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:22373
+#: doc/guix.texi:24721
 #, no-wrap
 msgid "@code{warm-start?} (default: @code{#t})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:22377
+#: doc/guix.texi:24725
 msgid "If this parameter is @code{#t}, then the daemon will read a state file on startup thus reloading state information saved by a previous instance."
 msgstr ""
 
 #. type: subsubheading
-#: doc/guix.texi:22381
+#: doc/guix.texi:24729
 #, no-wrap
 msgid "Pipefs Pseudo File System"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:22382
+#: doc/guix.texi:24730
 #, no-wrap
 msgid "pipefs"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:22383
+#: doc/guix.texi:24731
 #, no-wrap
 msgid "rpc_pipefs"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:22387
+#: doc/guix.texi:24735
 msgid "The pipefs file system is used to transfer NFS related data between the kernel and user space programs."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:22388
+#: doc/guix.texi:24736
 #, no-wrap
 msgid "{Scheme Variable} pipefs-service-type"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:22390
+#: doc/guix.texi:24738
 msgid "A service type for the pipefs pseudo file system."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:22392
+#: doc/guix.texi:24740
 #, no-wrap
 msgid "{Data Type} pipefs-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:22395
+#: doc/guix.texi:24743
 msgid "Data type representing the configuration of the pipefs pseudo file system service.  This type has the following parameters:"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:22396
+#: doc/guix.texi:24744
 #, no-wrap
 msgid "@code{mount-point} (default: @code{\"/var/lib/nfs/rpc_pipefs\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:22398
+#: doc/guix.texi:24746
 msgid "The directory to which the file system is to be attached."
 msgstr ""
 
 #. type: subsubheading
-#: doc/guix.texi:22402
+#: doc/guix.texi:24750
 #, no-wrap
 msgid "GSS Daemon Service"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:22403
+#: doc/guix.texi:24751
 #, no-wrap
 msgid "GSSD"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:22404
+#: doc/guix.texi:24752
 #, no-wrap
 msgid "GSS"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:22405
+#: doc/guix.texi:24753
 #, no-wrap
 msgid "global security system"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:22412
+#: doc/guix.texi:24760
 msgid "The @dfn{global security system} (GSS) daemon provides strong security for RPC based protocols.  Before exchanging RPC requests an RPC client must establish a security context.  Typically this is done using the Kerberos command @command{kinit} or automatically at login time using PAM services (@pxref{Kerberos Services})."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:22413
+#: doc/guix.texi:24761
 #, no-wrap
 msgid "{Scheme Variable} gss-service-type"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:22415
+#: doc/guix.texi:24763
 msgid "A service type for the Global Security System (GSS) daemon."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:22417
+#: doc/guix.texi:24765
 #, no-wrap
 msgid "{Data Type} gss-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:22420
+#: doc/guix.texi:24768
 msgid "Data type representing the configuration of the GSS daemon service.  This type has the following parameters:"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:22423
+#: doc/guix.texi:24771
 msgid "The package in which the @command{rpc.gssd} command is to be found."
 msgstr ""
 
 #. type: subsubheading
-#: doc/guix.texi:22431
+#: doc/guix.texi:24779
 #, no-wrap
 msgid "IDMAP Daemon Service"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:22432
+#: doc/guix.texi:24780
 #, no-wrap
 msgid "idmapd"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:22433
+#: doc/guix.texi:24781
 #, no-wrap
 msgid "name mapper"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:22437
+#: doc/guix.texi:24785
 msgid "The idmap daemon service provides mapping between user IDs and user names.  Typically it is required in order to access file systems mounted via NFSv4."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:22438
+#: doc/guix.texi:24786
 #, no-wrap
 msgid "{Scheme Variable} idmap-service-type"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:22440
+#: doc/guix.texi:24788
 msgid "A service type for the Identity Mapper (IDMAP) daemon."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:22442
+#: doc/guix.texi:24790
 #, no-wrap
 msgid "{Data Type} idmap-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:22445
+#: doc/guix.texi:24793
 msgid "Data type representing the configuration of the IDMAP daemon service.  This type has the following parameters:"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:22448
+#: doc/guix.texi:24796
 msgid "The package in which the @command{rpc.idmapd} command is to be found."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:22452
+#: doc/guix.texi:24800
 #, no-wrap
 msgid "@code{domain} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:22456
+#: doc/guix.texi:24804
 msgid "The local NFSv4 domain name.  This must be a string or @code{#f}.  If it is @code{#f} then the daemon will use the host's fully qualified domain name."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:22457
+#: doc/guix.texi:24805
 #, fuzzy, no-wrap
 #| msgid "@code{port} (default: @code{22})"
 msgid "@code{verbosity} (default: @code{0})"
 msgstr "@code{port} (default: @code{22})"
 
 #. type: table
-#: doc/guix.texi:22459
+#: doc/guix.texi:24807
 #, fuzzy
 #| msgid "The host name of the remote machine."
 msgid "The verbosity level of the daemon."
 msgstr "Имя хоста удалённой машины"
 
 #. type: Plain text
-#: doc/guix.texi:22470
+#: doc/guix.texi:24818
 msgid "@uref{https://git.savannah.gnu.org/cgit/guix/guix-cuirass.git, Cuirass} is a continuous integration tool for Guix.  It can be used both for development and for providing substitutes to others (@pxref{Substitutes})."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:22472
+#: doc/guix.texi:24820
 msgid "The @code{(gnu services cuirass)} module provides the following service."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:22473
+#: doc/guix.texi:24821
 #, no-wrap
 msgid "{Scheme Procedure} cuirass-service-type"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:22476
+#: doc/guix.texi:24824
 msgid "The type of the Cuirass service.  Its value must be a @code{cuirass-configuration} object, as described below."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:22483
-msgid "To add build jobs, you have to set the @code{specifications} field of the configuration.  Here is an example of a service that polls the Guix repository and builds the packages from a manifest.  Some of the packages are defined in the @code{\"custom-packages\"} input, which is the equivalent of @code{GUIX_PACKAGE_PATH}."
+#: doc/guix.texi:24831
+msgid "To add build jobs, you have to set the @code{specifications} field of the configuration.  Here is an example of a service that polls the Guix repository and builds the packages from a manifest.  Some of the packages are defined in the @code{\"custom-packages\"} input, which is the equivalent of @env{GUIX_PACKAGE_PATH}."
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:22511
+#: doc/guix.texi:24859
 #, no-wrap
 msgid ""
 "(define %cuirass-specs\n"
@@ -41644,7 +46128,7 @@ msgid ""
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:22515
+#: doc/guix.texi:24863
 #, no-wrap
 msgid ""
 "(service cuirass-service-type\n"
@@ -41653,1117 +46137,1140 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:22520
+#: doc/guix.texi:24868
 msgid "While information related to build jobs is located directly in the specifications, global settings for the @command{cuirass} process are accessible in other @code{cuirass-configuration} fields."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:22521
+#: doc/guix.texi:24869
 #, no-wrap
 msgid "{Data Type} cuirass-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:22523
+#: doc/guix.texi:24871
 msgid "Data type representing the configuration of Cuirass."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:22525
+#: doc/guix.texi:24873
 #, no-wrap
 msgid "@code{log-file} (default: @code{\"/var/log/cuirass.log\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:22527
+#: doc/guix.texi:24875
 msgid "Location of the log file."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:22528
+#: doc/guix.texi:24876
 #, fuzzy, no-wrap
 #| msgid "@code{daemon-socket} (default: @code{\"/var/guix/daemon-socket/socket\"})"
 msgid "@code{web-log-file} (default: @code{\"/var/log/cuirass-web.log\"})"
 msgstr "@code{daemon-socket} (default: @code{\"/var/guix/daemon-socket/socket\"})"
 
 #. type: table
-#: doc/guix.texi:22530
+#: doc/guix.texi:24878
 msgid "Location of the log file used by the web interface."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:22531
+#: doc/guix.texi:24879
+#, fuzzy, no-wrap
+#| msgid "@code{speed} (default: @code{1.0})"
+msgid "@code{queries-log-file} (default: @code{#f})"
+msgstr "@code{speed} (default: @code{1.0})"
+
+#. type: table
+#: doc/guix.texi:24882
+msgid "Location of the SQL queries log file. By default, SQL queries logging is disabled."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:24883
+#, fuzzy, no-wrap
+#| msgid "@code{speed} (default: @code{1.0})"
+msgid "@code{web-queries-log-file} (default: @code{#f})"
+msgstr "@code{speed} (default: @code{1.0})"
+
+#. type: table
+#: doc/guix.texi:24886
+msgid "Location of the web SQL queries log file. By default, web SQL queries logging is disabled."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:24887
 #, no-wrap
 msgid "@code{cache-directory} (default: @code{\"/var/cache/cuirass\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:22533
+#: doc/guix.texi:24889
 msgid "Location of the repository cache."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:22534
+#: doc/guix.texi:24890
 #, no-wrap
 msgid "@code{user} (default: @code{\"cuirass\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:22536
+#: doc/guix.texi:24892
 msgid "Owner of the @code{cuirass} process."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:22537
+#: doc/guix.texi:24893
 #, no-wrap
 msgid "@code{group} (default: @code{\"cuirass\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:22539
+#: doc/guix.texi:24895
 msgid "Owner's group of the @code{cuirass} process."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:22540
+#: doc/guix.texi:24896
 #, no-wrap
 msgid "@code{interval} (default: @code{60})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:22543
+#: doc/guix.texi:24899
 msgid "Number of seconds between the poll of the repositories followed by the Cuirass jobs."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:22544
+#: doc/guix.texi:24900
 #, no-wrap
 msgid "@code{database} (default: @code{\"/var/lib/cuirass/cuirass.db\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:22547
+#: doc/guix.texi:24903
 msgid "Location of sqlite database which contains the build results and previously added specifications."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:22548
+#: doc/guix.texi:24904
 #, no-wrap
 msgid "@code{ttl} (default: @code{(* 30 24 3600)})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:22552
+#: doc/guix.texi:24908
 msgid "Specifies the time-to-live (TTL) in seconds of garbage collector roots that are registered for build results.  This means that build results are protected from garbage collection for at least @var{ttl} seconds."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:22553
+#: doc/guix.texi:24909
 #, no-wrap
 msgid "@code{port} (default: @code{8081})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:22555
+#: doc/guix.texi:24911
 msgid "Port number used by the HTTP server."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:22559
+#: doc/guix.texi:24915
 msgid "Listen on the network interface for @var{host}.  The default is to accept connections from localhost."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:22560
+#: doc/guix.texi:24916
 #, no-wrap
 msgid "@code{specifications} (default: @code{#~'()})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:22566
+#: doc/guix.texi:24922
 msgid "A gexp (@pxref{G-Expressions}) that evaluates to a list of specifications, where a specification is an association list (@pxref{Associations Lists,,, guile, GNU Guile Reference Manual}) whose keys are keywords (@code{#:keyword-example}) as shown in the example above."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:22567
+#: doc/guix.texi:24923
 #, no-wrap
 msgid "@code{use-substitutes?} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:22570
+#: doc/guix.texi:24926
 msgid "This allows using substitutes to avoid building every dependencies of a job from source."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:22571 doc/guix.texi:27869
+#: doc/guix.texi:24927 doc/guix.texi:31548
 #, no-wrap
 msgid "@code{one-shot?} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:22573
+#: doc/guix.texi:24929
 msgid "Only evaluate specifications and build derivations once."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:22574
+#: doc/guix.texi:24930
 #, no-wrap
 msgid "@code{fallback?} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:22577
+#: doc/guix.texi:24933
 msgid "When substituting a pre-built binary fails, fall back to building packages locally."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:22580
+#: doc/guix.texi:24936
 msgid "Extra options to pass when running the Cuirass processes."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:22581
+#: doc/guix.texi:24937
 #, no-wrap
 msgid "@code{cuirass} (default: @code{cuirass})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:22583
+#: doc/guix.texi:24939
 msgid "The Cuirass package to use."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:22589
+#: doc/guix.texi:24945
 #, no-wrap
 msgid "tlp"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:22590
+#: doc/guix.texi:24946
 #, no-wrap
 msgid "power management with TLP"
 msgstr ""
 
 #. type: subsubheading
-#: doc/guix.texi:22591
+#: doc/guix.texi:24947
 #, no-wrap
 msgid "TLP daemon"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:22595
+#: doc/guix.texi:24951
 msgid "The @code{(gnu services pm)} module provides a Guix service definition for the Linux power management tool TLP."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:22601
+#: doc/guix.texi:24957
 msgid "TLP enables various powersaving modes in userspace and kernel.  Contrary to @code{upower-service}, it is not a passive, monitoring tool, as it will apply custom settings each time a new power source is detected.  More information can be found at @uref{https://linrunner.de/en/tlp/tlp.html, TLP home page}."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:22602
+#: doc/guix.texi:24958
 #, no-wrap
 msgid "{Scheme Variable} tlp-service-type"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:22606
-msgid "The service type for the TLP tool.  Its value should be a valid TLP configuration (see below).  To use the default settings, simply write:"
+#: doc/guix.texi:24962
+msgid "The service type for the TLP tool.  The default settings are optimised for battery life on most systems, but you can tweak them to your heart's content by adding a valid @code{tlp-configuration}:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:22608
+#: doc/guix.texi:24967
 #, no-wrap
-msgid "(service tlp-service-type)\n"
-msgstr ""
-
-#. type: Plain text
-#: doc/guix.texi:22613
-msgid "By default TLP does not need much configuration but most TLP parameters can be tweaked using @code{tlp-configuration}."
+msgid ""
+"(service tlp-service-type\n"
+"         (tlp-configuration\n"
+"          (cpu-scaling-governor-on-ac (list \"performance\"))\n"
+"          (sched-powersave-on-bat? #t)))\n"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:22619
+#: doc/guix.texi:24975
 msgid "Each parameter definition is preceded by its type; for example, @samp{boolean foo} indicates that the @code{foo} parameter should be specified as a boolean.  Types starting with @code{maybe-} denote parameters that won't show up in TLP config file when their value is @code{'disabled}."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:22629
+#: doc/guix.texi:24985
 msgid "Available @code{tlp-configuration} fields are:"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22630
+#: doc/guix.texi:24986
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} package tlp"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22632
+#: doc/guix.texi:24988
 msgid "The TLP package."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22635
+#: doc/guix.texi:24991
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} boolean tlp-enable?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22637
+#: doc/guix.texi:24993
 msgid "Set to true if you wish to enable TLP."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22642
+#: doc/guix.texi:24998
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} string tlp-default-mode"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22645
+#: doc/guix.texi:25001
 msgid "Default mode when no power supply can be detected.  Alternatives are AC and BAT."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22647
+#: doc/guix.texi:25003
 msgid "Defaults to @samp{\"AC\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22650
+#: doc/guix.texi:25006
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} non-negative-integer disk-idle-secs-on-ac"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22653
+#: doc/guix.texi:25009
 msgid "Number of seconds Linux kernel has to wait after the disk goes idle, before syncing on AC."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22658
+#: doc/guix.texi:25014
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} non-negative-integer disk-idle-secs-on-bat"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22660
+#: doc/guix.texi:25016
 msgid "Same as @code{disk-idle-ac} but on BAT mode."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22662
+#: doc/guix.texi:25018
 msgid "Defaults to @samp{2}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22665
+#: doc/guix.texi:25021
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} non-negative-integer max-lost-work-secs-on-ac"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22667
+#: doc/guix.texi:25023
 msgid "Dirty pages flushing periodicity, expressed in seconds."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22669 doc/guix.texi:22892 doc/guix.texi:24281
-#: doc/guix.texi:24289
+#: doc/guix.texi:25025 doc/guix.texi:25248 doc/guix.texi:27470
+#: doc/guix.texi:27478
 msgid "Defaults to @samp{15}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22672
+#: doc/guix.texi:25028
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} non-negative-integer max-lost-work-secs-on-bat"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22674
+#: doc/guix.texi:25030
 msgid "Same as @code{max-lost-work-secs-on-ac} but on BAT mode."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22676
+#: doc/guix.texi:25032
 msgid "Defaults to @samp{60}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22679
+#: doc/guix.texi:25035
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-space-separated-string-list cpu-scaling-governor-on-ac"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22683
+#: doc/guix.texi:25039
 msgid "CPU frequency scaling governor on AC mode.  With intel_pstate driver, alternatives are powersave and performance.  With acpi-cpufreq driver, alternatives are ondemand, powersave, performance and conservative."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22688
+#: doc/guix.texi:25044
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-space-separated-string-list cpu-scaling-governor-on-bat"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22690
+#: doc/guix.texi:25046
 msgid "Same as @code{cpu-scaling-governor-on-ac} but on BAT mode."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22695
+#: doc/guix.texi:25051
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-scaling-min-freq-on-ac"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22697
+#: doc/guix.texi:25053
 msgid "Set the min available frequency for the scaling governor on AC."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22702
+#: doc/guix.texi:25058
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-scaling-max-freq-on-ac"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22704
+#: doc/guix.texi:25060
 msgid "Set the max available frequency for the scaling governor on AC."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22709
+#: doc/guix.texi:25065
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-scaling-min-freq-on-bat"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22711
+#: doc/guix.texi:25067
 msgid "Set the min available frequency for the scaling governor on BAT."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22716
+#: doc/guix.texi:25072
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-scaling-max-freq-on-bat"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22718
+#: doc/guix.texi:25074
 msgid "Set the max available frequency for the scaling governor on BAT."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22723
+#: doc/guix.texi:25079
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-min-perf-on-ac"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22726
+#: doc/guix.texi:25082
 msgid "Limit the min P-state to control the power dissipation of the CPU, in AC mode.  Values are stated as a percentage of the available performance."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22731
+#: doc/guix.texi:25087
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-max-perf-on-ac"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22734
+#: doc/guix.texi:25090
 msgid "Limit the max P-state to control the power dissipation of the CPU, in AC mode.  Values are stated as a percentage of the available performance."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22739
+#: doc/guix.texi:25095
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-min-perf-on-bat"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22741
+#: doc/guix.texi:25097
 msgid "Same as @code{cpu-min-perf-on-ac} on BAT mode."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22746
+#: doc/guix.texi:25102
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-max-perf-on-bat"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22748
+#: doc/guix.texi:25104
 msgid "Same as @code{cpu-max-perf-on-ac} on BAT mode."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22753
+#: doc/guix.texi:25109
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-boolean cpu-boost-on-ac?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22755
+#: doc/guix.texi:25111
 msgid "Enable CPU turbo boost feature on AC mode."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22760
+#: doc/guix.texi:25116
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-boolean cpu-boost-on-bat?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22762
+#: doc/guix.texi:25118
 msgid "Same as @code{cpu-boost-on-ac?} on BAT mode."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22767
+#: doc/guix.texi:25123
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} boolean sched-powersave-on-ac?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22770
+#: doc/guix.texi:25126
 msgid "Allow Linux kernel to minimize the number of CPU cores/hyper-threads used under light load conditions."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22775
+#: doc/guix.texi:25131
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} boolean sched-powersave-on-bat?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22777
+#: doc/guix.texi:25133
 msgid "Same as @code{sched-powersave-on-ac?} but on BAT mode."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22782
+#: doc/guix.texi:25138
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} boolean nmi-watchdog?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22784
+#: doc/guix.texi:25140
 msgid "Enable Linux kernel NMI watchdog."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22789
+#: doc/guix.texi:25145
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-string phc-controls"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22792
+#: doc/guix.texi:25148
 msgid "For Linux kernels with PHC patch applied, change CPU voltages.  An example value would be @samp{\"F:V F:V F:V F:V\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22797
+#: doc/guix.texi:25153
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} string energy-perf-policy-on-ac"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22800
+#: doc/guix.texi:25156
 msgid "Set CPU performance versus energy saving policy on AC.  Alternatives are performance, normal, powersave."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22802 doc/guix.texi:22900 doc/guix.texi:22930
+#: doc/guix.texi:25158 doc/guix.texi:25256 doc/guix.texi:25286
 msgid "Defaults to @samp{\"performance\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22805
+#: doc/guix.texi:25161
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} string energy-perf-policy-on-bat"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22807
+#: doc/guix.texi:25163
 msgid "Same as @code{energy-perf-policy-ac} but on BAT mode."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22809 doc/guix.texi:22907
+#: doc/guix.texi:25165 doc/guix.texi:25263
 msgid "Defaults to @samp{\"powersave\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22812
+#: doc/guix.texi:25168
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} space-separated-string-list disks-devices"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22814
+#: doc/guix.texi:25170
 msgid "Hard disk devices."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22817
+#: doc/guix.texi:25173
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} space-separated-string-list disk-apm-level-on-ac"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22819
+#: doc/guix.texi:25175
 msgid "Hard disk advanced power management level."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22822
+#: doc/guix.texi:25178
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} space-separated-string-list disk-apm-level-on-bat"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22824
+#: doc/guix.texi:25180
 msgid "Same as @code{disk-apm-bat} but on BAT mode."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22827
+#: doc/guix.texi:25183
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-space-separated-string-list disk-spindown-timeout-on-ac"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22830
+#: doc/guix.texi:25186
 msgid "Hard disk spin down timeout.  One value has to be specified for each declared hard disk."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22835
+#: doc/guix.texi:25191
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-space-separated-string-list disk-spindown-timeout-on-bat"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22837
+#: doc/guix.texi:25193
 msgid "Same as @code{disk-spindown-timeout-on-ac} but on BAT mode."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22842
+#: doc/guix.texi:25198
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-space-separated-string-list disk-iosched"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22846
+#: doc/guix.texi:25202
 msgid "Select IO scheduler for disk devices.  One value has to be specified for each declared hard disk.  Example alternatives are cfq, deadline and noop."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22851
+#: doc/guix.texi:25207
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} string sata-linkpwr-on-ac"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22854
+#: doc/guix.texi:25210
 msgid "SATA aggressive link power management (ALPM) level.  Alternatives are min_power, medium_power, max_performance."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22856
+#: doc/guix.texi:25212
 msgid "Defaults to @samp{\"max_performance\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22859
+#: doc/guix.texi:25215
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} string sata-linkpwr-on-bat"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22861
+#: doc/guix.texi:25217
 msgid "Same as @code{sata-linkpwr-ac} but on BAT mode."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22863
+#: doc/guix.texi:25219
 msgid "Defaults to @samp{\"min_power\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22866
+#: doc/guix.texi:25222
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-string sata-linkpwr-blacklist"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22868
+#: doc/guix.texi:25224
 msgid "Exclude specified SATA host devices for link power management."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22873
+#: doc/guix.texi:25229
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-on-off-boolean ahci-runtime-pm-on-ac?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22876
+#: doc/guix.texi:25232
 msgid "Enable Runtime Power Management for AHCI controller and disks on AC mode."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22881
+#: doc/guix.texi:25237
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-on-off-boolean ahci-runtime-pm-on-bat?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22883
+#: doc/guix.texi:25239
 msgid "Same as @code{ahci-runtime-pm-on-ac} on BAT mode."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22888
+#: doc/guix.texi:25244
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} non-negative-integer ahci-runtime-pm-timeout"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22890
+#: doc/guix.texi:25246
 msgid "Seconds of inactivity before disk is suspended."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22895
+#: doc/guix.texi:25251
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} string pcie-aspm-on-ac"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22898
+#: doc/guix.texi:25254
 msgid "PCI Express Active State Power Management level.  Alternatives are default, performance, powersave."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22903
+#: doc/guix.texi:25259
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} string pcie-aspm-on-bat"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22905
+#: doc/guix.texi:25261
 msgid "Same as @code{pcie-aspm-ac} but on BAT mode."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22910
+#: doc/guix.texi:25266
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} string radeon-power-profile-on-ac"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22913
+#: doc/guix.texi:25269
 msgid "Radeon graphics clock speed level.  Alternatives are low, mid, high, auto, default."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22915
+#: doc/guix.texi:25271
 msgid "Defaults to @samp{\"high\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22918
+#: doc/guix.texi:25274
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} string radeon-power-profile-on-bat"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22920
+#: doc/guix.texi:25276
 msgid "Same as @code{radeon-power-ac} but on BAT mode."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22922
+#: doc/guix.texi:25278
 msgid "Defaults to @samp{\"low\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22925
+#: doc/guix.texi:25281
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} string radeon-dpm-state-on-ac"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22928
+#: doc/guix.texi:25284
 msgid "Radeon dynamic power management method (DPM).  Alternatives are battery, performance."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22933
+#: doc/guix.texi:25289
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} string radeon-dpm-state-on-bat"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22935
+#: doc/guix.texi:25291
 msgid "Same as @code{radeon-dpm-state-ac} but on BAT mode."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22937
+#: doc/guix.texi:25293
 msgid "Defaults to @samp{\"battery\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22940
+#: doc/guix.texi:25296
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} string radeon-dpm-perf-level-on-ac"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22942
+#: doc/guix.texi:25298
 msgid "Radeon DPM performance level.  Alternatives are auto, low, high."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22944 doc/guix.texi:22951 doc/guix.texi:23025
+#: doc/guix.texi:25300 doc/guix.texi:25307 doc/guix.texi:25381
 msgid "Defaults to @samp{\"auto\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22947
+#: doc/guix.texi:25303
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} string radeon-dpm-perf-level-on-bat"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22949
+#: doc/guix.texi:25305
 msgid "Same as @code{radeon-dpm-perf-ac} but on BAT mode."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22954
+#: doc/guix.texi:25310
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} on-off-boolean wifi-pwr-on-ac?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22956
+#: doc/guix.texi:25312
 msgid "Wifi power saving mode."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22961
+#: doc/guix.texi:25317
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} on-off-boolean wifi-pwr-on-bat?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22963
+#: doc/guix.texi:25319
 msgid "Same as @code{wifi-power-ac?} but on BAT mode."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22968
+#: doc/guix.texi:25324
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} y-n-boolean wol-disable?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22970
+#: doc/guix.texi:25326
 msgid "Disable wake on LAN."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22975
+#: doc/guix.texi:25331
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} non-negative-integer sound-power-save-on-ac"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22978
+#: doc/guix.texi:25334
 msgid "Timeout duration in seconds before activating audio power saving on Intel HDA and AC97 devices.  A value of 0 disables power saving."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22983
+#: doc/guix.texi:25339
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} non-negative-integer sound-power-save-on-bat"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22985
+#: doc/guix.texi:25341
 msgid "Same as @code{sound-powersave-ac} but on BAT mode."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22990
+#: doc/guix.texi:25346
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} y-n-boolean sound-power-save-controller?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22992
+#: doc/guix.texi:25348
 msgid "Disable controller in powersaving mode on Intel HDA devices."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:22997
+#: doc/guix.texi:25353
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} boolean bay-poweroff-on-bat?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23001
+#: doc/guix.texi:25357
 msgid "Enable optical drive in UltraBay/MediaBay on BAT mode.  Drive can be powered on again by releasing (and reinserting) the eject lever or by pressing the disc eject button on newer models."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23006
+#: doc/guix.texi:25362
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} string bay-device"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23008
+#: doc/guix.texi:25364
 msgid "Name of the optical drive device to power off."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23010
+#: doc/guix.texi:25366
 msgid "Defaults to @samp{\"sr0\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23013
+#: doc/guix.texi:25369
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} string runtime-pm-on-ac"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23016
+#: doc/guix.texi:25372
 msgid "Runtime Power Management for PCI(e) bus devices.  Alternatives are on and auto."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23018
+#: doc/guix.texi:25374
 msgid "Defaults to @samp{\"on\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23021
+#: doc/guix.texi:25377
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} string runtime-pm-on-bat"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23023
+#: doc/guix.texi:25379
 msgid "Same as @code{runtime-pm-ac} but on BAT mode."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23028
+#: doc/guix.texi:25384
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} boolean runtime-pm-all?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23031
+#: doc/guix.texi:25387
 msgid "Runtime Power Management for all PCI(e) bus devices, except blacklisted ones."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23036
+#: doc/guix.texi:25392
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-space-separated-string-list runtime-pm-blacklist"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23038
+#: doc/guix.texi:25394
 msgid "Exclude specified PCI(e) device addresses from Runtime Power Management."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23043
+#: doc/guix.texi:25399
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} space-separated-string-list runtime-pm-driver-blacklist"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23046
+#: doc/guix.texi:25402
 msgid "Exclude PCI(e) devices assigned to the specified drivers from Runtime Power Management."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23049
+#: doc/guix.texi:25405
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} boolean usb-autosuspend?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23051
+#: doc/guix.texi:25407
 msgid "Enable USB autosuspend feature."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23056
+#: doc/guix.texi:25412
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-string usb-blacklist"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23058
+#: doc/guix.texi:25414
 msgid "Exclude specified devices from USB autosuspend."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23063
+#: doc/guix.texi:25419
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} boolean usb-blacklist-wwan?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23065
+#: doc/guix.texi:25421
 msgid "Exclude WWAN devices from USB autosuspend."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23070
+#: doc/guix.texi:25426
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-string usb-whitelist"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23073
+#: doc/guix.texi:25429
 msgid "Include specified devices into USB autosuspend, even if they are already excluded by the driver or via @code{usb-blacklist-wwan?}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23078
+#: doc/guix.texi:25434
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-boolean usb-autosuspend-disable-on-shutdown?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23080
+#: doc/guix.texi:25436
 msgid "Enable USB autosuspend before shutdown."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23085
+#: doc/guix.texi:25441
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} boolean restore-device-state-on-startup?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23088
+#: doc/guix.texi:25444
 msgid "Restore radio device state (bluetooth, wifi, wwan) from previous shutdown on system startup."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:23093
+#: doc/guix.texi:25449
 #, no-wrap
 msgid "thermald"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:23094
+#: doc/guix.texi:25450
 #, no-wrap
 msgid "CPU frequency scaling with thermald"
 msgstr ""
 
 #. type: subsubheading
-#: doc/guix.texi:23095
+#: doc/guix.texi:25451
 #, no-wrap
 msgid "Thermald daemon"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:23099
+#: doc/guix.texi:25455
 msgid "The @code{(gnu services pm)} module provides an interface to thermald, a CPU frequency scaling service which helps prevent overheating."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:23100
+#: doc/guix.texi:25456
 #, no-wrap
 msgid "{Scheme Variable} thermald-service-type"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:23105
+#: doc/guix.texi:25461
 msgid "This is the service type for @uref{https://01.org/linux-thermal-daemon/, thermald}, the Linux Thermal Daemon, which is responsible for controlling the thermal state of processors and preventing overheating."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:23107
+#: doc/guix.texi:25463
 #, no-wrap
 msgid "{Data Type} thermald-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:23109
+#: doc/guix.texi:25465
 msgid "Data type representing the configuration of @code{thermald-service-type}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:23111
+#: doc/guix.texi:25467
 #, no-wrap
 msgid "@code{ignore-cpuid-check?} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:23113
+#: doc/guix.texi:25469
 msgid "Ignore cpuid check for supported CPU models."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:23114
+#: doc/guix.texi:25470
 #, no-wrap
 msgid "@code{thermald} (default: @var{thermald})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:23116
+#: doc/guix.texi:25472
 msgid "Package object of thermald."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:23125
+#: doc/guix.texi:25481
 msgid "The @code{(gnu services audio)} module provides a service to start MPD (the Music Player Daemon)."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:23126
+#: doc/guix.texi:25482
 #, no-wrap
 msgid "mpd"
 msgstr ""
 
 #. type: subsubheading
-#: doc/guix.texi:23127
+#: doc/guix.texi:25483
 #, no-wrap
 msgid "Music Player Daemon"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:23132
+#: doc/guix.texi:25488
 msgid "The Music Player Daemon (MPD) is a service that can play music while being controlled from the local machine or over the network by a variety of clients."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:23135
+#: doc/guix.texi:25491
 msgid "The following example shows how one might run @code{mpd} as user @code{\"bob\"} on port @code{6666}.  It uses pulseaudio for output."
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:23141
+#: doc/guix.texi:25497
 #, no-wrap
 msgid ""
 "(service mpd-service-type\n"
@@ -42773,228 +47280,221 @@ msgid ""
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:23143
+#: doc/guix.texi:25499
 #, no-wrap
 msgid "{Scheme Variable} mpd-service-type"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:23145
+#: doc/guix.texi:25501
 msgid "The service type for @command{mpd}"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:23147
+#: doc/guix.texi:25503
 #, no-wrap
 msgid "{Data Type} mpd-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:23149
+#: doc/guix.texi:25505
 msgid "Data type representing the configuration of @command{mpd}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:23151
+#: doc/guix.texi:25507
 #, no-wrap
 msgid "@code{user} (default: @code{\"mpd\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:23153
+#: doc/guix.texi:25509
 msgid "The user to run mpd as."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:23154
+#: doc/guix.texi:25510
 #, no-wrap
 msgid "@code{music-dir} (default: @code{\"~/Music\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:23156
+#: doc/guix.texi:25512
 msgid "The directory to scan for music files."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:23157
+#: doc/guix.texi:25513
 #, no-wrap
 msgid "@code{playlist-dir} (default: @code{\"~/.mpd/playlists\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:23159
+#: doc/guix.texi:25515
 msgid "The directory to store playlists."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:23160
+#: doc/guix.texi:25516
 #, no-wrap
 msgid "@code{db-file} (default: @code{\"~/.mpd/tag_cache\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:23162
+#: doc/guix.texi:25518
 msgid "The location of the music database."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:23163
+#: doc/guix.texi:25519
 #, no-wrap
 msgid "@code{state-file} (default: @code{\"~/.mpd/state\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:23165
+#: doc/guix.texi:25521
 msgid "The location of the file that stores current MPD's state."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:23166
+#: doc/guix.texi:25522
 #, no-wrap
 msgid "@code{sticker-file} (default: @code{\"~/.mpd/sticker.sql\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:23168
+#: doc/guix.texi:25524
 msgid "The location of the sticker database."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:23169
+#: doc/guix.texi:25525
 #, no-wrap
 msgid "@code{port} (default: @code{\"6600\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:23171
+#: doc/guix.texi:25527
 msgid "The port to run mpd on."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:23172
+#: doc/guix.texi:25528
 #, no-wrap
 msgid "@code{address} (default: @code{\"any\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:23175
+#: doc/guix.texi:25531
 msgid "The address that mpd will bind to.  To use a Unix domain socket, an absolute path can be specified here."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:23176
+#: doc/guix.texi:25532
 #, fuzzy, no-wrap
 #| msgid "@code{features} (default: @code{'()})"
 msgid "@code{outputs} (default: @code{\"(list (mpd-output))\"})"
 msgstr "@code{features} (default: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:23178
+#: doc/guix.texi:25534
 msgid "The audio outputs that MPD can use.  By default this is a single output using pulseaudio."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:23182
+#: doc/guix.texi:25538
 #, no-wrap
 msgid "{Data Type} mpd-output"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:23184
+#: doc/guix.texi:25540
 msgid "Data type representing an @command{mpd} audio output."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:23186
+#: doc/guix.texi:25542
 #, fuzzy, no-wrap
 #| msgid "@code{port} (default: @code{22})"
 msgid "@code{name} (default: @code{\"MPD\"})"
 msgstr "@code{port} (default: @code{22})"
 
 #. type: table
-#: doc/guix.texi:23188
+#: doc/guix.texi:25544
 msgid "The name of the audio output."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:23189
+#: doc/guix.texi:25545
 #, fuzzy, no-wrap
 #| msgid "@code{port} (default: @code{22})"
 msgid "@code{type} (default: @code{\"pulse\"})"
 msgstr "@code{port} (default: @code{22})"
 
 #. type: table
-#: doc/guix.texi:23191
+#: doc/guix.texi:25547
 msgid "The type of audio output."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:23192
+#: doc/guix.texi:25548
 #, fuzzy, no-wrap
 #| msgid "@code{speed} (default: @code{1.0})"
 msgid "@code{enabled?} (default: @code{#t})"
 msgstr "@code{speed} (default: @code{1.0})"
 
 #. type: table
-#: doc/guix.texi:23197
+#: doc/guix.texi:25553
 msgid "Specifies whether this audio output is enabled when MPD is started.  By default, all audio outputs are enabled.  This is just the default setting when there is no state file; with a state file, the previous state is restored."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:23198
+#: doc/guix.texi:25554
 #, fuzzy, no-wrap
 #| msgid "@code{port} (default: @code{22})"
 msgid "@code{tags?} (default: @code{#t})"
 msgstr "@code{port} (default: @code{22})"
 
 #. type: table
-#: doc/guix.texi:23202
+#: doc/guix.texi:25558
 msgid "If set to @code{#f}, then MPD will not send tags to this output.  This is only useful for output plugins that can receive tags, for example the @code{httpd} output plugin."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:23203
+#: doc/guix.texi:25559
 #, fuzzy, no-wrap
 #| msgid "@code{port} (default: @code{22})"
 msgid "@code{always-on?} (default: @code{#f})"
 msgstr "@code{port} (default: @code{22})"
 
 #. type: table
-#: doc/guix.texi:23207
+#: doc/guix.texi:25563
 msgid "If set to @code{#t}, then MPD attempts to keep this audio output always open. This may be useful for streaming servers, when you don’t want to disconnect all listeners even when playback is accidentally stopped."
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:23208
+#: doc/guix.texi:25564
 #, no-wrap
 msgid "mixer-type"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:23214
+#: doc/guix.texi:25570
 msgid "This field accepts a symbol that specifies which mixer should be used for this audio output: the @code{hardware} mixer, the @code{software} mixer, the @code{null} mixer (allows setting the volume, but with no effect; this can be used as a trick to implement an external mixer External Mixer) or no mixer (@code{none})."
 msgstr ""
 
-#. type: item
-#: doc/guix.texi:23215
-#, fuzzy, no-wrap
-#| msgid "@code{features} (default: @code{'()})"
-msgid "@code{extra-options} (default: @code{'()\"})"
-msgstr "@code{features} (default: @code{'()})"
-
 #. type: table
-#: doc/guix.texi:23218
+#: doc/guix.texi:25574
 msgid "An association list of option symbols to string values to be appended to the audio output configuration."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:23224
+#: doc/guix.texi:25580
 msgid "The following example shows a configuration of @code{mpd} that provides an HTTP audio streaming output."
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:23236
+#: doc/guix.texi:25592
 #, no-wrap
 msgid ""
 "(service mpd-service-type\n"
@@ -43009,41 +47509,35 @@ msgid ""
 "                        (port    . \"8080\"))))))))\n"
 msgstr ""
 
-#. type: subsection
-#: doc/guix.texi:23240
-#, no-wrap
-msgid "Virtualization services"
-msgstr ""
-
 #. type: Plain text
-#: doc/guix.texi:23245
+#: doc/guix.texi:25601
 msgid "The @code{(gnu services virtualization)} module provides services for the libvirt and virtlog daemons, as well as other virtualization-related services."
 msgstr ""
 
 #. type: subsubheading
-#: doc/guix.texi:23246
+#: doc/guix.texi:25602
 #, no-wrap
 msgid "Libvirt daemon"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:23250
+#: doc/guix.texi:25607
 msgid "@code{libvirtd} is the server side daemon component of the libvirt virtualization management system. This daemon runs on host servers and performs required management tasks for virtualized guests."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:23251
+#: doc/guix.texi:25608
 #, no-wrap
 msgid "{Scheme Variable} libvirt-service-type"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:23254
+#: doc/guix.texi:25611
 msgid "This is the type of the @uref{https://libvirt.org, libvirt daemon}.  Its value must be a @code{libvirt-configuration}."
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:23260
+#: doc/guix.texi:25617
 #, no-wrap
 msgid ""
 "(service libvirt-service-type\n"
@@ -43053,874 +47547,874 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:23265
+#: doc/guix.texi:25622
 msgid "Available @code{libvirt-configuration} fields are:"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23266
+#: doc/guix.texi:25623
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} package libvirt"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23268
+#: doc/guix.texi:25625
 msgid "Libvirt package."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23271
+#: doc/guix.texi:25628
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} boolean listen-tls?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23274
-msgid "Flag listening for secure TLS connections on the public TCP/IP port.  must set @code{listen} for this to have any effect."
+#: doc/guix.texi:25631
+msgid "Flag listening for secure TLS connections on the public TCP/IP port.  You must set @code{listen} for this to have any effect."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23277
+#: doc/guix.texi:25634
 msgid "It is necessary to setup a CA and issue server certificates before using this capability."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23282
+#: doc/guix.texi:25639
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} boolean listen-tcp?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23285
-msgid "Listen for unencrypted TCP connections on the public TCP/IP port.  must set @code{listen} for this to have any effect."
+#: doc/guix.texi:25642
+msgid "Listen for unencrypted TCP connections on the public TCP/IP port.  You must set @code{listen} for this to have any effect."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23289
-msgid "Using the TCP socket requires SASL authentication by default.  Only SASL mechanisms which support data encryption are allowed.  This is DIGEST_MD5 and GSSAPI (Kerberos5)"
+#: doc/guix.texi:25646
+msgid "Using the TCP socket requires SASL authentication by default.  Only SASL mechanisms which support data encryption are allowed.  This is DIGEST_MD5 and GSSAPI (Kerberos5)."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23294
+#: doc/guix.texi:25651
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string tls-port"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23297
-msgid "Port for accepting secure TLS connections This can be a port number, or service name"
+#: doc/guix.texi:25654
+msgid "Port for accepting secure TLS connections.  This can be a port number, or service name."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23299
+#: doc/guix.texi:25656
 msgid "Defaults to @samp{\"16514\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23302
+#: doc/guix.texi:25659
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string tcp-port"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23305
-msgid "Port for accepting insecure TCP connections This can be a port number, or service name"
+#: doc/guix.texi:25662
+msgid "Port for accepting insecure TCP connections.  This can be a port number, or service name."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23307
+#: doc/guix.texi:25664
 msgid "Defaults to @samp{\"16509\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23310
+#: doc/guix.texi:25667
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string listen-addr"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23312
+#: doc/guix.texi:25669
 msgid "IP address or hostname used for client connections."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23314
+#: doc/guix.texi:25671
 msgid "Defaults to @samp{\"0.0.0.0\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23317
+#: doc/guix.texi:25674
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} boolean mdns-adv?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23319
+#: doc/guix.texi:25676
 msgid "Flag toggling mDNS advertisement of the libvirt service."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23322
+#: doc/guix.texi:25679
 msgid "Alternatively can disable for all services on a host by stopping the Avahi daemon."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23327
+#: doc/guix.texi:25684
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string mdns-name"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23330
+#: doc/guix.texi:25687
 msgid "Default mDNS advertisement name.  This must be unique on the immediate broadcast network."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23332
+#: doc/guix.texi:25689
 msgid "Defaults to @samp{\"Virtualization Host <hostname>\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23335
+#: doc/guix.texi:25692
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string unix-sock-group"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23339
+#: doc/guix.texi:25696
 msgid "UNIX domain socket group ownership.  This can be used to allow a 'trusted' set of users access to management capabilities without becoming root."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23344
+#: doc/guix.texi:25701
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string unix-sock-ro-perms"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23347
+#: doc/guix.texi:25704
 msgid "UNIX socket permissions for the R/O socket.  This is used for monitoring VM status only."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23349 doc/guix.texi:23367
+#: doc/guix.texi:25706 doc/guix.texi:25724
 msgid "Defaults to @samp{\"0777\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23352
+#: doc/guix.texi:25709
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string unix-sock-rw-perms"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23356
+#: doc/guix.texi:25713
 msgid "UNIX socket permissions for the R/W socket.  Default allows only root.  If PolicyKit is enabled on the socket, the default will change to allow everyone (eg, 0777)"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23358
+#: doc/guix.texi:25715
 msgid "Defaults to @samp{\"0770\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23361
+#: doc/guix.texi:25718
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string unix-sock-admin-perms"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23365
+#: doc/guix.texi:25722
 msgid "UNIX socket permissions for the admin socket.  Default allows only owner (root), do not change it unless you are sure to whom you are exposing the access to."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23370
+#: doc/guix.texi:25727
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string unix-sock-dir"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23372
+#: doc/guix.texi:25729
 msgid "The directory in which sockets will be found/created."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23374
+#: doc/guix.texi:25731
 msgid "Defaults to @samp{\"/var/run/libvirt\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23377
+#: doc/guix.texi:25734
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string auth-unix-ro"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23380
+#: doc/guix.texi:25737
 msgid "Authentication scheme for UNIX read-only sockets.  By default socket permissions allow anyone to connect"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23382 doc/guix.texi:23391
+#: doc/guix.texi:25739 doc/guix.texi:25748
 msgid "Defaults to @samp{\"polkit\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23385
+#: doc/guix.texi:25742
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string auth-unix-rw"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23389
+#: doc/guix.texi:25746
 msgid "Authentication scheme for UNIX read-write sockets.  By default socket permissions only allow root.  If PolicyKit support was compiled into libvirt, the default will be to use 'polkit' auth."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23394
+#: doc/guix.texi:25751
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string auth-tcp"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23398
+#: doc/guix.texi:25755
 msgid "Authentication scheme for TCP sockets.  If you don't enable SASL, then all TCP traffic is cleartext.  Don't do this outside of a dev/test scenario."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23400
+#: doc/guix.texi:25757
 msgid "Defaults to @samp{\"sasl\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23403
+#: doc/guix.texi:25760
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string auth-tls"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23407
+#: doc/guix.texi:25764
 msgid "Authentication scheme for TLS sockets.  TLS sockets already have encryption provided by the TLS layer, and limited authentication is done by certificates."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23410
+#: doc/guix.texi:25767
 msgid "It is possible to make use of any SASL authentication mechanism as well, by using 'sasl' for this option"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23412
+#: doc/guix.texi:25769
 msgid "Defaults to @samp{\"none\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23415
+#: doc/guix.texi:25772
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} optional-list access-drivers"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23417
+#: doc/guix.texi:25774
 msgid "API access control scheme."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23420
+#: doc/guix.texi:25777
 msgid "By default an authenticated user is allowed access to all APIs.  Access drivers can place restrictions on this."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23425
+#: doc/guix.texi:25782
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string key-file"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23428
+#: doc/guix.texi:25785
 msgid "Server key file path.  If set to an empty string, then no private key is loaded."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23433
+#: doc/guix.texi:25790
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string cert-file"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23436
+#: doc/guix.texi:25793
 msgid "Server key file path.  If set to an empty string, then no certificate is loaded."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23441
+#: doc/guix.texi:25798
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string ca-file"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23444
+#: doc/guix.texi:25801
 msgid "Server key file path.  If set to an empty string, then no CA certificate is loaded."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23449
+#: doc/guix.texi:25806
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string crl-file"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23452
+#: doc/guix.texi:25809
 msgid "Certificate revocation list path.  If set to an empty string, then no CRL is loaded."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23457
+#: doc/guix.texi:25814
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} boolean tls-no-sanity-cert"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23459
+#: doc/guix.texi:25816
 msgid "Disable verification of our own server certificates."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23462
+#: doc/guix.texi:25819
 msgid "When libvirtd starts it performs some sanity checks against its own certificates."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23467
+#: doc/guix.texi:25824
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} boolean tls-no-verify-cert"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23469
+#: doc/guix.texi:25826
 msgid "Disable verification of client certificates."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23473
+#: doc/guix.texi:25830
 msgid "Client certificate verification is the primary authentication mechanism.  Any client which does not present a certificate signed by the CA will be rejected."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23478
+#: doc/guix.texi:25835
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} optional-list tls-allowed-dn-list"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23480
+#: doc/guix.texi:25837
 msgid "Whitelist of allowed x509 Distinguished Name."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23485
+#: doc/guix.texi:25842
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} optional-list sasl-allowed-usernames"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23488
+#: doc/guix.texi:25845
 msgid "Whitelist of allowed SASL usernames.  The format for username depends on the SASL authentication mechanism."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23493
+#: doc/guix.texi:25850
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string tls-priority"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23497
-msgid "Override the compile time default TLS priority string.  The default is usually \"NORMAL\" unless overridden at build time.  Only set this is it is desired for libvirt to deviate from the global default settings."
+#: doc/guix.texi:25854
+msgid "Override the compile time default TLS priority string.  The default is usually @samp{\"NORMAL\"} unless overridden at build time.  Only set this is it is desired for libvirt to deviate from the global default settings."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23499
+#: doc/guix.texi:25856
 msgid "Defaults to @samp{\"NORMAL\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23502
+#: doc/guix.texi:25859
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer max-clients"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23505 doc/guix.texi:23928
+#: doc/guix.texi:25862 doc/guix.texi:26286
 msgid "Maximum number of concurrent client connections to allow over all sockets combined."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23507
+#: doc/guix.texi:25864
 msgid "Defaults to @samp{5000}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23510
+#: doc/guix.texi:25867
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer max-queued-clients"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23514
+#: doc/guix.texi:25871
 msgid "Maximum length of queue of connections waiting to be accepted by the daemon.  Note, that some protocols supporting retransmission may obey this so that a later reattempt at connection succeeds."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23519
+#: doc/guix.texi:25876
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer max-anonymous-clients"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23522
+#: doc/guix.texi:25879
 msgid "Maximum length of queue of accepted but not yet authenticated clients.  Set this to zero to turn this feature off"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23524 doc/guix.texi:23542 doc/guix.texi:23558
+#: doc/guix.texi:25881 doc/guix.texi:25899 doc/guix.texi:25915
 msgid "Defaults to @samp{20}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23527
+#: doc/guix.texi:25884
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer min-workers"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23529
+#: doc/guix.texi:25886
 msgid "Number of workers to start up initially."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23534
+#: doc/guix.texi:25891
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer max-workers"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23536
+#: doc/guix.texi:25893
 msgid "Maximum number of worker threads."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23540
+#: doc/guix.texi:25897
 msgid "If the number of active clients exceeds @code{min-workers}, then more threads are spawned, up to max_workers limit.  Typically you'd want max_workers to equal maximum number of clients allowed."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23545
+#: doc/guix.texi:25902
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer prio-workers"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23549
+#: doc/guix.texi:25906
 msgid "Number of priority workers.  If all workers from above pool are stuck, some calls marked as high priority (notably domainDestroy) can be executed in this pool."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23554
+#: doc/guix.texi:25911
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer max-requests"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23556
+#: doc/guix.texi:25913
 msgid "Total global limit on concurrent RPC calls."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23561
+#: doc/guix.texi:25918
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer max-client-requests"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23565
+#: doc/guix.texi:25922
 msgid "Limit on concurrent requests from a single client connection.  To avoid one client monopolizing the server this should be a small fraction of the global max_requests and max_workers parameter."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23570
+#: doc/guix.texi:25927
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer admin-min-workers"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23572
+#: doc/guix.texi:25929
 msgid "Same as @code{min-workers} but for the admin interface."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23577
+#: doc/guix.texi:25934
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer admin-max-workers"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23579
+#: doc/guix.texi:25936
 msgid "Same as @code{max-workers} but for the admin interface."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23584
+#: doc/guix.texi:25941
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer admin-max-clients"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23586
+#: doc/guix.texi:25943
 msgid "Same as @code{max-clients} but for the admin interface."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23591
+#: doc/guix.texi:25948
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer admin-max-queued-clients"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23593
+#: doc/guix.texi:25950
 msgid "Same as @code{max-queued-clients} but for the admin interface."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23598
+#: doc/guix.texi:25955
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer admin-max-client-requests"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23600
+#: doc/guix.texi:25957
 msgid "Same as @code{max-client-requests} but for the admin interface."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23605
+#: doc/guix.texi:25962
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer log-level"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23607 doc/guix.texi:23830
+#: doc/guix.texi:25964 doc/guix.texi:26188
 msgid "Logging level.  4 errors, 3 warnings, 2 information, 1 debug."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23612
+#: doc/guix.texi:25969
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string log-filters"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23614 doc/guix.texi:23837
+#: doc/guix.texi:25971 doc/guix.texi:26195
 msgid "Logging filters."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23617 doc/guix.texi:23840
-msgid "A filter allows to select a different logging level for a given category of logs The format for a filter is one of:"
+#: doc/guix.texi:25974
+msgid "A filter allows to select a different logging level for a given category of logs.  The format for a filter is one of:"
 msgstr ""
 
 #. type: itemize
-#: doc/guix.texi:23621 doc/guix.texi:23844
+#: doc/guix.texi:25978 doc/guix.texi:26202
 msgid "x:name"
 msgstr ""
 
 #. type: itemize
-#: doc/guix.texi:23624 doc/guix.texi:23847
+#: doc/guix.texi:25981 doc/guix.texi:26205
 msgid "x:+name"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23634 doc/guix.texi:23857
-msgid "where @code{name} is a string which is matched against the category given in the @code{VIR_LOG_INIT()} at the top of each libvirt source file, e.g., \"remote\", \"qemu\", or \"util.json\" (the name in the filter can be a substring of the full category name, in order to match multiple similar categories), the optional \"+\" prefix tells libvirt to log stack trace for each message matching name, and @code{x} is the minimal level where matching messages should be logged:"
+#: doc/guix.texi:25992
+msgid "where @code{name} is a string which is matched against the category given in the @code{VIR_LOG_INIT()} at the top of each libvirt source file, e.g., @samp{\"remote\"}, @samp{\"qemu\"}, or @samp{\"util.json\"} (the name in the filter can be a substring of the full category name, in order to match multiple similar categories), the optional @samp{\"+\"} prefix tells libvirt to log stack trace for each message matching name, and @code{x} is the minimal level where matching messages should be logged:"
 msgstr ""
 
 #. type: itemize
-#: doc/guix.texi:23638 doc/guix.texi:23683 doc/guix.texi:23861
-#: doc/guix.texi:23906
+#: doc/guix.texi:25996 doc/guix.texi:26041 doc/guix.texi:26219
+#: doc/guix.texi:26264
 msgid "1: DEBUG"
 msgstr ""
 
 #. type: itemize
-#: doc/guix.texi:23641 doc/guix.texi:23686 doc/guix.texi:23864
-#: doc/guix.texi:23909
+#: doc/guix.texi:25999 doc/guix.texi:26044 doc/guix.texi:26222
+#: doc/guix.texi:26267
 msgid "2: INFO"
 msgstr ""
 
 #. type: itemize
-#: doc/guix.texi:23644 doc/guix.texi:23689 doc/guix.texi:23867
-#: doc/guix.texi:23912
+#: doc/guix.texi:26002 doc/guix.texi:26047 doc/guix.texi:26225
+#: doc/guix.texi:26270
 msgid "3: WARNING"
 msgstr ""
 
 #. type: itemize
-#: doc/guix.texi:23647 doc/guix.texi:23692 doc/guix.texi:23870
-#: doc/guix.texi:23915
+#: doc/guix.texi:26005 doc/guix.texi:26050 doc/guix.texi:26228
+#: doc/guix.texi:26273
 msgid "4: ERROR"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23652 doc/guix.texi:23875
+#: doc/guix.texi:26010 doc/guix.texi:26233
 msgid "Multiple filters can be defined in a single filters statement, they just need to be separated by spaces."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23654 doc/guix.texi:23877
+#: doc/guix.texi:26012 doc/guix.texi:26235
 msgid "Defaults to @samp{\"3:remote 4:event\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23657
+#: doc/guix.texi:26015
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string log-outputs"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23659 doc/guix.texi:23882
+#: doc/guix.texi:26017 doc/guix.texi:26240
 msgid "Logging outputs."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23662
+#: doc/guix.texi:26020
 msgid "An output is one of the places to save logging information.  The format for an output can be:"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:23664 doc/guix.texi:23887
+#: doc/guix.texi:26022 doc/guix.texi:26245
 #, no-wrap
 msgid "x:stderr"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:23666 doc/guix.texi:23889
+#: doc/guix.texi:26024 doc/guix.texi:26247
 msgid "output goes to stderr"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:23667 doc/guix.texi:23890
+#: doc/guix.texi:26025 doc/guix.texi:26248
 #, no-wrap
 msgid "x:syslog:name"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:23669 doc/guix.texi:23892
+#: doc/guix.texi:26027 doc/guix.texi:26250
 msgid "use syslog for the output and use the given name as the ident"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:23670 doc/guix.texi:23893
+#: doc/guix.texi:26028 doc/guix.texi:26251
 #, no-wrap
 msgid "x:file:file_path"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:23672 doc/guix.texi:23895
+#: doc/guix.texi:26030 doc/guix.texi:26253
 msgid "output to a file, with the given filepath"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:23673 doc/guix.texi:23896
+#: doc/guix.texi:26031 doc/guix.texi:26254
 #, no-wrap
 msgid "x:journald"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:23675 doc/guix.texi:23898
+#: doc/guix.texi:26033 doc/guix.texi:26256
 msgid "output to journald logging system"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23679 doc/guix.texi:23902
+#: doc/guix.texi:26037 doc/guix.texi:26260
 msgid "In all case the x prefix is the minimal level, acting as a filter"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23697 doc/guix.texi:23920
+#: doc/guix.texi:26055 doc/guix.texi:26278
 msgid "Multiple outputs can be defined, they just need to be separated by spaces."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23699 doc/guix.texi:23922
+#: doc/guix.texi:26057 doc/guix.texi:26280
 msgid "Defaults to @samp{\"3:stderr\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23702
+#: doc/guix.texi:26060
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer audit-level"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23704
+#: doc/guix.texi:26062
 msgid "Allows usage of the auditing subsystem to be altered"
 msgstr ""
 
 #. type: itemize
-#: doc/guix.texi:23708
+#: doc/guix.texi:26066
 msgid "0: disable all auditing"
 msgstr ""
 
 #. type: itemize
-#: doc/guix.texi:23711
+#: doc/guix.texi:26069
 msgid "1: enable auditing, only if enabled on host"
 msgstr ""
 
 #. type: itemize
-#: doc/guix.texi:23714
+#: doc/guix.texi:26072
 msgid "2: enable auditing, and exit if disabled on host."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23721
+#: doc/guix.texi:26079
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} boolean audit-logging"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23723
+#: doc/guix.texi:26081
 msgid "Send audit messages via libvirt logging infrastructure."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23728
+#: doc/guix.texi:26086
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} optional-string host-uuid"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23730
+#: doc/guix.texi:26088
 msgid "Host UUID.  UUID must not have all digits be the same."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23735
+#: doc/guix.texi:26093
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string host-uuid-source"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23737
+#: doc/guix.texi:26095
 msgid "Source to read host UUID."
 msgstr ""
 
 #. type: itemize
-#: doc/guix.texi:23741
+#: doc/guix.texi:26099
 msgid "@code{smbios}: fetch the UUID from @code{dmidecode -s system-uuid}"
 msgstr ""
 
 #. type: itemize
-#: doc/guix.texi:23744
+#: doc/guix.texi:26102
 msgid "@code{machine-id}: fetch the UUID from @code{/etc/machine-id}"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23749
+#: doc/guix.texi:26107
 msgid "If @code{dmidecode} does not provide a valid UUID a temporary UUID will be generated."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23751
+#: doc/guix.texi:26109
 msgid "Defaults to @samp{\"smbios\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23754
+#: doc/guix.texi:26112
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer keepalive-interval"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23759
+#: doc/guix.texi:26117
 msgid "A keepalive message is sent to a client after @code{keepalive_interval} seconds of inactivity to check if the client is still responding.  If set to -1, libvirtd will never send keepalive requests; however clients can still send them and the daemon will send responses."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23764
+#: doc/guix.texi:26122
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer keepalive-count"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23768
+#: doc/guix.texi:26126
 msgid "Maximum number of keepalive messages that are allowed to be sent to the client without getting any response before the connection is considered broken."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23775
+#: doc/guix.texi:26133
 msgid "In other words, the connection is automatically closed approximately after @code{keepalive_interval * (keepalive_count + 1)} seconds since the last message received from the client.  When @code{keepalive-count} is set to 0, connections will be automatically closed after @code{keepalive-interval} seconds of inactivity without sending any keepalive messages."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23780
+#: doc/guix.texi:26138
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer admin-keepalive-interval"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23782 doc/guix.texi:23789
+#: doc/guix.texi:26140 doc/guix.texi:26147
 msgid "Same as above but for admin interface."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23787
+#: doc/guix.texi:26145
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer admin-keepalive-count"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23794
+#: doc/guix.texi:26152
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer ovs-timeout"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23796
+#: doc/guix.texi:26154
 msgid "Timeout for Open vSwitch calls."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23800
+#: doc/guix.texi:26158
 msgid "The @code{ovs-vsctl} utility is used for the configuration and its timeout option is set by default to 5 seconds to avoid potential infinite waits blocking libvirt."
 msgstr ""
 
 #. type: subsubheading
-#: doc/guix.texi:23807
+#: doc/guix.texi:26165
 #, no-wrap
 msgid "Virtlog daemon"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:23810
+#: doc/guix.texi:26168
 msgid "The virtlogd service is a server side daemon component of libvirt that is used to manage logs from virtual machine consoles."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:23816
+#: doc/guix.texi:26174
 msgid "This daemon is not used directly by libvirt client applications, rather it is called on their behalf by @code{libvirtd}. By maintaining the logs in a standalone daemon, the main @code{libvirtd} daemon can be restarted without risk of losing logs. The @code{virtlogd} daemon has the ability to re-exec()  itself upon receiving @code{SIGUSR1}, to allow live upgrades without downtime."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:23817
+#: doc/guix.texi:26175
 #, no-wrap
 msgid "{Scheme Variable} virtlog-service-type"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:23820
+#: doc/guix.texi:26178
 msgid "This is the type of the virtlog daemon.  Its value must be a @code{virtlog-configuration}."
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:23825
+#: doc/guix.texi:26183
 #, no-wrap
 msgid ""
 "(service virtlog-service-type\n"
@@ -43929,159 +48423,183 @@ msgid ""
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23828
+#: doc/guix.texi:26186
 #, no-wrap
 msgid "{@code{virtlog-configuration} parameter} integer log-level"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23835
+#: doc/guix.texi:26193
 #, no-wrap
 msgid "{@code{virtlog-configuration} parameter} string log-filters"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23880
+#: doc/guix.texi:26198
+msgid "A filter allows to select a different logging level for a given category of logs The format for a filter is one of:"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:26215
+msgid "where @code{name} is a string which is matched against the category given in the @code{VIR_LOG_INIT()} at the top of each libvirt source file, e.g., \"remote\", \"qemu\", or \"util.json\" (the name in the filter can be a substring of the full category name, in order to match multiple similar categories), the optional \"+\" prefix tells libvirt to log stack trace for each message matching name, and @code{x} is the minimal level where matching messages should be logged:"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:26238
 #, no-wrap
 msgid "{@code{virtlog-configuration} parameter} string log-outputs"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23885
+#: doc/guix.texi:26243
 msgid "An output is one of the places to save logging information The format for an output can be:"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23925
+#: doc/guix.texi:26283
 #, no-wrap
 msgid "{@code{virtlog-configuration} parameter} integer max-clients"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23930
+#: doc/guix.texi:26288
 msgid "Defaults to @samp{1024}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23933
+#: doc/guix.texi:26291
 #, no-wrap
 msgid "{@code{virtlog-configuration} parameter} integer max-size"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23935
+#: doc/guix.texi:26293
 msgid "Maximum file size before rolling over."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23937
+#: doc/guix.texi:26295
 msgid "Defaults to @samp{2MB}"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23940
+#: doc/guix.texi:26298
 #, no-wrap
 msgid "{@code{virtlog-configuration} parameter} integer max-backups"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23942
+#: doc/guix.texi:26300
 msgid "Maximum number of backup files to keep."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:23944
+#: doc/guix.texi:26302
 msgid "Defaults to @samp{3}"
 msgstr ""
 
+#. type: anchor{#1}
+#: doc/guix.texi:26306
+msgid "transparent-emulation-qemu"
+msgstr ""
+
 #. type: subsubheading
-#: doc/guix.texi:23947
+#: doc/guix.texi:26306
 #, no-wrap
 msgid "Transparent Emulation with QEMU"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:23949
+#: doc/guix.texi:26308
 #, no-wrap
 msgid "emulation"
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:23950
+#: doc/guix.texi:26309
 #, no-wrap
 msgid "binfmt_misc"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:23956
-msgid "@code{qemu-binfmt-service-type} provides support for transparent emulation of program binaries built for different architectures---e.g., it allows you to transparently execute an ARMv7 program on an x86_64 machine.  It achieves this by combining the @uref{https://www.qemu.org, QEMU} emulator and the @code{binfmt_misc} feature of the kernel Linux."
+#: doc/guix.texi:26317
+msgid "@code{qemu-binfmt-service-type} provides support for transparent emulation of program binaries built for different architectures---e.g., it allows you to transparently execute an ARMv7 program on an x86_64 machine.  It achieves this by combining the @uref{https://www.qemu.org, QEMU} emulator and the @code{binfmt_misc} feature of the kernel Linux.  This feature only allows you to emulate GNU/Linux on a different architecture, but see below for GNU/Hurd support."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:23957
+#: doc/guix.texi:26318
 #, no-wrap
 msgid "{Scheme Variable} qemu-binfmt-service-type"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:23962
+#: doc/guix.texi:26323
 msgid "This is the type of the QEMU/binfmt service for transparent emulation.  Its value must be a @code{qemu-binfmt-configuration} object, which specifies the QEMU package to use as well as the architecture we want to emulated:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:23967
-#, no-wrap
+#: doc/guix.texi:26328
+#, fuzzy, no-wrap
+#| msgid ""
+#| "(service qemu-binfmt-service-type\n"
+#| " (qemu-binfmt-configuration\n"
+#| "   (platforms (lookup-qemu-platforms \"arm\" \"aarch64\" \"mips64el\"))\n"
+#| "   (guix-support? #t)))\n"
 msgid ""
 "(service qemu-binfmt-service-type\n"
 "         (qemu-binfmt-configuration\n"
-"           (platforms (lookup-qemu-platforms \"arm\" \"aarch64\" \"mips64el\"))))\n"
+"           (platforms (lookup-qemu-platforms \"arm\" \"aarch64\"))))\n"
 msgstr ""
+"(service qemu-binfmt-service-type\n"
+" (qemu-binfmt-configuration\n"
+"   (platforms (lookup-qemu-platforms \"arm\" \"aarch64\" \"mips64el\"))\n"
+"   (guix-support? #t)))\n"
 
 #. type: defvr
-#: doc/guix.texi:23973
+#: doc/guix.texi:26334
 msgid "In this example, we enable transparent emulation for the ARM and aarch64 platforms.  Running @code{herd stop qemu-binfmt} turns it off, and running @code{herd start qemu-binfmt} turns it back on (@pxref{Invoking herd, the @command{herd} command,, shepherd, The GNU Shepherd Manual})."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:23975
+#: doc/guix.texi:26336
 #, no-wrap
 msgid "{Data Type} qemu-binfmt-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:23977
+#: doc/guix.texi:26338
 msgid "This is the configuration for the @code{qemu-binfmt} service."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:23979
+#: doc/guix.texi:26340
 #, no-wrap
 msgid "@code{platforms} (default: @code{'()})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:23982
+#: doc/guix.texi:26343
 msgid "The list of emulated QEMU platforms.  Each item must be a @dfn{platform object} as returned by @code{lookup-qemu-platforms} (see below)."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:23983
+#: doc/guix.texi:26344
 #, no-wrap
 msgid "@code{guix-support?} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:23989
-msgid "When it is true, QEMU and all its dependencies are added to the build environment of @command{guix-daemon} (@pxref{Invoking guix-daemon, @code{--chroot-directory} option}).  This allows the @code{binfmt_misc} handlers to be used within the build environment, which in turn means that you can transparently build programs for another architecture."
+#: doc/guix.texi:26350
+msgid "When it is true, QEMU and all its dependencies are added to the build environment of @command{guix-daemon} (@pxref{Invoking guix-daemon, @option{--chroot-directory} option}).  This allows the @code{binfmt_misc} handlers to be used within the build environment, which in turn means that you can transparently build programs for another architecture."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:23992
+#: doc/guix.texi:26353
 msgid "For example, let's suppose you're on an x86_64 machine and you have this service:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:23998
+#: doc/guix.texi:26359
 #, no-wrap
 msgid ""
 "(service qemu-binfmt-service-type\n"
@@ -44091,262 +48609,1796 @@ msgid ""
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:24001
+#: doc/guix.texi:26362
 msgid "You can run:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:24004
+#: doc/guix.texi:26365
 #, no-wrap
 msgid "guix build -s armhf-linux inkscape\n"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:24011
+#: doc/guix.texi:26372
 msgid "and it will build Inkscape for ARMv7 @emph{as if it were a native build}, transparently using QEMU to emulate the ARMv7 CPU.  Pretty handy if you'd like to test a package build for an architecture you don't have access to!"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:24012
+#: doc/guix.texi:26373
 #, no-wrap
 msgid "@code{qemu} (default: @code{qemu})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:24014
+#: doc/guix.texi:26375 doc/guix.texi:26469
 msgid "The QEMU package to use."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:24017
+#: doc/guix.texi:26378
 #, no-wrap
 msgid "{Scheme Procedure} lookup-qemu-platforms @var{platforms}@dots{}"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:24022
+#: doc/guix.texi:26383
 msgid "Return the list of QEMU platform objects corresponding to @var{platforms}@dots{}.  @var{platforms} must be a list of strings corresponding to platform names, such as @code{\"arm\"}, @code{\"sparc\"}, @code{\"mips64el\"}, and so on."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:24024
+#: doc/guix.texi:26385
 #, no-wrap
 msgid "{Scheme Procedure} qemu-platform? @var{obj}"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:24026
+#: doc/guix.texi:26387
 msgid "Return true if @var{obj} is a platform object."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:24028
+#: doc/guix.texi:26389
 #, no-wrap
 msgid "{Scheme Procedure} qemu-platform-name @var{platform}"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:24030
+#: doc/guix.texi:26391
 msgid "Return the name of @var{platform}---a string such as @code{\"arm\"}."
 msgstr ""
 
+#. type: subsubheading
+#: doc/guix.texi:26394
+#, fuzzy, no-wrap
+#| msgid "Installing Guix in a Virtual Machine"
+msgid "The Hurd in a Virtual Machine"
+msgstr "Установка Guix на виртуальную машину (VM)"
+
+#. type: cindex
+#: doc/guix.texi:26397
+#, no-wrap
+msgid "the Hurd"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:26398
+#, no-wrap
+msgid "childhurd"
+msgstr ""
+
 #. type: Plain text
-#: doc/guix.texi:24042
-msgid "The @code{(gnu services version-control)} module provides a service to allow remote access to local Git repositories.  There are three options: the @code{git-daemon-service}, which provides access to repositories via the @code{git://} unsecured TCP-based protocol, extending the @code{nginx} web server to proxy some requests to @code{git-http-backend}, or providing a web interface with @code{cgit-service-type}."
+#: doc/guix.texi:26406
+msgid "Service @code{hurd-vm} provides support for running GNU/Hurd in a virtual machine (VM), a so-called @dfn{childhurd}.  This service is meant to be used on GNU/Linux and the given GNU/Hurd operating system configuration is cross-compiled.  The virtual machine is a Shepherd service that can be referred to by the names @code{hurd-vm} and @code{childhurd} and be controlled with commands such as:"
 msgstr ""
 
-#. type: deffn
-#: doc/guix.texi:24043
+#. type: example
+#: doc/guix.texi:26410
 #, no-wrap
-msgid "{Scheme Procedure} git-daemon-service [#:config (git-daemon-configuration)]"
+msgid ""
+"herd start hurd-vm\n"
+"herd stop childhurd\n"
 msgstr ""
 
-#. type: deffn
-#: doc/guix.texi:24047
-msgid "Return a service that runs @command{git daemon}, a simple TCP server to expose repositories over the Git protocol for anonymous access."
+#. type: Plain text
+#: doc/guix.texi:26414
+msgid "When the service is running, you can view its console by connecting to it with a VNC client, for example with:"
 msgstr ""
 
-#. type: deffn
-#: doc/guix.texi:24053
-msgid "The optional @var{config} argument should be a @code{<git-daemon-configuration>} object, by default it allows read-only access to exported@footnote{By creating the magic file \"git-daemon-export-ok\" in the repository directory.} repositories under @file{/srv/git}."
+#. type: example
+#: doc/guix.texi:26418
+#, no-wrap
+msgid ""
+"guix environment --ad-hoc tigervnc-client -- \\\n"
+"         vncviewer localhost:5900\n"
 msgstr ""
 
-#. type: deftp
-#: doc/guix.texi:24056
+#. type: Plain text
+#: doc/guix.texi:26424
+msgid "The default configuration (see @code{hurd-vm-configuration} below)  spawns a secure shell (SSH) server in your GNU/Hurd system, which QEMU (the virtual machine emulator) redirects to port 10222 on the host.  Thus, you can connect over SSH to the childhurd with:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:26427
 #, no-wrap
-msgid "{Data Type} git-daemon-configuration"
+msgid "ssh root@@localhost -p 10022\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:26436
+msgid "The childhurd is volatile and stateless: it starts with a fresh root file system every time you restart it.  By default though, all the files under @file{/etc/childhurd} on the host are copied as is to the root file system of the childhurd when it boots.  This allows you to initialize ``secrets'' inside the VM: SSH host keys, authorized substitute keys, and so on---see the explanation of @code{secret-root} below."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:26437
+#, fuzzy, no-wrap
+#| msgid "{Scheme Procedure} sane-service-type"
+msgid "{Scheme Variable} hurd-vm-service-type"
+msgstr "{Процедура Scheme} sane-service-type"
+
+#. type: defvr
+#: doc/guix.texi:26443
+msgid "This is the type of the Hurd in a Virtual Machine service.  Its value must be a @code{hurd-vm-configuration} object, which specifies the operating system (@pxref{operating-system Reference}) and the disk size for the Hurd Virtual Machine, the QEMU package to use as well as the options for running it."
+msgstr ""
+
+#. type: lisp
+#: doc/guix.texi:26451
+#, no-wrap
+msgid ""
+"(service hurd-vm-service-type\n"
+"         (hurd-vm-configuration\n"
+"          (disk-size (* 5000 (expt 2 20))) ;5G\n"
+"          (memory-size 1024)))             ;1024MiB\n"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:26455
+msgid "would create a disk image big enough to build GNU@tie{}Hello, with some extra memory."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:24058
-msgid "Data type representing the configuration for @code{git-daemon-service}."
+#: doc/guix.texi:26457
+#, fuzzy, no-wrap
+#| msgid "{Data Type} build-machine"
+msgid "{Data Type} hurd-vm-configuration"
+msgstr "{Тип данных} build-machine"
+
+#. type: deftp
+#: doc/guix.texi:26460
+#, fuzzy
+#| msgid "Manage the operating system configuration."
+msgid "The data type representing the configuration for @code{hurd-vm-service-type}."
+msgstr "Управление конфигурацией операционной системы."
+
+#. type: item
+#: doc/guix.texi:26462
+#, fuzzy, no-wrap
+#| msgid "@code{features} (default: @code{'()})"
+msgid "@code{os} (default: @var{%hurd-vm-operating-system})"
+msgstr "@code{features} (default: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:26466
+msgid "The operating system to instantiate.  This default is bare-bones with a permissive OpenSSH secure shell daemon listening on port 2222 (@pxref{Networking Services, @code{openssh-service-type}})."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:26467
+#, fuzzy, no-wrap
+#| msgid "@code{port} (default: @code{22})"
+msgid "@code{qemu} (default: @code{qemu-minimal})"
+msgstr "@code{port} (default: @code{22})"
+
+#. type: item
+#: doc/guix.texi:26470
+#, fuzzy, no-wrap
+#| msgid "@code{port} (default: @code{22})"
+msgid "@code{image} (default: @var{hurd-vm-disk-image})"
+msgstr "@code{port} (default: @code{22})"
+
+#. type: table
+#: doc/guix.texi:26473
+msgid "The procedure used to build the disk-image built from this configuration."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:24060 doc/guix.texi:24116
+#: doc/guix.texi:26474
+#, fuzzy, no-wrap
+#| msgid "@code{features} (default: @code{'()})"
+msgid "@code{disk-size} (default: @code{'guess})"
+msgstr "@code{features} (default: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:26476
+#, fuzzy
+#| msgid "The license of this manual."
+msgid "The size of the disk image."
+msgstr "Лицензия этого руководства."
+
+#. type: item
+#: doc/guix.texi:26477
+#, fuzzy, no-wrap
+#| msgid "@code{port} (default: @code{22})"
+msgid "@code{memory-size} (default: @code{512})"
+msgstr "@code{port} (default: @code{22})"
+
+#. type: table
+#: doc/guix.texi:26479
+msgid "The memory size of the Virtual Machine in mebibytes."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:26480
+#, fuzzy, no-wrap
+#| msgid "@code{outputs} (default: @code{'(\"out\")})"
+msgid "@code{options} (default: @code{'(\"--snapshot\")})"
+msgstr "@code{outputs} (default: @code{'(\"out\")})"
+
+#. type: table
+#: doc/guix.texi:26482
+msgid "The extra options for running QEMU."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:26487
+msgid "If set, a non-zero positive integer used to parameterize Childhurd instances.  It is appended to the service's name, e.g. @code{childhurd1}."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:26488
+#, fuzzy, no-wrap
+#| msgid "@code{features} (default: @code{'()})"
+msgid "@code{net-options} (default: @var{hurd-vm-net-options})"
+msgstr "@code{features} (default: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:26490
+msgid "The procedure used to produce the list of QEMU networking options."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:26492
+msgid "By default, it produces"
+msgstr ""
+
+#. type: lisp
+#: doc/guix.texi:26499
 #, no-wrap
-msgid "@code{package} (default: @var{git})"
+msgid ""
+"'(\"--device\" \"rtl8139,netdev=net0\"\n"
+"  \"--netdev\" \"user,id=net0\\\n"
+"              ,hostfwd=tcp:127.0.0.1:@var{secrets-port}-:1004\\\n"
+"              ,hostfwd=tcp:127.0.0.1:@var{ssh-port}-:2222\\\n"
+"              ,hostfwd=tcp:127.0.0.1:@var{vnc-port}-:5900\")\n"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:24062 doc/guix.texi:24118
-msgid "Package object of the Git distributed version control system."
+#: doc/guix.texi:26502
+msgid "with forwarded ports:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:26507
+#, no-wrap
+msgid ""
+"@var{secrets-port}: @code{(+ 11004 (* 1000 @var{ID}))}\n"
+"@var{ssh-port}: @code{(+ 10022 (* 1000 @var{ID}))}\n"
+"@var{vnc-port}: @code{(+ 15900 (* 1000 @var{ID}))}\n"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:24063 doc/guix.texi:24122
+#: doc/guix.texi:26509
+#, fuzzy, no-wrap
+#| msgid "@code{private-key} (default: @file{~root/.ssh/id_rsa})"
+msgid "@code{secret-root} (default: @file{/etc/childhurd})"
+msgstr "@code{private-key} (default: @file{~root/.ssh/id_rsa})"
+
+#. type: table
+#: doc/guix.texi:26514
+msgid "The root directory with out-of-band secrets to be installed into the childhurd once it runs.  Childhurds are volatile which means that on every startup, secrets such as the SSH host keys and Guix signing key are recreated."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:26518
+msgid "If the @file{/etc/childhurd} directory does not exist, the @code{secret-service} running in the Childhurd will be sent an empty list of secrets."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:26521
+msgid "By default, the service automatically populates @file{/etc/childhurd} with the following non-volatile secrets, unless they already exist:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:26530
 #, no-wrap
-msgid "@code{export-all?} (default: @var{#f})"
+msgid ""
+"/etc/childhurd/etc/guix/acl\n"
+"/etc/childhurd/etc/guix/signing-key.pub\n"
+"/etc/childhurd/etc/guix/signing-key.sec\n"
+"/etc/childhurd/etc/ssh/ssh_host_ed25519_key\n"
+"/etc/childhurd/etc/ssh/ssh_host_ecdsa_key\n"
+"/etc/childhurd/etc/ssh/ssh_host_ed25519_key.pub\n"
+"/etc/childhurd/etc/ssh/ssh_host_ecdsa_key.pub\n"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:24066
-msgid "Whether to allow access for all Git repositories, even if they do not have the @file{git-daemon-export-ok} file."
+#: doc/guix.texi:26534
+msgid "These files are automatically sent to the guest Hurd VM when it boots, including permissions."
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:26535
+#, fuzzy, no-wrap
+#| msgid "offloading"
+msgid "childhurd, offloading"
+msgstr "разгрузка"
+
+#. type: cindex
+#: doc/guix.texi:26536
+#, fuzzy, no-wrap
+#| msgid "offloading"
+msgid "Hurd, offloading"
+msgstr "разгрузка"
+
+#. type: table
+#: doc/guix.texi:26540
+msgid "Having these files in place means that only a couple of things are missing to allow the host to offload @code{i586-gnu} builds to the childhurd:"
+msgstr ""
+
+#. type: enumerate
+#: doc/guix.texi:26545
+msgid "Authorizing the childhurd's key on the host so that the host accepts build results coming from the childhurd, which can be done like so:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:26549
+#, fuzzy, no-wrap
+#| msgid "# guix archive --authorize < master-public-key.txt\n"
+msgid ""
+"guix archive --authorize < \\\n"
+"  /etc/childhurd/etc/guix/signing-key.pub\n"
+msgstr "# guix archive --authorize < master-public-key.txt\n"
+
+#. type: enumerate
+#: doc/guix.texi:26554
+msgid "Adding the childhurd to @file{/etc/guix/machines.scm} (@pxref{Daemon Offload Setup})."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:26558
+msgid "We're working towards making that happen automatically---get in touch with us at @email{guix-devel@@gnu.org} to discuss it!"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:26565
+msgid "Note that by default the VM image is volatile, i.e., once stopped the contents are lost.  If you want a stateful image instead, override the configuration's @code{image} and @code{options} without the @code{--snapshot} flag using something along these lines:"
 msgstr ""
 
+#. type: lisp
+#: doc/guix.texi:26571
+#, no-wrap
+msgid ""
+"(service hurd-vm-service-type\n"
+"         (hurd-vm-configuration\n"
+"          (image   (const \"/out/of/store/writable/hurd.img\"))\n"
+"          (options '())))\n"
+msgstr ""
+
+#. type: subsubheading
+#: doc/guix.texi:26573
+#, no-wrap
+msgid "Ganeti"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:26575
+#, no-wrap
+msgid "ganeti"
+msgstr ""
+
+#. type: quotation
+#: doc/guix.texi:26582
+msgid "This service is considered experimental.  Configuration options may be changed in a backwards-incompatible manner, and not all features have been thorougly tested.  Users of this service are encouraged to share their experience at @email{guix-devel@@gnu.org}."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:26592
+msgid "Ganeti is a virtual machine management system.  It is designed to keep virtual machines running on a cluster of servers even in the event of hardware failures, and to make maintenance and recovery tasks easy.  It consists of multiple services which are described later in this section.  In addition to the Ganeti service, you will need the OpenSSH service (@pxref{Networking Services, @code{openssh-service-type}}), and update the @file{/etc/hosts} file (@pxref{operating-system Reference, @code{hosts-file}}) with the cluster name and address (or use a DNS server)."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:26597
+msgid "All nodes participating in a Ganeti cluster should have the same Ganeti and @file{/etc/hosts} configuration.  Here is an example configuration for a Ganeti cluster node that supports multiple storage backends, and installs the @code{debootstrap} and @code{guix} @dfn{OS providers}:"
+msgstr ""
+
+#. type: lisp
+#: doc/guix.texi:26607
+#, no-wrap
+msgid ""
+"(use-package-modules virtualization)\n"
+"(use-service-modules base ganeti networking ssh)\n"
+"(operating-system\n"
+"  ;; @dots{}\n"
+"  (host-name \"node1\")\n"
+"  (hosts-file (plain-file \"hosts\" (format #f \"\n"
+"127.0.0.1       localhost\n"
+"::1             localhost\n"
+"\n"
+msgstr ""
+
+#. type: lisp
+#: doc/guix.texi:26612
+#, no-wrap
+msgid ""
+"192.168.1.200   ganeti.example.com\n"
+"192.168.1.201   node1.example.com node1\n"
+"192.168.1.202   node2.example.com node2\n"
+"\")))\n"
+"\n"
+msgstr ""
+
+#. type: lisp
+#: doc/guix.texi:26626
+#, no-wrap
+msgid ""
+"  ;; Install QEMU so we can use KVM-based instances, and LVM, DRBD and Ceph\n"
+"  ;; in order to use the \"plain\", \"drbd\" and \"rbd\" storage backends.\n"
+"  (packages (append (map specification->package\n"
+"                         '(\"qemu\" \"lvm2\" \"drbd-utils\" \"ceph\"\n"
+"                           ;; Add the debootstrap and guix OS providers.\n"
+"                           \"ganeti-instance-guix\" \"ganeti-instance-debootstrap\"))\n"
+"                    %base-packages))\n"
+"  (services\n"
+"   (append (list (static-networking-service \"eth0\" \"192.168.1.201\"\n"
+"                                            #:netmask \"255.255.255.0\"\n"
+"                                            #:gateway \"192.168.1.254\"\n"
+"                                            #:name-servers '(\"192.168.1.252\"\n"
+"                                                             \"192.168.1.253\"))\n"
+"\n"
+msgstr ""
+
+#. type: lisp
+#: doc/guix.texi:26631
+#, no-wrap
+msgid ""
+"                 ;; Ganeti uses SSH to communicate between nodes.\n"
+"                 (service openssh-service-type\n"
+"                          (openssh-configuration\n"
+"                           (permit-root-login 'without-password)))\n"
+"\n"
+msgstr ""
+
+#. type: lisp
+#: doc/guix.texi:26641
+#, no-wrap
+msgid ""
+"                 (service ganeti-service-type\n"
+"                          (ganeti-configuration\n"
+"                           ;; This list specifies allowed file system paths\n"
+"                           ;; for storing virtual machine images.\n"
+"                           (file-storage-paths '(\"/srv/ganeti/file-storage\"))\n"
+"                           ;; This variable configures a single \"variant\" for\n"
+"                           ;; both Debootstrap and Guix that works with KVM.\n"
+"                           (os %default-ganeti-os))))\n"
+"           %base-services)))\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:26649
+msgid "Users are advised to read the @url{http://docs.ganeti.org/ganeti/master/html/admin.html,Ganeti administrators guide} to learn about the various cluster options and day-to-day operations.  There is also a @url{https://guix.gnu.org/blog/2020/running-a-ganeti-cluster-on-guix/,blog post} describing how to configure and initialize a small cluster."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:26650
+#, fuzzy, no-wrap
+#| msgid "{Scheme Procedure} sane-service-type"
+msgid "{Scheme Variable} ganeti-service-type"
+msgstr "{Процедура Scheme} sane-service-type"
+
+#. type: defvr
+#: doc/guix.texi:26653
+msgid "This is a service type that includes all the various services that Ganeti nodes should run."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:26658
+msgid "Its value is a @code{ganeti-configuration} object that defines the package to use for CLI operations, as well as configuration for the various daemons.  Allowed file storage paths and available guest operating systems are also configured through this data type."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:26660
+#, fuzzy, no-wrap
+#| msgid "System Configuration"
+msgid "{Data Type} ganeti-configuration"
+msgstr "Конфигурирование системы"
+
+#. type: deftp
+#: doc/guix.texi:26662
+#, fuzzy
+#| msgid "The @code{(guix inferior)} module provides the following procedures to open an inferior:"
+msgid "The @code{ganeti} service takes the following configuration options:"
+msgstr "Модуль @code{(guix inferior)} предоставляет следующие процедуры для работы с ранними версиями:"
+
 #. type: item
-#: doc/guix.texi:24067
+#: doc/guix.texi:26664 doc/guix.texi:26892 doc/guix.texi:26942
+#: doc/guix.texi:26972 doc/guix.texi:26999 doc/guix.texi:27031
+#: doc/guix.texi:27084 doc/guix.texi:27104 doc/guix.texi:27130
+#: doc/guix.texi:27163 doc/guix.texi:27203
+#, fuzzy, no-wrap
+#| msgid "@code{port} (default: @code{22})"
+msgid "@code{ganeti} (default: @code{ganeti})"
+msgstr "@code{port} (default: @code{22})"
+
+#. type: table
+#: doc/guix.texi:26669
+msgid "The @code{ganeti} package to use.  It will be installed to the system profile and make @command{gnt-cluster}, @command{gnt-instance}, etc available.  Note that the value specified here does not affect the other services as each refer to a specific @code{ganeti} package (see below)."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:26670
+#, fuzzy, no-wrap
+#| msgid "@code{port} (default: @code{22})"
+msgid "@code{noded-configuration} (default: @code{(ganeti-noded-configuration)})"
+msgstr "@code{port} (default: @code{22})"
+
+#. type: itemx
+#: doc/guix.texi:26671
+#, fuzzy, no-wrap
+#| msgid "@code{port} (default: @code{22})"
+msgid "@code{confd-configuration} (default: @code{(ganeti-confd-configuration)})"
+msgstr "@code{port} (default: @code{22})"
+
+#. type: itemx
+#: doc/guix.texi:26672
+#, fuzzy, no-wrap
+#| msgid "@code{port} (default: @code{22})"
+msgid "@code{wconfd-configuration} (default: @code{(ganeti-wconfd-configuration)})"
+msgstr "@code{port} (default: @code{22})"
+
+#. type: itemx
+#: doc/guix.texi:26673
+#, fuzzy, no-wrap
+#| msgid "@code{port} (default: @code{22})"
+msgid "@code{luxid-configuration} (default: @code{(ganeti-luxid-configuration)})"
+msgstr "@code{port} (default: @code{22})"
+
+#. type: itemx
+#: doc/guix.texi:26674
+#, fuzzy, no-wrap
+#| msgid "@code{port} (default: @code{22})"
+msgid "@code{rapi-configuration} (default: @code{(ganeti-rapi-configuration)})"
+msgstr "@code{port} (default: @code{22})"
+
+#. type: itemx
+#: doc/guix.texi:26675
+#, fuzzy, no-wrap
+#| msgid "@code{port} (default: @code{22})"
+msgid "@code{kvmd-configuration} (default: @code{(ganeti-kvmd-configuration)})"
+msgstr "@code{port} (default: @code{22})"
+
+#. type: itemx
+#: doc/guix.texi:26676
+#, fuzzy, no-wrap
+#| msgid "@code{port} (default: @code{22})"
+msgid "@code{mond-configuration} (default: @code{(ganeti-mond-configuration)})"
+msgstr "@code{port} (default: @code{22})"
+
+#. type: itemx
+#: doc/guix.texi:26677
+#, fuzzy, no-wrap
+#| msgid "@code{port} (default: @code{22})"
+msgid "@code{metad-configuration} (default: @code{(ganeti-metad-configuration)})"
+msgstr "@code{port} (default: @code{22})"
+
+#. type: itemx
+#: doc/guix.texi:26678
+#, fuzzy, no-wrap
+#| msgid "@code{port} (default: @code{22})"
+msgid "@code{watcher-configuration} (default: @code{(ganeti-watcher-configuration)})"
+msgstr "@code{port} (default: @code{22})"
+
+#. type: itemx
+#: doc/guix.texi:26679
+#, fuzzy, no-wrap
+#| msgid "@code{port} (default: @code{22})"
+msgid "@code{cleaner-configuration} (default: @code{(ganeti-cleaner-configuration)})"
+msgstr "@code{port} (default: @code{22})"
+
+#. type: table
+#: doc/guix.texi:26684
+msgid "These options control the various daemons and cron jobs that are distributed with Ganeti.  The possible values for these are described in detail below.  To override a setting, you must use the configuration type for that service:"
+msgstr ""
+
+#. type: lisp
+#: doc/guix.texi:26694
 #, no-wrap
-msgid "@code{base-path} (default: @file{/srv/git})"
+msgid ""
+"(service ganeti-service-type\n"
+"         (ganeti-configuration\n"
+"          (rapi-configuration\n"
+"           (ganeti-rapi-configuration\n"
+"            (interface \"eth1\"))))\n"
+"          (watcher-configuration\n"
+"           (ganeti-watcher-configuration\n"
+"            (rapi-ip \"10.0.0.1\"))))\n"
 msgstr ""
 
+#. type: item
+#: doc/guix.texi:26696
+#, fuzzy, no-wrap
+#| msgid "@code{native-search-paths} (default: @code{'()})"
+msgid "@code{file-storage-paths} (default: @code{'()})"
+msgstr "@code{native-search-paths} (default: @code{'()})"
+
 #. type: table
-#: doc/guix.texi:24072
-msgid "Whether to remap all the path requests as relative to the given path.  If you run git daemon with @var{(base-path \"/srv/git\")} on example.com, then if you later try to pull @code{git://example.com/hello.git}, git daemon will interpret the path as @code{/srv/git/hello.git}."
+#: doc/guix.texi:26698
+msgid "List of allowed directories for file storage backend."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:24073
+#: doc/guix.texi:26699
+#, fuzzy, no-wrap
+#| msgid "@code{port} (default: @code{22})"
+msgid "@code{os} (default: @code{%default-ganeti-os})"
+msgstr "@code{port} (default: @code{22})"
+
+#. type: table
+#: doc/guix.texi:26701
+msgid "List of @code{<ganeti-os>} records."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:26705
+msgid "In essence @code{ganeti-service-type} is shorthand for declaring each service individually:"
+msgstr ""
+
+#. type: lisp
+#: doc/guix.texi:26716
 #, no-wrap
-msgid "@code{user-path} (default: @var{#f})"
+msgid ""
+"(service ganeti-noded-service-type)\n"
+"(service ganeti-confd-service-type)\n"
+"(service ganeti-wconfd-service-type)\n"
+"(service ganeti-luxid-service-type)\n"
+"(service ganeti-kvmd-service-type)\n"
+"(service ganeti-mond-service-type)\n"
+"(service ganeti-metad-service-type)\n"
+"(service ganeti-watcher-service-type)\n"
+"(service ganeti-cleaner-service-type)\n"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:26720
+msgid "Plus a service extension for @code{etc-service-type} that configures the file storage backend and OS variants."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:26723
+#, fuzzy, no-wrap
+#| msgid "{Data Type} build-machine"
+msgid "{Data Type} ganeti-os"
+msgstr "{Тип данных} build-machine"
+
+#. type: deftp
+#: doc/guix.texi:26726
+msgid "This data type is suitable for passing to the @code{os} parameter of @code{ganeti-configuration}.  It takes the following parameters:"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:24080
-msgid "Whether to allow @code{~user} notation to be used in requests.  When specified with empty string, requests to @code{git://host/~alice/foo} is taken as a request to access @code{foo} repository in the home directory of user @code{alice}.  If @var{(user-path \"path\")} is specified, the same request is taken as a request to access @code{path/foo} repository in the home directory of user @code{alice}."
+#: doc/guix.texi:26732
+msgid "The name for this OS provider.  It is only used to specify where the configuration ends up.  Setting it to ``debootstrap'' will create @file{/etc/ganeti/instance-debootstrap}."
+msgstr ""
+
+#. type: code{#1}
+#: doc/guix.texi:26733
+#, fuzzy, no-wrap
+#| msgid "version"
+msgid "extension"
+msgstr "версия"
+
+#. type: table
+#: doc/guix.texi:26736
+msgid "The file extension for variants of this OS type.  For example @file{.conf} or @file{.scm}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:24081
+#: doc/guix.texi:26737
+#, fuzzy, no-wrap
+#| msgid "@code{inputs} (default: @code{'()})"
+msgid "@code{variants} (default: @code{'()})"
+msgstr "@code{inputs} (default: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:26739
+msgid "List of @code{ganeti-os-variant} objects for this OS."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:26743
+#, fuzzy, no-wrap
+#| msgid "{Data Type} build-machine"
+msgid "{Data Type} ganeti-os-variant"
+msgstr "{Тип данных} build-machine"
+
+#. type: deftp
+#: doc/guix.texi:26746
+msgid "This is the data type for a Ganeti OS variant.  It takes the following parameters:"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:26750
+#, fuzzy
+#| msgid "The license of this manual."
+msgid "The name of this variant."
+msgstr "Лицензия этого руководства."
+
+#. type: code{#1}
+#: doc/guix.texi:26751
+#, fuzzy, no-wrap
+#| msgid "System Configuration"
+msgid "configuration"
+msgstr "Конфигурирование системы"
+
+#. type: table
+#: doc/guix.texi:26753
+#, fuzzy
+#| msgid "configuration file for channels"
+msgid "A configuration file for this variant."
+msgstr "конфигурационный файл для каналов"
+
+#. type: defvr
+#: doc/guix.texi:26756
+#, fuzzy, no-wrap
+#| msgid "{Scheme Variable} ant-build-system"
+msgid "{Scheme Variable} %default-debootstrap-hooks"
+msgstr "{Scheme Variable} ant-build-system"
+
+#. type: defvr
+#: doc/guix.texi:26758
+msgid "This variable contains hooks to configure networking and the GRUB bootloader."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:26760
+#, fuzzy, no-wrap
+#| msgid "{Scheme Variable} ant-build-system"
+msgid "{Scheme Variable} %default-debootstrap-extra-pkgs"
+msgstr "{Scheme Variable} ant-build-system"
+
+#. type: defvr
+#: doc/guix.texi:26762
+msgid "This variable contains a list of packages suitable for a fully-virtualized guest."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:26764
+#, fuzzy, no-wrap
+#| msgid "System Configuration"
+msgid "{Data Type} debootstrap-configuration"
+msgstr "Конфигурирование системы"
+
+#. type: deftp
+#: doc/guix.texi:26767
+msgid "This data type creates configuration files suitable for the debootstrap OS provider."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:26769
+#, fuzzy, no-wrap
+#| msgid "@code{port} (default: @code{22})"
+msgid "@code{hooks} (default: @code{%default-debootstrap-hooks})"
+msgstr "@code{port} (default: @code{22})"
+
+#. type: table
+#: doc/guix.texi:26773
+msgid "When not @code{#f}, this must be a G-expression that specifies a directory with scripts that will run when the OS is installed.  It can also be a list of @code{(name . file-like)} pairs.  For example:"
+msgstr ""
+
+#. type: lisp
+#: doc/guix.texi:26776
 #, no-wrap
-msgid "@code{listen} (default: @var{'()})"
+msgid "`((99-hello-world . ,(plain-file \"#!/bin/sh\\necho Hello, World\")))\n"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:24084
-msgid "Whether to listen on specific IP addresses or hostnames, defaults to all."
+#: doc/guix.texi:26781
+msgid "That will create a directory with one executable named @code{99-hello-world} and run it every time this variant is installed.  If set to @code{#f}, hooks in @file{/etc/ganeti/instance-debootstrap/hooks} will be used, if any."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:24085
+#: doc/guix.texi:26781
+#, fuzzy, no-wrap
+#| msgid "@code{port} (default: @code{22})"
+msgid "@code{proxy} (default: @code{#f})"
+msgstr "@code{port} (default: @code{22})"
+
+#. type: table
+#: doc/guix.texi:26783
+msgid "Optional HTTP proxy to use."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:26783
+#, fuzzy, no-wrap
+#| msgid "@code{features} (default: @code{'()})"
+msgid "@code{mirror} (default: @code{#f})"
+msgstr "@code{features} (default: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:26786
+msgid "The Debian mirror.  Typically something like @code{http://ftp.no.debian.org/debian}.  The default varies depending on the distribution."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:26786
+#, fuzzy, no-wrap
+#| msgid "@code{features} (default: @code{'()})"
+msgid "@code{arch} (default: @code{#f})"
+msgstr "@code{features} (default: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:26789
+msgid "The dpkg architecture.  Set to @code{armhf} to debootstrap an ARMv7 instance on an AArch64 host.  Default is to use the current system architecture."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:26789
+#, fuzzy, no-wrap
+#| msgid "@code{port} (default: @code{22})"
+msgid "@code{suite} (default: @code{\"stable\"})"
+msgstr "@code{port} (default: @code{22})"
+
+#. type: table
+#: doc/guix.texi:26792
+msgid "When set, this must be a Debian distribution ``suite'' such as @code{buster} or @code{focal}.  If set to @code{#f}, the default for the OS provider is used."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:26792
+#, fuzzy, no-wrap
+#| msgid "@code{port} (default: @code{22})"
+msgid "@code{extra-pkgs} (default: @code{%default-debootstrap-extra-pkgs})"
+msgstr "@code{port} (default: @code{22})"
+
+#. type: table
+#: doc/guix.texi:26795
+msgid "List of extra packages that will get installed by dpkg in addition to the minimal system."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:26795
+#, fuzzy, no-wrap
+#| msgid "@code{speed} (default: @code{1.0})"
+msgid "@code{components} (default: @code{#f})"
+msgstr "@code{speed} (default: @code{1.0})"
+
+#. type: table
+#: doc/guix.texi:26798
+msgid "When set, must be a list of Debian repository ``components''.  For example @code{'(\"main\" \"contrib\")}."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:26798
+#, fuzzy, no-wrap
+#| msgid "@code{speed} (default: @code{1.0})"
+msgid "@code{generate-cache?} (default: @code{#t})"
+msgstr "@code{speed} (default: @code{1.0})"
+
+#. type: table
+#: doc/guix.texi:26800
+msgid "Whether to automatically cache the generated debootstrap archive."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:26800
+#, fuzzy, no-wrap
+#| msgid "@code{port} (default: @code{22})"
+msgid "@code{clean-cache} (default: @code{14})"
+msgstr "@code{port} (default: @code{22})"
+
+#. type: table
+#: doc/guix.texi:26803
+msgid "Discard the cache after this amount of days.  Use @code{#f} to never clear the cache."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:26803
+#, fuzzy, no-wrap
+#| msgid "@code{features} (default: @code{'()})"
+msgid "@code{partition-style} (default: @code{'msdos})"
+msgstr "@code{features} (default: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:26806
+msgid "The type of partition to create.  When set, it must be one of @code{'msdos}, @code{'none} or a string."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:26806
+#, fuzzy, no-wrap
+#| msgid "@code{arguments} (default: @code{'()})"
+msgid "@code{partition-alignment} (default: @code{2048})"
+msgstr "@code{arguments} (default: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:26808
+msgid "Alignment of the partition in sectors."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:26811
+#, fuzzy, no-wrap
+#| msgid "{Scheme Procedure} lookup-inferior-packages @var{inferior} @var{name} @"
+msgid "{Scheme Procedure} debootstrap-variant @var{name} @var{configuration}"
+msgstr "{Процедура Scheme} lookup-inferior-packages @var{inferior} @var{name} @"
+
+#. type: deffn
+#: doc/guix.texi:26814
+msgid "This is a helper procedure that creates a @code{ganeti-os-variant} record.  It takes two parameters: a name and a @code{debootstrap-configuration} object."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:26816
+#, fuzzy, no-wrap
+#| msgid "{Scheme Procedure} lookup-inferior-packages @var{inferior} @var{name} @"
+msgid "{Scheme Procedure} debootstrap-os @var{variants}@dots{}"
+msgstr "{Процедура Scheme} lookup-inferior-packages @var{inferior} @var{name} @"
+
+#. type: deffn
+#: doc/guix.texi:26819
+msgid "This is a helper procedure that creates a @code{ganeti-os} record.  It takes a list of variants created with @code{debootstrap-variant}."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:26821
+#, fuzzy, no-wrap
+#| msgid "{Scheme Procedure} lookup-inferior-packages @var{inferior} @var{name} @"
+msgid "{Scheme Procedure} guix-variant @var{name} @var{configuration}"
+msgstr "{Процедура Scheme} lookup-inferior-packages @var{inferior} @var{name} @"
+
+#. type: deffn
+#: doc/guix.texi:26826
+msgid "This is a helper procedure that creates a @code{ganeti-os-variant} record for use with the Guix OS provider.  It takes a name and a G-expression that returns a ``file-like'' (@pxref{G-Expressions, file-like objects}) object containing a Guix System configuration."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:26828
+#, fuzzy, no-wrap
+#| msgid "{Scheme Procedure} lookup-inferior-packages @var{inferior} @var{name} @"
+msgid "{Scheme Procedure} guix-os @var{variants}@dots{}"
+msgstr "{Процедура Scheme} lookup-inferior-packages @var{inferior} @var{name} @"
+
+#. type: deffn
+#: doc/guix.texi:26831
+msgid "This is a helper procedure that creates a @code{ganeti-os} record.  It takes a list of variants produced by @code{guix-variant}."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:26833
+#, fuzzy, no-wrap
+#| msgid "{Scheme Procedure} sane-service-type"
+msgid "{Scheme Variable} %default-debootstrap-variants"
+msgstr "{Процедура Scheme} sane-service-type"
+
+#. type: defvr
+#: doc/guix.texi:26837
+msgid "This is a convenience variable to make the debootstrap provider work ``out of the box'' without users having to declare variants manually.  It contains a single debootstrap variant with the default configuration:"
+msgstr ""
+
+#. type: lisp
+#: doc/guix.texi:26842
+#, no-wrap
+msgid ""
+"(list (debootstrap-variant\n"
+"       \"default\"\n"
+"       (debootstrap-configuration)))\n"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:26845
+#, fuzzy, no-wrap
+#| msgid "{Scheme Variable} ant-build-system"
+msgid "{Scheme Variable} %default-guix-variants"
+msgstr "{Scheme Variable} ant-build-system"
+
+#. type: defvr
+#: doc/guix.texi:26849
+msgid "This is a convenience variable to make the Guix OS provider work without additional configuration.  It creates a virtual machine that has an SSH server, a serial console, and authorizes the Ganeti hosts SSH keys."
+msgstr ""
+
+#. type: lisp
+#: doc/guix.texi:26855
 #, no-wrap
-msgid "@code{port} (default: @var{#f})"
+msgid ""
+"(list (guix-variant\n"
+"       \"default\"\n"
+"       (file-append ganeti-instance-guix\n"
+"                    \"/share/doc/ganeti-instance-guix/examples/dynamic.scm\")))\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:26861
+msgid "Users can implement support for OS providers unbeknownst to Guix by extending the @code{ganeti-os} and @code{ganeti-os-variant} records appropriately.  For example:"
+msgstr ""
+
+#. type: lisp
+#: doc/guix.texi:26870
+#, no-wrap
+msgid ""
+"(ganeti-os\n"
+" (name \"custom\")\n"
+" (extension \".conf\")\n"
+" (variants\n"
+"  (list (ganeti-os-variant\n"
+"         (name \"foo\")\n"
+"         (configuration (plain-file \"bar\" \"this is fine\"))))))\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:26875
+msgid "That creates @file{/etc/ganeti/instance-custom/variants/foo.conf} which points to a file in the store with contents @code{this is fine}.  It also creates @file{/etc/ganeti/instance-custom/variants/variants.list} with contents @code{foo}."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:26878
+msgid "Obviously this may not work for all OS providers out there.  If you find the interface limiting, please reach out to @email{guix-devel@@gnu.org}."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:26881
+msgid "The rest of this section documents the various services that are included by @code{ganeti-service-type}."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:26882
+#, fuzzy, no-wrap
+#| msgid "{Scheme Procedure} sane-service-type"
+msgid "{Scheme Variable} ganeti-noded-service-type"
+msgstr "{Процедура Scheme} sane-service-type"
+
+#. type: defvr
+#: doc/guix.texi:26886
+msgid "@command{ganeti-noded} is the daemon responsible for node-specific functions within the Ganeti system.  The value of this service must be a @code{ganeti-noded-configuration} object."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:26888
+#, fuzzy, no-wrap
+#| msgid "{Data Type} pagekite-configuration"
+msgid "{Data Type} ganeti-noded-configuration"
+msgstr "{Data Type} pagekite-configuration"
+
+#. type: deftp
+#: doc/guix.texi:26890
+msgid "This is the configuration for the @code{ganeti-noded} service."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:24087
-msgid "Whether to listen on an alternative port, which defaults to 9418."
+#: doc/guix.texi:26894 doc/guix.texi:26944 doc/guix.texi:26974
+#: doc/guix.texi:27001 doc/guix.texi:27033 doc/guix.texi:27086
+#: doc/guix.texi:27106 doc/guix.texi:27132 doc/guix.texi:27165
+#, fuzzy
+#| msgid "The package data type."
+msgid "The @code{ganeti} package to use for this service."
+msgstr "Тип данных пакет"
+
+#. type: item
+#: doc/guix.texi:26895
+#, fuzzy, no-wrap
+#| msgid "@code{port} (default: @code{22})"
+msgid "@code{port} (default: @code{1811})"
+msgstr "@code{port} (default: @code{22})"
+
+#. type: table
+#: doc/guix.texi:26897
+msgid "The TCP port on which the node daemon listens for network requests."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:24088
+#: doc/guix.texi:26898 doc/guix.texi:26948 doc/guix.texi:27040
+#: doc/guix.texi:27110
+#, fuzzy, no-wrap
+#| msgid "@code{speed} (default: @code{1.0})"
+msgid "@code{address} (default: @code{\"0.0.0.0\"})"
+msgstr "@code{speed} (default: @code{1.0})"
+
+#. type: table
+#: doc/guix.texi:26901
+msgid "The network address that the daemon will bind to.  The default address means bind to all available addresses."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:26905
+msgid "When this is set, it must be a specific network interface (e.g.@: @code{eth0})  that the daemon will bind to."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:26906 doc/guix.texi:27048
+#, fuzzy, no-wrap
+#| msgid "@code{inputs} (default: @code{'()})"
+msgid "@code{max-clients} (default: @code{20})"
+msgstr "@code{inputs} (default: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:26910
+msgid "This sets a limit on the maximum number of simultaneous client connections that the daemon will handle.  Connections above this count are accepted, but no responses will be sent until enough connections have closed."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:26911 doc/guix.texi:27053
+#, fuzzy, no-wrap
+#| msgid "@code{port} (default: @code{22})"
+msgid "@code{ssl?} (default: @code{#t})"
+msgstr "@code{port} (default: @code{22})"
+
+#. type: table
+#: doc/guix.texi:26915
+msgid "Whether to use SSL/TLS to encrypt network communications.  The certificate is automatically provisioned by the cluster and can be rotated with @command{gnt-cluster renew-crypto}."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:26916 doc/guix.texi:27056
+#, fuzzy, no-wrap
+#| msgid "@code{daemon-socket} (default: @code{\"/var/guix/daemon-socket/socket\"})"
+msgid "@code{ssl-key} (default: @file{\"/var/lib/ganeti/server.pem\"})"
+msgstr "@code{daemon-socket} (default: @code{\"/var/guix/daemon-socket/socket\"})"
+
+#. type: table
+#: doc/guix.texi:26918 doc/guix.texi:27058
+msgid "This can be used to provide a specific encryption key for TLS communications."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:26919 doc/guix.texi:27059
+#, fuzzy, no-wrap
+#| msgid "@code{speed} (default: @code{1.0})"
+msgid "@code{ssl-cert} (default: @file{\"/var/lib/ganeti/server.pem\"})"
+msgstr "@code{speed} (default: @code{1.0})"
+
+#. type: table
+#: doc/guix.texi:26921 doc/guix.texi:27061
+msgid "This can be used to provide a specific certificate for TLS communications."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:26925 doc/guix.texi:27065
+msgid "When true, the daemon performs additional logging for debugging purposes.  Note that this will leak encryption details to the log files, use with caution."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:26929
+#, fuzzy, no-wrap
+#| msgid "{Scheme Procedure} sane-service-type"
+msgid "{Scheme Variable} ganeti-confd-service-type"
+msgstr "{Процедура Scheme} sane-service-type"
+
+#. type: defvr
+#: doc/guix.texi:26935
+msgid "@command{ganeti-confd} answers queries related to the configuration of a Ganeti cluster.  The purpose of this daemon is to have a highly available and fast way to query cluster configuration values.  It is automatically active on all @dfn{master candidates}.  The value of this service must be a @code{ganeti-confd-configuration} object."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:26938
+#, fuzzy, no-wrap
+#| msgid "System Configuration"
+msgid "{Data Type} ganeti-confd-configuration"
+msgstr "Конфигурирование системы"
+
+#. type: deftp
+#: doc/guix.texi:26940
+msgid "This is the configuration for the @code{ganeti-confd} service."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:26945
+#, fuzzy, no-wrap
+#| msgid "@code{port} (default: @code{22})"
+msgid "@code{port} (default: @code{1814})"
+msgstr "@code{port} (default: @code{22})"
+
+#. type: table
+#: doc/guix.texi:26947
+msgid "The UDP port on which to listen for network requests."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:26950
+msgid "Network address that the daemon will bind to."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:26953 doc/guix.texi:26982 doc/guix.texi:27009
+#: doc/guix.texi:27089 doc/guix.texi:27116 doc/guix.texi:27142
+msgid "When true, the daemon performs additional logging for debugging purposes."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:26957
+#, fuzzy, no-wrap
+#| msgid "{Scheme Procedure} sane-service-type"
+msgid "{Scheme Variable} ganeti-wconfd-service-type"
+msgstr "{Процедура Scheme} sane-service-type"
+
+#. type: defvr
+#: doc/guix.texi:26963
+msgid "@command{ganeti-wconfd} is the daemon that has authoritative knowledge about the cluster configuration and is the only entity that can accept changes to it.  All jobs that need to modify the configuration will do so by sending appropriate requests to this daemon.  It only runs on the @dfn{master node} and will automatically disable itself on other nodes."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:26966
+msgid "The value of this service must be a @code{ganeti-wconfd-configuration} object."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:26968
+#, fuzzy, no-wrap
+#| msgid "System Configuration"
+msgid "{Data Type} ganeti-wconfd-configuration"
+msgstr "Конфигурирование системы"
+
+#. type: deftp
+#: doc/guix.texi:26970 doc/guix.texi:26997
+msgid "This is the configuration for the @code{ganeti-wconfd} service."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:26975 doc/guix.texi:27002
+#, fuzzy, no-wrap
+#| msgid "@code{port} (default: @code{22})"
+msgid "@code{no-voting?} (default: @code{#f})"
+msgstr "@code{port} (default: @code{22})"
+
+#. type: table
+#: doc/guix.texi:26979
+msgid "The daemon will refuse to start if the majority of cluster nodes does not agree that it is running on the master node.  Set to @code{#t} to start even if a quorum can not be reached (dangerous, use with caution)."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:26986
+#, fuzzy, no-wrap
+#| msgid "{Scheme Procedure} sane-service-type"
+msgid "{Scheme Variable} ganeti-luxid-service-type"
+msgstr "{Процедура Scheme} sane-service-type"
+
+#. type: defvr
+#: doc/guix.texi:26991
+msgid "@command{ganeti-luxid} is a daemon used to answer queries related to the configuration and the current live state of a Ganeti cluster.  Additionally, it is the authoritative daemon for the Ganeti job queue.  Jobs can be submitted via this daemon and it schedules and starts them."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:26993
+msgid "It takes a @code{ganeti-luxid-configuration} object."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:26995
+#, fuzzy, no-wrap
+#| msgid "{Data Type} build-machine"
+msgid "{Data Type} ganeti-luxid-configuration"
+msgstr "{Тип данных} build-machine"
+
+#. type: table
+#: doc/guix.texi:27006
+msgid "The daemon will refuse to start if it cannot verify that the majority of cluster nodes believes that it is running on the master node.  Set to @code{#t} to ignore such checks and start anyway (this can be dangerous)."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:27013
+#, fuzzy, no-wrap
+#| msgid "{Scheme Procedure} sane-service-type"
+msgid "{Scheme Variable} ganeti-rapi-service-type"
+msgstr "{Процедура Scheme} sane-service-type"
+
+#. type: defvr
+#: doc/guix.texi:27017
+msgid "@command{ganeti-rapi} provides a remote API for Ganeti clusters.  It runs on the master node and can be used to perform cluster actions programmatically via a JSON-based RPC protocol."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:27023
+msgid "Most query operations are allowed without authentication (unless @var{require-authentication?} is set), whereas write operations require explicit authorization via the @file{/var/lib/ganeti/rapi/users} file.  See the @url{http://docs.ganeti.org/ganeti/master/html/rapi.html, Ganeti Remote API documentation} for more information."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:27025
+msgid "The value of this service must be a @code{ganeti-rapi-configuration} object."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:27027
+#, fuzzy, no-wrap
+#| msgid "System Configuration"
+msgid "{Data Type} ganeti-rapi-configuration"
+msgstr "Конфигурирование системы"
+
+#. type: deftp
+#: doc/guix.texi:27029
+msgid "This is the configuration for the @code{ganeti-rapi} service."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:27034
+#, fuzzy, no-wrap
+#| msgid "@code{features} (default: @code{'()})"
+msgid "@code{require-authentication?} (default: @code{#f})"
+msgstr "@code{features} (default: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:27036
+msgid "Whether to require authentication even for read-only operations."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:27037
+#, fuzzy, no-wrap
+#| msgid "@code{port} (default: @code{22})"
+msgid "@code{port} (default: @code{5080})"
+msgstr "@code{port} (default: @code{22})"
+
+#. type: table
+#: doc/guix.texi:27039
+msgid "The TCP port on which to listen to API requests."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:27043
+msgid "The network address that the service will bind to.  By default it listens on all configured addresses."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:27047
+msgid "When set, it must specify a specific network interface such as @code{eth0} that the daemon will bind to."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:27052
+msgid "The maximum number of simultaneous client requests to handle.  Further connections are allowed, but no responses are sent until enough connections have closed."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:27055
+msgid "Whether to use SSL/TLS encryption on the RAPI port."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:27069
+#, fuzzy, no-wrap
+#| msgid "{Scheme Procedure} sane-service-type"
+msgid "{Scheme Variable} ganeti-kvmd-service-type"
+msgstr "{Процедура Scheme} sane-service-type"
+
+#. type: defvr
+#: doc/guix.texi:27077
+msgid "@command{ganeti-kvmd} is responsible for determining whether a given KVM instance was shut down by an administrator or a user.  Normally Ganeti will restart an instance that was not stopped through Ganeti itself.  If the cluster option @code{user_shutdown} is true, this daemon monitors the @code{QMP} socket provided by QEMU and listens for shutdown events, and marks the instance as @dfn{USER_down} instead of @dfn{ERROR_down} when it shuts down gracefully by itself."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:27079
+msgid "It takes a @code{ganeti-kvmd-configuration} object."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:27081
+#, fuzzy, no-wrap
+#| msgid "{Data Type} build-machine"
+msgid "{Data Type} ganeti-kvmd-configuration"
+msgstr "{Тип данных} build-machine"
+
+#. type: defvr
+#: doc/guix.texi:27093
+#, fuzzy, no-wrap
+#| msgid "{Scheme Procedure} sane-service-type"
+msgid "{Scheme Variable} ganeti-mond-service-type"
+msgstr "{Процедура Scheme} sane-service-type"
+
+#. type: defvr
+#: doc/guix.texi:27097
+msgid "@command{ganeti-mond} is an optional daemon that provides Ganeti monitoring functionality.  It is responsible for running data collectors and publish the collected information through a HTTP interface."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:27099
+msgid "It takes a @code{ganeti-mond-configuration} object."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:27101
+#, fuzzy, no-wrap
+#| msgid "{Data Type} build-machine"
+msgid "{Data Type} ganeti-mond-configuration"
+msgstr "{Тип данных} build-machine"
+
+#. type: item
+#: doc/guix.texi:27107
+#, fuzzy, no-wrap
+#| msgid "@code{port} (default: @code{22})"
+msgid "@code{port} (default: @code{1815})"
+msgstr "@code{port} (default: @code{22})"
+
+#. type: table
+#: doc/guix.texi:27109 doc/guix.texi:27135
+msgid "The port on which the daemon will listen."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:27113
+msgid "The network address that the daemon will bind to.  By default it binds to all available interfaces."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:27120
+#, fuzzy, no-wrap
+#| msgid "{Scheme Procedure} sane-service-type"
+msgid "{Scheme Variable} ganeti-metad-service-type"
+msgstr "{Процедура Scheme} sane-service-type"
+
+#. type: defvr
+#: doc/guix.texi:27123
+msgid "@command{ganeti-metad} is an optional daemon that can be used to provide information about the cluster to instances or OS install scripts."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:27125
+msgid "It takes a @code{ganeti-metad-configuration} object."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:27127
+#, fuzzy, no-wrap
+#| msgid "{Data Type} build-machine"
+msgid "{Data Type} ganeti-metad-configuration"
+msgstr "{Тип данных} build-machine"
+
+#. type: item
+#: doc/guix.texi:27136
+#, fuzzy, no-wrap
+#| msgid "@code{features} (default: @code{'()})"
+msgid "@code{address} (default: @code{#f})"
+msgstr "@code{features} (default: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:27139
+msgid "If set, the daemon will bind to this address only.  If left unset, the behavior depends on the cluster configuration."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:27146
+#, fuzzy, no-wrap
+#| msgid "{Scheme Procedure} sane-service-type"
+msgid "{Scheme Variable} ganeti-watcher-service-type"
+msgstr "{Процедура Scheme} sane-service-type"
+
+#. type: defvr
+#: doc/guix.texi:27154
+msgid "@command{ganeti-watcher} is a script designed to run periodically and ensure the health of a cluster.  It will automatically restart instances that have stopped without Ganeti's consent, and repairs DRBD links in case a node has rebooted.  It also archives old cluster jobs and restarts Ganeti daemons that are not running.  If the cluster parameter @code{ensure_node_health} is set, the watcher will also shutdown instances and DRBD devices if the node it is running on is declared offline by known master candidates."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:27156
+msgid "It can be paused on all nodes with @command{gnt-cluster watcher pause}."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:27158
+msgid "The service takes a @code{ganeti-watcher-configuration} object."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:27160
+#, fuzzy, no-wrap
+#| msgid "{Data Type} pagekite-configuration"
+msgid "{Data Type} ganeti-watcher-configuration"
+msgstr "{Data Type} pagekite-configuration"
+
+#. type: item
+#: doc/guix.texi:27166
 #, no-wrap
-msgid "@code{whitelist} (default: @var{'()})"
+msgid "@code{schedule} (default: @code{'(next-second-from (next-minute (range 0 60 5)))})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:24090
-msgid "If not empty, only allow access to this list of directories."
+#: doc/guix.texi:27168
+msgid "How often to run the script.  The default is every five minutes."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:27169
+#, fuzzy, no-wrap
+#| msgid "@code{speed} (default: @code{1.0})"
+msgid "@code{rapi-ip} (default: @code{#f})"
+msgstr "@code{speed} (default: @code{1.0})"
+
+#. type: table
+#: doc/guix.texi:27172
+msgid "This option needs to be specified only if the RAPI daemon is configured to use a particular interface or address.  By default the cluster address is used."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:27173
+#, fuzzy, no-wrap
+#| msgid "@code{features} (default: @code{'()})"
+msgid "@code{job-age} (default: @code{(* 6 3600)})"
+msgstr "@code{features} (default: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:27176
+msgid "Archive cluster jobs older than this age, specified in seconds.  The default is 6 hours.  This keeps @command{gnt-job list} manageable."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:27177
+#, fuzzy, no-wrap
+#| msgid "@code{port} (default: @code{22})"
+msgid "@code{verify-disks?} (default: @code{#t})"
+msgstr "@code{port} (default: @code{22})"
+
+#. type: table
+#: doc/guix.texi:27181
+msgid "If this is @code{#f}, the watcher will not try to repair broken DRBD links automatically.  Administrators will need to use @command{gnt-cluster verify-disks} manually instead."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:27184
+msgid "When @code{#t}, the script performs additional logging for debugging purposes."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:27188
+#, fuzzy, no-wrap
+#| msgid "{Scheme Procedure} sane-service-type"
+msgid "{Scheme Variable} ganeti-cleaner-service-type"
+msgstr "{Процедура Scheme} sane-service-type"
+
+#. type: defvr
+#: doc/guix.texi:27196
+msgid "@command{ganeti-cleaner} is a script designed to run periodically and remove old files from the cluster.  This service type controls two @dfn{cron jobs}: one intended for the master node that permanently purges old cluster jobs, and one intended for every node that removes expired X509 certificates, keys, and outdated @command{ganeti-watcher} information.  Like all Ganeti services, it is safe to include even on non-master nodes as it will disable itself as necessary."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:27198
+msgid "It takes a @code{ganeti-cleaner-configuration} object."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:27200
+#, fuzzy, no-wrap
+#| msgid "{Data Type} build-machine"
+msgid "{Data Type} ganeti-cleaner-configuration"
+msgstr "{Тип данных} build-machine"
+
+#. type: table
+#: doc/guix.texi:27205
+msgid "The @code{ganeti} package to use for the @command{gnt-cleaner} command."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:27206
+#, fuzzy, no-wrap
+#| msgid "@code{port} (default: @code{22})"
+msgid "@code{master-schedule} (default: @code{\"45 1 * * *\"})"
+msgstr "@code{port} (default: @code{22})"
+
+#. type: table
+#: doc/guix.texi:27209
+msgid "How often to run the master cleaning job.  The default is once per day, at 01:45:00."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:24091 doc/guix.texi:25381
+#: doc/guix.texi:27210
+#, fuzzy, no-wrap
+#| msgid "@code{port} (default: @code{22})"
+msgid "@code{node-schedule} (default: @code{\"45 2 * * *\"})"
+msgstr "@code{port} (default: @code{22})"
+
+#. type: table
+#: doc/guix.texi:27213
+msgid "How often to run the node cleaning job.  The default is once per day, at 02:45:00."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:27227
+msgid "The @code{(gnu services version-control)} module provides a service to allow remote access to local Git repositories.  There are three options: the @code{git-daemon-service}, which provides access to repositories via the @code{git://} unsecured TCP-based protocol, extending the @code{nginx} web server to proxy some requests to @code{git-http-backend}, or providing a web interface with @code{cgit-service-type}."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:27228
 #, no-wrap
-msgid "@code{extra-options} (default: @var{'()})"
+msgid "{Scheme Procedure} git-daemon-service [#:config (git-daemon-configuration)]"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:27232
+msgid "Return a service that runs @command{git daemon}, a simple TCP server to expose repositories over the Git protocol for anonymous access."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:27238
+msgid "The optional @var{config} argument should be a @code{<git-daemon-configuration>} object, by default it allows read-only access to exported@footnote{By creating the magic file @file{git-daemon-export-ok} in the repository directory.} repositories under @file{/srv/git}."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:27241
+#, no-wrap
+msgid "{Data Type} git-daemon-configuration"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:27243
+msgid "Data type representing the configuration for @code{git-daemon-service}."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:27245
+#, fuzzy, no-wrap
+#| msgid "@code{speed} (default: @code{1.0})"
+msgid "@code{package} (default: @code{git})"
+msgstr "@code{speed} (default: @code{1.0})"
+
+#. type: table
+#: doc/guix.texi:27247 doc/guix.texi:27307
+msgid "Package object of the Git distributed version control system."
 msgstr ""
 
+#. type: item
+#: doc/guix.texi:27248 doc/guix.texi:27311
+#, fuzzy, no-wrap
+#| msgid "@code{speed} (default: @code{1.0})"
+msgid "@code{export-all?} (default: @code{#f})"
+msgstr "@code{speed} (default: @code{1.0})"
+
 #. type: table
-#: doc/guix.texi:24094
-msgid "Extra options will be passed to @code{git daemon}, please run @command{man git-daemon} for more information."
+#: doc/guix.texi:27251
+msgid "Whether to allow access for all Git repositories, even if they do not have the @file{git-daemon-export-ok} file."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:27252
+#, no-wrap
+msgid "@code{base-path} (default: @file{/srv/git})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:27258
+msgid "Whether to remap all the path requests as relative to the given path.  If you run @command{git daemon} with @code{(base-path \"/srv/git\")} on @samp{example.com}, then if you later try to pull @indicateurl{git://example.com/hello.git}, git daemon will interpret the path as @file{/srv/git/hello.git}."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:27259
+#, fuzzy, no-wrap
+#| msgid "@code{features} (default: @code{'()})"
+msgid "@code{user-path} (default: @code{#f})"
+msgstr "@code{features} (default: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:27267
+msgid "Whether to allow @code{~user} notation to be used in requests.  When specified with empty string, requests to @indicateurl{git://host/~alice/foo} is taken as a request to access @code{foo} repository in the home directory of user @code{alice}.  If @code{(user-path \"@var{path}\")} is specified, the same request is taken as a request to access @file{@var{path}/foo} repository in the home directory of user @code{alice}."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:27268
+#, fuzzy, no-wrap
+#| msgid "@code{inputs} (default: @code{'()})"
+msgid "@code{listen} (default: @code{'()})"
+msgstr "@code{inputs} (default: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:27271
+msgid "Whether to listen on specific IP addresses or hostnames, defaults to all."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:27272
+#, fuzzy, no-wrap
+#| msgid "@code{port} (default: @code{22})"
+msgid "@code{port} (default: @code{#f})"
+msgstr "@code{port} (default: @code{22})"
+
+#. type: table
+#: doc/guix.texi:27274
+msgid "Whether to listen on an alternative port, which defaults to 9418."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:27275
+#, fuzzy, no-wrap
+#| msgid "@code{inputs} (default: @code{'()})"
+msgid "@code{whitelist} (default: @code{'()})"
+msgstr "@code{inputs} (default: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:27277
+msgid "If not empty, only allow access to this list of directories."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:27281
+msgid "Extra options will be passed to @command{git daemon}, please run @command{man git-daemon} for more information."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:24108
+#: doc/guix.texi:27295
 msgid "The @code{git://} protocol lacks authentication.  When you pull from a repository fetched via @code{git://}, you don't know whether the data you receive was modified or is even coming from the specified host, and your connection is subject to eavesdropping.  It's better to use an authenticated and encrypted transport, such as @code{https}.  Although Git allows you to serve repositories using unsophisticated file-based web servers, there is a faster protocol implemented by the @code{git-http-backend} program.  This program is the back-end of a proper Git web service.  It is designed to sit behind a FastCGI proxy.  @xref{Web Services}, for more on running the necessary @code{fcgiwrap} daemon."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:24111
+#: doc/guix.texi:27298
 msgid "Guix has a separate configuration data type for serving Git repositories over HTTP."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:24112
+#: doc/guix.texi:27299
 #, no-wrap
 msgid "{Data Type} git-http-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:24114
-msgid "Data type representing the configuration for @code{git-http-service}."
+#: doc/guix.texi:27303
+msgid "Data type representing the configuration for a future @code{git-http-service-type}; can currently be used to configure Nginx trough @code{git-http-nginx-location-configuration}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:24119
+#: doc/guix.texi:27305
+#, no-wrap
+msgid "@code{package} (default: @var{git})"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:27308
 #, no-wrap
 msgid "@code{git-root} (default: @file{/srv/git})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:24121
+#: doc/guix.texi:27310
 msgid "Directory containing the Git repositories to expose to the world."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:24125
+#: doc/guix.texi:27314
 msgid "Whether to expose access for all Git repositories in @var{git-root}, even if they do not have the @file{git-daemon-export-ok} file."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:24126
-#, no-wrap
-msgid "@code{uri-path} (default: @file{/git/})"
-msgstr ""
+#: doc/guix.texi:27315
+#, fuzzy, no-wrap
+#| msgid "@code{port} (default: @code{22})"
+msgid "@code{uri-path} (default: @samp{/git/})"
+msgstr "@code{port} (default: @code{22})"
 
 #. type: table
-#: doc/guix.texi:24131
-msgid "Path prefix for Git access.  With the default @code{/git/} prefix, this will map @code{http://@var{server}/git/@var{repo}.git} to @code{/srv/git/@var{repo}.git}.  Requests whose URI paths do not begin with this prefix are not passed on to this Git instance."
+#: doc/guix.texi:27320
+msgid "Path prefix for Git access.  With the default @samp{/git/} prefix, this will map @indicateurl{http://@var{server}/git/@var{repo}.git} to @file{/srv/git/@var{repo}.git}.  Requests whose URI paths do not begin with this prefix are not passed on to this Git instance."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:24132
+#: doc/guix.texi:27321
 #, no-wrap
 msgid "@code{fcgiwrap-socket} (default: @code{127.0.0.1:9000})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:24135
+#: doc/guix.texi:27324
 msgid "The socket on which the @code{fcgiwrap} daemon is listening.  @xref{Web Services}."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:24142
+#: doc/guix.texi:27331
 msgid "There is no @code{git-http-service-type}, currently; instead you can create an @code{nginx-location-configuration} from a @code{git-http-configuration} and then add that location to a web server."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:24143
+#: doc/guix.texi:27332
 #, no-wrap
 msgid "{Scheme Procedure} git-http-nginx-location-configuration @"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:24148
+#: doc/guix.texi:27337
 msgid "[config=(git-http-configuration)] Compute an @code{nginx-location-configuration} that corresponds to the given Git http configuration.  An example nginx service definition to serve the default @file{/srv/git} over HTTPS might be:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:24165
+#: doc/guix.texi:27354
 #, no-wrap
 msgid ""
 "(service nginx-service-type\n"
@@ -44367,1420 +50419,1420 @@ msgid ""
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:24172
+#: doc/guix.texi:27361
 msgid "This example assumes that you are using Let's Encrypt to get your TLS certificate.  @xref{Certificate Services}.  The default @code{certbot} service will redirect all HTTP traffic on @code{git.my-host.org} to HTTPS.  You will also need to add an @code{fcgiwrap} proxy to your system services.  @xref{Web Services}."
 msgstr ""
 
 #. type: subsubheading
-#: doc/guix.texi:24174
+#: doc/guix.texi:27363
 #, no-wrap
 msgid "Cgit Service"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:24176
+#: doc/guix.texi:27365
 #, no-wrap
 msgid "Cgit service"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:24177
+#: doc/guix.texi:27366
 #, no-wrap
 msgid "Git, web interface"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:24180
+#: doc/guix.texi:27369
 msgid "@uref{https://git.zx2c4.com/cgit/, Cgit} is a web frontend for Git repositories written in C."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:24183
+#: doc/guix.texi:27372
 msgid "The following example will configure the service with default values.  By default, Cgit can be accessed on port 80 (@code{http://localhost:80})."
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:24186
+#: doc/guix.texi:27375
 #, no-wrap
 msgid "(service cgit-service-type)\n"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:24190
+#: doc/guix.texi:27379
 msgid "The @code{file-object} type designates either a file-like object (@pxref{G-Expressions, file-like objects}) or a string."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:24194
+#: doc/guix.texi:27383
 msgid "Available @code{cgit-configuration} fields are:"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24195
+#: doc/guix.texi:27384
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} package package"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24197
+#: doc/guix.texi:27386
 msgid "The CGIT package."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24200
+#: doc/guix.texi:27389
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} nginx-server-configuration-list nginx"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24205
+#: doc/guix.texi:27394
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} file-object about-filter"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24208
+#: doc/guix.texi:27397
 msgid "Specifies a command which will be invoked to format the content of about pages (both top-level and for each repository)."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24213
+#: doc/guix.texi:27402
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string agefile"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24216
+#: doc/guix.texi:27405
 msgid "Specifies a path, relative to each repository path, which can be used to specify the date and time of the youngest commit in the repository."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24221
+#: doc/guix.texi:27410
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} file-object auth-filter"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24224
+#: doc/guix.texi:27413
 msgid "Specifies a command that will be invoked for authenticating repository access."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24229
+#: doc/guix.texi:27418
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string branch-sort"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24232
+#: doc/guix.texi:27421
 msgid "Flag which, when set to @samp{age}, enables date ordering in the branch ref list, and when set @samp{name} enables ordering by branch name."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24234
+#: doc/guix.texi:27423
 msgid "Defaults to @samp{\"name\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24237
+#: doc/guix.texi:27426
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string cache-root"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24239
+#: doc/guix.texi:27428
 msgid "Path used to store the cgit cache entries."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24241
+#: doc/guix.texi:27430
 msgid "Defaults to @samp{\"/var/cache/cgit\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24244
+#: doc/guix.texi:27433
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer cache-static-ttl"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24247
+#: doc/guix.texi:27436
 msgid "Number which specifies the time-to-live, in minutes, for the cached version of repository pages accessed with a fixed SHA1."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24249 doc/guix.texi:24692
+#: doc/guix.texi:27438 doc/guix.texi:27881
 msgid "Defaults to @samp{-1}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24252
+#: doc/guix.texi:27441
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer cache-dynamic-ttl"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24255
+#: doc/guix.texi:27444
 msgid "Number which specifies the time-to-live, in minutes, for the cached version of repository pages accessed without a fixed SHA1."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24260
+#: doc/guix.texi:27449
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer cache-repo-ttl"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24263
+#: doc/guix.texi:27452
 msgid "Number which specifies the time-to-live, in minutes, for the cached version of the repository summary page."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24268
+#: doc/guix.texi:27457
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer cache-root-ttl"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24271
+#: doc/guix.texi:27460
 msgid "Number which specifies the time-to-live, in minutes, for the cached version of the repository index page."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24276
+#: doc/guix.texi:27465
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer cache-scanrc-ttl"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24279
+#: doc/guix.texi:27468
 msgid "Number which specifies the time-to-live, in minutes, for the result of scanning a path for Git repositories."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24284
+#: doc/guix.texi:27473
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer cache-about-ttl"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24287
+#: doc/guix.texi:27476
 msgid "Number which specifies the time-to-live, in minutes, for the cached version of the repository about page."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24292
+#: doc/guix.texi:27481
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer cache-snapshot-ttl"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24295
+#: doc/guix.texi:27484
 msgid "Number which specifies the time-to-live, in minutes, for the cached version of snapshots."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24300
+#: doc/guix.texi:27489
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer cache-size"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24303
+#: doc/guix.texi:27492
 msgid "The maximum number of entries in the cgit cache.  When set to @samp{0}, caching is disabled."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24308
+#: doc/guix.texi:27497
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean case-sensitive-sort?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24310
+#: doc/guix.texi:27499
 msgid "Sort items in the repo list case sensitively."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24315
+#: doc/guix.texi:27504
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} list clone-prefix"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24318
+#: doc/guix.texi:27507
 msgid "List of common prefixes which, when combined with a repository URL, generates valid clone URLs for the repository."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24323
+#: doc/guix.texi:27512
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} list clone-url"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24325
+#: doc/guix.texi:27514
 msgid "List of @code{clone-url} templates."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24330
+#: doc/guix.texi:27519
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} file-object commit-filter"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24332
+#: doc/guix.texi:27521
 msgid "Command which will be invoked to format commit messages."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24337
+#: doc/guix.texi:27526
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string commit-sort"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24341 doc/guix.texi:24899
+#: doc/guix.texi:27530 doc/guix.texi:28088
 msgid "Flag which, when set to @samp{date}, enables strict date ordering in the commit log, and when set to @samp{topo} enables strict topological ordering."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24343
+#: doc/guix.texi:27532
 msgid "Defaults to @samp{\"git log\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24346
+#: doc/guix.texi:27535
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} file-object css"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24348
+#: doc/guix.texi:27537
 msgid "URL which specifies the css document to include in all cgit pages."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24350
+#: doc/guix.texi:27539
 msgid "Defaults to @samp{\"/share/cgit/cgit.css\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24353
+#: doc/guix.texi:27542
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} file-object email-filter"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24357
+#: doc/guix.texi:27546
 msgid "Specifies a command which will be invoked to format names and email address of committers, authors, and taggers, as represented in various places throughout the cgit interface."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24362
+#: doc/guix.texi:27551
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean embedded?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24365
+#: doc/guix.texi:27554
 msgid "Flag which, when set to @samp{#t}, will make cgit generate a HTML fragment suitable for embedding in other HTML pages."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24370
+#: doc/guix.texi:27559
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean enable-commit-graph?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24374
+#: doc/guix.texi:27563
 msgid "Flag which, when set to @samp{#t}, will make cgit print an ASCII-art commit history graph to the left of the commit messages in the repository log page."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24379
+#: doc/guix.texi:27568
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean enable-filter-overrides?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24382
+#: doc/guix.texi:27571
 msgid "Flag which, when set to @samp{#t}, allows all filter settings to be overridden in repository-specific cgitrc files."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24387
+#: doc/guix.texi:27576
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean enable-follow-links?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24390
+#: doc/guix.texi:27579
 msgid "Flag which, when set to @samp{#t}, allows users to follow a file in the log view."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24395
+#: doc/guix.texi:27584
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean enable-http-clone?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24398
+#: doc/guix.texi:27587
 msgid "If set to @samp{#t}, cgit will act as an dumb HTTP endpoint for Git clones."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24403
+#: doc/guix.texi:27592
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean enable-index-links?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24406
+#: doc/guix.texi:27595
 msgid "Flag which, when set to @samp{#t}, will make cgit generate extra links \"summary\", \"commit\", \"tree\" for each repo in the repository index."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24411
+#: doc/guix.texi:27600
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean enable-index-owner?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24414
+#: doc/guix.texi:27603
 msgid "Flag which, when set to @samp{#t}, will make cgit display the owner of each repo in the repository index."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24419
+#: doc/guix.texi:27608
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean enable-log-filecount?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24422
+#: doc/guix.texi:27611
 msgid "Flag which, when set to @samp{#t}, will make cgit print the number of modified files for each commit on the repository log page."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24427
+#: doc/guix.texi:27616
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean enable-log-linecount?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24430
+#: doc/guix.texi:27619
 msgid "Flag which, when set to @samp{#t}, will make cgit print the number of added and removed lines for each commit on the repository log page."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24435
+#: doc/guix.texi:27624
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean enable-remote-branches?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24438 doc/guix.texi:24962
+#: doc/guix.texi:27627 doc/guix.texi:28151
 msgid "Flag which, when set to @code{#t}, will make cgit display remote branches in the summary and refs views."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24443
+#: doc/guix.texi:27632
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean enable-subject-links?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24447
+#: doc/guix.texi:27636
 msgid "Flag which, when set to @code{1}, will make cgit use the subject of the parent commit as link text when generating links to parent commits in commit view."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24452
+#: doc/guix.texi:27641
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean enable-html-serving?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24456
+#: doc/guix.texi:27645
 msgid "Flag which, when set to @samp{#t}, will make cgit use the subject of the parent commit as link text when generating links to parent commits in commit view."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24461
+#: doc/guix.texi:27650
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean enable-tree-linenumbers?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24464
+#: doc/guix.texi:27653
 msgid "Flag which, when set to @samp{#t}, will make cgit generate linenumber links for plaintext blobs printed in the tree view."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24469
+#: doc/guix.texi:27658
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean enable-git-config?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24472
+#: doc/guix.texi:27661
 msgid "Flag which, when set to @samp{#f}, will allow cgit to use Git config to set any repo specific settings."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24477
+#: doc/guix.texi:27666
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} file-object favicon"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24479
+#: doc/guix.texi:27668
 msgid "URL used as link to a shortcut icon for cgit."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24481
+#: doc/guix.texi:27670
 msgid "Defaults to @samp{\"/favicon.ico\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24484
+#: doc/guix.texi:27673
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string footer"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24488
+#: doc/guix.texi:27677
 msgid "The content of the file specified with this option will be included verbatim at the bottom of all pages (i.e.@: it replaces the standard \"generated by...\"@: message)."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24493
+#: doc/guix.texi:27682
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string head-include"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24496
+#: doc/guix.texi:27685
 msgid "The content of the file specified with this option will be included verbatim in the HTML HEAD section on all pages."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24501
+#: doc/guix.texi:27690
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string header"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24504
+#: doc/guix.texi:27693
 msgid "The content of the file specified with this option will be included verbatim at the top of all pages."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24509
+#: doc/guix.texi:27698
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} file-object include"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24512
+#: doc/guix.texi:27701
 msgid "Name of a configfile to include before the rest of the current config- file is parsed."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24517
+#: doc/guix.texi:27706
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string index-header"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24520
+#: doc/guix.texi:27709
 msgid "The content of the file specified with this option will be included verbatim above the repository index."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24525
+#: doc/guix.texi:27714
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string index-info"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24528
+#: doc/guix.texi:27717
 msgid "The content of the file specified with this option will be included verbatim below the heading on the repository index page."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24533
+#: doc/guix.texi:27722
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean local-time?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24536
+#: doc/guix.texi:27725
 msgid "Flag which, if set to @samp{#t}, makes cgit print commit and tag times in the servers timezone."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24541
+#: doc/guix.texi:27730
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} file-object logo"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24544
+#: doc/guix.texi:27733
 msgid "URL which specifies the source of an image which will be used as a logo on all cgit pages."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24546
+#: doc/guix.texi:27735
 msgid "Defaults to @samp{\"/share/cgit/cgit.png\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24549
+#: doc/guix.texi:27738
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string logo-link"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24551 doc/guix.texi:25008
+#: doc/guix.texi:27740 doc/guix.texi:28197
 msgid "URL loaded when clicking on the cgit logo image."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24556
+#: doc/guix.texi:27745
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} file-object owner-filter"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24559
+#: doc/guix.texi:27748
 msgid "Command which will be invoked to format the Owner column of the main page."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24564
+#: doc/guix.texi:27753
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer max-atom-items"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24566
+#: doc/guix.texi:27755
 msgid "Number of items to display in atom feeds view."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24568 doc/guix.texi:24803 doc/guix.texi:24811
-#: doc/guix.texi:24819
+#: doc/guix.texi:27757 doc/guix.texi:27992 doc/guix.texi:28000
+#: doc/guix.texi:28008
 msgid "Defaults to @samp{10}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24571
+#: doc/guix.texi:27760
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer max-commit-count"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24573
+#: doc/guix.texi:27762
 msgid "Number of entries to list per page in \"log\" view."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24575 doc/guix.texi:24590
+#: doc/guix.texi:27764 doc/guix.texi:27779
 msgid "Defaults to @samp{50}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24578
+#: doc/guix.texi:27767
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer max-message-length"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24580
+#: doc/guix.texi:27769
 msgid "Number of commit message characters to display in \"log\" view."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24582 doc/guix.texi:24598
+#: doc/guix.texi:27771 doc/guix.texi:27787
 msgid "Defaults to @samp{80}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24585
+#: doc/guix.texi:27774
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer max-repo-count"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24588
+#: doc/guix.texi:27777
 msgid "Specifies the number of entries to list per page on the repository index page."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24593
+#: doc/guix.texi:27782
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer max-repodesc-length"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24596
+#: doc/guix.texi:27785
 msgid "Specifies the maximum number of repo description characters to display on the repository index page."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24601
+#: doc/guix.texi:27790
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer max-blob-size"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24603
+#: doc/guix.texi:27792
 msgid "Specifies the maximum size of a blob to display HTML for in KBytes."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24608
+#: doc/guix.texi:27797
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string max-stats"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24611
+#: doc/guix.texi:27800
 msgid "Maximum statistics period.  Valid values are @samp{week},@samp{month}, @samp{quarter} and @samp{year}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24616
+#: doc/guix.texi:27805
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} mimetype-alist mimetype"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24618
+#: doc/guix.texi:27807
 msgid "Mimetype for the specified filename extension."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24622
+#: doc/guix.texi:27811
 msgid "Defaults to @samp{((gif \"image/gif\") (html \"text/html\") (jpg \"image/jpeg\") (jpeg \"image/jpeg\") (pdf \"application/pdf\") (png \"image/png\") (svg \"image/svg+xml\"))}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24625
+#: doc/guix.texi:27814
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} file-object mimetype-file"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24627
+#: doc/guix.texi:27816
 msgid "Specifies the file to use for automatic mimetype lookup."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24632
+#: doc/guix.texi:27821
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string module-link"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24635
+#: doc/guix.texi:27824
 msgid "Text which will be used as the formatstring for a hyperlink when a submodule is printed in a directory listing."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24640
+#: doc/guix.texi:27829
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean nocache?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24642
+#: doc/guix.texi:27831
 msgid "If set to the value @samp{#t} caching will be disabled."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24647
+#: doc/guix.texi:27836
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean noplainemail?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24650
+#: doc/guix.texi:27839
 msgid "If set to @samp{#t} showing full author email addresses will be disabled."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24655
+#: doc/guix.texi:27844
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean noheader?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24658
+#: doc/guix.texi:27847
 msgid "Flag which, when set to @samp{#t}, will make cgit omit the standard header on all pages."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24663
+#: doc/guix.texi:27852
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} project-list project-list"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24667
+#: doc/guix.texi:27856
 msgid "A list of subdirectories inside of @code{repository-directory}, relative to it, that should loaded as Git repositories.  An empty list means that all subdirectories will be loaded."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24672
+#: doc/guix.texi:27861
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} file-object readme"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24674
+#: doc/guix.texi:27863
 msgid "Text which will be used as default value for @code{cgit-repo-readme}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24679
+#: doc/guix.texi:27868
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean remove-suffix?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24683
+#: doc/guix.texi:27872
 msgid "If set to @code{#t} and @code{repository-directory} is enabled, if any repositories are found with a suffix of @code{.git}, this suffix will be removed for the URL and name."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24688
+#: doc/guix.texi:27877
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer renamelimit"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24690
+#: doc/guix.texi:27879
 msgid "Maximum number of files to consider when detecting renames."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24695
+#: doc/guix.texi:27884
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string repository-sort"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24697
+#: doc/guix.texi:27886
 msgid "The way in which repositories in each section are sorted."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24702
+#: doc/guix.texi:27891
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} robots-list robots"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24704
+#: doc/guix.texi:27893
 msgid "Text used as content for the @code{robots} meta-tag."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24706
+#: doc/guix.texi:27895
 msgid "Defaults to @samp{(\"noindex\" \"nofollow\")}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24709
+#: doc/guix.texi:27898
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string root-desc"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24711
+#: doc/guix.texi:27900
 msgid "Text printed below the heading on the repository index page."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24713
+#: doc/guix.texi:27902
 msgid "Defaults to @samp{\"a fast webinterface for the git dscm\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24716
+#: doc/guix.texi:27905
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string root-readme"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24719
-msgid "The content of the file specified with this option will be included verbatim below the \"about\" link on the repository index page."
+#: doc/guix.texi:27908
+msgid "The content of the file specified with this option will be included verbatim below the ``about'' link on the repository index page."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24724
+#: doc/guix.texi:27913
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string root-title"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24726
+#: doc/guix.texi:27915
 msgid "Text printed as heading on the repository index page."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24731
+#: doc/guix.texi:27920
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean scan-hidden-path"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24737
-msgid "If set to @samp{#t} and repository-directory is enabled, repository-directory will recurse into directories whose name starts with a period.  Otherwise, repository-directory will stay away from such directories, considered as \"hidden\".  Note that this does not apply to the \".git\" directory in non-bare repos."
+#: doc/guix.texi:27926
+msgid "If set to @samp{#t} and repository-directory is enabled, repository-directory will recurse into directories whose name starts with a period.  Otherwise, repository-directory will stay away from such directories, considered as ``hidden''.  Note that this does not apply to the @file{.git} directory in non-bare repos."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24742
+#: doc/guix.texi:27931
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} list snapshots"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24745
+#: doc/guix.texi:27934
 msgid "Text which specifies the default set of snapshot formats that cgit generates links for."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24750
+#: doc/guix.texi:27939
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} repository-directory repository-directory"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24753
+#: doc/guix.texi:27942
 msgid "Name of the directory to scan for repositories (represents @code{scan-path})."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24755
+#: doc/guix.texi:27944
 msgid "Defaults to @samp{\"/srv/git\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24758
+#: doc/guix.texi:27947
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string section"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24761 doc/guix.texi:25077
+#: doc/guix.texi:27950 doc/guix.texi:28266
 msgid "The name of the current repository section - all repositories defined after this option will inherit the current section name."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24766
+#: doc/guix.texi:27955
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string section-sort"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24769
+#: doc/guix.texi:27958
 msgid "Flag which, when set to @samp{1}, will sort the sections on the repository listing by name."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24774
+#: doc/guix.texi:27963
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer section-from-path"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24777
+#: doc/guix.texi:27966
 msgid "A number which, if defined prior to repository-directory, specifies how many path elements from each repo path to use as a default section name."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24782
+#: doc/guix.texi:27971
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean side-by-side-diffs?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24785
+#: doc/guix.texi:27974
 msgid "If set to @samp{#t} shows side-by-side diffs instead of unidiffs per default."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24790
+#: doc/guix.texi:27979
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} file-object source-filter"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24793
+#: doc/guix.texi:27982
 msgid "Specifies a command which will be invoked to format plaintext blobs in the tree view."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24798
+#: doc/guix.texi:27987
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer summary-branches"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24801
-msgid "Specifies the number of branches to display in the repository \"summary\" view."
+#: doc/guix.texi:27990
+msgid "Specifies the number of branches to display in the repository ``summary'' view."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24806
+#: doc/guix.texi:27995
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer summary-log"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24809
-msgid "Specifies the number of log entries to display in the repository \"summary\" view."
+#: doc/guix.texi:27998
+msgid "Specifies the number of log entries to display in the repository ``summary'' view."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24814
+#: doc/guix.texi:28003
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer summary-tags"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24817
-msgid "Specifies the number of tags to display in the repository \"summary\" view."
+#: doc/guix.texi:28006
+msgid "Specifies the number of tags to display in the repository ``summary'' view."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24822
+#: doc/guix.texi:28011
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string strict-export"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24825
+#: doc/guix.texi:28014
 msgid "Filename which, if specified, needs to be present within the repository for cgit to allow access to that repository."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24830
+#: doc/guix.texi:28019
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string virtual-root"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24832
+#: doc/guix.texi:28021
 msgid "URL which, if specified, will be used as root for all cgit links."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24834
+#: doc/guix.texi:28023
 msgid "Defaults to @samp{\"/\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24837
+#: doc/guix.texi:28026
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} repository-cgit-configuration-list repositories"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24839
+#: doc/guix.texi:28028
 msgid "A list of @dfn{cgit-repo} records to use with config."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24843
+#: doc/guix.texi:28032
 msgid "Available @code{repository-cgit-configuration} fields are:"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24844
+#: doc/guix.texi:28033
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-list snapshots"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24847
+#: doc/guix.texi:28036
 msgid "A mask of snapshot formats for this repo that cgit generates links for, restricted by the global @code{snapshots} setting."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24852
+#: doc/guix.texi:28041
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-file-object source-filter"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24854
+#: doc/guix.texi:28043
 msgid "Override the default @code{source-filter}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24859
+#: doc/guix.texi:28048
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-string url"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24861
+#: doc/guix.texi:28050
 msgid "The relative URL used to access the repository."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24866
+#: doc/guix.texi:28055
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-file-object about-filter"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24868
+#: doc/guix.texi:28057
 msgid "Override the default @code{about-filter}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24873
+#: doc/guix.texi:28062
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-string branch-sort"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24876
+#: doc/guix.texi:28065
 msgid "Flag which, when set to @samp{age}, enables date ordering in the branch ref list, and when set to @samp{name} enables ordering by branch name."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24881
+#: doc/guix.texi:28070
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-list clone-url"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24883
+#: doc/guix.texi:28072
 msgid "A list of URLs which can be used to clone repo."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24888
+#: doc/guix.texi:28077
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-file-object commit-filter"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24890
+#: doc/guix.texi:28079
 msgid "Override the default @code{commit-filter}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24895
+#: doc/guix.texi:28084
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-string commit-sort"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24904
+#: doc/guix.texi:28093
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-string defbranch"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24909
-msgid "The name of the default branch for this repository.  If no such branch exists in the repository, the first branch name (when sorted) is used as default instead.  By default branch pointed to by HEAD, or \"master\" if there is no suitable HEAD."
+#: doc/guix.texi:28098
+msgid "The name of the default branch for this repository.  If no such branch exists in the repository, the first branch name (when sorted) is used as default instead.  By default branch pointed to by HEAD, or ``master'' if there is no suitable HEAD."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24914
+#: doc/guix.texi:28103
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-string desc"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24916
+#: doc/guix.texi:28105
 msgid "The value to show as repository description."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24921
+#: doc/guix.texi:28110
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-string homepage"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24923
+#: doc/guix.texi:28112
 msgid "The value to show as repository homepage."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24928
+#: doc/guix.texi:28117
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-file-object email-filter"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24930
+#: doc/guix.texi:28119
 msgid "Override the default @code{email-filter}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24935
+#: doc/guix.texi:28124
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} maybe-repo-boolean enable-commit-graph?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24938
+#: doc/guix.texi:28127
 msgid "A flag which can be used to disable the global setting @code{enable-commit-graph?}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24943
+#: doc/guix.texi:28132
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} maybe-repo-boolean enable-log-filecount?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24946
+#: doc/guix.texi:28135
 msgid "A flag which can be used to disable the global setting @code{enable-log-filecount?}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24951
+#: doc/guix.texi:28140
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} maybe-repo-boolean enable-log-linecount?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24954
+#: doc/guix.texi:28143
 msgid "A flag which can be used to disable the global setting @code{enable-log-linecount?}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24959
+#: doc/guix.texi:28148
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} maybe-repo-boolean enable-remote-branches?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24967
+#: doc/guix.texi:28156
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} maybe-repo-boolean enable-subject-links?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24970
+#: doc/guix.texi:28159
 msgid "A flag which can be used to override the global setting @code{enable-subject-links?}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24975
+#: doc/guix.texi:28164
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} maybe-repo-boolean enable-html-serving?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24978
+#: doc/guix.texi:28167
 msgid "A flag which can be used to override the global setting @code{enable-html-serving?}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24983
+#: doc/guix.texi:28172
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-boolean hide?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24986
+#: doc/guix.texi:28175
 msgid "Flag which, when set to @code{#t}, hides the repository from the repository index."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24991
+#: doc/guix.texi:28180
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-boolean ignore?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24993
+#: doc/guix.texi:28182
 msgid "Flag which, when set to @samp{#t}, ignores the repository."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:24998
+#: doc/guix.texi:28187
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-file-object logo"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:25001
+#: doc/guix.texi:28190
 msgid "URL which specifies the source of an image which will be used as a logo on this repo’s pages."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:25006
+#: doc/guix.texi:28195
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-string logo-link"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:25013
+#: doc/guix.texi:28202
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-file-object owner-filter"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:25015
+#: doc/guix.texi:28204
 msgid "Override the default @code{owner-filter}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:25020
+#: doc/guix.texi:28209
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-string module-link"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:25024
+#: doc/guix.texi:28213
 msgid "Text which will be used as the formatstring for a hyperlink when a submodule is printed in a directory listing.  The arguments for the formatstring are the path and SHA1 of the submodule commit."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:25029
+#: doc/guix.texi:28218
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} module-link-path module-link-path"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:25033
+#: doc/guix.texi:28222
 msgid "Text which will be used as the formatstring for a hyperlink when a submodule with the specified subdirectory path is printed in a directory listing."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:25038
+#: doc/guix.texi:28227
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-string max-stats"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:25040
+#: doc/guix.texi:28229
 msgid "Override the default maximum statistics period."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:25045
+#: doc/guix.texi:28234
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-string name"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:25047
+#: doc/guix.texi:28236
 msgid "The value to show as repository name."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:25052
+#: doc/guix.texi:28241
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-string owner"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:25054
+#: doc/guix.texi:28243
 msgid "A value used to identify the owner of the repository."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:25059
+#: doc/guix.texi:28248
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-string path"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:25061
+#: doc/guix.texi:28250
 msgid "An absolute path to the repository directory."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:25066
+#: doc/guix.texi:28255
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-string readme"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:25069
-msgid "A path (relative to repo) which specifies a file to include verbatim as the \"About\" page for this repo."
+#: doc/guix.texi:28258
+msgid "A path (relative to repo) which specifies a file to include verbatim as the ``About'' page for this repo."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:25074
+#: doc/guix.texi:28263
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-string section"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:25082
+#: doc/guix.texi:28271
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-list extra-options"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:25084 doc/guix.texi:25093
+#: doc/guix.texi:28273 doc/guix.texi:28282
 msgid "Extra options will be appended to cgitrc file."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:25091
+#: doc/guix.texi:28280
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} list extra-options"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:25105
+#: doc/guix.texi:28294
 msgid "However, it could be that you just want to get a @code{cgitrc} up and running.  In that case, you can pass an @code{opaque-cgit-configuration} as a record to @code{cgit-service-type}.  As its name indicates, an opaque configuration does not have easy reflective capabilities."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:25107
+#: doc/guix.texi:28296
 msgid "Available @code{opaque-cgit-configuration} fields are:"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:25108
+#: doc/guix.texi:28297
 #, no-wrap
 msgid "{@code{opaque-cgit-configuration} parameter} package cgit"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:25110
+#: doc/guix.texi:28299
 msgid "The cgit package."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:25112
+#: doc/guix.texi:28301
 #, no-wrap
 msgid "{@code{opaque-cgit-configuration} parameter} string string"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:25114
+#: doc/guix.texi:28303
 msgid "The contents of the @code{cgitrc}, as a string."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:25118
+#: doc/guix.texi:28307
 msgid "For example, if your @code{cgitrc} is just the empty string, you could instantiate a cgit service like this:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:25123
+#: doc/guix.texi:28312
 #, no-wrap
 msgid ""
 "(service cgit-service-type\n"
@@ -45789,40 +51841,40 @@ msgid ""
 msgstr ""
 
 #. type: subsubheading
-#: doc/guix.texi:25125
+#: doc/guix.texi:28314
 #, no-wrap
 msgid "Gitolite Service"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:25127
+#: doc/guix.texi:28316
 #, no-wrap
 msgid "Gitolite service"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:25128
+#: doc/guix.texi:28317
 #, no-wrap
 msgid "Git, hosting"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:25131
+#: doc/guix.texi:28320
 msgid "@uref{https://gitolite.com/gitolite/, Gitolite} is a tool for hosting Git repositories on a central server."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:25134
+#: doc/guix.texi:28323
 msgid "Gitolite can handle multiple repositories and users, and supports flexible configuration of the permissions for the users on the repositories."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:25137
+#: doc/guix.texi:28326
 msgid "The following example will configure Gitolite using the default @code{git} user, and the provided SSH public key."
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:25144
+#: doc/guix.texi:28333
 #, no-wrap
 msgid ""
 "(service gitolite-service-type\n"
@@ -45833,290 +51885,290 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:25149
+#: doc/guix.texi:28338
 msgid "Gitolite is configured through a special admin repository which you can clone, for example, if you setup Gitolite on @code{example.com}, you would run the following command to clone the admin repository."
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:25152
+#: doc/guix.texi:28341
 #, no-wrap
 msgid "git clone git@@example.com:gitolite-admin\n"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:25158
+#: doc/guix.texi:28347
 msgid "When the Gitolite service is activated, the provided @code{admin-pubkey} will be inserted in to the @file{keydir} directory in the gitolite-admin repository.  If this results in a change in the repository, it will be committed using the message ``gitolite setup by GNU Guix''."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:25159
+#: doc/guix.texi:28348
 #, no-wrap
 msgid "{Data Type} gitolite-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:25161
+#: doc/guix.texi:28350
 msgid "Data type representing the configuration for @code{gitolite-service-type}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:25163
+#: doc/guix.texi:28352
 #, no-wrap
 msgid "@code{package} (default: @var{gitolite})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:25165
+#: doc/guix.texi:28354
 msgid "Gitolite package to use."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:25166
+#: doc/guix.texi:28355
 #, no-wrap
 msgid "@code{user} (default: @var{git})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:25169
+#: doc/guix.texi:28358
 msgid "User to use for Gitolite.  This will be user that you use when accessing Gitolite over SSH."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:25170
+#: doc/guix.texi:28359
 #, no-wrap
 msgid "@code{group} (default: @var{git})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:25172
+#: doc/guix.texi:28361
 msgid "Group to use for Gitolite."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:25173
+#: doc/guix.texi:28362
 #, no-wrap
 msgid "@code{home-directory} (default: @var{\"/var/lib/gitolite\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:25175
+#: doc/guix.texi:28364
 msgid "Directory in which to store the Gitolite configuration and repositories."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:25176
+#: doc/guix.texi:28365
 #, no-wrap
 msgid "@code{rc-file} (default: @var{(gitolite-rc-file)})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:25179
+#: doc/guix.texi:28368
 msgid "A ``file-like'' object (@pxref{G-Expressions, file-like objects}), representing the configuration for Gitolite."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:25180
+#: doc/guix.texi:28369
 #, no-wrap
 msgid "@code{admin-pubkey} (default: @var{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:25184
+#: doc/guix.texi:28373
 msgid "A ``file-like'' object (@pxref{G-Expressions, file-like objects}) used to setup Gitolite.  This will be inserted in to the @file{keydir} directory within the gitolite-admin repository."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:25186
+#: doc/guix.texi:28375
 msgid "To specify the SSH key as a string, use the @code{plain-file} function."
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:25189
+#: doc/guix.texi:28378
 #, no-wrap
 msgid "(plain-file \"yourname.pub\" \"ssh-rsa AAAA... guix@@example.com\")\n"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:25194
+#: doc/guix.texi:28383
 #, no-wrap
 msgid "{Data Type} gitolite-rc-file"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:25196
+#: doc/guix.texi:28385
 msgid "Data type representing the Gitolite RC file."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:25198
+#: doc/guix.texi:28387
 #, no-wrap
 msgid "@code{umask} (default: @code{#o0077})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:25201
+#: doc/guix.texi:28390
 msgid "This controls the permissions Gitolite sets on the repositories and their contents."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:25205
+#: doc/guix.texi:28394
 msgid "A value like @code{#o0027} will give read access to the group used by Gitolite (by default: @code{git}). This is necessary when using Gitolite with software like cgit or gitweb."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:25206
+#: doc/guix.texi:28395
 #, no-wrap
 msgid "@code{git-config-keys} (default: @code{\"\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:25209
-msgid "Gitolite allows you to set git config values using the \"config\" keyword. This setting allows control over the config keys to accept."
+#: doc/guix.texi:28398
+msgid "Gitolite allows you to set git config values using the @samp{config} keyword. This setting allows control over the config keys to accept."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:25210
+#: doc/guix.texi:28399
 #, no-wrap
 msgid "@code{roles} (default: @code{'((\"READERS\" . 1) (\"WRITERS\" . ))})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:25212
+#: doc/guix.texi:28401
 msgid "Set the role names allowed to be used by users running the perms command."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:25213
+#: doc/guix.texi:28402
 #, no-wrap
 msgid "@code{enable} (default: @code{'(\"help\" \"desc\" \"info\" \"perms\" \"writable\" \"ssh-authkeys\" \"git-config\" \"daemon\" \"gitweb\")})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:25215
+#: doc/guix.texi:28404
 msgid "This setting controls the commands and features to enable within Gitolite."
 msgstr ""
 
 #. type: subsubheading
-#: doc/guix.texi:25223
+#: doc/guix.texi:28412
 #, no-wrap
 msgid "The Battle for Wesnoth Service"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:25224
+#: doc/guix.texi:28413
 #, no-wrap
 msgid "wesnothd"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:25228
+#: doc/guix.texi:28417
 msgid "@uref{https://wesnoth.org, The Battle for Wesnoth} is a fantasy, turn based tactical strategy game, with several single player campaigns, and multiplayer games (both networked and local)."
 msgstr ""
 
 #. type: defvar
-#: doc/guix.texi:25229
+#: doc/guix.texi:28418
 #, no-wrap
 msgid "{Scheme Variable} wesnothd-service-type"
 msgstr ""
 
 #. type: defvar
-#: doc/guix.texi:25233
+#: doc/guix.texi:28422
 msgid "Service type for the wesnothd service.  Its value must be a @code{wesnothd-configuration} object.  To run wesnothd in the default configuration, instantiate it as:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:25236
+#: doc/guix.texi:28425
 #, no-wrap
 msgid "(service wesnothd-service-type)\n"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:25239
+#: doc/guix.texi:28428
 #, no-wrap
 msgid "{Data Type} wesnothd-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:25241
+#: doc/guix.texi:28430
 msgid "Data type representing the configuration of @command{wesnothd}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:25243
+#: doc/guix.texi:28432
 #, no-wrap
 msgid "@code{package} (default: @code{wesnoth-server})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:25245
+#: doc/guix.texi:28434
 msgid "The wesnoth server package to use."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:25246
+#: doc/guix.texi:28435
 #, no-wrap
 msgid "@code{port} (default: @code{15000})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:25248
+#: doc/guix.texi:28437
 msgid "The port to bind the server to."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:25254
+#: doc/guix.texi:28443
 #, no-wrap
 msgid "pam-mount"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:25259
+#: doc/guix.texi:28448
 msgid "The @code{(gnu services pam-mount)} module provides a service allowing users to mount volumes when they log in.  It should be able to mount any volume format supported by the system."
 msgstr ""
 
 #. type: defvar
-#: doc/guix.texi:25260
+#: doc/guix.texi:28449
 #, no-wrap
 msgid "{Scheme Variable} pam-mount-service-type"
 msgstr ""
 
 #. type: defvar
-#: doc/guix.texi:25262
+#: doc/guix.texi:28451
 msgid "Service type for PAM Mount support."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:25264
+#: doc/guix.texi:28453
 #, no-wrap
 msgid "{Data Type} pam-mount-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:25266
+#: doc/guix.texi:28455
 #, fuzzy
 #| msgid "Manage the operating system configuration."
 msgid "Data type representing the configuration of PAM Mount."
 msgstr "Управление конфигурацией операционной системы."
 
 #. type: code{#1}
-#: doc/guix.texi:25270
+#: doc/guix.texi:28459
 #, fuzzy, no-wrap
 #| msgid "Modules"
 msgid "rules"
 msgstr "Модули"
 
 #. type: table
-#: doc/guix.texi:25273
+#: doc/guix.texi:28462
 msgid "The configuration rules that will be used to generate @file{/etc/security/pam_mount.conf.xml}."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:25277
+#: doc/guix.texi:28466
 msgid "The configuration rules are SXML elements (@pxref{SXML,,, guile, GNU Guile Reference Manual}), and the the default ones don't mount anything for anyone at login:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:25292
+#: doc/guix.texi:28481
 #, no-wrap
 msgid ""
 "`((debug (@@ (enable \"0\")))\n"
@@ -46135,12 +52187,12 @@ msgid ""
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:25298
-msgid "Some @code{volume} elements must be added to automatically mount volumes at login.  Here's an example allowing the user @code{alice} to mount her encrypted @code{HOME} directory and allowing the user @code{bob} to mount the partition where he stores his data:"
+#: doc/guix.texi:28487
+msgid "Some @code{volume} elements must be added to automatically mount volumes at login.  Here's an example allowing the user @code{alice} to mount her encrypted @env{HOME} directory and allowing the user @code{bob} to mount the partition where he stores his data:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:25323
+#: doc/guix.texi:28512
 #, no-wrap
 msgid ""
 "(define pam-mount-rules\n"
@@ -46170,7 +52222,7 @@ msgid ""
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:25327
+#: doc/guix.texi:28516
 #, no-wrap
 msgid ""
 "(service pam-mount-service-type\n"
@@ -46179,370 +52231,732 @@ msgid ""
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:25331
+#: doc/guix.texi:28520
 msgid "The complete list of possible options can be found in the man page for @uref{http://pam-mount.sourceforge.net/pam_mount.conf.5.html, pam_mount.conf}."
 msgstr ""
 
 #. type: subsubheading
-#: doc/guix.texi:25338
+#: doc/guix.texi:28527
+#, no-wrap
+msgid "Guix Build Coordinator"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:28533
+msgid "The @uref{https://git.cbaines.net/guix/build-coordinator/,Guix Build Coordinator} aids in distributing derivation builds among machines running an @dfn{agent}.  The build daemon is still used to build the derivations, but the Guix Build Coordinator manages allocating builds and working with the results."
+msgstr ""
+
+#. type: quotation
+#: doc/guix.texi:28538
+msgid "This service is considered experimental.  Configuration options may be changed in a backwards-incompatible manner, and not all features have been thorougly tested."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:28545
+msgid "The Guix Build Coordinator consists of one @dfn{coordinator}, and one or more connected @dfn{agent} processes. The coordinator process handles clients submitting builds, and allocating builds to agents. The agent processes talk to a build daemon to actually perform the builds, then send the results back to the coordinator."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:28549
+msgid "There is a script to run the coordinator component of the Guix Build Coordinator, but the Guix service uses a custom Guile script instead, to provide better integration with G-expressions used in the configuration."
+msgstr ""
+
+#. type: defvar
+#: doc/guix.texi:28550
+#, fuzzy, no-wrap
+#| msgid "{Scheme Variable} boot-service-type"
+msgid "{Scheme Variable} guix-build-coordinator-service-type"
+msgstr "{Scheme Variable} boot-service-type"
+
+#. type: defvar
+#: doc/guix.texi:28553
+msgid "Service type for the Guix Build Coordinator.  Its value must be a @code{guix-build-coordinator-configuration} object."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:28555
+#, fuzzy, no-wrap
+#| msgid "System Configuration"
+msgid "{Data Type} guix-build-coordinator-configuration"
+msgstr "Конфигурирование системы"
+
+#. type: deftp
+#: doc/guix.texi:28557
+#, fuzzy
+#| msgid "Manage the operating system configuration."
+msgid "Data type representing the configuration of the Guix Build Coordinator."
+msgstr "Управление конфигурацией операционной системы."
+
+#. type: item
+#: doc/guix.texi:28559 doc/guix.texi:28603 doc/guix.texi:28662
+#, fuzzy, no-wrap
+#| msgid "@code{speed} (default: @code{1.0})"
+msgid "@code{package} (default: @code{guix-build-coordinator})"
+msgstr "@code{speed} (default: @code{1.0})"
+
+#. type: table
+#: doc/guix.texi:28561 doc/guix.texi:28605 doc/guix.texi:28664
+#, fuzzy
+#| msgid "The package data type."
+msgid "The Guix Build Coordinator package to use."
+msgstr "Тип данных пакет"
+
+#. type: item
+#: doc/guix.texi:28562
+#, fuzzy, no-wrap
+#| msgid "@code{speed} (default: @code{1.0})"
+msgid "@code{user} (default: @code{\"guix-build-coordinator\"})"
+msgstr "@code{speed} (default: @code{1.0})"
+
+#. type: table
+#: doc/guix.texi:28564 doc/guix.texi:28608 doc/guix.texi:28667
+#: doc/guix.texi:28713
+#, fuzzy
+#| msgid "The mcron service."
+msgid "The system user to run the service as."
+msgstr "Сервис mcron."
+
+#. type: item
+#: doc/guix.texi:28565
+#, fuzzy, no-wrap
+#| msgid "@code{port} (default: @code{22})"
+msgid "@code{group} (default: @code{\"guix-build-coordinator\"})"
+msgstr "@code{port} (default: @code{22})"
+
+#. type: table
+#: doc/guix.texi:28567 doc/guix.texi:28716
+msgid "The system group to run the service as."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:28568
+#, no-wrap
+msgid "@code{database-uri-string} (default: @code{\"sqlite:///var/lib/guix-build-coordinator/guix_build_coordinator.db\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:28570
+#, fuzzy
+#| msgid "The host name of the remote machine."
+msgid "The URI to use for the database."
+msgstr "Имя хоста удалённой машины"
+
+#. type: item
+#: doc/guix.texi:28571
+#, fuzzy, no-wrap
+#| msgid "@code{speed} (default: @code{1.0})"
+msgid "@code{agent-communication-uri} (default: @code{\"http://0.0.0.0:8745\"})"
+msgstr "@code{speed} (default: @code{1.0})"
+
+#. type: table
+#: doc/guix.texi:28573
+msgid "The URI describing how to listen to requests from agent processes."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:28574
+#, fuzzy, no-wrap
+#| msgid "@code{speed} (default: @code{1.0})"
+msgid "@code{client-communication-uri} (default: @code{\"http://127.0.0.1:8746\"})"
+msgstr "@code{speed} (default: @code{1.0})"
+
+#. type: table
+#: doc/guix.texi:28578
+msgid "The URI describing how to listen to requests from clients.  The client API allows submitting builds and currently isn't authenticated, so take care when configuring this value."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:28579
+#, fuzzy, no-wrap
+#| msgid "@code{features} (default: @code{'()})"
+msgid "@code{allocation-strategy} (default: @code{#~basic-build-allocation-strategy})"
+msgstr "@code{features} (default: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:28583
+msgid "A G-expression for the allocation strategy to be used.  This is a procedure that takes the datastore as an argument and populates the allocation plan in the database."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:28584
+#, fuzzy, no-wrap
+#| msgid "@code{inputs} (default: @code{'()})"
+msgid "@code{hooks} (default: @var{'()})"
+msgstr "@code{inputs} (default: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:28587
+msgid "An association list of hooks.  These provide a way to execute arbitrary code upon certain events, like a build result being processed."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:28588
+#, fuzzy, no-wrap
+#| msgid "@code{port} (default: @code{22})"
+msgid "@code{guile} (default: @code{guile-3.0-latest})"
+msgstr "@code{port} (default: @code{22})"
+
+#. type: table
+#: doc/guix.texi:28590
+msgid "The Guile package with which to run the Guix Build Coordinator."
+msgstr ""
+
+#. type: defvar
+#: doc/guix.texi:28594
+#, fuzzy, no-wrap
+#| msgid "{Scheme Procedure} sane-service-type"
+msgid "{Scheme Variable} guix-build-coordinator-agent-service-type"
+msgstr "{Процедура Scheme} sane-service-type"
+
+#. type: defvar
+#: doc/guix.texi:28597
+msgid "Service type for a Guix Build Coordinator agent.  Its value must be a @code{guix-build-coordinator-agent-configuration} object."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:28599
+#, fuzzy, no-wrap
+#| msgid "System Configuration"
+msgid "{Data Type} guix-build-coordinator-agent-configuration"
+msgstr "Конфигурирование системы"
+
+#. type: deftp
+#: doc/guix.texi:28601
+#, fuzzy
+#| msgid "Manage the operating system configuration."
+msgid "Data type representing the configuration a Guix Build Coordinator agent."
+msgstr "Управление конфигурацией операционной системы."
+
+#. type: item
+#: doc/guix.texi:28606
+#, fuzzy, no-wrap
+#| msgid "@code{speed} (default: @code{1.0})"
+msgid "@code{user} (default: @code{\"guix-build-coordinator-agent\"})"
+msgstr "@code{speed} (default: @code{1.0})"
+
+#. type: item
+#: doc/guix.texi:28609 doc/guix.texi:28668
+#, fuzzy, no-wrap
+#| msgid "@code{port} (default: @code{22})"
+msgid "@code{coordinator} (default: @code{\"http://localhost:8745\"})"
+msgstr "@code{port} (default: @code{22})"
+
+#. type: table
+#: doc/guix.texi:28611 doc/guix.texi:28670
+msgid "The URI to use when connecting to the coordinator."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:28616
+msgid "The UUID of the agent.  This should be generated by the coordinator process, stored in the coordinator database, and used by the intended agent."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:28620
+msgid "The password to use when connecting to the coordinator.  A file to read the password from can also be specified, and this is more secure."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:28621
+#, fuzzy, no-wrap
+#| msgid "@code{port} (default: @code{22})"
+msgid "@code{password-file} (default: @code{#f})"
+msgstr "@code{port} (default: @code{22})"
+
+#. type: table
+#: doc/guix.texi:28624
+msgid "A file containing the password to use when connecting to the coordinator."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:28625
+#, fuzzy, no-wrap
+#| msgid "@code{features} (default: @code{'()})"
+msgid "@code{systems} (default: @var{#f})"
+msgstr "@code{features} (default: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:28628
+msgid "The systems for which this agent should fetch builds.  The agent process will use the current system it's running on as the default."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:28629
+#, fuzzy, no-wrap
+#| msgid "@code{parallel-builds} (default: @code{1})"
+msgid "@code{max-parallel-builds} (default: @code{1})"
+msgstr "@code{parallel-builds} (default: @code{1})"
+
+#. type: table
+#: doc/guix.texi:28631
+#, fuzzy
+#| msgid "The number of builds that may run in parallel on the machine."
+msgid "The number of builds to perform in parallel."
+msgstr "Число сборок, которые могут быть запущены на машине."
+
+#. type: item
+#: doc/guix.texi:28632
+#, fuzzy, no-wrap
+#| msgid "@code{port} (default: @code{22})"
+msgid "@code{derivation-substitute-urls} (default: @code{1})"
+msgstr "@code{port} (default: @code{22})"
+
+#. type: table
+#: doc/guix.texi:28635
+msgid "URLs from which to attempt to fetch substitutes for derivations, if the derivations aren't already available."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:28636
+#, fuzzy, no-wrap
+#| msgid "@code{native-inputs} (default: @code{'()})"
+msgid "@code{non-derivation-substitute-urls} (default: @code{1})"
+msgstr "@code{native-inputs} (default: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:28639
+msgid "URLs from which to attempt to fetch substitutes for build inputs, if the input store items aren't already available."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:28649
+msgid "The Guix Build Coordinator package contains a script to query an instance of the Guix Data Service for derivations to build, and then submit builds for those derivations to the coordinator.  The service type below assists in running this script.  This is an additional tool that may be useful when building derivations contained within an instance of the Guix Data Service."
+msgstr ""
+
+#. type: defvar
+#: doc/guix.texi:28650
+#, fuzzy, no-wrap
+#| msgid "{Scheme Procedure} sane-service-type"
+msgid "{Scheme Variable} guix-build-coordinator-queue-builds-service-type"
+msgstr "{Процедура Scheme} sane-service-type"
+
+#. type: defvar
+#: doc/guix.texi:28655
+msgid "Service type for the guix-build-coordinator-queue-builds-from-guix-data-service script.  Its value must be a @code{guix-build-coordinator-queue-builds-configuration} object."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:28657
+#, fuzzy, no-wrap
+#| msgid "System Configuration"
+msgid "{Data Type} guix-build-coordinator-queue-builds-configuration"
+msgstr "Конфигурирование системы"
+
+#. type: deftp
+#: doc/guix.texi:28660
+#, fuzzy
+#| msgid "Manage the operating system configuration."
+msgid "Data type representing the options to the queue builds from guix data service script."
+msgstr "Управление конфигурацией операционной системы."
+
+#. type: item
+#: doc/guix.texi:28665
+#, fuzzy, no-wrap
+#| msgid "@code{speed} (default: @code{1.0})"
+msgid "@code{user} (default: @code{\"guix-build-coordinator-queue-builds\"})"
+msgstr "@code{speed} (default: @code{1.0})"
+
+#. type: item
+#: doc/guix.texi:28671
+#, fuzzy, no-wrap
+#| msgid "@code{speed} (default: @code{1.0})"
+msgid "@code{systems} (default: @code{#f})"
+msgstr "@code{speed} (default: @code{1.0})"
+
+#. type: table
+#: doc/guix.texi:28673
+msgid "The systems for which to fetch derivations to build."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:28674
+#, fuzzy, no-wrap
+#| msgid "@code{port} (default: @code{22})"
+msgid "@code{systems-and-targets} (default: @code{#f})"
+msgstr "@code{port} (default: @code{22})"
+
+#. type: table
+#: doc/guix.texi:28677
+msgid "An association list of system and target pairs for which to fetch derivations to build."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:28678
+#, fuzzy, no-wrap
+#| msgid "@code{speed} (default: @code{1.0})"
+msgid "@code{guix-data-service} (default: @code{\"https://data.guix.gnu.org\"})"
+msgstr "@code{speed} (default: @code{1.0})"
+
+#. type: table
+#: doc/guix.texi:28681
+msgid "The Guix Data Service instance from which to query to find out about derivations to build."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:28682
+#, no-wrap
+msgid "@code{processed-commits-file} (default: @code{\"/var/cache/guix-build-coordinator-queue-builds/processed-commits\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:28685
+msgid "A file to record which commits have been processed, to avoid needlessly processing them again if the service is restarted."
+msgstr ""
+
+#. type: subsubheading
+#: doc/guix.texi:28689
 #, fuzzy, no-wrap
 #| msgid "Database Services"
 msgid "Guix Data Service"
 msgstr "Сервисы баз данных"
 
 #. type: Plain text
-#: doc/guix.texi:25342
+#: doc/guix.texi:28693
 msgid "The @uref{http://data.guix.gnu.org,Guix Data Service} processes, stores and provides data about GNU Guix.  This includes information about packages, derivations and lint warnings."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:25345
+#: doc/guix.texi:28696
 msgid "The data is stored in a PostgreSQL database, and available through a web interface."
 msgstr ""
 
 #. type: defvar
-#: doc/guix.texi:25346
+#: doc/guix.texi:28697
 #, no-wrap
 msgid "{Scheme Variable} guix-data-service-type"
 msgstr ""
 
 #. type: defvar
-#: doc/guix.texi:25351
+#: doc/guix.texi:28702
 msgid "Service type for the Guix Data Service.  Its value must be a @code{guix-data-service-configuration} object.  The service optionally extends the getmail service, as the guix-commits mailing list is used to find out about changes in the Guix git repository."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:25353
+#: doc/guix.texi:28704
 #, no-wrap
 msgid "{Data Type} guix-data-service-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:25355
+#: doc/guix.texi:28706
 msgid "Data type representing the configuration of the Guix Data Service."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:25357
+#: doc/guix.texi:28708
 #, fuzzy, no-wrap
 #| msgid "@code{speed} (default: @code{1.0})"
 msgid "@code{package} (default: @code{guix-data-service})"
 msgstr "@code{speed} (default: @code{1.0})"
 
 #. type: table
-#: doc/guix.texi:25359
+#: doc/guix.texi:28710
 msgid "The Guix Data Service package to use."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:25360
+#: doc/guix.texi:28711
 #, fuzzy, no-wrap
 #| msgid "@code{speed} (default: @code{1.0})"
 msgid "@code{user} (default: @code{\"guix-data-service\"})"
 msgstr "@code{speed} (default: @code{1.0})"
 
-#. type: table
-#: doc/guix.texi:25362
-#, fuzzy
-#| msgid "The mcron service."
-msgid "The system user to run the service as."
-msgstr "Сервис mcron."
-
 #. type: item
-#: doc/guix.texi:25363
+#: doc/guix.texi:28714
 #, fuzzy, no-wrap
 #| msgid "@code{port} (default: @code{22})"
 msgid "@code{group} (default: @code{\"guix-data-service\"})"
 msgstr "@code{port} (default: @code{22})"
 
-#. type: table
-#: doc/guix.texi:25365
-msgid "The system group to run the service as."
-msgstr ""
-
 #. type: item
-#: doc/guix.texi:25366
+#: doc/guix.texi:28717
 #, fuzzy, no-wrap
 #| msgid "@code{port} (default: @code{22})"
 msgid "@code{port} (default: @code{8765})"
 msgstr "@code{port} (default: @code{22})"
 
 #. type: table
-#: doc/guix.texi:25368
+#: doc/guix.texi:28719
 #, fuzzy
 #| msgid "The rottlog service."
 msgid "The port to bind the web service to."
 msgstr "Сервис rottlog."
 
 #. type: item
-#: doc/guix.texi:25369
+#: doc/guix.texi:28720
 #, fuzzy, no-wrap
 #| msgid "@code{speed} (default: @code{1.0})"
 msgid "@code{host} (default: @code{\"127.0.0.1\"})"
 msgstr "@code{speed} (default: @code{1.0})"
 
 #. type: table
-#: doc/guix.texi:25371
+#: doc/guix.texi:28722
 #, fuzzy
 #| msgid "The rottlog service."
 msgid "The host to bind the web service to."
 msgstr "Сервис rottlog."
 
 #. type: item
-#: doc/guix.texi:25372
+#: doc/guix.texi:28723
 #, fuzzy, no-wrap
 #| msgid "@code{parallel-builds} (default: @code{1})"
 msgid "@code{getmail-idle-mailboxes} (default: @code{#f})"
 msgstr "@code{parallel-builds} (default: @code{1})"
 
 #. type: table
-#: doc/guix.texi:25375
+#: doc/guix.texi:28726
 msgid "If set, this is the list of mailboxes that the getmail service will be configured to listen to."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:25376
+#: doc/guix.texi:28727
 #, fuzzy, no-wrap
 #| msgid "@code{compression-level} (default: @code{3})"
 msgid "@code{commits-getmail-retriever-configuration} (default: @code{#f})"
 msgstr "@code{compression-level} (default: @code{3})"
 
 #. type: table
-#: doc/guix.texi:25380
+#: doc/guix.texi:28731
 msgid "If set, this is the @code{getmail-retriever-configuration} object with which to configure getmail to fetch mail from the guix-commits mailing list."
 msgstr ""
 
+#. type: item
+#: doc/guix.texi:28732
+#, no-wrap
+msgid "@code{extra-options} (default: @var{'()})"
+msgstr ""
+
 #. type: table
-#: doc/guix.texi:25383
+#: doc/guix.texi:28734
 #, fuzzy
 #| msgid "@code{port} (default: @code{22})"
 msgid "Extra command line options for @code{guix-data-service}."
 msgstr "@code{port} (default: @code{22})"
 
 #. type: item
-#: doc/guix.texi:25384
+#: doc/guix.texi:28735
 #, fuzzy, no-wrap
 #| msgid "@code{features} (default: @code{'()})"
 msgid "@code{extra-process-jobs-options} (default: @var{'()})"
 msgstr "@code{features} (default: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:25386
+#: doc/guix.texi:28737
 msgid "Extra command line options for @code{guix-data-service-process-jobs}."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:25393
+#: doc/guix.texi:28744
 #, no-wrap
 msgid "oom"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:25394
+#: doc/guix.texi:28745
 #, no-wrap
 msgid "out of memory killer"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:25395
+#: doc/guix.texi:28746
 #, no-wrap
 msgid "earlyoom"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:25396
+#: doc/guix.texi:28747
 #, no-wrap
 msgid "early out of memory daemon"
 msgstr ""
 
-#. type: subsection
-#: doc/guix.texi:25397
+#. type: subsubheading
+#: doc/guix.texi:28748
 #, fuzzy, no-wrap
 #| msgid "Mail Services"
 msgid "Early OOM Service"
 msgstr "Почтовые сервисы"
 
 #. type: Plain text
-#: doc/guix.texi:25404
+#: doc/guix.texi:28755
 msgid "@uref{https://github.com/rfjakob/earlyoom,Early OOM}, also known as Earlyoom, is a minimalist out of memory (OOM) daemon that runs in user space and provides a more responsive and configurable alternative to the in-kernel OOM killer.  It is useful to prevent the system from becoming unresponsive when it runs out of memory."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:25405
+#: doc/guix.texi:28756
 #, no-wrap
 msgid "{Scheme Variable} earlyoom-service-type"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:25410
+#: doc/guix.texi:28761
 msgid "The service type for running @command{earlyoom}, the Early OOM daemon.  Its value must be a @code{earlyoom-configuration} object, described below.  The service can be instantiated in its default configuration with:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:25413
+#: doc/guix.texi:28764
 #, no-wrap
 msgid "(service earlyoom-service-type)\n"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:25416
+#: doc/guix.texi:28767
 #, no-wrap
 msgid "{Data Type} earlyoom-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:25418
+#: doc/guix.texi:28769
 msgid "This is the configuration record for the @code{earlyoom-service-type}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:25420
+#: doc/guix.texi:28771
 #, fuzzy, no-wrap
 #| msgid "@code{port} (default: @code{22})"
 msgid "@code{earlyoom} (default: @var{earlyoom})"
 msgstr "@code{port} (default: @code{22})"
 
 #. type: table
-#: doc/guix.texi:25422
+#: doc/guix.texi:28773
 #, fuzzy
 #| msgid "The package data type."
 msgid "The Earlyoom package to use."
 msgstr "Тип данных пакет"
 
 #. type: item
-#: doc/guix.texi:25423
+#: doc/guix.texi:28774
 #, fuzzy, no-wrap
 #| msgid "@code{parallel-builds} (default: @code{1})"
 msgid "@code{minimum-available-memory} (default: @code{10})"
 msgstr "@code{parallel-builds} (default: @code{1})"
 
 #. type: table
-#: doc/guix.texi:25425
+#: doc/guix.texi:28776
 msgid "The threshold for the minimum @emph{available} memory, in percentages."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:25426
+#: doc/guix.texi:28777
 #, fuzzy, no-wrap
 #| msgid "@code{speed} (default: @code{1.0})"
 msgid "@code{minimum-free-swap} (default: @code{10})"
 msgstr "@code{speed} (default: @code{1.0})"
 
 #. type: table
-#: doc/guix.texi:25428
+#: doc/guix.texi:28779
 msgid "The threshold for the minimum free swap memory, in percentages."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:25429
+#: doc/guix.texi:28780
 #, fuzzy, no-wrap
 #| msgid "@code{speed} (default: @code{1.0})"
 msgid "@code{prefer-regexp} (default: @code{#f})"
 msgstr "@code{speed} (default: @code{1.0})"
 
 #. type: table
-#: doc/guix.texi:25432
+#: doc/guix.texi:28783
 msgid "A regular expression (as a string) to match the names of the processes that should be preferably killed."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:25433
+#: doc/guix.texi:28784
 #, fuzzy, no-wrap
 #| msgid "@code{port} (default: @code{22})"
 msgid "@code{avoid-regexp} (default: @code{#f})"
 msgstr "@code{port} (default: @code{22})"
 
 #. type: table
-#: doc/guix.texi:25436
+#: doc/guix.texi:28787
 msgid "A regular expression (as a string) to match the names of the processes that should @emph{not} be killed."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:25437
+#: doc/guix.texi:28788
 #, fuzzy, no-wrap
 #| msgid "@code{port} (default: @code{22})"
 msgid "@code{memory-report-interval} (default: @code{0})"
 msgstr "@code{port} (default: @code{22})"
 
 #. type: table
-#: doc/guix.texi:25440
+#: doc/guix.texi:28791
 msgid "The interval in seconds at which a memory report is printed.  It is disabled by default."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:25441
+#: doc/guix.texi:28792
 #, fuzzy, no-wrap
 #| msgid "@code{compression-level} (default: @code{3})"
 msgid "@code{ignore-positive-oom-score-adj?} (default: @code{#f})"
 msgstr "@code{compression-level} (default: @code{3})"
 
 #. type: table
-#: doc/guix.texi:25444
+#: doc/guix.texi:28795
 msgid "A boolean indicating whether the positive adjustments set in @file{/proc/*/oom_score_adj}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:25445
+#: doc/guix.texi:28796
 #, fuzzy, no-wrap
 #| msgid "@code{speed} (default: @code{1.0})"
 msgid "@code{show-debug-messages?} (default: @code{#f})"
 msgstr "@code{speed} (default: @code{1.0})"
 
 #. type: table
-#: doc/guix.texi:25448
+#: doc/guix.texi:28799
 msgid "A boolean indicating whether debug messages should be printed.  The logs are saved at @file{/var/log/earlyoom.log}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:25449
+#: doc/guix.texi:28800
 #, fuzzy, no-wrap
 #| msgid "@code{speed} (default: @code{1.0})"
 msgid "@code{send-notification-command} (default: @code{#f})"
 msgstr "@code{speed} (default: @code{1.0})"
 
 #. type: table
-#: doc/guix.texi:25452
+#: doc/guix.texi:28803
 msgid "This can be used to provide a custom command used for sending notifications."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:25455
+#: doc/guix.texi:28806
 #, no-wrap
 msgid "modprobe"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:25456
+#: doc/guix.texi:28807
 #, no-wrap
 msgid "kernel module loader"
 msgstr ""
 
-#. type: subsubsection
-#: doc/guix.texi:25457
+#. type: subsubheading
+#: doc/guix.texi:28808
 #, fuzzy, no-wrap
 #| msgid "Kerberos Services"
 msgid "Kernel Module Loader Service"
 msgstr "Сервисы Kerberos"
 
 #. type: Plain text
-#: doc/guix.texi:25463
+#: doc/guix.texi:28814
 msgid "The kernel module loader service allows one to load loadable kernel modules at boot.  This is especially useful for modules that don't autoload and need to be manually loaded, as it's the case with @code{ddcci}."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:25464
+#: doc/guix.texi:28815
 #, fuzzy, no-wrap
 #| msgid "{Scheme Procedure} sane-service-type"
 msgid "{Scheme Variable} kernel-module-loader-service-type"
 msgstr "{Процедура Scheme} sane-service-type"
 
 #. type: deffn
-#: doc/guix.texi:25470
+#: doc/guix.texi:28821
 msgid "The service type for loading loadable kernel modules at boot with @command{modprobe}.  Its value must be a list of strings representing module names.  For example loading the drivers provided by @code{ddcci-driver-linux}, in debugging mode by passing some module parameters, can be done as follow:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:25475
+#: doc/guix.texi:28826
 #, no-wrap
 msgid ""
 "(use-modules (gnu) (gnu services))\n"
@@ -46552,7 +52966,7 @@ msgid ""
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:25479
+#: doc/guix.texi:28830
 #, no-wrap
 msgid ""
 "(define ddcci-config\n"
@@ -46562,7 +52976,7 @@ msgid ""
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:25489
+#: doc/guix.texi:28840
 #, no-wrap
 msgid ""
 "(operating-system\n"
@@ -46577,69 +52991,266 @@ msgid ""
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:25495
+#: doc/guix.texi:28843
+#, no-wrap
+msgid "zram"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:28844
+#, no-wrap
+msgid "compressed swap"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:28845
+#, no-wrap
+msgid "Compressed RAM-based block devices"
+msgstr ""
+
+#. type: subsubheading
+#: doc/guix.texi:28846
+#, fuzzy, no-wrap
+#| msgid "Game Services"
+msgid "Zram Device Service"
+msgstr "Игровые службы"
+
+#. type: Plain text
+#: doc/guix.texi:28852
+msgid "The Zram device service provides a compressed swap device in system memory.  The Linux Kernel documentation has more information about @uref{https://www.kernel.org/doc/html/latest/admin-guide/blockdev/zram.html,zram} devices."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:28853
+#, fuzzy, no-wrap
+#| msgid "{Scheme Procedure} sane-service-type"
+msgid "{Scheme Variable} zram-device-service-type"
+msgstr "{Процедура Scheme} sane-service-type"
+
+#. type: deffn
+#: doc/guix.texi:28857
+msgid "This service creates the zram block device, formats it as swap and enables it as a swap device.  The service's value is a @code{zram-device-configuration} record."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:28858
+#, fuzzy, no-wrap
+#| msgid "{Data Type} pagekite-configuration"
+msgid "{Data Type} zram-device-configuration"
+msgstr "{Data Type} pagekite-configuration"
+
+#. type: deftp
+#: doc/guix.texi:28861
+#, fuzzy
+#| msgid "Manage the operating system configuration."
+msgid "This is the data type representing the configuration for the zram-device service."
+msgstr "Управление конфигурацией операционной системы."
+
+#. type: item
+#: doc/guix.texi:28863
+#, fuzzy, no-wrap
+#| msgid "@code{port} (default: @code{22})"
+msgid "@code{size} (default @code{\"1G\"})"
+msgstr "@code{port} (default: @code{22})"
+
+#. type: table
+#: doc/guix.texi:28867
+msgid "This is the amount of space you wish to provide for the zram device.  It accepts a string and can be a number of bytes or use a suffix, eg.: @code{\"512M\"} or @code{1024000}."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:28867
+#, fuzzy, no-wrap
+#| msgid "@code{compression-level} (default: @code{3})"
+msgid "@code{compression-algorithm} (default @code{'lzo})"
+msgstr "@code{compression-level} (default: @code{3})"
+
+#. type: table
+#: doc/guix.texi:28871
+msgid "This is the compression algorithm you wish to use.  It is difficult to list all the possible compression options, but common ones supported by Guix's Linux Libre Kernel include @code{'lzo}, @code{'lz4} and @code{'zstd}."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:28871
+#, fuzzy, no-wrap
+#| msgid "@code{port} (default: @code{22})"
+msgid "@code{memory-limit} (default @code{0})"
+msgstr "@code{port} (default: @code{22})"
+
+#. type: table
+#: doc/guix.texi:28878
+msgid "This is the maximum amount of memory which the zram device can use.  Setting it to '0' disables the limit.  While it is generally expected that compression will be 2:1, it is possible that uncompressable data can be written to swap and this is a method to limit how much memory can be used.  It accepts a string and can be a number of bytes or use a suffix, eg.: @code{\"2G\"}."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:28878
+#, fuzzy, no-wrap
+#| msgid "@code{port} (default: @code{22})"
+msgid "@code{priority} (default @code{-1})"
+msgstr "@code{port} (default: @code{22})"
+
+#. type: table
+#: doc/guix.texi:28883
+msgid "This is the priority of the swap device created from the zram device.  @code{swapon} accepts values between -1 and 32767, with higher values indicating higher priority.  Higher priority swap will generally be used first."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:28891
+#, fuzzy, no-wrap
+#| msgid "{Scheme Procedure} sane-service-type"
+msgid "{Scheme Variable} hurd-console-service-type"
+msgstr "{Процедура Scheme} sane-service-type"
+
+#. type: defvr
+#: doc/guix.texi:28893
+msgid "This service starts the fancy @code{VGA} console client on the Hurd."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:28895
+msgid "The service's value is a @code{hurd-console-configuration} record."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:28897
+#, fuzzy, no-wrap
+#| msgid "System Configuration"
+msgid "{Data Type} hurd-console-configuration"
+msgstr "Конфигурирование системы"
+
+#. type: deftp
+#: doc/guix.texi:28900
+#, fuzzy
+#| msgid "Manage the operating system configuration."
+msgid "This is the data type representing the configuration for the hurd-console-service."
+msgstr "Управление конфигурацией операционной системы."
+
+#. type: item
+#: doc/guix.texi:28902 doc/guix.texi:28918
+#, fuzzy, no-wrap
+#| msgid "@code{port} (default: @code{22})"
+msgid "@code{hurd} (default: @var{hurd})"
+msgstr "@code{port} (default: @code{22})"
+
+#. type: table
+#: doc/guix.texi:28904 doc/guix.texi:28920
+#, fuzzy
+#| msgid "The package data type."
+msgid "The Hurd package to use."
+msgstr "Тип данных пакет"
+
+#. type: defvr
+#: doc/guix.texi:28907
+#, fuzzy, no-wrap
+#| msgid "{Scheme Procedure} sane-service-type"
+msgid "{Scheme Variable} hurd-getty-service-type"
+msgstr "{Процедура Scheme} sane-service-type"
+
+#. type: defvr
+#: doc/guix.texi:28909
+msgid "This service starts a tty using the Hurd @code{getty} program."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:28911
+msgid "The service's value is a @code{hurd-getty-configuration} record."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:28913
+#, fuzzy, no-wrap
+#| msgid "{Data Type} build-machine"
+msgid "{Data Type} hurd-getty-configuration"
+msgstr "{Тип данных} build-machine"
+
+#. type: deftp
+#: doc/guix.texi:28916
+#, fuzzy
+#| msgid "Manage the operating system configuration."
+msgid "This is the data type representing the configuration for the hurd-getty-service."
+msgstr "Управление конфигурацией операционной системы."
+
+#. type: table
+#: doc/guix.texi:28923
+msgid "The name of the console this Getty runs on---e.g., @code{\"tty1\"}."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:28924
+#, fuzzy, no-wrap
+#| msgid "@code{port} (default: @code{22})"
+msgid "@code{baud-rate} (default: @code{38400})"
+msgstr "@code{port} (default: @code{22})"
+
+#. type: table
+#: doc/guix.texi:28926
+msgid "An integer specifying the baud rate of the tty."
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:28933
 #, no-wrap
 msgid "fingerprint"
 msgstr ""
 
 #. type: subsubheading
-#: doc/guix.texi:25496
+#: doc/guix.texi:28934
 #, no-wrap
 msgid "Fingerprint Service"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:25500
+#: doc/guix.texi:28938
 msgid "The @code{(gnu services authentication)} module provides a DBus service to read and identify fingerprints via a fingerprint sensor."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:25501
+#: doc/guix.texi:28939
 #, no-wrap
 msgid "{Scheme Variable} fprintd-service-type"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:25504
+#: doc/guix.texi:28942
 msgid "The service type for @command{fprintd}, which provides the fingerprint reading capability."
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:25507
+#: doc/guix.texi:28945
 #, no-wrap
 msgid "(service fprintd-service-type)\n"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:25510
+#: doc/guix.texi:28948
 #, no-wrap
 msgid "sysctl"
 msgstr ""
 
 #. type: subsubheading
-#: doc/guix.texi:25511
+#: doc/guix.texi:28949
 #, no-wrap
 msgid "System Control Service"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:25515
+#: doc/guix.texi:28953
 msgid "The @code{(gnu services sysctl)} provides a service to configure kernel parameters at boot."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:25516
+#: doc/guix.texi:28954
 #, no-wrap
 msgid "{Scheme Variable} sysctl-service-type"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:25520
+#: doc/guix.texi:28958
 msgid "The service type for @command{sysctl}, which modifies kernel parameters under @file{/proc/sys/}.  To enable IPv4 forwarding, it can be instantiated as:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:25525
+#: doc/guix.texi:28963
 #, no-wrap
 msgid ""
 "(service sysctl-service-type\n"
@@ -46648,441 +53259,454 @@ msgid ""
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:25528
+#: doc/guix.texi:28966
 #, no-wrap
 msgid "{Data Type} sysctl-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:25530
+#: doc/guix.texi:28968
 msgid "The data type representing the configuration of @command{sysctl}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:25532
+#: doc/guix.texi:28970
 #, no-wrap
 msgid "@code{sysctl} (default: @code{(file-append procps \"/sbin/sysctl\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:25534
+#: doc/guix.texi:28972
 msgid "The @command{sysctl} executable to use."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:25535
+#: doc/guix.texi:28973
 #, no-wrap
 msgid "@code{settings} (default: @code{'()})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:25537
+#: doc/guix.texi:28975
 msgid "An association list specifies kernel parameters and their values."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:25540
+#: doc/guix.texi:28978
 #, no-wrap
 msgid "pcscd"
 msgstr ""
 
 #. type: subsubheading
-#: doc/guix.texi:25541
+#: doc/guix.texi:28979
 #, no-wrap
 msgid "PC/SC Smart Card Daemon Service"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:25548
+#: doc/guix.texi:28986
 msgid "The @code{(gnu services security-token)} module provides the following service to run @command{pcscd}, the PC/SC Smart Card Daemon.  @command{pcscd} is the daemon program for pcsc-lite and the MuscleCard framework. It is a resource manager that coordinates communications with smart card readers, smart cards and cryptographic tokens that are connected to the system."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:25549
+#: doc/guix.texi:28987
 #, no-wrap
 msgid "{Scheme Variable} pcscd-service-type"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:25553
+#: doc/guix.texi:28991
 msgid "Service type for the @command{pcscd} service.  Its value must be a @code{pcscd-configuration} object.  To run pcscd in the default configuration, instantiate it as:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:25556
+#: doc/guix.texi:28994
 #, no-wrap
 msgid "(service pcscd-service-type)\n"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:25559
+#: doc/guix.texi:28997
 #, no-wrap
 msgid "{Data Type} pcscd-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:25561
+#: doc/guix.texi:28999
 msgid "The data type representing the configuration of @command{pcscd}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:25563
+#: doc/guix.texi:29001
 #, no-wrap
 msgid "@code{pcsc-lite} (default: @code{pcsc-lite})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:25565
+#: doc/guix.texi:29003
 msgid "The pcsc-lite package that provides pcscd."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:25565
+#: doc/guix.texi:29003
 #, no-wrap
 msgid "@code{usb-drivers} (default: @code{(list ccid)})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:25568
+#: doc/guix.texi:29006
 msgid "List of packages that provide USB drivers to pcscd. Drivers are expected to be under @file{pcsc/drivers} in the store directory of the package."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:25571
+#: doc/guix.texi:29009
 #, no-wrap
 msgid "lirc"
 msgstr ""
 
 #. type: subsubheading
-#: doc/guix.texi:25572
+#: doc/guix.texi:29010
 #, no-wrap
 msgid "Lirc Service"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:25575
+#: doc/guix.texi:29013
 msgid "The @code{(gnu services lirc)} module provides the following service."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:25576
+#: doc/guix.texi:29014
 #, no-wrap
 msgid "{Scheme Procedure} lirc-service [#:lirc lirc] @"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:25581
+#: doc/guix.texi:29019
 msgid "[#:device #f] [#:driver #f] [#:config-file #f] @ [#:extra-options '()] Return a service that runs @url{http://www.lirc.org,LIRC}, a daemon that decodes infrared signals from remote controls."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:25585
+#: doc/guix.texi:29023
 msgid "Optionally, @var{device}, @var{driver} and @var{config-file} (configuration file name) may be specified.  See @command{lircd} manual for details."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:25588
+#: doc/guix.texi:29026
 msgid "Finally, @var{extra-options} is a list of additional command-line options passed to @command{lircd}."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:25590
+#: doc/guix.texi:29028
 #, no-wrap
 msgid "spice"
 msgstr ""
 
 #. type: subsubheading
-#: doc/guix.texi:25591
+#: doc/guix.texi:29029
 #, no-wrap
 msgid "Spice Service"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:25594
+#: doc/guix.texi:29032
 msgid "The @code{(gnu services spice)} module provides the following service."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:25595
+#: doc/guix.texi:29033
 #, no-wrap
 msgid "{Scheme Procedure} spice-vdagent-service [#:spice-vdagent]"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:25599
+#: doc/guix.texi:29037
 msgid "Returns a service that runs @url{https://www.spice-space.org,VDAGENT}, a daemon that enables sharing the clipboard with a vm and setting the guest display resolution when the graphical console window resizes."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:25601
+#: doc/guix.texi:29039
 #, no-wrap
 msgid "inputattach"
 msgstr ""
 
 #. type: subsubheading
-#: doc/guix.texi:25602
+#: doc/guix.texi:29040
 #, no-wrap
 msgid "inputattach Service"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:25604
+#: doc/guix.texi:29042
 #, no-wrap
 msgid "tablet input, for Xorg"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:25605
+#: doc/guix.texi:29043
 #, no-wrap
 msgid "touchscreen input, for Xorg"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:25609
+#: doc/guix.texi:29047
 msgid "The @uref{https://linuxwacom.github.io/, inputattach} service allows you to use input devices such as Wacom tablets, touchscreens, or joysticks with the Xorg display server."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:25610
+#: doc/guix.texi:29048
 #, no-wrap
 msgid "{Scheme Variable} inputattach-service-type"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:25613
+#: doc/guix.texi:29051
 msgid "Type of a service that runs @command{inputattach} on a device and dispatches events from it."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:25615
+#: doc/guix.texi:29053
 #, no-wrap
 msgid "{Data Type} inputattach-configuration"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:25617
+#: doc/guix.texi:29055
 #, no-wrap
 msgid "@code{device-type} (default: @code{\"wacom\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:25620
+#: doc/guix.texi:29058
 msgid "The type of device to connect to.  Run @command{inputattach --help}, from the @code{inputattach} package, to see the list of supported device types."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:25621
+#: doc/guix.texi:29059
 #, no-wrap
 msgid "@code{device} (default: @code{\"/dev/ttyS0\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:25623
+#: doc/guix.texi:29061
 msgid "The device file to connect to the device."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:25627
+#: doc/guix.texi:29065
 msgid "Baud rate to use for the serial connection.  Should be a number or @code{#f}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:25628
+#: doc/guix.texi:29066
 #, no-wrap
 msgid "@code{log-file} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:25630
+#: doc/guix.texi:29068
 msgid "If true, this must be the name of a file to log messages to."
 msgstr ""
 
-#. type: subsection
-#: doc/guix.texi:25633
-#, no-wrap
-msgid "Dictionary Services"
-msgstr ""
+#. type: subsubheading
+#: doc/guix.texi:29071
+#, fuzzy, no-wrap
+#| msgid "Defining Services"
+msgid "Dictionary Service"
+msgstr "Создание служб"
 
 #. type: cindex
-#: doc/guix.texi:25634
+#: doc/guix.texi:29072
 #, no-wrap
 msgid "dictionary"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:25636
+#: doc/guix.texi:29074
 msgid "The @code{(gnu services dict)} module provides the following service:"
 msgstr ""
 
+#. type: defvr
+#: doc/guix.texi:29075
+#, fuzzy, no-wrap
+#| msgid "{Scheme Procedure} sane-service-type"
+msgid "{Scheme Variable} dicod-service-type"
+msgstr "{Процедура Scheme} sane-service-type"
+
+#. type: defvr
+#: doc/guix.texi:29078
+msgid "This is the type of the service that runs the @command{dicod} daemon, an implementation of DICT server (@pxref{Dicod,,, dico, GNU Dico Manual})."
+msgstr ""
+
 #. type: deffn
-#: doc/guix.texi:25637
+#: doc/guix.texi:29080
 #, no-wrap
 msgid "{Scheme Procedure} dicod-service [#:config (dicod-configuration)]"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:25640
+#: doc/guix.texi:29083
 msgid "Return a service that runs the @command{dicod} daemon, an implementation of DICT server (@pxref{Dicod,,, dico, GNU Dico Manual})."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:25644
+#: doc/guix.texi:29087
 msgid "The optional @var{config} argument specifies the configuration for @command{dicod}, which should be a @code{<dicod-configuration>} object, by default it serves the GNU Collaborative International Dictionary of English."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:25648
+#: doc/guix.texi:29091
 msgid "You can add @command{open localhost} to your @file{~/.dico} file to make @code{localhost} the default server for @command{dico} client (@pxref{Initialization File,,, dico, GNU Dico Manual})."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:25650
+#: doc/guix.texi:29093
 #, no-wrap
 msgid "{Data Type} dicod-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:25652
+#: doc/guix.texi:29095
 msgid "Data type representing the configuration of dicod."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:25654
+#: doc/guix.texi:29097
 #, no-wrap
 msgid "@code{dico} (default: @var{dico})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:25656
+#: doc/guix.texi:29099
 msgid "Package object of the GNU Dico dictionary server."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:25657
+#: doc/guix.texi:29100
 #, no-wrap
 msgid "@code{interfaces} (default: @var{'(\"localhost\")})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:25661
+#: doc/guix.texi:29104
 msgid "This is the list of IP addresses and ports and possibly socket file names to listen to (@pxref{Server Settings, @code{listen} directive,, dico, GNU Dico Manual})."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:25662
+#: doc/guix.texi:29105
 #, no-wrap
 msgid "@code{handlers} (default: @var{'()})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:25664
+#: doc/guix.texi:29107
 msgid "List of @code{<dicod-handler>} objects denoting handlers (module instances)."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:25665
+#: doc/guix.texi:29108
 #, no-wrap
 msgid "@code{databases} (default: @var{(list %dicod-database:gcide)})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:25667
+#: doc/guix.texi:29110
 msgid "List of @code{<dicod-database>} objects denoting dictionaries to be served."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:25670
+#: doc/guix.texi:29113
 #, no-wrap
 msgid "{Data Type} dicod-handler"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:25672
+#: doc/guix.texi:29115
 msgid "Data type representing a dictionary handler (module instance)."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:25676
+#: doc/guix.texi:29119
 msgid "Name of the handler (module instance)."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:25677
+#: doc/guix.texi:29120
 #, no-wrap
 msgid "@code{module} (default: @var{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:25681
+#: doc/guix.texi:29124
 msgid "Name of the dicod module of the handler (instance).  If it is @code{#f}, the module has the same name as the handler.  (@pxref{Modules,,, dico, GNU Dico Manual})."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:25684
+#: doc/guix.texi:29127
 msgid "List of strings or gexps representing the arguments for the module handler"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:25687
+#: doc/guix.texi:29130
 #, no-wrap
 msgid "{Data Type} dicod-database"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:25689
+#: doc/guix.texi:29132
 msgid "Data type representing a dictionary database."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:25693
+#: doc/guix.texi:29136
 msgid "Name of the database, will be used in DICT commands."
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:25694
+#: doc/guix.texi:29137
 #, no-wrap
 msgid "handler"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:25697
+#: doc/guix.texi:29140
 msgid "Name of the dicod handler (module instance) used by this database (@pxref{Handlers,,, dico, GNU Dico Manual})."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:25698
+#: doc/guix.texi:29141
 #, no-wrap
 msgid "@code{complex?} (default: @var{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:25701
+#: doc/guix.texi:29144
 msgid "Whether the database configuration complex.  The complex configuration will need a corresponding @code{<dicod-handler>} object, otherwise not."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:25705
+#: doc/guix.texi:29148
 msgid "List of strings or gexps representing the arguments for the database (@pxref{Databases,,, dico, GNU Dico Manual})."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:25708
+#: doc/guix.texi:29151
 #, no-wrap
 msgid "{Scheme Variable} %dicod-database:gcide"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:25711
+#: doc/guix.texi:29154
 msgid "A @code{<dicod-database>} object serving the GNU Collaborative International Dictionary of English using the @code{gcide} package."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:25714
+#: doc/guix.texi:29157
 msgid "The following is an example @code{dicod-service} configuration."
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:25729
+#: doc/guix.texi:29172
 #, no-wrap
 msgid ""
 "(dicod-service #:config\n"
@@ -47101,222 +53725,401 @@ msgid ""
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:25731
+#: doc/guix.texi:29174
 #, no-wrap
 msgid "Docker"
 msgstr ""
 
 #. type: subsubheading
-#: doc/guix.texi:25732
+#: doc/guix.texi:29175
 #, no-wrap
 msgid "Docker Service"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:25735
+#: doc/guix.texi:29178
 #, fuzzy
 #| msgid "The @code{(guix inferior)} module provides the following procedures to open an inferior:"
 msgid "The @code{(gnu services docker)} module provides the following services."
 msgstr "Модуль @code{(guix inferior)} предоставляет следующие процедуры для работы с ранними версиями:"
 
 #. type: defvr
-#: doc/guix.texi:25736
+#: doc/guix.texi:29179
 #, no-wrap
 msgid "{Scheme Variable} docker-service-type"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:25741
+#: doc/guix.texi:29184
 msgid "This is the type of the service that runs @url{https://www.docker.com,Docker}, a daemon that can execute application bundles (sometimes referred to as ``containers'') in isolated environments."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:25744
+#: doc/guix.texi:29187
 #, no-wrap
 msgid "{Data Type} docker-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:25746
+#: doc/guix.texi:29189
 msgid "This is the data type representing the configuration of Docker and Containerd."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:25749
+#: doc/guix.texi:29192
 #, no-wrap
 msgid "@code{package} (default: @code{docker})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:25751
-msgid "The Docker package to use."
-msgstr ""
+#: doc/guix.texi:29194
+#, fuzzy
+#| msgid "The package data type."
+msgid "The Docker daemon package to use."
+msgstr "Тип данных пакет"
+
+#. type: item
+#: doc/guix.texi:29195
+#, fuzzy, no-wrap
+#| msgid "@code{speed} (default: @code{1.0})"
+msgid "@code{package} (default: @code{docker-cli})"
+msgstr "@code{speed} (default: @code{1.0})"
+
+#. type: table
+#: doc/guix.texi:29197
+#, fuzzy
+#| msgid "The package data type."
+msgid "The Docker client package to use."
+msgstr "Тип данных пакет"
 
 #. type: item
-#: doc/guix.texi:25752
+#: doc/guix.texi:29198
 #, no-wrap
 msgid "@code{containerd} (default: @var{containerd})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:25754
+#: doc/guix.texi:29200
 msgid "The Containerd package to use."
 msgstr ""
 
+#. type: item
+#: doc/guix.texi:29201
+#, fuzzy, no-wrap
+#| msgid "@code{port} (default: @code{22})"
+msgid "@code{proxy} (default @var{docker-libnetwork-cmd-proxy})"
+msgstr "@code{port} (default: @code{22})"
+
+#. type: table
+#: doc/guix.texi:29203
+#, fuzzy
+#| msgid "The package data type."
+msgid "The Docker user-land networking proxy package to use."
+msgstr "Тип данных пакет"
+
+#. type: item
+#: doc/guix.texi:29204
+#, fuzzy, no-wrap
+#| msgid "@code{speed} (default: @code{1.0})"
+msgid "@code{enable-proxy?} (default @code{#t})"
+msgstr "@code{speed} (default: @code{1.0})"
+
+#. type: table
+#: doc/guix.texi:29206
+msgid "Enable or disable the use of the Docker user-land networking proxy."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:29207
+#, fuzzy, no-wrap
+#| msgid "@code{features} (default: @code{'()})"
+msgid "@code{debug?} (default @code{#f})"
+msgstr "@code{features} (default: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:29209
+#, fuzzy
+#| msgid "How to enable or disable substitutes."
+msgid "Enable or disable debug output."
+msgstr "Как включить или отключить подстановки."
+
+#. type: item
+#: doc/guix.texi:29210
+#, fuzzy, no-wrap
+#| msgid "@code{speed} (default: @code{1.0})"
+msgid "@code{enable-iptables?} (default @code{#t})"
+msgstr "@code{speed} (default: @code{1.0})"
+
+#. type: table
+#: doc/guix.texi:29212
+msgid "Enable or disable the addition of iptables rules."
+msgstr ""
+
 #. type: cindex
-#: doc/guix.texi:25758
+#: doc/guix.texi:29216
 #, no-wrap
 msgid "Audit"
 msgstr ""
 
 #. type: subsubheading
-#: doc/guix.texi:25759
+#: doc/guix.texi:29217
 #, fuzzy, no-wrap
 #| msgid "Audio Services"
 msgid "Auditd Service"
 msgstr "Сервисы аудио"
 
 #. type: Plain text
-#: doc/guix.texi:25762
+#: doc/guix.texi:29220
 #, fuzzy
 #| msgid "The @code{(guix inferior)} module provides the following procedures to open an inferior:"
 msgid "The @code{(gnu services auditd)} module provides the following service."
 msgstr "Модуль @code{(guix inferior)} предоставляет следующие процедуры для работы с ранними версиями:"
 
 #. type: defvr
-#: doc/guix.texi:25763
+#: doc/guix.texi:29221
 #, no-wrap
 msgid "{Scheme Variable} auditd-service-type"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:25768
+#: doc/guix.texi:29226
 msgid "This is the type of the service that runs @url{https://people.redhat.com/sgrubb/audit/,auditd}, a daemon that tracks security-relevant information on your system."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:25770
+#: doc/guix.texi:29228
 msgid "Examples of things that can be tracked:"
 msgstr ""
 
 #. type: enumerate
-#: doc/guix.texi:25774
+#: doc/guix.texi:29232
 #, fuzzy
 #| msgid "File Systems"
 msgid "File accesses"
 msgstr "Файловые системы"
 
 #. type: enumerate
-#: doc/guix.texi:25776
+#: doc/guix.texi:29234
 #, fuzzy
 #| msgid "System Installation"
 msgid "System calls"
 msgstr "Установка системы"
 
 #. type: enumerate
-#: doc/guix.texi:25778
+#: doc/guix.texi:29236
 #, fuzzy
 #| msgid "Invoking @command{guix gc}"
 msgid "Invoked commands"
 msgstr "Вызов @command{guix gc}"
 
 #. type: enumerate
-#: doc/guix.texi:25780
+#: doc/guix.texi:29238
 msgid "Failed login attempts"
 msgstr ""
 
 #. type: enumerate
-#: doc/guix.texi:25782
+#: doc/guix.texi:29240
 msgid "Firewall filtering"
 msgstr ""
 
 #. type: enumerate
-#: doc/guix.texi:25784
+#: doc/guix.texi:29242
 #, fuzzy
 #| msgid "Networking Services"
 msgid "Network access"
 msgstr "Сервисы сети"
 
 #. type: defvr
-#: doc/guix.texi:25793
-msgid "@command{auditctl} from the @code{audit} package can be used in order to add or remove events to be tracked (until the next reboot).  In order to permanently track events, put the command line arguments of auditctl into @file{/etc/audit/audit.rules}.  @command{aureport} from the @code{audit} package can be used in order to view a report of all recorded events.  The audit daemon usually logs into the directory @file{/var/log/audit}."
+#: doc/guix.texi:29253
+msgid "@command{auditctl} from the @code{audit} package can be used in order to add or remove events to be tracked (until the next reboot).  In order to permanently track events, put the command line arguments of auditctl into a file called @code{audit.rules} in the configuration directory (see below).  @command{aureport} from the @code{audit} package can be used in order to view a report of all recorded events.  The audit daemon by default logs into the file @file{/var/log/audit.log}."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:25796
+#: doc/guix.texi:29256
 #, fuzzy, no-wrap
 #| msgid "{Data Type} build-machine"
 msgid "{Data Type} auditd-configuration"
 msgstr "{Тип данных} build-machine"
 
 #. type: deftp
-#: doc/guix.texi:25798
+#: doc/guix.texi:29258
 msgid "This is the data type representing the configuration of auditd."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:25801
+#: doc/guix.texi:29261
 #, fuzzy, no-wrap
 #| msgid "@code{port} (default: @code{22})"
 msgid "@code{audit} (default: @code{audit})"
 msgstr "@code{port} (default: @code{22})"
 
 #. type: table
-#: doc/guix.texi:25803
+#: doc/guix.texi:29263
 #, fuzzy
 #| msgid "The package data type."
 msgid "The audit package to use."
 msgstr "Тип данных пакет"
 
+#. type: item
+#: doc/guix.texi:29264
+#, fuzzy, no-wrap
+#| msgid "@code{features} (default: @code{'()})"
+msgid "@code{configuration-directory} (default: @code{%default-auditd-configuration-directory})"
+msgstr "@code{features} (default: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:29268
+msgid "The directory containing the configuration file for the audit package, which must be named @code{auditd.conf}, and optionally some audit rules to instantiate on startup."
+msgstr ""
+
 #. type: defvr
-#: doc/guix.texi:25807
+#: doc/guix.texi:29272
 #, no-wrap
 msgid "{Scheme Variable} singularity-service-type"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:25812
+#: doc/guix.texi:29277
 msgid "This is the type of the service that allows you to run @url{https://www.sylabs.io/singularity/, Singularity}, a Docker-style tool to create and run application bundles (aka. ``containers'').  The value for this service is the Singularity package to use."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:25816
+#: doc/guix.texi:29281
 msgid "The service does not install a daemon; instead, it installs helper programs as setuid-root (@pxref{Setuid Programs}) such that unprivileged users can invoke @command{singularity run} and similar commands."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:25818
+#: doc/guix.texi:29283
+#, no-wrap
+msgid "rshiny"
+msgstr ""
+
+#. type: subsubheading
+#: doc/guix.texi:29284
+#, fuzzy, no-wrap
+#| msgid "DNS Services"
+msgid "R-Shiny service"
+msgstr "Сервисы DNS"
+
+#. type: Plain text
+#: doc/guix.texi:29287
+#, fuzzy
+#| msgid "The @code{(guix inferior)} module provides the following procedures to open an inferior:"
+msgid "The @code{(gnu services science)} module provides the following service."
+msgstr "Модуль @code{(guix inferior)} предоставляет следующие процедуры для работы с ранними версиями:"
+
+#. type: defvr
+#: doc/guix.texi:29288
+#, fuzzy, no-wrap
+#| msgid "{Scheme Procedure} sane-service-type"
+msgid "{Scheme Variable} rshiny-service-type"
+msgstr "{Процедура Scheme} sane-service-type"
+
+#. type: defvr
+#: doc/guix.texi:29293
+msgid "This is a type of service which is used to run a webapp created with @code{r-shiny}.  This service sets the @env{R_LIBS_USER} environment variable and runs the provided script to call @code{runApp}."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:29294
+#, fuzzy, no-wrap
+#| msgid "System Configuration"
+msgid "{Data Type} rshiny-configuration"
+msgstr "Конфигурирование системы"
+
+#. type: deftp
+#: doc/guix.texi:29296
+#, fuzzy
+#| msgid "Manage the operating system configuration."
+msgid "This is the data type representing the configuration of rshiny."
+msgstr "Управление конфигурацией операционной системы."
+
+#. type: item
+#: doc/guix.texi:29299
+#, fuzzy, no-wrap
+#| msgid "@code{speed} (default: @code{1.0})"
+msgid "@code{package} (default: @code{r-shiny})"
+msgstr "@code{speed} (default: @code{1.0})"
+
+#. type: table
+#: doc/guix.texi:29301
+#, fuzzy
+#| msgid "The package data type."
+msgid "The package to use."
+msgstr "Тип данных пакет"
+
+#. type: item
+#: doc/guix.texi:29302
+#, fuzzy, no-wrap
+#| msgid "@code{speed} (default: @code{1.0})"
+msgid "@code{binary} (defaunlt @code{\"rshiny\"})"
+msgstr "@code{speed} (default: @code{1.0})"
+
+#. type: table
+#: doc/guix.texi:29305
+msgid "The name of the binary or shell script located at @code{package/bin/} to run when the service is run."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:29307
+msgid "The common way to create this file is as follows:"
+msgstr ""
+
+#. type: lisp
+#: doc/guix.texi:29325
+#, no-wrap
+msgid ""
+"@dots{}\n"
+"(let* ((out       (assoc-ref %outputs \"out\"))\n"
+"       (targetdir (string-append out \"/share/\" ,name))\n"
+"       (app       (string-append out \"/bin/\" ,name))\n"
+"       (Rbin      (string-append (assoc-ref %build-inputs \"r-min\")\n"
+"                                 \"/bin/Rscript\")))\n"
+"  ;; @dots{}\n"
+"  (mkdir-p (string-append out \"/bin\"))\n"
+"  (call-with-output-file app\n"
+"    (lambda (port)\n"
+"      (format port\n"
+"\"#!~a\n"
+"library(shiny)\n"
+"setwd(\\\"~a\\\")\n"
+"runApp(launch.browser=0, port=4202)~%\\n\"\n"
+"      Rbin targetdir))))\n"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:29331
 #, no-wrap
 msgid "Nix"
 msgstr ""
 
 #. type: subsubheading
-#: doc/guix.texi:25819
+#: doc/guix.texi:29332
 #, fuzzy, no-wrap
 #| msgid "DNS Services"
 msgid "Nix service"
 msgstr "Сервисы DNS"
 
 #. type: Plain text
-#: doc/guix.texi:25822
+#: doc/guix.texi:29335
 #, fuzzy
 #| msgid "The @code{(guix inferior)} module provides the following procedures to open an inferior:"
 msgid "The @code{(gnu services nix)} module provides the following service."
 msgstr "Модуль @code{(guix inferior)} предоставляет следующие процедуры для работы с ранними версиями:"
 
 #. type: defvr
-#: doc/guix.texi:25823
+#: doc/guix.texi:29336
 #, no-wrap
 msgid "{Scheme Variable} nix-service-type"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:25828
+#: doc/guix.texi:29341
 msgid "This is the type of the service that runs build daemon of the @url{https://nixos.org/nix/, Nix} package manager.  Here is an example showing how to use it:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:25833
+#: doc/guix.texi:29346
 #, no-wrap
 msgid ""
 "(use-modules (gnu))\n"
@@ -47326,7 +54129,7 @@ msgid ""
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:25838
+#: doc/guix.texi:29351
 #, no-wrap
 msgid ""
 "(operating-system\n"
@@ -47337,7 +54140,7 @@ msgid ""
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:25841
+#: doc/guix.texi:29354
 #, no-wrap
 msgid ""
 "  (services (append (list (service nix-service-type))\n"
@@ -47345,205 +54148,269 @@ msgid ""
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:25844
+#: doc/guix.texi:29357
 msgid "After @command{guix system reconfigure} configure Nix for your user:"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:25846
+#: doc/guix.texi:29359
 #, no-wrap
 msgid "Add a Nix channel and update it.  See"
 msgstr ""
 
 #. type: itemize
-#: doc/guix.texi:25848
+#: doc/guix.texi:29361
 msgid "@url{https://nixos.org/nix/manual/, Nix Package Manager Guide}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:25849
+#: doc/guix.texi:29362
 #, no-wrap
 msgid "Create a symlink to your profile and activate Nix profile:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:25855
+#: doc/guix.texi:29368
 #, no-wrap
 msgid ""
 "$ ln -s \"/nix/var/nix/profiles/per-user/$USER/profile\" ~/.nix-profile\n"
 "$ source /run/current-system/profile/etc/profile.d/nix.sh\n"
 msgstr ""
 
+#. type: deftp
+#: doc/guix.texi:29372
+#, fuzzy, no-wrap
+#| msgid "System Configuration"
+msgid "{Data Type} nix-configuration"
+msgstr "Конфигурирование системы"
+
+#. type: deftp
+#: doc/guix.texi:29374
+#, fuzzy
+#| msgid "Manage the operating system configuration."
+msgid "This data type represents the configuration of the Nix daemon."
+msgstr "Управление конфигурацией операционной системы."
+
+#. type: item
+#: doc/guix.texi:29376
+#, fuzzy, no-wrap
+#| msgid "@code{speed} (default: @code{1.0})"
+msgid "@code{nix} (default: @code{nix})"
+msgstr "@code{speed} (default: @code{1.0})"
+
+#. type: table
+#: doc/guix.texi:29378
+#, fuzzy
+#| msgid "The package data type."
+msgid "The Nix package to use."
+msgstr "Тип данных пакет"
+
+#. type: item
+#: doc/guix.texi:29379
+#, fuzzy, no-wrap
+#| msgid "@code{port} (default: @code{22})"
+msgid "@code{sandbox} (default: @code{#t})"
+msgstr "@code{port} (default: @code{22})"
+
+#. type: table
+#: doc/guix.texi:29381
+msgid "Specifies whether builds are sandboxed by default."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:29382
+#, fuzzy, no-wrap
+#| msgid "@code{inputs} (default: @code{'()})"
+msgid "@code{build-sandbox-items} (default: @code{'()})"
+msgstr "@code{inputs} (default: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:29385
+msgid "This is a list of strings or objects appended to the @code{build-sandbox-items} field of the configuration file."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:29393
+#, fuzzy
+#| msgid "@code{port} (default: @code{22})"
+msgid "Extra command line options for @code{nix-service-type}."
+msgstr "@code{port} (default: @code{22})"
+
 #. type: cindex
-#: doc/guix.texi:25862
+#: doc/guix.texi:29399
 #, no-wrap
 msgid "setuid programs"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:25872
-msgid "Some programs need to run with ``root'' privileges, even when they are launched by unprivileged users.  A notorious example is the @command{passwd} program, which users can run to change their password, and which needs to access the @file{/etc/passwd} and @file{/etc/shadow} files---something normally restricted to root, for obvious security reasons.  To address that, these executables are @dfn{setuid-root}, meaning that they always run with root privileges (@pxref{How Change Persona,,, libc, The GNU C Library Reference Manual}, for more info about the setuid mechanism.)"
+#: doc/guix.texi:29409
+msgid "Some programs need to run with ``root'' privileges, even when they are launched by unprivileged users.  A notorious example is the @command{passwd} program, which users can run to change their password, and which needs to access the @file{/etc/passwd} and @file{/etc/shadow} files---something normally restricted to root, for obvious security reasons.  To address that, these executables are @dfn{setuid-root}, meaning that they always run with root privileges (@pxref{How Change Persona,,, libc, The GNU C Library Reference Manual}, for more info about the setuid mechanism)."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:25879
+#: doc/guix.texi:29416
 msgid "The store itself @emph{cannot} contain setuid programs: that would be a security issue since any user on the system can write derivations that populate the store (@pxref{The Store}).  Thus, a different mechanism is used: instead of changing the setuid bit directly on files that are in the store, we let the system administrator @emph{declare} which programs should be setuid root."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:25885
+#: doc/guix.texi:29422
 msgid "The @code{setuid-programs} field of an @code{operating-system} declaration contains a list of G-expressions denoting the names of programs to be setuid-root (@pxref{Using the Configuration System}).  For instance, the @command{passwd} program, which is part of the Shadow package, can be designated by this G-expression (@pxref{G-Expressions}):"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:25888
+#: doc/guix.texi:29425
 #, no-wrap
 msgid "#~(string-append #$shadow \"/bin/passwd\")\n"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:25892
+#: doc/guix.texi:29429
 msgid "A default set of setuid programs is defined by the @code{%setuid-programs} variable of the @code{(gnu system)} module."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:25893
+#: doc/guix.texi:29430
 #, no-wrap
 msgid "{Scheme Variable} %setuid-programs"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:25895
+#: doc/guix.texi:29432
 msgid "A list of G-expressions denoting common programs that are setuid-root."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:25898
+#: doc/guix.texi:29435
 msgid "The list includes commands such as @command{passwd}, @command{ping}, @command{su}, and @command{sudo}."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:25904
+#: doc/guix.texi:29441
 msgid "Under the hood, the actual setuid programs are created in the @file{/run/setuid-programs} directory at system activation time.  The files in this directory refer to the ``real'' binaries, which are in the store."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:25908
+#: doc/guix.texi:29445
 #, no-wrap
 msgid "HTTPS, certificates"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:25909
+#: doc/guix.texi:29446
 #, no-wrap
 msgid "X.509 certificates"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:25910
+#: doc/guix.texi:29447
 #, no-wrap
 msgid "TLS"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:25917
+#: doc/guix.texi:29454
 msgid "Web servers available over HTTPS (that is, HTTP over the transport-layer security mechanism, TLS) send client programs an @dfn{X.509 certificate} that the client can then use to @emph{authenticate} the server.  To do that, clients verify that the server's certificate is signed by a so-called @dfn{certificate authority} (CA).  But to verify the CA's signature, clients must have first acquired the CA's certificate."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:25921
+#: doc/guix.texi:29458
 msgid "Web browsers such as GNU@tie{}IceCat include their own set of CA certificates, such that they are able to verify CA signatures out-of-the-box."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:25925
+#: doc/guix.texi:29462
 msgid "However, most other programs that can talk HTTPS---@command{wget}, @command{git}, @command{w3m}, etc.---need to be told where CA certificates can be found."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:25932
+#: doc/guix.texi:29469
 msgid "In Guix, this is done by adding a package that provides certificates to the @code{packages} field of the @code{operating-system} declaration (@pxref{operating-system Reference}).  Guix includes one such package, @code{nss-certs}, which is a set of CA certificates provided as part of Mozilla's Network Security Services."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:25937
+#: doc/guix.texi:29474
 msgid "Note that it is @emph{not} part of @code{%base-packages}, so you need to explicitly add it.  The @file{/etc/ssl/certs} directory, which is where most applications and libraries look for certificates by default, points to the certificates installed globally."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:25947
-msgid "Unprivileged users, including users of Guix on a foreign distro, can also install their own certificate package in their profile.  A number of environment variables need to be defined so that applications and libraries know where to find them.  Namely, the OpenSSL library honors the @code{SSL_CERT_DIR} and @code{SSL_CERT_FILE} variables.  Some applications add their own environment variables; for instance, the Git version control system honors the certificate bundle pointed to by the @code{GIT_SSL_CAINFO} environment variable.  Thus, you would typically run something like:"
+#: doc/guix.texi:29484
+msgid "Unprivileged users, including users of Guix on a foreign distro, can also install their own certificate package in their profile.  A number of environment variables need to be defined so that applications and libraries know where to find them.  Namely, the OpenSSL library honors the @env{SSL_CERT_DIR} and @env{SSL_CERT_FILE} variables.  Some applications add their own environment variables; for instance, the Git version control system honors the certificate bundle pointed to by the @env{GIT_SSL_CAINFO} environment variable.  Thus, you would typically run something like:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:25953
+#: doc/guix.texi:29490
 #, no-wrap
 msgid ""
-"$ guix install nss-certs\n"
-"$ export SSL_CERT_DIR=\"$HOME/.guix-profile/etc/ssl/certs\"\n"
-"$ export SSL_CERT_FILE=\"$HOME/.guix-profile/etc/ssl/certs/ca-certificates.crt\"\n"
-"$ export GIT_SSL_CAINFO=\"$SSL_CERT_FILE\"\n"
+"guix install nss-certs\n"
+"export SSL_CERT_DIR=\"$HOME/.guix-profile/etc/ssl/certs\"\n"
+"export SSL_CERT_FILE=\"$HOME/.guix-profile/etc/ssl/certs/ca-certificates.crt\"\n"
+"export GIT_SSL_CAINFO=\"$SSL_CERT_FILE\"\n"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:25958
-msgid "As another example, R requires the @code{CURL_CA_BUNDLE} environment variable to point to a certificate bundle, so you would have to run something like this:"
+#: doc/guix.texi:29495
+msgid "As another example, R requires the @env{CURL_CA_BUNDLE} environment variable to point to a certificate bundle, so you would have to run something like this:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:25962
-#, no-wrap
+#: doc/guix.texi:29499
+#, fuzzy, no-wrap
+#| msgid ""
+#| "$ guix install glibc-locales\n"
+#| "$ export GUIX_LOCPATH=$HOME/.guix-profile/lib/locale\n"
 msgid ""
-"$ guix install nss-certs\n"
-"$ export CURL_CA_BUNDLE=\"$HOME/.guix-profile/etc/ssl/certs/ca-certificates.crt\"\n"
+"guix install nss-certs\n"
+"export CURL_CA_BUNDLE=\"$HOME/.guix-profile/etc/ssl/certs/ca-certificates.crt\"\n"
 msgstr ""
+"$ guix install glibc-locales\n"
+"$ export GUIX_LOCPATH=$HOME/.guix-profile/lib/locale\n"
 
 #. type: Plain text
-#: doc/guix.texi:25966
+#: doc/guix.texi:29503
 msgid "For other applications you may want to look up the required environment variable in the relevant documentation."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:25971
+#: doc/guix.texi:29508
 #, no-wrap
 msgid "name service switch"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:25972
+#: doc/guix.texi:29509
 #, no-wrap
 msgid "NSS"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:25981
+#: doc/guix.texi:29518
 msgid "The @code{(gnu system nss)} module provides bindings to the configuration file of the libc @dfn{name service switch} or @dfn{NSS} (@pxref{NSS Configuration File,,, libc, The GNU C Library Reference Manual}).  In a nutshell, the NSS is a mechanism that allows libc to be extended with new ``name'' lookup methods for system databases, which includes host names, service names, user accounts, and more (@pxref{Name Service Switch, System Databases and Name Service Switch,, libc, The GNU C Library Reference Manual})."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:25988
+#: doc/guix.texi:29525
 msgid "The NSS configuration specifies, for each system database, which lookup method is to be used, and how the various methods are chained together---for instance, under which circumstances NSS should try the next method in the list.  The NSS configuration is given in the @code{name-service-switch} field of @code{operating-system} declarations (@pxref{operating-system Reference, @code{name-service-switch}})."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:25989
+#: doc/guix.texi:29526
 #, no-wrap
 msgid "nss-mdns"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:25990
+#: doc/guix.texi:29527
 #, no-wrap
 msgid ".local, host name lookup"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:25995
+#: doc/guix.texi:29532
 msgid "As an example, the declaration below configures the NSS to use the @uref{https://0pointer.de/lennart/projects/nss-mdns/, @code{nss-mdns} back-end}, which supports host name lookups over multicast DNS (mDNS)  for host names ending in @code{.local}:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:25999
+#: doc/guix.texi:29536
 #, no-wrap
 msgid ""
 "(name-service-switch\n"
@@ -47552,7 +54419,7 @@ msgid ""
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:26004
+#: doc/guix.texi:29541
 #, no-wrap
 msgid ""
 "                ;; If the above did not succeed, try\n"
@@ -47563,7 +54430,7 @@ msgid ""
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:26010
+#: doc/guix.texi:29547
 #, no-wrap
 msgid ""
 "                  ;; 'mdns_minimal' is authoritative for\n"
@@ -47575,7 +54442,7 @@ msgid ""
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:26014
+#: doc/guix.texi:29551
 #, no-wrap
 msgid ""
 "                ;; Then fall back to DNS.\n"
@@ -47585,7 +54452,7 @@ msgid ""
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:26018
+#: doc/guix.texi:29555
 #, no-wrap
 msgid ""
 "                ;; Finally, try with the \"full\" 'mdns'.\n"
@@ -47594,157 +54461,157 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:26023
+#: doc/guix.texi:29560
 msgid "Do not worry: the @code{%mdns-host-lookup-nss} variable (see below)  contains this configuration, so you will not have to type it if all you want is to have @code{.local} host lookup working."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:26031
+#: doc/guix.texi:29568
 msgid "Note that, in this case, in addition to setting the @code{name-service-switch} of the @code{operating-system} declaration, you also need to use @code{avahi-service-type} (@pxref{Networking Services, @code{avahi-service-type}}), or @code{%desktop-services}, which includes it (@pxref{Desktop Services}).  Doing this makes @code{nss-mdns} accessible to the name service cache daemon (@pxref{Base Services, @code{nscd-service}})."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:26034
+#: doc/guix.texi:29571
 msgid "For convenience, the following variables provide typical NSS configurations."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:26035
+#: doc/guix.texi:29572
 #, no-wrap
 msgid "{Scheme Variable} %default-nss"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:26038
+#: doc/guix.texi:29575
 msgid "This is the default name service switch configuration, a @code{name-service-switch} object."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:26040
+#: doc/guix.texi:29577
 #, no-wrap
 msgid "{Scheme Variable} %mdns-host-lookup-nss"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:26043
+#: doc/guix.texi:29580
 msgid "This is the name service switch configuration with support for host name lookup over multicast DNS (mDNS) for host names ending in @code{.local}."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:26053
+#: doc/guix.texi:29590
 msgid "The reference for name service switch configuration is given below.  It is a direct mapping of the configuration file format of the C library , so please refer to the C library manual for more information (@pxref{NSS Configuration File,,, libc, The GNU C Library Reference Manual}).  Compared to the configuration file format of libc NSS, it has the advantage not only of adding this warm parenthetic feel that we like, but also static checks: you will know about syntax errors and typos as soon as you run @command{guix system}."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:26054
+#: doc/guix.texi:29591
 #, no-wrap
 msgid "{Data Type} name-service-switch"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:26059
+#: doc/guix.texi:29596
 msgid "This is the data type representation the configuration of libc's name service switch (NSS).  Each field below represents one of the supported system databases."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:26061
+#: doc/guix.texi:29598
 #, no-wrap
 msgid "aliases"
 msgstr ""
 
 #. type: itemx
-#: doc/guix.texi:26062
+#: doc/guix.texi:29599
 #, no-wrap
 msgid "ethers"
 msgstr ""
 
 #. type: itemx
-#: doc/guix.texi:26064
+#: doc/guix.texi:29601
 #, no-wrap
 msgid "gshadow"
 msgstr ""
 
 #. type: itemx
-#: doc/guix.texi:26065
+#: doc/guix.texi:29602
 #, no-wrap
 msgid "hosts"
 msgstr ""
 
 #. type: itemx
-#: doc/guix.texi:26066
+#: doc/guix.texi:29603
 #, no-wrap
 msgid "initgroups"
 msgstr ""
 
 #. type: itemx
-#: doc/guix.texi:26067
+#: doc/guix.texi:29604
 #, no-wrap
 msgid "netgroup"
 msgstr ""
 
 #. type: itemx
-#: doc/guix.texi:26068
+#: doc/guix.texi:29605
 #, no-wrap
 msgid "networks"
 msgstr ""
 
 #. type: itemx
-#: doc/guix.texi:26070
+#: doc/guix.texi:29607
 #, no-wrap
 msgid "public-key"
 msgstr ""
 
 #. type: itemx
-#: doc/guix.texi:26071
+#: doc/guix.texi:29608
 #, no-wrap
 msgid "rpc"
 msgstr ""
 
 #. type: itemx
-#: doc/guix.texi:26073
+#: doc/guix.texi:29610
 #, no-wrap
 msgid "shadow"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26076
+#: doc/guix.texi:29613
 msgid "The system databases handled by the NSS.  Each of these fields must be a list of @code{<name-service>} objects (see below)."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:26079
+#: doc/guix.texi:29616
 #, no-wrap
 msgid "{Data Type} name-service"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:26083
+#: doc/guix.texi:29620
 msgid "This is the data type representing an actual name service and the associated lookup action."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26088
+#: doc/guix.texi:29625
 msgid "A string denoting the name service (@pxref{Services in the NSS configuration,,, libc, The GNU C Library Reference Manual})."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26093
+#: doc/guix.texi:29630
 msgid "Note that name services listed here must be visible to nscd.  This is achieved by passing the @code{#:name-services} argument to @code{nscd-service} the list of packages providing the needed name services (@pxref{Base Services, @code{nscd-service}})."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:26094
+#: doc/guix.texi:29631
 #, no-wrap
 msgid "reaction"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26098
+#: doc/guix.texi:29635
 msgid "An action specified using the @code{lookup-specification} macro (@pxref{Actions in the NSS configuration,,, libc, The GNU C Library Reference Manual}).  For example:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:26102
+#: doc/guix.texi:29639
 #, no-wrap
 msgid ""
 "(lookup-specification (unavailable => continue)\n"
@@ -47752,17 +54619,17 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:26116
+#: doc/guix.texi:29653
 msgid "For bootstrapping purposes, the Linux-Libre kernel is passed an @dfn{initial RAM disk}, or @dfn{initrd}.  An initrd contains a temporary root file system as well as an initialization script.  The latter is responsible for mounting the real root file system, and for loading any kernel modules that may be needed to achieve that."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:26125
+#: doc/guix.texi:29662
 msgid "The @code{initrd-modules} field of an @code{operating-system} declaration allows you to specify Linux-libre kernel modules that must be available in the initrd.  In particular, this is where you would list modules needed to actually drive the hard disk where your root partition is---although the default value of @code{initrd-modules} should cover most use cases.  For example, assuming you need the @code{megaraid_sas} module in addition to the default modules to be able to access your root file system, you would write:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:26130
+#: doc/guix.texi:29667
 #, no-wrap
 msgid ""
 "(operating-system\n"
@@ -47771,28 +54638,28 @@ msgid ""
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:26132
+#: doc/guix.texi:29669
 #, no-wrap
 msgid "{Scheme Variable} %base-initrd-modules"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:26134
+#: doc/guix.texi:29671
 msgid "This is the list of kernel modules included in the initrd by default."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:26142
+#: doc/guix.texi:29679
 msgid "Furthermore, if you need lower-level customization, the @code{initrd} field of an @code{operating-system} declaration allows you to specify which initrd you would like to use.  The @code{(gnu system linux-initrd)} module provides three ways to build an initrd: the high-level @code{base-initrd} procedure and the low-level @code{raw-initrd} and @code{expression->initrd} procedures."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:26147
+#: doc/guix.texi:29684
 msgid "The @code{base-initrd} procedure is intended to cover most common uses.  For example, if you want to add a bunch of kernel modules to be loaded at boot time, you can define the @code{initrd} field of the operating system declaration like this:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:26155
+#: doc/guix.texi:29692
 #, no-wrap
 msgid ""
 "(initrd (lambda (file-systems . rest)\n"
@@ -47804,370 +54671,417 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:26160
+#: doc/guix.texi:29697
 msgid "The @code{base-initrd} procedure also handles common use cases that involves using the system as a QEMU guest, or as a ``live'' system with volatile root file system."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:26167
+#: doc/guix.texi:29704
 msgid "The @code{base-initrd} procedure is built from @code{raw-initrd} procedure.  Unlike @code{base-initrd}, @code{raw-initrd} doesn't do anything high-level, such as trying to guess which kernel modules and packages should be included to the initrd. An example use of @code{raw-initrd} is when a user has a custom Linux kernel configuration and default kernel modules included by @code{base-initrd} are not available."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:26172
+#: doc/guix.texi:29709
 msgid "The initial RAM disk produced by @code{base-initrd} or @code{raw-initrd} honors several options passed on the Linux kernel command line (that is, arguments passed @i{via} the @code{linux} command of GRUB, or the @code{-append} option of QEMU), notably:"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:26174
+#: doc/guix.texi:29711
 #, no-wrap
 msgid "--load=@var{boot}"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26177
+#: doc/guix.texi:29714
 msgid "Tell the initial RAM disk to load @var{boot}, a file containing a Scheme program, once it has mounted the root file system."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26181
+#: doc/guix.texi:29718
 msgid "Guix uses this option to yield control to a boot program that runs the service activation programs and then spawns the GNU@tie{}Shepherd, the initialization system."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:26182
+#: doc/guix.texi:29719
 #, no-wrap
 msgid "--root=@var{root}"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26186
-msgid "Mount @var{root} as the root file system.  @var{root} can be a device name like @code{/dev/sda1}, a file system label, or a file system UUID."
+#: doc/guix.texi:29724
+msgid "Mount @var{root} as the root file system.  @var{root} can be a device name like @code{/dev/sda1}, a file system label, or a file system UUID.  When unspecified, the device name from the root file system of the operating system declaration is used."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26190
+#: doc/guix.texi:29728
 msgid "Have @file{/run/booted-system} and @file{/run/current-system} point to @var{system}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:26191
+#: doc/guix.texi:29729
 #, no-wrap
 msgid "modprobe.blacklist=@var{modules}@dots{}"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:26192
+#: doc/guix.texi:29730
 #, no-wrap
 msgid "module, black-listing"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:26193
+#: doc/guix.texi:29731
 #, no-wrap
 msgid "black list, of kernel modules"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26198
+#: doc/guix.texi:29736
 msgid "Instruct the initial RAM disk as well as the @command{modprobe} command (from the kmod package) to refuse to load @var{modules}.  @var{modules} must be a comma-separated list of module names---e.g., @code{usbkbd,9pnet}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:26199
+#: doc/guix.texi:29737
 #, no-wrap
 msgid "--repl"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26205
+#: doc/guix.texi:29743
 msgid "Start a read-eval-print loop (REPL) from the initial RAM disk before it tries to load kernel modules and to mount the root file system.  Our marketing team calls it @dfn{boot-to-Guile}.  The Schemer in you will love it.  @xref{Using Guile Interactively,,, guile, GNU Guile Reference Manual}, for more information on Guile's REPL."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:26211
+#: doc/guix.texi:29749
 msgid "Now that you know all the features that initial RAM disks produced by @code{base-initrd} and @code{raw-initrd} provide, here is how to use it and customize it further."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:26214
+#: doc/guix.texi:29752
 #, no-wrap
 msgid "{Scheme Procedure} raw-initrd @var{file-systems} @"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:26227
-msgid "[#:linux-modules '()] [#:mapped-devices '()] @ [#:keyboard-layout #f] @ [#:helper-packages '()] [#:qemu-networking? #f] [#:volatile-root? #f] Return a derivation that builds a raw initrd.  @var{file-systems} is a list of file systems to be mounted by the initrd, possibly in addition to the root file system specified on the kernel command line via @code{--root}.  @var{linux-modules} is a list of kernel modules to be loaded at boot time.  @var{mapped-devices} is a list of device mappings to realize before @var{file-systems} are mounted (@pxref{Mapped Devices}).  @var{helper-packages} is a list of packages to be copied in the initrd. It may include @code{e2fsck/static} or other packages needed by the initrd to check the root file system."
+#: doc/guix.texi:29765
+msgid "[#:linux-modules '()] [#:mapped-devices '()] @ [#:keyboard-layout #f] @ [#:helper-packages '()] [#:qemu-networking? #f] [#:volatile-root? #f] Return a derivation that builds a raw initrd.  @var{file-systems} is a list of file systems to be mounted by the initrd, possibly in addition to the root file system specified on the kernel command line via @option{--root}.  @var{linux-modules} is a list of kernel modules to be loaded at boot time.  @var{mapped-devices} is a list of device mappings to realize before @var{file-systems} are mounted (@pxref{Mapped Devices}).  @var{helper-packages} is a list of packages to be copied in the initrd. It may include @code{e2fsck/static} or other packages needed by the initrd to check the root file system."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:26233 doc/guix.texi:26257
+#: doc/guix.texi:29771 doc/guix.texi:29795
 msgid "When true, @var{keyboard-layout} is a @code{<keyboard-layout>} record denoting the desired console keyboard layout.  This is done before @var{mapped-devices} are set up and before @var{file-systems} are mounted such that, should the user need to enter a passphrase or use the REPL, this happens using the intended keyboard layout."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:26237
+#: doc/guix.texi:29775
 msgid "When @var{qemu-networking?} is true, set up networking with the standard QEMU parameters.  When @var{virtio?} is true, load additional modules so that the initrd can be used as a QEMU guest with para-virtualized I/O drivers."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:26240
+#: doc/guix.texi:29778
 msgid "When @var{volatile-root?} is true, the root file system is writable but any changes to it are lost."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:26242
+#: doc/guix.texi:29780
 #, no-wrap
 msgid "{Scheme Procedure} base-initrd @var{file-systems} @"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:26251
-msgid "[#:mapped-devices '()] [#:keyboard-layout #f] @ [#:qemu-networking? #f] [#:volatile-root? #f] @ [#:linux-modules '()] Return as a file-like object a generic initrd, with kernel modules taken from @var{linux}.  @var{file-systems} is a list of file-systems to be mounted by the initrd, possibly in addition to the root file system specified on the kernel command line via @code{--root}.  @var{mapped-devices} is a list of device mappings to realize before @var{file-systems} are mounted."
+#: doc/guix.texi:29789
+msgid "[#:mapped-devices '()] [#:keyboard-layout #f] @ [#:qemu-networking? #f] [#:volatile-root? #f] @ [#:linux-modules '()] Return as a file-like object a generic initrd, with kernel modules taken from @var{linux}.  @var{file-systems} is a list of file-systems to be mounted by the initrd, possibly in addition to the root file system specified on the kernel command line via @option{--root}.  @var{mapped-devices} is a list of device mappings to realize before @var{file-systems} are mounted."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:26259
+#: doc/guix.texi:29797
 msgid "@var{qemu-networking?} and @var{volatile-root?} behaves as in @code{raw-initrd}."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:26264
+#: doc/guix.texi:29802
 msgid "The initrd is automatically populated with all the kernel modules necessary for @var{file-systems} and for the given options.  Additional kernel modules can be listed in @var{linux-modules}.  They will be added to the initrd, and loaded at boot time in the order in which they appear."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:26271
+#: doc/guix.texi:29809
 msgid "Needless to say, the initrds we produce and use embed a statically-linked Guile, and the initialization program is a Guile program.  That gives a lot of flexibility.  The @code{expression->initrd} procedure builds such an initrd, given the program to run in that initrd."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:26272
+#: doc/guix.texi:29810
 #, no-wrap
 msgid "{Scheme Procedure} expression->initrd @var{exp} @"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:26278
-msgid "[#:guile %guile-static-stripped] [#:name \"guile-initrd\"] Return as a file-like object a Linux initrd (a gzipped cpio archive)  containing @var{guile} and that evaluates @var{exp}, a G-expression, upon booting.  All the derivations referenced by @var{exp} are automatically copied to the initrd."
+#: doc/guix.texi:29816
+msgid "[#:guile %guile-3.0-static-stripped] [#:name \"guile-initrd\"] Return as a file-like object a Linux initrd (a gzipped cpio archive)  containing @var{guile} and that evaluates @var{exp}, a G-expression, upon booting.  All the derivations referenced by @var{exp} are automatically copied to the initrd."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:26284
+#: doc/guix.texi:29822
 #, no-wrap
 msgid "boot loader"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:26291
+#: doc/guix.texi:29829
 msgid "The operating system supports multiple bootloaders.  The bootloader is configured using @code{bootloader-configuration} declaration.  All the fields of this structure are bootloader agnostic except for one field, @code{bootloader} that indicates the bootloader to be configured and installed."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:26296
+#: doc/guix.texi:29834
 msgid "Some of the bootloaders do not honor every field of @code{bootloader-configuration}.  For instance, the extlinux bootloader does not support themes and thus ignores the @code{theme} field."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:26297
+#: doc/guix.texi:29835
 #, no-wrap
 msgid "{Data Type} bootloader-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:26299
+#: doc/guix.texi:29837
 msgid "The type of a bootloader configuration declaration."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:26303
+#: doc/guix.texi:29841
 #, no-wrap
 msgid "EFI, bootloader"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:26304
+#: doc/guix.texi:29842
 #, no-wrap
 msgid "UEFI, bootloader"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:26305
+#: doc/guix.texi:29843
 #, no-wrap
 msgid "BIOS, bootloader"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26309
-msgid "The bootloader to use, as a @code{bootloader} object. For now @code{grub-bootloader}, @code{grub-efi-bootloader}, @code{extlinux-bootloader} and @code{u-boot-bootloader} are supported."
+#: doc/guix.texi:29848
+msgid "The bootloader to use, as a @code{bootloader} object. For now @code{grub-bootloader}, @code{grub-efi-bootloader}, @code{grub-efi-netboot-bootloader}, @code{extlinux-bootloader} and @code{u-boot-bootloader} are supported."
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:29849
+#, no-wrap
+msgid "ARM, bootloaders"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:29850
+#, no-wrap
+msgid "AArch64, bootloaders"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:29855
+msgid "Available bootloaders are described in @code{(gnu bootloader @dots{})} modules.  In particular, @code{(gnu bootloader u-boot)} contains definitions of bootloaders for a wide range of ARM and AArch64 systems, using the @uref{https://www.denx.de/wiki/U-Boot/, U-Boot bootloader}."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26315
+#: doc/guix.texi:29861
 msgid "@code{grub-efi-bootloader} allows to boot on modern systems using the @dfn{Unified Extensible Firmware Interface} (UEFI).  This is what you should use if the installation image contains a @file{/sys/firmware/efi} directory when you boot it on your system."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26319
+#: doc/guix.texi:29865
 msgid "@code{grub-bootloader} allows you to boot in particular Intel-based machines in ``legacy'' BIOS mode."
 msgstr ""
 
-#. type: cindex
-#: doc/guix.texi:26320
-#, no-wrap
-msgid "ARM, bootloaders"
+#. type: vindex
+#: doc/guix.texi:29866
+#, fuzzy, no-wrap
+#| msgid "grub-efi-bootloader"
+msgid "grub-efi-netboot-bootloader"
+msgstr "grub-efi-bootloader"
+
+#. type: table
+#: doc/guix.texi:29870
+msgid "@code{grub-efi-netboot-bootloader} allows you to boot your system over network through TFTP.  In combination with an NFS root file system this allows you to build a diskless Guix system."
 msgstr ""
 
-#. type: cindex
-#: doc/guix.texi:26321
-#, no-wrap
-msgid "AArch64, bootloaders"
+#. type: table
+#: doc/guix.texi:29876
+msgid "The installation of the @code{grub-efi-netboot-bootloader} generates the content of the TFTP root directory at @code{target} (@pxref{Bootloader Configuration, @code{target}}), to be served by a TFTP server.  You may want to mount your TFTP server directory onto @code{target} to move the required files to the TFTP server automatically."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26326
-msgid "Available bootloaders are described in @code{(gnu bootloader @dots{})} modules.  In particular, @code{(gnu bootloader u-boot)} contains definitions of bootloaders for a wide range of ARM and AArch64 systems, using the @uref{https://www.denx.de/wiki/U-Boot/, U-Boot bootloader}."
+#: doc/guix.texi:29885
+msgid "If you plan to use an NFS root file system as well (actually if you mount the store from an NFS share), then the TFTP server needs to serve the file @file{/boot/grub/grub.cfg} and other files from the store (like GRUBs background image, the kernel (@pxref{operating-system Reference, @code{kernel}}) and the initrd (@pxref{operating-system Reference, @code{initrd}})), too.  All these files from the store will be accessed by GRUB through TFTP with their normal store path, for example as @file{tftp://tftp-server/gnu/store/…-initrd/initrd.cpio.gz}."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:29893
+msgid "Two symlinks are created to make this possible.  The first symlink is @code{target}@file{/efi/Guix/boot/grub/grub.cfg} pointing to @file{../../../boot/grub/grub.cfg}, where @code{target} may be @file{/boot}.  In this case the link is not leaving the served TFTP root directory, but otherwise it does.  The second link is @code{target}@file{/gnu/store} and points to @file{../gnu/store}.  This link is leaving the served TFTP root directory."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:29898
+msgid "The assumption behind all this is that you have an NFS server exporting the root file system for your Guix system, and additionally a TFTP server exporting your @code{target} directory—usually @file{/boot}—from that same root file system for your Guix system.  In this constellation the symlinks will work."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:29902
+msgid "For other constellations you will have to program your own bootloader installer, which then takes care to make necessary files from the store accessible through TFTP, for example by copying them into the TFTP root directory at @code{target}."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:29907
+msgid "It is important to note that symlinks pointing outside the TFTP root directory may need to be allowed in the configuration of your TFTP server.  Further the store link exposes the whole store through TFTP.  Both points need to be considered carefully for security aspects."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26330
+#: doc/guix.texi:29912
+msgid "Beside the @code{grub-efi-netboot-bootloader}, the already mentioned TFTP and NFS servers, you also need a properly configured DHCP server to make the booting over netboot possible.  For all this we can currently only recommend you to look for instructions about @acronym{PXE, Preboot eXecution Environment}."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:29916
 msgid "This is a string denoting the target onto which to install the bootloader."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26337
-msgid "The interpretation depends on the bootloader in question.  For @code{grub-bootloader}, for example, it should be a device name understood by the bootloader @command{installer} command, such as @code{/dev/sda} or @code{(hd0)} (@pxref{Invoking grub-install,,, grub, GNU GRUB Manual}).  For @code{grub-efi-bootloader}, it should be the mount point of the EFI file system, usually @file{/boot/efi}."
+#: doc/guix.texi:29925
+msgid "The interpretation depends on the bootloader in question.  For @code{grub-bootloader}, for example, it should be a device name understood by the bootloader @command{installer} command, such as @code{/dev/sda} or @code{(hd0)} (@pxref{Invoking grub-install,,, grub, GNU GRUB Manual}).  For @code{grub-efi-bootloader}, it should be the mount point of the EFI file system, usually @file{/boot/efi}.  For @code{grub-efi-netboot-bootloader}, @code{target} should be the mount point corresponding to the TFTP root directory of your TFTP server."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:26338
+#: doc/guix.texi:29926
 #, no-wrap
 msgid "@code{menu-entries} (default: @code{()})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26342
+#: doc/guix.texi:29930
 msgid "A possibly empty list of @code{menu-entry} objects (see below), denoting entries to appear in the bootloader menu, in addition to the current system entry and the entry pointing to previous system generations."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:26343
+#: doc/guix.texi:29931
 #, no-wrap
 msgid "@code{default-entry} (default: @code{0})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26346
+#: doc/guix.texi:29934
 msgid "The index of the default boot menu entry.  Index 0 is for the entry of the current system."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:26347
+#: doc/guix.texi:29935
 #, no-wrap
 msgid "@code{timeout} (default: @code{5})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26350
+#: doc/guix.texi:29938
 msgid "The number of seconds to wait for keyboard input before booting.  Set to 0 to boot immediately, and to -1 to wait indefinitely."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:26351
+#: doc/guix.texi:29939
 #, no-wrap
 msgid "keyboard layout, for the bootloader"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26355
+#: doc/guix.texi:29943
 msgid "If this is @code{#f}, the bootloader's menu (if any) uses the default keyboard layout, usually US@tie{}English (``qwerty'')."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26358
+#: doc/guix.texi:29946
 msgid "Otherwise, this must be a @code{keyboard-layout} object (@pxref{Keyboard Layout})."
 msgstr ""
 
 #. type: quotation
-#: doc/guix.texi:26362
+#: doc/guix.texi:29950
 msgid "This option is currently ignored by bootloaders other than @code{grub} and @code{grub-efi}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:26364
+#: doc/guix.texi:29952
 #, no-wrap
 msgid "@code{theme} (default: @var{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26368
+#: doc/guix.texi:29956
 msgid "The bootloader theme object describing the theme to use.  If no theme is provided, some bootloaders might use a default theme, that's true for GRUB."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:26369
+#: doc/guix.texi:29957
 #, fuzzy, no-wrap
 #| msgid "@code{features} (default: @code{'()})"
 msgid "@code{terminal-outputs} (default: @code{'(gfxterm)})"
 msgstr "@code{features} (default: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:26376
+#: doc/guix.texi:29964
 msgid "The output terminals used for the bootloader boot menu, as a list of symbols.  GRUB accepts the values: @code{console}, @code{serial}, @code{serial_@{0-3@}}, @code{gfxterm}, @code{vga_text}, @code{mda_text}, @code{morse}, and @code{pkmodem}.  This field corresponds to the GRUB variable @code{GRUB_TERMINAL_OUTPUT} (@pxref{Simple configuration,,, grub,GNU GRUB manual})."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:26377
+#: doc/guix.texi:29965
 #, no-wrap
 msgid "@code{terminal-inputs} (default: @code{'()})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26385
+#: doc/guix.texi:29973
 msgid "The input terminals used for the bootloader boot menu, as a list of symbols.  For GRUB, the default is the native platform terminal as determined at run-time.  GRUB accepts the values: @code{console}, @code{serial}, @code{serial_@{0-3@}}, @code{at_keyboard}, and @code{usb_keyboard}.  This field corresponds to the GRUB variable @code{GRUB_TERMINAL_INPUT} (@pxref{Simple configuration,,, grub,GNU GRUB manual})."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:26386
+#: doc/guix.texi:29974
 #, no-wrap
 msgid "@code{serial-unit} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26390
+#: doc/guix.texi:29978
 msgid "The serial unit used by the bootloader, as an integer from 0 to 3.  For GRUB, it is chosen at run-time; currently GRUB chooses 0, which corresponds to COM1 (@pxref{Serial terminal,,, grub,GNU GRUB manual})."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:26391
+#: doc/guix.texi:29979
 #, no-wrap
 msgid "@code{serial-speed} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26395
+#: doc/guix.texi:29983
 msgid "The speed of the serial interface, as an integer.  For GRUB, the default value is chosen at run-time; currently GRUB chooses 9600@tie{}bps (@pxref{Serial terminal,,, grub,GNU GRUB manual})."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:26399
+#: doc/guix.texi:29987
 #, no-wrap
 msgid "dual boot"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:26400
+#: doc/guix.texi:29988
 #, no-wrap
 msgid "boot menu"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:26406
+#: doc/guix.texi:29994
 msgid "Should you want to list additional boot menu entries @i{via} the @code{menu-entries} field above, you will need to create them with the @code{menu-entry} form.  For example, imagine you want to be able to boot another distro (hard to imagine!), you can define a menu entry along these lines:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:26413
+#: doc/guix.texi:30001
 #, no-wrap
 msgid ""
 "(menu-entry\n"
@@ -48178,201 +55092,268 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:26416
+#: doc/guix.texi:30004
 msgid "Details below."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:26417
+#: doc/guix.texi:30005
 #, no-wrap
 msgid "{Data Type} menu-entry"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:26419
+#: doc/guix.texi:30007
 msgid "The type of an entry in the bootloader menu."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26424
+#: doc/guix.texi:30012
 msgid "The label to show in the menu---e.g., @code{\"GNU\"}."
 msgstr ""
 
-#. type: code{#1}
-#: doc/guix.texi:26425
-#, no-wrap
-msgid "linux"
-msgstr ""
+#. type: item
+#: doc/guix.texi:30013
+#, fuzzy, no-wrap
+#| msgid "@code{port} (default: @code{22})"
+msgid "@code{linux} (default: @code{#f})"
+msgstr "@code{port} (default: @code{22})"
 
 #. type: table
-#: doc/guix.texi:26427
+#: doc/guix.texi:30015
 msgid "The Linux kernel image to boot, for example:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:26430
+#: doc/guix.texi:30018
 #, no-wrap
 msgid "(file-append linux-libre \"/bzImage\")\n"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26435
+#: doc/guix.texi:30023
 msgid "For GRUB, it is also possible to specify a device explicitly in the file path using GRUB's device naming convention (@pxref{Naming convention,,, grub, GNU GRUB manual}), for example:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:26438
+#: doc/guix.texi:30026
 #, no-wrap
 msgid "\"(hd0,msdos1)/boot/vmlinuz\"\n"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26442
+#: doc/guix.texi:30030
 msgid "If the device is specified explicitly as above, then the @code{device} field is ignored entirely."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:26443
+#: doc/guix.texi:30031
 #, no-wrap
 msgid "@code{linux-arguments} (default: @code{()})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26446
+#: doc/guix.texi:30034
 msgid "The list of extra Linux kernel command-line arguments---e.g., @code{(\"console=ttyS0\")}."
 msgstr ""
 
+#. type: item
+#: doc/guix.texi:30035
+#, fuzzy, no-wrap
+#| msgid "@code{speed} (default: @code{1.0})"
+msgid "@code{initrd} (default: @code{#f})"
+msgstr "@code{speed} (default: @code{1.0})"
+
 #. type: table
-#: doc/guix.texi:26450
+#: doc/guix.texi:30038
 msgid "A G-Expression or string denoting the file name of the initial RAM disk to use (@pxref{G-Expressions})."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:26450
+#: doc/guix.texi:30039
 #, no-wrap
 msgid "@code{device} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26453
+#: doc/guix.texi:30042
 msgid "The device where the kernel and initrd are to be found---i.e., for GRUB, @dfn{root} for this menu entry (@pxref{root,,, grub, GNU GRUB manual})."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26459
+#: doc/guix.texi:30048
 msgid "This may be a file system label (a string), a file system UUID (a bytevector, @pxref{File Systems}), or @code{#f}, in which case the bootloader will search the device containing the file specified by the @code{linux} field (@pxref{search,,, grub, GNU GRUB manual}).  It must @emph{not} be an OS device name such as @file{/dev/sda1}."
 msgstr ""
 
+#. type: item
+#: doc/guix.texi:30049
+#, fuzzy, no-wrap
+#| msgid "@code{port} (default: @code{22})"
+msgid "@code{multiboot-kernel} (default: @code{#f})"
+msgstr "@code{port} (default: @code{22})"
+
+#. type: table
+#: doc/guix.texi:30053
+msgid "The kernel to boot in Multiboot-mode (@pxref{multiboot,,, grub, GNU GRUB manual}).  When this field is set, a Multiboot menu-entry is generated.  For example:"
+msgstr ""
+
+#. type: lisp
+#: doc/guix.texi:30056
+#, no-wrap
+msgid "(file-append mach \"/boot/gnumach\")\n"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:30058
+#, fuzzy, no-wrap
+#| msgid "@code{arguments} (default: @code{'()})"
+msgid "@code{multiboot-arguments} (default: @code{()})"
+msgstr "@code{arguments} (default: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:30060
+msgid "The list of extra command-line arguments for the multiboot-kernel."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:30061
+#, fuzzy, no-wrap
+#| msgid "@code{features} (default: @code{'()})"
+msgid "@code{multiboot-modules} (default: @code{()})"
+msgstr "@code{features} (default: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:30063
+msgid "The list of commands for loading Multiboot modules.  For example:"
+msgstr ""
+
+#. type: lisp
+#: doc/guix.texi:30069
+#, no-wrap
+msgid ""
+"(list (list (file-append hurd \"/hurd/ext2fs.static\") \"ext2fs\"\n"
+"             @dots{})\n"
+"      (list (file-append libc \"/lib/ld.so.1\") \"exec\"\n"
+"             @dots{}))\n"
+msgstr ""
+
 #. type: cindex
-#: doc/guix.texi:26463 doc/guix.texi:26522
+#: doc/guix.texi:30074 doc/guix.texi:30133
 #, no-wrap
 msgid "HDPI"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:26464 doc/guix.texi:26523
+#: doc/guix.texi:30075 doc/guix.texi:30134
 #, no-wrap
 msgid "HiDPI"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:26465 doc/guix.texi:26524
+#: doc/guix.texi:30076 doc/guix.texi:30135
 #, fuzzy, no-wrap
 #| msgid "isolation"
 msgid "resolution"
 msgstr "изоляция"
 
 #. type: Plain text
-#: doc/guix.texi:26469
+#: doc/guix.texi:30080
 msgid "For now only GRUB has theme support.  GRUB themes are created using the @code{grub-theme} form, which is not fully documented yet."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:26470
+#: doc/guix.texi:30081
 #, fuzzy, no-wrap
 #| msgid "{Data Type} build-machine"
 msgid "{Data Type} grub-theme"
 msgstr "{Тип данных} build-machine"
 
 #. type: deftp
-#: doc/guix.texi:26472
+#: doc/guix.texi:30083
 msgid "Data type representing the configuration of the GRUB theme."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:26474
+#: doc/guix.texi:30085
 #, fuzzy, no-wrap
 #| msgid "@code{port} (default: @code{22})"
 msgid "@code{gfxmode} (default: @code{'(\"auto\")})"
 msgstr "@code{port} (default: @code{22})"
 
 #. type: table
-#: doc/guix.texi:26477
-msgid "The GRUB @code{gfxmode} to set (a list of screen resolution strings, see @pxref{gfxmode,,, grub, GNU GRUB manual})."
+#: doc/guix.texi:30088
+msgid "The GRUB @code{gfxmode} to set (a list of screen resolution strings, @pxref{gfxmode,,, grub, GNU GRUB manual})."
 msgstr ""
 
-#. type: defvr
-#: doc/guix.texi:26484
-msgid "This is the default GRUB theme used by the operating system if no @code{theme} field is specified in @code{bootloader-configuration} record."
+#. type: deffn
+#: doc/guix.texi:30091
+#, fuzzy, no-wrap
+#| msgid "{Scheme Procedure} sane-service-type"
+msgid "{Scheme Procedure} grub-theme"
+msgstr "{Процедура Scheme} sane-service-type"
+
+#. type: deffn
+#: doc/guix.texi:30095
+msgid "Return the default GRUB theme used by the operating system if no @code{theme} field is specified in @code{bootloader-configuration} record."
 msgstr ""
 
-#. type: defvr
-#: doc/guix.texi:26487
+#. type: deffn
+#: doc/guix.texi:30098
 msgid "It comes with a fancy background image displaying the GNU and Guix logos."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:26491
+#: doc/guix.texi:30102
 msgid "For example, to override the default resolution, you may use something like"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:26499
+#: doc/guix.texi:30110
 #, no-wrap
 msgid ""
 "(bootloader\n"
-" (grub-configuration\n"
+" (bootloader-configuration\n"
 " ;; @dots{}\n"
 " (theme (grub-theme\n"
-"         (inherit %default-theme)\n"
+"         (inherit (grub-theme))\n"
 "         (gfxmode '(\"1024x786x32\" \"auto\"))))))\n"
 msgstr ""
 
 #. type: section
-#: doc/guix.texi:26502
+#: doc/guix.texi:30113
 #, no-wrap
 msgid "Invoking @code{guix system}"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:26507
+#: doc/guix.texi:30118
 msgid "Once you have written an operating system declaration as seen in the previous section, it can be @dfn{instantiated} using the @command{guix system} command.  The synopsis is:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:26510
+#: doc/guix.texi:30121
 #, no-wrap
 msgid "guix system @var{options}@dots{} @var{action} @var{file}\n"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:26516
+#: doc/guix.texi:30127
 msgid "@var{file} must be the name of a file containing an @code{operating-system} declaration.  @var{action} specifies how the operating system is instantiated.  Currently the following values are supported:"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:26518
+#: doc/guix.texi:30129
 #, no-wrap
 msgid "search"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26521
+#: doc/guix.texi:30132
 msgid "Display available service type definitions that match the given regular expressions, sorted by relevance:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:26543
+#: doc/guix.texi:30154
 #, no-wrap
 msgid ""
 "$ guix system search console\n"
@@ -48396,7 +55377,7 @@ msgid ""
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:26549
+#: doc/guix.texi:30160
 #, no-wrap
 msgid ""
 "name: mingetty\n"
@@ -48408,7 +55389,7 @@ msgid ""
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:26556
+#: doc/guix.texi:30167
 #, no-wrap
 msgid ""
 "name: login\n"
@@ -48421,66 +55402,73 @@ msgid ""
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:26558
+#: doc/guix.texi:30169
 #, no-wrap
 msgid "@dots{}\n"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26563
+#: doc/guix.texi:30174
 msgid "As for @command{guix package --search}, the result is written in @code{recutils} format, which makes it easy to filter the output (@pxref{Top, GNU recutils databases,, recutils, GNU recutils manual})."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:26564
+#: doc/guix.texi:30175
 #, no-wrap
 msgid "reconfigure"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26569
+#: doc/guix.texi:30180
 msgid "Build the operating system described in @var{file}, activate it, and switch to it@footnote{This action (and the related actions @code{switch-generation} and @code{roll-back}) are usable only on systems already running Guix System.}."
 msgstr ""
 
 #. type: quotation
-#: doc/guix.texi:26577
+#: doc/guix.texi:30188
 msgid "It is highly recommended to run @command{guix pull} once before you run @command{guix system reconfigure} for the first time (@pxref{Invoking guix pull}).  Failing to do that you would see an older version of Guix once @command{reconfigure} has completed."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26585
+#: doc/guix.texi:30196
 msgid "This effects all the configuration specified in @var{file}: user accounts, system services, global package list, setuid programs, etc.  The command starts system services specified in @var{file} that are not currently running; if a service is currently running this command will arrange for it to be upgraded the next time it is stopped (e.g.@: by @code{herd stop X} or @code{herd restart X})."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26591
+#: doc/guix.texi:30202
 msgid "This command creates a new generation whose number is one greater than the current generation (as reported by @command{guix system list-generations}).  If that generation already exists, it will be overwritten.  This behavior mirrors that of @command{guix package} (@pxref{Invoking guix package})."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26596
+#: doc/guix.texi:30207
 msgid "It also adds a bootloader menu entry for the new OS configuration, ---unless @option{--no-bootloader} is passed.  For GRUB, it moves entries for older configurations to a submenu, allowing you to choose an older system generation at boot time should you need it."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:26597 doc/guix.texi:26879 doc/guix.texi:27776
+#: doc/guix.texi:30208 doc/guix.texi:30511 doc/guix.texi:31454
 #, fuzzy, no-wrap
 #| msgid "provenance tracking, of software artifacts"
 msgid "provenance tracking, of the operating system"
 msgstr "трекинг источника, артефакты программного обеспечения"
 
 #. type: table
-#: doc/guix.texi:26603
-msgid "Upon completion, the new system is deployed under @file{/run/current-system}.  This directory contains @dfn{provenance meta-data}: the list of channels in use (@pxref{Channels}) and @var{file} itself, when available.  This information is useful should you later want to inspect how this particular generation was built."
+#: doc/guix.texi:30213
+msgid "Upon completion, the new system is deployed under @file{/run/current-system}.  This directory contains @dfn{provenance meta-data}: the list of channels in use (@pxref{Channels}) and @var{file} itself, when available.  You can view it by running:"
 msgstr ""
 
+#. type: example
+#: doc/guix.texi:30216
+#, fuzzy, no-wrap
+#| msgid "Invoking guix describe"
+msgid "guix system describe\n"
+msgstr "Вызов guix describe"
+
 #. type: table
-#: doc/guix.texi:26606
-msgid "In fact, assuming @var{file} is self-contained, you can later rebuild generation @var{n} of your operating system with:"
+#: doc/guix.texi:30222
+msgid "This information is useful should you later want to inspect how this particular generation was built.  In fact, assuming @var{file} is self-contained, you can later rebuild generation @var{n} of your operating system with:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:26612
+#: doc/guix.texi:30228
 #, no-wrap
 msgid ""
 "guix time-machine \\\n"
@@ -48490,217 +55478,222 @@ msgid ""
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26618
+#: doc/guix.texi:30234
 msgid "You can think of it as some sort of built-in version control! Your system is not just a binary artifact: @emph{it carries its own source}.  @xref{Service Reference, @code{provenance-service-type}}, for more information on provenance tracking."
 msgstr ""
 
+#. type: table
+#: doc/guix.texi:30240
+msgid "By default, @command{reconfigure} @emph{prevents you from downgrading your system}, which could (re)introduce security vulnerabilities and also cause problems with ``stateful'' services such as database management systems.  You can override that behavior by passing @option{--allow-downgrades}."
+msgstr ""
+
 #. type: item
-#: doc/guix.texi:26619
+#: doc/guix.texi:30241
 #, no-wrap
 msgid "switch-generation"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26628
+#: doc/guix.texi:30250
 msgid "Switch to an existing system generation.  This action atomically switches the system profile to the specified system generation.  It also rearranges the system's existing bootloader menu entries.  It makes the menu entry for the specified system generation the default, and it moves the entries for the other generations to a submenu, if supported by the bootloader being used.  The next time the system boots, it will use the specified system generation."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26632
+#: doc/guix.texi:30254
 msgid "The bootloader itself is not being reinstalled when using this command.  Thus, the installed bootloader is used with an updated configuration file."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26636
+#: doc/guix.texi:30258
 msgid "The target generation can be specified explicitly by its generation number.  For example, the following invocation would switch to system generation 7:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:26639
+#: doc/guix.texi:30261
 #, no-wrap
 msgid "guix system switch-generation 7\n"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26647
+#: doc/guix.texi:30269
 msgid "The target generation can also be specified relative to the current generation with the form @code{+N} or @code{-N}, where @code{+3} means ``3 generations ahead of the current generation,'' and @code{-1} means ``1 generation prior to the current generation.'' When specifying a negative value such as @code{-1}, you must precede it with @code{--} to prevent it from being parsed as an option.  For example:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:26650
+#: doc/guix.texi:30272
 #, no-wrap
 msgid "guix system switch-generation -- -1\n"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26658
+#: doc/guix.texi:30280
 msgid "Currently, the effect of invoking this action is @emph{only} to switch the system profile to an existing generation and rearrange the bootloader menu entries.  To actually start using the target system generation, you must reboot after running this action.  In the future, it will be updated to do the same things as @command{reconfigure}, like activating and deactivating services."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26660
+#: doc/guix.texi:30282
 msgid "This action will fail if the specified generation does not exist."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:26661
+#: doc/guix.texi:30283
 #, no-wrap
 msgid "roll-back"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26667
+#: doc/guix.texi:30289
 msgid "Switch to the preceding system generation.  The next time the system boots, it will use the preceding system generation.  This is the inverse of @command{reconfigure}, and it is exactly the same as invoking @command{switch-generation} with an argument of @code{-1}."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26671
+#: doc/guix.texi:30293
 msgid "Currently, as with @command{switch-generation}, you must reboot after running this action to actually start using the preceding system generation."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:26672
+#: doc/guix.texi:30294
 #, no-wrap
 msgid "delete-generations"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:26673
+#: doc/guix.texi:30295
 #, no-wrap
 msgid "deleting system generations"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:26674
+#: doc/guix.texi:30296
 #, no-wrap
 msgid "saving space"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26678
+#: doc/guix.texi:30300
 msgid "Delete system generations, making them candidates for garbage collection (@pxref{Invoking guix gc}, for information on how to run the ``garbage collector'')."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26682
-msgid "This works in the same way as @command{guix package --delete-generations} (@pxref{Invoking guix package, @code{--delete-generations}}).  With no arguments, all system generations but the current one are deleted:"
+#: doc/guix.texi:30304
+msgid "This works in the same way as @samp{guix package --delete-generations} (@pxref{Invoking guix package, @option{--delete-generations}}).  With no arguments, all system generations but the current one are deleted:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:26685
+#: doc/guix.texi:30307
 #, no-wrap
 msgid "guix system delete-generations\n"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26689
+#: doc/guix.texi:30311
 msgid "You can also select the generations you want to delete.  The example below deletes all the system generations that are more than two month old:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:26692
+#: doc/guix.texi:30314
 #, no-wrap
 msgid "guix system delete-generations 2m\n"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26697
+#: doc/guix.texi:30319
 msgid "Running this command automatically reinstalls the bootloader with an updated list of menu entries---e.g., the ``old generations'' sub-menu in GRUB no longer lists the generations that have been deleted."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26702
+#: doc/guix.texi:30324
 msgid "Build the derivation of the operating system, which includes all the configuration files and programs needed to boot and run the system.  This action does not actually install anything."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:26703
+#: doc/guix.texi:30325
 #, no-wrap
 msgid "init"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26707
+#: doc/guix.texi:30329
 msgid "Populate the given directory with all the files necessary to run the operating system specified in @var{file}.  This is useful for first-time installations of Guix System.  For instance:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:26710
+#: doc/guix.texi:30332
 #, no-wrap
 msgid "guix system init my-os-config.scm /mnt\n"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26717
+#: doc/guix.texi:30339
 msgid "copies to @file{/mnt} all the store items required by the configuration specified in @file{my-os-config.scm}.  This includes configuration files, packages, and so on.  It also creates other essential files needed for the system to operate correctly---e.g., the @file{/etc}, @file{/var}, and @file{/run} directories, and the @file{/bin/sh} file."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26721
+#: doc/guix.texi:30343
 msgid "This command also installs bootloader on the target specified in @file{my-os-config}, unless the @option{--no-bootloader} option was passed."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:26722
+#: doc/guix.texi:30344
 #, no-wrap
 msgid "vm"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:26723 doc/guix.texi:27220
+#: doc/guix.texi:30345 doc/guix.texi:30879
 #, no-wrap
 msgid "virtual machine"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:26724
+#: doc/guix.texi:30346
 #, no-wrap
 msgid "VM"
 msgstr ""
 
 #. type: anchor{#1}
-#: doc/guix.texi:26728
+#: doc/guix.texi:30350
 msgid "guix system vm"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26728
+#: doc/guix.texi:30350
 msgid "Build a virtual machine that contains the operating system declared in @var{file}, and return a script to run that virtual machine (VM)."
 msgstr ""
 
 #. type: quotation
-#: doc/guix.texi:26736
+#: doc/guix.texi:30358
 msgid "The @code{vm} action and others below can use KVM support in the Linux-libre kernel.  Specifically, if the machine has hardware virtualization support, the corresponding KVM kernel module should be loaded, and the @file{/dev/kvm} device node must exist and be readable and writable by the user and by the build users of the daemon (@pxref{Build Environment Setup})."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26741
+#: doc/guix.texi:30363
 msgid "Arguments given to the script are passed to QEMU as in the example below, which enables networking and requests 1@tie{}GiB of RAM for the emulated machine:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:26744
+#: doc/guix.texi:30366
 #, no-wrap
 msgid "$ /gnu/store/@dots{}-run-vm.sh -m 1024 -smp 2 -net user,model=virtio-net-pci\n"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26747
+#: doc/guix.texi:30369
 msgid "The VM shares its store with the host system."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26752
-msgid "Additional file systems can be shared between the host and the VM using the @code{--share} and @code{--expose} command-line options: the former specifies a directory to be shared with write access, while the latter provides read-only access to the shared directory."
+#: doc/guix.texi:30374
+msgid "Additional file systems can be shared between the host and the VM using the @option{--share} and @option{--expose} command-line options: the former specifies a directory to be shared with write access, while the latter provides read-only access to the shared directory."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26756
+#: doc/guix.texi:30378
 msgid "The example below creates a VM in which the user's home directory is accessible read-only, and where the @file{/exchange} directory is a read-write mapping of @file{$HOME/tmp} on the host:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:26760
+#: doc/guix.texi:30382
 #, no-wrap
 msgid ""
 "guix system vm my-config.scm \\\n"
@@ -48708,78 +55701,83 @@ msgid ""
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26765
+#: doc/guix.texi:30387
 msgid "On GNU/Linux, the default is to boot directly to the kernel; this has the advantage of requiring only a very tiny root disk image since the store of the host can then be mounted."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26771
-msgid "The @code{--full-boot} option forces a complete boot sequence, starting with the bootloader.  This requires more disk space since a root image containing at least the kernel, initrd, and bootloader data files must be created.  The @code{--image-size} option can be used to specify the size of the image."
+#: doc/guix.texi:30393
+msgid "The @option{--full-boot} option forces a complete boot sequence, starting with the bootloader.  This requires more disk space since a root image containing at least the kernel, initrd, and bootloader data files must be created.  The @option{--image-size} option can be used to specify the size of the image."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:26772
+#: doc/guix.texi:30394
 #, no-wrap
 msgid "System images, creation in various formats"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:26773
+#: doc/guix.texi:30395
 #, no-wrap
 msgid "Creating system images in various formats"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:26774
+#: doc/guix.texi:30396
 #, no-wrap
 msgid "vm-image"
 msgstr ""
 
 #. type: itemx
-#: doc/guix.texi:26775
+#: doc/guix.texi:30397
 #, no-wrap
 msgid "disk-image"
 msgstr ""
 
 #. type: itemx
-#: doc/guix.texi:26776
+#: doc/guix.texi:30398
 #, no-wrap
 msgid "docker-image"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26784
+#: doc/guix.texi:30406
 msgid "Return a virtual machine, disk image, or Docker image of the operating system declared in @var{file} that stands alone.  By default, @command{guix system} estimates the size of the image needed to store the system, but you can use the @option{--image-size} option to specify a value.  Docker images are built to contain exactly what they need, so the @option{--image-size} option is ignored in the case of @code{docker-image}."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26787
-msgid "You can specify the root file system type by using the @option{--file-system-type} option.  It defaults to @code{ext4}."
+#: doc/guix.texi:30412
+msgid "The @code{disk-image} command can produce various image types.  The image type can be selected using the @command{--image-type} option.  It defaults to @code{raw}. When its value is @code{iso9660}, the @option{--label} option can be used to specify a volume ID with @code{disk-image}."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26791
-msgid "When using @code{vm-image}, the returned image is in qcow2 format, which the QEMU emulator can efficiently use. @xref{Running Guix in a VM}, for more information on how to run the image in a virtual machine."
+#: doc/guix.texi:30417
+msgid "When using the @code{raw} image type, a raw disk image is produced; it can be copied as is to a USB stick, for instance.  Assuming @code{/dev/sdc} is the device corresponding to a USB stick, one can copy the image to it using the following command:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:30420
+#, no-wrap
+msgid "# dd if=$(guix system disk-image my-os.scm) of=/dev/sdc status=progress\n"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26796
-msgid "When using @code{disk-image}, a raw disk image is produced; it can be copied as is to a USB stick, for instance.  Assuming @code{/dev/sdc} is the device corresponding to a USB stick, one can copy the image to it using the following command:"
+#: doc/guix.texi:30424
+msgid "The @code{--list-image-types} command lists all the available image types."
 msgstr ""
 
-#. type: example
-#: doc/guix.texi:26799
-#, no-wrap
-msgid "# dd if=$(guix system disk-image my-os.scm) of=/dev/sdc\n"
+#. type: table
+#: doc/guix.texi:30428
+msgid "When using @code{vm-image}, the returned image is in qcow2 format, which the QEMU emulator can efficiently use. @xref{Running Guix in a VM}, for more information on how to run the image in a virtual machine."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26806
+#: doc/guix.texi:30434
 msgid "When using @code{docker-image}, a Docker image is produced.  Guix builds the image from scratch, not from a pre-existing Docker base image.  As a result, it contains @emph{exactly} what you define in the operating system configuration file.  You can then load the image and launch a Docker container using commands like the following:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:26811
+#: doc/guix.texi:30439
 #, no-wrap
 msgid ""
 "image_id=\"`docker load < guix-system-docker-image.tar.gz`\"\n"
@@ -48788,38 +55786,43 @@ msgid ""
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26818
+#: doc/guix.texi:30446
 msgid "This command starts a new Docker container from the specified image.  It will boot the Guix system in the usual manner, which means it will start any services you have defined in the operating system configuration.  You can get an interactive shell running in the container using @command{docker exec}:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:26821
+#: doc/guix.texi:30449
 #, no-wrap
 msgid "docker exec -ti $container_id /run/current-system/profile/bin/bash --login\n"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26828
+#: doc/guix.texi:30456
 msgid "Depending on what you run in the Docker container, it may be necessary to give the container additional permissions.  For example, if you intend to build software using Guix inside of the Docker container, you may need to pass the @option{--privileged} option to @code{docker create}."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26836
+#: doc/guix.texi:30460
+msgid "Last, the @option{--network} option applies to @command{guix system docker-image}: it produces an image where network is supposedly shared with the host, and thus without services like nscd or NetworkManager."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:30468
 msgid "Return a script to run the operating system declared in @var{file} within a container.  Containers are a set of lightweight isolation mechanisms provided by the kernel Linux-libre.  Containers are substantially less resource-demanding than full virtual machines since the kernel, shared objects, and other resources can be shared with the host system; this also means they provide thinner isolation."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26840
+#: doc/guix.texi:30472
 msgid "Currently, the script must be run as root in order to support more than a single user and group.  The container shares its store with the host system."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26844
+#: doc/guix.texi:30476
 msgid "As with the @code{vm} action (@pxref{guix system vm}), additional file systems to be shared between the host and container can be specified using the @option{--share} and @option{--expose} options:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:26848
+#: doc/guix.texi:30480
 #, no-wrap
 msgid ""
 "guix system container my-config.scm \\\n"
@@ -48827,306 +55830,317 @@ msgid ""
 msgstr ""
 
 #. type: quotation
-#: doc/guix.texi:26852
+#: doc/guix.texi:30484
 msgid "This option requires Linux-libre 3.19 or newer."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:26859
+#: doc/guix.texi:30491
 msgid "@var{options} can contain any of the common build options (@pxref{Common Build Options}).  In addition, @var{options} can contain one of the following:"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26868
+#: doc/guix.texi:30500
 msgid "Consider the operating-system @var{expr} evaluates to.  This is an alternative to specifying a file which evaluates to an operating system.  This is used to generate the Guix system installer @pxref{Building the Installation Image})."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26873
+#: doc/guix.texi:30505
 msgid "Attempt to build for @var{system} instead of the host system type.  This works as per @command{guix build} (@pxref{Invoking guix build})."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26878
+#: doc/guix.texi:30510
 msgid "Return the derivation file name of the given operating system without building anything."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26887
+#: doc/guix.texi:30519
 msgid "As discussed above, @command{guix system init} and @command{guix system reconfigure} always save provenance information @i{via} a dedicated service (@pxref{Service Reference, @code{provenance-service-type}}).  However, other commands don't do that by default.  If you wish to, say, create a virtual machine image that contains provenance information, you can run:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:26890
+#: doc/guix.texi:30522
 #, no-wrap
 msgid "guix system vm-image --save-provenance config.scm\n"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26897
+#: doc/guix.texi:30529
 msgid "That way, the resulting image will effectively ``embed its own source'' in the form of meta-data in @file{/run/current-system}.  With that information, one can rebuild the image to make sure it really contains what it pretends to contain; or they could use that to derive a variant of the image."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:26898
-#, no-wrap
-msgid "--file-system-type=@var{type}"
-msgstr ""
+#: doc/guix.texi:30530
+#, fuzzy, no-wrap
+#| msgid "--target=@var{triplet}"
+msgid "--image-type=@var{type}"
+msgstr "--target=@var{triplet}"
 
 #. type: table
-#: doc/guix.texi:26902
-msgid "For the @code{disk-image} action, create a file system of the given @var{type} on the image."
+#: doc/guix.texi:30533
+msgid "For the @code{disk-image} action, create an image with given @var{type}."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26904
-msgid "When this option is omitted, @command{guix system} uses @code{ext4}."
+#: doc/guix.texi:30536
+msgid "When this option is omitted, @command{guix system} uses the @code{raw} image type."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:26905
+#: doc/guix.texi:30537
 #, no-wrap
 msgid "ISO-9660 format"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:26906
+#: doc/guix.texi:30538
 #, no-wrap
 msgid "CD image format"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:26907
+#: doc/guix.texi:30539
 #, no-wrap
 msgid "DVD image format"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26910
-msgid "@code{--file-system-type=iso9660} produces an ISO-9660 image, suitable for burning on CDs and DVDs."
+#: doc/guix.texi:30542
+msgid "@option{--image-type=iso9660} produces an ISO-9660 image, suitable for burning on CDs and DVDs."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:26911
+#: doc/guix.texi:30543
 #, no-wrap
 msgid "--image-size=@var{size}"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26916
+#: doc/guix.texi:30548
 msgid "For the @code{vm-image} and @code{disk-image} actions, create an image of the given @var{size}.  @var{size} may be a number of bytes, or it may include a unit as a suffix (@pxref{Block size, size specifications,, coreutils, GNU Coreutils})."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26920
+#: doc/guix.texi:30552
 msgid "When this option is omitted, @command{guix system} computes an estimate of the image size as a function of the size of the system declared in @var{file}."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26925
+#: doc/guix.texi:30557
 msgid "For the @code{container} action, allow containers to access the host network, that is, do not create a network namespace."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:26931
+#: doc/guix.texi:30563
 #, no-wrap
 msgid "--skip-checks"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26933
+#: doc/guix.texi:30565
 msgid "Skip pre-installation safety checks."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26940
+#: doc/guix.texi:30572
 msgid "By default, @command{guix system init} and @command{guix system reconfigure} perform safety checks: they make sure the file systems that appear in the @code{operating-system} declaration actually exist (@pxref{File Systems}), and that any Linux kernel modules that may be needed at boot time are listed in @code{initrd-modules} (@pxref{Initial RAM Disk}).  Passing this option skips these tests altogether."
 msgstr ""
 
+#. type: table
+#: doc/guix.texi:30575
+msgid "Instruct @command{guix system reconfigure} to allow system downgrades."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:30583
+msgid "By default, @command{reconfigure} prevents you from downgrading your system.  It achieves that by comparing the provenance info of your system (shown by @command{guix system describe}) with that of your @command{guix} command (shown by @command{guix describe}).  If the commits for @command{guix} are not descendants of those used for your system, @command{guix system reconfigure} errors out.  Passing @option{--allow-downgrades} allows you to bypass these checks."
+msgstr ""
+
 #. type: cindex
-#: doc/guix.texi:26941
+#: doc/guix.texi:30589
 #, no-wrap
 msgid "on-error"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:26942
+#: doc/guix.texi:30590
 #, no-wrap
 msgid "on-error strategy"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:26943
+#: doc/guix.texi:30591
 #, no-wrap
 msgid "error strategy"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:26944
+#: doc/guix.texi:30592
 #, no-wrap
 msgid "--on-error=@var{strategy}"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26947
+#: doc/guix.texi:30595
 msgid "Apply @var{strategy} when an error occurs when reading @var{file}.  @var{strategy} may be one of the following:"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:26949
+#: doc/guix.texi:30597
 #, no-wrap
 msgid "nothing-special"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26951
+#: doc/guix.texi:30599
 msgid "Report the error concisely and exit.  This is the default strategy."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:26952
+#: doc/guix.texi:30600
 #, no-wrap
 msgid "backtrace"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26954
+#: doc/guix.texi:30602
 msgid "Likewise, but also display a backtrace."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:26955
+#: doc/guix.texi:30603
 #, no-wrap
 msgid "debug"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26961
+#: doc/guix.texi:30609
 msgid "Report the error and enter Guile's debugger.  From there, you can run commands such as @code{,bt} to get a backtrace, @code{,locals} to display local variable values, and more generally inspect the state of the program.  @xref{Debug Commands,,, guile, GNU Guile Reference Manual}, for a list of available debugging commands."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:26968
+#: doc/guix.texi:30616
 msgid "Once you have built, configured, re-configured, and re-re-configured your Guix installation, you may find it useful to list the operating system generations available on disk---and that you can choose from the bootloader boot menu:"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:26971
+#: doc/guix.texi:30619
 #, no-wrap
 msgid "describe"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26974
+#: doc/guix.texi:30622
 msgid "Describe the current system generation: its file name, the kernel and bootloader used, etc., as well as provenance information when available."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:26975
+#: doc/guix.texi:30623
 #, no-wrap
 msgid "list-generations"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26980
+#: doc/guix.texi:30628
 msgid "List a summary of each generation of the operating system available on disk, in a human-readable way.  This is similar to the @option{--list-generations} option of @command{guix package} (@pxref{Invoking guix package})."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:26985
+#: doc/guix.texi:30633
 msgid "Optionally, one can specify a pattern, with the same syntax that is used in @command{guix package --list-generations}, to restrict the list of generations displayed.  For instance, the following command displays generations that are up to 10 days old:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:26988
+#: doc/guix.texi:30636
 #, no-wrap
 msgid "$ guix system list-generations 10d\n"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:26995
+#: doc/guix.texi:30643
 msgid "The @command{guix system} command has even more to offer! The following sub-commands allow you to visualize how your system services relate to each other:"
 msgstr ""
 
 #. type: anchor{#1}
-#: doc/guix.texi:26997
+#: doc/guix.texi:30645
 msgid "system-extension-graph"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:26999
+#: doc/guix.texi:30647
 #, no-wrap
 msgid "extension-graph"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:27004
-msgid "Emit in Dot/Graphviz format to standard output the @dfn{service extension graph} of the operating system defined in @var{file} (@pxref{Service Composition}, for more information on service extensions.)"
+#: doc/guix.texi:30652
+msgid "Emit in Dot/Graphviz format to standard output the @dfn{service extension graph} of the operating system defined in @var{file} (@pxref{Service Composition}, for more information on service extensions)."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:27006
+#: doc/guix.texi:30654
 msgid "The command:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:27009
+#: doc/guix.texi:30657
 #, no-wrap
-msgid "$ guix system extension-graph @var{file} | dot -Tpdf > services.pdf\n"
+msgid "$ guix system extension-graph @var{file} | xdot -\n"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:27012
-msgid "produces a PDF file showing the extension relations among services."
+#: doc/guix.texi:30660
+msgid "shows the extension relations among services."
 msgstr ""
 
 #. type: anchor{#1}
-#: doc/guix.texi:27014
+#: doc/guix.texi:30662
 msgid "system-shepherd-graph"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:27014
+#: doc/guix.texi:30662
 #, no-wrap
 msgid "shepherd-graph"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:27019
+#: doc/guix.texi:30667
 msgid "Emit in Dot/Graphviz format to standard output the @dfn{dependency graph} of shepherd services of the operating system defined in @var{file}.  @xref{Shepherd Services}, for more information and for an example graph."
 msgstr ""
 
 #. type: section
-#: doc/guix.texi:27023
+#: doc/guix.texi:30671
 #, fuzzy, no-wrap
 #| msgid "Invoking @command{guix pull}"
 msgid "Invoking @code{guix deploy}"
 msgstr "Вызов @command{guix pull}"
 
 #. type: Plain text
-#: doc/guix.texi:27031
+#: doc/guix.texi:30679
 msgid "We've already seen @code{operating-system} declarations used to manage a machine's configuration locally.  Suppose you need to configure multiple machines, though---perhaps you're managing a service on the web that's comprised of several servers.  @command{guix deploy} enables you to use those same @code{operating-system} declarations to manage multiple remote hosts at once as a logical ``deployment''."
 msgstr ""
 
 #. type: quotation
-#: doc/guix.texi:27036
+#: doc/guix.texi:30684
 msgid "The functionality described in this section is still under development and is subject to change.  Get in touch with us on @email{guix-devel@@gnu.org}!"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:27040
+#: doc/guix.texi:30688
 #, fuzzy, no-wrap
 #| msgid "-l @var{file}"
 msgid "guix deploy @var{file}\n"
 msgstr "-l @var{file}"
 
 #. type: Plain text
-#: doc/guix.texi:27044
+#: doc/guix.texi:30692
 msgid "Such an invocation will deploy the machines that the code within @var{file} evaluates to.  As an example, @var{file} might contain a definition like this:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:27051
+#: doc/guix.texi:30699
 #, no-wrap
 msgid ""
 ";; This is a Guix deployment of a \"bare bones\" setup, with\n"
@@ -49138,7 +56152,7 @@ msgid ""
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:27054
+#: doc/guix.texi:30702
 #, no-wrap
 msgid ""
 "(use-service-modules networking ssh)\n"
@@ -49147,7 +56161,7 @@ msgid ""
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:27075
+#: doc/guix.texi:30723
 #, no-wrap
 msgid ""
 "(define %system\n"
@@ -49174,7 +56188,7 @@ msgid ""
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:27085
+#: doc/guix.texi:30733
 #, no-wrap
 msgid ""
 "(list (machine\n"
@@ -49189,38 +56203,38 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:27098
-msgid "The file should evaluate to a list of @var{machine} objects.  This example, upon being deployed, will create a new generation on the remote system realizing the @code{operating-system} declaration @var{%system}.  @var{environment} and @var{configuration} specify how the machine should be provisioned---that is, how the computing resources should be created and managed.  The above example does not create any resources, as a @code{'managed-host} is a machine that is already running the Guix system and available over the network.  This is a particularly simple case; a more complex deployment may involve, for example, starting virtual machines through a Virtual Private Server (VPS) provider.  In such a case, a different @var{environment} type would be used."
+#: doc/guix.texi:30746
+msgid "The file should evaluate to a list of @var{machine} objects.  This example, upon being deployed, will create a new generation on the remote system realizing the @code{operating-system} declaration @code{%system}.  @code{environment} and @code{configuration} specify how the machine should be provisioned---that is, how the computing resources should be created and managed.  The above example does not create any resources, as a @code{'managed-host} is a machine that is already running the Guix system and available over the network.  This is a particularly simple case; a more complex deployment may involve, for example, starting virtual machines through a Virtual Private Server (VPS) provider.  In such a case, a different @var{environment} type would be used."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:27102
+#: doc/guix.texi:30751
 #, fuzzy
 #| msgid "There is one last thing to do once @file{machines.scm} is in place.  As explained above, when offloading, files are transferred back and forth between the machine stores.  For this to work, you first need to generate a key pair on each machine to allow the daemon to export signed archives of files from the store (@pxref{Invoking guix archive}):"
-msgid "Do note that you first need to generate a key pair on the coordinator machine to allow the daemon to export signed archives of files from the store (@pxref{Invoking guix archive})."
+msgid "Do note that you first need to generate a key pair on the coordinator machine to allow the daemon to export signed archives of files from the store (@pxref{Invoking guix archive}), though this step is automatic on Guix System:"
 msgstr "Есть ещё одна вещь, которую нужно выполнить после размещения @file{machines.scm}. Выше описано, что при разгрузке файлы передаются вперёд и назад между складами на машинах. Для этого необходимо сгенерировать ключ-пару на кадой машине, чтобы позволить демону экспортировать подписанные архивы файлов из склада (@pxref{Invoking guix archive}):"
 
 #. type: Plain text
-#: doc/guix.texi:27110
+#: doc/guix.texi:30759
 #, fuzzy
 #| msgid "Each build machine must authorize the key of the master machine so that it accepts store items it receives from the master:"
 msgid "Each target machine must authorize the key of the master machine so that it accepts store items it receives from the coordinator:"
 msgstr "Каждая машина для сорки должна авторизовать ключ машины-инициатора, чтобы принимать элементы из склада, которые присылает инициатор:"
 
 #. type: example
-#: doc/guix.texi:27113
+#: doc/guix.texi:30762
 #, fuzzy, no-wrap
 #| msgid "# guix archive --authorize < master-public-key.txt\n"
 msgid "# guix archive --authorize < coordinator-public-key.txt\n"
 msgstr "# guix archive --authorize < master-public-key.txt\n"
 
 #. type: Plain text
-#: doc/guix.texi:27124
+#: doc/guix.texi:30773
 msgid "@code{user}, in this example, specifies the name of the user account to log in as to perform the deployment.  Its default value is @code{root}, but root login over SSH may be forbidden in some cases.  To work around this, @command{guix deploy} can log in as an unprivileged user and employ @code{sudo} to escalate privileges.  This will only work if @code{sudo} is currently installed on the remote and can be invoked non-interactively as @code{user}.  That is, the line in @code{sudoers} granting @code{user} the ability to use @code{sudo} must contain the @code{NOPASSWD} tag.  This can be accomplished with the following operating system configuration snippet:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:27128
+#: doc/guix.texi:30777
 #, no-wrap
 msgid ""
 "(use-modules ...\n"
@@ -49229,7 +56243,7 @@ msgid ""
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:27130
+#: doc/guix.texi:30779
 #, no-wrap
 msgid ""
 "(define %user \"username\")\n"
@@ -49237,7 +56251,7 @@ msgid ""
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:27138
+#: doc/guix.texi:30787
 #, no-wrap
 msgid ""
 "(operating-system\n"
@@ -49251,234 +56265,257 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:27143
+#: doc/guix.texi:30792
 msgid "For more information regarding the format of the @file{sudoers} file, consult @command{man sudoers}."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:27144
+#: doc/guix.texi:30793
 #, fuzzy, no-wrap
 #| msgid "{Data Type} build-machine"
 msgid "{Data Type} machine"
 msgstr "{Тип данных} build-machine"
 
 #. type: deftp
-#: doc/guix.texi:27147
+#: doc/guix.texi:30796
 msgid "This is the data type representing a single machine in a heterogeneous Guix deployment."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:27151
+#: doc/guix.texi:30800
 #, fuzzy
 #| msgid "Manage the operating system configuration."
 msgid "The object of the operating system configuration to deploy."
 msgstr "Управление конфигурацией операционной системы."
 
 #. type: code{#1}
-#: doc/guix.texi:27152
+#: doc/guix.texi:30801
 #, fuzzy, no-wrap
 #| msgid "guix environment"
 msgid "environment"
 msgstr "guix environment"
 
 #. type: table
-#: doc/guix.texi:27154
+#: doc/guix.texi:30803
 msgid "An @code{environment-type} describing how the machine should be provisioned."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:27155
+#: doc/guix.texi:30804
 #, fuzzy, no-wrap
 #| msgid "@code{port} (default: @code{22})"
 msgid "@code{configuration} (default: @code{#f})"
 msgstr "@code{port} (default: @code{22})"
 
 #. type: table
-#: doc/guix.texi:27160
+#: doc/guix.texi:30809
 msgid "An object describing the configuration for the machine's @code{environment}.  If the @code{environment} has a default configuration, @code{#f} may be used.  If @code{#f} is used for an environment with no default configuration, however, an error will be thrown."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:27163
+#: doc/guix.texi:30812
 #, fuzzy, no-wrap
 #| msgid "{Data Type} build-machine"
 msgid "{Data Type} machine-ssh-configuration"
 msgstr "{Тип данных} build-machine"
 
 #. type: deftp
-#: doc/guix.texi:27166
+#: doc/guix.texi:30815
 msgid "This is the data type representing the SSH client parameters for a machine with an @code{environment} of @code{managed-host-environment-type}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:27169
+#: doc/guix.texi:30818
 #, fuzzy, no-wrap
 #| msgid "@code{speed} (default: @code{1.0})"
 msgid "@code{build-locally?} (default: @code{#t})"
 msgstr "@code{speed} (default: @code{1.0})"
 
 #. type: table
-#: doc/guix.texi:27171
+#: doc/guix.texi:30820
 msgid "If false, system derivations will be built on the machine being deployed to."
 msgstr ""
 
+#. type: code{#1}
+#: doc/guix.texi:30820
+#, no-wrap
+msgid "system"
+msgstr "system"
+
 #. type: table
-#: doc/guix.texi:27174
+#: doc/guix.texi:30823
 #, fuzzy
 #| msgid "The system type of the remote machine---e.g., @code{\"x86_64-linux\"}."
 msgid "The system type describing the architecture of the machine being deployed to---e.g., @code{\"x86_64-linux\"}."
 msgstr "Тип системы удалённой машины, то есть @code{x86_64-linux}."
 
 #. type: item
-#: doc/guix.texi:27174
+#: doc/guix.texi:30823
 #, fuzzy, no-wrap
 #| msgid "@code{port} (default: @code{22})"
 msgid "@code{authorize?} (default: @code{#t})"
 msgstr "@code{port} (default: @code{22})"
 
 #. type: table
-#: doc/guix.texi:27177
+#: doc/guix.texi:30826
 msgid "If true, the coordinator's signing key will be added to the remote's ACL keyring."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:27178
+#: doc/guix.texi:30827
 #, fuzzy, no-wrap
 #| msgid "@code{port} (default: @code{22})"
 msgid "@code{user} (default: @code{\"root\"})"
 msgstr "@code{port} (default: @code{22})"
 
 #. type: item
-#: doc/guix.texi:27179
+#: doc/guix.texi:30828
 #, fuzzy, no-wrap
 #| msgid "@code{speed} (default: @code{1.0})"
 msgid "@code{identity} (default: @code{#f})"
 msgstr "@code{speed} (default: @code{1.0})"
 
 #. type: table
-#: doc/guix.texi:27182
+#: doc/guix.texi:30831
 msgid "If specified, the path to the SSH private key to use to authenticate with the remote host."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:27183
+#: doc/guix.texi:30832
 #, fuzzy, no-wrap
 #| msgid "@code{port} (default: @code{22})"
 msgid "@code{host-key} (default: @code{#f})"
 msgstr "@code{port} (default: @code{22})"
 
 #. type: table
-#: doc/guix.texi:27185
+#: doc/guix.texi:30834
 msgid "This should be the SSH host key of the machine, which looks like this:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:27188
+#: doc/guix.texi:30837
 #, fuzzy, no-wrap
 #| msgid "ssh-ed25519 AAAAC3NzaC@dots{}mde+UhL hint@@example.org\n"
 msgid "ssh-ed25519 AAAAC3Nz@dots{} root@@example.org\n"
 msgstr "ssh-ed25519 AAAAC3NzaC@dots{}mde+UhL hint@@example.org\n"
 
 #. type: table
-#: doc/guix.texi:27193
+#: doc/guix.texi:30842
 msgid "When @code{host-key} is @code{#f}, the server is authenticated against the @file{~/.ssh/known_hosts} file, just like the OpenSSH @command{ssh} client does."
 msgstr ""
 
+#. type: item
+#: doc/guix.texi:30843
+#, fuzzy, no-wrap
+#| msgid "@code{port} (default: @code{22})"
+msgid "@code{allow-downgrades?} (default: @code{#f})"
+msgstr "@code{port} (default: @code{22})"
+
+#. type: table
+#: doc/guix.texi:30845
+msgid "Whether to allow potential downgrades."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:30853
+msgid "Like @command{guix system reconfigure}, @command{guix deploy} compares the channel commits currently deployed on the remote host (as returned by @command{guix system describe}) to those currently in use (as returned by @command{guix describe}) to determine whether commits currently in use are descendants of those deployed.  When this is not the case and @code{allow-downgrades?} is false, it raises an error.  This ensures you do not accidentally downgrade remote machines."
+msgstr ""
+
 #. type: deftp
-#: doc/guix.texi:27197
+#: doc/guix.texi:30856
 #, no-wrap
 msgid "{Data Type} digital-ocean-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:27200
+#: doc/guix.texi:30859
 msgid "This is the data type describing the Droplet that should be created for a machine with an @code{environment} of @code{digital-ocean-environment-type}."
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:27202
+#: doc/guix.texi:30861
 #, fuzzy, no-wrap
 #| msgid "host-key"
 msgid "ssh-key"
 msgstr "host-key"
 
 #. type: table
-#: doc/guix.texi:27205
+#: doc/guix.texi:30864
 msgid "The path to the SSH private key to use to authenticate with the remote host. In the future, this field may not exist."
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:27205
+#: doc/guix.texi:30864
 #, no-wrap
 msgid "tags"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:27208
+#: doc/guix.texi:30867
 msgid "A list of string ``tags'' that uniquely identify the machine. Must be given such that no two machines in the deployment have the same set of tags."
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:27208
+#: doc/guix.texi:30867
 #, no-wrap
 msgid "region"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:27210
+#: doc/guix.texi:30869
 msgid "A Digital Ocean region slug, such as @code{\"nyc3\"}."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:27212
+#: doc/guix.texi:30871
 msgid "A Digital Ocean size slug, such as @code{\"s-1vcpu-1gb\"}"
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:27212
+#: doc/guix.texi:30871
 #, no-wrap
 msgid "enable-ipv6?"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:27214
+#: doc/guix.texi:30873
 msgid "Whether or not the droplet should be created with IPv6 networking."
 msgstr ""
 
 #. type: section
-#: doc/guix.texi:27218
+#: doc/guix.texi:30877
 #, no-wrap
 msgid "Running Guix in a Virtual Machine"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:27227
+#: doc/guix.texi:30886
 msgid "To run Guix in a virtual machine (VM), one can use the pre-built Guix VM image distributed at @url{@value{BASE-URL}/guix-system-vm-image-@value{VERSION}.x86_64-linux.xz}.  This image is a compressed image in QCOW format.  You will first need to decompress with @command{xz -d}, and then you can pass it to an emulator such as QEMU (see below for details)."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:27233
-msgid "This image boots the Xfce graphical environment and it contains some commonly-used tools.  You can install more software in the image by running @command{guix package} in a terminal (@pxref{Invoking guix package}).  You can also reconfigure the system based on its initial configuration file available as @file{/etc/config.scm} (@pxref{Using the Configuration System})."
+#: doc/guix.texi:30893
+msgid "This image boots the Xfce graphical environment and it contains some commonly-used tools.  You can install more software in the image by running @command{guix package} in a terminal (@pxref{Invoking guix package}).  You can also reconfigure the system based on its initial configuration file available as @file{/run/current-system/configuration.scm} (@pxref{Using the Configuration System})."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:27238
+#: doc/guix.texi:30898
 msgid "Instead of using this pre-built image, one can also build their own virtual machine image using @command{guix system vm-image} (@pxref{Invoking guix system}).  The returned image is in qcow2 format, which the @uref{https://qemu.org/, QEMU emulator} can efficiently use."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:27239
+#: doc/guix.texi:30899
 #, no-wrap
 msgid "QEMU"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:27246
+#: doc/guix.texi:30906
 msgid "If you built your own image, you must copy it out of the store (@pxref{The Store}) and give yourself permission to write to the copy before you can use it.  When invoking QEMU, you must choose a system emulator that is suitable for your hardware platform.  Here is a minimal QEMU invocation that will boot the result of @command{guix system vm-image} on x86_64 hardware:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:27253
+#: doc/guix.texi:30913
 #, no-wrap
 msgid ""
 "$ qemu-system-x86_64 \\\n"
@@ -49489,132 +56526,132 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:27256
+#: doc/guix.texi:30916
 msgid "Here is what each of these options means:"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:27258
+#: doc/guix.texi:30918
 #, no-wrap
 msgid "qemu-system-x86_64"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:27261
+#: doc/guix.texi:30921
 msgid "This specifies the hardware platform to emulate.  This should match the host."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:27262
+#: doc/guix.texi:30922
 #, no-wrap
 msgid "-nic user,model=virtio-net-pci"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:27270
+#: doc/guix.texi:30930
 msgid "Enable the unprivileged user-mode network stack.  The guest OS can access the host but not vice versa.  This is the simplest way to get the guest OS online.  @code{model} specifies which network device to emulate: @code{virtio-net-pci} is a special device made for virtualized operating systems and recommended for most uses.  Assuming your hardware platform is x86_64, you can get a list of available NIC models by running @command{qemu-system-x86_64 -nic model=help}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:27271
+#: doc/guix.texi:30931
 #, no-wrap
 msgid "-enable-kvm"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:27275
+#: doc/guix.texi:30935
 msgid "If your system has hardware virtualization extensions, enabling the virtual machine support (KVM) of the Linux kernel will make things run faster."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:27277
+#: doc/guix.texi:30937
 #, no-wrap
 msgid "-m 1024"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:27280
+#: doc/guix.texi:30940
 msgid "RAM available to the guest OS, in mebibytes.  Defaults to 128@tie{}MiB, which may be insufficient for some operations."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:27281
+#: doc/guix.texi:30941
 #, no-wrap
 msgid "-device virtio-blk,drive=myhd"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:27286
+#: doc/guix.texi:30946
 msgid "Create a @code{virtio-blk} drive called ``myhd''.  @code{virtio-blk} is a ``paravirtualization'' mechanism for block devices that allows QEMU to achieve better performance than if it were emulating a complete disk drive.  See the QEMU and KVM documentation for more info."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:27287
+#: doc/guix.texi:30947
 #, no-wrap
 msgid "-drive if=none,file=/tmp/qemu-image,id=myhd"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:27290
+#: doc/guix.texi:30950
 msgid "Use our QCOW image, the @file{/tmp/qemu-image} file, as the backing store the the ``myhd'' drive."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:27300
+#: doc/guix.texi:30960
 msgid "The default @command{run-vm.sh} script that is returned by an invocation of @command{guix system vm} does not add a @command{-nic user} flag by default.  To get network access from within the vm add the @code{(dhcp-client-service)} to your system definition and start the VM using @command{`guix system vm config.scm` -nic user}.  An important caveat of using @command{-nic user} for networking is that @command{ping} will not work, because it uses the ICMP protocol.  You'll have to use a different command to check for network connectivity, for example @command{guix download}."
 msgstr ""
 
 #. type: subsection
-#: doc/guix.texi:27301
+#: doc/guix.texi:30961
 #, no-wrap
 msgid "Connecting Through SSH"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:27309
+#: doc/guix.texi:30969
 msgid "To enable SSH inside a VM you need to add an SSH server like @code{openssh-service-type} to your VM (@pxref{Networking Services, @code{openssh-service-type}}).  In addition you need to forward the SSH port, 22 by default, to the host.  You can do this with"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:27312
+#: doc/guix.texi:30972
 #, no-wrap
 msgid "`guix system vm config.scm` -nic user,model=virtio-net-pci,hostfwd=tcp::10022-:22\n"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:27315
+#: doc/guix.texi:30975
 msgid "To connect to the VM you can run"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:27318
+#: doc/guix.texi:30978
 #, no-wrap
 msgid "ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p 10022\n"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:27325
+#: doc/guix.texi:30985
 msgid "The @command{-p} tells @command{ssh} the port you want to connect to.  @command{-o UserKnownHostsFile=/dev/null} prevents @command{ssh} from complaining every time you modify your @command{config.scm} file and the @command{-o StrictHostKeyChecking=no} prevents you from having to allow a connection to an unknown host every time you connect."
 msgstr ""
 
 #. type: subsection
-#: doc/guix.texi:27326
+#: doc/guix.texi:30986
 #, no-wrap
 msgid "Using @command{virt-viewer} with Spice"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:27332
+#: doc/guix.texi:30992
 msgid "As an alternative to the default @command{qemu} graphical client you can use the @command{remote-viewer} from the @command{virt-viewer} package.  To connect pass the @command{-spice port=5930,disable-ticketing} flag to @command{qemu}.  See previous section for further information on how to do this."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:27335
+#: doc/guix.texi:30995
 msgid "Spice also allows you to do some nice stuff like share your clipboard with your VM.  To enable that you'll also have to pass the following flags to @command{qemu}:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:27341
+#: doc/guix.texi:31001
 #, no-wrap
 msgid ""
 "-device virtio-serial-pci,id=virtio-serial0,max_ports=16,bus=pci.0,addr=0x5\n"
@@ -49622,83 +56659,87 @@ msgid ""
 "-device virtserialport,nr=1,bus=virtio-serial0.0,chardev=vdagent,\n"
 "name=com.redhat.spice.0\n"
 msgstr ""
+"-device virtio-serial-pci,id=virtio-serial0,max_ports=16,bus=pci.0,addr=0x5\n"
+"-chardev spicevmc,name=vdagent,id=vdagent\n"
+"-device virtserialport,nr=1,bus=virtio-serial0.0,chardev=vdagent,\n"
+"name=com.redhat.spice.0\n"
 
 #. type: Plain text
-#: doc/guix.texi:27344
-msgid "You'll also need to add the @pxref{Miscellaneous Services, Spice service}."
+#: doc/guix.texi:31005
+msgid "You'll also need to add the @code{(spice-vdagent-service)} to your system definition (@pxref{Miscellaneous Services, Spice service})."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:27351
+#: doc/guix.texi:31012
 msgid "The previous sections show the available services and how one can combine them in an @code{operating-system} declaration.  But how do we define them in the first place? And what is a service anyway?"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:27363
+#: doc/guix.texi:31024
 #, no-wrap
 msgid "daemons"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:27376
+#: doc/guix.texi:31037
 msgid "Here we define a @dfn{service} as, broadly, something that extends the functionality of the operating system.  Often a service is a process---a @dfn{daemon}---started when the system boots: a secure shell server, a Web server, the Guix build daemon, etc.  Sometimes a service is a daemon whose execution can be triggered by another daemon---e.g., an FTP server started by @command{inetd} or a D-Bus service activated by @command{dbus-daemon}.  Occasionally, a service does not map to a daemon.  For instance, the ``account'' service collects user accounts and makes sure they exist when the system runs; the ``udev'' service collects device management rules and makes them available to the eudev daemon; the @file{/etc} service populates the @file{/etc} directory of the system."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:27377
+#: doc/guix.texi:31038
 #, no-wrap
 msgid "service extensions"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:27389
+#: doc/guix.texi:31050
 msgid "Guix system services are connected by @dfn{extensions}.  For instance, the secure shell service @emph{extends} the Shepherd---the initialization system, running as PID@tie{}1---by giving it the command lines to start and stop the secure shell daemon (@pxref{Networking Services, @code{openssh-service-type}}); the UPower service extends the D-Bus service by passing it its @file{.service} specification, and extends the udev service by passing it device management rules (@pxref{Desktop Services, @code{upower-service}}); the Guix daemon service extends the Shepherd by passing it the command lines to start and stop the daemon, and extends the account service by passing it a list of required build user accounts (@pxref{Base Services})."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:27393
+#: doc/guix.texi:31054
 msgid "All in all, services and their ``extends'' relations form a directed acyclic graph (DAG).  If we represent services as boxes and extensions as arrows, a typical system might provide something like this:"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:27395
+#: doc/guix.texi:31056
 msgid "@image{images/service-graph,,5in,Typical service extension graph.}"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:27396
+#: doc/guix.texi:31057
 #, no-wrap
 msgid "system service"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:27404
+#: doc/guix.texi:31065
 msgid "At the bottom, we see the @dfn{system service}, which produces the directory containing everything to run and boot the system, as returned by the @command{guix system build} command.  @xref{Service Reference}, to learn about the other service types shown here.  @xref{system-extension-graph, the @command{guix system extension-graph} command}, for information on how to generate this representation for a particular operating system definition."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:27405
+#: doc/guix.texi:31066
 #, no-wrap
 msgid "service types"
-msgstr ""
+msgstr "service types"
 
 #. type: Plain text
-#: doc/guix.texi:27411
+#: doc/guix.texi:31072
 msgid "Technically, developers can define @dfn{service types} to express these relations.  There can be any number of services of a given type on the system---for instance, a system running two instances of the GNU secure shell server (lsh) has two instances of @code{lsh-service-type}, with different parameters."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:27414
+#: doc/guix.texi:31075
 msgid "The following section describes the programming interface for service types and services."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:27421
+#: doc/guix.texi:31082
 msgid "A @dfn{service type} is a node in the DAG described above.  Let us start with a simple example, the service type for the Guix build daemon (@pxref{Invoking guix-daemon}):"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:27431
+#: doc/guix.texi:31092
 #, no-wrap
 msgid ""
 "(define guix-service-type\n"
@@ -49710,108 +56751,125 @@ msgid ""
 "          (service-extension activation-service-type guix-activation)))\n"
 "   (default-value (guix-configuration))))\n"
 msgstr ""
+"(define guix-service-type\n"
+"  (service-type\n"
+"   (name 'guix)\n"
+"   (extensions\n"
+"    (list (service-extension shepherd-root-service-type guix-shepherd-service)\n"
+"          (service-extension account-service-type guix-accounts)\n"
+"          (service-extension activation-service-type guix-activation)))\n"
+"   (default-value (guix-configuration))))\n"
 
 #. type: Plain text
-#: doc/guix.texi:27435
+#: doc/guix.texi:31096
 msgid "It defines three things:"
 msgstr ""
 
 #. type: enumerate
-#: doc/guix.texi:27439
+#: doc/guix.texi:31100
 msgid "A name, whose sole purpose is to make inspection and debugging easier."
 msgstr ""
 
 #. type: enumerate
-#: doc/guix.texi:27444
+#: doc/guix.texi:31105
 msgid "A list of @dfn{service extensions}, where each extension designates the target service type and a procedure that, given the parameters of the service, returns a list of objects to extend the service of that type."
 msgstr ""
 
 #. type: enumerate
-#: doc/guix.texi:27447
+#: doc/guix.texi:31108
 msgid "Every service type has at least one service extension.  The only exception is the @dfn{boot service type}, which is the ultimate service."
 msgstr ""
 
 #. type: enumerate
-#: doc/guix.texi:27450
+#: doc/guix.texi:31111
 msgid "Optionally, a default value for instances of this type."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:27453
+#: doc/guix.texi:31114
 msgid "In this example, @code{guix-service-type} extends three services:"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:27455
+#: doc/guix.texi:31116
 #, no-wrap
 msgid "shepherd-root-service-type"
-msgstr ""
+msgstr "shepherd-root-service-type"
 
 #. type: table
-#: doc/guix.texi:27460
+#: doc/guix.texi:31121
 msgid "The @code{guix-shepherd-service} procedure defines how the Shepherd service is extended.  Namely, it returns a @code{<shepherd-service>} object that defines how @command{guix-daemon} is started and stopped (@pxref{Shepherd Services})."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:27461
+#: doc/guix.texi:31122
 #, no-wrap
 msgid "account-service-type"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:27466
+#: doc/guix.texi:31127
 msgid "This extension for this service is computed by @code{guix-accounts}, which returns a list of @code{user-group} and @code{user-account} objects representing the build user accounts (@pxref{Invoking guix-daemon})."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:27467
+#: doc/guix.texi:31128
 #, no-wrap
 msgid "activation-service-type"
-msgstr ""
+msgstr "activation-service-type"
 
 #. type: table
-#: doc/guix.texi:27471
+#: doc/guix.texi:31132
 msgid "Here @code{guix-activation} is a procedure that returns a gexp, which is a code snippet to run at ``activation time''---e.g., when the service is booted."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:27474
+#: doc/guix.texi:31135
 msgid "A service of this type is instantiated like this:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:27480
-#, no-wrap
+#: doc/guix.texi:31141
+#, fuzzy, no-wrap
+#| msgid ""
+#| "(service guix-service-type\n"
+#| "         (guix-configuration\n"
+#| "           (build-accounts 5)\n"
+#| "           (use-substitutes? #f)))\n"
 msgid ""
 "(service guix-service-type\n"
 "         (guix-configuration\n"
 "           (build-accounts 5)\n"
-"           (use-substitutes? #f)))\n"
+"           (extra-options '(\"--gc-keep-derivations\"))))\n"
 msgstr ""
+"(service guix-service-type\n"
+"         (guix-configuration\n"
+"           (build-accounts 5)\n"
+"           (use-substitutes? #f)))\n"
 
 #. type: Plain text
-#: doc/guix.texi:27488
+#: doc/guix.texi:31149
 msgid "The second argument to the @code{service} form is a value representing the parameters of this specific service instance.  @xref{guix-configuration-type, @code{guix-configuration}}, for information about the @code{guix-configuration} data type.  When the value is omitted, the default value specified by @code{guix-service-type} is used:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:27491
+#: doc/guix.texi:31152
 #, no-wrap
 msgid "(service guix-service-type)\n"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:27495
+#: doc/guix.texi:31156
 msgid "@code{guix-service-type} is quite simple because it extends other services but is not extensible itself."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:27499
+#: doc/guix.texi:31160
 msgid "The service type for an @emph{extensible} service looks like this:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:27506
+#: doc/guix.texi:31167
 #, no-wrap
 msgid ""
 "(define udev-service-type\n"
@@ -49821,9 +56879,15 @@ msgid ""
 "                                          udev-shepherd-service)))\n"
 "\n"
 msgstr ""
+"(define udev-service-type\n"
+"  (service-type (name 'udev)\n"
+"                (extensions\n"
+"                 (list (service-extension shepherd-root-service-type\n"
+"                                          udev-shepherd-service)))\n"
+"\n"
 
 #. type: lisp
-#: doc/guix.texi:27514
+#: doc/guix.texi:31175
 #, no-wrap
 msgid ""
 "                (compose concatenate)       ;concatenate the list of rules\n"
@@ -49836,147 +56900,149 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:27520
+#: doc/guix.texi:31181
 msgid "This is the service type for the @uref{https://wiki.gentoo.org/wiki/Project:Eudev, eudev device management daemon}.  Compared to the previous example, in addition to an extension of @code{shepherd-root-service-type}, we see two new fields:"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:27522
+#: doc/guix.texi:31183
 #, no-wrap
 msgid "compose"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:27525
+#: doc/guix.texi:31186
 msgid "This is the procedure to @dfn{compose} the list of extensions to services of this type."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:27528
+#: doc/guix.texi:31189
 msgid "Services can extend the udev service by passing it lists of rules; we compose those extensions simply by concatenating them."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:27529
+#: doc/guix.texi:31190
 #, no-wrap
 msgid "extend"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:27532
+#: doc/guix.texi:31193
 msgid "This procedure defines how the value of the service is @dfn{extended} with the composition of the extensions."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:27537
+#: doc/guix.texi:31198
 msgid "Udev extensions are composed into a list of rules, but the udev service value is itself a @code{<udev-configuration>} record.  So here, we extend that record by appending the list of rules it contains to the list of contributed rules."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:27543
+#: doc/guix.texi:31204
 msgid "This is a string giving an overview of the service type.  The string can contain Texinfo markup (@pxref{Overview,,, texinfo, GNU Texinfo}).  The @command{guix system search} command searches these strings and displays them (@pxref{Invoking guix system})."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:27548
+#: doc/guix.texi:31209
 msgid "There can be only one instance of an extensible service type such as @code{udev-service-type}.  If there were more, the @code{service-extension} specifications would be ambiguous."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:27551
+#: doc/guix.texi:31212
 msgid "Still here? The next section provides a reference of the programming interface for services."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:27559
+#: doc/guix.texi:31220
 msgid "We have seen an overview of service types (@pxref{Service Types and Services}).  This section provides a reference on how to manipulate services and service types.  This interface is provided by the @code{(gnu services)} module."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:27560
+#: doc/guix.texi:31221
 #, no-wrap
 msgid "{Scheme Procedure} service @var{type} [@var{value}]"
-msgstr ""
+msgstr "{Scheme Procedure} service @var{type} [@var{value}]"
 
 #. type: deffn
-#: doc/guix.texi:27564
-msgid "Return a new service of @var{type}, a @code{<service-type>} object (see below.)  @var{value} can be any object; it represents the parameters of this particular service instance."
+#: doc/guix.texi:31225
+msgid "Return a new service of @var{type}, a @code{<service-type>} object (see below).  @var{value} can be any object; it represents the parameters of this particular service instance."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:27568
+#: doc/guix.texi:31229
 msgid "When @var{value} is omitted, the default value specified by @var{type} is used; if @var{type} does not specify a default value, an error is raised."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:27570
+#: doc/guix.texi:31231
 msgid "For instance, this:"
-msgstr ""
+msgstr "Например,"
 
 #. type: lisp
-#: doc/guix.texi:27573
+#: doc/guix.texi:31234
 #, no-wrap
 msgid "(service openssh-service-type)\n"
-msgstr ""
+msgstr "(service openssh-service-type)\n"
 
 #. type: deffn
-#: doc/guix.texi:27577
+#: doc/guix.texi:31238
 msgid "is equivalent to this:"
-msgstr ""
+msgstr "равнозачно этому:"
 
 #. type: lisp
-#: doc/guix.texi:27581
+#: doc/guix.texi:31242
 #, no-wrap
 msgid ""
 "(service openssh-service-type\n"
 "         (openssh-configuration))\n"
 msgstr ""
+"(service openssh-service-type\n"
+"         (openssh-configuration))\n"
 
 #. type: deffn
-#: doc/guix.texi:27585
+#: doc/guix.texi:31246
 msgid "In both cases the result is an instance of @code{openssh-service-type} with the default configuration."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:27587
+#: doc/guix.texi:31248
 #, no-wrap
 msgid "{Scheme Procedure} service? @var{obj}"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:27589
+#: doc/guix.texi:31250
 msgid "Return true if @var{obj} is a service."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:27591
+#: doc/guix.texi:31252
 #, no-wrap
 msgid "{Scheme Procedure} service-kind @var{service}"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:27593
+#: doc/guix.texi:31254
 msgid "Return the type of @var{service}---i.e., a @code{<service-type>} object."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:27595
+#: doc/guix.texi:31256
 #, no-wrap
 msgid "{Scheme Procedure} service-value @var{service}"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:27598
+#: doc/guix.texi:31259
 msgid "Return the value associated with @var{service}.  It represents its parameters."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:27601
+#: doc/guix.texi:31262
 msgid "Here is an example of how a service is created and manipulated:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:27610
+#: doc/guix.texi:31271
 #, no-wrap
 msgid ""
 "(define s\n"
@@ -49990,7 +57056,7 @@ msgid ""
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:27613
+#: doc/guix.texi:31274
 #, no-wrap
 msgid ""
 "(service? s)\n"
@@ -49999,7 +57065,7 @@ msgid ""
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:27616
+#: doc/guix.texi:31277
 #, no-wrap
 msgid ""
 "(eq? (service-kind s) nginx-service-type)\n"
@@ -50007,560 +57073,596 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:27626
+#: doc/guix.texi:31287
 msgid "The @code{modify-services} form provides a handy way to change the parameters of some of the services of a list such as @code{%base-services} (@pxref{Base Services, @code{%base-services}}).  It evaluates to a list of services.  Of course, you could always use standard list combinators such as @code{map} and @code{fold} to do that (@pxref{SRFI-1, List Library,, guile, GNU Guile Reference Manual}); @code{modify-services} simply provides a more concise form for this common pattern."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:27627
+#: doc/guix.texi:31288
 #, no-wrap
 msgid "{Scheme Syntax} modify-services @var{services} @"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:27629
+#: doc/guix.texi:31290
 msgid "(@var{type} @var{variable} => @var{body}) @dots{}"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:27632
+#: doc/guix.texi:31293
 msgid "Modify the services listed in @var{services} according to the given clauses.  Each clause has the form:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:27635
+#: doc/guix.texi:31296
 #, no-wrap
 msgid "(@var{type} @var{variable} => @var{body})\n"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:27642
+#: doc/guix.texi:31303
 msgid "where @var{type} is a service type---e.g., @code{guix-service-type}---and @var{variable} is an identifier that is bound within the @var{body} to the service parameters---e.g., a @code{guix-configuration} instance---of the original service of that @var{type}."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:27649
+#: doc/guix.texi:31310
 msgid "The @var{body} should evaluate to the new service parameters, which will be used to configure the new service.  This new service will replace the original in the resulting list.  Because a service's service parameters are created using @code{define-record-type*}, you can write a succinct @var{body} that evaluates to the new service parameters by using the @code{inherit} feature that @code{define-record-type*} provides."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:27651
+#: doc/guix.texi:31312
 msgid "@xref{Using the Configuration System}, for example usage."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:27658
+#: doc/guix.texi:31319
 msgid "Next comes the programming interface for service types.  This is something you want to know when writing new service definitions, but not necessarily when simply looking for ways to customize your @code{operating-system} declaration."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:27659
+#: doc/guix.texi:31320
 #, no-wrap
 msgid "{Data Type} service-type"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:27660
+#: doc/guix.texi:31321
 #, no-wrap
 msgid "service type"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:27663
+#: doc/guix.texi:31324
 msgid "This is the representation of a @dfn{service type} (@pxref{Service Types and Services})."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:27667
+#: doc/guix.texi:31328
 msgid "This is a symbol, used only to simplify inspection and debugging."
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:27668
+#: doc/guix.texi:31329
 #, no-wrap
 msgid "extensions"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:27670
+#: doc/guix.texi:31331
 msgid "A non-empty list of @code{<service-extension>} objects (see below)."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:27671
+#: doc/guix.texi:31332
 #, no-wrap
 msgid "@code{compose} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:27675
+#: doc/guix.texi:31336
 msgid "If this is @code{#f}, then the service type denotes services that cannot be extended---i.e., services that do not receive ``values'' from other services."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:27679
+#: doc/guix.texi:31340
 msgid "Otherwise, it must be a one-argument procedure.  The procedure is called by @code{fold-services} and is passed a list of values collected from extensions.  It may return any single value."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:27680
+#: doc/guix.texi:31341
 #, no-wrap
 msgid "@code{extend} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:27682
+#: doc/guix.texi:31343
 msgid "If this is @code{#f}, services of this type cannot be extended."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:27688
+#: doc/guix.texi:31349
 msgid "Otherwise, it must be a two-argument procedure: @code{fold-services} calls it, passing it the initial value of the service as the first argument and the result of applying @code{compose} to the extension values as the second argument.  It must return a value that is a valid parameter value for the service instance."
 msgstr ""
 
+#. type: table
+#: doc/guix.texi:31355
+msgid "This is a string, possibly using Texinfo markup, describing in a couple of sentences what the service is about.  This string allows users to find about the service through @command{guix system search} (@pxref{Invoking guix system})."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:31356
+#, fuzzy, no-wrap
+#| msgid "@code{port} (default: @code{22})"
+msgid "@code{default-value} (default: @code{&no-default-value})"
+msgstr "@code{port} (default: @code{22})"
+
+#. type: table
+#: doc/guix.texi:31359
+msgid "The default value associated for instances of this service type.  This allows users to use the @code{service} form without its second argument:"
+msgstr ""
+
+#. type: lisp
+#: doc/guix.texi:31362
+#, no-wrap
+msgid "(service @var{type})\n"
+msgstr "(service @var{type})\n"
+
+#. type: table
+#: doc/guix.texi:31366
+msgid "The returned service in this case has the default value specified by @var{type}."
+msgstr ""
+
 #. type: deftp
-#: doc/guix.texi:27691
+#: doc/guix.texi:31369
 msgid "@xref{Service Types and Services}, for examples."
-msgstr ""
+msgstr "@xref{Service Types and Services}, for examples."
 
 #. type: deffn
-#: doc/guix.texi:27693
+#: doc/guix.texi:31371
 #, no-wrap
 msgid "{Scheme Procedure} service-extension @var{target-type} @"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:27699
+#: doc/guix.texi:31377
 msgid "@var{compute} Return a new extension for services of type @var{target-type}.  @var{compute} must be a one-argument procedure: @code{fold-services} calls it, passing it the value associated with the service that provides the extension; it must return a valid value for the target service."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:27701
+#: doc/guix.texi:31379
 #, no-wrap
 msgid "{Scheme Procedure} service-extension? @var{obj}"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:27703
+#: doc/guix.texi:31381
 msgid "Return true if @var{obj} is a service extension."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:27709
+#: doc/guix.texi:31387
 msgid "Occasionally, you might want to simply extend an existing service.  This involves creating a new service type and specifying the extension of interest, which can be verbose; the @code{simple-service} procedure provides a shorthand for this."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:27710
+#: doc/guix.texi:31388
 #, no-wrap
 msgid "{Scheme Procedure} simple-service @var{name} @var{target} @var{value}"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:27714
+#: doc/guix.texi:31392
 msgid "Return a service that extends @var{target} with @var{value}.  This works by creating a singleton service type @var{name}, of which the returned service is an instance."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:27717
+#: doc/guix.texi:31395
 msgid "For example, this extends mcron (@pxref{Scheduled Job Execution}) with an additional job:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:27721
+#: doc/guix.texi:31399
 #, no-wrap
 msgid ""
 "(simple-service 'my-mcron-job mcron-service-type\n"
 "                #~(job '(next-hour (3)) \"guix gc -F 2G\"))\n"
 msgstr ""
+"(simple-service 'my-mcron-job mcron-service-type\n"
+"                #~(job '(next-hour (3)) \"guix gc -F 2G\"))\n"
 
 #. type: Plain text
-#: doc/guix.texi:27731
+#: doc/guix.texi:31409
 msgid "At the core of the service abstraction lies the @code{fold-services} procedure, which is responsible for ``compiling'' a list of services down to a single directory that contains everything needed to boot and run the system---the directory shown by the @command{guix system build} command (@pxref{Invoking guix system}).  In essence, it propagates service extensions down the service graph, updating each node parameters on the way, until it reaches the root node."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:27732
+#: doc/guix.texi:31410
 #, no-wrap
 msgid "{Scheme Procedure} fold-services @var{services} @"
-msgstr ""
+msgstr "{Scheme Procedure} fold-services @var{services} @"
 
 #. type: deffn
-#: doc/guix.texi:27736
+#: doc/guix.texi:31414
 msgid "[#:target-type @var{system-service-type}] Fold @var{services} by propagating their extensions down to the root of type @var{target-type}; return the root service adjusted accordingly."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:27740
+#: doc/guix.texi:31418
 msgid "Lastly, the @code{(gnu services)} module also defines several essential service types, some of which are listed below."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:27741
+#: doc/guix.texi:31419
 #, no-wrap
 msgid "{Scheme Variable} system-service-type"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:27744
+#: doc/guix.texi:31422
 msgid "This is the root of the service graph.  It produces the system directory as returned by the @command{guix system build} command."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:27746
+#: doc/guix.texi:31424
 #, no-wrap
 msgid "{Scheme Variable} boot-service-type"
-msgstr ""
+msgstr "{Scheme Variable} boot-service-type"
 
 #. type: defvr
-#: doc/guix.texi:27749
+#: doc/guix.texi:31427
 msgid "The type of the ``boot service'', which produces the @dfn{boot script}.  The boot script is what the initial RAM disk runs when booting."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:27751
+#: doc/guix.texi:31429
 #, no-wrap
 msgid "{Scheme Variable} etc-service-type"
-msgstr ""
+msgstr "{Scheme Variable} etc-service-type"
 
 #. type: defvr
-#: doc/guix.texi:27755
+#: doc/guix.texi:31433
 msgid "The type of the @file{/etc} service.  This service is used to create files under @file{/etc} and can be extended by passing it name/file tuples such as:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:27758
+#: doc/guix.texi:31436
 #, no-wrap
 msgid "(list `(\"issue\" ,(plain-file \"issue\" \"Welcome!\\n\")))\n"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:27762
+#: doc/guix.texi:31440
 msgid "In this example, the effect would be to add an @file{/etc/issue} file pointing to the given file."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:27764
+#: doc/guix.texi:31442
 #, no-wrap
 msgid "{Scheme Variable} setuid-program-service-type"
-msgstr ""
+msgstr "{Scheme Variable} setuid-program-service-type"
 
 #. type: defvr
-#: doc/guix.texi:27768
+#: doc/guix.texi:31446
 msgid "Type for the ``setuid-program service''.  This service collects lists of executable file names, passed as gexps, and adds them to the set of setuid-root programs on the system (@pxref{Setuid Programs})."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:27770
+#: doc/guix.texi:31448
 #, no-wrap
 msgid "{Scheme Variable} profile-service-type"
-msgstr ""
+msgstr "{Scheme Variable} profile-service-type"
 
 #. type: defvr
-#: doc/guix.texi:27774
+#: doc/guix.texi:31452
 msgid "Type of the service that populates the @dfn{system profile}---i.e., the programs under @file{/run/current-system/profile}.  Other services can extend it by passing it lists of packages to add to the system profile."
 msgstr ""
 
+#. type: anchor{#1}
+#: doc/guix.texi:31456
+#, fuzzy
+#| msgid "{Scheme Procedure} sane-service-type"
+msgid "provenance-service-type"
+msgstr "provenance-service-type"
+
 #. type: defvr
-#: doc/guix.texi:27777
+#: doc/guix.texi:31456
 #, no-wrap
 msgid "{Scheme Variable} provenance-service-type"
-msgstr ""
+msgstr "{Scheme Variable} provenance-service-type"
 
 #. type: defvr
-#: doc/guix.texi:27781
+#: doc/guix.texi:31460
 msgid "This is the type of the service that records @dfn{provenance meta-data} in the system itself.  It creates several files under @file{/run/current-system}:"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:27783
+#: doc/guix.texi:31462
 #, fuzzy, no-wrap
 #| msgid "channels"
 msgid "channels.scm"
 msgstr "каналы"
 
 #. type: table
-#: doc/guix.texi:27788
+#: doc/guix.texi:31467
 msgid "This is a ``channel file'' that can be passed to @command{guix pull -C} or @command{guix time-machine -C}, and which describes the channels used to build the system, if that information was available (@pxref{Channels})."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:27789
+#: doc/guix.texi:31468
 #, fuzzy, no-wrap
 #| msgid "System Configuration"
 msgid "configuration.scm"
 msgstr "Конфигурирование системы"
 
 #. type: table
-#: doc/guix.texi:27794
+#: doc/guix.texi:31473
 msgid "This is the file that was passed as the value for this @code{provenance-service-type} service.  By default, @command{guix system reconfigure} automatically passes the OS configuration file it received on the command line."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:27795
+#: doc/guix.texi:31474
 #, no-wrap
 msgid "provenance"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:27798
+#: doc/guix.texi:31477
 msgid "This contains the same information as the two other files but in a format that is more readily processable."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:27802
+#: doc/guix.texi:31481
 msgid "In general, these two pieces of information (channels and configuration file) are enough to reproduce the operating system ``from source''."
 msgstr ""
 
 #. type: quotation
-#: doc/guix.texi:27803
+#: doc/guix.texi:31482
 #, no-wrap
 msgid "Caveats"
 msgstr ""
 
 #. type: quotation
-#: doc/guix.texi:27810
+#: doc/guix.texi:31489
 msgid "This information is necessary to rebuild your operating system, but it is not always sufficient.  In particular, @file{configuration.scm} itself is insufficient if it is not self-contained---if it refers to external Guile modules or to extra files.  If you want @file{configuration.scm} to be self-contained, we recommend that modules or files it refers to be part of a channel."
 msgstr ""
 
 #. type: quotation
-#: doc/guix.texi:27818
+#: doc/guix.texi:31497
 msgid "Besides, provenance meta-data is ``silent'' in the sense that it does not change the bits contained in your system, @emph{except for the meta-data bits themselves}.  Two different OS configurations or sets of channels can lead to the same system, bit-for-bit; when @code{provenance-service-type} is used, these two systems will have different meta-data and thus different store file names, which makes comparison less trivial."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:27823
+#: doc/guix.texi:31502
 msgid "This service is automatically added to your operating system configuration when you use @command{guix system reconfigure}, @command{guix system init}, or @command{guix deploy}."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:27828
+#: doc/guix.texi:31507
 #, no-wrap
 msgid "shepherd services"
-msgstr ""
+msgstr "сервисы shepherd"
 
 #. type: cindex
-#: doc/guix.texi:27829
+#: doc/guix.texi:31508
 #, no-wrap
 msgid "PID 1"
-msgstr ""
+msgstr "PID 1"
 
 #. type: cindex
-#: doc/guix.texi:27830
+#: doc/guix.texi:31509
 #, no-wrap
 msgid "init system"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:27836
+#: doc/guix.texi:31515
 msgid "The @code{(gnu services shepherd)} module provides a way to define services managed by the GNU@tie{}Shepherd, which is the initialization system---the first process that is started when the system boots, also known as PID@tie{}1 (@pxref{Introduction,,, shepherd, The GNU Shepherd Manual})."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:27842
+#: doc/guix.texi:31521
 msgid "Services in the Shepherd can depend on each other.  For instance, the SSH daemon may need to be started after the syslog daemon has been started, which in turn can only happen once all the file systems have been mounted.  The simple operating system defined earlier (@pxref{Using the Configuration System}) results in a service graph like this:"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:27844
+#: doc/guix.texi:31523
 msgid "@image{images/shepherd-graph,,5in,Typical shepherd service graph.}"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:27848
+#: doc/guix.texi:31527
 msgid "You can actually generate such a graph for any operating system definition using the @command{guix system shepherd-graph} command (@pxref{system-shepherd-graph, @command{guix system shepherd-graph}})."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:27852
+#: doc/guix.texi:31531
 msgid "The @code{%shepherd-root-service} is a service object representing PID@tie{}1, of type @code{shepherd-root-service-type}; it can be extended by passing it lists of @code{<shepherd-service>} objects."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:27853
+#: doc/guix.texi:31532
 #, no-wrap
 msgid "{Data Type} shepherd-service"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:27855
+#: doc/guix.texi:31534
 msgid "The data type representing a service managed by the Shepherd."
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:27857
+#: doc/guix.texi:31536
 #, no-wrap
 msgid "provision"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:27859
+#: doc/guix.texi:31538
 msgid "This is a list of symbols denoting what the service provides."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:27864
+#: doc/guix.texi:31543
 msgid "These are the names that may be passed to @command{herd start}, @command{herd status}, and similar commands (@pxref{Invoking herd,,, shepherd, The GNU Shepherd Manual}).  @xref{Slots of services, the @code{provides} slot,, shepherd, The GNU Shepherd Manual}, for details."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:27865
+#: doc/guix.texi:31544
 #, fuzzy, no-wrap
 #| msgid "@code{features} (default: @code{'()})"
 msgid "@code{requirement} (default: @code{'()})"
 msgstr "@code{features} (default: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:27867
+#: doc/guix.texi:31546
 msgid "List of symbols denoting the Shepherd services this one depends on."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:27868
+#: doc/guix.texi:31547
 #, no-wrap
 msgid "one-shot services, for the Shepherd"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:27873
+#: doc/guix.texi:31552
 msgid "Whether this service is @dfn{one-shot}.  One-shot services stop immediately after their @code{start} action has completed.  @xref{Slots of services,,, shepherd, The GNU Shepherd Manual}, for more info."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:27874
+#: doc/guix.texi:31553
 #, no-wrap
 msgid "@code{respawn?} (default: @code{#t})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:27877
+#: doc/guix.texi:31556
 msgid "Whether to restart the service when it stops, for instance when the underlying process dies."
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:27878
+#: doc/guix.texi:31557
 #, no-wrap
 msgid "start"
 msgstr ""
 
 #. type: itemx
-#: doc/guix.texi:27879
+#: doc/guix.texi:31558
 #, no-wrap
 msgid "@code{stop} (default: @code{#~(const #f)})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:27885
+#: doc/guix.texi:31564
 msgid "The @code{start} and @code{stop} fields refer to the Shepherd's facilities to start and stop processes (@pxref{Service De- and Constructors,,, shepherd, The GNU Shepherd Manual}).  They are given as G-expressions that get expanded in the Shepherd configuration file (@pxref{G-Expressions})."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:27886
+#: doc/guix.texi:31565
 #, no-wrap
 msgid "@code{actions} (default: @code{'()})"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:27887
+#: doc/guix.texi:31566
 #, no-wrap
 msgid "actions, of Shepherd services"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:27892
+#: doc/guix.texi:31571
 msgid "This is a list of @code{shepherd-action} objects (see below) defining @dfn{actions} supported by the service, in addition to the standard @code{start} and @code{stop} actions.  Actions listed here become available as @command{herd} sub-commands:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:27895
+#: doc/guix.texi:31574
 #, no-wrap
 msgid "herd @var{action} @var{service} [@var{arguments}@dots{}]\n"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:27897
-#, fuzzy, no-wrap
-#| msgid "@code{port} (default: @code{22})"
+#: doc/guix.texi:31576
+#, no-wrap
 msgid "@code{auto-start?} (default: @code{#t})"
-msgstr "@code{port} (default: @code{22})"
+msgstr "@code{auto-start?} (default: @code{#t})"
 
 #. type: table
-#: doc/guix.texi:27900
+#: doc/guix.texi:31579
 msgid "Whether this service should be started automatically by the Shepherd.  If it is @code{#f} the service has to be started manually with @code{herd start}."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:27903
+#: doc/guix.texi:31582
 msgid "A documentation string, as shown when running:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:27906
+#: doc/guix.texi:31585
 #, no-wrap
 msgid "herd doc @var{service-name}\n"
-msgstr ""
+msgstr "herd doc @var{service-name}\n"
 
 #. type: table
-#: doc/guix.texi:27910
+#: doc/guix.texi:31589
 msgid "where @var{service-name} is one of the symbols in @code{provision} (@pxref{Invoking herd,,, shepherd, The GNU Shepherd Manual})."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:27911
+#: doc/guix.texi:31590
 #, no-wrap
 msgid "@code{modules} (default: @code{%default-modules})"
-msgstr ""
+msgstr "@code{modules} (default: @code{%default-modules})"
 
 #. type: table
-#: doc/guix.texi:27914
+#: doc/guix.texi:31593
 msgid "This is the list of modules that must be in scope when @code{start} and @code{stop} are evaluated."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:27918
+#: doc/guix.texi:31597
 #, no-wrap
 msgid "{Data Type} shepherd-action"
-msgstr ""
+msgstr "{Data Type} shepherd-action"
 
 #. type: deftp
-#: doc/guix.texi:27921
+#: doc/guix.texi:31600
 msgid "This is the data type that defines additional actions implemented by a Shepherd service (see above)."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:27925
+#: doc/guix.texi:31604
 msgid "Symbol naming the action."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:27928
+#: doc/guix.texi:31607
 msgid "This is a documentation string for the action.  It can be viewed by running:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:27931
+#: doc/guix.texi:31610
 #, no-wrap
 msgid "herd doc @var{service} action @var{action}\n"
-msgstr ""
+msgstr "herd doc @var{service} action @var{action}\n"
 
 #. type: item
-#: doc/guix.texi:27933
+#: doc/guix.texi:31612
 #, no-wrap
 msgid "procedure"
-msgstr ""
+msgstr "процедура"
 
 #. type: table
-#: doc/guix.texi:27937
+#: doc/guix.texi:31616
 msgid "This should be a gexp that evaluates to a procedure of at least one argument, which is the ``running value'' of the service (@pxref{Slots of services,,, shepherd, The GNU Shepherd Manual})."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:27941
+#: doc/guix.texi:31620
 msgid "The following example defines an action called @code{say-hello} that kindly greets the user:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:27950
+#: doc/guix.texi:31629
 #, no-wrap
 msgid ""
 "(shepherd-action\n"
@@ -50573,12 +57675,12 @@ msgid ""
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:27953
+#: doc/guix.texi:31632
 msgid "Assuming this action is added to the @code{example} service, then you can do:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:27959
+#: doc/guix.texi:31638
 #, no-wrap
 msgid ""
 "# herd say-hello example\n"
@@ -50588,79 +57690,79 @@ msgid ""
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:27964
+#: doc/guix.texi:31643
 msgid "This, as you can see, is a fairly sophisticated way to say hello.  @xref{Service Convenience,,, shepherd, The GNU Shepherd Manual}, for more info on actions."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:27966
+#: doc/guix.texi:31645
 #, no-wrap
 msgid "{Scheme Variable} shepherd-root-service-type"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:27968
+#: doc/guix.texi:31647
 msgid "The service type for the Shepherd ``root service''---i.e., PID@tie{}1."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:27972
+#: doc/guix.texi:31651
 msgid "This is the service type that extensions target when they want to create shepherd services (@pxref{Service Types and Services}, for an example).  Each extension must pass a list of @code{<shepherd-service>}."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:27974
+#: doc/guix.texi:31653
 #, no-wrap
 msgid "{Scheme Variable} %shepherd-root-service"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:27976
+#: doc/guix.texi:31655
 msgid "This service represents PID@tie{}1."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:27982
+#: doc/guix.texi:31661
 #, no-wrap
 msgid "documentation, searching for"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:27983
+#: doc/guix.texi:31662
 #, no-wrap
 msgid "searching for documentation"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:27984
+#: doc/guix.texi:31663
 #, no-wrap
 msgid "Info, documentation format"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:27985
+#: doc/guix.texi:31664
 #, no-wrap
 msgid "man pages"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:27986
+#: doc/guix.texi:31665
 #, no-wrap
 msgid "manual pages"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:27993
+#: doc/guix.texi:31672
 msgid "In most cases packages installed with Guix come with documentation.  There are two main documentation formats: ``Info'', a browseable hypertext format used for GNU software, and ``manual pages'' (or ``man pages''), the linear documentation format traditionally found on Unix.  Info manuals are accessed with the @command{info} command or with Emacs, and man pages are accessed using @command{man}."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:27997
+#: doc/guix.texi:31676
 msgid "You can look for documentation of software installed on your system by keyword.  For example, the following command searches for information about ``TLS'' in Info manuals:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:28005
+#: doc/guix.texi:31684
 #, no-wrap
 msgid ""
 "$ info -k TLS\n"
@@ -50670,15 +57772,26 @@ msgid ""
 "\"(gnutls)Core TLS API\" -- gnutls_certificate_set_verify_function\n"
 "@dots{}\n"
 msgstr ""
+"$ info -k TLS\n"
+"\"(emacs)Network Security\" -- STARTTLS\n"
+"\"(emacs)Network Security\" -- TLS\n"
+"\"(gnutls)Core TLS API\" -- gnutls_certificate_set_verify_flags\n"
+"\"(gnutls)Core TLS API\" -- gnutls_certificate_set_verify_function\n"
+"@dots{}\n"
 
 #. type: Plain text
-#: doc/guix.texi:28009
+#: doc/guix.texi:31688
 msgid "The command below searches for the same keyword in man pages:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:28015
-#, no-wrap
+#: doc/guix.texi:31694
+#, fuzzy, no-wrap
+#| msgid ""
+#| "$ man -k TLS\n"
+#| "SSL (7)              - OpenSSL SSL/TLS library\n"
+#| "certtool (1)         - GnuTLS certificate tool\n"
+#| "@dots{}\n"
 msgid ""
 "$ man -k TLS\n"
 "SSL (7)              - OpenSSL SSL/TLS library\n"
@@ -50688,111 +57801,188 @@ msgstr ""
 "$ man -k TLS\n"
 "SSL (7)              - OpenSSL SSL/TLS library\n"
 "certtool (1)         - GnuTLS certificate tool\n"
-"@dots {}\n"
+"@dots{}\n"
 
 #. type: Plain text
-#: doc/guix.texi:28021
+#: doc/guix.texi:31700
 msgid "These searches are purely local to your computer so you have the guarantee that documentation you find corresponds to what you have actually installed, you can access it off-line, and your privacy is respected."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:28024
+#: doc/guix.texi:31703
 msgid "Once you have these results, you can view the relevant documentation by running, say:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:28027
+#: doc/guix.texi:31706
 #, no-wrap
 msgid "$ info \"(gnutls)Core TLS API\"\n"
 msgstr "$ info \"(gnutls)Core TLS API\"\n"
 
 #. type: Plain text
-#: doc/guix.texi:28031
+#: doc/guix.texi:31710
 msgid "or:"
 msgstr "или:"
 
 #. type: example
-#: doc/guix.texi:28034
+#: doc/guix.texi:31713
 #, no-wrap
 msgid "$ man certtool\n"
 msgstr "$ man certtool\n"
 
 #. type: Plain text
-#: doc/guix.texi:28042
+#: doc/guix.texi:31721
 msgid "Info manuals contain sections and indices as well as hyperlinks like those found in Web pages.  The @command{info} reader (@pxref{Top, Info reader,, info-stnd, Stand-alone GNU Info}) and its Emacs counterpart (@pxref{Misc Help,,, emacs, The GNU Emacs Manual}) provide intuitive key bindings to navigate manuals.  @xref{Getting Started,,, info, Info: An Introduction}, for an introduction to Info navigation."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:28046
+#: doc/guix.texi:31725
 #, no-wrap
 msgid "debugging files"
 msgstr "отладка файлов"
 
 #. type: Plain text
-#: doc/guix.texi:28052
+#: doc/guix.texi:31731
 msgid "Program binaries, as produced by the GCC compilers for instance, are typically written in the ELF format, with a section containing @dfn{debugging information}.  Debugging information is what allows the debugger, GDB, to map binary code to source code; it is required to debug a compiled program in good conditions."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:28060
+#: doc/guix.texi:31735
+msgid "This chapter explains how to use separate debug info when packages provide it, and how to rebuild packages with debug info when it's missing."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:31751
 msgid "The problem with debugging information is that is takes up a fair amount of disk space.  For example, debugging information for the GNU C Library weighs in at more than 60 MiB.  Thus, as a user, keeping all the debugging info of all the installed programs is usually not an option.  Yet, space savings should not come at the cost of an impediment to debugging---especially in the GNU system, which should make it easier for users to exert their computing freedom (@pxref{GNU Distribution})."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:28067
+#: doc/guix.texi:31758
 msgid "Thankfully, the GNU Binary Utilities (Binutils) and GDB provide a mechanism that allows users to get the best of both worlds: debugging information can be stripped from the binaries and stored in separate files.  GDB is then able to load debugging information from those files, when they are available (@pxref{Separate Debug Files,,, gdb, Debugging with GDB})."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:28075
+#: doc/guix.texi:31766
 msgid "The GNU distribution takes advantage of this by storing debugging information in the @code{lib/debug} sub-directory of a separate package output unimaginatively called @code{debug} (@pxref{Packages with Multiple Outputs}).  Users can choose to install the @code{debug} output of a package when they need it.  For instance, the following command installs the debugging information for the GNU C Library and for GNU Guile:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:28078
+#: doc/guix.texi:31769
 #, no-wrap
 msgid "guix install glibc:debug guile:debug\n"
-msgstr ""
+msgstr "guix install glibc:debug guile:debug\n"
 
 #. type: Plain text
-#: doc/guix.texi:28084
+#: doc/guix.texi:31775
 msgid "GDB must then be told to look for debug files in the user's profile, by setting the @code{debug-file-directory} variable (consider setting it from the @file{~/.gdbinit} file, @pxref{Startup,,, gdb, Debugging with GDB}):"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:28087
+#: doc/guix.texi:31778
 #, no-wrap
 msgid "(gdb) set debug-file-directory ~/.guix-profile/lib/debug\n"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:28091
-msgid "From there on, GDB will pick up debugging information from the @code{.debug} files under @file{~/.guix-profile/lib/debug}."
+#: doc/guix.texi:31782
+msgid "From there on, GDB will pick up debugging information from the @file{.debug} files under @file{~/.guix-profile/lib/debug}."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:28098
+#: doc/guix.texi:31789
 msgid "In addition, you will most likely want GDB to be able to show the source code being debugged.  To do that, you will have to unpack the source code of the package of interest (obtained with @code{guix build --source}, @pxref{Invoking guix build}), and to point GDB to that source directory using the @code{directory} command (@pxref{Source Path, @code{directory},, gdb, Debugging with GDB})."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:28107
-msgid "The @code{debug} output mechanism in Guix is implemented by the @code{gnu-build-system} (@pxref{Build Systems}).  Currently, it is opt-in---debugging information is available only for the packages with definitions explicitly declaring a @code{debug} output.  This may be changed to opt-out in the future if our build farm servers can handle the load.  To check whether a package has a @code{debug} output, use @command{guix package --list-available} (@pxref{Invoking guix package})."
+#: doc/guix.texi:31797
+msgid "The @code{debug} output mechanism in Guix is implemented by the @code{gnu-build-system} (@pxref{Build Systems}).  Currently, it is opt-in---debugging information is available only for the packages with definitions explicitly declaring a @code{debug} output.  To check whether a package has a @code{debug} output, use @command{guix package --list-available} (@pxref{Invoking guix package})."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:31799
+msgid "Read on for how to deal with packages lacking a @code{debug} output."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:31811
+msgid "As we saw above, some packages, but not all, provide debugging info in a @code{debug} output.  What can you do when debugging info is missing? The @option{--with-debug-info} option provides a solution to that: it allows you to rebuild the package(s) for which debugging info is missing---and only those---and to graft those onto the application you're debugging.  Thus, while it's not as fast as installing a @code{debug} output, it is relatively inexpensive."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:31816
+msgid "Let's illustrate that.  Suppose you're experiencing a bug in Inkscape and would like to see what's going on in GLib, a library that's deep down in its dependency graph.  As it turns out, GLib does not have a @code{debug} output and the backtrace GDB shows is all sadness:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:31827
+#, no-wrap
+msgid ""
+"(gdb) bt\n"
+"#0  0x00007ffff5f92190 in g_getenv ()\n"
+"   from /gnu/store/@dots{}-glib-2.62.6/lib/libglib-2.0.so.0\n"
+"#1  0x00007ffff608a7d6 in gobject_init_ctor ()\n"
+"   from /gnu/store/@dots{}-glib-2.62.6/lib/libgobject-2.0.so.0\n"
+"#2  0x00007ffff7fe275a in call_init (l=<optimized out>, argc=argc@@entry=1, argv=argv@@entry=0x7fffffffcfd8, \n"
+"    env=env@@entry=0x7fffffffcfe8) at dl-init.c:72\n"
+"#3  0x00007ffff7fe2866 in call_init (env=0x7fffffffcfe8, argv=0x7fffffffcfd8, argc=1, l=<optimized out>)\n"
+"    at dl-init.c:118\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:31831
+msgid "To address that, you install Inkscape linked against a variant GLib that contains debug info:"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:31837
+msgid "This time, debugging will be a whole lot nicer:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:31855
+#, no-wrap
+msgid ""
+"$ gdb --args sh -c 'exec inkscape'\n"
+"@dots{}\n"
+"(gdb) b g_getenv\n"
+"Function \"g_getenv\" not defined.\n"
+"Make breakpoint pending on future shared library load? (y or [n]) y\n"
+"Breakpoint 1 (g_getenv) pending.\n"
+"(gdb) r\n"
+"Starting program: /gnu/store/@dots{}-profile/bin/sh -c exec\\ inkscape\n"
+"@dots{}\n"
+"(gdb) bt\n"
+"#0  g_getenv (variable=variable@@entry=0x7ffff60c7a2e \"GOBJECT_DEBUG\") at ../glib-2.62.6/glib/genviron.c:252\n"
+"#1  0x00007ffff608a7d6 in gobject_init () at ../glib-2.62.6/gobject/gtype.c:4380\n"
+"#2  gobject_init_ctor () at ../glib-2.62.6/gobject/gtype.c:4493\n"
+"#3  0x00007ffff7fe275a in call_init (l=<optimized out>, argc=argc@@entry=3, argv=argv@@entry=0x7fffffffd088, \n"
+"    env=env@@entry=0x7fffffffd0a8) at dl-init.c:72\n"
+"@dots{}\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:31858
+msgid "Much better!"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:31862
+msgid "Note that there can be packages for which @option{--with-debug-info} will not have the desired effect.  @xref{Package Transformation Options, @option{--with-debug-info}}, for more information."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:28112
+#: doc/guix.texi:31866
 #, no-wrap
 msgid "security updates"
-msgstr ""
+msgstr "обновление безопасности"
 
 #. type: Plain text
-#: doc/guix.texi:28121
-msgid "Occasionally, important security vulnerabilities are discovered in software packages and must be patched.  Guix developers try hard to keep track of known vulnerabilities and to apply fixes as soon as possible in the @code{master} branch of Guix (we do not yet provide a ``stable'' branch containing only security updates.)  The @command{guix lint} tool helps developers find out about vulnerable versions of software packages in the distribution:"
+#: doc/guix.texi:31875
+msgid "Occasionally, important security vulnerabilities are discovered in software packages and must be patched.  Guix developers try hard to keep track of known vulnerabilities and to apply fixes as soon as possible in the @code{master} branch of Guix (we do not yet provide a ``stable'' branch containing only security updates).  The @command{guix lint} tool helps developers find out about vulnerable versions of software packages in the distribution:"
 msgstr ""
 
 #. type: smallexample
-#: doc/guix.texi:28128
+#: doc/guix.texi:31882
 #, no-wrap
 msgid ""
 "$ guix lint -c cve\n"
@@ -50803,39 +57993,39 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:28131
+#: doc/guix.texi:31885
 msgid "@xref{Invoking guix lint}, for more information."
-msgstr ""
+msgstr "@xref{Invoking guix lint}, для получения дополнительной информации."
 
 #. type: Plain text
-#: doc/guix.texi:28140
+#: doc/guix.texi:31894
 msgid "Guix follows a functional package management discipline (@pxref{Introduction}), which implies that, when a package is changed, @emph{every package that depends on it} must be rebuilt.  This can significantly slow down the deployment of fixes in core packages such as libc or Bash, since basically the whole distribution would need to be rebuilt.  Using pre-built binaries helps (@pxref{Substitutes}), but deployment may still take more time than desired."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:28141
+#: doc/guix.texi:31895
 #, no-wrap
 msgid "grafts"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:28149
+#: doc/guix.texi:31903
 msgid "To address this, Guix implements @dfn{grafts}, a mechanism that allows for fast deployment of critical updates without the costs associated with a whole-distribution rebuild.  The idea is to rebuild only the package that needs to be patched, and then to ``graft'' it onto packages explicitly installed by the user and that were previously referring to the original package.  The cost of grafting is typically very low, and order of magnitudes lower than a full rebuild of the dependency chain."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:28150
+#: doc/guix.texi:31904
 #, no-wrap
 msgid "replacements of packages, for grafts"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:28156
+#: doc/guix.texi:31910
 msgid "For instance, suppose a security update needs to be applied to Bash.  Guix developers will provide a package definition for the ``fixed'' Bash, say @code{bash-fixed}, in the usual way (@pxref{Defining Packages}).  Then, the original package definition is augmented with a @code{replacement} field pointing to the package containing the bug fix:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:28163
+#: doc/guix.texi:31917
 #, no-wrap
 msgid ""
 "(define bash\n"
@@ -50846,548 +58036,434 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:28173
+#: doc/guix.texi:31927
 msgid "From there on, any package depending directly or indirectly on Bash---as reported by @command{guix gc --requisites} (@pxref{Invoking guix gc})---that is installed is automatically ``rewritten'' to refer to @code{bash-fixed} instead of @code{bash}.  This grafting process takes time proportional to the size of the package, usually less than a minute for an ``average'' package on a recent machine.  Grafting is recursive: when an indirect dependency requires grafting, then grafting ``propagates'' up to the package that the user is installing."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:28181
+#: doc/guix.texi:31935
 msgid "Currently, the length of the name and version of the graft and that of the package it replaces (@code{bash-fixed} and @code{bash} in the example above) must be equal.  This restriction mostly comes from the fact that grafting works by patching files, including binary files, directly.  Other restrictions may apply: for instance, when adding a graft to a package providing a shared library, the original shared library and its replacement must have the same @code{SONAME} and be binary-compatible."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:28185
+#: doc/guix.texi:31939
 msgid "The @option{--no-grafts} command-line option allows you to forcefully avoid grafting (@pxref{Common Build Options, @option{--no-grafts}}).  Thus, the command:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:28188
+#: doc/guix.texi:31942
 #, no-wrap
 msgid "guix build bash --no-grafts\n"
-msgstr ""
+msgstr "guix build bash --no-grafts\n"
 
 #. type: Plain text
-#: doc/guix.texi:28192
+#: doc/guix.texi:31946
 msgid "returns the store file name of the original Bash, whereas:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:28195
+#: doc/guix.texi:31949
 #, no-wrap
 msgid "guix build bash\n"
-msgstr ""
+msgstr "guix build bash\n"
 
 #. type: Plain text
-#: doc/guix.texi:28200
+#: doc/guix.texi:31954
 msgid "returns the store file name of the ``fixed'', replacement Bash.  This allows you to distinguish between the two variants of Bash."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:28203
+#: doc/guix.texi:31957
 msgid "To verify which Bash your whole profile refers to, you can run (@pxref{Invoking guix gc}):"
-msgstr ""
+msgstr "Чтобы проверить, к какому именно Bash установлен в вашем профилt, вы можете запустить (@pxref{Invoking guix gc}):"
 
 #. type: example
-#: doc/guix.texi:28206
+#: doc/guix.texi:31960
 #, no-wrap
 msgid "guix gc -R `readlink -f ~/.guix-profile` | grep bash\n"
-msgstr ""
+msgstr "guix gc -R `readlink -f ~/.guix-profile` | grep bash\n"
 
 #. type: Plain text
-#: doc/guix.texi:28211
+#: doc/guix.texi:31965
 msgid "@dots{} and compare the store file names that you get with those above.  Likewise for a complete Guix system generation:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:28214
+#: doc/guix.texi:31968
 #, no-wrap
 msgid "guix gc -R `guix system build my-config.scm` | grep bash\n"
-msgstr ""
+msgstr "guix gc -R `guix system build my-config.scm` | grep bash\n"
 
 #. type: Plain text
-#: doc/guix.texi:28218
+#: doc/guix.texi:31972
 msgid "Lastly, to check which Bash running processes are using, you can use the @command{lsof} command:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:28221
+#: doc/guix.texi:31975
 #, no-wrap
 msgid "lsof | grep /gnu/store/.*bash\n"
-msgstr ""
+msgstr "lsof | grep /gnu/store/.*bash\n"
 
 #. type: cindex
-#: doc/guix.texi:28229
+#: doc/guix.texi:31983
 #, no-wrap
 msgid "bootstrapping"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:28239
+#: doc/guix.texi:31993
 msgid "Bootstrapping in our context refers to how the distribution gets built ``from nothing''.  Remember that the build environment of a derivation contains nothing but its declared inputs (@pxref{Introduction}).  So there's an obvious chicken-and-egg problem: how does the first package get built? How does the first compiler get compiled? Note that this is a question of interest only to the curious hacker, not to the regular user, so you can shamelessly skip this section if you consider yourself a ``regular user''."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:28240 doc/guix.texi:28443
+#: doc/guix.texi:31994 doc/guix.texi:32206
 #, no-wrap
 msgid "bootstrap binaries"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:28250
+#: doc/guix.texi:32004
 msgid "The GNU system is primarily made of C code, with libc at its core.  The GNU build system itself assumes the availability of a Bourne shell and command-line tools provided by GNU Coreutils, Awk, Findutils, `sed', and `grep'.  Furthermore, build programs---programs that run @code{./configure}, @code{make}, etc.---are written in Guile Scheme (@pxref{Derivations}).  Consequently, to be able to build anything at all, from scratch, Guix relies on pre-built binaries of Guile, GCC, Binutils, libc, and the other packages mentioned above---the @dfn{bootstrap binaries}."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:28253
-msgid "These bootstrap binaries are ``taken for granted'', though we can also re-create them if needed (more on that later)."
+#: doc/guix.texi:32008
+msgid "These bootstrap binaries are ``taken for granted'', though we can also re-create them if needed (@pxref{Preparing to Use the Bootstrap Binaries})."
+msgstr ""
+
+#. type: section
+#: doc/guix.texi:32015
+#, no-wrap
+msgid "The Reduced Binary Seed Bootstrap"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:28256
-msgid "For @code{i686-linux} and @code{x86_64-linux} the Guix bootstrap process is more elaborate, @pxref{Reduced Binary Seed Bootstrap}."
+#: doc/guix.texi:32022
+msgid "Guix---like other GNU/Linux distributions---is traditionally bootstrapped from a set of bootstrap binaries: Bourne shell, command-line tools provided by GNU Coreutils, Awk, Findutils, `sed', and `grep' and Guile, GCC, Binutils, and the GNU C Library (@pxref{Bootstrapping}).  Usually, these bootstrap binaries are ``taken for granted.''"
 msgstr ""
 
-#. type: node
-#: doc/guix.texi:28260 doc/guix.texi:28262
-#, no-wrap
-msgid "Reduced Binary Seed Bootstrap"
+#. type: Plain text
+#: doc/guix.texi:32028
+msgid "Taking the bootstrap binaries for granted means that we consider them to be a correct and trustworthy ``seed'' for building the complete system.  Therein lies a problem: the combined size of these bootstrap binaries is about 250MB (@pxref{Bootstrappable Builds,,, mes, GNU Mes}).  Auditing or even inspecting these is next to impossible."
 msgstr ""
 
-#. type: menuentry
-#: doc/guix.texi:28260
-msgid "A Bootstrap worthy of GNU."
+#. type: Plain text
+#: doc/guix.texi:32033
+msgid "For @code{i686-linux} and @code{x86_64-linux}, Guix now features a ``Reduced Binary Seed'' bootstrap @footnote{We would like to say: ``Full Source Bootstrap'' and while we are working towards that goal it would be hyperbole to use that term for what we do now.}."
 msgstr ""
 
-#. type: section
-#: doc/guix.texi:28260 doc/guix.texi:28326 doc/guix.texi:28327
-#, no-wrap
-msgid "Preparing to Use the Bootstrap Binaries"
+#. type: Plain text
+#: doc/guix.texi:32039
+msgid "The Reduced Binary Seed bootstrap removes the most critical tools---from a trust perspective---from the bootstrap binaries: GCC, Binutils and the GNU C Library are replaced by: @code{bootstrap-mescc-tools} (a tiny assembler and linker) and @code{bootstrap-mes} (a small Scheme Interpreter and a C compiler written in Scheme and the Mes C Library, built for TinyCC and for GCC)."
 msgstr ""
 
-#. type: menuentry
-#: doc/guix.texi:28260
-msgid "Building that what matters most."
+#. type: Plain text
+#: doc/guix.texi:32044
+msgid "Using these new binary seeds the ``missing'' Binutils, GCC, and the GNU C Library are built from source.  From here on the more traditional bootstrap process resumes.  This approach has reduced the bootstrap binaries in size to about 145MB in Guix v1.1."
 msgstr ""
 
-#. type: section
-#: doc/guix.texi:28263
-#, no-wrap
-msgid "The Reduced Binary Seed Bootstrap"
+#. type: Plain text
+#: doc/guix.texi:32052
+msgid "The next step that Guix has taken is to replace the shell and all its utilities with implementations in Guile Scheme, the @emph{Scheme-only bootstrap}.  Gash (@pxref{Gash,,, gash, The Gash manual}) is a POSIX-compatible shell that replaces Bash, and it comes with Gash Utils which has minimalist replacements for Awk, the GNU Core Utilities, Grep, Gzip, Sed, and Tar.  The rest of the bootstrap binary seeds that were removed are now built from source."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:28270
-msgid "Guix---like other GNU/Linux distributions---is traditionally bootstrapped from a set of bootstrap binaries: Bourne shell, command-line tools provided by GNU Coreutils, Awk, Findutils, `sed', and `grep' and Guile, GCC, Binutils, and the GNU C Library (@pxref{Bootstrapping}).  Usually, these bootstrap binaries are ``taken for granted.''"
+#: doc/guix.texi:32062
+msgid "Building the GNU System from source is currently only possibly by adding some historical GNU packages as intermediate steps@footnote{Packages such as @code{gcc-2.95.3}, @code{binutils-2.14}, @code{glibc-2.2.5}, @code{gzip-1.2.4}, @code{tar-1.22}, and some others.  For details, see @file{gnu/packages/commencement.scm}.}.  As Gash and Gash Utils mature, and GNU packages become more bootstrappable again (e.g., new releases of GNU Sed will also ship as gzipped tarballs again, as alternative to the hard to bootstrap @code{xz}-compression), this set of added packages can hopefully be reduced again."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:28276
-msgid "Taking these binaries for granted means that we consider them to be a correct and trustworthy `seed' for building the complete system.  Therein lies a problem: the current combined size of these bootstrap binaries is about 250MB (@pxref{Bootstrappable Builds,,, mes, GNU Mes}).  Auditing or even inspecting these is next to impossible."
+#: doc/guix.texi:32066
+msgid "The graph below shows the resulting dependency graph for @code{gcc-core-mesboot0}, the bootstrap compiler used for the traditional bootstrap of the rest of the Guix System."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:28281
-msgid "For @code{i686-linux} and @code{x86_64-linux}, Guix now features a ``Reduced Binary Seed'' bootstrap @footnote{We would like to say: ``Full Source Bootstrap'' and while we are working towards that goal it would be hyperbole to use that term for what we do now.}."
+#: doc/guix.texi:32069
+msgid "@image{images/gcc-core-mesboot0-graph,6in,,Dependency graph of gcc-core-mesboot0}"
+msgstr "@image{images/gcc-core-mesboot0-graph,6in,,Dependency graph of gcc-core-mesboot0}"
+
+#. type: Plain text
+#: doc/guix.texi:32076
+msgid "The only significant binary bootstrap seeds that remain@footnote{ Ignoring the 68KB @code{mescc-tools}; that will be removed later, together with @code{mes}.} are a Scheme intepreter and a Scheme compiler: GNU Mes and GNU Guile@footnote{Not shown in this graph are the static binaries for @file{bash}, @code{tar}, and @code{xz} that are used to get Guile running.}."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:28317
-msgid "The Reduced Binary Seed bootstrap removes the most critical tools---from a trust perspective---from the bootstrap binaries: GCC, Binutils and the GNU C Library are replaced by: @code{bootstrap-mescc-tools} (a tiny assembler and linker) and @code{bootstrap-mes} (a small Scheme Interpreter and a C compiler written in Scheme and the Mes C Library, built for TinyCC and for GCC).  Using these new binary seeds and a new set of packages@footnote{nyacc-boot, mes-boot, tcc-boot0, tcc-boot, make-mesboot0, diffutils-mesboot, binutils-mesboot0, gcc-core-mesboot, mesboot-headers, glibc-mesboot0, gcc-mesboot0, binutils-mesboot, make-mesboot, gcc-mesboot1, gcc-mesboot1-wrapper, glibc-headers-mesboot, glibc-mesboot, gcc-mesboot, and gcc-mesboot-wrapper.  } the ``missing'' Binutils, GCC, and the GNU C Library are built from source.  From here on the more traditional bootstrap process resumes.  This approach has reduced the bootstrap binaries in size to about 130MB.  Work is ongoing to reduce this further.  If you are interested, join us on @code{#bootstrappable} on the Freenode IRC network."
+#: doc/guix.texi:32079
+msgid "This further reduction has brought down the size of the binary seed to about 60MB for @code{i686-linux} and @code{x86_64-linux}."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:28323
-msgid "Below is the generated dependency graph for @code{gcc-mesboot}, the bootstrap compiler used to build the rest of GuixSD."
+#: doc/guix.texi:32084
+msgid "Work is ongoing to remove all binary blobs from our free software bootstrap stack, working towards a Full Source Bootstrap.  Also ongoing is work to bring these bootstraps to the @code{arm-linux} and @code{aarch64-linux} architectures and to the Hurd."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:28325
-msgid "@image{images/gcc-mesboot-bag-graph,6in,,Dependency graph of the gcc-mesboot}"
+#: doc/guix.texi:32088
+msgid "If you are interested, join us on @samp{#bootstrappable} on the Freenode IRC network or discuss on @email{bug-mes@@gnu.org} or @email{gash-devel@@nongnu.org}."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:28332
+#: doc/guix.texi:32095
 msgid "@image{images/bootstrap-graph,6in,,Dependency graph of the early bootstrap derivations}"
-msgstr ""
+msgstr "@image{images/bootstrap-graph,6in,,Dependency graph of the early bootstrap derivations}"
 
 #. type: Plain text
-#: doc/guix.texi:28337
+#: doc/guix.texi:32100
 msgid "The figure above shows the very beginning of the dependency graph of the distribution, corresponding to the package definitions of the @code{(gnu packages bootstrap)} module.  A similar figure can be generated with @command{guix graph} (@pxref{Invoking guix graph}), along the lines of:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:28342
+#: doc/guix.texi:32105
 #, no-wrap
 msgid ""
 "guix graph -t derivation \\\n"
 "  -e '(@@@@ (gnu packages bootstrap) %bootstrap-gcc)' \\\n"
 "  | dot -Tps > gcc.ps\n"
 msgstr ""
+"guix graph -t derivation \\\n"
+"  -e '(@@@@ (gnu packages bootstrap) %bootstrap-gcc)' \\\n"
+"  | dot -Tps > gcc.ps\n"
 
 #. type: Plain text
-#: doc/guix.texi:28345
-msgid "or, for the Reduced Binary Seed bootstrap"
+#: doc/guix.texi:32108
+msgid "or, for the further Reduced Binary Seed bootstrap"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:28350
+#: doc/guix.texi:32113
 #, no-wrap
 msgid ""
 "guix graph -t derivation \\\n"
 "  -e '(@@@@ (gnu packages bootstrap) %bootstrap-mes)' \\\n"
 "  | dot -Tps > mes.ps\n"
 msgstr ""
+"guix graph -t derivation \\\n"
+"  -e '(@@@@ (gnu packages bootstrap) %bootstrap-mes)' \\\n"
+"  | dot -Tps > mes.ps\n"
 
 #. type: Plain text
-#: doc/guix.texi:28359
+#: doc/guix.texi:32122
 msgid "At this level of detail, things are slightly complex.  First, Guile itself consists of an ELF executable, along with many source and compiled Scheme files that are dynamically loaded when it runs.  This gets stored in the @file{guile-2.0.7.tar.xz} tarball shown in this graph.  This tarball is part of Guix's ``source'' distribution, and gets inserted into the store with @code{add-to-store} (@pxref{The Store})."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:28368
+#: doc/guix.texi:32131
 msgid "But how do we write a derivation that unpacks this tarball and adds it to the store? To solve this problem, the @code{guile-bootstrap-2.0.drv} derivation---the first one that gets built---uses @code{bash} as its builder, which runs @code{build-bootstrap-guile.sh}, which in turn calls @code{tar} to unpack the tarball.  Thus, @file{bash}, @file{tar}, @file{xz}, and @file{mkdir} are statically-linked binaries, also part of the Guix source distribution, whose sole purpose is to allow the Guile tarball to be unpacked."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:28380
-msgid "Once @code{guile-bootstrap-2.0.drv} is built, we have a functioning Guile that can be used to run subsequent build programs.  Its first task is to download tarballs containing the other pre-built binaries---this is what the @code{.tar.xz.drv} derivations do.  Guix modules such as @code{ftp-client.scm} are used for this purpose.  The @code{module-import.drv} derivations import those modules in a directory in the store, using the original layout.  The @code{module-import-compiled.drv} derivations compile those modules, and write them in an output directory with the right layout.  This corresponds to the @code{#:modules} argument of @code{build-expression->derivation} (@pxref{Derivations})."
+#: doc/guix.texi:32143
+msgid "Once @code{guile-bootstrap-2.0.drv} is built, we have a functioning Guile that can be used to run subsequent build programs.  Its first task is to download tarballs containing the other pre-built binaries---this is what the @file{.tar.xz.drv} derivations do.  Guix modules such as @code{ftp-client.scm} are used for this purpose.  The @code{module-import.drv} derivations import those modules in a directory in the store, using the original layout.  The @code{module-import-compiled.drv} derivations compile those modules, and write them in an output directory with the right layout.  This corresponds to the @code{#:modules} argument of @code{build-expression->derivation} (@pxref{Derivations})."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:28385
+#: doc/guix.texi:32148
 msgid "Finally, the various tarballs are unpacked by the derivations @code{gcc-bootstrap-0.drv}, @code{glibc-bootstrap-0.drv}, or @code{bootstrap-mes-0.drv} and @code{bootstrap-mescc-tools-0.drv}, at which point we have a working C tool chain."
 msgstr ""
 
 #. type: unnumberedsec
-#: doc/guix.texi:28386
+#: doc/guix.texi:32149
 #, no-wrap
 msgid "Building the Build Tools"
-msgstr ""
+msgstr "Сборка инструментов сборки"
 
 #. type: Plain text
-#: doc/guix.texi:28395
+#: doc/guix.texi:32158
 msgid "Bootstrapping is complete when we have a full tool chain that does not depend on the pre-built bootstrap tools discussed above.  This no-dependency requirement is verified by checking whether the files of the final tool chain contain references to the @file{/gnu/store} directories of the bootstrap inputs.  The process that leads to this ``final'' tool chain is described by the package definitions found in the @code{(gnu packages commencement)} module."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:28402
+#: doc/guix.texi:32165
 msgid "The @command{guix graph} command allows us to ``zoom out'' compared to the graph above, by looking at the level of package objects instead of individual derivations---remember that a package may translate to several derivations, typically one derivation to download its source, one to build the Guile modules it needs, and one to actually build the package from source.  The command:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:28407
+#: doc/guix.texi:32170
 #, no-wrap
 msgid ""
 "guix graph -t bag \\\n"
 "  -e '(@@@@ (gnu packages commencement)\n"
-"          glibc-final-with-bootstrap-bash)' | dot -Tps > t.ps\n"
+"          glibc-final-with-bootstrap-bash)' | xdot -\n"
 msgstr ""
+"guix graph -t bag \\\n"
+"  -e '(@@@@ (gnu packages commencement)\n"
+"          glibc-final-with-bootstrap-bash)' | xdot -\n"
 
 #. type: Plain text
-#: doc/guix.texi:28414
-msgid "produces the dependency graph leading to the ``final'' C library@footnote{You may notice the @code{glibc-intermediate} label, suggesting that it is not @emph{quite} final, but as a good approximation, we will consider it final.}, depicted below."
-msgstr "создает граф зависимостей, ведущий к «финальной» библиотеке C @footnote{Вы могли обратить внимание на метку @code{glibc-intermediate}, полагая, что библиотека является @emph{недостаточно} финальной, но в данном приближении мы будем считать её финальной.}, показанной ниже."
+#: doc/guix.texi:32177
+msgid "displays the dependency graph leading to the ``final'' C library@footnote{You may notice the @code{glibc-intermediate} label, suggesting that it is not @emph{quite} final, but as a good approximation, we will consider it final.}, depicted below."
+msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:28416
+#: doc/guix.texi:32179
 msgid "@image{images/bootstrap-packages,6in,,Dependency graph of the early packages}"
 msgstr "@image{images/bootstrap-packages,6in,,График зависимости ранних пакетов}"
 
 #. type: Plain text
-#: doc/guix.texi:28422
+#: doc/guix.texi:32185
 msgid "The first tool that gets built with the bootstrap binaries is GNU@tie{}Make---noted @code{make-boot0} above---which is a prerequisite for all the following packages.  From there Findutils and Diffutils get built."
 msgstr "Первый инструмент, который собирается с помощью двоичных файлов начальной загрузки, - это GNU@tie{}Make---отмеченный @code{make-boot0} выше---который является обязательным для всех следующих пакетов. После собираются Findutils и Diffutils."
 
 #. type: Plain text
-#: doc/guix.texi:28427
-msgid "Then come the first-stage Binutils and GCC, built as pseudo cross tools---i.e., with @code{--target} equal to @code{--host}.  They are used to build libc.  Thanks to this cross-build trick, this libc is guaranteed not to hold any reference to the initial tool chain."
+#: doc/guix.texi:32190
+#, fuzzy
+#| msgid "Then come the first-stage Binutils and GCC, built as pseudo cross tools---i.e., with @code{--target} equal to @code{--host}.  They are used to build libc.  Thanks to this cross-build trick, this libc is guaranteed not to hold any reference to the initial tool chain."
+msgid "Then come the first-stage Binutils and GCC, built as pseudo cross tools---i.e., with @option{--target} equal to @option{--host}.  They are used to build libc.  Thanks to this cross-build trick, this libc is guaranteed not to hold any reference to the initial tool chain."
 msgstr "Затем идут Binutils и GCC, построенные как псевдо-кросс-инструменты---т.е. с @code{--target}, равным @code{--host}. Они используются для сборки libc. Благодаря этому кросс-сборочному трюку, libc гарантированно не будет содержать никаких ссылок на начальный набор инструментов."
 
 #. type: Plain text
-#: doc/guix.texi:28433
-msgid "From there the final Binutils and GCC (not shown above) are built.  GCC uses @code{ld} from the final Binutils, and links programs against the just-built libc.  This tool chain is used to build the other packages used by Guix and by the GNU Build System: Guile, Bash, Coreutils, etc."
+#: doc/guix.texi:32196
+#, fuzzy
+#| msgid "From there the final Binutils and GCC (not shown above) are built.  GCC uses @code{ld} from the final Binutils, and links programs against the just-built libc.  This tool chain is used to build the other packages used by Guix and by the GNU Build System: Guile, Bash, Coreutils, etc."
+msgid "From there the final Binutils and GCC (not shown above) are built.  GCC uses @command{ld} from the final Binutils, and links programs against the just-built libc.  This tool chain is used to build the other packages used by Guix and by the GNU Build System: Guile, Bash, Coreutils, etc."
 msgstr "Оттуда создаются финальные версии Binutils и GCC (не показаны выше). GCC использует @code{ld} из финального Binutils и связывает программы с только что созданным libc. Эта цепочка инструментов используется для сборки других пакетов, используемых Guix и система сборки GNU: Guile, Bash, Coreutils и т.д."
 
 #. type: Plain text
-#: doc/guix.texi:28439
+#: doc/guix.texi:32202
 msgid "And voilà! At this point we have the complete set of build tools that the GNU Build System expects.  These are in the @code{%final-inputs} variable of the @code{(gnu packages commencement)} module, and are implicitly used by any package that uses @code{gnu-build-system} (@pxref{Build Systems, @code{gnu-build-system}})."
 msgstr "И вуаля! Теперь у нас есть полный набор инструментов сборки, который ожидает система сборки GNU. Они находятся в переменной @code{%final-input} модуля @code{(gnu packages commencement)} и неявно используются любым пакетом, использующим @code{gnu-build-system} (@pxref{Build Systems, @code{gnu-build-system}})."
 
 #. type: unnumberedsec
-#: doc/guix.texi:28441
+#: doc/guix.texi:32204
 #, no-wrap
 msgid "Building the Bootstrap Binaries"
 msgstr "Сборка двоичных файлов двоичной загрузки"
 
 #. type: Plain text
-#: doc/guix.texi:28448
+#: doc/guix.texi:32211
 msgid "Because the final tool chain does not depend on the bootstrap binaries, those rarely need to be updated.  Nevertheless, it is useful to have an automated way to produce them, should an update occur, and this is what the @code{(gnu packages make-bootstrap)} module provides."
 msgstr "Поскольку окончательный набор инструментов не зависит от двоичных файлов начальной загрузки, их редко требуется обновлять. Тем не менее, полезно иметь автоматический способ их создания, если произойдет обновление, и это то, что обеспечивает модуль @code{(gnu packages make-bootstrap)}."
 
 #. type: Plain text
-#: doc/guix.texi:28454
+#: doc/guix.texi:32217
 msgid "The following command builds the tarballs containing the bootstrap binaries (Binutils, GCC, glibc, for the traditional bootstrap and linux-libre-headers, bootstrap-mescc-tools, bootstrap-mes for the Reduced Binary Seed bootstrap, and Guile, and a tarball containing a mixture of Coreutils and other basic command-line tools):"
 msgstr "Следующая команда создает tar-архивы, содержащие двоичные файлы начальной загрузки (Binutils, GCC, glibc, для традиционной загрузки и linux-libre-headers, bootstrap-mescc-tools, bootstrap-mes для начальной загрузки Reduced Binary Seed, Guile и tarball содержащий смесь Coreutils и других основных инструментов командной строки):"
 
 #. type: example
-#: doc/guix.texi:28457
+#: doc/guix.texi:32220
 #, no-wrap
 msgid "guix build bootstrap-tarballs\n"
 msgstr "tar архив начальной сборки guix\n"
 
 #. type: Plain text
-#: doc/guix.texi:28462
+#: doc/guix.texi:32225
 msgid "The generated tarballs are those that should be referred to in the @code{(gnu packages bootstrap)} module mentioned at the beginning of this section."
 msgstr "Сгенерированные тарболы - это те, на которые нужно ссылаться в модуле @code{(gnu packages bootstrap)}, упомянутом в начале этого раздела."
 
 #. type: Plain text
-#: doc/guix.texi:28468
+#: doc/guix.texi:32231
 msgid "Still here? Then perhaps by now you've started to wonder: when do we reach a fixed point? That is an interesting question! The answer is unknown, but if you would like to investigate further (and have significant computational and storage resources to do so), then let us know."
 msgstr "Все еще здесь? Тогда, может быть, вы задались вопросом: когда мы достигнем фиксированной точки? Это интересный вопрос! Ответ неизвестен, но если вы хотите продолжить исследование (и располагаете значительными вычислительными ресурсами для этого), сообщите нам."
 
 #. type: unnumberedsec
-#: doc/guix.texi:28469
+#: doc/guix.texi:32232
 #, no-wrap
 msgid "Reducing the Set of Bootstrap Binaries"
 msgstr "Сокращение набора Bootstrap Binaries"
 
 #. type: Plain text
-#: doc/guix.texi:28477
+#: doc/guix.texi:32240
 msgid "Our traditional bootstrap includes GCC, GNU Libc, Guile, etc.  That's a lot of binary code! Why is that a problem? It's a problem because these big chunks of binary code are practically non-auditable, which makes it hard to establish what source code produced them.  Every unauditable binary also leaves us vulnerable to compiler backdoors as described by Ken Thompson in the 1984 paper @emph{Reflections on Trusting Trust}."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:28483
+#: doc/guix.texi:32246
 msgid "This is mitigated by the fact that our bootstrap binaries were generated from an earlier Guix revision.  Nevertheless it lacks the level of transparency that we get in the rest of the package dependency graph, where Guix always gives us a source-to-binary mapping.  Thus, our goal is to reduce the set of bootstrap binaries to the bare minimum."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:28489
+#: doc/guix.texi:32252
 msgid "The @uref{https://bootstrappable.org, Bootstrappable.org web site} lists on-going projects to do that.  One of these is about replacing the bootstrap GCC with a sequence of assemblers, interpreters, and compilers of increasing complexity, which could be built from source starting from a simple and auditable assembler."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:28498
+#: doc/guix.texi:32261
 msgid "Our first major achievement is the replacement of of GCC, the GNU C Library and Binutils by MesCC-Tools (a simple hex linker and macro assembler) and Mes (@pxref{Top, GNU Mes Reference Manual,, mes, GNU Mes}, a Scheme interpreter and C compiler in Scheme).  Neither MesCC-Tools nor Mes can be fully bootstrapped yet and thus we inject them as binary seeds.  We call this the Reduced Binary Seed bootstrap, as it has halved the size of our bootstrap binaries! Also, it has eliminated the C compiler binary; i686-linux and x86_64-linux Guix packages are now bootstrapped without any binary C compiler."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:28501
+#: doc/guix.texi:32264
 msgid "Work is ongoing to make MesCC-Tools and Mes fully bootstrappable and we are also looking at any other bootstrap binaries.  Your help is welcome!"
 msgstr ""
 
 #. type: chapter
-#: doc/guix.texi:28503
+#: doc/guix.texi:32266
 #, no-wrap
 msgid "Porting to a New Platform"
-msgstr ""
+msgstr "Портирование на новую платформу"
 
 #. type: Plain text
-#: doc/guix.texi:28512
+#: doc/guix.texi:32275
 msgid "As discussed above, the GNU distribution is self-contained, and self-containment is achieved by relying on pre-built ``bootstrap binaries'' (@pxref{Bootstrapping}).  These binaries are specific to an operating system kernel, CPU architecture, and application binary interface (ABI).  Thus, to port the distribution to a platform that is not yet supported, one must build those bootstrap binaries, and update the @code{(gnu packages bootstrap)} module to use them on that platform."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:28517
+#: doc/guix.texi:32280
 msgid "Fortunately, Guix can @emph{cross compile} those bootstrap binaries.  When everything goes well, and assuming the GNU tool chain supports the target platform, this can be as simple as running a command like this one:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:28520
+#: doc/guix.texi:32283
 #, no-wrap
 msgid "guix build --target=armv5tel-linux-gnueabi bootstrap-tarballs\n"
-msgstr ""
+msgstr "guix build --target=armv5tel-linux-gnueabi bootstrap-tarballs\n"
 
 #. type: Plain text
-#: doc/guix.texi:28527
+#: doc/guix.texi:32290
 msgid "For this to work, the @code{glibc-dynamic-linker} procedure in @code{(gnu packages bootstrap)} must be augmented to return the right file name for libc's dynamic linker on that platform; likewise, @code{system->linux-architecture} in @code{(gnu packages linux)} must be taught about the new platform."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:28536
+#: doc/guix.texi:32299
 msgid "Once these are built, the @code{(gnu packages bootstrap)} module needs to be updated to refer to these binaries on the target platform.  That is, the hashes and URLs of the bootstrap tarballs for the new platform must be added alongside those of the currently supported platforms.  The bootstrap Guile tarball is treated specially: it is expected to be available locally, and @file{gnu/local.mk} has rules to download it for the supported architectures; a rule for the new platform must be added as well."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:28545
-msgid "In practice, there may be some complications.  First, it may be that the extended GNU triplet that specifies an ABI (like the @code{eabi} suffix above) is not recognized by all the GNU tools.  Typically, glibc recognizes some of these, whereas GCC uses an extra @code{--with-abi} configure flag (see @code{gcc.scm} for examples of how to handle this).  Second, some of the required packages could fail to build for that platform.  Lastly, the generated binaries could be broken for some reason."
+#: doc/guix.texi:32308
+msgid "In practice, there may be some complications.  First, it may be that the extended GNU triplet that specifies an ABI (like the @code{eabi} suffix above) is not recognized by all the GNU tools.  Typically, glibc recognizes some of these, whereas GCC uses an extra @option{--with-abi} configure flag (see @code{gcc.scm} for examples of how to handle this).  Second, some of the required packages could fail to build for that platform.  Lastly, the generated binaries could be broken for some reason."
 msgstr ""
 
 #. type: include
-#: doc/guix.texi:28547
+#: doc/guix.texi:32310
 #, no-wrap
 msgid "contributing.texi"
 msgstr "contributing.ru.texi"
 
 #. type: Plain text
-#: doc/guix.texi:28560
-msgid "Guix is based on the @uref{https://nixos.org/nix/, Nix package manager}, which was designed and implemented by Eelco Dolstra, with contributions from other people (see the @file{nix/AUTHORS} file in Guix.)  Nix pioneered functional package management, and promoted unprecedented features, such as transactional package upgrades and rollbacks, per-user profiles, and referentially transparent build processes.  Without this work, Guix would not exist."
+#: doc/guix.texi:32323
+msgid "Guix is based on the @uref{https://nixos.org/nix/, Nix package manager}, which was designed and implemented by Eelco Dolstra, with contributions from other people (see the @file{nix/AUTHORS} file in Guix).  Nix pioneered functional package management, and promoted unprecedented features, such as transactional package upgrades and rollbacks, per-user profiles, and referentially transparent build processes.  Without this work, Guix would not exist."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:28563
+#: doc/guix.texi:32326
 msgid "The Nix-based software distributions, Nixpkgs and NixOS, have also been an inspiration for Guix."
-msgstr ""
+msgstr "Дистрибутивы, основанный на Nix, Nixpkgs and NixOS, также были источником вдохновения для Guix."
 
 #. type: Plain text
-#: doc/guix.texi:28569
+#: doc/guix.texi:32332
 msgid "GNU@tie{}Guix itself is a collective work with contributions from a number of people.  See the @file{AUTHORS} file in Guix for more information on these fine people.  The @file{THANKS} file lists people who have helped by reporting bugs, taking care of the infrastructure, providing artwork and themes, making suggestions, and more---thank you!"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:28574
+#: doc/guix.texi:32337
 #, no-wrap
 msgid "license, GNU Free Documentation License"
 msgstr "лицензия, GNU Free Documentation License"
 
 #. type: include
-#: doc/guix.texi:28575
+#: doc/guix.texi:32338
 #, no-wrap
 msgid "fdl-1.3.texi"
-msgstr ""
-
-#, fuzzy
-#~| msgid "After installing fonts you may have to refresh the font cache to use them in applications.  The same applies when applications installed via Guix do not seem to find fonts.  To force rebuilding of the font cache run @code{fc-cache -f}.  The @code{fc-cache} command is provided by the @code{fontconfig} package."
-#~ msgid "After installing fonts you may have to refresh the font cache to use them in applications.  The same applies when applications installed via Guix do not seem to find fonts.  To force rebuilding of the font cache run @code{fc-cache -rv}.  The @code{fc-cache} command is provided by the @code{fontconfig} package."
-#~ msgstr "После установки шрифтов, возможно вам потребуется обновить кеш шрифтов, чтобы использовать их в приложениях. Это необходимо делать, когда приложения, установленные с помощью Guix, не находят шрифты. Для того чтобы пересобрать кеш шрифтов, запустите @code{fc-cache -f}. Команда @code{fc-cache} предоставляется пакетом @code{fontconfig}."
-
-#~ msgid "When you install Emacs packages with Guix, the elisp files may be placed either in @file{$HOME/.guix-profile/share/emacs/site-lisp/} or in sub-directories of @file{$HOME/.guix-profile/share/emacs/site-lisp/guix.d/}.  The latter directory exists because potentially there may exist thousands of Emacs packages and storing all their files in a single directory may not be reliable (because of name conflicts).  So we think using a separate directory for each package is a good idea.  It is very similar to how the Emacs package system organizes the file structure (@pxref{Package Files,,, emacs, The GNU Emacs Manual})."
-#~ msgstr "Когда вы устанавливаете пакеты Emacs с помощью Guix, файлы elisp могут помещаться в @file{$HOME/.guix-profile/share/emacs/site-lisp/} или поддиректориях @file{$HOME/.guix-profile/share/emacs/site-lisp/guix.d/}. Последняя директория существует, потому что потенциально могут существовать тысячи пакетов Emacs, и сохранение всех их файлов в одной директории может быть неприемлемо (из-за конфликта имён). Так что мы считаем хорошей идеей использовать отдельную директорию для каждого пакета. Это очень похоже на то, как система пакетов Emacs организует файловую структуру (@pxref{Package Files,,, emacs, The GNU Emacs Manual})."
-
-#~ msgid "For containers, share the file system @var{source} from the host system as the writable file system @var{target} within the container.  If @var{target} is not specified, @var{source} is used as the target mount point in the container."
-#~ msgstr "Разделять в контейнере файловую систему @var{source} хостящей системы как файловую систему, доступную для записи, с целью @var{target} внутри контейнера. Если цель @var{target} не задана, источник @var{source} используется в качестве целевой точки монтирования в контейнере."
-
-#~ msgid "The example below spawns a Guile REPL in a container in which the user's home directory is accessible for both reading and writing via the @file{/exchange} directory:"
-#~ msgstr "Пример ниже порождает Guile REPL в контейнере, в котором домашняя директория пользователя доступна для чтения и записи через директорию @file{/exchange}:"
-
-#~ msgid "guix environment --container --share=$HOME=/exchange --ad-hoc guile -- guile\n"
-#~ msgstr "guix environment --container --share=$HOME=/exchange --ad-hoc guile -- guile\n"
-
-#~ msgid "@xref{Invoking guix environment}, for more information on that command.  Extra dependencies can be added with @option{--ad-hoc}:"
-#~ msgstr "см. @xref{Invoking guix environment} для информации об этой команде. Дополнительные зависимости можно добавить опцией @option{--ad-hoc}:"
+msgstr "fdl-1.3.texi"
 
-#~ msgid "little-endian 64-bit ARMv8-A processors, Linux-Libre kernel.  This is currently in an experimental stage, with limited support.  @xref{Contributing}, for how to help!"
-#~ msgstr "процессоры little-endian 64-bit ARMv8-A с ядром Linux-Libre. В данный момент имеет ограниченную поддержку на этапе экспериментирования, читайте @xref{Contributing}, чтобы помочь."
+#~ msgid "@var{git-fetch} from @code{(guix git-download)}"
+#~ msgstr "@var{git-fetch} из @code{(guix git-download)}"
 
-#~ msgid ""
-#~ "$ gpg --keyserver @value{KEY-SERVER} \\\n"
-#~ "      --recv-keys @value{OPENPGP-SIGNING-KEY-ID}\n"
-#~ msgstr ""
-#~ "$ gpg --keyserver @value{KEY-SERVER} \\\n"
-#~ "      --recv-keys @value{OPENPGP-SIGNING-KEY-ID}\n"
-
-#~ msgid "Nix, compatibility"
-#~ msgstr "Nix, совместимость"
+#~ msgid "#:phases (modify-phases %standard-phases (delete 'configure))\n"
+#~ msgstr "#:phases (modify-phases %standard-phases (delete 'configure))\n"
 
 #, fuzzy
-#~| msgid "When a working installation of @url{http://nixos.org/nix/, the Nix package manager} is available, you can instead configure Guix with @code{--disable-daemon}.  In that case, Nix replaces the three dependencies above."
-#~ msgid "When a working installation of @url{https://nixos.org/nix/, the Nix package manager} is available, you can instead configure Guix with @code{--disable-daemon}.  In that case, Nix replaces the three dependencies above."
-#~ msgstr "Если доступна рабочая установка @url{http://nixos.org/nix/, пакетного менеджера Nix}, можно просто указать при конфигурации Guix @code{--disable-daemon}. В этом случае Nix заменит три зависимости выше."
-
-#~ msgid "Guix is compatible with Nix, so it is possible to share the same store between both.  To do so, you must pass @command{configure} not only the same @code{--with-store-dir} value, but also the same @code{--localstatedir} value.  The latter is essential because it specifies where the database that stores metadata about the store is located, among other things.  The default values for Nix are @code{--with-store-dir=/nix/store} and @code{--localstatedir=/nix/var}.  Note that @code{--disable-daemon} is not required if your goal is to share the store with Nix."
-#~ msgstr "Guix совместим с Nix, так что возможно разделение склада между ними.  Чтобы сделать так, нужно указать @command{configure} не только то же значение @code{--with-store-dir}, но и такое же значение @code{--localstatedir}. Последнее существенно важно, потому что это указывает путь базы данных, в которой хранятся метаданные о складе и другие вещи. Значения по умолчанию для Nix: @code{--with-store-dir=/nix/store} и @code{--localstatedir=/nix/var}.  Отметим, что @code{--disable-daemon} не обязательно для того, чтобы разделять склад с Nix."
-
-#~ msgid "--no-build-hook"
-#~ msgstr "--no-build-hook"
-
-#~ msgid "Do not use the @dfn{build hook}."
-#~ msgstr "Не использовать хук сборки (@dfn{build hook})."
-
-#~ msgid "The build hook is a helper program that the daemon can start and to which it submits build requests.  This mechanism is used to offload builds to other machines (@pxref{Daemon Offload Setup})."
-#~ msgstr "Хук сборки --- это программа-помощник, которую может запускать демон, и которой он отправляет запросы сборки. Этот механизм используется для разгрузки сборок на другие машины (@pxref{Daemon Offload Setup})."
-
-#~ msgid "In the VM console, quickly press the @kbd{F12} key to enter the boot menu.  Then press the @kbd{2} key and the @kbd{RET} key to validate your selection."
-#~ msgstr "В консоли VM быстро нажмите клавишу @kbd{F12}, чтобы открыть меню загрузки. Затем нажмите кнопку @kbd{2} и кнопку @kbd{Ввод} (enter), чтобы потдвердить выбор."
-
-#~ msgid "hydra"
-#~ msgstr "hydra"
-
-#~ msgid "Similarly, the @file{hydra.gnu.org.pub} file contains the public key of an independent build farm also run by the project, reachable at @indicateurl{https://mirror.hydra.gnu.org}."
-#~ msgstr "Аналогично файл @file{hydra.gnu.org.pub} содержит публичный ключ независимой фермы сборки, которая тоже обслуживает проект --- @indicateurl{https://mirror.hydra.gnu.org}."
-
-#~ msgid "Display the list of packages added or upgraded since the previous generation."
-#~ msgstr "Вывести список пакетов, которые добавлены или обновлены после предыдущего поколения."
-
-#~ msgid "This manual is also available in French (@pxref{Top,,, guix.fr, Manuel de référence de GNU Guix}) and German (@pxref{Top,,, guix.de, Referenzhandbuch zu GNU Guix}).  If you would like to translate it in your native language, consider joining the @uref{https://translationproject.org/domain/guix-manual.html, Translation Project}."
-#~ msgstr "Это руководство также доступно на французском (@pxref{Top,,, guix.fr, Manuel de référence de GNU Guix}) и немецком (@pxref{Top,,, guix.de, Referenzhandbuch zu GNU Guix}). Если вы желаете перевести его на ваш родной язык, присоединяйтесь к  @uref{https://translationproject.org/domain/guix-manual.html, Translation Project}."
-
-#~ msgid "Download the binary tarball from @indicateurl{https://alpha.gnu.org/gnu/guix/guix-binary-@value{VERSION}.@var{system}.tar.xz}, where @var{system} is @code{x86_64-linux} for an @code{x86_64} machine already running the kernel Linux, and so on."
-#~ msgstr "Скачивание архива бинарника из  @indicateurl{https://alpha.gnu.org/gnu/guix/guix-binary-@value{VERSION}.@var{system}.tar.xz}, где @var{system} - это @code{x86_64-linux} для машины @code{x86_64}, на которой уже запущено ядрро Linux и т.д."
-
-#~ msgid ""
-#~ "$ wget https://alpha.gnu.org/gnu/guix/guix-binary-@value{VERSION}.@var{system}.tar.xz.sig\n"
-#~ "$ gpg --verify guix-binary-@value{VERSION}.@var{system}.tar.xz.sig\n"
-#~ msgstr ""
-#~ "$ wget https://alpha.gnu.org/gnu/guix/guix-binary-@value{VERSION}.@var{system}.tar.xz.sig\n"
-#~ "$ gpg --verify guix-binary-@value{VERSION}.@var{system}.tar.xz.sig\n"
-
-#~ msgid "The @code{guix} package must remain available in @code{root}'s profile, or it would become subject to garbage collection---in which case you would find yourself badly handicapped by the lack of the @command{guix} command.  In other words, do not remove @code{guix} by running @code{guix package -r guix}."
-#~ msgstr "Пакет @code{guix} должен оставаться доступным в профиле @code{root}, иначе он станет объектом для сборщика мусора, тогда вы обнаружете отсутствие команды @command{guix}. Другими словами, не удаляйте @code{guix} запуском @code{guix package -r guix}."
-
-#~ msgid "As of version @value{VERSION}, Guix System is not production-ready.  It may contain bugs and lack important features.  Thus, if you are looking for a stable production system that respects your freedom as a computer user, a good solution at this point is to consider @url{http://www.gnu.org/distros/free-distros.html, one of the more established GNU/Linux distributions}.  We hope you can soon switch to the Guix System without fear, of course.  In the meantime, you can also keep using your distribution and try out the package manager on top of it (@pxref{Installation})."
-#~ msgstr "Касательно версии @value{VERSION}, система Guix не готова для клиентской эксплуатации. Она может содержать баги, или в ней могут отсутствовать важные функции. Так что, если вы ищете стабильный дистрибутив системы, который уважает свободу пользователя при работе за компьютером, хорошим решением в данном случае будет @url{http://www.gnu.org/distros/free-distros.ru.html, один из признанных свободных дистрибутивов GNU/Linux}. Надеемся, в скором вы сможете перейти на систему Guix без проблем. В данный момент также можно остаться на вашем дистрибутиве и попробовать пакетный менеджер на нём (@pxref{Installation})."
-
-#~ msgid "Before you proceed with the installation, be aware of the following noteworthy limitations applicable to version @value{VERSION}:"
-#~ msgstr "Перед тем, как продолжить установку, ознакомьтесь со следующими важными ограничениями для версии @value{VERSION}:"
-
-#~ msgid "The installation process does not include a graphical user interface and requires familiarity with GNU/Linux (see the following subsections to get a feel of what that means.)"
-#~ msgstr "Процесс установки не включает графический интерфейс пользователя и требует владения навыками пользования GNU/Linux (смотрите следующие подразделы, чтобы понять, что это значит)."
-
-#~ msgid "More than 8,500 packages are available, but you might occasionally find that a useful package is missing."
-#~ msgstr "Доступно более 8500 пакетов, но возможно вы обнаружете, что необходимый вам пакет отсутствует."
-
-#~ msgid "GNOME, Xfce, LXDE, and Enlightenment are available (@pxref{Desktop Services}), as well as a number of X11 window managers.  However, some graphical applications may be missing, as well as KDE."
-#~ msgstr "GNOME, Xfce, LXDE и Enlightenment доступны (@pxref{Desktop Services}), а также ряд оконных менеджеров X11. Однако графические приложения могут отсутствовать, также как и KDE."
-
-#~ msgid "You have been warned! But more than a disclaimer, this is an invitation to report issues (and success stories!), and to join us in improving it.  @xref{Contributing}, for more info."
-#~ msgstr "Вы предупреждены! Но однако мы предлагаем присылать отчёты об ошибках (или истории успеха) и приглашаем улучшать систему. Подробнее @xref{Contributing}."
-
-#~ msgid "One of the main areas where free drivers or firmware are lacking is WiFi devices.  WiFi devices known to work include those using Atheros chips (AR9271 and AR7010), which corresponds to the @code{ath9k} Linux-libre driver, and those using Broadcom/AirForce chips (BCM43xx with Wireless-Core Revision 5), which corresponds to the @code{b43-open} Linux-libre driver.  Free firmware exists for both and is available out-of-the-box on Guix System, as part of @var{%base-firmware} (@pxref{operating-system Reference, @code{firmware}})."
-#~ msgstr "Основной областью, в которой отсутствуют свободные драйверы и прошивки, являются устройства Wi-Fi. Работают устройства Wi-Fi, которые используют платы Atheros (AR9271 и AR7010) и взаимодействуют с драйвером Linux-libre @code{ath9k}, также использующие платы Broadcom/AirForce (BCM43xx with Wireless-Core Revision 5), которые работают с драйвером Linux-libre @code{b43-open}. Свободная прошивка существут для обоих и доступна в системе Guix из коробки как часть @var{%base-firmware} (@pxref{operating-system Reference, @code{firmware}})."
-
-#~ msgid "An ISO-9660 installation image that can be written to a USB stick or burnt to a DVD can be downloaded from @indicateurl{https://alpha.gnu.org/gnu/guix/guix-system-install-@value{VERSION}.@var{system}.iso.xz}, where @var{system} is one of:"
-#~ msgstr "Установочный образ ISO-9660 может быть записан на USB-флеш или DVD, скачать его можно по адресу: @indicateurl{https://alpha.gnu.org/gnu/guix/guix-system-install-@value{VERSION}.@var{system}.iso.xz}, где @var{system} одна из следующих:"
-
-#~ msgid ""
-#~ "$ wget https://alpha.gnu.org/gnu/guix/guix-system-install-@value{VERSION}.@var{system}.iso.xz.sig\n"
-#~ "$ gpg --verify guix-system-install-@value{VERSION}.@var{system}.iso.xz.sig\n"
-#~ msgstr ""
-#~ "$ wget https://alpha.gnu.org/gnu/guix/guix-system-install-@value{VERSION}.@var{system}.iso.xz.sig\n"
-#~ "$ gpg --verify guix-system-install-@value{VERSION}.@var{system}.iso.xz.sig\n"
-
-#~ msgid "guix package -i emacs-guix\n"
-#~ msgstr "guix package -i emacs-guix\n"
-
-#~ msgid "If you are not using the Guix System Distribution, consider adding the following lines to your @file{~/.bash_profile} (@pxref{Bash Startup Files,,, bash, The GNU Bash Reference Manual}) so that newly-spawned shells get all the right environment variable definitions:"
-#~ msgstr "Если вы не используете систему Guix, требуется добавить следующие строки в ваши @file{~/.bash_profile} (@pxref{Bash Startup Files,,, bash, The GNU Bash Reference Manual}), чтобы оболочки имели правильные определения переменных окружения:"
-
-#~ msgid "It is also possible to refine search results using several @code{-s} flags.  For example, the following command returns a list of board games:"
-#~ msgstr "Также можно уточнить поиск, используя несколько флагов @code{-s}. Например, следующая команда возвращает список настольных игр:"
-
-#~ msgid ""
-#~ "$ guix package -s '\\<board\\>' -s game | recsel -p name\n"
-#~ "name: gnubg\n"
-#~ "@dots{}\n"
-#~ msgstr ""
-#~ "$ guix package -s '\\<board\\>' -s game | recsel -p name\n"
-#~ "name: gnubg\n"
-#~ "@dots{}\n"
-
-#~ msgid ""
-#~ "$ guix package -s crypto -s library | \\\n"
-#~ "    recsel -e '! (name ~ \"^(ghc|perl|python|ruby)\")' -p name,synopsis\n"
-#~ msgstr ""
-#~ "$ guix package -s crypto -s library | \\\n"
-#~ "    recsel -e '! (name ~ \"^(ghc|perl|python|ruby)\")' -p name,synopsis\n"
-
-#~ msgid "Substitutes from the official build farm are enabled by default when using the Guix System Distribution (@pxref{GNU Distribution}).  However, they are disabled by default when using Guix on a foreign distribution, unless you have explicitly enabled them via one of the recommended installation steps (@pxref{Installation}).  The following paragraphs describe how to enable or disable substitutes for the official build farm; the same procedure can also be used to enable substitutes for any other substitute server."
-#~ msgstr "Подстановки из официальной фермы сборки доступны по умолчанию при использовании системы Guix (@pxref{GNU Distribution}). Однако, они отключены по умолчанию при использовании Guix на чужом дистрибутиве, если конечно вы явно не включили их на одном из рекомендуемых шагов установки (@pxref{Installation}). Ниже объясняется, как включить или отключить подстановки с официальной фермы сборки; такая же процедура может также использоваться для включения подстановок с любого другого сервера подстановок."
-
-#~ msgid "Often, packages defined in Guix have a single @dfn{output}---i.e., the source package leads to exactly one directory in the store.  When running @command{guix package -i glibc}, one installs the default output of the GNU libc package; the default output is called @code{out}, but its name can be omitted as shown in this command.  In this particular case, the default output of @code{glibc} contains all the C header files, shared libraries, static libraries, Info documentation, and other supporting files."
-#~ msgstr "Часто пакеты, определённые в Guix, имеют один @dfn{результат}, это значит, что исходный пакет даёт только одну директорию на складе. При запуске @command{guix package -i glibc} это устанавливает результат по умолчанию; результат по умолчанию называется @code{выходом}, но его имя может пропускаться, как показано в этой команде. В этом частном случае результат по умолчанию для @code{glibc} содержит все файлы заголовков C, разделяемые библиотеки, статические библиотеки, документацию Info и другие поставляемые файы."
-
-#~ msgid "guix package -i glib\n"
-#~ msgstr "guix package -i glib\n"
-
-#~ msgid "guix package -i glib:doc\n"
-#~ msgstr "guix package -i glib:doc\n"
+#~| msgid "@code{features} (default: @code{'()})"
+#~ msgid "@code{extra-options} (default: @code{'()\"})"
+#~ msgstr "@code{features} (default: @code{'()})"
diff --git a/po/doc/local.mk b/po/doc/local.mk
index 4f3ad0a37e..751ea5a45f 100644
--- a/po/doc/local.mk
+++ b/po/doc/local.mk
@@ -32,9 +32,9 @@ EXTRA_DIST = \
   $(DOC_PO_FILES) \
   $(DOC_COOKBOOK_PO_FILES)
 
-POT_OPTIONS = --package-name "guix" --package-version "$(VERSION)" \
-	          --copyright-holder "Ludovic Courtès" \
-			  --msgid-bugs-address "ludo@gnu.org"
+POT_OPTIONS = --package-name "guix manual" --package-version "$(VERSION)" \
+	          --copyright-holder "the authors of Guix (msgids)" \
+			  --msgid-bugs-address "bug-guix@gnu.org"
 
 doc-po-update-%:
 	@lang=`echo "$@" | sed -e's/^doc-po-update-//'` ; \
diff --git a/po/guix/Makevars b/po/guix/Makevars
index adbc8e246c..363bf98dfd 100644
--- a/po/guix/Makevars
+++ b/po/guix/Makevars
@@ -13,11 +13,12 @@ XGETTEXT_OPTIONS =				\
   --keyword=G_ --keyword=N_:1,2			\
   --keyword=message				\
   --keyword=description				\
+  --keyword=synopsis				\
   --keyword=n_
 
-COPYRIGHT_HOLDER = Ludovic Courtès
+COPYRIGHT_HOLDER = the authors of Guix (msgids)
 
-MSGID_BUGS_ADDRESS = ludo@gnu.org
+MSGID_BUGS_ADDRESS = bug-guix@gnu.org
 
 EXTRA_LOCALE_CATEGORIES =
 
diff --git a/po/guix/POTFILES.in b/po/guix/POTFILES.in
index f4d020782c..666e630adf 100644
--- a/po/guix/POTFILES.in
+++ b/po/guix/POTFILES.in
@@ -25,6 +25,7 @@ gnu/installer/newt/network.scm
 gnu/installer/newt/page.scm
 gnu/installer/newt/partition.scm
 gnu/installer/newt/services.scm
+gnu/installer/newt/substitutes.scm
 gnu/installer/newt/timezone.scm
 gnu/installer/newt/user.scm
 gnu/installer/newt/utils.scm
@@ -76,17 +77,40 @@ guix/scripts/weather.scm
 guix/scripts/describe.scm
 guix/scripts/processes.scm
 guix/scripts/deploy.scm
+guix/gexp.scm
 guix/gnu-maintenance.scm
 guix/scripts/container.scm
 guix/scripts/container/exec.scm
+guix/transformations.scm
 guix/upstream.scm
 guix/ui.scm
 guix/status.scm
 guix/http-client.scm
 guix/nar.scm
+guix/narinfo.scm
 guix/channels.scm
 guix/profiles.scm
 guix/git.scm
 guix/deprecation.scm
 guix/derivations.scm
+guix/scripts/archive.scm
+guix/scripts/build.scm
+guix/scripts/environment.scm
+guix/scripts/time-machine.scm
+guix/scripts/import/cpan.scm
+guix/scripts/import/crate.scm
+guix/scripts/import/gem.scm
+guix/scripts/import/gnu.scm
+guix/scripts/import/hackage.scm
+guix/scripts/import/json.scm
+guix/scripts/import/nix.scm
+guix/scripts/import/opam.scm
+guix/scripts/import/pypi.scm
+guix/scripts/import/stackage.scm
+guix/scripts/import/texlive.scm
+guix/scripts/offload.scm
+guix/scripts/perform-download.scm
+guix/scripts/refresh.scm
+guix/scripts/repl.scm
+guix/scripts/system/reconfigure.scm
 nix/nix-daemon/guix-daemon.cc
diff --git a/po/guix/de.po b/po/guix/de.po
index 51d501edcc..b95d896b16 100644
--- a/po/guix/de.po
+++ b/po/guix/de.po
@@ -1,15 +1,15 @@
 # German translation of guix.
-# Copyright (C) 2018-2020 the authors of Guix (msgids)
+# Copyright (C) 2012-2020 the authors of Guix (msgids)
 # This file is distributed under the same license as the guix package.
 # Mario Blättermann <mario.blaettermann@gmail.com>, 2014, 2015, 2016, 2018.
 # Florian Pelz <pelzflorian@pelzflorian.de>, 2018, 2019, 2020.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: guix 1.1.0-pre2\n"
-"Report-Msgid-Bugs-To: ludo@gnu.org\n"
-"POT-Creation-Date: 2020-04-09 18:27+0200\n"
-"PO-Revision-Date: 2020-04-11 20:33+0200\n"
+"Project-Id-Version: guix 1.2.0-pre3\n"
+"Report-Msgid-Bugs-To: bug-guix@gnu.org\n"
+"POT-Creation-Date: 2020-11-05 17:27+0100\n"
+"PO-Revision-Date: 2020-11-09 00:25+0100\n"
 "Last-Translator: Florian Pelz <pelzflorian@pelzflorian.de>\n"
 "Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
 "Language: de\n"
@@ -19,12 +19,12 @@ msgstr ""
 "X-Bugs: Report translation errors to the Language-Team address.\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: gnu.scm:83
+#: gnu.scm:81
 #, scheme-format
 msgid "module ~a not found"
 msgstr "Modul „~a“ nicht gefunden"
 
-#: gnu.scm:101
+#: gnu.scm:99
 msgid ""
 "You may use @command{guix package --show=foo | grep location} to search\n"
 "for the location of package @code{foo}.\n"
@@ -36,12 +36,12 @@ msgstr ""
 "Wenn Sie eine Ausgabe wie @code{location: gnu/packages/bar.scm:174:2}\n"
 "sehen, fügen Sie @code{bar} in Ihre @code{use-package-modules}-Form ein."
 
-#: gnu.scm:109
+#: gnu.scm:107
 #, scheme-format
 msgid "Try adding @code{(use-package-modules ~a)}."
 msgstr "Vielleicht sollten Sie @code{(use-package-modules ~a)} einfügen."
 
-#: gnu.scm:124
+#: gnu.scm:122
 #, scheme-format
 msgid ""
 "You may use @command{guix system search ~a} to search for a service\n"
@@ -54,7 +54,7 @@ msgstr ""
 "Wenn Sie eine Ausgabe wie @code{location: gnu/services/foo.scm:188:2} sehen,\n"
 "fügen Sie @code{foo} in Ihre @code{use-service-modules}-Form ein."
 
-#: gnu.scm:133
+#: gnu.scm:131
 #, scheme-format
 msgid "Try adding @code{(use-service-modules ~a)}."
 msgstr "Vielleicht sollten Sie @code{(use-service-modules ~a)} einfügen."
@@ -64,42 +64,42 @@ msgstr "Vielleicht sollten Sie @code{(use-service-modules ~a)} einfügen."
 msgid "~a: patch not found"
 msgstr "~a: Patch nicht gefunden"
 
-#: gnu/packages.scm:460 gnu/packages.scm:501
+#: gnu/packages.scm:480 gnu/packages.scm:521
 #, scheme-format
 msgid "ambiguous package specification `~a'~%"
 msgstr "Nicht eindeutige Paketangabe „~a“~%"
 
-#: gnu/packages.scm:461 gnu/packages.scm:502
+#: gnu/packages.scm:481 gnu/packages.scm:522
 #, scheme-format
 msgid "choosing ~a@~a from ~a~%"
 msgstr "Benutzt wird ~a@~a aus ~a~%"
 
-#: gnu/packages.scm:466 guix/scripts/package.scm:207
+#: gnu/packages.scm:486 guix/scripts/package.scm:211
 #, scheme-format
 msgid "package '~a' has been superseded by '~a'~%"
 msgstr "Paket „~a“ wurde abgelöst durch „~a“~%"
 
-#: gnu/packages.scm:473 gnu/packages.scm:490
+#: gnu/packages.scm:493 gnu/packages.scm:510
 #, scheme-format
 msgid "~A: package not found for version ~a~%"
 msgstr "~A: Paket nicht gefunden für Version ~a~%"
 
-#: gnu/packages.scm:474 gnu/packages.scm:491
+#: gnu/packages.scm:494 gnu/packages.scm:511
 #, scheme-format
 msgid "~A: unknown package~%"
 msgstr "~A: Unbekanntes Paket~%"
 
-#: gnu/packages.scm:530
+#: gnu/packages.scm:550
 #, scheme-format
 msgid "package `~a' lacks output `~a'~%"
 msgstr "Paket „~a“ fehlt die Ausgabe „~a“~%"
 
-#: gnu/services.scm:242
+#: gnu/services.scm:249
 #, scheme-format
 msgid "~a: no value specified for service of type '~a'"
 msgstr "~a: Kein Wert für Dienst von Typ „~a“"
 
-#: gnu/services.scm:341
+#: gnu/services.scm:347
 msgid ""
 "Build the operating system top-level directory, which in\n"
 "turn refers to everything the operating system needs: its kernel, initrd,\n"
@@ -109,7 +109,7 @@ msgstr ""
 "alles erweitert wird, was das Betriebssystem braucht: sein Kernel,\n"
 "Initrd, Systemprofil, Boot-Skript und so weiter."
 
-#: gnu/services.scm:371
+#: gnu/services.scm:377
 msgid ""
 "Produce the operating system's boot script, which is spawned\n"
 "by the initrd once the root file system is mounted."
@@ -117,7 +117,7 @@ msgstr ""
 "Das Boot-Skript des Betriebssystems erzeugen, welches vom Initrd\n"
 "gestartet wird, sobald das Wurzel-Dateisystem eingehängt wurde."
 
-#: gnu/services.scm:452
+#: gnu/services.scm:493
 msgid ""
 "Store provenance information about the system in the system\n"
 "itself: the channels used when building the system, and its configuration\n"
@@ -127,7 +127,7 @@ msgstr ""
 "d.h.@: die Kanäle, die zum Erstellen des Systems benutzt wurden, und\n"
 "falls verfügbar seine Konfigurationsdatei."
 
-#: gnu/services.scm:510
+#: gnu/services.scm:576
 msgid ""
 "Delete files from @file{/tmp}, @file{/var/run}, and other\n"
 "temporary locations at boot time."
@@ -135,7 +135,7 @@ msgstr ""
 "Dateien aus @file{/tmp}, @file{/var/run} und anderen temporären Orten\n"
 "zur Boot-Zeit löschen."
 
-#: gnu/services.scm:564
+#: gnu/services.scm:630
 msgid ""
 "Run @dfn{activation} code at boot time and upon\n"
 "@command{guix system reconfigure} completion."
@@ -143,7 +143,7 @@ msgstr ""
 "Den Aktivierungs-Code beim Hochfahren und nach jedem\n"
 "@command{guix system reconfigure} ausführen."
 
-#: gnu/services.scm:619
+#: gnu/services.scm:718
 msgid ""
 "Add special files to the root file system---e.g.,\n"
 "@file{/usr/bin/env}."
@@ -151,11 +151,16 @@ msgstr ""
 "Besondere Dateien zum Wurzel-Dateisystem hinzufügen,\n"
 "z.B. @file{/usr/bin/env}."
 
-#: gnu/services.scm:655
+#: gnu/services.scm:741
+#, scheme-format
+msgid "duplicate '~a' entry for /etc"
+msgstr "Doppelter Eintrag „~a“ für /etc"
+
+#: gnu/services.scm:769
 msgid "Populate the @file{/etc} directory."
 msgstr "Dateien ins @file{/etc}-Verzeichnis einfügen."
 
-#: gnu/services.scm:672
+#: gnu/services.scm:786
 msgid ""
 "Populate @file{/run/setuid-programs} with the specified\n"
 "executables, making them setuid-root."
@@ -163,7 +168,7 @@ msgstr ""
 "Die angegebenen ausführbaren Dateien ins Verzeichnis\n"
 "@file{/run/setuid-programs} einfügen und als setuid-root markieren."
 
-#: gnu/services.scm:692
+#: gnu/services.scm:806
 msgid ""
 "This is the @dfn{system profile}, available as\n"
 "@file{/run/current-system/profile}.  It contains packages that the sysadmin\n"
@@ -173,7 +178,7 @@ msgstr ""
 "verfügbar ist. Es enthält Pakete, die der Systemadministrator global\n"
 "für alle Systemnutzer verfügbar machen möchte."
 
-#: gnu/services.scm:712
+#: gnu/services.scm:826
 msgid ""
 "Make ``firmware'' files loadable by the operating system\n"
 "kernel.  Firmware may then be uploaded to some of the machine's devices, such\n"
@@ -183,7 +188,7 @@ msgstr ""
 "laden kann. Dann kann der Kernel die Firmware auf an die Maschine\n"
 "angeschlossene Geräte, z.B. WLAN-Karten, hochladen."
 
-#: gnu/services.scm:743
+#: gnu/services.scm:857
 msgid ""
 "Register garbage-collector roots---i.e., store items that\n"
 "will not be reclaimed by the garbage collector."
@@ -191,63 +196,91 @@ msgstr ""
 "Müllsammler-Wurzeln — d.h. Store-Objekte, die vom\n"
 "Müllsammler nicht gelöscht werden — registrieren."
 
-#: gnu/services.scm:769
+#: gnu/services.scm:883
 #, scheme-format
 msgid "no target of type '~a' for service '~a'"
 msgstr "Kein Ziel von Typ „~a“ für den Dienst „~a“"
 
-#: gnu/services.scm:795 gnu/services.scm:914
+#: gnu/services.scm:909 gnu/services.scm:1028
 #, scheme-format
 msgid "more than one target service of type '~a'"
 msgstr "Mehr als ein Ziel-Dienst von Typ „~a“"
 
-#: gnu/services.scm:904
+#: gnu/services.scm:1018
 #, scheme-format
 msgid "service of type '~a' not found"
 msgstr "Dienst des Typs „~a“ wurde nicht gefunden"
 
-#: gnu/system.scm:355
+#: gnu/system.scm:421
 #, scheme-format
 msgid "unrecognized boot parameters at '~a'~%"
 msgstr "Nicht erkannte Boot-Parameter für „~a“~%"
 
-#: gnu/system.scm:793
+#: gnu/system.scm:973
 #, scheme-format
 msgid "using a string for file '~a' is deprecated; use 'plain-file' instead~%"
 msgstr ""
 "Für „~a“ eine Zeichenkette zu benutzen ist\n"
 "veraltet, benutzen Sie „plain-file“~%"
 
-#: gnu/system.scm:809
+#: gnu/system.scm:989
 #, scheme-format
 msgid "using a monadic value for '~a' is deprecated; use 'plain-file' instead~%"
 msgstr ""
 "Für „~a“ einen monadischen Wert zu benutzen ist\n"
 "veraltet, benutzen Sie „plain-file“~%"
 
-#: gnu/system.scm:959
+#: gnu/system.scm:1116
+msgid "missing root file system"
+msgstr "Fehlendes Wurzeldateisystem"
+
+#: gnu/system.scm:1192
 #, scheme-format
 msgid "~a: invalid locale name"
 msgstr "~a: Ungültiger Locale-Name~%"
 
-#: gnu/services/shepherd.scm:194
+#: gnu/services/shepherd.scm:112
+msgid ""
+"Run the GNU Shepherd as PID 1---i.e., the operating system's first\n"
+"process.  The Shepherd takes care of managing services such as daemons by\n"
+"ensuring they are started and stopped in the right order."
+msgstr ""
+"GNU Shepherd mit PID 1 ausführen, d.h.@: als ersten Prozess des Betriebssystems.\n"
+"Shepherd verwaltet die Dienste, z.B.@: Daemons. Dabei stellt es sicher, dass\n"
+"sie in der richtigen Reihenfolge gestartet und gestoppt werden."
+
+#: gnu/services/shepherd.scm:202
 #, scheme-format
 msgid "service '~a' provided more than once"
 msgstr "Der Dienst „~a“ kommt mehr als einmal vor"
 
-#: gnu/services/shepherd.scm:209
+#: gnu/services/shepherd.scm:217
 #, scheme-format
 msgid "service '~a' requires '~a', which is not provided by any service"
 msgstr ""
 "Der Dienst „~a“ setzt „~a“ voraus,\n"
 "was von keinem Dienst angeboten wird."
 
-#: gnu/system/mapped-devices.scm:136
+#: gnu/services/shepherd.scm:547
+msgid ""
+"The @code{user-processes} service is responsible for\n"
+"terminating all the processes so that the root file system can be re-mounted\n"
+"read-only, just before rebooting/halting.  Processes still running after a few\n"
+"seconds after @code{SIGTERM} has been sent are terminated with\n"
+"@code{SIGKILL}."
+msgstr ""
+"Der Dienst @code{user-processes} kümmert sich darum, alle Prozesse zu beenden,\n"
+"damit das Wurzeldateisystem ohne Schreibrechte erneut eingebunden werden\n"
+"kann („Remount“), bevor ein Neustart oder Anhalten des Systems durchgeführt\n"
+"wird. Prozesse, die ein paar Sekunden nach @code{SIGTERM} immer noch laufen,\n"
+"werden mit @code{SIGKILL} abgewürgt."
+
+#: gnu/system/mapped-devices.scm:137
 #, scheme-format
 msgid "you may need these modules in the initrd for ~a:~{ ~a~}"
 msgstr "Sie könnten diese Module in der Initrd für ~a brauchen:~{ ~a~}"
 
-#: gnu/system/mapped-devices.scm:140
+#: gnu/system/mapped-devices.scm:142
 #, scheme-format
 msgid ""
 "Try adding them to the\n"
@@ -277,7 +310,7 @@ msgstr ""
 "Wenn Sie glauben, dass diese Warnung unberechtigt ist, können Sie auch\n"
 "Guix mit der Befehlszeilenoption @option{--skip-checks} aufrufen.\n"
 
-#: gnu/system/mapped-devices.scm:219
+#: gnu/system/mapped-devices.scm:221
 #, scheme-format
 msgid "no LUKS partition with UUID '~a'"
 msgstr "Keine LUKS-Partition mit UUID „~a“"
@@ -292,49 +325,57 @@ msgstr "Zusätzliche Gruppe „~a“ von Nutzer „~a“ wurde nicht deklariert"
 msgid "primary group '~a' of user '~a' is undeclared"
 msgstr "Primäre Gruppe „~a“ von Nutzer „~a“ wurde nicht deklariert"
 
-#: guix/import/opam.scm:141
+#: gnu/system/shadow.scm:383
+msgid ""
+"Ensure the specified user accounts and groups exist, as well\n"
+"as each account home directory."
+msgstr ""
+"Sicherstellen, dass die angegebenen Benutzerkonten und Gruppen existieren.\n"
+"Außerdem wird das Persönliche Verzeichnis jedes Kontos angelegt."
+
+#: guix/import/opam.scm:148
 #, scheme-format
 msgid "Package not found in opam repository: ~a~%"
 msgstr "Paket nicht in der OPAM-Paketsammlung gefunden: ~a~%"
 
-#: guix/import/opam.scm:357
+#: guix/import/opam.scm:368
 msgid "Updater for OPAM packages"
 msgstr "Aktualisierungsprogramm für OPAM-Pakete"
 
-#: gnu/installer.scm:215
+#: gnu/installer.scm:214
 msgid "Locale"
 msgstr "Locale"
 
-#: gnu/installer.scm:231 gnu/installer/newt/timezone.scm:58
+#: gnu/installer.scm:230 gnu/installer/newt/timezone.scm:58
 msgid "Timezone"
 msgstr "Zeitzone"
 
-#: gnu/installer.scm:248
+#: gnu/installer.scm:247
 msgid "Keyboard mapping selection"
 msgstr "Tastaturbelegung auswählen"
 
-#: gnu/installer.scm:257 gnu/installer/newt/hostname.scm:26
+#: gnu/installer.scm:256 gnu/installer/newt/hostname.scm:26
 msgid "Hostname"
 msgstr "Rechnername"
 
-#: gnu/installer.scm:266
+#: gnu/installer.scm:265
 msgid "Network selection"
 msgstr "Netzwerkanbindung auswählen"
 
-#: gnu/installer.scm:273 gnu/installer/newt/user.scm:68
+#: gnu/installer.scm:272 gnu/installer/newt/user.scm:68
 #: gnu/installer/newt/user.scm:205
 msgid "User creation"
 msgstr "Benutzerkonten einrichten"
 
-#: gnu/installer.scm:281
+#: gnu/installer.scm:280
 msgid "Services"
 msgstr "Dienste"
 
-#: gnu/installer.scm:292
+#: gnu/installer.scm:291
 msgid "Partitioning"
 msgstr "Partitionierung"
 
-#: gnu/installer.scm:299 gnu/installer/newt/final.scm:52
+#: gnu/installer.scm:298 gnu/installer/newt/final.scm:54
 msgid "Configuration file"
 msgstr "Konfigurationsdatei"
 
@@ -379,46 +420,46 @@ msgstr "Ethernet-Verbindung"
 #: gnu/installer/newt/locale.scm:43 gnu/installer/newt/network.scm:63
 #: gnu/installer/newt/network.scm:84 gnu/installer/newt/page.scm:303
 #: gnu/installer/newt/page.scm:666 gnu/installer/newt/page.scm:751
-#: gnu/installer/newt/partition.scm:55 gnu/installer/newt/partition.scm:84
-#: gnu/installer/newt/partition.scm:116 gnu/installer/newt/partition.scm:127
-#: gnu/installer/newt/partition.scm:624 gnu/installer/newt/partition.scm:645
-#: gnu/installer/newt/partition.scm:691 gnu/installer/newt/partition.scm:742
-#: gnu/installer/newt/partition.scm:753 gnu/installer/newt/services.scm:85
+#: gnu/installer/newt/partition.scm:56 gnu/installer/newt/partition.scm:91
+#: gnu/installer/newt/partition.scm:123 gnu/installer/newt/partition.scm:134
+#: gnu/installer/newt/partition.scm:631 gnu/installer/newt/partition.scm:652
+#: gnu/installer/newt/partition.scm:698 gnu/installer/newt/partition.scm:749
+#: gnu/installer/newt/partition.scm:760 gnu/installer/newt/services.scm:87
 #: gnu/installer/newt/timezone.scm:63 gnu/installer/newt/user.scm:204
 #: gnu/installer/newt/wifi.scm:205
 msgid "Exit"
 msgstr "Verlassen"
 
-#: gnu/installer/newt/final.scm:45
+#: gnu/installer/newt/final.scm:47
 #, scheme-format
 msgid "We're now ready to proceed with the installation! A system configuration file has been generated, it is displayed below.  This file will be available as '~a' on the installed system.  The new system will be created from this file once you've pressed OK.  This will take a few minutes."
 msgstr "Wir sind nun bereit, mit der Installation fortzufahren! Eine Systemkonfigurationsdatei wurde erzeugt und wird unten angezeigt. Diese Datei wird als „~a“ im installierten System verfügbar sein. Sobald Sie auf OK drücken, wird das neue System aus dieser Datei erstellt. Dies wird ein paar Minuten dauern."
 
-#: gnu/installer/newt/final.scm:69
+#: gnu/installer/newt/final.scm:71
 msgid "Installation complete"
 msgstr "Installation abgeschlossen"
 
-#: gnu/installer/newt/final.scm:70 gnu/installer/newt/welcome.scm:139
+#: gnu/installer/newt/final.scm:72 gnu/installer/newt/welcome.scm:139
 msgid "Reboot"
 msgstr "Neustart"
 
-#: gnu/installer/newt/final.scm:71
+#: gnu/installer/newt/final.scm:73
 msgid "Congratulations!  Installation is now complete.  You may remove the device containing the installation image and press the button to reboot."
 msgstr "Herzlichen Glückwunsch! Die Installation ist nun abgeschlossen. Sie können das Gerät, auf dem sich das Abbild zur Installation befindet, jetzt entfernen und diesen Knopf drücken, um neu zu starten."
 
-#: gnu/installer/newt/final.scm:85
+#: gnu/installer/newt/final.scm:87
 msgid "Installation failed"
 msgstr "Installation fehlgeschlagen"
 
-#: gnu/installer/newt/final.scm:86
+#: gnu/installer/newt/final.scm:88
 msgid "Resume"
 msgstr "Fortsetzen"
 
-#: gnu/installer/newt/final.scm:87
+#: gnu/installer/newt/final.scm:89
 msgid "Restart the installer"
 msgstr "Installationsprogramm neu starten"
 
-#: gnu/installer/newt/final.scm:88
+#: gnu/installer/newt/final.scm:90
 msgid "The final system installation step failed.  You can resume from a specific step, or restart the installer."
 msgstr "Der letzte Installationsschritt ist fehlgeschlagen. Sie können ab einem bestimmten Schritt weitermachen oder mit dem Installationsprogramm von vorne beginnen."
 
@@ -448,7 +489,7 @@ msgstr "Installationsparameter"
 
 #: gnu/installer/newt/parameters.scm:53 gnu/installer/newt/keymap.scm:74
 #: gnu/installer/newt/locale.scm:63 gnu/installer/newt/locale.scm:78
-#: gnu/installer/newt/locale.scm:94 gnu/installer/newt/partition.scm:581
+#: gnu/installer/newt/locale.scm:94 gnu/installer/newt/partition.scm:588
 #: gnu/installer/newt/timezone.scm:64
 msgid "Back"
 msgstr "Zurück"
@@ -585,9 +626,9 @@ msgid "Show"
 msgstr "Anzeigen"
 
 #: gnu/installer/newt/page.scm:219 gnu/installer/newt/page.scm:665
-#: gnu/installer/newt/page.scm:750 gnu/installer/newt/partition.scm:444
-#: gnu/installer/newt/partition.scm:623 gnu/installer/newt/partition.scm:644
-#: gnu/installer/newt/partition.scm:683 gnu/installer/newt/user.scm:66
+#: gnu/installer/newt/page.scm:750 gnu/installer/newt/partition.scm:451
+#: gnu/installer/newt/partition.scm:630 gnu/installer/newt/partition.scm:651
+#: gnu/installer/newt/partition.scm:690 gnu/installer/newt/user.scm:66
 #: gnu/installer/newt/user.scm:203
 msgid "OK"
 msgstr "OK"
@@ -604,204 +645,207 @@ msgstr "Leere Eingabe"
 msgid "Edit"
 msgstr "Bearbeiten"
 
-#: gnu/installer/newt/partition.scm:46
+#: gnu/installer/newt/partition.scm:47
 msgid "Everything is one partition"
 msgstr "Alles als eine Partition"
 
-#: gnu/installer/newt/partition.scm:47
+#: gnu/installer/newt/partition.scm:48
 msgid "Separate /home partition"
 msgstr "Separate /home-Partition"
 
-#: gnu/installer/newt/partition.scm:49
+#: gnu/installer/newt/partition.scm:50
 msgid "Please select a partitioning scheme."
 msgstr "Bitte wählen Sie, nach welchem Schema Partitionen angelegt werden sollen."
 
-#: gnu/installer/newt/partition.scm:50
+#: gnu/installer/newt/partition.scm:51
 msgid "Partition scheme"
 msgstr "Partitionierungsschema"
 
-#: gnu/installer/newt/partition.scm:62
-msgid "We are about to format your hard disk.  All its data will be lost.  Do you wish to continue?"
-msgstr "Wir werden nun Ihre Festplatte formatieren. Alle Daten darauf gehen verloren. Möchten Sie damit fortfahren?"
+#. TRANSLATORS: The ~{ and ~} format specifiers are used to iterate the list
+#. of device names of the user partitions that will be formatted.
+#: gnu/installer/newt/partition.scm:65
+#, scheme-format
+msgid "We are about to write the configured partition table to the disk and format the partitions listed below.  Their data will be lost.  Do you wish to continue?~%~{ - ~a~%~}"
+msgstr "Wir werden nun die eingerichtete Partitionstabelle auf den Datenträger schreiben und die unten aufgelisteten Partitionen formatieren. Alle Daten darauf gehen verloren. Möchten Sie damit fortfahren?~%~{ - ~a~%~}"
 
-#: gnu/installer/newt/partition.scm:64
+#: gnu/installer/newt/partition.scm:71
 msgid "Format disk?"
 msgstr "Datenträger formatieren?"
 
-#: gnu/installer/newt/partition.scm:67
+#: gnu/installer/newt/partition.scm:74
 msgid "Partition formatting is in progress, please wait."
 msgstr "Partition wird formatiert, bitte warten."
 
-#: gnu/installer/newt/partition.scm:68
+#: gnu/installer/newt/partition.scm:75
 msgid "Preparing partitions"
 msgstr "Bereite Partitionen vor"
 
-#: gnu/installer/newt/partition.scm:79
+#: gnu/installer/newt/partition.scm:86
 msgid "Please select a disk."
 msgstr "Bitte wählen Sie einen Datenträger aus."
 
-#: gnu/installer/newt/partition.scm:80
+#: gnu/installer/newt/partition.scm:87
 msgid "Disk"
 msgstr "Datenträger"
 
-#: gnu/installer/newt/partition.scm:92
+#: gnu/installer/newt/partition.scm:99
 msgid "Select a new partition table type. Be careful, all data on the disk will be lost."
 msgstr "Wählen Sie einen neuen Partitionstabellentyp. Seien Sie vorsichtig, alle Daten auf der Platte werden verloren gehen!"
 
-#: gnu/installer/newt/partition.scm:94
+#: gnu/installer/newt/partition.scm:101
 msgid "Partition table"
 msgstr "Partitionstabelle"
 
-#: gnu/installer/newt/partition.scm:111
+#: gnu/installer/newt/partition.scm:118
 msgid "Please select a partition type."
 msgstr "Bitte wählen Sie einen Partitionstyp aus."
 
-#: gnu/installer/newt/partition.scm:112
+#: gnu/installer/newt/partition.scm:119
 msgid "Partition type"
 msgstr "Partitionstyp"
 
-#: gnu/installer/newt/partition.scm:122
+#: gnu/installer/newt/partition.scm:129
 msgid "Please select the file-system type for this partition."
 msgstr "Bitte wählen Sie den Dateisystemtyp für diese Partition."
 
-#: gnu/installer/newt/partition.scm:123
+#: gnu/installer/newt/partition.scm:130
 msgid "File-system type"
 msgstr "Dateisystemtyp"
 
-#: gnu/installer/newt/partition.scm:136
+#: gnu/installer/newt/partition.scm:143
 msgid "Primary partitions count exceeded."
 msgstr "Maximalzahl primärer Partitionen überschritten."
 
-#: gnu/installer/newt/partition.scm:137 gnu/installer/newt/partition.scm:142
-#: gnu/installer/newt/partition.scm:147
+#: gnu/installer/newt/partition.scm:144 gnu/installer/newt/partition.scm:149
+#: gnu/installer/newt/partition.scm:154
 msgid "Creation error"
 msgstr "Fehler beim Erzeugen"
 
-#: gnu/installer/newt/partition.scm:141
+#: gnu/installer/newt/partition.scm:148
 msgid "Extended partition creation error."
 msgstr "Fehler beim Erzeugen einer erweiterten Partition."
 
-#: gnu/installer/newt/partition.scm:146
+#: gnu/installer/newt/partition.scm:153
 msgid "Logical partition creation error."
 msgstr "Fehler beim Erzeugen einer logischen Partition."
 
-#: gnu/installer/newt/partition.scm:160
+#: gnu/installer/newt/partition.scm:167
 #, scheme-format
 msgid "Please enter the password for the encryption of partition ~a (label: ~a)."
 msgstr "Bitte geben Sie das Passwort zur Verschlüsselung von Partition ~a an (Name: ~a)."
 
-#: gnu/installer/newt/partition.scm:162 gnu/installer/newt/wifi.scm:92
+#: gnu/installer/newt/partition.scm:169 gnu/installer/newt/wifi.scm:92
 msgid "Password required"
 msgstr "Passwort erforderlich"
 
-#: gnu/installer/newt/partition.scm:167
+#: gnu/installer/newt/partition.scm:174
 #, scheme-format
 msgid "Please confirm the password for the encryption of partition ~a (label: ~a)."
 msgstr "Bitte bestätigen Sie das Passwort zur Verschlüsselung von Partition ~a (Name: ~a)."
 
-#: gnu/installer/newt/partition.scm:169 gnu/installer/newt/user.scm:160
+#: gnu/installer/newt/partition.scm:176 gnu/installer/newt/user.scm:160
 msgid "Password confirmation required"
 msgstr "Bestätigung des Passworts erforderlich"
 
-#: gnu/installer/newt/partition.scm:181 gnu/installer/newt/user.scm:168
+#: gnu/installer/newt/partition.scm:188 gnu/installer/newt/user.scm:168
 msgid "Password mismatch, please try again."
 msgstr "Die Passwörter stimmen nicht überein, bitte versuchen Sie es erneut."
 
-#: gnu/installer/newt/partition.scm:182 gnu/installer/newt/user.scm:169
+#: gnu/installer/newt/partition.scm:189 gnu/installer/newt/user.scm:169
 msgid "Password error"
 msgstr "Passwortfehler"
 
-#: gnu/installer/newt/partition.scm:268
+#: gnu/installer/newt/partition.scm:275
 msgid "Please enter the partition gpt name."
 msgstr "Bitte geben Sie den GPT-Namen der Partition ein."
 
-#: gnu/installer/newt/partition.scm:269
+#: gnu/installer/newt/partition.scm:276
 msgid "Partition name"
 msgstr "Partitionsname"
 
-#: gnu/installer/newt/partition.scm:299
+#: gnu/installer/newt/partition.scm:306
 msgid "Please enter the encrypted label"
 msgstr "Bitte geben Sie ein, welchen Namen das Gerät mit Verschlüsselung tragen soll."
 
-#: gnu/installer/newt/partition.scm:300
+#: gnu/installer/newt/partition.scm:307
 msgid "Encryption label"
 msgstr "Name mit Verschlüsselung"
 
-#: gnu/installer/newt/partition.scm:317
+#: gnu/installer/newt/partition.scm:324
 #, scheme-format
 msgid "Please enter the size of the partition. The maximum size is ~a."
 msgstr "Bitte geben Sie die Größe der Partition ein. Die Maximalgröße ist ~a."
 
-#: gnu/installer/newt/partition.scm:319
+#: gnu/installer/newt/partition.scm:326
 msgid "Partition size"
 msgstr "Partitionsgröße"
 
-#: gnu/installer/newt/partition.scm:337
+#: gnu/installer/newt/partition.scm:344
 msgid "The percentage can not be superior to 100."
 msgstr "Der Prozentwert kann nicht größer als 100 sein."
 
-#: gnu/installer/newt/partition.scm:338 gnu/installer/newt/partition.scm:343
-#: gnu/installer/newt/partition.scm:348
+#: gnu/installer/newt/partition.scm:345 gnu/installer/newt/partition.scm:350
+#: gnu/installer/newt/partition.scm:355
 msgid "Size error"
 msgstr "Größenfehler"
 
-#: gnu/installer/newt/partition.scm:342
+#: gnu/installer/newt/partition.scm:349
 msgid "The requested size is incorrectly formatted, or too large."
 msgstr "Die angeforderte Größe wurde falsch geschrieben oder ist zu groß."
 
-#: gnu/installer/newt/partition.scm:347
+#: gnu/installer/newt/partition.scm:354
 msgid "The request size is superior to the maximum size."
 msgstr "Die angeforderte Größe ist größer als die Maximalgröße."
 
-#: gnu/installer/newt/partition.scm:367
+#: gnu/installer/newt/partition.scm:374
 msgid "Please enter the desired mounting point for this partition. Leave this field empty if you don't want to set a mounting point."
 msgstr "Bitte geben Sie den gewünschten Einhängepunkt für diese Partition ein. Lassen Sie das Feld leer, wenn Sie keinen Einhängepunkt festlegen möchten."
 
-#: gnu/installer/newt/partition.scm:369
+#: gnu/installer/newt/partition.scm:376
 msgid "Mounting point"
 msgstr "Einhängepunkt"
 
-#: gnu/installer/newt/partition.scm:433
+#: gnu/installer/newt/partition.scm:440
 #, scheme-format
 msgid "Creating ~a partition starting at ~a of ~a."
 msgstr "Erzeuge Partition ~a mit Anfang bei ~a von ~a."
 
-#: gnu/installer/newt/partition.scm:435
+#: gnu/installer/newt/partition.scm:442
 #, scheme-format
 msgid "You are currently editing partition ~a."
-msgstr "Sie bearbeiten zur Zeit Partition ~a."
+msgstr "Sie bearbeiten zurzeit Partition ~a."
 
-#: gnu/installer/newt/partition.scm:438
+#: gnu/installer/newt/partition.scm:445
 msgid "Partition creation"
 msgstr "Partition erzeugen"
 
-#: gnu/installer/newt/partition.scm:439
+#: gnu/installer/newt/partition.scm:446
 msgid "Partition edit"
 msgstr "Partition bearbeiten"
 
-#: gnu/installer/newt/partition.scm:620
+#: gnu/installer/newt/partition.scm:627
 #, scheme-format
 msgid "Are you sure you want to delete everything on disk ~a?"
 msgstr "Sind Sie sicher, dass Sie den gesamten Inhalt von Datenträger ~a löschen möchten?"
 
-#: gnu/installer/newt/partition.scm:622
+#: gnu/installer/newt/partition.scm:629
 msgid "Delete disk"
 msgstr "Datenträger löschen"
 
-#: gnu/installer/newt/partition.scm:636
+#: gnu/installer/newt/partition.scm:643
 msgid "You cannot delete a free space area."
 msgstr "Sie können keinen leeren Speicher löschen."
 
-#: gnu/installer/newt/partition.scm:637 gnu/installer/newt/partition.scm:643
+#: gnu/installer/newt/partition.scm:644 gnu/installer/newt/partition.scm:650
 msgid "Delete partition"
 msgstr "Partition löschen"
 
-#: gnu/installer/newt/partition.scm:641
+#: gnu/installer/newt/partition.scm:648
 #, scheme-format
 msgid "Are you sure you want to delete partition ~a?"
 msgstr "Sind Sie sich sicher, dass Sie Partition ~a löschen möchten?"
 
-#: gnu/installer/newt/partition.scm:658
+#: gnu/installer/newt/partition.scm:665
 msgid ""
 "You can change a disk's partition table by selecting it and pressing ENTER. You can also edit a partition by selecting it and pressing ENTER, or remove it by pressing DELETE. To create a new partition, select a free space area and press ENTER.\n"
 "\n"
@@ -811,68 +855,68 @@ msgstr ""
 "\n"
 "Mindestens eine Partition muss als Einhängepunkt „/“ haben."
 
-#: gnu/installer/newt/partition.scm:664
+#: gnu/installer/newt/partition.scm:671
 #, scheme-format
 msgid "This is the proposed partitioning. It is still possible to edit it or to go back to install menu by pressing the Exit button.~%~%"
 msgstr "Dies ist die vorgeschlagene Partitionierung. Sie können sie noch ändern oder zum Installationsmenü zurückkehren, indem Sie den Verlassen-Knopf drücken.~%~%"
 
-#: gnu/installer/newt/partition.scm:674
+#: gnu/installer/newt/partition.scm:681
 msgid "Guided partitioning"
 msgstr "Geführte Partitionierung"
 
-#: gnu/installer/newt/partition.scm:675
+#: gnu/installer/newt/partition.scm:682
 msgid "Manual partitioning"
 msgstr "Manuelle Partitionierung"
 
-#: gnu/installer/newt/partition.scm:700
+#: gnu/installer/newt/partition.scm:707
 msgid "No root mount point found."
 msgstr "Kein Einhängepunkt für das Wurzeldateisystem gefunden."
 
-#: gnu/installer/newt/partition.scm:701
+#: gnu/installer/newt/partition.scm:708
 msgid "Missing mount point"
 msgstr "Fehlender Einhängepunkt"
 
-#: gnu/installer/newt/partition.scm:732
+#: gnu/installer/newt/partition.scm:739
 msgid "Guided - using the entire disk"
 msgstr "Geführt — nutzt den gesamten Datenträger"
 
-#: gnu/installer/newt/partition.scm:733
+#: gnu/installer/newt/partition.scm:740
 msgid "Guided - using the entire disk with encryption"
 msgstr "Geführt — auf gesamtem Datenträger, verschlüsselt"
 
-#: gnu/installer/newt/partition.scm:734
+#: gnu/installer/newt/partition.scm:741
 msgid "Manual"
 msgstr "Manuell"
 
-#: gnu/installer/newt/partition.scm:736
+#: gnu/installer/newt/partition.scm:743
 msgid "Please select a partitioning method."
 msgstr "Bitte wählen Sie, nach welcher Methode Sie partitionieren möchten."
 
-#: gnu/installer/newt/partition.scm:737
+#: gnu/installer/newt/partition.scm:744
 msgid "Partitioning method"
 msgstr "Partitionierungsmethode"
 
-#: gnu/installer/newt/services.scm:36
+#: gnu/installer/newt/services.scm:37
 msgid "Please select the desktop(s) environment(s) you wish to install. If you select multiple desktops environments, you will be able to choose the one to use on the log-in screen."
 msgstr "Bitte wählen Sie aus, welche Arbeitsumgebung(en) installiert werden soll(en). Wenn Sie mehrere Arbeitsumgebungen auswählen, können Sie später im Anmeldebildschirm auswählen, welche Sie benutzen möchten."
 
-#: gnu/installer/newt/services.scm:39
+#: gnu/installer/newt/services.scm:40
 msgid "Desktop environment"
 msgstr "Arbeitsumgebung"
 
-#: gnu/installer/newt/services.scm:56
+#: gnu/installer/newt/services.scm:57
 msgid "You can now select networking services to run on your system."
 msgstr "Sie können jetzt Netzwerkdienste auswählen, die auf Ihrem System laufen sollen."
 
-#: gnu/installer/newt/services.scm:58
+#: gnu/installer/newt/services.scm:59
 msgid "Network service"
 msgstr "Netzwerkdienst"
 
-#: gnu/installer/newt/services.scm:71
+#: gnu/installer/newt/services.scm:72
 msgid "Network management"
 msgstr "Netzwerkverwaltung"
 
-#: gnu/installer/newt/services.scm:74
+#: gnu/installer/newt/services.scm:75
 msgid ""
 "Choose the method to manage network connections.\n"
 "\n"
@@ -1012,36 +1056,85 @@ msgstr "Kein WLAN gefunden"
 msgid "Wifi"
 msgstr "WLAN"
 
-#: gnu/installer/parted.scm:395 gnu/installer/parted.scm:432
+#: gnu/installer/parted.scm:404 gnu/installer/parted.scm:441
 msgid "Free space"
 msgstr "Freier Speicher"
 
-#: gnu/installer/parted.scm:1350
+#: gnu/installer/parted.scm:530
+#, scheme-format
+msgid "Name: ~a"
+msgstr "Name: ~a"
+
+#: gnu/installer/parted.scm:531 gnu/installer/parted.scm:577
+msgid "None"
+msgstr "Keiner"
+
+#: gnu/installer/parted.scm:536
+#, scheme-format
+msgid "Type: ~a"
+msgstr "Typ: ~a"
+
+#: gnu/installer/parted.scm:540
+#, scheme-format
+msgid "File system type: ~a"
+msgstr "Dateisystemtyp: ~a"
+
+#: gnu/installer/parted.scm:546
+#, scheme-format
+msgid "Bootable flag: ~:[off~;on~]"
+msgstr "Bootfähig-Flag: ~:[aus~;an~]"
+
+#: gnu/installer/parted.scm:550
+#, scheme-format
+msgid "ESP flag: ~:[off~;on~]"
+msgstr "ESP-Flag: ~:[aus~;an~]"
+
+#: gnu/installer/parted.scm:556
+#, scheme-format
+msgid "Size: ~a"
+msgstr "Größe: ~a"
+
+#: gnu/installer/parted.scm:562
+#, scheme-format
+msgid "Encryption: ~:[No~a~;Yes (label '~a')~]"
+msgstr "Verschlüsselt: ~:[Nein~a~;Ja (Bezeichnung '~a')~]"
+
+#: gnu/installer/parted.scm:568
+#, scheme-format
+msgid "Format the partition? ~:[No~;Yes~]"
+msgstr "Partition formatieren? ~:[Nein~;Ja~]"
+
+#: gnu/installer/parted.scm:574
+#, scheme-format
+msgid "Mount point: ~a"
+msgstr "Einhängepunkt: ~a"
+
+#: gnu/installer/parted.scm:1374
 #, scheme-format
 msgid "Device ~a is still in use."
 msgstr "Gerät ~a wird noch verwendet."
 
-#: gnu/installer/services.scm:88
+#: gnu/installer/services.scm:94
 msgid "OpenSSH secure shell daemon (sshd)"
 msgstr "OpenSSH-Secure-Shell-Daemon (sshd)"
 
-#: gnu/installer/services.scm:92
+#: gnu/installer/services.scm:98
 msgid "Tor anonymous network router"
 msgstr "Tor-Dienst für anonyme Netzwerkrouten"
 
-#: gnu/installer/services.scm:96
+#: gnu/installer/services.scm:102
 msgid "Mozilla NSS certificates, for HTTPS access"
 msgstr "NSS-Zertifikate von Mozilla, für HTTPS-Zugriffe"
 
-#: gnu/installer/services.scm:103
+#: gnu/installer/services.scm:109
 msgid "NetworkManager network connection manager"
 msgstr "NetworkManager zur Netzwerkverwaltung"
 
-#: gnu/installer/services.scm:108
+#: gnu/installer/services.scm:114
 msgid "Connman network connection manager"
 msgstr "Connman-Dienst zur Netzwerkverwaltung"
 
-#: gnu/installer/services.scm:113
+#: gnu/installer/services.scm:119
 msgid "DHCP client (dynamic IP address assignment)"
 msgstr "DHCP-Client (dynamische IP-Adressenzuweisung)"
 
@@ -1055,22 +1148,22 @@ msgstr "Pfad konnte nicht gefunden werden: ~a."
 msgid "Press Enter to continue.~%"
 msgstr "Drücken Sie die Eingabetaste, um fortzufahren.~%"
 
-#: gnu/installer/utils.scm:101
+#: gnu/installer/utils.scm:102
 #, scheme-format
 msgid "Command failed with exit code ~a.~%"
 msgstr "Befehl fehlgeschlagen mit Exit-Code ~a.~%"
 
-#: gnu/machine/ssh.scm:108
+#: gnu/machine/ssh.scm:113
 #, scheme-format
 msgid "<machine-ssh-configuration> without a 'host-key' is deprecated~%"
 msgstr "<machine-ssh-configuration> ohne „host-key“ ist veraltet~%"
 
-#: gnu/machine/ssh.scm:183
+#: gnu/machine/ssh.scm:188
 #, scheme-format
 msgid "device '~a' not found: ~a"
-msgstr "Gerät „~a“ nicht gefunden: ~a~%"
+msgstr "Gerät „~a“ nicht gefunden: ~a"
 
-#: gnu/machine/ssh.scm:200
+#: gnu/machine/ssh.scm:203
 #, scheme-format
 msgid "no file system with label '~a'"
 msgstr "Kein Dateisystem mit Bezeichnung „~a“"
@@ -1085,21 +1178,21 @@ msgstr "Kein Dateisystem mit UUID „~a“"
 msgid "missing modules for ~a:~{ ~a~}~%"
 msgstr "Fehlende Module für ~a:~{ ~a~}~%"
 
-#: gnu/machine/ssh.scm:290
+#: gnu/machine/ssh.scm:309
 #, scheme-format
 msgid "incorrect target system ('~a' was given, while the system reports that it is '~a')~%"
 msgstr "Falsches Zielsystem (angegeben wurde „~a“, aber es wird gemeldet, das System sei „~a“)~%"
 
-#: gnu/machine/ssh.scm:407
+#: gnu/machine/ssh.scm:425
 #, scheme-format
 msgid "no signing key '~a'. have you run 'guix archive --generate-key?'"
 msgstr "Kein signierender Schlüssel „~a“ liegt vor. Haben Sie „guix archive --generate-key“ ausgeführt?"
 
-#: gnu/machine/ssh.scm:458
+#: gnu/machine/ssh.scm:476
 msgid "could not roll-back machine"
 msgstr "Konnte Maschine nicht zurücksetzen"
 
-#: gnu/machine/ssh.scm:490
+#: gnu/machine/ssh.scm:514
 msgid ""
 "Provisioning for machines that are accessible over SSH\n"
 "and have a known host-name. This entails little more than maintaining an SSH\n"
@@ -1109,7 +1202,7 @@ msgstr ""
 "setzt kaum mehr voraus, als dass eine SSH-Verbindung zum Rechner\n"
 "aufrechterhalten werden kann."
 
-#: gnu/machine/ssh.scm:502
+#: gnu/machine/ssh.scm:524
 #, scheme-format
 msgid ""
 "unsupported machine configuration '~a'\n"
@@ -1118,46 +1211,86 @@ msgstr ""
 "Nicht unterstützte Maschinenkonfiguration „~a“\n"
 "für eine Umgebung des Typs „~a“"
 
-#: gnu/packages/bootstrap.scm:137
+#: gnu/packages/bootstrap.scm:152
 #, scheme-format
 msgid "could not find bootstrap binary '~a' for system '~a'"
 msgstr "Die Bootstrap-Binärdatei „~a“ für System „~a“ konnte nicht gefunden werden"
 
-#: gnu/packages/bootstrap.scm:436
+#: gnu/packages/bootstrap.scm:459
 msgid "Raw build system with direct store access"
 msgstr "Rohes Erstellungssystem mit direktem Store-Zugriff"
 
-#: gnu/packages/bootstrap.scm:444
+#: gnu/packages/bootstrap.scm:466
+msgid "Bootstrap Guile"
+msgstr "Bootstrap-Guile"
+
+#: gnu/packages/bootstrap.scm:467
 msgid "Pre-built Guile for bootstrapping purposes."
 msgstr "Vorerstelltes Guile für Bootstrapping-Zwecke."
 
-#: guix/build/utils.scm:713
+#: gnu/packages/bootstrap.scm:650
+msgid "Bootstrap binaries and headers of the GNU C Library"
+msgstr "Bootstrapping-Binärdateien und Header der GNU-C-Bibliothek"
+
+#: gnu/packages/bootstrap.scm:748
+msgid "Bootstrap binaries of the GNU Compiler Collection"
+msgstr "Bootstrapping-Binärdateien der GNU Compiler Collection"
+
+#: gnu/packages/bootstrap.scm:796
+msgid "Bootstrap binaries of MesCC Tools"
+msgstr "Bootstrapping-Binärdateien der MesCC Tools"
+
+#: gnu/packages/bootstrap.scm:846
+msgid "Bootstrap binaries of Mes"
+msgstr "Bootstrapping-Binärdateien von Mes"
+
+#: guix/build/utils.scm:715
 #, scheme-format
 msgid "'~a~{ ~a~}' exited with status ~a; output follows:~%~%~{  ~a~%~}"
 msgstr "„~a~{ ~a~}“ hat terminiert mit Status ~a, die Ausgabe ist Folgende:~%~%~{  ~a~%~}"
 
-#: guix/scripts.scm:61
+#: guix/scripts.scm:85
+msgid "main commands"
+msgstr "hauptsächliche Befehle"
+
+#: guix/scripts.scm:86
+msgid "software development commands"
+msgstr "Befehle zur Software-Entwicklung"
+
+#: guix/scripts.scm:87
+msgid "packaging commands"
+msgstr "Befehle zur Paketverwaltung"
+
+#: guix/scripts.scm:88
+msgid "plumbing commands"
+msgstr "Befehle zum Aufräumen"
+
+#: guix/scripts.scm:89
+msgid "internal commands"
+msgstr "interne Befehle"
+
+#: guix/scripts.scm:122
 #, scheme-format
 msgid "invalid argument: ~a~%"
 msgstr "Ungültiges Argument: ~a~%"
 
-#: guix/scripts.scm:89 guix/scripts/download.scm:150
-#: guix/scripts/search.scm:69 guix/scripts/show.scm:69
+#: guix/scripts.scm:150 guix/scripts/download.scm:167
+#: guix/scripts/search.scm:71 guix/scripts/show.scm:71
 #: guix/scripts/import/cran.scm:84 guix/scripts/import/elpa.scm:84
-#: guix/scripts/publish.scm:1020 guix/scripts/edit.scm:87
-#: guix/scripts/describe.scm:258 guix/scripts/processes.scm:230
+#: guix/scripts/publish.scm:1088 guix/scripts/edit.scm:89
+#: guix/scripts/describe.scm:311 guix/scripts/processes.scm:232
 #, scheme-format
 msgid "~A: unrecognized option~%"
 msgstr "~A: Nicht erkannte Option~%"
 
-#: guix/scripts.scm:172
+#: guix/scripts.scm:233
 #, scheme-format
 msgid "Your Guix installation is ~a day old.\n"
 msgid_plural "Your Guix installation is ~a days old.\n"
 msgstr[0] "Ihre Guix-Installation ist ~a Tag alt.\n"
 msgstr[1] "Ihre Guix-Installation ist ~a Tage alt.\n"
 
-#: guix/scripts.scm:178
+#: guix/scripts.scm:239
 #, scheme-format
 msgid ""
 "Consider running 'guix pull' followed by\n"
@@ -1166,12 +1299,12 @@ msgstr ""
 "Vielleicht wollen Sie „guix pull“ ausführen vor „~a“, um\n"
 "aktuelle Pakete und Sicherheitsaktualisierungen zu bekommen.\n"
 
-#: guix/scripts.scm:242
+#: guix/scripts.scm:303
 #, scheme-format
 msgid "only ~,1f GiB of free space available on ~a~%"
 msgstr "Nur ~,1f GiB freier Speicher unter ~a verfügbar~%"
 
-#: guix/scripts.scm:244
+#: guix/scripts.scm:305
 msgid ""
 "Consider deleting old profile\n"
 "generations and collecting garbage, along these lines:\n"
@@ -1187,101 +1320,19 @@ msgstr ""
 "guix gc --delete-generations=1m\n"
 "@end example\n"
 
-#: guix/scripts/build.scm:88
+#: guix/scripts/build.scm:83
 #, scheme-format
 msgid "cannot access build log at '~a':~%"
 msgstr "Auf Erstellungsprotokoll auf „~a“ kann nicht zugegriffen werden:~%"
 
-#: guix/scripts/build.scm:142
+#: guix/scripts/build.scm:137
 #, scheme-format
 msgid "failed to create GC root `~a': ~a~%"
 msgstr "Müllsammler-Wurzel „~a“ konnte nicht erzeugt werden: ~a~%"
 
-#: guix/scripts/build.scm:247 guix/scripts/build.scm:312
-#, scheme-format
-msgid "invalid replacement specification: ~s~%"
-msgstr "Ungültige Ersatzspezifikation: ~s~%"
-
-#: guix/scripts/build.scm:294
-#, scheme-format
-msgid "the source of ~a is not a Git reference~%"
-msgstr "Die Quelle von ~a ist keine Git-Referenz~%"
-
-#: guix/scripts/build.scm:382
-#, scheme-format
-msgid "~a: invalid Git URL replacement specification~%"
-msgstr "~a: Ungültige Git-URL-Ersatzspezifikation~%"
-
-#: guix/scripts/build.scm:427
-msgid ""
-"\n"
-"      --with-source=SOURCE\n"
-"                         use SOURCE when building the corresponding package"
-msgstr ""
-"\n"
-"      --with-source=QUELLE\n"
-"                         beim Erstellen des entsprechenden Pakets QUELLE\n"
-"                           benutzen"
-
-#: guix/scripts/build.scm:430
-msgid ""
-"\n"
-"      --with-input=PACKAGE=REPLACEMENT\n"
-"                         replace dependency PACKAGE by REPLACEMENT"
-msgstr ""
-"\n"
-"      --with-input=PAKET=ERSATZ\n"
-"                         Abhängigkeit PAKET durch ERSATZ ersetzen"
-
-#: guix/scripts/build.scm:433
-msgid ""
-"\n"
-"      --with-graft=PACKAGE=REPLACEMENT\n"
-"                         graft REPLACEMENT on packages that refer to PACKAGE"
-msgstr ""
-"\n"
-"      --with-graft=PAKET=ERSATZ\n"
-"                         mit ERSATZ jedes PAKET referenzierende Paket veredeln"
-
-#: guix/scripts/build.scm:436
-msgid ""
-"\n"
-"      --with-branch=PACKAGE=BRANCH\n"
-"                         build PACKAGE from the latest commit of BRANCH"
-msgstr ""
-"\n"
-"      --with-branch=PAKET=BRANCH\n"
-"                         das PAKET aus dem neusten Commit auf BRANCH erstellen"
-
-#: guix/scripts/build.scm:439
-msgid ""
-"\n"
-"      --with-commit=PACKAGE=COMMIT\n"
-"                         build PACKAGE from COMMIT"
-msgstr ""
-"\n"
-"      --with-commit=PAKET=COMMIT\n"
-"                         den angegebenen COMMIT des PAKETs erstellen"
-
-#: guix/scripts/build.scm:442
-msgid ""
-"\n"
-"      --with-git-url=PACKAGE=URL\n"
-"                         build PACKAGE from the repository at URL"
-msgstr ""
-"\n"
-"      --with-git-url=PAKET=URL\n"
-"                         das PAKET aus dem von der URL bezeichneten Repoository\n"
-"                           erstellen"
-
-#: guix/scripts/build.scm:473
-#, scheme-format
-msgid "transformation '~a' had no effect on ~a~%"
-msgstr "Transformation „~a“ wirkte sich nicht aus auf ~a~%"
-
-#: guix/scripts/build.scm:491 guix/scripts/search.scm:41
-#: guix/scripts/show.scm:41 guix/scripts/lint.scm:101 guix/scripts/edit.scm:48
-#: guix/scripts/size.scm:246 guix/scripts/graph.scm:509
+#: guix/scripts/build.scm:152 guix/scripts/search.scm:41
+#: guix/scripts/show.scm:41 guix/scripts/lint.scm:107 guix/scripts/edit.scm:48
+#: guix/scripts/size.scm:246 guix/scripts/graph.scm:546
 msgid ""
 "\n"
 "  -L, --load-path=DIR    prepend DIR to the package module search path"
@@ -1290,7 +1341,7 @@ msgstr ""
 "  -L, --load-path=VERZEICHNIS\n"
 "                         VERZEICHNIS vorne an den Paketmodulsuchpfad anhängen"
 
-#: guix/scripts/build.scm:493
+#: guix/scripts/build.scm:154
 msgid ""
 "\n"
 "  -K, --keep-failed      keep build tree of failed builds"
@@ -1299,7 +1350,7 @@ msgstr ""
 "  -K, --keep-failed      Verzeichnisse zum Erstellen nach fehlgeschlagener\n"
 "                           Erstellung behalten"
 
-#: guix/scripts/build.scm:495
+#: guix/scripts/build.scm:156
 msgid ""
 "\n"
 "  -k, --keep-going       keep going when some of the derivations fail"
@@ -1307,7 +1358,7 @@ msgstr ""
 "\n"
 "  -k, --keep-going       weitermachen, wenn manche Ableitungen fehlschlagen"
 
-#: guix/scripts/build.scm:497
+#: guix/scripts/build.scm:158
 msgid ""
 "\n"
 "  -n, --dry-run          do not build the derivations"
@@ -1315,7 +1366,7 @@ msgstr ""
 "\n"
 "  -n, --dry-run          die Ableitungen nicht erstellen"
 
-#: guix/scripts/build.scm:499
+#: guix/scripts/build.scm:160
 msgid ""
 "\n"
 "      --fallback         fall back to building when the substituter fails"
@@ -1324,7 +1375,7 @@ msgstr ""
 "      --fallback         notfalls selbst erstellen, wenn der Substituierer\n"
 "                           fehlschlägt"
 
-#: guix/scripts/build.scm:501
+#: guix/scripts/build.scm:162
 msgid ""
 "\n"
 "      --no-substitutes   build instead of resorting to pre-built substitutes"
@@ -1333,7 +1384,7 @@ msgstr ""
 "      --no-substitutes   selbst erstellen, statt vorgefertigte Substitute zu\n"
 "                           benutzen"
 
-#: guix/scripts/build.scm:503 guix/scripts/size.scm:235
+#: guix/scripts/build.scm:164 guix/scripts/size.scm:235
 msgid ""
 "\n"
 "      --substitute-urls=URLS\n"
@@ -1343,7 +1394,7 @@ msgstr ""
 "      --substitute-urls=URLS\n"
 "                         Substitute von URLS laden, wenn sie autorisiert sind"
 
-#: guix/scripts/build.scm:506
+#: guix/scripts/build.scm:167
 msgid ""
 "\n"
 "      --no-grafts        do not graft packages"
@@ -1351,7 +1402,7 @@ msgstr ""
 "\n"
 "      --no-grafts        Pakete nicht veredeln"
 
-#: guix/scripts/build.scm:508
+#: guix/scripts/build.scm:169
 msgid ""
 "\n"
 "      --no-offload       do not attempt to offload builds"
@@ -1359,7 +1410,7 @@ msgstr ""
 "\n"
 "      --no-offload       nicht versuchen, Erstellungen auszulagern"
 
-#: guix/scripts/build.scm:510
+#: guix/scripts/build.scm:171
 msgid ""
 "\n"
 "      --max-silent-time=SECONDS\n"
@@ -1370,7 +1421,7 @@ msgstr ""
 "                         das Erstellen als Fehlschlag markieren nach\n"
 "                           SEKUNDEN-langer Stille"
 
-#: guix/scripts/build.scm:513
+#: guix/scripts/build.scm:174
 msgid ""
 "\n"
 "      --timeout=SECONDS  mark the build as failed after SECONDS of activity"
@@ -1380,7 +1431,7 @@ msgstr ""
 "                         das Erstellen als Fehlschlag markieren nach\n"
 "                           SEKUNDEN-langer Aktivität"
 
-#: guix/scripts/build.scm:515
+#: guix/scripts/build.scm:176
 msgid ""
 "\n"
 "      --rounds=N         build N times in a row to detect non-determinism"
@@ -1389,7 +1440,7 @@ msgstr ""
 "      --rounds=N         N-mal nacheinander erstellen, um Nichtdeterminismus\n"
 "                           festzustellen"
 
-#: guix/scripts/build.scm:517
+#: guix/scripts/build.scm:178
 msgid ""
 "\n"
 "  -c, --cores=N          allow the use of up to N CPU cores for the build"
@@ -1397,7 +1448,7 @@ msgstr ""
 "\n"
 "  -c, --cores=N          bis zu N Prozessorkerne für die Erstellung nutzen"
 
-#: guix/scripts/build.scm:519
+#: guix/scripts/build.scm:180
 msgid ""
 "\n"
 "  -M, --max-jobs=N       allow at most N build jobs"
@@ -1405,7 +1456,16 @@ msgstr ""
 "\n"
 "  -M, --max-jobs=N       höchstens N gleichzeitige Erstellungsarbeiten zulassen"
 
-#: guix/scripts/build.scm:521
+#: guix/scripts/build.scm:182
+msgid ""
+"\n"
+"      --help-transform   list package transformation options not shown here"
+msgstr ""
+"\n"
+"      --help-transform   die hier nicht angezeigten\n"
+"                           Paketumwandlungsoptionen auflisten"
+
+#: guix/scripts/build.scm:184
 msgid ""
 "\n"
 "      --debug=LEVEL      produce debugging output at LEVEL"
@@ -1414,21 +1474,26 @@ msgstr ""
 "      --debug=STUFE      Informationen zur Fehlersuche in der angegebenen\n"
 "                           Ausführlichkeits-STUFE ausgeben"
 
-#: guix/scripts/build.scm:538
+#: guix/scripts/build.scm:201
 msgid "'--keep-failed' ignored since you are talking to a remote daemon\n"
 msgstr "„--keep-failed“ wird ignoriert, weil Sie einen entfernten Daemon ansprechen\n"
 
-#: guix/scripts/build.scm:619
+#: guix/scripts/build.scm:282
 #, scheme-format
 msgid "'--no-build-hook' is deprecated; use '--no-offload' instead~%"
 msgstr "„--no-build-hook“ ist veraltet, benutzen Sie stattdessen „--no-offload“~%"
 
-#: guix/scripts/build.scm:649 guix/scripts/build.scm:656
+#: guix/scripts/build.scm:312 guix/scripts/build.scm:319
 #, scheme-format
 msgid "not a number: '~a' option argument: ~a~%"
 msgstr "Keine Zahl: Befehlszeilenargument von „~a“: ~a~%"
 
-#: guix/scripts/build.scm:677
+#: guix/scripts/build.scm:324
+#, scheme-format
+msgid "Available package transformation options:~%"
+msgstr "Verfügbare Paketumwandlungsoptionen:~%"
+
+#: guix/scripts/build.scm:347
 msgid ""
 "Usage: guix build [OPTION]... PACKAGE-OR-DERIVATION...\n"
 "Build the given PACKAGE-OR-DERIVATION and return their output paths.\n"
@@ -1436,7 +1501,7 @@ msgstr ""
 "Aufruf: guix build [OPTION] … PAKET-ODER-ABLEITUNG …\n"
 "Jedes angegebene PAKET-ODER-ABLEITUNG erstellen und deren Ausgabepfade liefern.\n"
 
-#: guix/scripts/build.scm:679
+#: guix/scripts/build.scm:349
 msgid ""
 "\n"
 "  -e, --expression=EXPR  build the package or derivation EXPR evaluates to"
@@ -1446,7 +1511,7 @@ msgstr ""
 "                         das Paket oder die Ableitung erstellen, zu der AUSDRUCK\n"
 "                           ausgewertet wird"
 
-#: guix/scripts/build.scm:681
+#: guix/scripts/build.scm:351
 msgid ""
 "\n"
 "  -f, --file=FILE        build the package or derivation that the code within\n"
@@ -1456,7 +1521,7 @@ msgstr ""
 "  -f, --file=DATEI       das Paket oder die Ableitung erstellen, zu der der\n"
 "                           Code in DATEI ausgewertet wird"
 
-#: guix/scripts/build.scm:684
+#: guix/scripts/build.scm:354
 msgid ""
 "\n"
 "  -m, --manifest=FILE    build the packages that the manifest given in FILE\n"
@@ -1466,7 +1531,7 @@ msgstr ""
 "  -m, --manifest=DATEI   die Pakete erstellen, zu denen das Manifest\n"
 "                           in DATEI ausgewertet wird"
 
-#: guix/scripts/build.scm:687
+#: guix/scripts/build.scm:357
 msgid ""
 "\n"
 "  -S, --source           build the packages' source derivations"
@@ -1474,7 +1539,7 @@ msgstr ""
 "\n"
 "  -S, --source           die Quellcode-Ableitungen der Pakete erstellen"
 
-#: guix/scripts/build.scm:689
+#: guix/scripts/build.scm:359
 msgid ""
 "\n"
 "      --sources[=TYPE]   build source derivations; TYPE may optionally be one\n"
@@ -1485,8 +1550,8 @@ msgstr ""
 "                           entweder „package“, „all“ (Voreinstellung) oder\n"
 "                           „transitive“ ist"
 
-#: guix/scripts/build.scm:692 guix/scripts/pull.scm:114
-#: guix/scripts/pack.scm:925
+#: guix/scripts/build.scm:362 guix/scripts/pull.scm:120
+#: guix/scripts/pack.scm:1073
 msgid ""
 "\n"
 "  -s, --system=SYSTEM    attempt to build for SYSTEM--e.g., \"i686-linux\""
@@ -1495,8 +1560,8 @@ msgstr ""
 "  -s, --system=SYSTEM    versuchen, für die angegebene Art von SYSTEM zu\n"
 "                           erstellen — z.B. „i686-linux“"
 
-#: guix/scripts/build.scm:694 guix/scripts/system.scm:963
-#: guix/scripts/pack.scm:927
+#: guix/scripts/build.scm:364 guix/scripts/system.scm:997
+#: guix/scripts/pack.scm:1075
 msgid ""
 "\n"
 "      --target=TRIPLET   cross-build for TRIPLET--e.g., \"armel-linux-gnu\""
@@ -1504,7 +1569,7 @@ msgstr ""
 "\n"
 "      --target=TRIPLET   cross-erstellen für TRIPLET — z.B. „armel-linux-gnu“"
 
-#: guix/scripts/build.scm:696
+#: guix/scripts/build.scm:366
 msgid ""
 "\n"
 "  -d, --derivations      return the derivation paths of the given packages"
@@ -1512,7 +1577,7 @@ msgstr ""
 "\n"
 "  -d, --derivations      die Ableitungspfade der angegebenen Pakete liefern"
 
-#: guix/scripts/build.scm:698
+#: guix/scripts/build.scm:368
 msgid ""
 "\n"
 "      --check            rebuild items to check for non-determinism issues"
@@ -1521,7 +1586,7 @@ msgstr ""
 "      --check            Objekte erneut erstellen, um auf Probleme wegen\n"
 "                           Nichtdeterminismus zu prüfen"
 
-#: guix/scripts/build.scm:700
+#: guix/scripts/build.scm:370
 msgid ""
 "\n"
 "      --repair           repair the specified items"
@@ -1529,7 +1594,7 @@ msgstr ""
 "\n"
 "      --repair           die angegebenen Objekte reparieren"
 
-#: guix/scripts/build.scm:702 guix/scripts/pack.scm:945
+#: guix/scripts/build.scm:372 guix/scripts/pack.scm:1093
 msgid ""
 "\n"
 "  -r, --root=FILE        make FILE a symlink to the result, and register it\n"
@@ -1540,11 +1605,11 @@ msgstr ""
 "                           Ergebnis machen und als Müllsammler-Wurzel\n"
 "                           registrieren"
 
-#: guix/scripts/build.scm:705 guix/scripts/package.scm:371
-#: guix/scripts/install.scm:36 guix/scripts/remove.scm:36
-#: guix/scripts/upgrade.scm:36 guix/scripts/pull.scm:112
-#: guix/scripts/system.scm:965 guix/scripts/copy.scm:111
-#: guix/scripts/pack.scm:950 guix/scripts/deploy.scm:58
+#: guix/scripts/build.scm:375 guix/scripts/package.scm:385
+#: guix/scripts/install.scm:37 guix/scripts/remove.scm:36
+#: guix/scripts/upgrade.scm:38 guix/scripts/pull.scm:118
+#: guix/scripts/system.scm:999 guix/scripts/copy.scm:115
+#: guix/scripts/pack.scm:1098 guix/scripts/deploy.scm:58
 msgid ""
 "\n"
 "  -v, --verbosity=LEVEL  use the given verbosity LEVEL"
@@ -1552,7 +1617,7 @@ msgstr ""
 "\n"
 "      --verbosity=STUFE  die angegebene Ausführlichkeits-STUFE verwenden"
 
-#: guix/scripts/build.scm:707
+#: guix/scripts/build.scm:377
 msgid ""
 "\n"
 "  -q, --quiet            do not show the build log"
@@ -1560,7 +1625,7 @@ msgstr ""
 "\n"
 "  -q, --quiet            kein Protokoll der Erstellung anzeigen"
 
-#: guix/scripts/build.scm:709
+#: guix/scripts/build.scm:379
 msgid ""
 "\n"
 "      --log-file         return the log file names for the given derivations"
@@ -1569,20 +1634,21 @@ msgstr ""
 "      --log-file         die Namen der Protokolldateien für die\n"
 "                           angegebenen Ableitungen liefern"
 
-#: guix/scripts/build.scm:716 guix/scripts/download.scm:98
-#: guix/scripts/package.scm:389 guix/scripts/install.scm:43
-#: guix/scripts/remove.scm:41 guix/scripts/upgrade.scm:43
+#: guix/scripts/build.scm:384 guix/scripts/download.scm:103
+#: guix/scripts/package.scm:401 guix/scripts/install.scm:42
+#: guix/scripts/remove.scm:41 guix/scripts/upgrade.scm:45
 #: guix/scripts/search.scm:36 guix/scripts/show.scm:36 guix/scripts/gc.scm:88
-#: guix/scripts/hash.scm:60 guix/scripts/import.scm:94
-#: guix/scripts/import/cran.scm:47 guix/scripts/pull.scm:120
-#: guix/scripts/substitute.scm:855 guix/scripts/system.scm:968
-#: guix/scripts/lint.scm:104 guix/scripts/publish.scm:98
+#: guix/scripts/git.scm:34 guix/scripts/git/authenticate.scm:110
+#: guix/scripts/hash.scm:65 guix/scripts/import.scm:95
+#: guix/scripts/import/cran.scm:47 guix/scripts/pull.scm:126
+#: guix/scripts/substitute.scm:857 guix/scripts/system.scm:1002
+#: guix/scripts/lint.scm:110 guix/scripts/publish.scm:101
 #: guix/scripts/edit.scm:51 guix/scripts/size.scm:249
-#: guix/scripts/graph.scm:514 guix/scripts/challenge.scm:423
-#: guix/scripts/copy.scm:116 guix/scripts/pack.scm:955
-#: guix/scripts/weather.scm:293 guix/scripts/describe.scm:76
+#: guix/scripts/graph.scm:549 guix/scripts/challenge.scm:423
+#: guix/scripts/copy.scm:120 guix/scripts/pack.scm:1103
+#: guix/scripts/weather.scm:293 guix/scripts/describe.scm:95
 #: guix/scripts/processes.scm:214 guix/scripts/deploy.scm:53
-#: guix/scripts/container.scm:34 guix/scripts/container/exec.scm:43
+#: guix/scripts/container.scm:35 guix/scripts/container/exec.scm:43
 msgid ""
 "\n"
 "  -h, --help             display this help and exit"
@@ -1590,20 +1656,21 @@ msgstr ""
 "\n"
 "  -h, --help             diese Hilfe anzeigen und beenden"
 
-#: guix/scripts/build.scm:718 guix/scripts/download.scm:100
-#: guix/scripts/package.scm:391 guix/scripts/install.scm:45
-#: guix/scripts/remove.scm:43 guix/scripts/upgrade.scm:45
+#: guix/scripts/build.scm:386 guix/scripts/download.scm:105
+#: guix/scripts/package.scm:403 guix/scripts/install.scm:44
+#: guix/scripts/remove.scm:43 guix/scripts/upgrade.scm:47
 #: guix/scripts/search.scm:38 guix/scripts/show.scm:38 guix/scripts/gc.scm:90
-#: guix/scripts/hash.scm:62 guix/scripts/import.scm:96
-#: guix/scripts/import/cran.scm:51 guix/scripts/pull.scm:122
-#: guix/scripts/substitute.scm:857 guix/scripts/system.scm:970
-#: guix/scripts/lint.scm:108 guix/scripts/publish.scm:100
+#: guix/scripts/git.scm:36 guix/scripts/git/authenticate.scm:112
+#: guix/scripts/hash.scm:67 guix/scripts/import.scm:97
+#: guix/scripts/import/cran.scm:51 guix/scripts/pull.scm:128
+#: guix/scripts/substitute.scm:859 guix/scripts/system.scm:1004
+#: guix/scripts/lint.scm:114 guix/scripts/publish.scm:103
 #: guix/scripts/edit.scm:53 guix/scripts/size.scm:251
-#: guix/scripts/graph.scm:516 guix/scripts/challenge.scm:425
-#: guix/scripts/copy.scm:118 guix/scripts/pack.scm:957
-#: guix/scripts/weather.scm:295 guix/scripts/describe.scm:78
+#: guix/scripts/graph.scm:551 guix/scripts/challenge.scm:425
+#: guix/scripts/copy.scm:122 guix/scripts/pack.scm:1105
+#: guix/scripts/weather.scm:295 guix/scripts/describe.scm:97
 #: guix/scripts/processes.scm:216 guix/scripts/deploy.scm:55
-#: guix/scripts/container.scm:36 guix/scripts/container/exec.scm:45
+#: guix/scripts/container.scm:37 guix/scripts/container/exec.scm:45
 msgid ""
 "\n"
 "  -V, --version          display version information and exit"
@@ -1611,7 +1678,7 @@ msgstr ""
 "\n"
 "  -V, --version          Versionsinformationen anzeigen und beenden"
 
-#: guix/scripts/build.scm:745
+#: guix/scripts/build.scm:413
 #, scheme-format
 msgid ""
 "invalid argument: '~a' option argument: ~a, ~\n"
@@ -1620,35 +1687,81 @@ msgstr ""
 "Ungültiges Argument der Befehlszeilenoption „~a“: ~a, ~\n"
 "muss entweder „package“, „all“ oder „transitive“ sein~%"
 
-#: guix/scripts/build.scm:806
+#: guix/scripts/build.scm:475
 #, scheme-format
 msgid "~s: not something we can build~%"
 msgstr "~s: Ist nichts, was Guix erstellen kann~%"
 
-#: guix/scripts/build.scm:888
+#: guix/scripts/build.scm:480
+msgid ""
+"If you build from a file, make sure the last Scheme\n"
+"expression returns a package value.  @code{define-public} defines a variable,\n"
+"but returns @code{#<unspecified>}.  To fix this, add a Scheme expression at\n"
+"the end of the file that consists only of the package's variable name you\n"
+"defined, as in this example:\n"
+"\n"
+"@example\n"
+"(define-public my-package\n"
+"  (package\n"
+"    ...))\n"
+"\n"
+"my-package\n"
+"@end example"
+msgstr ""
+"Wenn Sie aus einer Datei heraus erstellen, sollten Sie sich\n"
+"vergewissern, dass der letzte Scheme-Ausdruck darin ein Paket\n"
+"liefert. Durch @code{define-public} wird eine Variable definiert, aber\n"
+"ein unbestimmter Wert @code{#<unspecified>} geliefert. Um das Problem\n"
+"zu beheben, schreiben Sie einen Scheme-Ausdruck ans Ende der Datei,\n"
+"der nur aus dem Variablennamen des Pakets, das Sie definiert haben,\n"
+"besteht, wie in diesem Beispiel:\n"
+"\n"
+"@example\n"
+"(define-public mein-paket\n"
+"  (package\n"
+"    …))\n"
+"\n"
+"mein-paket\n"
+"@end example"
+
+#: guix/scripts/build.scm:493
+msgid ""
+"If you build from a file, make sure the last\n"
+"Scheme expression returns a package, gexp, derivation or a list of such\n"
+"values."
+msgstr ""
+"Wenn Sie aus einer Datei heraus erstellen, sollten Sie sich\n"
+"vergewissern, dass der letzte Scheme-Ausdruck darin ein Paket, einen\n"
+"G-Ausdruck, eine Ableitung oder eine Liste solcher Werte liefert."
+
+#: guix/scripts/build.scm:579
 #, scheme-format
 msgid "package '~a' has no source~%"
 msgstr "Paket „~a“ hat keinen Quellort~%"
 
-#: guix/scripts/build.scm:936
+#: guix/scripts/build.scm:627
 #, scheme-format
 msgid "no build log for '~a'~%"
 msgstr "Kein Erstellungsprotokoll für „~a“~%"
 
+#: guix/scripts/build.scm:636
+msgid "build packages or derivations without installing them"
+msgstr "Pakete oder Ableitungen erstellen, ohne sie zu installieren"
+
 #: guix/discovery.scm:96
 #, scheme-format
 msgid "cannot access `~a': ~a~%"
 msgstr "Zugriff auf „~a“ nicht möglich: ~a~%"
 
-#: guix/lint.scm:180
+#: guix/lint.scm:184
 msgid "description should not be empty"
 msgstr "Die Beschreibung sollte nicht leer sein"
 
-#: guix/lint.scm:191
+#: guix/lint.scm:195
 msgid "Texinfo markup in description is invalid"
 msgstr "Das Texinfo-Markup in der Beschreibung ist ungültig"
 
-#: guix/lint.scm:201
+#: guix/lint.scm:205
 #, scheme-format
 msgid ""
 "description should not contain ~\n"
@@ -1657,15 +1770,15 @@ msgstr "Die Beschreibung sollte kein „Trademark“-Zeichen „~a“ bei ~d ent
 
 #. TRANSLATORS: '@code' is Texinfo markup and must be kept
 #. as is.
-#: guix/lint.scm:214
+#: guix/lint.scm:218
 msgid "use @code or similar ornament instead of quotes"
 msgstr "Benutzen Sie @code oder ähnliche Verzierungen statt Anführungszeichen"
 
-#: guix/lint.scm:226
+#: guix/lint.scm:230
 msgid "description should start with an upper-case letter or digit"
 msgstr "Die Beschreibung sollte mit einem Großbuchstaben oder einer Ziffer beginnen."
 
-#: guix/lint.scm:244
+#: guix/lint.scm:248
 #, scheme-format
 msgid ""
 "sentences in description should be followed ~\n"
@@ -1674,197 +1787,202 @@ msgstr ""
 "Auf Sätze in der Beschreibung sollten zwei Leerzeichen folgen;\n"
 "mögliche Verletzung~p bei ~{~a~^, ~}"
 
-#: guix/lint.scm:265
+#: guix/lint.scm:269
 #, scheme-format
 msgid "invalid description: ~s"
 msgstr "Ungültige Beschreibung: ~s"
 
-#: guix/lint.scm:334
+#: guix/lint.scm:339
 #, scheme-format
 msgid "'~a' should probably be a native input"
 msgstr "„~a“ sollte wahrscheinlich als native Eingabe deklariert werden"
 
-#: guix/lint.scm:349
+#: guix/lint.scm:354
 #, scheme-format
 msgid "'~a' should probably not be an input at all"
 msgstr "„~a“ sollte wahrscheinlich gar keine Eingabe sein"
 
-#: guix/lint.scm:370
+#: guix/lint.scm:375
 msgid "no period allowed at the end of the synopsis"
 msgstr "Am Ende der Zusammenfassung darf kein Punkt gesetzt werden"
 
-#: guix/lint.scm:384
+#: guix/lint.scm:389
 msgid "no article allowed at the beginning of the synopsis"
 msgstr "Am Beginn der Zusammenfassung darf kein Artikel stehen"
 
-#: guix/lint.scm:393
+#: guix/lint.scm:398
 msgid "synopsis should be less than 80 characters long"
 msgstr "Die Zusammenfassung sollte nicht länger als 80 Zeichen sein"
 
-#: guix/lint.scm:402
+#: guix/lint.scm:407
 msgid "synopsis should start with an upper-case letter or digit"
 msgstr "Die Zusammenfassung sollte mit einem Großbuchstaben oder einer Zahl beginnen"
 
-#: guix/lint.scm:410
+#: guix/lint.scm:415
 msgid "synopsis should not start with the package name"
 msgstr "Die Zusammenfassung sollte nicht mit dem Paketnamen beginnen"
 
-#: guix/lint.scm:424
+#: guix/lint.scm:429
 msgid "Texinfo markup in synopsis is invalid"
 msgstr "Das Texinfo-Markup in der Zusammenfassung ist ungültig"
 
-#: guix/lint.scm:439
+#: guix/lint.scm:444
 msgid "synopsis should not be empty"
 msgstr "Die Zusammenfassung sollte nicht leer sein"
 
-#: guix/lint.scm:449
+#: guix/lint.scm:454
 #, scheme-format
 msgid "invalid synopsis: ~s"
 msgstr "Unzulässige Zusammenfassung: ~s"
 
-#: guix/lint.scm:567
+#: guix/lint.scm:572
 #, scheme-format
 msgid "URI ~a returned suspiciously small file (~a bytes)"
 msgstr "URI ~a hat eine verdächtig kleine Datei geliefert (~a Bytes)"
 
-#: guix/lint.scm:576
+#: guix/lint.scm:581
 #, scheme-format
 msgid "permanent redirect from ~a to ~a"
 msgstr "Permanente Weiterleitung von ~a auf ~a"
 
-#: guix/lint.scm:582
+#: guix/lint.scm:587
 #, scheme-format
 msgid "invalid permanent redirect from ~a"
 msgstr "Ungültige permanente Weiterleitung von ~a"
 
-#: guix/lint.scm:588 guix/lint.scm:598
+#: guix/lint.scm:593 guix/lint.scm:603
 #, scheme-format
 msgid "URI ~a not reachable: ~a (~s)"
 msgstr "URI ~a nicht erreichbar: ~a (~s)"
 
-#: guix/lint.scm:604
+#: guix/lint.scm:609
 #, scheme-format
 msgid "URI ~a domain not found: ~a"
 msgstr "Domain der URI ~a nicht gefunden: ~a"
 
-#: guix/lint.scm:610
+#: guix/lint.scm:615
 #, scheme-format
 msgid "URI ~a unreachable: ~a"
 msgstr "URI ~a ist nicht erreichbar: ~a"
 
-#: guix/lint.scm:618
+#: guix/lint.scm:623
 #, scheme-format
 msgid "TLS certificate error: ~a"
 msgstr "TLS-Zertifikatsfehler: ~a"
 
-#: guix/lint.scm:645
+#: guix/lint.scm:650
 msgid "invalid value for home page"
 msgstr "Ungültiger Wert für Homepage"
 
-#: guix/lint.scm:650
+#: guix/lint.scm:655
 #, scheme-format
 msgid "invalid home page URL: ~s"
 msgstr "Ungültige URL für Homepage: ~s"
 
-#: guix/lint.scm:683
+#: guix/lint.scm:698
 msgid "file names of patches should start with the package name"
 msgstr "Dateinamen von Patches sollten mit dem Paketnamen beginnen"
 
-#: guix/lint.scm:699
+#: guix/lint.scm:714
 #, scheme-format
 msgid "~a: file name is too long"
 msgstr "~a: Der Dateiname ist zu lang"
 
-#: guix/lint.scm:741
+#: guix/lint.scm:756
 #, scheme-format
 msgid "proposed synopsis: ~s~%"
 msgstr "Vorgeschlagene Zusammenfassung: ~s~%"
 
-#: guix/lint.scm:755
+#: guix/lint.scm:770
 #, scheme-format
 msgid "proposed description:~%     \"~a\"~%"
 msgstr "Vorgeschlagene Beschreibung:~%     \"~a\"~%"
 
-#: guix/lint.scm:802
+#: guix/lint.scm:821
 msgid "all the source URIs are unreachable:"
 msgstr "Alle Quell-URIs sind nicht erreichbar:"
 
-#: guix/lint.scm:826
+#: guix/lint.scm:850
 msgid "the source file name should contain the package name"
 msgstr "Der Name der Quelldatei sollte den Paketnamen enthalten"
 
-#: guix/lint.scm:838
+#: guix/lint.scm:862
 msgid "the source URI should not be an autogenerated tarball"
 msgstr "Als Quell-URI sollte kein automatisch erzeugter Tarball verwendet werden"
 
-#: guix/lint.scm:862
+#: guix/lint.scm:886
 #, scheme-format
 msgid "URL should be 'mirror://~a/~a'"
 msgstr "URL sollte „mirror://~a/~a“ lauten"
 
-#: guix/lint.scm:907
+#: guix/lint.scm:931
 #, scheme-format
 msgid "URL should be '~a'"
 msgstr "URL sollte „~a“ lauten"
 
-#: guix/lint.scm:929 guix/lint.scm:940
+#: guix/lint.scm:953 guix/lint.scm:964 guix/lint.scm:972
 #, scheme-format
 msgid "failed to create ~a derivation: ~a"
 msgstr "Ableitung für ~a konnte nicht erstellt werden: ~a"
 
-#: guix/lint.scm:934 guix/lint.scm:955
+#: guix/lint.scm:958 guix/lint.scm:986
 #, scheme-format
 msgid "failed to create ~a derivation: ~s"
 msgstr "Ableitung für ~a konnte nicht erstellt werden: ~s"
 
-#: guix/lint.scm:975
+#: guix/lint.scm:1014
+#, scheme-format
+msgid "propagated inputs ~a and ~a collide"
+msgstr "propagierte Eingabgen ~a und ~a stehen im Konflikt"
+
+#: guix/lint.scm:1038
 msgid "invalid license field"
 msgstr "Ungültiges Lizenz-Feld"
 
-#: guix/lint.scm:982
+#: guix/lint.scm:1045
 #, scheme-format
 msgid "~a: HTTP GET error for ~a: ~a (~s)~%"
 msgstr "~a: HTTP-GET-Fehler für ~a: ~a (~s)~%"
 
-#: guix/lint.scm:992
+#: guix/lint.scm:1055
 #, scheme-format
 msgid "~a: host lookup failure: ~a~%"
 msgstr "~a: Nachschlagen des Rechners fehlgeschlagen: ~a~%"
 
-#: guix/lint.scm:997
+#: guix/lint.scm:1060
 #, scheme-format
 msgid "~a: TLS certificate error: ~a"
 msgstr "~a: TLS-Zertifikatsfehler: ~a"
 
-#: guix/lint.scm:1008 guix/ui.scm:795
+#: guix/lint.scm:1071 guix/ui.scm:842
 #, scheme-format
 msgid "~a: ~a~%"
 msgstr "~a: ~a~%"
 
-#: guix/lint.scm:1022
+#: guix/lint.scm:1085
 msgid "while retrieving CVE vulnerabilities"
 msgstr "Beim Laden der CVE-Sicherheitslücken"
 
-#: guix/lint.scm:1065
+#: guix/lint.scm:1128
 #, scheme-format
 msgid "probably vulnerable to ~a"
 msgstr "Wahrscheinlich angreifbar durch ~a"
 
-#: guix/lint.scm:1072
+#: guix/lint.scm:1135
 #, scheme-format
 msgid "while retrieving upstream info for '~a'"
 msgstr "Beim Laden der Informationen vom Ursprung für „~a“"
 
-#: guix/lint.scm:1081
+#: guix/lint.scm:1144
 #, scheme-format
 msgid "can be upgraded to ~a"
 msgstr "Kann aktualisiert werden auf „~a“"
 
-#: guix/lint.scm:1099
+#: guix/lint.scm:1162
 msgid "Software Heritage rate limit reached; try again later"
 msgstr "Software Heritage wurde zu oft angefragt; versuchen Sie es später"
 
-#: guix/lint.scm:1103
+#: guix/lint.scm:1166
 #, scheme-format
 msgid "'~a' returned ~a"
 msgstr "„~a“ lieferte ~a"
@@ -1872,50 +1990,54 @@ msgstr "„~a“ lieferte ~a"
 #. TRANSLATORS: "Software Heritage" is a proper noun
 #. that must remain untranslated.  See
 #. <https://www.softwareheritage.org>.
-#: guix/lint.scm:1142
+#: guix/lint.scm:1205
 msgid "scheduled Software Heritage archival"
 msgstr "geplante Software-Heritage-Archivierung"
 
-#: guix/lint.scm:1148
+#: guix/lint.scm:1211
 msgid "archival rate limit exceeded; try again later"
 msgstr "Archivierung wurde zu oft angefragt; versuchen Sie es später"
 
-#: guix/lint.scm:1160
+#: guix/lint.scm:1226
 msgid "source not archived on Software Heritage"
 msgstr "Quelle nicht archiviert auf Software Heritage"
 
-#: guix/lint.scm:1173
+#: guix/lint.scm:1239
 msgid "while connecting to Software Heritage"
 msgstr "beim Verbinden mit Software Heritage"
 
-#: guix/lint.scm:1188
+#: guix/lint.scm:1254
 #, scheme-format
 msgid "tabulation on line ~a, column ~a"
 msgstr "Tabulator in Zeile ~a, Spalte ~a"
 
-#: guix/lint.scm:1200
+#: guix/lint.scm:1266
 #, scheme-format
 msgid "trailing white space on line ~a"
 msgstr "Leerzeichen am Ende der Zeile ~a"
 
-#: guix/lint.scm:1214
+#: guix/lint.scm:1280
 #, scheme-format
 msgid "line ~a is way too long (~a characters)"
 msgstr "Zeile ~a ist viel zu lang (~a Zeichen)"
 
-#: guix/lint.scm:1228
+#: guix/lint.scm:1294
 msgid "parentheses feel lonely, move to the previous or next line"
 msgstr "Hier stehen einsame Klammern, setzen Sie sie auf die vorige oder nächste Zeile"
 
-#: guix/lint.scm:1309
+#: guix/lint.scm:1371
+msgid "source file not found"
+msgstr "Quelldatei nicht gefunden"
+
+#: guix/lint.scm:1383
 msgid "Validate package descriptions"
 msgstr "Paketbeschreibungen überprüfen"
 
-#: guix/lint.scm:1313
+#: guix/lint.scm:1387
 msgid "Identify inputs that should be native inputs"
 msgstr "Eingaben suchen, die native Eingaben sein sollten"
 
-#: guix/lint.scm:1317
+#: guix/lint.scm:1391
 msgid "Identify inputs that shouldn't be inputs at all"
 msgstr ""
 "Eingaben suchen, die gar keine Eingaben\n"
@@ -1923,93 +2045,107 @@ msgstr ""
 
 #. TRANSLATORS: <license> is the name of a data type and must not be
 #. translated.
-#: guix/lint.scm:1323
+#: guix/lint.scm:1397
 msgid "Make sure the 'license' field is a <license> or a list thereof"
 msgstr ""
 "Sicherstellen, dass das „license“-Feld eine <license> oder\n"
 "    eine Liste davon ist"
 
-#: guix/lint.scm:1328
+#: guix/lint.scm:1402
 msgid "Suggest 'mirror://' URLs"
 msgstr "„mirror://“-URLs vorschlagen"
 
-#: guix/lint.scm:1332
+#: guix/lint.scm:1406
 msgid "Validate file names of sources"
 msgstr "Dateinamen der Quellorte überprüfen"
 
-#: guix/lint.scm:1336
+#: guix/lint.scm:1410
 msgid "Check for autogenerated tarballs"
 msgstr "Auf automatisch erzeugte Tarballs prüfen"
 
-#: guix/lint.scm:1340
+#: guix/lint.scm:1414
 msgid "Report failure to compile a package to a derivation"
 msgstr "Fehler dabei melden, ein Paket zu einer Ableitung zu kompilieren"
 
-#: guix/lint.scm:1345
+#: guix/lint.scm:1419
+msgid "Report collisions that would occur due to propagated inputs"
+msgstr "Konflikte melden, die sich aus propagierten Eingaben ergeben würden"
+
+#: guix/lint.scm:1424
 msgid "Validate file names and availability of patches"
 msgstr "Dateinamen und Verfügbarkeit der Patches überprüfen"
 
-#: guix/lint.scm:1349
+#: guix/lint.scm:1428
 msgid "Look for formatting issues in the source"
 msgstr "Nach Formatierungsfehlern im Quellort schauen"
 
-#: guix/lint.scm:1356
+#: guix/lint.scm:1435
 msgid "Validate package synopses"
 msgstr "Paketzusammenfassungen überprüfen"
 
-#: guix/lint.scm:1360
+#: guix/lint.scm:1439
 msgid "Validate synopsis & description of GNU packages"
 msgstr "GNU-Paketzusammenfassung und -beschreibung überprüfen"
 
-#: guix/lint.scm:1364
+#: guix/lint.scm:1443
 msgid "Validate home-page URLs"
 msgstr "Homepage-URLs überprüfen"
 
-#: guix/lint.scm:1368
+#: guix/lint.scm:1447
 msgid "Validate source URLs"
 msgstr "Quell-URLs überprüfen"
 
-#: guix/lint.scm:1372
+#: guix/lint.scm:1451
 msgid "Suggest GitHub URLs"
 msgstr "GitHub-URLs vorschlagen"
 
-#: guix/lint.scm:1376
+#: guix/lint.scm:1455
 msgid "Check the Common Vulnerabilities and Exposures (CVE) database"
 msgstr "Die Datenbank der Common Vulnerabilities and Exposures (CVE) überprüfen"
 
-#: guix/lint.scm:1381
+#: guix/lint.scm:1460
 msgid "Check the package for new upstream releases"
 msgstr "Den Ursprung des Pakets auf neue Veröffentlichungen hin prüfen"
 
-#: guix/lint.scm:1385
+#: guix/lint.scm:1464
 msgid "Ensure source code archival on Software Heritage"
 msgstr "Sicherstellen, dass Quellcode bei Software Heritage archiviert wird"
 
-#: guix/scripts/download.scm:84
+#: guix/scripts/download.scm:86
 msgid ""
 "Usage: guix download [OPTION] URL\n"
 "Download the file at URL to the store or to the given file, and print its\n"
 "file name and the hash of its contents.\n"
-"\n"
-"Supported formats: 'nix-base32' (default), 'base32', and 'base16'\n"
-"('hex' and 'hexadecimal' can be used as well).\n"
 msgstr ""
 "Aufruf: guix download [OPTION] URL\n"
 "Die Datei bei URL herunterladen, in den Store einfügen und den Pfad dorthin\n"
 "sowie die Prüfsumme ihres Inhalts ausgeben.\n"
-"\n"
-"Unterstützte Formate: „nix-base32“ (Voreinstellung), „base32“ und „base16“\n"
-"(„hex“ und „hexadecimal“ können auch benutzt werden).\n"
 
-#: guix/scripts/download.scm:90 guix/scripts/hash.scm:55
+#: guix/scripts/download.scm:90 guix/scripts/hash.scm:53
+msgid ""
+"Supported formats: 'base64', 'nix-base32' (default), 'base32',\n"
+"and 'base16' ('hex' and 'hexadecimal' can be used as well).\n"
+msgstr ""
+"Unterstützte Formate: „base64“, „nix-base32“ (Voreinstellung), „base32“\n"
+"und „base16“ („hex“ und „hexadecimal“ können auch benutzt werden).\n"
+
+#: guix/scripts/download.scm:93 guix/scripts/hash.scm:60
 msgid ""
 "\n"
 "  -f, --format=FMT       write the hash in the given format"
 msgstr ""
 "\n"
-"  -f, --format=FORMAT    die Prüfsumme im angegebenen Format schreiben"
+"  -f, --format=FORMAT     die Prüfsumme im angegebenen Format schreiben"
 
-#: guix/scripts/download.scm:92
+#: guix/scripts/download.scm:95 guix/scripts/hash.scm:58
+msgid ""
+"\n"
+"  -H, --hash=ALGORITHM   use the given hash ALGORITHM"
+msgstr ""
+"\n"
+"  -H, --hash=ALGORITHMUS  den gewählten Hash-ALGORITHMUS benutzen"
+
+#: guix/scripts/download.scm:97
 msgid ""
 "\n"
 "      --no-check-certificate\n"
@@ -2017,63 +2153,72 @@ msgid ""
 msgstr ""
 "\n"
 "      --no-check-certificate\n"
-"                         bei HTTPS-Servern das Zertifikat nicht überprüfen"
+"                          bei HTTPS-Servern das Zertifikat nicht überprüfen"
 
-#: guix/scripts/download.scm:95
+#: guix/scripts/download.scm:100
 msgid ""
 "\n"
 "  -o, --output=FILE      download to FILE"
 msgstr ""
 "\n"
-"  -o, --output=DATEI     Heruntergeladenes als DATEI speichern"
+"  -o, --output=DATEI      Heruntergeladenes als DATEI speichern"
 
-#: guix/scripts/download.scm:118 guix/scripts/hash.scm:83
+#: guix/scripts/download.scm:125 guix/scripts/hash.scm:97
 #, scheme-format
 msgid "unsupported hash format: ~a~%"
 msgstr "Nicht unterstütztes Prüfsummenformat: ~a~%"
 
-#: guix/scripts/download.scm:153 guix/scripts/package.scm:933
-#: guix/scripts/upgrade.scm:79 guix/scripts/publish.scm:1022
+#: guix/scripts/download.scm:133 guix/scripts/hash.scm:81
+#, scheme-format
+msgid "~a: unknown hash algorithm~%"
+msgstr "~a: Unbekannter Hash-Algorithmus~%"
+
+#: guix/scripts/download.scm:161
+msgid "download a file to the store and print its hash"
+msgstr "eine Datei in den Store herunterladen und ihre Hash-Prüfsumme anzeigen"
+
+#: guix/scripts/download.scm:170 guix/scripts/package.scm:955
+#: guix/scripts/upgrade.scm:83 guix/scripts/publish.scm:1090
 #, scheme-format
 msgid "~A: extraneous argument~%"
 msgstr "~A: Überzähliges Argument~%"
 
-#: guix/scripts/download.scm:161
+#: guix/scripts/download.scm:178
 #, scheme-format
 msgid "no download URI was specified~%"
 msgstr "Keine Download-URI wurde angegeben~%"
 
-#: guix/scripts/download.scm:166
+#: guix/scripts/download.scm:183
 #, scheme-format
 msgid "~a: failed to parse URI~%"
 msgstr "~a: URI~% konnte nicht verarbeitet werden"
 
-#: guix/scripts/download.scm:176
+#: guix/scripts/download.scm:193
 #, scheme-format
 msgid "~a: download failed~%"
 msgstr "~a: Herunterladen fehlgeschlagen~%"
 
-#: guix/scripts/package.scm:121
+#: guix/scripts/package.scm:125
 #, scheme-format
 msgid "not removing generation ~a, which is current~%"
 msgstr "Entfernung von Generation ~a verweigert, weil sie die aktuelle Generation ist~%"
 
-#: guix/scripts/package.scm:128
+#: guix/scripts/package.scm:132
 #, scheme-format
 msgid "no matching generation~%"
 msgstr "Keine passende Generation~%"
 
-#: guix/scripts/package.scm:150
+#: guix/scripts/package.scm:154
 #, scheme-format
 msgid "nothing to be done~%"
 msgstr "Nichts zu tun~%"
 
-#: guix/scripts/package.scm:250
+#: guix/scripts/package.scm:257
 #, scheme-format
 msgid "package '~a' no longer exists~%"
 msgstr "Paket „~a“ existiert nicht mehr~%"
 
-#: guix/scripts/package.scm:298
+#: guix/scripts/package.scm:312
 #, scheme-format
 msgid ""
 "Consider setting the necessary environment\n"
@@ -2096,7 +2241,7 @@ msgstr ""
 "\n"
 "Sie können sie auch mit @command{guix package --search-paths -p ~s} nachlesen."
 
-#: guix/scripts/package.scm:326
+#: guix/scripts/package.scm:340
 msgid ""
 "Usage: guix package [OPTION]...\n"
 "Install, remove, or upgrade packages in a single transaction.\n"
@@ -2105,7 +2250,7 @@ msgstr ""
 "Pakete in einer einzigen Transaktion installieren,\n"
 "entfernen oder aktualisieren.\n"
 
-#: guix/scripts/package.scm:328
+#: guix/scripts/package.scm:342
 msgid ""
 "\n"
 "  -i, --install PACKAGE ...\n"
@@ -2114,7 +2259,7 @@ msgstr ""
 "\n"
 "  -i, --install=PAKET …  PAKET oder PAKETE installieren"
 
-#: guix/scripts/package.scm:331
+#: guix/scripts/package.scm:345
 msgid ""
 "\n"
 "  -e, --install-from-expression=EXP\n"
@@ -2125,7 +2270,7 @@ msgstr ""
 "                         das Paket installieren, zu dem AUSDRUCK ausgewertet\n"
 "                           wird"
 
-#: guix/scripts/package.scm:334
+#: guix/scripts/package.scm:348
 msgid ""
 "\n"
 "  -f, --install-from-file=FILE\n"
@@ -2137,7 +2282,7 @@ msgstr ""
 "                         das Paket installieren, zu dem der Code in der DATEI\n"
 "                           ausgewertet wird"
 
-#: guix/scripts/package.scm:338
+#: guix/scripts/package.scm:352
 msgid ""
 "\n"
 "  -r, --remove PACKAGE ...\n"
@@ -2146,7 +2291,7 @@ msgstr ""
 "\n"
 "  -r, --remove=PAKET …   PAKET oder PAKETE entfernen"
 
-#: guix/scripts/package.scm:341
+#: guix/scripts/package.scm:355
 msgid ""
 "\n"
 "  -u, --upgrade[=REGEXP] upgrade all the installed packages matching REGEXP"
@@ -2156,7 +2301,7 @@ msgstr ""
 "                         alle installierten Pakete aktualisieren, die zum\n"
 "                           regulären Ausdruck REGEXP passen"
 
-#: guix/scripts/package.scm:343
+#: guix/scripts/package.scm:357
 msgid ""
 "\n"
 "  -m, --manifest=FILE    create a new profile generation with the manifest\n"
@@ -2166,7 +2311,7 @@ msgstr ""
 "  -m, --manifest=DATEI   eine neue Profilgeneration mit dem Manifest\n"
 "                           aus DATEI erzeugen"
 
-#: guix/scripts/package.scm:346
+#: guix/scripts/package.scm:360 guix/scripts/upgrade.scm:40
 msgid ""
 "\n"
 "      --do-not-upgrade[=REGEXP] do not upgrade any packages matching REGEXP"
@@ -2176,7 +2321,7 @@ msgstr ""
 "                         keine Pakete aktualisieren, die zum regulären\n"
 "                           Ausdruck REGEXP passen"
 
-#: guix/scripts/package.scm:348 guix/scripts/pull.scm:102
+#: guix/scripts/package.scm:362 guix/scripts/pull.scm:108
 msgid ""
 "\n"
 "      --roll-back        roll back to the previous generation"
@@ -2184,7 +2329,7 @@ msgstr ""
 "\n"
 "      --roll-back        zurück zur vorherigen Generation wechseln"
 
-#: guix/scripts/package.scm:350
+#: guix/scripts/package.scm:364
 msgid ""
 "\n"
 "      --search-paths[=KIND]\n"
@@ -2194,7 +2339,7 @@ msgstr ""
 "      --search-paths[=ART]\n"
 "                         benötigte Definitionen von Umgebungsvariablen anzeigen"
 
-#: guix/scripts/package.scm:353 guix/scripts/pull.scm:99
+#: guix/scripts/package.scm:367 guix/scripts/pull.scm:105
 msgid ""
 "\n"
 "  -l, --list-generations[=PATTERN]\n"
@@ -2204,7 +2349,7 @@ msgstr ""
 "  -l, --list-generations[=MUSTER]\n"
 "                         zum MUSTER passende Generationen auflisten"
 
-#: guix/scripts/package.scm:356 guix/scripts/pull.scm:104
+#: guix/scripts/package.scm:370 guix/scripts/pull.scm:110
 msgid ""
 "\n"
 "  -d, --delete-generations[=PATTERN]\n"
@@ -2214,7 +2359,7 @@ msgstr ""
 "  -d, --delete-generations[=MUSTER]\n"
 "                         zum MUSTER passende Generationen löschen"
 
-#: guix/scripts/package.scm:359 guix/scripts/pull.scm:107
+#: guix/scripts/package.scm:373 guix/scripts/pull.scm:113
 msgid ""
 "\n"
 "  -S, --switch-generation=PATTERN\n"
@@ -2224,8 +2369,8 @@ msgstr ""
 "  -S, --switch-generation=MUSTER\n"
 "                         zu einer zum MUSTER passenden Generation wechseln"
 
-#: guix/scripts/package.scm:362 guix/scripts/install.scm:33
-#: guix/scripts/remove.scm:33 guix/scripts/upgrade.scm:34
+#: guix/scripts/package.scm:376 guix/scripts/install.scm:34
+#: guix/scripts/remove.scm:33 guix/scripts/upgrade.scm:36
 msgid ""
 "\n"
 "  -p, --profile=PROFILE  use PROFILE instead of the user's default profile"
@@ -2234,7 +2379,7 @@ msgstr ""
 "  -p, --profile=PROFIL   PROFIL benutzen anstelle des Standardprofils\n"
 "                           des Nutzers"
 
-#: guix/scripts/package.scm:364
+#: guix/scripts/package.scm:378
 msgid ""
 "\n"
 "      --list-profiles    list the user's profiles"
@@ -2242,7 +2387,7 @@ msgstr ""
 "\n"
 "      --list-profiles    Profile des Benutzers auflisten"
 
-#: guix/scripts/package.scm:367
+#: guix/scripts/package.scm:381
 msgid ""
 "\n"
 "      --allow-collisions do not treat collisions in the profile as an error"
@@ -2251,7 +2396,7 @@ msgstr ""
 "      --allow-collisions\n"
 "                         Kollisionen im Profil nicht als Fehler auffassen"
 
-#: guix/scripts/package.scm:369
+#: guix/scripts/package.scm:383
 msgid ""
 "\n"
 "      --bootstrap        use the bootstrap Guile to build the profile"
@@ -2260,7 +2405,7 @@ msgstr ""
 "      --bootstrap        das Bootstrap-Guile benutzen, um das Profil zu\n"
 "                           erstellen"
 
-#: guix/scripts/package.scm:374
+#: guix/scripts/package.scm:388
 msgid ""
 "\n"
 "  -s, --search=REGEXP    search in synopsis and description using REGEXP"
@@ -2268,7 +2413,7 @@ msgstr ""
 "\n"
 "  -s, --search=REGEXP    in Zusammenfassung und Beschreibung mit REGEXP suchen"
 
-#: guix/scripts/package.scm:376
+#: guix/scripts/package.scm:390
 msgid ""
 "\n"
 "  -I, --list-installed[=REGEXP]\n"
@@ -2278,7 +2423,7 @@ msgstr ""
 "  -I, --list-installed[=REGEXP]\n"
 "                         zu REGEXP passende installierte Pakete auflisten"
 
-#: guix/scripts/package.scm:379
+#: guix/scripts/package.scm:393
 msgid ""
 "\n"
 "  -A, --list-available[=REGEXP]\n"
@@ -2288,7 +2433,7 @@ msgstr ""
 "  -A, --list-available[=REGEXP]\n"
 "                         zu REGEXP passende verfügbare Pakete auflisten"
 
-#: guix/scripts/package.scm:382
+#: guix/scripts/package.scm:396
 msgid ""
 "\n"
 "      --show=PACKAGE     show details about PACKAGE"
@@ -2296,39 +2441,43 @@ msgstr ""
 "\n"
 "      --show=PAKET       Details zu PAKET anzeigen"
 
-#: guix/scripts/package.scm:434
+#: guix/scripts/package.scm:449
 #, scheme-format
 msgid "upgrade regexp '~a' looks like a command-line option~%"
 msgstr ""
 "--upgrade: Der reguläre Ausdruck „~a“\n"
 "sieht wie eine Befehlszeilenoption aus"
 
-#: guix/scripts/package.scm:437
+#: guix/scripts/package.scm:452
 #, scheme-format
 msgid "is this intended?~%"
 msgstr "Ist das gewollt?~%"
 
-#: guix/scripts/package.scm:487
+#: guix/scripts/package.scm:502
 #, scheme-format
 msgid "~a: unsupported kind of search path~%"
 msgstr "~a: Nicht unterstützte Art von Suchpfad~%"
 
-#: guix/scripts/package.scm:619
+#: guix/scripts/package.scm:628
 #, scheme-format
 msgid "cannot install non-package object: ~s~%"
 msgstr "Kann Objekt nicht installieren, das kein Paket ist: ~s~%"
 
-#: guix/scripts/package.scm:791
+#: guix/scripts/package.scm:809
 #, scheme-format
 msgid "~a~@[@~a~]: package not found~%"
 msgstr "~a~@[@~a~]: Paket nicht gefunden~%"
 
-#: guix/scripts/package.scm:825 guix/scripts/pull.scm:677
+#: guix/scripts/package.scm:844 guix/scripts/pull.scm:687
 #, scheme-format
 msgid "cannot switch to generation '~a'~%"
 msgstr "Zu Generation „~a“ kann nicht gewechselt werden~%"
 
-#: guix/scripts/install.scm:30
+#: guix/scripts/package.scm:949
+msgid "manage packages and profiles"
+msgstr "Pakete und Profile verwalten"
+
+#: guix/scripts/install.scm:31
 msgid ""
 "Usage: guix install [OPTION] PACKAGES...\n"
 "Install the given PACKAGES.\n"
@@ -2338,6 +2487,10 @@ msgstr ""
 "Die angegebenen PAKETE installieren.\n"
 "Dies ist eine andere Schreibweise für „guix package -i“.\n"
 
+#: guix/scripts/install.scm:69
+msgid "install packages"
+msgstr "Pakete installieren"
+
 #: guix/scripts/remove.scm:30
 msgid ""
 "Usage: guix remove [OPTION] PACKAGES...\n"
@@ -2348,7 +2501,11 @@ msgstr ""
 "Die angegebenen PAKETE entfernen.\n"
 "Dies ist eine andere Schreibweise für „guix package -r“.\n"
 
-#: guix/scripts/upgrade.scm:31
+#: guix/scripts/remove.scm:67
+msgid "remove installed packages"
+msgstr "installierte Pakete entfernen"
+
+#: guix/scripts/upgrade.scm:33
 msgid ""
 "Usage: guix upgrade [OPTION] [REGEXP]\n"
 "Upgrade packages that match REGEXP.\n"
@@ -2358,6 +2515,10 @@ msgstr ""
 "Pakete aktualisieren, die zum regulären Ausdruck REGEXP passen.\n"
 "Dies ist eine andere Schreibweise für „guix package -u“.\n"
 
+#: guix/scripts/upgrade.scm:72
+msgid "upgrade packages to their latest version"
+msgstr "Pakete auf ihre neueste Version aktualisieren"
+
 #: guix/scripts/search.scm:31
 msgid ""
 "Usage: guix search [OPTION] REGEXPS...\n"
@@ -2374,7 +2535,11 @@ msgstr ""
 "\n"
 "Dies ist eine andere Schreibweise für „guix package -s“.\n"
 
-#: guix/scripts/search.scm:74
+#: guix/scripts/search.scm:61
+msgid "search for packages"
+msgstr "nach Paketen suchen"
+
+#: guix/scripts/search.scm:76
 #, scheme-format
 msgid "missing arguments: no regular expressions to search for~%"
 msgstr "Argumente fehlen: Keine zu suchenden regulären Ausdrücke~%"
@@ -2395,7 +2560,11 @@ msgstr ""
 "\n"
 "Dies ist eine andere Schreibweise für „guix package --show=“.\n"
 
-#: guix/scripts/show.scm:74
+#: guix/scripts/show.scm:61
+msgid "show information about packages"
+msgstr "Informationen über Pakete anzeigen"
+
+#: guix/scripts/show.scm:76
 #, scheme-format
 msgid "missing arguments: no package to show~%"
 msgstr "Argumente fehlen: Kein zu zeigendes Paket angegeben~%"
@@ -2569,67 +2738,171 @@ msgstr "„-d“ anstatt „--delete“ zu schreiben ist veraltet, benutzen Sie
 msgid "~s does not denote a duration~%"
 msgstr "~s gibt keine Dauer an~%"
 
-#: guix/scripts/gc.scm:249
+#: guix/scripts/gc.scm:224
+msgid "invoke the garbage collector"
+msgstr "den Müllsammler aufrufen"
+
+#: guix/scripts/gc.scm:251
 msgid "already ~h MiBs available on ~a, nothing to do~%"
 msgstr "Es sind bereits ~h MiB verfügbar auf ~a, nichts zu tun~%"
 
-#: guix/scripts/gc.scm:252
+#: guix/scripts/gc.scm:254
 msgid "freeing ~h MiBs~%"
 msgstr "~h MiB werden freigegeben~%"
 
-#: guix/scripts/gc.scm:291
+#: guix/scripts/gc.scm:293
 #, scheme-format
 msgid "extraneous arguments: ~{~a ~}~%"
 msgstr "Zusätzliche Argumente: ~{~a ~}~%"
 
-#: guix/scripts/gc.scm:315 guix/scripts/gc.scm:318
+#: guix/scripts/gc.scm:317 guix/scripts/gc.scm:320
 msgid "freed ~h MiBs~%"
 msgstr "~h MiB wurden freigegeben~%"
 
-#: guix/scripts/hash.scm:48
+#: guix/scripts/git.scm:26
+msgid ""
+"Usage: guix git COMMAND ARGS...\n"
+"Operate on Git repositories.\n"
+msgstr ""
+"Aufruf: guix git BEFEHL ARGUMENTE …\n"
+"Operationen auf Git-Repositorys durchführen.\n"
+
+#: guix/scripts/git.scm:29 guix/scripts/system.scm:921
+#: guix/scripts/container.scm:30
+msgid "The valid values for ACTION are:\n"
+msgstr "Die gültigen Werte für AKTION sind:\n"
+
+#: guix/scripts/git.scm:31
+msgid "   authenticate    verify commit signatures and authorizations\n"
+msgstr "   authenticate    Commit-Signaturen und Autorisierungen prüfen\n"
+
+#: guix/scripts/git.scm:51
+msgid "operate on Git repositories"
+msgstr "Aktionen auf Git-Repositorys ausführen"
+
+#: guix/scripts/git.scm:57
+#, scheme-format
+msgid "guix git: missing sub-command~%"
+msgstr "guix git: Unterbefehl fehlt~%"
+
+#: guix/scripts/git.scm:67
+#, scheme-format
+msgid "guix git: invalid sub-command~%"
+msgstr "guix git: Unzulässiger Unterbefehl~%"
+
+#: guix/scripts/git/authenticate.scm:81
+#, scheme-format
+msgid "Signing statistics:~%"
+msgstr "Signaturstatistiken:~%"
+
+#: guix/scripts/git/authenticate.scm:94
+msgid ""
+"Usage: guix git authenticate COMMIT SIGNER [OPTIONS...]\n"
+"Authenticate the given Git checkout using COMMIT/SIGNER as its introduction.\n"
+msgstr ""
+"Aufruf: guix git authenticate COMMIT UNTERZEiCHNER [OPTIONEN …]\n"
+"Git-Checkout eingeführt mit COMMIT/UNTERZEICHNER authentifizieren.\n"
+
+#: guix/scripts/git/authenticate.scm:96
+msgid ""
+"\n"
+"  -r, --repository=DIRECTORY\n"
+"                         open the Git repository at DIRECTORY"
+msgstr ""
+"\n"
+"  -r, --repository=VERZEICHNIS\n"
+"                         Git-Repository im VERZEICHNIS öffnen"
+
+#: guix/scripts/git/authenticate.scm:99
+msgid ""
+"\n"
+"  -k, --keyring=REFERENCE\n"
+"                         load keyring from REFERENCE, a Git branch"
+msgstr ""
+"\n"
+"  -k, --keyring=REFERENZ\n"
+"                         Schlüssel aus dem Git-Branch REFERENZ laden"
+
+#: guix/scripts/git/authenticate.scm:102
+msgid ""
+"\n"
+"      --stats            display commit signing statistics upon completion"
+msgstr ""
+"\n"
+"      --stats            am Ende Statistiken über Commit-Signaturen zeigen"
+
+#: guix/scripts/git/authenticate.scm:104
+msgid ""
+"\n"
+"      --cache-key=KEY    cache authenticated commits under KEY"
+msgstr ""
+"\n"
+"      --cache-key=SCHLÜSSEL\n"
+"                         authentifizierte Commits unter dem\n"
+"                          Schlüssel zwischenspeichern"
+
+#: guix/scripts/git/authenticate.scm:106
+msgid ""
+"\n"
+"      --historical-authorizations=FILE\n"
+"                         read historical authorizations from FILE"
+msgstr ""
+"\n"
+"      --historical-authorizations=DATEI\n"
+"                         historische Commits anhand DATEI\n"
+"                          authentifizieren"
+
+#: guix/scripts/git/authenticate.scm:138
+msgid "Authenticating commits ~a to ~a (~h new commits)...~%"
+msgstr "Commits ~a bis ~a werden authentifiziert (~h neue Commits) …~%"
+
+#: guix/scripts/git/authenticate.scm:178
+#, scheme-format
+msgid "wrong number of arguments; expected COMMIT and SIGNER~%"
+msgstr "Falsche Argumentanzahl; COMMIT und UNTERZEICHNER erwartet~%"
+
+#: guix/scripts/hash.scm:50
 msgid ""
 "Usage: guix hash [OPTION] FILE\n"
 "Return the cryptographic hash of FILE.\n"
-"\n"
-"Supported formats: 'nix-base32' (default), 'base32', and 'base16' ('hex'\n"
-"and 'hexadecimal' can be used as well).\n"
 msgstr ""
 "Aufruf: guix hash [OPTION] DATEI\n"
-"Die kryptographische Prüfsumme der DATEI liefern.\n"
-"\n"
-"Unterstützte Formate: „nix-base32“ (Voreinstellung), „base32“ und „base16“\n"
-"(„hex“ und „hexadecimal“ können auch benutzt werden).\n"
+"Den kryptografischen Hash der DATEI liefern.\n"
 
-#: guix/scripts/hash.scm:53
+#: guix/scripts/hash.scm:56
 msgid ""
 "\n"
 "  -x, --exclude-vcs      exclude version control directories"
 msgstr ""
 "\n"
-"  -x, --exclude-vcs      Verzeichnisse zur Versionsverwaltung ignorieren"
+"  -x, --exclude-vcs       Verzeichnisse zur Versionsverwaltung ignorieren"
 
-#: guix/scripts/hash.scm:57
+#: guix/scripts/hash.scm:62
 msgid ""
 "\n"
 "  -r, --recursive        compute the hash on FILE recursively"
 msgstr ""
 "\n"
-"  -r, --recursive        die Prüfsumme der DATEI rekursiv errechnen"
+"  -r, --recursive         die Prüfsumme der DATEI rekursiv errechnen"
 
-#: guix/scripts/hash.scm:151 guix/ui.scm:391 guix/ui.scm:416 guix/ui.scm:744
-#: guix/ui.scm:766 guix/ui.scm:772 guix/ui.scm:789 guix/ui.scm:842
+#: guix/scripts/hash.scm:121
+msgid "compute the cryptographic hash of a file"
+msgstr "die kryptografische Hash-Prüfsumme einer Datei berechnen"
+
+#: guix/scripts/hash.scm:171 guix/ui.scm:397 guix/ui.scm:428 guix/ui.scm:785
+#: guix/ui.scm:833 guix/ui.scm:889
 #, scheme-format
 msgid "~a~%"
 msgstr "~a~%"
 
-#: guix/scripts/hash.scm:154 guix/scripts/system.scm:1186
-#: guix/scripts/system.scm:1202 guix/scripts/system.scm:1209
-#: guix/scripts/system.scm:1215
+#: guix/scripts/hash.scm:174 guix/scripts/system.scm:1247
+#: guix/scripts/system.scm:1263 guix/scripts/system.scm:1270
+#: guix/scripts/system.scm:1276
 #, scheme-format
 msgid "wrong number of arguments~%"
 msgstr "Falsche Argumentanzahl~%"
 
-#: guix/scripts/import.scm:88
+#: guix/scripts/import.scm:89
 msgid ""
 "Usage: guix import IMPORTER ARGS ...\n"
 "Run IMPORTER with ARGS.\n"
@@ -2637,21 +2910,25 @@ msgstr ""
 "Aufruf: guix import IMPORTER ARGUMENTE …\n"
 "IMPORTER mit ARGUMENTEN ausführen.\n"
 
-#: guix/scripts/import.scm:91
+#: guix/scripts/import.scm:92
 msgid "IMPORTER must be one of the importers listed below:\n"
 msgstr "IMPORTER muss einer der unten aufgelisteten Importer sein:\n"
 
-#: guix/scripts/import.scm:105
+#: guix/scripts/import.scm:104
+msgid "import a package definition from an external repository"
+msgstr "eine Paketdefinition von einer externen Paketsammlung importieren"
+
+#: guix/scripts/import.scm:109
 #, scheme-format
 msgid "guix import: missing importer name~%"
 msgstr "guix import: Importer-Name fehlt~%"
 
-#: guix/scripts/import.scm:126
+#: guix/scripts/import.scm:130
 #, scheme-format
 msgid "'~a' import failed~%"
 msgstr "Import von „~a“ fehlgeschlagen~%"
 
-#: guix/scripts/import.scm:127
+#: guix/scripts/import.scm:131
 #, scheme-format
 msgid "~a: invalid importer~%"
 msgstr "~a: Ungültiger Importer~%"
@@ -2741,7 +3018,7 @@ msgstr ""
 msgid "failed to download package '~a'~%"
 msgstr "Paket „~a“ konnte nicht heruntergeladen werden~%"
 
-#: guix/scripts/pull.scm:87
+#: guix/scripts/pull.scm:88
 msgid ""
 "Usage: guix pull [OPTION]...\n"
 "Download and deploy the latest version of Guix.\n"
@@ -2749,7 +3026,7 @@ msgstr ""
 "Aufruf: guix pull [OPTION] …\n"
 "Die neuste Version von Guix herunterladen und installieren.\n"
 
-#: guix/scripts/pull.scm:89
+#: guix/scripts/pull.scm:90
 msgid ""
 "\n"
 "  -C, --channels=FILE    deploy the channels defined in FILE"
@@ -2757,7 +3034,7 @@ msgstr ""
 "\n"
 "  -C, --channels=DATEI   in der DATEI definierte Kanäle laden"
 
-#: guix/scripts/pull.scm:91
+#: guix/scripts/pull.scm:92
 msgid ""
 "\n"
 "      --url=URL          download from the Git repository at URL"
@@ -2765,7 +3042,7 @@ msgstr ""
 "\n"
 "      --url=URL          das Tar-Archiv von Guix von URL herunterladen"
 
-#: guix/scripts/pull.scm:93
+#: guix/scripts/pull.scm:94
 msgid ""
 "\n"
 "      --commit=COMMIT    download the specified COMMIT"
@@ -2773,7 +3050,7 @@ msgstr ""
 "\n"
 "      --commit=COMMIT    den angegebenen COMMIT herunterladen"
 
-#: guix/scripts/pull.scm:95
+#: guix/scripts/pull.scm:96
 msgid ""
 "\n"
 "      --branch=BRANCH    download the tip of the specified BRANCH"
@@ -2781,7 +3058,25 @@ msgstr ""
 "\n"
 "      --branch=BRANCH    die Spitze des angegebenen Branchs herunterladen"
 
-#: guix/scripts/pull.scm:97
+#: guix/scripts/pull.scm:98
+msgid ""
+"\n"
+"      --allow-downgrades allow downgrades to earlier channel revisions"
+msgstr ""
+"\n"
+"      --allow-downgrades Rückstufungen auf frühere Kanalversionen zulassen"
+
+#: guix/scripts/pull.scm:100
+msgid ""
+"\n"
+"      --disable-authentication\n"
+"                         disable channel authentication"
+msgstr ""
+"\n"
+"      --disable-authentication\n"
+"                         Kanäle nicht authentifizieren"
+
+#: guix/scripts/pull.scm:103
 msgid ""
 "\n"
 "  -N, --news             display news compared to the previous generation"
@@ -2789,7 +3084,7 @@ msgstr ""
 "\n"
 "  -N, --news             Neuerungen seit der vorherigen Generation anzeigen"
 
-#: guix/scripts/pull.scm:110
+#: guix/scripts/pull.scm:116
 #, scheme-format
 msgid ""
 "\n"
@@ -2798,7 +3093,7 @@ msgstr ""
 "\n"
 "  -p, --profile=PROFIL   PROFIL benutzen statt ~/.config/guix/current"
 
-#: guix/scripts/pull.scm:116
+#: guix/scripts/pull.scm:122
 msgid ""
 "\n"
 "      --bootstrap        use the bootstrap Guile to build the new Guix"
@@ -2807,47 +3102,57 @@ msgstr ""
 "      --bootstrap        das Bootstrap-Guile benutzen, um das neue Guix zu\n"
 "                           erstellen"
 
-#: guix/scripts/pull.scm:217
+#: guix/scripts/pull.scm:211
+#, scheme-format
+msgid "rolling back channel '~a' from ~a to ~a~%"
+msgstr "Kanal „~a“ wird von ~a auf ~a zurückgesetzt~%"
+
+#: guix/scripts/pull.scm:214
+#, scheme-format
+msgid "moving channel '~a' from ~a to unrelated commit ~a~%"
+msgstr "Kanal „~a“ wird von ~a auf den damit nicht zusammenhängenden Commit ~a verschoben~%"
+
+#: guix/scripts/pull.scm:243
 msgid "New in this revision:\n"
 msgstr "Neu in dieser Version:\n"
 
 #. TRANSLATORS: This describes a "channel"; the first placeholder is
 #. the channel name (e.g., "guix") and the second placeholder is its
 #. URL.
-#: guix/scripts/pull.scm:226
+#: guix/scripts/pull.scm:252
 #, scheme-format
 msgid "    ~a at ~a~%"
 msgstr "    ~a von ~a~%"
 
-#: guix/scripts/pull.scm:264
+#: guix/scripts/pull.scm:290
 #, scheme-format
 msgid "    commit ~a~%"
 msgstr "    Commit ~a~%"
 
-#: guix/scripts/pull.scm:301
+#: guix/scripts/pull.scm:327
 #, scheme-format
 msgid "News for channel '~a'~%"
 msgstr "Neuigkeiten zum Kanal „~a“~%"
 
-#: guix/scripts/pull.scm:327
+#: guix/scripts/pull.scm:353
 #, scheme-format
 msgid "  ~a new channel:~%"
 msgid_plural "  ~a new channels:~%"
 msgstr[0] "  ~a neuer Kanal:~%"
 msgstr[1] "  ~a neue Kanäle:~%"
 
-#: guix/scripts/pull.scm:337
+#: guix/scripts/pull.scm:363
 #, scheme-format
 msgid "  ~a channel removed:~%"
 msgid_plural "  ~a channels removed:~%"
 msgstr[0] "  ~a Kanal entfernt:~%"
 msgstr[1] "  ~a Kanäle entfernt:~%"
 
-#: guix/scripts/pull.scm:413
+#: guix/scripts/pull.scm:439
 msgid "Run @command{guix pull --news} to read all the news."
 msgstr "Führen Sie @command{guix pull --news} aus, um alle Neuigkeiten zu lesen."
 
-#: guix/scripts/pull.scm:421
+#: guix/scripts/pull.scm:447
 #, scheme-format
 msgid ""
 "After setting @code{PATH}, run\n"
@@ -2856,44 +3161,34 @@ msgstr ""
 "Nachdem Sie @code{PATH} festgelegt haben, sollten Sie\n"
 "@command{hash guix} ausführen, damit Ihre Shell @file{~a} verwendet."
 
-#: guix/scripts/pull.scm:446
-#, scheme-format
-msgid "Git error ~a~%"
-msgstr "Git-Fehler ~a~%"
-
-#: guix/scripts/pull.scm:448 guix/git.scm:363
-#, scheme-format
-msgid "Git error: ~a~%"
-msgstr "Git-Fehler: ~a~%"
-
-#: guix/scripts/pull.scm:473
+#: guix/scripts/pull.scm:482
 #, scheme-format
 msgid "Migrating profile generations to '~a'...~%"
 msgstr "Verschiebe Profilgenerationen nach „~a“ …~%"
 
-#: guix/scripts/pull.scm:515
+#: guix/scripts/pull.scm:525
 #, scheme-format
 msgid "while creating symlink '~a': ~a~%"
 msgstr "Beim Erstellen einer symbolischen Verknüpfung „~a“: ~a~%"
 
-#: guix/scripts/pull.scm:604
+#: guix/scripts/pull.scm:614
 msgid "  ~h new package: ~a~%"
 msgid_plural "  ~h new packages: ~a~%"
 msgstr[0] "  ~h neues Paket: ~a~%"
 msgstr[1] "  ~h neue Pakete: ~a~%"
 
-#: guix/scripts/pull.scm:612
+#: guix/scripts/pull.scm:622
 msgid "  ~h package upgraded: ~a~%"
 msgid_plural "  ~h packages upgraded: ~a~%"
 msgstr[0] "  ~h Paket aktualisiert: ~a~%"
 msgstr[1] "  ~h Pakete aktualisiert: ~a~%"
 
-#: guix/scripts/pull.scm:701
+#: guix/scripts/pull.scm:711
 #, scheme-format
 msgid "'~a' did not return a list of channels~%"
 msgstr "„~a“ hat keine Liste von Kanälen geliefert~%"
 
-#: guix/scripts/pull.scm:717
+#: guix/scripts/pull.scm:727
 #, scheme-format
 msgid ""
 "The 'GUIX_PULL_URL' environment variable is deprecated.\n"
@@ -2902,7 +3197,11 @@ msgstr ""
 "Die Umgebungsvariable „GUIX_PULL_URL“ wird nicht mehr lange unterstützt.\n"
 "Benutzen Sie stattdessen „~/.config/guix/channels.scm“."
 
-#: guix/scripts/pull.scm:771
+#: guix/scripts/pull.scm:755
+msgid "pull the latest revision of Guix"
+msgstr "die neueste Version von Guix laden"
+
+#: guix/scripts/pull.scm:795
 #, scheme-format
 msgid "Building from this channel:~%"
 msgid_plural "Building from these channels:~%"
@@ -2959,37 +3258,37 @@ msgstr "Unzulässiges Format des Signaturfeldes: ~a~%"
 msgid "'~a' does not name a store item~%"
 msgstr "„~a“ benennt kein Objekt im Store~%"
 
-#: guix/scripts/substitute.scm:596
+#: guix/scripts/substitute.scm:598
 #, scheme-format
 msgid "~a: host not found: ~a~%"
 msgstr "~a: Rechnernamen nicht gefunden: ~a~%"
 
-#: guix/scripts/substitute.scm:602
+#: guix/scripts/substitute.scm:604
 #, scheme-format
 msgid "~a: connection failed: ~a~%"
 msgstr "~a: Verbindung fehlgeschlagen: ~a~%"
 
-#: guix/scripts/substitute.scm:618
+#: guix/scripts/substitute.scm:620
 #, scheme-format
 msgid "updating substitutes from '~a'... ~5,1f%"
 msgstr "Liste der Substitute von „~a“ wird aktualisiert … ~5,1f%"
 
-#: guix/scripts/substitute.scm:689
+#: guix/scripts/substitute.scm:691
 #, scheme-format
 msgid "~s: unsupported server URI scheme~%"
 msgstr "~s: Nicht unterstütztes URI-Schema für den Server~%"
 
-#: guix/scripts/substitute.scm:829
+#: guix/scripts/substitute.scm:831
 #, scheme-format
 msgid "host name lookup error: ~a~%"
 msgstr "Fehler beim Nachschlagen des Rechnernamens: ~a~%"
 
-#: guix/scripts/substitute.scm:834
+#: guix/scripts/substitute.scm:836
 #, scheme-format
 msgid "TLS error in procedure '~a': ~a~%"
 msgstr "TLS-Fehler in Prozedur „~a“: ~a~%"
 
-#: guix/scripts/substitute.scm:845
+#: guix/scripts/substitute.scm:847
 msgid ""
 "Usage: guix substitute [OPTION]...\n"
 "Internal tool to substitute a pre-built binary to a local build.\n"
@@ -2998,7 +3297,7 @@ msgstr ""
 "Internes Werkzeug zum Substituieren einer vorab erstellten Binärdatei zu einer\n"
 "lokalen Erstellung.\n"
 
-#: guix/scripts/substitute.scm:847
+#: guix/scripts/substitute.scm:849
 msgid ""
 "\n"
 "      --query            report on the availability of substitutes for the\n"
@@ -3009,7 +3308,7 @@ msgstr ""
 "                           Standardeingabe übermittelten Store-Dateinamen\n"
 "                           berichten"
 
-#: guix/scripts/substitute.scm:850
+#: guix/scripts/substitute.scm:852
 msgid ""
 "\n"
 "      --substitute STORE-FILE DESTINATION\n"
@@ -3021,171 +3320,196 @@ msgstr ""
 "                         STORE-DATEI herunterladen und als ein Nar in einer\n"
 "                           Datei namens ZIEL speichern"
 
-#: guix/scripts/substitute.scm:971
+#: guix/scripts/substitute.scm:973
 #, scheme-format
 msgid "no valid substitute for '~a'~%"
 msgstr "Kein gültiges Substitut für „~a“~%"
 
-#: guix/scripts/substitute.scm:981
+#: guix/scripts/substitute.scm:983
 #, scheme-format
 msgid "Downloading ~a...~%"
 msgstr "~a wird heruntergeladen …~%"
 
-#: guix/scripts/substitute.scm:1041
+#: guix/scripts/substitute.scm:1043
 msgid "ACL for archive imports seems to be uninitialized, substitutes may be unavailable\n"
 msgstr ""
 "Zugriffskontrollliste (ACL) für Archivimporte scheint nicht initialisiert zu\n"
 "sein, Substitute könnten nicht verfügbar sein\n"
 
-#: guix/scripts/substitute.scm:1095
+#: guix/scripts/substitute.scm:1097
 #, scheme-format
 msgid "~a: invalid URI~%"
 msgstr "~a: Ungültige URI~%"
 
-#: guix/scripts/substitute.scm:1166
+#: guix/scripts/substitute.scm:1101
+msgid "implement the build daemon's substituter protocol"
+msgstr "das Substituter-Protokoll des Erstellungsdaemons implementieren"
+
+#: guix/scripts/substitute.scm:1171
 #, scheme-format
 msgid "~a: unrecognized options~%"
 msgstr "~a: Nicht erkannte Optionen~%"
 
-#: guix/scripts/authenticate.scm:59
+#: guix/scripts/authenticate.scm:64
 #, scheme-format
-msgid "cannot find public key for secret key '~a'~%"
-msgstr ""
-"Öffentlicher Schlüssel des geheimen Schlüssels „~a“ konnte\n"
-"nicht gefunden werden~%"
+msgid "failed to load key pair at '~a': ~a~%"
+msgstr "Schlüsselpaar aus „~a“ konnte nicht geladen werden: ~a~%"
 
-#: guix/scripts/authenticate.scm:79
+#: guix/scripts/authenticate.scm:86
 #, scheme-format
-msgid "error: invalid signature: ~a~%"
-msgstr "Fehler: Ungültige Signatur: ~a~%"
+msgid "invalid signature: ~a"
+msgstr "Ungültige Signatur: ~a"
 
-#: guix/scripts/authenticate.scm:81
+#: guix/scripts/authenticate.scm:89
 #, scheme-format
-msgid "error: unauthorized public key: ~a~%"
-msgstr "Fehler: Nicht autorisierter öffentlicher Schlüssel: ~a~%"
+msgid "unauthorized public key: ~a"
+msgstr "Nicht autorisierter öffentlicher Schlüssel: ~a"
 
-#: guix/scripts/authenticate.scm:83
+#: guix/scripts/authenticate.scm:92
 #, scheme-format
-msgid "error: corrupt signature data: ~a~%"
-msgstr "Fehler: Signaturdaten beschädigt: ~a~%"
+msgid "corrupt signature data: ~a"
+msgstr "Signaturdaten beschädigt: ~a"
 
-#: guix/scripts/authenticate.scm:121
+#: guix/scripts/authenticate.scm:151
+msgid "sign or verify signatures on normalized archives (nars)"
+msgstr "normalisierte Archive (Nars) signieren oder ihre Signaturen prüfen"
+
+#: guix/scripts/authenticate.scm:184
 msgid ""
 "Usage: guix authenticate OPTION...\n"
-"Sign or verify the signature on the given file.  This tool is meant to\n"
-"be used internally by 'guix-daemon'.\n"
+"Sign data or verify signatures.  This tool is meant to be used internally by\n"
+"'guix-daemon'.\n"
 msgstr ""
 "Aufruf: guix authenticate OPTION …\n"
-"Angegebene Datei signieren oder die Signatur überprüfen. Dieses Werkzeug\n"
-"ist dafür bestimmt, intern von „guix-daemon“ aufgerufen zu werden.\n"
+"Daten signieren oder die Signatur überprüfen. Dieses Werkzeug ist\n"
+"dafür bestimmt, intern von „guix-daemon“ aufgerufen zu werden.\n"
+
+#: guix/scripts/authenticate.scm:218
+#, scheme-format
+msgid "~s: invalid command; ignoring~%"
+msgstr "~s: Ungültiger Befehl, wird ignoriert~%"
 
-#: guix/scripts/authenticate.scm:127
-msgid "wrong arguments"
-msgstr "Falsche Argumente"
+#: guix/scripts/authenticate.scm:223
+#, scheme-format
+msgid "wrong arguments~%"
+msgstr "Falsche Argumente~%"
 
-#: guix/scripts/system.scm:155
+#: guix/scripts/system.scm:161
 #, scheme-format
 msgid "failed to register '~a' under '~a'~%"
 msgstr "„~a“ konnte nicht unter „~a“ registriert werden~%"
 
-#: guix/scripts/system.scm:170
+#: guix/scripts/system.scm:176
 #, scheme-format
 msgid "copying to '~a'..."
 msgstr "Nach „~a“ kopieren …"
 
-#: guix/scripts/system.scm:197
+#: guix/scripts/system.scm:203
 #, scheme-format
 msgid "initializing the current root file system~%"
 msgstr "Aktuelles Wurzeldateisystem wird initialisiert~%"
 
-#: guix/scripts/system.scm:211
+#: guix/scripts/system.scm:217
 #, scheme-format
 msgid "not running as 'root', so the ownership of '~a' may be incorrect!~%"
 msgstr ""
 "Keine Administratorrechte, daher können die Eigentümer von „~a“ falsch\n"
 "gespeichert worden sein!~%"
 
-#: guix/scripts/system.scm:241 guix/scripts/system.scm:733
-#: guix/scripts/system.scm:837
+#: guix/scripts/system.scm:247 guix/scripts/system.scm:743
+#: guix/scripts/system.scm:851
 #, scheme-format
 msgid "bootloader successfully installed on '~a'~%"
 msgstr "Bootloader erfolgreich auf „~a“ installiert~%"
 
-#: guix/scripts/system.scm:264
+#: guix/scripts/system.scm:270
 #, scheme-format
 msgid "while talking to shepherd: ~a~%"
 msgstr "Bei der Kommunikation mit Shepherd: ~a~%"
 
-#: guix/scripts/system.scm:271
+#: guix/scripts/system.scm:278
 #, scheme-format
 msgid "service '~a' could not be found~%"
 msgstr "Dienst „~a“ konnte nicht gefunden werden~%"
 
-#: guix/scripts/system.scm:274
+#: guix/scripts/system.scm:281
 #, scheme-format
 msgid "service '~a' does not have an action '~a'~%"
 msgstr "Dienst „~a“ hat keine Aktion „~a“~%"
 
-#: guix/scripts/system.scm:278
+#: guix/scripts/system.scm:285
 #, scheme-format
 msgid "exception caught while executing '~a' on service '~a':~%"
 msgstr "Ausnahme aufgetreten bei der Ausführung von „~a“ auf Dienst „~a“:~%"
 
-#: guix/scripts/system.scm:286
+#: guix/scripts/system.scm:293
 #, scheme-format
 msgid "something went wrong: ~s~%"
 msgstr "Etwas ist schiefgelaufen: ~s~%"
 
-#: guix/scripts/system.scm:289
+#: guix/scripts/system.scm:296
 #, scheme-format
 msgid "shepherd error~%"
 msgstr "Shepherd-Fehler~%"
 
-#: guix/scripts/system.scm:353
+#: guix/scripts/system.scm:300
+#, scheme-format
+msgid "some services could not be upgraded~%"
+msgstr "Manche Dienste konnten nicht aktualisiert werden~%"
+
+#: guix/scripts/system.scm:301
+msgid ""
+"To allow changes to all the system services to take\n"
+"effect, you will need to reboot."
+msgstr ""
+"Um Änderungen an allen Systemdiensten umzusetzen,\n"
+"müssen Sie den Rechner neu starten."
+
+#: guix/scripts/system.scm:364
 #, scheme-format
 msgid "cannot switch to system generation '~a'~%"
 msgstr "Zu Generation „~a“ kann nicht gewechselt werden~%"
 
-#: guix/scripts/system.scm:422
+#: guix/scripts/system.scm:438
 msgid "the DAG of services"
 msgstr "gerichteter azyklischer Graph der Dienste"
 
-#: guix/scripts/system.scm:435
+#: guix/scripts/system.scm:451
 msgid "the dependency graph of shepherd services"
 msgstr "Abhängigkeitsgraph der Shepherd-Dienste"
 
-#: guix/scripts/system.scm:461
+#: guix/scripts/system.scm:466
 #, scheme-format
 msgid "      repository URL: ~a~%"
 msgstr "      Repository-URL: ~a~%"
 
-#: guix/scripts/system.scm:463
+#: guix/scripts/system.scm:468
 #, scheme-format
 msgid "      branch: ~a~%"
 msgstr "      Branch: ~a~%"
 
-#: guix/scripts/system.scm:464
+#: guix/scripts/system.scm:469
 #, scheme-format
 msgid "      commit: ~a~%"
 msgstr "      Commit: ~a~%"
 
-#: guix/scripts/system.scm:486
+#: guix/scripts/system.scm:489
 #, scheme-format
 msgid "  file name: ~a~%"
 msgstr "  Dateiname: ~a~%"
 
-#: guix/scripts/system.scm:487
+#: guix/scripts/system.scm:490
 #, scheme-format
 msgid "  canonical file name: ~a~%"
 msgstr "  kanonischer Dateiname: ~a~%"
 
 #. TRANSLATORS: Please preserve the two-space indentation.
-#: guix/scripts/system.scm:489
+#: guix/scripts/system.scm:492
 #, scheme-format
 msgid "  label: ~a~%"
 msgstr "  Bezeichnung: ~a~%"
 
-#: guix/scripts/system.scm:490
+#: guix/scripts/system.scm:493
 #, scheme-format
 msgid "  bootloader: ~a~%"
 msgstr "  Bootloader: ~a~%"
@@ -3198,34 +3522,39 @@ msgstr "  Bootloader: ~a~%"
 #. root device: label: "my-root"
 #. or just:
 #. root device: /dev/sda3
-#: guix/scripts/system.scm:500
+#: guix/scripts/system.scm:503
 #, scheme-format
 msgid "  root device: ~[UUID: ~a~;label: ~s~;~a~]~%"
 msgstr "  Root-Gerät: ~[UUID: ~a~;label: ~s~;~a~]~%"
 
-#: guix/scripts/system.scm:506
+#: guix/scripts/system.scm:509
 #, scheme-format
 msgid "  kernel: ~a~%"
 msgstr "  Kernel: ~a~%"
 
+#: guix/scripts/system.scm:514
+#, scheme-format
+msgid "  multiboot: ~a~%"
+msgstr "  Multiboot: ~a~%"
+
 #. TRANSLATORS: Here "channel" is the same terminology as used in
 #. "guix describe" and "guix pull --channels".
-#: guix/scripts/system.scm:516
+#: guix/scripts/system.scm:520
 #, scheme-format
 msgid "  channels:~%"
 msgstr "  Kanäle:~%"
 
-#: guix/scripts/system.scm:519
+#: guix/scripts/system.scm:523
 #, scheme-format
 msgid "  configuration file: ~a~%"
 msgstr "  Konfigurationsdatei: ~a~%"
 
-#: guix/scripts/system.scm:593
+#: guix/scripts/system.scm:596
 #, scheme-format
-msgid "~a: error: device '~a' not found: ~a~%"
-msgstr "~a: Fehler: Gerät „~a“ nicht gefunden: ~a~%"
+msgid "device '~a' not found: ~a~%"
+msgstr "Gerät „~a“ nicht gefunden: ~a~%"
 
-#: guix/scripts/system.scm:597
+#: guix/scripts/system.scm:599
 #, scheme-format
 msgid ""
 "If '~a' is a file system\n"
@@ -3234,32 +3563,32 @@ msgstr ""
 "Falls „~a“ ein Dateisystem bezeichnet, schreiben Sie\n"
 "@code{(file-system-label ~s)} in Ihr @code{device}-Feld."
 
-#: guix/scripts/system.scm:605
+#: guix/scripts/system.scm:608
 #, scheme-format
-msgid "~a: error: file system with label '~a' not found~%"
-msgstr "~a: Fehler: Kein Dateisystem mit Bezeichnung „~a“ gefunden~%"
+msgid "file system with label '~a' not found~%"
+msgstr "Kein Dateisystem mit Bezeichnung „~a“ gefunden~%"
 
-#: guix/scripts/system.scm:610
+#: guix/scripts/system.scm:614
 #, scheme-format
-msgid "~a: error: file system with UUID '~a' not found~%"
-msgstr "~a: Fehler: Kein Dateisystem mit UUID „~a“ gefunden~%"
+msgid "file system with UUID '~a' not found~%"
+msgstr "Kein Dateisystem mit UUID „~a“ gefunden~%"
 
-#: guix/scripts/system.scm:711
+#: guix/scripts/system.scm:721
 #, scheme-format
 msgid "Consider running 'guix pull' before 'reconfigure'.~%"
 msgstr "Vielleicht möchten Sie „guix pull“ ausführen vor „reconfigure“.~%"
 
-#: guix/scripts/system.scm:712
+#: guix/scripts/system.scm:722
 #, scheme-format
 msgid "Failing to do that may downgrade your system!~%"
 msgstr "Andernfalls könnte Ihr System auf einen älteren Stand zurückgesetzt werden!~%"
 
-#: guix/scripts/system.scm:830
+#: guix/scripts/system.scm:844
 #, scheme-format
 msgid "activating system...~%"
 msgstr "System wird aktiviert …~%"
 
-#: guix/scripts/system.scm:841
+#: guix/scripts/system.scm:855
 msgid ""
 "To complete the upgrade, run 'herd restart SERVICE' to stop,\n"
 "upgrade, and restart each service that was not automatically restarted.\n"
@@ -3268,12 +3597,20 @@ msgstr ""
 "nicht automatisch neu gestartet werden konnte, „herd restart DIENST“\n"
 "ausführen, um ihn anzuhalten, zu aktualisieren und neu zu starten.\n"
 
-#: guix/scripts/system.scm:846
+#: guix/scripts/system.scm:858
+msgid "Run 'herd status' to view the list of services on your system.\n"
+msgstr "Führen Sie „herd status“ aus, um die Dienste auf Ihrem System zu sehen.\n"
+
+#: guix/scripts/system.scm:862
 #, scheme-format
 msgid "initializing operating system under '~a'...~%"
 msgstr "Betriebssystem unter „~a“ wird initialisiert …~%"
 
-#: guix/scripts/system.scm:890
+#: guix/scripts/system.scm:907
+msgid "The available image types are:\n"
+msgstr "Die verfügbaren Abbildtypen sind:\n"
+
+#: guix/scripts/system.scm:917
 msgid ""
 "Usage: guix system [OPTION ...] ACTION [ARG ...] [FILE]\n"
 "Build the operating system declared in FILE according to ACTION.\n"
@@ -3283,81 +3620,77 @@ msgstr ""
 "Das in DATEI deklarierte Betriebssystem entsprechend der AKTION erstellen.\n"
 "Manche AKTIONEN unterstützen weitere ARGUMENTE.\n"
 
-#: guix/scripts/system.scm:894 guix/scripts/container.scm:29
-msgid "The valid values for ACTION are:\n"
-msgstr "Die gültigen Werte für AKTION sind:\n"
-
-#: guix/scripts/system.scm:896
+#: guix/scripts/system.scm:923
 msgid "   search           search for existing service types\n"
 msgstr "   search              suche nach bestehenden Diensttypen\n"
 
-#: guix/scripts/system.scm:898
+#: guix/scripts/system.scm:925
 msgid "   reconfigure      switch to a new operating system configuration\n"
 msgstr "   reconfigure         zur neuen Betriebssystemkonfiguration wechseln\n"
 
-#: guix/scripts/system.scm:900
+#: guix/scripts/system.scm:927
 msgid "   roll-back        switch to the previous operating system configuration\n"
 msgstr "   roll-back           zur vorherigen Betriebssystemkonfiguration wechseln\n"
 
-#: guix/scripts/system.scm:902
+#: guix/scripts/system.scm:929
 msgid "   describe         describe the current system\n"
 msgstr "   describe            das aktuelle System beschreiben\n"
 
-#: guix/scripts/system.scm:904
+#: guix/scripts/system.scm:931
 msgid "   list-generations list the system generations\n"
 msgstr "   list-generations    die Systemgenerationen auflisten\n"
 
-#: guix/scripts/system.scm:906
+#: guix/scripts/system.scm:933
 msgid "   switch-generation switch to an existing operating system configuration\n"
 msgstr "   switch-generation   zu einer bestehenden Betriebssystemkonfiguration wechseln\n"
 
-#: guix/scripts/system.scm:908
+#: guix/scripts/system.scm:935
 msgid "   delete-generations delete old system generations\n"
 msgstr "   delete-generations  alte Systemgenerationen löschen\n"
 
-#: guix/scripts/system.scm:910
+#: guix/scripts/system.scm:937
 msgid "   build            build the operating system without installing anything\n"
 msgstr "   build               das Betriebssystem erstellen, ohne etwas zu installieren\n"
 
-#: guix/scripts/system.scm:912
+#: guix/scripts/system.scm:939
 msgid "   container        build a container that shares the host's store\n"
 msgstr ""
 "   container           einen Container erstellen, der den Store mit dem\n"
 "                         Wirtssystem teilt\n"
 
-#: guix/scripts/system.scm:914
+#: guix/scripts/system.scm:941
 msgid "   vm               build a virtual machine image that shares the host's store\n"
 msgstr ""
 "   vm                  ein Image für eine virtuelle Maschine erstellen, das den\n"
 "                         Store mit dem Wirtssystem teilt\n"
 
-#: guix/scripts/system.scm:916
+#: guix/scripts/system.scm:943
 msgid "   vm-image         build a freestanding virtual machine image\n"
 msgstr ""
 "   vm-image            ein unabhängiges Image für eine virtuelle Maschine\n"
 "                         erstellen\n"
 
-#: guix/scripts/system.scm:918
+#: guix/scripts/system.scm:945
 msgid "   disk-image       build a disk image, suitable for a USB stick\n"
 msgstr "   disk-image          ein Disk-Image z.B. für einen USB-Stick erstellen\n"
 
-#: guix/scripts/system.scm:920
+#: guix/scripts/system.scm:947
 msgid "   docker-image     build a Docker image\n"
 msgstr "   docker-image        ein Docker-Image z.B. für einen USB-Stick erstellen\n"
 
-#: guix/scripts/system.scm:922
+#: guix/scripts/system.scm:949
 msgid "   init             initialize a root file system to run GNU\n"
 msgstr "   init                ein Wurzeldateisystem initialisieren, um GNU auszuführen\n"
 
-#: guix/scripts/system.scm:924
+#: guix/scripts/system.scm:951
 msgid "   extension-graph  emit the service extension graph in Dot format\n"
 msgstr "   extension-graph     den Erweiterungsgraphen im Dot-Format ausgeben\n"
 
-#: guix/scripts/system.scm:926
+#: guix/scripts/system.scm:953
 msgid "   shepherd-graph   emit the graph of shepherd services in Dot format\n"
 msgstr "   shepherd-graph      den Graphen der Shepherd-Dienste im Dot-Format ausgeben\n"
 
-#: guix/scripts/system.scm:930
+#: guix/scripts/system.scm:957
 msgid ""
 "\n"
 "  -d, --derivation       return the derivation of the given system"
@@ -3365,7 +3698,7 @@ msgstr ""
 "\n"
 "  -d, --derivation       die Ableitung des gegebenen Systems liefern"
 
-#: guix/scripts/system.scm:932
+#: guix/scripts/system.scm:959
 msgid ""
 "\n"
 "  -e, --expression=EXPR  consider the operating-system EXPR evaluates to\n"
@@ -3376,7 +3709,17 @@ msgstr ""
 "                         das operating-system betrachten, zu dem AUSDRUCK\n"
 "                           ausgewertet wird, statt etwa eine DATEI auszulesen"
 
-#: guix/scripts/system.scm:935
+#: guix/scripts/system.scm:962
+msgid ""
+"\n"
+"      --allow-downgrades for 'reconfigure', allow downgrades to earlier\n"
+"                         channel revisions"
+msgstr ""
+"\n"
+"      --allow-downgrades bei „reconfigure“ Rückstufungen auf frühere\n"
+"                          Kanalversionen zulassen"
+
+#: guix/scripts/system.scm:965
 msgid ""
 "\n"
 "      --on-error=STRATEGY\n"
@@ -3386,22 +3729,26 @@ msgstr ""
 "\n"
 "      --on-error=STRATEGIE\n"
 "                         STRATEGIE (entweder nothing-special, backtrace oder\n"
-"                           debug) anwenden, wenn beim Lesen der DATEI ein\n"
-"                           Fehler auftritt"
+"                          debug) anwenden, wenn beim Lesen der DATEI ein\n"
+"                          Fehler auftritt"
 
-#: guix/scripts/system.scm:939
+#: guix/scripts/system.scm:969
 msgid ""
 "\n"
-"      --file-system-type=TYPE\n"
-"                         for 'disk-image', produce a root file system of TYPE\n"
-"                         (one of 'ext4', 'iso9660')"
+"      --list-image-types list available image types"
 msgstr ""
 "\n"
-"      --file-system-type=TYP\n"
-"                         bei „disk-image“ ein Wurzeldateisystem des angegebenen\n"
-"                           TYPS („ext4“ oder „iso9660“) erzeugen"
+"      --list-image-types verfügbare Abbildtypen auflisten"
 
-#: guix/scripts/system.scm:943
+#: guix/scripts/system.scm:971
+msgid ""
+"\n"
+"  -t, --image-type=TYPE  for 'disk-image', produce an image of TYPE"
+msgstr ""
+"\n"
+"  -t, --image-type=TYP   bei „disk-image“ ein Abbild des TYPs erstellen"
+
+#: guix/scripts/system.scm:973
 msgid ""
 "\n"
 "      --image-size=SIZE  for 'vm-image', produce an image of SIZE"
@@ -3410,7 +3757,7 @@ msgstr ""
 "      --image-size=GRÖSSE\n"
 "                         bei „vm-image“ ein Image der GRÖSSE erstellen"
 
-#: guix/scripts/system.scm:945
+#: guix/scripts/system.scm:975
 msgid ""
 "\n"
 "      --no-bootloader    for 'init', do not install a bootloader"
@@ -3418,7 +3765,17 @@ msgstr ""
 "\n"
 "      --no-bootloader    bei „init“ keinen Bootloader installieren"
 
-#: guix/scripts/system.scm:947 guix/scripts/pack.scm:938
+#: guix/scripts/system.scm:977
+msgid ""
+"\n"
+"      --label=LABEL      for 'disk-image', label disk image with LABEL"
+msgstr ""
+"\n"
+"      --label=BEZEICHNUNG\n"
+"                         bei „disk-image“ wird das Abbild mit\n"
+"                           der BEZEICHNUNG versehen"
+
+#: guix/scripts/system.scm:979 guix/scripts/pack.scm:1086
 msgid ""
 "\n"
 "      --save-provenance  save provenance information"
@@ -3426,27 +3783,31 @@ msgstr ""
 "\n"
 "      --save-provenance  Provenienzinformationen speichern"
 
-#: guix/scripts/system.scm:949
+#: guix/scripts/system.scm:981
 msgid ""
 "\n"
-"      --share=SPEC       for 'vm', share host file system according to SPEC"
+"      --share=SPEC       for 'vm' and 'container', share host file system with\n"
+"                         read/write access according to SPEC"
 msgstr ""
 "\n"
 "      --share=SPEZIFIKATION\n"
-"                         bei „vm“ das Wirtsdateisystem entsprechend der\n"
-"                           SPEZIFIKATION teilen"
+"                         bei „vm“ und „container“ das Wirtsdateisystem\n"
+"                           entsprechend der SPEZIFIKATION mit\n"
+"                           Lese-/Schreibzugriff teilen"
 
-#: guix/scripts/system.scm:951
+#: guix/scripts/system.scm:984
 msgid ""
 "\n"
-"      --expose=SPEC      for 'vm', expose host file system according to SPEC"
+"      --expose=SPEC      for 'vm' and 'container', expose host file system\n"
+"                         directory as read-only according to SPEC"
 msgstr ""
 "\n"
 "      --expose=SPEZIFIKATION\n"
-"                         bei „vm“ das Wirtsdateisystem entsprechend der\n"
-"                           SPEZIFIKATION zugänglich machen"
+"                         bei „vm“ und „container“ das Wirtsdateisystem\n"
+"                           entsprechend der SPEZIFIKATION nur mit\n"
+"                           Lesezugriff zugänglich machen"
 
-#: guix/scripts/system.scm:953
+#: guix/scripts/system.scm:987
 msgid ""
 "\n"
 "  -N, --network          for 'container', allow containers to access the network"
@@ -3455,7 +3816,7 @@ msgstr ""
 "  -N, --network          bei Nutzung von „container“, Containern\n"
 "                           Netzwerkzugriff erlauben"
 
-#: guix/scripts/system.scm:955
+#: guix/scripts/system.scm:989
 msgid ""
 "\n"
 "  -r, --root=FILE        for 'vm', 'vm-image', 'disk-image', 'container',\n"
@@ -3468,7 +3829,7 @@ msgstr ""
 "                           auf das Ergebnis machen und als Müllsammler-Wurzel\n"
 "                           registrieren"
 
-#: guix/scripts/system.scm:959
+#: guix/scripts/system.scm:993
 msgid ""
 "\n"
 "      --full-boot        for 'vm', make a full boot sequence"
@@ -3476,7 +3837,7 @@ msgstr ""
 "\n"
 "      --full-boot        bei „vm“ einen vollständigen Bootvorgang simulieren"
 
-#: guix/scripts/system.scm:961
+#: guix/scripts/system.scm:995
 msgid ""
 "\n"
 "      --skip-checks      skip file system and initrd module safety checks"
@@ -3485,47 +3846,51 @@ msgstr ""
 "      --skip-checks      Dateisystem- und Initrd-Modul-Fehlerprüfung\n"
 "                           überspringen"
 
-#: guix/scripts/system.scm:1078
+#: guix/scripts/system.scm:1132
 #, scheme-format
 msgid "'~a' does not return an operating system~%"
 msgstr "„~a“ liefert kein Betriebssystem~%"
 
-#: guix/scripts/system.scm:1101
+#: guix/scripts/system.scm:1155
 #, scheme-format
 msgid "both file and expression cannot be specified~%"
 msgstr "Es können nicht sowohl Datei als auch Ausdruck angegeben werden~%"
 
-#: guix/scripts/system.scm:1108
+#: guix/scripts/system.scm:1162
 #, scheme-format
 msgid "no configuration specified~%"
 msgstr "Keine Konfiguration angegeben~%"
 
-#: guix/scripts/system.scm:1191
+#: guix/scripts/system.scm:1252
 #, scheme-format
 msgid "no system generation, nothing to describe~%"
 msgstr "Keine Systemgeneration angegeben, kann nicht beschrieben werden~%"
 
-#: guix/scripts/system.scm:1235
+#: guix/scripts/system.scm:1284
+msgid "build and deploy full operating systems"
+msgstr "vollständige Betriebssysteme erstellen und einspielen"
+
+#: guix/scripts/system.scm:1298
 #, scheme-format
 msgid "~a: unknown action~%"
 msgstr "~a: Unbekannte Aktion~%"
 
-#: guix/scripts/system.scm:1251
+#: guix/scripts/system.scm:1314
 #, scheme-format
 msgid "wrong number of arguments for action '~a'~%"
 msgstr "Falsche Anzahl an Argumenten für Aktion „~a“~%"
 
-#: guix/scripts/system.scm:1256
+#: guix/scripts/system.scm:1319
 #, scheme-format
 msgid "guix system: missing command name~%"
 msgstr "guix system: Befehlsname fehlt~%"
 
-#: guix/scripts/system.scm:1258
+#: guix/scripts/system.scm:1321
 #, scheme-format
 msgid "Try 'guix system --help' for more information.~%"
 msgstr "Rufen Sie „guix system --help“ auf, um weitere Informationen zu erhalten.~%"
 
-#: guix/scripts/system/search.scm:92 guix/ui.scm:1443 guix/ui.scm:1461
+#: guix/scripts/system/search.scm:93 guix/ui.scm:1540 guix/ui.scm:1558
 msgid "unknown"
 msgstr "unbekannt"
 
@@ -3560,7 +3925,25 @@ msgstr ""
 "  -c, --checkers=PRÜFER1,PRÜFER2 …\n"
 "                         nur die angegebenen Prüfer anwenden"
 
-#: guix/scripts/lint.scm:106
+#: guix/scripts/lint.scm:101
+msgid ""
+"\n"
+"  -x, --exclude=CHECKER1,CHECKER2...\n"
+"                         exclude the specified checkers"
+msgstr ""
+"\n"
+"  -x, --exclude=PRÜFER1,PRÜFER2 …\n"
+"                         die angegebenen Prüfer ausschließen"
+
+#: guix/scripts/lint.scm:104
+msgid ""
+"\n"
+"  -n, --no-network       only run checkers that do not access the network"
+msgstr ""
+"\n"
+"  -n, --no-network       nur Prüfer ohne Netzwerkzugriffe ausführen"
+
+#: guix/scripts/lint.scm:112
 msgid ""
 "\n"
 "  -l, --list-checkers    display the list of available lint checkers"
@@ -3568,11 +3951,15 @@ msgstr ""
 "\n"
 "  -l, --list-checkers    Liste der verfügbaren Prüfer anzeigen"
 
-#: guix/scripts/lint.scm:125
+#: guix/scripts/lint.scm:131
 #, scheme-format
 msgid "~a: invalid checker~%"
 msgstr "~a: Unzulässiger Prüfer~%"
 
+#: guix/scripts/lint.scm:173
+msgid "validate package definitions"
+msgstr "Paketdefinitionen überprüfen"
+
 #: guix/scripts/publish.scm:72
 #, scheme-format
 msgid ""
@@ -3630,13 +4017,24 @@ msgstr ""
 #: guix/scripts/publish.scm:85
 msgid ""
 "\n"
+"      --cache-bypass-threshold=SIZE\n"
+"                         serve store items below SIZE even when not cached"
+msgstr ""
+"\n"
+"      --cache-bypass-threshold=GRÖSSE\n"
+"                         Store-Objekte kleiner als GRÖSSE auch dann anbieten,\n"
+"                         wenn sie noch nicht im Zwischenspeicher sind"
+
+#: guix/scripts/publish.scm:88
+msgid ""
+"\n"
 "      --workers=N        use N workers to bake items"
 msgstr ""
 "\n"
 "      --workers=N        mit N Worker-Threads angeforderte Objekte in den\n"
 "                           Zwischenspeicher einlagern"
 
-#: guix/scripts/publish.scm:87
+#: guix/scripts/publish.scm:90
 msgid ""
 "\n"
 "      --ttl=TTL          announce narinfos can be cached for TTL seconds"
@@ -3645,7 +4043,7 @@ msgstr ""
 "      --ttl=TTL          dem Client mitteilen, dass heruntergeladene Narinfos\n"
 "                           TTL Sekunden lang gültig bleiben"
 
-#: guix/scripts/publish.scm:89
+#: guix/scripts/publish.scm:92
 msgid ""
 "\n"
 "      --nar-path=PATH    use PATH as the prefix for nar URLs"
@@ -3653,7 +4051,7 @@ msgstr ""
 "\n"
 "      --nar-path=PFAD    den Pfad als das Präfix für Nar-URLs benutzen"
 
-#: guix/scripts/publish.scm:91
+#: guix/scripts/publish.scm:94
 msgid ""
 "\n"
 "      --public-key=FILE  use FILE as the public key for signatures"
@@ -3662,7 +4060,7 @@ msgstr ""
 "      --public-key=DATEI\n"
 "                         öffentlichen Schlüssel für Signaturen aus DATEI laden"
 
-#: guix/scripts/publish.scm:93
+#: guix/scripts/publish.scm:96
 msgid ""
 "\n"
 "      --private-key=FILE use FILE as the private key for signatures"
@@ -3671,7 +4069,7 @@ msgstr ""
 "      --private-key=DATEI\n"
 "                         privaten Schlüssel für Signaturen aus DATEI laden"
 
-#: guix/scripts/publish.scm:95
+#: guix/scripts/publish.scm:98
 msgid ""
 "\n"
 "  -r, --repl[=PORT]      spawn REPL server on PORT"
@@ -3679,44 +4077,48 @@ msgstr ""
 "\n"
 "  -r, --repl[=PORT]      auf PORT einen REPL-Server erzeugen"
 
-#: guix/scripts/publish.scm:111
+#: guix/scripts/publish.scm:114
 #, scheme-format
 msgid "lookup of host '~a' failed: ~a~%"
 msgstr "Suche nach Host „~a“ ist fehlgeschlagen: ~a~%"
 
-#: guix/scripts/publish.scm:159
+#: guix/scripts/publish.scm:168
 #, scheme-format
 msgid "lookup of host '~a' returned nothing"
 msgstr "Suche nach Host „~a“ lieferte kein Ergebnis"
 
-#: guix/scripts/publish.scm:182
+#: guix/scripts/publish.scm:191
 #, scheme-format
 msgid "~a: unsupported compression type~%"
 msgstr "~a: Nicht unterstützter Kompressionstyp~%"
 
-#: guix/scripts/publish.scm:196
+#: guix/scripts/publish.scm:209
 #, scheme-format
 msgid "~a: invalid duration~%"
 msgstr "~a: Ungültige Dauer~%"
 
-#: guix/scripts/publish.scm:1008
+#: guix/scripts/publish.scm:1073
 #, scheme-format
 msgid "user '~a' not found: ~a~%"
 msgstr "Benutzer „~a“ nicht gefunden: ~a~%"
 
-#: guix/scripts/publish.scm:1059
+#: guix/scripts/publish.scm:1083
+msgid "publish build results over HTTP"
+msgstr "Erstellungsergebnisse über HTTP veröffentlichen"
+
+#: guix/scripts/publish.scm:1125
 #, scheme-format
 msgid "server running as root; consider using the '--user' option!~%"
 msgstr ""
 "Server läuft mit Administratorrechten; vielleicht beim\n"
 "Start „--user“ übergeben!~%"
 
-#: guix/scripts/publish.scm:1064
+#: guix/scripts/publish.scm:1133
 #, scheme-format
 msgid "publishing ~a on ~a, port ~d~%"
 msgstr "~a wird auf ~a bereitgestellt, Port ~d~%"
 
-#: guix/scripts/publish.scm:1070
+#: guix/scripts/publish.scm:1139
 #, scheme-format
 msgid "using '~a' compression method, level ~a~%"
 msgstr "Kompressionsmethode „~a“ wird auf Stufe ~a verwendet~%"
@@ -3729,12 +4131,16 @@ msgstr ""
 "Aufruf: guix edit PAKET …\n"
 "Starte $VISUAL oder $EDITOR, um die Definitionen von PAKET zu bearbeiten …\n"
 
-#: guix/scripts/edit.scm:69
+#: guix/scripts/edit.scm:68
 #, scheme-format
 msgid "file '~a' not found in search path ~s~%"
 msgstr "Datei „~a“ im Suchpfad ~s nicht gefunden~%"
 
-#: guix/scripts/edit.scm:104
+#: guix/scripts/edit.scm:83
+msgid "view and edit package definitions"
+msgstr "Paketdefinitionen anzeigen und bearbeiten"
+
+#: guix/scripts/edit.scm:106
 #, scheme-format
 msgid "failed to launch '~a': ~a~%"
 msgstr "„~a“ konnte nicht gestartet werden: ~a~%"
@@ -3770,11 +4176,11 @@ msgstr "Store-Profil"
 
 #: guix/scripts/size.scm:233
 msgid ""
-"Usage: guix size [OPTION]... PACKAGE\n"
-"Report the size of PACKAGE and its dependencies.\n"
+"Usage: guix size [OPTION]... PACKAGE|STORE-ITEM\n"
+"Report the size of the PACKAGE or STORE-ITEM, with its dependencies.\n"
 msgstr ""
-"Aufruf: guix size [OPTION] … PAKET …\n"
-"Größe des PAKETs und seiner Abhängigkeiten ermitteln.\n"
+"Aufruf: guix size [OPTION] … PAKET|STORE-OBJEKT …\n"
+"Größe des PAKETs bzw. STORE-OBJEKTs und seiner Abhängigkeiten ermitteln.\n"
 
 #: guix/scripts/size.scm:238
 msgid ""
@@ -3808,7 +4214,11 @@ msgstr ""
 msgid "~a: invalid sorting key~%"
 msgstr "~a: Ungültiger Sortierschlüssel~%"
 
-#: guix/scripts/size.scm:315
+#: guix/scripts/size.scm:303
+msgid "profile the on-disk size of packages"
+msgstr "den Platzbedarf von Paketen auf der Platte profilieren"
+
+#: guix/scripts/size.scm:318
 msgid "missing store item argument\n"
 msgstr "Kein Store-Objekt als Argument übergeben\n"
 
@@ -3851,48 +4261,53 @@ msgstr "der gerichtete azyklische Ableitungsgraph"
 msgid "unsupported argument for derivation graph"
 msgstr "Argument für Referenzgraph wird nicht unterstützt"
 
-#: guix/scripts/graph.scm:325
+#: guix/scripts/graph.scm:333
 msgid "unsupported argument for this type of graph"
 msgstr "Argument für diesen Typ von Graph wird nicht unterstützt"
 
-#: guix/scripts/graph.scm:338
+#: guix/scripts/graph.scm:347
 #, scheme-format
 msgid "references for '~a' are not known~%"
 msgstr "Referenzen für „~a“ sind unbekannt~%"
 
-#: guix/scripts/graph.scm:345
+#: guix/scripts/graph.scm:354
 msgid "the DAG of run-time dependencies (store references)"
 msgstr "der gerichtete azyklische Laufzeitabhängigkeits-Graph (Store-Referenzen)"
 
-#: guix/scripts/graph.scm:361
+#: guix/scripts/graph.scm:370
 msgid "the DAG of referrers in the store"
 msgstr "der gerichtete azyklische Graph der Referenzen unter Store-Objekten"
 
-#: guix/scripts/graph.scm:391
+#: guix/scripts/graph.scm:400
 msgid "the graph of package modules"
 msgstr "der Graph der Paketmodule"
 
-#: guix/scripts/graph.scm:420
+#: guix/scripts/graph.scm:429
 #, scheme-format
 msgid "~a: unknown node type~%"
 msgstr "~a: Unbekannter Knotentyp~%"
 
-#: guix/scripts/graph.scm:427
+#: guix/scripts/graph.scm:436
 #, scheme-format
 msgid "~a: unknown backend~%"
 msgstr "~a: Unbekanntes Backend~%"
 
-#: guix/scripts/graph.scm:431
+#: guix/scripts/graph.scm:440
 msgid "The available node types are:\n"
 msgstr "Die verfügbaren Knotenttypen sind:\n"
 
-#: guix/scripts/graph.scm:441
+#: guix/scripts/graph.scm:450
 msgid "The available backend types are:\n"
 msgstr "Die gültigen Backend-Typen sind:\n"
 
+#: guix/scripts/graph.scm:477
+#, scheme-format
+msgid "no path from '~a' to '~a'~%"
+msgstr "Kein Pfad von „~a“ nach „~a“~%"
+
 #. TRANSLATORS: Here 'dot' is the name of a program; it must not be
 #. translated.
-#: guix/scripts/graph.scm:494
+#: guix/scripts/graph.scm:529
 msgid ""
 "Usage: guix graph PACKAGE...\n"
 "Emit a representation of the dependency graph of PACKAGE...\n"
@@ -3900,7 +4315,7 @@ msgstr ""
 "Aufruf: guix graph PAKET …\n"
 "Eine Repräsentation für Graphviz (dot) der Abhängigkeiten von PAKET ausgeben …\n"
 
-#: guix/scripts/graph.scm:496
+#: guix/scripts/graph.scm:531
 msgid ""
 "\n"
 "  -b, --backend=TYPE     produce a graph with the given backend TYPE"
@@ -3908,7 +4323,7 @@ msgstr ""
 "\n"
 "  -b, --backend=TYP      einen Graphen mit dem angegebenen Backend-TYP erzeugen"
 
-#: guix/scripts/graph.scm:498
+#: guix/scripts/graph.scm:533
 msgid ""
 "\n"
 "      --list-backends    list the available graph backends"
@@ -3916,7 +4331,7 @@ msgstr ""
 "\n"
 "      --list-backends    verfügbare Graph-Backends auflisten"
 
-#: guix/scripts/graph.scm:500
+#: guix/scripts/graph.scm:535
 msgid ""
 "\n"
 "  -t, --type=TYPE        represent nodes of the given TYPE"
@@ -3924,7 +4339,7 @@ msgstr ""
 "\n"
 "  -t, --type=TYP         Knoten des angegebenen TYPS darstellen"
 
-#: guix/scripts/graph.scm:502
+#: guix/scripts/graph.scm:537
 msgid ""
 "\n"
 "      --list-types       list the available graph types"
@@ -3932,7 +4347,16 @@ msgstr ""
 "\n"
 "      --list-types       verfügbare Knotentypen auflisten"
 
-#: guix/scripts/graph.scm:504 guix/scripts/pack.scm:923
+#: guix/scripts/graph.scm:539
+msgid ""
+"\n"
+"      --path             display the shortest path between the given nodes"
+msgstr ""
+"\n"
+"      --path             kürzesten Pfad zwischen angegebenen\n"
+"                           Knoten zeigen"
+
+#: guix/scripts/graph.scm:541 guix/scripts/pack.scm:1071
 msgid ""
 "\n"
 "  -e, --expression=EXPR  consider the package EXPR evaluates to"
@@ -3941,7 +4365,7 @@ msgstr ""
 "  -e, --expression=AUSDRUCK\n"
 "                         das Paket betrachten, zu dem AUSDRUCK ausgewertet wird"
 
-#: guix/scripts/graph.scm:506
+#: guix/scripts/graph.scm:543
 msgid ""
 "\n"
 "  -s, --system=SYSTEM    consider the graph for SYSTEM--e.g., \"i686-linux\""
@@ -3950,6 +4374,15 @@ msgstr ""
 "  -s, --system=SYSTEM    den Graphen für SYSTEM\n"
 "                           anzeigen — z.B. „i686-linux“"
 
+#: guix/scripts/graph.scm:568
+msgid "view and query package dependency graphs"
+msgstr "Paketabhängigkeitsgraphen anzeigen und Anfragen dazu stellen"
+
+#: guix/scripts/graph.scm:604
+#, scheme-format
+msgid "'--path' option requires exactly two nodes (given ~a)~%"
+msgstr "Die Option „--path“ braucht genau 2 Knoten (angegeben wurde ~a)~%"
+
 #: guix/scripts/challenge.scm:301
 #, scheme-format
 msgid "  differing file:~%"
@@ -4029,35 +4462,39 @@ msgstr ""
 #: guix/scripts/challenge.scm:418
 msgid ""
 "\n"
-"      -v, --verbose      show details about successful comparisons"
+"  -v, --verbose          show details about successful comparisons"
 msgstr ""
 "\n"
-"      --verbose          Details über erfolgreiche Vergleiche anzeigen"
+"  -v  --verbose          Details über erfolgreiche Vergleiche anzeigen"
 
 #: guix/scripts/challenge.scm:420
 msgid ""
 "\n"
-"          --diff=MODE    show differences according to MODE"
+"      --diff=MODE        show differences according to MODE"
 msgstr ""
 "\n"
-"          --diff=MODUS   Unterschiede gemäß MODUS anzeigen"
+"      --diff=MODUS   Unterschiede gemäß MODUS anzeigen"
 
 #: guix/scripts/challenge.scm:449
 #, scheme-format
 msgid "~a: unknown diff mode~%"
 msgstr "~a: Unbekannter diff-Modus~%"
 
-#: guix/scripts/copy.scm:60
+#: guix/scripts/challenge.scm:480
+msgid "challenge substitute servers, comparing their binaries"
+msgstr "Substitutserver anfechten durch Vergleichen von Binärdateien"
+
+#: guix/scripts/copy.scm:61
 #, scheme-format
 msgid "~a: invalid TCP port number~%"
 msgstr "~a: Ungültige TCP-Portnummer~%"
 
-#: guix/scripts/copy.scm:62
+#: guix/scripts/copy.scm:63
 #, scheme-format
 msgid "~a: invalid SSH specification~%"
 msgstr "~a: Ungültige SSH-Angaben~%"
 
-#: guix/scripts/copy.scm:105
+#: guix/scripts/copy.scm:109
 msgid ""
 "Usage: guix copy [OPTION]... ITEMS...\n"
 "Copy ITEMS to or from the specified host over SSH.\n"
@@ -4065,7 +4502,7 @@ msgstr ""
 "Aufruf: guix copy [OPTION] … OBJEKTE …\n"
 "OBJEKTE zum oder vom angegebenen Host über SSH kopieren.\n"
 
-#: guix/scripts/copy.scm:107
+#: guix/scripts/copy.scm:111
 msgid ""
 "\n"
 "      --to=HOST          send ITEMS to HOST"
@@ -4073,7 +4510,7 @@ msgstr ""
 "\n"
 "      --to=HOST          OBJEKTE an HOST senden"
 
-#: guix/scripts/copy.scm:109
+#: guix/scripts/copy.scm:113
 msgid ""
 "\n"
 "      --from=HOST        receive ITEMS from HOST"
@@ -4081,22 +4518,26 @@ msgstr ""
 "\n"
 "      --from=HOST        OBJEKTE vom HOST beziehen"
 
-#: guix/scripts/copy.scm:183
+#: guix/scripts/copy.scm:175
+msgid "copy store items remotely over SSH"
+msgstr "Store-Objekte über SSH mit entfernten Rechnern austauschen"
+
+#: guix/scripts/copy.scm:192
 #, scheme-format
 msgid "use '--to' or '--from'~%"
 msgstr "Benutzen Sie „--to“ oder „--from“~%"
 
-#: guix/scripts/pack.scm:98
+#: guix/scripts/pack.scm:106
 #, scheme-format
 msgid "~a: compressor not found~%"
 msgstr "~a: Kompressionsmethode nicht gefunden~%"
 
-#: guix/scripts/pack.scm:283
+#: guix/scripts/pack.scm:313
 #, scheme-format
 msgid "entry point not supported in the '~a' format~%"
 msgstr "Einsprungpunkt beim Format „~a“ nicht unterstützt~%"
 
-#: guix/scripts/pack.scm:661
+#: guix/scripts/pack.scm:694
 #, scheme-format
 msgid ""
 "cross-compilation not implemented here;\n"
@@ -4105,11 +4546,11 @@ msgstr ""
 "Cross-Kompilieren wurde hier nicht implementiert,\n"
 "bitte senden Sie eine E-Mail an „~a“~%"
 
-#: guix/scripts/pack.scm:804
+#: guix/scripts/pack.scm:954
 msgid "The supported formats for 'guix pack' are:"
 msgstr "Die von „guix pack“ unterstützten Formate sind:"
 
-#: guix/scripts/pack.scm:806
+#: guix/scripts/pack.scm:956
 msgid ""
 "\n"
 "  tarball       Self-contained tarball, ready to run on another machine"
@@ -4118,7 +4559,7 @@ msgstr ""
 "  tarball       eigenständiger Tarball, der auf anderen Maschinen\n"
 "                  ausgeführt werden kann"
 
-#: guix/scripts/pack.scm:808
+#: guix/scripts/pack.scm:958
 msgid ""
 "\n"
 "  squashfs      Squashfs image suitable for Singularity"
@@ -4126,7 +4567,7 @@ msgstr ""
 "\n"
 "  squashfs      Squashfs-Abbild, das für Singularity geeignet ist"
 
-#: guix/scripts/pack.scm:810
+#: guix/scripts/pack.scm:960
 msgid ""
 "\n"
 "  docker        Tarball ready for 'docker load'"
@@ -4134,17 +4575,17 @@ msgstr ""
 "\n"
 "  docker        Tarball, der mit „docker load“ benutzt werden kann"
 
-#: guix/scripts/pack.scm:879
+#: guix/scripts/pack.scm:1029
 #, scheme-format
 msgid "~a: invalid symlink specification~%"
 msgstr "~a: Ungültige Angabe zur symbolischen Verknüpfung~%"
 
-#: guix/scripts/pack.scm:893
+#: guix/scripts/pack.scm:1043
 #, scheme-format
 msgid "~a: unsupported profile name~%"
 msgstr "~a: Nicht unterstützter Profilname~%"
 
-#: guix/scripts/pack.scm:911
+#: guix/scripts/pack.scm:1061
 msgid ""
 "Usage: guix pack [OPTION]... PACKAGE...\n"
 "Create a bundle of PACKAGE.\n"
@@ -4152,7 +4593,7 @@ msgstr ""
 "Aufruf: guix pack [OPTION] … PAKET …\n"
 "Ein Bündel mit PAKET erstellen.\n"
 
-#: guix/scripts/pack.scm:917
+#: guix/scripts/pack.scm:1065
 msgid ""
 "\n"
 "  -f, --format=FORMAT    build a pack in the given FORMAT"
@@ -4160,7 +4601,7 @@ msgstr ""
 "\n"
 "  -f, --format=FORMAT    das Bündel im angegebenen Format erstellen"
 
-#: guix/scripts/pack.scm:919
+#: guix/scripts/pack.scm:1067
 msgid ""
 "\n"
 "      --list-formats     list the formats available"
@@ -4168,7 +4609,7 @@ msgstr ""
 "\n"
 "      --list-formats     verfügbare Formate auflisten"
 
-#: guix/scripts/pack.scm:921
+#: guix/scripts/pack.scm:1069
 msgid ""
 "\n"
 "  -R, --relocatable      produce relocatable executables"
@@ -4176,7 +4617,7 @@ msgstr ""
 "\n"
 "  -R, --relocatable      pfad-agnostische ausführbare Datei erzeugen"
 
-#: guix/scripts/pack.scm:929
+#: guix/scripts/pack.scm:1077
 msgid ""
 "\n"
 "  -C, --compression=TOOL compress using TOOL--e.g., \"lzip\""
@@ -4185,7 +4626,7 @@ msgstr ""
 "  -C, --compression=WERKZEUG\n"
 "                         mit dem WERKZEUG komprimieren — z.B. „lzip“"
 
-#: guix/scripts/pack.scm:931
+#: guix/scripts/pack.scm:1079
 msgid ""
 "\n"
 "  -S, --symlink=SPEC     create symlinks to the profile according to SPEC"
@@ -4195,7 +4636,7 @@ msgstr ""
 "                         symbolische Verknüpfungen zum Profil erzeugen gemäß\n"
 "                           der SPEZIFIKATION"
 
-#: guix/scripts/pack.scm:933
+#: guix/scripts/pack.scm:1081
 msgid ""
 "\n"
 "  -m, --manifest=FILE    create a pack with the manifest from FILE"
@@ -4203,7 +4644,7 @@ msgstr ""
 "\n"
 "  -m, --manifest=DATEI   ein Bündel mit dem Manifest aus DATEI erzeugen"
 
-#: guix/scripts/pack.scm:935
+#: guix/scripts/pack.scm:1083
 msgid ""
 "\n"
 "      --entry-point=PROGRAM\n"
@@ -4214,7 +4655,7 @@ msgstr ""
 "                         das PROGRAMM als Einsprungpunkt für das Bündel\n"
 "                           benutzen"
 
-#: guix/scripts/pack.scm:940
+#: guix/scripts/pack.scm:1088
 msgid ""
 "\n"
 "      --localstatedir    include /var/guix in the resulting pack"
@@ -4222,7 +4663,7 @@ msgstr ""
 "\n"
 "      --localstatedir    „/var/guix“ auch ins Bündel packen"
 
-#: guix/scripts/pack.scm:942
+#: guix/scripts/pack.scm:1090
 msgid ""
 "\n"
 "      --profile-name=NAME\n"
@@ -4232,7 +4673,7 @@ msgstr ""
 "      --profile-name=NAME\n"
 "                         auch in /var/guix/profiles/…/NAME einfügen"
 
-#: guix/scripts/pack.scm:948
+#: guix/scripts/pack.scm:1096
 msgid ""
 "\n"
 "  -d, --derivation       return the derivation of the pack"
@@ -4240,7 +4681,7 @@ msgstr ""
 "\n"
 "  -d, --derivation       die Ableitung des Bündels liefern"
 
-#: guix/scripts/pack.scm:952
+#: guix/scripts/pack.scm:1100
 msgid ""
 "\n"
 "      --bootstrap        use the bootstrap binaries to build the pack"
@@ -4248,46 +4689,50 @@ msgstr ""
 "\n"
 "      --bootstrap        mit den Bootstrap-Binärdateien das Bündel erstellen"
 
-#: guix/scripts/pack.scm:1003
+#: guix/scripts/pack.scm:1117
+msgid "create application bundles"
+msgstr "Anwendungsbündel erzeugen"
+
+#: guix/scripts/pack.scm:1154
 #, scheme-format
 msgid "could not determine provenance of package ~a~%"
 msgstr "Konnte die Provenienz von Paket ~a nicht feststellen~%"
 
-#: guix/scripts/pack.scm:1012
+#: guix/scripts/pack.scm:1168
 #, scheme-format
 msgid "both a manifest and a package list were given~%"
 msgstr "Es wurden sowohl ein Manifest als auch eine Paketliste angegeben~%"
 
-#: guix/scripts/pack.scm:1069
+#: guix/scripts/pack.scm:1227
 #, scheme-format
 msgid "~a: unknown pack format~%"
 msgstr "~a: Unbekanntes Bündelformat~%"
 
-#: guix/scripts/pack.scm:1079
+#: guix/scripts/pack.scm:1251
 #, scheme-format
 msgid "no packages specified; building an empty pack~%"
 msgstr "Keine Pakete angegeben; leeres Bündel wird erstellt~%"
 
-#: guix/scripts/pack.scm:1083
+#: guix/scripts/pack.scm:1255
 #, scheme-format
 msgid "Singularity requires you to provide a shell~%"
 msgstr "Für Singularity müssen Sie eine Shell bündeln~%"
 
-#: guix/scripts/pack.scm:1084
+#: guix/scripts/pack.scm:1256
 msgid "Add @code{bash} or @code{bash-minimal} to your package list."
 msgstr "Fügen Sie @code{bash} oder @code{bash-minimal} zu Ihrer Paketliste hinzu."
 
 #: guix/scripts/weather.scm:90
 msgid "computing ~h package derivations for ~a...~%"
-msgstr "~h Paketableitungen für ~a berechnen …~%"
+msgstr "~h Paketableitungen für ~a werden berechnet …~%"
 
 #: guix/scripts/weather.scm:178
 msgid "looking for ~h store items on ~a...~%"
-msgstr "Nach ~h Store-Objekten von ~a suchen …~%"
+msgstr "Nach ~h Store-Objekten von ~a wird gesucht …~%"
 
 #: guix/scripts/weather.scm:193
-msgid "  ~2,1f% substitutes available (~h out of ~h)~%"
-msgstr "  ~2,1f% Substitute verfügbar (~h von ~h)~%"
+msgid "  ~,1f% substitutes available (~h out of ~h)~%"
+msgstr "  ~,1f% Substitute verfügbar (~h von ~h)~%"
 
 #: guix/scripts/weather.scm:199
 #, scheme-format
@@ -4393,7 +4838,7 @@ msgid ""
 msgstr ""
 "\n"
 "  -c, --coverage[=ANZAHL]\n"
-"                         angeben, wieviele Substitute es für Pakete mit\n"
+"                         angeben, wie viele Substitute es für Pakete mit\n"
 "                           mindestens ANZAHL-vielen abhängigen Paketen gibt"
 
 #: guix/scripts/weather.scm:288
@@ -4417,26 +4862,34 @@ msgstr ""
 msgid "~a: invalid URL~%"
 msgstr "~a: Ungültige URL~%"
 
-#: guix/scripts/weather.scm:446
+#: guix/scripts/weather.scm:447
 #, scheme-format
 msgid "The following ~a package is missing from '~a' for '~a':~%"
 msgid_plural "The following ~a packages are missing from '~a' for '~a':~%"
 msgstr[0] "Das folgende ~a Paket fehlt auf „~a“ für „~a“:~%"
 msgstr[1] "Die folgenden ~a Pakete fehlen auf „~a“ für „~a“:~%"
 
-#: guix/scripts/weather.scm:452
+#: guix/scripts/weather.scm:453
 #, scheme-format
 msgid "~a package is missing from '~a' for '~a':~%"
 msgid_plural "~a packages are missing from '~a' for '~a', among which:~%"
 msgstr[0] "~a Paket fehlt auf „~a“ für „~a“, darunter ist:~%"
 msgstr[1] "~a Pakete fehlen auf „~a“ für „~a“, darunter sind:~%"
 
-#: guix/scripts/describe.scm:50
+#: guix/scripts/weather.scm:499
+msgid "report on the availability of pre-built package binaries"
+msgstr "über die Verfügbarkeit vorerstellter Paket-Binärdateien berichten"
+
+#: guix/scripts/describe.scm:52
+msgid "The available formats are:\n"
+msgstr "Die verfügbaren Formate sind:\n"
+
+#: guix/scripts/describe.scm:63
 #, scheme-format
 msgid "~a: unsupported output format~%"
 msgstr "~a: Nicht unterstütztes Ausgabe-Format~%"
 
-#: guix/scripts/describe.scm:69
+#: guix/scripts/describe.scm:86
 msgid ""
 "Usage: guix describe [OPTION]...\n"
 "Display information about the channels currently in use.\n"
@@ -4444,7 +4897,7 @@ msgstr ""
 "Aufruf: guix describe [OPTION] …\n"
 "Zeigt Informationen über momentan benutzte Kanäle.\n"
 
-#: guix/scripts/describe.scm:71
+#: guix/scripts/describe.scm:88
 msgid ""
 "\n"
 "  -f, --format=FORMAT    display information in the given FORMAT"
@@ -4452,7 +4905,15 @@ msgstr ""
 "\n"
 "  -f, --format=FORMAT    Informationen im angegebenen FORMAT anzeigen"
 
-#: guix/scripts/describe.scm:73
+#: guix/scripts/describe.scm:90
+msgid ""
+"\n"
+"      --list-formats     display available formats"
+msgstr ""
+"\n"
+"      --list-formats     verfügbare Formate anzeigen"
+
+#: guix/scripts/describe.scm:92
 msgid ""
 "\n"
 "  -p, --profile=PROFILE  display information about PROFILE"
@@ -4460,22 +4921,22 @@ msgstr ""
 "\n"
 "  -p, --profile=PROFIL   Informationen über das PROFIL anzeigen"
 
-#: guix/scripts/describe.scm:92
+#: guix/scripts/describe.scm:111
 #, scheme-format
 msgid "~%;; warning: GUIX_PACKAGE_PATH=\"~a\"~%"
 msgstr "~%;; Warnung: GUIX_PACKAGE_PATH=\"~a\"~%"
 
-#: guix/scripts/describe.scm:95
+#: guix/scripts/describe.scm:114
 #, scheme-format
 msgid "'GUIX_PACKAGE_PATH' is set but it is not captured~%"
 msgstr "„GUIX_PACKAGE_PATH“ ist gesetzt, wird aber nicht wiedergegeben.~%"
 
-#: guix/scripts/describe.scm:122
+#: guix/scripts/describe.scm:170
 #, scheme-format
 msgid "failed to determine origin~%"
 msgstr "Konnte Ursprung nicht finden~%"
 
-#: guix/scripts/describe.scm:123
+#: guix/scripts/describe.scm:171
 #, scheme-format
 msgid ""
 "Perhaps this\n"
@@ -4486,41 +4947,45 @@ msgstr ""
 "nicht mit @command{guix pull} eingerichtet? Seine\n"
 "Versionszeichenkette ist ~a.~%"
 
-#: guix/scripts/describe.scm:133
+#: guix/scripts/describe.scm:181
 #, scheme-format
 msgid "Git checkout:~%"
 msgstr "Git-Checkout:~%"
 
-#: guix/scripts/describe.scm:134
+#: guix/scripts/describe.scm:182
 #, scheme-format
 msgid "  repository: ~a~%"
 msgstr "  Repository: ~a~%"
 
-#: guix/scripts/describe.scm:135
+#: guix/scripts/describe.scm:183
 #, scheme-format
 msgid "  branch: ~a~%"
 msgstr "  Branch: ~a~%"
 
-#: guix/scripts/describe.scm:136
+#: guix/scripts/describe.scm:184
 #, scheme-format
 msgid "  commit: ~a~%"
 msgstr "  Commit: ~a~%"
 
-#: guix/scripts/describe.scm:198
+#: guix/scripts/describe.scm:250
 #, scheme-format
 msgid "    repository URL: ~a~%"
 msgstr "    Repository-URL: ~a~%"
 
-#: guix/scripts/describe.scm:200
+#: guix/scripts/describe.scm:252
 #, scheme-format
 msgid "    branch: ~a~%"
 msgstr "    Branch: ~a~%"
 
-#: guix/scripts/describe.scm:201
+#: guix/scripts/describe.scm:253
 #, scheme-format
 msgid "    commit: ~a~%"
 msgstr "    Commit: ~a~%"
 
+#: guix/scripts/describe.scm:308
+msgid "describe the channel revisions currently used"
+msgstr "die momentan benutzten Kanalversionen beschreiben"
+
 #: guix/scripts/processes.scm:211
 msgid ""
 "Usage: guix processes\n"
@@ -4529,6 +4994,10 @@ msgstr ""
 "Aufruf: guix processes\n"
 "Zeigt eine Liste laufender Guix-Sitzungen mit ihren Prozessen."
 
+#: guix/scripts/processes.scm:228
+msgid "list currently running sessions"
+msgstr "aktuell laufende Sitzungen auflisten"
+
 #: guix/scripts/deploy.scm:49
 msgid ""
 "Usage: guix deploy [OPTION] FILE...\n"
@@ -4564,23 +5033,43 @@ msgstr "~a wird zurückgesetzt …~%"
 msgid "successfully deployed ~a~%"
 msgstr "~a erfolgreich aufgespielt~%"
 
-#: guix/gnu-maintenance.scm:647
+#: guix/scripts/deploy.scm:140
+msgid "deploy operating systems on a set of machines"
+msgstr "Betriebssysteme auf eine Reihe von Maschinen aufspielen"
+
+#: guix/gexp.scm:425
+#, scheme-format
+msgid "resolving '~a' relative to current directory~%"
+msgstr "„~a“ wird im aktuellen Verzeichnis gesucht~%"
+
+#: guix/gexp.scm:808
+#, scheme-format
+msgid "importing module~{ ~a~} from the host~%"
+msgid_plural "importing modules~{ ~a~} from the host~%"
+msgstr[0] "Modul~{ ~a~} von der Wirtsseite importieren~%"
+msgstr[1] "Module~{ ~a~} von der Wirtsseite importieren~%"
+
+#: guix/gnu-maintenance.scm:699
 msgid "Updater for GNU packages"
 msgstr "Aktualisierungsprogramm für GNU-Pakete"
 
-#: guix/gnu-maintenance.scm:656
+#: guix/gnu-maintenance.scm:708
 msgid "Updater for GNU packages only available via FTP"
 msgstr "Aktualisierungsprogramm für GNU-Pakete, die nur über FTP verfügbar sind"
 
-#: guix/gnu-maintenance.scm:665
+#: guix/gnu-maintenance.scm:717
+msgid "Updater for packages hosted on savannah.gnu.org"
+msgstr "Aktualisierungsprogramm für auf savannah.gnu.org gehostete Pakete"
+
+#: guix/gnu-maintenance.scm:724
 msgid "Updater for X.org packages"
 msgstr "Aktualisierungsprogramm für X.org-Pakete"
 
-#: guix/gnu-maintenance.scm:672
+#: guix/gnu-maintenance.scm:731
 msgid "Updater for packages hosted on kernel.org"
 msgstr "Aktualisierungsprogramm für auf kernel.org gehostete Pakete"
 
-#: guix/scripts/container.scm:26
+#: guix/scripts/container.scm:27
 msgid ""
 "Usage: guix container ACTION ARGS...\n"
 "Build and manipulate Linux containers.\n"
@@ -4588,16 +5077,20 @@ msgstr ""
 "Aufruf: guix container AKTION ARGS …\n"
 "Linux-Container erstellen und verändern.\n"
 
-#: guix/scripts/container.scm:31
+#: guix/scripts/container.scm:32
 msgid "   exec            execute a command inside of an existing container\n"
 msgstr "   exec            einen Befehl innerhalb eines vorhandenen Containers ausführen\n"
 
-#: guix/scripts/container.scm:54
+#: guix/scripts/container.scm:52
+msgid "run code in containers created by 'guix environment -C'"
+msgstr "Code in über ‚guix environment -C‘ erzeugten isolierten Umgebungen ausführen"
+
+#: guix/scripts/container.scm:58
 #, scheme-format
 msgid "guix container: missing action~%"
 msgstr "guix container: Aktion fehlt~%"
 
-#: guix/scripts/container.scm:64
+#: guix/scripts/container.scm:68
 #, scheme-format
 msgid "guix container: invalid action~%"
 msgstr "guix container: Unzulässige Aktion~%"
@@ -4635,54 +5128,178 @@ msgstr "Kein solcher Prozess ~d~%"
 msgid "exec failed with status ~d~%"
 msgstr "exec fehlgeschlagen mit Status ~d~%"
 
-#: guix/upstream.scm:328
+#: guix/transformations.scm:174 guix/transformations.scm:242
+#, scheme-format
+msgid "invalid replacement specification: ~s"
+msgstr "Ungültige Ersatzspezifikation: ~s"
+
+#: guix/transformations.scm:223
+#, scheme-format
+msgid "the source of ~a is not a Git reference"
+msgstr "Die Quelle von ~a ist keine Git-Referenz"
+
+#: guix/transformations.scm:315
+#, scheme-format
+msgid "~a: invalid Git URL replacement specification"
+msgstr "~a: Ungültige Git-URL-Ersatzspezifikation"
+
+#: guix/transformations.scm:393
+#, scheme-format
+msgid "~a: invalid toolchain replacement specification"
+msgstr "~a: Ungültige Toolchain-Ersatzspezifikation"
+
+#: guix/transformations.scm:514
+msgid ""
+"\n"
+"      --with-source=[PACKAGE=]SOURCE\n"
+"                         use SOURCE when building the corresponding package"
+msgstr ""
+"\n"
+"      --with-source=[PAKET=]QUELLE\n"
+"                         beim Erstellen des entsprechenden Pakets QUELLE\n"
+"                           benutzen"
+
+#: guix/transformations.scm:517
+msgid ""
+"\n"
+"      --with-input=PACKAGE=REPLACEMENT\n"
+"                         replace dependency PACKAGE by REPLACEMENT"
+msgstr ""
+"\n"
+"      --with-input=PAKET=ERSATZ\n"
+"                         Abhängigkeit PAKET durch ERSATZ ersetzen"
+
+#: guix/transformations.scm:520
+msgid ""
+"\n"
+"      --with-graft=PACKAGE=REPLACEMENT\n"
+"                         graft REPLACEMENT on packages that refer to PACKAGE"
+msgstr ""
+"\n"
+"      --with-graft=PAKET=ERSATZ\n"
+"                         mit ERSATZ jedes PAKET referenzierende Paket veredeln"
+
+#: guix/transformations.scm:523
+msgid ""
+"\n"
+"      --with-branch=PACKAGE=BRANCH\n"
+"                         build PACKAGE from the latest commit of BRANCH"
+msgstr ""
+"\n"
+"      --with-branch=PAKET=BRANCH\n"
+"                         das PAKET aus dem neusten Commit auf BRANCH erstellen"
+
+#: guix/transformations.scm:526
+msgid ""
+"\n"
+"      --with-commit=PACKAGE=COMMIT\n"
+"                         build PACKAGE from COMMIT"
+msgstr ""
+"\n"
+"      --with-commit=PAKET=COMMIT\n"
+"                         den angegebenen COMMIT des PAKETs erstellen"
+
+#: guix/transformations.scm:529
+msgid ""
+"\n"
+"      --with-git-url=PACKAGE=URL\n"
+"                         build PACKAGE from the repository at URL"
+msgstr ""
+"\n"
+"      --with-git-url=PAKET=URL\n"
+"                         das PAKET aus dem von der URL bezeichneten Repository\n"
+"                           erstellen"
+
+#: guix/transformations.scm:532
+msgid ""
+"\n"
+"      --with-c-toolchain=PACKAGE=TOOLCHAIN\n"
+"                         build PACKAGE and its dependents with TOOLCHAIN"
+msgstr ""
+"\n"
+"      --with-c-toolchain=PAKET=TOOLCHAIN\n"
+"                         das PAKET und was davon abhängt mit der\n"
+"                           TOOLCHAIN erstellen"
+
+#: guix/transformations.scm:535
+msgid ""
+"\n"
+"      --with-debug-info=PACKAGE\n"
+"                         build PACKAGE and preserve its debug info"
+msgstr ""
+"\n"
+"      --with-debug-info=PAKET\n"
+"                         PAKET erstellen und dabei Informationen zur\n"
+"                           Fehlersuche behalten"
+
+#: guix/transformations.scm:538
+msgid ""
+"\n"
+"      --without-tests=PACKAGE\n"
+"                         build PACKAGE without running its tests"
+msgstr ""
+"\n"
+"      --without-tests=PAKET\n"
+"                         PAKET erstellen ohne Testkatalog auszuführen"
+
+#: guix/transformations.scm:589
+#, scheme-format
+msgid "transformation '~a' had no effect on ~a~%"
+msgstr "Transformation „~a“ wirkte sich nicht aus auf ~a~%"
+
+#: guix/upstream.scm:337
+#, scheme-format
+msgid "failed to download detached signature from ~a~%"
+msgstr "Losgelöste Signatur konnte nicht von „~a“ heruntergeladen werden~%"
+
+#: guix/upstream.scm:341
 #, scheme-format
 msgid "signature verification failed for '~a' (key: ~a)~%"
 msgstr "Verifizierung der Signatur fehlgeschlagen für „~a“ (Schlüssel: ~a)~%"
 
-#: guix/upstream.scm:332
+#: guix/upstream.scm:345
 #, scheme-format
 msgid "missing public key ~a for '~a'~%"
 msgstr "Fehlender öffentlicher Schlüssel ~a zum geheimen Schlüssels „~a“~%"
 
-#: guix/upstream.scm:408
+#: guix/upstream.scm:421
 #, scheme-format
 msgid "cannot download for this method: ~s"
 msgstr "Kann mit dieser Methode nicht heruntergeladen werden: ~s"
 
-#: guix/upstream.scm:471
+#: guix/upstream.scm:486
 #, scheme-format
 msgid "~a: could not locate source file"
 msgstr "~a: Quelldatei konnte nicht gefunden werden"
 
-#: guix/upstream.scm:476
+#: guix/upstream.scm:490
 #, scheme-format
-msgid "~a: ~a: no `version' field in source; skipping~%"
-msgstr "~a: ~a: Kein „version“-Feld beim Quellort; wird übersprungen~%"
+msgid "~a: no `version' field in source; skipping~%"
+msgstr "~a: Kein „version“-Feld beim Quellort; wird übersprungen~%"
 
-#: guix/ui.scm:156
+#: guix/ui.scm:161
 #, scheme-format
 msgid "error: ~a: unbound variable"
 msgstr "Fehler: ~a: Nicht gebundene Variable"
 
-#: guix/ui.scm:256
+#: guix/ui.scm:261
 msgid "entering debugger; type ',bt' for a backtrace\n"
 msgstr "Debugger wird betreten; tippen Sie „,bt“ für einen Backtrace\n"
 
-#: guix/ui.scm:313
+#: guix/ui.scm:319
 msgid "hint: "
 msgstr "Hinweis: "
 
-#: guix/ui.scm:330
+#: guix/ui.scm:336
 msgid "Did you forget a @code{use-modules} form?"
 msgstr "Vielleicht haben Sie eine @code{use-modules}-Form vergessen?"
 
-#: guix/ui.scm:332
+#: guix/ui.scm:338
 #, scheme-format
 msgid "Did you forget @code{(use-modules ~a)}?"
 msgstr "Vielleicht haben Sie @code{(use-modules ~a)} vergessen?"
 
-#: guix/ui.scm:342
+#: guix/ui.scm:348
 #, scheme-format
 msgid ""
 "File @file{~a} should probably start with:\n"
@@ -4697,54 +5314,54 @@ msgstr ""
 "(define-module ~a)\n"
 "@end example"
 
-#: guix/ui.scm:356
+#: guix/ui.scm:362
 #, scheme-format
 msgid "module name ~a does not match file name '~a'~%"
 msgstr "Modulname „~a“ passt nicht zum Dateinamen „~a“~%"
 
-#: guix/ui.scm:360
+#: guix/ui.scm:366
 #, scheme-format
 msgid "~a: file is empty~%"
 msgstr "~a: Datei ist leer~%"
 
-#: guix/ui.scm:371 guix/ui.scm:413 guix/ui.scm:421
+#: guix/ui.scm:377 guix/ui.scm:425 guix/ui.scm:433 guix/ui.scm:437
 #, scheme-format
 msgid "failed to load '~a': ~a~%"
 msgstr "„~a“ konnte nicht geladen werden: ~a~%"
 
-#: guix/ui.scm:378
+#: guix/ui.scm:384
 #, scheme-format
 msgid "~amissing closing parenthesis~%"
 msgstr "~aschließende Klammer fehlt~%"
 
-#: guix/ui.scm:383
+#: guix/ui.scm:389
 #, scheme-format
 msgid "~s: ~a~%"
 msgstr "~s: ~a~%"
 
-#: guix/ui.scm:393 guix/ui.scm:845
+#: guix/ui.scm:405 guix/ui.scm:898
 #, scheme-format
 msgid "exception thrown: ~s~%"
 msgstr "Ausnahme ausgelöst: ~s~%"
 
-#: guix/ui.scm:397 guix/ui.scm:427
+#: guix/ui.scm:409 guix/ui.scm:446
 #, scheme-format
 msgid "failed to load '~a':~%"
 msgstr "„~a“ konnte nicht geladen werden:~%"
 
-#: guix/ui.scm:424
+#: guix/ui.scm:443
 #, scheme-format
 msgid "failed to load '~a': exception thrown: ~s~%"
 msgstr "„~a“ konnte nicht geladen werden: Ausnahme ausgelöst: ~s~%"
 
-#: guix/ui.scm:472
+#: guix/ui.scm:491
 msgid ""
 "Consider installing the @code{glibc-utf8-locales} or\n"
 "@code{glibc-locales} package and defining @code{GUIX_LOCPATH}, along these\n"
 "lines:\n"
 "\n"
 "@example\n"
-"guix package -i glibc-utf8-locales\n"
+"guix install glibc-utf8-locales\n"
 "export GUIX_LOCPATH=\"$HOME/.guix-profile/lib/locale\"\n"
 "@end example\n"
 "\n"
@@ -4755,7 +5372,7 @@ msgstr ""
 "etwa so:\n"
 "\n"
 "@example\n"
-"guix package -i glibc-utf8-locales\n"
+"guix install glibc-utf8-locales\n"
 "export GUIX_LOCPATH=\"$HOME/.guix-profile/lib/locale\"\n"
 "@end example\n"
 "\n"
@@ -4765,15 +5382,15 @@ msgstr ""
 #. TRANSLATORS: Translate "(C)" to the copyright symbol
 #. (C-in-a-circle), if this symbol is available in the user's
 #. locale.  Otherwise, do not translate "(C)"; leave it as-is.  */
-#: guix/ui.scm:510
+#: guix/ui.scm:533
 msgid "(C)"
 msgstr "©"
 
-#: guix/ui.scm:511
+#: guix/ui.scm:534
 msgid "the Guix authors\n"
 msgstr "die Guix-Autoren\n"
 
-#: guix/ui.scm:512
+#: guix/ui.scm:535
 msgid ""
 "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\n"
 "This is free software: you are free to change and redistribute it.\n"
@@ -4787,7 +5404,7 @@ msgstr ""
 #. package.  Please add another line saying "Report translation bugs to
 #. ...\n" with the address for translation bugs (typically your translation
 #. team's web or email address).
-#: guix/ui.scm:524
+#: guix/ui.scm:547
 #, scheme-format
 msgid ""
 "\n"
@@ -4797,7 +5414,7 @@ msgstr ""
 "Melden Sie Fehler an: ~a.\n"
 "Melden Sie Übersetzungsfehler an: translation-team-de@lists.sourceforge.net."
 
-#: guix/ui.scm:526
+#: guix/ui.scm:549
 #, scheme-format
 msgid ""
 "\n"
@@ -4806,35 +5423,36 @@ msgstr ""
 "\n"
 "Homepage von ~a: <~a>"
 
-#: guix/ui.scm:528
+#: guix/ui.scm:551
+#, scheme-format
 msgid ""
 "\n"
-"General help using GNU software: <http://www.gnu.org/gethelp/>"
+"General help using Guix and GNU software: <~a>"
 msgstr ""
 "\n"
-"Allgemeine Hilfe zu GNU-Software: <http://www.gnu.org/gethelp/>"
+"Allgemeine Hilfe zu Guix und GNU-Software: <~a>"
 
-#: guix/ui.scm:583
+#: guix/ui.scm:607
 #, scheme-format
 msgid "'~a' is not a valid regular expression: ~a~%"
 msgstr "„~a“ ist kein gültiger regulärer Ausdruck: ~a~%"
 
-#: guix/ui.scm:589
+#: guix/ui.scm:613
 #, scheme-format
 msgid "~a: invalid number~%"
 msgstr "~a: Ungültige Zahl~%"
 
-#: guix/ui.scm:607
+#: guix/ui.scm:631
 #, scheme-format
 msgid "invalid number: ~a~%"
 msgstr "Ungültige Zahl: ~a~%"
 
-#: guix/ui.scm:630
+#: guix/ui.scm:654
 #, scheme-format
 msgid "unknown unit: ~a~%"
 msgstr "Unbekannte Einheit: ~a~%"
 
-#: guix/ui.scm:645
+#: guix/ui.scm:669
 #, scheme-format
 msgid ""
 "You cannot have two different versions\n"
@@ -4843,7 +5461,7 @@ msgstr ""
 "Sie können keine zwei verschiedenen Versionen\n"
 "oder Varianten von @code{~a} im selben Profil haben."
 
-#: guix/ui.scm:648
+#: guix/ui.scm:672
 #, scheme-format
 msgid ""
 "Try upgrading both @code{~a} and @code{~a},\n"
@@ -4852,111 +5470,111 @@ msgstr ""
 "Versuchen Sie, sowohl @code{~a} als auch @code{~a} zu aktualisieren,\n"
 "oder entfernen Sie eines von beidem aus dem Profil."
 
-#: guix/ui.scm:667
+#: guix/ui.scm:708
 #, scheme-format
 msgid "~a:~a:~a: package `~a' has an invalid input: ~s~%"
 msgstr "~a:~a:~a: Paket „~a“ hat eine ungültige Eingabe: ~s~%"
 
-#: guix/ui.scm:674
+#: guix/ui.scm:715
 #, scheme-format
 msgid "~a: ~a: build system `~a' does not support cross builds~%"
 msgstr "~a: ~a: Erstellungssystem „~a“ unterstützt kein Cross-Erstellen~%"
 
-#: guix/ui.scm:680
+#: guix/ui.scm:721
 #, scheme-format
 msgid "~s: invalid G-expression input~%"
 msgstr "~s: Ungültige Eingabe eines G-Ausdrucks~%"
 
-#: guix/ui.scm:683
+#: guix/ui.scm:724
 #, scheme-format
 msgid "profile '~a' does not exist~%"
 msgstr "Profil „~a“ existiert nicht~%"
 
-#: guix/ui.scm:686
+#: guix/ui.scm:727
 #, scheme-format
 msgid "generation ~a of profile '~a' does not exist~%"
 msgstr "Generation ~a des Profils „~a“ existiert nicht~%"
 
-#: guix/ui.scm:691
+#: guix/ui.scm:732
 #, scheme-format
 msgid "package '~a~@[@~a~]~@[:~a~]' not found in profile~%"
 msgstr "Paket „~a~@[@~a~]~@[:~a~]“ wurde im Profil nicht gefunden~%"
 
-#: guix/ui.scm:703
+#: guix/ui.scm:744
 #, scheme-format
 msgid "   ... propagated from ~a@~a~%"
 msgstr "   … propagiert von ~a@~a~%"
 
-#: guix/ui.scm:713
+#: guix/ui.scm:754
 #, scheme-format
 msgid "profile contains conflicting entries for ~a~a~%"
 msgstr "Profil enthält im Konflikt stehende Einträge für ~a~a~%"
 
-#: guix/ui.scm:716
+#: guix/ui.scm:757
 #, scheme-format
 msgid "  first entry: ~a@~a~a ~a~%"
 msgstr "  erster Eintrag: ~a@~a~a ~a~%"
 
-#: guix/ui.scm:722
+#: guix/ui.scm:763
 #, scheme-format
 msgid "  second entry: ~a@~a~a ~a~%"
 msgstr "  zweiter Eintrag: ~a@~a~a ~a~%"
 
-#: guix/ui.scm:734
+#: guix/ui.scm:775
 #, scheme-format
 msgid "corrupt input while restoring '~a' from ~s~%"
 msgstr "Beschädigte Eingabe, während „~a“ aus „~s“ wiederhergestellt wurde~%"
 
-#: guix/ui.scm:736
+#: guix/ui.scm:777
 #, scheme-format
 msgid "corrupt input while restoring archive from ~s~%"
 msgstr "Beschädigte Eingabe, während das Archiv aus „~s“ wiederhergestellt wurde~%"
 
-#: guix/ui.scm:739
+#: guix/ui.scm:780
 #, scheme-format
 msgid "failed to connect to `~a': ~a~%"
 msgstr "Verbindung zu „~a“ fehlgeschlagen: ~a~%"
 
-#: guix/ui.scm:747
+#: guix/ui.scm:788
 #, scheme-format
 msgid "reference to invalid output '~a' of derivation '~a'~%"
 msgstr "Referenz auf ungültige Ausgabe „~a“ der Ableitung „~a“~%"
 
-#: guix/ui.scm:751
+#: guix/ui.scm:792
 #, scheme-format
 msgid "file '~a' could not be found in these directories:~{ ~a~}~%"
 msgstr "Datei „~a“ konnte in diesen Verzeichnissen nicht gefunden werden:~{ ~a~}~%"
 
-#: guix/ui.scm:756
+#: guix/ui.scm:797
 #, scheme-format
 msgid "program exited~@[ with non-zero exit status ~a~]~@[ terminated by signal ~a~]~@[ stopped by signal ~a~]: ~s~%"
 msgstr "Programm wurde~@[ mit Exit-Status ~a ungleich null~] beendet~@[ durch Signal ~a~]~@[, angehalten durch Signal ~a~]: ~s~%"
 
-#: guix/ui.scm:830
+#: guix/ui.scm:877
 #, scheme-format
 msgid "failed to read expression ~s: ~s~%"
 msgstr "Ausdruck ~s konnte nicht gelesen werden: ~s~%"
 
-#: guix/ui.scm:836
+#: guix/ui.scm:883
 #, scheme-format
 msgid "failed to evaluate expression '~a':~%"
 msgstr "Ausdruck „~a“ kann nicht ausgewertet werden:~%"
 
-#: guix/ui.scm:839
+#: guix/ui.scm:886
 #, scheme-format
 msgid "syntax error: ~a~%"
 msgstr "Syntaxfehler: ~a~%"
 
-#: guix/ui.scm:857
+#: guix/ui.scm:910
 #, scheme-format
 msgid "expression ~s does not evaluate to a package~%"
 msgstr "Ausdruck ~s ergibt kein Paket~%"
 
-#: guix/ui.scm:884
+#: guix/ui.scm:937
 msgid "at least ~,1h MB needed but only ~,1h MB available in ~a~%"
 msgstr "Mindestens ~,1h MB werden gebraucht, aber nur ~,1h MB sind verfügbar in ~a~%"
 
-#: guix/ui.scm:982
+#: guix/ui.scm:1046
 #, scheme-format
 msgid "~:[The following derivation would be built:~%~{   ~a~%~}~;~]"
 msgid_plural "~:[The following derivations would be built:~%~{   ~a~%~}~;~]"
@@ -4965,32 +5583,44 @@ msgstr[1] "~:[Folgende Ableitungen würden erstellt:~%~{   ~a~%~}~;~]"
 
 #. TRANSLATORS: "MB" is for "megabyte"; it should be
 #. translated to the corresponding abbreviation.
-#: guix/ui.scm:990
+#: guix/ui.scm:1055
 msgid "~:[~,1h MB would be downloaded:~%~{   ~a~%~}~;~]"
 msgstr "~:[~,1h MB würden heruntergeladen:~%~{   ~a~%~}~;~]"
 
-#: guix/ui.scm:996
+#: guix/ui.scm:1061
 #, scheme-format
 msgid "~:[The following file would be downloaded:~%~{   ~a~%~}~;~]"
 msgid_plural "~:[The following files would be downloaded:~%~{   ~a~%~}~;~]"
 msgstr[0] "~:[Folgende Datei würde heruntergeladen:~%~{   ~a~%~}~;~]"
 msgstr[1] "~:[Folgende Dateien würden heruntergeladen:~%~{   ~a~%~}~;~]"
 
-#: guix/ui.scm:1003
+#: guix/ui.scm:1068
 #, scheme-format
 msgid "~:[The following graft would be made:~%~{   ~a~%~}~;~]"
 msgid_plural "~:[The following grafts would be made:~%~{   ~a~%~}~;~]"
 msgstr[0] "~:[Folgende Veredelung würde durchgeführt:~%~{   ~a~%~}~;~]"
 msgstr[1] "~:[Folgende Veredelungen würden durchgeführt:~%~{   ~a~%~}~;~]"
 
-#: guix/ui.scm:1008
+#: guix/ui.scm:1073
 #, scheme-format
 msgid "~:[The following profile hook would be built:~%~{   ~a~%~}~;~]"
 msgid_plural "~:[The following profile hooks would be built:~%~{   ~a~%~}~;~]"
 msgstr[0] "~:[Folgender Profil-Hook würde erstellt:~%~{   ~a~%~}~;~]"
 msgstr[1] "~:[Folgende Profil-Hooks würden erstellt:~%~{   ~a~%~}~;~]"
 
-#: guix/ui.scm:1014
+#. TRANSLATORS: "MB" is for "megabyte"; it should be
+#. translated to the corresponding abbreviation.
+#: guix/ui.scm:1085
+msgid "~:[~,1h MB would be downloaded~%~;~]"
+msgstr "~:[~,1h MB würden heruntergeladen~%~;~]"
+
+#: guix/ui.scm:1089
+msgid "~:[~h item would be downloaded~%~;~]"
+msgid_plural "~:[~h items would be downloaded~%~;~]"
+msgstr[0] "~:[~h Objekt würde heruntergeladen~%~;~]"
+msgstr[1] "~:[~h Objekte würden heruntergeladen~%~;~]"
+
+#: guix/ui.scm:1097
 #, scheme-format
 msgid "~:[The following derivation will be built:~%~{   ~a~%~}~;~]"
 msgid_plural "~:[The following derivations will be built:~%~{   ~a~%~}~;~]"
@@ -4999,102 +5629,109 @@ msgstr[1] "~:[Folgende Ableitungen werden erstellt:~%~{   ~a~%~}~;~]"
 
 #. TRANSLATORS: "MB" is for "megabyte"; it should be
 #. translated to the corresponding abbreviation.
-#: guix/ui.scm:1022
+#: guix/ui.scm:1106
 msgid "~:[~,1h MB will be downloaded:~%~{   ~a~%~}~;~]"
 msgstr "~:[~,1h MB werden heruntergeladen:~%~{   ~a~%~}~;~]"
 
-#: guix/ui.scm:1028
+#: guix/ui.scm:1112
 #, scheme-format
 msgid "~:[The following file will be downloaded:~%~{   ~a~%~}~;~]"
 msgid_plural "~:[The following files will be downloaded:~%~{   ~a~%~}~;~]"
 msgstr[0] "~:[Die folgende Datei wird heruntergeladen:~%~{   ~a~%~}~;~]"
 msgstr[1] "~:[Die folgenden Dateien werden heruntergeladen:~%~{   ~a~%~}~;~]"
 
-#: guix/ui.scm:1035
+#: guix/ui.scm:1119
 #, scheme-format
 msgid "~:[The following graft will be made:~%~{   ~a~%~}~;~]"
 msgid_plural "~:[The following grafts will be made:~%~{   ~a~%~}~;~]"
 msgstr[0] "~:[Folgende Veredelung wird durchgeführt:~%~{   ~a~%~}~;~]"
 msgstr[1] "~:[Folgende Veredelungen werden durchgeführt:~%~{   ~a~%~}~;~]"
 
-#: guix/ui.scm:1040
+#: guix/ui.scm:1124
 #, scheme-format
 msgid "~:[The following profile hook will be built:~%~{   ~a~%~}~;~]"
 msgid_plural "~:[The following profile hooks will be built:~%~{   ~a~%~}~;~]"
 msgstr[0] "~:[Folgender Profil-Hook wird erstellt:~%~{   ~a~%~}~;~]"
 msgstr[1] "~:[Folgende Profil-Hooks werden erstellt:~%~{   ~a~%~}~;~]"
 
-#: guix/ui.scm:1167
+#. TRANSLATORS: "MB" is for "megabyte"; it should be
+#. translated to the corresponding abbreviation.
+#: guix/ui.scm:1136
+msgid "~:[~,1h MB will be downloaded~%~;~]"
+msgstr "~:[~,1h MB werden heruntergeladen~%~;~]"
+
+#: guix/ui.scm:1140
+msgid "~:[~h item will be downloaded~%~;~]"
+msgid_plural "~:[~h items will be downloaded~%~;~]"
+msgstr[0] "~:[~h Objekt wird heruntergeladen~%~;~]"
+msgstr[1] "~:[~h Objekte werden heruntergeladen~%~;~]"
+
+#: guix/ui.scm:1259
 msgid "(dependencies or package changed)"
 msgstr "(Änderungen an Abhängigkeiten oder am Paket)"
 
-#: guix/ui.scm:1180
+#: guix/ui.scm:1278
 #, scheme-format
 msgid "The following package would be removed:~%~{~a~%~}~%"
 msgid_plural "The following packages would be removed:~%~{~a~%~}~%"
 msgstr[0] "Das folgende Paket würde entfernt:~%~{~a~%~}~%"
 msgstr[1] "Die folgenden Pakete würden entfernt:~%~{~a~%~}~%"
 
-#: guix/ui.scm:1185
+#: guix/ui.scm:1283
 #, scheme-format
 msgid "The following package will be removed:~%~{~a~%~}~%"
 msgid_plural "The following packages will be removed:~%~{~a~%~}~%"
 msgstr[0] "Das folgende Paket wird entfernt:~%~{~a~%~}~%"
 msgstr[1] "Die folgenden Pakete werden entfernt:~%~{~a~%~}~%"
 
-#: guix/ui.scm:1198
+#: guix/ui.scm:1296
 #, scheme-format
 msgid "The following package would be downgraded:~%~{~a~%~}~%"
 msgid_plural "The following packages would be downgraded:~%~{~a~%~}~%"
 msgstr[0] "Die Version des folgenden Pakets würde heruntergestuft:~%~{~a~%~}~%"
 msgstr[1] "Die Version der folgenden Pakete würde heruntergestuft:~%~{~a~%~}~%"
 
-#: guix/ui.scm:1203
+#: guix/ui.scm:1301
 #, scheme-format
 msgid "The following package will be downgraded:~%~{~a~%~}~%"
 msgid_plural "The following packages will be downgraded:~%~{~a~%~}~%"
 msgstr[0] "Die Version des folgenden Pakets wird heruntergestuft:~%~{~a~%~}~%"
 msgstr[1] "Die Version der folgenden Pakete wird heruntergestuft:~%~{~a~%~}~%"
 
-#: guix/ui.scm:1217
+#: guix/ui.scm:1314
 #, scheme-format
 msgid "The following package would be upgraded:~%~{~a~%~}~%"
 msgid_plural "The following packages would be upgraded:~%~{~a~%~}~%"
 msgstr[0] "Das folgende Paket würde aktualisiert:~%~{~a~%~}~%"
 msgstr[1] "Die folgenden Pakete würden aktualisiert:~%~{~a~%~}~%"
 
-#: guix/ui.scm:1222
+#: guix/ui.scm:1319
 #, scheme-format
 msgid "The following package will be upgraded:~%~{~a~%~}~%"
 msgid_plural "The following packages will be upgraded:~%~{~a~%~}~%"
 msgstr[0] "Das folgende Paket wird aktualisiert:~%~{~a~%~}~%"
 msgstr[1] "Die folgenden Pakete werden aktualisiert:~%~{~a~%~}~%"
 
-#: guix/ui.scm:1233
+#: guix/ui.scm:1330
 #, scheme-format
 msgid "The following package would be installed:~%~{~a~%~}~%"
 msgid_plural "The following packages would be installed:~%~{~a~%~}~%"
 msgstr[0] "Das folgende Paket würde installiert:~%~{~a~%~}~%"
 msgstr[1] "Die folgenden Pakete würden installiert:~%~{~a~%~}~%"
 
-#: guix/ui.scm:1238
+#: guix/ui.scm:1335
 #, scheme-format
 msgid "The following package will be installed:~%~{~a~%~}~%"
 msgid_plural "The following packages will be installed:~%~{~a~%~}~%"
 msgstr[0] "Das folgende Paket wird installiert:~%~{~a~%~}~%"
 msgstr[1] "Die folgenden Pakete werden installiert:~%~{~a~%~}~%"
 
-#: guix/ui.scm:1592
-#, scheme-format
-msgid "Run @code{~a ... | less} to view all the results."
-msgstr "Führen Sie @code{~a … | less} aus, um alle Ergebnisse zu sehen."
-
-#: guix/ui.scm:1742
+#: guix/ui.scm:1862
 #, scheme-format
 msgid "invalid syntax: ~a~%"
 msgstr "Unzulässige Syntax: ~a~%"
 
-#: guix/ui.scm:1752
+#: guix/ui.scm:1871
 #, scheme-format
 msgid "Generation ~a\t~a"
 msgstr "Generation ~a\t~a"
@@ -5104,7 +5741,7 @@ msgstr "Generation ~a\t~a"
 #. usual way of presenting dates in your locale.
 #. See https://www.gnu.org/software/guile/manual/html_node/SRFI_002d19-Date-to-string.html
 #. for details.
-#: guix/ui.scm:1762
+#: guix/ui.scm:1881
 #, scheme-format
 msgid "~b ~d ~Y ~T"
 msgstr "~d. ~B ~Y ~T"
@@ -5112,37 +5749,37 @@ msgstr "~d. ~B ~Y ~T"
 #. TRANSLATORS: The word "current" here is an adjective for
 #. "Generation", as in "current generation".  Use the appropriate
 #. gender where applicable.
-#: guix/ui.scm:1768
+#: guix/ui.scm:1887
 #, scheme-format
 msgid "~a\t(current)~%"
 msgstr "~a\t(aktuell)~%"
 
-#: guix/ui.scm:1802
+#: guix/ui.scm:1921
 #, scheme-format
 msgid "cannot lock profile ~a: ~a~%"
 msgstr "Kann Profil ~a nicht sperren: ~a~%"
 
-#: guix/ui.scm:1804
+#: guix/ui.scm:1923
 #, scheme-format
 msgid "profile ~a is locked by another process~%"
 msgstr "Profil ~a wird durch einen anderen Prozess gesperrt~%"
 
-#: guix/ui.scm:1831
+#: guix/ui.scm:1950
 #, scheme-format
 msgid "switched from generation ~a to ~a~%"
 msgstr "Von Generation „~a“ zu „~a“ gewechselt~%"
 
-#: guix/ui.scm:1847
+#: guix/ui.scm:1966
 #, scheme-format
 msgid "deleting ~a~%"
 msgstr "~a wird gelöscht~%"
 
-#: guix/ui.scm:1878
+#: guix/ui.scm:1997
 #, scheme-format
 msgid "Try `guix --help' for more information.~%"
 msgstr "Rufen Sie „guix --help“ auf, um weitere Informationen zu erhalten.~%"
 
-#: guix/ui.scm:1906
+#: guix/ui.scm:2078
 msgid ""
 "Usage: guix COMMAND ARGS...\n"
 "Run COMMAND with ARGS.\n"
@@ -5150,21 +5787,21 @@ msgstr ""
 "Aufruf: guix BEFEHL ARGUMENTE …\n"
 "BEFEHL mit ARGUMENTEN ausführen.\n"
 
-#: guix/ui.scm:1909
+#: guix/ui.scm:2081
 msgid "COMMAND must be one of the sub-commands listed below:\n"
 msgstr "BEFEHL muss einer der unten aufgelisteten Unterbefehle sein:\n"
 
-#: guix/ui.scm:1925
+#: guix/ui.scm:2105
 #, scheme-format
 msgid "guix: ~a: command not found~%"
 msgstr "guix: ~a: Befehl nicht gefunden~%"
 
-#: guix/ui.scm:1955
+#: guix/ui.scm:2135
 #, scheme-format
 msgid "guix: missing command name~%"
 msgstr "guix: Befehlsname fehlt~%"
 
-#: guix/ui.scm:1963
+#: guix/ui.scm:2143
 #, scheme-format
 msgid "guix: unrecognized option '~a'~%"
 msgstr "guix: Nicht erkannte Option „~a“~%"
@@ -5227,8 +5864,8 @@ msgstr "Paket-Zwischenspeicher wird erstellt …"
 
 #: guix/status.scm:475
 #, scheme-format
-msgid "applying ~a graft for ~a..."
-msgid_plural "applying ~a grafts for ~a..."
+msgid "applying ~a graft for ~a ..."
+msgid_plural "applying ~a grafts for ~a ..."
 msgstr[0] "~a Veredelung für ~a wird angewandt …"
 msgstr[1] "~a Veredelungen für ~a werden angewandt …"
 
@@ -5283,7 +5920,7 @@ msgstr "Substituiere ~a …"
 
 #: guix/status.scm:528
 #, scheme-format
-msgid "downloading from ~a..."
+msgid "downloading from ~a ..."
 msgstr "Lade von ~a herunter …"
 
 #: guix/status.scm:553
@@ -5317,76 +5954,130 @@ msgstr ""
 msgid "offloading build of ~a to '~a'"
 msgstr "Lagere Erstellung von ~a an „~a“ aus"
 
-#: guix/http-client.scm:120
+#: guix/http-client.scm:125
 #, scheme-format
 msgid "following redirection to `~a'...~%"
 msgstr "Weiterleitung zu „~a“ wird gefolgt …~%"
 
-#: guix/http-client.scm:132
+#: guix/http-client.scm:137
 #, scheme-format
 msgid "~a: HTTP download failed: ~a (~s)"
 msgstr "~a: Herunterladen über HTTP fehlgeschlagen: ~a (~s)"
 
-#: guix/nar.scm:147
+#: guix/nar.scm:172
 msgid "signature is not a valid s-expression"
 msgstr "Signatur ist kein gültiger S-Ausdruck"
 
-#: guix/nar.scm:156
+#: guix/nar.scm:181
 msgid "invalid signature"
 msgstr "Ungültige Signatur"
 
-#: guix/nar.scm:160
+#: guix/nar.scm:185
 msgid "invalid hash"
 msgstr "Ungültige Prüfsumme"
 
-#: guix/nar.scm:168
+#: guix/nar.scm:193
 msgid "unauthorized public key"
 msgstr "Nicht autorisierter öffentlicher Schlüssel"
 
-#: guix/nar.scm:173
+#: guix/nar.scm:198
 msgid "corrupt signature data"
 msgstr "Signaturdaten beschädigt"
 
-#: guix/nar.scm:193
+#: guix/nar.scm:218
 msgid "corrupt file set archive"
 msgstr "Dateienarchiv beschädigt"
 
-#: guix/nar.scm:203
+#: guix/nar.scm:228
 #, scheme-format
 msgid "importing file or directory '~a'...~%"
 msgstr "Datei oder Verzeichnis „~a“ wird importiert …~%"
 
-#: guix/nar.scm:214
+#: guix/nar.scm:239
 #, scheme-format
 msgid "found valid signature for '~a'~%"
 msgstr "Gültige Signatur für „~a“ gefunden~%"
 
-#: guix/nar.scm:221
+#: guix/nar.scm:246
 msgid "imported file lacks a signature"
 msgstr "Der importierten Datei fehlt eine Signatur"
 
-#: guix/nar.scm:260
+#: guix/nar.scm:285
 msgid "invalid inter-file archive mark"
 msgstr "Ungültige Archiv-Markierung zwischen Dateien"
 
-#: guix/channels.scm:168
+#: guix/channels.scm:266
 msgid "unsupported '.guix-channel' version"
 msgstr "„.guix-channel“-Version wird nicht unterstützt"
 
-#: guix/channels.scm:174
+#: guix/channels.scm:272
 msgid "invalid '.guix-channel' file"
 msgstr "Ungültige „.guix-channel“-Datei"
 
-#: guix/channels.scm:224
+#: guix/channels.scm:331
+msgid "Authenticating channel '~a', commits ~a to ~a (~h new commits)...~%"
+msgstr "Kanal „~a“, Commits ~a bis ~a werden authentifiziert (~h neue Commits) …~%"
+
+#: guix/channels.scm:382
+#, scheme-format
+msgid "channel '~a' lacks an introduction and cannot be authenticated~%"
+msgstr "Kanal „~a“ verfügt über keine Einführung und kann nicht authentifiziert werden~%"
+
+#: guix/channels.scm:387
+msgid ""
+"Add the missing introduction to your\n"
+"channels file to address the issue.  Alternatively, you can pass\n"
+"@option{--disable-authentication}, at the risk of running unauthenticated and\n"
+"thus potentially malicious code."
+msgstr ""
+"Fügen Sie die fehlende Einführung in Ihre Kanaldatei ein, um das Problem\n"
+"zu beheben. Alternativ können Sie @option{--disable-authentication}\n"
+"angeben und riskieren, nicht authentifizierten und vielleicht\n"
+"bösartigen Code auszuführen."
+
+#: guix/channels.scm:391
+#, scheme-format
+msgid "channel authentication disabled~%"
+msgstr "Kanalauthentifizierung deaktiviert~%"
+
+#: guix/channels.scm:416
+#, scheme-format
+msgid "aborting update of channel '~a' to commit ~a, which is not a descendant of ~a"
+msgstr "Verweigere Aktualisierung von Kanal „~a“ auf Commit ~a, der kein Vorfahr von ~a ist"
+
+#: guix/channels.scm:427
+msgid ""
+"Use @option{--allow-downgrades} to force\n"
+"this downgrade."
+msgstr "Benutzen Sie @option{--allow-downgrades}, um diese Rückstufung zu erzwingen."
+
+#: guix/channels.scm:431
+msgid ""
+"This could indicate that the channel has\n"
+"been tampered with and is trying to force a roll-back, preventing you from\n"
+"getting the latest updates.  If you think this is not the case, explicitly\n"
+"allow non-forward updates."
+msgstr ""
+"Diese Meldung könnte bedeuten, dass jemand den Kanal manipuliert hat und\n"
+"eine Rücksetzung Ihrer Software bewirken will, damit Sie nicht die neuesten\n"
+"Aktualisierungen bekommen.  Wenn Sie denken, dass das nicht der Fall ist,\n"
+"müssen Sie nicht vorwärtsgerichtete Aktualisierungen ausdrücklich erlauben."
+
+#: guix/channels.scm:484
 #, scheme-format
 msgid "Updating channel '~a' from Git repository at '~a'...~%"
 msgstr "Kanal „~a“ wird vom Git-Repository auf „~a“ aktualisiert …~%"
 
-#: guix/channels.scm:475
+#: guix/channels.scm:505
+#, scheme-format
+msgid "pulled channel '~a' from a mirror of ~a, which might be stale~%"
+msgstr "Kanal „~a“ von einem Spiegelserver für „~a“ geladen, könnte veraltet sein …~%"
+
+#: guix/channels.scm:733
 msgid "'guix' channel is lacking"
 msgstr "Ein „guix“-Kanal fehlt"
 
-#: guix/channels.scm:477
+#: guix/channels.scm:735
 msgid ""
 "Make sure your list of channels\n"
 "contains one channel named @code{guix} providing the core of Guix."
@@ -5394,67 +6085,76 @@ msgstr ""
 "Stellen Sie sicher, dass Ihre Kanalliste einen Kanal namens\n"
 "@code{guix} enthält, der den Kern von Guix zur Verfügung stellt."
 
-#: guix/channels.scm:679
+#: guix/channels.scm:964
 msgid "invalid channel news entry"
 msgstr "Ungültiger Eintrag zu Neuigkeiten im Kanal"
 
-#: guix/channels.scm:697
+#: guix/channels.scm:982
 msgid "syntactically invalid channel news file"
 msgstr "Datei mit Neuigkeiten zum Kanal ist syntaktisch fehlerhaft"
 
-#: guix/channels.scm:700
+#: guix/channels.scm:985
 msgid "invalid channel news file"
 msgstr "Ungültige Datei mit Kanalneuigkeiten"
 
-#: guix/profiles.scm:564
+#: guix/profiles.scm:574
 msgid "unsupported manifest format"
 msgstr "Nicht unterstütztes Manifest-Format"
 
-#: guix/profiles.scm:1878
+#: guix/profiles.scm:1935
 #, scheme-format
 msgid "while creating directory `~a': ~a"
 msgstr "Beim Anlegen des Verzeichnisses „~a“: ~a"
 
-#: guix/profiles.scm:1883
+#: guix/profiles.scm:1940
 #, scheme-format
 msgid "Please create the @file{~a} directory, with you as the owner."
 msgstr "Bitte legen Sie das Verzeichnis @file{~a} mit Ihnen als Eigentümer an.~%"
 
-#: guix/profiles.scm:1892
+#: guix/profiles.scm:1949
 #, scheme-format
 msgid "directory `~a' is not owned by you"
 msgstr "Das Verzeichnis „~a“ gehört Ihnen nicht."
 
-#: guix/profiles.scm:1896
+#: guix/profiles.scm:1953
 #, scheme-format
 msgid "Please change the owner of @file{~a} to user ~s."
 msgstr "Bitte ändern Sie den Eigentümer von @file{~a} in Benutzer ~s.~%"
 
-#: guix/git.scm:170
-msgid "long Git object ID is required"
-msgstr "Eine lange Git-Objekt-ID muss angegeben werden"
+#: guix/git.scm:136
+msgid "receiving objects"
+msgstr "Objekte empfangen"
 
-#: guix/git.scm:228
+#: guix/git.scm:138
+msgid "indexing objects"
+msgstr "Index von Objekten erstellen"
+
+#: guix/git.scm:268
 #, scheme-format
-msgid "updating submodule '~a'...~%"
-msgstr "Aktualisiere Submodul „~a“ …~%"
+msgid "Git error ~a~%"
+msgstr "Git-Fehler ~a~%"
 
-#: guix/git.scm:241
+#: guix/git.scm:270 guix/git.scm:438
 #, scheme-format
-msgid "Support for submodules is missing; please upgrade Guile-Git.~%"
-msgstr "Unterstützung für Submodule fehlt; bitte aktualisieren Sie Guile-Git.~%"
+msgid "Git error: ~a~%"
+msgstr "Git-Fehler: ~a~%"
+
+#: guix/git.scm:284
+#, scheme-format
+msgid "updating submodule '~a'...~%"
+msgstr "Aktualisiere Submodul „~a“ …~%"
 
-#: guix/git.scm:440
+#: guix/git.scm:532
 #, scheme-format
 msgid "cannot fetch commit ~a from ~a: ~a"
 msgstr "Kann Commit ~a aus ~a nicht holen: ~a"
 
-#: guix/git.scm:443
+#: guix/git.scm:535
 #, scheme-format
 msgid "cannot fetch branch '~a' from ~a: ~a"
 msgstr "Kann Branch „~a“ aus ~a nicht holen: ~a"
 
-#: guix/git.scm:446
+#: guix/git.scm:538
 #, scheme-format
 msgid "Git failure while fetching ~a: ~a"
 msgstr "Git-Fehler beim Holen von ~a: ~a"
@@ -5471,7 +6171,7 @@ msgstr "„~a“ ist veraltet~%"
 
 #. TRANSLATORS: 'derivation' must not be translated; it refers to the
 #. 'derivation' procedure.
-#: guix/derivations.scm:743
+#: guix/derivations.scm:775
 #, scheme-format
 msgid "in '~a': deprecated 'derivation' calling convention used~%"
 msgstr "in „~a“: Veraltete Aufrufkonvention bei „derivation“ benutzt~%"
@@ -5600,14 +6300,32 @@ msgstr "auf Verbindungen an SOCKET lauschen"
 msgid "produce debugging output"
 msgstr "Debug-Ausgabe zur Fehlersuche erzeugen"
 
+#~ msgid "long Git object ID is required"
+#~ msgstr "Eine lange Git-Objekt-ID muss angegeben werden"
+
+#~ msgid "Support for submodules is missing; please upgrade Guile-Git.~%"
+#~ msgstr "Unterstützung für Submodule fehlt; bitte aktualisieren Sie Guile-Git.~%"
+
+#~ msgid "cannot find public key for secret key '~a'~%"
+#~ msgstr ""
+#~ "Öffentlicher Schlüssel des geheimen Schlüssels „~a“ konnte\n"
+#~ "nicht gefunden werden~%"
+
+#~ msgid "error: invalid signature: ~a~%"
+#~ msgstr "Fehler: Ungültige Signatur: ~a~%"
+
+#~ msgid "error: unauthorized public key: ~a~%"
+#~ msgstr "Fehler: Nicht autorisierter öffentlicher Schlüssel: ~a~%"
+
+#~ msgid "error: corrupt signature data: ~a~%"
+#~ msgstr "Fehler: Signaturdaten beschädigt: ~a~%"
+
+#~ msgid "Run @code{~a ... | less} to view all the results."
+#~ msgstr "Führen Sie @code{~a … | less} aus, um alle Ergebnisse zu sehen."
+
 #~ msgid "Retry system install"
 #~ msgstr "Systeminstallation erneut versuchen"
 
-#~ msgid "~a package in profile~%"
-#~ msgid_plural "~a packages in profile~%"
-#~ msgstr[0] "~a Paket im Profil~%"
-#~ msgstr[1] "~a Pakete im Profil~%"
-
 #~ msgid "failed to obtain list of shepherd services~%"
 #~ msgstr "Liste der Shepherd-Dienste konnte nicht abgerufen werden.~%"
 
@@ -5681,9 +6399,6 @@ msgstr "Debug-Ausgabe zur Fehlersuche erzeugen"
 #~ msgid "<unknown location>"
 #~ msgstr "<unbekannte Stelle>"
 
-#~ msgid "do not use the 'build hook'"
-#~ msgstr "den „Build-Hook“ nicht benutzen"
-
 #~ msgid "'--url', '--commit', and '--branch' are not applicable~%"
 #~ msgstr "„--url“, „--commit“ und „--branch“ passen hier nicht.~%"
 
diff --git a/po/guix/eo.po b/po/guix/eo.po
index a03791cfc9..899f885c45 100644
--- a/po/guix/eo.po
+++ b/po/guix/eo.po
@@ -1,84 +1,1287 @@
 # Esperanto messages for GNU Guix
-# Copyright (C) 2013, 2014, 2015 Free Software Foundation, Inc.
+# Copyright (C) 2013, 2014, 2015, 2020 the authors of Guix (msgids)
 # This file is distributed under the same license as the guix package.
-# Felipe Castro <fefcas@gmail.com>, 2013, 2014, 2015.
+# Felipe Castro <fefcas@gmail.com>, 2013, 2014, 2015, 2020.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: guix 0.8.2\n"
-"Report-Msgid-Bugs-To: ludo@gnu.org\n"
-"POT-Creation-Date: 2015-05-10 14:02+0200\n"
-"PO-Revision-Date: 2015-06-19 21:09-0300\n"
+"Project-Id-Version: guix 1.2.0-pre1\n"
+"Report-Msgid-Bugs-To: bug-guix@gnu.org\n"
+"POT-Creation-Date: 2020-10-05 16:00+0200\n"
+"PO-Revision-Date: 2020-10-13 15:52-0300\n"
 "Last-Translator: Felipe Castro <fefcas@gmail.com>\n"
 "Language-Team: Esperanto <translation-team-eo@lists.sourceforge.net>\n"
 "Language: eo\n"
-"X-Bugs: Report translation errors to the Language-Team address.\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Poedit 1.7.7\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
+"X-Generator: Poedit 2.4.1\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: gnu/packages.scm:78
+#: gnu.scm:81
 #, scheme-format
-msgid "~a: patch not found"
-msgstr "~a: flikaĵo ne trovita"
+msgid "module ~a not found"
+msgstr "modulo ~a ne trovita"
+
+#: gnu.scm:99
+msgid ""
+"You may use @command{guix package --show=foo | grep location} to search\n"
+"for the location of package @code{foo}.\n"
+"If you get the line @code{location: gnu/packages/bar.scm:174:2},\n"
+"add @code{bar} to the @code{use-package-modules} form."
+msgstr ""
 
-#: gnu/packages.scm:89
+#: gnu.scm:107
 #, scheme-format
-msgid "could not find bootstrap binary '~a' for system '~a'"
-msgstr "ne eblis trovi ekŝargilan ciferec-dosieron '~a' por la sistemo '~a'"
+msgid "Try adding @code{(use-package-modules ~a)}."
+msgstr ""
 
-#: gnu/packages.scm:141
+#: gnu.scm:122
 #, scheme-format
-msgid "cannot access `~a': ~a~%"
-msgstr "ne eblas atingi '~a': ~a~%"
+msgid ""
+"You may use @command{guix system search ~a} to search for a service\n"
+"matching @code{~a}.\n"
+"If you get the line @code{location: gnu/services/foo.scm:188:2},\n"
+"add @code{foo} to the @code{use-service-modules} form."
+msgstr ""
 
-#: gnu/packages.scm:382
+#: gnu.scm:131
 #, scheme-format
-msgid "looking for the latest release of GNU ~a..."
-msgstr "ni serĉas la lastan eldonon de GNU ~a..."
+msgid "Try adding @code{(use-service-modules ~a)}."
+msgstr ""
 
-#: gnu/packages.scm:389
+#: gnu/packages.scm:96
 #, scheme-format
-msgid "~a: note: using ~a but ~a is available upstream~%"
-msgstr "~a: rimarko: ni uzas ~a sed ~a disponeblas unuanivele~%"
+msgid "~a: patch not found"
+msgstr "~a: flikaĵo ne trovita"
 
-#: gnu/packages.scm:411 guix/scripts/package.scm:350
+#: gnu/packages.scm:480 gnu/packages.scm:521
 #, scheme-format
 msgid "ambiguous package specification `~a'~%"
 msgstr "plursenca pak-specifigo '~a'~%"
 
-#: gnu/packages.scm:412 guix/scripts/package.scm:352
+#: gnu/packages.scm:481 gnu/packages.scm:522
+#, scheme-format
+msgid "choosing ~a@~a from ~a~%"
+msgstr "ni elektas ~a@~a el ~a~%"
+
+#: gnu/packages.scm:486 guix/scripts/package.scm:210
 #, scheme-format
-msgid "choosing ~a from ~a~%"
-msgstr "ni elektas ~a el ~a~%"
+msgid "package '~a' has been superseded by '~a'~%"
+msgstr "pako '~a' estas ĝisdatiginda per '~a'~%"
 
-#: gnu/packages.scm:418
+#: gnu/packages.scm:493 gnu/packages.scm:510
 #, scheme-format
 msgid "~A: package not found for version ~a~%"
 msgstr "~A: pako ne trovita por versio ~a~%"
 
-#: gnu/packages.scm:420
+#: gnu/packages.scm:494 gnu/packages.scm:511
 #, scheme-format
 msgid "~A: unknown package~%"
 msgstr "~A: nekonata pako~%"
 
-#: gnu/system.scm:811
-msgid "system locale lacks a definition"
-msgstr "sistema lokaĵaro malhavas difinon"
+#: gnu/packages.scm:550
+#, scheme-format
+msgid "package `~a' lacks output `~a'~%"
+msgstr "pako '~a' malhavas eligon '~a'~%"
 
-#: gnu/services/dmd.scm:51
+#: gnu/services.scm:249
+#, scheme-format
+msgid "~a: no value specified for service of type '~a'"
+msgstr ""
+
+#: gnu/services.scm:347
+msgid ""
+"Build the operating system top-level directory, which in\n"
+"turn refers to everything the operating system needs: its kernel, initrd,\n"
+"system profile, boot script, and so on."
+msgstr ""
+
+#: gnu/services.scm:377
+msgid ""
+"Produce the operating system's boot script, which is spawned\n"
+"by the initrd once the root file system is mounted."
+msgstr ""
+
+#: gnu/services.scm:488
+msgid ""
+"Store provenance information about the system in the system\n"
+"itself: the channels used when building the system, and its configuration\n"
+"file, when available."
+msgstr ""
+
+#: gnu/services.scm:571
+msgid ""
+"Delete files from @file{/tmp}, @file{/var/run}, and other\n"
+"temporary locations at boot time."
+msgstr ""
+
+#: gnu/services.scm:625
+msgid ""
+"Run @dfn{activation} code at boot time and upon\n"
+"@command{guix system reconfigure} completion."
+msgstr ""
+
+#: gnu/services.scm:713
+msgid ""
+"Add special files to the root file system---e.g.,\n"
+"@file{/usr/bin/env}."
+msgstr ""
+
+#: gnu/services.scm:736
+#, scheme-format
+msgid "duplicate '~a' entry for /etc"
+msgstr ""
+
+#: gnu/services.scm:764
+msgid "Populate the @file{/etc} directory."
+msgstr ""
+
+#: gnu/services.scm:781
+msgid ""
+"Populate @file{/run/setuid-programs} with the specified\n"
+"executables, making them setuid-root."
+msgstr ""
+
+#: gnu/services.scm:801
+msgid ""
+"This is the @dfn{system profile}, available as\n"
+"@file{/run/current-system/profile}.  It contains packages that the sysadmin\n"
+"wants to be globally available to all the system users."
+msgstr ""
+
+#: gnu/services.scm:821
+msgid ""
+"Make ``firmware'' files loadable by the operating system\n"
+"kernel.  Firmware may then be uploaded to some of the machine's devices, such\n"
+"as Wifi cards."
+msgstr ""
+
+#: gnu/services.scm:852
+msgid ""
+"Register garbage-collector roots---i.e., store items that\n"
+"will not be reclaimed by the garbage collector."
+msgstr ""
+
+#: gnu/services.scm:878
+#, scheme-format
+msgid "no target of type '~a' for service '~a'"
+msgstr ""
+
+#: gnu/services.scm:904 gnu/services.scm:1023
+#, scheme-format
+msgid "more than one target service of type '~a'"
+msgstr ""
+
+#: gnu/services.scm:1013
+#, scheme-format
+msgid "service of type '~a' not found"
+msgstr ""
+
+#: gnu/system.scm:390
+#, scheme-format
+msgid "unrecognized boot parameters at '~a'~%"
+msgstr "nerekonataj ekŝargaj parametroj ĉe '~a'~%"
+
+#: gnu/system.scm:926
+#, scheme-format
+msgid "using a string for file '~a' is deprecated; use 'plain-file' instead~%"
+msgstr ""
+
+#: gnu/system.scm:942
+#, scheme-format
+msgid "using a monadic value for '~a' is deprecated; use 'plain-file' instead~%"
+msgstr ""
+
+#: gnu/system.scm:1069
+msgid "missing root file system"
+msgstr "mankas radika dosiersistemo"
+
+#: gnu/system.scm:1145
+#, scheme-format
+msgid "~a: invalid locale name"
+msgstr "~a: malvalida lokaĵara nomo"
+
+#: gnu/services/shepherd.scm:112
+msgid ""
+"Run the GNU Shepherd as PID 1---i.e., the operating system's first\n"
+"process.  The Shepherd takes care of managing services such as daemons by\n"
+"ensuring they are started and stopped in the right order."
+msgstr ""
+
+#: gnu/services/shepherd.scm:202
 #, scheme-format
 msgid "service '~a' provided more than once"
 msgstr "servo '~a' estas provizata pli ol unu foje"
 
-#: guix/scripts/build.scm:65
+#: gnu/services/shepherd.scm:217
+#, scheme-format
+msgid "service '~a' requires '~a', which is not provided by any service"
+msgstr ""
+
+#: gnu/services/shepherd.scm:547
+msgid ""
+"The @code{user-processes} service is responsible for\n"
+"terminating all the processes so that the root file system can be re-mounted\n"
+"read-only, just before rebooting/halting.  Processes still running after a few\n"
+"seconds after @code{SIGTERM} has been sent are terminated with\n"
+"@code{SIGKILL}."
+msgstr ""
+
+#: gnu/system/mapped-devices.scm:137
+#, scheme-format
+msgid "you may need these modules in the initrd for ~a:~{ ~a~}"
+msgstr ""
+
+#: gnu/system/mapped-devices.scm:142
+#, scheme-format
+msgid ""
+"Try adding them to the\n"
+"@code{initrd-modules} field of your @code{operating-system} declaration, along\n"
+"these lines:\n"
+"\n"
+"@example\n"
+" (operating-system\n"
+"   ;; @dots{}\n"
+"   (initrd-modules (append (list~{ ~s~})\n"
+"                           %base-initrd-modules)))\n"
+"@end example\n"
+"\n"
+"If you think this diagnostic is inaccurate, use the @option{--skip-checks}\n"
+"option of @command{guix system}.\n"
+msgstr ""
+
+#: gnu/system/mapped-devices.scm:221
+#, scheme-format
+msgid "no LUKS partition with UUID '~a'"
+msgstr ""
+
+#: gnu/system/shadow.scm:233
+#, scheme-format
+msgid "supplementary group '~a' of user '~a' is undeclared"
+msgstr ""
+
+#: gnu/system/shadow.scm:243
+#, scheme-format
+msgid "primary group '~a' of user '~a' is undeclared"
+msgstr ""
+
+#: gnu/system/shadow.scm:383
+msgid ""
+"Ensure the specified user accounts and groups exist, as well\n"
+"as each account home directory."
+msgstr ""
+
+#: guix/import/opam.scm:148
+#, fuzzy, scheme-format
+#| msgid "~A: package not found for version ~a~%"
+msgid "Package not found in opam repository: ~a~%"
+msgstr "~A: pako ne trovita por versio ~a~%"
+
+#: guix/import/opam.scm:368
+msgid "Updater for OPAM packages"
+msgstr ""
+
+#: gnu/installer.scm:214
+msgid "Locale"
+msgstr ""
+
+#: gnu/installer.scm:230 gnu/installer/newt/timezone.scm:58
+msgid "Timezone"
+msgstr ""
+
+#: gnu/installer.scm:247
+msgid "Keyboard mapping selection"
+msgstr ""
+
+#: gnu/installer.scm:256 gnu/installer/newt/hostname.scm:26
+msgid "Hostname"
+msgstr ""
+
+#: gnu/installer.scm:265
+msgid "Network selection"
+msgstr ""
+
+#: gnu/installer.scm:272 gnu/installer/newt/user.scm:68
+#: gnu/installer/newt/user.scm:205
+msgid "User creation"
+msgstr ""
+
+#: gnu/installer.scm:280
+msgid "Services"
+msgstr ""
+
+#: gnu/installer.scm:291
+msgid "Partitioning"
+msgstr ""
+
+#: gnu/installer.scm:298 gnu/installer/newt/final.scm:53
+#, fuzzy
+#| msgid "no configuration file specified~%"
+msgid "Configuration file"
+msgstr "neniu agorda dosiero estis indikata~%"
+
+#: gnu/installer/connman.scm:196
+msgid "Could not determine the state of connman."
+msgstr ""
+
+#: gnu/installer/connman.scm:322
+msgid "Unable to find expected regexp."
+msgstr ""
+
+#: gnu/installer/newt.scm:50
+msgid "Press <F1> for installation parameters."
+msgstr ""
+
+#: gnu/installer/newt.scm:63
+#, scheme-format
+msgid "The installer has encountered an unexpected problem. The backtrace is displayed below. Please report it by email to <~a>."
+msgstr ""
+
+#: gnu/installer/newt.scm:66
+msgid "Unexpected problem"
+msgstr ""
+
+#: gnu/installer/newt/ethernet.scm:66
+msgid "No ethernet service available, please try again."
+msgstr ""
+
+#: gnu/installer/newt/ethernet.scm:67
+msgid "No service"
+msgstr ""
+
+#: gnu/installer/newt/ethernet.scm:76
+msgid "Please select an ethernet network."
+msgstr ""
+
+#: gnu/installer/newt/ethernet.scm:77
+msgid "Ethernet connection"
+msgstr ""
+
+#: gnu/installer/newt/ethernet.scm:81 gnu/installer/newt/keymap.scm:56
+#: gnu/installer/newt/locale.scm:43 gnu/installer/newt/network.scm:63
+#: gnu/installer/newt/network.scm:84 gnu/installer/newt/page.scm:303
+#: gnu/installer/newt/page.scm:666 gnu/installer/newt/page.scm:751
+#: gnu/installer/newt/partition.scm:55 gnu/installer/newt/partition.scm:84
+#: gnu/installer/newt/partition.scm:116 gnu/installer/newt/partition.scm:127
+#: gnu/installer/newt/partition.scm:624 gnu/installer/newt/partition.scm:645
+#: gnu/installer/newt/partition.scm:691 gnu/installer/newt/partition.scm:742
+#: gnu/installer/newt/partition.scm:753 gnu/installer/newt/services.scm:85
+#: gnu/installer/newt/timezone.scm:63 gnu/installer/newt/user.scm:204
+#: gnu/installer/newt/wifi.scm:205
+msgid "Exit"
+msgstr ""
+
+#: gnu/installer/newt/final.scm:46
+#, scheme-format
+msgid "We're now ready to proceed with the installation! A system configuration file has been generated, it is displayed below.  This file will be available as '~a' on the installed system.  The new system will be created from this file once you've pressed OK.  This will take a few minutes."
+msgstr ""
+
+#: gnu/installer/newt/final.scm:70
+msgid "Installation complete"
+msgstr ""
+
+#: gnu/installer/newt/final.scm:71 gnu/installer/newt/welcome.scm:139
+msgid "Reboot"
+msgstr ""
+
+#: gnu/installer/newt/final.scm:72
+msgid "Congratulations!  Installation is now complete.  You may remove the device containing the installation image and press the button to reboot."
+msgstr ""
+
+#: gnu/installer/newt/final.scm:86
+msgid "Installation failed"
+msgstr ""
+
+#: gnu/installer/newt/final.scm:87
+msgid "Resume"
+msgstr ""
+
+#: gnu/installer/newt/final.scm:88
+msgid "Restart the installer"
+msgstr ""
+
+#: gnu/installer/newt/final.scm:89
+msgid "The final system installation step failed.  You can resume from a specific step, or restart the installer."
+msgstr ""
+
+#: gnu/installer/newt/parameters.scm:30
+msgid "Please enter the HTTP proxy URL. If you enter an empty string, proxy usage will be disabled."
+msgstr ""
+
+#: gnu/installer/newt/parameters.scm:32
+msgid "HTTP proxy configuration"
+msgstr ""
+
+#: gnu/installer/newt/parameters.scm:42
+msgid "Change keyboard layout"
+msgstr ""
+
+#: gnu/installer/newt/parameters.scm:43
+msgid "Configure HTTP proxy"
+msgstr ""
+
+#: gnu/installer/newt/parameters.scm:46
+msgid "Please choose one of the following parameters or press ‘Back’ to go back to the installation process."
+msgstr ""
+
+#: gnu/installer/newt/parameters.scm:48
+msgid "Installation parameters"
+msgstr ""
+
+#: gnu/installer/newt/parameters.scm:53 gnu/installer/newt/keymap.scm:74
+#: gnu/installer/newt/locale.scm:63 gnu/installer/newt/locale.scm:78
+#: gnu/installer/newt/locale.scm:94 gnu/installer/newt/partition.scm:581
+#: gnu/installer/newt/timezone.scm:64
+msgid "Back"
+msgstr ""
+
+#: gnu/installer/newt/hostname.scm:25
+msgid "Please enter the system hostname."
+msgstr ""
+
+#: gnu/installer/newt/keymap.scm:38
+msgid "Layout"
+msgstr ""
+
+#: gnu/installer/newt/keymap.scm:43
+msgid "Please choose your keyboard layout. It will only be used during the installation process. Non-Latin layouts can be toggled with Alt+Shift."
+msgstr ""
+
+#: gnu/installer/newt/keymap.scm:46
+msgid "Please choose your keyboard layout. It will be used during the install process, and for the installed system. Non-Latin layouts can be toggled with Alt+Shift. You can switch to a different layout at any time from the parameters menu."
+msgstr ""
+
+#: gnu/installer/newt/keymap.scm:55 gnu/installer/newt/network.scm:62
+#: gnu/installer/newt/page.scm:302
+msgid "Continue"
+msgstr ""
+
+#: gnu/installer/newt/keymap.scm:67
+msgid "Variant"
+msgstr ""
+
+#: gnu/installer/newt/keymap.scm:70
+msgid "Please choose a variant for your keyboard layout."
+msgstr ""
+
+#: gnu/installer/newt/locale.scm:36
+msgid "Locale language"
+msgstr ""
+
+#: gnu/installer/newt/locale.scm:37
+msgid "Choose the language to use for the installation process and for the installed system."
+msgstr ""
+
+#: gnu/installer/newt/locale.scm:57
+#, fuzzy
+#| msgid "<unknown location>"
+msgid "Locale location"
+msgstr "<nekonata loko>"
+
+#: gnu/installer/newt/locale.scm:60
+msgid "Choose a territory for this language."
+msgstr ""
+
+#: gnu/installer/newt/locale.scm:71
+msgid "Locale codeset"
+msgstr ""
+
+#: gnu/installer/newt/locale.scm:74
+msgid "Choose the locale encoding."
+msgstr ""
+
+#: gnu/installer/newt/locale.scm:86
+msgid "Locale modifier"
+msgstr ""
+
+#: gnu/installer/newt/locale.scm:89
+msgid "Choose your locale's modifier. The most frequent modifier is euro. It indicates that you want to use Euro as the currency symbol."
+msgstr ""
+
+#: gnu/installer/newt/locale.scm:190
+#, fuzzy
+#| msgid "<unknown location>"
+msgid "No location"
+msgstr "<nekonata loko>"
+
+#: gnu/installer/newt/locale.scm:217
+msgid "No modifier"
+msgstr ""
+
+#: gnu/installer/newt/menu.scm:35
+msgid "Choose where you want to resume the install.  You can also abort the installation by pressing the Abort button."
+msgstr ""
+
+#: gnu/installer/newt/menu.scm:37
+msgid "Installation menu"
+msgstr ""
+
+#: gnu/installer/newt/menu.scm:41
+msgid "Abort"
+msgstr ""
+
+#: gnu/installer/newt/network.scm:61 gnu/installer/newt/network.scm:80
+msgid "Internet access"
+msgstr ""
+
+#: gnu/installer/newt/network.scm:64
+msgid "The install process requires Internet access but no network devices were found. Do you want to continue anyway?"
+msgstr ""
+
+#: gnu/installer/newt/network.scm:78
+msgid "The install process requires Internet access. Please select a network device."
+msgstr ""
+
+#: gnu/installer/newt/network.scm:103
+msgid "Powering technology"
+msgstr ""
+
+#: gnu/installer/newt/network.scm:104
+#, scheme-format
+msgid "Waiting for technology ~a to be powered."
+msgstr ""
+
+#: gnu/installer/newt/network.scm:128
+msgid "Checking connectivity"
+msgstr ""
+
+#: gnu/installer/newt/network.scm:129
+msgid "Waiting for Internet access establishment..."
+msgstr ""
+
+#: gnu/installer/newt/network.scm:139
+msgid "The selected network does not provide access to the Internet, please try again."
+msgstr ""
+
+#: gnu/installer/newt/network.scm:141 gnu/installer/newt/wifi.scm:108
+msgid "Connection error"
+msgstr ""
+
+#: gnu/installer/newt/page.scm:192
+#, fuzzy, scheme-format
+#| msgid "Downloading, please wait...~%"
+msgid "Connecting to ~a, please wait."
+msgstr "Ni elŝutas, bonvolu atendi...~%"
+
+#: gnu/installer/newt/page.scm:193
+msgid "Connection in progress"
+msgstr ""
+
+#: gnu/installer/newt/page.scm:212 gnu/installer/newt/user.scm:60
+msgid "Show"
+msgstr ""
+
+#: gnu/installer/newt/page.scm:219 gnu/installer/newt/page.scm:665
+#: gnu/installer/newt/page.scm:750 gnu/installer/newt/partition.scm:444
+#: gnu/installer/newt/partition.scm:623 gnu/installer/newt/partition.scm:644
+#: gnu/installer/newt/partition.scm:683 gnu/installer/newt/user.scm:66
+#: gnu/installer/newt/user.scm:203
+msgid "OK"
+msgstr ""
+
+#: gnu/installer/newt/page.scm:245
+msgid "Please enter a non empty input."
+msgstr ""
+
+#: gnu/installer/newt/page.scm:246 gnu/installer/newt/user.scm:123
+msgid "Empty input"
+msgstr ""
+
+#: gnu/installer/newt/page.scm:753
+msgid "Edit"
+msgstr ""
+
+#: gnu/installer/newt/partition.scm:46
+msgid "Everything is one partition"
+msgstr ""
+
+#: gnu/installer/newt/partition.scm:47
+msgid "Separate /home partition"
+msgstr ""
+
+#: gnu/installer/newt/partition.scm:49
+msgid "Please select a partitioning scheme."
+msgstr ""
+
+#: gnu/installer/newt/partition.scm:50
+msgid "Partition scheme"
+msgstr ""
+
+#: gnu/installer/newt/partition.scm:62
+msgid "We are about to format your hard disk.  All its data will be lost.  Do you wish to continue?"
+msgstr ""
+
+#: gnu/installer/newt/partition.scm:64
+msgid "Format disk?"
+msgstr ""
+
+#: gnu/installer/newt/partition.scm:67
+msgid "Partition formatting is in progress, please wait."
+msgstr ""
+
+#: gnu/installer/newt/partition.scm:68
+msgid "Preparing partitions"
+msgstr ""
+
+#: gnu/installer/newt/partition.scm:79
+msgid "Please select a disk."
+msgstr ""
+
+#: gnu/installer/newt/partition.scm:80
+msgid "Disk"
+msgstr ""
+
+#: gnu/installer/newt/partition.scm:92
+msgid "Select a new partition table type. Be careful, all data on the disk will be lost."
+msgstr ""
+
+#: gnu/installer/newt/partition.scm:94
+msgid "Partition table"
+msgstr ""
+
+#: gnu/installer/newt/partition.scm:111
+msgid "Please select a partition type."
+msgstr ""
+
+#: gnu/installer/newt/partition.scm:112
+msgid "Partition type"
+msgstr ""
+
+#: gnu/installer/newt/partition.scm:122
+msgid "Please select the file-system type for this partition."
+msgstr ""
+
+#: gnu/installer/newt/partition.scm:123
+msgid "File-system type"
+msgstr ""
+
+#: gnu/installer/newt/partition.scm:136
+msgid "Primary partitions count exceeded."
+msgstr ""
+
+#: gnu/installer/newt/partition.scm:137 gnu/installer/newt/partition.scm:142
+#: gnu/installer/newt/partition.scm:147
+msgid "Creation error"
+msgstr ""
+
+#: gnu/installer/newt/partition.scm:141
+msgid "Extended partition creation error."
+msgstr ""
+
+#: gnu/installer/newt/partition.scm:146
+msgid "Logical partition creation error."
+msgstr ""
+
+#: gnu/installer/newt/partition.scm:160
+#, scheme-format
+msgid "Please enter the password for the encryption of partition ~a (label: ~a)."
+msgstr ""
+
+#: gnu/installer/newt/partition.scm:162 gnu/installer/newt/wifi.scm:92
+msgid "Password required"
+msgstr ""
+
+#: gnu/installer/newt/partition.scm:167
+#, scheme-format
+msgid "Please confirm the password for the encryption of partition ~a (label: ~a)."
+msgstr ""
+
+#: gnu/installer/newt/partition.scm:169 gnu/installer/newt/user.scm:160
+msgid "Password confirmation required"
+msgstr ""
+
+#: gnu/installer/newt/partition.scm:181 gnu/installer/newt/user.scm:168
+msgid "Password mismatch, please try again."
+msgstr ""
+
+#: gnu/installer/newt/partition.scm:182 gnu/installer/newt/user.scm:169
+msgid "Password error"
+msgstr ""
+
+#: gnu/installer/newt/partition.scm:268
+msgid "Please enter the partition gpt name."
+msgstr ""
+
+#: gnu/installer/newt/partition.scm:269
+msgid "Partition name"
+msgstr ""
+
+#: gnu/installer/newt/partition.scm:299
+msgid "Please enter the encrypted label"
+msgstr ""
+
+#: gnu/installer/newt/partition.scm:300
+msgid "Encryption label"
+msgstr ""
+
+#: gnu/installer/newt/partition.scm:317
+#, scheme-format
+msgid "Please enter the size of the partition. The maximum size is ~a."
+msgstr ""
+
+#: gnu/installer/newt/partition.scm:319
+msgid "Partition size"
+msgstr ""
+
+#: gnu/installer/newt/partition.scm:337
+msgid "The percentage can not be superior to 100."
+msgstr ""
+
+#: gnu/installer/newt/partition.scm:338 gnu/installer/newt/partition.scm:343
+#: gnu/installer/newt/partition.scm:348
+msgid "Size error"
+msgstr ""
+
+#: gnu/installer/newt/partition.scm:342
+msgid "The requested size is incorrectly formatted, or too large."
+msgstr ""
+
+#: gnu/installer/newt/partition.scm:347
+msgid "The request size is superior to the maximum size."
+msgstr ""
+
+#: gnu/installer/newt/partition.scm:367
+msgid "Please enter the desired mounting point for this partition. Leave this field empty if you don't want to set a mounting point."
+msgstr ""
+
+#: gnu/installer/newt/partition.scm:369
+msgid "Mounting point"
+msgstr ""
+
+#: gnu/installer/newt/partition.scm:433
+#, scheme-format
+msgid "Creating ~a partition starting at ~a of ~a."
+msgstr ""
+
+#: gnu/installer/newt/partition.scm:435
+#, scheme-format
+msgid "You are currently editing partition ~a."
+msgstr ""
+
+#: gnu/installer/newt/partition.scm:438
+msgid "Partition creation"
+msgstr ""
+
+#: gnu/installer/newt/partition.scm:439
+msgid "Partition edit"
+msgstr ""
+
+#: gnu/installer/newt/partition.scm:620
+#, scheme-format
+msgid "Are you sure you want to delete everything on disk ~a?"
+msgstr ""
+
+#: gnu/installer/newt/partition.scm:622
+msgid "Delete disk"
+msgstr ""
+
+#: gnu/installer/newt/partition.scm:636
+msgid "You cannot delete a free space area."
+msgstr ""
+
+#: gnu/installer/newt/partition.scm:637 gnu/installer/newt/partition.scm:643
+msgid "Delete partition"
+msgstr ""
+
+#: gnu/installer/newt/partition.scm:641
+#, scheme-format
+msgid "Are you sure you want to delete partition ~a?"
+msgstr ""
+
+#: gnu/installer/newt/partition.scm:658
+msgid ""
+"You can change a disk's partition table by selecting it and pressing ENTER. You can also edit a partition by selecting it and pressing ENTER, or remove it by pressing DELETE. To create a new partition, select a free space area and press ENTER.\n"
+"\n"
+"At least one partition must have its mounting point set to '/'."
+msgstr ""
+
+#: gnu/installer/newt/partition.scm:664
+#, scheme-format
+msgid "This is the proposed partitioning. It is still possible to edit it or to go back to install menu by pressing the Exit button.~%~%"
+msgstr ""
+
+#: gnu/installer/newt/partition.scm:674
+msgid "Guided partitioning"
+msgstr ""
+
+#: gnu/installer/newt/partition.scm:675
+msgid "Manual partitioning"
+msgstr ""
+
+#: gnu/installer/newt/partition.scm:700
+msgid "No root mount point found."
+msgstr ""
+
+#: gnu/installer/newt/partition.scm:701
+msgid "Missing mount point"
+msgstr ""
+
+#: gnu/installer/newt/partition.scm:732
+msgid "Guided - using the entire disk"
+msgstr ""
+
+#: gnu/installer/newt/partition.scm:733
+msgid "Guided - using the entire disk with encryption"
+msgstr ""
+
+#: gnu/installer/newt/partition.scm:734
+msgid "Manual"
+msgstr ""
+
+#: gnu/installer/newt/partition.scm:736
+msgid "Please select a partitioning method."
+msgstr ""
+
+#: gnu/installer/newt/partition.scm:737
+msgid "Partitioning method"
+msgstr ""
+
+#: gnu/installer/newt/services.scm:36
+msgid "Please select the desktop(s) environment(s) you wish to install. If you select multiple desktops environments, you will be able to choose the one to use on the log-in screen."
+msgstr ""
+
+#: gnu/installer/newt/services.scm:39
+msgid "Desktop environment"
+msgstr ""
+
+#: gnu/installer/newt/services.scm:56
+msgid "You can now select networking services to run on your system."
+msgstr ""
+
+#: gnu/installer/newt/services.scm:58
+msgid "Network service"
+msgstr ""
+
+#: gnu/installer/newt/services.scm:71
+msgid "Network management"
+msgstr ""
+
+#: gnu/installer/newt/services.scm:74
+msgid ""
+"Choose the method to manage network connections.\n"
+"\n"
+"We recommend NetworkManager or Connman for a WiFi-capable laptop; the DHCP client may be enough for a server."
+msgstr ""
+
+#: gnu/installer/newt/timezone.scm:59
+msgid "Please select a timezone."
+msgstr ""
+
+#: gnu/installer/newt/user.scm:45
+msgid "Name"
+msgstr ""
+
+#: gnu/installer/newt/user.scm:47
+msgid "Real name"
+msgstr ""
+
+#: gnu/installer/newt/user.scm:49
+msgid "Home directory"
+msgstr ""
+
+#: gnu/installer/newt/user.scm:51
+msgid "Password"
+msgstr ""
+
+#: gnu/installer/newt/user.scm:122
+msgid "Empty inputs are not allowed."
+msgstr ""
+
+#: gnu/installer/newt/user.scm:159
+msgid "Please confirm the password."
+msgstr ""
+
+#. TRANSLATORS: Leave "root" untranslated: it refers to the name of the
+#. system administrator account.
+#: gnu/installer/newt/user.scm:176
+msgid "Please choose a password for the system administrator (\"root\")."
+msgstr ""
+
+#: gnu/installer/newt/user.scm:178
+msgid "System administrator password"
+msgstr ""
+
+#: gnu/installer/newt/user.scm:191
+msgid "Please add at least one user to system using the 'Add' button."
+msgstr ""
+
+#: gnu/installer/newt/user.scm:194
+msgid "Add"
+msgstr ""
+
+#: gnu/installer/newt/user.scm:195
+msgid "Delete"
+msgstr ""
+
+#: gnu/installer/newt/user.scm:255
+msgid "Please create at least one user."
+msgstr ""
+
+#: gnu/installer/newt/user.scm:256
+msgid "No user"
+msgstr ""
+
+#: gnu/installer/newt/welcome.scm:119
+msgid "GNU Guix install"
+msgstr ""
+
+#: gnu/installer/newt/welcome.scm:120
+msgid ""
+"Welcome to GNU Guix system installer!\n"
+"\n"
+"You will be guided through a graphical installation program.\n"
+"\n"
+"If you are familiar with GNU/Linux and you want tight control over the installation process, you can instead choose manual installation.  Documentation is accessible at any time by pressing Ctrl-Alt-F2."
+msgstr ""
+
+#: gnu/installer/newt/welcome.scm:129
+msgid "Graphical install using a terminal based interface"
+msgstr ""
+
+#: gnu/installer/newt/welcome.scm:132
+msgid "Install using the shell based process"
+msgstr ""
+
+#: gnu/installer/newt/wifi.scm:82
+msgid "Unable to find a wifi technology"
+msgstr ""
+
+#: gnu/installer/newt/wifi.scm:86
+msgid "Scanning wifi for available networks, please wait."
+msgstr ""
+
+#: gnu/installer/newt/wifi.scm:87
+msgid "Scan in progress"
+msgstr ""
+
+#: gnu/installer/newt/wifi.scm:91
+msgid "Please enter the wifi password."
+msgstr ""
+
+#: gnu/installer/newt/wifi.scm:98
+#, scheme-format
+msgid "The password you entered for ~a is incorrect."
+msgstr ""
+
+#: gnu/installer/newt/wifi.scm:100
+msgid "Wrong password"
+msgstr ""
+
+#: gnu/installer/newt/wifi.scm:106
+#, scheme-format
+msgid "An error occurred while trying to connect to ~a, please retry."
+msgstr ""
+
+#: gnu/installer/newt/wifi.scm:200
+msgid "Please select a wifi network."
+msgstr ""
+
+#: gnu/installer/newt/wifi.scm:206
+msgid "Scan"
+msgstr ""
+
+#: gnu/installer/newt/wifi.scm:211
+msgid "No wifi detected"
+msgstr ""
+
+#: gnu/installer/newt/wifi.scm:226
+msgid "Wifi"
+msgstr ""
+
+#: gnu/installer/parted.scm:403 gnu/installer/parted.scm:440
+msgid "Free space"
+msgstr ""
+
+#: gnu/installer/parted.scm:1370
+#, scheme-format
+msgid "Device ~a is still in use."
+msgstr ""
+
+#: gnu/installer/services.scm:88
+msgid "OpenSSH secure shell daemon (sshd)"
+msgstr ""
+
+#: gnu/installer/services.scm:92
+msgid "Tor anonymous network router"
+msgstr ""
+
+#: gnu/installer/services.scm:96
+msgid "Mozilla NSS certificates, for HTTPS access"
+msgstr ""
+
+#: gnu/installer/services.scm:103
+msgid "NetworkManager network connection manager"
+msgstr ""
+
+#: gnu/installer/services.scm:108
+msgid "Connman network connection manager"
+msgstr ""
+
+#: gnu/installer/services.scm:113
+msgid "DHCP client (dynamic IP address assignment)"
+msgstr ""
+
+#: gnu/installer/timezone.scm:110
+#, fuzzy, scheme-format
+#| msgid "failed to create derivation: ~a"
+msgid "Unable to locate path: ~a."
+msgstr "fiasko dum kreo de derivaĵo: ~a"
+
+#: gnu/installer/utils.scm:77
+#, scheme-format
+msgid "Press Enter to continue.~%"
+msgstr ""
+
+#: gnu/installer/utils.scm:102
+#, scheme-format
+msgid "Command failed with exit code ~a.~%"
+msgstr ""
+
+#: gnu/machine/ssh.scm:113
+#, scheme-format
+msgid "<machine-ssh-configuration> without a 'host-key' is deprecated~%"
+msgstr ""
+
+#: gnu/machine/ssh.scm:188
+#, fuzzy, scheme-format
+#| msgid "URI ~a domain not found: ~a"
+msgid "device '~a' not found: ~a"
+msgstr "URI ~a domajno ne trovita: ~a"
+
+#: gnu/machine/ssh.scm:203
+#, scheme-format
+msgid "no file system with label '~a'"
+msgstr ""
+
+#: gnu/machine/ssh.scm:222
+#, scheme-format
+msgid "no file system with UUID '~a'"
+msgstr ""
+
+#: gnu/machine/ssh.scm:274
+#, scheme-format
+msgid "missing modules for ~a:~{ ~a~}~%"
+msgstr ""
+
+#: gnu/machine/ssh.scm:309
+#, scheme-format
+msgid "incorrect target system ('~a' was given, while the system reports that it is '~a')~%"
+msgstr ""
+
+#: gnu/machine/ssh.scm:425
+#, scheme-format
+msgid "no signing key '~a'. have you run 'guix archive --generate-key?'"
+msgstr ""
+
+#: gnu/machine/ssh.scm:476
+msgid "could not roll-back machine"
+msgstr ""
+
+#: gnu/machine/ssh.scm:508
+msgid ""
+"Provisioning for machines that are accessible over SSH\n"
+"and have a known host-name. This entails little more than maintaining an SSH\n"
+"connection to the host."
+msgstr ""
+
+#: gnu/machine/ssh.scm:518
+#, scheme-format
+msgid ""
+"unsupported machine configuration '~a'\n"
+"for environment of type '~a'"
+msgstr ""
+
+#: gnu/packages/bootstrap.scm:152
+#, scheme-format
+msgid "could not find bootstrap binary '~a' for system '~a'"
+msgstr "ne eblis trovi ekŝargilan ciferec-dosieron '~a' por la sistemo '~a'"
+
+#: gnu/packages/bootstrap.scm:459
+msgid "Raw build system with direct store access"
+msgstr ""
+
+#: gnu/packages/bootstrap.scm:467
+msgid "Pre-built Guile for bootstrapping purposes."
+msgstr ""
+
+#: guix/build/utils.scm:715
+#, scheme-format
+msgid "'~a~{ ~a~}' exited with status ~a; output follows:~%~%~{  ~a~%~}"
+msgstr ""
+
+#: guix/scripts.scm:85
+msgid "main commands"
+msgstr ""
+
+#: guix/scripts.scm:86
+msgid "software development commands"
+msgstr ""
+
+#: guix/scripts.scm:87
+msgid "packaging commands"
+msgstr ""
+
+#: guix/scripts.scm:88
+msgid "plumbing commands"
+msgstr ""
+
+#: guix/scripts.scm:89
+msgid "internal commands"
+msgstr ""
+
+#: guix/scripts.scm:122
+#, scheme-format
+msgid "invalid argument: ~a~%"
+msgstr "malvalida argumento: ~a~%"
+
+#: guix/scripts.scm:150 guix/scripts/download.scm:167
+#: guix/scripts/search.scm:71 guix/scripts/show.scm:71
+#: guix/scripts/import/cran.scm:84 guix/scripts/import/elpa.scm:84
+#: guix/scripts/publish.scm:1023 guix/scripts/edit.scm:89
+#: guix/scripts/describe.scm:311 guix/scripts/processes.scm:232
+#, scheme-format
+msgid "~A: unrecognized option~%"
+msgstr "~A: nerekonata modifilo~%"
+
+#: guix/scripts.scm:233
+#, scheme-format
+msgid "Your Guix installation is ~a day old.\n"
+msgid_plural "Your Guix installation is ~a days old.\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: guix/scripts.scm:239
+#, scheme-format
+msgid ""
+"Consider running 'guix pull' followed by\n"
+"'~a' to get up-to-date packages and security updates.\n"
+msgstr ""
+
+#: guix/scripts.scm:303
+#, scheme-format
+msgid "only ~,1f GiB of free space available on ~a~%"
+msgstr ""
+
+#: guix/scripts.scm:305
+msgid ""
+"Consider deleting old profile\n"
+"generations and collecting garbage, along these lines:\n"
+"\n"
+"@example\n"
+"guix gc --delete-generations=1m\n"
+"@end example\n"
+msgstr ""
+
+#: guix/scripts/build.scm:93
+#, fuzzy, scheme-format
+#| msgid "no build log for '~a'~%"
+msgid "cannot access build log at '~a':~%"
+msgstr "neniu konstruita protokolo por '~a'~%"
+
+#: guix/scripts/build.scm:147
 #, scheme-format
 msgid "failed to create GC root `~a': ~a~%"
 msgstr "fiasko dum kreo de radiko GC '~a': ~a~%"
 
-#: guix/scripts/build.scm:102
+#: guix/scripts/build.scm:252 guix/scripts/build.scm:317
+#, fuzzy, scheme-format
+#| msgid "ambiguous package specification `~a'~%"
+msgid "invalid replacement specification: ~s~%"
+msgstr "plursenca pak-specifigo '~a'~%"
+
+#: guix/scripts/build.scm:299
+#, scheme-format
+msgid "the source of ~a is not a Git reference~%"
+msgstr ""
+
+#: guix/scripts/build.scm:387
+#, scheme-format
+msgid "~a: invalid Git URL replacement specification~%"
+msgstr ""
+
+#: guix/scripts/build.scm:462
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "      --with-source=SOURCE\n"
+#| "                         use SOURCE when building the corresponding package"
+msgid ""
+"\n"
+"      --with-source=[PACKAGE=]SOURCE\n"
+"                         use SOURCE when building the corresponding package"
+msgstr ""
+"\n"
+"      --with-source=FONTO\n"
+"                         uzi FONTOn dum konstruo de la koresponda pako"
+
+#: guix/scripts/build.scm:465
+msgid ""
+"\n"
+"      --with-input=PACKAGE=REPLACEMENT\n"
+"                         replace dependency PACKAGE by REPLACEMENT"
+msgstr ""
+
+#: guix/scripts/build.scm:468
+msgid ""
+"\n"
+"      --with-graft=PACKAGE=REPLACEMENT\n"
+"                         graft REPLACEMENT on packages that refer to PACKAGE"
+msgstr ""
+
+#: guix/scripts/build.scm:471
+msgid ""
+"\n"
+"      --with-branch=PACKAGE=BRANCH\n"
+"                         build PACKAGE from the latest commit of BRANCH"
+msgstr ""
+
+#: guix/scripts/build.scm:474
+msgid ""
+"\n"
+"      --with-commit=PACKAGE=COMMIT\n"
+"                         build PACKAGE from COMMIT"
+msgstr ""
+
+#: guix/scripts/build.scm:477
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "      --with-source=SOURCE\n"
+#| "                         use SOURCE when building the corresponding package"
+msgid ""
+"\n"
+"      --with-git-url=PACKAGE=URL\n"
+"                         build PACKAGE from the repository at URL"
+msgstr ""
+"\n"
+"      --with-source=FONTO\n"
+"                         uzi FONTOn dum konstruo de la koresponda pako"
+
+#: guix/scripts/build.scm:480
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "      --with-source=SOURCE\n"
+#| "                         use SOURCE when building the corresponding package"
+msgid ""
+"\n"
+"      --without-tests=PACKAGE\n"
+"                         build PACKAGE without running its tests"
+msgstr ""
+"\n"
+"      --with-source=FONTO\n"
+"                         uzi FONTOn dum konstruo de la koresponda pako"
+
+#: guix/scripts/build.scm:524
+#, scheme-format
+msgid "transformation '~a' had no effect on ~a~%"
+msgstr ""
+
+#: guix/scripts/build.scm:566 guix/scripts/search.scm:41
+#: guix/scripts/show.scm:41 guix/scripts/lint.scm:101 guix/scripts/edit.scm:48
+#: guix/scripts/size.scm:246 guix/scripts/graph.scm:546
 msgid ""
 "\n"
 "  -L, --load-path=DIR    prepend DIR to the package module search path"
@@ -86,7 +1289,7 @@ msgstr ""
 "\n"
 "  -L, --load-path=UJO    antaŭmedi UJOn al la modula serĉvojo de la pako"
 
-#: guix/scripts/build.scm:104
+#: guix/scripts/build.scm:568
 msgid ""
 "\n"
 "  -K, --keep-failed      keep build tree of failed builds"
@@ -94,7 +1297,19 @@ msgstr ""
 "\n"
 "  -K, --keep-failed      teni konstru-arbon el fiaskintaj konstruoj"
 
-#: guix/scripts/build.scm:106
+#: guix/scripts/build.scm:570
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "  -n, --dry-run          do not build the derivations"
+msgid ""
+"\n"
+"  -k, --keep-going       keep going when some of the derivations fail"
+msgstr ""
+"\n"
+"  -n, --dry-run          ne konstrui derivaĵojn"
+
+#: guix/scripts/build.scm:572
 msgid ""
 "\n"
 "  -n, --dry-run          do not build the derivations"
@@ -102,7 +1317,7 @@ msgstr ""
 "\n"
 "  -n, --dry-run          ne konstrui derivaĵojn"
 
-#: guix/scripts/build.scm:108
+#: guix/scripts/build.scm:574
 msgid ""
 "\n"
 "      --fallback         fall back to building when the substituter fails"
@@ -110,7 +1325,7 @@ msgstr ""
 "\n"
 "      --fallback         retropaŝi al konstruado kiam la anstataŭiganto fiaskas"
 
-#: guix/scripts/build.scm:110
+#: guix/scripts/build.scm:576
 msgid ""
 "\n"
 "      --no-substitutes   build instead of resorting to pre-built substitutes"
@@ -118,15 +1333,34 @@ msgstr ""
 "\n"
 "      --no-substitutes   konstrui anstataŭ uzi jam-konstruitajn anstataŭigantojn"
 
-#: guix/scripts/build.scm:112
+#: guix/scripts/build.scm:578 guix/scripts/size.scm:235
 msgid ""
 "\n"
-"      --no-build-hook    do not attempt to offload builds via the build hook"
+"      --substitute-urls=URLS\n"
+"                         fetch substitute from URLS if they are authorized"
+msgstr ""
+
+#: guix/scripts/build.scm:581
+msgid ""
+"\n"
+"      --no-grafts        do not graft packages"
+msgstr ""
+"\n"
+"      --no-grafts        ne kunmetu pakojn"
+
+#: guix/scripts/build.scm:583
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "      --no-build-hook    do not attempt to offload builds via the build hook"
+msgid ""
+"\n"
+"      --no-offload       do not attempt to offload builds"
 msgstr ""
 "\n"
 "      --no-build-hook    ne provi disŝarĝi konstruojn per la konstru-hoko"
 
-#: guix/scripts/build.scm:114
+#: guix/scripts/build.scm:585
 msgid ""
 "\n"
 "      --max-silent-time=SECONDS\n"
@@ -136,7 +1370,7 @@ msgstr ""
 "      --max-silent-time=SEKUNDOJ\n"
 "                         marki la konstruon kiel fiaskintan post SEKUNDOJ da silento"
 
-#: guix/scripts/build.scm:117
+#: guix/scripts/build.scm:588
 msgid ""
 "\n"
 "      --timeout=SECONDS  mark the build as failed after SECONDS of activity"
@@ -144,15 +1378,13 @@ msgstr ""
 "\n"
 "      --timeout=SEKUNDOJ marki la konstruon kiel fiaskintan post SEKUNDOJ da aktivado"
 
-#: guix/scripts/build.scm:119
+#: guix/scripts/build.scm:590
 msgid ""
 "\n"
-"      --verbosity=LEVEL  use the given verbosity LEVEL"
+"      --rounds=N         build N times in a row to detect non-determinism"
 msgstr ""
-"\n"
-"      --verbosity=NIVELO uzi la indikitan detaligan NIVELOn"
 
-#: guix/scripts/build.scm:121
+#: guix/scripts/build.scm:592
 msgid ""
 "\n"
 "  -c, --cores=N          allow the use of up to N CPU cores for the build"
@@ -160,7 +1392,7 @@ msgstr ""
 "\n"
 "  -c, --cores=N          permesigi uzon de ĝis N CPU-nukleojn por la konstruo"
 
-#: guix/scripts/build.scm:123
+#: guix/scripts/build.scm:594
 msgid ""
 "\n"
 "  -M, --max-jobs=N       allow at most N build jobs"
@@ -168,12 +1400,33 @@ msgstr ""
 "\n"
 "  -M, --max-jobs=N       permesi maksimume N konstru-taskojn"
 
-#: guix/scripts/build.scm:198 guix/scripts/build.scm:205
+#: guix/scripts/build.scm:596
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "      --verbose          produce verbose output"
+msgid ""
+"\n"
+"      --debug=LEVEL      produce debugging output at LEVEL"
+msgstr ""
+"\n"
+"      --verbose          produkti detalplenan eligon"
+
+#: guix/scripts/build.scm:613
+msgid "'--keep-failed' ignored since you are talking to a remote daemon\n"
+msgstr ""
+
+#: guix/scripts/build.scm:694
+#, scheme-format
+msgid "'--no-build-hook' is deprecated; use '--no-offload' instead~%"
+msgstr ""
+
+#: guix/scripts/build.scm:724 guix/scripts/build.scm:731
 #, scheme-format
 msgid "not a number: '~a' option argument: ~a~%"
 msgstr "ne estas numero: '~a' modifil-argumento: ~a~%"
 
-#: guix/scripts/build.scm:224
+#: guix/scripts/build.scm:752
 msgid ""
 "Usage: guix build [OPTION]... PACKAGE-OR-DERIVATION...\n"
 "Build the given PACKAGE-OR-DERIVATION and return their output paths.\n"
@@ -181,7 +1434,7 @@ msgstr ""
 "Uzado: guix build [MODIFILO]... PAKO-AŬ-DERIVAĴO...\n"
 "Konstrui la indikitan PAKO-AŬ-DERIVAĴOn kaj montri iliajn eligajn vojojn.\n"
 
-#: guix/scripts/build.scm:226
+#: guix/scripts/build.scm:754
 msgid ""
 "\n"
 "  -e, --expression=EXPR  build the package or derivation EXPR evaluates to"
@@ -189,7 +1442,27 @@ msgstr ""
 "\n"
 "  -e, --expression=ESPR  konstrui la pakon aŭ derivaĵon kiu rezultas de ESPR"
 
-#: guix/scripts/build.scm:228
+#: guix/scripts/build.scm:756
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "  -e, --expression=EXPR  build the package or derivation EXPR evaluates to"
+msgid ""
+"\n"
+"  -f, --file=FILE        build the package or derivation that the code within\n"
+"                         FILE evaluates to"
+msgstr ""
+"\n"
+"  -e, --expression=ESPR  konstrui la pakon aŭ derivaĵon kiu rezultas de ESPR"
+
+#: guix/scripts/build.scm:759
+msgid ""
+"\n"
+"  -m, --manifest=FILE    build the packages that the manifest given in FILE\n"
+"                         evaluates to"
+msgstr ""
+
+#: guix/scripts/build.scm:762
 msgid ""
 "\n"
 "  -S, --source           build the packages' source derivations"
@@ -197,7 +1470,7 @@ msgstr ""
 "\n"
 "  -S, --source           konstrui la font-derivaĵojn de la pakoj"
 
-#: guix/scripts/build.scm:230
+#: guix/scripts/build.scm:764
 msgid ""
 "\n"
 "      --sources[=TYPE]   build source derivations; TYPE may optionally be one\n"
@@ -207,7 +1480,8 @@ msgstr ""
 "      --sources[=TIPO]   konstrui fontajn derivaĵojn; TIPO povas laŭelekte esti\n"
 "                         unu el \"package\", \"all\" (aprioras), aŭ \"transitive\""
 
-#: guix/scripts/build.scm:233
+#: guix/scripts/build.scm:767 guix/scripts/pull.scm:120
+#: guix/scripts/pack.scm:1056
 msgid ""
 "\n"
 "  -s, --system=SYSTEM    attempt to build for SYSTEM--e.g., \"i686-linux\""
@@ -215,7 +1489,8 @@ msgstr ""
 "\n"
 "  -s, --system=SISTEMO   provi konstrui por SISTEMO--ekz., \"i686-linux\""
 
-#: guix/scripts/build.scm:235
+#: guix/scripts/build.scm:769 guix/scripts/system.scm:992
+#: guix/scripts/pack.scm:1058
 msgid ""
 "\n"
 "      --target=TRIPLET   cross-build for TRIPLET--e.g., \"armel-linux-gnu\""
@@ -223,33 +1498,27 @@ msgstr ""
 "\n"
 "      --target=TRIOPO    cruc-konstrui por TRIOPO--ekz., \"armel-linux-gnu\""
 
-#: guix/scripts/build.scm:237
+#: guix/scripts/build.scm:771
 msgid ""
 "\n"
-"      --with-source=SOURCE\n"
-"                         use SOURCE when building the corresponding package"
+"  -d, --derivations      return the derivation paths of the given packages"
 msgstr ""
 "\n"
-"      --with-source=FONTO\n"
-"                         uzi FONTOn dum konstruo de la koresponda pako"
+"  -d, --derivations      liveri la derivaĵajn vojojn de la indikitaj pakoj"
 
-#: guix/scripts/build.scm:240
+#: guix/scripts/build.scm:773
 msgid ""
 "\n"
-"      --no-grafts        do not graft packages"
+"      --check            rebuild items to check for non-determinism issues"
 msgstr ""
-"\n"
-"      --no-grafts        ne kunmetu pakojn"
 
-#: guix/scripts/build.scm:242
+#: guix/scripts/build.scm:775
 msgid ""
 "\n"
-"  -d, --derivations      return the derivation paths of the given packages"
+"      --repair           repair the specified items"
 msgstr ""
-"\n"
-"  -d, --derivations      liveri la derivaĵajn vojojn de la indikitaj pakoj"
 
-#: guix/scripts/build.scm:244
+#: guix/scripts/build.scm:777 guix/scripts/pack.scm:1076
 msgid ""
 "\n"
 "  -r, --root=FILE        make FILE a symlink to the result, and register it\n"
@@ -259,7 +1528,35 @@ msgstr ""
 "  -r, --root=DOSIERO     igi DOSIEROn simbola ligo al la rezulto, kaj registri\n"
 "                         ĝin kiel radikon de rubaĵ-kolektanto"
 
-#: guix/scripts/build.scm:247
+#: guix/scripts/build.scm:780 guix/scripts/package.scm:384
+#: guix/scripts/install.scm:36 guix/scripts/remove.scm:36
+#: guix/scripts/upgrade.scm:37 guix/scripts/pull.scm:118
+#: guix/scripts/system.scm:994 guix/scripts/copy.scm:115
+#: guix/scripts/pack.scm:1081 guix/scripts/deploy.scm:58
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "      --verbosity=LEVEL  use the given verbosity LEVEL"
+msgid ""
+"\n"
+"  -v, --verbosity=LEVEL  use the given verbosity LEVEL"
+msgstr ""
+"\n"
+"      --verbosity=NIVELO uzi la indikitan detaligan NIVELOn"
+
+#: guix/scripts/build.scm:782
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "  -n, --dry-run          do not build the derivations"
+msgid ""
+"\n"
+"  -q, --quiet            do not show the build log"
+msgstr ""
+"\n"
+"  -n, --dry-run          ne konstrui derivaĵojn"
+
+#: guix/scripts/build.scm:784
 msgid ""
 "\n"
 "      --log-file         return the log file names for the given derivations"
@@ -267,12 +1564,21 @@ msgstr ""
 "\n"
 "      --log-file         liveri la protokol-dosierajn nomojn por la indikitaj derivaĵoj"
 
-#: guix/scripts/build.scm:252 guix/scripts/download.scm:53
-#: guix/scripts/package.scm:464 guix/scripts/gc.scm:58
-#: guix/scripts/hash.scm:55 guix/scripts/import.scm:90
-#: guix/scripts/pull.scm:81 guix/scripts/substitute.scm:682
-#: guix/scripts/system.scm:400 guix/scripts/lint.scm:534
-#: guix/scripts/publish.scm:56
+#: guix/scripts/build.scm:791 guix/scripts/download.scm:103
+#: guix/scripts/package.scm:402 guix/scripts/install.scm:43
+#: guix/scripts/remove.scm:41 guix/scripts/upgrade.scm:44
+#: guix/scripts/search.scm:36 guix/scripts/show.scm:36 guix/scripts/gc.scm:88
+#: guix/scripts/git.scm:34 guix/scripts/git/authenticate.scm:110
+#: guix/scripts/hash.scm:65 guix/scripts/import.scm:95
+#: guix/scripts/import/cran.scm:47 guix/scripts/pull.scm:126
+#: guix/scripts/substitute.scm:857 guix/scripts/system.scm:997
+#: guix/scripts/lint.scm:104 guix/scripts/publish.scm:97
+#: guix/scripts/edit.scm:51 guix/scripts/size.scm:249
+#: guix/scripts/graph.scm:551 guix/scripts/challenge.scm:423
+#: guix/scripts/copy.scm:120 guix/scripts/pack.scm:1086
+#: guix/scripts/weather.scm:293 guix/scripts/describe.scm:95
+#: guix/scripts/processes.scm:214 guix/scripts/deploy.scm:53
+#: guix/scripts/container.scm:35 guix/scripts/container/exec.scm:43
 msgid ""
 "\n"
 "  -h, --help             display this help and exit"
@@ -280,12 +1586,21 @@ msgstr ""
 "\n"
 "  -h, --help             montri ĉi tiun helpon kaj eliri"
 
-#: guix/scripts/build.scm:254 guix/scripts/download.scm:55
-#: guix/scripts/package.scm:466 guix/scripts/gc.scm:60
-#: guix/scripts/hash.scm:57 guix/scripts/import.scm:92
-#: guix/scripts/pull.scm:83 guix/scripts/substitute.scm:684
-#: guix/scripts/system.scm:402 guix/scripts/lint.scm:538
-#: guix/scripts/publish.scm:58
+#: guix/scripts/build.scm:793 guix/scripts/download.scm:105
+#: guix/scripts/package.scm:404 guix/scripts/install.scm:45
+#: guix/scripts/remove.scm:43 guix/scripts/upgrade.scm:46
+#: guix/scripts/search.scm:38 guix/scripts/show.scm:38 guix/scripts/gc.scm:90
+#: guix/scripts/git.scm:36 guix/scripts/git/authenticate.scm:112
+#: guix/scripts/hash.scm:67 guix/scripts/import.scm:97
+#: guix/scripts/import/cran.scm:51 guix/scripts/pull.scm:128
+#: guix/scripts/substitute.scm:859 guix/scripts/system.scm:999
+#: guix/scripts/lint.scm:108 guix/scripts/publish.scm:99
+#: guix/scripts/edit.scm:53 guix/scripts/size.scm:251
+#: guix/scripts/graph.scm:553 guix/scripts/challenge.scm:425
+#: guix/scripts/copy.scm:122 guix/scripts/pack.scm:1088
+#: guix/scripts/weather.scm:295 guix/scripts/describe.scm:97
+#: guix/scripts/processes.scm:216 guix/scripts/deploy.scm:55
+#: guix/scripts/container.scm:37 guix/scripts/container/exec.scm:45
 msgid ""
 "\n"
 "  -V, --version          display version information and exit"
@@ -293,7 +1608,7 @@ msgstr ""
 "\n"
 "  -V, --version          montri informon pri versio kaj eliri"
 
-#: guix/scripts/build.scm:281
+#: guix/scripts/build.scm:820
 #, scheme-format
 msgid ""
 "invalid argument: '~a' option argument: ~a, ~\n"
@@ -302,33 +1617,451 @@ msgstr ""
 "malvalida argumento: '~a' modifila argumento: ~a, ~\n"
 "devas esti unu el 'package', 'all', aŭ 'transitive'~%"
 
-#: guix/scripts/build.scm:404
+#: guix/scripts/build.scm:882
 #, scheme-format
-msgid "sources do not match any package:~{ ~a~}~%"
-msgstr "fontoj ne kongruas al iu ajn pako:~{ ~a~}~%"
+msgid "~s: not something we can build~%"
+msgstr ""
 
-#: guix/scripts/build.scm:453
+#: guix/scripts/build.scm:887
+msgid ""
+"If you build from a file, make sure the last Scheme\n"
+"expression returns a package value.  @code{define-public} defines a variable,\n"
+"but returns @code{#<unspecified>}.  To fix this, add a Scheme expression at\n"
+"the end of the file that consists only of the package's variable name you\n"
+"defined, as in this example:\n"
+"\n"
+"@example\n"
+"(define-public my-package\n"
+"  (package\n"
+"    ...))\n"
+"\n"
+"my-package\n"
+"@end example"
+msgstr ""
+
+#: guix/scripts/build.scm:900
+msgid ""
+"If you build from a file, make sure the last\n"
+"Scheme expression returns a package, gexp, derivation or a list of such\n"
+"values."
+msgstr ""
+
+#: guix/scripts/build.scm:987
+#, fuzzy, scheme-format
+#| msgid "package `~a' has no source~%"
+msgid "package '~a' has no source~%"
+msgstr "pako '~a' havas neniun fonton~%"
+
+#: guix/scripts/build.scm:1035
 #, scheme-format
 msgid "no build log for '~a'~%"
 msgstr "neniu konstruita protokolo por '~a'~%"
 
-#: guix/scripts/download.scm:44
+#: guix/discovery.scm:96
+#, scheme-format
+msgid "cannot access `~a': ~a~%"
+msgstr "ne eblas atingi '~a': ~a~%"
+
+#: guix/lint.scm:184
+msgid "description should not be empty"
+msgstr "priskribo ne devos esti malplena"
+
+#: guix/lint.scm:195
+msgid "Texinfo markup in description is invalid"
+msgstr ""
+
+#: guix/lint.scm:205
+#, fuzzy, scheme-format
+#| msgid "description should not be empty"
+msgid ""
+"description should not contain ~\n"
+"trademark sign '~a' at ~d"
+msgstr "priskribo ne devos esti malplena"
+
+#. TRANSLATORS: '@code' is Texinfo markup and must be kept
+#. as is.
+#: guix/lint.scm:218
+msgid "use @code or similar ornament instead of quotes"
+msgstr ""
+
+#: guix/lint.scm:230
+msgid "description should start with an upper-case letter or digit"
+msgstr "priskribo devos komenci per majuskla litero aŭ cifero"
+
+#: guix/lint.scm:248
+#, scheme-format
+msgid ""
+"sentences in description should be followed ~\n"
+"by two spaces; possible infraction~p at ~{~a~^, ~}"
+msgstr ""
+"frazoj en la priskribo devos esti sekvataj de ~\n"
+"du spacoj; ebla malobeo~p ĉe ~{~a~^, ~}"
+
+#: guix/lint.scm:269
+#, fuzzy, scheme-format
+#| msgid "Validate package descriptions"
+msgid "invalid description: ~s"
+msgstr "Validigi pak-priskribojn"
+
+#: guix/lint.scm:339
+#, fuzzy, scheme-format
+#| msgid "pkg-config should probably be a native input"
+msgid "'~a' should probably be a native input"
+msgstr "pkg-config probable devos esti originala enigo"
+
+#: guix/lint.scm:354
+#, fuzzy, scheme-format
+#| msgid "pkg-config should probably be a native input"
+msgid "'~a' should probably not be an input at all"
+msgstr "pkg-config probable devos esti originala enigo"
+
+#: guix/lint.scm:375
+msgid "no period allowed at the end of the synopsis"
+msgstr "punkto ne estas permesata ĉe la fino de la resumo"
+
+#: guix/lint.scm:389
+msgid "no article allowed at the beginning of the synopsis"
+msgstr "artikolo ne estas permesata ĉe komenco de la resumo"
+
+#: guix/lint.scm:398
+msgid "synopsis should be less than 80 characters long"
+msgstr "resumo devos havi malpli ol 80 signoj"
+
+#: guix/lint.scm:407
+msgid "synopsis should start with an upper-case letter or digit"
+msgstr "resumo devos komenci per majuskla litero aŭ cifero"
+
+#: guix/lint.scm:415
+msgid "synopsis should not start with the package name"
+msgstr "resumo ne devos komenci per la pak-nomo"
+
+#: guix/lint.scm:429
+msgid "Texinfo markup in synopsis is invalid"
+msgstr ""
+
+#: guix/lint.scm:444
+msgid "synopsis should not be empty"
+msgstr "resumo ne devos esti malplena"
+
+#: guix/lint.scm:454
+#, fuzzy, scheme-format
+#| msgid "invalid syntax: ~a~%"
+msgid "invalid synopsis: ~s"
+msgstr "malvalida sintakso: ~a~%"
+
+#: guix/lint.scm:572
+#, scheme-format
+msgid "URI ~a returned suspiciously small file (~a bytes)"
+msgstr ""
+
+#: guix/lint.scm:581
+#, scheme-format
+msgid "permanent redirect from ~a to ~a"
+msgstr ""
+
+#: guix/lint.scm:587
+#, scheme-format
+msgid "invalid permanent redirect from ~a"
+msgstr ""
+
+#: guix/lint.scm:593 guix/lint.scm:603
+#, scheme-format
+msgid "URI ~a not reachable: ~a (~s)"
+msgstr "URI ~a ne estas alirebla: ~a (~s)"
+
+#: guix/lint.scm:609
+#, scheme-format
+msgid "URI ~a domain not found: ~a"
+msgstr "URI ~a domajno ne trovita: ~a"
+
+#: guix/lint.scm:615
+#, scheme-format
+msgid "URI ~a unreachable: ~a"
+msgstr "URI ~a nealirebla: ~a"
+
+#: guix/lint.scm:623
+#, scheme-format
+msgid "TLS certificate error: ~a"
+msgstr ""
+
+#: guix/lint.scm:650
+msgid "invalid value for home page"
+msgstr "malvalida valoroj por hejmpaĝo"
+
+#: guix/lint.scm:655
+#, scheme-format
+msgid "invalid home page URL: ~s"
+msgstr "malvalida hejmpaĝa URL: ~s"
+
+#: guix/lint.scm:698
+msgid "file names of patches should start with the package name"
+msgstr "dosiernomoj de flikaĵoj devos komenci per la pak-nomo"
+
+#: guix/lint.scm:714
+#, scheme-format
+msgid "~a: file name is too long"
+msgstr ""
+
+#: guix/lint.scm:756
+#, fuzzy, scheme-format
+#| msgid "~a: ~a: proposed synopsis: ~s~%"
+msgid "proposed synopsis: ~s~%"
+msgstr "~a: ~a: proponita resumo: ~s~%"
+
+#: guix/lint.scm:770
+#, fuzzy, scheme-format
+#| msgid "~a: ~a: proposed description:~%     \"~a\"~%"
+msgid "proposed description:~%     \"~a\"~%"
+msgstr "~a: ~a: proponita priskribo:~%     \"~a\"~%"
+
+#: guix/lint.scm:821
+#, fuzzy
+#| msgid "URI ~a unreachable: ~a"
+msgid "all the source URIs are unreachable:"
+msgstr "URI ~a nealirebla: ~a"
+
+#: guix/lint.scm:850
+#, fuzzy
+#| msgid "file names of patches should start with the package name"
+msgid "the source file name should contain the package name"
+msgstr "dosiernomoj de flikaĵoj devos komenci per la pak-nomo"
+
+#: guix/lint.scm:862
+msgid "the source URI should not be an autogenerated tarball"
+msgstr ""
+
+#: guix/lint.scm:886
+#, scheme-format
+msgid "URL should be 'mirror://~a/~a'"
+msgstr ""
+
+#: guix/lint.scm:931
+#, scheme-format
+msgid "URL should be '~a'"
+msgstr ""
+
+#: guix/lint.scm:953 guix/lint.scm:964 guix/lint.scm:972
+#, fuzzy, scheme-format
+#| msgid "failed to create derivation: ~a"
+msgid "failed to create ~a derivation: ~a"
+msgstr "fiasko dum kreo de derivaĵo: ~a"
+
+#: guix/lint.scm:958 guix/lint.scm:986
+#, fuzzy, scheme-format
+#| msgid "failed to create derivation: ~s~%"
+msgid "failed to create ~a derivation: ~s"
+msgstr "fiasko dum kreo de derivaĵo: ~s~%"
+
+#: guix/lint.scm:1014
+#, scheme-format
+msgid "propagated inputs ~a and ~a collide"
+msgstr ""
+
+#: guix/lint.scm:1038
+#, fuzzy
+#| msgid "invalid symlink tokens"
+msgid "invalid license field"
+msgstr "malvalidaj simbol-ligaj ĵetonoj"
+
+#: guix/lint.scm:1045
+#, scheme-format
+msgid "~a: HTTP GET error for ~a: ~a (~s)~%"
+msgstr ""
+
+#: guix/lint.scm:1055
+#, fuzzy, scheme-format
+#| msgid "host name lookup error: ~a~%"
+msgid "~a: host lookup failure: ~a~%"
+msgstr "eraro en serĉado de gastigant-nomo: ~a~%"
+
+#: guix/lint.scm:1060
+#, scheme-format
+msgid "~a: TLS certificate error: ~a"
+msgstr ""
+
+#: guix/lint.scm:1071 guix/ui.scm:841
+#, scheme-format
+msgid "~a: ~a~%"
+msgstr "~a: ~a~%"
+
+#: guix/lint.scm:1085
+msgid "while retrieving CVE vulnerabilities"
+msgstr ""
+
+#: guix/lint.scm:1128
+#, scheme-format
+msgid "probably vulnerable to ~a"
+msgstr ""
+
+#: guix/lint.scm:1135
+#, scheme-format
+msgid "while retrieving upstream info for '~a'"
+msgstr ""
+
+#: guix/lint.scm:1144
+#, scheme-format
+msgid "can be upgraded to ~a"
+msgstr ""
+
+#: guix/lint.scm:1162
+msgid "Software Heritage rate limit reached; try again later"
+msgstr ""
+
+#: guix/lint.scm:1166
+#, scheme-format
+msgid "'~a' returned ~a"
+msgstr ""
+
+#. TRANSLATORS: "Software Heritage" is a proper noun
+#. that must remain untranslated.  See
+#. <https://www.softwareheritage.org>.
+#: guix/lint.scm:1205
+msgid "scheduled Software Heritage archival"
+msgstr ""
+
+#: guix/lint.scm:1211
+msgid "archival rate limit exceeded; try again later"
+msgstr ""
+
+#: guix/lint.scm:1226
+msgid "source not archived on Software Heritage"
+msgstr ""
+
+#: guix/lint.scm:1239
+msgid "while connecting to Software Heritage"
+msgstr ""
+
+#: guix/lint.scm:1254
+#, scheme-format
+msgid "tabulation on line ~a, column ~a"
+msgstr ""
+
+#: guix/lint.scm:1266
+#, scheme-format
+msgid "trailing white space on line ~a"
+msgstr ""
+
+#: guix/lint.scm:1280
+#, scheme-format
+msgid "line ~a is way too long (~a characters)"
+msgstr ""
+
+#: guix/lint.scm:1294
+msgid "parentheses feel lonely, move to the previous or next line"
+msgstr ""
+
+#: guix/lint.scm:1371
+msgid "source file not found"
+msgstr ""
+
+#: guix/lint.scm:1383
+msgid "Validate package descriptions"
+msgstr "Validigi pak-priskribojn"
+
+#: guix/lint.scm:1387
+msgid "Identify inputs that should be native inputs"
+msgstr "Identigi enigojn kiuj devus esti originalaj enigoj"
+
+#: guix/lint.scm:1391
+#, fuzzy
+#| msgid "Identify inputs that should be native inputs"
+msgid "Identify inputs that shouldn't be inputs at all"
+msgstr "Identigi enigojn kiuj devus esti originalaj enigoj"
+
+#. TRANSLATORS: <license> is the name of a data type and must not be
+#. translated.
+#: guix/lint.scm:1397
+msgid "Make sure the 'license' field is a <license> or a list thereof"
+msgstr ""
+
+#: guix/lint.scm:1402
+msgid "Suggest 'mirror://' URLs"
+msgstr ""
+
+#: guix/lint.scm:1406
+#, fuzzy
+#| msgid "Validate file names and availability of patches"
+msgid "Validate file names of sources"
+msgstr "Validigi dosiernomojn kaj disponeblon de flikaĵoj"
+
+#: guix/lint.scm:1410
+msgid "Check for autogenerated tarballs"
+msgstr ""
+
+#: guix/lint.scm:1414
+msgid "Report failure to compile a package to a derivation"
+msgstr "Raporti fiaskon kompili pakon al derivaĵo"
+
+#: guix/lint.scm:1419
+msgid "Report collisions that would occur due to propagated inputs"
+msgstr ""
+
+#: guix/lint.scm:1424
+msgid "Validate file names and availability of patches"
+msgstr "Validigi dosiernomojn kaj disponeblon de flikaĵoj"
+
+#: guix/lint.scm:1428
+msgid "Look for formatting issues in the source"
+msgstr ""
+
+#: guix/lint.scm:1435
+msgid "Validate package synopses"
+msgstr "Validigi pak-resumojn"
+
+#: guix/lint.scm:1439
+msgid "Validate synopsis & description of GNU packages"
+msgstr "Validigi resumon kaj priskribon de GNU-pakoj"
+
+#: guix/lint.scm:1443
+msgid "Validate home-page URLs"
+msgstr "Validigi heimpaĝajn URL"
+
+#: guix/lint.scm:1447
+msgid "Validate source URLs"
+msgstr "Validigi fontajn URL"
+
+#: guix/lint.scm:1451
+msgid "Suggest GitHub URLs"
+msgstr ""
+
+#: guix/lint.scm:1455
+msgid "Check the Common Vulnerabilities and Exposures (CVE) database"
+msgstr ""
+
+#: guix/lint.scm:1460
+msgid "Check the package for new upstream releases"
+msgstr ""
+
+#: guix/lint.scm:1464
+msgid "Ensure source code archival on Software Heritage"
+msgstr ""
+
+#: guix/scripts/download.scm:86
 msgid ""
 "Usage: guix download [OPTION] URL\n"
-"Download the file at URL, add it to the store, and print its store path\n"
-"and the hash of its contents.\n"
-"\n"
-"Supported formats: 'nix-base32' (default), 'base32', and 'base16'\n"
-"('hex' and 'hexadecimal' can be used as well).\n"
+"Download the file at URL to the store or to the given file, and print its\n"
+"file name and the hash of its contents.\n"
 msgstr ""
-"Uzmaniero: guix download [OPTION] URL\n"
-"Elŝuti la dosieron ĉe la URL, aldoni ĝin al la konservejo, kaj montri\n"
-" ĝian konservo-vojon kaj la haketon de ĝia enhavo.\n"
+
+#: guix/scripts/download.scm:90 guix/scripts/hash.scm:53
+#, fuzzy
+#| msgid ""
+#| "Usage: guix hash [OPTION] FILE\n"
+#| "Return the cryptographic hash of FILE.\n"
+#| "\n"
+#| "Supported formats: 'nix-base32' (default), 'base32', and 'base16' ('hex'\n"
+#| "and 'hexadecimal' can be used as well).\n"
+msgid ""
+"Supported formats: 'base64', 'nix-base32' (default), 'base32',\n"
+"and 'base16' ('hex' and 'hexadecimal' can be used as well).\n"
+msgstr ""
+"Uzmaniero: guix hash [MODIFILO] DOSIERO\n"
+"Liveras la ĉifran haketon de DOSIERO.\n"
 "\n"
-"Subtenataj formoj: 'nix-base32' (aprioras), 'base32', kaj 'base16'\n"
-"('hex' kaj 'hexadecimal' ankaŭ uzeblas, por deksesumo).\n"
+"Subtenataj formoj: 'nix-base32' (aprioras), 'base32', kaj 'base16' ('hex'\n"
+"kaj 'hexadecimal' ankaŭ povas esti uzataj, por deksesumo).\n"
 
-#: guix/scripts/download.scm:50 guix/scripts/hash.scm:50
+#: guix/scripts/download.scm:93 guix/scripts/hash.scm:60
 msgid ""
 "\n"
 "  -f, --format=FMT       write the hash in the given format"
@@ -336,95 +2069,119 @@ msgstr ""
 "\n"
 "  -f, --format=FRM       skribi la haketon laŭ la indikita formo"
 
-#: guix/scripts/download.scm:73 guix/scripts/hash.scm:75
+#: guix/scripts/download.scm:95 guix/scripts/hash.scm:58
+msgid ""
+"\n"
+"  -H, --hash=ALGORITHM   use the given hash ALGORITHM"
+msgstr ""
+
+#: guix/scripts/download.scm:97
+msgid ""
+"\n"
+"      --no-check-certificate\n"
+"                         do not validate the certificate of HTTPS servers "
+msgstr ""
+
+#: guix/scripts/download.scm:100
+msgid ""
+"\n"
+"  -o, --output=FILE      download to FILE"
+msgstr ""
+
+#: guix/scripts/download.scm:125 guix/scripts/hash.scm:97
 #, scheme-format
 msgid "unsupported hash format: ~a~%"
 msgstr "nesubtenata haket-formo: ~a~%"
 
-#: guix/scripts/download.scm:96 guix/scripts/gc.scm:122
-#: guix/scripts/pull.scm:217 guix/scripts/lint.scm:585
-#: guix/scripts/publish.scm:233 guix/ui.scm:829
+#: guix/scripts/download.scm:133 guix/scripts/hash.scm:81
+#, fuzzy, scheme-format
+#| msgid "~a: unknown action~%"
+msgid "~a: unknown hash algorithm~%"
+msgstr "~a: nekonata pako~%"
+
+#: guix/scripts/download.scm:170 guix/scripts/package.scm:956
+#: guix/scripts/upgrade.scm:82 guix/scripts/publish.scm:1025
 #, scheme-format
-msgid "~A: unrecognized option~%"
-msgstr "~A: nerekonata modifilo~%"
+msgid "~A: extraneous argument~%"
+msgstr "~A: fremda argumento~%"
 
-#: guix/scripts/download.scm:106
+#: guix/scripts/download.scm:178
+#, fuzzy, scheme-format
+#| msgid "~a: download failed~%"
+msgid "no download URI was specified~%"
+msgstr "~a: elŝuto fiaskis~%"
+
+#: guix/scripts/download.scm:183
 #, scheme-format
 msgid "~a: failed to parse URI~%"
 msgstr "~a: analizo de URI fiaskis~%"
 
-#: guix/scripts/download.scm:117
+#: guix/scripts/download.scm:193
 #, scheme-format
 msgid "~a: download failed~%"
 msgstr "~a: elŝuto fiaskis~%"
 
-#: guix/scripts/package.scm:108
-#, scheme-format
-msgid "failed to build the empty profile~%"
-msgstr "fiasko dum konstruo de malplena profilo~%"
-
 #: guix/scripts/package.scm:124
 #, scheme-format
-msgid "switching from generation ~a to ~a~%"
-msgstr "alterno el generacio ~a al ~a~%"
-
-#: guix/scripts/package.scm:143
-#, scheme-format
-msgid "nothing to do: already at the empty profile~%"
-msgstr "nenio por fari: jam estas ĉe la malplena profilo~%"
-
-#: guix/scripts/package.scm:155
-#, scheme-format
-msgid "deleting ~a~%"
-msgstr "ni forigas ~a~%"
-
-#: guix/scripts/package.scm:268
-#, scheme-format
 msgid "not removing generation ~a, which is current~%"
 msgstr "ni ne forigas generacion ~a, kiu estas la nuna~%"
 
-#: guix/scripts/package.scm:275
+#: guix/scripts/package.scm:131
 #, scheme-format
 msgid "no matching generation~%"
 msgstr "neniu kongrua generacio~%"
 
-#: guix/scripts/package.scm:278 guix/scripts/package.scm:917
-#, scheme-format
-msgid "invalid syntax: ~a~%"
-msgstr "malvalida sintakso: ~a~%"
-
-#: guix/scripts/package.scm:340
+#: guix/scripts/package.scm:153
 #, scheme-format
-msgid "package `~a' lacks output `~a'~%"
-msgstr "pako '~a' malhavas eligon '~a'~%"
+msgid "nothing to be done~%"
+msgstr "nenio por fari~%"
 
-#: guix/scripts/package.scm:357
-#, scheme-format
-msgid "~a: package not found~%"
-msgstr "~a: pako ne trovita~%"
+#: guix/scripts/package.scm:256
+#, fuzzy, scheme-format
+#| msgid "package `~a' has no source~%"
+msgid "package '~a' no longer exists~%"
+msgstr "pako '~a' havas neniun fonton~%"
 
-#: guix/scripts/package.scm:401
+#: guix/scripts/package.scm:311
 #, scheme-format
-msgid "The following environment variable definitions may be needed:~%"
-msgstr "La jenaj medi-variablaj difinoj povos esti necesaj:~%"
+msgid ""
+"Consider setting the necessary environment\n"
+"variables by running:\n"
+"\n"
+"@example\n"
+"GUIX_PROFILE=\"~a\"\n"
+". \"$GUIX_PROFILE/etc/profile\"\n"
+"@end example\n"
+"\n"
+"Alternately, see @command{guix package --search-paths -p ~s}."
+msgstr ""
 
-#: guix/scripts/package.scm:417
+#: guix/scripts/package.scm:339
+#, fuzzy
+#| msgid ""
+#| "Usage: guix package [OPTION]... PACKAGES...\n"
+#| "Install, remove, or upgrade PACKAGES in a single transaction.\n"
 msgid ""
-"Usage: guix package [OPTION]... PACKAGES...\n"
-"Install, remove, or upgrade PACKAGES in a single transaction.\n"
+"Usage: guix package [OPTION]...\n"
+"Install, remove, or upgrade packages in a single transaction.\n"
 msgstr ""
 "Uzmaniero: guix package [MODIFILO]... PAKOJ...\n"
 "Instalas, forigas, aŭ ĝisdatigas PAKOJn en ununura ago.\n"
 
-#: guix/scripts/package.scm:419
+#: guix/scripts/package.scm:341
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "  -i, --install=PACKAGE  install PACKAGE"
 msgid ""
 "\n"
-"  -i, --install=PACKAGE  install PACKAGE"
+"  -i, --install PACKAGE ...\n"
+"                         install PACKAGEs"
 msgstr ""
 "\n"
 "  -i, --install=PAKO     instali PAKOn"
 
-#: guix/scripts/package.scm:421
+#: guix/scripts/package.scm:344
 msgid ""
 "\n"
 "  -e, --install-from-expression=EXP\n"
@@ -434,15 +2191,36 @@ msgstr ""
 "  -e, --install-from-expression=ESP\n"
 "                         instali la pakon ESP rezultas al"
 
-#: guix/scripts/package.scm:424
+#: guix/scripts/package.scm:347
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "  -e, --install-from-expression=EXP\n"
+#| "                         install the package EXP evaluates to"
+msgid ""
+"\n"
+"  -f, --install-from-file=FILE\n"
+"                         install the package that the code within FILE\n"
+"                         evaluates to"
+msgstr ""
+"\n"
+"  -e, --install-from-expression=ESP\n"
+"                         instali la pakon ESP rezultas al"
+
+#: guix/scripts/package.scm:351
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "  -r, --remove=PACKAGE   remove PACKAGE"
 msgid ""
 "\n"
-"  -r, --remove=PACKAGE   remove PACKAGE"
+"  -r, --remove PACKAGE ...\n"
+"                         remove PACKAGEs"
 msgstr ""
 "\n"
 "  -r, --remove=PAKO      forigi PAKOn"
 
-#: guix/scripts/package.scm:426
+#: guix/scripts/package.scm:354
 msgid ""
 "\n"
 "  -u, --upgrade[=REGEXP] upgrade all the installed packages matching REGEXP"
@@ -450,7 +2228,14 @@ msgstr ""
 "\n"
 "  -u, --upgrade[=REGESP] ĝisdatigi ĉiujn instalitajn pakojn kongruantajn al REGESP"
 
-#: guix/scripts/package.scm:428
+#: guix/scripts/package.scm:356
+msgid ""
+"\n"
+"  -m, --manifest=FILE    create a new profile generation with the manifest\n"
+"                         from FILE"
+msgstr ""
+
+#: guix/scripts/package.scm:359
 msgid ""
 "\n"
 "      --do-not-upgrade[=REGEXP] do not upgrade any packages matching REGEXP"
@@ -458,7 +2243,7 @@ msgstr ""
 "\n"
 "      --do-not-upgrade[=REGESP]  ne ĝisdatigi iun ajn instalitan pakon kongruantan al REGESP"
 
-#: guix/scripts/package.scm:430
+#: guix/scripts/package.scm:361 guix/scripts/pull.scm:108
 msgid ""
 "\n"
 "      --roll-back        roll back to the previous generation"
@@ -466,15 +2251,20 @@ msgstr ""
 "\n"
 "      --roll-back        retropaŝi al la antaŭa generacio"
 
-#: guix/scripts/package.scm:432
+#: guix/scripts/package.scm:363
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "      --search-paths     display needed environment variable definitions"
 msgid ""
 "\n"
-"      --search-paths     display needed environment variable definitions"
+"      --search-paths[=KIND]\n"
+"                         display needed environment variable definitions"
 msgstr ""
 "\n"
 "      --search-paths     montri necesajn medi-variablajn difinojn"
 
-#: guix/scripts/package.scm:434
+#: guix/scripts/package.scm:366 guix/scripts/pull.scm:105
 msgid ""
 "\n"
 "  -l, --list-generations[=PATTERN]\n"
@@ -484,7 +2274,7 @@ msgstr ""
 "  -I, --list-generations[=ŜABLONO]\n"
 "                         listigi generaciojn kongruantajn al ŜABLONO"
 
-#: guix/scripts/package.scm:437
+#: guix/scripts/package.scm:369 guix/scripts/pull.scm:110
 msgid ""
 "\n"
 "  -d, --delete-generations[=PATTERN]\n"
@@ -494,7 +2284,7 @@ msgstr ""
 "  -d, --delete-generations[=ŜABLONO]\n"
 "                         forigi generaciojn kongruantajn al ŜABLONO"
 
-#: guix/scripts/package.scm:440
+#: guix/scripts/package.scm:372 guix/scripts/pull.scm:113
 msgid ""
 "\n"
 "  -S, --switch-generation=PATTERN\n"
@@ -504,7 +2294,8 @@ msgstr ""
 "  -S, --switch-generations=ŜABLONO\n"
 "                         ŝalti al generacio kongruanta al ŜABLONO"
 
-#: guix/scripts/package.scm:443
+#: guix/scripts/package.scm:375 guix/scripts/install.scm:33
+#: guix/scripts/remove.scm:33 guix/scripts/upgrade.scm:35
 msgid ""
 "\n"
 "  -p, --profile=PROFILE  use PROFILE instead of the user's default profile"
@@ -512,23 +2303,33 @@ msgstr ""
 "\n"
 "  -p, --profile=PROFILO  uzi PROFILOn anstataŭ la apriora profilo de la uzanto"
 
-#: guix/scripts/package.scm:446
+#: guix/scripts/package.scm:377
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "      --list-live        list live paths"
 msgid ""
 "\n"
-"      --bootstrap        use the bootstrap Guile to build the profile"
+"      --list-profiles    list the user's profiles"
 msgstr ""
 "\n"
-"      --bootstrap        uzi la praŝargilon Guile por konstrui la profilon"
+"      --list-live        listigi aktivajn vojojn"
 
-#: guix/scripts/package.scm:448 guix/scripts/pull.scm:74
+#: guix/scripts/package.scm:380
 msgid ""
 "\n"
-"      --verbose          produce verbose output"
+"      --allow-collisions do not treat collisions in the profile as an error"
 msgstr ""
+
+#: guix/scripts/package.scm:382
+msgid ""
 "\n"
-"      --verbose          produkti detalplenan eligon"
+"      --bootstrap        use the bootstrap Guile to build the profile"
+msgstr ""
+"\n"
+"      --bootstrap        uzi la praŝargilon Guile por konstrui la profilon"
 
-#: guix/scripts/package.scm:451
+#: guix/scripts/package.scm:387
 msgid ""
 "\n"
 "  -s, --search=REGEXP    search in synopsis and description using REGEXP"
@@ -536,7 +2337,7 @@ msgstr ""
 "\n"
 "  -s, --search=REGESP    serĉi en resumo kaj priskribo uzante REGESP"
 
-#: guix/scripts/package.scm:453
+#: guix/scripts/package.scm:389
 msgid ""
 "\n"
 "  -I, --list-installed[=REGEXP]\n"
@@ -546,7 +2347,7 @@ msgstr ""
 "  -I, --list-installed[=REGESP]\n"
 "                         listigi instalitajn pakojn kongruantajn al REGESP"
 
-#: guix/scripts/package.scm:456
+#: guix/scripts/package.scm:392
 msgid ""
 "\n"
 "  -A, --list-available[=REGEXP]\n"
@@ -556,72 +2357,124 @@ msgstr ""
 "  -A, --list-available[=REGESP]\n"
 "                         listigi disponeblajn pakojn kongruantajn al REGESP"
 
-#: guix/scripts/package.scm:459
+#: guix/scripts/package.scm:395
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "  --show=PACKAGE         show details about PACKAGE"
 msgid ""
 "\n"
-"  --show=PACKAGE         show details about PACKAGE"
+"      --show=PACKAGE     show details about PACKAGE"
 msgstr ""
 "\n"
 "  --show=PAKO            montri detalojn pri PAKO"
 
-#: guix/scripts/package.scm:730
+#: guix/scripts/package.scm:450
 #, scheme-format
-msgid "~A: extraneous argument~%"
-msgstr "~A: fremda argumento~%"
-
-#: guix/scripts/package.scm:738
-#, scheme-format
-msgid "Try \"info '(guix) Invoking guix package'\" for more information.~%"
-msgstr "Provu \"info '(guix) Invoking guix package'\" por pli da informo.'%"
+msgid "upgrade regexp '~a' looks like a command-line option~%"
+msgstr ""
 
-#: guix/scripts/package.scm:760
+#: guix/scripts/package.scm:453
 #, scheme-format
-msgid "error: while creating directory `~a': ~a~%"
-msgstr "eraro: dum kreo de dosierujo '~a': ~a~%"
+msgid "is this intended?~%"
+msgstr ""
 
-#: guix/scripts/package.scm:764
-#, scheme-format
-msgid "Please create the `~a' directory, with you as the owner.~%"
-msgstr "Bonvolu krei la dosierujon '~a', kun vi kiel posedanto.~%"
+#: guix/scripts/package.scm:503
+#, fuzzy, scheme-format
+#| msgid "~s: unsupported server URI scheme~%"
+msgid "~a: unsupported kind of search path~%"
+msgstr "~s: nesubtenata URI-skemo de servo~%"
 
-#: guix/scripts/package.scm:771
+#: guix/scripts/package.scm:629
 #, scheme-format
-msgid "error: directory `~a' is not owned by you~%"
-msgstr "eraro: dosierujo '~a' ne estas posedata de vi~%"
+msgid "cannot install non-package object: ~s~%"
+msgstr ""
 
-#: guix/scripts/package.scm:774
-#, scheme-format
-msgid "Please change the owner of `~a' to user ~s.~%"
-msgstr "Bonvole ŝanĝu la posedanton de '~a' al la uzanto ~s.~%"
+#: guix/scripts/package.scm:810
+#, fuzzy, scheme-format
+#| msgid "~a: package not found~%"
+msgid "~a~@[@~a~]: package not found~%"
+msgstr "~a: pako ne trovita~%"
 
-#: guix/scripts/package.scm:804
+#: guix/scripts/package.scm:845 guix/scripts/pull.scm:687
 #, scheme-format
 msgid "cannot switch to generation '~a'~%"
 msgstr "ne eblas ŝalti al generacio '~a'~%"
 
-#: guix/scripts/package.scm:852
-#, scheme-format
-msgid "nothing to be done~%"
-msgstr "nenio por fari~%"
+#: guix/scripts/install.scm:30
+#, fuzzy
+#| msgid ""
+#| "Usage: guix package [OPTION]... PACKAGES...\n"
+#| "Install, remove, or upgrade PACKAGES in a single transaction.\n"
+msgid ""
+"Usage: guix install [OPTION] PACKAGES...\n"
+"Install the given PACKAGES.\n"
+"This is an alias for 'guix package -i'.\n"
+msgstr ""
+"Uzmaniero: guix package [MODIFILO]... PAKOJ...\n"
+"Instalas, forigas, aŭ ĝisdatigas PAKOJn en ununura ago.\n"
 
-#: guix/scripts/package.scm:868
-#, scheme-format
-msgid "~a package in profile~%"
-msgid_plural "~a packages in profile~%"
-msgstr[0] "pako ~a en profilo~%"
-msgstr[1] "pakoj ~a en profilo~%"
+#: guix/scripts/remove.scm:30
+#, fuzzy
+#| msgid ""
+#| "Usage: guix package [OPTION]... PACKAGES...\n"
+#| "Install, remove, or upgrade PACKAGES in a single transaction.\n"
+msgid ""
+"Usage: guix remove [OPTION] PACKAGES...\n"
+"Remove the given PACKAGES.\n"
+"This is an alias for 'guix package -r'.\n"
+msgstr ""
+"Uzmaniero: guix package [MODIFILO]... PAKOJ...\n"
+"Instalas, forigas, aŭ ĝisdatigas PAKOJn en ununura ago.\n"
+
+#: guix/scripts/upgrade.scm:32
+msgid ""
+"Usage: guix upgrade [OPTION] [REGEXP]\n"
+"Upgrade packages that match REGEXP.\n"
+"This is an alias for 'guix package -u'.\n"
+msgstr ""
 
-#: guix/scripts/package.scm:883
+#: guix/scripts/search.scm:31
+msgid ""
+"Usage: guix search [OPTION] REGEXPS...\n"
+"Search for packages matching REGEXPS."
+msgstr ""
+
+#: guix/scripts/search.scm:33
+msgid ""
+"\n"
+"This is an alias for 'guix package -s'.\n"
+msgstr ""
+
+#: guix/scripts/search.scm:76
 #, scheme-format
-msgid "Generation ~a\t~a"
-msgstr "Generacio ~a\t~a"
+msgid "missing arguments: no regular expressions to search for~%"
+msgstr ""
+
+#: guix/scripts/show.scm:31
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "  --show=PACKAGE         show details about PACKAGE"
+msgid ""
+"Usage: guix show [OPTION] PACKAGE...\n"
+"Show details about PACKAGE."
+msgstr ""
+"\n"
+"  --show=PAKO            montri detalojn pri PAKO"
+
+#: guix/scripts/show.scm:33
+msgid ""
+"\n"
+"This is an alias for 'guix package --show='.\n"
+msgstr ""
 
-#: guix/scripts/package.scm:890
+#: guix/scripts/show.scm:76
 #, scheme-format
-msgid "~a\t(current)~%"
-msgstr "~a\t(nuna)~%"
+msgid "missing arguments: no package to show~%"
+msgstr ""
 
-#: guix/scripts/gc.scm:39
+#: guix/scripts/gc.scm:47
 msgid ""
 "Usage: guix gc [OPTION]... PATHS...\n"
 "Invoke the garbage collector.\n"
@@ -629,7 +2482,7 @@ msgstr ""
 "Uzmaniero: guix gc [MODIFILO]... VOJOJ...\n"
 "Voki la rubaĵ-kolektanton.\n"
 
-#: guix/scripts/gc.scm:41
+#: guix/scripts/gc.scm:49
 msgid ""
 "\n"
 "  -C, --collect-garbage[=MIN]\n"
@@ -639,15 +2492,58 @@ msgstr ""
 "  -C, --collect-garbage[=MIN]\n"
 "                         kolekti minimume MIN bajtojn da rubaĵo"
 
-#: guix/scripts/gc.scm:44
+#: guix/scripts/gc.scm:52
+msgid ""
+"\n"
+"  -F, --free-space=FREE  attempt to reach FREE available space in the store"
+msgstr ""
+
+#: guix/scripts/gc.scm:54
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "  -d, --delete-generations[=PATTERN]\n"
+#| "                         delete generations matching PATTERN"
 msgid ""
 "\n"
-"  -d, --delete           attempt to delete PATHS"
+"  -d, --delete-generations[=PATTERN]\n"
+"                         delete profile generations matching PATTERN"
+msgstr ""
+"\n"
+"  -d, --delete-generations[=ŜABLONO]\n"
+"                         forigi generaciojn kongruantajn al ŜABLONO"
+
+#: guix/scripts/gc.scm:57
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "  -d, --delete           attempt to delete PATHS"
+msgid ""
+"\n"
+"  -D, --delete           attempt to delete PATHS"
 msgstr ""
 "\n"
 "  -d, --delete           provi forigi VOJOJn"
 
-#: guix/scripts/gc.scm:46
+#: guix/scripts/gc.scm:59
+msgid ""
+"\n"
+"      --list-roots       list the user's garbage collector roots"
+msgstr ""
+
+#: guix/scripts/gc.scm:61
+msgid ""
+"\n"
+"      --list-busy        list store items used by running processes"
+msgstr ""
+
+#: guix/scripts/gc.scm:63
+msgid ""
+"\n"
+"      --optimize         optimize the store by deduplicating identical files"
+msgstr ""
+
+#: guix/scripts/gc.scm:65
 msgid ""
 "\n"
 "      --list-dead        list dead paths"
@@ -655,7 +2551,7 @@ msgstr ""
 "\n"
 "      --list-dead        listigi mortajn vojojn"
 
-#: guix/scripts/gc.scm:48
+#: guix/scripts/gc.scm:67
 msgid ""
 "\n"
 "      --list-live        list live paths"
@@ -663,7 +2559,7 @@ msgstr ""
 "\n"
 "      --list-live        listigi aktivajn vojojn"
 
-#: guix/scripts/gc.scm:51
+#: guix/scripts/gc.scm:70
 msgid ""
 "\n"
 "      --references       list the references of PATHS"
@@ -671,7 +2567,7 @@ msgstr ""
 "\n"
 "      --references       listigi la referencojn de VOJOJ"
 
-#: guix/scripts/gc.scm:53
+#: guix/scripts/gc.scm:72
 msgid ""
 "\n"
 "  -R, --requisites       list the requisites of PATHS"
@@ -679,7 +2575,7 @@ msgstr ""
 "\n"
 "  -R, --requisites       listigi la antaŭbezonojn de VOJOJ"
 
-#: guix/scripts/gc.scm:55
+#: guix/scripts/gc.scm:74
 msgid ""
 "\n"
 "      --referrers        list the referrers of PATHS"
@@ -687,26 +2583,193 @@ msgstr ""
 "\n"
 "      --referrers        listigi la referencantojn de VOJOJ"
 
-#: guix/scripts/gc.scm:84
+#: guix/scripts/gc.scm:76
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "      --referrers        list the referrers of PATHS"
+msgid ""
+"\n"
+"      --derivers         list the derivers of PATHS"
+msgstr ""
+"\n"
+"      --referrers        listigi la referencantojn de VOJOJ"
+
+#: guix/scripts/gc.scm:79
+msgid ""
+"\n"
+"      --verify[=OPTS]    verify the integrity of the store; OPTS is a\n"
+"                         comma-separated combination of 'repair' and\n"
+"                         'contents'"
+msgstr ""
+
+#: guix/scripts/gc.scm:83
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "      --list-dead        list dead paths"
+msgid ""
+"\n"
+"      --list-failures    list cached build failures"
+msgstr ""
+"\n"
+"      --list-dead        listigi mortajn vojojn"
+
+#: guix/scripts/gc.scm:85
+msgid ""
+"\n"
+"      --clear-failures   remove PATHS from the set of cached failures"
+msgstr ""
+
+#: guix/scripts/gc.scm:99
+#, fuzzy, scheme-format
+#| msgid "~a: invalid number~%"
+msgid "~a: invalid '--verify' option~%"
+msgstr "~a: malvalida numero~%"
+
+#: guix/scripts/gc.scm:142
 #, scheme-format
 msgid "invalid amount of storage: ~a~%"
 msgstr "malvalida kvanto da konserv-spaco: ~a~%"
 
-#: guix/scripts/hash.scm:45
+#: guix/scripts/gc.scm:156
+#, scheme-format
+msgid "'-d' as an alias for '--delete' is deprecated; use '-D'~%"
+msgstr ""
+
+#: guix/scripts/gc.scm:163
+#, scheme-format
+msgid "~s does not denote a duration~%"
+msgstr ""
+
+#: guix/scripts/gc.scm:251
+msgid "already ~h MiBs available on ~a, nothing to do~%"
+msgstr ""
+
+#: guix/scripts/gc.scm:254
+#, fuzzy
+#| msgid "deleting ~a~%"
+msgid "freeing ~h MiBs~%"
+msgstr "ni forigas ~a~%"
+
+#: guix/scripts/gc.scm:293
+#, fuzzy, scheme-format
+#| msgid "~A: extraneous argument~%"
+msgid "extraneous arguments: ~{~a ~}~%"
+msgstr "~A: fremda argumento~%"
+
+#: guix/scripts/gc.scm:317 guix/scripts/gc.scm:320
+msgid "freed ~h MiBs~%"
+msgstr ""
+
+#: guix/scripts/git.scm:26
+#, fuzzy
+#| msgid ""
+#| "Usage: guix COMMAND ARGS...\n"
+#| "Run COMMAND with ARGS.\n"
+msgid ""
+"Usage: guix git COMMAND ARGS...\n"
+"Operate on Git repositories.\n"
+msgstr ""
+"Uzmaniero: guix KOMANDO ARGj...\n"
+"Lanĉas KOMANDOn kun ARGj.\n"
+
+#: guix/scripts/git.scm:29 guix/scripts/system.scm:916
+#: guix/scripts/container.scm:30
+msgid "The valid values for ACTION are:\n"
+msgstr "La validaj valoroj por AGO estas:\n"
+
+#: guix/scripts/git.scm:31
+msgid "   authenticate    verify commit signatures and authorizations\n"
+msgstr ""
+
+#: guix/scripts/git.scm:57
+#, fuzzy, scheme-format
+#| msgid "guix: missing command name~%"
+msgid "guix git: missing sub-command~%"
+msgstr "guix: mankas komanda nomo~%"
+
+#: guix/scripts/git.scm:67
+#, fuzzy, scheme-format
+#| msgid "guix import: invalid importer~%"
+msgid "guix git: invalid sub-command~%"
+msgstr "guix importo: malvalida importilo~%"
+
+#: guix/scripts/git/authenticate.scm:81
+#, scheme-format
+msgid "Signing statistics:~%"
+msgstr ""
+
+#: guix/scripts/git/authenticate.scm:94
+msgid ""
+"Usage: guix git authenticate COMMIT SIGNER [OPTIONS...]\n"
+"Authenticate the given Git checkout using COMMIT/SIGNER as its introduction.\n"
+msgstr ""
+
+#: guix/scripts/git/authenticate.scm:96
+msgid ""
+"\n"
+"  -r, --repository=DIRECTORY\n"
+"                         open the Git repository at DIRECTORY"
+msgstr ""
+
+#: guix/scripts/git/authenticate.scm:99
+msgid ""
+"\n"
+"  -k, --keyring=REFERENCE\n"
+"                         load keyring from REFERENCE, a Git branch"
+msgstr ""
+
+#: guix/scripts/git/authenticate.scm:102
+msgid ""
+"\n"
+"      --stats            display commit signing statistics upon completion"
+msgstr ""
+
+#: guix/scripts/git/authenticate.scm:104
+msgid ""
+"\n"
+"      --cache-key=KEY    cache authenticated commits under KEY"
+msgstr ""
+
+#: guix/scripts/git/authenticate.scm:106
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "  -l, --list-generations[=PATTERN]\n"
+#| "                         list generations matching PATTERN"
+msgid ""
+"\n"
+"      --historical-authorizations=FILE\n"
+"                         read historical authorizations from FILE"
+msgstr ""
+"\n"
+"  -I, --list-generations[=ŜABLONO]\n"
+"                         listigi generaciojn kongruantajn al ŜABLONO"
+
+#: guix/scripts/git/authenticate.scm:138
+msgid "Authenticating commits ~a to ~a (~h new commits)...~%"
+msgstr ""
+
+#: guix/scripts/git/authenticate.scm:178
+#, fuzzy, scheme-format
+#| msgid "wrong number of arguments~%"
+msgid "wrong number of arguments; expected COMMIT and SIGNER~%"
+msgstr "malĝusta nombro da argumentoj~%"
+
+#: guix/scripts/hash.scm:50
 msgid ""
 "Usage: guix hash [OPTION] FILE\n"
 "Return the cryptographic hash of FILE.\n"
-"\n"
-"Supported formats: 'nix-base32' (default), 'base32', and 'base16' ('hex'\n"
-"and 'hexadecimal' can be used as well).\n"
 msgstr ""
-"Uzmaniero: guix hash [MODIFILO] DOSIERO\n"
-"Liveras la ĉifran haketon de DOSIERO.\n"
+
+#: guix/scripts/hash.scm:56
+msgid ""
 "\n"
-"Subtenataj formoj: 'nix-base32' (aprioras), 'base32', kaj 'base16' ('hex'\n"
-"kaj 'hexadecimal' ankaŭ povas esti uzataj, por deksesumo).\n"
+"  -x, --exclude-vcs      exclude version control directories"
+msgstr ""
 
-#: guix/scripts/hash.scm:52
+#: guix/scripts/hash.scm:62
 msgid ""
 "\n"
 "  -r, --recursive        compute the hash on FILE recursively"
@@ -714,22 +2777,20 @@ msgstr ""
 "\n"
 "  -r, --recursive        komputi la haketon ĉe DOSIERO rikure"
 
-#: guix/scripts/hash.scm:103
-#, scheme-format
-msgid "unrecognized option: ~a~%"
-msgstr "nerekonata modifilo: ~a~%"
-
-#: guix/scripts/hash.scm:134 guix/ui.scm:318
+#: guix/scripts/hash.scm:171 guix/ui.scm:396 guix/ui.scm:427 guix/ui.scm:784
+#: guix/ui.scm:832 guix/ui.scm:888
 #, scheme-format
 msgid "~a~%"
 msgstr "~a~%"
 
-#: guix/scripts/hash.scm:137
+#: guix/scripts/hash.scm:174 guix/scripts/system.scm:1242
+#: guix/scripts/system.scm:1258 guix/scripts/system.scm:1265
+#: guix/scripts/system.scm:1271
 #, scheme-format
 msgid "wrong number of arguments~%"
 msgstr "malĝusta nombro da argumentoj~%"
 
-#: guix/scripts/import.scm:85
+#: guix/scripts/import.scm:89
 msgid ""
 "Usage: guix import IMPORTER ARGS ...\n"
 "Run IMPORTER with ARGS.\n"
@@ -737,21 +2798,118 @@ msgstr ""
 "Uzmaniero: guix import IMPORTILO ARGj...\n"
 "Lanĉas IMPORTILOn kun ARGj.\n"
 
-#: guix/scripts/import.scm:88
+#: guix/scripts/import.scm:92
 msgid "IMPORTER must be one of the importers listed below:\n"
 msgstr "IMPORTILO devas esti unu el la importiloj sube listataj:\n"
 
-#: guix/scripts/import.scm:101
+#: guix/scripts/import.scm:109
 #, scheme-format
 msgid "guix import: missing importer name~%"
 msgstr "guix import: mankas importila nomo~%"
 
-#: guix/scripts/import.scm:112
-#, scheme-format
-msgid "guix import: invalid importer~%"
-msgstr "guix importo: malvalida importilo~%"
+#: guix/scripts/import.scm:130
+#, fuzzy, scheme-format
+#| msgid "~a: download failed~%"
+msgid "'~a' import failed~%"
+msgstr "~a: elŝuto fiaskis~%"
+
+#: guix/scripts/import.scm:131
+#, fuzzy, scheme-format
+#| msgid "~a: invalid number~%"
+msgid "~a: invalid importer~%"
+msgstr "~a: malvalida numero~%"
+
+#: guix/scripts/import/cran.scm:43
+msgid ""
+"Usage: guix import cran PACKAGE-NAME\n"
+"Import and convert the CRAN package for PACKAGE-NAME.\n"
+msgstr ""
+
+#: guix/scripts/import/cran.scm:45
+msgid ""
+"\n"
+"  -a, --archive=ARCHIVE  specify the archive repository"
+msgstr ""
+
+#: guix/scripts/import/cran.scm:49
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "  -r, --recursive        compute the hash on FILE recursively"
+msgid ""
+"\n"
+"  -r, --recursive        import packages recursively"
+msgstr ""
+"\n"
+"  -r, --recursive        komputi la haketon ĉe DOSIERO rikure"
+
+#: guix/scripts/import/cran.scm:106
+#, fuzzy, scheme-format
+#| msgid "failed to load operating system file '~a':~%"
+msgid "failed to download description for package '~a'~%"
+msgstr "fiasko dum ŝargo je operaci-sistema dosiero '~a':~%"
+
+#: guix/scripts/import/cran.scm:110 guix/scripts/import/elpa.scm:110
+#, fuzzy, scheme-format
+#| msgid "wrong number of arguments~%"
+msgid "too few arguments~%"
+msgstr "malĝusta nombro da argumentoj~%"
+
+#: guix/scripts/import/cran.scm:112 guix/scripts/import/elpa.scm:112
+#, fuzzy, scheme-format
+#| msgid "wrong arguments"
+msgid "too many arguments~%"
+msgstr "malĝustaj argumentoj"
+
+#: guix/scripts/import/elpa.scm:43
+msgid ""
+"Usage: guix import elpa PACKAGE-NAME\n"
+"Import the latest package named PACKAGE-NAME from an ELPA repository.\n"
+msgstr ""
+
+#: guix/scripts/import/elpa.scm:45
+msgid ""
+"\n"
+"  -a, --archive=ARCHIVE          specify the archive repository"
+msgstr ""
+
+#: guix/scripts/import/elpa.scm:47
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "  -h, --help             display this help and exit"
+msgid ""
+"\n"
+"  -h, --help                     display this help and exit"
+msgstr ""
+"\n"
+"  -h, --help             montri ĉi tiun helpon kaj eliri"
+
+#: guix/scripts/import/elpa.scm:49
+msgid ""
+"\n"
+"  -r, --recursive                generate package expressions for all Emacs packages that are not yet in Guix"
+msgstr ""
 
-#: guix/scripts/pull.scm:72
+#: guix/scripts/import/elpa.scm:51
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "  -V, --version          display version information and exit"
+msgid ""
+"\n"
+"  -V, --version                  display version information and exit"
+msgstr ""
+"\n"
+"  -V, --version          montri informon pri versio kaj eliri"
+
+#: guix/scripts/import/elpa.scm:107
+#, fuzzy, scheme-format
+#| msgid "failed to load '~a':~%"
+msgid "failed to download package '~a'~%"
+msgstr "fiasko dum ŝargo de '~a':~%"
+
+#: guix/scripts/pull.scm:88
 msgid ""
 "Usage: guix pull [OPTION]...\n"
 "Download and deploy the latest version of Guix.\n"
@@ -759,15 +2917,82 @@ msgstr ""
 "Uzmaniero: guix pull [MODIFILO]...\n"
 "Elŝuti kaj liveri la lastan version de Guix.\n"
 
-#: guix/scripts/pull.scm:76
+#: guix/scripts/pull.scm:90
+msgid ""
+"\n"
+"  -C, --channels=FILE    deploy the channels defined in FILE"
+msgstr ""
+
+#: guix/scripts/pull.scm:92
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "      --url=URL          download the Guix tarball from URL"
 msgid ""
 "\n"
-"      --url=URL          download the Guix tarball from URL"
+"      --url=URL          download from the Git repository at URL"
 msgstr ""
 "\n"
 "      --url=URL          elŝuti la tar-dosiero de Guix el URL"
 
-#: guix/scripts/pull.scm:78
+#: guix/scripts/pull.scm:94
+msgid ""
+"\n"
+"      --commit=COMMIT    download the specified COMMIT"
+msgstr ""
+
+#: guix/scripts/pull.scm:96
+msgid ""
+"\n"
+"      --branch=BRANCH    download the tip of the specified BRANCH"
+msgstr ""
+
+#: guix/scripts/pull.scm:98
+msgid ""
+"\n"
+"      --allow-downgrades allow downgrades to earlier channel revisions"
+msgstr ""
+
+#: guix/scripts/pull.scm:100
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "  -e, --install-from-expression=EXP\n"
+#| "                         install the package EXP evaluates to"
+msgid ""
+"\n"
+"      --disable-authentication\n"
+"                         disable channel authentication"
+msgstr ""
+"\n"
+"  -e, --install-from-expression=ESP\n"
+"                         instali la pakon ESP rezultas al"
+
+#: guix/scripts/pull.scm:103
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "      --roll-back        roll back to the previous generation"
+msgid ""
+"\n"
+"  -N, --news             display news compared to the previous generation"
+msgstr ""
+"\n"
+"      --roll-back        retropaŝi al la antaŭa generacio"
+
+#: guix/scripts/pull.scm:116
+#, fuzzy, scheme-format
+#| msgid ""
+#| "\n"
+#| "  -p, --profile=PROFILE  use PROFILE instead of the user's default profile"
+msgid ""
+"\n"
+"  -p, --profile=PROFILE  use PROFILE instead of ~/.config/guix/current"
+msgstr ""
+"\n"
+"  -p, --profile=PROFILO  uzi PROFILOn anstataŭ la apriora profilo de la uzanto"
+
+#: guix/scripts/pull.scm:122
 msgid ""
 "\n"
 "      --bootstrap        use the bootstrap Guile to build the new Guix"
@@ -775,128 +3000,199 @@ msgstr ""
 "\n"
 "      --bootstrap        uzi 'bootstrap Guile' por konstrui novan Guix"
 
-#: guix/scripts/pull.scm:132
-msgid "tarball did not produce a single source directory"
-msgstr "tarball ne produktis ununuran fontan dosierujon"
+#: guix/scripts/pull.scm:211
+#, scheme-format
+msgid "rolling back channel '~a' from ~a to ~a~%"
+msgstr ""
 
-#: guix/scripts/pull.scm:150
+#: guix/scripts/pull.scm:214
 #, scheme-format
-msgid "unpacking '~a'...~%"
-msgstr "malpakado de '~a'...~%"
+msgid "moving channel '~a' from ~a to unrelated commit ~a~%"
+msgstr ""
 
-#: guix/scripts/pull.scm:159
-msgid "failed to unpack source code"
-msgstr "ni malsukcesis malpaki font-kodon"
+#: guix/scripts/pull.scm:243
+msgid "New in this revision:\n"
+msgstr ""
 
-#: guix/scripts/pull.scm:202
-msgid "Guix already up to date\n"
-msgstr "Guix jam estas ĝisdata\n"
+#. TRANSLATORS: This describes a "channel"; the first placeholder is
+#. the channel name (e.g., "guix") and the second placeholder is its
+#. URL.
+#: guix/scripts/pull.scm:252
+#, fuzzy, scheme-format
+#| msgid "~a: ~a~%"
+msgid "    ~a at ~a~%"
+msgstr "~a: ~a~%"
 
-#: guix/scripts/pull.scm:207
+#: guix/scripts/pull.scm:290
 #, scheme-format
-msgid "updated ~a successfully deployed under `~a'~%"
-msgstr "ni ĝisdatigis ~a sukcese, liverita sur '~a'~%"
+msgid "    commit ~a~%"
+msgstr ""
+
+#: guix/scripts/pull.scm:327
+#, scheme-format
+msgid "News for channel '~a'~%"
+msgstr ""
 
-#: guix/scripts/pull.scm:210
+#: guix/scripts/pull.scm:353
 #, scheme-format
-msgid "failed to update Guix, check the build log~%"
-msgstr "fiasko dum ĝisdatigo de Guix, kontrolu la konstru-protokolon~%"
+msgid "  ~a new channel:~%"
+msgid_plural "  ~a new channels:~%"
+msgstr[0] ""
+msgstr[1] ""
 
-#: guix/scripts/pull.scm:219
+#: guix/scripts/pull.scm:363
 #, scheme-format
-msgid "~A: unexpected argument~%"
-msgstr "~A: neatendita argumento~%"
+msgid "  ~a channel removed:~%"
+msgid_plural "  ~a channels removed:~%"
+msgstr[0] ""
+msgstr[1] ""
+
+#: guix/scripts/pull.scm:439
+msgid "Run @command{guix pull --news} to read all the news."
+msgstr ""
+
+#: guix/scripts/pull.scm:447
+#, scheme-format
+msgid ""
+"After setting @code{PATH}, run\n"
+"@command{hash guix} to make sure your shell refers to @file{~a}."
+msgstr ""
+
+#: guix/scripts/pull.scm:482
+#, fuzzy, scheme-format
+#| msgid "switching from generation ~a to ~a~%"
+msgid "Migrating profile generations to '~a'...~%"
+msgstr "alterno el generacio ~a al ~a~%"
+
+#: guix/scripts/pull.scm:525
+#, fuzzy, scheme-format
+#| msgid "error: while creating directory `~a': ~a~%"
+msgid "while creating symlink '~a': ~a~%"
+msgstr "eraro: dum kreo de dosierujo '~a': ~a~%"
 
-#: guix/scripts/pull.scm:228
-msgid "failed to download up-to-date source, exiting\n"
-msgstr "fiasko dum elŝuto de aktuala fonto, ni ĉesas\n"
+#: guix/scripts/pull.scm:614
+#, fuzzy
+#| msgid "~A: unknown package~%"
+msgid "  ~h new package: ~a~%"
+msgid_plural "  ~h new packages: ~a~%"
+msgstr[0] "~A: nekonata pako~%"
+msgstr[1] "~A: nekonata pako~%"
+
+#: guix/scripts/pull.scm:622
+#, fuzzy
+#| msgid "~a package in profile~%"
+#| msgid_plural "~a packages in profile~%"
+msgid "  ~h package upgraded: ~a~%"
+msgid_plural "  ~h packages upgraded: ~a~%"
+msgstr[0] "pako ~a en profilo~%"
+msgstr[1] "pakoj ~a en profilo~%"
+
+#: guix/scripts/pull.scm:711
+#, scheme-format
+msgid "'~a' did not return a list of channels~%"
+msgstr ""
 
-#: guix/scripts/substitute.scm:81
+#: guix/scripts/pull.scm:727
+#, scheme-format
+msgid ""
+"The 'GUIX_PULL_URL' environment variable is deprecated.\n"
+"Use '~/.config/guix/channels.scm' instead."
+msgstr ""
+
+#: guix/scripts/pull.scm:795
+#, scheme-format
+msgid "Building from this channel:~%"
+msgid_plural "Building from these channels:~%"
+msgstr[0] ""
+msgstr[1] ""
+
+#: guix/scripts/substitute.scm:117
 #, scheme-format
 msgid "authentication and authorization of substitutes disabled!~%"
 msgstr "aŭtentikigo kaj permeso de anstataŭantoj estas malebligataj!~%"
 
-#: guix/scripts/substitute.scm:157
+#: guix/scripts/substitute.scm:203
 #, scheme-format
 msgid "download from '~a' failed: ~a, ~s~%"
 msgstr "elŝuto el '~a' fiaskis: ~a, ~s~%"
 
-#: guix/scripts/substitute.scm:169
+#: guix/scripts/substitute.scm:216
 #, scheme-format
 msgid "while fetching ~a: server is somewhat slow~%"
 msgstr "dum havigo de ~a: servilo iom malrapidas~%"
 
-#: guix/scripts/substitute.scm:171
+#: guix/scripts/substitute.scm:218
 #, scheme-format
 msgid "try `--no-substitutes' if the problem persists~%"
 msgstr "provu '--no-substituse' se la problemo persistos~%"
 
-#: guix/scripts/substitute.scm:214
-#, scheme-format
-msgid "updating list of substitutes from '~a'...\r"
-msgstr "ni ĝisdatigas liston de anstataŭigantoj el '~a'...\r"
+#: guix/scripts/substitute.scm:228
+#, fuzzy, scheme-format
+#| msgid "~s: unsupported server URI scheme~%"
+msgid "unsupported substitute URI scheme: ~a~%"
+msgstr "~s: nesubtenata URI-skemo de servo~%"
 
-#: guix/scripts/substitute.scm:246
+#: guix/scripts/substitute.scm:267
 #, scheme-format
 msgid "signature version must be a number: ~s~%"
 msgstr "subskriba versio devas esti numero: ~s~%"
 
-#: guix/scripts/substitute.scm:250
+#: guix/scripts/substitute.scm:271
 #, scheme-format
 msgid "unsupported signature version: ~a~%"
 msgstr "nesubtenata subskriba versio: ~a~%"
 
-#: guix/scripts/substitute.scm:258
+#: guix/scripts/substitute.scm:279
 #, scheme-format
 msgid "signature is not a valid s-expression: ~s~%"
 msgstr "subskribo ne estas valida s-esprimo: ~s~%"
 
-#: guix/scripts/substitute.scm:262
+#: guix/scripts/substitute.scm:283
 #, scheme-format
 msgid "invalid format of the signature field: ~a~%"
 msgstr "malvalida formo de subskriba kampo: ~a~%"
 
-#: guix/scripts/substitute.scm:297
-#, scheme-format
-msgid "invalid signature for '~a'~%"
-msgstr "malvalida subskribo por '~a'~%"
-
-#: guix/scripts/substitute.scm:299
-#, scheme-format
-msgid "hash mismatch for '~a'~%"
-msgstr "haketa malkongruo por '~a'~%"
-
-#: guix/scripts/substitute.scm:301
-#, scheme-format
-msgid "'~a' is signed with an unauthorized key~%"
-msgstr "'~a' estas subskribita sen rajtigita ŝlosilo~%"
+#: guix/scripts/substitute.scm:411
+#, fuzzy, scheme-format
+#| msgid "profile '~a' does not exist~%"
+msgid "'~a' does not name a store item~%"
+msgstr "profilo '~a' ne ekzistas~%"
 
-#: guix/scripts/substitute.scm:303
-#, scheme-format
-msgid "signature on '~a' is corrupt~%"
-msgstr "subskribo en '~a' estas difektita~%"
+#: guix/scripts/substitute.scm:598
+#, fuzzy, scheme-format
+#| msgid "URI ~a domain not found: ~a"
+msgid "~a: host not found: ~a~%"
+msgstr "URI ~a domajno ne trovita: ~a"
 
-#: guix/scripts/substitute.scm:341
-#, scheme-format
-msgid "substitute at '~a' lacks a signature~%"
-msgstr "anstataŭigo ĉe '~a' malhavas subskribon~%"
+#: guix/scripts/substitute.scm:604
+#, fuzzy, scheme-format
+#| msgid "~a: download failed~%"
+msgid "~a: connection failed: ~a~%"
+msgstr "~a: elŝuto fiaskis~%"
 
-#: guix/scripts/substitute.scm:504
-#, scheme-format
-msgid "updating list of substitutes from '~a'... ~5,1f%"
+#: guix/scripts/substitute.scm:620
+#, fuzzy, scheme-format
+#| msgid "updating list of substitutes from '~a'... ~5,1f%"
+msgid "updating substitutes from '~a'... ~5,1f%"
 msgstr "ni ĝisdatigas liston de anstataŭigantoj el '~a'... ~5,1f%"
 
-#: guix/scripts/substitute.scm:552
+#: guix/scripts/substitute.scm:691
 #, scheme-format
 msgid "~s: unsupported server URI scheme~%"
 msgstr "~s: nesubtenata URI-skemo de servo~%"
 
-#: guix/scripts/substitute.scm:663
+#: guix/scripts/substitute.scm:831
 #, scheme-format
 msgid "host name lookup error: ~a~%"
 msgstr "eraro en serĉado de gastigant-nomo: ~a~%"
 
-#: guix/scripts/substitute.scm:672
+#: guix/scripts/substitute.scm:836
+#, fuzzy, scheme-format
+#| msgid "error: while creating directory `~a': ~a~%"
+msgid "TLS error in procedure '~a': ~a~%"
+msgstr "eraro: dum kreo de dosierujo '~a': ~a~%"
+
+#: guix/scripts/substitute.scm:847
 msgid ""
 "Usage: guix substitute [OPTION]...\n"
 "Internal tool to substitute a pre-built binary to a local build.\n"
@@ -904,7 +3200,7 @@ msgstr ""
 "Uzmaniero: guix substitute [MODIFILO]...\n"
 "Interna ilo por anstataŭigi antaŭ-konstruitan duumaĵon al loka kompilaĵo.\n"
 
-#: guix/scripts/substitute.scm:674
+#: guix/scripts/substitute.scm:849
 msgid ""
 "\n"
 "      --query            report on the availability of substitutes for the\n"
@@ -914,7 +3210,7 @@ msgstr ""
 "      --query            raporti pri la disponebleco de anstataŭigoj por la\n"
 "                         konservaj dosier-nomoj indikitaj per la ĉefenigujo"
 
-#: guix/scripts/substitute.scm:677
+#: guix/scripts/substitute.scm:852
 msgid ""
 "\n"
 "      --substitute STORE-FILE DESTINATION\n"
@@ -926,126 +3222,456 @@ msgstr ""
 "                         elŝuti KONSERV-DOSIEROn kaj konservi ĝin kiel Nar en la\n"
 "                         dosiero CELO"
 
-#: guix/scripts/substitute.scm:712
+#: guix/scripts/substitute.scm:973
+#, fuzzy, scheme-format
+#| msgid "invalid signature for '~a'~%"
+msgid "no valid substitute for '~a'~%"
+msgstr "malvalida subskribo por '~a'~%"
+
+#: guix/scripts/substitute.scm:983
+#, fuzzy, scheme-format
+#| msgid "Downloading, please wait...~%"
+msgid "Downloading ~a...~%"
+msgstr "Ni elŝutas, bonvolu atendi...~%"
+
+#: guix/scripts/substitute.scm:1043
 msgid "ACL for archive imports seems to be uninitialized, substitutes may be unavailable\n"
 msgstr "ACL por importo de arĥivoj ŝajnas esti ne-ekigita, anstataŭoj eble ne disponeblos\n"
 
-#: guix/scripts/substitute.scm:750
-#, scheme-format
-msgid "these substitute URLs will not be used:~{ ~a~}~%"
-msgstr "tiuj ĉi anstataŭigaj URL-oj ne estos uzataj:~{ ~a~}~%"
-
-#: guix/scripts/substitute.scm:776
-#, scheme-format
-msgid "failed to look up host '~a' (~a), substituter disabled~%"
-msgstr "ni malsukcesis serĉi gastiganton '~a' (~a), anstataŭiganto estas malebligata~%"
+#: guix/scripts/substitute.scm:1097
+#, fuzzy, scheme-format
+#| msgid "~a: invalid number~%"
+msgid "~a: invalid URI~%"
+msgstr "~a: malvalida numero~%"
 
-#: guix/scripts/substitute.scm:883
+#: guix/scripts/substitute.scm:1171
 #, scheme-format
 msgid "~a: unrecognized options~%"
 msgstr "~a: nerekonata modifiloj~%"
 
-#: guix/scripts/authenticate.scm:58
-#, scheme-format
-msgid "cannot find public key for secret key '~a'~%"
-msgstr "ne eblas trovi publikan ŝlosilon por la sekreta '~a'~%"
+#: guix/scripts/authenticate.scm:64
+#, fuzzy, scheme-format
+#| msgid "failed to load '~a': ~a~%"
+msgid "failed to load key pair at '~a': ~a~%"
+msgstr "fiasko dum ŝargo de '~a': ~a~%"
 
-#: guix/scripts/authenticate.scm:78
-#, scheme-format
-msgid "error: invalid signature: ~a~%"
-msgstr "eraro: malvalida subskribo: ~a~%"
+#: guix/scripts/authenticate.scm:86
+#, fuzzy, scheme-format
+#| msgid "invalid signature"
+msgid "invalid signature: ~a"
+msgstr "nevalida subskribo"
 
-#: guix/scripts/authenticate.scm:80
-#, scheme-format
-msgid "error: unauthorized public key: ~a~%"
-msgstr "eraro: nerajtigita publika ŝlosilo: ~a~%"
+#: guix/scripts/authenticate.scm:89
+#, fuzzy, scheme-format
+#| msgid "unauthorized public key"
+msgid "unauthorized public key: ~a"
+msgstr "nerajtigita publika ŝlosilo"
 
-#: guix/scripts/authenticate.scm:82
-#, scheme-format
-msgid "error: corrupt signature data: ~a~%"
-msgstr "eraro: difektita subskriba datumaro: ~a~%"
+#: guix/scripts/authenticate.scm:92
+#, fuzzy, scheme-format
+#| msgid "corrupt signature data"
+msgid "corrupt signature data: ~a"
+msgstr "difektita subskriba datumaro"
 
-#: guix/scripts/authenticate.scm:120
+#: guix/scripts/authenticate.scm:184
+#, fuzzy
+#| msgid ""
+#| "Usage: guix authenticate OPTION...\n"
+#| "Sign or verify the signature on the given file.  This tool is meant to\n"
+#| "be used internally by 'guix-daemon'.\n"
 msgid ""
 "Usage: guix authenticate OPTION...\n"
-"Sign or verify the signature on the given file.  This tool is meant to\n"
-"be used internally by 'guix-daemon'.\n"
+"Sign data or verify signatures.  This tool is meant to be used internally by\n"
+"'guix-daemon'.\n"
 msgstr ""
 "Uzmaniero: guix authenticate MODIFILO...\n"
 "Subskribi aŭ kontroli la subskribon de indikita dosiero. Tiu ĉi ilo celas\n"
 "esti interne uzata de 'guix-daemon'.\n"
 
-#: guix/scripts/authenticate.scm:126
-msgid "wrong arguments"
+#: guix/scripts/authenticate.scm:218
+#, scheme-format
+msgid "~s: invalid command; ignoring~%"
+msgstr ""
+
+#: guix/scripts/authenticate.scm:223
+#, fuzzy, scheme-format
+#| msgid "wrong arguments"
+msgid "wrong arguments~%"
 msgstr "malĝustaj argumentoj"
 
-#: guix/scripts/system.scm:106
+#: guix/scripts/system.scm:161
 #, scheme-format
 msgid "failed to register '~a' under '~a'~%"
 msgstr "fiasko dum registro de '~a' sub '~a'~%"
 
-#: guix/scripts/system.scm:138
-#, scheme-format
-msgid "failed to install GRUB on device '~a'~%"
-msgstr "fiasko dum instalo de GRUB en la aparato '~a'~%"
+#: guix/scripts/system.scm:176
+#, fuzzy, scheme-format
+#| msgid "unpacking '~a'...~%"
+msgid "copying to '~a'..."
+msgstr "malpakado de '~a'...~%"
 
-#: guix/scripts/system.scm:155
+#: guix/scripts/system.scm:203
 #, scheme-format
 msgid "initializing the current root file system~%"
 msgstr "ekigado de la nuna radika dosiersistemo~%"
 
-#: guix/scripts/system.scm:209
+#: guix/scripts/system.scm:217
+#, scheme-format
+msgid "not running as 'root', so the ownership of '~a' may be incorrect!~%"
+msgstr ""
+
+#: guix/scripts/system.scm:247 guix/scripts/system.scm:738
+#: guix/scripts/system.scm:846
+#, fuzzy, scheme-format
+#| msgid "updated ~a successfully deployed under `~a'~%"
+msgid "bootloader successfully installed on '~a'~%"
+msgstr "ni ĝisdatigis ~a sukcese, liverita sur '~a'~%"
+
+#: guix/scripts/system.scm:270
+#, scheme-format
+msgid "while talking to shepherd: ~a~%"
+msgstr ""
+
+#: guix/scripts/system.scm:278
+#, fuzzy, scheme-format
+#| msgid "guix: ~a: command not found~%"
+msgid "service '~a' could not be found~%"
+msgstr "guix: ~a: komando ne trovita~%"
+
+#: guix/scripts/system.scm:281
+#, fuzzy, scheme-format
+#| msgid "profile '~a' does not exist~%"
+msgid "service '~a' does not have an action '~a'~%"
+msgstr "profilo '~a' ne ekzistas~%"
+
+#: guix/scripts/system.scm:285
+#, fuzzy, scheme-format
+#| msgid "corrupt input while restoring '~a' from ~s~%"
+msgid "exception caught while executing '~a' on service '~a':~%"
+msgstr "difektita enigo dum restarigo de '~a' el ~s~%"
+
+#: guix/scripts/system.scm:293
+#, fuzzy, scheme-format
+#| msgid "no matching generation~%"
+msgid "something went wrong: ~s~%"
+msgstr "neniu kongrua generacio~%"
+
+#: guix/scripts/system.scm:296
+#, scheme-format
+msgid "shepherd error~%"
+msgstr ""
+
+#: guix/scripts/system.scm:300
+#, scheme-format
+msgid "some services could not be upgraded~%"
+msgstr ""
+
+#: guix/scripts/system.scm:301
+msgid ""
+"To allow changes to all the system services to take\n"
+"effect, you will need to reboot."
+msgstr ""
+
+#: guix/scripts/system.scm:364
+#, fuzzy, scheme-format
+#| msgid "cannot switch to generation '~a'~%"
+msgid "cannot switch to system generation '~a'~%"
+msgstr "ne eblas ŝalti al generacio '~a'~%"
+
+#: guix/scripts/system.scm:433
+msgid "the DAG of services"
+msgstr ""
+
+#: guix/scripts/system.scm:446
+msgid "the dependency graph of shepherd services"
+msgstr ""
+
+#: guix/scripts/system.scm:461
+#, scheme-format
+msgid "      repository URL: ~a~%"
+msgstr ""
+
+#: guix/scripts/system.scm:463
+#, scheme-format
+msgid "      branch: ~a~%"
+msgstr ""
+
+#: guix/scripts/system.scm:464
+#, scheme-format
+msgid "      commit: ~a~%"
+msgstr ""
+
+#: guix/scripts/system.scm:484
+#, fuzzy, scheme-format
+#| msgid "invalid number: ~a~%"
+msgid "  file name: ~a~%"
+msgstr "malvalida numero: ~a~%"
+
+#: guix/scripts/system.scm:485
+#, scheme-format
+msgid "  canonical file name: ~a~%"
+msgstr ""
+
+#. TRANSLATORS: Please preserve the two-space indentation.
+#: guix/scripts/system.scm:487
+#, fuzzy, scheme-format
+#| msgid "~a: ~a~%"
+msgid "  label: ~a~%"
+msgstr "~a: ~a~%"
+
+#: guix/scripts/system.scm:488
+#, scheme-format
+msgid "  bootloader: ~a~%"
+msgstr ""
+
+#. TRANSLATORS: The '~[', '~;', and '~]' sequences in this string must
+#. be preserved.  They denote conditionals, such that the result will
+#. look like:
+#. root device: UUID: 12345-678
+#. or:
+#. root device: label: "my-root"
+#. or just:
+#. root device: /dev/sda3
+#: guix/scripts/system.scm:498
+#, scheme-format
+msgid "  root device: ~[UUID: ~a~;label: ~s~;~a~]~%"
+msgstr ""
+
+#: guix/scripts/system.scm:504
+#, fuzzy, scheme-format
+#| msgid "~a: error: ~a~%"
+msgid "  kernel: ~a~%"
+msgstr "~a: eraro: ~a~%"
+
+#: guix/scripts/system.scm:509
+#, scheme-format
+msgid "  multiboot: ~a~%"
+msgstr ""
+
+#. TRANSLATORS: Here "channel" is the same terminology as used in
+#. "guix describe" and "guix pull --channels".
+#: guix/scripts/system.scm:515
+#, scheme-format
+msgid "  channels:~%"
+msgstr ""
+
+#: guix/scripts/system.scm:518
+#, fuzzy, scheme-format
+#| msgid "no configuration file specified~%"
+msgid "  configuration file: ~a~%"
+msgstr "neniu agorda dosiero estis indikata~%"
+
+#: guix/scripts/system.scm:591
+#, fuzzy, scheme-format
+#| msgid "URI ~a domain not found: ~a"
+msgid "device '~a' not found: ~a~%"
+msgstr "URI ~a domajno ne trovita: ~a"
+
+#: guix/scripts/system.scm:594
+#, scheme-format
+msgid ""
+"If '~a' is a file system\n"
+"label, write @code{(file-system-label ~s)} in your @code{device} field."
+msgstr ""
+
+#: guix/scripts/system.scm:603
+#, scheme-format
+msgid "file system with label '~a' not found~%"
+msgstr ""
+
+#: guix/scripts/system.scm:609
+#, scheme-format
+msgid "file system with UUID '~a' not found~%"
+msgstr ""
+
+#: guix/scripts/system.scm:716
+#, scheme-format
+msgid "Consider running 'guix pull' before 'reconfigure'.~%"
+msgstr ""
+
+#: guix/scripts/system.scm:717
+#, scheme-format
+msgid "Failing to do that may downgrade your system!~%"
+msgstr ""
+
+#: guix/scripts/system.scm:839
 #, scheme-format
 msgid "activating system...~%"
 msgstr "ni aktivas la sistemon...~%"
 
-#: guix/scripts/system.scm:259
-#, scheme-format
-msgid "unrecognized boot parameters for '~a'~%"
-msgstr "nerekonataj ekŝargaj parametroj por '~a'~%"
+#: guix/scripts/system.scm:850
+msgid ""
+"To complete the upgrade, run 'herd restart SERVICE' to stop,\n"
+"upgrade, and restart each service that was not automatically restarted.\n"
+msgstr ""
 
-#: guix/scripts/system.scm:355
+#: guix/scripts/system.scm:853
+msgid "Run 'herd status' to view the list of services on your system.\n"
+msgstr ""
+
+#: guix/scripts/system.scm:857
 #, scheme-format
 msgid "initializing operating system under '~a'...~%"
 msgstr "ni ekigas la operaci-sistemon sub '~a'...~%"
 
-#: guix/scripts/system.scm:371
+#: guix/scripts/system.scm:902
+msgid "The available image types are:\n"
+msgstr ""
+
+#: guix/scripts/system.scm:912
+#, fuzzy
+#| msgid ""
+#| "Usage: guix system [OPTION] ACTION FILE\n"
+#| "Build the operating system declared in FILE according to ACTION.\n"
 msgid ""
-"Usage: guix system [OPTION] ACTION FILE\n"
+"Usage: guix system [OPTION ...] ACTION [ARG ...] [FILE]\n"
 "Build the operating system declared in FILE according to ACTION.\n"
+"Some ACTIONS support additional ARGS.\n"
 msgstr ""
 "Uzmaniero: guix system [MODIFILO] AGO DOSIERO\n"
 "Konstrui la operaci-sistemon deklarita en DOSIERO akorde al AGO.\n"
 
-#: guix/scripts/system.scm:374
-msgid "The valid values for ACTION are:\n"
-msgstr "La validaj valoroj por AGO estas:\n"
+#: guix/scripts/system.scm:918
+msgid "   search           search for existing service types\n"
+msgstr ""
+
+#: guix/scripts/system.scm:920
+#, fuzzy
+#| msgid "  - 'reconfigure', switch to a new operating system configuration\n"
+msgid "   reconfigure      switch to a new operating system configuration\n"
+msgstr "  - 'reconfigure', alterni al nova operaci-sistema agordaro\n"
+
+#: guix/scripts/system.scm:922
+#, fuzzy
+#| msgid "  - 'reconfigure', switch to a new operating system configuration\n"
+msgid "   roll-back        switch to the previous operating system configuration\n"
+msgstr "  - 'reconfigure', alterni al nova operaci-sistema agordaro\n"
+
+#: guix/scripts/system.scm:924
+msgid "   describe         describe the current system\n"
+msgstr ""
+
+#: guix/scripts/system.scm:926
+msgid "   list-generations list the system generations\n"
+msgstr ""
 
-#: guix/scripts/system.scm:375
-msgid "  - 'reconfigure', switch to a new operating system configuration\n"
+#: guix/scripts/system.scm:928
+#, fuzzy
+#| msgid "  - 'reconfigure', switch to a new operating system configuration\n"
+msgid "   switch-generation switch to an existing operating system configuration\n"
 msgstr "  - 'reconfigure', alterni al nova operaci-sistema agordaro\n"
 
-#: guix/scripts/system.scm:377
-msgid "  - 'build', build the operating system without installing anything\n"
+#: guix/scripts/system.scm:930
+msgid "   delete-generations delete old system generations\n"
+msgstr ""
+
+#: guix/scripts/system.scm:932
+#, fuzzy
+#| msgid "  - 'build', build the operating system without installing anything\n"
+msgid "   build            build the operating system without installing anything\n"
 msgstr "  - 'build', konstrui la operaci-sistemon sen instali ion ajn\n"
 
-#: guix/scripts/system.scm:379
-msgid "  - 'vm', build a virtual machine image that shares the host's store\n"
+#: guix/scripts/system.scm:934
+#, fuzzy
+#| msgid "  - 'vm', build a virtual machine image that shares the host's store\n"
+msgid "   container        build a container that shares the host's store\n"
 msgstr "  - 'vm', konstrui virtual-maŝinan bildon kiu kundividas la gastigantan memoron\n"
 
-#: guix/scripts/system.scm:381
-msgid "  - 'vm-image', build a freestanding virtual machine image\n"
+#: guix/scripts/system.scm:936
+#, fuzzy
+#| msgid "  - 'vm', build a virtual machine image that shares the host's store\n"
+msgid "   vm               build a virtual machine image that shares the host's store\n"
+msgstr "  - 'vm', konstrui virtual-maŝinan bildon kiu kundividas la gastigantan memoron\n"
+
+#: guix/scripts/system.scm:938
+#, fuzzy
+#| msgid "  - 'vm-image', build a freestanding virtual machine image\n"
+msgid "   vm-image         build a freestanding virtual machine image\n"
 msgstr "  - 'vm-image', konstrui memstaran virtual-maŝinan bildon\n"
 
-#: guix/scripts/system.scm:383
-msgid "  - 'disk-image', build a disk image, suitable for a USB stick\n"
+#: guix/scripts/system.scm:940
+#, fuzzy
+#| msgid "  - 'disk-image', build a disk image, suitable for a USB stick\n"
+msgid "   disk-image       build a disk image, suitable for a USB stick\n"
 msgstr "  - 'disk-image', konstrui disk-bildon, taŭga por USB-memoro\n"
 
-#: guix/scripts/system.scm:385
-msgid "  - 'init', initialize a root file system to run GNU.\n"
+#: guix/scripts/system.scm:942
+msgid "   docker-image     build a Docker image\n"
+msgstr ""
+
+#: guix/scripts/system.scm:944
+#, fuzzy
+#| msgid "  - 'init', initialize a root file system to run GNU.\n"
+msgid "   init             initialize a root file system to run GNU\n"
 msgstr "  - 'init', ekigi radikan dosiersistemon por lanĉi GNU-on.\n"
 
-#: guix/scripts/system.scm:389
+#: guix/scripts/system.scm:946
+msgid "   extension-graph  emit the service extension graph in Dot format\n"
+msgstr ""
+
+#: guix/scripts/system.scm:948
+msgid "   shepherd-graph   emit the graph of shepherd services in Dot format\n"
+msgstr ""
+
+#: guix/scripts/system.scm:952
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "  -d, --derivations      return the derivation paths of the given packages"
+msgid ""
+"\n"
+"  -d, --derivation       return the derivation of the given system"
+msgstr ""
+"\n"
+"  -d, --derivations      liveri la derivaĵajn vojojn de la indikitaj pakoj"
+
+#: guix/scripts/system.scm:954
+msgid ""
+"\n"
+"  -e, --expression=EXPR  consider the operating-system EXPR evaluates to\n"
+"                         instead of reading FILE, when applicable"
+msgstr ""
+
+#: guix/scripts/system.scm:957
+msgid ""
+"\n"
+"      --allow-downgrades for 'reconfigure', allow downgrades to earlier\n"
+"                         channel revisions"
+msgstr ""
+
+#: guix/scripts/system.scm:960
+msgid ""
+"\n"
+"      --on-error=STRATEGY\n"
+"                         apply STRATEGY (one of nothing-special, backtrace,\n"
+"                         or debug) when an error occurs while reading FILE"
+msgstr ""
+
+#: guix/scripts/system.scm:964
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "      --list-live        list live paths"
+msgid ""
+"\n"
+"      --list-image-types list available image types"
+msgstr ""
+"\n"
+"      --list-live        listigi aktivajn vojojn"
+
+#: guix/scripts/system.scm:966
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "      --image-size=SIZE  for 'vm-image', produce an image of SIZE"
+msgid ""
+"\n"
+"  -t, --image-type=TYPE  for 'disk-image', produce an image of TYPE"
+msgstr ""
+"\n"
+"      --image-size=GRANDO por 'vm-image', produkti bildon je GRANDO"
+
+#: guix/scripts/system.scm:968
 msgid ""
 "\n"
 "      --image-size=SIZE  for 'vm-image', produce an image of SIZE"
@@ -1053,31 +3679,79 @@ msgstr ""
 "\n"
 "      --image-size=GRANDO por 'vm-image', produkti bildon je GRANDO"
 
-#: guix/scripts/system.scm:391
+#: guix/scripts/system.scm:970
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "      --no-grub          for 'init', do not install GRUB"
 msgid ""
 "\n"
-"      --no-grub          for 'init', do not install GRUB"
+"      --no-bootloader    for 'init', do not install a bootloader"
 msgstr ""
 "\n"
 "      --no-grub          por 'init', ne instali GRUB"
 
-#: guix/scripts/system.scm:393
+#: guix/scripts/system.scm:972
+msgid ""
+"\n"
+"      --label=LABEL      for 'disk-image', label disk image with LABEL"
+msgstr ""
+
+#: guix/scripts/system.scm:974 guix/scripts/pack.scm:1069
+msgid ""
+"\n"
+"      --save-provenance  save provenance information"
+msgstr ""
+
+#: guix/scripts/system.scm:976
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "      --share=SPEC       for 'vm', share host file system according to SPEC"
 msgid ""
 "\n"
-"      --share=SPEC       for 'vm', share host file system according to SPEC"
+"      --share=SPEC       for 'vm' and 'container', share host file system with\n"
+"                         read/write access according to SPEC"
 msgstr ""
 "\n"
 "      --share=SPEC       por 'vm', kundividi gastigan dosiersistemon akorde al SPEC"
 
-#: guix/scripts/system.scm:395
+#: guix/scripts/system.scm:979
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "      --expose=SPEC      for 'vm', expose host file system according to SPEC"
 msgid ""
 "\n"
-"      --expose=SPEC      for 'vm', expose host file system according to SPEC"
+"      --expose=SPEC      for 'vm' and 'container', expose host file system\n"
+"                         directory as read-only according to SPEC"
 msgstr ""
 "\n"
 "      --expose=SPEC      for 'vm', elmontri gastigan dosiersistemon akorde al SPEC"
 
-#: guix/scripts/system.scm:397
+#: guix/scripts/system.scm:982
+msgid ""
+"\n"
+"  -N, --network          for 'container', allow containers to access the network"
+msgstr ""
+
+#: guix/scripts/system.scm:984
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "  -r, --root=FILE        make FILE a symlink to the result, and register it\n"
+#| "                         as a garbage collector root"
+msgid ""
+"\n"
+"  -r, --root=FILE        for 'vm', 'vm-image', 'disk-image', 'container',\n"
+"                         and 'build', make FILE a symlink to the result, and\n"
+"                         register it as a garbage collector root"
+msgstr ""
+"\n"
+"  -r, --root=DOSIERO     igi DOSIEROn simbola ligo al la rezulto, kaj registri\n"
+"                         ĝin kiel radikon de rubaĵ-kolektanto"
+
+#: guix/scripts/system.scm:988
 msgid ""
 "\n"
 "      --full-boot        for 'vm', make a full boot sequence"
@@ -1085,265 +3759,1387 @@ msgstr ""
 "\n"
 "      --full-boot        por 'vm', fari kompletan ekŝargan sekvon"
 
-#: guix/scripts/system.scm:484
+#: guix/scripts/system.scm:990
+msgid ""
+"\n"
+"      --skip-checks      skip file system and initrd module safety checks"
+msgstr ""
+
+#: guix/scripts/system.scm:1127
+#, scheme-format
+msgid "'~a' does not return an operating system~%"
+msgstr ""
+
+#: guix/scripts/system.scm:1150
+#, scheme-format
+msgid "both file and expression cannot be specified~%"
+msgstr ""
+
+#: guix/scripts/system.scm:1157
+#, fuzzy, scheme-format
+#| msgid "no configuration file specified~%"
+msgid "no configuration specified~%"
+msgstr "neniu agorda dosiero estis indikata~%"
+
+#: guix/scripts/system.scm:1247
+#, fuzzy, scheme-format
+#| msgid "not removing generation ~a, which is current~%"
+msgid "no system generation, nothing to describe~%"
+msgstr "ni ne forigas generacion ~a, kiu estas la nuna~%"
+
+#: guix/scripts/system.scm:1293
 #, scheme-format
 msgid "~a: unknown action~%"
 msgstr "~a: nekonata pako~%"
 
-#: guix/scripts/system.scm:499
+#: guix/scripts/system.scm:1309
 #, scheme-format
 msgid "wrong number of arguments for action '~a'~%"
 msgstr "malĝusta nombro da argumentoj por la ago '~a'~%"
 
-#: guix/scripts/system.scm:522
-#, scheme-format
-msgid "no configuration file specified~%"
-msgstr "neniu agorda dosiero estis indikata~%"
+#: guix/scripts/system.scm:1314
+#, fuzzy, scheme-format
+#| msgid "guix: missing command name~%"
+msgid "guix system: missing command name~%"
+msgstr "guix: mankas komanda nomo~%"
+
+#: guix/scripts/system.scm:1316
+#, fuzzy, scheme-format
+#| msgid "Try `guix --help' for more information.~%"
+msgid "Try 'guix system --help' for more information.~%"
+msgstr "Provu 'guix --help' por pli da informo.~%"
 
-#: guix/scripts/lint.scm:90
+#: guix/scripts/system/search.scm:93 guix/ui.scm:1539 guix/ui.scm:1557
+msgid "unknown"
+msgstr "nekonata"
+
+#: guix/scripts/lint.scm:52
+#, fuzzy, scheme-format
+#| msgid "~a: ~a~%"
+msgid "~a@~a: ~a~%"
+msgstr "~a: ~a~%"
+
+#: guix/scripts/lint.scm:77
 #, scheme-format
 msgid "Available checkers:~%"
 msgstr "Disponeblaj kontroliloj:~%"
 
-#: guix/scripts/lint.scm:110
-msgid "description should not be empty"
-msgstr "priskribo ne devos esti malplena"
+#: guix/scripts/lint.scm:95
+#, fuzzy
+#| msgid ""
+#| "Usage: guix lint [OPTION]... [PACKAGE]...\n"
+#| "Run a set of checkers on the specified package; if none is specified, run the checkers on all packages.\n"
+msgid ""
+"Usage: guix lint [OPTION]... [PACKAGE]...\n"
+"Run a set of checkers on the specified package; if none is specified,\n"
+"run the checkers on all packages.\n"
+msgstr ""
+"Uzmaniero: guix lint [MODIFILO]... [PAKO]...\n"
+"Lanĉi aron da kontroliloj por la indikita pako; se neniu estas indikita, lanĉi la konstrolilojn por ĉiuj pakoj.\n"
 
-#: guix/scripts/lint.scm:117
-msgid "description should start with an upper-case letter or digit"
-msgstr "priskribo devos komenci per majuskla litero aŭ cifero"
+#: guix/scripts/lint.scm:98
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "  -c, --checkers=CHECKER1,CHECKER2...\n"
+#| "                         only run the specificed checkers"
+msgid ""
+"\n"
+"  -c, --checkers=CHECKER1,CHECKER2...\n"
+"                         only run the specified checkers"
+msgstr ""
+"\n"
+"  -c, --checkers=KONTROL1,KONTROL2...\n"
+"                         nur lanĉi la indikitajn kontrolilojn"
+
+#: guix/scripts/lint.scm:106
+msgid ""
+"\n"
+"  -l, --list-checkers    display the list of available lint checkers"
+msgstr ""
+"\n"
+"  -l, --list-checkers    montri la liston de disponeblaj kontroliloj"
+
+#: guix/scripts/lint.scm:125
+#, scheme-format
+msgid "~a: invalid checker~%"
+msgstr "~a: malvalida kontrolilo~%"
 
-#: guix/scripts/lint.scm:133
+#: guix/scripts/publish.scm:71
 #, scheme-format
 msgid ""
-"sentences in description should be followed ~\n"
-"by two spaces; possible infraction~p at ~{~a~^, ~}"
+"Usage: guix publish [OPTION]...\n"
+"Publish ~a over HTTP.\n"
 msgstr ""
-"frazoj en la priskribo devos esti sekvataj de ~\n"
-"du spacoj; ebla malobeo~p ĉe ~{~a~^, ~}"
+"Uzmaniero: guix publish [MODIFILO]...\n"
+"Publikigas ~a sur HTTP.\n"
 
-#: guix/scripts/lint.scm:154
-msgid "pkg-config should probably be a native input"
-msgstr "pkg-config probable devos esti originala enigo"
+#: guix/scripts/publish.scm:73
+msgid ""
+"\n"
+"  -p, --port=PORT        listen on PORT"
+msgstr ""
+"\n"
+"  -p, --port=PORDO       aŭskulti ĉe PORDOn"
 
-#: guix/scripts/lint.scm:169
-msgid "synopsis should not be empty"
-msgstr "resumo ne devos esti malplena"
+#: guix/scripts/publish.scm:75
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "      --references       list the references of PATHS"
+msgid ""
+"\n"
+"      --listen=HOST      listen on the network interface for HOST"
+msgstr ""
+"\n"
+"      --references       listigi la referencojn de VOJOJ"
 
-#: guix/scripts/lint.scm:177
-msgid "no period allowed at the end of the synopsis"
-msgstr "punkto ne estas permesata ĉe la fino de la resumo"
+#: guix/scripts/publish.scm:77
+msgid ""
+"\n"
+"  -u, --user=USER        change privileges to USER as soon as possible"
+msgstr ""
 
-#: guix/scripts/lint.scm:189
-msgid "no article allowed at the beginning of the synopsis"
-msgstr "artikolo ne estas permesata ĉe komenco de la resumo"
+#: guix/scripts/publish.scm:79
+msgid ""
+"\n"
+"  -C, --compression[=METHOD:LEVEL]\n"
+"                         compress archives with METHOD at LEVEL"
+msgstr ""
 
-#: guix/scripts/lint.scm:196
-msgid "synopsis should be less than 80 characters long"
-msgstr "resumo devos havi malpli ol 80 signoj"
+#: guix/scripts/publish.scm:82
+msgid ""
+"\n"
+"  -c, --cache=DIRECTORY  cache published items to DIRECTORY"
+msgstr ""
 
-#: guix/scripts/lint.scm:202
-msgid "synopsis should start with an upper-case letter or digit"
-msgstr "resumo devos komenci per majuskla litero aŭ cifero"
+#: guix/scripts/publish.scm:84
+msgid ""
+"\n"
+"      --workers=N        use N workers to bake items"
+msgstr ""
 
-#: guix/scripts/lint.scm:209
-msgid "synopsis should not start with the package name"
-msgstr "resumo ne devos komenci per la pak-nomo"
+#: guix/scripts/publish.scm:86
+msgid ""
+"\n"
+"      --ttl=TTL          announce narinfos can be cached for TTL seconds"
+msgstr ""
 
-#: guix/scripts/lint.scm:299 guix/scripts/lint.scm:310
-#, scheme-format
-msgid "URI ~a not reachable: ~a (~s)"
-msgstr "URI ~a ne estas alirebla: ~a (~s)"
+#: guix/scripts/publish.scm:88
+msgid ""
+"\n"
+"      --nar-path=PATH    use PATH as the prefix for nar URLs"
+msgstr ""
+
+#: guix/scripts/publish.scm:90
+msgid ""
+"\n"
+"      --public-key=FILE  use FILE as the public key for signatures"
+msgstr ""
+
+#: guix/scripts/publish.scm:92
+msgid ""
+"\n"
+"      --private-key=FILE use FILE as the private key for signatures"
+msgstr ""
+
+#: guix/scripts/publish.scm:94
+msgid ""
+"\n"
+"  -r, --repl[=PORT]      spawn REPL server on PORT"
+msgstr ""
+"\n"
+"  -r, --repl[=PORDO]     renaskigi REPL-servilo ĉe PORDO"
+
+#: guix/scripts/publish.scm:110
+#, fuzzy, scheme-format
+#| msgid "download from '~a' failed: ~a, ~s~%"
+msgid "lookup of host '~a' failed: ~a~%"
+msgstr "elŝuto el '~a' fiaskis: ~a, ~s~%"
 
-#: guix/scripts/lint.scm:316
+#: guix/scripts/publish.scm:158
 #, scheme-format
-msgid "URI ~a domain not found: ~a"
+msgid "lookup of host '~a' returned nothing"
+msgstr ""
+
+#: guix/scripts/publish.scm:181
+#, fuzzy, scheme-format
+#| msgid "unsupported nar entry type"
+msgid "~a: unsupported compression type~%"
+msgstr "nesubtenata enig-tipo nar"
+
+#: guix/scripts/publish.scm:195
+#, fuzzy, scheme-format
+#| msgid "~a: invalid number~%"
+msgid "~a: invalid duration~%"
+msgstr "~a: malvalida numero~%"
+
+#: guix/scripts/publish.scm:1008
+#, fuzzy, scheme-format
+#| msgid "URI ~a domain not found: ~a"
+msgid "user '~a' not found: ~a~%"
 msgstr "URI ~a domajno ne trovita: ~a"
 
-#: guix/scripts/lint.scm:324
+#: guix/scripts/publish.scm:1060
 #, scheme-format
-msgid "URI ~a unreachable: ~a"
-msgstr "URI ~a nealirebla: ~a"
+msgid "server running as root; consider using the '--user' option!~%"
+msgstr ""
 
-#: guix/scripts/lint.scm:350
-msgid "invalid value for home page"
-msgstr "malvalida valoroj por hejmpaĝo"
+#: guix/scripts/publish.scm:1065
+#, fuzzy, scheme-format
+#| msgid "publishing ~a on port ~d~%"
+msgid "publishing ~a on ~a, port ~d~%"
+msgstr "ni publikigas ~a sur pordo ~d~%"
 
-#: guix/scripts/lint.scm:353
+#: guix/scripts/publish.scm:1071
 #, scheme-format
-msgid "invalid home page URL: ~s"
-msgstr "malvalida hejmpaĝa URL: ~s"
+msgid "using '~a' compression method, level ~a~%"
+msgstr ""
 
-#: guix/scripts/lint.scm:378
-msgid "file names of patches should start with the package name"
-msgstr "dosiernomoj de flikaĵoj devos komenci per la pak-nomo"
+#: guix/scripts/edit.scm:45
+msgid ""
+"Usage: guix edit PACKAGE...\n"
+"Start $VISUAL or $EDITOR to edit the definitions of PACKAGE...\n"
+msgstr ""
 
-#: guix/scripts/lint.scm:416
+#: guix/scripts/edit.scm:68
 #, scheme-format
-msgid "~a: ~a: proposed synopsis: ~s~%"
-msgstr "~a: ~a: proponita resumo: ~s~%"
+msgid "file '~a' not found in search path ~s~%"
+msgstr ""
 
-#: guix/scripts/lint.scm:428
+#: guix/scripts/edit.scm:106
+#, fuzzy, scheme-format
+#| msgid "failed to load '~a': ~a~%"
+msgid "failed to launch '~a': ~a~%"
+msgstr "fiasko dum ŝargo de '~a': ~a~%"
+
+#: guix/scripts/size.scm:71
 #, scheme-format
-msgid "~a: ~a: proposed description:~%     \"~a\"~%"
-msgstr "~a: ~a: proponita priskribo:~%     \"~a\"~%"
+msgid "no available substitute information for '~a'~%"
+msgstr ""
+
+#: guix/scripts/size.scm:93
+msgid "store item"
+msgstr ""
+
+#: guix/scripts/size.scm:93
+msgid "total"
+msgstr ""
 
-#: guix/scripts/lint.scm:453 guix/scripts/lint.scm:457
+#: guix/scripts/size.scm:93
+msgid "self"
+msgstr ""
+
+#: guix/scripts/size.scm:101
 #, scheme-format
-msgid "failed to create derivation: ~a"
-msgstr "fiasko dum kreo de derivaĵo: ~a"
+msgid "total: ~,1f MiB~%"
+msgstr ""
+
+#. TRANSLATORS: This is the title of a graph, meaning that the graph
+#. represents a profile of the store (the "store" being the place where
+#. packages are stored.)
+#: guix/scripts/size.scm:224
+msgid "store profile"
+msgstr ""
+
+#: guix/scripts/size.scm:233
+msgid ""
+"Usage: guix size [OPTION]... PACKAGE|STORE-ITEM\n"
+"Report the size of the PACKAGE or STORE-ITEM, with its dependencies.\n"
+msgstr ""
 
-#: guix/scripts/lint.scm:463
+#: guix/scripts/size.scm:238
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "  -s, --system=SYSTEM    attempt to build for SYSTEM--e.g., \"i686-linux\""
+msgid ""
+"\n"
+"  -s, --system=SYSTEM    consider packages for SYSTEM--e.g., \"i686-linux\""
+msgstr ""
+"\n"
+"  -s, --system=SISTEMO   provi konstrui por SISTEMO--ekz., \"i686-linux\""
+
+#. TRANSLATORS: "closure" and "self" must not be translated.
+#: guix/scripts/size.scm:241
+msgid ""
+"\n"
+"      --sort=KEY         sort according to KEY--\"closure\" or \"self\""
+msgstr ""
+
+#: guix/scripts/size.scm:243
+msgid ""
+"\n"
+"  -m, --map-file=FILE    write to FILE a graphical map of disk usage"
+msgstr ""
+
+#: guix/scripts/size.scm:277
+#, fuzzy, scheme-format
+#| msgid "~a: invalid number~%"
+msgid "~a: invalid sorting key~%"
+msgstr "~a: malvalida numero~%"
+
+#: guix/scripts/size.scm:318
+msgid "missing store item argument\n"
+msgstr ""
+
+#: guix/scripts/graph.scm:94
 #, scheme-format
-msgid "failed to create derivation: ~s~%"
-msgstr "fiasko dum kreo de derivaĵo: ~s~%"
+msgid "~a: invalid argument (package name expected)"
+msgstr ""
 
-#: guix/scripts/lint.scm:476
-msgid "Validate package descriptions"
-msgstr "Validigi pak-priskribojn"
+#: guix/scripts/graph.scm:105
+msgid "the DAG of packages, excluding implicit inputs"
+msgstr ""
 
-#: guix/scripts/lint.scm:480
-msgid "Validate synopsis & description of GNU packages"
-msgstr "Validigi resumon kaj priskribon de GNU-pakoj"
+#: guix/scripts/graph.scm:141
+msgid "the reverse DAG of packages"
+msgstr ""
 
-#: guix/scripts/lint.scm:484
-msgid "Identify inputs that should be native inputs"
-msgstr "Identigi enigojn kiuj devus esti originalaj enigoj"
+#: guix/scripts/graph.scm:191
+msgid "the DAG of packages, including implicit inputs"
+msgstr ""
 
-#: guix/scripts/lint.scm:488
-msgid "Validate file names and availability of patches"
-msgstr "Validigi dosiernomojn kaj disponeblon de flikaĵoj"
+#: guix/scripts/graph.scm:201
+msgid "the DAG of packages and origins, including implicit inputs"
+msgstr ""
 
-#: guix/scripts/lint.scm:492
-msgid "Validate home-page URLs"
-msgstr "Validigi heimpaĝajn URL"
+#: guix/scripts/graph.scm:231
+msgid "same as 'bag', but without the bootstrap nodes"
+msgstr ""
 
-#: guix/scripts/lint.scm:496
-msgid "Validate source URLs"
-msgstr "Validigi fontajn URL"
+#: guix/scripts/graph.scm:248
+msgid "the reverse DAG of packages, including implicit inputs"
+msgstr ""
 
-#: guix/scripts/lint.scm:500
-msgid "Report failure to compile a package to a derivation"
-msgstr "Raporti fiaskon kompili pakon al derivaĵo"
+#: guix/scripts/graph.scm:287
+msgid "the DAG of derivations"
+msgstr ""
 
-#: guix/scripts/lint.scm:504
-msgid "Validate package synopses"
-msgstr "Validigi pak-resumojn"
+#: guix/scripts/graph.scm:299
+#, fuzzy
+#| msgid "unsupported signature version: ~a~%"
+msgid "unsupported argument for derivation graph"
+msgstr "nesubtenata subskriba versio: ~a~%"
+
+#: guix/scripts/graph.scm:333
+#, fuzzy
+#| msgid "unsupported nar entry type"
+msgid "unsupported argument for this type of graph"
+msgstr "nesubtenata enig-tipo nar"
+
+#: guix/scripts/graph.scm:347
+#, scheme-format
+msgid "references for '~a' are not known~%"
+msgstr ""
+
+#: guix/scripts/graph.scm:354
+msgid "the DAG of run-time dependencies (store references)"
+msgstr ""
+
+#: guix/scripts/graph.scm:370
+msgid "the DAG of referrers in the store"
+msgstr ""
+
+#: guix/scripts/graph.scm:400
+msgid "the graph of package modules"
+msgstr ""
+
+#: guix/scripts/graph.scm:429
+#, fuzzy, scheme-format
+#| msgid "~a: unknown action~%"
+msgid "~a: unknown node type~%"
+msgstr "~a: nekonata pako~%"
+
+#: guix/scripts/graph.scm:436
+#, fuzzy, scheme-format
+#| msgid "~a: unknown action~%"
+msgid "~a: unknown backend~%"
+msgstr "~a: nekonata pako~%"
+
+#: guix/scripts/graph.scm:440
+#, fuzzy
+#| msgid "The valid values for ACTION are:\n"
+msgid "The available node types are:\n"
+msgstr "La validaj valoroj por AGO estas:\n"
+
+#: guix/scripts/graph.scm:450
+msgid "The available backend types are:\n"
+msgstr ""
 
-#: guix/scripts/lint.scm:529
+#: guix/scripts/graph.scm:477
+#, fuzzy, scheme-format
+#| msgid "download from '~a' failed: ~a, ~s~%"
+msgid "no path from '~a' to '~a'~%"
+msgstr "elŝuto el '~a' fiaskis: ~a, ~s~%"
+
+#. TRANSLATORS: Here 'dot' is the name of a program; it must not be
+#. translated.
+#: guix/scripts/graph.scm:529
 msgid ""
-"Usage: guix lint [OPTION]... [PACKAGE]...\n"
-"Run a set of checkers on the specified package; if none is specified, run the checkers on all packages.\n"
+"Usage: guix graph PACKAGE...\n"
+"Emit a representation of the dependency graph of PACKAGE...\n"
 msgstr ""
-"Uzmaniero: guix lint [MODIFILO]... [PAKO]...\n"
-"Lanĉi aron da kontroliloj por la indikita pako; se neniu estas indikita, lanĉi la konstrolilojn por ĉiuj pakoj.\n"
 
-#: guix/scripts/lint.scm:531
+#: guix/scripts/graph.scm:531
 msgid ""
 "\n"
-"  -c, --checkers=CHECKER1,CHECKER2...\n"
-"                         only run the specificed checkers"
+"  -b, --backend=TYPE     produce a graph with the given backend TYPE"
 msgstr ""
-"\n"
-"  -c, --checkers=KONTROL1,KONTROL2...\n"
-"                         nur lanĉi la indikitajn kontrolilojn"
 
-#: guix/scripts/lint.scm:536
+#: guix/scripts/graph.scm:533
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "  -l, --list-checkers    display the list of available lint checkers"
 msgid ""
 "\n"
-"  -l, --list-checkers    display the list of available lint checkers"
+"      --list-backends    list the available graph backends"
 msgstr ""
 "\n"
 "  -l, --list-checkers    montri la liston de disponeblaj kontroliloj"
 
-#: guix/scripts/lint.scm:556
+#: guix/scripts/graph.scm:535
+msgid ""
+"\n"
+"  -t, --type=TYPE        represent nodes of the given TYPE"
+msgstr ""
+
+#: guix/scripts/graph.scm:537
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "      --list-dead        list dead paths"
+msgid ""
+"\n"
+"      --list-types       list the available graph types"
+msgstr ""
+"\n"
+"      --list-dead        listigi mortajn vojojn"
+
+#: guix/scripts/graph.scm:539
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "  -h, --help             display this help and exit"
+msgid ""
+"\n"
+"      --path             display the shortest path between the given nodes"
+msgstr ""
+"\n"
+"  -h, --help             montri ĉi tiun helpon kaj eliri"
+
+#: guix/scripts/graph.scm:541 guix/scripts/pack.scm:1054
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "  -e, --expression=EXPR  build the package or derivation EXPR evaluates to"
+msgid ""
+"\n"
+"  -e, --expression=EXPR  consider the package EXPR evaluates to"
+msgstr ""
+"\n"
+"  -e, --expression=ESPR  konstrui la pakon aŭ derivaĵon kiu rezultas de ESPR"
+
+#: guix/scripts/graph.scm:543
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "  -s, --system=SYSTEM    attempt to build for SYSTEM--e.g., \"i686-linux\""
+msgid ""
+"\n"
+"  -s, --system=SYSTEM    consider the graph for SYSTEM--e.g., \"i686-linux\""
+msgstr ""
+"\n"
+"  -s, --system=SISTEMO   provi konstrui por SISTEMO--ekz., \"i686-linux\""
+
+#: guix/scripts/graph.scm:606
 #, scheme-format
-msgid "~a: invalid checker~%"
-msgstr "~a: malvalida kontrolilo~%"
+msgid "'--path' option requires exactly two nodes (given ~a)~%"
+msgstr ""
+
+#: guix/scripts/challenge.scm:301
+#, scheme-format
+msgid "  differing file:~%"
+msgid_plural "  differing files:~%"
+msgstr[0] ""
+msgstr[1] ""
+
+#: guix/scripts/challenge.scm:370
+#, fuzzy, scheme-format
+#| msgid "failed to load '~a': ~a~%"
+msgid "  local hash: ~a~%"
+msgstr "fiasko dum ŝargo de '~a': ~a~%"
+
+#: guix/scripts/challenge.scm:371
+#, fuzzy, scheme-format
+#| msgid "no build log for '~a'~%"
+msgid "  no local build for '~a'~%"
+msgstr "neniu konstruita protokolo por '~a'~%"
+
+#: guix/scripts/challenge.scm:373
+#, fuzzy, scheme-format
+#| msgid "~a: ~a~%"
+msgid "  ~50a: ~a~%"
+msgstr "~a: ~a~%"
+
+#: guix/scripts/challenge.scm:381
+#, scheme-format
+msgid "~a contents differ:~%"
+msgstr ""
 
-#: guix/scripts/publish.scm:49
+#: guix/scripts/challenge.scm:385
 #, scheme-format
+msgid "could not challenge '~a': no local build~%"
+msgstr ""
+
+#: guix/scripts/challenge.scm:387
+#, scheme-format
+msgid "could not challenge '~a': no substitutes~%"
+msgstr ""
+
+#: guix/scripts/challenge.scm:390
+#, scheme-format
+msgid "~a contents match:~%"
+msgstr ""
+
+#: guix/scripts/challenge.scm:399
+msgid "~h store items were analyzed:~%"
+msgstr ""
+
+#: guix/scripts/challenge.scm:400
+msgid "  - ~h (~,1f%) were identical~%"
+msgstr ""
+
+#: guix/scripts/challenge.scm:402
+msgid "  - ~h (~,1f%) differed~%"
+msgstr ""
+
+#: guix/scripts/challenge.scm:404
+msgid "  - ~h (~,1f%) were inconclusive~%"
+msgstr ""
+
+#: guix/scripts/challenge.scm:413
 msgid ""
-"Usage: guix publish [OPTION]...\n"
-"Publish ~a over HTTP.\n"
+"Usage: guix challenge [PACKAGE...]\n"
+"Challenge the substitutes for PACKAGE... provided by one or more servers.\n"
 msgstr ""
-"Uzmaniero: guix publish [MODIFILO]...\n"
-"Publikigas ~a sur HTTP.\n"
 
-#: guix/scripts/publish.scm:51
+#: guix/scripts/challenge.scm:415
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "      --max-silent-time=SECONDS\n"
+#| "                         mark the build as failed after SECONDS of silence"
 msgid ""
 "\n"
-"  -p, --port=PORT        listen on PORT"
+"      --substitute-urls=URLS\n"
+"                         compare build results with those at URLS"
+msgstr ""
+"\n"
+"      --max-silent-time=SEKUNDOJ\n"
+"                         marki la konstruon kiel fiaskintan post SEKUNDOJ da silento"
+
+#: guix/scripts/challenge.scm:418
+msgid ""
+"\n"
+"  -v, --verbose          show details about successful comparisons"
+msgstr ""
+
+#: guix/scripts/challenge.scm:420
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "      --share=SPEC       for 'vm', share host file system according to SPEC"
+msgid ""
+"\n"
+"      --diff=MODE        show differences according to MODE"
+msgstr ""
+"\n"
+"      --share=SPEC       por 'vm', kundividi gastigan dosiersistemon akorde al SPEC"
+
+#: guix/scripts/challenge.scm:449
+#, fuzzy, scheme-format
+#| msgid "~a: unknown action~%"
+msgid "~a: unknown diff mode~%"
+msgstr "~a: nekonata pako~%"
+
+#: guix/scripts/copy.scm:61
+#, fuzzy, scheme-format
+#| msgid "~a: invalid number~%"
+msgid "~a: invalid TCP port number~%"
+msgstr "~a: malvalida numero~%"
+
+#: guix/scripts/copy.scm:63
+#, fuzzy, scheme-format
+#| msgid "~a: invalid checker~%"
+msgid "~a: invalid SSH specification~%"
+msgstr "~a: malvalida kontrolilo~%"
+
+#: guix/scripts/copy.scm:109
+#, fuzzy
+#| msgid ""
+#| "Usage: guix gc [OPTION]... PATHS...\n"
+#| "Invoke the garbage collector.\n"
+msgid ""
+"Usage: guix copy [OPTION]... ITEMS...\n"
+"Copy ITEMS to or from the specified host over SSH.\n"
+msgstr ""
+"Uzmaniero: guix gc [MODIFILO]... VOJOJ...\n"
+"Voki la rubaĵ-kolektanton.\n"
+
+#: guix/scripts/copy.scm:111
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "  -p, --port=PORT        listen on PORT"
+msgid ""
+"\n"
+"      --to=HOST          send ITEMS to HOST"
 msgstr ""
 "\n"
 "  -p, --port=PORDO       aŭskulti ĉe PORDOn"
 
-#: guix/scripts/publish.scm:53
+#: guix/scripts/copy.scm:113
 msgid ""
 "\n"
-"  -r, --repl[=PORT]      spawn REPL server on PORT"
+"      --from=HOST        receive ITEMS from HOST"
+msgstr ""
+
+#: guix/scripts/copy.scm:192
+#, scheme-format
+msgid "use '--to' or '--from'~%"
+msgstr ""
+
+#: guix/scripts/pack.scm:104
+#, fuzzy, scheme-format
+#| msgid "~a: package not found~%"
+msgid "~a: compressor not found~%"
+msgstr "~a: pako ne trovita~%"
+
+#: guix/scripts/pack.scm:309
+#, scheme-format
+msgid "entry point not supported in the '~a' format~%"
+msgstr ""
+
+#: guix/scripts/pack.scm:690
+#, scheme-format
+msgid ""
+"cross-compilation not implemented here;\n"
+"please email '~a'~%"
 msgstr ""
+
+#: guix/scripts/pack.scm:935
+msgid "The supported formats for 'guix pack' are:"
+msgstr ""
+
+#: guix/scripts/pack.scm:937
+msgid ""
 "\n"
-"  -r, --repl[=PORDO]     renaskigi REPL-servilo ĉe PORDO"
+"  tarball       Self-contained tarball, ready to run on another machine"
+msgstr ""
+
+#: guix/scripts/pack.scm:939
+msgid ""
+"\n"
+"  squashfs      Squashfs image suitable for Singularity"
+msgstr ""
+
+#: guix/scripts/pack.scm:941
+msgid ""
+"\n"
+"  docker        Tarball ready for 'docker load'"
+msgstr ""
+
+#: guix/scripts/pack.scm:1010
+#, fuzzy, scheme-format
+#| msgid "invalid symlink tokens"
+msgid "~a: invalid symlink specification~%"
+msgstr "malvalidaj simbol-ligaj ĵetonoj"
+
+#: guix/scripts/pack.scm:1024
+#, fuzzy, scheme-format
+#| msgid "unsupported file type"
+msgid "~a: unsupported profile name~%"
+msgstr "nesubtenata dosier-tipo"
+
+#: guix/scripts/pack.scm:1042
+#, fuzzy
+#| msgid ""
+#| "Usage: guix package [OPTION]... PACKAGES...\n"
+#| "Install, remove, or upgrade PACKAGES in a single transaction.\n"
+msgid ""
+"Usage: guix pack [OPTION]... PACKAGE...\n"
+"Create a bundle of PACKAGE.\n"
+msgstr ""
+"Uzmaniero: guix package [MODIFILO]... PAKOJ...\n"
+"Instalas, forigas, aŭ ĝisdatigas PAKOJn en ununura ago.\n"
+
+#: guix/scripts/pack.scm:1048
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "  -f, --format=FMT       write the hash in the given format"
+msgid ""
+"\n"
+"  -f, --format=FORMAT    build a pack in the given FORMAT"
+msgstr ""
+"\n"
+"  -f, --format=FRM       skribi la haketon laŭ la indikita formo"
+
+#: guix/scripts/pack.scm:1050
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "      --list-dead        list dead paths"
+msgid ""
+"\n"
+"      --list-formats     list the formats available"
+msgstr ""
+"\n"
+"      --list-dead        listigi mortajn vojojn"
+
+#: guix/scripts/pack.scm:1052
+msgid ""
+"\n"
+"  -R, --relocatable      produce relocatable executables"
+msgstr ""
+
+#: guix/scripts/pack.scm:1060
+msgid ""
+"\n"
+"  -C, --compression=TOOL compress using TOOL--e.g., \"lzip\""
+msgstr ""
+
+#: guix/scripts/pack.scm:1062
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "      --share=SPEC       for 'vm', share host file system according to SPEC"
+msgid ""
+"\n"
+"  -S, --symlink=SPEC     create symlinks to the profile according to SPEC"
+msgstr ""
+"\n"
+"      --share=SPEC       por 'vm', kundividi gastigan dosiersistemon akorde al SPEC"
+
+#: guix/scripts/pack.scm:1064
+msgid ""
+"\n"
+"  -m, --manifest=FILE    create a pack with the manifest from FILE"
+msgstr ""
+
+#: guix/scripts/pack.scm:1066
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "      --with-source=SOURCE\n"
+#| "                         use SOURCE when building the corresponding package"
+msgid ""
+"\n"
+"      --entry-point=PROGRAM\n"
+"                         use PROGRAM as the entry point of the pack"
+msgstr ""
+"\n"
+"      --with-source=FONTO\n"
+"                         uzi FONTOn dum konstruo de la koresponda pako"
+
+#: guix/scripts/pack.scm:1071
+msgid ""
+"\n"
+"      --localstatedir    include /var/guix in the resulting pack"
+msgstr ""
+
+#: guix/scripts/pack.scm:1073
+msgid ""
+"\n"
+"      --profile-name=NAME\n"
+"                         populate /var/guix/profiles/.../NAME"
+msgstr ""
+
+#: guix/scripts/pack.scm:1079
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "  -d, --derivations      return the derivation paths of the given packages"
+msgid ""
+"\n"
+"  -d, --derivation       return the derivation of the pack"
+msgstr ""
+"\n"
+"  -d, --derivations      liveri la derivaĵajn vojojn de la indikitaj pakoj"
 
-#: guix/scripts/publish.scm:235
+#: guix/scripts/pack.scm:1083
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "      --bootstrap        use the bootstrap Guile to build the profile"
+msgid ""
+"\n"
+"      --bootstrap        use the bootstrap binaries to build the pack"
+msgstr ""
+"\n"
+"      --bootstrap        uzi la praŝargilon Guile por konstrui la profilon"
+
+#: guix/scripts/pack.scm:1137
 #, scheme-format
-msgid "~A: extraneuous argument~%"
-msgstr "~A: fremda argumento~%"
+msgid "could not determine provenance of package ~a~%"
+msgstr ""
 
-#: guix/scripts/publish.scm:239
+#: guix/scripts/pack.scm:1151
 #, scheme-format
-msgid "publishing ~a on port ~d~%"
-msgstr "ni publikigas ~a sur pordo ~d~%"
+msgid "both a manifest and a package list were given~%"
+msgstr ""
+
+#: guix/scripts/pack.scm:1210
+#, fuzzy, scheme-format
+#| msgid "~A: unknown package~%"
+msgid "~a: unknown pack format~%"
+msgstr "~A: nekonata pako~%"
+
+#: guix/scripts/pack.scm:1234
+#, scheme-format
+msgid "no packages specified; building an empty pack~%"
+msgstr ""
+
+#: guix/scripts/pack.scm:1238
+#, scheme-format
+msgid "Singularity requires you to provide a shell~%"
+msgstr ""
+
+#: guix/scripts/pack.scm:1239
+msgid "Add @code{bash} or @code{bash-minimal} to your package list."
+msgstr ""
+
+#: guix/scripts/weather.scm:90
+msgid "computing ~h package derivations for ~a...~%"
+msgstr ""
+
+#: guix/scripts/weather.scm:178
+#, fuzzy
+#| msgid "looking for the latest release of GNU ~a..."
+msgid "looking for ~h store items on ~a...~%"
+msgstr "ni serĉas la lastan eldonon de GNU ~a..."
+
+#: guix/scripts/weather.scm:193
+msgid "  ~,1f% substitutes available (~h out of ~h)~%"
+msgstr ""
+
+#: guix/scripts/weather.scm:199
+#, fuzzy, scheme-format
+#| msgid "unknown unit: ~a~%"
+msgid "  unknown substitute sizes~%"
+msgstr "nekonata unuo: ~a~%"
+
+#: guix/scripts/weather.scm:202
+msgid "  ~,1h MiB of nars (compressed)~%"
+msgstr ""
+
+#: guix/scripts/weather.scm:203
+msgid "  at least ~,1h MiB of nars (compressed)~%"
+msgstr ""
+
+#: guix/scripts/weather.scm:205
+msgid "  ~,1h MiB on disk (uncompressed)~%"
+msgstr ""
+
+#: guix/scripts/weather.scm:207
+msgid "  ~,3h seconds per request (~,1h seconds in total)~%"
+msgstr ""
+
+#: guix/scripts/weather.scm:209
+msgid "  ~,1h requests per second~%"
+msgstr ""
+
+#: guix/scripts/weather.scm:215
+#, scheme-format
+msgid "  (continuous integration information unavailable)~%"
+msgstr ""
+
+#: guix/scripts/weather.scm:218
+#, scheme-format
+msgid "  '~a' returned ~a (~s)~%"
+msgstr ""
+
+#: guix/scripts/weather.scm:235
+msgid "  ~,1f% (~h out of ~h) of the missing items are queued~%"
+msgstr ""
+
+#: guix/scripts/weather.scm:241
+msgid "  at least ~h queued builds~%"
+msgstr ""
+
+#: guix/scripts/weather.scm:242
+msgid "  ~h queued builds~%"
+msgstr ""
+
+#: guix/scripts/weather.scm:245
+#, scheme-format
+msgid "      ~a: ~a (~0,1f%)~%"
+msgstr ""
+
+#: guix/scripts/weather.scm:251
+#, scheme-format
+msgid "  build rate: ~1,2f builds per hour~%"
+msgstr ""
+
+#: guix/scripts/weather.scm:255
+#, scheme-format
+msgid "      ~a: ~,2f builds per hour~%"
+msgstr ""
+
+#: guix/scripts/weather.scm:263
+#, scheme-format
+msgid "Substitutes are missing for the following items:~%"
+msgstr ""
+
+#: guix/scripts/weather.scm:276
+msgid ""
+"Usage: guix weather [OPTIONS] [PACKAGES ...]\n"
+"Report the availability of substitutes.\n"
+msgstr ""
+
+#: guix/scripts/weather.scm:278
+msgid ""
+"\n"
+"      --substitute-urls=URLS\n"
+"                         check for available substitutes at URLS"
+msgstr ""
+
+#: guix/scripts/weather.scm:281
+msgid ""
+"\n"
+"  -m, --manifest=MANIFEST\n"
+"                         look up substitutes for packages specified in MANIFEST"
+msgstr ""
+
+#: guix/scripts/weather.scm:284
+msgid ""
+"\n"
+"  -c, --coverage[=COUNT]\n"
+"                         show substitute coverage for packages with at least\n"
+"                         COUNT dependents"
+msgstr ""
+
+#: guix/scripts/weather.scm:288
+msgid ""
+"\n"
+"      --display-missing  display the list of missing substitutes"
+msgstr ""
+
+#: guix/scripts/weather.scm:290
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "  -s, --system=SYSTEM    attempt to build for SYSTEM--e.g., \"i686-linux\""
+msgid ""
+"\n"
+"  -s, --system=SYSTEM    consider substitutes for SYSTEM--e.g., \"i686-linux\""
+msgstr ""
+"\n"
+"  -s, --system=SISTEMO   provi konstrui por SISTEMO--ekz., \"i686-linux\""
+
+#: guix/scripts/weather.scm:314
+#, fuzzy, scheme-format
+#| msgid "~a: invalid number~%"
+msgid "~a: invalid URL~%"
+msgstr "~a: malvalida numero~%"
+
+#: guix/scripts/weather.scm:447
+#, scheme-format
+msgid "The following ~a package is missing from '~a' for '~a':~%"
+msgid_plural "The following ~a packages are missing from '~a' for '~a':~%"
+msgstr[0] ""
+msgstr[1] ""
+
+#: guix/scripts/weather.scm:453
+#, scheme-format
+msgid "~a package is missing from '~a' for '~a':~%"
+msgid_plural "~a packages are missing from '~a' for '~a', among which:~%"
+msgstr[0] ""
+msgstr[1] ""
+
+#: guix/scripts/describe.scm:52
+#, fuzzy
+#| msgid "The valid values for ACTION are:\n"
+msgid "The available formats are:\n"
+msgstr "La validaj valoroj por AGO estas:\n"
+
+#: guix/scripts/describe.scm:63
+#, fuzzy, scheme-format
+#| msgid "unsupported hash format: ~a~%"
+msgid "~a: unsupported output format~%"
+msgstr "nesubtenata haket-formo: ~a~%"
+
+#: guix/scripts/describe.scm:86
+msgid ""
+"Usage: guix describe [OPTION]...\n"
+"Display information about the channels currently in use.\n"
+msgstr ""
+
+#: guix/scripts/describe.scm:88
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "  -f, --format=FMT       write the hash in the given format"
+msgid ""
+"\n"
+"  -f, --format=FORMAT    display information in the given FORMAT"
+msgstr ""
+"\n"
+"  -f, --format=FRM       skribi la haketon laŭ la indikita formo"
+
+#: guix/scripts/describe.scm:90
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "  -l, --list-checkers    display the list of available lint checkers"
+msgid ""
+"\n"
+"      --list-formats     display available formats"
+msgstr ""
+"\n"
+"  -l, --list-checkers    montri la liston de disponeblaj kontroliloj"
+
+#: guix/scripts/describe.scm:92
+msgid ""
+"\n"
+"  -p, --profile=PROFILE  display information about PROFILE"
+msgstr ""
+
+#: guix/scripts/describe.scm:111
+#, scheme-format
+msgid "~%;; warning: GUIX_PACKAGE_PATH=\"~a\"~%"
+msgstr ""
+
+#: guix/scripts/describe.scm:114
+#, scheme-format
+msgid "'GUIX_PACKAGE_PATH' is set but it is not captured~%"
+msgstr ""
+
+#: guix/scripts/describe.scm:170
+#, fuzzy, scheme-format
+#| msgid "failed to create derivation: ~s~%"
+msgid "failed to determine origin~%"
+msgstr "fiasko dum kreo de derivaĵo: ~s~%"
+
+#: guix/scripts/describe.scm:171
+#, scheme-format
+msgid ""
+"Perhaps this\n"
+"@command{guix} command was not obtained with @command{guix pull}?  Its version\n"
+"string is ~a.~%"
+msgstr ""
+
+#: guix/scripts/describe.scm:181
+#, scheme-format
+msgid "Git checkout:~%"
+msgstr ""
+
+#: guix/scripts/describe.scm:182
+#, fuzzy, scheme-format
+#| msgid "~a: error: ~a~%"
+msgid "  repository: ~a~%"
+msgstr "~a: eraro: ~a~%"
+
+#: guix/scripts/describe.scm:183
+#, fuzzy, scheme-format
+#| msgid "~a: ~a~%"
+msgid "  branch: ~a~%"
+msgstr "~a: ~a~%"
 
-#: guix/gnu-maintenance.scm:447
+#: guix/scripts/describe.scm:184
 #, scheme-format
-msgid "signature verification failed for `~a'~%"
+msgid "  commit: ~a~%"
+msgstr ""
+
+#: guix/scripts/describe.scm:250
+#, scheme-format
+msgid "    repository URL: ~a~%"
+msgstr ""
+
+#: guix/scripts/describe.scm:252
+#, scheme-format
+msgid "    branch: ~a~%"
+msgstr ""
+
+#: guix/scripts/describe.scm:253
+#, scheme-format
+msgid "    commit: ~a~%"
+msgstr ""
+
+#: guix/scripts/processes.scm:211
+msgid ""
+"Usage: guix processes\n"
+"List the current Guix sessions and their processes."
+msgstr ""
+
+#: guix/scripts/deploy.scm:49
+msgid ""
+"Usage: guix deploy [OPTION] FILE...\n"
+"Perform the deployment specified by FILE.\n"
+msgstr ""
+
+#: guix/scripts/deploy.scm:106
+#, fuzzy, scheme-format
+#| msgid "The following package will be removed:~%~{~a~%~}~%"
+#| msgid_plural "The following packages will be removed:~%~{~a~%~}~%"
+msgid "The following ~d machine will be deployed:~%"
+msgid_plural "The following ~d machines will be deployed:~%"
+msgstr[0] "La jena pako estos forigata:~%~{~a~%~}~%"
+msgstr[1] "La jenaj pakoj estos forigataj:~%~{~a~%~}~%"
+
+#: guix/scripts/deploy.scm:120
+#, fuzzy, scheme-format
+#| msgid "deleting ~a~%"
+msgid "deploying to ~a...~%"
+msgstr "ni forigas ~a~%"
+
+#: guix/scripts/deploy.scm:124
+#, fuzzy, scheme-format
+#| msgid "failed to load '~a': ~a~%"
+msgid "failed to deploy ~a: ~a~%"
+msgstr "fiasko dum ŝargo de '~a': ~a~%"
+
+#: guix/scripts/deploy.scm:129
+#, fuzzy, scheme-format
+#| msgid "unpacking '~a'...~%"
+msgid "rolling back ~a...~%"
+msgstr "malpakado de '~a'...~%"
+
+#: guix/scripts/deploy.scm:135
+#, fuzzy, scheme-format
+#| msgid "updated ~a successfully deployed under `~a'~%"
+msgid "successfully deployed ~a~%"
+msgstr "ni ĝisdatigis ~a sukcese, liverita sur '~a'~%"
+
+#: guix/gexp.scm:413
+#, scheme-format
+msgid "resolving '~a' relative to current directory~%"
+msgstr ""
+
+#: guix/gnu-maintenance.scm:699
+msgid "Updater for GNU packages"
+msgstr ""
+
+#: guix/gnu-maintenance.scm:708
+msgid "Updater for GNU packages only available via FTP"
+msgstr ""
+
+#: guix/gnu-maintenance.scm:717
+msgid "Updater for packages hosted on savannah.gnu.org"
+msgstr ""
+
+#: guix/gnu-maintenance.scm:724
+msgid "Updater for X.org packages"
+msgstr ""
+
+#: guix/gnu-maintenance.scm:731
+msgid "Updater for packages hosted on kernel.org"
+msgstr ""
+
+#: guix/scripts/container.scm:27
+msgid ""
+"Usage: guix container ACTION ARGS...\n"
+"Build and manipulate Linux containers.\n"
+msgstr ""
+
+#: guix/scripts/container.scm:32
+msgid "   exec            execute a command inside of an existing container\n"
+msgstr ""
+
+#: guix/scripts/container.scm:58
+#, fuzzy, scheme-format
+#| msgid "guix import: missing importer name~%"
+msgid "guix container: missing action~%"
+msgstr "guix import: mankas importila nomo~%"
+
+#: guix/scripts/container.scm:68
+#, fuzzy, scheme-format
+#| msgid "guix import: invalid importer~%"
+msgid "guix container: invalid action~%"
+msgstr "guix importo: malvalida importilo~%"
+
+#: guix/scripts/container/exec.scm:40
+#, fuzzy
+#| msgid ""
+#| "Usage: guix COMMAND ARGS...\n"
+#| "Run COMMAND with ARGS.\n"
+msgid ""
+"Usage: guix container exec PID COMMAND [ARGS...]\n"
+"Execute COMMAND within the container process PID.\n"
+msgstr ""
+"Uzmaniero: guix KOMANDO ARGj...\n"
+"Lanĉas KOMANDOn kun ARGj.\n"
+
+#: guix/scripts/container/exec.scm:69
+#, scheme-format
+msgid "~a: extraneous argument~%"
+msgstr "~a: fremda argumento~%"
+
+#: guix/scripts/container/exec.scm:87
+#, fuzzy, scheme-format
+#| msgid "no configuration file specified~%"
+msgid "no pid specified~%"
+msgstr "neniu agorda dosiero estis indikata~%"
+
+#: guix/scripts/container/exec.scm:90
+#, fuzzy, scheme-format
+#| msgid "no configuration file specified~%"
+msgid "no command specified~%"
+msgstr "neniu agorda dosiero estis indikata~%"
+
+#: guix/scripts/container/exec.scm:93
+#, scheme-format
+msgid "no such process ~d~%"
+msgstr ""
+
+#: guix/scripts/container/exec.scm:105
+#, scheme-format
+msgid "exec failed with status ~d~%"
+msgstr ""
+
+#: guix/upstream.scm:337
+#, fuzzy, scheme-format
+#| msgid "found valid signature for '~a'~%"
+msgid "failed to download detached signature from ~a~%"
+msgstr "ni trovis validan subskribon por '~a'~%"
+
+#: guix/upstream.scm:341
+#, fuzzy, scheme-format
+#| msgid "signature verification failed for `~a'~%"
+msgid "signature verification failed for '~a' (key: ~a)~%"
 msgstr "subskriba kontrolo fiaskis por '~a'~%"
 
-#: guix/gnu-maintenance.scm:449
+#: guix/upstream.scm:345
+#, fuzzy, scheme-format
+#| msgid "cannot find public key for secret key '~a'~%"
+msgid "missing public key ~a for '~a'~%"
+msgstr "ne eblas trovi publikan ŝlosilon por la sekreta '~a'~%"
+
+#: guix/upstream.scm:421
 #, scheme-format
-msgid "(could be because the public key is not in your keyring)~%"
-msgstr "(eble ĉar la publika ŝlosilo ne estas en via ŝlosilringo)~%"
+msgid "cannot download for this method: ~s"
+msgstr ""
 
-#: guix/gnu-maintenance.scm:524
+#: guix/upstream.scm:486
 #, scheme-format
 msgid "~a: could not locate source file"
 msgstr "~a: ne eblis trovi fontan dosieron"
 
-#: guix/gnu-maintenance.scm:529
-#, scheme-format
-msgid "~a: ~a: no `version' field in source; skipping~%"
+#: guix/upstream.scm:490
+#, fuzzy, scheme-format
+#| msgid "~a: ~a: no `version' field in source; skipping~%"
+msgid "~a: no `version' field in source; skipping~%"
 msgstr "~a: ~a: neniu kampo 'version' en la fonto; ni saltas~%"
 
-#: guix/ui.scm:142 guix/ui.scm:159
+#: guix/ui.scm:161
+#, scheme-format
+msgid "error: ~a: unbound variable"
+msgstr ""
+
+#: guix/ui.scm:261
+msgid "entering debugger; type ',bt' for a backtrace\n"
+msgstr ""
+
+#: guix/ui.scm:318
+msgid "hint: "
+msgstr ""
+
+#: guix/ui.scm:335
+msgid "Did you forget a @code{use-modules} form?"
+msgstr ""
+
+#: guix/ui.scm:337
+#, scheme-format
+msgid "Did you forget @code{(use-modules ~a)}?"
+msgstr ""
+
+#: guix/ui.scm:347
+#, scheme-format
+msgid ""
+"File @file{~a} should probably start with:\n"
+"\n"
+"@example\n"
+"(define-module ~a)\n"
+"@end example"
+msgstr ""
+
+#: guix/ui.scm:361
+#, scheme-format
+msgid "module name ~a does not match file name '~a'~%"
+msgstr ""
+
+#: guix/ui.scm:365
+#, scheme-format
+msgid "~a: file is empty~%"
+msgstr ""
+
+#: guix/ui.scm:376 guix/ui.scm:424 guix/ui.scm:432 guix/ui.scm:436
 #, scheme-format
 msgid "failed to load '~a': ~a~%"
 msgstr "fiasko dum ŝargo de '~a': ~a~%"
 
-#: guix/ui.scm:145
+#: guix/ui.scm:383
 #, scheme-format
-msgid "~a: error: ~a~%"
-msgstr "~a: eraro: ~a~%"
+msgid "~amissing closing parenthesis~%"
+msgstr ""
+
+#: guix/ui.scm:388
+#, fuzzy, scheme-format
+#| msgid "~a: ~a~%"
+msgid "~s: ~a~%"
+msgstr "~a: ~a~%"
 
-#: guix/ui.scm:149 guix/ui.scm:165
+#: guix/ui.scm:404 guix/ui.scm:897
+#, scheme-format
+msgid "exception thrown: ~s~%"
+msgstr ""
+
+#: guix/ui.scm:408 guix/ui.scm:445
 #, scheme-format
 msgid "failed to load '~a':~%"
 msgstr "fiasko dum ŝargo de '~a':~%"
 
-#: guix/ui.scm:162
-#, scheme-format
-msgid "~a: warning: ~a~%"
-msgstr "~a: averto: ~a~%"
+#: guix/ui.scm:442
+#, fuzzy, scheme-format
+#| msgid "failed to load '~a': ~a~%"
+msgid "failed to load '~a': exception thrown: ~s~%"
+msgstr "fiasko dum ŝargo de '~a': ~a~%"
 
-#: guix/ui.scm:174
-#, scheme-format
-msgid "failed to install locale: ~a~%"
-msgstr "fiasko dum instalo de lokaĵaro: ~a~%"
+#: guix/ui.scm:490
+msgid ""
+"Consider installing the @code{glibc-utf8-locales} or\n"
+"@code{glibc-locales} package and defining @code{GUIX_LOCPATH}, along these\n"
+"lines:\n"
+"\n"
+"@example\n"
+"guix install glibc-utf8-locales\n"
+"export GUIX_LOCPATH=\"$HOME/.guix-profile/lib/locale\"\n"
+"@end example\n"
+"\n"
+"See the \"Application Setup\" section in the manual, for more info.\n"
+msgstr ""
+
+#. TRANSLATORS: Translate "(C)" to the copyright symbol
+#. (C-in-a-circle), if this symbol is available in the user's
+#. locale.  Otherwise, do not translate "(C)"; leave it as-is.  */
+#: guix/ui.scm:532
+msgid "(C)"
+msgstr ""
+
+#: guix/ui.scm:533
+msgid "the Guix authors\n"
+msgstr ""
 
-#: guix/ui.scm:193
+#: guix/ui.scm:534
+#, fuzzy
+#| msgid ""
+#| "Copyright (C) 2015 the Guix authors\n"
+#| "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\n"
+#| "This is free software: you are free to change and redistribute it.\n"
+#| "There is NO WARRANTY, to the extent permitted by law.\n"
 msgid ""
-"Copyright (C) 2015 the Guix authors\n"
 "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\n"
 "This is free software: you are free to change and redistribute it.\n"
 "There is NO WARRANTY, to the extent permitted by law.\n"
@@ -1353,7 +5149,11 @@ msgstr ""
 "Tio ĉi estas libera programaro: vi estas libera por modifi kaj redisdoni ĝin.\n"
 "Estas NENIU GARANTIO, plejamplekse permesate de leĝoj.\n"
 
-#: guix/ui.scm:201
+#. TRANSLATORS: The placeholder indicates the bug-reporting address for this
+#. package.  Please add another line saying "Report translation bugs to
+#. ...\n" with the address for translation bugs (typically your translation
+#. team's web or email address).
+#: guix/ui.scm:546
 #, scheme-format
 msgid ""
 "\n"
@@ -1362,7 +5162,7 @@ msgstr ""
 "\n"
 "Raportu program-misojn al: ~a."
 
-#: guix/ui.scm:203
+#: guix/ui.scm:548
 #, scheme-format
 msgid ""
 "\n"
@@ -1371,202 +5171,395 @@ msgstr ""
 "\n"
 "hejm-paĝo de ~a: <~a>"
 
-#: guix/ui.scm:205
+#: guix/ui.scm:550
+#, fuzzy, scheme-format
+#| msgid ""
+#| "\n"
+#| "General help using GNU software: <http://www.gnu.org/gethelp/>"
 msgid ""
 "\n"
-"General help using GNU software: <http://www.gnu.org/gethelp/>"
+"General help using Guix and GNU software: <~a>"
 msgstr ""
 "\n"
 "Ĝenerala helpo por uzi programaron de GNU: <http://www.gnu.org/gethelp/>"
 
-#: guix/ui.scm:227
+#: guix/ui.scm:606
+#, fuzzy, scheme-format
+#| msgid "signature is not a valid s-expression: ~s~%"
+msgid "'~a' is not a valid regular expression: ~a~%"
+msgstr "subskribo ne estas valida s-esprimo: ~s~%"
+
+#: guix/ui.scm:612
 #, scheme-format
 msgid "~a: invalid number~%"
 msgstr "~a: malvalida numero~%"
 
-#: guix/ui.scm:244
+#: guix/ui.scm:630
 #, scheme-format
 msgid "invalid number: ~a~%"
 msgstr "malvalida numero: ~a~%"
 
-#: guix/ui.scm:267
+#: guix/ui.scm:653
 #, scheme-format
 msgid "unknown unit: ~a~%"
 msgstr "nekonata unuo: ~a~%"
 
-#: guix/ui.scm:278
+#: guix/ui.scm:668
+#, scheme-format
+msgid ""
+"You cannot have two different versions\n"
+"or variants of @code{~a} in the same profile."
+msgstr ""
+
+#: guix/ui.scm:671
+#, scheme-format
+msgid ""
+"Try upgrading both @code{~a} and @code{~a},\n"
+"or remove one of them from the profile."
+msgstr ""
+
+#: guix/ui.scm:707
 #, scheme-format
 msgid "~a:~a:~a: package `~a' has an invalid input: ~s~%"
 msgstr "~a:~a:~a: pako '~a' havas malvalidan enigon: ~s~%"
 
-#: guix/ui.scm:285
+#: guix/ui.scm:714
 #, scheme-format
 msgid "~a: ~a: build system `~a' does not support cross builds~%"
 msgstr "~a: ~a: konstrui sistemon '~a' ne subtenas crucajn konstruojn~%"
 
-#: guix/ui.scm:290
+#: guix/ui.scm:720
+#, fuzzy, scheme-format
+#| msgid "signature is not a valid s-expression: ~s~%"
+msgid "~s: invalid G-expression input~%"
+msgstr "subskribo ne estas valida s-esprimo: ~s~%"
+
+#: guix/ui.scm:723
 #, scheme-format
 msgid "profile '~a' does not exist~%"
 msgstr "profilo '~a' ne ekzistas~%"
 
-#: guix/ui.scm:293
+#: guix/ui.scm:726
 #, scheme-format
 msgid "generation ~a of profile '~a' does not exist~%"
 msgstr "generacio ~a de la profilo '~a' ne ekzistas~%"
 
-#: guix/ui.scm:300
+#: guix/ui.scm:731
+#, scheme-format
+msgid "package '~a~@[@~a~]~@[:~a~]' not found in profile~%"
+msgstr ""
+
+#: guix/ui.scm:743
+#, scheme-format
+msgid "   ... propagated from ~a@~a~%"
+msgstr ""
+
+#: guix/ui.scm:753
+#, scheme-format
+msgid "profile contains conflicting entries for ~a~a~%"
+msgstr ""
+
+#: guix/ui.scm:756
+#, scheme-format
+msgid "  first entry: ~a@~a~a ~a~%"
+msgstr ""
+
+#: guix/ui.scm:762
+#, scheme-format
+msgid "  second entry: ~a@~a~a ~a~%"
+msgstr ""
+
+#: guix/ui.scm:774
 #, scheme-format
 msgid "corrupt input while restoring '~a' from ~s~%"
 msgstr "difektita enigo dum restarigo de '~a' el ~s~%"
 
-#: guix/ui.scm:302
+#: guix/ui.scm:776
 #, scheme-format
 msgid "corrupt input while restoring archive from ~s~%"
 msgstr "difektita enigo dum restarigo de arĥivo el ~s~%"
 
-#: guix/ui.scm:305
+#: guix/ui.scm:779
 #, scheme-format
 msgid "failed to connect to `~a': ~a~%"
 msgstr "fiasko dum konekto al '~a': ~a~%"
 
-#: guix/ui.scm:310
-#, scheme-format
-msgid "build failed: ~a~%"
-msgstr "konstruo fiakis: ~a~%"
-
-#: guix/ui.scm:313
+#: guix/ui.scm:787
 #, scheme-format
 msgid "reference to invalid output '~a' of derivation '~a'~%"
 msgstr "referenco al malvalida eligo '~a' de la derivaĵo '~a'~%"
 
-#: guix/ui.scm:324
+#: guix/ui.scm:791
 #, scheme-format
-msgid "~a: ~a~%"
-msgstr "~a: ~a~%"
+msgid "file '~a' could not be found in these directories:~{ ~a~}~%"
+msgstr ""
 
-#: guix/ui.scm:343
+#: guix/ui.scm:796
+#, scheme-format
+msgid "program exited~@[ with non-zero exit status ~a~]~@[ terminated by signal ~a~]~@[ stopped by signal ~a~]: ~s~%"
+msgstr ""
+
+#: guix/ui.scm:876
 #, scheme-format
 msgid "failed to read expression ~s: ~s~%"
 msgstr "fiasko dum lego de esprimo ~s: ~s~%"
 
-#: guix/ui.scm:349
-#, scheme-format
-msgid "failed to evaluate expression `~a': ~s~%"
+#: guix/ui.scm:882
+#, fuzzy, scheme-format
+#| msgid "failed to evaluate expression `~a': ~s~%"
+msgid "failed to evaluate expression '~a':~%"
 msgstr "fiasko dum analizo de esprimo '~a': ~a~%"
 
-#: guix/ui.scm:358
+#: guix/ui.scm:885
+#, fuzzy, scheme-format
+#| msgid "~a: error: ~a~%"
+msgid "syntax error: ~a~%"
+msgstr "~a: eraro: ~a~%"
+
+#: guix/ui.scm:909
 #, scheme-format
 msgid "expression ~s does not evaluate to a package~%"
 msgstr "la esprimo ~s ne rezultas pakon~%"
 
-#: guix/ui.scm:410
+#: guix/ui.scm:936
+msgid "at least ~,1h MB needed but only ~,1h MB available in ~a~%"
+msgstr ""
+
+#: guix/ui.scm:1045
 #, scheme-format
 msgid "~:[The following derivation would be built:~%~{   ~a~%~}~;~]"
 msgid_plural "~:[The following derivations would be built:~%~{   ~a~%~}~;~]"
 msgstr[0] "~:[La jena derivo estus konstruata:~%~{   ~a~%~}~;~]"
 msgstr[1] "~:[La jenaj derivoj estus konstruataj:~%~{   ~a~%~}~;~]"
 
-#: guix/ui.scm:415
+#. TRANSLATORS: "MB" is for "megabyte"; it should be
+#. translated to the corresponding abbreviation.
+#: guix/ui.scm:1054
+#, fuzzy
+#| msgid "~:[The following file would be downloaded:~%~{   ~a~%~}~;~]"
+#| msgid_plural "~:[The following files would be downloaded:~%~{   ~a~%~}~;~]"
+msgid "~:[~,1h MB would be downloaded:~%~{   ~a~%~}~;~]"
+msgstr "~:[La jena derivo estus elŝutata:~%~{   ~a~%~}~;~]"
+
+#: guix/ui.scm:1060
 #, scheme-format
 msgid "~:[The following file would be downloaded:~%~{   ~a~%~}~;~]"
 msgid_plural "~:[The following files would be downloaded:~%~{   ~a~%~}~;~]"
 msgstr[0] "~:[La jena derivo estus elŝutata:~%~{   ~a~%~}~;~]"
 msgstr[1] "~:[La jenaj derivoj estus elŝutataj:~%~{   ~a~%~}~;~]"
 
-#: guix/ui.scm:421
+#: guix/ui.scm:1067
+#, fuzzy, scheme-format
+#| msgid "~:[The following file would be downloaded:~%~{   ~a~%~}~;~]"
+#| msgid_plural "~:[The following files would be downloaded:~%~{   ~a~%~}~;~]"
+msgid "~:[The following graft would be made:~%~{   ~a~%~}~;~]"
+msgid_plural "~:[The following grafts would be made:~%~{   ~a~%~}~;~]"
+msgstr[0] "~:[La jena derivo estus elŝutata:~%~{   ~a~%~}~;~]"
+msgstr[1] "~:[La jenaj derivoj estus elŝutataj:~%~{   ~a~%~}~;~]"
+
+#: guix/ui.scm:1072
+#, fuzzy, scheme-format
+#| msgid "~:[The following derivation would be built:~%~{   ~a~%~}~;~]"
+#| msgid_plural "~:[The following derivations would be built:~%~{   ~a~%~}~;~]"
+msgid "~:[The following profile hook would be built:~%~{   ~a~%~}~;~]"
+msgid_plural "~:[The following profile hooks would be built:~%~{   ~a~%~}~;~]"
+msgstr[0] "~:[La jena derivo estus konstruata:~%~{   ~a~%~}~;~]"
+msgstr[1] "~:[La jenaj derivoj estus konstruataj:~%~{   ~a~%~}~;~]"
+
+#. TRANSLATORS: "MB" is for "megabyte"; it should be
+#. translated to the corresponding abbreviation.
+#: guix/ui.scm:1084
+#, fuzzy
+#| msgid "~:[The following file would be downloaded:~%~{   ~a~%~}~;~]"
+#| msgid_plural "~:[The following files would be downloaded:~%~{   ~a~%~}~;~]"
+msgid "~:[~,1h MB would be downloaded~%~;~]"
+msgstr "~:[La jena derivo estus elŝutata:~%~{   ~a~%~}~;~]"
+
+#: guix/ui.scm:1088
+#, fuzzy
+#| msgid "~:[The following file would be downloaded:~%~{   ~a~%~}~;~]"
+#| msgid_plural "~:[The following files would be downloaded:~%~{   ~a~%~}~;~]"
+msgid "~:[~h item would be downloaded~%~;~]"
+msgid_plural "~:[~h items would be downloaded~%~;~]"
+msgstr[0] "~:[La jena derivo estus elŝutata:~%~{   ~a~%~}~;~]"
+msgstr[1] "~:[La jenaj derivoj estus elŝutataj:~%~{   ~a~%~}~;~]"
+
+#: guix/ui.scm:1096
 #, scheme-format
 msgid "~:[The following derivation will be built:~%~{   ~a~%~}~;~]"
 msgid_plural "~:[The following derivations will be built:~%~{   ~a~%~}~;~]"
 msgstr[0] "~:[La jena derivo estos konstruata:~%~{   ~a~%~}~;~]"
 msgstr[1] "~:[La jenaj derivoj estos konstruataj:~%~{   ~a~%~}~;~]"
 
-#: guix/ui.scm:426
+#. TRANSLATORS: "MB" is for "megabyte"; it should be
+#. translated to the corresponding abbreviation.
+#: guix/ui.scm:1105
+#, fuzzy
+#| msgid "~:[The following file will be downloaded:~%~{   ~a~%~}~;~]"
+#| msgid_plural "~:[The following files will be downloaded:~%~{   ~a~%~}~;~]"
+msgid "~:[~,1h MB will be downloaded:~%~{   ~a~%~}~;~]"
+msgstr "~:[La jena derivo estos elŝutata:~%~{   ~a~%~}~;~]"
+
+#: guix/ui.scm:1111
 #, scheme-format
 msgid "~:[The following file will be downloaded:~%~{   ~a~%~}~;~]"
 msgid_plural "~:[The following files will be downloaded:~%~{   ~a~%~}~;~]"
 msgstr[0] "~:[La jena derivo estos elŝutata:~%~{   ~a~%~}~;~]"
 msgstr[1] "~:[La jenaj derivoj estos elŝutataj:~%~{   ~a~%~}~;~]"
 
-#: guix/ui.scm:478
+#: guix/ui.scm:1118
+#, fuzzy, scheme-format
+#| msgid "~:[The following file will be downloaded:~%~{   ~a~%~}~;~]"
+#| msgid_plural "~:[The following files will be downloaded:~%~{   ~a~%~}~;~]"
+msgid "~:[The following graft will be made:~%~{   ~a~%~}~;~]"
+msgid_plural "~:[The following grafts will be made:~%~{   ~a~%~}~;~]"
+msgstr[0] "~:[La jena derivo estos elŝutata:~%~{   ~a~%~}~;~]"
+msgstr[1] "~:[La jenaj derivoj estos elŝutataj:~%~{   ~a~%~}~;~]"
+
+#: guix/ui.scm:1123
+#, fuzzy, scheme-format
+#| msgid "~:[The following derivation will be built:~%~{   ~a~%~}~;~]"
+#| msgid_plural "~:[The following derivations will be built:~%~{   ~a~%~}~;~]"
+msgid "~:[The following profile hook will be built:~%~{   ~a~%~}~;~]"
+msgid_plural "~:[The following profile hooks will be built:~%~{   ~a~%~}~;~]"
+msgstr[0] "~:[La jena derivo estos konstruata:~%~{   ~a~%~}~;~]"
+msgstr[1] "~:[La jenaj derivoj estos konstruataj:~%~{   ~a~%~}~;~]"
+
+#. TRANSLATORS: "MB" is for "megabyte"; it should be
+#. translated to the corresponding abbreviation.
+#: guix/ui.scm:1135
+#, fuzzy
+#| msgid "~:[The following file will be downloaded:~%~{   ~a~%~}~;~]"
+#| msgid_plural "~:[The following files will be downloaded:~%~{   ~a~%~}~;~]"
+msgid "~:[~,1h MB will be downloaded~%~;~]"
+msgstr "~:[La jena derivo estos elŝutata:~%~{   ~a~%~}~;~]"
+
+#: guix/ui.scm:1139
+#, fuzzy
+#| msgid "~:[The following file will be downloaded:~%~{   ~a~%~}~;~]"
+#| msgid_plural "~:[The following files will be downloaded:~%~{   ~a~%~}~;~]"
+msgid "~:[~h item will be downloaded~%~;~]"
+msgid_plural "~:[~h items will be downloaded~%~;~]"
+msgstr[0] "~:[La jena derivo estos elŝutata:~%~{   ~a~%~}~;~]"
+msgstr[1] "~:[La jenaj derivoj estos elŝutataj:~%~{   ~a~%~}~;~]"
+
+#: guix/ui.scm:1258
+msgid "(dependencies or package changed)"
+msgstr ""
+
+#: guix/ui.scm:1277
 #, scheme-format
 msgid "The following package would be removed:~%~{~a~%~}~%"
 msgid_plural "The following packages would be removed:~%~{~a~%~}~%"
 msgstr[0] "La jena pako estus forigata:~%~{~a~%~}~%"
 msgstr[1] "La jenaj pakoj estus forigataj:~%~{~a~%~}~%"
 
-#: guix/ui.scm:483
+#: guix/ui.scm:1282
 #, scheme-format
 msgid "The following package will be removed:~%~{~a~%~}~%"
 msgid_plural "The following packages will be removed:~%~{~a~%~}~%"
 msgstr[0] "La jena pako estos forigata:~%~{~a~%~}~%"
 msgstr[1] "La jenaj pakoj estos forigataj:~%~{~a~%~}~%"
 
-#: guix/ui.scm:496
+#: guix/ui.scm:1295
 #, scheme-format
 msgid "The following package would be downgraded:~%~{~a~%~}~%"
 msgid_plural "The following packages would be downgraded:~%~{~a~%~}~%"
 msgstr[0] "La jena pako estus malpromociata:~%~{~a~%~}~%"
 msgstr[1] "La jenaj pakoj estus malpromociataj:~%~{~a~%~}~%"
 
-#: guix/ui.scm:501
+#: guix/ui.scm:1300
 #, scheme-format
 msgid "The following package will be downgraded:~%~{~a~%~}~%"
 msgid_plural "The following packages will be downgraded:~%~{~a~%~}~%"
 msgstr[0] "La jena pako estos malpromociata:~%~{~a~%~}~%"
 msgstr[1] "La jenaj pakoj estos malpromociataj:~%~{~a~%~}~%"
 
-#: guix/ui.scm:514
+#: guix/ui.scm:1313
 #, scheme-format
 msgid "The following package would be upgraded:~%~{~a~%~}~%"
 msgid_plural "The following packages would be upgraded:~%~{~a~%~}~%"
 msgstr[0] "La jena pako estus ĝisdatigata:~%~{~a~%~}~%"
 msgstr[1] "La jenaj pakoj estus ĝisdatigataj:~%~{~a~%~}~%"
 
-#: guix/ui.scm:519
+#: guix/ui.scm:1318
 #, scheme-format
 msgid "The following package will be upgraded:~%~{~a~%~}~%"
 msgid_plural "The following packages will be upgraded:~%~{~a~%~}~%"
 msgstr[0] "La jena pako estos ĝisdatigata:~%~{~a~%~}~%"
 msgstr[1] "La jenaj pakoj estos ĝisdatigataj:~%~{~a~%~}~%"
 
-#: guix/ui.scm:530
+#: guix/ui.scm:1329
 #, scheme-format
 msgid "The following package would be installed:~%~{~a~%~}~%"
 msgid_plural "The following packages would be installed:~%~{~a~%~}~%"
 msgstr[0] "La jena pako estus instalata:~% ~{~a~%~}~%"
 msgstr[1] "La jenaj pakoj estus instalataj:~% ~{~a~%~}~%"
 
-#: guix/ui.scm:535
+#: guix/ui.scm:1334
 #, scheme-format
 msgid "The following package will be installed:~%~{~a~%~}~%"
 msgid_plural "The following packages will be installed:~%~{~a~%~}~%"
 msgstr[0] "La jena pako estos instalata:~% ~{~a~%~}~%"
 msgstr[1] "La jenaj pakoj estos instalataj:~% ~{~a~%~}~%"
 
-#: guix/ui.scm:552
-msgid "<unknown location>"
-msgstr "<nekonata loko>"
+#: guix/ui.scm:1861
+#, scheme-format
+msgid "invalid syntax: ~a~%"
+msgstr "malvalida sintakso: ~a~%"
 
-#: guix/ui.scm:578
+#: guix/ui.scm:1870
 #, scheme-format
-msgid "failed to create configuration directory `~a': ~a~%"
-msgstr "fiasko dum kreo de agorda dosierujo '~a': ~a~%"
+msgid "Generation ~a\t~a"
+msgstr "Generacio ~a\t~a"
 
-#: guix/ui.scm:680 guix/ui.scm:694
-msgid "unknown"
-msgstr "nekonata"
+#. TRANSLATORS: This is a format-string for date->string.
+#. Please choose a format that corresponds to the
+#. usual way of presenting dates in your locale.
+#. See https://www.gnu.org/software/guile/manual/html_node/SRFI_002d19-Date-to-string.html
+#. for details.
+#: guix/ui.scm:1880
+#, scheme-format
+msgid "~b ~d ~Y ~T"
+msgstr ""
 
-#: guix/ui.scm:803
+#. TRANSLATORS: The word "current" here is an adjective for
+#. "Generation", as in "current generation".  Use the appropriate
+#. gender where applicable.
+#: guix/ui.scm:1886
 #, scheme-format
-msgid "invalid argument: ~a~%"
-msgstr "malvalida argumento: ~a~%"
+msgid "~a\t(current)~%"
+msgstr "~a\t(nuna)~%"
 
-#: guix/ui.scm:842
+#: guix/ui.scm:1920
+#, fuzzy, scheme-format
+#| msgid "cannot access `~a': ~a~%"
+msgid "cannot lock profile ~a: ~a~%"
+msgstr "ne eblas atingi '~a': ~a~%"
+
+#: guix/ui.scm:1922
+#, fuzzy, scheme-format
+#| msgid "profile '~a' does not exist~%"
+msgid "profile ~a is locked by another process~%"
+msgstr "profilo '~a' ne ekzistas~%"
+
+#: guix/ui.scm:1949
+#, fuzzy, scheme-format
+#| msgid "switching from generation ~a to ~a~%"
+msgid "switched from generation ~a to ~a~%"
+msgstr "alterno el generacio ~a al ~a~%"
+
+#: guix/ui.scm:1965
+#, scheme-format
+msgid "deleting ~a~%"
+msgstr "ni forigas ~a~%"
+
+#: guix/ui.scm:1996
 #, scheme-format
 msgid "Try `guix --help' for more information.~%"
 msgstr "Provu 'guix --help' por pli da informo.~%"
 
-#: guix/ui.scm:869
+#: guix/ui.scm:2077
 msgid ""
 "Usage: guix COMMAND ARGS...\n"
 "Run COMMAND with ARGS.\n"
@@ -1574,78 +5567,654 @@ msgstr ""
 "Uzmaniero: guix KOMANDO ARGj...\n"
 "Lanĉas KOMANDOn kun ARGj.\n"
 
-#: guix/ui.scm:872
+#: guix/ui.scm:2080
 msgid "COMMAND must be one of the sub-commands listed below:\n"
 msgstr "KOMANDO devas esti unu el la sub-komandoj sube listataj:\n"
 
-#: guix/ui.scm:892
+#: guix/ui.scm:2104
 #, scheme-format
 msgid "guix: ~a: command not found~%"
 msgstr "guix: ~a: komando ne trovita~%"
 
-#: guix/ui.scm:910
+#: guix/ui.scm:2134
 #, scheme-format
 msgid "guix: missing command name~%"
 msgstr "guix: mankas komanda nomo~%"
 
-#: guix/ui.scm:918
+#: guix/ui.scm:2142
 #, scheme-format
 msgid "guix: unrecognized option '~a'~%"
 msgstr "guix: nerekonata modifilo: '~a'~%"
 
-#: guix/http-client.scm:211
+#. TRANSLATORS: The word "phase" here denotes a "build phase";
+#. "~a" is a placeholder for the untranslated name of the current
+#. build phase--e.g., 'configure' or 'build'.
+#: guix/status.scm:358
+#, scheme-format
+msgid "'~a' phase"
+msgstr ""
+
+#: guix/status.scm:378
+msgid "building directory of Info manuals..."
+msgstr ""
+
+#: guix/status.scm:380
+msgid "building GHC package cache..."
+msgstr ""
+
+#: guix/status.scm:382
+msgid "building CA certificate bundle..."
+msgstr ""
+
+#: guix/status.scm:384
+msgid "generating GLib schema cache..."
+msgstr ""
+
+#: guix/status.scm:386
+msgid "creating GTK+ icon theme cache..."
+msgstr ""
+
+#: guix/status.scm:388
+msgid "building cache files for GTK+ input methods..."
+msgstr ""
+
+#: guix/status.scm:390
+msgid "building XDG desktop file cache..."
+msgstr ""
+
+#: guix/status.scm:392
+msgid "building XDG MIME database..."
+msgstr ""
+
+#: guix/status.scm:394
+#, fuzzy
+#| msgid "importing file or directory '~a'...~%"
+msgid "building fonts directory..."
+msgstr "ni importas dosieron aŭ dosierujon '~a'...~%"
+
+#: guix/status.scm:396
+msgid "building TeX Live configuration..."
+msgstr ""
+
+#: guix/status.scm:398
+msgid "building database for manual pages..."
+msgstr ""
+
+#: guix/status.scm:400
+msgid "building package cache..."
+msgstr ""
+
+#: guix/status.scm:475
+#, scheme-format
+msgid "applying ~a graft for ~a ..."
+msgid_plural "applying ~a grafts for ~a ..."
+msgstr[0] ""
+msgstr[1] ""
+
+#: guix/status.scm:483
+#, scheme-format
+msgid "building profile with ~a package..."
+msgid_plural "building profile with ~a packages..."
+msgstr[0] ""
+msgstr[1] ""
+
+#: guix/status.scm:492
+#, fuzzy, scheme-format
+#| msgid "importing file or directory '~a'...~%"
+msgid "running profile hook of type '~a'..."
+msgstr "ni importas dosieron aŭ dosierujon '~a'...~%"
+
+#: guix/status.scm:495
+#, fuzzy, scheme-format
+#| msgid "unpacking '~a'...~%"
+msgid "building ~a..."
+msgstr "malpakado de '~a'...~%"
+
+#: guix/status.scm:500
+#, scheme-format
+msgid "successfully built ~a"
+msgstr ""
+
+#: guix/status.scm:506
+#, fuzzy, scheme-format
+#| msgid "The following package will be upgraded:~%~{~a~%~}~%"
+#| msgid_plural "The following packages will be upgraded:~%~{~a~%~}~%"
+msgid "The following build is still in progress:~%~{  ~a~%~}~%"
+msgid_plural "The following builds are still in progress:~%~{  ~a~%~}~%"
+msgstr[0] "La jena pako estos ĝisdatigata:~%~{~a~%~}~%"
+msgstr[1] "La jenaj pakoj estos ĝisdatigataj:~%~{~a~%~}~%"
+
+#: guix/status.scm:512
+#, fuzzy, scheme-format
+#| msgid "build failed: ~a~%"
+msgid "build of ~a failed"
+msgstr "konstruo fiakis: ~a~%"
+
+#: guix/status.scm:516
+#, fuzzy, scheme-format
+#| msgid "no build log for '~a'~%"
+msgid "Could not find build log for '~a'."
+msgstr "neniu konstruita protokolo por '~a'~%"
+
+#: guix/status.scm:519
+#, fuzzy, scheme-format
+#| msgid "no build log for '~a'~%"
+msgid "View build log at '~a'."
+msgstr "neniu konstruita protokolo por '~a'~%"
+
+#: guix/status.scm:524
+#, scheme-format
+msgid "substituting ~a..."
+msgstr ""
+
+#: guix/status.scm:528
+#, fuzzy, scheme-format
+#| msgid "Downloading, please wait...~%"
+msgid "downloading from ~a ..."
+msgstr "Ni elŝutas, bonvolu atendi...~%"
+
+#: guix/status.scm:553
+#, scheme-format
+msgid "substitution of ~a complete"
+msgstr ""
+
+#: guix/status.scm:556
+#, scheme-format
+msgid "substitution of ~a failed"
+msgstr ""
+
+#. TRANSLATORS: The final string looks like "sha256 hash mismatch for
+#. /gnu/store/…-sth:", where "sha256" is the hash algorithm.
+#: guix/status.scm:561
+#, fuzzy, scheme-format
+#| msgid "hash mismatch for '~a'~%"
+msgid "~a hash mismatch for ~a:"
+msgstr "haketa malkongruo por '~a'~%"
+
+#: guix/status.scm:563
+#, scheme-format
+msgid ""
+"  expected hash: ~a\n"
+"  actual hash:   ~a~%"
+msgstr ""
+
+#: guix/status.scm:568
+#, fuzzy, scheme-format
+#| msgid "no build log for '~a'~%"
+msgid "offloading build of ~a to '~a'"
+msgstr "neniu konstruita protokolo por '~a'~%"
+
+#: guix/http-client.scm:120
 #, scheme-format
 msgid "following redirection to `~a'...~%"
 msgstr "ni sekvas la redirektigon al '~a'...~%"
 
-#: guix/http-client.scm:220
-msgid "download failed"
-msgstr "elŝuto fiaskis"
+#: guix/http-client.scm:132
+#, fuzzy, scheme-format
+#| msgid "~a: download failed~%"
+msgid "~a: HTTP download failed: ~a (~s)"
+msgstr "~a: elŝuto fiaskis~%"
 
-#: guix/nar.scm:155
+#: guix/nar.scm:172
 msgid "signature is not a valid s-expression"
 msgstr "subskribo ne estas valida s-esprimo"
 
-#: guix/nar.scm:164
+#: guix/nar.scm:181
 msgid "invalid signature"
 msgstr "nevalida subskribo"
 
-#: guix/nar.scm:168
+#: guix/nar.scm:185
 msgid "invalid hash"
 msgstr "nevalida haketo"
 
-#: guix/nar.scm:176
+#: guix/nar.scm:193
 msgid "unauthorized public key"
 msgstr "nerajtigita publika ŝlosilo"
 
-#: guix/nar.scm:181
+#: guix/nar.scm:198
 msgid "corrupt signature data"
 msgstr "difektita subskriba datumaro"
 
-#: guix/nar.scm:201
+#: guix/nar.scm:218
 msgid "corrupt file set archive"
 msgstr "difektita arĥivo de dosier-grupo"
 
-#: guix/nar.scm:211
+#: guix/nar.scm:228
 #, scheme-format
 msgid "importing file or directory '~a'...~%"
 msgstr "ni importas dosieron aŭ dosierujon '~a'...~%"
 
-#: guix/nar.scm:222
+#: guix/nar.scm:239
 #, scheme-format
 msgid "found valid signature for '~a'~%"
 msgstr "ni trovis validan subskribon por '~a'~%"
 
-#: guix/nar.scm:229
+#: guix/nar.scm:246
 msgid "imported file lacks a signature"
 msgstr "importita dosiero malhavas subskribon"
 
-#: guix/nar.scm:268
+#: guix/nar.scm:285
 msgid "invalid inter-file archive mark"
 msgstr "malvalida inter-dosiera arĥiva marko"
 
-#~ msgid "Downloading, please wait...~%"
-#~ msgstr "Ni elŝutas, bonvolu atendi...~%"
+#: guix/channels.scm:266
+#, fuzzy
+#| msgid "unsupported signature version: ~a~%"
+msgid "unsupported '.guix-channel' version"
+msgstr "nesubtenata subskriba versio: ~a~%"
+
+#: guix/channels.scm:272
+msgid "invalid '.guix-channel' file"
+msgstr ""
+
+#: guix/channels.scm:331
+msgid "Authenticating channel '~a', commits ~a to ~a (~h new commits)...~%"
+msgstr ""
+
+#: guix/channels.scm:382
+#, scheme-format
+msgid "channel '~a' lacks an introduction and cannot be authenticated~%"
+msgstr ""
+
+#: guix/channels.scm:387
+msgid ""
+"Add the missing introduction to your\n"
+"channels file to address the issue.  Alternatively, you can pass\n"
+"@option{--disable-authentication}, at the risk of running unauthenticated and\n"
+"thus potentially malicious code."
+msgstr ""
+
+#: guix/channels.scm:391
+#, scheme-format
+msgid "channel authentication disabled~%"
+msgstr ""
+
+#: guix/channels.scm:416
+#, scheme-format
+msgid "aborting update of channel '~a' to commit ~a, which is not a descendant of ~a"
+msgstr ""
+
+#: guix/channels.scm:427
+msgid ""
+"Use @option{--allow-downgrades} to force\n"
+"this downgrade."
+msgstr ""
+
+#: guix/channels.scm:431
+msgid ""
+"This could indicate that the channel has\n"
+"been tampered with and is trying to force a roll-back, preventing you from\n"
+"getting the latest updates.  If you think this is not the case, explicitly\n"
+"allow non-forward updates."
+msgstr ""
+
+#: guix/channels.scm:484
+#, scheme-format
+msgid "Updating channel '~a' from Git repository at '~a'...~%"
+msgstr ""
+
+#: guix/channels.scm:505
+#, scheme-format
+msgid "pulled channel '~a' from a mirror of ~a, which might be stale~%"
+msgstr ""
+
+#: guix/channels.scm:733
+msgid "'guix' channel is lacking"
+msgstr ""
+
+#: guix/channels.scm:735
+msgid ""
+"Make sure your list of channels\n"
+"contains one channel named @code{guix} providing the core of Guix."
+msgstr ""
+
+#: guix/channels.scm:963
+msgid "invalid channel news entry"
+msgstr ""
+
+#: guix/channels.scm:981
+msgid "syntactically invalid channel news file"
+msgstr ""
+
+#: guix/channels.scm:984
+msgid "invalid channel news file"
+msgstr ""
+
+#: guix/profiles.scm:574
+#, fuzzy
+#| msgid "unsupported hash format: ~a~%"
+msgid "unsupported manifest format"
+msgstr "nesubtenata haket-formo: ~a~%"
+
+#: guix/profiles.scm:1923
+#, fuzzy, scheme-format
+#| msgid "error: while creating directory `~a': ~a~%"
+msgid "while creating directory `~a': ~a"
+msgstr "eraro: dum kreo de dosierujo '~a': ~a~%"
+
+#: guix/profiles.scm:1928
+#, fuzzy, scheme-format
+#| msgid "Please create the `~a' directory, with you as the owner.~%"
+msgid "Please create the @file{~a} directory, with you as the owner."
+msgstr "Bonvolu krei la dosierujon '~a', kun vi kiel posedanto.~%"
+
+#: guix/profiles.scm:1937
+#, fuzzy, scheme-format
+#| msgid "error: directory `~a' is not owned by you~%"
+msgid "directory `~a' is not owned by you"
+msgstr "eraro: dosierujo '~a' ne estas posedata de vi~%"
+
+#: guix/profiles.scm:1941
+#, fuzzy, scheme-format
+#| msgid "Please change the owner of `~a' to user ~s.~%"
+msgid "Please change the owner of @file{~a} to user ~s."
+msgstr "Bonvole ŝanĝu la posedanton de '~a' al la uzanto ~s.~%"
+
+#: guix/git.scm:175
+msgid "long Git object ID is required"
+msgstr ""
+
+#: guix/git.scm:226
+#, fuzzy, scheme-format
+#| msgid "~a: error: ~a~%"
+msgid "Git error ~a~%"
+msgstr "~a: eraro: ~a~%"
+
+#: guix/git.scm:228 guix/git.scm:418
+#, fuzzy, scheme-format
+#| msgid "~a: error: ~a~%"
+msgid "Git error: ~a~%"
+msgstr "~a: eraro: ~a~%"
+
+#: guix/git.scm:256
+#, fuzzy, scheme-format
+#| msgid "unpacking '~a'...~%"
+msgid "updating submodule '~a'...~%"
+msgstr "malpakado de '~a'...~%"
+
+#: guix/git.scm:269
+#, scheme-format
+msgid "Support for submodules is missing; please upgrade Guile-Git.~%"
+msgstr ""
+
+#: guix/git.scm:512
+#, scheme-format
+msgid "cannot fetch commit ~a from ~a: ~a"
+msgstr ""
+
+#: guix/git.scm:515
+#, scheme-format
+msgid "cannot fetch branch '~a' from ~a: ~a"
+msgstr ""
+
+#: guix/git.scm:518
+#, scheme-format
+msgid "Git failure while fetching ~a: ~a"
+msgstr ""
+
+#: guix/deprecation.scm:37
+#, scheme-format
+msgid "'~a' is deprecated, use '~a' instead~%"
+msgstr ""
+
+#: guix/deprecation.scm:39
+#, scheme-format
+msgid "'~a' is deprecated~%"
+msgstr ""
+
+#. TRANSLATORS: 'derivation' must not be translated; it refers to the
+#. 'derivation' procedure.
+#: guix/derivations.scm:775
+#, scheme-format
+msgid "in '~a': deprecated 'derivation' calling convention used~%"
+msgstr ""
+
+#: nix/nix-daemon/guix-daemon.cc:66
+msgid "guix-daemon -- perform derivation builds and store accesses"
+msgstr ""
+
+#: nix/nix-daemon/guix-daemon.cc:68
+msgid "This program is a daemon meant to run in the background.  It serves requests sent over a Unix-domain socket.  It accesses the store, and builds derivations on behalf of its clients."
+msgstr ""
+
+#: nix/nix-daemon/guix-daemon.cc:95
+msgid "SYSTEM"
+msgstr ""
+
+#: nix/nix-daemon/guix-daemon.cc:96
+msgid "assume SYSTEM as the current system type"
+msgstr ""
+
+#: nix/nix-daemon/guix-daemon.cc:97 nix/nix-daemon/guix-daemon.cc:100
+msgid "N"
+msgstr ""
+
+#: nix/nix-daemon/guix-daemon.cc:98
+msgid "use N CPU cores to build each derivation; 0 means as many as available"
+msgstr ""
+
+#: nix/nix-daemon/guix-daemon.cc:101
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "  -M, --max-jobs=N       allow at most N build jobs"
+msgid "allow at most N build jobs"
+msgstr ""
+"\n"
+"  -M, --max-jobs=N       permesi maksimume N konstru-taskojn"
+
+#: nix/nix-daemon/guix-daemon.cc:102 nix/nix-daemon/guix-daemon.cc:104
+msgid "SECONDS"
+msgstr ""
+
+#: nix/nix-daemon/guix-daemon.cc:103
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "      --timeout=SECONDS  mark the build as failed after SECONDS of activity"
+msgid "mark builds as failed after SECONDS of activity"
+msgstr ""
+"\n"
+"      --timeout=SEKUNDOJ marki la konstruon kiel fiaskintan post SEKUNDOJ da aktivado"
+
+#: nix/nix-daemon/guix-daemon.cc:105
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "      --timeout=SECONDS  mark the build as failed after SECONDS of activity"
+msgid "mark builds as failed after SECONDS of silence"
+msgstr ""
+"\n"
+"      --timeout=SEKUNDOJ marki la konstruon kiel fiaskintan post SEKUNDOJ da aktivado"
+
+#: nix/nix-daemon/guix-daemon.cc:107
+msgid "disable chroot builds"
+msgstr ""
+
+#: nix/nix-daemon/guix-daemon.cc:108
+msgid "DIR"
+msgstr ""
+
+#: nix/nix-daemon/guix-daemon.cc:109
+msgid "add DIR to the build chroot"
+msgstr ""
+
+#: nix/nix-daemon/guix-daemon.cc:110
+msgid "GROUP"
+msgstr ""
+
+#: nix/nix-daemon/guix-daemon.cc:111
+msgid "perform builds as a user of GROUP"
+msgstr ""
+
+#: nix/nix-daemon/guix-daemon.cc:113
+msgid "do not use substitutes"
+msgstr ""
+
+#: nix/nix-daemon/guix-daemon.cc:114
+msgid "URLS"
+msgstr ""
+
+#: nix/nix-daemon/guix-daemon.cc:115
+msgid "use URLS as the default list of substitute providers"
+msgstr ""
+
+#: nix/nix-daemon/guix-daemon.cc:117 nix/nix-daemon/guix-daemon.cc:120
+msgid "do not attempt to offload builds"
+msgstr ""
+
+#: nix/nix-daemon/guix-daemon.cc:122
+msgid "cache build failures"
+msgstr ""
+
+#: nix/nix-daemon/guix-daemon.cc:124
+msgid "build each derivation N times in a row"
+msgstr ""
+
+#: nix/nix-daemon/guix-daemon.cc:126
+msgid "do not keep build logs"
+msgstr ""
+
+#: nix/nix-daemon/guix-daemon.cc:129
+msgid "disable compression of the build logs"
+msgstr ""
+
+#: nix/nix-daemon/guix-daemon.cc:131
+msgid "use the specified compression type for build logs"
+msgstr ""
+
+#: nix/nix-daemon/guix-daemon.cc:136
+msgid "disable automatic file \"deduplication\" in the store"
+msgstr ""
+
+#: nix/nix-daemon/guix-daemon.cc:146
+msgid "impersonate Linux 2.6"
+msgstr ""
+
+#: nix/nix-daemon/guix-daemon.cc:150
+msgid "tell whether the GC must keep outputs of live derivations"
+msgstr ""
+
+#: nix/nix-daemon/guix-daemon.cc:153
+msgid "tell whether the GC must keep derivations corresponding to live outputs"
+msgstr ""
+
+#: nix/nix-daemon/guix-daemon.cc:156
+msgid "SOCKET"
+msgstr ""
+
+#: nix/nix-daemon/guix-daemon.cc:157
+msgid "listen for connections on SOCKET"
+msgstr ""
+
+#: nix/nix-daemon/guix-daemon.cc:159
+msgid "produce debugging output"
+msgstr ""
+
+#~ msgid "~a: note: using ~a but ~a is available upstream~%"
+#~ msgstr "~a: rimarko: ni uzas ~a sed ~a disponeblas unuanivele~%"
+
+#~ msgid "system locale lacks a definition"
+#~ msgstr "sistema lokaĵaro malhavas difinon"
+
+#~ msgid "sources do not match any package:~{ ~a~}~%"
+#~ msgstr "fontoj ne kongruas al iu ajn pako:~{ ~a~}~%"
+
+#~ msgid ""
+#~ "Usage: guix download [OPTION] URL\n"
+#~ "Download the file at URL, add it to the store, and print its store path\n"
+#~ "and the hash of its contents.\n"
+#~ "\n"
+#~ "Supported formats: 'nix-base32' (default), 'base32', and 'base16'\n"
+#~ "('hex' and 'hexadecimal' can be used as well).\n"
+#~ msgstr ""
+#~ "Uzmaniero: guix download [OPTION] URL\n"
+#~ "Elŝuti la dosieron ĉe la URL, aldoni ĝin al la konservejo, kaj montri\n"
+#~ " ĝian konservo-vojon kaj la haketon de ĝia enhavo.\n"
+#~ "\n"
+#~ "Subtenataj formoj: 'nix-base32' (aprioras), 'base32', kaj 'base16'\n"
+#~ "('hex' kaj 'hexadecimal' ankaŭ uzeblas, por deksesumo).\n"
+
+#~ msgid "failed to build the empty profile~%"
+#~ msgstr "fiasko dum konstruo de malplena profilo~%"
+
+#~ msgid "nothing to do: already at the empty profile~%"
+#~ msgstr "nenio por fari: jam estas ĉe la malplena profilo~%"
+
+#~ msgid "The following environment variable definitions may be needed:~%"
+#~ msgstr "La jenaj medi-variablaj difinoj povos esti necesaj:~%"
+
+#~ msgid "Try \"info '(guix) Invoking guix package'\" for more information.~%"
+#~ msgstr "Provu \"info '(guix) Invoking guix package'\" por pli da informo.'%"
+
+#~ msgid "unrecognized option: ~a~%"
+#~ msgstr "nerekonata modifilo: ~a~%"
+
+#~ msgid "tarball did not produce a single source directory"
+#~ msgstr "tarball ne produktis ununuran fontan dosierujon"
+
+#~ msgid "failed to unpack source code"
+#~ msgstr "ni malsukcesis malpaki font-kodon"
+
+#~ msgid "Guix already up to date\n"
+#~ msgstr "Guix jam estas ĝisdata\n"
+
+#~ msgid "failed to update Guix, check the build log~%"
+#~ msgstr "fiasko dum ĝisdatigo de Guix, kontrolu la konstru-protokolon~%"
+
+#~ msgid "~A: unexpected argument~%"
+#~ msgstr "~A: neatendita argumento~%"
+
+#~ msgid "failed to download up-to-date source, exiting\n"
+#~ msgstr "fiasko dum elŝuto de aktuala fonto, ni ĉesas\n"
+
+#~ msgid "updating list of substitutes from '~a'...\r"
+#~ msgstr "ni ĝisdatigas liston de anstataŭigantoj el '~a'...\r"
+
+#~ msgid "'~a' is signed with an unauthorized key~%"
+#~ msgstr "'~a' estas subskribita sen rajtigita ŝlosilo~%"
+
+#~ msgid "signature on '~a' is corrupt~%"
+#~ msgstr "subskribo en '~a' estas difektita~%"
+
+#~ msgid "substitute at '~a' lacks a signature~%"
+#~ msgstr "anstataŭigo ĉe '~a' malhavas subskribon~%"
+
+#~ msgid "these substitute URLs will not be used:~{ ~a~}~%"
+#~ msgstr "tiuj ĉi anstataŭigaj URL-oj ne estos uzataj:~{ ~a~}~%"
+
+#~ msgid "failed to look up host '~a' (~a), substituter disabled~%"
+#~ msgstr "ni malsukcesis serĉi gastiganton '~a' (~a), anstataŭiganto estas malebligata~%"
+
+#~ msgid "error: invalid signature: ~a~%"
+#~ msgstr "eraro: malvalida subskribo: ~a~%"
+
+#~ msgid "error: unauthorized public key: ~a~%"
+#~ msgstr "eraro: nerajtigita publika ŝlosilo: ~a~%"
+
+#~ msgid "error: corrupt signature data: ~a~%"
+#~ msgstr "eraro: difektita subskriba datumaro: ~a~%"
+
+#~ msgid "failed to install GRUB on device '~a'~%"
+#~ msgstr "fiasko dum instalo de GRUB en la aparato '~a'~%"
+
+#~ msgid "~A: extraneuous argument~%"
+#~ msgstr "~A: fremda argumento~%"
+
+#~ msgid "(could be because the public key is not in your keyring)~%"
+#~ msgstr "(eble ĉar la publika ŝlosilo ne estas en via ŝlosilringo)~%"
+
+#~ msgid "~a: warning: ~a~%"
+#~ msgstr "~a: averto: ~a~%"
+
+#~ msgid "failed to install locale: ~a~%"
+#~ msgstr "fiasko dum instalo de lokaĵaro: ~a~%"
+
+#~ msgid "failed to create configuration directory `~a': ~a~%"
+#~ msgstr "fiasko dum kreo de agorda dosierujo '~a': ~a~%"
+
+#~ msgid "download failed"
+#~ msgstr "elŝuto fiaskis"
 
 #~ msgid "(Please consider upgrading Guile to get proper progress report.)~%"
 #~ msgstr "(Bonvolu konsideri pri ĝisdatigo de Guile por havigi ĝustan progres-raporton.)~%"
@@ -1653,9 +6222,6 @@ msgstr "malvalida inter-dosiera arĥiva marko"
 #~ msgid "failed to open operating system file '~a': ~a~%"
 #~ msgstr "fiasko dum malfermo de la operaci-sistema dosiero '~a': ~a~%"
 
-#~ msgid "failed to load operating system file '~a':~%"
-#~ msgstr "fiasko dum ŝargo je operaci-sistema dosiero '~a':~%"
-
 #~ msgid "using Guile ~a, which does not support ~s encoding~%"
 #~ msgstr "ni uzas Guile ~a, kiu ne subtenas enkodigon ~s~%"
 
@@ -1671,27 +6237,18 @@ msgstr "malvalida inter-dosiera arĥiva marko"
 #~ msgid "unsupported nar file type"
 #~ msgstr "nesubtenata dosier-tipo nar"
 
-#~ msgid "unsupported file type"
-#~ msgstr "nesubtenata dosier-tipo"
-
 #~ msgid "invalid nar signature"
 #~ msgstr "malvalida subskribo nar"
 
 #~ msgid "invalid nar end-of-file marker"
 #~ msgstr "malvalida dosierfina markilo nar"
 
-#~ msgid "invalid symlink tokens"
-#~ msgstr "malvalidaj simbol-ligaj ĵetonoj"
-
 #~ msgid "unexpected directory entry termination"
 #~ msgstr "neatendita fino de dosieruja enigo"
 
 #~ msgid "unexpected directory inter-entry marker"
 #~ msgstr "neatendita dosieruja inter-eniga markilo"
 
-#~ msgid "unsupported nar entry type"
-#~ msgstr "nesubtenata enig-tipo nar"
-
 #~ msgid "Hello, GNU world: An example GNU package"
 #~ msgstr "Saluton, mondo GNU: ekzemplo de pako GNU"
 
@@ -1791,15 +6348,9 @@ msgstr "malvalida inter-dosiera arĥiva marko"
 #~ "Momente la nura valida valoro por AGO estas 'vm', kio konstruas\n"
 #~ "virtualan maŝinon por la indikita operaci-sistemo.\n"
 
-#~ msgid "~a: extraneous argument~%"
-#~ msgstr "~a: fremda argumento~%"
-
 #~ msgid "Guile bindings to libssh"
 #~ msgstr "Bindoj de Guile por libssh"
 
-#~ msgid "package `~a' has no source~%"
-#~ msgstr "pako '~a' havas neniun fonton~%"
-
 #~ msgid ""
 #~ "\n"
 #~ "  -n, --dry-run          show what would be done without actually doing it"
diff --git a/po/guix/es.po b/po/guix/es.po
index 5647d4eeaf..c213fec876 100644
--- a/po/guix/es.po
+++ b/po/guix/es.po
@@ -6,10 +6,10 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: guix 1.1.0-pre2\n"
-"Report-Msgid-Bugs-To: ludo@gnu.org\n"
-"POT-Creation-Date: 2020-04-09 18:27+0200\n"
-"PO-Revision-Date: 2020-04-10 13:13+0200\n"
+"Project-Id-Version: guix 1.2.0-pre3\n"
+"Report-Msgid-Bugs-To: bug-guix@gnu.org\n"
+"POT-Creation-Date: 2020-11-05 17:27+0100\n"
+"PO-Revision-Date: 2020-11-05 20:51+0100\n"
 "Last-Translator: Miguel Ángel Arruga Vivas <rosen644835@gmail.com>\n"
 "Language-Team: Spanish <es@tp.org.es>\n"
 "Language: es\n"
@@ -19,12 +19,12 @@ msgstr ""
 "X-Bugs: Report translation errors to the Language-Team address.\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: gnu.scm:83
+#: gnu.scm:81
 #, scheme-format
 msgid "module ~a not found"
 msgstr "módulo ~a no encontrado"
 
-#: gnu.scm:101
+#: gnu.scm:99
 msgid ""
 "You may use @command{guix package --show=foo | grep location} to search\n"
 "for the location of package @code{foo}.\n"
@@ -36,13 +36,13 @@ msgstr ""
 "Si obtiene la línea @code{location: gnu/packages/bar.scm:174:2},\n"
 "añada @code{bar} a la forma @code{use-package-modules}."
 
-#: gnu.scm:109
+#: gnu.scm:107
 #, scheme-format
 msgid "Try adding @code{(use-package-modules ~a)}."
 msgstr "Intente añadir @code{(use-package-modules ~a)}"
 
 # FUZZY
-#: gnu.scm:124
+#: gnu.scm:122
 #, scheme-format
 msgid ""
 "You may use @command{guix system search ~a} to search for a service\n"
@@ -55,7 +55,7 @@ msgstr ""
 "Si obtiene la línea @code{location: gnu/services/foo.scm:188:2}, añada\n"
 "@code{foo} a la forma @code{use-service-modules}."
 
-#: gnu.scm:133
+#: gnu.scm:131
 #, scheme-format
 msgid "Try adding @code{(use-service-modules ~a)}."
 msgstr "Intente añadir @code{(use-package-modules ~a)}."
@@ -65,44 +65,44 @@ msgstr "Intente añadir @code{(use-package-modules ~a)}."
 msgid "~a: patch not found"
 msgstr "~a: parche no encontrado"
 
-#: gnu/packages.scm:460 gnu/packages.scm:501
+#: gnu/packages.scm:480 gnu/packages.scm:521
 #, scheme-format
 msgid "ambiguous package specification `~a'~%"
 msgstr "especificación de paquete ambigua `~a'~%"
 
-#: gnu/packages.scm:461 gnu/packages.scm:502
+#: gnu/packages.scm:481 gnu/packages.scm:522
 #, scheme-format
 msgid "choosing ~a@~a from ~a~%"
 msgstr "seleccionando ~a@~a de ~a~%"
 
 # FUZZY
-#: gnu/packages.scm:466 guix/scripts/package.scm:207
+#: gnu/packages.scm:486 guix/scripts/package.scm:211
 #, scheme-format
 msgid "package '~a' has been superseded by '~a'~%"
 msgstr "el paquete '~a' ha sido reemplazado por '~a'~%"
 
-#: gnu/packages.scm:473 gnu/packages.scm:490
+#: gnu/packages.scm:493 gnu/packages.scm:510
 #, scheme-format
 msgid "~A: package not found for version ~a~%"
 msgstr "~A: paquete no encontrado para versión ~a~%"
 
-#: gnu/packages.scm:474 gnu/packages.scm:491
+#: gnu/packages.scm:494 gnu/packages.scm:511
 #, scheme-format
 msgid "~A: unknown package~%"
 msgstr "~A: paquete desconocido~%"
 
-#: gnu/packages.scm:530
+#: gnu/packages.scm:550
 #, scheme-format
 msgid "package `~a' lacks output `~a'~%"
 msgstr "el paquete '~a' carece de la salida '~a'~%"
 
-#: gnu/services.scm:242
+#: gnu/services.scm:249
 #, scheme-format
 msgid "~a: no value specified for service of type '~a'"
 msgstr "~a: no se ha especificado un valor para el servicio de tipo '~a'"
 
 # FUZZY
-#: gnu/services.scm:341
+#: gnu/services.scm:347
 msgid ""
 "Build the operating system top-level directory, which in\n"
 "turn refers to everything the operating system needs: its kernel, initrd,\n"
@@ -110,18 +110,19 @@ msgid ""
 msgstr ""
 "Construye el directorio de nivel superior del sistema\n"
 "operativo, el cual a su vez hace referencia a todo lo que el sistema\n"
-"operativo necesita: su núcleo, initrd, perfil del sistema, guión de\n"
-"arranque y demás."
+"operativo necesita: su núcleo, disco inicial en RAM (initrd), perfil\n"
+"del sistema, guión de arranque y demás."
 
-#: gnu/services.scm:371
+#: gnu/services.scm:377
 msgid ""
 "Produce the operating system's boot script, which is spawned\n"
 "by the initrd once the root file system is mounted."
 msgstr ""
-"Produce el guión de arranque del sistema operativo, el cual lanza\n"
-"el initrd una vez el sistema de ficheros raíz está montado."
+"Produce el guión de arranque del sistema operativo, el cual inicia el\n"
+"disco inicial en RAM (initrd) una vez que el sistema de archivos raíz\n"
+"se ha montado."
 
-#: gnu/services.scm:452
+#: gnu/services.scm:493
 msgid ""
 "Store provenance information about the system in the system\n"
 "itself: the channels used when building the system, and its configuration\n"
@@ -129,18 +130,18 @@ msgid ""
 msgstr ""
 "Almacena información de proveniencia acerca del sistema en el\n"
 "sistema mismo: los canales que se usaron al construir el sistema, y su\n"
-"fichero de configuración, cuando estén disponibles."
+"archivo de configuración, cuando estén disponibles."
 
 # FUZZY
-#: gnu/services.scm:510
+#: gnu/services.scm:576
 msgid ""
 "Delete files from @file{/tmp}, @file{/var/run}, and other\n"
 "temporary locations at boot time."
 msgstr ""
-"Borra los ficheros en @file{/tmp}, @file{/var/run} y otras\n"
+"Borra los archivos en @file{/tmp}, @file{/var/run} y otras\n"
 "ubicaciones temporales durante el arranque del sistema."
 
-#: gnu/services.scm:564
+#: gnu/services.scm:630
 msgid ""
 "Run @dfn{activation} code at boot time and upon\n"
 "@command{guix system reconfigure} completion."
@@ -148,20 +149,25 @@ msgstr ""
 "Ejecuta el código de @dfn{activación} durante el arranque\n"
 "y una vez termina @command{guix system reconfigure}."
 
-#: gnu/services.scm:619
+#: gnu/services.scm:718
 msgid ""
 "Add special files to the root file system---e.g.,\n"
 "@file{/usr/bin/env}."
 msgstr ""
-"Añade ficheros especiales al sistema de ficheros\n"
+"Añade archivos especiales al sistema de archivos\n"
 "raíz---por ejemplo, @file{/usr/bin/env}."
 
+#: gnu/services.scm:741
+#, scheme-format
+msgid "duplicate '~a' entry for /etc"
+msgstr "la entrada '~a' está por duplicado en /etc"
+
 # FUZZY
-#: gnu/services.scm:655
+#: gnu/services.scm:769
 msgid "Populate the @file{/etc} directory."
 msgstr "Genera el contenido del directorio @file{/etc}."
 
-#: gnu/services.scm:672
+#: gnu/services.scm:786
 msgid ""
 "Populate @file{/run/setuid-programs} with the specified\n"
 "executables, making them setuid-root."
@@ -169,7 +175,7 @@ msgstr ""
 "Genera el contenido de @file{/run/setuid-programs} con los\n"
 "ejecutables especificados, marcandolos con setuid de root."
 
-#: gnu/services.scm:692
+#: gnu/services.scm:806
 msgid ""
 "This is the @dfn{system profile}, available as\n"
 "@file{/run/current-system/profile}.  It contains packages that the sysadmin\n"
@@ -180,17 +186,17 @@ msgstr ""
 "administradora del sistema desea que estén disponibles globalmente a\n"
 "todas las usuarias del sistema."
 
-#: gnu/services.scm:712
+#: gnu/services.scm:826
 msgid ""
 "Make ``firmware'' files loadable by the operating system\n"
 "kernel.  Firmware may then be uploaded to some of the machine's devices, such\n"
 "as Wifi cards."
 msgstr ""
-"Permite la carga de los ficheros de ``firmware'' por parte del núcleo\n"
+"Permite la carga de los archivos de ``firmware'' por parte del núcleo\n"
 "del sistema operativo. El firmware puede cargarse en algunos\n"
 "dispositivos de la máquina como tarjetas WiFi."
 
-#: gnu/services.scm:743
+#: gnu/services.scm:857
 msgid ""
 "Register garbage-collector roots---i.e., store items that\n"
 "will not be reclaimed by the garbage collector."
@@ -199,58 +205,89 @@ msgstr ""
 "almacén que el recolector de basura no reclamará."
 
 # FUZZY
-#: gnu/services.scm:769
+#: gnu/services.scm:883
 #, scheme-format
 msgid "no target of type '~a' for service '~a'"
 msgstr "ningún objetivo de tipo '~a' para el servicio '~a'"
 
 # FUZZY
-#: gnu/services.scm:795 gnu/services.scm:914
+#: gnu/services.scm:909 gnu/services.scm:1028
 #, scheme-format
 msgid "more than one target service of type '~a'"
 msgstr "más de un servicio objetivo de tipo '~a'"
 
-#: gnu/services.scm:904
+#: gnu/services.scm:1018
 #, scheme-format
 msgid "service of type '~a' not found"
 msgstr "servicio de tipo '~a' no encontrado"
 
-#: gnu/system.scm:355
+#: gnu/system.scm:421
 #, scheme-format
 msgid "unrecognized boot parameters at '~a'~%"
 msgstr "parámetros de arranque en '~a' no reconocidos~%"
 
-#: gnu/system.scm:793
+#: gnu/system.scm:973
 #, scheme-format
 msgid "using a string for file '~a' is deprecated; use 'plain-file' instead~%"
-msgstr "el uso de una cadena para el fichero '~a' está obsoleto; use 'plain-file'~%"
+msgstr "el uso de una cadena para el archivo '~a' está obsoleto; use 'plain-file'~%"
 
-#: gnu/system.scm:809
+#: gnu/system.scm:989
 #, scheme-format
 msgid "using a monadic value for '~a' is deprecated; use 'plain-file' instead~%"
 msgstr "el uso de un valor monádico para '~a' está obsoleto; use 'plain-file'~%"
 
-#: gnu/system.scm:959
+# FUZZY
+#: gnu/system.scm:1116
+msgid "missing root file system"
+msgstr "falta el sistema de archivos raíz"
+
+#: gnu/system.scm:1192
 #, scheme-format
 msgid "~a: invalid locale name"
 msgstr "~a: nombre de localización no válido"
 
-#: gnu/services/shepherd.scm:194
+#: gnu/services/shepherd.scm:112
+msgid ""
+"Run the GNU Shepherd as PID 1---i.e., the operating system's first\n"
+"process.  The Shepherd takes care of managing services such as daemons by\n"
+"ensuring they are started and stopped in the right order."
+msgstr ""
+"Ejecuta GNU Shepherd con el PID 1---es decir, el primer proceso del\n"
+"sistema operativo. Shepherd se encarga de la gestión de servicios,\n"
+"como un daemon, y se asegura de que se arrancan y paran en el orden\n"
+"correcto."
+
+#: gnu/services/shepherd.scm:202
 #, scheme-format
 msgid "service '~a' provided more than once"
 msgstr "se proporciona el servicio '~a' más de una vez"
 
-#: gnu/services/shepherd.scm:209
+#: gnu/services/shepherd.scm:217
 #, scheme-format
 msgid "service '~a' requires '~a', which is not provided by any service"
 msgstr "el servicio '~a' necesita '~a', que no se proporciona por ningún servicio"
 
-#: gnu/system/mapped-devices.scm:136
+#: gnu/services/shepherd.scm:547
+msgid ""
+"The @code{user-processes} service is responsible for\n"
+"terminating all the processes so that the root file system can be re-mounted\n"
+"read-only, just before rebooting/halting.  Processes still running after a few\n"
+"seconds after @code{SIGTERM} has been sent are terminated with\n"
+"@code{SIGKILL}."
+msgstr ""
+"El servicio @code{user-processes} es responsable\n"
+"de terminar todos los procesos de modo que el sistema de archivos raíz\n"
+"pueda montarse en modo de solo-lectura, justo antes de reiniciar/parar\n"
+"la máquina. Los procesos que todavía permanezcan en ejecución tras\n"
+"pasar algunos segundos desde el envíode la señal @code{SIGTERM} se\n"
+"finalizan con la señal @code{SIGKILL}."
+
+#: gnu/system/mapped-devices.scm:137
 #, scheme-format
 msgid "you may need these modules in the initrd for ~a:~{ ~a~}"
 msgstr "puede necesitar añadir estos módulos al initrd para ~a:~{ ~a~}"
 
-#: gnu/system/mapped-devices.scm:140
+#: gnu/system/mapped-devices.scm:142
 #, scheme-format
 msgid ""
 "Try adding them to the\n"
@@ -281,7 +318,7 @@ msgstr ""
 "Si piensa que este diagnóstico no es acertado, use la opción\n"
 "@option{--skip-checks} de @command{guix system}.\n"
 
-#: gnu/system/mapped-devices.scm:219
+#: gnu/system/mapped-devices.scm:221
 #, scheme-format
 msgid "no LUKS partition with UUID '~a'"
 msgstr "ninguna partición LUKS con UUID '~a'"
@@ -289,58 +326,66 @@ msgstr "ninguna partición LUKS con UUID '~a'"
 #: gnu/system/shadow.scm:233
 #, scheme-format
 msgid "supplementary group '~a' of user '~a' is undeclared"
-msgstr "el grupo suplementario '~a' de la usuaria '~a' no se ha declarado"
+msgstr "el grupo suplementario '~a' de la cuenta '~a' no se ha declarado"
 
 #: gnu/system/shadow.scm:243
 #, scheme-format
 msgid "primary group '~a' of user '~a' is undeclared"
-msgstr "el grupo primario '~a' de la usuaria '~a' no se ha declarado"
+msgstr "el grupo primario '~a' de la cuenta '~a' no se ha declarado"
+
+#: gnu/system/shadow.scm:383
+msgid ""
+"Ensure the specified user accounts and groups exist, as well\n"
+"as each account home directory."
+msgstr ""
+"Asegura que las cuentas y grupos que se hayan especificado existen,\n"
+"así como el directorio de cada cuenta de usuaria."
 
-#: guix/import/opam.scm:141
+#: guix/import/opam.scm:148
 #, scheme-format
 msgid "Package not found in opam repository: ~a~%"
 msgstr "Paquete no encontrado en el repositorio opam: ~a~%"
 
-#: guix/import/opam.scm:357
+#: guix/import/opam.scm:368
 msgid "Updater for OPAM packages"
 msgstr "Actualizador para paquetes OPAM"
 
-#: gnu/installer.scm:215
+#: gnu/installer.scm:214
 msgid "Locale"
 msgstr "Localización"
 
-#: gnu/installer.scm:231 gnu/installer/newt/timezone.scm:58
+#: gnu/installer.scm:230 gnu/installer/newt/timezone.scm:58
 msgid "Timezone"
 msgstr "Zona horaria"
 
-#: gnu/installer.scm:248
+#: gnu/installer.scm:247
 msgid "Keyboard mapping selection"
 msgstr "Selección de distribución de teclado"
 
-#: gnu/installer.scm:257 gnu/installer/newt/hostname.scm:26
+#: gnu/installer.scm:256 gnu/installer/newt/hostname.scm:26
 msgid "Hostname"
 msgstr "Nombre de máquina"
 
-#: gnu/installer.scm:266
+#: gnu/installer.scm:265
 msgid "Network selection"
 msgstr "Selección de red"
 
-#: gnu/installer.scm:273 gnu/installer/newt/user.scm:68
+#: gnu/installer.scm:272 gnu/installer/newt/user.scm:68
 #: gnu/installer/newt/user.scm:205
 msgid "User creation"
-msgstr "Creación de usuarias"
+msgstr "Creación de cuentas de usuarias"
 
-#: gnu/installer.scm:281
+#: gnu/installer.scm:280
 msgid "Services"
 msgstr "Servicios"
 
-#: gnu/installer.scm:292
+#: gnu/installer.scm:291
 msgid "Partitioning"
 msgstr "Particionamiento"
 
-#: gnu/installer.scm:299 gnu/installer/newt/final.scm:52
+#: gnu/installer.scm:298 gnu/installer/newt/final.scm:54
 msgid "Configuration file"
-msgstr "Fichero de configuración"
+msgstr "Archivo de configuración"
 
 #: gnu/installer/connman.scm:196
 msgid "Could not determine the state of connman."
@@ -384,47 +429,47 @@ msgstr "Conexión ethernet"
 #: gnu/installer/newt/locale.scm:43 gnu/installer/newt/network.scm:63
 #: gnu/installer/newt/network.scm:84 gnu/installer/newt/page.scm:303
 #: gnu/installer/newt/page.scm:666 gnu/installer/newt/page.scm:751
-#: gnu/installer/newt/partition.scm:55 gnu/installer/newt/partition.scm:84
-#: gnu/installer/newt/partition.scm:116 gnu/installer/newt/partition.scm:127
-#: gnu/installer/newt/partition.scm:624 gnu/installer/newt/partition.scm:645
-#: gnu/installer/newt/partition.scm:691 gnu/installer/newt/partition.scm:742
-#: gnu/installer/newt/partition.scm:753 gnu/installer/newt/services.scm:85
+#: gnu/installer/newt/partition.scm:56 gnu/installer/newt/partition.scm:91
+#: gnu/installer/newt/partition.scm:123 gnu/installer/newt/partition.scm:134
+#: gnu/installer/newt/partition.scm:631 gnu/installer/newt/partition.scm:652
+#: gnu/installer/newt/partition.scm:698 gnu/installer/newt/partition.scm:749
+#: gnu/installer/newt/partition.scm:760 gnu/installer/newt/services.scm:87
 #: gnu/installer/newt/timezone.scm:63 gnu/installer/newt/user.scm:204
 #: gnu/installer/newt/wifi.scm:205
 msgid "Exit"
 msgstr "Salir"
 
 # FUZZY
-#: gnu/installer/newt/final.scm:45
+#: gnu/installer/newt/final.scm:47
 #, scheme-format
 msgid "We're now ready to proceed with the installation! A system configuration file has been generated, it is displayed below.  This file will be available as '~a' on the installed system.  The new system will be created from this file once you've pressed OK.  This will take a few minutes."
-msgstr "¡Estamos preparadas para continuar con la instalación! Se ha generado un fichero de configuración del sistema, el cual se muestra a continuación. Este fichero estará disponible como '~a' en el sistema instalado. El nuevo sistema se creará desde este fichero una vez haya pulsado «Aceptar». Tardará algunos minutos."
+msgstr "¡Estamos preparadas para continuar con la instalación! Se ha generado un archivo de configuración del sistema, el cual se muestra a continuación. Este archivo estará disponible como '~a' en el sistema instalado. El nuevo sistema se creará desde este archivo una vez haya pulsado «Aceptar». Tardará algunos minutos."
 
-#: gnu/installer/newt/final.scm:69
+#: gnu/installer/newt/final.scm:71
 msgid "Installation complete"
 msgstr "Instalación completada"
 
-#: gnu/installer/newt/final.scm:70 gnu/installer/newt/welcome.scm:139
+#: gnu/installer/newt/final.scm:72 gnu/installer/newt/welcome.scm:139
 msgid "Reboot"
 msgstr "Reiniciar"
 
-#: gnu/installer/newt/final.scm:71
+#: gnu/installer/newt/final.scm:73
 msgid "Congratulations!  Installation is now complete.  You may remove the device containing the installation image and press the button to reboot."
 msgstr "¡Enhorabuena! La instalación se ha completado. Puede retirar el dispositivo que contiene la imagen de instalación y pulsar el botón para reiniciar."
 
-#: gnu/installer/newt/final.scm:85
+#: gnu/installer/newt/final.scm:87
 msgid "Installation failed"
 msgstr "Fallo en la instalación"
 
-#: gnu/installer/newt/final.scm:86
+#: gnu/installer/newt/final.scm:88
 msgid "Resume"
 msgstr "Volver a empezar"
 
-#: gnu/installer/newt/final.scm:87
+#: gnu/installer/newt/final.scm:89
 msgid "Restart the installer"
 msgstr "Reiniciar el instalador"
 
-#: gnu/installer/newt/final.scm:88
+#: gnu/installer/newt/final.scm:90
 msgid "The final system installation step failed.  You can resume from a specific step, or restart the installer."
 msgstr "Falló el paso final de la instalación del sistema. Puede volver a empezar desde un paso específico o reiniciar el instalador."
 
@@ -455,7 +500,7 @@ msgstr "Parámetros de la instalación"
 
 #: gnu/installer/newt/parameters.scm:53 gnu/installer/newt/keymap.scm:74
 #: gnu/installer/newt/locale.scm:63 gnu/installer/newt/locale.scm:78
-#: gnu/installer/newt/locale.scm:94 gnu/installer/newt/partition.scm:581
+#: gnu/installer/newt/locale.scm:94 gnu/installer/newt/partition.scm:588
 #: gnu/installer/newt/timezone.scm:64
 msgid "Back"
 msgstr "Atrás"
@@ -600,9 +645,9 @@ msgstr "Mostrar"
 
 # FUZZY
 #: gnu/installer/newt/page.scm:219 gnu/installer/newt/page.scm:665
-#: gnu/installer/newt/page.scm:750 gnu/installer/newt/partition.scm:444
-#: gnu/installer/newt/partition.scm:623 gnu/installer/newt/partition.scm:644
-#: gnu/installer/newt/partition.scm:683 gnu/installer/newt/user.scm:66
+#: gnu/installer/newt/page.scm:750 gnu/installer/newt/partition.scm:451
+#: gnu/installer/newt/partition.scm:630 gnu/installer/newt/partition.scm:651
+#: gnu/installer/newt/partition.scm:690 gnu/installer/newt/user.scm:66
 #: gnu/installer/newt/user.scm:203
 msgid "OK"
 msgstr "Aceptar"
@@ -620,212 +665,215 @@ msgid "Edit"
 msgstr "Editar"
 
 # TODO (MAAV): Revisar
-#: gnu/installer/newt/partition.scm:46
+#: gnu/installer/newt/partition.scm:47
 msgid "Everything is one partition"
 msgstr "Todo en una partición"
 
 # TODO (MAAV): Revisar
-#: gnu/installer/newt/partition.scm:47
+#: gnu/installer/newt/partition.scm:48
 msgid "Separate /home partition"
 msgstr "Partición separada para /home"
 
-#: gnu/installer/newt/partition.scm:49
+#: gnu/installer/newt/partition.scm:50
 msgid "Please select a partitioning scheme."
 msgstr "Por favor, seleccione un esquema de particionado."
 
-#: gnu/installer/newt/partition.scm:50
+#: gnu/installer/newt/partition.scm:51
 msgid "Partition scheme"
 msgstr "Esquema de particionado"
 
-#: gnu/installer/newt/partition.scm:62
-msgid "We are about to format your hard disk.  All its data will be lost.  Do you wish to continue?"
-msgstr "Vamos a dar formato a su disco duro. Todos sus datos se perderán. ¿Desea continuar?"
+#. TRANSLATORS: The ~{ and ~} format specifiers are used to iterate the list
+#. of device names of the user partitions that will be formatted.
+#: gnu/installer/newt/partition.scm:65
+#, scheme-format
+msgid "We are about to write the configured partition table to the disk and format the partitions listed below.  Their data will be lost.  Do you wish to continue?~%~{ - ~a~%~}"
+msgstr "Se va a escribir al disco la tabla de particiones configurada y se dará formato a las particiones mostradas a continuación. Sus datos se perderán. ¿Desea continuar?~%~{ - ~a~%~}"
 
-#: gnu/installer/newt/partition.scm:64
+#: gnu/installer/newt/partition.scm:71
 msgid "Format disk?"
 msgstr "¿Dar formato al disco?"
 
-#: gnu/installer/newt/partition.scm:67
+#: gnu/installer/newt/partition.scm:74
 msgid "Partition formatting is in progress, please wait."
 msgstr "El formato de la partición está en progreso, por favor, espere."
 
-#: gnu/installer/newt/partition.scm:68
+#: gnu/installer/newt/partition.scm:75
 msgid "Preparing partitions"
 msgstr "Preparando las particiones"
 
-#: gnu/installer/newt/partition.scm:79
+#: gnu/installer/newt/partition.scm:86
 msgid "Please select a disk."
 msgstr "Por favor, seleccione un disco."
 
-#: gnu/installer/newt/partition.scm:80
+#: gnu/installer/newt/partition.scm:87
 msgid "Disk"
 msgstr "Disco"
 
-#: gnu/installer/newt/partition.scm:92
+#: gnu/installer/newt/partition.scm:99
 msgid "Select a new partition table type. Be careful, all data on the disk will be lost."
 msgstr "Seleccione un nuevo tipo de tabla de particiones. Tenga cuidado, se perderán todos los datos en el disco."
 
-#: gnu/installer/newt/partition.scm:94
+#: gnu/installer/newt/partition.scm:101
 msgid "Partition table"
 msgstr "Tabla de particiones"
 
-#: gnu/installer/newt/partition.scm:111
+#: gnu/installer/newt/partition.scm:118
 msgid "Please select a partition type."
 msgstr "Por favor, seleccione un tipo de partición."
 
-#: gnu/installer/newt/partition.scm:112
+#: gnu/installer/newt/partition.scm:119
 msgid "Partition type"
 msgstr "Tipo de partición"
 
-#: gnu/installer/newt/partition.scm:122
+#: gnu/installer/newt/partition.scm:129
 msgid "Please select the file-system type for this partition."
-msgstr "Por favor, seleccione el tipo de sistema de ficheros para esta partición."
+msgstr "Por favor, seleccione el tipo de sistema de archivos para esta partición."
 
-#: gnu/installer/newt/partition.scm:123
+#: gnu/installer/newt/partition.scm:130
 msgid "File-system type"
-msgstr "Tipo del sistema de ficheros"
+msgstr "Tipo del sistema de archivos"
 
-#: gnu/installer/newt/partition.scm:136
+#: gnu/installer/newt/partition.scm:143
 msgid "Primary partitions count exceeded."
 msgstr "Se excedió el número posible de particiones primarias."
 
-#: gnu/installer/newt/partition.scm:137 gnu/installer/newt/partition.scm:142
-#: gnu/installer/newt/partition.scm:147
+#: gnu/installer/newt/partition.scm:144 gnu/installer/newt/partition.scm:149
+#: gnu/installer/newt/partition.scm:154
 msgid "Creation error"
 msgstr "Error de creación"
 
-#: gnu/installer/newt/partition.scm:141
+#: gnu/installer/newt/partition.scm:148
 msgid "Extended partition creation error."
 msgstr "Error al crear la partición extendida."
 
-#: gnu/installer/newt/partition.scm:146
+#: gnu/installer/newt/partition.scm:153
 msgid "Logical partition creation error."
 msgstr "Error al crear la partición lógica."
 
-#: gnu/installer/newt/partition.scm:160
+#: gnu/installer/newt/partition.scm:167
 #, scheme-format
 msgid "Please enter the password for the encryption of partition ~a (label: ~a)."
 msgstr "Por favor, introduzca la contraseña para el cifrado de la partición ~a (etiqueta: ~a)."
 
-#: gnu/installer/newt/partition.scm:162 gnu/installer/newt/wifi.scm:92
+#: gnu/installer/newt/partition.scm:169 gnu/installer/newt/wifi.scm:92
 msgid "Password required"
 msgstr "Contraseña necesaria"
 
-#: gnu/installer/newt/partition.scm:167
+#: gnu/installer/newt/partition.scm:174
 #, scheme-format
 msgid "Please confirm the password for the encryption of partition ~a (label: ~a)."
 msgstr "Por favor, confirme la contraseña para el cifrado de la partición ~a (etiqueta: ~a)."
 
-#: gnu/installer/newt/partition.scm:169 gnu/installer/newt/user.scm:160
+#: gnu/installer/newt/partition.scm:176 gnu/installer/newt/user.scm:160
 msgid "Password confirmation required"
 msgstr "Se necesita la confirmación de la contraseña"
 
-#: gnu/installer/newt/partition.scm:181 gnu/installer/newt/user.scm:168
+#: gnu/installer/newt/partition.scm:188 gnu/installer/newt/user.scm:168
 msgid "Password mismatch, please try again."
 msgstr "Las contraseñas no coinciden, por favor, intentelo de nuevo."
 
-#: gnu/installer/newt/partition.scm:182 gnu/installer/newt/user.scm:169
+#: gnu/installer/newt/partition.scm:189 gnu/installer/newt/user.scm:169
 msgid "Password error"
 msgstr "Error de contraseña"
 
-#: gnu/installer/newt/partition.scm:268
+#: gnu/installer/newt/partition.scm:275
 msgid "Please enter the partition gpt name."
 msgstr "Por favor, introduzca el nombre de gpt de la partición."
 
-#: gnu/installer/newt/partition.scm:269
+#: gnu/installer/newt/partition.scm:276
 msgid "Partition name"
 msgstr "Nombre de la partición"
 
-#: gnu/installer/newt/partition.scm:299
+#: gnu/installer/newt/partition.scm:306
 msgid "Please enter the encrypted label"
 msgstr "Por favor, introduzca la etiqueta de cifrado"
 
-#: gnu/installer/newt/partition.scm:300
+#: gnu/installer/newt/partition.scm:307
 msgid "Encryption label"
 msgstr "Etiqueta de cifrado"
 
-#: gnu/installer/newt/partition.scm:317
+#: gnu/installer/newt/partition.scm:324
 #, scheme-format
 msgid "Please enter the size of the partition. The maximum size is ~a."
 msgstr "Por favor, introduzca el tamaño de la partición. El tamaño máximo es ~a."
 
-#: gnu/installer/newt/partition.scm:319
+#: gnu/installer/newt/partition.scm:326
 msgid "Partition size"
 msgstr "Tamaño de la partición"
 
-#: gnu/installer/newt/partition.scm:337
+#: gnu/installer/newt/partition.scm:344
 msgid "The percentage can not be superior to 100."
 msgstr "El porcentaje no puede ser superior a 100."
 
-#: gnu/installer/newt/partition.scm:338 gnu/installer/newt/partition.scm:343
-#: gnu/installer/newt/partition.scm:348
+#: gnu/installer/newt/partition.scm:345 gnu/installer/newt/partition.scm:350
+#: gnu/installer/newt/partition.scm:355
 msgid "Size error"
 msgstr "Error en el tamaño"
 
-#: gnu/installer/newt/partition.scm:342
+#: gnu/installer/newt/partition.scm:349
 msgid "The requested size is incorrectly formatted, or too large."
 msgstr "El tamaño solicitado no tiene un formato correcto, o es demasiado grande."
 
-#: gnu/installer/newt/partition.scm:347
+#: gnu/installer/newt/partition.scm:354
 msgid "The request size is superior to the maximum size."
 msgstr "El tamaño solicitado es superior al tamaño máximo."
 
 # FUZZY
-#: gnu/installer/newt/partition.scm:367
+#: gnu/installer/newt/partition.scm:374
 msgid "Please enter the desired mounting point for this partition. Leave this field empty if you don't want to set a mounting point."
 msgstr "Por favor, introduzca el punto de montaje deseado para esta partición. Deje este campo vacío si no desea establecer un punto de montaje."
 
 # FUZZY
-#: gnu/installer/newt/partition.scm:369
+#: gnu/installer/newt/partition.scm:376
 msgid "Mounting point"
 msgstr "Punto de montaje"
 
 # TODO (MAAV): Mejorar mensaje
-#: gnu/installer/newt/partition.scm:433
+#: gnu/installer/newt/partition.scm:440
 #, scheme-format
 msgid "Creating ~a partition starting at ~a of ~a."
 msgstr "Creando partición de tipo ~a que comienza en ~a de ~a."
 
 # FUZZY
 # TODO (MAAV): Mejorar mensaje, entender mejor contexto.
-#: gnu/installer/newt/partition.scm:435
+#: gnu/installer/newt/partition.scm:442
 #, scheme-format
 msgid "You are currently editing partition ~a."
 msgstr "Actualmente se encuentra editando la partición ~a."
 
 # FUZZY
-#: gnu/installer/newt/partition.scm:438
+#: gnu/installer/newt/partition.scm:445
 msgid "Partition creation"
 msgstr "Creación de particiones"
 
 # FUZZY
-#: gnu/installer/newt/partition.scm:439
+#: gnu/installer/newt/partition.scm:446
 msgid "Partition edit"
 msgstr "Edición de particiones"
 
-#: gnu/installer/newt/partition.scm:620
+#: gnu/installer/newt/partition.scm:627
 #, scheme-format
 msgid "Are you sure you want to delete everything on disk ~a?"
 msgstr "¿Está segura de que desea borrar todo en el disco ~a?"
 
-#: gnu/installer/newt/partition.scm:622
+#: gnu/installer/newt/partition.scm:629
 msgid "Delete disk"
 msgstr "Borrar disco"
 
-#: gnu/installer/newt/partition.scm:636
+#: gnu/installer/newt/partition.scm:643
 msgid "You cannot delete a free space area."
 msgstr "No puede borrar un área de espacio libre."
 
-#: gnu/installer/newt/partition.scm:637 gnu/installer/newt/partition.scm:643
+#: gnu/installer/newt/partition.scm:644 gnu/installer/newt/partition.scm:650
 msgid "Delete partition"
 msgstr "Borrar partición"
 
-#: gnu/installer/newt/partition.scm:641
+#: gnu/installer/newt/partition.scm:648
 #, scheme-format
 msgid "Are you sure you want to delete partition ~a?"
 msgstr "¿Está segura de que desea borrar la partición ~a?"
 
-#: gnu/installer/newt/partition.scm:658
+#: gnu/installer/newt/partition.scm:665
 msgid ""
 "You can change a disk's partition table by selecting it and pressing ENTER. You can also edit a partition by selecting it and pressing ENTER, or remove it by pressing DELETE. To create a new partition, select a free space area and press ENTER.\n"
 "\n"
@@ -835,68 +883,68 @@ msgstr ""
 "\n"
 "Al menos una partición debe tener '/' como su punto de montaje."
 
-#: gnu/installer/newt/partition.scm:664
+#: gnu/installer/newt/partition.scm:671
 #, scheme-format
 msgid "This is the proposed partitioning. It is still possible to edit it or to go back to install menu by pressing the Exit button.~%~%"
 msgstr "Estas son las particiones propuestas. Todavía es posible editarlas o volver al menú de instalación presionando el botón Salir.~%~%"
 
-#: gnu/installer/newt/partition.scm:674
+#: gnu/installer/newt/partition.scm:681
 msgid "Guided partitioning"
 msgstr "Particionado guiado"
 
-#: gnu/installer/newt/partition.scm:675
+#: gnu/installer/newt/partition.scm:682
 msgid "Manual partitioning"
 msgstr "Particionado manual"
 
-#: gnu/installer/newt/partition.scm:700
+#: gnu/installer/newt/partition.scm:707
 msgid "No root mount point found."
 msgstr "No se ha encontrado un punto de montaje para la raíz."
 
-#: gnu/installer/newt/partition.scm:701
+#: gnu/installer/newt/partition.scm:708
 msgid "Missing mount point"
 msgstr "Falta el punto de montaje"
 
-#: gnu/installer/newt/partition.scm:732
+#: gnu/installer/newt/partition.scm:739
 msgid "Guided - using the entire disk"
 msgstr "Guíado - uso del disco completo"
 
-#: gnu/installer/newt/partition.scm:733
+#: gnu/installer/newt/partition.scm:740
 msgid "Guided - using the entire disk with encryption"
 msgstr "Guíado - uso del disco completo con cifrado"
 
-#: gnu/installer/newt/partition.scm:734
+#: gnu/installer/newt/partition.scm:741
 msgid "Manual"
 msgstr "Manual"
 
-#: gnu/installer/newt/partition.scm:736
+#: gnu/installer/newt/partition.scm:743
 msgid "Please select a partitioning method."
 msgstr "Por favor, seleccione un método de particionamiento."
 
-#: gnu/installer/newt/partition.scm:737
+#: gnu/installer/newt/partition.scm:744
 msgid "Partitioning method"
 msgstr "Método de particionamiento"
 
-#: gnu/installer/newt/services.scm:36
+#: gnu/installer/newt/services.scm:37
 msgid "Please select the desktop(s) environment(s) you wish to install. If you select multiple desktops environments, you will be able to choose the one to use on the log-in screen."
 msgstr "Por favor, seleccione el o los entornos de escritorio que desea instalar. Si selecciona múltiples entornos de escritorio, podrá seleccionar el que va a usar en la pantalla de ingreso al sistema."
 
-#: gnu/installer/newt/services.scm:39
+#: gnu/installer/newt/services.scm:40
 msgid "Desktop environment"
 msgstr "Entorno de escritorio"
 
-#: gnu/installer/newt/services.scm:56
+#: gnu/installer/newt/services.scm:57
 msgid "You can now select networking services to run on your system."
 msgstr "Ahora puede seleccionar los servicios de red a ejecutar en su sistema."
 
-#: gnu/installer/newt/services.scm:58
+#: gnu/installer/newt/services.scm:59
 msgid "Network service"
 msgstr "Servicio de red"
 
-#: gnu/installer/newt/services.scm:71
+#: gnu/installer/newt/services.scm:72
 msgid "Network management"
 msgstr "Gestión de red"
 
-#: gnu/installer/newt/services.scm:74
+#: gnu/installer/newt/services.scm:75
 msgid ""
 "Choose the method to manage network connections.\n"
 "\n"
@@ -904,7 +952,7 @@ msgid ""
 msgstr ""
 "Selecciona el método para la gestión de conexiones de red.\n"
 "\n"
-"Recomendamos NetworkManager o Connman para ordenadores portátiles con WiFi; el cliente DHCP puede ser suficiente para un servidor."
+"Recomendamos NetworkManager o Connman para equipos portátiles con WiFi; el cliente DHCP puede ser suficiente para un servidor."
 
 #: gnu/installer/newt/timezone.scm:59
 msgid "Please select a timezone."
@@ -920,7 +968,7 @@ msgstr "Nombre real"
 
 #: gnu/installer/newt/user.scm:49
 msgid "Home directory"
-msgstr "Directorio de la usuaria"
+msgstr "Directorio de la cuenta de usuaria"
 
 #: gnu/installer/newt/user.scm:51
 msgid "Password"
@@ -938,7 +986,7 @@ msgstr "Por favor, confirme la contraseña."
 #. system administrator account.
 #: gnu/installer/newt/user.scm:176
 msgid "Please choose a password for the system administrator (\"root\")."
-msgstr "Por favor, seleccione una contraseña para la administradora del sistema (\"root\")."
+msgstr "Por favor, seleccione una contraseña para cuenta de administración del sistema (\"root\")."
 
 #: gnu/installer/newt/user.scm:178
 msgid "System administrator password"
@@ -946,7 +994,7 @@ msgstr "Contraseña de administración del sistema"
 
 #: gnu/installer/newt/user.scm:191
 msgid "Please add at least one user to system using the 'Add' button."
-msgstr "Por favor, añada al menos una usuaria al sistema mediante el botón 'Añadir'."
+msgstr "Por favor, añada al menos una cuenta de usuaria al sistema mediante el botón 'Añadir'."
 
 #: gnu/installer/newt/user.scm:194
 msgid "Add"
@@ -958,11 +1006,11 @@ msgstr "Borrar"
 
 #: gnu/installer/newt/user.scm:255
 msgid "Please create at least one user."
-msgstr "Por favor, cree al menos una usuaria."
+msgstr "Por favor, cree al menos una cuenta de usuaria."
 
 #: gnu/installer/newt/user.scm:256
 msgid "No user"
-msgstr "Ninguna usuaria"
+msgstr "Ninguna cuenta de usuaria"
 
 #: gnu/installer/newt/welcome.scm:119
 msgid "GNU Guix install"
@@ -1037,37 +1085,87 @@ msgstr "No se detectó wifi"
 msgid "Wifi"
 msgstr "Wifi"
 
-#: gnu/installer/parted.scm:395 gnu/installer/parted.scm:432
+#: gnu/installer/parted.scm:404 gnu/installer/parted.scm:441
 msgid "Free space"
 msgstr "Espacio libre"
 
-#: gnu/installer/parted.scm:1350
+#: gnu/installer/parted.scm:530
+#, scheme-format
+msgid "Name: ~a"
+msgstr "Nombre: ~a"
+
+#: gnu/installer/parted.scm:531 gnu/installer/parted.scm:577
+msgid "None"
+msgstr "No proporcionado"
+
+#: gnu/installer/parted.scm:536
+#, scheme-format
+msgid "Type: ~a"
+msgstr "Tipo: ~a"
+
+#: gnu/installer/parted.scm:540
+#, scheme-format
+msgid "File system type: ~a"
+msgstr "Tipo de sistema de archivos: ~a"
+
+#: gnu/installer/parted.scm:546
+#, scheme-format
+msgid "Bootable flag: ~:[off~;on~]"
+msgstr "Marca «boot»: ~:[desactivada~;activada~]"
+
+#: gnu/installer/parted.scm:550
+#, scheme-format
+msgid "ESP flag: ~:[off~;on~]"
+msgstr "Marca ESP: ~:[desactivada~;activada~]"
+
+#: gnu/installer/parted.scm:556
+#, scheme-format
+msgid "Size: ~a"
+msgstr "Tamaño: ~a"
+
+#: gnu/installer/parted.scm:562
+#, scheme-format
+msgid "Encryption: ~:[No~a~;Yes (label '~a')~]"
+msgstr "Cifrado: ~:[No~a~;Sí (etiqueta '~a')~]"
+
+#: gnu/installer/parted.scm:568
+#, scheme-format
+msgid "Format the partition? ~:[No~;Yes~]"
+msgstr "¿Se dará formato a la partición? ~:[No~;Sí~]"
+
+# FUZZY
+#: gnu/installer/parted.scm:574
+#, scheme-format
+msgid "Mount point: ~a"
+msgstr "Punto de montaje: ~a"
+
+#: gnu/installer/parted.scm:1374
 #, scheme-format
 msgid "Device ~a is still in use."
 msgstr "El dispositivo ~a está todavía en uso."
 
-#: gnu/installer/services.scm:88
+#: gnu/installer/services.scm:94
 msgid "OpenSSH secure shell daemon (sshd)"
 msgstr "Daemon de shell seguro OpenSSH (sshd)"
 
-#: gnu/installer/services.scm:92
+#: gnu/installer/services.scm:98
 msgid "Tor anonymous network router"
 msgstr "Encaminador de red anónima Tor"
 
 # FUZZY
-#: gnu/installer/services.scm:96
+#: gnu/installer/services.scm:102
 msgid "Mozilla NSS certificates, for HTTPS access"
 msgstr "Certificados NSS de Mozilla, para acceso HTTPS"
 
-#: gnu/installer/services.scm:103
+#: gnu/installer/services.scm:109
 msgid "NetworkManager network connection manager"
 msgstr "Gestor de conexiones de red NetworkManager"
 
-#: gnu/installer/services.scm:108
+#: gnu/installer/services.scm:114
 msgid "Connman network connection manager"
 msgstr "Gestor de conexiones de red Connman"
 
-#: gnu/installer/services.scm:113
+#: gnu/installer/services.scm:119
 msgid "DHCP client (dynamic IP address assignment)"
 msgstr "Cliente DHCP (asignación de IP dinámica)"
 
@@ -1082,30 +1180,30 @@ msgid "Press Enter to continue.~%"
 msgstr "Presione Intro para continuar.~%"
 
 # FUZZY
-#: gnu/installer/utils.scm:101
+#: gnu/installer/utils.scm:102
 #, scheme-format
 msgid "Command failed with exit code ~a.~%"
 msgstr "La orden ha fallado con código de salida ~a.~%"
 
-#: gnu/machine/ssh.scm:108
+#: gnu/machine/ssh.scm:113
 #, scheme-format
 msgid "<machine-ssh-configuration> without a 'host-key' is deprecated~%"
 msgstr "<machine-ssh-configuration> sin 'host-key' está obsoleto~%"
 
-#: gnu/machine/ssh.scm:183
+#: gnu/machine/ssh.scm:188
 #, scheme-format
 msgid "device '~a' not found: ~a"
 msgstr "dispositivo '~a' no encontrado: ~a~%"
 
-#: gnu/machine/ssh.scm:200
+#: gnu/machine/ssh.scm:203
 #, scheme-format
 msgid "no file system with label '~a'"
-msgstr "no se ha encontrado ningún sistema de ficheros con etiqueta '~a'"
+msgstr "no se ha encontrado ningún sistema de archivos con etiqueta '~a'"
 
 #: gnu/machine/ssh.scm:222
 #, scheme-format
 msgid "no file system with UUID '~a'"
-msgstr "no se ha encontrado ningún sistema de ficheros con UUID '~a'"
+msgstr "no se ha encontrado ningún sistema de archivos con UUID '~a'"
 
 #: gnu/machine/ssh.scm:274
 #, scheme-format
@@ -1113,21 +1211,21 @@ msgid "missing modules for ~a:~{ ~a~}~%"
 msgstr "módulos de ~a no encontrados:~{ ~a~}~%"
 
 # FUZZY
-#: gnu/machine/ssh.scm:290
+#: gnu/machine/ssh.scm:309
 #, scheme-format
 msgid "incorrect target system ('~a' was given, while the system reports that it is '~a')~%"
 msgstr "sistema destino incorrecto (se proporcionó '~a', mientras que el sistema informa ser '~a')~%"
 
-#: gnu/machine/ssh.scm:407
+#: gnu/machine/ssh.scm:425
 #, scheme-format
 msgid "no signing key '~a'. have you run 'guix archive --generate-key?'"
 msgstr "no existe la clave de firma '~a'. ¿Ha ejecutado 'guix archive --generate-key'?"
 
-#: gnu/machine/ssh.scm:458
+#: gnu/machine/ssh.scm:476
 msgid "could not roll-back machine"
 msgstr "no se pudo volver a la generación previa en la máquina"
 
-#: gnu/machine/ssh.scm:490
+#: gnu/machine/ssh.scm:514
 msgid ""
 "Provisioning for machines that are accessible over SSH\n"
 "and have a known host-name. This entails little more than maintaining an SSH\n"
@@ -1137,7 +1235,7 @@ msgstr ""
 "y con nombre de máquina conocido. Esto implica poco más que mantener una\n"
 "conexión SSH con la máquina."
 
-#: gnu/machine/ssh.scm:502
+#: gnu/machine/ssh.scm:524
 #, scheme-format
 msgid ""
 "unsupported machine configuration '~a'\n"
@@ -1146,48 +1244,88 @@ msgstr ""
 "configuración de máquina '~a' no implementada\n"
 "para el entorno de tipo '~a'"
 
-#: gnu/packages/bootstrap.scm:137
+#: gnu/packages/bootstrap.scm:152
 #, scheme-format
 msgid "could not find bootstrap binary '~a' for system '~a'"
 msgstr "no se pudo encontrar el binario del lanzamiento inicial '~a' para el sistema '~a'"
 
 # FUZZY
-#: gnu/packages/bootstrap.scm:436
+#: gnu/packages/bootstrap.scm:459
 msgid "Raw build system with direct store access"
 msgstr "Sistema de construcción básico con acceso directo al almacén"
 
-#: gnu/packages/bootstrap.scm:444
+#: gnu/packages/bootstrap.scm:466
+msgid "Bootstrap Guile"
+msgstr "Guile para el lanzamiento inicial"
+
+#: gnu/packages/bootstrap.scm:467
 msgid "Pre-built Guile for bootstrapping purposes."
 msgstr "Guile pre-construido para el lanzamiento inicial."
 
-#: guix/build/utils.scm:713
+#: gnu/packages/bootstrap.scm:650
+msgid "Bootstrap binaries and headers of the GNU C Library"
+msgstr "Binarios y cabeceras de la biblioteca C de GNU para el lanzamiento inicial"
+
+#: gnu/packages/bootstrap.scm:748
+msgid "Bootstrap binaries of the GNU Compiler Collection"
+msgstr "Binarios del compilador GNU GCC para el lanzamiento inicial"
+
+#: gnu/packages/bootstrap.scm:796
+msgid "Bootstrap binaries of MesCC Tools"
+msgstr "Binarios de MesCC Tools para el lanzamiento inicial"
+
+#: gnu/packages/bootstrap.scm:846
+msgid "Bootstrap binaries of Mes"
+msgstr "Binarios de Mes para el lanzamiento inicial"
+
+#: guix/build/utils.scm:715
 #, scheme-format
 msgid "'~a~{ ~a~}' exited with status ~a; output follows:~%~%~{  ~a~%~}"
 msgstr "'~a~{ ~a~}' salió con estado ~a; la salida fue la siguiente:~%~%~{  ~a~%~}"
 
-#: guix/scripts.scm:61
+#: guix/scripts.scm:85
+msgid "main commands"
+msgstr "órdenes principales"
+
+#: guix/scripts.scm:86
+msgid "software development commands"
+msgstr "órdenes de desarrollo de software"
+
+#: guix/scripts.scm:87
+msgid "packaging commands"
+msgstr "órdenes para paquetes"
+
+#: guix/scripts.scm:88
+msgid "plumbing commands"
+msgstr "órdenes de bajo nivel"
+
+#: guix/scripts.scm:89
+msgid "internal commands"
+msgstr "órdenes internas"
+
+#: guix/scripts.scm:122
 #, scheme-format
 msgid "invalid argument: ~a~%"
 msgstr "parámetro no válido: ~a~%"
 
-#: guix/scripts.scm:89 guix/scripts/download.scm:150
-#: guix/scripts/search.scm:69 guix/scripts/show.scm:69
+#: guix/scripts.scm:150 guix/scripts/download.scm:167
+#: guix/scripts/search.scm:71 guix/scripts/show.scm:71
 #: guix/scripts/import/cran.scm:84 guix/scripts/import/elpa.scm:84
-#: guix/scripts/publish.scm:1020 guix/scripts/edit.scm:87
-#: guix/scripts/describe.scm:258 guix/scripts/processes.scm:230
+#: guix/scripts/publish.scm:1088 guix/scripts/edit.scm:89
+#: guix/scripts/describe.scm:311 guix/scripts/processes.scm:232
 #, scheme-format
 msgid "~A: unrecognized option~%"
 msgstr "~A: opción no reconocida~%"
 
 # FUZZY
-#: guix/scripts.scm:172
+#: guix/scripts.scm:233
 #, scheme-format
 msgid "Your Guix installation is ~a day old.\n"
 msgid_plural "Your Guix installation is ~a days old.\n"
 msgstr[0] "Su instalación de Guix es de hace ~a día.\n"
 msgstr[1] "Su instalación de Guix es de hace ~a días.\n"
 
-#: guix/scripts.scm:178
+#: guix/scripts.scm:239
 #, scheme-format
 msgid ""
 "Consider running 'guix pull' followed by\n"
@@ -1196,13 +1334,13 @@ msgstr ""
 "Considere la ejecución 'guix pull' seguida de\n"
 "'~a' para obtener paquetes actualizados y actualizaciones de seguridad.\n"
 
-#: guix/scripts.scm:242
+#: guix/scripts.scm:303
 #, scheme-format
 msgid "only ~,1f GiB of free space available on ~a~%"
 msgstr "solo hay ~,1f% GiB de espacio libre disponible en ~a~%"
 
 # FUZZY
-#: guix/scripts.scm:244
+#: guix/scripts.scm:305
 msgid ""
 "Consider deleting old profile\n"
 "generations and collecting garbage, along these lines:\n"
@@ -1219,102 +1357,19 @@ msgstr ""
 "@end example\n"
 
 # FUZZY
-#: guix/scripts/build.scm:88
+#: guix/scripts/build.scm:83
 #, scheme-format
 msgid "cannot access build log at '~a':~%"
 msgstr "no se pudo acceder al registro de construcción de construcción en '~a':~%"
 
-#: guix/scripts/build.scm:142
+#: guix/scripts/build.scm:137
 #, scheme-format
 msgid "failed to create GC root `~a': ~a~%"
 msgstr "no se pudo crear la raíz recolector de basura «~a»: ~a~%"
 
-#: guix/scripts/build.scm:247 guix/scripts/build.scm:312
-#, scheme-format
-msgid "invalid replacement specification: ~s~%"
-msgstr "especificación de reemplazo no válida: ~s~%"
-
-#: guix/scripts/build.scm:294
-#, scheme-format
-msgid "the source of ~a is not a Git reference~%"
-msgstr "la fuente de ~a no es una referencia Git~%"
-
-# FUZZY
-#: guix/scripts/build.scm:382
-#, scheme-format
-msgid "~a: invalid Git URL replacement specification~%"
-msgstr "~a: especificación de URL de Git de reemplazo no válida~%"
-
-#: guix/scripts/build.scm:427
-msgid ""
-"\n"
-"      --with-source=SOURCE\n"
-"                         use SOURCE when building the corresponding package"
-msgstr ""
-"\n"
-"      --with-source=FUENTE\n"
-"                         usa FUENTE para la construcción del paquete\n"
-"                         correspondiente"
-
-#: guix/scripts/build.scm:430
-msgid ""
-"\n"
-"      --with-input=PACKAGE=REPLACEMENT\n"
-"                         replace dependency PACKAGE by REPLACEMENT"
-msgstr ""
-"\n"
-"      --with-input=PAQUETE=REEMPLAZO\n"
-"                         reemplaza la dependencia de PAQUETE por REEMPLAZO"
-
-#: guix/scripts/build.scm:433
-msgid ""
-"\n"
-"      --with-graft=PACKAGE=REPLACEMENT\n"
-"                         graft REPLACEMENT on packages that refer to PACKAGE"
-msgstr ""
-"\n"
-"      --with-graft=PAQUETE=REEMPLAZO\n"
-"                         injerta REEMPLAZO en paquetes que hacen referencia\n"
-"                         a PAQUETE"
-
-#: guix/scripts/build.scm:436
-msgid ""
-"\n"
-"      --with-branch=PACKAGE=BRANCH\n"
-"                         build PACKAGE from the latest commit of BRANCH"
-msgstr ""
-"\n"
-"      --with-branch=PAQUETE=RAMA\n"
-"                         construye PAQUETE desde la última revisión de RAMA"
-
-#: guix/scripts/build.scm:439
-msgid ""
-"\n"
-"      --with-commit=PACKAGE=COMMIT\n"
-"                         build PACKAGE from COMMIT"
-msgstr ""
-"\n"
-"      --with-commit=PAQUETE=REVISIÓN\n"
-"                         construye PAQUETE desde REVISIÓN"
-
-#: guix/scripts/build.scm:442
-msgid ""
-"\n"
-"      --with-git-url=PACKAGE=URL\n"
-"                         build PACKAGE from the repository at URL"
-msgstr ""
-"\n"
-"      --with-git-url=PAQUETE=URL\n"
-"                         construye el PAQUETE del repositorio en URL"
-
-#: guix/scripts/build.scm:473
-#, scheme-format
-msgid "transformation '~a' had no effect on ~a~%"
-msgstr "la transformación '~a' no tuvo efecto en ~a~%"
-
-#: guix/scripts/build.scm:491 guix/scripts/search.scm:41
-#: guix/scripts/show.scm:41 guix/scripts/lint.scm:101 guix/scripts/edit.scm:48
-#: guix/scripts/size.scm:246 guix/scripts/graph.scm:509
+#: guix/scripts/build.scm:152 guix/scripts/search.scm:41
+#: guix/scripts/show.scm:41 guix/scripts/lint.scm:107 guix/scripts/edit.scm:48
+#: guix/scripts/size.scm:246 guix/scripts/graph.scm:546
 msgid ""
 "\n"
 "  -L, --load-path=DIR    prepend DIR to the package module search path"
@@ -1323,7 +1378,7 @@ msgstr ""
 "  -L, --load-path=DIR    añade DIR al inicio de la ruta de búsqueda de\n"
 "                         módulos de paquetes"
 
-#: guix/scripts/build.scm:493
+#: guix/scripts/build.scm:154
 msgid ""
 "\n"
 "  -K, --keep-failed      keep build tree of failed builds"
@@ -1332,7 +1387,7 @@ msgstr ""
 "  -K, --keep-failed      mantiene el árbol de construcción de las\n"
 "                         construcciones fallidas"
 
-#: guix/scripts/build.scm:495
+#: guix/scripts/build.scm:156
 msgid ""
 "\n"
 "  -k, --keep-going       keep going when some of the derivations fail"
@@ -1341,7 +1396,7 @@ msgstr ""
 "  -k, --keep-going       sigue adelante cuando falla alguna de\n"
 "                         las derivaciones"
 
-#: guix/scripts/build.scm:497
+#: guix/scripts/build.scm:158
 msgid ""
 "\n"
 "  -n, --dry-run          do not build the derivations"
@@ -1352,7 +1407,7 @@ msgstr ""
 # FUZZY
 # TODO (MAAV): No tengo clara la traducción de substituter, habría que
 # clarificarla y unificarla con el manual.
-#: guix/scripts/build.scm:499
+#: guix/scripts/build.scm:160
 msgid ""
 "\n"
 "      --fallback         fall back to building when the substituter fails"
@@ -1362,7 +1417,7 @@ msgstr ""
 "                         fallen"
 
 # FUZZY
-#: guix/scripts/build.scm:501
+#: guix/scripts/build.scm:162
 msgid ""
 "\n"
 "      --no-substitutes   build instead of resorting to pre-built substitutes"
@@ -1371,7 +1426,7 @@ msgstr ""
 "      --no-substitutes   construye en vez de obtener sustituciones\n"
 "                         preconstruídas"
 
-#: guix/scripts/build.scm:503 guix/scripts/size.scm:235
+#: guix/scripts/build.scm:164 guix/scripts/size.scm:235
 msgid ""
 "\n"
 "      --substitute-urls=URLS\n"
@@ -1381,7 +1436,7 @@ msgstr ""
 "      --substitute-urls=URLS\n"
 "                         obtiene las sustituciones de URLS si están autorizadas"
 
-#: guix/scripts/build.scm:506
+#: guix/scripts/build.scm:167
 msgid ""
 "\n"
 "      --no-grafts        do not graft packages"
@@ -1392,7 +1447,7 @@ msgstr ""
 # FUZZY
 # MAAV (TODO): Hook no tengo claro cómo traducirlo. Habría que unificar
 # con el manual.
-#: guix/scripts/build.scm:508
+#: guix/scripts/build.scm:169
 msgid ""
 "\n"
 "      --no-offload       do not attempt to offload builds"
@@ -1400,7 +1455,7 @@ msgstr ""
 "\n"
 "      --no-offload       no intenta delegar las construcciones"
 
-#: guix/scripts/build.scm:510
+#: guix/scripts/build.scm:171
 msgid ""
 "\n"
 "      --max-silent-time=SECONDS\n"
@@ -1411,7 +1466,7 @@ msgstr ""
 "                         marca la construcción como fallida tras SEGUNDOS\n"
 "                         de silencio"
 
-#: guix/scripts/build.scm:513
+#: guix/scripts/build.scm:174
 msgid ""
 "\n"
 "      --timeout=SECONDS  mark the build as failed after SECONDS of activity"
@@ -1420,7 +1475,7 @@ msgstr ""
 "      --timeout=SEGUNDOS marca la construcción como fallida tras SEGUNDOS\n"
 "                         de actividad"
 
-#: guix/scripts/build.scm:515
+#: guix/scripts/build.scm:176
 msgid ""
 "\n"
 "      --rounds=N         build N times in a row to detect non-determinism"
@@ -1429,7 +1484,7 @@ msgstr ""
 "      --rounds=N         construye N veces seguidas para detectar\n"
 "                         no-determinismo"
 
-#: guix/scripts/build.scm:517
+#: guix/scripts/build.scm:178
 msgid ""
 "\n"
 "  -c, --cores=N          allow the use of up to N CPU cores for the build"
@@ -1438,7 +1493,7 @@ msgstr ""
 "  -c, --cores=N          permite el uso de hasta N núcleos de la CPU\n"
 "                         para la construcción."
 
-#: guix/scripts/build.scm:519
+#: guix/scripts/build.scm:180
 msgid ""
 "\n"
 "  -M, --max-jobs=N       allow at most N build jobs"
@@ -1446,7 +1501,16 @@ msgstr ""
 "\n"
 "  -M, --max-jobs=N       permite N trabajos de construcción como máximo"
 
-#: guix/scripts/build.scm:521
+#: guix/scripts/build.scm:182
+msgid ""
+"\n"
+"      --help-transform   list package transformation options not shown here"
+msgstr ""
+"\n"
+"      --help-transform   enumera las opciones de transformación no\n"
+"                         mostradas aquí"
+
+#: guix/scripts/build.scm:184
 msgid ""
 "\n"
 "      --debug=LEVEL      produce debugging output at LEVEL"
@@ -1454,21 +1518,26 @@ msgstr ""
 "\n"
 "      --debug=NIVEL      el NIVEL de depuración en la salida"
 
-#: guix/scripts/build.scm:538
+#: guix/scripts/build.scm:201
 msgid "'--keep-failed' ignored since you are talking to a remote daemon\n"
 msgstr "'--keep-failed' se ignora ya que se está comunicando con un daemon remoto\n"
 
-#: guix/scripts/build.scm:619
+#: guix/scripts/build.scm:282
 #, scheme-format
 msgid "'--no-build-hook' is deprecated; use '--no-offload' instead~%"
 msgstr "'--no-build-hook' está obsoleto; use '--no-offload'~%"
 
-#: guix/scripts/build.scm:649 guix/scripts/build.scm:656
+#: guix/scripts/build.scm:312 guix/scripts/build.scm:319
 #, scheme-format
 msgid "not a number: '~a' option argument: ~a~%"
 msgstr "no es un número: parámetro de la opción '~a': ~a~%"
 
-#: guix/scripts/build.scm:677
+#: guix/scripts/build.scm:324
+#, scheme-format
+msgid "Available package transformation options:~%"
+msgstr "Opciones de transformación de paquetes disponibles:~%"
+
+#: guix/scripts/build.scm:347
 msgid ""
 "Usage: guix build [OPTION]... PACKAGE-OR-DERIVATION...\n"
 "Build the given PACKAGE-OR-DERIVATION and return their output paths.\n"
@@ -1476,7 +1545,7 @@ msgstr ""
 "Uso: guix build [OPCIÓN]... PAQUETE-O-DERIVACIÓN...\n"
 "Construye el PAQUETE-O-DERIVACIÓN proporcionado y devuelve sus rutas de salida.\n"
 
-#: guix/scripts/build.scm:679
+#: guix/scripts/build.scm:349
 msgid ""
 "\n"
 "  -e, --expression=EXPR  build the package or derivation EXPR evaluates to"
@@ -1485,27 +1554,27 @@ msgstr ""
 "  -e, --expression=EXPR  construye el paquete o la derivación a la que\n"
 "                         EXPR evalúa"
 
-#: guix/scripts/build.scm:681
+#: guix/scripts/build.scm:351
 msgid ""
 "\n"
 "  -f, --file=FILE        build the package or derivation that the code within\n"
 "                         FILE evaluates to"
 msgstr ""
 "\n"
-"  -f, --file=FICHERO     construye el paquete o la derivación a la que el\n"
-"                         código en FICHERO evalúa"
+"  -f, --file=ARCHIVO     construye el paquete o la derivación a la que el\n"
+"                         código en ARCHIVO evalúa"
 
-#: guix/scripts/build.scm:684
+#: guix/scripts/build.scm:354
 msgid ""
 "\n"
 "  -m, --manifest=FILE    build the packages that the manifest given in FILE\n"
 "                         evaluates to"
 msgstr ""
 "\n"
-"  -m, --manifest=FICHERO construye los paquetes que a los que evalúa\n"
-"                         el manifiesto contenido en FICHERO"
+"  -m, --manifest=ARCHIVO construye los paquetes que a los que evalúa\n"
+"                         el manifiesto contenido en ARCHIVO"
 
-#: guix/scripts/build.scm:687
+#: guix/scripts/build.scm:357
 msgid ""
 "\n"
 "  -S, --source           build the packages' source derivations"
@@ -1514,7 +1583,7 @@ msgstr ""
 "  -S, --source           construye las derivaciones de fuentes de\n"
 "                         los paquetes"
 
-#: guix/scripts/build.scm:689
+#: guix/scripts/build.scm:359
 msgid ""
 "\n"
 "      --sources[=TYPE]   build source derivations; TYPE may optionally be one\n"
@@ -1525,8 +1594,8 @@ msgstr ""
 "                         ser de manera opcional \"package\",\n"
 "                         \"all\" (predeterminado) o \"transitive\""
 
-#: guix/scripts/build.scm:692 guix/scripts/pull.scm:114
-#: guix/scripts/pack.scm:925
+#: guix/scripts/build.scm:362 guix/scripts/pull.scm:120
+#: guix/scripts/pack.scm:1073
 msgid ""
 "\n"
 "  -s, --system=SYSTEM    attempt to build for SYSTEM--e.g., \"i686-linux\""
@@ -1535,8 +1604,8 @@ msgstr ""
 "  -s, --system=SISTEMA   intenta la construcción para el SISTEMA--por\n"
 "                         ejemplo, \"i686-linux\""
 
-#: guix/scripts/build.scm:694 guix/scripts/system.scm:963
-#: guix/scripts/pack.scm:927
+#: guix/scripts/build.scm:364 guix/scripts/system.scm:997
+#: guix/scripts/pack.scm:1075
 msgid ""
 "\n"
 "      --target=TRIPLET   cross-build for TRIPLET--e.g., \"armel-linux-gnu\""
@@ -1545,7 +1614,7 @@ msgstr ""
 "      --target=TRIPLETA  construcción cruzada para la TRIPLETA--por\n"
 "                         ejemplo, \"armel-linux-gnu\""
 
-#: guix/scripts/build.scm:696
+#: guix/scripts/build.scm:366
 msgid ""
 "\n"
 "  -d, --derivations      return the derivation paths of the given packages"
@@ -1554,7 +1623,7 @@ msgstr ""
 "  -d, --derivations      devuelve las rutas de las derivaciones de los\n"
 "                         paquetes proporcionados"
 
-#: guix/scripts/build.scm:698
+#: guix/scripts/build.scm:368
 msgid ""
 "\n"
 "      --check            rebuild items to check for non-determinism issues"
@@ -1563,7 +1632,7 @@ msgstr ""
 "      --check            reconstruye elementos para comprobar problemas\n"
 "                         de no-determinismo"
 
-#: guix/scripts/build.scm:700
+#: guix/scripts/build.scm:370
 msgid ""
 "\n"
 "      --repair           repair the specified items"
@@ -1571,23 +1640,23 @@ msgstr ""
 "\n"
 "      --repair           repara los elementos especificados"
 
-#: guix/scripts/build.scm:702 guix/scripts/pack.scm:945
+#: guix/scripts/build.scm:372 guix/scripts/pack.scm:1093
 msgid ""
 "\n"
 "  -r, --root=FILE        make FILE a symlink to the result, and register it\n"
 "                         as a garbage collector root"
 msgstr ""
 "\n"
-"  -r, --root=FICHERO     FICHERO se crea como un enlace simbólico al resultado,\n"
+"  -r, --root=ARCHIVO     ARCHIVO se crea como un enlace simbólico al resultado,\n"
 "                         y se registra como una raíz del recolector de basura"
 
 # FUZZY
 # MAAV: No es literal, pero me parece adecuado.
-#: guix/scripts/build.scm:705 guix/scripts/package.scm:371
-#: guix/scripts/install.scm:36 guix/scripts/remove.scm:36
-#: guix/scripts/upgrade.scm:36 guix/scripts/pull.scm:112
-#: guix/scripts/system.scm:965 guix/scripts/copy.scm:111
-#: guix/scripts/pack.scm:950 guix/scripts/deploy.scm:58
+#: guix/scripts/build.scm:375 guix/scripts/package.scm:385
+#: guix/scripts/install.scm:37 guix/scripts/remove.scm:36
+#: guix/scripts/upgrade.scm:38 guix/scripts/pull.scm:118
+#: guix/scripts/system.scm:999 guix/scripts/copy.scm:115
+#: guix/scripts/pack.scm:1098 guix/scripts/deploy.scm:58
 msgid ""
 "\n"
 "  -v, --verbosity=LEVEL  use the given verbosity LEVEL"
@@ -1596,7 +1665,7 @@ msgstr ""
 "  -v, --verbosity=NIVEL  usa el NIVEL de detalle proporcionado"
 
 # FUZZY
-#: guix/scripts/build.scm:707
+#: guix/scripts/build.scm:377
 msgid ""
 "\n"
 "  -q, --quiet            do not show the build log"
@@ -1604,29 +1673,30 @@ msgstr ""
 "\n"
 "  -q, --quiet            no muestra el registro de construcción"
 
-#: guix/scripts/build.scm:709
+#: guix/scripts/build.scm:379
 msgid ""
 "\n"
 "      --log-file         return the log file names for the given derivations"
 msgstr ""
 "\n"
-"      --log-file         devuelve los nombres de fichero de los registros\n"
+"      --log-file         devuelve los nombres de archivo de los registros\n"
 "                         de las derivaciones proporcionadas"
 
-#: guix/scripts/build.scm:716 guix/scripts/download.scm:98
-#: guix/scripts/package.scm:389 guix/scripts/install.scm:43
-#: guix/scripts/remove.scm:41 guix/scripts/upgrade.scm:43
+#: guix/scripts/build.scm:384 guix/scripts/download.scm:103
+#: guix/scripts/package.scm:401 guix/scripts/install.scm:42
+#: guix/scripts/remove.scm:41 guix/scripts/upgrade.scm:45
 #: guix/scripts/search.scm:36 guix/scripts/show.scm:36 guix/scripts/gc.scm:88
-#: guix/scripts/hash.scm:60 guix/scripts/import.scm:94
-#: guix/scripts/import/cran.scm:47 guix/scripts/pull.scm:120
-#: guix/scripts/substitute.scm:855 guix/scripts/system.scm:968
-#: guix/scripts/lint.scm:104 guix/scripts/publish.scm:98
+#: guix/scripts/git.scm:34 guix/scripts/git/authenticate.scm:110
+#: guix/scripts/hash.scm:65 guix/scripts/import.scm:95
+#: guix/scripts/import/cran.scm:47 guix/scripts/pull.scm:126
+#: guix/scripts/substitute.scm:857 guix/scripts/system.scm:1002
+#: guix/scripts/lint.scm:110 guix/scripts/publish.scm:101
 #: guix/scripts/edit.scm:51 guix/scripts/size.scm:249
-#: guix/scripts/graph.scm:514 guix/scripts/challenge.scm:423
-#: guix/scripts/copy.scm:116 guix/scripts/pack.scm:955
-#: guix/scripts/weather.scm:293 guix/scripts/describe.scm:76
+#: guix/scripts/graph.scm:549 guix/scripts/challenge.scm:423
+#: guix/scripts/copy.scm:120 guix/scripts/pack.scm:1103
+#: guix/scripts/weather.scm:293 guix/scripts/describe.scm:95
 #: guix/scripts/processes.scm:214 guix/scripts/deploy.scm:53
-#: guix/scripts/container.scm:34 guix/scripts/container/exec.scm:43
+#: guix/scripts/container.scm:35 guix/scripts/container/exec.scm:43
 msgid ""
 "\n"
 "  -h, --help             display this help and exit"
@@ -1634,20 +1704,21 @@ msgstr ""
 "\n"
 "  -h, --help             muestra este mensaje de ayuda y termina"
 
-#: guix/scripts/build.scm:718 guix/scripts/download.scm:100
-#: guix/scripts/package.scm:391 guix/scripts/install.scm:45
-#: guix/scripts/remove.scm:43 guix/scripts/upgrade.scm:45
+#: guix/scripts/build.scm:386 guix/scripts/download.scm:105
+#: guix/scripts/package.scm:403 guix/scripts/install.scm:44
+#: guix/scripts/remove.scm:43 guix/scripts/upgrade.scm:47
 #: guix/scripts/search.scm:38 guix/scripts/show.scm:38 guix/scripts/gc.scm:90
-#: guix/scripts/hash.scm:62 guix/scripts/import.scm:96
-#: guix/scripts/import/cran.scm:51 guix/scripts/pull.scm:122
-#: guix/scripts/substitute.scm:857 guix/scripts/system.scm:970
-#: guix/scripts/lint.scm:108 guix/scripts/publish.scm:100
+#: guix/scripts/git.scm:36 guix/scripts/git/authenticate.scm:112
+#: guix/scripts/hash.scm:67 guix/scripts/import.scm:97
+#: guix/scripts/import/cran.scm:51 guix/scripts/pull.scm:128
+#: guix/scripts/substitute.scm:859 guix/scripts/system.scm:1004
+#: guix/scripts/lint.scm:114 guix/scripts/publish.scm:103
 #: guix/scripts/edit.scm:53 guix/scripts/size.scm:251
-#: guix/scripts/graph.scm:516 guix/scripts/challenge.scm:425
-#: guix/scripts/copy.scm:118 guix/scripts/pack.scm:957
-#: guix/scripts/weather.scm:295 guix/scripts/describe.scm:78
+#: guix/scripts/graph.scm:551 guix/scripts/challenge.scm:425
+#: guix/scripts/copy.scm:122 guix/scripts/pack.scm:1105
+#: guix/scripts/weather.scm:295 guix/scripts/describe.scm:97
 #: guix/scripts/processes.scm:216 guix/scripts/deploy.scm:55
-#: guix/scripts/container.scm:36 guix/scripts/container/exec.scm:45
+#: guix/scripts/container.scm:37 guix/scripts/container/exec.scm:45
 msgid ""
 "\n"
 "  -V, --version          display version information and exit"
@@ -1655,7 +1726,7 @@ msgstr ""
 "\n"
 "  -V, --version          muestra información de la versión y termina"
 
-#: guix/scripts/build.scm:745
+#: guix/scripts/build.scm:413
 #, scheme-format
 msgid ""
 "invalid argument: '~a' option argument: ~a, ~\n"
@@ -1665,37 +1736,83 @@ msgstr ""
 "debe ser o bien 'package', o 'all' o 'transitive'~%"
 
 # FUZZY
-#: guix/scripts/build.scm:806
+#: guix/scripts/build.scm:475
 #, scheme-format
 msgid "~s: not something we can build~%"
 msgstr "~s: no es algo que podamos construir~%"
 
-#: guix/scripts/build.scm:888
+#: guix/scripts/build.scm:480
+msgid ""
+"If you build from a file, make sure the last Scheme\n"
+"expression returns a package value.  @code{define-public} defines a variable,\n"
+"but returns @code{#<unspecified>}.  To fix this, add a Scheme expression at\n"
+"the end of the file that consists only of the package's variable name you\n"
+"defined, as in this example:\n"
+"\n"
+"@example\n"
+"(define-public my-package\n"
+"  (package\n"
+"    ...))\n"
+"\n"
+"my-package\n"
+"@end example"
+msgstr ""
+"Si realiza la construcción desde un archivo, asegúrese de que la\n"
+"última expresión Scheme devuelve un paquete como valor.\n"
+"@code{define-public} define una variable, pero devuelve\n"
+"@code{#<unspecified>} como valor. Para obtener el resultado esperado,\n"
+"añada una expresión Scheme al final del archivo que consista\n"
+"únicamente en el nombre de variable que haya definido, como en este\n"
+"ejemplo:\n"
+"\n"
+"@example\n"
+"(define-public mi-paquete\n"
+"  (package\n"
+"    ...))\n"
+"\n"
+"mi-paquete\n"
+"@end example"
+
+#: guix/scripts/build.scm:493
+msgid ""
+"If you build from a file, make sure the last\n"
+"Scheme expression returns a package, gexp, derivation or a list of such\n"
+"values."
+msgstr ""
+"Si realiza la construcción desde un archivo, asegúrese de que la\n"
+"última expresión Scheme devuelve un paquete, una expresión-G, una\n"
+"derivación o una lista de estos valores."
+
+#: guix/scripts/build.scm:579
 #, scheme-format
 msgid "package '~a' has no source~%"
 msgstr "el paquete '~a' no tiene fuentes~%"
 
 # FUZZY
-#: guix/scripts/build.scm:936
+#: guix/scripts/build.scm:627
 #, scheme-format
 msgid "no build log for '~a'~%"
 msgstr "ningún registro de construcción para '~a'~%"
 
+#: guix/scripts/build.scm:636
+msgid "build packages or derivations without installing them"
+msgstr "construye paquetes o derivaciones sin instalarlas"
+
 # FUZZY
 #: guix/discovery.scm:96
 #, scheme-format
 msgid "cannot access `~a': ~a~%"
 msgstr "no se puede acceder a «~a»: ~a~%"
 
-#: guix/lint.scm:180
+#: guix/lint.scm:184
 msgid "description should not be empty"
 msgstr "la descripción no debe estar vacía"
 
-#: guix/lint.scm:191
+#: guix/lint.scm:195
 msgid "Texinfo markup in description is invalid"
 msgstr "el marcado Texinfo en la descripción no es válido"
 
-#: guix/lint.scm:201
+#: guix/lint.scm:205
 #, scheme-format
 msgid ""
 "description should not contain ~\n"
@@ -1707,15 +1824,15 @@ msgstr ""
 # FUZZY
 #. TRANSLATORS: '@code' is Texinfo markup and must be kept
 #. as is.
-#: guix/lint.scm:214
+#: guix/lint.scm:218
 msgid "use @code or similar ornament instead of quotes"
 msgstr "use @code u ornamentos similares en vez de comillas"
 
-#: guix/lint.scm:226
+#: guix/lint.scm:230
 msgid "description should start with an upper-case letter or digit"
 msgstr "la descripción debe empezar con una letra mayúscula o un dígito"
 
-#: guix/lint.scm:244
+#: guix/lint.scm:248
 #, scheme-format
 msgid ""
 "sentences in description should be followed ~\n"
@@ -1724,202 +1841,207 @@ msgstr ""
 "las oraciones en descripción deben separarse ~\n"
 "con dos espacios; posible infracción~p en ~{~a~^, ~}"
 
-#: guix/lint.scm:265
+#: guix/lint.scm:269
 #, scheme-format
 msgid "invalid description: ~s"
 msgstr "descripción no válida: ~s"
 
-#: guix/lint.scm:334
+#: guix/lint.scm:339
 #, scheme-format
 msgid "'~a' should probably be a native input"
 msgstr "probablemente '~a' debería ser una entrada nativa"
 
-#: guix/lint.scm:349
+#: guix/lint.scm:354
 #, scheme-format
 msgid "'~a' should probably not be an input at all"
 msgstr "probablemente '~a' no debería ser una entrada en absoluto"
 
-#: guix/lint.scm:370
+#: guix/lint.scm:375
 msgid "no period allowed at the end of the synopsis"
 msgstr "no se permite un punto al final de la sinopsis"
 
-#: guix/lint.scm:384
+#: guix/lint.scm:389
 msgid "no article allowed at the beginning of the synopsis"
 msgstr "no se permite un artículo al inicio de la sinopsis"
 
-#: guix/lint.scm:393
+#: guix/lint.scm:398
 msgid "synopsis should be less than 80 characters long"
 msgstr "la sinopsis debe tener menos de 80 caracteres"
 
-#: guix/lint.scm:402
+#: guix/lint.scm:407
 msgid "synopsis should start with an upper-case letter or digit"
 msgstr "la sinopsis debe empezar con una letra mayúscula o un dígito"
 
-#: guix/lint.scm:410
+#: guix/lint.scm:415
 msgid "synopsis should not start with the package name"
 msgstr "la sinopsis no debe empezar con el nombre del paquete"
 
-#: guix/lint.scm:424
+#: guix/lint.scm:429
 msgid "Texinfo markup in synopsis is invalid"
 msgstr "el marcado Texinfo de la sinopsis no es válido"
 
-#: guix/lint.scm:439
+#: guix/lint.scm:444
 msgid "synopsis should not be empty"
 msgstr "la sinopsis no debe estar vacía"
 
-#: guix/lint.scm:449
+#: guix/lint.scm:454
 #, scheme-format
 msgid "invalid synopsis: ~s"
 msgstr "sinopsis no válida: ~s"
 
 # FUZZY
-#: guix/lint.scm:567
+#: guix/lint.scm:572
 #, scheme-format
 msgid "URI ~a returned suspiciously small file (~a bytes)"
-msgstr "la URI ~a devolvió un fichero sospechosamente pequeño (~a bytes)"
+msgstr "la URI ~a devolvió un archivo sospechosamente pequeño (~a bytes)"
 
-#: guix/lint.scm:576
+#: guix/lint.scm:581
 #, scheme-format
 msgid "permanent redirect from ~a to ~a"
 msgstr "redirección permanente de ~a a ~a"
 
-#: guix/lint.scm:582
+#: guix/lint.scm:587
 #, scheme-format
 msgid "invalid permanent redirect from ~a"
 msgstr "redirección permanente no válida de ~a"
 
 # FUZZY
-#: guix/lint.scm:588 guix/lint.scm:598
+#: guix/lint.scm:593 guix/lint.scm:603
 #, scheme-format
 msgid "URI ~a not reachable: ~a (~s)"
 msgstr "URI ~a no alcanzable: ~a (~s)"
 
-#: guix/lint.scm:604
+#: guix/lint.scm:609
 #, scheme-format
 msgid "URI ~a domain not found: ~a"
 msgstr "dominio de URI ~a no encontrado: ~a"
 
-#: guix/lint.scm:610
+#: guix/lint.scm:615
 #, scheme-format
 msgid "URI ~a unreachable: ~a"
 msgstr "URI ~a no alcanzable: ~a"
 
-#: guix/lint.scm:618
+#: guix/lint.scm:623
 #, scheme-format
 msgid "TLS certificate error: ~a"
 msgstr "error en el certificado TLS: ~a"
 
-#: guix/lint.scm:645
+#: guix/lint.scm:650
 msgid "invalid value for home page"
 msgstr "valor no válido en página Web del paquete"
 
-#: guix/lint.scm:650
+#: guix/lint.scm:655
 #, scheme-format
 msgid "invalid home page URL: ~s"
 msgstr "URL de la página Web del paquete no válida: ~s"
 
-#: guix/lint.scm:683
+#: guix/lint.scm:698
 msgid "file names of patches should start with the package name"
-msgstr "los nombres de ficheros de los parches deben empezar con el nombre del paquete"
+msgstr "los nombres de archivos de los parches deben empezar con el nombre del paquete"
 
-#: guix/lint.scm:699
+#: guix/lint.scm:714
 #, scheme-format
 msgid "~a: file name is too long"
-msgstr "~a: el nombre de fichero es demasiado largo"
+msgstr "~a: el nombre de archivo es demasiado largo"
 
-#: guix/lint.scm:741
+#: guix/lint.scm:756
 #, scheme-format
 msgid "proposed synopsis: ~s~%"
 msgstr "sinopsis propuesta: ~s~%"
 
-#: guix/lint.scm:755
+#: guix/lint.scm:770
 #, scheme-format
 msgid "proposed description:~%     \"~a\"~%"
 msgstr "descripción propuesta:~%     \"~a\"~%"
 
-#: guix/lint.scm:802
+#: guix/lint.scm:821
 msgid "all the source URIs are unreachable:"
 msgstr "ninguna URI de fuentes es alcanzable:"
 
-#: guix/lint.scm:826
+#: guix/lint.scm:850
 msgid "the source file name should contain the package name"
-msgstr "el nombre de fichero de las fuentes debe contener el nombre del paquete"
+msgstr "el nombre de archivo de las fuentes debe contener el nombre del paquete"
 
-#: guix/lint.scm:838
+#: guix/lint.scm:862
 msgid "the source URI should not be an autogenerated tarball"
 msgstr "la URI de las fuentes no debe ser un archivador tar autogenerado"
 
-#: guix/lint.scm:862
+#: guix/lint.scm:886
 #, scheme-format
 msgid "URL should be 'mirror://~a/~a'"
 msgstr "la URL debe ser 'mirror://~a/~a'"
 
-#: guix/lint.scm:907
+#: guix/lint.scm:931
 #, scheme-format
 msgid "URL should be '~a'"
 msgstr "la URL debe ser '~a'"
 
-#: guix/lint.scm:929 guix/lint.scm:940
+#: guix/lint.scm:953 guix/lint.scm:964 guix/lint.scm:972
 #, scheme-format
 msgid "failed to create ~a derivation: ~a"
 msgstr "no se pudo crear derivación para ~a: ~a"
 
-#: guix/lint.scm:934 guix/lint.scm:955
+#: guix/lint.scm:958 guix/lint.scm:986
 #, scheme-format
 msgid "failed to create ~a derivation: ~s"
 msgstr "no se pudo crear la derivación para ~a: ~s"
 
-#: guix/lint.scm:975
+#: guix/lint.scm:1014
+#, scheme-format
+msgid "propagated inputs ~a and ~a collide"
+msgstr "las entradas propagadas ~a y ~a colisionan"
+
+#: guix/lint.scm:1038
 msgid "invalid license field"
 msgstr "campo license no válido"
 
-#: guix/lint.scm:982
+#: guix/lint.scm:1045
 #, scheme-format
 msgid "~a: HTTP GET error for ~a: ~a (~s)~%"
 msgstr "~a: error HTTP GET para ~a: ~a (~s)~%"
 
-#: guix/lint.scm:992
+#: guix/lint.scm:1055
 #, scheme-format
 msgid "~a: host lookup failure: ~a~%"
 msgstr "~a: fallo en la búsqueda de máquinas: ~a~%"
 
 # FUZZY
-#: guix/lint.scm:997
+#: guix/lint.scm:1060
 #, scheme-format
 msgid "~a: TLS certificate error: ~a"
 msgstr "~a: error de certificado TLS: ~a"
 
-#: guix/lint.scm:1008 guix/ui.scm:795
+#: guix/lint.scm:1071 guix/ui.scm:842
 #, scheme-format
 msgid "~a: ~a~%"
 msgstr "~a: ~a~%"
 
-#: guix/lint.scm:1022
+#: guix/lint.scm:1085
 msgid "while retrieving CVE vulnerabilities"
 msgstr "durante la obtención de vulnerabilidades CVE"
 
-#: guix/lint.scm:1065
+#: guix/lint.scm:1128
 #, scheme-format
 msgid "probably vulnerable to ~a"
 msgstr "probablemente vulnerable a ~a"
 
 # FUZZY
-#: guix/lint.scm:1072
+#: guix/lint.scm:1135
 #, scheme-format
 msgid "while retrieving upstream info for '~a'"
 msgstr "durante la obtención de información oficial para '~a'"
 
-#: guix/lint.scm:1081
+#: guix/lint.scm:1144
 #, scheme-format
 msgid "can be upgraded to ~a"
 msgstr "puede actualizarse a ~a"
 
 # FUZZY
-#: guix/lint.scm:1099
+#: guix/lint.scm:1162
 msgid "Software Heritage rate limit reached; try again later"
 msgstr "límite de la tasa de Software Heritage alcanzado; pruebe de nuevo más tarde"
 
-#: guix/lint.scm:1103
+#: guix/lint.scm:1166
 #, scheme-format
 msgid "'~a' returned ~a"
 msgstr "'~a' devolvió ~a~%"
@@ -1927,135 +2049,145 @@ msgstr "'~a' devolvió ~a~%"
 #. TRANSLATORS: "Software Heritage" is a proper noun
 #. that must remain untranslated.  See
 #. <https://www.softwareheritage.org>.
-#: guix/lint.scm:1142
+#: guix/lint.scm:1205
 msgid "scheduled Software Heritage archival"
 msgstr "archivo planificado en Software Heritage"
 
 # FUZZY
-#: guix/lint.scm:1148
+#: guix/lint.scm:1211
 msgid "archival rate limit exceeded; try again later"
 msgstr "límite de la tasa de archivo superado; pruebe de nuevo más tarde"
 
-#: guix/lint.scm:1160
+#: guix/lint.scm:1226
 msgid "source not archived on Software Heritage"
 msgstr "las fuentes no se encuentran en Software Heritage"
 
-#: guix/lint.scm:1173
+#: guix/lint.scm:1239
 msgid "while connecting to Software Heritage"
 msgstr "durante la conexión a Software Heritage"
 
-#: guix/lint.scm:1188
+#: guix/lint.scm:1254
 #, scheme-format
 msgid "tabulation on line ~a, column ~a"
 msgstr "tabulador en línea ~a, columna ~a"
 
-#: guix/lint.scm:1200
+#: guix/lint.scm:1266
 #, scheme-format
 msgid "trailing white space on line ~a"
 msgstr "espacio en blanco al final de la línea ~a"
 
-#: guix/lint.scm:1214
+#: guix/lint.scm:1280
 #, scheme-format
 msgid "line ~a is way too long (~a characters)"
 msgstr "la línea ~a es demasiado larga (~a caracteres)"
 
 # FUZZY
-#: guix/lint.scm:1228
+#: guix/lint.scm:1294
 msgid "parentheses feel lonely, move to the previous or next line"
 msgstr "el paréntesis se siente solo, muevalo a la línea anterior o posterior"
 
-#: guix/lint.scm:1309
+#: guix/lint.scm:1371
+msgid "source file not found"
+msgstr "archivo de fuentes no encontrado"
+
+#: guix/lint.scm:1383
 msgid "Validate package descriptions"
 msgstr "Valida descripciones de paquete"
 
-#: guix/lint.scm:1313
+#: guix/lint.scm:1387
 msgid "Identify inputs that should be native inputs"
 msgstr "Identifica entradas que deberían ser entradas nativas"
 
-#: guix/lint.scm:1317
+#: guix/lint.scm:1391
 msgid "Identify inputs that shouldn't be inputs at all"
 msgstr "Identifica entradas que no deberían ser entradas en absoluto"
 
 #. TRANSLATORS: <license> is the name of a data type and must not be
 #. translated.
-#: guix/lint.scm:1323
+#: guix/lint.scm:1397
 msgid "Make sure the 'license' field is a <license> or a list thereof"
 msgstr "Asegura que el campo 'license' es un objeto <license> o una lista de ellos"
 
-#: guix/lint.scm:1328
+#: guix/lint.scm:1402
 msgid "Suggest 'mirror://' URLs"
 msgstr "Sugiere URL 'mirror://'"
 
-#: guix/lint.scm:1332
+#: guix/lint.scm:1406
 msgid "Validate file names of sources"
-msgstr "Valida nombres de fichero de fuentes"
+msgstr "Valida nombres de archivo de fuentes"
 
-#: guix/lint.scm:1336
+#: guix/lint.scm:1410
 msgid "Check for autogenerated tarballs"
 msgstr "Comprueba archivadores tar autogenerados"
 
-#: guix/lint.scm:1340
+#: guix/lint.scm:1414
 msgid "Report failure to compile a package to a derivation"
 msgstr "Informa fallos al compilar un paquete en una derivación"
 
-#: guix/lint.scm:1345
+#: guix/lint.scm:1419
+msgid "Report collisions that would occur due to propagated inputs"
+msgstr "Informa de colisiones que puedan ocurrir debido a entradas propagadas"
+
+#: guix/lint.scm:1424
 msgid "Validate file names and availability of patches"
-msgstr "Valida nombres de fichero y disponibilidad de parches"
+msgstr "Valida nombres de archivo y disponibilidad de parches"
 
-#: guix/lint.scm:1349
+#: guix/lint.scm:1428
 msgid "Look for formatting issues in the source"
 msgstr "Busca problemas en el formato de las fuentes"
 
-#: guix/lint.scm:1356
+#: guix/lint.scm:1435
 msgid "Validate package synopses"
 msgstr "Valida sinopsis de paquete"
 
-#: guix/lint.scm:1360
+#: guix/lint.scm:1439
 msgid "Validate synopsis & description of GNU packages"
 msgstr "Valida sinopsis y descripciones de paquetes GNU"
 
-#: guix/lint.scm:1364
+#: guix/lint.scm:1443
 msgid "Validate home-page URLs"
 msgstr "Valida URL de las páginas Web del paquete"
 
-#: guix/lint.scm:1368
+#: guix/lint.scm:1447
 msgid "Validate source URLs"
 msgstr "Valida las URL de las fuentes"
 
-#: guix/lint.scm:1372
+#: guix/lint.scm:1451
 msgid "Suggest GitHub URLs"
 msgstr "Sugiere URL de GitHub"
 
-#: guix/lint.scm:1376
+#: guix/lint.scm:1455
 msgid "Check the Common Vulnerabilities and Exposures (CVE) database"
 msgstr "Comprueba la base de datos de vulnerabilidades y exposiciones comunes (CVE)"
 
 # FUZZY
-#: guix/lint.scm:1381
+#: guix/lint.scm:1460
 msgid "Check the package for new upstream releases"
 msgstr "Comprueba el paquete en busca de nuevas publicaciones oficiales"
 
-#: guix/lint.scm:1385
+#: guix/lint.scm:1464
 msgid "Ensure source code archival on Software Heritage"
 msgstr "Asegura el archivado del código fuente en Software Heritage"
 
-#: guix/scripts/download.scm:84
+#: guix/scripts/download.scm:86
 msgid ""
 "Usage: guix download [OPTION] URL\n"
 "Download the file at URL to the store or to the given file, and print its\n"
 "file name and the hash of its contents.\n"
-"\n"
-"Supported formats: 'nix-base32' (default), 'base32', and 'base16'\n"
-"('hex' and 'hexadecimal' can be used as well).\n"
 msgstr ""
 "Uso: guix download [OPCIÓN] URL\n"
-"Descarga el fichero en URL al almacén o al fichero proporcionado, e\n"
-"imprime su nombre de fichero y el hash de su contenido.\n"
-"\n"
-"Formatos disponibles: 'nix-base32' (predeterminado), 'base32' y\n"
-"'base16' (también se puede usar 'hex' y 'hexadecimal').\n"
+"Descarga el archivo en URL al almacén o al archivo proporcionado, e\n"
+"imprime su nombre de archivo y el hash de su contenido.\n"
 
-#: guix/scripts/download.scm:90 guix/scripts/hash.scm:55
+#: guix/scripts/download.scm:90 guix/scripts/hash.scm:53
+msgid ""
+"Supported formats: 'base64', 'nix-base32' (default), 'base32',\n"
+"and 'base16' ('hex' and 'hexadecimal' can be used as well).\n"
+msgstr ""
+"Formatos disponibles: 'base64', 'nix-base32' (predeterminado),\n"
+"'base32' y 'base16' (también se puede usar 'hex' y 'hexadecimal').\n"
+
+#: guix/scripts/download.scm:93 guix/scripts/hash.scm:60
 msgid ""
 "\n"
 "  -f, --format=FMT       write the hash in the given format"
@@ -2063,7 +2195,15 @@ msgstr ""
 "\n"
 "  -f, --format=FMT       escribe el hash en el formato proporcionado"
 
-#: guix/scripts/download.scm:92
+#: guix/scripts/download.scm:95 guix/scripts/hash.scm:58
+msgid ""
+"\n"
+"  -H, --hash=ALGORITHM   use the given hash ALGORITHM"
+msgstr ""
+"\n"
+"  -H, --hash=ALGORITMO   usa el ALGORITMO de hash proporcionado"
+
+#: guix/scripts/download.scm:97
 msgid ""
 "\n"
 "      --no-check-certificate\n"
@@ -2073,64 +2213,73 @@ msgstr ""
 "      --no-check-certificate\n"
 "                         no valida el certificado de los servidores HTTPS"
 
-#: guix/scripts/download.scm:95
+#: guix/scripts/download.scm:100
 msgid ""
 "\n"
 "  -o, --output=FILE      download to FILE"
 msgstr ""
 "\n"
-"  -o, --output=FICHERO   descarga en FICHERO"
+"  -o, --output=ARCHIVO   descarga en ARCHIVO"
 
-#: guix/scripts/download.scm:118 guix/scripts/hash.scm:83
+#: guix/scripts/download.scm:125 guix/scripts/hash.scm:97
 #, scheme-format
 msgid "unsupported hash format: ~a~%"
 msgstr "formato de hash no implementado: ~a~%"
 
+#: guix/scripts/download.scm:133 guix/scripts/hash.scm:81
+#, scheme-format
+msgid "~a: unknown hash algorithm~%"
+msgstr "~a: algoritmo de hash desconocido~%"
+
+#: guix/scripts/download.scm:161
+msgid "download a file to the store and print its hash"
+msgstr "descarga un archivo al almacén y muestra su hash"
+
 # FUZZY
-#: guix/scripts/download.scm:153 guix/scripts/package.scm:933
-#: guix/scripts/upgrade.scm:79 guix/scripts/publish.scm:1022
+#: guix/scripts/download.scm:170 guix/scripts/package.scm:955
+#: guix/scripts/upgrade.scm:83 guix/scripts/publish.scm:1090
 #, scheme-format
 msgid "~A: extraneous argument~%"
 msgstr "~A: parámetro no conocido~%"
 
-#: guix/scripts/download.scm:161
+#: guix/scripts/download.scm:178
 #, scheme-format
 msgid "no download URI was specified~%"
 msgstr "ninguna URI de descarga fue especificada~%"
 
-#: guix/scripts/download.scm:166
+#: guix/scripts/download.scm:183
 #, scheme-format
 msgid "~a: failed to parse URI~%"
 msgstr "~a: se produjo un fallo al procesar la URI~%"
 
 # FUZZY
-#: guix/scripts/download.scm:176
+#: guix/scripts/download.scm:193
 #, scheme-format
 msgid "~a: download failed~%"
 msgstr "~a: descarga fallida~%"
 
-#: guix/scripts/package.scm:121
+#: guix/scripts/package.scm:125
 #, scheme-format
 msgid "not removing generation ~a, which is current~%"
 msgstr "no se borra la generación ~a, que es la actual~%"
 
 # FUZZY
-#: guix/scripts/package.scm:128
+#: guix/scripts/package.scm:132
 #, scheme-format
 msgid "no matching generation~%"
 msgstr "ninguna generación corresponde con el patrón~%"
 
-#: guix/scripts/package.scm:150
+#: guix/scripts/package.scm:154
 #, scheme-format
 msgid "nothing to be done~%"
 msgstr "nada que hacer~%"
 
-#: guix/scripts/package.scm:250
+#: guix/scripts/package.scm:257
 #, scheme-format
 msgid "package '~a' no longer exists~%"
 msgstr "paquete '~a' ya no existe~%"
 
-#: guix/scripts/package.scm:298
+#: guix/scripts/package.scm:312
 #, scheme-format
 msgid ""
 "Consider setting the necessary environment\n"
@@ -2153,7 +2302,7 @@ msgstr ""
 "\n"
 "Alternativamente, véase @command{guix package --search-paths -p ~s}."
 
-#: guix/scripts/package.scm:326
+#: guix/scripts/package.scm:340
 msgid ""
 "Usage: guix package [OPTION]...\n"
 "Install, remove, or upgrade packages in a single transaction.\n"
@@ -2161,7 +2310,7 @@ msgstr ""
 "Uso: guix package [OPCIÓN]...\n"
 "Instala, elimina o actualiza paquetes en una única transacción.\n"
 
-#: guix/scripts/package.scm:328
+#: guix/scripts/package.scm:342
 msgid ""
 "\n"
 "  -i, --install PACKAGE ...\n"
@@ -2171,7 +2320,7 @@ msgstr ""
 "  -i, --install PAQUETE ...\n"
 "                         instala PAQUETE"
 
-#: guix/scripts/package.scm:331
+#: guix/scripts/package.scm:345
 msgid ""
 "\n"
 "  -e, --install-from-expression=EXP\n"
@@ -2181,7 +2330,7 @@ msgstr ""
 "  -e, --install-from-expression=EXP\n"
 "                         instala el paquete al que EXP evalúa"
 
-#: guix/scripts/package.scm:334
+#: guix/scripts/package.scm:348
 msgid ""
 "\n"
 "  -f, --install-from-file=FILE\n"
@@ -2189,11 +2338,11 @@ msgid ""
 "                         evaluates to"
 msgstr ""
 "\n"
-"  -f, --install-from-file=FICHERO\n"
+"  -f, --install-from-file=ARCHIVO\n"
 "                         instala el paquete al que el código en\n"
-"                         FICHERO evalúa"
+"                         ARCHIVO evalúa"
 
-#: guix/scripts/package.scm:338
+#: guix/scripts/package.scm:352
 msgid ""
 "\n"
 "  -r, --remove PACKAGE ...\n"
@@ -2203,7 +2352,7 @@ msgstr ""
 "  -r, --remove PAQUETE ...\n"
 "                         elimina PAQUETE"
 
-#: guix/scripts/package.scm:341
+#: guix/scripts/package.scm:355
 msgid ""
 "\n"
 "  -u, --upgrade[=REGEXP] upgrade all the installed packages matching REGEXP"
@@ -2212,18 +2361,18 @@ msgstr ""
 "  -u, --upgrade[=REGEXP] actualiza todos los paquetes instalados cuyo nombre\n"
 "                         acepta REGEXP"
 
-#: guix/scripts/package.scm:343
+#: guix/scripts/package.scm:357
 msgid ""
 "\n"
 "  -m, --manifest=FILE    create a new profile generation with the manifest\n"
 "                         from FILE"
 msgstr ""
 "\n"
-"  -m, --manifest=FICHERO crea una nueva generación del perfil con el\n"
-"                         manifiesto del FICHERO"
+"  -m, --manifest=ARCHIVO crea una nueva generación del perfil con el\n"
+"                         manifiesto del ARCHIVO"
 
 # FUZZY
-#: guix/scripts/package.scm:346
+#: guix/scripts/package.scm:360 guix/scripts/upgrade.scm:40
 msgid ""
 "\n"
 "      --do-not-upgrade[=REGEXP] do not upgrade any packages matching REGEXP"
@@ -2231,7 +2380,7 @@ msgstr ""
 "\n"
 "      --do-not-upgrade[=REGEXP] no actualiza ningún paquete que REGEXP acepte"
 
-#: guix/scripts/package.scm:348 guix/scripts/pull.scm:102
+#: guix/scripts/package.scm:362 guix/scripts/pull.scm:108
 msgid ""
 "\n"
 "      --roll-back        roll back to the previous generation"
@@ -2239,7 +2388,7 @@ msgstr ""
 "\n"
 "      --roll-back        vuelve a la generación previa"
 
-#: guix/scripts/package.scm:350
+#: guix/scripts/package.scm:364
 msgid ""
 "\n"
 "      --search-paths[=KIND]\n"
@@ -2250,7 +2399,7 @@ msgstr ""
 "                         muestra las definiciones de variables de entorno\n"
 "                         necesarias"
 
-#: guix/scripts/package.scm:353 guix/scripts/pull.scm:99
+#: guix/scripts/package.scm:367 guix/scripts/pull.scm:105
 msgid ""
 "\n"
 "  -l, --list-generations[=PATTERN]\n"
@@ -2260,7 +2409,7 @@ msgstr ""
 "  -l, --list-generations[=PATRÓN]\n"
 "                         enumera las generaciones que correspondan con PATRÓN"
 
-#: guix/scripts/package.scm:356 guix/scripts/pull.scm:104
+#: guix/scripts/package.scm:370 guix/scripts/pull.scm:110
 msgid ""
 "\n"
 "  -d, --delete-generations[=PATTERN]\n"
@@ -2270,7 +2419,7 @@ msgstr ""
 "  -d, --delete-generations[=PATRÓN]\n"
 "                         borra las generaciones que correspondan con PATRÓN"
 
-#: guix/scripts/package.scm:359 guix/scripts/pull.scm:107
+#: guix/scripts/package.scm:373 guix/scripts/pull.scm:113
 msgid ""
 "\n"
 "  -S, --switch-generation=PATTERN\n"
@@ -2280,17 +2429,17 @@ msgstr ""
 "  -S, --switch-generation=PATRÓN\n"
 "                         cambia a una generación que corresponda con PATRÓN"
 
-#: guix/scripts/package.scm:362 guix/scripts/install.scm:33
-#: guix/scripts/remove.scm:33 guix/scripts/upgrade.scm:34
+#: guix/scripts/package.scm:376 guix/scripts/install.scm:34
+#: guix/scripts/remove.scm:33 guix/scripts/upgrade.scm:36
 msgid ""
 "\n"
 "  -p, --profile=PROFILE  use PROFILE instead of the user's default profile"
 msgstr ""
 "\n"
 "  -p, --profile=PERFIL   usa PERFIL en vez del perfil predeterminado de\n"
-"                         la usuaria"
+"                         la cuenta de usuaria"
 
-#: guix/scripts/package.scm:364
+#: guix/scripts/package.scm:378
 msgid ""
 "\n"
 "      --list-profiles    list the user's profiles"
@@ -2298,7 +2447,7 @@ msgstr ""
 "\n"
 "      --list-profiles    enumera los perfiles de la usuaria"
 
-#: guix/scripts/package.scm:367
+#: guix/scripts/package.scm:381
 msgid ""
 "\n"
 "      --allow-collisions do not treat collisions in the profile as an error"
@@ -2307,7 +2456,7 @@ msgstr ""
 "      --allow-collisions no toma las colisiones en el perfil como errores"
 
 # FUZZY
-#: guix/scripts/package.scm:369
+#: guix/scripts/package.scm:383
 msgid ""
 "\n"
 "      --bootstrap        use the bootstrap Guile to build the profile"
@@ -2317,7 +2466,7 @@ msgstr ""
 "                         el perfil"
 
 # FUZZY
-#: guix/scripts/package.scm:374
+#: guix/scripts/package.scm:388
 msgid ""
 "\n"
 "  -s, --search=REGEXP    search in synopsis and description using REGEXP"
@@ -2325,7 +2474,7 @@ msgstr ""
 "\n"
 "  -s, --search=REGEXP    busca en las sinopsis y descripciones usando REGEXP"
 
-#: guix/scripts/package.scm:376
+#: guix/scripts/package.scm:390
 msgid ""
 "\n"
 "  -I, --list-installed[=REGEXP]\n"
@@ -2335,7 +2484,7 @@ msgstr ""
 "  -I, --list-installed[=REGEXP]\n"
 "                         enumera los paquetes instalados que REGEXP acepte"
 
-#: guix/scripts/package.scm:379
+#: guix/scripts/package.scm:393
 msgid ""
 "\n"
 "  -A, --list-available[=REGEXP]\n"
@@ -2345,7 +2494,7 @@ msgstr ""
 "  -A, --list-available[=REGEXP]\n"
 "                         enumera los paquetes disponibles que REGEXP acepte"
 
-#: guix/scripts/package.scm:382
+#: guix/scripts/package.scm:396
 msgid ""
 "\n"
 "      --show=PACKAGE     show details about PACKAGE"
@@ -2353,41 +2502,45 @@ msgstr ""
 "\n"
 "      --show=PAQUETE     muestra los detalles de PAQUETE"
 
-#: guix/scripts/package.scm:434
+#: guix/scripts/package.scm:449
 #, scheme-format
 msgid "upgrade regexp '~a' looks like a command-line option~%"
 msgstr "la expresión regular de actualización '~a' parece una opción de línea de ordenes~%"
 
 # FUZZY
-#: guix/scripts/package.scm:437
+#: guix/scripts/package.scm:452
 #, scheme-format
 msgid "is this intended?~%"
 msgstr "¿es lo que deseaba?~%"
 
-#: guix/scripts/package.scm:487
+#: guix/scripts/package.scm:502
 #, scheme-format
 msgid "~a: unsupported kind of search path~%"
 msgstr "~a: tipo de ruta de búsqueda no implementado~%"
 
 # FUZZY
-#: guix/scripts/package.scm:619
+#: guix/scripts/package.scm:628
 #, scheme-format
 msgid "cannot install non-package object: ~s~%"
 msgstr "no se puede instalar el objeto ya que no es un paquete: ~s~%"
 
-#: guix/scripts/package.scm:791
+#: guix/scripts/package.scm:809
 #, scheme-format
 msgid "~a~@[@~a~]: package not found~%"
 msgstr "~a~@[@~a~]: paquete no encontrado~%"
 
 # FUZZY
-#: guix/scripts/package.scm:825 guix/scripts/pull.scm:677
+#: guix/scripts/package.scm:844 guix/scripts/pull.scm:687
 #, scheme-format
 msgid "cannot switch to generation '~a'~%"
 msgstr "no se pudo pasar a la generación '~a'~%"
 
+#: guix/scripts/package.scm:949
+msgid "manage packages and profiles"
+msgstr "gestión de paquetes y perfiles"
+
 # FUZZY
-#: guix/scripts/install.scm:30
+#: guix/scripts/install.scm:31
 msgid ""
 "Usage: guix install [OPTION] PACKAGES...\n"
 "Install the given PACKAGES.\n"
@@ -2397,6 +2550,10 @@ msgstr ""
 "Instala los PAQUETES proporcionados.\n"
 "Es un alias de 'guix package -i'.\n"
 
+#: guix/scripts/install.scm:69
+msgid "install packages"
+msgstr "instalación de paquetes"
+
 #: guix/scripts/remove.scm:30
 msgid ""
 "Usage: guix remove [OPTION] PACKAGES...\n"
@@ -2407,8 +2564,12 @@ msgstr ""
 "Elimina los PAQUETES proporcionados.\n"
 "Es un alias de 'guix package -r'.\n"
 
+#: guix/scripts/remove.scm:67
+msgid "remove installed packages"
+msgstr "eliminación de paquetes instalados"
+
 # FUZZY
-#: guix/scripts/upgrade.scm:31
+#: guix/scripts/upgrade.scm:33
 msgid ""
 "Usage: guix upgrade [OPTION] [REGEXP]\n"
 "Upgrade packages that match REGEXP.\n"
@@ -2418,6 +2579,10 @@ msgstr ""
 "Actualiza los paquetes que correspondan con REGEXP.\n"
 "Es un alias de 'guix package -u'.\n"
 
+#: guix/scripts/upgrade.scm:72
+msgid "upgrade packages to their latest version"
+msgstr "actualización de paquetes a su última versión"
+
 #: guix/scripts/search.scm:31
 msgid ""
 "Usage: guix search [OPTION] REGEXPS...\n"
@@ -2434,7 +2599,11 @@ msgstr ""
 "\n"
 "Es un alias de 'guix package -s'.\n"
 
-#: guix/scripts/search.scm:74
+#: guix/scripts/search.scm:61
+msgid "search for packages"
+msgstr "búsqueda de paquetes"
+
+#: guix/scripts/search.scm:76
 #, scheme-format
 msgid "missing arguments: no regular expressions to search for~%"
 msgstr "faltan parámetros: no hay expresiones regulares para la búsqueda~%"
@@ -2457,7 +2626,11 @@ msgstr ""
 "\n"
 "Es un alias de 'guix package --show='.\n"
 
-#: guix/scripts/show.scm:74
+#: guix/scripts/show.scm:61
+msgid "show information about packages"
+msgstr "muestra información sobre los paquetes"
+
+#: guix/scripts/show.scm:76
 #, scheme-format
 msgid "missing arguments: no package to show~%"
 msgstr "faltan parámetros: no hay paquetes para mostrar~%"
@@ -2533,7 +2706,7 @@ msgid ""
 msgstr ""
 "\n"
 "      --optimize         optimiza el almacén mediante la deduplicación de\n"
-"                         ficheros idénticos"
+"                         archivos idénticos"
 
 #: guix/scripts/gc.scm:65
 msgid ""
@@ -2634,39 +2807,139 @@ msgstr "'-d' como alias para '--delete' está obsoleto; use '-D'~%"
 msgid "~s does not denote a duration~%"
 msgstr "~s no denota una duración~%"
 
-#: guix/scripts/gc.scm:249
+#: guix/scripts/gc.scm:224
+msgid "invoke the garbage collector"
+msgstr "invocación del recolector de basura"
+
+#: guix/scripts/gc.scm:251
 msgid "already ~h MiBs available on ~a, nothing to do~%"
 msgstr "ya hay ~h MiB disponibles en ~a, nada que hacer~%"
 
-#: guix/scripts/gc.scm:252
+#: guix/scripts/gc.scm:254
 msgid "freeing ~h MiBs~%"
 msgstr "liberando ~h MiB~%"
 
 # FUZZY
-#: guix/scripts/gc.scm:291
+#: guix/scripts/gc.scm:293
 #, scheme-format
 msgid "extraneous arguments: ~{~a ~}~%"
 msgstr "parámetros no esperados: ~{~a ~}~%"
 
-#: guix/scripts/gc.scm:315 guix/scripts/gc.scm:318
+#: guix/scripts/gc.scm:317 guix/scripts/gc.scm:320
 msgid "freed ~h MiBs~%"
 msgstr "liberados ~h MiB~%"
 
-#: guix/scripts/hash.scm:48
+#: guix/scripts/git.scm:26
+msgid ""
+"Usage: guix git COMMAND ARGS...\n"
+"Operate on Git repositories.\n"
+msgstr ""
+"Uso: guix git ORDEN PARÁMETROS...\n"
+"Opera en repositorios de Git.\n"
+
+#: guix/scripts/git.scm:29 guix/scripts/system.scm:921
+#: guix/scripts/container.scm:30
+msgid "The valid values for ACTION are:\n"
+msgstr "Los valores permitidos para ACCIÓN son:\n"
+
+#: guix/scripts/git.scm:31
+msgid "   authenticate    verify commit signatures and authorizations\n"
+msgstr "   authenticate    verifica firmas de revisión y autorizaciones\n"
+
+#: guix/scripts/git.scm:51
+msgid "operate on Git repositories"
+msgstr "operaciones sobre repositorios Git"
+
+#: guix/scripts/git.scm:57
+#, scheme-format
+msgid "guix git: missing sub-command~%"
+msgstr "guix git: falta la orden~%"
+
+#: guix/scripts/git.scm:67
+#, scheme-format
+msgid "guix git: invalid sub-command~%"
+msgstr "guix git: orden no válida~%"
+
+#: guix/scripts/git/authenticate.scm:81
+#, scheme-format
+msgid "Signing statistics:~%"
+msgstr "Estadísticas de firmas:~%"
+
+#: guix/scripts/git/authenticate.scm:94
+msgid ""
+"Usage: guix git authenticate COMMIT SIGNER [OPTIONS...]\n"
+"Authenticate the given Git checkout using COMMIT/SIGNER as its introduction.\n"
+msgstr ""
+"Uso: guix git authenticate REVISIÓN FIRMA [OPCIONES...]\n"
+"Identifica la revisión de Git proporcionada usando REVISIÓN/FIRMA como su presentación.\n"
+
+#: guix/scripts/git/authenticate.scm:96
 msgid ""
-"Usage: guix hash [OPTION] FILE\n"
-"Return the cryptographic hash of FILE.\n"
 "\n"
-"Supported formats: 'nix-base32' (default), 'base32', and 'base16' ('hex'\n"
-"and 'hexadecimal' can be used as well).\n"
+"  -r, --repository=DIRECTORY\n"
+"                         open the Git repository at DIRECTORY"
 msgstr ""
-"Uso: guix hash [OPCIÓN] FICHERO\n"
-"Devuelve el hash criptográfico del FICHERO.\n"
 "\n"
-"Formatos disponibles: 'nix-base32' (predeterminado), 'base32' y\n"
-"'base16' (también se puede usar 'hex' y 'hexadecimal').\n"
+"  -r, --repository=DIRECTORIO\n"
+"                         abre el repositorio Git en DIRECTORIO"
 
-#: guix/scripts/hash.scm:53
+#: guix/scripts/git/authenticate.scm:99
+msgid ""
+"\n"
+"  -k, --keyring=REFERENCE\n"
+"                         load keyring from REFERENCE, a Git branch"
+msgstr ""
+"\n"
+"  -k, --keyring=REFERENCIA\n"
+"                         carga el anillo de claves de REFERENCIA,\n"
+"                         una rama de Git"
+
+#: guix/scripts/git/authenticate.scm:102
+msgid ""
+"\n"
+"      --stats            display commit signing statistics upon completion"
+msgstr ""
+"\n"
+"      --stats            muestra estadísticas de revisiones tras finalizar"
+
+#: guix/scripts/git/authenticate.scm:104
+msgid ""
+"\n"
+"      --cache-key=KEY    cache authenticated commits under KEY"
+msgstr ""
+"\n"
+"      --cache-key=CLAVE  almacena en caché las revisiones\n"
+"                         validadas por CLAVE"
+
+#: guix/scripts/git/authenticate.scm:106
+msgid ""
+"\n"
+"      --historical-authorizations=FILE\n"
+"                         read historical authorizations from FILE"
+msgstr ""
+"\n"
+"      --historical-authorizations=ARCHIVO\n"
+"                         lee el histórico de autorizaciones de ARCHIVO"
+
+#: guix/scripts/git/authenticate.scm:138
+msgid "Authenticating commits ~a to ~a (~h new commits)...~%"
+msgstr "Verificando revisiones de ~a a ~a (~h nuevas revisiones)...~%"
+
+#: guix/scripts/git/authenticate.scm:178
+#, scheme-format
+msgid "wrong number of arguments; expected COMMIT and SIGNER~%"
+msgstr "número de parámetros incorrecto; se esperaba REVISIÓN y FIRMA~%"
+
+# FUZZY
+#: guix/scripts/hash.scm:50
+msgid ""
+"Usage: guix hash [OPTION] FILE\n"
+"Return the cryptographic hash of FILE.\n"
+msgstr ""
+"Usage: guix hash [OPCIÓN] ARCHIVO\n"
+"Devuelve el hash criptográfico de ARCHIVO.\n"
+
+#: guix/scripts/hash.scm:56
 msgid ""
 "\n"
 "  -x, --exclude-vcs      exclude version control directories"
@@ -2674,28 +2947,32 @@ msgstr ""
 "\n"
 "  -x, --exclude-vcs      excluye directorios de control de versiones"
 
-#: guix/scripts/hash.scm:57
+#: guix/scripts/hash.scm:62
 msgid ""
 "\n"
 "  -r, --recursive        compute the hash on FILE recursively"
 msgstr ""
 "\n"
-"  -r, --recursive        calcula recursivamente el hash en FICHERO"
+"  -r, --recursive        calcula recursivamente el hash en ARCHIVO"
 
-#: guix/scripts/hash.scm:151 guix/ui.scm:391 guix/ui.scm:416 guix/ui.scm:744
-#: guix/ui.scm:766 guix/ui.scm:772 guix/ui.scm:789 guix/ui.scm:842
+#: guix/scripts/hash.scm:121
+msgid "compute the cryptographic hash of a file"
+msgstr "cálculo del hash criptográfico de un archivo"
+
+#: guix/scripts/hash.scm:171 guix/ui.scm:397 guix/ui.scm:428 guix/ui.scm:785
+#: guix/ui.scm:833 guix/ui.scm:889
 #, scheme-format
 msgid "~a~%"
 msgstr "~a~%"
 
-#: guix/scripts/hash.scm:154 guix/scripts/system.scm:1186
-#: guix/scripts/system.scm:1202 guix/scripts/system.scm:1209
-#: guix/scripts/system.scm:1215
+#: guix/scripts/hash.scm:174 guix/scripts/system.scm:1247
+#: guix/scripts/system.scm:1263 guix/scripts/system.scm:1270
+#: guix/scripts/system.scm:1276
 #, scheme-format
 msgid "wrong number of arguments~%"
 msgstr "número de parámetros incorrecto~%"
 
-#: guix/scripts/import.scm:88
+#: guix/scripts/import.scm:89
 msgid ""
 "Usage: guix import IMPORTER ARGS ...\n"
 "Run IMPORTER with ARGS.\n"
@@ -2703,22 +2980,26 @@ msgstr ""
 "Uso: guix import IMPORTADOR PARÁMETROS ...\n"
 "Ejecuta IMPORTADOR con PARÁMETROS.\n"
 
-#: guix/scripts/import.scm:91
+#: guix/scripts/import.scm:92
 msgid "IMPORTER must be one of the importers listed below:\n"
 msgstr "IMPORTADOR debe ser uno de los importadores mostrados a continuación:\n"
 
+#: guix/scripts/import.scm:104
+msgid "import a package definition from an external repository"
+msgstr "importación de definiciones de paquetes desde un repositorio externo"
+
 # FUZZY
-#: guix/scripts/import.scm:105
+#: guix/scripts/import.scm:109
 #, scheme-format
 msgid "guix import: missing importer name~%"
 msgstr "guix import: falta el nombre del importador~%"
 
-#: guix/scripts/import.scm:126
+#: guix/scripts/import.scm:130
 #, scheme-format
 msgid "'~a' import failed~%"
 msgstr "importador '~a' falló~%"
 
-#: guix/scripts/import.scm:127
+#: guix/scripts/import.scm:131
 #, scheme-format
 msgid "~a: invalid importer~%"
 msgstr "~a: importador no válido~%"
@@ -2807,7 +3088,7 @@ msgstr ""
 msgid "failed to download package '~a'~%"
 msgstr "se produjo un fallo al descargar el paquete '~a'~%"
 
-#: guix/scripts/pull.scm:87
+#: guix/scripts/pull.scm:88
 msgid ""
 "Usage: guix pull [OPTION]...\n"
 "Download and deploy the latest version of Guix.\n"
@@ -2815,15 +3096,15 @@ msgstr ""
 "Uso: guix pull [OPCIÓN]...\n"
 "Descarga y despliega la última versión de Guix.\n"
 
-#: guix/scripts/pull.scm:89
+#: guix/scripts/pull.scm:90
 msgid ""
 "\n"
 "  -C, --channels=FILE    deploy the channels defined in FILE"
 msgstr ""
 "\n"
-"  -C, --channels=FICHERO despliega los canales definidos en FICHERO"
+"  -C, --channels=ARCHIVO despliega los canales definidos en ARCHIVO"
 
-#: guix/scripts/pull.scm:91
+#: guix/scripts/pull.scm:92
 msgid ""
 "\n"
 "      --url=URL          download from the Git repository at URL"
@@ -2831,7 +3112,7 @@ msgstr ""
 "\n"
 "      --url=URL          descarga del repositorio Git en URL"
 
-#: guix/scripts/pull.scm:93
+#: guix/scripts/pull.scm:94
 msgid ""
 "\n"
 "      --commit=COMMIT    download the specified COMMIT"
@@ -2840,7 +3121,7 @@ msgstr ""
 "      --commit=REVISIÓN  descarga la REVISIÓN especificada"
 
 # FUZZY
-#: guix/scripts/pull.scm:95
+#: guix/scripts/pull.scm:96
 msgid ""
 "\n"
 "      --branch=BRANCH    download the tip of the specified BRANCH"
@@ -2848,7 +3129,26 @@ msgstr ""
 "\n"
 "      --branch=RAMA      descarga la punta de la RAMA especificada"
 
-#: guix/scripts/pull.scm:97
+#: guix/scripts/pull.scm:98
+msgid ""
+"\n"
+"      --allow-downgrades allow downgrades to earlier channel revisions"
+msgstr ""
+"\n"
+"      --allow-downgrades permite la vuelta a revisiones del\n"
+"                         canal previas"
+
+#: guix/scripts/pull.scm:100
+msgid ""
+"\n"
+"      --disable-authentication\n"
+"                         disable channel authentication"
+msgstr ""
+"\n"
+"      --disable-authentication\n"
+"                         desactiva la verificación de canales"
+
+#: guix/scripts/pull.scm:103
 msgid ""
 "\n"
 "  -N, --news             display news compared to the previous generation"
@@ -2856,7 +3156,7 @@ msgstr ""
 "\n"
 "  -N, --news             muestra novedades con respecto a la generación previa"
 
-#: guix/scripts/pull.scm:110
+#: guix/scripts/pull.scm:116
 #, scheme-format
 msgid ""
 "\n"
@@ -2865,7 +3165,7 @@ msgstr ""
 "\n"
 "  -p, --profile=PERFIL   usa PERFIL en vez de ~/.config/guix/current"
 
-#: guix/scripts/pull.scm:116
+#: guix/scripts/pull.scm:122
 msgid ""
 "\n"
 "      --bootstrap        use the bootstrap Guile to build the new Guix"
@@ -2874,7 +3174,18 @@ msgstr ""
 "      --bootstrap        usa Guile del lanzamiento inicial para construir\n"
 "                         la nueva versión de Guix"
 
-#: guix/scripts/pull.scm:217
+# FUZZY
+#: guix/scripts/pull.scm:211
+#, scheme-format
+msgid "rolling back channel '~a' from ~a to ~a~%"
+msgstr "en el canal '~a': volviendo desde ~a a ~a~%"
+
+#: guix/scripts/pull.scm:214
+#, scheme-format
+msgid "moving channel '~a' from ~a to unrelated commit ~a~%"
+msgstr "moviendo el canal '~a' desde ~a al commit ~a sin relación~%"
+
+#: guix/scripts/pull.scm:243
 msgid "New in this revision:\n"
 msgstr "Nuevo en esta revisión:\n"
 
@@ -2882,40 +3193,40 @@ msgstr "Nuevo en esta revisión:\n"
 #. TRANSLATORS: This describes a "channel"; the first placeholder is
 #. the channel name (e.g., "guix") and the second placeholder is its
 #. URL.
-#: guix/scripts/pull.scm:226
+#: guix/scripts/pull.scm:252
 #, scheme-format
 msgid "    ~a at ~a~%"
 msgstr "    ~a desde ~a~%"
 
-#: guix/scripts/pull.scm:264
+#: guix/scripts/pull.scm:290
 #, scheme-format
 msgid "    commit ~a~%"
 msgstr "    revisión ~a~%"
 
-#: guix/scripts/pull.scm:301
+#: guix/scripts/pull.scm:327
 #, scheme-format
 msgid "News for channel '~a'~%"
 msgstr "Noticias para el canal '~a'~%"
 
-#: guix/scripts/pull.scm:327
+#: guix/scripts/pull.scm:353
 #, scheme-format
 msgid "  ~a new channel:~%"
 msgid_plural "  ~a new channels:~%"
 msgstr[0] "  ~a canal nuevo:~%"
 msgstr[1] "  ~a canales nuevos:~%"
 
-#: guix/scripts/pull.scm:337
+#: guix/scripts/pull.scm:363
 #, scheme-format
 msgid "  ~a channel removed:~%"
 msgid_plural "  ~a channels removed:~%"
 msgstr[0] "  ~a canal eliminado:~%"
 msgstr[1] "  ~a canales eliminados:~%"
 
-#: guix/scripts/pull.scm:413
+#: guix/scripts/pull.scm:439
 msgid "Run @command{guix pull --news} to read all the news."
 msgstr "Ejecute @command{guix pull --news} para leer todas las noticias."
 
-#: guix/scripts/pull.scm:421
+#: guix/scripts/pull.scm:447
 #, scheme-format
 msgid ""
 "After setting @code{PATH}, run\n"
@@ -2924,46 +3235,34 @@ msgstr ""
 "Tras establecer el valor de @code{PATH}, ejecute\n"
 "@command{hash guix} para asegurarsede que su shell hace referencia a @file{~a}."
 
-# FUZZY
-#: guix/scripts/pull.scm:446
-#, scheme-format
-msgid "Git error ~a~%"
-msgstr "Error Git ~a~%"
-
-# FUZZY
-#: guix/scripts/pull.scm:448 guix/git.scm:363
-#, scheme-format
-msgid "Git error: ~a~%"
-msgstr "Error git: ~a~%"
-
-#: guix/scripts/pull.scm:473
+#: guix/scripts/pull.scm:482
 #, scheme-format
 msgid "Migrating profile generations to '~a'...~%"
 msgstr "Migrando las generaciones del perfil a '~a'...~%"
 
-#: guix/scripts/pull.scm:515
+#: guix/scripts/pull.scm:525
 #, scheme-format
 msgid "while creating symlink '~a': ~a~%"
 msgstr "durante la creación del enlace simbólico '~a': ~a~%"
 
-#: guix/scripts/pull.scm:604
+#: guix/scripts/pull.scm:614
 msgid "  ~h new package: ~a~%"
 msgid_plural "  ~h new packages: ~a~%"
 msgstr[0] "  ~h paquete nuevo: ~a~%"
 msgstr[1] "  ~h paquetes nuevos: ~a~%"
 
-#: guix/scripts/pull.scm:612
+#: guix/scripts/pull.scm:622
 msgid "  ~h package upgraded: ~a~%"
 msgid_plural "  ~h packages upgraded: ~a~%"
 msgstr[0] "  ~h paquete actualizado: ~a~%"
 msgstr[1] "  ~h paquetes actualizados: ~a~%"
 
-#: guix/scripts/pull.scm:701
+#: guix/scripts/pull.scm:711
 #, scheme-format
 msgid "'~a' did not return a list of channels~%"
 msgstr "'~a' no ha devuelto una lista de canales~%"
 
-#: guix/scripts/pull.scm:717
+#: guix/scripts/pull.scm:727
 #, scheme-format
 msgid ""
 "The 'GUIX_PULL_URL' environment variable is deprecated.\n"
@@ -2972,7 +3271,11 @@ msgstr ""
 "La variable de entorno 'GUIX_PULL_URL' está obsoleta.\n"
 "Use '~/.config/guix/channels.scm' en vez de dicha variable."
 
-#: guix/scripts/pull.scm:771
+#: guix/scripts/pull.scm:755
+msgid "pull the latest revision of Guix"
+msgstr "obtiene del repositorio la última versión de Guix"
+
+#: guix/scripts/pull.scm:795
 #, scheme-format
 msgid "Building from this channel:~%"
 msgid_plural "Building from these channels:~%"
@@ -3033,38 +3336,38 @@ msgstr "formato no válido del campo de la firma: ~a~%"
 msgid "'~a' does not name a store item~%"
 msgstr "'~a' no nombra un elemento del almacén~%"
 
-#: guix/scripts/substitute.scm:596
+#: guix/scripts/substitute.scm:598
 #, scheme-format
 msgid "~a: host not found: ~a~%"
 msgstr "~a: máquina no encontrada: ~a~%"
 
-#: guix/scripts/substitute.scm:602
+#: guix/scripts/substitute.scm:604
 #, scheme-format
 msgid "~a: connection failed: ~a~%"
 msgstr "~a: la conexión ha fallado: ~a~%"
 
-#: guix/scripts/substitute.scm:618
+#: guix/scripts/substitute.scm:620
 #, scheme-format
 msgid "updating substitutes from '~a'... ~5,1f%"
 msgstr "actualizando sustituciones desde '~a'... ~5,1f%"
 
-#: guix/scripts/substitute.scm:689
+#: guix/scripts/substitute.scm:691
 #, scheme-format
 msgid "~s: unsupported server URI scheme~%"
 msgstr "~s: esquema de URI del servidor no implementado~%"
 
-#: guix/scripts/substitute.scm:829
+#: guix/scripts/substitute.scm:831
 #, scheme-format
 msgid "host name lookup error: ~a~%"
 msgstr "error en la búsqueda de nombres de máquinas: ~a~%"
 
-#: guix/scripts/substitute.scm:834
+#: guix/scripts/substitute.scm:836
 #, scheme-format
 msgid "TLS error in procedure '~a': ~a~%"
 msgstr "error TLS en el procedimiento '~a': ~a~%"
 
 # FUZZY
-#: guix/scripts/substitute.scm:845
+#: guix/scripts/substitute.scm:847
 msgid ""
 "Usage: guix substitute [OPTION]...\n"
 "Internal tool to substitute a pre-built binary to a local build.\n"
@@ -3072,7 +3375,7 @@ msgstr ""
 "Uso: guix substitute [OPCIÓN]...\n"
 "Herramienta interna para sustituir con un binario una construcción local.\n"
 
-#: guix/scripts/substitute.scm:847
+#: guix/scripts/substitute.scm:849
 msgid ""
 "\n"
 "      --query            report on the availability of substitutes for the\n"
@@ -3080,10 +3383,10 @@ msgid ""
 msgstr ""
 "\n"
 "      --query            informa de la disponibilidad de sustituciones para\n"
-"                         los nombres de fichero proporcionados por la\n"
+"                         los nombres de archivo proporcionados por la\n"
 "                         entrada estándar"
 
-#: guix/scripts/substitute.scm:850
+#: guix/scripts/substitute.scm:852
 msgid ""
 "\n"
 "      --substitute STORE-FILE DESTINATION\n"
@@ -3091,174 +3394,201 @@ msgid ""
 "                         DESTINATION"
 msgstr ""
 "\n"
-"      --substitute FICHERO-ALMACÉN DESTINO\n"
-"                         descarga FICHERO-ALMACÉN y lo almacena como un Nar\n"
-"                         en el fichero DESTINO"
+"      --substitute ARCHIVO-ALMACÉN DESTINO\n"
+"                         descarga ARCHIVO-ALMACÉN y lo almacena como un Nar\n"
+"                         en el archivo DESTINO"
 
-#: guix/scripts/substitute.scm:971
+#: guix/scripts/substitute.scm:973
 #, scheme-format
 msgid "no valid substitute for '~a'~%"
 msgstr "ninguna sustitución válida para '~a'~%"
 
-#: guix/scripts/substitute.scm:981
+#: guix/scripts/substitute.scm:983
 #, scheme-format
 msgid "Downloading ~a...~%"
 msgstr "Descargando ~a...~%"
 
-#: guix/scripts/substitute.scm:1041
+#: guix/scripts/substitute.scm:1043
 msgid "ACL for archive imports seems to be uninitialized, substitutes may be unavailable\n"
 msgstr ""
 "El control de acceso (ACL) para las importaciones de archivos parece no estar\n"
 "inicializado, las sustituciones pueden no estar disponibles\n"
 
-#: guix/scripts/substitute.scm:1095
+#: guix/scripts/substitute.scm:1097
 #, scheme-format
 msgid "~a: invalid URI~%"
 msgstr "~a: URI no válida~%"
 
-#: guix/scripts/substitute.scm:1166
+#: guix/scripts/substitute.scm:1101
+msgid "implement the build daemon's substituter protocol"
+msgstr "implementación del protocolo de sustituciones del daemon de construcción"
+
+#: guix/scripts/substitute.scm:1171
 #, scheme-format
 msgid "~a: unrecognized options~%"
 msgstr "~a: opciones no reconocidas~%"
 
-#: guix/scripts/authenticate.scm:59
+#: guix/scripts/authenticate.scm:64
 #, scheme-format
-msgid "cannot find public key for secret key '~a'~%"
-msgstr "no se pudo encontrar una clave pública para la clave secreta '~a'~%"
+msgid "failed to load key pair at '~a': ~a~%"
+msgstr "no se pudo cargar el par de claves en '~a': ~a~%"
 
-#: guix/scripts/authenticate.scm:79
+#: guix/scripts/authenticate.scm:86
 #, scheme-format
-msgid "error: invalid signature: ~a~%"
-msgstr "error: firma no válida: ~a~%"
+msgid "invalid signature: ~a"
+msgstr "firma no válida: ~a"
 
-#: guix/scripts/authenticate.scm:81
+#: guix/scripts/authenticate.scm:89
 #, scheme-format
-msgid "error: unauthorized public key: ~a~%"
-msgstr "error: clave pública no autorizada: ~a~%"
+msgid "unauthorized public key: ~a"
+msgstr "clave pública no autorizada: ~a"
 
-#: guix/scripts/authenticate.scm:83
+#: guix/scripts/authenticate.scm:92
 #, scheme-format
-msgid "error: corrupt signature data: ~a~%"
-msgstr "error: datos de firma corruptos: ~a~%"
+msgid "corrupt signature data: ~a"
+msgstr "datos de firma corruptos: ~a"
+
+#: guix/scripts/authenticate.scm:151
+msgid "sign or verify signatures on normalized archives (nars)"
+msgstr "firma o verificación de ficheros normalizados (nar)"
 
 # FUZZY
-#: guix/scripts/authenticate.scm:121
+#: guix/scripts/authenticate.scm:184
 msgid ""
 "Usage: guix authenticate OPTION...\n"
-"Sign or verify the signature on the given file.  This tool is meant to\n"
-"be used internally by 'guix-daemon'.\n"
+"Sign data or verify signatures.  This tool is meant to be used internally by\n"
+"'guix-daemon'.\n"
 msgstr ""
 "Uso: guix authenticate OPCIÓN...\n"
-"Firma o verifica la firma del fichero proporcionado. Esta herramienta está\n"
-"destinada al uso interno por parte de 'guix-daemon'.\n"
+"Firma datos o verifica firmas. Esta herramienta está destinada al uso\n"
+"interno por parte de 'guix-daemon'.\n"
 
-#: guix/scripts/authenticate.scm:127
-msgid "wrong arguments"
-msgstr "parámetros incorrectos"
+#: guix/scripts/authenticate.scm:218
+#, scheme-format
+msgid "~s: invalid command; ignoring~%"
+msgstr "~s: orden no válida; se ignora~%"
+
+#: guix/scripts/authenticate.scm:223
+#, scheme-format
+msgid "wrong arguments~%"
+msgstr "parámetros incorrectos~%"
 
-#: guix/scripts/system.scm:155
+#: guix/scripts/system.scm:161
 #, scheme-format
 msgid "failed to register '~a' under '~a'~%"
 msgstr "no se pudo registrar '~a' bajo '~a'~%"
 
-#: guix/scripts/system.scm:170
+#: guix/scripts/system.scm:176
 #, scheme-format
 msgid "copying to '~a'..."
 msgstr "copiando a '~a'..."
 
-#: guix/scripts/system.scm:197
+#: guix/scripts/system.scm:203
 #, scheme-format
 msgid "initializing the current root file system~%"
-msgstr "inicializando el sistema de ficheros raíz actual~%"
+msgstr "inicializando el sistema de archivos raíz actual~%"
 
 # FUZZY
-#: guix/scripts/system.scm:211
+#: guix/scripts/system.scm:217
 #, scheme-format
 msgid "not running as 'root', so the ownership of '~a' may be incorrect!~%"
 msgstr "¡no se está ejecutando como 'root', por lo que la propiedad de '~a' puede ser incorrecta!~%"
 
-#: guix/scripts/system.scm:241 guix/scripts/system.scm:733
-#: guix/scripts/system.scm:837
+#: guix/scripts/system.scm:247 guix/scripts/system.scm:743
+#: guix/scripts/system.scm:851
 #, scheme-format
 msgid "bootloader successfully installed on '~a'~%"
 msgstr "cargador de arranque instalado satisfactoriamente en '~a'~%"
 
-#: guix/scripts/system.scm:264
+#: guix/scripts/system.scm:270
 #, scheme-format
 msgid "while talking to shepherd: ~a~%"
 msgstr "durante la comunicación con shepherd: ~a~%"
 
-#: guix/scripts/system.scm:271
+#: guix/scripts/system.scm:278
 #, scheme-format
 msgid "service '~a' could not be found~%"
 msgstr "no se pudo encontrar el servicio '~a'~%"
 
-#: guix/scripts/system.scm:274
+#: guix/scripts/system.scm:281
 #, scheme-format
 msgid "service '~a' does not have an action '~a'~%"
 msgstr "el servicio '~a' no tiene una acción '~a'~%"
 
-#: guix/scripts/system.scm:278
+#: guix/scripts/system.scm:285
 #, scheme-format
 msgid "exception caught while executing '~a' on service '~a':~%"
 msgstr "se ha capturado una excepción durante la ejecución de '~a' en el servicio '~a':~%"
 
 # FUZZY
-#: guix/scripts/system.scm:286
+#: guix/scripts/system.scm:293
 #, scheme-format
 msgid "something went wrong: ~s~%"
 msgstr "algo fue mal: ~s~%"
 
-#: guix/scripts/system.scm:289
+#: guix/scripts/system.scm:296
 #, scheme-format
 msgid "shepherd error~%"
 msgstr "error de shepherd~%"
 
-#: guix/scripts/system.scm:353
+#: guix/scripts/system.scm:300
+#, scheme-format
+msgid "some services could not be upgraded~%"
+msgstr "no se pudo actualizar algunos servicios~%"
+
+#: guix/scripts/system.scm:301
+msgid ""
+"To allow changes to all the system services to take\n"
+"effect, you will need to reboot."
+msgstr ""
+"Es necesario que reinicie la máquina para que los cambios tengan\n"
+"efecto sobre todos los servicios del sistema."
+
+#: guix/scripts/system.scm:364
 #, scheme-format
 msgid "cannot switch to system generation '~a'~%"
 msgstr "no se pudo pasar a la generación '~a' del sistema~%"
 
-#: guix/scripts/system.scm:422
+#: guix/scripts/system.scm:438
 msgid "the DAG of services"
 msgstr "el GAD de servicios"
 
-#: guix/scripts/system.scm:435
+#: guix/scripts/system.scm:451
 msgid "the dependency graph of shepherd services"
 msgstr "el grafo de dependencias de los servicios de shepherd"
 
-#: guix/scripts/system.scm:461
+#: guix/scripts/system.scm:466
 #, scheme-format
 msgid "      repository URL: ~a~%"
 msgstr "      URL del repositorio: ~a~%"
 
-#: guix/scripts/system.scm:463
+#: guix/scripts/system.scm:468
 #, scheme-format
 msgid "      branch: ~a~%"
 msgstr "      rama: ~a~%"
 
-#: guix/scripts/system.scm:464
+#: guix/scripts/system.scm:469
 #, scheme-format
 msgid "      commit: ~a~%"
 msgstr "      revisión: ~a~%"
 
-#: guix/scripts/system.scm:486
+#: guix/scripts/system.scm:489
 #, scheme-format
 msgid "  file name: ~a~%"
-msgstr "  nombre de fichero: ~a~%"
+msgstr "  nombre de archivo: ~a~%"
 
-#: guix/scripts/system.scm:487
+#: guix/scripts/system.scm:490
 #, scheme-format
 msgid "  canonical file name: ~a~%"
-msgstr "  nombre canónico de fichero: ~a~%"
+msgstr "  nombre canónico de archivo: ~a~%"
 
 #. TRANSLATORS: Please preserve the two-space indentation.
-#: guix/scripts/system.scm:489
+#: guix/scripts/system.scm:492
 #, scheme-format
 msgid "  label: ~a~%"
 msgstr "  etiqueta: ~a~%"
 
-#: guix/scripts/system.scm:490
+#: guix/scripts/system.scm:493
 #, scheme-format
 msgid "  bootloader: ~a~%"
 msgstr "  cargador de arranque: ~a~%"
@@ -3271,70 +3601,75 @@ msgstr "  cargador de arranque: ~a~%"
 #. root device: label: "my-root"
 #. or just:
 #. root device: /dev/sda3
-#: guix/scripts/system.scm:500
+#: guix/scripts/system.scm:503
 #, scheme-format
 msgid "  root device: ~[UUID: ~a~;label: ~s~;~a~]~%"
 msgstr "  dispositivo raíz: ~[UUID: ~a~;etiqueta: ~s~;~a~]~%"
 
-#: guix/scripts/system.scm:506
+#: guix/scripts/system.scm:509
 #, scheme-format
 msgid "  kernel: ~a~%"
 msgstr "  núcleo: ~a~%"
 
+#: guix/scripts/system.scm:514
+#, scheme-format
+msgid "  multiboot: ~a~%"
+msgstr "  multiboot: ~a~%"
+
 #. TRANSLATORS: Here "channel" is the same terminology as used in
 #. "guix describe" and "guix pull --channels".
-#: guix/scripts/system.scm:516
+#: guix/scripts/system.scm:520
 #, scheme-format
 msgid "  channels:~%"
 msgstr "  canales:~%"
 
-#: guix/scripts/system.scm:519
+#: guix/scripts/system.scm:523
 #, scheme-format
 msgid "  configuration file: ~a~%"
-msgstr "  fichero de configuración: ~a~%"
+msgstr "  archivo de configuración: ~a~%"
 
-#: guix/scripts/system.scm:593
+#: guix/scripts/system.scm:596
 #, scheme-format
-msgid "~a: error: device '~a' not found: ~a~%"
-msgstr "~a: error: dispositivo '~a' no encontrado: ~a~%"
+msgid "device '~a' not found: ~a~%"
+msgstr "dispositivo '~a' no encontrado: ~a~%"
 
-#: guix/scripts/system.scm:597
+#: guix/scripts/system.scm:599
 #, scheme-format
 msgid ""
 "If '~a' is a file system\n"
 "label, write @code{(file-system-label ~s)} in your @code{device} field."
 msgstr ""
 "Si '~a' es una etiqueta\n"
-"del sistema de ficheros, escriba @code{(file-system-label ~s)} en su campo @code{device}."
+"del sistema de archivos, escriba @code{(file-system-label ~s)} en su campo @code{device}."
 
-#: guix/scripts/system.scm:605
+#: guix/scripts/system.scm:608
 #, scheme-format
-msgid "~a: error: file system with label '~a' not found~%"
-msgstr "~a: error: sistema de ficheros con etiqueta '~a' no encontrado~%"
+msgid "file system with label '~a' not found~%"
+msgstr "sistema de archivos con etiqueta '~a' no encontrado~%"
 
-#: guix/scripts/system.scm:610
+#: guix/scripts/system.scm:614
 #, scheme-format
-msgid "~a: error: file system with UUID '~a' not found~%"
-msgstr "~a: error: sistema de ficheros con UUID '~a' no encontrado~%"
+msgid "file system with UUID '~a' not found~%"
+msgstr "sistema de archivos con UUID '~a' no encontrado~%"
 
-#: guix/scripts/system.scm:711
+#: guix/scripts/system.scm:721
 #, scheme-format
 msgid "Consider running 'guix pull' before 'reconfigure'.~%"
 msgstr "Considere ejecutar 'guix pull' antes de 'reconfigure'.~%"
 
 # FUZZY
 # MAAV (TODO): ¿Desactualizar? ¿instalar una versión previa/antigua?
-#: guix/scripts/system.scm:712
+#: guix/scripts/system.scm:722
 #, scheme-format
 msgid "Failing to do that may downgrade your system!~%"
 msgstr "¡En caso de no hacerlo puede desactualizar su sistema!~%"
 
-#: guix/scripts/system.scm:830
+#: guix/scripts/system.scm:844
 #, scheme-format
 msgid "activating system...~%"
 msgstr "activando sistema...~%"
 
-#: guix/scripts/system.scm:841
+#: guix/scripts/system.scm:855
 msgid ""
 "To complete the upgrade, run 'herd restart SERVICE' to stop,\n"
 "upgrade, and restart each service that was not automatically restarted.\n"
@@ -3342,97 +3677,101 @@ msgstr ""
 "Para completar la actualización, ejecute 'herd restart SERVICIO' para parar,\n"
 "actualizar y reiniciar cada servicio que no se reinició automáticamente.\n"
 
+#: guix/scripts/system.scm:858
+msgid "Run 'herd status' to view the list of services on your system.\n"
+msgstr "Ejecute 'herd status' para ver la lista de servicios en su sistema.\n"
+
 # FUZZY
-#: guix/scripts/system.scm:846
+#: guix/scripts/system.scm:862
 #, scheme-format
 msgid "initializing operating system under '~a'...~%"
-msgstr "inicializando el sistema operativo bajo '~a'...~%"
+msgstr "inicializando el sistema operativo en '~a'...~%"
+
+#: guix/scripts/system.scm:907
+msgid "The available image types are:\n"
+msgstr "Los tipos de imagen disponibles son:\n"
 
-#: guix/scripts/system.scm:890
+#: guix/scripts/system.scm:917
 msgid ""
 "Usage: guix system [OPTION ...] ACTION [ARG ...] [FILE]\n"
 "Build the operating system declared in FILE according to ACTION.\n"
 "Some ACTIONS support additional ARGS.\n"
 msgstr ""
-"Uso: guix system [OPCIÓN ...] ACCIÓN [PARÁMETRO ...] [FICHERO]\n"
-"Construye el sistema operativo declarado en FICHERO de acuerdo con ACCIÓN.\n"
+"Uso: guix system [OPCIÓN ...] ACCIÓN [PARÁMETRO ...] [ARCHIVO]\n"
+"Construye el sistema operativo declarado en ARCHIVO de acuerdo con ACCIÓN.\n"
 "Algunas ACCIONES permiten PARÁMETROS adicionales.\n"
 
-#: guix/scripts/system.scm:894 guix/scripts/container.scm:29
-msgid "The valid values for ACTION are:\n"
-msgstr "Los valores permitidos para ACCIÓN son:\n"
-
-#: guix/scripts/system.scm:896
+#: guix/scripts/system.scm:923
 msgid "   search           search for existing service types\n"
 msgstr "   search           busca tipos de servicio existentes\n"
 
-#: guix/scripts/system.scm:898
+#: guix/scripts/system.scm:925
 msgid "   reconfigure      switch to a new operating system configuration\n"
 msgstr "   reconfigure      cambia a una configuración nueva de sistema operativo\n"
 
-#: guix/scripts/system.scm:900
+#: guix/scripts/system.scm:927
 msgid "   roll-back        switch to the previous operating system configuration\n"
 msgstr "   roll-back        cambia a la configuración previa del sistema operativo\n"
 
-#: guix/scripts/system.scm:902
+#: guix/scripts/system.scm:929
 msgid "   describe         describe the current system\n"
 msgstr "   describe         describe el sistema actual\n"
 
-#: guix/scripts/system.scm:904
+#: guix/scripts/system.scm:931
 msgid "   list-generations list the system generations\n"
 msgstr "   list-generations enumera las generaciones del sistema\n"
 
-#: guix/scripts/system.scm:906
+#: guix/scripts/system.scm:933
 msgid "   switch-generation switch to an existing operating system configuration\n"
 msgstr "   switch-generation cambia a configuración existente del sistema operativo\n"
 
-#: guix/scripts/system.scm:908
+#: guix/scripts/system.scm:935
 msgid "   delete-generations delete old system generations\n"
 msgstr "   delete-generations borra generaciones antiguas del sistema\n"
 
-#: guix/scripts/system.scm:910
+#: guix/scripts/system.scm:937
 msgid "   build            build the operating system without installing anything\n"
 msgstr "   build            construye el sistema operativo sin instalar nada\n"
 
-#: guix/scripts/system.scm:912
+#: guix/scripts/system.scm:939
 msgid "   container        build a container that shares the host's store\n"
 msgstr ""
 "   container        construye un contenedor que comparte el almacén\n"
 "                    de la máquina anfitriona\n"
 
-#: guix/scripts/system.scm:914
+#: guix/scripts/system.scm:941
 msgid "   vm               build a virtual machine image that shares the host's store\n"
 msgstr ""
 "   vm               construye una imagen de máquina virtual que comparte el\n"
 "                    almacén de la máquina anfitriona\n"
 
-#: guix/scripts/system.scm:916
+#: guix/scripts/system.scm:943
 msgid "   vm-image         build a freestanding virtual machine image\n"
 msgstr "   vm-image         construye una imagen de máquina virtual independiente\n"
 
-#: guix/scripts/system.scm:918
+#: guix/scripts/system.scm:945
 msgid "   disk-image       build a disk image, suitable for a USB stick\n"
 msgstr ""
 "   disk-image       construye una imagen de disco, adecuada para una\n"
 "                    memoria USB\n"
 
-#: guix/scripts/system.scm:920
+#: guix/scripts/system.scm:947
 msgid "   docker-image     build a Docker image\n"
 msgstr "   docker-image     construye una imagen Docker\n"
 
-#: guix/scripts/system.scm:922
+#: guix/scripts/system.scm:949
 msgid "   init             initialize a root file system to run GNU\n"
-msgstr "   init             inicializa un sistema de ficheros raíz para ejecutar GNU\n"
+msgstr "   init             inicializa un sistema de archivos raíz para ejecutar GNU\n"
 
-#: guix/scripts/system.scm:924
+#: guix/scripts/system.scm:951
 msgid "   extension-graph  emit the service extension graph in Dot format\n"
 msgstr "   extension-graph  emite el grafo de extensiones de servicios en formato Dot\n"
 
-#: guix/scripts/system.scm:926
+#: guix/scripts/system.scm:953
 msgid "   shepherd-graph   emit the graph of shepherd services in Dot format\n"
 msgstr "   shepherd-graph   emite el grafo de servicios de shepherd en formato Dot\n"
 
-#: guix/scripts/system.scm:930
+#: guix/scripts/system.scm:957
 msgid ""
 "\n"
 "  -d, --derivation       return the derivation of the given system"
@@ -3440,7 +3779,7 @@ msgstr ""
 "\n"
 "  -d, --derivation       devuelve la derivación del sistema proporcionado"
 
-#: guix/scripts/system.scm:932
+#: guix/scripts/system.scm:959
 msgid ""
 "\n"
 "  -e, --expression=EXPR  consider the operating-system EXPR evaluates to\n"
@@ -3448,9 +3787,19 @@ msgid ""
 msgstr ""
 "\n"
 "  -e, --expression=EXPR  considera el sistema operativo al cual EXPR evalúa\n"
-"                         en vez de leer FICHERO, cuando sea posible"
+"                         en vez de leer ARCHIVO, cuando sea posible"
 
-#: guix/scripts/system.scm:935
+#: guix/scripts/system.scm:962
+msgid ""
+"\n"
+"      --allow-downgrades for 'reconfigure', allow downgrades to earlier\n"
+"                         channel revisions"
+msgstr ""
+"\n"
+"      --allow-downgrades con 'reconfigure', permite la vuelta\n"
+"                         a revisiones previas del canal"
+
+#: guix/scripts/system.scm:965
 msgid ""
 "\n"
 "      --on-error=STRATEGY\n"
@@ -3461,21 +3810,26 @@ msgstr ""
 "      --on-error=ESTRATEGIA\n"
 "                         aplica ESTRATEGIA (o bien 'nothing-special',\n"
 "                         'backtrace' o 'debug') cuando suceda un error\n"
-"                         durante la lectura de FICHERO"
+"                         durante la lectura de ARCHIVO"
 
-#: guix/scripts/system.scm:939
+#: guix/scripts/system.scm:969
 msgid ""
 "\n"
-"      --file-system-type=TYPE\n"
-"                         for 'disk-image', produce a root file system of TYPE\n"
-"                         (one of 'ext4', 'iso9660')"
+"      --list-image-types list available image types"
 msgstr ""
 "\n"
-"      --file-system-type=TIPO\n"
-"                         para 'disk-image', produce un sistema de ficheros raíz\n"
-"                         de TIPO (uno de 'ext4', 'iso9660')"
+"      --list-image-types enumera los tipos de imagen disponibles"
 
-#: guix/scripts/system.scm:943
+#: guix/scripts/system.scm:971
+msgid ""
+"\n"
+"  -t, --image-type=TYPE  for 'disk-image', produce an image of TYPE"
+msgstr ""
+"\n"
+"  -t, --image-type=TIPO  con 'disk-image', produce una imagen\n"
+"                         del TIPO proporcionado"
+
+#: guix/scripts/system.scm:973
 msgid ""
 "\n"
 "      --image-size=SIZE  for 'vm-image', produce an image of SIZE"
@@ -3484,7 +3838,7 @@ msgstr ""
 "      --image-size=TAMAÑO\n"
 "                         con 'vm-image', produce una imagen de TAMAÑO"
 
-#: guix/scripts/system.scm:945
+#: guix/scripts/system.scm:975
 msgid ""
 "\n"
 "      --no-bootloader    for 'init', do not install a bootloader"
@@ -3492,7 +3846,16 @@ msgstr ""
 "\n"
 "      --no-bootloader    con 'init', no instala un cargador de arranque"
 
-#: guix/scripts/system.scm:947 guix/scripts/pack.scm:938
+#: guix/scripts/system.scm:977
+msgid ""
+"\n"
+"      --label=LABEL      for 'disk-image', label disk image with LABEL"
+msgstr ""
+"\n"
+"      --label=ETIQUETA   con 'disk-image', usa ETIQUETA para la\n"
+"                         imagen de disco"
+
+#: guix/scripts/system.scm:979 guix/scripts/pack.scm:1086
 msgid ""
 "\n"
 "      --save-provenance  save provenance information"
@@ -3501,26 +3864,30 @@ msgstr ""
 "      --save-provenance  almacena información de la proveniencia"
 
 # FUZZY
-#: guix/scripts/system.scm:949
+#: guix/scripts/system.scm:981
 msgid ""
 "\n"
-"      --share=SPEC       for 'vm', share host file system according to SPEC"
+"      --share=SPEC       for 'vm' and 'container', share host file system with\n"
+"                         read/write access according to SPEC"
 msgstr ""
 "\n"
-"      --share=SPEC       con 'vm', comparte el sistema de ficheros del sistema\n"
-"                         anfitrión de acuerdo con SPEC"
+"      --share=SPEC       con 'vm' y 'container', comparte acceso de\n"
+"                         lectura/escritura al sistema de archivos del\n"
+"                         sistema anfitrión según SPEC"
 
 # FUZZY
-#: guix/scripts/system.scm:951
+#: guix/scripts/system.scm:984
 msgid ""
 "\n"
-"      --expose=SPEC      for 'vm', expose host file system according to SPEC"
+"      --expose=SPEC      for 'vm' and 'container', expose host file system\n"
+"                         directory as read-only according to SPEC"
 msgstr ""
 "\n"
-"      --expose=SPEC      con 'vm', expone el sistema de ficheros del sistema\n"
-"                         anfitrión de acuerdo con SPEC"
+"      --expose=SPEC      con 'vm' y 'container', expone el directorio\n"
+"                         del sistema de archivos del anfitrión con\n"
+"                         acceso de solo-lectura según SPEC"
 
-#: guix/scripts/system.scm:953
+#: guix/scripts/system.scm:987
 msgid ""
 "\n"
 "  -N, --network          for 'container', allow containers to access the network"
@@ -3529,7 +3896,7 @@ msgstr ""
 "  -N, --network          para 'container', permite el acceso a la red a los\n"
 "                         contenedores"
 
-#: guix/scripts/system.scm:955
+#: guix/scripts/system.scm:989
 msgid ""
 "\n"
 "  -r, --root=FILE        for 'vm', 'vm-image', 'disk-image', 'container',\n"
@@ -3537,12 +3904,12 @@ msgid ""
 "                         register it as a garbage collector root"
 msgstr ""
 "\n"
-"  -r, --root=FICHERO     con 'vm', 'vm-image', 'disk-image', 'container'\n"
-"                         y 'build', crea FICHERO como un enlace simbólico\n"
+"  -r, --root=ARCHIVO     con 'vm', 'vm-image', 'disk-image', 'container'\n"
+"                         y 'build', crea ARCHIVO como un enlace simbólico\n"
 "                         al resultado y lo registra como una raíz del\n"
 "                         recolector de basura"
 
-#: guix/scripts/system.scm:959
+#: guix/scripts/system.scm:993
 msgid ""
 "\n"
 "      --full-boot        for 'vm', make a full boot sequence"
@@ -3550,56 +3917,60 @@ msgstr ""
 "\n"
 "      --full-boot        con 'vm', genera una secuencia de arranque completa"
 
-#: guix/scripts/system.scm:961
+#: guix/scripts/system.scm:995
 msgid ""
 "\n"
 "      --skip-checks      skip file system and initrd module safety checks"
 msgstr ""
 "\n"
 "      --skip-checks      omite las comprobaciones de seguridad del sistema\n"
-"                         de ficheros y de módulos de initrd"
+"                         de archivos y de módulos de initrd"
 
-#: guix/scripts/system.scm:1078
+#: guix/scripts/system.scm:1132
 #, scheme-format
 msgid "'~a' does not return an operating system~%"
 msgstr "'~a' no devuelve un sistema operativo~%"
 
-#: guix/scripts/system.scm:1101
+#: guix/scripts/system.scm:1155
 #, scheme-format
 msgid "both file and expression cannot be specified~%"
-msgstr "no se pueden especificar tanto el fichero como la expresión~%"
+msgstr "no se pueden especificar tanto el archivo como la expresión~%"
 
-#: guix/scripts/system.scm:1108
+#: guix/scripts/system.scm:1162
 #, scheme-format
 msgid "no configuration specified~%"
 msgstr "ninguna configuración especificada~%"
 
-#: guix/scripts/system.scm:1191
+#: guix/scripts/system.scm:1252
 #, scheme-format
 msgid "no system generation, nothing to describe~%"
 msgstr "ninguna generación del sistema, nada que describir~%"
 
-#: guix/scripts/system.scm:1235
+#: guix/scripts/system.scm:1284
+msgid "build and deploy full operating systems"
+msgstr "construcción y despliegue de sistemas operativos completos"
+
+#: guix/scripts/system.scm:1298
 #, scheme-format
 msgid "~a: unknown action~%"
 msgstr "~a: acción desconocida~%"
 
-#: guix/scripts/system.scm:1251
+#: guix/scripts/system.scm:1314
 #, scheme-format
 msgid "wrong number of arguments for action '~a'~%"
 msgstr "número de parámetros incorrecto para la acción '~a'~%"
 
-#: guix/scripts/system.scm:1256
+#: guix/scripts/system.scm:1319
 #, scheme-format
 msgid "guix system: missing command name~%"
 msgstr "guix system: falta el nombre de la orden~%"
 
-#: guix/scripts/system.scm:1258
+#: guix/scripts/system.scm:1321
 #, scheme-format
 msgid "Try 'guix system --help' for more information.~%"
 msgstr "Pruebe 'guix system --help' para más información.~%"
 
-#: guix/scripts/system/search.scm:92 guix/ui.scm:1443 guix/ui.scm:1461
+#: guix/scripts/system/search.scm:93 guix/ui.scm:1540 guix/ui.scm:1558
 msgid "unknown"
 msgstr "desconocida"
 
@@ -3634,8 +4005,27 @@ msgstr ""
 "  -c, --checkers=COMPROBACIÓN1,COMPROBACIÓN2...\n"
 "                         ejecuta únicamente las comprobaciones especificadas"
 
+#: guix/scripts/lint.scm:101
+msgid ""
+"\n"
+"  -x, --exclude=CHECKER1,CHECKER2...\n"
+"                         exclude the specified checkers"
+msgstr ""
+"\n"
+"  -x, --exclude=COMPROBACIÓN1,COMPROBACIÓN2...\n"
+"                         excluye las comprobaciones especificadas"
+
+#: guix/scripts/lint.scm:104
+msgid ""
+"\n"
+"  -n, --no-network       only run checkers that do not access the network"
+msgstr ""
+"\n"
+"  -n, --no-network       ejecuta únicamente comprobaciones que no necesitan\n"
+"                         acceso a la red."
+
 # FUZZY
-#: guix/scripts/lint.scm:106
+#: guix/scripts/lint.scm:112
 msgid ""
 "\n"
 "  -l, --list-checkers    display the list of available lint checkers"
@@ -3643,11 +4033,15 @@ msgstr ""
 "\n"
 "  -l, --list-checkers    muestra la lista de comprobaciones lint disponibles"
 
-#: guix/scripts/lint.scm:125
+#: guix/scripts/lint.scm:131
 #, scheme-format
 msgid "~a: invalid checker~%"
 msgstr "~a: comprobación no válida~%"
 
+#: guix/scripts/lint.scm:173
+msgid "validate package definitions"
+msgstr "validación de definiciones de paquetes"
+
 # FUZZY
 #: guix/scripts/publish.scm:72
 #, scheme-format
@@ -3680,7 +4074,7 @@ msgid ""
 "  -u, --user=USER        change privileges to USER as soon as possible"
 msgstr ""
 "\n"
-"  -u, --user=USUARIA     cambia los privilegios a los de USUARIA tan pronto\n"
+"  -u, --user=CUENTA      cambia los privilegios a los de CUENTA tan pronto\n"
 "                         como sea posible"
 
 #: guix/scripts/publish.scm:80
@@ -3703,16 +4097,27 @@ msgstr ""
 "  -c, --cache=DIRECTORIO almacena los elementos publicados en caché en\n"
 "                         el DIRECTORIO"
 
-# FUZZY
 #: guix/scripts/publish.scm:85
 msgid ""
 "\n"
+"      --cache-bypass-threshold=SIZE\n"
+"                         serve store items below SIZE even when not cached"
+msgstr ""
+"\n"
+"      --cache-bypass-threshold=LÍMITE\n"
+"                         proporciona elementos del almacén con tamaño menor\n"
+"                         a LÍMITE incluso cuando no están en la caché"
+
+# FUZZY
+#: guix/scripts/publish.scm:88
+msgid ""
+"\n"
 "      --workers=N        use N workers to bake items"
 msgstr ""
 "\n"
 "      --workers=N        usa N trabajadores para cocinar elementos"
 
-#: guix/scripts/publish.scm:87
+#: guix/scripts/publish.scm:90
 msgid ""
 "\n"
 "      --ttl=TTL          announce narinfos can be cached for TTL seconds"
@@ -3721,7 +4126,7 @@ msgstr ""
 "      --ttl=TTL          anuncia que los archivos narinfo pueden estar en caché\n"
 "                         durante TTL segundos"
 
-#: guix/scripts/publish.scm:89
+#: guix/scripts/publish.scm:92
 msgid ""
 "\n"
 "      --nar-path=PATH    use PATH as the prefix for nar URLs"
@@ -3729,26 +4134,26 @@ msgstr ""
 "\n"
 "      --nar-path=RUTA    usa RUTA como prefijo para las URL de nar"
 
-#: guix/scripts/publish.scm:91
+#: guix/scripts/publish.scm:94
 msgid ""
 "\n"
 "      --public-key=FILE  use FILE as the public key for signatures"
 msgstr ""
 "\n"
-"      --public-key=FICHERO\n"
-"                         usa FICHERO como clave pública para firmas"
+"      --public-key=ARCHIVO\n"
+"                         usa ARCHIVO como clave pública para firmas"
 
-#: guix/scripts/publish.scm:93
+#: guix/scripts/publish.scm:96
 msgid ""
 "\n"
 "      --private-key=FILE use FILE as the private key for signatures"
 msgstr ""
 "\n"
-"      --private-key=FICHERO\n"
-"                         usa FICHERO como clave privada para firmas"
+"      --private-key=ARCHIVO\n"
+"                         usa ARCHIVO como clave privada para firmas"
 
 # FUZZY
-#: guix/scripts/publish.scm:95
+#: guix/scripts/publish.scm:98
 msgid ""
 "\n"
 "  -r, --repl[=PORT]      spawn REPL server on PORT"
@@ -3756,42 +4161,46 @@ msgstr ""
 "\n"
 "  -r, --repl[=PUERTO]    lanza un servidor REPL en PUERTO"
 
-#: guix/scripts/publish.scm:111
+#: guix/scripts/publish.scm:114
 #, scheme-format
 msgid "lookup of host '~a' failed: ~a~%"
 msgstr "falló la búsqueda de la máquina '~a': ~a~%"
 
-#: guix/scripts/publish.scm:159
+#: guix/scripts/publish.scm:168
 #, scheme-format
 msgid "lookup of host '~a' returned nothing"
 msgstr "la búsqueda de la máquina '~a' no ha devuelto nada"
 
-#: guix/scripts/publish.scm:182
+#: guix/scripts/publish.scm:191
 #, scheme-format
 msgid "~a: unsupported compression type~%"
 msgstr "~a: tipo de compresión no implementado~%"
 
-#: guix/scripts/publish.scm:196
+#: guix/scripts/publish.scm:209
 #, scheme-format
 msgid "~a: invalid duration~%"
 msgstr "~a: duración no válida~%"
 
-#: guix/scripts/publish.scm:1008
+#: guix/scripts/publish.scm:1073
 #, scheme-format
 msgid "user '~a' not found: ~a~%"
-msgstr "usuaria '~a' no encontrada: ~a~%"
+msgstr "la cuenta '~a' no se ha encontrado: ~a~%"
+
+#: guix/scripts/publish.scm:1083
+msgid "publish build results over HTTP"
+msgstr "publicación de resultados de construcciones a través de HTTP"
 
-#: guix/scripts/publish.scm:1059
+#: guix/scripts/publish.scm:1125
 #, scheme-format
 msgid "server running as root; consider using the '--user' option!~%"
 msgstr "servidor en ejecución como root; ¡considere el uso de la opción '--user'!~%"
 
-#: guix/scripts/publish.scm:1064
+#: guix/scripts/publish.scm:1133
 #, scheme-format
 msgid "publishing ~a on ~a, port ~d~%"
 msgstr "publicando ~a en ~a, puerto ~d~%"
 
-#: guix/scripts/publish.scm:1070
+#: guix/scripts/publish.scm:1139
 #, scheme-format
 msgid "using '~a' compression method, level ~a~%"
 msgstr "usando el método de compresión '~a', nivel ~a~%"
@@ -3804,12 +4213,16 @@ msgstr ""
 "Uso: guix edit PAQUETE...\n"
 "Inicia $VISUAL o $EDITOR para editar las definiciones de PAQUETE...\n"
 
-#: guix/scripts/edit.scm:69
+#: guix/scripts/edit.scm:68
 #, scheme-format
 msgid "file '~a' not found in search path ~s~%"
-msgstr "fichero '~a' no encontrado en la ruta de búsqueda ~s~%"
+msgstr "archivo '~a' no encontrado en la ruta de búsqueda ~s~%"
 
-#: guix/scripts/edit.scm:104
+#: guix/scripts/edit.scm:83
+msgid "view and edit package definitions"
+msgstr "visualización y edición de definiciones de paquetes"
+
+#: guix/scripts/edit.scm:106
 #, scheme-format
 msgid "failed to launch '~a': ~a~%"
 msgstr "no se pudo ejecutar '~a': ~a~%"
@@ -3845,11 +4258,12 @@ msgstr "perfil del almacén"
 
 #: guix/scripts/size.scm:233
 msgid ""
-"Usage: guix size [OPTION]... PACKAGE\n"
-"Report the size of PACKAGE and its dependencies.\n"
+"Usage: guix size [OPTION]... PACKAGE|STORE-ITEM\n"
+"Report the size of the PACKAGE or STORE-ITEM, with its dependencies.\n"
 msgstr ""
-"Uso: guix size [OPCIÓN]... PAQUETE\n"
-"Informa del tamaño de PAQUETE y sus dependencias.\n"
+"Uso: guix size [OPCIÓN]... PAQUETE|ELEMENTO-DEL-ALMACÉN\n"
+"Informa del tamaño de PAQUETE o del ELEMENTO-DEL-ALMACÉN, incluyendo\n"
+"sus dependencias.\n"
 
 #: guix/scripts/size.scm:238
 msgid ""
@@ -3875,14 +4289,18 @@ msgid ""
 "  -m, --map-file=FILE    write to FILE a graphical map of disk usage"
 msgstr ""
 "\n"
-"  -m, --map-file=FICHERO escribe en FICHERO un mapa gráfico del uso del disco"
+"  -m, --map-file=ARCHIVO escribe en ARCHIVO un mapa gráfico del uso del disco"
 
 #: guix/scripts/size.scm:277
 #, scheme-format
 msgid "~a: invalid sorting key~%"
 msgstr "~a: clave de ordenación no válida~%"
 
-#: guix/scripts/size.scm:315
+#: guix/scripts/size.scm:303
+msgid "profile the on-disk size of packages"
+msgstr "perfil del uso de disco de los paquetes"
+
+#: guix/scripts/size.scm:318
 msgid "missing store item argument\n"
 msgstr "falta algún parámetro de elemento del almacén\n"
 
@@ -3924,51 +4342,56 @@ msgstr "el GAD de derivaciones"
 msgid "unsupported argument for derivation graph"
 msgstr "parámetro no implementado para el grafo de derivaciones"
 
-#: guix/scripts/graph.scm:325
+#: guix/scripts/graph.scm:333
 msgid "unsupported argument for this type of graph"
 msgstr "parámetro no implementado para este tipo de grafo"
 
 # FUZZY
-#: guix/scripts/graph.scm:338
+#: guix/scripts/graph.scm:347
 #, scheme-format
 msgid "references for '~a' are not known~%"
 msgstr "las referencias de '~a' no son conocidas~%"
 
-#: guix/scripts/graph.scm:345
+#: guix/scripts/graph.scm:354
 msgid "the DAG of run-time dependencies (store references)"
 msgstr "el GAD de dependencias en tiempo de ejecución (referencias al almacén)"
 
 # FUZZY
 # MAAV: ¿Referentes?
-#: guix/scripts/graph.scm:361
+#: guix/scripts/graph.scm:370
 msgid "the DAG of referrers in the store"
 msgstr "el GAD de referentes en el almacén"
 
-#: guix/scripts/graph.scm:391
+#: guix/scripts/graph.scm:400
 msgid "the graph of package modules"
 msgstr "el grafo de módulos de paquetes"
 
-#: guix/scripts/graph.scm:420
+#: guix/scripts/graph.scm:429
 #, scheme-format
 msgid "~a: unknown node type~%"
 msgstr "~a: tipo de nodo desconocido~%"
 
-#: guix/scripts/graph.scm:427
+#: guix/scripts/graph.scm:436
 #, scheme-format
 msgid "~a: unknown backend~%"
 msgstr "~a: motor desconocido~%"
 
-#: guix/scripts/graph.scm:431
+#: guix/scripts/graph.scm:440
 msgid "The available node types are:\n"
 msgstr "Los tipos de nodo disponibles son:\n"
 
-#: guix/scripts/graph.scm:441
+#: guix/scripts/graph.scm:450
 msgid "The available backend types are:\n"
 msgstr "Los tipos de motor disponibles son:\n"
 
+#: guix/scripts/graph.scm:477
+#, scheme-format
+msgid "no path from '~a' to '~a'~%"
+msgstr "no existe ninguna ruta desde '~a' hasta '~a'~%"
+
 #. TRANSLATORS: Here 'dot' is the name of a program; it must not be
 #. translated.
-#: guix/scripts/graph.scm:494
+#: guix/scripts/graph.scm:529
 msgid ""
 "Usage: guix graph PACKAGE...\n"
 "Emit a representation of the dependency graph of PACKAGE...\n"
@@ -3976,7 +4399,7 @@ msgstr ""
 "Uso: guix graph PAQUETE...\n"
 "Emite una representación del grafo de dependencias de PAQUETE...\n"
 
-#: guix/scripts/graph.scm:496
+#: guix/scripts/graph.scm:531
 msgid ""
 "\n"
 "  -b, --backend=TYPE     produce a graph with the given backend TYPE"
@@ -3984,7 +4407,7 @@ msgstr ""
 "\n"
 "  -b, --backend=TIPO     produce un grafo con el motor TIPO proporcionado"
 
-#: guix/scripts/graph.scm:498
+#: guix/scripts/graph.scm:533
 msgid ""
 "\n"
 "      --list-backends    list the available graph backends"
@@ -3992,7 +4415,7 @@ msgstr ""
 "\n"
 "      --list-backends    enumera los motores de grafo disponibles"
 
-#: guix/scripts/graph.scm:500
+#: guix/scripts/graph.scm:535
 msgid ""
 "\n"
 "  -t, --type=TYPE        represent nodes of the given TYPE"
@@ -4000,7 +4423,7 @@ msgstr ""
 "\n"
 "  -t, --type=TIPO        representa nodos del TIPO proporcionado"
 
-#: guix/scripts/graph.scm:502
+#: guix/scripts/graph.scm:537
 msgid ""
 "\n"
 "      --list-types       list the available graph types"
@@ -4008,7 +4431,16 @@ msgstr ""
 "\n"
 "      --list-types       enumera los tipos de grafo disponibles"
 
-#: guix/scripts/graph.scm:504 guix/scripts/pack.scm:923
+#: guix/scripts/graph.scm:539
+msgid ""
+"\n"
+"      --path             display the shortest path between the given nodes"
+msgstr ""
+"\n"
+"      --path             muestra la ruta más corta entre los nodos\n"
+"                         proporcionados"
+
+#: guix/scripts/graph.scm:541 guix/scripts/pack.scm:1071
 msgid ""
 "\n"
 "  -e, --expression=EXPR  consider the package EXPR evaluates to"
@@ -4016,7 +4448,7 @@ msgstr ""
 "\n"
 "  -e, --expression=EXPR  considera el paquete al que EXPR evalúa"
 
-#: guix/scripts/graph.scm:506
+#: guix/scripts/graph.scm:543
 msgid ""
 "\n"
 "  -s, --system=SYSTEM    consider the graph for SYSTEM--e.g., \"i686-linux\""
@@ -4024,12 +4456,21 @@ msgstr ""
 "\n"
 "  -s, --system=SISTEMA   considera el grafo para SISTEMA--por ejemplo, \"i686-linux\""
 
+#: guix/scripts/graph.scm:568
+msgid "view and query package dependency graphs"
+msgstr "visualización y consulta del grafo de dependencias de paquetes"
+
+#: guix/scripts/graph.scm:604
+#, scheme-format
+msgid "'--path' option requires exactly two nodes (given ~a)~%"
+msgstr "La opción '--path' necesita exáctamente dos nodos (se ha proporcionado ~a)~%"
+
 #: guix/scripts/challenge.scm:301
 #, scheme-format
 msgid "  differing file:~%"
 msgid_plural "  differing files:~%"
-msgstr[0] "  fichero diferente:~%"
-msgstr[1] "  ficheros diferentes:~%"
+msgstr[0] "  archivo diferente:~%"
+msgstr[1] "  archivos diferentes:~%"
 
 #: guix/scripts/challenge.scm:370
 #, scheme-format
@@ -4104,18 +4545,18 @@ msgstr ""
 #: guix/scripts/challenge.scm:418
 msgid ""
 "\n"
-"      -v, --verbose      show details about successful comparisons"
+"  -v, --verbose          show details about successful comparisons"
 msgstr ""
 "\n"
-"      -v, --verbose      muestra detalles de comparaciones satisfactorias"
+"  -v, --verbose      muestra detalles de comparaciones satisfactorias"
 
 #: guix/scripts/challenge.scm:420
 msgid ""
 "\n"
-"          --diff=MODE    show differences according to MODE"
+"      --diff=MODE        show differences according to MODE"
 msgstr ""
 "\n"
-"          --diff=MODO    muestra las diferencias de acuerdo al MODO"
+"      --diff=MODO    muestra las diferencias de acuerdo al MODO"
 
 # FUZZY
 #: guix/scripts/challenge.scm:449
@@ -4123,17 +4564,21 @@ msgstr ""
 msgid "~a: unknown diff mode~%"
 msgstr "~a: modo de diff desconocido~%"
 
-#: guix/scripts/copy.scm:60
+#: guix/scripts/challenge.scm:480
+msgid "challenge substitute servers, comparing their binaries"
+msgstr "comprueba servidores de sustituciones, comparando sus binarios"
+
+#: guix/scripts/copy.scm:61
 #, scheme-format
 msgid "~a: invalid TCP port number~%"
 msgstr "~a: número no válido de puerto TCP~%"
 
-#: guix/scripts/copy.scm:62
+#: guix/scripts/copy.scm:63
 #, scheme-format
 msgid "~a: invalid SSH specification~%"
 msgstr "~a: especificación SSH no válida~%"
 
-#: guix/scripts/copy.scm:105
+#: guix/scripts/copy.scm:109
 msgid ""
 "Usage: guix copy [OPTION]... ITEMS...\n"
 "Copy ITEMS to or from the specified host over SSH.\n"
@@ -4141,7 +4586,7 @@ msgstr ""
 "Uso: guix copy [OPCIÓN]... ELEMENTOS...\n"
 "Copia ELEMENTOS a o desde la máquina especificada a través de SSH.\n"
 
-#: guix/scripts/copy.scm:107
+#: guix/scripts/copy.scm:111
 msgid ""
 "\n"
 "      --to=HOST          send ITEMS to HOST"
@@ -4149,7 +4594,7 @@ msgstr ""
 "\n"
 "      --to=DIRECCIÓN     envía ELEMENTOS a DIRECCIÓN"
 
-#: guix/scripts/copy.scm:109
+#: guix/scripts/copy.scm:113
 msgid ""
 "\n"
 "      --from=HOST        receive ITEMS from HOST"
@@ -4157,23 +4602,27 @@ msgstr ""
 "\n"
 "      --from=DIRECCIÓN   recive ELEMENTOS desde DIRECCIÓN"
 
-#: guix/scripts/copy.scm:183
+#: guix/scripts/copy.scm:175
+msgid "copy store items remotely over SSH"
+msgstr "copia elementos del almacén de manera remota a través de SSH"
+
+#: guix/scripts/copy.scm:192
 #, scheme-format
 msgid "use '--to' or '--from'~%"
 msgstr "use '--to' o '--from'~%"
 
-#: guix/scripts/pack.scm:98
+#: guix/scripts/pack.scm:106
 #, scheme-format
 msgid "~a: compressor not found~%"
 msgstr "~a: compresor no encontrado~%"
 
-#: guix/scripts/pack.scm:283
+#: guix/scripts/pack.scm:313
 #, scheme-format
 msgid "entry point not supported in the '~a' format~%"
 msgstr "punto de entrada no implementado en el formato '~a'~%"
 
 # FUZZY
-#: guix/scripts/pack.scm:661
+#: guix/scripts/pack.scm:694
 #, scheme-format
 msgid ""
 "cross-compilation not implemented here;\n"
@@ -4182,11 +4631,11 @@ msgstr ""
 "la compilación cruzada no está implementada aquí;\n"
 "le rogamos que envíe un correo electrónico a '~a'~%"
 
-#: guix/scripts/pack.scm:804
+#: guix/scripts/pack.scm:954
 msgid "The supported formats for 'guix pack' are:"
 msgstr "Los formatos implementados por 'guix pack' son:"
 
-#: guix/scripts/pack.scm:806
+#: guix/scripts/pack.scm:956
 msgid ""
 "\n"
 "  tarball       Self-contained tarball, ready to run on another machine"
@@ -4195,7 +4644,7 @@ msgstr ""
 "  tarball       Archivador tar autocontenido, preparado para ejecutarse\n"
 "                en otra máquina"
 
-#: guix/scripts/pack.scm:808
+#: guix/scripts/pack.scm:958
 msgid ""
 "\n"
 "  squashfs      Squashfs image suitable for Singularity"
@@ -4203,7 +4652,7 @@ msgstr ""
 "\n"
 "  squashfs      Imagen squashfs adecuada para Singularity"
 
-#: guix/scripts/pack.scm:810
+#: guix/scripts/pack.scm:960
 msgid ""
 "\n"
 "  docker        Tarball ready for 'docker load'"
@@ -4211,19 +4660,19 @@ msgstr ""
 "\n"
 "  docker        Archivador tar preparado para 'docker load'"
 
-#: guix/scripts/pack.scm:879
+#: guix/scripts/pack.scm:1029
 #, scheme-format
 msgid "~a: invalid symlink specification~%"
 msgstr "~a: especificación de enlace simbólico no válida~%"
 
-#: guix/scripts/pack.scm:893
+#: guix/scripts/pack.scm:1043
 #, scheme-format
 msgid "~a: unsupported profile name~%"
 msgstr "~a: nombre de perfil no implementado~%"
 
 # FUZZY
 # MAAV (TODO): Paquete
-#: guix/scripts/pack.scm:911
+#: guix/scripts/pack.scm:1061
 msgid ""
 "Usage: guix pack [OPTION]... PACKAGE...\n"
 "Create a bundle of PACKAGE.\n"
@@ -4231,7 +4680,7 @@ msgstr ""
 "Uso: guix pack [OPCIÓN]... PAQUETE...\n"
 "Crea un empaquetado con PAQUETE.\n"
 
-#: guix/scripts/pack.scm:917
+#: guix/scripts/pack.scm:1065
 msgid ""
 "\n"
 "  -f, --format=FORMAT    build a pack in the given FORMAT"
@@ -4239,7 +4688,7 @@ msgstr ""
 "\n"
 "  -f, --format=FORMATO   construye un empaquetado en el FORMATO especificado"
 
-#: guix/scripts/pack.scm:919
+#: guix/scripts/pack.scm:1067
 msgid ""
 "\n"
 "      --list-formats     list the formats available"
@@ -4249,7 +4698,7 @@ msgstr ""
 
 # FUZZY
 # MAAV: ¿Portables?
-#: guix/scripts/pack.scm:921
+#: guix/scripts/pack.scm:1069
 msgid ""
 "\n"
 "  -R, --relocatable      produce relocatable executables"
@@ -4257,7 +4706,7 @@ msgstr ""
 "\n"
 "  -R, --relocatable      produce ejecutables reposicionables"
 
-#: guix/scripts/pack.scm:929
+#: guix/scripts/pack.scm:1077
 msgid ""
 "\n"
 "  -C, --compression=TOOL compress using TOOL--e.g., \"lzip\""
@@ -4266,7 +4715,7 @@ msgstr ""
 "  -C, --compression=HERRAMIENTA\n"
 "                         comprime con HERRAMIENTA--por ejemplo, \"lzip\""
 
-#: guix/scripts/pack.scm:931
+#: guix/scripts/pack.scm:1079
 msgid ""
 "\n"
 "  -S, --symlink=SPEC     create symlinks to the profile according to SPEC"
@@ -4274,15 +4723,15 @@ msgstr ""
 "\n"
 "  -S, --symlink=SPEC     crea enlaces simbólicos al perfil de acuerdo con SPEC"
 
-#: guix/scripts/pack.scm:933
+#: guix/scripts/pack.scm:1081
 msgid ""
 "\n"
 "  -m, --manifest=FILE    create a pack with the manifest from FILE"
 msgstr ""
 "\n"
-"  -m, --manifest=FICHERO crea un empaquetado con el manifiesto de FICHERO"
+"  -m, --manifest=ARCHIVO crea un empaquetado con el manifiesto de ARCHIVO"
 
-#: guix/scripts/pack.scm:935
+#: guix/scripts/pack.scm:1083
 msgid ""
 "\n"
 "      --entry-point=PROGRAM\n"
@@ -4293,7 +4742,7 @@ msgstr ""
 "                         usa PROGRAMA como punto de entrada del\n"
 "                         empaquetado"
 
-#: guix/scripts/pack.scm:940
+#: guix/scripts/pack.scm:1088
 msgid ""
 "\n"
 "      --localstatedir    include /var/guix in the resulting pack"
@@ -4301,7 +4750,7 @@ msgstr ""
 "\n"
 "      --localstatedir    incluye /var/guix en el empaquetado resultante"
 
-#: guix/scripts/pack.scm:942
+#: guix/scripts/pack.scm:1090
 msgid ""
 "\n"
 "      --profile-name=NAME\n"
@@ -4311,7 +4760,7 @@ msgstr ""
 "      --profile-name=NOMBRE\n"
 "                         genera /var/guix/profiles/.../NOMBRE"
 
-#: guix/scripts/pack.scm:948
+#: guix/scripts/pack.scm:1096
 msgid ""
 "\n"
 "  -d, --derivation       return the derivation of the pack"
@@ -4319,7 +4768,7 @@ msgstr ""
 "\n"
 "  -d, --derivation       devuelve la derivación del empaquetado"
 
-#: guix/scripts/pack.scm:952
+#: guix/scripts/pack.scm:1100
 msgid ""
 "\n"
 "      --bootstrap        use the bootstrap binaries to build the pack"
@@ -4328,32 +4777,36 @@ msgstr ""
 "      --bootstrap        usa los binarios del lanzamiento inicial para\n"
 "                         construir el empaquetado"
 
-#: guix/scripts/pack.scm:1003
+#: guix/scripts/pack.scm:1117
+msgid "create application bundles"
+msgstr "creación de empaquetados de aplicaciones"
+
+#: guix/scripts/pack.scm:1154
 #, scheme-format
 msgid "could not determine provenance of package ~a~%"
 msgstr "no se pudo determinar la proveniencia del paquete ~a~%"
 
-#: guix/scripts/pack.scm:1012
+#: guix/scripts/pack.scm:1168
 #, scheme-format
 msgid "both a manifest and a package list were given~%"
 msgstr "se ha proporcionado tanto un manifiesto como una lista de paquetes~%"
 
-#: guix/scripts/pack.scm:1069
+#: guix/scripts/pack.scm:1227
 #, scheme-format
 msgid "~a: unknown pack format~%"
 msgstr "~a: formato de empaquetado desconocido~%"
 
-#: guix/scripts/pack.scm:1079
+#: guix/scripts/pack.scm:1251
 #, scheme-format
 msgid "no packages specified; building an empty pack~%"
 msgstr "no se especificó ningún paquete; construyendo un empaquetado vacío~%"
 
-#: guix/scripts/pack.scm:1083
+#: guix/scripts/pack.scm:1255
 #, scheme-format
 msgid "Singularity requires you to provide a shell~%"
 msgstr "Singularity necesita que proporcione un shell~%"
 
-#: guix/scripts/pack.scm:1084
+#: guix/scripts/pack.scm:1256
 msgid "Add @code{bash} or @code{bash-minimal} to your package list."
 msgstr "Añada @code{bash} o @code{bash-minimal} a su lista de paquetes."
 
@@ -4366,8 +4819,8 @@ msgid "looking for ~h store items on ~a...~%"
 msgstr "buscando ~h elementos del almacén en ~a...~%"
 
 #: guix/scripts/weather.scm:193
-msgid "  ~2,1f% substitutes available (~h out of ~h)~%"
-msgstr "  ~2,1f% sustituciones disponibles (~h de ~h)~%"
+msgid "  ~,1f% substitutes available (~h out of ~h)~%"
+msgstr "  ~,1f% sustituciones disponibles (~h de ~h)~%"
 
 #: guix/scripts/weather.scm:199
 #, scheme-format
@@ -4504,26 +4957,34 @@ msgstr "~a: URL no válida~%"
 # en castellano pero es debido a que msgen no funciona si se omite el
 # parámetro del número en la frase en singular si fuese un ~d lo que hay
 # en el plural...  
-#: guix/scripts/weather.scm:446
+#: guix/scripts/weather.scm:447
 #, scheme-format
 msgid "The following ~a package is missing from '~a' for '~a':~%"
 msgid_plural "The following ~a packages are missing from '~a' for '~a':~%"
 msgstr[0] "El siguiente ~a paquete falta en '~a' para '~a':~%"
 msgstr[1] "Los siguientes ~a paquetes faltan en '~a' para '~a':~%"
 
-#: guix/scripts/weather.scm:452
+#: guix/scripts/weather.scm:453
 #, scheme-format
 msgid "~a package is missing from '~a' for '~a':~%"
 msgid_plural "~a packages are missing from '~a' for '~a', among which:~%"
 msgstr[0] "Falta ~a paquete de '~a' para '~a':~%"
 msgstr[1] "Faltan ~a paquetes de '~a' para '~a', entre los cuales:~%"
 
-#: guix/scripts/describe.scm:50
+#: guix/scripts/weather.scm:499
+msgid "report on the availability of pre-built package binaries"
+msgstr "información sobre la disponibilidad de binarios preconstruidos"
+
+#: guix/scripts/describe.scm:52
+msgid "The available formats are:\n"
+msgstr "Los formatos disponibles son:\n"
+
+#: guix/scripts/describe.scm:63
 #, scheme-format
 msgid "~a: unsupported output format~%"
 msgstr "~a: formato de salida no implementado~%"
 
-#: guix/scripts/describe.scm:69
+#: guix/scripts/describe.scm:86
 msgid ""
 "Usage: guix describe [OPTION]...\n"
 "Display information about the channels currently in use.\n"
@@ -4531,7 +4992,7 @@ msgstr ""
 "Uso: guix describe [OPCIÓN]...\n"
 "Muestra información sobre los canales en uso actualmente.\n"
 
-#: guix/scripts/describe.scm:71
+#: guix/scripts/describe.scm:88
 msgid ""
 "\n"
 "  -f, --format=FORMAT    display information in the given FORMAT"
@@ -4539,7 +5000,15 @@ msgstr ""
 "\n"
 "  -f, --format=FORMATO   muestra información en el FORMATO proporcionado"
 
-#: guix/scripts/describe.scm:73
+#: guix/scripts/describe.scm:90
+msgid ""
+"\n"
+"      --list-formats     display available formats"
+msgstr ""
+"\n"
+"      --list-formats     enumera los formatos disponibles"
+
+#: guix/scripts/describe.scm:92
 msgid ""
 "\n"
 "  -p, --profile=PROFILE  display information about PROFILE"
@@ -4547,22 +5016,22 @@ msgstr ""
 "\n"
 "  -p, --profile=PERFIL   muestra información sobre PERFIL"
 
-#: guix/scripts/describe.scm:92
+#: guix/scripts/describe.scm:111
 #, scheme-format
 msgid "~%;; warning: GUIX_PACKAGE_PATH=\"~a\"~%"
 msgstr "~%;; aviso: GUIX_PACKAGE_PATH=\"~a\"~%"
 
-#: guix/scripts/describe.scm:95
+#: guix/scripts/describe.scm:114
 #, scheme-format
 msgid "'GUIX_PACKAGE_PATH' is set but it is not captured~%"
 msgstr "Se le ha asignado un valor a 'GUIX_PACKAGE_PATH' pero no se captura~%"
 
-#: guix/scripts/describe.scm:122
+#: guix/scripts/describe.scm:170
 #, scheme-format
 msgid "failed to determine origin~%"
 msgstr "no se pudo determinar el origen~%"
 
-#: guix/scripts/describe.scm:123
+#: guix/scripts/describe.scm:171
 #, scheme-format
 msgid ""
 "Perhaps this\n"
@@ -4570,41 +5039,45 @@ msgid ""
 "string is ~a.~%"
 msgstr "¿Es posible que este ejecutable @command{guix} no se obtuviese con @command{guix pull}? Su cadena de versión es ~a.~%"
 
-#: guix/scripts/describe.scm:133
+#: guix/scripts/describe.scm:181
 #, scheme-format
 msgid "Git checkout:~%"
 msgstr "Copia de trabajo Git:~%"
 
-#: guix/scripts/describe.scm:134
+#: guix/scripts/describe.scm:182
 #, scheme-format
 msgid "  repository: ~a~%"
 msgstr "  repositorio: ~a~%"
 
-#: guix/scripts/describe.scm:135
+#: guix/scripts/describe.scm:183
 #, scheme-format
 msgid "  branch: ~a~%"
 msgstr "  rama: ~a~%"
 
-#: guix/scripts/describe.scm:136
+#: guix/scripts/describe.scm:184
 #, scheme-format
 msgid "  commit: ~a~%"
 msgstr "  revisión: ~a~%"
 
-#: guix/scripts/describe.scm:198
+#: guix/scripts/describe.scm:250
 #, scheme-format
 msgid "    repository URL: ~a~%"
 msgstr "    URL del repositorio: ~a~%"
 
-#: guix/scripts/describe.scm:200
+#: guix/scripts/describe.scm:252
 #, scheme-format
 msgid "    branch: ~a~%"
 msgstr "    rama: ~a~%"
 
-#: guix/scripts/describe.scm:201
+#: guix/scripts/describe.scm:253
 #, scheme-format
 msgid "    commit: ~a~%"
 msgstr "    revisión: ~a~%"
 
+#: guix/scripts/describe.scm:308
+msgid "describe the channel revisions currently used"
+msgstr "descripción de las revisiones del canal usadas en la actualidad"
+
 # FUZZY
 #: guix/scripts/processes.scm:211
 msgid ""
@@ -4614,13 +5087,17 @@ msgstr ""
 "Uso: guix processes\n"
 "Enumera las sesiones Guix actuales y sus procesos."
 
+#: guix/scripts/processes.scm:228
+msgid "list currently running sessions"
+msgstr "enumera las sesiones en ejecución actualmente"
+
 #: guix/scripts/deploy.scm:49
 msgid ""
 "Usage: guix deploy [OPTION] FILE...\n"
 "Perform the deployment specified by FILE.\n"
 msgstr ""
-"Uso: guix deploy [OPCIÓN] FICHERO...\n"
-"Realiza el despliegue especificado en FICHERO.\n"
+"Uso: guix deploy [OPCIÓN] ARCHIVO...\n"
+"Realiza el despliegue especificado en ARCHIVO.\n"
 
 #: guix/scripts/deploy.scm:106
 #, scheme-format
@@ -4650,23 +5127,43 @@ msgstr "volviendo a la generación previa en ~a...~%"
 msgid "successfully deployed ~a~%"
 msgstr "~a desplegada satisfactoriamente~%"
 
-#: guix/gnu-maintenance.scm:647
+#: guix/scripts/deploy.scm:140
+msgid "deploy operating systems on a set of machines"
+msgstr "despliega sistemas operativos en un conjunto de máquinas"
+
+#: guix/gexp.scm:425
+#, scheme-format
+msgid "resolving '~a' relative to current directory~%"
+msgstr "la ruta de '~a' se considera relativa al directorio actual~%"
+
+#: guix/gexp.scm:808
+#, scheme-format
+msgid "importing module~{ ~a~} from the host~%"
+msgid_plural "importing modules~{ ~a~} from the host~%"
+msgstr[0] "importando el módulo~{ ~a~} de la máquina anfitriona~%"
+msgstr[1] "importando los módulos~{ ~a~} de la máquina anfitriona~%"
+
+#: guix/gnu-maintenance.scm:699
 msgid "Updater for GNU packages"
 msgstr "Actualizador para paquetes GNU"
 
-#: guix/gnu-maintenance.scm:656
+#: guix/gnu-maintenance.scm:708
 msgid "Updater for GNU packages only available via FTP"
 msgstr "Actualizador para paquetes GNU únicamente disponibles a través de FTP"
 
-#: guix/gnu-maintenance.scm:665
+#: guix/gnu-maintenance.scm:717
+msgid "Updater for packages hosted on savannah.gnu.org"
+msgstr "Actualizador para paquetes alojados en savannah.gnu.org"
+
+#: guix/gnu-maintenance.scm:724
 msgid "Updater for X.org packages"
 msgstr "Actualizador para paquetes X.org"
 
-#: guix/gnu-maintenance.scm:672
+#: guix/gnu-maintenance.scm:731
 msgid "Updater for packages hosted on kernel.org"
 msgstr "Actualizador para paquetes alojados en kernel.org"
 
-#: guix/scripts/container.scm:26
+#: guix/scripts/container.scm:27
 msgid ""
 "Usage: guix container ACTION ARGS...\n"
 "Build and manipulate Linux containers.\n"
@@ -4674,16 +5171,20 @@ msgstr ""
 "Uso: guix container ACCIÓN PARÁMETROS...\n"
 "Construye y manipula contenedores Linux.\n"
 
-#: guix/scripts/container.scm:31
+#: guix/scripts/container.scm:32
 msgid "   exec            execute a command inside of an existing container\n"
 msgstr "   exec            ejecuta una orden dentro de un contenedor existente\n"
 
-#: guix/scripts/container.scm:54
+#: guix/scripts/container.scm:52
+msgid "run code in containers created by 'guix environment -C'"
+msgstr "ejecuta código en contenedores creados por 'guix environment -C'"
+
+#: guix/scripts/container.scm:58
 #, scheme-format
 msgid "guix container: missing action~%"
 msgstr "guix container: acción no encontrada~%"
 
-#: guix/scripts/container.scm:64
+#: guix/scripts/container.scm:68
 #, scheme-format
 msgid "guix container: invalid action~%"
 msgstr "guix container: acción no válida~%"
@@ -4721,55 +5222,181 @@ msgstr "no existe el proceso ~d~%"
 msgid "exec failed with status ~d~%"
 msgstr "exec ha fallado con estado ~d~%"
 
-#: guix/upstream.scm:328
+#: guix/transformations.scm:174 guix/transformations.scm:242
+#, scheme-format
+msgid "invalid replacement specification: ~s"
+msgstr "especificación de reemplazo no válida: ~s"
+
+#: guix/transformations.scm:223
+#, scheme-format
+msgid "the source of ~a is not a Git reference"
+msgstr "la fuente de ~a no es una referencia Git"
+
+# FUZZY
+#: guix/transformations.scm:315
+#, scheme-format
+msgid "~a: invalid Git URL replacement specification"
+msgstr "~a: especificación de URL de Git de reemplazo no válida"
+
+# FUZZY
+#: guix/transformations.scm:393
+#, scheme-format
+msgid "~a: invalid toolchain replacement specification"
+msgstr "~a: especificación de cadena de construcción de reemplazo no válida"
+
+#: guix/transformations.scm:514
+msgid ""
+"\n"
+"      --with-source=[PACKAGE=]SOURCE\n"
+"                         use SOURCE when building the corresponding package"
+msgstr ""
+"\n"
+"      --with-source=[PAQUETE=]FUENTE\n"
+"                         usa FUENTE para la construcción del paquete\n"
+"                         correspondiente"
+
+#: guix/transformations.scm:517
+msgid ""
+"\n"
+"      --with-input=PACKAGE=REPLACEMENT\n"
+"                         replace dependency PACKAGE by REPLACEMENT"
+msgstr ""
+"\n"
+"      --with-input=PAQUETE=REEMPLAZO\n"
+"                         reemplaza la dependencia de PAQUETE por REEMPLAZO"
+
+#: guix/transformations.scm:520
+msgid ""
+"\n"
+"      --with-graft=PACKAGE=REPLACEMENT\n"
+"                         graft REPLACEMENT on packages that refer to PACKAGE"
+msgstr ""
+"\n"
+"      --with-graft=PAQUETE=REEMPLAZO\n"
+"                         injerta REEMPLAZO en paquetes que hacen referencia\n"
+"                         a PAQUETE"
+
+#: guix/transformations.scm:523
+msgid ""
+"\n"
+"      --with-branch=PACKAGE=BRANCH\n"
+"                         build PACKAGE from the latest commit of BRANCH"
+msgstr ""
+"\n"
+"      --with-branch=PAQUETE=RAMA\n"
+"                         construye PAQUETE desde la última revisión de RAMA"
+
+#: guix/transformations.scm:526
+msgid ""
+"\n"
+"      --with-commit=PACKAGE=COMMIT\n"
+"                         build PACKAGE from COMMIT"
+msgstr ""
+"\n"
+"      --with-commit=PAQUETE=REVISIÓN\n"
+"                         construye PAQUETE desde REVISIÓN"
+
+#: guix/transformations.scm:529
+msgid ""
+"\n"
+"      --with-git-url=PACKAGE=URL\n"
+"                         build PACKAGE from the repository at URL"
+msgstr ""
+"\n"
+"      --with-git-url=PAQUETE=URL\n"
+"                         construye el PAQUETE del repositorio en URL"
+
+#: guix/transformations.scm:532
+msgid ""
+"\n"
+"      --with-c-toolchain=PACKAGE=TOOLCHAIN\n"
+"                         build PACKAGE and its dependents with TOOLCHAIN"
+msgstr ""
+"\n"
+"      --with-c-toolchain=PAQUETE=CADENA_DE_CONSTRUCCIÓN\n"
+"                         construye PAQUETE y quienes dependan de él\n"
+"                         con CADENA_DE_CONSTRUCCIÓN"
+
+#: guix/transformations.scm:535
+msgid ""
+"\n"
+"      --with-debug-info=PACKAGE\n"
+"                         build PACKAGE and preserve its debug info"
+msgstr ""
+"\n"
+"      --with-debug-info=PAQUETE\n"
+"                         construye PAQUETE y conserva su información\n"
+"                         de depuración"
+
+#: guix/transformations.scm:538
+msgid ""
+"\n"
+"      --without-tests=PACKAGE\n"
+"                         build PACKAGE without running its tests"
+msgstr ""
+"\n"
+"      --without-tests=PAQUETE\n"
+"                         construye PAQUETE sin ejecutar sus pruebas"
+
+#: guix/transformations.scm:589
+#, scheme-format
+msgid "transformation '~a' had no effect on ~a~%"
+msgstr "la transformación '~a' no tuvo efecto en ~a~%"
+
+#: guix/upstream.scm:337
+#, scheme-format
+msgid "failed to download detached signature from ~a~%"
+msgstr "se produjo un fallo al descargar la firma separada de '~a'~%"
+
+#: guix/upstream.scm:341
 #, scheme-format
 msgid "signature verification failed for '~a' (key: ~a)~%"
 msgstr "la verificación de la firma ha fallado para '~a' (clave: ~a)~%"
 
 # FUZZY
-#: guix/upstream.scm:332
+#: guix/upstream.scm:345
 #, scheme-format
 msgid "missing public key ~a for '~a'~%"
 msgstr "falta la clave pública ~a para '~a'~%"
 
-#: guix/upstream.scm:408
+#: guix/upstream.scm:421
 #, scheme-format
 msgid "cannot download for this method: ~s"
 msgstr "no se puede descargar con este método: ~s"
 
-#: guix/upstream.scm:471
+#: guix/upstream.scm:486
 #, scheme-format
 msgid "~a: could not locate source file"
-msgstr "~a: no se pudo encontrar el fichero de fuente"
+msgstr "~a: no se pudo encontrar el archivo de fuente"
 
-#: guix/upstream.scm:476
+#: guix/upstream.scm:490
 #, scheme-format
-msgid "~a: ~a: no `version' field in source; skipping~%"
-msgstr "~a: ~a: no hay campo «version» en las fuentes; omitiendo~%"
+msgid "~a: no `version' field in source; skipping~%"
+msgstr "~a: no hay campo «version» en las fuentes; se omite~%"
 
-#: guix/ui.scm:156
+#: guix/ui.scm:161
 #, scheme-format
 msgid "error: ~a: unbound variable"
 msgstr "error: ~a: variable sin asignar"
 
-#: guix/ui.scm:256
+#: guix/ui.scm:261
 msgid "entering debugger; type ',bt' for a backtrace\n"
 msgstr "entrando en el depurador; teclee ',bt' para ver la pila de llamadas\n"
 
-#: guix/ui.scm:313
+#: guix/ui.scm:319
 msgid "hint: "
 msgstr "consejo: "
 
-#: guix/ui.scm:330
+#: guix/ui.scm:336
 msgid "Did you forget a @code{use-modules} form?"
 msgstr "¿Se ha olvidado de usar una forma @code{use-modules}?"
 
-#: guix/ui.scm:332
+#: guix/ui.scm:338
 #, scheme-format
 msgid "Did you forget @code{(use-modules ~a)}?"
 msgstr "¿Se ha olvidado de @code{(use-modules ~a)}?"
 
-#: guix/ui.scm:342
+#: guix/ui.scm:348
 #, scheme-format
 msgid ""
 "File @file{~a} should probably start with:\n"
@@ -4778,61 +5405,61 @@ msgid ""
 "(define-module ~a)\n"
 "@end example"
 msgstr ""
-"El fichero @file{~a} probablemente debería comenzar con:\n"
+"El archivo @file{~a} probablemente debería comenzar con:\n"
 "\n"
 "@example\n"
 "(define-module ~a)\n"
 "@end example"
 
-#: guix/ui.scm:356
+#: guix/ui.scm:362
 #, scheme-format
 msgid "module name ~a does not match file name '~a'~%"
-msgstr "el nombre de módulo ~a no corresponde con el nombre de fichero '~a'~%"
+msgstr "el nombre de módulo ~a no corresponde con el nombre de archivo '~a'~%"
 
-#: guix/ui.scm:360
+#: guix/ui.scm:366
 #, scheme-format
 msgid "~a: file is empty~%"
-msgstr "~a: el fichero está vacío~%"
+msgstr "~a: el archivo está vacío~%"
 
-#: guix/ui.scm:371 guix/ui.scm:413 guix/ui.scm:421
+#: guix/ui.scm:377 guix/ui.scm:425 guix/ui.scm:433 guix/ui.scm:437
 #, scheme-format
 msgid "failed to load '~a': ~a~%"
 msgstr "no se pudo cargar '~a': ~a~%"
 
-#: guix/ui.scm:378
+#: guix/ui.scm:384
 #, scheme-format
 msgid "~amissing closing parenthesis~%"
 msgstr "~afalta el paréntesis de cierre~%"
 
-#: guix/ui.scm:383
+#: guix/ui.scm:389
 #, scheme-format
 msgid "~s: ~a~%"
 msgstr "~s: ~a~%"
 
-#: guix/ui.scm:393 guix/ui.scm:845
+#: guix/ui.scm:405 guix/ui.scm:898
 #, scheme-format
 msgid "exception thrown: ~s~%"
 msgstr "excepción lanzada: ~s~%"
 
-#: guix/ui.scm:397 guix/ui.scm:427
+#: guix/ui.scm:409 guix/ui.scm:446
 #, scheme-format
 msgid "failed to load '~a':~%"
 msgstr "no se pudo cargar '~a':~%"
 
-#: guix/ui.scm:424
+#: guix/ui.scm:443
 #, scheme-format
 msgid "failed to load '~a': exception thrown: ~s~%"
 msgstr "no se pudo cargar '~a': excepción lanzada: ~s~%"
 
 # FUZZY
-#: guix/ui.scm:472
+#: guix/ui.scm:491
 msgid ""
 "Consider installing the @code{glibc-utf8-locales} or\n"
 "@code{glibc-locales} package and defining @code{GUIX_LOCPATH}, along these\n"
 "lines:\n"
 "\n"
 "@example\n"
-"guix package -i glibc-utf8-locales\n"
+"guix install glibc-utf8-locales\n"
 "export GUIX_LOCPATH=\"$HOME/.guix-profile/lib/locale\"\n"
 "@end example\n"
 "\n"
@@ -4843,7 +5470,7 @@ msgstr ""
 "o menos de esta manera:\n"
 "\n"
 "@example\n"
-"guix package -i glibc-utf8-locales\n"
+"guix install glibc-utf8-locales\n"
 "export GUIX_LOCPATH=\"$HOME/.guix-profile/lib/locale\"\n"
 "@end example\n"
 "\n"
@@ -4853,16 +5480,16 @@ msgstr ""
 #. TRANSLATORS: Translate "(C)" to the copyright symbol
 #. (C-in-a-circle), if this symbol is available in the user's
 #. locale.  Otherwise, do not translate "(C)"; leave it as-is.  */
-#: guix/ui.scm:510
+#: guix/ui.scm:533
 msgid "(C)"
 msgstr "©"
 
-#: guix/ui.scm:511
+#: guix/ui.scm:534
 msgid "the Guix authors\n"
 msgstr "las autoras de Guix\n"
 
 # MAAV: Esta traducción debería ser uniforme/legal
-#: guix/ui.scm:512
+#: guix/ui.scm:535
 msgid ""
 "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\n"
 "This is free software: you are free to change and redistribute it.\n"
@@ -4876,7 +5503,7 @@ msgstr ""
 #. package.  Please add another line saying "Report translation bugs to
 #. ...\n" with the address for translation bugs (typically your translation
 #. team's web or email address).
-#: guix/ui.scm:524
+#: guix/ui.scm:547
 #, scheme-format
 msgid ""
 "\n"
@@ -4886,7 +5513,7 @@ msgstr ""
 "Informe de errores a: ~a.\n"
 "Informe de errores de traducción a: es@tp.org.es."
 
-#: guix/ui.scm:526
+#: guix/ui.scm:549
 #, scheme-format
 msgid ""
 "\n"
@@ -4895,35 +5522,36 @@ msgstr ""
 "\n"
 "Página Web de ~a: <~a>"
 
-#: guix/ui.scm:528
+#: guix/ui.scm:551
+#, scheme-format
 msgid ""
 "\n"
-"General help using GNU software: <http://www.gnu.org/gethelp/>"
+"General help using Guix and GNU software: <~a>"
 msgstr ""
 "\n"
-"Ayuda general para el uso de software GNU: <http://www.gnu.org/gethelp/>"
+"Ayuda general para el uso de Guix y software de GNU: <~a>"
 
-#: guix/ui.scm:583
+#: guix/ui.scm:607
 #, scheme-format
 msgid "'~a' is not a valid regular expression: ~a~%"
 msgstr "'~a' no es una expresión regular válida: ~a~%"
 
-#: guix/ui.scm:589
+#: guix/ui.scm:613
 #, scheme-format
 msgid "~a: invalid number~%"
 msgstr "~a: número no válido~%"
 
-#: guix/ui.scm:607
+#: guix/ui.scm:631
 #, scheme-format
 msgid "invalid number: ~a~%"
 msgstr "número no válido: ~a~%"
 
-#: guix/ui.scm:630
+#: guix/ui.scm:654
 #, scheme-format
 msgid "unknown unit: ~a~%"
 msgstr "unidad desconocida: ~a~%"
 
-#: guix/ui.scm:645
+#: guix/ui.scm:669
 #, scheme-format
 msgid ""
 "You cannot have two different versions\n"
@@ -4932,7 +5560,7 @@ msgstr ""
 "No puede tener dos versiones diferentes\n"
 "o variantes de @code{~a} en el mismo perfil."
 
-#: guix/ui.scm:648
+#: guix/ui.scm:672
 #, scheme-format
 msgid ""
 "Try upgrading both @code{~a} and @code{~a},\n"
@@ -4941,111 +5569,111 @@ msgstr ""
 "Intente actualizar @code{~a} y @code{~a},\n"
 "o borre uno de ellos del perfil."
 
-#: guix/ui.scm:667
+#: guix/ui.scm:708
 #, scheme-format
 msgid "~a:~a:~a: package `~a' has an invalid input: ~s~%"
 msgstr "~a:~a:~a: el paquete «~a» tiene una entrada no válida: ~s~%"
 
-#: guix/ui.scm:674
+#: guix/ui.scm:715
 #, scheme-format
 msgid "~a: ~a: build system `~a' does not support cross builds~%"
 msgstr "~a: ~a: el sistema de construcción «~a» no permite la compilación cruzada~%"
 
-#: guix/ui.scm:680
+#: guix/ui.scm:721
 #, scheme-format
 msgid "~s: invalid G-expression input~%"
 msgstr "~s: entrada de expresión-G no válida~%"
 
-#: guix/ui.scm:683
+#: guix/ui.scm:724
 #, scheme-format
 msgid "profile '~a' does not exist~%"
 msgstr "el perfil '~a' no existe~%"
 
-#: guix/ui.scm:686
+#: guix/ui.scm:727
 #, scheme-format
 msgid "generation ~a of profile '~a' does not exist~%"
 msgstr "la generación ~a del perfil '~a' no existe~%"
 
-#: guix/ui.scm:691
+#: guix/ui.scm:732
 #, scheme-format
 msgid "package '~a~@[@~a~]~@[:~a~]' not found in profile~%"
 msgstr "no se ha encontrado el paquete '~a~@[@~a~]~@[:~a~]' en el perfil~%"
 
-#: guix/ui.scm:703
+#: guix/ui.scm:744
 #, scheme-format
 msgid "   ... propagated from ~a@~a~%"
 msgstr "   ... propagada desde ~a@~a~%"
 
-#: guix/ui.scm:713
+#: guix/ui.scm:754
 #, scheme-format
 msgid "profile contains conflicting entries for ~a~a~%"
 msgstr "el perfil contiene entradas en conflicto para ~a~a~%"
 
-#: guix/ui.scm:716
+#: guix/ui.scm:757
 #, scheme-format
 msgid "  first entry: ~a@~a~a ~a~%"
 msgstr "  primera entrada: ~a@~a~a ~a~%"
 
-#: guix/ui.scm:722
+#: guix/ui.scm:763
 #, scheme-format
 msgid "  second entry: ~a@~a~a ~a~%"
 msgstr "  segunda entrada: ~a@~a~a ~a~%"
 
-#: guix/ui.scm:734
+#: guix/ui.scm:775
 #, scheme-format
 msgid "corrupt input while restoring '~a' from ~s~%"
 msgstr "entrada corrupta durante la restauración de '~a' desde ~s~%"
 
-#: guix/ui.scm:736
+#: guix/ui.scm:777
 #, scheme-format
 msgid "corrupt input while restoring archive from ~s~%"
 msgstr "entrada corrupta durante la restauración del archivo desde ~s~%"
 
-#: guix/ui.scm:739
+#: guix/ui.scm:780
 #, scheme-format
 msgid "failed to connect to `~a': ~a~%"
 msgstr "no se pudo conectar a «~a»: ~a~%"
 
-#: guix/ui.scm:747
+#: guix/ui.scm:788
 #, scheme-format
 msgid "reference to invalid output '~a' of derivation '~a'~%"
 msgstr "referencia a la salida '~a' no válida de la derivación '~a'~%"
 
-#: guix/ui.scm:751
+#: guix/ui.scm:792
 #, scheme-format
 msgid "file '~a' could not be found in these directories:~{ ~a~}~%"
-msgstr "el fichero '~a' no se ha podido encontrar en estos directorios:~{ ~a~}~%"
+msgstr "el archivo '~a' no se ha podido encontrar en estos directorios:~{ ~a~}~%"
 
-#: guix/ui.scm:756
+#: guix/ui.scm:797
 #, scheme-format
 msgid "program exited~@[ with non-zero exit status ~a~]~@[ terminated by signal ~a~]~@[ stopped by signal ~a~]: ~s~%"
 msgstr "el programa finalizó~@[ con un estado de salida distinto a cero ~a~]~@[ abruptamente por una señal ~a~]~@[ parado por una señal ~a~]: ~s~%"
 
-#: guix/ui.scm:830
+#: guix/ui.scm:877
 #, scheme-format
 msgid "failed to read expression ~s: ~s~%"
 msgstr "no se pudo leer la expresión ~s: ~s~%"
 
-#: guix/ui.scm:836
+#: guix/ui.scm:883
 #, scheme-format
 msgid "failed to evaluate expression '~a':~%"
 msgstr "no se pudo evaluar la expresión '~a':~%"
 
-#: guix/ui.scm:839
+#: guix/ui.scm:886
 #, scheme-format
 msgid "syntax error: ~a~%"
 msgstr "error sintáctico: ~a~%"
 
-#: guix/ui.scm:857
+#: guix/ui.scm:910
 #, scheme-format
 msgid "expression ~s does not evaluate to a package~%"
 msgstr "la expresión ~s no evalúa a un paquete~%"
 
-#: guix/ui.scm:884
+#: guix/ui.scm:937
 msgid "at least ~,1h MB needed but only ~,1h MB available in ~a~%"
 msgstr "se necesita al menos ~,1h MB pero únicamente ~,1h MB está disponible en ~a~%"
 
-#: guix/ui.scm:982
+#: guix/ui.scm:1046
 #, scheme-format
 msgid "~:[The following derivation would be built:~%~{   ~a~%~}~;~]"
 msgid_plural "~:[The following derivations would be built:~%~{   ~a~%~}~;~]"
@@ -5054,18 +5682,18 @@ msgstr[1] "~:[Se construirían las siguientes derivaciones:~%~{   ~a~%~}~;~]"
 
 #. TRANSLATORS: "MB" is for "megabyte"; it should be
 #. translated to the corresponding abbreviation.
-#: guix/ui.scm:990
+#: guix/ui.scm:1055
 msgid "~:[~,1h MB would be downloaded:~%~{   ~a~%~}~;~]"
 msgstr "~:[Se descargarían ~,1h MB:~%~{   ~a~%~}~;~]"
 
-#: guix/ui.scm:996
+#: guix/ui.scm:1061
 #, scheme-format
 msgid "~:[The following file would be downloaded:~%~{   ~a~%~}~;~]"
 msgid_plural "~:[The following files would be downloaded:~%~{   ~a~%~}~;~]"
-msgstr[0] "~:[Se descargaría el siguiente fichero:~%~{   ~a~%~}~;~]"
-msgstr[1] "~:[Se descargarían los siguientes ficheros:~%~{   ~a~%~}~;~]"
+msgstr[0] "~:[Se descargaría el siguiente archivo:~%~{   ~a~%~}~;~]"
+msgstr[1] "~:[Se descargarían los siguientes archivos:~%~{   ~a~%~}~;~]"
 
-#: guix/ui.scm:1003
+#: guix/ui.scm:1068
 #, scheme-format
 msgid "~:[The following graft would be made:~%~{   ~a~%~}~;~]"
 msgid_plural "~:[The following grafts would be made:~%~{   ~a~%~}~;~]"
@@ -5073,14 +5701,26 @@ msgstr[0] "~:[Se realizaría el siguiente injerto:~%~{   ~a~%~}~;~]"
 msgstr[1] "~:[Se realizarían los siguientes injertos:~%~{   ~a~%~}~;~]"
 
 # FUZZY
-#: guix/ui.scm:1008
+#: guix/ui.scm:1073
 #, scheme-format
 msgid "~:[The following profile hook would be built:~%~{   ~a~%~}~;~]"
 msgid_plural "~:[The following profile hooks would be built:~%~{   ~a~%~}~;~]"
 msgstr[0] "~:[Se construiría la siguiente extensión del perfil:~%~{   ~a~%~}~;~]"
 msgstr[1] "~:[Se construirían los siguientes extensiones del perfil:~%~{   ~a~%~}~;~]"
 
-#: guix/ui.scm:1014
+#. TRANSLATORS: "MB" is for "megabyte"; it should be
+#. translated to the corresponding abbreviation.
+#: guix/ui.scm:1085
+msgid "~:[~,1h MB would be downloaded~%~;~]"
+msgstr "~:[Se descargarían ~,1h MB~%~;~]"
+
+#: guix/ui.scm:1089
+msgid "~:[~h item would be downloaded~%~;~]"
+msgid_plural "~:[~h items would be downloaded~%~;~]"
+msgstr[0] "~:[Se descargaría ~h elemento~%~;~]"
+msgstr[1] "~:[Se descargarían ~h elementos~%~;~]"
+
+#: guix/ui.scm:1097
 #, scheme-format
 msgid "~:[The following derivation will be built:~%~{   ~a~%~}~;~]"
 msgid_plural "~:[The following derivations will be built:~%~{   ~a~%~}~;~]"
@@ -5089,103 +5729,110 @@ msgstr[1] "~:[Se construirán las siguientes derivaciones:~%~{   ~a~%~}~;~]"
 
 #. TRANSLATORS: "MB" is for "megabyte"; it should be
 #. translated to the corresponding abbreviation.
-#: guix/ui.scm:1022
+#: guix/ui.scm:1106
 msgid "~:[~,1h MB will be downloaded:~%~{   ~a~%~}~;~]"
 msgstr "~:[Se descargarán ~,1h MB:~%~{   ~a~%~}~;~]"
 
-#: guix/ui.scm:1028
+#: guix/ui.scm:1112
 #, scheme-format
 msgid "~:[The following file will be downloaded:~%~{   ~a~%~}~;~]"
 msgid_plural "~:[The following files will be downloaded:~%~{   ~a~%~}~;~]"
-msgstr[0] "~:[Se descargará el siguiente fichero:~%~{   ~a~%~}~;~]"
-msgstr[1] "~:[Se descargarán los siguientes ficheros:~%~{   ~a~%~}~;~]"
+msgstr[0] "~:[Se descargará el siguiente archivo:~%~{   ~a~%~}~;~]"
+msgstr[1] "~:[Se descargarán los siguientes archivos:~%~{   ~a~%~}~;~]"
 
-#: guix/ui.scm:1035
+#: guix/ui.scm:1119
 #, scheme-format
 msgid "~:[The following graft will be made:~%~{   ~a~%~}~;~]"
 msgid_plural "~:[The following grafts will be made:~%~{   ~a~%~}~;~]"
 msgstr[0] "~:[Se realizará el siguiente injerto:~%~{   ~a~%~}~;~]"
 msgstr[1] "~:[Se realizarán los siguientes injertos:~%~{   ~a~%~}~;~]"
 
-#: guix/ui.scm:1040
+#: guix/ui.scm:1124
 #, scheme-format
 msgid "~:[The following profile hook will be built:~%~{   ~a~%~}~;~]"
 msgid_plural "~:[The following profile hooks will be built:~%~{   ~a~%~}~;~]"
 msgstr[0] "~:[Se construirá la siguiente extensión del perfil:~%~{   ~a~%~}~;~]"
 msgstr[1] "~:[Se construirán las siguientes extensiones del perfil:~%~{   ~a~%~}~;~]"
 
-#: guix/ui.scm:1167
+#. TRANSLATORS: "MB" is for "megabyte"; it should be
+#. translated to the corresponding abbreviation.
+#: guix/ui.scm:1136
+msgid "~:[~,1h MB will be downloaded~%~;~]"
+msgstr "~:[Se descargarán ~,1h MB~%~;~]"
+
+#: guix/ui.scm:1140
+msgid "~:[~h item will be downloaded~%~;~]"
+msgid_plural "~:[~h items will be downloaded~%~;~]"
+msgstr[0] "~:[Se descargará ~h elemento~%~;~]"
+msgstr[1] "~:[Se descargarán ~h elementos~%~;~]"
+
+#: guix/ui.scm:1259
 msgid "(dependencies or package changed)"
 msgstr "(las dependencias o el paquete han cambiado)"
 
-#: guix/ui.scm:1180
+#: guix/ui.scm:1278
 #, scheme-format
 msgid "The following package would be removed:~%~{~a~%~}~%"
 msgid_plural "The following packages would be removed:~%~{~a~%~}~%"
 msgstr[0] "Se eliminaría el siguiente paquete:~%~{~a~%~}~%"
 msgstr[1] "Se eliminarían los siguientes paquetes:~%~{~a~%~}~%"
 
-#: guix/ui.scm:1185
+#: guix/ui.scm:1283
 #, scheme-format
 msgid "The following package will be removed:~%~{~a~%~}~%"
 msgid_plural "The following packages will be removed:~%~{~a~%~}~%"
 msgstr[0] "Se eliminará el siguiente paquete:~%~{~a~%~}~%"
 msgstr[1] "Se eliminarán los siguientes paquetes:~%~{~a~%~}~%"
 
-#: guix/ui.scm:1198
+#: guix/ui.scm:1296
 #, scheme-format
 msgid "The following package would be downgraded:~%~{~a~%~}~%"
 msgid_plural "The following packages would be downgraded:~%~{~a~%~}~%"
 msgstr[0] "Se pasaría a una versión previa del siguiente paquete:~%~{~a~%~}~%"
 msgstr[1] "Se pasaría a una versión previa de los siguientes paquetes:~%~{~a~%~}~%"
 
-#: guix/ui.scm:1203
+#: guix/ui.scm:1301
 #, scheme-format
 msgid "The following package will be downgraded:~%~{~a~%~}~%"
 msgid_plural "The following packages will be downgraded:~%~{~a~%~}~%"
 msgstr[0] "Se pasará a una versión previa del siguiente paquete:~%~{~a~%~}~%"
 msgstr[1] "Se pasará a una versión previa de los siguientes paquetes:~%~{~a~%~}~%"
 
-#: guix/ui.scm:1217
+#: guix/ui.scm:1314
 #, scheme-format
 msgid "The following package would be upgraded:~%~{~a~%~}~%"
 msgid_plural "The following packages would be upgraded:~%~{~a~%~}~%"
 msgstr[0] "Se actualizaría el siguiente paquete:~%~{~a~%~}~%"
 msgstr[1] "Se actualizarían los siguientes paquetes:~%~{~a~%~}~%"
 
-#: guix/ui.scm:1222
+#: guix/ui.scm:1319
 #, scheme-format
 msgid "The following package will be upgraded:~%~{~a~%~}~%"
 msgid_plural "The following packages will be upgraded:~%~{~a~%~}~%"
 msgstr[0] "Se actualizará el siguiente paquete:~%~{~a~%~}~%"
 msgstr[1] "Se actualizarán los siguientes paquetes:~%~{~a~%~}~%"
 
-#: guix/ui.scm:1233
+#: guix/ui.scm:1330
 #, scheme-format
 msgid "The following package would be installed:~%~{~a~%~}~%"
 msgid_plural "The following packages would be installed:~%~{~a~%~}~%"
 msgstr[0] "Se instalaría el siguiente paquete:~%~{~a~%~}~%"
 msgstr[1] "Se instalarían los siguientes paquetes:~%~{~a~%~}~%"
 
-#: guix/ui.scm:1238
+#: guix/ui.scm:1335
 #, scheme-format
 msgid "The following package will be installed:~%~{~a~%~}~%"
 msgid_plural "The following packages will be installed:~%~{~a~%~}~%"
 msgstr[0] "Se instalará el siguiente paquete:~%~{~a~%~}~%"
 msgstr[1] "Se instalarán los siguientes paquetes:~%~{~a~%~}~%"
 
-#: guix/ui.scm:1592
-#, scheme-format
-msgid "Run @code{~a ... | less} to view all the results."
-msgstr "Ejecute @code{~a ... | less} para ver todos los resultados."
-
 # FUZZY
-#: guix/ui.scm:1742
+#: guix/ui.scm:1862
 #, scheme-format
 msgid "invalid syntax: ~a~%"
 msgstr "sintaxis erronea: ~a~%"
 
-#: guix/ui.scm:1752
+#: guix/ui.scm:1871
 #, scheme-format
 msgid "Generation ~a\t~a"
 msgstr "Generación ~a\t~a"
@@ -5195,7 +5842,7 @@ msgstr "Generación ~a\t~a"
 #. usual way of presenting dates in your locale.
 #. See https://www.gnu.org/software/guile/manual/html_node/SRFI_002d19-Date-to-string.html
 #. for details.
-#: guix/ui.scm:1762
+#: guix/ui.scm:1881
 #, scheme-format
 msgid "~b ~d ~Y ~T"
 msgstr "~d ~b ~Y ~T"
@@ -5203,38 +5850,38 @@ msgstr "~d ~b ~Y ~T"
 #. TRANSLATORS: The word "current" here is an adjective for
 #. "Generation", as in "current generation".  Use the appropriate
 #. gender where applicable.
-#: guix/ui.scm:1768
+#: guix/ui.scm:1887
 #, scheme-format
 msgid "~a\t(current)~%"
 msgstr "~a\t(actual)~%"
 
 # FUZZY
-#: guix/ui.scm:1802
+#: guix/ui.scm:1921
 #, scheme-format
 msgid "cannot lock profile ~a: ~a~%"
 msgstr "no se puede bloquear el perfil ~a: ~a~%"
 
-#: guix/ui.scm:1804
+#: guix/ui.scm:1923
 #, scheme-format
 msgid "profile ~a is locked by another process~%"
 msgstr "el perfil '~a' está bloqueado por otro proceso~%"
 
-#: guix/ui.scm:1831
+#: guix/ui.scm:1950
 #, scheme-format
 msgid "switched from generation ~a to ~a~%"
 msgstr "se pasó de la generación ~a a la ~a~%"
 
-#: guix/ui.scm:1847
+#: guix/ui.scm:1966
 #, scheme-format
 msgid "deleting ~a~%"
 msgstr "borrando ~a~%"
 
-#: guix/ui.scm:1878
+#: guix/ui.scm:1997
 #, scheme-format
 msgid "Try `guix --help' for more information.~%"
 msgstr "Pruebe «guix --help» para obtener más información.~%"
 
-#: guix/ui.scm:1906
+#: guix/ui.scm:2078
 msgid ""
 "Usage: guix COMMAND ARGS...\n"
 "Run COMMAND with ARGS.\n"
@@ -5243,21 +5890,21 @@ msgstr ""
 "Ejecuta ORDEN con PARÁMETROS.\n"
 
 # FUZZY
-#: guix/ui.scm:1909
+#: guix/ui.scm:2081
 msgid "COMMAND must be one of the sub-commands listed below:\n"
 msgstr "ORDEN debe ser una de las enumeradas a continuación:\n"
 
-#: guix/ui.scm:1925
+#: guix/ui.scm:2105
 #, scheme-format
 msgid "guix: ~a: command not found~%"
 msgstr "guix: ~a: orden no encontrada~%"
 
-#: guix/ui.scm:1955
+#: guix/ui.scm:2135
 #, scheme-format
 msgid "guix: missing command name~%"
 msgstr "guix: falta el nombre de la orden~%"
 
-#: guix/ui.scm:1963
+#: guix/ui.scm:2143
 #, scheme-format
 msgid "guix: unrecognized option '~a'~%"
 msgstr "guix: opción '~a' no reconocida~%"
@@ -5292,11 +5939,11 @@ msgstr "creando la caché de temas de iconos de GTK+..."
 
 #: guix/status.scm:388
 msgid "building cache files for GTK+ input methods..."
-msgstr "construyendo los ficheros de caché para los métodos de entrada de GTK+..."
+msgstr "construyendo los archivos de caché para los métodos de entrada de GTK+..."
 
 #: guix/status.scm:390
 msgid "building XDG desktop file cache..."
-msgstr "construyendo la caché de ficheros desktop XDG..."
+msgstr "construyendo la caché de archivos desktop XDG..."
 
 #: guix/status.scm:392
 msgid "building XDG MIME database..."
@@ -5318,12 +5965,13 @@ msgstr "construyendo la base de datos de páginas de manual..."
 msgid "building package cache..."
 msgstr "construyendo caché de paquetes..."
 
+# FUZZY
 #: guix/status.scm:475
 #, scheme-format
-msgid "applying ~a graft for ~a..."
-msgid_plural "applying ~a grafts for ~a..."
-msgstr[0] "injertando ~a paquete en ~a..."
-msgstr[1] "injertando ~a paquetes en ~a..."
+msgid "applying ~a graft for ~a ..."
+msgid_plural "applying ~a grafts for ~a ..."
+msgstr[0] "injertando ~a paquete en ~a ..."
+msgstr[1] "injertando ~a paquetes en ~a ..."
 
 #: guix/status.scm:483
 #, scheme-format
@@ -5378,8 +6026,8 @@ msgstr "sustituyendo ~a..."
 
 #: guix/status.scm:528
 #, scheme-format
-msgid "downloading from ~a..."
-msgstr "descargando de ~a..."
+msgid "downloading from ~a ..."
+msgstr "descargando de ~a ..."
 
 #: guix/status.scm:553
 #, scheme-format
@@ -5412,81 +6060,139 @@ msgstr ""
 msgid "offloading build of ~a to '~a'"
 msgstr "delegando la construcción de ~a a '~a'"
 
-#: guix/http-client.scm:120
+#: guix/http-client.scm:125
 #, scheme-format
 msgid "following redirection to `~a'...~%"
 msgstr "siguiendo la redirección a «~a»...~%"
 
-#: guix/http-client.scm:132
+#: guix/http-client.scm:137
 #, scheme-format
 msgid "~a: HTTP download failed: ~a (~s)"
 msgstr "~a: descarga HTTP fallida: ~a (~s)"
 
-#: guix/nar.scm:147
+#: guix/nar.scm:172
 msgid "signature is not a valid s-expression"
 msgstr "la firma no es una expresión-s válida"
 
-#: guix/nar.scm:156
+#: guix/nar.scm:181
 msgid "invalid signature"
 msgstr "firma no válida"
 
-#: guix/nar.scm:160
+#: guix/nar.scm:185
 msgid "invalid hash"
 msgstr "hash no válido"
 
-#: guix/nar.scm:168
+#: guix/nar.scm:193
 msgid "unauthorized public key"
 msgstr "clave pública no autorizada"
 
-#: guix/nar.scm:173
+#: guix/nar.scm:198
 msgid "corrupt signature data"
 msgstr "datos de firma corruptos"
 
 # FUZZY
-#: guix/nar.scm:193
+#: guix/nar.scm:218
 msgid "corrupt file set archive"
-msgstr "archivo de conjunto de ficheros corrupto"
+msgstr "archivo de conjunto de archivos corrupto"
 
-#: guix/nar.scm:203
+#: guix/nar.scm:228
 #, scheme-format
 msgid "importing file or directory '~a'...~%"
-msgstr "importando el fichero o directorio '~a'...~%"
+msgstr "importando el archivo o directorio '~a'...~%"
 
 # FUZZY
-#: guix/nar.scm:214
+#: guix/nar.scm:239
 #, scheme-format
 msgid "found valid signature for '~a'~%"
 msgstr "encontrada una firma válida para '~a'~%"
 
-#: guix/nar.scm:221
+#: guix/nar.scm:246
 msgid "imported file lacks a signature"
-msgstr "el fichero importado carece de firma"
+msgstr "el archivo importado carece de firma"
 
 # FUZZY
-#: guix/nar.scm:260
+#: guix/nar.scm:285
 msgid "invalid inter-file archive mark"
-msgstr "marca de archivo entre-ficheros no válida"
+msgstr "marca de archivo entre-archivos no válida"
 
-#: guix/channels.scm:168
+#: guix/channels.scm:266
 msgid "unsupported '.guix-channel' version"
 msgstr "versión de '.guix-channel' no implementada"
 
-#: guix/channels.scm:174
+#: guix/channels.scm:272
 msgid "invalid '.guix-channel' file"
-msgstr "fichero '.guix-channel' no válido"
+msgstr "archivo '.guix-channel' no válido"
+
+#: guix/channels.scm:331
+msgid "Authenticating channel '~a', commits ~a to ~a (~h new commits)...~%"
+msgstr "Verificando canal '~a', revisiones de ~a a ~a (~h nuevas revisiones)...~%"
+
+# FUZZY
+#: guix/channels.scm:382
+#, scheme-format
+msgid "channel '~a' lacks an introduction and cannot be authenticated~%"
+msgstr "el canal '~a' carece de presentación y no puede ser verificado~%"
+
+#: guix/channels.scm:387
+msgid ""
+"Add the missing introduction to your\n"
+"channels file to address the issue.  Alternatively, you can pass\n"
+"@option{--disable-authentication}, at the risk of running unauthenticated and\n"
+"thus potentially malicious code."
+msgstr ""
+"Añada la presentación (introduction)\n"
+"en su archivo de canales para corregir la incidencia.  De manera\n"
+"alternativa, puede proporcionar la opcion @option{--disable-authentication},\n"
+"con el riesgo de ejecutar código sin verificar y por lo tanto\n"
+"potencialmente malicioso."
+
+#: guix/channels.scm:391
+#, scheme-format
+msgid "channel authentication disabled~%"
+msgstr "verificación de canales desactivada"
 
-#: guix/channels.scm:224
+#: guix/channels.scm:416
+#, scheme-format
+msgid "aborting update of channel '~a' to commit ~a, which is not a descendant of ~a"
+msgstr "abortando la actualización del canal '~a' a la revisión ~a, la cual no desciende de ~a"
+
+#: guix/channels.scm:427
+msgid ""
+"Use @option{--allow-downgrades} to force\n"
+"this downgrade."
+msgstr ""
+"Use @option{--allow-downgrades} para\n"
+"permitir el paso a esta versión anterior."
+
+#: guix/channels.scm:431
+msgid ""
+"This could indicate that the channel has\n"
+"been tampered with and is trying to force a roll-back, preventing you from\n"
+"getting the latest updates.  If you think this is not the case, explicitly\n"
+"allow non-forward updates."
+msgstr ""
+"Esto puede indicar que el canal ha sido modificado\n"
+"y se intenta forzar volver a una versión anterior, lo que evitaría que\n"
+"obtuviese las últimas versiones. Si piensa que este no es su caso,\n"
+"permita explícitamente las actualizaciones no-continuas (non-forward)."
+
+#: guix/channels.scm:484
 #, scheme-format
 msgid "Updating channel '~a' from Git repository at '~a'...~%"
 msgstr "Actualizando el canal '~a' del repositorio Git en '~a'...~%"
 
+#: guix/channels.scm:505
+#, scheme-format
+msgid "pulled channel '~a' from a mirror of ~a, which might be stale~%"
+msgstr "se obtuvo el canal '~a' desde el espejo de ~a, que puede estar obsoleto~%"
+
 # FUZZY
-#: guix/channels.scm:475
+#: guix/channels.scm:733
 msgid "'guix' channel is lacking"
 msgstr "falta el canal de guix"
 
 # FUZZY
-#: guix/channels.scm:477
+#: guix/channels.scm:735
 msgid ""
 "Make sure your list of channels\n"
 "contains one channel named @code{guix} providing the core of Guix."
@@ -5494,67 +6200,78 @@ msgstr ""
 "Asegúrese de que su lista de canales\n"
 "contiene un canal llamado @code{guix} que proporcione la base de Guix."
 
-#: guix/channels.scm:679
+#: guix/channels.scm:964
 msgid "invalid channel news entry"
 msgstr "entrada de las noticias del canal no válida"
 
-#: guix/channels.scm:697
+#: guix/channels.scm:982
 msgid "syntactically invalid channel news file"
-msgstr "fichero de noticias del canal con sintáxis no válida"
+msgstr "archivo de noticias del canal con sintáxis no válida"
 
-#: guix/channels.scm:700
+#: guix/channels.scm:985
 msgid "invalid channel news file"
-msgstr "fichero de noticias del canal no válido"
+msgstr "archivo de noticias del canal no válido"
 
-#: guix/profiles.scm:564
+#: guix/profiles.scm:574
 msgid "unsupported manifest format"
 msgstr "formato de manifiesto no disponible"
 
-#: guix/profiles.scm:1878
+#: guix/profiles.scm:1935
 #, scheme-format
 msgid "while creating directory `~a': ~a"
 msgstr "durante la creación del directorio «~a»: ~a"
 
-#: guix/profiles.scm:1883
+#: guix/profiles.scm:1940
 #, scheme-format
 msgid "Please create the @file{~a} directory, with you as the owner."
 msgstr "Por favor cree el directorio @file{~a}, siendo usted la propietaria."
 
-#: guix/profiles.scm:1892
+#: guix/profiles.scm:1949
 #, scheme-format
 msgid "directory `~a' is not owned by you"
 msgstr "usted no es la propietaria del directorio «~a»"
 
-#: guix/profiles.scm:1896
+#: guix/profiles.scm:1953
 #, scheme-format
 msgid "Please change the owner of @file{~a} to user ~s."
-msgstr "Por favor, cambie la propiedad de @file{~a} a la usuaria ~s."
+msgstr "Por favor, asigne la propiedad de @file{~a} a la cuenta ~s."
+
+#: guix/git.scm:136
+msgid "receiving objects"
+msgstr "recibiendo objetos"
 
-#: guix/git.scm:170
-msgid "long Git object ID is required"
-msgstr "es necesario el ID largo de objeto Git"
+#: guix/git.scm:138
+msgid "indexing objects"
+msgstr "indexando objetos"
 
-#: guix/git.scm:228
+# FUZZY
+#: guix/git.scm:268
 #, scheme-format
-msgid "updating submodule '~a'...~%"
-msgstr "actualizando el submódulo '~a'...~%"
+msgid "Git error ~a~%"
+msgstr "Error Git ~a~%"
+
+# FUZZY
+#: guix/git.scm:270 guix/git.scm:438
+#, scheme-format
+msgid "Git error: ~a~%"
+msgstr "Error git: ~a~%"
 
-#: guix/git.scm:241
+#: guix/git.scm:284
 #, scheme-format
-msgid "Support for submodules is missing; please upgrade Guile-Git.~%"
-msgstr "Los submódulos no están implementados; por favor, actualice Guile-Git.~%"
+msgid "updating submodule '~a'...~%"
+msgstr "actualizando el submódulo '~a'...~%"
 
-#: guix/git.scm:440
+#: guix/git.scm:532
 #, scheme-format
 msgid "cannot fetch commit ~a from ~a: ~a"
 msgstr "no se puede obtener la revisión ~a desde ~a: ~a"
 
-#: guix/git.scm:443
+#: guix/git.scm:535
 #, scheme-format
 msgid "cannot fetch branch '~a' from ~a: ~a"
 msgstr "no se puede obtener la rama '~a' desde ~a: ~a"
 
-#: guix/git.scm:446
+#: guix/git.scm:538
 #, scheme-format
 msgid "Git failure while fetching ~a: ~a"
 msgstr "Git ha fallado al obtener ~a: ~a"
@@ -5571,7 +6288,7 @@ msgstr "'~a' está obsoleto~%"
 
 #. TRANSLATORS: 'derivation' must not be translated; it refers to the
 #. 'derivation' procedure.
-#: guix/derivations.scm:743
+#: guix/derivations.scm:775
 #, scheme-format
 msgid "in '~a': deprecated 'derivation' calling convention used~%"
 msgstr "en '~a': se usa una convención de llamada a 'derivation' obsoleta~%"
@@ -5680,7 +6397,7 @@ msgstr "usa el tipo de compresión especificado para los registros de construcci
 
 #: nix/nix-daemon/guix-daemon.cc:136
 msgid "disable automatic file \"deduplication\" in the store"
-msgstr "desactiva la \"deduplicación\" automática de ficheros en el almacén"
+msgstr "desactiva la \"deduplicación\" automática de archivos en el almacén"
 
 # FUZZY
 #: nix/nix-daemon/guix-daemon.cc:146
@@ -5707,14 +6424,44 @@ msgstr "escucha conexiones en SOCKET"
 msgid "produce debugging output"
 msgstr "produce salida de depuración"
 
+#~ msgid "long Git object ID is required"
+#~ msgstr "es necesario el ID largo de objeto Git"
+
+#~ msgid "Support for submodules is missing; please upgrade Guile-Git.~%"
+#~ msgstr "Los submódulos no están implementados; por favor, actualice Guile-Git.~%"
+
+#~ msgid "cannot find public key for secret key '~a'~%"
+#~ msgstr "no se pudo encontrar una clave pública para la clave secreta '~a'~%"
+
+#~ msgid "error: invalid signature: ~a~%"
+#~ msgstr "error: firma no válida: ~a~%"
+
+#~ msgid "error: unauthorized public key: ~a~%"
+#~ msgstr "error: clave pública no autorizada: ~a~%"
+
+#~ msgid "error: corrupt signature data: ~a~%"
+#~ msgstr "error: datos de firma corruptos: ~a~%"
+
+#~ msgid "~a: error: device '~a' not found: ~a~%"
+#~ msgstr "~a: error: dispositivo '~a' no encontrado: ~a~%"
+
+#~ msgid ""
+#~ "\n"
+#~ "      --file-system-type=TYPE\n"
+#~ "                         for 'disk-image', produce a root file system of TYPE\n"
+#~ "                         (one of 'ext4', 'iso9660')"
+#~ msgstr ""
+#~ "\n"
+#~ "      --file-system-type=TIPO\n"
+#~ "                         para 'disk-image', produce un sistema de archivos raíz\n"
+#~ "                         de TIPO (uno de 'ext4', 'iso9660')"
+
+#~ msgid "Run @code{~a ... | less} to view all the results."
+#~ msgstr "Ejecute @code{~a ... | less} para ver todos los resultados."
+
 #~ msgid "Retry system install"
 #~ msgstr "Reintentar la instalación del sistema"
 
-#~ msgid "~a package in profile~%"
-#~ msgid_plural "~a packages in profile~%"
-#~ msgstr[0] "~a paquete en el perfil~%"
-#~ msgstr[1] "~a paquetes en el perfil~%"
-
 #~ msgid "failed to obtain list of shepherd services~%"
 #~ msgstr "no se pudo obtener la lista de servicios shepherd~%"
 
diff --git a/po/guix/fr.po b/po/guix/fr.po
index 503b8fb496..bccfd9ec05 100644
--- a/po/guix/fr.po
+++ b/po/guix/fr.po
@@ -15,10 +15,10 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: guix 1.1.0-pre2\n"
-"Report-Msgid-Bugs-To: ludo@gnu.org\n"
-"POT-Creation-Date: 2020-04-09 18:27+0200\n"
-"PO-Revision-Date: 2020-07-18 14:15+0200\n"
+"Project-Id-Version: guix 1.2.0-pre3\n"
+"Report-Msgid-Bugs-To: bug-guix@gnu.org\n"
+"POT-Creation-Date: 2020-11-05 17:27+0100\n"
+"PO-Revision-Date: 2020-11-09 16:46+0100\n"
 "Last-Translator: Julien Lepiller <julien@lepiller.eu>\n"
 "Language-Team: French <traduc@traduc.org>\n"
 "Language: fr\n"
@@ -29,12 +29,12 @@ msgstr ""
 "X-Bugs: Report translation errors to the Language-Team address.\n"
 "X-Generator: Offlate 0.5\n"
 
-#: gnu.scm:83
+#: gnu.scm:81
 #, scheme-format
 msgid "module ~a not found"
 msgstr "module ~a introuvable"
 
-#: gnu.scm:101
+#: gnu.scm:99
 msgid ""
 "You may use @command{guix package --show=foo | grep location} to search\n"
 "for the location of package @code{foo}.\n"
@@ -46,12 +46,12 @@ msgstr ""
 "Si vous voyez la ligne @code{location: gnu/packages/bar.scm:174:2},\n"
 "ajoutez @code{bar} dans @code{use-package-modules}."
 
-#: gnu.scm:109
+#: gnu.scm:107
 #, scheme-format
 msgid "Try adding @code{(use-package-modules ~a)}."
 msgstr "Essayez d'ajouter @code{(use-package-modules ~a)}."
 
-#: gnu.scm:124
+#: gnu.scm:122
 #, scheme-format
 msgid ""
 "You may use @command{guix system search ~a} to search for a service\n"
@@ -64,7 +64,7 @@ msgstr ""
 "Si vous voyez la ligne @code{location: gnu/services/foo.scm:188:2},\n"
 "ajoutez @code{foo} dans @code{use-service-modules}."
 
-#: gnu.scm:133
+#: gnu.scm:131
 #, scheme-format
 msgid "Try adding @code{(use-service-modules ~a)}."
 msgstr "Essayez d'ajouter @code{(use-service-modules ~a)}."
@@ -74,42 +74,42 @@ msgstr "Essayez d'ajouter @code{(use-service-modules ~a)}."
 msgid "~a: patch not found"
 msgstr "~a : correctif introuvable"
 
-#: gnu/packages.scm:460 gnu/packages.scm:501
+#: gnu/packages.scm:480 gnu/packages.scm:521
 #, scheme-format
 msgid "ambiguous package specification `~a'~%"
 msgstr "spécification du paquet « ~a » ambiguë~%"
 
-#: gnu/packages.scm:461 gnu/packages.scm:502
+#: gnu/packages.scm:481 gnu/packages.scm:522
 #, scheme-format
 msgid "choosing ~a@~a from ~a~%"
 msgstr "choix de ~a@~a à l'emplacement ~a~%"
 
-#: gnu/packages.scm:466 guix/scripts/package.scm:207
+#: gnu/packages.scm:486 guix/scripts/package.scm:211
 #, scheme-format
 msgid "package '~a' has been superseded by '~a'~%"
 msgstr "le paquet « ~a » a été remplacé par « ~a »~%"
 
-#: gnu/packages.scm:473 gnu/packages.scm:490
+#: gnu/packages.scm:493 gnu/packages.scm:510
 #, scheme-format
 msgid "~A: package not found for version ~a~%"
 msgstr "~A : paquet introuvable pour la version ~a~%"
 
-#: gnu/packages.scm:474 gnu/packages.scm:491
+#: gnu/packages.scm:494 gnu/packages.scm:511
 #, scheme-format
 msgid "~A: unknown package~%"
 msgstr "~A : paquet inconnu~%"
 
-#: gnu/packages.scm:530
+#: gnu/packages.scm:550
 #, scheme-format
 msgid "package `~a' lacks output `~a'~%"
 msgstr "le paquet « ~a » requiert la sortie « ~a »~%"
 
-#: gnu/services.scm:242
+#: gnu/services.scm:249
 #, scheme-format
 msgid "~a: no value specified for service of type '~a'"
 msgstr "~a : aucune valeur spécifiée pour le service de type « ~a »"
 
-#: gnu/services.scm:341
+#: gnu/services.scm:347
 msgid ""
 "Build the operating system top-level directory, which in\n"
 "turn refers to everything the operating system needs: its kernel, initrd,\n"
@@ -120,7 +120,7 @@ msgstr ""
 "besoin : son noyau, l'image de démarrage, le profil du système, le script\n"
 "de démarrage, etc."
 
-#: gnu/services.scm:371
+#: gnu/services.scm:377
 msgid ""
 "Produce the operating system's boot script, which is spawned\n"
 "by the initrd once the root file system is mounted."
@@ -129,7 +129,7 @@ msgstr ""
 "qui est appelé par l’image de démarrage une fois que le système\n"
 "de fichiers racine est monté."
 
-#: gnu/services.scm:452
+#: gnu/services.scm:493
 msgid ""
 "Store provenance information about the system in the system\n"
 "itself: the channels used when building the system, and its configuration\n"
@@ -139,7 +139,7 @@ msgstr ""
 "lui-même : les canaux utilisés lors de la construction d usystème et son fichier\n"
 "de configuration, s'il est disponible."
 
-#: gnu/services.scm:510
+#: gnu/services.scm:576
 msgid ""
 "Delete files from @file{/tmp}, @file{/var/run}, and other\n"
 "temporary locations at boot time."
@@ -147,7 +147,7 @@ msgstr ""
 "Supprime les fichiers de @file{/tmp}, @file{/var/run} et d'autres\n"
 "emplacements temporaires au démarrage."
 
-#: gnu/services.scm:564
+#: gnu/services.scm:630
 msgid ""
 "Run @dfn{activation} code at boot time and upon\n"
 "@command{guix system reconfigure} completion."
@@ -155,7 +155,7 @@ msgstr ""
 "Lance le code d’@dfn{activation} au démarrage et à la\n"
 "fin de @command{guix system reconfigure}."
 
-#: gnu/services.scm:619
+#: gnu/services.scm:718
 msgid ""
 "Add special files to the root file system---e.g.,\n"
 "@file{/usr/bin/env}."
@@ -163,11 +163,16 @@ msgstr ""
 "Ajoute des fichiers spéciaux au système de fichiers\n"
 "racine — p. ex. @file{/usr/bin/env}."
 
-#: gnu/services.scm:655
+#: gnu/services.scm:741
+#, scheme-format
+msgid "duplicate '~a' entry for /etc"
+msgstr "entrée « ~a » dupliquée dans /etc"
+
+#: gnu/services.scm:769
 msgid "Populate the @file{/etc} directory."
 msgstr "Rempli le répertoire @file{/etc}."
 
-#: gnu/services.scm:672
+#: gnu/services.scm:786
 msgid ""
 "Populate @file{/run/setuid-programs} with the specified\n"
 "executables, making them setuid-root."
@@ -175,7 +180,7 @@ msgstr ""
 "Rempli @file{/run/setuid-programs} avec les exécutables\n"
 "spécifiés, en les rendant setuid-root."
 
-#: gnu/services.scm:692
+#: gnu/services.scm:806
 msgid ""
 "This is the @dfn{system profile}, available as\n"
 "@file{/run/current-system/profile}.  It contains packages that the sysadmin\n"
@@ -185,7 +190,7 @@ msgstr ""
 "@file{/run/current-system/profile}. Il contient des paquets que l'administrateur\n"
 "système souhaite rendre disponible à tous les utilisateurs du système."
 
-#: gnu/services.scm:712
+#: gnu/services.scm:826
 msgid ""
 "Make ``firmware'' files loadable by the operating system\n"
 "kernel.  Firmware may then be uploaded to some of the machine's devices, such\n"
@@ -195,7 +200,7 @@ msgstr ""
 "Les micro-logiciels peuvent ensuite être envoyés à certains périphériques de la\n"
 "machine, comme une carte wifi."
 
-#: gnu/services.scm:743
+#: gnu/services.scm:857
 msgid ""
 "Register garbage-collector roots---i.e., store items that\n"
 "will not be reclaimed by the garbage collector."
@@ -203,57 +208,86 @@ msgstr ""
 "Enregistre des racines du ramasse-miettes — c.-à-d. des éléments du\n"
 "dépôt qui ne seront pas glanés par le ramasse-miettes."
 
-#: gnu/services.scm:769
+#: gnu/services.scm:883
 #, scheme-format
 msgid "no target of type '~a' for service '~a'"
 msgstr "pas de cible de type « ~a » pour le service « ~a »"
 
-#: gnu/services.scm:795 gnu/services.scm:914
+#: gnu/services.scm:909 gnu/services.scm:1028
 #, scheme-format
 msgid "more than one target service of type '~a'"
 msgstr "plus d'un service cible de type « ~a »"
 
-#: gnu/services.scm:904
+#: gnu/services.scm:1018
 #, scheme-format
 msgid "service of type '~a' not found"
 msgstr "service de type « ~a » pas trouvé"
 
-#: gnu/system.scm:355
+#: gnu/system.scm:421
 #, scheme-format
 msgid "unrecognized boot parameters at '~a'~%"
 msgstr "paramètres de démarrage non reconnus dans « ~a »~%"
 
-#: gnu/system.scm:793
+#: gnu/system.scm:973
 #, scheme-format
 msgid "using a string for file '~a' is deprecated; use 'plain-file' instead~%"
-msgstr "l'utilisation d'une chaîne pour le fichier « ~a » est obsolète. Utilisez plutôt « plain-file »~%"
+msgstr "l'utilisation d'une chaine pour le fichier « ~a » est obsolète. Utilisez plutôt « plain-file »~%"
 
-#: gnu/system.scm:809
+#: gnu/system.scm:989
 #, scheme-format
 msgid "using a monadic value for '~a' is deprecated; use 'plain-file' instead~%"
 msgstr "l'utilisation d'une valeur monadic pour « ~a » est obsolète. Utilisez plutôt « plain-file »~%"
 
-#: gnu/system.scm:959
+#: gnu/system.scm:1116
+msgid "missing root file system"
+msgstr "système de fichier racine manquant"
+
+#: gnu/system.scm:1192
 #, scheme-format
 msgid "~a: invalid locale name"
 msgstr "~a : nom d'environnement linguistique non valide"
 
-#: gnu/services/shepherd.scm:194
+#: gnu/services/shepherd.scm:112
+msgid ""
+"Run the GNU Shepherd as PID 1---i.e., the operating system's first\n"
+"process.  The Shepherd takes care of managing services such as daemons by\n"
+"ensuring they are started and stopped in the right order."
+msgstr ""
+"Lancer GNU Shepherd en tant que PID 1 — c.-à-d. le premier processus\n"
+"du système d'exploitation.  Le Shepherd prend en charge la gestion des\n"
+"services comme les démons en s'assurant qu'ils démarrent et s'arrêtent\n"
+"dans le bon ordre."
+
+#: gnu/services/shepherd.scm:202
 #, scheme-format
 msgid "service '~a' provided more than once"
 msgstr "service « ~a » fourni plus d'une fois"
 
-#: gnu/services/shepherd.scm:209
+#: gnu/services/shepherd.scm:217
 #, scheme-format
 msgid "service '~a' requires '~a', which is not provided by any service"
 msgstr "le service « ~a » requiert « ~a » qui n'est fourni pas aucun service"
 
-#: gnu/system/mapped-devices.scm:136
+#: gnu/services/shepherd.scm:547
+msgid ""
+"The @code{user-processes} service is responsible for\n"
+"terminating all the processes so that the root file system can be re-mounted\n"
+"read-only, just before rebooting/halting.  Processes still running after a few\n"
+"seconds after @code{SIGTERM} has been sent are terminated with\n"
+"@code{SIGKILL}."
+msgstr ""
+"Le service @code{user-processes} est responsable de la terminaison\n"
+"des processus pour que le système de fichier racine puisse être remonté\n"
+"en lecture-seule, juste avant de redémarrer ou d'arrêter l'ordinateur. Les\n"
+"processus qui tournent encore quelques secondes après l'envoie du\n"
+"@code{SIGTERM} sont terminés avec @code{SIGKILL}."
+
+#: gnu/system/mapped-devices.scm:137
 #, scheme-format
 msgid "you may need these modules in the initrd for ~a:~{ ~a~}"
 msgstr "vous pourriez avoir besoin de ces modules dans l’image de démarrage pour ~a :~{ ~a~}"
 
-#: gnu/system/mapped-devices.scm:140
+#: gnu/system/mapped-devices.scm:142
 #, scheme-format
 msgid ""
 "Try adding them to the\n"
@@ -283,7 +317,7 @@ msgstr ""
 "Si vous pensez que ce diagnostic est inexact, utilisez l'option @option{--skip-checks}\n"
 "de @command{guix system}.\n"
 
-#: gnu/system/mapped-devices.scm:219
+#: gnu/system/mapped-devices.scm:221
 #, scheme-format
 msgid "no LUKS partition with UUID '~a'"
 msgstr "aucune partition LUKS avec l’UUID « ~a »"
@@ -298,49 +332,57 @@ msgstr "le groupe supplémentaire « ~a » de l'utilisateur « ~a » n'est p
 msgid "primary group '~a' of user '~a' is undeclared"
 msgstr "le groupe primaire « ~a » de l'utilisateur « ~a » n'est pas déclaré"
 
-#: guix/import/opam.scm:141
+#: gnu/system/shadow.scm:383
+msgid ""
+"Ensure the specified user accounts and groups exist, as well\n"
+"as each account home directory."
+msgstr ""
+"S'assure que les comptes utilisateurs et les groupes spécifiés, ainsi que\n"
+"les répertoires personnels des comptes, existent."
+
+#: guix/import/opam.scm:148
 #, scheme-format
 msgid "Package not found in opam repository: ~a~%"
 msgstr "Paquet introuvable dans le dépôt opam : ~a~%"
 
-#: guix/import/opam.scm:357
+#: guix/import/opam.scm:368
 msgid "Updater for OPAM packages"
 msgstr "Logiciel de mise à jour des paquets OPAM"
 
-#: gnu/installer.scm:215
+#: gnu/installer.scm:214
 msgid "Locale"
 msgstr "Paramètres régionaux"
 
-#: gnu/installer.scm:231 gnu/installer/newt/timezone.scm:58
+#: gnu/installer.scm:230 gnu/installer/newt/timezone.scm:58
 msgid "Timezone"
 msgstr "Fuseau horaire"
 
-#: gnu/installer.scm:248
+#: gnu/installer.scm:247
 msgid "Keyboard mapping selection"
 msgstr "Sélection de la disposition du clavier"
 
-#: gnu/installer.scm:257 gnu/installer/newt/hostname.scm:26
+#: gnu/installer.scm:256 gnu/installer/newt/hostname.scm:26
 msgid "Hostname"
 msgstr "Nom d'hôte"
 
-#: gnu/installer.scm:266
+#: gnu/installer.scm:265
 msgid "Network selection"
 msgstr "Sélection du réseau"
 
-#: gnu/installer.scm:273 gnu/installer/newt/user.scm:68
+#: gnu/installer.scm:272 gnu/installer/newt/user.scm:68
 #: gnu/installer/newt/user.scm:205
 msgid "User creation"
 msgstr "Création de l'utilisateur"
 
-#: gnu/installer.scm:281
+#: gnu/installer.scm:280
 msgid "Services"
 msgstr "Services"
 
-#: gnu/installer.scm:292
+#: gnu/installer.scm:291
 msgid "Partitioning"
 msgstr "Partitionnement"
 
-#: gnu/installer.scm:299 gnu/installer/newt/final.scm:52
+#: gnu/installer.scm:298 gnu/installer/newt/final.scm:54
 msgid "Configuration file"
 msgstr "Fichier de configuration"
 
@@ -385,52 +427,52 @@ msgstr "Connexion filaire"
 #: gnu/installer/newt/locale.scm:43 gnu/installer/newt/network.scm:63
 #: gnu/installer/newt/network.scm:84 gnu/installer/newt/page.scm:303
 #: gnu/installer/newt/page.scm:666 gnu/installer/newt/page.scm:751
-#: gnu/installer/newt/partition.scm:55 gnu/installer/newt/partition.scm:84
-#: gnu/installer/newt/partition.scm:116 gnu/installer/newt/partition.scm:127
-#: gnu/installer/newt/partition.scm:624 gnu/installer/newt/partition.scm:645
-#: gnu/installer/newt/partition.scm:691 gnu/installer/newt/partition.scm:742
-#: gnu/installer/newt/partition.scm:753 gnu/installer/newt/services.scm:85
+#: gnu/installer/newt/partition.scm:56 gnu/installer/newt/partition.scm:91
+#: gnu/installer/newt/partition.scm:123 gnu/installer/newt/partition.scm:134
+#: gnu/installer/newt/partition.scm:631 gnu/installer/newt/partition.scm:652
+#: gnu/installer/newt/partition.scm:698 gnu/installer/newt/partition.scm:749
+#: gnu/installer/newt/partition.scm:760 gnu/installer/newt/services.scm:87
 #: gnu/installer/newt/timezone.scm:63 gnu/installer/newt/user.scm:204
 #: gnu/installer/newt/wifi.scm:205
 msgid "Exit"
 msgstr "Sortir"
 
-#: gnu/installer/newt/final.scm:45
+#: gnu/installer/newt/final.scm:47
 #, scheme-format
 msgid "We're now ready to proceed with the installation! A system configuration file has been generated, it is displayed below.  This file will be available as '~a' on the installed system.  The new system will be created from this file once you've pressed OK.  This will take a few minutes."
 msgstr "Nous sommes maintenant prêts à commencer l'installation ! Un fichier de configuration du système a été généré, il est affiché plus bas. Ce fichier sera disponible dans « ~a » sur le système une fois installé. Le nouveau système sera créé à partir de ce fichier une fois que vous aurez appuyé sur OK. Cela prendra quelques minutes."
 
-#: gnu/installer/newt/final.scm:69
+#: gnu/installer/newt/final.scm:71
 msgid "Installation complete"
 msgstr "Installation terminée"
 
-#: gnu/installer/newt/final.scm:70 gnu/installer/newt/welcome.scm:139
+#: gnu/installer/newt/final.scm:72 gnu/installer/newt/welcome.scm:139
 msgid "Reboot"
 msgstr "Redémarrer"
 
-#: gnu/installer/newt/final.scm:71
+#: gnu/installer/newt/final.scm:73
 msgid "Congratulations!  Installation is now complete.  You may remove the device containing the installation image and press the button to reboot."
 msgstr "Félicitations ! L'installation est maintenant terminée. Vous pouvez retirer le périphérique contenant l'image d'installation et appuyer sur le bouton pour redémarrer."
 
-#: gnu/installer/newt/final.scm:85
+#: gnu/installer/newt/final.scm:87
 msgid "Installation failed"
 msgstr "Installation échouée"
 
-#: gnu/installer/newt/final.scm:86
+#: gnu/installer/newt/final.scm:88
 msgid "Resume"
 msgstr "Reprendre"
 
-#: gnu/installer/newt/final.scm:87
+#: gnu/installer/newt/final.scm:89
 msgid "Restart the installer"
 msgstr "Redémarrer l'installateur"
 
-#: gnu/installer/newt/final.scm:88
+#: gnu/installer/newt/final.scm:90
 msgid "The final system installation step failed.  You can resume from a specific step, or restart the installer."
 msgstr "La dernière étape de l'installation du système a échouée. Vous pouvez reprendre à une étape spécifique ou redémarrer l'installateur."
 
 #: gnu/installer/newt/parameters.scm:30
 msgid "Please enter the HTTP proxy URL. If you enter an empty string, proxy usage will be disabled."
-msgstr "Saisissez l'URL du mandataire HTTP. Si vous saisissez une chaîne vide, aucun mandataire ne sera utilisé."
+msgstr "Saisissez l'URL du mandataire HTTP. Si vous saisissez une chaine vide, aucun mandataire ne sera utilisé."
 
 #: gnu/installer/newt/parameters.scm:32
 msgid "HTTP proxy configuration"
@@ -454,7 +496,7 @@ msgstr "Paramètres d'installation"
 
 #: gnu/installer/newt/parameters.scm:53 gnu/installer/newt/keymap.scm:74
 #: gnu/installer/newt/locale.scm:63 gnu/installer/newt/locale.scm:78
-#: gnu/installer/newt/locale.scm:94 gnu/installer/newt/partition.scm:581
+#: gnu/installer/newt/locale.scm:94 gnu/installer/newt/partition.scm:588
 #: gnu/installer/newt/timezone.scm:64
 msgid "Back"
 msgstr "Retour"
@@ -591,9 +633,9 @@ msgid "Show"
 msgstr "Montrer"
 
 #: gnu/installer/newt/page.scm:219 gnu/installer/newt/page.scm:665
-#: gnu/installer/newt/page.scm:750 gnu/installer/newt/partition.scm:444
-#: gnu/installer/newt/partition.scm:623 gnu/installer/newt/partition.scm:644
-#: gnu/installer/newt/partition.scm:683 gnu/installer/newt/user.scm:66
+#: gnu/installer/newt/page.scm:750 gnu/installer/newt/partition.scm:451
+#: gnu/installer/newt/partition.scm:630 gnu/installer/newt/partition.scm:651
+#: gnu/installer/newt/partition.scm:690 gnu/installer/newt/user.scm:66
 #: gnu/installer/newt/user.scm:203
 msgid "OK"
 msgstr "OK"
@@ -610,204 +652,207 @@ msgstr "Valeur vide"
 msgid "Edit"
 msgstr "Modifier"
 
-#: gnu/installer/newt/partition.scm:46
+#: gnu/installer/newt/partition.scm:47
 msgid "Everything is one partition"
 msgstr "Tout sur une partition"
 
-#: gnu/installer/newt/partition.scm:47
+#: gnu/installer/newt/partition.scm:48
 msgid "Separate /home partition"
 msgstr "Partition /home séparée"
 
-#: gnu/installer/newt/partition.scm:49
+#: gnu/installer/newt/partition.scm:50
 msgid "Please select a partitioning scheme."
 msgstr "Sélectionnez un schéma de partitionnement."
 
-#: gnu/installer/newt/partition.scm:50
+#: gnu/installer/newt/partition.scm:51
 msgid "Partition scheme"
 msgstr "Schéma de partitionnement"
 
-#: gnu/installer/newt/partition.scm:62
-msgid "We are about to format your hard disk.  All its data will be lost.  Do you wish to continue?"
-msgstr "Nous allons formater votre disque dur. Toutes les données seront perdues. Voulez-vous continuer ?"
+#. TRANSLATORS: The ~{ and ~} format specifiers are used to iterate the list
+#. of device names of the user partitions that will be formatted.
+#: gnu/installer/newt/partition.scm:65
+#, scheme-format
+msgid "We are about to write the configured partition table to the disk and format the partitions listed below.  Their data will be lost.  Do you wish to continue?~%~{ - ~a~%~}"
+msgstr "Nous allons écrire la table de partitions configurée sur le disque et formater les partitions indiquées ci-dessous. Leurs données seront perdues. Voulez-vous continuer ?~%~{ - ~a~%~}"
 
-#: gnu/installer/newt/partition.scm:64
+#: gnu/installer/newt/partition.scm:71
 msgid "Format disk?"
 msgstr "Formater le disque ?"
 
-#: gnu/installer/newt/partition.scm:67
+#: gnu/installer/newt/partition.scm:74
 msgid "Partition formatting is in progress, please wait."
 msgstr "Formatage du disque en cours, patientez."
 
-#: gnu/installer/newt/partition.scm:68
+#: gnu/installer/newt/partition.scm:75
 msgid "Preparing partitions"
 msgstr "Préparation des partitions"
 
-#: gnu/installer/newt/partition.scm:79
+#: gnu/installer/newt/partition.scm:86
 msgid "Please select a disk."
 msgstr "Sélectionnez un disque."
 
-#: gnu/installer/newt/partition.scm:80
+#: gnu/installer/newt/partition.scm:87
 msgid "Disk"
 msgstr "Disque"
 
-#: gnu/installer/newt/partition.scm:92
+#: gnu/installer/newt/partition.scm:99
 msgid "Select a new partition table type. Be careful, all data on the disk will be lost."
 msgstr "Sélectionnez un nouveau type de table des partitions. Soyez prudent, toutes les données sur le disque seront perdues."
 
-#: gnu/installer/newt/partition.scm:94
+#: gnu/installer/newt/partition.scm:101
 msgid "Partition table"
 msgstr "Table des partitions"
 
-#: gnu/installer/newt/partition.scm:111
+#: gnu/installer/newt/partition.scm:118
 msgid "Please select a partition type."
 msgstr "Sélectionnez un type de partition."
 
-#: gnu/installer/newt/partition.scm:112
+#: gnu/installer/newt/partition.scm:119
 msgid "Partition type"
 msgstr "Type de partition"
 
-#: gnu/installer/newt/partition.scm:122
+#: gnu/installer/newt/partition.scm:129
 msgid "Please select the file-system type for this partition."
 msgstr "Sélectionnez le type de système de fichier pour cette partition."
 
-#: gnu/installer/newt/partition.scm:123
+#: gnu/installer/newt/partition.scm:130
 msgid "File-system type"
 msgstr "Type de système de fichier"
 
-#: gnu/installer/newt/partition.scm:136
+#: gnu/installer/newt/partition.scm:143
 msgid "Primary partitions count exceeded."
 msgstr "Nombre maximal de partitions primaires dépassé."
 
-#: gnu/installer/newt/partition.scm:137 gnu/installer/newt/partition.scm:142
-#: gnu/installer/newt/partition.scm:147
+#: gnu/installer/newt/partition.scm:144 gnu/installer/newt/partition.scm:149
+#: gnu/installer/newt/partition.scm:154
 msgid "Creation error"
 msgstr "Erreur à la création"
 
-#: gnu/installer/newt/partition.scm:141
+#: gnu/installer/newt/partition.scm:148
 msgid "Extended partition creation error."
 msgstr "Erreur à la création d'une partition étendue."
 
-#: gnu/installer/newt/partition.scm:146
+#: gnu/installer/newt/partition.scm:153
 msgid "Logical partition creation error."
 msgstr "Erreur à la création d'une partition logique."
 
-#: gnu/installer/newt/partition.scm:160
+#: gnu/installer/newt/partition.scm:167
 #, scheme-format
 msgid "Please enter the password for the encryption of partition ~a (label: ~a)."
 msgstr "Saisissez le mot de passe pour le chiffrement de la partition ~a (étiquette : ~a)."
 
-#: gnu/installer/newt/partition.scm:162 gnu/installer/newt/wifi.scm:92
+#: gnu/installer/newt/partition.scm:169 gnu/installer/newt/wifi.scm:92
 msgid "Password required"
 msgstr "Mot de passe requis"
 
-#: gnu/installer/newt/partition.scm:167
+#: gnu/installer/newt/partition.scm:174
 #, scheme-format
 msgid "Please confirm the password for the encryption of partition ~a (label: ~a)."
 msgstr "Confirmez le mot de passe pour le chiffrement de la partition ~a (étiquette : ~a)."
 
-#: gnu/installer/newt/partition.scm:169 gnu/installer/newt/user.scm:160
+#: gnu/installer/newt/partition.scm:176 gnu/installer/newt/user.scm:160
 msgid "Password confirmation required"
 msgstr "Confirmation du mot de passe requise"
 
-#: gnu/installer/newt/partition.scm:181 gnu/installer/newt/user.scm:168
+#: gnu/installer/newt/partition.scm:188 gnu/installer/newt/user.scm:168
 msgid "Password mismatch, please try again."
 msgstr "Les mots de passe sont différents, réessayez."
 
-#: gnu/installer/newt/partition.scm:182 gnu/installer/newt/user.scm:169
+#: gnu/installer/newt/partition.scm:189 gnu/installer/newt/user.scm:169
 msgid "Password error"
 msgstr "Erreur de mot de passe"
 
-#: gnu/installer/newt/partition.scm:268
+#: gnu/installer/newt/partition.scm:275
 msgid "Please enter the partition gpt name."
 msgstr "Saisissez le nom gpt de la partition."
 
-#: gnu/installer/newt/partition.scm:269
+#: gnu/installer/newt/partition.scm:276
 msgid "Partition name"
 msgstr "Nom de la partition"
 
-#: gnu/installer/newt/partition.scm:299
+#: gnu/installer/newt/partition.scm:306
 msgid "Please enter the encrypted label"
 msgstr "Saisissez l'étiquette chiffrée"
 
-#: gnu/installer/newt/partition.scm:300
+#: gnu/installer/newt/partition.scm:307
 msgid "Encryption label"
 msgstr "Étiquette de chiffrement"
 
-#: gnu/installer/newt/partition.scm:317
+#: gnu/installer/newt/partition.scm:324
 #, scheme-format
 msgid "Please enter the size of the partition. The maximum size is ~a."
 msgstr "Saisissez la taille de la partition. La taille maximale est de ~a."
 
-#: gnu/installer/newt/partition.scm:319
+#: gnu/installer/newt/partition.scm:326
 msgid "Partition size"
 msgstr "Taille de la partition"
 
-#: gnu/installer/newt/partition.scm:337
+#: gnu/installer/newt/partition.scm:344
 msgid "The percentage can not be superior to 100."
 msgstr "Le pourcentage ne peut être supérieur à 100."
 
-#: gnu/installer/newt/partition.scm:338 gnu/installer/newt/partition.scm:343
-#: gnu/installer/newt/partition.scm:348
+#: gnu/installer/newt/partition.scm:345 gnu/installer/newt/partition.scm:350
+#: gnu/installer/newt/partition.scm:355
 msgid "Size error"
 msgstr "Erreur de taille"
 
-#: gnu/installer/newt/partition.scm:342
+#: gnu/installer/newt/partition.scm:349
 msgid "The requested size is incorrectly formatted, or too large."
 msgstr "La taille demandée est mal formatée ou trop grande."
 
-#: gnu/installer/newt/partition.scm:347
+#: gnu/installer/newt/partition.scm:354
 msgid "The request size is superior to the maximum size."
 msgstr "La taille demandée est supérieure à la taille maximale."
 
-#: gnu/installer/newt/partition.scm:367
+#: gnu/installer/newt/partition.scm:374
 msgid "Please enter the desired mounting point for this partition. Leave this field empty if you don't want to set a mounting point."
 msgstr "Saisissez le point de montage souhaité pour cette partition. Laissez ce champ vide si vous ne voulez pas indiquer de point de montage."
 
-#: gnu/installer/newt/partition.scm:369
+#: gnu/installer/newt/partition.scm:376
 msgid "Mounting point"
 msgstr "Point de montage"
 
-#: gnu/installer/newt/partition.scm:433
+#: gnu/installer/newt/partition.scm:440
 #, scheme-format
 msgid "Creating ~a partition starting at ~a of ~a."
 msgstr "Création d'une partition de type ~a qui commence à ~a octets sur ~a."
 
-#: gnu/installer/newt/partition.scm:435
+#: gnu/installer/newt/partition.scm:442
 #, scheme-format
 msgid "You are currently editing partition ~a."
 msgstr "Vous modifiez actuellement la partition ~a."
 
-#: gnu/installer/newt/partition.scm:438
+#: gnu/installer/newt/partition.scm:445
 msgid "Partition creation"
 msgstr "Création de la partition"
 
-#: gnu/installer/newt/partition.scm:439
+#: gnu/installer/newt/partition.scm:446
 msgid "Partition edit"
 msgstr "Modification de la partition"
 
-#: gnu/installer/newt/partition.scm:620
+#: gnu/installer/newt/partition.scm:627
 #, scheme-format
 msgid "Are you sure you want to delete everything on disk ~a?"
 msgstr "Voulez-vous vraiment tout supprimer sur le disque ~a ?"
 
-#: gnu/installer/newt/partition.scm:622
+#: gnu/installer/newt/partition.scm:629
 msgid "Delete disk"
 msgstr "Supprimer le disque"
 
-#: gnu/installer/newt/partition.scm:636
+#: gnu/installer/newt/partition.scm:643
 msgid "You cannot delete a free space area."
 msgstr "Vous ne pouvez pas supprimer un espace libre."
 
-#: gnu/installer/newt/partition.scm:637 gnu/installer/newt/partition.scm:643
+#: gnu/installer/newt/partition.scm:644 gnu/installer/newt/partition.scm:650
 msgid "Delete partition"
 msgstr "Supprimer la partition"
 
-#: gnu/installer/newt/partition.scm:641
+#: gnu/installer/newt/partition.scm:648
 #, scheme-format
 msgid "Are you sure you want to delete partition ~a?"
 msgstr "Voulez-vous vraiment supprimer la partition ~a ?"
 
-#: gnu/installer/newt/partition.scm:658
+#: gnu/installer/newt/partition.scm:665
 msgid ""
 "You can change a disk's partition table by selecting it and pressing ENTER. You can also edit a partition by selecting it and pressing ENTER, or remove it by pressing DELETE. To create a new partition, select a free space area and press ENTER.\n"
 "\n"
@@ -817,68 +862,68 @@ msgstr ""
 "\n"
 "Au moins une partition doit avoir « / » comme point de montage."
 
-#: gnu/installer/newt/partition.scm:664
+#: gnu/installer/newt/partition.scm:671
 #, scheme-format
 msgid "This is the proposed partitioning. It is still possible to edit it or to go back to install menu by pressing the Exit button.~%~%"
 msgstr "Voici une proposition de partitionnement. Vous pouvez toujours la modifier ou revenir au menu de l'installateur en appuyant sur le bouton « Quitter ».~%~%"
 
-#: gnu/installer/newt/partition.scm:674
+#: gnu/installer/newt/partition.scm:681
 msgid "Guided partitioning"
 msgstr "Partitionnement guidé"
 
-#: gnu/installer/newt/partition.scm:675
+#: gnu/installer/newt/partition.scm:682
 msgid "Manual partitioning"
 msgstr "Partitionnement manuel"
 
-#: gnu/installer/newt/partition.scm:700
+#: gnu/installer/newt/partition.scm:707
 msgid "No root mount point found."
 msgstr "Pas de point de montage pour la racine."
 
-#: gnu/installer/newt/partition.scm:701
+#: gnu/installer/newt/partition.scm:708
 msgid "Missing mount point"
 msgstr "Point de montage absent"
 
-#: gnu/installer/newt/partition.scm:732
+#: gnu/installer/newt/partition.scm:739
 msgid "Guided - using the entire disk"
 msgstr "Guidée — utilise le disque complet"
 
-#: gnu/installer/newt/partition.scm:733
+#: gnu/installer/newt/partition.scm:740
 msgid "Guided - using the entire disk with encryption"
 msgstr "Guidée — utiliser le disque complet avec chiffrement"
 
-#: gnu/installer/newt/partition.scm:734
+#: gnu/installer/newt/partition.scm:741
 msgid "Manual"
 msgstr "Manuelle"
 
-#: gnu/installer/newt/partition.scm:736
+#: gnu/installer/newt/partition.scm:743
 msgid "Please select a partitioning method."
 msgstr "Sélectionnez une méthode de partitionnement."
 
-#: gnu/installer/newt/partition.scm:737
+#: gnu/installer/newt/partition.scm:744
 msgid "Partitioning method"
 msgstr "Méthode de partitionnement"
 
-#: gnu/installer/newt/services.scm:36
+#: gnu/installer/newt/services.scm:37
 msgid "Please select the desktop(s) environment(s) you wish to install. If you select multiple desktops environments, you will be able to choose the one to use on the log-in screen."
 msgstr "Sélectionnez les environnements de bureau que vous souhaitez installer. Si vous sélectionnez plusieurs environnements de bureau, vous pourrez choisir celui à utiliser sur l'écran de connexion."
 
-#: gnu/installer/newt/services.scm:39
+#: gnu/installer/newt/services.scm:40
 msgid "Desktop environment"
 msgstr "Environnement de bureau"
 
-#: gnu/installer/newt/services.scm:56
+#: gnu/installer/newt/services.scm:57
 msgid "You can now select networking services to run on your system."
 msgstr "Vous pouvez maintenant sélectionner les services réseau à exécuter sur votre système."
 
-#: gnu/installer/newt/services.scm:58
+#: gnu/installer/newt/services.scm:59
 msgid "Network service"
 msgstr "Service réseau"
 
-#: gnu/installer/newt/services.scm:71
+#: gnu/installer/newt/services.scm:72
 msgid "Network management"
 msgstr "Gestion du réseau"
 
-#: gnu/installer/newt/services.scm:74
+#: gnu/installer/newt/services.scm:75
 msgid ""
 "Choose the method to manage network connections.\n"
 "\n"
@@ -1019,36 +1064,85 @@ msgstr "Aucun réseau wifi détecté"
 msgid "Wifi"
 msgstr "Wifi"
 
-#: gnu/installer/parted.scm:395 gnu/installer/parted.scm:432
+#: gnu/installer/parted.scm:404 gnu/installer/parted.scm:441
 msgid "Free space"
 msgstr "Espace libre"
 
-#: gnu/installer/parted.scm:1350
+#: gnu/installer/parted.scm:530
+#, scheme-format
+msgid "Name: ~a"
+msgstr "Nom : ~a"
+
+#: gnu/installer/parted.scm:531 gnu/installer/parted.scm:577
+msgid "None"
+msgstr "Aucun"
+
+#: gnu/installer/parted.scm:536
+#, scheme-format
+msgid "Type: ~a"
+msgstr "Type : ~a"
+
+#: gnu/installer/parted.scm:540
+#, scheme-format
+msgid "File system type: ~a"
+msgstr "Type de système de fichier : ~a"
+
+#: gnu/installer/parted.scm:546
+#, scheme-format
+msgid "Bootable flag: ~:[off~;on~]"
+msgstr "Amorçable : ~:[non~;oui~]"
+
+#: gnu/installer/parted.scm:550
+#, scheme-format
+msgid "ESP flag: ~:[off~;on~]"
+msgstr "ESP : ~:[non~;oui~]"
+
+#: gnu/installer/parted.scm:556
+#, scheme-format
+msgid "Size: ~a"
+msgstr "Taille : ~a"
+
+#: gnu/installer/parted.scm:562
+#, scheme-format
+msgid "Encryption: ~:[No~a~;Yes (label '~a')~]"
+msgstr "Chiffrement : ~:[Non~a~;Oui (étiquette « ~a »)~]"
+
+#: gnu/installer/parted.scm:568
+#, scheme-format
+msgid "Format the partition? ~:[No~;Yes~]"
+msgstr "Formater la partition ? ~:[Non~;Oui~]"
+
+#: gnu/installer/parted.scm:574
+#, scheme-format
+msgid "Mount point: ~a"
+msgstr "Point de montage : ~a"
+
+#: gnu/installer/parted.scm:1374
 #, scheme-format
 msgid "Device ~a is still in use."
 msgstr "Le périphérique ~a est toujours utilisé."
 
-#: gnu/installer/services.scm:88
+#: gnu/installer/services.scm:94
 msgid "OpenSSH secure shell daemon (sshd)"
 msgstr "Démon de shell sécurisé OpenSSH (sshd)"
 
-#: gnu/installer/services.scm:92
+#: gnu/installer/services.scm:98
 msgid "Tor anonymous network router"
 msgstr "Réseau anonyme Tor"
 
-#: gnu/installer/services.scm:96
+#: gnu/installer/services.scm:102
 msgid "Mozilla NSS certificates, for HTTPS access"
 msgstr "Certificats NSS de Mozilla, pour l'accès HTTPS"
 
-#: gnu/installer/services.scm:103
+#: gnu/installer/services.scm:109
 msgid "NetworkManager network connection manager"
 msgstr "Gestionnaire de connexions réseaux NetworkManager"
 
-#: gnu/installer/services.scm:108
+#: gnu/installer/services.scm:114
 msgid "Connman network connection manager"
 msgstr "Gestionnaire de connexions réseaux Connman"
 
-#: gnu/installer/services.scm:113
+#: gnu/installer/services.scm:119
 msgid "DHCP client (dynamic IP address assignment)"
 msgstr "Client DHCP (affectation dynamique d'adresse IP)"
 
@@ -1062,22 +1156,22 @@ msgstr "Impossible de trouver le chemin : ~a."
 msgid "Press Enter to continue.~%"
 msgstr "Appuyez sur Entrée pour continuer.~%"
 
-#: gnu/installer/utils.scm:101
+#: gnu/installer/utils.scm:102
 #, scheme-format
 msgid "Command failed with exit code ~a.~%"
 msgstr "La commande a échouée avec le code ~a.~%"
 
-#: gnu/machine/ssh.scm:108
+#: gnu/machine/ssh.scm:113
 #, scheme-format
 msgid "<machine-ssh-configuration> without a 'host-key' is deprecated~%"
 msgstr "<machine-ssh-configuration> sans « host-key » est obsolète~%"
 
-#: gnu/machine/ssh.scm:183
+#: gnu/machine/ssh.scm:188
 #, scheme-format
 msgid "device '~a' not found: ~a"
 msgstr "périphérique « ~a » non trouvé : ~a"
 
-#: gnu/machine/ssh.scm:200
+#: gnu/machine/ssh.scm:203
 #, scheme-format
 msgid "no file system with label '~a'"
 msgstr "aucun système de fichier étiqueté « ~a »"
@@ -1092,21 +1186,21 @@ msgstr "aucun système de fichier avec l'UUID « ~a »"
 msgid "missing modules for ~a:~{ ~a~}~%"
 msgstr "modules manquants pour ~a : ~{ ~a~}~%"
 
-#: gnu/machine/ssh.scm:290
+#: gnu/machine/ssh.scm:309
 #, scheme-format
 msgid "incorrect target system ('~a' was given, while the system reports that it is '~a')~%"
 msgstr "système cible incorrect (« ~a » donné, alors que le système rapporte qu'il est un « ~a »)~%"
 
-#: gnu/machine/ssh.scm:407
+#: gnu/machine/ssh.scm:425
 #, scheme-format
 msgid "no signing key '~a'. have you run 'guix archive --generate-key?'"
 msgstr "pas de clef de signature « ~a ». Avez--vous lancé « guix archive --generate-key » ?"
 
-#: gnu/machine/ssh.scm:458
+#: gnu/machine/ssh.scm:476
 msgid "could not roll-back machine"
 msgstr "impossible de faire revenir la machine en arrière"
 
-#: gnu/machine/ssh.scm:490
+#: gnu/machine/ssh.scm:514
 msgid ""
 "Provisioning for machines that are accessible over SSH\n"
 "and have a known host-name. This entails little more than maintaining an SSH\n"
@@ -1116,7 +1210,7 @@ msgstr ""
 "ont un nom d'hôte connu. Cela nécessite à peine plus que de\n"
 "maintenir une connexion SSH à l'hôte"
 
-#: gnu/machine/ssh.scm:502
+#: gnu/machine/ssh.scm:524
 #, scheme-format
 msgid ""
 "unsupported machine configuration '~a'\n"
@@ -1125,46 +1219,86 @@ msgstr ""
 "configuration de machine « ~a » non prise en charge\n"
 "pour l'environnement de type « ~a »"
 
-#: gnu/packages/bootstrap.scm:137
+#: gnu/packages/bootstrap.scm:152
 #, scheme-format
 msgid "could not find bootstrap binary '~a' for system '~a'"
 msgstr "impossible de trouver le binaire d'initialisation « ~a » pour le système « ~a »"
 
-#: gnu/packages/bootstrap.scm:436
+#: gnu/packages/bootstrap.scm:459
 msgid "Raw build system with direct store access"
 msgstr "Système de construction brut avec un accès direct au dépôt"
 
-#: gnu/packages/bootstrap.scm:444
+#: gnu/packages/bootstrap.scm:466
+msgid "Bootstrap Guile"
+msgstr "Guile de bootstrap"
+
+#: gnu/packages/bootstrap.scm:467
 msgid "Pre-built Guile for bootstrapping purposes."
 msgstr "Guile pré-construit pour le bootstrap."
 
-#: guix/build/utils.scm:713
+#: gnu/packages/bootstrap.scm:650
+msgid "Bootstrap binaries and headers of the GNU C Library"
+msgstr "Binaires de bootstrap et en-têtes de la bibliothèque C de GNU"
+
+#: gnu/packages/bootstrap.scm:748
+msgid "Bootstrap binaries of the GNU Compiler Collection"
+msgstr "Binaires de bootstrap de la collections de compilateurs de GNU"
+
+#: gnu/packages/bootstrap.scm:796
+msgid "Bootstrap binaries of MesCC Tools"
+msgstr "Binaires de bootstrap de MesCC Tools"
+
+#: gnu/packages/bootstrap.scm:846
+msgid "Bootstrap binaries of Mes"
+msgstr "Binaires de bootstrap de Mes"
+
+#: guix/build/utils.scm:715
 #, scheme-format
 msgid "'~a~{ ~a~}' exited with status ~a; output follows:~%~%~{  ~a~%~}"
 msgstr "« ~a~{ ~a~} » a quitté avec le statut ~a ; la sortie est la suivante :~%~%~{  ~a~%~}"
 
-#: guix/scripts.scm:61
+#: guix/scripts.scm:85
+msgid "main commands"
+msgstr "commandes principales"
+
+#: guix/scripts.scm:86
+msgid "software development commands"
+msgstr "commandes pour le développement logiciel"
+
+#: guix/scripts.scm:87
+msgid "packaging commands"
+msgstr "commandes pour la gestion des paquets"
+
+#: guix/scripts.scm:88
+msgid "plumbing commands"
+msgstr "commandes de plomberie"
+
+#: guix/scripts.scm:89
+msgid "internal commands"
+msgstr "commandes internes"
+
+#: guix/scripts.scm:122
 #, scheme-format
 msgid "invalid argument: ~a~%"
 msgstr "argument non valide : ~a~%"
 
-#: guix/scripts.scm:89 guix/scripts/download.scm:150
-#: guix/scripts/search.scm:69 guix/scripts/show.scm:69
+#: guix/scripts.scm:150 guix/scripts/download.scm:167
+#: guix/scripts/search.scm:71 guix/scripts/show.scm:71
 #: guix/scripts/import/cran.scm:84 guix/scripts/import/elpa.scm:84
-#: guix/scripts/publish.scm:1020 guix/scripts/edit.scm:87
-#: guix/scripts/describe.scm:258 guix/scripts/processes.scm:230
+#: guix/scripts/publish.scm:1088 guix/scripts/edit.scm:89
+#: guix/scripts/describe.scm:311 guix/scripts/processes.scm:232
 #, scheme-format
 msgid "~A: unrecognized option~%"
 msgstr "~A : option non reconnue~%"
 
-#: guix/scripts.scm:172
+#: guix/scripts.scm:233
 #, scheme-format
 msgid "Your Guix installation is ~a day old.\n"
 msgid_plural "Your Guix installation is ~a days old.\n"
 msgstr[0] "Votre installation Guix est vieille de ~a jour.\n"
 msgstr[1] "Votre installation Guix est vieille de ~a jours.\n"
 
-#: guix/scripts.scm:178
+#: guix/scripts.scm:239
 #, scheme-format
 msgid ""
 "Consider running 'guix pull' followed by\n"
@@ -1173,12 +1307,12 @@ msgstr ""
 "Envisagez d'exécuter « guix pull » suivi de\n"
 "« ~a » pour obtenir des paquets à jour et des mises à jour de sécurité.\n"
 
-#: guix/scripts.scm:242
+#: guix/scripts.scm:303
 #, scheme-format
 msgid "only ~,1f GiB of free space available on ~a~%"
 msgstr "seulement ~,1f Gio d'espace libre sur ~a~%"
 
-#: guix/scripts.scm:244
+#: guix/scripts.scm:305
 msgid ""
 "Consider deleting old profile\n"
 "generations and collecting garbage, along these lines:\n"
@@ -1194,99 +1328,19 @@ msgstr ""
 "guix gc --delete-generations=1m\n"
 "@end example\n"
 
-#: guix/scripts/build.scm:88
+#: guix/scripts/build.scm:83
 #, scheme-format
 msgid "cannot access build log at '~a':~%"
 msgstr "aucun journal de compilation sur « ~a »~%"
 
-#: guix/scripts/build.scm:142
+#: guix/scripts/build.scm:137
 #, scheme-format
 msgid "failed to create GC root `~a': ~a~%"
 msgstr "impossible de créer la racine du GC « ~a » : ~a~%"
 
-#: guix/scripts/build.scm:247 guix/scripts/build.scm:312
-#, scheme-format
-msgid "invalid replacement specification: ~s~%"
-msgstr "spécification de remplacement invalide : ~s~%"
-
-#: guix/scripts/build.scm:294
-#, scheme-format
-msgid "the source of ~a is not a Git reference~%"
-msgstr "la source de ~a n'est pas une référence Git~%"
-
-#: guix/scripts/build.scm:382
-#, scheme-format
-msgid "~a: invalid Git URL replacement specification~%"
-msgstr "~a : spécification d'URL Git de remplacement invalide~%"
-
-#: guix/scripts/build.scm:427
-msgid ""
-"\n"
-"      --with-source=SOURCE\n"
-"                         use SOURCE when building the corresponding package"
-msgstr ""
-"\n"
-"      --with-source=SOURCE\n"
-"                         utiliser la SOURCE donnée pour compiler le paquet correspondant"
-
-#: guix/scripts/build.scm:430
-msgid ""
-"\n"
-"      --with-input=PACKAGE=REPLACEMENT\n"
-"                         replace dependency PACKAGE by REPLACEMENT"
-msgstr ""
-"\n"
-"      --with-input=PAQUET=REMPLACEMENT\n"
-"                         remplacer le paquet de dépendance PAQUET par REMPLACEMENT"
-
-#: guix/scripts/build.scm:433
-msgid ""
-"\n"
-"      --with-graft=PACKAGE=REPLACEMENT\n"
-"                         graft REPLACEMENT on packages that refer to PACKAGE"
-msgstr ""
-"\n"
-"      --with-graft=PAQUET=REMPLACEMENT\n"
-"                         greffer le paquet REMPLACEMENT sur les paquets qui font référence à PAQUET"
-
-#: guix/scripts/build.scm:436
-msgid ""
-"\n"
-"      --with-branch=PACKAGE=BRANCH\n"
-"                         build PACKAGE from the latest commit of BRANCH"
-msgstr ""
-"\n"
-"      --with-branch=PAQUET=BRANCHE\n"
-"                         construit le PAQUET à partir du dernier commit de la BRANCHE"
-
-#: guix/scripts/build.scm:439
-msgid ""
-"\n"
-"      --with-commit=PACKAGE=COMMIT\n"
-"                         build PACKAGE from COMMIT"
-msgstr ""
-"\n"
-"      --with-commit=PAQUET=COMMIT\n"
-"                         construit le PAQUET à partir du COMMIT"
-
-#: guix/scripts/build.scm:442
-msgid ""
-"\n"
-"      --with-git-url=PACKAGE=URL\n"
-"                         build PACKAGE from the repository at URL"
-msgstr ""
-"\n"
-"      --with-git-url=PAQUET=URL\n"
-"                         construit le PAQUET à partir de l'URL du dépôt"
-
-#: guix/scripts/build.scm:473
-#, scheme-format
-msgid "transformation '~a' had no effect on ~a~%"
-msgstr "la transformation « ~a » n'a pas d'effet sur ~a~%"
-
-#: guix/scripts/build.scm:491 guix/scripts/search.scm:41
-#: guix/scripts/show.scm:41 guix/scripts/lint.scm:101 guix/scripts/edit.scm:48
-#: guix/scripts/size.scm:246 guix/scripts/graph.scm:509
+#: guix/scripts/build.scm:152 guix/scripts/search.scm:41
+#: guix/scripts/show.scm:41 guix/scripts/lint.scm:107 guix/scripts/edit.scm:48
+#: guix/scripts/size.scm:246 guix/scripts/graph.scm:546
 msgid ""
 "\n"
 "  -L, --load-path=DIR    prepend DIR to the package module search path"
@@ -1294,7 +1348,7 @@ msgstr ""
 "\n"
 "  -L, --load-path=REP    préfixer le chemin de recherche par REP"
 
-#: guix/scripts/build.scm:493
+#: guix/scripts/build.scm:154
 msgid ""
 "\n"
 "  -K, --keep-failed      keep build tree of failed builds"
@@ -1302,7 +1356,7 @@ msgstr ""
 "\n"
 "  -K, --keep-failed      garder l'arbre de compilation pour les compilations ayant échoué"
 
-#: guix/scripts/build.scm:495
+#: guix/scripts/build.scm:156
 msgid ""
 "\n"
 "  -k, --keep-going       keep going when some of the derivations fail"
@@ -1310,7 +1364,7 @@ msgstr ""
 "\n"
 "  -k, --keep-going       continuer si certaines dérivations échouent"
 
-#: guix/scripts/build.scm:497
+#: guix/scripts/build.scm:158
 msgid ""
 "\n"
 "  -n, --dry-run          do not build the derivations"
@@ -1318,7 +1372,7 @@ msgstr ""
 "\n"
 "  -n, --dry-run          ne pas compiler les dérivations"
 
-#: guix/scripts/build.scm:499
+#: guix/scripts/build.scm:160
 msgid ""
 "\n"
 "      --fallback         fall back to building when the substituter fails"
@@ -1326,7 +1380,7 @@ msgstr ""
 "\n"
 "      --fallback         revenir à la compilation quand le substitut échoue"
 
-#: guix/scripts/build.scm:501
+#: guix/scripts/build.scm:162
 msgid ""
 "\n"
 "      --no-substitutes   build instead of resorting to pre-built substitutes"
@@ -1334,7 +1388,7 @@ msgstr ""
 "\n"
 "      --no-substitutes   compiler plutôt que recourir à des substituts pré-compilés"
 
-#: guix/scripts/build.scm:503 guix/scripts/size.scm:235
+#: guix/scripts/build.scm:164 guix/scripts/size.scm:235
 msgid ""
 "\n"
 "      --substitute-urls=URLS\n"
@@ -1344,7 +1398,7 @@ msgstr ""
 "      --substitute-urls=URLS\n"
 "                         récupérer les substituts depuis les URLS si elles sont autorisées"
 
-#: guix/scripts/build.scm:506
+#: guix/scripts/build.scm:167
 msgid ""
 "\n"
 "      --no-grafts        do not graft packages"
@@ -1352,7 +1406,7 @@ msgstr ""
 "\n"
 "      --no-grafts        ne pas greffer les paquets"
 
-#: guix/scripts/build.scm:508
+#: guix/scripts/build.scm:169
 msgid ""
 "\n"
 "      --no-offload       do not attempt to offload builds"
@@ -1360,7 +1414,7 @@ msgstr ""
 "\n"
 "      --no-offload       ne pas essayer de décharger les compilations"
 
-#: guix/scripts/build.scm:510
+#: guix/scripts/build.scm:171
 msgid ""
 "\n"
 "      --max-silent-time=SECONDS\n"
@@ -1370,7 +1424,7 @@ msgstr ""
 "      --max-silent-time=N\n"
 "                         marquer la compilation comme ayant échouée après N secondes de silence"
 
-#: guix/scripts/build.scm:513
+#: guix/scripts/build.scm:174
 msgid ""
 "\n"
 "      --timeout=SECONDS  mark the build as failed after SECONDS of activity"
@@ -1378,7 +1432,7 @@ msgstr ""
 "\n"
 "      --timeout=N        marquer la compilation comme ayant échouée après N secondes d'activité"
 
-#: guix/scripts/build.scm:515
+#: guix/scripts/build.scm:176
 msgid ""
 "\n"
 "      --rounds=N         build N times in a row to detect non-determinism"
@@ -1386,7 +1440,7 @@ msgstr ""
 "\n"
 "      --rounds=N         compiler N fois de suite pour détecter les non déterminismes"
 
-#: guix/scripts/build.scm:517
+#: guix/scripts/build.scm:178
 msgid ""
 "\n"
 "  -c, --cores=N          allow the use of up to N CPU cores for the build"
@@ -1394,7 +1448,7 @@ msgstr ""
 "\n"
 "  -c, --cores=N          utiliser jusqu'à N cœurs CPU pour la compilation"
 
-#: guix/scripts/build.scm:519
+#: guix/scripts/build.scm:180
 msgid ""
 "\n"
 "  -M, --max-jobs=N       allow at most N build jobs"
@@ -1402,7 +1456,15 @@ msgstr ""
 "\n"
 "  -M, --max-jobs=N       autoriser au plus N tâches de compilation"
 
-#: guix/scripts/build.scm:521
+#: guix/scripts/build.scm:182
+msgid ""
+"\n"
+"      --help-transform   list package transformation options not shown here"
+msgstr ""
+"\n"
+"      --help-transform   affiche les options de transformation des paquets qui ne sont pas affichées ici"
+
+#: guix/scripts/build.scm:184
 msgid ""
 "\n"
 "      --debug=LEVEL      produce debugging output at LEVEL"
@@ -1410,21 +1472,26 @@ msgstr ""
 "\n"
 "      --debug=NIVEAU     produire une sortie de débogage à ce NIVEAU"
 
-#: guix/scripts/build.scm:538
+#: guix/scripts/build.scm:201
 msgid "'--keep-failed' ignored since you are talking to a remote daemon\n"
 msgstr "« --keep-failed » ignoré car vous parlez à un démon distant\n"
 
-#: guix/scripts/build.scm:619
+#: guix/scripts/build.scm:282
 #, scheme-format
 msgid "'--no-build-hook' is deprecated; use '--no-offload' instead~%"
 msgstr "« --no-build-hook » est obsolète ; utilisez plutôt « --no-offload »~%"
 
-#: guix/scripts/build.scm:649 guix/scripts/build.scm:656
+#: guix/scripts/build.scm:312 guix/scripts/build.scm:319
 #, scheme-format
 msgid "not a number: '~a' option argument: ~a~%"
 msgstr "pas un nombre: argument d'option « ~a » : ~a~%"
 
-#: guix/scripts/build.scm:677
+#: guix/scripts/build.scm:324
+#, scheme-format
+msgid "Available package transformation options:~%"
+msgstr "Options de transformation des paquets disponibles :~%"
+
+#: guix/scripts/build.scm:347
 msgid ""
 "Usage: guix build [OPTION]... PACKAGE-OR-DERIVATION...\n"
 "Build the given PACKAGE-OR-DERIVATION and return their output paths.\n"
@@ -1432,7 +1499,7 @@ msgstr ""
 "Usage: guix build [OPTION]... PAQUET-OU-DERIVATION...\n"
 "Compiler le PAQUET-OU-DERIVATION donné et retourner leurs chemins de sortie.\n"
 
-#: guix/scripts/build.scm:679
+#: guix/scripts/build.scm:349
 msgid ""
 "\n"
 "  -e, --expression=EXPR  build the package or derivation EXPR evaluates to"
@@ -1440,7 +1507,7 @@ msgstr ""
 "\n"
 "  -e, --expression=EXPR  compiler le paquet ou la dérivation évalué par EXPR"
 
-#: guix/scripts/build.scm:681
+#: guix/scripts/build.scm:351
 msgid ""
 "\n"
 "  -f, --file=FILE        build the package or derivation that the code within\n"
@@ -1450,7 +1517,7 @@ msgstr ""
 "  -f, --file=FICHIER     compiler le paquet ou la dérivation qui est évaluée\n"
 "                         par le code dans FICHIER"
 
-#: guix/scripts/build.scm:684
+#: guix/scripts/build.scm:354
 msgid ""
 "\n"
 "  -m, --manifest=FILE    build the packages that the manifest given in FILE\n"
@@ -1460,7 +1527,7 @@ msgstr ""
 "  -m, --manifest=FICHIER compiler le paquet qui est évalué par le code dans le FICHIER\n"
 "                         manifest"
 
-#: guix/scripts/build.scm:687
+#: guix/scripts/build.scm:357
 msgid ""
 "\n"
 "  -S, --source           build the packages' source derivations"
@@ -1468,7 +1535,7 @@ msgstr ""
 "\n"
 "  -S, --source           compiler les dérivations de source du paquet"
 
-#: guix/scripts/build.scm:689
+#: guix/scripts/build.scm:359
 msgid ""
 "\n"
 "      --sources[=TYPE]   build source derivations; TYPE may optionally be one\n"
@@ -1478,8 +1545,8 @@ msgstr ""
 "      --sources[=TYPE]   compiler les dérivations sources. TYPE peut optionnellement\n"
 "                         être « package », « all » (défaut) ou « transitive »"
 
-#: guix/scripts/build.scm:692 guix/scripts/pull.scm:114
-#: guix/scripts/pack.scm:925
+#: guix/scripts/build.scm:362 guix/scripts/pull.scm:120
+#: guix/scripts/pack.scm:1073
 msgid ""
 "\n"
 "  -s, --system=SYSTEM    attempt to build for SYSTEM--e.g., \"i686-linux\""
@@ -1487,8 +1554,8 @@ msgstr ""
 "\n"
 "  -s, --system=SYSTÈME   essayer de compiler pour le SYSTÈME donné, par exemple « i686-linux »"
 
-#: guix/scripts/build.scm:694 guix/scripts/system.scm:963
-#: guix/scripts/pack.scm:927
+#: guix/scripts/build.scm:364 guix/scripts/system.scm:997
+#: guix/scripts/pack.scm:1075
 msgid ""
 "\n"
 "      --target=TRIPLET   cross-build for TRIPLET--e.g., \"armel-linux-gnu\""
@@ -1496,7 +1563,7 @@ msgstr ""
 "\n"
 "      --target=TRIPLET   effectuer une compilation croisée pour TRIPLET, par exemple « armel-linux-gnu »"
 
-#: guix/scripts/build.scm:696
+#: guix/scripts/build.scm:366
 msgid ""
 "\n"
 "  -d, --derivations      return the derivation paths of the given packages"
@@ -1504,7 +1571,7 @@ msgstr ""
 "\n"
 "  -d, --derivations      retourner les chemins de dérivation pour les paquets donnés"
 
-#: guix/scripts/build.scm:698
+#: guix/scripts/build.scm:368
 msgid ""
 "\n"
 "      --check            rebuild items to check for non-determinism issues"
@@ -1512,7 +1579,7 @@ msgstr ""
 "\n"
 "      --check            recompiler les éléments pour détecter des problèmes de non déterminisme"
 
-#: guix/scripts/build.scm:700
+#: guix/scripts/build.scm:370
 msgid ""
 "\n"
 "      --repair           repair the specified items"
@@ -1520,7 +1587,7 @@ msgstr ""
 "\n"
 "      --repair           réparer les éléments spécifiés"
 
-#: guix/scripts/build.scm:702 guix/scripts/pack.scm:945
+#: guix/scripts/build.scm:372 guix/scripts/pack.scm:1093
 msgid ""
 "\n"
 "  -r, --root=FILE        make FILE a symlink to the result, and register it\n"
@@ -1530,11 +1597,11 @@ msgstr ""
 "  -r, --root=FICHIER     faire de FICHIER un lien symbolique pointant sur le résultat\n"
 "                         et l'enregistrer en tant que racine du garbage collector"
 
-#: guix/scripts/build.scm:705 guix/scripts/package.scm:371
-#: guix/scripts/install.scm:36 guix/scripts/remove.scm:36
-#: guix/scripts/upgrade.scm:36 guix/scripts/pull.scm:112
-#: guix/scripts/system.scm:965 guix/scripts/copy.scm:111
-#: guix/scripts/pack.scm:950 guix/scripts/deploy.scm:58
+#: guix/scripts/build.scm:375 guix/scripts/package.scm:385
+#: guix/scripts/install.scm:37 guix/scripts/remove.scm:36
+#: guix/scripts/upgrade.scm:38 guix/scripts/pull.scm:118
+#: guix/scripts/system.scm:999 guix/scripts/copy.scm:115
+#: guix/scripts/pack.scm:1098 guix/scripts/deploy.scm:58
 msgid ""
 "\n"
 "  -v, --verbosity=LEVEL  use the given verbosity LEVEL"
@@ -1542,7 +1609,7 @@ msgstr ""
 "\n"
 "  -v, --verbosity=NIVEAU utiliser le NIVEAU de verbosité donné"
 
-#: guix/scripts/build.scm:707
+#: guix/scripts/build.scm:377
 msgid ""
 "\n"
 "  -q, --quiet            do not show the build log"
@@ -1550,7 +1617,7 @@ msgstr ""
 "\n"
 "  -q, --quiet            ne pas montrer le journal de compilation"
 
-#: guix/scripts/build.scm:709
+#: guix/scripts/build.scm:379
 msgid ""
 "\n"
 "      --log-file         return the log file names for the given derivations"
@@ -1558,20 +1625,21 @@ msgstr ""
 "\n"
 "      --log-file         retourner les fichiers de journalisation pour les dérivations données"
 
-#: guix/scripts/build.scm:716 guix/scripts/download.scm:98
-#: guix/scripts/package.scm:389 guix/scripts/install.scm:43
-#: guix/scripts/remove.scm:41 guix/scripts/upgrade.scm:43
+#: guix/scripts/build.scm:384 guix/scripts/download.scm:103
+#: guix/scripts/package.scm:401 guix/scripts/install.scm:42
+#: guix/scripts/remove.scm:41 guix/scripts/upgrade.scm:45
 #: guix/scripts/search.scm:36 guix/scripts/show.scm:36 guix/scripts/gc.scm:88
-#: guix/scripts/hash.scm:60 guix/scripts/import.scm:94
-#: guix/scripts/import/cran.scm:47 guix/scripts/pull.scm:120
-#: guix/scripts/substitute.scm:855 guix/scripts/system.scm:968
-#: guix/scripts/lint.scm:104 guix/scripts/publish.scm:98
+#: guix/scripts/git.scm:34 guix/scripts/git/authenticate.scm:110
+#: guix/scripts/hash.scm:65 guix/scripts/import.scm:95
+#: guix/scripts/import/cran.scm:47 guix/scripts/pull.scm:126
+#: guix/scripts/substitute.scm:857 guix/scripts/system.scm:1002
+#: guix/scripts/lint.scm:110 guix/scripts/publish.scm:101
 #: guix/scripts/edit.scm:51 guix/scripts/size.scm:249
-#: guix/scripts/graph.scm:514 guix/scripts/challenge.scm:423
-#: guix/scripts/copy.scm:116 guix/scripts/pack.scm:955
-#: guix/scripts/weather.scm:293 guix/scripts/describe.scm:76
+#: guix/scripts/graph.scm:549 guix/scripts/challenge.scm:423
+#: guix/scripts/copy.scm:120 guix/scripts/pack.scm:1103
+#: guix/scripts/weather.scm:293 guix/scripts/describe.scm:95
 #: guix/scripts/processes.scm:214 guix/scripts/deploy.scm:53
-#: guix/scripts/container.scm:34 guix/scripts/container/exec.scm:43
+#: guix/scripts/container.scm:35 guix/scripts/container/exec.scm:43
 msgid ""
 "\n"
 "  -h, --help             display this help and exit"
@@ -1579,20 +1647,21 @@ msgstr ""
 "\n"
 "  -h, --help             afficher cette aide et quitter"
 
-#: guix/scripts/build.scm:718 guix/scripts/download.scm:100
-#: guix/scripts/package.scm:391 guix/scripts/install.scm:45
-#: guix/scripts/remove.scm:43 guix/scripts/upgrade.scm:45
+#: guix/scripts/build.scm:386 guix/scripts/download.scm:105
+#: guix/scripts/package.scm:403 guix/scripts/install.scm:44
+#: guix/scripts/remove.scm:43 guix/scripts/upgrade.scm:47
 #: guix/scripts/search.scm:38 guix/scripts/show.scm:38 guix/scripts/gc.scm:90
-#: guix/scripts/hash.scm:62 guix/scripts/import.scm:96
-#: guix/scripts/import/cran.scm:51 guix/scripts/pull.scm:122
-#: guix/scripts/substitute.scm:857 guix/scripts/system.scm:970
-#: guix/scripts/lint.scm:108 guix/scripts/publish.scm:100
+#: guix/scripts/git.scm:36 guix/scripts/git/authenticate.scm:112
+#: guix/scripts/hash.scm:67 guix/scripts/import.scm:97
+#: guix/scripts/import/cran.scm:51 guix/scripts/pull.scm:128
+#: guix/scripts/substitute.scm:859 guix/scripts/system.scm:1004
+#: guix/scripts/lint.scm:114 guix/scripts/publish.scm:103
 #: guix/scripts/edit.scm:53 guix/scripts/size.scm:251
-#: guix/scripts/graph.scm:516 guix/scripts/challenge.scm:425
-#: guix/scripts/copy.scm:118 guix/scripts/pack.scm:957
-#: guix/scripts/weather.scm:295 guix/scripts/describe.scm:78
+#: guix/scripts/graph.scm:551 guix/scripts/challenge.scm:425
+#: guix/scripts/copy.scm:122 guix/scripts/pack.scm:1105
+#: guix/scripts/weather.scm:295 guix/scripts/describe.scm:97
 #: guix/scripts/processes.scm:216 guix/scripts/deploy.scm:55
-#: guix/scripts/container.scm:36 guix/scripts/container/exec.scm:45
+#: guix/scripts/container.scm:37 guix/scripts/container/exec.scm:45
 msgid ""
 "\n"
 "  -V, --version          display version information and exit"
@@ -1600,7 +1669,7 @@ msgstr ""
 "\n"
 "  -V, --version          afficher les informations sur la version et quitter"
 
-#: guix/scripts/build.scm:745
+#: guix/scripts/build.scm:413
 #, scheme-format
 msgid ""
 "invalid argument: '~a' option argument: ~a, ~\n"
@@ -1609,35 +1678,80 @@ msgstr ""
 "argument invalide: argument en option « ~a » : ~a, ~\n"
 "doit être « package », « all » ou « transitive »~%"
 
-#: guix/scripts/build.scm:806
+#: guix/scripts/build.scm:475
 #, scheme-format
 msgid "~s: not something we can build~%"
 msgstr "~s : pas quelque chose qu'on sait compiler~%"
 
-#: guix/scripts/build.scm:888
+#: guix/scripts/build.scm:480
+msgid ""
+"If you build from a file, make sure the last Scheme\n"
+"expression returns a package value.  @code{define-public} defines a variable,\n"
+"but returns @code{#<unspecified>}.  To fix this, add a Scheme expression at\n"
+"the end of the file that consists only of the package's variable name you\n"
+"defined, as in this example:\n"
+"\n"
+"@example\n"
+"(define-public my-package\n"
+"  (package\n"
+"    ...))\n"
+"\n"
+"my-package\n"
+"@end example"
+msgstr ""
+"Si vous construisez à partir d'un fichier, assurez-vous que la\n"
+"dernière expression Scheme renvoie un paquet. @code{define-public}\n"
+"définie une variable, mais renvoie @code{#<unspecified>}. Pour corriger\n"
+"cela, ajoutez une expression Scheme à la fin du fichier qui consiste\n"
+"uniquement en le nom de la variable du paquet que vous avez défini,\n"
+"comme dans cet exemple :\n"
+"\n"
+"@example\n"
+"(define-public my-package\n"
+"  (package\n"
+"    ...))\n"
+"\n"
+"my-package\n"
+"@end example"
+
+#: guix/scripts/build.scm:493
+msgid ""
+"If you build from a file, make sure the last\n"
+"Scheme expression returns a package, gexp, derivation or a list of such\n"
+"values."
+msgstr ""
+"Si vous construisez à partir d'un fichier, assurez-vous que la\n"
+"dernière expression Scheme renvoie un paquet, une gexp, une dérivation\n"
+"ou une liste de ces types de valeurs."
+
+#: guix/scripts/build.scm:579
 #, scheme-format
 msgid "package '~a' has no source~%"
 msgstr "le paquet « ~a » n'a pas de source~%"
 
-#: guix/scripts/build.scm:936
+#: guix/scripts/build.scm:627
 #, scheme-format
 msgid "no build log for '~a'~%"
 msgstr "aucun journal de compilation pour « ~a »~%"
 
+#: guix/scripts/build.scm:636
+msgid "build packages or derivations without installing them"
+msgstr "construire les paquets ou les dérivations sans les installer"
+
 #: guix/discovery.scm:96
 #, scheme-format
 msgid "cannot access `~a': ~a~%"
 msgstr "impossible d'accéder à « ~a » : ~a~%"
 
-#: guix/lint.scm:180
+#: guix/lint.scm:184
 msgid "description should not be empty"
 msgstr "la description ne devrait pas être vide"
 
-#: guix/lint.scm:191
+#: guix/lint.scm:195
 msgid "Texinfo markup in description is invalid"
 msgstr "Des balises Texinfo dans la description sont invalides"
 
-#: guix/lint.scm:201
+#: guix/lint.scm:205
 #, scheme-format
 msgid ""
 "description should not contain ~\n"
@@ -1648,15 +1762,15 @@ msgstr ""
 
 #. TRANSLATORS: '@code' is Texinfo markup and must be kept
 #. as is.
-#: guix/lint.scm:214
+#: guix/lint.scm:218
 msgid "use @code or similar ornament instead of quotes"
 msgstr "utiliser @code ou une décoration similaire au lieu des guillemets"
 
-#: guix/lint.scm:226
+#: guix/lint.scm:230
 msgid "description should start with an upper-case letter or digit"
 msgstr "la description devrait commencer par une majuscule ou un chiffre"
 
-#: guix/lint.scm:244
+#: guix/lint.scm:248
 #, scheme-format
 msgid ""
 "sentences in description should be followed ~\n"
@@ -1665,197 +1779,202 @@ msgstr ""
 "les phrases dans la description devraient être suivies ~\n"
 "par deux espaces. Infraction probable~p à ~{~a~^, ~}"
 
-#: guix/lint.scm:265
+#: guix/lint.scm:269
 #, scheme-format
 msgid "invalid description: ~s"
 msgstr "description invalide : ~s"
 
-#: guix/lint.scm:334
+#: guix/lint.scm:339
 #, scheme-format
 msgid "'~a' should probably be a native input"
 msgstr "« ~a » devrait sans doute être une entrée native"
 
-#: guix/lint.scm:349
+#: guix/lint.scm:354
 #, scheme-format
 msgid "'~a' should probably not be an input at all"
 msgstr "« ~a » ne devrait probablement pas être une entrée du tout"
 
-#: guix/lint.scm:370
+#: guix/lint.scm:375
 msgid "no period allowed at the end of the synopsis"
 msgstr "un point n'est pas autorisé à la fin du synopsis"
 
-#: guix/lint.scm:384
+#: guix/lint.scm:389
 msgid "no article allowed at the beginning of the synopsis"
 msgstr "les articles ne sont pas permis au début du synopsis"
 
-#: guix/lint.scm:393
+#: guix/lint.scm:398
 msgid "synopsis should be less than 80 characters long"
 msgstr "le synopsis devrait être plus court que 80 caractères"
 
-#: guix/lint.scm:402
+#: guix/lint.scm:407
 msgid "synopsis should start with an upper-case letter or digit"
 msgstr "le synopsis devrait commencer par une majuscule ou un chiffre"
 
-#: guix/lint.scm:410
+#: guix/lint.scm:415
 msgid "synopsis should not start with the package name"
 msgstr "le synopsis ne devrait pas commencer par un nom de paquet"
 
-#: guix/lint.scm:424
+#: guix/lint.scm:429
 msgid "Texinfo markup in synopsis is invalid"
 msgstr "La balise Texinfo dans le synopsis est invalide"
 
-#: guix/lint.scm:439
+#: guix/lint.scm:444
 msgid "synopsis should not be empty"
 msgstr "le synopsis ne devrait pas être vide"
 
-#: guix/lint.scm:449
+#: guix/lint.scm:454
 #, scheme-format
 msgid "invalid synopsis: ~s"
 msgstr "synopsis non valide : ~s"
 
-#: guix/lint.scm:567
+#: guix/lint.scm:572
 #, scheme-format
 msgid "URI ~a returned suspiciously small file (~a bytes)"
 msgstr "L'URI ~a a renvoyé un fichier étrangement petit (~a octets)"
 
-#: guix/lint.scm:576
+#: guix/lint.scm:581
 #, scheme-format
 msgid "permanent redirect from ~a to ~a"
 msgstr "redirection permanente de ~a vers ~a"
 
-#: guix/lint.scm:582
+#: guix/lint.scm:587
 #, scheme-format
 msgid "invalid permanent redirect from ~a"
 msgstr "redirection permanente invalide : ~a"
 
-#: guix/lint.scm:588 guix/lint.scm:598
+#: guix/lint.scm:593 guix/lint.scm:603
 #, scheme-format
 msgid "URI ~a not reachable: ~a (~s)"
 msgstr "L'URI ~a n'a pu être atteinte : ~a (~s)"
 
-#: guix/lint.scm:604
+#: guix/lint.scm:609
 #, scheme-format
 msgid "URI ~a domain not found: ~a"
 msgstr "Le domaine de l'URI ~a n'a pas été trouvé : ~a"
 
-#: guix/lint.scm:610
+#: guix/lint.scm:615
 #, scheme-format
 msgid "URI ~a unreachable: ~a"
 msgstr "L'URI ~a n'a pu être atteinte : ~a"
 
-#: guix/lint.scm:618
+#: guix/lint.scm:623
 #, scheme-format
 msgid "TLS certificate error: ~a"
 msgstr "Erreur de certificat TLS : ~a"
 
-#: guix/lint.scm:645
+#: guix/lint.scm:650
 msgid "invalid value for home page"
 msgstr "valeur invalide pour la page d'accueil"
 
-#: guix/lint.scm:650
+#: guix/lint.scm:655
 #, scheme-format
 msgid "invalid home page URL: ~s"
 msgstr "URL de la page d'accueil invalide : ~s"
 
-#: guix/lint.scm:683
+#: guix/lint.scm:698
 msgid "file names of patches should start with the package name"
 msgstr "les noms de fichiers des correctifs devraient commencer par le nom du paquet"
 
-#: guix/lint.scm:699
+#: guix/lint.scm:714
 #, scheme-format
 msgid "~a: file name is too long"
 msgstr "~a : le nom de fichier est trop long"
 
-#: guix/lint.scm:741
+#: guix/lint.scm:756
 #, scheme-format
 msgid "proposed synopsis: ~s~%"
 msgstr "synopsis proposé : ~s~%"
 
-#: guix/lint.scm:755
+#: guix/lint.scm:770
 #, scheme-format
 msgid "proposed description:~%     \"~a\"~%"
 msgstr "description proposée :~%     « ~a »~%"
 
-#: guix/lint.scm:802
+#: guix/lint.scm:821
 msgid "all the source URIs are unreachable:"
 msgstr "toutes les URI sources sont inatteignables :"
 
-#: guix/lint.scm:826
+#: guix/lint.scm:850
 msgid "the source file name should contain the package name"
 msgstr "le nom du fichier source devrait contenir le nom du paquet"
 
-#: guix/lint.scm:838
+#: guix/lint.scm:862
 msgid "the source URI should not be an autogenerated tarball"
 msgstr "l'URI de la source ne devrait pas être une archive auto-générée"
 
-#: guix/lint.scm:862
+#: guix/lint.scm:886
 #, scheme-format
 msgid "URL should be 'mirror://~a/~a'"
 msgstr "L'URL devrait être « mirror://~a/~a »"
 
-#: guix/lint.scm:907
+#: guix/lint.scm:931
 #, scheme-format
 msgid "URL should be '~a'"
 msgstr "L'URL devrait être « ~a »"
 
-#: guix/lint.scm:929 guix/lint.scm:940
+#: guix/lint.scm:953 guix/lint.scm:964 guix/lint.scm:972
 #, scheme-format
 msgid "failed to create ~a derivation: ~a"
 msgstr "échec à la création de la dérivation pour ~a : ~a"
 
-#: guix/lint.scm:934 guix/lint.scm:955
+#: guix/lint.scm:958 guix/lint.scm:986
 #, scheme-format
 msgid "failed to create ~a derivation: ~s"
 msgstr "échec à la création de la dérivation pour ~a : ~s"
 
-#: guix/lint.scm:975
+#: guix/lint.scm:1014
+#, scheme-format
+msgid "propagated inputs ~a and ~a collide"
+msgstr "collision des entrées propagées ~a et ~a"
+
+#: guix/lint.scm:1038
 msgid "invalid license field"
 msgstr "champ de licence invalide"
 
-#: guix/lint.scm:982
+#: guix/lint.scm:1045
 #, scheme-format
 msgid "~a: HTTP GET error for ~a: ~a (~s)~%"
 msgstr "~a : erreur HTTP GET pour ~a : ~a (~s)~%"
 
-#: guix/lint.scm:992
+#: guix/lint.scm:1055
 #, scheme-format
 msgid "~a: host lookup failure: ~a~%"
 msgstr "~a : erreur lors de la consultation du nom d'hôte : ~a~%"
 
-#: guix/lint.scm:997
+#: guix/lint.scm:1060
 #, scheme-format
 msgid "~a: TLS certificate error: ~a"
 msgstr "~a : erreur de certificat TLS : ~a"
 
-#: guix/lint.scm:1008 guix/ui.scm:795
+#: guix/lint.scm:1071 guix/ui.scm:842
 #, scheme-format
 msgid "~a: ~a~%"
 msgstr "~a: ~a~%"
 
-#: guix/lint.scm:1022
+#: guix/lint.scm:1085
 msgid "while retrieving CVE vulnerabilities"
 msgstr "pendant la récupération des vulnérabilités CVE"
 
-#: guix/lint.scm:1065
+#: guix/lint.scm:1128
 #, scheme-format
 msgid "probably vulnerable to ~a"
 msgstr "probablement vulnérable à ~a"
 
-#: guix/lint.scm:1072
+#: guix/lint.scm:1135
 #, scheme-format
 msgid "while retrieving upstream info for '~a'"
 msgstr "pendant la récupération des informations en amont de « ~a »"
 
-#: guix/lint.scm:1081
+#: guix/lint.scm:1144
 #, scheme-format
 msgid "can be upgraded to ~a"
 msgstr "peut être mis à jour vers ~a"
 
-#: guix/lint.scm:1099
+#: guix/lint.scm:1162
 msgid "Software Heritage rate limit reached; try again later"
 msgstr "Limite de requêtes à Software Heritage atteinte ; essayez plus tard"
 
-#: guix/lint.scm:1103
+#: guix/lint.scm:1166
 #, scheme-format
 msgid "'~a' returned ~a"
 msgstr "  « ~a » a renvoyé ~a"
@@ -1863,133 +1982,143 @@ msgstr "  « ~a » a renvoyé ~a"
 #. TRANSLATORS: "Software Heritage" is a proper noun
 #. that must remain untranslated.  See
 #. <https://www.softwareheritage.org>.
-#: guix/lint.scm:1142
+#: guix/lint.scm:1205
 msgid "scheduled Software Heritage archival"
 msgstr "archivage dans Software Heritage programmé"
 
-#: guix/lint.scm:1148
+#: guix/lint.scm:1211
 msgid "archival rate limit exceeded; try again later"
 msgstr "limite du nombre d'archivage atteinte ; essayez plus tard"
 
-#: guix/lint.scm:1160
+#: guix/lint.scm:1226
 msgid "source not archived on Software Heritage"
 msgstr "la source n'est pas archivée dans Software Heritage"
 
-#: guix/lint.scm:1173
+#: guix/lint.scm:1239
 msgid "while connecting to Software Heritage"
 msgstr "lors de la connexion à Software Heritage"
 
-#: guix/lint.scm:1188
+#: guix/lint.scm:1254
 #, scheme-format
 msgid "tabulation on line ~a, column ~a"
 msgstr "tabulation à la ligne ~a, colonne ~a"
 
-#: guix/lint.scm:1200
+#: guix/lint.scm:1266
 #, scheme-format
 msgid "trailing white space on line ~a"
 msgstr "espace à la fin de la ligne ~a"
 
-#: guix/lint.scm:1214
+#: guix/lint.scm:1280
 #, scheme-format
 msgid "line ~a is way too long (~a characters)"
 msgstr "la ligne ~a est beaucoup trop longue (~a caractères)"
 
-#: guix/lint.scm:1228
+#: guix/lint.scm:1294
 msgid "parentheses feel lonely, move to the previous or next line"
 msgstr "des parenthèses se sentent seules. À déplacer à la ligne suivante ou précédente"
 
-#: guix/lint.scm:1309
+#: guix/lint.scm:1371
+msgid "source file not found"
+msgstr "fichier source introuvable"
+
+#: guix/lint.scm:1383
 msgid "Validate package descriptions"
 msgstr "Valider des descriptions de paquets"
 
-#: guix/lint.scm:1313
+#: guix/lint.scm:1387
 msgid "Identify inputs that should be native inputs"
 msgstr "Identifier les entrées qui devraient être natives"
 
-#: guix/lint.scm:1317
+#: guix/lint.scm:1391
 msgid "Identify inputs that shouldn't be inputs at all"
 msgstr "Identifier les entrées qui ne devraient pas être des entrées du tout"
 
 #. TRANSLATORS: <license> is the name of a data type and must not be
 #. translated.
-#: guix/lint.scm:1323
+#: guix/lint.scm:1397
 msgid "Make sure the 'license' field is a <license> or a list thereof"
 msgstr "S'assurer que le champ « licence » est une <licence> ou une telle liste"
 
-#: guix/lint.scm:1328
+#: guix/lint.scm:1402
 msgid "Suggest 'mirror://' URLs"
 msgstr "Suggérer des URL « mirror:// »"
 
-#: guix/lint.scm:1332
+#: guix/lint.scm:1406
 msgid "Validate file names of sources"
 msgstr "Valider les noms des fichiers des sources"
 
-#: guix/lint.scm:1336
+#: guix/lint.scm:1410
 msgid "Check for autogenerated tarballs"
 msgstr "Vérifier les archives auto-générées"
 
-#: guix/lint.scm:1340
+#: guix/lint.scm:1414
 msgid "Report failure to compile a package to a derivation"
 msgstr "Signaler l'échec de la compilation d'un paquet d'une dérivation"
 
-#: guix/lint.scm:1345
+#: guix/lint.scm:1419
+msgid "Report collisions that would occur due to propagated inputs"
+msgstr "Rapporte les collisions qui auraient lieux à cause des entrées propagées"
+
+#: guix/lint.scm:1424
 msgid "Validate file names and availability of patches"
 msgstr "Valider les noms de fichiers et la disponibilité de correctifs"
 
-#: guix/lint.scm:1349
+#: guix/lint.scm:1428
 msgid "Look for formatting issues in the source"
 msgstr "Rechercher des problèmes de format dans la source"
 
-#: guix/lint.scm:1356
+#: guix/lint.scm:1435
 msgid "Validate package synopses"
 msgstr "Valider les synopsis des paquets"
 
-#: guix/lint.scm:1360
+#: guix/lint.scm:1439
 msgid "Validate synopsis & description of GNU packages"
 msgstr "Valider le synopsis et la description de paquets GNU"
 
-#: guix/lint.scm:1364
+#: guix/lint.scm:1443
 msgid "Validate home-page URLs"
 msgstr "Valider les URL des pages d'accueil"
 
-#: guix/lint.scm:1368
+#: guix/lint.scm:1447
 msgid "Validate source URLs"
 msgstr "Valider les URL sources"
 
-#: guix/lint.scm:1372
+#: guix/lint.scm:1451
 msgid "Suggest GitHub URLs"
 msgstr "Suggérer des URL GitHub"
 
-#: guix/lint.scm:1376
+#: guix/lint.scm:1455
 msgid "Check the Common Vulnerabilities and Exposures (CVE) database"
 msgstr "Vérifier la base de données des vulnérabilités et failles connues (CVE)"
 
-#: guix/lint.scm:1381
+#: guix/lint.scm:1460
 msgid "Check the package for new upstream releases"
 msgstr "Vérifier s'il y a une nouvelle version en amont pour le paquet"
 
-#: guix/lint.scm:1385
+#: guix/lint.scm:1464
 msgid "Ensure source code archival on Software Heritage"
 msgstr "S'assurer que le code source est archivé dans Software Heritage"
 
-#: guix/scripts/download.scm:84
+#: guix/scripts/download.scm:86
 msgid ""
 "Usage: guix download [OPTION] URL\n"
 "Download the file at URL to the store or to the given file, and print its\n"
 "file name and the hash of its contents.\n"
-"\n"
-"Supported formats: 'nix-base32' (default), 'base32', and 'base16'\n"
-"('hex' and 'hexadecimal' can be used as well).\n"
 msgstr ""
-"Usage: guix download [OPTION] URL\n"
+"Utilisation : guix download [OPTION] URL\n"
 "Télécharger le fichier à partir de l'URL spécifiée et l'ajouter au dépôt ou\n"
 "au fichier spécifié puis afficher son nom de fichier et l'empreinte de son\n"
 "contenu.\n"
-"\n"
-"Formats pris en charge : « nix-base32 » (par défaut), « base32 », et « base16 »\n"
-"(« hex » et « hexadecimal » peuvent aussi être utilisés).\n"
 
-#: guix/scripts/download.scm:90 guix/scripts/hash.scm:55
+#: guix/scripts/download.scm:90 guix/scripts/hash.scm:53
+msgid ""
+"Supported formats: 'base64', 'nix-base32' (default), 'base32',\n"
+"and 'base16' ('hex' and 'hexadecimal' can be used as well).\n"
+msgstr ""
+"Formats pris en charge : « base64 », « nix-base32 » (par défaut), « base32 »\n"
+"et « base16 » (« hex » et « hexadecimal » peuvent également être utilisés).\n"
+
+#: guix/scripts/download.scm:93 guix/scripts/hash.scm:60
 msgid ""
 "\n"
 "  -f, --format=FMT       write the hash in the given format"
@@ -1997,7 +2126,15 @@ msgstr ""
 "\n"
 "  -f, --format=FORMAT    écrire l'empreinte dans le FORMAT donné"
 
-#: guix/scripts/download.scm:92
+#: guix/scripts/download.scm:95 guix/scripts/hash.scm:58
+msgid ""
+"\n"
+"  -H, --hash=ALGORITHM   use the given hash ALGORITHM"
+msgstr ""
+"\n"
+"  -H, --hash=ALGORITHME  utiliser l'algorithme de hashage donné"
+
+#: guix/scripts/download.scm:97
 msgid ""
 "\n"
 "      --no-check-certificate\n"
@@ -2007,7 +2144,7 @@ msgstr ""
 "      --no-check-certificate\n"
 "                         ne pas valider les certificats des serveurs HTTPS "
 
-#: guix/scripts/download.scm:95
+#: guix/scripts/download.scm:100
 msgid ""
 "\n"
 "  -o, --output=FILE      download to FILE"
@@ -2015,53 +2152,62 @@ msgstr ""
 "\n"
 "  -o, --output=FICHIER   télécharge dans le FICHIER"
 
-#: guix/scripts/download.scm:118 guix/scripts/hash.scm:83
+#: guix/scripts/download.scm:125 guix/scripts/hash.scm:97
 #, scheme-format
 msgid "unsupported hash format: ~a~%"
 msgstr "format d'empreinte non pris en charge : ~a~%"
 
-#: guix/scripts/download.scm:153 guix/scripts/package.scm:933
-#: guix/scripts/upgrade.scm:79 guix/scripts/publish.scm:1022
+#: guix/scripts/download.scm:133 guix/scripts/hash.scm:81
+#, scheme-format
+msgid "~a: unknown hash algorithm~%"
+msgstr "~a : algorithme de hashage inconnu~%"
+
+#: guix/scripts/download.scm:161
+msgid "download a file to the store and print its hash"
+msgstr "télécharger un fichier dans le dépôt et afficher son hash"
+
+#: guix/scripts/download.scm:170 guix/scripts/package.scm:955
+#: guix/scripts/upgrade.scm:83 guix/scripts/publish.scm:1090
 #, scheme-format
 msgid "~A: extraneous argument~%"
 msgstr "~A : argument superflu~%"
 
-#: guix/scripts/download.scm:161
+#: guix/scripts/download.scm:178
 #, scheme-format
 msgid "no download URI was specified~%"
 msgstr "aucune URI de téléchargement spécifiée~%"
 
-#: guix/scripts/download.scm:166
+#: guix/scripts/download.scm:183
 #, scheme-format
 msgid "~a: failed to parse URI~%"
 msgstr "~a : impossible d'évaluer l'URI~%"
 
-#: guix/scripts/download.scm:176
+#: guix/scripts/download.scm:193
 #, scheme-format
 msgid "~a: download failed~%"
 msgstr "~a : le téléchargement a échoué~%"
 
-#: guix/scripts/package.scm:121
+#: guix/scripts/package.scm:125
 #, scheme-format
 msgid "not removing generation ~a, which is current~%"
 msgstr "la génération ~a n'est pas supprimée car elle est actuelle~%"
 
-#: guix/scripts/package.scm:128
+#: guix/scripts/package.scm:132
 #, scheme-format
 msgid "no matching generation~%"
 msgstr "aucune génération correspondante~%"
 
-#: guix/scripts/package.scm:150
+#: guix/scripts/package.scm:154
 #, scheme-format
 msgid "nothing to be done~%"
 msgstr "aucune action à faire~%"
 
-#: guix/scripts/package.scm:250
+#: guix/scripts/package.scm:257
 #, scheme-format
 msgid "package '~a' no longer exists~%"
 msgstr "le paquet « ~a » n'existe plus~%"
 
-#: guix/scripts/package.scm:298
+#: guix/scripts/package.scm:312
 #, scheme-format
 msgid ""
 "Consider setting the necessary environment\n"
@@ -2084,7 +2230,7 @@ msgstr ""
 "\n"
 "Autrement, regardez @command{guix package --search-paths -p ~s}."
 
-#: guix/scripts/package.scm:326
+#: guix/scripts/package.scm:340
 msgid ""
 "Usage: guix package [OPTION]...\n"
 "Install, remove, or upgrade packages in a single transaction.\n"
@@ -2092,7 +2238,7 @@ msgstr ""
 "Utilisation : guix package [OPTION]...\n"
 "Installer, supprimer ou mettre à jour les paquets en une seule transaction.\n"
 
-#: guix/scripts/package.scm:328
+#: guix/scripts/package.scm:342
 msgid ""
 "\n"
 "  -i, --install PACKAGE ...\n"
@@ -2102,7 +2248,7 @@ msgstr ""
 "  -i, --install=PAQUET ...\n"
 "                         installer les PAQUETs"
 
-#: guix/scripts/package.scm:331
+#: guix/scripts/package.scm:345
 msgid ""
 "\n"
 "  -e, --install-from-expression=EXP\n"
@@ -2112,7 +2258,7 @@ msgstr ""
 "  -e, --install-from-expression=EXP\n"
 "                         installer le paquet évalué par EXP"
 
-#: guix/scripts/package.scm:334
+#: guix/scripts/package.scm:348
 msgid ""
 "\n"
 "  -f, --install-from-file=FILE\n"
@@ -2124,7 +2270,7 @@ msgstr ""
 "                         installer le paquet évalué par le code dans\n"
 "                         FICHIER"
 
-#: guix/scripts/package.scm:338
+#: guix/scripts/package.scm:352
 msgid ""
 "\n"
 "  -r, --remove PACKAGE ...\n"
@@ -2134,7 +2280,7 @@ msgstr ""
 "  -r, --remove=PAQUET ...\n"
 "                         supprimer les PAQUETs"
 
-#: guix/scripts/package.scm:341
+#: guix/scripts/package.scm:355
 msgid ""
 "\n"
 "  -u, --upgrade[=REGEXP] upgrade all the installed packages matching REGEXP"
@@ -2142,7 +2288,7 @@ msgstr ""
 "\n"
 "  -u, --upgrade[=REGEXP] mettre à jour tous les paquets installés correspondant à REGEXP"
 
-#: guix/scripts/package.scm:343
+#: guix/scripts/package.scm:357
 msgid ""
 "\n"
 "  -m, --manifest=FILE    create a new profile generation with the manifest\n"
@@ -2152,7 +2298,7 @@ msgstr ""
 "  -m, --manifest=FICHIER créer une nouvelle génération de profil avec le\n"
 "                         manifeste dans FICHIER"
 
-#: guix/scripts/package.scm:346
+#: guix/scripts/package.scm:360 guix/scripts/upgrade.scm:40
 msgid ""
 "\n"
 "      --do-not-upgrade[=REGEXP] do not upgrade any packages matching REGEXP"
@@ -2160,7 +2306,7 @@ msgstr ""
 "\n"
 "      --do-not-upgrade[=REGEXP] ne pas mettre à jour les paquets correspondant à REGEXP"
 
-#: guix/scripts/package.scm:348 guix/scripts/pull.scm:102
+#: guix/scripts/package.scm:362 guix/scripts/pull.scm:108
 msgid ""
 "\n"
 "      --roll-back        roll back to the previous generation"
@@ -2168,7 +2314,7 @@ msgstr ""
 "\n"
 "      --roll-back        revenir à la génération antérieure"
 
-#: guix/scripts/package.scm:350
+#: guix/scripts/package.scm:364
 msgid ""
 "\n"
 "      --search-paths[=KIND]\n"
@@ -2178,7 +2324,7 @@ msgstr ""
 "      --search-paths=[GENRE]\n"
 "                         afficher les définitions de variables d'environnement requises"
 
-#: guix/scripts/package.scm:353 guix/scripts/pull.scm:99
+#: guix/scripts/package.scm:367 guix/scripts/pull.scm:105
 msgid ""
 "\n"
 "  -l, --list-generations[=PATTERN]\n"
@@ -2188,7 +2334,7 @@ msgstr ""
 "  -l, --list-generations[=MOTIF]\n"
 "                         lister les générations correspondant à MOTIF"
 
-#: guix/scripts/package.scm:356 guix/scripts/pull.scm:104
+#: guix/scripts/package.scm:370 guix/scripts/pull.scm:110
 msgid ""
 "\n"
 "  -d, --delete-generations[=PATTERN]\n"
@@ -2198,7 +2344,7 @@ msgstr ""
 "  -d, --delete-generations[=MOTIF]\n"
 "                         supprimer les générations correspondant à MOTIF"
 
-#: guix/scripts/package.scm:359 guix/scripts/pull.scm:107
+#: guix/scripts/package.scm:373 guix/scripts/pull.scm:113
 msgid ""
 "\n"
 "  -S, --switch-generation=PATTERN\n"
@@ -2208,8 +2354,8 @@ msgstr ""
 "  -S, --switch-generation=MOTIF\n"
 "                         basculer vers une génération correspondant à MOTIF"
 
-#: guix/scripts/package.scm:362 guix/scripts/install.scm:33
-#: guix/scripts/remove.scm:33 guix/scripts/upgrade.scm:34
+#: guix/scripts/package.scm:376 guix/scripts/install.scm:34
+#: guix/scripts/remove.scm:33 guix/scripts/upgrade.scm:36
 msgid ""
 "\n"
 "  -p, --profile=PROFILE  use PROFILE instead of the user's default profile"
@@ -2217,7 +2363,7 @@ msgstr ""
 "\n"
 "  -p, --profile=PROFIL   utiliser PROFIL au lieu du profil par défaut de l'utilisateur"
 
-#: guix/scripts/package.scm:364
+#: guix/scripts/package.scm:378
 msgid ""
 "\n"
 "      --list-profiles    list the user's profiles"
@@ -2225,7 +2371,7 @@ msgstr ""
 "\n"
 "      --list-profiles    lister les profils de l'utilisateur"
 
-#: guix/scripts/package.scm:367
+#: guix/scripts/package.scm:381
 msgid ""
 "\n"
 "      --allow-collisions do not treat collisions in the profile as an error"
@@ -2233,7 +2379,7 @@ msgstr ""
 "\n"
 "      --allow-collisions ne pas traiter les collisions dans le profil comme une erreur"
 
-#: guix/scripts/package.scm:369
+#: guix/scripts/package.scm:383
 msgid ""
 "\n"
 "      --bootstrap        use the bootstrap Guile to build the profile"
@@ -2241,7 +2387,7 @@ msgstr ""
 "\n"
 "      --bootstrap        utiliser le programme d'amorçage Guile pour compiler le profil"
 
-#: guix/scripts/package.scm:374
+#: guix/scripts/package.scm:388
 msgid ""
 "\n"
 "  -s, --search=REGEXP    search in synopsis and description using REGEXP"
@@ -2249,7 +2395,7 @@ msgstr ""
 "\n"
 "  -s, --search=REGEXP    chercher dans le synopsis et la description en utilisant REGEXP"
 
-#: guix/scripts/package.scm:376
+#: guix/scripts/package.scm:390
 msgid ""
 "\n"
 "  -I, --list-installed[=REGEXP]\n"
@@ -2259,7 +2405,7 @@ msgstr ""
 "  -I, --list-installed[=REGEXP]\n"
 "                         lister les paquets installés correspondant à REGEXP"
 
-#: guix/scripts/package.scm:379
+#: guix/scripts/package.scm:393
 msgid ""
 "\n"
 "  -A, --list-available[=REGEXP]\n"
@@ -2269,7 +2415,7 @@ msgstr ""
 "  -A, --list-available[=REGEXP]\n"
 "                         lister les paquets disponibles correspondant à REGEXP"
 
-#: guix/scripts/package.scm:382
+#: guix/scripts/package.scm:396
 msgid ""
 "\n"
 "      --show=PACKAGE     show details about PACKAGE"
@@ -2277,37 +2423,41 @@ msgstr ""
 "\n"
 "      --show=PAQUET      montrer des détails du PAQUET"
 
-#: guix/scripts/package.scm:434
+#: guix/scripts/package.scm:449
 #, scheme-format
 msgid "upgrade regexp '~a' looks like a command-line option~%"
 msgstr "l'expression régulière « ~a » ressemble à une option de la ligne de commande~%"
 
-#: guix/scripts/package.scm:437
+#: guix/scripts/package.scm:452
 #, scheme-format
 msgid "is this intended?~%"
 msgstr "est-ce intentionnel ?~%"
 
-#: guix/scripts/package.scm:487
+#: guix/scripts/package.scm:502
 #, scheme-format
 msgid "~a: unsupported kind of search path~%"
 msgstr "~a : type de chemin de recherche non pris en charge~%"
 
-#: guix/scripts/package.scm:619
+#: guix/scripts/package.scm:628
 #, scheme-format
 msgid "cannot install non-package object: ~s~%"
 msgstr "impossible d'installer un objet qui n'est pas un paquet : ~s~%"
 
-#: guix/scripts/package.scm:791
+#: guix/scripts/package.scm:809
 #, scheme-format
 msgid "~a~@[@~a~]: package not found~%"
 msgstr "~a~@[@~a~] : paquet introuvable~%"
 
-#: guix/scripts/package.scm:825 guix/scripts/pull.scm:677
+#: guix/scripts/package.scm:844 guix/scripts/pull.scm:687
 #, scheme-format
 msgid "cannot switch to generation '~a'~%"
 msgstr "impossible de passer à la génération « ~a »~%"
 
-#: guix/scripts/install.scm:30
+#: guix/scripts/package.scm:949
+msgid "manage packages and profiles"
+msgstr "gérer les paquets et les profils"
+
+#: guix/scripts/install.scm:31
 msgid ""
 "Usage: guix install [OPTION] PACKAGES...\n"
 "Install the given PACKAGES.\n"
@@ -2317,6 +2467,10 @@ msgstr ""
 "Installer les PAQUETS donnés.\n"
 "C'est un alias pour la commande « guix package -i ».\n"
 
+#: guix/scripts/install.scm:69
+msgid "install packages"
+msgstr "installer des paquets"
+
 #: guix/scripts/remove.scm:30
 msgid ""
 "Usage: guix remove [OPTION] PACKAGES...\n"
@@ -2327,7 +2481,11 @@ msgstr ""
 "Supprimer les PAQUETS donnés.\n"
 "C'est un alias pour la commande « guix package -r ».\n"
 
-#: guix/scripts/upgrade.scm:31
+#: guix/scripts/remove.scm:67
+msgid "remove installed packages"
+msgstr "supprimer des paquets"
+
+#: guix/scripts/upgrade.scm:33
 msgid ""
 "Usage: guix upgrade [OPTION] [REGEXP]\n"
 "Upgrade packages that match REGEXP.\n"
@@ -2337,6 +2495,10 @@ msgstr ""
 "Mettre à jour les paquets qui correspondent à REGEXP.\n"
 "C'est un alias pour la commande « guix package -u ».\n"
 
+#: guix/scripts/upgrade.scm:72
+msgid "upgrade packages to their latest version"
+msgstr "mettre à jour des paquets vers leur version la plus récente"
+
 #: guix/scripts/search.scm:31
 msgid ""
 "Usage: guix search [OPTION] REGEXPS...\n"
@@ -2353,7 +2515,11 @@ msgstr ""
 "\n"
 "C'est un alias pour la commande « guix package -s ».\n"
 
-#: guix/scripts/search.scm:74
+#: guix/scripts/search.scm:61
+msgid "search for packages"
+msgstr "rechercher des paquets"
+
+#: guix/scripts/search.scm:76
 #, scheme-format
 msgid "missing arguments: no regular expressions to search for~%"
 msgstr "arguments manquants : par d'expression régulière à rechercher~%"
@@ -2374,7 +2540,11 @@ msgstr ""
 "\n"
 "C'est un alias pour la commande « guix package --show= ».\n"
 
-#: guix/scripts/show.scm:74
+#: guix/scripts/show.scm:61
+msgid "show information about packages"
+msgstr "afficher les informations des paquets"
+
+#: guix/scripts/show.scm:76
 #, scheme-format
 msgid "missing arguments: no package to show~%"
 msgstr "arguments manquants : par de paquet à montrer~%"
@@ -2543,38 +2713,135 @@ msgstr "l'utilisation de « -d » pour « --delete » est obsolète. Utilisez pl
 msgid "~s does not denote a duration~%"
 msgstr "« ~s » ne correspond pas à une durée~%"
 
-#: guix/scripts/gc.scm:249
+#: guix/scripts/gc.scm:224
+msgid "invoke the garbage collector"
+msgstr "invoquer le ramasse-miette"
+
+#: guix/scripts/gc.scm:251
 msgid "already ~h MiBs available on ~a, nothing to do~%"
 msgstr "déjà ~h Mo disponibles sur ~a, rien à faire~%"
 
-#: guix/scripts/gc.scm:252
+#: guix/scripts/gc.scm:254
 msgid "freeing ~h MiBs~%"
 msgstr "libération de ~h Mo~%"
 
-#: guix/scripts/gc.scm:291
+#: guix/scripts/gc.scm:293
 #, scheme-format
 msgid "extraneous arguments: ~{~a ~}~%"
 msgstr "arguments superflus : ~{~a ~}~%"
 
-#: guix/scripts/gc.scm:315 guix/scripts/gc.scm:318
+#: guix/scripts/gc.scm:317 guix/scripts/gc.scm:320
 msgid "freed ~h MiBs~%"
 msgstr "~h Mo libérés~%"
 
-#: guix/scripts/hash.scm:48
+#: guix/scripts/git.scm:26
+msgid ""
+"Usage: guix git COMMAND ARGS...\n"
+"Operate on Git repositories.\n"
+msgstr ""
+"Utilisation : guix git COMMANDE ARGS...\n"
+"Effectue des opérations sur des dépôts git.\n"
+
+#: guix/scripts/git.scm:29 guix/scripts/system.scm:921
+#: guix/scripts/container.scm:30
+msgid "The valid values for ACTION are:\n"
+msgstr "Les valeurs possibles pour ACTION sont :\n"
+
+#: guix/scripts/git.scm:31
+msgid "   authenticate    verify commit signatures and authorizations\n"
+msgstr "   authenticate    vérifie les signatures des commits et les autorisations\n"
+
+#: guix/scripts/git.scm:51
+msgid "operate on Git repositories"
+msgstr "travailler sur des dépôts Git"
+
+#: guix/scripts/git.scm:57
+#, scheme-format
+msgid "guix git: missing sub-command~%"
+msgstr "guix git : sous-commande manquante~%"
+
+#: guix/scripts/git.scm:67
+#, scheme-format
+msgid "guix git: invalid sub-command~%"
+msgstr "guix git : sous-commande invalide~%"
+
+#: guix/scripts/git/authenticate.scm:81
+#, scheme-format
+msgid "Signing statistics:~%"
+msgstr "Statistiques des signatures :~%"
+
+#: guix/scripts/git/authenticate.scm:94
+msgid ""
+"Usage: guix git authenticate COMMIT SIGNER [OPTIONS...]\n"
+"Authenticate the given Git checkout using COMMIT/SIGNER as its introduction.\n"
+msgstr ""
+"Utilisation : guix git authenticate COMMIT SIGNATAIRE [OPTIONS...]\n"
+"Authentifie le dépôt Git donné avec COMMIT/SIGNATAIRE comme introduction.\n"
+
+#: guix/scripts/git/authenticate.scm:96
+msgid ""
+"\n"
+"  -r, --repository=DIRECTORY\n"
+"                         open the Git repository at DIRECTORY"
+msgstr ""
+"\n"
+"  -r, --repository=RÉPERTOIRE\n"
+"                         ouvre le dépôt Git situé dans le RÉPERTOIRE"
+
+#: guix/scripts/git/authenticate.scm:99
+msgid ""
+"\n"
+"  -k, --keyring=REFERENCE\n"
+"                         load keyring from REFERENCE, a Git branch"
+msgstr ""
+"\n"
+"  -k, --keyring=RÉFÉRENCE\n"
+"                         charge le porte-clef à partir de RÉFÉRENCE, une branche Git"
+
+#: guix/scripts/git/authenticate.scm:102
+msgid ""
+"\n"
+"      --stats            display commit signing statistics upon completion"
+msgstr ""
+"\n"
+"      --stats            affiche les statistiques de signature à la fin"
+
+#: guix/scripts/git/authenticate.scm:104
+msgid ""
+"\n"
+"      --cache-key=KEY    cache authenticated commits under KEY"
+msgstr ""
+"\n"
+"      --cache-key=CLEF   met en cache les commits authentifié sous la CLEF"
+
+#: guix/scripts/git/authenticate.scm:106
+msgid ""
+"\n"
+"      --historical-authorizations=FILE\n"
+"                         read historical authorizations from FILE"
+msgstr ""
+"\n"
+"      --historical-authorizations=FICHIER\n"
+"                         lit les autorisations historiques dans le FICHIER"
+
+#: guix/scripts/git/authenticate.scm:138
+msgid "Authenticating commits ~a to ~a (~h new commits)...~%"
+msgstr "Authentification des commits ~a à ~a (~h nouveau commits)...~%"
+
+#: guix/scripts/git/authenticate.scm:178
+#, scheme-format
+msgid "wrong number of arguments; expected COMMIT and SIGNER~%"
+msgstr "nombre d'arguments incorrect ; COMMIT et SIGNATAIRES attendus~%"
+
+#: guix/scripts/hash.scm:50
 msgid ""
 "Usage: guix hash [OPTION] FILE\n"
 "Return the cryptographic hash of FILE.\n"
-"\n"
-"Supported formats: 'nix-base32' (default), 'base32', and 'base16' ('hex'\n"
-"and 'hexadecimal' can be used as well).\n"
 msgstr ""
 "Utilisation : guix hash [OPTION] FICHIER\n"
-"Retourner l'empreinte cryptographique du FICHIER.\n"
-"\n"
-"Formats pris en charge : « nix-base32 » (par défaut), « base32 », et « base16 » (« hex »\n"
-"et « hexadecimal » peuvent également être utilisés).\n"
+"Renvoie le hash cryptographique de FICHIER.\n"
 
-#: guix/scripts/hash.scm:53
+#: guix/scripts/hash.scm:56
 msgid ""
 "\n"
 "  -x, --exclude-vcs      exclude version control directories"
@@ -2582,7 +2849,7 @@ msgstr ""
 "\n"
 "  -x, --exclude-vcs      exclure les répertoires de contrôle de versions"
 
-#: guix/scripts/hash.scm:57
+#: guix/scripts/hash.scm:62
 msgid ""
 "\n"
 "  -r, --recursive        compute the hash on FILE recursively"
@@ -2590,20 +2857,24 @@ msgstr ""
 "\n"
 "  -r, --recursive        calculer l'empreinte de FICHIER de manière récursive"
 
-#: guix/scripts/hash.scm:151 guix/ui.scm:391 guix/ui.scm:416 guix/ui.scm:744
-#: guix/ui.scm:766 guix/ui.scm:772 guix/ui.scm:789 guix/ui.scm:842
+#: guix/scripts/hash.scm:121
+msgid "compute the cryptographic hash of a file"
+msgstr "calculer le hash cryptographique d'un fichier"
+
+#: guix/scripts/hash.scm:171 guix/ui.scm:397 guix/ui.scm:428 guix/ui.scm:785
+#: guix/ui.scm:833 guix/ui.scm:889
 #, scheme-format
 msgid "~a~%"
 msgstr "~a~%"
 
-#: guix/scripts/hash.scm:154 guix/scripts/system.scm:1186
-#: guix/scripts/system.scm:1202 guix/scripts/system.scm:1209
-#: guix/scripts/system.scm:1215
+#: guix/scripts/hash.scm:174 guix/scripts/system.scm:1247
+#: guix/scripts/system.scm:1263 guix/scripts/system.scm:1270
+#: guix/scripts/system.scm:1276
 #, scheme-format
 msgid "wrong number of arguments~%"
 msgstr "nombre d'arguments incorrect~%"
 
-#: guix/scripts/import.scm:88
+#: guix/scripts/import.scm:89
 msgid ""
 "Usage: guix import IMPORTER ARGS ...\n"
 "Run IMPORTER with ARGS.\n"
@@ -2611,21 +2882,25 @@ msgstr ""
 "Utilisation : guix import IMPORTATEUR ARGS...\n"
 "Lancer IMPORTATEUR avec ARGS.\n"
 
-#: guix/scripts/import.scm:91
+#: guix/scripts/import.scm:92
 msgid "IMPORTER must be one of the importers listed below:\n"
 msgstr "IMPORTATEUR doit être un des importateurs listés ci-dessous:\n"
 
-#: guix/scripts/import.scm:105
+#: guix/scripts/import.scm:104
+msgid "import a package definition from an external repository"
+msgstr "importer la définition d'un paquet à partir d'un dépôt externe"
+
+#: guix/scripts/import.scm:109
 #, scheme-format
 msgid "guix import: missing importer name~%"
 msgstr "guix import: nom d'importateur absent~%"
 
-#: guix/scripts/import.scm:126
+#: guix/scripts/import.scm:130
 #, scheme-format
 msgid "'~a' import failed~%"
 msgstr "l'importateur « ~a » a échoué~%"
 
-#: guix/scripts/import.scm:127
+#: guix/scripts/import.scm:131
 #, scheme-format
 msgid "~a: invalid importer~%"
 msgstr "~a : importateur non valide~%"
@@ -2714,7 +2989,7 @@ msgstr ""
 msgid "failed to download package '~a'~%"
 msgstr "échec lors du téléchargement du paquet « ~a »~%"
 
-#: guix/scripts/pull.scm:87
+#: guix/scripts/pull.scm:88
 msgid ""
 "Usage: guix pull [OPTION]...\n"
 "Download and deploy the latest version of Guix.\n"
@@ -2722,7 +2997,7 @@ msgstr ""
 "Utilisation : guix pull [OPTION]...\n"
 "Télécharger et déployer la dernière version de Guix.\n"
 
-#: guix/scripts/pull.scm:89
+#: guix/scripts/pull.scm:90
 msgid ""
 "\n"
 "  -C, --channels=FILE    deploy the channels defined in FILE"
@@ -2730,7 +3005,7 @@ msgstr ""
 "\n"
 "  -C, --channels=FICHIER déploie les canaux définis dans FICHIER"
 
-#: guix/scripts/pull.scm:91
+#: guix/scripts/pull.scm:92
 msgid ""
 "\n"
 "      --url=URL          download from the Git repository at URL"
@@ -2738,7 +3013,7 @@ msgstr ""
 "\n"
 "      --url=URL          télécharger le dépôt Git depuis URL"
 
-#: guix/scripts/pull.scm:93
+#: guix/scripts/pull.scm:94
 msgid ""
 "\n"
 "      --commit=COMMIT    download the specified COMMIT"
@@ -2746,7 +3021,7 @@ msgstr ""
 "\n"
 "      --commit=COMMIT    télécharger le COMMIT indiqué"
 
-#: guix/scripts/pull.scm:95
+#: guix/scripts/pull.scm:96
 msgid ""
 "\n"
 "      --branch=BRANCH    download the tip of the specified BRANCH"
@@ -2754,7 +3029,25 @@ msgstr ""
 "\n"
 "      --branch=BRANCHE   télécharger le bout de la BRANCHE indiquée"
 
-#: guix/scripts/pull.scm:97
+#: guix/scripts/pull.scm:98
+msgid ""
+"\n"
+"      --allow-downgrades allow downgrades to earlier channel revisions"
+msgstr ""
+"\n"
+"      --allow-downgrades permet de revenir aux révisions antérieures des canaux"
+
+#: guix/scripts/pull.scm:100
+msgid ""
+"\n"
+"      --disable-authentication\n"
+"                         disable channel authentication"
+msgstr ""
+"\n"
+"      --disable-authentication\n"
+"                         désactive l'authentification des canaux"
+
+#: guix/scripts/pull.scm:103
 msgid ""
 "\n"
 "  -N, --news             display news compared to the previous generation"
@@ -2762,7 +3055,7 @@ msgstr ""
 "\n"
 "  -N, --news             affiche les nouveautés par rapport à la génération précédente"
 
-#: guix/scripts/pull.scm:110
+#: guix/scripts/pull.scm:116
 #, scheme-format
 msgid ""
 "\n"
@@ -2771,7 +3064,7 @@ msgstr ""
 "\n"
 "  -p, --profile=PROFIL   utiliser PROFIL au lieu de ~/.config/guix/current"
 
-#: guix/scripts/pull.scm:116
+#: guix/scripts/pull.scm:122
 msgid ""
 "\n"
 "      --bootstrap        use the bootstrap Guile to build the new Guix"
@@ -2779,47 +3072,57 @@ msgstr ""
 "\n"
 "      --bootstrap        utiliser le programme d'amorçage Guile pour compiler le nouveau Guix"
 
-#: guix/scripts/pull.scm:217
+#: guix/scripts/pull.scm:211
+#, scheme-format
+msgid "rolling back channel '~a' from ~a to ~a~%"
+msgstr "Retour du canal « ~a » de ~a à ~a~%"
+
+#: guix/scripts/pull.scm:214
+#, scheme-format
+msgid "moving channel '~a' from ~a to unrelated commit ~a~%"
+msgstr "déplacement du canal « ~a » de ~a au commit non lié ~a~%"
+
+#: guix/scripts/pull.scm:243
 msgid "New in this revision:\n"
 msgstr "Nouveautés de cette révision :\n"
 
 #. TRANSLATORS: This describes a "channel"; the first placeholder is
 #. the channel name (e.g., "guix") and the second placeholder is its
 #. URL.
-#: guix/scripts/pull.scm:226
+#: guix/scripts/pull.scm:252
 #, scheme-format
 msgid "    ~a at ~a~%"
 msgstr "    ~a à l'adresse ~a~%"
 
-#: guix/scripts/pull.scm:264
+#: guix/scripts/pull.scm:290
 #, scheme-format
 msgid "    commit ~a~%"
 msgstr "    commit ~a~%"
 
-#: guix/scripts/pull.scm:301
+#: guix/scripts/pull.scm:327
 #, scheme-format
 msgid "News for channel '~a'~%"
 msgstr "Nouveauté du canal « ~a »~%"
 
-#: guix/scripts/pull.scm:327
+#: guix/scripts/pull.scm:353
 #, scheme-format
 msgid "  ~a new channel:~%"
 msgid_plural "  ~a new channels:~%"
 msgstr[0] "  ~a nouveau canal :~%"
 msgstr[1] "  ~a nouveaux canaux :~%"
 
-#: guix/scripts/pull.scm:337
+#: guix/scripts/pull.scm:363
 #, scheme-format
 msgid "  ~a channel removed:~%"
 msgid_plural "  ~a channels removed:~%"
 msgstr[0] "  ~a canal supprimé:~%"
 msgstr[1] "  ~a canaux supprimés:~%"
 
-#: guix/scripts/pull.scm:413
+#: guix/scripts/pull.scm:439
 msgid "Run @command{guix pull --news} to read all the news."
 msgstr "Lancez @command{guix pull --news} pour lire les nouveautés."
 
-#: guix/scripts/pull.scm:421
+#: guix/scripts/pull.scm:447
 #, scheme-format
 msgid ""
 "After setting @code{PATH}, run\n"
@@ -2828,44 +3131,34 @@ msgstr ""
 "Après avoir paramétré @code{PATH}, lancez\n"
 "@command{hash guix} pour vous assurez que votre shell se réfère à @file{~a}."
 
-#: guix/scripts/pull.scm:446
-#, scheme-format
-msgid "Git error ~a~%"
-msgstr "Erreur Git : ~a~%"
-
-#: guix/scripts/pull.scm:448 guix/git.scm:363
-#, scheme-format
-msgid "Git error: ~a~%"
-msgstr "Erreur Git : ~a~%"
-
-#: guix/scripts/pull.scm:473
+#: guix/scripts/pull.scm:482
 #, scheme-format
 msgid "Migrating profile generations to '~a'...~%"
 msgstr "Migration des générations du profil vers « ~a »...~%"
 
-#: guix/scripts/pull.scm:515
+#: guix/scripts/pull.scm:525
 #, scheme-format
 msgid "while creating symlink '~a': ~a~%"
 msgstr "pendant la création du lien symbolique « ~a » : ~a ~%"
 
-#: guix/scripts/pull.scm:604
+#: guix/scripts/pull.scm:614
 msgid "  ~h new package: ~a~%"
 msgid_plural "  ~h new packages: ~a~%"
 msgstr[0] "  ~h nouveau paquet : ~a~%"
 msgstr[1] "  ~h nouveaux paquets : ~a~%"
 
-#: guix/scripts/pull.scm:612
+#: guix/scripts/pull.scm:622
 msgid "  ~h package upgraded: ~a~%"
 msgid_plural "  ~h packages upgraded: ~a~%"
 msgstr[0] "  ~h paquet mis à jour : ~a~%"
 msgstr[1] "  ~h paquets mis à jour : ~a~%"
 
-#: guix/scripts/pull.scm:701
+#: guix/scripts/pull.scm:711
 #, scheme-format
 msgid "'~a' did not return a list of channels~%"
 msgstr "« ~a » n'a pas renvoyé une liste de canaux~%"
 
-#: guix/scripts/pull.scm:717
+#: guix/scripts/pull.scm:727
 #, scheme-format
 msgid ""
 "The 'GUIX_PULL_URL' environment variable is deprecated.\n"
@@ -2874,7 +3167,11 @@ msgstr ""
 "La variable d'environnement « GUIX_PULL_URL » est obsolète.\n"
 "Utilisez « ~/.config/guix/channels.scm » à la place."
 
-#: guix/scripts/pull.scm:771
+#: guix/scripts/pull.scm:755
+msgid "pull the latest revision of Guix"
+msgstr "récupérer la dernière révision de Guix"
+
+#: guix/scripts/pull.scm:795
 #, scheme-format
 msgid "Building from this channel:~%"
 msgid_plural "Building from these channels:~%"
@@ -2931,37 +3228,37 @@ msgstr "format invalide du champ de signature : ~a~%"
 msgid "'~a' does not name a store item~%"
 msgstr "« ~a » ne nomme pas un élément du stockage~%"
 
-#: guix/scripts/substitute.scm:596
+#: guix/scripts/substitute.scm:598
 #, scheme-format
 msgid "~a: host not found: ~a~%"
 msgstr "~a : hôte non trouvé : ~a~%"
 
-#: guix/scripts/substitute.scm:602
+#: guix/scripts/substitute.scm:604
 #, scheme-format
 msgid "~a: connection failed: ~a~%"
 msgstr "~a : la connexion à échouée : ~a~%"
 
-#: guix/scripts/substitute.scm:618
+#: guix/scripts/substitute.scm:620
 #, scheme-format
 msgid "updating substitutes from '~a'... ~5,1f%"
 msgstr "mise à jour des substituts depuis « ~a »... ~5,1f %"
 
-#: guix/scripts/substitute.scm:689
+#: guix/scripts/substitute.scm:691
 #, scheme-format
 msgid "~s: unsupported server URI scheme~%"
 msgstr "~s : schéma d'URI du serveur non pris en charge~%"
 
-#: guix/scripts/substitute.scm:829
+#: guix/scripts/substitute.scm:831
 #, scheme-format
 msgid "host name lookup error: ~a~%"
 msgstr "erreur lors de la consultation du nom d'hôte : ~a~%"
 
-#: guix/scripts/substitute.scm:834
+#: guix/scripts/substitute.scm:836
 #, scheme-format
 msgid "TLS error in procedure '~a': ~a~%"
 msgstr "Erreur TLS dans la procédure « ~a » : ~a~%"
 
-#: guix/scripts/substitute.scm:845
+#: guix/scripts/substitute.scm:847
 msgid ""
 "Usage: guix substitute [OPTION]...\n"
 "Internal tool to substitute a pre-built binary to a local build.\n"
@@ -2969,7 +3266,7 @@ msgstr ""
 "Utilisation : guix substitute [OPTION]...\n"
 "Outil interne pour substituer un binaire pré-compilé à une compilation locale.\n"
 
-#: guix/scripts/substitute.scm:847
+#: guix/scripts/substitute.scm:849
 msgid ""
 "\n"
 "      --query            report on the availability of substitutes for the\n"
@@ -2980,7 +3277,7 @@ msgstr ""
 "                         noms de fichiers de dépôt passés sur l'entrée\n"
 "                         standard"
 
-#: guix/scripts/substitute.scm:850
+#: guix/scripts/substitute.scm:852
 msgid ""
 "\n"
 "      --substitute STORE-FILE DESTINATION\n"
@@ -2992,165 +3289,192 @@ msgstr ""
 "                         télécharger FICHIER-DÉPÔT et l'enregistrer comme un Nar\n"
 "                         dans le fichier DESTINATION"
 
-#: guix/scripts/substitute.scm:971
+#: guix/scripts/substitute.scm:973
 #, scheme-format
 msgid "no valid substitute for '~a'~%"
 msgstr "pas de substitut valide pour « ~a »~%"
 
-#: guix/scripts/substitute.scm:981
+#: guix/scripts/substitute.scm:983
 #, scheme-format
 msgid "Downloading ~a...~%"
 msgstr "Téléchargement de « ~a »...~%"
 
-#: guix/scripts/substitute.scm:1041
+#: guix/scripts/substitute.scm:1043
 msgid "ACL for archive imports seems to be uninitialized, substitutes may be unavailable\n"
 msgstr "L'ACL pour l'import d'archives ne semble pas initialisée ; les substituts pourraient être indisponibles\n"
 
-#: guix/scripts/substitute.scm:1095
+#: guix/scripts/substitute.scm:1097
 #, scheme-format
 msgid "~a: invalid URI~%"
 msgstr "~a : URI invalide~%"
 
-#: guix/scripts/substitute.scm:1166
+#: guix/scripts/substitute.scm:1101
+msgid "implement the build daemon's substituter protocol"
+msgstr "implémente le protocole de substitution du démon de construction"
+
+#: guix/scripts/substitute.scm:1171
 #, scheme-format
 msgid "~a: unrecognized options~%"
 msgstr "~a : options non reconnues~%"
 
-#: guix/scripts/authenticate.scm:59
+#: guix/scripts/authenticate.scm:64
 #, scheme-format
-msgid "cannot find public key for secret key '~a'~%"
-msgstr "impossible de trouver la clé publique correspondant à la clé secrète « ~a »~%"
+msgid "failed to load key pair at '~a': ~a~%"
+msgstr "impossible de charger la paire de clefs dans « ~a » : ~a~%"
 
-#: guix/scripts/authenticate.scm:79
+#: guix/scripts/authenticate.scm:86
 #, scheme-format
-msgid "error: invalid signature: ~a~%"
-msgstr "erreur : signature non valide: ~a~%"
+msgid "invalid signature: ~a"
+msgstr "signature non valide : ~a"
 
-#: guix/scripts/authenticate.scm:81
+#: guix/scripts/authenticate.scm:89
 #, scheme-format
-msgid "error: unauthorized public key: ~a~%"
-msgstr "erreur : clé publique non autorisée: ~a~%"
+msgid "unauthorized public key: ~a"
+msgstr "clé publique non autorisée : ~a"
 
-#: guix/scripts/authenticate.scm:83
+#: guix/scripts/authenticate.scm:92
 #, scheme-format
-msgid "error: corrupt signature data: ~a~%"
-msgstr "erreur : signature corrompue : ~a~%"
+msgid "corrupt signature data: ~a"
+msgstr "signature corrompue : ~a"
 
-#: guix/scripts/authenticate.scm:121
+#: guix/scripts/authenticate.scm:151
+msgid "sign or verify signatures on normalized archives (nars)"
+msgstr "signer ou vérifier les signatures sur les archives normalisées (nar)"
+
+#: guix/scripts/authenticate.scm:184
 msgid ""
 "Usage: guix authenticate OPTION...\n"
-"Sign or verify the signature on the given file.  This tool is meant to\n"
-"be used internally by 'guix-daemon'.\n"
+"Sign data or verify signatures.  This tool is meant to be used internally by\n"
+"'guix-daemon'.\n"
 msgstr ""
 "Utilisation : guix authenticate OPTION...\n"
-"Signer ou vérifier la signature du fichier donné. Cet outil est destiné\n"
-"à être utilisé en interne par « guix-daemon ».\n"
+"Signer ou vérifier des signatures. Cet outil est destiné à être utilisé\n"
+"en interne par « guix-daemon ».\n"
+
+#: guix/scripts/authenticate.scm:218
+#, scheme-format
+msgid "~s: invalid command; ignoring~%"
+msgstr "~s : commande invalide et ignorée~%"
 
-#: guix/scripts/authenticate.scm:127
-msgid "wrong arguments"
-msgstr "mauvais arguments"
+#: guix/scripts/authenticate.scm:223
+#, scheme-format
+msgid "wrong arguments~%"
+msgstr "mauvais arguments~%"
 
-#: guix/scripts/system.scm:155
+#: guix/scripts/system.scm:161
 #, scheme-format
 msgid "failed to register '~a' under '~a'~%"
 msgstr "impossible d'enregistrer « ~a » sous « ~a »~%"
 
-#: guix/scripts/system.scm:170
+#: guix/scripts/system.scm:176
 #, scheme-format
 msgid "copying to '~a'..."
 msgstr "copie vers « ~a »..."
 
-#: guix/scripts/system.scm:197
+#: guix/scripts/system.scm:203
 #, scheme-format
 msgid "initializing the current root file system~%"
 msgstr "initialisation du système de fichier racine courant~%"
 
-#: guix/scripts/system.scm:211
+#: guix/scripts/system.scm:217
 #, scheme-format
 msgid "not running as 'root', so the ownership of '~a' may be incorrect!~%"
 msgstr "n'est pas exécuté en tant que « root » donc le propriétaire de « ~a » pourrait être incorrect !~%"
 
-#: guix/scripts/system.scm:241 guix/scripts/system.scm:733
-#: guix/scripts/system.scm:837
+#: guix/scripts/system.scm:247 guix/scripts/system.scm:743
+#: guix/scripts/system.scm:851
 #, scheme-format
 msgid "bootloader successfully installed on '~a'~%"
 msgstr "chargeur d'amorçage correctement installé sur « ~a »~%"
 
-#: guix/scripts/system.scm:264
+#: guix/scripts/system.scm:270
 #, scheme-format
 msgid "while talking to shepherd: ~a~%"
 msgstr "en parlant au shepherd : ~a~%"
 
-#: guix/scripts/system.scm:271
+#: guix/scripts/system.scm:278
 #, scheme-format
 msgid "service '~a' could not be found~%"
 msgstr "service: « ~a » introuvable~%"
 
-#: guix/scripts/system.scm:274
+#: guix/scripts/system.scm:281
 #, scheme-format
 msgid "service '~a' does not have an action '~a'~%"
 msgstr "le service « ~a » n'a pas d'action « ~a »~%"
 
-#: guix/scripts/system.scm:278
+#: guix/scripts/system.scm:285
 #, scheme-format
 msgid "exception caught while executing '~a' on service '~a':~%"
 msgstr "exception interceptée pendant l'exécution de « ~a » sur le service « ~a »:~%"
 
-#: guix/scripts/system.scm:286
+#: guix/scripts/system.scm:293
 #, scheme-format
 msgid "something went wrong: ~s~%"
 msgstr "quelque chose s'est mal passé : ~s~%"
 
-#: guix/scripts/system.scm:289
+#: guix/scripts/system.scm:296
 #, scheme-format
 msgid "shepherd error~%"
 msgstr "erreur du shepherd~%"
 
-#: guix/scripts/system.scm:353
+#: guix/scripts/system.scm:300
+#, scheme-format
+msgid "some services could not be upgraded~%"
+msgstr "certains services n'ont pas pu être mis à jour~%"
+
+#: guix/scripts/system.scm:301
+msgid ""
+"To allow changes to all the system services to take\n"
+"effect, you will need to reboot."
+msgstr ""
+"Pour que les changements au niveau des services systèmes puissent être\n"
+"pris en compte, vous devrez redémarrer."
+
+#: guix/scripts/system.scm:364
 #, scheme-format
 msgid "cannot switch to system generation '~a'~%"
 msgstr "impossible de passer à la génération « ~a » du système~%"
 
-#: guix/scripts/system.scm:422
+#: guix/scripts/system.scm:438
 msgid "the DAG of services"
 msgstr "le graphe orienté acyclique (DAG) des services"
 
-#: guix/scripts/system.scm:435
+#: guix/scripts/system.scm:451
 msgid "the dependency graph of shepherd services"
 msgstr "le graphique des dépendances des services du shepherd"
 
-#: guix/scripts/system.scm:461
+#: guix/scripts/system.scm:466
 #, scheme-format
 msgid "      repository URL: ~a~%"
 msgstr "      URL du dépôt : ~a~%"
 
-#: guix/scripts/system.scm:463
+#: guix/scripts/system.scm:468
 #, scheme-format
 msgid "      branch: ~a~%"
 msgstr "      branche : ~a~%"
 
-#: guix/scripts/system.scm:464
+#: guix/scripts/system.scm:469
 #, scheme-format
 msgid "      commit: ~a~%"
 msgstr "      commit : ~a~%"
 
-#: guix/scripts/system.scm:486
+#: guix/scripts/system.scm:489
 #, scheme-format
 msgid "  file name: ~a~%"
 msgstr "  nom de fichier: ~a~%"
 
-#: guix/scripts/system.scm:487
+#: guix/scripts/system.scm:490
 #, scheme-format
 msgid "  canonical file name: ~a~%"
 msgstr "  nom de fichier canonique : ~a~%"
 
 #. TRANSLATORS: Please preserve the two-space indentation.
-#: guix/scripts/system.scm:489
+#: guix/scripts/system.scm:492
 #, scheme-format
 msgid "  label: ~a~%"
 msgstr "  étiquette : ~a~%"
 
-#: guix/scripts/system.scm:490
+#: guix/scripts/system.scm:493
 #, scheme-format
 msgid "  bootloader: ~a~%"
 msgstr "  chargeur de démarrage : ~a~%"
@@ -3163,34 +3487,39 @@ msgstr "  chargeur de démarrage : ~a~%"
 #. root device: label: "my-root"
 #. or just:
 #. root device: /dev/sda3
-#: guix/scripts/system.scm:500
+#: guix/scripts/system.scm:503
 #, scheme-format
 msgid "  root device: ~[UUID: ~a~;label: ~s~;~a~]~%"
 msgstr "  périphérique racine : ~[UUID : ~a~;étiquette : ~s~;~a~]~%"
 
-#: guix/scripts/system.scm:506
+#: guix/scripts/system.scm:509
 #, scheme-format
 msgid "  kernel: ~a~%"
 msgstr "  noyau : ~a~%"
 
+#: guix/scripts/system.scm:514
+#, scheme-format
+msgid "  multiboot: ~a~%"
+msgstr "  multiboot : ~a~%"
+
 #. TRANSLATORS: Here "channel" is the same terminology as used in
 #. "guix describe" and "guix pull --channels".
-#: guix/scripts/system.scm:516
+#: guix/scripts/system.scm:520
 #, scheme-format
 msgid "  channels:~%"
 msgstr "  canaux :~%"
 
-#: guix/scripts/system.scm:519
+#: guix/scripts/system.scm:523
 #, scheme-format
 msgid "  configuration file: ~a~%"
 msgstr "  fichier de configuration : ~a~%"
 
-#: guix/scripts/system.scm:593
+#: guix/scripts/system.scm:596
 #, scheme-format
-msgid "~a: error: device '~a' not found: ~a~%"
-msgstr "~a : erreur : périphérique « ~a » non trouvé : ~a~%"
+msgid "device '~a' not found: ~a~%"
+msgstr "périphérique « ~a » non trouvé : ~a~%"
 
-#: guix/scripts/system.scm:597
+#: guix/scripts/system.scm:599
 #, scheme-format
 msgid ""
 "If '~a' is a file system\n"
@@ -3199,32 +3528,32 @@ msgstr ""
 "Si « ~a » est une étiquette de système de fichiers, écrivez\n"
 "@code{(file-system-label ~s)} dans votre champ @code{device}."
 
-#: guix/scripts/system.scm:605
+#: guix/scripts/system.scm:608
 #, scheme-format
-msgid "~a: error: file system with label '~a' not found~%"
-msgstr "~a : erreur : le système de fichier étiqueté « ~a » est introuvable~%"
+msgid "file system with label '~a' not found~%"
+msgstr "le système de fichier étiqueté « ~a » est introuvable~%"
 
-#: guix/scripts/system.scm:610
+#: guix/scripts/system.scm:614
 #, scheme-format
-msgid "~a: error: file system with UUID '~a' not found~%"
-msgstr "~a : erreur : le système de fichier avec l'UUID « ~a » est introuvable~%"
+msgid "file system with UUID '~a' not found~%"
+msgstr "le système de fichier avec l'UUID « ~a » est introuvable~%"
 
-#: guix/scripts/system.scm:711
+#: guix/scripts/system.scm:721
 #, scheme-format
 msgid "Consider running 'guix pull' before 'reconfigure'.~%"
 msgstr "Envisagez d'exécuter « guix pull » avant « reconfigure ».~%"
 
-#: guix/scripts/system.scm:712
+#: guix/scripts/system.scm:722
 #, scheme-format
 msgid "Failing to do that may downgrade your system!~%"
 msgstr "Si vous ne le faites pas, votre système pourrait être amené à une version inférieure !~%"
 
-#: guix/scripts/system.scm:830
+#: guix/scripts/system.scm:844
 #, scheme-format
 msgid "activating system...~%"
 msgstr "activation du système...~%"
 
-#: guix/scripts/system.scm:841
+#: guix/scripts/system.scm:855
 msgid ""
 "To complete the upgrade, run 'herd restart SERVICE' to stop,\n"
 "upgrade, and restart each service that was not automatically restarted.\n"
@@ -3233,12 +3562,20 @@ msgstr ""
 "mettre à jour et redémarrer tous les services qui n'ont pas été redémarrés\n"
 "automatiquement.\n"
 
-#: guix/scripts/system.scm:846
+#: guix/scripts/system.scm:858
+msgid "Run 'herd status' to view the list of services on your system.\n"
+msgstr "Lancez « herd status » pour visualiser la liste des services de votre système.\n"
+
+#: guix/scripts/system.scm:862
 #, scheme-format
 msgid "initializing operating system under '~a'...~%"
 msgstr "initialisation du système d'exploitation sous « ~a »...~%"
 
-#: guix/scripts/system.scm:890
+#: guix/scripts/system.scm:907
+msgid "The available image types are:\n"
+msgstr "Les types d'image disponibles sont :\n"
+
+#: guix/scripts/system.scm:917
 msgid ""
 "Usage: guix system [OPTION ...] ACTION [ARG ...] [FILE]\n"
 "Build the operating system declared in FILE according to ACTION.\n"
@@ -3248,75 +3585,71 @@ msgstr ""
 "Compiler le système d'exploitation déclaré dans FICHER en suivant ACTION.\n"
 "Certaines ACTIONS prennent en charge des ARGUMENTS supplémentaires.\n"
 
-#: guix/scripts/system.scm:894 guix/scripts/container.scm:29
-msgid "The valid values for ACTION are:\n"
-msgstr "Les valeurs possibles pour ACTION sont :\n"
-
-#: guix/scripts/system.scm:896
+#: guix/scripts/system.scm:923
 msgid "   search           search for existing service types\n"
 msgstr "   search           chercher des types de services existants\n"
 
-#: guix/scripts/system.scm:898
+#: guix/scripts/system.scm:925
 msgid "   reconfigure      switch to a new operating system configuration\n"
 msgstr "   reconfigure      basculer vers une nouvelle configuration du système d'exploitation\n"
 
-#: guix/scripts/system.scm:900
+#: guix/scripts/system.scm:927
 msgid "   roll-back        switch to the previous operating system configuration\n"
 msgstr "   roll-back        basculer vers la configuration du système d'exploitation précédente\n"
 
-#: guix/scripts/system.scm:902
+#: guix/scripts/system.scm:929
 msgid "   describe         describe the current system\n"
 msgstr "   describe         décrit le système actuel\n"
 
-#: guix/scripts/system.scm:904
+#: guix/scripts/system.scm:931
 msgid "   list-generations list the system generations\n"
 msgstr "   list-generations lister les générations du système\n"
 
-#: guix/scripts/system.scm:906
+#: guix/scripts/system.scm:933
 msgid "   switch-generation switch to an existing operating system configuration\n"
 msgstr "   switch-generation basculer vers une configuration du système d'exploitation existante\n"
 
-#: guix/scripts/system.scm:908
+#: guix/scripts/system.scm:935
 msgid "   delete-generations delete old system generations\n"
 msgstr "   delete-generations supprimer les anciennes générations du système\n"
 
-#: guix/scripts/system.scm:910
+#: guix/scripts/system.scm:937
 msgid "   build            build the operating system without installing anything\n"
 msgstr "   build            compiler le système d'exploitation sans rien installer\n"
 
-#: guix/scripts/system.scm:912
+#: guix/scripts/system.scm:939
 msgid "   container        build a container that shares the host's store\n"
 msgstr "   container        compiler un conteneur qui partage le dépôt de l'hôte\n"
 
-#: guix/scripts/system.scm:914
+#: guix/scripts/system.scm:941
 msgid "   vm               build a virtual machine image that shares the host's store\n"
 msgstr "   vm               compiler une machine virtuelle partageant le dépôt de l'hôte\n"
 
-#: guix/scripts/system.scm:916
+#: guix/scripts/system.scm:943
 msgid "   vm-image         build a freestanding virtual machine image\n"
 msgstr "   vm-image         compiler une image autonome de machine virtuelle\n"
 
-#: guix/scripts/system.scm:918
+#: guix/scripts/system.scm:945
 msgid "   disk-image       build a disk image, suitable for a USB stick\n"
 msgstr "   disk-image       compiler une image disque adaptée pour une clé USB\n"
 
-#: guix/scripts/system.scm:920
+#: guix/scripts/system.scm:947
 msgid "   docker-image     build a Docker image\n"
 msgstr "   docker-image     compiler une image Docker\n"
 
-#: guix/scripts/system.scm:922
+#: guix/scripts/system.scm:949
 msgid "   init             initialize a root file system to run GNU\n"
 msgstr "   init             initialiser un système de fichier racine pour lancer GNU.\n"
 
-#: guix/scripts/system.scm:924
+#: guix/scripts/system.scm:951
 msgid "   extension-graph  emit the service extension graph in Dot format\n"
 msgstr "   extension-graph  produire le graphique des extensions de service au format Dot\n"
 
-#: guix/scripts/system.scm:926
+#: guix/scripts/system.scm:953
 msgid "   shepherd-graph   emit the graph of shepherd services in Dot format\n"
 msgstr "   shepherd-graph   produire le graphique des services du shepherd au format Dot\n"
 
-#: guix/scripts/system.scm:930
+#: guix/scripts/system.scm:957
 msgid ""
 "\n"
 "  -d, --derivation       return the derivation of the given system"
@@ -3324,7 +3657,7 @@ msgstr ""
 "\n"
 "  -d, --derivation       retourner les dérivations pour le système donné"
 
-#: guix/scripts/system.scm:932
+#: guix/scripts/system.scm:959
 msgid ""
 "\n"
 "  -e, --expression=EXPR  consider the operating-system EXPR evaluates to\n"
@@ -3334,7 +3667,17 @@ msgstr ""
 "  -e, --expression=EXPR  considère le paquet évalué par EXPR\n"
 "                         au lieu de lire FICHIER, lorsque c'est possible"
 
-#: guix/scripts/system.scm:935
+#: guix/scripts/system.scm:962
+msgid ""
+"\n"
+"      --allow-downgrades for 'reconfigure', allow downgrades to earlier\n"
+"                         channel revisions"
+msgstr ""
+"\n"
+"      --allow-downgrades pour « reconfigure », permet de revenir aux révisions antérieures\n"
+"                         des canaux"
+
+#: guix/scripts/system.scm:965
 msgid ""
 "\n"
 "      --on-error=STRATEGY\n"
@@ -3346,19 +3689,23 @@ msgstr ""
 "                         appliquer la STRATÉGIE (nothing-special, backtrace ou debug)\n"
 "                         quand une erreur survient en lisant le FICHIER"
 
-#: guix/scripts/system.scm:939
+#: guix/scripts/system.scm:969
 msgid ""
 "\n"
-"      --file-system-type=TYPE\n"
-"                         for 'disk-image', produce a root file system of TYPE\n"
-"                         (one of 'ext4', 'iso9660')"
+"      --list-image-types list available image types"
 msgstr ""
 "\n"
-"      --file-system-type=TYPE\n"
-"                         avec « disk-image », produit un système de fichiers racine de TYPE\n"
-"                         (parmis « ext4» et « iso9660 »)"
+"      --list-image-types lister les types d'image disponibles"
 
-#: guix/scripts/system.scm:943
+#: guix/scripts/system.scm:971
+msgid ""
+"\n"
+"  -t, --image-type=TYPE  for 'disk-image', produce an image of TYPE"
+msgstr ""
+"\n"
+"  -t, --image-type=TYPE  pour « disk-image », produit une image de type TYPE"
+
+#: guix/scripts/system.scm:973
 msgid ""
 "\n"
 "      --image-size=SIZE  for 'vm-image', produce an image of SIZE"
@@ -3367,7 +3714,7 @@ msgstr ""
 "      --image-size=TAILLE\n"
 "                         pour « vm-image », produire une image de TAILLE"
 
-#: guix/scripts/system.scm:945
+#: guix/scripts/system.scm:975
 msgid ""
 "\n"
 "      --no-bootloader    for 'init', do not install a bootloader"
@@ -3375,7 +3722,15 @@ msgstr ""
 "\n"
 "      --no-bootloader    pour « init », ne pas installer un chargeur de démarrage"
 
-#: guix/scripts/system.scm:947 guix/scripts/pack.scm:938
+#: guix/scripts/system.scm:977
+msgid ""
+"\n"
+"      --label=LABEL      for 'disk-image', label disk image with LABEL"
+msgstr ""
+"\n"
+"      --label=LABEL      pour « disk-image », utilise l'étiquette LABEL pour l'image disque"
+
+#: guix/scripts/system.scm:979 guix/scripts/pack.scm:1086
 msgid ""
 "\n"
 "      --save-provenance  save provenance information"
@@ -3383,25 +3738,27 @@ msgstr ""
 "\n"
 "      --save-provenance  sauvegarder les informations de provenance"
 
-#: guix/scripts/system.scm:949
+#: guix/scripts/system.scm:981
 msgid ""
 "\n"
-"      --share=SPEC       for 'vm', share host file system according to SPEC"
+"      --share=SPEC       for 'vm' and 'container', share host file system with\n"
+"                         read/write access according to SPEC"
 msgstr ""
 "\n"
-"      --share=SPEC       pour « vm », partager le système de fichiers hôte selon\n"
-"                         SPEC"
+"      --share=SPEC       pour « vm » et « container », partager le système de fichiers\n"
+"                         hôte en lecture-écriture selon SPEC"
 
-#: guix/scripts/system.scm:951
+#: guix/scripts/system.scm:984
 msgid ""
 "\n"
-"      --expose=SPEC      for 'vm', expose host file system according to SPEC"
+"      --expose=SPEC      for 'vm' and 'container', expose host file system\n"
+"                         directory as read-only according to SPEC"
 msgstr ""
 "\n"
-"      --expose=SPEC      pour « vm », exposer le système de fichiers hôte selon\n"
-"                         SPEC"
+"      --expose=SPEC      pour « vm » et « container », exposer le système de fichiers\n"
+"                         hôte en lecture-seule selon SPEC"
 
-#: guix/scripts/system.scm:953
+#: guix/scripts/system.scm:987
 msgid ""
 "\n"
 "  -N, --network          for 'container', allow containers to access the network"
@@ -3409,7 +3766,7 @@ msgstr ""
 "\n"
 "  -N, --network          pour « container », permet l'accès au réseau des conteneurs"
 
-#: guix/scripts/system.scm:955
+#: guix/scripts/system.scm:989
 msgid ""
 "\n"
 "  -r, --root=FILE        for 'vm', 'vm-image', 'disk-image', 'container',\n"
@@ -3422,7 +3779,7 @@ msgstr ""
 "                         sur le résultat et l'enregistrer en tant que racine du\n"
 "                         ramasse-miettes"
 
-#: guix/scripts/system.scm:959
+#: guix/scripts/system.scm:993
 msgid ""
 "\n"
 "      --full-boot        for 'vm', make a full boot sequence"
@@ -3430,7 +3787,7 @@ msgstr ""
 "\n"
 "      --full-boot        pour « vm », accomplir une séquence complète de démarrage"
 
-#: guix/scripts/system.scm:961
+#: guix/scripts/system.scm:995
 msgid ""
 "\n"
 "      --skip-checks      skip file system and initrd module safety checks"
@@ -3439,47 +3796,51 @@ msgstr ""
 "      --skip-checks      ignorer les tests de sécurité des systèmes de fichiers et\n"
 "                         des modules de l'initrd"
 
-#: guix/scripts/system.scm:1078
+#: guix/scripts/system.scm:1132
 #, scheme-format
 msgid "'~a' does not return an operating system~%"
 msgstr "« ~a » ne renvoie pas un système d'exploitation~%"
 
-#: guix/scripts/system.scm:1101
+#: guix/scripts/system.scm:1155
 #, scheme-format
 msgid "both file and expression cannot be specified~%"
 msgstr "on ne peut pas spécifier à la fois un fichier et une expression~%"
 
-#: guix/scripts/system.scm:1108
+#: guix/scripts/system.scm:1162
 #, scheme-format
 msgid "no configuration specified~%"
 msgstr "aucune configuration spécifiée~%"
 
-#: guix/scripts/system.scm:1191
+#: guix/scripts/system.scm:1252
 #, scheme-format
 msgid "no system generation, nothing to describe~%"
 msgstr "pas de génération du système, il n'y a rien à décrire~%"
 
-#: guix/scripts/system.scm:1235
+#: guix/scripts/system.scm:1284
+msgid "build and deploy full operating systems"
+msgstr "construire et déployer des systèmes d'exploitation complets"
+
+#: guix/scripts/system.scm:1298
 #, scheme-format
 msgid "~a: unknown action~%"
 msgstr "~a : action inconnue~%"
 
-#: guix/scripts/system.scm:1251
+#: guix/scripts/system.scm:1314
 #, scheme-format
 msgid "wrong number of arguments for action '~a'~%"
 msgstr "nombre d'arguments incorrect pour l'action « ~a »~%"
 
-#: guix/scripts/system.scm:1256
+#: guix/scripts/system.scm:1319
 #, scheme-format
 msgid "guix system: missing command name~%"
 msgstr "guix system : nom de commande manquant~%"
 
-#: guix/scripts/system.scm:1258
+#: guix/scripts/system.scm:1321
 #, scheme-format
 msgid "Try 'guix system --help' for more information.~%"
 msgstr "Essayez « guix system --help » pour plus d'informations.~%"
 
-#: guix/scripts/system/search.scm:92 guix/ui.scm:1443 guix/ui.scm:1461
+#: guix/scripts/system/search.scm:93 guix/ui.scm:1540 guix/ui.scm:1558
 msgid "unknown"
 msgstr "inconnu"
 
@@ -3513,7 +3874,25 @@ msgstr ""
 "  -c, --checkers=CHECKER1,CHECKER2...\n"
 "                         lancer uniquement les vérificateurs spécifiés"
 
-#: guix/scripts/lint.scm:106
+#: guix/scripts/lint.scm:101
+msgid ""
+"\n"
+"  -x, --exclude=CHECKER1,CHECKER2...\n"
+"                         exclude the specified checkers"
+msgstr ""
+"\n"
+"  -x, --exclude=CHECKER1,CHECKER2...\n"
+"                         exclure les vérificateurs spécifiés"
+
+#: guix/scripts/lint.scm:104
+msgid ""
+"\n"
+"  -n, --no-network       only run checkers that do not access the network"
+msgstr ""
+"\n"
+"  -n, --no-network       ne lancer que les vérificateurs qui n'ont pas besoin du réseau"
+
+#: guix/scripts/lint.scm:112
 msgid ""
 "\n"
 "  -l, --list-checkers    display the list of available lint checkers"
@@ -3521,11 +3900,15 @@ msgstr ""
 "\n"
 "  -l, --list-checkers    afficher la liste des vérificateurs disponibles"
 
-#: guix/scripts/lint.scm:125
+#: guix/scripts/lint.scm:131
 #, scheme-format
 msgid "~a: invalid checker~%"
 msgstr "~a : vérificateur non valide~%"
 
+#: guix/scripts/lint.scm:173
+msgid "validate package definitions"
+msgstr "valider les définitions des paquets"
+
 #: guix/scripts/publish.scm:72
 #, scheme-format
 msgid ""
@@ -3582,12 +3965,22 @@ msgstr ""
 #: guix/scripts/publish.scm:85
 msgid ""
 "\n"
+"      --cache-bypass-threshold=SIZE\n"
+"                         serve store items below SIZE even when not cached"
+msgstr ""
+"\n"
+"      --cache-bypass-threshold=TAILLE\n"
+"                         servir les éléments du dépôt qui font moins de TAILLE même s'ils ne sont pas en cache"
+
+#: guix/scripts/publish.scm:88
+msgid ""
+"\n"
 "      --workers=N        use N workers to bake items"
 msgstr ""
 "\n"
 "      --workers=N        utiliser N travailleurs pour préparer les éléments"
 
-#: guix/scripts/publish.scm:87
+#: guix/scripts/publish.scm:90
 msgid ""
 "\n"
 "      --ttl=TTL          announce narinfos can be cached for TTL seconds"
@@ -3596,7 +3989,7 @@ msgstr ""
 "      --ttl=TTL          les annonces narinfos peuvent être mises en cache\n"
 "                         pendant TTL secondes"
 
-#: guix/scripts/publish.scm:89
+#: guix/scripts/publish.scm:92
 msgid ""
 "\n"
 "      --nar-path=PATH    use PATH as the prefix for nar URLs"
@@ -3604,7 +3997,7 @@ msgstr ""
 "\n"
 "      --nar-path=CHEMIN  utiliser le CHEMIN comme préfixe pour les URL nar"
 
-#: guix/scripts/publish.scm:91
+#: guix/scripts/publish.scm:94
 msgid ""
 "\n"
 "      --public-key=FILE  use FILE as the public key for signatures"
@@ -3613,7 +4006,7 @@ msgstr ""
 "      --public-key=FICHIER\n"
 "                         utiliser le FICHIER comme clé publique pour les signatures"
 
-#: guix/scripts/publish.scm:93
+#: guix/scripts/publish.scm:96
 msgid ""
 "\n"
 "      --private-key=FILE use FILE as the private key for signatures"
@@ -3622,7 +4015,7 @@ msgstr ""
 "      --private-key=FICHIER\n"
 "                         utiliser le FICHIER comme clé privée pour les signatures"
 
-#: guix/scripts/publish.scm:95
+#: guix/scripts/publish.scm:98
 msgid ""
 "\n"
 "  -r, --repl[=PORT]      spawn REPL server on PORT"
@@ -3630,42 +4023,46 @@ msgstr ""
 "\n"
 "  -r, --repl[=PORT]      créer le serveur REPL sur le PORT"
 
-#: guix/scripts/publish.scm:111
+#: guix/scripts/publish.scm:114
 #, scheme-format
 msgid "lookup of host '~a' failed: ~a~%"
 msgstr "la recherche de l'hôte « ~a » a échoué : ~a~%"
 
-#: guix/scripts/publish.scm:159
+#: guix/scripts/publish.scm:168
 #, scheme-format
 msgid "lookup of host '~a' returned nothing"
 msgstr "la recherche de l'hôte « ~a » n'a rien retourné"
 
-#: guix/scripts/publish.scm:182
+#: guix/scripts/publish.scm:191
 #, scheme-format
 msgid "~a: unsupported compression type~%"
 msgstr "~a : type de compression non pris en charge~%"
 
-#: guix/scripts/publish.scm:196
+#: guix/scripts/publish.scm:209
 #, scheme-format
 msgid "~a: invalid duration~%"
 msgstr "~a : durée non valide~%"
 
-#: guix/scripts/publish.scm:1008
+#: guix/scripts/publish.scm:1073
 #, scheme-format
 msgid "user '~a' not found: ~a~%"
 msgstr "utilisateur « ~a » non trouvé : ~a~%"
 
-#: guix/scripts/publish.scm:1059
+#: guix/scripts/publish.scm:1083
+msgid "publish build results over HTTP"
+msgstr "publier les résultats des constructions sur HTTP"
+
+#: guix/scripts/publish.scm:1125
 #, scheme-format
 msgid "server running as root; consider using the '--user' option!~%"
 msgstr "le serveur tourne en tant que root. Envisagez d'utiliser l'option « --user » !~%"
 
-#: guix/scripts/publish.scm:1064
+#: guix/scripts/publish.scm:1133
 #, scheme-format
 msgid "publishing ~a on ~a, port ~d~%"
 msgstr "diffusion de ~a sur ~a, port ~d~%"
 
-#: guix/scripts/publish.scm:1070
+#: guix/scripts/publish.scm:1139
 #, scheme-format
 msgid "using '~a' compression method, level ~a~%"
 msgstr "utilisation de la méthode de compression « ~a », au niveau ~a~%"
@@ -3678,12 +4075,16 @@ msgstr ""
 "Utilisation : guix edit PAQUET...\n"
 "Démarrer $VISUAL ou $EDITOR pour éditer la définition de PAQUET...\n"
 
-#: guix/scripts/edit.scm:69
+#: guix/scripts/edit.scm:68
 #, scheme-format
 msgid "file '~a' not found in search path ~s~%"
 msgstr "fichier « ~a » pas trouvé dans le chemin de recherche ~s~%"
 
-#: guix/scripts/edit.scm:104
+#: guix/scripts/edit.scm:83
+msgid "view and edit package definitions"
+msgstr "voir et modifier des définitions de paquets"
+
+#: guix/scripts/edit.scm:106
 #, scheme-format
 msgid "failed to launch '~a': ~a~%"
 msgstr "impossible de démarrer « ~a » : ~a~%"
@@ -3719,11 +4120,11 @@ msgstr "profil du dépôt"
 
 #: guix/scripts/size.scm:233
 msgid ""
-"Usage: guix size [OPTION]... PACKAGE\n"
-"Report the size of PACKAGE and its dependencies.\n"
+"Usage: guix size [OPTION]... PACKAGE|STORE-ITEM\n"
+"Report the size of the PACKAGE or STORE-ITEM, with its dependencies.\n"
 msgstr ""
-"Utilisation : guix size [OPTION]... PAQUET\n"
-"Rapporter la taille du PAQUET et de ses dépendances.\n"
+"Utilisation : guix size [OPTION]... PAQUET|ÉLÉMENT-DU-DÉPÔT\n"
+"Rapporter la taille du PAQUET ou de l'ÉLÉMENT-DU-DÉPÔT et de ses dépendances.\n"
 
 #: guix/scripts/size.scm:238
 msgid ""
@@ -3755,7 +4156,11 @@ msgstr ""
 msgid "~a: invalid sorting key~%"
 msgstr "~a : clef de tri invalide~%"
 
-#: guix/scripts/size.scm:315
+#: guix/scripts/size.scm:303
+msgid "profile the on-disk size of packages"
+msgstr "mesurer la taille sur le disque des paquets"
+
+#: guix/scripts/size.scm:318
 msgid "missing store item argument\n"
 msgstr "argument d'élément de stockage manquant\n"
 
@@ -3796,48 +4201,53 @@ msgstr "le DAG des dérivations"
 msgid "unsupported argument for derivation graph"
 msgstr "argument non pris en charge pour le graphe de dérivation"
 
-#: guix/scripts/graph.scm:325
+#: guix/scripts/graph.scm:333
 msgid "unsupported argument for this type of graph"
 msgstr "argument non pris en charge pour ce type de graphe"
 
-#: guix/scripts/graph.scm:338
+#: guix/scripts/graph.scm:347
 #, scheme-format
 msgid "references for '~a' are not known~%"
 msgstr "les références pour « ~a » sont inconnues~%"
 
-#: guix/scripts/graph.scm:345
+#: guix/scripts/graph.scm:354
 msgid "the DAG of run-time dependencies (store references)"
 msgstr "le DAG des dépendances à l'exécution (stockage des références)"
 
-#: guix/scripts/graph.scm:361
+#: guix/scripts/graph.scm:370
 msgid "the DAG of referrers in the store"
 msgstr "le graphe orienté acyclique (DAG) des référents dans le stockage"
 
-#: guix/scripts/graph.scm:391
+#: guix/scripts/graph.scm:400
 msgid "the graph of package modules"
 msgstr "le graphe des modules de paquets"
 
-#: guix/scripts/graph.scm:420
+#: guix/scripts/graph.scm:429
 #, scheme-format
 msgid "~a: unknown node type~%"
 msgstr "~a : type de nœud inconnu~%"
 
-#: guix/scripts/graph.scm:427
+#: guix/scripts/graph.scm:436
 #, scheme-format
 msgid "~a: unknown backend~%"
 msgstr "~a : moteur de graphe inconnu~%"
 
-#: guix/scripts/graph.scm:431
+#: guix/scripts/graph.scm:440
 msgid "The available node types are:\n"
 msgstr "Les types de nœuds disponibles sont :\n"
 
-#: guix/scripts/graph.scm:441
+#: guix/scripts/graph.scm:450
 msgid "The available backend types are:\n"
 msgstr "Les types de moteurs de graphes disponibles sont :\n"
 
+#: guix/scripts/graph.scm:477
+#, scheme-format
+msgid "no path from '~a' to '~a'~%"
+msgstr "pas de chemin de « ~a » à « ~a »~%"
+
 #. TRANSLATORS: Here 'dot' is the name of a program; it must not be
 #. translated.
-#: guix/scripts/graph.scm:494
+#: guix/scripts/graph.scm:529
 msgid ""
 "Usage: guix graph PACKAGE...\n"
 "Emit a representation of the dependency graph of PACKAGE...\n"
@@ -3845,7 +4255,7 @@ msgstr ""
 "Utilisation : guix graph PAQUET...\n"
 "Produit une représentation du graphe des dépendances de PAQUET...\n"
 
-#: guix/scripts/graph.scm:496
+#: guix/scripts/graph.scm:531
 msgid ""
 "\n"
 "  -b, --backend=TYPE     produce a graph with the given backend TYPE"
@@ -3853,7 +4263,7 @@ msgstr ""
 "\n"
 "  -b, --backend=TYPE     produire un graphe avec le TYPE de moteur donné"
 
-#: guix/scripts/graph.scm:498
+#: guix/scripts/graph.scm:533
 msgid ""
 "\n"
 "      --list-backends    list the available graph backends"
@@ -3861,7 +4271,7 @@ msgstr ""
 "\n"
 "      --list-backends    lister les types de moteurs de graphes disponibles"
 
-#: guix/scripts/graph.scm:500
+#: guix/scripts/graph.scm:535
 msgid ""
 "\n"
 "  -t, --type=TYPE        represent nodes of the given TYPE"
@@ -3869,7 +4279,7 @@ msgstr ""
 "\n"
 "  -t, --type=TYPE        représenter les nœuds du TYPE donné"
 
-#: guix/scripts/graph.scm:502
+#: guix/scripts/graph.scm:537
 msgid ""
 "\n"
 "      --list-types       list the available graph types"
@@ -3877,7 +4287,15 @@ msgstr ""
 "\n"
 "      --list-types       lister les types de graphes disponibles"
 
-#: guix/scripts/graph.scm:504 guix/scripts/pack.scm:923
+#: guix/scripts/graph.scm:539
+msgid ""
+"\n"
+"      --path             display the shortest path between the given nodes"
+msgstr ""
+"\n"
+"      --path             affiche le plus court chemin entre les nœuds donnés"
+
+#: guix/scripts/graph.scm:541 guix/scripts/pack.scm:1071
 msgid ""
 "\n"
 "  -e, --expression=EXPR  consider the package EXPR evaluates to"
@@ -3885,7 +4303,7 @@ msgstr ""
 "\n"
 "  -e, --expression=EXPR  considère le paquet évalué par EXPR"
 
-#: guix/scripts/graph.scm:506
+#: guix/scripts/graph.scm:543
 msgid ""
 "\n"
 "  -s, --system=SYSTEM    consider the graph for SYSTEM--e.g., \"i686-linux\""
@@ -3893,6 +4311,15 @@ msgstr ""
 "\n"
 "  -s, --system=SYSTÈME   considérer le graphe pour le SYSTÈME, par exemple « i686-linux »"
 
+#: guix/scripts/graph.scm:568
+msgid "view and query package dependency graphs"
+msgstr "visualiser et exécuter des requêtes sur des graphes de dépendances de paquets"
+
+#: guix/scripts/graph.scm:604
+#, scheme-format
+msgid "'--path' option requires exactly two nodes (given ~a)~%"
+msgstr "l'option « --path » a besoin d'exactement deux nœuds (~a donné)~%"
+
 #: guix/scripts/challenge.scm:301
 #, scheme-format
 msgid "  differing file:~%"
@@ -3972,35 +4399,39 @@ msgstr ""
 #: guix/scripts/challenge.scm:418
 msgid ""
 "\n"
-"      -v, --verbose      show details about successful comparisons"
+"  -v, --verbose          show details about successful comparisons"
 msgstr ""
 "\n"
-"      -v, --verbose      montrer les détails des comparaisons réussies"
+"  -v, --verbose          montre les détails des comparaisons réussies"
 
 #: guix/scripts/challenge.scm:420
 msgid ""
 "\n"
-"          --diff=MODE    show differences according to MODE"
+"      --diff=MODE        show differences according to MODE"
 msgstr ""
 "\n"
-"          --diff=MODE    montre les différences suivant MODE"
+"      --diff=MODE        montre les différences suivant MODE"
 
 #: guix/scripts/challenge.scm:449
 #, scheme-format
 msgid "~a: unknown diff mode~%"
 msgstr "~a : mode de différence inconnu~%"
 
-#: guix/scripts/copy.scm:60
+#: guix/scripts/challenge.scm:480
+msgid "challenge substitute servers, comparing their binaries"
+msgstr "défier les serveurs de substituts en comparant leurs binaires"
+
+#: guix/scripts/copy.scm:61
 #, scheme-format
 msgid "~a: invalid TCP port number~%"
 msgstr "~a : numéro de port TCP invalide~%"
 
-#: guix/scripts/copy.scm:62
+#: guix/scripts/copy.scm:63
 #, scheme-format
 msgid "~a: invalid SSH specification~%"
 msgstr "~a : spécification SSH invalide~%"
 
-#: guix/scripts/copy.scm:105
+#: guix/scripts/copy.scm:109
 msgid ""
 "Usage: guix copy [OPTION]... ITEMS...\n"
 "Copy ITEMS to or from the specified host over SSH.\n"
@@ -4008,7 +4439,7 @@ msgstr ""
 "Usage: guix copy [OPTION]... ÉLÉMENTS...\n"
 "Copier les ÉLÉMENTS vers ou depuis l'hôte spécifié en SSH.\n"
 
-#: guix/scripts/copy.scm:107
+#: guix/scripts/copy.scm:111
 msgid ""
 "\n"
 "      --to=HOST          send ITEMS to HOST"
@@ -4016,7 +4447,7 @@ msgstr ""
 "\n"
 "      --to=HÔTE          envoyer les ÉLÉMENTS vers l'HÔTE"
 
-#: guix/scripts/copy.scm:109
+#: guix/scripts/copy.scm:113
 msgid ""
 "\n"
 "      --from=HOST        receive ITEMS from HOST"
@@ -4024,22 +4455,26 @@ msgstr ""
 "\n"
 "      --from=HÔTE        recevoir les ÉLÉMENTS depuis l'HÔTE"
 
-#: guix/scripts/copy.scm:183
+#: guix/scripts/copy.scm:175
+msgid "copy store items remotely over SSH"
+msgstr "copier des éléments du dépôt par SSH"
+
+#: guix/scripts/copy.scm:192
 #, scheme-format
 msgid "use '--to' or '--from'~%"
 msgstr "utilisez « --to » ou « --from »~%"
 
-#: guix/scripts/pack.scm:98
+#: guix/scripts/pack.scm:106
 #, scheme-format
 msgid "~a: compressor not found~%"
 msgstr "~a : compresseur introuvable~%"
 
-#: guix/scripts/pack.scm:283
+#: guix/scripts/pack.scm:313
 #, scheme-format
 msgid "entry point not supported in the '~a' format~%"
 msgstr "point d'entré non pris en charge dans le format « ~a »~%"
 
-#: guix/scripts/pack.scm:661
+#: guix/scripts/pack.scm:694
 #, scheme-format
 msgid ""
 "cross-compilation not implemented here;\n"
@@ -4048,11 +4483,11 @@ msgstr ""
 "la compilation croisée n'est pas implémentée ici ;\n"
 "envoyez un courriel à « ~a »~%"
 
-#: guix/scripts/pack.scm:804
+#: guix/scripts/pack.scm:954
 msgid "The supported formats for 'guix pack' are:"
 msgstr "Les formats pris en charge par « guix pack » sont :"
 
-#: guix/scripts/pack.scm:806
+#: guix/scripts/pack.scm:956
 msgid ""
 "\n"
 "  tarball       Self-contained tarball, ready to run on another machine"
@@ -4060,7 +4495,7 @@ msgstr ""
 "\n"
 "  tarball       Archive auto-contenue, prête à être lancée sur d'autres machines"
 
-#: guix/scripts/pack.scm:808
+#: guix/scripts/pack.scm:958
 msgid ""
 "\n"
 "  squashfs      Squashfs image suitable for Singularity"
@@ -4068,7 +4503,7 @@ msgstr ""
 "\n"
 "  squashfs      Image Squashfs compatible avec Singularity"
 
-#: guix/scripts/pack.scm:810
+#: guix/scripts/pack.scm:960
 msgid ""
 "\n"
 "  docker        Tarball ready for 'docker load'"
@@ -4076,17 +4511,17 @@ msgstr ""
 "\n"
 "  docker        Archive prête à être utilisée avec « docker load »"
 
-#: guix/scripts/pack.scm:879
+#: guix/scripts/pack.scm:1029
 #, scheme-format
 msgid "~a: invalid symlink specification~%"
 msgstr "~a : spécification de lien symbolique invalide~%"
 
-#: guix/scripts/pack.scm:893
+#: guix/scripts/pack.scm:1043
 #, scheme-format
 msgid "~a: unsupported profile name~%"
 msgstr "~a : nom de profil non pris en charge~%"
 
-#: guix/scripts/pack.scm:911
+#: guix/scripts/pack.scm:1061
 msgid ""
 "Usage: guix pack [OPTION]... PACKAGE...\n"
 "Create a bundle of PACKAGE.\n"
@@ -4094,7 +4529,7 @@ msgstr ""
 "Utilisation : guix pack [OPTION]... PAQUET...\n"
 "Créer un lot applicatif de PAQUET.\n"
 
-#: guix/scripts/pack.scm:917
+#: guix/scripts/pack.scm:1065
 msgid ""
 "\n"
 "  -f, --format=FORMAT    build a pack in the given FORMAT"
@@ -4102,7 +4537,7 @@ msgstr ""
 "\n"
 "  -f, --format=FORMAT    créer un lot applicatif dans le FORMAT donné"
 
-#: guix/scripts/pack.scm:919
+#: guix/scripts/pack.scm:1067
 msgid ""
 "\n"
 "      --list-formats     list the formats available"
@@ -4110,7 +4545,7 @@ msgstr ""
 "\n"
 "      --list-formats     lister les formats disponibles"
 
-#: guix/scripts/pack.scm:921
+#: guix/scripts/pack.scm:1069
 msgid ""
 "\n"
 "  -R, --relocatable      produce relocatable executables"
@@ -4118,7 +4553,7 @@ msgstr ""
 "\n"
 "  -R, --relocatable      produire des exécutables repositionnables"
 
-#: guix/scripts/pack.scm:929
+#: guix/scripts/pack.scm:1077
 msgid ""
 "\n"
 "  -C, --compression=TOOL compress using TOOL--e.g., \"lzip\""
@@ -4127,7 +4562,7 @@ msgstr ""
 "  -C, --compression=OUTIL\n"
 "                         compresser en utilisant l'OUTIL, par ex, « lzip »"
 
-#: guix/scripts/pack.scm:931
+#: guix/scripts/pack.scm:1079
 msgid ""
 "\n"
 "  -S, --symlink=SPEC     create symlinks to the profile according to SPEC"
@@ -4135,7 +4570,7 @@ msgstr ""
 "\n"
 "  -S, --symlink=SPEC     créer des liens symboliques vers le profil selon la SPEC"
 
-#: guix/scripts/pack.scm:933
+#: guix/scripts/pack.scm:1081
 msgid ""
 "\n"
 "  -m, --manifest=FILE    create a pack with the manifest from FILE"
@@ -4143,7 +4578,7 @@ msgstr ""
 "\n"
 "  -m, --manifest=FICHIER créer un lot avec le manifeste dans FICHIER"
 
-#: guix/scripts/pack.scm:935
+#: guix/scripts/pack.scm:1083
 msgid ""
 "\n"
 "      --entry-point=PROGRAM\n"
@@ -4153,7 +4588,7 @@ msgstr ""
 "      --entry-point=PROGRAM\n"
 "                         utiliser PROGRAM comme point d'entré du lot applicatif"
 
-#: guix/scripts/pack.scm:940
+#: guix/scripts/pack.scm:1088
 msgid ""
 "\n"
 "      --localstatedir    include /var/guix in the resulting pack"
@@ -4161,7 +4596,7 @@ msgstr ""
 "\n"
 "      --localstatedir    inclure /var/guix dans le lot résultant"
 
-#: guix/scripts/pack.scm:942
+#: guix/scripts/pack.scm:1090
 msgid ""
 "\n"
 "      --profile-name=NAME\n"
@@ -4170,7 +4605,7 @@ msgstr ""
 "\n"
 "      --profile-name=NOM rempli /var/guix/profiles/.../NOM"
 
-#: guix/scripts/pack.scm:948
+#: guix/scripts/pack.scm:1096
 msgid ""
 "\n"
 "  -d, --derivation       return the derivation of the pack"
@@ -4178,7 +4613,7 @@ msgstr ""
 "\n"
 "  -d, --derivation       renvoyer la dérivation du lot applicatif"
 
-#: guix/scripts/pack.scm:952
+#: guix/scripts/pack.scm:1100
 msgid ""
 "\n"
 "      --bootstrap        use the bootstrap binaries to build the pack"
@@ -4186,32 +4621,36 @@ msgstr ""
 "\n"
 "      --bootstrap        utiliser les programmes d'amorçage pour compiler le lot"
 
-#: guix/scripts/pack.scm:1003
+#: guix/scripts/pack.scm:1117
+msgid "create application bundles"
+msgstr "créer des lots applicatifs"
+
+#: guix/scripts/pack.scm:1154
 #, scheme-format
 msgid "could not determine provenance of package ~a~%"
 msgstr "impossible de déterminer la provenance du paquet ~a~%"
 
-#: guix/scripts/pack.scm:1012
+#: guix/scripts/pack.scm:1168
 #, scheme-format
 msgid "both a manifest and a package list were given~%"
 msgstr "vous avez donné à la fois un manifeste et une liste de paquets~%"
 
-#: guix/scripts/pack.scm:1069
+#: guix/scripts/pack.scm:1227
 #, scheme-format
 msgid "~a: unknown pack format~%"
 msgstr "~a : format de lot inconnu~%"
 
-#: guix/scripts/pack.scm:1079
+#: guix/scripts/pack.scm:1251
 #, scheme-format
 msgid "no packages specified; building an empty pack~%"
 msgstr "aucun paquet spécifié, construction d'un lot vide~%"
 
-#: guix/scripts/pack.scm:1083
+#: guix/scripts/pack.scm:1255
 #, scheme-format
 msgid "Singularity requires you to provide a shell~%"
 msgstr "Singularity a besoin que vous fournissiez un shell~%"
 
-#: guix/scripts/pack.scm:1084
+#: guix/scripts/pack.scm:1256
 msgid "Add @code{bash} or @code{bash-minimal} to your package list."
 msgstr "Ajoutez @code{bash} ou @code{bash-minimal} à la liste des paquets."
 
@@ -4224,8 +4663,8 @@ msgid "looking for ~h store items on ~a...~%"
 msgstr "recherche de ~h éléments du dépôt sur ~a...~%"
 
 #: guix/scripts/weather.scm:193
-msgid "  ~2,1f% substitutes available (~h out of ~h)~%"
-msgstr "  ~2,1f % des substituts sont disponibles (~h sur ~h)~%"
+msgid "  ~,1f% substitutes available (~h out of ~h)~%"
+msgstr "  ~,1f % des substituts sont disponibles (~h sur ~h)~%"
 
 #: guix/scripts/weather.scm:199
 #, scheme-format
@@ -4355,26 +4794,34 @@ msgstr ""
 msgid "~a: invalid URL~%"
 msgstr "~a : URL invalide~%"
 
-#: guix/scripts/weather.scm:446
+#: guix/scripts/weather.scm:447
 #, scheme-format
 msgid "The following ~a package is missing from '~a' for '~a':~%"
 msgid_plural "The following ~a packages are missing from '~a' for '~a':~%"
 msgstr[0] "Le (~a) paquet suivant n'est pas sur « ~a » pour « ~a » :~%"
 msgstr[1] "Les ~a paquets suivants ne sont pas sur « ~a » pour « ~a » :~%"
 
-#: guix/scripts/weather.scm:452
+#: guix/scripts/weather.scm:453
 #, scheme-format
 msgid "~a package is missing from '~a' for '~a':~%"
 msgid_plural "~a packages are missing from '~a' for '~a', among which:~%"
 msgstr[0] "~a paquet n'est pas sur « ~a » pour « ~a » :~%"
 msgstr[1] "~a paquets ne sont pas sur « ~a » pour « ~a », parmi lesquels :~%"
 
-#: guix/scripts/describe.scm:50
+#: guix/scripts/weather.scm:499
+msgid "report on the availability of pre-built package binaries"
+msgstr "rapporter la disponibilité des paquets binaires pré-construits"
+
+#: guix/scripts/describe.scm:52
+msgid "The available formats are:\n"
+msgstr "Les formats disponibles sont :\n"
+
+#: guix/scripts/describe.scm:63
 #, scheme-format
 msgid "~a: unsupported output format~%"
 msgstr "~a : format de sortie non pris en charge~%"
 
-#: guix/scripts/describe.scm:69
+#: guix/scripts/describe.scm:86
 msgid ""
 "Usage: guix describe [OPTION]...\n"
 "Display information about the channels currently in use.\n"
@@ -4382,7 +4829,7 @@ msgstr ""
 "Utilisation : guix describe [OPTION]...\n"
 "Affiche des informations sur les canaux actuellement utilisés.\n"
 
-#: guix/scripts/describe.scm:71
+#: guix/scripts/describe.scm:88
 msgid ""
 "\n"
 "  -f, --format=FORMAT    display information in the given FORMAT"
@@ -4390,7 +4837,15 @@ msgstr ""
 "\n"
 "  -f, --format=FORMAT    montrer les informations dans le FORMAT donné"
 
-#: guix/scripts/describe.scm:73
+#: guix/scripts/describe.scm:90
+msgid ""
+"\n"
+"      --list-formats     display available formats"
+msgstr ""
+"\n"
+"      --list-formats     affiche les formats disponibles"
+
+#: guix/scripts/describe.scm:92
 msgid ""
 "\n"
 "  -p, --profile=PROFILE  display information about PROFILE"
@@ -4398,22 +4853,22 @@ msgstr ""
 "\n"
 "  -p, --profile=PROFIL   afficher les informations sur le PROFIL"
 
-#: guix/scripts/describe.scm:92
+#: guix/scripts/describe.scm:111
 #, scheme-format
 msgid "~%;; warning: GUIX_PACKAGE_PATH=\"~a\"~%"
 msgstr "~%;; attention : GUIX_PACKAGE_PATH=\"~a\"~%"
 
-#: guix/scripts/describe.scm:95
+#: guix/scripts/describe.scm:114
 #, scheme-format
 msgid "'GUIX_PACKAGE_PATH' is set but it is not captured~%"
 msgstr "« GUIX_PACKAGE_PATH » est renseigné mais n'est pas utilisé~%"
 
-#: guix/scripts/describe.scm:122
+#: guix/scripts/describe.scm:170
 #, scheme-format
 msgid "failed to determine origin~%"
 msgstr "échec à la détection de l'origine~%"
 
-#: guix/scripts/describe.scm:123
+#: guix/scripts/describe.scm:171
 #, scheme-format
 msgid ""
 "Perhaps this\n"
@@ -4424,41 +4879,45 @@ msgstr ""
 "@command{guix} n'a pas été obtenue avec @command{guix pull} ? Son numéro de version\n"
 "est ~a.~%"
 
-#: guix/scripts/describe.scm:133
+#: guix/scripts/describe.scm:181
 #, scheme-format
 msgid "Git checkout:~%"
 msgstr "Dépôt git :~%"
 
-#: guix/scripts/describe.scm:134
+#: guix/scripts/describe.scm:182
 #, scheme-format
 msgid "  repository: ~a~%"
 msgstr "  URL du dépôt : ~a~%"
 
-#: guix/scripts/describe.scm:135
+#: guix/scripts/describe.scm:183
 #, scheme-format
 msgid "  branch: ~a~%"
 msgstr "  branche: ~a~%"
 
-#: guix/scripts/describe.scm:136
+#: guix/scripts/describe.scm:184
 #, scheme-format
 msgid "  commit: ~a~%"
 msgstr "  commit : ~a~%"
 
-#: guix/scripts/describe.scm:198
+#: guix/scripts/describe.scm:250
 #, scheme-format
 msgid "    repository URL: ~a~%"
 msgstr "    URL du dépôt : ~a~%"
 
-#: guix/scripts/describe.scm:200
+#: guix/scripts/describe.scm:252
 #, scheme-format
 msgid "    branch: ~a~%"
 msgstr "    branche: ~a~%"
 
-#: guix/scripts/describe.scm:201
+#: guix/scripts/describe.scm:253
 #, scheme-format
 msgid "    commit: ~a~%"
 msgstr "    commit : ~a~%"
 
+#: guix/scripts/describe.scm:308
+msgid "describe the channel revisions currently used"
+msgstr "décrire les révisions des canaux actuellement utilisés"
+
 #: guix/scripts/processes.scm:211
 msgid ""
 "Usage: guix processes\n"
@@ -4467,6 +4926,10 @@ msgstr ""
 "Utilisation : guix processes\n"
 "Liste les sessions Guix actuelles et leurs processus."
 
+#: guix/scripts/processes.scm:228
+msgid "list currently running sessions"
+msgstr "lister les sessions actuellement en cours"
+
 #: guix/scripts/deploy.scm:49
 msgid ""
 "Usage: guix deploy [OPTION] FILE...\n"
@@ -4502,23 +4965,43 @@ msgstr "Retour en arrière de ~a...~%"
 msgid "successfully deployed ~a~%"
 msgstr "déploiement de ~a réussi~%"
 
-#: guix/gnu-maintenance.scm:647
+#: guix/scripts/deploy.scm:140
+msgid "deploy operating systems on a set of machines"
+msgstr "déployer des systèmes d'exploitation sur un ensemble de machines"
+
+#: guix/gexp.scm:425
+#, scheme-format
+msgid "resolving '~a' relative to current directory~%"
+msgstr "résolution de « ~a » à partir du répertoire actuel~%"
+
+#: guix/gexp.scm:808
+#, scheme-format
+msgid "importing module~{ ~a~} from the host~%"
+msgid_plural "importing modules~{ ~a~} from the host~%"
+msgstr[0] "import du module~{ ~a~} à partir de l'hôte~%"
+msgstr[1] "import des modules~{ ~a~} à partir de l'hôte~%"
+
+#: guix/gnu-maintenance.scm:699
 msgid "Updater for GNU packages"
 msgstr "Logiciel de mise à jour des paquets GNU"
 
-#: guix/gnu-maintenance.scm:656
+#: guix/gnu-maintenance.scm:708
 msgid "Updater for GNU packages only available via FTP"
 msgstr "Logiciel de mise à jour des paquets GNU disponibles uniquement par FTP"
 
-#: guix/gnu-maintenance.scm:665
+#: guix/gnu-maintenance.scm:717
+msgid "Updater for packages hosted on savannah.gnu.org"
+msgstr "Logiciel de mise à jour des paquets hébergés sur savannah.gnu.org"
+
+#: guix/gnu-maintenance.scm:724
 msgid "Updater for X.org packages"
 msgstr "Logiciel de mise à jour des paquets X.org"
 
-#: guix/gnu-maintenance.scm:672
+#: guix/gnu-maintenance.scm:731
 msgid "Updater for packages hosted on kernel.org"
 msgstr "Logiciel de mise à jour des paquets hébergés sur kernel.org"
 
-#: guix/scripts/container.scm:26
+#: guix/scripts/container.scm:27
 msgid ""
 "Usage: guix container ACTION ARGS...\n"
 "Build and manipulate Linux containers.\n"
@@ -4526,16 +5009,20 @@ msgstr ""
 "Utilisation : guix container ACTION ARGS...\n"
 "Compile et manipule des containers Linux.\n"
 
-#: guix/scripts/container.scm:31
+#: guix/scripts/container.scm:32
 msgid "   exec            execute a command inside of an existing container\n"
 msgstr "   exec            exécuter une commande dans un container existant\n"
 
-#: guix/scripts/container.scm:54
+#: guix/scripts/container.scm:52
+msgid "run code in containers created by 'guix environment -C'"
+msgstr "lancer le code dans des conteneurs créés par « guix environment -C »"
+
+#: guix/scripts/container.scm:58
 #, scheme-format
 msgid "guix container: missing action~%"
 msgstr "guix container : action manquante~%"
 
-#: guix/scripts/container.scm:64
+#: guix/scripts/container.scm:68
 #, scheme-format
 msgid "guix container: invalid action~%"
 msgstr "guix container : action invalide~%"
@@ -4573,54 +5060,174 @@ msgstr "aucun processus ~d~%"
 msgid "exec failed with status ~d~%"
 msgstr "exec a échoué avec le statut ~d~%"
 
-#: guix/upstream.scm:328
+#: guix/transformations.scm:174 guix/transformations.scm:242
+#, scheme-format
+msgid "invalid replacement specification: ~s"
+msgstr "spécification de remplacement invalide : ~s"
+
+#: guix/transformations.scm:223
+#, scheme-format
+msgid "the source of ~a is not a Git reference"
+msgstr "la source de ~a n'est pas une référence Git"
+
+#: guix/transformations.scm:315
+#, scheme-format
+msgid "~a: invalid Git URL replacement specification"
+msgstr "~a : spécification d'URL Git de remplacement invalide"
+
+#: guix/transformations.scm:393
+#, scheme-format
+msgid "~a: invalid toolchain replacement specification"
+msgstr "~a : spécification de remplacement de la chaine d'outils invalide"
+
+#: guix/transformations.scm:514
+msgid ""
+"\n"
+"      --with-source=[PACKAGE=]SOURCE\n"
+"                         use SOURCE when building the corresponding package"
+msgstr ""
+"\n"
+"      --with-source=[PAQUET=]SOURCE\n"
+"                         utiliser la SOURCE donnée pour compiler le paquet correspondant"
+
+#: guix/transformations.scm:517
+msgid ""
+"\n"
+"      --with-input=PACKAGE=REPLACEMENT\n"
+"                         replace dependency PACKAGE by REPLACEMENT"
+msgstr ""
+"\n"
+"      --with-input=PAQUET=REMPLACEMENT\n"
+"                         remplacer le paquet de dépendance PAQUET par REMPLACEMENT"
+
+#: guix/transformations.scm:520
+msgid ""
+"\n"
+"      --with-graft=PACKAGE=REPLACEMENT\n"
+"                         graft REPLACEMENT on packages that refer to PACKAGE"
+msgstr ""
+"\n"
+"      --with-graft=PAQUET=REMPLACEMENT\n"
+"                         greffer le paquet REMPLACEMENT sur les paquets qui font référence à PAQUET"
+
+#: guix/transformations.scm:523
+msgid ""
+"\n"
+"      --with-branch=PACKAGE=BRANCH\n"
+"                         build PACKAGE from the latest commit of BRANCH"
+msgstr ""
+"\n"
+"      --with-branch=PAQUET=BRANCHE\n"
+"                         construit le PAQUET à partir du dernier commit de la BRANCHE"
+
+#: guix/transformations.scm:526
+msgid ""
+"\n"
+"      --with-commit=PACKAGE=COMMIT\n"
+"                         build PACKAGE from COMMIT"
+msgstr ""
+"\n"
+"      --with-commit=PAQUET=COMMIT\n"
+"                         construit le PAQUET à partir du COMMIT"
+
+#: guix/transformations.scm:529
+msgid ""
+"\n"
+"      --with-git-url=PACKAGE=URL\n"
+"                         build PACKAGE from the repository at URL"
+msgstr ""
+"\n"
+"      --with-git-url=PAQUET=URL\n"
+"                         construit le PAQUET à partir de l'URL du dépôt"
+
+#: guix/transformations.scm:532
+msgid ""
+"\n"
+"      --with-c-toolchain=PACKAGE=TOOLCHAIN\n"
+"                         build PACKAGE and its dependents with TOOLCHAIN"
+msgstr ""
+"\n"
+"      --with-c-toolchain=PAQUET=CHAÎNE D'OUTILS\n"
+"                         construit le PAQUET et ses dépendances avec CHAÎNE D'OUTILS"
+
+#: guix/transformations.scm:535
+msgid ""
+"\n"
+"      --with-debug-info=PACKAGE\n"
+"                         build PACKAGE and preserve its debug info"
+msgstr ""
+"\n"
+"      --with-debug-info=PAQUET\n"
+"                         construit le PAQUET en préservant ses informations de débogage"
+
+#: guix/transformations.scm:538
+msgid ""
+"\n"
+"      --without-tests=PACKAGE\n"
+"                         build PACKAGE without running its tests"
+msgstr ""
+"\n"
+"      --without-test=PAQUET\n"
+"                         construit le PAQUET sans lancer ses tests"
+
+#: guix/transformations.scm:589
+#, scheme-format
+msgid "transformation '~a' had no effect on ~a~%"
+msgstr "la transformation « ~a » n'a pas d'effet sur ~a~%"
+
+#: guix/upstream.scm:337
+#, scheme-format
+msgid "failed to download detached signature from ~a~%"
+msgstr "échec lors du téléchargement de la signature détachée depuis ~a~%"
+
+#: guix/upstream.scm:341
 #, scheme-format
 msgid "signature verification failed for '~a' (key: ~a)~%"
 msgstr "la vérification de la signature a échoué pour « ~a » (clef : ~a)~%"
 
-#: guix/upstream.scm:332
+#: guix/upstream.scm:345
 #, scheme-format
 msgid "missing public key ~a for '~a'~%"
 msgstr "impossible de trouver la clé publique ~a correspondant à « ~a »~%"
 
-#: guix/upstream.scm:408
+#: guix/upstream.scm:421
 #, scheme-format
 msgid "cannot download for this method: ~s"
 msgstr "impossible de télécharger pour cette méthode : ~s"
 
-#: guix/upstream.scm:471
+#: guix/upstream.scm:486
 #, scheme-format
 msgid "~a: could not locate source file"
 msgstr "~a : le fichier source est introuvable"
 
-#: guix/upstream.scm:476
+#: guix/upstream.scm:490
 #, scheme-format
-msgid "~a: ~a: no `version' field in source; skipping~%"
-msgstr "~a : ~a : aucun champ « version » dans la source ; ignoré~%"
+msgid "~a: no `version' field in source; skipping~%"
+msgstr "~a : aucun champ « version » dans la source ; ignoré~%"
 
-#: guix/ui.scm:156
+#: guix/ui.scm:161
 #, scheme-format
 msgid "error: ~a: unbound variable"
 msgstr "erreur : ~a : variable non liée"
 
-#: guix/ui.scm:256
+#: guix/ui.scm:261
 msgid "entering debugger; type ',bt' for a backtrace\n"
 msgstr "entrée dans le débogueur; tapez « ,bt » pour la trace d'exécution\n"
 
-#: guix/ui.scm:313
+#: guix/ui.scm:319
 msgid "hint: "
 msgstr "conseil : "
 
-#: guix/ui.scm:330
+#: guix/ui.scm:336
 msgid "Did you forget a @code{use-modules} form?"
 msgstr "Auriez-vous oublié un @code{use-modules} ?"
 
-#: guix/ui.scm:332
+#: guix/ui.scm:338
 #, scheme-format
 msgid "Did you forget @code{(use-modules ~a)}?"
 msgstr "Auriez-vous oublié @code{(use-modules ~a)} ?"
 
-#: guix/ui.scm:342
+#: guix/ui.scm:348
 #, scheme-format
 msgid ""
 "File @file{~a} should probably start with:\n"
@@ -4635,54 +5242,54 @@ msgstr ""
 "(define-module ~a)\n"
 "@end example"
 
-#: guix/ui.scm:356
+#: guix/ui.scm:362
 #, scheme-format
 msgid "module name ~a does not match file name '~a'~%"
 msgstr "le nom de module « ~a » ne correspond pas au nom du fichier « ~a »~%"
 
-#: guix/ui.scm:360
+#: guix/ui.scm:366
 #, scheme-format
 msgid "~a: file is empty~%"
 msgstr "~a : le fichier est vide~%"
 
-#: guix/ui.scm:371 guix/ui.scm:413 guix/ui.scm:421
+#: guix/ui.scm:377 guix/ui.scm:425 guix/ui.scm:433 guix/ui.scm:437
 #, scheme-format
 msgid "failed to load '~a': ~a~%"
 msgstr "impossible de charger « ~a » : ~a~%"
 
-#: guix/ui.scm:378
+#: guix/ui.scm:384
 #, scheme-format
 msgid "~amissing closing parenthesis~%"
 msgstr "~a parenthèses fermantes manquantes~%"
 
-#: guix/ui.scm:383
+#: guix/ui.scm:389
 #, scheme-format
 msgid "~s: ~a~%"
 msgstr "~s : ~a~%"
 
-#: guix/ui.scm:393 guix/ui.scm:845
+#: guix/ui.scm:405 guix/ui.scm:898
 #, scheme-format
 msgid "exception thrown: ~s~%"
 msgstr "exception générée : ~s~%"
 
-#: guix/ui.scm:397 guix/ui.scm:427
+#: guix/ui.scm:409 guix/ui.scm:446
 #, scheme-format
 msgid "failed to load '~a':~%"
 msgstr "échec lors du chargement de « ~a » :~%"
 
-#: guix/ui.scm:424
+#: guix/ui.scm:443
 #, scheme-format
 msgid "failed to load '~a': exception thrown: ~s~%"
 msgstr "échec lors du chargement de « ~a » : exception générée : ~s~%"
 
-#: guix/ui.scm:472
+#: guix/ui.scm:491
 msgid ""
 "Consider installing the @code{glibc-utf8-locales} or\n"
 "@code{glibc-locales} package and defining @code{GUIX_LOCPATH}, along these\n"
 "lines:\n"
 "\n"
 "@example\n"
-"guix package -i glibc-utf8-locales\n"
+"guix install glibc-utf8-locales\n"
 "export GUIX_LOCPATH=\"$HOME/.guix-profile/lib/locale\"\n"
 "@end example\n"
 "\n"
@@ -4693,7 +5300,7 @@ msgstr ""
 "façon :\n"
 "\n"
 "@example\n"
-"guix package -i glibc-utf8-locales\n"
+"guix install glibc-utf8-locales\n"
 "export GUIX_LOCPATH=\"$HOME/.guix-profile/lib/locale\"\n"
 "@end example\n"
 "\n"
@@ -4702,15 +5309,15 @@ msgstr ""
 #. TRANSLATORS: Translate "(C)" to the copyright symbol
 #. (C-in-a-circle), if this symbol is available in the user's
 #. locale.  Otherwise, do not translate "(C)"; leave it as-is.  */
-#: guix/ui.scm:510
+#: guix/ui.scm:533
 msgid "(C)"
 msgstr "©"
 
-#: guix/ui.scm:511
+#: guix/ui.scm:534
 msgid "the Guix authors\n"
 msgstr "les auteurs de Guix\n"
 
-#: guix/ui.scm:512
+#: guix/ui.scm:535
 msgid ""
 "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\n"
 "This is free software: you are free to change and redistribute it.\n"
@@ -4724,7 +5331,7 @@ msgstr ""
 #. package.  Please add another line saying "Report translation bugs to
 #. ...\n" with the address for translation bugs (typically your translation
 #. team's web or email address).
-#: guix/ui.scm:524
+#: guix/ui.scm:547
 #, scheme-format
 msgid ""
 "\n"
@@ -4734,7 +5341,7 @@ msgstr ""
 "Signalez toute anomalie à : ~a.\n"
 "Signalez toute erreur de traduction à : traduc@traduc.org."
 
-#: guix/ui.scm:526
+#: guix/ui.scm:549
 #, scheme-format
 msgid ""
 "\n"
@@ -4743,35 +5350,36 @@ msgstr ""
 "\n"
 "~a page d'accueil : <~a>"
 
-#: guix/ui.scm:528
+#: guix/ui.scm:551
+#, scheme-format
 msgid ""
 "\n"
-"General help using GNU software: <http://www.gnu.org/gethelp/>"
+"General help using Guix and GNU software: <~a>"
 msgstr ""
 "\n"
-"Aide générale sur l'utilisation des logiciels GNU : <http://www.gnu.org/gethelp/>"
+"Aide générale sur l'utilisation des logiciels GNU : <~a>"
 
-#: guix/ui.scm:583
+#: guix/ui.scm:607
 #, scheme-format
 msgid "'~a' is not a valid regular expression: ~a~%"
 msgstr "« ~a » n'est pas une expression rationnelle valide : ~a~%"
 
-#: guix/ui.scm:589
+#: guix/ui.scm:613
 #, scheme-format
 msgid "~a: invalid number~%"
 msgstr "~a : nombre non valide~%"
 
-#: guix/ui.scm:607
+#: guix/ui.scm:631
 #, scheme-format
 msgid "invalid number: ~a~%"
 msgstr "nombre non valide : ~a~%"
 
-#: guix/ui.scm:630
+#: guix/ui.scm:654
 #, scheme-format
 msgid "unknown unit: ~a~%"
 msgstr "unité inconnue : ~a~%"
 
-#: guix/ui.scm:645
+#: guix/ui.scm:669
 #, scheme-format
 msgid ""
 "You cannot have two different versions\n"
@@ -4780,7 +5388,7 @@ msgstr ""
 "Vous ne pouvez pas avoir deux versions ou variantes\n"
 "différentes de @code{~a} dans le même profil."
 
-#: guix/ui.scm:648
+#: guix/ui.scm:672
 #, scheme-format
 msgid ""
 "Try upgrading both @code{~a} and @code{~a},\n"
@@ -4789,111 +5397,111 @@ msgstr ""
 "Essayez de mettre à jour à la fois @code{~a} et @code{~a},\n"
 "ou supprimez-en un du profil."
 
-#: guix/ui.scm:667
+#: guix/ui.scm:708
 #, scheme-format
 msgid "~a:~a:~a: package `~a' has an invalid input: ~s~%"
 msgstr "~a :~a :~a : le paquet « ~a » a une entrée non valide : ~s~%"
 
-#: guix/ui.scm:674
+#: guix/ui.scm:715
 #, scheme-format
 msgid "~a: ~a: build system `~a' does not support cross builds~%"
 msgstr "~a : ~a : le système de construction « ~a » ne prend pas en charge la compilation croisée~%"
 
-#: guix/ui.scm:680
+#: guix/ui.scm:721
 #, scheme-format
 msgid "~s: invalid G-expression input~%"
 msgstr "~s : entrée G-expression invalide~%"
 
-#: guix/ui.scm:683
+#: guix/ui.scm:724
 #, scheme-format
 msgid "profile '~a' does not exist~%"
 msgstr "le profil « ~a » n'existe pas~%"
 
-#: guix/ui.scm:686
+#: guix/ui.scm:727
 #, scheme-format
 msgid "generation ~a of profile '~a' does not exist~%"
 msgstr "la génération ~a du profil « ~a » n'existe pas~%"
 
-#: guix/ui.scm:691
+#: guix/ui.scm:732
 #, scheme-format
 msgid "package '~a~@[@~a~]~@[:~a~]' not found in profile~%"
 msgstr "le paquet « ~a~@[@~a~]~@[:~a~] » n'a pas été trouvé dans le profil~%"
 
-#: guix/ui.scm:703
+#: guix/ui.scm:744
 #, scheme-format
 msgid "   ... propagated from ~a@~a~%"
 msgstr "   ... propagé depuis ~a@~a~%"
 
-#: guix/ui.scm:713
+#: guix/ui.scm:754
 #, scheme-format
 msgid "profile contains conflicting entries for ~a~a~%"
 msgstr "le profil contient des entrées en conflit pour ~a~a~%"
 
-#: guix/ui.scm:716
+#: guix/ui.scm:757
 #, scheme-format
 msgid "  first entry: ~a@~a~a ~a~%"
 msgstr "  première entrée : ~a@~a~a ~a~%"
 
-#: guix/ui.scm:722
+#: guix/ui.scm:763
 #, scheme-format
 msgid "  second entry: ~a@~a~a ~a~%"
 msgstr "  deuxième entrée : ~a@~a~a ~a~%"
 
-#: guix/ui.scm:734
+#: guix/ui.scm:775
 #, scheme-format
 msgid "corrupt input while restoring '~a' from ~s~%"
 msgstr "entrée corrompue en restaurant « ~a » depuis ~s~%"
 
-#: guix/ui.scm:736
+#: guix/ui.scm:777
 #, scheme-format
 msgid "corrupt input while restoring archive from ~s~%"
 msgstr "entrée corrompue en restaurant l'archive depuis ~s~%"
 
-#: guix/ui.scm:739
+#: guix/ui.scm:780
 #, scheme-format
 msgid "failed to connect to `~a': ~a~%"
 msgstr "impossible de se connecter à « ~a » : ~a~%"
 
-#: guix/ui.scm:747
+#: guix/ui.scm:788
 #, scheme-format
 msgid "reference to invalid output '~a' of derivation '~a'~%"
 msgstr "référence à la sortie invalide « ~a » de la dérivation « ~a »~%"
 
-#: guix/ui.scm:751
+#: guix/ui.scm:792
 #, scheme-format
 msgid "file '~a' could not be found in these directories:~{ ~a~}~%"
 msgstr "le fichier « ~a » n'a pas été trouvé dans ces répertoires :~{ ~a~}~%"
 
-#: guix/ui.scm:756
+#: guix/ui.scm:797
 #, scheme-format
 msgid "program exited~@[ with non-zero exit status ~a~]~@[ terminated by signal ~a~]~@[ stopped by signal ~a~]: ~s~%"
 msgstr "le programme a quitté~@[ avec un statut non nul ~a~]~@[ terminé par le signal ~a~]~@[ arrêté par le signal ~a~] : ~s~%"
 
-#: guix/ui.scm:830
+#: guix/ui.scm:877
 #, scheme-format
 msgid "failed to read expression ~s: ~s~%"
 msgstr "impossible de lire l'expression ~s : ~s~%"
 
-#: guix/ui.scm:836
+#: guix/ui.scm:883
 #, scheme-format
 msgid "failed to evaluate expression '~a':~%"
 msgstr "impossible d'évaluer l'expression « ~a » :~%"
 
-#: guix/ui.scm:839
+#: guix/ui.scm:886
 #, scheme-format
 msgid "syntax error: ~a~%"
 msgstr "erreur de syntaxe : ~a~%"
 
-#: guix/ui.scm:857
+#: guix/ui.scm:910
 #, scheme-format
 msgid "expression ~s does not evaluate to a package~%"
 msgstr "l'expression ~s ne correspond à aucun paquet~%"
 
-#: guix/ui.scm:884
+#: guix/ui.scm:937
 msgid "at least ~,1h MB needed but only ~,1h MB available in ~a~%"
 msgstr "au moins ~,1h Mo sont nécessaires mais seulement ~,1h Mo sont disponibles dans ~a~%"
 
-#: guix/ui.scm:982
+#: guix/ui.scm:1046
 #, scheme-format
 msgid "~:[The following derivation would be built:~%~{   ~a~%~}~;~]"
 msgid_plural "~:[The following derivations would be built:~%~{   ~a~%~}~;~]"
@@ -4902,32 +5510,44 @@ msgstr[1] "~:[Les dérivations suivantes seraient compilées :~%~{   ~a~%~}~;~]"
 
 #. TRANSLATORS: "MB" is for "megabyte"; it should be
 #. translated to the corresponding abbreviation.
-#: guix/ui.scm:990
+#: guix/ui.scm:1055
 msgid "~:[~,1h MB would be downloaded:~%~{   ~a~%~}~;~]"
 msgstr "~:[~,1h Mo seraient téléchargés :~%~{   ~a~%~}~;~]"
 
-#: guix/ui.scm:996
+#: guix/ui.scm:1061
 #, scheme-format
 msgid "~:[The following file would be downloaded:~%~{   ~a~%~}~;~]"
 msgid_plural "~:[The following files would be downloaded:~%~{   ~a~%~}~;~]"
 msgstr[0] "~:[Le fichier suivant serait téléchargé :~%~{   ~a~%~}~;~]"
 msgstr[1] "~:[Les fichiers suivants seraient téléchargés :~%~{   ~a~%~}~;~]"
 
-#: guix/ui.scm:1003
+#: guix/ui.scm:1068
 #, scheme-format
 msgid "~:[The following graft would be made:~%~{   ~a~%~}~;~]"
 msgid_plural "~:[The following grafts would be made:~%~{   ~a~%~}~;~]"
 msgstr[0] "~:[La greffe suivante serait effectuée :~%~{   ~a~%~}~;~]"
 msgstr[1] "~:[Les greffes suivantes seraient effectuées :~%~{   ~a~%~}~;~]"
 
-#: guix/ui.scm:1008
+#: guix/ui.scm:1073
 #, scheme-format
 msgid "~:[The following profile hook would be built:~%~{   ~a~%~}~;~]"
 msgid_plural "~:[The following profile hooks would be built:~%~{   ~a~%~}~;~]"
 msgstr[0] "~:[Le crochet suivante serait compilé :~%~{   ~a~%~}~;~]"
 msgstr[1] "~:[Les crochets suivants seraient compilés :~%~{   ~a~%~}~;~]"
 
-#: guix/ui.scm:1014
+#. TRANSLATORS: "MB" is for "megabyte"; it should be
+#. translated to the corresponding abbreviation.
+#: guix/ui.scm:1085
+msgid "~:[~,1h MB would be downloaded~%~;~]"
+msgstr "~:[~,1h Mo seraient téléchargés~%~;~]"
+
+#: guix/ui.scm:1089
+msgid "~:[~h item would be downloaded~%~;~]"
+msgid_plural "~:[~h items would be downloaded~%~;~]"
+msgstr[0] "~:[~h élément serait téléchargé~%~;~]"
+msgstr[1] "~:[~h éléments seraient téléchargés~%~;~]"
+
+#: guix/ui.scm:1097
 #, scheme-format
 msgid "~:[The following derivation will be built:~%~{   ~a~%~}~;~]"
 msgid_plural "~:[The following derivations will be built:~%~{   ~a~%~}~;~]"
@@ -4936,102 +5556,109 @@ msgstr[1] "~:[Les dérivations suivantes seront compilées :~%~{   ~a~%~}~;~]"
 
 #. TRANSLATORS: "MB" is for "megabyte"; it should be
 #. translated to the corresponding abbreviation.
-#: guix/ui.scm:1022
+#: guix/ui.scm:1106
 msgid "~:[~,1h MB will be downloaded:~%~{   ~a~%~}~;~]"
 msgstr "~:[~,1h Mo seront téléchargés :~%~{   ~a~%~}~;~]"
 
-#: guix/ui.scm:1028
+#: guix/ui.scm:1112
 #, scheme-format
 msgid "~:[The following file will be downloaded:~%~{   ~a~%~}~;~]"
 msgid_plural "~:[The following files will be downloaded:~%~{   ~a~%~}~;~]"
 msgstr[0] "~:[Le fichier suivant sera téléchargé :~%~{   ~a~%~}~;~]"
 msgstr[1] "~:[Les fichiers suivants seront téléchargés :~%~{   ~a~%~}~;~]"
 
-#: guix/ui.scm:1035
+#: guix/ui.scm:1119
 #, scheme-format
 msgid "~:[The following graft will be made:~%~{   ~a~%~}~;~]"
 msgid_plural "~:[The following grafts will be made:~%~{   ~a~%~}~;~]"
 msgstr[0] "~:[La greffe suivante sera effectuée :~%~{   ~a~%~}~;~]"
 msgstr[1] "~:[Les greffes suivantes seront effectuées :~%~{   ~a~%~}~;~]"
 
-#: guix/ui.scm:1040
+#: guix/ui.scm:1124
 #, scheme-format
 msgid "~:[The following profile hook will be built:~%~{   ~a~%~}~;~]"
 msgid_plural "~:[The following profile hooks will be built:~%~{   ~a~%~}~;~]"
 msgstr[0] "~:[Le crochet suivant sera compilée :~%~{   ~a~%~}~;~]"
 msgstr[1] "~:[Les crochets suivants seront compilés :~%~{   ~a~%~}~;~]"
 
-#: guix/ui.scm:1167
+#. TRANSLATORS: "MB" is for "megabyte"; it should be
+#. translated to the corresponding abbreviation.
+#: guix/ui.scm:1136
+msgid "~:[~,1h MB will be downloaded~%~;~]"
+msgstr "~:[~,1h Mo seront téléchargés~%~;~]"
+
+#: guix/ui.scm:1140
+msgid "~:[~h item will be downloaded~%~;~]"
+msgid_plural "~:[~h items will be downloaded~%~;~]"
+msgstr[0] "~:[~h élément sera téléchargé~%~;~]"
+msgstr[1] "~:[~h éléments seront téléchargés~%~;~]"
+
+#: guix/ui.scm:1259
 msgid "(dependencies or package changed)"
 msgstr "(dépendances ou paquet modifiés)"
 
-#: guix/ui.scm:1180
+#: guix/ui.scm:1278
 #, scheme-format
 msgid "The following package would be removed:~%~{~a~%~}~%"
 msgid_plural "The following packages would be removed:~%~{~a~%~}~%"
 msgstr[0] "Le paquet suivant serait supprimé :~%~{~a~%~}~%"
 msgstr[1] "Les paquets suivants seraient supprimés :~%~{~a~%~}~%"
 
-#: guix/ui.scm:1185
+#: guix/ui.scm:1283
 #, scheme-format
 msgid "The following package will be removed:~%~{~a~%~}~%"
 msgid_plural "The following packages will be removed:~%~{~a~%~}~%"
 msgstr[0] "Le paquet suivant sera supprimé :~%~{~a~%~}~%"
 msgstr[1] "Les paquets suivants seront supprimés :~%~{~a~%~}~%"
 
-#: guix/ui.scm:1198
+#: guix/ui.scm:1296
 #, scheme-format
 msgid "The following package would be downgraded:~%~{~a~%~}~%"
 msgid_plural "The following packages would be downgraded:~%~{~a~%~}~%"
 msgstr[0] "Le paquet suivant serait mis à une version inférieure :~%~{~a~%~}~%"
 msgstr[1] "Les paquets suivants seraient mis à des versions inférieures :~%~{~a~%~}~%"
 
-#: guix/ui.scm:1203
+#: guix/ui.scm:1301
 #, scheme-format
 msgid "The following package will be downgraded:~%~{~a~%~}~%"
 msgid_plural "The following packages will be downgraded:~%~{~a~%~}~%"
 msgstr[0] "Le paquet suivant sera mis à une version inférieure :~%~{~a~%~}~%"
 msgstr[1] "Les paquets suivants seront mis à des versions inférieures :~%~{~a~%~}~%"
 
-#: guix/ui.scm:1217
+#: guix/ui.scm:1314
 #, scheme-format
 msgid "The following package would be upgraded:~%~{~a~%~}~%"
 msgid_plural "The following packages would be upgraded:~%~{~a~%~}~%"
 msgstr[0] "Le paquet suivant serait mis à jour :~%~{~a~%~}~%"
 msgstr[1] "Les paquets suivants seraient mis à jour :~%~{~a~%~}~%"
 
-#: guix/ui.scm:1222
+#: guix/ui.scm:1319
 #, scheme-format
 msgid "The following package will be upgraded:~%~{~a~%~}~%"
 msgid_plural "The following packages will be upgraded:~%~{~a~%~}~%"
 msgstr[0] "Le paquet suivant sera mis à jour :~%~{~a~%~}~%"
 msgstr[1] "Les paquets suivants seront mis à jour :~%~{~a~%~}~%"
 
-#: guix/ui.scm:1233
+#: guix/ui.scm:1330
 #, scheme-format
 msgid "The following package would be installed:~%~{~a~%~}~%"
 msgid_plural "The following packages would be installed:~%~{~a~%~}~%"
 msgstr[0] "Le paquet suivant serait installé :~%~{~a~%~}~%"
 msgstr[1] "Les paquets suivants seraient installés :~%~{~a~%~}~%"
 
-#: guix/ui.scm:1238
+#: guix/ui.scm:1335
 #, scheme-format
 msgid "The following package will be installed:~%~{~a~%~}~%"
 msgid_plural "The following packages will be installed:~%~{~a~%~}~%"
 msgstr[0] "Le paquet suivant sera installé :~%~{~a~%~}~%"
 msgstr[1] "Les paquets suivants seront installés :~%~{~a~%~}~%"
 
-#: guix/ui.scm:1592
-#, scheme-format
-msgid "Run @code{~a ... | less} to view all the results."
-msgstr "Lancez @code{~a ... | less} pour voir tous les résultats"
-
-#: guix/ui.scm:1742
+#: guix/ui.scm:1862
 #, scheme-format
 msgid "invalid syntax: ~a~%"
 msgstr "syntaxe non valide : ~a~%"
 
-#: guix/ui.scm:1752
+#: guix/ui.scm:1871
 #, scheme-format
 msgid "Generation ~a\t~a"
 msgstr "Génération ~a\t~a"
@@ -5041,7 +5668,7 @@ msgstr "Génération ~a\t~a"
 #. usual way of presenting dates in your locale.
 #. See https://www.gnu.org/software/guile/manual/html_node/SRFI_002d19-Date-to-string.html
 #. for details.
-#: guix/ui.scm:1762
+#: guix/ui.scm:1881
 #, scheme-format
 msgid "~b ~d ~Y ~T"
 msgstr "~d ~b ~Y ~T"
@@ -5049,37 +5676,37 @@ msgstr "~d ~b ~Y ~T"
 #. TRANSLATORS: The word "current" here is an adjective for
 #. "Generation", as in "current generation".  Use the appropriate
 #. gender where applicable.
-#: guix/ui.scm:1768
+#: guix/ui.scm:1887
 #, scheme-format
 msgid "~a\t(current)~%"
 msgstr "~a\t(actuelle)~%"
 
-#: guix/ui.scm:1802
+#: guix/ui.scm:1921
 #, scheme-format
 msgid "cannot lock profile ~a: ~a~%"
 msgstr "impossible de verrouiller le profil ~a : ~a~%"
 
-#: guix/ui.scm:1804
+#: guix/ui.scm:1923
 #, scheme-format
 msgid "profile ~a is locked by another process~%"
 msgstr "le profil ~a est verrouillé par un autre processus~%"
 
-#: guix/ui.scm:1831
+#: guix/ui.scm:1950
 #, scheme-format
 msgid "switched from generation ~a to ~a~%"
 msgstr "passé de la génération ~a à ~a~%"
 
-#: guix/ui.scm:1847
+#: guix/ui.scm:1966
 #, scheme-format
 msgid "deleting ~a~%"
 msgstr "suppression de ~a~%"
 
-#: guix/ui.scm:1878
+#: guix/ui.scm:1997
 #, scheme-format
 msgid "Try `guix --help' for more information.~%"
 msgstr "Essayez « guix --help » pour plus d'informations.~%"
 
-#: guix/ui.scm:1906
+#: guix/ui.scm:2078
 msgid ""
 "Usage: guix COMMAND ARGS...\n"
 "Run COMMAND with ARGS.\n"
@@ -5087,21 +5714,21 @@ msgstr ""
 "Utilisation : guix COMMANDE ARGS...\n"
 "Lance la COMMANDE avec les arguments ARGS.\n"
 
-#: guix/ui.scm:1909
+#: guix/ui.scm:2081
 msgid "COMMAND must be one of the sub-commands listed below:\n"
 msgstr "COMMANDE doit être une des sous-commandes listées ci-dessous :\n"
 
-#: guix/ui.scm:1925
+#: guix/ui.scm:2105
 #, scheme-format
 msgid "guix: ~a: command not found~%"
 msgstr "guix : ~a : commande introuvable~%"
 
-#: guix/ui.scm:1955
+#: guix/ui.scm:2135
 #, scheme-format
 msgid "guix: missing command name~%"
 msgstr "guix : nom de commande manquant~%"
 
-#: guix/ui.scm:1963
+#: guix/ui.scm:2143
 #, scheme-format
 msgid "guix: unrecognized option '~a'~%"
 msgstr "guix : option « ~a » non reconnue ~%"
@@ -5164,8 +5791,8 @@ msgstr "construction du cache des paquets…"
 
 #: guix/status.scm:475
 #, scheme-format
-msgid "applying ~a graft for ~a..."
-msgid_plural "applying ~a grafts for ~a..."
+msgid "applying ~a graft for ~a ..."
+msgid_plural "applying ~a grafts for ~a ..."
 msgstr[0] "application de ~a greffe pour ~a..."
 msgstr[1] "application de ~a greffes pour ~a..."
 
@@ -5220,7 +5847,7 @@ msgstr "substitution de ~a..."
 
 #: guix/status.scm:528
 #, scheme-format
-msgid "downloading from ~a..."
+msgid "downloading from ~a ..."
 msgstr "téléchargement depuis ~a..."
 
 #: guix/status.scm:553
@@ -5254,76 +5881,130 @@ msgstr ""
 msgid "offloading build of ~a to '~a'"
 msgstr "déchargement de la construction de ~a sur « ~a »"
 
-#: guix/http-client.scm:120
+#: guix/http-client.scm:125
 #, scheme-format
 msgid "following redirection to `~a'...~%"
 msgstr "redirection vers « ~a »...~%"
 
-#: guix/http-client.scm:132
+#: guix/http-client.scm:137
 #, scheme-format
 msgid "~a: HTTP download failed: ~a (~s)"
 msgstr "~a : le téléchargement HTTP a échoué : ~a (~s)"
 
-#: guix/nar.scm:147
+#: guix/nar.scm:172
 msgid "signature is not a valid s-expression"
 msgstr "la signature n'est pas une s-expression valide"
 
-#: guix/nar.scm:156
+#: guix/nar.scm:181
 msgid "invalid signature"
 msgstr "signature non valide"
 
-#: guix/nar.scm:160
+#: guix/nar.scm:185
 msgid "invalid hash"
 msgstr "empreinte non valide"
 
-#: guix/nar.scm:168
+#: guix/nar.scm:193
 msgid "unauthorized public key"
 msgstr "clé publique non autorisée"
 
-#: guix/nar.scm:173
+#: guix/nar.scm:198
 msgid "corrupt signature data"
 msgstr "signature corrompue"
 
-#: guix/nar.scm:193
+#: guix/nar.scm:218
 msgid "corrupt file set archive"
 msgstr "ensemble de fichiers corrompu dans l'archive"
 
-#: guix/nar.scm:203
+#: guix/nar.scm:228
 #, scheme-format
 msgid "importing file or directory '~a'...~%"
 msgstr "import du fichier ou répertoire « ~a »...~%"
 
-#: guix/nar.scm:214
+#: guix/nar.scm:239
 #, scheme-format
 msgid "found valid signature for '~a'~%"
 msgstr "signature valide trouvée pour « ~a »~%"
 
-#: guix/nar.scm:221
+#: guix/nar.scm:246
 msgid "imported file lacks a signature"
 msgstr "les fichiers importés requièrent une signature"
 
-#: guix/nar.scm:260
+#: guix/nar.scm:285
 msgid "invalid inter-file archive mark"
 msgstr "marque d'archive inter-fichier non valide"
 
-#: guix/channels.scm:168
+#: guix/channels.scm:266
 msgid "unsupported '.guix-channel' version"
 msgstr "version de « .guix-channel » non prise en charge"
 
-#: guix/channels.scm:174
+#: guix/channels.scm:272
 msgid "invalid '.guix-channel' file"
 msgstr "fichier « .guix-channel » invalide"
 
-#: guix/channels.scm:224
+#: guix/channels.scm:331
+msgid "Authenticating channel '~a', commits ~a to ~a (~h new commits)...~%"
+msgstr "Authentification du canal « ~a », commits ~a à ~a (~h nouveaux commits)...~%"
+
+#: guix/channels.scm:382
+#, scheme-format
+msgid "channel '~a' lacks an introduction and cannot be authenticated~%"
+msgstr "le canal « ~a » n'a pas d'introduction et ne peut pas être authentifié~%"
+
+#: guix/channels.scm:387
+msgid ""
+"Add the missing introduction to your\n"
+"channels file to address the issue.  Alternatively, you can pass\n"
+"@option{--disable-authentication}, at the risk of running unauthenticated and\n"
+"thus potentially malicious code."
+msgstr ""
+"Ajoutez l'introduction manquante à votre fichier de canaux\n"
+"pour corriger ce problème. Autrement, vous pouvez passer\n"
+"@option{--disable-authentication} au risque de lancer du code\n"
+"non authentifié et potentiellement malveillant."
+
+#: guix/channels.scm:391
+#, scheme-format
+msgid "channel authentication disabled~%"
+msgstr "authentification du canal échouée~%"
+
+#: guix/channels.scm:416
+#, scheme-format
+msgid "aborting update of channel '~a' to commit ~a, which is not a descendant of ~a"
+msgstr "interruption de la mise à jour du canal « ~a » au commit ~a, qui n'est pas un descendant de ~a"
+
+#: guix/channels.scm:427
+msgid ""
+"Use @option{--allow-downgrades} to force\n"
+"this downgrade."
+msgstr "Utilisez @option{--allow-downgrades} pour forcer ce retour en arrière."
+
+#: guix/channels.scm:431
+msgid ""
+"This could indicate that the channel has\n"
+"been tampered with and is trying to force a roll-back, preventing you from\n"
+"getting the latest updates.  If you think this is not the case, explicitly\n"
+"allow non-forward updates."
+msgstr ""
+"Cela peut indiquer que le canal a été modifié et essaye de forcer un retour\n"
+"en arrière, ce qui vous empêche de récupérer les dernières mises à jour. Si\n"
+"vous pensez que ce n'est pas le cas, permettez explicitement les mises à jour\n"
+"non avant."
+
+#: guix/channels.scm:484
 #, scheme-format
 msgid "Updating channel '~a' from Git repository at '~a'...~%"
 msgstr "Mise à jour du canal « ~a » depuis le dépôt Git « ~a »...~%"
 
-#: guix/channels.scm:475
+#: guix/channels.scm:505
+#, scheme-format
+msgid "pulled channel '~a' from a mirror of ~a, which might be stale~%"
+msgstr "canal « ~a » récupéré d'un miroir de ~a, qui peut être plus vieux~%"
+
+#: guix/channels.scm:733
 msgid "'guix' channel is lacking"
 msgstr "le canal « guix » est absent"
 
-#: guix/channels.scm:477
+#: guix/channels.scm:735
 msgid ""
 "Make sure your list of channels\n"
 "contains one channel named @code{guix} providing the core of Guix."
@@ -5332,67 +6013,76 @@ msgstr ""
 "nommé @code{guix} qui fourrnit le cœur de la distribution de\n"
 "Guix."
 
-#: guix/channels.scm:679
+#: guix/channels.scm:964
 msgid "invalid channel news entry"
 msgstr "entrée de nouvelle d'un canal invalide"
 
-#: guix/channels.scm:697
+#: guix/channels.scm:982
 msgid "syntactically invalid channel news file"
 msgstr "fichier de nouvelles d'un canal syntactiquement invalide"
 
-#: guix/channels.scm:700
+#: guix/channels.scm:985
 msgid "invalid channel news file"
 msgstr "fichier de nouvelles d'un canal invalide"
 
-#: guix/profiles.scm:564
+#: guix/profiles.scm:574
 msgid "unsupported manifest format"
 msgstr "format de manifeste non pris en charge"
 
-#: guix/profiles.scm:1878
+#: guix/profiles.scm:1935
 #, scheme-format
 msgid "while creating directory `~a': ~a"
 msgstr "pendant la création du répertoire « ~a » : ~a"
 
-#: guix/profiles.scm:1883
+#: guix/profiles.scm:1940
 #, scheme-format
 msgid "Please create the @file{~a} directory, with you as the owner."
 msgstr "Veuillez créer le répertoire @file{~a} dont vous êtes le propriétaire."
 
-#: guix/profiles.scm:1892
+#: guix/profiles.scm:1949
 #, scheme-format
 msgid "directory `~a' is not owned by you"
 msgstr "vous ne possédez pas le répertoire « ~a »"
 
-#: guix/profiles.scm:1896
+#: guix/profiles.scm:1953
 #, scheme-format
 msgid "Please change the owner of @file{~a} to user ~s."
 msgstr "Veuillez définir le propriétaire de @file{~a} comme étant ~s."
 
-#: guix/git.scm:170
-msgid "long Git object ID is required"
-msgstr "l'ID long de l'objet Git est requis"
+#: guix/git.scm:136
+msgid "receiving objects"
+msgstr "réception des objets"
 
-#: guix/git.scm:228
+#: guix/git.scm:138
+msgid "indexing objects"
+msgstr "indexage des objets"
+
+#: guix/git.scm:268
 #, scheme-format
-msgid "updating submodule '~a'...~%"
-msgstr "mise à jour du sous-module « ~a »…~%"
+msgid "Git error ~a~%"
+msgstr "Erreur Git : ~a~%"
 
-#: guix/git.scm:241
+#: guix/git.scm:270 guix/git.scm:438
 #, scheme-format
-msgid "Support for submodules is missing; please upgrade Guile-Git.~%"
-msgstr "La prise en charge des sous-modules est absente ; mettez Guile-Git à jour.~%"
+msgid "Git error: ~a~%"
+msgstr "Erreur Git : ~a~%"
 
-#: guix/git.scm:440
+#: guix/git.scm:284
+#, scheme-format
+msgid "updating submodule '~a'...~%"
+msgstr "mise à jour du sous-module « ~a »…~%"
+
+#: guix/git.scm:532
 #, scheme-format
 msgid "cannot fetch commit ~a from ~a: ~a"
 msgstr "impossible de récupérer le commit ~a depuis ~a : ~a"
 
-#: guix/git.scm:443
+#: guix/git.scm:535
 #, scheme-format
 msgid "cannot fetch branch '~a' from ~a: ~a"
 msgstr "impossible de récupérer la branche « ~a » depuis ~a : ~a"
 
-#: guix/git.scm:446
+#: guix/git.scm:538
 #, scheme-format
 msgid "Git failure while fetching ~a: ~a"
 msgstr "Échec de Git pendant la récupération de ~a : ~a"
@@ -5409,7 +6099,7 @@ msgstr "« ~a » est obsolète~%"
 
 #. TRANSLATORS: 'derivation' must not be translated; it refers to the
 #. 'derivation' procedure.
-#: guix/derivations.scm:743
+#: guix/derivations.scm:775
 #, scheme-format
 msgid "in '~a': deprecated 'derivation' calling convention used~%"
 msgstr "dans « ~a » : convention d'appel à « derivation » obsolète~%"
@@ -5538,14 +6228,44 @@ msgstr "écoute sur SOCKET pour des connexions"
 msgid "produce debugging output"
 msgstr "produit une sortie de déboguage"
 
+#~ msgid "long Git object ID is required"
+#~ msgstr "l'ID long de l'objet Git est requis"
+
+#~ msgid "Support for submodules is missing; please upgrade Guile-Git.~%"
+#~ msgstr "La prise en charge des sous-modules est absente ; mettez Guile-Git à jour.~%"
+
+#~ msgid "cannot find public key for secret key '~a'~%"
+#~ msgstr "impossible de trouver la clé publique correspondant à la clé secrète « ~a »~%"
+
+#~ msgid "error: invalid signature: ~a~%"
+#~ msgstr "erreur : signature non valide: ~a~%"
+
+#~ msgid "error: unauthorized public key: ~a~%"
+#~ msgstr "erreur : clé publique non autorisée: ~a~%"
+
+#~ msgid "error: corrupt signature data: ~a~%"
+#~ msgstr "erreur : signature corrompue : ~a~%"
+
+#~ msgid "~a: error: device '~a' not found: ~a~%"
+#~ msgstr "~a : erreur : périphérique « ~a » non trouvé : ~a~%"
+
+#~ msgid ""
+#~ "\n"
+#~ "      --file-system-type=TYPE\n"
+#~ "                         for 'disk-image', produce a root file system of TYPE\n"
+#~ "                         (one of 'ext4', 'iso9660')"
+#~ msgstr ""
+#~ "\n"
+#~ "      --file-system-type=TYPE\n"
+#~ "                         avec « disk-image », produit un système de fichiers racine de TYPE\n"
+#~ "                         (parmis « ext4» et « iso9660 »)"
+
+#~ msgid "Run @code{~a ... | less} to view all the results."
+#~ msgstr "Lancez @code{~a ... | less} pour voir tous les résultats"
+
 #~ msgid "Retry system install"
 #~ msgstr "Réessayer l'installation du système"
 
-#~ msgid "~a package in profile~%"
-#~ msgid_plural "~a packages in profile~%"
-#~ msgstr[0] "~a paquet dans le profil~%"
-#~ msgstr[1] "~a paquets dans le profil~%"
-
 #~ msgid "failed to obtain list of shepherd services~%"
 #~ msgstr "erreur en essayant d'obtenir la liste des services du shepherd~%"
 
@@ -5754,7 +6474,7 @@ msgstr "produit une sortie de déboguage"
 #~ msgstr "argument non supporté pour le graphe de référence"
 
 #~ msgid "~a: note: using ~a but ~a is available upstream~%"
-#~ msgstr "~a: note: utilisation de ~a mais ~a est disponible en amont"
+#~ msgstr "~a: note: utilisation de ~a mais ~a est disponible en amont~%"
 
 #~ msgid "~a: not a number~%"
 #~ msgstr "~a: pas un nombre~%"
@@ -5766,7 +6486,7 @@ msgstr "produit une sortie de déboguage"
 #~ msgstr "échec de la compilation du profil vide~%"
 
 #~ msgid "nothing to do: already at the empty profile~%"
-#~ msgstr "aucune action à faire: profil courant vide"
+#~ msgstr "aucune action à faire: profil courant vide~%"
 
 #~ msgid "(Please consider upgrading Guile to get proper progress report.)~%"
 #~ msgstr "(Veuillez mettre Guile à jour pour obtenir le rapport de progression approprié.)~%"
diff --git a/po/guix/pt_BR.po b/po/guix/pt_BR.po
index baee374eb6..2c33a1e51f 100644
--- a/po/guix/pt_BR.po
+++ b/po/guix/pt_BR.po
@@ -1,14 +1,13 @@
 # Brazilian Portuguese translation of the guix
 # Copyright (C) 2020 the authors of Guix (msgids)
-# Copyright (C) 2020 Free Software Foundation, Inc.
 # This file is distributed under the same license as the guix package.
 # Rafael Fontenelle <rafaelff@gnome.org>, 2013-2020.
 msgid ""
 msgstr ""
-"Project-Id-Version: guix 1.1.0-pre2\n"
-"Report-Msgid-Bugs-To: ludo@gnu.org\n"
-"POT-Creation-Date: 2020-04-09 18:27+0200\n"
-"PO-Revision-Date: 2020-04-10 05:36-0300\n"
+"Project-Id-Version: guix 1.2.0-pre1\n"
+"Report-Msgid-Bugs-To: bug-guix@gnu.org\n"
+"POT-Creation-Date: 2020-10-05 16:00+0200\n"
+"PO-Revision-Date: 2020-10-12 15:52-0300\n"
 "Last-Translator: Rafael Fontenelle <rafaelff@gnome.org>\n"
 "Language-Team: Brazilian Portuguese <ldpbr-translation@lists.sourceforge.net>\n"
 "Language: pt_BR\n"
@@ -19,12 +18,12 @@ msgstr ""
 "X-Generator: Virtaal 1.0.0-beta1\n"
 "X-Bugs: Report translation errors to the Language-Team address.\n"
 
-#: gnu.scm:83
+#: gnu.scm:81
 #, scheme-format
 msgid "module ~a not found"
 msgstr "módulo ~a não localizado"
 
-#: gnu.scm:101
+#: gnu.scm:99
 msgid ""
 "You may use @command{guix package --show=foo | grep location} to search\n"
 "for the location of package @code{foo}.\n"
@@ -36,12 +35,12 @@ msgstr ""
 "Se você obtiver a linha @code{location: gnu/packages/bar.scm:174:2},\n"
 "adicione @code{bar} à forma @code{use-package-modules}."
 
-#: gnu.scm:109
+#: gnu.scm:107
 #, scheme-format
 msgid "Try adding @code{(use-package-modules ~a)}."
 msgstr "Tente adicionar @code{(use-package-modules ~a)}."
 
-#: gnu.scm:124
+#: gnu.scm:122
 #, scheme-format
 msgid ""
 "You may use @command{guix system search ~a} to search for a service\n"
@@ -54,7 +53,7 @@ msgstr ""
 "Se você obtiver a linha @code{location: gnu/services/foo.scm:188:2},\n"
 "adicione @code{foo} à forma @code{use-service-modules}."
 
-#: gnu.scm:133
+#: gnu.scm:131
 #, scheme-format
 msgid "Try adding @code{(use-service-modules ~a)}."
 msgstr "Tente adicionar @code{(use-service-modules ~a)}."
@@ -64,42 +63,42 @@ msgstr "Tente adicionar @code{(use-service-modules ~a)}."
 msgid "~a: patch not found"
 msgstr "~a: patch não localizado"
 
-#: gnu/packages.scm:460 gnu/packages.scm:501
+#: gnu/packages.scm:480 gnu/packages.scm:521
 #, scheme-format
 msgid "ambiguous package specification `~a'~%"
 msgstr "especificação ambígua de pacote \"~a\"~%"
 
-#: gnu/packages.scm:461 gnu/packages.scm:502
+#: gnu/packages.scm:481 gnu/packages.scm:522
 #, scheme-format
 msgid "choosing ~a@~a from ~a~%"
 msgstr "escolhendo ~a@~a de ~a~%"
 
-#: gnu/packages.scm:466 guix/scripts/package.scm:207
+#: gnu/packages.scm:486 guix/scripts/package.scm:210
 #, scheme-format
 msgid "package '~a' has been superseded by '~a'~%"
 msgstr "pacote \"~a\" foi substituído por \"~a\"~%"
 
-#: gnu/packages.scm:473 gnu/packages.scm:490
+#: gnu/packages.scm:493 gnu/packages.scm:510
 #, scheme-format
 msgid "~A: package not found for version ~a~%"
 msgstr "~A: pacote não encontrado para versão ~a~%"
 
-#: gnu/packages.scm:474 gnu/packages.scm:491
+#: gnu/packages.scm:494 gnu/packages.scm:511
 #, scheme-format
 msgid "~A: unknown package~%"
 msgstr "~A: pacote desconhecido~%"
 
-#: gnu/packages.scm:530
+#: gnu/packages.scm:550
 #, scheme-format
 msgid "package `~a' lacks output `~a'~%"
 msgstr "pacote \"~a\" carece de mensagem de saída \"~a\"~%"
 
-#: gnu/services.scm:242
+#: gnu/services.scm:249
 #, scheme-format
 msgid "~a: no value specified for service of type '~a'"
 msgstr "~a: nenhum valor especificado para um serviço do tipo \"~a\""
 
-#: gnu/services.scm:341
+#: gnu/services.scm:347
 msgid ""
 "Build the operating system top-level directory, which in\n"
 "turn refers to everything the operating system needs: its kernel, initrd,\n"
@@ -109,7 +108,7 @@ msgstr ""
 "se refere a tudo que o sistema operacional precisa: seu kernel, initrd,\n"
 "perfil do sistema, script de inicialização e assim por diante."
 
-#: gnu/services.scm:371
+#: gnu/services.scm:377
 msgid ""
 "Produce the operating system's boot script, which is spawned\n"
 "by the initrd once the root file system is mounted."
@@ -117,7 +116,7 @@ msgstr ""
 "Produz o script de inicialização do sistema operacional, que\n"
 "é gerado pelo initrd quando o sistema de arquivos raiz é montado."
 
-#: gnu/services.scm:452
+#: gnu/services.scm:488
 msgid ""
 "Store provenance information about the system in the system\n"
 "itself: the channels used when building the system, and its configuration\n"
@@ -127,7 +126,7 @@ msgstr ""
 "sistema: os canais usados na compilação do sistema e seu arquivo de\n"
 "configuração, quando disponível."
 
-#: gnu/services.scm:510
+#: gnu/services.scm:571
 msgid ""
 "Delete files from @file{/tmp}, @file{/var/run}, and other\n"
 "temporary locations at boot time."
@@ -135,7 +134,7 @@ msgstr ""
 "Exclui arquivos a partir de @file{/tmp}, @file{/var/run}\n"
 "e outros locais temporários no momento da inicialização."
 
-#: gnu/services.scm:564
+#: gnu/services.scm:625
 msgid ""
 "Run @dfn{activation} code at boot time and upon\n"
 "@command{guix system reconfigure} completion."
@@ -143,7 +142,7 @@ msgstr ""
 "Executa o código @dfn{activation} na inicialização e\n"
 "após conclusão com @command{guix system reconfigure}."
 
-#: gnu/services.scm:619
+#: gnu/services.scm:713
 msgid ""
 "Add special files to the root file system---e.g.,\n"
 "@file{/usr/bin/env}."
@@ -151,11 +150,16 @@ msgstr ""
 "Adiciona arquivos especiais ao sistema de arquivos raiz,\n"
 "por exemplo @file{/usr/bin/env}."
 
-#: gnu/services.scm:655
+#: gnu/services.scm:736
+#, scheme-format
+msgid "duplicate '~a' entry for /etc"
+msgstr ""
+
+#: gnu/services.scm:764
 msgid "Populate the @file{/etc} directory."
 msgstr "Popula o diretório @file{/etc}."
 
-#: gnu/services.scm:672
+#: gnu/services.scm:781
 msgid ""
 "Populate @file{/run/setuid-programs} with the specified\n"
 "executables, making them setuid-root."
@@ -163,7 +167,7 @@ msgstr ""
 "Preenche @file{/run/setuid-programs} com os executáveis\n"
 "especificados, tornando-os setuid-root."
 
-#: gnu/services.scm:692
+#: gnu/services.scm:801
 msgid ""
 "This is the @dfn{system profile}, available as\n"
 "@file{/run/current-system/profile}.  It contains packages that the sysadmin\n"
@@ -173,7 +177,7 @@ msgstr ""
 "@file{/run/current-system/profile}. Ele contém pacotes que o sysadmin\n"
 "quer que esteja globalmente disponível para todos os usuários do sistema."
 
-#: gnu/services.scm:712
+#: gnu/services.scm:821
 msgid ""
 "Make ``firmware'' files loadable by the operating system\n"
 "kernel.  Firmware may then be uploaded to some of the machine's devices, such\n"
@@ -183,7 +187,7 @@ msgstr ""
 "operacional. O firmware pode ser carregado em alguns dispositivos da máquina,\n"
 "como placas de rede WiFi."
 
-#: gnu/services.scm:743
+#: gnu/services.scm:852
 msgid ""
 "Register garbage-collector roots---i.e., store items that\n"
 "will not be reclaimed by the garbage collector."
@@ -191,57 +195,79 @@ msgstr ""
 "Registra raízes de coletor de lixo --- isto é, armazena\n"
 "itens que não serão recuperados pelo coletor de lixo."
 
-#: gnu/services.scm:769
+#: gnu/services.scm:878
 #, scheme-format
 msgid "no target of type '~a' for service '~a'"
 msgstr "nenhum alvo do tipo \"~a\" para o serviço \"~a\""
 
-#: gnu/services.scm:795 gnu/services.scm:914
+#: gnu/services.scm:904 gnu/services.scm:1023
 #, scheme-format
 msgid "more than one target service of type '~a'"
 msgstr "mais de um serviço alvo do tipo \"~a\""
 
-#: gnu/services.scm:904
+#: gnu/services.scm:1013
 #, scheme-format
 msgid "service of type '~a' not found"
 msgstr "serviço do tipo \"~a\" não localizado"
 
-#: gnu/system.scm:355
+#: gnu/system.scm:390
 #, scheme-format
 msgid "unrecognized boot parameters at '~a'~%"
 msgstr "parâmetros de inicialização não reconhecidos em \"~a\"~%"
 
-#: gnu/system.scm:793
+#: gnu/system.scm:926
 #, scheme-format
 msgid "using a string for file '~a' is deprecated; use 'plain-file' instead~%"
 msgstr "o uso de um texto para arquivo \"~a\" está obsoleto; em vez disso, use \"plain-file\"~%"
 
-#: gnu/system.scm:809
+#: gnu/system.scm:942
 #, scheme-format
 msgid "using a monadic value for '~a' is deprecated; use 'plain-file' instead~%"
 msgstr "o uso de um valor monádico para \"~a\" está obsoleto; em vez disso, use \"plain-file\"~%"
 
-#: gnu/system.scm:959
+#: gnu/system.scm:1069
+#, fuzzy
+#| msgid "initializing the current root file system~%"
+msgid "missing root file system"
+msgstr "inicialização do sistema de arquivos raiz atual~%"
+
+#: gnu/system.scm:1145
 #, scheme-format
 msgid "~a: invalid locale name"
 msgstr "~a: nome de localidade inválido"
 
-#: gnu/services/shepherd.scm:194
+#: gnu/services/shepherd.scm:112
+msgid ""
+"Run the GNU Shepherd as PID 1---i.e., the operating system's first\n"
+"process.  The Shepherd takes care of managing services such as daemons by\n"
+"ensuring they are started and stopped in the right order."
+msgstr ""
+
+#: gnu/services/shepherd.scm:202
 #, scheme-format
 msgid "service '~a' provided more than once"
 msgstr "serviço \"~a\" fornecido mais de uma vez"
 
-#: gnu/services/shepherd.scm:209
+#: gnu/services/shepherd.scm:217
 #, scheme-format
 msgid "service '~a' requires '~a', which is not provided by any service"
 msgstr "serviço \"~a\" requer \"~a\", o que não é fornecido por nenhum serviço"
 
-#: gnu/system/mapped-devices.scm:136
+#: gnu/services/shepherd.scm:547
+msgid ""
+"The @code{user-processes} service is responsible for\n"
+"terminating all the processes so that the root file system can be re-mounted\n"
+"read-only, just before rebooting/halting.  Processes still running after a few\n"
+"seconds after @code{SIGTERM} has been sent are terminated with\n"
+"@code{SIGKILL}."
+msgstr ""
+
+#: gnu/system/mapped-devices.scm:137
 #, scheme-format
 msgid "you may need these modules in the initrd for ~a:~{ ~a~}"
 msgstr "você pode precisar desses módulos no initrd para ~a:~{ ~a~}"
 
-#: gnu/system/mapped-devices.scm:140
+#: gnu/system/mapped-devices.scm:142
 #, scheme-format
 msgid ""
 "Try adding them to the\n"
@@ -272,7 +298,7 @@ msgstr ""
 "Se você acredita que esse diagnóstico está incorreto, use a opção\n"
 "@option{--skip-checks} de @command{guix system}.\n"
 
-#: gnu/system/mapped-devices.scm:219
+#: gnu/system/mapped-devices.scm:221
 #, scheme-format
 msgid "no LUKS partition with UUID '~a'"
 msgstr "nenhuma partição LUKS com UUID \"~a\""
@@ -287,49 +313,55 @@ msgstr "grupo suplementar \"~a\" do usuário \"~a\" não está declarado"
 msgid "primary group '~a' of user '~a' is undeclared"
 msgstr "grupo primário \"~a\" do usuário \"~a\" não está declarado"
 
-#: guix/import/opam.scm:141
+#: gnu/system/shadow.scm:383
+msgid ""
+"Ensure the specified user accounts and groups exist, as well\n"
+"as each account home directory."
+msgstr ""
+
+#: guix/import/opam.scm:148
 #, scheme-format
 msgid "Package not found in opam repository: ~a~%"
 msgstr "Pacote não encontrado no repositório opam: ~a~%"
 
-#: guix/import/opam.scm:357
+#: guix/import/opam.scm:368
 msgid "Updater for OPAM packages"
 msgstr "Atualizador para pacotes OPAM"
 
-#: gnu/installer.scm:215
+#: gnu/installer.scm:214
 msgid "Locale"
 msgstr "Localidade"
 
-#: gnu/installer.scm:231 gnu/installer/newt/timezone.scm:58
+#: gnu/installer.scm:230 gnu/installer/newt/timezone.scm:58
 msgid "Timezone"
 msgstr "Fuso horário"
 
-#: gnu/installer.scm:248
+#: gnu/installer.scm:247
 msgid "Keyboard mapping selection"
 msgstr "Seleção do mapeamento de teclado"
 
-#: gnu/installer.scm:257 gnu/installer/newt/hostname.scm:26
+#: gnu/installer.scm:256 gnu/installer/newt/hostname.scm:26
 msgid "Hostname"
 msgstr "Nome da máquina"
 
-#: gnu/installer.scm:266
+#: gnu/installer.scm:265
 msgid "Network selection"
 msgstr "Seleção de rede"
 
-#: gnu/installer.scm:273 gnu/installer/newt/user.scm:68
+#: gnu/installer.scm:272 gnu/installer/newt/user.scm:68
 #: gnu/installer/newt/user.scm:205
 msgid "User creation"
 msgstr "Criação de usuário"
 
-#: gnu/installer.scm:281
+#: gnu/installer.scm:280
 msgid "Services"
 msgstr "Serviços"
 
-#: gnu/installer.scm:292
+#: gnu/installer.scm:291
 msgid "Partitioning"
 msgstr "Particionamento"
 
-#: gnu/installer.scm:299 gnu/installer/newt/final.scm:52
+#: gnu/installer.scm:298 gnu/installer/newt/final.scm:53
 msgid "Configuration file"
 msgstr "Arquivo de configuração"
 
@@ -384,36 +416,36 @@ msgstr "Conexão ethernet"
 msgid "Exit"
 msgstr "Sair"
 
-#: gnu/installer/newt/final.scm:45
+#: gnu/installer/newt/final.scm:46
 #, scheme-format
 msgid "We're now ready to proceed with the installation! A system configuration file has been generated, it is displayed below.  This file will be available as '~a' on the installed system.  The new system will be created from this file once you've pressed OK.  This will take a few minutes."
 msgstr "Agora estamos prontos para prosseguir com a instalação! Um arquivo de configuração do sistema foi gerado e está exibido abaixo. Este arquivo estará disponível como \"~a\" no sistema instalado. O novo sistema será criado a partir desse arquivo depois que você pressionar OK. Isto levará alguns minutos."
 
-#: gnu/installer/newt/final.scm:69
+#: gnu/installer/newt/final.scm:70
 msgid "Installation complete"
 msgstr "Instalação concluída"
 
-#: gnu/installer/newt/final.scm:70 gnu/installer/newt/welcome.scm:139
+#: gnu/installer/newt/final.scm:71 gnu/installer/newt/welcome.scm:139
 msgid "Reboot"
 msgstr "Reiniciar"
 
-#: gnu/installer/newt/final.scm:71
+#: gnu/installer/newt/final.scm:72
 msgid "Congratulations!  Installation is now complete.  You may remove the device containing the installation image and press the button to reboot."
 msgstr "Parabéns! A instalação foi concluída. Você pode remover o dispositivo que contém a imagem de instalação e pressionar o botão para reinicializar."
 
-#: gnu/installer/newt/final.scm:85
+#: gnu/installer/newt/final.scm:86
 msgid "Installation failed"
 msgstr "Instalação falhou"
 
-#: gnu/installer/newt/final.scm:86
+#: gnu/installer/newt/final.scm:87
 msgid "Resume"
 msgstr "Continuar"
 
-#: gnu/installer/newt/final.scm:87
+#: gnu/installer/newt/final.scm:88
 msgid "Restart the installer"
 msgstr "Reiniciar o instalador"
 
-#: gnu/installer/newt/final.scm:88
+#: gnu/installer/newt/final.scm:89
 msgid "The final system installation step failed.  You can resume from a specific step, or restart the installer."
 msgstr "A etapa final de instalação do sistema falhou. Você pode continuar de uma etapa específica ou reiniciar o instalador."
 
@@ -1007,11 +1039,11 @@ msgstr "Nenhum WiFi detectado"
 msgid "Wifi"
 msgstr "WiFi"
 
-#: gnu/installer/parted.scm:395 gnu/installer/parted.scm:432
+#: gnu/installer/parted.scm:403 gnu/installer/parted.scm:440
 msgid "Free space"
 msgstr "Espaço livre"
 
-#: gnu/installer/parted.scm:1350
+#: gnu/installer/parted.scm:1370
 #, scheme-format
 msgid "Device ~a is still in use."
 msgstr "O dispositivo ~a ainda está em uso."
@@ -1050,22 +1082,22 @@ msgstr "Não foi possível localizar o caminho: ~a."
 msgid "Press Enter to continue.~%"
 msgstr "Pressione Enter para continuar.~%"
 
-#: gnu/installer/utils.scm:101
+#: gnu/installer/utils.scm:102
 #, scheme-format
 msgid "Command failed with exit code ~a.~%"
 msgstr "O comando falhou com código de saída ~a.~%"
 
-#: gnu/machine/ssh.scm:108
+#: gnu/machine/ssh.scm:113
 #, scheme-format
 msgid "<machine-ssh-configuration> without a 'host-key' is deprecated~%"
 msgstr "<machine-ssh-configuration> sem uma \"host-key\" está descontinuado~%"
 
-#: gnu/machine/ssh.scm:183
+#: gnu/machine/ssh.scm:188
 #, scheme-format
 msgid "device '~a' not found: ~a"
 msgstr "dispositivo \"~a\" não localizado: ~a"
 
-#: gnu/machine/ssh.scm:200
+#: gnu/machine/ssh.scm:203
 #, scheme-format
 msgid "no file system with label '~a'"
 msgstr "nenhum sistema de arquivos com rótulo \"~a\""
@@ -1080,21 +1112,21 @@ msgstr "nenhum sistema de arquivos com UUID \"~a\""
 msgid "missing modules for ~a:~{ ~a~}~%"
 msgstr "faltando módulos para ~a:~{ ~a~}~%"
 
-#: gnu/machine/ssh.scm:290
+#: gnu/machine/ssh.scm:309
 #, scheme-format
 msgid "incorrect target system ('~a' was given, while the system reports that it is '~a')~%"
 msgstr "sistema alvo incorreto (\"~a\" foi fornecido, enquanto os relatórios de sistema que é \"~a\")~%"
 
-#: gnu/machine/ssh.scm:407
+#: gnu/machine/ssh.scm:425
 #, scheme-format
 msgid "no signing key '~a'. have you run 'guix archive --generate-key?'"
 msgstr "nenhuma chave de assinatura \"~a\"; você executou \"guix archive --generate-key\"?"
 
-#: gnu/machine/ssh.scm:458
+#: gnu/machine/ssh.scm:476
 msgid "could not roll-back machine"
 msgstr "não foi possível reverter a máquina"
 
-#: gnu/machine/ssh.scm:490
+#: gnu/machine/ssh.scm:508
 msgid ""
 "Provisioning for machines that are accessible over SSH\n"
 "and have a known host-name. This entails little more than maintaining an SSH\n"
@@ -1104,7 +1136,7 @@ msgstr ""
 "um nome de máquina conhecido. Isso envolve pouco mais do que manter uma conexão\n"
 "SSH com a máquina."
 
-#: gnu/machine/ssh.scm:502
+#: gnu/machine/ssh.scm:518
 #, scheme-format
 msgid ""
 "unsupported machine configuration '~a'\n"
@@ -1113,46 +1145,66 @@ msgstr ""
 "configuração de máquina não suportada \"~a\"\n"
 "para ambiente do tipo \"~a\""
 
-#: gnu/packages/bootstrap.scm:137
+#: gnu/packages/bootstrap.scm:152
 #, scheme-format
 msgid "could not find bootstrap binary '~a' for system '~a'"
 msgstr "não foi possível localizar binário de inicialização \"~a\" para o sistema \"~a\""
 
-#: gnu/packages/bootstrap.scm:436
+#: gnu/packages/bootstrap.scm:459
 msgid "Raw build system with direct store access"
 msgstr "Sistema de compilação bruto com acesso direto ao armazenamento"
 
-#: gnu/packages/bootstrap.scm:444
+#: gnu/packages/bootstrap.scm:467
 msgid "Pre-built Guile for bootstrapping purposes."
 msgstr "Guile pré-compilado para o propósito de inicialização."
 
-#: guix/build/utils.scm:713
+#: guix/build/utils.scm:715
 #, scheme-format
 msgid "'~a~{ ~a~}' exited with status ~a; output follows:~%~%~{  ~a~%~}"
 msgstr "\"~a~{ ~a~}\" saiu com status ~a; saída a seguir:~%~%~{  ~a~%~}"
 
-#: guix/scripts.scm:61
+#: guix/scripts.scm:85
+msgid "main commands"
+msgstr ""
+
+#: guix/scripts.scm:86
+msgid "software development commands"
+msgstr ""
+
+#: guix/scripts.scm:87
+msgid "packaging commands"
+msgstr ""
+
+#: guix/scripts.scm:88
+msgid "plumbing commands"
+msgstr ""
+
+#: guix/scripts.scm:89
+msgid "internal commands"
+msgstr ""
+
+#: guix/scripts.scm:122
 #, scheme-format
 msgid "invalid argument: ~a~%"
 msgstr "argumento inválido: ~a~%"
 
-#: guix/scripts.scm:89 guix/scripts/download.scm:150
-#: guix/scripts/search.scm:69 guix/scripts/show.scm:69
+#: guix/scripts.scm:150 guix/scripts/download.scm:167
+#: guix/scripts/search.scm:71 guix/scripts/show.scm:71
 #: guix/scripts/import/cran.scm:84 guix/scripts/import/elpa.scm:84
-#: guix/scripts/publish.scm:1020 guix/scripts/edit.scm:87
-#: guix/scripts/describe.scm:258 guix/scripts/processes.scm:230
+#: guix/scripts/publish.scm:1023 guix/scripts/edit.scm:89
+#: guix/scripts/describe.scm:311 guix/scripts/processes.scm:232
 #, scheme-format
 msgid "~A: unrecognized option~%"
 msgstr "~A: opção não reconhecida~%"
 
-#: guix/scripts.scm:172
+#: guix/scripts.scm:233
 #, scheme-format
 msgid "Your Guix installation is ~a day old.\n"
 msgid_plural "Your Guix installation is ~a days old.\n"
 msgstr[0] "Sua instalação do Guix tem ~a dia.\n"
 msgstr[1] "Sua instalação do Guix tem ~a dias.\n"
 
-#: guix/scripts.scm:178
+#: guix/scripts.scm:239
 #, scheme-format
 msgid ""
 "Consider running 'guix pull' followed by\n"
@@ -1161,12 +1213,12 @@ msgstr ""
 "Considere executar \"guix pull\" seguido de\n"
 "\"~a\" para obter pacotes atualizados e atualizações de segurança.\n"
 
-#: guix/scripts.scm:242
+#: guix/scripts.scm:303
 #, scheme-format
 msgid "only ~,1f GiB of free space available on ~a~%"
 msgstr "apenas ~,1f GiB de espaço livre disponível ~a~%"
 
-#: guix/scripts.scm:244
+#: guix/scripts.scm:305
 msgid ""
 "Consider deleting old profile\n"
 "generations and collecting garbage, along these lines:\n"
@@ -1182,42 +1234,47 @@ msgstr ""
 "guix gc --delete-generations=1m\n"
 "@end example\n"
 
-#: guix/scripts/build.scm:88
+#: guix/scripts/build.scm:93
 #, scheme-format
 msgid "cannot access build log at '~a':~%"
 msgstr "não foi possível acessar o log de compilação em \"~a\"~%"
 
-#: guix/scripts/build.scm:142
+#: guix/scripts/build.scm:147
 #, scheme-format
 msgid "failed to create GC root `~a': ~a~%"
 msgstr "falha ao criar raiz de GC \"~a\": ~a~%"
 
-#: guix/scripts/build.scm:247 guix/scripts/build.scm:312
+#: guix/scripts/build.scm:252 guix/scripts/build.scm:317
 #, scheme-format
 msgid "invalid replacement specification: ~s~%"
 msgstr "especificação de substituição inválida: ~s~%"
 
-#: guix/scripts/build.scm:294
+#: guix/scripts/build.scm:299
 #, scheme-format
 msgid "the source of ~a is not a Git reference~%"
 msgstr "o fonte de ~a não é uma referência Git~%"
 
-#: guix/scripts/build.scm:382
+#: guix/scripts/build.scm:387
 #, scheme-format
 msgid "~a: invalid Git URL replacement specification~%"
 msgstr "~a: especificação de substituição de URL Git inválida~%"
 
-#: guix/scripts/build.scm:427
+#: guix/scripts/build.scm:462
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "      --with-source=SOURCE\n"
+#| "                         use SOURCE when building the corresponding package"
 msgid ""
 "\n"
-"      --with-source=SOURCE\n"
+"      --with-source=[PACKAGE=]SOURCE\n"
 "                         use SOURCE when building the corresponding package"
 msgstr ""
 "\n"
 "      --with-source=FONTE\n"
 "                         usa FONTE ao compilar o pacote correspondente"
 
-#: guix/scripts/build.scm:430
+#: guix/scripts/build.scm:465
 msgid ""
 "\n"
 "      --with-input=PACKAGE=REPLACEMENT\n"
@@ -1227,7 +1284,7 @@ msgstr ""
 "      --with-input=PACOTE=SUBSTITUIÇÃO\n"
 "                         substitui a dependência PACOTE por SUBSTITUIÇÃO"
 
-#: guix/scripts/build.scm:433
+#: guix/scripts/build.scm:468
 msgid ""
 "\n"
 "      --with-graft=PACKAGE=REPLACEMENT\n"
@@ -1237,7 +1294,7 @@ msgstr ""
 "      --with-graft=PACOTE=SUBSTITUIÇÃO\n"
 "                         insere SUBSTITUIÇÃO em pacotes referindo-se a PACOTE"
 
-#: guix/scripts/build.scm:436
+#: guix/scripts/build.scm:471
 msgid ""
 "\n"
 "      --with-branch=PACKAGE=BRANCH\n"
@@ -1247,7 +1304,7 @@ msgstr ""
 "      --with-branch=PACOTE=RAMO\n"
 "                         compila PACOTE do último commit de BRANCH"
 
-#: guix/scripts/build.scm:439
+#: guix/scripts/build.scm:474
 msgid ""
 "\n"
 "      --with-commit=PACKAGE=COMMIT\n"
@@ -1257,7 +1314,7 @@ msgstr ""
 "      --with-commit=PACOTE=COMMIT\n"
 "                         compila PACOTE do COMMIT"
 
-#: guix/scripts/build.scm:442
+#: guix/scripts/build.scm:477
 msgid ""
 "\n"
 "      --with-git-url=PACKAGE=URL\n"
@@ -1267,14 +1324,29 @@ msgstr ""
 "      --with-git-url=PACKAGE=URL\n"
 "                         compila PACOTE de repositório na URL"
 
-#: guix/scripts/build.scm:473
+#: guix/scripts/build.scm:480
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "      --with-git-url=PACKAGE=URL\n"
+#| "                         build PACKAGE from the repository at URL"
+msgid ""
+"\n"
+"      --without-tests=PACKAGE\n"
+"                         build PACKAGE without running its tests"
+msgstr ""
+"\n"
+"      --with-git-url=PACKAGE=URL\n"
+"                         compila PACOTE de repositório na URL"
+
+#: guix/scripts/build.scm:524
 #, scheme-format
 msgid "transformation '~a' had no effect on ~a~%"
 msgstr "a transformação \"~a\" não obteve efeito em ~a~%"
 
-#: guix/scripts/build.scm:491 guix/scripts/search.scm:41
+#: guix/scripts/build.scm:566 guix/scripts/search.scm:41
 #: guix/scripts/show.scm:41 guix/scripts/lint.scm:101 guix/scripts/edit.scm:48
-#: guix/scripts/size.scm:246 guix/scripts/graph.scm:509
+#: guix/scripts/size.scm:246 guix/scripts/graph.scm:546
 msgid ""
 "\n"
 "  -L, --load-path=DIR    prepend DIR to the package module search path"
@@ -1283,7 +1355,7 @@ msgstr ""
 "  -L, --load-path=DIR    insere DIR no início do caminho de pesquisa do\n"
 "                         módulo do pacote"
 
-#: guix/scripts/build.scm:493
+#: guix/scripts/build.scm:568
 msgid ""
 "\n"
 "  -K, --keep-failed      keep build tree of failed builds"
@@ -1291,7 +1363,7 @@ msgstr ""
 "\n"
 "  -K, --keep-failed      mantém a árvore de compilado de pacotes falhos"
 
-#: guix/scripts/build.scm:495
+#: guix/scripts/build.scm:570
 msgid ""
 "\n"
 "  -k, --keep-going       keep going when some of the derivations fail"
@@ -1299,7 +1371,7 @@ msgstr ""
 "\n"
 "  -k, --keep-going       continua mesmo se algumas das derivações falharem"
 
-#: guix/scripts/build.scm:497
+#: guix/scripts/build.scm:572
 msgid ""
 "\n"
 "  -n, --dry-run          do not build the derivations"
@@ -1307,7 +1379,7 @@ msgstr ""
 "\n"
 "  -n, --dry-run          não compila as derivações"
 
-#: guix/scripts/build.scm:499
+#: guix/scripts/build.scm:574
 msgid ""
 "\n"
 "      --fallback         fall back to building when the substituter fails"
@@ -1315,7 +1387,7 @@ msgstr ""
 "\n"
 "      --fallback         volta para compilação quando o substituto falhar"
 
-#: guix/scripts/build.scm:501
+#: guix/scripts/build.scm:576
 msgid ""
 "\n"
 "      --no-substitutes   build instead of resorting to pre-built substitutes"
@@ -1324,7 +1396,7 @@ msgstr ""
 "      --no-substitutes   compila, em vez de recorrer a substitutos\n"
 "                         pré-construídos"
 
-#: guix/scripts/build.scm:503 guix/scripts/size.scm:235
+#: guix/scripts/build.scm:578 guix/scripts/size.scm:235
 msgid ""
 "\n"
 "      --substitute-urls=URLS\n"
@@ -1334,7 +1406,7 @@ msgstr ""
 "      --substitute-urls=URLS\n"
 "                         obtém substituto a partir das URLS se autorizadas"
 
-#: guix/scripts/build.scm:506
+#: guix/scripts/build.scm:581
 msgid ""
 "\n"
 "      --no-grafts        do not graft packages"
@@ -1342,7 +1414,7 @@ msgstr ""
 "\n"
 "      --no-grafts        não faz gráficos de pacotes"
 
-#: guix/scripts/build.scm:508
+#: guix/scripts/build.scm:583
 msgid ""
 "\n"
 "      --no-offload       do not attempt to offload builds"
@@ -1350,7 +1422,7 @@ msgstr ""
 "\n"
 "      --no-offload       não tenta descarregar compilações"
 
-#: guix/scripts/build.scm:510
+#: guix/scripts/build.scm:585
 msgid ""
 "\n"
 "      --max-silent-time=SECONDS\n"
@@ -1361,7 +1433,7 @@ msgstr ""
 "                         marca a compilação como falha após transcorridos\n"
 "                         SEGUNDOS de silêncio"
 
-#: guix/scripts/build.scm:513
+#: guix/scripts/build.scm:588
 msgid ""
 "\n"
 "      --timeout=SECONDS  mark the build as failed after SECONDS of activity"
@@ -1371,7 +1443,7 @@ msgstr ""
 "                         marca a compilação como falha após transcorridos\n"
 "                         SEGUNDOS de atividade"
 
-#: guix/scripts/build.scm:515
+#: guix/scripts/build.scm:590
 msgid ""
 "\n"
 "      --rounds=N         build N times in a row to detect non-determinism"
@@ -1380,7 +1452,7 @@ msgstr ""
 "      --rounds=N         compila N vezes de uma vez para detectar\n"
 "                         não determinismo"
 
-#: guix/scripts/build.scm:517
+#: guix/scripts/build.scm:592
 msgid ""
 "\n"
 "  -c, --cores=N          allow the use of up to N CPU cores for the build"
@@ -1388,7 +1460,7 @@ msgstr ""
 "\n"
 "  -c, --cores=N          permite uso de até N núcleos de CPU para compilação"
 
-#: guix/scripts/build.scm:519
+#: guix/scripts/build.scm:594
 msgid ""
 "\n"
 "  -M, --max-jobs=N       allow at most N build jobs"
@@ -1396,7 +1468,7 @@ msgstr ""
 "\n"
 "  -M, --max-jobs=N       permite no máximo N trabalhos de compilação"
 
-#: guix/scripts/build.scm:521
+#: guix/scripts/build.scm:596
 msgid ""
 "\n"
 "      --debug=LEVEL      produce debugging output at LEVEL"
@@ -1404,21 +1476,21 @@ msgstr ""
 "\n"
 "      --debug=NÍVEL      produz uma saída de depuração no NÍVEL"
 
-#: guix/scripts/build.scm:538
+#: guix/scripts/build.scm:613
 msgid "'--keep-failed' ignored since you are talking to a remote daemon\n"
 msgstr "\"--keep-failed\" ignorada já que você está falando com um daemon remoto\n"
 
-#: guix/scripts/build.scm:619
+#: guix/scripts/build.scm:694
 #, scheme-format
 msgid "'--no-build-hook' is deprecated; use '--no-offload' instead~%"
 msgstr "\"--no-build-hook\" está descontinuado; use \"--no-offload\"~%"
 
-#: guix/scripts/build.scm:649 guix/scripts/build.scm:656
+#: guix/scripts/build.scm:724 guix/scripts/build.scm:731
 #, scheme-format
 msgid "not a number: '~a' option argument: ~a~%"
 msgstr "não é um número: argumento da opção \"~a\": ~a~%"
 
-#: guix/scripts/build.scm:677
+#: guix/scripts/build.scm:752
 msgid ""
 "Usage: guix build [OPTION]... PACKAGE-OR-DERIVATION...\n"
 "Build the given PACKAGE-OR-DERIVATION and return their output paths.\n"
@@ -1426,7 +1498,7 @@ msgstr ""
 "Uso: guix build [OPÇÃO]... PACOTE-OU-DERIVAÇÃO...\n"
 "Compila o PACOTE-OU-DERIVAÇÃO dado e returna seus caminhos de saída.\n"
 
-#: guix/scripts/build.scm:679
+#: guix/scripts/build.scm:754
 msgid ""
 "\n"
 "  -e, --expression=EXPR  build the package or derivation EXPR evaluates to"
@@ -1434,7 +1506,7 @@ msgstr ""
 "\n"
 "  -e, --expression=EXPR  compila o pacote ou derivação que EXPR corresponder"
 
-#: guix/scripts/build.scm:681
+#: guix/scripts/build.scm:756
 msgid ""
 "\n"
 "  -f, --file=FILE        build the package or derivation that the code within\n"
@@ -1444,7 +1516,7 @@ msgstr ""
 "  -f, --file=ARQUIVO     compila o pacote ou derivação que o código dentro\n"
 "                         de ARQUIVO avaliar"
 
-#: guix/scripts/build.scm:684
+#: guix/scripts/build.scm:759
 msgid ""
 "\n"
 "  -m, --manifest=FILE    build the packages that the manifest given in FILE\n"
@@ -1454,7 +1526,7 @@ msgstr ""
 "  -m, --manifest=ARQUIVO compila os pacotes que o manifesto dado no ARQUIVO\n"
 "                         avaliar"
 
-#: guix/scripts/build.scm:687
+#: guix/scripts/build.scm:762
 msgid ""
 "\n"
 "  -S, --source           build the packages' source derivations"
@@ -1462,7 +1534,7 @@ msgstr ""
 "\n"
 "  -S, --source           compila as derivações de fontes do pacote"
 
-#: guix/scripts/build.scm:689
+#: guix/scripts/build.scm:764
 msgid ""
 "\n"
 "      --sources[=TYPE]   build source derivations; TYPE may optionally be one\n"
@@ -1472,8 +1544,8 @@ msgstr ""
 "      --sources[=TIPO]   compila derivações de fonte; como opção, TIPO pode\n"
 "                         um entre \"package\", \"all\" (padrão) ou \"transitive\""
 
-#: guix/scripts/build.scm:692 guix/scripts/pull.scm:114
-#: guix/scripts/pack.scm:925
+#: guix/scripts/build.scm:767 guix/scripts/pull.scm:120
+#: guix/scripts/pack.scm:1056
 msgid ""
 "\n"
 "  -s, --system=SYSTEM    attempt to build for SYSTEM--e.g., \"i686-linux\""
@@ -1481,8 +1553,8 @@ msgstr ""
 "\n"
 "  -s, --system=SISTEMA   tenta compilar para SISTEMA (ex.: \"i686-linux\")"
 
-#: guix/scripts/build.scm:694 guix/scripts/system.scm:963
-#: guix/scripts/pack.scm:927
+#: guix/scripts/build.scm:769 guix/scripts/system.scm:992
+#: guix/scripts/pack.scm:1058
 msgid ""
 "\n"
 "      --target=TRIPLET   cross-build for TRIPLET--e.g., \"armel-linux-gnu\""
@@ -1490,7 +1562,7 @@ msgstr ""
 "\n"
 "      --target=TRIO      compilação cruzada para TRIO (ex: \"armel-linux-gnu\")"
 
-#: guix/scripts/build.scm:696
+#: guix/scripts/build.scm:771
 msgid ""
 "\n"
 "  -d, --derivations      return the derivation paths of the given packages"
@@ -1498,7 +1570,7 @@ msgstr ""
 "\n"
 "  -d, --derivations      retorna os caminhos de derivação dos pacotes dados"
 
-#: guix/scripts/build.scm:698
+#: guix/scripts/build.scm:773
 msgid ""
 "\n"
 "      --check            rebuild items to check for non-determinism issues"
@@ -1507,7 +1579,7 @@ msgstr ""
 "      --check            recompila itens para verificar questões de\n"
 "                         não determinismo"
 
-#: guix/scripts/build.scm:700
+#: guix/scripts/build.scm:775
 msgid ""
 "\n"
 "      --repair           repair the specified items"
@@ -1515,7 +1587,7 @@ msgstr ""
 "\n"
 "      --repair           conserta os itens especificados"
 
-#: guix/scripts/build.scm:702 guix/scripts/pack.scm:945
+#: guix/scripts/build.scm:777 guix/scripts/pack.scm:1076
 msgid ""
 "\n"
 "  -r, --root=FILE        make FILE a symlink to the result, and register it\n"
@@ -1525,11 +1597,11 @@ msgstr ""
 "  -r, --root=ARQUIVO     faz do ARQUIVO um link simbólico para o resultado\n"
 "                          e o registra, como um coletor de lixo"
 
-#: guix/scripts/build.scm:705 guix/scripts/package.scm:371
+#: guix/scripts/build.scm:780 guix/scripts/package.scm:384
 #: guix/scripts/install.scm:36 guix/scripts/remove.scm:36
-#: guix/scripts/upgrade.scm:36 guix/scripts/pull.scm:112
-#: guix/scripts/system.scm:965 guix/scripts/copy.scm:111
-#: guix/scripts/pack.scm:950 guix/scripts/deploy.scm:58
+#: guix/scripts/upgrade.scm:37 guix/scripts/pull.scm:118
+#: guix/scripts/system.scm:994 guix/scripts/copy.scm:115
+#: guix/scripts/pack.scm:1081 guix/scripts/deploy.scm:58
 msgid ""
 "\n"
 "  -v, --verbosity=LEVEL  use the given verbosity LEVEL"
@@ -1537,7 +1609,7 @@ msgstr ""
 "\n"
 "  -v, --verbosity=NÍVEL  usa o NÍVEL de detalhamento dado"
 
-#: guix/scripts/build.scm:707
+#: guix/scripts/build.scm:782
 msgid ""
 "\n"
 "  -q, --quiet            do not show the build log"
@@ -1545,7 +1617,7 @@ msgstr ""
 "\n"
 "  -q, --quiet            não mostra o log de compilação"
 
-#: guix/scripts/build.scm:709
+#: guix/scripts/build.scm:784
 msgid ""
 "\n"
 "      --log-file         return the log file names for the given derivations"
@@ -1554,20 +1626,21 @@ msgstr ""
 "      --log-file         retorna o os nomes de arquivos de log para as\n"
 "                         derivações fornecidas"
 
-#: guix/scripts/build.scm:716 guix/scripts/download.scm:98
-#: guix/scripts/package.scm:389 guix/scripts/install.scm:43
-#: guix/scripts/remove.scm:41 guix/scripts/upgrade.scm:43
+#: guix/scripts/build.scm:791 guix/scripts/download.scm:103
+#: guix/scripts/package.scm:402 guix/scripts/install.scm:43
+#: guix/scripts/remove.scm:41 guix/scripts/upgrade.scm:44
 #: guix/scripts/search.scm:36 guix/scripts/show.scm:36 guix/scripts/gc.scm:88
-#: guix/scripts/hash.scm:60 guix/scripts/import.scm:94
-#: guix/scripts/import/cran.scm:47 guix/scripts/pull.scm:120
-#: guix/scripts/substitute.scm:855 guix/scripts/system.scm:968
-#: guix/scripts/lint.scm:104 guix/scripts/publish.scm:98
+#: guix/scripts/git.scm:34 guix/scripts/git/authenticate.scm:110
+#: guix/scripts/hash.scm:65 guix/scripts/import.scm:95
+#: guix/scripts/import/cran.scm:47 guix/scripts/pull.scm:126
+#: guix/scripts/substitute.scm:857 guix/scripts/system.scm:997
+#: guix/scripts/lint.scm:104 guix/scripts/publish.scm:97
 #: guix/scripts/edit.scm:51 guix/scripts/size.scm:249
-#: guix/scripts/graph.scm:514 guix/scripts/challenge.scm:423
-#: guix/scripts/copy.scm:116 guix/scripts/pack.scm:955
-#: guix/scripts/weather.scm:293 guix/scripts/describe.scm:76
+#: guix/scripts/graph.scm:551 guix/scripts/challenge.scm:423
+#: guix/scripts/copy.scm:120 guix/scripts/pack.scm:1086
+#: guix/scripts/weather.scm:293 guix/scripts/describe.scm:95
 #: guix/scripts/processes.scm:214 guix/scripts/deploy.scm:53
-#: guix/scripts/container.scm:34 guix/scripts/container/exec.scm:43
+#: guix/scripts/container.scm:35 guix/scripts/container/exec.scm:43
 msgid ""
 "\n"
 "  -h, --help             display this help and exit"
@@ -1575,20 +1648,21 @@ msgstr ""
 "\n"
 "  -h, --help             exibe esta ajuda e sai"
 
-#: guix/scripts/build.scm:718 guix/scripts/download.scm:100
-#: guix/scripts/package.scm:391 guix/scripts/install.scm:45
-#: guix/scripts/remove.scm:43 guix/scripts/upgrade.scm:45
+#: guix/scripts/build.scm:793 guix/scripts/download.scm:105
+#: guix/scripts/package.scm:404 guix/scripts/install.scm:45
+#: guix/scripts/remove.scm:43 guix/scripts/upgrade.scm:46
 #: guix/scripts/search.scm:38 guix/scripts/show.scm:38 guix/scripts/gc.scm:90
-#: guix/scripts/hash.scm:62 guix/scripts/import.scm:96
-#: guix/scripts/import/cran.scm:51 guix/scripts/pull.scm:122
-#: guix/scripts/substitute.scm:857 guix/scripts/system.scm:970
-#: guix/scripts/lint.scm:108 guix/scripts/publish.scm:100
+#: guix/scripts/git.scm:36 guix/scripts/git/authenticate.scm:112
+#: guix/scripts/hash.scm:67 guix/scripts/import.scm:97
+#: guix/scripts/import/cran.scm:51 guix/scripts/pull.scm:128
+#: guix/scripts/substitute.scm:859 guix/scripts/system.scm:999
+#: guix/scripts/lint.scm:108 guix/scripts/publish.scm:99
 #: guix/scripts/edit.scm:53 guix/scripts/size.scm:251
-#: guix/scripts/graph.scm:516 guix/scripts/challenge.scm:425
-#: guix/scripts/copy.scm:118 guix/scripts/pack.scm:957
-#: guix/scripts/weather.scm:295 guix/scripts/describe.scm:78
+#: guix/scripts/graph.scm:553 guix/scripts/challenge.scm:425
+#: guix/scripts/copy.scm:122 guix/scripts/pack.scm:1088
+#: guix/scripts/weather.scm:295 guix/scripts/describe.scm:97
 #: guix/scripts/processes.scm:216 guix/scripts/deploy.scm:55
-#: guix/scripts/container.scm:36 guix/scripts/container/exec.scm:45
+#: guix/scripts/container.scm:37 guix/scripts/container/exec.scm:45
 msgid ""
 "\n"
 "  -V, --version          display version information and exit"
@@ -1596,7 +1670,7 @@ msgstr ""
 "\n"
 "  -V, --version          exibe informações da versão e sai"
 
-#: guix/scripts/build.scm:745
+#: guix/scripts/build.scm:820
 #, scheme-format
 msgid ""
 "invalid argument: '~a' option argument: ~a, ~\n"
@@ -1605,17 +1679,41 @@ msgstr ""
 "argumento inválido: argumento da opção \"~a\": ~a, ~\n"
 "deve ser um entre \"package\", \"all\" ou \"transitive\"~%"
 
-#: guix/scripts/build.scm:806
+#: guix/scripts/build.scm:882
 #, scheme-format
 msgid "~s: not something we can build~%"
 msgstr "~s: não é algo que podemos compilar~%"
 
-#: guix/scripts/build.scm:888
+#: guix/scripts/build.scm:887
+msgid ""
+"If you build from a file, make sure the last Scheme\n"
+"expression returns a package value.  @code{define-public} defines a variable,\n"
+"but returns @code{#<unspecified>}.  To fix this, add a Scheme expression at\n"
+"the end of the file that consists only of the package's variable name you\n"
+"defined, as in this example:\n"
+"\n"
+"@example\n"
+"(define-public my-package\n"
+"  (package\n"
+"    ...))\n"
+"\n"
+"my-package\n"
+"@end example"
+msgstr ""
+
+#: guix/scripts/build.scm:900
+msgid ""
+"If you build from a file, make sure the last\n"
+"Scheme expression returns a package, gexp, derivation or a list of such\n"
+"values."
+msgstr ""
+
+#: guix/scripts/build.scm:987
 #, scheme-format
 msgid "package '~a' has no source~%"
 msgstr "pacote \"~a\" não possui fontes~%"
 
-#: guix/scripts/build.scm:936
+#: guix/scripts/build.scm:1035
 #, scheme-format
 msgid "no build log for '~a'~%"
 msgstr "nenhum log de compilação para \"~a\"~%"
@@ -1625,15 +1723,15 @@ msgstr "nenhum log de compilação para \"~a\"~%"
 msgid "cannot access `~a': ~a~%"
 msgstr "não foi possível acessar \"~a\": ~a~%"
 
-#: guix/lint.scm:180
+#: guix/lint.scm:184
 msgid "description should not be empty"
 msgstr "a descrição deve não estar vazia"
 
-#: guix/lint.scm:191
+#: guix/lint.scm:195
 msgid "Texinfo markup in description is invalid"
 msgstr "a marcação Texinfo na descrição é inválida"
 
-#: guix/lint.scm:201
+#: guix/lint.scm:205
 #, scheme-format
 msgid ""
 "description should not contain ~\n"
@@ -1644,15 +1742,15 @@ msgstr ""
 
 #. TRANSLATORS: '@code' is Texinfo markup and must be kept
 #. as is.
-#: guix/lint.scm:214
+#: guix/lint.scm:218
 msgid "use @code or similar ornament instead of quotes"
 msgstr "use @code ou ornamento similar em vez de aspas"
 
-#: guix/lint.scm:226
+#: guix/lint.scm:230
 msgid "description should start with an upper-case letter or digit"
 msgstr "a descrição deve iniciar com uma letra maiúscula ou dígito"
 
-#: guix/lint.scm:244
+#: guix/lint.scm:248
 #, scheme-format
 msgid ""
 "sentences in description should be followed ~\n"
@@ -1661,197 +1759,202 @@ msgstr ""
 "sentenças nas descrição devem ser seguidas ~\n"
 "por dois espaços; possível infração~p em ~{~a~^, ~}"
 
-#: guix/lint.scm:265
+#: guix/lint.scm:269
 #, scheme-format
 msgid "invalid description: ~s"
 msgstr "a descrição inválida: ~s"
 
-#: guix/lint.scm:334
+#: guix/lint.scm:339
 #, scheme-format
 msgid "'~a' should probably be a native input"
 msgstr "\"~a\" provavelmente é uma entrada nativa"
 
-#: guix/lint.scm:349
+#: guix/lint.scm:354
 #, scheme-format
 msgid "'~a' should probably not be an input at all"
 msgstr "\"~a\" provavelmente deve não ser uma entrada"
 
-#: guix/lint.scm:370
+#: guix/lint.scm:375
 msgid "no period allowed at the end of the synopsis"
 msgstr "nenhum ponto permitido ao final da sinopse"
 
-#: guix/lint.scm:384
+#: guix/lint.scm:389
 msgid "no article allowed at the beginning of the synopsis"
 msgstr "nenhum artigo permitido no início da sinopse"
 
-#: guix/lint.scm:393
+#: guix/lint.scm:398
 msgid "synopsis should be less than 80 characters long"
 msgstr "a sinopse deve ser menor que 80 caracteres"
 
-#: guix/lint.scm:402
+#: guix/lint.scm:407
 msgid "synopsis should start with an upper-case letter or digit"
 msgstr "a sinopse deve iniciar com uma letra maiúscula ou dígito"
 
-#: guix/lint.scm:410
+#: guix/lint.scm:415
 msgid "synopsis should not start with the package name"
 msgstr "a sinopse deve não iniciar com o nome do pacote"
 
-#: guix/lint.scm:424
+#: guix/lint.scm:429
 msgid "Texinfo markup in synopsis is invalid"
 msgstr "Marcação Texinfo na sinopse é inválida"
 
-#: guix/lint.scm:439
+#: guix/lint.scm:444
 msgid "synopsis should not be empty"
 msgstr "a sinopse deve não estar vazia"
 
-#: guix/lint.scm:449
+#: guix/lint.scm:454
 #, scheme-format
 msgid "invalid synopsis: ~s"
 msgstr "sinopse inválida: ~s"
 
-#: guix/lint.scm:567
+#: guix/lint.scm:572
 #, scheme-format
 msgid "URI ~a returned suspiciously small file (~a bytes)"
 msgstr "a URI ~a retornou um arquivo suspeitosamente pequeno (~a bytes)"
 
-#: guix/lint.scm:576
+#: guix/lint.scm:581
 #, scheme-format
 msgid "permanent redirect from ~a to ~a"
 msgstr "redirecionamento permanente de ~a para ~a"
 
-#: guix/lint.scm:582
+#: guix/lint.scm:587
 #, scheme-format
 msgid "invalid permanent redirect from ~a"
 msgstr "redirecionamento permanente inválido de ~a"
 
-#: guix/lint.scm:588 guix/lint.scm:598
+#: guix/lint.scm:593 guix/lint.scm:603
 #, scheme-format
 msgid "URI ~a not reachable: ~a (~s)"
 msgstr "a URI ~a não é alcançável: ~a (~s)"
 
-#: guix/lint.scm:604
+#: guix/lint.scm:609
 #, scheme-format
 msgid "URI ~a domain not found: ~a"
 msgstr "o domínio da URI ~a não foi localizado: ~a"
 
-#: guix/lint.scm:610
+#: guix/lint.scm:615
 #, scheme-format
 msgid "URI ~a unreachable: ~a"
 msgstr "URI ~a inalcançável: ~a"
 
-#: guix/lint.scm:618
+#: guix/lint.scm:623
 #, scheme-format
 msgid "TLS certificate error: ~a"
 msgstr "erro de certificado TLS: ~a"
 
-#: guix/lint.scm:645
+#: guix/lint.scm:650
 msgid "invalid value for home page"
 msgstr "valor inválido para página inicial"
 
-#: guix/lint.scm:650
+#: guix/lint.scm:655
 #, scheme-format
 msgid "invalid home page URL: ~s"
 msgstr "URL de página inicial inválida: ~s"
 
-#: guix/lint.scm:683
+#: guix/lint.scm:698
 msgid "file names of patches should start with the package name"
 msgstr "nomes de arquivos de patches devem iniciar com o nome do pacote"
 
-#: guix/lint.scm:699
+#: guix/lint.scm:714
 #, scheme-format
 msgid "~a: file name is too long"
 msgstr "~a: o nome de arquivo é longo demais"
 
-#: guix/lint.scm:741
+#: guix/lint.scm:756
 #, scheme-format
 msgid "proposed synopsis: ~s~%"
 msgstr "sinopse proposta: ~s~%"
 
-#: guix/lint.scm:755
+#: guix/lint.scm:770
 #, scheme-format
 msgid "proposed description:~%     \"~a\"~%"
 msgstr "descrição proposta:~%     \"~a\"~%"
 
-#: guix/lint.scm:802
+#: guix/lint.scm:821
 msgid "all the source URIs are unreachable:"
 msgstr "todas as URIs fontes estão inalcançáveis:"
 
-#: guix/lint.scm:826
+#: guix/lint.scm:850
 msgid "the source file name should contain the package name"
 msgstr "o nome de arquivo fonte deve conter o nome do pacote"
 
-#: guix/lint.scm:838
+#: guix/lint.scm:862
 msgid "the source URI should not be an autogenerated tarball"
 msgstr "a URI fonte não deve ser um tarball gerado automaticamente"
 
-#: guix/lint.scm:862
+#: guix/lint.scm:886
 #, scheme-format
 msgid "URL should be 'mirror://~a/~a'"
 msgstr "a URL deve ser \"mirror://~a/~a\""
 
-#: guix/lint.scm:907
+#: guix/lint.scm:931
 #, scheme-format
 msgid "URL should be '~a'"
 msgstr "a URL deve ser \"~a\""
 
-#: guix/lint.scm:929 guix/lint.scm:940
+#: guix/lint.scm:953 guix/lint.scm:964 guix/lint.scm:972
 #, scheme-format
 msgid "failed to create ~a derivation: ~a"
 msgstr "falha ao criar a derivação de ~a: ~a"
 
-#: guix/lint.scm:934 guix/lint.scm:955
+#: guix/lint.scm:958 guix/lint.scm:986
 #, scheme-format
 msgid "failed to create ~a derivation: ~s"
 msgstr "falha ao criar a derivação de ~a: ~s"
 
-#: guix/lint.scm:975
+#: guix/lint.scm:1014
+#, scheme-format
+msgid "propagated inputs ~a and ~a collide"
+msgstr ""
+
+#: guix/lint.scm:1038
 msgid "invalid license field"
 msgstr "campo de licença inválido"
 
-#: guix/lint.scm:982
+#: guix/lint.scm:1045
 #, scheme-format
 msgid "~a: HTTP GET error for ~a: ~a (~s)~%"
 msgstr "~a: erro HTTP GET para ~a: ~a (~s)~%"
 
-#: guix/lint.scm:992
+#: guix/lint.scm:1055
 #, scheme-format
 msgid "~a: host lookup failure: ~a~%"
 msgstr "~a: falha ao procurar o host: ~a~%"
 
-#: guix/lint.scm:997
+#: guix/lint.scm:1060
 #, scheme-format
 msgid "~a: TLS certificate error: ~a"
 msgstr "~a: erro de certificado TLS: ~a"
 
-#: guix/lint.scm:1008 guix/ui.scm:795
+#: guix/lint.scm:1071 guix/ui.scm:841
 #, scheme-format
 msgid "~a: ~a~%"
 msgstr "~a: ~a~%"
 
-#: guix/lint.scm:1022
+#: guix/lint.scm:1085
 msgid "while retrieving CVE vulnerabilities"
 msgstr "ao obter vulnerabilidades CVE"
 
-#: guix/lint.scm:1065
+#: guix/lint.scm:1128
 #, scheme-format
 msgid "probably vulnerable to ~a"
 msgstr "provavelmente vulnerável a ~a"
 
-#: guix/lint.scm:1072
+#: guix/lint.scm:1135
 #, scheme-format
 msgid "while retrieving upstream info for '~a'"
 msgstr "ao obter informações do upstream para \"~a\""
 
-#: guix/lint.scm:1081
+#: guix/lint.scm:1144
 #, scheme-format
 msgid "can be upgraded to ~a"
 msgstr "pode ser atualizado para ~a"
 
-#: guix/lint.scm:1099
+#: guix/lint.scm:1162
 msgid "Software Heritage rate limit reached; try again later"
 msgstr "Limite de taxa de Software Heritage atingido; tente novamente mais tarde"
 
-#: guix/lint.scm:1103
+#: guix/lint.scm:1166
 #, scheme-format
 msgid "'~a' returned ~a"
 msgstr "\"~a\" retornou ~a"
@@ -1859,123 +1962,138 @@ msgstr "\"~a\" retornou ~a"
 #. TRANSLATORS: "Software Heritage" is a proper noun
 #. that must remain untranslated.  See
 #. <https://www.softwareheritage.org>.
-#: guix/lint.scm:1142
+#: guix/lint.scm:1205
 msgid "scheduled Software Heritage archival"
 msgstr "arquivamento Software Heritage agendado"
 
-#: guix/lint.scm:1148
+#: guix/lint.scm:1211
 msgid "archival rate limit exceeded; try again later"
 msgstr "taxa limite de arquivamento excedida; tente novamente mais tarde"
 
-#: guix/lint.scm:1160
+#: guix/lint.scm:1226
 msgid "source not archived on Software Heritage"
 msgstr "fonte não arquivada no Software Heritage"
 
-#: guix/lint.scm:1173
+#: guix/lint.scm:1239
 msgid "while connecting to Software Heritage"
 msgstr "enquanto conectava ao Software Heritage"
 
-#: guix/lint.scm:1188
+#: guix/lint.scm:1254
 #, scheme-format
 msgid "tabulation on line ~a, column ~a"
 msgstr "tabulação na linha ~a, coluna ~a"
 
-#: guix/lint.scm:1200
+#: guix/lint.scm:1266
 #, scheme-format
 msgid "trailing white space on line ~a"
 msgstr "espaço ao final da linha ~a"
 
-#: guix/lint.scm:1214
+#: guix/lint.scm:1280
 #, scheme-format
 msgid "line ~a is way too long (~a characters)"
 msgstr "a linha ~a está grande demais (~a caracteres)"
 
-#: guix/lint.scm:1228
+#: guix/lint.scm:1294
 msgid "parentheses feel lonely, move to the previous or next line"
 msgstr "parênteses se sentem sozinhos, mova para a linha anterior ou a seguinte"
 
-#: guix/lint.scm:1309
+#: guix/lint.scm:1371
+#, fuzzy
+#| msgid "module ~a not found"
+msgid "source file not found"
+msgstr "módulo ~a não localizado"
+
+#: guix/lint.scm:1383
 msgid "Validate package descriptions"
 msgstr "Valida descrições dos pacotes"
 
-#: guix/lint.scm:1313
+#: guix/lint.scm:1387
 msgid "Identify inputs that should be native inputs"
 msgstr "Identifica entradas que devem ser nativas"
 
-#: guix/lint.scm:1317
+#: guix/lint.scm:1391
 msgid "Identify inputs that shouldn't be inputs at all"
 msgstr "Identifica entradas que podem ser entradas"
 
 #. TRANSLATORS: <license> is the name of a data type and must not be
 #. translated.
-#: guix/lint.scm:1323
+#: guix/lint.scm:1397
 msgid "Make sure the 'license' field is a <license> or a list thereof"
 msgstr "Certifica que o campo \"license\" é um <license> ou uma lista disto"
 
-#: guix/lint.scm:1328
+#: guix/lint.scm:1402
 msgid "Suggest 'mirror://' URLs"
 msgstr "Sugere URLs \"mirror://\""
 
-#: guix/lint.scm:1332
+#: guix/lint.scm:1406
 msgid "Validate file names of sources"
 msgstr "Valida nomes de arquivos dos fontes"
 
-#: guix/lint.scm:1336
+#: guix/lint.scm:1410
 msgid "Check for autogenerated tarballs"
 msgstr "Verifica para tarballs gerados automaticamente"
 
-#: guix/lint.scm:1340
+#: guix/lint.scm:1414
 msgid "Report failure to compile a package to a derivation"
 msgstr "Relata falha ao compilar um pacote para uma derivação"
 
-#: guix/lint.scm:1345
+#: guix/lint.scm:1419
+msgid "Report collisions that would occur due to propagated inputs"
+msgstr ""
+
+#: guix/lint.scm:1424
 msgid "Validate file names and availability of patches"
 msgstr "Valida nomes de arquivos e disponibilidade de patches"
 
-#: guix/lint.scm:1349
+#: guix/lint.scm:1428
 msgid "Look for formatting issues in the source"
 msgstr "Procura por problemas de formatação no fonte"
 
-#: guix/lint.scm:1356
+#: guix/lint.scm:1435
 msgid "Validate package synopses"
 msgstr "Valida sinopses do pacotes"
 
-#: guix/lint.scm:1360
+#: guix/lint.scm:1439
 msgid "Validate synopsis & description of GNU packages"
 msgstr "Valida sinopse & descrição de pacotes GNU"
 
-#: guix/lint.scm:1364
+#: guix/lint.scm:1443
 msgid "Validate home-page URLs"
 msgstr "Valida URLs de site"
 
-#: guix/lint.scm:1368
+#: guix/lint.scm:1447
 msgid "Validate source URLs"
 msgstr "Valida URLs fonte"
 
-#: guix/lint.scm:1372
+#: guix/lint.scm:1451
 msgid "Suggest GitHub URLs"
 msgstr "Sugere URLs do GitHub"
 
-#: guix/lint.scm:1376
+#: guix/lint.scm:1455
 msgid "Check the Common Vulnerabilities and Exposures (CVE) database"
 msgstr "Verifica o banco de dados de Vulnerabilidades e Exposições Comuns (CVE)"
 
-#: guix/lint.scm:1381
+#: guix/lint.scm:1460
 msgid "Check the package for new upstream releases"
 msgstr "Verifica o pacote por novos lançamentos do upstream"
 
-#: guix/lint.scm:1385
+#: guix/lint.scm:1464
 msgid "Ensure source code archival on Software Heritage"
 msgstr "Força arquivamento do código-fonte no Software Heritage"
 
-#: guix/scripts/download.scm:84
+#: guix/scripts/download.scm:86
+#, fuzzy
+#| msgid ""
+#| "Usage: guix download [OPTION] URL\n"
+#| "Download the file at URL to the store or to the given file, and print its\n"
+#| "file name and the hash of its contents.\n"
+#| "\n"
+#| "Supported formats: 'nix-base32' (default), 'base32', and 'base16'\n"
+#| "('hex' and 'hexadecimal' can be used as well).\n"
 msgid ""
 "Usage: guix download [OPTION] URL\n"
 "Download the file at URL to the store or to the given file, and print its\n"
 "file name and the hash of its contents.\n"
-"\n"
-"Supported formats: 'nix-base32' (default), 'base32', and 'base16'\n"
-"('hex' and 'hexadecimal' can be used as well).\n"
 msgstr ""
 "Uso: guix download [OPÇÃO] URL\n"
 "Baixa o arquivo da URL para o armazenamento ou o arquivo dado, e exibe seu\n"
@@ -1984,7 +2102,25 @@ msgstr ""
 "Suporte a formatos: \"nix-base32\" (padrão), \"base32\" e \"base16\"\n"
 "(\"hex\" e \"hexadecimal\" também podem ser usados).\n"
 
-#: guix/scripts/download.scm:90 guix/scripts/hash.scm:55
+#: guix/scripts/download.scm:90 guix/scripts/hash.scm:53
+#, fuzzy
+#| msgid ""
+#| "Usage: guix hash [OPTION] FILE\n"
+#| "Return the cryptographic hash of FILE.\n"
+#| "\n"
+#| "Supported formats: 'nix-base32' (default), 'base32', and 'base16' ('hex'\n"
+#| "and 'hexadecimal' can be used as well).\n"
+msgid ""
+"Supported formats: 'base64', 'nix-base32' (default), 'base32',\n"
+"and 'base16' ('hex' and 'hexadecimal' can be used as well).\n"
+msgstr ""
+"Uso: guix hash [OPÇÃO] ARQUIVO\n"
+"Retorna o hash criptográfico do ARQUIVO.\n"
+"\n"
+"Suporte a formatos: \"nix-base32\" (padrão), \"base32\" e \"base16\"\n"
+"(\"hex\" e \"hexadecimal\" também podem ser usados).\n"
+
+#: guix/scripts/download.scm:93 guix/scripts/hash.scm:60
 msgid ""
 "\n"
 "  -f, --format=FMT       write the hash in the given format"
@@ -1992,7 +2128,13 @@ msgstr ""
 "\n"
 "  -f, --format=FMT       escreve o hash no formato FMT dado"
 
-#: guix/scripts/download.scm:92
+#: guix/scripts/download.scm:95 guix/scripts/hash.scm:58
+msgid ""
+"\n"
+"  -H, --hash=ALGORITHM   use the given hash ALGORITHM"
+msgstr ""
+
+#: guix/scripts/download.scm:97
 msgid ""
 "\n"
 "      --no-check-certificate\n"
@@ -2002,7 +2144,7 @@ msgstr ""
 "      --no-check-certificate\n"
 "                         não valida o certificado de servidores HTTPS "
 
-#: guix/scripts/download.scm:95
+#: guix/scripts/download.scm:100
 msgid ""
 "\n"
 "  -o, --output=FILE      download to FILE"
@@ -2010,54 +2152,60 @@ msgstr ""
 "\n"
 "  -o, --output=ARQUIVO   baixa para ARQUIVO"
 
-#: guix/scripts/download.scm:118 guix/scripts/hash.scm:83
+#: guix/scripts/download.scm:125 guix/scripts/hash.scm:97
 #, scheme-format
 msgid "unsupported hash format: ~a~%"
 msgstr "sem suporte ao formato de hash: ~a~%"
 
-#: guix/scripts/download.scm:153 guix/scripts/package.scm:933
-#: guix/scripts/upgrade.scm:79 guix/scripts/publish.scm:1022
+#: guix/scripts/download.scm:133 guix/scripts/hash.scm:81
+#, fuzzy, scheme-format
+#| msgid "~a: unknown pack format~%"
+msgid "~a: unknown hash algorithm~%"
+msgstr "~a: formato de pacote desconhecido~%"
+
+#: guix/scripts/download.scm:170 guix/scripts/package.scm:956
+#: guix/scripts/upgrade.scm:82 guix/scripts/publish.scm:1025
 #, scheme-format
 msgid "~A: extraneous argument~%"
 msgstr "~A: argumento estranho~%"
 
-#: guix/scripts/download.scm:161
+#: guix/scripts/download.scm:178
 #, scheme-format
 msgid "no download URI was specified~%"
 msgstr "nenhuma URI de download foi especificada~%"
 
-#: guix/scripts/download.scm:166
+#: guix/scripts/download.scm:183
 #, scheme-format
 msgid "~a: failed to parse URI~%"
 msgstr "~a: falha ao analisar URI~%"
 
-#: guix/scripts/download.scm:176
+#: guix/scripts/download.scm:193
 #, scheme-format
 msgid "~a: download failed~%"
 msgstr "~a: falha no download~%"
 
-#: guix/scripts/package.scm:121
+#: guix/scripts/package.scm:124
 #, scheme-format
 msgid "not removing generation ~a, which is current~%"
 msgstr "não será removida a geração ~a, que é o atual~%"
 
 # geração, criação?
-#: guix/scripts/package.scm:128
+#: guix/scripts/package.scm:131
 #, scheme-format
 msgid "no matching generation~%"
 msgstr "nenhuma geração correspondente~%"
 
-#: guix/scripts/package.scm:150
+#: guix/scripts/package.scm:153
 #, scheme-format
 msgid "nothing to be done~%"
 msgstr "nada para ser feito~%"
 
-#: guix/scripts/package.scm:250
+#: guix/scripts/package.scm:256
 #, scheme-format
 msgid "package '~a' no longer exists~%"
 msgstr "o pacote \"~a\" não existe mais~%"
 
-#: guix/scripts/package.scm:298
+#: guix/scripts/package.scm:311
 #, scheme-format
 msgid ""
 "Consider setting the necessary environment\n"
@@ -2080,7 +2228,7 @@ msgstr ""
 "\n"
 "Alternativamente, consulte @command{guix package --search-paths -p ~s}."
 
-#: guix/scripts/package.scm:326
+#: guix/scripts/package.scm:339
 msgid ""
 "Usage: guix package [OPTION]...\n"
 "Install, remove, or upgrade packages in a single transaction.\n"
@@ -2088,7 +2236,7 @@ msgstr ""
 "Uso: guix package [OPÇÃO]...\n"
 "Instala, remove ou atualiza pacotes em uma única transação.\n"
 
-#: guix/scripts/package.scm:328
+#: guix/scripts/package.scm:341
 msgid ""
 "\n"
 "  -i, --install PACKAGE ...\n"
@@ -2098,7 +2246,7 @@ msgstr ""
 "  -i, --install PACOTE ...\n"
 "                         instala PACOTEs"
 
-#: guix/scripts/package.scm:331
+#: guix/scripts/package.scm:344
 msgid ""
 "\n"
 "  -e, --install-from-expression=EXP\n"
@@ -2108,7 +2256,7 @@ msgstr ""
 "  -e, --install-from-expression=EXP\n"
 "                         instala o pacote que EXPR corresponder"
 
-#: guix/scripts/package.scm:334
+#: guix/scripts/package.scm:347
 msgid ""
 "\n"
 "  -f, --install-from-file=FILE\n"
@@ -2120,7 +2268,7 @@ msgstr ""
 "                         instala o pacote cujo código dentro do ARQUIVO\n"
 "                         corresponder"
 
-#: guix/scripts/package.scm:338
+#: guix/scripts/package.scm:351
 msgid ""
 "\n"
 "  -r, --remove PACKAGE ...\n"
@@ -2130,7 +2278,7 @@ msgstr ""
 "  -r, --remove PACOTE ...\n"
 "                         remove PACOTEs"
 
-#: guix/scripts/package.scm:341
+#: guix/scripts/package.scm:354
 msgid ""
 "\n"
 "  -u, --upgrade[=REGEXP] upgrade all the installed packages matching REGEXP"
@@ -2139,7 +2287,7 @@ msgstr ""
 "  -u, --upgrade[=REGEXP] atualiza todos os pacotes instalados correspondendo\n"
 "                         à REGEXP"
 
-#: guix/scripts/package.scm:343
+#: guix/scripts/package.scm:356
 msgid ""
 "\n"
 "  -m, --manifest=FILE    create a new profile generation with the manifest\n"
@@ -2149,7 +2297,7 @@ msgstr ""
 "  -m, --manifest=ARQUIVO cria a geração de um novo perfil com o manifesto\n"
 "                         do ARQUIVO"
 
-#: guix/scripts/package.scm:346
+#: guix/scripts/package.scm:359
 msgid ""
 "\n"
 "      --do-not-upgrade[=REGEXP] do not upgrade any packages matching REGEXP"
@@ -2157,7 +2305,7 @@ msgstr ""
 "\n"
 "      --do-not-upgrade[=REGEXP] não atualiza pacotes correspondente a REGEXP"
 
-#: guix/scripts/package.scm:348 guix/scripts/pull.scm:102
+#: guix/scripts/package.scm:361 guix/scripts/pull.scm:108
 msgid ""
 "\n"
 "      --roll-back        roll back to the previous generation"
@@ -2165,7 +2313,7 @@ msgstr ""
 "\n"
 "      --roll-back        reverte para a geração anterior"
 
-#: guix/scripts/package.scm:350
+#: guix/scripts/package.scm:363
 msgid ""
 "\n"
 "      --search-paths[=KIND]\n"
@@ -2175,7 +2323,7 @@ msgstr ""
 "      --search-paths[=TIPO]\n"
 "                         exibe definições necessárias de variável de ambiente"
 
-#: guix/scripts/package.scm:353 guix/scripts/pull.scm:99
+#: guix/scripts/package.scm:366 guix/scripts/pull.scm:105
 msgid ""
 "\n"
 "  -l, --list-generations[=PATTERN]\n"
@@ -2185,7 +2333,7 @@ msgstr ""
 "  -l, --list-generations[=PADRÃO]\n"
 "                         lista criações correspondendo a PADRÃO"
 
-#: guix/scripts/package.scm:356 guix/scripts/pull.scm:104
+#: guix/scripts/package.scm:369 guix/scripts/pull.scm:110
 msgid ""
 "\n"
 "  -d, --delete-generations[=PATTERN]\n"
@@ -2195,7 +2343,7 @@ msgstr ""
 "  -d, --delete-generations[=PADRÃO]\n"
 "                         exclui gerações correspondendo a PADRÃO"
 
-#: guix/scripts/package.scm:359 guix/scripts/pull.scm:107
+#: guix/scripts/package.scm:372 guix/scripts/pull.scm:113
 msgid ""
 "\n"
 "  -S, --switch-generation=PATTERN\n"
@@ -2205,8 +2353,8 @@ msgstr ""
 "  -S, --switch-generations=PADRÃO\n"
 "                         alterna para a geração correspondendo a PADRÃO"
 
-#: guix/scripts/package.scm:362 guix/scripts/install.scm:33
-#: guix/scripts/remove.scm:33 guix/scripts/upgrade.scm:34
+#: guix/scripts/package.scm:375 guix/scripts/install.scm:33
+#: guix/scripts/remove.scm:33 guix/scripts/upgrade.scm:35
 msgid ""
 "\n"
 "  -p, --profile=PROFILE  use PROFILE instead of the user's default profile"
@@ -2214,7 +2362,7 @@ msgstr ""
 "\n"
 "  -p, --profile=PERFIL   usa PERFIL em vez do perfil padrão do usuário"
 
-#: guix/scripts/package.scm:364
+#: guix/scripts/package.scm:377
 msgid ""
 "\n"
 "      --list-profiles    list the user's profiles"
@@ -2222,7 +2370,7 @@ msgstr ""
 "\n"
 "      --list-profiles    lista os perfis do usuário"
 
-#: guix/scripts/package.scm:367
+#: guix/scripts/package.scm:380
 msgid ""
 "\n"
 "      --allow-collisions do not treat collisions in the profile as an error"
@@ -2230,7 +2378,7 @@ msgstr ""
 "\n"
 "      --allow-collisions não trata colisões no perfil como um erro"
 
-#: guix/scripts/package.scm:369
+#: guix/scripts/package.scm:382
 msgid ""
 "\n"
 "      --bootstrap        use the bootstrap Guile to build the profile"
@@ -2238,7 +2386,7 @@ msgstr ""
 "\n"
 "      --bootstrap        usa a inicialização do Guile para compilar o perfil"
 
-#: guix/scripts/package.scm:374
+#: guix/scripts/package.scm:387
 msgid ""
 "\n"
 "  -s, --search=REGEXP    search in synopsis and description using REGEXP"
@@ -2246,7 +2394,7 @@ msgstr ""
 "\n"
 "  -s, --search=REGEXP    pesquisa na sinopse e descrição usando REGEXP"
 
-#: guix/scripts/package.scm:376
+#: guix/scripts/package.scm:389
 msgid ""
 "\n"
 "  -I, --list-installed[=REGEXP]\n"
@@ -2256,7 +2404,7 @@ msgstr ""
 "  -I, --list-installed[=REGEXP]\n"
 "                         lista pacotes instalados correspondentes a REGEXP"
 
-#: guix/scripts/package.scm:379
+#: guix/scripts/package.scm:392
 msgid ""
 "\n"
 "  -A, --list-available[=REGEXP]\n"
@@ -2266,7 +2414,7 @@ msgstr ""
 "  -A, --list-available[=REGEXP]\n"
 "                         lista pacotes disponíveis correspondentes a REGEXP"
 
-#: guix/scripts/package.scm:382
+#: guix/scripts/package.scm:395
 msgid ""
 "\n"
 "      --show=PACKAGE     show details about PACKAGE"
@@ -2274,33 +2422,33 @@ msgstr ""
 "\n"
 "      --show=PACOTE      mostra detalhes sobre o PACOTE"
 
-#: guix/scripts/package.scm:434
+#: guix/scripts/package.scm:450
 #, scheme-format
 msgid "upgrade regexp '~a' looks like a command-line option~%"
 msgstr "a regexp de atualização \"~a\" se parece com uma opção de linha de comando~%"
 
-#: guix/scripts/package.scm:437
+#: guix/scripts/package.scm:453
 #, scheme-format
 msgid "is this intended?~%"
 msgstr "isso é intencional?~%"
 
-#: guix/scripts/package.scm:487
+#: guix/scripts/package.scm:503
 #, scheme-format
 msgid "~a: unsupported kind of search path~%"
 msgstr "~a: sem suporte ao tipo de caminho de pesquisa~%"
 
-#: guix/scripts/package.scm:619
+#: guix/scripts/package.scm:629
 #, scheme-format
 msgid "cannot install non-package object: ~s~%"
 msgstr "não é possível instalar o objeto não-pacote: ~s~%"
 
-#: guix/scripts/package.scm:791
+#: guix/scripts/package.scm:810
 #, scheme-format
 msgid "~a~@[@~a~]: package not found~%"
 msgstr "~a~@[@~a~]: pacote não localizado~%"
 
 # geração, criação?
-#: guix/scripts/package.scm:825 guix/scripts/pull.scm:677
+#: guix/scripts/package.scm:845 guix/scripts/pull.scm:687
 #, scheme-format
 msgid "cannot switch to generation '~a'~%"
 msgstr "não foi possível alternar para a geração \"~a\"~%"
@@ -2325,7 +2473,7 @@ msgstr ""
 "Remove os PACOTES dados.\n"
 "Esse é um apelido para \"guix package -r\".\n"
 
-#: guix/scripts/upgrade.scm:31
+#: guix/scripts/upgrade.scm:32
 msgid ""
 "Usage: guix upgrade [OPTION] [REGEXP]\n"
 "Upgrade packages that match REGEXP.\n"
@@ -2351,7 +2499,7 @@ msgstr ""
 "\n"
 "Esse é um apelido para \"guix package -s\".\n"
 
-#: guix/scripts/search.scm:74
+#: guix/scripts/search.scm:76
 #, scheme-format
 msgid "missing arguments: no regular expressions to search for~%"
 msgstr "faltando argumentos: sem expressões regulares para procurar por~%"
@@ -2372,7 +2520,7 @@ msgstr ""
 "\n"
 "Esse é um apelido para \"guix package --show=\".\n"
 
-#: guix/scripts/show.scm:74
+#: guix/scripts/show.scm:76
 #, scheme-format
 msgid "missing arguments: no package to show~%"
 msgstr "faltando argumentos: nenhum pacote para mostrar~%"
@@ -2545,38 +2693,139 @@ msgstr "\"-d\" como um apelido para \"--delete\" está obsoleto; use \"-D\"~%"
 msgid "~s does not denote a duration~%"
 msgstr "~s não denota uma duração~%"
 
-#: guix/scripts/gc.scm:249
+#: guix/scripts/gc.scm:251
 msgid "already ~h MiBs available on ~a, nothing to do~%"
 msgstr "~h MiBs já disponíveis em ~a, nada para fazer~%"
 
-#: guix/scripts/gc.scm:252
+#: guix/scripts/gc.scm:254
 msgid "freeing ~h MiBs~%"
 msgstr "liberando ~h MiBs~%"
 
-#: guix/scripts/gc.scm:291
+#: guix/scripts/gc.scm:293
 #, scheme-format
 msgid "extraneous arguments: ~{~a ~}~%"
 msgstr "argumentos estranhos: ~{~a ~}~%"
 
-#: guix/scripts/gc.scm:315 guix/scripts/gc.scm:318
+#: guix/scripts/gc.scm:317 guix/scripts/gc.scm:320
 msgid "freed ~h MiBs~%"
 msgstr "~h MiBs liberados~%"
 
-#: guix/scripts/hash.scm:48
+#: guix/scripts/git.scm:26
+#, fuzzy
+#| msgid ""
+#| "Usage: guix COMMAND ARGS...\n"
+#| "Run COMMAND with ARGS.\n"
+msgid ""
+"Usage: guix git COMMAND ARGS...\n"
+"Operate on Git repositories.\n"
+msgstr ""
+"Uso: guix COMANDO ARGUMENTOS...\n"
+"Executa COMANDO com ARGUMENTOS.\n"
+
+#: guix/scripts/git.scm:29 guix/scripts/system.scm:916
+#: guix/scripts/container.scm:30
+msgid "The valid values for ACTION are:\n"
+msgstr "Os valores válidos para AÇÃO são:\n"
+
+#: guix/scripts/git.scm:31
+msgid "   authenticate    verify commit signatures and authorizations\n"
+msgstr ""
+
+#: guix/scripts/git.scm:57
+#, fuzzy, scheme-format
+#| msgid "guix: missing command name~%"
+msgid "guix git: missing sub-command~%"
+msgstr "guix: faltando um nome de comando~%"
+
+#: guix/scripts/git.scm:67
+#, fuzzy, scheme-format
+#| msgid "guix container: invalid action~%"
+msgid "guix git: invalid sub-command~%"
+msgstr "guix container: ação inválida~%"
+
+#: guix/scripts/git/authenticate.scm:81
+#, scheme-format
+msgid "Signing statistics:~%"
+msgstr ""
+
+#: guix/scripts/git/authenticate.scm:94
+msgid ""
+"Usage: guix git authenticate COMMIT SIGNER [OPTIONS...]\n"
+"Authenticate the given Git checkout using COMMIT/SIGNER as its introduction.\n"
+msgstr ""
+
+#: guix/scripts/git/authenticate.scm:96
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "      --with-git-url=PACKAGE=URL\n"
+#| "                         build PACKAGE from the repository at URL"
 msgid ""
-"Usage: guix hash [OPTION] FILE\n"
-"Return the cryptographic hash of FILE.\n"
 "\n"
-"Supported formats: 'nix-base32' (default), 'base32', and 'base16' ('hex'\n"
-"and 'hexadecimal' can be used as well).\n"
+"  -r, --repository=DIRECTORY\n"
+"                         open the Git repository at DIRECTORY"
 msgstr ""
-"Uso: guix hash [OPÇÃO] ARQUIVO\n"
-"Retorna o hash criptográfico do ARQUIVO.\n"
 "\n"
-"Suporte a formatos: \"nix-base32\" (padrão), \"base32\" e \"base16\"\n"
-"(\"hex\" e \"hexadecimal\" também podem ser usados).\n"
+"      --with-git-url=PACKAGE=URL\n"
+"                         compila PACOTE de repositório na URL"
+
+#: guix/scripts/git/authenticate.scm:99
+msgid ""
+"\n"
+"  -k, --keyring=REFERENCE\n"
+"                         load keyring from REFERENCE, a Git branch"
+msgstr ""
 
-#: guix/scripts/hash.scm:53
+#: guix/scripts/git/authenticate.scm:102
+msgid ""
+"\n"
+"      --stats            display commit signing statistics upon completion"
+msgstr ""
+
+#: guix/scripts/git/authenticate.scm:104
+msgid ""
+"\n"
+"      --cache-key=KEY    cache authenticated commits under KEY"
+msgstr ""
+
+#: guix/scripts/git/authenticate.scm:106
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "  -l, --list-generations[=PATTERN]\n"
+#| "                         list generations matching PATTERN"
+msgid ""
+"\n"
+"      --historical-authorizations=FILE\n"
+"                         read historical authorizations from FILE"
+msgstr ""
+"\n"
+"  -l, --list-generations[=PADRÃO]\n"
+"                         lista criações correspondendo a PADRÃO"
+
+#: guix/scripts/git/authenticate.scm:138
+msgid "Authenticating commits ~a to ~a (~h new commits)...~%"
+msgstr ""
+
+#: guix/scripts/git/authenticate.scm:178
+#, fuzzy, scheme-format
+#| msgid "wrong number of arguments~%"
+msgid "wrong number of arguments; expected COMMIT and SIGNER~%"
+msgstr "número errado de argumentos~%"
+
+#: guix/scripts/hash.scm:50
+#, fuzzy
+#| msgid ""
+#| "Usage: guix deploy [OPTION] FILE...\n"
+#| "Perform the deployment specified by FILE.\n"
+msgid ""
+"Usage: guix hash [OPTION] FILE\n"
+"Return the cryptographic hash of FILE.\n"
+msgstr ""
+"Uso: guix deploy [OPÇÃO] ARQUIVO...\n"
+"Realiza a implantação especificada por ARQUIVO.\n"
+
+#: guix/scripts/hash.scm:56
 msgid ""
 "\n"
 "  -x, --exclude-vcs      exclude version control directories"
@@ -2584,7 +2833,7 @@ msgstr ""
 "\n"
 "  -x, --exclude-vcs      exclui diretórios de controle de versão"
 
-#: guix/scripts/hash.scm:57
+#: guix/scripts/hash.scm:62
 msgid ""
 "\n"
 "  -r, --recursive        compute the hash on FILE recursively"
@@ -2592,20 +2841,20 @@ msgstr ""
 "\n"
 "  -r, --recursive        computa o hash no AQUIVO recursivamente"
 
-#: guix/scripts/hash.scm:151 guix/ui.scm:391 guix/ui.scm:416 guix/ui.scm:744
-#: guix/ui.scm:766 guix/ui.scm:772 guix/ui.scm:789 guix/ui.scm:842
+#: guix/scripts/hash.scm:171 guix/ui.scm:396 guix/ui.scm:427 guix/ui.scm:784
+#: guix/ui.scm:832 guix/ui.scm:888
 #, scheme-format
 msgid "~a~%"
 msgstr "~a~%"
 
-#: guix/scripts/hash.scm:154 guix/scripts/system.scm:1186
-#: guix/scripts/system.scm:1202 guix/scripts/system.scm:1209
-#: guix/scripts/system.scm:1215
+#: guix/scripts/hash.scm:174 guix/scripts/system.scm:1242
+#: guix/scripts/system.scm:1258 guix/scripts/system.scm:1265
+#: guix/scripts/system.scm:1271
 #, scheme-format
 msgid "wrong number of arguments~%"
 msgstr "número errado de argumentos~%"
 
-#: guix/scripts/import.scm:88
+#: guix/scripts/import.scm:89
 msgid ""
 "Usage: guix import IMPORTER ARGS ...\n"
 "Run IMPORTER with ARGS.\n"
@@ -2613,21 +2862,21 @@ msgstr ""
 "Uso: guix import IMPORTADOR ARGUMENTOS ...\n"
 "Executa IMPORTADOR com ARGUMENTOS.\n"
 
-#: guix/scripts/import.scm:91
+#: guix/scripts/import.scm:92
 msgid "IMPORTER must be one of the importers listed below:\n"
 msgstr "IMPORTADOR deve ser um dos importadores listados abaixo:\n"
 
-#: guix/scripts/import.scm:105
+#: guix/scripts/import.scm:109
 #, scheme-format
 msgid "guix import: missing importer name~%"
 msgstr "guix: import: faltando o nome de um importador~%"
 
-#: guix/scripts/import.scm:126
+#: guix/scripts/import.scm:130
 #, scheme-format
 msgid "'~a' import failed~%"
 msgstr "importação de \"~a\" falhou~%"
 
-#: guix/scripts/import.scm:127
+#: guix/scripts/import.scm:131
 #, scheme-format
 msgid "~a: invalid importer~%"
 msgstr "~a: importador inválido~%"
@@ -2716,7 +2965,7 @@ msgstr ""
 msgid "failed to download package '~a'~%"
 msgstr "falha ao baixar localidade: \"~a\"~%"
 
-#: guix/scripts/pull.scm:87
+#: guix/scripts/pull.scm:88
 msgid ""
 "Usage: guix pull [OPTION]...\n"
 "Download and deploy the latest version of Guix.\n"
@@ -2724,7 +2973,7 @@ msgstr ""
 "Uso: guix pull [OPÇÃO]...\n"
 "Baixa e implanta a última versão do Guix.\n"
 
-#: guix/scripts/pull.scm:89
+#: guix/scripts/pull.scm:90
 msgid ""
 "\n"
 "  -C, --channels=FILE    deploy the channels defined in FILE"
@@ -2732,7 +2981,7 @@ msgstr ""
 "\n"
 "  -C, --channels=ARQUIVO implanta os canais definidos no ARQUIVO"
 
-#: guix/scripts/pull.scm:91
+#: guix/scripts/pull.scm:92
 msgid ""
 "\n"
 "      --url=URL          download from the Git repository at URL"
@@ -2740,7 +2989,7 @@ msgstr ""
 "\n"
 "      --url=URL          baixa do repositório Git na URL"
 
-#: guix/scripts/pull.scm:93
+#: guix/scripts/pull.scm:94
 msgid ""
 "\n"
 "      --commit=COMMIT    download the specified COMMIT"
@@ -2748,7 +2997,7 @@ msgstr ""
 "\n"
 "      --commit=COMMIT    baixa o COMMIT especificado"
 
-#: guix/scripts/pull.scm:95
+#: guix/scripts/pull.scm:96
 msgid ""
 "\n"
 "      --branch=BRANCH    download the tip of the specified BRANCH"
@@ -2756,7 +3005,28 @@ msgstr ""
 "\n"
 "      --branch=RAMO      baixa a dica do RAMO especificado"
 
-#: guix/scripts/pull.scm:97
+#: guix/scripts/pull.scm:98
+msgid ""
+"\n"
+"      --allow-downgrades allow downgrades to earlier channel revisions"
+msgstr ""
+
+#: guix/scripts/pull.scm:100
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "      --search-paths[=KIND]\n"
+#| "                         display needed environment variable definitions"
+msgid ""
+"\n"
+"      --disable-authentication\n"
+"                         disable channel authentication"
+msgstr ""
+"\n"
+"      --search-paths[=TIPO]\n"
+"                         exibe definições necessárias de variável de ambiente"
+
+#: guix/scripts/pull.scm:103
 msgid ""
 "\n"
 "  -N, --news             display news compared to the previous generation"
@@ -2764,7 +3034,7 @@ msgstr ""
 "\n"
 "  -N, --news             exibe novidades em comparação com a geração anterior"
 
-#: guix/scripts/pull.scm:110
+#: guix/scripts/pull.scm:116
 #, scheme-format
 msgid ""
 "\n"
@@ -2773,7 +3043,7 @@ msgstr ""
 "\n"
 "  -p, --profile=PERFIL   usa PERFIL em vez de ~/.config/guix/current"
 
-#: guix/scripts/pull.scm:116
+#: guix/scripts/pull.scm:122
 msgid ""
 "\n"
 "      --bootstrap        use the bootstrap Guile to build the new Guix"
@@ -2781,47 +3051,59 @@ msgstr ""
 "\n"
 "      --bootstrap        usa inicialização do Guile para compilar o novo Guix"
 
-#: guix/scripts/pull.scm:217
+#: guix/scripts/pull.scm:211
+#, fuzzy, scheme-format
+#| msgid "Updating channel '~a' from Git repository at '~a'...~%"
+msgid "rolling back channel '~a' from ~a to ~a~%"
+msgstr "Atualizando canal \"~a\" a partir do repositório Git \"~a\"...~%"
+
+#: guix/scripts/pull.scm:214
+#, fuzzy, scheme-format
+#| msgid "Updating channel '~a' from Git repository at '~a'...~%"
+msgid "moving channel '~a' from ~a to unrelated commit ~a~%"
+msgstr "Atualizando canal \"~a\" a partir do repositório Git \"~a\"...~%"
+
+#: guix/scripts/pull.scm:243
 msgid "New in this revision:\n"
 msgstr "Novo nesta revisão:\n"
 
 #. TRANSLATORS: This describes a "channel"; the first placeholder is
 #. the channel name (e.g., "guix") and the second placeholder is its
 #. URL.
-#: guix/scripts/pull.scm:226
+#: guix/scripts/pull.scm:252
 #, scheme-format
 msgid "    ~a at ~a~%"
 msgstr "    ~a em ~a~%"
 
-#: guix/scripts/pull.scm:264
+#: guix/scripts/pull.scm:290
 #, scheme-format
 msgid "    commit ~a~%"
 msgstr "    commit ~a~%"
 
-#: guix/scripts/pull.scm:301
+#: guix/scripts/pull.scm:327
 #, scheme-format
 msgid "News for channel '~a'~%"
 msgstr "Novidades para o canal \"~a\"~%"
 
-#: guix/scripts/pull.scm:327
+#: guix/scripts/pull.scm:353
 #, scheme-format
 msgid "  ~a new channel:~%"
 msgid_plural "  ~a new channels:~%"
 msgstr[0] "  ~a novo canal:~%"
 msgstr[1] "  ~a novos canais:~%"
 
-#: guix/scripts/pull.scm:337
+#: guix/scripts/pull.scm:363
 #, scheme-format
 msgid "  ~a channel removed:~%"
 msgid_plural "  ~a channels removed:~%"
 msgstr[0] "  ~a canal removido:~%"
 msgstr[1] "  ~a canais removidos:~%"
 
-#: guix/scripts/pull.scm:413
+#: guix/scripts/pull.scm:439
 msgid "Run @command{guix pull --news} to read all the news."
 msgstr "Execute @command{guix pull --news} para ler todas as novidades."
 
-#: guix/scripts/pull.scm:421
+#: guix/scripts/pull.scm:447
 #, scheme-format
 msgid ""
 "After setting @code{PATH}, run\n"
@@ -2830,44 +3112,34 @@ msgstr ""
 "Após definir @code{PATH}, execute\n"
 "@command{hash guix} para se certificar que seu shell faz referência a @file{~a}."
 
-#: guix/scripts/pull.scm:446
-#, scheme-format
-msgid "Git error ~a~%"
-msgstr "erro no Git ~a~%"
-
-#: guix/scripts/pull.scm:448 guix/git.scm:363
-#, scheme-format
-msgid "Git error: ~a~%"
-msgstr "erro no Git: ~a~%"
-
-#: guix/scripts/pull.scm:473
+#: guix/scripts/pull.scm:482
 #, scheme-format
 msgid "Migrating profile generations to '~a'...~%"
 msgstr "Migrando gerações de perfil para \"~a\"...~%"
 
-#: guix/scripts/pull.scm:515
+#: guix/scripts/pull.scm:525
 #, scheme-format
 msgid "while creating symlink '~a': ~a~%"
 msgstr "ao criar o link simbólico \"~a\": ~a~%"
 
-#: guix/scripts/pull.scm:604
+#: guix/scripts/pull.scm:614
 msgid "  ~h new package: ~a~%"
 msgid_plural "  ~h new packages: ~a~%"
 msgstr[0] "  ~h novo pacote: ~a~%"
 msgstr[1] "  ~h novos pacotes: ~a~%"
 
-#: guix/scripts/pull.scm:612
+#: guix/scripts/pull.scm:622
 msgid "  ~h package upgraded: ~a~%"
 msgid_plural "  ~h packages upgraded: ~a~%"
 msgstr[0] "  ~h pacote atualizado: ~a~%"
 msgstr[1] "  ~h pacotes atualizados: ~a~%"
 
-#: guix/scripts/pull.scm:701
+#: guix/scripts/pull.scm:711
 #, scheme-format
 msgid "'~a' did not return a list of channels~%"
 msgstr "\"~a\" não retornou uma lista de canais~%"
 
-#: guix/scripts/pull.scm:717
+#: guix/scripts/pull.scm:727
 #, scheme-format
 msgid ""
 "The 'GUIX_PULL_URL' environment variable is deprecated.\n"
@@ -2876,7 +3148,7 @@ msgstr ""
 "A variável de ambiente \"GUIX_PULL_URL\" está obsoleta.\n"
 "Use \"~/.config/guix/channels.scm\"."
 
-#: guix/scripts/pull.scm:771
+#: guix/scripts/pull.scm:795
 #, scheme-format
 msgid "Building from this channel:~%"
 msgid_plural "Building from these channels:~%"
@@ -2933,37 +3205,37 @@ msgstr "formato inválido do campo de assinatura: ~a~%"
 msgid "'~a' does not name a store item~%"
 msgstr "\"~a\" não é o nome de um item do armazenamento~%"
 
-#: guix/scripts/substitute.scm:596
+#: guix/scripts/substitute.scm:598
 #, scheme-format
 msgid "~a: host not found: ~a~%"
 msgstr "~a: host não localizado: ~a~%"
 
-#: guix/scripts/substitute.scm:602
+#: guix/scripts/substitute.scm:604
 #, scheme-format
 msgid "~a: connection failed: ~a~%"
 msgstr "~a: conexão falhou: ~a~%"
 
-#: guix/scripts/substitute.scm:618
+#: guix/scripts/substitute.scm:620
 #, scheme-format
 msgid "updating substitutes from '~a'... ~5,1f%"
 msgstr "atualizando substitutos de \"~a\"... ~5,1f%"
 
-#: guix/scripts/substitute.scm:689
+#: guix/scripts/substitute.scm:691
 #, scheme-format
 msgid "~s: unsupported server URI scheme~%"
 msgstr "~s: sem suporte ao esquema de URI de servidor~%"
 
-#: guix/scripts/substitute.scm:829
+#: guix/scripts/substitute.scm:831
 #, scheme-format
 msgid "host name lookup error: ~a~%"
 msgstr "erro na busca pelo nome da máquina: ~a~%"
 
-#: guix/scripts/substitute.scm:834
+#: guix/scripts/substitute.scm:836
 #, scheme-format
 msgid "TLS error in procedure '~a': ~a~%"
 msgstr "erro TLS no procedimento \"~a\": ~a~%"
 
-#: guix/scripts/substitute.scm:845
+#: guix/scripts/substitute.scm:847
 msgid ""
 "Usage: guix substitute [OPTION]...\n"
 "Internal tool to substitute a pre-built binary to a local build.\n"
@@ -2972,7 +3244,7 @@ msgstr ""
 "Ferramenta interna para substituir um binário pré-compilado para\n"
 "uma compilação local.\n"
 
-#: guix/scripts/substitute.scm:847
+#: guix/scripts/substitute.scm:849
 msgid ""
 "\n"
 "      --query            report on the availability of substitutes for the\n"
@@ -2983,7 +3255,7 @@ msgstr ""
 "                         nomes de arquivos de armazenamento passados na\n"
 "                         entrada padrão"
 
-#: guix/scripts/substitute.scm:850
+#: guix/scripts/substitute.scm:852
 msgid ""
 "\n"
 "      --substitute STORE-FILE DESTINATION\n"
@@ -2995,131 +3267,160 @@ msgstr ""
 "                         baixa ARQUIVO-ARMAZENAMENTO e armazena-o como um\n"
 "                         Nar no arquivo DESTINO"
 
-#: guix/scripts/substitute.scm:971
+#: guix/scripts/substitute.scm:973
 #, scheme-format
 msgid "no valid substitute for '~a'~%"
 msgstr "nenhum substituto válido para \"~a\"~%"
 
-#: guix/scripts/substitute.scm:981
+#: guix/scripts/substitute.scm:983
 #, scheme-format
 msgid "Downloading ~a...~%"
 msgstr "Baixando ~a...~%"
 
-#: guix/scripts/substitute.scm:1041
+#: guix/scripts/substitute.scm:1043
 msgid "ACL for archive imports seems to be uninitialized, substitutes may be unavailable\n"
 msgstr "ACL para importações de pacote parece não estar inicializado, substitutos podem estar indisponíveis\n"
 
-#: guix/scripts/substitute.scm:1095
+#: guix/scripts/substitute.scm:1097
 #, scheme-format
 msgid "~a: invalid URI~%"
 msgstr "~a: URI inválido~%"
 
-#: guix/scripts/substitute.scm:1166
+#: guix/scripts/substitute.scm:1171
 #, scheme-format
 msgid "~a: unrecognized options~%"
 msgstr "~a: opções desconhecidas~%"
 
-#: guix/scripts/authenticate.scm:59
-#, scheme-format
-msgid "cannot find public key for secret key '~a'~%"
-msgstr "não foi possível localizar a chave pública da chave privada \"~a\"~%"
+#: guix/scripts/authenticate.scm:64
+#, fuzzy, scheme-format
+#| msgid "failed to load '~a': ~a~%"
+msgid "failed to load key pair at '~a': ~a~%"
+msgstr "falha ao carregar \"~a\": ~a~%"
 
-#: guix/scripts/authenticate.scm:79
-#, scheme-format
-msgid "error: invalid signature: ~a~%"
-msgstr "erro: assinatura inválida: ~a~%"
+#: guix/scripts/authenticate.scm:86
+#, fuzzy, scheme-format
+#| msgid "invalid signature"
+msgid "invalid signature: ~a"
+msgstr "assinatura inválida"
 
-#: guix/scripts/authenticate.scm:81
-#, scheme-format
-msgid "error: unauthorized public key: ~a~%"
-msgstr "erro: chave pública não autorizada: ~a~%"
+#: guix/scripts/authenticate.scm:89
+#, fuzzy, scheme-format
+#| msgid "unauthorized public key"
+msgid "unauthorized public key: ~a"
+msgstr "chave pública não autorizada"
 
-#: guix/scripts/authenticate.scm:83
-#, scheme-format
-msgid "error: corrupt signature data: ~a~%"
-msgstr "erro: dados de assinatura corrompidos: ~a~%"
+#: guix/scripts/authenticate.scm:92
+#, fuzzy, scheme-format
+#| msgid "corrupt signature data"
+msgid "corrupt signature data: ~a"
+msgstr "dados de assinatura corrompidos"
 
-#: guix/scripts/authenticate.scm:121
+#: guix/scripts/authenticate.scm:184
+#, fuzzy
+#| msgid ""
+#| "Usage: guix authenticate OPTION...\n"
+#| "Sign or verify the signature on the given file.  This tool is meant to\n"
+#| "be used internally by 'guix-daemon'.\n"
 msgid ""
 "Usage: guix authenticate OPTION...\n"
-"Sign or verify the signature on the given file.  This tool is meant to\n"
-"be used internally by 'guix-daemon'.\n"
+"Sign data or verify signatures.  This tool is meant to be used internally by\n"
+"'guix-daemon'.\n"
 msgstr ""
 "Uso: guix authenticate OPÇÃO...\n"
 "Assina ou verifica a assinatura no arquivo dado. Essa ferramenta é\n"
 "feita para ser usada internamente por \"guix-daemon\".\n"
 
-#: guix/scripts/authenticate.scm:127
-msgid "wrong arguments"
+#: guix/scripts/authenticate.scm:218
+#, fuzzy, scheme-format
+#| msgid "~a: invalid sorting key~%"
+msgid "~s: invalid command; ignoring~%"
+msgstr "~a: chave de ordenação inválida~%"
+
+#: guix/scripts/authenticate.scm:223
+#, fuzzy, scheme-format
+#| msgid "wrong arguments"
+msgid "wrong arguments~%"
 msgstr "argumentos errados"
 
-#: guix/scripts/system.scm:155
+#: guix/scripts/system.scm:161
 #, scheme-format
 msgid "failed to register '~a' under '~a'~%"
 msgstr "falha ao registrar \"~a\" sob \"~a\"~%"
 
-#: guix/scripts/system.scm:170
+#: guix/scripts/system.scm:176
 #, scheme-format
 msgid "copying to '~a'..."
 msgstr "copiando para \"~a\"..."
 
-#: guix/scripts/system.scm:197
+#: guix/scripts/system.scm:203
 #, scheme-format
 msgid "initializing the current root file system~%"
 msgstr "inicialização do sistema de arquivos raiz atual~%"
 
-#: guix/scripts/system.scm:211
+#: guix/scripts/system.scm:217
 #, scheme-format
 msgid "not running as 'root', so the ownership of '~a' may be incorrect!~%"
 msgstr "execução como não \"root\", então o dono de \"~a\" pode estar incorreto!~%"
 
-#: guix/scripts/system.scm:241 guix/scripts/system.scm:733
-#: guix/scripts/system.scm:837
+#: guix/scripts/system.scm:247 guix/scripts/system.scm:738
+#: guix/scripts/system.scm:846
 #, scheme-format
 msgid "bootloader successfully installed on '~a'~%"
 msgstr "o carregador de inicialização foi instalado com sucesso sob \"~a\"~%"
 
-#: guix/scripts/system.scm:264
+#: guix/scripts/system.scm:270
 #, scheme-format
 msgid "while talking to shepherd: ~a~%"
 msgstr "enquanto falava com o shepherd: ~a~%"
 
-#: guix/scripts/system.scm:271
+#: guix/scripts/system.scm:278
 #, scheme-format
 msgid "service '~a' could not be found~%"
 msgstr "o serviço \"~a\" não pôde ser localizado~%"
 
-#: guix/scripts/system.scm:274
+#: guix/scripts/system.scm:281
 #, scheme-format
 msgid "service '~a' does not have an action '~a'~%"
 msgstr "o serviço \"~a\" não possui uma ação \"~a\"~%"
 
-#: guix/scripts/system.scm:278
+#: guix/scripts/system.scm:285
 #, scheme-format
 msgid "exception caught while executing '~a' on service '~a':~%"
 msgstr "exceção encontrada ao executar \"~a\" no serviço \"~a\":~%"
 
-#: guix/scripts/system.scm:286
+#: guix/scripts/system.scm:293
 #, scheme-format
 msgid "something went wrong: ~s~%"
 msgstr "algo deu errado: ~s~%"
 
-#: guix/scripts/system.scm:289
+#: guix/scripts/system.scm:296
 #, scheme-format
 msgid "shepherd error~%"
 msgstr "erro do shepherd~%"
 
+#: guix/scripts/system.scm:300
+#, fuzzy, scheme-format
+#| msgid "service '~a' could not be found~%"
+msgid "some services could not be upgraded~%"
+msgstr "o serviço \"~a\" não pôde ser localizado~%"
+
+#: guix/scripts/system.scm:301
+msgid ""
+"To allow changes to all the system services to take\n"
+"effect, you will need to reboot."
+msgstr ""
+
 # geração, criação?
-#: guix/scripts/system.scm:353
+#: guix/scripts/system.scm:364
 #, scheme-format
 msgid "cannot switch to system generation '~a'~%"
 msgstr "não foi possível alternar para a geração do sistema \"~a\"~%"
 
-#: guix/scripts/system.scm:422
+#: guix/scripts/system.scm:433
 msgid "the DAG of services"
 msgstr "o DAG de serviços"
 
-#: guix/scripts/system.scm:435
+#: guix/scripts/system.scm:446
 msgid "the dependency graph of shepherd services"
 msgstr "o gráfico de dependência de serviços do shepherd"
 
@@ -3138,23 +3439,23 @@ msgstr "      ramo: ~a~%"
 msgid "      commit: ~a~%"
 msgstr "      commit: ~a~%"
 
-#: guix/scripts/system.scm:486
+#: guix/scripts/system.scm:484
 #, scheme-format
 msgid "  file name: ~a~%"
 msgstr "  nome de arquivo: ~a~%"
 
-#: guix/scripts/system.scm:487
+#: guix/scripts/system.scm:485
 #, scheme-format
 msgid "  canonical file name: ~a~%"
 msgstr "  nome de arquivo canônico: ~a~%"
 
 #. TRANSLATORS: Please preserve the two-space indentation.
-#: guix/scripts/system.scm:489
+#: guix/scripts/system.scm:487
 #, scheme-format
 msgid "  label: ~a~%"
 msgstr "  rótulo: ~a~%"
 
-#: guix/scripts/system.scm:490
+#: guix/scripts/system.scm:488
 #, scheme-format
 msgid "  bootloader: ~a~%"
 msgstr "  carregador de inicialização: ~a~%"
@@ -3167,34 +3468,41 @@ msgstr "  carregador de inicialização: ~a~%"
 #. root device: label: "my-root"
 #. or just:
 #. root device: /dev/sda3
-#: guix/scripts/system.scm:500
+#: guix/scripts/system.scm:498
 #, scheme-format
 msgid "  root device: ~[UUID: ~a~;label: ~s~;~a~]~%"
 msgstr "  dispositivo raiz: ~[UUID: ~a~;rótulo: ~s~;~a~]~%"
 
-#: guix/scripts/system.scm:506
+#: guix/scripts/system.scm:504
 #, scheme-format
 msgid "  kernel: ~a~%"
 msgstr "  kernel: ~a~%"
 
+#: guix/scripts/system.scm:509
+#, fuzzy, scheme-format
+#| msgid "  commit: ~a~%"
+msgid "  multiboot: ~a~%"
+msgstr "  commit: ~a~%"
+
 #. TRANSLATORS: Here "channel" is the same terminology as used in
 #. "guix describe" and "guix pull --channels".
-#: guix/scripts/system.scm:516
+#: guix/scripts/system.scm:515
 #, scheme-format
 msgid "  channels:~%"
 msgstr "  canais:~%"
 
-#: guix/scripts/system.scm:519
+#: guix/scripts/system.scm:518
 #, scheme-format
 msgid "  configuration file: ~a~%"
 msgstr "  arquivo de configuração: ~a~%"
 
-#: guix/scripts/system.scm:593
-#, scheme-format
-msgid "~a: error: device '~a' not found: ~a~%"
-msgstr "~a: erro: dispositivo \"~a\" não localizado: ~a~%"
+#: guix/scripts/system.scm:591
+#, fuzzy, scheme-format
+#| msgid "device '~a' not found: ~a"
+msgid "device '~a' not found: ~a~%"
+msgstr "dispositivo \"~a\" não localizado: ~a"
 
-#: guix/scripts/system.scm:597
+#: guix/scripts/system.scm:594
 #, scheme-format
 msgid ""
 "If '~a' is a file system\n"
@@ -3203,32 +3511,34 @@ msgstr ""
 "Se \"~a\" for um rótulo de sistema de arquivos,\n"
 "escreva @code{(file-system-label ~s)} em seu campo @code{device}."
 
-#: guix/scripts/system.scm:605
-#, scheme-format
-msgid "~a: error: file system with label '~a' not found~%"
+#: guix/scripts/system.scm:603
+#, fuzzy, scheme-format
+#| msgid "~a: error: file system with label '~a' not found~%"
+msgid "file system with label '~a' not found~%"
 msgstr "~a: erro: sistema de arquivos com rótulo \"~a\" não localizado~%"
 
-#: guix/scripts/system.scm:610
-#, scheme-format
-msgid "~a: error: file system with UUID '~a' not found~%"
+#: guix/scripts/system.scm:609
+#, fuzzy, scheme-format
+#| msgid "~a: error: file system with UUID '~a' not found~%"
+msgid "file system with UUID '~a' not found~%"
 msgstr "~a: erro: sistema de arquivos com UUID \"~a\" não localizado~%"
 
-#: guix/scripts/system.scm:711
+#: guix/scripts/system.scm:716
 #, scheme-format
 msgid "Consider running 'guix pull' before 'reconfigure'.~%"
 msgstr "Considere executar \"guix pull\" antes de \"reconfigure\".~%"
 
-#: guix/scripts/system.scm:712
+#: guix/scripts/system.scm:717
 #, scheme-format
 msgid "Failing to do that may downgrade your system!~%"
 msgstr "Falhar em fazer isso pode fazer um downgrade de seu sistema!~%"
 
-#: guix/scripts/system.scm:830
+#: guix/scripts/system.scm:839
 #, scheme-format
 msgid "activating system...~%"
 msgstr "ativando sistema...~%"
 
-#: guix/scripts/system.scm:841
+#: guix/scripts/system.scm:850
 msgid ""
 "To complete the upgrade, run 'herd restart SERVICE' to stop,\n"
 "upgrade, and restart each service that was not automatically restarted.\n"
@@ -3236,12 +3546,22 @@ msgstr ""
 "Para concluir a atualização, execute \"herd restart SERVIÇO\" para parar,\n"
 "atualizar, reiniciar cada serviço que não foi reiniciado automaticamente.\n"
 
-#: guix/scripts/system.scm:846
+#: guix/scripts/system.scm:853
+msgid "Run 'herd status' to view the list of services on your system.\n"
+msgstr ""
+
+#: guix/scripts/system.scm:857
 #, scheme-format
 msgid "initializing operating system under '~a'...~%"
 msgstr "inicializando sistema operacional sob \"~a\"...~%"
 
-#: guix/scripts/system.scm:890
+#: guix/scripts/system.scm:902
+#, fuzzy
+#| msgid "The available node types are:\n"
+msgid "The available image types are:\n"
+msgstr "Os tipos de nós disponíveis são:\n"
+
+#: guix/scripts/system.scm:912
 msgid ""
 "Usage: guix system [OPTION ...] ACTION [ARG ...] [FILE]\n"
 "Build the operating system declared in FILE according to ACTION.\n"
@@ -3251,79 +3571,75 @@ msgstr ""
 "Compilação do sistema operacional declarado em ARQUIVO de acordo com AÇÃO.\n"
 "Algumas AÇÕES fornecem suporte adicional a ARGUMENTOS.\n"
 
-#: guix/scripts/system.scm:894 guix/scripts/container.scm:29
-msgid "The valid values for ACTION are:\n"
-msgstr "Os valores válidos para AÇÃO são:\n"
-
-#: guix/scripts/system.scm:896
+#: guix/scripts/system.scm:918
 msgid "   search           search for existing service types\n"
 msgstr "   search           pesquisa por tipos de serviços existentes\n"
 
-#: guix/scripts/system.scm:898
+#: guix/scripts/system.scm:920
 msgid "   reconfigure      switch to a new operating system configuration\n"
 msgstr "   reconfigure      alterna para configuração de um novo sistema operacional\n"
 
-#: guix/scripts/system.scm:900
+#: guix/scripts/system.scm:922
 msgid "   roll-back        switch to the previous operating system configuration\n"
 msgstr "   roll-back        alterna para a configuração de sistema operacional anterior\n"
 
-#: guix/scripts/system.scm:902
+#: guix/scripts/system.scm:924
 msgid "   describe         describe the current system\n"
 msgstr "   describe         descreve o sistema atual\n"
 
-#: guix/scripts/system.scm:904
+#: guix/scripts/system.scm:926
 msgid "   list-generations list the system generations\n"
 msgstr "   list-generations lista as gerações do sistema\n"
 
-#: guix/scripts/system.scm:906
+#: guix/scripts/system.scm:928
 msgid "   switch-generation switch to an existing operating system configuration\n"
 msgstr "   switch-generation alterna para uma configuração de sistema operacional existente\n"
 
-#: guix/scripts/system.scm:908
+#: guix/scripts/system.scm:930
 msgid "   delete-generations delete old system generations\n"
 msgstr "   delete-generations excluir as gerações antigas do sistema\n"
 
-#: guix/scripts/system.scm:910
+#: guix/scripts/system.scm:932
 msgid "   build            build the operating system without installing anything\n"
 msgstr "   build            compila o sistema operacional sem instalador nada\n"
 
-#: guix/scripts/system.scm:912
+#: guix/scripts/system.scm:934
 msgid "   container        build a container that shares the host's store\n"
 msgstr ""
 "   container        compila um contêiner que compartilha o armazenamento\n"
 "                    da máquina\n"
 
-#: guix/scripts/system.scm:914
+#: guix/scripts/system.scm:936
 msgid "   vm               build a virtual machine image that shares the host's store\n"
 msgstr ""
 "   vm               compila uma imagem de máquina virtual que compartilha\n"
 "                    o armazenamento da máquina\n"
 
-#: guix/scripts/system.scm:916
+#: guix/scripts/system.scm:938
 msgid "   vm-image         build a freestanding virtual machine image\n"
 msgstr "   vm-image         compila uma imagem de máquina virtual independente\n"
 
-#: guix/scripts/system.scm:918
+#: guix/scripts/system.scm:940
 msgid "   disk-image       build a disk image, suitable for a USB stick\n"
 msgstr "   disk-image       compila uma imagem de disco, adequada para pendrive USB\n"
 
-#: guix/scripts/system.scm:920
+#: guix/scripts/system.scm:942
 msgid "   docker-image     build a Docker image\n"
 msgstr "   docker-image     compila uma imagem de Docker\n"
 
-#: guix/scripts/system.scm:922
+#: guix/scripts/system.scm:944
 msgid "   init             initialize a root file system to run GNU\n"
 msgstr "   init             inicializa um sistema de arquivos raiz para executar GNU\n"
 
-#: guix/scripts/system.scm:924
+#: guix/scripts/system.scm:946
 msgid "   extension-graph  emit the service extension graph in Dot format\n"
 msgstr "   extension-graph  emite o gráfico da extensão de serviço no formato Dot\n"
 
-#: guix/scripts/system.scm:926
+#: guix/scripts/system.scm:948
 msgid "   shepherd-graph   emit the graph of shepherd services in Dot format\n"
 msgstr "   shepherd-graph   emite o gráfico de serviços do shepherd no formato Dot\n"
 
-#: guix/scripts/system.scm:930
+#: guix/scripts/system.scm:952
 msgid ""
 "\n"
 "  -d, --derivation       return the derivation of the given system"
@@ -3331,7 +3647,7 @@ msgstr ""
 "\n"
 "  -d, --derivation       retorna a derivação do sistema dado"
 
-#: guix/scripts/system.scm:932
+#: guix/scripts/system.scm:954
 msgid ""
 "\n"
 "  -e, --expression=EXPR  consider the operating-system EXPR evaluates to\n"
@@ -3341,7 +3657,14 @@ msgstr ""
 "  -e, --expression=EXPR  considera o sistema operacional para o qual EXPR\n"
 "                         avalia em vez de ler ARQUIVO, quando aplicável"
 
-#: guix/scripts/system.scm:935
+#: guix/scripts/system.scm:957
+msgid ""
+"\n"
+"      --allow-downgrades for 'reconfigure', allow downgrades to earlier\n"
+"                         channel revisions"
+msgstr ""
+
+#: guix/scripts/system.scm:960
 msgid ""
 "\n"
 "      --on-error=STRATEGY\n"
@@ -3353,19 +3676,31 @@ msgstr ""
 "                         aplica ESTRATÉGIA (podendo ser nothing-special,\n"
 "                         backtrace ou debug) ocorrer um erro ao ler ARQUIVO"
 
-#: guix/scripts/system.scm:939
+#: guix/scripts/system.scm:964
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "      --list-types       list the available graph types"
+msgid ""
+"\n"
+"      --list-image-types list available image types"
+msgstr ""
+"\n"
+"      --list-types       lista os tipos de gráficos disponíveis"
+
+#: guix/scripts/system.scm:966
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "      --image-size=SIZE  for 'vm-image', produce an image of SIZE"
 msgid ""
 "\n"
-"      --file-system-type=TYPE\n"
-"                         for 'disk-image', produce a root file system of TYPE\n"
-"                         (one of 'ext4', 'iso9660')"
+"  -t, --image-type=TYPE  for 'disk-image', produce an image of TYPE"
 msgstr ""
 "\n"
-"      --file-system-type=TIPO\n"
-"                         para \"disk-image\", produz um sistema de arquivos\n"
-"                         raiz do TIPO (um entre \"ext4\", \"iso9660\")"
+"      --image-size=TAM   para \"vm-image\", produz uma imagem de TAM"
 
-#: guix/scripts/system.scm:943
+#: guix/scripts/system.scm:968
 msgid ""
 "\n"
 "      --image-size=SIZE  for 'vm-image', produce an image of SIZE"
@@ -3373,7 +3708,7 @@ msgstr ""
 "\n"
 "      --image-size=TAM   para \"vm-image\", produz uma imagem de TAM"
 
-#: guix/scripts/system.scm:945
+#: guix/scripts/system.scm:970
 msgid ""
 "\n"
 "      --no-bootloader    for 'init', do not install a bootloader"
@@ -3381,7 +3716,13 @@ msgstr ""
 "\n"
 "      --no-bootloader    para \"init\", não instala um carregador de inic."
 
-#: guix/scripts/system.scm:947 guix/scripts/pack.scm:938
+#: guix/scripts/system.scm:972
+msgid ""
+"\n"
+"      --label=LABEL      for 'disk-image', label disk image with LABEL"
+msgstr ""
+
+#: guix/scripts/system.scm:974 guix/scripts/pack.scm:1069
 msgid ""
 "\n"
 "      --save-provenance  save provenance information"
@@ -3389,25 +3730,35 @@ msgstr ""
 "\n"
 "      --save-provenance  salva informações proveniência"
 
-#: guix/scripts/system.scm:949
+#: guix/scripts/system.scm:976
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "      --share=SPEC       for 'vm', share host file system according to SPEC"
 msgid ""
 "\n"
-"      --share=SPEC       for 'vm', share host file system according to SPEC"
+"      --share=SPEC       for 'vm' and 'container', share host file system with\n"
+"                         read/write access according to SPEC"
 msgstr ""
 "\n"
 "      --share=ESPEC      para \"vm\", compartilha o sistema de arquivos do\n"
 "                         hospedeiro de acordo com ESPEC"
 
-#: guix/scripts/system.scm:951
+#: guix/scripts/system.scm:979
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "      --expose=SPEC      for 'vm', expose host file system according to SPEC"
 msgid ""
 "\n"
-"      --expose=SPEC      for 'vm', expose host file system according to SPEC"
+"      --expose=SPEC      for 'vm' and 'container', expose host file system\n"
+"                         directory as read-only according to SPEC"
 msgstr ""
 "\n"
 "      --expose=ESPEC     para \"vm\", expõe o sistema de arquivos do\n"
 "                         hospedeiro de acordo com ESPEC"
 
-#: guix/scripts/system.scm:953
+#: guix/scripts/system.scm:982
 msgid ""
 "\n"
 "  -N, --network          for 'container', allow containers to access the network"
@@ -3415,7 +3766,7 @@ msgstr ""
 "\n"
 "  -N, --network          para \"container\", permite que contêineres acessem a rede"
 
-#: guix/scripts/system.scm:955
+#: guix/scripts/system.scm:984
 msgid ""
 "\n"
 "  -r, --root=FILE        for 'vm', 'vm-image', 'disk-image', 'container',\n"
@@ -3428,7 +3779,7 @@ msgstr ""
 "                         o resultado e o registra, como um coletor de lixo\n"
 "                         central"
 
-#: guix/scripts/system.scm:959
+#: guix/scripts/system.scm:988
 msgid ""
 "\n"
 "      --full-boot        for 'vm', make a full boot sequence"
@@ -3437,7 +3788,7 @@ msgstr ""
 "      --full-boot        para \"vm\", faz uma sequência completa de\n"
 "                         inicialização"
 
-#: guix/scripts/system.scm:961
+#: guix/scripts/system.scm:990
 msgid ""
 "\n"
 "      --skip-checks      skip file system and initrd module safety checks"
@@ -3446,47 +3797,47 @@ msgstr ""
 "      --skip-checks      ignora verificações de segurança do sistema de\n"
 "                         arquivos e de módulo de initrd"
 
-#: guix/scripts/system.scm:1078
+#: guix/scripts/system.scm:1127
 #, scheme-format
 msgid "'~a' does not return an operating system~%"
 msgstr "\"~a\" não retorna um sistema operacional~%"
 
-#: guix/scripts/system.scm:1101
+#: guix/scripts/system.scm:1150
 #, scheme-format
 msgid "both file and expression cannot be specified~%"
 msgstr "não podem ser especificados arquivo e expressão~%"
 
-#: guix/scripts/system.scm:1108
+#: guix/scripts/system.scm:1157
 #, scheme-format
 msgid "no configuration specified~%"
 msgstr "nenhuma configuração especificada~%"
 
-#: guix/scripts/system.scm:1191
+#: guix/scripts/system.scm:1247
 #, scheme-format
 msgid "no system generation, nothing to describe~%"
 msgstr "nenhuma geração de sistema, nada para descrever~%"
 
-#: guix/scripts/system.scm:1235
+#: guix/scripts/system.scm:1293
 #, scheme-format
 msgid "~a: unknown action~%"
 msgstr "~a: ação desconhecida~%"
 
-#: guix/scripts/system.scm:1251
+#: guix/scripts/system.scm:1309
 #, scheme-format
 msgid "wrong number of arguments for action '~a'~%"
 msgstr "número errado de argumentos para a ação \"~a\"~%"
 
-#: guix/scripts/system.scm:1256
+#: guix/scripts/system.scm:1314
 #, scheme-format
 msgid "guix system: missing command name~%"
 msgstr "guix system: faltando um nome de comando~%"
 
-#: guix/scripts/system.scm:1258
+#: guix/scripts/system.scm:1316
 #, scheme-format
 msgid "Try 'guix system --help' for more information.~%"
 msgstr "Tente \"guix system --help\" para mais informações.~%"
 
-#: guix/scripts/system/search.scm:92 guix/ui.scm:1443 guix/ui.scm:1461
+#: guix/scripts/system/search.scm:93 guix/ui.scm:1539 guix/ui.scm:1557
 msgid "unknown"
 msgstr "desconhecido"
 
@@ -3533,7 +3884,7 @@ msgstr ""
 msgid "~a: invalid checker~%"
 msgstr "~a: verificador inválido~%"
 
-#: guix/scripts/publish.scm:72
+#: guix/scripts/publish.scm:71
 #, scheme-format
 msgid ""
 "Usage: guix publish [OPTION]...\n"
@@ -3542,7 +3893,7 @@ msgstr ""
 "Uso: guix publish [OPÇÃO]...\n"
 "Publica ~a por HTTP.\n"
 
-#: guix/scripts/publish.scm:74
+#: guix/scripts/publish.scm:73
 msgid ""
 "\n"
 "  -p, --port=PORT        listen on PORT"
@@ -3550,7 +3901,7 @@ msgstr ""
 "\n"
 "  -p, --port=PORTA       ouve na PORTA"
 
-#: guix/scripts/publish.scm:76
+#: guix/scripts/publish.scm:75
 msgid ""
 "\n"
 "      --listen=HOST      listen on the network interface for HOST"
@@ -3558,7 +3909,7 @@ msgstr ""
 "\n"
 "      --listen=MÁQUINA   ouve na interface de rede pela MÁQUINA"
 
-#: guix/scripts/publish.scm:78
+#: guix/scripts/publish.scm:77
 msgid ""
 "\n"
 "  -u, --user=USER        change privileges to USER as soon as possible"
@@ -3566,7 +3917,7 @@ msgstr ""
 "\n"
 "  -u, --user=USUÁRIO     altera privilégios para o USUÁRIO assim que possível"
 
-#: guix/scripts/publish.scm:80
+#: guix/scripts/publish.scm:79
 msgid ""
 "\n"
 "  -C, --compression[=METHOD:LEVEL]\n"
@@ -3576,7 +3927,7 @@ msgstr ""
 "  -C, --compression[=MÉTODO:NÍVEL]\n"
 "                         comprime pacotes com MÉTODO no NÍVEL"
 
-#: guix/scripts/publish.scm:83
+#: guix/scripts/publish.scm:82
 msgid ""
 "\n"
 "  -c, --cache=DIRECTORY  cache published items to DIRECTORY"
@@ -3584,7 +3935,7 @@ msgstr ""
 "\n"
 "  -c, --cache=DIRETÓRIO  itens de cache publicados para DIRETÓRIO"
 
-#: guix/scripts/publish.scm:85
+#: guix/scripts/publish.scm:84
 msgid ""
 "\n"
 "      --workers=N        use N workers to bake items"
@@ -3593,7 +3944,7 @@ msgstr ""
 "      --workers=N        usa N trabalhos para preparar itens"
 
 # Abreviei segundos para a linha caber em 80 caracteres -- Rafael 
-#: guix/scripts/publish.scm:87
+#: guix/scripts/publish.scm:86
 msgid ""
 "\n"
 "      --ttl=TTL          announce narinfos can be cached for TTL seconds"
@@ -3601,7 +3952,7 @@ msgstr ""
 "\n"
 "      --ttl=TTL          anuncia que narinfos podem usar cache por TTL segs."
 
-#: guix/scripts/publish.scm:89
+#: guix/scripts/publish.scm:88
 msgid ""
 "\n"
 "      --nar-path=PATH    use PATH as the prefix for nar URLs"
@@ -3609,7 +3960,7 @@ msgstr ""
 "\n"
 "      --nar-path=CAMINHO  usa CAMINHO como o prefixo para URLs nar"
 
-#: guix/scripts/publish.scm:91
+#: guix/scripts/publish.scm:90
 msgid ""
 "\n"
 "      --public-key=FILE  use FILE as the public key for signatures"
@@ -3617,7 +3968,7 @@ msgstr ""
 "\n"
 "      --public-key=ARQUIVO  usa ARQUIVO como chave pública para assinaturas"
 
-#: guix/scripts/publish.scm:93
+#: guix/scripts/publish.scm:92
 msgid ""
 "\n"
 "      --private-key=FILE use FILE as the private key for signatures"
@@ -3625,7 +3976,7 @@ msgstr ""
 "\n"
 "      --private-key=ARQUIVO  usa ARQUIVO como chave privada para assinaturas"
 
-#: guix/scripts/publish.scm:95
+#: guix/scripts/publish.scm:94
 msgid ""
 "\n"
 "  -r, --repl[=PORT]      spawn REPL server on PORT"
@@ -3633,22 +3984,22 @@ msgstr ""
 "\n"
 "  -r, --repl[=PORTA]      faz um servidor de REPL na PORTA"
 
-#: guix/scripts/publish.scm:111
+#: guix/scripts/publish.scm:110
 #, scheme-format
 msgid "lookup of host '~a' failed: ~a~%"
 msgstr "a procura da máquina \"~a\" falhou: ~a~%"
 
-#: guix/scripts/publish.scm:159
+#: guix/scripts/publish.scm:158
 #, scheme-format
 msgid "lookup of host '~a' returned nothing"
 msgstr "a procura da máquina \"~a\" retornou nada"
 
-#: guix/scripts/publish.scm:182
+#: guix/scripts/publish.scm:181
 #, scheme-format
 msgid "~a: unsupported compression type~%"
 msgstr "~a: sem suporte ao tipo de compressão~%"
 
-#: guix/scripts/publish.scm:196
+#: guix/scripts/publish.scm:195
 #, scheme-format
 msgid "~a: invalid duration~%"
 msgstr "~a: duração inválida~%"
@@ -3658,17 +4009,17 @@ msgstr "~a: duração inválida~%"
 msgid "user '~a' not found: ~a~%"
 msgstr "usuário \"~a\" não localizado: ~a~%"
 
-#: guix/scripts/publish.scm:1059
+#: guix/scripts/publish.scm:1060
 #, scheme-format
 msgid "server running as root; consider using the '--user' option!~%"
 msgstr "servidor executado como root; considere usar a opção \"--user\"!~%"
 
-#: guix/scripts/publish.scm:1064
+#: guix/scripts/publish.scm:1065
 #, scheme-format
 msgid "publishing ~a on ~a, port ~d~%"
 msgstr "publicando ~a em ~a, porta ~d~%"
 
-#: guix/scripts/publish.scm:1070
+#: guix/scripts/publish.scm:1071
 #, scheme-format
 msgid "using '~a' compression method, level ~a~%"
 msgstr "usando o método de compressão \"~a\", nível ~a~%"
@@ -3681,12 +4032,12 @@ msgstr ""
 "Uso: guix edit PACOTE...\n"
 "Inicia $VISUAL ou $EDITOR para editar as definições de PACOTE...\n"
 
-#: guix/scripts/edit.scm:69
+#: guix/scripts/edit.scm:68
 #, scheme-format
 msgid "file '~a' not found in search path ~s~%"
 msgstr "arquivo \"~a\" não localizado no caminho de pesquisa ~s~%"
 
-#: guix/scripts/edit.scm:104
+#: guix/scripts/edit.scm:106
 #, scheme-format
 msgid "failed to launch '~a': ~a~%"
 msgstr "falha ao iniciar \"~a\": ~a~%"
@@ -3721,9 +4072,13 @@ msgid "store profile"
 msgstr "perfil do armazenamento"
 
 #: guix/scripts/size.scm:233
+#, fuzzy
+#| msgid ""
+#| "Usage: guix size [OPTION]... PACKAGE\n"
+#| "Report the size of PACKAGE and its dependencies.\n"
 msgid ""
-"Usage: guix size [OPTION]... PACKAGE\n"
-"Report the size of PACKAGE and its dependencies.\n"
+"Usage: guix size [OPTION]... PACKAGE|STORE-ITEM\n"
+"Report the size of the PACKAGE or STORE-ITEM, with its dependencies.\n"
 msgstr ""
 "Uso: guix size [OPÇÃO]... PACOTE...\n"
 "Relata o tamanho do PACOTE e suas dependências.\n"
@@ -3758,7 +4113,7 @@ msgstr ""
 msgid "~a: invalid sorting key~%"
 msgstr "~a: chave de ordenação inválida~%"
 
-#: guix/scripts/size.scm:315
+#: guix/scripts/size.scm:318
 msgid "missing store item argument\n"
 msgstr "faltando argumento de item do armazenamento\n"
 
@@ -3799,48 +4154,55 @@ msgstr "o DAG de derivações"
 msgid "unsupported argument for derivation graph"
 msgstr "sem suporte ao argumento para gráfico de derivação"
 
-#: guix/scripts/graph.scm:325
+#: guix/scripts/graph.scm:333
 msgid "unsupported argument for this type of graph"
 msgstr "sem suporte ao argumento para esse tipo de gráfico"
 
-#: guix/scripts/graph.scm:338
+#: guix/scripts/graph.scm:347
 #, scheme-format
 msgid "references for '~a' are not known~%"
 msgstr "referências para \"~a\" não são conhecidas~%"
 
-#: guix/scripts/graph.scm:345
+#: guix/scripts/graph.scm:354
 msgid "the DAG of run-time dependencies (store references)"
 msgstr "o DAG de dependências de tempo real (referências de armazenamento)"
 
-#: guix/scripts/graph.scm:361
+#: guix/scripts/graph.scm:370
 msgid "the DAG of referrers in the store"
 msgstr "o DAG de referências no armazenamento"
 
-#: guix/scripts/graph.scm:391
+#: guix/scripts/graph.scm:400
 msgid "the graph of package modules"
 msgstr "o gráfico dos módulos de pacote"
 
-#: guix/scripts/graph.scm:420
+#: guix/scripts/graph.scm:429
 #, scheme-format
 msgid "~a: unknown node type~%"
 msgstr "~a: tipo de nó desconhecido~%"
 
-#: guix/scripts/graph.scm:427
+#: guix/scripts/graph.scm:436
 #, scheme-format
 msgid "~a: unknown backend~%"
 msgstr "~a: backend desconhecido~%"
 
-#: guix/scripts/graph.scm:431
+#: guix/scripts/graph.scm:440
 msgid "The available node types are:\n"
 msgstr "Os tipos de nós disponíveis são:\n"
 
-#: guix/scripts/graph.scm:441
+#: guix/scripts/graph.scm:450
 msgid "The available backend types are:\n"
 msgstr "Os tipos de backends disponíveis são:\n"
 
+#: guix/scripts/graph.scm:477
+#, fuzzy, scheme-format
+#| msgid "~a package is missing from '~a' for '~a':~%"
+#| msgid_plural "~a packages are missing from '~a' for '~a', among which:~%"
+msgid "no path from '~a' to '~a'~%"
+msgstr "~a pacote a seguir está faltando em \"~a\" para \"~a\":~%"
+
 #. TRANSLATORS: Here 'dot' is the name of a program; it must not be
 #. translated.
-#: guix/scripts/graph.scm:494
+#: guix/scripts/graph.scm:529
 msgid ""
 "Usage: guix graph PACKAGE...\n"
 "Emit a representation of the dependency graph of PACKAGE...\n"
@@ -3848,7 +4210,7 @@ msgstr ""
 "Uso: guix graph PACOTE...\n"
 "Emite uma representação do gráfico de dependências do PACOTE...\n"
 
-#: guix/scripts/graph.scm:496
+#: guix/scripts/graph.scm:531
 msgid ""
 "\n"
 "  -b, --backend=TYPE     produce a graph with the given backend TYPE"
@@ -3856,7 +4218,7 @@ msgstr ""
 "\n"
 "  -b, --backend=TIPO     produz um grafo com backend do TIPO"
 
-#: guix/scripts/graph.scm:498
+#: guix/scripts/graph.scm:533
 msgid ""
 "\n"
 "      --list-backends    list the available graph backends"
@@ -3864,7 +4226,7 @@ msgstr ""
 "\n"
 "      --list-backends    lista os backends de gráficos disponíveis"
 
-#: guix/scripts/graph.scm:500
+#: guix/scripts/graph.scm:535
 msgid ""
 "\n"
 "  -t, --type=TYPE        represent nodes of the given TYPE"
@@ -3872,7 +4234,7 @@ msgstr ""
 "\n"
 "  -t, --type=TIPO        representa nós do TIPO dado"
 
-#: guix/scripts/graph.scm:502
+#: guix/scripts/graph.scm:537
 msgid ""
 "\n"
 "      --list-types       list the available graph types"
@@ -3880,7 +4242,19 @@ msgstr ""
 "\n"
 "      --list-types       lista os tipos de gráficos disponíveis"
 
-#: guix/scripts/graph.scm:504 guix/scripts/pack.scm:923
+#: guix/scripts/graph.scm:539
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "  -h, --help             display this help and exit"
+msgid ""
+"\n"
+"      --path             display the shortest path between the given nodes"
+msgstr ""
+"\n"
+"  -h, --help             exibe esta ajuda e sai"
+
+#: guix/scripts/graph.scm:541 guix/scripts/pack.scm:1054
 msgid ""
 "\n"
 "  -e, --expression=EXPR  consider the package EXPR evaluates to"
@@ -3888,7 +4262,7 @@ msgstr ""
 "\n"
 "  -e, --expression=EXPR  considera o pacote que EXPR corresponder"
 
-#: guix/scripts/graph.scm:506
+#: guix/scripts/graph.scm:543
 msgid ""
 "\n"
 "  -s, --system=SYSTEM    consider the graph for SYSTEM--e.g., \"i686-linux\""
@@ -3896,6 +4270,11 @@ msgstr ""
 "\n"
 "  -s, --system=SISTEMA   considera o gráfico para SISTEMA--ex.: \"i686-linux\""
 
+#: guix/scripts/graph.scm:606
+#, scheme-format
+msgid "'--path' option requires exactly two nodes (given ~a)~%"
+msgstr ""
+
 #: guix/scripts/challenge.scm:301
 #, scheme-format
 msgid "  differing file:~%"
@@ -3973,17 +4352,25 @@ msgstr ""
 "                         compara resultados da compilação com os de URLS"
 
 #: guix/scripts/challenge.scm:418
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "      -v, --verbose      show details about successful comparisons"
 msgid ""
 "\n"
-"      -v, --verbose      show details about successful comparisons"
+"  -v, --verbose          show details about successful comparisons"
 msgstr ""
 "\n"
 "      -v, --verbose      mostra detalhes sobre comparações bem-sucedidas"
 
 #: guix/scripts/challenge.scm:420
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "          --diff=MODE    show differences according to MODE"
 msgid ""
 "\n"
-"          --diff=MODE    show differences according to MODE"
+"      --diff=MODE        show differences according to MODE"
 msgstr ""
 "\n"
 "          --diff=MODO    mostra diferenças conforme o MODO"
@@ -3993,17 +4380,17 @@ msgstr ""
 msgid "~a: unknown diff mode~%"
 msgstr "~a: modo diff desconhecido~%"
 
-#: guix/scripts/copy.scm:60
+#: guix/scripts/copy.scm:61
 #, scheme-format
 msgid "~a: invalid TCP port number~%"
 msgstr "~a: número de porta TCP inválido~%"
 
-#: guix/scripts/copy.scm:62
+#: guix/scripts/copy.scm:63
 #, scheme-format
 msgid "~a: invalid SSH specification~%"
 msgstr "~a: especificação SSH inválida~%"
 
-#: guix/scripts/copy.scm:105
+#: guix/scripts/copy.scm:109
 msgid ""
 "Usage: guix copy [OPTION]... ITEMS...\n"
 "Copy ITEMS to or from the specified host over SSH.\n"
@@ -4011,7 +4398,7 @@ msgstr ""
 "Uso: guix copy [OPÇÃO]... ITENS...\n"
 "Copia ITENS para ou da máquina especificada por SSH.\n"
 
-#: guix/scripts/copy.scm:107
+#: guix/scripts/copy.scm:111
 msgid ""
 "\n"
 "      --to=HOST          send ITEMS to HOST"
@@ -4019,7 +4406,7 @@ msgstr ""
 "\n"
 "      --to=MÁQUINA       envia ITENS para MÁQUINA"
 
-#: guix/scripts/copy.scm:109
+#: guix/scripts/copy.scm:113
 msgid ""
 "\n"
 "      --from=HOST        receive ITEMS from HOST"
@@ -4027,22 +4414,22 @@ msgstr ""
 "\n"
 "      --from=MÁQUINA     recebe ITENS da MÁQUINA"
 
-#: guix/scripts/copy.scm:183
+#: guix/scripts/copy.scm:192
 #, scheme-format
 msgid "use '--to' or '--from'~%"
 msgstr "use \"--to\" ou \"--from\"~%"
 
-#: guix/scripts/pack.scm:98
+#: guix/scripts/pack.scm:104
 #, scheme-format
 msgid "~a: compressor not found~%"
 msgstr "~a: compressor não encontrado~%"
 
-#: guix/scripts/pack.scm:283
+#: guix/scripts/pack.scm:309
 #, scheme-format
 msgid "entry point not supported in the '~a' format~%"
 msgstr "ponto de entrada sem suporte no formato \"~a\"~%"
 
-#: guix/scripts/pack.scm:661
+#: guix/scripts/pack.scm:690
 #, scheme-format
 msgid ""
 "cross-compilation not implemented here;\n"
@@ -4051,11 +4438,11 @@ msgstr ""
 "compilação cruzada não implementada aqui;\n"
 "por favor, envie um e-mail para '~a'~%"
 
-#: guix/scripts/pack.scm:804
+#: guix/scripts/pack.scm:935
 msgid "The supported formats for 'guix pack' are:"
 msgstr "O comando \"guix pack\" tem suporte aos seguintes formatos:"
 
-#: guix/scripts/pack.scm:806
+#: guix/scripts/pack.scm:937
 msgid ""
 "\n"
 "  tarball       Self-contained tarball, ready to run on another machine"
@@ -4063,7 +4450,7 @@ msgstr ""
 "\n"
 "  tarball       Tarball independente, pronto para executar em outra máquina"
 
-#: guix/scripts/pack.scm:808
+#: guix/scripts/pack.scm:939
 msgid ""
 "\n"
 "  squashfs      Squashfs image suitable for Singularity"
@@ -4071,7 +4458,7 @@ msgstr ""
 "\n"
 "  squashfs      Imagem squashfs adequada para Singularity"
 
-#: guix/scripts/pack.scm:810
+#: guix/scripts/pack.scm:941
 msgid ""
 "\n"
 "  docker        Tarball ready for 'docker load'"
@@ -4079,17 +4466,17 @@ msgstr ""
 "\n"
 "  docker        Tarball pronto para \"docker load\""
 
-#: guix/scripts/pack.scm:879
+#: guix/scripts/pack.scm:1010
 #, scheme-format
 msgid "~a: invalid symlink specification~%"
 msgstr "~a: especificação de link simbólico inválida~%"
 
-#: guix/scripts/pack.scm:893
+#: guix/scripts/pack.scm:1024
 #, scheme-format
 msgid "~a: unsupported profile name~%"
 msgstr "~a: sem suporte ao nome de perfil~%"
 
-#: guix/scripts/pack.scm:911
+#: guix/scripts/pack.scm:1042
 msgid ""
 "Usage: guix pack [OPTION]... PACKAGE...\n"
 "Create a bundle of PACKAGE.\n"
@@ -4097,7 +4484,7 @@ msgstr ""
 "Uso: guix pack [OPÇÃO]... PACOTE...\n"
 "Cria um pacote de PACOTE.\n"
 
-#: guix/scripts/pack.scm:917
+#: guix/scripts/pack.scm:1048
 msgid ""
 "\n"
 "  -f, --format=FORMAT    build a pack in the given FORMAT"
@@ -4105,7 +4492,7 @@ msgstr ""
 "\n"
 "  -f, --format=FORMATO   compila um pacote no FORMATO dado"
 
-#: guix/scripts/pack.scm:919
+#: guix/scripts/pack.scm:1050
 msgid ""
 "\n"
 "      --list-formats     list the formats available"
@@ -4113,7 +4500,7 @@ msgstr ""
 "\n"
 "      --list-formatos    lista os formatos disponíveis"
 
-#: guix/scripts/pack.scm:921
+#: guix/scripts/pack.scm:1052
 msgid ""
 "\n"
 "  -R, --relocatable      produce relocatable executables"
@@ -4121,7 +4508,7 @@ msgstr ""
 "\n"
 "  -R, --relocatable      produz executáveis relocados"
 
-#: guix/scripts/pack.scm:929
+#: guix/scripts/pack.scm:1060
 msgid ""
 "\n"
 "  -C, --compression=TOOL compress using TOOL--e.g., \"lzip\""
@@ -4130,7 +4517,7 @@ msgstr ""
 "  -C, --compression=FERRAMENTA\n"
 "                         comprime usando FERRAMENTA--ex. \"lzip\""
 
-#: guix/scripts/pack.scm:931
+#: guix/scripts/pack.scm:1062
 msgid ""
 "\n"
 "  -S, --symlink=SPEC     create symlinks to the profile according to SPEC"
@@ -4138,7 +4525,7 @@ msgstr ""
 "\n"
 "  -S, --symlink=ESPEC    cria link simbólicos para o perfil conforme ESPEC"
 
-#: guix/scripts/pack.scm:933
+#: guix/scripts/pack.scm:1064
 msgid ""
 "\n"
 "  -m, --manifest=FILE    create a pack with the manifest from FILE"
@@ -4146,7 +4533,7 @@ msgstr ""
 "\n"
 "  -m, --manifest=ARQUIVO cria um pacote com o manifesto do ARQUIVO"
 
-#: guix/scripts/pack.scm:935
+#: guix/scripts/pack.scm:1066
 msgid ""
 "\n"
 "      --entry-point=PROGRAM\n"
@@ -4156,7 +4543,7 @@ msgstr ""
 "      --entry-point=PROGRAMA\n"
 "                         usa PROGRAMA como o ponto de entrada do pacote"
 
-#: guix/scripts/pack.scm:940
+#: guix/scripts/pack.scm:1071
 msgid ""
 "\n"
 "      --localstatedir    include /var/guix in the resulting pack"
@@ -4164,7 +4551,7 @@ msgstr ""
 "\n"
 "      --localstatedir    inclui /var/guix no pacote resultante"
 
-#: guix/scripts/pack.scm:942
+#: guix/scripts/pack.scm:1073
 msgid ""
 "\n"
 "      --profile-name=NAME\n"
@@ -4174,7 +4561,7 @@ msgstr ""
 "      --profile-name=NOME\n"
 "                         popula /var/guix/profiles/.../NOME"
 
-#: guix/scripts/pack.scm:948
+#: guix/scripts/pack.scm:1079
 msgid ""
 "\n"
 "  -d, --derivation       return the derivation of the pack"
@@ -4182,7 +4569,7 @@ msgstr ""
 "\n"
 "  -d, --derivation       retorna a derivação do pacote"
 
-#: guix/scripts/pack.scm:952
+#: guix/scripts/pack.scm:1083
 msgid ""
 "\n"
 "      --bootstrap        use the bootstrap binaries to build the pack"
@@ -4191,32 +4578,32 @@ msgstr ""
 "      --bootstrap        usa os executáveis de inicialização para compilar\n"
 "                         o pacote"
 
-#: guix/scripts/pack.scm:1003
+#: guix/scripts/pack.scm:1137
 #, scheme-format
 msgid "could not determine provenance of package ~a~%"
 msgstr "não foi possível determinar a proveniência do pacote ~a~%"
 
-#: guix/scripts/pack.scm:1012
+#: guix/scripts/pack.scm:1151
 #, scheme-format
 msgid "both a manifest and a package list were given~%"
 msgstr "foram especificados um manifesto e uma lista de pacote~%"
 
-#: guix/scripts/pack.scm:1069
+#: guix/scripts/pack.scm:1210
 #, scheme-format
 msgid "~a: unknown pack format~%"
 msgstr "~a: formato de pacote desconhecido~%"
 
-#: guix/scripts/pack.scm:1079
+#: guix/scripts/pack.scm:1234
 #, scheme-format
 msgid "no packages specified; building an empty pack~%"
 msgstr "nenhum pacote especificado; compilando um pacote vazio~%"
 
-#: guix/scripts/pack.scm:1083
+#: guix/scripts/pack.scm:1238
 #, scheme-format
 msgid "Singularity requires you to provide a shell~%"
 msgstr "Singularidade requer que você forneça um shell~%"
 
-#: guix/scripts/pack.scm:1084
+#: guix/scripts/pack.scm:1239
 msgid "Add @code{bash} or @code{bash-minimal} to your package list."
 msgstr "Adiciona @code{bash} ou @code{bash-minimal} a sua lista de pacotes."
 
@@ -4229,7 +4616,9 @@ msgid "looking for ~h store items on ~a...~%"
 msgstr "procurando por ~h itens de armazenamento em ~a…~%"
 
 #: guix/scripts/weather.scm:193
-msgid "  ~2,1f% substitutes available (~h out of ~h)~%"
+#, fuzzy
+#| msgid "  ~2,1f% substitutes available (~h out of ~h)~%"
+msgid "  ~,1f% substitutes available (~h out of ~h)~%"
 msgstr "  ~2,1f% substitutos disponíveis (~h de ~h)~%"
 
 #: guix/scripts/weather.scm:199
@@ -4361,26 +4750,32 @@ msgstr ""
 msgid "~a: invalid URL~%"
 msgstr "~a: URL inválido~%"
 
-#: guix/scripts/weather.scm:446
+#: guix/scripts/weather.scm:447
 #, scheme-format
 msgid "The following ~a package is missing from '~a' for '~a':~%"
 msgid_plural "The following ~a packages are missing from '~a' for '~a':~%"
 msgstr[0] "O ~a pacote a seguir está faltando em \"~a\" para \"~a\":~%"
 msgstr[1] "Os ~a pacotes a seguir estão faltando em \"~a\" para \"~a\":~%"
 
-#: guix/scripts/weather.scm:452
+#: guix/scripts/weather.scm:453
 #, scheme-format
 msgid "~a package is missing from '~a' for '~a':~%"
 msgid_plural "~a packages are missing from '~a' for '~a', among which:~%"
 msgstr[0] "~a pacote a seguir está faltando em \"~a\" para \"~a\":~%"
 msgstr[1] "~a pacotes a seguir estão faltando em \"~a\" para \"~a\":~%"
 
-#: guix/scripts/describe.scm:50
+#: guix/scripts/describe.scm:52
+#, fuzzy
+#| msgid "The available node types are:\n"
+msgid "The available formats are:\n"
+msgstr "Os tipos de nós disponíveis são:\n"
+
+#: guix/scripts/describe.scm:63
 #, scheme-format
 msgid "~a: unsupported output format~%"
 msgstr "~a: sem suporte ao formato de saída~%"
 
-#: guix/scripts/describe.scm:69
+#: guix/scripts/describe.scm:86
 msgid ""
 "Usage: guix describe [OPTION]...\n"
 "Display information about the channels currently in use.\n"
@@ -4388,7 +4783,7 @@ msgstr ""
 "Uso: guix describe [OPÇÃO]...\n"
 "Exibe informações sobre os canais atualmente em uso.\n"
 
-#: guix/scripts/describe.scm:71
+#: guix/scripts/describe.scm:88
 msgid ""
 "\n"
 "  -f, --format=FORMAT    display information in the given FORMAT"
@@ -4396,7 +4791,19 @@ msgstr ""
 "\n"
 "  -f, --format=FORMATO   exibe informações no FORMATO dado"
 
-#: guix/scripts/describe.scm:73
+#: guix/scripts/describe.scm:90
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "      --list-formats     list the formats available"
+msgid ""
+"\n"
+"      --list-formats     display available formats"
+msgstr ""
+"\n"
+"      --list-formatos    lista os formatos disponíveis"
+
+#: guix/scripts/describe.scm:92
 msgid ""
 "\n"
 "  -p, --profile=PROFILE  display information about PROFILE"
@@ -4404,22 +4811,22 @@ msgstr ""
 "\n"
 "  -p, --profile=PERFIL   exibe informações sobre o PERFIL"
 
-#: guix/scripts/describe.scm:92
+#: guix/scripts/describe.scm:111
 #, scheme-format
 msgid "~%;; warning: GUIX_PACKAGE_PATH=\"~a\"~%"
 msgstr "~%;; aviso: GUIX_PACKAGE_PATH=\"~a\"~%"
 
-#: guix/scripts/describe.scm:95
+#: guix/scripts/describe.scm:114
 #, scheme-format
 msgid "'GUIX_PACKAGE_PATH' is set but it is not captured~%"
 msgstr "\"GUIX_PACKAGE_PATH\" está definida, mas não foi capturada~%"
 
-#: guix/scripts/describe.scm:122
+#: guix/scripts/describe.scm:170
 #, scheme-format
 msgid "failed to determine origin~%"
 msgstr "falha ao determinar a origem~%"
 
-#: guix/scripts/describe.scm:123
+#: guix/scripts/describe.scm:171
 #, scheme-format
 msgid ""
 "Perhaps this\n"
@@ -4430,37 +4837,37 @@ msgstr ""
 "@command{guix} não tenha sido obtido com @command{guix pull}? Sua string\n"
 "de versão é ~a.~%"
 
-#: guix/scripts/describe.scm:133
+#: guix/scripts/describe.scm:181
 #, scheme-format
 msgid "Git checkout:~%"
 msgstr "Git checkout:~%"
 
-#: guix/scripts/describe.scm:134
+#: guix/scripts/describe.scm:182
 #, scheme-format
 msgid "  repository: ~a~%"
 msgstr "  repositório: ~a~%"
 
-#: guix/scripts/describe.scm:135
+#: guix/scripts/describe.scm:183
 #, scheme-format
 msgid "  branch: ~a~%"
 msgstr "  ramo: ~a~%"
 
-#: guix/scripts/describe.scm:136
+#: guix/scripts/describe.scm:184
 #, scheme-format
 msgid "  commit: ~a~%"
 msgstr "  commit: ~a~%"
 
-#: guix/scripts/describe.scm:198
+#: guix/scripts/describe.scm:250
 #, scheme-format
 msgid "    repository URL: ~a~%"
 msgstr "    URL do repositório: ~a~%"
 
-#: guix/scripts/describe.scm:200
+#: guix/scripts/describe.scm:252
 #, scheme-format
 msgid "    branch: ~a~%"
 msgstr "    ramo: ~a~%"
 
-#: guix/scripts/describe.scm:201
+#: guix/scripts/describe.scm:253
 #, scheme-format
 msgid "    commit: ~a~%"
 msgstr "    commit: ~a~%"
@@ -4508,23 +4915,34 @@ msgstr "revertendo ~a...~%"
 msgid "successfully deployed ~a~%"
 msgstr "implantado com sucesso ~a~%"
 
-#: guix/gnu-maintenance.scm:647
+#: guix/gexp.scm:413
+#, scheme-format
+msgid "resolving '~a' relative to current directory~%"
+msgstr ""
+
+#: guix/gnu-maintenance.scm:699
 msgid "Updater for GNU packages"
 msgstr "Atualizador para pacotes GNU"
 
-#: guix/gnu-maintenance.scm:656
+#: guix/gnu-maintenance.scm:708
 msgid "Updater for GNU packages only available via FTP"
 msgstr "Atualizador para pacotes GNU só disponíveis via FTP"
 
-#: guix/gnu-maintenance.scm:665
+#: guix/gnu-maintenance.scm:717
+#, fuzzy
+#| msgid "Updater for packages hosted on kernel.org"
+msgid "Updater for packages hosted on savannah.gnu.org"
+msgstr "Atualizador para pacotes hospedados no kernel.org"
+
+#: guix/gnu-maintenance.scm:724
 msgid "Updater for X.org packages"
 msgstr "Atualizador para pacotes X.org"
 
-#: guix/gnu-maintenance.scm:672
+#: guix/gnu-maintenance.scm:731
 msgid "Updater for packages hosted on kernel.org"
 msgstr "Atualizador para pacotes hospedados no kernel.org"
 
-#: guix/scripts/container.scm:26
+#: guix/scripts/container.scm:27
 msgid ""
 "Usage: guix container ACTION ARGS...\n"
 "Build and manipulate Linux containers.\n"
@@ -4532,16 +4950,16 @@ msgstr ""
 "Uso: guix container AÇÃO ARGUMENTOS...\n"
 "Compila e manipula contêineres Linux.\n"
 
-#: guix/scripts/container.scm:31
+#: guix/scripts/container.scm:32
 msgid "   exec            execute a command inside of an existing container\n"
 msgstr "   exec            executa comando dentro de um contêiner existente\n"
 
-#: guix/scripts/container.scm:54
+#: guix/scripts/container.scm:58
 #, scheme-format
 msgid "guix container: missing action~%"
 msgstr "guix container: faltando uma ação~%"
 
-#: guix/scripts/container.scm:64
+#: guix/scripts/container.scm:68
 #, scheme-format
 msgid "guix container: invalid action~%"
 msgstr "guix container: ação inválida~%"
@@ -4579,54 +4997,61 @@ msgstr "processo inexistente ~d~%"
 msgid "exec failed with status ~d~%"
 msgstr "execução falhou com status ~d~%"
 
-#: guix/upstream.scm:328
+#: guix/upstream.scm:337
+#, fuzzy, scheme-format
+#| msgid "failed to download package '~a'~%"
+msgid "failed to download detached signature from ~a~%"
+msgstr "falha ao baixar localidade: \"~a\"~%"
+
+#: guix/upstream.scm:341
 #, scheme-format
 msgid "signature verification failed for '~a' (key: ~a)~%"
 msgstr "verificação de assinatura falhou para \"~a\" (chave: ~a)~%"
 
-#: guix/upstream.scm:332
+#: guix/upstream.scm:345
 #, scheme-format
 msgid "missing public key ~a for '~a'~%"
 msgstr "faltando chave pública ~a para \"~a\"~%"
 
-#: guix/upstream.scm:408
+#: guix/upstream.scm:421
 #, scheme-format
 msgid "cannot download for this method: ~s"
 msgstr "não foi possível baixar por este método: ~s"
 
-#: guix/upstream.scm:471
+#: guix/upstream.scm:486
 #, scheme-format
 msgid "~a: could not locate source file"
 msgstr "~a: não foi possível localizar um arquivo fonte"
 
-#: guix/upstream.scm:476
-#, scheme-format
-msgid "~a: ~a: no `version' field in source; skipping~%"
+#: guix/upstream.scm:490
+#, fuzzy, scheme-format
+#| msgid "~a: ~a: no `version' field in source; skipping~%"
+msgid "~a: no `version' field in source; skipping~%"
 msgstr "~a: ~a: sem o campo \"version\" no fonte; ignorando~%"
 
-#: guix/ui.scm:156
+#: guix/ui.scm:161
 #, scheme-format
 msgid "error: ~a: unbound variable"
 msgstr "erro: ~a: variável não vinculada"
 
-#: guix/ui.scm:256
+#: guix/ui.scm:261
 msgid "entering debugger; type ',bt' for a backtrace\n"
 msgstr "entrando no depurador; digite \",bt\" para o \"backtrace\"\n"
 
-#: guix/ui.scm:313
+#: guix/ui.scm:318
 msgid "hint: "
 msgstr "dica: "
 
-#: guix/ui.scm:330
+#: guix/ui.scm:335
 msgid "Did you forget a @code{use-modules} form?"
 msgstr "Você se esqueceu de uma forma @code{use-modules}?"
 
-#: guix/ui.scm:332
+#: guix/ui.scm:337
 #, scheme-format
 msgid "Did you forget @code{(use-modules ~a)}?"
 msgstr "Você se esqueceu de @code{(use-modules ~a)}?"
 
-#: guix/ui.scm:342
+#: guix/ui.scm:347
 #, scheme-format
 msgid ""
 "File @file{~a} should probably start with:\n"
@@ -4641,54 +5066,66 @@ msgstr ""
 "(define-module ~a)\n"
 "@end example"
 
-#: guix/ui.scm:356
+#: guix/ui.scm:361
 #, scheme-format
 msgid "module name ~a does not match file name '~a'~%"
 msgstr "o nome do módulo \"~a\" não corresponde a um nome de arquivo \"~a\"~%"
 
-#: guix/ui.scm:360
+#: guix/ui.scm:365
 #, scheme-format
 msgid "~a: file is empty~%"
 msgstr "~a: arquivo está vazio~%"
 
-#: guix/ui.scm:371 guix/ui.scm:413 guix/ui.scm:421
+#: guix/ui.scm:376 guix/ui.scm:424 guix/ui.scm:432 guix/ui.scm:436
 #, scheme-format
 msgid "failed to load '~a': ~a~%"
 msgstr "falha ao carregar \"~a\": ~a~%"
 
-#: guix/ui.scm:378
+#: guix/ui.scm:383
 #, scheme-format
 msgid "~amissing closing parenthesis~%"
 msgstr "~afaltando parêntese de fechamento~%"
 
-#: guix/ui.scm:383
+#: guix/ui.scm:388
 #, scheme-format
 msgid "~s: ~a~%"
 msgstr "~s: ~a~%"
 
-#: guix/ui.scm:393 guix/ui.scm:845
+#: guix/ui.scm:404 guix/ui.scm:897
 #, scheme-format
 msgid "exception thrown: ~s~%"
 msgstr "excepção lançada: ~s~%"
 
-#: guix/ui.scm:397 guix/ui.scm:427
+#: guix/ui.scm:408 guix/ui.scm:445
 #, scheme-format
 msgid "failed to load '~a':~%"
 msgstr "falha ao carregar \"~a\":~%"
 
-#: guix/ui.scm:424
+#: guix/ui.scm:442
 #, scheme-format
 msgid "failed to load '~a': exception thrown: ~s~%"
 msgstr "falha ao carregar \"~a\": exceção lançada: ~s~%"
 
-#: guix/ui.scm:472
+#: guix/ui.scm:490
+#, fuzzy
+#| msgid ""
+#| "Consider installing the @code{glibc-utf8-locales} or\n"
+#| "@code{glibc-locales} package and defining @code{GUIX_LOCPATH}, along these\n"
+#| "lines:\n"
+#| "\n"
+#| "@example\n"
+#| "guix package -i glibc-utf8-locales\n"
+#| "export GUIX_LOCPATH=\"$HOME/.guix-profile/lib/locale\"\n"
+#| "@end example\n"
+#| "\n"
+#| "See the \"Application Setup\" section in the manual, for more info.\n"
 msgid ""
 "Consider installing the @code{glibc-utf8-locales} or\n"
 "@code{glibc-locales} package and defining @code{GUIX_LOCPATH}, along these\n"
 "lines:\n"
 "\n"
 "@example\n"
-"guix package -i glibc-utf8-locales\n"
+"guix install glibc-utf8-locales\n"
 "export GUIX_LOCPATH=\"$HOME/.guix-profile/lib/locale\"\n"
 "@end example\n"
 "\n"
@@ -4708,15 +5145,15 @@ msgstr ""
 #. TRANSLATORS: Translate "(C)" to the copyright symbol
 #. (C-in-a-circle), if this symbol is available in the user's
 #. locale.  Otherwise, do not translate "(C)"; leave it as-is.  */
-#: guix/ui.scm:510
+#: guix/ui.scm:532
 msgid "(C)"
 msgstr "(C)"
 
-#: guix/ui.scm:511
+#: guix/ui.scm:533
 msgid "the Guix authors\n"
 msgstr "os autores do Guix\n"
 
-#: guix/ui.scm:512
+#: guix/ui.scm:534
 msgid ""
 "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\n"
 "This is free software: you are free to change and redistribute it.\n"
@@ -4730,7 +5167,7 @@ msgstr ""
 #. package.  Please add another line saying "Report translation bugs to
 #. ...\n" with the address for translation bugs (typically your translation
 #. team's web or email address).
-#: guix/ui.scm:524
+#: guix/ui.scm:546
 #, scheme-format
 msgid ""
 "\n"
@@ -4740,7 +5177,7 @@ msgstr ""
 "Relate erros para: ~a.\n"
 "Relate erros de tradução para <https://translationproject.org/team/pt_BR.html>"
 
-#: guix/ui.scm:526
+#: guix/ui.scm:548
 #, scheme-format
 msgid ""
 "\n"
@@ -4749,35 +5186,39 @@ msgstr ""
 "\n"
 "Site do ~a: <~a>"
 
-#: guix/ui.scm:528
+#: guix/ui.scm:550
+#, fuzzy, scheme-format
+#| msgid ""
+#| "\n"
+#| "General help using GNU software: <http://www.gnu.org/gethelp/>"
 msgid ""
 "\n"
-"General help using GNU software: <http://www.gnu.org/gethelp/>"
+"General help using Guix and GNU software: <~a>"
 msgstr ""
 "\n"
 "Ajuda em geral usando softwares GNU: <http://www.gnu.org/gethelp/>"
 
-#: guix/ui.scm:583
+#: guix/ui.scm:606
 #, scheme-format
 msgid "'~a' is not a valid regular expression: ~a~%"
 msgstr "\"~a\" não é uma expressão regular válida: ~a~%"
 
-#: guix/ui.scm:589
+#: guix/ui.scm:612
 #, scheme-format
 msgid "~a: invalid number~%"
 msgstr "~a: número inválido~%"
 
-#: guix/ui.scm:607
+#: guix/ui.scm:630
 #, scheme-format
 msgid "invalid number: ~a~%"
 msgstr "número inválido: ~a~%"
 
-#: guix/ui.scm:630
+#: guix/ui.scm:653
 #, scheme-format
 msgid "unknown unit: ~a~%"
 msgstr "unidade desconhecida: ~a~%"
 
-#: guix/ui.scm:645
+#: guix/ui.scm:668
 #, scheme-format
 msgid ""
 "You cannot have two different versions\n"
@@ -4786,7 +5227,7 @@ msgstr ""
 "Você não pode ter duas versões diferentes\n"
 "ou variantes de @code{~a} no mesmo perfil."
 
-#: guix/ui.scm:648
+#: guix/ui.scm:671
 #, scheme-format
 msgid ""
 "Try upgrading both @code{~a} and @code{~a},\n"
@@ -4795,111 +5236,111 @@ msgstr ""
 "Tente atualizar ambos @code{~a} e @code{~a},\n"
 "ou remover um deles do perfil."
 
-#: guix/ui.scm:667
+#: guix/ui.scm:707
 #, scheme-format
 msgid "~a:~a:~a: package `~a' has an invalid input: ~s~%"
 msgstr "~a:~a:~a: o pacote \"~a\" tem uma entrada inválida: ~s~%"
 
-#: guix/ui.scm:674
+#: guix/ui.scm:714
 #, scheme-format
 msgid "~a: ~a: build system `~a' does not support cross builds~%"
 msgstr "~a: ~a: o sistema de compilação de \"~a\" não oferece suporte a compilações cruzadas~%"
 
-#: guix/ui.scm:680
+#: guix/ui.scm:720
 #, scheme-format
 msgid "~s: invalid G-expression input~%"
 msgstr "~s: entrada de expressão G inválida~%"
 
-#: guix/ui.scm:683
+#: guix/ui.scm:723
 #, scheme-format
 msgid "profile '~a' does not exist~%"
 msgstr "o perfil \"~a\" não existe~%"
 
-#: guix/ui.scm:686
+#: guix/ui.scm:726
 #, scheme-format
 msgid "generation ~a of profile '~a' does not exist~%"
 msgstr "a geração ~a do perfil \"~a\" não existe~%"
 
-#: guix/ui.scm:691
+#: guix/ui.scm:731
 #, scheme-format
 msgid "package '~a~@[@~a~]~@[:~a~]' not found in profile~%"
 msgstr "pacote '~a~@[@~a~]~@[:~a~]' não localizado no perfil~%"
 
-#: guix/ui.scm:703
+#: guix/ui.scm:743
 #, scheme-format
 msgid "   ... propagated from ~a@~a~%"
 msgstr "   ... propagado de ~a@~a~%"
 
-#: guix/ui.scm:713
+#: guix/ui.scm:753
 #, scheme-format
 msgid "profile contains conflicting entries for ~a~a~%"
 msgstr "o perfil contém entradas conflitantes para ~a~a~%"
 
-#: guix/ui.scm:716
+#: guix/ui.scm:756
 #, scheme-format
 msgid "  first entry: ~a@~a~a ~a~%"
 msgstr "  primeira entrada: ~a@~a~a ~a~%"
 
-#: guix/ui.scm:722
+#: guix/ui.scm:762
 #, scheme-format
 msgid "  second entry: ~a@~a~a ~a~%"
 msgstr "  segunda entrada: ~a@~a~a ~a~%"
 
-#: guix/ui.scm:734
+#: guix/ui.scm:774
 #, scheme-format
 msgid "corrupt input while restoring '~a' from ~s~%"
 msgstr "entrada corrompida ao restaurar \"~a\" de ~s~%"
 
-#: guix/ui.scm:736
+#: guix/ui.scm:776
 #, scheme-format
 msgid "corrupt input while restoring archive from ~s~%"
 msgstr "entrada corrompida ao restaurar um pacote de ~s~%"
 
-#: guix/ui.scm:739
+#: guix/ui.scm:779
 #, scheme-format
 msgid "failed to connect to `~a': ~a~%"
 msgstr "falha ao conectar em \"~a\": ~a~%"
 
-#: guix/ui.scm:747
+#: guix/ui.scm:787
 #, scheme-format
 msgid "reference to invalid output '~a' of derivation '~a'~%"
 msgstr "referência a uma saída inválida \"~a\" da derivação \"~a\"~%"
 
-#: guix/ui.scm:751
+#: guix/ui.scm:791
 #, scheme-format
 msgid "file '~a' could not be found in these directories:~{ ~a~}~%"
 msgstr "o arquivo \"~a\" não pôde ser localizado nesses diretórios:~{ ~a~}~%"
 
-#: guix/ui.scm:756
+#: guix/ui.scm:796
 #, scheme-format
 msgid "program exited~@[ with non-zero exit status ~a~]~@[ terminated by signal ~a~]~@[ stopped by signal ~a~]: ~s~%"
 msgstr "programa saiu~@[ com status de saída não zero ~a~]~@[ terminado por sinal ~a~]~@[ parado por sinal ~a~]: ~s~%"
 
-#: guix/ui.scm:830
+#: guix/ui.scm:876
 #, scheme-format
 msgid "failed to read expression ~s: ~s~%"
 msgstr "falha ao ler a expressão ~s: ~s~%"
 
-#: guix/ui.scm:836
+#: guix/ui.scm:882
 #, scheme-format
 msgid "failed to evaluate expression '~a':~%"
 msgstr "falha ao avaliar a expressão \"~a\":~%"
 
-#: guix/ui.scm:839
+#: guix/ui.scm:885
 #, scheme-format
 msgid "syntax error: ~a~%"
 msgstr "erro de sintaxe: ~a~%"
 
-#: guix/ui.scm:857
+#: guix/ui.scm:909
 #, scheme-format
 msgid "expression ~s does not evaluate to a package~%"
 msgstr "a expressão ~s não corresponde a um pacote~%"
 
-#: guix/ui.scm:884
+#: guix/ui.scm:936
 msgid "at least ~,1h MB needed but only ~,1h MB available in ~a~%"
 msgstr "pelo menos ~,1h MB necessário, mas apenas ~,1h MB disponível em ~a~%"
 
-#: guix/ui.scm:982
+#: guix/ui.scm:1045
 #, scheme-format
 msgid "~:[The following derivation would be built:~%~{   ~a~%~}~;~]"
 msgid_plural "~:[The following derivations would be built:~%~{   ~a~%~}~;~]"
@@ -4908,32 +5349,48 @@ msgstr[1] "~:[As seguintes derivações seriam compiladas:~%~{   ~a~%~}~;~]"
 
 #. TRANSLATORS: "MB" is for "megabyte"; it should be
 #. translated to the corresponding abbreviation.
-#: guix/ui.scm:990
+#: guix/ui.scm:1054
 msgid "~:[~,1h MB would be downloaded:~%~{   ~a~%~}~;~]"
 msgstr "~:[~,1h MB seria baixado:~%~{   ~a~%~}~;~]"
 
-#: guix/ui.scm:996
+#: guix/ui.scm:1060
 #, scheme-format
 msgid "~:[The following file would be downloaded:~%~{   ~a~%~}~;~]"
 msgid_plural "~:[The following files would be downloaded:~%~{   ~a~%~}~;~]"
 msgstr[0] "~:[O seguinte arquivo seria baixado:~%~{   ~a~%~}~;~]"
 msgstr[1] "~:[Os seguintes arquivos seriam baixados:~%~{   ~a~%~}~;~]"
 
-#: guix/ui.scm:1003
+#: guix/ui.scm:1067
 #, scheme-format
 msgid "~:[The following graft would be made:~%~{   ~a~%~}~;~]"
 msgid_plural "~:[The following grafts would be made:~%~{   ~a~%~}~;~]"
 msgstr[0] "~:[O seguinte enxerto seria feito:~%~{   ~a~%~}~;~]"
 msgstr[1] "~:[Os seguintes enxertos seriam feitos:~%~{   ~a~%~}~;~]"
 
-#: guix/ui.scm:1008
+#: guix/ui.scm:1072
 #, scheme-format
 msgid "~:[The following profile hook would be built:~%~{   ~a~%~}~;~]"
 msgid_plural "~:[The following profile hooks would be built:~%~{   ~a~%~}~;~]"
 msgstr[0] "~:[O seguinte gancho de perfil seria compilado:~%~{   ~a~%~}~;~]"
 msgstr[1] "~:[Os seguintes ganchos de perfil seriam compilados:~%~{   ~a~%~}~;~]"
 
-#: guix/ui.scm:1014
+#. TRANSLATORS: "MB" is for "megabyte"; it should be
+#. translated to the corresponding abbreviation.
+#: guix/ui.scm:1084
+#, fuzzy
+#| msgid "~:[~,1h MB would be downloaded:~%~{   ~a~%~}~;~]"
+msgid "~:[~,1h MB would be downloaded~%~;~]"
+msgstr "~:[~,1h MB seria baixado:~%~{   ~a~%~}~;~]"
+
+#: guix/ui.scm:1088
+#, fuzzy
+#| msgid "~:[~,1h MB would be downloaded:~%~{   ~a~%~}~;~]"
+msgid "~:[~h item would be downloaded~%~;~]"
+msgid_plural "~:[~h items would be downloaded~%~;~]"
+msgstr[0] "~:[~,1h MB seria baixado:~%~{   ~a~%~}~;~]"
+msgstr[1] "~:[~,1h MB seria baixado:~%~{   ~a~%~}~;~]"
+
+#: guix/ui.scm:1096
 #, scheme-format
 msgid "~:[The following derivation will be built:~%~{   ~a~%~}~;~]"
 msgid_plural "~:[The following derivations will be built:~%~{   ~a~%~}~;~]"
@@ -4942,102 +5399,113 @@ msgstr[1] "~:[As seguintes derivações serão compiladas:~%~{   ~a~%~}~;~]"
 
 #. TRANSLATORS: "MB" is for "megabyte"; it should be
 #. translated to the corresponding abbreviation.
-#: guix/ui.scm:1022
+#: guix/ui.scm:1105
 msgid "~:[~,1h MB will be downloaded:~%~{   ~a~%~}~;~]"
 msgstr "~:[~,1h MB será baixado:~%~{   ~a~%~}~;~]"
 
-#: guix/ui.scm:1028
+#: guix/ui.scm:1111
 #, scheme-format
 msgid "~:[The following file will be downloaded:~%~{   ~a~%~}~;~]"
 msgid_plural "~:[The following files will be downloaded:~%~{   ~a~%~}~;~]"
 msgstr[0] "~:[O seguinte arquivo será baixado:~%~{   ~a~%~}~;~]"
 msgstr[1] "~:[Os seguintes arquivos serão baixados:~%~{   ~a~%~}~;~]"
 
-#: guix/ui.scm:1035
+#: guix/ui.scm:1118
 #, scheme-format
 msgid "~:[The following graft will be made:~%~{   ~a~%~}~;~]"
 msgid_plural "~:[The following grafts will be made:~%~{   ~a~%~}~;~]"
 msgstr[0] "~:[O seguinte enxerto será feito:~%~{   ~a~%~}~;~]"
 msgstr[1] "~:[Os seguintes enxertos serão feitos:~%~{   ~a~%~}~;~]"
 
-#: guix/ui.scm:1040
+#: guix/ui.scm:1123
 #, scheme-format
 msgid "~:[The following profile hook will be built:~%~{   ~a~%~}~;~]"
 msgid_plural "~:[The following profile hooks will be built:~%~{   ~a~%~}~;~]"
 msgstr[0] "~:[O seguinte gancho de perfil será compilado:~%~{   ~a~%~}~;~]"
 msgstr[1] "~:[Os seguintes ganchos de perfil serão compilados:~%~{   ~a~%~}~;~]"
 
-#: guix/ui.scm:1167
+#. TRANSLATORS: "MB" is for "megabyte"; it should be
+#. translated to the corresponding abbreviation.
+#: guix/ui.scm:1135
+#, fuzzy
+#| msgid "~:[~,1h MB will be downloaded:~%~{   ~a~%~}~;~]"
+msgid "~:[~,1h MB will be downloaded~%~;~]"
+msgstr "~:[~,1h MB será baixado:~%~{   ~a~%~}~;~]"
+
+#: guix/ui.scm:1139
+#, fuzzy
+#| msgid "~:[~,1h MB will be downloaded:~%~{   ~a~%~}~;~]"
+msgid "~:[~h item will be downloaded~%~;~]"
+msgid_plural "~:[~h items will be downloaded~%~;~]"
+msgstr[0] "~:[~,1h MB será baixado:~%~{   ~a~%~}~;~]"
+msgstr[1] "~:[~,1h MB será baixado:~%~{   ~a~%~}~;~]"
+
+#: guix/ui.scm:1258
 msgid "(dependencies or package changed)"
 msgstr "(dependências ou pacote alterado)"
 
-#: guix/ui.scm:1180
+#: guix/ui.scm:1277
 #, scheme-format
 msgid "The following package would be removed:~%~{~a~%~}~%"
 msgid_plural "The following packages would be removed:~%~{~a~%~}~%"
 msgstr[0] "O seguinte pacote seria removido:~%~{~a~%~}~%"
 msgstr[1] "Os seguintes pacotes seriam removidos:~%~{~a~%~}~%"
 
-#: guix/ui.scm:1185
+#: guix/ui.scm:1282
 #, scheme-format
 msgid "The following package will be removed:~%~{~a~%~}~%"
 msgid_plural "The following packages will be removed:~%~{~a~%~}~%"
 msgstr[0] "O seguinte pacote será removido:~%~{~a~%~}~%"
 msgstr[1] "Os seguintes pacotes serão removidos:~%~{~a~%~}~%"
 
-#: guix/ui.scm:1198
+#: guix/ui.scm:1295
 #, scheme-format
 msgid "The following package would be downgraded:~%~{~a~%~}~%"
 msgid_plural "The following packages would be downgraded:~%~{~a~%~}~%"
 msgstr[0] "O seguinte pacote sofreria um downgrade:~%~{~a~%~}~%"
 msgstr[1] "Os seguintes pacotes sofreriam um downgrade:~%~{~a~%~}~%"
 
-#: guix/ui.scm:1203
+#: guix/ui.scm:1300
 #, scheme-format
 msgid "The following package will be downgraded:~%~{~a~%~}~%"
 msgid_plural "The following packages will be downgraded:~%~{~a~%~}~%"
 msgstr[0] "O seguinte pacote sofrerá um downgrade:~%~{~a~%~}~%"
 msgstr[1] "Os seguintes pacotes sofrerão um downgrade:~%~{~a~%~}~%"
 
-#: guix/ui.scm:1217
+#: guix/ui.scm:1313
 #, scheme-format
 msgid "The following package would be upgraded:~%~{~a~%~}~%"
 msgid_plural "The following packages would be upgraded:~%~{~a~%~}~%"
 msgstr[0] "O seguinte pacote seria atualizado:~%~{~a~%~}~%"
 msgstr[1] "Os seguintes pacotes seriam atualizados:~%~{~a~%~}~%"
 
-#: guix/ui.scm:1222
+#: guix/ui.scm:1318
 #, scheme-format
 msgid "The following package will be upgraded:~%~{~a~%~}~%"
 msgid_plural "The following packages will be upgraded:~%~{~a~%~}~%"
 msgstr[0] "O seguinte pacote será atualizado:~%~{~a~%~}~%"
 msgstr[1] "Os seguintes pacotes serão atualizados:~%~{~a~%~}~%"
 
-#: guix/ui.scm:1233
+#: guix/ui.scm:1329
 #, scheme-format
 msgid "The following package would be installed:~%~{~a~%~}~%"
 msgid_plural "The following packages would be installed:~%~{~a~%~}~%"
 msgstr[0] "O seguinte pacote seria instalado:~%~{~a~%~}~%"
 msgstr[1] "Os seguintes pacotes seriam instalados:~%~{~a~%~}~%"
 
-#: guix/ui.scm:1238
+#: guix/ui.scm:1334
 #, scheme-format
 msgid "The following package will be installed:~%~{~a~%~}~%"
 msgid_plural "The following packages will be installed:~%~{~a~%~}~%"
 msgstr[0] "O seguinte pacote será instalado:~%~{~a~%~}~%"
 msgstr[1] "Os seguintes pacotes serão instalados:~%~{~a~%~}~%"
 
-#: guix/ui.scm:1592
-#, scheme-format
-msgid "Run @code{~a ... | less} to view all the results."
-msgstr "Execute @code{~a ... | less} para ver todos os resultados."
-
-#: guix/ui.scm:1742
+#: guix/ui.scm:1861
 #, scheme-format
 msgid "invalid syntax: ~a~%"
 msgstr "sintaxe inválida: ~a~%"
 
-#: guix/ui.scm:1752
+#: guix/ui.scm:1870
 #, scheme-format
 msgid "Generation ~a\t~a"
 msgstr "Geração ~a\t~a"
@@ -5047,7 +5515,7 @@ msgstr "Geração ~a\t~a"
 #. usual way of presenting dates in your locale.
 #. See https://www.gnu.org/software/guile/manual/html_node/SRFI_002d19-Date-to-string.html
 #. for details.
-#: guix/ui.scm:1762
+#: guix/ui.scm:1880
 #, scheme-format
 msgid "~b ~d ~Y ~T"
 msgstr "~d ~b ~Y ~T"
@@ -5055,38 +5523,38 @@ msgstr "~d ~b ~Y ~T"
 #. TRANSLATORS: The word "current" here is an adjective for
 #. "Generation", as in "current generation".  Use the appropriate
 #. gender where applicable.
-#: guix/ui.scm:1768
+#: guix/ui.scm:1886
 #, scheme-format
 msgid "~a\t(current)~%"
 msgstr "~a\t(atual)~%"
 
-#: guix/ui.scm:1802
+#: guix/ui.scm:1920
 #, scheme-format
 msgid "cannot lock profile ~a: ~a~%"
 msgstr "não foi possível bloquear o perfil ~a: ~a~%"
 
-#: guix/ui.scm:1804
+#: guix/ui.scm:1922
 #, scheme-format
 msgid "profile ~a is locked by another process~%"
 msgstr "o perfil ~a está bloqueado por outro processo~%"
 
 # geração, criação?
-#: guix/ui.scm:1831
+#: guix/ui.scm:1949
 #, scheme-format
 msgid "switched from generation ~a to ~a~%"
 msgstr "trocado da geração ~a para ~a~%"
 
-#: guix/ui.scm:1847
+#: guix/ui.scm:1965
 #, scheme-format
 msgid "deleting ~a~%"
 msgstr "excluindo ~a~%"
 
-#: guix/ui.scm:1878
+#: guix/ui.scm:1996
 #, scheme-format
 msgid "Try `guix --help' for more information.~%"
 msgstr "Tente \"guix --help\" para mais informações.~%"
 
-#: guix/ui.scm:1906
+#: guix/ui.scm:2077
 msgid ""
 "Usage: guix COMMAND ARGS...\n"
 "Run COMMAND with ARGS.\n"
@@ -5094,21 +5562,21 @@ msgstr ""
 "Uso: guix COMANDO ARGUMENTOS...\n"
 "Executa COMANDO com ARGUMENTOS.\n"
 
-#: guix/ui.scm:1909
+#: guix/ui.scm:2080
 msgid "COMMAND must be one of the sub-commands listed below:\n"
 msgstr "COMANDO deve ser um dos subcomandos listados abaixo:\n"
 
-#: guix/ui.scm:1925
+#: guix/ui.scm:2104
 #, scheme-format
 msgid "guix: ~a: command not found~%"
 msgstr "guix: ~a: comando não encontrado~%"
 
-#: guix/ui.scm:1955
+#: guix/ui.scm:2134
 #, scheme-format
 msgid "guix: missing command name~%"
 msgstr "guix: faltando um nome de comando~%"
 
-#: guix/ui.scm:1963
+#: guix/ui.scm:2142
 #, scheme-format
 msgid "guix: unrecognized option '~a'~%"
 msgstr "guix: opção \"~a\" desconhecida~%"
@@ -5170,9 +5638,11 @@ msgid "building package cache..."
 msgstr "compilando cache de pacotes..."
 
 #: guix/status.scm:475
-#, scheme-format
-msgid "applying ~a graft for ~a..."
-msgid_plural "applying ~a grafts for ~a..."
+#, fuzzy, scheme-format
+#| msgid "applying ~a graft for ~a..."
+#| msgid_plural "applying ~a grafts for ~a..."
+msgid "applying ~a graft for ~a ..."
+msgid_plural "applying ~a grafts for ~a ..."
 msgstr[0] "aplicando enxerto ~a para ~a..."
 msgstr[1] "aplicando enxertos ~a para ~a..."
 
@@ -5226,8 +5696,9 @@ msgid "substituting ~a..."
 msgstr "substituindo ~a..."
 
 #: guix/status.scm:528
-#, scheme-format
-msgid "downloading from ~a..."
+#, fuzzy, scheme-format
+#| msgid "downloading from ~a..."
+msgid "downloading from ~a ..."
 msgstr "baixando de ~a..."
 
 #: guix/status.scm:553
@@ -5271,66 +5742,112 @@ msgstr "seguindo redirecionamento para \"~a\"...~%"
 msgid "~a: HTTP download failed: ~a (~s)"
 msgstr "~a: download HTTP falhou: ~a (~s)"
 
-#: guix/nar.scm:147
+#: guix/nar.scm:172
 msgid "signature is not a valid s-expression"
 msgstr "a assinatura não é uma expressão-s válida"
 
-#: guix/nar.scm:156
+#: guix/nar.scm:181
 msgid "invalid signature"
 msgstr "assinatura inválida"
 
-#: guix/nar.scm:160
+#: guix/nar.scm:185
 msgid "invalid hash"
 msgstr "hash inválido"
 
-#: guix/nar.scm:168
+#: guix/nar.scm:193
 msgid "unauthorized public key"
 msgstr "chave pública não autorizada"
 
-#: guix/nar.scm:173
+#: guix/nar.scm:198
 msgid "corrupt signature data"
 msgstr "dados de assinatura corrompidos"
 
-#: guix/nar.scm:193
+#: guix/nar.scm:218
 msgid "corrupt file set archive"
 msgstr "pacote de conjunto de arquivos corrompido"
 
-#: guix/nar.scm:203
+#: guix/nar.scm:228
 #, scheme-format
 msgid "importing file or directory '~a'...~%"
 msgstr "importando arquivo ou diretório \"~a\"...~%"
 
-#: guix/nar.scm:214
+#: guix/nar.scm:239
 #, scheme-format
 msgid "found valid signature for '~a'~%"
 msgstr "localizada assinatura válida para \"~a\"~%"
 
-#: guix/nar.scm:221
+#: guix/nar.scm:246
 msgid "imported file lacks a signature"
 msgstr "arquivo importado carece de uma assinatura"
 
-#: guix/nar.scm:260
+#: guix/nar.scm:285
 msgid "invalid inter-file archive mark"
 msgstr "marca inválida de pacote interarquivo"
 
-#: guix/channels.scm:168
+#: guix/channels.scm:266
 msgid "unsupported '.guix-channel' version"
 msgstr "sem suporte à versão de \".guix-channel\""
 
-#: guix/channels.scm:174
+#: guix/channels.scm:272
 msgid "invalid '.guix-channel' file"
 msgstr "arquivo \".guix-channel\" inválido"
 
-#: guix/channels.scm:224
+#: guix/channels.scm:331
+msgid "Authenticating channel '~a', commits ~a to ~a (~h new commits)...~%"
+msgstr ""
+
+#: guix/channels.scm:382
+#, scheme-format
+msgid "channel '~a' lacks an introduction and cannot be authenticated~%"
+msgstr ""
+
+#: guix/channels.scm:387
+msgid ""
+"Add the missing introduction to your\n"
+"channels file to address the issue.  Alternatively, you can pass\n"
+"@option{--disable-authentication}, at the risk of running unauthenticated and\n"
+"thus potentially malicious code."
+msgstr ""
+
+#: guix/channels.scm:391
+#, scheme-format
+msgid "channel authentication disabled~%"
+msgstr ""
+
+#: guix/channels.scm:416
+#, scheme-format
+msgid "aborting update of channel '~a' to commit ~a, which is not a descendant of ~a"
+msgstr ""
+
+#: guix/channels.scm:427
+msgid ""
+"Use @option{--allow-downgrades} to force\n"
+"this downgrade."
+msgstr ""
+
+#: guix/channels.scm:431
+msgid ""
+"This could indicate that the channel has\n"
+"been tampered with and is trying to force a roll-back, preventing you from\n"
+"getting the latest updates.  If you think this is not the case, explicitly\n"
+"allow non-forward updates."
+msgstr ""
+
+#: guix/channels.scm:484
 #, scheme-format
 msgid "Updating channel '~a' from Git repository at '~a'...~%"
 msgstr "Atualizando canal \"~a\" a partir do repositório Git \"~a\"...~%"
 
-#: guix/channels.scm:475
+#: guix/channels.scm:505
+#, scheme-format
+msgid "pulled channel '~a' from a mirror of ~a, which might be stale~%"
+msgstr ""
+
+#: guix/channels.scm:733
 msgid "'guix' channel is lacking"
 msgstr "o canal \"guix\" está faltando"
 
-#: guix/channels.scm:477
+#: guix/channels.scm:735
 msgid ""
 "Make sure your list of channels\n"
 "contains one channel named @code{guix} providing the core of Guix."
@@ -5338,67 +5855,77 @@ msgstr ""
 "Verifique se a sua lista de canais\n"
 "contém um canal chamado @code{guix}, que fornece o núcleo do Guix."
 
-#: guix/channels.scm:679
+#: guix/channels.scm:963
 msgid "invalid channel news entry"
 msgstr "entrada de novidades de canal inválida"
 
-#: guix/channels.scm:697
+#: guix/channels.scm:981
 msgid "syntactically invalid channel news file"
 msgstr "arquivo de novidades de canal sintaticamente inválido"
 
-#: guix/channels.scm:700
+#: guix/channels.scm:984
 msgid "invalid channel news file"
 msgstr "arquivo de novidades de canal inválido"
 
-#: guix/profiles.scm:564
+#: guix/profiles.scm:574
 msgid "unsupported manifest format"
 msgstr "sem suporte ao formato de manifesto"
 
-#: guix/profiles.scm:1878
+#: guix/profiles.scm:1923
 #, scheme-format
 msgid "while creating directory `~a': ~a"
 msgstr "ao criar diretório \"~a\": ~a"
 
-#: guix/profiles.scm:1883
+#: guix/profiles.scm:1928
 #, scheme-format
 msgid "Please create the @file{~a} directory, with you as the owner."
 msgstr "Por favor, crie o diretório @file{~a}, com você sendo o proprietário."
 
-#: guix/profiles.scm:1892
+#: guix/profiles.scm:1937
 #, scheme-format
 msgid "directory `~a' is not owned by you"
 msgstr "diretório \"~a\" não tem você como proprietário"
 
-#: guix/profiles.scm:1896
+#: guix/profiles.scm:1941
 #, scheme-format
 msgid "Please change the owner of @file{~a} to user ~s."
 msgstr "Por favor, altere o proprietário d @file{~a} para o usuário ~s."
 
-#: guix/git.scm:170
+#: guix/git.scm:175
 msgid "long Git object ID is required"
 msgstr "Um ID longo de objeto Git é necessário"
 
-#: guix/git.scm:228
+#: guix/git.scm:226
+#, scheme-format
+msgid "Git error ~a~%"
+msgstr "erro no Git ~a~%"
+
+#: guix/git.scm:228 guix/git.scm:418
+#, scheme-format
+msgid "Git error: ~a~%"
+msgstr "erro no Git: ~a~%"
+
+#: guix/git.scm:256
 #, scheme-format
 msgid "updating submodule '~a'...~%"
 msgstr "atualizando submódulo \"~a\"...~%"
 
-#: guix/git.scm:241
+#: guix/git.scm:269
 #, scheme-format
 msgid "Support for submodules is missing; please upgrade Guile-Git.~%"
 msgstr "Suporte a submódulos está faltando; por favor, atualize Guile-Git.~%"
 
-#: guix/git.scm:440
+#: guix/git.scm:512
 #, scheme-format
 msgid "cannot fetch commit ~a from ~a: ~a"
 msgstr "não foi possível obter o commit ~a de ~a: ~a"
 
-#: guix/git.scm:443
+#: guix/git.scm:515
 #, scheme-format
 msgid "cannot fetch branch '~a' from ~a: ~a"
 msgstr "não foi possível obter o ramo \"~a\" de ~a: ~a"
 
-#: guix/git.scm:446
+#: guix/git.scm:518
 #, scheme-format
 msgid "Git failure while fetching ~a: ~a"
 msgstr "falha no Git ao obter ~a: ~a"
@@ -5415,7 +5942,7 @@ msgstr "'~a' foi descontinuado~%"
 
 #. TRANSLATORS: 'derivation' must not be translated; it refers to the
 #. 'derivation' procedure.
-#: guix/derivations.scm:743
+#: guix/derivations.scm:775
 #, scheme-format
 msgid "in '~a': deprecated 'derivation' calling convention used~%"
 msgstr "em \"~a\": uso descontinuado de convenção de chamada de \"derivation\"~%"
@@ -5544,6 +6071,35 @@ msgstr "ouve conexões no SOQUETE"
 msgid "produce debugging output"
 msgstr "produz saída de depuração"
 
+#~ msgid "cannot find public key for secret key '~a'~%"
+#~ msgstr "não foi possível localizar a chave pública da chave privada \"~a\"~%"
+
+#~ msgid "error: invalid signature: ~a~%"
+#~ msgstr "erro: assinatura inválida: ~a~%"
+
+#~ msgid "error: unauthorized public key: ~a~%"
+#~ msgstr "erro: chave pública não autorizada: ~a~%"
+
+#~ msgid "error: corrupt signature data: ~a~%"
+#~ msgstr "erro: dados de assinatura corrompidos: ~a~%"
+
+#~ msgid "~a: error: device '~a' not found: ~a~%"
+#~ msgstr "~a: erro: dispositivo \"~a\" não localizado: ~a~%"
+
+#~ msgid ""
+#~ "\n"
+#~ "      --file-system-type=TYPE\n"
+#~ "                         for 'disk-image', produce a root file system of TYPE\n"
+#~ "                         (one of 'ext4', 'iso9660')"
+#~ msgstr ""
+#~ "\n"
+#~ "      --file-system-type=TIPO\n"
+#~ "                         para \"disk-image\", produz um sistema de arquivos\n"
+#~ "                         raiz do TIPO (um entre \"ext4\", \"iso9660\")"
+
+#~ msgid "Run @code{~a ... | less} to view all the results."
+#~ msgstr "Execute @code{~a ... | less} para ver todos os resultados."
+
 #~ msgid "Retry system install"
 #~ msgstr "Tentar novamente a instalação do sistema"
 
diff --git a/po/guix/sv.po b/po/guix/sv.po
index aa3968aaea..2b65fc88ef 100644
--- a/po/guix/sv.po
+++ b/po/guix/sv.po
@@ -1,15 +1,14 @@
 # Swedish translation of the guix package.
-# Copyright ǒ 2019 Ludovic Courtès
+# Copyright ǒ 2019, 2020 the authors of Guix (msgids)
 # This file is distributed under the same license as the guix package.
-# Sebastian Rasmussen <sebras@gmail.com>, 2019.
+# Sebastian Rasmussen <sebras@gmail.com>, 2019, 2020.
 #
-#: guix/ui.scm:206
 msgid ""
 msgstr ""
-"Project-Id-Version: guix 1.0.1-pre1\n"
-"Report-Msgid-Bugs-To: ludo@gnu.org\n"
-"POT-Creation-Date: 2019-05-10 20:54+0200\n"
-"PO-Revision-Date: 2019-07-30 02:20+0200\n"
+"Project-Id-Version: guix 1.2.0-pre2\n"
+"Report-Msgid-Bugs-To: bug-guix@gnu.org\n"
+"POT-Creation-Date: 2020-10-20 16:52+0200\n"
+"PO-Revision-Date: 2020-10-21 14:34+0800\n"
 "Last-Translator: Sebastian Rasmussen <sebras@gmail.com>\n"
 "Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
 "Language: sv\n"
@@ -18,14 +17,14 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 "X-Bugs: Report translation errors to the Language-Team address.\n"
-"X-Generator: Poedit 2.2.1\n"
+"X-Generator: Poedit 2.4.1\n"
 
-#: gnu.scm:83
+#: gnu.scm:81
 #, scheme-format
 msgid "module ~a not found"
 msgstr "modul ~a hittades inte"
 
-#: gnu.scm:101
+#: gnu.scm:99
 msgid ""
 "You may use @command{guix package --show=foo | grep location} to search\n"
 "for the location of package @code{foo}.\n"
@@ -37,12 +36,12 @@ msgstr ""
 "Om du får raden @code{location: gnu/packages/bar.scm:174:2},\n"
 "lägg till @code{bar} till @code{use-package-modules}-formen."
 
-#: gnu.scm:109
+#: gnu.scm:107
 #, scheme-format
 msgid "Try adding @code{(use-package-modules ~a)}."
 msgstr "Prova att lägga till @code{(use-package-modules ~a)}."
 
-#: gnu.scm:124
+#: gnu.scm:122
 #, scheme-format
 msgid ""
 "You may use @command{guix system search ~a} to search for a service\n"
@@ -55,21 +54,16 @@ msgstr ""
 "Om du får raden @code{location: gnu/services/foo.scm:188:2},\n"
 "lägg till @code{foo} till @code{use-service-modules}-formen."
 
-#: gnu.scm:133
+#: gnu.scm:131
 #, scheme-format
 msgid "Try adding @code{(use-service-modules ~a)}."
 msgstr "Prova att lägga till @code{(use-service-modules ~a)}."
 
-#: gnu/packages.scm:103
+#: gnu/packages.scm:96
 #, scheme-format
 msgid "~a: patch not found"
 msgstr "~a: programfix hittades inte"
 
-#: gnu/packages.scm:119
-#, scheme-format
-msgid "could not find bootstrap binary '~a' for system '~a'"
-msgstr "kunde inte hitta uppstartsbinär ”~a” för system ”~a”"
-
 #: gnu/packages.scm:480 gnu/packages.scm:521
 #, scheme-format
 msgid "ambiguous package specification `~a'~%"
@@ -80,7 +74,7 @@ msgstr "tvetydig paketspecifikation ”~a”~%"
 msgid "choosing ~a@~a from ~a~%"
 msgstr "väljer ~a@~a från ~a~%"
 
-#: gnu/packages.scm:486 guix/scripts/package.scm:212
+#: gnu/packages.scm:486 guix/scripts/package.scm:210
 #, scheme-format
 msgid "package '~a' has been superseded by '~a'~%"
 msgstr "paket ”~a” har ersatts av ”~a”~%"
@@ -95,17 +89,17 @@ msgstr "~A: paket hittades inte för version ~a~%"
 msgid "~A: unknown package~%"
 msgstr "~A: okänt paket~%"
 
-#: gnu/packages.scm:546
+#: gnu/packages.scm:550
 #, scheme-format
 msgid "package `~a' lacks output `~a'~%"
 msgstr "paket ”~a” saknar utdata ”~a”~%"
 
-#: gnu/services.scm:238
+#: gnu/services.scm:249
 #, scheme-format
 msgid "~a: no value specified for service of type '~a'"
 msgstr "~a: inget värde angivet för tjänst av typ ”~a”"
 
-#: gnu/services.scm:336
+#: gnu/services.scm:347
 msgid ""
 "Build the operating system top-level directory, which in\n"
 "turn refers to everything the operating system needs: its kernel, initrd,\n"
@@ -115,7 +109,7 @@ msgstr ""
 "refererar till allting som operativsystemet behöver: dess kärna, initrd,\n"
 "systemprofile, startskript, och så vidare."
 
-#: gnu/services.scm:366
+#: gnu/services.scm:377
 msgid ""
 "Produce the operating system's boot script, which is spawned\n"
 "by the initrd once the root file system is mounted."
@@ -123,7 +117,14 @@ msgstr ""
 "Producera operativsystemets startskript, vilka startas av\n"
 "initrd när rotfilsystemet monterats."
 
-#: gnu/services.scm:422
+#: gnu/services.scm:493
+msgid ""
+"Store provenance information about the system in the system\n"
+"itself: the channels used when building the system, and its configuration\n"
+"file, when available."
+msgstr ""
+
+#: gnu/services.scm:576
 msgid ""
 "Delete files from @file{/tmp}, @file{/var/run}, and other\n"
 "temporary locations at boot time."
@@ -131,7 +132,7 @@ msgstr ""
 "Ta bort filer från @file{/tmp}, @file{/var/run} och andra\n"
 "temporära platser vid uppstart."
 
-#: gnu/services.scm:476
+#: gnu/services.scm:630
 msgid ""
 "Run @dfn{activation} code at boot time and upon\n"
 "@command{guix system reconfigure} completion."
@@ -139,7 +140,7 @@ msgstr ""
 "Kör @dfn{activation}-koden vid uppstart och då\n"
 "@command{guix system reconfigure} avslutas."
 
-#: gnu/services.scm:527
+#: gnu/services.scm:718
 msgid ""
 "Add special files to the root file system---e.g.,\n"
 "@file{/usr/bin/env}."
@@ -147,11 +148,16 @@ msgstr ""
 "Lägg till speciella filer till rootfilsystemet — t.ex.\n"
 "@file{/usr/bin/env}."
 
-#: gnu/services.scm:563
+#: gnu/services.scm:741
+#, scheme-format
+msgid "duplicate '~a' entry for /etc"
+msgstr ""
+
+#: gnu/services.scm:769
 msgid "Populate the @file{/etc} directory."
 msgstr "Populera katalogen @file{/etc}."
 
-#: gnu/services.scm:580
+#: gnu/services.scm:786
 msgid ""
 "Populate @file{/run/setuid-programs} with the specified\n"
 "executables, making them setuid-root."
@@ -159,7 +165,7 @@ msgstr ""
 "Populera @file{/run/setuid-programs} med de angivna\n"
 "körbara programmen, och gör dem setuid-root."
 
-#: gnu/services.scm:600
+#: gnu/services.scm:806
 msgid ""
 "This is the @dfn{system profile}, available as\n"
 "@file{/run/current-system/profile}.  It contains packages that the sysadmin\n"
@@ -169,7 +175,7 @@ msgstr ""
 "@file{/run/current-system/profile}. Den innehåller paket som\n"
 "systemadministratören vill ska vara tillgängliga globalt för alla systemanvändare."
 
-#: gnu/services.scm:620
+#: gnu/services.scm:826
 msgid ""
 "Make ``firmware'' files loadable by the operating system\n"
 "kernel.  Firmware may then be uploaded to some of the machine's devices, such\n"
@@ -179,7 +185,7 @@ msgstr ""
 "kärna. Fastprogramvara kan sedan skickas upp till vissa av maskinens enheter,\n"
 "så som Wifi-kort."
 
-#: gnu/services.scm:651
+#: gnu/services.scm:857
 msgid ""
 "Register garbage-collector roots---i.e., store items that\n"
 "will not be reclaimed by the garbage collector."
@@ -187,57 +193,77 @@ msgstr ""
 "Registrera skräpsamlarrötter — d.v.s. lagra objekt som\n"
 "inte kommer att samlas in av skräpsamlaren."
 
-#: gnu/services.scm:676
+#: gnu/services.scm:883
 #, scheme-format
 msgid "no target of type '~a' for service '~a'"
 msgstr "inget mål av typ ”~a” för tjänst ”~a”"
 
-#: gnu/services.scm:702 gnu/services.scm:805
+#: gnu/services.scm:909 gnu/services.scm:1028
 #, scheme-format
 msgid "more than one target service of type '~a'"
 msgstr "mer än ett en måltjänst av typ ”~a”"
 
-#: gnu/services.scm:795
+#: gnu/services.scm:1018
 #, scheme-format
 msgid "service of type '~a' not found"
 msgstr "tjänst av typ ”~a” hittades inte"
 
-#: gnu/system.scm:335
+#: gnu/system.scm:404
 #, scheme-format
 msgid "unrecognized boot parameters at '~a'~%"
 msgstr "okänd startparameter vid ”~a”~%"
 
-#: gnu/system.scm:736
+#: gnu/system.scm:956
 #, scheme-format
 msgid "using a string for file '~a' is deprecated; use 'plain-file' instead~%"
 msgstr "användning av sträng för fil ”~a” är föråldrat; använd ”plain-file” istället~%"
 
-#: gnu/system.scm:752
+#: gnu/system.scm:972
 #, scheme-format
 msgid "using a monadic value for '~a' is deprecated; use 'plain-file' instead~%"
 msgstr "användning av ett monadiskt värdet för ”~a” är föråldrat; använd ”plain-file” istället~%"
 
-#: gnu/system.scm:897
+#: gnu/system.scm:1099
+msgid "missing root file system"
+msgstr ""
+
+#: gnu/system.scm:1175
 #, scheme-format
 msgid "~a: invalid locale name"
 msgstr "~a: ogiltigt lokalnamn"
 
-#: gnu/services/shepherd.scm:194
+#: gnu/services/shepherd.scm:112
+msgid ""
+"Run the GNU Shepherd as PID 1---i.e., the operating system's first\n"
+"process.  The Shepherd takes care of managing services such as daemons by\n"
+"ensuring they are started and stopped in the right order."
+msgstr ""
+
+#: gnu/services/shepherd.scm:202
 #, scheme-format
 msgid "service '~a' provided more than once"
 msgstr "tjänst ”~a” erbjud mer än en gång"
 
-#: gnu/services/shepherd.scm:209
+#: gnu/services/shepherd.scm:217
 #, scheme-format
 msgid "service '~a' requires '~a', which is not provided by any service"
 msgstr "tjänst ”~a” kräver ”~a”, vilken inte erbjuds av någon tjänst"
 
-#: gnu/system/mapped-devices.scm:136
+#: gnu/services/shepherd.scm:547
+msgid ""
+"The @code{user-processes} service is responsible for\n"
+"terminating all the processes so that the root file system can be re-mounted\n"
+"read-only, just before rebooting/halting.  Processes still running after a few\n"
+"seconds after @code{SIGTERM} has been sent are terminated with\n"
+"@code{SIGKILL}."
+msgstr ""
+
+#: gnu/system/mapped-devices.scm:137
 #, scheme-format
 msgid "you may need these modules in the initrd for ~a:~{ ~a~}"
 msgstr "du kan behöver dessa moduler i initrd för ~a:~{ ~a~}"
 
-#: gnu/system/mapped-devices.scm:140
+#: gnu/system/mapped-devices.scm:142
 #, scheme-format
 msgid ""
 "Try adding them to the\n"
@@ -268,64 +294,70 @@ msgstr ""
 "Om du tror att denna diagnostik är felaktig, använd flaggan\n"
 "@option{--skip-checks} med @command{guix system}.\n"
 
-#: gnu/system/mapped-devices.scm:219
+#: gnu/system/mapped-devices.scm:221
 #, scheme-format
 msgid "no LUKS partition with UUID '~a'"
 msgstr "ingen LUKS-partition med UUID ”~a”"
 
-#: gnu/system/shadow.scm:236
+#: gnu/system/shadow.scm:233
 #, scheme-format
 msgid "supplementary group '~a' of user '~a' is undeclared"
 msgstr "tilläggsgrupp ”~a” för användare ”~a” är odeklarerad"
 
-#: gnu/system/shadow.scm:246
+#: gnu/system/shadow.scm:243
 #, scheme-format
 msgid "primary group '~a' of user '~a' is undeclared"
 msgstr "primärgrupp ”~a” för användare ”~a” är odeklarerad"
 
-#: guix/import/opam.scm:133
+#: gnu/system/shadow.scm:383
+msgid ""
+"Ensure the specified user accounts and groups exist, as well\n"
+"as each account home directory."
+msgstr ""
+
+#: guix/import/opam.scm:148
 #, scheme-format
 msgid "Package not found in opam repository: ~a~%"
 msgstr "Paket hittades inte i opam-arkiv: ~a~%"
 
-#: guix/import/opam.scm:344
+#: guix/import/opam.scm:368
 msgid "Updater for OPAM packages"
 msgstr "Uppdaterare för OPAM-paket"
 
-#: gnu/installer.scm:191
+#: gnu/installer.scm:214
 msgid "Locale"
 msgstr "Lokal"
 
-#: gnu/installer.scm:207 gnu/installer/newt/timezone.scm:58
+#: gnu/installer.scm:230 gnu/installer/newt/timezone.scm:58
 msgid "Timezone"
 msgstr "Tidszon"
 
-#: gnu/installer.scm:223
+#: gnu/installer.scm:247
 msgid "Keyboard mapping selection"
 msgstr "Val av tangentbordsmappning"
 
-#: gnu/installer.scm:232
-msgid "Partitioning"
-msgstr "Partitionering"
-
-#: gnu/installer.scm:240 gnu/installer/newt/hostname.scm:26
+#: gnu/installer.scm:256 gnu/installer/newt/hostname.scm:26
 msgid "Hostname"
 msgstr "Värdnamn"
 
-#: gnu/installer.scm:249
+#: gnu/installer.scm:265
 msgid "Network selection"
 msgstr "Närverksval"
 
-#: gnu/installer.scm:256 gnu/installer/newt/user.scm:65
-#: gnu/installer/newt/user.scm:201
+#: gnu/installer.scm:272 gnu/installer/newt/user.scm:68
+#: gnu/installer/newt/user.scm:205
 msgid "User creation"
 msgstr "Skapande av användare"
 
-#: gnu/installer.scm:264
+#: gnu/installer.scm:280
 msgid "Services"
 msgstr "Tjänster"
 
-#: gnu/installer.scm:271 gnu/installer/newt/final.scm:51
+#: gnu/installer.scm:291
+msgid "Partitioning"
+msgstr "Partitionering"
+
+#: gnu/installer.scm:298 gnu/installer/newt/final.scm:53
 msgid "Configuration file"
 msgstr "Konfigurationsfil"
 
@@ -337,12 +369,16 @@ msgstr "Kunde inte bestämma connman-tillstånd."
 msgid "Unable to find expected regexp."
 msgstr "Kunde inte hitta förväntat reguljärt uttryck."
 
-#: gnu/installer/newt.scm:60
+#: gnu/installer/newt.scm:50
+msgid "Press <F1> for installation parameters."
+msgstr ""
+
+#: gnu/installer/newt.scm:63
 #, scheme-format
 msgid "The installer has encountered an unexpected problem. The backtrace is displayed below. Please report it by email to <~a>."
 msgstr "Installeraren har anträffat ett oväntat problem. En bakåtspårning visas nedan. Rapportera den via e-post till <~a>."
 
-#: gnu/installer/newt.scm:63
+#: gnu/installer/newt.scm:66
 msgid "Unexpected problem"
 msgstr "Oväntat problem"
 
@@ -362,79 +398,121 @@ msgstr "Välj ett ethernet-nätverk."
 msgid "Ethernet connection"
 msgstr "Ethernet-anslutning"
 
-#: gnu/installer/newt/ethernet.scm:81 gnu/installer/newt/keymap.scm:44
+#: gnu/installer/newt/ethernet.scm:81 gnu/installer/newt/keymap.scm:56
 #: gnu/installer/newt/locale.scm:43 gnu/installer/newt/network.scm:63
-#: gnu/installer/newt/network.scm:84 gnu/installer/newt/page.scm:175
-#: gnu/installer/newt/page.scm:508 gnu/installer/newt/page.scm:565
-#: gnu/installer/newt/partition.scm:54 gnu/installer/newt/partition.scm:83
-#: gnu/installer/newt/partition.scm:115 gnu/installer/newt/partition.scm:126
+#: gnu/installer/newt/network.scm:84 gnu/installer/newt/page.scm:303
+#: gnu/installer/newt/page.scm:666 gnu/installer/newt/page.scm:751
+#: gnu/installer/newt/partition.scm:55 gnu/installer/newt/partition.scm:84
+#: gnu/installer/newt/partition.scm:116 gnu/installer/newt/partition.scm:127
 #: gnu/installer/newt/partition.scm:624 gnu/installer/newt/partition.scm:645
-#: gnu/installer/newt/partition.scm:685 gnu/installer/newt/partition.scm:738
-#: gnu/installer/newt/partition.scm:749 gnu/installer/newt/services.scm:85
-#: gnu/installer/newt/timezone.scm:63 gnu/installer/newt/user.scm:200
-#: gnu/installer/newt/wifi.scm:202
+#: gnu/installer/newt/partition.scm:691 gnu/installer/newt/partition.scm:742
+#: gnu/installer/newt/partition.scm:753 gnu/installer/newt/services.scm:86
+#: gnu/installer/newt/timezone.scm:63 gnu/installer/newt/user.scm:204
+#: gnu/installer/newt/wifi.scm:205
 msgid "Exit"
 msgstr "Avsluta"
 
-#: gnu/installer/newt/final.scm:44
+#: gnu/installer/newt/final.scm:46
 #, scheme-format
 msgid "We're now ready to proceed with the installation! A system configuration file has been generated, it is displayed below.  This file will be available as '~a' on the installed system.  The new system will be created from this file once you've pressed OK.  This will take a few minutes."
 msgstr "Vi är nu redo att fortsätta med installationen! En systemkonfigurationsfil har genererats och visas nedan. Denna fil kommer att vara tillgänglig som ”~a” på det installerade systemet. Det nya systemet kommer att skapas från denna fil när du tryckt OK. Det kommer att ta ett par minuter."
 
-#: gnu/installer/newt/final.scm:64
+#: gnu/installer/newt/final.scm:70
 msgid "Installation complete"
 msgstr "Installation fullständig"
 
-#: gnu/installer/newt/final.scm:65 gnu/installer/newt/welcome.scm:115
+#: gnu/installer/newt/final.scm:71 gnu/installer/newt/welcome.scm:139
 msgid "Reboot"
 msgstr "Omstart"
 
-#: gnu/installer/newt/final.scm:66
+#: gnu/installer/newt/final.scm:72
 msgid "Congratulations!  Installation is now complete.  You may remove the device containing the installation image and press the button to reboot."
 msgstr "Grattis! Installationen är nu fullständig. Du kan ta bort enheten som innehåller installationavbilden och trycka på knappen för att starta om."
 
-#: gnu/installer/newt/final.scm:75
+#: gnu/installer/newt/final.scm:86
 msgid "Installation failed"
 msgstr "Installationen misslyckades"
 
-#: gnu/installer/newt/final.scm:76
-msgid "Restart installer"
-msgstr "Starta om installeraren"
+#: gnu/installer/newt/final.scm:87
+msgid "Resume"
+msgstr ""
 
-#: gnu/installer/newt/final.scm:77
-msgid "Retry system install"
-msgstr "Försök att installera systemet igen"
+#: gnu/installer/newt/final.scm:88
+#, fuzzy
+#| msgid "Restart installer"
+msgid "Restart the installer"
+msgstr "Starta om installeraren"
 
-#: gnu/installer/newt/final.scm:78
-msgid "The final system installation step failed.  You can retry the last step, or restart the installer."
+#: gnu/installer/newt/final.scm:89
+#, fuzzy
+#| msgid "The final system installation step failed.  You can retry the last step, or restart the installer."
+msgid "The final system installation step failed.  You can resume from a specific step, or restart the installer."
 msgstr "Det slutgiltiga steget i systeminstallationen misslyckades. Du kan prova detta sista steg igen, eller starta om installeraren."
 
+#: gnu/installer/newt/parameters.scm:30
+msgid "Please enter the HTTP proxy URL. If you enter an empty string, proxy usage will be disabled."
+msgstr ""
+
+#: gnu/installer/newt/parameters.scm:32
+msgid "HTTP proxy configuration"
+msgstr ""
+
+#: gnu/installer/newt/parameters.scm:42
+#, fuzzy
+#| msgid "Please choose your keyboard layout."
+msgid "Change keyboard layout"
+msgstr "Välj din tangentbordslayout."
+
+#: gnu/installer/newt/parameters.scm:43
+msgid "Configure HTTP proxy"
+msgstr ""
+
+#: gnu/installer/newt/parameters.scm:46
+msgid "Please choose one of the following parameters or press ‘Back’ to go back to the installation process."
+msgstr ""
+
+#: gnu/installer/newt/parameters.scm:48
+#, fuzzy
+#| msgid "Installation complete"
+msgid "Installation parameters"
+msgstr "Installation fullständig"
+
+#: gnu/installer/newt/parameters.scm:53 gnu/installer/newt/keymap.scm:74
+#: gnu/installer/newt/locale.scm:63 gnu/installer/newt/locale.scm:78
+#: gnu/installer/newt/locale.scm:94 gnu/installer/newt/partition.scm:581
+#: gnu/installer/newt/timezone.scm:64
+msgid "Back"
+msgstr "Tillbaka"
+
 #: gnu/installer/newt/hostname.scm:25
 msgid "Please enter the system hostname."
 msgstr "Mata in systemets värdnamn."
 
-#: gnu/installer/newt/keymap.scm:37
+#: gnu/installer/newt/keymap.scm:38
 msgid "Layout"
 msgstr "Layout"
 
-#: gnu/installer/newt/keymap.scm:40
-msgid "Please choose your keyboard layout."
-msgstr "Välj din tangentbordslayout."
+#: gnu/installer/newt/keymap.scm:43
+msgid "Please choose your keyboard layout. It will only be used during the installation process. Non-Latin layouts can be toggled with Alt+Shift."
+msgstr ""
+
+#: gnu/installer/newt/keymap.scm:46
+msgid "Please choose your keyboard layout. It will be used during the install process, and for the installed system. Non-Latin layouts can be toggled with Alt+Shift. You can switch to a different layout at any time from the parameters menu."
+msgstr ""
+
+#: gnu/installer/newt/keymap.scm:55 gnu/installer/newt/network.scm:62
+#: gnu/installer/newt/page.scm:302
+msgid "Continue"
+msgstr "Fortsätt"
 
-#: gnu/installer/newt/keymap.scm:52
+#: gnu/installer/newt/keymap.scm:67
 msgid "Variant"
 msgstr "Variant"
 
-#: gnu/installer/newt/keymap.scm:55
+#: gnu/installer/newt/keymap.scm:70
 msgid "Please choose a variant for your keyboard layout."
 msgstr "Välj en variant av din tangentbordslayout."
 
-#: gnu/installer/newt/keymap.scm:59 gnu/installer/newt/locale.scm:63
-#: gnu/installer/newt/locale.scm:78 gnu/installer/newt/locale.scm:94
-#: gnu/installer/newt/partition.scm:580 gnu/installer/newt/timezone.scm:64
-msgid "Back"
-msgstr "Tillbaka"
-
 #: gnu/installer/newt/locale.scm:36
 msgid "Locale language"
 msgstr "Lokalspråk"
@@ -491,12 +569,10 @@ msgstr "Avbryt"
 msgid "Internet access"
 msgstr "Internetåtkomst"
 
-#: gnu/installer/newt/network.scm:62 gnu/installer/newt/page.scm:174
-msgid "Continue"
-msgstr "Fortsätt"
-
 #: gnu/installer/newt/network.scm:64
-msgid "The install process requires Internet access but no network device were found. Do you want to continue anyway?"
+#, fuzzy
+#| msgid "The install process requires Internet access but no network device were found. Do you want to continue anyway?"
+msgid "The install process requires Internet access but no network devices were found. Do you want to continue anyway?"
 msgstr "Installationsprocessen kräver internetåtkomst, men ingen nätverksenhet hittades. Vill du fortsätta ändå?"
 
 #: gnu/installer/newt/network.scm:78
@@ -512,223 +588,227 @@ msgstr "Strömsätter teknology"
 msgid "Waiting for technology ~a to be powered."
 msgstr "Väntar på att teknologi ~a ska strömsättas."
 
-#: gnu/installer/newt/network.scm:124
+#: gnu/installer/newt/network.scm:128
 msgid "Checking connectivity"
 msgstr "Kontrollerar anslutning"
 
-#: gnu/installer/newt/network.scm:125
+#: gnu/installer/newt/network.scm:129
 msgid "Waiting for Internet access establishment..."
 msgstr "Väntar på att internetåtkomst ska etableras…"
 
-#: gnu/installer/newt/network.scm:135
+#: gnu/installer/newt/network.scm:139
 msgid "The selected network does not provide access to the Internet, please try again."
 msgstr "Valt nätverk ger inte tillgång till internet, försök igen."
 
-#: gnu/installer/newt/network.scm:137 gnu/installer/newt/wifi.scm:106
+#: gnu/installer/newt/network.scm:141 gnu/installer/newt/wifi.scm:108
 msgid "Connection error"
 msgstr "Anslutningsfel"
 
-#: gnu/installer/newt/page.scm:71
+#: gnu/installer/newt/page.scm:192
 #, scheme-format
 msgid "Connecting to ~a, please wait."
 msgstr "Ansluter till ~a, vänta."
 
-#: gnu/installer/newt/page.scm:72
+#: gnu/installer/newt/page.scm:193
 msgid "Connection in progress"
 msgstr "Anslutning pågår"
 
-#: gnu/installer/newt/page.scm:91 gnu/installer/newt/user.scm:58
-msgid "Hide"
-msgstr "Göm"
+#: gnu/installer/newt/page.scm:212 gnu/installer/newt/user.scm:60
+msgid "Show"
+msgstr ""
 
-#: gnu/installer/newt/page.scm:97 gnu/installer/newt/page.scm:507
-#: gnu/installer/newt/page.scm:564 gnu/installer/newt/partition.scm:443
+#: gnu/installer/newt/page.scm:219 gnu/installer/newt/page.scm:665
+#: gnu/installer/newt/page.scm:750 gnu/installer/newt/partition.scm:444
 #: gnu/installer/newt/partition.scm:623 gnu/installer/newt/partition.scm:644
-#: gnu/installer/newt/partition.scm:683 gnu/installer/newt/user.scm:63
-#: gnu/installer/newt/user.scm:199
+#: gnu/installer/newt/partition.scm:683 gnu/installer/newt/user.scm:66
+#: gnu/installer/newt/user.scm:203
 msgid "OK"
 msgstr "OK"
 
-#: gnu/installer/newt/page.scm:123
+#: gnu/installer/newt/page.scm:245
 msgid "Please enter a non empty input."
 msgstr "Mata in något i inmatningsfältet."
 
-#: gnu/installer/newt/page.scm:124 gnu/installer/newt/user.scm:119
+#: gnu/installer/newt/page.scm:246 gnu/installer/newt/user.scm:123
 msgid "Empty input"
 msgstr "Tom inmatning"
 
-#: gnu/installer/newt/partition.scm:45
+#: gnu/installer/newt/page.scm:753
+msgid "Edit"
+msgstr ""
+
+#: gnu/installer/newt/partition.scm:46
 msgid "Everything is one partition"
 msgstr "Allting är en partition"
 
-#: gnu/installer/newt/partition.scm:46
+#: gnu/installer/newt/partition.scm:47
 msgid "Separate /home partition"
 msgstr "Separat /home-partition"
 
-#: gnu/installer/newt/partition.scm:48
+#: gnu/installer/newt/partition.scm:49
 msgid "Please select a partitioning scheme."
 msgstr "Välj ett partitioneringsarrangemang."
 
-#: gnu/installer/newt/partition.scm:49
+#: gnu/installer/newt/partition.scm:50
 msgid "Partition scheme"
 msgstr "Partitioneringsarrangemang"
 
-#: gnu/installer/newt/partition.scm:61
+#: gnu/installer/newt/partition.scm:62
 msgid "We are about to format your hard disk.  All its data will be lost.  Do you wish to continue?"
 msgstr "Vi kommer strax att formatera din hårddisk. All dess data kommer att gå förlorad. Vill du fortsätta?"
 
-#: gnu/installer/newt/partition.scm:63
+#: gnu/installer/newt/partition.scm:64
 msgid "Format disk?"
 msgstr "Formatera disk?"
 
-#: gnu/installer/newt/partition.scm:66
+#: gnu/installer/newt/partition.scm:67
 msgid "Partition formatting is in progress, please wait."
 msgstr "Partitionsformattering pågår, vänta."
 
-#: gnu/installer/newt/partition.scm:67
+#: gnu/installer/newt/partition.scm:68
 msgid "Preparing partitions"
 msgstr "Förbereder partitioner"
 
-#: gnu/installer/newt/partition.scm:78
+#: gnu/installer/newt/partition.scm:79
 msgid "Please select a disk."
 msgstr "Välj en disk."
 
-#: gnu/installer/newt/partition.scm:79
+#: gnu/installer/newt/partition.scm:80
 msgid "Disk"
 msgstr "Disk"
 
-#: gnu/installer/newt/partition.scm:91
+#: gnu/installer/newt/partition.scm:92
 msgid "Select a new partition table type. Be careful, all data on the disk will be lost."
 msgstr "Välj ny paritionstabellstyp. Var försiktig, all data på disken kommer att gå förlorad."
 
-#: gnu/installer/newt/partition.scm:93
+#: gnu/installer/newt/partition.scm:94
 msgid "Partition table"
 msgstr "Partitionstabell"
 
-#: gnu/installer/newt/partition.scm:110
+#: gnu/installer/newt/partition.scm:111
 msgid "Please select a partition type."
 msgstr "Välj en partitionstyp."
 
-#: gnu/installer/newt/partition.scm:111
+#: gnu/installer/newt/partition.scm:112
 msgid "Partition type"
 msgstr "Partitionstyp"
 
-#: gnu/installer/newt/partition.scm:121
+#: gnu/installer/newt/partition.scm:122
 msgid "Please select the file-system type for this partition."
 msgstr "Välj filsystemstypen för denna partition."
 
-#: gnu/installer/newt/partition.scm:122
+#: gnu/installer/newt/partition.scm:123
 msgid "File-system type"
 msgstr "Filsystemstyp"
 
-#: gnu/installer/newt/partition.scm:135
+#: gnu/installer/newt/partition.scm:136
 msgid "Primary partitions count exceeded."
 msgstr "Antalet primära partitioner överskreds."
 
-#: gnu/installer/newt/partition.scm:136 gnu/installer/newt/partition.scm:141
-#: gnu/installer/newt/partition.scm:146
+#: gnu/installer/newt/partition.scm:137 gnu/installer/newt/partition.scm:142
+#: gnu/installer/newt/partition.scm:147
 msgid "Creation error"
 msgstr "Fel vid skapande"
 
-#: gnu/installer/newt/partition.scm:140
+#: gnu/installer/newt/partition.scm:141
 msgid "Extended partition creation error."
 msgstr "Fel vid skapande av utökad partition."
 
-#: gnu/installer/newt/partition.scm:145
+#: gnu/installer/newt/partition.scm:146
 msgid "Logical partition creation error."
 msgstr "Fel vid skapande av logisk partition."
 
-#: gnu/installer/newt/partition.scm:159
+#: gnu/installer/newt/partition.scm:160
 #, scheme-format
 msgid "Please enter the password for the encryption of partition ~a (label: ~a)."
 msgstr "Mata in lösenordet för krypteringen av partition ~a (etikett: ~a)."
 
-#: gnu/installer/newt/partition.scm:161 gnu/installer/newt/wifi.scm:91
+#: gnu/installer/newt/partition.scm:162 gnu/installer/newt/wifi.scm:92
 msgid "Password required"
 msgstr "Lösenord krävs"
 
-#: gnu/installer/newt/partition.scm:166
+#: gnu/installer/newt/partition.scm:167
 #, scheme-format
 msgid "Please confirm the password for the encryption of partition ~a (label: ~a)."
 msgstr "Bekräfta lösenordet för krypteringen av partition ~a (etikett: ~a)."
 
-#: gnu/installer/newt/partition.scm:168 gnu/installer/newt/user.scm:156
+#: gnu/installer/newt/partition.scm:169 gnu/installer/newt/user.scm:160
 msgid "Password confirmation required"
 msgstr "Lösenordsbekräftelse krävs"
 
-#: gnu/installer/newt/partition.scm:180 gnu/installer/newt/user.scm:164
+#: gnu/installer/newt/partition.scm:181 gnu/installer/newt/user.scm:168
 msgid "Password mismatch, please try again."
 msgstr "Lösenord stämmer inte, försök igen."
 
-#: gnu/installer/newt/partition.scm:181 gnu/installer/newt/user.scm:165
+#: gnu/installer/newt/partition.scm:182 gnu/installer/newt/user.scm:169
 msgid "Password error"
 msgstr "Lösenordsfel"
 
-#: gnu/installer/newt/partition.scm:267
+#: gnu/installer/newt/partition.scm:268
 msgid "Please enter the partition gpt name."
 msgstr "Mata in GPT-partitionens namn."
 
-#: gnu/installer/newt/partition.scm:268
+#: gnu/installer/newt/partition.scm:269
 msgid "Partition name"
 msgstr "Partitionsnamn"
 
-#: gnu/installer/newt/partition.scm:298
+#: gnu/installer/newt/partition.scm:299
 msgid "Please enter the encrypted label"
 msgstr "Mata in den krypterade etiketten"
 
-#: gnu/installer/newt/partition.scm:299
+#: gnu/installer/newt/partition.scm:300
 msgid "Encryption label"
 msgstr "Krypteringsetikett"
 
-#: gnu/installer/newt/partition.scm:316
+#: gnu/installer/newt/partition.scm:317
 #, scheme-format
 msgid "Please enter the size of the partition. The maximum size is ~a."
 msgstr "Mata in storleken på partitionen. Största storlek är ~a."
 
-#: gnu/installer/newt/partition.scm:318
+#: gnu/installer/newt/partition.scm:319
 msgid "Partition size"
 msgstr "Partitionsstorlek"
 
-#: gnu/installer/newt/partition.scm:336
+#: gnu/installer/newt/partition.scm:337
 msgid "The percentage can not be superior to 100."
 msgstr "Procentandelen kan inte vara större än 100."
 
-#: gnu/installer/newt/partition.scm:337 gnu/installer/newt/partition.scm:342
-#: gnu/installer/newt/partition.scm:347
+#: gnu/installer/newt/partition.scm:338 gnu/installer/newt/partition.scm:343
+#: gnu/installer/newt/partition.scm:348
 msgid "Size error"
 msgstr "Storleksfel"
 
-#: gnu/installer/newt/partition.scm:341
+#: gnu/installer/newt/partition.scm:342
 msgid "The requested size is incorrectly formatted, or too large."
 msgstr "Den begärda storleken är felaktigt formatterad, eller för stor."
 
-#: gnu/installer/newt/partition.scm:346
+#: gnu/installer/newt/partition.scm:347
 msgid "The request size is superior to the maximum size."
 msgstr "Den begärda storleken är större än den största storleken."
 
-#: gnu/installer/newt/partition.scm:366
+#: gnu/installer/newt/partition.scm:367
 msgid "Please enter the desired mounting point for this partition. Leave this field empty if you don't want to set a mounting point."
 msgstr "Mata in den önskade monteringspunkten för denna partitionen. Lämna detta fält tomt om du inte vill sätta någon monteringspunkt."
 
-#: gnu/installer/newt/partition.scm:368
+#: gnu/installer/newt/partition.scm:369
 msgid "Mounting point"
 msgstr "Monteringspunkt"
 
-#: gnu/installer/newt/partition.scm:432
+#: gnu/installer/newt/partition.scm:433
 #, scheme-format
 msgid "Creating ~a partition starting at ~a of ~a."
 msgstr "Skapar ~a-partition med början på ~a av ~a."
 
-#: gnu/installer/newt/partition.scm:434
+#: gnu/installer/newt/partition.scm:435
 #, scheme-format
 msgid "You are currently editing partition ~a."
 msgstr "Du redigerar just nu partition ~a."
 
-#: gnu/installer/newt/partition.scm:437
+#: gnu/installer/newt/partition.scm:438
 msgid "Partition creation"
 msgstr "Partitionsskapande"
 
-#: gnu/installer/newt/partition.scm:438
+#: gnu/installer/newt/partition.scm:439
 msgid "Partition edit"
 msgstr "Partitionsredigering"
 
@@ -777,55 +857,55 @@ msgstr "Guidad partitionering"
 msgid "Manual partitioning"
 msgstr "Manuell partitionering"
 
-#: gnu/installer/newt/partition.scm:694
+#: gnu/installer/newt/partition.scm:700
 msgid "No root mount point found."
 msgstr "Ingen rotmonteringspunkt hittad."
 
-#: gnu/installer/newt/partition.scm:695
+#: gnu/installer/newt/partition.scm:701
 msgid "Missing mount point"
 msgstr "Saknar monteringspunkt"
 
-#: gnu/installer/newt/partition.scm:728
+#: gnu/installer/newt/partition.scm:732
 msgid "Guided - using the entire disk"
 msgstr "Guidad - använd hela disken"
 
-#: gnu/installer/newt/partition.scm:729
+#: gnu/installer/newt/partition.scm:733
 msgid "Guided - using the entire disk with encryption"
 msgstr "Guidad - använd hela disken med kryptering"
 
-#: gnu/installer/newt/partition.scm:730
+#: gnu/installer/newt/partition.scm:734
 msgid "Manual"
 msgstr "Manuell"
 
-#: gnu/installer/newt/partition.scm:732
+#: gnu/installer/newt/partition.scm:736
 msgid "Please select a partitioning method."
 msgstr "Välj en partitioneringsmetod."
 
-#: gnu/installer/newt/partition.scm:733
+#: gnu/installer/newt/partition.scm:737
 msgid "Partitioning method"
 msgstr "Partitioneringsmetod"
 
-#: gnu/installer/newt/services.scm:36
+#: gnu/installer/newt/services.scm:37
 msgid "Please select the desktop(s) environment(s) you wish to install. If you select multiple desktops environments, you will be able to choose the one to use on the log-in screen."
 msgstr "Välj de skrivbordsmiljöer du önskar installera. Om du väljer flera skrivbordsmiljöer kommer du att kunna välja vilken som ska användas på inloggningsskärmen."
 
-#: gnu/installer/newt/services.scm:39
+#: gnu/installer/newt/services.scm:40
 msgid "Desktop environment"
 msgstr "Skrivbordsmiljö"
 
-#: gnu/installer/newt/services.scm:56
+#: gnu/installer/newt/services.scm:57
 msgid "You can now select networking services to run on your system."
 msgstr "Du kan nu välja nätverkstjänster som ska köra på ditt system."
 
-#: gnu/installer/newt/services.scm:58
+#: gnu/installer/newt/services.scm:59
 msgid "Network service"
 msgstr "Nätverkstjänst"
 
-#: gnu/installer/newt/services.scm:71
+#: gnu/installer/newt/services.scm:72
 msgid "Network management"
 msgstr "Nätverkshantering"
 
-#: gnu/installer/newt/services.scm:74
+#: gnu/installer/newt/services.scm:75
 msgid ""
 "Choose the method to manage network connections.\n"
 "\n"
@@ -839,63 +919,65 @@ msgstr ""
 msgid "Please select a timezone."
 msgstr "Välj en tidszon."
 
-#: gnu/installer/newt/user.scm:43
+#: gnu/installer/newt/user.scm:45
 msgid "Name"
 msgstr "Namn"
 
-#: gnu/installer/newt/user.scm:45
+#: gnu/installer/newt/user.scm:47
 msgid "Real name"
 msgstr "Verkligt namn"
 
-#: gnu/installer/newt/user.scm:47
+#: gnu/installer/newt/user.scm:49
 msgid "Home directory"
 msgstr "Hemkatalog"
 
-#: gnu/installer/newt/user.scm:49
+#: gnu/installer/newt/user.scm:51
 msgid "Password"
 msgstr "Lösenord"
 
-#: gnu/installer/newt/user.scm:118
+#: gnu/installer/newt/user.scm:122
 msgid "Empty inputs are not allowed."
 msgstr "Tomma inmatningsfält är inte tillåtna."
 
-#: gnu/installer/newt/user.scm:155
+#: gnu/installer/newt/user.scm:159
 msgid "Please confirm the password."
 msgstr "Bekräfta lösenordet."
 
-#: gnu/installer/newt/user.scm:172
+#. TRANSLATORS: Leave "root" untranslated: it refers to the name of the
+#. system administrator account.
+#: gnu/installer/newt/user.scm:176
 msgid "Please choose a password for the system administrator (\"root\")."
 msgstr "Välj ett lösenord för systemadministratören (”root”)."
 
-#: gnu/installer/newt/user.scm:174
+#: gnu/installer/newt/user.scm:178
 msgid "System administrator password"
 msgstr "Systemadministratörslösenord"
 
-#: gnu/installer/newt/user.scm:187
+#: gnu/installer/newt/user.scm:191
 msgid "Please add at least one user to system using the 'Add' button."
 msgstr "Lägg till åtminstone en användare till systemet via knappen ”Lägg till”."
 
-#: gnu/installer/newt/user.scm:190
+#: gnu/installer/newt/user.scm:194
 msgid "Add"
 msgstr "Lägg till"
 
-#: gnu/installer/newt/user.scm:191
+#: gnu/installer/newt/user.scm:195
 msgid "Delete"
 msgstr "Ta bort"
 
-#: gnu/installer/newt/user.scm:250
+#: gnu/installer/newt/user.scm:255
 msgid "Please create at least one user."
 msgstr "Skapa åtminstone en användaren."
 
-#: gnu/installer/newt/user.scm:251
+#: gnu/installer/newt/user.scm:256
 msgid "No user"
 msgstr "Ingen användare"
 
-#: gnu/installer/newt/welcome.scm:95
+#: gnu/installer/newt/welcome.scm:119
 msgid "GNU Guix install"
 msgstr "GNU Guix-installerare"
 
-#: gnu/installer/newt/welcome.scm:96
+#: gnu/installer/newt/welcome.scm:120
 msgid ""
 "Welcome to GNU Guix system installer!\n"
 "\n"
@@ -909,90 +991,90 @@ msgstr ""
 "\n"
 "Om du är bekant med GNU/Linux och du vill ha noggrann kontroll över installationsprocessen kan du istället välja manuell installation. Dokumentation är tillgänglig när som helst genom att trycka på Ctrl-Alt-F2."
 
-#: gnu/installer/newt/welcome.scm:105
+#: gnu/installer/newt/welcome.scm:129
 msgid "Graphical install using a terminal based interface"
 msgstr "Grafisk installation genom ett terminalbaserat gränssnitt"
 
-#: gnu/installer/newt/welcome.scm:108
+#: gnu/installer/newt/welcome.scm:132
 msgid "Install using the shell based process"
 msgstr "Installation via skalbaseradprocess"
 
-#: gnu/installer/newt/wifi.scm:81
+#: gnu/installer/newt/wifi.scm:82
 msgid "Unable to find a wifi technology"
 msgstr "Kan inte hitta wifi-teknologi"
 
-#: gnu/installer/newt/wifi.scm:85
+#: gnu/installer/newt/wifi.scm:86
 msgid "Scanning wifi for available networks, please wait."
 msgstr "Söker via wifi efter tillgängliga nätverk, vänta."
 
-#: gnu/installer/newt/wifi.scm:86
+#: gnu/installer/newt/wifi.scm:87
 msgid "Scan in progress"
 msgstr "Sökning pågår"
 
-#: gnu/installer/newt/wifi.scm:90
+#: gnu/installer/newt/wifi.scm:91
 msgid "Please enter the wifi password."
 msgstr "Mata in wifi-lösenordet."
 
-#: gnu/installer/newt/wifi.scm:96
+#: gnu/installer/newt/wifi.scm:98
 #, scheme-format
 msgid "The password you entered for ~a is incorrect."
 msgstr "Lösenordet du angav för ~a är felaktigt."
 
-#: gnu/installer/newt/wifi.scm:98
+#: gnu/installer/newt/wifi.scm:100
 msgid "Wrong password"
 msgstr "Felaktig lösenord"
 
-#: gnu/installer/newt/wifi.scm:104
+#: gnu/installer/newt/wifi.scm:106
 #, scheme-format
 msgid "An error occurred while trying to connect to ~a, please retry."
 msgstr "Ett fel uppstod vid försök att ansluta till ~a, försök igen."
 
-#: gnu/installer/newt/wifi.scm:197
+#: gnu/installer/newt/wifi.scm:200
 msgid "Please select a wifi network."
 msgstr "Välj ett wifi-lösenord."
 
-#: gnu/installer/newt/wifi.scm:203
+#: gnu/installer/newt/wifi.scm:206
 msgid "Scan"
 msgstr "Sök"
 
-#: gnu/installer/newt/wifi.scm:208
+#: gnu/installer/newt/wifi.scm:211
 msgid "No wifi detected"
 msgstr "Inget wifi hittades"
 
-#: gnu/installer/newt/wifi.scm:223
+#: gnu/installer/newt/wifi.scm:226
 msgid "Wifi"
 msgstr "Wifi"
 
-#: gnu/installer/parted.scm:428 gnu/installer/parted.scm:465
+#: gnu/installer/parted.scm:403 gnu/installer/parted.scm:440
 msgid "Free space"
 msgstr "Fritt utrymme"
 
-#: gnu/installer/parted.scm:1345
+#: gnu/installer/parted.scm:1370
 #, scheme-format
 msgid "Device ~a is still in use."
 msgstr "Enhet ~a används fortfarande."
 
-#: gnu/installer/services.scm:85
+#: gnu/installer/services.scm:94
 msgid "OpenSSH secure shell daemon (sshd)"
 msgstr "OpenSSH-demon för säkert skal (sshd)"
 
-#: gnu/installer/services.scm:89
+#: gnu/installer/services.scm:98
 msgid "Tor anonymous network router"
 msgstr "Router för det anonyma nätverket Tor"
 
-#: gnu/installer/services.scm:93
+#: gnu/installer/services.scm:102
 msgid "Mozilla NSS certificates, for HTTPS access"
 msgstr "Mozilla NSS-certifikat för HTTPS-åtkomst"
 
-#: gnu/installer/services.scm:100
+#: gnu/installer/services.scm:109
 msgid "NetworkManager network connection manager"
 msgstr "Nätverksanslutningshanteraren NetworkManager"
 
-#: gnu/installer/services.scm:105
+#: gnu/installer/services.scm:114
 msgid "Connman network connection manager"
 msgstr "Nätverksanslutningshanteraren Connman"
 
-#: gnu/installer/services.scm:110
+#: gnu/installer/services.scm:119
 msgid "DHCP client (dynamic IP address assignment)"
 msgstr "DHCP-klient (dynamisk IP-adresstilldelning)"
 
@@ -1001,38 +1083,131 @@ msgstr "DHCP-klient (dynamisk IP-adresstilldelning)"
 msgid "Unable to locate path: ~a."
 msgstr "Kan inte hitta sökväg: ~a."
 
-#: gnu/installer/utils.scm:64
+#: gnu/installer/utils.scm:77
 #, scheme-format
 msgid "Press Enter to continue.~%"
 msgstr "Tryck på RETUR för att fortsätta.~%"
 
-#: gnu/installer/utils.scm:86
+#: gnu/installer/utils.scm:102
 #, scheme-format
 msgid "Command failed with exit code ~a.~%"
 msgstr "Kommando misslyckades med avslutningskod ~a.~%"
 
-#: guix/scripts.scm:61
+#: gnu/machine/ssh.scm:113
+#, scheme-format
+msgid "<machine-ssh-configuration> without a 'host-key' is deprecated~%"
+msgstr ""
+
+#: gnu/machine/ssh.scm:188
+#, fuzzy, scheme-format
+#| msgid "service of type '~a' not found"
+msgid "device '~a' not found: ~a"
+msgstr "tjänst av typ ”~a” hittades inte"
+
+#: gnu/machine/ssh.scm:203
+#, scheme-format
+msgid "no file system with label '~a'"
+msgstr ""
+
+#: gnu/machine/ssh.scm:222
+#, fuzzy, scheme-format
+#| msgid "no LUKS partition with UUID '~a'"
+msgid "no file system with UUID '~a'"
+msgstr "ingen LUKS-partition med UUID ”~a”"
+
+#: gnu/machine/ssh.scm:274
+#, scheme-format
+msgid "missing modules for ~a:~{ ~a~}~%"
+msgstr ""
+
+#: gnu/machine/ssh.scm:309
+#, scheme-format
+msgid "incorrect target system ('~a' was given, while the system reports that it is '~a')~%"
+msgstr ""
+
+#: gnu/machine/ssh.scm:425
+#, scheme-format
+msgid "no signing key '~a'. have you run 'guix archive --generate-key?'"
+msgstr ""
+
+#: gnu/machine/ssh.scm:476
+msgid "could not roll-back machine"
+msgstr ""
+
+#: gnu/machine/ssh.scm:511
+msgid ""
+"Provisioning for machines that are accessible over SSH\n"
+"and have a known host-name. This entails little more than maintaining an SSH\n"
+"connection to the host."
+msgstr ""
+
+#: gnu/machine/ssh.scm:521
+#, scheme-format
+msgid ""
+"unsupported machine configuration '~a'\n"
+"for environment of type '~a'"
+msgstr ""
+
+#: gnu/packages/bootstrap.scm:152
+#, scheme-format
+msgid "could not find bootstrap binary '~a' for system '~a'"
+msgstr "kunde inte hitta uppstartsbinär ”~a” för system ”~a”"
+
+#: gnu/packages/bootstrap.scm:459
+msgid "Raw build system with direct store access"
+msgstr ""
+
+#: gnu/packages/bootstrap.scm:467
+msgid "Pre-built Guile for bootstrapping purposes."
+msgstr ""
+
+#: guix/build/utils.scm:715
+#, scheme-format
+msgid "'~a~{ ~a~}' exited with status ~a; output follows:~%~%~{  ~a~%~}"
+msgstr "”~a~{ ~a~}” avslutades med status ~a; utmatning följer:~%~%~{  ~a~%~}"
+
+#: guix/scripts.scm:85
+msgid "main commands"
+msgstr ""
+
+#: guix/scripts.scm:86
+msgid "software development commands"
+msgstr ""
+
+#: guix/scripts.scm:87
+msgid "packaging commands"
+msgstr ""
+
+#: guix/scripts.scm:88
+msgid "plumbing commands"
+msgstr ""
+
+#: guix/scripts.scm:89
+msgid "internal commands"
+msgstr ""
+
+#: guix/scripts.scm:122
 #, scheme-format
 msgid "invalid argument: ~a~%"
 msgstr "ogiltigt argument: ~a~%"
 
-#: guix/scripts.scm:89 guix/scripts/download.scm:135
-#: guix/scripts/search.scm:60 guix/scripts/import/cran.scm:84
-#: guix/scripts/import/elpa.scm:85 guix/scripts/publish.scm:888
-#: guix/scripts/edit.scm:79 guix/scripts/describe.scm:205
-#: guix/scripts/processes.scm:230
+#: guix/scripts.scm:150 guix/scripts/download.scm:167
+#: guix/scripts/search.scm:71 guix/scripts/show.scm:71
+#: guix/scripts/import/cran.scm:84 guix/scripts/import/elpa.scm:84
+#: guix/scripts/publish.scm:1023 guix/scripts/edit.scm:89
+#: guix/scripts/describe.scm:311 guix/scripts/processes.scm:232
 #, scheme-format
 msgid "~A: unrecognized option~%"
 msgstr "~A: okänd flagga~%"
 
-#: guix/scripts.scm:172
+#: guix/scripts.scm:233
 #, scheme-format
 msgid "Your Guix installation is ~a day old.\n"
 msgid_plural "Your Guix installation is ~a days old.\n"
 msgstr[0] "Din Guix-installation är ~a dag gammal.\n"
 msgstr[1] "Din Guix-installation är ~a dagar gammal.\n"
 
-#: guix/scripts.scm:178
+#: guix/scripts.scm:239
 #, scheme-format
 msgid ""
 "Consider running 'guix pull' followed by\n"
@@ -1041,12 +1216,13 @@ msgstr ""
 "Överväg att köra ”guix pull” följt av\n"
 "”~a” för att få uppdaterade paket och säkerhetsfixar.\n"
 
-#: guix/scripts.scm:202
-#, scheme-format
-msgid "only ~,1f% of free space available on ~a~%"
+#: guix/scripts.scm:303
+#, fuzzy, scheme-format
+#| msgid "only ~,1f% of free space available on ~a~%"
+msgid "only ~,1f GiB of free space available on ~a~%"
 msgstr "endast ~,1f% fritt utrymme tillgängligt på ~a~%"
 
-#: guix/scripts.scm:204
+#: guix/scripts.scm:305
 msgid ""
 "Consider deleting old profile\n"
 "generations and collecting garbage, along these lines:\n"
@@ -1062,37 +1238,54 @@ msgstr ""
 "guix gc --delete-generations=1m\n"
 "@end example\n"
 
-#: guix/scripts/build.scm:86
+#: guix/scripts/build.scm:93
 #, scheme-format
 msgid "cannot access build log at '~a':~%"
 msgstr "kan inte komma åt bygglogg vid ”~a”:~%"
 
-#: guix/scripts/build.scm:140
+#: guix/scripts/build.scm:147
 #, scheme-format
 msgid "failed to create GC root `~a': ~a~%"
 msgstr "misslyckades med att skapa GC-rot ”~a”: ~a~%"
 
-#: guix/scripts/build.scm:245 guix/scripts/build.scm:310
+#: guix/scripts/build.scm:252 guix/scripts/build.scm:317
 #, scheme-format
 msgid "invalid replacement specification: ~s~%"
 msgstr "ogiltig ersättningsspecifikation: ~s~%"
 
-#: guix/scripts/build.scm:292
+#: guix/scripts/build.scm:299
 #, scheme-format
 msgid "the source of ~a is not a Git reference~%"
 msgstr "källan för ~a är inte en Git-referens~%"
 
-#: guix/scripts/build.scm:417
+#: guix/scripts/build.scm:387
+#, fuzzy, scheme-format
+#| msgid "invalid replacement specification: ~s~%"
+msgid "~a: invalid Git URL replacement specification~%"
+msgstr "ogiltig ersättningsspecifikation: ~s~%"
+
+#: guix/scripts/build.scm:463
+#, fuzzy, scheme-format
+#| msgid "invalid replacement specification: ~s~%"
+msgid "~a: invalid toolchain replacement specification~%"
+msgstr "ogiltig ersättningsspecifikation: ~s~%"
+
+#: guix/scripts/build.scm:579
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "      --with-source=SOURCE\n"
+#| "                         use SOURCE when building the corresponding package"
 msgid ""
 "\n"
-"      --with-source=SOURCE\n"
+"      --with-source=[PACKAGE=]SOURCE\n"
 "                         use SOURCE when building the corresponding package"
 msgstr ""
 "\n"
 "      --with-source=KÄLLA\n"
 "                         använd KÄLLA när motsvarande paket byggs"
 
-#: guix/scripts/build.scm:420
+#: guix/scripts/build.scm:582
 msgid ""
 "\n"
 "      --with-input=PACKAGE=REPLACEMENT\n"
@@ -1102,7 +1295,7 @@ msgstr ""
 "      --with-input=PAKET=ERSÄTTNING\n"
 "                         ersätt PAKET-beroende med ERSÄTTNING"
 
-#: guix/scripts/build.scm:423
+#: guix/scripts/build.scm:585
 msgid ""
 "\n"
 "      --with-graft=PACKAGE=REPLACEMENT\n"
@@ -1112,7 +1305,7 @@ msgstr ""
 "      --with-graft=PAKET=ERSÄTTNING\n"
 "                         ympa in ERSÄTTNING för paket som refererar till PAKET"
 
-#: guix/scripts/build.scm:426
+#: guix/scripts/build.scm:588
 msgid ""
 "\n"
 "      --with-branch=PACKAGE=BRANCH\n"
@@ -1122,7 +1315,7 @@ msgstr ""
 "      --with-gren=PAKET=GREN\n"
 "                         bygg PAKET från senaste incheckningen på GREN"
 
-#: guix/scripts/build.scm:429
+#: guix/scripts/build.scm:591
 msgid ""
 "\n"
 "      --with-commit=PACKAGE=COMMIT\n"
@@ -1132,7 +1325,7 @@ msgstr ""
 "      --with-commit=PAKET=INCHECKNING\n"
 "                         bygg PAKET från INCHECKNING"
 
-#: guix/scripts/build.scm:432
+#: guix/scripts/build.scm:594
 msgid ""
 "\n"
 "      --with-git-url=PACKAGE=URL\n"
@@ -1142,12 +1335,59 @@ msgstr ""
 "      --with-git-url=PAKET=URL\n"
 "                         bygg PAKET från arkivet vid URL"
 
-#: guix/scripts/build.scm:463
+#: guix/scripts/build.scm:597
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "      --with-git-url=PACKAGE=URL\n"
+#| "                         build PACKAGE from the repository at URL"
+msgid ""
+"\n"
+"      --with-c-toolchain=PACKAGE=TOOLCHAIN\n"
+"                         build PACKAGE and its dependents with TOOLCHAIN"
+msgstr ""
+"\n"
+"      --with-git-url=PAKET=URL\n"
+"                         bygg PAKET från arkivet vid URL"
+
+#: guix/scripts/build.scm:600
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "      --with-git-url=PACKAGE=URL\n"
+#| "                         build PACKAGE from the repository at URL"
+msgid ""
+"\n"
+"      --with-debug-info=PACKAGE\n"
+"                         build PACKAGE and preserve its debug info"
+msgstr ""
+"\n"
+"      --with-git-url=PAKET=URL\n"
+"                         bygg PAKET från arkivet vid URL"
+
+#: guix/scripts/build.scm:603
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "      --with-git-url=PACKAGE=URL\n"
+#| "                         build PACKAGE from the repository at URL"
+msgid ""
+"\n"
+"      --without-tests=PACKAGE\n"
+"                         build PACKAGE without running its tests"
+msgstr ""
+"\n"
+"      --with-git-url=PAKET=URL\n"
+"                         bygg PAKET från arkivet vid URL"
+
+#: guix/scripts/build.scm:647
 #, scheme-format
 msgid "transformation '~a' had no effect on ~a~%"
 msgstr "transformation ”~a” hade ingen effekt på ~a~%"
 
-#: guix/scripts/build.scm:481
+#: guix/scripts/build.scm:689 guix/scripts/search.scm:41
+#: guix/scripts/show.scm:41 guix/scripts/lint.scm:101 guix/scripts/edit.scm:48
+#: guix/scripts/size.scm:246 guix/scripts/graph.scm:545
 msgid ""
 "\n"
 "  -L, --load-path=DIR    prepend DIR to the package module search path"
@@ -1155,7 +1395,7 @@ msgstr ""
 "\n"
 "  -L, --load-path=KAT    skjut in KAT i början på sökväg för paketmoduler"
 
-#: guix/scripts/build.scm:483
+#: guix/scripts/build.scm:691
 msgid ""
 "\n"
 "  -K, --keep-failed      keep build tree of failed builds"
@@ -1163,7 +1403,7 @@ msgstr ""
 "\n"
 "  -K, --keep-failed      behåll byggträd för misslyckade byggen"
 
-#: guix/scripts/build.scm:485
+#: guix/scripts/build.scm:693
 msgid ""
 "\n"
 "  -k, --keep-going       keep going when some of the derivations fail"
@@ -1171,7 +1411,7 @@ msgstr ""
 "\n"
 "  -k, --keep-going       fortsätt även om några av härledningarna misslyckades"
 
-#: guix/scripts/build.scm:487
+#: guix/scripts/build.scm:695
 msgid ""
 "\n"
 "  -n, --dry-run          do not build the derivations"
@@ -1179,7 +1419,7 @@ msgstr ""
 "\n"
 "  -n, --dry-run          bygg inte härledningarna"
 
-#: guix/scripts/build.scm:489
+#: guix/scripts/build.scm:697
 msgid ""
 "\n"
 "      --fallback         fall back to building when the substituter fails"
@@ -1187,7 +1427,7 @@ msgstr ""
 "\n"
 "      --fallback         fall tillbaka på att bygga när ersättaren misslyckas"
 
-#: guix/scripts/build.scm:491
+#: guix/scripts/build.scm:699
 msgid ""
 "\n"
 "      --no-substitutes   build instead of resorting to pre-built substitutes"
@@ -1195,7 +1435,7 @@ msgstr ""
 "\n"
 "      --no-substitutes   bygg istället för att tillgripa fröbyggda ersättningar"
 
-#: guix/scripts/build.scm:493 guix/scripts/size.scm:233
+#: guix/scripts/build.scm:701 guix/scripts/size.scm:235
 msgid ""
 "\n"
 "      --substitute-urls=URLS\n"
@@ -1205,7 +1445,7 @@ msgstr ""
 "      --substitute-urls=URLER\n"
 "                         hämta ersättning från URLER om de auktoriserade"
 
-#: guix/scripts/build.scm:496
+#: guix/scripts/build.scm:704
 msgid ""
 "\n"
 "      --no-grafts        do not graft packages"
@@ -1213,15 +1453,19 @@ msgstr ""
 "\n"
 "      --no-grafts        ympa inte paket"
 
-#: guix/scripts/build.scm:498
+#: guix/scripts/build.scm:706
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "      --no-build-hook    do not attempt to offload builds via the build hook"
 msgid ""
 "\n"
-"      --no-build-hook    do not attempt to offload builds via the build hook"
+"      --no-offload       do not attempt to offload builds"
 msgstr ""
 "\n"
 "      --no-build-hook    försök inte att avlasta byggen via byggkroken"
 
-#: guix/scripts/build.scm:500
+#: guix/scripts/build.scm:708
 msgid ""
 "\n"
 "      --max-silent-time=SECONDS\n"
@@ -1231,7 +1475,7 @@ msgstr ""
 "      --max-silent-time=SEKUNDER\n"
 "                         markera bygget som misslyckat efter tystnad under givet antal SEKUNDER"
 
-#: guix/scripts/build.scm:503
+#: guix/scripts/build.scm:711
 msgid ""
 "\n"
 "      --timeout=SECONDS  mark the build as failed after SECONDS of activity"
@@ -1239,7 +1483,7 @@ msgstr ""
 "\n"
 "      --timeout=SEKUNDER markera bygget som misslyckat efter aktivetet under givet antal SEKUNDER"
 
-#: guix/scripts/build.scm:505
+#: guix/scripts/build.scm:713
 msgid ""
 "\n"
 "      --rounds=N         build N times in a row to detect non-determinism"
@@ -1247,7 +1491,7 @@ msgstr ""
 "\n"
 "      --rounds=N         bygg N gånger i rad för att detektera ickedeterminism"
 
-#: guix/scripts/build.scm:507
+#: guix/scripts/build.scm:715
 msgid ""
 "\n"
 "  -c, --cores=N          allow the use of up to N CPU cores for the build"
@@ -1255,7 +1499,7 @@ msgstr ""
 "\n"
 "  -c, --cores=N          tillåt använding av upp till N CPU-kärnor för bygget"
 
-#: guix/scripts/build.scm:509
+#: guix/scripts/build.scm:717
 msgid ""
 "\n"
 "  -M, --max-jobs=N       allow at most N build jobs"
@@ -1263,7 +1507,13 @@ msgstr ""
 "\n"
 "  -M, --max-jobs=N       tillåt som mest N byggjobb"
 
-#: guix/scripts/build.scm:511
+#: guix/scripts/build.scm:719
+msgid ""
+"\n"
+"      --help-transform   list package transformation options not shown here"
+msgstr ""
+
+#: guix/scripts/build.scm:721
 msgid ""
 "\n"
 "      --debug=LEVEL      produce debugging output at LEVEL"
@@ -1271,12 +1521,27 @@ msgstr ""
 "\n"
 "      --debug=NIVÅ       producera felsökningsutmatning på NIVÅ"
 
-#: guix/scripts/build.scm:621 guix/scripts/build.scm:628
+#: guix/scripts/build.scm:738
+msgid "'--keep-failed' ignored since you are talking to a remote daemon\n"
+msgstr ""
+
+#: guix/scripts/build.scm:819
+#, fuzzy, scheme-format
+#| msgid "using a monadic value for '~a' is deprecated; use 'plain-file' instead~%"
+msgid "'--no-build-hook' is deprecated; use '--no-offload' instead~%"
+msgstr "användning av ett monadiskt värdet för ”~a” är föråldrat; använd ”plain-file” istället~%"
+
+#: guix/scripts/build.scm:849 guix/scripts/build.scm:856
 #, scheme-format
 msgid "not a number: '~a' option argument: ~a~%"
 msgstr "inte ett tal: ”~a”-flaggargument: ~a~%"
 
-#: guix/scripts/build.scm:649
+#: guix/scripts/build.scm:861
+#, scheme-format
+msgid "Available package transformation options:~%"
+msgstr ""
+
+#: guix/scripts/build.scm:884
 msgid ""
 "Usage: guix build [OPTION]... PACKAGE-OR-DERIVATION...\n"
 "Build the given PACKAGE-OR-DERIVATION and return their output paths.\n"
@@ -1284,7 +1549,7 @@ msgstr ""
 "Användning: guix build [FLAGGA]… PAKET-ELLER-HÄRLEDNING…\n"
 "Bygg givet PAKET-ELLER-HÄRLEDNING och returnera deras utmatningssökvägar.\n"
 
-#: guix/scripts/build.scm:651
+#: guix/scripts/build.scm:886
 msgid ""
 "\n"
 "  -e, --expression=EXPR  build the package or derivation EXPR evaluates to"
@@ -1292,7 +1557,7 @@ msgstr ""
 "\n"
 "  -e, --expression=UTR   bygg paketet eller härledningen som UTR utvärderas till"
 
-#: guix/scripts/build.scm:653
+#: guix/scripts/build.scm:888
 msgid ""
 "\n"
 "  -f, --file=FILE        build the package or derivation that the code within\n"
@@ -1302,7 +1567,22 @@ msgstr ""
 "  -f, --file=FIL         bygg paketet eller härdledningen som koden inuti\n"
 "                         FIL utvärderas till"
 
-#: guix/scripts/build.scm:656
+#: guix/scripts/build.scm:891
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "  -f, --file=FILE        build the package or derivation that the code within\n"
+#| "                         FILE evaluates to"
+msgid ""
+"\n"
+"  -m, --manifest=FILE    build the packages that the manifest given in FILE\n"
+"                         evaluates to"
+msgstr ""
+"\n"
+"  -f, --file=FIL         bygg paketet eller härdledningen som koden inuti\n"
+"                         FIL utvärderas till"
+
+#: guix/scripts/build.scm:894
 msgid ""
 "\n"
 "  -S, --source           build the packages' source derivations"
@@ -1310,7 +1590,7 @@ msgstr ""
 "\n"
 "  -S, --source           bygg paketens källhärledningar"
 
-#: guix/scripts/build.scm:658
+#: guix/scripts/build.scm:896
 msgid ""
 "\n"
 "      --sources[=TYPE]   build source derivations; TYPE may optionally be one\n"
@@ -1320,8 +1600,8 @@ msgstr ""
 "      --sources[=TYP]    bygg källhärledningar; TYP kan valfritt vara enderas av\n"
 "                         ”package”, ”all” (standardvärde) eller ”transitive”"
 
-#: guix/scripts/build.scm:661 guix/scripts/pull.scm:97
-#: guix/scripts/pack.scm:754
+#: guix/scripts/build.scm:899 guix/scripts/pull.scm:120
+#: guix/scripts/pack.scm:1054
 msgid ""
 "\n"
 "  -s, --system=SYSTEM    attempt to build for SYSTEM--e.g., \"i686-linux\""
@@ -1329,7 +1609,8 @@ msgstr ""
 "\n"
 "  -s, --system=SYSTEM    försök att bygga för SYSTEM — t.ex. ”i686-linux”"
 
-#: guix/scripts/build.scm:663 guix/scripts/pack.scm:756
+#: guix/scripts/build.scm:901 guix/scripts/system.scm:994
+#: guix/scripts/pack.scm:1056
 msgid ""
 "\n"
 "      --target=TRIPLET   cross-build for TRIPLET--e.g., \"armel-linux-gnu\""
@@ -1337,7 +1618,7 @@ msgstr ""
 "\n"
 "      --target=TRIPPLETT korsbygge för TRIPPLETT — t.ex. ”armel-linux-gnu”"
 
-#: guix/scripts/build.scm:665
+#: guix/scripts/build.scm:903
 msgid ""
 "\n"
 "  -d, --derivations      return the derivation paths of the given packages"
@@ -1345,7 +1626,7 @@ msgstr ""
 "\n"
 "  -d, --derivations      returnera härledningssökvägar för de givna paketen"
 
-#: guix/scripts/build.scm:667
+#: guix/scripts/build.scm:905
 msgid ""
 "\n"
 "      --check            rebuild items to check for non-determinism issues"
@@ -1353,7 +1634,7 @@ msgstr ""
 "\n"
 "      --check            bygg om objekt för att leta efter ickedeterministiska problem"
 
-#: guix/scripts/build.scm:669
+#: guix/scripts/build.scm:907
 msgid ""
 "\n"
 "      --repair           repair the specified items"
@@ -1361,7 +1642,7 @@ msgstr ""
 "\n"
 "      --repair           reparera angivna objekt"
 
-#: guix/scripts/build.scm:671
+#: guix/scripts/build.scm:909 guix/scripts/pack.scm:1074
 msgid ""
 "\n"
 "  -r, --root=FILE        make FILE a symlink to the result, and register it\n"
@@ -1371,11 +1652,11 @@ msgstr ""
 "  -r, --root=FIL         gör FIL till en symbolisk länk till resultatet, och registrera den\n"
 "                         som en skräpsamlarrot"
 
-#: guix/scripts/build.scm:674 guix/scripts/package.scm:364
+#: guix/scripts/build.scm:912 guix/scripts/package.scm:384
 #: guix/scripts/install.scm:36 guix/scripts/remove.scm:36
-#: guix/scripts/upgrade.scm:36 guix/scripts/pull.scm:95
-#: guix/scripts/system.scm:1032 guix/scripts/copy.scm:120
-#: guix/scripts/pack.scm:771
+#: guix/scripts/upgrade.scm:37 guix/scripts/pull.scm:118
+#: guix/scripts/system.scm:996 guix/scripts/copy.scm:115
+#: guix/scripts/pack.scm:1079 guix/scripts/deploy.scm:58
 msgid ""
 "\n"
 "  -v, --verbosity=LEVEL  use the given verbosity LEVEL"
@@ -1383,7 +1664,7 @@ msgstr ""
 "\n"
 "  -v, --verbosity=NIVÅ   använd angiven NIVÅ av utförlighet"
 
-#: guix/scripts/build.scm:676
+#: guix/scripts/build.scm:914
 msgid ""
 "\n"
 "  -q, --quiet            do not show the build log"
@@ -1391,7 +1672,7 @@ msgstr ""
 "\n"
 "  -q, --quiet            visa inte byggloggen"
 
-#: guix/scripts/build.scm:678
+#: guix/scripts/build.scm:916
 msgid ""
 "\n"
 "      --log-file         return the log file names for the given derivations"
@@ -1399,19 +1680,21 @@ msgstr ""
 "\n"
 "      --log-file         returnera loggfilnamnen för angivna härledningar"
 
-#: guix/scripts/build.scm:685 guix/scripts/download.scm:83
-#: guix/scripts/package.scm:382 guix/scripts/install.scm:43
-#: guix/scripts/remove.scm:41 guix/scripts/upgrade.scm:43
-#: guix/scripts/search.scm:34 guix/scripts/gc.scm:84 guix/scripts/hash.scm:60
-#: guix/scripts/import.scm:93 guix/scripts/import/cran.scm:47
-#: guix/scripts/pull.scm:103 guix/scripts/substitute.scm:898
-#: guix/scripts/system.scm:1035 guix/scripts/lint.scm:1180
-#: guix/scripts/publish.scm:94 guix/scripts/edit.scm:43
-#: guix/scripts/size.scm:244 guix/scripts/graph.scm:499
-#: guix/scripts/challenge.scm:241 guix/scripts/copy.scm:125
-#: guix/scripts/pack.scm:776 guix/scripts/weather.scm:270
-#: guix/scripts/describe.scm:72 guix/scripts/processes.scm:214
-#: guix/scripts/container.scm:34 guix/scripts/container/exec.scm:43
+#: guix/scripts/build.scm:921 guix/scripts/download.scm:103
+#: guix/scripts/package.scm:400 guix/scripts/install.scm:41
+#: guix/scripts/remove.scm:41 guix/scripts/upgrade.scm:44
+#: guix/scripts/search.scm:36 guix/scripts/show.scm:36 guix/scripts/gc.scm:88
+#: guix/scripts/git.scm:34 guix/scripts/git/authenticate.scm:110
+#: guix/scripts/hash.scm:65 guix/scripts/import.scm:95
+#: guix/scripts/import/cran.scm:47 guix/scripts/pull.scm:126
+#: guix/scripts/substitute.scm:857 guix/scripts/system.scm:999
+#: guix/scripts/lint.scm:104 guix/scripts/publish.scm:97
+#: guix/scripts/edit.scm:51 guix/scripts/size.scm:249
+#: guix/scripts/graph.scm:548 guix/scripts/challenge.scm:423
+#: guix/scripts/copy.scm:120 guix/scripts/pack.scm:1084
+#: guix/scripts/weather.scm:293 guix/scripts/describe.scm:95
+#: guix/scripts/processes.scm:214 guix/scripts/deploy.scm:53
+#: guix/scripts/container.scm:35 guix/scripts/container/exec.scm:43
 msgid ""
 "\n"
 "  -h, --help             display this help and exit"
@@ -1419,19 +1702,21 @@ msgstr ""
 "\n"
 "  -h, --help             visa denna hjälp och avsluta"
 
-#: guix/scripts/build.scm:687 guix/scripts/download.scm:85
-#: guix/scripts/package.scm:384 guix/scripts/install.scm:45
-#: guix/scripts/remove.scm:43 guix/scripts/upgrade.scm:45
-#: guix/scripts/search.scm:36 guix/scripts/gc.scm:86 guix/scripts/hash.scm:62
-#: guix/scripts/import.scm:95 guix/scripts/import/cran.scm:51
-#: guix/scripts/pull.scm:105 guix/scripts/substitute.scm:900
-#: guix/scripts/system.scm:1037 guix/scripts/lint.scm:1184
-#: guix/scripts/publish.scm:96 guix/scripts/edit.scm:45
-#: guix/scripts/size.scm:246 guix/scripts/graph.scm:501
-#: guix/scripts/challenge.scm:243 guix/scripts/copy.scm:127
-#: guix/scripts/pack.scm:778 guix/scripts/weather.scm:272
-#: guix/scripts/describe.scm:74 guix/scripts/processes.scm:216
-#: guix/scripts/container.scm:36 guix/scripts/container/exec.scm:45
+#: guix/scripts/build.scm:923 guix/scripts/download.scm:105
+#: guix/scripts/package.scm:402 guix/scripts/install.scm:43
+#: guix/scripts/remove.scm:43 guix/scripts/upgrade.scm:46
+#: guix/scripts/search.scm:38 guix/scripts/show.scm:38 guix/scripts/gc.scm:90
+#: guix/scripts/git.scm:36 guix/scripts/git/authenticate.scm:112
+#: guix/scripts/hash.scm:67 guix/scripts/import.scm:97
+#: guix/scripts/import/cran.scm:51 guix/scripts/pull.scm:128
+#: guix/scripts/substitute.scm:859 guix/scripts/system.scm:1001
+#: guix/scripts/lint.scm:108 guix/scripts/publish.scm:99
+#: guix/scripts/edit.scm:53 guix/scripts/size.scm:251
+#: guix/scripts/graph.scm:550 guix/scripts/challenge.scm:425
+#: guix/scripts/copy.scm:122 guix/scripts/pack.scm:1086
+#: guix/scripts/weather.scm:295 guix/scripts/describe.scm:97
+#: guix/scripts/processes.scm:216 guix/scripts/deploy.scm:55
+#: guix/scripts/container.scm:37 guix/scripts/container/exec.scm:45
 msgid ""
 "\n"
 "  -V, --version          display version information and exit"
@@ -1439,7 +1724,7 @@ msgstr ""
 "\n"
 "  -V, --version          visa versionsinformation och avsluta"
 
-#: guix/scripts/build.scm:714
+#: guix/scripts/build.scm:950
 #, scheme-format
 msgid ""
 "invalid argument: '~a' option argument: ~a, ~\n"
@@ -1448,34 +1733,418 @@ msgstr ""
 "ogiltigt argument: ”~a”-flaggargument: ~a, ~\n"
 "måste vara endera av ”package”, ”all” eller ”trasitive”~%"
 
-#: guix/scripts/build.scm:772
+#: guix/scripts/build.scm:1012
 #, scheme-format
 msgid "~s: not something we can build~%"
 msgstr "~s: inte något vi kan bygga~%"
 
-#: guix/scripts/build.scm:837
-#, scheme-format
-msgid "~a: warning: package '~a' has no source~%"
+#: guix/scripts/build.scm:1017
+msgid ""
+"If you build from a file, make sure the last Scheme\n"
+"expression returns a package value.  @code{define-public} defines a variable,\n"
+"but returns @code{#<unspecified>}.  To fix this, add a Scheme expression at\n"
+"the end of the file that consists only of the package's variable name you\n"
+"defined, as in this example:\n"
+"\n"
+"@example\n"
+"(define-public my-package\n"
+"  (package\n"
+"    ...))\n"
+"\n"
+"my-package\n"
+"@end example"
+msgstr ""
+
+#: guix/scripts/build.scm:1030
+msgid ""
+"If you build from a file, make sure the last\n"
+"Scheme expression returns a package, gexp, derivation or a list of such\n"
+"values."
+msgstr ""
+
+#: guix/scripts/build.scm:1117
+#, fuzzy, scheme-format
+#| msgid "~a: warning: package '~a' has no source~%"
+msgid "package '~a' has no source~%"
 msgstr "~a: varning: paket ”~a” har ingen källa~%"
 
-#: guix/scripts/build.scm:885
+#: guix/scripts/build.scm:1165
 #, scheme-format
 msgid "no build log for '~a'~%"
 msgstr "ingen bygglogg för ”~a”~%"
 
-#: guix/discovery.scm:92
+#: guix/discovery.scm:96
 #, scheme-format
 msgid "cannot access `~a': ~a~%"
 msgstr "kan inte komma åt ”~a”: ~a~%"
 
-#: guix/scripts/download.scm:69
+#: guix/lint.scm:184
+msgid "description should not be empty"
+msgstr ""
+
+#: guix/lint.scm:195
+msgid "Texinfo markup in description is invalid"
+msgstr ""
+
+#: guix/lint.scm:205
+#, scheme-format
+msgid ""
+"description should not contain ~\n"
+"trademark sign '~a' at ~d"
+msgstr ""
+
+#. TRANSLATORS: '@code' is Texinfo markup and must be kept
+#. as is.
+#: guix/lint.scm:218
+msgid "use @code or similar ornament instead of quotes"
+msgstr ""
+
+#: guix/lint.scm:230
+msgid "description should start with an upper-case letter or digit"
+msgstr ""
+
+#: guix/lint.scm:248
+#, scheme-format
+msgid ""
+"sentences in description should be followed ~\n"
+"by two spaces; possible infraction~p at ~{~a~^, ~}"
+msgstr ""
+
+#: guix/lint.scm:269
+#, scheme-format
+msgid "invalid description: ~s"
+msgstr ""
+
+#: guix/lint.scm:339
+#, scheme-format
+msgid "'~a' should probably be a native input"
+msgstr ""
+
+#: guix/lint.scm:354
+#, scheme-format
+msgid "'~a' should probably not be an input at all"
+msgstr ""
+
+#: guix/lint.scm:375
+msgid "no period allowed at the end of the synopsis"
+msgstr ""
+
+#: guix/lint.scm:389
+msgid "no article allowed at the beginning of the synopsis"
+msgstr ""
+
+#: guix/lint.scm:398
+msgid "synopsis should be less than 80 characters long"
+msgstr ""
+
+#: guix/lint.scm:407
+msgid "synopsis should start with an upper-case letter or digit"
+msgstr ""
+
+#: guix/lint.scm:415
+msgid "synopsis should not start with the package name"
+msgstr ""
+
+#: guix/lint.scm:429
+msgid "Texinfo markup in synopsis is invalid"
+msgstr ""
+
+#: guix/lint.scm:444
+msgid "synopsis should not be empty"
+msgstr ""
+
+#: guix/lint.scm:454
+#, scheme-format
+msgid "invalid synopsis: ~s"
+msgstr ""
+
+#: guix/lint.scm:572
+#, scheme-format
+msgid "URI ~a returned suspiciously small file (~a bytes)"
+msgstr ""
+
+#: guix/lint.scm:581
+#, scheme-format
+msgid "permanent redirect from ~a to ~a"
+msgstr ""
+
+#: guix/lint.scm:587
+#, scheme-format
+msgid "invalid permanent redirect from ~a"
+msgstr ""
+
+#: guix/lint.scm:593 guix/lint.scm:603
+#, scheme-format
+msgid "URI ~a not reachable: ~a (~s)"
+msgstr ""
+
+#: guix/lint.scm:609
+#, scheme-format
+msgid "URI ~a domain not found: ~a"
+msgstr ""
+
+#: guix/lint.scm:615
+#, scheme-format
+msgid "URI ~a unreachable: ~a"
+msgstr ""
+
+#: guix/lint.scm:623
+#, scheme-format
+msgid "TLS certificate error: ~a"
+msgstr ""
+
+#: guix/lint.scm:650
+msgid "invalid value for home page"
+msgstr ""
+
+#: guix/lint.scm:655
+#, scheme-format
+msgid "invalid home page URL: ~s"
+msgstr ""
+
+#: guix/lint.scm:698
+msgid "file names of patches should start with the package name"
+msgstr ""
+
+#: guix/lint.scm:714
+#, scheme-format
+msgid "~a: file name is too long"
+msgstr ""
+
+#: guix/lint.scm:756
+#, scheme-format
+msgid "proposed synopsis: ~s~%"
+msgstr ""
+
+#: guix/lint.scm:770
+#, scheme-format
+msgid "proposed description:~%     \"~a\"~%"
+msgstr ""
+
+#: guix/lint.scm:821
+msgid "all the source URIs are unreachable:"
+msgstr ""
+
+#: guix/lint.scm:850
+msgid "the source file name should contain the package name"
+msgstr ""
+
+#: guix/lint.scm:862
+msgid "the source URI should not be an autogenerated tarball"
+msgstr ""
+
+#: guix/lint.scm:886
+#, scheme-format
+msgid "URL should be 'mirror://~a/~a'"
+msgstr ""
+
+#: guix/lint.scm:931
+#, scheme-format
+msgid "URL should be '~a'"
+msgstr ""
+
+#: guix/lint.scm:953 guix/lint.scm:964 guix/lint.scm:972
+#, scheme-format
+msgid "failed to create ~a derivation: ~a"
+msgstr ""
+
+#: guix/lint.scm:958 guix/lint.scm:986
+#, scheme-format
+msgid "failed to create ~a derivation: ~s"
+msgstr ""
+
+#: guix/lint.scm:1014
+#, scheme-format
+msgid "propagated inputs ~a and ~a collide"
+msgstr ""
+
+#: guix/lint.scm:1038
+msgid "invalid license field"
+msgstr ""
+
+#: guix/lint.scm:1045
+#, scheme-format
+msgid "~a: HTTP GET error for ~a: ~a (~s)~%"
+msgstr ""
+
+#: guix/lint.scm:1055
+#, scheme-format
+msgid "~a: host lookup failure: ~a~%"
+msgstr ""
+
+#: guix/lint.scm:1060
+#, scheme-format
+msgid "~a: TLS certificate error: ~a"
+msgstr ""
+
+#: guix/lint.scm:1071 guix/ui.scm:842
+#, scheme-format
+msgid "~a: ~a~%"
+msgstr "~a: ~a~%"
+
+#: guix/lint.scm:1085
+msgid "while retrieving CVE vulnerabilities"
+msgstr ""
+
+#: guix/lint.scm:1128
+#, scheme-format
+msgid "probably vulnerable to ~a"
+msgstr ""
+
+#: guix/lint.scm:1135
+#, scheme-format
+msgid "while retrieving upstream info for '~a'"
+msgstr ""
+
+#: guix/lint.scm:1144
+#, scheme-format
+msgid "can be upgraded to ~a"
+msgstr ""
+
+#: guix/lint.scm:1162
+msgid "Software Heritage rate limit reached; try again later"
+msgstr ""
+
+#: guix/lint.scm:1166
+#, scheme-format
+msgid "'~a' returned ~a"
+msgstr ""
+
+#. TRANSLATORS: "Software Heritage" is a proper noun
+#. that must remain untranslated.  See
+#. <https://www.softwareheritage.org>.
+#: guix/lint.scm:1205
+msgid "scheduled Software Heritage archival"
+msgstr ""
+
+#: guix/lint.scm:1211
+msgid "archival rate limit exceeded; try again later"
+msgstr ""
+
+#: guix/lint.scm:1226
+msgid "source not archived on Software Heritage"
+msgstr ""
+
+#: guix/lint.scm:1239
+msgid "while connecting to Software Heritage"
+msgstr ""
+
+#: guix/lint.scm:1254
+#, scheme-format
+msgid "tabulation on line ~a, column ~a"
+msgstr ""
+
+#: guix/lint.scm:1266
+#, scheme-format
+msgid "trailing white space on line ~a"
+msgstr ""
+
+#: guix/lint.scm:1280
+#, scheme-format
+msgid "line ~a is way too long (~a characters)"
+msgstr ""
+
+#: guix/lint.scm:1294
+msgid "parentheses feel lonely, move to the previous or next line"
+msgstr ""
+
+#: guix/lint.scm:1371
+#, fuzzy
+#| msgid "module ~a not found"
+msgid "source file not found"
+msgstr "modul ~a hittades inte"
+
+#: guix/lint.scm:1383
+msgid "Validate package descriptions"
+msgstr ""
+
+#: guix/lint.scm:1387
+msgid "Identify inputs that should be native inputs"
+msgstr ""
+
+#: guix/lint.scm:1391
+msgid "Identify inputs that shouldn't be inputs at all"
+msgstr ""
+
+#. TRANSLATORS: <license> is the name of a data type and must not be
+#. translated.
+#: guix/lint.scm:1397
+msgid "Make sure the 'license' field is a <license> or a list thereof"
+msgstr ""
+
+#: guix/lint.scm:1402
+msgid "Suggest 'mirror://' URLs"
+msgstr ""
+
+#: guix/lint.scm:1406
+msgid "Validate file names of sources"
+msgstr ""
+
+#: guix/lint.scm:1410
+msgid "Check for autogenerated tarballs"
+msgstr ""
+
+#: guix/lint.scm:1414
+msgid "Report failure to compile a package to a derivation"
+msgstr ""
+
+#: guix/lint.scm:1419
+msgid "Report collisions that would occur due to propagated inputs"
+msgstr ""
+
+#: guix/lint.scm:1424
+msgid "Validate file names and availability of patches"
+msgstr ""
+
+#: guix/lint.scm:1428
+msgid "Look for formatting issues in the source"
+msgstr ""
+
+#: guix/lint.scm:1435
+msgid "Validate package synopses"
+msgstr ""
+
+#: guix/lint.scm:1439
+msgid "Validate synopsis & description of GNU packages"
+msgstr ""
+
+#: guix/lint.scm:1443
+msgid "Validate home-page URLs"
+msgstr ""
+
+#: guix/lint.scm:1447
+msgid "Validate source URLs"
+msgstr ""
+
+#: guix/lint.scm:1451
+msgid "Suggest GitHub URLs"
+msgstr ""
+
+#: guix/lint.scm:1455
+msgid "Check the Common Vulnerabilities and Exposures (CVE) database"
+msgstr ""
+
+#: guix/lint.scm:1460
+msgid "Check the package for new upstream releases"
+msgstr ""
+
+#: guix/lint.scm:1464
+msgid "Ensure source code archival on Software Heritage"
+msgstr ""
+
+#: guix/scripts/download.scm:86
+#, fuzzy
+#| msgid ""
+#| "Usage: guix download [OPTION] URL\n"
+#| "Download the file at URL to the store or to the given file, and print its\n"
+#| "file name and the hash of its contents.\n"
+#| "\n"
+#| "Supported formats: 'nix-base32' (default), 'base32', and 'base16'\n"
+#| "('hex' and 'hexadecimal' can be used as well).\n"
 msgid ""
 "Usage: guix download [OPTION] URL\n"
 "Download the file at URL to the store or to the given file, and print its\n"
 "file name and the hash of its contents.\n"
-"\n"
-"Supported formats: 'nix-base32' (default), 'base32', and 'base16'\n"
-"('hex' and 'hexadecimal' can be used as well).\n"
 msgstr ""
 "Användning: guix download [FLAGGA] URL\n"
 "Hämta filen vid URL till arkivet eller till den givna filen, och skriv ut dess\n"
@@ -1484,7 +2153,13 @@ msgstr ""
 "Format som stöds: ”nix-base32” (standardvärde), ”base32” och ”base16”\n"
 "(”hex” och ”hexadecimal” kan också användas.)\n"
 
-#: guix/scripts/download.scm:75 guix/scripts/hash.scm:55
+#: guix/scripts/download.scm:90 guix/scripts/hash.scm:53
+msgid ""
+"Supported formats: 'base64', 'nix-base32' (default), 'base32',\n"
+"and 'base16' ('hex' and 'hexadecimal' can be used as well).\n"
+msgstr ""
+
+#: guix/scripts/download.scm:93 guix/scripts/hash.scm:60
 msgid ""
 "\n"
 "  -f, --format=FMT       write the hash in the given format"
@@ -1492,7 +2167,13 @@ msgstr ""
 "\n"
 "  -f, --format=FMT       skriv hash i angivet format"
 
-#: guix/scripts/download.scm:77
+#: guix/scripts/download.scm:95 guix/scripts/hash.scm:58
+msgid ""
+"\n"
+"  -H, --hash=ALGORITHM   use the given hash ALGORITHM"
+msgstr ""
+
+#: guix/scripts/download.scm:97
 msgid ""
 "\n"
 "      --no-check-certificate\n"
@@ -1500,9 +2181,9 @@ msgid ""
 msgstr ""
 "\n"
 "      --no-check-certificate\n"
-"                         validera inte certifiakt från HTTPS-servrar"
+"                         validera inte certifiakt från HTTPS-servrar "
 
-#: guix/scripts/download.scm:80
+#: guix/scripts/download.scm:100
 msgid ""
 "\n"
 "  -o, --output=FILE      download to FILE"
@@ -1510,71 +2191,73 @@ msgstr ""
 "\n"
 "  -o, --output=FIL       hämta till FIL"
 
-#: guix/scripts/download.scm:103 guix/scripts/hash.scm:83
+#: guix/scripts/download.scm:125 guix/scripts/hash.scm:97
 #, scheme-format
 msgid "unsupported hash format: ~a~%"
 msgstr "hashformat stöds inte: ~a~%"
 
-#: guix/scripts/download.scm:138 guix/scripts/package.scm:900
-#: guix/scripts/upgrade.scm:79 guix/scripts/publish.scm:890
+#: guix/scripts/download.scm:133 guix/scripts/hash.scm:81
+#, fuzzy, scheme-format
+#| msgid "~A: unknown package~%"
+msgid "~a: unknown hash algorithm~%"
+msgstr "~A: okänt paket~%"
+
+#: guix/scripts/download.scm:170 guix/scripts/package.scm:954
+#: guix/scripts/upgrade.scm:82 guix/scripts/publish.scm:1025
 #, scheme-format
 msgid "~A: extraneous argument~%"
 msgstr "~A: främmande argument~%"
 
-#: guix/scripts/download.scm:146
+#: guix/scripts/download.scm:178
 #, scheme-format
 msgid "no download URI was specified~%"
 msgstr "ingen hämtnings-URI angavs~%"
 
-#: guix/scripts/download.scm:151
+#: guix/scripts/download.scm:183
 #, scheme-format
 msgid "~a: failed to parse URI~%"
 msgstr "~a: misslyckades med att tolka URI~%"
 
-#: guix/scripts/download.scm:161
+#: guix/scripts/download.scm:193
 #, scheme-format
 msgid "~a: download failed~%"
 msgstr "~a: hämtning misslyckades~%"
 
-#: guix/scripts/package.scm:115
+#: guix/scripts/package.scm:124
 #, scheme-format
 msgid "not removing generation ~a, which is current~%"
 msgstr "tar inte bort generation ~a, då den är aktuell~%"
 
-#: guix/scripts/package.scm:122
+#: guix/scripts/package.scm:131
 #, scheme-format
 msgid "no matching generation~%"
 msgstr "ingen matchande generation~%"
 
-#: guix/scripts/package.scm:125 guix/scripts/package.scm:697
-#: guix/scripts/system.scm:626
-#, scheme-format
-msgid "invalid syntax: ~a~%"
-msgstr "ogiltig syntax: ~a~%"
-
-#: guix/scripts/package.scm:154
+#: guix/scripts/package.scm:153
 #, scheme-format
 msgid "nothing to be done~%"
 msgstr "ingenting att göra~%"
 
-#: guix/scripts/package.scm:168
-#, scheme-format
-msgid "~a package in profile~%"
-msgid_plural "~a packages in profile~%"
-msgstr[0] "~a paket i profil~%"
-msgstr[1] "~a paket i profil~%"
-
-#: guix/scripts/package.scm:255
+#: guix/scripts/package.scm:256
 #, scheme-format
 msgid "package '~a' no longer exists~%"
 msgstr "paket ”~a” finns inte längre~%"
 
-#: guix/scripts/package.scm:301
+#: guix/scripts/package.scm:311
 #, scheme-format
-msgid "The following environment variable definitions may be needed:~%"
-msgstr "Följande definitioner av miljövariabler kan behövas: ~%"
+msgid ""
+"Consider setting the necessary environment\n"
+"variables by running:\n"
+"\n"
+"@example\n"
+"GUIX_PROFILE=\"~a\"\n"
+". \"$GUIX_PROFILE/etc/profile\"\n"
+"@end example\n"
+"\n"
+"Alternately, see @command{guix package --search-paths -p ~s}."
+msgstr ""
 
-#: guix/scripts/package.scm:321
+#: guix/scripts/package.scm:339
 msgid ""
 "Usage: guix package [OPTION]...\n"
 "Install, remove, or upgrade packages in a single transaction.\n"
@@ -1582,7 +2265,7 @@ msgstr ""
 "Användning: guis package [FLAGGA]…\n"
 "Installera, ta bort eller uppgradera paket i en enstaka transaktion.\n"
 
-#: guix/scripts/package.scm:323
+#: guix/scripts/package.scm:341
 msgid ""
 "\n"
 "  -i, --install PACKAGE ...\n"
@@ -1592,7 +2275,7 @@ msgstr ""
 "  -i, --install PACKET …\n"
 "                         installera PAKET"
 
-#: guix/scripts/package.scm:326
+#: guix/scripts/package.scm:344
 msgid ""
 "\n"
 "  -e, --install-from-expression=EXP\n"
@@ -1602,7 +2285,7 @@ msgstr ""
 "  -e, --install-from-expression=UTR\n"
 "                         installera paketet som UTR utvärderas till"
 
-#: guix/scripts/package.scm:329
+#: guix/scripts/package.scm:347
 msgid ""
 "\n"
 "  -f, --install-from-file=FILE\n"
@@ -1614,7 +2297,7 @@ msgstr ""
 "                         installera paketet som koden inuti FIL\n"
 "                         utvärderas till"
 
-#: guix/scripts/package.scm:333
+#: guix/scripts/package.scm:351
 msgid ""
 "\n"
 "  -r, --remove PACKAGE ...\n"
@@ -1624,7 +2307,7 @@ msgstr ""
 "  -r, --remove PAKET …\n"
 "                         ta bort PAKET"
 
-#: guix/scripts/package.scm:336
+#: guix/scripts/package.scm:354
 msgid ""
 "\n"
 "  -u, --upgrade[=REGEXP] upgrade all the installed packages matching REGEXP"
@@ -1632,7 +2315,7 @@ msgstr ""
 "\n"
 "  -u, --upgrade[=REGUTR] uppgradera alla interallerade paket som matchar REGUTR"
 
-#: guix/scripts/package.scm:338
+#: guix/scripts/package.scm:356
 msgid ""
 "\n"
 "  -m, --manifest=FILE    create a new profile generation with the manifest\n"
@@ -1642,7 +2325,7 @@ msgstr ""
 "  -m, --manifest=FIL     skapa en ny profilgeneration med manifestet\n"
 "                         från FIL"
 
-#: guix/scripts/package.scm:341
+#: guix/scripts/package.scm:359 guix/scripts/upgrade.scm:39
 msgid ""
 "\n"
 "      --do-not-upgrade[=REGEXP] do not upgrade any packages matching REGEXP"
@@ -1650,7 +2333,7 @@ msgstr ""
 "\n"
 "      --do-not-upgrade[=REGUTR] uppgradera inte något av de paket som matchar REGUTR"
 
-#: guix/scripts/package.scm:343
+#: guix/scripts/package.scm:361 guix/scripts/pull.scm:108
 msgid ""
 "\n"
 "      --roll-back        roll back to the previous generation"
@@ -1658,7 +2341,7 @@ msgstr ""
 "\n"
 "      --roll-back        rulla tillbaka till föregående generation"
 
-#: guix/scripts/package.scm:345
+#: guix/scripts/package.scm:363
 msgid ""
 "\n"
 "      --search-paths[=KIND]\n"
@@ -1668,7 +2351,7 @@ msgstr ""
 "      --search-paths[=TYP]\n"
 "                         visa miljövariabeldefinitioner som behövs"
 
-#: guix/scripts/package.scm:348 guix/scripts/pull.scm:90
+#: guix/scripts/package.scm:366 guix/scripts/pull.scm:105
 msgid ""
 "\n"
 "  -l, --list-generations[=PATTERN]\n"
@@ -1678,7 +2361,7 @@ msgstr ""
 "  -l, --list-generations[=MÖNSTER]\n"
 "                         lista generationer som matchar MÖNSTER"
 
-#: guix/scripts/package.scm:351
+#: guix/scripts/package.scm:369 guix/scripts/pull.scm:110
 msgid ""
 "\n"
 "  -d, --delete-generations[=PATTERN]\n"
@@ -1688,7 +2371,7 @@ msgstr ""
 "  -d, --delete-generations[=MÖNSTER]\n"
 "                         ta bort generationer som matchar MÖNSTER"
 
-#: guix/scripts/package.scm:354
+#: guix/scripts/package.scm:372 guix/scripts/pull.scm:113
 msgid ""
 "\n"
 "  -S, --switch-generation=PATTERN\n"
@@ -1698,8 +2381,8 @@ msgstr ""
 "  -S, --switch-generation=MÖNSTER\n"
 "                         växla till en generation som matchar MÖNSTER"
 
-#: guix/scripts/package.scm:357 guix/scripts/install.scm:33
-#: guix/scripts/remove.scm:33 guix/scripts/upgrade.scm:34
+#: guix/scripts/package.scm:375 guix/scripts/install.scm:33
+#: guix/scripts/remove.scm:33 guix/scripts/upgrade.scm:35
 msgid ""
 "\n"
 "  -p, --profile=PROFILE  use PROFILE instead of the user's default profile"
@@ -1707,7 +2390,19 @@ msgstr ""
 "\n"
 "  -p, --profile=PROFIL   använd PROFIL istället för användarens standardprofil"
 
-#: guix/scripts/package.scm:360
+#: guix/scripts/package.scm:377
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "  -p, --profile=PROFILE  use PROFILE instead of the user's default profile"
+msgid ""
+"\n"
+"      --list-profiles    list the user's profiles"
+msgstr ""
+"\n"
+"  -p, --profile=PROFIL   använd PROFIL istället för användarens standardprofil"
+
+#: guix/scripts/package.scm:380
 msgid ""
 "\n"
 "      --allow-collisions do not treat collisions in the profile as an error"
@@ -1715,7 +2410,7 @@ msgstr ""
 "\n"
 "      --allow-collisions behandla inte kollisioner i profilen som fel"
 
-#: guix/scripts/package.scm:362
+#: guix/scripts/package.scm:382
 msgid ""
 "\n"
 "      --bootstrap        use the bootstrap Guile to build the profile"
@@ -1723,7 +2418,7 @@ msgstr ""
 "\n"
 "      --bootstrap        använd laddar-Guile för att bygga profilen"
 
-#: guix/scripts/package.scm:367
+#: guix/scripts/package.scm:387
 msgid ""
 "\n"
 "  -s, --search=REGEXP    search in synopsis and description using REGEXP"
@@ -1731,7 +2426,7 @@ msgstr ""
 "\n"
 "  -s, --search=REGUTR    sök i synopsis och beskrivning efter REGUTR"
 
-#: guix/scripts/package.scm:369
+#: guix/scripts/package.scm:389
 msgid ""
 "\n"
 "  -I, --list-installed[=REGEXP]\n"
@@ -1741,7 +2436,7 @@ msgstr ""
 "  -I, --list-installed[=REGUTR]\n"
 "                         lista installerade paket som matchar REGEXP"
 
-#: guix/scripts/package.scm:372
+#: guix/scripts/package.scm:392
 msgid ""
 "\n"
 "  -A, --list-available[=REGEXP]\n"
@@ -1751,7 +2446,7 @@ msgstr ""
 "  -A, --list-available[=REGUTR]\n"
 "                         lista tillgängliga paket som matchar REGUTR"
 
-#: guix/scripts/package.scm:375
+#: guix/scripts/package.scm:395
 msgid ""
 "\n"
 "      --show=PACKAGE     show details about PACKAGE"
@@ -1759,41 +2454,36 @@ msgstr ""
 "\n"
 "      --show=PAKET       visa detaljer om PAKET"
 
-#: guix/scripts/package.scm:427
+#: guix/scripts/package.scm:448
 #, scheme-format
 msgid "upgrade regexp '~a' looks like a command-line option~%"
 msgstr "reguljärt uttryck för uppgradering ”~a” ser ut som en kommandoradsflagga~%"
 
-#: guix/scripts/package.scm:430
+#: guix/scripts/package.scm:451
 #, scheme-format
 msgid "is this intended?~%"
 msgstr "är det avsiktligt?~%"
 
-#: guix/scripts/package.scm:475
+#: guix/scripts/package.scm:501
 #, scheme-format
 msgid "~a: unsupported kind of search path~%"
 msgstr "~a: sökvägstyp stöds inte~%"
 
-#: guix/scripts/package.scm:771
+#: guix/scripts/package.scm:627
+#, scheme-format
+msgid "cannot install non-package object: ~s~%"
+msgstr ""
+
+#: guix/scripts/package.scm:808
 #, scheme-format
 msgid "~a~@[@~a~]: package not found~%"
 msgstr "~a~@[@~a~]: paket hittades inte~%"
 
-#: guix/scripts/package.scm:805
+#: guix/scripts/package.scm:843 guix/scripts/pull.scm:687
 #, scheme-format
 msgid "cannot switch to generation '~a'~%"
 msgstr "kan inte växla till generation ”~a”~%"
 
-#: guix/scripts/package.scm:822
-#, scheme-format
-msgid "would install new manifest from '~a' with ~d entries~%"
-msgstr "skulle installera nytt manifest från ”~a” med ~d poster~%"
-
-#: guix/scripts/package.scm:824
-#, scheme-format
-msgid "installing new manifest from '~a' with ~d entries~%"
-msgstr "installerar nytt manifest från ”~a” med ~d poster~%"
-
 #: guix/scripts/install.scm:30
 msgid ""
 "Usage: guix install [OPTION] PACKAGES...\n"
@@ -1811,111 +2501,140 @@ msgid ""
 "This is an alias for 'guix package -r'.\n"
 msgstr ""
 
-#: guix/scripts/upgrade.scm:31
+#: guix/scripts/upgrade.scm:32
 msgid ""
 "Usage: guix upgrade [OPTION] [REGEXP]\n"
 "Upgrade packages that match REGEXP.\n"
 "This is an alias for 'guix package -u'.\n"
 msgstr ""
 
-#: guix/scripts/search.scm:29
+#: guix/scripts/search.scm:31
 msgid ""
 "Usage: guix search [OPTION] REGEXPS...\n"
 "Search for packages matching REGEXPS."
 msgstr ""
 
-#: guix/scripts/search.scm:31
+#: guix/scripts/search.scm:33
 msgid ""
 "\n"
 "This is an alias for 'guix package -s'.\n"
 msgstr ""
 
-#: guix/scripts/search.scm:65
+#: guix/scripts/search.scm:76
 #, scheme-format
 msgid "missing arguments: no regular expressions to search for~%"
 msgstr ""
 
-#: guix/scripts/gc.scm:45
+#: guix/scripts/show.scm:31
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "      --show=PACKAGE     show details about PACKAGE"
+msgid ""
+"Usage: guix show [OPTION] PACKAGE...\n"
+"Show details about PACKAGE."
+msgstr ""
+"\n"
+"      --show=PAKET       visa detaljer om PAKET"
+
+#: guix/scripts/show.scm:33
+msgid ""
+"\n"
+"This is an alias for 'guix package --show='.\n"
+msgstr ""
+
+#: guix/scripts/show.scm:76
+#, scheme-format
+msgid "missing arguments: no package to show~%"
+msgstr ""
+
+#: guix/scripts/gc.scm:47
 msgid ""
 "Usage: guix gc [OPTION]... PATHS...\n"
 "Invoke the garbage collector.\n"
 msgstr ""
 
-#: guix/scripts/gc.scm:47
+#: guix/scripts/gc.scm:49
 msgid ""
 "\n"
 "  -C, --collect-garbage[=MIN]\n"
 "                         collect at least MIN bytes of garbage"
 msgstr ""
 
-#: guix/scripts/gc.scm:50
+#: guix/scripts/gc.scm:52
 msgid ""
 "\n"
 "  -F, --free-space=FREE  attempt to reach FREE available space in the store"
 msgstr ""
 
-#: guix/scripts/gc.scm:52
+#: guix/scripts/gc.scm:54
 msgid ""
 "\n"
 "  -d, --delete-generations[=PATTERN]\n"
 "                         delete profile generations matching PATTERN"
 msgstr ""
 
-#: guix/scripts/gc.scm:55
+#: guix/scripts/gc.scm:57
 msgid ""
 "\n"
 "  -D, --delete           attempt to delete PATHS"
 msgstr ""
 
-#: guix/scripts/gc.scm:57
+#: guix/scripts/gc.scm:59
 msgid ""
 "\n"
 "      --list-roots       list the user's garbage collector roots"
 msgstr ""
 
-#: guix/scripts/gc.scm:59
+#: guix/scripts/gc.scm:61
+msgid ""
+"\n"
+"      --list-busy        list store items used by running processes"
+msgstr ""
+
+#: guix/scripts/gc.scm:63
 msgid ""
 "\n"
 "      --optimize         optimize the store by deduplicating identical files"
 msgstr ""
 
-#: guix/scripts/gc.scm:61
+#: guix/scripts/gc.scm:65
 msgid ""
 "\n"
 "      --list-dead        list dead paths"
 msgstr ""
 
-#: guix/scripts/gc.scm:63
+#: guix/scripts/gc.scm:67
 msgid ""
 "\n"
 "      --list-live        list live paths"
 msgstr ""
 
-#: guix/scripts/gc.scm:66
+#: guix/scripts/gc.scm:70
 msgid ""
 "\n"
 "      --references       list the references of PATHS"
 msgstr ""
 
-#: guix/scripts/gc.scm:68
+#: guix/scripts/gc.scm:72
 msgid ""
 "\n"
 "  -R, --requisites       list the requisites of PATHS"
 msgstr ""
 
-#: guix/scripts/gc.scm:70
+#: guix/scripts/gc.scm:74
 msgid ""
 "\n"
 "      --referrers        list the referrers of PATHS"
 msgstr ""
 
-#: guix/scripts/gc.scm:72
+#: guix/scripts/gc.scm:76
 msgid ""
 "\n"
 "      --derivers         list the derivers of PATHS"
 msgstr ""
 
-#: guix/scripts/gc.scm:75
+#: guix/scripts/gc.scm:79
 msgid ""
 "\n"
 "      --verify[=OPTS]    verify the integrity of the store; OPTS is a\n"
@@ -1923,111 +2642,209 @@ msgid ""
 "                         'contents'"
 msgstr ""
 
-#: guix/scripts/gc.scm:79
+#: guix/scripts/gc.scm:83
 msgid ""
 "\n"
 "      --list-failures    list cached build failures"
 msgstr ""
 
-#: guix/scripts/gc.scm:81
+#: guix/scripts/gc.scm:85
 msgid ""
 "\n"
 "      --clear-failures   remove PATHS from the set of cached failures"
 msgstr ""
 
-#: guix/scripts/gc.scm:95
+#: guix/scripts/gc.scm:99
 #, scheme-format
 msgid "~a: invalid '--verify' option~%"
 msgstr ""
 
-#: guix/scripts/gc.scm:135
+#: guix/scripts/gc.scm:142
 #, scheme-format
 msgid "invalid amount of storage: ~a~%"
 msgstr ""
 
-#: guix/scripts/gc.scm:149
+#: guix/scripts/gc.scm:156
 #, scheme-format
 msgid "'-d' as an alias for '--delete' is deprecated; use '-D'~%"
 msgstr "”-d” som ett alias för ”--delete” är föråldrat; använd ”-D”~%"
 
-#: guix/scripts/gc.scm:156
+#: guix/scripts/gc.scm:163
 #, scheme-format
 msgid "~s does not denote a duration~%"
 msgstr ""
 
-#: guix/scripts/gc.scm:239
+#: guix/scripts/gc.scm:251
 msgid "already ~h MiBs available on ~a, nothing to do~%"
 msgstr ""
 
-#: guix/scripts/gc.scm:242
+#: guix/scripts/gc.scm:254
 msgid "freeing ~h MiBs~%"
 msgstr ""
 
-#: guix/scripts/gc.scm:275
+#: guix/scripts/gc.scm:293
 #, scheme-format
 msgid "extraneous arguments: ~{~a ~}~%"
 msgstr ""
 
-#: guix/scripts/gc.scm:299 guix/scripts/gc.scm:302
+#: guix/scripts/gc.scm:317 guix/scripts/gc.scm:320
 msgid "freed ~h MiBs~%"
 msgstr ""
 
-#: guix/scripts/hash.scm:48
+#: guix/scripts/git.scm:26
+#, fuzzy
+#| msgid ""
+#| "Usage: guix COMMAND ARGS...\n"
+#| "Run COMMAND with ARGS.\n"
+msgid ""
+"Usage: guix git COMMAND ARGS...\n"
+"Operate on Git repositories.\n"
+msgstr ""
+"Användning: guix KOMMANDO ARGUMENT…\n"
+"Kör KOMMANDO med ARGUMENT.\n"
+
+#: guix/scripts/git.scm:29 guix/scripts/system.scm:918
+#: guix/scripts/container.scm:30
+msgid "The valid values for ACTION are:\n"
+msgstr ""
+
+#: guix/scripts/git.scm:31
+msgid "   authenticate    verify commit signatures and authorizations\n"
+msgstr ""
+
+#: guix/scripts/git.scm:57
+#, fuzzy, scheme-format
+#| msgid "guix: missing command name~%"
+msgid "guix git: missing sub-command~%"
+msgstr "guix: saknar kommandonamn~%"
+
+#: guix/scripts/git.scm:67
+#, fuzzy, scheme-format
+#| msgid "guix container: invalid action~%"
+msgid "guix git: invalid sub-command~%"
+msgstr "guix container: ogiltig åtgärd~%"
+
+#: guix/scripts/git/authenticate.scm:81
+#, scheme-format
+msgid "Signing statistics:~%"
+msgstr ""
+
+#: guix/scripts/git/authenticate.scm:94
+msgid ""
+"Usage: guix git authenticate COMMIT SIGNER [OPTIONS...]\n"
+"Authenticate the given Git checkout using COMMIT/SIGNER as its introduction.\n"
+msgstr ""
+
+#: guix/scripts/git/authenticate.scm:96
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "      --with-git-url=PACKAGE=URL\n"
+#| "                         build PACKAGE from the repository at URL"
+msgid ""
+"\n"
+"  -r, --repository=DIRECTORY\n"
+"                         open the Git repository at DIRECTORY"
+msgstr ""
+"\n"
+"      --with-git-url=PAKET=URL\n"
+"                         bygg PAKET från arkivet vid URL"
+
+#: guix/scripts/git/authenticate.scm:99
+msgid ""
+"\n"
+"  -k, --keyring=REFERENCE\n"
+"                         load keyring from REFERENCE, a Git branch"
+msgstr ""
+
+#: guix/scripts/git/authenticate.scm:102
+msgid ""
+"\n"
+"      --stats            display commit signing statistics upon completion"
+msgstr ""
+
+#: guix/scripts/git/authenticate.scm:104
+msgid ""
+"\n"
+"      --cache-key=KEY    cache authenticated commits under KEY"
+msgstr ""
+
+#: guix/scripts/git/authenticate.scm:106
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "  -l, --list-generations[=PATTERN]\n"
+#| "                         list generations matching PATTERN"
+msgid ""
+"\n"
+"      --historical-authorizations=FILE\n"
+"                         read historical authorizations from FILE"
+msgstr ""
+"\n"
+"  -l, --list-generations[=MÖNSTER]\n"
+"                         lista generationer som matchar MÖNSTER"
+
+#: guix/scripts/git/authenticate.scm:138
+msgid "Authenticating commits ~a to ~a (~h new commits)...~%"
+msgstr ""
+
+#: guix/scripts/git/authenticate.scm:178
+#, scheme-format
+msgid "wrong number of arguments; expected COMMIT and SIGNER~%"
+msgstr ""
+
+#: guix/scripts/hash.scm:50
 msgid ""
 "Usage: guix hash [OPTION] FILE\n"
 "Return the cryptographic hash of FILE.\n"
-"\n"
-"Supported formats: 'nix-base32' (default), 'base32', and 'base16' ('hex'\n"
-"and 'hexadecimal' can be used as well).\n"
 msgstr ""
 
-#: guix/scripts/hash.scm:53
+#: guix/scripts/hash.scm:56
 msgid ""
 "\n"
 "  -x, --exclude-vcs      exclude version control directories"
 msgstr ""
 
-#: guix/scripts/hash.scm:57
+#: guix/scripts/hash.scm:62
 msgid ""
 "\n"
 "  -r, --recursive        compute the hash on FILE recursively"
 msgstr ""
 
-#: guix/scripts/hash.scm:151 guix/ui.scm:445 guix/ui.scm:452 guix/ui.scm:477
-#: guix/ui.scm:787 guix/ui.scm:809 guix/ui.scm:815 guix/ui.scm:821
-#: guix/ui.scm:874
+#: guix/scripts/hash.scm:171 guix/ui.scm:397 guix/ui.scm:428 guix/ui.scm:785
+#: guix/ui.scm:833 guix/ui.scm:889
 #, scheme-format
 msgid "~a~%"
 msgstr ""
 
-#: guix/scripts/hash.scm:154 guix/scripts/system.scm:1213
-#: guix/scripts/system.scm:1223 guix/scripts/system.scm:1230
-#: guix/scripts/system.scm:1237
+#: guix/scripts/hash.scm:174 guix/scripts/system.scm:1244
+#: guix/scripts/system.scm:1260 guix/scripts/system.scm:1267
+#: guix/scripts/system.scm:1273
 #, scheme-format
 msgid "wrong number of arguments~%"
 msgstr ""
 
-#: guix/scripts/import.scm:87
+#: guix/scripts/import.scm:89
 msgid ""
 "Usage: guix import IMPORTER ARGS ...\n"
 "Run IMPORTER with ARGS.\n"
 msgstr ""
 
-#: guix/scripts/import.scm:90
+#: guix/scripts/import.scm:92
 msgid "IMPORTER must be one of the importers listed below:\n"
 msgstr ""
 
-#: guix/scripts/import.scm:104
+#: guix/scripts/import.scm:109
 #, scheme-format
 msgid "guix import: missing importer name~%"
 msgstr ""
 
-#: guix/scripts/import.scm:124
+#: guix/scripts/import.scm:130
 #, scheme-format
 msgid "'~a' import failed~%"
 msgstr ""
 
-#: guix/scripts/import.scm:125
+#: guix/scripts/import.scm:131
 #, scheme-format
 msgid "~a: invalid importer~%"
 msgstr ""
@@ -2050,313 +2867,323 @@ msgid ""
 "  -r, --recursive        import packages recursively"
 msgstr ""
 
-#: guix/scripts/import/cran.scm:112
+#: guix/scripts/import/cran.scm:106
 #, scheme-format
 msgid "failed to download description for package '~a'~%"
 msgstr ""
 
-#: guix/scripts/import/cran.scm:116 guix/scripts/import/elpa.scm:113
+#: guix/scripts/import/cran.scm:110 guix/scripts/import/elpa.scm:110
 #, scheme-format
 msgid "too few arguments~%"
 msgstr ""
 
-#: guix/scripts/import/cran.scm:118 guix/scripts/import/elpa.scm:115
+#: guix/scripts/import/cran.scm:112 guix/scripts/import/elpa.scm:112
 #, scheme-format
 msgid "too many arguments~%"
 msgstr ""
 
-#: guix/scripts/import/elpa.scm:44
+#: guix/scripts/import/elpa.scm:43
 msgid ""
 "Usage: guix import elpa PACKAGE-NAME\n"
 "Import the latest package named PACKAGE-NAME from an ELPA repository.\n"
 msgstr ""
 
-#: guix/scripts/import/elpa.scm:46
+#: guix/scripts/import/elpa.scm:45
 msgid ""
 "\n"
 "  -a, --archive=ARCHIVE          specify the archive repository"
 msgstr ""
 
-#: guix/scripts/import/elpa.scm:48
+#: guix/scripts/import/elpa.scm:47
 msgid ""
 "\n"
 "  -h, --help                     display this help and exit"
 msgstr ""
 
-#: guix/scripts/import/elpa.scm:50
+#: guix/scripts/import/elpa.scm:49
 msgid ""
 "\n"
 "  -r, --recursive                generate package expressions for all Emacs packages that are not yet in Guix"
 msgstr ""
 
-#: guix/scripts/import/elpa.scm:52
+#: guix/scripts/import/elpa.scm:51
 msgid ""
 "\n"
 "  -V, --version                  display version information and exit"
 msgstr ""
 
-#: guix/scripts/import/elpa.scm:110
+#: guix/scripts/import/elpa.scm:107
 #, scheme-format
 msgid "failed to download package '~a'~%"
 msgstr ""
 
-#: guix/scripts/pull.scm:76
+#: guix/scripts/pull.scm:88
 msgid ""
 "Usage: guix pull [OPTION]...\n"
 "Download and deploy the latest version of Guix.\n"
 msgstr ""
 
-#: guix/scripts/pull.scm:78
-msgid ""
-"\n"
-"      --verbose          produce verbose output"
-msgstr ""
-
-#: guix/scripts/pull.scm:80
+#: guix/scripts/pull.scm:90
 msgid ""
 "\n"
 "  -C, --channels=FILE    deploy the channels defined in FILE"
 msgstr ""
 
-#: guix/scripts/pull.scm:82
+#: guix/scripts/pull.scm:92
 msgid ""
 "\n"
 "      --url=URL          download from the Git repository at URL"
 msgstr ""
 
-#: guix/scripts/pull.scm:84
+#: guix/scripts/pull.scm:94
 msgid ""
 "\n"
 "      --commit=COMMIT    download the specified COMMIT"
 msgstr ""
 
-#: guix/scripts/pull.scm:86
+#: guix/scripts/pull.scm:96
 msgid ""
 "\n"
 "      --branch=BRANCH    download the tip of the specified BRANCH"
 msgstr ""
 
-#: guix/scripts/pull.scm:88
+#: guix/scripts/pull.scm:98
+msgid ""
+"\n"
+"      --allow-downgrades allow downgrades to earlier channel revisions"
+msgstr ""
+
+#: guix/scripts/pull.scm:100
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "      --search-paths[=KIND]\n"
+#| "                         display needed environment variable definitions"
+msgid ""
+"\n"
+"      --disable-authentication\n"
+"                         disable channel authentication"
+msgstr ""
+"\n"
+"      --search-paths[=TYP]\n"
+"                         visa miljövariabeldefinitioner som behövs"
+
+#: guix/scripts/pull.scm:103
 msgid ""
 "\n"
 "  -N, --news             display news compared to the previous generation"
 msgstr ""
 
-#: guix/scripts/pull.scm:93
+#: guix/scripts/pull.scm:116
 #, scheme-format
 msgid ""
 "\n"
 "  -p, --profile=PROFILE  use PROFILE instead of ~/.config/guix/current"
 msgstr ""
 
-#: guix/scripts/pull.scm:99
+#: guix/scripts/pull.scm:122
 msgid ""
 "\n"
 "      --bootstrap        use the bootstrap Guile to build the new Guix"
 msgstr ""
 
-#: guix/scripts/pull.scm:196
+#: guix/scripts/pull.scm:211
+#, fuzzy, scheme-format
+#| msgid "Updating channel '~a' from Git repository at '~a'...~%"
+msgid "rolling back channel '~a' from ~a to ~a~%"
+msgstr "Uppdaterar kanal ”~a” från ett Git-arkiv vid ”~a”…~%"
+
+#: guix/scripts/pull.scm:214
+#, fuzzy, scheme-format
+#| msgid "Updating channel '~a' from Git repository at '~a'...~%"
+msgid "moving channel '~a' from ~a to unrelated commit ~a~%"
+msgstr "Uppdaterar kanal ”~a” från ett Git-arkiv vid ”~a”…~%"
+
+#: guix/scripts/pull.scm:243
 msgid "New in this revision:\n"
 msgstr ""
 
-#: guix/scripts/pull.scm:225
-#, scheme-format
-msgid ""
-"After setting @code{PATH}, run\n"
-"@command{hash guix} to make sure your shell refers to @file{~a}."
-msgstr ""
+#. TRANSLATORS: This describes a "channel"; the first placeholder is
+#. the channel name (e.g., "guix") and the second placeholder is its
+#. URL.
+#: guix/scripts/pull.scm:252
+#, fuzzy, scheme-format
+#| msgid "~a: ~a~%"
+msgid "    ~a at ~a~%"
+msgstr "~a: ~a~%"
 
-#: guix/scripts/pull.scm:250
+#: guix/scripts/pull.scm:290
 #, scheme-format
-msgid "Git error ~a~%"
+msgid "    commit ~a~%"
 msgstr ""
 
-#: guix/scripts/pull.scm:252 guix/git.scm:306
+#: guix/scripts/pull.scm:327
 #, scheme-format
-msgid "Git error: ~a~%"
+msgid "News for channel '~a'~%"
 msgstr ""
 
-#: guix/scripts/pull.scm:277
+#: guix/scripts/pull.scm:353
 #, scheme-format
-msgid "Migrating profile generations to '~a'...~%"
-msgstr ""
+msgid "  ~a new channel:~%"
+msgid_plural "  ~a new channels:~%"
+msgstr[0] ""
+msgstr[1] ""
 
-#: guix/scripts/pull.scm:312
+#: guix/scripts/pull.scm:363
 #, scheme-format
-msgid "while creating symlink '~a': ~a~%"
+msgid "  ~a channel removed:~%"
+msgid_plural "  ~a channels removed:~%"
+msgstr[0] ""
+msgstr[1] ""
+
+#: guix/scripts/pull.scm:439
+msgid "Run @command{guix pull --news} to read all the news."
 msgstr ""
 
-#: guix/scripts/pull.scm:334
+#: guix/scripts/pull.scm:447
 #, scheme-format
-msgid "    repository URL: ~a~%"
+msgid ""
+"After setting @code{PATH}, run\n"
+"@command{hash guix} to make sure your shell refers to @file{~a}."
 msgstr ""
 
-#: guix/scripts/pull.scm:336
+#: guix/scripts/pull.scm:482
 #, scheme-format
-msgid "    branch: ~a~%"
+msgid "Migrating profile generations to '~a'...~%"
 msgstr ""
 
-#: guix/scripts/pull.scm:337
+#: guix/scripts/pull.scm:525
 #, scheme-format
-msgid "    commit: ~a~%"
+msgid "while creating symlink '~a': ~a~%"
 msgstr ""
 
-#: guix/scripts/pull.scm:439
+#: guix/scripts/pull.scm:614
 msgid "  ~h new package: ~a~%"
 msgid_plural "  ~h new packages: ~a~%"
 msgstr[0] ""
 msgstr[1] ""
 
-#: guix/scripts/pull.scm:447
+#: guix/scripts/pull.scm:622
 msgid "  ~h package upgraded: ~a~%"
 msgid_plural "  ~h packages upgraded: ~a~%"
 msgstr[0] ""
 msgstr[1] ""
 
-#: guix/scripts/pull.scm:456
-msgid ""
-"Run @command{guix pull --news} to view the complete\n"
-"list of package changes."
-msgstr ""
-
-#: guix/scripts/pull.scm:520
+#: guix/scripts/pull.scm:711
 #, scheme-format
 msgid "'~a' did not return a list of channels~%"
 msgstr ""
 
-#: guix/scripts/pull.scm:534
+#: guix/scripts/pull.scm:727
 #, scheme-format
 msgid ""
 "The 'GUIX_PULL_URL' environment variable is deprecated.\n"
 "Use '~/.config/guix/channels.scm' instead."
 msgstr ""
 
-#: guix/scripts/pull.scm:583
+#: guix/scripts/pull.scm:795
 #, scheme-format
 msgid "Building from this channel:~%"
 msgid_plural "Building from these channels:~%"
 msgstr[0] ""
 msgstr[1] ""
 
-#: guix/scripts/substitute.scm:126
+#: guix/scripts/substitute.scm:117
 #, scheme-format
 msgid "authentication and authorization of substitutes disabled!~%"
 msgstr ""
 
-#: guix/scripts/substitute.scm:201
+#: guix/scripts/substitute.scm:203
 #, scheme-format
 msgid "download from '~a' failed: ~a, ~s~%"
 msgstr ""
 
-#: guix/scripts/substitute.scm:214
+#: guix/scripts/substitute.scm:216
 #, scheme-format
 msgid "while fetching ~a: server is somewhat slow~%"
 msgstr ""
 
-#: guix/scripts/substitute.scm:216
+#: guix/scripts/substitute.scm:218
 #, scheme-format
 msgid "try `--no-substitutes' if the problem persists~%"
 msgstr ""
 
-#: guix/scripts/substitute.scm:226
+#: guix/scripts/substitute.scm:228
 #, scheme-format
 msgid "unsupported substitute URI scheme: ~a~%"
 msgstr ""
 
-#: guix/scripts/substitute.scm:261
-#, scheme-format
-msgid "while fetching '~a': ~a (~s)~%"
-msgstr ""
-
-#: guix/scripts/substitute.scm:266
-#, scheme-format
-msgid "ignoring substitute server at '~s'~%"
-msgstr ""
-
-#: guix/scripts/substitute.scm:316
+#: guix/scripts/substitute.scm:267
 #, scheme-format
 msgid "signature version must be a number: ~s~%"
 msgstr ""
 
-#: guix/scripts/substitute.scm:320
+#: guix/scripts/substitute.scm:271
 #, scheme-format
 msgid "unsupported signature version: ~a~%"
 msgstr ""
 
-#: guix/scripts/substitute.scm:328
+#: guix/scripts/substitute.scm:279
 #, scheme-format
 msgid "signature is not a valid s-expression: ~s~%"
 msgstr ""
 
-#: guix/scripts/substitute.scm:332
+#: guix/scripts/substitute.scm:283
 #, scheme-format
 msgid "invalid format of the signature field: ~a~%"
 msgstr ""
 
-#: guix/scripts/substitute.scm:367
-#, scheme-format
-msgid "invalid signature for '~a'~%"
-msgstr ""
-
-#: guix/scripts/substitute.scm:369
+#: guix/scripts/substitute.scm:411
 #, scheme-format
-msgid "hash mismatch for '~a'~%"
-msgstr ""
-
-#: guix/scripts/substitute.scm:371
-#, scheme-format
-msgid "'~a' is signed with an unauthorized key~%"
+msgid "'~a' does not name a store item~%"
 msgstr ""
 
-#: guix/scripts/substitute.scm:373
-#, scheme-format
-msgid "signature on '~a' is corrupt~%"
-msgstr ""
+#: guix/scripts/substitute.scm:598
+#, fuzzy, scheme-format
+#| msgid "~a: patch not found"
+msgid "~a: host not found: ~a~%"
+msgstr "~a: programfix hittades inte"
 
-#: guix/scripts/substitute.scm:467
-#, scheme-format
-msgid "'~a' does not name a store item~%"
-msgstr ""
+#: guix/scripts/substitute.scm:604
+#, fuzzy, scheme-format
+#| msgid "~a: download failed~%"
+msgid "~a: connection failed: ~a~%"
+msgstr "~a: hämtning misslyckades~%"
 
-#: guix/scripts/substitute.scm:629
+#: guix/scripts/substitute.scm:620
 #, scheme-format
 msgid "updating substitutes from '~a'... ~5,1f%"
 msgstr ""
 
-#: guix/scripts/substitute.scm:693
+#: guix/scripts/substitute.scm:691
 #, scheme-format
 msgid "~s: unsupported server URI scheme~%"
 msgstr ""
 
-#: guix/scripts/substitute.scm:703
-#, scheme-format
-msgid "'~a' uses different store '~a'; ignoring it~%"
-msgstr ""
-
-#: guix/scripts/substitute.scm:872
+#: guix/scripts/substitute.scm:831
 #, scheme-format
 msgid "host name lookup error: ~a~%"
 msgstr ""
 
-#: guix/scripts/substitute.scm:877
+#: guix/scripts/substitute.scm:836
 #, scheme-format
 msgid "TLS error in procedure '~a': ~a~%"
 msgstr ""
 
-#: guix/scripts/substitute.scm:888
+#: guix/scripts/substitute.scm:847
 msgid ""
 "Usage: guix substitute [OPTION]...\n"
 "Internal tool to substitute a pre-built binary to a local build.\n"
 msgstr ""
 
-#: guix/scripts/substitute.scm:890
+#: guix/scripts/substitute.scm:849
 msgid ""
 "\n"
 "      --query            report on the availability of substitutes for the\n"
 "                         store file names passed on the standard input"
 msgstr ""
 
-#: guix/scripts/substitute.scm:893
+#: guix/scripts/substitute.scm:852
 msgid ""
 "\n"
 "      --substitute STORE-FILE DESTINATION\n"
@@ -2364,172 +3191,186 @@ msgid ""
 "                         DESTINATION"
 msgstr ""
 
-#: guix/scripts/substitute.scm:958
+#: guix/scripts/substitute.scm:973
 #, scheme-format
 msgid "no valid substitute for '~a'~%"
 msgstr ""
 
-#: guix/scripts/substitute.scm:966
+#: guix/scripts/substitute.scm:983
 #, scheme-format
 msgid "Downloading ~a...~%"
 msgstr ""
 
-#: guix/scripts/substitute.scm:1028
+#: guix/scripts/substitute.scm:1043
 msgid "ACL for archive imports seems to be uninitialized, substitutes may be unavailable\n"
 msgstr ""
 
-#: guix/scripts/substitute.scm:1082
+#: guix/scripts/substitute.scm:1097
 #, scheme-format
 msgid "~a: invalid URI~%"
 msgstr ""
 
-#: guix/scripts/substitute.scm:1153
+#: guix/scripts/substitute.scm:1171
 #, scheme-format
 msgid "~a: unrecognized options~%"
 msgstr ""
 
-#: guix/scripts/authenticate.scm:59
-#, scheme-format
-msgid "cannot find public key for secret key '~a'~%"
-msgstr ""
+#: guix/scripts/authenticate.scm:64
+#, fuzzy, scheme-format
+#| msgid "failed to load '~a': ~a~%"
+msgid "failed to load key pair at '~a': ~a~%"
+msgstr "misslyckades med att läsa in ”~a”: ~a~%"
 
-#: guix/scripts/authenticate.scm:79
-#, scheme-format
-msgid "error: invalid signature: ~a~%"
-msgstr ""
+#: guix/scripts/authenticate.scm:86
+#, fuzzy, scheme-format
+#| msgid "invalid signature"
+msgid "invalid signature: ~a"
+msgstr "ogiltig signatur"
 
-#: guix/scripts/authenticate.scm:81
-#, scheme-format
-msgid "error: unauthorized public key: ~a~%"
-msgstr ""
+#: guix/scripts/authenticate.scm:89
+#, fuzzy, scheme-format
+#| msgid "unauthorized public key"
+msgid "unauthorized public key: ~a"
+msgstr "icke auktoriserad publik nyckel"
 
-#: guix/scripts/authenticate.scm:83
-#, scheme-format
-msgid "error: corrupt signature data: ~a~%"
-msgstr ""
+#: guix/scripts/authenticate.scm:92
+#, fuzzy, scheme-format
+#| msgid "corrupt signature data"
+msgid "corrupt signature data: ~a"
+msgstr "korrupt signaturdata"
 
-#: guix/scripts/authenticate.scm:121
+#: guix/scripts/authenticate.scm:184
 msgid ""
 "Usage: guix authenticate OPTION...\n"
-"Sign or verify the signature on the given file.  This tool is meant to\n"
-"be used internally by 'guix-daemon'.\n"
+"Sign data or verify signatures.  This tool is meant to be used internally by\n"
+"'guix-daemon'.\n"
 msgstr ""
 
-#: guix/scripts/authenticate.scm:127
-msgid "wrong arguments"
-msgstr ""
+#: guix/scripts/authenticate.scm:218
+#, fuzzy, scheme-format
+#| msgid "~s: invalid G-expression input~%"
+msgid "~s: invalid command; ignoring~%"
+msgstr "~s: ogiltig inmatning för G-uttryck~%"
 
-#: guix/scripts/system.scm:150
+#: guix/scripts/authenticate.scm:223
+#, fuzzy, scheme-format
+#| msgid "~A: extraneous argument~%"
+msgid "wrong arguments~%"
+msgstr "~A: främmande argument~%"
+
+#: guix/scripts/system.scm:161
 #, scheme-format
 msgid "failed to register '~a' under '~a'~%"
 msgstr ""
 
-#: guix/scripts/system.scm:165
+#: guix/scripts/system.scm:176
 #, scheme-format
 msgid "copying to '~a'..."
 msgstr ""
 
-#: guix/scripts/system.scm:206
+#: guix/scripts/system.scm:203
 #, scheme-format
-msgid "failed to install bootloader ~a~%"
+msgid "initializing the current root file system~%"
 msgstr ""
 
-#: guix/scripts/system.scm:226
+#: guix/scripts/system.scm:217
 #, scheme-format
-msgid "initializing the current root file system~%"
+msgid "not running as 'root', so the ownership of '~a' may be incorrect!~%"
 msgstr ""
 
-#: guix/scripts/system.scm:240
+#: guix/scripts/system.scm:247 guix/scripts/system.scm:740
+#: guix/scripts/system.scm:848
 #, scheme-format
-msgid "not running as 'root', so the ownership of '~a' may be incorrect!~%"
+msgid "bootloader successfully installed on '~a'~%"
 msgstr ""
 
-#: guix/scripts/system.scm:292
+#: guix/scripts/system.scm:270
 #, scheme-format
 msgid "while talking to shepherd: ~a~%"
 msgstr ""
 
-#: guix/scripts/system.scm:299
+#: guix/scripts/system.scm:278
 #, scheme-format
 msgid "service '~a' could not be found~%"
 msgstr ""
 
-#: guix/scripts/system.scm:302
+#: guix/scripts/system.scm:281
 #, scheme-format
 msgid "service '~a' does not have an action '~a'~%"
 msgstr ""
 
-#: guix/scripts/system.scm:306
+#: guix/scripts/system.scm:285
 #, scheme-format
 msgid "exception caught while executing '~a' on service '~a':~%"
 msgstr ""
 
-#: guix/scripts/system.scm:314
+#: guix/scripts/system.scm:293
 #, scheme-format
 msgid "something went wrong: ~s~%"
 msgstr ""
 
-#: guix/scripts/system.scm:317
+#: guix/scripts/system.scm:296
 #, scheme-format
 msgid "shepherd error~%"
 msgstr ""
 
-#: guix/scripts/system.scm:334
+#: guix/scripts/system.scm:300
 #, scheme-format
-msgid "failed to obtain list of shepherd services~%"
+msgid "some services could not be upgraded~%"
 msgstr ""
 
-#: guix/scripts/system.scm:354
-#, scheme-format
-msgid "unloading service '~a'...~%"
+#: guix/scripts/system.scm:301
+msgid ""
+"To allow changes to all the system services to take\n"
+"effect, you will need to reboot."
 msgstr ""
 
-#: guix/scripts/system.scm:363
+#: guix/scripts/system.scm:364
 #, scheme-format
-msgid "loading new services:~{ ~a~}...~%"
+msgid "cannot switch to system generation '~a'~%"
 msgstr ""
 
-#: guix/scripts/system.scm:368
-msgid ""
-"To complete the upgrade, run 'herd restart SERVICE' to stop,\n"
-"upgrade, and restart each service that was not automatically restarted.\n"
+#: guix/scripts/system.scm:435
+msgid "the DAG of services"
 msgstr ""
 
-#: guix/scripts/system.scm:395
-#, scheme-format
-msgid "activating system...~%"
+#: guix/scripts/system.scm:448
+msgid "the dependency graph of shepherd services"
 msgstr ""
 
-#: guix/scripts/system.scm:473
-#, scheme-format
-msgid "cannot switch to system generation '~a'~%"
-msgstr ""
+#: guix/scripts/system.scm:463
+#, fuzzy, scheme-format
+#| msgid "Package not found in opam repository: ~a~%"
+msgid "      repository URL: ~a~%"
+msgstr "Paket hittades inte i opam-arkiv: ~a~%"
 
-#: guix/scripts/system.scm:546
-msgid "the DAG of services"
+#: guix/scripts/system.scm:465
+#, scheme-format
+msgid "      branch: ~a~%"
 msgstr ""
 
-#: guix/scripts/system.scm:559
-msgid "the dependency graph of shepherd services"
+#: guix/scripts/system.scm:466
+#, scheme-format
+msgid "      commit: ~a~%"
 msgstr ""
 
-#: guix/scripts/system.scm:583
+#: guix/scripts/system.scm:486
 #, scheme-format
 msgid "  file name: ~a~%"
 msgstr ""
 
-#: guix/scripts/system.scm:584
+#: guix/scripts/system.scm:487
 #, scheme-format
 msgid "  canonical file name: ~a~%"
 msgstr ""
 
 #. TRANSLATORS: Please preserve the two-space indentation.
-#: guix/scripts/system.scm:586
+#: guix/scripts/system.scm:489
 #, scheme-format
 msgid "  label: ~a~%"
 msgstr ""
 
-#: guix/scripts/system.scm:587
+#: guix/scripts/system.scm:490
 #, scheme-format
 msgid "  bootloader: ~a~%"
 msgstr ""
@@ -2542,143 +3383,184 @@ msgstr ""
 #. root device: label: "my-root"
 #. or just:
 #. root device: /dev/sda3
-#: guix/scripts/system.scm:597
+#: guix/scripts/system.scm:500
 #, scheme-format
 msgid "  root device: ~[UUID: ~a~;label: ~s~;~a~]~%"
 msgstr ""
 
-#: guix/scripts/system.scm:608
+#: guix/scripts/system.scm:506
 #, scheme-format
 msgid "  kernel: ~a~%"
 msgstr ""
 
-#: guix/scripts/system.scm:679
+#: guix/scripts/system.scm:511
 #, scheme-format
-msgid "~a: error: device '~a' not found: ~a~%"
+msgid "  multiboot: ~a~%"
 msgstr ""
 
-#: guix/scripts/system.scm:683
+#. TRANSLATORS: Here "channel" is the same terminology as used in
+#. "guix describe" and "guix pull --channels".
+#: guix/scripts/system.scm:517
+#, scheme-format
+msgid "  channels:~%"
+msgstr ""
+
+#: guix/scripts/system.scm:520
+#, fuzzy, scheme-format
+#| msgid "Configuration file"
+msgid "  configuration file: ~a~%"
+msgstr "Konfigurationsfil"
+
+#: guix/scripts/system.scm:593
+#, fuzzy, scheme-format
+#| msgid "service of type '~a' not found"
+msgid "device '~a' not found: ~a~%"
+msgstr "tjänst av typ ”~a” hittades inte"
+
+#: guix/scripts/system.scm:596
 #, scheme-format
 msgid ""
 "If '~a' is a file system\n"
 "label, write @code{(file-system-label ~s)} in your @code{device} field."
 msgstr ""
 
-#: guix/scripts/system.scm:691
+#: guix/scripts/system.scm:605
+#, fuzzy, scheme-format
+#| msgid "service of type '~a' not found"
+msgid "file system with label '~a' not found~%"
+msgstr "tjänst av typ ”~a” hittades inte"
+
+#: guix/scripts/system.scm:611
 #, scheme-format
-msgid "~a: error: file system with label '~a' not found~%"
+msgid "file system with UUID '~a' not found~%"
 msgstr ""
 
-#: guix/scripts/system.scm:696
+#: guix/scripts/system.scm:718
 #, scheme-format
-msgid "~a: error: file system with UUID '~a' not found~%"
+msgid "Consider running 'guix pull' before 'reconfigure'.~%"
 msgstr ""
 
-#: guix/scripts/system.scm:797
+#: guix/scripts/system.scm:719
 #, scheme-format
-msgid "~a not found: 'guix pull' was never run~%"
+msgid "Failing to do that may downgrade your system!~%"
 msgstr ""
 
-#: guix/scripts/system.scm:798
+#: guix/scripts/system.scm:841
 #, scheme-format
-msgid "Consider running 'guix pull' before 'reconfigure'.~%"
+msgid "activating system...~%"
 msgstr ""
 
-#: guix/scripts/system.scm:799
-#, scheme-format
-msgid "Failing to do that may downgrade your system!~%"
+#: guix/scripts/system.scm:852
+msgid ""
+"To complete the upgrade, run 'herd restart SERVICE' to stop,\n"
+"upgrade, and restart each service that was not automatically restarted.\n"
 msgstr ""
 
-#: guix/scripts/system.scm:920
+#: guix/scripts/system.scm:855
+msgid "Run 'herd status' to view the list of services on your system.\n"
+msgstr ""
+
+#: guix/scripts/system.scm:859
 #, scheme-format
 msgid "initializing operating system under '~a'...~%"
 msgstr ""
 
-#: guix/scripts/system.scm:965
+#: guix/scripts/system.scm:904
+msgid "The available image types are:\n"
+msgstr ""
+
+#: guix/scripts/system.scm:914
 msgid ""
 "Usage: guix system [OPTION ...] ACTION [ARG ...] [FILE]\n"
 "Build the operating system declared in FILE according to ACTION.\n"
 "Some ACTIONS support additional ARGS.\n"
 msgstr ""
 
-#: guix/scripts/system.scm:969 guix/scripts/container.scm:29
-msgid "The valid values for ACTION are:\n"
-msgstr ""
-
-#: guix/scripts/system.scm:971
+#: guix/scripts/system.scm:920
 msgid "   search           search for existing service types\n"
 msgstr ""
 
-#: guix/scripts/system.scm:973
+#: guix/scripts/system.scm:922
 msgid "   reconfigure      switch to a new operating system configuration\n"
 msgstr ""
 
-#: guix/scripts/system.scm:975
+#: guix/scripts/system.scm:924
 msgid "   roll-back        switch to the previous operating system configuration\n"
 msgstr ""
 
-#: guix/scripts/system.scm:977
+#: guix/scripts/system.scm:926
+msgid "   describe         describe the current system\n"
+msgstr ""
+
+#: guix/scripts/system.scm:928
 msgid "   list-generations list the system generations\n"
 msgstr ""
 
-#: guix/scripts/system.scm:979
+#: guix/scripts/system.scm:930
 msgid "   switch-generation switch to an existing operating system configuration\n"
 msgstr ""
 
-#: guix/scripts/system.scm:981
+#: guix/scripts/system.scm:932
 msgid "   delete-generations delete old system generations\n"
 msgstr ""
 
-#: guix/scripts/system.scm:983
+#: guix/scripts/system.scm:934
 msgid "   build            build the operating system without installing anything\n"
 msgstr ""
 
-#: guix/scripts/system.scm:985
+#: guix/scripts/system.scm:936
 msgid "   container        build a container that shares the host's store\n"
 msgstr ""
 
-#: guix/scripts/system.scm:987
+#: guix/scripts/system.scm:938
 msgid "   vm               build a virtual machine image that shares the host's store\n"
 msgstr ""
 
-#: guix/scripts/system.scm:989
+#: guix/scripts/system.scm:940
 msgid "   vm-image         build a freestanding virtual machine image\n"
 msgstr ""
 
-#: guix/scripts/system.scm:991
+#: guix/scripts/system.scm:942
 msgid "   disk-image       build a disk image, suitable for a USB stick\n"
 msgstr ""
 
-#: guix/scripts/system.scm:993
+#: guix/scripts/system.scm:944
 msgid "   docker-image     build a Docker image\n"
 msgstr ""
 
-#: guix/scripts/system.scm:995
+#: guix/scripts/system.scm:946
 msgid "   init             initialize a root file system to run GNU\n"
 msgstr ""
 
-#: guix/scripts/system.scm:997
+#: guix/scripts/system.scm:948
 msgid "   extension-graph  emit the service extension graph in Dot format\n"
 msgstr ""
 
-#: guix/scripts/system.scm:999
+#: guix/scripts/system.scm:950
 msgid "   shepherd-graph   emit the graph of shepherd services in Dot format\n"
 msgstr ""
 
-#: guix/scripts/system.scm:1003
+#: guix/scripts/system.scm:954
 msgid ""
 "\n"
 "  -d, --derivation       return the derivation of the given system"
 msgstr ""
 
-#: guix/scripts/system.scm:1005
+#: guix/scripts/system.scm:956
 msgid ""
 "\n"
 "  -e, --expression=EXPR  consider the operating-system EXPR evaluates to\n"
 "                         instead of reading FILE, when applicable"
 msgstr ""
 
-#: guix/scripts/system.scm:1008
+#: guix/scripts/system.scm:959
+msgid ""
+"\n"
+"      --allow-downgrades for 'reconfigure', allow downgrades to earlier\n"
+"                         channel revisions"
+msgstr ""
+
+#: guix/scripts/system.scm:962
 msgid ""
 "\n"
 "      --on-error=STRATEGY\n"
@@ -2686,568 +3568,312 @@ msgid ""
 "                         or debug) when an error occurs while reading FILE"
 msgstr ""
 
-#: guix/scripts/system.scm:1012
+#: guix/scripts/system.scm:966
 msgid ""
 "\n"
-"      --file-system-type=TYPE\n"
-"                         for 'disk-image', produce a root file system of TYPE\n"
-"                         (one of 'ext4', 'iso9660')"
+"      --list-image-types list available image types"
 msgstr ""
 
-#: guix/scripts/system.scm:1016
+#: guix/scripts/system.scm:968
 msgid ""
 "\n"
-"      --image-size=SIZE  for 'vm-image', produce an image of SIZE"
+"  -t, --image-type=TYPE  for 'disk-image', produce an image of TYPE"
 msgstr ""
 
-#: guix/scripts/system.scm:1018
+#: guix/scripts/system.scm:970
 msgid ""
 "\n"
-"      --no-bootloader    for 'init', do not install a bootloader"
+"      --image-size=SIZE  for 'vm-image', produce an image of SIZE"
 msgstr ""
 
-#: guix/scripts/system.scm:1020
+#: guix/scripts/system.scm:972
 msgid ""
 "\n"
-"      --share=SPEC       for 'vm', share host file system according to SPEC"
+"      --no-bootloader    for 'init', do not install a bootloader"
 msgstr ""
 
-#: guix/scripts/system.scm:1022
+#: guix/scripts/system.scm:974
 msgid ""
 "\n"
-"  -r, --root=FILE        for 'vm', 'vm-image', 'disk-image', 'container',\n"
-"                         and 'build', make FILE a symlink to the result, and\n"
-"                         register it as a garbage collector root"
+"      --label=LABEL      for 'disk-image', label disk image with LABEL"
 msgstr ""
 
-#: guix/scripts/system.scm:1026
+#: guix/scripts/system.scm:976 guix/scripts/pack.scm:1067
 msgid ""
 "\n"
-"      --expose=SPEC      for 'vm', expose host file system according to SPEC"
+"      --save-provenance  save provenance information"
 msgstr ""
 
-#: guix/scripts/system.scm:1028
+#: guix/scripts/system.scm:978
 msgid ""
 "\n"
-"      --full-boot        for 'vm', make a full boot sequence"
+"      --share=SPEC       for 'vm' and 'container', share host file system with\n"
+"                         read/write access according to SPEC"
 msgstr ""
 
-#: guix/scripts/system.scm:1030
+#: guix/scripts/system.scm:981
 msgid ""
 "\n"
-"      --skip-checks      skip file system and initrd module safety checks"
-msgstr ""
-
-#: guix/scripts/system.scm:1140
-#, scheme-format
-msgid "both file and expression cannot be specified~%"
-msgstr ""
-
-#: guix/scripts/system.scm:1147
-#, scheme-format
-msgid "no configuration specified~%"
-msgstr ""
-
-#: guix/scripts/system.scm:1257
-#, scheme-format
-msgid "~a: unknown action~%"
-msgstr ""
-
-#: guix/scripts/system.scm:1273
-#, scheme-format
-msgid "wrong number of arguments for action '~a'~%"
-msgstr ""
-
-#: guix/scripts/system.scm:1278
-#, scheme-format
-msgid "guix system: missing command name~%"
-msgstr ""
-
-#: guix/scripts/system.scm:1280
-#, scheme-format
-msgid "Try 'guix system --help' for more information.~%"
-msgstr ""
-
-#: guix/scripts/system/search.scm:88 guix/ui.scm:1332 guix/ui.scm:1346
-msgid "unknown"
-msgstr ""
-
-#: guix/scripts/lint.scm:144
-#, scheme-format
-msgid "Available checkers:~%"
-msgstr ""
-
-#: guix/scripts/lint.scm:168
-msgid "description should not be empty"
+"      --expose=SPEC      for 'vm' and 'container', expose host file system\n"
+"                         directory as read-only according to SPEC"
 msgstr ""
 
-#: guix/scripts/lint.scm:178
-msgid "Texinfo markup in description is invalid"
-msgstr ""
-
-#: guix/scripts/lint.scm:188
-#, scheme-format
+#: guix/scripts/system.scm:984
 msgid ""
-"description should not contain ~\n"
-"trademark sign '~a' at ~d"
-msgstr ""
-
-#. TRANSLATORS: '@code' is Texinfo markup and must be kept
-#. as is.
-#: guix/scripts/lint.scm:201
-msgid "use @code or similar ornament instead of quotes"
-msgstr ""
-
-#: guix/scripts/lint.scm:208
-msgid "description should start with an upper-case letter or digit"
+"\n"
+"  -N, --network          for 'container', allow containers to access the network"
 msgstr ""
 
-#: guix/scripts/lint.scm:224
-#, scheme-format
+#: guix/scripts/system.scm:986
 msgid ""
-"sentences in description should be followed ~\n"
-"by two spaces; possible infraction~p at ~{~a~^, ~}"
-msgstr ""
-
-#: guix/scripts/lint.scm:242
-#, scheme-format
-msgid "invalid description: ~s"
-msgstr ""
-
-#: guix/scripts/lint.scm:287
-#, scheme-format
-msgid "'~a' should probably be a native input"
-msgstr ""
-
-#: guix/scripts/lint.scm:303
-#, scheme-format
-msgid "'~a' should probably not be an input at all"
-msgstr ""
-
-#: guix/scripts/lint.scm:320
-msgid "synopsis should not be empty"
-msgstr ""
-
-#: guix/scripts/lint.scm:328
-msgid "no period allowed at the end of the synopsis"
-msgstr ""
-
-#: guix/scripts/lint.scm:340
-msgid "no article allowed at the beginning of the synopsis"
-msgstr ""
-
-#: guix/scripts/lint.scm:347
-msgid "synopsis should be less than 80 characters long"
-msgstr ""
-
-#: guix/scripts/lint.scm:353
-msgid "synopsis should start with an upper-case letter or digit"
-msgstr ""
-
-#: guix/scripts/lint.scm:360
-msgid "synopsis should not start with the package name"
-msgstr ""
-
-#: guix/scripts/lint.scm:370
-msgid "Texinfo markup in synopsis is invalid"
-msgstr ""
-
-#: guix/scripts/lint.scm:389
-#, scheme-format
-msgid "invalid synopsis: ~s"
-msgstr ""
-
-#: guix/scripts/lint.scm:508
-#, scheme-format
-msgid "URI ~a returned suspiciously small file (~a bytes)"
-msgstr ""
-
-#: guix/scripts/lint.scm:518
-#, scheme-format
-msgid "permanent redirect from ~a to ~a"
-msgstr ""
-
-#: guix/scripts/lint.scm:525
-#, scheme-format
-msgid "invalid permanent redirect from ~a"
-msgstr ""
-
-#: guix/scripts/lint.scm:532 guix/scripts/lint.scm:544
-#, scheme-format
-msgid "URI ~a not reachable: ~a (~s)"
-msgstr ""
-
-#: guix/scripts/lint.scm:551
-#, scheme-format
-msgid "URI ~a domain not found: ~a"
-msgstr ""
-
-#: guix/scripts/lint.scm:559
-#, scheme-format
-msgid "URI ~a unreachable: ~a"
-msgstr ""
-
-#: guix/scripts/lint.scm:568
-#, scheme-format
-msgid "TLS certificate error: ~a"
-msgstr ""
-
-#: guix/scripts/lint.scm:589
-msgid "invalid value for home page"
-msgstr ""
-
-#: guix/scripts/lint.scm:592
-#, scheme-format
-msgid "invalid home page URL: ~s"
-msgstr ""
-
-#: guix/scripts/lint.scm:619
-msgid "file names of patches should start with the package name"
-msgstr ""
-
-#: guix/scripts/lint.scm:635
-#, scheme-format
-msgid "~a: file name is too long"
-msgstr ""
-
-#: guix/scripts/lint.scm:676
-#, scheme-format
-msgid "~a: ~a: proposed synopsis: ~s~%"
-msgstr ""
-
-#: guix/scripts/lint.scm:689
-#, scheme-format
-msgid "~a: ~a: proposed description:~%     \"~a\"~%"
-msgstr ""
-
-#: guix/scripts/lint.scm:731
-msgid "all the source URIs are unreachable:"
-msgstr ""
-
-#: guix/scripts/lint.scm:753
-msgid "the source file name should contain the package name"
-msgstr ""
-
-#: guix/scripts/lint.scm:765
-msgid "the source URI should not be an autogenerated tarball"
-msgstr ""
-
-#: guix/scripts/lint.scm:786
-#, scheme-format
-msgid "URL should be 'mirror://~a/~a'"
-msgstr ""
-
-#: guix/scripts/lint.scm:829
-#, scheme-format
-msgid "URL should be '~a'"
-msgstr ""
-
-#: guix/scripts/lint.scm:840 guix/scripts/lint.scm:845
-#, scheme-format
-msgid "failed to create ~a derivation: ~a"
+"\n"
+"  -r, --root=FILE        for 'vm', 'vm-image', 'disk-image', 'container',\n"
+"                         and 'build', make FILE a symlink to the result, and\n"
+"                         register it as a garbage collector root"
 msgstr ""
 
-#: guix/scripts/lint.scm:862
-#, scheme-format
-msgid "failed to create ~a derivation: ~s"
+#: guix/scripts/system.scm:990
+msgid ""
+"\n"
+"      --full-boot        for 'vm', make a full boot sequence"
 msgstr ""
 
-#: guix/scripts/lint.scm:874
-msgid "invalid license field"
+#: guix/scripts/system.scm:992
+msgid ""
+"\n"
+"      --skip-checks      skip file system and initrd module safety checks"
 msgstr ""
 
-#: guix/scripts/lint.scm:881
+#: guix/scripts/system.scm:1129
 #, scheme-format
-msgid "~a: HTTP GET error for ~a: ~a (~s)~%"
+msgid "'~a' does not return an operating system~%"
 msgstr ""
 
-#: guix/scripts/lint.scm:891
+#: guix/scripts/system.scm:1152
 #, scheme-format
-msgid "~a: host lookup failure: ~a~%"
+msgid "both file and expression cannot be specified~%"
 msgstr ""
 
-#: guix/scripts/lint.scm:896
+#: guix/scripts/system.scm:1159
 #, scheme-format
-msgid "~a: TLS certificate error: ~a"
+msgid "no configuration specified~%"
 msgstr ""
 
-#: guix/scripts/lint.scm:911
-msgid "while retrieving CVE vulnerabilities"
-msgstr ""
+#: guix/scripts/system.scm:1249
+#, fuzzy, scheme-format
+#| msgid "not removing generation ~a, which is current~%"
+msgid "no system generation, nothing to describe~%"
+msgstr "tar inte bort generation ~a, då den är aktuell~%"
 
-#: guix/scripts/lint.scm:948
+#: guix/scripts/system.scm:1295
 #, scheme-format
-msgid "probably vulnerable to ~a"
+msgid "~a: unknown action~%"
 msgstr ""
 
-#: guix/scripts/lint.scm:955
+#: guix/scripts/system.scm:1311
 #, scheme-format
-msgid "while retrieving upstream info for '~a'"
+msgid "wrong number of arguments for action '~a'~%"
 msgstr ""
 
-#: guix/scripts/lint.scm:963
+#: guix/scripts/system.scm:1316
 #, scheme-format
-msgid "can be upgraded to ~a"
+msgid "guix system: missing command name~%"
 msgstr ""
 
-#: guix/scripts/lint.scm:978
+#: guix/scripts/system.scm:1318
 #, scheme-format
-msgid "tabulation on line ~a, column ~a"
+msgid "Try 'guix system --help' for more information.~%"
 msgstr ""
 
-#: guix/scripts/lint.scm:987
-#, scheme-format
-msgid "trailing white space on line ~a"
+#: guix/scripts/system/search.scm:93 guix/ui.scm:1540 guix/ui.scm:1558
+msgid "unknown"
 msgstr ""
 
-#: guix/scripts/lint.scm:997
-#, scheme-format
-msgid "line ~a is way too long (~a characters)"
-msgstr ""
+#: guix/scripts/lint.scm:52
+#, fuzzy, scheme-format
+#| msgid "~a: ~a~%"
+msgid "~a@~a: ~a~%"
+msgstr "~a: ~a~%"
 
-#: guix/scripts/lint.scm:1008
+#: guix/scripts/lint.scm:77
 #, scheme-format
-msgid "line ~a: parentheses feel lonely, move to the previous or next line"
-msgstr ""
-
-#: guix/scripts/lint.scm:1078
-msgid "Validate package descriptions"
-msgstr ""
-
-#: guix/scripts/lint.scm:1082
-msgid "Validate synopsis & description of GNU packages"
-msgstr ""
-
-#: guix/scripts/lint.scm:1086
-msgid "Identify inputs that should be native inputs"
-msgstr ""
-
-#: guix/scripts/lint.scm:1090
-msgid "Identify inputs that shouldn't be inputs at all"
-msgstr ""
-
-#: guix/scripts/lint.scm:1094
-msgid "Validate file names and availability of patches"
-msgstr ""
-
-#: guix/scripts/lint.scm:1098
-msgid "Validate home-page URLs"
-msgstr ""
-
-#. TRANSLATORS: <license> is the name of a data type and must not be
-#. translated.
-#: guix/scripts/lint.scm:1104
-msgid "Make sure the 'license' field is a <license> or a list thereof"
-msgstr ""
-
-#: guix/scripts/lint.scm:1109
-msgid "Validate source URLs"
-msgstr ""
-
-#: guix/scripts/lint.scm:1113
-msgid "Suggest 'mirror://' URLs"
-msgstr ""
-
-#: guix/scripts/lint.scm:1117
-msgid "Suggest GitHub URLs"
-msgstr ""
-
-#: guix/scripts/lint.scm:1121
-msgid "Validate file names of sources"
-msgstr ""
-
-#: guix/scripts/lint.scm:1125
-msgid "Check for autogenerated tarballs"
-msgstr ""
-
-#: guix/scripts/lint.scm:1129
-msgid "Report failure to compile a package to a derivation"
-msgstr ""
-
-#: guix/scripts/lint.scm:1133
-msgid "Validate package synopses"
-msgstr ""
-
-#: guix/scripts/lint.scm:1137
-msgid "Check the Common Vulnerabilities and Exposures (CVE) database"
-msgstr ""
-
-#: guix/scripts/lint.scm:1142
-msgid "Check the package for new upstream releases"
-msgstr ""
-
-#: guix/scripts/lint.scm:1146
-msgid "Look for formatting issues in the source"
+msgid "Available checkers:~%"
 msgstr ""
 
-#: guix/scripts/lint.scm:1174
+#: guix/scripts/lint.scm:95
 msgid ""
 "Usage: guix lint [OPTION]... [PACKAGE]...\n"
 "Run a set of checkers on the specified package; if none is specified,\n"
 "run the checkers on all packages.\n"
 msgstr ""
 
-#: guix/scripts/lint.scm:1177
+#: guix/scripts/lint.scm:98
 msgid ""
 "\n"
 "  -c, --checkers=CHECKER1,CHECKER2...\n"
 "                         only run the specified checkers"
 msgstr ""
 
-#: guix/scripts/lint.scm:1182
+#: guix/scripts/lint.scm:106
 msgid ""
 "\n"
 "  -l, --list-checkers    display the list of available lint checkers"
 msgstr ""
 
-#: guix/scripts/lint.scm:1202
+#: guix/scripts/lint.scm:125
 #, scheme-format
 msgid "~a: invalid checker~%"
 msgstr ""
 
-#: guix/scripts/publish.scm:68
+#: guix/scripts/publish.scm:71
 #, scheme-format
 msgid ""
 "Usage: guix publish [OPTION]...\n"
 "Publish ~a over HTTP.\n"
 msgstr ""
 
-#: guix/scripts/publish.scm:70
+#: guix/scripts/publish.scm:73
 msgid ""
 "\n"
 "  -p, --port=PORT        listen on PORT"
 msgstr ""
 
-#: guix/scripts/publish.scm:72
+#: guix/scripts/publish.scm:75
 msgid ""
 "\n"
 "      --listen=HOST      listen on the network interface for HOST"
 msgstr ""
 
-#: guix/scripts/publish.scm:74
+#: guix/scripts/publish.scm:77
 msgid ""
 "\n"
 "  -u, --user=USER        change privileges to USER as soon as possible"
 msgstr ""
 
-#: guix/scripts/publish.scm:76
+#: guix/scripts/publish.scm:79
 msgid ""
 "\n"
-"  -C, --compression[=LEVEL]\n"
-"                         compress archives at LEVEL"
+"  -C, --compression[=METHOD:LEVEL]\n"
+"                         compress archives with METHOD at LEVEL"
 msgstr ""
 
-#: guix/scripts/publish.scm:79
+#: guix/scripts/publish.scm:82
 msgid ""
 "\n"
 "  -c, --cache=DIRECTORY  cache published items to DIRECTORY"
 msgstr ""
 
-#: guix/scripts/publish.scm:81
+#: guix/scripts/publish.scm:84
 msgid ""
 "\n"
 "      --workers=N        use N workers to bake items"
 msgstr ""
 
-#: guix/scripts/publish.scm:83
+#: guix/scripts/publish.scm:86
 msgid ""
 "\n"
 "      --ttl=TTL          announce narinfos can be cached for TTL seconds"
 msgstr ""
 
-#: guix/scripts/publish.scm:85
+#: guix/scripts/publish.scm:88
 msgid ""
 "\n"
 "      --nar-path=PATH    use PATH as the prefix for nar URLs"
 msgstr ""
 
-#: guix/scripts/publish.scm:87
+#: guix/scripts/publish.scm:90
 msgid ""
 "\n"
 "      --public-key=FILE  use FILE as the public key for signatures"
 msgstr ""
 
-#: guix/scripts/publish.scm:89
+#: guix/scripts/publish.scm:92
 msgid ""
 "\n"
 "      --private-key=FILE use FILE as the private key for signatures"
 msgstr ""
 
-#: guix/scripts/publish.scm:91
+#: guix/scripts/publish.scm:94
 msgid ""
 "\n"
 "  -r, --repl[=PORT]      spawn REPL server on PORT"
 msgstr ""
 
-#: guix/scripts/publish.scm:107
+#: guix/scripts/publish.scm:110
 #, scheme-format
 msgid "lookup of host '~a' failed: ~a~%"
 msgstr ""
 
-#: guix/scripts/publish.scm:152
+#: guix/scripts/publish.scm:158
 #, scheme-format
 msgid "lookup of host '~a' returned nothing"
 msgstr ""
 
-#: guix/scripts/publish.scm:165
-#, scheme-format
-msgid "zlib support is missing; compression disabled~%"
-msgstr ""
+#: guix/scripts/publish.scm:181
+#, fuzzy, scheme-format
+#| msgid "~a: unsupported kind of search path~%"
+msgid "~a: unsupported compression type~%"
+msgstr "~a: sökvägstyp stöds inte~%"
 
-#: guix/scripts/publish.scm:179
+#: guix/scripts/publish.scm:195
 #, scheme-format
 msgid "~a: invalid duration~%"
 msgstr ""
 
-#: guix/scripts/publish.scm:876
+#: guix/scripts/publish.scm:1008
 #, scheme-format
 msgid "user '~a' not found: ~a~%"
 msgstr ""
 
-#: guix/scripts/publish.scm:917
+#: guix/scripts/publish.scm:1060
 #, scheme-format
 msgid "server running as root; consider using the '--user' option!~%"
 msgstr ""
 
-#: guix/scripts/publish.scm:922
+#: guix/scripts/publish.scm:1065
 #, scheme-format
 msgid "publishing ~a on ~a, port ~d~%"
 msgstr ""
 
-#: guix/scripts/edit.scm:40
+#: guix/scripts/publish.scm:1071
+#, scheme-format
+msgid "using '~a' compression method, level ~a~%"
+msgstr ""
+
+#: guix/scripts/edit.scm:45
 msgid ""
 "Usage: guix edit PACKAGE...\n"
 "Start $VISUAL or $EDITOR to edit the definitions of PACKAGE...\n"
 msgstr ""
 
-#: guix/scripts/edit.scm:61
+#: guix/scripts/edit.scm:68
 #, scheme-format
 msgid "file '~a' not found in search path ~s~%"
 msgstr ""
 
-#: guix/scripts/edit.scm:96
+#: guix/scripts/edit.scm:106
 #, scheme-format
 msgid "failed to launch '~a': ~a~%"
 msgstr ""
 
-#: guix/scripts/size.scm:69
+#: guix/scripts/size.scm:71
 #, scheme-format
 msgid "no available substitute information for '~a'~%"
 msgstr ""
 
-#: guix/scripts/size.scm:91
+#: guix/scripts/size.scm:93
 msgid "store item"
 msgstr ""
 
-#: guix/scripts/size.scm:91
+#: guix/scripts/size.scm:93
 msgid "total"
 msgstr ""
 
-#: guix/scripts/size.scm:91
+#: guix/scripts/size.scm:93
 msgid "self"
 msgstr ""
 
-#: guix/scripts/size.scm:99
+#: guix/scripts/size.scm:101
 #, scheme-format
 msgid "total: ~,1f MiB~%"
 msgstr ""
@@ -3255,488 +3881,574 @@ msgstr ""
 #. TRANSLATORS: This is the title of a graph, meaning that the graph
 #. represents a profile of the store (the "store" being the place where
 #. packages are stored.)
-#: guix/scripts/size.scm:222
+#: guix/scripts/size.scm:224
 msgid "store profile"
 msgstr ""
 
-#: guix/scripts/size.scm:231
+#: guix/scripts/size.scm:233
 msgid ""
-"Usage: guix size [OPTION]... PACKAGE\n"
-"Report the size of PACKAGE and its dependencies.\n"
+"Usage: guix size [OPTION]... PACKAGE|STORE-ITEM\n"
+"Report the size of the PACKAGE or STORE-ITEM, with its dependencies.\n"
 msgstr ""
 
-#: guix/scripts/size.scm:236
+#: guix/scripts/size.scm:238
 msgid ""
 "\n"
 "  -s, --system=SYSTEM    consider packages for SYSTEM--e.g., \"i686-linux\""
 msgstr ""
 
 #. TRANSLATORS: "closure" and "self" must not be translated.
-#: guix/scripts/size.scm:239
+#: guix/scripts/size.scm:241
 msgid ""
 "\n"
 "      --sort=KEY         sort according to KEY--\"closure\" or \"self\""
 msgstr ""
 
-#: guix/scripts/size.scm:241
+#: guix/scripts/size.scm:243
 msgid ""
 "\n"
 "  -m, --map-file=FILE    write to FILE a graphical map of disk usage"
 msgstr ""
 
-#: guix/scripts/size.scm:272
+#: guix/scripts/size.scm:277
 #, scheme-format
 msgid "~a: invalid sorting key~%"
 msgstr ""
 
-#: guix/scripts/size.scm:307
+#: guix/scripts/size.scm:318
 msgid "missing store item argument\n"
 msgstr ""
 
-#: guix/scripts/graph.scm:88
+#: guix/scripts/graph.scm:93
 #, scheme-format
 msgid "~a: invalid argument (package name expected)"
 msgstr ""
 
-#: guix/scripts/graph.scm:99
+#: guix/scripts/graph.scm:104
 msgid "the DAG of packages, excluding implicit inputs"
 msgstr ""
 
-#: guix/scripts/graph.scm:135
+#: guix/scripts/graph.scm:140
 msgid "the reverse DAG of packages"
 msgstr ""
 
-#: guix/scripts/graph.scm:185
+#: guix/scripts/graph.scm:190
 msgid "the DAG of packages, including implicit inputs"
 msgstr ""
 
-#: guix/scripts/graph.scm:195
+#: guix/scripts/graph.scm:200
 msgid "the DAG of packages and origins, including implicit inputs"
 msgstr ""
 
-#: guix/scripts/graph.scm:225
+#: guix/scripts/graph.scm:230
 msgid "same as 'bag', but without the bootstrap nodes"
 msgstr ""
 
-#: guix/scripts/graph.scm:242
+#: guix/scripts/graph.scm:247
 msgid "the reverse DAG of packages, including implicit inputs"
 msgstr ""
 
-#: guix/scripts/graph.scm:282
+#: guix/scripts/graph.scm:286
 msgid "the DAG of derivations"
 msgstr ""
 
-#: guix/scripts/graph.scm:294
+#: guix/scripts/graph.scm:298
 msgid "unsupported argument for derivation graph"
 msgstr ""
 
-#: guix/scripts/graph.scm:320
+#: guix/scripts/graph.scm:332
 msgid "unsupported argument for this type of graph"
 msgstr ""
 
-#: guix/scripts/graph.scm:333
+#: guix/scripts/graph.scm:346
 #, scheme-format
 msgid "references for '~a' are not known~%"
 msgstr ""
 
-#: guix/scripts/graph.scm:340
+#: guix/scripts/graph.scm:353
 msgid "the DAG of run-time dependencies (store references)"
 msgstr ""
 
-#: guix/scripts/graph.scm:356
+#: guix/scripts/graph.scm:369
 msgid "the DAG of referrers in the store"
 msgstr ""
 
-#: guix/scripts/graph.scm:386
+#: guix/scripts/graph.scm:399
 msgid "the graph of package modules"
 msgstr ""
 
-#: guix/scripts/graph.scm:415
+#: guix/scripts/graph.scm:428
 #, scheme-format
 msgid "~a: unknown node type~%"
 msgstr ""
 
-#: guix/scripts/graph.scm:422
+#: guix/scripts/graph.scm:435
 #, scheme-format
 msgid "~a: unknown backend~%"
 msgstr ""
 
-#: guix/scripts/graph.scm:426
+#: guix/scripts/graph.scm:439
 msgid "The available node types are:\n"
 msgstr ""
 
-#: guix/scripts/graph.scm:436
+#: guix/scripts/graph.scm:449
 msgid "The available backend types are:\n"
 msgstr ""
 
+#: guix/scripts/graph.scm:476
+#, scheme-format
+msgid "no path from '~a' to '~a'~%"
+msgstr ""
+
 #. TRANSLATORS: Here 'dot' is the name of a program; it must not be
 #. translated.
-#: guix/scripts/graph.scm:484
+#: guix/scripts/graph.scm:528
 msgid ""
 "Usage: guix graph PACKAGE...\n"
 "Emit a representation of the dependency graph of PACKAGE...\n"
 msgstr ""
 
-#: guix/scripts/graph.scm:486
+#: guix/scripts/graph.scm:530
 msgid ""
 "\n"
 "  -b, --backend=TYPE     produce a graph with the given backend TYPE"
 msgstr ""
 
-#: guix/scripts/graph.scm:488
+#: guix/scripts/graph.scm:532
 msgid ""
 "\n"
 "      --list-backends    list the available graph backends"
 msgstr ""
 
-#: guix/scripts/graph.scm:490
+#: guix/scripts/graph.scm:534
 msgid ""
 "\n"
 "  -t, --type=TYPE        represent nodes of the given TYPE"
 msgstr ""
 
-#: guix/scripts/graph.scm:492
+#: guix/scripts/graph.scm:536
 msgid ""
 "\n"
 "      --list-types       list the available graph types"
 msgstr ""
 
-#: guix/scripts/graph.scm:494 guix/scripts/pack.scm:752
+#: guix/scripts/graph.scm:538
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "  -h, --help             display this help and exit"
+msgid ""
+"\n"
+"      --path             display the shortest path between the given nodes"
+msgstr ""
+"\n"
+"  -h, --help             visa denna hjälp och avsluta"
+
+#: guix/scripts/graph.scm:540 guix/scripts/pack.scm:1052
 msgid ""
 "\n"
 "  -e, --expression=EXPR  consider the package EXPR evaluates to"
 msgstr ""
 
-#: guix/scripts/graph.scm:496
+#: guix/scripts/graph.scm:542
 msgid ""
 "\n"
 "  -s, --system=SYSTEM    consider the graph for SYSTEM--e.g., \"i686-linux\""
 msgstr ""
 
-#: guix/scripts/challenge.scm:191
+#: guix/scripts/graph.scm:603
+#, scheme-format
+msgid "'--path' option requires exactly two nodes (given ~a)~%"
+msgstr ""
+
+#: guix/scripts/challenge.scm:301
+#, scheme-format
+msgid "  differing file:~%"
+msgid_plural "  differing files:~%"
+msgstr[0] ""
+msgstr[1] ""
+
+#: guix/scripts/challenge.scm:370
 #, scheme-format
 msgid "  local hash: ~a~%"
 msgstr ""
 
-#: guix/scripts/challenge.scm:192
+#: guix/scripts/challenge.scm:371
 #, scheme-format
 msgid "  no local build for '~a'~%"
 msgstr ""
 
-#: guix/scripts/challenge.scm:194
+#: guix/scripts/challenge.scm:373
 #, scheme-format
 msgid "  ~50a: ~a~%"
 msgstr ""
 
-#: guix/scripts/challenge.scm:202
+#: guix/scripts/challenge.scm:381
 #, scheme-format
 msgid "~a contents differ:~%"
 msgstr ""
 
-#: guix/scripts/challenge.scm:205
+#: guix/scripts/challenge.scm:385
 #, scheme-format
 msgid "could not challenge '~a': no local build~%"
 msgstr ""
 
-#: guix/scripts/challenge.scm:207
+#: guix/scripts/challenge.scm:387
 #, scheme-format
 msgid "could not challenge '~a': no substitutes~%"
 msgstr ""
 
-#: guix/scripts/challenge.scm:210
+#: guix/scripts/challenge.scm:390
 #, scheme-format
 msgid "~a contents match:~%"
 msgstr ""
 
-#: guix/scripts/challenge.scm:219
+#: guix/scripts/challenge.scm:399
 msgid "~h store items were analyzed:~%"
 msgstr ""
 
-#: guix/scripts/challenge.scm:220
+#: guix/scripts/challenge.scm:400
 msgid "  - ~h (~,1f%) were identical~%"
 msgstr ""
 
-#: guix/scripts/challenge.scm:222
+#: guix/scripts/challenge.scm:402
 msgid "  - ~h (~,1f%) differed~%"
 msgstr ""
 
-#: guix/scripts/challenge.scm:224
+#: guix/scripts/challenge.scm:404
 msgid "  - ~h (~,1f%) were inconclusive~%"
 msgstr ""
 
-#: guix/scripts/challenge.scm:233
+#: guix/scripts/challenge.scm:413
 msgid ""
 "Usage: guix challenge [PACKAGE...]\n"
 "Challenge the substitutes for PACKAGE... provided by one or more servers.\n"
 msgstr ""
 
-#: guix/scripts/challenge.scm:235
+#: guix/scripts/challenge.scm:415
 msgid ""
 "\n"
 "      --substitute-urls=URLS\n"
 "                         compare build results with those at URLS"
 msgstr ""
 
-#: guix/scripts/challenge.scm:238
+#: guix/scripts/challenge.scm:418
+msgid ""
+"\n"
+"  -v, --verbose          show details about successful comparisons"
+msgstr ""
+
+#: guix/scripts/challenge.scm:420
 msgid ""
 "\n"
-"      -v, --verbose      show details about successful comparisons"
+"      --diff=MODE        show differences according to MODE"
 msgstr ""
 
-#: guix/scripts/copy.scm:60
+#: guix/scripts/challenge.scm:449
+#, fuzzy, scheme-format
+#| msgid "~A: unknown package~%"
+msgid "~a: unknown diff mode~%"
+msgstr "~A: okänt paket~%"
+
+#: guix/scripts/copy.scm:61
 #, scheme-format
 msgid "~a: invalid TCP port number~%"
 msgstr ""
 
-#: guix/scripts/copy.scm:62
+#: guix/scripts/copy.scm:63
 #, scheme-format
 msgid "~a: invalid SSH specification~%"
 msgstr ""
 
-#: guix/scripts/copy.scm:114
+#: guix/scripts/copy.scm:109
 msgid ""
 "Usage: guix copy [OPTION]... ITEMS...\n"
 "Copy ITEMS to or from the specified host over SSH.\n"
 msgstr ""
 
-#: guix/scripts/copy.scm:116
+#: guix/scripts/copy.scm:111
 msgid ""
 "\n"
 "      --to=HOST          send ITEMS to HOST"
 msgstr ""
 
-#: guix/scripts/copy.scm:118
+#: guix/scripts/copy.scm:113
 msgid ""
 "\n"
 "      --from=HOST        receive ITEMS from HOST"
 msgstr ""
 
-#: guix/scripts/copy.scm:182
+#: guix/scripts/copy.scm:192
 #, scheme-format
 msgid "use '--to' or '--from'~%"
 msgstr ""
 
-#: guix/scripts/pack.scm:95
+#: guix/scripts/pack.scm:104
 #, scheme-format
 msgid "~a: compressor not found~%"
 msgstr ""
 
-#: guix/scripts/pack.scm:513
+#: guix/scripts/pack.scm:309
+#, scheme-format
+msgid "entry point not supported in the '~a' format~%"
+msgstr ""
+
+#: guix/scripts/pack.scm:690
 #, scheme-format
 msgid ""
 "cross-compilation not implemented here;\n"
 "please email '~a'~%"
 msgstr ""
 
-#: guix/scripts/pack.scm:644
+#: guix/scripts/pack.scm:935
 msgid "The supported formats for 'guix pack' are:"
 msgstr ""
 
-#: guix/scripts/pack.scm:646
+#: guix/scripts/pack.scm:937
 msgid ""
 "\n"
 "  tarball       Self-contained tarball, ready to run on another machine"
 msgstr ""
 
-#: guix/scripts/pack.scm:648
+#: guix/scripts/pack.scm:939
 msgid ""
 "\n"
 "  squashfs      Squashfs image suitable for Singularity"
 msgstr ""
 
-#: guix/scripts/pack.scm:650
+#: guix/scripts/pack.scm:941
 msgid ""
 "\n"
 "  docker        Tarball ready for 'docker load'"
 msgstr ""
 
-#: guix/scripts/pack.scm:712
+#: guix/scripts/pack.scm:1010
 #, scheme-format
 msgid "~a: invalid symlink specification~%"
 msgstr ""
 
-#: guix/scripts/pack.scm:726
+#: guix/scripts/pack.scm:1024
 #, scheme-format
 msgid "~a: unsupported profile name~%"
 msgstr ""
 
-#: guix/scripts/pack.scm:740
+#: guix/scripts/pack.scm:1042
 msgid ""
 "Usage: guix pack [OPTION]... PACKAGE...\n"
 "Create a bundle of PACKAGE.\n"
 msgstr ""
 
-#: guix/scripts/pack.scm:746
+#: guix/scripts/pack.scm:1046
 msgid ""
 "\n"
 "  -f, --format=FORMAT    build a pack in the given FORMAT"
 msgstr ""
 
-#: guix/scripts/pack.scm:748
+#: guix/scripts/pack.scm:1048
 msgid ""
 "\n"
 "      --list-formats     list the formats available"
 msgstr ""
 
-#: guix/scripts/pack.scm:750
+#: guix/scripts/pack.scm:1050
 msgid ""
 "\n"
 "  -R, --relocatable      produce relocatable executables"
 msgstr ""
 
-#: guix/scripts/pack.scm:758
+#: guix/scripts/pack.scm:1058
 msgid ""
 "\n"
 "  -C, --compression=TOOL compress using TOOL--e.g., \"lzip\""
 msgstr ""
 
-#: guix/scripts/pack.scm:760
+#: guix/scripts/pack.scm:1060
 msgid ""
 "\n"
 "  -S, --symlink=SPEC     create symlinks to the profile according to SPEC"
 msgstr ""
 
-#: guix/scripts/pack.scm:762
+#: guix/scripts/pack.scm:1062
 msgid ""
 "\n"
 "  -m, --manifest=FILE    create a pack with the manifest from FILE"
 msgstr ""
 
-#: guix/scripts/pack.scm:764
+#: guix/scripts/pack.scm:1064
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "      --with-git-url=PACKAGE=URL\n"
+#| "                         build PACKAGE from the repository at URL"
 msgid ""
 "\n"
-"      --save-provenance  save provenance information"
+"      --entry-point=PROGRAM\n"
+"                         use PROGRAM as the entry point of the pack"
 msgstr ""
+"\n"
+"      --with-git-url=PAKET=URL\n"
+"                         bygg PAKET från arkivet vid URL"
 
-#: guix/scripts/pack.scm:766
+#: guix/scripts/pack.scm:1069
 msgid ""
 "\n"
 "      --localstatedir    include /var/guix in the resulting pack"
 msgstr ""
 
-#: guix/scripts/pack.scm:768
+#: guix/scripts/pack.scm:1071
 msgid ""
 "\n"
 "      --profile-name=NAME\n"
 "                         populate /var/guix/profiles/.../NAME"
 msgstr ""
 
-#: guix/scripts/pack.scm:773
+#: guix/scripts/pack.scm:1077
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "  -d, --derivations      return the derivation paths of the given packages"
+msgid ""
+"\n"
+"  -d, --derivation       return the derivation of the pack"
+msgstr ""
+"\n"
+"  -d, --derivations      returnera härledningssökvägar för de givna paketen"
+
+#: guix/scripts/pack.scm:1081
 msgid ""
 "\n"
 "      --bootstrap        use the bootstrap binaries to build the pack"
 msgstr ""
 
-#: guix/scripts/pack.scm:818
+#: guix/scripts/pack.scm:1135
 #, scheme-format
 msgid "could not determine provenance of package ~a~%"
 msgstr ""
 
-#: guix/scripts/pack.scm:827
+#: guix/scripts/pack.scm:1149
 #, scheme-format
 msgid "both a manifest and a package list were given~%"
 msgstr ""
 
-#: guix/scripts/pack.scm:882
+#: guix/scripts/pack.scm:1208
 #, scheme-format
 msgid "~a: unknown pack format~%"
 msgstr ""
 
-#: guix/scripts/weather.scm:80
+#: guix/scripts/pack.scm:1232
+#, scheme-format
+msgid "no packages specified; building an empty pack~%"
+msgstr ""
+
+#: guix/scripts/pack.scm:1236
+#, scheme-format
+msgid "Singularity requires you to provide a shell~%"
+msgstr ""
+
+#: guix/scripts/pack.scm:1237
+msgid "Add @code{bash} or @code{bash-minimal} to your package list."
+msgstr ""
+
+#: guix/scripts/weather.scm:90
 msgid "computing ~h package derivations for ~a...~%"
 msgstr ""
 
-#: guix/scripts/weather.scm:169
+#: guix/scripts/weather.scm:178
 msgid "looking for ~h store items on ~a...~%"
 msgstr ""
 
-#: guix/scripts/weather.scm:181
-msgid "  ~2,1f% substitutes available (~h out of ~h)~%"
+#: guix/scripts/weather.scm:193
+msgid "  ~,1f% substitutes available (~h out of ~h)~%"
 msgstr ""
 
-#: guix/scripts/weather.scm:187
+#: guix/scripts/weather.scm:199
 #, scheme-format
 msgid "  unknown substitute sizes~%"
 msgstr ""
 
-#: guix/scripts/weather.scm:190
+#: guix/scripts/weather.scm:202
 msgid "  ~,1h MiB of nars (compressed)~%"
 msgstr ""
 
-#: guix/scripts/weather.scm:191
+#: guix/scripts/weather.scm:203
 msgid "  at least ~,1h MiB of nars (compressed)~%"
 msgstr ""
 
-#: guix/scripts/weather.scm:193
+#: guix/scripts/weather.scm:205
 msgid "  ~,1h MiB on disk (uncompressed)~%"
 msgstr ""
 
-#: guix/scripts/weather.scm:195
+#: guix/scripts/weather.scm:207
 msgid "  ~,3h seconds per request (~,1h seconds in total)~%"
 msgstr ""
 
-#: guix/scripts/weather.scm:197
+#: guix/scripts/weather.scm:209
 msgid "  ~,1h requests per second~%"
 msgstr ""
 
-#: guix/scripts/weather.scm:203
+#: guix/scripts/weather.scm:215
 #, scheme-format
 msgid "  (continuous integration information unavailable)~%"
 msgstr ""
 
-#: guix/scripts/weather.scm:206
+#: guix/scripts/weather.scm:218
 #, scheme-format
 msgid "  '~a' returned ~a (~s)~%"
 msgstr ""
 
-#: guix/scripts/weather.scm:223
+#: guix/scripts/weather.scm:235
 msgid "  ~,1f% (~h out of ~h) of the missing items are queued~%"
 msgstr ""
 
-#: guix/scripts/weather.scm:229
+#: guix/scripts/weather.scm:241
 msgid "  at least ~h queued builds~%"
 msgstr ""
 
-#: guix/scripts/weather.scm:230
+#: guix/scripts/weather.scm:242
 msgid "  ~h queued builds~%"
 msgstr ""
 
-#: guix/scripts/weather.scm:233
+#: guix/scripts/weather.scm:245
 #, scheme-format
 msgid "      ~a: ~a (~0,1f%)~%"
 msgstr ""
 
-#: guix/scripts/weather.scm:239
+#: guix/scripts/weather.scm:251
 #, scheme-format
 msgid "  build rate: ~1,2f builds per hour~%"
 msgstr ""
 
-#: guix/scripts/weather.scm:243
+#: guix/scripts/weather.scm:255
 #, scheme-format
 msgid "      ~a: ~,2f builds per hour~%"
 msgstr ""
 
-#: guix/scripts/weather.scm:255
+#: guix/scripts/weather.scm:263
+#, scheme-format
+msgid "Substitutes are missing for the following items:~%"
+msgstr ""
+
+#: guix/scripts/weather.scm:276
 msgid ""
-"Usage: guix weather [OPTIONS]\n"
+"Usage: guix weather [OPTIONS] [PACKAGES ...]\n"
 "Report the availability of substitutes.\n"
 msgstr ""
 
-#: guix/scripts/weather.scm:257
+#: guix/scripts/weather.scm:278
 msgid ""
 "\n"
 "      --substitute-urls=URLS\n"
 "                         check for available substitutes at URLS"
 msgstr ""
 
-#: guix/scripts/weather.scm:260
+#: guix/scripts/weather.scm:281
 msgid ""
 "\n"
 "  -m, --manifest=MANIFEST\n"
 "                         look up substitutes for packages specified in MANIFEST"
 msgstr ""
 
-#: guix/scripts/weather.scm:263
+#: guix/scripts/weather.scm:284
 msgid ""
 "\n"
 "  -c, --coverage[=COUNT]\n"
@@ -3744,70 +4456,86 @@ msgid ""
 "                         COUNT dependents"
 msgstr ""
 
-#: guix/scripts/weather.scm:267
+#: guix/scripts/weather.scm:288
+msgid ""
+"\n"
+"      --display-missing  display the list of missing substitutes"
+msgstr ""
+
+#: guix/scripts/weather.scm:290
 msgid ""
 "\n"
 "  -s, --system=SYSTEM    consider substitutes for SYSTEM--e.g., \"i686-linux\""
 msgstr ""
 
-#: guix/scripts/weather.scm:291
+#: guix/scripts/weather.scm:314
 #, scheme-format
 msgid "~a: invalid URL~%"
 msgstr ""
 
-#: guix/scripts/weather.scm:420
+#: guix/scripts/weather.scm:447
 #, scheme-format
 msgid "The following ~a package is missing from '~a' for '~a':~%"
 msgid_plural "The following ~a packages are missing from '~a' for '~a':~%"
 msgstr[0] ""
 msgstr[1] ""
 
-#: guix/scripts/weather.scm:426
+#: guix/scripts/weather.scm:453
 #, scheme-format
 msgid "~a package is missing from '~a' for '~a':~%"
 msgid_plural "~a packages are missing from '~a' for '~a', among which:~%"
 msgstr[0] ""
 msgstr[1] ""
 
-#: guix/scripts/describe.scm:46
+#: guix/scripts/describe.scm:52
+msgid "The available formats are:\n"
+msgstr ""
+
+#: guix/scripts/describe.scm:63
 #, scheme-format
 msgid "~a: unsupported output format~%"
 msgstr ""
 
-#: guix/scripts/describe.scm:65
+#: guix/scripts/describe.scm:86
 msgid ""
 "Usage: guix describe [OPTION]...\n"
 "Display information about the channels currently in use.\n"
 msgstr ""
 
-#: guix/scripts/describe.scm:67
+#: guix/scripts/describe.scm:88
 msgid ""
 "\n"
 "  -f, --format=FORMAT    display information in the given FORMAT"
 msgstr ""
 
-#: guix/scripts/describe.scm:69
+#: guix/scripts/describe.scm:90
+msgid ""
+"\n"
+"      --list-formats     display available formats"
+msgstr ""
+
+#: guix/scripts/describe.scm:92
 msgid ""
 "\n"
 "  -p, --profile=PROFILE  display information about PROFILE"
 msgstr ""
 
-#: guix/scripts/describe.scm:88
+#: guix/scripts/describe.scm:111
 #, scheme-format
 msgid "~%;; warning: GUIX_PACKAGE_PATH=\"~a\"~%"
 msgstr ""
 
-#: guix/scripts/describe.scm:91
+#: guix/scripts/describe.scm:114
 #, scheme-format
 msgid "'GUIX_PACKAGE_PATH' is set but it is not captured~%"
 msgstr ""
 
-#: guix/scripts/describe.scm:118
+#: guix/scripts/describe.scm:170
 #, scheme-format
 msgid "failed to determine origin~%"
 msgstr ""
 
-#: guix/scripts/describe.scm:119
+#: guix/scripts/describe.scm:171
 #, scheme-format
 msgid ""
 "Perhaps this\n"
@@ -3815,26 +4543,41 @@ msgid ""
 "string is ~a.~%"
 msgstr ""
 
-#: guix/scripts/describe.scm:129
+#: guix/scripts/describe.scm:181
 #, scheme-format
 msgid "Git checkout:~%"
 msgstr ""
 
-#: guix/scripts/describe.scm:130
+#: guix/scripts/describe.scm:182
 #, scheme-format
 msgid "  repository: ~a~%"
 msgstr ""
 
-#: guix/scripts/describe.scm:131
+#: guix/scripts/describe.scm:183
 #, scheme-format
 msgid "  branch: ~a~%"
 msgstr ""
 
-#: guix/scripts/describe.scm:132
+#: guix/scripts/describe.scm:184
 #, scheme-format
 msgid "  commit: ~a~%"
 msgstr ""
 
+#: guix/scripts/describe.scm:250
+#, scheme-format
+msgid "    repository URL: ~a~%"
+msgstr ""
+
+#: guix/scripts/describe.scm:252
+#, scheme-format
+msgid "    branch: ~a~%"
+msgstr ""
+
+#: guix/scripts/describe.scm:253
+#, scheme-format
+msgid "    commit: ~a~%"
+msgstr ""
+
 #: guix/scripts/processes.scm:211
 msgid ""
 "Usage: guix processes\n"
@@ -3843,27 +4586,72 @@ msgstr ""
 "Användning: guix processes\n"
 "Lista aktuella Guix-sessioner och deras processer."
 
-#: guix/gnu-maintenance.scm:660
+#: guix/scripts/deploy.scm:49
+msgid ""
+"Usage: guix deploy [OPTION] FILE...\n"
+"Perform the deployment specified by FILE.\n"
+msgstr ""
+
+#: guix/scripts/deploy.scm:106
+#, fuzzy, scheme-format
+#| msgid "The following package will be removed:~%~{~a~%~}~%"
+#| msgid_plural "The following packages will be removed:~%~{~a~%~}~%"
+msgid "The following ~d machine will be deployed:~%"
+msgid_plural "The following ~d machines will be deployed:~%"
+msgstr[0] "Följande paket kommer att tas bort:~%~{~a~%~}~%"
+msgstr[1] "Följande paket kommer att tas bort:~%~{~a~%~}~%"
+
+#: guix/scripts/deploy.scm:120
+#, fuzzy, scheme-format
+#| msgid "downloading from ~a..."
+msgid "deploying to ~a...~%"
+msgstr "hämtar från ~a…"
+
+#: guix/scripts/deploy.scm:124
+#, fuzzy, scheme-format
+#| msgid "failed to load '~a': ~a~%"
+msgid "failed to deploy ~a: ~a~%"
+msgstr "misslyckades med att läsa in ”~a”: ~a~%"
+
+#: guix/scripts/deploy.scm:129
+#, scheme-format
+msgid "rolling back ~a...~%"
+msgstr ""
+
+#: guix/scripts/deploy.scm:135
+#, fuzzy, scheme-format
+#| msgid "successfully built ~a"
+msgid "successfully deployed ~a~%"
+msgstr "byggde ~a framgångsrikt"
+
+#: guix/gexp.scm:414
+#, scheme-format
+msgid "resolving '~a' relative to current directory~%"
+msgstr ""
+
+#: guix/gnu-maintenance.scm:699
 msgid "Updater for GNU packages"
 msgstr "Uppdaterar för GNU-paket"
 
-#: guix/gnu-maintenance.scm:669
+#: guix/gnu-maintenance.scm:708
 msgid "Updater for GNU packages only available via FTP"
 msgstr "Uppdaterare för GNU-paket som bara är tillgängliga via FTP"
 
-#: guix/gnu-maintenance.scm:678
-msgid "Updater for KDE packages"
-msgstr "Uppdaterare för KDE-paket"
+#: guix/gnu-maintenance.scm:717
+#, fuzzy
+#| msgid "Updater for packages hosted on kernel.org"
+msgid "Updater for packages hosted on savannah.gnu.org"
+msgstr "Uppdaterare för paket som finns på kernel.org"
 
-#: guix/gnu-maintenance.scm:685
+#: guix/gnu-maintenance.scm:724
 msgid "Updater for X.org packages"
 msgstr "Uppdaterare för X.org-paket"
 
-#: guix/gnu-maintenance.scm:692
+#: guix/gnu-maintenance.scm:731
 msgid "Updater for packages hosted on kernel.org"
 msgstr "Uppdaterare för paket som finns på kernel.org"
 
-#: guix/scripts/container.scm:26
+#: guix/scripts/container.scm:27
 msgid ""
 "Usage: guix container ACTION ARGS...\n"
 "Build and manipulate Linux containers.\n"
@@ -3871,24 +4659,28 @@ msgstr ""
 "Användning: guix container ÅTGÄRD ARGUMENT…\n"
 "Bygg och manipulera Linux-behållare.\n"
 
-#: guix/scripts/container.scm:31
+#: guix/scripts/container.scm:32
 msgid "   exec            execute a command inside of an existing container\n"
 msgstr "   exec            kör ett kommando inut en existerande behållare\n"
 
-#: guix/scripts/container.scm:54
+#: guix/scripts/container.scm:58
 #, scheme-format
 msgid "guix container: missing action~%"
 msgstr "guix container: saknar åtgärd~%"
 
-#: guix/scripts/container.scm:64
+#: guix/scripts/container.scm:68
 #, scheme-format
 msgid "guix container: invalid action~%"
 msgstr "guix container: ogiltig åtgärd~%"
 
 #: guix/scripts/container/exec.scm:40
+#, fuzzy
+#| msgid ""
+#| "Usage: guix container exec PID COMMAND [ARGS...]\n"
+#| "Execute COMMMAND within the container process PID.\n"
 msgid ""
 "Usage: guix container exec PID COMMAND [ARGS...]\n"
-"Execute COMMMAND within the container process PID.\n"
+"Execute COMMAND within the container process PID.\n"
 msgstr ""
 "Användning: guix container exec PID KOMMANDO [ARGUMENT…]\n"
 "Kör KOMMANDO inuti behållarprocess PID.\n"
@@ -3918,96 +4710,132 @@ msgstr "ingen sådan process ~d~%"
 msgid "exec failed with status ~d~%"
 msgstr "exec misslyckades med status ~d~%"
 
-#: guix/upstream.scm:327
-#, scheme-format
-msgid "signature verification failed for `~a'~%"
+#: guix/upstream.scm:337
+#, fuzzy, scheme-format
+#| msgid "found valid signature for '~a'~%"
+msgid "failed to download detached signature from ~a~%"
+msgstr "hittade giltig signatur för ”~a”~%"
+
+#: guix/upstream.scm:341
+#, fuzzy, scheme-format
+#| msgid "signature verification failed for `~a'~%"
+msgid "signature verification failed for '~a' (key: ~a)~%"
 msgstr "signaturverifiering misslyckades för ”~a”~%"
 
-#: guix/upstream.scm:329
+#: guix/upstream.scm:345
 #, scheme-format
-msgid "(could be because the public key is not in your keyring)~%"
-msgstr "(kan vara för att den publika nyckeln inte finns i din nyckelring)~%"
+msgid "missing public key ~a for '~a'~%"
+msgstr ""
 
-#: guix/upstream.scm:397
+#: guix/upstream.scm:421
 #, scheme-format
 msgid "cannot download for this method: ~s"
 msgstr "kan inte hämta med denna metod: ~s"
 
-#: guix/upstream.scm:460
+#: guix/upstream.scm:486
 #, scheme-format
 msgid "~a: could not locate source file"
 msgstr "~a: kunde inte hitta källfil"
 
-#: guix/upstream.scm:465
-#, scheme-format
-msgid "~a: ~a: no `version' field in source; skipping~%"
+#: guix/upstream.scm:490
+#, fuzzy, scheme-format
+#| msgid "~a: ~a: no `version' field in source; skipping~%"
+msgid "~a: no `version' field in source; skipping~%"
 msgstr "~a: ~a: inget ”version”-fält i källa; hoppar över~%"
 
-#. TRANSLATORS: The goal is to emit "warning:" followed by a short phrase;
-#. "~a" is a placeholder for that phrase.
-#: guix/ui.scm:205
-msgid "warning: "
-msgstr "varning: "
-
-#: guix/ui.scm:207
-msgid "error: "
-msgstr "fel: "
-
-#: guix/ui.scm:254
+#: guix/ui.scm:161
 #, scheme-format
 msgid "error: ~a: unbound variable"
 msgstr "fel: ~a: obunden variabel"
 
-#: guix/ui.scm:350
+#: guix/ui.scm:261
 msgid "entering debugger; type ',bt' for a backtrace\n"
 msgstr "går in i felsökare; skriv ”,bt” för en bakåtspårning\n"
 
-#: guix/ui.scm:405
+#: guix/ui.scm:319
 msgid "hint: "
 msgstr "tips: "
 
-#: guix/ui.scm:422
+#: guix/ui.scm:336
 msgid "Did you forget a @code{use-modules} form?"
 msgstr "Glömde du en @code{use-modules}-form?"
 
-#: guix/ui.scm:424
+#: guix/ui.scm:338
 #, scheme-format
 msgid "Did you forget @code{(use-modules ~a)}?"
 msgstr "Glömde du @code{(use-modules ~s)}?"
 
-#: guix/ui.scm:433 guix/ui.scm:474 guix/ui.scm:480
+#: guix/ui.scm:348
+#, scheme-format
+msgid ""
+"File @file{~a} should probably start with:\n"
+"\n"
+"@example\n"
+"(define-module ~a)\n"
+"@end example"
+msgstr ""
+
+#: guix/ui.scm:362
+#, scheme-format
+msgid "module name ~a does not match file name '~a'~%"
+msgstr ""
+
+#: guix/ui.scm:366
+#, scheme-format
+msgid "~a: file is empty~%"
+msgstr ""
+
+#: guix/ui.scm:377 guix/ui.scm:425 guix/ui.scm:433 guix/ui.scm:437
 #, scheme-format
 msgid "failed to load '~a': ~a~%"
 msgstr "misslyckades med att läsa in ”~a”: ~a~%"
 
-#: guix/ui.scm:440
+#: guix/ui.scm:384
 #, scheme-format
 msgid "~amissing closing parenthesis~%"
 msgstr "~asaknar avslutande parentes~%"
 
-#: guix/ui.scm:454 guix/ui.scm:877
+#: guix/ui.scm:389
+#, fuzzy, scheme-format
+#| msgid "~a: ~a~%"
+msgid "~s: ~a~%"
+msgstr "~a: ~a~%"
+
+#: guix/ui.scm:405 guix/ui.scm:898
 #, scheme-format
 msgid "exception thrown: ~s~%"
 msgstr "kastat undantag: ~s~%"
 
-#: guix/ui.scm:458 guix/ui.scm:486
+#: guix/ui.scm:409 guix/ui.scm:446
 #, scheme-format
 msgid "failed to load '~a':~%"
 msgstr "misslyckades med att läsa in ”~a”:~%"
 
-#: guix/ui.scm:483
+#: guix/ui.scm:443
 #, scheme-format
 msgid "failed to load '~a': exception thrown: ~s~%"
 msgstr "misslyckades med att läsa in ”~a”: kastat undantag: ~s~%"
 
-#: guix/ui.scm:516
+#: guix/ui.scm:491
+#, fuzzy
+#| msgid ""
+#| "Consider installing the @code{glibc-utf8-locales} or\n"
+#| "@code{glibc-locales} package and defining @code{GUIX_LOCPATH}, along these\n"
+#| "lines:\n"
+#| "\n"
+#| "@example\n"
+#| "guix package -i glibc-utf8-locales\n"
+#| "export GUIX_LOCPATH=\"$HOME/.guix-profile/lib/locale\"\n"
+#| "@end example\n"
+#| "\n"
+#| "See the \"Application Setup\" section in the manual, for more info.\n"
 msgid ""
 "Consider installing the @code{glibc-utf8-locales} or\n"
 "@code{glibc-locales} package and defining @code{GUIX_LOCPATH}, along these\n"
 "lines:\n"
 "\n"
 "@example\n"
-"guix package -i glibc-utf8-locales\n"
+"guix install glibc-utf8-locales\n"
 "export GUIX_LOCPATH=\"$HOME/.guix-profile/lib/locale\"\n"
 "@end example\n"
 "\n"
@@ -4027,15 +4855,15 @@ msgstr ""
 #. TRANSLATORS: Translate "(C)" to the copyright symbol
 #. (C-in-a-circle), if this symbol is available in the user's
 #. locale.  Otherwise, do not translate "(C)"; leave it as-is.  */
-#: guix/ui.scm:554
+#: guix/ui.scm:533
 msgid "(C)"
 msgstr "(C)"
 
-#: guix/ui.scm:555
+#: guix/ui.scm:534
 msgid "the Guix authors\n"
 msgstr "Guix-upphovsmännen\n"
 
-#: guix/ui.scm:556
+#: guix/ui.scm:535
 msgid ""
 "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\n"
 "This is free software: you are free to change and redistribute it.\n"
@@ -4049,7 +4877,7 @@ msgstr ""
 #. package.  Please add another line saying "Report translation bugs to
 #. ...\n" with the address for translation bugs (typically your translation
 #. team's web or email address).
-#: guix/ui.scm:568
+#: guix/ui.scm:547
 #, scheme-format
 msgid ""
 "\n"
@@ -4058,7 +4886,7 @@ msgstr ""
 "\n"
 "Rapportera buggar till: ~a."
 
-#: guix/ui.scm:570
+#: guix/ui.scm:549
 #, scheme-format
 msgid ""
 "\n"
@@ -4067,35 +4895,39 @@ msgstr ""
 "\n"
 "~a hemsida: <~a>"
 
-#: guix/ui.scm:572
+#: guix/ui.scm:551
+#, fuzzy, scheme-format
+#| msgid ""
+#| "\n"
+#| "General help using GNU software: <http://www.gnu.org/gethelp/>"
 msgid ""
 "\n"
-"General help using GNU software: <http://www.gnu.org/gethelp/>"
+"General help using Guix and GNU software: <~a>"
 msgstr ""
 "\n"
 "Allmän hjälp med att använda GNU-programvara: <http://www.gnu.org/gethelp/>"
 
-#: guix/ui.scm:627
+#: guix/ui.scm:607
 #, scheme-format
 msgid "'~a' is not a valid regular expression: ~a~%"
 msgstr "”~a” är inte ett giltigt reguljärt uttryck: ~a~%"
 
-#: guix/ui.scm:633
+#: guix/ui.scm:613
 #, scheme-format
 msgid "~a: invalid number~%"
 msgstr "~a: ogiltigt nummer~%"
 
-#: guix/ui.scm:650
+#: guix/ui.scm:631
 #, scheme-format
 msgid "invalid number: ~a~%"
 msgstr "ogiltigt nummer: ~a~%"
 
-#: guix/ui.scm:673
+#: guix/ui.scm:654
 #, scheme-format
 msgid "unknown unit: ~a~%"
 msgstr "okänd enhet: ~a~%"
 
-#: guix/ui.scm:688
+#: guix/ui.scm:669
 #, scheme-format
 msgid ""
 "You cannot have two different versions\n"
@@ -4104,7 +4936,7 @@ msgstr ""
 "Du kan inte ha två olika versioner\n"
 "eller varianter av @code{~a} i samma profil."
 
-#: guix/ui.scm:691
+#: guix/ui.scm:672
 #, scheme-format
 msgid ""
 "Try upgrading both @code{~a} and @code{~a},\n"
@@ -4113,116 +4945,111 @@ msgstr ""
 "Prova att uppgradera både @code{~a} och @code{~a},\n"
 "eller ta bort en av dem från profilen."
 
-#: guix/ui.scm:710
+#: guix/ui.scm:708
 #, scheme-format
 msgid "~a:~a:~a: package `~a' has an invalid input: ~s~%"
 msgstr "~a:~a~a: paket ”~a” har en ogiltig inmatning: ~s~%"
 
-#: guix/ui.scm:717
+#: guix/ui.scm:715
 #, scheme-format
 msgid "~a: ~a: build system `~a' does not support cross builds~%"
 msgstr "~a: ~a: byggsystem ”~a” har inte stöd för korsbyggen~%"
 
-#: guix/ui.scm:723
+#: guix/ui.scm:721
 #, scheme-format
 msgid "~s: invalid G-expression input~%"
 msgstr "~s: ogiltig inmatning för G-uttryck~%"
 
-#: guix/ui.scm:726
+#: guix/ui.scm:724
 #, scheme-format
 msgid "profile '~a' does not exist~%"
 msgstr "profil ”~a” existerar inte~%"
 
-#: guix/ui.scm:729
+#: guix/ui.scm:727
 #, scheme-format
 msgid "generation ~a of profile '~a' does not exist~%"
 msgstr "generation ~a av profil ”~a” existerar inte~%"
 
-#: guix/ui.scm:734
+#: guix/ui.scm:732
 #, scheme-format
 msgid "package '~a~@[@~a~]~@[:~a~]' not found in profile~%"
 msgstr "paket ”~a~@[@~a~]~@[:~a~]” hittades inte i profil~%"
 
-#: guix/ui.scm:746
+#: guix/ui.scm:744
 #, scheme-format
 msgid "   ... propagated from ~a@~a~%"
 msgstr "   … propagerad från ~a@~a~%"
 
-#: guix/ui.scm:756
+#: guix/ui.scm:754
 #, scheme-format
 msgid "profile contains conflicting entries for ~a~a~%"
 msgstr "profil innehåller poster som står i konflikt för ~a~a~%"
 
-#: guix/ui.scm:759
+#: guix/ui.scm:757
 #, scheme-format
 msgid "  first entry: ~a@~a~a ~a~%"
 msgstr "  första post: ~a@~a~a ~a~%"
 
-#: guix/ui.scm:765
+#: guix/ui.scm:763
 #, scheme-format
 msgid "  second entry: ~a@~a~a ~a~%"
 msgstr "  andra post: ~a@~a~a ~a~%"
 
-#: guix/ui.scm:777
+#: guix/ui.scm:775
 #, scheme-format
 msgid "corrupt input while restoring '~a' from ~s~%"
 msgstr "korrupt inmatning under återställning av ”~a” från ~s~%"
 
-#: guix/ui.scm:779
+#: guix/ui.scm:777
 #, scheme-format
 msgid "corrupt input while restoring archive from ~s~%"
 msgstr "korrupt inmatning under återställning av arkiv från ~s~%"
 
-#: guix/ui.scm:782
+#: guix/ui.scm:780
 #, scheme-format
 msgid "failed to connect to `~a': ~a~%"
 msgstr "misslyckades med att ansluta till ”~a”: ~a~%"
 
-#: guix/ui.scm:790
+#: guix/ui.scm:788
 #, scheme-format
 msgid "reference to invalid output '~a' of derivation '~a'~%"
 msgstr "referens till ogiltig utmatning ”~a” från härledning ”~a”~%"
 
-#: guix/ui.scm:794
+#: guix/ui.scm:792
 #, scheme-format
 msgid "file '~a' could not be found in these directories:~{ ~a~}~%"
 msgstr "fil ”~a” kunde inte hittas bland dessa kataloger:~{ ~a~}~%"
 
-#: guix/ui.scm:799
+#: guix/ui.scm:797
 #, scheme-format
 msgid "program exited~@[ with non-zero exit status ~a~]~@[ terminated by signal ~a~]~@[ stopped by signal ~a~]: ~s~%"
 msgstr "program avslutades~@[ med icke-noll avslutningsstatus ~a~]~@[ avslutades av signal ~a~]~@[ stoppades av signal ~a~]: ~s~%"
 
-#: guix/ui.scm:827
-#, scheme-format
-msgid "~a: ~a~%"
-msgstr "~a: ~a~%"
-
-#: guix/ui.scm:862
+#: guix/ui.scm:877
 #, scheme-format
 msgid "failed to read expression ~s: ~s~%"
 msgstr "misslyckades med att läsa uttryck ~s: ~s~%"
 
-#: guix/ui.scm:868
+#: guix/ui.scm:883
 #, scheme-format
 msgid "failed to evaluate expression '~a':~%"
 msgstr "misslyckades med att utvärdera uttryck ”~a”:~%"
 
-#: guix/ui.scm:871
+#: guix/ui.scm:886
 #, scheme-format
 msgid "syntax error: ~a~%"
 msgstr "syntaxfel: ~a~%"
 
-#: guix/ui.scm:889
+#: guix/ui.scm:910
 #, scheme-format
 msgid "expression ~s does not evaluate to a package~%"
 msgstr "uttryck ~s utvärderas inte till ett paket~%"
 
-#: guix/ui.scm:909
+#: guix/ui.scm:937
 msgid "at least ~,1h MB needed but only ~,1h MB available in ~a~%"
 msgstr "åtminstone ~,1h MB behövs men endast ~,1h MB tillgängligt i ~a~%"
 
-#: guix/ui.scm:1011
+#: guix/ui.scm:1046
 #, scheme-format
 msgid "~:[The following derivation would be built:~%~{   ~a~%~}~;~]"
 msgid_plural "~:[The following derivations would be built:~%~{   ~a~%~}~;~]"
@@ -4231,32 +5058,48 @@ msgstr[1] "~:[Följande härledningar skulle byggas:~%~{   ~a~%~}~;~]"
 
 #. TRANSLATORS: "MB" is for "megabyte"; it should be
 #. translated to the corresponding abbreviation.
-#: guix/ui.scm:1019
+#: guix/ui.scm:1055
 msgid "~:[~,1h MB would be downloaded:~%~{   ~a~%~}~;~]"
 msgstr "~:[~,1h MB skulle hämtas:~%~{   ~a~%~}~;~]"
 
-#: guix/ui.scm:1024
+#: guix/ui.scm:1061
 #, scheme-format
 msgid "~:[The following file would be downloaded:~%~{   ~a~%~}~;~]"
 msgid_plural "~:[The following files would be downloaded:~%~{   ~a~%~}~;~]"
 msgstr[0] "~:[Följande fil skulle hämtas:~%~{   ~a~%~}~;~]"
 msgstr[1] "~:[Följande filer skulle hämtas:~%~{   ~a~%~}~;~]"
 
-#: guix/ui.scm:1030
+#: guix/ui.scm:1068
 #, scheme-format
 msgid "~:[The following graft would be made:~%~{   ~a~%~}~;~]"
 msgid_plural "~:[The following grafts would be made:~%~{   ~a~%~}~;~]"
 msgstr[0] "~:[Följande ympning skulle göras:~%~{   ~a~%~}~;~]"
 msgstr[1] "~:[Följande ympningar skulle göras:~%~{   ~a~%~}~;~]"
 
-#: guix/ui.scm:1035
+#: guix/ui.scm:1073
 #, scheme-format
 msgid "~:[The following profile hook would be built:~%~{   ~a~%~}~;~]"
 msgid_plural "~:[The following profile hooks would be built:~%~{   ~a~%~}~;~]"
 msgstr[0] "~:[Följande profilkrok skulle byggas:~%~{   ~a~%~}~;~]"
 msgstr[1] "~:[Följande profilkrokar skulle byggas:~%~{   ~a~%~}~;~]"
 
-#: guix/ui.scm:1041
+#. TRANSLATORS: "MB" is for "megabyte"; it should be
+#. translated to the corresponding abbreviation.
+#: guix/ui.scm:1085
+#, fuzzy
+#| msgid "~:[~,1h MB would be downloaded:~%~{   ~a~%~}~;~]"
+msgid "~:[~,1h MB would be downloaded~%~;~]"
+msgstr "~:[~,1h MB skulle hämtas:~%~{   ~a~%~}~;~]"
+
+#: guix/ui.scm:1089
+#, fuzzy
+#| msgid "~:[~,1h MB would be downloaded:~%~{   ~a~%~}~;~]"
+msgid "~:[~h item would be downloaded~%~;~]"
+msgid_plural "~:[~h items would be downloaded~%~;~]"
+msgstr[0] "~:[~,1h MB skulle hämtas:~%~{   ~a~%~}~;~]"
+msgstr[1] "~:[~,1h MB skulle hämtas:~%~{   ~a~%~}~;~]"
+
+#: guix/ui.scm:1097
 #, scheme-format
 msgid "~:[The following derivation will be built:~%~{   ~a~%~}~;~]"
 msgid_plural "~:[The following derivations will be built:~%~{   ~a~%~}~;~]"
@@ -4265,92 +5108,113 @@ msgstr[1] "~:[Följande härledningar kommer att byggas:~%~{   ~a~%~}~;~]"
 
 #. TRANSLATORS: "MB" is for "megabyte"; it should be
 #. translated to the corresponding abbreviation.
-#: guix/ui.scm:1049
+#: guix/ui.scm:1106
 msgid "~:[~,1h MB will be downloaded:~%~{   ~a~%~}~;~]"
 msgstr "~:[~,1h MB kommer att hämtas:~%~{   ~a~%~}~;~]"
 
-#: guix/ui.scm:1054
+#: guix/ui.scm:1112
 #, scheme-format
 msgid "~:[The following file will be downloaded:~%~{   ~a~%~}~;~]"
 msgid_plural "~:[The following files will be downloaded:~%~{   ~a~%~}~;~]"
 msgstr[0] "~:[Följande fil kommer att hämtas:~%~{   ~a~%~}~;~]"
 msgstr[1] "~:[Följande filer kommer att hämtas:~%~{   ~a~%~}~;~]"
 
-#: guix/ui.scm:1060
+#: guix/ui.scm:1119
 #, scheme-format
 msgid "~:[The following graft will be made:~%~{   ~a~%~}~;~]"
 msgid_plural "~:[The following grafts will be made:~%~{   ~a~%~}~;~]"
 msgstr[0] "~:[Följande ympning kommer att göras:~%~{   ~a~%~}~;~]"
 msgstr[1] "~:[Följande ympningar kommer att göras:~%~{   ~a~%~}~;~]"
 
-#: guix/ui.scm:1065
+#: guix/ui.scm:1124
 #, scheme-format
 msgid "~:[The following profile hook will be built:~%~{   ~a~%~}~;~]"
 msgid_plural "~:[The following profile hooks will be built:~%~{   ~a~%~}~;~]"
 msgstr[0] "~:[Följande profilkrok kommer att byggas:~%~{   ~a~%~}~;~]"
 msgstr[1] "~:[Följande profilkrokar kommer att byggas:~%~{   ~a~%~}~;~]"
 
-#: guix/ui.scm:1124
+#. TRANSLATORS: "MB" is for "megabyte"; it should be
+#. translated to the corresponding abbreviation.
+#: guix/ui.scm:1136
+#, fuzzy
+#| msgid "~:[~,1h MB will be downloaded:~%~{   ~a~%~}~;~]"
+msgid "~:[~,1h MB will be downloaded~%~;~]"
+msgstr "~:[~,1h MB kommer att hämtas:~%~{   ~a~%~}~;~]"
+
+#: guix/ui.scm:1140
+#, fuzzy
+#| msgid "~:[~,1h MB will be downloaded:~%~{   ~a~%~}~;~]"
+msgid "~:[~h item will be downloaded~%~;~]"
+msgid_plural "~:[~h items will be downloaded~%~;~]"
+msgstr[0] "~:[~,1h MB kommer att hämtas:~%~{   ~a~%~}~;~]"
+msgstr[1] "~:[~,1h MB kommer att hämtas:~%~{   ~a~%~}~;~]"
+
+#: guix/ui.scm:1259
+msgid "(dependencies or package changed)"
+msgstr ""
+
+#: guix/ui.scm:1278
 #, scheme-format
 msgid "The following package would be removed:~%~{~a~%~}~%"
 msgid_plural "The following packages would be removed:~%~{~a~%~}~%"
 msgstr[0] "Följande paket skulle tas bort:~%~{~a~%~}~%"
 msgstr[1] "Följande paket skulle tas bort:~%~{~a~%~}~%"
 
-#: guix/ui.scm:1129
+#: guix/ui.scm:1283
 #, scheme-format
 msgid "The following package will be removed:~%~{~a~%~}~%"
 msgid_plural "The following packages will be removed:~%~{~a~%~}~%"
 msgstr[0] "Följande paket kommer att tas bort:~%~{~a~%~}~%"
 msgstr[1] "Följande paket kommer att tas bort:~%~{~a~%~}~%"
 
-#: guix/ui.scm:1142
+#: guix/ui.scm:1296
 #, scheme-format
 msgid "The following package would be downgraded:~%~{~a~%~}~%"
 msgid_plural "The following packages would be downgraded:~%~{~a~%~}~%"
 msgstr[0] "Följande paket skulle nedgraderas:~%~{~a~%~}~%"
 msgstr[1] "Följande paket skulle nedgraderas:~%~{~a~%~}~%"
 
-#: guix/ui.scm:1147
+#: guix/ui.scm:1301
 #, scheme-format
 msgid "The following package will be downgraded:~%~{~a~%~}~%"
 msgid_plural "The following packages will be downgraded:~%~{~a~%~}~%"
 msgstr[0] "Följande paket kommer att nedgraderas:~%~{~a~%~}~%"
 msgstr[1] "Följande paket kommer att nedgraderas:~%~{~a~%~}~%"
 
-#: guix/ui.scm:1160
+#: guix/ui.scm:1314
 #, scheme-format
 msgid "The following package would be upgraded:~%~{~a~%~}~%"
 msgid_plural "The following packages would be upgraded:~%~{~a~%~}~%"
 msgstr[0] "Följande paket skulle uppgraderas:~%~{~a~%~}~%"
 msgstr[1] "Följande paket skulle uppgraderas:~%~{~a~%~}~%"
 
-#: guix/ui.scm:1165
+#: guix/ui.scm:1319
 #, scheme-format
 msgid "The following package will be upgraded:~%~{~a~%~}~%"
 msgid_plural "The following packages will be upgraded:~%~{~a~%~}~%"
 msgstr[0] "Följande paket kommer att uppgraderas:~%~{~a~%~}~%"
 msgstr[1] "Följande paket kommer att uppgraderas:~%~{~a~%~}~%"
 
-#: guix/ui.scm:1176
+#: guix/ui.scm:1330
 #, scheme-format
 msgid "The following package would be installed:~%~{~a~%~}~%"
 msgid_plural "The following packages would be installed:~%~{~a~%~}~%"
 msgstr[0] "Följande paket skulle installeras:~%~{~a~%~}~%"
 msgstr[1] "Följande paket skulle installeras:~%~{~a~%~}~%"
 
-#: guix/ui.scm:1181
+#: guix/ui.scm:1335
 #, scheme-format
 msgid "The following package will be installed:~%~{~a~%~}~%"
 msgid_plural "The following packages will be installed:~%~{~a~%~}~%"
 msgstr[0] "Följande paket kommer att installeras:~%~{~a~%~}~%"
 msgstr[1] "Följande paket kommer att installeras:~%~{~a~%~}~%"
 
-#: guix/ui.scm:1198 guix/deprecation.scm:46
-msgid "<unknown location>"
-msgstr "<okänd plats>"
+#: guix/ui.scm:1862
+#, scheme-format
+msgid "invalid syntax: ~a~%"
+msgstr "ogiltig syntax: ~a~%"
 
-#: guix/ui.scm:1580
+#: guix/ui.scm:1871
 #, scheme-format
 msgid "Generation ~a\t~a"
 msgstr "Generation ~a\t~a"
@@ -4360,7 +5224,7 @@ msgstr "Generation ~a\t~a"
 #. usual way of presenting dates in your locale.
 #. See https://www.gnu.org/software/guile/manual/html_node/SRFI_002d19-Date-to-string.html
 #. for details.
-#: guix/ui.scm:1589
+#: guix/ui.scm:1881
 #, scheme-format
 msgid "~b ~d ~Y ~T"
 msgstr "~d ~b ~Y ~T"
@@ -4368,27 +5232,39 @@ msgstr "~d ~b ~Y ~T"
 #. TRANSLATORS: The word "current" here is an adjective for
 #. "Generation", as in "current generation".  Use the appropriate
 #. gender where applicable.
-#: guix/ui.scm:1595
+#: guix/ui.scm:1887
 #, scheme-format
 msgid "~a\t(current)~%"
 msgstr "~a\t(aktuell)~%"
 
-#: guix/ui.scm:1638
+#: guix/ui.scm:1921
+#, fuzzy, scheme-format
+#| msgid "cannot access `~a': ~a~%"
+msgid "cannot lock profile ~a: ~a~%"
+msgstr "kan inte komma åt ”~a”: ~a~%"
+
+#: guix/ui.scm:1923
+#, fuzzy, scheme-format
+#| msgid "profile '~a' does not exist~%"
+msgid "profile ~a is locked by another process~%"
+msgstr "profil ”~a” existerar inte~%"
+
+#: guix/ui.scm:1950
 #, scheme-format
 msgid "switched from generation ~a to ~a~%"
 msgstr "växlade från generation ~a till ~a~%"
 
-#: guix/ui.scm:1654
+#: guix/ui.scm:1966
 #, scheme-format
 msgid "deleting ~a~%"
 msgstr "tar bort ~a~%"
 
-#: guix/ui.scm:1685
+#: guix/ui.scm:1997
 #, scheme-format
 msgid "Try `guix --help' for more information.~%"
 msgstr "Prova ”guix --help” för mer information.~%"
 
-#: guix/ui.scm:1713
+#: guix/ui.scm:2078
 msgid ""
 "Usage: guix COMMAND ARGS...\n"
 "Run COMMAND with ARGS.\n"
@@ -4396,21 +5272,21 @@ msgstr ""
 "Användning: guix KOMMANDO ARGUMENT…\n"
 "Kör KOMMANDO med ARGUMENT.\n"
 
-#: guix/ui.scm:1716
+#: guix/ui.scm:2081
 msgid "COMMAND must be one of the sub-commands listed below:\n"
 msgstr "KOMMANDO måste vara ett av underkommandona som listas nedan:\n"
 
-#: guix/ui.scm:1736
+#: guix/ui.scm:2105
 #, scheme-format
 msgid "guix: ~a: command not found~%"
 msgstr "guix: ~a: kommando hittades inte~%"
 
-#: guix/ui.scm:1766
+#: guix/ui.scm:2135
 #, scheme-format
 msgid "guix: missing command name~%"
 msgstr "guix: saknar kommandonamn~%"
 
-#: guix/ui.scm:1774
+#: guix/ui.scm:2143
 #, scheme-format
 msgid "guix: unrecognized option '~a'~%"
 msgstr "guix: okänd flagga ”~a”~%"
@@ -4472,77 +5348,88 @@ msgid "building package cache..."
 msgstr "bygger paket cache…"
 
 #: guix/status.scm:475
-#, scheme-format
-msgid "applying ~a graft for ~a..."
-msgid_plural "applying ~a grafts for ~a..."
+#, fuzzy, scheme-format
+#| msgid "applying ~a graft for ~a..."
+#| msgid_plural "applying ~a grafts for ~a..."
+msgid "applying ~a graft for ~a ..."
+msgid_plural "applying ~a grafts for ~a ..."
 msgstr[0] "tillämpar ~a ympning för ~a…"
 msgstr[1] "tillämpar ~a ympningar för ~a…"
 
-#: guix/status.scm:484
+#: guix/status.scm:483
+#, fuzzy, scheme-format
+#| msgid "building package cache..."
+msgid "building profile with ~a package..."
+msgid_plural "building profile with ~a packages..."
+msgstr[0] "bygger paket cache…"
+msgstr[1] "bygger paket cache…"
+
+#: guix/status.scm:492
 #, scheme-format
 msgid "running profile hook of type '~a'..."
 msgstr "kör profilkrok av typ ”~a”…"
 
-#: guix/status.scm:487
+#: guix/status.scm:495
 #, scheme-format
 msgid "building ~a..."
 msgstr "bygger ~a…"
 
-#: guix/status.scm:492
+#: guix/status.scm:500
 #, scheme-format
 msgid "successfully built ~a"
 msgstr "byggde ~a framgångsrikt"
 
-#: guix/status.scm:498
+#: guix/status.scm:506
 #, scheme-format
 msgid "The following build is still in progress:~%~{  ~a~%~}~%"
 msgid_plural "The following builds are still in progress:~%~{  ~a~%~}~%"
 msgstr[0] "Följande bygge pågår fortfarande:~%~{  ~a~%~}~%"
 msgstr[1] "Följande byggen pågår fortfarande:~%~{  ~a~%~}~%"
 
-#: guix/status.scm:504
+#: guix/status.scm:512
 #, scheme-format
 msgid "build of ~a failed"
 msgstr "bygge av ~a misslyckades"
 
-#: guix/status.scm:508
+#: guix/status.scm:516
 #, scheme-format
 msgid "Could not find build log for '~a'."
 msgstr "Kunde inte hitta bygglogg för ”~a”."
 
-#: guix/status.scm:511
+#: guix/status.scm:519
 #, scheme-format
 msgid "View build log at '~a'."
 msgstr "Granska bygglogg vid ”~a”."
 
-#: guix/status.scm:516
+#: guix/status.scm:524
 #, scheme-format
 msgid "substituting ~a..."
 msgstr "ersätter ~a…"
 
-#: guix/status.scm:520
-#, scheme-format
-msgid "downloading from ~a..."
+#: guix/status.scm:528
+#, fuzzy, scheme-format
+#| msgid "downloading from ~a..."
+msgid "downloading from ~a ..."
 msgstr "hämtar från ~a…"
 
-#: guix/status.scm:545
+#: guix/status.scm:553
 #, scheme-format
 msgid "substitution of ~a complete"
 msgstr "ersättning av ~a färdigställd"
 
-#: guix/status.scm:548
+#: guix/status.scm:556
 #, scheme-format
 msgid "substitution of ~a failed"
 msgstr "ersättning av ~a misslyckades"
 
 #. TRANSLATORS: The final string looks like "sha256 hash mismatch for
 #. /gnu/store/…-sth:", where "sha256" is the hash algorithm.
-#: guix/status.scm:553
+#: guix/status.scm:561
 #, scheme-format
 msgid "~a hash mismatch for ~a:"
 msgstr "~a hash stämmer inte för ~a:"
 
-#: guix/status.scm:555
+#: guix/status.scm:563
 #, scheme-format
 msgid ""
 "  expected hash: ~a\n"
@@ -4551,134 +5438,224 @@ msgstr ""
 "  förväntade hash: ~a\n"
 "  faktisk hash:  ~a~%"
 
-#: guix/status.scm:560
+#: guix/status.scm:568
 #, scheme-format
 msgid "offloading build of ~a to '~a'"
 msgstr "avlastning av bygge av ~a till ”~a”"
 
-#: guix/http-client.scm:117
+#: guix/http-client.scm:125
 #, scheme-format
 msgid "following redirection to `~a'...~%"
 msgstr "följer omdirigering till ”~a”…~%"
 
-#: guix/http-client.scm:129
+#: guix/http-client.scm:137
 #, scheme-format
 msgid "~a: HTTP download failed: ~a (~s)"
 msgstr "~a: HTTP-hämtning misslyckades: ~a (~s)"
 
-#: guix/nar.scm:157
+#: guix/nar.scm:172
 msgid "signature is not a valid s-expression"
 msgstr "signatur är inte ett giltig s-uttryck"
 
-#: guix/nar.scm:166
+#: guix/nar.scm:181
 msgid "invalid signature"
 msgstr "ogiltig signatur"
 
-#: guix/nar.scm:170
+#: guix/nar.scm:185
 msgid "invalid hash"
 msgstr "ogiltig hash"
 
-#: guix/nar.scm:178
+#: guix/nar.scm:193
 msgid "unauthorized public key"
 msgstr "icke auktoriserad publik nyckel"
 
-#: guix/nar.scm:183
+#: guix/nar.scm:198
 msgid "corrupt signature data"
 msgstr "korrupt signaturdata"
 
-#: guix/nar.scm:203
+#: guix/nar.scm:218
 msgid "corrupt file set archive"
 msgstr "korrupt filuppsättningsarkiv"
 
-#: guix/nar.scm:213
+#: guix/nar.scm:228
 #, scheme-format
 msgid "importing file or directory '~a'...~%"
 msgstr "importerar fil eller katalog ”~a”…~%"
 
-#: guix/nar.scm:224
+#: guix/nar.scm:239
 #, scheme-format
 msgid "found valid signature for '~a'~%"
 msgstr "hittade giltig signatur för ”~a”~%"
 
-#: guix/nar.scm:231
+#: guix/nar.scm:246
 msgid "imported file lacks a signature"
 msgstr "importerad fil saknar en signatur"
 
-#: guix/nar.scm:270
+#: guix/nar.scm:285
 msgid "invalid inter-file archive mark"
 msgstr "ogiltig arkivmarkör mellan filer"
 
-#: guix/channels.scm:177
+#: guix/channels.scm:266
+msgid "unsupported '.guix-channel' version"
+msgstr ""
+
+#: guix/channels.scm:272
+msgid "invalid '.guix-channel' file"
+msgstr ""
+
+#: guix/channels.scm:331
+msgid "Authenticating channel '~a', commits ~a to ~a (~h new commits)...~%"
+msgstr ""
+
+#: guix/channels.scm:382
+#, scheme-format
+msgid "channel '~a' lacks an introduction and cannot be authenticated~%"
+msgstr ""
+
+#: guix/channels.scm:387
+msgid ""
+"Add the missing introduction to your\n"
+"channels file to address the issue.  Alternatively, you can pass\n"
+"@option{--disable-authentication}, at the risk of running unauthenticated and\n"
+"thus potentially malicious code."
+msgstr ""
+
+#: guix/channels.scm:391
+#, scheme-format
+msgid "channel authentication disabled~%"
+msgstr ""
+
+#: guix/channels.scm:416
+#, scheme-format
+msgid "aborting update of channel '~a' to commit ~a, which is not a descendant of ~a"
+msgstr ""
+
+#: guix/channels.scm:427
+msgid ""
+"Use @option{--allow-downgrades} to force\n"
+"this downgrade."
+msgstr ""
+
+#: guix/channels.scm:431
+msgid ""
+"This could indicate that the channel has\n"
+"been tampered with and is trying to force a roll-back, preventing you from\n"
+"getting the latest updates.  If you think this is not the case, explicitly\n"
+"allow non-forward updates."
+msgstr ""
+
+#: guix/channels.scm:484
 #, scheme-format
 msgid "Updating channel '~a' from Git repository at '~a'...~%"
 msgstr "Uppdaterar kanal ”~a” från ett Git-arkiv vid ”~a”…~%"
 
-#: guix/channels.scm:366
+#: guix/channels.scm:505
+#, scheme-format
+msgid "pulled channel '~a' from a mirror of ~a, which might be stale~%"
+msgstr ""
+
+#: guix/channels.scm:733
 msgid "'guix' channel is lacking"
 msgstr "”guix”-kanal saknas"
 
-#: guix/profiles.scm:511
+#: guix/channels.scm:735
+msgid ""
+"Make sure your list of channels\n"
+"contains one channel named @code{guix} providing the core of Guix."
+msgstr ""
+
+#: guix/channels.scm:964
+msgid "invalid channel news entry"
+msgstr ""
+
+#: guix/channels.scm:982
+msgid "syntactically invalid channel news file"
+msgstr ""
+
+#: guix/channels.scm:985
+msgid "invalid channel news file"
+msgstr ""
+
+#: guix/profiles.scm:574
 msgid "unsupported manifest format"
 msgstr "manifestformat stöds inte"
 
-#: guix/profiles.scm:1748
+#: guix/profiles.scm:1923
 #, scheme-format
 msgid "while creating directory `~a': ~a"
 msgstr "vid skapande av katalog ”~a”: ~a"
 
-#: guix/profiles.scm:1753
+#: guix/profiles.scm:1928
 #, scheme-format
 msgid "Please create the @file{~a} directory, with you as the owner."
 msgstr "Skapa katalogen @file{~a}, med dig själv som ägare."
 
-#: guix/profiles.scm:1762
+#: guix/profiles.scm:1937
 #, scheme-format
 msgid "directory `~a' is not owned by you"
 msgstr "katalog ”~a” ägs inte av dig"
 
-#: guix/profiles.scm:1766
+#: guix/profiles.scm:1941
 #, scheme-format
 msgid "Please change the owner of @file{~a} to user ~s."
 msgstr "Ändra ägare av @file{~a} till användare ~s."
 
-#: guix/git.scm:159
+#: guix/git.scm:175
 msgid "long Git object ID is required"
 msgstr "långt Git-objekts-ID krävs"
 
-#: guix/git.scm:192
+#: guix/git.scm:226
+#, scheme-format
+msgid "Git error ~a~%"
+msgstr ""
+
+#: guix/git.scm:228 guix/git.scm:418
+#, scheme-format
+msgid "Git error: ~a~%"
+msgstr ""
+
+#: guix/git.scm:256
 #, scheme-format
 msgid "updating submodule '~a'...~%"
 msgstr "uppdaterar undermodul ”~a”…~%"
 
-#: guix/git.scm:205
+#: guix/git.scm:269
 #, scheme-format
 msgid "Support for submodules is missing; please upgrade Guile-Git.~%"
 msgstr "Stöd för undermoduler saknas; uppgradera Guile-Git.~%"
 
-#: guix/git.scm:344
+#: guix/git.scm:512
 #, scheme-format
 msgid "cannot fetch commit ~a from ~a: ~a"
 msgstr "kan inte hämta incheckning ~a från ~a: ~a"
 
-#: guix/git.scm:347
+#: guix/git.scm:515
 #, scheme-format
 msgid "cannot fetch branch '~a' from ~a: ~a"
 msgstr "kan inte hämta gren ”~a” från ~a: ~a"
 
-#: guix/git.scm:350
+#: guix/git.scm:518
 #, scheme-format
 msgid "Git failure while fetching ~a: ~a"
 msgstr "Git-fel vid hämtning av ~a: ~a"
 
-#: guix/deprecation.scm:51
-#, scheme-format
-msgid "~a: warning: '~a' is deprecated~@[, use '~a' instead~]~%"
+#: guix/deprecation.scm:37
+#, fuzzy, scheme-format
+#| msgid "~a: warning: '~a' is deprecated~@[, use '~a' instead~]~%"
+msgid "'~a' is deprecated, use '~a' instead~%"
 msgstr "~a: varning: ”~a” är föråldrat~@[, använd ”~a” istället~]~%"
 
-#: gnu/build/bootloader.scm:91
+#: guix/deprecation.scm:39
 #, scheme-format
-msgid "'~a~{ ~a~}' exited with status ~a; output follows:~%~%~{  ~a~%~}"
-msgstr "”~a~{ ~a~}” avslutades med status ~a; utmatning följer:~%~%~{  ~a~%~}"
+msgid "'~a' is deprecated~%"
+msgstr ""
+
+#. TRANSLATORS: 'derivation' must not be translated; it refers to the
+#. 'derivation' procedure.
+#: guix/derivations.scm:775
+#, scheme-format
+msgid "in '~a': deprecated 'derivation' calling convention used~%"
+msgstr ""
 
 #: nix/nix-daemon/guix-daemon.cc:66
 msgid "guix-daemon -- perform derivation builds and store accesses"
@@ -4752,58 +5729,96 @@ msgstr "URLER"
 msgid "use URLS as the default list of substitute providers"
 msgstr "använd URLER som standardlistan av ersättningsleverantörer"
 
-#: nix/nix-daemon/guix-daemon.cc:117
-msgid "do not use the 'build hook'"
-msgstr "använd inte ”byggkroken”"
+#: nix/nix-daemon/guix-daemon.cc:117 nix/nix-daemon/guix-daemon.cc:120
+msgid "do not attempt to offload builds"
+msgstr ""
 
-#: nix/nix-daemon/guix-daemon.cc:119
+#: nix/nix-daemon/guix-daemon.cc:122
 msgid "cache build failures"
 msgstr "cacha byggfel"
 
-#: nix/nix-daemon/guix-daemon.cc:121
+#: nix/nix-daemon/guix-daemon.cc:124
 msgid "build each derivation N times in a row"
 msgstr "bygg varje härledning N gånger i rad"
 
-#: nix/nix-daemon/guix-daemon.cc:123
+#: nix/nix-daemon/guix-daemon.cc:126
 msgid "do not keep build logs"
 msgstr "behåll inte byggloggar"
 
-#: nix/nix-daemon/guix-daemon.cc:126
+#: nix/nix-daemon/guix-daemon.cc:129
 msgid "disable compression of the build logs"
 msgstr "inaktivera komprimering av byggloggarna"
 
-#: nix/nix-daemon/guix-daemon.cc:128
+#: nix/nix-daemon/guix-daemon.cc:131
 msgid "use the specified compression type for build logs"
 msgstr "använd den angivna komprimeringstypen för byggloggar"
 
-#: nix/nix-daemon/guix-daemon.cc:133
+#: nix/nix-daemon/guix-daemon.cc:136
 msgid "disable automatic file \"deduplication\" in the store"
 msgstr "inaktiva automatisk ”fildeduplicering” för arkivet"
 
-#: nix/nix-daemon/guix-daemon.cc:143
+#: nix/nix-daemon/guix-daemon.cc:146
 msgid "impersonate Linux 2.6"
 msgstr "imitera Linux 2.6"
 
-#: nix/nix-daemon/guix-daemon.cc:147
+#: nix/nix-daemon/guix-daemon.cc:150
 msgid "tell whether the GC must keep outputs of live derivations"
 msgstr "berätta huruvida GC måste behålla utmatningar för live-härledningar"
 
-#: nix/nix-daemon/guix-daemon.cc:150
+#: nix/nix-daemon/guix-daemon.cc:153
 msgid "tell whether the GC must keep derivations corresponding to live outputs"
 msgstr "berätta huruvida GC måste behålla härledningar som motsvarar live-utmatningar"
 
-#: nix/nix-daemon/guix-daemon.cc:153
+#: nix/nix-daemon/guix-daemon.cc:156
 msgid "SOCKET"
 msgstr "UTTAG"
 
-#: nix/nix-daemon/guix-daemon.cc:154
+#: nix/nix-daemon/guix-daemon.cc:157
 msgid "listen for connections on SOCKET"
 msgstr "lyssna efter anslutningar på UTTAG"
 
-#: nix/nix-daemon/guix-daemon.cc:156
+#: nix/nix-daemon/guix-daemon.cc:159
 msgid "produce debugging output"
 msgstr "producera felsökningsutmatning"
 
+#~ msgid "Retry system install"
+#~ msgstr "Försök att installera systemet igen"
+
+#~ msgid "Hide"
+#~ msgstr "Göm"
+
+#~ msgid "~a package in profile~%"
+#~ msgid_plural "~a packages in profile~%"
+#~ msgstr[0] "~a paket i profil~%"
+#~ msgstr[1] "~a paket i profil~%"
+
+#~ msgid "The following environment variable definitions may be needed:~%"
+#~ msgstr "Följande definitioner av miljövariabler kan behövas: ~%"
+
+#~ msgid "would install new manifest from '~a' with ~d entries~%"
+#~ msgstr "skulle installera nytt manifest från ”~a” med ~d poster~%"
+
+#~ msgid "installing new manifest from '~a' with ~d entries~%"
+#~ msgstr "installerar nytt manifest från ”~a” med ~d poster~%"
+
+#~ msgid "Updater for KDE packages"
+#~ msgstr "Uppdaterare för KDE-paket"
+
+#~ msgid "(could be because the public key is not in your keyring)~%"
+#~ msgstr "(kan vara för att den publika nyckeln inte finns i din nyckelring)~%"
+
+#~ msgid "warning: "
+#~ msgstr "varning: "
+
+#~ msgid "error: "
+#~ msgstr "fel: "
+
+#~ msgid "<unknown location>"
+#~ msgstr "<okänd plats>"
+
+#~ msgid "do not use the 'build hook'"
+#~ msgstr "använd inte ”byggkroken”"
+
 #~ msgid ""
 #~ "Consider running @command{guix gc} to free\n"
 #~ "space."
diff --git a/po/guix/ta.po b/po/guix/ta.po
index 9683ae0789..3057902e0f 100644
--- a/po/guix/ta.po
+++ b/po/guix/ta.po
@@ -3,13 +3,14 @@
 # This file is distributed under the same license as the guix package.
 # List of contributors follow:
 # Arun Isaac <arunisaac@systemreboot.net>, 2020.
+# Nardhini <nardhini@systemreboot.net>, 2020.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: guix 1.1.0-pre1\n"
-"Report-Msgid-Bugs-To: ludo@gnu.org\n"
-"POT-Creation-Date: 2020-02-12 00:13+0100\n"
-"PO-Revision-Date: 2020-04-02 17:22+0530\n"
+"Project-Id-Version: guix 1.2.0-pre3\n"
+"Report-Msgid-Bugs-To: bug-guix@gnu.org\n"
+"POT-Creation-Date: 2020-11-05 17:27+0100\n"
+"PO-Revision-Date: 2020-11-11 11:48+0530\n"
 "Last-Translator: Arun Isaac <arunisaac@systemreboot.net>\n"
 "Language-Team: Tamil <tamil@systemreboot.net>\n"
 "Language: ta\n"
@@ -19,12 +20,12 @@ msgstr ""
 "X-Bugs: Report translation errors to the Language-Team address.\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
 
-#: gnu.scm:83
+#: gnu.scm:81
 #, scheme-format
 msgid "module ~a not found"
 msgstr "~a நிரல்கூறு கிடைக்கவில்லை"
 
-#: gnu.scm:101
+#: gnu.scm:99
 msgid ""
 "You may use @command{guix package --show=foo | grep location} to search\n"
 "for the location of package @code{foo}.\n"
@@ -36,12 +37,12 @@ msgstr ""
 "@code{location: gnu/packages/bar.scm:174:2} எனக் கிடைத்தால்,\n"
 "@code{bar} யை @code{use-package-modules} யில் சேர்க்க."
 
-#: gnu.scm:109
+#: gnu.scm:107
 #, scheme-format
 msgid "Try adding @code{(use-package-modules ~a)}."
 msgstr "@code{(use-package-modules ~a)} சேர்த்துப் பார்க்க."
 
-#: gnu.scm:124
+#: gnu.scm:122
 #, scheme-format
 msgid ""
 "You may use @command{guix system search ~a} to search for a service\n"
@@ -49,11 +50,11 @@ msgid ""
 "If you get the line @code{location: gnu/services/foo.scm:188:2},\n"
 "add @code{foo} to the @code{use-service-modules} form."
 msgstr ""
-"@code{~*~a} க்குப் பொருந்தும் பணிக்குத் தேட @command{guix system search ~2:*~a} என்ற கட்டளையைப் பயன்படுத்தலாம்.\n"
+"@code{~1@*~a} க்குப் பொருந்தும் பணிக்குத் தேட @command{guix system search ~0@*~a} கட்டளையைப் பயன்படுத்தலாம்.\n"
 "@code{location: gnu/services/foo.scm:188:2} எனக் கிடைத்தால்,\n"
 "@code{foo} யை @code{use-service-modules} யில் சேர்க்க."
 
-#: gnu.scm:133
+#: gnu.scm:131
 #, scheme-format
 msgid "Try adding @code{(use-service-modules ~a)}."
 msgstr "@code{(use-service-modules ~a)} சேர்த்துப் பார்க்க."
@@ -63,160 +64,195 @@ msgstr "@code{(use-service-modules ~a)} சேர்த்துப் பார
 msgid "~a: patch not found"
 msgstr "~a: திருத்தம் கிடைக்கவில்லை"
 
-#: gnu/packages.scm:460 gnu/packages.scm:501
+#: gnu/packages.scm:480 gnu/packages.scm:521
 #, scheme-format
 msgid "ambiguous package specification `~a'~%"
 msgstr "தெளிவற்ற மென்பொருள் தொகுப்பு குறிப்பு `~a'~%"
 
-#: gnu/packages.scm:461 gnu/packages.scm:502
+#: gnu/packages.scm:481 gnu/packages.scm:522
 #, scheme-format
 msgid "choosing ~a@~a from ~a~%"
 msgstr "~a@~a யிலிருந்து ~a~% யைத் தேர்ந்தெடுக்கப்பட்டது"
 
-#: gnu/packages.scm:466 guix/scripts/package.scm:211
+#: gnu/packages.scm:486 guix/scripts/package.scm:211
 #, scheme-format
 msgid "package '~a' has been superseded by '~a'~%"
-msgstr "'~a' மென்பொருள் தொகுப்பு '~a' ஆல் மாற்றாக்கப்பட்டது~%"
+msgstr "'~a' நிரல்தொகுப்பு '~a' நிரல்தொகுப்பால் மாற்றாக்கப்பட்டது~%"
 
-#: gnu/packages.scm:473 gnu/packages.scm:490
+#: gnu/packages.scm:493 gnu/packages.scm:510
 #, scheme-format
 msgid "~A: package not found for version ~a~%"
 msgstr "~A: பதிப்பு ~a க்கு மென்பொருள் தொகுப்பு கிடைக்கவில்லை"
 
-#: gnu/packages.scm:474 gnu/packages.scm:491
+#: gnu/packages.scm:494 gnu/packages.scm:511
 #, scheme-format
 msgid "~A: unknown package~%"
-msgstr "~A: அறியப்படா மென்பொருள் தொகுப்பு~%"
+msgstr "~A: இல்லா நிரல்தொகுப்பு~%"
 
-#: gnu/packages.scm:530
+#: gnu/packages.scm:550
 #, scheme-format
 msgid "package `~a' lacks output `~a'~%"
 msgstr "`~a' மென்பொருள் தொகுப்பிற்கு `~a' என்ற வெளியீடில்லை~%"
 
-#: gnu/services.scm:242
+#: gnu/services.scm:249
 #, scheme-format
 msgid "~a: no value specified for service of type '~a'"
-msgstr ""
+msgstr "~a: '~a' வகைப் பணிக்கு மதிப்பு குறிப்பிடவில்லை"
 
-#: gnu/services.scm:340
+#: gnu/services.scm:347
 msgid ""
 "Build the operating system top-level directory, which in\n"
 "turn refers to everything the operating system needs: its kernel, initrd,\n"
 "system profile, boot script, and so on."
 msgstr ""
 
-#: gnu/services.scm:370
+#: gnu/services.scm:377
 msgid ""
 "Produce the operating system's boot script, which is spawned\n"
 "by the initrd once the root file system is mounted."
 msgstr ""
 
-#: gnu/services.scm:451
+#: gnu/services.scm:493
 msgid ""
 "Store provenance information about the system in the system\n"
 "itself: the channels used when building the system, and its configuration\n"
 "file, when available."
 msgstr ""
+"நிலையத்தைப் பற்றிய தோற்றமுதல் தகவலை நிலையத்திலேயே பதி: நிலையத்தைக் கட்டமைக்கப்\n"
+"பயன்படுத்திய அலைத்தடங்களும் அமைவடிவக்கோப்பு இருப்பின் அதையும்."
 
-#: gnu/services.scm:509
+#: gnu/services.scm:576
 msgid ""
 "Delete files from @file{/tmp}, @file{/var/run}, and other\n"
 "temporary locations at boot time."
 msgstr ""
+"@file{/tmp}, @file{/var/run} மற்றும் பிறத் தற்காலிக இடங்களிலிருக்கும்\n"
+"கோப்புகளைக் கணினி தொடங்கும்பொழுது அழி."
 
-#: gnu/services.scm:563
+#: gnu/services.scm:630
 msgid ""
 "Run @dfn{activation} code at boot time and upon\n"
 "@command{guix system reconfigure} completion."
 msgstr ""
 
-#: gnu/services.scm:614
+#: gnu/services.scm:718
 msgid ""
 "Add special files to the root file system---e.g.,\n"
 "@file{/usr/bin/env}."
-msgstr ""
+msgstr "@file{/usr/bin/env} போன்றச் சிறப்புக் கோப்புகளை வேர் கோப்பமைப்பில் அமை."
+
+#: gnu/services.scm:741
+#, scheme-format
+msgid "duplicate '~a' entry for /etc"
+msgstr "/etc அடைவில் '~a' கோப்பு மறுபடியும் குறிப்பிடப்பட்டுள்ளது"
 
-#: gnu/services.scm:650
+#: gnu/services.scm:769
 msgid "Populate the @file{/etc} directory."
 msgstr "@file{/etc} அடைவின் உள்ளடக்கத்தை அமை."
 
-#: gnu/services.scm:667
+#: gnu/services.scm:786
 msgid ""
 "Populate @file{/run/setuid-programs} with the specified\n"
 "executables, making them setuid-root."
 msgstr ""
+"@file{/run/setuid-programs} அடைவில் குறிப்பிட்ட நிரல்களை இட்டு அவற்றை\n"
+"setuid-root ஆக்கு."
 
-#: gnu/services.scm:687
+#: gnu/services.scm:806
 msgid ""
 "This is the @dfn{system profile}, available as\n"
 "@file{/run/current-system/profile}.  It contains packages that the sysadmin\n"
 "wants to be globally available to all the system users."
 msgstr ""
+"இது @file{/run/current-system/profile} கீழுள்ள @dfn{நிலைய அமைப்பு}.  இது\n"
+"எல்லா பயனர்க்கும் பொதுவான நிரல்தொகுப்புகளைக் கொண்டது."
 
-#: gnu/services.scm:707
+#: gnu/services.scm:826
 msgid ""
 "Make ``firmware'' files loadable by the operating system\n"
 "kernel.  Firmware may then be uploaded to some of the machine's devices, such\n"
 "as Wifi cards."
 msgstr ""
 
-#: gnu/services.scm:738
+#: gnu/services.scm:857
 msgid ""
 "Register garbage-collector roots---i.e., store items that\n"
 "will not be reclaimed by the garbage collector."
 msgstr ""
+"குப்பைக்கூட்டி வேர்களைப்---அதாவது, குப்பைக்கூட்டி கூட்டக்கூடாத\n"
+"கிடங்குருப்படிகளைப்---பதி."
 
-#: gnu/services.scm:764
+#: gnu/services.scm:883
 #, scheme-format
 msgid "no target of type '~a' for service '~a'"
-msgstr ""
+msgstr "~1@*~a பணிக்குத் தேவையான ~0@*~a பணியில்லை"
 
-#: gnu/services.scm:790 gnu/services.scm:909
+#: gnu/services.scm:909 gnu/services.scm:1028
 #, scheme-format
 msgid "more than one target service of type '~a'"
 msgstr "ஒன்றிற்கு மேலான '~a' வகைப் பணி"
 
-#: gnu/services.scm:899
+#: gnu/services.scm:1018
 #, scheme-format
 msgid "service of type '~a' not found"
 msgstr "'~a' வகைப் பணி கிடைக்கவில்லை"
 
-#: gnu/system.scm:347
+#: gnu/system.scm:421
 #, scheme-format
 msgid "unrecognized boot parameters at '~a'~%"
 msgstr ""
 
-#: gnu/system.scm:772
+#: gnu/system.scm:973
 #, scheme-format
 msgid "using a string for file '~a' is deprecated; use 'plain-file' instead~%"
 msgstr "'~a' கோப்பிற்கு வரியுருத்தொடரைப் பயன்படுத்துவது வழக்கொழிந்தது; அதற்குப் பதிலாக 'plain-file' யைப் பயன்படுத்துக~%"
 
-#: gnu/system.scm:788
+#: gnu/system.scm:989
 #, scheme-format
 msgid "using a monadic value for '~a' is deprecated; use 'plain-file' instead~%"
 msgstr ""
 
-#: gnu/system.scm:938
+#: gnu/system.scm:1116
+msgid "missing root file system"
+msgstr "வேர் கோப்பமைப்பு இல்லை"
+
+#: gnu/system.scm:1192
 #, scheme-format
 msgid "~a: invalid locale name"
 msgstr ""
 
-#: gnu/services/shepherd.scm:194
+#: gnu/services/shepherd.scm:112
+msgid ""
+"Run the GNU Shepherd as PID 1---i.e., the operating system's first\n"
+"process.  The Shepherd takes care of managing services such as daemons by\n"
+"ensuring they are started and stopped in the right order."
+msgstr ""
+
+#: gnu/services/shepherd.scm:202
 #, scheme-format
 msgid "service '~a' provided more than once"
 msgstr "'~a' பணி ஒரு முறைக்கு மேலாக வழங்கப்பட்டிருக்கிறது"
 
-#: gnu/services/shepherd.scm:209
+#: gnu/services/shepherd.scm:217
 #, scheme-format
 msgid "service '~a' requires '~a', which is not provided by any service"
 msgstr "'~a' பணிக்கு எந்த பணியினாலும் வழங்கப்படாத '~a' தேவை"
 
-#: gnu/system/mapped-devices.scm:136
+#: gnu/services/shepherd.scm:547
+msgid ""
+"The @code{user-processes} service is responsible for\n"
+"terminating all the processes so that the root file system can be re-mounted\n"
+"read-only, just before rebooting/halting.  Processes still running after a few\n"
+"seconds after @code{SIGTERM} has been sent are terminated with\n"
+"@code{SIGKILL}."
+msgstr ""
+
+#: gnu/system/mapped-devices.scm:137
 #, scheme-format
 msgid "you may need these modules in the initrd for ~a:~{ ~a~}"
 msgstr ""
 
-#: gnu/system/mapped-devices.scm:140
+#: gnu/system/mapped-devices.scm:142
 #, scheme-format
 msgid ""
 "Try adding them to the\n"
@@ -233,82 +269,106 @@ msgid ""
 "If you think this diagnostic is inaccurate, use the @option{--skip-checks}\n"
 "option of @command{guix system}.\n"
 msgstr ""
+"அவற்றை @code{operating-system} வரையறையின் @code{initrd-modules} புலத்தில்\n"
+"பின்வருவது போல் சேர்க்க.\n"
+"\n"
+"@example\n"
+" (operating-system\n"
+"   ;; @dots{}\n"
+"   (initrd-modules (append (list~{ ~s~})\n"
+"                           %base-initrd-modules)))\n"
+"@end example\n"
+"\n"
+"இவ்வறிவுரை தவறானதெனின் @code{guix system} கட்டளையின் @code{--skip-checks}\n"
+"செயல்மாற்றியைப் பயன்படுத்துக.\n"
 
-#: gnu/system/mapped-devices.scm:219
+#: gnu/system/mapped-devices.scm:221
 #, scheme-format
 msgid "no LUKS partition with UUID '~a'"
-msgstr ""
+msgstr "'~a' UUID உடைய LUKS வகிர்வில்லை"
 
-#: gnu/system/shadow.scm:236
+#: gnu/system/shadow.scm:233
 #, scheme-format
 msgid "supplementary group '~a' of user '~a' is undeclared"
-msgstr ""
+msgstr "'~1@*~a' பயனரின் துணைக்குழு '~0@*~a' குறிப்பிடப்படவில்லை"
 
-#: gnu/system/shadow.scm:246
+#: gnu/system/shadow.scm:243
 #, scheme-format
 msgid "primary group '~a' of user '~a' is undeclared"
+msgstr "'~1@*~a' பயனரின் முதற்குழு '~0@*~a' குறிப்பிடப்படவில்லை"
+
+#: gnu/system/shadow.scm:383
+msgid ""
+"Ensure the specified user accounts and groups exist, as well\n"
+"as each account home directory."
 msgstr ""
+"குறிப்பிடப்பட்டுள்ள பயனரும் குழுக்களும் பயனரின் மனையடைவுகளும் உள்ளனவென\n"
+"உறுதிசெய்."
 
-#: guix/import/opam.scm:141
+#: guix/import/opam.scm:148
 #, scheme-format
 msgid "Package not found in opam repository: ~a~%"
-msgstr ""
+msgstr "opam களஞ்சியத்தில் நிரல்தொகுப்பில்லை: ~a~%"
 
-#: guix/import/opam.scm:357
+#: guix/import/opam.scm:368
 msgid "Updater for OPAM packages"
-msgstr ""
+msgstr "OPAM நிரல்தொகுப்புத் திறமுயர்த்தி"
 
-#: gnu/installer.scm:194
+#: gnu/installer.scm:214
 msgid "Locale"
 msgstr ""
 
-#: gnu/installer.scm:210 gnu/installer/newt/timezone.scm:58
+#: gnu/installer.scm:230 gnu/installer/newt/timezone.scm:58
 msgid "Timezone"
 msgstr "நேரவலயம்"
 
-#: gnu/installer.scm:226
+#: gnu/installer.scm:247
 msgid "Keyboard mapping selection"
 msgstr ""
 
-#: gnu/installer.scm:234 gnu/installer/newt/hostname.scm:26
+#: gnu/installer.scm:256 gnu/installer/newt/hostname.scm:26
 msgid "Hostname"
-msgstr ""
+msgstr "நிலையப்பெயர்"
 
-#: gnu/installer.scm:243
+#: gnu/installer.scm:265
 msgid "Network selection"
-msgstr ""
+msgstr "பிணையத்தேர்வு"
 
-#: gnu/installer.scm:250 gnu/installer/newt/user.scm:67
-#: gnu/installer/newt/user.scm:203
+#: gnu/installer.scm:272 gnu/installer/newt/user.scm:68
+#: gnu/installer/newt/user.scm:205
 msgid "User creation"
 msgstr "பயனர் ஆக்கம்"
 
-#: gnu/installer.scm:258
+#: gnu/installer.scm:280
 msgid "Services"
 msgstr "பணிகள்"
 
-#: gnu/installer.scm:269
+#: gnu/installer.scm:291
 msgid "Partitioning"
-msgstr ""
+msgstr "வகிர்வமைத்தல்"
 
-#: gnu/installer.scm:276 gnu/installer/newt/final.scm:51
+#: gnu/installer.scm:298 gnu/installer/newt/final.scm:54
 msgid "Configuration file"
 msgstr "அமைவடிவக்கோப்பு"
 
 #: gnu/installer/connman.scm:196
 msgid "Could not determine the state of connman."
-msgstr ""
+msgstr "connman யின் நிலையை அறிய இயலவில்லை."
 
 #: gnu/installer/connman.scm:322
 msgid "Unable to find expected regexp."
 msgstr ""
 
-#: gnu/installer/newt.scm:60
+#: gnu/installer/newt.scm:50
+msgid "Press <F1> for installation parameters."
+msgstr ""
+
+#: gnu/installer/newt.scm:63
 #, scheme-format
 msgid "The installer has encountered an unexpected problem. The backtrace is displayed below. Please report it by email to <~a>."
 msgstr ""
 
-#: gnu/installer/newt.scm:63
+#: gnu/installer/newt.scm:66
 msgid "Unexpected problem"
 msgstr ""
 
@@ -322,85 +382,124 @@ msgstr ""
 
 #: gnu/installer/newt/ethernet.scm:76
 msgid "Please select an ethernet network."
-msgstr ""
+msgstr "ஈத்தர்வலையைத் தேர்க."
 
 #: gnu/installer/newt/ethernet.scm:77
 msgid "Ethernet connection"
-msgstr ""
+msgstr "ஈத்தர்வலை இணைப்பு"
 
-#: gnu/installer/newt/ethernet.scm:81 gnu/installer/newt/keymap.scm:44
+#: gnu/installer/newt/ethernet.scm:81 gnu/installer/newt/keymap.scm:56
 #: gnu/installer/newt/locale.scm:43 gnu/installer/newt/network.scm:63
-#: gnu/installer/newt/network.scm:84 gnu/installer/newt/page.scm:177
-#: gnu/installer/newt/page.scm:510 gnu/installer/newt/page.scm:580
-#: gnu/installer/newt/partition.scm:55 gnu/installer/newt/partition.scm:84
-#: gnu/installer/newt/partition.scm:116 gnu/installer/newt/partition.scm:127
-#: gnu/installer/newt/partition.scm:624 gnu/installer/newt/partition.scm:645
-#: gnu/installer/newt/partition.scm:685 gnu/installer/newt/partition.scm:736
-#: gnu/installer/newt/partition.scm:747 gnu/installer/newt/services.scm:85
-#: gnu/installer/newt/timezone.scm:63 gnu/installer/newt/user.scm:202
+#: gnu/installer/newt/network.scm:84 gnu/installer/newt/page.scm:303
+#: gnu/installer/newt/page.scm:666 gnu/installer/newt/page.scm:751
+#: gnu/installer/newt/partition.scm:56 gnu/installer/newt/partition.scm:91
+#: gnu/installer/newt/partition.scm:123 gnu/installer/newt/partition.scm:134
+#: gnu/installer/newt/partition.scm:631 gnu/installer/newt/partition.scm:652
+#: gnu/installer/newt/partition.scm:698 gnu/installer/newt/partition.scm:749
+#: gnu/installer/newt/partition.scm:760 gnu/installer/newt/services.scm:87
+#: gnu/installer/newt/timezone.scm:63 gnu/installer/newt/user.scm:204
 #: gnu/installer/newt/wifi.scm:205
 msgid "Exit"
 msgstr "வெளியேறு"
 
-#: gnu/installer/newt/final.scm:44
+#: gnu/installer/newt/final.scm:47
 #, scheme-format
 msgid "We're now ready to proceed with the installation! A system configuration file has been generated, it is displayed below.  This file will be available as '~a' on the installed system.  The new system will be created from this file once you've pressed OK.  This will take a few minutes."
 msgstr ""
+"இப்பொழுது நிறுவலாம்! கீழ்காணும் நிலைய அமைவடிவக்கோப்பு உருவாக்கப்பட்டுள்ளது.\n"
+"இக்கோப்பு நிறுவிய நிலையத்தில் '~a' என்னும் இடத்தில் இருக்கும்.  \"சரி\" அழுத்தியதும்\n"
+"நிலையம் நிறுவப்படும்.  இதுச் சில நிமிடங்களாகும்."
 
-#: gnu/installer/newt/final.scm:66
+#: gnu/installer/newt/final.scm:71
 msgid "Installation complete"
 msgstr "நிறுவல் முடிந்தது"
 
-#: gnu/installer/newt/final.scm:67 gnu/installer/newt/welcome.scm:115
+#: gnu/installer/newt/final.scm:72 gnu/installer/newt/welcome.scm:139
 msgid "Reboot"
-msgstr ""
+msgstr "மீள்தொடக்கு"
 
-#: gnu/installer/newt/final.scm:68
+#: gnu/installer/newt/final.scm:73
 msgid "Congratulations!  Installation is now complete.  You may remove the device containing the installation image and press the button to reboot."
 msgstr ""
 
-#: gnu/installer/newt/final.scm:77
+#: gnu/installer/newt/final.scm:87
 msgid "Installation failed"
 msgstr "நிறுவல் தோல்வியுற்றது"
 
-#: gnu/installer/newt/final.scm:78
-msgid "Restart installer"
+#: gnu/installer/newt/final.scm:88
+msgid "Resume"
+msgstr "தொடர்"
+
+#: gnu/installer/newt/final.scm:89
+msgid "Restart the installer"
+msgstr "நிறுவியை மீள்துவங்கு"
+
+#: gnu/installer/newt/final.scm:90
+msgid "The final system installation step failed.  You can resume from a specific step, or restart the installer."
+msgstr ""
+"இறுதிக்கட்ட நிறுவல் தோல்வியுற்றது.  குறிப்பிட்டக் கட்டத்திலிருந்து மீள்துவங்கலாம்\n"
+"அல்லது நிறுவியை முதலிலிருந்து மீள்துவங்கலாம்."
+
+#: gnu/installer/newt/parameters.scm:30
+msgid "Please enter the HTTP proxy URL. If you enter an empty string, proxy usage will be disabled."
 msgstr ""
 
-#: gnu/installer/newt/final.scm:79
-msgid "Retry system install"
+#: gnu/installer/newt/parameters.scm:32
+msgid "HTTP proxy configuration"
 msgstr ""
 
-#: gnu/installer/newt/final.scm:80
-msgid "The final system installation step failed.  You can retry the last step, or restart the installer."
+#: gnu/installer/newt/parameters.scm:42
+msgid "Change keyboard layout"
 msgstr ""
 
+#: gnu/installer/newt/parameters.scm:43
+msgid "Configure HTTP proxy"
+msgstr ""
+
+#: gnu/installer/newt/parameters.scm:46
+msgid "Please choose one of the following parameters or press ‘Back’ to go back to the installation process."
+msgstr ""
+
+#: gnu/installer/newt/parameters.scm:48
+msgid "Installation parameters"
+msgstr "நிறுவல் வரைகூறு"
+
+#: gnu/installer/newt/parameters.scm:53 gnu/installer/newt/keymap.scm:74
+#: gnu/installer/newt/locale.scm:63 gnu/installer/newt/locale.scm:78
+#: gnu/installer/newt/locale.scm:94 gnu/installer/newt/partition.scm:588
+#: gnu/installer/newt/timezone.scm:64
+msgid "Back"
+msgstr "பின்"
+
 #: gnu/installer/newt/hostname.scm:25
 msgid "Please enter the system hostname."
 msgstr ""
 
-#: gnu/installer/newt/keymap.scm:37
+#: gnu/installer/newt/keymap.scm:38
 msgid "Layout"
 msgstr ""
 
-#: gnu/installer/newt/keymap.scm:40
-msgid "Please choose your keyboard layout."
+#: gnu/installer/newt/keymap.scm:43
+msgid "Please choose your keyboard layout. It will only be used during the installation process. Non-Latin layouts can be toggled with Alt+Shift."
+msgstr ""
+
+#: gnu/installer/newt/keymap.scm:46
+msgid "Please choose your keyboard layout. It will be used during the install process, and for the installed system. Non-Latin layouts can be toggled with Alt+Shift. You can switch to a different layout at any time from the parameters menu."
 msgstr ""
 
-#: gnu/installer/newt/keymap.scm:52
+#: gnu/installer/newt/keymap.scm:55 gnu/installer/newt/network.scm:62
+#: gnu/installer/newt/page.scm:302
+msgid "Continue"
+msgstr "தொடர்"
+
+#: gnu/installer/newt/keymap.scm:67
 msgid "Variant"
 msgstr ""
 
-#: gnu/installer/newt/keymap.scm:55
+#: gnu/installer/newt/keymap.scm:70
 msgid "Please choose a variant for your keyboard layout."
 msgstr ""
 
-#: gnu/installer/newt/keymap.scm:59 gnu/installer/newt/locale.scm:63
-#: gnu/installer/newt/locale.scm:78 gnu/installer/newt/locale.scm:94
-#: gnu/installer/newt/partition.scm:581 gnu/installer/newt/timezone.scm:64
-msgid "Back"
-msgstr "பின்"
-
 #: gnu/installer/newt/locale.scm:36
 msgid "Locale language"
 msgstr ""
@@ -457,10 +556,6 @@ msgstr "நிறுத்து"
 msgid "Internet access"
 msgstr ""
 
-#: gnu/installer/newt/network.scm:62 gnu/installer/newt/page.scm:176
-msgid "Continue"
-msgstr "தொடர்"
-
 #: gnu/installer/newt/network.scm:64
 msgid "The install process requires Internet access but no network devices were found. Do you want to continue anyway?"
 msgstr ""
@@ -478,321 +573,324 @@ msgstr ""
 msgid "Waiting for technology ~a to be powered."
 msgstr ""
 
-#: gnu/installer/newt/network.scm:124
+#: gnu/installer/newt/network.scm:128
 msgid "Checking connectivity"
 msgstr ""
 
-#: gnu/installer/newt/network.scm:125
+#: gnu/installer/newt/network.scm:129
 msgid "Waiting for Internet access establishment..."
 msgstr ""
 
-#: gnu/installer/newt/network.scm:135
+#: gnu/installer/newt/network.scm:139
 msgid "The selected network does not provide access to the Internet, please try again."
 msgstr ""
 
-#: gnu/installer/newt/network.scm:137 gnu/installer/newt/wifi.scm:108
+#: gnu/installer/newt/network.scm:141 gnu/installer/newt/wifi.scm:108
 msgid "Connection error"
 msgstr ""
 
-#: gnu/installer/newt/page.scm:72
+#: gnu/installer/newt/page.scm:192
 #, scheme-format
 msgid "Connecting to ~a, please wait."
 msgstr ""
 
-#: gnu/installer/newt/page.scm:73
+#: gnu/installer/newt/page.scm:193
 msgid "Connection in progress"
 msgstr ""
 
-#: gnu/installer/newt/page.scm:92 gnu/installer/newt/user.scm:59
+#: gnu/installer/newt/page.scm:212 gnu/installer/newt/user.scm:60
 msgid "Show"
 msgstr "காட்டு"
 
-#: gnu/installer/newt/page.scm:99 gnu/installer/newt/page.scm:509
-#: gnu/installer/newt/page.scm:579 gnu/installer/newt/partition.scm:444
-#: gnu/installer/newt/partition.scm:623 gnu/installer/newt/partition.scm:644
-#: gnu/installer/newt/partition.scm:683 gnu/installer/newt/user.scm:65
-#: gnu/installer/newt/user.scm:201
+#: gnu/installer/newt/page.scm:219 gnu/installer/newt/page.scm:665
+#: gnu/installer/newt/page.scm:750 gnu/installer/newt/partition.scm:451
+#: gnu/installer/newt/partition.scm:630 gnu/installer/newt/partition.scm:651
+#: gnu/installer/newt/partition.scm:690 gnu/installer/newt/user.scm:66
+#: gnu/installer/newt/user.scm:203
 msgid "OK"
 msgstr "சரி"
 
-#: gnu/installer/newt/page.scm:125
+#: gnu/installer/newt/page.scm:245
 msgid "Please enter a non empty input."
 msgstr ""
 
-#: gnu/installer/newt/page.scm:126 gnu/installer/newt/user.scm:121
+#: gnu/installer/newt/page.scm:246 gnu/installer/newt/user.scm:123
 msgid "Empty input"
 msgstr ""
 
-#: gnu/installer/newt/page.scm:582
+#: gnu/installer/newt/page.scm:753
 msgid "Edit"
-msgstr "திருத்து"
+msgstr "தொகு"
 
-#: gnu/installer/newt/partition.scm:46
+#: gnu/installer/newt/partition.scm:47
 msgid "Everything is one partition"
 msgstr "எல்லாம் ஒரே வகிர்வில்"
 
-#: gnu/installer/newt/partition.scm:47
+#: gnu/installer/newt/partition.scm:48
 msgid "Separate /home partition"
 msgstr "தனி /home வகிர்வு"
 
-#: gnu/installer/newt/partition.scm:49
+#: gnu/installer/newt/partition.scm:50
 msgid "Please select a partitioning scheme."
 msgstr "வகிர்வுத் திட்டத்தைத் தேர்ந்தெடுக்க."
 
-#: gnu/installer/newt/partition.scm:50
+#: gnu/installer/newt/partition.scm:51
 msgid "Partition scheme"
 msgstr "வகிர்வுத் திட்டம்"
 
-#: gnu/installer/newt/partition.scm:62
-msgid "We are about to format your hard disk.  All its data will be lost.  Do you wish to continue?"
+#. TRANSLATORS: The ~{ and ~} format specifiers are used to iterate the list
+#. of device names of the user partitions that will be formatted.
+#: gnu/installer/newt/partition.scm:65
+#, scheme-format
+msgid "We are about to write the configured partition table to the disk and format the partitions listed below.  Their data will be lost.  Do you wish to continue?~%~{ - ~a~%~}"
 msgstr ""
 
-#: gnu/installer/newt/partition.scm:64
+#: gnu/installer/newt/partition.scm:71
 msgid "Format disk?"
 msgstr ""
 
-#: gnu/installer/newt/partition.scm:67
+#: gnu/installer/newt/partition.scm:74
 msgid "Partition formatting is in progress, please wait."
 msgstr ""
 
-#: gnu/installer/newt/partition.scm:68
+#: gnu/installer/newt/partition.scm:75
 msgid "Preparing partitions"
 msgstr ""
 
-#: gnu/installer/newt/partition.scm:79
+#: gnu/installer/newt/partition.scm:86
 msgid "Please select a disk."
 msgstr "வட்டைத் தேர்ந்தெடுக்க."
 
-#: gnu/installer/newt/partition.scm:80
+#: gnu/installer/newt/partition.scm:87
 msgid "Disk"
 msgstr "வட்டு"
 
-#: gnu/installer/newt/partition.scm:92
+#: gnu/installer/newt/partition.scm:99
 msgid "Select a new partition table type. Be careful, all data on the disk will be lost."
 msgstr ""
 
-#: gnu/installer/newt/partition.scm:94
+#: gnu/installer/newt/partition.scm:101
 msgid "Partition table"
 msgstr ""
 
-#: gnu/installer/newt/partition.scm:111
+#: gnu/installer/newt/partition.scm:118
 msgid "Please select a partition type."
 msgstr "வகிர்வு வகையைத் தேர்ந்தெடுக்க."
 
-#: gnu/installer/newt/partition.scm:112
+#: gnu/installer/newt/partition.scm:119
 msgid "Partition type"
 msgstr "வகிர்வு வகை"
 
-#: gnu/installer/newt/partition.scm:122
+#: gnu/installer/newt/partition.scm:129
 msgid "Please select the file-system type for this partition."
 msgstr "இவ்வகிர்வுக்கு கோப்பமைப்பைத் தேர்ந்தெடுக்க."
 
-#: gnu/installer/newt/partition.scm:123
+#: gnu/installer/newt/partition.scm:130
 msgid "File-system type"
 msgstr "கோப்பமைப்பு"
 
-#: gnu/installer/newt/partition.scm:136
+#: gnu/installer/newt/partition.scm:143
 msgid "Primary partitions count exceeded."
 msgstr ""
 
-#: gnu/installer/newt/partition.scm:137 gnu/installer/newt/partition.scm:142
-#: gnu/installer/newt/partition.scm:147
+#: gnu/installer/newt/partition.scm:144 gnu/installer/newt/partition.scm:149
+#: gnu/installer/newt/partition.scm:154
 msgid "Creation error"
 msgstr ""
 
-#: gnu/installer/newt/partition.scm:141
+#: gnu/installer/newt/partition.scm:148
 msgid "Extended partition creation error."
 msgstr ""
 
-#: gnu/installer/newt/partition.scm:146
+#: gnu/installer/newt/partition.scm:153
 msgid "Logical partition creation error."
 msgstr ""
 
-#: gnu/installer/newt/partition.scm:160
+#: gnu/installer/newt/partition.scm:167
 #, scheme-format
 msgid "Please enter the password for the encryption of partition ~a (label: ~a)."
 msgstr ""
 
-#: gnu/installer/newt/partition.scm:162 gnu/installer/newt/wifi.scm:92
+#: gnu/installer/newt/partition.scm:169 gnu/installer/newt/wifi.scm:92
 msgid "Password required"
 msgstr "கடவுச்சொல் தேவை"
 
-#: gnu/installer/newt/partition.scm:167
+#: gnu/installer/newt/partition.scm:174
 #, scheme-format
 msgid "Please confirm the password for the encryption of partition ~a (label: ~a)."
 msgstr ""
 
-#: gnu/installer/newt/partition.scm:169 gnu/installer/newt/user.scm:158
+#: gnu/installer/newt/partition.scm:176 gnu/installer/newt/user.scm:160
 msgid "Password confirmation required"
 msgstr ""
 
-#: gnu/installer/newt/partition.scm:181 gnu/installer/newt/user.scm:166
+#: gnu/installer/newt/partition.scm:188 gnu/installer/newt/user.scm:168
 msgid "Password mismatch, please try again."
 msgstr ""
 
-#: gnu/installer/newt/partition.scm:182 gnu/installer/newt/user.scm:167
+#: gnu/installer/newt/partition.scm:189 gnu/installer/newt/user.scm:169
 msgid "Password error"
 msgstr ""
 
-#: gnu/installer/newt/partition.scm:268
+#: gnu/installer/newt/partition.scm:275
 msgid "Please enter the partition gpt name."
 msgstr ""
 
-#: gnu/installer/newt/partition.scm:269
+#: gnu/installer/newt/partition.scm:276
 msgid "Partition name"
 msgstr "வகிர்வு பெயர்"
 
-#: gnu/installer/newt/partition.scm:299
+#: gnu/installer/newt/partition.scm:306
 msgid "Please enter the encrypted label"
 msgstr ""
 
-#: gnu/installer/newt/partition.scm:300
+#: gnu/installer/newt/partition.scm:307
 msgid "Encryption label"
 msgstr ""
 
-#: gnu/installer/newt/partition.scm:317
+#: gnu/installer/newt/partition.scm:324
 #, scheme-format
 msgid "Please enter the size of the partition. The maximum size is ~a."
 msgstr ""
 
-#: gnu/installer/newt/partition.scm:319
+#: gnu/installer/newt/partition.scm:326
 msgid "Partition size"
 msgstr "வகிர்வளவு"
 
-#: gnu/installer/newt/partition.scm:337
+#: gnu/installer/newt/partition.scm:344
 msgid "The percentage can not be superior to 100."
 msgstr "விழுக்காடு 100 க்கு மேல் இருக்க முடியாது."
 
-#: gnu/installer/newt/partition.scm:338 gnu/installer/newt/partition.scm:343
-#: gnu/installer/newt/partition.scm:348
+#: gnu/installer/newt/partition.scm:345 gnu/installer/newt/partition.scm:350
+#: gnu/installer/newt/partition.scm:355
 msgid "Size error"
 msgstr ""
 
-#: gnu/installer/newt/partition.scm:342
+#: gnu/installer/newt/partition.scm:349
 msgid "The requested size is incorrectly formatted, or too large."
 msgstr ""
 
-#: gnu/installer/newt/partition.scm:347
+#: gnu/installer/newt/partition.scm:354
 msgid "The request size is superior to the maximum size."
 msgstr ""
 
-#: gnu/installer/newt/partition.scm:367
+#: gnu/installer/newt/partition.scm:374
 msgid "Please enter the desired mounting point for this partition. Leave this field empty if you don't want to set a mounting point."
 msgstr ""
 
-#: gnu/installer/newt/partition.scm:369
+#: gnu/installer/newt/partition.scm:376
 msgid "Mounting point"
 msgstr ""
 
-#: gnu/installer/newt/partition.scm:433
+#: gnu/installer/newt/partition.scm:440
 #, scheme-format
 msgid "Creating ~a partition starting at ~a of ~a."
 msgstr ""
 
-#: gnu/installer/newt/partition.scm:435
+#: gnu/installer/newt/partition.scm:442
 #, scheme-format
 msgid "You are currently editing partition ~a."
 msgstr ""
 
-#: gnu/installer/newt/partition.scm:438
+#: gnu/installer/newt/partition.scm:445
 msgid "Partition creation"
 msgstr ""
 
-#: gnu/installer/newt/partition.scm:439
+#: gnu/installer/newt/partition.scm:446
 msgid "Partition edit"
 msgstr ""
 
-#: gnu/installer/newt/partition.scm:620
+#: gnu/installer/newt/partition.scm:627
 #, scheme-format
 msgid "Are you sure you want to delete everything on disk ~a?"
 msgstr ""
 
-#: gnu/installer/newt/partition.scm:622
+#: gnu/installer/newt/partition.scm:629
 msgid "Delete disk"
 msgstr ""
 
-#: gnu/installer/newt/partition.scm:636
+#: gnu/installer/newt/partition.scm:643
 msgid "You cannot delete a free space area."
 msgstr ""
 
-#: gnu/installer/newt/partition.scm:637 gnu/installer/newt/partition.scm:643
+#: gnu/installer/newt/partition.scm:644 gnu/installer/newt/partition.scm:650
 msgid "Delete partition"
 msgstr ""
 
-#: gnu/installer/newt/partition.scm:641
+#: gnu/installer/newt/partition.scm:648
 #, scheme-format
 msgid "Are you sure you want to delete partition ~a?"
 msgstr ""
 
-#: gnu/installer/newt/partition.scm:658
+#: gnu/installer/newt/partition.scm:665
 msgid ""
 "You can change a disk's partition table by selecting it and pressing ENTER. You can also edit a partition by selecting it and pressing ENTER, or remove it by pressing DELETE. To create a new partition, select a free space area and press ENTER.\n"
 "\n"
 "At least one partition must have its mounting point set to '/'."
 msgstr ""
 
-#: gnu/installer/newt/partition.scm:664
+#: gnu/installer/newt/partition.scm:671
 #, scheme-format
 msgid "This is the proposed partitioning. It is still possible to edit it or to go back to install menu by pressing the Exit button.~%~%"
 msgstr ""
 
-#: gnu/installer/newt/partition.scm:674
+#: gnu/installer/newt/partition.scm:681
 msgid "Guided partitioning"
 msgstr ""
 
-#: gnu/installer/newt/partition.scm:675
+#: gnu/installer/newt/partition.scm:682
 msgid "Manual partitioning"
 msgstr ""
 
-#: gnu/installer/newt/partition.scm:694
+#: gnu/installer/newt/partition.scm:707
 msgid "No root mount point found."
 msgstr ""
 
-#: gnu/installer/newt/partition.scm:695
+#: gnu/installer/newt/partition.scm:708
 msgid "Missing mount point"
 msgstr ""
 
-#: gnu/installer/newt/partition.scm:726
+#: gnu/installer/newt/partition.scm:739
 msgid "Guided - using the entire disk"
 msgstr ""
 
-#: gnu/installer/newt/partition.scm:727
+#: gnu/installer/newt/partition.scm:740
 msgid "Guided - using the entire disk with encryption"
 msgstr ""
 
-#: gnu/installer/newt/partition.scm:728
+#: gnu/installer/newt/partition.scm:741
 msgid "Manual"
 msgstr ""
 
-#: gnu/installer/newt/partition.scm:730
+#: gnu/installer/newt/partition.scm:743
 msgid "Please select a partitioning method."
 msgstr "வகிர்வமைத்தல் முறையைத் தேர்ந்தெடுக்க."
 
-#: gnu/installer/newt/partition.scm:731
+#: gnu/installer/newt/partition.scm:744
 msgid "Partitioning method"
 msgstr "வகிர்வமைத்தல் முறை"
 
-#: gnu/installer/newt/services.scm:36
+#: gnu/installer/newt/services.scm:37
 msgid "Please select the desktop(s) environment(s) you wish to install. If you select multiple desktops environments, you will be able to choose the one to use on the log-in screen."
 msgstr ""
 
-#: gnu/installer/newt/services.scm:39
+#: gnu/installer/newt/services.scm:40
 msgid "Desktop environment"
 msgstr ""
 
-#: gnu/installer/newt/services.scm:56
+#: gnu/installer/newt/services.scm:57
 msgid "You can now select networking services to run on your system."
 msgstr ""
 
-#: gnu/installer/newt/services.scm:58
+#: gnu/installer/newt/services.scm:59
 msgid "Network service"
 msgstr ""
 
-#: gnu/installer/newt/services.scm:71
+#: gnu/installer/newt/services.scm:72
 msgid "Network management"
 msgstr ""
 
-#: gnu/installer/newt/services.scm:74
+#: gnu/installer/newt/services.scm:75
 msgid ""
 "Choose the method to manage network connections.\n"
 "\n"
@@ -803,65 +901,65 @@ msgstr ""
 msgid "Please select a timezone."
 msgstr ""
 
-#: gnu/installer/newt/user.scm:44
+#: gnu/installer/newt/user.scm:45
 msgid "Name"
 msgstr "பெயர்"
 
-#: gnu/installer/newt/user.scm:46
+#: gnu/installer/newt/user.scm:47
 msgid "Real name"
 msgstr "முழுப் பெயர்"
 
-#: gnu/installer/newt/user.scm:48
+#: gnu/installer/newt/user.scm:49
 msgid "Home directory"
 msgstr "மனை அடைவு"
 
-#: gnu/installer/newt/user.scm:50
+#: gnu/installer/newt/user.scm:51
 msgid "Password"
 msgstr "கடவுச்சொல்"
 
-#: gnu/installer/newt/user.scm:120
+#: gnu/installer/newt/user.scm:122
 msgid "Empty inputs are not allowed."
 msgstr ""
 
-#: gnu/installer/newt/user.scm:157
+#: gnu/installer/newt/user.scm:159
 msgid "Please confirm the password."
 msgstr "கடவுச்சொல்லை உறுதி செய்க."
 
 #. TRANSLATORS: Leave "root" untranslated: it refers to the name of the
 #. system administrator account.
-#: gnu/installer/newt/user.scm:174
+#: gnu/installer/newt/user.scm:176
 msgid "Please choose a password for the system administrator (\"root\")."
 msgstr "மேலாண்மையர் (root) கடவுச்சொல்லைத் தேர்ந்தெடுக்க."
 
-#: gnu/installer/newt/user.scm:176
+#: gnu/installer/newt/user.scm:178
 msgid "System administrator password"
 msgstr "மேலாண்மையர் கடவுச்சொல்"
 
-#: gnu/installer/newt/user.scm:189
+#: gnu/installer/newt/user.scm:191
 msgid "Please add at least one user to system using the 'Add' button."
 msgstr ""
 
-#: gnu/installer/newt/user.scm:192
+#: gnu/installer/newt/user.scm:194
 msgid "Add"
 msgstr "சேர்"
 
-#: gnu/installer/newt/user.scm:193
+#: gnu/installer/newt/user.scm:195
 msgid "Delete"
 msgstr "நீக்கு"
 
-#: gnu/installer/newt/user.scm:252
+#: gnu/installer/newt/user.scm:255
 msgid "Please create at least one user."
 msgstr ""
 
-#: gnu/installer/newt/user.scm:253
+#: gnu/installer/newt/user.scm:256
 msgid "No user"
 msgstr ""
 
-#: gnu/installer/newt/welcome.scm:95
+#: gnu/installer/newt/welcome.scm:119
 msgid "GNU Guix install"
 msgstr "GNU Guix நிறுவல்"
 
-#: gnu/installer/newt/welcome.scm:96
+#: gnu/installer/newt/welcome.scm:120
 msgid ""
 "Welcome to GNU Guix system installer!\n"
 "\n"
@@ -870,11 +968,11 @@ msgid ""
 "If you are familiar with GNU/Linux and you want tight control over the installation process, you can instead choose manual installation.  Documentation is accessible at any time by pressing Ctrl-Alt-F2."
 msgstr ""
 
-#: gnu/installer/newt/welcome.scm:105
+#: gnu/installer/newt/welcome.scm:129
 msgid "Graphical install using a terminal based interface"
 msgstr ""
 
-#: gnu/installer/newt/welcome.scm:108
+#: gnu/installer/newt/welcome.scm:132
 msgid "Install using the shell based process"
 msgstr ""
 
@@ -924,36 +1022,85 @@ msgstr ""
 msgid "Wifi"
 msgstr ""
 
-#: gnu/installer/parted.scm:395 gnu/installer/parted.scm:432
+#: gnu/installer/parted.scm:404 gnu/installer/parted.scm:441
 msgid "Free space"
 msgstr "வெற்றிடம்"
 
-#: gnu/installer/parted.scm:1345
+#: gnu/installer/parted.scm:530
+#, scheme-format
+msgid "Name: ~a"
+msgstr "பெயர்: ~a"
+
+#: gnu/installer/parted.scm:531 gnu/installer/parted.scm:577
+msgid "None"
+msgstr ""
+
+#: gnu/installer/parted.scm:536
+#, scheme-format
+msgid "Type: ~a"
+msgstr ""
+
+#: gnu/installer/parted.scm:540
+#, scheme-format
+msgid "File system type: ~a"
+msgstr "கோப்பமைப்பு வகை: ~a"
+
+#: gnu/installer/parted.scm:546
+#, scheme-format
+msgid "Bootable flag: ~:[off~;on~]"
+msgstr ""
+
+#: gnu/installer/parted.scm:550
+#, scheme-format
+msgid "ESP flag: ~:[off~;on~]"
+msgstr ""
+
+#: gnu/installer/parted.scm:556
+#, scheme-format
+msgid "Size: ~a"
+msgstr ""
+
+#: gnu/installer/parted.scm:562
+#, scheme-format
+msgid "Encryption: ~:[No~a~;Yes (label '~a')~]"
+msgstr ""
+
+#: gnu/installer/parted.scm:568
+#, scheme-format
+msgid "Format the partition? ~:[No~;Yes~]"
+msgstr ""
+
+#: gnu/installer/parted.scm:574
+#, scheme-format
+msgid "Mount point: ~a"
+msgstr ""
+
+#: gnu/installer/parted.scm:1374
 #, scheme-format
 msgid "Device ~a is still in use."
 msgstr ""
 
-#: gnu/installer/services.scm:88
+#: gnu/installer/services.scm:94
 msgid "OpenSSH secure shell daemon (sshd)"
 msgstr ""
 
-#: gnu/installer/services.scm:92
+#: gnu/installer/services.scm:98
 msgid "Tor anonymous network router"
 msgstr ""
 
-#: gnu/installer/services.scm:96
+#: gnu/installer/services.scm:102
 msgid "Mozilla NSS certificates, for HTTPS access"
 msgstr ""
 
-#: gnu/installer/services.scm:103
+#: gnu/installer/services.scm:109
 msgid "NetworkManager network connection manager"
 msgstr ""
 
-#: gnu/installer/services.scm:108
+#: gnu/installer/services.scm:114
 msgid "Connman network connection manager"
 msgstr ""
 
-#: gnu/installer/services.scm:113
+#: gnu/installer/services.scm:119
 msgid "DHCP client (dynamic IP address assignment)"
 msgstr ""
 
@@ -962,121 +1109,161 @@ msgstr ""
 msgid "Unable to locate path: ~a."
 msgstr ""
 
-#: gnu/installer/utils.scm:64
+#: gnu/installer/utils.scm:77
 #, scheme-format
 msgid "Press Enter to continue.~%"
 msgstr ""
 
-#: gnu/installer/utils.scm:86
+#: gnu/installer/utils.scm:102
 #, scheme-format
 msgid "Command failed with exit code ~a.~%"
 msgstr ""
 
-#: gnu/machine/ssh.scm:106
+#: gnu/machine/ssh.scm:113
 #, scheme-format
 msgid "<machine-ssh-configuration> without a 'host-key' is deprecated~%"
 msgstr ""
 
-#: gnu/machine/ssh.scm:169
+#: gnu/machine/ssh.scm:188
 #, scheme-format
 msgid "device '~a' not found: ~a"
 msgstr ""
 
-#: gnu/machine/ssh.scm:187
+#: gnu/machine/ssh.scm:203
 #, scheme-format
 msgid "no file system with label '~a'"
 msgstr ""
 
-#: gnu/machine/ssh.scm:210
+#: gnu/machine/ssh.scm:222
 #, scheme-format
 msgid "no file system with UUID '~a'"
 msgstr ""
 
-#: gnu/machine/ssh.scm:267
+#: gnu/machine/ssh.scm:274
 #, scheme-format
-msgid "~a missing modules ~{ ~a~}~%"
+msgid "missing modules for ~a:~{ ~a~}~%"
 msgstr ""
 
-#: gnu/machine/ssh.scm:283
+#: gnu/machine/ssh.scm:309
 #, scheme-format
 msgid "incorrect target system ('~a' was given, while the system reports that it is '~a')~%"
 msgstr ""
 
-#: gnu/machine/ssh.scm:383
+#: gnu/machine/ssh.scm:425
 #, scheme-format
 msgid "no signing key '~a'. have you run 'guix archive --generate-key?'"
 msgstr ""
 
-#: gnu/machine/ssh.scm:434
+#: gnu/machine/ssh.scm:476
 msgid "could not roll-back machine"
 msgstr ""
 
-#: gnu/machine/ssh.scm:466
+#: gnu/machine/ssh.scm:514
 msgid ""
 "Provisioning for machines that are accessible over SSH\n"
 "and have a known host-name. This entails little more than maintaining an SSH\n"
 "connection to the host."
 msgstr ""
 
-#: gnu/machine/ssh.scm:478
+#: gnu/machine/ssh.scm:524
 #, scheme-format
 msgid ""
 "unsupported machine configuration '~a'\n"
 "for environment of type '~a'"
 msgstr ""
 
-#: gnu/packages/bootstrap.scm:137
+#: gnu/packages/bootstrap.scm:152
 #, scheme-format
 msgid "could not find bootstrap binary '~a' for system '~a'"
 msgstr ""
 
-#: gnu/packages/bootstrap.scm:436
+#: gnu/packages/bootstrap.scm:459
 msgid "Raw build system with direct store access"
 msgstr ""
 
-#: gnu/packages/bootstrap.scm:444
+#: gnu/packages/bootstrap.scm:466
+msgid "Bootstrap Guile"
+msgstr ""
+
+#: gnu/packages/bootstrap.scm:467
 msgid "Pre-built Guile for bootstrapping purposes."
 msgstr ""
 
-#: guix/build/utils.scm:713
+#: gnu/packages/bootstrap.scm:650
+msgid "Bootstrap binaries and headers of the GNU C Library"
+msgstr ""
+
+#: gnu/packages/bootstrap.scm:748
+msgid "Bootstrap binaries of the GNU Compiler Collection"
+msgstr ""
+
+#: gnu/packages/bootstrap.scm:796
+msgid "Bootstrap binaries of MesCC Tools"
+msgstr ""
+
+#: gnu/packages/bootstrap.scm:846
+msgid "Bootstrap binaries of Mes"
+msgstr ""
+
+#: guix/build/utils.scm:715
 #, scheme-format
 msgid "'~a~{ ~a~}' exited with status ~a; output follows:~%~%~{  ~a~%~}"
 msgstr ""
 
-#: guix/scripts.scm:61
+#: guix/scripts.scm:85
+msgid "main commands"
+msgstr "முதன்மையான கட்டளைகள்"
+
+#: guix/scripts.scm:86
+msgid "software development commands"
+msgstr "நிரலாக்க கட்டளைகள்"
+
+#: guix/scripts.scm:87
+msgid "packaging commands"
+msgstr "நிரல்தொகுத்தல் கட்டளைகள்"
+
+#: guix/scripts.scm:88
+msgid "plumbing commands"
+msgstr ""
+
+#: guix/scripts.scm:89
+msgid "internal commands"
+msgstr ""
+
+#: guix/scripts.scm:122
 #, scheme-format
 msgid "invalid argument: ~a~%"
 msgstr "ஏற்கத்தகாச் செயலுருபு: ~a~%"
 
-#: guix/scripts.scm:89 guix/scripts/download.scm:150
-#: guix/scripts/search.scm:69 guix/scripts/show.scm:69
+#: guix/scripts.scm:150 guix/scripts/download.scm:167
+#: guix/scripts/search.scm:71 guix/scripts/show.scm:71
 #: guix/scripts/import/cran.scm:84 guix/scripts/import/elpa.scm:84
-#: guix/scripts/publish.scm:1020 guix/scripts/edit.scm:87
-#: guix/scripts/describe.scm:258 guix/scripts/processes.scm:230
+#: guix/scripts/publish.scm:1088 guix/scripts/edit.scm:89
+#: guix/scripts/describe.scm:311 guix/scripts/processes.scm:232
 #, scheme-format
 msgid "~A: unrecognized option~%"
 msgstr "~A: அறியப்படாச் செயல்மாற்றி~%"
 
-#: guix/scripts.scm:172
+#: guix/scripts.scm:233
 #, scheme-format
 msgid "Your Guix installation is ~a day old.\n"
 msgid_plural "Your Guix installation is ~a days old.\n"
 msgstr[0] "உங்கள் Guix நிலையம் ~a நாள் பழமையானது.\n"
-msgstr[1] "உங்கள் Guix நிலையம் ~a நாட்களுக்கு மேல் பழமையானது.\n"
+msgstr[1] "உங்கள் Guix நிலையம் ~a நாட்கள் பழமையானது.\n"
 
-#: guix/scripts.scm:178
+#: guix/scripts.scm:239
 #, scheme-format
 msgid ""
 "Consider running 'guix pull' followed by\n"
 "'~a' to get up-to-date packages and security updates.\n"
 msgstr ""
 
-#: guix/scripts.scm:202
+#: guix/scripts.scm:303
 #, scheme-format
-msgid "only ~,1f% of free space available on ~a~%"
-msgstr "~*~a யில் ~2:*~,1f% வெற்றிடம் தான் உள்ளது~%"
+msgid "only ~,1f GiB of free space available on ~a~%"
+msgstr "~1@*~a பாதையில் ~0@*~,1f GiB வெற்றிடம் தான் உள்ளது~%"
 
-#: guix/scripts.scm:204
+#: guix/scripts.scm:305
 msgid ""
 "Consider deleting old profile\n"
 "generations and collecting garbage, along these lines:\n"
@@ -1085,94 +1272,40 @@ msgid ""
 "guix gc --delete-generations=1m\n"
 "@end example\n"
 msgstr ""
+"பழைய தனியமைப்பு வரிசைகளை நீக்கி குப்பைக் கூட்டக் கருதுக. இதைப் பின்வருமாறு\n"
+"செய்யலாம்:\n"
+"\n"
+"@example\n"
+"guix gc --delete-generations=1m\n"
+"@end example\n"
 
-#: guix/scripts/build.scm:86
+#: guix/scripts/build.scm:83
 #, scheme-format
 msgid "cannot access build log at '~a':~%"
-msgstr "'~a' கட்டுக்குறிப்பை அணுக இயலவில்லை:~%"
+msgstr "'~a' பெயர்குறிப்பு அணுக இயலவில்லை:~%"
 
-#: guix/scripts/build.scm:140
+#: guix/scripts/build.scm:137
 #, scheme-format
 msgid "failed to create GC root `~a': ~a~%"
-msgstr ""
-
-#: guix/scripts/build.scm:245 guix/scripts/build.scm:310
-#, scheme-format
-msgid "invalid replacement specification: ~s~%"
-msgstr ""
-
-#: guix/scripts/build.scm:292
-#, scheme-format
-msgid "the source of ~a is not a Git reference~%"
-msgstr ""
-
-#: guix/scripts/build.scm:380
-#, scheme-format
-msgid "~a: invalid Git URL replacement specification~%"
-msgstr ""
-
-#: guix/scripts/build.scm:425
-msgid ""
-"\n"
-"      --with-source=SOURCE\n"
-"                         use SOURCE when building the corresponding package"
-msgstr ""
-
-#: guix/scripts/build.scm:428
-msgid ""
-"\n"
-"      --with-input=PACKAGE=REPLACEMENT\n"
-"                         replace dependency PACKAGE by REPLACEMENT"
-msgstr ""
-
-#: guix/scripts/build.scm:431
-msgid ""
-"\n"
-"      --with-graft=PACKAGE=REPLACEMENT\n"
-"                         graft REPLACEMENT on packages that refer to PACKAGE"
-msgstr ""
-
-#: guix/scripts/build.scm:434
-msgid ""
-"\n"
-"      --with-branch=PACKAGE=BRANCH\n"
-"                         build PACKAGE from the latest commit of BRANCH"
-msgstr ""
-
-#: guix/scripts/build.scm:437
-msgid ""
-"\n"
-"      --with-commit=PACKAGE=COMMIT\n"
-"                         build PACKAGE from COMMIT"
-msgstr ""
-
-#: guix/scripts/build.scm:440
-msgid ""
-"\n"
-"      --with-git-url=PACKAGE=URL\n"
-"                         build PACKAGE from the repository at URL"
-msgstr ""
-
-#: guix/scripts/build.scm:471
-#, scheme-format
-msgid "transformation '~a' had no effect on ~a~%"
-msgstr "'~a' உருமாற்றம் ~a மீது எத்தாக்கமும் கொள்ளவில்லை~%"
+msgstr "`~a' குப்பைத்திரட்டி வேரை உருவாக்க இயலவில்லை: ~a~%"
 
-#: guix/scripts/build.scm:489 guix/scripts/search.scm:41
-#: guix/scripts/show.scm:41 guix/scripts/lint.scm:98 guix/scripts/edit.scm:48
-#: guix/scripts/size.scm:246 guix/scripts/graph.scm:509
+#: guix/scripts/build.scm:152 guix/scripts/search.scm:41
+#: guix/scripts/show.scm:41 guix/scripts/lint.scm:107 guix/scripts/edit.scm:48
+#: guix/scripts/size.scm:246 guix/scripts/graph.scm:546
 msgid ""
 "\n"
 "  -L, --load-path=DIR    prepend DIR to the package module search path"
 msgstr ""
+"\n"
+"  -L, --load-path=<அடைவு>    <அடைவை> Guile நிரல்கூறு தேடுபாதைகளின் முன் சேர்"
 
-#: guix/scripts/build.scm:491
+#: guix/scripts/build.scm:154
 msgid ""
 "\n"
 "  -K, --keep-failed      keep build tree of failed builds"
 msgstr ""
 
-#: guix/scripts/build.scm:493
+#: guix/scripts/build.scm:156
 msgid ""
 "\n"
 "  -k, --keep-going       keep going when some of the derivations fail"
@@ -1181,101 +1314,125 @@ msgstr ""
 "\n"
 "  -k, --keep-going      சில வருவிகள் தோல்வியுற்றாலும் தொடர்க"
 
-#: guix/scripts/build.scm:495
+#: guix/scripts/build.scm:158
 msgid ""
 "\n"
 "  -n, --dry-run          do not build the derivations"
 msgstr ""
 "\n"
 "\n"
-"  -n, --dry-run         வருவிகளைக் கட்டாதே"
+"  -n, --dry-run         வருவிகளைப் பெயர்க்காதே"
 
-#: guix/scripts/build.scm:497
+#: guix/scripts/build.scm:160
 msgid ""
 "\n"
 "      --fallback         fall back to building when the substituter fails"
 msgstr ""
 
-#: guix/scripts/build.scm:499
+#: guix/scripts/build.scm:162
 msgid ""
 "\n"
 "      --no-substitutes   build instead of resorting to pre-built substitutes"
 msgstr ""
 
-#: guix/scripts/build.scm:501 guix/scripts/size.scm:235
+#: guix/scripts/build.scm:164 guix/scripts/size.scm:235
 msgid ""
 "\n"
 "      --substitute-urls=URLS\n"
 "                         fetch substitute from URLS if they are authorized"
 msgstr ""
 
-#: guix/scripts/build.scm:504
+#: guix/scripts/build.scm:167
 msgid ""
 "\n"
 "      --no-grafts        do not graft packages"
 msgstr ""
+"\n"
+"      --no-grafts        நிரல்தொகுப்புகளை ஒட்டாதே"
 
-#: guix/scripts/build.scm:506
+#: guix/scripts/build.scm:169
 msgid ""
 "\n"
 "      --no-offload       do not attempt to offload builds"
 msgstr ""
+"\n"
+"      --no-offload       பெயர்ப்புகளைப் பிற நிலையங்களிடம் ஒப்படைக்காதே"
 
-#: guix/scripts/build.scm:508
+#: guix/scripts/build.scm:171
 msgid ""
 "\n"
 "      --max-silent-time=SECONDS\n"
 "                         mark the build as failed after SECONDS of silence"
 msgstr ""
+"\n"
+"      --max-silent-time=<நொடிகள்>\n"
+"                         <நொடிகளுக்கு> மேலான அமைதியைக் பெயர்ப்புத் தோல்வியெனக் கருது"
 
-#: guix/scripts/build.scm:511
+#: guix/scripts/build.scm:174
 msgid ""
 "\n"
 "      --timeout=SECONDS  mark the build as failed after SECONDS of activity"
 msgstr ""
+"\n"
+"       --timeout=<நொடிகள்>  <நொடிகளுக்கு> மேலான செயற்பாட்டைக் பெயர்ப்புத் தோல்வியெனக் கருது"
 
-#: guix/scripts/build.scm:513
+#: guix/scripts/build.scm:176
 msgid ""
 "\n"
 "      --rounds=N         build N times in a row to detect non-determinism"
 msgstr ""
 
-#: guix/scripts/build.scm:515
+#: guix/scripts/build.scm:178
 msgid ""
 "\n"
 "  -c, --cores=N          allow the use of up to N CPU cores for the build"
 msgstr ""
+"\n"
+"  -c, --cores=N          பெயர்ப்புக்கு N கணிப்பிகள் வரை அனுமதி"
 
-#: guix/scripts/build.scm:517
+#: guix/scripts/build.scm:180
 msgid ""
 "\n"
 "  -M, --max-jobs=N       allow at most N build jobs"
 msgstr ""
 "\n"
 "\n"
-"  -M, --max-jobs=N      அதிகபட்சமாக N கட்டுப்பணிகளை அனுமதி"
+"  -M, --max-jobs=N      N பெயர்ப்புகள் வரை அனுமதி"
 
-#: guix/scripts/build.scm:519
+#: guix/scripts/build.scm:182
+msgid ""
+"\n"
+"      --help-transform   list package transformation options not shown here"
+msgstr ""
+"\n"
+"      --help-transform  குறிப்பிடப்படா நிரல்தொகுப்பு உருமாற்றச் செயல்மாற்றிகளைக் காட்டு"
+
+#: guix/scripts/build.scm:184
 msgid ""
 "\n"
 "      --debug=LEVEL      produce debugging output at LEVEL"
 msgstr ""
 
-#: guix/scripts/build.scm:536
+#: guix/scripts/build.scm:201
 msgid "'--keep-failed' ignored since you are talking to a remote daemon\n"
-msgstr ""
+msgstr "தொலைச்செயலாக்கத்துடன் பேசிக் கொண்டிருப்பதால் '--keep-failed' புறக்கணிக்கப்பட்டது\n"
 
-#: guix/scripts/build.scm:617
+#: guix/scripts/build.scm:282
 #, scheme-format
 msgid "'--no-build-hook' is deprecated; use '--no-offload' instead~%"
-msgstr "'--no-build-hook' வழக்கொழிந்தது; அதற்குப் பதிலாக '--no-offload' யைப் பயன்படுத்துக~%"
+msgstr "'--no-build-hook' வழக்கொழிந்தது; '--no-offload' செயல்மாற்றியைப் பயன்படுத்துக~%"
 
-#: guix/scripts/build.scm:647 guix/scripts/build.scm:654
+#: guix/scripts/build.scm:312 guix/scripts/build.scm:319
 #, scheme-format
 msgid "not a number: '~a' option argument: ~a~%"
 msgstr "எண்ணல்ல: '~a' செயல்மாற்றி செயலுருபு: ~a~%"
 
-#: guix/scripts/build.scm:675
+#: guix/scripts/build.scm:324
+#, scheme-format
+msgid "Available package transformation options:~%"
+msgstr "நிரல்தொகுப்பு உருமாற்றச் செயல்மாற்றிகள்:"
+
+#: guix/scripts/build.scm:347
 msgid ""
 "Usage: guix build [OPTION]... PACKAGE-OR-DERIVATION...\n"
 "Build the given PACKAGE-OR-DERIVATION and return their output paths.\n"
@@ -1283,110 +1440,130 @@ msgstr ""
 "பயன்பாடு: guix build [<செயல்மாற்றி>]... <மென்பொருள் தொகுப்போ வருவியோ>...\n"
 "<மென்பொருள் தொகுப்பையோ வருவியையோக்> கட்டமைத்து அதன் வெளியீட்டுப் பாதையைக் கொடு.\n"
 
-#: guix/scripts/build.scm:677
+#: guix/scripts/build.scm:349
 msgid ""
 "\n"
 "  -e, --expression=EXPR  build the package or derivation EXPR evaluates to"
 msgstr ""
 
-#: guix/scripts/build.scm:679
+#: guix/scripts/build.scm:351
 msgid ""
 "\n"
 "  -f, --file=FILE        build the package or derivation that the code within\n"
 "                         FILE evaluates to"
 msgstr ""
 
-#: guix/scripts/build.scm:682
+#: guix/scripts/build.scm:354
+msgid ""
+"\n"
+"  -m, --manifest=FILE    build the packages that the manifest given in FILE\n"
+"                         evaluates to"
+msgstr ""
+
+#: guix/scripts/build.scm:357
 msgid ""
 "\n"
 "  -S, --source           build the packages' source derivations"
 msgstr ""
+"\n"
+"  -S, --source           நிரல்தொகுப்புகளின் மூல வருவிகளைப் பெயர்"
 
-#: guix/scripts/build.scm:684
+#: guix/scripts/build.scm:359
 msgid ""
 "\n"
 "      --sources[=TYPE]   build source derivations; TYPE may optionally be one\n"
 "                         of \"package\", \"all\" (default), or \"transitive\""
 msgstr ""
+"\n"
+"      --source[=<வகை>] மூல வருவிகளைப் பெயர்; <வகை> \"package\", \"all\"\n"
+"                        (இயல்பிருப்பு), \"transitive\" ஆகியவற்றில் ஒன்று"
 
-#: guix/scripts/build.scm:687 guix/scripts/pull.scm:114
-#: guix/scripts/pack.scm:908
+#: guix/scripts/build.scm:362 guix/scripts/pull.scm:120
+#: guix/scripts/pack.scm:1073
 msgid ""
 "\n"
 "  -s, --system=SYSTEM    attempt to build for SYSTEM--e.g., \"i686-linux\""
 msgstr ""
+"\n"
+"  -s, --system=<கணியக்கட்டமைப்பு>   <கணியக்கட்டமைப்புக்குப்> (\"i686-linux\" போன்று) பெயர்க்க முயல்"
 
-#: guix/scripts/build.scm:689 guix/scripts/system.scm:985
-#: guix/scripts/pack.scm:910
+#: guix/scripts/build.scm:364 guix/scripts/system.scm:997
+#: guix/scripts/pack.scm:1075
 msgid ""
 "\n"
 "      --target=TRIPLET   cross-build for TRIPLET--e.g., \"armel-linux-gnu\""
 msgstr ""
 
-#: guix/scripts/build.scm:691
+#: guix/scripts/build.scm:366
 msgid ""
 "\n"
 "  -d, --derivations      return the derivation paths of the given packages"
 msgstr ""
+"\n"
+"  -d, --derivations      நிரல்தொகுப்புகளின் வருவிகளைக் காட்டு"
 
-#: guix/scripts/build.scm:693
+#: guix/scripts/build.scm:368
 msgid ""
 "\n"
 "      --check            rebuild items to check for non-determinism issues"
 msgstr ""
 
-#: guix/scripts/build.scm:695
+#: guix/scripts/build.scm:370
 msgid ""
 "\n"
 "      --repair           repair the specified items"
 msgstr ""
 
-#: guix/scripts/build.scm:697 guix/scripts/pack.scm:928
+#: guix/scripts/build.scm:372 guix/scripts/pack.scm:1093
 msgid ""
 "\n"
 "  -r, --root=FILE        make FILE a symlink to the result, and register it\n"
 "                         as a garbage collector root"
 msgstr ""
+"\n"
+"  -r, --root=<கோப்பு>     <கோப்பை> விளைவுக்கு மென்னிணைப்பாக ஆக்கி அதைக்\n"
+"                         குப்பைக்கூட்டி வேராகப் பதி"
 
-#: guix/scripts/build.scm:700 guix/scripts/package.scm:371
-#: guix/scripts/install.scm:36 guix/scripts/remove.scm:36
-#: guix/scripts/upgrade.scm:36 guix/scripts/pull.scm:112
-#: guix/scripts/system.scm:987 guix/scripts/copy.scm:120
-#: guix/scripts/pack.scm:933 guix/scripts/deploy.scm:56
+#: guix/scripts/build.scm:375 guix/scripts/package.scm:385
+#: guix/scripts/install.scm:37 guix/scripts/remove.scm:36
+#: guix/scripts/upgrade.scm:38 guix/scripts/pull.scm:118
+#: guix/scripts/system.scm:999 guix/scripts/copy.scm:115
+#: guix/scripts/pack.scm:1098 guix/scripts/deploy.scm:58
 msgid ""
 "\n"
 "  -v, --verbosity=LEVEL  use the given verbosity LEVEL"
 msgstr ""
 
-#: guix/scripts/build.scm:702
+#: guix/scripts/build.scm:377
 msgid ""
 "\n"
 "  -q, --quiet            do not show the build log"
 msgstr ""
 "\n"
 "\n"
-"  -q, --quiet            கட்டுக்குறிப்பைக் காட்டாதே"
+"  -q, --quiet            பெயர்குறிப்பைக் காட்டாதே"
 
-#: guix/scripts/build.scm:704
+#: guix/scripts/build.scm:379
 msgid ""
 "\n"
 "      --log-file         return the log file names for the given derivations"
 msgstr ""
 
-#: guix/scripts/build.scm:711 guix/scripts/download.scm:98
-#: guix/scripts/package.scm:389 guix/scripts/install.scm:43
-#: guix/scripts/remove.scm:41 guix/scripts/upgrade.scm:43
+#: guix/scripts/build.scm:384 guix/scripts/download.scm:103
+#: guix/scripts/package.scm:401 guix/scripts/install.scm:42
+#: guix/scripts/remove.scm:41 guix/scripts/upgrade.scm:45
 #: guix/scripts/search.scm:36 guix/scripts/show.scm:36 guix/scripts/gc.scm:88
-#: guix/scripts/hash.scm:60 guix/scripts/import.scm:94
-#: guix/scripts/import/cran.scm:47 guix/scripts/pull.scm:120
-#: guix/scripts/substitute.scm:862 guix/scripts/system.scm:990
-#: guix/scripts/lint.scm:101 guix/scripts/publish.scm:98
+#: guix/scripts/git.scm:34 guix/scripts/git/authenticate.scm:110
+#: guix/scripts/hash.scm:65 guix/scripts/import.scm:95
+#: guix/scripts/import/cran.scm:47 guix/scripts/pull.scm:126
+#: guix/scripts/substitute.scm:857 guix/scripts/system.scm:1002
+#: guix/scripts/lint.scm:110 guix/scripts/publish.scm:101
 #: guix/scripts/edit.scm:51 guix/scripts/size.scm:249
-#: guix/scripts/graph.scm:514 guix/scripts/challenge.scm:423
-#: guix/scripts/copy.scm:125 guix/scripts/pack.scm:938
-#: guix/scripts/weather.scm:273 guix/scripts/describe.scm:76
-#: guix/scripts/processes.scm:214 guix/scripts/deploy.scm:51
-#: guix/scripts/container.scm:34 guix/scripts/container/exec.scm:43
+#: guix/scripts/graph.scm:549 guix/scripts/challenge.scm:423
+#: guix/scripts/copy.scm:120 guix/scripts/pack.scm:1103
+#: guix/scripts/weather.scm:293 guix/scripts/describe.scm:95
+#: guix/scripts/processes.scm:214 guix/scripts/deploy.scm:53
+#: guix/scripts/container.scm:35 guix/scripts/container/exec.scm:43
 msgid ""
 "\n"
 "  -h, --help             display this help and exit"
@@ -1395,20 +1572,21 @@ msgstr ""
 "\n"
 "  -h, --help             இவ்வுதவிச் செய்தியைக் காட்டி வெளியேறு"
 
-#: guix/scripts/build.scm:713 guix/scripts/download.scm:100
-#: guix/scripts/package.scm:391 guix/scripts/install.scm:45
-#: guix/scripts/remove.scm:43 guix/scripts/upgrade.scm:45
+#: guix/scripts/build.scm:386 guix/scripts/download.scm:105
+#: guix/scripts/package.scm:403 guix/scripts/install.scm:44
+#: guix/scripts/remove.scm:43 guix/scripts/upgrade.scm:47
 #: guix/scripts/search.scm:38 guix/scripts/show.scm:38 guix/scripts/gc.scm:90
-#: guix/scripts/hash.scm:62 guix/scripts/import.scm:96
-#: guix/scripts/import/cran.scm:51 guix/scripts/pull.scm:122
-#: guix/scripts/substitute.scm:864 guix/scripts/system.scm:992
-#: guix/scripts/lint.scm:105 guix/scripts/publish.scm:100
+#: guix/scripts/git.scm:36 guix/scripts/git/authenticate.scm:112
+#: guix/scripts/hash.scm:67 guix/scripts/import.scm:97
+#: guix/scripts/import/cran.scm:51 guix/scripts/pull.scm:128
+#: guix/scripts/substitute.scm:859 guix/scripts/system.scm:1004
+#: guix/scripts/lint.scm:114 guix/scripts/publish.scm:103
 #: guix/scripts/edit.scm:53 guix/scripts/size.scm:251
-#: guix/scripts/graph.scm:516 guix/scripts/challenge.scm:425
-#: guix/scripts/copy.scm:127 guix/scripts/pack.scm:940
-#: guix/scripts/weather.scm:275 guix/scripts/describe.scm:78
-#: guix/scripts/processes.scm:216 guix/scripts/deploy.scm:53
-#: guix/scripts/container.scm:36 guix/scripts/container/exec.scm:45
+#: guix/scripts/graph.scm:551 guix/scripts/challenge.scm:425
+#: guix/scripts/copy.scm:122 guix/scripts/pack.scm:1105
+#: guix/scripts/weather.scm:295 guix/scripts/describe.scm:97
+#: guix/scripts/processes.scm:216 guix/scripts/deploy.scm:55
+#: guix/scripts/container.scm:37 guix/scripts/container/exec.scm:45
 msgid ""
 "\n"
 "  -V, --version          display version information and exit"
@@ -1417,455 +1595,514 @@ msgstr ""
 "\n"
 "  -V, --version          பதிப்பு விவரத்தைக் காட்டி வெளியேறு"
 
-#: guix/scripts/build.scm:740
+#: guix/scripts/build.scm:413
 #, scheme-format
 msgid ""
 "invalid argument: '~a' option argument: ~a, ~\n"
 "must be one of 'package', 'all', or 'transitive'~%"
 msgstr ""
 
-#: guix/scripts/build.scm:798
+#: guix/scripts/build.scm:475
 #, scheme-format
 msgid "~s: not something we can build~%"
-msgstr "~s: கட்ட இயன்றதல்ல~%"
+msgstr "~s: பெயர்க்க இயன்றதல்ல~%"
+
+#: guix/scripts/build.scm:480
+msgid ""
+"If you build from a file, make sure the last Scheme\n"
+"expression returns a package value.  @code{define-public} defines a variable,\n"
+"but returns @code{#<unspecified>}.  To fix this, add a Scheme expression at\n"
+"the end of the file that consists only of the package's variable name you\n"
+"defined, as in this example:\n"
+"\n"
+"@example\n"
+"(define-public my-package\n"
+"  (package\n"
+"    ...))\n"
+"\n"
+"my-package\n"
+"@end example"
+msgstr ""
+
+#: guix/scripts/build.scm:493
+msgid ""
+"If you build from a file, make sure the last\n"
+"Scheme expression returns a package, gexp, derivation or a list of such\n"
+"values."
+msgstr ""
 
-#: guix/scripts/build.scm:875
+#: guix/scripts/build.scm:579
 #, scheme-format
 msgid "package '~a' has no source~%"
-msgstr "'~a' மென்பொருள் தொகுப்பிற்கு மூலமில்லை~%"
+msgstr "'~a' நிரல்தொகுப்பிற்கு மூலமில்லை~%"
 
-#: guix/scripts/build.scm:921
+#: guix/scripts/build.scm:627
 #, scheme-format
 msgid "no build log for '~a'~%"
-msgstr "'~a' க்குக் கட்டுக்குறிப்பில்லை~%"
+msgstr "'~a' க்குக் பெயர்குறிப்பில்லை~%"
+
+#: guix/scripts/build.scm:636
+msgid "build packages or derivations without installing them"
+msgstr ""
 
 #: guix/discovery.scm:96
 #, scheme-format
 msgid "cannot access `~a': ~a~%"
 msgstr "`~a' அணுக இயலவில்லை: ~a~%"
 
-#: guix/lint.scm:177
+#: guix/lint.scm:184
 msgid "description should not be empty"
 msgstr "விளக்கம் வெறுமையாகயிருக்கக் கூடாது"
 
-#: guix/lint.scm:188
+#: guix/lint.scm:195
 msgid "Texinfo markup in description is invalid"
 msgstr "விளக்கவுரையிலுள்ள Texinfo குறிகள் ஏற்கத்தகாதவை"
 
-#: guix/lint.scm:198
+#: guix/lint.scm:205
 #, scheme-format
 msgid ""
 "description should not contain ~\n"
 "trademark sign '~a' at ~d"
-msgstr ""
+msgstr "விளக்கவுரையில் வணிகக்குறி '~a' இருக்கக்கூடாது; வரியுரு ~d யில் இருக்கிறது"
 
 #. TRANSLATORS: '@code' is Texinfo markup and must be kept
 #. as is.
-#: guix/lint.scm:211
+#: guix/lint.scm:218
 msgid "use @code or similar ornament instead of quotes"
-msgstr ""
+msgstr "மேற்கோளுக்கு மாற்றாக @code அல்லது பிறவற்றைப் பயன்படுத்துக"
 
-#: guix/lint.scm:223
+#: guix/lint.scm:230
 msgid "description should start with an upper-case letter or digit"
 msgstr "விளக்கவுரை முகப்பெழுத்துக் கொண்டோ எண் கொண்டோ துவங்க வேண்டும்"
 
-#: guix/lint.scm:241
+#: guix/lint.scm:248
 #, scheme-format
 msgid ""
 "sentences in description should be followed ~\n"
 "by two spaces; possible infraction~p at ~{~a~^, ~}"
 msgstr ""
 
-#: guix/lint.scm:262
+#: guix/lint.scm:269
 #, scheme-format
 msgid "invalid description: ~s"
-msgstr "ஏற்கத்தகா விளக்கம்: ~s"
+msgstr "ஏற்கத்தகா விளக்கவுரை: ~s"
 
-#: guix/lint.scm:329
+#: guix/lint.scm:339
 #, scheme-format
 msgid "'~a' should probably be a native input"
 msgstr ""
 
-#: guix/lint.scm:344
+#: guix/lint.scm:354
 #, scheme-format
 msgid "'~a' should probably not be an input at all"
-msgstr ""
+msgstr "'~a' பெரும்பாலும் உள்ளீடாக இருக்கக்கூடாது"
 
-#: guix/lint.scm:365
+#: guix/lint.scm:375
 msgid "no period allowed at the end of the synopsis"
 msgstr "பொழிப்புரையின் ஈற்றில் முற்றுப்புள்ளி இருக்கக் கூடாது"
 
-#: guix/lint.scm:379
+#: guix/lint.scm:389
 msgid "no article allowed at the beginning of the synopsis"
-msgstr ""
+msgstr "பொழிப்புரை நிச்சயமற்ற பெயர்ச்சொற்குறிகளைக் (A, An) கொண்டுத் தொடங்கக் கூடாது"
 
-#: guix/lint.scm:388
+#: guix/lint.scm:398
 msgid "synopsis should be less than 80 characters long"
 msgstr "பொழிப்புரை 80 வரியுருக்களுக்குக் குறைவாகயிருக்க வேண்டும்"
 
-#: guix/lint.scm:397
+#: guix/lint.scm:407
 msgid "synopsis should start with an upper-case letter or digit"
 msgstr "பொழிப்புரை முகப்பெழுத்துடனோ எண்ணுடனோ தொடங்க வேண்டும்"
 
-#: guix/lint.scm:405
+#: guix/lint.scm:415
 msgid "synopsis should not start with the package name"
 msgstr "பொழிப்புரை மென்பொருள் தொகுப்பின் பெயருடன் தொடங்கக்கூடாது"
 
-#: guix/lint.scm:419
+#: guix/lint.scm:429
 msgid "Texinfo markup in synopsis is invalid"
 msgstr "பொழிப்புரையிலுள்ள Texinfo குறிகள் ஏற்கத்தகாதவை"
 
-#: guix/lint.scm:434
+#: guix/lint.scm:444
 msgid "synopsis should not be empty"
 msgstr "பொழிப்புரை வெறுமையாகயிருக்கக் கூடாது"
 
-#: guix/lint.scm:444
+#: guix/lint.scm:454
 #, scheme-format
 msgid "invalid synopsis: ~s"
 msgstr "ஏற்கத்தகா பொழிப்புரை: ~s"
 
-#: guix/lint.scm:562
+#: guix/lint.scm:572
 #, scheme-format
 msgid "URI ~a returned suspiciously small file (~a bytes)"
-msgstr ""
+msgstr "~a முகவரி மிகச் சிறிய (~a எண்ணுன்மிகள்) கோப்பைக் அளித்தது. இது சரி தானா?"
 
-#: guix/lint.scm:571
+#: guix/lint.scm:581
 #, scheme-format
 msgid "permanent redirect from ~a to ~a"
-msgstr ""
+msgstr "~a முகவரியிலிருந்து ~a முகவரிக்கு நிரந்தர மாற்றம்"
 
-#: guix/lint.scm:577
+#: guix/lint.scm:587
 #, scheme-format
 msgid "invalid permanent redirect from ~a"
-msgstr ""
+msgstr "~a முகவரியிலிருந்து ஏற்கத்தகா நிரந்தர முகவரி மாற்றம்"
 
-#: guix/lint.scm:583 guix/lint.scm:593
+#: guix/lint.scm:593 guix/lint.scm:603
 #, scheme-format
 msgid "URI ~a not reachable: ~a (~s)"
-msgstr ""
+msgstr "~a முகவரியை அணுக இயலவில்லை: ~a (~s)"
 
-#: guix/lint.scm:599
+#: guix/lint.scm:609
 #, scheme-format
 msgid "URI ~a domain not found: ~a"
-msgstr ""
+msgstr "~a முகவரியின் களம் இல்லை: ~a"
 
-#: guix/lint.scm:605
+#: guix/lint.scm:615
 #, scheme-format
 msgid "URI ~a unreachable: ~a"
-msgstr ""
+msgstr "~a முகவரியை அணுக இயலவில்லை: ~a"
 
-#: guix/lint.scm:613
+#: guix/lint.scm:623
 #, scheme-format
 msgid "TLS certificate error: ~a"
-msgstr ""
+msgstr "TLS சான்றிதழ் பிழை: ~a"
 
-#: guix/lint.scm:640
+#: guix/lint.scm:650
 msgid "invalid value for home page"
-msgstr ""
+msgstr "வலைத்தள முகவரிக்கு ஏற்கத்தகா மதிப்பு"
 
-#: guix/lint.scm:645
+#: guix/lint.scm:655
 #, scheme-format
 msgid "invalid home page URL: ~s"
 msgstr "ஏற்கத்தகா வலைத்தள முகவரி: ~s"
 
-#: guix/lint.scm:678
+#: guix/lint.scm:698
 msgid "file names of patches should start with the package name"
 msgstr "திருத்தக்கோப்புகளின் பெயர் அதன் மென்பொருள் தொகுப்புப் பெயருடன் தொடங்க வேண்டும்"
 
-#: guix/lint.scm:694
+#: guix/lint.scm:714
 #, scheme-format
 msgid "~a: file name is too long"
-msgstr ""
+msgstr "~a: கோப்புப்பெயர் அளவிற்கு மிஞ்சி நீண்டது"
 
-#: guix/lint.scm:736
+#: guix/lint.scm:756
 #, scheme-format
 msgid "proposed synopsis: ~s~%"
 msgstr "முன்மொழியப்படும் பொழிப்புரை: ~s~%"
 
-#: guix/lint.scm:750
+#: guix/lint.scm:770
 #, scheme-format
 msgid "proposed description:~%     \"~a\"~%"
 msgstr "முன்மொழியப்படும் விளக்கம்:~%      \"~a\"~%"
 
-#: guix/lint.scm:797
+#: guix/lint.scm:821
 msgid "all the source URIs are unreachable:"
-msgstr ""
+msgstr "மூலமுகவரிகள் எவற்றையும் அணுக இயலவில்லை:"
 
-#: guix/lint.scm:821
+#: guix/lint.scm:850
 msgid "the source file name should contain the package name"
 msgstr "மூலத்தின் கோப்புப் பெயர் மென்பொருள் தொகுப்பு பெயரை உள்ளடக்க வேண்டும்"
 
-#: guix/lint.scm:833
+#: guix/lint.scm:862
 msgid "the source URI should not be an autogenerated tarball"
-msgstr ""
+msgstr "மூலமுகவரி கணினி தானே அமைத்ததாக இருத்தலாகாது"
 
-#: guix/lint.scm:857
+#: guix/lint.scm:886
 #, scheme-format
 msgid "URL should be 'mirror://~a/~a'"
-msgstr ""
+msgstr "முகவரி 'mirror://~a/~a' என இருக்க வேண்டும்"
 
-#: guix/lint.scm:902
+#: guix/lint.scm:931
 #, scheme-format
 msgid "URL should be '~a'"
-msgstr "முகவரி '~a' ஆக இருக்க வேண்டும்"
+msgstr "முகவரி '~a' என இருக்க வேண்டும்"
 
-#: guix/lint.scm:924 guix/lint.scm:935
+#: guix/lint.scm:953 guix/lint.scm:964 guix/lint.scm:972
 #, scheme-format
 msgid "failed to create ~a derivation: ~a"
-msgstr ""
+msgstr "~a வருவியை அமைக்க இயலவில்லை: ~a"
 
-#: guix/lint.scm:929 guix/lint.scm:952
+#: guix/lint.scm:958 guix/lint.scm:986
 #, scheme-format
 msgid "failed to create ~a derivation: ~s"
+msgstr "~a வருவியை அமைக்க இயலவில்லை: ~s"
+
+#: guix/lint.scm:1014
+#, scheme-format
+msgid "propagated inputs ~a and ~a collide"
 msgstr ""
 
-#: guix/lint.scm:966
+#: guix/lint.scm:1038
 msgid "invalid license field"
 msgstr "ஏற்கத்தகா உரிமப்புலம்"
 
-#: guix/lint.scm:973
+#: guix/lint.scm:1045
 #, scheme-format
 msgid "~a: HTTP GET error for ~a: ~a (~s)~%"
 msgstr "~a: ~a க்கு HTTP GET பிழை: ~a (~s)~%"
 
-#: guix/lint.scm:983
+#: guix/lint.scm:1055
 #, scheme-format
 msgid "~a: host lookup failure: ~a~%"
-msgstr ""
+msgstr "~a: நிலைய நோக்கல் தோல்வி: ~a~%"
 
-#: guix/lint.scm:988
+#: guix/lint.scm:1060
 #, scheme-format
 msgid "~a: TLS certificate error: ~a"
-msgstr ""
+msgstr "~a: TLS சான்றிதழ் பிழை: ~a"
 
-#: guix/lint.scm:999 guix/ui.scm:792
+#: guix/lint.scm:1071 guix/ui.scm:842
 #, scheme-format
 msgid "~a: ~a~%"
 msgstr "~a: ~a~%"
 
-#: guix/lint.scm:1013
+#: guix/lint.scm:1085
 msgid "while retrieving CVE vulnerabilities"
-msgstr ""
+msgstr "CVE குறைகளை பெறும்பொழுது"
 
-#: guix/lint.scm:1056
+#: guix/lint.scm:1128
 #, scheme-format
 msgid "probably vulnerable to ~a"
 msgstr "ஒருவேளை ~a க்கு ஊறுபடத்தக்கது"
 
-#: guix/lint.scm:1063
+#: guix/lint.scm:1135
 #, scheme-format
 msgid "while retrieving upstream info for '~a'"
 msgstr ""
 
-#: guix/lint.scm:1072
+#: guix/lint.scm:1144
 #, scheme-format
 msgid "can be upgraded to ~a"
 msgstr "~a பதிப்புக்கு திறமுயர்த்த இயலும்"
 
-#: guix/lint.scm:1090
+#: guix/lint.scm:1162
 msgid "Software Heritage rate limit reached; try again later"
 msgstr ""
 
-#: guix/lint.scm:1094
+#: guix/lint.scm:1166
 #, scheme-format
 msgid "'~a' returned ~a"
-msgstr ""
+msgstr "'~a' ~a மறுமொழிக் குறியை அளித்தது"
 
 #. TRANSLATORS: "Software Heritage" is a proper noun
 #. that must remain untranslated.  See
 #. <https://www.softwareheritage.org>.
-#: guix/lint.scm:1133
+#: guix/lint.scm:1205
 msgid "scheduled Software Heritage archival"
 msgstr ""
 
-#: guix/lint.scm:1139
+#: guix/lint.scm:1211
 msgid "archival rate limit exceeded; try again later"
 msgstr ""
 
-#: guix/lint.scm:1151
+#: guix/lint.scm:1226
 msgid "source not archived on Software Heritage"
-msgstr ""
+msgstr "மூலம் Software Heritage காப்பகத்தில் சேமிக்கப்படவில்லை"
 
-#: guix/lint.scm:1164
+#: guix/lint.scm:1239
 msgid "while connecting to Software Heritage"
-msgstr ""
+msgstr "Software Heritage காப்பகத்தை அணுகும்பொழுது"
 
-#: guix/lint.scm:1179
+#: guix/lint.scm:1254
 #, scheme-format
 msgid "tabulation on line ~a, column ~a"
-msgstr ""
+msgstr "வரி ~a வரியுரு ~a யில் தத்தல்"
 
-#: guix/lint.scm:1191
+#: guix/lint.scm:1266
 #, scheme-format
 msgid "trailing white space on line ~a"
-msgstr ""
+msgstr "வரி ~a யில் தொங்கும் வெள்ளை இடைவெளி"
 
-#: guix/lint.scm:1205
+#: guix/lint.scm:1280
 #, scheme-format
 msgid "line ~a is way too long (~a characters)"
-msgstr ""
+msgstr "வரி ~a அளவிற்கு மிஞ்சி நீண்டது (~a வரியுருக்கள்)"
 
-#: guix/lint.scm:1219
+#: guix/lint.scm:1294
 msgid "parentheses feel lonely, move to the previous or next line"
 msgstr "அடைப்புக்குறிகள் தனிமையாக கிடக்கின்றன; முந்தைய வரிக்கோ அடுத்த வரிக்கோ அதை நகர்த்துக"
 
-#: guix/lint.scm:1300
+#: guix/lint.scm:1371
+msgid "source file not found"
+msgstr "~a மூலக்கோப்பு கிடைக்கவில்லை"
+
+#: guix/lint.scm:1383
 msgid "Validate package descriptions"
 msgstr "மென்பொருள் தொகுப்பு விளக்கங்களைச் சரி பார்"
 
-#: guix/lint.scm:1304
+#: guix/lint.scm:1387
 msgid "Identify inputs that should be native inputs"
 msgstr ""
 
-#: guix/lint.scm:1308
+#: guix/lint.scm:1391
 msgid "Identify inputs that shouldn't be inputs at all"
-msgstr ""
+msgstr "உள்ளீடுகளாக இருக்கக்கூடாதவற்றைக் கண்டறி"
 
 #. TRANSLATORS: <license> is the name of a data type and must not be
 #. translated.
-#: guix/lint.scm:1314
+#: guix/lint.scm:1397
 msgid "Make sure the 'license' field is a <license> or a list thereof"
-msgstr ""
+msgstr "உரிமப்புலம் <license> அல்லது அதன் பட்டியலென உறுதிசெய்"
 
-#: guix/lint.scm:1319
+#: guix/lint.scm:1402
 msgid "Suggest 'mirror://' URLs"
-msgstr ""
+msgstr "'mirror://' முகவரிகளை அறிவுறுத்து"
 
-#: guix/lint.scm:1323
+#: guix/lint.scm:1406
 msgid "Validate file names of sources"
 msgstr "மூலங்களின் கோப்புப் பெயர்களைச் சரி பார்"
 
-#: guix/lint.scm:1327
+#: guix/lint.scm:1410
 msgid "Check for autogenerated tarballs"
-msgstr ""
+msgstr "கணினி தானே அமைத்த காப்பகக் கோப்பாவெனப் பார்"
 
-#: guix/lint.scm:1331
+#: guix/lint.scm:1414
 msgid "Report failure to compile a package to a derivation"
+msgstr "நிரல்தொகுப்பை வருவியாகச் தொகுத்தலில் தோல்வியைத் தெரிவி"
+
+#: guix/lint.scm:1419
+msgid "Report collisions that would occur due to propagated inputs"
 msgstr ""
 
-#: guix/lint.scm:1335
+#: guix/lint.scm:1424
 msgid "Validate file names and availability of patches"
-msgstr ""
+msgstr "கோப்புப்பெயர்களையும் திருத்தங்கள் இருக்கின்றனவாவெனவும் சரி பார்"
 
-#: guix/lint.scm:1339
+#: guix/lint.scm:1428
 msgid "Look for formatting issues in the source"
 msgstr "மூலத்தில் வடிவூட்டுப் பிழைகளுக்குத் தேடு"
 
-#: guix/lint.scm:1346
+#: guix/lint.scm:1435
 msgid "Validate package synopses"
 msgstr "மென்பொருள் தொகுப்பு பொழிப்புரைகளைச் சரி பார்"
 
-#: guix/lint.scm:1350
+#: guix/lint.scm:1439
 msgid "Validate synopsis & description of GNU packages"
 msgstr "GNU மென்பொருள் தொகுப்புகளின் பொழிப்புரைகளையும் விளக்கங்களையும் சரி பார்"
 
-#: guix/lint.scm:1354
+#: guix/lint.scm:1443
 msgid "Validate home-page URLs"
 msgstr "வலைத்தள முகவரிகளைச் சரி பார்"
 
-#: guix/lint.scm:1358
+#: guix/lint.scm:1447
 msgid "Validate source URLs"
 msgstr "மூல முகவரிகளைச் சரி பார்"
 
-#: guix/lint.scm:1362
+#: guix/lint.scm:1451
 msgid "Suggest GitHub URLs"
-msgstr ""
+msgstr "GitHub முகவரிகளை அறிவுறுத்து"
 
-#: guix/lint.scm:1366
+#: guix/lint.scm:1455
 msgid "Check the Common Vulnerabilities and Exposures (CVE) database"
-msgstr ""
+msgstr "Common Vulnerabilities and Exposures (CVE) தரவுத்தளத்தைத் தேடு"
 
-#: guix/lint.scm:1371
+#: guix/lint.scm:1460
 msgid "Check the package for new upstream releases"
 msgstr "இம்மென்பொருள் தொகுப்பிற்கு புதிய மேல்நோக்கு பதிப்புகள் இருக்கிறதாவென்று பார்"
 
-#: guix/lint.scm:1375
+#: guix/lint.scm:1464
 msgid "Ensure source code archival on Software Heritage"
-msgstr ""
+msgstr "Software Heritage காப்பகத்தில் மூலநிரல் சேமிப்பை உறுதிசெய்"
 
-#: guix/scripts/download.scm:84
+#: guix/scripts/download.scm:86
 msgid ""
 "Usage: guix download [OPTION] URL\n"
 "Download the file at URL to the store or to the given file, and print its\n"
 "file name and the hash of its contents.\n"
-"\n"
-"Supported formats: 'nix-base32' (default), 'base32', and 'base16'\n"
-"('hex' and 'hexadecimal' can be used as well).\n"
 msgstr ""
+"பயன்பாடு: guix download [<செயல்மாற்றி>] <முகவரி>\n"
+"<முகவரியிலுள்ள> கோப்பைக் கிடங்குக்கோக் கோப்பிற்கோப் பதிவிறக்கி அதன் பெயரையும்\n"
+"கொத்தையும் காட்டு.\n"
+
+#: guix/scripts/download.scm:90 guix/scripts/hash.scm:53
+msgid ""
+"Supported formats: 'base64', 'nix-base32' (default), 'base32',\n"
+"and 'base16' ('hex' and 'hexadecimal' can be used as well).\n"
+msgstr ""
+"வடிவங்கள்: 'base64', 'nix-base32' (இயல்பிருப்பு), 'base32',\n"
+"'base16' ('hex', 'hexadecimal' வடிவங்களையும் பயன்படுத்தலாம்).\n"
 
-#: guix/scripts/download.scm:90 guix/scripts/hash.scm:55
+#: guix/scripts/download.scm:93 guix/scripts/hash.scm:60
 msgid ""
 "\n"
 "  -f, --format=FMT       write the hash in the given format"
 msgstr ""
 
-#: guix/scripts/download.scm:92
+#: guix/scripts/download.scm:95 guix/scripts/hash.scm:58
+msgid ""
+"\n"
+"  -H, --hash=ALGORITHM   use the given hash ALGORITHM"
+msgstr ""
+
+#: guix/scripts/download.scm:97
 msgid ""
 "\n"
 "      --no-check-certificate\n"
 "                         do not validate the certificate of HTTPS servers "
 msgstr ""
 
-#: guix/scripts/download.scm:95
+#: guix/scripts/download.scm:100
 msgid ""
 "\n"
 "  -o, --output=FILE      download to FILE"
 msgstr ""
+"\n"
+"  -o, --output=<கோப்பு>      <கோப்புக்குப்> பதிவிறக்கு"
 
-#: guix/scripts/download.scm:118 guix/scripts/hash.scm:83
+#: guix/scripts/download.scm:125 guix/scripts/hash.scm:97
 #, scheme-format
 msgid "unsupported hash format: ~a~%"
 msgstr ""
 
-#: guix/scripts/download.scm:153 guix/scripts/package.scm:936
-#: guix/scripts/upgrade.scm:79 guix/scripts/publish.scm:1022
+#: guix/scripts/download.scm:133 guix/scripts/hash.scm:81
 #, scheme-format
-msgid "~A: extraneous argument~%"
+msgid "~a: unknown hash algorithm~%"
 msgstr ""
 
 #: guix/scripts/download.scm:161
+msgid "download a file to the store and print its hash"
+msgstr ""
+
+#: guix/scripts/download.scm:170 guix/scripts/package.scm:955
+#: guix/scripts/upgrade.scm:83 guix/scripts/publish.scm:1090
+#, scheme-format
+msgid "~A: extraneous argument~%"
+msgstr "~A: கூடுதல் செயலுருபு~%"
+
+#: guix/scripts/download.scm:178
 #, scheme-format
 msgid "no download URI was specified~%"
-msgstr ""
+msgstr "பதிவிறக்க முகவரி குறிப்பிடவில்லை~%"
 
-#: guix/scripts/download.scm:166
+#: guix/scripts/download.scm:183
 #, scheme-format
 msgid "~a: failed to parse URI~%"
-msgstr ""
+msgstr "~a: முகவரியைப் பகுத்தாய இயலவில்லை~%"
 
-#: guix/scripts/download.scm:176
+#: guix/scripts/download.scm:193
 #, scheme-format
 msgid "~a: download failed~%"
 msgstr "~a: பதிவிறக்கம் தோல்வியுற்றது~%"
 
-#: guix/scripts/package.scm:120
+#: guix/scripts/package.scm:125
 #, scheme-format
 msgid "not removing generation ~a, which is current~%"
-msgstr ""
+msgstr "தற்போதைய வரிசையாதலால் வரிசை ~a யை அழிக்கவில்லை"
 
-#: guix/scripts/package.scm:127
+#: guix/scripts/package.scm:132
 #, scheme-format
 msgid "no matching generation~%"
-msgstr ""
+msgstr "பொருத்தமான வரிசை இல்லை~%"
 
 #: guix/scripts/package.scm:154
 #, scheme-format
 msgid "nothing to be done~%"
 msgstr "செய்வதற்கொன்றுமில்லை~%"
 
-#: guix/scripts/package.scm:168
-#, scheme-format
-msgid "~a package in profile~%"
-msgid_plural "~a packages in profile~%"
-msgstr[0] ""
-msgstr[1] ""
-
-#: guix/scripts/package.scm:254
+#: guix/scripts/package.scm:257
 #, scheme-format
 msgid "package '~a' no longer exists~%"
-msgstr ""
+msgstr "'~a' நிரல்தொகுப்பு தற்போது இல்லை~%"
 
-#: guix/scripts/package.scm:298
+#: guix/scripts/package.scm:312
 #, scheme-format
 msgid ""
 "Consider setting the necessary environment\n"
@@ -1878,8 +2115,16 @@ msgid ""
 "\n"
 "Alternately, see @command{guix package --search-paths -p ~s}."
 msgstr ""
+"தேவையான சூழல் மாறிகளை பின்வரும் கட்டளைகளை இயக்கி நிறுவக் கருதுக:\n"
+"\n"
+"@example\n"
+"GUIX_PROFILE=\"~a\"\n"
+". \"$GUIX_PROFILE/etc/profile\"\n"
+"@end example\n"
+"\n"
+"இல்லையெனின், @command{guix package --search-paths -p ~s} கட்டளையைப் பார்க்க."
 
-#: guix/scripts/package.scm:326
+#: guix/scripts/package.scm:340
 msgid ""
 "Usage: guix package [OPTION]...\n"
 "Install, remove, or upgrade packages in a single transaction.\n"
@@ -1887,21 +2132,24 @@ msgstr ""
 "பயன்பாடு: guix package [<செயல்மாற்றி>]...\n"
 "மென்பொருள் தொகுப்புகளை ஒரே மாற்றமாக நிறுவு, நீக்கு அல்லது திறமுயர்த்து.\n"
 
-#: guix/scripts/package.scm:328
+#: guix/scripts/package.scm:342
 msgid ""
 "\n"
 "  -i, --install PACKAGE ...\n"
 "                         install PACKAGEs"
 msgstr ""
+"\n"
+"  -i, --install <நிரல்தொகுப்பு> ...\n"
+"                         <நிரல்தொகுப்புகளை> நிறுவு"
 
-#: guix/scripts/package.scm:331
+#: guix/scripts/package.scm:345
 msgid ""
 "\n"
 "  -e, --install-from-expression=EXP\n"
 "                         install the package EXP evaluates to"
 msgstr ""
 
-#: guix/scripts/package.scm:334
+#: guix/scripts/package.scm:348
 msgid ""
 "\n"
 "  -f, --install-from-file=FILE\n"
@@ -1909,156 +2157,200 @@ msgid ""
 "                         evaluates to"
 msgstr ""
 
-#: guix/scripts/package.scm:338
+#: guix/scripts/package.scm:352
 msgid ""
 "\n"
 "  -r, --remove PACKAGE ...\n"
 "                         remove PACKAGEs"
 msgstr ""
+"\n"
+"  -r, --remove <நிரல்தொகுப்பு> ...\n"
+"                         <நிரல்தொகுப்புகளை> நீக்கு"
 
-#: guix/scripts/package.scm:341
+#: guix/scripts/package.scm:355
 msgid ""
 "\n"
 "  -u, --upgrade[=REGEXP] upgrade all the installed packages matching REGEXP"
 msgstr ""
+"\n"
+"  -u, --upgrade[=<சுருங்குறித்தொடர்>] <சுருங்குறித்தொடருக்குப்> பொருந்தும் நிரல்தொகுப்புகளைத் திறமுயர்த்து"
 
-#: guix/scripts/package.scm:343
+#: guix/scripts/package.scm:357
 msgid ""
 "\n"
 "  -m, --manifest=FILE    create a new profile generation with the manifest\n"
 "                         from FILE"
 msgstr ""
 
-#: guix/scripts/package.scm:346
+#: guix/scripts/package.scm:360 guix/scripts/upgrade.scm:40
 msgid ""
 "\n"
 "      --do-not-upgrade[=REGEXP] do not upgrade any packages matching REGEXP"
 msgstr ""
+"\n"
+"      --do-not-upgrade[=<சுருங்குறித்தொடர்>] <சுருங்குறித்தொடருக்குப்> பொருந்தும் நிரல்தொகுப்புகளைத் திறமுயர்த்தாதே"
 
-#: guix/scripts/package.scm:348 guix/scripts/pull.scm:102
+#: guix/scripts/package.scm:362 guix/scripts/pull.scm:108
 msgid ""
 "\n"
 "      --roll-back        roll back to the previous generation"
 msgstr ""
+"\n"
+"      --roll-back        முந்தைய வரிசைக்குச் செல்"
 
-#: guix/scripts/package.scm:350
+#: guix/scripts/package.scm:364
 msgid ""
 "\n"
 "      --search-paths[=KIND]\n"
 "                         display needed environment variable definitions"
 msgstr ""
+"\n"
+"      --search-paths[=<வகை>]\n"
+"                         தேவையான சூழல் மாறிகளைக் காட்டு"
 
-#: guix/scripts/package.scm:353 guix/scripts/pull.scm:99
+#: guix/scripts/package.scm:367 guix/scripts/pull.scm:105
 msgid ""
 "\n"
 "  -l, --list-generations[=PATTERN]\n"
 "                         list generations matching PATTERN"
 msgstr ""
+"\n"
+"  -l, --list-generations[=<குறிப்பீடு>]\n"
+"                         <குறிப்பீட்டுக்குப்> பொருந்தும் வரிசைகளைப் பட்டியலிடு"
 
-#: guix/scripts/package.scm:356 guix/scripts/pull.scm:104
+#: guix/scripts/package.scm:370 guix/scripts/pull.scm:110
 msgid ""
 "\n"
 "  -d, --delete-generations[=PATTERN]\n"
 "                         delete generations matching PATTERN"
 msgstr ""
+"\n"
+"  -d, --delete-generations[=<குறிப்பீடு>]\n"
+"                         <குறிப்பீட்டுக்குப்> பொருந்தும் வரிசைகளை நீக்கு"
 
-#: guix/scripts/package.scm:359 guix/scripts/pull.scm:107
+#: guix/scripts/package.scm:373 guix/scripts/pull.scm:113
 msgid ""
 "\n"
 "  -S, --switch-generation=PATTERN\n"
 "                         switch to a generation matching PATTERN"
 msgstr ""
+"\n"
+"  -S, --switch-generation=<குறிப்பீடு>\n"
+"                         <குறிப்பீட்டுக்குப்> பொருந்தும் வரிசைக்கு மாறு"
 
-#: guix/scripts/package.scm:362 guix/scripts/install.scm:33
-#: guix/scripts/remove.scm:33 guix/scripts/upgrade.scm:34
+#: guix/scripts/package.scm:376 guix/scripts/install.scm:34
+#: guix/scripts/remove.scm:33 guix/scripts/upgrade.scm:36
 msgid ""
 "\n"
 "  -p, --profile=PROFILE  use PROFILE instead of the user's default profile"
 msgstr ""
+"\n"
+"  -p, --profile=<தனியமைப்பு>  பயனரின் இயல்பிருப்பு தனியமைப்புக்கு மாற்றாக <தனியமைப்பைப்> பயன்படுத்து"
 
-#: guix/scripts/package.scm:364
+#: guix/scripts/package.scm:378
 msgid ""
 "\n"
 "      --list-profiles    list the user's profiles"
 msgstr ""
+"\n"
+"      --list-profiles    பயனரின் தனியமைப்புகளைப் பட்டியலிடு"
 
-#: guix/scripts/package.scm:367
+#: guix/scripts/package.scm:381
 msgid ""
 "\n"
 "      --allow-collisions do not treat collisions in the profile as an error"
 msgstr ""
 
-#: guix/scripts/package.scm:369
+#: guix/scripts/package.scm:383
 msgid ""
 "\n"
 "      --bootstrap        use the bootstrap Guile to build the profile"
 msgstr ""
 
-#: guix/scripts/package.scm:374
+#: guix/scripts/package.scm:388
 msgid ""
 "\n"
 "  -s, --search=REGEXP    search in synopsis and description using REGEXP"
 msgstr ""
+"\n"
+"  -s, --search=<சுருங்குறித்தொடர்>    பொழிப்புரையையும் விளக்கவுரையையும் <சுருங்குறித்தொடர்> கொண்டுத் தேடு"
 
-#: guix/scripts/package.scm:376
+#: guix/scripts/package.scm:390
 msgid ""
 "\n"
 "  -I, --list-installed[=REGEXP]\n"
 "                         list installed packages matching REGEXP"
 msgstr ""
+"\n"
+"  -I, --list-installed[=<சுருங்குறித்தொடர்>]\n"
+"                         நிறுவியிருக்கும் நிரல்தொகுப்புகளுள் <சுருங்குறித்தொடருக்குப்> பொருந்துபவற்றைப் பட்டியலிடு"
 
-#: guix/scripts/package.scm:379
+#: guix/scripts/package.scm:393
 msgid ""
 "\n"
 "  -A, --list-available[=REGEXP]\n"
 "                         list available packages matching REGEXP"
 msgstr ""
+"\n"
+"  -A, --list-available[=<சுருங்குறித்தொடர்>]\n"
+"                         எல்லாத் நிரல்தொகுப்புகளுள் <சுருங்குறித்தொடருக்குப்> பொருந்துபவற்றைப் பட்டியலிடு"
 
-#: guix/scripts/package.scm:382
+#: guix/scripts/package.scm:396
 msgid ""
 "\n"
 "      --show=PACKAGE     show details about PACKAGE"
 msgstr ""
 "\n"
 "\n"
-"      --show=தொகுப்பு    மென்பொருள் <தொகுப்பு> பற்றின விவரங்களைக் காட்டு"
+"      --show=<நிரல்தொகுப்பு>    <நிரல்தொகுப்பு> பற்றின விவரங்களைக் காட்டு"
 
-#: guix/scripts/package.scm:434
+#: guix/scripts/package.scm:449
 #, scheme-format
 msgid "upgrade regexp '~a' looks like a command-line option~%"
-msgstr ""
+msgstr "திறமுயர்த்த சுருங்குறித்தொடர் '~a' கட்டளை செயல்மாற்றி போலுள்ளது~%"
 
-#: guix/scripts/package.scm:437
+#: guix/scripts/package.scm:452
 #, scheme-format
 msgid "is this intended?~%"
 msgstr "இதைத் தான் கருதினீரா?"
 
-#: guix/scripts/package.scm:487
+#: guix/scripts/package.scm:502
 #, scheme-format
 msgid "~a: unsupported kind of search path~%"
 msgstr ""
 
-#: guix/scripts/package.scm:620
+#: guix/scripts/package.scm:628
 #, scheme-format
 msgid "cannot install non-package object: ~s~%"
-msgstr ""
+msgstr "நிரல்தொகுப்பு அல்லாததை நிறுவ இயலாது: ~s~%"
 
-#: guix/scripts/package.scm:792
+#: guix/scripts/package.scm:809
 #, scheme-format
 msgid "~a~@[@~a~]: package not found~%"
-msgstr "~a~@[@~a~]: மென்பொருள் தொகுப்பு கிடைக்கவில்லை"
+msgstr "~a~@[@~a~]: நிரல்தொகுப்பு கிடைக்கவில்லை~%"
 
-#: guix/scripts/package.scm:826 guix/scripts/pull.scm:693
+#: guix/scripts/package.scm:844 guix/scripts/pull.scm:687
 #, scheme-format
 msgid "cannot switch to generation '~a'~%"
-msgstr ""
+msgstr "வரிசை '~a' க்கு மாற இயலவில்லை~%"
 
-#: guix/scripts/install.scm:30
+#: guix/scripts/package.scm:949
+msgid "manage packages and profiles"
+msgstr "நிரல்தொகுப்புகளையும் தனியமைப்புகளையும் ஒழுங்கமை"
+
+#: guix/scripts/install.scm:31
 msgid ""
 "Usage: guix install [OPTION] PACKAGES...\n"
 "Install the given PACKAGES.\n"
 "This is an alias for 'guix package -i'.\n"
 msgstr ""
+"பயன்பாடு: guix install [<செயல்மாற்றிகள்>] <நிரல்தொகுப்புகள்>...\n"
+"<நிரல்தொகுப்புகளை> நிறுவு.\n"
+"இது 'guix package -i' கட்டளையை இயக்கும் இன்னொரு முறை.\n"
+
+#: guix/scripts/install.scm:69
+msgid "install packages"
+msgstr "நிரல்தொகுப்புகளை நிறுவு"
 
 #: guix/scripts/remove.scm:30
 msgid ""
@@ -2066,30 +2358,52 @@ msgid ""
 "Remove the given PACKAGES.\n"
 "This is an alias for 'guix package -r'.\n"
 msgstr ""
+"பயன்பாடு: guix remove [<செயல்மாற்றிகள்>] <நிரல்தொகுப்புகள்>...\n"
+"<நிரல்தொகுப்புகளை> நீக்கு.\n"
+"இது 'guix package -r' கட்டளையை இயக்கும் இன்னொரு முறை.\n"
+
+#: guix/scripts/remove.scm:67
+msgid "remove installed packages"
+msgstr ""
 
-#: guix/scripts/upgrade.scm:31
+#: guix/scripts/upgrade.scm:33
 msgid ""
 "Usage: guix upgrade [OPTION] [REGEXP]\n"
 "Upgrade packages that match REGEXP.\n"
 "This is an alias for 'guix package -u'.\n"
 msgstr ""
+"பயன்பாடு: guix upgrade [<செயல்மாற்றிகள்>] [<சுருங்குறித்தொடர்>]\n"
+"<சுருங்குறித்தொடருக்குப்> பொருந்தும் நிரல்தொகுப்புகளைத் திறமுயர்த்து.\n"
+"இது 'guix package -u' கட்டளையை இயக்கும் இன்னொரு முறை.\n"
+
+#: guix/scripts/upgrade.scm:72
+msgid "upgrade packages to their latest version"
+msgstr ""
 
 #: guix/scripts/search.scm:31
 msgid ""
 "Usage: guix search [OPTION] REGEXPS...\n"
 "Search for packages matching REGEXPS."
 msgstr ""
+"பயன்பாடு: guix search [<செயல்மாற்றிகள்>] <சுருங்குறித்தொடர்கள்>...\n"
+"<சுருங்குறித்தொடர்களுக்குப்> பொருந்தும் நிரல்தொகுப்புகளுக்குத் தேடு."
 
 #: guix/scripts/search.scm:33
 msgid ""
 "\n"
 "This is an alias for 'guix package -s'.\n"
 msgstr ""
+"\n"
+"இது 'guix package -s' கட்டளையை இயக்கும் இன்னொரு முறை.\n"
 
-#: guix/scripts/search.scm:74
+#: guix/scripts/search.scm:61
+msgid "search for packages"
+msgstr "நிரல்தொகுப்புகளுக்குத் தேடு"
+
+#: guix/scripts/search.scm:76
 #, scheme-format
 msgid "missing arguments: no regular expressions to search for~%"
-msgstr ""
+msgstr "செயலுருபுகள் இல்லை: தேடுவதற்குச் சுருங்குறித்தொடர்கள் இல்லை~%"
 
 #: guix/scripts/show.scm:31
 msgid ""
@@ -2104,11 +2418,17 @@ msgid ""
 "\n"
 "This is an alias for 'guix package --show='.\n"
 msgstr ""
+"\n"
+"இது 'guix package --show=' கட்டளையை இயக்கும் இன்னொரு முறை.\n"
 
-#: guix/scripts/show.scm:74
+#: guix/scripts/show.scm:61
+msgid "show information about packages"
+msgstr ""
+
+#: guix/scripts/show.scm:76
 #, scheme-format
 msgid "missing arguments: no package to show~%"
-msgstr ""
+msgstr "செயலுருபுகள் இல்லை: காட்டுவதற்கு நிரல்தொகுப்பு குறிப்பிடப்படவில்லை~%"
 
 #: guix/scripts/gc.scm:47
 msgid ""
@@ -2116,7 +2436,7 @@ msgid ""
 "Invoke the garbage collector.\n"
 msgstr ""
 "பயன்பாடு: guix gc [<செயல்மாற்றி>]... <பாதைகள்>...\n"
-"குப்பைத்திரட்டியைச் செயல்படுத்து.\n"
+"குப்பைக்கூட்டியை இயக்கு.\n"
 
 #: guix/scripts/gc.scm:49
 msgid ""
@@ -2126,7 +2446,7 @@ msgid ""
 msgstr ""
 "\n"
 "  -C, --collect-garbage[=குறைந்தபட்சம்]\n"
-"                        <குறைந்தபட்சம்> குப்பை எண்ணுன்மிகளையாவது திரட்டு"
+"                        <குறைந்தபட்சம்> குப்பை எண்ணுன்மிகளையாவது கூட்டு"
 
 #: guix/scripts/gc.scm:52
 msgid ""
@@ -2143,6 +2463,9 @@ msgid ""
 "  -d, --delete-generations[=PATTERN]\n"
 "                         delete profile generations matching PATTERN"
 msgstr ""
+"\n"
+"  -d, --delete-generations[=<குறிப்பீடு>]\n"
+"                         <குறிப்பீட்டுக்குப்> பொருந்தும் தனியமைப்பு வரிசைகளை நீக்கு"
 
 #: guix/scripts/gc.scm:57
 msgid ""
@@ -2150,14 +2473,15 @@ msgid ""
 "  -D, --delete           attempt to delete PATHS"
 msgstr ""
 "\n"
-"\n"
-"  -D, --delete    <பாதைகள்>யை அழிக்க முயல்"
+"  -D, --delete    <பாதைகளை> அழிக்க முயல்"
 
 #: guix/scripts/gc.scm:59
 msgid ""
 "\n"
 "      --list-roots       list the user's garbage collector roots"
 msgstr ""
+"\n"
+"      --list-roots      பயனரின் குப்பைக்கூட்டி வேர்களைப் பட்டியலிடு"
 
 #: guix/scripts/gc.scm:61
 msgid ""
@@ -2176,12 +2500,16 @@ msgid ""
 "\n"
 "      --list-dead        list dead paths"
 msgstr ""
+"\n"
+"      --list-dead        பயன்பாட்டில் இல்லாத பாதைகளைப் பட்டியலிடு"
 
 #: guix/scripts/gc.scm:67
 msgid ""
 "\n"
 "      --list-live        list live paths"
 msgstr ""
+"\n"
+"      --list-live        பயன்பாட்டிலுள்ள பாதைகளைப் பட்டியலிடு"
 
 #: guix/scripts/gc.scm:70
 msgid ""
@@ -2220,6 +2548,8 @@ msgid ""
 "\n"
 "      --list-failures    list cached build failures"
 msgstr ""
+"\n"
+"      --list-failures    பதுக்கப்பட்ட பெயர்ப்புத் தோல்விகளைப் பட்டியலுடு"
 
 #: guix/scripts/gc.scm:85
 msgid ""
@@ -2247,126 +2577,236 @@ msgstr ""
 msgid "~s does not denote a duration~%"
 msgstr "~s காலயளவைக் குறிப்பதில்லை~%"
 
-#: guix/scripts/gc.scm:249
-msgid "already ~h MiBs available on ~a, nothing to do~%"
+#: guix/scripts/gc.scm:224
+msgid "invoke the garbage collector"
 msgstr ""
 
-#: guix/scripts/gc.scm:252
+#: guix/scripts/gc.scm:251
+msgid "already ~h MiBs available on ~a, nothing to do~%"
+msgstr "~a பாதையில் ஏற்கனவே ~a MiB வெற்றிடம் உள்ளது, செய்ய ஒன்றுமில்லை~%"
+
+#: guix/scripts/gc.scm:254
 msgid "freeing ~h MiBs~%"
 msgstr "~h எண்ணுன்மிகள் விடுவிக்கப்படுகின்றன~%"
 
-#: guix/scripts/gc.scm:291
+#: guix/scripts/gc.scm:293
 #, scheme-format
 msgid "extraneous arguments: ~{~a ~}~%"
-msgstr ""
+msgstr "கூடுதலான செயலுருபுகள்: ~{~a ~}~%"
 
-#: guix/scripts/gc.scm:315 guix/scripts/gc.scm:318
+#: guix/scripts/gc.scm:317 guix/scripts/gc.scm:320
 msgid "freed ~h MiBs~%"
-msgstr "~h எண்ணுன்மிகள் விடுவிக்கப்பட்டன~%"
+msgstr "~h MiB விடுவிக்கப்பட்டன~%"
+
+#: guix/scripts/git.scm:26
+msgid ""
+"Usage: guix git COMMAND ARGS...\n"
+"Operate on Git repositories.\n"
+msgstr ""
+"பயன்பாடு: guix git <கட்டளை> <செயலுருபுகள்>...\n"
+"Git களஞ்சியங்கள் மீது கட்டளைகளை இயக்கு.\n"
+
+#: guix/scripts/git.scm:29 guix/scripts/system.scm:921
+#: guix/scripts/container.scm:30
+msgid "The valid values for ACTION are:\n"
+msgstr "ஏற்கத்தகுச் <செயல்கள்>:\n"
+
+#: guix/scripts/git.scm:31
+msgid "   authenticate    verify commit signatures and authorizations\n"
+msgstr ""
+
+#: guix/scripts/git.scm:51
+msgid "operate on Git repositories"
+msgstr ""
+
+#: guix/scripts/git.scm:57
+#, scheme-format
+msgid "guix git: missing sub-command~%"
+msgstr "guix git: சார்கட்டளை குறிப்பிடப்படவில்லை~%"
 
-#: guix/scripts/hash.scm:48
+#: guix/scripts/git.scm:67
+#, scheme-format
+msgid "guix git: invalid sub-command~%"
+msgstr "guix git: ஏற்கத்தகாச் சார்கட்டளை~%"
+
+#: guix/scripts/git/authenticate.scm:81
+#, scheme-format
+msgid "Signing statistics:~%"
+msgstr "கையெழுத்து புள்ளிவிவரம்:~%"
+
+#: guix/scripts/git/authenticate.scm:94
+msgid ""
+"Usage: guix git authenticate COMMIT SIGNER [OPTIONS...]\n"
+"Authenticate the given Git checkout using COMMIT/SIGNER as its introduction.\n"
+msgstr ""
+
+#: guix/scripts/git/authenticate.scm:96
+msgid ""
+"\n"
+"  -r, --repository=DIRECTORY\n"
+"                         open the Git repository at DIRECTORY"
+msgstr ""
+"\n"
+"  -r, --repository=<அடைவு>\n"
+"                         <அடைவிலுள்ள> Git களஞ்சியத்தைத் திற"
+
+#: guix/scripts/git/authenticate.scm:99
+msgid ""
+"\n"
+"  -k, --keyring=REFERENCE\n"
+"                         load keyring from REFERENCE, a Git branch"
+msgstr ""
+
+#: guix/scripts/git/authenticate.scm:102
+msgid ""
+"\n"
+"      --stats            display commit signing statistics upon completion"
+msgstr ""
+
+#: guix/scripts/git/authenticate.scm:104
+msgid ""
+"\n"
+"      --cache-key=KEY    cache authenticated commits under KEY"
+msgstr ""
+
+#: guix/scripts/git/authenticate.scm:106
+msgid ""
+"\n"
+"      --historical-authorizations=FILE\n"
+"                         read historical authorizations from FILE"
+msgstr ""
+
+#: guix/scripts/git/authenticate.scm:138
+msgid "Authenticating commits ~a to ~a (~h new commits)...~%"
+msgstr ""
+
+#: guix/scripts/git/authenticate.scm:178
+#, scheme-format
+msgid "wrong number of arguments; expected COMMIT and SIGNER~%"
+msgstr ""
+
+#: guix/scripts/hash.scm:50
 msgid ""
 "Usage: guix hash [OPTION] FILE\n"
 "Return the cryptographic hash of FILE.\n"
-"\n"
-"Supported formats: 'nix-base32' (default), 'base32', and 'base16' ('hex'\n"
-"and 'hexadecimal' can be used as well).\n"
 msgstr ""
+"பயன்பாடு: guix hash [<செயல்மாற்றி>] <கோப்பு>\n"
+"<கோப்பின்> மறையீட்டுக் கொத்தைக் காட்டு.\n"
 
-#: guix/scripts/hash.scm:53
+#: guix/scripts/hash.scm:56
 msgid ""
 "\n"
 "  -x, --exclude-vcs      exclude version control directories"
 msgstr ""
 
-#: guix/scripts/hash.scm:57
+#: guix/scripts/hash.scm:62
 msgid ""
 "\n"
 "  -r, --recursive        compute the hash on FILE recursively"
 msgstr ""
 
-#: guix/scripts/hash.scm:151 guix/ui.scm:389 guix/ui.scm:414 guix/ui.scm:741
-#: guix/ui.scm:763 guix/ui.scm:769 guix/ui.scm:786 guix/ui.scm:839
+#: guix/scripts/hash.scm:121
+msgid "compute the cryptographic hash of a file"
+msgstr ""
+
+#: guix/scripts/hash.scm:171 guix/ui.scm:397 guix/ui.scm:428 guix/ui.scm:785
+#: guix/ui.scm:833 guix/ui.scm:889
 #, scheme-format
 msgid "~a~%"
 msgstr "~a~%"
 
-#: guix/scripts/hash.scm:154 guix/scripts/system.scm:1204
-#: guix/scripts/system.scm:1220 guix/scripts/system.scm:1227
-#: guix/scripts/system.scm:1233
+#: guix/scripts/hash.scm:174 guix/scripts/system.scm:1247
+#: guix/scripts/system.scm:1263 guix/scripts/system.scm:1270
+#: guix/scripts/system.scm:1276
 #, scheme-format
 msgid "wrong number of arguments~%"
 msgstr ""
 
-#: guix/scripts/import.scm:88
+#: guix/scripts/import.scm:89
 msgid ""
 "Usage: guix import IMPORTER ARGS ...\n"
 "Run IMPORTER with ARGS.\n"
 msgstr ""
+"பயன்பாடு: guix import <இறக்கி> <செயலுருபுகள்> ...\n"
+"<இறக்கியைச்> <செயலுருபுகளுடன்> இயக்கு.\n"
 
-#: guix/scripts/import.scm:91
+#: guix/scripts/import.scm:92
 msgid "IMPORTER must be one of the importers listed below:\n"
+msgstr "<இறக்கி> பின்வரும் இறக்கிகளுளொன்றாக இருக்க வேண்டும்:\n"
+
+#: guix/scripts/import.scm:104
+msgid "import a package definition from an external repository"
 msgstr ""
 
-#: guix/scripts/import.scm:105
+#: guix/scripts/import.scm:109
 #, scheme-format
 msgid "guix import: missing importer name~%"
-msgstr ""
+msgstr "guix import: <இறக்கி> குறிப்பிடப்படவில்லை~%"
 
-#: guix/scripts/import.scm:126
+#: guix/scripts/import.scm:130
 #, scheme-format
 msgid "'~a' import failed~%"
-msgstr ""
+msgstr "~a இறக்கி தோல்வியுற்றது~%"
 
-#: guix/scripts/import.scm:127
+#: guix/scripts/import.scm:131
 #, scheme-format
 msgid "~a: invalid importer~%"
-msgstr ""
+msgstr "~a: ஏற்கத்தகா இறக்கி~%"
 
 #: guix/scripts/import/cran.scm:43
 msgid ""
 "Usage: guix import cran PACKAGE-NAME\n"
 "Import and convert the CRAN package for PACKAGE-NAME.\n"
 msgstr ""
+"பயன்பாடு: guix import cran <நிரல்தொகுப்புப்பெயர்>\n"
+"<நிரல்தொகுப்புப்பெயர்> என்னும் CRAN நிரல்தொகுப்பை இறக்கு.\n"
 
 #: guix/scripts/import/cran.scm:45
 msgid ""
 "\n"
 "  -a, --archive=ARCHIVE  specify the archive repository"
 msgstr ""
+"\n"
+"  -a, --archive=<களஞ்சியம்>  <களஞ்சியத்திலிருந்து> இறக்கு"
 
 #: guix/scripts/import/cran.scm:49
 msgid ""
 "\n"
 "  -r, --recursive        import packages recursively"
 msgstr ""
+"\n"
+"  -r, --recursive        நிரல்தொகுப்பின் சார்தொகுப்புகளைத் தற்சுருளாக இறக்கு"
 
 #: guix/scripts/import/cran.scm:106
 #, scheme-format
 msgid "failed to download description for package '~a'~%"
-msgstr ""
+msgstr "'~a' நிரல்தொகுப்புப் பற்றிய விள்க்கவுரையைப் பதிவிறக்க இயலவில்லை~%"
 
 #: guix/scripts/import/cran.scm:110 guix/scripts/import/elpa.scm:110
 #, scheme-format
 msgid "too few arguments~%"
-msgstr ""
+msgstr "குறைவான செயலுருபுகள்~%"
 
 #: guix/scripts/import/cran.scm:112 guix/scripts/import/elpa.scm:112
 #, scheme-format
 msgid "too many arguments~%"
-msgstr "அளவிற்கதிகமான செயலுருபுகள்"
+msgstr "கூடுதல் செயலுருபுகள்~%"
 
 #: guix/scripts/import/elpa.scm:43
 msgid ""
 "Usage: guix import elpa PACKAGE-NAME\n"
 "Import the latest package named PACKAGE-NAME from an ELPA repository.\n"
 msgstr ""
+"பயன்பாடு: guix import elpa <நிரல்தொகுப்புப்பெயர்>\n"
+"<நிரல்தொகுப்புப்பெயர்> என்னும் ELPA நிரல்தொகுப்பை இறக்கு.\n"
 
 #: guix/scripts/import/elpa.scm:45
 msgid ""
 "\n"
 "  -a, --archive=ARCHIVE          specify the archive repository"
 msgstr ""
+"\n"
+"  -a, --archive=<களஞ்சியம்>      <களஞ்சியத்திலிருந்து> இறக்கு"
 
 #: guix/scripts/import/elpa.scm:47
 msgid ""
@@ -2397,7 +2837,7 @@ msgstr ""
 msgid "failed to download package '~a'~%"
 msgstr "'~a' மென்பொருள் தொகுப்பின் பதிவிறக்கம் தோல்வியுற்றது~%"
 
-#: guix/scripts/pull.scm:87
+#: guix/scripts/pull.scm:88
 msgid ""
 "Usage: guix pull [OPTION]...\n"
 "Download and deploy the latest version of Guix.\n"
@@ -2405,241 +2845,272 @@ msgstr ""
 "பயன்பாடு: guix pull [<செயல்மாற்றி>]...\n"
 "Guix யின் அண்மைய பதிப்பைப் பதிவிறக்கி நிறுவு.\n"
 
-#: guix/scripts/pull.scm:89
+#: guix/scripts/pull.scm:90
 msgid ""
 "\n"
 "  -C, --channels=FILE    deploy the channels defined in FILE"
 msgstr ""
 
-#: guix/scripts/pull.scm:91
+#: guix/scripts/pull.scm:92
 msgid ""
 "\n"
 "      --url=URL          download from the Git repository at URL"
 msgstr ""
+"\n"
+"      --url=<முகவரி>     <முகவரியிலுள்ள> Git களஞ்சியத்திலுருந்து பதிவிறக்கு"
 
-#: guix/scripts/pull.scm:93
+#: guix/scripts/pull.scm:94
 msgid ""
 "\n"
 "      --commit=COMMIT    download the specified COMMIT"
 msgstr ""
+"\n"
+"      --commit=<பதிவு>    Git <பதிவைப்> பதிவிறக்கு"
 
-#: guix/scripts/pull.scm:95
+#: guix/scripts/pull.scm:96
 msgid ""
 "\n"
 "      --branch=BRANCH    download the tip of the specified BRANCH"
 msgstr ""
+"\n"
+"      --branch=<கிளை>   <கிளையின்> நுனியைப் பதிவிறக்கு"
+
+#: guix/scripts/pull.scm:98
+msgid ""
+"\n"
+"      --allow-downgrades allow downgrades to earlier channel revisions"
+msgstr ""
+"\n"
+"      --allow-downgrades முந்தைய அலைத்தட பதிப்புகளுக்குத் திறங்குறைக்க அனுமதி"
+
+#: guix/scripts/pull.scm:100
+msgid ""
+"\n"
+"      --disable-authentication\n"
+"                         disable channel authentication"
+msgstr ""
 
-#: guix/scripts/pull.scm:97
+#: guix/scripts/pull.scm:103
 msgid ""
 "\n"
 "  -N, --news             display news compared to the previous generation"
 msgstr ""
+"\n"
+"  -N, --news             முந்தைய வரிசையிலிருந்து புதியதாயுள்ள செய்திகளைக் காட்டு"
 
-#: guix/scripts/pull.scm:110
+#: guix/scripts/pull.scm:116
 #, scheme-format
 msgid ""
 "\n"
 "  -p, --profile=PROFILE  use PROFILE instead of ~/.config/guix/current"
 msgstr ""
+"\n"
+"  -p, --profile=<தனியமைப்பு>  ~/.config/guix/current பாதைக்கு மாற்றாக <தனியமைப்பைப்> பயன்படுத்து"
 
-#: guix/scripts/pull.scm:116
+#: guix/scripts/pull.scm:122
 msgid ""
 "\n"
 "      --bootstrap        use the bootstrap Guile to build the new Guix"
 msgstr ""
 
-#: guix/scripts/pull.scm:217
+#: guix/scripts/pull.scm:211
+#, scheme-format
+msgid "rolling back channel '~a' from ~a to ~a~%"
+msgstr "~a அலைத்தடம் ~a பதிவிலிருந்து ~a பதிவுக்குப் பின்செலுத்தப்படுகிறது~%"
+
+#: guix/scripts/pull.scm:214
+#, scheme-format
+msgid "moving channel '~a' from ~a to unrelated commit ~a~%"
+msgstr "~a அலைத்தடம் ~a பதிவிலிருந்து தொடர்பற்ற ~a பதிவுக்கு நகர்கிறது~%"
+
+#: guix/scripts/pull.scm:243
 msgid "New in this revision:\n"
 msgstr "இப்பதிப்பில் புதியவை:\n"
 
 #. TRANSLATORS: This describes a "channel"; the first placeholder is
 #. the channel name (e.g., "guix") and the second placeholder is its
 #. URL.
-#: guix/scripts/pull.scm:226
+#: guix/scripts/pull.scm:252
 #, scheme-format
 msgid "    ~a at ~a~%"
-msgstr ""
+msgstr "    ~1@*~a முகவரியில் அலைத்தடம் ~0@*~a~%"
 
-#: guix/scripts/pull.scm:264
+#: guix/scripts/pull.scm:290
 #, scheme-format
 msgid "    commit ~a~%"
-msgstr ""
+msgstr "    பதிவு ~a~%"
 
-#: guix/scripts/pull.scm:301
+#: guix/scripts/pull.scm:327
 #, scheme-format
 msgid "News for channel '~a'~%"
-msgstr ""
+msgstr "'~a' அலைத்தடத்திற்கான செய்திகள்~%"
 
-#: guix/scripts/pull.scm:327
+#: guix/scripts/pull.scm:353
 #, scheme-format
 msgid "  ~a new channel:~%"
 msgid_plural "  ~a new channels:~%"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "  ~a புதிய அலைத்தடம்:~%"
+msgstr[1] "  ~a புதிய அலைத்தடங்கள்:~%"
 
-#: guix/scripts/pull.scm:337
+#: guix/scripts/pull.scm:363
 #, scheme-format
 msgid "  ~a channel removed:~%"
 msgid_plural "  ~a channels removed:~%"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "  ~a அலைத்தடம் நீக்கப்பட்டது:~%"
+msgstr[1] "  ~a அலைத்தடங்கள் நீக்கப்பட்டன:~%"
 
-#: guix/scripts/pull.scm:416
+#: guix/scripts/pull.scm:439
 msgid "Run @command{guix pull --news} to read all the news."
 msgstr "எல்லாச் செய்திகளையும் படிக்க @command{guix pull --news} கட்டளையைக் கொடுக்க."
 
-#: guix/scripts/pull.scm:424
+#: guix/scripts/pull.scm:447
 #, scheme-format
 msgid ""
 "After setting @code{PATH}, run\n"
 "@command{hash guix} to make sure your shell refers to @file{~a}."
 msgstr ""
 
-#: guix/scripts/pull.scm:449
-#, scheme-format
-msgid "Git error ~a~%"
-msgstr "Git பிழை ~a~%"
-
-#: guix/scripts/pull.scm:451 guix/git.scm:364
-#, scheme-format
-msgid "Git error: ~a~%"
-msgstr "Git பிழை: ~a~%"
-
-#: guix/scripts/pull.scm:476
+#: guix/scripts/pull.scm:482
 #, scheme-format
 msgid "Migrating profile generations to '~a'...~%"
 msgstr ""
 
-#: guix/scripts/pull.scm:518
+#: guix/scripts/pull.scm:525
 #, scheme-format
 msgid "while creating symlink '~a': ~a~%"
 msgstr ""
 
-#: guix/scripts/pull.scm:620
+#: guix/scripts/pull.scm:614
 msgid "  ~h new package: ~a~%"
 msgid_plural "  ~h new packages: ~a~%"
 msgstr[0] "  ~h புதிய மென்பொருள் தொகுப்பு: ~a~%"
 msgstr[1] "  ~h புதிய மென்பொருள் தொகுப்புகள்: ~a~%"
 
-#: guix/scripts/pull.scm:628
+#: guix/scripts/pull.scm:622
 msgid "  ~h package upgraded: ~a~%"
 msgid_plural "  ~h packages upgraded: ~a~%"
 msgstr[0] "  ~h மென்பொருள் தொகுப்பு திறமுயர்த்தப்பட்டது: ~a~%"
 msgstr[1] "  ~h மென்பொருள் தொகுப்புகள் திறமுயர்த்தப்பட்டன: ~a~%"
 
-#: guix/scripts/pull.scm:717
+#: guix/scripts/pull.scm:711
 #, scheme-format
 msgid "'~a' did not return a list of channels~%"
-msgstr ""
+msgstr "'~a' அலைத்தடங்களின் பட்டியலைக் கொடுக்கவில்லை~%"
 
-#: guix/scripts/pull.scm:733
+#: guix/scripts/pull.scm:727
 #, scheme-format
 msgid ""
 "The 'GUIX_PULL_URL' environment variable is deprecated.\n"
 "Use '~/.config/guix/channels.scm' instead."
 msgstr ""
+"'GUIX_PULL_URL' சூழல்மாறி வழக்கொழிந்தது.\n"
+"'~/.config/guix/channels.scm' கோப்பைப் பயன்படுத்துக."
 
-#: guix/scripts/pull.scm:782
+#: guix/scripts/pull.scm:755
+msgid "pull the latest revision of Guix"
+msgstr ""
+
+#: guix/scripts/pull.scm:795
 #, scheme-format
 msgid "Building from this channel:~%"
 msgid_plural "Building from these channels:~%"
-msgstr[0] "இவ்வலைத்தடம் கட்டமைக்கப்படுகிறது:~%"
-msgstr[1] "இவ்வலைத்தடங்கள் கட்டமைக்கப்படுகின்றன:~%"
+msgstr[0] "இவ்வலைத்தடம் பெயர்க்கப்படுகிறது:~%"
+msgstr[1] "இவ்வலைத்தடங்கள் பெயர்க்கப்படுகின்றன:~%"
 
-#: guix/scripts/substitute.scm:124
+#: guix/scripts/substitute.scm:117
 #, scheme-format
 msgid "authentication and authorization of substitutes disabled!~%"
 msgstr ""
 
-#: guix/scripts/substitute.scm:210
+#: guix/scripts/substitute.scm:203
 #, scheme-format
 msgid "download from '~a' failed: ~a, ~s~%"
 msgstr "'~a' யிலிருந்து பதிவிறக்கம் தோல்வியுற்றது: ~a, ~s~%"
 
-#: guix/scripts/substitute.scm:223
+#: guix/scripts/substitute.scm:216
 #, scheme-format
 msgid "while fetching ~a: server is somewhat slow~%"
-msgstr ""
+msgstr "~a பதிவிறக்கும்பொழுது: வழங்கி சற்று மெதுவாக உள்ளது~%"
 
-#: guix/scripts/substitute.scm:225
+#: guix/scripts/substitute.scm:218
 #, scheme-format
 msgid "try `--no-substitutes' if the problem persists~%"
 msgstr ""
 
-#: guix/scripts/substitute.scm:235
+#: guix/scripts/substitute.scm:228
 #, scheme-format
 msgid "unsupported substitute URI scheme: ~a~%"
 msgstr ""
 
-#: guix/scripts/substitute.scm:274
+#: guix/scripts/substitute.scm:267
 #, scheme-format
 msgid "signature version must be a number: ~s~%"
 msgstr ""
 
-#: guix/scripts/substitute.scm:278
+#: guix/scripts/substitute.scm:271
 #, scheme-format
 msgid "unsupported signature version: ~a~%"
 msgstr ""
 
-#: guix/scripts/substitute.scm:286
+#: guix/scripts/substitute.scm:279
 #, scheme-format
 msgid "signature is not a valid s-expression: ~s~%"
 msgstr ""
 
-#: guix/scripts/substitute.scm:290
+#: guix/scripts/substitute.scm:283
 #, scheme-format
 msgid "invalid format of the signature field: ~a~%"
 msgstr ""
 
-#: guix/scripts/substitute.scm:418
+#: guix/scripts/substitute.scm:411
 #, scheme-format
 msgid "'~a' does not name a store item~%"
 msgstr ""
 
-#: guix/scripts/substitute.scm:603
+#: guix/scripts/substitute.scm:598
 #, scheme-format
 msgid "~a: host not found: ~a~%"
 msgstr ""
 
-#: guix/scripts/substitute.scm:609
+#: guix/scripts/substitute.scm:604
 #, scheme-format
 msgid "~a: connection failed: ~a~%"
 msgstr "~a: இணைப்பு தோல்வியுற்றது: ~a~%"
 
-#: guix/scripts/substitute.scm:625
+#: guix/scripts/substitute.scm:620
 #, scheme-format
 msgid "updating substitutes from '~a'... ~5,1f%"
 msgstr ""
 
-#: guix/scripts/substitute.scm:696
+#: guix/scripts/substitute.scm:691
 #, scheme-format
 msgid "~s: unsupported server URI scheme~%"
 msgstr ""
 
-#: guix/scripts/substitute.scm:836
+#: guix/scripts/substitute.scm:831
 #, scheme-format
 msgid "host name lookup error: ~a~%"
 msgstr ""
 
-#: guix/scripts/substitute.scm:841
+#: guix/scripts/substitute.scm:836
 #, scheme-format
 msgid "TLS error in procedure '~a': ~a~%"
 msgstr ""
 
-#: guix/scripts/substitute.scm:852
+#: guix/scripts/substitute.scm:847
 msgid ""
 "Usage: guix substitute [OPTION]...\n"
 "Internal tool to substitute a pre-built binary to a local build.\n"
 msgstr ""
 
-#: guix/scripts/substitute.scm:854
+#: guix/scripts/substitute.scm:849
 msgid ""
 "\n"
 "      --query            report on the availability of substitutes for the\n"
 "                         store file names passed on the standard input"
 msgstr ""
 
-#: guix/scripts/substitute.scm:857
+#: guix/scripts/substitute.scm:852
 msgid ""
 "\n"
 "      --substitute STORE-FILE DESTINATION\n"
@@ -2647,123 +3118,143 @@ msgid ""
 "                         DESTINATION"
 msgstr ""
 
-#: guix/scripts/substitute.scm:978
+#: guix/scripts/substitute.scm:973
 #, scheme-format
 msgid "no valid substitute for '~a'~%"
-msgstr ""
+msgstr "~a கிடங்குருப்படிக்கு ஏற்கத்தகு மாற்றீடில்லை~%"
 
-#: guix/scripts/substitute.scm:988
+#: guix/scripts/substitute.scm:983
 #, scheme-format
 msgid "Downloading ~a...~%"
-msgstr ""
+msgstr "~a பதிவிறக்கப்படுகிறது~%"
 
-#: guix/scripts/substitute.scm:1048
+#: guix/scripts/substitute.scm:1043
 msgid "ACL for archive imports seems to be uninitialized, substitutes may be unavailable\n"
 msgstr ""
 
-#: guix/scripts/substitute.scm:1102
+#: guix/scripts/substitute.scm:1097
 #, scheme-format
 msgid "~a: invalid URI~%"
 msgstr "~a: ஏற்கத்தகா முகவரி~%"
 
-#: guix/scripts/substitute.scm:1173
+#: guix/scripts/substitute.scm:1101
+msgid "implement the build daemon's substituter protocol"
+msgstr ""
+
+#: guix/scripts/substitute.scm:1171
 #, scheme-format
 msgid "~a: unrecognized options~%"
 msgstr "~a: அறியப்படா செயல்மாற்றிகள்~%"
 
-#: guix/scripts/authenticate.scm:59
+#: guix/scripts/authenticate.scm:64
 #, scheme-format
-msgid "cannot find public key for secret key '~a'~%"
-msgstr ""
+msgid "failed to load key pair at '~a': ~a~%"
+msgstr "~a கோப்பிலிருந்து திறவியை ஏற்ற இயலவில்லை: ~a~%"
 
-#: guix/scripts/authenticate.scm:79
+#: guix/scripts/authenticate.scm:86
 #, scheme-format
-msgid "error: invalid signature: ~a~%"
-msgstr "பிழை: ஏற்கத்தகா கையெழுத்து: ~a~%"
+msgid "invalid signature: ~a"
+msgstr "ஏற்கத்தகாக் கையெழுத்து: ~a"
 
-#: guix/scripts/authenticate.scm:81
+#: guix/scripts/authenticate.scm:89
 #, scheme-format
-msgid "error: unauthorized public key: ~a~%"
+msgid "unauthorized public key: ~a"
 msgstr ""
 
-#: guix/scripts/authenticate.scm:83
+#: guix/scripts/authenticate.scm:92
 #, scheme-format
-msgid "error: corrupt signature data: ~a~%"
+msgid "corrupt signature data: ~a"
+msgstr ""
+
+#: guix/scripts/authenticate.scm:151
+msgid "sign or verify signatures on normalized archives (nars)"
 msgstr ""
 
-#: guix/scripts/authenticate.scm:121
+#: guix/scripts/authenticate.scm:184
 msgid ""
 "Usage: guix authenticate OPTION...\n"
-"Sign or verify the signature on the given file.  This tool is meant to\n"
-"be used internally by 'guix-daemon'.\n"
+"Sign data or verify signatures.  This tool is meant to be used internally by\n"
+"'guix-daemon'.\n"
 msgstr ""
 
-#: guix/scripts/authenticate.scm:127
-msgid "wrong arguments"
-msgstr ""
+#: guix/scripts/authenticate.scm:218
+#, scheme-format
+msgid "~s: invalid command; ignoring~%"
+msgstr "~s: ஏற்கத்தகாக் கட்டளை; புறக்கணிக்கப்படுகிறது~%"
+
+#: guix/scripts/authenticate.scm:223
+#, scheme-format
+msgid "wrong arguments~%"
+msgstr "ஏற்கத்தகாச் செயலுருபுகள்"
 
-#: guix/scripts/system.scm:154
+#: guix/scripts/system.scm:161
 #, scheme-format
 msgid "failed to register '~a' under '~a'~%"
 msgstr ""
 
-#: guix/scripts/system.scm:169
+#: guix/scripts/system.scm:176
 #, scheme-format
 msgid "copying to '~a'..."
 msgstr ""
 
-#: guix/scripts/system.scm:196
+#: guix/scripts/system.scm:203
 #, scheme-format
 msgid "initializing the current root file system~%"
 msgstr ""
 
-#: guix/scripts/system.scm:210
+#: guix/scripts/system.scm:217
 #, scheme-format
 msgid "not running as 'root', so the ownership of '~a' may be incorrect!~%"
 msgstr ""
 
-#: guix/scripts/system.scm:240 guix/scripts/system.scm:757
-#: guix/scripts/system.scm:862
+#: guix/scripts/system.scm:247 guix/scripts/system.scm:743
+#: guix/scripts/system.scm:851
 #, scheme-format
 msgid "bootloader successfully installed on '~a'~%"
 msgstr ""
 
-#: guix/scripts/system.scm:263
+#: guix/scripts/system.scm:270
 #, scheme-format
 msgid "while talking to shepherd: ~a~%"
-msgstr ""
+msgstr "shepherd செயலாக்கத்துடன் பேசும்பொழுது: ~a~%"
 
-#: guix/scripts/system.scm:270
+#: guix/scripts/system.scm:278
 #, scheme-format
 msgid "service '~a' could not be found~%"
 msgstr "'~a' பணி கிடைக்கவில்லை~%"
 
-#: guix/scripts/system.scm:273
+#: guix/scripts/system.scm:281
 #, scheme-format
 msgid "service '~a' does not have an action '~a'~%"
 msgstr ""
 
-#: guix/scripts/system.scm:277
+#: guix/scripts/system.scm:285
 #, scheme-format
 msgid "exception caught while executing '~a' on service '~a':~%"
 msgstr ""
 
-#: guix/scripts/system.scm:285
+#: guix/scripts/system.scm:293
 #, scheme-format
 msgid "something went wrong: ~s~%"
 msgstr ""
 
-#: guix/scripts/system.scm:288
+#: guix/scripts/system.scm:296
 #, scheme-format
 msgid "shepherd error~%"
 msgstr "shepherd பிழை~%"
 
-#: guix/scripts/system.scm:305
+#: guix/scripts/system.scm:300
 #, scheme-format
-msgid "failed to obtain list of shepherd services~%"
+msgid "some services could not be upgraded~%"
+msgstr "சிலப் பணிகளைத் திறமுயர்த்த இயலவில்லை~%"
+
+#: guix/scripts/system.scm:301
+msgid ""
+"To allow changes to all the system services to take\n"
+"effect, you will need to reboot."
 msgstr ""
 
-#: guix/scripts/system.scm:368
+#: guix/scripts/system.scm:364
 #, scheme-format
 msgid "cannot switch to system generation '~a'~%"
 msgstr ""
@@ -2776,38 +3267,38 @@ msgstr ""
 msgid "the dependency graph of shepherd services"
 msgstr ""
 
-#: guix/scripts/system.scm:477
+#: guix/scripts/system.scm:466
 #, scheme-format
 msgid "      repository URL: ~a~%"
 msgstr ""
 
-#: guix/scripts/system.scm:479
+#: guix/scripts/system.scm:468
 #, scheme-format
 msgid "      branch: ~a~%"
 msgstr ""
 
-#: guix/scripts/system.scm:480
+#: guix/scripts/system.scm:469
 #, scheme-format
 msgid "      commit: ~a~%"
 msgstr ""
 
-#: guix/scripts/system.scm:502
+#: guix/scripts/system.scm:489
 #, scheme-format
 msgid "  file name: ~a~%"
 msgstr "  கோப்புப் பெயர்: ~a~%"
 
-#: guix/scripts/system.scm:503
+#: guix/scripts/system.scm:490
 #, scheme-format
 msgid "  canonical file name: ~a~%"
 msgstr "  ஒழுங்குமுறைப்பட்ட கோப்புப் பெயர்: ~a~%"
 
 #. TRANSLATORS: Please preserve the two-space indentation.
-#: guix/scripts/system.scm:505
+#: guix/scripts/system.scm:492
 #, scheme-format
 msgid "  label: ~a~%"
-msgstr ""
+msgstr "  சிட்டை: ~a~%"
 
-#: guix/scripts/system.scm:506
+#: guix/scripts/system.scm:493
 #, scheme-format
 msgid "  bootloader: ~a~%"
 msgstr "  தொடக்க ஏற்றி: ~a~%"
@@ -2820,76 +3311,92 @@ msgstr "  தொடக்க ஏற்றி: ~a~%"
 #. root device: label: "my-root"
 #. or just:
 #. root device: /dev/sda3
-#: guix/scripts/system.scm:516
+#: guix/scripts/system.scm:503
 #, scheme-format
 msgid "  root device: ~[UUID: ~a~;label: ~s~;~a~]~%"
 msgstr ""
 
-#: guix/scripts/system.scm:527
+#: guix/scripts/system.scm:509
 #, scheme-format
 msgid "  kernel: ~a~%"
 msgstr ""
 
+#: guix/scripts/system.scm:514
+#, scheme-format
+msgid "  multiboot: ~a~%"
+msgstr ""
+
 #. TRANSLATORS: Here "channel" is the same terminology as used in
 #. "guix describe" and "guix pull --channels".
-#: guix/scripts/system.scm:537
+#: guix/scripts/system.scm:520
 #, scheme-format
 msgid "  channels:~%"
-msgstr ""
+msgstr "  அலைத்தடங்கள்:~%"
 
-#: guix/scripts/system.scm:540
+#: guix/scripts/system.scm:523
 #, scheme-format
 msgid "  configuration file: ~a~%"
-msgstr ""
+msgstr "  அமைவடிவக்கோப்பு: ~a~%"
 
-#: guix/scripts/system.scm:612
+#: guix/scripts/system.scm:596
 #, scheme-format
-msgid "~a: error: device '~a' not found: ~a~%"
-msgstr "~a: பிழை: '~a' கருவி கிடைக்கவில்லை: ~a~%"
+msgid "device '~a' not found: ~a~%"
+msgstr "'~a' கருவி இல்லை: ~a~%"
 
-#: guix/scripts/system.scm:616
+#: guix/scripts/system.scm:599
 #, scheme-format
 msgid ""
 "If '~a' is a file system\n"
 "label, write @code{(file-system-label ~s)} in your @code{device} field."
 msgstr ""
+"'~a' கோப்பமைப்பு சிட்டையெனின் @code{device} புலத்தில்\n"
+"@code{(file-system-label ~s)} என்க."
 
-#: guix/scripts/system.scm:624
-#, scheme-format
-msgid "~a: error: file system with label '~a' not found~%"
-msgstr ""
-
-#: guix/scripts/system.scm:629
+#: guix/scripts/system.scm:608
 #, scheme-format
-msgid "~a: error: file system with UUID '~a' not found~%"
-msgstr ""
+msgid "file system with label '~a' not found~%"
+msgstr "'~a' சிட்டையுடை கோப்பமைப்பு இல்லை~%"
 
-#: guix/scripts/system.scm:734
+#: guix/scripts/system.scm:614
 #, scheme-format
-msgid "~a not found: 'guix pull' was never run~%"
-msgstr ""
+msgid "file system with UUID '~a' not found~%"
+msgstr "'~a' UUID உடைய கோப்பமைப்பு இல்லை~%"
 
-#: guix/scripts/system.scm:735
+#: guix/scripts/system.scm:721
 #, scheme-format
 msgid "Consider running 'guix pull' before 'reconfigure'.~%"
-msgstr ""
+msgstr "'reconfigure' செய்யும் முன் 'guix pull' கட்டளையை இயக்கக் கருதுக.~%"
 
-#: guix/scripts/system.scm:736
+#: guix/scripts/system.scm:722
 #, scheme-format
 msgid "Failing to do that may downgrade your system!~%"
-msgstr ""
+msgstr "அதைச் செய்யாவிடின் நிலையம் திறங்குறைக்கப்படலாம்!~%"
 
-#: guix/scripts/system.scm:855
+#: guix/scripts/system.scm:844
 #, scheme-format
 msgid "activating system...~%"
 msgstr ""
 
-#: guix/scripts/system.scm:868
+#: guix/scripts/system.scm:855
+msgid ""
+"To complete the upgrade, run 'herd restart SERVICE' to stop,\n"
+"upgrade, and restart each service that was not automatically restarted.\n"
+msgstr ""
+
+#: guix/scripts/system.scm:858
+msgid "Run 'herd status' to view the list of services on your system.\n"
+msgstr ""
+
+#: guix/scripts/system.scm:862
 #, scheme-format
 msgid "initializing operating system under '~a'...~%"
 msgstr ""
 
-#: guix/scripts/system.scm:912
+#: guix/scripts/system.scm:907
+msgid "The available image types are:\n"
+msgstr ""
+
+#: guix/scripts/system.scm:917
 msgid ""
 "Usage: guix system [OPTION ...] ACTION [ARG ...] [FILE]\n"
 "Build the operating system declared in FILE according to ACTION.\n"
@@ -2899,88 +3406,91 @@ msgstr ""
 "<கோப்பில்> குறிப்பிட்ட இயங்குதளத்தைச் <செயலின்படி> அமை.\n"
 "சிலச் <செயல்கள்> கூடுதல் செயலுருபுகளை ஏற்கும்.\n"
 
-#: guix/scripts/system.scm:916 guix/scripts/container.scm:29
-msgid "The valid values for ACTION are:\n"
-msgstr "ஏற்கத்தகுச் <செயல்கள்>:\n"
-
-#: guix/scripts/system.scm:918
+#: guix/scripts/system.scm:923
 msgid "   search           search for existing service types\n"
 msgstr ""
 
-#: guix/scripts/system.scm:920
+#: guix/scripts/system.scm:925
 msgid "   reconfigure      switch to a new operating system configuration\n"
-msgstr ""
+msgstr "   reconfigure       இன்னொரு இயங்குதள அமைப்புக்கு மாறு\n"
 
-#: guix/scripts/system.scm:922
+#: guix/scripts/system.scm:927
 msgid "   roll-back        switch to the previous operating system configuration\n"
 msgstr ""
 
-#: guix/scripts/system.scm:924
+#: guix/scripts/system.scm:929
 msgid "   describe         describe the current system\n"
 msgstr ""
 
-#: guix/scripts/system.scm:926
+#: guix/scripts/system.scm:931
 msgid "   list-generations list the system generations\n"
 msgstr ""
 
-#: guix/scripts/system.scm:928
+#: guix/scripts/system.scm:933
 msgid "   switch-generation switch to an existing operating system configuration\n"
 msgstr ""
 
-#: guix/scripts/system.scm:930
+#: guix/scripts/system.scm:935
 msgid "   delete-generations delete old system generations\n"
 msgstr ""
 
-#: guix/scripts/system.scm:932
+#: guix/scripts/system.scm:937
 msgid "   build            build the operating system without installing anything\n"
 msgstr ""
 
-#: guix/scripts/system.scm:934
+#: guix/scripts/system.scm:939
 msgid "   container        build a container that shares the host's store\n"
 msgstr ""
 
-#: guix/scripts/system.scm:936
+#: guix/scripts/system.scm:941
 msgid "   vm               build a virtual machine image that shares the host's store\n"
 msgstr ""
 
-#: guix/scripts/system.scm:938
+#: guix/scripts/system.scm:943
 msgid "   vm-image         build a freestanding virtual machine image\n"
 msgstr ""
 
-#: guix/scripts/system.scm:940
+#: guix/scripts/system.scm:945
 msgid "   disk-image       build a disk image, suitable for a USB stick\n"
 msgstr ""
 
-#: guix/scripts/system.scm:942
+#: guix/scripts/system.scm:947
 msgid "   docker-image     build a Docker image\n"
 msgstr ""
 
-#: guix/scripts/system.scm:944
+#: guix/scripts/system.scm:949
 msgid "   init             initialize a root file system to run GNU\n"
 msgstr ""
 
-#: guix/scripts/system.scm:946
+#: guix/scripts/system.scm:951
 msgid "   extension-graph  emit the service extension graph in Dot format\n"
 msgstr ""
 
-#: guix/scripts/system.scm:948
+#: guix/scripts/system.scm:953
 msgid "   shepherd-graph   emit the graph of shepherd services in Dot format\n"
 msgstr ""
 
-#: guix/scripts/system.scm:952
+#: guix/scripts/system.scm:957
 msgid ""
 "\n"
 "  -d, --derivation       return the derivation of the given system"
 msgstr ""
 
-#: guix/scripts/system.scm:954
+#: guix/scripts/system.scm:959
 msgid ""
 "\n"
 "  -e, --expression=EXPR  consider the operating-system EXPR evaluates to\n"
 "                         instead of reading FILE, when applicable"
 msgstr ""
 
-#: guix/scripts/system.scm:957
+#: guix/scripts/system.scm:962
+msgid ""
+"\n"
+"      --allow-downgrades for 'reconfigure', allow downgrades to earlier\n"
+"                         channel revisions"
+msgstr ""
+
+#: guix/scripts/system.scm:965
 msgid ""
 "\n"
 "      --on-error=STRATEGY\n"
@@ -2988,51 +3498,63 @@ msgid ""
 "                         or debug) when an error occurs while reading FILE"
 msgstr ""
 
-#: guix/scripts/system.scm:961
+#: guix/scripts/system.scm:969
 msgid ""
 "\n"
-"      --file-system-type=TYPE\n"
-"                         for 'disk-image', produce a root file system of TYPE\n"
-"                         (one of 'ext4', 'iso9660')"
+"      --list-image-types list available image types"
 msgstr ""
 
-#: guix/scripts/system.scm:965
+#: guix/scripts/system.scm:971
+msgid ""
+"\n"
+"  -t, --image-type=TYPE  for 'disk-image', produce an image of TYPE"
+msgstr ""
+
+#: guix/scripts/system.scm:973
 msgid ""
 "\n"
 "      --image-size=SIZE  for 'vm-image', produce an image of SIZE"
 msgstr ""
 
-#: guix/scripts/system.scm:967
+#: guix/scripts/system.scm:975
 msgid ""
 "\n"
 "      --no-bootloader    for 'init', do not install a bootloader"
 msgstr ""
 
-#: guix/scripts/system.scm:969 guix/scripts/pack.scm:921
+#: guix/scripts/system.scm:977
+msgid ""
+"\n"
+"      --label=LABEL      for 'disk-image', label disk image with LABEL"
+msgstr ""
+
+#: guix/scripts/system.scm:979 guix/scripts/pack.scm:1086
 msgid ""
 "\n"
 "      --save-provenance  save provenance information"
 msgstr ""
 
-#: guix/scripts/system.scm:971
+#: guix/scripts/system.scm:981
 msgid ""
 "\n"
-"      --share=SPEC       for 'vm', share host file system according to SPEC"
+"      --share=SPEC       for 'vm' and 'container', share host file system with\n"
+"                         read/write access according to SPEC"
 msgstr ""
 
-#: guix/scripts/system.scm:973
+#: guix/scripts/system.scm:984
 msgid ""
 "\n"
-"      --expose=SPEC      for 'vm', expose host file system according to SPEC"
+"      --expose=SPEC      for 'vm' and 'container', expose host file system\n"
+"                         directory as read-only according to SPEC"
 msgstr ""
 
-#: guix/scripts/system.scm:975
+#: guix/scripts/system.scm:987
 msgid ""
 "\n"
 "  -N, --network          for 'container', allow containers to access the network"
 msgstr ""
 
-#: guix/scripts/system.scm:977
+#: guix/scripts/system.scm:989
 msgid ""
 "\n"
 "  -r, --root=FILE        for 'vm', 'vm-image', 'disk-image', 'container',\n"
@@ -3040,97 +3562,118 @@ msgid ""
 "                         register it as a garbage collector root"
 msgstr ""
 
-#: guix/scripts/system.scm:981
+#: guix/scripts/system.scm:993
 msgid ""
 "\n"
 "      --full-boot        for 'vm', make a full boot sequence"
 msgstr ""
 
-#: guix/scripts/system.scm:983
+#: guix/scripts/system.scm:995
 msgid ""
 "\n"
 "      --skip-checks      skip file system and initrd module safety checks"
 msgstr ""
 
-#: guix/scripts/system.scm:1100
+#: guix/scripts/system.scm:1132
 #, scheme-format
 msgid "'~a' does not return an operating system~%"
 msgstr ""
 
-#: guix/scripts/system.scm:1123
+#: guix/scripts/system.scm:1155
 #, scheme-format
 msgid "both file and expression cannot be specified~%"
 msgstr ""
 
-#: guix/scripts/system.scm:1130
+#: guix/scripts/system.scm:1162
 #, scheme-format
 msgid "no configuration specified~%"
-msgstr ""
+msgstr "அமைவடிவம் குறிப்பிடப்படவில்லை~%"
 
-#: guix/scripts/system.scm:1209
+#: guix/scripts/system.scm:1252
 #, scheme-format
 msgid "no system generation, nothing to describe~%"
 msgstr ""
 
-#: guix/scripts/system.scm:1253
+#: guix/scripts/system.scm:1284
+msgid "build and deploy full operating systems"
+msgstr ""
+
+#: guix/scripts/system.scm:1298
 #, scheme-format
 msgid "~a: unknown action~%"
-msgstr "~a: அறியப்படாச் செயல்~%"
+msgstr "~a: ஏற்கத்தகாச் செயல்~%"
 
-#: guix/scripts/system.scm:1269
+#: guix/scripts/system.scm:1314
 #, scheme-format
 msgid "wrong number of arguments for action '~a'~%"
 msgstr ""
 
-#: guix/scripts/system.scm:1274
+#: guix/scripts/system.scm:1319
 #, scheme-format
 msgid "guix system: missing command name~%"
 msgstr ""
 
-#: guix/scripts/system.scm:1276
+#: guix/scripts/system.scm:1321
 #, scheme-format
 msgid "Try 'guix system --help' for more information.~%"
-msgstr ""
+msgstr "மேலும் விவரங்களுக்கு 'guix system --help' கட்டளையை இயக்குக.~%"
 
-#: guix/scripts/system/search.scm:92 guix/ui.scm:1332 guix/ui.scm:1350
+#: guix/scripts/system/search.scm:93 guix/ui.scm:1540 guix/ui.scm:1558
 msgid "unknown"
-msgstr ""
+msgstr "தெரியவில்லை"
 
-#: guix/scripts/lint.scm:51
+#: guix/scripts/lint.scm:52
 #, scheme-format
 msgid "~a@~a: ~a~%"
 msgstr "~a@~a: ~a~%"
 
-#: guix/scripts/lint.scm:74
+#: guix/scripts/lint.scm:77
 #, scheme-format
 msgid "Available checkers:~%"
 msgstr ""
 
-#: guix/scripts/lint.scm:92
+#: guix/scripts/lint.scm:95
 msgid ""
 "Usage: guix lint [OPTION]... [PACKAGE]...\n"
 "Run a set of checkers on the specified package; if none is specified,\n"
 "run the checkers on all packages.\n"
 msgstr ""
 
-#: guix/scripts/lint.scm:95
+#: guix/scripts/lint.scm:98
 msgid ""
 "\n"
 "  -c, --checkers=CHECKER1,CHECKER2...\n"
 "                         only run the specified checkers"
 msgstr ""
 
-#: guix/scripts/lint.scm:103
+#: guix/scripts/lint.scm:101
+msgid ""
+"\n"
+"  -x, --exclude=CHECKER1,CHECKER2...\n"
+"                         exclude the specified checkers"
+msgstr ""
+
+#: guix/scripts/lint.scm:104
+msgid ""
+"\n"
+"  -n, --no-network       only run checkers that do not access the network"
+msgstr ""
+
+#: guix/scripts/lint.scm:112
 msgid ""
 "\n"
 "  -l, --list-checkers    display the list of available lint checkers"
 msgstr ""
 
-#: guix/scripts/lint.scm:122
+#: guix/scripts/lint.scm:131
 #, scheme-format
 msgid "~a: invalid checker~%"
 msgstr ""
 
+#: guix/scripts/lint.scm:173
+msgid "validate package definitions"
+msgstr "நிரல்தொகுப்பு வரையறையைச் சரி பார்"
+
 #: guix/scripts/publish.scm:72
 #, scheme-format
 msgid ""
@@ -3174,101 +3717,116 @@ msgstr ""
 #: guix/scripts/publish.scm:85
 msgid ""
 "\n"
+"      --cache-bypass-threshold=SIZE\n"
+"                         serve store items below SIZE even when not cached"
+msgstr ""
+
+#: guix/scripts/publish.scm:88
+msgid ""
+"\n"
 "      --workers=N        use N workers to bake items"
 msgstr ""
 
-#: guix/scripts/publish.scm:87
+#: guix/scripts/publish.scm:90
 msgid ""
 "\n"
 "      --ttl=TTL          announce narinfos can be cached for TTL seconds"
 msgstr ""
 
-#: guix/scripts/publish.scm:89
+#: guix/scripts/publish.scm:92
 msgid ""
 "\n"
 "      --nar-path=PATH    use PATH as the prefix for nar URLs"
 msgstr ""
 
-#: guix/scripts/publish.scm:91
+#: guix/scripts/publish.scm:94
 msgid ""
 "\n"
 "      --public-key=FILE  use FILE as the public key for signatures"
 msgstr ""
 
-#: guix/scripts/publish.scm:93
+#: guix/scripts/publish.scm:96
 msgid ""
 "\n"
 "      --private-key=FILE use FILE as the private key for signatures"
 msgstr ""
 
-#: guix/scripts/publish.scm:95
+#: guix/scripts/publish.scm:98
 msgid ""
 "\n"
 "  -r, --repl[=PORT]      spawn REPL server on PORT"
 msgstr ""
 
-#: guix/scripts/publish.scm:111
+#: guix/scripts/publish.scm:114
 #, scheme-format
 msgid "lookup of host '~a' failed: ~a~%"
 msgstr ""
 
-#: guix/scripts/publish.scm:159
+#: guix/scripts/publish.scm:168
 #, scheme-format
 msgid "lookup of host '~a' returned nothing"
 msgstr ""
 
-#: guix/scripts/publish.scm:182
+#: guix/scripts/publish.scm:191
 #, scheme-format
 msgid "~a: unsupported compression type~%"
 msgstr ""
 
-#: guix/scripts/publish.scm:196
+#: guix/scripts/publish.scm:209
 #, scheme-format
 msgid "~a: invalid duration~%"
 msgstr "~a: ஏற்கத்தகா காலயளவு~%"
 
-#: guix/scripts/publish.scm:1008
+#: guix/scripts/publish.scm:1073
 #, scheme-format
 msgid "user '~a' not found: ~a~%"
 msgstr "பயனர் '~a' இல்லை: ~a~%"
 
-#: guix/scripts/publish.scm:1059
+#: guix/scripts/publish.scm:1083
+msgid "publish build results over HTTP"
+msgstr ""
+
+#: guix/scripts/publish.scm:1125
 #, scheme-format
 msgid "server running as root; consider using the '--user' option!~%"
-msgstr ""
+msgstr "வழங்கி root பயனராக இயங்குகிறது; --user செயல்மாற்றியைப் பயன்படுத்தினால் நன்று!~%"
 
-#: guix/scripts/publish.scm:1064
+#: guix/scripts/publish.scm:1133
 #, scheme-format
 msgid "publishing ~a on ~a, port ~d~%"
-msgstr ""
+msgstr "~a ~a, வாயில் ~d யில் வெளியிடப்படுகிறது~%"
 
-#: guix/scripts/publish.scm:1070
+#: guix/scripts/publish.scm:1139
 #, scheme-format
 msgid "using '~a' compression method, level ~a~%"
-msgstr ""
+msgstr "இறுக்கமுறை ~a இறுக்கநிலை ~a பயன்படுத்தப்படுகிறது~%"
 
 #: guix/scripts/edit.scm:45
 msgid ""
 "Usage: guix edit PACKAGE...\n"
 "Start $VISUAL or $EDITOR to edit the definitions of PACKAGE...\n"
 msgstr ""
-"பயன்பாடு: guix edit <மென்பொருள் தொகுப்புகள்>...\n"
-"<மென்பொருள் தொகுப்புகளின்> வரையறையைத் திருத்த $VISUAL அல்லது $EDITOR யைத் துவக்கு...\n"
+"பயன்பாடு: guix edit <நிரல்தொகுப்புகள்>...\n"
+"<நிரல்தொகுப்புகளின்> வரையறையைத் தொகுக்க $VISUAL அல்லது $EDITOR யைத் துவக்கு...\n"
 
-#: guix/scripts/edit.scm:69
+#: guix/scripts/edit.scm:68
 #, scheme-format
 msgid "file '~a' not found in search path ~s~%"
 msgstr "'~a' கோப்பு தேடு பாதை ~s யில் கிடைக்கவில்லை~%"
 
-#: guix/scripts/edit.scm:104
+#: guix/scripts/edit.scm:83
+msgid "view and edit package definitions"
+msgstr "நிரல்தொகுப்பு வரையறையைப் பார், தொகு"
+
+#: guix/scripts/edit.scm:106
 #, scheme-format
 msgid "failed to launch '~a': ~a~%"
-msgstr ""
+msgstr "~a துவக்க இயலவில்லை: ~a~%"
 
 #: guix/scripts/size.scm:71
 #, scheme-format
 msgid "no available substitute information for '~a'~%"
-msgstr ""
+msgstr "~a கிடங்குருப்படிக்கு மாற்றீடு விவரமில்லை~%"
 
 #: guix/scripts/size.scm:93
 msgid "store item"
@@ -3292,21 +3850,23 @@ msgstr "மொத்தம்: ~,1f MiB~%"
 #. packages are stored.)
 #: guix/scripts/size.scm:224
 msgid "store profile"
-msgstr ""
+msgstr "கிடங்கு பயன்பாடு"
 
 #: guix/scripts/size.scm:233
 msgid ""
-"Usage: guix size [OPTION]... PACKAGE\n"
-"Report the size of PACKAGE and its dependencies.\n"
+"Usage: guix size [OPTION]... PACKAGE|STORE-ITEM\n"
+"Report the size of the PACKAGE or STORE-ITEM, with its dependencies.\n"
 msgstr ""
-"பயன்பாடு: guix size [<செயல்மாற்றி>]... <மென்பொருள் தொகுப்பு>\n"
-"<மென்பொருள் தொகுப்பின்> கோப்பளவையும் அதைச் சார்ந்திருக்கும் தொகுப்புகளின் கோப்பளவையும் அறிவி.\n"
+"பயன்பாடு: guix size [<செயல்மாற்றி>]... <நிரல்தொகுப்பு|கிடங்குருப்படி>\n"
+"<நிரல்தொகுப்பு> அல்லது <கிடங்குருப்படியின்> கோப்பளவையும் அதைச் சார்ந்திருக்கும் தொகுப்புகளின் கோப்பளவையும் அறிவி.\n"
 
 #: guix/scripts/size.scm:238
 msgid ""
 "\n"
 "  -s, --system=SYSTEM    consider packages for SYSTEM--e.g., \"i686-linux\""
 msgstr ""
+"\n"
+"  -s, --system=<கணியக்கட்டமைப்பு>    <கணியக்கட்டமைப்புக்கான> (i686-linux போன்று) நிரல்தொகுப்புகளைக் காட்டு"
 
 #. TRANSLATORS: "closure" and "self" must not be translated.
 #: guix/scripts/size.scm:241
@@ -3326,14 +3886,18 @@ msgstr ""
 msgid "~a: invalid sorting key~%"
 msgstr ""
 
-#: guix/scripts/size.scm:315
-msgid "missing store item argument\n"
+#: guix/scripts/size.scm:303
+msgid "profile the on-disk size of packages"
 msgstr ""
 
+#: guix/scripts/size.scm:318
+msgid "missing store item argument\n"
+msgstr "கிடங்குருப்படி குறிப்பிடப்படவில்லை\n"
+
 #: guix/scripts/graph.scm:94
 #, scheme-format
 msgid "~a: invalid argument (package name expected)"
-msgstr ""
+msgstr "~a: ஏற்கத்தகாச் செயலுருபு (நிரல்தொகுப்புப் பெயர் எதிர்பாரக்கப்பட்டது)"
 
 #: guix/scripts/graph.scm:105
 msgid "the DAG of packages, excluding implicit inputs"
@@ -3367,88 +3931,112 @@ msgstr ""
 msgid "unsupported argument for derivation graph"
 msgstr ""
 
-#: guix/scripts/graph.scm:325
+#: guix/scripts/graph.scm:333
 msgid "unsupported argument for this type of graph"
 msgstr ""
 
-#: guix/scripts/graph.scm:338
+#: guix/scripts/graph.scm:347
 #, scheme-format
 msgid "references for '~a' are not known~%"
 msgstr ""
 
-#: guix/scripts/graph.scm:345
+#: guix/scripts/graph.scm:354
 msgid "the DAG of run-time dependencies (store references)"
 msgstr ""
 
-#: guix/scripts/graph.scm:361
+#: guix/scripts/graph.scm:370
 msgid "the DAG of referrers in the store"
 msgstr ""
 
-#: guix/scripts/graph.scm:391
+#: guix/scripts/graph.scm:400
 msgid "the graph of package modules"
 msgstr ""
 
-#: guix/scripts/graph.scm:420
+#: guix/scripts/graph.scm:429
 #, scheme-format
 msgid "~a: unknown node type~%"
 msgstr ""
 
-#: guix/scripts/graph.scm:427
+#: guix/scripts/graph.scm:436
 #, scheme-format
 msgid "~a: unknown backend~%"
-msgstr "~a: அறியப்படா பின்நிலை~%"
+msgstr "~a: இல்லாப் பின்னிலை~%"
 
-#: guix/scripts/graph.scm:431
+#: guix/scripts/graph.scm:440
 msgid "The available node types are:\n"
 msgstr ""
 
-#: guix/scripts/graph.scm:441
+#: guix/scripts/graph.scm:450
 msgid "The available backend types are:\n"
 msgstr ""
 
+#: guix/scripts/graph.scm:477
+#, scheme-format
+msgid "no path from '~a' to '~a'~%"
+msgstr "~a கணுவிலிருந்து ~a கணுவிற்கு பாதையில்லை~%"
+
 #. TRANSLATORS: Here 'dot' is the name of a program; it must not be
 #. translated.
-#: guix/scripts/graph.scm:494
+#: guix/scripts/graph.scm:529
 msgid ""
 "Usage: guix graph PACKAGE...\n"
 "Emit a representation of the dependency graph of PACKAGE...\n"
 msgstr ""
 
-#: guix/scripts/graph.scm:496
+#: guix/scripts/graph.scm:531
 msgid ""
 "\n"
 "  -b, --backend=TYPE     produce a graph with the given backend TYPE"
 msgstr ""
 
-#: guix/scripts/graph.scm:498
+#: guix/scripts/graph.scm:533
 msgid ""
 "\n"
 "      --list-backends    list the available graph backends"
 msgstr ""
 
-#: guix/scripts/graph.scm:500
+#: guix/scripts/graph.scm:535
 msgid ""
 "\n"
 "  -t, --type=TYPE        represent nodes of the given TYPE"
 msgstr ""
 
-#: guix/scripts/graph.scm:502
+#: guix/scripts/graph.scm:537
 msgid ""
 "\n"
 "      --list-types       list the available graph types"
 msgstr ""
 
-#: guix/scripts/graph.scm:504 guix/scripts/pack.scm:906
+#: guix/scripts/graph.scm:539
+msgid ""
+"\n"
+"      --path             display the shortest path between the given nodes"
+msgstr ""
+"\n"
+"      --path            குறிப்பிட்டுள்ள கணுக்களிடையே மீச்சிறு பாதையைக் காட்டு"
+
+#: guix/scripts/graph.scm:541 guix/scripts/pack.scm:1071
 msgid ""
 "\n"
 "  -e, --expression=EXPR  consider the package EXPR evaluates to"
 msgstr ""
 
-#: guix/scripts/graph.scm:506
+#: guix/scripts/graph.scm:543
 msgid ""
 "\n"
 "  -s, --system=SYSTEM    consider the graph for SYSTEM--e.g., \"i686-linux\""
 msgstr ""
+"\n"
+"  -s, --system=<கணியக்கட்டமைப்பு>    <கணியக்கட்டமைப்புக்கான> (i686-linux போன்று) நிரல்தொகுப்புகளைக் காட்டு"
+
+#: guix/scripts/graph.scm:568
+msgid "view and query package dependency graphs"
+msgstr ""
+
+#: guix/scripts/graph.scm:604
+#, scheme-format
+msgid "'--path' option requires exactly two nodes (given ~a)~%"
+msgstr "--path செயல்மாற்றிக்குச் சரியாக இருக் கணுக்கள் தேவை (~a கொடுக்கப்பட்டுள்ளது)~%"
 
 #: guix/scripts/challenge.scm:301
 #, scheme-format
@@ -3475,7 +4063,7 @@ msgstr ""
 #: guix/scripts/challenge.scm:381
 #, scheme-format
 msgid "~a contents differ:~%"
-msgstr ""
+msgstr "~a வேறுபடுகின்றது:~%"
 
 #: guix/scripts/challenge.scm:385
 #, scheme-format
@@ -3485,7 +4073,7 @@ msgstr ""
 #: guix/scripts/challenge.scm:387
 #, scheme-format
 msgid "could not challenge '~a': no substitutes~%"
-msgstr ""
+msgstr "~a கிடங்குருப்படியைத் தேர இயலவில்லை: மாற்றீடில்லை~%"
 
 #: guix/scripts/challenge.scm:390
 #, scheme-format
@@ -3494,27 +4082,27 @@ msgstr ""
 
 #: guix/scripts/challenge.scm:399
 msgid "~h store items were analyzed:~%"
-msgstr ""
+msgstr "~h கிடங்குருப்படிகள் ஆயப்பட்டன:~%"
 
 #: guix/scripts/challenge.scm:400
 msgid "  - ~h (~,1f%) were identical~%"
-msgstr ""
+msgstr "  - ~h (~,1f%) ஒன்றுப்பட்டன~%"
 
 #: guix/scripts/challenge.scm:402
 msgid "  - ~h (~,1f%) differed~%"
-msgstr ""
+msgstr "  - ~h (~,1f%) வேறுபட்டன~%"
 
 #: guix/scripts/challenge.scm:404
 msgid "  - ~h (~,1f%) were inconclusive~%"
-msgstr ""
+msgstr "  - ~h (~,1f%) பற்றித் தெளிவுற இயலவில்லை~%"
 
 #: guix/scripts/challenge.scm:413
 msgid ""
 "Usage: guix challenge [PACKAGE...]\n"
 "Challenge the substitutes for PACKAGE... provided by one or more servers.\n"
 msgstr ""
-"பயன்பாடு: guix challenge [<மென்பொருள் தொகுப்பு>...]\n"
-"ஒரு வழங்கியோ பல வழங்கிகளோ வழங்கிய <மென்பொருள் தொகுப்புகளின்> பதிலீடுகளைத் தேர்.\n"
+"பயன்பாடு: guix challenge [<நிரல்தொகுப்பு>...]\n"
+"ஒரு வழங்கியோ பல வழங்கிகளோ வழங்கிய <நிரல்தொகுப்புகளின்> மாற்றீடுகளைத் தேர்.\n"
 
 #: guix/scripts/challenge.scm:415
 msgid ""
@@ -3526,13 +4114,13 @@ msgstr ""
 #: guix/scripts/challenge.scm:418
 msgid ""
 "\n"
-"      -v, --verbose      show details about successful comparisons"
+"  -v, --verbose          show details about successful comparisons"
 msgstr ""
 
 #: guix/scripts/challenge.scm:420
 msgid ""
 "\n"
-"          --diff=MODE    show differences according to MODE"
+"      --diff=MODE        show differences according to MODE"
 msgstr ""
 
 #: guix/scripts/challenge.scm:449
@@ -3540,397 +4128,484 @@ msgstr ""
 msgid "~a: unknown diff mode~%"
 msgstr ""
 
-#: guix/scripts/copy.scm:60
+#: guix/scripts/challenge.scm:480
+msgid "challenge substitute servers, comparing their binaries"
+msgstr ""
+
+#: guix/scripts/copy.scm:61
 #, scheme-format
 msgid "~a: invalid TCP port number~%"
-msgstr ""
+msgstr "~a: ஏற்கத்தகா TCP வாயில்~%"
 
-#: guix/scripts/copy.scm:62
+#: guix/scripts/copy.scm:63
 #, scheme-format
 msgid "~a: invalid SSH specification~%"
 msgstr ""
 
-#: guix/scripts/copy.scm:114
+#: guix/scripts/copy.scm:109
 msgid ""
 "Usage: guix copy [OPTION]... ITEMS...\n"
 "Copy ITEMS to or from the specified host over SSH.\n"
 msgstr ""
+"பயன்பாடு: guix copy [<செயல்மாற்றி>]... <கிடங்குருப்படி>...\n"
+"<கிடங்குருப்படிகளை> SSH மூலம் குறிப்பிட்ட நிலையத்திற்கு நகலனுப்பு அல்லது அந்நிலையத்திலிருந்து நகலெடு.\n"
 
-#: guix/scripts/copy.scm:116
+#: guix/scripts/copy.scm:111
 msgid ""
 "\n"
 "      --to=HOST          send ITEMS to HOST"
 msgstr ""
+"\n"
+"      --to=<நிலையம்>      <கிடங்குருப்படிகளை> <நிலையத்திற்கு> அனுப்பு"
 
-#: guix/scripts/copy.scm:118
+#: guix/scripts/copy.scm:113
 msgid ""
 "\n"
 "      --from=HOST        receive ITEMS from HOST"
 msgstr ""
+"\n"
+"      --from=<நிலையம்>    <கிடங்குருப்படிகளை> <நிலையத்திலிருந்து> எடு"
+
+#: guix/scripts/copy.scm:175
+msgid "copy store items remotely over SSH"
+msgstr ""
 
-#: guix/scripts/copy.scm:182
+#: guix/scripts/copy.scm:192
 #, scheme-format
 msgid "use '--to' or '--from'~%"
-msgstr ""
+msgstr "--to அல்லது --from செயல்மாற்றியைக் குறிப்பிடுக~%"
 
-#: guix/scripts/pack.scm:98
+#: guix/scripts/pack.scm:106
 #, scheme-format
 msgid "~a: compressor not found~%"
-msgstr ""
+msgstr "~a: இறுக்கியில்லை~%"
 
-#: guix/scripts/pack.scm:283
+#: guix/scripts/pack.scm:313
 #, scheme-format
 msgid "entry point not supported in the '~a' format~%"
 msgstr ""
 
-#: guix/scripts/pack.scm:644
+#: guix/scripts/pack.scm:694
 #, scheme-format
 msgid ""
 "cross-compilation not implemented here;\n"
 "please email '~a'~%"
 msgstr ""
 
-#: guix/scripts/pack.scm:787
+#: guix/scripts/pack.scm:954
 msgid "The supported formats for 'guix pack' are:"
 msgstr ""
 
-#: guix/scripts/pack.scm:789
+#: guix/scripts/pack.scm:956
 msgid ""
 "\n"
 "  tarball       Self-contained tarball, ready to run on another machine"
 msgstr ""
 
-#: guix/scripts/pack.scm:791
+#: guix/scripts/pack.scm:958
 msgid ""
 "\n"
 "  squashfs      Squashfs image suitable for Singularity"
 msgstr ""
 
-#: guix/scripts/pack.scm:793
+#: guix/scripts/pack.scm:960
 msgid ""
 "\n"
 "  docker        Tarball ready for 'docker load'"
 msgstr ""
 
-#: guix/scripts/pack.scm:862
+#: guix/scripts/pack.scm:1029
 #, scheme-format
 msgid "~a: invalid symlink specification~%"
 msgstr ""
 
-#: guix/scripts/pack.scm:876
+#: guix/scripts/pack.scm:1043
 #, scheme-format
 msgid "~a: unsupported profile name~%"
 msgstr ""
 
-#: guix/scripts/pack.scm:894
+#: guix/scripts/pack.scm:1061
 msgid ""
 "Usage: guix pack [OPTION]... PACKAGE...\n"
 "Create a bundle of PACKAGE.\n"
 msgstr ""
+"பயன்பாடு: guix pack [<செயல்மாற்றி>]... <நிரல்தொகுப்பு>...\n"
+"<நிரல்தொகுப்பிற்கு> பொதி உருவாக்கு.\n"
 
-#: guix/scripts/pack.scm:900
+#: guix/scripts/pack.scm:1065
 msgid ""
 "\n"
 "  -f, --format=FORMAT    build a pack in the given FORMAT"
 msgstr ""
+"\n"
+"  -f, --format=<வடிவம்>   <வடிவத்தில்> பொதி அமை"
 
-#: guix/scripts/pack.scm:902
+#: guix/scripts/pack.scm:1067
 msgid ""
 "\n"
 "      --list-formats     list the formats available"
 msgstr ""
+"\n"
+"      --list-formats    ஏற்கத்தகு வடிவங்கள்"
 
-#: guix/scripts/pack.scm:904
+#: guix/scripts/pack.scm:1069
 msgid ""
 "\n"
 "  -R, --relocatable      produce relocatable executables"
 msgstr ""
 
-#: guix/scripts/pack.scm:912
+#: guix/scripts/pack.scm:1077
 msgid ""
 "\n"
 "  -C, --compression=TOOL compress using TOOL--e.g., \"lzip\""
 msgstr ""
+"\n"
+"  -C, --compression=<நிரல்>  <நிரல்> (lzip போன்று) கொண்டு இறுக்கு"
 
-#: guix/scripts/pack.scm:914
+#: guix/scripts/pack.scm:1079
 msgid ""
 "\n"
 "  -S, --symlink=SPEC     create symlinks to the profile according to SPEC"
 msgstr ""
+"\n"
+"  -S, --symlink=<குறிப்பீடு>   <குறிப்பீட்டில்> குறிப்பிட்டதுபோல் தனியமைப்புக்கு மென்னிணைப்புகள் அமை"
 
-#: guix/scripts/pack.scm:916
+#: guix/scripts/pack.scm:1081
 msgid ""
 "\n"
 "  -m, --manifest=FILE    create a pack with the manifest from FILE"
 msgstr ""
 
-#: guix/scripts/pack.scm:918
+#: guix/scripts/pack.scm:1083
 msgid ""
 "\n"
 "      --entry-point=PROGRAM\n"
 "                         use PROGRAM as the entry point of the pack"
 msgstr ""
+"\n"
+"      --entry-point=<நிரல்>\n"
+"                         <நிரலைப்> பொதியின் நுழைவு நிரலாக அமை"
 
-#: guix/scripts/pack.scm:923
+#: guix/scripts/pack.scm:1088
 msgid ""
 "\n"
 "      --localstatedir    include /var/guix in the resulting pack"
 msgstr ""
+"\n"
+"      --localstatedir    பொதியில் /var/guix அடைவைச் சேர்"
 
-#: guix/scripts/pack.scm:925
+#: guix/scripts/pack.scm:1090
 msgid ""
 "\n"
 "      --profile-name=NAME\n"
 "                         populate /var/guix/profiles/.../NAME"
 msgstr ""
 
-#: guix/scripts/pack.scm:931
+#: guix/scripts/pack.scm:1096
 msgid ""
 "\n"
 "  -d, --derivation       return the derivation of the pack"
 msgstr ""
+"\n"
+"  -d, --derivation       பொதியின் வருவியைக் காட்டு"
 
-#: guix/scripts/pack.scm:935
+#: guix/scripts/pack.scm:1100
 msgid ""
 "\n"
 "      --bootstrap        use the bootstrap binaries to build the pack"
 msgstr ""
 
-#: guix/scripts/pack.scm:986
+#: guix/scripts/pack.scm:1117
+msgid "create application bundles"
+msgstr ""
+
+#: guix/scripts/pack.scm:1154
 #, scheme-format
 msgid "could not determine provenance of package ~a~%"
 msgstr ""
 
-#: guix/scripts/pack.scm:995
+#: guix/scripts/pack.scm:1168
 #, scheme-format
 msgid "both a manifest and a package list were given~%"
 msgstr ""
 
-#: guix/scripts/pack.scm:1049
+#: guix/scripts/pack.scm:1227
 #, scheme-format
 msgid "~a: unknown pack format~%"
-msgstr ""
+msgstr "~a: ஏற்கத்தகாப் பொதி வடிவம்~%"
 
-#: guix/scripts/pack.scm:1059
+#: guix/scripts/pack.scm:1251
 #, scheme-format
 msgid "no packages specified; building an empty pack~%"
-msgstr ""
+msgstr "நிரல்தொகுப்புகள் குறிப்பிடப்படவில்லை; வெற்றுப் பொதி அமைக்கப்படுகிறது~%"
 
-#: guix/scripts/pack.scm:1063
+#: guix/scripts/pack.scm:1255
 #, scheme-format
 msgid "Singularity requires you to provide a shell~%"
 msgstr ""
 
-#: guix/scripts/pack.scm:1064
+#: guix/scripts/pack.scm:1256
 msgid "Add @code{bash} or @code{bash-minimal} to your package list."
-msgstr ""
+msgstr "@code{bash} நிரல்தொகுப்பையோ @code{bash-minimal} நிரல்தொகுப்பையோ உம் பொதியில் சேர்க்க."
 
-#: guix/scripts/weather.scm:80
+#: guix/scripts/weather.scm:90
 msgid "computing ~h package derivations for ~a...~%"
-msgstr ""
+msgstr "~h நிரல்தொகுப்பு வருவிகளை ~a கணியக்கட்டமைப்புக்குக் கணி...~%"
 
-#: guix/scripts/weather.scm:169
+#: guix/scripts/weather.scm:178
 msgid "looking for ~h store items on ~a...~%"
-msgstr ""
+msgstr "~h கிடங்குருப்படிகளுக்கு ~a வழங்கியில் தேடு...~%"
 
-#: guix/scripts/weather.scm:184
-msgid "  ~2,1f% substitutes available (~h out of ~h)~%"
-msgstr ""
+#: guix/scripts/weather.scm:193
+msgid "  ~,1f% substitutes available (~h out of ~h)~%"
+msgstr "  ~,1f% மாற்றீடுகளுள்ளன (~h/~h)~%"
 
-#: guix/scripts/weather.scm:190
+#: guix/scripts/weather.scm:199
 #, scheme-format
 msgid "  unknown substitute sizes~%"
-msgstr ""
+msgstr "  மாற்றீடுகளின் கோப்பளவு தெரியவில்லை~%"
 
-#: guix/scripts/weather.scm:193
+#: guix/scripts/weather.scm:202
 msgid "  ~,1h MiB of nars (compressed)~%"
 msgstr ""
 
-#: guix/scripts/weather.scm:194
+#: guix/scripts/weather.scm:203
 msgid "  at least ~,1h MiB of nars (compressed)~%"
 msgstr ""
 
-#: guix/scripts/weather.scm:196
+#: guix/scripts/weather.scm:205
 msgid "  ~,1h MiB on disk (uncompressed)~%"
-msgstr ""
+msgstr "  வட்டில் ~,1h MiB (இறுக்காமல்)~%"
 
-#: guix/scripts/weather.scm:198
+#: guix/scripts/weather.scm:207
 msgid "  ~,3h seconds per request (~,1h seconds in total)~%"
-msgstr ""
+msgstr "  விண்ணப்பத்திற்கு ~,3h நொடிகள் (மொத்தம் ~,1h நொடிகள்)~%"
 
-#: guix/scripts/weather.scm:200
+#: guix/scripts/weather.scm:209
 msgid "  ~,1h requests per second~%"
-msgstr ""
+msgstr "  விண்ணப்பத்திற்கு ~,1h நொடிகள்~%"
 
-#: guix/scripts/weather.scm:206
+#: guix/scripts/weather.scm:215
 #, scheme-format
 msgid "  (continuous integration information unavailable)~%"
 msgstr ""
 
-#: guix/scripts/weather.scm:209
+#: guix/scripts/weather.scm:218
 #, scheme-format
 msgid "  '~a' returned ~a (~s)~%"
-msgstr ""
+msgstr "  ~a ~a (~s) பிழைக் குறியைக் கொடுத்தது~%"
 
-#: guix/scripts/weather.scm:226
+#: guix/scripts/weather.scm:235
 msgid "  ~,1f% (~h out of ~h) of the missing items are queued~%"
-msgstr ""
+msgstr "  இல்லாக் கிடங்குருப்படிகளுள் ~,1f% (~h/~h) பெயர்ப்பு வரிசையிலுள்ளன~%"
 
-#: guix/scripts/weather.scm:232
+#: guix/scripts/weather.scm:241
 msgid "  at least ~h queued builds~%"
-msgstr ""
+msgstr "  பெயர்ப்பு வரிசையில் ~h பெயர்ப்புகளாவதுள்ளன~%"
 
-#: guix/scripts/weather.scm:233
+#: guix/scripts/weather.scm:242
 msgid "  ~h queued builds~%"
-msgstr ""
+msgstr "  பெயர்ப்பு வரிசையில் ~h பெயர்ப்புகளுள்ளன~%"
 
-#: guix/scripts/weather.scm:236
+#: guix/scripts/weather.scm:245
 #, scheme-format
 msgid "      ~a: ~a (~0,1f%)~%"
-msgstr ""
+msgstr "     ~a: ~a (~0,1f%)~%"
 
-#: guix/scripts/weather.scm:242
+#: guix/scripts/weather.scm:251
 #, scheme-format
 msgid "  build rate: ~1,2f builds per hour~%"
-msgstr ""
+msgstr "  பெயர்ப்பு வீதம்: மணிக்கு ~1,2f பெயர்ப்புகள்~%"
 
-#: guix/scripts/weather.scm:246
+#: guix/scripts/weather.scm:255
 #, scheme-format
 msgid "      ~a: ~,2f builds per hour~%"
-msgstr ""
+msgstr "      ~a: மணிக்கு ~,2f பெயர்ப்புகள் ~%"
 
-#: guix/scripts/weather.scm:258
+#: guix/scripts/weather.scm:263
+#, scheme-format
+msgid "Substitutes are missing for the following items:~%"
+msgstr "பின்வரும் கிடங்குருப்படிகளுக்கு மாற்றீடில்லை:~%"
+
+#: guix/scripts/weather.scm:276
 msgid ""
 "Usage: guix weather [OPTIONS] [PACKAGES ...]\n"
 "Report the availability of substitutes.\n"
 msgstr ""
+"பயன்பாடு: guix weather [<செயல்மாற்றிகள்>] [<நிரல்தொகுப்புகள்> ...]\n"
+"மாற்றீடுகள் உள்ளனவாவெனக் கூறு.\n"
 
-#: guix/scripts/weather.scm:260
+#: guix/scripts/weather.scm:278
 msgid ""
 "\n"
 "      --substitute-urls=URLS\n"
 "                         check for available substitutes at URLS"
 msgstr ""
+"\n"
+"      --substitute-urls=<முகவரிகள்>\n"
+"                         <முகவரிகளில்> மாற்றீடுகளுக்குத் தேடு"
 
-#: guix/scripts/weather.scm:263
+#: guix/scripts/weather.scm:281
 msgid ""
 "\n"
 "  -m, --manifest=MANIFEST\n"
 "                         look up substitutes for packages specified in MANIFEST"
 msgstr ""
 
-#: guix/scripts/weather.scm:266
+#: guix/scripts/weather.scm:284
 msgid ""
 "\n"
 "  -c, --coverage[=COUNT]\n"
 "                         show substitute coverage for packages with at least\n"
 "                         COUNT dependents"
 msgstr ""
+"\n"
+"  -c, --coverage[=<எண்>]\n"
+"                        <எண்> சார்தொகுப்புகளையாவதுடைய நிரல்தொகுப்புகளுக்கு\n"
+"                        மட்டும் மாற்றீடுகள் உள்ளனவாவெனக் கூறு"
+
+#: guix/scripts/weather.scm:288
+msgid ""
+"\n"
+"      --display-missing  display the list of missing substitutes"
+msgstr ""
+"\n"
+"      --display-missing  இல்லா மாற்றீடுகளைப் பட்டியலிடு"
 
-#: guix/scripts/weather.scm:270
+#: guix/scripts/weather.scm:290
 msgid ""
 "\n"
 "  -s, --system=SYSTEM    consider substitutes for SYSTEM--e.g., \"i686-linux\""
 msgstr ""
+"\n"
+"  -s, --system=<கணியக்கட்டமைப்பு>   <கணியக்கட்டமைப்புக்கான> (i686-linux போன்று) மாற்றீடுகளுக்குத் தேடு"
 
-#: guix/scripts/weather.scm:294
+#: guix/scripts/weather.scm:314
 #, scheme-format
 msgid "~a: invalid URL~%"
-msgstr ""
+msgstr "~a: ஏற்கத்தகா முகவரி~%"
 
-#: guix/scripts/weather.scm:423
+#: guix/scripts/weather.scm:447
 #, scheme-format
 msgid "The following ~a package is missing from '~a' for '~a':~%"
 msgid_plural "The following ~a packages are missing from '~a' for '~a':~%"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "~1@*~a வழங்கியில் ~2@*~a கணியக்கட்டமைப்புக்குப் பின்வரும் ~0@*~a நிரல்தொகுப்பில்லை:~%"
+msgstr[1] "~1@*~a வழங்கியில் ~2@*~a கணியக்கட்டமைப்புக்குப் பின்வரும் ~0@*~a நிரல்தொகுப்புகளில்லை:~%"
 
-#: guix/scripts/weather.scm:429
+#: guix/scripts/weather.scm:453
 #, scheme-format
 msgid "~a package is missing from '~a' for '~a':~%"
 msgid_plural "~a packages are missing from '~a' for '~a', among which:~%"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "~1@*~a வழங்கியில் ~2@*~a கணியக்கட்டமைப்புக்கு ~0@*~a நிரல்தொகுப்பில்லை:~%"
+msgstr[1] "~1@*~a வழங்கியில் ~2@*~a கணியக்கட்டமைப்புக்கு ~0@*~a நிரல்தொகுப்புகளில்லை, அவற்றுள்:~%"
+
+#: guix/scripts/weather.scm:499
+msgid "report on the availability of pre-built package binaries"
+msgstr ""
+
+#: guix/scripts/describe.scm:52
+msgid "The available formats are:\n"
+msgstr "வெளியீட்டு வடிவங்கள்:\n"
 
-#: guix/scripts/describe.scm:50
+#: guix/scripts/describe.scm:63
 #, scheme-format
 msgid "~a: unsupported output format~%"
-msgstr ""
+msgstr "~a: ஏற்கத்தகா வெளியீட்டு வடிவம்~%"
 
-#: guix/scripts/describe.scm:69
+#: guix/scripts/describe.scm:86
 msgid ""
 "Usage: guix describe [OPTION]...\n"
 "Display information about the channels currently in use.\n"
 msgstr ""
+"பயன்பாடு: guix describe [<செயல்மாற்றிகள்>]...\n"
+"தற்போது பயன்பாட்டிலுள்ள அலைத்தடங்கள் பற்றிய விவர்த்தைக் காட்டு.\n"
 
-#: guix/scripts/describe.scm:71
+#: guix/scripts/describe.scm:88
 msgid ""
 "\n"
 "  -f, --format=FORMAT    display information in the given FORMAT"
 msgstr ""
+"\n"
+"  -f, --format=<வடிவம்>   <வடிவத்தில்> விவரத்தைக் காட்டு"
 
-#: guix/scripts/describe.scm:73
+#: guix/scripts/describe.scm:90
 msgid ""
 "\n"
-"  -p, --profile=PROFILE  display information about PROFILE"
+"      --list-formats     display available formats"
 msgstr ""
+"\n"
+"     --list-formats     ஏற்கத்தகு வடிவங்களைக் காட்டு"
 
 #: guix/scripts/describe.scm:92
+msgid ""
+"\n"
+"  -p, --profile=PROFILE  display information about PROFILE"
+msgstr ""
+"\n"
+"  -p, --profile=<தனியமைப்பு>  <தனியமைப்புப்> பற்றின விவரத்தைக் காட்டு"
+
+#: guix/scripts/describe.scm:111
 #, scheme-format
 msgid "~%;; warning: GUIX_PACKAGE_PATH=\"~a\"~%"
-msgstr ""
+msgstr "~%;; எச்சரிக்கை: GUIX_PACKAGE_PATH=\"~a\"~%"
 
-#: guix/scripts/describe.scm:95
+#: guix/scripts/describe.scm:114
 #, scheme-format
 msgid "'GUIX_PACKAGE_PATH' is set but it is not captured~%"
 msgstr ""
 
-#: guix/scripts/describe.scm:122
+#: guix/scripts/describe.scm:170
 #, scheme-format
 msgid "failed to determine origin~%"
-msgstr ""
+msgstr "தோற்றுவாயைக் கண்டறிய இயலவில்லை~%"
 
-#: guix/scripts/describe.scm:123
+#: guix/scripts/describe.scm:171
 #, scheme-format
 msgid ""
 "Perhaps this\n"
 "@command{guix} command was not obtained with @command{guix pull}?  Its version\n"
 "string is ~a.~%"
 msgstr ""
+"இந்த @command{guix} கட்டளை @command{guix pull} மூலம் பெற்றதுதானா?  இதன்\n"
+"பதிப்பு விவரம் ~a.~%"
 
-#: guix/scripts/describe.scm:133
+#: guix/scripts/describe.scm:181
 #, scheme-format
 msgid "Git checkout:~%"
 msgstr ""
 
-#: guix/scripts/describe.scm:134
+#: guix/scripts/describe.scm:182
 #, scheme-format
 msgid "  repository: ~a~%"
-msgstr ""
+msgstr "  களஞ்சியம்: ~a~%"
 
-#: guix/scripts/describe.scm:135
+#: guix/scripts/describe.scm:183
 #, scheme-format
 msgid "  branch: ~a~%"
-msgstr ""
+msgstr "  கிளை: ~a~%"
 
-#: guix/scripts/describe.scm:136
+#: guix/scripts/describe.scm:184
 #, scheme-format
 msgid "  commit: ~a~%"
-msgstr ""
+msgstr "  பதிவு: ~a~%"
 
-#: guix/scripts/describe.scm:198
+#: guix/scripts/describe.scm:250
 #, scheme-format
 msgid "    repository URL: ~a~%"
-msgstr ""
+msgstr "    களஞ்சிய முகவரி: ~a~%"
 
-#: guix/scripts/describe.scm:200
+#: guix/scripts/describe.scm:252
 #, scheme-format
 msgid "    branch: ~a~%"
-msgstr ""
+msgstr "    கிளை: ~a~%"
 
-#: guix/scripts/describe.scm:201
+#: guix/scripts/describe.scm:253
 #, scheme-format
 msgid "    commit: ~a~%"
+msgstr "    பதிவு: ~a~%"
+
+#: guix/scripts/describe.scm:308
+msgid "describe the channel revisions currently used"
 msgstr ""
 
 #: guix/scripts/processes.scm:211
@@ -3938,63 +4613,105 @@ msgid ""
 "Usage: guix processes\n"
 "List the current Guix sessions and their processes."
 msgstr ""
+"பயன்பாடு: guix processes\n"
+"Guix அமர்வுகளையும் செயலாக்கங்களையும் பட்டியலிடு."
 
-#: guix/scripts/deploy.scm:47
+#: guix/scripts/processes.scm:228
+msgid "list currently running sessions"
+msgstr ""
+
+#: guix/scripts/deploy.scm:49
 msgid ""
 "Usage: guix deploy [OPTION] FILE...\n"
 "Perform the deployment specified by FILE.\n"
 msgstr ""
 
-#: guix/scripts/deploy.scm:112
+#: guix/scripts/deploy.scm:106
+#, scheme-format
+msgid "The following ~d machine will be deployed:~%"
+msgid_plural "The following ~d machines will be deployed:~%"
+msgstr[0] ""
+msgstr[1] ""
+
+#: guix/scripts/deploy.scm:120
 #, scheme-format
 msgid "deploying to ~a...~%"
 msgstr ""
 
-#: guix/scripts/deploy.scm:116
+#: guix/scripts/deploy.scm:124
 #, scheme-format
 msgid "failed to deploy ~a: ~a~%"
 msgstr ""
 
-#: guix/scripts/deploy.scm:121
+#: guix/scripts/deploy.scm:129
 #, scheme-format
 msgid "rolling back ~a...~%"
+msgstr "~a பின் செலுத்தப்படுகிறது...~%"
+
+#: guix/scripts/deploy.scm:135
+#, scheme-format
+msgid "successfully deployed ~a~%"
 msgstr ""
 
-#: guix/gnu-maintenance.scm:647
-msgid "Updater for GNU packages"
+#: guix/scripts/deploy.scm:140
+msgid "deploy operating systems on a set of machines"
 msgstr ""
 
-#: guix/gnu-maintenance.scm:656
-msgid "Updater for GNU packages only available via FTP"
+#: guix/gexp.scm:425
+#, scheme-format
+msgid "resolving '~a' relative to current directory~%"
 msgstr ""
 
-#: guix/gnu-maintenance.scm:665
+#: guix/gexp.scm:808
+#, scheme-format
+msgid "importing module~{ ~a~} from the host~%"
+msgid_plural "importing modules~{ ~a~} from the host~%"
+msgstr[0] ""
+msgstr[1] ""
+
+#: guix/gnu-maintenance.scm:699
+msgid "Updater for GNU packages"
+msgstr "GNU நிரல்தொகுப்புத் திறமுயர்த்தி"
+
+#: guix/gnu-maintenance.scm:708
+msgid "Updater for GNU packages only available via FTP"
+msgstr "FTP தொடர்புமுறை மூலம் மட்டும் கிடைக்கும் GNU நிரல்தொகுப்புகளான திறமுயர்த்தி"
+
+#: guix/gnu-maintenance.scm:717
+msgid "Updater for packages hosted on savannah.gnu.org"
+msgstr "savannah.gnu.org தளத்தில் வெளியிடப்படும் நிரல்தொகுப்புகளுக்கான திறமுயர்த்தி"
+
+#: guix/gnu-maintenance.scm:724
 msgid "Updater for X.org packages"
-msgstr ""
+msgstr "X.org நிரல்தொகுப்புத் திறமுயர்த்தி"
 
-#: guix/gnu-maintenance.scm:672
+#: guix/gnu-maintenance.scm:731
 msgid "Updater for packages hosted on kernel.org"
-msgstr ""
+msgstr "kernel.org தளத்தில் வெளியிடப்படும் நிரல்தொகுப்புகளுக்கான திறமுயர்த்தி"
 
-#: guix/scripts/container.scm:26
+#: guix/scripts/container.scm:27
 msgid ""
 "Usage: guix container ACTION ARGS...\n"
 "Build and manipulate Linux containers.\n"
 msgstr ""
 
-#: guix/scripts/container.scm:31
+#: guix/scripts/container.scm:32
 msgid "   exec            execute a command inside of an existing container\n"
 msgstr ""
 
-#: guix/scripts/container.scm:54
+#: guix/scripts/container.scm:52
+msgid "run code in containers created by 'guix environment -C'"
+msgstr ""
+
+#: guix/scripts/container.scm:58
 #, scheme-format
 msgid "guix container: missing action~%"
-msgstr ""
+msgstr "guix container: செயலில்லை~%"
 
-#: guix/scripts/container.scm:64
+#: guix/scripts/container.scm:68
 #, scheme-format
 msgid "guix container: invalid action~%"
-msgstr ""
+msgstr "guix container: ஏற்கத்தகாச் செயல்~%"
 
 #: guix/scripts/container/exec.scm:40
 msgid ""
@@ -4005,76 +4722,190 @@ msgstr ""
 #: guix/scripts/container/exec.scm:69
 #, scheme-format
 msgid "~a: extraneous argument~%"
-msgstr ""
+msgstr "~a: கூடுதல் செயலுருபு~%"
 
 #: guix/scripts/container/exec.scm:87
 #, scheme-format
 msgid "no pid specified~%"
-msgstr ""
+msgstr "செயலாக்கயெண் குறிப்பிடப்படவில்லை~%"
 
 #: guix/scripts/container/exec.scm:90
 #, scheme-format
 msgid "no command specified~%"
-msgstr ""
+msgstr "கட்டளை குறிப்பிடப்படவில்லை~%"
 
 #: guix/scripts/container/exec.scm:93
 #, scheme-format
 msgid "no such process ~d~%"
-msgstr ""
+msgstr "~d செயலாக்கயெண்ணுடைய செயலாக்கமில்லை~%"
 
 #: guix/scripts/container/exec.scm:105
 #, scheme-format
 msgid "exec failed with status ~d~%"
 msgstr ""
 
-#: guix/upstream.scm:328
+#: guix/transformations.scm:174 guix/transformations.scm:242
+#, scheme-format
+msgid "invalid replacement specification: ~s"
+msgstr "ஏற்கத்தகா மாற்றக் குறிப்பு: ~s"
+
+#: guix/transformations.scm:223
+#, scheme-format
+msgid "the source of ~a is not a Git reference"
+msgstr ""
+
+#: guix/transformations.scm:315
+#, scheme-format
+msgid "~a: invalid Git URL replacement specification"
+msgstr "~a: ஏற்கத்தகா Git முகவரி மாற்றக் குறிப்பு"
+
+#: guix/transformations.scm:393
+#, scheme-format
+msgid "~a: invalid toolchain replacement specification"
+msgstr ""
+
+#: guix/transformations.scm:514
+msgid ""
+"\n"
+"      --with-source=[PACKAGE=]SOURCE\n"
+"                         use SOURCE when building the corresponding package"
+msgstr ""
+
+#: guix/transformations.scm:517
+msgid ""
+"\n"
+"      --with-input=PACKAGE=REPLACEMENT\n"
+"                         replace dependency PACKAGE by REPLACEMENT"
+msgstr ""
+"\n"
+"      --with-input=<நிரல்தொகுப்பு>=<மாற்று>\n"
+"                         உள்ளீட்டு <நிரல்தொகுப்புக்கு> மாற்றாக <மாற்றைப்> பயன்படுத்து"
+
+#: guix/transformations.scm:520
+msgid ""
+"\n"
+"      --with-graft=PACKAGE=REPLACEMENT\n"
+"                         graft REPLACEMENT on packages that refer to PACKAGE"
+msgstr ""
+"\n"
+"      --with-graft=<நிரல்தொகுப்பு>=<மாற்று>\n"
+"                         <நிரல்தொகுப்பைச்> சுட்டும் நிரல்தொகுப்புகள் மீது <மாற்றை> ஒட்டு"
+
+#: guix/transformations.scm:523
+msgid ""
+"\n"
+"      --with-branch=PACKAGE=BRANCH\n"
+"                         build PACKAGE from the latest commit of BRANCH"
+msgstr ""
+"\n"
+"      --with-branch=<நிரல்தொகுப்பு>=<கிளை>\n"
+"                         <நிரல்தொகுப்பைக்> <கிளையின்> கடைசி பதிவிலிருந்துப் பெயர்"
+
+#: guix/transformations.scm:526
+msgid ""
+"\n"
+"      --with-commit=PACKAGE=COMMIT\n"
+"                         build PACKAGE from COMMIT"
+msgstr ""
+"\n"
+"      --with-commit=<நிரல்தொகுப்பு>=<பதிவு>\n"
+"                         <நிரல்தொகுப்பை> Git <பதிவைக்> கொண்டுப் பெயர்"
+
+#: guix/transformations.scm:529
+msgid ""
+"\n"
+"      --with-git-url=PACKAGE=URL\n"
+"                         build PACKAGE from the repository at URL"
+msgstr ""
+"\n"
+"      --with-git-url=<நிரல்தொகுப்பு>=<முகவரி>\n"
+"                         <நிரல்தொகுப்பை> <முகவரியிலுள்ள> Git களஞ்சியத்தைக் கொண்டுப் பெயர்"
+
+#: guix/transformations.scm:532
+msgid ""
+"\n"
+"      --with-c-toolchain=PACKAGE=TOOLCHAIN\n"
+"                         build PACKAGE and its dependents with TOOLCHAIN"
+msgstr ""
+
+#: guix/transformations.scm:535
+msgid ""
+"\n"
+"      --with-debug-info=PACKAGE\n"
+"                         build PACKAGE and preserve its debug info"
+msgstr ""
+"\n"
+"      --with-debug-info=<நிரல்தொகுப்பு>\n"
+"                         <நிரல்தொகுப்பை> வழுநீக்கத் தகவலுடன் பெயர்"
+
+#: guix/transformations.scm:538
+msgid ""
+"\n"
+"      --without-tests=PACKAGE\n"
+"                         build PACKAGE without running its tests"
+msgstr ""
+"\n"
+"      --without-tests=<நிரல்தொகுப்பு>\n"
+"                         <நிரல்தொகுப்பைச்> சோதிக்காமல் பெயர்"
+
+#: guix/transformations.scm:589
+#, scheme-format
+msgid "transformation '~a' had no effect on ~a~%"
+msgstr "'~a' உருமாற்றம் ~a மீது எத்தாக்கமும் கொள்ளவில்லை~%"
+
+#: guix/upstream.scm:337
+#, scheme-format
+msgid "failed to download detached signature from ~a~%"
+msgstr "தனிக்கையெழுத்தை ~a முகவரியிலிருந்து பதிவிறக்க இயலவில்லை~%"
+
+#: guix/upstream.scm:341
 #, scheme-format
 msgid "signature verification failed for '~a' (key: ~a)~%"
 msgstr ""
 
-#: guix/upstream.scm:332
+#: guix/upstream.scm:345
 #, scheme-format
 msgid "missing public key ~a for '~a'~%"
 msgstr ""
 
-#: guix/upstream.scm:408
+#: guix/upstream.scm:421
 #, scheme-format
 msgid "cannot download for this method: ~s"
 msgstr ""
 
-#: guix/upstream.scm:471
+#: guix/upstream.scm:486
 #, scheme-format
 msgid "~a: could not locate source file"
 msgstr ""
 
-#: guix/upstream.scm:476
+#: guix/upstream.scm:490
 #, scheme-format
-msgid "~a: ~a: no `version' field in source; skipping~%"
+msgid "~a: no `version' field in source; skipping~%"
 msgstr ""
 
-#: guix/ui.scm:154
+#: guix/ui.scm:161
 #, scheme-format
 msgid "error: ~a: unbound variable"
 msgstr "பிழை: ~a: பிணைக்கப்படா மாறி"
 
-#: guix/ui.scm:254
+#: guix/ui.scm:261
 msgid "entering debugger; type ',bt' for a backtrace\n"
 msgstr ""
 
-#: guix/ui.scm:311
+#: guix/ui.scm:319
 msgid "hint: "
 msgstr "சிறுகுறிப்பு: "
 
-#: guix/ui.scm:328
+#: guix/ui.scm:336
 msgid "Did you forget a @code{use-modules} form?"
 msgstr "@code{use-modules} யை மறந்தீரோ?"
 
-#: guix/ui.scm:330
+#: guix/ui.scm:338
 #, scheme-format
 msgid "Did you forget @code{(use-modules ~a)}?"
 msgstr "@code{(use-modules ~a)} யை மறந்தீரோ?"
 
-#: guix/ui.scm:340
+#: guix/ui.scm:348
 #, scheme-format
 msgid ""
 "File @file{~a} should probably start with:\n"
@@ -4083,94 +4914,113 @@ msgid ""
 "(define-module ~a)\n"
 "@end example"
 msgstr ""
+"@file{~a} கோப்பு பெரும்பாலும் பின்வருபவையுடன் தொடங்க வேண்டும்:\n"
+"\n"
+"@example\n"
+"(define-module ~a)\n"
+"@end example"
 
-#: guix/ui.scm:354
+#: guix/ui.scm:362
 #, scheme-format
 msgid "module name ~a does not match file name '~a'~%"
-msgstr ""
+msgstr "~a நிரல்கூறு பெயர் '~a' கோப்புப் பெயருக்கு ஒத்ததில்லை~%"
 
-#: guix/ui.scm:358
+#: guix/ui.scm:366
 #, scheme-format
 msgid "~a: file is empty~%"
 msgstr "~a: கோப்பில் ஒன்றுமில்லை~%"
 
-#: guix/ui.scm:369 guix/ui.scm:411 guix/ui.scm:419
+#: guix/ui.scm:377 guix/ui.scm:425 guix/ui.scm:433 guix/ui.scm:437
 #, scheme-format
 msgid "failed to load '~a': ~a~%"
-msgstr ""
+msgstr "'~a' கோப்பை ஏற்ற இயலவில்லை: ~a~%"
 
-#: guix/ui.scm:376
+#: guix/ui.scm:384
 #, scheme-format
 msgid "~amissing closing parenthesis~%"
-msgstr ""
+msgstr "~aஅடைப்புக்குறி இல்லை~%"
 
-#: guix/ui.scm:381
+#: guix/ui.scm:389
 #, scheme-format
 msgid "~s: ~a~%"
 msgstr "~s: ~a~%"
 
-#: guix/ui.scm:391 guix/ui.scm:842
+#: guix/ui.scm:405 guix/ui.scm:898
 #, scheme-format
 msgid "exception thrown: ~s~%"
 msgstr ""
 
-#: guix/ui.scm:395 guix/ui.scm:425
+#: guix/ui.scm:409 guix/ui.scm:446
 #, scheme-format
 msgid "failed to load '~a':~%"
-msgstr ""
+msgstr "'~a' கோப்பை ஏற்ற இயலவில்லை:~%"
 
-#: guix/ui.scm:422
+#: guix/ui.scm:443
 #, scheme-format
 msgid "failed to load '~a': exception thrown: ~s~%"
 msgstr ""
 
-#: guix/ui.scm:470
+#: guix/ui.scm:491
 msgid ""
 "Consider installing the @code{glibc-utf8-locales} or\n"
 "@code{glibc-locales} package and defining @code{GUIX_LOCPATH}, along these\n"
 "lines:\n"
 "\n"
 "@example\n"
-"guix package -i glibc-utf8-locales\n"
+"guix install glibc-utf8-locales\n"
 "export GUIX_LOCPATH=\"$HOME/.guix-profile/lib/locale\"\n"
 "@end example\n"
 "\n"
 "See the \"Application Setup\" section in the manual, for more info.\n"
 msgstr ""
+"@code{glibc-utf8-locales} அல்லது @code{glibc-locales} நிரல்தொகுப்பை\n"
+"நிறுவவும் @code{GUIX_LOCPATH} சூழல்மாறியைப் பின்வருவது போல் வரையறுக்கவும்\n"
+"கருதுக:\n"
+"\n"
+"@example\n"
+"guix install glibc-utf8-locales\n"
+"export GUIX_LOCPATH=\"$HOME/.guix-profile/lib/locale\"\n"
+"@end example\n"
+"\n"
+"மேலும் விவரங்களுக்கு கையேட்டில் \"Application Setup\" பிரிவைக் காண்க.\n"
 
 #. TRANSLATORS: Translate "(C)" to the copyright symbol
 #. (C-in-a-circle), if this symbol is available in the user's
 #. locale.  Otherwise, do not translate "(C)"; leave it as-is.  */
-#: guix/ui.scm:508
+#: guix/ui.scm:533
 msgid "(C)"
-msgstr ""
+msgstr "©"
 
-#: guix/ui.scm:509
+#: guix/ui.scm:534
 msgid "the Guix authors\n"
 msgstr "Guix நிரலாசிரியர்\n"
 
-#: guix/ui.scm:510
+#: guix/ui.scm:535
 msgid ""
 "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\n"
 "This is free software: you are free to change and redistribute it.\n"
 "There is NO WARRANTY, to the extent permitted by law.\n"
 msgstr ""
+"உரிமம் GPLv3+: GNU GPL மூன்றாம் பதிப்பு அல்லது அதற்குப் பின்னுள்ள பதிப்புகள்\n"
+"ஏதேனும் <http://gnu.org/licenses/gpl.html>\n"
+"இது கட்டற்ற மென்பொருள். இதை மாற்றவோ மறுவிநியோகம் செய்யவோ உங்களுக்கு உரிமை உண்டு.\n"
+"சட்டத்தால் அனுமதிக்கப்பட்ட அளவிற்கு எந்த உத்தரவாதமும் இல்லை.\n"
 
 #. TRANSLATORS: The placeholder indicates the bug-reporting address for this
 #. package.  Please add another line saying "Report translation bugs to
 #. ...\n" with the address for translation bugs (typically your translation
 #. team's web or email address).
-#: guix/ui.scm:522
+#: guix/ui.scm:547
 #, scheme-format
 msgid ""
 "\n"
 "Report bugs to: ~a."
 msgstr ""
 "\n"
-"வழுக்களை ~a யிடம் அறிவிக்க.\n"
-"தமிழாக்க வழுக்களை tamil@systemreboot.net யிடம் அறிவிக்க."
+"வழுக்களை ~a மின்னஞ்சல் முகவரியில் தெரிவிக்க.\n"
+"தமிழாக்க வழுக்களை tamil@systemreboot.net மின்னஞ்சல் முகவரியில் தெரிவிக்க."
 
-#: guix/ui.scm:524
+#: guix/ui.scm:549
 #, scheme-format
 msgid ""
 "\n"
@@ -4180,188 +5030,202 @@ msgstr ""
 "\n"
 "~a வலைத்தளம்: <~a>"
 
-#: guix/ui.scm:526
+#: guix/ui.scm:551
+#, scheme-format
 msgid ""
 "\n"
-"General help using GNU software: <http://www.gnu.org/gethelp/>"
+"General help using Guix and GNU software: <~a>"
 msgstr ""
 "\n"
-"\n"
-"GNU மென்பொருள் பயன்பாட்டு உதவிக்கு: <http://www.gnu.org/gethelp/>"
+"Guix மற்றும் GNU மென்பொருள் பயன்பாட்டு உதவிக்கு: <~a>"
 
-#: guix/ui.scm:581
+#: guix/ui.scm:607
 #, scheme-format
 msgid "'~a' is not a valid regular expression: ~a~%"
-msgstr ""
+msgstr "'~a' ஏற்கத்தகு சுருங்குறித்தொடரல்ல: ~a"
 
-#: guix/ui.scm:587
+#: guix/ui.scm:613
 #, scheme-format
 msgid "~a: invalid number~%"
 msgstr "~a: ஏற்கத்தகா எண்~%"
 
-#: guix/ui.scm:604
+#: guix/ui.scm:631
 #, scheme-format
 msgid "invalid number: ~a~%"
 msgstr "ஏற்கத்தகா எண்: ~a~%"
 
-#: guix/ui.scm:627
+#: guix/ui.scm:654
 #, scheme-format
 msgid "unknown unit: ~a~%"
-msgstr ""
+msgstr "ஏற்கத்தகா அலகு: ~a~%"
 
-#: guix/ui.scm:642
+#: guix/ui.scm:669
 #, scheme-format
 msgid ""
 "You cannot have two different versions\n"
 "or variants of @code{~a} in the same profile."
 msgstr ""
+"ஒரே தனியமைப்பில் @code{~a} வின் இருப் பதிப்புகளையோ திரிபுருக்களையோ கொள்ள\n"
+"இயலாது."
 
-#: guix/ui.scm:645
+#: guix/ui.scm:672
 #, scheme-format
 msgid ""
 "Try upgrading both @code{~a} and @code{~a},\n"
 "or remove one of them from the profile."
-msgstr ""
+msgstr "@code{~a}, @code{~a} இரண்டையும் திறமுயர்த்துக அல்லது ஒன்றை நீக்குக."
 
-#: guix/ui.scm:664
+#: guix/ui.scm:708
 #, scheme-format
 msgid "~a:~a:~a: package `~a' has an invalid input: ~s~%"
-msgstr "~a:~a:~a: `~a' மென்பொருள் தொகுப்பிற்கு ஓர் ஏற்கத்தகா உள்ளீடுள்ளது: ~s~%"
+msgstr "~a:~a:~a: `~a' நிரல்தொகுப்பிற்கு ஓர் ஏற்கத்தகா உள்ளீடுள்ளது: ~s~%"
 
-#: guix/ui.scm:671
+#: guix/ui.scm:715
 #, scheme-format
 msgid "~a: ~a: build system `~a' does not support cross builds~%"
 msgstr ""
 
-#: guix/ui.scm:677
+#: guix/ui.scm:721
 #, scheme-format
 msgid "~s: invalid G-expression input~%"
-msgstr ""
+msgstr "~s: ஏற்கத்தகா G-கோவை உள்ளீடு~%"
 
-#: guix/ui.scm:680
+#: guix/ui.scm:724
 #, scheme-format
 msgid "profile '~a' does not exist~%"
-msgstr ""
+msgstr "'~a' தனியமைப்பில்லை~%"
 
-#: guix/ui.scm:683
+#: guix/ui.scm:727
 #, scheme-format
 msgid "generation ~a of profile '~a' does not exist~%"
-msgstr ""
+msgstr "'~1@*~a' தனியமைப்பில் வரிசை ~0@*~a இல்லை.~%"
 
-#: guix/ui.scm:688
+#: guix/ui.scm:732
 #, scheme-format
 msgid "package '~a~@[@~a~]~@[:~a~]' not found in profile~%"
-msgstr ""
+msgstr "'~a~@[@~a~]~@[:~a~]' நிரல்தொகுப்பு தனியமைப்பில் இல்லை~%"
 
-#: guix/ui.scm:700
+#: guix/ui.scm:744
 #, scheme-format
 msgid "   ... propagated from ~a@~a~%"
 msgstr ""
 
-#: guix/ui.scm:710
+#: guix/ui.scm:754
 #, scheme-format
 msgid "profile contains conflicting entries for ~a~a~%"
-msgstr ""
+msgstr "தனியமைப்பில் ~a~a க்கு முரணான பதிவுகளுள்ளன~%"
 
-#: guix/ui.scm:713
+#: guix/ui.scm:757
 #, scheme-format
 msgid "  first entry: ~a@~a~a ~a~%"
-msgstr "  முதல் உள்ளடக்கம்: ~a@~a~a ~a~%"
+msgstr "  முதல் பதிவு: ~a@~a~a ~a~%"
 
-#: guix/ui.scm:719
+#: guix/ui.scm:763
 #, scheme-format
 msgid "  second entry: ~a@~a~a ~a~%"
-msgstr "  இரண்டாம் உள்ளடக்கம்: ~a@~a~a ~a~%"
+msgstr "  இரண்டாம் பதிவு: ~a@~a~a ~a~%"
 
-#: guix/ui.scm:731
+#: guix/ui.scm:775
 #, scheme-format
 msgid "corrupt input while restoring '~a' from ~s~%"
 msgstr ""
 
-#: guix/ui.scm:733
+#: guix/ui.scm:777
 #, scheme-format
 msgid "corrupt input while restoring archive from ~s~%"
 msgstr ""
 
-#: guix/ui.scm:736
+#: guix/ui.scm:780
 #, scheme-format
 msgid "failed to connect to `~a': ~a~%"
 msgstr ""
 
-#: guix/ui.scm:744
+#: guix/ui.scm:788
 #, scheme-format
 msgid "reference to invalid output '~a' of derivation '~a'~%"
 msgstr ""
 
-#: guix/ui.scm:748
+#: guix/ui.scm:792
 #, scheme-format
 msgid "file '~a' could not be found in these directories:~{ ~a~}~%"
 msgstr "'~a' கோப்பு இவ்வடைவுகளில் கிடைக்கவில்லை:~{~a~}~%"
 
-#: guix/ui.scm:753
+#: guix/ui.scm:797
 #, scheme-format
 msgid "program exited~@[ with non-zero exit status ~a~]~@[ terminated by signal ~a~]~@[ stopped by signal ~a~]: ~s~%"
 msgstr ""
 
-#: guix/ui.scm:827
+#: guix/ui.scm:877
 #, scheme-format
 msgid "failed to read expression ~s: ~s~%"
-msgstr ""
+msgstr "~s கோவையைப் படிக்க இயலவில்லை: ~s~%"
 
-#: guix/ui.scm:833
+#: guix/ui.scm:883
 #, scheme-format
 msgid "failed to evaluate expression '~a':~%"
-msgstr ""
+msgstr "'~a' கோவையைக் கணிக்க இயலவில்லை:~%"
 
-#: guix/ui.scm:836
+#: guix/ui.scm:886
 #, scheme-format
 msgid "syntax error: ~a~%"
-msgstr ""
+msgstr "தொடரியல் பிழை: ~a~%"
 
-#: guix/ui.scm:854
+#: guix/ui.scm:910
 #, scheme-format
 msgid "expression ~s does not evaluate to a package~%"
 msgstr ""
 
-#: guix/ui.scm:881
+#: guix/ui.scm:937
 msgid "at least ~,1h MB needed but only ~,1h MB available in ~a~%"
-msgstr ""
+msgstr "குறைந்தபட்சம் ~,1h MB தேவை, ஆனால் ~2@*~a அடைவில் ~1@*~,1h MB தான் உள்ளது~%"
 
-#: guix/ui.scm:977
+#: guix/ui.scm:1046
 #, scheme-format
 msgid "~:[The following derivation would be built:~%~{   ~a~%~}~;~]"
 msgid_plural "~:[The following derivations would be built:~%~{   ~a~%~}~;~]"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "~:[பின்வரும் வருவி கட்டப்படும்:~%~{   ~a~%~}~;~]"
+msgstr[1] "~:[பின்வரும் வருவிகள் கட்டப்படும்:~%~{   ~a~%~}~;~]"
 
 #. TRANSLATORS: "MB" is for "megabyte"; it should be
 #. translated to the corresponding abbreviation.
-#: guix/ui.scm:985
+#: guix/ui.scm:1055
 msgid "~:[~,1h MB would be downloaded:~%~{   ~a~%~}~;~]"
-msgstr ""
+msgstr "~:[~,1h MB பதிவிறக்கப்படும்:~%~{   ~a~%~}~;~]"
 
-#: guix/ui.scm:991
+#: guix/ui.scm:1061
 #, scheme-format
 msgid "~:[The following file would be downloaded:~%~{   ~a~%~}~;~]"
 msgid_plural "~:[The following files would be downloaded:~%~{   ~a~%~}~;~]"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "~:[பின்வரும் கோப்பு பதிவிறக்கப்படும்:~%~{   ~a~%~}~;~]"
+msgstr[1] "~:[பின்வரும் கோப்புகள் பதிவிறக்கப்படும்:~%~{   ~a~%~}~;~]"
 
-#: guix/ui.scm:998
+#: guix/ui.scm:1068
 #, scheme-format
 msgid "~:[The following graft would be made:~%~{   ~a~%~}~;~]"
 msgid_plural "~:[The following grafts would be made:~%~{   ~a~%~}~;~]"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "~:[பின்வரும் ஒட்டு செய்யப்படும்:~%~{   ~a~%~}~;~]"
+msgstr[1] "~:[பின்வரும் ஒட்டுகள் செய்யப்படும்:~%~{   ~a~%~}~;~]"
 
-#: guix/ui.scm:1003
+#: guix/ui.scm:1073
 #, scheme-format
 msgid "~:[The following profile hook would be built:~%~{   ~a~%~}~;~]"
 msgid_plural "~:[The following profile hooks would be built:~%~{   ~a~%~}~;~]"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "~:[பின்வரும் தனியமைப்புக் கொக்கி கட்டப்படும்:~%~{   ~a~%~}~;~]"
+msgstr[1] "~:[பின்வரும் தனியமைப்புக் கொக்கிகள் கட்டப்படும்:~%~{   ~a~%~}~;~]"
+
+#. TRANSLATORS: "MB" is for "megabyte"; it should be
+#. translated to the corresponding abbreviation.
+#: guix/ui.scm:1085
+msgid "~:[~,1h MB would be downloaded~%~;~]"
+msgstr "~:[~,1h MB பதிவிறக்கப்படும்~%~;~]"
 
-#: guix/ui.scm:1009
+#: guix/ui.scm:1089
+msgid "~:[~h item would be downloaded~%~;~]"
+msgid_plural "~:[~h items would be downloaded~%~;~]"
+msgstr[0] "~:[~h உருப்படி பதிவிறக்கப்படும்~%~;~]"
+msgstr[1] "~:[~h உருப்படிகள் பதிவிறக்கப்படும்~%~;~]"
+
+#: guix/ui.scm:1097
 #, scheme-format
 msgid "~:[The following derivation will be built:~%~{   ~a~%~}~;~]"
 msgid_plural "~:[The following derivations will be built:~%~{   ~a~%~}~;~]"
@@ -4370,146 +5234,157 @@ msgstr[1] "~:[பின்வரும் வருவிகள் கட்ட
 
 #. TRANSLATORS: "MB" is for "megabyte"; it should be
 #. translated to the corresponding abbreviation.
-#: guix/ui.scm:1017
+#: guix/ui.scm:1106
 msgid "~:[~,1h MB will be downloaded:~%~{   ~a~%~}~;~]"
 msgstr "~:[~,1h MB பதிவிறக்கப்படும்:~%~{   ~a~%~}~;~]"
 
-#: guix/ui.scm:1023
+#: guix/ui.scm:1112
 #, scheme-format
 msgid "~:[The following file will be downloaded:~%~{   ~a~%~}~;~]"
 msgid_plural "~:[The following files will be downloaded:~%~{   ~a~%~}~;~]"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "~:[பின்வரும் கோப்பு பதிவிறக்கப்படும்:~%~{   ~a~}~;~]"
+msgstr[1] "~:[பின்வரும் கோப்புகள் பதிவிறக்கப்படும்:~%~{   ~a~}~;~]"
 
-#: guix/ui.scm:1030
+#: guix/ui.scm:1119
 #, scheme-format
 msgid "~:[The following graft will be made:~%~{   ~a~%~}~;~]"
 msgid_plural "~:[The following grafts will be made:~%~{   ~a~%~}~;~]"
 msgstr[0] "~:[பின்வரும் ஒட்டு செய்யப்படும்:~%~{   ~a~%~}~;~]"
 msgstr[1] "~:[பின்வரும் ஒட்டுகள் செய்யப்படும்:~%~{   ~a~%~}~;~]"
 
-#: guix/ui.scm:1035
+#: guix/ui.scm:1124
 #, scheme-format
 msgid "~:[The following profile hook will be built:~%~{   ~a~%~}~;~]"
 msgid_plural "~:[The following profile hooks will be built:~%~{   ~a~%~}~;~]"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "~:[பின்வரும் தனியமைப்புக் கொக்கி கட்டப்படும்:~%~{   ~a~%~}~;~]"
+msgstr[1] "~:[பின்வரும் தனியமைப்புக் கொக்கிகள் கட்டப்படும்:~%~{   ~a~%~}~;~]"
+
+#. TRANSLATORS: "MB" is for "megabyte"; it should be
+#. translated to the corresponding abbreviation.
+#: guix/ui.scm:1136
+msgid "~:[~,1h MB will be downloaded~%~;~]"
+msgstr "~:[~,1h MB பதிவிறக்கப்படும்~%~;~]"
+
+#: guix/ui.scm:1140
+msgid "~:[~h item will be downloaded~%~;~]"
+msgid_plural "~:[~h items will be downloaded~%~;~]"
+msgstr[0] "~:[~,1h உருப்படி பதிவிறக்கப்படும்~%~;~]"
+msgstr[1] "~:[~,1h உருப்படிகள் பதிவிறக்கப்படும்~%~;~]"
 
-#: guix/ui.scm:1094
+#: guix/ui.scm:1259
+msgid "(dependencies or package changed)"
+msgstr "(நிரல்தொகுப்போ அதுச் சார்ந்த நிரல்தொகுப்போ மாறியுள்ளன)"
+
+#: guix/ui.scm:1278
 #, scheme-format
 msgid "The following package would be removed:~%~{~a~%~}~%"
 msgid_plural "The following packages would be removed:~%~{~a~%~}~%"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "பின்வரும் மென்பொருள் தொகுப்பு நீக்கப்பட்டிருக்கும்:~%~{~a~%~}~%"
+msgstr[1] "பின்வரும் மென்பொருள் தொகுப்புகள் நீக்கப்பட்டிருக்கும்:~%~{~a~%~}~%"
 
-#: guix/ui.scm:1099
+#: guix/ui.scm:1283
 #, scheme-format
 msgid "The following package will be removed:~%~{~a~%~}~%"
 msgid_plural "The following packages will be removed:~%~{~a~%~}~%"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "பின்வரும் மென்பொருள் தொகுப்பு நீக்கப்படும்:~%~{~a~%~}~%"
+msgstr[1] "பின்வரும் மென்பொருள் தொகுப்புகள் நீக்கப்படும்:~%~{~a~%~}~%"
 
-#: guix/ui.scm:1112
+#: guix/ui.scm:1296
 #, scheme-format
 msgid "The following package would be downgraded:~%~{~a~%~}~%"
 msgid_plural "The following packages would be downgraded:~%~{~a~%~}~%"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "பின்வரும் மென்பொருள் தொகுப்பு திறமிறக்கப்பட்டிருக்கும்:~%~{~a~%~}~%"
+msgstr[1] "பின்வரும் மென்பொருள் தொகுப்புகள் திறமிறக்கப்பட்டிருக்கும்:~%~{~a~%~}~%"
 
-#: guix/ui.scm:1117
+#: guix/ui.scm:1301
 #, scheme-format
 msgid "The following package will be downgraded:~%~{~a~%~}~%"
 msgid_plural "The following packages will be downgraded:~%~{~a~%~}~%"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "பின்வரும் மென்பொருள் தொகுப்பு திறமிறக்கப்படும்:~%~{~a~%~}~%"
+msgstr[1] "பின்வரும் மென்பொருள் தொகுப்புகள் திறமிறக்கப்படும்:~%~{~a~%~}~%"
 
-#: guix/ui.scm:1130
+#: guix/ui.scm:1314
 #, scheme-format
 msgid "The following package would be upgraded:~%~{~a~%~}~%"
 msgid_plural "The following packages would be upgraded:~%~{~a~%~}~%"
 msgstr[0] "பின்வரும் மென்பொருள் தொகுப்பு திறமுயர்த்தப்பட்டிருக்கும்:~%~{~a~%~}~%"
 msgstr[1] "பின்வரும் மென்பொருள் தொகுப்புகள் திறமுயர்த்தப்பட்டிருக்கும்:~%~{~a~%~}~%"
 
-#: guix/ui.scm:1135
+#: guix/ui.scm:1319
 #, scheme-format
 msgid "The following package will be upgraded:~%~{~a~%~}~%"
 msgid_plural "The following packages will be upgraded:~%~{~a~%~}~%"
 msgstr[0] "பின்வரும் மென்பொருள் தொகுப்பு திறமுயர்த்தப்படும்:~%~{~a~%~}~%"
 msgstr[1] "பின்வரும் மென்பொருள் தொகுப்புகள் திறமுயர்த்தப்படும்:~%~{~a~%~}~%"
 
-#: guix/ui.scm:1146
+#: guix/ui.scm:1330
 #, scheme-format
 msgid "The following package would be installed:~%~{~a~%~}~%"
 msgid_plural "The following packages would be installed:~%~{~a~%~}~%"
 msgstr[0] "பின்வரும் மென்பொருள் தொகுப்பு நிறுவப்பட்டிருக்கும்:~%~{~a~%~}~%"
 msgstr[1] "பின்வரும் மென்பொருள் தொகுப்புகள் நிறுவப்பட்டிருக்கும்:~%~{~a~%~}~%"
 
-#: guix/ui.scm:1151
+#: guix/ui.scm:1335
 #, scheme-format
 msgid "The following package will be installed:~%~{~a~%~}~%"
 msgid_plural "The following packages will be installed:~%~{~a~%~}~%"
 msgstr[0] "பின்வரும் மென்பொருள் தொகுப்பு நிறுவப்படும்:~%~{~a~%~}~%"
 msgstr[1] "பின்வரும் மென்பொருள் தொகுப்புகள் நிறுவப்படும்:~%~{~a~%~}~%"
 
-#: guix/ui.scm:1480
-#, scheme-format
-msgid "Run @code{~a ... | less} to view all the results."
-msgstr ""
-
-#: guix/ui.scm:1630
+#: guix/ui.scm:1862
 #, scheme-format
 msgid "invalid syntax: ~a~%"
-msgstr ""
+msgstr "ஏற்கத்தகாத் தொடரமைப்பு: ~a~%"
 
-#: guix/ui.scm:1640
+#: guix/ui.scm:1871
 #, scheme-format
 msgid "Generation ~a\t~a"
-msgstr ""
+msgstr "வரிசை ~a\t~a"
 
 #. TRANSLATORS: This is a format-string for date->string.
 #. Please choose a format that corresponds to the
 #. usual way of presenting dates in your locale.
 #. See https://www.gnu.org/software/guile/manual/html_node/SRFI_002d19-Date-to-string.html
 #. for details.
-#: guix/ui.scm:1650
+#: guix/ui.scm:1881
 #, scheme-format
 msgid "~b ~d ~Y ~T"
-msgstr ""
+msgstr "~b ~d ~Y ~T"
 
 #. TRANSLATORS: The word "current" here is an adjective for
 #. "Generation", as in "current generation".  Use the appropriate
 #. gender where applicable.
-#: guix/ui.scm:1656
+#: guix/ui.scm:1887
 #, scheme-format
 msgid "~a\t(current)~%"
-msgstr ""
+msgstr "~a\t(தற்போதையது)~%"
 
-#: guix/ui.scm:1690
+#: guix/ui.scm:1921
 #, scheme-format
 msgid "cannot lock profile ~a: ~a~%"
 msgstr ""
 
-#: guix/ui.scm:1692
+#: guix/ui.scm:1923
 #, scheme-format
 msgid "profile ~a is locked by another process~%"
 msgstr ""
 
-#: guix/ui.scm:1719
+#: guix/ui.scm:1950
 #, scheme-format
 msgid "switched from generation ~a to ~a~%"
-msgstr ""
+msgstr "வரிசை ~a யிலிருந்து ~a க்கு மாற்றப்பட்டது~%"
 
-#: guix/ui.scm:1735
+#: guix/ui.scm:1966
 #, scheme-format
 msgid "deleting ~a~%"
-msgstr ""
+msgstr "~a நீக்கப்படுகிறது~%"
 
-#: guix/ui.scm:1766
+#: guix/ui.scm:1997
 #, scheme-format
 msgid "Try `guix --help' for more information.~%"
-msgstr ""
+msgstr "மேலும் விவரங்களுக்கு `guix --help' கட்டளையை இயக்குக.~%"
 
-#: guix/ui.scm:1794
+#: guix/ui.scm:2078
 msgid ""
 "Usage: guix COMMAND ARGS...\n"
 "Run COMMAND with ARGS.\n"
@@ -4517,21 +5392,21 @@ msgstr ""
 "பயன்பாடு: guix <கட்டளை> <செயலுருபுகள்>...\n"
 "<கட்டளையைச்> <செயலுருபுகளுடன்> இயக்குக.\n"
 
-#: guix/ui.scm:1797
+#: guix/ui.scm:2081
 msgid "COMMAND must be one of the sub-commands listed below:\n"
 msgstr "<கட்டளை> கீழ் பட்டியலிடப்பட்டுள்ள சார் கட்டளைகளுளொன்றாக இருக்க வேண்டும்:\n"
 
-#: guix/ui.scm:1813
+#: guix/ui.scm:2105
 #, scheme-format
 msgid "guix: ~a: command not found~%"
-msgstr ""
+msgstr "guix: ~a: கட்டளை இல்லை ~%"
 
-#: guix/ui.scm:1843
+#: guix/ui.scm:2135
 #, scheme-format
 msgid "guix: missing command name~%"
-msgstr ""
+msgstr "guix: கட்டளைப் பெயர் இல்லை"
 
-#: guix/ui.scm:1851
+#: guix/ui.scm:2143
 #, scheme-format
 msgid "guix: unrecognized option '~a'~%"
 msgstr "guix: அறியப்படாச் செயல்மாற்றி '~a'~%"
@@ -4550,7 +5425,7 @@ msgstr "Info கையேடுகளின் அடைவு அமைக்
 
 #: guix/status.scm:380
 msgid "building GHC package cache..."
-msgstr ""
+msgstr "GHC நிரல்தொகுப்பு பதுக்ககம் அமைக்கப்படுகிறது..."
 
 #: guix/status.scm:382
 msgid "building CA certificate bundle..."
@@ -4582,7 +5457,7 @@ msgstr "எழுத்துருக்களின் அடைவு அம
 
 #: guix/status.scm:396
 msgid "building TeX Live configuration..."
-msgstr ""
+msgstr "TeX Live கட்டமைப்பு அமைக்கப்படுகிறது..."
 
 #: guix/status.scm:398
 msgid "building database for manual pages..."
@@ -4590,323 +5465,394 @@ msgstr "கையேட்டுப் பக்கங்களின் தர
 
 #: guix/status.scm:400
 msgid "building package cache..."
-msgstr "மென்பொருள் தொகுப்புப் பதுக்ககம் அமைக்கப்படுகிறது..."
+msgstr "நிரல்தொகுப்புப் பதுக்ககம் அமைக்கப்படுகிறது..."
 
 #: guix/status.scm:475
 #, scheme-format
-msgid "applying ~a graft for ~a..."
-msgid_plural "applying ~a grafts for ~a..."
-msgstr[0] "~*~a க்கு ~2:*~a ஒட்டு இடப்படுகிறது..."
-msgstr[1] "~*~a க்கு ~2:*~a ஒட்டுகள் இடப்படுகின்றன..."
+msgid "applying ~a graft for ~a ..."
+msgid_plural "applying ~a grafts for ~a ..."
+msgstr[0] "~1@*~a வருவிக்கு ~0@*~a ஒட்டு இடப்படுகிறது..."
+msgstr[1] "~1@*~a வருவிக்கு ~0@*~a ஒட்டுகள் இடப்படுகின்றன..."
 
-#: guix/status.scm:484
+#: guix/status.scm:483
+#, scheme-format
+msgid "building profile with ~a package..."
+msgid_plural "building profile with ~a packages..."
+msgstr[0] "~a நிரல்தொகுப்புடன் தனியமைப்பு அமைக்கப்படுகிறது..."
+msgstr[1] "~a நிரல்தொகுப்புகளுடன் தனியமைப்பு அமைக்கப்படுகிறது..."
+
+#: guix/status.scm:492
 #, scheme-format
 msgid "running profile hook of type '~a'..."
-msgstr ""
+msgstr "'~a' வகைத் தனியமைப்புக் கொக்கி இயக்கப்படுகிறது..."
 
-#: guix/status.scm:487
+#: guix/status.scm:495
 #, scheme-format
 msgid "building ~a..."
-msgstr "~a கட்டப்படுகிறது..."
+msgstr "~a பெயர்க்கப்படுகிறது..."
 
-#: guix/status.scm:492
+#: guix/status.scm:500
 #, scheme-format
 msgid "successfully built ~a"
-msgstr "~a வெற்றிகரமாகக் கட்டப்பட்டது"
+msgstr "~a வெற்றிகரமாகப் பெயர்க்கப்பட்டது"
 
-#: guix/status.scm:498
+#: guix/status.scm:506
 #, scheme-format
 msgid "The following build is still in progress:~%~{  ~a~%~}~%"
 msgid_plural "The following builds are still in progress:~%~{  ~a~%~}~%"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "பின்வரும் பெயர்ப்பு இன்னும் நடந்துக்கொண்டிருக்கிறது:~%~{  ~a~%~}~%"
+msgstr[1] "பின்வரும் பெயர்ப்புகள் இன்னும் நடந்துக்கொண்டிருக்கின்றன:~%~{  ~a~%~}~%"
 
-#: guix/status.scm:504
+#: guix/status.scm:512
 #, scheme-format
 msgid "build of ~a failed"
-msgstr "~a கட்டுமானம் தோல்வியுற்றது"
+msgstr "~a பெயர்ப்பு தோல்வியுற்றது"
 
-#: guix/status.scm:508
+#: guix/status.scm:516
 #, scheme-format
 msgid "Could not find build log for '~a'."
-msgstr "'~a' க்குக் கட்டுக்குறிப்பு கிடைக்கவில்லை."
+msgstr "'~a' க்குக் பெயர்குறிப்பு கிடைக்கவில்லை."
 
-#: guix/status.scm:511
+#: guix/status.scm:519
 #, scheme-format
 msgid "View build log at '~a'."
-msgstr "கட்டுமானக் குறிப்பேடு '~a' யைக் காண்க."
+msgstr "'~a' பெயர்குறிப்பைக் காண்க."
 
-#: guix/status.scm:516
+#: guix/status.scm:524
 #, scheme-format
 msgid "substituting ~a..."
-msgstr "~a பதிலிடப்படுகிறது..."
+msgstr "~a மாற்றீடு செய்யப்படுகிறது..."
 
-#: guix/status.scm:520
+#: guix/status.scm:528
 #, scheme-format
-msgid "downloading from ~a..."
+msgid "downloading from ~a ..."
 msgstr "~a பதிவிறக்கப்படுகிறது..."
 
-#: guix/status.scm:545
+#: guix/status.scm:553
 #, scheme-format
 msgid "substitution of ~a complete"
-msgstr ""
+msgstr "~a உருப்படியின் மாற்றீடு முடிந்தது"
 
-#: guix/status.scm:548
+#: guix/status.scm:556
 #, scheme-format
 msgid "substitution of ~a failed"
-msgstr ""
+msgstr "~a உருப்படியின் மாற்றீடு தோல்வியுற்றது"
 
 #. TRANSLATORS: The final string looks like "sha256 hash mismatch for
 #. /gnu/store/…-sth:", where "sha256" is the hash algorithm.
-#: guix/status.scm:553
+#: guix/status.scm:561
 #, scheme-format
 msgid "~a hash mismatch for ~a:"
-msgstr ""
+msgstr "~0@*~a கிடங்குருப்படிக்கு ~1@*~a கொத்து பொருந்தவில்லை:"
 
-#: guix/status.scm:555
+#: guix/status.scm:563
 #, scheme-format
 msgid ""
 "  expected hash: ~a\n"
 "  actual hash:   ~a~%"
 msgstr ""
+"  எதிர்பார்த்த கொத்து: ~a\n"
+"  கிடைத்த கொத்து:   ~a~%"
 
-#: guix/status.scm:560
+#: guix/status.scm:568
 #, scheme-format
 msgid "offloading build of ~a to '~a'"
-msgstr ""
+msgstr "~a வருவியின் பெயர்ப்பு '~a' நிலையத்திடம் ஒப்படைக்கப்படுகிறது"
 
-#: guix/http-client.scm:120
+#: guix/http-client.scm:125
 #, scheme-format
 msgid "following redirection to `~a'...~%"
 msgstr "`~a' க்கு வழி மாறுகிறது...~%"
 
-#: guix/http-client.scm:132
+#: guix/http-client.scm:137
 #, scheme-format
 msgid "~a: HTTP download failed: ~a (~s)"
 msgstr "~a: HTTP பதிவிறக்கம் தோல்வியுற்றது: ~a (~s)"
 
-#: guix/nar.scm:147
+#: guix/nar.scm:172
 msgid "signature is not a valid s-expression"
-msgstr ""
+msgstr "கையெழுத்து ஏற்கத்தகு S-கோவையல்ல"
 
-#: guix/nar.scm:156
+#: guix/nar.scm:181
 msgid "invalid signature"
 msgstr "ஏற்கத்தகாக் கையெழுத்து"
 
-#: guix/nar.scm:160
+#: guix/nar.scm:185
 msgid "invalid hash"
-msgstr ""
+msgstr "ஏற்கத்தகாக் கொத்து"
 
-#: guix/nar.scm:168
+#: guix/nar.scm:193
 msgid "unauthorized public key"
 msgstr ""
 
-#: guix/nar.scm:173
+#: guix/nar.scm:198
 msgid "corrupt signature data"
-msgstr ""
+msgstr "கெட்ட கையெழுத்துத் தரவு"
 
-#: guix/nar.scm:193
+#: guix/nar.scm:218
 msgid "corrupt file set archive"
 msgstr ""
 
-#: guix/nar.scm:203
+#: guix/nar.scm:228
 #, scheme-format
 msgid "importing file or directory '~a'...~%"
 msgstr "'~a' கோப்போ அடைவோ இறக்குமதி செய்யப்படுகிறது...~%"
 
-#: guix/nar.scm:214
+#: guix/nar.scm:239
 #, scheme-format
 msgid "found valid signature for '~a'~%"
 msgstr "'~a' க்கு ஏற்கத்தகு கையெழுத்து கிடைத்தது~%"
 
-#: guix/nar.scm:221
+#: guix/nar.scm:246
 msgid "imported file lacks a signature"
 msgstr "இறக்குமதி செய்யப்பட்ட கோப்பிற்குக் கையெழுத்தில்லை"
 
-#: guix/nar.scm:260
+#: guix/nar.scm:285
 msgid "invalid inter-file archive mark"
 msgstr ""
 
-#: guix/channels.scm:168
+#: guix/channels.scm:266
 msgid "unsupported '.guix-channel' version"
 msgstr ""
 
-#: guix/channels.scm:174
+#: guix/channels.scm:272
 msgid "invalid '.guix-channel' file"
 msgstr "ஏற்கத்தகா '.guix-channel' கோப்பு"
 
-#: guix/channels.scm:224
+#: guix/channels.scm:331
+msgid "Authenticating channel '~a', commits ~a to ~a (~h new commits)...~%"
+msgstr ""
+
+#: guix/channels.scm:382
+#, scheme-format
+msgid "channel '~a' lacks an introduction and cannot be authenticated~%"
+msgstr "~a அலைத்தடத்திற்கு முகவுரை இல்லை; அதனால் அதன் மெய்ப்பொருளை உறுதிபடுத்த இயலவில்லை~%"
+
+#: guix/channels.scm:387
+msgid ""
+"Add the missing introduction to your\n"
+"channels file to address the issue.  Alternatively, you can pass\n"
+"@option{--disable-authentication}, at the risk of running unauthenticated and\n"
+"thus potentially malicious code."
+msgstr ""
+
+#: guix/channels.scm:391
+#, scheme-format
+msgid "channel authentication disabled~%"
+msgstr "அலைத்தட உறுதிப்பாடு முடக்கப்பட்டது~%"
+
+#: guix/channels.scm:416
+#, scheme-format
+msgid "aborting update of channel '~a' to commit ~a, which is not a descendant of ~a"
+msgstr "~2@*~a வழித்தோன்றாததால் ~0@*~a அலைத்தடம் ~1@*~a பதிவுக்குத் திறமுயர்தல் நிறுத்தப்படுகிறது."
+
+#: guix/channels.scm:427
+msgid ""
+"Use @option{--allow-downgrades} to force\n"
+"this downgrade."
+msgstr ""
+"திறங்குறைப்பை அனுமதிக்க @option{--allow-downgrades} செயல்மாற்றியைப்\n"
+"பயன்படுத்துக."
+
+#: guix/channels.scm:431
+msgid ""
+"This could indicate that the channel has\n"
+"been tampered with and is trying to force a roll-back, preventing you from\n"
+"getting the latest updates.  If you think this is not the case, explicitly\n"
+"allow non-forward updates."
+msgstr ""
+
+#: guix/channels.scm:484
 #, scheme-format
 msgid "Updating channel '~a' from Git repository at '~a'...~%"
 msgstr "'~a' அலைத்தடம் '~a' Git களஞ்சியத்திலிருந்து புதுப்பிக்கப்படுகிறது...~%"
 
-#: guix/channels.scm:460
-msgid "'guix' channel is lacking"
+#: guix/channels.scm:505
+#, scheme-format
+msgid "pulled channel '~a' from a mirror of ~a, which might be stale~%"
 msgstr ""
 
-#: guix/channels.scm:462
+#: guix/channels.scm:733
+msgid "'guix' channel is lacking"
+msgstr "'guix' அலைத்தடம் இல்லை"
+
+#: guix/channels.scm:735
 msgid ""
 "Make sure your list of channels\n"
 "contains one channel named @code{guix} providing the core of Guix."
 msgstr ""
+"அலைத்தடங்களுளொன்று @code{guix} என்னும் பெயருடன் கீக்சின் கருவை வழங்குவதாகயிருக்க\n"
+"வேண்டும்."
 
-#: guix/channels.scm:664
+#: guix/channels.scm:964
 msgid "invalid channel news entry"
 msgstr "ஏற்கத்தகா அலைத்தடச் செய்திப் பதிவு"
 
-#: guix/channels.scm:682
+#: guix/channels.scm:982
 msgid "syntactically invalid channel news file"
-msgstr ""
+msgstr "ஏற்கத்தகாத் தொடரமைப்புடை அலைத்தடச் செய்திக் கோப்பு"
 
-#: guix/channels.scm:685
+#: guix/channels.scm:985
 msgid "invalid channel news file"
 msgstr "ஏற்கத்தகா அலைத்தடச் செய்திக் கோப்பு"
 
-#: guix/profiles.scm:515
+#: guix/profiles.scm:574
 msgid "unsupported manifest format"
 msgstr ""
 
-#: guix/profiles.scm:1767
+#: guix/profiles.scm:1935
 #, scheme-format
 msgid "while creating directory `~a': ~a"
 msgstr "`~a' அடைவை உருவாக்கும்பொழுது: ~a"
 
-#: guix/profiles.scm:1772
+#: guix/profiles.scm:1940
 #, scheme-format
 msgid "Please create the @file{~a} directory, with you as the owner."
-msgstr ""
+msgstr "@file{~a} உருவாக்கி உமதாக்குக."
 
-#: guix/profiles.scm:1781
+#: guix/profiles.scm:1949
 #, scheme-format
 msgid "directory `~a' is not owned by you"
-msgstr ""
+msgstr "`~a' அடைவு உமக்குரியதல்ல"
 
-#: guix/profiles.scm:1785
+#: guix/profiles.scm:1953
 #, scheme-format
 msgid "Please change the owner of @file{~a} to user ~s."
+msgstr "@file{~a} அடைவை ~s பயனர்க்குரியதாக்குக."
+
+#: guix/git.scm:136
+msgid "receiving objects"
 msgstr ""
 
-#: guix/git.scm:170
-msgid "long Git object ID is required"
+#: guix/git.scm:138
+msgid "indexing objects"
 msgstr ""
 
-#: guix/git.scm:229
+#: guix/git.scm:268
 #, scheme-format
-msgid "updating submodule '~a'...~%"
-msgstr ""
+msgid "Git error ~a~%"
+msgstr "Git பிழை ~a~%"
+
+#: guix/git.scm:270 guix/git.scm:438
+#, scheme-format
+msgid "Git error: ~a~%"
+msgstr "Git பிழை: ~a~%"
 
-#: guix/git.scm:242
+#: guix/git.scm:284
 #, scheme-format
-msgid "Support for submodules is missing; please upgrade Guile-Git.~%"
+msgid "updating submodule '~a'...~%"
 msgstr ""
 
-#: guix/git.scm:441
+#: guix/git.scm:532
 #, scheme-format
 msgid "cannot fetch commit ~a from ~a: ~a"
-msgstr ""
+msgstr "~1@*~a முகவரியிலுருந்து ~0@*~a பதிவை எடுக்க இயலவில்லை: ~2@*~a"
 
-#: guix/git.scm:444
+#: guix/git.scm:535
 #, scheme-format
 msgid "cannot fetch branch '~a' from ~a: ~a"
-msgstr ""
+msgstr "~1@*~a முகவரியிலிருந்து ~0@*~a கிளையை எடுக்க இயலவில்லை: ~2@*~a"
 
-#: guix/git.scm:447
+#: guix/git.scm:538
 #, scheme-format
 msgid "Git failure while fetching ~a: ~a"
-msgstr ""
+msgstr "~a முகவரியை எடுக்கும்பொழுது தோல்வி: ~a"
 
 #: guix/deprecation.scm:37
 #, scheme-format
 msgid "'~a' is deprecated, use '~a' instead~%"
-msgstr "'~a' வழக்கொழிந்தது, அதற்குப் பதிலாக '~a' யைப் பயன்படுத்துக~%"
+msgstr "~a வழக்கொழிந்தது, அதற்குப் பதிலாக ~a யைப் பயன்படுத்துக~%"
 
 #: guix/deprecation.scm:39
 #, scheme-format
 msgid "'~a' is deprecated~%"
-msgstr "'~a' வழக்கொழிந்தது~%"
+msgstr "~a வழக்கொழிந்தது~%"
 
 #. TRANSLATORS: 'derivation' must not be translated; it refers to the
 #. 'derivation' procedure.
-#: guix/derivations.scm:743
+#: guix/derivations.scm:775
 #, scheme-format
 msgid "in '~a': deprecated 'derivation' calling convention used~%"
 msgstr ""
 
 #: nix/nix-daemon/guix-daemon.cc:66
 msgid "guix-daemon -- perform derivation builds and store accesses"
-msgstr ""
+msgstr "guix-daemon -- வருவி பெயர்ப்புகளையும் கிடங்கணுகலையும் செய்"
 
 #: nix/nix-daemon/guix-daemon.cc:68
 msgid "This program is a daemon meant to run in the background.  It serves requests sent over a Unix-domain socket.  It accesses the store, and builds derivations on behalf of its clients."
 msgstr ""
+"இதுப் பின்னணியில் இயங்க வேண்டியது.  யூனிக்சு களப் பொருத்துவாய் வழியாக வரும்\n"
+"விண்ணப்பங்களை நிறைவேற்றும்.  வாங்கிகளுக்காக கிடங்கை அணுகவும் வருவிகளைப்\n"
+"பெயர்க்கவும் செய்யும்."
 
 #: nix/nix-daemon/guix-daemon.cc:95
 msgid "SYSTEM"
-msgstr "அமைப்பு"
+msgstr "<அமைப்பு>"
 
 #: nix/nix-daemon/guix-daemon.cc:96
 msgid "assume SYSTEM as the current system type"
-msgstr "<அமைப்பு>யை தற்போதைய அமைப்பு வகையாகக் கருது"
+msgstr "<அமைப்பைத்> தற்போதைய அமைப்பு வகையாகக் கருது"
 
 #: nix/nix-daemon/guix-daemon.cc:97 nix/nix-daemon/guix-daemon.cc:100
 msgid "N"
-msgstr ""
+msgstr "N"
 
 #: nix/nix-daemon/guix-daemon.cc:98
 msgid "use N CPU cores to build each derivation; 0 means as many as available"
-msgstr ""
+msgstr "ஒவ்வொரு வருவியையும் பெயர்க்க N கணிப்பிகளைப் பயன்படுத்து; 0 என்றால் எல்லாக் கணிப்பிகளையும் பயன்படுத்து"
 
 #: nix/nix-daemon/guix-daemon.cc:101
 msgid "allow at most N build jobs"
-msgstr "அதிகபட்சமாக N கட்டுப்பணிகளை அனுமதி"
+msgstr "N பெயர்ப்புகள் வரை அனுமதி"
 
 #: nix/nix-daemon/guix-daemon.cc:102 nix/nix-daemon/guix-daemon.cc:104
 msgid "SECONDS"
-msgstr "நொடிகள்"
+msgstr "<நொடிகள்>"
 
 #: nix/nix-daemon/guix-daemon.cc:103
 msgid "mark builds as failed after SECONDS of activity"
-msgstr ""
+msgstr "<நொடிகுளக்கு> மேலான செயற்பாட்டைக் பெயர்ப்புத் தோல்வியெனக் கருது"
 
 #: nix/nix-daemon/guix-daemon.cc:105
 msgid "mark builds as failed after SECONDS of silence"
-msgstr ""
+msgstr "<நொடிகளுக்கு> மேலான அமைதியைக் பெயர்ப்புத் தோல்வியெனக் கருது"
 
 #: nix/nix-daemon/guix-daemon.cc:107
 msgid "disable chroot builds"
-msgstr ""
+msgstr "மாறுவேருடன் (chroot) பெயர்க்காதே"
 
 #: nix/nix-daemon/guix-daemon.cc:108
 msgid "DIR"
-msgstr "அடைவு"
+msgstr "<அடைவு>"
 
 #: nix/nix-daemon/guix-daemon.cc:109
 msgid "add DIR to the build chroot"
-msgstr ""
+msgstr "<அடைவை> பெயர்ப்பு மாறுவேருக்குள் சேர்"
 
 #: nix/nix-daemon/guix-daemon.cc:110
 msgid "GROUP"
-msgstr ""
+msgstr "<குழு>"
 
 #: nix/nix-daemon/guix-daemon.cc:111
 msgid "perform builds as a user of GROUP"
-msgstr ""
+msgstr "குழுவின் உறுப்பினராகப் பெயர்"
 
 #: nix/nix-daemon/guix-daemon.cc:113
 msgid "do not use substitutes"
-msgstr ""
+msgstr "மாற்றீடுகளைப் பயன்படுத்தாதே"
 
 #: nix/nix-daemon/guix-daemon.cc:114
 msgid "URLS"
-msgstr "முகவரிகள்"
+msgstr "<முகவரிகள்>"
 
 #: nix/nix-daemon/guix-daemon.cc:115
 msgid "use URLS as the default list of substitute providers"
-msgstr ""
+msgstr "<முகவரிகளை> இயல்பிருப்பு மாற்றீடு வழங்கிகளாகக் கருது"
 
 #: nix/nix-daemon/guix-daemon.cc:117 nix/nix-daemon/guix-daemon.cc:120
 msgid "do not attempt to offload builds"
-msgstr ""
+msgstr "பெயர்ப்புகளைப் பிற நிலையங்களிடம் ஒப்படைக்காதே"
 
 #: nix/nix-daemon/guix-daemon.cc:122
 msgid "cache build failures"
@@ -4914,23 +5860,23 @@ msgstr ""
 
 #: nix/nix-daemon/guix-daemon.cc:124
 msgid "build each derivation N times in a row"
-msgstr "ஓவ்வொரு வருவியையும் N முறை கட்டு"
+msgstr "ஓவ்வொரு வருவியையும் N முறை பெயர்"
 
 #: nix/nix-daemon/guix-daemon.cc:126
 msgid "do not keep build logs"
-msgstr ""
+msgstr "பெயர்குறிப்பைப் பதிக்காதே"
 
 #: nix/nix-daemon/guix-daemon.cc:129
 msgid "disable compression of the build logs"
-msgstr ""
+msgstr "பெயர்குறிப்பை இறுக்காதே"
 
 #: nix/nix-daemon/guix-daemon.cc:131
 msgid "use the specified compression type for build logs"
-msgstr ""
+msgstr "பெயர்குறிப்பை இறுக்க குறிப்பிடப்பட்டுள்ள இறுக்க வகையைப் பயன்படுத்து"
 
 #: nix/nix-daemon/guix-daemon.cc:136
 msgid "disable automatic file \"deduplication\" in the store"
-msgstr ""
+msgstr "கிடங்கில் கோப்பு இரட்டிப்பைத் தவிர்க்காதே"
 
 #: nix/nix-daemon/guix-daemon.cc:146
 msgid "impersonate Linux 2.6"
@@ -4938,20 +5884,29 @@ msgstr "Linux 2.6 போல் நடி"
 
 #: nix/nix-daemon/guix-daemon.cc:150
 msgid "tell whether the GC must keep outputs of live derivations"
-msgstr ""
+msgstr "குப்பைக்கூட்டி பயன்பாட்டிலுள்ள வருவிகளின் வெளியீடுகளை கூட்டாமல் விட வேண்டுமா"
 
 #: nix/nix-daemon/guix-daemon.cc:153
 msgid "tell whether the GC must keep derivations corresponding to live outputs"
-msgstr ""
+msgstr "குப்பைக்கூட்டி பயன்பாட்டிலுள்ள வெளியீடுகளை உருவாக்கிய வருவிகளைக் கூட்டாமல் விட வேண்டுமா"
 
 #: nix/nix-daemon/guix-daemon.cc:156
 msgid "SOCKET"
-msgstr ""
+msgstr "<பொருத்துவாய்>"
 
 #: nix/nix-daemon/guix-daemon.cc:157
 msgid "listen for connections on SOCKET"
-msgstr ""
+msgstr "<பொருத்துவாயில்> இணைப்புகளுக்குக் கவனி"
 
 #: nix/nix-daemon/guix-daemon.cc:159
 msgid "produce debugging output"
-msgstr ""
+msgstr "வழுநீக்கத்திற்குத் துணையான செய்திகளை வெளியிடு"
+
+#~ msgid "error: invalid signature: ~a~%"
+#~ msgstr "பிழை: ஏற்கத்தகா கையெழுத்து: ~a~%"
+
+#~ msgid "~a: error: device '~a' not found: ~a~%"
+#~ msgstr "~a: பிழை: '~a' கருவி கிடைக்கவில்லை: ~a~%"
+
+#~ msgid "Run @code{~a ... | less} to view all the results."
+#~ msgstr "எல்லாத் தேடல் முடிவுகளையும் காண @code{~a ... | less} யை இயக்குக."
diff --git a/po/packages/Makevars b/po/packages/Makevars
index c29f3d306c..39366fbee9 100644
--- a/po/packages/Makevars
+++ b/po/packages/Makevars
@@ -12,9 +12,9 @@ XGETTEXT_OPTIONS =				\
   --language=Scheme --from-code=UTF-8		\
   --keyword=synopsis --keyword=description
 
-COPYRIGHT_HOLDER = Ludovic Courtès
+COPYRIGHT_HOLDER = the authors of Guix (msgids)
 
-MSGID_BUGS_ADDRESS = ludo@gnu.org
+MSGID_BUGS_ADDRESS = bug-guix@gnu.org
 
 EXTRA_LOCALE_CATEGORIES =
 
diff --git a/po/packages/de.po b/po/packages/de.po
index 29096069d2..73ddef16aa 100644
--- a/po/packages/de.po
+++ b/po/packages/de.po
@@ -1,15 +1,15 @@
 # German translation of guix-packages.
-# Copyright (C) 2014 Free Software Foundation, Inc.
+# Copyright (C) 2012-2020 the authors of Guix (msgids)
 # This file is distributed under the same license as the guix package.
 # Mario Blättermann <mario.blaettermann@gmail.com>, 2014.
 # Florian Pelz <pelzflorian@pelzflorian.de>, 2018, 2020.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: guix-packages 1.1.0-pre2\n"
-"Report-Msgid-Bugs-To: ludo@gnu.org\n"
-"POT-Creation-Date: 2020-04-09 18:27+0200\n"
-"PO-Revision-Date: 2020-04-11 12:25+0200\n"
+"Project-Id-Version: guix-packages 1.2.0-pre3\n"
+"Report-Msgid-Bugs-To: bug-guix@gnu.org\n"
+"POT-Creation-Date: 2020-11-05 17:27+0100\n"
+"PO-Revision-Date: 2020-11-09 01:09+0100\n"
 "Last-Translator: Florian Pelz <pelzflorian@pelzflorian.de>\n"
 "Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
 "Language: de\n"
@@ -35,11 +35,11 @@ msgid ""
 "your daily work, personal needs, or for just some good old typing fun."
 msgstr "AbiWord entwickelt sich schnell zu einem Textverarbeitungsprogramm auf dem Stand der Technik, mit zahlreichen Funktionalitäten, die nützlich sind für Ihre tägliche Arbeit, privaten Gebrauch oder schlicht für die Freude am Tippen."
 
-#: gnu/packages/aspell.scm:89 gnu/packages/libreoffice.scm:833
+#: gnu/packages/aspell.scm:85 gnu/packages/libreoffice.scm:846
 msgid "Spell checker"
 msgstr "Rechtschreibprüfung"
 
-#: gnu/packages/aspell.scm:91
+#: gnu/packages/aspell.scm:87
 msgid ""
 "Aspell is a spell-checker which can be used either as a library or as\n"
 "a standalone program.  Notable features of Aspell include its full support of\n"
@@ -47,62 +47,167 @@ msgid ""
 "dictionaries, including personal ones."
 msgstr "Aspell ist ein Programm zur Rechtschreibprüfung, das entweder als eine Programmbibliothek oder als eigenständiges Programm benutzt werden kann.  Nennenswerte Funktionalitäten von Aspell sind unter anderem seine vollständige Unterstützung für mit der UTF-8-Kodierung geschriebene Dokumente und seine Fähigkeit, mehrere Wörterbücher zu benutzen, einschließlich eigener Wörterbücher."
 
-#: gnu/packages/aspell.scm:140
+#: gnu/packages/aspell.scm:136
 msgid "This package provides a dictionary for the GNU Aspell spell checker."
 msgstr "Dieses Paket bietet ein Wörterbuch für das GNU-Aspell-Rechtschreibprüfprogramm."
 
-#: gnu/packages/aspell.scm:418 gnu/packages/libreoffice.scm:883
+#: gnu/packages/aspell.scm:425 gnu/packages/libreoffice.scm:896
+#: gnu/packages/libreoffice.scm:969
 msgid ""
 "This package provides a dictionary for the Hunspell spell-checking\n"
 "library."
 msgstr "Dieses Paket bietet ein Wörterbuch für die Hunspell-Rechtschreibbibliothek."
 
-#: gnu/packages/aspell.scm:436
+#: gnu/packages/aspell.scm:443
 msgid "Hunspell dictionary for English"
 msgstr "Hunspell-Wörterbuch für Englisch"
 
-#: gnu/packages/aspell.scm:440
+#: gnu/packages/aspell.scm:447
 msgid "Hunspell dictionary for Australian English"
 msgstr "Hunspell-Wörterbuch für Australisches Englisch"
 
-#: gnu/packages/aspell.scm:444
+#: gnu/packages/aspell.scm:451
 msgid "Hunspell dictionary for Canadian English"
 msgstr "Hunspell-Wörterbuch für Kanadisches Englisch"
 
-#: gnu/packages/aspell.scm:448
+#: gnu/packages/aspell.scm:455
 msgid "Hunspell dictionary for British English, with -ise endings"
 msgstr "Hunspell-Wörterbuch für Britisches Englisch mit -ise-Endungen"
 
-#: gnu/packages/aspell.scm:452
+#: gnu/packages/aspell.scm:459
 msgid "Hunspell dictionary for British English, with -ize endings"
 msgstr "Hunspell-Wörterbuch für Britisches Englisch mit -ize-Endungen"
 
-#: gnu/packages/aspell.scm:456
+#: gnu/packages/aspell.scm:463
 msgid "Hunspell dictionary for United States English"
 msgstr "Hunspell-Wörterbuch für US-Amerikanisches Englisch"
 
-#: gnu/packages/audio.scm:137 gnu/packages/audio.scm:156
+#: gnu/packages/aspell.scm:506
+msgid "Interactive spell-checking tool for Unix"
+msgstr ""
+
+#: gnu/packages/aspell.scm:507
+msgid ""
+"Ispell is an interactive spell-checking tool supporting many\n"
+"European languages."
+msgstr ""
+
+#: gnu/packages/audio.scm:185
+msgid "Embedded Audio Acceleration"
+msgstr ""
+
+#: gnu/packages/audio.scm:186
+msgid ""
+"OpenSLES is a royalty-free, cross-platform,\n"
+"hardware-accelerated audio API tuned for embedded systems.  It provides a\n"
+"standardized, high-performance, low-latency method to access audio\n"
+"functionality for developers of native applications on embedded mobile\n"
+"multimedia devices, enabling straightforward cross-platform deployment of\n"
+"hardware and software audio capabilities, reducing implementation effort, and\n"
+"promoting the market for advanced audio."
+msgstr ""
+
+#: gnu/packages/audio.scm:221
+msgid "Software Synthesizer"
+msgstr "Software-Synthesizer"
+
+#: gnu/packages/audio.scm:222
+msgid ""
+"WildMIDI is a simple software midi player which has a core\n"
+"softsynth library that can be use with other applications."
+msgstr ""
+
+#: gnu/packages/audio.scm:245
+msgid "WebRTC's Audio Processing Library"
+msgstr ""
+
+#: gnu/packages/audio.scm:246
+msgid ""
+"WebRTC-Audio-Processing library based on Google's\n"
+"implementation of WebRTC."
+msgstr ""
+
+#: gnu/packages/audio.scm:265
+msgid "VisualOn AAC Encoder"
+msgstr ""
+
+#: gnu/packages/audio.scm:266
+msgid ""
+"VO-AACENC is the VisualOn implementation of Advanced Audio\n"
+"Coding (AAC) encoder."
+msgstr ""
+
+#: gnu/packages/audio.scm:294
+msgid "ALSA interfacing library"
+msgstr ""
+
+#: gnu/packages/audio.scm:295
+msgid ""
+"TinyALSA is a small library to interface with ALSA in the\n"
+"Linux kernel."
+msgstr ""
+
+#: gnu/packages/audio.scm:339
+msgid "Audio tracking library"
+msgstr ""
+
+#: gnu/packages/audio.scm:340
+msgid ""
+"LibOpenMPT is a cross-platform C++ and C module playback\n"
+"library.  It is based on the player code of the Open ModPlug Tracker project."
+msgstr ""
+
+#: gnu/packages/audio.scm:371
+msgid "Open Fingerprint Architecture"
+msgstr ""
+
+#: gnu/packages/audio.scm:372
+msgid ""
+"LibOFA is an audio fingerprint library, created and provided\n"
+"by MusicIP."
+msgstr ""
+
+#: gnu/packages/audio.scm:395
+msgid "Freeware Advanced Audio Coder"
+msgstr ""
+
+#: gnu/packages/audio.scm:396
+msgid "FAAC is an MPEG-4 and MPEG-2 AAC encoder."
+msgstr "FAAC ist ein Encoder für MPEG-4 und MPEG-2 AAC."
+
+#: gnu/packages/audio.scm:424
+msgid "MIDI to WAVE converter library"
+msgstr ""
+
+#: gnu/packages/audio.scm:425
+msgid ""
+"LibTiMidity is a MIDI to WAVE converter library that uses\n"
+"Gravis Ultrasound-compatible patch files to generate digital audio data from\n"
+"General MIDI files."
+msgstr ""
+
+#: gnu/packages/audio.scm:449 gnu/packages/audio.scm:468
 msgid "Adaptive Multi Rate Codec"
 msgstr ""
 
-#: gnu/packages/audio.scm:138
+#: gnu/packages/audio.scm:450
 msgid ""
 "VO-AMR is a library of VisualOn implementation of\n"
 "Adaptive Multi Rate Narrowband and Wideband (AMR-NB and AMR-WB) speech codec."
 msgstr ""
 
-#: gnu/packages/audio.scm:157
+#: gnu/packages/audio.scm:469
 msgid ""
 "OpenCore-AMR is a library of OpenCORE Framework\n"
 "implementation of Adaptive Multi Rate Narrowband and Wideband\n"
 "(AMR-NB and AMR-WB) speech codec."
 msgstr ""
 
-#: gnu/packages/audio.scm:203
+#: gnu/packages/audio.scm:528
 msgid "Realtime modular synthesizer and effect processor"
 msgstr "Echtzeitfähiger modularer Synthesizer und Effektverarbeiter"
 
-#: gnu/packages/audio.scm:205
+#: gnu/packages/audio.scm:530
 msgid ""
 "AlsaModularSynth is a digital implementation of a classical analog\n"
 "modular synthesizer system.  It uses virtual control voltages to control the\n"
@@ -111,11 +216,11 @@ msgid ""
 "Filter) modules follow the convention of 1V / Octave."
 msgstr "AlsaModularSynth ist eine digitale Implementierung eines klassischen analogen modularen Synthesizersystems.  Es benutzt virtuelle Steuerungsspannungen, um die Modulparameter zu steuern.  Die Steuerungsspannungen, die die Frequenz z.B. der Module VCO (Voltage Controlled Oscillator, spannungsgesteuerter Oszillator) und VCF (Voltage ControlledFilter, spannungsgesteuertes Filter) steuern, folgen der Konvention von 1V pro Oktave."
 
-#: gnu/packages/audio.scm:244
+#: gnu/packages/audio.scm:569
 msgid "Library for audio labelling"
 msgstr "Programmbibliothek für Audio-Labelling"
 
-#: gnu/packages/audio.scm:246
+#: gnu/packages/audio.scm:571
 msgid ""
 "aubio is a tool designed for the extraction of annotations from audio\n"
 "signals.  Its features include segmenting a sound file before each of its\n"
@@ -123,33 +228,33 @@ msgid ""
 "streams from live audio."
 msgstr "aubio ist ein Werkzeug für die Extraktion von Annotationen aus Audio-Signalen.  Zu seinen Funktionalitäten gehört die Segmentierung einer Ton-Datei vor jeder Anschwellung, Tonhöhenbestimmung, Beat-Extraktion und das Erstellen von MIDI-Strömen aus Live-Audio."
 
-#: gnu/packages/audio.scm:370
+#: gnu/packages/audio.scm:695
 msgid "Digital audio workstation"
 msgstr "Digital Audio Workstation"
 
-#: gnu/packages/audio.scm:372
+#: gnu/packages/audio.scm:697
 msgid ""
 "Ardour is a multi-channel digital audio workstation, allowing users to\n"
 "record, edit, mix and master audio and MIDI projects.  It is targeted at audio\n"
 "engineers, musicians, soundtrack editors and composers."
 msgstr "Ardour ist eine mehrkanalige Digital Audio Workstation, die es Nutzern ermöglicht, Audio- und MIDI-Projekte aufzunehmen, zu bearbeiten, zu mischen und zu mastern.  Seine Zielgruppe sind Tontechniker, Musiker, Soundtrack-Verfasser und Komponisten."
 
-#: gnu/packages/audio.scm:511
+#: gnu/packages/audio.scm:836
 msgid "Software for recording and editing sounds"
 msgstr "Software zum Aufnehmen und Bearbeiten von Ton"
 
-#: gnu/packages/audio.scm:513
+#: gnu/packages/audio.scm:838
 msgid ""
 "Audacity is a multi-track audio editor designed for recording, playing\n"
 "and editing digital audio.  It features digital effects and spectrum analysis\n"
 "tools."
 msgstr "Audacity ist ein mehrspuriges Audiobearbeitungsprogramm zum Aufnehmen, Abspielen und Bearbeiten von digitalen Tondateien.  Es bietet digitale Effekte und Spektrumsanalysewerkzeuge."
 
-#: gnu/packages/audio.scm:556
+#: gnu/packages/audio.scm:893
 msgid "Library to handle various audio file formats"
 msgstr ""
 
-#: gnu/packages/audio.scm:557
+#: gnu/packages/audio.scm:894
 msgid ""
 "This is an open-source version of SGI's audiofile library.\n"
 "It provides a uniform programming interface for processing of audio data to\n"
@@ -160,22 +265,22 @@ msgid ""
 "G.711 mu-law and A-law."
 msgstr ""
 
-#: gnu/packages/audio.scm:597
+#: gnu/packages/audio.scm:934
 msgid "Pitch-correction LADSPA audio plugin"
 msgstr ""
 
-#: gnu/packages/audio.scm:599
+#: gnu/packages/audio.scm:936
 msgid ""
 "Autotalent is a LADSPA plugin for real-time pitch-correction.  Among its\n"
 "controls are allowable notes, strength of correction, LFO for vibrato and\n"
 "formant warp."
 msgstr ""
 
-#: gnu/packages/audio.scm:641
+#: gnu/packages/audio.scm:978
 msgid "Tonewheel organ synthesizer"
 msgstr "Tonrad-Orgel-Synthesizer"
 
-#: gnu/packages/audio.scm:643
+#: gnu/packages/audio.scm:980
 msgid ""
 "AZR-3 is a port of the free VST plugin AZR-3.  It is a tonewheel organ\n"
 "with drawbars, distortion and rotating speakers.  The organ has three\n"
@@ -184,11 +289,11 @@ msgid ""
 "plugins are provided."
 msgstr "AZR-3 ist eine Portierung des freien VST-Plugins AZR-3.  Es handelt sich um eine Tonrad-Orgel mit Zugriegeln, Verzerrung und rotierenden Lautsprechern.  Die Orgel hat drei Teile, zwei mehrtönige mit neun Zugriegeln und einen eintönigen Bass-Teil mit fünf Zugriegeln.  Eine eigenständige JACK-Anwendung und LV2-Plugins stehen zur Verfügung."
 
-#: gnu/packages/audio.scm:680
+#: gnu/packages/audio.scm:1017
 msgid "Audio plug-in pack for LV2 and JACK environments"
 msgstr "Audio-Plugin-Sammlung für LV2- und JACK-Umgebungen"
 
-#: gnu/packages/audio.scm:682
+#: gnu/packages/audio.scm:1019
 msgid ""
 "Calf Studio Gear is an audio plug-in pack for LV2 and JACK environments.\n"
 "The suite contains lots of effects (delay, modulation, signal processing,\n"
@@ -197,41 +302,41 @@ msgid ""
 "tools (analyzer, mono/stereo tools, crossovers)."
 msgstr "Calf Studio Gear ist eine Sammlung von Audio-Plugins für LV2- und JACK-Umgebungen.  Die Zusammenstellung enthält zahlreiche Effekte (Verzögerung, Modulation, Signalverarbeitung, Filter, Entzerrer, Dynamik, Verzerrung und Mastering-Effekte), Instrumente (SF2-Spieler, Orgelsimulator und einen monophonen Synthesizer) und Werkzeuge (Analyzer, Mono-/Stereo-Werkzeuge, Crossover)."
 
-#: gnu/packages/audio.scm:725
-msgid "LV2 port of the CAPS audio plugin colection"
+#: gnu/packages/audio.scm:1062
+msgid "LV2 port of the CAPS audio plugin collection"
 msgstr ""
 
-#: gnu/packages/audio.scm:727
+#: gnu/packages/audio.scm:1064
 msgid ""
 "LV2 port of CAPS, a collection of audio plugins comprising basic virtual\n"
 "guitar amplification and a small range of classic effects, signal processors and\n"
 "generators of mostly elementary and occasionally exotic nature."
 msgstr ""
 
-#: gnu/packages/audio.scm:764
+#: gnu/packages/audio.scm:1101
 msgid "LV2 plugins for live use"
 msgstr "LV2-Plugins für Liveaufnahmen"
 
-#: gnu/packages/audio.scm:766
+#: gnu/packages/audio.scm:1103
 msgid ""
 "The infamous plugins are a collection of LV2 audio plugins for live\n"
 "performances.  The plugins include a cellular automaton synthesizer, an\n"
 "envelope follower, distortion effects, tape effects and more."
 msgstr "Diese berüchtigten Plugins sind eine Sammlung von LV2-Audio-Plugins für Live-Darbietungen.  Zu den Plugins gehören ein Zellulärer-Automaten-Synthesizer, ein Envelope Follower, Verzerrungseffekte, Tape-Effekte und mehr."
 
-#: gnu/packages/audio.scm:797
+#: gnu/packages/audio.scm:1134
 msgid "The SWH Plugins package for the LADSPA plugin system"
 msgstr ""
 
-#: gnu/packages/audio.scm:798
+#: gnu/packages/audio.scm:1135
 msgid "This package provides Steve Harris's LADSPA plugins."
 msgstr "Dieses Paket bietet Steve Harris’ LADSPA-Plugin für einen Stereo-Nachhall-Effekt."
 
-#: gnu/packages/audio.scm:838
+#: gnu/packages/audio.scm:1175
 msgid "SWH plugins in LV2 format"
 msgstr "SWH-Plugins im LV2-Format"
 
-#: gnu/packages/audio.scm:840
+#: gnu/packages/audio.scm:1177
 msgid ""
 "Swh-plugins-lv2 is a collection of audio plugins in LV2 format.  Plugin\n"
 "classes include: dynamics (compressor, limiter), time (delay, chorus,\n"
@@ -239,42 +344,56 @@ msgid ""
 "emulation (valve, tape), bit fiddling (decimator, pointer-cast), etc."
 msgstr "Swh-plugins-lv2 ist eine Sammlung von Audio-Plugins im LV2-Format.  Zu den Pluginkategorien gehören Dynamik (Kompressor, Limiter), Zeit (Verzögerung, Chorus, Flanger), Ringmodulator, Verzerrung, Filter, Tonhöhenabweichung, Oszillatoren, Emulation (Ventil, Band), Bit-Fiddling (Decimator, Pointer-Cast) usw."
 
-#: gnu/packages/audio.scm:874
+#: gnu/packages/audio.scm:1244
+msgid "Sound Synthesis with Physical Models"
+msgstr ""
+
+#: gnu/packages/audio.scm:1245
+msgid ""
+"Tao is a software package for sound synthesis using physical\n"
+"models.  It provides a virtual acoustic material constructed from masses and\n"
+"springs which can be used as the basis for building quite complex virtual\n"
+"musical instruments.  Tao comes with a synthesis language for creating and\n"
+"playing instruments and a C++ API for those who would like to use it as an\n"
+"object library."
+msgstr ""
+
+#: gnu/packages/audio.scm:1281
 msgid "Sound and music computing system"
 msgstr "Ton- und Musikrechensystem"
 
-#: gnu/packages/audio.scm:876
+#: gnu/packages/audio.scm:1283
 msgid ""
 "Csound is a user-programmable and user-extensible sound processing\n"
 "language and software synthesizer."
 msgstr "Csound ist eine nutzerprogrammierbare und nutzererweiterbare Tonverarbeitungssprache und ein Software-Synthesizer."
 
-#: gnu/packages/audio.scm:918 gnu/packages/audio.scm:3219
+#: gnu/packages/audio.scm:1325 gnu/packages/audio.scm:3763
 msgid "C++ wrapper around the ALSA API"
 msgstr "C++-Wrapper um die ALSA-Programmierschnittstelle"
 
-#: gnu/packages/audio.scm:920
+#: gnu/packages/audio.scm:1327
 msgid ""
 "clalsadrv is a C++ wrapper around the ALSA API simplifying access to\n"
 "ALSA PCM devices."
 msgstr "clalsadrv ist ein C++-Wrapper um die ALSA-Programmierschnittstelle, der den Zugang zu ALSA-PCM-Geräten vereinfacht."
 
-#: gnu/packages/audio.scm:957
+#: gnu/packages/audio.scm:1364
 msgid "LADSPA ambisonics plugins"
 msgstr "LADSPA-Ambisonics-Plugins"
 
-#: gnu/packages/audio.scm:959
+#: gnu/packages/audio.scm:1366
 msgid ""
 "The AMB plugins are a set of LADSPA ambisonics plugins, mainly to be\n"
 "used within Ardour.  Features include: mono and stereo to B-format panning,\n"
 "horizontal rotator, square, hexagon and cube decoders."
 msgstr "Die AMB-Plugins sind eine Reihe von LADSPA-Ambisonics-Plugins und hauptsächlich für die Nutzung mit Ardour gedacht.  Sie bieten Panning von Mono oder Stereo zum B-Format, horizontalen Rotierer, Quadrat-, Sechseck und Würfel-Decoder."
 
-#: gnu/packages/audio.scm:994
+#: gnu/packages/audio.scm:1401
 msgid "Chorus, phaser, and vintage high-pass and low-pass filters"
 msgstr "Chorus-, Phaser- und Vintage-Hochpass und -Tiefpass-Filter"
 
-#: gnu/packages/audio.scm:996
+#: gnu/packages/audio.scm:1403
 msgid ""
 "This package provides various LADSPA plugins.  @code{cs_chorus} and\n"
 "@code{cs_phaser} provide chorus and phaser effects, respectively;\n"
@@ -286,21 +405,21 @@ msgstr ""
 "Dieses Paket bietet verschiedene LADSPA-Plugins.  @code{cs_chorus} und\n"
 "@code{cs_phaser} bieten jeweils Chorus- und Phaser-Effekte; @code{mvclpf24} bietet vier Implementierungen des Tiefpassfilters, der in Vintage-Moog-Synthesizern benutzt wird; @code{mvchpf24} basiert auf dem spannungsgesteuerten Hochpassfilter von Robert Moog.  Die Filter versuchen, die nicht-linearen Schaltkreiselemente ihrer ursprünglichen analogen Gegenstücke zu emulieren."
 
-#: gnu/packages/audio.scm:1034
+#: gnu/packages/audio.scm:1441
 msgid "LADSPA reverb plugin"
 msgstr "LADSPA-Nachhall-Plugin"
 
-#: gnu/packages/audio.scm:1036
+#: gnu/packages/audio.scm:1443
 msgid ""
 "This package provides a stereo reverb LADSPA plugin based on the\n"
 "well-known greverb."
 msgstr "Dieses Paket bietet ein Stereo-Nachhall-LADSPA-Plugin basierend auf dem wohlbekannten greverb."
 
-#: gnu/packages/audio.scm:1070
+#: gnu/packages/audio.scm:1477
 msgid "LADSPA four-band parametric equalizer plugin"
 msgstr "LADSPA-Vierband-Parametrischer-Equalizer-Plugin"
 
-#: gnu/packages/audio.scm:1072
+#: gnu/packages/audio.scm:1479
 msgid ""
 "This package provides a LADSPA plugin for a four-band parametric\n"
 "equalizer.  Each section has an active/bypass switch, frequency, bandwidth and\n"
@@ -320,21 +439,21 @@ msgstr ""
 "\n"
 "Alle Umschalter und Steuerungen werden intern geglättet, damit sie @i{live} ohne Klick- oder Reißgeräusche benutzt werden können.  Dadurch ist das Plugin in Systemen wie z.B. Ardour, die die Automatisierung von Plugin-Steuerungs-Ports ermöglichen, oder auf Bühnen nutzbar."
 
-#: gnu/packages/audio.scm:1115
+#: gnu/packages/audio.scm:1522
 msgid "LADSPA stereo width plugin"
 msgstr "LADSPA-Stereobreiten-Plugin"
 
-#: gnu/packages/audio.scm:1117
+#: gnu/packages/audio.scm:1524
 msgid ""
 "This package provides a LADSPA plugin to manipulate the stereo width of\n"
 "audio signals."
 msgstr "Dieses Paket bietet ein LADSPA-Plugin, um die Stereobreite von Audiosignalen zu ändern."
 
-#: gnu/packages/audio.scm:1152
+#: gnu/packages/audio.scm:1559
 msgid "LADSPA plugin for synthesizer oscillators"
 msgstr "LADSPA-Plugin für Synthesizer-Oszillatoren"
 
-#: gnu/packages/audio.scm:1154
+#: gnu/packages/audio.scm:1561
 msgid ""
 "The @code{blvco} LADSPA plugin provides three anti-aliased oscillators:\n"
 "\n"
@@ -359,29 +478,29 @@ msgstr ""
 "\n"
 "Alle Oszillatoren sind tiefpassgefiltert, um Wellenformen ähnlich der Ausgabe von Analog-Synthesizern wie dem Moog Voyager zu bieten."
 
-#: gnu/packages/audio.scm:1196
+#: gnu/packages/audio.scm:1603
 msgid "LADSPA Autowah effect plugin"
 msgstr "LADSPA-Autowah-Effekt-Plugin"
 
-#: gnu/packages/audio.scm:1198
+#: gnu/packages/audio.scm:1605
 msgid ""
 "This package provides a LADSPA plugin for a Wah effect with envelope\n"
 "follower."
 msgstr "Dieses Paket bietet ein LADSPA-Plugin für einen Wah-Effekt mit Envelope-Follower."
 
-#: gnu/packages/audio.scm:1232
+#: gnu/packages/audio.scm:1639
 msgid "LADSPA stereo reverb plugin"
 msgstr "LADSPA-Stereo-Nachhall-Plugin"
 
-#: gnu/packages/audio.scm:1234
+#: gnu/packages/audio.scm:1641
 msgid "This package provides a LADSPA plugin for a stereo reverb effect."
 msgstr "Dieses Paket bietet ein LADSPA-Plugin für einen Stereo-Nachhall-Effekt."
 
-#: gnu/packages/audio.scm:1273
+#: gnu/packages/audio.scm:1680
 msgid "SoundFont synthesizer"
 msgstr "SoundFont-Synthesizer"
 
-#: gnu/packages/audio.scm:1275
+#: gnu/packages/audio.scm:1682
 msgid ""
 "FluidSynth is a real-time software synthesizer based on the SoundFont 2\n"
 "specifications.  FluidSynth reads and handles MIDI events from the MIDI input\n"
@@ -389,41 +508,37 @@ msgid ""
 "also play midifiles using a Soundfont."
 msgstr "FluidSynth ist ein Echtzeit-Software-Synthesizer basierend auf den SoundFont-2-Spezifikationen.  FluidSynth liest und behandelt MIDI-Ereignisse von dem MIDI-Eingabegerät.  Es ist das Software-Analogon eines MIDI-Synthesizers.  FluidSynth kann auch Midifiles unter Benutzung eines Soundfonts abspielen."
 
-#: gnu/packages/audio.scm:1311
+#: gnu/packages/audio.scm:1719
 msgid "MPEG-4 and MPEG-2 AAC decoder"
 msgstr "MPEG-4- und MPEG-2-AAC-Decoder"
 
-#: gnu/packages/audio.scm:1313
-msgid ""
-"FAAD2 is an MPEG-4 and MPEG-2 AAC decoder supporting LC, Main, LTP, SBR,\n"
-"PS, and DAB+."
-msgstr ""
-"FAAD2 ist ein MPEG-4- und MPEG-2-AAC-Decoder, der LC, Main, LTP, SBR,\n"
-"PS und DAB+ unterstützt."
+#: gnu/packages/audio.scm:1721
+msgid "FAAD2 is an MPEG-4 and MPEG-2 AAC decoder supporting LC, Main, LTP, SBR, -PS, and DAB+."
+msgstr "FAAD2 ist ein MPEG-4- und MPEG-2-AAC-Decoder, der LC, Main, LTP, SBR, PS und DAB+ unterstützt."
 
-#: gnu/packages/audio.scm:1353
+#: gnu/packages/audio.scm:1760
 msgid "Signal processing language"
 msgstr "Signalverarbeitungssprache"
 
-#: gnu/packages/audio.scm:1355
+#: gnu/packages/audio.scm:1762
 msgid "Faust is a programming language for realtime audio signal processing."
 msgstr "Faust ist eine Programmiersprache für Echtzeit-Audiosignalverarbeitung."
 
-#: gnu/packages/audio.scm:1422
+#: gnu/packages/audio.scm:1829
 msgid "GUS compatible patches for MIDI players"
 msgstr "GUS-kompatible Patches für MIDI-Abspieler"
 
-#: gnu/packages/audio.scm:1424
+#: gnu/packages/audio.scm:1831
 msgid ""
 "FreePats is a project to create a free and open set of GUS compatible\n"
 "patches that can be used with softsynths such as Timidity and WildMidi."
 msgstr "FreePats ist ein Projekt, eine freie und offene Sammlung von GUS-kompatiblen Patches zu erstellen, die mit Softsynths wie Timidity und WildMidi benutzt werden können."
 
-#: gnu/packages/audio.scm:1489
+#: gnu/packages/audio.scm:1883
 msgid "Virtual guitar amplifier"
 msgstr "Virtueller Gitarrenverstärker"
 
-#: gnu/packages/audio.scm:1490
+#: gnu/packages/audio.scm:1884
 msgid ""
 "Guitarix is a virtual guitar amplifier running JACK.\n"
 "Guitarix takes the signal from your guitar as a mono-signal from your sound\n"
@@ -436,11 +551,11 @@ msgstr ""
 "Guitarix ist ein virtueller Gitarrenverstärker für JACK.\n"
 "Guitarix nimmt das Signal von Ihrer Gitarre als ein Monosignal Ihrer Soundkarte entgegen.  Die Eingabe wird von einem Hauptverstärker und einer Rack-Section verarbeitet.  Beide können separat geroutet werden und liefern ein verarbeitetes Stereo-Signal via JACK.  Sie können das Rack mit Effekten aus mehr als 25 eingebauten Modulen füllen.  Die Auswahl reicht von einfachen Noise-Gates bis hin zu Modulationseffekten wie Flanger, Phaser oder Auto-Wah."
 
-#: gnu/packages/audio.scm:1544
+#: gnu/packages/audio.scm:1938
 msgid "Audio effects processor"
 msgstr "Audioeffektverarbeiter"
 
-#: gnu/packages/audio.scm:1546
+#: gnu/packages/audio.scm:1940
 msgid ""
 "Rakarrack is a richly featured multi-effects processor emulating a\n"
 "guitar effects pedalboard.  Effects include compressor, expander, noise gate,\n"
@@ -452,22 +567,22 @@ msgid ""
 "well suited to all musical instruments and vocals."
 msgstr "Rakarrack ist ein Multi-Effekt-Verarbeitungsprogramm mit reichhaltigen Funktionalitäten, welches ein Gitarreneffekte-Pedalboard emuliert.  Effekte sind unter anderem Kompressor, Expander, Noise-Gate, Equalizer, Exciter, Flanger, Chorus, verschiedene Verzögerungs- und Nachhall-Effekte, Verzerrungsmodule und vieles mehr.  Der Großteil der Effekt-Engine setzt sich zusammen aus Modulen, die im exzellenten Software-Synthesizer ZynAddSubFX zu finden sind.  Voreinstellungen und Benutzerschnittstelle sind optimiert für die Gitarre, aber Rakarrack verarbeitet Signale in Stereo, während es keine interne bandbegrenzende Filterung durchführt, und ist daher für alle Musikinstrumente und Vocals gut geeignet."
 
-#: gnu/packages/audio.scm:1593
+#: gnu/packages/audio.scm:1987
 msgid "LV2 convolution reverb"
 msgstr "LV2-Faltungs-Nachhall"
 
-#: gnu/packages/audio.scm:1595
+#: gnu/packages/audio.scm:1989
 msgid ""
 "IR is a low-latency, real-time, high performance signal convolver\n"
 "especially for creating reverb effects.  It supports impulse responses with 1,\n"
 "2 or 4 channels, in any soundfile format supported by libsndfile."
 msgstr "IR ist ein Programm für Signalfaltungen mit niedriger Latenz, in Echtzeit und mit hoher Leistung besonders zum Generieren von Nachhall-Effekten.  Es unterstützt Impulsantworten mit 1, 2 oder 4 Kanälen in einem beliebigen Tondateienformat, das von libsndfile unterstützt wird."
 
-#: gnu/packages/audio.scm:1633
+#: gnu/packages/audio.scm:2028
 msgid "JACK audio connection kit"
 msgstr "JACK-Audioverbindungs-Kit"
 
-#: gnu/packages/audio.scm:1635
+#: gnu/packages/audio.scm:2030
 msgid ""
 "JACK is a low-latency audio server.  It can connect a number of\n"
 "different applications to an audio device, as well as allowing them to share\n"
@@ -477,32 +592,32 @@ msgid ""
 "synchronous execution of all clients, and low latency operation."
 msgstr "JACK ist ein Audio-Server mit niedriger Latenz.  Er kann eine Reihe verschiedener Anwendungen mit einem Audiogerät verbinden und ihnen zudem ermöglichen, untereinander Audio auszutauschen.  JACK unterscheidet sich von anderen Audioservern darin, dass JACK von Anfang an für professionelle Audio-Arbeiten entwickelt wurde.  Das bedeutet, dass JACK den Fokus auf zwei Schlüsselbereiche legt: synchrone Ausführung aller Clients und niedrige Latenz."
 
-#: gnu/packages/audio.scm:1725
+#: gnu/packages/audio.scm:2124
 msgid "Simple LV2 host for JACK"
 msgstr "Einfacher LV2-Host für JACK"
 
-#: gnu/packages/audio.scm:1727
+#: gnu/packages/audio.scm:2126
 msgid ""
 "Jalv is a simple but fully featured LV2 host for JACK.  It runs LV2\n"
 "plugins and exposes their ports as JACK ports, essentially making any LV2\n"
 "plugin function as a JACK application."
 msgstr "Jalv ist ein einfacher, aber voll funktionsfähiger LV2-Host für JACK.  Er führt LV2-Plugins aus und stellt ihre Ports als JACK-Ports zur Verfügung, wodurch quasi jede LV2-Plugin-Funktion zu einer JACK-Anwendung wird."
 
-#: gnu/packages/audio.scm:1771
+#: gnu/packages/audio.scm:2170
 msgid "Linux Audio Developer's Simple Plugin API (LADSPA)"
 msgstr "Linux Audio Developer's Simple Plugin API (LADSPA)"
 
-#: gnu/packages/audio.scm:1773
+#: gnu/packages/audio.scm:2172
 msgid ""
 "LADSPA is a standard that allows software audio processors and effects\n"
 "to be plugged into a wide range of audio synthesis and recording packages."
 msgstr "LADSPA ist ein Standard, der es Software-Audioverarbeitungsprogrammen und Effekten ermöglicht, in einer großen Spanne von Audiosynthese- und -aufnahmeprogrammen eingesetzt zu werden."
 
-#: gnu/packages/audio.scm:1825
+#: gnu/packages/audio.scm:2224
 msgid "Audio application session manager"
 msgstr "Audioanwendungs-Sitzungsverwaltung"
 
-#: gnu/packages/audio.scm:1827
+#: gnu/packages/audio.scm:2226
 msgid ""
 "LASH is a session management system for audio applications.  It allows\n"
 "you to save and restore audio sessions consisting of multiple interconneced\n"
@@ -510,11 +625,11 @@ msgid ""
 "connections between them."
 msgstr "LASH ist ein Sitzungsverwaltungssystem für Audioanwendungen.  Es ermöglicht Ihnen, Audiositzungen aus mehreren untereinander verbundenen Anwendungen zu sichern und wiederherzustellen, wobei der Programmzustand (d.h. geladene Patches) und die Verbindung zwischen ihnen wiederhergestellt wird."
 
-#: gnu/packages/audio.scm:1848
+#: gnu/packages/audio.scm:2247
 msgid "Bauer stereophonic-to-binaural DSP"
 msgstr ""
 
-#: gnu/packages/audio.scm:1850
+#: gnu/packages/audio.scm:2249
 msgid ""
 "The Bauer stereophonic-to-binaural DSP (bs2b) library and plugins is\n"
 "designed to improve headphone listening of stereo audio records.  Recommended\n"
@@ -522,31 +637,67 @@ msgid ""
 "essential distortions."
 msgstr ""
 
-#: gnu/packages/audio.scm:1873
+#: gnu/packages/audio.scm:2272
+msgid "Bauer stereophonic-to-binaural DSP - LADSPA plugin"
+msgstr ""
+
+#: gnu/packages/audio.scm:2273
+msgid ""
+"The Bauer stereophonic-to-binaural DSP (bs2b) library and\n"
+"plugins is designed to improve headphone listening of stereo audio records.\n"
+"Recommended for headphone prolonged listening to disable superstereo fatigue\n"
+"without essential distortions.  This package contains a LADSPA plugin for use\n"
+"with applications that support them (e.g. PulseAudio)."
+msgstr ""
+
+#: gnu/packages/audio.scm:2297
 msgid "Implementation of the Open Sound Control protocol"
 msgstr ""
 
-#: gnu/packages/audio.scm:1875
+#: gnu/packages/audio.scm:2299
 msgid ""
 "liblo is a lightweight library that provides an easy to use\n"
 "implementation of the Open Sound Control (@dfn{OSC}) protocol."
 msgstr ""
 
-#: gnu/packages/audio.scm:1894
+#: gnu/packages/audio.scm:2323
+msgid "Common API for real-time audio I/O"
+msgstr ""
+
+#: gnu/packages/audio.scm:2325
+msgid ""
+"RtAudio is a set of C++ classes that provides a common API for real-time\n"
+"audio input/output.  It was designed with the following objectives:\n"
+"\n"
+"@itemize\n"
+"@item object-oriented C++ design\n"
+"@item simple, common API across all supported platforms\n"
+"@item only one source and one header file for easy inclusion in programming\n"
+"projects\n"
+"@item allow simultaneous multi-api support\n"
+"@item support dynamic connection of devices\n"
+"@item provide extensive audio device parameter control\n"
+"@item allow audio device capability probing\n"
+"@item automatic internal conversion for data format, channel number\n"
+"compensation, (de)interleaving, and byte-swapping\n"
+"@end itemize"
+msgstr ""
+
+#: gnu/packages/audio.scm:2360
 msgid "Bindings for PortAudio v19"
 msgstr ""
 
-#: gnu/packages/audio.scm:1895
+#: gnu/packages/audio.scm:2361
 msgid ""
 "This package provides bindings for PortAudio v19, the\n"
 "cross-platform audio input/output stream library."
 msgstr ""
 
-#: gnu/packages/audio.scm:1920
+#: gnu/packages/audio.scm:2386
 msgid "Python bindings for liblo"
 msgstr ""
 
-#: gnu/packages/audio.scm:1922
+#: gnu/packages/audio.scm:2388
 msgid ""
 "Pyliblo is a Python wrapper for the liblo Open Sound Control (OSC)\n"
 "library.  It supports almost the complete functionality of liblo, allowing you\n"
@@ -554,22 +705,22 @@ msgid ""
 "included are the command line utilities @code{send_osc} and @code{dump_osc}."
 msgstr ""
 
-#: gnu/packages/audio.scm:1970
+#: gnu/packages/audio.scm:2436
 msgid "Library to simplify use of LV2 plugins in applications"
 msgstr ""
 
-#: gnu/packages/audio.scm:1972
+#: gnu/packages/audio.scm:2438
 msgid ""
 "Lilv is a C library to make the use of LV2 plugins as simple as possible\n"
 "for applications.  Lilv is the successor to SLV2, rewritten to be\n"
 "significantly faster and have minimal dependencies."
 msgstr ""
 
-#: gnu/packages/audio.scm:1998
+#: gnu/packages/audio.scm:2464
 msgid "LV2 audio plugin specification"
 msgstr ""
 
-#: gnu/packages/audio.scm:2000
+#: gnu/packages/audio.scm:2466
 msgid ""
 "LV2 is an open specification for audio plugins and host applications.\n"
 "At its core, LV2 is a simple stable interface, accompanied by extensions which\n"
@@ -577,38 +728,38 @@ msgid ""
 "software."
 msgstr ""
 
-#: gnu/packages/audio.scm:2036
+#: gnu/packages/audio.scm:2502
 msgid "LV2 port of the mda Piano plugin"
 msgstr ""
 
-#: gnu/packages/audio.scm:2037
+#: gnu/packages/audio.scm:2503
 msgid "An LV2 port of the mda Piano VSTi."
 msgstr ""
 
-#: gnu/packages/audio.scm:2050
+#: gnu/packages/audio.scm:2516
 msgid "LV2 port of the mda EPiano plugin"
 msgstr ""
 
-#: gnu/packages/audio.scm:2051
+#: gnu/packages/audio.scm:2517
 msgid "An LV2 port of the mda EPiano VSTi."
 msgstr ""
 
-#: gnu/packages/audio.scm:2081
+#: gnu/packages/audio.scm:2547
 msgid "C++ libraries for LV2 plugins"
 msgstr ""
 
-#: gnu/packages/audio.scm:2083
+#: gnu/packages/audio.scm:2549
 msgid ""
 "The LV2 Toolkit (LVTK) contains libraries that wrap the LV2 C API and\n"
 "extensions into easy to use C++ classes.  It is the successor of\n"
 "lv2-c++-tools."
 msgstr ""
 
-#: gnu/packages/audio.scm:2124
+#: gnu/packages/audio.scm:2590
 msgid "3D audio API"
 msgstr ""
 
-#: gnu/packages/audio.scm:2126
+#: gnu/packages/audio.scm:2592
 msgid ""
 "OpenAL provides capabilities for playing audio in a virtual 3D\n"
 "environment.  Distance attenuation, doppler shift, and directional sound\n"
@@ -618,60 +769,60 @@ msgid ""
 "buffers, and audio capture."
 msgstr ""
 
-#: gnu/packages/audio.scm:2156
+#: gnu/packages/audio.scm:2622
 msgid "Free implementation of OpenAL's ALUT standard"
 msgstr ""
 
-#: gnu/packages/audio.scm:2157
+#: gnu/packages/audio.scm:2623
 msgid "freealut is the OpenAL Utility Toolkit."
 msgstr ""
 
-#: gnu/packages/audio.scm:2188
+#: gnu/packages/audio.scm:2654
 msgid "Modular patch bay for audio and MIDI systems"
 msgstr ""
 
-#: gnu/packages/audio.scm:2190
+#: gnu/packages/audio.scm:2656
 msgid ""
 "Patchage is a modular patch bay for audio and MIDI systems based on JACK\n"
 "and ALSA."
 msgstr ""
 
-#: gnu/packages/audio.scm:2218
+#: gnu/packages/audio.scm:2684
 msgid "Portable C audio library"
 msgstr ""
 
-#: gnu/packages/audio.scm:2220
+#: gnu/packages/audio.scm:2686
 msgid ""
 "The Portable C Audio Library (pcaudiolib) provides a C@tie{}API to\n"
 "different audio devices such as ALSA or PulseAudio."
 msgstr ""
 
-#: gnu/packages/audio.scm:2250
+#: gnu/packages/audio.scm:2717
 msgid "Jack server control application"
 msgstr ""
 
-#: gnu/packages/audio.scm:2251
+#: gnu/packages/audio.scm:2718
 msgid ""
 "Control a Jack server.  Allows you to plug various sources\n"
 "into various outputs and to start, stop and configure jackd"
 msgstr ""
 
-#: gnu/packages/audio.scm:2284
+#: gnu/packages/audio.scm:2751
 msgid "Stereo audio recorder for JACK"
 msgstr ""
 
-#: gnu/packages/audio.scm:2285
+#: gnu/packages/audio.scm:2752
 msgid ""
 "QJackRcd is a simple graphical stereo recorder for JACK\n"
 "supporting silence processing for automatic pause, file splitting, and\n"
 "background file post-processing."
 msgstr ""
 
-#: gnu/packages/audio.scm:2361
+#: gnu/packages/audio.scm:2865
 msgid "Synthesis engine and programming language"
 msgstr ""
 
-#: gnu/packages/audio.scm:2362
+#: gnu/packages/audio.scm:2866
 msgid ""
 "SuperCollider is a synthesis engine (@code{scsynth} or\n"
 "@code{supernova}) and programming language (@code{sclang}).  It can be used\n"
@@ -683,62 +834,65 @@ msgid ""
 "using Guix System."
 msgstr ""
 
-#: gnu/packages/audio.scm:2393
+#: gnu/packages/audio.scm:2897
 msgid "Real-time audio utility library"
 msgstr ""
 
-#: gnu/packages/audio.scm:2395
+#: gnu/packages/audio.scm:2899
 msgid ""
 "Raul (Real-time Audio Utility Library) is a C++ utility library primarily\n"
 "aimed at audio/musical applications."
 msgstr ""
 
-#: gnu/packages/audio.scm:2433
-msgid "Real-time library for sampling rate conversion"
+#: gnu/packages/audio.scm:2937
+msgid "Sampling rate conversion and filter design utilities"
 msgstr ""
 
-#: gnu/packages/audio.scm:2434
+#: gnu/packages/audio.scm:2938
 msgid ""
-"The @command{resample} software package contains free\n"
-"sampling-rate conversion and filter design utilities."
+"This package contains the @command{resample} and\n"
+"@command{windowfilter} command line utilities.  The @command{resample} command\n"
+"allows changing the sampling rate of a sound file, while the\n"
+"@command{windowfilter} command allows designing Finite Impulse Response (FIR)\n"
+"filters using the so-called @emph{window method}."
 msgstr ""
 
-#: gnu/packages/audio.scm:2472
+#: gnu/packages/audio.scm:2979
 msgid "Audio time-stretching and pitch-shifting library"
 msgstr ""
 
-#: gnu/packages/audio.scm:2474
+#: gnu/packages/audio.scm:2981
 msgid ""
 "Rubber Band is a library and utility program that permits changing the\n"
 "tempo and pitch of an audio recording independently of one another."
 msgstr ""
 
-#: gnu/packages/audio.scm:2507
+#: gnu/packages/audio.scm:3007
 msgid "Cross-platform MIDI library for C++"
 msgstr ""
 
-#: gnu/packages/audio.scm:2509
+#: gnu/packages/audio.scm:3009
 msgid ""
 "RtMidi is a set of C++ classes (RtMidiIn, RtMidiOut, and API specific\n"
 "classes) that provide a common cross-platform API for realtime MIDI\n"
 "input/output."
 msgstr ""
 
-#: gnu/packages/audio.scm:2535
+#: gnu/packages/audio.scm:3035
 msgid "Library for serialising LV2 atoms to/from RDF"
 msgstr ""
 
-#: gnu/packages/audio.scm:2537
+#: gnu/packages/audio.scm:3037
 msgid ""
 "Sratom is a library for serialising LV2 atoms to/from RDF, particularly\n"
 "the Turtle syntax."
 msgstr ""
 
-#: gnu/packages/audio.scm:2563
+#: gnu/packages/audio.scm:3063
 msgid "Library for loading and wrapping LV2 plugin UIs"
 msgstr ""
 
-#: gnu/packages/audio.scm:2565
+#: gnu/packages/audio.scm:3065
 msgid ""
 "Suil is a lightweight C library for loading and wrapping LV2 plugin UIs.\n"
 "\n"
@@ -750,11 +904,21 @@ msgid ""
 "Suil currently supports every combination of Gtk, Qt, and X11."
 msgstr ""
 
-#: gnu/packages/audio.scm:2623
+#: gnu/packages/audio.scm:3095
+msgid "Library implementing the EBU R 128 loudness standard"
+msgstr ""
+
+#: gnu/packages/audio.scm:3097
+msgid ""
+"@code{libebur128} is a C library that implements the EBU R 128 standard\n"
+"for loudness normalisation."
+msgstr ""
+
+#: gnu/packages/audio.scm:3149
 msgid "Software synthesizer for playing MIDI files"
 msgstr ""
 
-#: gnu/packages/audio.scm:2625
+#: gnu/packages/audio.scm:3151
 msgid ""
 "TiMidity++ is a software synthesizer.  It can play MIDI files by\n"
 "converting them into PCM waveform data; give it a MIDI data along with digital\n"
@@ -763,43 +927,43 @@ msgid ""
 "disks as various audio file formats."
 msgstr ""
 
-#: gnu/packages/audio.scm:2663
+#: gnu/packages/audio.scm:3189
 msgid "Modular and extensible audio processing system"
 msgstr ""
 
-#: gnu/packages/audio.scm:2665
+#: gnu/packages/audio.scm:3191
 msgid ""
 "Vamp is an audio processing plugin system for plugins that extract\n"
 "descriptive information from audio data — typically referred to as audio\n"
 "analysis plugins or audio feature extraction plugins."
 msgstr ""
 
-#: gnu/packages/audio.scm:2705
+#: gnu/packages/audio.scm:3231
 msgid "Library for time stretching and pitch scaling of audio"
 msgstr ""
 
-#: gnu/packages/audio.scm:2707
+#: gnu/packages/audio.scm:3233
 msgid ""
 "SBSMS (Subband Sinusoidal Modeling Synthesis) is software for time\n"
 "stretching and pitch scaling of audio.  This package contains the library."
 msgstr ""
 
-#: gnu/packages/audio.scm:2728
+#: gnu/packages/audio.scm:3268
 msgid "Hybrid lossless audio codec"
 msgstr ""
 
-#: gnu/packages/audio.scm:2730
+#: gnu/packages/audio.scm:3270
 msgid ""
 "WavPack is an audio compression format with lossless, lossy and hybrid\n"
 "compression modes.  This package contains command-line programs and library to\n"
 "encode and decode wavpack files."
 msgstr ""
 
-#: gnu/packages/audio.scm:2749
+#: gnu/packages/audio.scm:3289
 msgid "Mod file playing library"
 msgstr ""
 
-#: gnu/packages/audio.scm:2751
+#: gnu/packages/audio.scm:3291
 msgid ""
 "Libmodplug renders mod music files as raw audio data, for playing or\n"
 "conversion.  mod, .s3m, .it, .xm, and a number of lesser-known formats are\n"
@@ -807,33 +971,33 @@ msgid ""
 "surround and reverb."
 msgstr ""
 
-#: gnu/packages/audio.scm:2770
+#: gnu/packages/audio.scm:3310
 msgid "Module player library"
 msgstr ""
 
-#: gnu/packages/audio.scm:2772
+#: gnu/packages/audio.scm:3312
 msgid ""
 "Libxmp is a library that renders module files to PCM data.  It supports\n"
 "over 90 mainstream and obscure module formats including Protracker (MOD),\n"
 "Scream Tracker 3 (S3M), Fast Tracker II (XM), and Impulse Tracker (IT)."
 msgstr ""
 
-#: gnu/packages/audio.scm:2795
+#: gnu/packages/audio.scm:3335
 msgid "Extended module player"
 msgstr ""
 
-#: gnu/packages/audio.scm:2797
+#: gnu/packages/audio.scm:3337
 msgid ""
 "Xmp is a portable module player that plays over 90 mainstream and\n"
 "obscure module formats, including Protracker MOD, Fasttracker II XM, Scream\n"
 "Tracker 3 S3M and Impulse Tracker IT files."
 msgstr ""
 
-#: gnu/packages/audio.scm:2823
+#: gnu/packages/audio.scm:3363
 msgid "Audio processing library for changing tempo, pitch and playback rate"
 msgstr ""
 
-#: gnu/packages/audio.scm:2825
+#: gnu/packages/audio.scm:3365
 msgid ""
 "SoundTouch is an audio processing library for changing the tempo, pitch\n"
 "and playback rates of audio streams or audio files.  It is intended for\n"
@@ -841,11 +1005,11 @@ msgid ""
 "control functionality, or just for playing around with the sound effects."
 msgstr ""
 
-#: gnu/packages/audio.scm:2862
+#: gnu/packages/audio.scm:3402
 msgid "Sound processing utility"
 msgstr ""
 
-#: gnu/packages/audio.scm:2864
+#: gnu/packages/audio.scm:3404
 msgid ""
 "SoX (Sound eXchange) is a command line utility that can convert\n"
 "various formats of computer audio files to other formats.  It can also\n"
@@ -853,92 +1017,92 @@ msgid ""
 "can play and record audio files."
 msgstr ""
 
-#: gnu/packages/audio.scm:2887
+#: gnu/packages/audio.scm:3427
 msgid "One-dimensional sample-rate conversion library"
 msgstr ""
 
-#: gnu/packages/audio.scm:2889
+#: gnu/packages/audio.scm:3429
 msgid ""
 "The SoX Resampler library (libsoxr) performs one-dimensional sample-rate\n"
 "conversion.  It may be used, for example, to resample PCM-encoded audio."
 msgstr ""
 
-#: gnu/packages/audio.scm:2911
+#: gnu/packages/audio.scm:3451
 msgid "MPEG Audio Layer 2 (MP2) encoder"
 msgstr ""
 
-#: gnu/packages/audio.scm:2913
+#: gnu/packages/audio.scm:3453
 msgid ""
 "TwoLAME is an optimised MPEG Audio Layer 2 (MP2) encoder based on\n"
 "tooLAME by Mike Cheng, which in turn is based upon the ISO dist10 code and\n"
 "portions of LAME."
 msgstr ""
 
-#: gnu/packages/audio.scm:2971
+#: gnu/packages/audio.scm:3511
 msgid "Audio I/O library"
 msgstr ""
 
-#: gnu/packages/audio.scm:2973
+#: gnu/packages/audio.scm:3513
 msgid ""
 "PortAudio is a portable C/C++ audio I/O library providing a simple API\n"
 "to record and/or play sound using a callback function or a blocking read/write\n"
 "interface."
 msgstr ""
 
-#: gnu/packages/audio.scm:3000
+#: gnu/packages/audio.scm:3540
 msgid "Graphical user interface for FluidSynth"
 msgstr ""
 
-#: gnu/packages/audio.scm:3002
+#: gnu/packages/audio.scm:3542
 msgid ""
 "Qsynth is a GUI front-end application for the FluidSynth SoundFont\n"
 "synthesizer written in C++."
 msgstr ""
 
-#: gnu/packages/audio.scm:3039
+#: gnu/packages/audio.scm:3579
 msgid "Networked audio system"
 msgstr ""
 
-#: gnu/packages/audio.scm:3041
+#: gnu/packages/audio.scm:3581
 msgid ""
 "RSound allows you to send audio from an application and transfer it\n"
 "directly to a different computer on your LAN network.  It is an audio daemon\n"
 "with a much different focus than most other audio daemons."
 msgstr ""
 
-#: gnu/packages/audio.scm:3072
+#: gnu/packages/audio.scm:3612
 msgid "JACK audio frequency analyzer and display"
 msgstr ""
 
-#: gnu/packages/audio.scm:3074
+#: gnu/packages/audio.scm:3614
 msgid ""
 "XJackFreak is an audio analysis and equalizing tool for the Jack Audio\n"
 "Connection Kit.  It can display the FFT of any input, modify it and output the\n"
 "result."
 msgstr ""
 
-#: gnu/packages/audio.scm:3124
+#: gnu/packages/audio.scm:3664
 msgid "Fast, partitioned convolution engine library"
 msgstr ""
 
-#: gnu/packages/audio.scm:3126
+#: gnu/packages/audio.scm:3666
 msgid ""
 "Zita convolver is a C++ library providing a real-time convolution\n"
 "engine."
 msgstr ""
 
-#: gnu/packages/audio.scm:3174
+#: gnu/packages/audio.scm:3716
 msgid "C++ library for resampling audio signals"
 msgstr ""
 
-#: gnu/packages/audio.scm:3176
+#: gnu/packages/audio.scm:3718
 msgid ""
 "Libzita-resampler is a C++ library for resampling audio signals.  It is\n"
 "designed to be used within a real-time processing context, to be fast, and to\n"
 "provide high-quality sample rate conversion."
 msgstr ""
 
-#: gnu/packages/audio.scm:3221
+#: gnu/packages/audio.scm:3765
 msgid ""
 "Zita-alsa-pcmi is a C++ wrapper around the ALSA API.  It provides easy\n"
 "access to ALSA PCM devices, taking care of the many functions required to\n"
@@ -946,11 +1110,11 @@ msgid ""
 "point audio data."
 msgstr ""
 
-#: gnu/packages/audio.scm:3247
+#: gnu/packages/audio.scm:3791
 msgid "Cue and toc file parsers and utilities"
 msgstr ""
 
-#: gnu/packages/audio.scm:3248
+#: gnu/packages/audio.scm:3792
 msgid ""
 "Cuetools is a set of programs that are useful for manipulating\n"
 "and using CUE sheet (cue) files and Table of Contents (toc) files.  CUE and TOC\n"
@@ -958,11 +1122,11 @@ msgid ""
 "machine-readable ASCII format."
 msgstr ""
 
-#: gnu/packages/audio.scm:3267
+#: gnu/packages/audio.scm:3811
 msgid "WAVE audio data processing tool"
 msgstr ""
 
-#: gnu/packages/audio.scm:3268
+#: gnu/packages/audio.scm:3812
 msgid ""
 "shntool is a multi-purpose WAVE data processing and reporting\n"
 "utility.  File formats are abstracted from its core, so it can process any file\n"
@@ -971,63 +1135,74 @@ msgid ""
 "use them split WAVE data into multiple files."
 msgstr ""
 
-#: gnu/packages/audio.scm:3307
+#: gnu/packages/audio.scm:3851
 msgid "DTS Coherent Acoustics decoder"
 msgstr ""
 
-#: gnu/packages/audio.scm:3308
+#: gnu/packages/audio.scm:3852
 msgid ""
 "Dcadec is a DTS Coherent Acoustics surround sound decoder\n"
 "with support for HD extensions."
 msgstr ""
 
-#: gnu/packages/audio.scm:3344
+#: gnu/packages/audio.scm:3888
 msgid "Tool to adjust loudness of media files"
 msgstr ""
 
-#: gnu/packages/audio.scm:3346
+#: gnu/packages/audio.scm:3890
 msgid ""
 "BS1770GAIN is a loudness scanner compliant with ITU-R BS.1770 and its\n"
 "flavors EBU R128, ATSC A/85, and ReplayGain 2.0.  It helps normalizing the\n"
 "loudness of audio and video files to the same level."
 msgstr ""
 
-#: gnu/packages/audio.scm:3377
+#: gnu/packages/audio.scm:3921
 msgid "Lightweight audio filtering library"
 msgstr ""
 
-#: gnu/packages/audio.scm:3378
+#: gnu/packages/audio.scm:3922
 msgid ""
 "An easy to use audio filtering library made from webrtc\n"
 "code, used in @code{libtoxcore}."
 msgstr ""
 
-#: gnu/packages/audio.scm:3430
+#: gnu/packages/audio.scm:3974
 msgid "GSM 06.10 lossy speech compression library"
 msgstr ""
 
-#: gnu/packages/audio.scm:3431
+#: gnu/packages/audio.scm:3975
 msgid ""
 "This C library provides an encoder and a decoder for the GSM\n"
 "06.10 RPE-LTP lossy speech compression algorithm."
 msgstr ""
 
-#: gnu/packages/audio.scm:3452
+#: gnu/packages/audio.scm:3996
 msgid "ALSA wrappers for Python"
 msgstr ""
 
-#: gnu/packages/audio.scm:3454
+#: gnu/packages/audio.scm:3998
 msgid ""
 "This package contains wrappers for accessing the ALSA API from Python.\n"
 "It is currently fairly complete for PCM devices, and has some support for\n"
 "mixers."
 msgstr ""
 
-#: gnu/packages/audio.scm:3501
+#: gnu/packages/audio.scm:4021
+msgid "LDAC Bluetooth encoder and ABR library"
+msgstr ""
+
+#: gnu/packages/audio.scm:4022
+msgid ""
+"This package provides an encoder for the LDAC\n"
+"high-resolution Bluetooth audio streaming codec for streaming at up to 990\n"
+"kbps at 24 bit/96 kHz."
+msgstr ""
+
+#: gnu/packages/audio.scm:4068
 msgid "Bluetooth ALSA backend"
 msgstr ""
 
-#: gnu/packages/audio.scm:3502
+#: gnu/packages/audio.scm:4069
 msgid ""
 "This project is a rebirth of a direct integration between\n"
 "Bluez and ALSA.  Since Bluez >= 5, the build-in integration has been removed\n"
@@ -1040,22 +1215,22 @@ msgid ""
 "on the ALSA software PCM plugin."
 msgstr ""
 
-#: gnu/packages/audio.scm:3565
+#: gnu/packages/audio.scm:4132
 msgid "Sound editor"
 msgstr "Datenstromeditor"
 
-#: gnu/packages/audio.scm:3568
+#: gnu/packages/audio.scm:4135
 msgid ""
 "Snd is a sound editor modelled loosely after Emacs.  It can be\n"
 "customized and extended using either the s7 Scheme implementation (included in\n"
 "the Snd sources), Ruby, or Forth."
 msgstr ""
 
-#: gnu/packages/audio.scm:3597
+#: gnu/packages/audio.scm:4164
 msgid "LV2 plugin for broadband noise reduction"
 msgstr ""
 
-#: gnu/packages/audio.scm:3598
+#: gnu/packages/audio.scm:4165
 msgid ""
 "Noise Repellent is an LV2 plugin to reduce noise.  It has\n"
 "the following features:\n"
@@ -1075,40 +1250,40 @@ msgid ""
 "@end enumerate\n"
 msgstr ""
 
-#: gnu/packages/audio.scm:3657
+#: gnu/packages/audio.scm:4224
 msgid "Command-line audio visualizer"
 msgstr ""
 
-#: gnu/packages/audio.scm:3658
+#: gnu/packages/audio.scm:4225
 msgid ""
 "@code{cli-visualizer} displays fast-Fourier\n"
 "transforms (FFTs) of the sound being played, as well as other graphical\n"
 "representations."
 msgstr ""
 
-#: gnu/packages/audio.scm:3711
+#: gnu/packages/audio.scm:4278
 msgid "Console audio visualizer for ALSA, MPD, and PulseAudio"
 msgstr ""
 
-#: gnu/packages/audio.scm:3712
+#: gnu/packages/audio.scm:4279
 msgid ""
 "C.A.V.A. is a bar audio spectrum visualizer for the terminal\n"
 "using ALSA, MPD, PulseAudio, or a FIFO buffer as its input."
 msgstr ""
 
-#: gnu/packages/audio.scm:3745
+#: gnu/packages/audio.scm:4312
 msgid "Pro-quality GM soundfont"
 msgstr ""
 
-#: gnu/packages/audio.scm:3746
+#: gnu/packages/audio.scm:4313
 msgid "Fluid-3 is Frank Wen's pro-quality GM soundfont."
 msgstr ""
 
-#: gnu/packages/audio.scm:3769
+#: gnu/packages/audio.scm:4336
 msgid "Fraunhofer FDK AAC library"
 msgstr ""
 
-#: gnu/packages/audio.scm:3770
+#: gnu/packages/audio.scm:4337
 msgid ""
 "FDK is a library for encoding and decoding Advanced Audio\n"
 "Coding (AAC) format audio, developed by Fraunhofer IIS, and included as part of\n"
@@ -1119,32 +1294,32 @@ msgid ""
 "                                                                     surround)."
 msgstr ""
 
-#: gnu/packages/audio.scm:3809
+#: gnu/packages/audio.scm:4376
 msgid "Audio editing and playback for OpenShot"
 msgstr ""
 
-#: gnu/packages/audio.scm:3810
+#: gnu/packages/audio.scm:4377
 msgid ""
 "OpenShot Audio Library (libopenshot-audio) allows\n"
 "high-quality editing and playback of audio, and is based on the JUCE\n"
 "library."
 msgstr ""
 
-#: gnu/packages/audio.scm:3836
+#: gnu/packages/audio.scm:4403
 msgid "XAudio reimplementation"
 msgstr ""
 
-#: gnu/packages/audio.scm:3837
+#: gnu/packages/audio.scm:4404
 msgid ""
 "FAudio is an XAudio reimplementation that focuses solely on\n"
 "developing fully accurate DirectX Audio runtime libraries."
 msgstr ""
 
-#: gnu/packages/audio.scm:3862
+#: gnu/packages/audio.scm:4429
 msgid "Binaural beat synthesizer"
 msgstr "Synthesizer für binaurale Beats"
 
-#: gnu/packages/audio.scm:3863
+#: gnu/packages/audio.scm:4430
 msgid ""
 "Gnaural is a programmable auditory binaural beat synthesizer\n"
 "intended to be used for brainwave entrainment.  Gnaural supports creation of\n"
@@ -1153,32 +1328,58 @@ msgid ""
 "other Gnaural instances, allowing synchronous sessions between many users."
 msgstr ""
 
-#: gnu/packages/audio.scm:3897
+#: gnu/packages/audio.scm:4464
 msgid "Live audio streamer"
 msgstr ""
 
-#: gnu/packages/audio.scm:3898
+#: gnu/packages/audio.scm:4465
 msgid ""
 "DarkIce is a live audio streamer.  It takes audio input from\n"
 "a sound card, encodes it into Ogg Vorbis and/or mp3, and sends the audio\n"
 "stream to one or more IceCast and/or ShoutCast servers."
 msgstr ""
 
-#: gnu/packages/audio.scm:3922
+#: gnu/packages/audio.scm:4489
 msgid "Encode or decode Linear/Longitudinal Time Code (LTC) audio"
 msgstr ""
 
-#: gnu/packages/audio.scm:3923
+#: gnu/packages/audio.scm:4490
 msgid ""
 "Libltc is a POSIX-C Library for handling\n"
 "@dfn{Linear/Longitudinal Time Code} (LTC) data."
 msgstr ""
 
-#: gnu/packages/audio.scm:3949
+#: gnu/packages/audio.scm:4522
+msgid "TTA lossless audio encoder"
+msgstr ""
+
+#: gnu/packages/audio.scm:4524
+msgid ""
+"TTA performs lossless compression on multichannel 8,16 and 24 bits\n"
+"data of the Wav audio files.  Being lossless means that no data-\n"
+"quality is lost in the compression - when uncompressed, the data will\n"
+"be identical to the original.  The compression ratios of TTA depend on\n"
+"the type of music file being compressed, but the compression size\n"
+"will generally range between 30% - 70% of the original.  TTA format\n"
+"supports both of ID3v1/v2 and APEv2 tags."
+msgstr ""
+
+#: gnu/packages/audio.scm:4558
+msgid "C library for real-time audio input and output"
+msgstr ""
+
+#: gnu/packages/audio.scm:4559
+msgid ""
+"@code{libsoundio} is a C library providing audio input and\n"
+"output.  The API is suitable for real-time software such as digital audio\n"
+"workstations as well as consumer software such as music players."
+msgstr ""
+
+#: gnu/packages/audio.scm:4584
 msgid "Small GUI toolkit"
 msgstr ""
 
-#: gnu/packages/audio.scm:3950
+#: gnu/packages/audio.scm:4585
 msgid ""
 "Redkite is a small GUI toolkit developed in C++17 and\n"
 "inspired from other well known GUI toolkits such as Qt and GTK.  It is\n"
@@ -1187,11 +1388,11 @@ msgid ""
 "as is the case with audio plugins."
 msgstr ""
 
-#: gnu/packages/audio.scm:4020
+#: gnu/packages/audio.scm:4656
 msgid "Audio plugin host"
 msgstr ""
 
-#: gnu/packages/audio.scm:4021
+#: gnu/packages/audio.scm:4657
 msgid ""
 "Carla is a modular audio plugin host, with features like\n"
 "transport control, automation of parameters via MIDI CC and remote control\n"
@@ -1200,11 +1401,11 @@ msgid ""
 "default and preferred audio driver but also supports native drivers like ALSA."
 msgstr ""
 
-#: gnu/packages/audio.scm:4056
+#: gnu/packages/audio.scm:4692
 msgid "Multitrack audio processing"
 msgstr ""
 
-#: gnu/packages/audio.scm:4057
+#: gnu/packages/audio.scm:4693
 msgid ""
 "Ecasound is a software package designed for multitrack audio\n"
 "processing. It can be used for simple tasks like audio playback, recording and\n"
@@ -1216,44 +1417,44 @@ msgid ""
 "in the package."
 msgstr ""
 
-#: gnu/packages/audio.scm:4094
+#: gnu/packages/audio.scm:4730
 msgid "Library for reading and resampling audio files"
 msgstr ""
 
-#: gnu/packages/audio.scm:4095
+#: gnu/packages/audio.scm:4731
 msgid ""
 "libaudec is a wrapper library over ffmpeg, sndfile and\n"
 "libsamplerate for reading and resampling audio files, based on Robin Gareus'\n"
 "@code{audio_decoder} code."
 msgstr ""
 
-#: gnu/packages/audio.scm:4126
+#: gnu/packages/audio.scm:4762
 msgid "LV2 plugin lint tool"
 msgstr ""
 
-#: gnu/packages/audio.scm:4127
+#: gnu/packages/audio.scm:4763
 msgid ""
 "lv2lint is an LV2 lint-like tool that checks whether a\n"
 "given plugin and its UI(s) match up with the provided metadata and adhere\n"
 "to well-known best practices."
 msgstr ""
 
-#: gnu/packages/audio.scm:4161
+#: gnu/packages/audio.scm:4797
 msgid "Documentation generator for LV2 plugins"
 msgstr ""
 
-#: gnu/packages/audio.scm:4163
+#: gnu/packages/audio.scm:4799
 msgid ""
 "lv2toweb allows the user to create an xhtml page with information\n"
 "about the given LV2 plugin, provided that the plugin and its UI(s) match up\n"
 "with the provided metadata and adhere to well-known best practices."
 msgstr ""
 
-#: gnu/packages/audio.scm:4189
+#: gnu/packages/audio.scm:4825
 msgid "GUI toolkit for LV2 plugins"
 msgstr ""
 
-#: gnu/packages/audio.scm:4190
+#: gnu/packages/audio.scm:4826
 msgid ""
 "ZToolkit (Ztk) is a cross-platform GUI toolkit heavily\n"
 "inspired by GTK.  It handles events and low level drawing on behalf of\n"
@@ -1263,15 +1464,63 @@ msgid ""
 "minimum."
 msgstr ""
 
-#: gnu/packages/audio.scm:4208
+#: gnu/packages/audio.scm:4858
+msgid "Instrument file software library"
+msgstr ""
+
+#: gnu/packages/audio.scm:4860
+msgid ""
+"libInstPatch is a library for processing digital sample based MIDI\n"
+"instrument \"patch\" files.  The types of files libInstPatch supports are used\n"
+"for creating instrument sounds for wavetable synthesis.  libInstPatch provides\n"
+"an object framework (based on GObject) to load patch files, which can then be\n"
+"edited, converted, compressed and saved."
+msgstr ""
+
+#: gnu/packages/audio.scm:4876
 msgid "ZToolkit with SVG support"
 msgstr ""
 
-#: gnu/packages/backup.scm:127
+#: gnu/packages/audio.scm:4903
+msgid "Digital signal processing library"
+msgstr "Bibliothek für digitale Signalverarbeitung"
+
+#: gnu/packages/audio.scm:4904
+msgid ""
+"The LSP DSP library provides a set of functions that perform\n"
+"SIMD-optimized computing on several hardware architectures.  All functions\n"
+"currently operate on IEEE-754 single-precision floating-point numbers."
+msgstr ""
+
+#: gnu/packages/audio.scm:4935
+msgid "Speech codec"
+msgstr ""
+
+#: gnu/packages/audio.scm:4937
+msgid ""
+"Codec 2 is a speech codec designed for communications quality speech\n"
+"between 700 and 3200 bit/s.  The main application is low bandwidth HF/VHF\n"
+"digital radio."
+msgstr ""
+
+#: gnu/packages/audio.scm:5035
+msgid "Synchronize musical beat, tempo, and phase across multiple applications"
+msgstr ""
+
+#: gnu/packages/audio.scm:5037
+msgid ""
+"Ableton Link is a C++ library that synchronizes musical beat, tempo, and phase\n"
+"across multiple applications running on one or more devices.  Applications on devices\n"
+"connected to a local network discover each other automatically and form a musical\n"
+"session in which each participant can perform independently: anyone can start or stop\n"
+"while still staying in time."
+msgstr ""
+
+#: gnu/packages/backup.scm:138
 msgid "Encrypted backup using rsync algorithm"
 msgstr ""
 
-#: gnu/packages/backup.scm:129
+#: gnu/packages/backup.scm:140
 msgid ""
 "Duplicity backs up directories by producing encrypted tar-format volumes\n"
 "and uploading them to a remote or local file server.  Because duplicity uses\n"
@@ -1281,11 +1530,11 @@ msgid ""
 "spying and/or modification by the server."
 msgstr ""
 
-#: gnu/packages/backup.scm:154
+#: gnu/packages/backup.scm:165
 msgid "File verification and repair tools"
 msgstr ""
 
-#: gnu/packages/backup.scm:155
+#: gnu/packages/backup.scm:166
 msgid ""
 "Par2cmdline uses Reed-Solomon error-correcting codes to\n"
 "generate and verify PAR2 recovery files.  These files can be distributed\n"
@@ -1297,11 +1546,11 @@ msgid ""
 "can even repair them."
 msgstr ""
 
-#: gnu/packages/backup.scm:192
+#: gnu/packages/backup.scm:203
 msgid "Simple incremental backup tool"
 msgstr ""
 
-#: gnu/packages/backup.scm:194
+#: gnu/packages/backup.scm:205
 msgid ""
 "Hdup2 is a backup utility, its aim is to make backup really simple.  The\n"
 "backup scheduling is done by means of a cron job.  It supports an\n"
@@ -1309,11 +1558,11 @@ msgid ""
 "backups (called chunks) to allow easy burning to CD/DVD."
 msgstr ""
 
-#: gnu/packages/backup.scm:279
+#: gnu/packages/backup.scm:300
 msgid "Multi-format archive and compression library"
 msgstr ""
 
-#: gnu/packages/backup.scm:281
+#: gnu/packages/backup.scm:302
 msgid ""
 "Libarchive provides a flexible interface for reading and writing\n"
 "archives in various formats such as tar and cpio.  Libarchive also supports\n"
@@ -1324,11 +1573,11 @@ msgid ""
 "random access nor for in-place modification."
 msgstr ""
 
-#: gnu/packages/backup.scm:349
+#: gnu/packages/backup.scm:370
 msgid "Provide a list of files to backup"
 msgstr ""
 
-#: gnu/packages/backup.scm:351
+#: gnu/packages/backup.scm:372
 msgid ""
 "Rdup is a utility inspired by rsync and the plan9 way of doing backups.\n"
 "Rdup itself does not backup anything, it only print a list of absolute\n"
@@ -1336,11 +1585,11 @@ msgid ""
 "list and implement the backup strategy."
 msgstr ""
 
-#: gnu/packages/backup.scm:381
+#: gnu/packages/backup.scm:402
 msgid "Tar-compatible archiver"
 msgstr ""
 
-#: gnu/packages/backup.scm:383
+#: gnu/packages/backup.scm:404
 msgid ""
 "Btar is a tar-compatible archiver which allows arbitrary compression and\n"
 "ciphering, redundancy, differential backup, indexed extraction, multicore\n"
@@ -1348,11 +1597,11 @@ msgid ""
 "errors."
 msgstr ""
 
-#: gnu/packages/backup.scm:409
+#: gnu/packages/backup.scm:430
 msgid "Local/remote mirroring+incremental backup"
 msgstr ""
 
-#: gnu/packages/backup.scm:411
+#: gnu/packages/backup.scm:432
 msgid ""
 "Rdiff-backup backs up one directory to another, possibly over a network.\n"
 "The target directory ends up a copy of the source directory, but extra reverse\n"
@@ -1367,11 +1616,11 @@ msgid ""
 "rdiff-backup is easy to use and settings have sensible defaults."
 msgstr ""
 
-#: gnu/packages/backup.scm:456
+#: gnu/packages/backup.scm:477
 msgid "Deduplicating snapshot backup utility based on rsync"
 msgstr ""
 
-#: gnu/packages/backup.scm:457
+#: gnu/packages/backup.scm:478
 msgid ""
 "rsnapshot is a file system snapshot utility based on rsync.\n"
 "rsnapshot makes it easy to make periodic snapshots of local machines, and\n"
@@ -1379,11 +1628,11 @@ msgid ""
 "rsnapshot uses hard links to deduplicate identical files."
 msgstr ""
 
-#: gnu/packages/backup.scm:537
+#: gnu/packages/backup.scm:558
 msgid "Tools & library for data backup and distributed storage"
 msgstr ""
 
-#: gnu/packages/backup.scm:539
+#: gnu/packages/backup.scm:560
 msgid ""
 "Libchop is a set of utilities and library for data backup and\n"
 "distributed storage.  Its main application is @command{chop-backup}, an\n"
@@ -1394,11 +1643,11 @@ msgid ""
 "detection, and lossless compression."
 msgstr ""
 
-#: gnu/packages/backup.scm:668
+#: gnu/packages/backup.scm:689
 msgid "Deduplicated, encrypted, authenticated and compressed backups"
 msgstr ""
 
-#: gnu/packages/backup.scm:669
+#: gnu/packages/backup.scm:690
 msgid ""
 "Borg is a deduplicating backup program.  Optionally, it\n"
 "supports compression and authenticated encryption.  The main goal of Borg is to\n"
@@ -1408,11 +1657,11 @@ msgid ""
 "to not fully trusted targets.  Borg is a fork of Attic."
 msgstr ""
 
-#: gnu/packages/backup.scm:713
+#: gnu/packages/backup.scm:734
 msgid "Deduplicating backup program"
 msgstr ""
 
-#: gnu/packages/backup.scm:714
+#: gnu/packages/backup.scm:735
 msgid ""
 "Attic is a deduplicating backup program.  The main goal of\n"
 "Attic is to provide an efficient and secure way to backup data.  The data\n"
@@ -1420,11 +1669,11 @@ msgid ""
 "changes are stored."
 msgstr ""
 
-#: gnu/packages/backup.scm:744
+#: gnu/packages/backup.scm:765
 msgid "WIM file manipulation library and utilities"
 msgstr ""
 
-#: gnu/packages/backup.scm:745
+#: gnu/packages/backup.scm:766
 msgid ""
 "wimlib is a C library and set of command-line utilities for\n"
 "creating, modifying, extracting, and mounting archives in the Windows Imaging\n"
@@ -1432,22 +1681,22 @@ msgid ""
 "NTFS volumes using @code{ntfs-3g}, preserving NTFS-specific attributes."
 msgstr ""
 
-#: gnu/packages/backup.scm:855
+#: gnu/packages/backup.scm:876
 msgid "Fast, disk based, rotating network backup system"
 msgstr ""
 
-#: gnu/packages/backup.scm:857
+#: gnu/packages/backup.scm:878
 msgid ""
 "With dirvish you can maintain a set of complete images of your\n"
 "file systems with unattended creation and expiration.  A dirvish backup vault\n"
 "is like a time machine for your data. "
 msgstr ""
 
-#: gnu/packages/backup.scm:948
+#: gnu/packages/backup.scm:969
 msgid "Backup program with multiple revisions, encryption and more"
 msgstr ""
 
-#: gnu/packages/backup.scm:949
+#: gnu/packages/backup.scm:970
 msgid ""
 "Restic is a program that does backups right and was designed\n"
 "with the following principles in mind:\n"
@@ -1479,11 +1728,43 @@ msgid ""
 "@end itemize"
 msgstr ""
 
-#: gnu/packages/backup.scm:1000
+#: gnu/packages/backup.scm:1023
+msgid "Versatile deduplicating backup tool"
+msgstr ""
+
+#: gnu/packages/backup.scm:1025
+msgid ""
+"ZBackup is a globally-deduplicating backup tool, based on the\n"
+"ideas found in Rsync.  Feed a large @file{.tar} into it, and it will\n"
+"store duplicate regions of it only once, then compress and optionally\n"
+"encrypt the result.  Feed another @file{.tar} file, and it will also\n"
+"re-use any data found in any previous backups.  This way only new\n"
+"changes are stored, and as long as the files are not very different,\n"
+"the amount of storage required is very low.  Any of the backup files\n"
+"stored previously can be read back in full at any time.  The program\n"
+"is format-agnostic, so you can feed virtually any files to it."
+msgstr ""
+
+#: gnu/packages/backup.scm:1062
+msgid "Ext2/3/4 file system dump/restore utilities"
+msgstr ""
+
+#: gnu/packages/backup.scm:1063
+msgid ""
+"Dump examines files in a file system, determines which ones\n"
+"need to be backed up, and copies those files to a specified disk, tape or\n"
+"other storage medium.  Subsequent incremental backups can then be layered on\n"
+"top of the full backup.  The restore command performs the inverse function of\n"
+"dump; it can restore a full backup of a file system.  Single files and\n"
+"directory subtrees may also be restored from full or partial backups in\n"
+"interactive mode."
+msgstr ""
+
+#: gnu/packages/backup.scm:1109
 msgid "Differential backup and restore"
 msgstr ""
 
-#: gnu/packages/backup.scm:1001
+#: gnu/packages/backup.scm:1110
 msgid ""
 "Burp is a network backup and restore program.  It attempts\n"
 "to reduce network traffic and the amount of space that is used by each\n"
@@ -1547,11 +1828,11 @@ msgstr ""
 "verwendet. Die GNU-Implementierung bietet gegenüber dem Standardwerkzeug\n"
 "diverse Erweiterungen."
 
-#: gnu/packages/base.scm:190
+#: gnu/packages/base.scm:205
 msgid "Managing tar archives"
 msgstr "Tar-Archive verwalten"
 
-#: gnu/packages/base.scm:192
+#: gnu/packages/base.scm:207
 msgid ""
 "Tar provides the ability to create tar archives, as well as the\n"
 "ability to extract, update or list files in an existing archive.  It is\n"
@@ -1567,11 +1848,11 @@ msgstr ""
 "Änderungszeitpunkte sowie Zugriffsrechte erhalten bleiben. GNU Tar bietet\n"
 "viele Erweiterungen über die Fähigkeiten des Standardwerkzeugs hinaus."
 
-#: gnu/packages/base.scm:221
+#: gnu/packages/base.scm:236
 msgid "Apply differences to originals, with optional backups"
 msgstr "Unterschiede auf Originaldateien anwenden, mit optionaler Datensicherung"
 
-#: gnu/packages/base.scm:223
+#: gnu/packages/base.scm:238
 msgid ""
 "Patch is a program that applies changes to files based on differences\n"
 "laid out as by the program \"diff\".  The changes may be applied to one or more\n"
@@ -1585,11 +1866,11 @@ msgstr ""
 "verschiedene Diff-Formate. Es kann auch dazu genutzt werden, frühere\n"
 "Anwendungen von Diff-Dateien rückgängig zu machen."
 
-#: gnu/packages/base.scm:244
+#: gnu/packages/base.scm:259
 msgid "Comparing and merging files"
 msgstr "Dateien vergleichen und zusammenführen"
 
-#: gnu/packages/base.scm:246
+#: gnu/packages/base.scm:261
 msgid ""
 "GNU Diffutils is a package containing tools for finding the\n"
 "differences between files.  The \"diff\" command is used to show how two files\n"
@@ -1604,11 +1885,11 @@ msgstr ""
 "Weiterhin bietet »sdiff« eine Möglichkeit, zwei Dateien interaktiv\n"
 "zusammenzuführen."
 
-#: gnu/packages/base.scm:291
+#: gnu/packages/base.scm:295
 msgid "Operating on files matching given criteria"
 msgstr "Dateien verarbeiten, die zu gegebenen Kriterien passen"
 
-#: gnu/packages/base.scm:293
+#: gnu/packages/base.scm:297
 msgid ""
 "Findutils supplies the basic file directory searching utilities of the\n"
 "GNU system.  It consists of two primary searching utilities: \"find\"\n"
@@ -1625,11 +1906,11 @@ msgstr ""
 "die Dateinamendatenbank und »xargs« dient dazu, Befehle mit willkürlich\n"
 "langen Argumenten anzuwenden."
 
-#: gnu/packages/base.scm:355
+#: gnu/packages/base.scm:375
 msgid "Core GNU utilities (file, text, shell)"
 msgstr "GNU-Kernprogramme (Datei, Text, Shell)"
 
-#: gnu/packages/base.scm:357
+#: gnu/packages/base.scm:377
 msgid ""
 "GNU Coreutils package includes all of the basic command-line tools that\n"
 "are expected in a POSIX system, excluding shell.  This package is the union of\n"
@@ -1638,11 +1919,11 @@ msgid ""
 "standard."
 msgstr "Das Paket GNU Coreutils enthält alle grundlegenden Befehlszeilenwerkzeuge, die Sie in einem POSIX-System erwarten, bis auf eine Shell. Das Paket stellt die Vereinigung von GNUs fileutils mit Bearbeitungsfunktionen für Dateien, sh-utils und textutils dar. Die meisten dieser Werkzeuge bieten im Vergleich zu den in POSIX festgelegten Standards erweiterte Funktionalität."
 
-#: gnu/packages/base.scm:405
+#: gnu/packages/base.scm:453
 msgid "Remake files automatically"
 msgstr "Automatische Neuerzeugung von Dateien"
 
-#: gnu/packages/base.scm:407
+#: gnu/packages/base.scm:455
 msgid ""
 "Make is a program that is used to control the production of\n"
 "executables or other files from their source files.  The process is\n"
@@ -1660,11 +1941,11 @@ msgstr ""
 "deren Quellen geändert hat. GNU Make bietet mächtige Erweiterungen über die\n"
 "Fähigkeiten des Standardwerkzeugs hinaus. "
 
-#: gnu/packages/base.scm:453
+#: gnu/packages/base.scm:536
 msgid "Binary utilities: bfd gas gprof ld"
 msgstr "Binär-Dienstprogramme: bfd gas gprof ld"
 
-#: gnu/packages/base.scm:455
+#: gnu/packages/base.scm:538
 msgid ""
 "GNU Binutils is a collection of tools for working with binary files.\n"
 "Perhaps the most notable are \"ld\", a linker, and \"as\", an assembler.\n"
@@ -1680,22 +1961,22 @@ msgstr ""
 "Die »bfd«-Bibliothek zum Arbeiten mit ausführbaren oder Objektformaten\n"
 "ist ebenfalls enthalten."
 
-#: gnu/packages/base.scm:557
+#: gnu/packages/base.scm:672
 msgid "The linker wrapper"
 msgstr "Der Linker-Wrapper"
 
-#: gnu/packages/base.scm:559
+#: gnu/packages/base.scm:674
 msgid ""
 "The linker wrapper (or @code{ld-wrapper}) wraps the linker to add any\n"
 "missing @code{-rpath} flags, and to detect any misuse of libraries outside of\n"
 "the store."
 msgstr ""
 
-#: gnu/packages/base.scm:810
+#: gnu/packages/base.scm:925
 msgid "The GNU C Library"
 msgstr "Die GNU-C-Bibliothek"
 
-#: gnu/packages/base.scm:812
+#: gnu/packages/base.scm:927
 msgid ""
 "Any Unix-like operating system needs a C library: the library which\n"
 "defines the \"system calls\" and other basic facilities such as open, malloc,\n"
@@ -1711,43 +1992,43 @@ msgstr ""
 "Die GNU-C-Bibliothek wird als die C-Bibliothek im GNU-System sowie den meisten\n"
 "Systemen mit dem Linux-Kernel verwendet."
 
-#: gnu/packages/base.scm:1018
+#: gnu/packages/base.scm:1046
 msgid "All the locales supported by the GNU C Library"
 msgstr ""
 
-#: gnu/packages/base.scm:1020
+#: gnu/packages/base.scm:1048
 msgid ""
 "This package provides all the locales supported by the GNU C Library,\n"
 "more than 400 in total.  To use them set the @code{LOCPATH} environment variable\n"
 "to the @code{share/locale} sub-directory of this package."
 msgstr ""
 
-#: gnu/packages/base.scm:1124
+#: gnu/packages/base.scm:1152
 msgid "Small sample of UTF-8 locales"
 msgstr ""
 
-#: gnu/packages/base.scm:1126
+#: gnu/packages/base.scm:1154
 msgid ""
 "This package provides a small sample of UTF-8 locales mostly useful in\n"
 "test environments."
 msgstr ""
 
-#: gnu/packages/base.scm:1163
+#: gnu/packages/base.scm:1185
 msgid "Find full path of shell commands"
 msgstr ""
 
-#: gnu/packages/base.scm:1165
+#: gnu/packages/base.scm:1187
 msgid ""
 "The which program finds the location of executables in PATH, with a\n"
 "variety of options.  It is an alternative to the shell \"type\" built-in\n"
 "command."
 msgstr ""
 
-#: gnu/packages/base.scm:1261
+#: gnu/packages/base.scm:1292
 msgid "Database of current and historical time zones"
 msgstr "Datenbank aktueller und historischer Zeitzonen"
 
-#: gnu/packages/base.scm:1262
+#: gnu/packages/base.scm:1293
 msgid ""
 "The Time Zone Database (often called tz or zoneinfo)\n"
 "contains code and data that represent the history of local time for many\n"
@@ -1762,22 +2043,22 @@ msgstr ""
 "Verschiebung gegenüber der Weltzeit oder der Sommerzeit-Winterzeit-Regelungen\n"
 "wiederzugeben."
 
-#: gnu/packages/base.scm:1318
+#: gnu/packages/base.scm:1349
 msgid "Character set conversion library"
 msgstr ""
 
-#: gnu/packages/base.scm:1320
+#: gnu/packages/base.scm:1351
 msgid ""
 "libiconv provides an implementation of the iconv function for systems\n"
 "that lack it.  iconv is used to convert between character encodings in a\n"
 "program.  It supports a wide variety of different encodings."
 msgstr ""
 
-#: gnu/packages/bittorrent.scm:118
+#: gnu/packages/bittorrent.scm:114
 msgid "Fast and easy BitTorrent client"
 msgstr ""
 
-#: gnu/packages/bittorrent.scm:120
+#: gnu/packages/bittorrent.scm:116
 msgid ""
 "Transmission is a BitTorrent client that comes with graphical,\n"
 "textual, and Web user interfaces.  Transmission also has a daemon for\n"
@@ -1785,72 +2066,72 @@ msgid ""
 "DHT, µTP, PEX and Magnet Links."
 msgstr ""
 
-#: gnu/packages/bittorrent.scm:152
+#: gnu/packages/bittorrent.scm:148
 msgid "BitTorrent library of rtorrent"
 msgstr ""
 
-#: gnu/packages/bittorrent.scm:154
+#: gnu/packages/bittorrent.scm:150
 msgid ""
 "LibTorrent is a BitTorrent library used by and developed in parallel\n"
 "with the BitTorrent client rtorrent.  It is written in C++ with emphasis on\n"
 "speed and efficiency."
 msgstr ""
 
-#: gnu/packages/bittorrent.scm:181
+#: gnu/packages/bittorrent.scm:177
 msgid "BitTorrent client with ncurses interface"
 msgstr ""
 
-#: gnu/packages/bittorrent.scm:183
+#: gnu/packages/bittorrent.scm:179
 msgid ""
 "rTorrent is a BitTorrent client with an ncurses interface.  It supports\n"
 "full encryption, DHT, PEX, and Magnet Links.  It can also be controlled via\n"
 "XML-RPC over SCGI."
 msgstr ""
 
-#: gnu/packages/bittorrent.scm:217 gnu/packages/bittorrent.scm:258
+#: gnu/packages/bittorrent.scm:211 gnu/packages/bittorrent.scm:252
 msgid "Console client for the Transmission BitTorrent daemon"
 msgstr ""
 
-#: gnu/packages/bittorrent.scm:218
+#: gnu/packages/bittorrent.scm:212
 msgid ""
 "Tremc is a console client, with a curses interface, for the\n"
 "Transmission BitTorrent daemon."
 msgstr ""
 
-#: gnu/packages/bittorrent.scm:259
+#: gnu/packages/bittorrent.scm:253
 msgid ""
 "Transmission-remote-cli is a console client, with a curses\n"
 "interface, for the Transmission BitTorrent daemon.  This package is no longer\n"
 "maintained upstream."
 msgstr ""
 
-#: gnu/packages/bittorrent.scm:307
+#: gnu/packages/bittorrent.scm:301
 msgid "Utility for parallel downloading files"
 msgstr ""
 
-#: gnu/packages/bittorrent.scm:309
+#: gnu/packages/bittorrent.scm:303
 msgid ""
 "Aria2 is a lightweight, multi-protocol & multi-source command-line\n"
 "download utility.  It supports HTTP/HTTPS, FTP, SFTP, BitTorrent and Metalink.\n"
 "Aria2 can be manipulated via built-in JSON-RPC and XML-RPC interfaces."
 msgstr ""
 
-#: gnu/packages/bittorrent.scm:340
+#: gnu/packages/bittorrent.scm:334
 msgid "Universal download manager with GTK+ interface"
 msgstr ""
 
-#: gnu/packages/bittorrent.scm:342
+#: gnu/packages/bittorrent.scm:336
 msgid ""
 "uGet is portable download manager with GTK+ interface supporting\n"
 "HTTP, HTTPS, BitTorrent and Metalink, supporting multi-connection\n"
 "downloads, download scheduling, download rate limiting."
 msgstr ""
 
-#: gnu/packages/bittorrent.scm:372
+#: gnu/packages/bittorrent.scm:366
 msgid "Utility to create BitTorrent metainfo files"
 msgstr ""
 
-#: gnu/packages/bittorrent.scm:374
+#: gnu/packages/bittorrent.scm:368
 msgid ""
 "mktorrent is a simple command-line utility to create BitTorrent\n"
 "@dfn{metainfo} files, often known simply as @dfn{torrents}, from both single\n"
@@ -1860,22 +2141,22 @@ msgid ""
 "and will take advantage of multiple processor cores where possible."
 msgstr ""
 
-#: gnu/packages/bittorrent.scm:413
-msgid "Feature complete BitTorrent implementation"
+#: gnu/packages/bittorrent.scm:406
+msgid "Feature-complete BitTorrent implementation"
 msgstr ""
 
-#: gnu/packages/bittorrent.scm:415
+#: gnu/packages/bittorrent.scm:408
 msgid ""
-"libtorrent-rasterbar is a feature complete C++ BitTorrent implementation\n"
+"libtorrent-rasterbar is a feature-complete C++ BitTorrent implementation\n"
 "focusing on efficiency and scalability.  It runs on embedded devices as well as\n"
 "desktops."
 msgstr ""
 
-#: gnu/packages/bittorrent.scm:464
+#: gnu/packages/bittorrent.scm:457
 msgid "Graphical BitTorrent client"
 msgstr ""
 
-#: gnu/packages/bittorrent.scm:466
+#: gnu/packages/bittorrent.scm:459
 msgid ""
 "qBittorrent is a BitTorrent client programmed in C++/Qt that uses\n"
 "libtorrent (sometimes called libtorrent-rasterbar) by Arvid Norberg.\n"
@@ -1885,11 +2166,11 @@ msgid ""
 "features."
 msgstr ""
 
-#: gnu/packages/bittorrent.scm:501
+#: gnu/packages/bittorrent.scm:530
 msgid "Fully-featured cross-platform ​BitTorrent client"
 msgstr ""
 
-#: gnu/packages/bittorrent.scm:503
+#: gnu/packages/bittorrent.scm:532
 msgid ""
 "Deluge contains the common features to BitTorrent clients such as\n"
 "Protocol Encryption, DHT, Local Peer Discovery (LSD), Peer Exchange\n"
@@ -1931,11 +2212,11 @@ msgid ""
 "within Guix."
 msgstr ""
 
-#: gnu/packages/compression.scm:114
+#: gnu/packages/compression.scm:125
 msgid "Compression library"
 msgstr ""
 
-#: gnu/packages/compression.scm:116
+#: gnu/packages/compression.scm:127
 msgid ""
 "zlib is designed to be a free, general-purpose, legally unencumbered --\n"
 "that is, not covered by any patents -- lossless data-compression library for\n"
@@ -1948,42 +2229,42 @@ msgid ""
 "in compression."
 msgstr ""
 
-#: gnu/packages/compression.scm:153
+#: gnu/packages/compression.scm:164
 msgid "Zip Compression library"
 msgstr ""
 
-#: gnu/packages/compression.scm:155
+#: gnu/packages/compression.scm:166
 msgid ""
 "Minizip is a minimalistic library that supports compressing,\n"
 "extracting and viewing ZIP archives.  This version is extracted from\n"
 "the @code{zlib} source."
 msgstr ""
 
-#: gnu/packages/compression.scm:174
+#: gnu/packages/compression.scm:185
 msgid "Replacement for Sun's 'jar' utility"
 msgstr ""
 
-#: gnu/packages/compression.scm:176
+#: gnu/packages/compression.scm:187
 msgid ""
 "FastJar is an attempt to create a much faster replacement for Sun's\n"
 "@code{jar} utility.  Instead of being written in Java, FastJar is written in C."
 msgstr ""
 
-#: gnu/packages/compression.scm:205
+#: gnu/packages/compression.scm:216
 msgid "C library for manipulating POSIX tar files"
 msgstr ""
 
-#: gnu/packages/compression.scm:207
+#: gnu/packages/compression.scm:218
 msgid ""
 "libtar is a C library for manipulating POSIX tar files.  It handles\n"
 "adding and extracting files to/from a tar archive."
 msgstr ""
 
-#: gnu/packages/compression.scm:224
+#: gnu/packages/compression.scm:235
 msgid "General file (de)compression (using lzw)"
 msgstr ""
 
-#: gnu/packages/compression.scm:253
+#: gnu/packages/compression.scm:264
 msgid ""
 "GNU Gzip provides data compression and decompression utilities; the\n"
 "typical extension is \".gz\".  Unlike the \"zip\" format, it compresses a single\n"
@@ -1991,11 +2272,11 @@ msgid ""
 "\".tar.gz\" or \".tgz\", etc."
 msgstr ""
 
-#: gnu/packages/compression.scm:347
+#: gnu/packages/compression.scm:372
 msgid "High-quality data compression program"
 msgstr ""
 
-#: gnu/packages/compression.scm:349
+#: gnu/packages/compression.scm:374
 msgid ""
 "bzip2 is a freely available, patent free (see below), high-quality data\n"
 "compressor.  It typically compresses files to within 10% to 15% of the best\n"
@@ -2004,11 +2285,11 @@ msgid ""
 "decompression."
 msgstr ""
 
-#: gnu/packages/compression.scm:383
+#: gnu/packages/compression.scm:429
 msgid "Parallel bzip2 compression utility"
 msgstr ""
 
-#: gnu/packages/compression.scm:385
+#: gnu/packages/compression.scm:431
 msgid ""
 "lbzip2 is a multi-threaded compression utility with support for the\n"
 "bzip2 compressed file format.  lbzip2 can process standard bz2 files in\n"
@@ -2018,11 +2299,11 @@ msgid ""
 "compatible with bzip2 – both at file format and command line level."
 msgstr ""
 
-#: gnu/packages/compression.scm:416
+#: gnu/packages/compression.scm:464
 msgid "Parallel bzip2 implementation"
 msgstr ""
 
-#: gnu/packages/compression.scm:418
+#: gnu/packages/compression.scm:466
 msgid ""
 "Pbzip2 is a parallel implementation of the bzip2 block-sorting file\n"
 "compressor that uses pthreads and achieves near-linear speedup on SMP machines.\n"
@@ -2030,11 +2311,11 @@ msgid ""
 "compressed with pbzip2 can be decompressed with bzip2)."
 msgstr ""
 
-#: gnu/packages/compression.scm:456
+#: gnu/packages/compression.scm:504
 msgid "General-purpose data compression"
 msgstr ""
 
-#: gnu/packages/compression.scm:458
+#: gnu/packages/compression.scm:506
 msgid ""
 "XZ Utils is free general-purpose data compression software with high\n"
 "compression ratio.  XZ Utils were written for POSIX-like systems, but also\n"
@@ -2047,11 +2328,11 @@ msgid ""
 "than gzip and 15 % smaller output than bzip2."
 msgstr ""
 
-#: gnu/packages/compression.scm:494
+#: gnu/packages/compression.scm:542
 msgid "LHA archive decompressor"
 msgstr ""
 
-#: gnu/packages/compression.scm:495
+#: gnu/packages/compression.scm:543
 msgid ""
 "Lhasa is a replacement for the Unix LHA tool, for\n"
 "decompressing .lzh (LHA / LHarc) and .lzs (LArc) archives.  The backend for the\n"
@@ -2061,11 +2342,11 @@ msgid ""
 "act as a free drop-in replacement."
 msgstr ""
 
-#: gnu/packages/compression.scm:519
+#: gnu/packages/compression.scm:567
 msgid "Data compression library suitable for real-time data de-/compression"
 msgstr ""
 
-#: gnu/packages/compression.scm:521
+#: gnu/packages/compression.scm:569
 msgid ""
 "LZO is a data compression library which is suitable for data\n"
 "de-/compression in real-time.  This means it favours speed over\n"
@@ -2075,11 +2356,11 @@ msgid ""
 "format are designed to be portable across platforms."
 msgstr ""
 
-#: gnu/packages/compression.scm:544
+#: gnu/packages/compression.scm:592
 msgid "Compress or expand files"
 msgstr ""
 
-#: gnu/packages/compression.scm:546
+#: gnu/packages/compression.scm:594
 msgid ""
 "Lzop is a file compressor which is very similar to gzip.  Lzop uses the\n"
 "LZO data compression library for compression services, and its main advantages\n"
@@ -2087,11 +2368,11 @@ msgid ""
 "some compression ratio)."
 msgstr ""
 
-#: gnu/packages/compression.scm:565
+#: gnu/packages/compression.scm:613
 msgid "Lossless data compressor based on the LZMA algorithm"
 msgstr ""
 
-#: gnu/packages/compression.scm:567
+#: gnu/packages/compression.scm:615
 msgid ""
 "Lzip is a lossless data compressor with a user interface similar to the\n"
 "one of gzip or bzip2.  Lzip decompresses almost as fast as gzip and compresses\n"
@@ -2099,11 +2380,11 @@ msgid ""
 "archiving.  Lzip is a clean implementation of the LZMA algorithm."
 msgstr ""
 
-#: gnu/packages/compression.scm:586
+#: gnu/packages/compression.scm:634
 msgid "Recover and decompress data from damaged lzip files"
 msgstr ""
 
-#: gnu/packages/compression.scm:588
+#: gnu/packages/compression.scm:636
 msgid ""
 "Lziprecover is a data recovery tool and decompressor for files in the lzip\n"
 "compressed data format (.lz).  It can test the integrity of lzip files, extract\n"
@@ -2119,11 +2400,11 @@ msgid ""
 "decompressors when faced with corrupted input."
 msgstr ""
 
-#: gnu/packages/compression.scm:643
+#: gnu/packages/compression.scm:691
 msgid "Archives in shell scripts, uuencode/uudecode"
 msgstr ""
 
-#: gnu/packages/compression.scm:645
+#: gnu/packages/compression.scm:693
 msgid ""
 "GNU sharutils is a package for creating and manipulating shell\n"
 "archives that can be readily emailed.  A shell archive is a file that can be\n"
@@ -2131,41 +2412,41 @@ msgid ""
 "This package is mostly for compatibility and historical interest."
 msgstr ""
 
-#: gnu/packages/compression.scm:677
+#: gnu/packages/compression.scm:725
 msgid "Library for SoundFont decompression"
 msgstr ""
 
-#: gnu/packages/compression.scm:679
+#: gnu/packages/compression.scm:727
 msgid ""
 "SfArkLib is a C++ library for decompressing SoundFont files compressed\n"
 "with the sfArk algorithm."
 msgstr ""
 
-#: gnu/packages/compression.scm:714
+#: gnu/packages/compression.scm:762
 msgid "Basic sfArk decompressor"
 msgstr ""
 
-#: gnu/packages/compression.scm:715
+#: gnu/packages/compression.scm:763
 msgid ""
 "SfArk extractor converts SoundFonts in the compressed legacy\n"
 "sfArk file format to the uncompressed sf2 format."
 msgstr ""
 
-#: gnu/packages/compression.scm:733
+#: gnu/packages/compression.scm:781
 msgid "Compression tools for some formats used by Microsoft"
 msgstr ""
 
-#: gnu/packages/compression.scm:735
+#: gnu/packages/compression.scm:783
 msgid ""
 "The purpose of libmspack is to provide both compression and\n"
 "decompression of some loosely related file formats used by Microsoft."
 msgstr ""
 
-#: gnu/packages/compression.scm:776
+#: gnu/packages/compression.scm:824
 msgid "Compression algorithm focused on speed"
 msgstr ""
 
-#: gnu/packages/compression.scm:777
+#: gnu/packages/compression.scm:825
 msgid ""
 "LZ4 is a lossless compression algorithm, providing\n"
 "compression speed at 400 MB/s per core (0.16 Bytes/cycle).  It also features an\n"
@@ -2174,11 +2455,11 @@ msgid ""
 "time for compression ratio."
 msgstr ""
 
-#: gnu/packages/compression.scm:819
+#: gnu/packages/compression.scm:867
 msgid "Tools to create and extract squashfs file systems"
 msgstr ""
 
-#: gnu/packages/compression.scm:821
+#: gnu/packages/compression.scm:869
 msgid ""
 "Squashfs is a highly compressed read-only file system for Linux.  It uses\n"
 "zlib to compress files, inodes, and directories.  All blocks are packed to\n"
@@ -2188,21 +2469,21 @@ msgid ""
 "extract such file systems."
 msgstr ""
 
-#: gnu/packages/compression.scm:858
+#: gnu/packages/compression.scm:907
 msgid "Parallel implementation of gzip"
 msgstr ""
 
-#: gnu/packages/compression.scm:860
+#: gnu/packages/compression.scm:909
 msgid ""
 "This package provides a parallel implementation of gzip that exploits\n"
 "multiple processors and multiple cores when compressing data."
 msgstr ""
 
-#: gnu/packages/compression.scm:884
+#: gnu/packages/compression.scm:933
 msgid "Parallel indexing implementation of LZMA"
 msgstr ""
 
-#: gnu/packages/compression.scm:886
+#: gnu/packages/compression.scm:935
 msgid ""
 "The existing XZ Utils provide great compression in the .xz file format,\n"
 "but they produce just one big block of compressed data.  Pixz instead produces\n"
@@ -2211,11 +2492,11 @@ msgid ""
 "tarballs."
 msgstr ""
 
-#: gnu/packages/compression.scm:921
+#: gnu/packages/compression.scm:970
 msgid "Patch binary files"
 msgstr ""
 
-#: gnu/packages/compression.scm:923
+#: gnu/packages/compression.scm:972
 msgid ""
 "@command{bsdiff} and @command{bspatch} are tools for building and\n"
 "applying patches to binary files.  By using suffix sorting (specifically\n"
@@ -2224,19 +2505,19 @@ msgid ""
 "smaller than those produced by @code{Xdelta}."
 msgstr ""
 
-#: gnu/packages/compression.scm:969
+#: gnu/packages/compression.scm:1018
 msgid "Tool to unpack Cabinet archives"
 msgstr ""
 
-#: gnu/packages/compression.scm:970
+#: gnu/packages/compression.scm:1019
 msgid "Extracts files out of Microsoft Cabinet (.cab) archives"
 msgstr ""
 
-#: gnu/packages/compression.scm:1003
+#: gnu/packages/compression.scm:1052
 msgid "Delta encoder for binary files"
 msgstr ""
 
-#: gnu/packages/compression.scm:1004
+#: gnu/packages/compression.scm:1053
 msgid ""
 "xdelta encodes only the differences between two binary files\n"
 "using the VCDIFF algorithm and patch file format described in RFC 3284.  It can\n"
@@ -2245,11 +2526,11 @@ msgid ""
 "human-readable output."
 msgstr ""
 
-#: gnu/packages/compression.scm:1037
+#: gnu/packages/compression.scm:1086
 msgid "Large file compressor with a very high compression ratio"
 msgstr ""
 
-#: gnu/packages/compression.scm:1038
+#: gnu/packages/compression.scm:1087
 msgid ""
 "lrzip is a compression utility that uses long-range\n"
 "redundancy reduction to improve the subsequent compression ratio of\n"
@@ -2260,11 +2541,11 @@ msgid ""
 "well as bzip2."
 msgstr ""
 
-#: gnu/packages/compression.scm:1066
+#: gnu/packages/compression.scm:1115
 msgid "Fast compressor/decompressor"
 msgstr ""
 
-#: gnu/packages/compression.scm:1067
+#: gnu/packages/compression.scm:1116
 msgid ""
 "Snappy is a compression/decompression library.  It does not\n"
 "aim for maximum compression, or compatibility with any other compression library;\n"
@@ -2274,31 +2555,31 @@ msgid ""
 "100% bigger."
 msgstr ""
 
-#: gnu/packages/compression.scm:1136
+#: gnu/packages/compression.scm:1185
 msgid "Command-line file archiver with high compression ratio"
 msgstr ""
 
-#: gnu/packages/compression.scm:1137
+#: gnu/packages/compression.scm:1186
 msgid ""
 "p7zip is a command-line port of 7-Zip, a file archiver that\n"
 "handles the 7z format which features very high compression ratios."
 msgstr ""
 
-#: gnu/packages/compression.scm:1178
+#: gnu/packages/compression.scm:1227
 msgid "Compressed C++ iostream"
 msgstr ""
 
-#: gnu/packages/compression.scm:1179
+#: gnu/packages/compression.scm:1228
 msgid ""
 "gzstream is a small library for providing zlib\n"
 "functionality in a C++ iostream."
 msgstr ""
 
-#: gnu/packages/compression.scm:1228
+#: gnu/packages/compression.scm:1277
 msgid "Incremental journaling archiver"
 msgstr ""
 
-#: gnu/packages/compression.scm:1229
+#: gnu/packages/compression.scm:1278
 msgid ""
 "ZPAQ is a command-line archiver for realistic situations with\n"
 "many duplicate and already compressed files.  It backs up only those files\n"
@@ -2312,21 +2593,21 @@ msgid ""
 "or junctions, and always follows hard links."
 msgstr ""
 
-#: gnu/packages/compression.scm:1329
+#: gnu/packages/compression.scm:1378
 msgid "Extract CAB files from InstallShield installers"
 msgstr ""
 
-#: gnu/packages/compression.scm:1331
+#: gnu/packages/compression.scm:1380
 msgid ""
 "@command{unshield} is a tool and library for extracting @file{.cab}\n"
 " archives from InstallShield installers."
 msgstr ""
 
-#: gnu/packages/compression.scm:1389
+#: gnu/packages/compression.scm:1436
 msgid "Zstandard real-time compression algorithm"
 msgstr ""
 
-#: gnu/packages/compression.scm:1390
+#: gnu/packages/compression.scm:1437
 msgid ""
 "Zstandard (@command{zstd}) is a lossless compression algorithm\n"
 "that combines very fast operation with a compression ratio comparable to that of\n"
@@ -2336,11 +2617,11 @@ msgid ""
 "speed."
 msgstr ""
 
-#: gnu/packages/compression.scm:1432
+#: gnu/packages/compression.scm:1479
 msgid "Threaded implementation of the Zstandard compression algorithm"
 msgstr ""
 
-#: gnu/packages/compression.scm:1433
+#: gnu/packages/compression.scm:1480
 msgid ""
 "Parallel Zstandard (PZstandard or @command{pzstd}) is a\n"
 "multi-threaded implementation of the @uref{http://zstd.net/, Zstandard\n"
@@ -2353,11 +2634,11 @@ msgid ""
 "the actual decompression, the other input and output."
 msgstr ""
 
-#: gnu/packages/compression.scm:1471
+#: gnu/packages/compression.scm:1518
 msgid "Compression and file packing utility"
 msgstr "Dateien vergleichen und in Archive bündeln"
 
-#: gnu/packages/compression.scm:1473
+#: gnu/packages/compression.scm:1520
 msgid ""
 "Zip is a compression and file packaging/archive utility.  Zip is useful\n"
 "for packaging a set of files for distribution, for archiving files, and for\n"
@@ -2372,11 +2653,11 @@ msgid ""
 "Compression ratios of 2:1 to 3:1 are common for text files."
 msgstr ""
 
-#: gnu/packages/compression.scm:1535
+#: gnu/packages/compression.scm:1582
 msgid "Decompression and file extraction utility"
 msgstr ""
 
-#: gnu/packages/compression.scm:1537
+#: gnu/packages/compression.scm:1584
 msgid ""
 "UnZip is an extraction utility for archives compressed in .zip format,\n"
 "also called \"zipfiles\".\n"
@@ -2387,19 +2668,19 @@ msgid ""
 "recreates the stored directory structure by default."
 msgstr ""
 
-#: gnu/packages/compression.scm:1582
+#: gnu/packages/compression.scm:1629
 msgid "Library for accessing zip files"
 msgstr ""
 
-#: gnu/packages/compression.scm:1584
+#: gnu/packages/compression.scm:1631
 msgid "ZZipLib is a library based on zlib for accessing zip files."
 msgstr ""
 
-#: gnu/packages/compression.scm:1616
+#: gnu/packages/compression.scm:1656
 msgid "C library for reading, creating, and modifying zip archives"
 msgstr ""
 
-#: gnu/packages/compression.scm:1617
+#: gnu/packages/compression.scm:1657
 msgid ""
 "Libzip is a C library for reading, creating, and modifying\n"
 "zip archives.  Files can be added from data buffers, files, or compressed data\n"
@@ -2407,11 +2688,11 @@ msgid ""
 "archive can be reverted."
 msgstr ""
 
-#: gnu/packages/compression.scm:1650
+#: gnu/packages/compression.scm:1690
 msgid "Universal tool to manage file archives of various types"
 msgstr ""
 
-#: gnu/packages/compression.scm:1651
+#: gnu/packages/compression.scm:1691
 msgid ""
 "The main command is @command{aunpack} which extracts files\n"
 "from an archive.  The other commands provided are @command{apack} (to create\n"
@@ -2421,11 +2702,11 @@ msgid ""
 "of archives."
 msgstr ""
 
-#: gnu/packages/compression.scm:1675
+#: gnu/packages/compression.scm:1715
 msgid "Small, stand-alone lzip decompressor"
 msgstr ""
 
-#: gnu/packages/compression.scm:1677
+#: gnu/packages/compression.scm:1717
 msgid ""
 "Lunzip is a decompressor for files in the lzip compression format (.lz),\n"
 "written as a single small C tool with no dependencies.  This makes it\n"
@@ -2435,11 +2716,11 @@ msgid ""
 "Lunzip is intended to be fully compatible with the regular lzip package."
 msgstr ""
 
-#: gnu/packages/compression.scm:1702
+#: gnu/packages/compression.scm:1742
 msgid "Small, stand-alone lzip compressor and decompressor"
 msgstr ""
 
-#: gnu/packages/compression.scm:1704
+#: gnu/packages/compression.scm:1744
 msgid ""
 "Clzip is a compressor and decompressor for files in the lzip compression\n"
 "format (.lz), written as a single small C tool with no dependencies.  This makes\n"
@@ -2448,11 +2729,11 @@ msgid ""
 "Clzip is intended to be fully compatible with the regular lzip package."
 msgstr ""
 
-#: gnu/packages/compression.scm:1729
+#: gnu/packages/compression.scm:1770
 msgid "Lzip data compression C library"
 msgstr ""
 
-#: gnu/packages/compression.scm:1731
+#: gnu/packages/compression.scm:1772
 msgid ""
 "Lzlib is a C library for in-memory LZMA compression and decompression in\n"
 "the lzip format.  It supports integrity checking of the decompressed data, and\n"
@@ -2460,11 +2741,11 @@ msgid ""
 "corrupted input."
 msgstr ""
 
-#: gnu/packages/compression.scm:1753
+#: gnu/packages/compression.scm:1794
 msgid "Parallel lossless data compressor for the lzip format"
 msgstr ""
 
-#: gnu/packages/compression.scm:1755
+#: gnu/packages/compression.scm:1796
 msgid ""
 "Plzip is a massively parallel (multi-threaded) lossless data compressor\n"
 "and decompressor that uses the lzip file format (.lz).  Files produced by plzip\n"
@@ -2478,21 +2759,21 @@ msgid ""
 "single-member files which can't be decompressed in parallel."
 msgstr ""
 
-#: gnu/packages/compression.scm:1800
+#: gnu/packages/compression.scm:1829
 msgid "Tool for extracting Inno Setup installers"
 msgstr ""
 
-#: gnu/packages/compression.scm:1801
+#: gnu/packages/compression.scm:1830
 msgid ""
 "innoextract allows extracting Inno Setup installers under\n"
 "non-Windows systems without running the actual installer using wine."
 msgstr ""
 
-#: gnu/packages/compression.scm:1839
+#: gnu/packages/compression.scm:1868
 msgid "General-purpose lossless compression"
 msgstr ""
 
-#: gnu/packages/compression.scm:1840
+#: gnu/packages/compression.scm:1869
 msgid ""
 "This package provides the reference implementation of Brotli,\n"
 "a generic-purpose lossless compression algorithm that compresses data using a\n"
@@ -2504,11 +2785,22 @@ msgid ""
 "The specification of the Brotli Compressed Data Format is defined in RFC 7932."
 msgstr ""
 
-#: gnu/packages/compression.scm:1871
+#: gnu/packages/compression.scm:1889
+msgid "Python interface to google-brotli"
+msgstr ""
+
+#: gnu/packages/compression.scm:1890
+msgid ""
+"@code{python-google-brotli} provides a Python interface to\n"
+"@code{google-brotli}, an implementation of the Brotli lossless compression\n"
+"algorithm."
+msgstr ""
+
+#: gnu/packages/compression.scm:1911
 msgid "Portable lossless data compression library"
 msgstr ""
 
-#: gnu/packages/compression.scm:1872
+#: gnu/packages/compression.scm:1912
 msgid ""
 "UCL implements a number of compression algorithms that\n"
 "achieve an excellent compression ratio while allowing fast decompression.\n"
@@ -2518,11 +2810,11 @@ msgid ""
 "decompression is a little bit slower."
 msgstr ""
 
-#: gnu/packages/compression.scm:1918
+#: gnu/packages/compression.scm:1958
 msgid "Compression tool for executables"
 msgstr ""
 
-#: gnu/packages/compression.scm:1920
+#: gnu/packages/compression.scm:1960
 msgid ""
 "The Ultimate Packer for eXecutables (UPX) is an executable file\n"
 "compressor.  UPX typically reduces the file size of programs and shared\n"
@@ -2530,11 +2822,11 @@ msgid ""
 "download times, and other distribution and storage costs."
 msgstr ""
 
-#: gnu/packages/compression.scm:1948
+#: gnu/packages/compression.scm:1988
 msgid "Qt/C++ wrapper for Minizip"
 msgstr ""
 
-#: gnu/packages/compression.scm:1949
+#: gnu/packages/compression.scm:1989
 msgid ""
 "QuaZIP is a simple C++ wrapper over Gilles Vollant's\n"
 "ZIP/UNZIP package that can be used to access ZIP archives.  It uses\n"
@@ -2548,11 +2840,11 @@ msgid ""
 "reading from and writing to ZIP archives. "
 msgstr ""
 
-#: gnu/packages/compression.scm:1991
+#: gnu/packages/compression.scm:2036
 msgid "Utilities that transparently operate on compressed files"
 msgstr ""
 
-#: gnu/packages/compression.scm:1993
+#: gnu/packages/compression.scm:2038
 msgid ""
 "Zutils is a collection of utilities able to process any combination of\n"
 "compressed and uncompressed files transparently.  If any given file, including\n"
@@ -2569,22 +2861,22 @@ msgid ""
 "at run time, and must be installed separately."
 msgstr ""
 
-#: gnu/packages/compression.scm:2050
+#: gnu/packages/compression.scm:2095
 msgid "Extract makeself and mojo archives without running untrusted code"
 msgstr ""
 
-#: gnu/packages/compression.scm:2051
+#: gnu/packages/compression.scm:2096
 msgid ""
 "This package provides a script to unpack self-extracting\n"
 "archives generated by @command{makeself} or @command{mojo} without running the\n"
 "possibly untrusted extraction shell script."
 msgstr ""
 
-#: gnu/packages/compression.scm:2078
+#: gnu/packages/compression.scm:2123
 msgid "Original Lempel-Ziv compress/uncompress programs"
 msgstr ""
 
-#: gnu/packages/compression.scm:2079
+#: gnu/packages/compression.scm:2124
 msgid ""
 "(N)compress provides the original compress and uncompress\n"
 "programs that used to be the de facto UNIX standard for compressing and\n"
@@ -2592,32 +2884,95 @@ msgid ""
 "file compression algorithm."
 msgstr ""
 
-#: gnu/packages/databases.scm:174
+#: gnu/packages/compression.scm:2153
+msgid "Graphical front-end for archive operations"
+msgstr ""
+
+#: gnu/packages/compression.scm:2154
+msgid ""
+"Xarchiver is a front-end to various command line archiving\n"
+"tools.  It uses GTK+ tool-kit and is designed to be desktop-environment\n"
+"independent.  Supported formats are 7z, ARJ, bzip2, gzip, LHA, lzma, lzop,\n"
+"RAR, RPM, DEB, tar, and ZIP.  It cannot perform functions for archives, whose\n"
+"archiver is not installed."
+msgstr ""
+
+#: gnu/packages/compression.scm:2189
+msgid "Multithreaded tar utility"
+msgstr ""
+
+#: gnu/packages/compression.scm:2191
+msgid ""
+"Archive huge numbers of files, or split massive tar archives into smaller\n"
+"chunks."
+msgstr ""
+
+#: gnu/packages/compression.scm:2210
+msgid "Blocking, shuffling and lossless compression library"
+msgstr ""
+
+#: gnu/packages/compression.scm:2212
+msgid ""
+"Blosc is a high performance compressor optimized for binary data. It has\n"
+"been designed to transmit data to the processor cache faster than the\n"
+"traditional, non-compressed, direct memory fetch approach via a\n"
+"@code{memcpy()} system call.  Blosc is meant not only to reduce the size of\n"
+"large datasets on-disk or in-memory, but also to accelerate memory-bound\n"
+"computations."
+msgstr ""
+
+#: gnu/packages/compression.scm:2249
+msgid "Error code modeler"
+msgstr ""
+
+#: gnu/packages/compression.scm:2250
+msgid ""
+"ECM is a utility that converts ECM files, i.e., CD data files\n"
+"with their error correction data losslessly rearranged for better compression,\n"
+"to their original, binary CD format."
+msgstr ""
+
+#: gnu/packages/compression.scm:2272
+msgid "Combination of the tar archiver and the lzip compressor"
+msgstr ""
+
+#: gnu/packages/compression.scm:2274
+msgid ""
+"Tarlz is a massively parallel (multi-threaded) combined implementation of\n"
+"the tar archiver and the lzip compressor.  Tarlz creates, lists, and extracts\n"
+"archives in a simplified and safer variant of the POSIX pax format compressed\n"
+"with lzip, keeping the alignment between tar members and lzip members.  The\n"
+"resulting multimember tar.lz archive is fully backward compatible with standard\n"
+"tar tools like GNU tar, which treat it like any other tar.lz archive.  Tarlz\n"
+"can append files to the end of such compressed archives."
+msgstr ""
+
+#: gnu/packages/databases.scm:183
 msgid "Clustered RDF storage and query engine"
 msgstr ""
 
-#: gnu/packages/databases.scm:175
+#: gnu/packages/databases.scm:184
 msgid ""
 "4store is a RDF/SPARQL store written in C, supporting\n"
 "either single machines or networked clusters."
 msgstr ""
 
-#: gnu/packages/databases.scm:217
+#: gnu/packages/databases.scm:226
 msgid "@code{mgo} offers a rich MongoDB driver for Go."
 msgstr ""
 
-#: gnu/packages/databases.scm:219
+#: gnu/packages/databases.scm:228
 msgid ""
 "@code{mgo} (pronounced as mango) is a MongoDB driver for the Go language.\n"
 "It implements a rich selection of features under a simple API following\n"
 "standard Go idioms."
 msgstr ""
 
-#: gnu/packages/databases.scm:278
+#: gnu/packages/databases.scm:274
 msgid "Run temporary PostgreSQL databases"
 msgstr ""
 
-#: gnu/packages/databases.scm:280
+#: gnu/packages/databases.scm:276
 msgid ""
 "@code{pg_tmp} creates temporary PostgreSQL databases, suitable for tasks\n"
 "like running software test suites.  Temporary databases created with\n"
@@ -2626,43 +2981,43 @@ msgid ""
 "60)."
 msgstr ""
 
-#: gnu/packages/databases.scm:307
+#: gnu/packages/databases.scm:303
 msgid "Utility for dumping and restoring ElasticSearch indexes"
 msgstr ""
 
-#: gnu/packages/databases.scm:309
+#: gnu/packages/databases.scm:305
 msgid ""
 "This package provides a utility for dumping the contents of an\n"
 "ElasticSearch index to a compressed file and restoring the dumpfile back to an\n"
 "ElasticSearch server"
 msgstr ""
 
-#: gnu/packages/databases.scm:334
+#: gnu/packages/databases.scm:330
 msgid "Fast key-value storage library"
 msgstr ""
 
-#: gnu/packages/databases.scm:336
+#: gnu/packages/databases.scm:332
 msgid ""
 "LevelDB is a fast key-value storage library that provides an ordered\n"
 "mapping from string keys to string values."
 msgstr ""
 
-#: gnu/packages/databases.scm:356
+#: gnu/packages/databases.scm:352
 msgid "In-memory caching service"
 msgstr ""
 
-#: gnu/packages/databases.scm:357
+#: gnu/packages/databases.scm:353
 msgid ""
 "Memcached is an in-memory key-value store.  It has a small\n"
 "and generic API, and was originally intended for use with dynamic web\n"
 "applications."
 msgstr ""
 
-#: gnu/packages/databases.scm:434
+#: gnu/packages/databases.scm:430
 msgid "C++ library for memcached"
 msgstr ""
 
-#: gnu/packages/databases.scm:435
+#: gnu/packages/databases.scm:431
 msgid ""
 "libMemcached is a library to use memcached in C/C++\n"
 "applications.  It comes with a complete reference guide and documentation of\n"
@@ -2676,22 +3031,22 @@ msgid ""
 "@end itemize"
 msgstr ""
 
-#: gnu/packages/databases.scm:473
+#: gnu/packages/databases.scm:469
 msgid "Python client for memcached"
 msgstr ""
 
-#: gnu/packages/databases.scm:475
+#: gnu/packages/databases.scm:471
 msgid ""
 "@code{pylibmc} is a client in Python for memcached.  It is a wrapper\n"
 "around TangentOrg’s libmemcached library, and can be used as a drop-in\n"
 "replacement for the code@{python-memcached} library."
 msgstr ""
 
-#: gnu/packages/databases.scm:610
+#: gnu/packages/databases.scm:606
 msgid "High performance and high availability document database"
 msgstr ""
 
-#: gnu/packages/databases.scm:612
+#: gnu/packages/databases.scm:608
 msgid ""
 "Mongo is a high-performance, high availability, schema-free\n"
 "document-oriented database.  A key goal of MongoDB is to bridge the gap\n"
@@ -2699,42 +3054,52 @@ msgid ""
 "RDBMS systems (which are deep in functionality)."
 msgstr ""
 
-#: gnu/packages/databases.scm:685
+#: gnu/packages/databases.scm:640
+msgid "Terminal Client for MySQL with AutoCompletion and Syntax Highlighting"
+msgstr ""
+
+#: gnu/packages/databases.scm:642
+msgid ""
+"MyCLI is a command line interface for MySQL, MariaDB, and Percona with\n"
+"auto-completion and syntax highlighting."
+msgstr ""
+
+#: gnu/packages/databases.scm:711
 msgid "Fast, easy to use, and popular database"
 msgstr ""
 
-#: gnu/packages/databases.scm:687
+#: gnu/packages/databases.scm:713
 msgid ""
 "MySQL is a fast, reliable, and easy to use relational database\n"
 "management system that supports the standardized Structured Query\n"
 "Language."
 msgstr ""
 
-#: gnu/packages/databases.scm:926
+#: gnu/packages/databases.scm:966
 msgid "SQL database server"
 msgstr ""
 
-#: gnu/packages/databases.scm:928
+#: gnu/packages/databases.scm:968
 msgid ""
 "MariaDB is a multi-user and multi-threaded SQL database server, designed\n"
 "as a drop-in replacement of MySQL."
 msgstr ""
 
-#: gnu/packages/databases.scm:952
+#: gnu/packages/databases.scm:991
 msgid "Client library to connect to MySQL or MariaDB"
 msgstr ""
 
-#: gnu/packages/databases.scm:953
+#: gnu/packages/databases.scm:992
 msgid ""
 "The MariaDB Connector/C is used to connect applications\n"
 "developed in C/C++ to MariaDB and MySQL databases."
 msgstr ""
 
-#: gnu/packages/databases.scm:994
+#: gnu/packages/databases.scm:1033
 msgid "Powerful object-relational database system"
 msgstr ""
 
-#: gnu/packages/databases.scm:996
+#: gnu/packages/databases.scm:1035
 msgid ""
 "PostgreSQL is a powerful object-relational database system.  It is fully\n"
 "ACID compliant, has full support for foreign keys, joins, views, triggers, and\n"
@@ -2744,21 +3109,21 @@ msgid ""
 "pictures, sounds, or video."
 msgstr ""
 
-#: gnu/packages/databases.scm:1048
+#: gnu/packages/databases.scm:1089
 msgid "Pure-Python MySQL driver"
 msgstr ""
 
-#: gnu/packages/databases.scm:1050
+#: gnu/packages/databases.scm:1091
 msgid ""
 "PyMySQL is a pure-Python MySQL client library, based on PEP 249.\n"
 "Most public APIs are compatible with @command{mysqlclient} and MySQLdb."
 msgstr ""
 
-#: gnu/packages/databases.scm:1076
+#: gnu/packages/databases.scm:1117
 msgid "Key-value database"
 msgstr ""
 
-#: gnu/packages/databases.scm:1077
+#: gnu/packages/databases.scm:1118
 msgid ""
 "QDBM is a library of routines for managing a\n"
 "database.  The database is a simple data file containing key-value\n"
@@ -2768,11 +3133,11 @@ msgid ""
 "organized in a hash table or B+ tree."
 msgstr ""
 
-#: gnu/packages/databases.scm:1112
+#: gnu/packages/databases.scm:1153
 msgid "Manipulate plain text files as databases"
 msgstr "Bearbeitung von Datenbanken in Form einfacher Textdateien"
 
-#: gnu/packages/databases.scm:1114
+#: gnu/packages/databases.scm:1155
 msgid ""
 "GNU Recutils is a set of tools and libraries for creating and\n"
 "manipulating text-based, human-editable databases.  Despite being text-based,\n"
@@ -2787,11 +3152,11 @@ msgstr ""
 "Zeitstempel und vieles mehr. Viele verschiedene Feldtypen sowie Verschlüsselung\n"
 "werden unterstützt."
 
-#: gnu/packages/databases.scm:1136
+#: gnu/packages/databases.scm:1177
 msgid "Emacs mode for working with recutils database files"
 msgstr ""
 
-#: gnu/packages/databases.scm:1137
+#: gnu/packages/databases.scm:1178
 msgid ""
 "This package provides an Emacs major mode @code{rec-mode}\n"
 "for working with GNU Recutils text-based, human-editable databases.  It\n"
@@ -2799,11 +3164,11 @@ msgid ""
 "including field and record folding."
 msgstr ""
 
-#: gnu/packages/databases.scm:1231
+#: gnu/packages/databases.scm:1272
 msgid "Persistent key-value store for fast storage"
 msgstr ""
 
-#: gnu/packages/databases.scm:1233
+#: gnu/packages/databases.scm:1274
 msgid ""
 "RocksDB is a library that forms the core building block for a fast\n"
 "key-value server, especially suited for storing data on flash drives.  It\n"
@@ -2814,11 +3179,11 @@ msgid ""
 "data in a single database.  RocksDB is partially based on @code{LevelDB}."
 msgstr ""
 
-#: gnu/packages/databases.scm:1293
+#: gnu/packages/databases.scm:1335
 msgid "Command-line tool for accessing SPARQL endpoints over HTTP"
 msgstr ""
 
-#: gnu/packages/databases.scm:1294
+#: gnu/packages/databases.scm:1336
 msgid ""
 "Sparql-query is a command-line tool for accessing SPARQL\n"
 "endpoints over HTTP.  It has been intentionally designed to @code{feel} similar to\n"
@@ -2829,21 +3194,21 @@ msgid ""
 "for example from a shell script."
 msgstr ""
 
-#: gnu/packages/databases.scm:1382
+#: gnu/packages/databases.scm:1427
 msgid "Database change management tool"
 msgstr ""
 
-#: gnu/packages/databases.scm:1384
+#: gnu/packages/databases.scm:1429
 msgid ""
 "Sqitch is a standalone change management system for database schemas,\n"
 "which uses SQL to describe changes."
 msgstr ""
 
-#: gnu/packages/databases.scm:1411
+#: gnu/packages/databases.scm:1456
 msgid "Text console-based database viewer and editor"
 msgstr ""
 
-#: gnu/packages/databases.scm:1413
+#: gnu/packages/databases.scm:1458
 msgid ""
 "SQLcrush lets you view and edit a database directly from the text\n"
 "console through an ncurses interface.  You can explore each table's structure,\n"
@@ -2851,11 +3216,11 @@ msgid ""
 "changes."
 msgstr ""
 
-#: gnu/packages/databases.scm:1449
+#: gnu/packages/databases.scm:1494
 msgid "Trivial database"
 msgstr ""
 
-#: gnu/packages/databases.scm:1451
+#: gnu/packages/databases.scm:1496
 msgid ""
 "TDB is a Trivial Database.  In concept, it is very much like GDBM,\n"
 "and BSD's DB except that it allows multiple simultaneous writers and uses\n"
@@ -2863,19 +3228,19 @@ msgid ""
 "extremely small."
 msgstr ""
 
-#: gnu/packages/databases.scm:1470
+#: gnu/packages/databases.scm:1515
 msgid "Database independent interface for Perl"
 msgstr ""
 
-#: gnu/packages/databases.scm:1471
+#: gnu/packages/databases.scm:1516
 msgid "This package provides an database interface for Perl."
 msgstr ""
 
-#: gnu/packages/databases.scm:1519
+#: gnu/packages/databases.scm:1563
 msgid "Extensible and flexible object <-> relational mapper"
 msgstr ""
 
-#: gnu/packages/databases.scm:1520
+#: gnu/packages/databases.scm:1564
 msgid ""
 "An SQL to OO mapper with an object API inspired by\n"
 "Class::DBI (with a compatibility layer as a springboard for porting) and a\n"
@@ -2887,21 +3252,21 @@ msgid ""
 "\"ORDER BY\" and \"HAVING\" support."
 msgstr ""
 
-#: gnu/packages/databases.scm:1551
+#: gnu/packages/databases.scm:1595
 msgid "Cursor with built-in caching support"
 msgstr ""
 
-#: gnu/packages/databases.scm:1552
+#: gnu/packages/databases.scm:1596
 msgid ""
 "DBIx::Class::Cursor::Cached provides a cursor class with\n"
 "built-in caching support."
 msgstr ""
 
-#: gnu/packages/databases.scm:1574
+#: gnu/packages/databases.scm:1618
 msgid "Introspect many-to-many relationships"
 msgstr ""
 
-#: gnu/packages/databases.scm:1575
+#: gnu/packages/databases.scm:1619
 msgid ""
 "Because the many-to-many relationships are not real\n"
 "relationships, they can not be introspected with DBIx::Class.  Many-to-many\n"
@@ -2911,42 +3276,42 @@ msgid ""
 "introspected and examined."
 msgstr ""
 
-#: gnu/packages/databases.scm:1633
+#: gnu/packages/databases.scm:1677
 msgid "Create a DBIx::Class::Schema based on a database"
 msgstr ""
 
-#: gnu/packages/databases.scm:1634
+#: gnu/packages/databases.scm:1678
 msgid ""
 "DBIx::Class::Schema::Loader automates the definition of a\n"
 "DBIx::Class::Schema by scanning database table definitions and setting up the\n"
 "columns, primary keys, unique constraints and relationships."
 msgstr ""
 
-#: gnu/packages/databases.scm:1658
+#: gnu/packages/databases.scm:1702
 msgid "DBI PostgreSQL interface"
 msgstr ""
 
-#: gnu/packages/databases.scm:1659
+#: gnu/packages/databases.scm:1703
 msgid ""
 "This package provides a PostgreSQL driver for the Perl5\n"
 "@dfn{Database Interface} (DBI)."
 msgstr ""
 
-#: gnu/packages/databases.scm:1696
+#: gnu/packages/databases.scm:1740
 msgid "DBI MySQL interface"
 msgstr ""
 
-#: gnu/packages/databases.scm:1697
+#: gnu/packages/databases.scm:1741
 msgid ""
 "This package provides a MySQL driver for the Perl5\n"
 "@dfn{Database Interface} (DBI)."
 msgstr ""
 
-#: gnu/packages/databases.scm:1716
+#: gnu/packages/databases.scm:1760
 msgid "SQlite interface for Perl"
 msgstr ""
 
-#: gnu/packages/databases.scm:1717
+#: gnu/packages/databases.scm:1761
 msgid ""
 "DBD::SQLite is a Perl DBI driver for SQLite, that includes\n"
 "the entire thing in the distribution.  So in order to get a fast transaction\n"
@@ -2954,23 +3319,23 @@ msgid ""
 "module, and nothing else."
 msgstr ""
 
-#: gnu/packages/databases.scm:1740
+#: gnu/packages/databases.scm:1784
 #, scheme-format
 msgid "Parse and utilize MySQL's /etc/my.cnf and ~/.my.cnf files"
 msgstr ""
 
-#: gnu/packages/databases.scm:1742
+#: gnu/packages/databases.scm:1786
 msgid ""
 "@code{MySQL::Config} emulates the @code{load_defaults} function from\n"
-"libmysqlclient.  It will fill an aray with long options, ready to be parsed by\n"
+"libmysqlclient.  It will fill an array with long options, ready to be parsed by\n"
 "@code{Getopt::Long}."
 msgstr ""
 
-#: gnu/packages/databases.scm:1770
+#: gnu/packages/databases.scm:1814 gnu/packages/databases.scm:1843
 msgid "Generate SQL from Perl data structures"
 msgstr ""
 
-#: gnu/packages/databases.scm:1771
+#: gnu/packages/databases.scm:1815
 msgid ""
 "This module was inspired by the excellent DBIx::Abstract.\n"
 "While based on the concepts used by DBIx::Abstract, the concepts used have\n"
@@ -2980,43 +3345,59 @@ msgid ""
 "time your data changes."
 msgstr ""
 
-#: gnu/packages/databases.scm:1800
+#: gnu/packages/databases.scm:1845
+msgid ""
+"This module is nearly identical to @code{SQL::Abstract} 1.81, and exists\n"
+"to preserve the ability of users to opt into the new way of doing things in\n"
+"later versions according to their own schedules.\n"
+"\n"
+"It is an abstract SQL generation module based on the concepts used by\n"
+"@code{DBIx::Abstract}, with several important differences, especially when it\n"
+"comes to @code{WHERE} clauses.  These concepts were modified to make the SQL\n"
+"easier to generate from Perl data structures.\n"
+"\n"
+"The underlying idea is for this module to do what you mean, based on the data\n"
+"structures you provide it.  You shouldn't have to modify your code every time\n"
+"your data changes, as this module figures it out."
+msgstr ""
+
+#: gnu/packages/databases.scm:1880
 msgid "Split SQL code into atomic statements"
 msgstr ""
 
-#: gnu/packages/databases.scm:1801
+#: gnu/packages/databases.scm:1881
 msgid ""
 "This module tries to split any SQL code, even including\n"
 "non-standard extensions, into the atomic statements it is composed of."
 msgstr ""
 
-#: gnu/packages/databases.scm:1819
+#: gnu/packages/databases.scm:1899
 msgid "SQL tokenizer"
 msgstr ""
 
-#: gnu/packages/databases.scm:1820
+#: gnu/packages/databases.scm:1900
 msgid ""
 "SQL::Tokenizer is a tokenizer for SQL queries.  It does not\n"
 "claim to be a parser or query verifier.  It just creates sane tokens from a\n"
 "valid SQL query."
 msgstr ""
 
-#: gnu/packages/databases.scm:1838
+#: gnu/packages/databases.scm:1918
 msgid "Data source abstraction library"
 msgstr ""
 
-#: gnu/packages/databases.scm:1839
+#: gnu/packages/databases.scm:1919
 msgid ""
 "Unixodbc is a library providing an API with which to access\n"
 "data sources.  Data sources include SQL Servers and any software with an ODBC\n"
 "Driver."
 msgstr ""
 
-#: gnu/packages/databases.scm:1863
+#: gnu/packages/databases.scm:1943
 msgid "In-memory key/value and document store"
 msgstr ""
 
-#: gnu/packages/databases.scm:1865
+#: gnu/packages/databases.scm:1945
 msgid ""
 "UnQLite is an in-process software library which implements a\n"
 "self-contained, serverless, zero-configuration, transactional NoSQL\n"
@@ -3025,33 +3406,33 @@ msgid ""
 "similar to BerkeleyDB, LevelDB, etc."
 msgstr ""
 
-#: gnu/packages/databases.scm:1893
+#: gnu/packages/databases.scm:1973
 msgid "Key-value cache and store"
 msgstr ""
 
-#: gnu/packages/databases.scm:1894
+#: gnu/packages/databases.scm:1974
 msgid ""
 "Redis is an advanced key-value cache and store.  Redis\n"
 "supports many data structures including strings, hashes, lists, sets, sorted\n"
 "sets, bitmaps and hyperloglogs."
 msgstr ""
 
-#: gnu/packages/databases.scm:1921
+#: gnu/packages/databases.scm:2001
 msgid "Kyoto Cabinet is a modern implementation of the DBM database"
 msgstr ""
 
-#: gnu/packages/databases.scm:1923
+#: gnu/packages/databases.scm:2003
 msgid ""
 "Kyoto Cabinet is a standalone file-based database that supports Hash\n"
 "and B+ Tree data storage models.  It is a fast key-value lightweight\n"
 "database and supports many programming languages.  It is a NoSQL database."
 msgstr ""
 
-#: gnu/packages/databases.scm:1949
+#: gnu/packages/databases.scm:2029
 msgid "Tokyo Cabinet is a modern implementation of the DBM database"
 msgstr ""
 
-#: gnu/packages/databases.scm:1951
+#: gnu/packages/databases.scm:2031
 msgid ""
 "Tokyo Cabinet is a library of routines for managing a database.\n"
 "The database is a simple data file containing records, each is a pair of a\n"
@@ -3061,11 +3442,11 @@ msgid ""
 "organized in hash table, B+ tree, or fixed-length array."
 msgstr ""
 
-#: gnu/packages/databases.scm:1987
+#: gnu/packages/databases.scm:2067
 msgid "NoSQL data engine"
 msgstr ""
 
-#: gnu/packages/databases.scm:1989
+#: gnu/packages/databases.scm:2069
 msgid ""
 "WiredTiger is an extensible platform for data management.  It supports\n"
 "row-oriented storage (where all columns of a row are stored together),\n"
@@ -3074,29 +3455,29 @@ msgid ""
 "trees (LSM), for sustained throughput under random insert workloads."
 msgstr ""
 
-#: gnu/packages/databases.scm:2040
+#: gnu/packages/databases.scm:2120
 msgid "WiredTiger bindings for GNU Guile"
 msgstr ""
 
-#: gnu/packages/databases.scm:2042
+#: gnu/packages/databases.scm:2122
 msgid ""
 "This package provides Guile bindings to the WiredTiger ``NoSQL''\n"
 "database."
 msgstr ""
 
-#: gnu/packages/databases.scm:2074
+#: gnu/packages/databases.scm:2150
 msgid "Perl5 access to Berkeley DB version 1.x"
 msgstr ""
 
-#: gnu/packages/databases.scm:2076
+#: gnu/packages/databases.scm:2152
 msgid "The DB::File module provides Perl bindings to the Berkeley DB version 1.x."
 msgstr ""
 
-#: gnu/packages/databases.scm:2104
+#: gnu/packages/databases.scm:2180
 msgid "Lightning Memory-Mapped Database library"
 msgstr ""
 
-#: gnu/packages/databases.scm:2106
+#: gnu/packages/databases.scm:2182
 msgid ""
 "The @dfn{Lightning Memory-Mapped Database} (LMDB) is a high-performance\n"
 "transactional database.  Unlike more complex relational databases, LMDB handles\n"
@@ -3109,11 +3490,11 @@ msgid ""
 "virtual address space — not physical RAM."
 msgstr ""
 
-#: gnu/packages/databases.scm:2139
+#: gnu/packages/databases.scm:2215
 msgid "C++11 wrapper for the LMDB embedded B+ tree database library"
 msgstr ""
 
-#: gnu/packages/databases.scm:2140
+#: gnu/packages/databases.scm:2216
 msgid ""
 "@code{lmdbxx} is a comprehensive @code{C++} wrapper for the\n"
 "@code{LMDB} embedded database library, offering both an error-checked\n"
@@ -3121,22 +3502,22 @@ msgid ""
 "semantics."
 msgstr ""
 
-#: gnu/packages/databases.scm:2172
+#: gnu/packages/databases.scm:2248
 msgid "C++ connector for PostgreSQL"
 msgstr ""
 
-#: gnu/packages/databases.scm:2174
+#: gnu/packages/databases.scm:2250
 msgid ""
 "Libpqxx is a C++ library to enable user programs to communicate with the\n"
 "PostgreSQL database back-end.  The database back-end can be local or it may be\n"
 "on another machine, accessed via TCP/IP."
 msgstr ""
 
-#: gnu/packages/databases.scm:2197
+#: gnu/packages/databases.scm:2273
 msgid "Small object-relational mapping utility"
 msgstr ""
 
-#: gnu/packages/databases.scm:2199
+#: gnu/packages/databases.scm:2275
 msgid ""
 "Peewee is a simple and small ORM (object-relation mapping) tool.  Peewee\n"
 "handles converting between pythonic values and those used by databases, so you\n"
@@ -3145,11 +3526,11 @@ msgid ""
 "can autogenerate peewee models using @code{pwiz}, a model generator."
 msgstr ""
 
-#: gnu/packages/databases.scm:2235
+#: gnu/packages/databases.scm:2311
 msgid "Easy async ORM for python, built with relations in mind"
 msgstr ""
 
-#: gnu/packages/databases.scm:2237
+#: gnu/packages/databases.scm:2313
 msgid ""
 "Tortoise ORM is an easy-to-use asyncio ORM (Object Relational Mapper)\n"
 "inspired by Django.  Tortoise ORM was build with relations in mind and\n"
@@ -3158,11 +3539,11 @@ msgid ""
 "data."
 msgstr ""
 
-#: gnu/packages/databases.scm:2280
+#: gnu/packages/databases.scm:2356
 msgid "Library providing transparent encryption of SQLite database files"
 msgstr ""
 
-#: gnu/packages/databases.scm:2281
+#: gnu/packages/databases.scm:2357
 msgid ""
 "SQLCipher is an implementation of SQLite, extended to\n"
 "provide transparent 256-bit AES encryption of database files.  Pages are\n"
@@ -3171,27 +3552,27 @@ msgid ""
 "development."
 msgstr ""
 
-#: gnu/packages/databases.scm:2313 gnu/packages/databases.scm:2338
+#: gnu/packages/databases.scm:2389 gnu/packages/databases.scm:2414
 msgid "Python ODBC Library"
 msgstr "ODBC-Bibliothek für Python"
 
-#: gnu/packages/databases.scm:2314
+#: gnu/packages/databases.scm:2390
 msgid ""
 "@code{python-pyodbc-c} provides a Python DB-API driver\n"
 "for ODBC."
 msgstr ""
 
-#: gnu/packages/databases.scm:2339
+#: gnu/packages/databases.scm:2415
 msgid ""
 "@code{python-pyodbc} provides a Python DB-API driver\n"
 "for ODBC."
 msgstr ""
 
-#: gnu/packages/databases.scm:2371
+#: gnu/packages/databases.scm:2447
 msgid "Read Microsoft Access databases"
 msgstr ""
 
-#: gnu/packages/databases.scm:2372
+#: gnu/packages/databases.scm:2448
 msgid ""
 "MDB Tools is a set of tools and applications to read the\n"
 "proprietary MDB file format used in Microsoft's Access database package.  This\n"
@@ -3200,65 +3581,65 @@ msgid ""
 "etc., and an SQL engine for performing simple SQL queries."
 msgstr ""
 
-#: gnu/packages/databases.scm:2415
+#: gnu/packages/databases.scm:2492
 msgid "Python binding for the ‘Lightning’ database (LMDB)"
 msgstr ""
 
-#: gnu/packages/databases.scm:2417
+#: gnu/packages/databases.scm:2494
 msgid ""
 "python-lmdb or py-lmdb is a Python binding for the @dfn{Lightning\n"
 "Memory-Mapped Database} (LMDB), a high-performance key-value store."
 msgstr ""
 
-#: gnu/packages/databases.scm:2457
+#: gnu/packages/databases.scm:2531
 msgid "ActiveRecord ORM for Python"
 msgstr ""
 
-#: gnu/packages/databases.scm:2459
+#: gnu/packages/databases.scm:2533
 msgid ""
 "Orator provides a simple ActiveRecord-like Object Relational Mapping\n"
 "implementation for Python."
 msgstr ""
 
-#: gnu/packages/databases.scm:2492
+#: gnu/packages/databases.scm:2578
 msgid "Multi-model database system"
 msgstr ""
 
-#: gnu/packages/databases.scm:2493
+#: gnu/packages/databases.scm:2579
 msgid ""
 "Virtuoso is a scalable cross-platform server that combines\n"
 "relational, graph, and document data management with web application server\n"
 "and web services platform functionality."
 msgstr ""
 
-#: gnu/packages/databases.scm:2519
+#: gnu/packages/databases.scm:2605
 msgid ""
 "Cassandra Cluster Manager for Apache Cassandra clusters on\n"
 "localhost"
 msgstr ""
 
-#: gnu/packages/databases.scm:2521
+#: gnu/packages/databases.scm:2607
 msgid ""
 "Cassandra Cluster Manager is a development tool for testing\n"
 "local Cassandra clusters. It creates, launches and removes Cassandra clusters\n"
 "on localhost."
 msgstr ""
 
-#: gnu/packages/databases.scm:2547
+#: gnu/packages/databases.scm:2633
 msgid "SQLite bindings for Python"
 msgstr ""
 
-#: gnu/packages/databases.scm:2549
+#: gnu/packages/databases.scm:2635
 msgid ""
 "Pysqlite provides SQLite bindings for Python that comply to the\n"
 "Database API 2.0T."
 msgstr ""
 
-#: gnu/packages/databases.scm:2574
+#: gnu/packages/databases.scm:2660
 msgid "Database abstraction library"
 msgstr ""
 
-#: gnu/packages/databases.scm:2576
+#: gnu/packages/databases.scm:2662
 msgid ""
 "SQLAlchemy is the Python SQL toolkit and Object Relational Mapper that\n"
 "gives application developers the full power and flexibility of SQL.  It\n"
@@ -3267,11 +3648,11 @@ msgid ""
 "simple and Pythonic domain language."
 msgstr ""
 
-#: gnu/packages/databases.scm:2615
+#: gnu/packages/databases.scm:2701
 msgid "Various utility functions for SQLAlchemy"
 msgstr ""
 
-#: gnu/packages/databases.scm:2617
+#: gnu/packages/databases.scm:2703
 msgid ""
 "SQLAlchemy-utils provides various utility functions and custom data types\n"
 "for SQLAlchemy.  SQLAlchemy is an SQL database abstraction library for Python.\n"
@@ -3288,21 +3669,35 @@ msgid ""
 "@end enumerate\n"
 msgstr ""
 
-#: gnu/packages/databases.scm:2663
+#: gnu/packages/databases.scm:2753
+msgid "Mock helpers for SQLAlchemy"
+msgstr ""
+
+#: gnu/packages/databases.scm:2755
+msgid ""
+"This package provides mock helpers for SQLAlchemy that makes it easy\n"
+"to mock an SQLAlchemy session while preserving the ability to do asserts.\n"
+"\n"
+"Normally Normally SQLAlchemy's expressions cannot be easily compared as\n"
+"comparison on binary expression produces yet another binary expression, but\n"
+"this library provides functions to facilitate such comparisons."
+msgstr ""
+
+#: gnu/packages/databases.scm:2788
 msgid "Database migration tool for SQLAlchemy"
 msgstr ""
 
-#: gnu/packages/databases.scm:2665
+#: gnu/packages/databases.scm:2790
 msgid ""
 "Alembic is a lightweight database migration tool for usage with the\n"
 "SQLAlchemy Database Toolkit for Python."
 msgstr ""
 
-#: gnu/packages/databases.scm:2691
+#: gnu/packages/databases.scm:2816
 msgid "Tiny key value database with concurrency support"
 msgstr ""
 
-#: gnu/packages/databases.scm:2693
+#: gnu/packages/databases.scm:2818
 msgid ""
 "PickleShare is a small ‘shelve’-like datastore with concurrency support.\n"
 "Like shelve, a PickleShareDB object acts like a normal dictionary.  Unlike\n"
@@ -3313,11 +3708,11 @@ msgid ""
 "PickleShare."
 msgstr ""
 
-#: gnu/packages/databases.scm:2745
+#: gnu/packages/databases.scm:2870
 msgid "Another Python SQLite Wrapper"
 msgstr ""
 
-#: gnu/packages/databases.scm:2746
+#: gnu/packages/databases.scm:2871
 msgid ""
 "APSW is a Python wrapper for the SQLite\n"
 "embedded relational database engine.  In contrast to other wrappers such as\n"
@@ -3325,33 +3720,33 @@ msgid ""
 "translate the complete SQLite API into Python."
 msgstr ""
 
-#: gnu/packages/databases.scm:2771
+#: gnu/packages/databases.scm:2896
 msgid "Asyncio bridge for sqlite3"
 msgstr ""
 
-#: gnu/packages/databases.scm:2773
+#: gnu/packages/databases.scm:2898
 msgid ""
 "The package aiosqlite replicates the standard sqlite3 module, but with\n"
 "async versions of all the standard connection and cursor methods, and context\n"
 "managers for automatically closing connections."
 msgstr ""
 
-#: gnu/packages/databases.scm:2793
+#: gnu/packages/databases.scm:2918
 msgid "Neo4j driver code written in Python"
 msgstr ""
 
-#: gnu/packages/databases.scm:2794
+#: gnu/packages/databases.scm:2919
 msgid ""
 "This package provides the Neo4j Python driver that connects\n"
 "to the database using Neo4j's binary protocol.  It aims to be minimal, while\n"
 "being idiomatic to Python."
 msgstr ""
 
-#: gnu/packages/databases.scm:2813
+#: gnu/packages/databases.scm:2938
 msgid "Library and toolkit for working with Neo4j in Python"
 msgstr ""
 
-#: gnu/packages/databases.scm:2814
+#: gnu/packages/databases.scm:2939
 msgid ""
 "This package provides a client library and toolkit for\n"
 "working with Neo4j from within Python applications and from the command\n"
@@ -3359,32 +3754,42 @@ msgid ""
 "designed to be easy and intuitive to use."
 msgstr ""
 
-#: gnu/packages/databases.scm:2838
+#: gnu/packages/databases.scm:2963
 msgid "Python PostgreSQL adapter"
 msgstr ""
 
-#: gnu/packages/databases.scm:2840
+#: gnu/packages/databases.scm:2965
 msgid ""
 "psycopg2 is a thread-safe PostgreSQL adapter that implements DB-API\n"
 "2.0."
 msgstr ""
 
-#: gnu/packages/databases.scm:2865
+#: gnu/packages/databases.scm:2990
 msgid "SQLAlchemy schema displayer"
 msgstr ""
 
-#: gnu/packages/databases.scm:2866
+#: gnu/packages/databases.scm:2991
 msgid ""
 "This package provides a program to build Entity\n"
 "Relationship diagrams from a SQLAlchemy model (or directly from the\n"
 "database)."
 msgstr ""
 
-#: gnu/packages/databases.scm:2896
+#: gnu/packages/databases.scm:3023
+msgid "Database migrations with SQL"
+msgstr ""
+
+#: gnu/packages/databases.scm:3025
+msgid ""
+"Yoyo is a database schema migration tool.  Migrations are written as SQL\n"
+"files or Python scripts that define a list of migration steps."
+msgstr ""
+
+#: gnu/packages/databases.scm:3046
 msgid "MySQLdb is an interface to the popular MySQL database server for Python"
 msgstr ""
 
-#: gnu/packages/databases.scm:2897
+#: gnu/packages/databases.scm:3047
 msgid ""
 "MySQLdb is an interface to the popular MySQL database server\n"
 "for Python.  The design goals are:\n"
@@ -3395,21 +3800,21 @@ msgid ""
 "@end enumerate"
 msgstr ""
 
-#: gnu/packages/databases.scm:2925
+#: gnu/packages/databases.scm:3072
 msgid "Python extension that wraps protocol parsing code in hiredis"
 msgstr ""
 
-#: gnu/packages/databases.scm:2926
+#: gnu/packages/databases.scm:3073
 msgid ""
 "Python-hiredis is a python extension that wraps protocol\n"
 "parsing code in hiredis.  It primarily speeds up parsing of multi bulk replies."
 msgstr ""
 
-#: gnu/packages/databases.scm:2951
+#: gnu/packages/databases.scm:3098
 msgid "Fake implementation of redis API for testing purposes"
 msgstr ""
 
-#: gnu/packages/databases.scm:2953
+#: gnu/packages/databases.scm:3100
 msgid ""
 "Fakeredis is a pure-Python implementation of the redis-py Python client\n"
 "that simulates talking to a redis server.  It was created for a single purpose:\n"
@@ -3420,71 +3825,81 @@ msgid ""
 "reasonable substitute."
 msgstr ""
 
-#: gnu/packages/databases.scm:2982
+#: gnu/packages/databases.scm:3129
 msgid "Redis Python client"
 msgstr ""
 
-#: gnu/packages/databases.scm:2984
+#: gnu/packages/databases.scm:3131
 msgid "This package provides a Python interface to the Redis key-value store."
 msgstr ""
 
-#: gnu/packages/databases.scm:3005
+#: gnu/packages/databases.scm:3173
 msgid "Simple job queues for Python"
 msgstr ""
 
-#: gnu/packages/databases.scm:3007
+#: gnu/packages/databases.scm:3175
 msgid ""
 "RQ (Redis Queue) is a simple Python library for queueing jobs and\n"
 "processing them in the background with workers.  It is backed by Redis and it\n"
 "is designed to have a low barrier to entry."
 msgstr ""
 
-#: gnu/packages/databases.scm:3030
+#: gnu/packages/databases.scm:3215
+msgid "Job scheduling capabilities for RQ (Redis Queue)"
+msgstr ""
+
+#: gnu/packages/databases.scm:3217
+msgid ""
+"This package provides job scheduling capabilities to @code{python-rq}\n"
+"(Redis Queue)."
+msgstr ""
+
+#: gnu/packages/databases.scm:3236
 msgid "Port of asyncio-redis to trollius"
 msgstr ""
 
-#: gnu/packages/databases.scm:3031
+#: gnu/packages/databases.scm:3237
 msgid ""
 "@code{trollius-redis} is a Redis client for Python\n"
 "  trollius.  It is an asynchronous IO (PEP 3156) implementation of the\n"
 "  Redis protocol."
 msgstr ""
 
-#: gnu/packages/databases.scm:3058
+#: gnu/packages/databases.scm:3264
 msgid "Non-validating SQL parser"
 msgstr ""
 
-#: gnu/packages/databases.scm:3059
+#: gnu/packages/databases.scm:3265
 msgid ""
 "Sqlparse is a non-validating SQL parser for Python.  It\n"
 "provides support for parsing, splitting and formatting SQL statements."
 msgstr ""
 
-#: gnu/packages/databases.scm:3078
+#: gnu/packages/databases.scm:3284
 msgid "Library to write SQL queries in a pythonic way"
 msgstr ""
 
-#: gnu/packages/databases.scm:3079
+#: gnu/packages/databases.scm:3285
 msgid ""
 "@code{python-sql} is a library to write SQL queries, that\n"
 "transforms idiomatic python function calls to well-formed SQL queries."
 msgstr ""
 
-#: gnu/packages/databases.scm:3101
+#: gnu/packages/databases.scm:3309
 msgid "SQL query builder API for Python"
 msgstr ""
 
-#: gnu/packages/databases.scm:3103
+#: gnu/packages/databases.scm:3311
 msgid ""
 "PyPika is a python SQL query builder that exposes the full richness of\n"
 "the SQL language using a syntax that reflects the resulting query."
 msgstr ""
 
-#: gnu/packages/databases.scm:3197
+#: gnu/packages/databases.scm:3405
 msgid "Various tools for interacting with MongoDB and BSON"
 msgstr ""
 
-#: gnu/packages/databases.scm:3199
+#: gnu/packages/databases.scm:3407
 msgid ""
 "This package includes a collection of tools related to MongoDB.\n"
 "@table @code\n"
@@ -3509,46 +3924,46 @@ msgid ""
 "@end table"
 msgstr ""
 
-#: gnu/packages/databases.scm:3283
+#: gnu/packages/databases.scm:3544
 msgid "Columnar in-memory analytics"
 msgstr ""
 
-#: gnu/packages/databases.scm:3284
+#: gnu/packages/databases.scm:3545
 msgid ""
 "Apache Arrow is a columnar in-memory analytics layer\n"
-"designed to accelerate big data. It houses a set of canonical in-memory\n"
+"designed to accelerate big data.  It houses a set of canonical in-memory\n"
 "representations of flat and hierarchical data along with multiple\n"
-"language-bindings for structure manipulation. It also provides IPC and common\n"
+"language-bindings for structure manipulation.  It also provides IPC and common\n"
 "algorithm implementations."
 msgstr ""
 
-#: gnu/packages/databases.scm:3329
+#: gnu/packages/databases.scm:3582
 msgid "Python bindings for Apache Arrow"
 msgstr ""
 
-#: gnu/packages/databases.scm:3330
+#: gnu/packages/databases.scm:3584
 msgid ""
-"This library provides a Pythonic API wrapper for the reference\n"
-"Arrow C++ implementation, along with tools for interoperability with pandas,\n"
-"NumPy, and other traditional Python scientific computing packages."
+"This library provides a Pythonic API wrapper for the reference Arrow C++\n"
+"implementation, along with tools for interoperability with pandas, NumPy, and\n"
+"other traditional Python scientific computing packages."
 msgstr ""
 
-#: gnu/packages/databases.scm:3352
+#: gnu/packages/databases.scm:3606
 msgid "CrateDB Python client"
 msgstr ""
 
-#: gnu/packages/databases.scm:3354
+#: gnu/packages/databases.scm:3608
 msgid ""
 "This package provides a Python client library for CrateDB.\n"
 "It implements the Python DB API 2.0 specification and includes support for\n"
 "SQLAlchemy."
 msgstr ""
 
-#: gnu/packages/databases.scm:3371
+#: gnu/packages/databases.scm:3625
 msgid "Database independent abstraction layer in C"
 msgstr ""
 
-#: gnu/packages/databases.scm:3373
+#: gnu/packages/databases.scm:3627
 msgid ""
 "This library implements a database independent abstraction layer in C,\n"
 "similar to the DBI/DBD layer in Perl.  Writing one generic set of code,\n"
@@ -3556,11 +3971,11 @@ msgid ""
 "simultaneous database connections by using this framework."
 msgstr ""
 
-#: gnu/packages/databases.scm:3438
+#: gnu/packages/databases.scm:3692
 msgid "Database drivers for the libdbi framework"
 msgstr ""
 
-#: gnu/packages/databases.scm:3440
+#: gnu/packages/databases.scm:3694
 msgid ""
 "The @code{libdbi-drivers} library provides the database specific drivers\n"
 "for the @code{libdbi} framework.\n"
@@ -3573,21 +3988,21 @@ msgid ""
 "@end itemize"
 msgstr ""
 
-#: gnu/packages/databases.scm:3480
+#: gnu/packages/databases.scm:3736
 msgid "C++ Database Access Library"
 msgstr ""
 
-#: gnu/packages/databases.scm:3482
+#: gnu/packages/databases.scm:3738
 msgid ""
 "SOCI is an abstraction layer for several database backends, including\n"
 "PostreSQL, SQLite, ODBC and MySQL."
 msgstr ""
 
-#: gnu/packages/debug.scm:100
+#: gnu/packages/debug.scm:104
 msgid "Heuristical file minimizer"
 msgstr ""
 
-#: gnu/packages/debug.scm:102
+#: gnu/packages/debug.scm:106
 msgid ""
 "Delta assists you in minimizing \"interesting\" files subject to a test\n"
 "of their interestingness.  A common such situation is when attempting to\n"
@@ -3595,11 +4010,11 @@ msgid ""
 "program to exhibit a bug."
 msgstr ""
 
-#: gnu/packages/debug.scm:161
+#: gnu/packages/debug.scm:165
 msgid "Reducer for interesting code"
 msgstr ""
 
-#: gnu/packages/debug.scm:163
+#: gnu/packages/debug.scm:167
 msgid ""
 "C-Reduce is a tool that takes a large C or C++ program that has a\n"
 "property of interest (such as triggering a compiler bug) and automatically\n"
@@ -3608,11 +4023,11 @@ msgid ""
 "tools that process C/C++ code."
 msgstr ""
 
-#: gnu/packages/debug.scm:232
+#: gnu/packages/debug.scm:236
 msgid "Security-oriented fuzzer"
 msgstr ""
 
-#: gnu/packages/debug.scm:234
+#: gnu/packages/debug.scm:238
 msgid ""
 "American fuzzy lop is a security-oriented fuzzer that employs a novel\n"
 "type of compile-time instrumentation and genetic algorithms to automatically\n"
@@ -3623,11 +4038,11 @@ msgid ""
 "down the road."
 msgstr ""
 
-#: gnu/packages/debug.scm:374
+#: gnu/packages/debug.scm:378
 msgid "Machine emulator and virtualizer (without GUI) for american fuzzy lop"
 msgstr ""
 
-#: gnu/packages/debug.scm:376
+#: gnu/packages/debug.scm:380
 msgid ""
 "QEMU is a generic machine emulator and virtualizer.  This package\n"
 "of QEMU is used only by the american fuzzy lop package.\n"
@@ -3643,11 +4058,11 @@ msgid ""
 "server and embedded PowerPC, and S390 guests."
 msgstr ""
 
-#: gnu/packages/debug.scm:444
+#: gnu/packages/debug.scm:448
 msgid "Expose race conditions in Makefiles"
 msgstr ""
 
-#: gnu/packages/debug.scm:446
+#: gnu/packages/debug.scm:450
 msgid ""
 "Stress Make is a customized GNU Make that explicitly manages the order\n"
 "in which concurrent jobs are run to provoke erroneous behavior into becoming\n"
@@ -3657,22 +4072,22 @@ msgid ""
 "conditions."
 msgstr ""
 
-#: gnu/packages/debug.scm:473
+#: gnu/packages/debug.scm:477
 msgid "Transparent application input fuzzer"
 msgstr ""
 
-#: gnu/packages/debug.scm:474
+#: gnu/packages/debug.scm:478
 msgid ""
 "Zzuf is a transparent application input fuzzer.  It works by\n"
 "intercepting file operations and changing random bits in the program's\n"
 "input.  Zzuf's behaviour is deterministic, making it easy to reproduce bugs."
 msgstr ""
 
-#: gnu/packages/debug.scm:527
+#: gnu/packages/debug.scm:531
 msgid "Memory scanner"
 msgstr ""
 
-#: gnu/packages/debug.scm:528
+#: gnu/packages/debug.scm:532
 msgid ""
 "Scanmem is a debugging utility designed to isolate the\n"
 "address of an arbitrary variable in an executing process.  Scanmem simply\n"
@@ -3681,11 +4096,17 @@ msgid ""
 "the position of the variable and allows you to modify its value."
 msgstr ""
 
-#: gnu/packages/debug.scm:591
+#: gnu/packages/debug.scm:562
+msgid ""
+"Remake is an enhanced version of GNU Make that adds improved\n"
+"error reporting, better tracing, profiling, and a debugger."
+msgstr ""
+
+#: gnu/packages/debug.scm:620
 msgid "Record and reply debugging framework"
 msgstr ""
 
-#: gnu/packages/debug.scm:593
+#: gnu/packages/debug.scm:622
 msgid ""
 "rr is a lightweight tool for recording, replaying and debugging\n"
 "execution of applications (trees of processes and threads).  Debugging extends\n"
@@ -3694,6 +4115,45 @@ msgid ""
 "fun."
 msgstr ""
 
+#: gnu/packages/debug.scm:649
+msgid "C library for producing symbolic backtraces"
+msgstr ""
+
+#: gnu/packages/debug.scm:650
+msgid ""
+"The @code{libbacktrace} library can be linked into a C/C++\n"
+"program to produce symbolic backtraces."
+msgstr ""
+
+#: gnu/packages/debug.scm:690
+msgid "Memory leaks detection tool"
+msgstr ""
+
+#: gnu/packages/debug.scm:691
+msgid ""
+"The libleak tool detects memory leaks by hooking memory\n"
+"functions such as @code{malloc}.  It comes as a shared object to be pre-loaded\n"
+"via @code{LD_PRELOAD} when launching the application.  It prints the full call\n"
+"stack at suspicious memory leak points.  Modifying or recompiling the target\n"
+"program is not required, and the detection can be enabled or disabled while\n"
+"the target application is running.  The overhead incurred by libleak is\n"
+"smaller than that of other tools such as Valgrind, and it aims to be easier to\n"
+"use than similar tools like @command{mtrace}."
+msgstr ""
+
+#: gnu/packages/debug.scm:726
+msgid "Debugging tool for MSP430 MCUs"
+msgstr ""
+
+#: gnu/packages/debug.scm:727
+msgid ""
+"MspDebug supports FET430UIF, eZ430, RF2500 and Olimex\n"
+"MSP430-JTAG-TINY programmers, as well as many other compatible\n"
+"devices.  It can be used as a proxy for gdb or as an independent\n"
+"debugger with support for programming, disassembly and reverse\n"
+"engineering."
+msgstr ""
+
 #: gnu/packages/dejagnu.scm:78
 msgid "GNU software testing framework"
 msgstr ""
@@ -3705,11 +4165,22 @@ msgid ""
 "multiple test suites, which are then all managed by a single harness."
 msgstr ""
 
-#: gnu/packages/games.scm:254
+#: gnu/packages/games.scm:263
+msgid "Scrolling, platform-jumping, ancient pyramid exploring game"
+msgstr ""
+
+#: gnu/packages/games.scm:265
+msgid ""
+"Abe's Amazing Adventure is a scrolling,\n"
+"platform-jumping, key-collecting, ancient pyramid exploring game, vaguely in\n"
+"the style of similar games for the Commodore+4."
+msgstr ""
+
+#: gnu/packages/games.scm:333
 msgid "Action game in four spatial dimensions"
 msgstr ""
 
-#: gnu/packages/games.scm:256
+#: gnu/packages/games.scm:335
 msgid ""
 "Adanaxis is a fast-moving first person shooter set in deep space, where\n"
 "the fundamentals of space itself are changed.  By adding another dimension to\n"
@@ -3720,11 +4191,11 @@ msgid ""
 "mouse and joystick control, and original music."
 msgstr ""
 
-#: gnu/packages/games.scm:298
+#: gnu/packages/games.scm:377
 msgid "Retro platform game"
 msgstr ""
 
-#: gnu/packages/games.scm:300
+#: gnu/packages/games.scm:379
 msgid ""
 "Guide Alex the Allegator through the jungle in order to save his\n"
 "girlfriend Lola from evil humans who want to make a pair of shoes out of her.\n"
@@ -3733,11 +4204,11 @@ msgid ""
 "The game includes a built-in editor so you can design and share your own maps."
 msgstr ""
 
-#: gnu/packages/games.scm:327
+#: gnu/packages/games.scm:408
 msgid "Tron clone in 3D"
 msgstr ""
 
-#: gnu/packages/games.scm:328
+#: gnu/packages/games.scm:409
 msgid ""
 "Armagetron Advanced is a multiplayer game in 3d that\n"
 "attempts to emulate and expand on the lightcycle sequence from the movie Tron.\n"
@@ -3747,11 +4218,27 @@ msgid ""
 "physics settings to tweak as well."
 msgstr ""
 
-#: gnu/packages/games.scm:390
+#: gnu/packages/games.scm:465
+msgid "3D space shooter with spaceship upgrade possibilities"
+msgstr ""
+
+#: gnu/packages/games.scm:467
+msgid ""
+"Space is a vast area, an unbounded territory where it seems there is\n"
+"a room for everybody, but reversal of fortune put things differently.  The\n"
+"hordes of hostile creatures crawled out from the dark corners of the universe,\n"
+"craving to conquer your homeland.  Their force is compelling, their legions\n"
+"are interminable.  However, humans didn't give up without a final showdown and\n"
+"put their best pilot to fight back.  These malicious invaders chose the wrong\n"
+"galaxy to conquer and you are to prove it!  Go ahead and make alien aggressors\n"
+"regret their insolence."
+msgstr ""
+
+#: gnu/packages/games.scm:533
 msgid "Antagonistic Tetris-style falling brick game for text terminals"
 msgstr ""
 
-#: gnu/packages/games.scm:392
+#: gnu/packages/games.scm:535
 msgid ""
 "Bastet (short for Bastard Tetris) is a simple ncurses-based falling brick\n"
 "game.  Unlike normal Tetris, Bastet does not choose the next brick at random.\n"
@@ -3761,11 +4248,84 @@ msgid ""
 "canyons and wait for the long I-shaped block to clear four rows at a time."
 msgstr ""
 
-#: gnu/packages/games.scm:453
+#: gnu/packages/games.scm:581
+msgid "Platform action game featuring a blob with a lot of weapons"
+msgstr ""
+
+#: gnu/packages/games.scm:582
+msgid ""
+"Blobwars: Metal Blob Solid is a 2D platform game, the first\n"
+"in the Blobwars series.  You take on the role of a fearless Blob agent.  Your\n"
+"mission is to infiltrate various enemy bases and rescue as many MIAs as\n"
+"possible, while battling many vicious aliens."
+msgstr ""
+
+#: gnu/packages/games.scm:675
+msgid "Collection of the old text-based games and amusements"
+msgstr ""
+
+#: gnu/packages/games.scm:677
+msgid ""
+"These are the BSD games.  See the fortune-mod package for fortunes.\n"
+"\n"
+"Action: atc (keep the airplanes safe), hack (explore the dangerous Dungeon),\n"
+"hunt (kill the others for the Pair of Boots, multi-player only), robots (avoid\n"
+"the evil robots), sail (game of naval warfare with wooden ships), snake (steal\n"
+"the $$ from the cave, anger the snake, and get out alive), tetris (game of\n"
+"lining up the falling bricks of different shapes), and worm (eat, grow big,\n"
+"and neither bite your tail, nor ram the wall).\n"
+"\n"
+"Amusements: banner (prints a large banner), bcd & morse & ppt (print a punch\n"
+"card, or paper tape, or Morse codes), caesar & rot13 (ciphers and deciphers\n"
+"the input), factor (factorizes a number), number (translates numbers into\n"
+"text), pig (translates from English to Pig Latin), pom (should print the\n"
+"Moon's phase), primes (generates primes), rain & worms (plays an screen-saver\n"
+"in terminal), random (prints randomly choosen lines from files, or returns a\n"
+"random exit-code), and wtf (explains what do some acronyms mean).\n"
+"\n"
+"Board: backgammon (lead the men out of board faster than the friend do),\n"
+"boggle (find the words in the square of letters), dab (game of dots and\n"
+"boxes), gomoku (game of five in a row), hangman (guess a word before man is\n"
+"hanged), and monop (game of monopoly, hot-seat only).  Also the card-games:\n"
+"canfield, cribbage, fish (juniors game), and mille.\n"
+"\n"
+"Quests: adventure (search for treasures with the help of wizard),\n"
+"battlestar (explore the world around, starting from dying spaceship),\n"
+"phantasia (role-play as an rogue), trek (hunt the Klingons, and save the\n"
+"Federation), and wump (hunt the big smelly Wumpus in a dark cave).\n"
+"\n"
+"Quizes: arithmetic, and quiz."
+msgstr ""
+
+#: gnu/packages/games.scm:770
+msgid "3D first person tank battle game"
+msgstr ""
+
+#: gnu/packages/games.scm:772
+msgid ""
+"BZFlag is a 3D multi-player multiplatform tank battle game that\n"
+"allows users to play against each other in a network environment.\n"
+"There are five teams: red, green, blue, purple and rogue (rogue tanks\n"
+"are black).  Destroying a player on another team scores a win, while\n"
+"being destroyed or destroying a teammate scores a loss.  Rogues have\n"
+"no teammates (not even other rogues), so they cannot shoot teammates\n"
+"and they do not have a team score.\n"
+"\n"
+"There are two main styles of play: capture-the-flag and free-for-all.\n"
+"In capture-the-flag, each team (except rogues) has a team base and\n"
+"each team with at least one player has a team flag.  The object is to\n"
+"capture an enemy team's flag by bringing it to your team's base.  This\n"
+"destroys every player on the captured team, subtracts one from that\n"
+"team's score, and adds one to your team's score.  In free-for-all,\n"
+"there are no team flags or team bases.  The object is simply to get as\n"
+"high a score as possible."
+msgstr ""
+
+#: gnu/packages/games.scm:844
 msgid "Survival horror roguelike video game"
 msgstr ""
 
-#: gnu/packages/games.scm:455
+#: gnu/packages/games.scm:846
 msgid ""
 "Cataclysm: Dark Days Ahead (or \"DDA\" for short) is a roguelike set\n"
 "in a post-apocalyptic world.  Struggle to survive in a harsh, persistent,\n"
@@ -3777,11 +4337,11 @@ msgid ""
 "want what you have."
 msgstr ""
 
-#: gnu/packages/games.scm:511
+#: gnu/packages/games.scm:902
 msgid "Implementation of the @i{Theme Hospital} game engine"
 msgstr ""
 
-#: gnu/packages/games.scm:513
+#: gnu/packages/games.scm:904
 msgid ""
 "This package provides a reimplementation of the 1997 Bullfrog business\n"
 "simulation game @i{Theme Hospital}.  As well as faithfully recreating the\n"
@@ -3789,11 +4349,11 @@ msgid ""
 "more.  This package does @emph{not} provide the game assets."
 msgstr ""
 
-#: gnu/packages/games.scm:554
+#: gnu/packages/games.scm:945
 msgid "Speaking cow text filter"
 msgstr ""
 
-#: gnu/packages/games.scm:555
+#: gnu/packages/games.scm:946
 msgid ""
 "Cowsay is basically a text filter.  Send some text into it,\n"
 "and you get a cow saying your text.  If you think a talking cow isn't enough,\n"
@@ -3801,22 +4361,22 @@ msgid ""
 "tired of cows, a variety of other ASCII-art messengers are available."
 msgstr ""
 
-#: gnu/packages/games.scm:594
+#: gnu/packages/games.scm:986
 msgid "Rainbow coloring effect for text console display"
 msgstr ""
 
-#: gnu/packages/games.scm:595
+#: gnu/packages/games.scm:987
 msgid ""
 "@command{lolcat} concatenates files and streams like\n"
 "regular @command{cat}, but it also adds terminal escape codes between\n"
 "characters and lines resulting in a rainbow effect."
 msgstr ""
 
-#: gnu/packages/games.scm:709
+#: gnu/packages/games.scm:1101
 msgid "3D billiard game"
 msgstr ""
 
-#: gnu/packages/games.scm:710
+#: gnu/packages/games.scm:1102
 msgid ""
 "FooBillard++ is an advanced 3D OpenGL billiard game\n"
 "based on the original foobillard 3.0a sources from Florian Berger.\n"
@@ -3838,11 +4398,11 @@ msgid ""
 "@end itemize"
 msgstr ""
 
-#: gnu/packages/games.scm:771
+#: gnu/packages/games.scm:1163
 msgid "Free content game based on the Doom engine"
 msgstr ""
 
-#: gnu/packages/games.scm:780
+#: gnu/packages/games.scm:1172
 msgid ""
 "The Freedoom project aims to create a complete free content first person\n"
 "shooter game.  Freedoom by itself is just the raw material for a game: it must\n"
@@ -3851,11 +4411,11 @@ msgid ""
 "effects and music to make a completely free game."
 msgstr ""
 
-#: gnu/packages/games.scm:828
+#: gnu/packages/games.scm:1220
 msgid "Isometric role-playing game against killer robots"
 msgstr ""
 
-#: gnu/packages/games.scm:830
+#: gnu/packages/games.scm:1222
 msgid ""
 "Freedroid RPG is an @dfn{RPG} (Role-Playing Game) with isometric graphics.\n"
 "The game tells the story of a world destroyed by a conflict between robots and\n"
@@ -3865,11 +4425,11 @@ msgid ""
 "real-time combat."
 msgstr ""
 
-#: gnu/packages/games.scm:907
+#: gnu/packages/games.scm:1299
 msgid "Software for exploring cellular automata"
 msgstr ""
 
-#: gnu/packages/games.scm:909
+#: gnu/packages/games.scm:1301
 msgid ""
 "Golly simulates Conway's Game of Life and many other types of cellular\n"
 "automata.  The following features are available:\n"
@@ -3890,11 +4450,11 @@ msgid ""
 "@end enumerate"
 msgstr ""
 
-#: gnu/packages/games.scm:946
+#: gnu/packages/games.scm:1346
 msgid "Re-implementation of Caesar III game engine"
 msgstr ""
 
-#: gnu/packages/games.scm:948
+#: gnu/packages/games.scm:1348
 msgid ""
 "Engine for Caesar III, a city-building real-time strategy game.\n"
 "Julius includes some UI enhancements while preserving the logic (including\n"
@@ -3902,11 +4462,30 @@ msgid ""
 "does not include game data."
 msgstr ""
 
-#: gnu/packages/games.scm:982
+#: gnu/packages/games.scm:1380
+msgid "Re-implementation of Caesar III game engine with gameplay changes"
+msgstr ""
+
+#: gnu/packages/games.scm:1382
+msgid ""
+"Fork of Julius, an engine for the a city-building real-time strategy\n"
+"game Caesar III.  Gameplay enhancements include:\n"
+"\n"
+"@itemize\n"
+"@item roadblocks;\n"
+"@item market special orders;\n"
+"@item global labour pool;\n"
+"@item partial warehouse storage;\n"
+"@item increased game limits;\n"
+"@item zoom controls.\n"
+"@end itemize\n"
+msgstr ""
+
+#: gnu/packages/games.scm:1420
 msgid "Puzzle/platform game"
 msgstr ""
 
-#: gnu/packages/games.scm:983
+#: gnu/packages/games.scm:1421
 msgid ""
 "Me and My Shadow is a puzzle/platform game in which you try\n"
 "to reach the exit by solving puzzles.  Spikes, moving blocks, fragile blocks\n"
@@ -3914,11 +4493,11 @@ msgid ""
 "shadow mimic them to reach blocks you couldn't reach alone."
 msgstr ""
 
-#: gnu/packages/games.scm:1041
+#: gnu/packages/games.scm:1479
 msgid "2D retro side-scrolling game"
 msgstr ""
 
-#: gnu/packages/games.scm:1042
+#: gnu/packages/games.scm:1480
 msgid ""
 "@code{Open Surge} is a 2D retro side-scrolling platformer\n"
 "inspired by the Sonic games.  The player runs at high speeds through each\n"
@@ -3926,11 +4505,11 @@ msgid ""
 "built-in level editor."
 msgstr ""
 
-#: gnu/packages/games.scm:1086
+#: gnu/packages/games.scm:1525
 msgid "Multiplayer dungeon game involving knights and quests"
 msgstr ""
 
-#: gnu/packages/games.scm:1087
+#: gnu/packages/games.scm:1526
 msgid ""
 "Knights is a multiplayer game involving several knights who\n"
 "must run around a dungeon and complete various quests.  Each game revolves\n"
@@ -3942,11 +4521,11 @@ msgid ""
 "destroying an ancient book using a special wand."
 msgstr ""
 
-#: gnu/packages/games.scm:1133
+#: gnu/packages/games.scm:1572
 msgid "Chess board for GNOME"
 msgstr ""
 
-#: gnu/packages/games.scm:1134
+#: gnu/packages/games.scm:1573
 msgid ""
 "GNOME Chess provides a 2D board for playing chess games\n"
 "against human or computer players.  It supports loading and saving games in\n"
@@ -3954,11 +4533,11 @@ msgid ""
 "such as chess or stockfish."
 msgstr ""
 
-#: gnu/packages/games.scm:1184
+#: gnu/packages/games.scm:1627
 msgid "Backgammon game"
 msgstr ""
 
-#: gnu/packages/games.scm:1185
+#: gnu/packages/games.scm:1628
 msgid ""
 "The GNU backgammon application (also known as \"gnubg\") can\n"
 "be used for playing, analyzing and teaching the game.  It has an advanced\n"
@@ -3967,11 +4546,11 @@ msgid ""
 "also features an attractive, 3D representation of the playing board."
 msgstr ""
 
-#: gnu/packages/games.scm:1214
+#: gnu/packages/games.scm:1667
 msgid "3d Rubik's cube game"
 msgstr ""
 
-#: gnu/packages/games.scm:1216
+#: gnu/packages/games.scm:1669
 msgid ""
 "GNUbik is a puzzle game in which you must manipulate a cube to make\n"
 "each of its faces have a uniform color.  The game is customizable, allowing\n"
@@ -3980,21 +4559,21 @@ msgid ""
 "scriptable with Guile."
 msgstr ""
 
-#: gnu/packages/games.scm:1238
+#: gnu/packages/games.scm:1691
 msgid "The game of Shogi (Japanese chess)"
 msgstr ""
 
-#: gnu/packages/games.scm:1239
+#: gnu/packages/games.scm:1692
 msgid ""
 "GNU Shogi is a program that plays the game Shogi (Japanese\n"
 "Chess).  It is similar to standard chess but this variant is far more complicated."
 msgstr ""
 
-#: gnu/packages/games.scm:1271
+#: gnu/packages/games.scm:1723
 msgid "Tetris clone based on the SDL library"
 msgstr ""
 
-#: gnu/packages/games.scm:1273
+#: gnu/packages/games.scm:1725
 msgid ""
 "LTris is a tetris clone: differently shaped blocks are falling down the\n"
 "rectangular playing field and can be moved sideways or rotated by 90 degree\n"
@@ -4008,11 +4587,11 @@ msgid ""
 "watch your CPU playing while enjoying a cup of tea!"
 msgstr ""
 
-#: gnu/packages/games.scm:1397
+#: gnu/packages/games.scm:1849
 msgid "Classic dungeon crawl game"
 msgstr ""
 
-#: gnu/packages/games.scm:1398
+#: gnu/packages/games.scm:1850
 msgid ""
 "NetHack is a single player dungeon exploration game that runs\n"
 "on a wide variety of computer systems, with a variety of graphical and text\n"
@@ -4026,11 +4605,11 @@ msgid ""
 "role, and your gender."
 msgstr ""
 
-#: gnu/packages/games.scm:1442
+#: gnu/packages/games.scm:1894
 msgid "Logical tile puzzle"
 msgstr ""
 
-#: gnu/packages/games.scm:1444
+#: gnu/packages/games.scm:1896
 msgid ""
 "PipeWalker is a simple puzzle game with many diffent themes: connect all\n"
 "computers to one network server, bring water from a source to the taps, etc.\n"
@@ -4039,29 +4618,29 @@ msgid ""
 "Every puzzle has a complete solution, although there may be more than one."
 msgstr ""
 
-#: gnu/packages/games.scm:1492
+#: gnu/packages/games.scm:1944
 msgid "Version of the classic 3D shoot'em'up game Doom"
 msgstr ""
 
-#: gnu/packages/games.scm:1494
+#: gnu/packages/games.scm:1946
 msgid "PrBoom+ is a Doom source port developed from the original PrBoom project."
 msgstr ""
 
-#: gnu/packages/games.scm:1542
+#: gnu/packages/games.scm:1994
 msgid "Action platformer game"
 msgstr ""
 
-#: gnu/packages/games.scm:1544
+#: gnu/packages/games.scm:1996
 msgid ""
 "ReTux is an action platformer loosely inspired by the Mario games,\n"
 "utilizing the art assets from the @code{SuperTux} project."
 msgstr ""
 
-#: gnu/packages/games.scm:1653
+#: gnu/packages/games.scm:2105
 msgid "A classical roguelike/sandbox game"
 msgstr ""
 
-#: gnu/packages/games.scm:1655
+#: gnu/packages/games.scm:2107
 msgid ""
 "RogueBox Adventures is a graphical roguelike with strong influences\n"
 "from sandbox games like Minecraft or Terraria.  The main idea of RogueBox\n"
@@ -4069,19 +4648,84 @@ msgid ""
 "can be explored and changed freely."
 msgstr ""
 
-#: gnu/packages/games.scm:1682
+#: gnu/packages/games.scm:2218
+msgid "Help Barbie the seahorse float on bubbles to the moon"
+msgstr ""
+
+#: gnu/packages/games.scm:2220
+msgid ""
+"Barbie Seahorse Adventures is a retro style platform arcade game.\n"
+"You are Barbie the seahorse who travels through the jungle, up to the\n"
+"volcano until you float on bubbles to the moon.  On the way to your\n"
+"final destination you will encounter various enemies, servants of the\n"
+"evil overlord who has stolen the galaxy crystal.  Avoid getting hit\n"
+"and defeat them with your bubbles!"
+msgstr ""
+
+#: gnu/packages/games.scm:2299
+msgid "Fast-paced local multiplayer arcade game"
+msgstr ""
+
+#: gnu/packages/games.scm:2300
+msgid ""
+"In SuperStarfighter, up to four local players compete in a\n"
+"2D arena with fast-moving ships and missiles.  Different game types are\n"
+"available, as well as a single-player mode with AI-controlled ships."
+msgstr ""
+
+#: gnu/packages/games.scm:2400
+msgid "UFO: AI map generator"
+msgstr ""
+
+#: gnu/packages/games.scm:2402
+msgid ""
+"This package provides @command{ufo2map}, a program used to generate\n"
+"maps for the UFO: Alien Invasion strategy game."
+msgstr ""
+
+#: gnu/packages/games.scm:2442
+msgid "UFO: AI data files"
+msgstr ""
+
+#: gnu/packages/games.scm:2444
+msgid "This package contains maps and other assets for UFO: Alien Invasion."
+msgstr ""
+
+#: gnu/packages/games.scm:2529
+msgid "Turn-based tactical strategy game"
+msgstr ""
+
+#: gnu/packages/games.scm:2531
+msgid ""
+"UFO: Alien Invasion is a tactical strategy game set in the year 2084.\n"
+"You control a secret organisation charged with defending Earth from a brutal\n"
+"alien enemy.  Build up your bases, prepare your team, and dive head-first into\n"
+"the fast and flowing turn-based combat.\n"
+"\n"
+"Over the long term you will need to conduct research into the alien threat to\n"
+"figure out their mysterious goals and use their powerful weapons for your own\n"
+"ends.  You will produce unique items and use them in combat against your\n"
+"enemies.\n"
+"\n"
+"You can also use them against your friends with the multiplayer functionality.\n"
+"\n"
+"Warning: This is a pre-release version of UFO: AI!  Some things may not work\n"
+"properly."
+msgstr ""
+
+#: gnu/packages/games.scm:2568
 msgid "User interface for gnushogi"
 msgstr ""
 
-#: gnu/packages/games.scm:1683
+#: gnu/packages/games.scm:2569
 msgid "A graphical user interface for the package @code{gnushogi}."
 msgstr ""
 
-#: gnu/packages/games.scm:1735
+#: gnu/packages/games.scm:2621
 msgid "GNU/Linux port of the indie game \"l'Abbaye des Morts\""
 msgstr ""
 
-#: gnu/packages/games.scm:1736
+#: gnu/packages/games.scm:2622
 msgid ""
 "L'Abbaye des Morts is a 2D platform game set in 13th century\n"
 "France.  The Cathars, who preach about good Christian beliefs, were being\n"
@@ -4090,22 +4734,22 @@ msgid ""
 "that beneath its ruins lay buried an ancient evil."
 msgstr ""
 
-#: gnu/packages/games.scm:1789
+#: gnu/packages/games.scm:2674
 msgid "Dungeon exploration roguelike"
 msgstr ""
 
-#: gnu/packages/games.scm:1790
+#: gnu/packages/games.scm:2675
 msgid ""
 "Angband is a Classic dungeon exploration roguelike.  Explore\n"
 "the depths below Angband, seeking riches, fighting monsters, and preparing to\n"
 "fight Morgoth, the Lord of Darkness."
 msgstr ""
 
-#: gnu/packages/games.scm:1837
+#: gnu/packages/games.scm:2722
 msgid "Lemmings clone"
 msgstr ""
 
-#: gnu/packages/games.scm:1839
+#: gnu/packages/games.scm:2724
 msgid ""
 "Pingus is a free Lemmings-like puzzle game in which the player takes\n"
 "command of a bunch of small animals and has to guide them through levels.\n"
@@ -4115,22 +4759,33 @@ msgid ""
 "level's exit.  The game is presented in a 2D side view."
 msgstr ""
 
-#: gnu/packages/games.scm:1861
+#: gnu/packages/games.scm:2746
 msgid "Convert English text to humorous dialects"
 msgstr ""
 
-#: gnu/packages/games.scm:1862
+#: gnu/packages/games.scm:2747
 msgid ""
 "The GNU Talk Filters are programs that convert English text\n"
 "into stereotyped or otherwise humorous dialects.  The filters are provided as\n"
 "a C library, so they can easily be integrated into other programs."
 msgstr ""
 
-#: gnu/packages/games.scm:1898
+#: gnu/packages/games.scm:2791
+msgid "Shoot'em up fangame and libre clone of Touhou Project"
+msgstr ""
+
+#: gnu/packages/games.scm:2793
+msgid ""
+"The player controls a character (one of three: Good, Bad, and Dead),\n"
+"dodges the missiles (lots of it cover the screen, but the character's hitbox\n"
+"is very small), and shoot at the adversaries that keep appear on the screen."
+msgstr ""
+
+#: gnu/packages/games.scm:2836
 msgid "Simulate the display from \"The Matrix\""
 msgstr ""
 
-#: gnu/packages/games.scm:1899
+#: gnu/packages/games.scm:2837
 msgid ""
 "CMatrix simulates the display from \"The Matrix\" and is\n"
 "based on the screensaver from the movie's website.  It works with terminal\n"
@@ -4138,22 +4793,22 @@ msgid ""
 "asynchronously and at a user-defined speed."
 msgstr ""
 
-#: gnu/packages/games.scm:1919
+#: gnu/packages/games.scm:2857
 msgid "Full chess implementation"
 msgstr ""
 
-#: gnu/packages/games.scm:1920
+#: gnu/packages/games.scm:2858
 msgid ""
 "GNU Chess is a chess engine.  It allows you to compete\n"
 "against the computer in a game of chess, either through the default terminal\n"
 "interface or via an external visual interface such as GNU XBoard."
 msgstr ""
 
-#: gnu/packages/games.scm:1960
+#: gnu/packages/games.scm:2918
 msgid "Twisted adventures of young pig farmer Dink Smallwood"
 msgstr ""
 
-#: gnu/packages/games.scm:1962
+#: gnu/packages/games.scm:2920
 msgid ""
 "GNU FreeDink is a free and portable re-implementation of the engine\n"
 "for the role-playing game Dink Smallwood.  It supports not only the original\n"
@@ -4161,29 +4816,29 @@ msgid ""
 "To that extent, it also includes a front-end for managing all of your D-Mods."
 msgstr ""
 
-#: gnu/packages/games.scm:1988
+#: gnu/packages/games.scm:2946
 msgid "Game data for GNU Freedink"
 msgstr ""
 
-#: gnu/packages/games.scm:1990
+#: gnu/packages/games.scm:2948
 msgid "This package contains the game data of GNU Freedink."
 msgstr ""
 
-#: gnu/packages/games.scm:2013
+#: gnu/packages/games.scm:2971
 msgid "Front-end for managing and playing Dink Modules"
 msgstr ""
 
-#: gnu/packages/games.scm:2014
+#: gnu/packages/games.scm:2972
 msgid ""
 "DFArc makes it easy to play and manage the GNU FreeDink game\n"
 "and its numerous D-Mods."
 msgstr ""
 
-#: gnu/packages/games.scm:2066
+#: gnu/packages/games.scm:3024
 msgid "Graphical user interface for chess programs"
 msgstr ""
 
-#: gnu/packages/games.scm:2067
+#: gnu/packages/games.scm:3025
 msgid ""
 "GNU XBoard is a graphical board for all varieties of chess,\n"
 "including international chess, xiangqi (Chinese chess), shogi (Japanese chess)\n"
@@ -4192,11 +4847,11 @@ msgid ""
 "Portable Game Notation."
 msgstr ""
 
-#: gnu/packages/games.scm:2101
+#: gnu/packages/games.scm:3059
 msgid "Typing tutor"
 msgstr ""
 
-#: gnu/packages/games.scm:2103
+#: gnu/packages/games.scm:3061
 msgid ""
 "GNU Typist is a universal typing tutor.  It can be used to learn and\n"
 "practice touch-typing.  Several tutorials are included; in addition to\n"
@@ -4205,11 +4860,11 @@ msgid ""
 "are primarily in English, however some in other languages are provided."
 msgstr ""
 
-#: gnu/packages/games.scm:2169
+#: gnu/packages/games.scm:3127
 msgid "3D game engine written in C++"
 msgstr ""
 
-#: gnu/packages/games.scm:2171
+#: gnu/packages/games.scm:3129
 msgid ""
 "The Irrlicht Engine is a high performance realtime 3D engine written in\n"
 "C++.  Features include an OpenGL renderer, extensible materials, scene graph\n"
@@ -4217,11 +4872,11 @@ msgid ""
 "for common mesh file formats, and collision detection."
 msgstr ""
 
-#: gnu/packages/games.scm:2223
+#: gnu/packages/games.scm:3181
 msgid "2D space shooter"
 msgstr ""
 
-#: gnu/packages/games.scm:2225
+#: gnu/packages/games.scm:3183
 msgid ""
 "M.A.R.S. is a 2D space shooter with pretty visual effects and\n"
 "attractive physics.  Players can battle each other or computer controlled\n"
@@ -4229,19 +4884,11 @@ msgid ""
 "match, cannon keep, and grave-itation pit."
 msgstr ""
 
-#: gnu/packages/games.scm:2259
-msgid "Main game data for the Minetest game engine"
-msgstr ""
-
-#: gnu/packages/games.scm:2261
-msgid "Game data for the Minetest infinite-world block sandbox game."
-msgstr ""
-
-#: gnu/packages/games.scm:2323
+#: gnu/packages/games.scm:3247
 msgid "Infinite-world block sandbox game"
 msgstr ""
 
-#: gnu/packages/games.scm:2325
+#: gnu/packages/games.scm:3249
 msgid ""
 "Minetest is a sandbox construction game.  Players can create and destroy\n"
 "various types of blocks in a three-dimensional open world.  This allows\n"
@@ -4250,11 +4897,29 @@ msgid ""
 "in different ways."
 msgstr ""
 
-#: gnu/packages/games.scm:2364
+#: gnu/packages/games.scm:3285
+msgid "Main game data for the Minetest game engine"
+msgstr ""
+
+#: gnu/packages/games.scm:3287
+msgid "Game data for the Minetest infinite-world block sandbox game."
+msgstr ""
+
+#: gnu/packages/games.scm:3308
+msgid "Minecraft clone based on Minetest engine"
+msgstr ""
+
+#: gnu/packages/games.scm:3310
+msgid ""
+"MineClone is a Minetest subgame, that aims to recreate Minecraft as\n"
+"closely as the engine allows."
+msgstr ""
+
+#: gnu/packages/games.scm:3346
 msgid "Curses Implementation of the Glk API"
 msgstr ""
 
-#: gnu/packages/games.scm:2366
+#: gnu/packages/games.scm:3348
 msgid ""
 "Glk defines a portable API for applications with text UIs.  It was\n"
 "primarily designed for interactive fiction, but it should be suitable for many\n"
@@ -4263,11 +4928,11 @@ msgid ""
 "using the @code{curses.h} library for screen control."
 msgstr ""
 
-#: gnu/packages/games.scm:2404
+#: gnu/packages/games.scm:3386
 msgid "Interpreter for Glulx VM"
 msgstr ""
 
-#: gnu/packages/games.scm:2406
+#: gnu/packages/games.scm:3388
 msgid ""
 "Glulx is a 32-bit portable virtual machine intended for writing and\n"
 "playing interactive fiction.  It was designed by Andrew Plotkin to relieve\n"
@@ -4275,44 +4940,44 @@ msgid ""
 "reference interpreter, using the Glk API."
 msgstr ""
 
-#: gnu/packages/games.scm:2432
+#: gnu/packages/games.scm:3414
 msgid "Cross platform GUI library specifically for games"
 msgstr ""
 
-#: gnu/packages/games.scm:2434
+#: gnu/packages/games.scm:3416
 msgid ""
 "Fifechan is a lightweight cross platform GUI library written in C++\n"
 "specifically designed for games.  It has a built in set of extendable GUI\n"
 "Widgets, and allows users to create more."
 msgstr ""
 
-#: gnu/packages/games.scm:2525
+#: gnu/packages/games.scm:3510
 msgid "FIFE is a multi-platform isometric game engine written in C++"
 msgstr ""
 
-#: gnu/packages/games.scm:2527
+#: gnu/packages/games.scm:3512
 msgid ""
 "@acronym{FIFE, Flexible Isometric Free Engine} is a multi-platform\n"
 "isometric game engine.  Python bindings are included allowing users to create\n"
 "games using Python as well as C++."
 msgstr ""
 
-#: gnu/packages/games.scm:2560
+#: gnu/packages/games.scm:3545
 msgid "Z-machine interpreter"
 msgstr ""
 
-#: gnu/packages/games.scm:2562
+#: gnu/packages/games.scm:3547
 msgid ""
 "Fizmo is a console-based Z-machine interpreter.  It is used to play\n"
 "interactive fiction, also known as text adventures, which were implemented\n"
 "either by Infocom or created using the Inform compiler."
 msgstr ""
 
-#: gnu/packages/games.scm:2580
+#: gnu/packages/games.scm:3565
 msgid "Play the game of Go"
 msgstr ""
 
-#: gnu/packages/games.scm:2582
+#: gnu/packages/games.scm:3567
 msgid ""
 "GNU Go is a program that plays the game of Go, in which players\n"
 "place stones on a grid to form territory or capture other stones.  While\n"
@@ -4323,11 +4988,11 @@ msgid ""
 "Protocol)."
 msgstr ""
 
-#: gnu/packages/games.scm:2610
+#: gnu/packages/games.scm:3595
 msgid "High-speed arctic racing game based on Tux Racer"
 msgstr ""
 
-#: gnu/packages/games.scm:2612
+#: gnu/packages/games.scm:3597
 msgid ""
 "Extreme Tux Racer, or etracer as it is called for short, is\n"
 "a simple OpenGL racing game featuring Tux, the Linux mascot.  The goal of the\n"
@@ -4340,11 +5005,11 @@ msgid ""
 "This game is based on the GPL version of the famous game TuxRacer."
 msgstr ""
 
-#: gnu/packages/games.scm:2688
+#: gnu/packages/games.scm:3667
 msgid "3D kart racing game"
 msgstr ""
 
-#: gnu/packages/games.scm:2689
+#: gnu/packages/games.scm:3668
 msgid ""
 "SuperTuxKart is a 3D kart racing game, with a focus on\n"
 "having fun over realism.  You can play with up to 4 friends on one PC, racing\n"
@@ -4352,11 +5017,11 @@ msgid ""
 "also available."
 msgstr ""
 
-#: gnu/packages/games.scm:2753
+#: gnu/packages/games.scm:3743
 msgid "Isometric realtime strategy, economy and city building simulation"
 msgstr ""
 
-#: gnu/packages/games.scm:2755
+#: gnu/packages/games.scm:3745
 msgid ""
 "Unknown Horizons is a 2D realtime strategy simulation with an emphasis\n"
 "on economy and city building.  Expand your small settlement to a strong and\n"
@@ -4365,11 +5030,11 @@ msgid ""
 "trade and diplomacy."
 msgstr ""
 
-#: gnu/packages/games.scm:2810
+#: gnu/packages/games.scm:3800
 msgid "Game of jumping to the next floor, trying not to fall"
 msgstr ""
 
-#: gnu/packages/games.scm:2812
+#: gnu/packages/games.scm:3802
 msgid ""
 "GNUjump is a simple, yet addictive game in which you must jump from\n"
 "platform to platform to avoid falling, while the platforms drop at faster rates\n"
@@ -4377,11 +5042,11 @@ msgid ""
 "falling, themeable graphics and sounds, and replays."
 msgstr ""
 
-#: gnu/packages/games.scm:2859
+#: gnu/packages/games.scm:3836
 msgid "Turn-based strategy game"
 msgstr ""
 
-#: gnu/packages/games.scm:2861
+#: gnu/packages/games.scm:3838
 msgid ""
 "The Battle for Wesnoth is a fantasy, turn based tactical strategy game,\n"
 "with several single player campaigns, and multiplayer games (both networked and\n"
@@ -4393,32 +5058,32 @@ msgid ""
 "next campaign."
 msgstr ""
 
-#: gnu/packages/games.scm:2883
+#: gnu/packages/games.scm:3860
 msgid "Dedicated @emph{Battle for Wesnoth} server"
 msgstr ""
 
-#: gnu/packages/games.scm:2884
+#: gnu/packages/games.scm:3861
 msgid ""
 "This package contains a dedicated server for @emph{The\n"
 "Battle for Wesnoth}."
 msgstr ""
 
-#: gnu/packages/games.scm:2925
+#: gnu/packages/games.scm:3902
 msgid "Mouse and keyboard discovery for children"
 msgstr ""
 
-#: gnu/packages/games.scm:2927
+#: gnu/packages/games.scm:3904
 msgid ""
 "Gamine is a game designed for young children who are learning to use the\n"
 "mouse and keyboard.  The child uses the mouse to draw colored dots and lines\n"
 "on the screen and keyboard to display letters."
 msgstr ""
 
-#: gnu/packages/games.scm:2960
+#: gnu/packages/games.scm:3937
 msgid "Client for 'The Mana World' and similar games"
 msgstr ""
 
-#: gnu/packages/games.scm:2962
+#: gnu/packages/games.scm:3939
 msgid ""
 "ManaPlus is a 2D MMORPG client for game servers.  It is the only\n"
 "fully supported client for @uref{http://www.themanaworld.org, The mana\n"
@@ -4426,11 +5091,11 @@ msgid ""
 "@uref{http://landoffire.org, Land of fire}."
 msgstr ""
 
-#: gnu/packages/games.scm:3019
+#: gnu/packages/games.scm:3990
 msgid "Transportation economics simulator game"
 msgstr ""
 
-#: gnu/packages/games.scm:3020
+#: gnu/packages/games.scm:3991
 msgid ""
 "OpenTTD is a game in which you transport goods and\n"
 "passengers by land, water and air.  It is a re-implementation of Transport\n"
@@ -4440,13 +5105,13 @@ msgid ""
 "engine.  When you start it you will be prompted to download a graphics set."
 msgstr ""
 
-#: gnu/packages/games.scm:3077
+#: gnu/packages/games.scm:4049
 msgid "Base graphics set for OpenTTD"
 msgstr ""
 
-#: gnu/packages/games.scm:3079
+#: gnu/packages/games.scm:4051
 msgid ""
-"The OpenGFX projects is an implementation of the OpenTTD base grahics\n"
+"The OpenGFX project is an implementation of the OpenTTD base graphics\n"
 "set that aims to ensure the best possible out-of-the-box experience.\n"
 "\n"
 "OpenGFX provides you with...\n"
@@ -4459,49 +5124,49 @@ msgid ""
 "@end enumerate"
 msgstr ""
 
-#: gnu/packages/games.scm:3124
+#: gnu/packages/games.scm:4096
 msgid "Base sounds for OpenTTD"
 msgstr ""
 
-#: gnu/packages/games.scm:3125
+#: gnu/packages/games.scm:4097
 msgid ""
 "OpenSFX is a set of free base sounds for OpenTTD which make\n"
 "it possible to play OpenTTD without requiring the proprietary sound files from\n"
 "the original Transport Tycoon Deluxe."
 msgstr ""
 
-#: gnu/packages/games.scm:3162
+#: gnu/packages/games.scm:4134
 msgid "Music set for OpenTTD"
 msgstr ""
 
-#: gnu/packages/games.scm:3163
+#: gnu/packages/games.scm:4135
 msgid ""
 "OpenMSX is a music set for OpenTTD which makes it possible\n"
 "to play OpenTTD without requiring the proprietary music from the original\n"
 "Transport Tycoon Deluxe."
 msgstr ""
 
-#: gnu/packages/games.scm:3232
+#: gnu/packages/games.scm:4204
 msgid "Title sequences for OpenRCT2"
 msgstr ""
 
-#: gnu/packages/games.scm:3234
+#: gnu/packages/games.scm:4206
 msgid "openrct2-title-sequences is a set of title sequences for OpenRCT2."
 msgstr ""
 
-#: gnu/packages/games.scm:3272
+#: gnu/packages/games.scm:4244
 msgid "Objects for OpenRCT2"
 msgstr ""
 
-#: gnu/packages/games.scm:3274
+#: gnu/packages/games.scm:4246
 msgid "openrct2-objects is a set of objects for OpenRCT2."
 msgstr ""
 
-#: gnu/packages/games.scm:3334
+#: gnu/packages/games.scm:4306
 msgid "Free software re-implementation of RollerCoaster Tycoon 2"
 msgstr ""
 
-#: gnu/packages/games.scm:3335
+#: gnu/packages/games.scm:4307
 msgid ""
 "OpenRCT2 is a free software re-implementation of\n"
 "RollerCoaster Tycoon 2 (RCT2).  The gameplay revolves around building and\n"
@@ -4511,43 +5176,43 @@ msgid ""
 "images, etc.)"
 msgstr ""
 
-#: gnu/packages/games.scm:3377
+#: gnu/packages/games.scm:4349
 msgid "Pinball simulator"
 msgstr ""
 
-#: gnu/packages/games.scm:3378
+#: gnu/packages/games.scm:4350
 msgid ""
 "The Emilia Pinball Project is a pinball simulator.  There\n"
 "are only two levels to play with, but they are very addictive."
 msgstr ""
 
-#: gnu/packages/games.scm:3401
+#: gnu/packages/games.scm:4373
 msgid "Board game inspired by The Settlers of Catan"
 msgstr ""
 
-#: gnu/packages/games.scm:3402
+#: gnu/packages/games.scm:4374
 msgid ""
 "Pioneers is an emulation of the board game The Settlers of\n"
 "Catan.  It can be played on a local network, on the internet, and with AI\n"
 "players."
 msgstr ""
 
-#: gnu/packages/games.scm:3443 gnu/packages/gnome.scm:3805
+#: gnu/packages/games.scm:4415 gnu/packages/gnome.scm:4879
 msgid "Logic puzzle game"
 msgstr ""
 
-#: gnu/packages/games.scm:3444
+#: gnu/packages/games.scm:4416
 msgid ""
 "The goal of this logic game is to open all cards in a 6x6\n"
 "grid, using a number of hints as to their relative position.  The game idea\n"
 "is attributed to Albert Einstein."
 msgstr ""
 
-#: gnu/packages/games.scm:3472
+#: gnu/packages/games.scm:4444
 msgid "MUD and telnet client"
 msgstr ""
 
-#: gnu/packages/games.scm:3474
+#: gnu/packages/games.scm:4446
 msgid ""
 "POWWOW is a client software which can be used for telnet as well as for\n"
 "@dfn{Multi-User Dungeon} (MUD).  Additionally it can serve as a nice client for\n"
@@ -4555,33 +5220,33 @@ msgid ""
 "http://lavachat.symlynx.com/unix/"
 msgstr ""
 
-#: gnu/packages/games.scm:3584
+#: gnu/packages/games.scm:4556
 msgid "Arena shooter derived from the Cube 2 engine"
 msgstr ""
 
-#: gnu/packages/games.scm:3586
+#: gnu/packages/games.scm:4558
 msgid ""
 "Red Eclipse is an arena shooter, created from the Cube2 engine.\n"
 "Offering an innovative parkour system and distinct but all potent weapons,\n"
 "Red Eclipse provides fast paced and accessible gameplay."
 msgstr ""
 
-#: gnu/packages/games.scm:3649
+#: gnu/packages/games.scm:4621
 msgid "Text adventure game"
 msgstr ""
 
-#: gnu/packages/games.scm:3651
+#: gnu/packages/games.scm:4623
 msgid ""
 "Grue Hunter is a text adventure game written in Perl.  You must make\n"
 "your way through an underground cave system in search of the Grue.  Can you\n"
 "capture it and get out alive?"
 msgstr ""
 
-#: gnu/packages/games.scm:3693
+#: gnu/packages/games.scm:4665
 msgid "Old-school earthworm action game"
 msgstr ""
 
-#: gnu/packages/games.scm:3695
+#: gnu/packages/games.scm:4667
 msgid ""
 "lierolibre is an earthworm action game where you fight another player\n"
 "(or the computer) underground using a wide array of weapons.\n"
@@ -4606,23 +5271,60 @@ msgid ""
 "fullscreen, use F5 or Alt+Enter."
 msgstr ""
 
-#: gnu/packages/games.scm:3769
+#: gnu/packages/games.scm:4745
+msgid "Play tennis against the computer or a friend"
+msgstr ""
+
+#: gnu/packages/games.scm:4746
+msgid ""
+"Tennix is a 2D tennis game.  You can play against the\n"
+"computer or against another player using the keyboard.  The game runs\n"
+"in-window at 640x480 resolution or fullscreen."
+msgstr ""
+
+#: gnu/packages/games.scm:4826
 msgid "3D Real-time strategy and real-time tactics game"
 msgstr ""
 
-#: gnu/packages/games.scm:3771
+#: gnu/packages/games.scm:4828
 msgid ""
 "Warzone 2100 offers campaign, multi-player, and single-player skirmish\n"
-"modes. An extensive tech tree with over 400 different technologies, combined\n"
+"modes.  An extensive tech tree with over 400 different technologies, combined\n"
 "with the unit design system, allows for a wide variety of possible units and\n"
 "tactics."
 msgstr ""
 
-#: gnu/packages/games.scm:3806
+#: gnu/packages/games.scm:4902
+msgid "Fantasy real-time strategy game"
+msgstr ""
+
+#: gnu/packages/games.scm:4904
+msgid ""
+"In Widelands, you are the regent of a small clan.  You start out with\n"
+"nothing but your headquarters, where all your resources are stored.\n"
+"\n"
+"In the course of the game, you will build an ever growing settlement.  Every\n"
+"member of your clan will do his or her part to produce more resources---wood,\n"
+"food, iron, gold and more---to further this growth.  The economic network is\n"
+"complex and different in the four tribes (Barbarians, Empire, Atlanteans, and\n"
+"Frisians).\n"
+"\n"
+"As you are not alone in the world, you will meet other clans sooner or later.\n"
+"Some of them may be friendly and you may eventually trade with them.  However,\n"
+"if you want to rule the world, you will have to train soldiers and fight.\n"
+"\n"
+"Widelands offers single-player mode with different campaigns; the campaigns\n"
+"all tell stories of tribes and their struggle in the Widelands universe!\n"
+"However, settling really starts when you unite with friends over the Internet\n"
+"or LAN to build up new empires together---or to crush each other in the dusts\n"
+"of war.  Widelands also offers an Artificial Intelligence to challenge you."
+msgstr ""
+
+#: gnu/packages/games.scm:4952
 msgid "2D scrolling shooter game"
 msgstr ""
 
-#: gnu/packages/games.scm:3808
+#: gnu/packages/games.scm:4954
 msgid ""
 "In the year 2579, the intergalactic weapons corporation, WEAPCO, has\n"
 "dominated the galaxy.  Guide Chris Bainfield and his friend Sid Wilson on\n"
@@ -4631,11 +5333,11 @@ msgid ""
 "in strikes against the evil corporation."
 msgstr ""
 
-#: gnu/packages/games.scm:3839
+#: gnu/packages/games.scm:4985
 msgid "Fast-paced, arcade-style, top-scrolling space shooter"
 msgstr ""
 
-#: gnu/packages/games.scm:3841
+#: gnu/packages/games.scm:4987
 msgid ""
 "In this game you are the captain of the cargo ship Chromium B.S.U. and\n"
 "are responsible for delivering supplies to the troops on the front line.  Your\n"
@@ -4643,11 +5345,11 @@ msgid ""
 "safety of the Chromium vessel."
 msgstr ""
 
-#: gnu/packages/games.scm:3923
+#: gnu/packages/games.scm:5069
 msgid "Drawing software for children"
 msgstr ""
 
-#: gnu/packages/games.scm:3925
+#: gnu/packages/games.scm:5071
 msgid ""
 "Tux Paint is a free drawing program designed for young children (kids\n"
 "ages 3 and up).  It has a simple, easy-to-use interface; fun sound effects;\n"
@@ -4656,39 +5358,39 @@ msgid ""
 "your child be creative."
 msgstr ""
 
-#: gnu/packages/games.scm:3964
+#: gnu/packages/games.scm:5110
 msgid "Stamp images for Tux Paint"
 msgstr ""
 
-#: gnu/packages/games.scm:3966
+#: gnu/packages/games.scm:5112
 msgid ""
 "This package contains a set of \"Rubber Stamp\" images which can be used\n"
 "with the \"Stamp\" tool within Tux Paint."
 msgstr ""
 
-#: gnu/packages/games.scm:4013
+#: gnu/packages/games.scm:5159
 msgid "Configure Tux Paint"
 msgstr ""
 
-#: gnu/packages/games.scm:4015
+#: gnu/packages/games.scm:5161
 msgid "Tux Paint Config is a graphical configuration editor for Tux Paint."
 msgstr ""
 
-#: gnu/packages/games.scm:4065
+#: gnu/packages/games.scm:5211
 msgid "2D platformer game"
 msgstr ""
 
-#: gnu/packages/games.scm:4066
+#: gnu/packages/games.scm:5212
 msgid ""
 "SuperTux is a classic 2D jump'n run sidescroller game in\n"
 "a style similar to the original Super Mario games."
 msgstr ""
 
-#: gnu/packages/games.scm:4099
+#: gnu/packages/games.scm:5245
 msgid "MUD client"
 msgstr ""
 
-#: gnu/packages/games.scm:4101
+#: gnu/packages/games.scm:5247
 msgid ""
 "TinTin++ is a MUD client which supports MCCP (Mud Client Compression\n"
 "Protocol), MMCP (Mud Master Chat Protocol), xterm 256 colors, most TELNET\n"
@@ -4696,11 +5398,11 @@ msgid ""
 "Linux / Mac OS X servers, and an auto mapper with a VT100 map display."
 msgstr ""
 
-#: gnu/packages/games.scm:4146
+#: gnu/packages/games.scm:5292
 msgid "Programming game"
 msgstr ""
 
-#: gnu/packages/games.scm:4147
+#: gnu/packages/games.scm:5293
 msgid ""
 "Learn programming, playing with ants and spider webs ;-)\n"
 "Your robot ant can be programmed in many languages: OCaml, Python, C, C++,\n"
@@ -4708,22 +5410,22 @@ msgid ""
 "programmers may also add their own favorite language."
 msgstr ""
 
-#: gnu/packages/games.scm:4185
+#: gnu/packages/games.scm:5331
 msgid "Keyboard mashing and doodling game for babies"
 msgstr ""
 
-#: gnu/packages/games.scm:4186
+#: gnu/packages/games.scm:5332
 msgid ""
 "Bambam is a simple baby keyboard (and gamepad) masher\n"
 "application that locks the keyboard and mouse and instead displays bright\n"
 "colors, pictures, and sounds."
 msgstr ""
 
-#: gnu/packages/games.scm:4250
+#: gnu/packages/games.scm:5396
 msgid "Arcade-style fire fighting game"
 msgstr ""
 
-#: gnu/packages/games.scm:4252
+#: gnu/packages/games.scm:5398
 msgid ""
 "Mr. Rescue is an arcade styled 2d action game centered around evacuating\n"
 "civilians from burning buildings.  The game features fast-paced fire\n"
@@ -4731,11 +5433,11 @@ msgid ""
 "throwing people around in pseudo-randomly generated buildings."
 msgstr ""
 
-#: gnu/packages/games.scm:4362
+#: gnu/packages/games.scm:5508
 msgid "Non-euclidean graphical rogue-like game"
 msgstr ""
 
-#: gnu/packages/games.scm:4364
+#: gnu/packages/games.scm:5510
 msgid ""
 "HyperRogue is a game in which the player collects treasures and fights\n"
 "monsters -- rogue-like but for the fact that it is played on the hyperbolic\n"
@@ -4749,21 +5451,21 @@ msgid ""
 "symbols, it still needs graphics to render the non-euclidean world."
 msgstr ""
 
-#: gnu/packages/games.scm:4409
+#: gnu/packages/games.scm:5555
 msgid "Shooter with space station destruction"
 msgstr ""
 
-#: gnu/packages/games.scm:4411
+#: gnu/packages/games.scm:5557
 msgid ""
 "Kobo Deluxe is an enhanced version of Akira Higuchi's XKobo graphical game\n"
 "for Un*x systems with X11."
 msgstr ""
 
-#: gnu/packages/games.scm:4442
+#: gnu/packages/games.scm:5588
 msgid "Turn-based empire building strategy game"
 msgstr ""
 
-#: gnu/packages/games.scm:4443
+#: gnu/packages/games.scm:5589
 msgid ""
 "Freeciv is a turn-based empire building strategy game\n"
 "inspired by the history of human civilization.  The game commences in\n"
@@ -4771,11 +5473,11 @@ msgid ""
 "into the Space Age."
 msgstr ""
 
-#: gnu/packages/games.scm:4474
+#: gnu/packages/games.scm:5620
 msgid "Recreation of data decryption effect in \"Sneakers\""
 msgstr ""
 
-#: gnu/packages/games.scm:4476
+#: gnu/packages/games.scm:5622
 msgid ""
 "@code{No More Secrets} provides a command line tool called \"nms\"\n"
 "that recreates the famous data decryption effect seen on screen in the 1992\n"
@@ -4786,41 +5488,41 @@ msgid ""
 "starting a decryption sequence to reveal the original plaintext characters."
 msgstr ""
 
-#: gnu/packages/games.scm:4503
+#: gnu/packages/games.scm:5649
 msgid "Data files for MegaGlest"
 msgstr ""
 
-#: gnu/packages/games.scm:4504
+#: gnu/packages/games.scm:5650
 msgid "This package contains the data files required for MegaGlest."
 msgstr ""
 
-#: gnu/packages/games.scm:4557
+#: gnu/packages/games.scm:5703
 msgid "3D real-time strategy (RTS) game"
 msgstr ""
 
-#: gnu/packages/games.scm:4558
+#: gnu/packages/games.scm:5704
 msgid ""
 "MegaGlest is a cross-platform 3D real-time strategy (RTS)\n"
 "game, where you control the armies of one of seven different factions: Tech,\n"
 "Magic, Egypt, Indians, Norsemen, Persian or Romans."
 msgstr ""
 
-#: gnu/packages/games.scm:4609
+#: gnu/packages/games.scm:5755
 msgid "Side-scrolling physics platformer with a ball of tar"
 msgstr ""
 
-#: gnu/packages/games.scm:4610
+#: gnu/packages/games.scm:5756
 msgid ""
 "In FreeGish you control Gish, a ball of tar who lives\n"
 "happily with his girlfriend Brea, until one day a mysterious dark creature\n"
 "emerges from a sewer hole and pulls her below ground."
 msgstr ""
 
-#: gnu/packages/games.scm:4646
+#: gnu/packages/games.scm:5795
 msgid "Classic overhead run-and-gun game"
 msgstr ""
 
-#: gnu/packages/games.scm:4647
+#: gnu/packages/games.scm:5796
 msgid ""
 "C-Dogs SDL is a classic overhead run-and-gun game,\n"
 "supporting up to 4 players in co-op and deathmatch modes.  Customize your\n"
@@ -4828,33 +5530,33 @@ msgid ""
 "over 100 user-created campaigns."
 msgstr ""
 
-#: gnu/packages/games.scm:4746
+#: gnu/packages/games.scm:5896
 msgid "3D puzzle game"
 msgstr ""
 
-#: gnu/packages/games.scm:4747
+#: gnu/packages/games.scm:5897
 msgid ""
 "Kiki the nano bot is a 3D puzzle game.  It is basically a\n"
 "mixture of the games Sokoban and Kula-World.  Your task is to help Kiki, a\n"
 "small robot living in the nano world, repair its maker."
 msgstr ""
 
-#: gnu/packages/games.scm:4858
+#: gnu/packages/games.scm:6008
 msgid "2D retro multiplayer shooter game"
 msgstr ""
 
-#: gnu/packages/games.scm:4859
+#: gnu/packages/games.scm:6009
 msgid ""
 "Teeworlds is an online multiplayer game.  Battle with up to\n"
 "16 players in a variety of game modes, including Team Deathmatch and Capture\n"
 "The Flag.  You can even design your own maps!"
 msgstr ""
 
-#: gnu/packages/games.scm:4912
+#: gnu/packages/games.scm:6070
 msgid "Puzzle game with a dexterity component"
 msgstr ""
 
-#: gnu/packages/games.scm:4913
+#: gnu/packages/games.scm:6071
 msgid ""
 "Enigma is a puzzle game with 550 unique levels.  The object\n"
 "of the game is to find and uncover pairs of identically colored ‘Oxyd’ stones.\n"
@@ -4866,11 +5568,11 @@ msgid ""
 "with the mouse isn’t always trivial."
 msgstr ""
 
-#: gnu/packages/games.scm:4946
+#: gnu/packages/games.scm:6105
 msgid "Abstract puzzle game"
 msgstr ""
 
-#: gnu/packages/games.scm:4947
+#: gnu/packages/games.scm:6106
 msgid ""
 "Chroma is an abstract puzzle game. A variety of colourful\n"
 "shapes are arranged in a series of increasingly complex patterns, forming\n"
@@ -4880,11 +5582,11 @@ msgid ""
 "becoming difficult enough to tax even the brightest of minds."
 msgstr ""
 
-#: gnu/packages/games.scm:5016
+#: gnu/packages/games.scm:6175
 msgid "Puzzle game"
 msgstr ""
 
-#: gnu/packages/games.scm:5017
+#: gnu/packages/games.scm:6176
 msgid ""
 "Fish Fillets NG is strictly a puzzle game.  The goal in\n"
 "every of the seventy levels is always the same: find a safe way out.  The fish\n"
@@ -4893,26 +5595,26 @@ msgid ""
 "fish.  The whole game is accompanied by quiet, comforting music."
 msgstr ""
 
-#: gnu/packages/games.scm:5090
+#: gnu/packages/games.scm:6259
 msgid "Roguelike dungeon crawler game"
 msgstr ""
 
-#: gnu/packages/games.scm:5091
+#: gnu/packages/games.scm:6260
 msgid ""
 "Dungeon Crawl Stone Soup (also known as \"Crawl\" or DCSS\n"
 "for short) is a roguelike adventure through dungeons filled with dangerous\n"
 "monsters in a quest to find the mystifyingly fabulous Orb of Zot."
 msgstr ""
 
-#: gnu/packages/games.scm:5137
+#: gnu/packages/games.scm:6306
 msgid "Graphical roguelike dungeon crawler game"
 msgstr ""
 
-#: gnu/packages/games.scm:5167
+#: gnu/packages/games.scm:6336
 msgid "Cross-platform third-person action game"
 msgstr ""
 
-#: gnu/packages/games.scm:5168
+#: gnu/packages/games.scm:6337
 msgid ""
 "Lugaru is a third-person action game.  The main character,\n"
 "Turner, is an anthropomorphic rebel bunny rabbit with impressive combat skills.\n"
@@ -4922,19 +5624,19 @@ msgid ""
 "fight against their plot and save his fellow rabbits from slavery."
 msgstr ""
 
-#: gnu/packages/games.scm:5218
+#: gnu/packages/games.scm:6387
 msgid "Data files for 0ad"
 msgstr ""
 
-#: gnu/packages/games.scm:5219
+#: gnu/packages/games.scm:6388
 msgid "0ad-data provides the data files required by the game 0ad."
 msgstr ""
 
-#: gnu/packages/games.scm:5337
+#: gnu/packages/games.scm:6506
 msgid "3D real-time strategy game of ancient warfare"
 msgstr ""
 
-#: gnu/packages/games.scm:5338
+#: gnu/packages/games.scm:6507
 msgid ""
 "0 A.D. is a real-time strategy (RTS) game of ancient\n"
 "warfare.  It's a historically-based war/economy game that allows players to\n"
@@ -4944,11 +5646,11 @@ msgid ""
 "0ad needs a window manager that supports 'Extended Window Manager Hints'."
 msgstr ""
 
-#: gnu/packages/games.scm:5413
+#: gnu/packages/games.scm:6582
 msgid "Colossal Cave Adventure"
 msgstr ""
 
-#: gnu/packages/games.scm:5414
+#: gnu/packages/games.scm:6583
 msgid ""
 "The original Colossal Cave Adventure from 1976 was the\n"
 "origin of all text adventures, dungeon-crawl (computer) games, and\n"
@@ -4957,11 +5659,11 @@ msgid ""
 "\"adventure 2.5\" and \"430-point adventure\"."
 msgstr ""
 
-#: gnu/packages/games.scm:5425
+#: gnu/packages/games.scm:6594
 msgid "Single-player, RPG roguelike game set in the world of Eyal"
 msgstr ""
 
-#: gnu/packages/games.scm:5539
+#: gnu/packages/games.scm:6702
 msgid ""
 "Tales of Maj’Eyal (ToME) RPG, featuring tactical turn-based\n"
 "combat and advanced character building.  Play as one of many unique races and\n"
@@ -4972,29 +5674,29 @@ msgid ""
 "Tales of Maj’Eyal offers engaging roguelike gameplay for the 21st century."
 msgstr ""
 
-#: gnu/packages/games.scm:5584
+#: gnu/packages/games.scm:6747
 msgid "First person shooter engine for Quake 1"
 msgstr ""
 
-#: gnu/packages/games.scm:5585
+#: gnu/packages/games.scm:6748
 msgid ""
 "Quakespasm is a modern engine for id software's Quake 1.\n"
 "It includes support for 64 bit CPUs, custom music playback, a new sound driver,\n"
 "some graphical niceities, and numerous bug-fixes and other improvements."
 msgstr ""
 
-#: gnu/packages/games.scm:5635
+#: gnu/packages/games.scm:6806
 msgid ""
 "vkquake is a modern engine for id software's Quake 1.\n"
 "It includes support for 64 bit CPUs, custom music playback, a new sound driver,\n"
 "some graphical niceities, and numerous bug-fixes and other improvements."
 msgstr ""
 
-#: gnu/packages/games.scm:5686
+#: gnu/packages/games.scm:6857
 msgid "First person shooter engine based on quake2"
 msgstr ""
 
-#: gnu/packages/games.scm:5687
+#: gnu/packages/games.scm:6858
 msgid ""
 "Yamagi Quake II is an enhanced client for id Software's Quake II.\n"
 "The main focus is an unchanged single player experience like back in 1997,\n"
@@ -5004,30 +5706,30 @@ msgid ""
 "making Yamagi Quake II one of the most solid Quake II implementations available."
 msgstr ""
 
-#: gnu/packages/games.scm:5715
+#: gnu/packages/games.scm:6886
 msgid "Sudoku for your terminal"
 msgstr ""
 
-#: gnu/packages/games.scm:5716
+#: gnu/packages/games.scm:6887
 msgid "Nudoku is a ncurses-based Sudoku game for your terminal."
 msgstr ""
 
-#: gnu/packages/games.scm:5762
+#: gnu/packages/games.scm:6933
 msgid "Realistic physics puzzle game"
 msgstr ""
 
-#: gnu/packages/games.scm:5763
+#: gnu/packages/games.scm:6934
 msgid ""
 "The Butterfly Effect (tbe) is a game that uses\n"
 "realistic physics simulations to combine lots of simple mechanical\n"
 "elements to achieve a simple goal in the most complex way possible."
 msgstr ""
 
-#: gnu/packages/games.scm:5806
+#: gnu/packages/games.scm:6977
 msgid "Game of lonely space adventure"
 msgstr ""
 
-#: gnu/packages/games.scm:5808
+#: gnu/packages/games.scm:6979
 msgid ""
 "Pioneer is a space adventure game set in our galaxy at the turn of the\n"
 "31st century.  The game is open-ended, and you are free to eke out whatever\n"
@@ -5038,22 +5740,22 @@ msgid ""
 "whatever you make of it."
 msgstr ""
 
-#: gnu/packages/games.scm:5835
+#: gnu/packages/games.scm:7006
 msgid "Hacking contribution graphs in git"
 msgstr ""
 
-#: gnu/packages/games.scm:5837
+#: gnu/packages/games.scm:7008
 msgid ""
 "Badass generates false commits for a range of dates, essentially\n"
 "hacking the gamification of contribution graphs on platforms such as\n"
 "Github or Gitlab."
 msgstr ""
 
-#: gnu/packages/games.scm:5910
+#: gnu/packages/games.scm:7081
 msgid "Educational programming strategy game"
 msgstr ""
 
-#: gnu/packages/games.scm:5911
+#: gnu/packages/games.scm:7082
 msgid ""
 "Colobot: Gold Edition is a real-time strategy game, where\n"
 "you can program your units (bots) in a language called CBOT, which is similar\n"
@@ -5061,11 +5763,11 @@ msgid ""
 "You can save humanity and get programming skills!"
 msgstr ""
 
-#: gnu/packages/games.scm:6003
+#: gnu/packages/games.scm:7174
 msgid "Modern Doom 2 source port"
 msgstr ""
 
-#: gnu/packages/games.scm:6004
+#: gnu/packages/games.scm:7175
 msgid ""
 "GZdoom is a port of the Doom 2 game engine, with a modern\n"
 "renderer.  It improves modding support with ZDoom's advanced mapping features\n"
@@ -5073,24 +5775,24 @@ msgid ""
 "Strife, Chex Quest, and fan-created games like Harmony, Hacx and Freedoom."
 msgstr ""
 
-#: gnu/packages/games.scm:6039
+#: gnu/packages/games.scm:7210
 msgid "Multiplayer Doom port"
 msgstr ""
 
-#: gnu/packages/games.scm:6040
+#: gnu/packages/games.scm:7211
 msgid ""
 "Odamex is a modification of the Doom engine that\n"
 "allows players to easily join servers dedicated to playing Doom\n"
 "online."
 msgstr ""
 
-#: gnu/packages/games.scm:6065
+#: gnu/packages/games.scm:7236
 msgid ""
 "Doom source port preserving the look, feel, and bugs of vanilla\n"
 "Doom"
 msgstr ""
 
-#: gnu/packages/games.scm:6068
+#: gnu/packages/games.scm:7239
 msgid ""
 "Chocolate Doom takes a different approach to other source ports.  Its\n"
 "aim is to accurately reproduce the experience of playing Vanilla Doom.  It is\n"
@@ -5103,13 +5805,13 @@ msgid ""
 "affect gameplay)."
 msgstr ""
 
-#: gnu/packages/games.scm:6104
+#: gnu/packages/games.scm:7275
 msgid ""
 "Limit-removing enhanced-resolution Doom source port based on\n"
 "Chocolate Doom"
 msgstr ""
 
-#: gnu/packages/games.scm:6107
+#: gnu/packages/games.scm:7278
 msgid ""
 "Crispy Doom is a friendly fork of Chocolate Doom that provides a higher\n"
 "display resolution, removes the static limits of the Doom engine and offers\n"
@@ -5118,37 +5820,37 @@ msgid ""
 "original."
 msgstr ""
 
-#: gnu/packages/games.scm:6179
+#: gnu/packages/games.scm:7350
 msgid "C11 / gnu11 utilities C library"
 msgstr ""
 
-#: gnu/packages/games.scm:6180
+#: gnu/packages/games.scm:7351
 msgid "This package provides C11 / gnu11 utilities C library"
 msgstr ""
 
-#: gnu/packages/games.scm:6238
+#: gnu/packages/games.scm:7408
 msgid "The Fortune Cookie program from BSD games"
 msgstr ""
 
-#: gnu/packages/games.scm:6239
+#: gnu/packages/games.scm:7409
 msgid ""
 "Fortune is a command-line utility which displays a random\n"
 "quotation from a collection of quotes."
 msgstr ""
 
-#: gnu/packages/games.scm:6279
+#: gnu/packages/games.scm:7449
 msgid "Data files for Xonotic"
 msgstr ""
 
-#: gnu/packages/games.scm:6281
+#: gnu/packages/games.scm:7451
 msgid "Xonotic-data provides the data files required by the game Xonotic."
 msgstr ""
 
-#: gnu/packages/games.scm:6475
+#: gnu/packages/games.scm:7645
 msgid "Fast-paced first-person shooter game"
 msgstr ""
 
-#: gnu/packages/games.scm:6477
+#: gnu/packages/games.scm:7647
 msgid ""
 "Xonotic is a free, fast-paced first-person shooter.\n"
 "The project is geared towards providing addictive arena shooter\n"
@@ -5158,11 +5860,11 @@ msgid ""
 "open-source FPS of its kind."
 msgstr ""
 
-#: gnu/packages/games.scm:6527
+#: gnu/packages/games.scm:7697
 msgid "Portable Z-machine interpreter (ncurses version) for text adventure games"
 msgstr ""
 
-#: gnu/packages/games.scm:6528
+#: gnu/packages/games.scm:7698
 msgid ""
 "Frotz is an interpreter for Infocom games and other Z-machine\n"
 "games in the text adventure/interactive fiction genre.  This version of Frotz\n"
@@ -5171,11 +5873,11 @@ msgid ""
 "ncurses for text display."
 msgstr ""
 
-#: gnu/packages/games.scm:6569
+#: gnu/packages/games.scm:7739
 msgid "Portable Z-machine dumb interpreter for text adventure games"
 msgstr ""
 
-#: gnu/packages/games.scm:6570
+#: gnu/packages/games.scm:7740
 msgid ""
 "Frotz is an interpreter for Infocom games and\n"
 "other Z-machine games in the text adventure/interactive fiction genre.\n"
@@ -5187,11 +5889,11 @@ msgid ""
 "to play games on webpages.  It can also be made into a chat bot."
 msgstr ""
 
-#: gnu/packages/games.scm:6633
+#: gnu/packages/games.scm:7803
 msgid "Portable Z-machine interpreter (SDL port) for text adventure games"
 msgstr ""
 
-#: gnu/packages/games.scm:6634
+#: gnu/packages/games.scm:7804
 msgid ""
 "Frotz is an interpreter for Infocom games and other Z-machine\n"
 "games in the text adventure/interactive fiction genre.  This version of Frotz\n"
@@ -5201,11 +5903,30 @@ msgid ""
 "when packaged in Blorb container files or optionally from individual files."
 msgstr ""
 
-#: gnu/packages/games.scm:6665
+#: gnu/packages/games.scm:7896
+msgid "Puzzle with bubbles"
+msgstr ""
+
+#: gnu/packages/games.scm:7898
+msgid ""
+"Frozen-Bubble is a clone of the popular Puzzle Bobble game, in which\n"
+"you attempt to shoot bubbles into groups of the same color to cause them to\n"
+"pop.\n"
+"\n"
+"Players compete as penguins and must use the arrow keys to aim a colored\n"
+"bubble at groups of bubbles.  The objective is to clear all the bubbles off\n"
+"the screen before a bubble passes below a line at the bottom.\n"
+"\n"
+"It features 100 single-player levels, a two-player mode, music and striking\n"
+"graphics.  A level editor is also included to allow players to create and play\n"
+"their own levels."
+msgstr ""
+
+#: gnu/packages/games.scm:7933
 msgid "Game controller library"
 msgstr ""
 
-#: gnu/packages/games.scm:6666
+#: gnu/packages/games.scm:7934
 msgid ""
 "Libmanette is a small GObject library giving you simple\n"
 "access to game controllers.  It supports the de-facto standard gamepads as\n"
@@ -5213,11 +5934,11 @@ msgid ""
 "GameController."
 msgstr ""
 
-#: gnu/packages/games.scm:6711
+#: gnu/packages/games.scm:7980
 msgid "GNOME version of Tetris"
 msgstr ""
 
-#: gnu/packages/games.scm:6712
+#: gnu/packages/games.scm:7981
 msgid ""
 "Quadrapassel comes from the classic falling-block game,\n"
 "Tetris.  The goal of the game is to create complete horizontal lines of\n"
@@ -5229,11 +5950,11 @@ msgid ""
 "your score gets higher, you level up and the blocks fall faster."
 msgstr ""
 
-#: gnu/packages/games.scm:6766
+#: gnu/packages/games.scm:8034
 msgid "2D space trading and combat game"
 msgstr ""
 
-#: gnu/packages/games.scm:6767
+#: gnu/packages/games.scm:8035
 msgid ""
 "Endless Sky is a 2D space trading and combat game.  Explore\n"
 "other star systems.  Earn money by trading, carrying passengers, or completing\n"
@@ -5243,11 +5964,11 @@ msgid ""
 "civilized than your own."
 msgstr ""
 
-#: gnu/packages/games.scm:6916
+#: gnu/packages/games.scm:8184
 msgid "Advanced rhythm game designed for both home and arcade use"
 msgstr ""
 
-#: gnu/packages/games.scm:6917
+#: gnu/packages/games.scm:8185
 msgid ""
 "StepMania is a dance and rhythm game.  It features 3D\n"
 "graphics, keyboard and dance pad support, and an editor for creating your own\n"
@@ -5257,11 +5978,11 @@ msgid ""
 "to download and install them in @file{$HOME/.stepmania-X.Y/Songs} directory."
 msgstr ""
 
-#: gnu/packages/games.scm:7002
+#: gnu/packages/games.scm:8270
 msgid "Multiplayer tank battle game"
 msgstr ""
 
-#: gnu/packages/games.scm:7003
+#: gnu/packages/games.scm:8271
 msgid ""
 "Battle Tanks (also known as \"btanks\") is a funny battle\n"
 "game, where you can choose one of three vehicles and eliminate your enemy\n"
@@ -5270,11 +5991,11 @@ msgid ""
 "and cooperative."
 msgstr ""
 
-#: gnu/packages/games.scm:7033
+#: gnu/packages/games.scm:8301
 msgid "Simple 2D shooting strategy game set in space"
 msgstr ""
 
-#: gnu/packages/games.scm:7034
+#: gnu/packages/games.scm:8302
 msgid ""
 "Slingshot is a two-dimensional strategy game where two\n"
 "players attempt to shoot one another through a section of space populated by\n"
@@ -5282,22 +6003,22 @@ msgid ""
 "affected by the gravity of the planets."
 msgstr ""
 
-#: gnu/packages/games.scm:7081
+#: gnu/packages/games.scm:8349
 msgid "4D Tetris"
 msgstr ""
 
-#: gnu/packages/games.scm:7082
+#: gnu/packages/games.scm:8350
 msgid ""
 "4D-TRIS is an alteration of the well-known Tetris game.  The\n"
 "game field is extended to 4D space, which has to filled up by the gamer with\n"
 "4D hyper cubes."
 msgstr ""
 
-#: gnu/packages/games.scm:7158
+#: gnu/packages/games.scm:8426
 msgid "Port of Arx Fatalis, a first-person role-playing game"
 msgstr ""
 
-#: gnu/packages/games.scm:7159
+#: gnu/packages/games.scm:8427
 msgid ""
 "Arx Libertatis is a cross-platform port of Arx Fatalis, a 2002\n"
 "first-person role-playing game / dungeon crawler developed by Arkane Studios.\n"
@@ -5307,11 +6028,11 @@ msgid ""
 "where the player draws runes in real time to effect the desired spell."
 msgstr ""
 
-#: gnu/packages/games.scm:7205
+#: gnu/packages/games.scm:8473
 msgid "2d action platformer game"
 msgstr ""
 
-#: gnu/packages/games.scm:7206
+#: gnu/packages/games.scm:8474
 msgid ""
 "The Legend of Edgar is a 2D platform game with a persistent world.\n"
 "When Edgar's father fails to return home after venturing out one dark and stormy night,\n"
@@ -5319,11 +6040,11 @@ msgid ""
 "a fortress beyond the forbidden swamp."
 msgstr ""
 
-#: gnu/packages/games.scm:7307
+#: gnu/packages/games.scm:8575
 msgid "Multiplayer action game where you control small and nimble humanoids"
 msgstr ""
 
-#: gnu/packages/games.scm:7308
+#: gnu/packages/games.scm:8576
 msgid ""
 "OpenClonk is a multiplayer action/tactics/skill game.  It is\n"
 "often referred to as a mixture of The Settlers and Worms.  In a simple 2D\n"
@@ -5333,32 +6054,32 @@ msgid ""
 "fight each other on an arena-like map."
 msgstr ""
 
-#: gnu/packages/games.scm:7339
+#: gnu/packages/games.scm:8607
 msgid "Action Roleplaying Engine"
 msgstr ""
 
-#: gnu/packages/games.scm:7340
+#: gnu/packages/games.scm:8608
 msgid ""
 "Flare (Free Libre Action Roleplaying Engine) is a simple\n"
 "game engine built to handle a very specific kind of game: single-player 2D\n"
 "action RPGs."
 msgstr ""
 
-#: gnu/packages/games.scm:7404
+#: gnu/packages/games.scm:8672
 msgid "Fantasy action RPG using the FLARE engine"
 msgstr ""
 
-#: gnu/packages/games.scm:7405
+#: gnu/packages/games.scm:8673
 msgid ""
 "Flare is a single-player 2D action RPG with\n"
 "fast-paced action and a dark fantasy style."
 msgstr ""
 
-#: gnu/packages/games.scm:7456
+#: gnu/packages/games.scm:8724
 msgid "Action-adventure dungeon crawl game"
 msgstr ""
 
-#: gnu/packages/games.scm:7457
+#: gnu/packages/games.scm:8725
 msgid ""
 "Far below the surface of the planet is a place of limitless\n"
 "power.  Those that seek to control such a utopia will soon bring an end to\n"
@@ -5372,11 +6093,11 @@ msgid ""
 "Orcus Dome from evil."
 msgstr ""
 
-#: gnu/packages/games.scm:7520
+#: gnu/packages/games.scm:8788
 msgid "Guide a marble across fractal landscapes"
 msgstr ""
 
-#: gnu/packages/games.scm:7521
+#: gnu/packages/games.scm:8789
 msgid ""
 "Marble Marcher is a video game that uses a fractal physics\n"
 "engine and fully procedural rendering to produce beautiful and unique\n"
@@ -5386,11 +6107,11 @@ msgid ""
 "levels to unlock."
 msgstr ""
 
-#: gnu/packages/games.scm:7562
+#: gnu/packages/games.scm:8830
 msgid "Libraries for 3D simulations and games"
 msgstr ""
 
-#: gnu/packages/games.scm:7563
+#: gnu/packages/games.scm:8831
 msgid ""
 "SimGear is a set of libraries designed to be used as\n"
 "building blocks for quickly assembling 3D simulations, games, and\n"
@@ -5398,11 +6119,11 @@ msgid ""
 "and also provides the base for the FlightGear Flight Simulator."
 msgstr ""
 
-#: gnu/packages/games.scm:7655
+#: gnu/packages/games.scm:8923
 msgid "Flight simulator"
 msgstr ""
 
-#: gnu/packages/games.scm:7656
+#: gnu/packages/games.scm:8924
 msgid ""
 "The goal of the FlightGear project is to create a\n"
 "sophisticated flight simulator framework for use in research or academic\n"
@@ -5412,22 +6133,22 @@ msgid ""
 "simulator."
 msgstr ""
 
-#: gnu/packages/games.scm:7702
+#: gnu/packages/games.scm:8970
 msgid "Multiplayer platform game with bunnies"
 msgstr ""
 
-#: gnu/packages/games.scm:7703
+#: gnu/packages/games.scm:8971
 msgid ""
 "You, as a bunny, have to jump on your opponents to make them\n"
 "explode.  It is a true multiplayer game; you cannot play this alone.  You can\n"
 "play with up to four players simultaneously.  It has network support."
 msgstr ""
 
-#: gnu/packages/games.scm:7755
+#: gnu/packages/games.scm:9032
 msgid "Turn-based artillery game featuring fighting hedgehogs"
 msgstr ""
 
-#: gnu/packages/games.scm:7757
+#: gnu/packages/games.scm:9034
 msgid ""
 "Hedgewars is a turn based strategy, artillery, action and comedy game,\n"
 "featuring the antics of pink hedgehogs with attitude as they battle from the\n"
@@ -5437,11 +6158,11 @@ msgid ""
 "and bring the war to your enemy."
 msgstr ""
 
-#: gnu/packages/games.scm:7789
+#: gnu/packages/games.scm:9066
 msgid "Stealth coffee-break roguelike game"
 msgstr ""
 
-#: gnu/packages/games.scm:7790
+#: gnu/packages/games.scm:9067
 msgid ""
 "Harmonist: Dayoriah Clan Infiltration is a stealth\n"
 "coffee-break roguelike game.  The game has a heavy focus on tactical\n"
@@ -5451,11 +6172,11 @@ msgid ""
 "on items and player adaptability for character progression."
 msgstr ""
 
-#: gnu/packages/games.scm:7925 gnu/packages/games.scm:8108
+#: gnu/packages/games.scm:9198 gnu/packages/games.scm:9381
 msgid "Classic 2D point and click adventure game"
 msgstr ""
 
-#: gnu/packages/games.scm:7926
+#: gnu/packages/games.scm:9199
 msgid ""
 "Drascula: The Vampire Strikes Back is a classic humorous 2D\n"
 "point and click adventure game.\n"
@@ -5467,11 +6188,11 @@ msgid ""
 "the World and demonstrating that he is even more evil than his brother Vlad."
 msgstr ""
 
-#: gnu/packages/games.scm:8006
+#: gnu/packages/games.scm:9279
 msgid "2D point and click fantasy adventure game"
 msgstr ""
 
-#: gnu/packages/games.scm:8008
+#: gnu/packages/games.scm:9281
 msgid ""
 "Lure of the Temptress is a classic 2D point and click adventure game.\n"
 "\n"
@@ -5490,7 +6211,7 @@ msgid ""
 "Skorl.  Maybe it would be an idea to try and escape..."
 msgstr ""
 
-#: gnu/packages/games.scm:8109
+#: gnu/packages/games.scm:9382
 msgid ""
 "Flight of the Amazon Queen is a 2D point-and-click\n"
 "adventure game set in the 1940s.\n"
@@ -5507,11 +6228,11 @@ msgid ""
 "women and 6-foot-tall pygmies."
 msgstr ""
 
-#: gnu/packages/games.scm:8209
-msgid "Classic 2D point an click science-fiction adventure game"
+#: gnu/packages/games.scm:9482
+msgid "Classic 2D point and click science-fiction adventure game"
 msgstr ""
 
-#: gnu/packages/games.scm:8211
+#: gnu/packages/games.scm:9484
 msgid ""
 "Beneath a Steel Sky is a science-fiction thriller set in a bleak\n"
 "post-apocalyptic vision of the future.  It revolves around Union City,\n"
@@ -5534,11 +6255,11 @@ msgid ""
 "and to seek vengeance for the killing of his tribe."
 msgstr ""
 
-#: gnu/packages/games.scm:8272
+#: gnu/packages/games.scm:9545
 msgid "Program a little robot and watch it explore a world"
 msgstr ""
 
-#: gnu/packages/games.scm:8274
+#: gnu/packages/games.scm:9547
 msgid ""
 "GNU Robots is a game in which you program a robot to explore a world\n"
 "full of enemies that can hurt it, obstacles and food to be eaten.  The goal of\n"
@@ -5546,22 +6267,22 @@ msgid ""
 "may be written in a plain text file in the Scheme programming language."
 msgstr ""
 
-#: gnu/packages/games.scm:8343
+#: gnu/packages/games.scm:9616
 msgid "Toy train simulation game"
 msgstr ""
 
-#: gnu/packages/games.scm:8344
+#: gnu/packages/games.scm:9617
 msgid ""
 "Ri-li is a game in which you drive a wooden toy\n"
 "steam locomotive across many levels and collect all the coaches to\n"
 "win."
 msgstr ""
 
-#: gnu/packages/games.scm:8398
+#: gnu/packages/games.scm:9671
 msgid "Turn-based space empire and galactic conquest computer game"
 msgstr ""
 
-#: gnu/packages/games.scm:8400
+#: gnu/packages/games.scm:9673
 msgid ""
 "FreeOrion is a turn-based space empire and galactic conquest (4X)\n"
 "computer game being designed and built by the FreeOrion project.  Control an\n"
@@ -5571,22 +6292,22 @@ msgid ""
 "remake of that series or any other game."
 msgstr ""
 
-#: gnu/packages/games.scm:8454
+#: gnu/packages/games.scm:9727
 msgid "Program playing the game of Go"
 msgstr ""
 
-#: gnu/packages/games.scm:8456
+#: gnu/packages/games.scm:9729
 msgid ""
 "Leela-zero is a Go engine with no human-provided knowledge, modeled after\n"
 "the AlphaGo Zero paper.  The current best network weights file for the engine\n"
 "can be downloaded from @url{https://zero.sjeng.org/best-network}."
 msgstr ""
 
-#: gnu/packages/games.scm:8529
+#: gnu/packages/games.scm:9802
 msgid "Qt GUI to play the game of Go"
 msgstr ""
 
-#: gnu/packages/games.scm:8531
+#: gnu/packages/games.scm:9804
 msgid ""
 "This a tool for Go players which performs the following functions:\n"
 "@itemize\n"
@@ -5598,15 +6319,15 @@ msgid ""
 "@end itemize"
 msgstr ""
 
-#: gnu/packages/games.scm:8573
+#: gnu/packages/games.scm:9846
 msgid "Stamp drawing toy"
 msgstr ""
 
-#: gnu/packages/games.scm:8574
+#: gnu/packages/games.scm:9847
 msgid ""
 "KTuberling is a drawing toy intended for small children and\n"
 "adults who remain young at heart.  The game has no winner; the only purpose is\n"
-"to make the funniest faces you can.  Several activites are possible, e.g.:\n"
+"to make the funniest faces you can.  Several activities are possible, e.g.:\n"
 "\n"
 "@itemize\n"
 "@item Give the potato a funny face, clothes, and other goodies\n"
@@ -5621,11 +6342,11 @@ msgid ""
 "This package is part of the KDE games module."
 msgstr ""
 
-#: gnu/packages/games.scm:8620
+#: gnu/packages/games.scm:9893
 msgid "Number logic game"
 msgstr ""
 
-#: gnu/packages/games.scm:8621
+#: gnu/packages/games.scm:9894
 msgid ""
 "Picmi is a number logic game in which cells in a grid have\n"
 "to be colored or left blank according to numbers given at the side of the\n"
@@ -5634,11 +6355,11 @@ msgid ""
 "This package is part of the KDE games module."
 msgstr ""
 
-#: gnu/packages/games.scm:8658
+#: gnu/packages/games.scm:9931
 msgid "Miniature golf game"
 msgstr ""
 
-#: gnu/packages/games.scm:8659
+#: gnu/packages/games.scm:9932
 msgid ""
 "Kolf is a miniature golf game for one to ten players.  The\n"
 "game is played from an overhead view, with a short bar representing the golf\n"
@@ -5657,21 +6378,21 @@ msgid ""
 "This package is part of the KDE games module."
 msgstr ""
 
-#: gnu/packages/games.scm:8702
+#: gnu/packages/games.scm:9975
 msgid "Shared library for kmahjongg and kshisen"
 msgstr ""
 
-#: gnu/packages/games.scm:8703
+#: gnu/packages/games.scm:9976
 msgid ""
 "Shared library and common files for kmahjongg, kshisen and\n"
 "other Mah Jongg like games."
 msgstr ""
 
-#: gnu/packages/games.scm:8736
+#: gnu/packages/games.scm:10009
 msgid "Tile laying patience"
 msgstr ""
 
-#: gnu/packages/games.scm:8737
+#: gnu/packages/games.scm:10010
 msgid ""
 "In KMahjongg the tiles are scrambled and staked on top of\n"
 "each other to resemble a certain shape.  The player is then expected to remove\n"
@@ -5683,11 +6404,11 @@ msgid ""
 "This package is part of the KDE games module."
 msgstr ""
 
-#: gnu/packages/games.scm:8778
+#: gnu/packages/games.scm:10051
 msgid "Shisen-Sho solitaire game"
 msgstr ""
 
-#: gnu/packages/games.scm:8779
+#: gnu/packages/games.scm:10052
 msgid ""
 "KShisen is a solitaire-like game played using the standard\n"
 "set of Mahjong tiles.  Unlike Mahjong however, KShisen has only one layer of\n"
@@ -5696,11 +6417,11 @@ msgid ""
 "This package is part of the KDE games module."
 msgstr ""
 
-#: gnu/packages/games.scm:8816
+#: gnu/packages/games.scm:10089
 msgid "Classical Mah Jongg game for 4 players"
 msgstr ""
 
-#: gnu/packages/games.scm:8817
+#: gnu/packages/games.scm:10090
 msgid ""
 "Kajongg is the ancient Chinese board game for 4 players.\n"
 "\n"
@@ -5715,11 +6436,11 @@ msgid ""
 "This package is part of the KDE games module."
 msgstr ""
 
-#: gnu/packages/games.scm:8859
+#: gnu/packages/games.scm:10132
 msgid "Breakout like game"
 msgstr ""
 
-#: gnu/packages/games.scm:8860
+#: gnu/packages/games.scm:10133
 msgid ""
 "KBreakout is similar to the classics breakout and xboing,\n"
 "featuring a number of added graphical enhancements and effects.  You control a\n"
@@ -5729,11 +6450,11 @@ msgid ""
 "This package is part of the KDE games module."
 msgstr ""
 
-#: gnu/packages/games.scm:8898
+#: gnu/packages/games.scm:10171
 msgid "Classical mine sweeper game"
 msgstr ""
 
-#: gnu/packages/games.scm:8899
+#: gnu/packages/games.scm:10172
 msgid ""
 "KMines is a classic Minesweeper game.  The idea is to\n"
 "uncover all the squares without blowing up any mines.  When a mine is blown\n"
@@ -5742,11 +6463,11 @@ msgid ""
 "This package is part of the KDE games module."
 msgstr ""
 
-#: gnu/packages/games.scm:8936
+#: gnu/packages/games.scm:10209
 msgid "Simple turn-based strategy game"
 msgstr ""
 
-#: gnu/packages/games.scm:8937
+#: gnu/packages/games.scm:10210
 msgid ""
 "Konquest is the KDE version of Gnu-Lactic Konquest.  Players\n"
 "conquer other planets by sending ships to them.  The goal is to build an\n"
@@ -5757,11 +6478,11 @@ msgid ""
 "This package is part of the KDE games module."
 msgstr ""
 
-#: gnu/packages/games.scm:8976
+#: gnu/packages/games.scm:10249
 msgid "Jezzball arcade game"
 msgstr ""
 
-#: gnu/packages/games.scm:8977
+#: gnu/packages/games.scm:10250
 msgid ""
 "KBounce is a single player arcade game with the elements of\n"
 "puzzle.  It is played on a field, surrounded by wall, with two or more balls\n"
@@ -5771,11 +6492,11 @@ msgid ""
 "This package is part of the KDE games module."
 msgstr ""
 
-#: gnu/packages/games.scm:9015
+#: gnu/packages/games.scm:10288
 msgid "Single player falling blocks puzzle game"
 msgstr ""
 
-#: gnu/packages/games.scm:9016
+#: gnu/packages/games.scm:10289
 msgid ""
 "KBlocks is the classic Tetris-like falling blocks game.\n"
 "\n"
@@ -5787,11 +6508,11 @@ msgid ""
 "This package is part of the KDE games module."
 msgstr ""
 
-#: gnu/packages/games.scm:9059
+#: gnu/packages/games.scm:10332
 msgid "Sudoku puzzle game and solver"
 msgstr ""
 
-#: gnu/packages/games.scm:9060
+#: gnu/packages/games.scm:10333
 msgid ""
 "KSudoku is a Sudoku game and solver, supporting a range of\n"
 "2D and 3D Sudoku variants.  In addition to playing Sudoku, it can print Sudoku\n"
@@ -5820,11 +6541,11 @@ msgid ""
 "This package is part of the KDE games module."
 msgstr ""
 
-#: gnu/packages/games.scm:9115
+#: gnu/packages/games.scm:10388
 msgid "Place 5 equal pieces together, but wait, there are 3 new ones"
 msgstr ""
 
-#: gnu/packages/games.scm:9116
+#: gnu/packages/games.scm:10389
 msgid ""
 "KLines is a simple but highly addictive one player game.\n"
 "\n"
@@ -5841,11 +6562,11 @@ msgid ""
 "This package is part of the KDE games module."
 msgstr ""
 
-#: gnu/packages/games.scm:9159
+#: gnu/packages/games.scm:10432
 msgid "Action and puzzle solving game"
 msgstr ""
 
-#: gnu/packages/games.scm:9160
+#: gnu/packages/games.scm:10433
 msgid ""
 "KGoldrunner is an action game where the hero runs through a\n"
 "maze, climbs stairs, dig holes and dodges enemies in order to collect all the\n"
@@ -5859,11 +6580,11 @@ msgid ""
 "This package is part of the KDE games module."
 msgstr ""
 
-#: gnu/packages/games.scm:9203
+#: gnu/packages/games.scm:10476
 msgid "Three-in-a-row game"
 msgstr ""
 
-#: gnu/packages/games.scm:9204
+#: gnu/packages/games.scm:10477
 msgid ""
 "KDiamond is a three-in-a-row game like Bejeweled.  It\n"
 "features unlimited fun with randomly generated games and five difficulty\n"
@@ -5872,11 +6593,11 @@ msgid ""
 "This package is part of the KDE games module."
 msgstr ""
 
-#: gnu/packages/games.scm:9241
+#: gnu/packages/games.scm:10514
 msgid "Place 4 pieces in a row"
 msgstr ""
 
-#: gnu/packages/games.scm:9242
+#: gnu/packages/games.scm:10515
 msgid ""
 "KFourInLine is a board game for two players based on the\n"
 "Connect-Four game.\n"
@@ -5887,11 +6608,11 @@ msgid ""
 "This package is part of the KDE games module."
 msgstr ""
 
-#: gnu/packages/games.scm:9281
+#: gnu/packages/games.scm:10554
 msgid "Find atoms in a grid by shooting electrons"
 msgstr ""
 
-#: gnu/packages/games.scm:9282
+#: gnu/packages/games.scm:10555
 msgid ""
 "KBlackbox is a game of hide and seek played on a grid of\n"
 "boxes where the computer has hidden several balls.  The position of the hidden\n"
@@ -5903,11 +6624,11 @@ msgid ""
 "This package is part of the KDE games module."
 msgstr ""
 
-#: gnu/packages/games.scm:9322
+#: gnu/packages/games.scm:10595
 msgid "Turn the board pieces to get all computers connected"
 msgstr ""
 
-#: gnu/packages/games.scm:9323
+#: gnu/packages/games.scm:10596
 msgid ""
 "KNetWalk is a small game where you have to build up a\n"
 "computer network by rotating the wires to connect the terminals to the server.\n"
@@ -5920,11 +6641,11 @@ msgid ""
 "This package is part of the KDE games module."
 msgstr ""
 
-#: gnu/packages/games.scm:9361
+#: gnu/packages/games.scm:10634
 msgid "Arcade bombing game"
 msgstr ""
 
-#: gnu/packages/games.scm:9362
+#: gnu/packages/games.scm:10635
 msgid ""
 "Bomber is a single player arcade game.\n"
 "\n"
@@ -5940,11 +6661,11 @@ msgid ""
 "This package is part of the KDE games module."
 msgstr ""
 
-#: gnu/packages/games.scm:9407
+#: gnu/packages/games.scm:10680
 msgid "Bomberman clone"
 msgstr ""
 
-#: gnu/packages/games.scm:9408
+#: gnu/packages/games.scm:10681
 msgid ""
 "Granatier is a clone of the classic Bomberman game,\n"
 "inspired by the work of the Clanbomber clone.\n"
@@ -5952,13 +6673,13 @@ msgid ""
 "This package is part of the KDE games module."
 msgstr ""
 
-#: gnu/packages/games.scm:9445
+#: gnu/packages/games.scm:10718
 msgid ""
 "Computerized version of the well known strategy board game\n"
 "'Risk'"
 msgstr ""
 
-#: gnu/packages/games.scm:9447
+#: gnu/packages/games.scm:10720
 msgid ""
 "KsirK is a multi-player network-enabled game.  The goal of\n"
 "the game is simply to conquer the world by attacking your neighbors with your\n"
@@ -5983,11 +6704,11 @@ msgid ""
 "This package is part of the KDE games module."
 msgstr ""
 
-#: gnu/packages/games.scm:9507
+#: gnu/packages/games.scm:10780
 msgid "Jigsaw puzzle game"
 msgstr ""
 
-#: gnu/packages/games.scm:9508
+#: gnu/packages/games.scm:10781
 msgid ""
 "Palapeli is a jigsaw puzzle game.  Unlike other games in\n"
 "that genre, you are not limited to aligning pieces on imaginary grids.  The\n"
@@ -5999,11 +6720,11 @@ msgid ""
 "This package is part of the KDE games module."
 msgstr ""
 
-#: gnu/packages/games.scm:9547
+#: gnu/packages/games.scm:10820
 msgid "Yahtzee dice game"
 msgstr ""
 
-#: gnu/packages/games.scm:9548
+#: gnu/packages/games.scm:10821
 msgid ""
 "Kiriki is an addictive and fun dice game, designed to be\n"
 "played by as many as six players.\n"
@@ -6014,11 +6735,11 @@ msgid ""
 "This package is part of the KDE games module."
 msgstr ""
 
-#: gnu/packages/games.scm:9588
+#: gnu/packages/games.scm:10861
 msgid "Go board game"
 msgstr ""
 
-#: gnu/packages/games.scm:9589
+#: gnu/packages/games.scm:10862
 msgid ""
 "Kigo is an open-source implementation of the popular Go\n"
 "game.\n"
@@ -6035,11 +6756,11 @@ msgid ""
 "This package is part of the KDE games module."
 msgstr ""
 
-#: gnu/packages/games.scm:9634
+#: gnu/packages/games.scm:10907
 msgid "Game based on Rubik's Cube"
 msgstr ""
 
-#: gnu/packages/games.scm:9635
+#: gnu/packages/games.scm:10908
 msgid ""
 "Kubrick is a game based on the Rubik's Cube puzzle.\n"
 "\n"
@@ -6052,11 +6773,11 @@ msgid ""
 "This package is part of the KDE games module."
 msgstr ""
 
-#: gnu/packages/games.scm:9675
+#: gnu/packages/games.scm:10948
 msgid "Lieutnant Skat card game"
 msgstr ""
 
-#: gnu/packages/games.scm:9676
+#: gnu/packages/games.scm:10949
 msgid ""
 "Lieutnant Skat (from German \"Offiziersskat\") is a fun and\n"
 "engaging card game for two players, where the second player is either live\n"
@@ -6067,11 +6788,11 @@ msgid ""
 "This package is part of the KDE games module."
 msgstr ""
 
-#: gnu/packages/games.scm:9714
+#: gnu/packages/games.scm:10987
 msgid "Pac-Man clone"
 msgstr ""
 
-#: gnu/packages/games.scm:9715
+#: gnu/packages/games.scm:10988
 msgid ""
 "Kapman is a clone of the well known game Pac-Man.\n"
 "\n"
@@ -6083,11 +6804,11 @@ msgid ""
 "This package is part of the KDE games module."
 msgstr ""
 
-#: gnu/packages/games.scm:9754
+#: gnu/packages/games.scm:11027
 msgid "Two player game with shooting spaceships flying around a sun"
 msgstr ""
 
-#: gnu/packages/games.scm:9755
+#: gnu/packages/games.scm:11028
 msgid ""
 "KSpaceduel is a space battle game for one or two players,\n"
 "where two ships fly around a star in a struggle to be the only survivor.\n"
@@ -6095,11 +6816,11 @@ msgid ""
 "This package is part of the KDE games module."
 msgstr ""
 
-#: gnu/packages/games.scm:9788
+#: gnu/packages/games.scm:11061
 msgid "Classic pen and paper game: five in a line"
 msgstr ""
 
-#: gnu/packages/games.scm:9789
+#: gnu/packages/games.scm:11062
 msgid ""
 "Bovo is a Gomoku (from Japanese 五目並べ - lit.  \"five\n"
 "points\") like game for two players, where the opponents alternate in placing\n"
@@ -6110,11 +6831,11 @@ msgid ""
 "This package is part of the KDE games module."
 msgstr ""
 
-#: gnu/packages/games.scm:9827
+#: gnu/packages/games.scm:11100
 msgid "Port of the classic BSD console game robots"
 msgstr ""
 
-#: gnu/packages/games.scm:9828
+#: gnu/packages/games.scm:11101
 msgid ""
 "Killbots is a simple game of evading killer robots.\n"
 "\n"
@@ -6128,11 +6849,11 @@ msgid ""
 "This package is part of the KDE games module."
 msgstr ""
 
-#: gnu/packages/games.scm:9870
+#: gnu/packages/games.scm:11143
 msgid "Snake race played against the computer"
 msgstr ""
 
-#: gnu/packages/games.scm:9871
+#: gnu/packages/games.scm:11144
 msgid ""
 "KSnakeDuel is a fast action game where you steer a snake\n"
 "which has to eat food.  While eating the snake grows.  But once a player\n"
@@ -6142,11 +6863,11 @@ msgid ""
 "This package is part of the KDE games module."
 msgstr ""
 
-#: gnu/packages/games.scm:9907
+#: gnu/packages/games.scm:11180
 msgid "Simple ball dodging game"
 msgstr ""
 
-#: gnu/packages/games.scm:9908
+#: gnu/packages/games.scm:11181
 msgid ""
 "In Kollision you use mouse to control a small blue ball in a\n"
 "closed space environment filled with small red balls, which move about\n"
@@ -6157,11 +6878,11 @@ msgid ""
 "This package is part of the KDE games module."
 msgstr ""
 
-#: gnu/packages/games.scm:9948
+#: gnu/packages/games.scm:11221
 msgid "Battleship board game with built-in game server"
 msgstr ""
 
-#: gnu/packages/games.scm:9949
+#: gnu/packages/games.scm:11222
 msgid ""
 "KBattleship is a Battle Ship game for KDE.\n"
 "\n"
@@ -6172,11 +6893,11 @@ msgid ""
 "This package is part of the KDE games module."
 msgstr ""
 
-#: gnu/packages/games.scm:9989
+#: gnu/packages/games.scm:11262
 msgid "Old reversi board game, also known as othello"
 msgstr ""
 
-#: gnu/packages/games.scm:9990
+#: gnu/packages/games.scm:11263
 msgid ""
 "KReversi is a simple one player strategy game played\n"
 "against the computer.\n"
@@ -6189,11 +6910,11 @@ msgid ""
 "This package is part of the KDE games module."
 msgstr ""
 
-#: gnu/packages/games.scm:10030
+#: gnu/packages/games.scm:11303
 msgid "Dots and Boxes game"
 msgstr ""
 
-#: gnu/packages/games.scm:10031
+#: gnu/packages/games.scm:11304
 msgid ""
 "KSquares is an implementation of the popular paper based\n"
 "game Squares.  Two players take turns connecting dots on a grid to complete\n"
@@ -6202,11 +6923,11 @@ msgid ""
 "This package is part of the KDE games module."
 msgstr ""
 
-#: gnu/packages/games.scm:10068
+#: gnu/packages/games.scm:11341
 msgid "Simple tactical game for number-crunchers"
 msgstr ""
 
-#: gnu/packages/games.scm:10069
+#: gnu/packages/games.scm:11342
 msgid ""
 "KJumpingcube is a simple tactical game for one or two\n"
 "players, played on a grid of numbered squares.  Each turn, players compete for\n"
@@ -6215,55 +6936,55 @@ msgid ""
 "This package is part of the KDE games module."
 msgstr ""
 
-#: gnu/packages/games.scm:10150
+#: gnu/packages/games.scm:11430
 msgid "2D motocross platform game"
 msgstr ""
 
-#: gnu/packages/games.scm:10151
+#: gnu/packages/games.scm:11432
 msgid ""
 "X-Moto is a challenging 2D motocross platform game, where\n"
-"physics play an all important role in the gameplay.  You need to control your\n"
-"bike to its limit, if you want to have a chance finishing the more difficult\n"
-"challenges."
+"physics play an all important role in the gameplay.  You need to\n"
+"control your bike to its limit, if you want to have a chance finishing\n"
+"the more difficult challenges."
 msgstr ""
 
-#: gnu/packages/games.scm:10198
+#: gnu/packages/games.scm:11478
 msgid "Graphical user interface to play chess"
 msgstr ""
 
-#: gnu/packages/games.scm:10200
+#: gnu/packages/games.scm:11480
 msgid ""
 "Eboard is a chess board interface for ICS (Internet Chess Servers)\n"
 "and chess engines."
 msgstr ""
 
-#: gnu/packages/games.scm:10249
+#: gnu/packages/games.scm:11535
 msgid "Chess game database"
 msgstr ""
 
-#: gnu/packages/games.scm:10251
+#: gnu/packages/games.scm:11537
 msgid ""
 "ChessX is a chess database.  With ChessX you can operate on your\n"
 "collection of chess games in many ways: browse, edit, add, organize, analyze,\n"
 "etc.  You can also play games on FICS or against an engine."
 msgstr ""
 
-#: gnu/packages/games.scm:10287
+#: gnu/packages/games.scm:11587
 msgid "Strong chess engine"
 msgstr ""
 
-#: gnu/packages/games.scm:10289
+#: gnu/packages/games.scm:11589
 msgid ""
-"Stockfish is a very strong chess engines.  It is much stronger than the\n"
+"Stockfish is a very strong chess engine.  It is much stronger than the\n"
 "best human chess grandmasters.  It can be used with UCI-compatible GUIs like\n"
 "ChessX."
 msgstr ""
 
-#: gnu/packages/games.scm:10318
+#: gnu/packages/games.scm:11618
 msgid "Violent point-and-click shooting game with nice effects"
 msgstr ""
 
-#: gnu/packages/games.scm:10320
+#: gnu/packages/games.scm:11620
 msgid ""
 "Barrage is a rather destructive action game that puts you on a shooting\n"
 "range with the objective to hit as many dummy targets as possible within\n"
@@ -6272,11 +6993,25 @@ msgid ""
 "get high scores."
 msgstr ""
 
-#: gnu/packages/games.scm:10349
+#: gnu/packages/games.scm:11644
+msgid "Avoid evil foodstuffs and make burgers"
+msgstr ""
+
+#: gnu/packages/games.scm:11646
+msgid ""
+"This is a clone of the classic game BurgerTime.  In it, you play\n"
+"the part of a chef who must create burgers by stepping repeatedly on\n"
+"the ingredients until they fall into place.  And to make things more\n"
+"complicated, you also must avoid evil animate food items while\n"
+"performing this task, with nothing but your trusty pepper shaker to\n"
+"protect you."
+msgstr ""
+
+#: gnu/packages/games.scm:11676
 msgid "Seven Kingdoms Ancient Adversaries: real-time strategy game"
 msgstr ""
 
-#: gnu/packages/games.scm:10351
+#: gnu/packages/games.scm:11678
 msgid ""
 "Seven Kingdoms, designed by Trevor Chan, brings a blend of Real-Time\n"
 "Strategy with the addition of trade, diplomacy, and espionage.  The game\n"
@@ -6286,11 +7021,11 @@ msgid ""
 "kingdom."
 msgstr ""
 
-#: gnu/packages/games.scm:10465
+#: gnu/packages/games.scm:11792
 msgid "3D floor-tilting game"
 msgstr ""
 
-#: gnu/packages/games.scm:10467
+#: gnu/packages/games.scm:11794
 msgid ""
 "In the grand tradition of Marble Madness and Super Monkey Ball,\n"
 "Neverball has you guide a rolling ball through dangerous territory.  Balance\n"
@@ -6300,41 +7035,101 @@ msgid ""
 "game."
 msgstr ""
 
-#: gnu/packages/gcc.scm:351
+#: gnu/packages/games.scm:11869
+msgid "Texas holdem poker game"
+msgstr ""
+
+#: gnu/packages/games.scm:11871
+msgid ""
+"With PokerTH you can play the Texas holdem poker game, either against\n"
+"computer opponents or against real players online."
+msgstr ""
+
+#: gnu/packages/games.scm:11906
+msgid "Metroidvania game with vector graphics"
+msgstr ""
+
+#: gnu/packages/games.scm:11908
+msgid ""
+"Pilot your ship inside a planet to find and rescue the colonists trapped\n"
+"inside the Zenith Colony."
+msgstr ""
+
+#: gnu/packages/games.scm:11938
+msgid "High performance X11 animated wallpaper setter"
+msgstr ""
+
+#: gnu/packages/games.scm:11939
+msgid ""
+"High performance animated desktop background setter for\n"
+"X11 that won't set your CPU on fire, drain your laptop battery, or lower video\n"
+"game FPS."
+msgstr ""
+
+#: gnu/packages/gcc.scm:354
 msgid "GNU Compiler Collection"
 msgstr ""
 
-#: gnu/packages/gcc.scm:353
+#: gnu/packages/gcc.scm:356
 msgid ""
 "GCC is the GNU Compiler Collection.  It provides compiler front-ends\n"
 "for several languages, including C, C++, Objective-C, Fortran, Java, Ada, and\n"
 "Go.  It also includes runtime support libraries for these languages."
 msgstr ""
 
-#: gnu/packages/gcc.scm:507
+#: gnu/packages/gcc.scm:541
 msgid ""
 "GCC is the GNU Compiler Collection.  It provides compiler front-ends\n"
 "for several languages, including C, C++, Objective-C, Fortran, Ada, and Go.\n"
 "It also includes runtime support libraries for these languages."
 msgstr ""
 
-#: gnu/packages/gcc.scm:567
+#: gnu/packages/gcc.scm:615
 msgid "GNU C++ standard library"
 msgstr ""
 
-#: gnu/packages/gcc.scm:598
+#: gnu/packages/gcc.scm:640
+msgid "Headers of GNU libstdc++"
+msgstr ""
+
+#: gnu/packages/gcc.scm:671
 msgid "Collection of subroutines used by various GNU programs"
 msgstr ""
 
-#: gnu/packages/gcc.scm:845
+#: gnu/packages/gcc.scm:764
+msgid "GCC library generating machine code on-the-fly at runtime"
+msgstr ""
+
+#: gnu/packages/gcc.scm:766
+msgid ""
+"This package is part of the GNU Compiler Collection and provides an\n"
+"embeddable library for generating machine code on-the-fly at runtime.  This\n"
+"shared library can then be dynamically-linked into bytecode interpreters and\n"
+"other such programs that want to generate machine code on-the-fly at run-time.\n"
+"It can also be used for ahead-of-time code generation for building standalone\n"
+"compilers.  The just-in-time (jit) part of the name is now something of a\n"
+"misnomer."
+msgstr ""
+
+#: gnu/packages/gcc.scm:778
+msgid "Go frontend to GCC"
+msgstr ""
+
+#: gnu/packages/gcc.scm:780
+msgid ""
+"This package is part of the GNU Compiler Collection and\n"
+"provides the GNU compiler for the Go programming language."
+msgstr ""
+
+#: gnu/packages/gcc.scm:879
 msgid "GNU libstdc++ documentation"
 msgstr ""
 
-#: gnu/packages/gcc.scm:916
+#: gnu/packages/gcc.scm:969
 msgid "Manipulating sets and relations of integer points bounded by linear constraints"
 msgstr ""
 
-#: gnu/packages/gcc.scm:919
+#: gnu/packages/gcc.scm:972
 msgid ""
 "isl is a library for manipulating sets and relations of integer points\n"
 "bounded by linear constraints.  Supported operations on sets include\n"
@@ -6346,11 +7141,11 @@ msgid ""
 "dependence analysis and bounds on piecewise step-polynomials."
 msgstr ""
 
-#: gnu/packages/gcc.scm:983
+#: gnu/packages/gcc.scm:1036
 msgid "Library to generate code for scanning Z-polyhedra"
 msgstr ""
 
-#: gnu/packages/gcc.scm:985
+#: gnu/packages/gcc.scm:1038
 msgid ""
 "CLooG is a free software library to generate code for scanning\n"
 "Z-polyhedra.  That is, it finds a code (e.g., in C, FORTRAN...) that\n"
@@ -6365,11 +7160,11 @@ msgid ""
 "effective code."
 msgstr ""
 
-#: gnu/packages/gcc.scm:1040
+#: gnu/packages/gcc.scm:1093
 msgid "Reference manual for the C programming language"
 msgstr ""
 
-#: gnu/packages/gcc.scm:1042
+#: gnu/packages/gcc.scm:1095
 msgid ""
 "This is a reference manual for the C programming language, as\n"
 "implemented by the GNU C Compiler (gcc).  As a reference, it is not intended\n"
@@ -6377,11 +7172,11 @@ msgid ""
 "of the language.  Library functions are not included."
 msgstr ""
 
-#: gnu/packages/gettext.scm:112
+#: gnu/packages/gettext.scm:119
 msgid "Tools and documentation for translation (used to build other packages)"
 msgstr ""
 
-#: gnu/packages/gettext.scm:114
+#: gnu/packages/gettext.scm:121
 msgid ""
 "GNU Gettext is a package providing a framework for translating the\n"
 "textual output of programs into multiple languages.  It provides translators\n"
@@ -6389,15 +7184,15 @@ msgid ""
 "translated messages from the catalogs.  Nearly all GNU packages use Gettext."
 msgstr ""
 
-#: gnu/packages/gettext.scm:146
+#: gnu/packages/gettext.scm:153
 msgid "Tools and documentation for translation"
 msgstr ""
 
-#: gnu/packages/gettext.scm:171
+#: gnu/packages/gettext.scm:178
 msgid "Text styling library"
 msgstr ""
 
-#: gnu/packages/gettext.scm:173
+#: gnu/packages/gettext.scm:180
 msgid ""
 "GNU libtextstyle is a C library that provides an easy way to add styling\n"
 "to programs that produce output to a console or terminal emulator window.  It\n"
@@ -6405,22 +7200,43 @@ msgid ""
 "color, font attributes (weight, posture), or underlining."
 msgstr ""
 
-#: gnu/packages/gettext.scm:242
+#: gnu/packages/gettext.scm:251
 msgid "Scripts to ease maintenance of translations"
 msgstr ""
 
-#: gnu/packages/gettext.scm:244
+#: gnu/packages/gettext.scm:253
 msgid ""
 "The po4a (PO for anything) project goal is to ease translations (and\n"
 "more interestingly, the maintenance of translations) using gettext tools on\n"
 "areas where they were not expected like documentation."
 msgstr ""
 
-#: gnu/packages/gimp.scm:78
+#: gnu/packages/gimp.scm:127
+msgid "2D constrained Delaunay triangulation library"
+msgstr ""
+
+#: gnu/packages/gimp.scm:128
+msgid ""
+"Poly2Tri-C is a library for generating, refining and rendering\n"
+"2-Dimensional Constrained Delaunay Triangulations."
+msgstr ""
+
+#: gnu/packages/gimp.scm:159
+msgid "Microraptor GUI"
+msgstr ""
+
+#: gnu/packages/gimp.scm:160
+msgid ""
+"MrG is is a C API for creating user interfaces.  It can be\n"
+"used as an application writing environment or as an interactive canvas for part\n"
+"of a larger interface."
+msgstr ""
+
+#: gnu/packages/gimp.scm:194
 msgid "Image pixel format conversion library"
 msgstr ""
 
-#: gnu/packages/gimp.scm:80
+#: gnu/packages/gimp.scm:196
 msgid ""
 "Babl is a dynamic, any-to-any pixel format translation library.\n"
 "It allows converting between different methods of storing pixels, known as\n"
@@ -6431,22 +7247,22 @@ msgid ""
 "provided, as well as a framework to add new color models and data types."
 msgstr ""
 
-#: gnu/packages/gimp.scm:126
+#: gnu/packages/gimp.scm:242
 msgid "Graph based image processing framework"
 msgstr ""
 
-#: gnu/packages/gimp.scm:127
+#: gnu/packages/gimp.scm:243
 msgid ""
 "GEGL (Generic Graphics Library) provides infrastructure to\n"
 "do demand based cached non destructive image editing on larger than RAM\n"
 "buffers."
 msgstr ""
 
-#: gnu/packages/gimp.scm:200
+#: gnu/packages/gimp.scm:324
 msgid "GNU Image Manipulation Program"
 msgstr ""
 
-#: gnu/packages/gimp.scm:202
+#: gnu/packages/gimp.scm:326
 msgid ""
 "GIMP is an application for image manipulation tasks such as photo\n"
 "retouching, composition and authoring.  It supports all common image formats\n"
@@ -6454,11 +7270,11 @@ msgid ""
 "that is extensible via a plugin system."
 msgstr ""
 
-#: gnu/packages/gimp.scm:262
+#: gnu/packages/gimp.scm:386
 msgid "GIMP plug-in to edit image in fourier space"
 msgstr ""
 
-#: gnu/packages/gimp.scm:264
+#: gnu/packages/gimp.scm:388
 msgid ""
 "This package provides a simple plug-in to apply the fourier transform on\n"
 "an image, allowing you to work with the transformed image inside GIMP.  You\n"
@@ -6466,31 +7282,31 @@ msgid ""
 "inverse fourier transform."
 msgstr ""
 
-#: gnu/packages/gimp.scm:292
+#: gnu/packages/gimp.scm:416
 msgid "Artistic brushes library"
 msgstr ""
 
-#: gnu/packages/gimp.scm:293
+#: gnu/packages/gimp.scm:417
 msgid ""
 "Libmypaint, also called \"brushlib\", is a library for making\n"
 "brushstrokes which is used by MyPaint and GIMP."
 msgstr ""
 
-#: gnu/packages/gimp.scm:324
+#: gnu/packages/gimp.scm:439
 msgid "Default brushes for MyPaint"
 msgstr ""
 
-#: gnu/packages/gimp.scm:325
+#: gnu/packages/gimp.scm:440
 msgid ""
 "This package provides the default set of brushes for\n"
 "MyPaint."
 msgstr ""
 
-#: gnu/packages/gimp.scm:386
+#: gnu/packages/gimp.scm:519
 msgid "GIMP plugins for texture synthesis"
 msgstr ""
 
-#: gnu/packages/gimp.scm:388
+#: gnu/packages/gimp.scm:521
 msgid ""
 "This package provides resynthesizer plugins for GIMP, which encompasses\n"
 "tools for healing selections (content-aware fill), enlarging the canvas and\n"
@@ -6498,22 +7314,186 @@ msgid ""
 "transferring the style of an image."
 msgstr ""
 
-#: gnu/packages/gnome.scm:247
+#: gnu/packages/gnome.scm:270
+msgid "UPnP IGD for GNOME"
+msgstr ""
+
+#: gnu/packages/gnome.scm:271
+msgid "GUPnP-IGD is a library to handle UPnP IGD port mapping."
+msgstr ""
+
+#: gnu/packages/gnome.scm:325
 msgid "CD/DVD burning tool for Gnome"
 msgstr ""
 
-#: gnu/packages/gnome.scm:248
+#: gnu/packages/gnome.scm:326
 msgid ""
 "Brasero is an application to burn CD/DVD for the Gnome\n"
 "Desktop.  It is designed to be as simple as possible and has some unique\n"
 "features to enable users to create their discs easily and quickly."
 msgstr ""
 
-#: gnu/packages/gnome.scm:288
+#: gnu/packages/gnome.scm:371
+msgid "Cloudproviders Integration API"
+msgstr ""
+
+#: gnu/packages/gnome.scm:372
+msgid ""
+"Libcloudproviders is a DBus API that allows cloud storage sync\n"
+"clients to expose their services.  Clients such as file managers and desktop\n"
+"environments can then provide integrated access to the cloud providers\n"
+"services."
+msgstr ""
+
+#: gnu/packages/gnome.scm:420
+msgid "Glib library for feeds"
+msgstr ""
+
+#: gnu/packages/gnome.scm:421
+msgid ""
+"LibGRSS is a Glib abstraction to handle feeds in RSS, Atom,\n"
+"and other formats."
+msgstr ""
+
+#: gnu/packages/gnome.scm:448
+msgid "Common JS Modules"
+msgstr ""
+
+#: gnu/packages/gnome.scm:449
+msgid ""
+"GNOME-JS-Common provides common modules for GNOME JavaScript\n"
+"bindings."
+msgstr ""
+
+#: gnu/packages/gnome.scm:531
+msgid "GObject JavaScriptCore bridge"
+msgstr ""
+
+#: gnu/packages/gnome.scm:532
+msgid ""
+"Seed is a library and interpreter, dynamically bridging\n"
+"(through GObjectIntrospection) the WebKit JavaScriptCore engine, with the\n"
+"GNOME platform.  It serves as something which enables you to write standalone\n"
+"applications in JavaScript, or easily enable your application to be extensible\n"
+"in JavaScript."
+msgstr ""
+
+#: gnu/packages/gnome.scm:590
+msgid "Media management library"
+msgstr ""
+
+#: gnu/packages/gnome.scm:591
+msgid ""
+"Libdmapsharing is a library which allows programs to access,\n"
+"share and control the playback of media content using DMAP (DAAP, DPAP & DACP).\n"
+"It is written in C using GObject and libsoup."
+msgstr ""
+
+#: gnu/packages/gnome.scm:625
+msgid "GLib Testing Framework"
+msgstr ""
+
+#: gnu/packages/gnome.scm:626
+msgid ""
+"GTX is a small collection of convenience functions intended to\n"
+"enhance the GLib testing framework.  With specific emphasis on easing the pain\n"
+"of writing test cases for asynchronous interactions."
+msgstr ""
+
+#: gnu/packages/gnome.scm:702
+msgid "Model to synchronize multiple instances over DBus"
+msgstr ""
+
+#: gnu/packages/gnome.scm:703
+msgid ""
+"Dee is a library that uses DBus to provide objects allowing\n"
+"you to create Model-View-Controller type programs across DBus.  It also consists\n"
+"of utility objects which extend DBus allowing for peer-to-peer discoverability\n"
+"of known objects without needing a central registrar."
+msgstr ""
+
+#: gnu/packages/gnome.scm:783
+msgid "Desktop Activity Logging"
+msgstr ""
+
+#: gnu/packages/gnome.scm:784
+msgid ""
+"Zeitgeist is a service which logs the users’s activities and\n"
+"events, anywhere from files opened to websites visited and conversations.  It\n"
+"makes this information readily available for other applications to use.  It is\n"
+"able to establish relationships between items based on similarity and usage\n"
+"patterns."
+msgstr ""
+
+#: gnu/packages/gnome.scm:859
+msgid "Access, organize and share your photos on GNOME desktop"
+msgstr ""
+
+#: gnu/packages/gnome.scm:860
+msgid ""
+"GNOME Photos is a simple and elegant replacement for using a\n"
+"file manager to deal with photos.  Enhance, crop and edit in a snap.  Seamless\n"
+"cloud integration is offered through GNOME Online Accounts."
+msgstr ""
+
+#: gnu/packages/gnome.scm:921
+msgid "Simple music player for GNOME desktop"
+msgstr ""
+
+#: gnu/packages/gnome.scm:922
+msgid ""
+"GNOME Music is the new GNOME music playing application that\n"
+"aims to combine an elegant and immersive browsing experience with simple\n"
+"and straightforward controls."
+msgstr ""
+
+#: gnu/packages/gnome.scm:942
+msgid "External Data Representation Library"
+msgstr ""
+
+#: gnu/packages/gnome.scm:943
+msgid ""
+"PortableXDR is an implementation of External Data\n"
+"Representation (XDR) Library.  It is a standard data serialization format, for\n"
+"uses such as computer network protocols.  It allows data to be transferred\n"
+"between different kinds of computer systems."
+msgstr ""
+
+#: gnu/packages/gnome.scm:980
+msgid "Text editor product line"
+msgstr ""
+
+#: gnu/packages/gnome.scm:981
+msgid ""
+"Tepl is a library that eases the development of\n"
+"GtkSourceView-based text editors and IDEs."
+msgstr ""
+
+#: gnu/packages/gnome.scm:1013
+msgid "Popup dialogs for Kerberos 5"
+msgstr ""
+
+#: gnu/packages/gnome.scm:1014
+msgid ""
+"krb5-auth-dialog is a simple dialog that monitors Kerberos\n"
+"tickets, and pops up a dialog when they are about to expire."
+msgstr ""
+
+#: gnu/packages/gnome.scm:1041
+msgid "Notification Daemon for GNOME Desktop"
+msgstr ""
+
+#: gnu/packages/gnome.scm:1042
+msgid ""
+"Notification-Daemon is the server implementation of the\n"
+"freedesktop.org desktop notification specification."
+msgstr ""
+
+#: gnu/packages/gnome.scm:1082
 msgid "Module of GNOME C++ bindings"
 msgstr ""
 
-#: gnu/packages/gnome.scm:289
+#: gnu/packages/gnome.scm:1083
 msgid ""
 "The mm-common module provides the build infrastructure\n"
 "and utilities shared among the GNOME C++ binding libraries.  Release\n"
@@ -6521,131 +7501,131 @@ msgid ""
 "Library reference documentation."
 msgstr ""
 
-#: gnu/packages/gnome.scm:318
+#: gnu/packages/gnome.scm:1123
 msgid "WebDav server implementation using libsoup"
 msgstr ""
 
-#: gnu/packages/gnome.scm:319
+#: gnu/packages/gnome.scm:1124
 msgid ""
 "PhoDav was initially developed as a file-sharing mechanism for Spice,\n"
 "but it is generic enough to be reused in other projects,\n"
 "in particular in the GNOME desktop."
 msgstr ""
 
-#: gnu/packages/gnome.scm:371
+#: gnu/packages/gnome.scm:1176
 msgid "Color profile manager for the GNOME desktop"
 msgstr ""
 
-#: gnu/packages/gnome.scm:372
+#: gnu/packages/gnome.scm:1177
 msgid ""
 "GNOME Color Manager is a session framework that makes\n"
 "it easy to manage, install and generate color profiles\n"
 "in the GNOME desktop."
 msgstr ""
 
-#: gnu/packages/gnome.scm:406
+#: gnu/packages/gnome.scm:1211
 msgid "Web Crawlers for GNOME"
 msgstr ""
 
-#: gnu/packages/gnome.scm:407
+#: gnu/packages/gnome.scm:1212
 msgid ""
 "GNOME Online Miners provides a set of crawlers that\n"
 "go through your online content and index them locally in Tracker.\n"
 "It has miners for Facebook, Flickr, Google, ownCloud and SkyDrive."
 msgstr ""
 
-#: gnu/packages/gnome.scm:436
+#: gnu/packages/gnome.scm:1241
 msgid ""
 "GObject-based API over @acronym{SSDP, Simple Service Discovery\n"
 "Protocol} for GNOME"
 msgstr ""
 
-#: gnu/packages/gnome.scm:438
+#: gnu/packages/gnome.scm:1243
 msgid ""
 "This package provides a library to handle resource discovery\n"
 "and announcement over @acronym{SSDP, Simple Service Discovery Protocol} and\n"
 "a debugging tool, @command{gssdp-device-sniffer}."
 msgstr ""
 
-#: gnu/packages/gnome.scm:468
+#: gnu/packages/gnome.scm:1273
 msgid "PnP API for GNOME"
 msgstr ""
 
-#: gnu/packages/gnome.scm:469
+#: gnu/packages/gnome.scm:1274
 msgid ""
 "This package provides GUPnP, an object-oriented framework\n"
 "for creating UPnP devices and control points, written in C using\n"
 "@code{GObject} and @code{libsoup}."
 msgstr ""
 
-#: gnu/packages/gnome.scm:502
+#: gnu/packages/gnome.scm:1307
 msgid "GUPnP DLNA for GNOME"
 msgstr ""
 
-#: gnu/packages/gnome.scm:503
+#: gnu/packages/gnome.scm:1308
 msgid ""
 "This package provides a small utility library to\n"
 "support DLNA-related tasks such as media profile guessing, transcoding to a\n"
 "given profile, etc.  DLNA is a subset of UPnP A/V."
 msgstr ""
 
-#: gnu/packages/gnome.scm:532
+#: gnu/packages/gnome.scm:1337
 msgid "GUPnP A/V for GNOME"
 msgstr ""
 
-#: gnu/packages/gnome.scm:533
+#: gnu/packages/gnome.scm:1338
 msgid ""
 "This package provides a small library for handling\n"
 "and implementation of UPnP A/V profiles."
 msgstr ""
 
-#: gnu/packages/gnome.scm:560
+#: gnu/packages/gnome.scm:1365
 msgid "Media art library for the GNOME desktop"
 msgstr ""
 
-#: gnu/packages/gnome.scm:562
+#: gnu/packages/gnome.scm:1367
 msgid ""
 "The libmediaart library is the foundation for media art caching,\n"
 "extraction, and lookup for applications on the desktop."
 msgstr ""
 
-#: gnu/packages/gnome.scm:625
+#: gnu/packages/gnome.scm:1430
 msgid "Initial setup wizard for GNOME desktop"
 msgstr ""
 
-#: gnu/packages/gnome.scm:626
+#: gnu/packages/gnome.scm:1431
 msgid ""
 "This package provides a set-up wizard when a\n"
 "user logs into GNOME for the first time.  It typically provides a\n"
 "tour of all gnome components and allows the user to set them up."
 msgstr ""
 
-#: gnu/packages/gnome.scm:665
+#: gnu/packages/gnome.scm:1470
 msgid "File sharing for GNOME desktop"
 msgstr ""
 
-#: gnu/packages/gnome.scm:666
+#: gnu/packages/gnome.scm:1471
 msgid ""
 "GNOME User Share is a small package that binds together\n"
 "various free software projects to bring easy to use user-level file\n"
 "sharing to the masses."
 msgstr ""
 
-#: gnu/packages/gnome.scm:720
+#: gnu/packages/gnome.scm:1525
 msgid "File previewer for the GNOME desktop"
 msgstr ""
 
-#: gnu/packages/gnome.scm:721
+#: gnu/packages/gnome.scm:1526
 msgid ""
 "Sushi is a DBus-activated service that allows applications to\n"
 "preview files on the GNOME desktop."
 msgstr ""
 
-#: gnu/packages/gnome.scm:760
+#: gnu/packages/gnome.scm:1565
 msgid "Share audio, video, and pictures with other devices"
 msgstr ""
 
-#: gnu/packages/gnome.scm:762
+#: gnu/packages/gnome.scm:1567
 msgid ""
 "Rygel is a home media solution (@dfn{UPnP AV MediaServer and\n"
 "MediaRenderer}) for GNOME that allows you to easily share audio, video, and\n"
@@ -6656,54 +7636,66 @@ msgid ""
 "client devices can handle."
 msgstr ""
 
-#: gnu/packages/gnome.scm:804
+#: gnu/packages/gnome.scm:1619
 msgid "Network Manager's applet library"
 msgstr ""
 
-#: gnu/packages/gnome.scm:805
+#: gnu/packages/gnome.scm:1620
 msgid ""
 "Libnma is an applet library for Network Manager.  It was\n"
 "initially part of network-manager-applet and has now become a separate\n"
 "project."
 msgstr ""
 
-#: gnu/packages/gnome.scm:831
+#: gnu/packages/gnome.scm:1645
 msgid "Menu support for GNOME desktop"
 msgstr ""
 
-#: gnu/packages/gnome.scm:832
+#: gnu/packages/gnome.scm:1646
 msgid ""
 "GNOME Menus contains the libgnome-menu library, the layout\n"
 "configuration files for the GNOME menu, as well as a simple menu editor."
 msgstr ""
 
-#: gnu/packages/gnome.scm:907
+#: gnu/packages/gnome.scm:1720
 msgid "Simple backup tool, for regular encrypted backups"
 msgstr ""
 
-#: gnu/packages/gnome.scm:909
+#: gnu/packages/gnome.scm:1722
 msgid ""
 "Déjà Dup is a simple backup tool, for regular encrypted backups.  It\n"
 "uses duplicity as the backend, which supports incremental backups and storage\n"
 "either on a local, or remote machine via a number of methods."
 msgstr ""
 
-#: gnu/packages/gnome.scm:932
+#: gnu/packages/gnome.scm:1757
+msgid "Two-pane graphical file manager for the GNOME desktop"
+msgstr ""
+
+#: gnu/packages/gnome.scm:1759
+msgid ""
+"GNOME Commander is a two-pane graphical file manager using GNOME\n"
+"libraries.  It aims to fulfill the demands of more advanced users who\n"
+"like to focus on file management, their work through special applications\n"
+"and running smart commands."
+msgstr ""
+
+#: gnu/packages/gnome.scm:1783
 msgid "User documentation for the GNOME desktop"
 msgstr ""
 
-#: gnu/packages/gnome.scm:934
+#: gnu/packages/gnome.scm:1785
 msgid ""
 "The GNOME User Documentation explains how to use the GNOME desktop and its\n"
 "components.  It covers usage and setup of the core GNOME programs by end-users\n"
 "and system administrators."
 msgstr ""
 
-#: gnu/packages/gnome.scm:958
+#: gnu/packages/gnome.scm:1809
 msgid "Help to get new users started with the GNOME desktop"
 msgstr ""
 
-#: gnu/packages/gnome.scm:960
+#: gnu/packages/gnome.scm:1811
 msgid ""
 "The GNOME Getting Started Documentation contains GNOME's intuitive\n"
 "\"Getting Started\" tour, with video guides, that can be viewed with Yelp.\n"
@@ -6712,11 +7704,11 @@ msgid ""
 "useful as a tutorial and users' guide for new or less experienced users."
 msgstr ""
 
-#: gnu/packages/gnome.scm:1011
+#: gnu/packages/gnome.scm:1855
 msgid "Diagram creation for GNOME"
 msgstr ""
 
-#: gnu/packages/gnome.scm:1012
+#: gnu/packages/gnome.scm:1856
 msgid ""
 "Dia can be used to draw different types of diagrams, and\n"
 "includes support for UML static structure diagrams (class diagrams), entity\n"
@@ -6724,44 +7716,44 @@ msgid ""
 "formats like PNG, SVG, PDF and EPS."
 msgstr ""
 
-#: gnu/packages/gnome.scm:1061
+#: gnu/packages/gnome.scm:1905
 msgid "Library for accessing online service APIs"
 msgstr ""
 
-#: gnu/packages/gnome.scm:1063
+#: gnu/packages/gnome.scm:1907
 msgid ""
 "libgdata is a GLib-based library for accessing online service APIs using\n"
 "the GData protocol — most notably, Google's services.  It provides APIs to\n"
 "access the common Google services, and has full asynchronous support."
 msgstr ""
 
-#: gnu/packages/gnome.scm:1095
+#: gnu/packages/gnome.scm:1939
 msgid "GObject-based library for handling and rendering XPS documents"
 msgstr ""
 
-#: gnu/packages/gnome.scm:1097
+#: gnu/packages/gnome.scm:1941
 msgid ""
 "libgxps is a GObject-based library for handling and rendering XPS\n"
 "documents.  This package also contains binaries that can convert XPS documents\n"
 "to other formats."
 msgstr ""
 
-#: gnu/packages/gnome.scm:1140
+#: gnu/packages/gnome.scm:1984
 msgid "Find and insert unusual characters"
 msgstr ""
 
-#: gnu/packages/gnome.scm:1141
+#: gnu/packages/gnome.scm:1985
 msgid ""
 "Characters is a simple utility application to find\n"
 "and insert unusual characters.  It allows you to quickly find the\n"
 "character you are looking for by searching for keywords."
 msgstr ""
 
-#: gnu/packages/gnome.scm:1161
+#: gnu/packages/gnome.scm:2005
 msgid "Bootstrap GNOME modules built from Git"
 msgstr ""
 
-#: gnu/packages/gnome.scm:1162
+#: gnu/packages/gnome.scm:2006
 msgid ""
 "gnome-common contains various files needed to bootstrap\n"
 "GNOME modules built from Git.  It contains a common \"autogen.sh\" script that\n"
@@ -6769,21 +7761,21 @@ msgid ""
 "commonly used macros."
 msgstr ""
 
-#: gnu/packages/gnome.scm:1216
+#: gnu/packages/gnome.scm:2065
 msgid "GNOME's integrated address book"
 msgstr ""
 
-#: gnu/packages/gnome.scm:1218
+#: gnu/packages/gnome.scm:2067
 msgid ""
 "GNOME Contacts organizes your contact information from online and\n"
 "offline sources, providing a centralized place for managing your contacts."
 msgstr ""
 
-#: gnu/packages/gnome.scm:1281
+#: gnu/packages/gnome.scm:2144
 msgid "Libgnome-desktop, gnome-about, and desktop-wide documents"
 msgstr ""
 
-#: gnu/packages/gnome.scm:1283
+#: gnu/packages/gnome.scm:2146
 msgid ""
 "The libgnome-desktop library provides API shared by several applications\n"
 "on the desktop, but that cannot live in the platform for various reasons.\n"
@@ -6793,60 +7785,68 @@ msgid ""
 "The gnome-about program helps find which version of GNOME is installed."
 msgstr ""
 
-#: gnu/packages/gnome.scm:1316
+#: gnu/packages/gnome.scm:2179
 msgid "Documentation utilities for the Gnome project"
 msgstr ""
 
-#: gnu/packages/gnome.scm:1318
+#: gnu/packages/gnome.scm:2181
 msgid ""
 "Gnome-doc-utils is a collection of documentation utilities for the\n"
 "Gnome project.  It includes xml2po tool which makes it easier to translate\n"
 "and keep up to date translations of documentation."
 msgstr ""
 
-#: gnu/packages/gnome.scm:1365
+#: gnu/packages/gnome.scm:2230
 msgid "Disk management utility for GNOME"
 msgstr ""
 
-#: gnu/packages/gnome.scm:1366
+#: gnu/packages/gnome.scm:2231
 msgid "Disk management utility for GNOME."
 msgstr ""
 
-#: gnu/packages/gnome.scm:1399
+#: gnu/packages/gnome.scm:2264
 msgid "GNOME Fonts"
 msgstr ""
 
-#: gnu/packages/gnome.scm:1400
+#: gnu/packages/gnome.scm:2265
 msgid ""
 "Application to show you the fonts installed on your computer\n"
 "for your use as thumbnails.  Selecting any thumbnails shows the full view of how\n"
 "the font would look under various sizes."
 msgstr ""
 
-#: gnu/packages/gnome.scm:1466
+#: gnu/packages/gnome.scm:2318
 msgid "Libraries for displaying certificates and accessing key stores"
 msgstr ""
 
-#: gnu/packages/gnome.scm:1468
+#: gnu/packages/gnome.scm:2320
 msgid ""
 "The GCR package contains libraries used for displaying certificates and\n"
 "accessing key stores.  It also provides the viewer for crypto files on the\n"
 "GNOME Desktop."
 msgstr ""
 
-#: gnu/packages/gnome.scm:1497
+#: gnu/packages/gnome.scm:2358
+msgid "GNOME docking library"
+msgstr ""
+
+#: gnu/packages/gnome.scm:2359
+msgid "This library provides docking features for gtk+."
+msgstr ""
+
+#: gnu/packages/gnome.scm:2406
 msgid "Accessing passwords from the GNOME keyring"
 msgstr ""
 
-#: gnu/packages/gnome.scm:1499
+#: gnu/packages/gnome.scm:2408
 msgid "Client library to access passwords from the GNOME keyring."
 msgstr ""
 
-#: gnu/packages/gnome.scm:1569
+#: gnu/packages/gnome.scm:2478
 msgid "Daemon to store passwords and encryption keys"
 msgstr ""
 
-#: gnu/packages/gnome.scm:1571
+#: gnu/packages/gnome.scm:2480
 msgid ""
 "gnome-keyring is a program that keeps passwords and other secrets for\n"
 "users.  It is run as a daemon in the session, similar to ssh-agent, and other\n"
@@ -6857,11 +7857,11 @@ msgid ""
 "forgotten when the session ends."
 msgstr ""
 
-#: gnu/packages/gnome.scm:1643
+#: gnu/packages/gnome.scm:2551
 msgid "GNOME's document viewer"
 msgstr ""
 
-#: gnu/packages/gnome.scm:1645
+#: gnu/packages/gnome.scm:2553
 msgid ""
 "Evince is a document viewer for multiple document formats.  It\n"
 "currently supports PDF, PostScript, DjVu, TIFF and DVI.  The goal\n"
@@ -6869,50 +7869,79 @@ msgid ""
 "on the GNOME Desktop with a single simple application."
 msgstr ""
 
-#: gnu/packages/gnome.scm:1689
+#: gnu/packages/gnome.scm:2597
 msgid "GNOME settings for various desktop components"
 msgstr ""
 
-#: gnu/packages/gnome.scm:1691
+#: gnu/packages/gnome.scm:2599
 msgid ""
 "Gsettings-desktop-schemas contains a collection of GSettings schemas\n"
 "for settings shared by various components of the GNOME desktop."
 msgstr ""
 
-#: gnu/packages/gnome.scm:1725
+#: gnu/packages/gnome.scm:2633
+msgid "Library to easily handle complex data structures"
+msgstr ""
+
+#: gnu/packages/gnome.scm:2635
+msgid ""
+"Liblarch is a Python library built to easily handle data structures such\n"
+"as lists, trees and acyclic graphs.  There's also a GTK binding that will\n"
+"allow you to use your data structure in a @code{Gtk.Treeview}.\n"
+"\n"
+"Liblarch support multiple views of one data structure and complex filtering.\n"
+"That way, you have a clear separation between your data themselves (Model)\n"
+"and how they are displayed (View)."
+msgstr ""
+
+#: gnu/packages/gnome.scm:2691
+msgid "Personal organizer for the GNOME desktop"
+msgstr ""
+
+#: gnu/packages/gnome.scm:2693
+msgid ""
+"Getting Things GNOME! (GTG) is a personal tasks and TODO list items\n"
+"organizer for the GNOME desktop environment inspired by the Getting Things\n"
+"Done (GTD) methodology.  GTG is designed with flexibility, adaptability,\n"
+"and ease of use in mind so it can be used as more than just GTD software.\n"
+"GTG is intended to help you track everything you need to do and need to\n"
+"know, from small tasks to large projects."
+msgstr ""
+
+#: gnu/packages/gnome.scm:2731
 msgid "Utility to implement the Freedesktop Icon Naming Specification"
 msgstr ""
 
-#: gnu/packages/gnome.scm:1727
+#: gnu/packages/gnome.scm:2733
 msgid ""
 "To help with the transition to the Freedesktop Icon Naming\n"
 "Specification, the icon naming utility maps the icon names used by the\n"
 "GNOME and KDE desktops to the icon names proposed in the specification."
 msgstr ""
 
-#: gnu/packages/gnome.scm:1757
+#: gnu/packages/gnome.scm:2763
 msgid "GNOME icon theme"
 msgstr ""
 
-#: gnu/packages/gnome.scm:1758
+#: gnu/packages/gnome.scm:2764
 msgid "Icons for the GNOME desktop."
 msgstr ""
 
-#: gnu/packages/gnome.scm:1795
+#: gnu/packages/gnome.scm:2801
 msgid "Tango icon theme"
 msgstr ""
 
-#: gnu/packages/gnome.scm:1796
+#: gnu/packages/gnome.scm:2802
 msgid ""
 "This is an icon theme that follows the Tango visual\n"
 "guidelines."
 msgstr ""
 
-#: gnu/packages/gnome.scm:1822
+#: gnu/packages/gnome.scm:2831
 msgid "Database of common MIME types"
 msgstr ""
 
-#: gnu/packages/gnome.scm:1824
+#: gnu/packages/gnome.scm:2833
 msgid ""
 "The shared-mime-info package contains the core database of common types\n"
 "and the update-mime-database command used to extend it.  It requires glib2 to\n"
@@ -6921,30 +7950,30 @@ msgid ""
 "database is translated at Transifex."
 msgstr ""
 
-#: gnu/packages/gnome.scm:1906
+#: gnu/packages/gnome.scm:2916
 msgid "CUPS administration tool"
 msgstr ""
 
-#: gnu/packages/gnome.scm:1908
+#: gnu/packages/gnome.scm:2918
 msgid ""
 "system-config-printer is a CUPS administration tool.  It's written in\n"
 "Python using GTK+, and uses the @acronym{IPP, Internet Printing Protocol} when\n"
 "configuring CUPS."
 msgstr ""
 
-#: gnu/packages/gnome.scm:1930
+#: gnu/packages/gnome.scm:2940
 msgid "Freedesktop icon theme"
 msgstr ""
 
-#: gnu/packages/gnome.scm:1932
+#: gnu/packages/gnome.scm:2942
 msgid "Freedesktop icon theme."
 msgstr ""
 
-#: gnu/packages/gnome.scm:1964
+#: gnu/packages/gnome.scm:2974
 msgid "GNOME desktop notification library"
 msgstr ""
 
-#: gnu/packages/gnome.scm:1966
+#: gnu/packages/gnome.scm:2976
 msgid ""
 "Libnotify is a library that sends desktop notifications to a\n"
 "notification daemon, as defined in the Desktop Notifications spec.  These\n"
@@ -6952,11 +7981,11 @@ msgid ""
 "some form of information without getting in the user's way."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2012
+#: gnu/packages/gnome.scm:3022
 msgid "GObject plugin system"
 msgstr ""
 
-#: gnu/packages/gnome.scm:2014
+#: gnu/packages/gnome.scm:3024
 msgid ""
 "Libpeas is a gobject-based plugin engine, targeted at giving every\n"
 "application the chance to assume its own extensibility.  It also has a set of\n"
@@ -6965,33 +7994,33 @@ msgid ""
 "API."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2053
+#: gnu/packages/gnome.scm:3063
 msgid "OpenGL extension to GTK+"
 msgstr ""
 
-#: gnu/packages/gnome.scm:2054
+#: gnu/packages/gnome.scm:3064
 msgid ""
 "GtkGLExt is an OpenGL extension to GTK+.  It provides\n"
 "additional GDK objects which support OpenGL rendering in GTK+ and GtkWidget\n"
 "API add-ons to make GTK+ widgets OpenGL-capable."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2097
+#: gnu/packages/gnome.scm:3115
 msgid "GTK+ rapid application development tool"
 msgstr ""
 
-#: gnu/packages/gnome.scm:2098
+#: gnu/packages/gnome.scm:3116
 msgid ""
 "Glade is a rapid application development (RAD) tool to\n"
 "enable quick & easy development of user interfaces for the GTK+ toolkit and\n"
 "the GNOME desktop environment."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2123
+#: gnu/packages/gnome.scm:3147
 msgid "CSS2 parsing and manipulation library"
 msgstr ""
 
-#: gnu/packages/gnome.scm:2125
+#: gnu/packages/gnome.scm:3149
 msgid ""
 "Libcroco is a standalone CSS2 parsing and manipulation library.\n"
 "The parser provides a low level event driven SAC-like API and a CSS object\n"
@@ -6999,31 +8028,43 @@ msgid ""
 "XML/CSS rendering engine."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2158
+#: gnu/packages/gnome.scm:3187
 msgid "GNOME's Structured File Library"
 msgstr ""
 
-#: gnu/packages/gnome.scm:2160
+#: gnu/packages/gnome.scm:3189
 msgid ""
 "Libgsf aims to provide an efficient extensible I/O abstraction for\n"
 "dealing with different structured file formats."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2227
+#: gnu/packages/gnome.scm:3257
 msgid "Render SVG files using Cairo"
 msgstr ""
 
-#: gnu/packages/gnome.scm:2229
+#: gnu/packages/gnome.scm:3259
 msgid ""
 "Librsvg is a C library to render SVG files using the Cairo 2D graphics\n"
 "library."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2399
+#: gnu/packages/gnome.scm:3438
+msgid "SVG rendering library"
+msgstr ""
+
+#: gnu/packages/gnome.scm:3439
+msgid ""
+"Librsvg is a library to render SVG images to Cairo surfaces.\n"
+"GNOME uses this to render SVG icons.  Outside of GNOME, other desktop\n"
+"environments use it for similar purposes.  Wikimedia uses it for Wikipedia's SVG\n"
+"diagrams."
+msgstr ""
+
+#: gnu/packages/gnome.scm:3465
 msgid "Create trees of CORBA Interface Definition Language files"
 msgstr ""
 
-#: gnu/packages/gnome.scm:2400
+#: gnu/packages/gnome.scm:3466
 msgid ""
 "Libidl is a library for creating trees of CORBA Interface\n"
 "Definition Language (idl) files, which is a specification for defining\n"
@@ -7032,144 +8073,144 @@ msgid ""
 "functionality was designed to be as reusable and portable as possible."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2445
+#: gnu/packages/gnome.scm:3513
 msgid "CORBA 2.4-compliant Object Request Broker"
 msgstr ""
 
-#: gnu/packages/gnome.scm:2446
+#: gnu/packages/gnome.scm:3514
 msgid ""
 "ORBit2 is a CORBA 2.4-compliant Object Request Broker (orb)\n"
 "featuring mature C, C++ and Python bindings."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2501
+#: gnu/packages/gnome.scm:3569
 msgid "Framework for creating reusable components for use in GNOME applications"
 msgstr ""
 
-#: gnu/packages/gnome.scm:2502
+#: gnu/packages/gnome.scm:3570
 msgid ""
 "Bonobo is a framework for creating reusable components for\n"
 "use in GNOME applications, built on top of CORBA."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2533
+#: gnu/packages/gnome.scm:3601
 msgid "Store application preferences"
 msgstr ""
 
-#: gnu/packages/gnome.scm:2534
+#: gnu/packages/gnome.scm:3602
 msgid ""
 "Gconf is a system for storing application preferences.  It\n"
 "is intended for user preferences; not arbitrary data storage."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2568
+#: gnu/packages/gnome.scm:3636
 msgid "Base MIME and Application database for GNOME"
 msgstr ""
 
-#: gnu/packages/gnome.scm:2569
+#: gnu/packages/gnome.scm:3637
 msgid ""
 "GNOME Mime Data is a module which contains the base MIME\n"
 "and Application database for GNOME.  The data stored by this module is\n"
 "designed to be accessed through the MIME functions in GnomeVFS."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2612
+#: gnu/packages/gnome.scm:3680
 msgid "Access files and folders in GNOME applications"
 msgstr ""
 
-#: gnu/packages/gnome.scm:2614
+#: gnu/packages/gnome.scm:3682
 msgid ""
 "GnomeVFS is the core library used to access files and folders in GNOME\n"
 "applications.  It provides a file system abstraction which allows applications\n"
 "to access local and remote files with a single consistent API."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2659
+#: gnu/packages/gnome.scm:3727
 msgid "Useful routines for building applications"
 msgstr ""
 
-#: gnu/packages/gnome.scm:2660
+#: gnu/packages/gnome.scm:3728
 msgid ""
 "The libgnome library provides a number of useful routines\n"
 "for building modern applications, including session management, activation of\n"
 "files and URIs, and displaying help."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2683
+#: gnu/packages/gnome.scm:3751
 msgid "2D drawing library"
 msgstr ""
 
-#: gnu/packages/gnome.scm:2684
+#: gnu/packages/gnome.scm:3752
 msgid ""
 "Libart is a 2D drawing library intended as a\n"
 "high-quality vector-based 2D library with antialiasing and alpha composition."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2711
+#: gnu/packages/gnome.scm:3779
 msgid "Flexible widget for creating interactive structured graphics"
 msgstr ""
 
-#: gnu/packages/gnome.scm:2712
+#: gnu/packages/gnome.scm:3780
 msgid ""
 "The GnomeCanvas widget provides a flexible widget for\n"
 "creating interactive structured graphics."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2734
+#: gnu/packages/gnome.scm:3802
 msgid "C++ bindings to the GNOME Canvas library"
 msgstr ""
 
-#: gnu/packages/gnome.scm:2735
+#: gnu/packages/gnome.scm:3803
 msgid "C++ bindings to the GNOME Canvas library."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2767
+#: gnu/packages/gnome.scm:3835
 msgid "Additional widgets for applications"
 msgstr ""
 
-#: gnu/packages/gnome.scm:2768
+#: gnu/packages/gnome.scm:3836
 msgid ""
 "The libgnomeui library provides additional widgets for\n"
 "applications.  Many of the widgets from libgnomeui have already been\n"
 "ported to GTK+."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2794
+#: gnu/packages/gnome.scm:3862
 msgid "Load glade interfaces and access the glade built widgets"
 msgstr ""
 
-#: gnu/packages/gnome.scm:2795
+#: gnu/packages/gnome.scm:3863
 msgid ""
 "Libglade is a library that provides interfaces for loading\n"
 "graphical interfaces described in glade files and for accessing the\n"
 "widgets built in the loading process."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2825 gnu/packages/gnome.scm:2857
+#: gnu/packages/gnome.scm:3893 gnu/packages/gnome.scm:3925
 msgid "Printing framework for GNOME"
 msgstr ""
 
-#: gnu/packages/gnome.scm:2827
+#: gnu/packages/gnome.scm:3895
 msgid ""
 "GNOME-print was a printing framework for GNOME.  It has been deprecated\n"
 "since ca. 2006, when GTK+ itself incorporated printing support."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2901
+#: gnu/packages/gnome.scm:3969
 msgid "Some user interface controls using Bonobo"
 msgstr ""
 
-#: gnu/packages/gnome.scm:2902
+#: gnu/packages/gnome.scm:3970
 msgid ""
 "The Bonobo UI library provides a number of user interface\n"
 "controls using the Bonobo component framework."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2929
+#: gnu/packages/gnome.scm:3997
 msgid "Window Navigator Construction Kit"
 msgstr ""
 
-#: gnu/packages/gnome.scm:2931
+#: gnu/packages/gnome.scm:3999
 msgid ""
 "Libwnck is the Window Navigator Construction Kit, a library for use in\n"
 "writing pagers, tasklists, and more generally applications that are dealing\n"
@@ -7177,19 +8218,19 @@ msgid ""
 "Hints specification (EWMH)."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2988
+#: gnu/packages/gnome.scm:4056
 msgid "Document-centric objects and utilities"
 msgstr ""
 
-#: gnu/packages/gnome.scm:2989
+#: gnu/packages/gnome.scm:4057
 msgid "A GLib/GTK+ set of document-centric objects and utilities."
 msgstr ""
 
-#: gnu/packages/gnome.scm:3073
+#: gnu/packages/gnome.scm:4141
 msgid "Spreadsheet application"
 msgstr ""
 
-#: gnu/packages/gnome.scm:3075
+#: gnu/packages/gnome.scm:4143
 msgid ""
 "GNUmeric is a GNU spreadsheet application, running under GNOME.  It is\n"
 "interoperable with other spreadsheet applications.  It has a vast array of\n"
@@ -7198,29 +8239,29 @@ msgid ""
 "engineering."
 msgstr ""
 
-#: gnu/packages/gnome.scm:3115
+#: gnu/packages/gnome.scm:4183
 msgid "Default GNOME 3 themes"
 msgstr ""
 
-#: gnu/packages/gnome.scm:3117
+#: gnu/packages/gnome.scm:4185
 msgid "The default GNOME 3 themes (Adwaita and some accessibility themes)."
 msgstr ""
 
-#: gnu/packages/gnome.scm:3165
+#: gnu/packages/gnome.scm:4231
 msgid "Manage encryption keys and passwords in the GNOME keyring"
 msgstr ""
 
-#: gnu/packages/gnome.scm:3167
+#: gnu/packages/gnome.scm:4233
 msgid ""
 "Seahorse is a GNOME application for managing encryption keys and\n"
 "passwords in the GNOME keyring."
 msgstr ""
 
-#: gnu/packages/gnome.scm:3208 gnu/packages/gnome.scm:3439
+#: gnu/packages/gnome.scm:4274 gnu/packages/gnome.scm:4502
 msgid "Compiler for the GObject type system"
 msgstr ""
 
-#: gnu/packages/gnome.scm:3210
+#: gnu/packages/gnome.scm:4276
 msgid ""
 "Vala is a programming language that aims to bring modern programming\n"
 "language features to GNOME developers without imposing any additional runtime\n"
@@ -7228,11 +8269,11 @@ msgid ""
 "libraries written in C."
 msgstr ""
 
-#: gnu/packages/gnome.scm:3242
+#: gnu/packages/gnome.scm:4325
 msgid "Virtual Terminal Emulator"
 msgstr ""
 
-#: gnu/packages/gnome.scm:3244
+#: gnu/packages/gnome.scm:4327
 msgid ""
 "VTE is a library (libvte) implementing a terminal emulator widget for\n"
 "GTK+, and a minimal sample application (vte) using that.  Vte is mainly used in\n"
@@ -7240,39 +8281,39 @@ msgid ""
 "editors, IDEs, etc."
 msgstr ""
 
-#: gnu/packages/gnome.scm:3269
+#: gnu/packages/gnome.scm:4352
 msgid "Enhanced VTE terminal widget"
 msgstr ""
 
-#: gnu/packages/gnome.scm:3271
+#: gnu/packages/gnome.scm:4354
 msgid ""
 "VTE is a library (libvte) implementing a terminal emulator widget for\n"
 "GTK+, this fork provides additional functions exposed for keyboard text\n"
 "selection and URL hints."
 msgstr ""
 
-#: gnu/packages/gnome.scm:3371
+#: gnu/packages/gnome.scm:4433
 msgid "Remote desktop viewer for GNOME"
 msgstr ""
 
-#: gnu/packages/gnome.scm:3372
+#: gnu/packages/gnome.scm:4434
 msgid ""
 "Vinagre is a remote display client supporting the VNC, SPICE\n"
 "and RDP protocols."
 msgstr ""
 
-#: gnu/packages/gnome.scm:3412
+#: gnu/packages/gnome.scm:4475
 msgid "Low-level GNOME configuration system"
 msgstr ""
 
-#: gnu/packages/gnome.scm:3413
+#: gnu/packages/gnome.scm:4476
 msgid ""
 "Dconf is a low-level configuration system.  Its main purpose\n"
 "is to provide a backend to GSettings on platforms that don't already have\n"
 "configuration storage systems."
 msgstr ""
 
-#: gnu/packages/gnome.scm:3441
+#: gnu/packages/gnome.scm:4504
 msgid ""
 "JSON-GLib is a C library based on GLib providing serialization and\n"
 "deserialization support for the JavaScript Object Notation (JSON) format\n"
@@ -7281,11 +8322,11 @@ msgid ""
 "and objects."
 msgstr ""
 
-#: gnu/packages/gnome.scm:3496
+#: gnu/packages/gnome.scm:4553
 msgid "High-level API for X Keyboard Extension"
 msgstr ""
 
-#: gnu/packages/gnome.scm:3498
+#: gnu/packages/gnome.scm:4555
 msgid ""
 "LibXklavier is a library providing high-level API for X Keyboard\n"
 "Extension known as XKB.  This library is intended to support XFree86 and other\n"
@@ -7293,58 +8334,58 @@ msgid ""
 "indicators etc)."
 msgstr ""
 
-#: gnu/packages/gnome.scm:3526
+#: gnu/packages/gnome.scm:4583
 msgid "Python bindings to librsvg"
 msgstr ""
 
-#: gnu/packages/gnome.scm:3528
+#: gnu/packages/gnome.scm:4585
 msgid ""
 "This package provides Python bindings to librsvg, the SVG rendering\n"
 "library."
 msgstr "Dieses Paket bietet Python-Anbindungen für librsvg, die Bibliothek zum Zeichnen von SVG-Daten."
 
-#: gnu/packages/gnome.scm:3558
+#: gnu/packages/gnome.scm:4615
 msgid "Network-related GIO modules"
 msgstr ""
 
-#: gnu/packages/gnome.scm:3560
+#: gnu/packages/gnome.scm:4617
 msgid ""
 "This package contains various network related extensions for the GIO\n"
 "library."
 msgstr ""
 
-#: gnu/packages/gnome.scm:3591
+#: gnu/packages/gnome.scm:4648
 msgid "RESTful web api query library"
 msgstr ""
 
-#: gnu/packages/gnome.scm:3593
+#: gnu/packages/gnome.scm:4650
 msgid ""
 "This library was designed to make it easier to access web services that\n"
 "claim to be \"RESTful\".  It includes convenience wrappers for libsoup and\n"
 "libxml to ease remote use of the RESTful API."
 msgstr ""
 
-#: gnu/packages/gnome.scm:3715
+#: gnu/packages/gnome.scm:4771
 msgid "GLib-based HTTP Library"
 msgstr ""
 
-#: gnu/packages/gnome.scm:3717
+#: gnu/packages/gnome.scm:4773
 msgid ""
 "LibSoup is an HTTP client/server library for GNOME.  It uses GObjects\n"
 "and the GLib main loop, to integrate well with GNOME applications."
 msgstr ""
 
-#: gnu/packages/gnome.scm:3763
+#: gnu/packages/gnome.scm:4837
 msgid "GObject bindings for \"Secret Service\" API"
 msgstr ""
 
-#: gnu/packages/gnome.scm:3765
+#: gnu/packages/gnome.scm:4839
 msgid ""
 "Libsecret is a GObject based library for storing and retrieving passwords\n"
 "and other secrets.  It communicates with the \"Secret Service\" using DBus."
 msgstr ""
 
-#: gnu/packages/gnome.scm:3806
+#: gnu/packages/gnome.scm:4880
 msgid ""
 "Five or More is a game where you try to align\n"
 " five or more objects of the same color and shape causing them to disappear.\n"
@@ -7352,21 +8393,31 @@ msgid ""
 " Try to last as long as possible."
 msgstr ""
 
-#: gnu/packages/gnome.scm:3849
+#: gnu/packages/gnome.scm:4922
 msgid "Minesweeper game"
 msgstr ""
 
-#: gnu/packages/gnome.scm:3851
+#: gnu/packages/gnome.scm:4924
 msgid ""
 "Mines (previously gnomine) is a puzzle game where you locate mines\n"
 "floating in an ocean using only your brain and a little bit of luck."
 msgstr ""
 
-#: gnu/packages/gnome.scm:3893
+#: gnu/packages/gnome.scm:4963
+msgid "Write to multiple USB devices at once"
+msgstr ""
+
+#: gnu/packages/gnome.scm:4965
+msgid ""
+"MultiWriter can be used to write an ISO file to multiple USB devices at\n"
+"once."
+msgstr ""
+
+#: gnu/packages/gnome.scm:5007
 msgid "Japanese logic game"
 msgstr ""
 
-#: gnu/packages/gnome.scm:3895
+#: gnu/packages/gnome.scm:5009
 msgid ""
 "Sudoku is a Japanese logic game that exploded in popularity in 2005.\n"
 "GNOME Sudoku is meant to have an interface as simple and unobstrusive as\n"
@@ -7374,11 +8425,11 @@ msgid ""
 "more fun."
 msgstr ""
 
-#: gnu/packages/gnome.scm:3941
+#: gnu/packages/gnome.scm:5055
 msgid "Terminal emulator"
 msgstr ""
 
-#: gnu/packages/gnome.scm:3943
+#: gnu/packages/gnome.scm:5057
 msgid ""
 "GNOME Terminal is a terminal emulator application for accessing a\n"
 "UNIX shell environment which can be used to run programs available on\n"
@@ -7388,22 +8439,22 @@ msgid ""
 "keyboard shortcuts."
 msgstr ""
 
-#: gnu/packages/gnome.scm:4022
+#: gnu/packages/gnome.scm:5136
 msgid "Color management service"
 msgstr ""
 
-#: gnu/packages/gnome.scm:4023
+#: gnu/packages/gnome.scm:5137
 msgid ""
 "Colord is a system service that makes it easy to manage,\n"
 "install and generate color profiles to accurately color manage input and\n"
 "output devices."
 msgstr ""
 
-#: gnu/packages/gnome.scm:4059
+#: gnu/packages/gnome.scm:5172
 msgid "Geolocation service"
 msgstr ""
 
-#: gnu/packages/gnome.scm:4060
+#: gnu/packages/gnome.scm:5173
 msgid ""
 "Geoclue is a D-Bus service that provides location\n"
 "information.  The primary goal of the Geoclue project is to make creating\n"
@@ -7412,11 +8463,11 @@ msgid ""
 "permission from user."
 msgstr ""
 
-#: gnu/packages/gnome.scm:4104
+#: gnu/packages/gnome.scm:5217
 msgid "Geocoding and reverse-geocoding library"
 msgstr ""
 
-#: gnu/packages/gnome.scm:4106
+#: gnu/packages/gnome.scm:5219
 msgid ""
 "geocode-glib is a convenience library for geocoding (finding longitude,\n"
 "and latitude from an address) and reverse geocoding (finding an address from\n"
@@ -7424,11 +8475,11 @@ msgid ""
 "faster results and to avoid unnecessary server load."
 msgstr ""
 
-#: gnu/packages/gnome.scm:4165
+#: gnu/packages/gnome.scm:5288
 msgid "System daemon for managing power devices"
 msgstr ""
 
-#: gnu/packages/gnome.scm:4167
+#: gnu/packages/gnome.scm:5290
 msgid ""
 "UPower is an abstraction for enumerating power devices,\n"
 "listening to device events and querying history and statistics.  Any\n"
@@ -7436,21 +8487,21 @@ msgid ""
 "service via the system message bus."
 msgstr ""
 
-#: gnu/packages/gnome.scm:4209
+#: gnu/packages/gnome.scm:5332
 msgid "Location, time zone, and weather library for GNOME"
 msgstr ""
 
-#: gnu/packages/gnome.scm:4211
+#: gnu/packages/gnome.scm:5334
 msgid ""
 "libgweather is a library to access weather information from online\n"
 "services for numerous locations."
 msgstr ""
 
-#: gnu/packages/gnome.scm:4274
+#: gnu/packages/gnome.scm:5417
 msgid "GNOME settings daemon"
 msgstr ""
 
-#: gnu/packages/gnome.scm:4276
+#: gnu/packages/gnome.scm:5419
 msgid ""
 "This package contains the daemon responsible for setting the various\n"
 "parameters of a GNOME session and the applications that run under it.  It\n"
@@ -7458,53 +8509,53 @@ msgid ""
 "settings, themes, mouse settings, and startup of other daemons."
 msgstr ""
 
-#: gnu/packages/gnome.scm:4312
+#: gnu/packages/gnome.scm:5455
 msgid "Library to parse and save media playlists for GNOME"
 msgstr ""
 
-#: gnu/packages/gnome.scm:4313
+#: gnu/packages/gnome.scm:5456
 msgid ""
 "Totem-pl-parser is a GObjects-based library to parse and save\n"
 "playlists in a variety of formats."
 msgstr ""
 
-#: gnu/packages/gnome.scm:4347
+#: gnu/packages/gnome.scm:5490
 msgid "Solitaire card games"
 msgstr ""
 
-#: gnu/packages/gnome.scm:4349
+#: gnu/packages/gnome.scm:5492
 msgid ""
 "Aisleriot (also known as Solitaire or sol) is a collection of card games\n"
 "which are easy to play with the aid of a mouse."
 msgstr ""
 
-#: gnu/packages/gnome.scm:4377
+#: gnu/packages/gnome.scm:5520
 msgid "Actions, Menus and Toolbars Kit for GTK+ applications"
 msgstr ""
 
-#: gnu/packages/gnome.scm:4379
+#: gnu/packages/gnome.scm:5522
 msgid ""
 "Amtk is the acronym for @acronym{Amtk, Actions Menus and Toolbars Kit}.\n"
 "It is a basic GtkUIManager replacement based on GAction.  It is suitable for\n"
 "both a traditional UI or a modern UI with a GtkHeaderBar."
 msgstr ""
 
-#: gnu/packages/gnome.scm:4418
+#: gnu/packages/gnome.scm:5561
 msgid "API documentation browser for GNOME"
 msgstr ""
 
-#: gnu/packages/gnome.scm:4420
+#: gnu/packages/gnome.scm:5563
 msgid ""
 "Devhelp is an API documentation browser for GTK+ and GNOME.  It works\n"
 "natively with GTK-Doc (the API reference system developed for GTK+ and used\n"
 "throughout GNOME for API documentation)."
 msgstr ""
 
-#: gnu/packages/gnome.scm:4486
+#: gnu/packages/gnome.scm:5640
 msgid "Object oriented GL/GLES Abstraction/Utility Layer"
 msgstr ""
 
-#: gnu/packages/gnome.scm:4488
+#: gnu/packages/gnome.scm:5642
 msgid ""
 "Cogl is a small library for using 3D graphics hardware to draw pretty\n"
 "pictures.  The API departs from the flat state machine style of OpenGL and is\n"
@@ -7512,26 +8563,26 @@ msgid ""
 "without stepping on each others toes."
 msgstr ""
 
-#: gnu/packages/gnome.scm:4545
+#: gnu/packages/gnome.scm:5699
 msgid "OpenGL-based interactive canvas library"
 msgstr ""
 
-#: gnu/packages/gnome.scm:4547 gnu/packages/gnome.scm:4576
+#: gnu/packages/gnome.scm:5701 gnu/packages/gnome.scm:5730
 msgid ""
 "Clutter is an OpenGL-based interactive canvas library, designed for\n"
 "creating fast, mainly 2D single window applications such as media box UIs,\n"
 "presentations, kiosk style applications and so on."
 msgstr ""
 
-#: gnu/packages/gnome.scm:4574
+#: gnu/packages/gnome.scm:5728
 msgid "OpenGL-based interactive canvas library GTK+ widget"
 msgstr ""
 
-#: gnu/packages/gnome.scm:4603
+#: gnu/packages/gnome.scm:5757
 msgid "Integration library for using GStreamer with Clutter"
 msgstr ""
 
-#: gnu/packages/gnome.scm:4605
+#: gnu/packages/gnome.scm:5759
 msgid ""
 "Clutter-Gst is an integration library for using GStreamer with Clutter.\n"
 "It provides a GStreamer sink to upload frames to GL and an actor that\n"
@@ -7539,11 +8590,11 @@ msgid ""
 "OpenGL-based interactive canvas library."
 msgstr ""
 
-#: gnu/packages/gnome.scm:4639
+#: gnu/packages/gnome.scm:5793
 msgid "C library providing a ClutterActor to display maps"
 msgstr ""
 
-#: gnu/packages/gnome.scm:4641
+#: gnu/packages/gnome.scm:5795
 msgid ""
 "libchamplain is a C library providing a ClutterActor to display maps.\n"
 "It also provides a Gtk+ widget to display maps in Gtk+ applications.  Python\n"
@@ -7551,32 +8602,32 @@ msgid ""
 "such as OpenStreetMap, OpenCycleMap, OpenAerialMap, and Maps for free."
 msgstr ""
 
-#: gnu/packages/gnome.scm:4672
+#: gnu/packages/gnome.scm:5826
 msgid "Object mapper from GObjects to SQLite"
 msgstr ""
 
-#: gnu/packages/gnome.scm:4674
+#: gnu/packages/gnome.scm:5828
 msgid ""
 "Gom provides an object mapper from GObjects to SQLite.  It helps you\n"
 "write applications that need to store structured data as well as make complex\n"
 "queries upon that data."
 msgstr ""
 
-#: gnu/packages/gnome.scm:4709
+#: gnu/packages/gnome.scm:5863
 msgid "Useful functionality shared among GNOME games"
 msgstr ""
 
-#: gnu/packages/gnome.scm:4711
+#: gnu/packages/gnome.scm:5865
 msgid ""
 "libgnome-games-support is a small library intended for internal use by\n"
 "GNOME Games, but it may be used by others."
 msgstr ""
 
-#: gnu/packages/gnome.scm:4751
+#: gnu/packages/gnome.scm:5905
 msgid "Sliding block puzzles"
 msgstr ""
 
-#: gnu/packages/gnome.scm:4753
+#: gnu/packages/gnome.scm:5907
 msgid ""
 "GNOME Klotski is a set of block sliding puzzles.  The objective is to move\n"
 "the patterned block to the area bordered by green markers.  To do so, you will\n"
@@ -7584,62 +8635,62 @@ msgid ""
 "as possible!"
 msgstr ""
 
-#: gnu/packages/gnome.scm:4794
+#: gnu/packages/gnome.scm:5947
 msgid "Framework for discovering and browsing media"
 msgstr ""
 
-#: gnu/packages/gnome.scm:4796
+#: gnu/packages/gnome.scm:5949
 msgid ""
 "Grilo is a framework focused on making media discovery and browsing easy\n"
 "for application developers."
 msgstr ""
 
-#: gnu/packages/gnome.scm:4842
+#: gnu/packages/gnome.scm:5994
 msgid "Plugins for the Grilo media discovery library"
 msgstr ""
 
-#: gnu/packages/gnome.scm:4844
+#: gnu/packages/gnome.scm:5996
 msgid ""
 "Grilo is a framework focused on making media discovery and browsing easy\n"
 "for application developers.  This package provides plugins for common media\n"
 "discovery protocols."
 msgstr ""
 
-#: gnu/packages/gnome.scm:4948
+#: gnu/packages/gnome.scm:6099
 msgid "Simple media player for GNOME based on GStreamer"
 msgstr ""
 
-#: gnu/packages/gnome.scm:4949
+#: gnu/packages/gnome.scm:6100
 msgid ""
 "Totem is a simple yet featureful media player for GNOME\n"
 "which can read a large number of file formats."
 msgstr ""
 
-#: gnu/packages/gnome.scm:5038
+#: gnu/packages/gnome.scm:6189
 msgid "Music player for GNOME"
 msgstr ""
 
-#: gnu/packages/gnome.scm:5039
+#: gnu/packages/gnome.scm:6190
 msgid ""
 "Rhythmbox is a music playing application for GNOME.  It\n"
 "supports playlists, song ratings, and any codecs installed through gstreamer."
 msgstr ""
 
-#: gnu/packages/gnome.scm:5098
+#: gnu/packages/gnome.scm:6249
 msgid "GNOME image viewer"
 msgstr ""
 
-#: gnu/packages/gnome.scm:5099
+#: gnu/packages/gnome.scm:6250
 msgid ""
 "Eye of GNOME is the GNOME image viewer.  It\n"
 "supports image conversion, rotation, and slideshows."
 msgstr ""
 
-#: gnu/packages/gnome.scm:5121
+#: gnu/packages/gnome.scm:6272
 msgid "Extensions for the Eye of GNOME image viewer"
 msgstr ""
 
-#: gnu/packages/gnome.scm:5133
+#: gnu/packages/gnome.scm:6284
 msgid ""
 "This package provides plugins for the Eye of GNOME (EOG) image viewer,\n"
 "notably:\n"
@@ -7652,21 +8703,21 @@ msgid ""
 "@end itemize\n"
 msgstr ""
 
-#: gnu/packages/gnome.scm:5173
+#: gnu/packages/gnome.scm:6324
 msgid "GObject bindings for libudev"
 msgstr "GObject-Anbindungen für libudev"
 
-#: gnu/packages/gnome.scm:5175
+#: gnu/packages/gnome.scm:6326
 msgid ""
 "This library provides GObject bindings for libudev.  It was originally\n"
 "part of udev-extras, then udev, then systemd.  It's now a project on its own."
 msgstr ""
 
-#: gnu/packages/gnome.scm:5235
+#: gnu/packages/gnome.scm:6389
 msgid "Userspace virtual file system for GIO"
 msgstr ""
 
-#: gnu/packages/gnome.scm:5237
+#: gnu/packages/gnome.scm:6391
 msgid ""
 "GVFS is a userspace virtual file system designed to work with the I/O\n"
 "abstraction of GIO.  It contains a GIO module that seamlessly adds GVFS support\n"
@@ -7677,11 +8728,11 @@ msgid ""
 "DAV, and others."
 msgstr ""
 
-#: gnu/packages/gnome.scm:5272
+#: gnu/packages/gnome.scm:6426
 msgid "GLib binding for libusb1"
 msgstr "GLib-Anbindungen für libusb1"
 
-#: gnu/packages/gnome.scm:5274
+#: gnu/packages/gnome.scm:6428
 msgid ""
 "GUsb is a GObject wrapper for libusb1 that makes it easy to do\n"
 "asynchronous control, bulk and interrupt transfers with proper cancellation\n"
@@ -7689,11 +8740,11 @@ msgid ""
 "USB transfers with your high-level application or system daemon."
 msgstr ""
 
-#: gnu/packages/gnome.scm:5312
+#: gnu/packages/gnome.scm:6466
 msgid "Document and image scanner"
 msgstr ""
 
-#: gnu/packages/gnome.scm:5314
+#: gnu/packages/gnome.scm:6468
 msgid ""
 "Document Scanner is an easy-to-use application that lets you connect your\n"
 "scanner and quickly capture images and documents in an appropriate format.  It\n"
@@ -7701,62 +8752,62 @@ msgid ""
 "almost all of them."
 msgstr ""
 
-#: gnu/packages/gnome.scm:5382
+#: gnu/packages/gnome.scm:6536
 msgid "Web browser for GNOME"
 msgstr ""
 
-#: gnu/packages/gnome.scm:5384
+#: gnu/packages/gnome.scm:6538
 msgid ""
 "Eolie is a new web browser for GNOME.  It features Firefox sync support,\n"
 "a secret password store, an adblocker, and a modern UI."
 msgstr ""
 
-#: gnu/packages/gnome.scm:5448
+#: gnu/packages/gnome.scm:6612
 msgid "GNOME web browser"
 msgstr ""
 
-#: gnu/packages/gnome.scm:5450
+#: gnu/packages/gnome.scm:6614
 msgid ""
 "Epiphany is a GNOME web browser targeted at non-technical users.  Its\n"
 "principles are simplicity and standards compliance."
 msgstr ""
 
-#: gnu/packages/gnome.scm:5507
+#: gnu/packages/gnome.scm:6671
 msgid "D-Bus debugger"
 msgstr ""
 
-#: gnu/packages/gnome.scm:5509
+#: gnu/packages/gnome.scm:6673
 msgid ""
 "D-Feet is a D-Bus debugger, which can be used to inspect D-Bus interfaces\n"
 "of running programs and invoke methods on those interfaces."
 msgstr ""
 
-#: gnu/packages/gnome.scm:5531
+#: gnu/packages/gnome.scm:6695
 msgid "XSL stylesheets for Yelp"
 msgstr ""
 
-#: gnu/packages/gnome.scm:5533
+#: gnu/packages/gnome.scm:6697
 msgid ""
 "Yelp-xsl contains XSL stylesheets that are used by the yelp help browser\n"
 "to format Docbook and Mallard documents."
 msgstr ""
 
-#: gnu/packages/gnome.scm:5564
+#: gnu/packages/gnome.scm:6728
 msgid "GNOME help browser"
 msgstr ""
 
-#: gnu/packages/gnome.scm:5566
+#: gnu/packages/gnome.scm:6730
 msgid ""
 "Yelp is the help viewer in Gnome.  It natively views Mallard, DocBook,\n"
 "man, info, and HTML documents.  It can locate documents according to the\n"
 "freedesktop.org help system specification."
 msgstr ""
 
-#: gnu/packages/gnome.scm:5594
+#: gnu/packages/gnome.scm:6758
 msgid "Yelp documentation tools"
 msgstr ""
 
-#: gnu/packages/gnome.scm:5596
+#: gnu/packages/gnome.scm:6760
 msgid ""
 "Yelp-tools is a collection of scripts and build utilities to help create,\n"
 "manage, and publish documentation for Yelp and the web.  Most of the heavy\n"
@@ -7764,32 +8815,32 @@ msgid ""
 "wraps things up in a developer-friendly way."
 msgstr ""
 
-#: gnu/packages/gnome.scm:5644
+#: gnu/packages/gnome.scm:6797
 msgid "GObject collection library"
 msgstr ""
 
-#: gnu/packages/gnome.scm:5646
+#: gnu/packages/gnome.scm:6799
 msgid ""
 "Libgee is a utility library providing GObject-based interfaces and\n"
 "classes for commonly used data structures."
 msgstr ""
 
-#: gnu/packages/gnome.scm:5675
+#: gnu/packages/gnome.scm:6828
 msgid "GObject wrapper around the Exiv2 photo metadata library"
 msgstr ""
 
-#: gnu/packages/gnome.scm:5677
+#: gnu/packages/gnome.scm:6830
 msgid ""
 "Gexiv2 is a GObject wrapper around the Exiv2 photo metadata library.  It\n"
 "allows for GNOME applications to easily inspect and update EXIF, IPTC, and XMP\n"
 "metadata in photo and video files of various formats."
 msgstr ""
 
-#: gnu/packages/gnome.scm:5729
+#: gnu/packages/gnome.scm:6882
 msgid "Photo manager for GNOME 3"
 msgstr ""
 
-#: gnu/packages/gnome.scm:5731
+#: gnu/packages/gnome.scm:6884
 msgid ""
 "Shotwell is a digital photo manager designed for the GNOME desktop\n"
 "environment.  It allows you to import photos from disk or camera, organize\n"
@@ -7797,62 +8848,62 @@ msgid ""
 "share them with others via social networking and more."
 msgstr ""
 
-#: gnu/packages/gnome.scm:5766
+#: gnu/packages/gnome.scm:6919
 msgid "Graphical archive manager for GNOME"
 msgstr ""
 
-#: gnu/packages/gnome.scm:5767
+#: gnu/packages/gnome.scm:6920
 msgid ""
 "File Roller is an archive manager for the GNOME desktop\n"
 "environment that allows users to view, unpack, and create compressed archives\n"
 "such as gzip tarballs."
 msgstr ""
 
-#: gnu/packages/gnome.scm:5837
+#: gnu/packages/gnome.scm:6990
 msgid "Session manager for GNOME"
 msgstr ""
 
-#: gnu/packages/gnome.scm:5839
+#: gnu/packages/gnome.scm:6992
 msgid ""
 "This package contains the GNOME session manager, as well as a\n"
 "configuration program to choose applications starting on login."
 msgstr ""
 
-#: gnu/packages/gnome.scm:5895
+#: gnu/packages/gnome.scm:7049
 msgid "Javascript bindings for GNOME"
 msgstr ""
 
-#: gnu/packages/gnome.scm:5898
+#: gnu/packages/gnome.scm:7052
 msgid ""
 "Gjs is a javascript binding for GNOME.  It's mainly based on spidermonkey\n"
 "javascript engine and the GObject introspection framework."
 msgstr ""
 
-#: gnu/packages/gnome.scm:5991
+#: gnu/packages/gnome.scm:7145
 msgid "GNOME text editor"
 msgstr "GNOME-Texteditor"
 
-#: gnu/packages/gnome.scm:5992
+#: gnu/packages/gnome.scm:7146
 msgid ""
 "While aiming at simplicity and ease of use, gedit is a\n"
 "powerful general purpose text editor."
 msgstr ""
 
-#: gnu/packages/gnome.scm:6016
+#: gnu/packages/gnome.scm:7170
 msgid "Display graphical dialog boxes from shell scripts"
 msgstr ""
 
-#: gnu/packages/gnome.scm:6019
+#: gnu/packages/gnome.scm:7173
 msgid ""
 "Zenity is a rewrite of gdialog, the GNOME port of dialog which allows you\n"
 "to display dialog boxes from the commandline and shell scripts."
 msgstr ""
 
-#: gnu/packages/gnome.scm:6128
+#: gnu/packages/gnome.scm:7281
 msgid "Window and compositing manager"
 msgstr ""
 
-#: gnu/packages/gnome.scm:6131
+#: gnu/packages/gnome.scm:7284
 msgid ""
 "Mutter is a window and compositing manager that displays and manages your\n"
 "desktop via OpenGL.  Mutter combines a sophisticated display engine using the\n"
@@ -7860,11 +8911,11 @@ msgid ""
 "window manager."
 msgstr ""
 
-#: gnu/packages/gnome.scm:6185
+#: gnu/packages/gnome.scm:7338
 msgid "Single sign-on framework for GNOME"
 msgstr ""
 
-#: gnu/packages/gnome.scm:6188
+#: gnu/packages/gnome.scm:7341
 msgid ""
 "GNOME Online Accounts provides interfaces so that applications and\n"
 "libraries in GNOME can access the user's online accounts.  It has providers for\n"
@@ -7872,32 +8923,32 @@ msgid ""
 "Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos."
 msgstr ""
 
-#: gnu/packages/gnome.scm:6283
+#: gnu/packages/gnome.scm:7429
 msgid "Store address books and calendars"
 msgstr ""
 
-#: gnu/packages/gnome.scm:6286
+#: gnu/packages/gnome.scm:7432
 msgid ""
 "This package provides a unified backend for programs that work with\n"
 "contacts, tasks, and calendar information.  It was originally developed for\n"
 "Evolution (hence the name), but is now used by other packages as well."
 msgstr ""
 
-#: gnu/packages/gnome.scm:6349
+#: gnu/packages/gnome.scm:7495
 msgid "Text entry and UI navigation application"
 msgstr ""
 
-#: gnu/packages/gnome.scm:6352
+#: gnu/packages/gnome.scm:7498
 msgid ""
 "Caribou is an input assistive technology intended for switch and pointer\n"
 "users."
 msgstr ""
 
-#: gnu/packages/gnome.scm:6491
+#: gnu/packages/gnome.scm:7646
 msgid "Network connection manager"
 msgstr ""
 
-#: gnu/packages/gnome.scm:6494
+#: gnu/packages/gnome.scm:7649
 msgid ""
 "NetworkManager is a system network service that manages your network\n"
 "devices and connections, attempting to keep active network connectivity when\n"
@@ -7906,100 +8957,100 @@ msgid ""
 "services."
 msgstr ""
 
-#: gnu/packages/gnome.scm:6548
+#: gnu/packages/gnome.scm:7706
 msgid "OpenVPN plug-in for NetworkManager"
 msgstr ""
 
-#: gnu/packages/gnome.scm:6550
+#: gnu/packages/gnome.scm:7708
 msgid ""
 "This extension of NetworkManager allows it to take care of connections\n"
 "to virtual private networks (VPNs) via OpenVPN."
 msgstr ""
 
-#: gnu/packages/gnome.scm:6597
+#: gnu/packages/gnome.scm:7759
 msgid "VPNC plug-in for NetworkManager"
 msgstr ""
 
-#: gnu/packages/gnome.scm:6599
+#: gnu/packages/gnome.scm:7761
 msgid ""
 "Support for configuring virtual private networks based on VPNC.\n"
 "Compatible with Cisco VPN concentrators configured to use IPsec."
 msgstr ""
 
-#: gnu/packages/gnome.scm:6647
+#: gnu/packages/gnome.scm:7809
 msgid "OpenConnect plug-in for NetworkManager"
 msgstr ""
 
-#: gnu/packages/gnome.scm:6649
+#: gnu/packages/gnome.scm:7811
 msgid ""
 "This extension of NetworkManager allows it to take care of connections\n"
 "to @acronym{VPNs, virtual private networks} via OpenConnect, an open client for\n"
 "Cisco's AnyConnect SSL VPN."
 msgstr ""
 
-#: gnu/packages/gnome.scm:6677
+#: gnu/packages/gnome.scm:7839
 msgid "Database of broadband connection configuration"
 msgstr ""
 
-#: gnu/packages/gnome.scm:6678
+#: gnu/packages/gnome.scm:7840
 msgid "Database of broadband connection configuration."
 msgstr ""
 
-#: gnu/packages/gnome.scm:6720
+#: gnu/packages/gnome.scm:7879
 msgid "Applet for managing network connections"
 msgstr ""
 
-#: gnu/packages/gnome.scm:6723
+#: gnu/packages/gnome.scm:7882
 msgid ""
 "This package contains a systray applet for NetworkManager.  It displays\n"
 "the available networks and allows users to easily switch between them."
 msgstr ""
 
-#: gnu/packages/gnome.scm:6748
+#: gnu/packages/gnome.scm:7907
 msgid "C++ wrapper for XML parser library libxml2"
 msgstr ""
 
-#: gnu/packages/gnome.scm:6750
+#: gnu/packages/gnome.scm:7909
 msgid ""
 "This package provides a C++ wrapper for the XML parser library\n"
 "libxml2."
 msgstr ""
 
-#: gnu/packages/gnome.scm:6949
+#: gnu/packages/gnome.scm:8111
 msgid "Display manager for GNOME"
 msgstr ""
 
-#: gnu/packages/gnome.scm:6952
+#: gnu/packages/gnome.scm:8114
 msgid ""
 "GNOME Display Manager is a system service that is responsible for\n"
 "providing graphical log-ins and managing local and remote displays."
 msgstr ""
 
-#: gnu/packages/gnome.scm:6976
+#: gnu/packages/gnome.scm:8138
 msgid "Portable system access library"
 msgstr ""
 
-#: gnu/packages/gnome.scm:6979
+#: gnu/packages/gnome.scm:8141
 msgid ""
 "LibGTop is a library to get system specific data such as CPU and memory\n"
 "usage and information about running processes."
 msgstr ""
 
-#: gnu/packages/gnome.scm:7011
+#: gnu/packages/gnome.scm:8173
 msgid "GNOME Bluetooth subsystem"
 msgstr ""
 
-#: gnu/packages/gnome.scm:7014
+#: gnu/packages/gnome.scm:8176
 msgid ""
 "This package contains tools for managing and manipulating Bluetooth\n"
 "devices using the GNOME desktop."
 msgstr ""
 
-#: gnu/packages/gnome.scm:7117
+#: gnu/packages/gnome.scm:8285
 msgid "Utilities to configure the GNOME desktop"
 msgstr ""
 
-#: gnu/packages/gnome.scm:7120
+#: gnu/packages/gnome.scm:8288
 msgid ""
 "This package contains configuration applets for the GNOME desktop,\n"
 "allowing to set accessibility configuration, desktop fonts, keyboard and mouse\n"
@@ -8007,43 +9058,43 @@ msgid ""
 "properties, screen resolution, and other GNOME parameters."
 msgstr ""
 
-#: gnu/packages/gnome.scm:7276
+#: gnu/packages/gnome.scm:8448
 msgid "Desktop shell for GNOME"
 msgstr ""
 
-#: gnu/packages/gnome.scm:7279
+#: gnu/packages/gnome.scm:8451
 msgid ""
 "GNOME Shell provides core user interface functions for the GNOME desktop,\n"
 "like switching to windows and launching applications."
 msgstr ""
 
-#: gnu/packages/gnome.scm:7314
-msgid "VNC viewer widget for GTK+"
+#: gnu/packages/gnome.scm:8493
+msgid "VNC client viewer widget for GTK+"
 msgstr ""
 
-#: gnu/packages/gnome.scm:7316
+#: gnu/packages/gnome.scm:8494
 msgid ""
-"GTK-VNC is a VNC viewer widget for GTK+, used by remote desktop viewing\n"
-"applications, for instance the Vinagre client, GNOME Boxes and virt-viewer.\n"
-"GTK-VNC implements client side RFB protocol and authentication extensions such\n"
-"as SASL, TLS and VeNCrypt.  Additionally it supports encoding extensions."
+"GTK-VNC is a project providing client side APIs for the RFB\n"
+"protocol / VNC remote desktop technology.  It is built using coroutines allowing\n"
+"it to be completely asynchronous while remaining single threaded.  It provides a\n"
+"core C library, and bindings for Python (PyGTK)."
 msgstr ""
 
-#: gnu/packages/gnome.scm:7343
+#: gnu/packages/gnome.scm:8521
 msgid "Archives integration support for GNOME"
 msgstr ""
 
-#: gnu/packages/gnome.scm:7346
+#: gnu/packages/gnome.scm:8524
 msgid ""
 "GNOME Autoar is a library which makes creating and extracting archives\n"
 "easy, safe, and automatic."
 msgstr ""
 
-#: gnu/packages/gnome.scm:7391 gnu/packages/gnome.scm:7479
+#: gnu/packages/gnome.scm:8569 gnu/packages/gnome.scm:8657
 msgid "Metadata database, indexer and search tool"
 msgstr ""
 
-#: gnu/packages/gnome.scm:7394
+#: gnu/packages/gnome.scm:8572
 msgid ""
 "Tracker is a search engine and triplestore for desktop, embedded and mobile.\n"
 "\n"
@@ -8066,29 +9117,29 @@ msgid ""
 "endpoint and it understands SPARQL. "
 msgstr ""
 
-#: gnu/packages/gnome.scm:7482
+#: gnu/packages/gnome.scm:8660
 msgid ""
 "Tracker is an advanced framework for first class objects with associated\n"
 "metadata and tags.  It provides a one stop solution for all metadata, tags,\n"
 "shared object databases, search tools and indexing."
 msgstr ""
 
-#: gnu/packages/gnome.scm:7536
+#: gnu/packages/gnome.scm:8721
 msgid "File manager for GNOME"
 msgstr ""
 
-#: gnu/packages/gnome.scm:7539
+#: gnu/packages/gnome.scm:8724
 msgid ""
 "Nautilus (Files) is a file manager designed to fit the GNOME desktop\n"
 "design and behaviour, giving the user a simple way to navigate and manage its\n"
 "files."
 msgstr ""
 
-#: gnu/packages/gnome.scm:7571
+#: gnu/packages/gnome.scm:8756
 msgid "Disk usage analyzer for GNOME"
 msgstr ""
 
-#: gnu/packages/gnome.scm:7573
+#: gnu/packages/gnome.scm:8758
 msgid ""
 "Baobab (Disk Usage Analyzer) is a graphical application to analyse disk\n"
 "usage in the GNOME desktop environment.  It can easily scan device volumes or\n"
@@ -8096,11 +9147,11 @@ msgid ""
 "is complete it provides a graphical representation of each selected folder."
 msgstr ""
 
-#: gnu/packages/gnome.scm:7597
+#: gnu/packages/gnome.scm:8782
 msgid "Background images for the GNOME desktop"
 msgstr ""
 
-#: gnu/packages/gnome.scm:7599
+#: gnu/packages/gnome.scm:8784
 msgid ""
 "GNOME backgrounds package contains a collection of graphics files which\n"
 "can be used as backgrounds in the GNOME Desktop environment.  Additionally,\n"
@@ -8108,33 +9159,33 @@ msgid ""
 "can add your own files to the collection."
 msgstr ""
 
-#: gnu/packages/gnome.scm:7635
+#: gnu/packages/gnome.scm:8828
 msgid "Take pictures of your screen"
 msgstr ""
 
-#: gnu/packages/gnome.scm:7637
+#: gnu/packages/gnome.scm:8830
 msgid ""
 "GNOME Screenshot is a utility used for taking screenshots of the entire\n"
 "screen, a window or a user defined area of the screen, with optional\n"
 "beautifying border effects."
 msgstr ""
 
-#: gnu/packages/gnome.scm:7678
+#: gnu/packages/gnome.scm:8860
 msgid "Graphical editor for GNOME's dconf configuration system"
 msgstr ""
 
-#: gnu/packages/gnome.scm:7680
+#: gnu/packages/gnome.scm:8862
 msgid ""
 "Dconf-editor is a graphical tool for browsing and editing the dconf\n"
 "configuration system for GNOME.  It allows users to configure desktop\n"
 "software that do not provide their own configuration interface."
 msgstr ""
 
-#: gnu/packages/gnome.scm:7709
+#: gnu/packages/gnome.scm:8891
 msgid "Default MIME type associations for the GNOME desktop"
 msgstr ""
 
-#: gnu/packages/gnome.scm:7711
+#: gnu/packages/gnome.scm:8893
 msgid ""
 "Given many installed packages which might handle a given MIME type, a\n"
 "user running the GNOME desktop probably has some preferences: for example,\n"
@@ -8143,113 +9194,134 @@ msgid ""
 "associations for GNOME."
 msgstr ""
 
-#: gnu/packages/gnome.scm:7742
+#: gnu/packages/gnome.scm:8924
 msgid "GoVirt Library"
 msgstr ""
 
-#: gnu/packages/gnome.scm:7743
+#: gnu/packages/gnome.scm:8925
 msgid "GoVirt is a GObject wrapper for the oVirt REST API."
 msgstr ""
 
-#: gnu/packages/gnome.scm:7785
+#: gnu/packages/gnome.scm:8977
 msgid "Weather monitoring for GNOME desktop"
 msgstr ""
 
-#: gnu/packages/gnome.scm:7786
+#: gnu/packages/gnome.scm:8978
 msgid ""
 "GNOME Weather is a small application that allows you to\n"
 "monitor the current weather conditions for your city, or anywhere in the\n"
 "world."
 msgstr ""
 
-#: gnu/packages/gnome.scm:7886
+#: gnu/packages/gnome.scm:9082
 msgid "The GNU desktop environment"
 msgstr ""
 
-#: gnu/packages/gnome.scm:7889
+#: gnu/packages/gnome.scm:9085
 msgid ""
 "GNOME is the graphical desktop for GNU.  It includes a wide variety of\n"
 "applications for browsing the web, editing text and images, creating\n"
 "documents and diagrams, playing media, scanning, and much more."
 msgstr ""
 
-#: gnu/packages/gnome.scm:7941
+#: gnu/packages/gnome.scm:9133
 msgid "Desktop recording program"
 msgstr ""
 
-#: gnu/packages/gnome.scm:7942
+#: gnu/packages/gnome.scm:9134
 msgid ""
 "Byzanz is a simple desktop recording program with a\n"
 "command-line interface.  It can record part or all of an X display for a\n"
 "specified duration and save it as a GIF encoded animated image file."
 msgstr ""
 
-#: gnu/packages/gnome.scm:7969
+#: gnu/packages/gnome.scm:9192
+msgid "Two-factor authentication application built for GNOME"
+msgstr ""
+
+#: gnu/packages/gnome.scm:9194
+msgid ""
+"Authenticator is a two-factor authentication (2FA) application built for\n"
+"the GNOME desktop environment.\n"
+"\n"
+"Features:\n"
+"\n"
+"@itemize\n"
+"@item QR code scanner\n"
+"@item Beautiful UI\n"
+"@item Huge database of more than 560 supported services\n"
+"@item Keep your PIN tokens secure by locking the application with a password\n"
+"@item Automatically fetch an image for services using their favicon\n"
+"@item The possibility to add new services\n"
+"@end itemize"
+msgstr ""
+
+#: gnu/packages/gnome.scm:9230
 msgid "GObject wrapper for libcanberra"
 msgstr ""
 
-#: gnu/packages/gnome.scm:7971
+#: gnu/packages/gnome.scm:9232
 msgid ""
 "GSound is a small library for playing system sounds.  It's designed to be\n"
 "used via GObject Introspection, and is a thin wrapper around the libcanberra C\n"
 "library."
 msgstr ""
 
-#: gnu/packages/gnome.scm:7998
+#: gnu/packages/gnome.scm:9259
 msgid "Library for accessing SkyDrive and Hotmail"
 msgstr ""
 
-#: gnu/packages/gnome.scm:8000
+#: gnu/packages/gnome.scm:9261
 msgid ""
 "Libzapojit is a GLib-based library for accessing online service APIs of\n"
 "Microsoft SkyDrive and Hotmail, using their REST protocols."
 msgstr ""
 
-#: gnu/packages/gnome.scm:8036
+#: gnu/packages/gnome.scm:9304
 msgid "GNOME's clock application"
 msgstr ""
 
-#: gnu/packages/gnome.scm:8038
+#: gnu/packages/gnome.scm:9306
 msgid ""
 "GNOME Clocks is a simple clocks application designed to fit the GNOME\n"
 "desktop.  It supports world clock, stop watch, alarms, and count down timer."
 msgstr ""
 
-#: gnu/packages/gnome.scm:8074
+#: gnu/packages/gnome.scm:9350
 msgid "GNOME's calendar application"
 msgstr ""
 
-#: gnu/packages/gnome.scm:8076
+#: gnu/packages/gnome.scm:9352
 msgid ""
 "GNOME Calendar is a simple calendar application designed to fit the GNOME\n"
 "desktop.  It supports multiple calendars, month, week and year view."
 msgstr ""
 
-#: gnu/packages/gnome.scm:8126
+#: gnu/packages/gnome.scm:9404
 msgid "GNOME's ToDo Application"
 msgstr ""
 
-#: gnu/packages/gnome.scm:8128
+#: gnu/packages/gnome.scm:9406
 msgid ""
 "GNOME To Do is a simplistic personal task manager designed to perfectly\n"
 "fit the GNOME desktop."
 msgstr ""
 
-#: gnu/packages/gnome.scm:8166
+#: gnu/packages/gnome.scm:9444
 msgid "Look up words in dictionary sources"
 msgstr ""
 
-#: gnu/packages/gnome.scm:8168
+#: gnu/packages/gnome.scm:9446
 msgid ""
 "GNOME Dictionary can look for the definition or translation of a word in\n"
 "existing databases over the internet."
 msgstr ""
 
-#: gnu/packages/gnome.scm:8218
+#: gnu/packages/gnome.scm:9502
 msgid "Customize advanced GNOME 3 options"
 msgstr ""
 
-#: gnu/packages/gnome.scm:8221
+#: gnu/packages/gnome.scm:9505
 msgid ""
 "GNOME Tweaks allows adjusting advanced configuration settings in\n"
 "GNOME 3.  This includes things like the fonts used in user interface elements,\n"
@@ -8257,63 +9329,63 @@ msgid ""
 "GNOME Shell appearance and extension, etc."
 msgstr ""
 
-#: gnu/packages/gnome.scm:8248
+#: gnu/packages/gnome.scm:9532
 msgid "Extensions for GNOME Shell"
 msgstr ""
 
-#: gnu/packages/gnome.scm:8249
+#: gnu/packages/gnome.scm:9533
 msgid ""
 "GNOME Shell extensions modify and extend GNOME Shell\n"
 "functionality and behavior."
 msgstr ""
 
-#: gnu/packages/gnome.scm:8288
+#: gnu/packages/gnome.scm:9572
 msgid "A flat GTK+ theme with transparent elements"
 msgstr ""
 
-#: gnu/packages/gnome.scm:8289
+#: gnu/packages/gnome.scm:9573
 msgid ""
 "Arc is a flat theme with transparent elements for GTK 3, GTK\n"
 "2, and GNOME Shell which supports GTK 3 and GTK 2 based desktop environments\n"
 "like GNOME, Unity, Budgie, Pantheon, XFCE, Mate, etc."
 msgstr ""
 
-#: gnu/packages/gnome.scm:8320
+#: gnu/packages/gnome.scm:9604
 msgid "Faba icon theme"
 msgstr ""
 
-#: gnu/packages/gnome.scm:8322
+#: gnu/packages/gnome.scm:9606
 msgid ""
 "Faba is a minimal icon set used as a basis for other themes such as\n"
 "Moka"
 msgstr ""
 
-#: gnu/packages/gnome.scm:8346
+#: gnu/packages/gnome.scm:9630
 msgid "Moka icon theme"
 msgstr ""
 
-#: gnu/packages/gnome.scm:8347
+#: gnu/packages/gnome.scm:9631
 msgid ""
 "Moka is a stylized desktop icon set, designed to be clear,\n"
 "simple and consistent."
 msgstr ""
 
-#: gnu/packages/gnome.scm:8380
+#: gnu/packages/gnome.scm:9664
 msgid "Arc icon theme"
 msgstr ""
 
-#: gnu/packages/gnome.scm:8381
+#: gnu/packages/gnome.scm:9665
 msgid ""
 "The Arc icon theme provides a set of icons matching the\n"
 "style of the Arc GTK theme.  Icons missing from the Arc theme are provided by\n"
 "the Moka icon theme."
 msgstr ""
 
-#: gnu/packages/gnome.scm:8413
+#: gnu/packages/gnome.scm:9708
 msgid "Library to aggregate data about people"
 msgstr ""
 
-#: gnu/packages/gnome.scm:8414
+#: gnu/packages/gnome.scm:9709
 msgid ""
 "Libfolks is a library that aggregates information about people\n"
 "from multiple sources (e.g., Telepathy connection managers for IM contacts,\n"
@@ -8322,31 +9394,31 @@ msgid ""
 "compiled."
 msgstr ""
 
-#: gnu/packages/gnome.scm:8449
+#: gnu/packages/gnome.scm:9750
 msgid "GLib/GObject wrapper for the Facebook API"
 msgstr ""
 
-#: gnu/packages/gnome.scm:8450
+#: gnu/packages/gnome.scm:9751
 msgid ""
 "This library allows you to use the Facebook API from\n"
 "GLib/GObject code."
 msgstr ""
 
-#: gnu/packages/gnome.scm:8478
+#: gnu/packages/gnome.scm:9779
 msgid "GNOME keyboard configuration library"
 msgstr ""
 
-#: gnu/packages/gnome.scm:8480
+#: gnu/packages/gnome.scm:9781
 msgid ""
 "Libgnomekbd is a keyboard configuration library for the GNOME desktop\n"
 "environment, which can notably display keyboard layouts."
 msgstr ""
 
-#: gnu/packages/gnome.scm:8514
+#: gnu/packages/gnome.scm:9815
 msgid "Library for writing single instance applications"
 msgstr ""
 
-#: gnu/packages/gnome.scm:8516
+#: gnu/packages/gnome.scm:9817
 msgid ""
 "Libunique is a library for writing single instance applications.  If you\n"
 "launch a single instance application twice, the second instance will either just\n"
@@ -8356,32 +9428,32 @@ msgid ""
 "handling the startup notification side."
 msgstr ""
 
-#: gnu/packages/gnome.scm:8554
+#: gnu/packages/gnome.scm:9856
 msgid "Desktop calculator"
 msgstr ""
 
-#: gnu/packages/gnome.scm:8556
+#: gnu/packages/gnome.scm:9858
 msgid ""
 "Calculator is an application that solves mathematical equations and\n"
 "is suitable as a default application in a Desktop environment."
 msgstr ""
 
-#: gnu/packages/gnome.scm:8584
+#: gnu/packages/gnome.scm:9886
 msgid "Virtual sticky note"
 msgstr ""
 
-#: gnu/packages/gnome.scm:8586
+#: gnu/packages/gnome.scm:9888
 msgid ""
 "Xpad is a sticky note that strives to be simple, fault tolerant,\n"
 "and customizable.  Xpad consists of independent pad windows, each is\n"
 "basically a text box in which notes can be written."
 msgstr ""
 
-#: gnu/packages/gnome.scm:8657
+#: gnu/packages/gnome.scm:9959
 msgid "Unicode character picker and font browser"
 msgstr ""
 
-#: gnu/packages/gnome.scm:8659
+#: gnu/packages/gnome.scm:9961
 msgid ""
 "This program allows you to browse through all the available Unicode\n"
 "characters and categories for the installed fonts, and to examine their\n"
@@ -8389,22 +9461,22 @@ msgid ""
 "only know by its Unicode name or code point."
 msgstr ""
 
-#: gnu/packages/gnome.scm:8688
+#: gnu/packages/gnome.scm:9990
 msgid "Web development studio"
 msgstr ""
 
-#: gnu/packages/gnome.scm:8690
+#: gnu/packages/gnome.scm:9992
 msgid ""
 "Bluefish is an editor targeted towards programmers and web developers,\n"
 "with many options to write web sites, scripts and other code.\n"
 "Bluefish supports many programming and markup languages."
 msgstr ""
 
-#: gnu/packages/gnome.scm:8728
+#: gnu/packages/gnome.scm:10030
 msgid "Process viewer and system resource monitor for GNOME"
 msgstr ""
 
-#: gnu/packages/gnome.scm:8730
+#: gnu/packages/gnome.scm:10032
 msgid ""
 "GNOME System Monitor is a GNOME process viewer and system monitor with\n"
 "an attractive, easy-to-use interface.  It has features, such as a tree view\n"
@@ -8413,43 +9485,43 @@ msgid ""
 "kill/reinice processes."
 msgstr ""
 
-#: gnu/packages/gnome.scm:8767
+#: gnu/packages/gnome.scm:10070
 msgid "Python client bindings for D-Bus AT-SPI"
 msgstr ""
 
-#: gnu/packages/gnome.scm:8771
+#: gnu/packages/gnome.scm:10074
 msgid ""
 "This package includes a python client library for the AT-SPI D-Bus\n"
 "accessibility infrastructure."
 msgstr ""
 
-#: gnu/packages/gnome.scm:8830
+#: gnu/packages/gnome.scm:10142
 msgid "Screen reader for individuals who are blind or visually impaired"
 msgstr ""
 
-#: gnu/packages/gnome.scm:8833
+#: gnu/packages/gnome.scm:10145
 msgid ""
 "Orca is a screen reader that provides access to the graphical desktop\n"
 "via speech and refreshable braille.  Orca works with applications and toolkits\n"
 "that support the Assistive Technology Service Provider Interface (AT-SPI)."
 msgstr ""
 
-#: gnu/packages/gnome.scm:8888
+#: gnu/packages/gnome.scm:10200
 msgid "GNOME's alternative spell checker"
 msgstr ""
 
-#: gnu/packages/gnome.scm:8890
+#: gnu/packages/gnome.scm:10202
 msgid ""
 "gspell provides a flexible API to add spell-checking to a GTK+\n"
 "application.  It provides a GObject API, spell-checking to text entries and\n"
 "text views, and buttons to choose the language."
 msgstr ""
 
-#: gnu/packages/gnome.scm:8932
+#: gnu/packages/gnome.scm:10244
 msgid "Project management software for the GNOME desktop"
 msgstr ""
 
-#: gnu/packages/gnome.scm:8934
+#: gnu/packages/gnome.scm:10246
 msgid ""
 "GNOME Planner is a project management tool based on the Work Breakdown\n"
 "Structure (WBS).  Its goal is to enable you to easily plan projects.  Based on\n"
@@ -8461,11 +9533,11 @@ msgid ""
 "views can be printed as PDF or PostScript files, or exported to HTML."
 msgstr ""
 
-#: gnu/packages/gnome.scm:9005
+#: gnu/packages/gnome.scm:10318
 msgid "GNOME music playing application"
 msgstr ""
 
-#: gnu/packages/gnome.scm:9007
+#: gnu/packages/gnome.scm:10320
 msgid ""
 "Lollypop is a music player designed to play well with GNOME desktop.\n"
 "Lollypop plays audio formats such as mp3, mp4, ogg and flac and gets information\n"
@@ -8473,31 +9545,42 @@ msgid ""
 "automatically and it can stream songs from online music services and charts."
 msgstr ""
 
-#: gnu/packages/gnome.scm:9034
+#: gnu/packages/gnome.scm:10343
 msgid "Video effects for Cheese and other GNOME applications"
 msgstr ""
 
-#: gnu/packages/gnome.scm:9036
+#: gnu/packages/gnome.scm:10345
 msgid ""
 "A collection of GStreamer video filters and effects to be used in\n"
 "photo-booth-like software, such as Cheese."
 msgstr ""
 
-#: gnu/packages/gnome.scm:9096
+#: gnu/packages/gnome.scm:10419
 msgid "Webcam photo booth software for GNOME"
 msgstr ""
 
-#: gnu/packages/gnome.scm:9098
+#: gnu/packages/gnome.scm:10421
 msgid ""
 "Cheese uses your webcam to take photos and videos.  Cheese can also\n"
 "apply fancy special effects and lets you share the fun with others."
 msgstr ""
 
-#: gnu/packages/gnome.scm:9135
+#: gnu/packages/gnome.scm:10472
+msgid "Password manager for the GNOME desktop"
+msgstr ""
+
+#: gnu/packages/gnome.scm:10474
+msgid ""
+"Password Safe is a password manager which makes use of the KeePass v4\n"
+"format.  It integrates perfectly with the GNOME desktop and provides an easy\n"
+"and uncluttered interface for the management of password databases."
+msgstr ""
+
+#: gnu/packages/gnome.scm:10512
 msgid "Audio music cd ripper"
 msgstr ""
 
-#: gnu/packages/gnome.scm:9136
+#: gnu/packages/gnome.scm:10513
 msgid ""
 "Sound Juicer extracts audio from compact discs and convert it\n"
 "into audio files that a personal computer or digital audio player can play.\n"
@@ -8505,43 +9588,43 @@ msgid ""
 "mp3, Ogg Vorbis and FLAC"
 msgstr ""
 
-#: gnu/packages/gnome.scm:9193
+#: gnu/packages/gnome.scm:10567
 msgid "Convert between audio formats with a graphical interface"
 msgstr ""
 
-#: gnu/packages/gnome.scm:9195
+#: gnu/packages/gnome.scm:10569
 msgid ""
 "SoundConverter supports converting between many audio formats including\n"
 "Opus, Ogg Vorbis, FLAC and more.  It supports parallel conversion, and\n"
 "configurable file renaming. "
 msgstr ""
 
-#: gnu/packages/gnome.scm:9241
+#: gnu/packages/gnome.scm:10615
 msgid "Tool to help prevent repetitive strain injury (RSI)"
 msgstr ""
 
-#: gnu/packages/gnome.scm:9243
+#: gnu/packages/gnome.scm:10617
 msgid ""
 "Workrave is a program that assists in the recovery and prevention of\n"
 "repetitive strain injury (@dfn{RSI}).  The program frequently alerts you to take\n"
 "micro-pauses and rest breaks, and restricts you to your daily limit."
 msgstr ""
 
-#: gnu/packages/gnome.scm:9283
+#: gnu/packages/gnome.scm:10657
 msgid "GNOME hexadecimal editor"
 msgstr ""
 
-#: gnu/packages/gnome.scm:9284
+#: gnu/packages/gnome.scm:10658
 msgid ""
 "The GHex program can view and edit files in two ways:\n"
 "hexadecimal or ASCII.  It is useful for editing binary files in general."
 msgstr ""
 
-#: gnu/packages/gnome.scm:9322
+#: gnu/packages/gnome.scm:10696
 msgid "Companion library to GObject and Gtk+"
 msgstr ""
 
-#: gnu/packages/gnome.scm:9323
+#: gnu/packages/gnome.scm:10697
 msgid ""
 "The libdazzle library is a companion library to GObject and\n"
 "Gtk+.  It provides various features that the authors wish were in the\n"
@@ -8550,64 +9633,64 @@ msgid ""
 "generic enough to work for everyone."
 msgstr ""
 
-#: gnu/packages/gnome.scm:9393
+#: gnu/packages/gnome.scm:10766
 msgid "Manage your email, contacts and schedule"
 msgstr ""
 
-#: gnu/packages/gnome.scm:9394
+#: gnu/packages/gnome.scm:10767
 msgid ""
 "Evolution is a personal information management application\n"
 "that provides integrated mail, calendaring and address book\n"
 "functionality."
 msgstr ""
 
-#: gnu/packages/gnome.scm:9444
+#: gnu/packages/gnome.scm:10817
 msgid "GNOME image viewer and browser"
 msgstr ""
 
-#: gnu/packages/gnome.scm:9445
+#: gnu/packages/gnome.scm:10818
 msgid ""
 "GThumb is an image viewer, browser, organizer, editor and\n"
 "advanced image management tool"
 msgstr ""
 
-#: gnu/packages/gnome.scm:9496
+#: gnu/packages/gnome.scm:10869
 msgid "Store and run multiple GNOME terminals in one window"
 msgstr ""
 
-#: gnu/packages/gnome.scm:9498
+#: gnu/packages/gnome.scm:10871
 msgid ""
 "Terminator allows you to run multiple GNOME terminals in a grid and\n"
 "+tabs, and it supports drag and drop re-ordering of terminals."
 msgstr ""
 
-#: gnu/packages/gnome.scm:9542
+#: gnu/packages/gnome.scm:10917
 msgid "Library full of GTK+ widgets for mobile phones"
 msgstr ""
 
-#: gnu/packages/gnome.scm:9543
+#: gnu/packages/gnome.scm:10918
 msgid ""
 "The aim of the handy library is to help with developing user\n"
 "interfaces for mobile devices using GTK+.  It provides responsive GTK+ widgets\n"
 "for usage on small and big screens."
 msgstr ""
 
-#: gnu/packages/gnome.scm:9574
+#: gnu/packages/gnome.scm:10967
 msgid "GLib wrapper around the libgit2 Git access library"
 msgstr ""
 
-#: gnu/packages/gnome.scm:9575
+#: gnu/packages/gnome.scm:10968
 msgid ""
 "libgit2-glib is a GLib wrapper library around the libgit2 Git\n"
 "access library.  It only implements the core plumbing functions, not really the\n"
 "higher level porcelain stuff."
 msgstr ""
 
-#: gnu/packages/gnome.scm:9638
+#: gnu/packages/gnome.scm:11031
 msgid "Graphical user interface for git"
 msgstr ""
 
-#: gnu/packages/gnome.scm:9640
+#: gnu/packages/gnome.scm:11033
 msgid ""
 "gitg is a graphical user interface for git.  It aims at being a small,\n"
 "fast and convenient tool to visualize the history of git repositories.\n"
@@ -8615,33 +9698,33 @@ msgid ""
 "repository and commit your work."
 msgstr ""
 
-#: gnu/packages/gnome.scm:9677
+#: gnu/packages/gnome.scm:11070
 msgid "File alteration monitor"
 msgstr ""
 
-#: gnu/packages/gnome.scm:9679
+#: gnu/packages/gnome.scm:11072
 msgid ""
 "Gamin is a file and directory monitoring system defined to be a subset\n"
 "of the FAM (File Alteration Monitor) system.  This is a service provided by a\n"
-"library which allows to detect when a file or a directory has been modified."
+"library which detects when a file or a directory has been modified."
 msgstr ""
 
-#: gnu/packages/gnome.scm:9714
+#: gnu/packages/gnome.scm:11107
 msgid "Mahjongg tile-matching game"
 msgstr ""
 
-#: gnu/packages/gnome.scm:9715
+#: gnu/packages/gnome.scm:11108
 msgid ""
 "GNOME Mahjongg is a game based on the classic Chinese\n"
 "tile-matching game Mahjong.  It features multiple board layouts, tile themes,\n"
 "and a high score table."
 msgstr ""
 
-#: gnu/packages/gnome.scm:9752
+#: gnu/packages/gnome.scm:11145
 msgid "GNOME Extra Themes"
 msgstr ""
 
-#: gnu/packages/gnome.scm:9753
+#: gnu/packages/gnome.scm:11146
 msgid ""
 "This package provides themes and related elements that don't\n"
 "really fit in other upstream packages.  It offers legacy support for GTK+ 2\n"
@@ -8649,31 +9732,44 @@ msgid ""
 "index files needed for Adwaita to be used outside of GNOME."
 msgstr ""
 
-#: gnu/packages/gnome.scm:9807
+#: gnu/packages/gnome.scm:11183
+msgid "Note-taking application for the GNOME desktop"
+msgstr ""
+
+#: gnu/packages/gnome.scm:11185
+msgid ""
+"Gnote is a note-taking application written for the GNOME desktop\n"
+"environment."
+msgstr ""
+
+#: gnu/packages/gnome.scm:11238
 msgid "Simple IRC Client"
 msgstr ""
 
-#: gnu/packages/gnome.scm:9809
+#: gnu/packages/gnome.scm:11240
 msgid ""
 "Polari is a simple Internet Relay Chat (IRC) client that is designed to\n"
 "integrate seamlessly with the GNOME desktop."
 msgstr ""
 
-#: gnu/packages/gnome.scm:9860
+#: gnu/packages/gnome.scm:11292
 msgid "View, access, and manage remote and virtual systems"
 msgstr ""
 
-#: gnu/packages/gnome.scm:9861
+#: gnu/packages/gnome.scm:11293
 msgid ""
 "GNOME Boxes is a simple application to view, access, and\n"
-"manage remote and virtual systems."
+"manage remote and virtual systems.  Note that this application requires the\n"
+"@code{libvirt} and @code{virtlog} daemons to run.  Use the command\n"
+"@command{info '(guix) Virtualization Services'} to learn how to configure\n"
+"these services on the Guix System."
 msgstr ""
 
-#: gnu/packages/gnome.scm:9938
+#: gnu/packages/gnome.scm:11373
 msgid "GNOME email application built around conversations"
 msgstr ""
 
-#: gnu/packages/gnome.scm:9940
+#: gnu/packages/gnome.scm:11375
 msgid ""
 "Geary collects related messages together into conversations,\n"
 "making it easy to find and follow your discussions.  Full-text and keyword\n"
@@ -8685,22 +9781,82 @@ msgid ""
 "to."
 msgstr ""
 
-#: gnu/packages/gnome.scm:10010
+#: gnu/packages/gnome.scm:11418
+msgid "Program for creating labels and business cards"
+msgstr ""
+
+#: gnu/packages/gnome.scm:11420
+msgid ""
+"gLabels is a program for creating labels and business cards.  It is\n"
+"designed to work with various laser/ink-jet peel-off label and business\n"
+"card sheets that you’ll find at most office supply stores."
+msgstr ""
+
+#: gnu/packages/gnome.scm:11460
+msgid "LaTeX editor for the GNOME desktop"
+msgstr ""
+
+#: gnu/packages/gnome.scm:11462
+msgid ""
+"GNOME LaTeX is a LaTeX editor for the GNOME desktop.  It has features\n"
+"such as build tools, completion of LaTeX commands, structure navigation,\n"
+"symbol tables, document templates, project management, spell-checking, menus\n"
+"and toolbars."
+msgstr ""
+
+#: gnu/packages/gnome.scm:11519
+msgid "DBus daemon and utility for configuring gaming mice"
+msgstr ""
+
+#: gnu/packages/gnome.scm:11520
+msgid ""
+"libratbag provides @command{ratbagd}, a DBus daemon to\n"
+"configure input devices, mainly gaming mice.  The daemon provides a generic\n"
+"way to access the various features exposed by these mice and abstracts away\n"
+"hardware-specific and kernel-specific quirks.  There is also the\n"
+"@command{ratbagctl} command line interface for configuring devices.\n"
+"\n"
+"libratbag currently supports devices from Logitech, Etekcity, GSkill, Roccat,\n"
+"Steelseries.\n"
+"\n"
+"The ratbagd DBus service can be enabled by adding the following service to\n"
+"your operating-system definition:\n"
+"\n"
+"  (simple-service 'ratbagd dbus-root-service-type (list libratbag))"
+msgstr ""
+
+#: gnu/packages/gnome.scm:11588
+msgid "Configure bindings and LEDs on gaming mice"
+msgstr ""
+
+#: gnu/packages/gnome.scm:11589
+msgid ""
+"Piper is a GTK+ application for configuring gaming mice with\n"
+"onboard configuration for key bindings via libratbag.  Piper requires\n"
+"a @command{ratbagd} daemon running with root privileges.  It can be run\n"
+"manually as root, but is preferably configured as a DBus service that can\n"
+"launch on demand.  This can be configured by enabling the following service,\n"
+"provided there is a DBus service present:\n"
+"\n"
+"  (simple-service 'ratbagd dbus-root-service-type (list libratbag))"
+msgstr ""
+
+#: gnu/packages/gnome.scm:11646
 msgid "GNOME audio player for transcription"
 msgstr ""
 
-#: gnu/packages/gnome.scm:10011
+#: gnu/packages/gnome.scm:11647
 msgid ""
 "Parlatype is an audio player for the GNOME desktop\n"
 "environment.  Its main purpose is the manual transcription of spoken\n"
 "audio files."
 msgstr ""
 
-#: gnu/packages/gnome.scm:10038
+#: gnu/packages/gnome.scm:11674
 msgid "JSON-RPC library for GLib"
 msgstr ""
 
-#: gnu/packages/gnome.scm:10039
+#: gnu/packages/gnome.scm:11675
 msgid ""
 "Jsonrpc-GLib is a library to communicate with JSON-RPC based\n"
 "peers in either a synchronous or asynchronous fashion.  It also allows\n"
@@ -8709,57 +9865,138 @@ msgid ""
 "host to avoid parser overhead and memory-allocator fragmentation."
 msgstr ""
 
-#: gnu/packages/gnuzilla.scm:144
+#: gnu/packages/gnome.scm:11708
+msgid "Haptic/visual/audio feedback via DBus"
+msgstr ""
+
+#: gnu/packages/gnome.scm:11709
+msgid ""
+"Feedbackd provides a DBus daemon to act on events to provide\n"
+"haptic, visual and audio feedback.  It offers the libfeedbackd library and\n"
+"GObject introspection bindings."
+msgstr ""
+
+#: gnu/packages/gnome.scm:11757
+msgid "System-wide performance profiler for GNU/Linux"
+msgstr ""
+
+#: gnu/packages/gnome.scm:11759
+msgid ""
+"Sysprof performs detailed, accurate, and fast CPU profiling of an entire\n"
+"GNU/Linux system including the kernel and all user-space applications.  This\n"
+"helps find the function(s) in which a program spends most of its time.\n"
+"\n"
+"It uses the kernel's built-in @code{ptrace} feature and handles shared\n"
+"libraries.  Applications do not need to be recompiled--or even restarted."
+msgstr ""
+
+#: gnu/packages/gnome.scm:11836
+msgid "Toolsmith for GNOME-based applications"
+msgstr ""
+
+#: gnu/packages/gnome.scm:11837
+msgid ""
+"Builder aims to be an integrated development\n"
+"environment (IDE) for writing GNOME-based software.  It features fuzzy search,\n"
+"auto-completion, a mini code map, documentation browsing, Git integration, an\n"
+"integrated profiler via Sysprof, debugging support, and more."
+msgstr ""
+
+#: gnu/packages/gnome.scm:11905
+msgid "Manga reader for GNOME"
+msgstr ""
+
+#: gnu/packages/gnome.scm:11906
+msgid ""
+"Komikku is an online/offline manga reader for GNOME,\n"
+"developed with the aim of being used with the Librem 5 phone."
+msgstr ""
+
+#: gnu/packages/gnome.scm:11981
+msgid "Uniform data access"
+msgstr ""
+
+#: gnu/packages/gnome.scm:11983
+msgid ""
+"GNU Data Access (GDA) is an attempt to provide uniform access to\n"
+"different kinds of data sources (databases, information servers, mail spools,\n"
+"etc).  It is a complete architecture that provides all you need to access\n"
+"your data."
+msgstr ""
+
+#: gnu/packages/gnome.scm:12030
+msgid "Translation making program"
+msgstr ""
+
+#: gnu/packages/gnome.scm:12032
+msgid ""
+"gtranslator is a quite comfortable gettext po/po.gz/(g)mo files editor\n"
+"for the GNOME 3.x platform with many features.  It aims to be a very complete\n"
+"editing environment for translation issues within the GNU gettext/GNOME desktop\n"
+"world."
+msgstr ""
+
+#: gnu/packages/gnuzilla.scm:146
 msgid "Mozilla javascript engine"
 msgstr ""
 
-#: gnu/packages/gnuzilla.scm:145
+#: gnu/packages/gnuzilla.scm:147
 msgid ""
 "SpiderMonkey is Mozilla's JavaScript engine written\n"
 "in C/C++."
 msgstr ""
 
-#: gnu/packages/gnuzilla.scm:1130
+#: gnu/packages/gnuzilla.scm:1148
 msgid "Entirely free browser derived from Mozilla Firefox"
 msgstr ""
 
-#: gnu/packages/gnuzilla.scm:1132
+#: gnu/packages/gnuzilla.scm:1150
 msgid ""
 "IceCat is the GNU version of the Firefox browser.  It is entirely free\n"
 "software, which does not recommend non-free plugins and addons.  It also\n"
 "features built-in privacy-protecting features.\n"
 "\n"
-"WARNING: IceCat 68 has not yet been released by the upstream IceCat project.\n"
+"WARNING: IceCat 78 has not yet been released by the upstream IceCat project.\n"
 "This is a preview release, and does not currently meet the privacy-respecting\n"
 "standards of the IceCat project."
 msgstr ""
 
-#: gnu/packages/gnuzilla.scm:1180
+#: gnu/packages/gnuzilla.scm:1473
+msgid "Rebranded Mozilla Thunderbird email client"
+msgstr ""
+
+#: gnu/packages/gnuzilla.scm:1475
+msgid ""
+"This package provides an email client built based on Mozilla\n"
+"Thunderbird.  It supports email, news feeds, chat, calendar and contacts."
+msgstr ""
+
+#: gnu/packages/gnuzilla.scm:1514
 msgid "Tool to extract passwords from Mozilla profiles"
 msgstr ""
 
-#: gnu/packages/gnuzilla.scm:1181
+#: gnu/packages/gnuzilla.scm:1515
 msgid ""
 "Firefox Decrypt is a tool to extract passwords from\n"
 "Mozilla (Firefox, Waterfox, Thunderbird, SeaMonkey) profiles."
 msgstr ""
 
-#: gnu/packages/gtk.scm:111
+#: gnu/packages/gtk.scm:114
 msgid "GNOME accessibility toolkit"
 msgstr ""
 
-#: gnu/packages/gtk.scm:113
+#: gnu/packages/gtk.scm:116
 msgid ""
 "ATK provides the set of accessibility interfaces that are implemented\n"
 "by other toolkits and applications.  Using the ATK interfaces, accessibility\n"
 "tools have full access to view and control running applications."
 msgstr ""
 
-#: gnu/packages/gtk.scm:152
+#: gnu/packages/gtk.scm:157
 msgid "2D graphics library"
 msgstr ""
 
-#: gnu/packages/gtk.scm:154
+#: gnu/packages/gtk.scm:159
 msgid ""
 "Cairo is a 2D graphics library with support for multiple output devices.\n"
 "Currently supported output targets include the X Window System (via both\n"
@@ -8777,56 +10014,77 @@ msgid ""
 "affine transformation (scale, rotation, shear, etc.)."
 msgstr ""
 
-#: gnu/packages/gtk.scm:182
+#: gnu/packages/gtk.scm:193
 msgid "2D graphics library (with X11 support)"
 msgstr ""
 
-#: gnu/packages/gtk.scm:217
+#: gnu/packages/gtk.scm:228
 msgid "OpenType text shaping engine"
 msgstr ""
 
-#: gnu/packages/gtk.scm:219
+#: gnu/packages/gtk.scm:230
 msgid "HarfBuzz is an OpenType text shaping engine."
 msgstr ""
 
-#: gnu/packages/gtk.scm:255
+#: gnu/packages/gtk.scm:258
+msgid "Double-Array Trie Library"
+msgstr ""
+
+#: gnu/packages/gtk.scm:259
+msgid ""
+"Libdatrie is an implementation of double-array structure for\n"
+"representing trie.  Trie is a kind of digital search tree."
+msgstr ""
+
+#: gnu/packages/gtk.scm:289
+msgid "Thai language support library"
+msgstr ""
+
+#: gnu/packages/gtk.scm:290
+msgid ""
+"LibThai is a set of Thai language support routines aimed to\n"
+"ease developers’ tasks to incorporate Thai language support in their\n"
+"applications."
+msgstr ""
+
+#: gnu/packages/gtk.scm:339
 msgid "GNOME text and font handling library"
 msgstr ""
 
-#: gnu/packages/gtk.scm:257
+#: gnu/packages/gtk.scm:341
 msgid ""
 "Pango is the core text and font handling library used in GNOME\n"
 "applications.  It has extensive support for the different writing systems\n"
 "used throughout the world."
 msgstr ""
 
-#: gnu/packages/gtk.scm:283
+#: gnu/packages/gtk.scm:382
 msgid "Obsolete pango functions"
 msgstr ""
 
-#: gnu/packages/gtk.scm:284
+#: gnu/packages/gtk.scm:383
 msgid ""
 "Pangox was a X backend to pango.  It is now obsolete and no\n"
 "longer provided by recent pango releases.  pangox-compat provides the\n"
 "functions which were removed."
 msgstr ""
 
-#: gnu/packages/gtk.scm:320
+#: gnu/packages/gtk.scm:418
 msgid "GTK+ widget for interactive graph-like environments"
 msgstr ""
 
-#: gnu/packages/gtk.scm:322
+#: gnu/packages/gtk.scm:420
 msgid ""
 "Ganv is an interactive GTK+ widget for interactive “boxes and lines” or\n"
 "graph-like environments, e.g. modular synths or finite state machine\n"
 "diagrams."
 msgstr ""
 
-#: gnu/packages/gtk.scm:394
+#: gnu/packages/gtk.scm:474
 msgid "Widget that extends the standard GTK+ 2.x 'GtkTextView' widget"
 msgstr ""
 
-#: gnu/packages/gtk.scm:396
+#: gnu/packages/gtk.scm:476
 msgid ""
 "GtkSourceView is a portable C library that extends the standard GTK+\n"
 "framework for multiline text editing with support for configurable syntax\n"
@@ -8834,56 +10092,56 @@ msgid ""
 "printing and other features typical of a source code editor."
 msgstr ""
 
-#: gnu/packages/gtk.scm:445
+#: gnu/packages/gtk.scm:525
 msgid "GNOME source code widget"
 msgstr ""
 
-#: gnu/packages/gtk.scm:446
+#: gnu/packages/gtk.scm:526
 msgid ""
 "GtkSourceView is a text widget that extends the standard\n"
 "GTK+ text widget GtkTextView.  It improves GtkTextView by implementing syntax\n"
 "highlighting and other features typical of a source code editor."
 msgstr ""
 
-#: gnu/packages/gtk.scm:517
+#: gnu/packages/gtk.scm:597
 msgid "GNOME image loading and manipulation library"
 msgstr ""
 
-#: gnu/packages/gtk.scm:519
+#: gnu/packages/gtk.scm:599
 msgid ""
 "GdkPixbuf is a library for image loading and manipulation developed\n"
 "in the GNOME project."
 msgstr ""
 
-#: gnu/packages/gtk.scm:553
+#: gnu/packages/gtk.scm:633
 msgid "GNOME image loading and manipulation library, with SVG support"
 msgstr ""
 
-#: gnu/packages/gtk.scm:617
+#: gnu/packages/gtk.scm:697
 msgid "Assistive Technology Service Provider Interface, core components"
 msgstr ""
 
-#: gnu/packages/gtk.scm:619
+#: gnu/packages/gtk.scm:699
 msgid ""
 "The Assistive Technology Service Provider Interface, core components,\n"
 "is part of the GNOME accessibility project."
 msgstr ""
 
-#: gnu/packages/gtk.scm:654
+#: gnu/packages/gtk.scm:754
 msgid "Assistive Technology Service Provider Interface, ATK bindings"
 msgstr ""
 
-#: gnu/packages/gtk.scm:656
+#: gnu/packages/gtk.scm:756
 msgid ""
 "The Assistive Technology Service Provider Interface\n"
 "is part of the GNOME accessibility project."
 msgstr ""
 
-#: gnu/packages/gtk.scm:716
+#: gnu/packages/gtk.scm:821
 msgid "Cross-platform toolkit for creating graphical user interfaces"
 msgstr ""
 
-#: gnu/packages/gtk.scm:718
+#: gnu/packages/gtk.scm:823
 msgid ""
 "GTK+, or the GIMP Toolkit, is a multi-platform toolkit for creating\n"
 "graphical user interfaces.  Offering a complete set of widgets, GTK+ is\n"
@@ -8891,11 +10149,11 @@ msgid ""
 "application suites."
 msgstr ""
 
-#: gnu/packages/gtk.scm:857
+#: gnu/packages/gtk.scm:966
 msgid "Cairo bindings for GNU Guile"
 msgstr ""
 
-#: gnu/packages/gtk.scm:859
+#: gnu/packages/gtk.scm:968
 msgid ""
 "Guile-Cairo wraps the Cairo graphics library for Guile Scheme.\n"
 "Guile-Cairo is complete, wrapping almost all of the Cairo API.  It is API\n"
@@ -8905,21 +10163,21 @@ msgid ""
 "exceptions, macros, and a dynamic programming environment."
 msgstr ""
 
-#: gnu/packages/gtk.scm:923
+#: gnu/packages/gtk.scm:1029
 msgid "Render SVG images using Cairo from Guile"
 msgstr ""
 
-#: gnu/packages/gtk.scm:925
+#: gnu/packages/gtk.scm:1031
 msgid ""
 "Guile-RSVG wraps the RSVG library for Guile, allowing you to render SVG\n"
 "images onto Cairo surfaces."
 msgstr ""
 
-#: gnu/packages/gtk.scm:992
+#: gnu/packages/gtk.scm:1101
 msgid "Create SVG or PDF presentations in Guile"
 msgstr ""
 
-#: gnu/packages/gtk.scm:994
+#: gnu/packages/gtk.scm:1103
 msgid ""
 "Guile-Present defines a declarative vocabulary for presentations,\n"
 "together with tools to render presentation documents as SVG or PDF.\n"
@@ -8928,51 +10186,51 @@ msgid ""
 "documents."
 msgstr ""
 
-#: gnu/packages/gtk.scm:1058
+#: gnu/packages/gtk.scm:1170
 msgid "Guile interface for GTK+ programming for GNOME"
 msgstr ""
 
-#: gnu/packages/gtk.scm:1060
+#: gnu/packages/gtk.scm:1172
 msgid ""
 "Includes guile-clutter, guile-gnome-gstreamer,\n"
 "guile-gnome-platform (GNOME developer libraries), and guile-gtksourceview."
 msgstr ""
 
-#: gnu/packages/gtk.scm:1093
+#: gnu/packages/gtk.scm:1205
 msgid "C++ bindings to the Cairo 2D graphics library"
 msgstr ""
 
-#: gnu/packages/gtk.scm:1095
+#: gnu/packages/gtk.scm:1207
 msgid ""
 "Cairomm provides a C++ programming interface to the Cairo 2D graphics\n"
 "library."
 msgstr ""
 
-#: gnu/packages/gtk.scm:1119
+#: gnu/packages/gtk.scm:1248
 msgid "C++ interface to the Pango text rendering library"
 msgstr ""
 
-#: gnu/packages/gtk.scm:1121
+#: gnu/packages/gtk.scm:1250
 msgid ""
 "Pangomm provides a C++ programming interface to the Pango text rendering\n"
 "library."
 msgstr ""
 
-#: gnu/packages/gtk.scm:1142
+#: gnu/packages/gtk.scm:1290
 msgid "C++ interface to the ATK accessibility library"
 msgstr ""
 
-#: gnu/packages/gtk.scm:1144
+#: gnu/packages/gtk.scm:1292
 msgid ""
 "ATKmm provides a C++ programming interface to the ATK accessibility\n"
 "toolkit."
 msgstr ""
 
-#: gnu/packages/gtk.scm:1185
+#: gnu/packages/gtk.scm:1333
 msgid "C++ interface to the GTK+ graphical user interface library"
 msgstr ""
 
-#: gnu/packages/gtk.scm:1187
+#: gnu/packages/gtk.scm:1335
 msgid ""
 "gtkmm is the official C++ interface for the popular GUI library GTK+.\n"
 "Highlights include typesafe callbacks, and a comprehensive set of widgets that\n"
@@ -8981,11 +10239,11 @@ msgid ""
 "extensive documentation, including API reference and a tutorial."
 msgstr ""
 
-#: gnu/packages/gtk.scm:1235
+#: gnu/packages/gtk.scm:1383
 msgid "C++ interface to the GTK+ 'GtkTextView' widget"
 msgstr ""
 
-#: gnu/packages/gtk.scm:1237
+#: gnu/packages/gtk.scm:1385
 msgid ""
 "gtksourceviewmm is a portable C++ library that extends the standard GTK+\n"
 "framework for multiline text editing with support for configurable syntax\n"
@@ -8993,41 +10251,41 @@ msgid ""
 "printing and other features typical of a source code editor."
 msgstr ""
 
-#: gnu/packages/gtk.scm:1267
+#: gnu/packages/gtk.scm:1415
 msgid "Python bindings for cairo"
 msgstr ""
 
-#: gnu/packages/gtk.scm:1269
+#: gnu/packages/gtk.scm:1417
 msgid "Pycairo is a set of Python bindings for the Cairo graphics library."
 msgstr ""
 
-#: gnu/packages/gtk.scm:1342
+#: gnu/packages/gtk.scm:1502
 msgid "Python bindings for GTK+"
 msgstr ""
 
-#: gnu/packages/gtk.scm:1344
+#: gnu/packages/gtk.scm:1504
 msgid ""
 "PyGTK allows you to write full featured GTK programs in Python.  It is\n"
 "targeted at GTK 2.x, and can be used in conjunction with gnome-python to\n"
 "write GNOME applications."
 msgstr ""
 
-#: gnu/packages/gtk.scm:1368
+#: gnu/packages/gtk.scm:1528
 msgid "Perl interface to the cairo 2d vector graphics library"
 msgstr ""
 
-#: gnu/packages/gtk.scm:1369
+#: gnu/packages/gtk.scm:1529
 msgid ""
 "Cairo provides Perl bindings for the vector graphics library\n"
 "cairo.  It supports multiple output targets, including PNG, PDF and SVG.  Cairo\n"
 "produces identical output on all those targets."
 msgstr ""
 
-#: gnu/packages/gtk.scm:1404
+#: gnu/packages/gtk.scm:1564
 msgid "Perl interface to the 2.x series of the Gimp Toolkit library"
 msgstr ""
 
-#: gnu/packages/gtk.scm:1405
+#: gnu/packages/gtk.scm:1565
 msgid ""
 "Perl bindings to the 2.x series of the Gtk+ widget set.\n"
 "This module allows you to write graphical user interfaces in a Perlish and\n"
@@ -9035,11 +10293,11 @@ msgid ""
 "yet remaining very close in spirit to original API."
 msgstr ""
 
-#: gnu/packages/gtk.scm:1432
+#: gnu/packages/gtk.scm:1592
 msgid "Layout and render international text"
 msgstr ""
 
-#: gnu/packages/gtk.scm:1433
+#: gnu/packages/gtk.scm:1593
 msgid ""
 "Pango is a library for laying out and rendering text, with an\n"
 "emphasis on internationalization.  Pango can be used anywhere that text layout\n"
@@ -9056,11 +10314,11 @@ msgid ""
 "and routines to assist in editing internationalized text."
 msgstr ""
 
-#: gnu/packages/gtk.scm:1487
+#: gnu/packages/gtk.scm:1647
 msgid "Library for minimalistic gtk+3 user interfaces"
 msgstr ""
 
-#: gnu/packages/gtk.scm:1488
+#: gnu/packages/gtk.scm:1648
 msgid ""
 "Girara is a library that implements a user interface that\n"
 "focuses on simplicity and minimalism.  Currently based on GTK+, a\n"
@@ -9071,121 +10329,120 @@ msgid ""
 "information."
 msgstr ""
 
-#: gnu/packages/gtk.scm:1587
+#: gnu/packages/gtk.scm:1747
 msgid "Documentation generator from C source code"
 msgstr ""
 
-#: gnu/packages/gtk.scm:1589
+#: gnu/packages/gtk.scm:1749
 msgid ""
 "GTK-Doc generates API documentation from comments added to C code.  It is\n"
 "typically used to document the public API of GTK+ and GNOME libraries, but it\n"
 "can also be used to document application code."
 msgstr ""
 
-#: gnu/packages/gtk.scm:1617
+#: gnu/packages/gtk.scm:1777
 msgid "Theming engines for GTK+ 2.x"
 msgstr ""
 
-#: gnu/packages/gtk.scm:1619
+#: gnu/packages/gtk.scm:1779
 msgid ""
 "This package contains the standard GTK+ 2.x theming engines including\n"
 "Clearlooks, Crux, High Contrast, Industrial, LighthouseBlue, Metal, Mist,\n"
 "Redmond95 and ThinIce."
 msgstr ""
 
-#: gnu/packages/gtk.scm:1647
+#: gnu/packages/gtk.scm:1807
 msgid "Cairo-based theming engine for GTK+ 2.x"
 msgstr ""
 
-#: gnu/packages/gtk.scm:1649
+#: gnu/packages/gtk.scm:1809
 msgid ""
 "Murrine is a cairo-based GTK+ theming engine.  It is named after the\n"
 "glass artworks done by Venicians glass blowers."
 msgstr ""
 
-#: gnu/packages/gtk.scm:1676
+#: gnu/packages/gtk.scm:1836
 msgid "Spell-checking addon for GTK's TextView widget"
 msgstr ""
 
-#: gnu/packages/gtk.scm:1678
+#: gnu/packages/gtk.scm:1838
 msgid ""
 "GtkSpell provides word-processor-style highlighting and replacement of\n"
 "misspelled words in a GtkTextView widget."
 msgstr ""
 
-#: gnu/packages/gtk.scm:1704
+#: gnu/packages/gtk.scm:1864
 msgid "Lightweight GTK+ clipboard manager"
 msgstr ""
 
-#: gnu/packages/gtk.scm:1706
+#: gnu/packages/gtk.scm:1866
 msgid ""
 "ClipIt is a clipboard manager with features such as a history, search\n"
 "thereof, global hotkeys and clipboard item actions.  It was forked from\n"
 "Parcellite and adds bugfixes and features."
 msgstr ""
 
-#: gnu/packages/gtk.scm:1738
+#: gnu/packages/gtk.scm:1899
 msgid "Thin layer of graphic data types"
 msgstr ""
 
-#: gnu/packages/gtk.scm:1739
+#: gnu/packages/gtk.scm:1900
 msgid ""
-"This library provides graphic types and their relative API;\n"
-"it does not deal with windowing system surfaces, drawing, scene graphs, or\n"
-"input."
+"Graphene provides graphic types and their relative API; it\n"
+"does not deal with windowing system surfaces, drawing, scene graphs, or input."
 msgstr ""
 
-#: gnu/packages/gtk.scm:1764
+#: gnu/packages/gtk.scm:1925
 msgid "Gtk+ widget for dealing with 2-D tabular data"
 msgstr ""
 
-#: gnu/packages/gtk.scm:1766
+#: gnu/packages/gtk.scm:1927
 msgid ""
 "GNU Spread Sheet Widget is a library for Gtk+ which provides a widget for\n"
 "viewing and manipulating 2 dimensional tabular data in a manner similar to many\n"
 "popular spread sheet programs."
 msgstr ""
 
-#: gnu/packages/gtk.scm:1794
+#: gnu/packages/gtk.scm:1955
 msgid "System tray volume applet"
 msgstr ""
 
-#: gnu/packages/gtk.scm:1796
+#: gnu/packages/gtk.scm:1957
 msgid ""
 "Volume Icon is a volume indicator and control applet for @acronym{the\n"
 "Advanced Linux Sound Architecture, ALSA}.  It sits in the system tray,\n"
 "independent of your desktop environment, and supports global key bindings."
 msgstr ""
 
-#: gnu/packages/gtk.scm:1839
+#: gnu/packages/gtk.scm:2000
 msgid "GTK+ dialog boxes for shell scripts"
 msgstr ""
 
-#: gnu/packages/gtk.scm:1841
+#: gnu/packages/gtk.scm:2002
 msgid ""
 "This program allows you to display GTK+ dialog boxes from command line or\n"
 "shell scripts.  Example of how to use @code{yad} can be consulted at\n"
 "@url{https://sourceforge.net/p/yad-dialog/wiki/browse_pages/}."
 msgstr ""
 
-#: gnu/packages/gtk.scm:1890
+#: gnu/packages/gtk.scm:2059
 msgid "Library for passing menus over DBus"
 msgstr ""
 
-#: gnu/packages/gtk.scm:1891
+#: gnu/packages/gtk.scm:2060
 msgid ""
 "@code{libdbusmenu} passes a menu structure across DBus so\n"
 "that a program can create a menu simply without worrying about how it is\n"
 "displayed on the other side of the bus."
 msgstr ""
 
-#: gnu/packages/gtk.scm:1916
+#: gnu/packages/gtk.scm:2085
 msgid ""
 "Library to create Wayland desktop components using the Layer\n"
 "Shell protocol"
 msgstr ""
 
-#: gnu/packages/gtk.scm:1918
+#: gnu/packages/gtk.scm:2087
 msgid ""
 "Layer Shell is a Wayland protocol for desktop shell\n"
 "components, such as panels, notifications and wallpapers.  It can be used to\n"
@@ -9194,21 +10451,35 @@ msgid ""
 "popovers."
 msgstr ""
 
-#: gnu/packages/gtk.scm:1965
+#: gnu/packages/gtk.scm:2134
 msgid "Canvas widget for GTK+"
 msgstr ""
 
-#: gnu/packages/gtk.scm:1966
+#: gnu/packages/gtk.scm:2135
 msgid ""
 "GooCanvas is a canvas widget for GTK+ that uses the cairo 2D\n"
 "library for drawing."
 msgstr ""
 
-#: gnu/packages/guile.scm:126 gnu/packages/guile.scm:207
+#: gnu/packages/gtk.scm:2199
+msgid "Spreadsheet widget for GTK+"
+msgstr ""
+
+#: gnu/packages/gtk.scm:2200
+msgid ""
+"GtkSheet is a matrix widget for GTK+.  It consists of an\n"
+"scrollable grid of cells where you can allocate text.  Cell contents can be\n"
+"edited interactively through a specially designed entry, GtkItemEntry.  It is\n"
+"also a container subclass, allowing you to display buttons, images and any\n"
+"other widget in it.  You can also set many attributes such as border,\n"
+"foreground and background colors, text justification and more."
+msgstr ""
+
+#: gnu/packages/guile.scm:127 gnu/packages/guile.scm:222
 msgid "Scheme implementation intended especially for extensions"
 msgstr "Scheme-Implementierung, die speziell für Erweiterungen gedacht ist"
 
-#: gnu/packages/guile.scm:128 gnu/packages/guile.scm:209
+#: gnu/packages/guile.scm:129 gnu/packages/guile.scm:224
 msgid ""
 "Guile is the GNU Ubiquitous Intelligent Language for Extensions, the\n"
 "official extension language of the GNU system.  It is an implementation of\n"
@@ -9217,22 +10488,22 @@ msgid ""
 "without requiring the source code to be rewritten."
 msgstr ""
 
-#: gnu/packages/guile.scm:363
+#: gnu/packages/guile.scm:397
 msgid "Line editing support for GNU Guile"
 msgstr ""
 
-#: gnu/packages/guile.scm:365
+#: gnu/packages/guile.scm:399
 msgid ""
 "This module provides line editing support via the Readline library for\n"
 "GNU@tie{}Guile.  Use the @code{(ice-9 readline)} module and call its\n"
 "@code{activate-readline} procedure to enable it."
 msgstr ""
 
-#: gnu/packages/guile.scm:462
+#: gnu/packages/guile.scm:533
 msgid "JSON module for Guile"
 msgstr "JSON-Modul für Guile"
 
-#: gnu/packages/guile.scm:464
+#: gnu/packages/guile.scm:535
 msgid ""
 "Guile-JSON supports parsing and building JSON documents according to the\n"
 "specification.  These are the main features:\n"
@@ -9245,29 +10516,29 @@ msgid ""
 "@end itemize\n"
 msgstr ""
 
-#: gnu/packages/guile.scm:546
+#: gnu/packages/guile.scm:636
 msgid "Guile bindings to the GDBM library via Guile's FFI"
 msgstr ""
 
-#: gnu/packages/guile.scm:548
+#: gnu/packages/guile.scm:638
 msgid ""
 "Guile bindings to the GDBM key-value storage system, using\n"
 "Guile's foreign function interface."
 msgstr ""
 
-#: gnu/packages/guile.scm:588
+#: gnu/packages/guile.scm:673
 msgid "Access SQLite databases from Guile"
 msgstr ""
 
-#: gnu/packages/guile.scm:590
+#: gnu/packages/guile.scm:675
 msgid "This package provides Guile bindings to the SQLite database system."
 msgstr ""
 
-#: gnu/packages/guile.scm:632
+#: gnu/packages/guile.scm:719
 msgid "Structured access to bytevector contents for Guile"
 msgstr ""
 
-#: gnu/packages/guile.scm:634
+#: gnu/packages/guile.scm:721
 msgid ""
 "Guile bytestructures offers a system imitating the type system\n"
 "of the C programming language, to be used on bytevectors.  C's type\n"
@@ -9276,21 +10547,43 @@ msgid ""
 "type system, elevating types to first-class status."
 msgstr ""
 
-#: gnu/packages/guile.scm:671
+#: gnu/packages/guile.scm:762
 msgid "Guile bindings for libgit2"
 msgstr "Guile-Anbindungen für libgit2"
 
-#: gnu/packages/guile.scm:673
+#: gnu/packages/guile.scm:764
 msgid ""
 "This package provides Guile bindings to libgit2, a library to\n"
 "manipulate repositories of the Git version control system."
 msgstr ""
 
-#: gnu/packages/imagemagick.scm:113 gnu/packages/imagemagick.scm:217
+#: gnu/packages/guile.scm:807
+msgid "Guile bindings to zlib"
+msgstr "Guile-Anbindungen für zlib"
+
+#: gnu/packages/guile.scm:809
+msgid ""
+"This package provides Guile bindings for zlib, a lossless\n"
+"data-compression library.  The bindings are written in pure Scheme by using\n"
+"Guile's foreign function interface."
+msgstr ""
+
+#: gnu/packages/guile.scm:843
+msgid "Guile bindings to lzlib"
+msgstr "Guile-Anbindungen für lzlib"
+
+#: gnu/packages/guile.scm:845
+msgid ""
+"This package provides Guile bindings for lzlib, a C library for\n"
+"in-memory LZMA compression and decompression.  The bindings are written in\n"
+"pure Scheme by using Guile's foreign function interface."
+msgstr ""
+
+#: gnu/packages/imagemagick.scm:117 gnu/packages/imagemagick.scm:221
 msgid "Create, edit, compose, or convert bitmap images"
 msgstr ""
 
-#: gnu/packages/imagemagick.scm:115
+#: gnu/packages/imagemagick.scm:119
 msgid ""
 "ImageMagick is a software suite to create, edit, compose, or convert\n"
 "bitmap images.  It can read and write images in a variety of formats (over 100)\n"
@@ -9300,11 +10593,11 @@ msgid ""
 "text, lines, polygons, ellipses and Bézier curves."
 msgstr ""
 
-#: gnu/packages/imagemagick.scm:162
+#: gnu/packages/imagemagick.scm:166
 msgid "Perl interface to ImageMagick"
 msgstr ""
 
-#: gnu/packages/imagemagick.scm:163
+#: gnu/packages/imagemagick.scm:167
 msgid ""
 "This Perl extension allows the reading, manipulation and\n"
 "writing of a large number of image file formats using the ImageMagick library.\n"
@@ -9312,59 +10605,71 @@ msgid ""
 "script."
 msgstr ""
 
-#: gnu/packages/imagemagick.scm:219
+#: gnu/packages/imagemagick.scm:223
 msgid ""
 "GraphicsMagick provides a comprehensive collection of utilities,\n"
 "programming interfaces, and GUIs, to support file format conversion, image\n"
 "processing, and 2D vector rendering."
 msgstr ""
 
-#: gnu/packages/image.scm:115
+#: gnu/packages/image.scm:121
+msgid "Image Quality Assessment"
+msgstr ""
+
+#: gnu/packages/image.scm:122
+msgid ""
+"IQA is a C library for objectively measuring image/video\n"
+"quality.  It implements many popular algorithms, such as MS-SSIM, MS-SSIM*,\n"
+"SIMM, MSE, and PSNR.  It is designed to be fast, accurate, and reliable.  All\n"
+"code is Valgrind-clean and unit tested."
+msgstr ""
+
+#: gnu/packages/image.scm:153
 msgid "Library for handling PNG files"
 msgstr ""
 
-#: gnu/packages/image.scm:117
+#: gnu/packages/image.scm:155
 msgid ""
 "Libpng is the official PNG (Portable Network Graphics) reference\n"
 "library.  It supports almost all PNG features and is extensible."
 msgstr ""
 
-#: gnu/packages/image.scm:181
+#: gnu/packages/image.scm:219
 msgid "APNG patch for libpng"
 msgstr ""
 
-#: gnu/packages/image.scm:183
+#: gnu/packages/image.scm:221
 msgid ""
 "APNG (Animated Portable Network Graphics) is an unofficial\n"
 "extension of the APNG (Portable Network Graphics) format.\n"
 "APNG patch provides APNG support to libpng."
 msgstr ""
 
-#: gnu/packages/image.scm:238
+#: gnu/packages/image.scm:276
 msgid "Utility to compress PNG files"
 msgstr ""
 
-#: gnu/packages/image.scm:239
+#: gnu/packages/image.scm:277
 msgid ""
 "Pngcrush optimizes @acronym{PNG, Portable Network Graphics}\n"
 "images.  It can further losslessly compress them by as much as 40%."
 msgstr ""
 
-#: gnu/packages/image.scm:293
+#: gnu/packages/image.scm:331
 msgid "Pretty small png library"
 msgstr ""
 
-#: gnu/packages/image.scm:294
+#: gnu/packages/image.scm:332
 msgid ""
 "A pretty small png library.\n"
 "Currently all documentation resides in @file{pnglite.h}."
 msgstr ""
 
-#: gnu/packages/image.scm:315
+#: gnu/packages/image.scm:353
 msgid "Image palette quantization library"
 msgstr ""
 
-#: gnu/packages/image.scm:316
+#: gnu/packages/image.scm:354
 msgid ""
 "libimagequant is a small, portable C library for\n"
 "high-quality conversion of RGBA images to 8-bit indexed-color (palette)\n"
@@ -9372,11 +10677,11 @@ msgid ""
 "and other PNG optimizers."
 msgstr ""
 
-#: gnu/packages/image.scm:348
+#: gnu/packages/image.scm:386
 msgid "Utility and library for lossy compressing PNG images"
 msgstr ""
 
-#: gnu/packages/image.scm:349
+#: gnu/packages/image.scm:387
 msgid ""
 "pngquant is a PNG compressor that significantly reduces file\n"
 "sizes by converting images to a more efficient 8-bit PNG format with alpha\n"
@@ -9395,11 +10700,11 @@ msgid ""
 "@end enumerate"
 msgstr ""
 
-#: gnu/packages/image.scm:377
+#: gnu/packages/image.scm:415
 msgid "Library for handling JPEG files"
 msgstr ""
 
-#: gnu/packages/image.scm:379
+#: gnu/packages/image.scm:417
 msgid ""
 "Libjpeg implements JPEG image encoding, decoding, and transcoding.\n"
 "JPEG is a standardized compression method for full-color and gray-scale\n"
@@ -9416,32 +10721,32 @@ msgid ""
 "@end enumerate"
 msgstr ""
 
-#: gnu/packages/image.scm:482
+#: gnu/packages/image.scm:510
 msgid "Implementation of the JPEG XR standard"
 msgstr ""
 
-#: gnu/packages/image.scm:483
+#: gnu/packages/image.scm:511
 msgid ""
 "JPEG XR is an approved ISO/IEC International standard (its\n"
 "official designation is ISO/IEC 29199-2). This library is an implementation of that standard."
 msgstr ""
 
-#: gnu/packages/image.scm:505
+#: gnu/packages/image.scm:533
 msgid "Optimize JPEG images"
 msgstr ""
 
-#: gnu/packages/image.scm:507
+#: gnu/packages/image.scm:535
 msgid ""
 "jpegoptim provides lossless optimization (based on optimizing\n"
 "the Huffman tables) and \"lossy\" optimization based on setting\n"
 "maximum quality factor."
 msgstr ""
 
-#: gnu/packages/image.scm:532
+#: gnu/packages/image.scm:560
 msgid "Library for handling Mac OS icns resource files"
 msgstr ""
 
-#: gnu/packages/image.scm:534
+#: gnu/packages/image.scm:562
 msgid ""
 "Libicns is a library for the manipulation of Mac OS IconFamily resource\n"
 "type files (ICNS).  @command{icns2png} and @command{png2icns} are provided to\n"
@@ -9451,11 +10756,11 @@ msgid ""
 "extracting icontainer icon files."
 msgstr ""
 
-#: gnu/packages/image.scm:567
+#: gnu/packages/image.scm:596
 msgid "Library for handling TIFF files"
 msgstr ""
 
-#: gnu/packages/image.scm:569
+#: gnu/packages/image.scm:598
 msgid ""
 "Libtiff provides support for the Tag Image File Format (TIFF), a format\n"
 "used for storing image data.\n"
@@ -9463,11 +10768,11 @@ msgid ""
 "collection of tools for doing simple manipulations of TIFF images."
 msgstr ""
 
-#: gnu/packages/image.scm:619
+#: gnu/packages/image.scm:655
 msgid "Library and tools for image processing and analysis"
 msgstr ""
 
-#: gnu/packages/image.scm:621
+#: gnu/packages/image.scm:657
 msgid ""
 "Leptonica is a C library and set of command-line tools for efficient\n"
 "image processing and image analysis operations.  It supports rasterop, affine\n"
@@ -9477,11 +10782,11 @@ msgid ""
 "arithmetic ops."
 msgstr ""
 
-#: gnu/packages/image.scm:644
+#: gnu/packages/image.scm:695
 msgid "Decoder of the JBIG2 image compression format"
 msgstr ""
 
-#: gnu/packages/image.scm:646
+#: gnu/packages/image.scm:697
 msgid ""
 "JBIG2 is designed for lossy or lossless encoding of @code{bilevel} (1-bit\n"
 "monochrome) images at moderately high resolution, and in particular scanned\n"
@@ -9494,11 +10799,11 @@ msgid ""
 "work."
 msgstr ""
 
-#: gnu/packages/image.scm:714
+#: gnu/packages/image.scm:765
 msgid "Lossless compression for bi-level high-resolution images"
 msgstr ""
 
-#: gnu/packages/image.scm:716
+#: gnu/packages/image.scm:767
 msgid ""
 "JBIG-KIT implements the JBIG1 data compression standard (ITU-T T.82 and\n"
 "ISO/IEC 11544:1993), designed for bi-level (one bit per pixel) images such as\n"
@@ -9516,11 +10821,22 @@ msgid ""
 "images of initially unknown height."
 msgstr ""
 
-#: gnu/packages/image.scm:755
+#: gnu/packages/image.scm:799
+msgid "Test files for OpenJPEG"
+msgstr ""
+
+#: gnu/packages/image.scm:800
+msgid ""
+"OpenJPEG-Data contains all files required to run the openjpeg\n"
+"test suite, including conformance tests (following Rec. ITU-T T.803 | ISO/IEC\n"
+"15444-4 procedures), non-regression tests and unit tests."
+msgstr ""
+
+#: gnu/packages/image.scm:828
 msgid "JPEG 2000 codec"
 msgstr ""
 
-#: gnu/packages/image.scm:757
+#: gnu/packages/image.scm:830
 msgid ""
 "The OpenJPEG library is a JPEG 2000 codec written in C.  It has\n"
 "been developed in order to promote the use of JPEG 2000, the new\n"
@@ -9533,11 +10849,11 @@ msgid ""
 "error-resilience, a Java-viewer for j2k-images, ..."
 msgstr ""
 
-#: gnu/packages/image.scm:824
+#: gnu/packages/image.scm:897
 msgid "Tools and library for working with GIF images"
 msgstr ""
 
-#: gnu/packages/image.scm:826
+#: gnu/packages/image.scm:899
 msgid ""
 "GIFLIB is a library for reading and writing GIF images.  It is API and\n"
 "ABI compatible with libungif which was in wide use while the LZW compression\n"
@@ -9545,19 +10861,30 @@ msgid ""
 "compose, and analyze GIF images."
 msgstr ""
 
-#: gnu/packages/image.scm:848
+#: gnu/packages/image.scm:949
+msgid "Library for working with WFM, EMF and EMF+ images"
+msgstr ""
+
+#: gnu/packages/image.scm:950
+msgid ""
+"The libUEMF library is a portable C99 implementation for\n"
+"reading and writing @acronym{WFM, Windows Metafile}, @acronym{EMF, Enhanced\n"
+"Metafile}, and @acronym{EMF+, Enhanced Metafile Plus} files."
+msgstr ""
+
+#: gnu/packages/image.scm:970
 msgid "GIF decompression library"
 msgstr ""
 
-#: gnu/packages/image.scm:850
+#: gnu/packages/image.scm:972
 msgid "libungif is the old GIF decompression library by the GIFLIB project."
 msgstr ""
 
-#: gnu/packages/image.scm:881
+#: gnu/packages/image.scm:1003
 msgid "Loading, saving, rendering and manipulating image files"
 msgstr ""
 
-#: gnu/packages/image.scm:883
+#: gnu/packages/image.scm:1005
 msgid ""
 "Imlib2 is a library that does image file loading and saving as well as\n"
 "rendering, manipulation, arbitrary polygon support, etc.\n"
@@ -9570,32 +10897,32 @@ msgid ""
 "more modular, simple, and flexible."
 msgstr ""
 
-#: gnu/packages/image.scm:923
+#: gnu/packages/image.scm:1045
 msgid "Wrapper library for imlib2"
 msgstr ""
 
-#: gnu/packages/image.scm:925
+#: gnu/packages/image.scm:1047
 msgid ""
 "Giblib is a simple library which wraps imlib2's context API, avoiding\n"
 "all the context_get/set calls, adds fontstyles to the truetype renderer and\n"
 "supplies a generic doubly-linked list and some string functions."
 msgstr ""
 
-#: gnu/packages/image.scm:1001
+#: gnu/packages/image.scm:1135
 msgid "Library for handling popular graphics image formats"
 msgstr ""
 
-#: gnu/packages/image.scm:1003
+#: gnu/packages/image.scm:1137
 msgid ""
 "FreeImage is a library for developers who would like to support popular\n"
 "graphics image formats like PNG, BMP, JPEG, TIFF and others."
 msgstr ""
 
-#: gnu/packages/image.scm:1069
+#: gnu/packages/image.scm:1206
 msgid "Computer vision library"
 msgstr ""
 
-#: gnu/packages/image.scm:1071
+#: gnu/packages/image.scm:1208
 msgid ""
 "VIGRA stands for Vision with Generic Algorithms.  It is an image\n"
 "processing and analysis library that puts its main emphasis on customizable\n"
@@ -9603,22 +10930,22 @@ msgid ""
 "multi-dimensional image processing."
 msgstr ""
 
-#: gnu/packages/image.scm:1104
+#: gnu/packages/image.scm:1241
 msgid "C interface to the VIGRA computer vision library"
 msgstr ""
 
-#: gnu/packages/image.scm:1106
+#: gnu/packages/image.scm:1243
 msgid ""
 "This package provides a C interface to the VIGRA C++ computer vision\n"
 "library.  It is designed primarily to ease the implementation of higher-level\n"
 "language bindings to VIGRA."
 msgstr ""
 
-#: gnu/packages/image.scm:1143
+#: gnu/packages/image.scm:1280
 msgid "Lossless and lossy image compression"
 msgstr ""
 
-#: gnu/packages/image.scm:1145
+#: gnu/packages/image.scm:1282
 msgid ""
 "WebP is a new image format that provides lossless and lossy compression\n"
 "for images.  WebP lossless images are 26% smaller in size compared to\n"
@@ -9630,52 +10957,52 @@ msgid ""
 "channels."
 msgstr ""
 
-#: gnu/packages/image.scm:1173
+#: gnu/packages/image.scm:1310
 msgid "Library for handling MNG files"
 msgstr ""
 
-#: gnu/packages/image.scm:1175
+#: gnu/packages/image.scm:1312
 msgid "Libmng is the MNG (Multiple-image Network Graphics) reference library."
 msgstr ""
 
-#: gnu/packages/image.scm:1195
+#: gnu/packages/image.scm:1332
 msgid "Library and command-line utility to manage image metadata"
 msgstr ""
 
-#: gnu/packages/image.scm:1197
+#: gnu/packages/image.scm:1334
 msgid ""
 "Exiv2 is a C++ library and a command line utility to manage image\n"
 "metadata.  It provides fast and easy read and write access to the Exif, IPTC\n"
 "and XMP metadata of images in various formats."
 msgstr ""
 
-#: gnu/packages/image.scm:1265
+#: gnu/packages/image.scm:1402
 msgid "Library for manipulating many image formats"
 msgstr ""
 
-#: gnu/packages/image.scm:1266
+#: gnu/packages/image.scm:1403
 msgid ""
 "Developer's Image Library (DevIL) is a library to develop\n"
 "applications with support for many types of images.  DevIL can load, save,\n"
 "convert, manipulate, filter and display a wide variety of image formats."
 msgstr ""
 
-#: gnu/packages/image.scm:1287
+#: gnu/packages/image.scm:1425
 msgid "JPEG-2000 library"
 msgstr ""
 
-#: gnu/packages/image.scm:1288
+#: gnu/packages/image.scm:1426
 msgid ""
 "The JasPer Project is an initiative to provide a reference\n"
 "implementation of the codec specified in the JPEG-2000 Part-1 standard (i.e.,\n"
 "ISO/IEC 15444-1)."
 msgstr ""
 
-#: gnu/packages/image.scm:1312
+#: gnu/packages/image.scm:1450
 msgid "Scaling, colorspace conversion, and dithering library"
 msgstr ""
 
-#: gnu/packages/image.scm:1313
+#: gnu/packages/image.scm:1451
 msgid ""
 "Zimg implements the commonly required image processing basics\n"
 "of scaling, colorspace conversion, and depth conversion.  A simple API enables\n"
@@ -9683,11 +11010,11 @@ msgid ""
 "the programmer."
 msgstr ""
 
-#: gnu/packages/image.scm:1347
+#: gnu/packages/image.scm:1485
 msgid "Perceptual image comparison utility"
 msgstr ""
 
-#: gnu/packages/image.scm:1348
+#: gnu/packages/image.scm:1486
 msgid ""
 "PerceptualDiff visually compares two images to determine\n"
 "whether they look alike.  It uses a computational model of the human visual\n"
@@ -9695,33 +11022,22 @@ msgid ""
 "differences in file encoding, image quality, and other small variations."
 msgstr ""
 
-#: gnu/packages/image.scm:1388
+#: gnu/packages/image.scm:1526
 msgid "Image and audio steganography"
 msgstr ""
 
-#: gnu/packages/image.scm:1390
+#: gnu/packages/image.scm:1528
 msgid ""
 "Steghide is a program to hide data in various kinds of image and audio\n"
 "files (known as @dfn{steganography}).  Neither color nor sample frequencies are\n"
 "changed, making the embedding resistant against first-order statistical tests."
 msgstr ""
 
-#: gnu/packages/image.scm:1415
-msgid "Image library for Extempore"
-msgstr ""
-
-#: gnu/packages/image.scm:1417
-msgid ""
-"This package is a collection of assorted single-file libraries.  Of\n"
-"all included libraries only the image loading and decoding library is\n"
-"installed as @code{stb_image}."
-msgstr ""
-
-#: gnu/packages/image.scm:1454
+#: gnu/packages/image.scm:1565
 msgid "Optimizer that recompresses PNG image files to a smaller size"
 msgstr ""
 
-#: gnu/packages/image.scm:1455
+#: gnu/packages/image.scm:1566
 msgid ""
 "OptiPNG is a PNG optimizer that recompresses image\n"
 "files to a smaller size, without losing any information.  This program\n"
@@ -9729,22 +11045,22 @@ msgid ""
 "PNG, and performs PNG integrity checks and corrections."
 msgstr ""
 
-#: gnu/packages/image.scm:1488
+#: gnu/packages/image.scm:1599
 msgid "Example PNGs for use in test suites"
 msgstr ""
 
-#: gnu/packages/image.scm:1489
+#: gnu/packages/image.scm:1600
 msgid ""
 "Collection of graphics images created to test PNG\n"
 "applications like viewers, converters and editors.  As far as that is\n"
 "possible, all formats supported by the PNG standard are represented."
 msgstr ""
 
-#: gnu/packages/image.scm:1515
+#: gnu/packages/image.scm:1653
 msgid "SIMD-accelerated JPEG image handling library"
 msgstr ""
 
-#: gnu/packages/image.scm:1516
+#: gnu/packages/image.scm:1654
 msgid ""
 "libjpeg-turbo is a JPEG image codec that accelerates baseline\n"
 "JPEG compression and decompression using SIMD instructions: MMX on x86, SSE2 on\n"
@@ -9757,11 +11073,11 @@ msgid ""
 "and decompress to 32-bit and big-endian pixel buffers (RGBX, XBGR, etc.)."
 msgstr ""
 
-#: gnu/packages/image.scm:1580
+#: gnu/packages/image.scm:1719
 msgid "Library for reading and writing files in the nifti-1 format"
 msgstr ""
 
-#: gnu/packages/image.scm:1581
+#: gnu/packages/image.scm:1720
 msgid ""
 "Niftilib is a set of i/o libraries for reading and writing\n"
 "files in the nifti-1 data format - a binary file format for storing\n"
@@ -9769,19 +11085,19 @@ msgid ""
 "(fMRI) brain images."
 msgstr ""
 
-#: gnu/packages/image.scm:1622
+#: gnu/packages/image.scm:1761
 msgid "Color picker"
 msgstr ""
 
-#: gnu/packages/image.scm:1623
+#: gnu/packages/image.scm:1762
 msgid "Gpick is an advanced color picker and palette editing tool."
 msgstr ""
 
-#: gnu/packages/image.scm:1641
+#: gnu/packages/image.scm:1780
 msgid "IPTC metadata manipulation library"
 msgstr ""
 
-#: gnu/packages/image.scm:1643
+#: gnu/packages/image.scm:1782
 msgid ""
 "Libiptcdata is a C library for manipulating the International Press\n"
 "Telecommunications Council (@dfn{IPTC}) metadata stored within multimedia files\n"
@@ -9790,11 +11106,11 @@ msgid ""
 "parsing, viewing, modifying, and saving this metadata."
 msgstr ""
 
-#: gnu/packages/image.scm:1680
+#: gnu/packages/image.scm:1819
 msgid "Powerful yet simple to use screenshot software"
 msgstr ""
 
-#: gnu/packages/image.scm:1681
+#: gnu/packages/image.scm:1820
 msgid ""
 "Flameshot is a screenshot program.\n"
 "Features:\n"
@@ -9808,11 +11124,11 @@ msgid ""
 "@end itemize\n"
 msgstr ""
 
-#: gnu/packages/image.scm:1721
+#: gnu/packages/image.scm:1860
 msgid "Edit GIF images and animations"
 msgstr ""
 
-#: gnu/packages/image.scm:1722
+#: gnu/packages/image.scm:1861
 msgid ""
 "Gifsicle is a command-line GIF image manipulation tool that:\n"
 "\n"
@@ -9831,37 +11147,37 @@ msgid ""
 "identical visual appearance."
 msgstr ""
 
-#: gnu/packages/image.scm:1758
+#: gnu/packages/image.scm:1897
 msgid "Convert JPEG images to ASCII"
 msgstr ""
 
-#: gnu/packages/image.scm:1760
+#: gnu/packages/image.scm:1899
 msgid "Jp2a is a small utility that converts JPEG images to ASCII."
 msgstr ""
 
-#: gnu/packages/image.scm:1784
+#: gnu/packages/image.scm:1924
 msgid "Create screenshots from a Wayland compositor"
 msgstr ""
 
-#: gnu/packages/image.scm:1785
+#: gnu/packages/image.scm:1925
 msgid "grim can create screenshots from a Wayland compositor."
 msgstr ""
 
-#: gnu/packages/image.scm:1809
+#: gnu/packages/image.scm:1949
 msgid "Select a region in a Wayland compositor"
 msgstr ""
 
-#: gnu/packages/image.scm:1810
+#: gnu/packages/image.scm:1950
 msgid ""
 "Slurp can select a region in a Wayland compositor and print it\n"
 "to the standard output.  It works well together with grim."
 msgstr ""
 
-#: gnu/packages/image.scm:1843
+#: gnu/packages/image.scm:1983
 msgid "Markup language for representing PNG contents"
 msgstr ""
 
-#: gnu/packages/image.scm:1844
+#: gnu/packages/image.scm:1984
 msgid ""
 "SNG (Scriptable Network Graphics) is a minilanguage designed\n"
 "specifically to represent the entire contents of a PNG (Portable Network\n"
@@ -9873,22 +11189,22 @@ msgid ""
 "losslessly translates between SNG and PNG."
 msgstr ""
 
-#: gnu/packages/image.scm:1903
+#: gnu/packages/image.scm:2043
 msgid "PNG encoder and decoder in C and C++, without dependencies"
 msgstr ""
 
-#: gnu/packages/image.scm:1904
+#: gnu/packages/image.scm:2044
 msgid ""
 "LodePNG is a PNG image decoder and encoder, all in one,\n"
 "no dependency or linkage required.  It's made for C (ISO C90), and has a C++\n"
 "wrapper with a more convenient interface on top."
 msgstr ""
 
-#: gnu/packages/image.scm:1927
+#: gnu/packages/image.scm:2067
 msgid "Extract and convert bitmaps from Windows icon and cursor files"
 msgstr ""
 
-#: gnu/packages/image.scm:1928
+#: gnu/packages/image.scm:2068
 msgid ""
 "Icoutils are a set of program for extracting and converting\n"
 "bitmaps from Microsoft Windows icon and cursor files.  These files usually\n"
@@ -9904,22 +11220,22 @@ msgid ""
 "This package can be used to create @code{favicon.ico} files for web sites."
 msgstr ""
 
-#: gnu/packages/image.scm:1977
+#: gnu/packages/image.scm:2114
 msgid "Encode and decode AVIF files"
 msgstr ""
 
-#: gnu/packages/image.scm:1978
+#: gnu/packages/image.scm:2115
 msgid ""
-"Libavif is a C implementation of the AV1 Image File Format\n"
-"(AVIF).  It can encode and decode all YUV formats and bit depths supported by\n"
-"AOM, including with alpha."
+"Libavif is a C implementation of @acronym{AVIF, the AV1 Image\n"
+"File Format}.  It can encode and decode all YUV formats and bit depths supported\n"
+"by AOM, including with alpha."
 msgstr ""
 
-#: gnu/packages/image.scm:2030
+#: gnu/packages/image.scm:2161
 msgid "Create pixel art and manipulate digital images"
 msgstr ""
 
-#: gnu/packages/image.scm:2032
+#: gnu/packages/image.scm:2163
 msgid ""
 "Mtpaint is a graphic editing program which uses the GTK+ toolkit.\n"
 "It can create and edit indexed palette or 24bit RGB images, offers basic\n"
@@ -9927,11 +11243,24 @@ msgid ""
 "GIF, TIFF, WEBP, BMP, PNG, XPM formats."
 msgstr ""
 
-#: gnu/packages/image-viewers.scm:107
+#: gnu/packages/image.scm:2213
+msgid "Organize photos and videos in folders"
+msgstr ""
+
+#: gnu/packages/image.scm:2214
+msgid ""
+"Phockup is a media sorting tool that uses creation date and\n"
+"time information in photos and videos to organize them into folders by year,\n"
+"month and day.  All files which are not images or videos or those which do not\n"
+"have creation date information will be placed in a folder called\n"
+"@file{unknown}."
+msgstr ""
+
+#: gnu/packages/image-viewers.scm:108
 msgid "Fast and light imlib2-based image viewer"
 msgstr ""
 
-#: gnu/packages/image-viewers.scm:109
+#: gnu/packages/image-viewers.scm:110
 msgid ""
 "feh is an X11 image viewer aimed mostly at console users.\n"
 "Unlike most other viewers, it does not have a fancy GUI, but simply\n"
@@ -9940,11 +11269,11 @@ msgid ""
 "actions."
 msgstr ""
 
-#: gnu/packages/image-viewers.scm:186
+#: gnu/packages/image-viewers.scm:155
 msgid "Lightweight GTK+ based image viewer"
 msgstr ""
 
-#: gnu/packages/image-viewers.scm:188
+#: gnu/packages/image-viewers.scm:157
 msgid ""
 "Geeqie is a lightweight GTK+ based image viewer for Unix like operating\n"
 "systems.  It features: EXIF, IPTC and XMP metadata browsing and editing\n"
@@ -9954,21 +11283,21 @@ msgid ""
 "collection.  Geeqie was initially based on GQview."
 msgstr ""
 
-#: gnu/packages/image-viewers.scm:213
+#: gnu/packages/image-viewers.scm:182
 msgid "Simple and fast image viewer for X"
 msgstr ""
 
-#: gnu/packages/image-viewers.scm:214
+#: gnu/packages/image-viewers.scm:183
 msgid ""
 "gpicview is a lightweight GTK+ 2.x based image viewer.\n"
 "It is the default image viewer on LXDE desktop environment."
 msgstr ""
 
-#: gnu/packages/image-viewers.scm:255
+#: gnu/packages/image-viewers.scm:233
 msgid "Simple X Image Viewer"
 msgstr ""
 
-#: gnu/packages/image-viewers.scm:257
+#: gnu/packages/image-viewers.scm:235
 msgid ""
 "sxiv is an alternative to feh and qiv.  Its primary goal is to\n"
 "provide the most basic features required for fast image viewing.  It has\n"
@@ -9977,11 +11306,11 @@ msgid ""
 "it and customize it for your needs."
 msgstr ""
 
-#: gnu/packages/image-viewers.scm:299
+#: gnu/packages/image-viewers.scm:277
 msgid "Simple, fast and elegant image viewer"
 msgstr ""
 
-#: gnu/packages/image-viewers.scm:300
+#: gnu/packages/image-viewers.scm:278
 msgid ""
 "Viewnior is an image viewer program.  Created to be simple,\n"
 "fast and elegant.  Its minimalistic interface provides more screenspace for\n"
@@ -9999,21 +11328,21 @@ msgid ""
 "@end enumerate\n"
 msgstr ""
 
-#: gnu/packages/image-viewers.scm:355
+#: gnu/packages/image-viewers.scm:333
 msgid "Render images in the terminal"
 msgstr ""
 
-#: gnu/packages/image-viewers.scm:357
+#: gnu/packages/image-viewers.scm:335
 msgid ""
 "Catimg is a little program that prints images in the terminal.\n"
 "It supports JPEG, PNG and GIF formats."
 msgstr ""
 
-#: gnu/packages/image-viewers.scm:408
+#: gnu/packages/image-viewers.scm:388
 msgid "High dynamic range (HDR) imaging application"
 msgstr ""
 
-#: gnu/packages/image-viewers.scm:410
+#: gnu/packages/image-viewers.scm:390
 msgid ""
 "Luminance HDR (formerly QtPFSGui) is a graphical user interface\n"
 "application that aims to provide a workflow for high dynamic range (HDR)\n"
@@ -10029,11 +11358,11 @@ msgid ""
 "@end itemize\n"
 msgstr ""
 
-#: gnu/packages/image-viewers.scm:507
+#: gnu/packages/image-viewers.scm:487
 msgid "Image viewer for comics"
 msgstr ""
 
-#: gnu/packages/image-viewers.scm:508
+#: gnu/packages/image-viewers.scm:488
 msgid ""
 "MComix is a customizable image viewer that specializes as\n"
 "a comic and manga reader.  It supports a variety of container formats\n"
@@ -10042,11 +11371,11 @@ msgid ""
 "For PDF support, install the @emph{mupdf} package."
 msgstr ""
 
-#: gnu/packages/image-viewers.scm:556
+#: gnu/packages/image-viewers.scm:529
 msgid "Convenient and minimal image viewer"
 msgstr ""
 
-#: gnu/packages/image-viewers.scm:557
+#: gnu/packages/image-viewers.scm:530
 msgid ""
 "qView is a Qt image viewer designed with visually\n"
 "minimalism and usability in mind.  Its features include animated GIF\n"
@@ -10054,22 +11383,22 @@ msgid ""
 "preloading."
 msgstr ""
 
-#: gnu/packages/image-viewers.scm:580
+#: gnu/packages/image-viewers.scm:555
 msgid "Convert images to ANSI/Unicode characters"
 msgstr ""
 
-#: gnu/packages/image-viewers.scm:582
+#: gnu/packages/image-viewers.scm:557
 msgid ""
 "Chafa is a command-line utility that converts all kinds of images,\n"
 "including animated GIFs, into ANSI/Unicode character output that can be\n"
 "displayed in a terminal."
 msgstr ""
 
-#: gnu/packages/image-viewers.scm:632
+#: gnu/packages/image-viewers.scm:607
 msgid "Image viewer for tiling window managers"
 msgstr ""
 
-#: gnu/packages/image-viewers.scm:633
+#: gnu/packages/image-viewers.scm:608
 msgid ""
 "@code{imv} is a command line image viewer intended for use\n"
 "with tiling window managers.  Features include:\n"
@@ -10091,11 +11420,11 @@ msgid ""
 "@end itemize\n"
 msgstr ""
 
-#: gnu/packages/image-viewers.scm:702
+#: gnu/packages/image-viewers.scm:677
 msgid "Graphical image viewer for X"
 msgstr ""
 
-#: gnu/packages/image-viewers.scm:704
+#: gnu/packages/image-viewers.scm:679
 msgid ""
 "Quick Image Viewer is a small and fast GDK/Imlib2 image viewer.\n"
 "Features include zoom, maxpect, scale down, fullscreen, slideshow, delete,\n"
@@ -10104,22 +11433,22 @@ msgid ""
 "to set X desktop background."
 msgstr ""
 
-#: gnu/packages/inkscape.scm:99
+#: gnu/packages/inkscape.scm:114 gnu/packages/inkscape.scm:301
 msgid "Vector graphics editor"
 msgstr ""
 
-#: gnu/packages/inkscape.scm:100
+#: gnu/packages/inkscape.scm:115 gnu/packages/inkscape.scm:302
 msgid ""
 "Inkscape is a vector graphics editor.  What sets Inkscape\n"
 "apart is its use of Scalable Vector Graphics (SVG), an XML-based W3C standard,\n"
 "as the native format."
 msgstr ""
 
-#: gnu/packages/jemalloc.scm:63
+#: gnu/packages/jemalloc.scm:66
 msgid "General-purpose scalable concurrent malloc implementation"
 msgstr ""
 
-#: gnu/packages/jemalloc.scm:65
+#: gnu/packages/jemalloc.scm:68
 msgid ""
 "This library providing a malloc(3) implementation that emphasizes\n"
 "fragmentation avoidance and scalable concurrency support."
@@ -10135,11 +11464,11 @@ msgid ""
 "This is useful for teaching and screencasts."
 msgstr ""
 
-#: gnu/packages/less.scm:43
+#: gnu/packages/less.scm:50
 msgid "Paginator for terminals"
 msgstr ""
 
-#: gnu/packages/less.scm:45
+#: gnu/packages/less.scm:52
 msgid ""
 "GNU less is a pager, a program that allows you to view large amounts\n"
 "of text in page-sized chunks.  Unlike traditional pagers, it allows both\n"
@@ -10148,6 +11477,21 @@ msgid ""
 "text editors."
 msgstr ""
 
+#: gnu/packages/less.scm:99
+msgid "Input filter for less"
+msgstr ""
+
+#: gnu/packages/less.scm:100
+msgid ""
+"To browse files, the excellent viewer @code{less} can be\n"
+"used.  By setting the environment variable @code{LESSOPEN}, less can be\n"
+"enhanced by external filters to become more powerful.  The input filter for\n"
+"less described here is called @code{lesspipe.sh}.  It is able to process a\n"
+"wide variety of file formats.  It enables users to inspect archives and\n"
+"display their contents without having to unpack them before.  The filter is\n"
+"easily extensible for new formats."
+msgstr ""
+
 #: gnu/packages/lesstif.scm:47
 msgid "Clone of the Motif toolkit for the X window system"
 msgstr ""
@@ -10156,11 +11500,11 @@ msgstr ""
 msgid "Clone of the Motif toolkit for the X window system."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:106
+#: gnu/packages/libreoffice.scm:108
 msgid "General purpose formula parser and interpreter"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:107
+#: gnu/packages/libreoffice.scm:109
 msgid ""
 "Ixion is a library for calculating the results of formula\n"
 "expressions stored in multiple named targets, or \"cells\".  The cells can\n"
@@ -10168,11 +11512,11 @@ msgid ""
 "their dependencies automatically upon calculation."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:134
+#: gnu/packages/libreoffice.scm:136
 msgid "File import filter library for spreadsheet documents"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:135
+#: gnu/packages/libreoffice.scm:137
 msgid ""
 "Orcus is a library that provides a collection of standalone\n"
 "file processing filters.  It is currently focused on providing filters for\n"
@@ -10182,11 +11526,11 @@ msgid ""
 "CSV, CSS and XML."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:186
+#: gnu/packages/libreoffice.scm:188
 msgid "Convert between any document format supported by LibreOffice"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:188
+#: gnu/packages/libreoffice.scm:190
 msgid ""
 "Unoconv is a command-line utility to convert documents from any format\n"
 "that LibreOffice can import, to any format it can export.  It can be used for\n"
@@ -10200,33 +11544,33 @@ msgid ""
 "All required fonts must be installed on the converting system."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:226
+#: gnu/packages/libreoffice.scm:228
 msgid "Document importer for office suites"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:227
+#: gnu/packages/libreoffice.scm:229
 msgid ""
 "Librevenge is a base library for writing document import\n"
 "filters.  It has interfaces for text documents, vector graphics,\n"
 "spreadsheets and presentations."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:254
+#: gnu/packages/libreoffice.scm:256
 msgid "Library for importing WordPerfect documents"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:255
+#: gnu/packages/libreoffice.scm:257
 msgid ""
 "Libwpd is a C++ library designed to help process\n"
 "WordPerfect documents.  It is most commonly used to import such documents\n"
 "into other word processors."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:288
+#: gnu/packages/libreoffice.scm:290
 msgid "Library for import of reflowable e-book formats"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:289
+#: gnu/packages/libreoffice.scm:291
 msgid ""
 "Libe-book is a library and a set of tools for reading and\n"
 "converting various reflowable e-book formats.  Currently supported are:\n"
@@ -10236,73 +11580,73 @@ msgid ""
 "ZVR (simple compressed text format)."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:319
+#: gnu/packages/libreoffice.scm:321
 msgid "EPUB generator library for librevenge"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:320
+#: gnu/packages/libreoffice.scm:322
 msgid ""
 "libepubgen is an EPUB generator for librevenge.  It supports\n"
 "librevenge's text document interface and--currently in a very limited\n"
 "way--presentation and vector drawing interfaces."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:346
+#: gnu/packages/libreoffice.scm:348
 msgid "Library and tools for the WordPerfect Graphics format"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:347
+#: gnu/packages/libreoffice.scm:349
 msgid ""
 "The libwpg project provides a library and tools for\n"
 "working with graphics in the WPG (WordPerfect Graphics) format."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:387
+#: gnu/packages/libreoffice.scm:389
 msgid "CMIS client library"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:388
+#: gnu/packages/libreoffice.scm:390
 msgid ""
 "LibCMIS is a C++ client library for the CMIS interface.  It\n"
 "allows C++ applications to connect to any ECM behaving as a CMIS server such\n"
 "as Alfresco or Nuxeo."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:417
+#: gnu/packages/libreoffice.scm:419
 msgid "Library for parsing the AbiWord format"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:418
+#: gnu/packages/libreoffice.scm:420
 msgid ""
 "Libabw is a library that parses the file format of\n"
 "AbiWord documents."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:446
+#: gnu/packages/libreoffice.scm:448
 msgid "Library for parsing the CorelDRAW format"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:447
+#: gnu/packages/libreoffice.scm:449
 msgid ""
 "Libcdr is a library that parses the file format of\n"
 "CorelDRAW documents of all versions."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:480
+#: gnu/packages/libreoffice.scm:482
 msgid "Library for parsing the Apple Keynote format"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:481
+#: gnu/packages/libreoffice.scm:483
 msgid ""
 "Libetonyek is a library that parses the file format of\n"
 "Apple Keynote documents.  It currently supports Keynote versions 2 to 5."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:503
+#: gnu/packages/libreoffice.scm:505
 msgid "Library to access tags for identifying languages"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:504
+#: gnu/packages/libreoffice.scm:506
 msgid ""
 "Liblangtag implements an interface to work with tags\n"
 "for identifying languages as described in RFC 5646.  It supports the\n"
@@ -10311,73 +11655,73 @@ msgid ""
 "standard 21.0.2."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:524
+#: gnu/packages/libreoffice.scm:526
 msgid "Text Categorization library"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:525
+#: gnu/packages/libreoffice.scm:527
 msgid ""
 "Libexttextcat is an N-Gram-Based Text Categorization\n"
 "library primarily intended for language guessing."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:555
+#: gnu/packages/libreoffice.scm:568
 msgid "Library for parsing the FreeHand format"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:556
+#: gnu/packages/libreoffice.scm:569
 msgid ""
 "Libfreehand is a library that parses the file format of\n"
 "Aldus/Macromedia/Adobe FreeHand documents."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:582
+#: gnu/packages/libreoffice.scm:595
 msgid "Library for parsing the Microsoft Publisher format"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:583
+#: gnu/packages/libreoffice.scm:596
 msgid ""
 "Libmspub is a library that parses the file format of\n"
 "Microsoft Publisher documents of all versions."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:603
+#: gnu/packages/libreoffice.scm:616
 msgid "Language-neutral @code{NUMBERTEXT} and @code{MONEYTEXT} functions"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:605
+#: gnu/packages/libreoffice.scm:618
 msgid ""
 "The libnumbertext library provides language-neutral @code{NUMBERTEXT}\n"
 "and @code{MONEYTEXT} functions for LibreOffice Calc, available for C++ and\n"
 "Java."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:633
+#: gnu/packages/libreoffice.scm:646
 msgid "Library for parsing the PageMaker format"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:634
+#: gnu/packages/libreoffice.scm:647
 msgid ""
 "Libpagemaker is a library that parses the file format of\n"
 "Aldus/Adobe PageMaker documents.  Currently it only understands documents\n"
 "created by PageMaker version 6.x and 7."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:664
+#: gnu/packages/libreoffice.scm:677
 msgid "Library for parsing the Microsoft Visio format"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:665
+#: gnu/packages/libreoffice.scm:678
 msgid ""
 "Libvisio is a library that parses the file format of\n"
 "Microsoft Visio documents of all versions."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:693
+#: gnu/packages/libreoffice.scm:706
 msgid "ODF (Open Document Format) library"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:694
+#: gnu/packages/libreoffice.scm:707
 msgid ""
 "Libodfgen is a library for generating documents in the\n"
 "Open Document Format (ODF).  It provides generator implementations for all\n"
@@ -10385,49 +11729,49 @@ msgid ""
 "text documents, vector drawings, presentations and spreadsheets."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:721
+#: gnu/packages/libreoffice.scm:734
 msgid "Import library for some old Macintosh text documents"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:722
+#: gnu/packages/libreoffice.scm:735
 msgid ""
 "Libmwaw contains some import filters for old Macintosh\n"
 "text documents (MacWrite, ClarisWorks, ... ) and for some graphics and\n"
 "spreadsheet documents."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:745
+#: gnu/packages/libreoffice.scm:758
 msgid "Provides LibreOffice support for old StarOffice documents"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:746
+#: gnu/packages/libreoffice.scm:759
 msgid ""
 "@code{libstaroffice} is an import filter for the document formats\n"
 "from the old StarOffice (.sdc, .sdw, ...)."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:771
+#: gnu/packages/libreoffice.scm:784
 msgid "Import library for Microsoft Works text documents"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:772
+#: gnu/packages/libreoffice.scm:785
 msgid ""
 "Libwps is a library for importing files in the Microsoft\n"
 "Works word processor file format."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:802
+#: gnu/packages/libreoffice.scm:815
 msgid "Parses file format of Zoner Callisto/Draw documents"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:803
+#: gnu/packages/libreoffice.scm:816
 msgid ""
 "Libzmf is a library that parses the file format of Zoner\n"
 "Callisto/Draw documents.  Currently it only understands documents created by\n"
 "Zoner Draw version 4 and 5."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:834
+#: gnu/packages/libreoffice.scm:847
 msgid ""
 "Hunspell is a spell checker and morphological analyzer\n"
 "library and program designed for languages with rich morphology and complex\n"
@@ -10435,59 +11779,73 @@ msgid ""
 msgstr ""
 
 #. TRANSLATORS: In French, this is "Français classique".
-#: gnu/packages/libreoffice.scm:897
+#: gnu/packages/libreoffice.scm:910
 msgid "Hunspell dictionary for ``classic'' French (recommended)"
 msgstr ""
 
 #. TRANSLATORS: In French, this is "Français moderne".
-#: gnu/packages/libreoffice.scm:902
+#: gnu/packages/libreoffice.scm:915
 msgid "Hunspell dictionary for ``modern'' French"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:906
+#: gnu/packages/libreoffice.scm:919
 msgid "Hunspell dictionary for the post @dfn{1990 réforme} French"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:910
+#: gnu/packages/libreoffice.scm:923
 msgid "Hunspell dictionary for all variants of French"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:928
+#: gnu/packages/libreoffice.scm:967
+msgid "Hunspell dictionary for Polish"
+msgstr "Hunspell-Wörterbuch für Polnisch"
+
+#: gnu/packages/libreoffice.scm:1004
+msgid "Hunspell dictionary for German (de_DE)"
+msgstr "Hunspell-Wörterbuch für Deutsch (de_DE)"
+
+#: gnu/packages/libreoffice.scm:1005
+msgid ""
+"This package provides a dictionary for the Hunspell\n"
+"spell-checking library."
+msgstr "Dieses Paket bietet ein Wörterbuch für die Hunspell-Rechtschreibbibliothek."
+
+#: gnu/packages/libreoffice.scm:1026
 msgid "Hyphenation library"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:929
+#: gnu/packages/libreoffice.scm:1027
 msgid ""
 "Hyphen is a hyphenation library using TeX hyphenation\n"
 "patterns, which are pre-processed by a perl script."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:953
+#: gnu/packages/libreoffice.scm:1051
 msgid "Thesaurus"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:954
+#: gnu/packages/libreoffice.scm:1052
 msgid ""
 "MyThes is a simple thesaurus that uses a structured text\n"
 "data file and an index file with binary search to look up words and phrases\n"
 "and to return information on pronunciations, meanings and synonyms."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:982
+#: gnu/packages/libreoffice.scm:1080
 msgid "Library and tools for the QuarkXPress file format"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:983
+#: gnu/packages/libreoffice.scm:1081
 msgid ""
 "libqxp is a library and a set of tools for reading and\n"
 "converting QuarkXPress file format.  It supports versions 3.1 to 4.1."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:1200
+#: gnu/packages/libreoffice.scm:1296
 msgid "Office suite"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:1201
+#: gnu/packages/libreoffice.scm:1297
 msgid ""
 "LibreOffice is a comprehensive office suite.  It contains\n"
 "a number of components: Writer, a word processor; Calc, a spreadsheet\n"
@@ -10496,45 +11854,45 @@ msgid ""
 "Math for editing mathematics."
 msgstr ""
 
-#: gnu/packages/linux.scm:552
+#: gnu/packages/linux.scm:563
 msgid "GNU Linux-Libre kernel headers"
 msgstr ""
 
-#: gnu/packages/linux.scm:553
+#: gnu/packages/linux.scm:564
 msgid "Headers of the Linux-Libre kernel."
 msgstr ""
 
-#: gnu/packages/linux.scm:813
+#: gnu/packages/linux.scm:847
 msgid "100% free redistribution of a cleaned Linux kernel"
 msgstr ""
 
-#: gnu/packages/linux.scm:815
+#: gnu/packages/linux.scm:849
 msgid ""
 "GNU Linux-Libre is a free (as in freedom) variant of the Linux kernel.\n"
 "It has been modified to remove all non-free binary blobs."
 msgstr ""
 
-#: gnu/packages/linux.scm:1002
+#: gnu/packages/linux.scm:1064
 msgid "Linux kernel module to perform ACPI method calls"
 msgstr ""
 
-#: gnu/packages/linux.scm:1004
+#: gnu/packages/linux.scm:1066
 msgid ""
 "This simple Linux kernel module allows calls from user space to any\n"
 "@acronym{ACPI, Advanced Configuration and Power Interface} method provided by\n"
 "your computer's firmware, by writing to @file{/proc/acpi/call}.  You can pass\n"
-"any number of parameters of types @code{ACPI_INTEGER},  @code{ACPI_STRING},\n"
+"any number of parameters of types @code{ACPI_INTEGER}, @code{ACPI_STRING},\n"
 "and @code{ACPI_BUFFER}.\n"
 "\n"
 "It grants direct and undocumented access to your hardware that may cause damage\n"
 "and should be used with caution, especially on untested models."
 msgstr ""
 
-#: gnu/packages/linux.scm:1052
+#: gnu/packages/linux.scm:1114
 msgid "Linux driver for Realtek USB wireless network adapters"
 msgstr ""
 
-#: gnu/packages/linux.scm:1054
+#: gnu/packages/linux.scm:1116
 msgid ""
 "This is Realtek's rtl8812au Linux driver for USB 802.11n wireless\n"
 "network adapters, modified by the aircrack-ng project to support monitor mode\n"
@@ -10542,21 +11900,41 @@ msgid ""
 "RTL8812AU, RTL8821AU, and RTL8814AU chips."
 msgstr ""
 
-#: gnu/packages/linux.scm:1077
+#: gnu/packages/linux.scm:1152
+msgid "Linux driver for Realtek RTL8821CE wireless network adapters"
+msgstr ""
+
+#: gnu/packages/linux.scm:1153
+msgid ""
+"This is Realtek's RTL8821CE Linux driver for wireless\n"
+"network adapters."
+msgstr ""
+
+#: gnu/packages/linux.scm:1174
 msgid "Kernel module that emulates SCSI devices"
 msgstr ""
 
-#: gnu/packages/linux.scm:1078
+#: gnu/packages/linux.scm:1175
 msgid ""
 "VHBA module provides a Virtual (SCSI) HBA, which is the link\n"
 "between the CDemu userspace daemon and linux kernel."
 msgstr ""
 
-#: gnu/packages/linux.scm:1119
+#: gnu/packages/linux.scm:1200
+msgid "Kernel module that disables discrete Nvidia graphics cards"
+msgstr ""
+
+#: gnu/packages/linux.scm:1201
+msgid ""
+"The bbswitch module provides a way to toggle the Nvidia\n"
+"graphics card on Optimus laptops."
+msgstr ""
+
+#: gnu/packages/linux.scm:1242
 msgid "Pair of Linux kernel drivers for DDC/CI monitors"
 msgstr ""
 
-#: gnu/packages/linux.scm:1120
+#: gnu/packages/linux.scm:1243
 msgid ""
 "This package provides two Linux kernel drivers, ddcci and\n"
 "ddcci-backlight, that allows the control of DDC/CI monitors through the sysfs\n"
@@ -10566,11 +11944,27 @@ msgid ""
 "supported under @file{/sys/class/backlight/}."
 msgstr ""
 
-#: gnu/packages/linux.scm:1174
+#: gnu/packages/linux.scm:1268
+msgid "Linux kernel module to create virtual V4L2 video devices"
+msgstr ""
+
+#: gnu/packages/linux.scm:1270
+msgid ""
+"This Linux module creates virtual video devices.  @acronym{V4L2, Video\n"
+"for Linux 2} applications will treat these as ordinary video devices but read\n"
+"video data generated by another application, instead of a hardware device such\n"
+"as a capture card.\n"
+"\n"
+"This lets you apply nifty effects to your Jitsi video, for example, but also\n"
+"allows some more serious things like adding streaming capabilities to an\n"
+"application by hooking GStreamer into the loopback device."
+msgstr ""
+
+#: gnu/packages/linux.scm:1326
 msgid "Pluggable authentication modules for Linux"
 msgstr ""
 
-#: gnu/packages/linux.scm:1176
+#: gnu/packages/linux.scm:1328
 msgid ""
 "A *Free* project to implement OSF's RFC 86.0.\n"
 "Pluggable authentication modules are small shared object files that can\n"
@@ -10578,44 +11972,73 @@ msgid ""
 "at login.  Local and dynamic reconfiguration are its key features."
 msgstr ""
 
-#: gnu/packages/linux.scm:1223
+#: gnu/packages/linux.scm:1388
+msgid "PAM interface using ctypes"
+msgstr ""
+
+#: gnu/packages/linux.scm:1389
+msgid "This package provides a PAM interface using @code{ctypes}."
+msgstr ""
+
+#: gnu/packages/linux.scm:1424
+msgid "Measure system power consumption"
+msgstr ""
+
+#: gnu/packages/linux.scm:1426
+msgid ""
+"Powerstat measures and reports your computer's power consumption in real\n"
+"time.  On mobile PCs, it uses ACPI battery information to measure the power\n"
+"drain of the entire system.\n"
+"\n"
+"Powerstat can also report @acronym{RAPL, Running Average Power Limit} power\n"
+"domain measurements.  These are available only on some hardware such as Intel\n"
+"Sandybridge and newer, and cover only part of the machine's components such as\n"
+"CPU, DRAM, and graphics.  However, they provide accurate and immediate readings\n"
+"and don't require a battery at all.\n"
+"\n"
+"The output is like @command{vmstat} but also shows power consumption statistics:\n"
+"at the end of a run, @command{powerstat} will calculate the average, standard\n"
+"deviation, and minimum and maximum values.  It can show a nice histogram too."
+msgstr ""
+
+#: gnu/packages/linux.scm:1462
 msgid "Small utilities that use the proc file system"
 msgstr ""
 
-#: gnu/packages/linux.scm:1225
+#: gnu/packages/linux.scm:1464
 msgid ""
 "This PSmisc package is a set of some small useful utilities that\n"
 "use the proc file system.  We're not about changing the world, but\n"
 "providing the system administrator with some help in common tasks."
 msgstr ""
 
-#: gnu/packages/linux.scm:1314
+#: gnu/packages/linux.scm:1597
 msgid "Collection of utilities for the Linux kernel"
 msgstr ""
 
-#: gnu/packages/linux.scm:1315
+#: gnu/packages/linux.scm:1598
 msgid ""
 "Util-linux is a diverse collection of Linux kernel\n"
 "utilities.  It provides dmesg and includes tools for working with file systems,\n"
 "block devices, UUIDs, TTYs, and many other tools."
 msgstr ""
 
-#: gnu/packages/linux.scm:1350
+#: gnu/packages/linux.scm:1634
 msgid "PERPETUAL DATE CONVERTER FROM GREGORIAN TO POEE CALENDAR"
 msgstr ""
 
-#: gnu/packages/linux.scm:1352
+#: gnu/packages/linux.scm:1636
 msgid ""
 "ddate displays the Discordian date and holidays of a given date.\n"
 "The Discordian calendar was made popular by the \"Illuminatus!\" trilogy\n"
 "by Robert Shea and Robert Anton Wilson."
 msgstr ""
 
-#: gnu/packages/linux.scm:1405
+#: gnu/packages/linux.scm:1689
 msgid "Show and modify Linux frame buffer settings"
 msgstr ""
 
-#: gnu/packages/linux.scm:1407
+#: gnu/packages/linux.scm:1691
 msgid ""
 "The kernel Linux's @dfn{frame buffers} provide a simple interface to\n"
 "different kinds of graphic displays.  The @command{fbset} utility can query and\n"
@@ -10623,11 +12046,11 @@ msgid ""
 "parameters."
 msgstr ""
 
-#: gnu/packages/linux.scm:1444
+#: gnu/packages/linux.scm:1734
 msgid "Utilities that give information about processes"
 msgstr ""
 
-#: gnu/packages/linux.scm:1446
+#: gnu/packages/linux.scm:1736
 msgid ""
 "Procps is the package that has a bunch of small useful utilities\n"
 "that give information about processes using the Linux /proc file system.\n"
@@ -10635,47 +12058,47 @@ msgid ""
 "slabtop, and skill."
 msgstr ""
 
-#: gnu/packages/linux.scm:1500
+#: gnu/packages/linux.scm:1790
 msgid "Tools for working with USB devices, such as lsusb"
 msgstr ""
 
-#: gnu/packages/linux.scm:1502
+#: gnu/packages/linux.scm:1792
 msgid "Tools for working with USB devices, such as lsusb."
 msgstr ""
 
-#: gnu/packages/linux.scm:1578
+#: gnu/packages/linux.scm:1868
 msgid "Creating and checking ext2/ext3/ext4 file systems"
 msgstr ""
 
-#: gnu/packages/linux.scm:1580
+#: gnu/packages/linux.scm:1870
 msgid "This package provides tools for manipulating ext2/ext3/ext4 file systems."
 msgstr ""
 
-#: gnu/packages/linux.scm:1622
+#: gnu/packages/linux.scm:1912
 msgid "Statically-linked e2fsck command from e2fsprogs"
 msgstr ""
 
-#: gnu/packages/linux.scm:1623
+#: gnu/packages/linux.scm:1913
 msgid ""
 "This package provides statically-linked e2fsck command taken\n"
 "from the e2fsprogs package.  It is meant to be used in initrds."
 msgstr ""
 
-#: gnu/packages/linux.scm:1644
+#: gnu/packages/linux.scm:1934
 msgid "Recover deleted files from ext2/3/4 partitions"
 msgstr ""
 
-#: gnu/packages/linux.scm:1646
+#: gnu/packages/linux.scm:1936
 msgid ""
 "Extundelete is a set of tools that can recover deleted files from an\n"
 "ext3 or ext4 partition."
 msgstr ""
 
-#: gnu/packages/linux.scm:1677
+#: gnu/packages/linux.scm:1967
 msgid "Zero non-allocated regions in ext2/ext3/ext4 file systems"
 msgstr ""
 
-#: gnu/packages/linux.scm:1679
+#: gnu/packages/linux.scm:1969
 msgid ""
 "Zerofree finds the unallocated blocks with non-zero value content in an\n"
 "ext2, ext3, or ext4 file system and fills them with zeroes (or another value).\n"
@@ -10683,46 +12106,46 @@ msgid ""
 "Zerofree requires the file system to be unmounted or mounted read-only."
 msgstr ""
 
-#: gnu/packages/linux.scm:1711
+#: gnu/packages/linux.scm:2007
 msgid "System call tracer for Linux"
 msgstr ""
 
-#: gnu/packages/linux.scm:1713
+#: gnu/packages/linux.scm:2009
 msgid ""
 "strace is a system call tracer, i.e. a debugging tool which prints out a\n"
 "trace of all the system calls made by a another process/program."
 msgstr ""
 
-#: gnu/packages/linux.scm:1734
+#: gnu/packages/linux.scm:2030
 msgid "Library call tracer for Linux"
 msgstr ""
 
-#: gnu/packages/linux.scm:1736
+#: gnu/packages/linux.scm:2032
 msgid ""
 "ltrace intercepts and records dynamic library calls which are called by\n"
 "an executed process and the signals received by that process.  It can also\n"
 "intercept and print the system calls executed by the program."
 msgstr ""
 
-#: gnu/packages/linux.scm:1759
+#: gnu/packages/linux.scm:2055
 msgid "The Advanced Linux Sound Architecture libraries"
 msgstr ""
 
-#: gnu/packages/linux.scm:1761 gnu/packages/linux.scm:1812
+#: gnu/packages/linux.scm:2057 gnu/packages/linux.scm:2109
 msgid ""
 "The Advanced Linux Sound Architecture (ALSA) provides audio and\n"
 "MIDI functionality to the Linux-based operating system."
 msgstr ""
 
-#: gnu/packages/linux.scm:1810
+#: gnu/packages/linux.scm:2107
 msgid "Utilities for the Advanced Linux Sound Architecture (ALSA)"
 msgstr ""
 
-#: gnu/packages/linux.scm:1874
+#: gnu/packages/linux.scm:2171
 msgid "Plugins for the Advanced Linux Sound Architecture (ALSA)"
 msgstr ""
 
-#: gnu/packages/linux.scm:1876
+#: gnu/packages/linux.scm:2173
 msgid ""
 "The Advanced Linux Sound Architecture (ALSA) provides audio and\n"
 "MIDI functionality to the Linux-based operating system.  This package enhances ALSA\n"
@@ -10731,11 +12154,11 @@ msgid ""
 "external rate conversion."
 msgstr ""
 
-#: gnu/packages/linux.scm:1910
+#: gnu/packages/linux.scm:2208
 msgid "Programs to configure Linux IP packet filtering rules"
 msgstr ""
 
-#: gnu/packages/linux.scm:1912
+#: gnu/packages/linux.scm:2210
 msgid ""
 "@command{iptables} is the user-space command line program used to\n"
 "configure the Linux 2.4.x and later IPv4 packet filtering ruleset\n"
@@ -10747,11 +12170,11 @@ msgid ""
 "Both commands are targeted at system administrators."
 msgstr ""
 
-#: gnu/packages/linux.scm:1934
+#: gnu/packages/linux.scm:2232
 msgid "Lists information about SCSI or NVMe devices in Linux"
 msgstr ""
 
-#: gnu/packages/linux.scm:1937
+#: gnu/packages/linux.scm:2235
 msgid ""
 "@command{lsscsi} lists SCSI logical units or SCSI targets.  It can\n"
 "also list NVMe namespaces or controllers and show the relationship between a\n"
@@ -10759,11 +12182,11 @@ msgid ""
 "name."
 msgstr ""
 
-#: gnu/packages/linux.scm:1959
+#: gnu/packages/linux.scm:2257
 msgid "Ethernet bridge frame table administration"
 msgstr ""
 
-#: gnu/packages/linux.scm:1962
+#: gnu/packages/linux.scm:2260
 msgid ""
 "ebtables is an application program used to set up and maintain the\n"
 "tables of rules (inside the Linux kernel) that inspect Ethernet frames.  It is\n"
@@ -10771,11 +12194,11 @@ msgid ""
 "that the Ethernet protocol is much simpler than the IP protocol."
 msgstr ""
 
-#: gnu/packages/linux.scm:2016
+#: gnu/packages/linux.scm:2314
 msgid "Utilities for controlling TCP/IP networking and traffic in Linux"
 msgstr ""
 
-#: gnu/packages/linux.scm:2018
+#: gnu/packages/linux.scm:2316
 msgid ""
 "Iproute2 is a collection of utilities for controlling TCP/IP networking\n"
 "and traffic with the Linux kernel.  The most important of these are\n"
@@ -10787,11 +12210,11 @@ msgid ""
 "inadequately in modern network environments, and both should be deprecated."
 msgstr ""
 
-#: gnu/packages/linux.scm:2095
+#: gnu/packages/linux.scm:2394
 msgid "Tools for controlling the network subsystem in Linux"
 msgstr ""
 
-#: gnu/packages/linux.scm:2097
+#: gnu/packages/linux.scm:2396
 msgid ""
 "This package includes the important tools for controlling the network\n"
 "subsystem of the Linux kernel.  This includes arp, ifconfig, netstat, rarp and\n"
@@ -10800,21 +12223,21 @@ msgid ""
 "configuration (iptunnel, ipmaddr)."
 msgstr ""
 
-#: gnu/packages/linux.scm:2135
+#: gnu/packages/linux.scm:2434
 msgid "Library for working with POSIX capabilities"
 msgstr ""
 
-#: gnu/packages/linux.scm:2137
+#: gnu/packages/linux.scm:2436
 msgid ""
 "Libcap2 provides a programming interface to POSIX capabilities on\n"
 "Linux-based operating systems."
 msgstr ""
 
-#: gnu/packages/linux.scm:2179
+#: gnu/packages/linux.scm:2493
 msgid "Manipulate Ethernet bridges"
 msgstr ""
 
-#: gnu/packages/linux.scm:2181
+#: gnu/packages/linux.scm:2495
 msgid ""
 "Utilities for Linux's Ethernet bridging facilities.  A bridge is a way\n"
 "to connect two Ethernet segments together in a protocol independent way.\n"
@@ -10823,11 +12246,11 @@ msgid ""
 "transparently through a bridge."
 msgstr ""
 
-#: gnu/packages/linux.scm:2247
+#: gnu/packages/linux.scm:2544
 msgid "NetLink protocol library suite"
 msgstr ""
 
-#: gnu/packages/linux.scm:2249
+#: gnu/packages/linux.scm:2546
 msgid ""
 "The libnl suite is a collection of libraries providing APIs to netlink\n"
 "protocol based Linux kernel interfaces.  Netlink is an IPC mechanism primarily\n"
@@ -10836,21 +12259,21 @@ msgid ""
 "configuration and monitoring interfaces."
 msgstr ""
 
-#: gnu/packages/linux.scm:2289
+#: gnu/packages/linux.scm:2622
 msgid "Tool for configuring wireless devices"
 msgstr ""
 
-#: gnu/packages/linux.scm:2291
+#: gnu/packages/linux.scm:2624
 msgid ""
 "iw is a new nl80211 based CLI configuration utility for wireless\n"
 "devices.  It replaces @code{iwconfig}, which is deprecated."
 msgstr ""
 
-#: gnu/packages/linux.scm:2335
+#: gnu/packages/linux.scm:2668
 msgid "Analyze power consumption on Intel-based laptops"
 msgstr ""
 
-#: gnu/packages/linux.scm:2337
+#: gnu/packages/linux.scm:2670
 msgid ""
 "PowerTOP is a Linux tool to diagnose issues with power consumption and\n"
 "power management.  In addition to being a diagnostic tool, PowerTOP also has\n"
@@ -10859,31 +12282,31 @@ msgid ""
 "settings."
 msgstr ""
 
-#: gnu/packages/linux.scm:2359
+#: gnu/packages/linux.scm:2692
 msgid "Audio mixer for X and the console"
 msgstr ""
 
-#: gnu/packages/linux.scm:2361
+#: gnu/packages/linux.scm:2694
 msgid ""
 "Aumix adjusts an audio mixer from X, the console, a terminal,\n"
 "the command line or a script."
 msgstr ""
 
-#: gnu/packages/linux.scm:2390
+#: gnu/packages/linux.scm:2723
 msgid "Displays the IO activity of running processes"
 msgstr ""
 
-#: gnu/packages/linux.scm:2392
+#: gnu/packages/linux.scm:2725
 msgid ""
 "Iotop is a Python program with a top like user interface to show the\n"
 "processes currently causing I/O."
 msgstr ""
 
-#: gnu/packages/linux.scm:2446
+#: gnu/packages/linux.scm:2780
 msgid "Support file systems implemented in user space"
 msgstr ""
 
-#: gnu/packages/linux.scm:2448
+#: gnu/packages/linux.scm:2782
 msgid ""
 "As a consequence of its monolithic design, file system code for Linux\n"
 "normally goes into the kernel itself---which is not only a robustness issue,\n"
@@ -10893,11 +12316,11 @@ msgid ""
 "user-space processes."
 msgstr ""
 
-#: gnu/packages/linux.scm:2479
+#: gnu/packages/linux.scm:2813
 msgid "User-space union file system"
 msgstr ""
 
-#: gnu/packages/linux.scm:2481
+#: gnu/packages/linux.scm:2815
 msgid ""
 "UnionFS-FUSE is a flexible union file system implementation in user\n"
 "space, using the FUSE library.  Mounting a union file system allows you to\n"
@@ -10905,15 +12328,15 @@ msgid ""
 "UnionFS-FUSE additionally supports copy-on-write."
 msgstr ""
 
-#: gnu/packages/linux.scm:2509
+#: gnu/packages/linux.scm:2843
 msgid "User-space union file system (statically linked)"
 msgstr ""
 
-#: gnu/packages/linux.scm:2559
+#: gnu/packages/linux.scm:2893
 msgid "Mount remote file systems over SSH"
 msgstr ""
 
-#: gnu/packages/linux.scm:2561
+#: gnu/packages/linux.scm:2895
 msgid ""
 "This is a file system client based on the SSH File Transfer Protocol.\n"
 "Since most SSH servers already support this protocol it is very easy to set\n"
@@ -10921,11 +12344,11 @@ msgid ""
 "file system is as easy as logging into the server with an SSH client."
 msgstr ""
 
-#: gnu/packages/linux.scm:2588
+#: gnu/packages/linux.scm:2922
 msgid "Tool for mounting archive files with FUSE"
 msgstr ""
 
-#: gnu/packages/linux.scm:2589
+#: gnu/packages/linux.scm:2923
 msgid ""
 "archivemount is a FUSE-based file system for Unix variants,\n"
 "including Linux.  Its purpose is to mount archives (i.e. tar, tar.gz, etc.) to a\n"
@@ -10934,11 +12357,11 @@ msgid ""
 "compressed, transparent to other programs, without decompressing them."
 msgstr ""
 
-#: gnu/packages/linux.scm:2618
+#: gnu/packages/linux.scm:2952
 msgid "Tools for non-uniform memory access (NUMA) machines"
 msgstr ""
 
-#: gnu/packages/linux.scm:2620
+#: gnu/packages/linux.scm:2954
 msgid ""
 "NUMA stands for Non-Uniform Memory Access, in other words a system whose\n"
 "memory is not all in one place.  The @command{numactl} program allows you to\n"
@@ -10951,46 +12374,46 @@ msgid ""
 "NUMA performance on your system."
 msgstr ""
 
-#: gnu/packages/linux.scm:2656
+#: gnu/packages/linux.scm:2990
 msgid "Neo2 console layout"
 msgstr ""
 
-#: gnu/packages/linux.scm:2658
+#: gnu/packages/linux.scm:2992
 msgid ""
 "Kbd-neo provides the Neo2 keyboard layout for use with\n"
 "@command{loadkeys(1)} from @code{kbd(4)}."
 msgstr ""
 
-#: gnu/packages/linux.scm:2724
+#: gnu/packages/linux.scm:3058
 msgid "Linux keyboard utilities and keyboard maps"
 msgstr ""
 
-#: gnu/packages/linux.scm:2726
+#: gnu/packages/linux.scm:3060
 msgid ""
 "This package contains keytable files and keyboard utilities compatible\n"
 "for systems using the Linux kernel.  This includes commands such as\n"
 "@code{loadkeys}, @code{setfont}, @code{kbdinfo}, and @code{chvt}."
 msgstr ""
 
-#: gnu/packages/linux.scm:2762
+#: gnu/packages/linux.scm:3096
 msgid "Statically-linked @command{loadkeys} program"
 msgstr ""
 
-#: gnu/packages/linux.scm:2787
+#: gnu/packages/linux.scm:3121
 msgid "Monitor file accesses"
 msgstr ""
 
-#: gnu/packages/linux.scm:2789
+#: gnu/packages/linux.scm:3123
 msgid ""
 "The inotify-tools packages provides a C library and command-line tools\n"
 "to use Linux' inotify mechanism, which allows file accesses to be monitored."
 msgstr ""
 
-#: gnu/packages/linux.scm:2828
+#: gnu/packages/linux.scm:3171
 msgid "Kernel module tools"
 msgstr ""
 
-#: gnu/packages/linux.scm:2829
+#: gnu/packages/linux.scm:3172
 msgid ""
 "Kmod is a set of tools to handle common tasks with Linux\n"
 "kernel modules like insert, remove, list, check properties, resolve\n"
@@ -11001,48 +12424,74 @@ msgid ""
 "from the module-init-tools project."
 msgstr ""
 
-#: gnu/packages/linux.scm:2876
+#: gnu/packages/linux.scm:3219
 msgid "Simple out of memory (OOM) daemon for the Linux kernel"
 msgstr ""
 
-#: gnu/packages/linux.scm:2877
+#: gnu/packages/linux.scm:3220
 msgid ""
 "Early OOM is a minimalist out of memory (OOM) daemon that\n"
 "runs in user space and provides a more responsive and configurable alternative\n"
 "to the in-kernel OOM killer."
 msgstr ""
 
-#: gnu/packages/linux.scm:2958
+#: gnu/packages/linux.scm:3317
 msgid "Userspace device management"
 msgstr ""
 
-#: gnu/packages/linux.scm:2959
+#: gnu/packages/linux.scm:3318
 msgid ""
 "Udev is a daemon which dynamically creates and removes\n"
 "device nodes from /dev/, handles hotplug events and loads drivers at boot\n"
 "time."
 msgstr ""
 
-#: gnu/packages/linux.scm:3050
+#: gnu/packages/linux.scm:3348
+msgid "Bindings to the Linux input handling subsystem"
+msgstr ""
+
+#: gnu/packages/linux.scm:3350
+msgid ""
+"Python-evdev provides bindings to the generic input event interface in\n"
+"Linux.  The @code{evdev} interface serves the purpose of passing events\n"
+"generated in the kernel directly to userspace through character devices that\n"
+"are typically located in @file{/dev/input/}.\n"
+"\n"
+"This package also comes with bindings to @code{uinput}, the userspace input\n"
+"subsystem.  @code{uinput} allows userspace programs to create and handle input\n"
+"devices that can inject events directly into the input subsystem."
+msgstr ""
+
+#: gnu/packages/linux.scm:3432
 msgid "Logical volume management for Linux"
 msgstr ""
 
-#: gnu/packages/linux.scm:3052
+#: gnu/packages/linux.scm:3434
 msgid ""
 "LVM2 is the logical volume management tool set for Linux-based systems.\n"
 "This package includes the user-space libraries and tools, including the device\n"
 "mapper.  Kernel components are part of Linux-libre."
 msgstr ""
 
-#: gnu/packages/linux.scm:3092
+#: gnu/packages/linux.scm:3474
 msgid "Logical volume management for Linux (statically linked)"
 msgstr ""
 
-#: gnu/packages/linux.scm:3134
+#: gnu/packages/linux.scm:3501
+msgid "Tools for manipulating the metadata of device-mapper targets"
+msgstr ""
+
+#: gnu/packages/linux.scm:3502
+msgid ""
+"A suite of tools for manipulating the metadata of the\n"
+"dm-thin, dm-cache and dm-era device-mapper targets."
+msgstr ""
+
+#: gnu/packages/linux.scm:3547
 msgid "Tools for manipulating Linux Wireless Extensions"
 msgstr ""
 
-#: gnu/packages/linux.scm:3135
+#: gnu/packages/linux.scm:3548
 msgid ""
 "Wireless Tools are used to manipulate the now-deprecated\n"
 "Linux Wireless Extensions; consider using @code{iw} instead.  The Wireless\n"
@@ -11051,55 +12500,55 @@ msgid ""
 "interface."
 msgstr ""
 
-#: gnu/packages/linux.scm:3211
+#: gnu/packages/linux.scm:3638
 msgid "Central regulatory domain agent (CRDA) for WiFi"
 msgstr ""
 
-#: gnu/packages/linux.scm:3213
+#: gnu/packages/linux.scm:3640
 msgid ""
 "The Central Regulatory Domain Agent (CRDA) acts as the udev helper for\n"
 "communication between the kernel Linux and user space for regulatory\n"
 "compliance."
 msgstr ""
 
-#: gnu/packages/linux.scm:3281
+#: gnu/packages/linux.scm:3708
 msgid "Wireless regulatory database"
 msgstr ""
 
-#: gnu/packages/linux.scm:3283
+#: gnu/packages/linux.scm:3710
 msgid ""
 "This package contains the wireless regulatory database Central\n"
 "Regulatory Database Agent (CRDA) daemon.  The database contains information on\n"
 "country-specific regulations for the wireless spectrum."
 msgstr ""
 
-#: gnu/packages/linux.scm:3360
+#: gnu/packages/linux.scm:3787
 msgid "Utilities to read temperature/voltage/fan sensors"
 msgstr ""
 
-#: gnu/packages/linux.scm:3362
+#: gnu/packages/linux.scm:3789
 msgid ""
 "Lm-sensors is a hardware health monitoring package for Linux.  It allows\n"
 "you to access information from temperature, voltage, and fan speed sensors.\n"
 "It works with most newer systems."
 msgstr ""
 
-#: gnu/packages/linux.scm:3380
+#: gnu/packages/linux.scm:3807
 msgid "Manipulate Intel microcode bundles"
 msgstr ""
 
-#: gnu/packages/linux.scm:3382
+#: gnu/packages/linux.scm:3809
 msgid ""
 "@command{iucode_tool} is a utility to work with microcode packages for\n"
 "Intel processors.  It can convert between formats, extract specific versions,\n"
 "create a firmware image suitable for the Linux kernel, and more."
 msgstr ""
 
-#: gnu/packages/linux.scm:3411
+#: gnu/packages/linux.scm:3838
 msgid "I2C tools for Linux"
 msgstr ""
 
-#: gnu/packages/linux.scm:3413
+#: gnu/packages/linux.scm:3840
 msgid ""
 "The i2c-tools package contains a heterogeneous set of I2C tools for\n"
 "Linux: a bus probing tool, a chip dumper, register-level SMBus access helpers,\n"
@@ -11107,22 +12556,22 @@ msgid ""
 "SMBus access."
 msgstr ""
 
-#: gnu/packages/linux.scm:3450
+#: gnu/packages/linux.scm:3877
 msgid "Hardware health information viewer"
 msgstr ""
 
-#: gnu/packages/linux.scm:3452
+#: gnu/packages/linux.scm:3879
 msgid ""
 "Xsensors reads data from the libsensors library regarding hardware\n"
 "health such as temperature, voltage and fan speed and displays the information\n"
 "in a digital read-out."
 msgstr ""
 
-#: gnu/packages/linux.scm:3507
+#: gnu/packages/linux.scm:3931
 msgid "Linux profiling with performance counters"
 msgstr ""
 
-#: gnu/packages/linux.scm:3509
+#: gnu/packages/linux.scm:3933
 msgid ""
 "perf is a tool suite for profiling using hardware performance counters,\n"
 "with support in the Linux kernel.  perf can instrument CPU performance\n"
@@ -11131,11 +12580,11 @@ msgid ""
 "particular the @code{perf} command."
 msgstr ""
 
-#: gnu/packages/linux.scm:3532
+#: gnu/packages/linux.scm:3957
 msgid "Simple tool for creating Linux namespace containers"
 msgstr ""
 
-#: gnu/packages/linux.scm:3533
+#: gnu/packages/linux.scm:3958
 msgid ""
 "pflask is a simple tool for creating Linux namespace\n"
 "containers.  It can be used for running a command or even booting an OS inside\n"
@@ -11144,11 +12593,11 @@ msgid ""
 "thanks to the use of namespaces."
 msgstr ""
 
-#: gnu/packages/linux.scm:3609
+#: gnu/packages/linux.scm:4042
 msgid "Container platform"
 msgstr ""
 
-#: gnu/packages/linux.scm:3610
+#: gnu/packages/linux.scm:4043
 msgid ""
 "Singularity is a container platform supporting a number of\n"
 "container image formats.  It can build SquashFS container images or import\n"
@@ -11156,11 +12605,11 @@ msgid ""
 "isolation or root privileges."
 msgstr ""
 
-#: gnu/packages/linux.scm:3638
+#: gnu/packages/linux.scm:4074
 msgid "View and tune ATA disk drive parameters"
 msgstr ""
 
-#: gnu/packages/linux.scm:3640
+#: gnu/packages/linux.scm:4076
 msgid ""
 "@command{hdparm} is a command-line utility to control ATA controllers and\n"
 "disk drives.  It can increase performance and/or reliability by careful tuning\n"
@@ -11174,33 +12623,33 @@ msgid ""
 "Translation (@dfn{SAT}) are also supported."
 msgstr ""
 
-#: gnu/packages/linux.scm:3676
+#: gnu/packages/linux.scm:4114
 msgid "NVM-Express user space tooling for Linux"
 msgstr ""
 
-#: gnu/packages/linux.scm:3677
+#: gnu/packages/linux.scm:4115
 msgid ""
 "Nvme-cli is a utility to provide standards compliant tooling\n"
 "for NVM-Express drives.  It was made specifically for Linux as it relies on the\n"
 "IOCTLs defined by the mainline kernel driver."
 msgstr ""
 
-#: gnu/packages/linux.scm:3701
+#: gnu/packages/linux.scm:4139
 msgid "Tool for enabling and disabling wireless devices"
 msgstr ""
 
-#: gnu/packages/linux.scm:3703
+#: gnu/packages/linux.scm:4141
 msgid ""
 "rfkill is a simple tool for accessing the rfkill device interface,\n"
 "which is used to enable and disable wireless networking devices, typically\n"
 "WLAN, Bluetooth and mobile broadband."
 msgstr ""
 
-#: gnu/packages/linux.scm:3724
+#: gnu/packages/linux.scm:4162
 msgid "Display information on ACPI devices"
 msgstr ""
 
-#: gnu/packages/linux.scm:3725
+#: gnu/packages/linux.scm:4163
 msgid ""
 "@code{acpi} attempts to replicate the functionality of the\n"
 "\"old\" @code{apm} command on ACPI systems, including battery and thermal\n"
@@ -11208,11 +12657,11 @@ msgid ""
 "about ACPI devices."
 msgstr ""
 
-#: gnu/packages/linux.scm:3744
+#: gnu/packages/linux.scm:4182
 msgid "Daemon for delivering ACPI events to user-space programs"
 msgstr ""
 
-#: gnu/packages/linux.scm:3746
+#: gnu/packages/linux.scm:4184
 msgid ""
 "acpid is designed to notify user-space programs of Advanced\n"
 "Configuration and Power Interface (ACPI) events.  acpid should be started\n"
@@ -11221,37 +12670,37 @@ msgid ""
 "specified in /etc/acpi/events and execute the rules that match the event."
 msgstr ""
 
-#: gnu/packages/linux.scm:3768
+#: gnu/packages/linux.scm:4206
 msgid "System utilities based on Linux sysfs"
 msgstr ""
 
-#: gnu/packages/linux.scm:3770
+#: gnu/packages/linux.scm:4208
 msgid ""
 "These are a set of utilities built upon sysfs, a virtual file system in\n"
 "Linux kernel versions 2.5+ that exposes a system's device tree.  The package\n"
 "also contains the libsysfs library."
 msgstr ""
 
-#: gnu/packages/linux.scm:3800
+#: gnu/packages/linux.scm:4238
 msgid "System utilities based on Linux sysfs (version 1.x)"
 msgstr ""
 
-#: gnu/packages/linux.scm:3821
+#: gnu/packages/linux.scm:4259
 msgid "Utilities to get and set CPU frequency on Linux"
 msgstr ""
 
-#: gnu/packages/linux.scm:3823
+#: gnu/packages/linux.scm:4261
 msgid ""
 "The cpufrequtils suite contains utilities to retrieve CPU frequency\n"
 "information, and set the CPU frequency if supported, using the cpufreq\n"
 "capabilities of the Linux kernel."
 msgstr ""
 
-#: gnu/packages/linux.scm:3842
+#: gnu/packages/linux.scm:4280
 msgid "Interface library for the Linux IEEE1394 drivers"
 msgstr ""
 
-#: gnu/packages/linux.scm:3844
+#: gnu/packages/linux.scm:4282
 msgid ""
 "Libraw1394 is the only supported interface to the kernel side raw1394 of\n"
 "the Linux IEEE-1394 subsystem, which provides direct access to the connected\n"
@@ -11260,46 +12709,46 @@ msgid ""
 "protocol in question."
 msgstr ""
 
-#: gnu/packages/linux.scm:3868
+#: gnu/packages/linux.scm:4306
 msgid "AV/C protocol library for IEEE 1394"
 msgstr ""
 
-#: gnu/packages/linux.scm:3870
+#: gnu/packages/linux.scm:4308
 msgid ""
 "Libavc1394 is a programming interface to the AV/C specification from\n"
 "the 1394 Trade Association.  AV/C stands for Audio/Video Control."
 msgstr ""
 
-#: gnu/packages/linux.scm:3892
+#: gnu/packages/linux.scm:4330
 msgid "Isochronous streaming media library for IEEE 1394"
 msgstr ""
 
-#: gnu/packages/linux.scm:3894
+#: gnu/packages/linux.scm:4332
 msgid ""
 "The libiec61883 library provides a higher level API for streaming DV,\n"
 "MPEG-2 and audio over Linux IEEE 1394."
 msgstr ""
 
-#: gnu/packages/linux.scm:3943
+#: gnu/packages/linux.scm:4383
 msgid "Tool for managing Linux Software RAID arrays"
 msgstr ""
 
-#: gnu/packages/linux.scm:3945
+#: gnu/packages/linux.scm:4385
 msgid ""
 "mdadm is a tool for managing Linux Software RAID arrays.  It can create,\n"
 "assemble, report on, and monitor arrays.  It can also move spares between raid\n"
 "arrays when needed."
 msgstr ""
 
-#: gnu/packages/linux.scm:3977
+#: gnu/packages/linux.scm:4417
 msgid "Statically-linked 'mdadm' command for use in an initrd"
 msgstr ""
 
-#: gnu/packages/linux.scm:4047
+#: gnu/packages/linux.scm:4506
 msgid "Access block devices through multiple paths"
 msgstr ""
 
-#: gnu/packages/linux.scm:4049
+#: gnu/packages/linux.scm:4508
 msgid ""
 "This package provides the following binaries to drive the\n"
 "Linux Device Mapper multipathing driver:\n"
@@ -11312,106 +12761,106 @@ msgid ""
 "@end enumerate"
 msgstr ""
 
-#: gnu/packages/linux.scm:4081
+#: gnu/packages/linux.scm:4546
 msgid "Linux-native asynchronous I/O access library"
 msgstr ""
 
-#: gnu/packages/linux.scm:4083
+#: gnu/packages/linux.scm:4548
 msgid ""
 "This library enables userspace to use Linux kernel asynchronous I/O\n"
 "system calls, important for the performance of databases and other advanced\n"
 "applications."
 msgstr ""
 
-#: gnu/packages/linux.scm:4124
+#: gnu/packages/linux.scm:4590
 msgid "Block layer IO tracing mechanism"
 msgstr ""
 
-#: gnu/packages/linux.scm:4125
+#: gnu/packages/linux.scm:4591
 msgid ""
 "Blktrace is a block layer IO tracing mechanism which provides\n"
 "detailed information about request queue operations to user space.  It extracts\n"
 "event traces from the kernel (via the relaying through the debug file system)."
 msgstr ""
 
-#: gnu/packages/linux.scm:4147
+#: gnu/packages/linux.scm:4613
 msgid "Bluetooth subband audio codec"
 msgstr ""
 
-#: gnu/packages/linux.scm:4149
+#: gnu/packages/linux.scm:4615
 msgid ""
 "The SBC is a digital audio encoder and decoder used to transfer data to\n"
 "Bluetooth audio output devices like headphones or loudspeakers."
 msgstr ""
 
-#: gnu/packages/linux.scm:4216
+#: gnu/packages/linux.scm:4681
 msgid "Linux Bluetooth protocol stack"
 msgstr ""
 
-#: gnu/packages/linux.scm:4218
+#: gnu/packages/linux.scm:4683
 msgid ""
 "BlueZ provides support for the core Bluetooth layers and protocols.  It\n"
 "is flexible, efficient and uses a modular implementation."
 msgstr ""
 
-#: gnu/packages/linux.scm:4248
+#: gnu/packages/linux.scm:4705
 msgid "Mount exFAT file systems"
 msgstr ""
 
-#: gnu/packages/linux.scm:4250
+#: gnu/packages/linux.scm:4707
 msgid ""
 "This package provides a FUSE-based file system that provides read and\n"
 "write access to exFAT devices."
 msgstr ""
 
-#: gnu/packages/linux.scm:4273
+#: gnu/packages/linux.scm:4730
 msgid "Mount ISO file system images"
 msgstr ""
 
-#: gnu/packages/linux.scm:4275
+#: gnu/packages/linux.scm:4732
 msgid ""
 "FuseISO is a FUSE module to mount ISO file system images (.iso, .nrg,\n"
 ".bin, .mdf and .img files).  It supports plain ISO9660 Level 1 and 2, Rock\n"
 "Ridge, Joliet, and zisofs."
 msgstr ""
 
-#: gnu/packages/linux.scm:4318
+#: gnu/packages/linux.scm:4775
 msgid "Mouse support for the Linux console"
 msgstr ""
 
-#: gnu/packages/linux.scm:4320
+#: gnu/packages/linux.scm:4777
 msgid ""
 "The GPM (general-purpose mouse) daemon is a mouse server for\n"
 "applications running on the Linux console.  It allows users to select items\n"
 "and copy/paste text in the console and in xterm."
 msgstr ""
 
-#: gnu/packages/linux.scm:4394
+#: gnu/packages/linux.scm:4849
 msgid "Create and manage btrfs copy-on-write file systems"
 msgstr ""
 
-#: gnu/packages/linux.scm:4395
+#: gnu/packages/linux.scm:4850
 msgid ""
 "Btrfs is a @dfn{copy-on-write} (CoW) file system for Linux\n"
 "aimed at implementing advanced features while focusing on fault tolerance,\n"
 "repair and easy administration."
 msgstr ""
 
-#: gnu/packages/linux.scm:4428
+#: gnu/packages/linux.scm:4883
 msgid "Statically-linked btrfs command from btrfs-progs"
 msgstr ""
 
-#: gnu/packages/linux.scm:4429
+#: gnu/packages/linux.scm:4884
 msgid ""
 "This package provides the statically-linked @command{btrfs}\n"
 "from the btrfs-progs package.  It is meant to be used in initrds."
 msgstr ""
 
-#: gnu/packages/linux.scm:4460
+#: gnu/packages/linux.scm:4915
 msgid "Tools to manage Cramfs file systems"
 msgstr ""
 
-#: gnu/packages/linux.scm:4461
+#: gnu/packages/linux.scm:4916
 msgid ""
 "Cramfs is a Linux file system designed to be simple, small,\n"
 "and to compress things well.  It is used on a number of embedded systems and\n"
@@ -11419,11 +12868,11 @@ msgid ""
 "blocks and random block placement."
 msgstr ""
 
-#: gnu/packages/linux.scm:4494
+#: gnu/packages/linux.scm:4949
 msgid "Find compression type/ratio on Btrfs files"
 msgstr ""
 
-#: gnu/packages/linux.scm:4495
+#: gnu/packages/linux.scm:4950
 msgid ""
 "@command{compsize} takes a list of files (given as\n"
 "arguments) on a Btrfs file system and measures used compression types and\n"
@@ -11440,22 +12889,32 @@ msgid ""
 "obviously it can be shared with files outside our set)."
 msgstr ""
 
-#: gnu/packages/linux.scm:4543
+#: gnu/packages/linux.scm:4998
 msgid "Userland tools for f2fs"
 msgstr ""
 
-#: gnu/packages/linux.scm:4545
+#: gnu/packages/linux.scm:5000
 msgid ""
 "F2FS, the Flash-Friendly File System, is a modern file system\n"
 "designed to be fast and durable on flash devices such as solid-state\n"
 "disks and SD cards.  This package provides the userland utilities."
 msgstr ""
 
-#: gnu/packages/linux.scm:4593
+#: gnu/packages/linux.scm:5088
+msgid "Statically-linked fsck.f2fs command from f2fs-tools"
+msgstr ""
+
+#: gnu/packages/linux.scm:5089
+msgid ""
+"This package provides statically-linked fsck.f2fs command taken\n"
+"from the f2fs-tools package. It is meant to be used in initrds."
+msgstr ""
+
+#: gnu/packages/linux.scm:5118
 msgid "Free-fall protection for spinning laptop hard drives"
 msgstr ""
 
-#: gnu/packages/linux.scm:4595
+#: gnu/packages/linux.scm:5120
 msgid ""
 "Prevents shock damage to the internal spinning hard drive(s) of some\n"
 "HP and Dell laptops.  When sudden movement is detected, all input/output\n"
@@ -11465,11 +12924,11 @@ msgid ""
 "feature, and a laptop with an accelerometer.  It has no effect on SSDs."
 msgstr ""
 
-#: gnu/packages/linux.scm:4652
+#: gnu/packages/linux.scm:5177
 msgid "Simple fan control program"
 msgstr ""
 
-#: gnu/packages/linux.scm:4654
+#: gnu/packages/linux.scm:5179
 msgid ""
 "Thinkfan is a simple fan control program.  It reads temperatures,\n"
 "checks them against configured limits and switches to appropriate (also\n"
@@ -11478,11 +12937,11 @@ msgid ""
 "from userspace."
 msgstr ""
 
-#: gnu/packages/linux.scm:4708
+#: gnu/packages/linux.scm:5233
 msgid "ThinkPad battery charge controller"
 msgstr ""
 
-#: gnu/packages/linux.scm:4710
+#: gnu/packages/linux.scm:5235
 msgid ""
 "Tpacpi-bat is a command-line interface to control battery charging on\n"
 "@uref{https://github.com/teleshoes/tpacpi-bat/wiki/Supported-Hardware, Lenovo\n"
@@ -11497,22 +12956,22 @@ msgid ""
 "supported."
 msgstr ""
 
-#: gnu/packages/linux.scm:4766
+#: gnu/packages/linux.scm:5292
 msgid "Read-write access to NTFS file systems"
 msgstr ""
 
-#: gnu/packages/linux.scm:4768
+#: gnu/packages/linux.scm:5294
 msgid ""
 "NTFS-3G provides read-write access to NTFS file systems, which are\n"
 "commonly found on Microsoft Windows.  It is implemented as a FUSE file system.\n"
 "The package provides additional NTFS tools."
 msgstr ""
 
-#: gnu/packages/linux.scm:4823
+#: gnu/packages/linux.scm:5349
 msgid "Utilities and libraries for working with RDMA devices"
 msgstr ""
 
-#: gnu/packages/linux.scm:4825
+#: gnu/packages/linux.scm:5351
 msgid ""
 "This package provides userspace components for the InfiniBand\n"
 "subsystem of the Linux kernel.  Specifically it contains userspace\n"
@@ -11532,11 +12991,11 @@ msgid ""
 "@end enumerate"
 msgstr ""
 
-#: gnu/packages/linux.scm:4878
+#: gnu/packages/linux.scm:5404
 msgid "Open Fabrics Enterprise Distribution (OFED) Performance Tests"
 msgstr ""
 
-#: gnu/packages/linux.scm:4879
+#: gnu/packages/linux.scm:5405
 msgid ""
 "This is a collection of tests written over uverbs intended for\n"
 "use as a performance micro-benchmark. The tests may be used for hardware or\n"
@@ -11552,32 +13011,32 @@ msgid ""
 "@end enumerate"
 msgstr ""
 
-#: gnu/packages/linux.scm:4917
+#: gnu/packages/linux.scm:5447
 msgid "Random number generator daemon"
 msgstr ""
 
-#: gnu/packages/linux.scm:4919
+#: gnu/packages/linux.scm:5449
 msgid ""
 "Monitor a hardware random number generator, and supply entropy\n"
 "from that to the system kernel's @file{/dev/random} machinery."
 msgstr ""
 
-#: gnu/packages/linux.scm:4959
+#: gnu/packages/linux.scm:5489
 msgid "CPU frequency and voltage scaling tools for Linux"
 msgstr ""
 
-#: gnu/packages/linux.scm:4961
+#: gnu/packages/linux.scm:5491
 msgid ""
 "cpupower is a set of user-space tools that use the cpufreq feature of the\n"
 "Linux kernel to retrieve and control processor features related to power saving,\n"
 "such as frequency and voltage scaling."
 msgstr ""
 
-#: gnu/packages/linux.scm:4991
+#: gnu/packages/linux.scm:5521
 msgid "Display and update Intel-CPU energy-performance policy"
 msgstr ""
 
-#: gnu/packages/linux.scm:4993
+#: gnu/packages/linux.scm:5523
 msgid ""
 "@command{x86_energy_perf_policy} displays and updates energy-performance\n"
 "policy settings specific to Intel Architecture Processors.  Settings are\n"
@@ -11585,11 +13044,11 @@ msgid ""
 "cpufreq sub-system is enabled or not."
 msgstr ""
 
-#: gnu/packages/linux.scm:5014
+#: gnu/packages/linux.scm:5544
 msgid "Entropy source for the Linux random number generator"
 msgstr ""
 
-#: gnu/packages/linux.scm:5016
+#: gnu/packages/linux.scm:5546
 msgid ""
 "haveged generates an unpredictable stream of random numbers for use by\n"
 "Linux's @file{/dev/random} and @file{/dev/urandom} devices.  The kernel's\n"
@@ -11607,11 +13066,11 @@ msgid ""
 "not as a replacement for it."
 msgstr ""
 
-#: gnu/packages/linux.scm:5101
+#: gnu/packages/linux.scm:5631
 msgid "eCryptfs cryptographic file system utilities"
 msgstr ""
 
-#: gnu/packages/linux.scm:5103
+#: gnu/packages/linux.scm:5633
 msgid ""
 "eCryptfs is a POSIX-compliant stacked cryptographic file system for Linux.\n"
 "Each file's cryptographic meta-data is stored inside the file itself, along\n"
@@ -11621,11 +13080,11 @@ msgid ""
 "2.6.19.  This package contains the userland utilities to manage it."
 msgstr ""
 
-#: gnu/packages/linux.scm:5134
+#: gnu/packages/linux.scm:5664
 msgid "NFSv4 support library for name/ID mapping"
 msgstr ""
 
-#: gnu/packages/linux.scm:5135
+#: gnu/packages/linux.scm:5665
 msgid ""
 "Libnfsidmap is a library holding mulitiple methods of\n"
 "mapping names to ids and visa versa, mainly for NFSv4.  It provides an\n"
@@ -11633,43 +13092,43 @@ msgid ""
 "the default @code{nsswitch} and the experimental @code{umich_ldap}."
 msgstr ""
 
-#: gnu/packages/linux.scm:5169
+#: gnu/packages/linux.scm:5699
 msgid "Tools for loading and managing Linux kernel modules"
 msgstr ""
 
-#: gnu/packages/linux.scm:5171
+#: gnu/packages/linux.scm:5701
 msgid ""
 "Tools for loading and managing Linux kernel modules, such as\n"
 "@code{modprobe}, @code{insmod}, @code{lsmod}, and more."
 msgstr ""
 
-#: gnu/packages/linux.scm:5208
+#: gnu/packages/linux.scm:5739
 msgid "Machine check monitor for x86 Linux systems"
 msgstr ""
 
-#: gnu/packages/linux.scm:5210
+#: gnu/packages/linux.scm:5741
 msgid ""
-"The mcelog daemon is required by the Linux kernel to log memory, I/O, CPU,\n"
-"and other hardware errors on x86 systems.  It can also perform user-defined\n"
-"tasks, such as bringing bad pages off-line, when configurable error thresholds\n"
-"are exceeded."
+"The mcelog daemon logs memory, I/O, CPU, and other hardware errors on x86\n"
+"systems running the kernel Linux.  It can also perform user-defined tasks, such\n"
+"as bringing bad pages off-line, when configurable error thresholds are\n"
+"exceeded."
 msgstr ""
 
-#: gnu/packages/linux.scm:5241
+#: gnu/packages/linux.scm:5772
 msgid "MTD Flash Storage Utilities"
 msgstr ""
 
-#: gnu/packages/linux.scm:5242
+#: gnu/packages/linux.scm:5773
 msgid ""
 "This package provides utilities for testing, partitioning, etc\n"
 "of flash storage."
 msgstr ""
 
-#: gnu/packages/linux.scm:5265
+#: gnu/packages/linux.scm:5806
 msgid "Interface to Linux's seccomp syscall filtering mechanism"
 msgstr ""
 
-#: gnu/packages/linux.scm:5266
+#: gnu/packages/linux.scm:5807
 msgid ""
 "The libseccomp library provides an easy to use, platform\n"
 "independent, interface to the Linux Kernel's syscall filtering mechanism.  The\n"
@@ -11679,11 +13138,11 @@ msgid ""
 "developers."
 msgstr ""
 
-#: gnu/packages/linux.scm:5312
+#: gnu/packages/linux.scm:5853
 msgid "Usage monitor for AMD Radeon graphics"
 msgstr ""
 
-#: gnu/packages/linux.scm:5313
+#: gnu/packages/linux.scm:5854
 msgid ""
 "RadeonTop monitors resource consumption on supported AMD\n"
 "Radeon Graphics Processing Units (GPUs), either in real time as bar graphs on\n"
@@ -11693,21 +13152,21 @@ msgid ""
 "under OpenGL graphics workloads."
 msgstr ""
 
-#: gnu/packages/linux.scm:5356
+#: gnu/packages/linux.scm:5890
 msgid "Tool and library to manipulate EFI variables"
 msgstr ""
 
-#: gnu/packages/linux.scm:5357
+#: gnu/packages/linux.scm:5891
 msgid ""
 "This package provides a library and a command line\n"
 "interface to the variable facility of UEFI boot firmware."
 msgstr ""
 
-#: gnu/packages/linux.scm:5396
+#: gnu/packages/linux.scm:5925
 msgid "Modify the Extensible Firmware Interface (EFI) boot manager"
 msgstr ""
 
-#: gnu/packages/linux.scm:5398
+#: gnu/packages/linux.scm:5927
 msgid ""
 "@code{efibootmgr} is a user-space application to modify the Intel\n"
 "Extensible Firmware Interface (EFI) Boot Manager.  This application can\n"
@@ -11715,11 +13174,11 @@ msgid ""
 "running boot option, and more."
 msgstr ""
 
-#: gnu/packages/linux.scm:5434
+#: gnu/packages/linux.scm:5963
 msgid "Performance monitoring tools for Linux"
 msgstr ""
 
-#: gnu/packages/linux.scm:5435
+#: gnu/packages/linux.scm:5964
 msgid ""
 "The sysstat utilities are a collection of performance\n"
 "monitoring tools for Linux.  These include @code{mpstat}, @code{iostat},\n"
@@ -11727,11 +13186,11 @@ msgid ""
 "@code{sadf} and @code{sa}."
 msgstr ""
 
-#: gnu/packages/linux.scm:5474
+#: gnu/packages/linux.scm:6003
 msgid "GNU/Linux application to control backlights"
 msgstr ""
 
-#: gnu/packages/linux.scm:5476
+#: gnu/packages/linux.scm:6005
 msgid ""
 "Light is a program to send commands to screen backlight controllers\n"
 "under GNU/Linux.  Features include:\n"
@@ -11741,17 +13200,15 @@ msgid ""
 "@item Light can automatically figure out the best controller to use, making\n"
 "full use of underlying hardware.\n"
 "@item It is possible to set a minimum brightness value, as some controllers\n"
-"set the screen to be pitch black at a vaĺue of 0 (or higher).\n"
+"set the screen to be pitch black at a value of 0 (or higher).\n"
 "@end itemize\n"
-"\n"
-"Light is the successor of lightscript."
 msgstr ""
 
-#: gnu/packages/linux.scm:5519
+#: gnu/packages/linux.scm:6046
 msgid "Backlight and LED brightness control"
 msgstr ""
 
-#: gnu/packages/linux.scm:5521
+#: gnu/packages/linux.scm:6048
 msgid ""
 "This program allows you read and control device brightness.  Devices\n"
 "include backlight and LEDs.  It can also preserve current brightness before\n"
@@ -11761,11 +13218,11 @@ msgid ""
 "interface in sysfs, which can be accomplished with the included udev rules."
 msgstr ""
 
-#: gnu/packages/linux.scm:5644
+#: gnu/packages/linux.scm:6171
 msgid "Power management tool for Linux"
 msgstr ""
 
-#: gnu/packages/linux.scm:5645
+#: gnu/packages/linux.scm:6172
 msgid ""
 "TLP is a power management tool for Linux.  It comes with\n"
 "a default configuration already optimized for battery life.  Nevertheless,\n"
@@ -11773,11 +13230,11 @@ msgid ""
 "every time the power supply source is changed."
 msgstr ""
 
-#: gnu/packages/linux.scm:5671
+#: gnu/packages/linux.scm:6198
 msgid "List hardware information"
 msgstr ""
 
-#: gnu/packages/linux.scm:5673
+#: gnu/packages/linux.scm:6200
 msgid ""
 "@command{lshw} (Hardware Lister) is a small tool to provide\n"
 "detailed information on the hardware configuration of the machine.\n"
@@ -11787,11 +13244,11 @@ msgid ""
 "machines (PowerMac G4 is known to work)."
 msgstr ""
 
-#: gnu/packages/linux.scm:5696
+#: gnu/packages/linux.scm:6223
 msgid "Netlink utility library"
 msgstr ""
 
-#: gnu/packages/linux.scm:5697
+#: gnu/packages/linux.scm:6224
 msgid ""
 "Libmnl is a minimalistic user-space library oriented to\n"
 "Netlink developers.  There are a lot of common tasks in parsing, validating,\n"
@@ -11800,11 +13257,11 @@ msgid ""
 "re-use code and to avoid re-inventing the wheel."
 msgstr ""
 
-#: gnu/packages/linux.scm:5723
+#: gnu/packages/linux.scm:6248
 msgid "Netlink programming interface to the Linux nf_tables subsystem"
 msgstr ""
 
-#: gnu/packages/linux.scm:5724
+#: gnu/packages/linux.scm:6249
 msgid ""
 "Libnftnl is a userspace library providing a low-level netlink\n"
 "programming interface to the in-kernel nf_tables subsystem.  The library\n"
@@ -11812,11 +13269,11 @@ msgid ""
 "used by nftables."
 msgstr ""
 
-#: gnu/packages/linux.scm:5754
+#: gnu/packages/linux.scm:6279
 msgid "Userspace utility for Linux packet filtering"
 msgstr ""
 
-#: gnu/packages/linux.scm:5755
+#: gnu/packages/linux.scm:6280
 msgid ""
 "nftables is the project that aims to replace the existing\n"
 "{ip,ip6,arp,eb}tables framework.  Basically, this project provides a new packet\n"
@@ -11826,11 +13283,11 @@ msgid ""
 "userspace queueing component and the logging subsystem."
 msgstr ""
 
-#: gnu/packages/linux.scm:5854
+#: gnu/packages/linux.scm:6388
 msgid "Unprivileged chroot, bind mount, and binfmt_misc"
 msgstr ""
 
-#: gnu/packages/linux.scm:5856
+#: gnu/packages/linux.scm:6390
 msgid ""
 "PRoot is a user-space implementation of @code{chroot}, @code{mount --bind},\n"
 "and @code{binfmt_misc}.  This means that users don't need any privileges or\n"
@@ -11843,15 +13300,15 @@ msgid ""
 "available in the kernel Linux."
 msgstr ""
 
-#: gnu/packages/linux.scm:5872
+#: gnu/packages/linux.scm:6406
 msgid "Unprivileged chroot, bind mount, and binfmt_misc (statically linked)"
 msgstr ""
 
-#: gnu/packages/linux.scm:5918
+#: gnu/packages/linux.scm:6453
 msgid "Linux tool to dump x86 CPUID information about the CPU(s)"
 msgstr ""
 
-#: gnu/packages/linux.scm:5919
+#: gnu/packages/linux.scm:6454
 msgid ""
 "cpuid dumps detailed information about the CPU(s) gathered\n"
 "from the CPUID instruction, and also determines the exact model of CPU(s).  It\n"
@@ -11859,22 +13316,22 @@ msgid ""
 "NexGen, Rise, and SiS CPUs."
 msgstr ""
 
-#: gnu/packages/linux.scm:5946
+#: gnu/packages/linux.scm:6482
 msgid "Use a FUSE file system to access data over MTP"
 msgstr ""
 
-#: gnu/packages/linux.scm:5947
+#: gnu/packages/linux.scm:6483
 msgid ""
 "jmtpfs uses FUSE (file system in userspace) to provide access\n"
 "to data over the Media Transfer Protocol (MTP).  Unprivileged users can mount\n"
 "the MTP device as a file system."
 msgstr ""
 
-#: gnu/packages/linux.scm:5972
+#: gnu/packages/linux.scm:6513
 msgid "Utility to show process environment"
 msgstr ""
 
-#: gnu/packages/linux.scm:5973
+#: gnu/packages/linux.scm:6514
 msgid ""
 "Procenv is a command-line tool that displays as much detail about\n"
 "itself and its environment as possible.  It can be used as a test\n"
@@ -11882,11 +13339,11 @@ msgid ""
 "comparing system environments."
 msgstr ""
 
-#: gnu/packages/linux.scm:6000
+#: gnu/packages/linux.scm:6541
 msgid "Open Fabric Interfaces"
 msgstr ""
 
-#: gnu/packages/linux.scm:6002
+#: gnu/packages/linux.scm:6543
 msgid ""
 "OpenFabrics Interfaces (OFI) is a framework focused on exporting fabric\n"
 "communication services to applications.  OFI is best described as a collection\n"
@@ -11900,11 +13357,11 @@ msgid ""
 "libraries, which are often integrated directly into libfabric."
 msgstr ""
 
-#: gnu/packages/linux.scm:6057
+#: gnu/packages/linux.scm:6598
 msgid "Intel Performance Scaled Messaging (PSM) Libraries"
 msgstr ""
 
-#: gnu/packages/linux.scm:6059
+#: gnu/packages/linux.scm:6600
 msgid ""
 "The PSM Messaging API, or PSM API, is Intel's low-level user-level\n"
 "communications interface for the True Scale family of products.  PSM users are\n"
@@ -11912,22 +13369,22 @@ msgid ""
 "interfaces in parallel environments."
 msgstr ""
 
-#: gnu/packages/linux.scm:6100
+#: gnu/packages/linux.scm:6641
 msgid "Take screenshots of one or more Linux text consoles"
 msgstr ""
 
-#: gnu/packages/linux.scm:6102
+#: gnu/packages/linux.scm:6643
 msgid ""
 "snapscreenshot saves a screenshot of one or more Linux text consoles as a\n"
 "Targa (@dfn{.tga}) image.  It can be used by anyone with read access to the\n"
 "relevant @file{/dev/vcs*} file(s)."
 msgstr ""
 
-#: gnu/packages/linux.scm:6156
+#: gnu/packages/linux.scm:6697
 msgid "Take a screenshot of the contents of the Linux framebuffer"
 msgstr ""
 
-#: gnu/packages/linux.scm:6158
+#: gnu/packages/linux.scm:6699
 msgid ""
 "fbcat saves the contents of the Linux framebuffer (@file{/dev/fb*}), or\n"
 "a dump therof.  It supports a wide range of drivers and pixel formats.\n"
@@ -11939,22 +13396,22 @@ msgid ""
 "emulates the behaviour of Gunnar Monell's older fbgrab utility."
 msgstr ""
 
-#: gnu/packages/linux.scm:6189
+#: gnu/packages/linux.scm:6730
 msgid "Control groups management tools"
 msgstr ""
 
-#: gnu/packages/linux.scm:6190
+#: gnu/packages/linux.scm:6731
 msgid ""
 "Control groups is Linux kernel method for process resource\n"
 "restriction, permission handling and more.  This package provides userspace\n"
 "interface to this kernel feature."
 msgstr ""
 
-#: gnu/packages/linux.scm:6223
+#: gnu/packages/linux.scm:6764
 msgid "Control fan speed on Macbooks"
 msgstr ""
 
-#: gnu/packages/linux.scm:6225
+#: gnu/packages/linux.scm:6766
 msgid ""
 "mbpfan is a fan control daemon for Apple Macbooks.  It uses input from\n"
 "the @code{coretemp} module and sets the fan speed using the @code{applesmc}\n"
@@ -11962,11 +13419,11 @@ msgid ""
 "privileges."
 msgstr ""
 
-#: gnu/packages/linux.scm:6268
+#: gnu/packages/linux.scm:6809
 msgid "Intel Performance Scaled Messaging 2 (PSM2) library"
 msgstr ""
 
-#: gnu/packages/linux.scm:6270
+#: gnu/packages/linux.scm:6811
 msgid ""
 "This package is low-level user-level Intel's communications interface.\n"
 "The PSM2 API is a high-performance vendor-specific protocol that provides a\n"
@@ -11974,11 +13431,11 @@ msgid ""
 "high-speed networking devices."
 msgstr ""
 
-#: gnu/packages/linux.scm:6310
+#: gnu/packages/linux.scm:6851
 msgid "Performance event monitoring library"
 msgstr ""
 
-#: gnu/packages/linux.scm:6312
+#: gnu/packages/linux.scm:6853
 msgid ""
 "This package provides a library called libpfm4, which is used to develop\n"
 "monitoring tools exploiting the performance monitoring events such as those\n"
@@ -11993,11 +13450,11 @@ msgid ""
 "introduced in Linux 2.6.31."
 msgstr ""
 
-#: gnu/packages/linux.scm:6340
+#: gnu/packages/linux.scm:6881
 msgid "Low-level netfilter netlink communication library"
 msgstr ""
 
-#: gnu/packages/linux.scm:6342
+#: gnu/packages/linux.scm:6883
 msgid ""
 "@code{libnfnetlink} is the low-level library for netfilter related\n"
 "kernel/userspace communication.  It provides a generic messaging\n"
@@ -12006,11 +13463,11 @@ msgid ""
 "management tools in userspace."
 msgstr ""
 
-#: gnu/packages/linux.scm:6369
+#: gnu/packages/linux.scm:6910
 msgid "Simple netlink library for Go"
 msgstr ""
 
-#: gnu/packages/linux.scm:6370
+#: gnu/packages/linux.scm:6911
 msgid ""
 "The netlink package provides a simple netlink library for\n"
 "Go.  Netlink is the interface a user-space program in Linux uses to\n"
@@ -12018,21 +13475,21 @@ msgid ""
 "IP addresses and routes, and configure IPsec."
 msgstr ""
 
-#: gnu/packages/linux.scm:6414
+#: gnu/packages/linux.scm:6955
 msgid "XFS file system tools"
 msgstr ""
 
-#: gnu/packages/linux.scm:6415
+#: gnu/packages/linux.scm:6956
 msgid ""
 "This package provides commands to create and check XFS\n"
 "file systems."
 msgstr ""
 
-#: gnu/packages/linux.scm:6453
+#: gnu/packages/linux.scm:6994
 msgid "Generate ext2 file system as a normal user"
 msgstr ""
 
-#: gnu/packages/linux.scm:6454
+#: gnu/packages/linux.scm:6995
 msgid ""
 "This package provides a program to generate an ext2\n"
 "file system as a normal (non-root) user.  It does not require you to mount\n"
@@ -12040,11 +13497,11 @@ msgid ""
 "the superuser to make device nodes."
 msgstr ""
 
-#: gnu/packages/linux.scm:6517
+#: gnu/packages/linux.scm:7080
 msgid "Provides a fake root environment"
 msgstr ""
 
-#: gnu/packages/linux.scm:6518
+#: gnu/packages/linux.scm:7081
 msgid ""
 "@command{fakeroot} runs a command in an environment where\n"
 "it appears to have root privileges for file manipulation. This is useful\n"
@@ -12055,21 +13512,36 @@ msgid ""
 "have to construct the archives directly, without using the archiver."
 msgstr ""
 
-#: gnu/packages/linux.scm:6565
+#: gnu/packages/linux.scm:7109
+msgid "Emulate @code{chroot} by overriding file system calls"
+msgstr ""
+
+#: gnu/packages/linux.scm:7111
+msgid ""
+"@command{fakechroot} runs a command in an environment were is additional\n"
+"possibility to use @code{chroot} command without root privileges.  This is\n"
+"useful for allowing users to create own chrooted environment with possibility\n"
+"to install another packages without need for root privileges.\n"
+"\n"
+"It works by providing @file{libfakechroot.so}, a shared library meant to be\n"
+"set as @code{LD_PRELOAD} to override the C library file system functions."
+msgstr ""
+
+#: gnu/packages/linux.scm:7158
 msgid "Dispatch input peripherals events to a device file"
 msgstr ""
 
-#: gnu/packages/linux.scm:6566
+#: gnu/packages/linux.scm:7159
 msgid ""
 "inputattach dispatches input events from several device\n"
 "types and interfaces and translates so that the X server can use them."
 msgstr ""
 
-#: gnu/packages/linux.scm:6599
+#: gnu/packages/linux.scm:7192
 msgid "Server and user space API to deal with multimedia pipelines"
 msgstr ""
 
-#: gnu/packages/linux.scm:6601
+#: gnu/packages/linux.scm:7194
 msgid ""
 "PipeWire is a project that aims to greatly improve handling of audio and\n"
 "video under Linux.  It aims to support the usecases currently handled by both\n"
@@ -12081,11 +13553,11 @@ msgid ""
 "of Linux application development."
 msgstr ""
 
-#: gnu/packages/linux.scm:6643
+#: gnu/packages/linux.scm:7267
 msgid "Embedded Linux Library"
 msgstr ""
 
-#: gnu/packages/linux.scm:6644
+#: gnu/packages/linux.scm:7268
 msgid ""
 "The Embedded Linux* Library (ELL) provides core, low-level\n"
 "functionality for system daemons.  It typically has no dependencies other than\n"
@@ -12094,11 +13566,11 @@ msgid ""
 "platforms, it is not limited to resource-constrained systems."
 msgstr ""
 
-#: gnu/packages/linux.scm:6669
+#: gnu/packages/linux.scm:7293
 msgid "LTTng userspace tracer libraries"
 msgstr ""
 
-#: gnu/packages/linux.scm:6670
+#: gnu/packages/linux.scm:7294
 msgid ""
 "The user space tracing library, liblttng-ust, is the LTTng\n"
 "user space tracer.  It receives commands from a session daemon, for example to\n"
@@ -12106,11 +13578,11 @@ msgid ""
 "to ring buffers shared with a consumer daemon."
 msgstr ""
 
-#: gnu/packages/linux.scm:6692
+#: gnu/packages/linux.scm:7316
 msgid "Tools for booting directly into different kernels"
 msgstr ""
 
-#: gnu/packages/linux.scm:6693
+#: gnu/packages/linux.scm:7317
 msgid ""
 "This package provides the @code{kexec} program and ancillary\n"
 "utilities.  Using @code{kexec}, it is possible to boot directly into a new\n"
@@ -12118,6 +13590,106 @@ msgid ""
 "system boot process."
 msgstr ""
 
+#: gnu/packages/linux.scm:7349
+msgid "CacheFiles userspace management daemon"
+msgstr ""
+
+#: gnu/packages/linux.scm:7350
+msgid ""
+"@code{cachefilesd} is a userspace daemon that manages the\n"
+"cache data store that is used by network file systems such as @code{AFS} and\n"
+"@code{NFS} to cache data locally on disk.  The content of the cache is\n"
+"persistent over reboots."
+msgstr ""
+
+#: gnu/packages/linux.scm:7396
+msgid "BPF CO-RE (Compile Once – Run Everywhere)"
+msgstr ""
+
+#: gnu/packages/linux.scm:7398
+msgid ""
+"Libbpf supports building BPF CO-RE-enabled applications, which, in\n"
+"contrast to BCC, do not require the Clang/LLVM runtime or linux kernel\n"
+"headers."
+msgstr ""
+
+#: gnu/packages/linux.scm:7476
+msgid "Tools for BPF on Linux"
+msgstr ""
+
+#: gnu/packages/linux.scm:7478
+msgid ""
+"BCC is a toolkit for creating efficient kernel tracing and manipulation\n"
+"programs, and includes several useful tools and examples.  It makes use of\n"
+"extended BPF (Berkeley Packet Filters), formally known as eBPF, a new feature\n"
+"that was first added to Linux 3.15.  Much of what BCC uses requires Linux 4.1\n"
+"and above."
+msgstr ""
+
+#: gnu/packages/linux.scm:7518
+msgid "High-level tracing language for Linux eBPF"
+msgstr ""
+
+#: gnu/packages/linux.scm:7520
+msgid ""
+"bpftrace is a high-level tracing language for Linux enhanced Berkeley\n"
+"Packet Filter (eBPF) available in recent Linux kernels (4.x).  bpftrace uses\n"
+"LLVM as a backend to compile scripts to BPF-bytecode and makes use of BCC for\n"
+"interacting with the Linux BPF system, as well as existing Linux tracing\n"
+"capabilities: kernel dynamic tracing (kprobes), user-level dynamic\n"
+"tracing (uprobes), and tracepoints.  The bpftrace language is inspired by awk\n"
+"and C, and predecessor tracers such as DTrace and SystemTap.  bpftrace was\n"
+"created by Alastair Robertson."
+msgstr ""
+
+#: gnu/packages/linux.scm:7551
+msgid "Low-latency Raspberry Pi UART driver"
+msgstr ""
+
+#: gnu/packages/linux.scm:7552
+msgid ""
+"This package provides a Linux kernel module that will\n"
+"provide a serial device @code{/dev/ttyebus} with almost no latency upon\n"
+"receiving.  It is dedicated to the PL011 UART of the Raspberry Pi."
+msgstr ""
+
+#: gnu/packages/linux.scm:7575
+msgid "Administration tool for IP sets"
+msgstr ""
+
+#: gnu/packages/linux.scm:7576
+msgid ""
+"IP sets are a framework inside the Linux 2.4.x and 2.6.x kernel which\n"
+"can be administered by the ipset utility.  Depending on the type,\n"
+"currently an IP set may store IP addresses, (TCP/UDP) port numbers or\n"
+"IP addresses with MAC addresses in a way which ensures lightning speed\n"
+"when matching an entry against a set.\n"
+"\n"
+"If you want to\n"
+"@itemize @bullet\n"
+"@item store multiple IP addresses or port numbers and match against the entire\n"
+"collection using a single iptables rule.\n"
+"@item dynamically update iptables rules against IP addresses or ports without\n"
+"performance penalty.\n"
+"@item express complex IP address and ports based rulesets with a single\n"
+"iptables rule and benefit from the speed of IP sets.\n"
+"@end itemize\n"
+"\n"
+"then IP sets may be the proper tool for you."
+msgstr ""
+
+#: gnu/packages/linux.scm:7622
+msgid "Interface to the Linux kernel @code{io_uring} interface"
+msgstr ""
+
+#: gnu/packages/linux.scm:7623
+msgid ""
+"This is the io_uring library, liburing. liburing provides\n"
+"helpers to setup and teardown io_uring instances, and also a simplified\n"
+"interface for applications that don't need (or want) to deal with the full\n"
+"kernel side implementation."
+msgstr ""
+
 #: gnu/packages/lout.scm:100
 msgid "Document layout system"
 msgstr ""
@@ -12141,11 +13713,28 @@ msgid ""
 "beginning."
 msgstr ""
 
-#: gnu/packages/messaging.scm:135
+#: gnu/packages/messaging.scm:168
+msgid "Console Jabber/XMPP Client"
+msgstr ""
+
+#: gnu/packages/messaging.scm:169
+msgid ""
+"Poezio is a free console XMPP client (the protocol on which\n"
+"the Jabber IM network is built).\n"
+"Its goal is to let you connect very easily (no account creation needed) to the\n"
+"network and join various chatrooms, immediately.  It tries to look like the\n"
+"most famous IRC clients (weechat, irssi, etc).  Many commands are identical and\n"
+"you won't be lost if you already know these clients.  Configuration can be\n"
+"made in a configuration file or directly from the client.\n"
+"You'll find the light, fast, geeky and anonymous spirit of IRC while using a\n"
+"powerful, standard and open protocol."
+msgstr ""
+
+#: gnu/packages/messaging.scm:198
 msgid "Off-the-Record (OTR) Messaging Library and Toolkit"
 msgstr ""
 
-#: gnu/packages/messaging.scm:137
+#: gnu/packages/messaging.scm:200
 msgid ""
 "OTR allows you to have private conversations over instant messaging by\n"
 "providing: (1) Encryption: No one else can read your instant messages.  (2)\n"
@@ -12158,11 +13747,11 @@ msgid ""
 "keys, no previous conversation is compromised."
 msgstr ""
 
-#: gnu/packages/messaging.scm:171
+#: gnu/packages/messaging.scm:234
 msgid "Implementation of a ratcheting forward secrecy protocol"
 msgstr ""
 
-#: gnu/packages/messaging.scm:172
+#: gnu/packages/messaging.scm:235
 msgid ""
 "libsignal-protocol-c is an implementation of a ratcheting\n"
 "forward secrecy protocol that works in synchronous and asynchronous\n"
@@ -12170,11 +13759,11 @@ msgid ""
 "end-to-end encryption."
 msgstr ""
 
-#: gnu/packages/messaging.scm:216
+#: gnu/packages/messaging.scm:279
 msgid "IRC to instant messaging gateway"
 msgstr ""
 
-#: gnu/packages/messaging.scm:217
+#: gnu/packages/messaging.scm:280
 msgid ""
 "BitlBee brings IM (instant messaging) to IRC clients, for\n"
 "people who have an IRC client running all the time and don't want to run an\n"
@@ -12184,21 +13773,36 @@ msgid ""
 "identi.ca and status.net)."
 msgstr ""
 
-#: gnu/packages/messaging.scm:263
+#: gnu/packages/messaging.scm:294
+msgid "IRC to instant messaging gateway (using Pidgin's libpurple)"
+msgstr ""
+
+#: gnu/packages/messaging.scm:349
 msgid "Discord plugin for Bitlbee"
 msgstr ""
 
-#: gnu/packages/messaging.scm:264
+#: gnu/packages/messaging.scm:350
 msgid ""
-"Bitlbee-discord is a plugin for Bitlbee witch provides\n"
+"Bitlbee-discord is a plugin for Bitlbee which provides\n"
 "access to servers running the Discord protocol."
 msgstr ""
 
-#: gnu/packages/messaging.scm:311
+#: gnu/packages/messaging.scm:397
+msgid "Purple plug-in to access Mattermost instant messaging"
+msgstr ""
+
+#: gnu/packages/messaging.scm:399
+msgid ""
+"Purple-Mattermost is a plug-in for Purple, the instant messaging library\n"
+"used by Pidgin and Bitlbee, among others, to access\n"
+"@uref{https://mattermost.com/, Mattermost} servers."
+msgstr ""
+
+#: gnu/packages/messaging.scm:446
 msgid "Graphical IRC client"
 msgstr ""
 
-#: gnu/packages/messaging.scm:313
+#: gnu/packages/messaging.scm:448
 msgid ""
 "HexChat lets you connect to multiple IRC networks at once.  The main\n"
 "window shows the list of currently connected networks and their channels, the\n"
@@ -12207,11 +13811,11 @@ msgid ""
 "dictionaries.  HexChat can be extended with multiple addons."
 msgstr ""
 
-#: gnu/packages/messaging.scm:378
+#: gnu/packages/messaging.scm:514
 msgid "Lightweight Internet Relay Chat server for small networks"
 msgstr ""
 
-#: gnu/packages/messaging.scm:380
+#: gnu/packages/messaging.scm:516
 msgid ""
 "ngIRCd is a lightweight @dfn{Internet Relay Chat} (IRC) server for small\n"
 "or private networks.  It is easy to configure, can cope with dynamic IP\n"
@@ -12219,21 +13823,21 @@ msgid ""
 "authentication."
 msgstr ""
 
-#: gnu/packages/messaging.scm:450
+#: gnu/packages/messaging.scm:600
 msgid "Graphical multi-protocol instant messaging client"
 msgstr ""
 
-#: gnu/packages/messaging.scm:452
+#: gnu/packages/messaging.scm:602
 msgid ""
 "Pidgin is a modular instant messaging client that supports many popular\n"
 "chat protocols."
 msgstr ""
 
-#: gnu/packages/messaging.scm:490
+#: gnu/packages/messaging.scm:640
 msgid "Off-the-Record Messaging plugin for Pidgin"
 msgstr ""
 
-#: gnu/packages/messaging.scm:492
+#: gnu/packages/messaging.scm:642
 msgid ""
 "Pidgin-OTR is a plugin that adds support for OTR to the Pidgin instant\n"
 "messaging client.  OTR (Off-the-Record) Messaging allows you to have private\n"
@@ -12248,11 +13852,11 @@ msgid ""
 "compromised."
 msgstr ""
 
-#: gnu/packages/messaging.scm:546
+#: gnu/packages/messaging.scm:696
 msgid "IRC network bouncer"
 msgstr ""
 
-#: gnu/packages/messaging.scm:547
+#: gnu/packages/messaging.scm:697
 msgid ""
 "ZNC is an @dfn{IRC network bouncer} or @dfn{BNC}.  It can\n"
 "detach the client from the actual IRC server, and also from selected channels.\n"
@@ -12260,56 +13864,64 @@ msgid ""
 "simultaneously and therefore appear under the same nickname on IRC."
 msgstr ""
 
-#: gnu/packages/messaging.scm:568
-msgid "Non-blocking Jabber/XMPP module"
+#: gnu/packages/messaging.scm:724
+msgid "Non-blocking XMPP Module"
 msgstr ""
 
-#: gnu/packages/messaging.scm:570
+#: gnu/packages/messaging.scm:725
 msgid ""
-"The goal of this python library is to provide a way for Python\n"
-"applications to use Jabber/XMPP networks in a non-blocking way.  This library\n"
-"was initially a fork of xmpppy, but uses non-blocking sockets."
+"Python-nbxmpp is a Python library that provides a way for\n"
+"Python applications to use the XMPP network.  This library was initially a fork\n"
+"of xmpppy."
 msgstr ""
 
-#: gnu/packages/messaging.scm:687
-msgid "Jabber (XMPP) client"
+#: gnu/packages/messaging.scm:852
+msgid "Fully-featured XMPP client"
 msgstr ""
 
-#: gnu/packages/messaging.scm:688
+#: gnu/packages/messaging.scm:853
 msgid ""
-"Gajim is a feature-rich and easy to use Jabber/XMPP client.\n"
-"Among its features are: a tabbed chat window and single window modes; support\n"
-"for group chat (with Multi-User Chat protocol), invitation, chat to group chat\n"
-"transformation; audio and video conferences; file transfer; TLS, GPG and\n"
-"end-to-end encryption support; XML console."
+"Gajim aims to be an easy to use and fully-featured XMPP chat\n"
+"client.  It is extensible via plugins, supports end-to-end encryption (OMEMO\n"
+"and OpenPGP) and available in 29 languages."
 msgstr ""
 
-#: gnu/packages/messaging.scm:723
+#: gnu/packages/messaging.scm:889
 msgid "Gajim OMEMO plugin"
 msgstr ""
 
-#: gnu/packages/messaging.scm:725
+#: gnu/packages/messaging.scm:890
 msgid ""
-"This package provides the Gajim OMEMO plugin.  OMEMO is an XMPP\n"
-"Extension Protocol (XEP) for secure multi-client end-to-end encryption based\n"
-"on Axolotl and PEP."
+"Gajim-OMEMO is a plugin that adds support for the OMEMO\n"
+"Encryption to Gajim.  OMEMO is an XMPP Extension Protocol (XEP) for secure\n"
+"multi-client end-to-end encryption."
 msgstr ""
 
-#: gnu/packages/messaging.scm:789
+#: gnu/packages/messaging.scm:925
+msgid "Gajim OpenPGP plugin"
+msgstr ""
+
+#: gnu/packages/messaging.scm:926
+msgid ""
+"Gajim-OpenPGP is a plugin that adds support for the OpenPGP\n"
+"Encryption to Gajim."
+msgstr ""
+
+#: gnu/packages/messaging.scm:975
 msgid "Graphical Jabber (XMPP) client"
 msgstr ""
 
-#: gnu/packages/messaging.scm:790
+#: gnu/packages/messaging.scm:976
 msgid ""
 "Dino is a Jabber (XMPP) client which aims to fit well into\n"
 "a graphical desktop environment like GNOME."
 msgstr ""
 
-#: gnu/packages/messaging.scm:877
+#: gnu/packages/messaging.scm:1063
 msgid "Jabber (XMPP) server"
 msgstr ""
 
-#: gnu/packages/messaging.scm:878
+#: gnu/packages/messaging.scm:1064
 msgid ""
 "Prosody is a modern XMPP communication server.  It aims to\n"
 "be easy to set up and configure, and efficient with system resources.\n"
@@ -12318,77 +13930,77 @@ msgid ""
 "protocols."
 msgstr ""
 
-#: gnu/packages/messaging.scm:912
+#: gnu/packages/messaging.scm:1098
 msgid "XEP-0363: Allow clients to upload files over HTTP"
 msgstr ""
 
-#: gnu/packages/messaging.scm:913
+#: gnu/packages/messaging.scm:1099
 msgid ""
 "This module implements XEP-0363: it allows clients to\n"
 "upload files over HTTP."
 msgstr ""
 
-#: gnu/packages/messaging.scm:944
+#: gnu/packages/messaging.scm:1130
 msgid "XEP-0198: Reliability and fast reconnects for XMPP"
 msgstr ""
 
-#: gnu/packages/messaging.scm:945
+#: gnu/packages/messaging.scm:1131
 msgid ""
 "This module implements XEP-0198: when supported by both\n"
 "the client and server, it can allow clients to resume a disconnected session,\n"
 "and prevent message loss."
 msgstr ""
 
-#: gnu/packages/messaging.scm:978 gnu/packages/messaging.scm:1012
+#: gnu/packages/messaging.scm:1164 gnu/packages/messaging.scm:1198
 msgid "Library for the Tox encrypted messenger protocol"
 msgstr ""
 
-#: gnu/packages/messaging.scm:980
+#: gnu/packages/messaging.scm:1166
 msgid "C library implementation of the Tox encrypted messenger protocol."
 msgstr ""
 
-#: gnu/packages/messaging.scm:1014
+#: gnu/packages/messaging.scm:1200
 msgid ""
 "Official fork of the C library implementation of the Tox encrypted\n"
 "messenger protocol."
 msgstr ""
 
-#: gnu/packages/messaging.scm:1069
+#: gnu/packages/messaging.scm:1255
 msgid "Lightweight Tox client"
 msgstr ""
 
-#: gnu/packages/messaging.scm:1071
+#: gnu/packages/messaging.scm:1257
 msgid ""
 "Utox is a lightweight Tox client.  Tox is a distributed and secure\n"
 "instant messenger with audio and video chat capabilities."
 msgstr ""
 
-#: gnu/packages/messaging.scm:1128
+#: gnu/packages/messaging.scm:1322
 msgid "Tox chat client using Qt"
 msgstr ""
 
-#: gnu/packages/messaging.scm:1129
+#: gnu/packages/messaging.scm:1323
 msgid ""
 "qTox is a Tox client that follows the Tox design\n"
 "guidelines.  It provides an easy to use application that allows you to\n"
 "connect with friends and family without anyone else listening in."
 msgstr ""
 
-#: gnu/packages/messaging.scm:1222
+#: gnu/packages/messaging.scm:1416
 msgid ""
 "Distributed and trustless peer-to-peer communications protocol\n"
 "for sending encrypted messages to one person or many subscribers."
 msgstr ""
 
-#: gnu/packages/messaging.scm:1224
+#: gnu/packages/messaging.scm:1418
 msgid "Distributed peer-to-peer communication"
 msgstr ""
 
-#: gnu/packages/messaging.scm:1243
+#: gnu/packages/messaging.scm:1437
 msgid "Multi-user chat program"
 msgstr ""
 
-#: gnu/packages/messaging.scm:1244
+#: gnu/packages/messaging.scm:1438
 msgid ""
 "Ytalk is a replacement for the BSD talk program.  Its main\n"
 "advantage is the ability to communicate with any arbitrary number of users at\n"
@@ -12396,11 +14008,11 @@ msgid ""
 "with several different talk daemons at the same time."
 msgstr ""
 
-#: gnu/packages/messaging.scm:1268
+#: gnu/packages/messaging.scm:1462
 msgid "Portable high-level Jabber/XMPP library for C++"
 msgstr ""
 
-#: gnu/packages/messaging.scm:1270
+#: gnu/packages/messaging.scm:1464
 msgid ""
 "gloox is a full-featured Jabber/XMPP client library,\n"
 "written in ANSI C++.  It makes writing spec-compliant clients easy\n"
@@ -12408,7 +14020,7 @@ msgid ""
 "into existing applications."
 msgstr ""
 
-#: gnu/packages/messaging.scm:1341
+#: gnu/packages/messaging.scm:1535
 msgid ""
 "@code{Net::PSYC} with support for TCP, UDP, Event.pm, @code{IO::Select} and\n"
 "Gtk2 event loops.  This package includes 12 applications and additional scripts:\n"
@@ -12416,26 +14028,26 @@ msgid ""
 "for @uref{https://torproject.org,tor} router) and many more."
 msgstr ""
 
-#: gnu/packages/messaging.scm:1345
+#: gnu/packages/messaging.scm:1539
 msgid "Perl implementation of PSYC protocol"
 msgstr ""
 
-#: gnu/packages/messaging.scm:1384
+#: gnu/packages/messaging.scm:1578
 msgid ""
 "@code{libpsyc} is a PSYC library in C which implements\n"
 "core aspects of PSYC, useful for all kinds of clients and servers\n"
 "including psyced."
 msgstr ""
 
-#: gnu/packages/messaging.scm:1387
+#: gnu/packages/messaging.scm:1581
 msgid "PSYC library in C"
 msgstr ""
 
-#: gnu/packages/messaging.scm:1454
+#: gnu/packages/messaging.scm:1648
 msgid "psycLPC is a multi-user network server programming language"
 msgstr ""
 
-#: gnu/packages/messaging.scm:1456
+#: gnu/packages/messaging.scm:1650
 msgid ""
 "LPC is a bytecode language, invented to specifically implement\n"
 "multi user virtual environments on the internet.  This technology is used for\n"
@@ -12444,7 +14056,7 @@ msgid ""
 "many bug fixes."
 msgstr ""
 
-#: gnu/packages/messaging.scm:1487
+#: gnu/packages/messaging.scm:1681
 msgid ""
 "Loudmouth is a lightweight and easy-to-use C library for programming\n"
 "with the XMPP (formerly known as Jabber) protocol.  It is designed to be\n"
@@ -12452,11 +14064,11 @@ msgid ""
 "protocol allows."
 msgstr ""
 
-#: gnu/packages/messaging.scm:1491
+#: gnu/packages/messaging.scm:1685
 msgid "Asynchronous XMPP library"
 msgstr ""
 
-#: gnu/packages/messaging.scm:1523
+#: gnu/packages/messaging.scm:1716
 msgid ""
 "Mcabber is a small XMPP (Jabber) console client, which includes features\n"
 "such as SASL and TLS support, @dfn{Multi-User Chat} (MUC) support, logging,\n"
@@ -12464,15 +14076,15 @@ msgid ""
 "support, and more."
 msgstr ""
 
-#: gnu/packages/messaging.scm:1527
+#: gnu/packages/messaging.scm:1720
 msgid "Small XMPP console client"
 msgstr ""
 
-#: gnu/packages/messaging.scm:1570
+#: gnu/packages/messaging.scm:1763
 msgid "Extensible console-based Jabber client"
 msgstr ""
 
-#: gnu/packages/messaging.scm:1572
+#: gnu/packages/messaging.scm:1765
 msgid ""
 "GNU Freetalk is a command-line Jabber/XMPP chat client.  It notably uses\n"
 "the Readline library to handle input, so it features convenient navigation of\n"
@@ -12480,39 +14092,39 @@ msgid ""
 "is also scriptable and extensible via Guile."
 msgstr ""
 
-#: gnu/packages/messaging.scm:1601 gnu/packages/messaging.scm:1631
+#: gnu/packages/messaging.scm:1794 gnu/packages/messaging.scm:1824
 msgid "C library for writing XMPP clients"
 msgstr ""
 
-#: gnu/packages/messaging.scm:1602
+#: gnu/packages/messaging.scm:1795
 msgid ""
 "Libmesode is a fork of libstrophe for use with Profanity\n"
 "XMPP Client.  In particular, libmesode provides extra TLS functionality such as\n"
 "manual SSL certificate verification."
 msgstr ""
 
-#: gnu/packages/messaging.scm:1632
+#: gnu/packages/messaging.scm:1825
 msgid ""
 "Libstrophe is a minimal XMPP library written in C.  It has\n"
 "almost no external dependencies, only an XML parsing library (expat or libxml\n"
 "are both supported)."
 msgstr ""
 
-#: gnu/packages/messaging.scm:1679
+#: gnu/packages/messaging.scm:1879
 msgid "Console-based XMPP client"
 msgstr ""
 
-#: gnu/packages/messaging.scm:1680
+#: gnu/packages/messaging.scm:1880
 msgid ""
 "Profanity is a console based XMPP client written in C\n"
 "using ncurses and libmesode, inspired by Irssi."
 msgstr ""
 
-#: gnu/packages/messaging.scm:1709
+#: gnu/packages/messaging.scm:1909
 msgid "Library implementing the client IRC protocol"
 msgstr ""
 
-#: gnu/packages/messaging.scm:1710
+#: gnu/packages/messaging.scm:1910
 msgid ""
 "Libircclient is a library which implements the client IRC\n"
 "protocol.  It is designed to be small, fast, portable and compatible with the\n"
@@ -12520,22 +14132,22 @@ msgid ""
 "building the IRC clients and bots."
 msgstr ""
 
-#: gnu/packages/messaging.scm:1761
+#: gnu/packages/messaging.scm:1967
 msgid "Tox chat client using ncurses"
 msgstr ""
 
-#: gnu/packages/messaging.scm:1762
+#: gnu/packages/messaging.scm:1968
 msgid ""
 "Toxic is a console-based instant messaging client, using\n"
 "c-toxcore and ncurses.  It provides audio calls, sound and desktop\n"
 "notifications, and Python scripting support."
 msgstr ""
 
-#: gnu/packages/messaging.scm:1788
+#: gnu/packages/messaging.scm:1994
 msgid "Qt5 client library for the Matrix instant messaging protocol"
 msgstr ""
 
-#: gnu/packages/messaging.scm:1789
+#: gnu/packages/messaging.scm:1995
 msgid ""
 "libqmatrixclient is a Qt5 library to write clients for the\n"
 "Matrix instant messaging protocol.  Quaternion is the reference client\n"
@@ -12543,21 +14155,21 @@ msgid ""
 "QMatrixClient project."
 msgstr ""
 
-#: gnu/packages/messaging.scm:1840
+#: gnu/packages/messaging.scm:2046
 msgid "Client API library for the Matrix protocol"
 msgstr ""
 
-#: gnu/packages/messaging.scm:1841
+#: gnu/packages/messaging.scm:2047
 msgid ""
 "@code{mtxclient} is a C++ library that implements client API\n"
 "for the Matrix protocol.  It is built on to of @code{Boost.Asio}."
 msgstr ""
 
-#: gnu/packages/messaging.scm:1896
+#: gnu/packages/messaging.scm:2105
 msgid "Desktop client for Matrix using Qt and C++14"
 msgstr ""
 
-#: gnu/packages/messaging.scm:1897
+#: gnu/packages/messaging.scm:2106
 msgid ""
 "@code{Nheko} want to provide a native desktop app for the\n"
 "Matrix protocol that feels more like a mainstream chat app and less like an IRC\n"
@@ -12581,11 +14193,11 @@ msgid ""
 "@end itemize"
 msgstr ""
 
-#: gnu/packages/messaging.scm:1945
+#: gnu/packages/messaging.scm:2155
 msgid "Graphical client for the Matrix instant messaging protocol"
 msgstr ""
 
-#: gnu/packages/messaging.scm:1946
+#: gnu/packages/messaging.scm:2156
 msgid ""
 "Quaternion is a Qt5 desktop client for the Matrix instant\n"
 "messaging protocol.  It uses libqmatrixclient and is its reference client\n"
@@ -12593,11 +14205,11 @@ msgid ""
 "QMatrixClient project."
 msgstr ""
 
-#: gnu/packages/messaging.scm:1988
+#: gnu/packages/messaging.scm:2198
 msgid "Instant messaging client for Google Hangouts"
 msgstr ""
 
-#: gnu/packages/messaging.scm:1990
+#: gnu/packages/messaging.scm:2200
 msgid ""
 "Hangups is an instant messaging client for Google Hangouts.  It includes\n"
 "both a Python library and a reference client with a text-based user interface.\n"
@@ -12607,22 +14219,22 @@ msgid ""
 "messaging that aren’t available to clients that connect over XMPP."
 msgstr ""
 
-#: gnu/packages/messaging.scm:2070
+#: gnu/packages/messaging.scm:2280
 msgid "Telegram messaging support for Pidgin"
 msgstr ""
 
-#: gnu/packages/messaging.scm:2072
+#: gnu/packages/messaging.scm:2282
 msgid ""
 "Telegram-purple is a plugin for Libpurple, the communication library\n"
 "used by the Pidgin instant messaging client, that adds support for the\n"
 "Telegram messenger."
 msgstr ""
 
-#: gnu/packages/messaging.scm:2119
+#: gnu/packages/messaging.scm:2329
 msgid "Cross-platform library for building Telegram clients"
 msgstr ""
 
-#: gnu/packages/messaging.scm:2120
+#: gnu/packages/messaging.scm:2330
 msgid ""
 "Tdlib is a cross-platform library for creating custom\n"
 "Telegram clients following the official Telegram API.  It can be easily used\n"
@@ -12630,21 +14242,56 @@ msgid ""
 "support for high performance Telegram Bot creation."
 msgstr ""
 
-#: gnu/packages/mpd.scm:86
+#: gnu/packages/messaging.scm:2368
+msgid "Libpurple plugin for SMS via ModemManager"
+msgstr ""
+
+#: gnu/packages/messaging.scm:2369
+msgid "Plugin for libpurple to allow sending SMS using ModemManager."
+msgstr ""
+
+#: gnu/packages/messaging.scm:2412
+msgid "Mobile client for XMPP and SMS messaging"
+msgstr ""
+
+#: gnu/packages/messaging.scm:2413
+msgid ""
+"Chatty is a chat program for XMPP and SMS.  It works on mobile\n"
+"as well as on desktop platforms.  It's based on libpurple and ModemManager."
+msgstr ""
+
+#: gnu/packages/messaging.scm:2433
+msgid "Message broker"
+msgstr ""
+
+#: gnu/packages/messaging.scm:2434
+msgid ""
+"This package provides Eclipse Mosquitto, a message broker\n"
+"that implements the MQTT protocol versions 5.0, 3.1.1 and 3.1.  Mosquitto\n"
+"is lightweight and is suitable for use on all devices from low power single\n"
+"board computers to full servers.\n"
+"\n"
+"The MQTT protocol provides a lightweight method of carrying out messaging\n"
+"using a publish/subscribe model. This makes it suitable for Internet of\n"
+"Things messaging such as with low power sensors or mobile devices such\n"
+"as phones, embedded computers or microcontrollers."
+msgstr ""
+
+#: gnu/packages/mpd.scm:98
 msgid "Music Player Daemon client library"
 msgstr ""
 
-#: gnu/packages/mpd.scm:87
+#: gnu/packages/mpd.scm:99
 msgid ""
 "A stable, documented, asynchronous API library for\n"
 "interfacing MPD in the C, C++ & Objective C languages."
 msgstr ""
 
-#: gnu/packages/mpd.scm:151
+#: gnu/packages/mpd.scm:163
 msgid "Music Player Daemon"
 msgstr ""
 
-#: gnu/packages/mpd.scm:152
+#: gnu/packages/mpd.scm:164
 msgid ""
 "Music Player Daemon (MPD) is a flexible, powerful,\n"
 "server-side application for playing music.  Through plugins and libraries it\n"
@@ -12652,31 +14299,31 @@ msgid ""
 "protocol."
 msgstr ""
 
-#: gnu/packages/mpd.scm:177
+#: gnu/packages/mpd.scm:189
 msgid "Music Player Daemon client"
 msgstr ""
 
-#: gnu/packages/mpd.scm:178
+#: gnu/packages/mpd.scm:190
 msgid ""
 "MPC is a minimalist command line interface to MPD, the music\n"
 "player daemon."
 msgstr ""
 
-#: gnu/packages/mpd.scm:210
+#: gnu/packages/mpd.scm:222
 msgid "Curses Music Player Daemon client"
 msgstr ""
 
-#: gnu/packages/mpd.scm:211
+#: gnu/packages/mpd.scm:223
 msgid ""
 "ncmpc is a fully featured MPD client, which runs in a\n"
 "terminal using ncurses."
 msgstr ""
 
-#: gnu/packages/mpd.scm:241
+#: gnu/packages/mpd.scm:253
 msgid "Featureful ncurses based MPD client inspired by ncmpc"
 msgstr ""
 
-#: gnu/packages/mpd.scm:242
+#: gnu/packages/mpd.scm:254
 msgid ""
 "Ncmpcpp is an mpd client with a UI very similar to ncmpc,\n"
 "but it provides new useful features such as support for regular expressions\n"
@@ -12684,42 +14331,42 @@ msgid ""
 "sort playlists, and a local file system browser."
 msgstr ""
 
-#: gnu/packages/mpd.scm:265
+#: gnu/packages/mpd.scm:278
 msgid "MPD client for track scrobbling"
 msgstr ""
 
-#: gnu/packages/mpd.scm:266
+#: gnu/packages/mpd.scm:279
 msgid ""
 "mpdscribble is a Music Player Daemon client which submits\n"
 "information about tracks being played to a scrobbler, such as Libre.FM."
 msgstr ""
 
-#: gnu/packages/mpd.scm:289
+#: gnu/packages/mpd.scm:302
 msgid "Python MPD client library"
 msgstr ""
 
-#: gnu/packages/mpd.scm:290
+#: gnu/packages/mpd.scm:303
 msgid ""
 "Python-mpd2 is a Python library which provides a client\n"
 "interface for the Music Player Daemon."
 msgstr ""
 
-#: gnu/packages/mpd.scm:339
+#: gnu/packages/mpd.scm:352
 msgid "Elegant client for the Music Player Daemon"
 msgstr ""
 
-#: gnu/packages/mpd.scm:340
+#: gnu/packages/mpd.scm:353
 msgid ""
 "Sonata is an elegant graphical client for the Music Player\n"
 "Daemon (MPD).  It supports playlists, multiple profiles (connecting to different\n"
 "MPD servers, search and multimedia key support."
 msgstr ""
 
-#: gnu/packages/mpd.scm:363
+#: gnu/packages/mpd.scm:376
 msgid "Automatic library-wide shuffle for mpd"
 msgstr ""
 
-#: gnu/packages/mpd.scm:364
+#: gnu/packages/mpd.scm:377
 msgid ""
 "ashuffle is an application for automatically shuffling your\n"
 "MPD library in a similar way to many other music players' 'shuffle library'\n"
@@ -12727,6 +14374,29 @@ msgid ""
 "other MPD frontends."
 msgstr ""
 
+#: gnu/packages/mpd.scm:420
+msgid "MPRIS V2.1 support for MPD"
+msgstr ""
+
+#: gnu/packages/mpd.scm:421
+msgid ""
+"Client for the Music Player Daemon providing MPRIS 2\n"
+"support"
+msgstr ""
+
+#: gnu/packages/mpd.scm:455
+msgid "Graphical MPD Client"
+msgstr ""
+
+#: gnu/packages/mpd.scm:456
+msgid ""
+"Cantata is a graphical client for the Music Player Daemon\n"
+"(MPD), using the Qt5 toolkit.  Its user interface is highly customizable,\n"
+"supporting multiple collections, ratings, and dynamic playlists.  A local cache\n"
+"of the music library will be created to provide a hierarchy of albums and\n"
+"artists along with albumart."
+msgstr ""
+
 #: gnu/packages/netpbm.scm:189
 msgid "Toolkit for manipulation of images"
 msgstr ""
@@ -12751,11 +14421,112 @@ msgid ""
 "themselves."
 msgstr ""
 
-#: gnu/packages/networking.scm:143
+#: gnu/packages/networking.scm:201
+msgid "Camera stack and framework"
+msgstr ""
+
+#: gnu/packages/networking.scm:202
+msgid ""
+"LibCamera is a complex camera support library for GNU+Linux,\n"
+"Android, and ChromeOS."
+msgstr ""
+
+#: gnu/packages/networking.scm:257
+msgid "GLib ICE implementation"
+msgstr ""
+
+#: gnu/packages/networking.scm:258
+msgid ""
+"LibNice is a library that implements the Interactive\n"
+"Connectivity Establishment (ICE) standard (RFC 5245 & RFC 8445).  It provides a\n"
+"GLib-based library, libnice, as well as GStreamer elements to use it."
+msgstr ""
+
+#: gnu/packages/networking.scm:304
+msgid "Tools and library for handling RTMP streams"
+msgstr ""
+
+#: gnu/packages/networking.scm:305
+msgid ""
+"RTMPdump is a toolkit for RTMP streams.  All forms of RTMP are\n"
+"supported, including rtmp://, rtmpt://, rtmpe://, rtmpte://, and rtmps://."
+msgstr ""
+
+#: gnu/packages/networking.scm:344
+msgid "Secure Reliable Transport"
+msgstr ""
+
+#: gnu/packages/networking.scm:345
+msgid ""
+"SRT is a transport technology that optimizes streaming\n"
+"performance across unpredictable networks, such as the Internet."
+msgstr ""
+
+#: gnu/packages/networking.scm:390
+msgid "Linux SCTP helper library"
+msgstr ""
+
+#: gnu/packages/networking.scm:391
+msgid ""
+"Lksctp-tools project provides a user space library for SCTP\n"
+"(libsctp) including C language header files (netinet/sctp.h) for accessing SCTP\n"
+"specific application programming interfaces not provided by the standard\n"
+"sockets, and also some helper utilities around SCTP."
+msgstr ""
+
+#: gnu/packages/networking.scm:418
+msgid "Small port-knock daemon"
+msgstr ""
+
+#: gnu/packages/networking.scm:419
+msgid ""
+"@command{knockd} is a port-knock daemon.  It listens to all traffic on\n"
+"an ethernet or PPP interface, looking for special \"knock\" sequences of @dfn{port-hits}\n"
+"(UDP/TCP packets sent to a server port).  This port need not be open, since knockd listens\n"
+"at the link-layer level."
+msgstr ""
+
+#: gnu/packages/networking.scm:458
+msgid "Lightweight messaging library"
+msgstr ""
+
+#: gnu/packages/networking.scm:459
+msgid ""
+"NNG project is a rewrite of the scalability protocols library\n"
+"known as libnanomsg, and adds significant new capabilities, while retaining\n"
+"compatibility with the original.  It is a lightweight, broker-less library,\n"
+"offering a simple API to solve common recurring messaging problems, such as\n"
+"publish/subscribe, RPC-style request/reply, or service discovery."
+msgstr ""
+
+#: gnu/packages/networking.scm:501
+msgid "Scalable socket library"
+msgstr ""
+
+#: gnu/packages/networking.scm:502
+msgid ""
+"Nanomsg is a socket library that provides several common\n"
+"communication patterns.  It aims to make the networking layer fast, scalable,\n"
+"and easy to use.  Implemented in C, it works on a wide range of operating\n"
+"systems with no further dependencies."
+msgstr ""
+
+#: gnu/packages/networking.scm:616
+msgid "GTK+ Bluetooth manager"
+msgstr ""
+
+#: gnu/packages/networking.scm:617
+msgid ""
+"Blueman is a Bluetooth management utility using the Bluez\n"
+"D-Bus backend.  It is designed to be easy to use for most common Bluetooth\n"
+"tasks."
+msgstr ""
+
+#: gnu/packages/networking.scm:641
 msgid "Viewing and manipulating MAC addresses of network interfaces"
 msgstr ""
 
-#: gnu/packages/networking.scm:144
+#: gnu/packages/networking.scm:642
 msgid ""
 "GNU MAC Changer is a utility for viewing and changing MAC\n"
 "addresses of networking devices.  New addresses may be set explicitly or\n"
@@ -12763,22 +14534,54 @@ msgid ""
 "or, more generally, MAC addresses of the same category of hardware."
 msgstr ""
 
-#: gnu/packages/networking.scm:173
+#: gnu/packages/networking.scm:671
 msgid "Teredo IPv6 tunneling software"
 msgstr ""
 
-#: gnu/packages/networking.scm:175
+#: gnu/packages/networking.scm:673
 msgid ""
 "Miredo is an implementation (client, relay, server) of the Teredo\n"
 "specification, which provides IPv6 Internet connectivity to IPv6 enabled hosts\n"
 "residing in IPv4-only networks, even when they are behind a NAT device."
 msgstr ""
 
-#: gnu/packages/networking.scm:197
+#: gnu/packages/networking.scm:691
+msgid "IPv6 diagnostic tools"
+msgstr ""
+
+#: gnu/packages/networking.scm:693
+msgid ""
+"NDisc6 is a collection of tools for IPv6 networking diagnostics.\n"
+"It includes the following programs:\n"
+"\n"
+"@itemize\n"
+"@item @command{ndisc6}: ICMPv6 Neighbor Discovery tool.\n"
+"@item @command{rdisc6}: ICMPv6 Router Discovery tool.\n"
+"@item @command{tcptraceroute6}: IPv6 traceroute over TCP.\n"
+"@item @command{traceroute6}: IPv6 traceroute over UDP.\n"
+"@item @command{rdnssd}: Recursive DNS Servers discovery daemon.\n"
+"@end itemize"
+msgstr ""
+
+#: gnu/packages/networking.scm:744
+msgid "Proxy ARP requests to other interfaces"
+msgstr ""
+
+#: gnu/packages/networking.scm:746
+msgid ""
+"@command{parprouted} is a daemon for transparent IP (Layer@tie{}3)\n"
+"proxy ARP bridging.  Unlike standard bridging, proxy ARP bridging can bridge\n"
+"Ethernet networks behind wireless nodes.  Normal layer@tie{}2 bridging does\n"
+"not work between wireless nodes because wireless does not know about MAC\n"
+"addresses used in the wired Ethernet networks.  This daemon can also be\n"
+"useful for making transparent firewalls."
+msgstr ""
+
+#: gnu/packages/networking.scm:771
 msgid "Open bidirectional communication channels from the command line"
 msgstr ""
 
-#: gnu/packages/networking.scm:199
+#: gnu/packages/networking.scm:773
 msgid ""
 "socat is a relay for bidirectional data transfer between two independent\n"
 "data channels---files, pipes, devices, sockets, etc.  It can create\n"
@@ -12791,22 +14594,22 @@ msgid ""
 "or server shell scripts with network connections."
 msgstr ""
 
-#: gnu/packages/networking.scm:281
+#: gnu/packages/networking.scm:855
 msgid "Monitor and filter incoming requests for network services"
 msgstr ""
 
-#: gnu/packages/networking.scm:282
+#: gnu/packages/networking.scm:856
 msgid ""
 "With this package you can monitor and filter incoming requests for\n"
 "network services.  It includes a library which may be used by daemons to\n"
 "transparently check connection attempts against an access control list."
 msgstr ""
 
-#: gnu/packages/networking.scm:302
+#: gnu/packages/networking.scm:875
 msgid "Library for message-based applications"
 msgstr ""
 
-#: gnu/packages/networking.scm:304
+#: gnu/packages/networking.scm:877
 msgid ""
 "The 0MQ lightweight messaging kernel is a library which extends the\n"
 "standard socket interfaces with features traditionally provided by specialized\n"
@@ -12816,63 +14619,74 @@ msgid ""
 "more."
 msgstr ""
 
-#: gnu/packages/networking.scm:340
+#: gnu/packages/networking.scm:917
 msgid "High-level C bindings for ØMQ"
 msgstr ""
 
-#: gnu/packages/networking.scm:342
+#: gnu/packages/networking.scm:919
 msgid ""
 "czmq provides bindings for the ØMQ core API that hides the differences\n"
 "between different versions of ØMQ."
 msgstr ""
 
-#: gnu/packages/networking.scm:371
+#: gnu/packages/networking.scm:948
 msgid "C++ bindings for the ØMQ messaging library"
 msgstr ""
 
-#: gnu/packages/networking.scm:373
+#: gnu/packages/networking.scm:950
 msgid ""
 "This package provides header-only C++ bindings for ØMQ.  The header\n"
 "files contain direct mappings of the abstractions provided by the ØMQ C API."
 msgstr ""
 
-#: gnu/packages/networking.scm:408
+#: gnu/packages/networking.scm:982
+msgid "C library implementing NAT-PMP"
+msgstr ""
+
+#: gnu/packages/networking.scm:984
+msgid ""
+"@code{libnatpmp} is a portable and asynchronous implementation of\n"
+"the Network Address Translation - Port Mapping Protocol (NAT-PMP)\n"
+"written in the C programming language."
+msgstr ""
+
+#: gnu/packages/networking.scm:1020
 msgid "Apache Kafka C/C++ client library"
 msgstr ""
 
-#: gnu/packages/networking.scm:410
+#: gnu/packages/networking.scm:1022
 msgid ""
 "librdkafka is a C library implementation of the Apache Kafka protocol,\n"
 "containing both Producer and Consumer support."
 msgstr ""
 
-#: gnu/packages/networking.scm:427
+#: gnu/packages/networking.scm:1039
 msgid "Library for Neighbor Discovery Protocol"
 msgstr ""
 
-#: gnu/packages/networking.scm:429
+#: gnu/packages/networking.scm:1041
 msgid ""
 "libndp contains a library which provides a wrapper for IPv6 Neighbor\n"
 "Discovery Protocol.  It also provides a tool named ndptool for sending and\n"
 "receiving NDP messages."
 msgstr ""
 
-#: gnu/packages/networking.scm:447
+#: gnu/packages/networking.scm:1063
 msgid "Display or change Ethernet device settings"
 msgstr ""
 
-#: gnu/packages/networking.scm:449
+#: gnu/packages/networking.scm:1065
 msgid ""
 "ethtool can be used to query and change settings such as speed,\n"
 "auto-negotiation and checksum offload on many network devices, especially\n"
 "Ethernet devices."
 msgstr ""
 
-#: gnu/packages/networking.scm:489
+#: gnu/packages/networking.scm:1105
 msgid "Text based network interface status monitor"
 msgstr ""
 
-#: gnu/packages/networking.scm:491
+#: gnu/packages/networking.scm:1107
 msgid ""
 "IFStatus is a simple, easy-to-use program for displaying commonly\n"
 "needed/wanted real-time traffic statistics of multiple network\n"
@@ -12880,11 +14694,36 @@ msgid ""
 "intended as a substitute for the PPPStatus and EthStatus projects."
 msgstr ""
 
-#: gnu/packages/networking.scm:511
+#: gnu/packages/networking.scm:1156
+msgid "Collection of network utilities"
+msgstr "Sammlung von Netzwerkwerkzeugen"
+
+#: gnu/packages/networking.scm:1158
+msgid ""
+"This package contains a variety of tools for dealing with network\n"
+"configuration, troubleshooting, or servers.  Utilities included are:\n"
+"\n"
+"@itemize @bullet\n"
+"@item @command{arping}: Ping hosts using the @dfn{Address Resolution Protocol}.\n"
+"@item @command{clockdiff}: Compute time difference between network hosts\n"
+"using ICMP TSTAMP messages.\n"
+"@item @command{ninfod}: Daemon that responds to IPv6 Node Information Queries.\n"
+"@item @command{ping}: Use ICMP ECHO messages to measure round-trip delays\n"
+"and packet loss across network paths.\n"
+"@item @command{rarpd}: Answer RARP requests from clients.\n"
+"@item @command{rdisc}: Populate network routing tables with information from\n"
+"the ICMP router discovery protocol.\n"
+"@item @command{tftpd}: Trivial file transfer protocol server.\n"
+"@item @command{tracepath}: Trace network path to an IPv4 or IPv6 address and\n"
+"discover MTU along the way.\n"
+"@end itemize"
+msgstr ""
+
+#: gnu/packages/networking.scm:1197
 msgid "Realtime console network usage monitor"
 msgstr ""
 
-#: gnu/packages/networking.scm:513
+#: gnu/packages/networking.scm:1199
 msgid ""
 "Nload is a console application which monitors network traffic and\n"
 "bandwidth usage in real time.  It visualizes the in- and outgoing traffic using\n"
@@ -12892,11 +14731,11 @@ msgid ""
 "and min/max network usage."
 msgstr ""
 
-#: gnu/packages/networking.scm:558
+#: gnu/packages/networking.scm:1244
 msgid "Tunnel IPv4 data through a DNS server"
 msgstr ""
 
-#: gnu/packages/networking.scm:559
+#: gnu/packages/networking.scm:1245
 msgid ""
 "Iodine tunnels IPv4 data through a DNS server.  This\n"
 "can be useful in different situations where internet access is firewalled, but\n"
@@ -12904,11 +14743,11 @@ msgid ""
 "and up to 1 Mbit/s downstream."
 msgstr ""
 
-#: gnu/packages/networking.scm:595
+#: gnu/packages/networking.scm:1281
 msgid "Intelligent client for the WHOIS directory service"
 msgstr ""
 
-#: gnu/packages/networking.scm:597
+#: gnu/packages/networking.scm:1283
 msgid ""
 "whois searches for an object in a @dfn{WHOIS} (RFC 3912) database.\n"
 "It is commonly used to look up the registered users or assignees of an Internet\n"
@@ -12920,68 +14759,69 @@ msgid ""
 "of the same name."
 msgstr ""
 
-#: gnu/packages/networking.scm:670
+#: gnu/packages/networking.scm:1359
 msgid "Network traffic analyzer"
 msgstr ""
 
-#: gnu/packages/networking.scm:671
+#: gnu/packages/networking.scm:1360
 msgid ""
 "Wireshark is a network protocol analyzer, or @dfn{packet\n"
 "sniffer}, that lets you capture and interactively browse the contents of\n"
 "network frames."
 msgstr ""
 
-#: gnu/packages/networking.scm:690
+#: gnu/packages/networking.scm:1379
 msgid "Send ICMP ECHO_REQUEST packets to network hosts"
 msgstr ""
 
-#: gnu/packages/networking.scm:692
+#: gnu/packages/networking.scm:1381
 msgid ""
-"fping is a ping like program which uses the Internet Control Message\n"
-"Protocol (ICMP) echo request to determine if a target host is responding.\n"
-"fping differs from ping in that you can specify any number of targets on the\n"
-"command line, or specify a file containing the lists of targets to ping.\n"
-"Instead of sending to one target until it times out or replies, fping will\n"
-"send out a ping packet and move on to the next target in a round-robin\n"
-"fashion."
+"fping is a ping-like program which uses @acronym{ICMP, Internet Control\n"
+"Message Protocol} echo requests to determine if a target host is responding.\n"
+"\n"
+"@command{fping} differs from @command{ping} in that you can specify any number\n"
+"of targets on the command line, or specify a file containing the lists of\n"
+"targets to ping.  Instead of sending to one target until it times out or\n"
+"replies, fping will send out a ping packet and move on to the next target in a\n"
+"round-robin fashion."
 msgstr ""
 
-#: gnu/packages/networking.scm:743
+#: gnu/packages/networking.scm:1433
 msgid "Command-line interface to the Gandi.net Web API"
 msgstr ""
 
-#: gnu/packages/networking.scm:745
+#: gnu/packages/networking.scm:1435
 msgid ""
 "This package provides a command-line client (@command{gandi}) to buy,\n"
 "manage, and delete Internet resources from Gandi.net such as domain names,\n"
 "virtual machines, and certificates."
 msgstr ""
 
-#: gnu/packages/networking.scm:770
+#: gnu/packages/networking.scm:1460
 msgid "Simple network namespace handling for Go"
 msgstr ""
 
-#: gnu/packages/networking.scm:771
+#: gnu/packages/networking.scm:1461
 msgid ""
 "The netns package provides a simple interface for\n"
 "handling network namespaces in Go."
 msgstr ""
 
-#: gnu/packages/networking.scm:795
+#: gnu/packages/networking.scm:1487
 msgid "SCTP library for the Go programming language"
 msgstr ""
 
-#: gnu/packages/networking.scm:796
+#: gnu/packages/networking.scm:1488
 msgid ""
 "This library provides methods for using the stream control\n"
 "transmission protocol (SCTP) in a Go application."
 msgstr ""
 
-#: gnu/packages/networking.scm:825
+#: gnu/packages/networking.scm:1517
 msgid "Web server latency and throughput monitor"
 msgstr ""
 
-#: gnu/packages/networking.scm:827
+#: gnu/packages/networking.scm:1519
 msgid ""
 "httping measures how long it takes to connect to a web server, send an\n"
 "HTTP(S) request, and receive the reply headers.  It is somewhat similar to\n"
@@ -12990,11 +14830,11 @@ msgid ""
 "application stack itself."
 msgstr ""
 
-#: gnu/packages/networking.scm:859
+#: gnu/packages/networking.scm:1551
 msgid "Visualize curl statistics"
 msgstr ""
 
-#: gnu/packages/networking.scm:861
+#: gnu/packages/networking.scm:1553
 msgid ""
 "@command{httpstat} is a tool to visualize statistics from the\n"
 "@command{curl} HTTP client.  It acts as a wrapper for @command{curl} and\n"
@@ -13002,32 +14842,32 @@ msgid ""
 "TCP connection, TLS handshake and so on) in the terminal."
 msgstr ""
 
-#: gnu/packages/networking.scm:901
+#: gnu/packages/networking.scm:1597
 msgid "Web caching proxy"
 msgstr ""
 
-#: gnu/packages/networking.scm:902
+#: gnu/packages/networking.scm:1598
 msgid ""
 "Squid is a caching proxy for the Web supporting HTTP, HTTPS,\n"
 "FTP, and more.  It reduces bandwidth and improves response times by caching and\n"
 "reusing frequently-requested web pages."
 msgstr ""
 
-#: gnu/packages/networking.scm:936
+#: gnu/packages/networking.scm:1632
 msgid "Console based live network and disk I/O bandwidth monitor"
 msgstr ""
 
-#: gnu/packages/networking.scm:937
+#: gnu/packages/networking.scm:1633
 msgid ""
 "Bandwidth Monitor NG is a small and simple console based\n"
 "live network and disk I/O bandwidth monitor."
 msgstr ""
 
-#: gnu/packages/networking.scm:996
+#: gnu/packages/networking.scm:1686
 msgid "Assess WiFi network security"
 msgstr ""
 
-#: gnu/packages/networking.scm:998
+#: gnu/packages/networking.scm:1688
 msgid ""
 "Aircrack-ng is a complete suite of tools to assess WiFi network\n"
 "security.  It focuses on different areas of WiFi security: monitoring,\n"
@@ -13035,22 +14875,22 @@ msgid ""
 "allows for heavy scripting."
 msgstr ""
 
-#: gnu/packages/networking.scm:1026
+#: gnu/packages/networking.scm:1716
 msgid "Offline brute-force tool for Wi-Fi Protected Setup"
 msgstr ""
 
-#: gnu/packages/networking.scm:1027
+#: gnu/packages/networking.scm:1717
 msgid ""
 "Pixiewps implements the pixie-dust attack to brute\n"
 "force the Wi-Fi Protected Setup (WPS) PIN by exploiting the low or\n"
 "non-existing entropy of some access points."
 msgstr ""
 
-#: gnu/packages/networking.scm:1073
+#: gnu/packages/networking.scm:1763
 msgid "Attack tool for Wi-Fi Protected Setup"
 msgstr ""
 
-#: gnu/packages/networking.scm:1074
+#: gnu/packages/networking.scm:1764
 msgid ""
 "Reaver performs a brute force attack against an access\n"
 "point's Wi-Fi Protected Setup (WPS) PIN.  Once the PIN is found, the WPA\n"
@@ -13058,11 +14898,11 @@ msgid ""
 "reconfigured."
 msgstr ""
 
-#: gnu/packages/networking.scm:1097
+#: gnu/packages/networking.scm:1787
 msgid "Event loop and event-driven async socket base class"
 msgstr ""
 
-#: gnu/packages/networking.scm:1099
+#: gnu/packages/networking.scm:1789
 msgid ""
 "Danga::Socket is an abstract base class for objects backed by a socket\n"
 "which provides the basic framework for event-driven asynchronous IO, designed\n"
@@ -13070,11 +14910,11 @@ msgid ""
 "loop."
 msgstr ""
 
-#: gnu/packages/networking.scm:1123
+#: gnu/packages/networking.scm:1813
 msgid "IPv4 and IPv6 validation methods"
 msgstr ""
 
-#: gnu/packages/networking.scm:1125
+#: gnu/packages/networking.scm:1815
 msgid ""
 "This module provides several IP address validation subroutines that both\n"
 "validate and untaint their input.  This includes both basic validation\n"
@@ -13083,116 +14923,116 @@ msgid ""
 "private (reserved)."
 msgstr ""
 
-#: gnu/packages/networking.scm:1152
+#: gnu/packages/networking.scm:1842
 msgid "Perl Interface to the Domain Name System"
 msgstr ""
 
-#: gnu/packages/networking.scm:1153
+#: gnu/packages/networking.scm:1843
 msgid "Net::DNS is the Perl Interface to the Domain Name System."
 msgstr ""
 
-#: gnu/packages/networking.scm:1184
+#: gnu/packages/networking.scm:1874
 msgid "IPv6 related part of the C socket.h defines and structure manipulators for Perl"
 msgstr ""
 
-#: gnu/packages/networking.scm:1185
+#: gnu/packages/networking.scm:1875
 msgid ""
 "Socket6 binds the IPv6 related part of the C socket header\n"
 "definitions and structure manipulators for Perl."
 msgstr ""
 
-#: gnu/packages/networking.scm:1211
+#: gnu/packages/networking.scm:1901
 msgid "Programmable DNS resolver class for offline emulation of DNS"
 msgstr ""
 
-#: gnu/packages/networking.scm:1212
+#: gnu/packages/networking.scm:1902
 msgid ""
 "Net::DNS::Resolver::Programmable is a programmable DNS resolver for\n"
 "offline emulation of DNS."
 msgstr ""
 
-#: gnu/packages/networking.scm:1232
+#: gnu/packages/networking.scm:1922
 msgid "Mock DNS Resolver object for testing"
 msgstr ""
 
-#: gnu/packages/networking.scm:1234
+#: gnu/packages/networking.scm:1924
 msgid ""
 "Net::DNS::Resolver::Mock is a subclass of Net::DNS::Resolver, but returns\n"
 "static data from any provided DNS zone file instead of querying the network.\n"
 "It is intended primarily for use in testing."
 msgstr ""
 
-#: gnu/packages/networking.scm:1268
+#: gnu/packages/networking.scm:1958
 msgid "Manages IPv4 and IPv6 addresses and subnets"
 msgstr ""
 
-#: gnu/packages/networking.scm:1269
+#: gnu/packages/networking.scm:1959
 msgid "NetAddr::IP manages IPv4 and IPv6 addresses and subsets."
 msgstr ""
 
-#: gnu/packages/networking.scm:1301
+#: gnu/packages/networking.scm:1991
 msgid "Patricia Trie Perl module for fast IP address lookups"
 msgstr ""
 
-#: gnu/packages/networking.scm:1303
+#: gnu/packages/networking.scm:1993
 msgid "Net::Patricia does IP address lookups quickly in Perl."
 msgstr ""
 
-#: gnu/packages/networking.scm:1326
+#: gnu/packages/networking.scm:2016
 msgid "Perl extension for merging IPv4 or IPv6 CIDR addresses"
 msgstr ""
 
-#: gnu/packages/networking.scm:1327
+#: gnu/packages/networking.scm:2017
 msgid "Net::CIDR::Lite merges IPv4 or IPv6 CIDR addresses."
 msgstr ""
 
-#: gnu/packages/networking.scm:1349
+#: gnu/packages/networking.scm:2039
 msgid "Look up location and network information by IP Address in Perl"
 msgstr ""
 
-#: gnu/packages/networking.scm:1350
+#: gnu/packages/networking.scm:2040
 msgid ""
 "The Perl module @code{Geo::IP}.  It looks up location and\n"
 "network information by IP Address."
 msgstr ""
 
-#: gnu/packages/networking.scm:1379
+#: gnu/packages/networking.scm:2069
 msgid "Perl object interface for AF_INET/AF_INET6 domain sockets"
 msgstr ""
 
-#: gnu/packages/networking.scm:1380
+#: gnu/packages/networking.scm:2070
 msgid ""
 "IO::Socket::INET6 is an interface for AF_INET/AF_INET6 domain\n"
 "sockets in Perl."
 msgstr ""
 
-#: gnu/packages/networking.scm:1408
+#: gnu/packages/networking.scm:2098
 msgid "Library providing automatic proxy configuration management"
 msgstr ""
 
-#: gnu/packages/networking.scm:1409
+#: gnu/packages/networking.scm:2099
 msgid ""
 "Libproxy handles the details of HTTP/HTTPS proxy\n"
 "configuration for applications across all scenarios.  Applications using\n"
 "libproxy only have to specify which proxy to use."
 msgstr ""
 
-#: gnu/packages/networking.scm:1444
+#: gnu/packages/networking.scm:2134
 msgid "Redirect any TCP connection through a proxy or proxy chain"
 msgstr ""
 
-#: gnu/packages/networking.scm:1445
+#: gnu/packages/networking.scm:2135
 msgid ""
 "Proxychains-ng is a preloader which hooks calls to sockets\n"
 "in dynamically linked programs and redirects them through one or more SOCKS or\n"
 "HTTP proxies."
 msgstr ""
 
-#: gnu/packages/networking.scm:1465
+#: gnu/packages/networking.scm:2155
 msgid "Network communication layer on top of UDP"
 msgstr ""
 
-#: gnu/packages/networking.scm:1467
+#: gnu/packages/networking.scm:2157
 msgid ""
 "ENet's purpose is to provide a relatively thin, simple and robust network\n"
 "communication layer on top of UDP.  The primary feature it provides is optional\n"
@@ -13202,11 +15042,11 @@ msgid ""
 "library remains flexible, portable, and easily embeddable."
 msgstr ""
 
-#: gnu/packages/networking.scm:1532
+#: gnu/packages/networking.scm:2222
 msgid "Applicative network protocol demultiplexer"
 msgstr ""
 
-#: gnu/packages/networking.scm:1534
+#: gnu/packages/networking.scm:2224
 msgid ""
 "sslh is a network protocol demultiplexer.  It acts like a switchboard,\n"
 "accepting connections from clients on one port and forwarding them to different\n"
@@ -13218,11 +15058,11 @@ msgid ""
 "that block port 22."
 msgstr ""
 
-#: gnu/packages/networking.scm:1557
+#: gnu/packages/networking.scm:2247
 msgid "TCP, UDP and SCTP bandwidth measurement tool"
 msgstr ""
 
-#: gnu/packages/networking.scm:1559
+#: gnu/packages/networking.scm:2249
 msgid ""
 "iPerf is a tool to measure achievable bandwidth on IP networks.  It\n"
 "supports tuning of various parameters related to timing, buffers and\n"
@@ -13230,11 +15070,11 @@ msgid ""
 "the bandwidth, loss, and other parameters."
 msgstr ""
 
-#: gnu/packages/networking.scm:1592
+#: gnu/packages/networking.scm:2286
 msgid "Per-process bandwidth monitor"
 msgstr ""
 
-#: gnu/packages/networking.scm:1593
+#: gnu/packages/networking.scm:2287
 msgid ""
 "NetHogs is a small 'net top' tool for Linux.  Instead of\n"
 "breaking the traffic down per protocol or per subnet, like most tools do, it\n"
@@ -13246,11 +15086,11 @@ msgid ""
 "gone wild and are suddenly taking up your bandwidth."
 msgstr ""
 
-#: gnu/packages/networking.scm:1639
+#: gnu/packages/networking.scm:2333
 msgid "Usenet binary file downloader"
 msgstr ""
 
-#: gnu/packages/networking.scm:1641
+#: gnu/packages/networking.scm:2335
 msgid ""
 "NZBGet is a binary newsgrabber, which downloads files from Usenet based\n"
 "on information given in @code{nzb} files.  NZBGet can be used in standalone\n"
@@ -13260,11 +15100,11 @@ msgid ""
 "procedure calls (RPCs)."
 msgstr ""
 
-#: gnu/packages/networking.scm:1695
+#: gnu/packages/networking.scm:2387
 msgid "Virtual network switch"
 msgstr ""
 
-#: gnu/packages/networking.scm:1698
+#: gnu/packages/networking.scm:2390
 msgid ""
 "Open vSwitch is a multilayer virtual switch.  It is designed to enable\n"
 "massive network automation through programmatic extension, while still\n"
@@ -13272,54 +15112,54 @@ msgid ""
 "IPFIX, RSPAN, CLI, LACP, 802.1ag)."
 msgstr ""
 
-#: gnu/packages/networking.scm:1720
+#: gnu/packages/networking.scm:2412
 msgid "Python class and tools for handling IP addresses and networks"
 msgstr ""
 
-#: gnu/packages/networking.scm:1721
+#: gnu/packages/networking.scm:2413
 msgid ""
 "The @code{IP} class allows a comfortable parsing and\n"
 "handling for most notations in use for IPv4 and IPv6 addresses and\n"
 "networks."
 msgstr ""
 
-#: gnu/packages/networking.scm:1744
+#: gnu/packages/networking.scm:2436
 msgid "Internet bandwidth tester"
 msgstr ""
 
-#: gnu/packages/networking.scm:1746
+#: gnu/packages/networking.scm:2438
 msgid ""
 "Command line interface for testing internet bandwidth using\n"
 "speedtest.net."
 msgstr ""
 
-#: gnu/packages/networking.scm:1764
+#: gnu/packages/networking.scm:2456
 msgid "HPA's tftp client"
 msgstr ""
 
-#: gnu/packages/networking.scm:1766
+#: gnu/packages/networking.scm:2458
 msgid ""
 "This is a tftp client derived from OpenBSD tftp with some extra options\n"
 "added and bugs fixed.  The source includes readline support but it is not\n"
 "enabled due to license conflicts between the BSD advertising clause and the GPL."
 msgstr ""
 
-#: gnu/packages/networking.scm:1794
+#: gnu/packages/networking.scm:2487
 msgid "Small Ident Daemon"
 msgstr ""
 
-#: gnu/packages/networking.scm:1796
+#: gnu/packages/networking.scm:2489
 msgid ""
-"@dfn{Pidentd} (Peter's Ident Daemon) is a identd, which implements a\n"
+"@dfn{Pidentd} (Peter's Ident Daemon) is an identd, which implements a\n"
 "identification server.  Pidentd looks up specific TCP/IP connections and\n"
 "returns the user name and other information about the connection."
 msgstr ""
 
-#: gnu/packages/networking.scm:1843
+#: gnu/packages/networking.scm:2536
 msgid "Create secure pipes between sockets"
 msgstr ""
 
-#: gnu/packages/networking.scm:1844
+#: gnu/packages/networking.scm:2537
 msgid ""
 "Spiped (pronounced \"ess-pipe-dee\") is a utility for creating\n"
 "symmetrically encrypted and authenticated pipes between socket addresses, so\n"
@@ -13329,11 +15169,11 @@ msgid ""
 "does not use SSH and requires a pre-shared symmetric key."
 msgstr ""
 
-#: gnu/packages/networking.scm:1871
+#: gnu/packages/networking.scm:2564
 msgid "Routing Software Suite"
 msgstr ""
 
-#: gnu/packages/networking.scm:1872
+#: gnu/packages/networking.scm:2565
 msgid ""
 "Quagga is a routing software suite, providing implementations\n"
 "of OSPFv2, OSPFv3, RIP v1 and v2, RIPng and BGP-4 for Unix platforms.\n"
@@ -13345,22 +15185,22 @@ msgid ""
 "updates to the zebra daemon."
 msgstr ""
 
-#: gnu/packages/networking.scm:1923
+#: gnu/packages/networking.scm:2616
 msgid "IPv6 security research toolkit"
 msgstr ""
 
-#: gnu/packages/networking.scm:1924
+#: gnu/packages/networking.scm:2617
 msgid ""
 "The THC IPv6 Toolkit provides command-line tools and a library\n"
 "for researching IPv6 implementations and deployments.  It requires Linux 2.6 or\n"
 "newer and only works on Ethernet network interfaces."
 msgstr ""
 
-#: gnu/packages/networking.scm:1950
+#: gnu/packages/networking.scm:2643
 msgid "Bandwidth monitor"
 msgstr ""
 
-#: gnu/packages/networking.scm:1951
+#: gnu/packages/networking.scm:2644
 msgid ""
 "bmon is a monitoring and debugging tool to capture\n"
 "networking-related statistics and prepare them visually in a human-friendly\n"
@@ -13368,11 +15208,11 @@ msgid ""
 "interface and a programmable text output for scripting."
 msgstr ""
 
-#: gnu/packages/networking.scm:1993
+#: gnu/packages/networking.scm:2681
 msgid "Framework for low-level network packet construction"
 msgstr ""
 
-#: gnu/packages/networking.scm:1995
+#: gnu/packages/networking.scm:2683
 msgid ""
 "Libnet provides a fairly portable framework for network packet\n"
 "construction and injection.  It features portable packet creation interfaces\n"
@@ -13381,11 +15221,11 @@ msgid ""
 "can be whipped up with little effort."
 msgstr ""
 
-#: gnu/packages/networking.scm:2020
+#: gnu/packages/networking.scm:2708
 msgid "Network diagnostic tool"
 msgstr ""
 
-#: gnu/packages/networking.scm:2022
+#: gnu/packages/networking.scm:2710
 msgid ""
 "@acronym{mtr, My TraceRoute} combines the functionality of the\n"
 "@command{traceroute} and @command{ping} programs in a single network diagnostic\n"
@@ -13395,22 +15235,22 @@ msgid ""
 "displays the results in real time."
 msgstr ""
 
-#: gnu/packages/networking.scm:2074
+#: gnu/packages/networking.scm:2762
 msgid "IKEv1/v2 keying daemon"
 msgstr ""
 
-#: gnu/packages/networking.scm:2075
+#: gnu/packages/networking.scm:2763
 msgid ""
 "StrongSwan is an IPsec implementation originally based upon\n"
 "the FreeS/WAN project.  It contains support for IKEv1, IKEv2, MOBIKE, IPv6,\n"
 "NAT-T and more."
 msgstr ""
 
-#: gnu/packages/networking.scm:2159
+#: gnu/packages/networking.scm:2847
 msgid "Peer-to-peer client for the eD2K and Kademlia networks"
 msgstr ""
 
-#: gnu/packages/networking.scm:2161
+#: gnu/packages/networking.scm:2849
 msgid ""
 "aMule is an eMule-like client for the eD2k and Kademlia peer-to-peer\n"
 "file sharing networks.  It includes a graphical user interface (GUI), a daemon\n"
@@ -13419,11 +15259,11 @@ msgid ""
 "remotely."
 msgstr ""
 
-#: gnu/packages/networking.scm:2190
+#: gnu/packages/networking.scm:2872
 msgid "Framework for proximity-based peer-to-peer applications"
 msgstr ""
 
-#: gnu/packages/networking.scm:2191
+#: gnu/packages/networking.scm:2873
 msgid ""
 "Zyre provides reliable group messaging over local area\n"
 "networks using zeromq.  It has these key characteristics:\n"
@@ -13440,11 +15280,21 @@ msgid ""
 "@end itemize"
 msgstr ""
 
-#: gnu/packages/networking.scm:2231
+#: gnu/packages/networking.scm:2908
+msgid "SocketCAN user-space library"
+msgstr ""
+
+#: gnu/packages/networking.scm:2909
+msgid ""
+"This library allows controlling basic functions in SocketCAN\n"
+"from user-space.  It requires a kernel built with SocketCAN support."
+msgstr ""
+
+#: gnu/packages/networking.scm:2937
 msgid "CAN utilities"
 msgstr ""
 
-#: gnu/packages/networking.scm:2232
+#: gnu/packages/networking.scm:2938
 msgid ""
 "This package provides CAN utilities in the following areas:\n"
 "\n"
@@ -13460,22 +15310,22 @@ msgid ""
 "@end itemize"
 msgstr ""
 
-#: gnu/packages/networking.scm:2268
+#: gnu/packages/networking.scm:2974
 msgid "C++ library for ASynchronous network I/O"
 msgstr ""
 
-#: gnu/packages/networking.scm:2269
+#: gnu/packages/networking.scm:2975
 msgid ""
 "Asio is a cross-platform C++ library for network and\n"
 "low-level I/O programming that provides developers with a consistent\n"
 "asynchronous model using a modern C++ approach."
 msgstr ""
 
-#: gnu/packages/networking.scm:2293
+#: gnu/packages/networking.scm:2999
 msgid "Fast tunnel proxy that helps you bypass firewalls"
 msgstr ""
 
-#: gnu/packages/networking.scm:2295
+#: gnu/packages/networking.scm:3001
 msgid ""
 "This package is a fast tunnel proxy that helps you bypass firewalls.\n"
 "\n"
@@ -13489,11 +15339,11 @@ msgid ""
 "@end itemize"
 msgstr ""
 
-#: gnu/packages/networking.scm:2373
+#: gnu/packages/networking.scm:3082
 msgid "Simple Network Management Protocol library and tools"
 msgstr ""
 
-#: gnu/packages/networking.scm:2374
+#: gnu/packages/networking.scm:3083
 msgid ""
 "The @dfn{Simple Network Management Protocol} (SNMP) is a\n"
 "widely used protocol for monitoring the health and welfare of network\n"
@@ -13502,32 +15352,32 @@ msgid ""
 "SNMP v3 using both IPv4 and IPv6."
 msgstr ""
 
-#: gnu/packages/networking.scm:2419
+#: gnu/packages/networking.scm:3129
 msgid "Bridge for UDP tunnels, Ethernet, TAP and VMnet interfaces"
 msgstr ""
 
-#: gnu/packages/networking.scm:2420
+#: gnu/packages/networking.scm:3130
 msgid ""
 "uBridge is a simple program to create user-land bridges\n"
 "between various technologies.  Currently, bridging between UDP tunnels,\n"
 "Ethernet and TAP interfaces is supported.  Packet capture is also supported."
 msgstr ""
 
-#: gnu/packages/networking.scm:2461
+#: gnu/packages/networking.scm:3163
 msgid "Capture wlan traffic to hashcat and John the Ripper"
 msgstr ""
 
-#: gnu/packages/networking.scm:2463
+#: gnu/packages/networking.scm:3165
 msgid ""
 "This package contains a small set of tools to capture and convert\n"
 "packets from wireless devices for use with hashcat or John the Ripper."
 msgstr ""
 
-#: gnu/packages/networking.scm:2490
+#: gnu/packages/networking.scm:3194
 msgid "Small tool to capture packets from wlan devices"
 msgstr ""
 
-#: gnu/packages/networking.scm:2492
+#: gnu/packages/networking.scm:3196
 msgid ""
 "Small tool to capture packets from WLAN devices.  After capturing,\n"
 "upload the \"uncleaned\" cap to @url{https://wpa-sec.stanev.org/?submit} to\n"
@@ -13537,11 +15387,11 @@ msgid ""
 "and check if the WLAN key or the master key was transmitted unencrypted."
 msgstr ""
 
-#: gnu/packages/networking.scm:2519
+#: gnu/packages/networking.scm:3223
 msgid "SOCKS server and client"
 msgstr ""
 
-#: gnu/packages/networking.scm:2520
+#: gnu/packages/networking.scm:3224
 msgid ""
 "Dante is a SOCKS client and server implementation.  It can\n"
 "be installed on a machine with access to an external TCP/IP network and will\n"
@@ -13550,54 +15400,54 @@ msgid ""
 "never see any machines other than the one Dante is running on."
 msgstr ""
 
-#: gnu/packages/networking.scm:2573
+#: gnu/packages/networking.scm:3277
 msgid "Asynchronous RESTful functionality to C++11 applications"
 msgstr ""
 
-#: gnu/packages/networking.scm:2574
+#: gnu/packages/networking.scm:3278
 msgid ""
 "Restbed is a comprehensive and consistent programming\n"
 "model for building applications that require seamless and secure\n"
 "communication over HTTP."
 msgstr ""
 
-#: gnu/packages/networking.scm:2616
+#: gnu/packages/networking.scm:3320
 msgid "C++14 library that gives you an embedded HTTP/Websocket server"
 msgstr ""
 
-#: gnu/packages/networking.scm:2617
+#: gnu/packages/networking.scm:3321
 msgid ""
 "RESTinio is a header-only C++14 library that gives you an embedded\n"
 "HTTP/Websocket server.  It is based on standalone version of ASIO\n"
 "and targeted primarily for asynchronous processing of HTTP-requests."
 msgstr ""
 
-#: gnu/packages/networking.scm:2665
+#: gnu/packages/networking.scm:3370
 msgid "Distributed Hash Table (DHT) library"
 msgstr ""
 
-#: gnu/packages/networking.scm:2666
+#: gnu/packages/networking.scm:3371
 msgid ""
 "OpenDHT is a Distributed Hash Table (DHT) library.  It may\n"
 "be used to manage peer-to-peer network connections as needed for real time\n"
 "communication."
 msgstr ""
 
-#: gnu/packages/networking.scm:2694
+#: gnu/packages/networking.scm:3399
 msgid "IP routing protocol suite"
 msgstr ""
 
-#: gnu/packages/networking.scm:2695
+#: gnu/packages/networking.scm:3400
 msgid ""
 "FRRouting (FRR) is an IP routing protocol suite which includes\n"
 "protocol daemons for BGP, IS-IS, LDP, OSPF, PIM, and RIP. "
 msgstr ""
 
-#: gnu/packages/networking.scm:2750
+#: gnu/packages/networking.scm:3455
 msgid "Internet Wireless Daemon"
 msgstr ""
 
-#: gnu/packages/networking.scm:2751
+#: gnu/packages/networking.scm:3456
 msgid ""
 "iwd is a wireless daemon for Linux that aims to replace WPA\n"
 "Supplicant.  It optimizes resource utilization by not depending on any external\n"
@@ -13605,22 +15455,22 @@ msgid ""
 "maximum extent possible."
 msgstr ""
 
-#: gnu/packages/networking.scm:2784
+#: gnu/packages/networking.scm:3489
 msgid "Management tool for the mesh networking BATMAN protocol"
 msgstr ""
 
-#: gnu/packages/networking.scm:2785
+#: gnu/packages/networking.scm:3490
 msgid ""
 "This package provides a control tool for the\n"
 "B.A.T.M.A.N. mesh networking routing protocol provided by the Linux kernel\n"
 "module @code{batman-adv}, for Layer 2."
 msgstr ""
 
-#: gnu/packages/networking.scm:2820
+#: gnu/packages/networking.scm:3525
 msgid "Make localhost servers publicly visible"
 msgstr ""
 
-#: gnu/packages/networking.scm:2822
+#: gnu/packages/networking.scm:3527
 msgid ""
 "PageKite implements a tunneled reverse proxy which makes it easy to make\n"
 "a service (such as an HTTP or SSH server) on localhost visible to the wider\n"
@@ -13628,11 +15478,11 @@ msgid ""
 "service is available at @url{https://pagekite.net/}, or you can run your own."
 msgstr ""
 
-#: gnu/packages/networking.scm:2865
+#: gnu/packages/networking.scm:3570
 msgid "Simple IP network calculator"
 msgstr ""
 
-#: gnu/packages/networking.scm:2866
+#: gnu/packages/networking.scm:3571
 msgid ""
 "ipcalc takes an IP address and netmask and calculates the\n"
 "resulting broadcast, network, Cisco wildcard mask, and host range.  By giving\n"
@@ -13641,11 +15491,11 @@ msgid ""
 "easy-to-understand binary values."
 msgstr ""
 
-#: gnu/packages/networking.scm:2904
+#: gnu/packages/networking.scm:3609
 msgid "Utility to set up and maintain TUN/TAP network interfaces"
 msgstr ""
 
-#: gnu/packages/networking.scm:2905
+#: gnu/packages/networking.scm:3610
 msgid ""
 "Tunctl is used to set up and maintain persistent TUN/TAP\n"
 "network interfaces, enabling user applications to simulate network traffic.\n"
@@ -13653,21 +15503,21 @@ msgid ""
 "simulation, and a number of other applications."
 msgstr ""
 
-#: gnu/packages/networking.scm:2924
+#: gnu/packages/networking.scm:3629
 msgid "Implements Wake On LAN functionality in a small program"
 msgstr ""
 
-#: gnu/packages/networking.scm:2925
+#: gnu/packages/networking.scm:3630
 msgid ""
 "Tool to send a magic packet to wake another host on the\n"
 "network.  This must be enabled on the target host, usually in the BIOS."
 msgstr ""
 
-#: gnu/packages/networking.scm:2947
+#: gnu/packages/networking.scm:3652
 msgid "Virtual Distributed Ethernet"
 msgstr ""
 
-#: gnu/packages/networking.scm:2948
+#: gnu/packages/networking.scm:3653
 msgid ""
 "VDE is a set of programs to provide virtual software-defined\n"
 "Ethernet network interface controllers across multiple virtual or\n"
@@ -13676,11 +15526,11 @@ msgid ""
 "cables."
 msgstr ""
 
-#: gnu/packages/networking.scm:2992
+#: gnu/packages/networking.scm:3697
 msgid "Reliable, high performance TCP/HTTP load balancer"
 msgstr ""
 
-#: gnu/packages/networking.scm:2993
+#: gnu/packages/networking.scm:3698
 msgid ""
 "HAProxy is a free, very fast and reliable solution offering\n"
 "high availability, load balancing, and proxying for TCP and HTTP-based\n"
@@ -13689,11 +15539,52 @@ msgid ""
 "thousands of connections is clearly realistic with today's hardware."
 msgstr ""
 
-#: gnu/packages/pdf.scm:128
-msgid "Rearrange PDF pages to print as flyers on one sheet"
+#: gnu/packages/networking.scm:3745
+msgid "Locate neighbors of your network equipment"
+msgstr ""
+
+#: gnu/packages/networking.scm:3747
+msgid ""
+"The @dfn{Link Layer Discovery Protocol} (LLDP) is an industry standard\n"
+"protocol designed to supplant proprietary Link-Layer protocols such as EDP or\n"
+"CDP.  The goal of LLDP is to provide an inter-vendor compatible mechanism to\n"
+"deliver Link-Layer notifications to adjacent network devices.  @code{lldpd} is\n"
+"an implementation of LLDP.  It also supports some proprietary protocols."
+msgstr ""
+
+#: gnu/packages/networking.scm:3788
+msgid "Denial-of-service countermeasure"
+msgstr ""
+
+#: gnu/packages/networking.scm:3789
+msgid ""
+"Hashcash is a proof-of-work algorithm, which has been used\n"
+"as a denial-of-service countermeasure technique in a number of systems.\n"
+"\n"
+"A hashcash stamp constitutes a proof-of-work which takes a parametrizable\n"
+"amount of work to compute for the sender.  The recipient can verify received\n"
+"hashcash stamps efficiently.\n"
+"\n"
+"This package contains a command-line tool for computing and verifying hashcash\n"
+"stamps."
+msgstr ""
+
+#: gnu/packages/networking.scm:3819
+msgid "NBD client and server"
+msgstr ""
+
+#: gnu/packages/networking.scm:3820
+msgid ""
+"This package provides the NBD (Network Block Devices)\n"
+"client and server.  It allows you to use remote block devices over a TCP/IP\n"
+"network."
 msgstr ""
 
 #: gnu/packages/pdf.scm:129
+msgid "Rearrange PDF pages to print as flyers on one sheet"
+msgstr ""
+
+#: gnu/packages/pdf.scm:130
 msgid ""
 "@command{flyer-composer} can be used to prepare one- or\n"
 "two-sided flyers for printing on one sheet of paper.\n"
@@ -13704,10 +15595,10 @@ msgid ""
 "times.  If you have a second page, Flyer Composer can arrange it the same way\n"
 "- even if the second page is in a separate PDF file.\n"
 "\n"
-"This package contains both the commnd line tool and the gui too."
+"This package contains both the command line tool and the gui too."
 msgstr ""
 
-#: gnu/packages/pdf.scm:156
+#: gnu/packages/pdf.scm:157
 msgid ""
 "@command{flyer-composer} can be used to prepare one- or\n"
 "two-sided flyers for printing on one sheet of paper.\n"
@@ -13718,130 +15609,130 @@ msgid ""
 "times.  If you have a second page, Flyer Composer can arrange it the same way\n"
 "- even if the second page is in a separate PDF file.\n"
 "\n"
-"This package contains only the commnd line tool.  If you like to use the gui,\n"
+"This package contains only the command line tool.  If you like to use the gui,\n"
 "please install the @code{flyer-composer-gui} package."
 msgstr ""
 
-#: gnu/packages/pdf.scm:214
+#: gnu/packages/pdf.scm:213
 msgid "PDF rendering library"
 msgstr ""
 
-#: gnu/packages/pdf.scm:216
+#: gnu/packages/pdf.scm:215
 msgid "Poppler is a PDF rendering library based on the xpdf-3.0 code base."
 msgstr ""
 
-#: gnu/packages/pdf.scm:241
+#: gnu/packages/pdf.scm:240
 msgid "Poppler encoding files for rendering of CJK and Cyrillic text"
 msgstr ""
 
-#: gnu/packages/pdf.scm:242
+#: gnu/packages/pdf.scm:241
 msgid ""
 "This package provides optional encoding files for Poppler.\n"
 "When present, Poppler is able to correctly render CJK and Cyrillic text."
 msgstr ""
 
-#: gnu/packages/pdf.scm:255
+#: gnu/packages/pdf.scm:254
 msgid "Qt4 frontend for the Poppler PDF rendering library"
 msgstr ""
 
-#: gnu/packages/pdf.scm:262
+#: gnu/packages/pdf.scm:261
 msgid "Qt5 frontend for the Poppler PDF rendering library"
 msgstr ""
 
-#: gnu/packages/pdf.scm:302
+#: gnu/packages/pdf.scm:301
 msgid "Python bindings for Poppler-Qt5"
 msgstr ""
 
-#: gnu/packages/pdf.scm:304
+#: gnu/packages/pdf.scm:303
 msgid ""
 "This package provides Python bindings for the Qt5 interface of the\n"
 "Poppler PDF rendering library."
 msgstr ""
 
-#: gnu/packages/pdf.scm:338
+#: gnu/packages/pdf.scm:337
 msgid "Library for generating PDF files"
 msgstr ""
 
-#: gnu/packages/pdf.scm:340
+#: gnu/packages/pdf.scm:339
 msgid ""
 "libHaru is a library for generating PDF files.  libHaru does not support\n"
 "reading and editing of existing PDF files."
 msgstr ""
 
-#: gnu/packages/pdf.scm:388
+#: gnu/packages/pdf.scm:387
 msgid "Viewer for PDF files based on the Motif toolkit"
 msgstr ""
 
-#: gnu/packages/pdf.scm:390
+#: gnu/packages/pdf.scm:389
 msgid "Xpdf is a viewer for Portable Document Format (PDF) files."
 msgstr ""
 
-#: gnu/packages/pdf.scm:424
+#: gnu/packages/pdf.scm:423
 msgid "Comic book support for zathura (libarchive backend)"
 msgstr ""
 
-#: gnu/packages/pdf.scm:425
+#: gnu/packages/pdf.scm:424
 msgid ""
 "The zathura-cb plugin adds comic book support to zathura\n"
 "using libarchive."
 msgstr ""
 
-#: gnu/packages/pdf.scm:459
+#: gnu/packages/pdf.scm:458
 msgid "PS support for zathura (libspectre backend)"
 msgstr ""
 
-#: gnu/packages/pdf.scm:460
+#: gnu/packages/pdf.scm:459
 msgid ""
 "The zathura-ps plugin adds PS support to zathura\n"
 "using libspectre."
 msgstr ""
 
-#: gnu/packages/pdf.scm:495
+#: gnu/packages/pdf.scm:494
 msgid "DjVu support for zathura (DjVuLibre backend)"
 msgstr ""
 
-#: gnu/packages/pdf.scm:496
+#: gnu/packages/pdf.scm:495
 msgid ""
 "The zathura-djvu plugin adds DjVu support to zathura\n"
 "using the DjVuLibre library."
 msgstr ""
 
-#: gnu/packages/pdf.scm:539
+#: gnu/packages/pdf.scm:538
 msgid "PDF support for zathura (mupdf backend)"
 msgstr ""
 
-#: gnu/packages/pdf.scm:540
+#: gnu/packages/pdf.scm:539
 msgid ""
 "The zathura-pdf-mupdf plugin adds PDF support to zathura\n"
 "by using the @code{mupdf} rendering library."
 msgstr ""
 
-#: gnu/packages/pdf.scm:575
+#: gnu/packages/pdf.scm:574
 msgid "PDF support for zathura (poppler backend)"
 msgstr ""
 
-#: gnu/packages/pdf.scm:576
+#: gnu/packages/pdf.scm:575
 msgid ""
 "The zathura-pdf-poppler plugin adds PDF support to zathura\n"
 "by using the poppler rendering engine."
 msgstr ""
 
-#: gnu/packages/pdf.scm:632
+#: gnu/packages/pdf.scm:631
 msgid "Lightweight keyboard-driven PDF viewer"
 msgstr ""
 
-#: gnu/packages/pdf.scm:633
+#: gnu/packages/pdf.scm:632
 msgid ""
 "Zathura is a customizable document viewer.  It provides a\n"
 "minimalistic interface and an interface that mainly focuses on keyboard\n"
 "interaction."
 msgstr ""
 
-#: gnu/packages/pdf.scm:676
+#: gnu/packages/pdf.scm:675
 msgid "Tools to work with the PDF file format"
 msgstr ""
 
-#: gnu/packages/pdf.scm:678
+#: gnu/packages/pdf.scm:677
 msgid ""
 "PoDoFo is a C++ library and set of command-line tools to work with the\n"
 "PDF file format.  It can parse PDF files and load them into memory, and makes\n"
@@ -13850,11 +15741,11 @@ msgid ""
 "extracting content or merging files."
 msgstr ""
 
-#: gnu/packages/pdf.scm:733
+#: gnu/packages/pdf.scm:732
 msgid "Lightweight PDF viewer and toolkit"
 msgstr ""
 
-#: gnu/packages/pdf.scm:735
+#: gnu/packages/pdf.scm:734
 msgid ""
 "MuPDF is a C library that implements a PDF and XPS parsing and\n"
 "rendering engine.  It is used primarily to render pages into bitmaps,\n"
@@ -13866,11 +15757,11 @@ msgid ""
 "@command{pdfclean}, and examining the file structure @command{pdfshow}."
 msgstr ""
 
-#: gnu/packages/pdf.scm:782
+#: gnu/packages/pdf.scm:781
 msgid "Command-line tools and library for transforming PDF files"
 msgstr ""
 
-#: gnu/packages/pdf.scm:784
+#: gnu/packages/pdf.scm:783
 msgid ""
 "QPDF is a command-line program that does structural, content-preserving\n"
 "transformations on PDF files.  It could have been called something like\n"
@@ -13879,21 +15770,21 @@ msgid ""
 "program capable of converting PDF into other formats."
 msgstr ""
 
-#: gnu/packages/pdf.scm:816
+#: gnu/packages/pdf.scm:815
 msgid "Notetaking using a stylus"
 msgstr ""
 
-#: gnu/packages/pdf.scm:818
+#: gnu/packages/pdf.scm:817
 msgid ""
 "Xournal is an application for notetaking, sketching, keeping a journal\n"
 "using a stylus."
 msgstr ""
 
-#: gnu/packages/pdf.scm:875
+#: gnu/packages/pdf.scm:876
 msgid "Handwriting notetaking software with PDF annotation support"
 msgstr ""
 
-#: gnu/packages/pdf.scm:876
+#: gnu/packages/pdf.scm:877
 msgid ""
 "Xournal++ is a hand note taking software written in\n"
 "C++ with the target of flexibility, functionality and speed.  Stroke\n"
@@ -13907,7 +15798,7 @@ msgid ""
 "@item Fill shape functionality\n"
 "@item PDF Export (with and without paper style)\n"
 "@item PNG Export (with and without transparent background)\n"
-"@item Allow to map different tools / colors etc. to stylus buttons /\n"
+"@item Map different tools / colors etc. to stylus buttons /\n"
 "mouse buttons\n"
 "@item Sidebar with Page Previews with advanced page sorting, PDF\n"
 "Bookmarks and Layers (can be individually hidden, editing layer can be\n"
@@ -13929,22 +15820,22 @@ msgid ""
 "@end itemize"
 msgstr ""
 
-#: gnu/packages/pdf.scm:930
+#: gnu/packages/pdf.scm:955
 msgid "Python library for generating PDFs and graphics"
 msgstr ""
 
-#: gnu/packages/pdf.scm:931
+#: gnu/packages/pdf.scm:956
 msgid ""
 "This is the ReportLab PDF Toolkit.  It allows rapid creation\n"
 "of rich PDF documents, and also creation of charts in a variety of bitmap and\n"
 "vector formats."
 msgstr ""
 
-#: gnu/packages/pdf.scm:984
+#: gnu/packages/pdf.scm:1009
 msgid "PDF presentation tool with visual effects"
 msgstr ""
 
-#: gnu/packages/pdf.scm:986
+#: gnu/packages/pdf.scm:1011
 msgid ""
 "Impressive is a tool to display PDF files that provides visual effects\n"
 "such as smooth alpha-blended slide transitions.  It provides additional tools\n"
@@ -13952,31 +15843,31 @@ msgid ""
 "the PDF pages."
 msgstr ""
 
-#: gnu/packages/pdf.scm:1035
+#: gnu/packages/pdf.scm:1060
 msgid "Framebuffer and drm-based image viewer"
 msgstr ""
 
-#: gnu/packages/pdf.scm:1037
+#: gnu/packages/pdf.scm:1062
 msgid ""
 "fbida contains a few applications for viewing and editing images on\n"
 "the framebuffer."
 msgstr ""
 
-#: gnu/packages/pdf.scm:1062
+#: gnu/packages/pdf.scm:1087
 msgid "PDF to SVG converter"
 msgstr ""
 
-#: gnu/packages/pdf.scm:1063
+#: gnu/packages/pdf.scm:1088
 msgid ""
 "@command{pdf2svg} is a simple command-line PDF to SVG\n"
 "converter using the Poppler and Cairo libraries."
 msgstr ""
 
-#: gnu/packages/pdf.scm:1094 gnu/packages/pdf.scm:1131
+#: gnu/packages/pdf.scm:1119 gnu/packages/pdf.scm:1156
 msgid "Pure Python PDF toolkit"
 msgstr ""
 
-#: gnu/packages/pdf.scm:1095
+#: gnu/packages/pdf.scm:1120
 msgid ""
 "PyPDF2 is a pure Python PDF library capable of:\n"
 "\n"
@@ -13996,7 +15887,7 @@ msgid ""
 "manage or manipulate PDFs."
 msgstr ""
 
-#: gnu/packages/pdf.scm:1132
+#: gnu/packages/pdf.scm:1157
 msgid ""
 "PyPDF2 is a pure Python PDF toolkit.\n"
 "\n"
@@ -14004,11 +15895,11 @@ msgid ""
 "python-pypdf2 instead."
 msgstr ""
 
-#: gnu/packages/pdf.scm:1173
+#: gnu/packages/pdf.scm:1198
 msgid "Merge, split and re-arrange pages from PDF documents"
 msgstr ""
 
-#: gnu/packages/pdf.scm:1175
+#: gnu/packages/pdf.scm:1200
 msgid ""
 "PDF Arranger is a small application which allows one to merge or split\n"
 "PDF documents and rotate, crop and rearrange their pages using an interactive\n"
@@ -14017,11 +15908,11 @@ msgid ""
 "PDF Arranger was formerly known as PDF-Shuffler."
 msgstr ""
 
-#: gnu/packages/pdf.scm:1198
+#: gnu/packages/pdf.scm:1223
 msgid "Scale and tile PDF images/pages to print on multiple pages"
 msgstr ""
 
-#: gnu/packages/pdf.scm:1199
+#: gnu/packages/pdf.scm:1224
 msgid ""
 "@command{pdfposter} can be used to create a large poster by\n"
 "building it from multiple pages and/or printing it on large media.  It expects\n"
@@ -14034,11 +15925,11 @@ msgid ""
 "PDF.  Indeed @command{pdfposter} was inspired by @command{poster}."
 msgstr ""
 
-#: gnu/packages/pdf.scm:1230
+#: gnu/packages/pdf.scm:1255
 msgid "Command-line utility to search text in PDF files"
 msgstr ""
 
-#: gnu/packages/pdf.scm:1232
+#: gnu/packages/pdf.scm:1257
 msgid ""
 "Pdfgrep searches in pdf files for strings matching a regular expression.\n"
 "Support some GNU grep options as file name output, page number output,\n"
@@ -14046,11 +15937,11 @@ msgid ""
 "multiple files."
 msgstr ""
 
-#: gnu/packages/pdf.scm:1265
+#: gnu/packages/pdf.scm:1290
 msgid "Presenter console with multi-monitor support for PDF files"
 msgstr ""
 
-#: gnu/packages/pdf.scm:1267
+#: gnu/packages/pdf.scm:1292
 msgid ""
 "pdfpc is a presentation viewer application which uses multi-monitor\n"
 "output to provide meta information to the speaker during the presentation.  It\n"
@@ -14060,22 +15951,21 @@ msgid ""
 "presentation.  The input files processed by pdfpc are PDF documents."
 msgstr ""
 
-#: gnu/packages/pdf.scm:1293
+#: gnu/packages/pdf.scm:1318
 msgid "Pango to PostScript converter"
 msgstr ""
 
-#: gnu/packages/pdf.scm:1295
+#: gnu/packages/pdf.scm:1320
 msgid ""
 "Paps reads a UTF-8 encoded file and generates a PostScript language\n"
-"rendering of the file.  The rendering is done by creating outline curves\n"
-"through the Pango @code{ft2} backend."
+"rendering of the file through the Pango Cairo back end."
 msgstr ""
 
-#: gnu/packages/pdf.scm:1329
+#: gnu/packages/pdf.scm:1350
 msgid "PDF manipulation tool"
 msgstr ""
 
-#: gnu/packages/pdf.scm:1330
+#: gnu/packages/pdf.scm:1351
 msgid ""
 "Stapler is a pure Python alternative to PDFtk, a tool for\n"
 "manipulating PDF documents from the command line.  It supports\n"
@@ -14089,11 +15979,11 @@ msgid ""
 "@end itemize"
 msgstr ""
 
-#: gnu/packages/pdf.scm:1402
+#: gnu/packages/pdf.scm:1423
 msgid "Document factory for creating PDF files from HTML"
 msgstr ""
 
-#: gnu/packages/pdf.scm:1403
+#: gnu/packages/pdf.scm:1424
 msgid ""
 "WeasyPrint helps web developers to create PDF documents.  It\n"
 "turns simple HTML pages into gorgeous statistical reports, invoices, tickets,\n"
@@ -14124,11 +16014,11 @@ msgid ""
 "feature."
 msgstr ""
 
-#: gnu/packages/perl.scm:166
+#: gnu/packages/perl.scm:260
 msgid "Implementation of the Perl programming language"
 msgstr ""
 
-#: gnu/packages/perl.scm:168
+#: gnu/packages/perl.scm:262
 msgid ""
 "Perl is a general-purpose programming language originally developed for\n"
 "text manipulation and now used for a wide range of tasks including system\n"
@@ -14136,21 +16026,21 @@ msgid ""
 "more."
 msgstr ""
 
-#: gnu/packages/perl.scm:189
+#: gnu/packages/perl.scm:283
 msgid "Module for merging hierarchies using the C3 algorithm"
 msgstr ""
 
-#: gnu/packages/perl.scm:190
+#: gnu/packages/perl.scm:284
 msgid ""
 "This module implements the C3 algorithm, which aims to\n"
 "provide a sane method resolution order under multiple inheritance."
 msgstr ""
 
-#: gnu/packages/perl.scm:208
+#: gnu/packages/perl.scm:302
 msgid "Compute differences between two files or lists"
 msgstr ""
 
-#: gnu/packages/perl.scm:209
+#: gnu/packages/perl.scm:303
 msgid ""
 "This is a module for computing the difference between two\n"
 "files, two strings, or any other two lists of things.  It uses an intelligent\n"
@@ -14159,11 +16049,11 @@ msgid ""
 "differences."
 msgstr ""
 
-#: gnu/packages/perl.scm:231
+#: gnu/packages/perl.scm:325
 msgid "Use shorter versions of class names"
 msgstr ""
 
-#: gnu/packages/perl.scm:232
+#: gnu/packages/perl.scm:326
 msgid ""
 "The alias module loads the class you specify and exports\n"
 "into your namespace a subroutine that returns the class name.  You can\n"
@@ -14171,11 +16061,23 @@ msgid ""
 "implicitly."
 msgstr ""
 
-#: gnu/packages/perl.scm:254
+#: gnu/packages/perl.scm:381
+msgid "Get, build and use SDL libraries"
+msgstr ""
+
+#: gnu/packages/perl.scm:383
+msgid ""
+"Alien::SDL can be used to detect and get configuration settings from an\n"
+"installed SDL and related libraries.  Based on your platform it offers the\n"
+"possibility to download and install prebuilt binaries or to build SDL & co.@:\n"
+"from source codes."
+msgstr ""
+
+#: gnu/packages/perl.scm:405
 msgid "Transparently use Moose or Mouse modules"
 msgstr ""
 
-#: gnu/packages/perl.scm:256
+#: gnu/packages/perl.scm:407
 msgid ""
 "This module facilitates using @code{Moose} or @code{Mouse} modules\n"
 "without changing the code.  By default, Mouse will be provided to libraries,\n"
@@ -14184,31 +16086,31 @@ msgid ""
 "variable ANY_MOOSE to be Moose or Mouse."
 msgstr ""
 
-#: gnu/packages/perl.scm:279
+#: gnu/packages/perl.scm:430
 msgid "Configuration files and command line parsing"
 msgstr ""
 
-#: gnu/packages/perl.scm:280
+#: gnu/packages/perl.scm:431
 msgid ""
 "AppConfig is a bundle of Perl5 modules for reading\n"
 "configuration files and parsing command line arguments."
 msgstr ""
 
-#: gnu/packages/perl.scm:300
+#: gnu/packages/perl.scm:451
 msgid "Small utils for array manipulation"
 msgstr ""
 
-#: gnu/packages/perl.scm:301
+#: gnu/packages/perl.scm:452
 msgid ""
 "@code{Array::Utils} is a small pure-perl module containing\n"
 "list manipulation routines."
 msgstr ""
 
-#: gnu/packages/perl.scm:322
+#: gnu/packages/perl.scm:473
 msgid "Allow C/XS libraries to interrupt perl asynchronously"
 msgstr ""
 
-#: gnu/packages/perl.scm:324
+#: gnu/packages/perl.scm:475
 msgid ""
 "@code{Async::Interrupt} implements a single feature only of interest\n"
 "to advanced perl modules, namely asynchronous interruptions (think \"UNIX\n"
@@ -14226,13 +16128,13 @@ msgid ""
 "sometimes even without using a single syscall."
 msgstr ""
 
-#: gnu/packages/perl.scm:354
+#: gnu/packages/perl.scm:505
 msgid "Assorted general utility attributes"
 msgstr ""
 
-#: gnu/packages/perl.scm:355
+#: gnu/packages/perl.scm:506
 msgid ""
-"This packages provides various utility functions.  When used\n"
+"This package provides various utility functions.  When used\n"
 "without argument, this module provides four universally accessible attributes\n"
 "of general interest as follows:\n"
 "@itemize\n"
@@ -14244,11 +16146,11 @@ msgid ""
 "@end itemize"
 msgstr ""
 
-#: gnu/packages/perl.scm:390
+#: gnu/packages/perl.scm:541
 msgid "DEC VMS password hashing"
 msgstr ""
 
-#: gnu/packages/perl.scm:391
+#: gnu/packages/perl.scm:542
 msgid ""
 "@code{Authen::DecHpwd} implements the\n"
 "SYS$HASH_PASSWORD password hashing function from VMS (also known as\n"
@@ -14257,11 +16159,29 @@ msgid ""
 "pure Perl backup version for systems that cannot handle XS."
 msgstr ""
 
-#: gnu/packages/perl.scm:412
+#: gnu/packages/perl.scm:579
+msgid "Hashed passwords/passphrases as objects"
+msgstr ""
+
+#: gnu/packages/perl.scm:580
+msgid ""
+"@code{Authen-Passphrase} is the base class for a\n"
+"system of objects that encapsulate passphrases.  An object of this\n"
+"type is a passphrase recogniser; its job is to recognise whether an\n"
+"offered passphrase is the right one.  For security such passphrase\n"
+"recognisers usually do not themselves know the passphrase they are\n"
+"looking for; they can merely recognise it when they see it.  There are\n"
+"many schemes in use to achieve this effect and the intent of this\n"
+"class is to provide a consistent interface to them all.  In addition\n"
+"to the base class, this module also contains implementations of\n"
+"several specific passphrase schemes."
+msgstr ""
+
+#: gnu/packages/perl.scm:606
 msgid "Lexically disable autovivification"
 msgstr ""
 
-#: gnu/packages/perl.scm:413
+#: gnu/packages/perl.scm:607
 msgid ""
 "When an undefined variable is dereferenced, it gets silently\n"
 "upgraded to an array or hash reference (depending of the type of the\n"
@@ -14275,19 +16195,19 @@ msgid ""
 "error when it would have happened."
 msgstr ""
 
-#: gnu/packages/perl.scm:446
+#: gnu/packages/perl.scm:640
 msgid "Disables bareword filehandles"
 msgstr ""
 
-#: gnu/packages/perl.scm:447
+#: gnu/packages/perl.scm:641
 msgid "This module disables bareword filehandles."
 msgstr ""
 
-#: gnu/packages/perl.scm:467
+#: gnu/packages/perl.scm:661
 msgid "Open a browser in a given URL"
 msgstr ""
 
-#: gnu/packages/perl.scm:468
+#: gnu/packages/perl.scm:662
 msgid ""
 "The functions exported by this module allow you to open URLs\n"
 "in the user's browser.  A set of known commands per OS-name is tested for\n"
@@ -14295,29 +16215,29 @@ msgid ""
 "all known commands are checked."
 msgstr ""
 
-#: gnu/packages/perl.scm:493
+#: gnu/packages/perl.scm:687
 msgid "Execute code after a scope finished compilation"
 msgstr ""
 
-#: gnu/packages/perl.scm:494
+#: gnu/packages/perl.scm:688
 msgid ""
 "This module allows you to execute code when perl finished\n"
 "compiling the surrounding scope."
 msgstr ""
 
-#: gnu/packages/perl.scm:515
+#: gnu/packages/perl.scm:709
 msgid "Wrap OP check callbacks"
 msgstr ""
 
-#: gnu/packages/perl.scm:516
+#: gnu/packages/perl.scm:710
 msgid "This module allows you to wrap OP check callbacks."
 msgstr ""
 
-#: gnu/packages/perl.scm:532
+#: gnu/packages/perl.scm:726
 msgid "Lists of reserved barewords and symbol names"
 msgstr ""
 
-#: gnu/packages/perl.scm:533
+#: gnu/packages/perl.scm:727
 msgid ""
 "@code{B::Keywords} supplies several arrays of exportable\n"
 "keywords: @code{@@Scalars, @@Arrays, @@Hashes, @@Filehandles, @@Symbols,\n"
@@ -14325,11 +16245,11 @@ msgid ""
 "@@ExporterSymbols}."
 msgstr ""
 
-#: gnu/packages/perl.scm:556
+#: gnu/packages/perl.scm:750
 msgid "Benchmarking with statistical confidence"
 msgstr ""
 
-#: gnu/packages/perl.scm:558
+#: gnu/packages/perl.scm:752
 msgid ""
 "The Benchmark::Timer class allows you to time portions of code\n"
 "conveniently, as well as benchmark code by allowing timings of repeated\n"
@@ -14338,11 +16258,11 @@ msgid ""
 "but don't want to go all out and profile your code."
 msgstr ""
 
-#: gnu/packages/perl.scm:582
+#: gnu/packages/perl.scm:776
 msgid "Bit vector library"
 msgstr ""
 
-#: gnu/packages/perl.scm:583
+#: gnu/packages/perl.scm:777
 msgid ""
 "Bit::Vector is an efficient C library which allows you to\n"
 "handle bit vectors, sets (of integers), \"big integer arithmetic\" and boolean\n"
@@ -14352,62 +16272,62 @@ msgid ""
 "library can nevertheless be used stand-alone, without Perl."
 msgstr ""
 
-#: gnu/packages/perl.scm:604
+#: gnu/packages/perl.scm:798
 msgid "Boolean support for Perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:605
+#: gnu/packages/perl.scm:799
 msgid ""
 "This module provides basic Boolean support, by defining two\n"
 "special objects: true and false."
 msgstr ""
 
-#: gnu/packages/perl.scm:623
+#: gnu/packages/perl.scm:817
 msgid "Data files for Business::ISBN"
 msgstr ""
 
-#: gnu/packages/perl.scm:624
+#: gnu/packages/perl.scm:818
 msgid ""
 "This package provides a data pack for @code{Business::ISBN}.\n"
 "These data are generated from the RangeMessage.xml file provided by the ISBN\n"
 "Agency."
 msgstr ""
 
-#: gnu/packages/perl.scm:646
+#: gnu/packages/perl.scm:840
 msgid "Work with International Standard Book Numbers"
 msgstr ""
 
-#: gnu/packages/perl.scm:647
+#: gnu/packages/perl.scm:841
 msgid ""
 "This modules provides tools to deal with International\n"
 "Standard Book Numbers, including ISBN-10 and ISBN-13."
 msgstr ""
 
-#: gnu/packages/perl.scm:665
+#: gnu/packages/perl.scm:859
 msgid "Work with International Standard Serial Numbers"
 msgstr ""
 
-#: gnu/packages/perl.scm:666
+#: gnu/packages/perl.scm:860
 msgid ""
 "This modules provides tools to deal with International\n"
 "Standard Serial Numbers."
 msgstr ""
 
-#: gnu/packages/perl.scm:685
+#: gnu/packages/perl.scm:879
 msgid "Work with International Standard Music Numbers"
 msgstr ""
 
-#: gnu/packages/perl.scm:686
+#: gnu/packages/perl.scm:880
 msgid ""
 "This modules provides tools to deal with International\n"
 "Standard Music Numbers."
 msgstr ""
 
-#: gnu/packages/perl.scm:707
+#: gnu/packages/perl.scm:901
 msgid "Cache interface for Perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:708
+#: gnu/packages/perl.scm:902
 msgid ""
 "The Cache modules are designed to assist a developer in\n"
 "persisting data for a specified period of time.  Often these modules are used\n"
@@ -14418,11 +16338,11 @@ msgid ""
 "easy to use abstraction of the file system or shared memory."
 msgstr ""
 
-#: gnu/packages/perl.scm:730
+#: gnu/packages/perl.scm:924
 msgid "Shared memory interprocess cache via mmap"
 msgstr ""
 
-#: gnu/packages/perl.scm:731
+#: gnu/packages/perl.scm:925
 msgid ""
 "A shared memory cache through an mmap'ed file.  It's core is\n"
 "written in C for performance.  It uses fcntl locking to ensure multiple\n"
@@ -14430,11 +16350,11 @@ msgid ""
 "algorithm to keep the most used entries in the cache."
 msgstr ""
 
-#: gnu/packages/perl.scm:752
+#: gnu/packages/perl.scm:946
 msgid "Capture STDOUT and STDERR from Perl, XS or external programs"
 msgstr ""
 
-#: gnu/packages/perl.scm:754
+#: gnu/packages/perl.scm:948
 msgid ""
 "Capture::Tiny provides a simple, portable way to capture almost anything\n"
 "sent to STDOUT or STDERR, regardless of whether it comes from Perl, from XS\n"
@@ -14442,21 +16362,21 @@ msgid ""
 "is captured while being passed through to the original file handles."
 msgstr ""
 
-#: gnu/packages/perl.scm:773
+#: gnu/packages/perl.scm:967
 msgid "Check compatibility with the installed perl version"
 msgstr ""
 
-#: gnu/packages/perl.scm:775
+#: gnu/packages/perl.scm:969
 msgid ""
 "This module is used by Schmorp's modules during configuration stage\n"
 "to test the installed perl for compatibility with his modules."
 msgstr ""
 
-#: gnu/packages/perl.scm:793
+#: gnu/packages/perl.scm:987
 msgid "Alternative warn and die for modules"
 msgstr ""
 
-#: gnu/packages/perl.scm:794
+#: gnu/packages/perl.scm:988
 msgid ""
 "The @code{Carp} routines are useful in your own modules\n"
 "because they act like @code{die()} or @code{warn()}, but with a message\n"
@@ -14468,42 +16388,42 @@ msgid ""
 "but it is a good educated guess."
 msgstr ""
 
-#: gnu/packages/perl.scm:819
+#: gnu/packages/perl.scm:1013
 msgid "Warns and dies noisily with stack backtraces/"
 msgstr ""
 
-#: gnu/packages/perl.scm:820
+#: gnu/packages/perl.scm:1014
 msgid ""
 "This module is meant as a debugging aid.  It can be used to\n"
 "make a script complain loudly with stack backtraces when @code{warn()}-ing or\n"
 "@code{die()}ing."
 msgstr ""
 
-#: gnu/packages/perl.scm:839
+#: gnu/packages/perl.scm:1033
 msgid "Executable comments for Perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:840
+#: gnu/packages/perl.scm:1034
 msgid ""
 "Carp::Assert is intended for a purpose like the ANSI C\n"
 "library assert.h."
 msgstr ""
 
-#: gnu/packages/perl.scm:861
+#: gnu/packages/perl.scm:1055
 msgid "Convenience wrappers around Carp::Assert"
 msgstr ""
 
-#: gnu/packages/perl.scm:862
+#: gnu/packages/perl.scm:1056
 msgid ""
 "Carp::Assert::More is a set of handy assertion functions for\n"
 "Perl."
 msgstr ""
 
-#: gnu/packages/perl.scm:881
+#: gnu/packages/perl.scm:1075
 msgid "Report errors from a \"clan\" of modules"
 msgstr ""
 
-#: gnu/packages/perl.scm:882
+#: gnu/packages/perl.scm:1076
 msgid ""
 "This module allows errors from a clan (or family) of modules\n"
 "to appear to originate from the caller of the clan.  This is necessary in\n"
@@ -14511,39 +16431,39 @@ msgid ""
 "the Carp.pm module doesn't help."
 msgstr ""
 
-#: gnu/packages/perl.scm:902
+#: gnu/packages/perl.scm:1096
 msgid "Read the CDDB entry for an audio CD in your drive"
 msgstr ""
 
-#: gnu/packages/perl.scm:903
+#: gnu/packages/perl.scm:1097
 msgid "This module can retrieve information from the CDDB."
 msgstr ""
 
-#: gnu/packages/perl.scm:996
+#: gnu/packages/perl.scm:1190
 msgid "Generation of circularly composited renditions"
 msgstr ""
 
-#: gnu/packages/perl.scm:998
+#: gnu/packages/perl.scm:1192
 msgid ""
 "Circos is a program for the generation of publication-quality, circularly\n"
 "composited renditions of genomic data and related annotations."
 msgstr ""
 
-#: gnu/packages/perl.scm:1018
+#: gnu/packages/perl.scm:1212
 msgid "Automated accessor generation"
 msgstr ""
 
-#: gnu/packages/perl.scm:1019
+#: gnu/packages/perl.scm:1213
 msgid ""
 "This module automagically generates accessors/mutators for\n"
 "your class."
 msgstr ""
 
-#: gnu/packages/perl.scm:1041
+#: gnu/packages/perl.scm:1235
 msgid "Faster, but less expandable, chained accessors"
 msgstr ""
 
-#: gnu/packages/perl.scm:1042
+#: gnu/packages/perl.scm:1236
 msgid ""
 "A chained accessor is one that always returns the object\n"
 "when called with parameters (to set), and the value of the field when called\n"
@@ -14551,52 +16471,52 @@ msgid ""
 "the same mk_accessors interface."
 msgstr ""
 
-#: gnu/packages/perl.scm:1068
+#: gnu/packages/perl.scm:1262
 msgid "Build groups of accessors"
 msgstr ""
 
-#: gnu/packages/perl.scm:1069
+#: gnu/packages/perl.scm:1263
 msgid ""
 "This class lets you build groups of accessors that will call\n"
 "different getters and setters."
 msgstr ""
 
-#: gnu/packages/perl.scm:1088
+#: gnu/packages/perl.scm:1282
 msgid "Pragma to use the C3 method resolution order algorithm"
 msgstr ""
 
-#: gnu/packages/perl.scm:1089
+#: gnu/packages/perl.scm:1283
 msgid ""
 "This is pragma to change Perl 5's standard method resolution\n"
 "order from depth-first left-to-right (a.k.a - pre-order) to the more\n"
 "sophisticated C3 method resolution order."
 msgstr ""
 
-#: gnu/packages/perl.scm:1114
+#: gnu/packages/perl.scm:1308
 msgid "Drop-in replacement for NEXT"
 msgstr ""
 
-#: gnu/packages/perl.scm:1115
+#: gnu/packages/perl.scm:1309
 msgid ""
 "This module is intended as a drop-in replacement for NEXT,\n"
 "supporting the same interface, but using Class::C3 to do the hard work."
 msgstr ""
 
-#: gnu/packages/perl.scm:1139
+#: gnu/packages/perl.scm:1333
 msgid "Load mix-ins or components to your C3-based class"
 msgstr ""
 
-#: gnu/packages/perl.scm:1140
+#: gnu/packages/perl.scm:1334
 msgid ""
 "This module will inject base classes to your module using\n"
 "the Class::C3 method resolution order."
 msgstr ""
 
-#: gnu/packages/perl.scm:1158
+#: gnu/packages/perl.scm:1352
 msgid "Inheritable, overridable class data"
 msgstr ""
 
-#: gnu/packages/perl.scm:1159
+#: gnu/packages/perl.scm:1353
 msgid ""
 "Class::Data::Inheritable is for creating accessor/mutators\n"
 "to class data.  That is, if you want to store something about your class as a\n"
@@ -14604,21 +16524,21 @@ msgid ""
 "subclasses and can be overridden."
 msgstr ""
 
-#: gnu/packages/perl.scm:1179
+#: gnu/packages/perl.scm:1373
 msgid "Class for easy date and time manipulation"
 msgstr ""
 
-#: gnu/packages/perl.scm:1180
+#: gnu/packages/perl.scm:1374
 msgid ""
 "This module provides a general-purpose date and datetime\n"
 "type for perl."
 msgstr ""
 
-#: gnu/packages/perl.scm:1197
+#: gnu/packages/perl.scm:1391
 msgid "Base class for error handling"
 msgstr ""
 
-#: gnu/packages/perl.scm:1199
+#: gnu/packages/perl.scm:1393
 msgid ""
 "@code{Class::ErrorHandler} provides an error-handling mechanism that is generic\n"
 "enough to be used as the base class for a variety of OO classes.  Subclasses inherit\n"
@@ -14626,60 +16546,60 @@ msgid ""
 "to the calling program."
 msgstr ""
 
-#: gnu/packages/perl.scm:1220
+#: gnu/packages/perl.scm:1414
 msgid "Utility methods for factory classes"
 msgstr ""
 
-#: gnu/packages/perl.scm:1221
+#: gnu/packages/perl.scm:1415
 msgid "This module exports methods useful for factory classes."
 msgstr ""
 
-#: gnu/packages/perl.scm:1238
+#: gnu/packages/perl.scm:1432
 msgid "Get information about a class and its structure"
 msgstr ""
 
-#: gnu/packages/perl.scm:1239
+#: gnu/packages/perl.scm:1433
 msgid ""
 "Class::Inspector allows you to get information about a\n"
 "loaded class."
 msgstr ""
 
-#: gnu/packages/perl.scm:1267
+#: gnu/packages/perl.scm:1461
 msgid "Working (require \"Class::Name\") and more"
 msgstr ""
 
-#: gnu/packages/perl.scm:1268
+#: gnu/packages/perl.scm:1462
 msgid ""
 "\"require EXPR\" only accepts Class/Name.pm style module\n"
 "names, not Class::Name.  For that, this module provides \"load_class\n"
 "'Class::Name'\"."
 msgstr ""
 
-#: gnu/packages/perl.scm:1292
+#: gnu/packages/perl.scm:1486
 msgid "XS implementation of parts of Class::Load"
 msgstr ""
 
-#: gnu/packages/perl.scm:1293
+#: gnu/packages/perl.scm:1487
 msgid ""
 "This module provides an XS implementation for portions of\n"
 "Class::Load."
 msgstr ""
 
-#: gnu/packages/perl.scm:1312
+#: gnu/packages/perl.scm:1506
 msgid "Create generic methods for OO Perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:1313
+#: gnu/packages/perl.scm:1507
 msgid ""
 "This module solves the problem of having to continually\n"
 "write accessor methods for your objects that perform standard tasks."
 msgstr ""
 
-#: gnu/packages/perl.scm:1333
+#: gnu/packages/perl.scm:1527
 msgid "Moose-like method modifiers"
 msgstr ""
 
-#: gnu/packages/perl.scm:1334
+#: gnu/packages/perl.scm:1528
 msgid ""
 "Class::Method::Modifiers provides three modifiers:\n"
 "@code{before}, @code{around}, and @code{after}.  @code{before} and @code{after}\n"
@@ -14688,11 +16608,11 @@ msgid ""
 "with a hook to easily call that original method."
 msgstr ""
 
-#: gnu/packages/perl.scm:1362
+#: gnu/packages/perl.scm:1556
 msgid "Dynamic class mixing"
 msgstr ""
 
-#: gnu/packages/perl.scm:1363
+#: gnu/packages/perl.scm:1557
 msgid ""
 "The @code{mix_class} function provided by this\n"
 "module dynamically generates anonymous classes with specified\n"
@@ -14700,42 +16620,42 @@ msgid ""
 "a mixin in order to become instantiable."
 msgstr ""
 
-#: gnu/packages/perl.scm:1383
+#: gnu/packages/perl.scm:1577
 msgid "Implementation of a singleton class for Perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:1384
+#: gnu/packages/perl.scm:1578
 msgid ""
 "This module implements a Singleton class from which other\n"
 "classes can be derived.  By itself, the Class::Singleton module does very\n"
 "little other than manage the instantiation of a single object."
 msgstr ""
 
-#: gnu/packages/perl.scm:1403
+#: gnu/packages/perl.scm:1597
 msgid "Minimalist class construction"
 msgstr ""
 
-#: gnu/packages/perl.scm:1404
+#: gnu/packages/perl.scm:1598
 msgid ""
 "This module offers a minimalist class construction kit.  It\n"
 "uses no non-core modules for any recent Perl."
 msgstr ""
 
-#: gnu/packages/perl.scm:1425
+#: gnu/packages/perl.scm:1619
 msgid "Unload a class"
 msgstr ""
 
-#: gnu/packages/perl.scm:1426
+#: gnu/packages/perl.scm:1620
 msgid ""
 "Class:Unload unloads a given class by clearing out its\n"
 "symbol table and removing it from %INC."
 msgstr ""
 
-#: gnu/packages/perl.scm:1444
+#: gnu/packages/perl.scm:1638
 msgid "Generate fast XS accessors without runtime compilation"
 msgstr ""
 
-#: gnu/packages/perl.scm:1445
+#: gnu/packages/perl.scm:1639
 msgid ""
 "Class::XSAccessor implements fast read, write, and\n"
 "read/write accessors in XS.  Additionally, it can provide predicates such as\n"
@@ -14745,29 +16665,29 @@ msgid ""
 "arrays for their internal representation."
 msgstr ""
 
-#: gnu/packages/perl.scm:1465 gnu/packages/perl.scm:1513
+#: gnu/packages/perl.scm:1659 gnu/packages/perl.scm:1707
 msgid "Recursively copy Perl datatypes"
 msgstr ""
 
-#: gnu/packages/perl.scm:1467
+#: gnu/packages/perl.scm:1661
 msgid ""
 "This module provides a clone() method which makes recursive copies of\n"
 "nested hash, array, scalar and reference types, including tied variables and\n"
 "objects."
 msgstr ""
 
-#: gnu/packages/perl.scm:1493
+#: gnu/packages/perl.scm:1687
 msgid "Choose appropriate Perl @code{clone} utility"
 msgstr ""
 
-#: gnu/packages/perl.scm:1494
+#: gnu/packages/perl.scm:1688
 msgid ""
 "This @code{Clone::Choose} module checks several different\n"
 "modules which provide a @code{clone()} function and selects an appropriate\n"
 "one."
 msgstr ""
 
-#: gnu/packages/perl.scm:1514
+#: gnu/packages/perl.scm:1708
 msgid ""
 "This module provides a general-purpose @code{clone} function\n"
 "to make deep copies of Perl data structures.  It calls itself recursively to\n"
@@ -14775,21 +16695,21 @@ msgid ""
 "and objects."
 msgstr ""
 
-#: gnu/packages/perl.scm:1534
+#: gnu/packages/perl.scm:1728
 msgid "Sane defaults for Perl programs"
 msgstr ""
 
-#: gnu/packages/perl.scm:1535
+#: gnu/packages/perl.scm:1729
 msgid ""
 "This module implements some sane defaults for Perl programs,\n"
 "as defined by two typical specimens of Perl coders."
 msgstr ""
 
-#: gnu/packages/perl.scm:1559
+#: gnu/packages/perl.scm:1753
 msgid "Perl extension for libconfig"
 msgstr ""
 
-#: gnu/packages/perl.scm:1561
+#: gnu/packages/perl.scm:1755
 msgid ""
 "Conf::Libconfig is a Perl interface to the libconfig configuration file\n"
 "library.  It support scalar, array, and hash data structures just like its C/C++\n"
@@ -14798,54 +16718,54 @@ msgid ""
 "languages."
 msgstr ""
 
-#: gnu/packages/perl.scm:1581
+#: gnu/packages/perl.scm:1775
 msgid "Grammar-based config parser"
 msgstr ""
 
-#: gnu/packages/perl.scm:1583
+#: gnu/packages/perl.scm:1777
 msgid ""
 "Config::Grammar is a module to parse configuration files.  The\n"
 "configuration may consist of multiple-level sections with assignments and\n"
 "tabular data."
 msgstr ""
 
-#: gnu/packages/perl.scm:1604
+#: gnu/packages/perl.scm:1798
 msgid "Load configuration from different file formats"
 msgstr ""
 
-#: gnu/packages/perl.scm:1605
+#: gnu/packages/perl.scm:1799
 msgid ""
 "Config::Any provides a facility for Perl applications and\n"
 "libraries to load configuration data from multiple different file formats.  It\n"
 "supports XML, YAML, JSON, Apache-style configuration, and Perl code."
 msgstr ""
 
-#: gnu/packages/perl.scm:1626
+#: gnu/packages/perl.scm:1820
 msgid "Package for configuration files outside your Perl script"
 msgstr ""
 
-#: gnu/packages/perl.scm:1627
+#: gnu/packages/perl.scm:1821
 msgid ""
 "This package provides a way to have readable configuration\n"
 "files outside your Perl script.  Configurations can be imported, sections\n"
 "can be grouped, and settings can be accessed from a tied hash."
 msgstr ""
 
-#: gnu/packages/perl.scm:1648
+#: gnu/packages/perl.scm:1842
 msgid "Module to implement some AutoConf macros in Perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:1649
+#: gnu/packages/perl.scm:1843
 msgid ""
 "Config::AutoConf is intended to provide the same\n"
 "opportunities to Perl developers as GNU Autoconf does for Shell developers."
 msgstr ""
 
-#: gnu/packages/perl.scm:1666
+#: gnu/packages/perl.scm:1860
 msgid "Generic Config Module"
 msgstr ""
 
-#: gnu/packages/perl.scm:1667
+#: gnu/packages/perl.scm:1861
 msgid ""
 "This module opens a config file and parses its contents for\n"
 "you.  The format of config files supported by Config::General is inspired by\n"
@@ -14856,94 +16776,119 @@ msgid ""
 "options."
 msgstr ""
 
-#: gnu/packages/perl.scm:1697
+#: gnu/packages/perl.scm:1891
 msgid "Parse Git style configuration files"
 msgstr ""
 
-#: gnu/packages/perl.scm:1699
+#: gnu/packages/perl.scm:1893
 msgid ""
 "This module handles parsing, modifying and creating configuration files\n"
 "of the style used by the Git version control system."
 msgstr ""
 
-#: gnu/packages/perl.scm:1721
+#: gnu/packages/perl.scm:1915
 msgid "Simple .ini-file format reader and writer"
 msgstr ""
 
-#: gnu/packages/perl.scm:1722
+#: gnu/packages/perl.scm:1916
 msgid ""
 "@code{Config::INI} is a module that facilates the reading\n"
 "and writing of @code{.ini}-style configuration files."
 msgstr ""
 
-#: gnu/packages/perl.scm:1743
+#: gnu/packages/perl.scm:1937
 msgid "Preserve context during subroutine call"
 msgstr ""
 
-#: gnu/packages/perl.scm:1744
+#: gnu/packages/perl.scm:1938
 msgid ""
 "This module runs code after a subroutine call, preserving\n"
 "the context the subroutine would have seen if it were the last statement in\n"
 "the caller."
 msgstr ""
 
-#: gnu/packages/perl.scm:1769
+#: gnu/packages/perl.scm:1963
 msgid "Extract data from Macintosh BinHex files"
 msgstr ""
 
-#: gnu/packages/perl.scm:1771
+#: gnu/packages/perl.scm:1965
 msgid ""
 "BinHex is a format for transporting files safely through electronic\n"
-"mail, as short-lined, 7-bit, semi-compressed data streams.  Ths module\n"
+"mail, as short-lined, 7-bit, semi-compressed data streams.  This module\n"
 "provides a means of converting those data streams back into into binary\n"
 "data."
 msgstr ""
 
-#: gnu/packages/perl.scm:1792
+#: gnu/packages/perl.scm:1986
 msgid "Read and write @file{Changes} files"
 msgstr ""
 
-#: gnu/packages/perl.scm:1794
+#: gnu/packages/perl.scm:1988
 msgid ""
 "@code{CPAN::Changes} helps users programmatically read and write\n"
 "@file{Changes} files that conform to a common specification."
 msgstr ""
 
-#: gnu/packages/perl.scm:1814
+#: gnu/packages/perl.scm:2008
 msgid "Extract the name and version from a distribution filename"
 msgstr ""
 
-#: gnu/packages/perl.scm:1816
+#: gnu/packages/perl.scm:2010
 msgid ""
 "@code{CPAN::DistnameInfo} uses heuristics to extract the distribution\n"
 "name and version from filenames."
 msgstr ""
 
-#: gnu/packages/perl.scm:1836
+#: gnu/packages/perl.scm:2030
 msgid "Verify requirements in a CPAN::Meta object"
 msgstr ""
 
-#: gnu/packages/perl.scm:1837
+#: gnu/packages/perl.scm:2031
 msgid ""
 "This module verifies if requirements described in a\n"
 "CPAN::Meta object are present."
 msgstr ""
 
-#: gnu/packages/perl.scm:1856
+#: gnu/packages/perl.scm:2050
 msgid "JSON::XS for Cpanel"
 msgstr ""
 
-#: gnu/packages/perl.scm:1857 gnu/packages/perl.scm:5196
+#: gnu/packages/perl.scm:2051 gnu/packages/perl.scm:5600
 msgid ""
 "This module converts Perl data structures to JSON and vice\n"
 "versa."
 msgstr ""
 
-#: gnu/packages/perl.scm:1882
+#: gnu/packages/perl.scm:2072
+msgid "Encrypt Data with Cipher Block Chaining Mode"
+msgstr ""
+
+#: gnu/packages/perl.scm:2073
+msgid ""
+"@code{Crypt::CBC} is a Perl-only implementation of\n"
+"the cryptographic Cipher Block Chaining (CBC) mode.  In combination\n"
+"with a block cipher such as @code{Crypt::Rijndael} you can encrypt and\n"
+"decrypt messages of arbitrarily long length.  The encrypted messages\n"
+"are compatible with the encryption format used by SSLeay."
+msgstr ""
+
+#: gnu/packages/perl.scm:2097
+msgid "DES encryption module"
+msgstr ""
+
+#: gnu/packages/perl.scm:2098
+msgid ""
+"@code{Crypt::DES} is an XS-based implementation of\n"
+"the DES cryptography algorithm.  The module implements the\n"
+"@code{Crypt::CBC} interface which has blocksize, keysize, encrypt and\n"
+"decrypt functions."
+msgstr ""
+
+#: gnu/packages/perl.scm:2125
 msgid "The Eksblowfish block cipher"
 msgstr ""
 
-#: gnu/packages/perl.scm:1883
+#: gnu/packages/perl.scm:2126
 msgid ""
 "Eksblowfish is a variant of the Blowfish cipher,\n"
 "modified to make the key setup very expensive.  This doesn't make it\n"
@@ -14957,11 +16902,35 @@ msgid ""
 "password hashing algorithm based on Eksblowfish."
 msgstr ""
 
-#: gnu/packages/perl.scm:1909
+#: gnu/packages/perl.scm:2158
+msgid "Emulate the MySQL PASSWORD() function"
+msgstr ""
+
+#: gnu/packages/perl.scm:2159
+msgid ""
+"@code{Crypt::MySQL} emulates the MySQL PASSWORD()\n"
+"function.  The module does not depend on an interface to the MySQL\n"
+"database server.  This enables the comparison of encrypted passwords\n"
+"without the need for a real MySQL environment."
+msgstr ""
+
+#: gnu/packages/perl.scm:2182
+msgid "Interoperable MD5-based crypt() functions"
+msgstr ""
+
+#: gnu/packages/perl.scm:2183
+msgid ""
+"@code{Crypt::PasswdMD5} provides various\n"
+"crypt()-compatible interfaces to the MD5-based crypt() function found\n"
+"in various *nixes.  It is based on the implementation found on FreeBSD\n"
+"2.2.[56]-RELEASE."
+msgstr ""
+
+#: gnu/packages/perl.scm:2203
 msgid "Random password generator"
 msgstr ""
 
-#: gnu/packages/perl.scm:1910
+#: gnu/packages/perl.scm:2204
 msgid ""
 "Crypt::RandPasswd provides three functions that can be used\n"
 "to generate random passwords, constructed from words, letters, or characters.\n"
@@ -14972,11 +16941,11 @@ msgid ""
 "Password Generator\"."
 msgstr ""
 
-#: gnu/packages/perl.scm:1934
+#: gnu/packages/perl.scm:2227
 msgid "Crypt::CBC compliant Rijndael encryption module"
 msgstr ""
 
-#: gnu/packages/perl.scm:1935
+#: gnu/packages/perl.scm:2228
 msgid ""
 "This module implements the Rijndael cipher which has\n"
 "been selected as the Advanced Encryption Standard.  The keysize for\n"
@@ -14992,40 +16961,52 @@ msgid ""
 "@end itemize"
 msgstr ""
 
-#: gnu/packages/perl.scm:1965
+#: gnu/packages/perl.scm:2258
 msgid "Perl implementation of the RC4 encryption algorithm"
 msgstr ""
 
-#: gnu/packages/perl.scm:1966
+#: gnu/packages/perl.scm:2259
 msgid "A pure Perl implementation of the RC4 algorithm."
 msgstr ""
 
-#: gnu/packages/perl.scm:1985
+#: gnu/packages/perl.scm:2277
+msgid "XS interface for a portable traditional crypt function"
+msgstr ""
+
+#: gnu/packages/perl.scm:2278
+msgid ""
+"@code{Crypt::UnixCrypt_XS} implements the DES-based\n"
+"Unix @code{crypt} function.  For those who need to construct\n"
+"non-standard variants of @code{crypt}, the various building blocks\n"
+"used in @code{crypt} are also supplied separately."
+msgstr ""
+
+#: gnu/packages/perl.scm:2301
 msgid "Temporarily change working directory"
 msgstr ""
 
-#: gnu/packages/perl.scm:1987
+#: gnu/packages/perl.scm:2303
 msgid ""
 "@code{Cwd::Guard} changes the current directory using a limited scope.\n"
 "It returns to the previous working directory when the object is destroyed."
 msgstr ""
 
-#: gnu/packages/perl.scm:2024
+#: gnu/packages/perl.scm:2340
 msgid "Library for genomic analysis"
 msgstr ""
 
-#: gnu/packages/perl.scm:2025
+#: gnu/packages/perl.scm:2341
 msgid ""
 "Chaolin Zhang's Perl Library (czplib) contains assorted\n"
 "functions and data structures for processing and analysing genomic and\n"
 "bioinformatics data."
 msgstr ""
 
-#: gnu/packages/perl.scm:2054 gnu/packages/perl.scm:2333
+#: gnu/packages/perl.scm:2370 gnu/packages/perl.scm:2649
 msgid "Base classes wrapping fundamental Perl data types"
 msgstr ""
 
-#: gnu/packages/perl.scm:2055
+#: gnu/packages/perl.scm:2371
 msgid ""
 "Collection of classes that wrap fundamental data types that\n"
 "exist in Perl.  These classes and methods as they exist today are an attempt\n"
@@ -15034,21 +17015,21 @@ msgid ""
 "input."
 msgstr ""
 
-#: gnu/packages/perl.scm:2078
+#: gnu/packages/perl.scm:2394
 msgid "Compare Perl data structures"
 msgstr ""
 
-#: gnu/packages/perl.scm:2079
+#: gnu/packages/perl.scm:2395
 msgid ""
 "This module compares arbitrary data structures to see if\n"
 "they are copies of each other."
 msgstr ""
 
-#: gnu/packages/perl.scm:2107
+#: gnu/packages/perl.scm:2423
 msgid "Entropy (randomness) management"
 msgstr ""
 
-#: gnu/packages/perl.scm:2108
+#: gnu/packages/perl.scm:2424
 msgid ""
 "@code{Data::Entropy} provides modules relating to\n"
 "the generation and use of entropy.  The Data::Entropy::Source class\n"
@@ -15063,11 +17044,11 @@ msgid ""
 "functions to shuffle arrays."
 msgstr ""
 
-#: gnu/packages/perl.scm:2140
+#: gnu/packages/perl.scm:2456
 msgid "Details of the native integer data type"
 msgstr ""
 
-#: gnu/packages/perl.scm:2141
+#: gnu/packages/perl.scm:2457
 msgid ""
 "This module is about the native integer numerical\n"
 "data type.  A native integer is one of the types of datum that can\n"
@@ -15076,33 +17057,33 @@ msgid ""
 "unsigned representations are handled."
 msgstr ""
 
-#: gnu/packages/perl.scm:2162
+#: gnu/packages/perl.scm:2478
 msgid "Perl extension for generating unique identifiers"
 msgstr ""
 
-#: gnu/packages/perl.scm:2163
+#: gnu/packages/perl.scm:2479
 msgid ""
 "@code{Data::Uniqid} provides three simple routines for\n"
 "generating unique ids.  These ids are coded with a Base62 system to make them\n"
 "short and handy (e.g. to use it as part of a URL)."
 msgstr ""
 
-#: gnu/packages/perl.scm:2182
+#: gnu/packages/perl.scm:2498
 msgid "Pretty printing of data structures"
 msgstr ""
 
-#: gnu/packages/perl.scm:2183
+#: gnu/packages/perl.scm:2499
 msgid ""
 "This module provide functions that takes a list of values as\n"
 "their argument and produces a string as its result.  The string contains Perl\n"
 "code that, when \"eval\"ed, produces a deep copy of the original arguments."
 msgstr ""
 
-#: gnu/packages/perl.scm:2202
+#: gnu/packages/perl.scm:2518
 msgid "Convert data structures to strings"
 msgstr ""
 
-#: gnu/packages/perl.scm:2203
+#: gnu/packages/perl.scm:2519
 msgid ""
 "Given a list of scalars or reference variables,\n"
 "@code{Data::Dumper} writes out their contents in Perl syntax.  The references\n"
@@ -15110,21 +17091,21 @@ msgid ""
 "statement.  It handles self-referential structures correctly."
 msgstr ""
 
-#: gnu/packages/perl.scm:2223
+#: gnu/packages/perl.scm:2539
 msgid "Concise data dumper"
 msgstr ""
 
-#: gnu/packages/perl.scm:2224
+#: gnu/packages/perl.scm:2540
 msgid ""
 "Data::Dumper::Concise provides a dumper with Less\n"
 "indentation and newlines plus sub deparsing."
 msgstr ""
 
-#: gnu/packages/perl.scm:2247
+#: gnu/packages/perl.scm:2563
 msgid "Details of the floating point data type"
 msgstr ""
 
-#: gnu/packages/perl.scm:2248
+#: gnu/packages/perl.scm:2564
 msgid ""
 "@code{Data::Float} is about the native floating\n"
 "point numerical data type.  A floating point number is one of the\n"
@@ -15134,19 +17115,19 @@ msgid ""
 "point values at a low level."
 msgstr ""
 
-#: gnu/packages/perl.scm:2274
+#: gnu/packages/perl.scm:2590
 msgid "Parse and validate simple name/value option pairs"
 msgstr ""
 
-#: gnu/packages/perl.scm:2276
+#: gnu/packages/perl.scm:2592
 msgid "Data::OptList provides a simple syntax for name/value option pairs."
 msgstr ""
 
-#: gnu/packages/perl.scm:2297
+#: gnu/packages/perl.scm:2613
 msgid "Help when paging through sets of results"
 msgstr ""
 
-#: gnu/packages/perl.scm:2298
+#: gnu/packages/perl.scm:2614
 msgid ""
 "When searching through large amounts of data, it is often\n"
 "the case that a result set is returned that is larger than we want to display\n"
@@ -15154,7 +17135,7 @@ msgid ""
 "The maths behind this is unfortunately fiddly, hence this module."
 msgstr ""
 
-#: gnu/packages/perl.scm:2335
+#: gnu/packages/perl.scm:2651
 msgid ""
 "@code{Data::Perl} is a container class for the following classes:\n"
 "@itemize\n"
@@ -15168,21 +17149,21 @@ msgid ""
 "@end itemize"
 msgstr ""
 
-#: gnu/packages/perl.scm:2366
+#: gnu/packages/perl.scm:2682
 msgid "Colored pretty-print of Perl data structures and objects"
 msgstr ""
 
-#: gnu/packages/perl.scm:2367
+#: gnu/packages/perl.scm:2683
 msgid ""
 "Display Perl variables and objects on screen, properly\n"
 "formatted (to be inspected by a human)."
 msgstr ""
 
-#: gnu/packages/perl.scm:2390
+#: gnu/packages/perl.scm:2706
 msgid "Conditionally split data into records"
 msgstr ""
 
-#: gnu/packages/perl.scm:2391
+#: gnu/packages/perl.scm:2707
 msgid ""
 "This Perl module allows you to split data into records by\n"
 "not only specifying what you wish to split the data on, but also by specifying\n"
@@ -15191,21 +17172,31 @@ msgid ""
 "like split on newlines unless newlines are embedded in quotes."
 msgstr ""
 
-#: gnu/packages/perl.scm:2419
+#: gnu/packages/perl.scm:2735
 msgid "Read multiple hunks of data out of your DATA section"
 msgstr ""
 
-#: gnu/packages/perl.scm:2420
+#: gnu/packages/perl.scm:2736
 msgid ""
 "This package provides a Perl library to read multiple hunks\n"
 "of data out of your DATA section."
 msgstr ""
 
-#: gnu/packages/perl.scm:2440
+#: gnu/packages/perl.scm:2755
+msgid "Read data from __DATA__"
+msgstr ""
+
+#: gnu/packages/perl.scm:2757
+msgid ""
+"Data::Section::Simple is a simple module to extract data from __DATA__\n"
+"section of the file."
+msgstr ""
+
+#: gnu/packages/perl.scm:2777
 msgid "Structured tags datastructures"
 msgstr ""
 
-#: gnu/packages/perl.scm:2442
+#: gnu/packages/perl.scm:2779
 msgid ""
 "This module is for manipulating data as hierarchical tag/value\n"
 "pairs (Structured TAGs or Simple Tree AGgregates).  These datastructures can\n"
@@ -15213,11 +17204,11 @@ msgid ""
 "Perl."
 msgstr ""
 
-#: gnu/packages/perl.scm:2469
+#: gnu/packages/perl.scm:2806
 msgid "N at a time iteration API"
 msgstr ""
 
-#: gnu/packages/perl.scm:2470
+#: gnu/packages/perl.scm:2807
 msgid ""
 "This module tries to find middle ground between one at a\n"
 "time and all at once processing of data sets.  The purpose of this module is\n"
@@ -15226,21 +17217,21 @@ msgid ""
 "necessary later on."
 msgstr ""
 
-#: gnu/packages/perl.scm:2494
+#: gnu/packages/perl.scm:2831
 msgid "Dynamic generation of nested combinations of variants"
 msgstr ""
 
-#: gnu/packages/perl.scm:2495
+#: gnu/packages/perl.scm:2832
 msgid ""
 "Data::Tumbler - Dynamic generation of nested combinations of\n"
 "variants."
 msgstr ""
 
-#: gnu/packages/perl.scm:2521
+#: gnu/packages/perl.scm:2858
 msgid "Visitor style traversal of Perl data structures"
 msgstr ""
 
-#: gnu/packages/perl.scm:2522
+#: gnu/packages/perl.scm:2859
 msgid ""
 "This module is a simple visitor implementation for Perl\n"
 "values.  It has a main dispatcher method, visit, which takes a single perl\n"
@@ -15250,11 +17241,11 @@ msgid ""
 "structures, and all ref types (hashes, arrays, scalars, code, globs)."
 msgstr ""
 
-#: gnu/packages/perl.scm:2547
+#: gnu/packages/perl.scm:2884
 msgid "Gregorian calendar date calculations"
 msgstr ""
 
-#: gnu/packages/perl.scm:2548
+#: gnu/packages/perl.scm:2885
 msgid ""
 "This package consists of a Perl module for date calculations\n"
 "based on the Gregorian calendar, thereby complying with all relevant norms and\n"
@@ -15262,32 +17253,32 @@ msgid ""
 "applicable)."
 msgstr ""
 
-#: gnu/packages/perl.scm:2572
+#: gnu/packages/perl.scm:2909
 msgid "XS wrapper for Date::Calc"
 msgstr ""
 
-#: gnu/packages/perl.scm:2573
+#: gnu/packages/perl.scm:2910
 msgid ""
 "Date::Calc::XS is an XS wrapper and C library plug-in for\n"
 "Date::Calc."
 msgstr ""
 
-#: gnu/packages/perl.scm:2595
+#: gnu/packages/perl.scm:2932
 msgid "Date manipulation routines"
 msgstr ""
 
-#: gnu/packages/perl.scm:2596
+#: gnu/packages/perl.scm:2933
 msgid ""
 "Date::Manip is a series of modules for common date/time\n"
 "operations, such as comparing two times, determining a date a given amount of\n"
 "time from another, or parsing international times."
 msgstr ""
 
-#: gnu/packages/perl.scm:2615
+#: gnu/packages/perl.scm:2952
 msgid "Simple date handling"
 msgstr ""
 
-#: gnu/packages/perl.scm:2616
+#: gnu/packages/perl.scm:2953
 msgid ""
 "Dates are complex enough without times and timezones.  This\n"
 "module may be used to create simple date objects.  It handles validation,\n"
@@ -15295,22 +17286,22 @@ msgid ""
 "hours, minutes, seconds, and time zones."
 msgstr ""
 
-#: gnu/packages/perl.scm:2647
+#: gnu/packages/perl.scm:2984
 msgid "Date and time object for Perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:2648
+#: gnu/packages/perl.scm:2985
 msgid ""
 "DateTime is a class for the representation of date/time\n"
 "combinations.  It represents the Gregorian calendar, extended backwards in\n"
 "time before its creation (in 1582)."
 msgstr ""
 
-#: gnu/packages/perl.scm:2669
+#: gnu/packages/perl.scm:3006
 msgid "Dates in the Julian calendar"
 msgstr ""
 
-#: gnu/packages/perl.scm:2670
+#: gnu/packages/perl.scm:3007
 msgid ""
 "This package is a companion module to @code{DateTime.pm}.\n"
 "It implements the Julian calendar.  It supports everything that\n"
@@ -15318,11 +17309,11 @@ msgid ""
 "precise."
 msgstr ""
 
-#: gnu/packages/perl.scm:2696
+#: gnu/packages/perl.scm:3033
 msgid "DateTime set objects"
 msgstr ""
 
-#: gnu/packages/perl.scm:2697
+#: gnu/packages/perl.scm:3034
 msgid ""
 "The DateTime::Set module provides a date/time sets\n"
 "implementation.  It allows, for example, the generation of groups of dates,\n"
@@ -15330,21 +17321,21 @@ msgid ""
 "within a time range."
 msgstr ""
 
-#: gnu/packages/perl.scm:2720
+#: gnu/packages/perl.scm:3057
 msgid "DateTime rfc2445 recurrences"
 msgstr ""
 
-#: gnu/packages/perl.scm:2721
+#: gnu/packages/perl.scm:3058
 msgid ""
 "This module provides convenience methods that let you easily\n"
 "create DateTime::Set objects for RFC 2445 style recurrences."
 msgstr ""
 
-#: gnu/packages/perl.scm:2742
+#: gnu/packages/perl.scm:3079
 msgid "DateTime::Set extension for basic recurrences"
 msgstr ""
 
-#: gnu/packages/perl.scm:2743
+#: gnu/packages/perl.scm:3080
 msgid ""
 "This module provides convenience methods that let you easily\n"
 "create DateTime::Set objects for various recurrences, such as \"once a month\"\n"
@@ -15352,11 +17343,11 @@ msgid ""
 "\"every Monday, Wednesday and Thursday at 10:00 AM and 2:00 PM\"."
 msgstr ""
 
-#: gnu/packages/perl.scm:2768
+#: gnu/packages/perl.scm:3105
 msgid "Create DateTime parser classes and objects"
 msgstr ""
 
-#: gnu/packages/perl.scm:2769
+#: gnu/packages/perl.scm:3106
 msgid ""
 "DateTime::Format::Builder creates DateTime parsers.  Many\n"
 "string formats of dates and times are simple and just require a basic regular\n"
@@ -15364,43 +17355,53 @@ msgid ""
 "to do this without writing reams of structural code."
 msgstr ""
 
-#: gnu/packages/perl.scm:2798
+#: gnu/packages/perl.scm:3135
 msgid "Parse date and time strings"
 msgstr ""
 
-#: gnu/packages/perl.scm:2799
+#: gnu/packages/perl.scm:3136
 msgid ""
 "DateTime::Format::Flexible attempts to take any string you\n"
 "give it and parse it into a DateTime object."
 msgstr ""
 
-#: gnu/packages/perl.scm:2825
+#: gnu/packages/perl.scm:3162
 msgid "Parse and format iCal datetime and duration strings"
 msgstr ""
 
-#: gnu/packages/perl.scm:2826
+#: gnu/packages/perl.scm:3163
 msgid ""
 "This module understands the ICal date/time and duration\n"
 "formats, as defined in RFC 2445.  It can be used to parse these formats in\n"
 "order to create the appropriate objects."
 msgstr ""
 
-#: gnu/packages/perl.scm:2857
+#: gnu/packages/perl.scm:3191
+msgid "Parse ISO8601 date and time formats"
+msgstr ""
+
+#: gnu/packages/perl.scm:3192
+msgid ""
+"@code{DateTime::Format::ISO8601} is a DateTime\n"
+"extension that parses almost all ISO8601 date and time formats."
+msgstr ""
+
+#: gnu/packages/perl.scm:3222
 msgid "Machine-readable date/time with natural parsing"
 msgstr ""
 
-#: gnu/packages/perl.scm:2858
+#: gnu/packages/perl.scm:3223
 msgid ""
 "DateTime::Format::Natural takes a string with a human\n"
 "readable date/time and creates a machine readable one by applying natural\n"
 "parsing logic."
 msgstr ""
 
-#: gnu/packages/perl.scm:2884
+#: gnu/packages/perl.scm:3249
 msgid "Parse and format strp and strf time patterns"
 msgstr ""
 
-#: gnu/packages/perl.scm:2885
+#: gnu/packages/perl.scm:3250
 msgid ""
 "This module implements most of `strptime(3)`, the POSIX\n"
 "function that is the reverse of `strftime(3)`, for `DateTime`.  While\n"
@@ -15408,21 +17409,21 @@ msgid ""
 "takes a string and a pattern and returns the `DateTime` object associated."
 msgstr ""
 
-#: gnu/packages/perl.scm:2918
+#: gnu/packages/perl.scm:3283
 msgid "Localization support for DateTime.pm"
 msgstr ""
 
-#: gnu/packages/perl.scm:2919
+#: gnu/packages/perl.scm:3284
 msgid ""
 "The DateTime::Locale modules provide localization data for\n"
 "the DateTime.pm class."
 msgstr ""
 
-#: gnu/packages/perl.scm:2960
+#: gnu/packages/perl.scm:3325
 msgid "Time zone object for Perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:2961
+#: gnu/packages/perl.scm:3326
 msgid ""
 "This class is the base class for all time zone objects.  A\n"
 "time zone is represented internally as a set of observances, each of which\n"
@@ -15432,32 +17433,32 @@ msgid ""
 "DateTime::TimeZone methods."
 msgstr ""
 
-#: gnu/packages/perl.scm:2991
+#: gnu/packages/perl.scm:3356
 msgid "Parse date/time strings"
 msgstr ""
 
-#: gnu/packages/perl.scm:2992
+#: gnu/packages/perl.scm:3357
 msgid ""
 "DateTimeX::Easy uses a variety of DateTime::Format packages\n"
 "to create DateTime objects, with some custom tweaks to smooth out the rough\n"
 "edges (mainly concerning timezone detection and selection)."
 msgstr ""
 
-#: gnu/packages/perl.scm:3013
+#: gnu/packages/perl.scm:3378
 msgid "Convert between DateTime and RFC2822/822 formats"
 msgstr ""
 
-#: gnu/packages/perl.scm:3014
+#: gnu/packages/perl.scm:3379
 msgid ""
 "RFCs 2822 and 822 specify date formats to be used by email.\n"
 "This module parses and emits such dates."
 msgstr ""
 
-#: gnu/packages/perl.scm:3036
+#: gnu/packages/perl.scm:3401
 msgid "Parse and format W3CDTF datetime strings"
 msgstr ""
 
-#: gnu/packages/perl.scm:3038
+#: gnu/packages/perl.scm:3403
 msgid ""
 "This module understands the W3CDTF date/time format, an ISO 8601 profile,\n"
 "defined at https://www.w3.org/TR/NOTE-datetime.  This format is the native date\n"
@@ -15465,11 +17466,11 @@ msgid ""
 "the appropriate objects."
 msgstr ""
 
-#: gnu/packages/perl.scm:3066
+#: gnu/packages/perl.scm:3431
 msgid "Custom op checking attached to subroutines"
 msgstr ""
 
-#: gnu/packages/perl.scm:3067
+#: gnu/packages/perl.scm:3432
 msgid ""
 "This module makes some new features of the Perl\n"
 "5.14.0 C API available to XS modules running on older versions of\n"
@@ -15481,29 +17482,29 @@ msgid ""
 "functions available."
 msgstr ""
 
-#: gnu/packages/perl.scm:3093
+#: gnu/packages/perl.scm:3458
 msgid "Meatier version of caller"
 msgstr ""
 
-#: gnu/packages/perl.scm:3094
+#: gnu/packages/perl.scm:3459
 msgid "Devel::Caller provides meatier version of caller."
 msgstr ""
 
-#: gnu/packages/perl.scm:3112
+#: gnu/packages/perl.scm:3477
 msgid "Check that a command is available"
 msgstr ""
 
-#: gnu/packages/perl.scm:3113
+#: gnu/packages/perl.scm:3478
 msgid ""
 "Devel::CheckBin is a perl module that checks whether a\n"
 "particular command is available."
 msgstr ""
 
-#: gnu/packages/perl.scm:3133
+#: gnu/packages/perl.scm:3498
 msgid "Check that a library is available"
 msgstr ""
 
-#: gnu/packages/perl.scm:3135
+#: gnu/packages/perl.scm:3500
 msgid ""
 "@code{Devel::CheckLib} is a Perl module that checks whether a particular\n"
 "C library and its headers are available.  You can also check for the presence of\n"
@@ -15511,95 +17512,95 @@ msgid ""
 "particular results."
 msgstr ""
 
-#: gnu/packages/perl.scm:3156
+#: gnu/packages/perl.scm:3521
 msgid "Check compiler availability"
 msgstr ""
 
-#: gnu/packages/perl.scm:3157
+#: gnu/packages/perl.scm:3522
 msgid ""
 "@code{Devel::CheckCompiler} is a tiny module to check\n"
 "whether a compiler is available.  It can test for a C99 compiler, or\n"
 "you can tell it to compile a C source file with optional linker flags."
 msgstr ""
 
-#: gnu/packages/perl.scm:3179
+#: gnu/packages/perl.scm:3544
 msgid "Find memory cycles in objects"
 msgstr ""
 
-#: gnu/packages/perl.scm:3181
+#: gnu/packages/perl.scm:3546
 msgid ""
 "@code{Devel::Cycle} This is a tool for finding circular references in\n"
 "objects and other types of references.  Because of Perl's reference-count\n"
 "based memory management, circular references will cause memory leaks."
 msgstr ""
 
-#: gnu/packages/perl.scm:3202
+#: gnu/packages/perl.scm:3567
 msgid "Provides equivalent of ${^GLOBAL_PHASE} eq 'DESTRUCT' for older perls"
 msgstr ""
 
-#: gnu/packages/perl.scm:3203
+#: gnu/packages/perl.scm:3568
 msgid ""
 "Devel::GlobalDestruction provides a function returning the\n"
 "equivalent of \"$@{^GLOBAL_PHASE@} eq 'DESTRUCT'\" for older perls."
 msgstr ""
 
-#: gnu/packages/perl.scm:3223
+#: gnu/packages/perl.scm:3588
 msgid "Forces the unavailability of specified Perl modules (for testing)"
 msgstr ""
 
-#: gnu/packages/perl.scm:3224
+#: gnu/packages/perl.scm:3589
 msgid ""
 "Given a list of Perl modules/filenames, this module makes\n"
 "@code{require} and @code{use} statements fail (no matter whether the specified\n"
 "files/modules are installed or not)."
 msgstr ""
 
-#: gnu/packages/perl.scm:3243
+#: gnu/packages/perl.scm:3608
 msgid "Utility for looking for perl objects that are not reclaimed"
 msgstr ""
 
-#: gnu/packages/perl.scm:3245
+#: gnu/packages/perl.scm:3610
 msgid ""
 "This module provides a basic way to discover if a piece of perl code is\n"
 "allocating perl data and not releasing them again."
 msgstr ""
 
-#: gnu/packages/perl.scm:3265
+#: gnu/packages/perl.scm:3630
 msgid "Alias lexical variables"
 msgstr ""
 
-#: gnu/packages/perl.scm:3266
+#: gnu/packages/perl.scm:3631
 msgid ""
 "Devel::LexAlias provides the ability to alias a lexical\n"
 "variable in a subroutines scope to one of your choosing."
 msgstr ""
 
-#: gnu/packages/perl.scm:3290
+#: gnu/packages/perl.scm:3655
 msgid "Introspect overloaded operators"
 msgstr ""
 
-#: gnu/packages/perl.scm:3291
+#: gnu/packages/perl.scm:3656
 msgid ""
 "Devel::OverloadInfo returns information about overloaded\n"
 "operators for a given class (or object), including where in the inheritance\n"
 "hierarchy the overloads are declared and where the code implementing it is."
 msgstr ""
 
-#: gnu/packages/perl.scm:3318
+#: gnu/packages/perl.scm:3683
 msgid "Partial dumping of data structures"
 msgstr ""
 
-#: gnu/packages/perl.scm:3319
+#: gnu/packages/perl.scm:3684
 msgid ""
 "This module is a data dumper optimized for logging of\n"
 "arbitrary parameters."
 msgstr ""
 
-#: gnu/packages/perl.scm:3336
+#: gnu/packages/perl.scm:3701
 msgid "Object representing a stack trace"
 msgstr ""
 
-#: gnu/packages/perl.scm:3337
+#: gnu/packages/perl.scm:3702
 msgid ""
 "The Devel::StackTrace module contains two classes,\n"
 "Devel::StackTrace and Devel::StackTrace::Frame.  These objects encapsulate the\n"
@@ -15607,11 +17608,11 @@ msgid ""
 "providing a simple interface to this data."
 msgstr ""
 
-#: gnu/packages/perl.scm:3359
+#: gnu/packages/perl.scm:3724
 msgid "Displays stack trace in HTML"
 msgstr ""
 
-#: gnu/packages/perl.scm:3360
+#: gnu/packages/perl.scm:3725
 msgid ""
 "Devel::StackTrace::AsHTML adds as_html method to\n"
 "Devel::StackTrace which displays the stack trace in beautiful HTML, with code\n"
@@ -15620,40 +17621,53 @@ msgid ""
 "each stack frame."
 msgstr ""
 
-#: gnu/packages/perl.scm:3381
+#: gnu/packages/perl.scm:3746
 msgid "Dump symbol names or the symbol table"
 msgstr ""
 
-#: gnu/packages/perl.scm:3382
+#: gnu/packages/perl.scm:3747
 msgid "Devel::Symdump provides access to the perl symbol table."
 msgstr ""
 
-#: gnu/packages/perl.scm:3400
+#: gnu/packages/perl.scm:3765
 msgid "Generic CRC functions"
 msgstr ""
 
-#: gnu/packages/perl.scm:3401
+#: gnu/packages/perl.scm:3766
 msgid ""
 "The @code{Digest::CRC} module calculates CRC sums of\n"
 "all sorts.  It contains wrapper functions with the correct parameters\n"
 "for CRC-CCITT, CRC-16 and CRC-32."
 msgstr ""
 
-#: gnu/packages/perl.scm:3420
+#: gnu/packages/perl.scm:3785
 msgid "Keyed-Hashing for Message Authentication"
 msgstr ""
 
-#: gnu/packages/perl.scm:3421
+#: gnu/packages/perl.scm:3786
 msgid ""
 "The Digest::HMAC module follows the common Digest::\n"
 "interface for the RFC 2104 HMAC mechanism."
 msgstr ""
 
-#: gnu/packages/perl.scm:3447
+#: gnu/packages/perl.scm:3805
+msgid "Interface to the MD4 Algorithm"
+msgstr ""
+
+#: gnu/packages/perl.scm:3806
+msgid ""
+"The @code{Digest::MD4} module allows you to use the\n"
+"RSA Data Security Inc.@: MD4 Message Digest algorithm from within Perl\n"
+"programs.  The algorithm takes as input a message of arbitrary length\n"
+"and produces as output a 128-bit \"fingerprint\" or \"message digest\"\n"
+"of the input.  MD4 is described in RFC 1320."
+msgstr ""
+
+#: gnu/packages/perl.scm:3826
 msgid "Perl interface to the MD-5 algorithm"
 msgstr ""
 
-#: gnu/packages/perl.scm:3449
+#: gnu/packages/perl.scm:3828
 msgid ""
 "The @code{Digest::MD5} module allows you to use the MD5 Message Digest\n"
 "algorithm from within Perl programs.  The algorithm takes as\n"
@@ -15661,31 +17675,31 @@ msgid ""
 "128-bit \"fingerprint\" or \"message digest\" of the input."
 msgstr ""
 
-#: gnu/packages/perl.scm:3467
+#: gnu/packages/perl.scm:3846
 msgid "Perl implementation of the SHA-1 message digest algorithm"
 msgstr ""
 
-#: gnu/packages/perl.scm:3469
+#: gnu/packages/perl.scm:3848
 msgid ""
 "This package provides @code{Digest::SHA1}, an implementation of the NIST\n"
 "SHA-1 message digest algorithm for use by Perl programs."
 msgstr ""
 
-#: gnu/packages/perl.scm:3490
+#: gnu/packages/perl.scm:3869
 msgid "Declare version conflicts for your dist"
 msgstr ""
 
-#: gnu/packages/perl.scm:3491
+#: gnu/packages/perl.scm:3870
 msgid ""
 "This module allows you to specify conflicting versions of\n"
 "modules separately and deal with them after the module is done installing."
 msgstr ""
 
-#: gnu/packages/perl.scm:3514
+#: gnu/packages/perl.scm:3893
 msgid "Deconstructed dynamic C library loading"
 msgstr ""
 
-#: gnu/packages/perl.scm:3515
+#: gnu/packages/perl.scm:3894
 msgid ""
 "This module provides a function-based interface to\n"
 "dynamic loading as used by Perl.  Some details of dynamic loading are\n"
@@ -15693,41 +17707,41 @@ msgid ""
 "the programmer to be mindfulof the space of platform variations."
 msgstr ""
 
-#: gnu/packages/perl.scm:3537
+#: gnu/packages/perl.scm:3916
 msgid "Detect the encoding of data"
 msgstr ""
 
-#: gnu/packages/perl.scm:3538
+#: gnu/packages/perl.scm:3917
 msgid ""
 "This package provides a class @code{Encode::Detect} to detect\n"
 "the encoding of data."
 msgstr ""
 
-#: gnu/packages/perl.scm:3556
+#: gnu/packages/perl.scm:3935
 msgid "ASCII mapping for eucJP encoding"
 msgstr ""
 
-#: gnu/packages/perl.scm:3557
+#: gnu/packages/perl.scm:3936
 msgid ""
 "This package provides an ASCII mapping for the eucJP\n"
 "encoding."
 msgstr ""
 
-#: gnu/packages/perl.scm:3575
+#: gnu/packages/perl.scm:3954
 msgid "JIS X 0212 (aka JIS 2000) encodings"
 msgstr ""
 
-#: gnu/packages/perl.scm:3576
+#: gnu/packages/perl.scm:3955
 msgid ""
 "This package provides encodings for JIS X 0212, which is\n"
 "also known as JIS 2000."
 msgstr ""
 
-#: gnu/packages/perl.scm:3599
+#: gnu/packages/perl.scm:3978
 msgid "Additional Chinese encodings"
 msgstr ""
 
-#: gnu/packages/perl.scm:3600
+#: gnu/packages/perl.scm:3979
 msgid ""
 "This Perl module provides Chinese encodings that are not\n"
 "part of Perl by default, including \"BIG5-1984\", \"BIG5-2003\", \"BIG5PLUS\",\n"
@@ -15735,11 +17749,11 @@ msgid ""
 "\"UNISYS\"."
 msgstr ""
 
-#: gnu/packages/perl.scm:3622
+#: gnu/packages/perl.scm:4001
 msgid "Advanced operations on path variables"
 msgstr ""
 
-#: gnu/packages/perl.scm:3623
+#: gnu/packages/perl.scm:4002
 msgid ""
 "@code{Env::Path} presents an object-oriented interface to\n"
 "path variables, defined as that subclass of environment variables which name\n"
@@ -15747,11 +17761,11 @@ msgid ""
 "separator."
 msgstr ""
 
-#: gnu/packages/perl.scm:3643
+#: gnu/packages/perl.scm:4022
 msgid "OO-ish Error/Exception handling for Perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:3644
+#: gnu/packages/perl.scm:4023
 msgid ""
 "The Error package provides two interfaces.  Firstly Error\n"
 "provides a procedural interface to exception handling.  Secondly Error is a\n"
@@ -15759,11 +17773,11 @@ msgid ""
 "catch, or can simply be recorded."
 msgstr ""
 
-#: gnu/packages/perl.scm:3669
+#: gnu/packages/perl.scm:4048
 msgid "Safely and cleanly create closures via string eval"
 msgstr ""
 
-#: gnu/packages/perl.scm:3670
+#: gnu/packages/perl.scm:4049
 msgid ""
 "String eval is often used for dynamic code generation.  For\n"
 "instance, Moose uses it heavily, to generate inlined versions of accessors and\n"
@@ -15777,32 +17791,32 @@ msgid ""
 "errors are rethrown automatically."
 msgstr ""
 
-#: gnu/packages/perl.scm:3699
+#: gnu/packages/perl.scm:4078
 msgid "Allows you to declare real exception classes in Perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:3700
+#: gnu/packages/perl.scm:4079
 msgid ""
 "Exception::Class allows you to declare exception hierarchies\n"
 "in your modules in a \"Java-esque\" manner."
 msgstr ""
 
-#: gnu/packages/perl.scm:3716
+#: gnu/packages/perl.scm:4095
 msgid "Lightweight exporting of functions and variables"
 msgstr ""
 
-#: gnu/packages/perl.scm:3718
+#: gnu/packages/perl.scm:4097
 msgid ""
 "Exporter::Lite is an alternative to Exporter, intended to provide a\n"
 "lightweight subset of the most commonly-used functionality.  It supports\n"
 "import(), @@EXPORT and @@EXPORT_OK and not a whole lot else."
 msgstr ""
 
-#: gnu/packages/perl.scm:3737
+#: gnu/packages/perl.scm:4116
 msgid "Exporter with the features of Sub::Exporter but only core dependencies"
 msgstr ""
 
-#: gnu/packages/perl.scm:3738
+#: gnu/packages/perl.scm:4117
 msgid ""
 "Exporter::Tiny supports many of Sub::Exporter's\n"
 "external-facing features including renaming imported functions with the `-as`,\n"
@@ -15811,42 +17825,42 @@ msgid ""
 "only about 40% as many lines of code and with zero non-core dependencies."
 msgstr ""
 
-#: gnu/packages/perl.scm:3761
+#: gnu/packages/perl.scm:4140
 msgid "Build.PL install path logic made easy"
 msgstr ""
 
-#: gnu/packages/perl.scm:3762
+#: gnu/packages/perl.scm:4141
 msgid ""
 "This module tries to make install path resolution as easy as\n"
 "possible."
 msgstr ""
 
-#: gnu/packages/perl.scm:3780
+#: gnu/packages/perl.scm:4159
 msgid "Wrapper for perl's configuration"
 msgstr ""
 
-#: gnu/packages/perl.scm:3781
+#: gnu/packages/perl.scm:4160
 msgid ""
 "ExtUtils::Config is an abstraction around the %Config hash.\n"
 "By itself it is not a particularly interesting module by any measure, however\n"
 "it ties together a family of modern toolchain modules."
 msgstr ""
 
-#: gnu/packages/perl.scm:3808
+#: gnu/packages/perl.scm:4187
 msgid "Tool for guessing C++ compiler and flags"
 msgstr ""
 
-#: gnu/packages/perl.scm:3809
+#: gnu/packages/perl.scm:4188
 msgid ""
 "ExtUtils::CppGuess attempts to guess the C++ compiler that\n"
 "is compatible with the C compiler used to build perl."
 msgstr ""
 
-#: gnu/packages/perl.scm:3828
+#: gnu/packages/perl.scm:4207
 msgid "Easily build XS extensions that depend on XS extensions"
 msgstr ""
 
-#: gnu/packages/perl.scm:3830
+#: gnu/packages/perl.scm:4209
 msgid ""
 "This module tries to make it easy to build Perl extensions that use\n"
 "functions and typemaps provided by other perl extensions.  This means that a\n"
@@ -15854,21 +17868,21 @@ msgid ""
 "XS interface besides the perl one."
 msgstr ""
 
-#: gnu/packages/perl.scm:3850
+#: gnu/packages/perl.scm:4229
 msgid "Various portability utilities for module builders"
 msgstr ""
 
-#: gnu/packages/perl.scm:3851
+#: gnu/packages/perl.scm:4230
 msgid ""
 "This module provides various portable helper functions for\n"
 "module building modules."
 msgstr ""
 
-#: gnu/packages/perl.scm:3871
+#: gnu/packages/perl.scm:4250
 msgid "Tool to build C libraries"
 msgstr ""
 
-#: gnu/packages/perl.scm:3872
+#: gnu/packages/perl.scm:4251
 msgid ""
 "Some Perl modules need to ship C libraries together with\n"
 "their Perl code.  Although there are mechanisms to compile and link (or glue)\n"
@@ -15876,22 +17890,22 @@ msgid ""
 "self-contained C libraries.  This module main goal is to help in that task."
 msgstr ""
 
-#: gnu/packages/perl.scm:3895
+#: gnu/packages/perl.scm:4274
 msgid "Module to convert Perl XS code into C code"
 msgstr ""
 
-#: gnu/packages/perl.scm:3896
+#: gnu/packages/perl.scm:4275
 msgid ""
 "The package contains the ExtUtils::ParseXS module to\n"
 "convert Perl XS code into C code, the ExtUtils::Typemaps module to\n"
 "handle Perl/XS typemap files, and their submodules."
 msgstr ""
 
-#: gnu/packages/perl.scm:3916
+#: gnu/packages/perl.scm:4295
 msgid "Simplistic interface to pkg-config"
 msgstr ""
 
-#: gnu/packages/perl.scm:3918
+#: gnu/packages/perl.scm:4297
 msgid ""
 "@code{ExtUtils::PkgConfig} is a very simplistic interface to the\n"
 "@command{pkg-config} utility, intended for use in the @file{Makefile.PL}\n"
@@ -15899,41 +17913,41 @@ msgid ""
 "It is really just boilerplate code that you would have written yourself."
 msgstr ""
 
-#: gnu/packages/perl.scm:3943
+#: gnu/packages/perl.scm:4322
 msgid "Set of useful typemaps"
 msgstr ""
 
-#: gnu/packages/perl.scm:3944
+#: gnu/packages/perl.scm:4323
 msgid ""
 "The package provides a number of useful typemaps as\n"
 "submodules of ExtUtils::Typemaps."
 msgstr ""
 
-#: gnu/packages/perl.scm:3969
+#: gnu/packages/perl.scm:4348
 msgid "XS for C++"
 msgstr ""
 
-#: gnu/packages/perl.scm:3970
+#: gnu/packages/perl.scm:4349
 msgid ""
 "This module implements the Perl foreign function\n"
 "interface XS for C++; it is a thin layer over plain XS."
 msgstr ""
 
-#: gnu/packages/perl.scm:4000
+#: gnu/packages/perl.scm:4379
 msgid "Watch for changes to files"
 msgstr ""
 
-#: gnu/packages/perl.scm:4001
+#: gnu/packages/perl.scm:4380
 msgid ""
 "This module provides a class to monitor a directory for\n"
 "changes made to any file."
 msgstr ""
 
-#: gnu/packages/perl.scm:4023
+#: gnu/packages/perl.scm:4402
 msgid "Get directories of configuration files"
 msgstr ""
 
-#: gnu/packages/perl.scm:4024
+#: gnu/packages/perl.scm:4403
 msgid ""
 "This module is a helper for installing, reading and finding\n"
 "configuration file locations.  @code{File::ConfigDir} is a module to help out\n"
@@ -15941,44 +17955,44 @@ msgid ""
 "configuration files from more than one location."
 msgstr ""
 
-#: gnu/packages/perl.scm:4044
+#: gnu/packages/perl.scm:4423
 msgid "Recursively copy files and directories"
 msgstr ""
 
-#: gnu/packages/perl.scm:4045
+#: gnu/packages/perl.scm:4424
 msgid ""
 "This module has 3 functions: one to copy files only, one to\n"
 "copy directories only, and one to do either depending on the argument's\n"
 "type."
 msgstr ""
 
-#: gnu/packages/perl.scm:4067
+#: gnu/packages/perl.scm:4446
 msgid "Alternative interface to File::Find"
 msgstr ""
 
-#: gnu/packages/perl.scm:4068
+#: gnu/packages/perl.scm:4447
 msgid ""
 "File::Find::Rule is a friendlier interface to File::Find.\n"
 "It allows you to build rules which specify the desired files and\n"
 "directories."
 msgstr ""
 
-#: gnu/packages/perl.scm:4091
+#: gnu/packages/perl.scm:4470
 msgid "Common rules for searching for Perl things"
 msgstr ""
 
-#: gnu/packages/perl.scm:4092
+#: gnu/packages/perl.scm:4471
 msgid ""
 "File::Find::Rule::Perl provides methods for finding various\n"
 "types Perl-related files, or replicating search queries run on a distribution\n"
 "in various parts of the CPAN ecosystem."
 msgstr ""
 
-#: gnu/packages/perl.scm:4113
+#: gnu/packages/perl.scm:4492
 msgid "Matches patterns in a series of files"
 msgstr ""
 
-#: gnu/packages/perl.scm:4114
+#: gnu/packages/perl.scm:4493
 msgid ""
 "@code{File::Grep} provides similar functionality as perl's\n"
 "builtin @code{grep}, @code{map}, and @code{foreach} commands, but iterating\n"
@@ -15986,11 +18000,11 @@ msgid ""
 "provide a quick dropin when such functionality is needed."
 msgstr ""
 
-#: gnu/packages/perl.scm:4137
+#: gnu/packages/perl.scm:4516
 msgid "Find your home and other directories on any platform"
 msgstr ""
 
-#: gnu/packages/perl.scm:4138
+#: gnu/packages/perl.scm:4517
 msgid ""
 "File::HomeDir is a module for locating the directories that\n"
 "are @code{owned} by a user (typically your user) and to solve the various issues\n"
@@ -15998,22 +18012,22 @@ msgid ""
 "platforms."
 msgstr ""
 
-#: gnu/packages/perl.scm:4159
+#: gnu/packages/perl.scm:4538
 msgid "Create or remove directory trees"
 msgstr ""
 
-#: gnu/packages/perl.scm:4160
+#: gnu/packages/perl.scm:4539
 msgid ""
 "This module provide a convenient way to create directories\n"
 "of arbitrary depth and to delete an entire directory subtree from the\n"
 "file system."
 msgstr ""
 
-#: gnu/packages/perl.scm:4183
+#: gnu/packages/perl.scm:4562
 msgid "Change directory temporarily for a limited scope"
 msgstr ""
 
-#: gnu/packages/perl.scm:4184
+#: gnu/packages/perl.scm:4563
 msgid ""
 "@code{File::pushd} does a temporary @code{chdir} that is\n"
 "easily and automatically reverted, similar to @code{pushd} in some Unix\n"
@@ -16024,24 +18038,24 @@ msgid ""
 "at the end of the scope."
 msgstr ""
 
-#: gnu/packages/perl.scm:4212
+#: gnu/packages/perl.scm:4591
 msgid ""
 "Perl extension for crawling directory trees and compiling\n"
 "lists of files"
 msgstr ""
 
-#: gnu/packages/perl.scm:4215
+#: gnu/packages/perl.scm:4594
 msgid ""
 "The File::List module crawls the directory tree starting at the\n"
 "provided base directory and can return files (and/or directories if desired)\n"
 "matching a regular expression."
 msgstr ""
 
-#: gnu/packages/perl.scm:4236
+#: gnu/packages/perl.scm:4615
 msgid "Read a file backwards by lines"
 msgstr ""
 
-#: gnu/packages/perl.scm:4237
+#: gnu/packages/perl.scm:4616
 msgid ""
 "This module reads a file backwards line by line. It is\n"
 "simple to use, memory efficient and fast.  It supports both an object and a\n"
@@ -16053,11 +18067,11 @@ msgid ""
 "the input record separator string on a per file basis."
 msgstr ""
 
-#: gnu/packages/perl.scm:4263
+#: gnu/packages/perl.scm:4642
 msgid "Remove files and directories in Perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:4264
+#: gnu/packages/perl.scm:4643
 msgid ""
 "@code{File::Remove::remove} removes files and directories.\n"
 "It acts like @code{/bin/rm}, for the most part.  Although @code{unlink} can be\n"
@@ -16065,11 +18079,11 @@ msgid ""
 "that.  It also accepts wildcards, * and ?, as arguments for file names."
 msgstr ""
 
-#: gnu/packages/perl.scm:4287
+#: gnu/packages/perl.scm:4666
 msgid "Locate per-dist and per-module shared files"
 msgstr ""
 
-#: gnu/packages/perl.scm:4288
+#: gnu/packages/perl.scm:4667
 msgid ""
 "The intent of File::ShareDir is to provide a companion to\n"
 "Class::Inspector and File::HomeDir.  Quite often you want or need your Perl\n"
@@ -16079,93 +18093,93 @@ msgid ""
 "the installation."
 msgstr ""
 
-#: gnu/packages/perl.scm:4309
+#: gnu/packages/perl.scm:4688
 msgid "Locate per-dist shared files"
 msgstr ""
 
-#: gnu/packages/perl.scm:4310
+#: gnu/packages/perl.scm:4689
 msgid ""
 "File::ShareDir::Dist finds share directories for\n"
 "distributions.  It is a companion module to File::ShareDir."
 msgstr ""
 
-#: gnu/packages/perl.scm:4330
+#: gnu/packages/perl.scm:4709
 msgid "Install shared files"
 msgstr ""
 
-#: gnu/packages/perl.scm:4331
+#: gnu/packages/perl.scm:4710
 msgid ""
 "File::ShareDir::Install allows you to install read-only data\n"
 "files from a distribution.  It is a companion module to File::ShareDir, which\n"
 "allows you to locate these files after installation."
 msgstr ""
 
-#: gnu/packages/perl.scm:4349
+#: gnu/packages/perl.scm:4728
 msgid "Reading/Writing/Modifying of complete files"
 msgstr ""
 
-#: gnu/packages/perl.scm:4350
+#: gnu/packages/perl.scm:4729
 msgid ""
 "File::Slurp provides subroutines to read or write entire\n"
 "files with a simple call.  It also has a subroutine for reading the list of\n"
 "file names in a directory."
 msgstr ""
 
-#: gnu/packages/perl.scm:4375
+#: gnu/packages/perl.scm:4754
 msgid "Simple, sane and efficient module to slurp a file"
 msgstr ""
 
-#: gnu/packages/perl.scm:4376
+#: gnu/packages/perl.scm:4755
 msgid ""
 "This module provides functions for fast and correct file\n"
 "slurping and spewing.  All functions are optionally exported."
 msgstr ""
 
-#: gnu/packages/perl.scm:4393
+#: gnu/packages/perl.scm:4772
 msgid "Simple file reader and writer"
 msgstr ""
 
-#: gnu/packages/perl.scm:4395
+#: gnu/packages/perl.scm:4774
 msgid "This module provides functions for fast reading and writing of files."
 msgstr ""
 
-#: gnu/packages/perl.scm:4411
+#: gnu/packages/perl.scm:4790
 msgid "Return name and handle of a temporary file safely"
 msgstr ""
 
-#: gnu/packages/perl.scm:4412
+#: gnu/packages/perl.scm:4791
 msgid ""
 "File::Temp can be used to create and open temporary files in\n"
 "a safe way."
 msgstr ""
 
-#: gnu/packages/perl.scm:4429
+#: gnu/packages/perl.scm:4808
 msgid "Portable implementation of the `which' utility"
 msgstr ""
 
-#: gnu/packages/perl.scm:4431
+#: gnu/packages/perl.scm:4810
 msgid ""
 "File::Which was created to be able to get the paths to executable\n"
 "programs on systems under which the `which' program wasn't implemented in the\n"
 "shell."
 msgstr ""
 
-#: gnu/packages/perl.scm:4453
+#: gnu/packages/perl.scm:4832
 msgid "Extended Unix style glob functionality"
 msgstr ""
 
-#: gnu/packages/perl.scm:4454
+#: gnu/packages/perl.scm:4833
 msgid ""
 "@code{File::Zglob} provides a traditional Unix @code{glob}\n"
 "functionality; it returns a list of file names that match the given pattern.\n"
 "For instance, it supports the @code{**/*.pm} form."
 msgstr ""
 
-#: gnu/packages/perl.scm:4475
+#: gnu/packages/perl.scm:4854
 msgid "Simple and dumb file system watcher"
 msgstr ""
 
-#: gnu/packages/perl.scm:4477
+#: gnu/packages/perl.scm:4856
 msgid ""
 "@code{Filesys::Notify::Simple} is a simple but unified interface to get\n"
 "notifications of changes to a given file system path.  It uses inotify2 on\n"
@@ -16174,11 +18188,11 @@ msgid ""
 "back to a full directory scan if none of these are available."
 msgstr ""
 
-#: gnu/packages/perl.scm:4498
+#: gnu/packages/perl.scm:4876
 msgid "Module to handle parsing command line options"
 msgstr ""
 
-#: gnu/packages/perl.scm:4499
+#: gnu/packages/perl.scm:4877
 msgid ""
 "The @code{Getopt::Long} module implements an extended getopt\n"
 "function called @code{GetOptions()}.  It parses the command line from\n"
@@ -16192,11 +18206,11 @@ msgid ""
 "single-letter approach, is provided but not enabled by default."
 msgstr ""
 
-#: gnu/packages/perl.scm:4533
+#: gnu/packages/perl.scm:4911
 msgid "Getopt::Long, but simpler and more powerful"
 msgstr ""
 
-#: gnu/packages/perl.scm:4534
+#: gnu/packages/perl.scm:4912
 msgid ""
 "Getopt::Long::Descriptive is yet another Getopt library.\n"
 "It's built atop Getopt::Long, and gets a lot of its features, but tries to\n"
@@ -16204,31 +18218,31 @@ msgid ""
 "usage (help) messages, data validation, and a few other useful features."
 msgstr ""
 
-#: gnu/packages/perl.scm:4552
+#: gnu/packages/perl.scm:4930
 msgid "Table-driven argument parsing for Perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:4554
+#: gnu/packages/perl.scm:4932
 msgid ""
 "Getopt::Tabular is a Perl 5 module for table-driven argument parsing,\n"
 "vaguely inspired by John Ousterhout's Tk_ParseArgv."
 msgstr ""
 
-#: gnu/packages/perl.scm:4575
+#: gnu/packages/perl.scm:4953
 msgid "Graph data structures and algorithms"
 msgstr ""
 
-#: gnu/packages/perl.scm:4576
+#: gnu/packages/perl.scm:4954
 msgid ""
 "This is @code{Graph}, a Perl module for dealing with graphs,\n"
 "the abstract data structures."
 msgstr ""
 
-#: gnu/packages/perl.scm:4593
+#: gnu/packages/perl.scm:4971
 msgid "Safe cleanup blocks implemented as guards"
 msgstr ""
 
-#: gnu/packages/perl.scm:4594
+#: gnu/packages/perl.scm:4972
 msgid ""
 "@code{Guard} implements so-called @dfn{guards}.  A guard is\n"
 "something (usually an object) that \"guards\" a resource, ensuring that it is\n"
@@ -16239,11 +18253,11 @@ msgid ""
 "which are tied to the scope exit."
 msgstr ""
 
-#: gnu/packages/perl.scm:4630
+#: gnu/packages/perl.scm:5008
 msgid "Lightweight field hash for inside-out objects"
 msgstr ""
 
-#: gnu/packages/perl.scm:4631
+#: gnu/packages/perl.scm:5009
 msgid ""
 "@code{Hash::FieldHash} provides the field hash mechanism\n"
 "which supports the inside-out technique.  It is an alternative to\n"
@@ -16251,11 +18265,11 @@ msgid ""
 "relic support."
 msgstr ""
 
-#: gnu/packages/perl.scm:4653
+#: gnu/packages/perl.scm:5034
 msgid "Merge arbitrarily deep hashes into a single hash"
 msgstr ""
 
-#: gnu/packages/perl.scm:4654
+#: gnu/packages/perl.scm:5035
 msgid ""
 "Hash::Merge merges two arbitrarily deep hashes into a single\n"
 "hash.  That is, at any level, it will add non-conflicting key-value pairs from\n"
@@ -16265,21 +18279,34 @@ msgid ""
 "merged."
 msgstr ""
 
-#: gnu/packages/perl.scm:4676
+#: gnu/packages/perl.scm:5057
 msgid "Store multiple values per key"
 msgstr ""
 
-#: gnu/packages/perl.scm:4677
+#: gnu/packages/perl.scm:5058
 msgid ""
 "Hash::MultiValue is an object (and a plain hash reference)\n"
 "that may contain multiple values per key, inspired by MultiDict of WebOb."
 msgstr ""
 
-#: gnu/packages/perl.scm:4695
+#: gnu/packages/perl.scm:5076
+msgid "Lexically scoped subroutine wrappers"
+msgstr ""
+
+#: gnu/packages/perl.scm:5078
+msgid ""
+"Hook::LexWrap allows you to install a pre- or post-wrapper (or\n"
+"both) around an existing subroutine.  Unlike other modules that\n"
+"provide this capacity (e.g., Hook::PreAndPost and Hook::WrapSub),\n"
+"Hook::LexWrap implements wrappers in such a way that the standard\n"
+"caller function works correctly within the wrapped subroutine."
+msgstr ""
+
+#: gnu/packages/perl.scm:5099
 msgid "Alternative but compatible interface to modules that export symbols"
 msgstr ""
 
-#: gnu/packages/perl.scm:4696
+#: gnu/packages/perl.scm:5100
 msgid ""
 "This module acts as a layer between Exporter and modules which\n"
 "consume exports.  It is feature-compatible with Exporter, plus some much needed\n"
@@ -16289,11 +18316,11 @@ msgid ""
 "variables."
 msgstr ""
 
-#: gnu/packages/perl.scm:4720
+#: gnu/packages/perl.scm:5124
 msgid "Import packages into other packages"
 msgstr ""
 
-#: gnu/packages/perl.scm:4721
+#: gnu/packages/perl.scm:5125
 msgid ""
 "Writing exporters is a pain.  Some use Exporter, some use\n"
 "Sub::Exporter, some use Moose::Exporter, some use Exporter::Declare ... and\n"
@@ -16303,30 +18330,30 @@ msgid ""
 "compilation.  Import::Into provides global methods to make this painless."
 msgstr ""
 
-#: gnu/packages/perl.scm:4743
+#: gnu/packages/perl.scm:5147
 msgid "Use modules in inc/ if newer than installed"
 msgstr ""
 
-#: gnu/packages/perl.scm:4744
+#: gnu/packages/perl.scm:5148
 msgid ""
 "The inc::latest module helps bootstrap configure-time\n"
 "dependencies for CPAN distributions.  These dependencies get bundled into the\n"
 "inc directory within a distribution and are used by Makefile.PL or Build.PL."
 msgstr ""
 
-#: gnu/packages/perl.scm:4763
+#: gnu/packages/perl.scm:5167
 msgid "Lexically warn about using the indirect method call syntax"
 msgstr ""
 
-#: gnu/packages/perl.scm:4765
+#: gnu/packages/perl.scm:5169
 msgid "Indirect warns about using the indirect method call syntax."
 msgstr ""
 
-#: gnu/packages/perl.scm:4785
+#: gnu/packages/perl.scm:5189
 msgid "Write Perl subroutines in other programming languages"
 msgstr ""
 
-#: gnu/packages/perl.scm:4786
+#: gnu/packages/perl.scm:5190
 msgid ""
 "The @code{Inline} module allows you to put source code\n"
 "from other programming languages directly (inline) in a Perl script or\n"
@@ -16334,11 +18361,11 @@ msgid ""
 "for immediate access from Perl."
 msgstr ""
 
-#: gnu/packages/perl.scm:4816
+#: gnu/packages/perl.scm:5220
 msgid "C Language Support for Inline"
 msgstr ""
 
-#: gnu/packages/perl.scm:4817
+#: gnu/packages/perl.scm:5221
 msgid ""
 "The @code{Inline::C} module allows you to write Perl\n"
 "subroutines in C.  Since version 0.30 the @code{Inline} module supports\n"
@@ -16347,11 +18374,11 @@ msgid ""
 "It also goes a bit into Perl C internals."
 msgstr ""
 
-#: gnu/packages/perl.scm:4843
+#: gnu/packages/perl.scm:5247
 msgid "@code{IO::All} to Larry Wall!"
 msgstr ""
 
-#: gnu/packages/perl.scm:4844
+#: gnu/packages/perl.scm:5248
 msgid ""
 "@code{IO::All} combines all of the best Perl IO modules into\n"
 "a single nifty object oriented interface to greatly simplify your everyday\n"
@@ -16359,11 +18386,11 @@ msgid ""
 "@code{IO::All} object.  And that object can do it all!"
 msgstr ""
 
-#: gnu/packages/perl.scm:4865
+#: gnu/packages/perl.scm:5269
 msgid "Capture STDOUT and STDERR from Perl code, subprocesses or XS"
 msgstr ""
 
-#: gnu/packages/perl.scm:4866
+#: gnu/packages/perl.scm:5270
 msgid ""
 "@code{IO::CaptureOutput} provides routines for capturing\n"
 "@code{STDOUT} and @code{STDERR} from perl subroutines, forked system\n"
@@ -16373,74 +18400,74 @@ msgid ""
 "try @code{Capture::Tiny} instead."
 msgstr ""
 
-#: gnu/packages/perl.scm:4887
+#: gnu/packages/perl.scm:5291
 msgid "Utilities for interactive I/O"
 msgstr ""
 
-#: gnu/packages/perl.scm:4888
+#: gnu/packages/perl.scm:5292
 msgid ""
 "This module provides three utility subroutines that make it\n"
 "easier to develop interactive applications: is_interactive(), interactive(),\n"
 "and busy()."
 msgstr ""
 
-#: gnu/packages/perl.scm:4921
+#: gnu/packages/perl.scm:5325
 msgid "Select a pager and pipe text to it"
 msgstr ""
 
-#: gnu/packages/perl.scm:4923
+#: gnu/packages/perl.scm:5327
 msgid ""
 "@code{IO::Pager} can be used to locate an available pager and use it to\n"
 "display output if a TTY is in use."
 msgstr ""
 
-#: gnu/packages/perl.scm:4941
+#: gnu/packages/perl.scm:5345
 msgid "Emulate file interface for in-core strings"
 msgstr ""
 
-#: gnu/packages/perl.scm:4942
+#: gnu/packages/perl.scm:5346
 msgid ""
 "IO::String is an IO::File (and IO::Handle) compatible class\n"
 "that reads or writes data from in-core strings."
 msgstr ""
 
-#: gnu/packages/perl.scm:4960
+#: gnu/packages/perl.scm:5364
 msgid "IO:: interface for reading/writing an array of lines"
 msgstr ""
 
-#: gnu/packages/perl.scm:4961
+#: gnu/packages/perl.scm:5365
 msgid ""
 "This toolkit primarily provides modules for performing both\n"
 "traditional and object-oriented i/o) on things *other* than normal\n"
 "filehandles; in particular, IO::Scalar, IO::ScalarArray, and IO::Lines."
 msgstr ""
 
-#: gnu/packages/perl.scm:4979
+#: gnu/packages/perl.scm:5383
 msgid "Perl interface to pseudo ttys"
 msgstr ""
 
-#: gnu/packages/perl.scm:4981
+#: gnu/packages/perl.scm:5385
 msgid ""
 "This package provides the @code{IO::Pty} and @code{IO::Tty} Perl\n"
 "interfaces to pseudo ttys."
 msgstr ""
 
-#: gnu/packages/perl.scm:4998
+#: gnu/packages/perl.scm:5402
 msgid "Run interactive command-line programs"
 msgstr ""
 
-#: gnu/packages/perl.scm:4999
+#: gnu/packages/perl.scm:5403
 msgid ""
 "@code{IPC::Cmd} allows for the searching and execution of\n"
 "any binary on your system.  It adheres to verbosity settings and is able to\n"
 "run interactively.  It also has an option to capture output/error buffers."
 msgstr ""
 
-#: gnu/packages/perl.scm:5028
+#: gnu/packages/perl.scm:5432
 msgid "Run system() and background procs w/ piping, redirs, ptys"
 msgstr ""
 
-#: gnu/packages/perl.scm:5029
+#: gnu/packages/perl.scm:5433
 msgid ""
 "IPC::Run allows you run and interact with child processes\n"
 "using files, pipes, and pseudo-ttys.  Both system()-style and scripted usages\n"
@@ -16448,11 +18475,11 @@ msgid ""
 "both supported and may be mixed."
 msgstr ""
 
-#: gnu/packages/perl.scm:5047
+#: gnu/packages/perl.scm:5451
 msgid "Run a subprocess with input/output redirection"
 msgstr ""
 
-#: gnu/packages/perl.scm:5049
+#: gnu/packages/perl.scm:5453
 msgid ""
 "The IPC::Run3 module allows you to run a subprocess and redirect stdin,\n"
 "stdout, and/or stderr to files and perl data structures.  It aims to satisfy\n"
@@ -16460,21 +18487,21 @@ msgid ""
 "Perlish API and none of the bloat and rarely used features of IPC::Run."
 msgstr ""
 
-#: gnu/packages/perl.scm:5072
+#: gnu/packages/perl.scm:5476
 msgid "Lightweight interface to shared memory"
 msgstr ""
 
-#: gnu/packages/perl.scm:5073
+#: gnu/packages/perl.scm:5477
 msgid ""
 "IPC::ShareLite provides a simple interface to shared memory,\n"
 "allowing data to be efficiently communicated between processes."
 msgstr ""
 
-#: gnu/packages/perl.scm:5091
+#: gnu/packages/perl.scm:5495
 msgid "Run commands simply, with detailed diagnostics"
 msgstr ""
 
-#: gnu/packages/perl.scm:5092
+#: gnu/packages/perl.scm:5496
 msgid ""
 "Calling Perl's in-built @code{system} function is easy,\n"
 "determining if it was successful is hard.  Let's face it, @code{$?} isn't the\n"
@@ -16485,21 +18512,21 @@ msgid ""
 "commands."
 msgstr ""
 
-#: gnu/packages/perl.scm:5117
+#: gnu/packages/perl.scm:5521
 msgid "JSON encoder/decoder for Perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:5118
+#: gnu/packages/perl.scm:5522
 msgid ""
 "This module converts Perl data structures to JSON and vice\n"
 "versa using either JSON::XS or JSON::PP."
 msgstr ""
 
-#: gnu/packages/perl.scm:5143
+#: gnu/packages/perl.scm:5547
 msgid "Wrapper for Perl JSON classes"
 msgstr ""
 
-#: gnu/packages/perl.scm:5145
+#: gnu/packages/perl.scm:5549
 msgid ""
 "This module tries to provide a coherent API to bring together the\n"
 "various JSON modules currently on CPAN.  This module will allow you to code to\n"
@@ -16507,11 +18534,11 @@ msgid ""
 "installed."
 msgstr ""
 
-#: gnu/packages/perl.scm:5169
+#: gnu/packages/perl.scm:5573
 msgid "Cpanel::JSON::XS with fallback"
 msgstr ""
 
-#: gnu/packages/perl.scm:5170
+#: gnu/packages/perl.scm:5574
 msgid ""
 "This module first checks to see if either Cpanel::JSON::XS\n"
 "or JSON::XS is already loaded, in which case it uses that module.  Otherwise\n"
@@ -16519,23 +18546,33 @@ msgid ""
 "either uses the first module it finds or throws an error."
 msgstr ""
 
-#: gnu/packages/perl.scm:5195
+#: gnu/packages/perl.scm:5599
 msgid "JSON serialising/deserialising for Perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:5218
+#: gnu/packages/perl.scm:5622
 msgid "Prevent leakage of lexical hints"
 msgstr ""
 
-#: gnu/packages/perl.scm:5220
+#: gnu/packages/perl.scm:5624
 msgid "Lexical::SealRequireHints prevents leakage of lexical hints"
 msgstr ""
 
-#: gnu/packages/perl.scm:5236
+#: gnu/packages/perl.scm:5647
+msgid "Use other catalog formats in Maketext"
+msgstr ""
+
+#: gnu/packages/perl.scm:5649
+msgid ""
+"This module provides lexicon-handling modules to read from other\n"
+"localization formats, such as Gettext, Msgcat, and so on."
+msgstr ""
+
+#: gnu/packages/perl.scm:5666
 msgid "Bringing loggers and listeners together"
 msgstr ""
 
-#: gnu/packages/perl.scm:5237
+#: gnu/packages/perl.scm:5667
 msgid ""
 "@code{Log::Any} provides a standard log production API for\n"
 "modules.  @code{Log::Any::Adapter} allows applications to choose the mechanism\n"
@@ -16553,32 +18590,32 @@ msgid ""
 "logging mechanism."
 msgstr ""
 
-#: gnu/packages/perl.scm:5273
+#: gnu/packages/perl.scm:5703
 msgid "Log::Any adapter for Log::Log4perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:5274
+#: gnu/packages/perl.scm:5704
 msgid ""
 "@code{Log::Any::Adapter::Log4perl} provides a\n"
 "@code{Log::Any} adapter using @code{Log::Log4perl} for logging."
 msgstr ""
 
-#: gnu/packages/perl.scm:5295
+#: gnu/packages/perl.scm:5725
 msgid "Log4j implementation for Perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:5296
+#: gnu/packages/perl.scm:5726
 msgid ""
 "@code{Log::Log4perl} lets you remote-control and fine-tune\n"
 "the logging behaviour of your system from the outside.  It implements the\n"
 "widely popular (Java-based) Log4j logging package in pure Perl."
 msgstr ""
 
-#: gnu/packages/perl.scm:5316
+#: gnu/packages/perl.scm:5746
 msgid "Log::Report in the lightest form"
 msgstr ""
 
-#: gnu/packages/perl.scm:5318
+#: gnu/packages/perl.scm:5748
 msgid ""
 "This module allows libraries to have a dependency to a small module\n"
 "instead of the full Log-Report distribution.  The full power of\n"
@@ -16588,81 +18625,92 @@ msgid ""
 "version."
 msgstr ""
 
-#: gnu/packages/perl.scm:5343
+#: gnu/packages/perl.scm:5773
 msgid "Get messages to users and logs"
 msgstr ""
 
-#: gnu/packages/perl.scm:5345
+#: gnu/packages/perl.scm:5775
 msgid ""
 "@code{Log::Report} combines three tasks which are closely related in\n"
 "one: logging, exceptions, and translations."
 msgstr ""
 
-#: gnu/packages/perl.scm:5373
+#: gnu/packages/perl.scm:5803
 msgid "High-level interface to Uniforum message translation"
 msgstr ""
 
-#: gnu/packages/perl.scm:5374
+#: gnu/packages/perl.scm:5804
 msgid ""
 "This package is an internationalization library for Perl\n"
 "that aims to be compatible with the Uniforum message translations system as\n"
 "implemented for example in GNU gettext."
 msgstr ""
 
-#: gnu/packages/perl.scm:5393
+#: gnu/packages/perl.scm:5824
+msgid "Split text into sentences"
+msgstr ""
+
+#: gnu/packages/perl.scm:5826
+msgid ""
+"The Lingua::EN::Sentence module contains the function get_sentences,\n"
+"which splits text into its constituent sentences, based on a regular\n"
+"expression and a list of abbreviations (built in and given)."
+msgstr ""
+
+#: gnu/packages/perl.scm:5845
 msgid "Transliterate text between writing systems"
 msgstr ""
 
-#: gnu/packages/perl.scm:5394
+#: gnu/packages/perl.scm:5846
 msgid ""
 "@code{Lingua::Translit} can be used to convert text from one\n"
 "writing system to another, based on national or international transliteration\n"
 "tables.  Where possible a reverse transliteration is supported."
 msgstr ""
 
-#: gnu/packages/perl.scm:5418
+#: gnu/packages/perl.scm:5870
 msgid "Combination of List::Util and List::MoreUtils"
 msgstr ""
 
-#: gnu/packages/perl.scm:5419
+#: gnu/packages/perl.scm:5871
 msgid ""
 "This module exports all of the functions that either\n"
 "List::Util or List::MoreUtils defines, with preference to List::Util."
 msgstr ""
 
-#: gnu/packages/perl.scm:5441
+#: gnu/packages/perl.scm:5893
 msgid "Compare elements of two or more lists"
 msgstr ""
 
-#: gnu/packages/perl.scm:5442
+#: gnu/packages/perl.scm:5894
 msgid ""
 "@code{List::Compare} provides a module to perform\n"
 "comparative operations on two or more lists.  Provided operations include\n"
 "intersections, unions, unique elements, complements and many more."
 msgstr ""
 
-#: gnu/packages/perl.scm:5477 gnu/packages/perl.scm:5527
+#: gnu/packages/perl.scm:5929 gnu/packages/perl.scm:5979
 msgid "Provide the stuff missing in List::Util"
 msgstr ""
 
-#: gnu/packages/perl.scm:5478
+#: gnu/packages/perl.scm:5930
 msgid ""
 "List::MoreUtils provides some trivial but commonly needed\n"
 "functionality on lists which is not going to go into List::Util."
 msgstr ""
 
-#: gnu/packages/perl.scm:5500
+#: gnu/packages/perl.scm:5952
 msgid "Provide the stuff missing in List::Util in XS"
 msgstr ""
 
-#: gnu/packages/perl.scm:5501
+#: gnu/packages/perl.scm:5953
 msgid ""
 "@code{List::MoreUtils::XS} provides some trivial but\n"
 "commonly needed functionality on lists which is not going to go into\n"
 "@code{List::Util}."
 msgstr ""
 
-#: gnu/packages/perl.scm:5528
+#: gnu/packages/perl.scm:5980
 msgid ""
 "@code{List::SomeUtils} provides some trivial but commonly\n"
 "needed functionality on lists which is not going to go into @code{List::Util}.\n"
@@ -16674,11 +18722,11 @@ msgid ""
 "portions of this module couldn't be compiled on this machine."
 msgstr ""
 
-#: gnu/packages/perl.scm:5557
+#: gnu/packages/perl.scm:6009
 msgid "Bundle of ancient email modules"
 msgstr ""
 
-#: gnu/packages/perl.scm:5558
+#: gnu/packages/perl.scm:6010
 msgid ""
 "MailTools contains the following modules:\n"
 "@table @asis\n"
@@ -16705,107 +18753,107 @@ msgid ""
 "@end table"
 msgstr ""
 
-#: gnu/packages/perl.scm:5600
+#: gnu/packages/perl.scm:6052
 msgid "Simple platform independent mailer"
 msgstr ""
 
-#: gnu/packages/perl.scm:5601
+#: gnu/packages/perl.scm:6053
 msgid ""
 "Mail::Sendmail is a pure perl module that provides a\n"
 "simple means to send email from a perl script.  The module only\n"
 "requires Perl5 and a network connection."
 msgstr ""
 
-#: gnu/packages/perl.scm:5620
+#: gnu/packages/perl.scm:6072
 msgid "Solution of bezier curves"
 msgstr ""
 
-#: gnu/packages/perl.scm:5621
+#: gnu/packages/perl.scm:6073
 msgid ""
 "This module implements the algorithm for the solution of Bezier\n"
 "curves as presented by Robert D Miller in Graphics Gems V, \"Quick and Simple\n"
 "Bezier Curve Drawing\"."
 msgstr ""
 
-#: gnu/packages/perl.scm:5640
+#: gnu/packages/perl.scm:6092
 msgid "Perl extension for rounding numbers"
 msgstr ""
 
-#: gnu/packages/perl.scm:5641
+#: gnu/packages/perl.scm:6093
 msgid ""
 "@code{Math::Round} provides functions to round numbers,\n"
 "both positive and negative, in various ways."
 msgstr ""
 
-#: gnu/packages/perl.scm:5659
+#: gnu/packages/perl.scm:6111
 msgid "Basic numeric stats on vectors"
 msgstr ""
 
-#: gnu/packages/perl.scm:5660
+#: gnu/packages/perl.scm:6112
 msgid ""
 "This package provides some basic statistics on numerical\n"
 "vectors.  All the subroutines can take a reference to the vector to be\n"
 "operated on."
 msgstr ""
 
-#: gnu/packages/perl.scm:5679
+#: gnu/packages/perl.scm:6131
 msgid "Make functions faster by trading space for time"
 msgstr ""
 
-#: gnu/packages/perl.scm:5680
+#: gnu/packages/perl.scm:6132
 msgid ""
 "This package transparently speeds up functions by caching\n"
 "return values, trading space for time."
 msgstr ""
 
-#: gnu/packages/perl.scm:5698
+#: gnu/packages/perl.scm:6150
 msgid "Expiry plug-in for Memoize that adds LRU cache expiration"
 msgstr ""
 
-#: gnu/packages/perl.scm:5699
+#: gnu/packages/perl.scm:6151
 msgid ""
 "This module implements an expiry policy for Memoize that\n"
 "follows LRU semantics, that is, the last n results, where n is specified as\n"
 "the argument to the CACHESIZE parameter, will be cached."
 msgstr ""
 
-#: gnu/packages/perl.scm:5717
+#: gnu/packages/perl.scm:6169
 msgid "Charset information for MIME messages"
 msgstr ""
 
-#: gnu/packages/perl.scm:5719
+#: gnu/packages/perl.scm:6171
 msgid ""
 "@code{MIME::Charset} provides information about character sets used for\n"
 "MIME messages on Internet."
 msgstr ""
 
-#: gnu/packages/perl.scm:5746
+#: gnu/packages/perl.scm:6198
 msgid "Tools to manipulate MIME messages"
 msgstr ""
 
-#: gnu/packages/perl.scm:5748
+#: gnu/packages/perl.scm:6200
 msgid ""
 "MIME-tools is a collection of Perl5 MIME:: modules for parsing,\n"
 "decoding, and generating single- or multipart (even nested multipart) MIME\n"
 "messages."
 msgstr ""
 
-#: gnu/packages/perl.scm:5767
+#: gnu/packages/perl.scm:6219
 msgid "Definition of MIME types"
 msgstr ""
 
-#: gnu/packages/perl.scm:5768
+#: gnu/packages/perl.scm:6220
 msgid ""
 "This module provides a list of known mime-types, combined\n"
 "from various sources.  For instance, it contains all IANA types and the\n"
 "knowledge of Apache."
 msgstr ""
 
-#: gnu/packages/perl.scm:5790
+#: gnu/packages/perl.scm:6242
 msgid "Write your linewise code for handles; this does the rest"
 msgstr ""
 
-#: gnu/packages/perl.scm:5791
+#: gnu/packages/perl.scm:6243
 msgid ""
 "It's boring to deal with opening files for IO, converting\n"
 "strings to handle-like objects, and all that.  With\n"
@@ -16814,21 +18862,21 @@ msgid ""
 "file names are added for you."
 msgstr ""
 
-#: gnu/packages/perl.scm:5816
+#: gnu/packages/perl.scm:6268
 msgid "Enable all of the features of Modern Perl with one import"
 msgstr ""
 
-#: gnu/packages/perl.scm:5817
+#: gnu/packages/perl.scm:6269
 msgid ""
 "@code{Modern::Perl} provides a simple way to enable\n"
 "multiple, by now, standard libraries in a Perl program."
 msgstr ""
 
-#: gnu/packages/perl.scm:5845
+#: gnu/packages/perl.scm:6297
 msgid "Tiny replacement for Module::Build"
 msgstr ""
 
-#: gnu/packages/perl.scm:5846
+#: gnu/packages/perl.scm:6298
 msgid ""
 "Many Perl distributions use a Build.PL file instead of a\n"
 "Makefile.PL file to drive distribution configuration, build, test and\n"
@@ -16838,22 +18886,22 @@ msgid ""
 "has less than 120, yet supports the features needed by most distributions."
 msgstr ""
 
-#: gnu/packages/perl.scm:5878
+#: gnu/packages/perl.scm:6330
 msgid "The module provides an XS++ enhanced flavour of Module::Build"
 msgstr ""
 
-#: gnu/packages/perl.scm:5879
+#: gnu/packages/perl.scm:6331
 msgid ""
 "This subclass of Module::Build adds some tools and\n"
 "processes to make it easier to use for wrapping C++ using XS++\n"
 "(ExtUtils::XSpp)."
 msgstr ""
 
-#: gnu/packages/perl.scm:5904
+#: gnu/packages/perl.scm:6356
 msgid "Module::Build class for building XS modules"
 msgstr ""
 
-#: gnu/packages/perl.scm:5906
+#: gnu/packages/perl.scm:6358
 msgid ""
 "@code{Module::Build::XSUtil} is subclass of @code{Module::Build}\n"
 "for support building XS modules.\n"
@@ -16877,11 +18925,11 @@ msgid ""
 "@end enumerate"
 msgstr ""
 
-#: gnu/packages/perl.scm:5942
+#: gnu/packages/perl.scm:6394
 msgid "Find and use installed modules in a (sub)category"
 msgstr ""
 
-#: gnu/packages/perl.scm:5943
+#: gnu/packages/perl.scm:6395
 msgid ""
 "Module::Find lets you find and use modules in categories.\n"
 "This can be useful for auto-detecting driver or plugin modules.  You can\n"
@@ -16889,11 +18937,11 @@ msgid ""
 "subcategories."
 msgstr ""
 
-#: gnu/packages/perl.scm:5969
+#: gnu/packages/perl.scm:6421
 msgid "Loads alternate underlying implementations for a module"
 msgstr ""
 
-#: gnu/packages/perl.scm:5970
+#: gnu/packages/perl.scm:6422
 msgid ""
 "This module abstracts out the process of choosing one of\n"
 "several underlying implementations for a module.  This can be used to provide\n"
@@ -16902,11 +18950,11 @@ msgid ""
 "implementations."
 msgstr ""
 
-#: gnu/packages/perl.scm:6008
+#: gnu/packages/perl.scm:6460
 msgid "Standalone, extensible Perl module installer"
 msgstr ""
 
-#: gnu/packages/perl.scm:6009
+#: gnu/packages/perl.scm:6461
 msgid ""
 "Module::Install is a package for writing installers for\n"
 "CPAN (or CPAN-like) distributions that are clean, simple, minimalist, act in a\n"
@@ -16914,11 +18962,11 @@ msgid ""
 "installation version 5.005 or newer."
 msgstr ""
 
-#: gnu/packages/perl.scm:6035
+#: gnu/packages/perl.scm:6487
 msgid "Parse and examine a Perl distribution @file{MANIFEST} file"
 msgstr ""
 
-#: gnu/packages/perl.scm:6037
+#: gnu/packages/perl.scm:6489
 msgid ""
 "@code{Module::Manifest} is a simple utility module created originally for\n"
 "use in @code{Module::Inspector}.\n"
@@ -16928,52 +18976,52 @@ msgid ""
 "@file{MANIFEST.SKIP} file and check that."
 msgstr ""
 
-#: gnu/packages/perl.scm:6060
+#: gnu/packages/perl.scm:6512
 msgid "Give your Perl module the ability to have plugins"
 msgstr ""
 
-#: gnu/packages/perl.scm:6061
+#: gnu/packages/perl.scm:6513
 msgid ""
 "This module provides a simple but extensible way of having\n"
 "@code{plugins} for your Perl module."
 msgstr ""
 
-#: gnu/packages/perl.scm:6080
+#: gnu/packages/perl.scm:6532
 msgid "Perl runtime module handling"
 msgstr ""
 
-#: gnu/packages/perl.scm:6081
+#: gnu/packages/perl.scm:6533
 msgid ""
 "The functions exported by this module deal with runtime\n"
 "handling of Perl modules, which are normally handled at compile time."
 msgstr ""
 
-#: gnu/packages/perl.scm:6104
+#: gnu/packages/perl.scm:6556
 msgid "Provide information on conflicts for Module::Runtime"
 msgstr ""
 
-#: gnu/packages/perl.scm:6105
+#: gnu/packages/perl.scm:6557
 msgid ""
 "This module provides conflicts checking for Module::Runtime,\n"
 "which had a recent release that broke some versions of Moose.  It is called\n"
 "from Moose::Conflicts and moose-outdated."
 msgstr ""
 
-#: gnu/packages/perl.scm:6126
+#: gnu/packages/perl.scm:6578
 msgid "Recursively scan Perl code for dependencies"
 msgstr ""
 
-#: gnu/packages/perl.scm:6127
+#: gnu/packages/perl.scm:6579
 msgid ""
 "Module::ScanDeps is a module to recursively scan Perl\n"
 "programs for dependencies."
 msgstr ""
 
-#: gnu/packages/perl.scm:6147
+#: gnu/packages/perl.scm:6599
 msgid "Module name tools and transformations"
 msgstr ""
 
-#: gnu/packages/perl.scm:6148
+#: gnu/packages/perl.scm:6600
 msgid ""
 "This module provides a few useful functions for manipulating\n"
 "module names.  Its main aim is to centralise some of the functions commonly\n"
@@ -16981,11 +19029,11 @@ msgid ""
 "module names to relative paths."
 msgstr ""
 
-#: gnu/packages/perl.scm:6178
+#: gnu/packages/perl.scm:6630
 msgid "Minimalist Object Orientation (with Moose compatibility)"
 msgstr ""
 
-#: gnu/packages/perl.scm:6179
+#: gnu/packages/perl.scm:6631
 msgid ""
 "Moo is an extremely light-weight Object Orientation system.\n"
 "It allows one to concisely define objects and roles with a convenient syntax\n"
@@ -16993,11 +19041,11 @@ msgid ""
 "Moose and is optimised for rapid startup."
 msgstr ""
 
-#: gnu/packages/perl.scm:6284
+#: gnu/packages/perl.scm:6736
 msgid "Postmodern object system for Perl 5"
 msgstr ""
 
-#: gnu/packages/perl.scm:6286
+#: gnu/packages/perl.scm:6738
 msgid ""
 "Moose is a complete object system for Perl 5.  It provides keywords for\n"
 "attribute declaration, object construction, inheritance, and maybe more.  With\n"
@@ -17008,11 +19056,11 @@ msgid ""
 "sentences."
 msgstr ""
 
-#: gnu/packages/perl.scm:6314
+#: gnu/packages/perl.scm:6766
 msgid "Emulate Class::Accessor::Fast behavior using Moose attributes"
 msgstr ""
 
-#: gnu/packages/perl.scm:6315
+#: gnu/packages/perl.scm:6767
 msgid ""
 "This module attempts to emulate the behavior of\n"
 "Class::Accessor::Fast as accurately as possible using the Moose attribute\n"
@@ -17020,21 +19068,21 @@ msgid ""
 "private methods are not."
 msgstr ""
 
-#: gnu/packages/perl.scm:6349
+#: gnu/packages/perl.scm:6801
 msgid "Moose role for processing command line options"
 msgstr ""
 
-#: gnu/packages/perl.scm:6350
+#: gnu/packages/perl.scm:6802
 msgid ""
 "This is a Moose role which provides an alternate constructor\n"
 "for creating objects using parameters passed in from the command line."
 msgstr ""
 
-#: gnu/packages/perl.scm:6371
+#: gnu/packages/perl.scm:6823
 msgid "Mark overload code symbols as methods"
 msgstr ""
 
-#: gnu/packages/perl.scm:6372
+#: gnu/packages/perl.scm:6824
 msgid ""
 "MooseX::MarkAsMethods allows one to easily mark certain\n"
 "functions as Moose methods.  This will allow other packages such as\n"
@@ -17044,21 +19092,21 @@ msgid ""
 "overloads will \"just work\"."
 msgstr ""
 
-#: gnu/packages/perl.scm:6402
+#: gnu/packages/perl.scm:6854
 msgid "Code attribute introspection"
 msgstr ""
 
-#: gnu/packages/perl.scm:6403
+#: gnu/packages/perl.scm:6855
 msgid ""
 "This module allows code attributes of methods to be\n"
 "introspected using Moose meta method objects."
 msgstr ""
 
-#: gnu/packages/perl.scm:6429
+#: gnu/packages/perl.scm:6881
 msgid "Subclassing of non-Moose classes"
 msgstr ""
 
-#: gnu/packages/perl.scm:6430
+#: gnu/packages/perl.scm:6882
 msgid ""
 "MooseX::NonMoose allows for easily subclassing non-Moose\n"
 "classes with Moose, taking care of the details connected with doing this, such\n"
@@ -17067,31 +19115,31 @@ msgid ""
 "BUILD methods are called.  It tries to be as non-intrusive as possible."
 msgstr ""
 
-#: gnu/packages/perl.scm:6458
+#: gnu/packages/perl.scm:6910
 msgid "Extension of Params::Validate using Moose's types"
 msgstr ""
 
-#: gnu/packages/perl.scm:6459
+#: gnu/packages/perl.scm:6911
 msgid ""
 "This module fills a gap in Moose by adding method parameter\n"
 "validation to Moose."
 msgstr ""
 
-#: gnu/packages/perl.scm:6480
+#: gnu/packages/perl.scm:6932
 msgid "Apply roles to a related Perl class"
 msgstr ""
 
-#: gnu/packages/perl.scm:6481
+#: gnu/packages/perl.scm:6933
 msgid ""
 "This module applies roles to make a subclass instead of\n"
 "manually setting up a subclass."
 msgstr ""
 
-#: gnu/packages/perl.scm:6507
+#: gnu/packages/perl.scm:6959
 msgid "Moose roles with composition parameters"
 msgstr ""
 
-#: gnu/packages/perl.scm:6508
+#: gnu/packages/perl.scm:6960
 msgid ""
 "Because Moose roles serve many different masters, they\n"
 "usually provide only the least common denominator of functionality.  To\n"
@@ -17101,11 +19149,11 @@ msgid ""
 "Parameterized roles offer a solution to these (and other) kinds of problems."
 msgstr ""
 
-#: gnu/packages/perl.scm:6534
+#: gnu/packages/perl.scm:6986
 msgid "Roles which support overloading"
 msgstr ""
 
-#: gnu/packages/perl.scm:6535
+#: gnu/packages/perl.scm:6987
 msgid ""
 "MooseX::Role::WithOverloading allows you to write a\n"
 "Moose::Role which defines overloaded operators and allows those overload\n"
@@ -17113,11 +19161,11 @@ msgid ""
 "where plain Moose::Roles would lose the overloading."
 msgstr ""
 
-#: gnu/packages/perl.scm:6557
+#: gnu/packages/perl.scm:7009
 msgid "Name your accessors foo() and set_foo()"
 msgstr ""
 
-#: gnu/packages/perl.scm:6558
+#: gnu/packages/perl.scm:7010
 msgid ""
 "This module does not provide any methods.  Simply loading it\n"
 "changes the default naming policy for the loading class so that accessors are\n"
@@ -17125,82 +19173,82 @@ msgid ""
 "accessor, while set methods are prefixed with \"_set_\"."
 msgstr ""
 
-#: gnu/packages/perl.scm:6584
+#: gnu/packages/perl.scm:7036
 msgid "Strict object constructors for Moose"
 msgstr ""
 
-#: gnu/packages/perl.scm:6585
+#: gnu/packages/perl.scm:7037
 msgid ""
 "Simply loading this module makes your constructors\n"
 "\"strict\".  If your constructor is called with an attribute init argument\n"
 "that your class does not declare, then it calls Moose->throw_error()."
 msgstr ""
 
-#: gnu/packages/perl.scm:6613
+#: gnu/packages/perl.scm:7065
 msgid "Trait loading and resolution for Moose"
 msgstr ""
 
-#: gnu/packages/perl.scm:6614
+#: gnu/packages/perl.scm:7066
 msgid ""
 "Adds support on top of MooseX::Traits for class precedence\n"
 "search for traits and some extra attributes."
 msgstr ""
 
-#: gnu/packages/perl.scm:6640
+#: gnu/packages/perl.scm:7092
 msgid "Organise your Moose types in libraries"
 msgstr ""
 
-#: gnu/packages/perl.scm:6641
+#: gnu/packages/perl.scm:7093
 msgid ""
 "This package lets you declare types using short names, but\n"
 "behind the scenes it namespaces all your type declarations, effectively\n"
 "prevent name clashes between packages."
 msgstr ""
 
-#: gnu/packages/perl.scm:6672
+#: gnu/packages/perl.scm:7124
 msgid "DateTime related constraints and coercions for Moose"
 msgstr ""
 
-#: gnu/packages/perl.scm:6673
+#: gnu/packages/perl.scm:7125
 msgid ""
 "This module packages several Moose::Util::TypeConstraints\n"
 "with coercions, designed to work with the DateTime suite of objects."
 msgstr ""
 
-#: gnu/packages/perl.scm:6704
+#: gnu/packages/perl.scm:7156
 msgid "Extensions to MooseX::Types::DateTime"
 msgstr ""
 
-#: gnu/packages/perl.scm:6705
+#: gnu/packages/perl.scm:7157
 msgid ""
 "This module builds on MooseX::Types::DateTime to add\n"
 "additional custom types and coercions.  Since it builds on an existing type,\n"
 "all coercions and constraints are inherited."
 msgstr ""
 
-#: gnu/packages/perl.scm:6733
+#: gnu/packages/perl.scm:7185
 msgid "ClassName type constraints for Moose"
 msgstr ""
 
-#: gnu/packages/perl.scm:6734
+#: gnu/packages/perl.scm:7186
 msgid ""
 "MooseX::Types::LoadableClass provides a ClassName type\n"
 "constraint with coercion to load the class."
 msgstr ""
 
-#: gnu/packages/perl.scm:6760
+#: gnu/packages/perl.scm:7212
 msgid "Using Moo and MooX:: packages the most lazy way"
 msgstr ""
 
-#: gnu/packages/perl.scm:6761
+#: gnu/packages/perl.scm:7213
 msgid "Contains the MooX and MooX::Role packages."
 msgstr ""
 
-#: gnu/packages/perl.scm:6787
+#: gnu/packages/perl.scm:7239
 msgid "Giving an easy Moo style way to make command organized CLI apps"
 msgstr ""
 
-#: gnu/packages/perl.scm:6788
+#: gnu/packages/perl.scm:7240
 msgid ""
 "This package eases the writing of command line utilities,\n"
 "accepting commands and subcommands and so on.  These commands can form a tree,\n"
@@ -17209,11 +19257,11 @@ msgid ""
 "most specific one) is instantiated."
 msgstr ""
 
-#: gnu/packages/perl.scm:6821
+#: gnu/packages/perl.scm:7273
 msgid "Moo eXtension for initializing objects from config file"
 msgstr ""
 
-#: gnu/packages/perl.scm:6822
+#: gnu/packages/perl.scm:7274
 msgid ""
 "This module is intended to easily load initialization values\n"
 "for attributes on object construction from an appropriate config file.  The\n"
@@ -17221,33 +19269,33 @@ msgid ""
 "@code{MooX::ConfigFromFile} ensures that the role is applied."
 msgstr ""
 
-#: gnu/packages/perl.scm:6846
+#: gnu/packages/perl.scm:7298
 msgid "Moo eXtension for @code{File::ConfigDir}"
 msgstr ""
 
-#: gnu/packages/perl.scm:6847
+#: gnu/packages/perl.scm:7299
 msgid ""
 "This module is a helper for easily finding configuration\n"
 "file locations.  This information can be used to find a suitable place for\n"
 "installing configuration files or for finding any piece of settings."
 msgstr ""
 
-#: gnu/packages/perl.scm:6882
+#: gnu/packages/perl.scm:7334
 msgid "NativeTrait-like behavior for Moo"
 msgstr ""
 
-#: gnu/packages/perl.scm:6884
+#: gnu/packages/perl.scm:7336
 msgid ""
 "@code{MooX::HandlesVia} is an extension of Moo's @code{handles}\n"
 "attribute functionality.  It provides a means of proxying functionality from\n"
 "an external class to the given attribute."
 msgstr ""
 
-#: gnu/packages/perl.scm:6912
+#: gnu/packages/perl.scm:7364
 msgid "Easily translate Moose code to Moo"
 msgstr ""
 
-#: gnu/packages/perl.scm:6914
+#: gnu/packages/perl.scm:7366
 msgid ""
 "MooX::late does the following:\n"
 "@enumerate\n"
@@ -17261,11 +19309,11 @@ msgid ""
 "@end enumerate"
 msgstr ""
 
-#: gnu/packages/perl.scm:6969
+#: gnu/packages/perl.scm:7421
 msgid "Explicit Options eXtension for Object Class"
 msgstr ""
 
-#: gnu/packages/perl.scm:6970
+#: gnu/packages/perl.scm:7422
 msgid ""
 "Create a command line tool with your Mo, Moo, Moose objects.\n"
 "You have an @code{option} keyword to replace the usual @code{has} to\n"
@@ -17274,43 +19322,43 @@ msgid ""
 "generate a command line tool."
 msgstr ""
 
-#: gnu/packages/perl.scm:6999
+#: gnu/packages/perl.scm:7451
 msgid "Make Moo-based object constructors blow up on unknown attributes"
 msgstr ""
 
-#: gnu/packages/perl.scm:7001
+#: gnu/packages/perl.scm:7453
 msgid ""
 "Loading @code{MooX::StrictConstructor} makes your constructors \"strict\".\n"
 "If your constructor is called with an attribute init argument that your class\n"
 "does not declare, then it dies."
 msgstr ""
 
-#: gnu/packages/perl.scm:7025
+#: gnu/packages/perl.scm:7477
 msgid "Moosish types and type builder"
 msgstr ""
 
-#: gnu/packages/perl.scm:7026
+#: gnu/packages/perl.scm:7478
 msgid ""
 "MooX::Types::MooseLike provides a possibility to build your\n"
 "own set of Moose-like types.  These custom types can then be used to describe\n"
 "fields in Moo-based classes."
 msgstr ""
 
-#: gnu/packages/perl.scm:7055
+#: gnu/packages/perl.scm:7507
 msgid "Fast Moose-compatible object system for perl5"
 msgstr ""
 
-#: gnu/packages/perl.scm:7057
+#: gnu/packages/perl.scm:7509
 msgid ""
 "Mouse is a @code{Moose} compatible object system that implements a\n"
 "subset of the functionality for reduced startup time."
 msgstr ""
 
-#: gnu/packages/perl.scm:7080
+#: gnu/packages/perl.scm:7532
 msgid "Extend attribute interfaces for Mouse"
 msgstr ""
 
-#: gnu/packages/perl.scm:7082
+#: gnu/packages/perl.scm:7534
 msgid ""
 "While @code{Mouse} attributes provide a way to name your accessors,\n"
 "readers, writers, clearers and predicates, @code{MouseX::NativeTraits}\n"
@@ -17318,30 +19366,30 @@ msgid ""
 "of data."
 msgstr ""
 
-#: gnu/packages/perl.scm:7102
+#: gnu/packages/perl.scm:7554
 msgid "Mozilla's CA cert bundle in PEM format"
 msgstr ""
 
-#: gnu/packages/perl.scm:7103
+#: gnu/packages/perl.scm:7555
 msgid ""
 "@code{Mozilla::CA} provides a copy of Mozilla's bundle of\n"
 "Certificate Authority certificates in a form that can be consumed by modules\n"
 "and libraries based on OpenSSL."
 msgstr ""
 
-#: gnu/packages/perl.scm:7129
+#: gnu/packages/perl.scm:7581
 msgid "Disable multidimensional array emulation"
 msgstr ""
 
-#: gnu/packages/perl.scm:7131
+#: gnu/packages/perl.scm:7583
 msgid "Multidimensional disables multidimensional array emulation."
 msgstr ""
 
-#: gnu/packages/perl.scm:7148
+#: gnu/packages/perl.scm:7600
 msgid "MRO interface compatibility for Perls < 5.9.5"
 msgstr ""
 
-#: gnu/packages/perl.scm:7149
+#: gnu/packages/perl.scm:7601
 msgid ""
 "The \"mro\" namespace provides several utilities for dealing\n"
 "with method resolution order and method caching in general in Perl 5.9.5 and\n"
@@ -17349,11 +19397,11 @@ msgid ""
 "Perl (back to 5.6.0)."
 msgstr ""
 
-#: gnu/packages/perl.scm:7175
+#: gnu/packages/perl.scm:7627
 msgid "Keep imports out of your namespace"
 msgstr ""
 
-#: gnu/packages/perl.scm:7176
+#: gnu/packages/perl.scm:7628
 msgid ""
 "The namespace::autoclean pragma will remove all imported\n"
 "symbols at the end of the current package's compile cycle.  Functions called\n"
@@ -17364,11 +19412,11 @@ msgid ""
 "anything that looks like a method."
 msgstr ""
 
-#: gnu/packages/perl.scm:7202
+#: gnu/packages/perl.scm:7654
 msgid "Keep imports and functions out of your namespace"
 msgstr ""
 
-#: gnu/packages/perl.scm:7203
+#: gnu/packages/perl.scm:7655
 msgid ""
 "The namespace::clean pragma will remove all previously\n"
 "declared or imported symbols at the end of the current package's compile\n"
@@ -17376,11 +19424,11 @@ msgid ""
 "name, but they won't show up as methods on your class or instances."
 msgstr ""
 
-#: gnu/packages/perl.scm:7221
+#: gnu/packages/perl.scm:7673
 msgid "Object-oriented API to the BGP protocol"
 msgstr ""
 
-#: gnu/packages/perl.scm:7223
+#: gnu/packages/perl.scm:7675
 msgid ""
 "This module is an implementation of the BGP-4 inter-domain routing protocol.\n"
 "It encapsulates all of the functionality needed to establish and maintain a\n"
@@ -17393,11 +19441,11 @@ msgid ""
 "implemented using the API provided by the module."
 msgstr ""
 
-#: gnu/packages/perl.scm:7248
+#: gnu/packages/perl.scm:7700
 msgid "Non-blocking system DNS resolver"
 msgstr ""
 
-#: gnu/packages/perl.scm:7250
+#: gnu/packages/perl.scm:7702
 msgid ""
 "This class provides several methods for host name resolution.  It is\n"
 "designed to be used with event loops.  Names are resolved by your system's\n"
@@ -17406,11 +19454,11 @@ msgid ""
 "system threads instead of Perl threads."
 msgstr ""
 
-#: gnu/packages/perl.scm:7273
+#: gnu/packages/perl.scm:7725
 msgid "Internationalizing Domain Names in Applications (IDNA)"
 msgstr ""
 
-#: gnu/packages/perl.scm:7275
+#: gnu/packages/perl.scm:7727
 msgid ""
 "Internationalized Domain Names (IDNs) use characters drawn from a large\n"
 "repertoire (Unicode), but IDNA allows the non-ASCII characters to be\n"
@@ -17421,31 +19469,31 @@ msgid ""
 "using whatever IDNA standard is the best choice at the moment."
 msgstr ""
 
-#: gnu/packages/perl.scm:7301
+#: gnu/packages/perl.scm:7753
 msgid "Perl client for Etsy's statsd daemon"
 msgstr ""
 
-#: gnu/packages/perl.scm:7302
+#: gnu/packages/perl.scm:7754
 msgid ""
 "This module implement a UDP client for the statsd statistics\n"
 "collector daemon in use at Etsy.com."
 msgstr ""
 
-#: gnu/packages/perl.scm:7320
+#: gnu/packages/perl.scm:7772
 msgid "Numeric comparisons"
 msgstr ""
 
-#: gnu/packages/perl.scm:7321
+#: gnu/packages/perl.scm:7773
 msgid ""
 "Number::Compare compiles a simple comparison to an anonymous\n"
 "subroutine, which you can call with a value to be tested against."
 msgstr ""
 
-#: gnu/packages/perl.scm:7339
+#: gnu/packages/perl.scm:7791
 msgid "Convert numbers to strings with pretty formatting"
 msgstr ""
 
-#: gnu/packages/perl.scm:7340
+#: gnu/packages/perl.scm:7792
 msgid ""
 "@code{Number::Format} is a library for formatting numbers.\n"
 "Functions are provided for converting numbers to strings in a variety of ways,\n"
@@ -17456,32 +19504,32 @@ msgid ""
 "the locale information or can be specified by the user."
 msgstr ""
 
-#: gnu/packages/perl.scm:7364
+#: gnu/packages/perl.scm:7816
 msgid "Perl extension defining ranges of numbers"
 msgstr ""
 
-#: gnu/packages/perl.scm:7365
+#: gnu/packages/perl.scm:7817
 msgid ""
 "Number::Range is an object-oriented interface to test if a\n"
 "number exists in a given range, and to be able to manipulate the range."
 msgstr ""
 
-#: gnu/packages/perl.scm:7384
+#: gnu/packages/perl.scm:7836
 msgid "Generate cryptographic signatures for objects"
 msgstr ""
 
-#: gnu/packages/perl.scm:7385
+#: gnu/packages/perl.scm:7837
 msgid ""
 "Object::Signature is an abstract base class that you can\n"
 "inherit from in order to allow your objects to generate unique cryptographic\n"
 "signatures."
 msgstr ""
 
-#: gnu/packages/perl.scm:7406
+#: gnu/packages/perl.scm:7858
 msgid "Read and write OLE storage files"
 msgstr ""
 
-#: gnu/packages/perl.scm:7407
+#: gnu/packages/perl.scm:7859
 msgid ""
 "This module allows you to read and write\n"
 "an OLE-Structured file.  @dfn{OLE} (Object Linking and Embedding) is a\n"
@@ -17489,43 +19537,53 @@ msgid ""
 "documents within a single file."
 msgstr ""
 
-#: gnu/packages/perl.scm:7430
+#: gnu/packages/perl.scm:7918
+msgid "Perl bindings to the OpenGL API, GLU, and GLUT/FreeGLUT"
+msgstr ""
+
+#: gnu/packages/perl.scm:7919
+msgid ""
+"The package provides Perl bindings to OpenGL, GLU\n"
+"and FreeGLUT."
+msgstr "Dieses Paket bietet Perl-Anbindungen für OpenGL, GLU und FreeGLUT."
+
+#: gnu/packages/perl.scm:7940
 msgid "Anonymous packages"
 msgstr "Anonyme Pakete"
 
-#: gnu/packages/perl.scm:7431
+#: gnu/packages/perl.scm:7941
 msgid ""
 "This module allows for anonymous packages that are\n"
 "independent of the main namespace and only available through an object\n"
 "instance, not by name."
 msgstr ""
 
-#: gnu/packages/perl.scm:7459
+#: gnu/packages/perl.scm:7969
 msgid "Manage deprecation warnings for your distribution"
 msgstr ""
 
-#: gnu/packages/perl.scm:7460
+#: gnu/packages/perl.scm:7970
 msgid ""
 "This module allows you to manage a set of deprecations for\n"
 "one or more modules."
 msgstr ""
 
-#: gnu/packages/perl.scm:7486
+#: gnu/packages/perl.scm:7996
 msgid "Routines for manipulating stashes"
 msgstr ""
 
-#: gnu/packages/perl.scm:7487
+#: gnu/packages/perl.scm:7997
 msgid ""
 "Manipulating stashes (Perl's symbol tables) is occasionally\n"
 "necessary, but incredibly messy, and easy to get wrong.  This module hides all\n"
 "of that behind a simple API."
 msgstr ""
 
-#: gnu/packages/perl.scm:7509
+#: gnu/packages/perl.scm:8019
 msgid "Faster implementation of the Package::Stash API"
 msgstr ""
 
-#: gnu/packages/perl.scm:7510
+#: gnu/packages/perl.scm:8020
 msgid ""
 "This is a backend for Package::Stash, which provides the\n"
 "functionality in a way that's less buggy and much faster.  It will be used by\n"
@@ -17533,11 +19591,11 @@ msgid ""
 "compiler."
 msgstr ""
 
-#: gnu/packages/perl.scm:7529
+#: gnu/packages/perl.scm:8039
 msgid "Play with other peoples' lexical variables"
 msgstr ""
 
-#: gnu/packages/perl.scm:7530
+#: gnu/packages/perl.scm:8040
 msgid ""
 "PadWalker is a module which allows you to inspect (and even\n"
 "change) lexical variables in any subroutine which called you.  It will only\n"
@@ -17545,22 +19603,22 @@ msgid ""
 "is particularly useful for debugging."
 msgstr ""
 
-#: gnu/packages/perl.scm:7554
+#: gnu/packages/perl.scm:8064
 msgid "Simple parallel processing fork manager"
 msgstr ""
 
-#: gnu/packages/perl.scm:7555
+#: gnu/packages/perl.scm:8065
 msgid ""
 "@code{Parallel::ForkManager} is intended for use in\n"
 "operations that can be done in parallel where the number of\n"
 "processes to be forked off should be limited."
 msgstr ""
 
-#: gnu/packages/perl.scm:7581
+#: gnu/packages/perl.scm:8091
 msgid "Argument type classification"
 msgstr ""
 
-#: gnu/packages/perl.scm:7582
+#: gnu/packages/perl.scm:8092
 msgid ""
 "This module provides various type-testing functions.\n"
 "These are intended for functions that care what type of data they are\n"
@@ -17574,31 +19632,31 @@ msgid ""
 "designed for the more complex job, such as @code{Params::Validate}"
 msgstr ""
 
-#: gnu/packages/perl.scm:7609
+#: gnu/packages/perl.scm:8119
 msgid "Simple, compact and correct param-checking functions"
 msgstr ""
 
-#: gnu/packages/perl.scm:7611
+#: gnu/packages/perl.scm:8121
 msgid ""
 "Params::Util provides a basic set of importable functions that makes\n"
 "checking parameters easier."
 msgstr ""
 
-#: gnu/packages/perl.scm:7635
+#: gnu/packages/perl.scm:8145
 msgid "Validate method/function parameters"
 msgstr ""
 
-#: gnu/packages/perl.scm:7636
+#: gnu/packages/perl.scm:8146
 msgid ""
 "The Params::Validate module allows you to validate method or\n"
 "function call parameters to an arbitrary level of specificity."
 msgstr ""
 
-#: gnu/packages/perl.scm:7663
+#: gnu/packages/perl.scm:8173
 msgid "Build an optimized subroutine parameter validator"
 msgstr ""
 
-#: gnu/packages/perl.scm:7664
+#: gnu/packages/perl.scm:8174
 msgid ""
 "This module creates a customized, highly efficient\n"
 "parameter checking subroutine.  It can handle named or positional\n"
@@ -17607,72 +19665,72 @@ msgid ""
 "defaults, optional parameters, and extra \"slurpy\" parameters."
 msgstr ""
 
-#: gnu/packages/perl.scm:7685
+#: gnu/packages/perl.scm:8195
 msgid "Create and manipulate PAR distributions"
 msgstr ""
 
-#: gnu/packages/perl.scm:7686
+#: gnu/packages/perl.scm:8196
 msgid ""
 "PAR::Dist is a toolkit to create and manipulate PAR\n"
 "distributions."
 msgstr ""
 
-#: gnu/packages/perl.scm:7708
+#: gnu/packages/perl.scm:8218
 msgid "Path specification manipulation"
 msgstr ""
 
-#: gnu/packages/perl.scm:7709
+#: gnu/packages/perl.scm:8219
 msgid ""
 "Path::Class is a module for manipulation of file and\n"
 "directory specifications in a cross-platform manner."
 msgstr ""
 
-#: gnu/packages/perl.scm:7739
+#: gnu/packages/perl.scm:8249
 msgid "Tools for working with directory and file names"
 msgstr ""
 
-#: gnu/packages/perl.scm:7740
+#: gnu/packages/perl.scm:8250
 msgid ""
 "This package provides functions to work with directory and\n"
 "file names."
 msgstr ""
 
-#: gnu/packages/perl.scm:7764
+#: gnu/packages/perl.scm:8274
 msgid "File path utility"
 msgstr ""
 
-#: gnu/packages/perl.scm:7765
+#: gnu/packages/perl.scm:8275
 msgid ""
 "This module provides a small, fast utility for working\n"
 "with file paths."
 msgstr ""
 
-#: gnu/packages/perl.scm:7788
+#: gnu/packages/perl.scm:8298
 msgid "Facilitates the creation and modification of PDF files"
 msgstr ""
 
-#: gnu/packages/perl.scm:7789
+#: gnu/packages/perl.scm:8299
 msgid ""
 "This Perl module facilitates the creation and modification\n"
 "of PDF files."
 msgstr ""
 
-#: gnu/packages/perl.scm:7810
+#: gnu/packages/perl.scm:8320
 msgid "Fast and correct UTF-8 IO"
 msgstr ""
 
-#: gnu/packages/perl.scm:7811
+#: gnu/packages/perl.scm:8321
 msgid ""
 "@code{PerlIO::utf8_strict} provides a fast and correct UTF-8\n"
 "PerlIO layer.  Unlike Perl's default @code{:utf8} layer it checks the input\n"
 "for correctness."
 msgstr ""
 
-#: gnu/packages/perl.scm:7834
+#: gnu/packages/perl.scm:8344
 msgid "Acmeist PEG Parser Framework"
 msgstr ""
 
-#: gnu/packages/perl.scm:7835
+#: gnu/packages/perl.scm:8345
 msgid ""
 "Pegex is an Acmeist parser framework.  It allows you to easily\n"
 "create parsers that will work equivalently in lots of programming languages.\n"
@@ -17682,32 +19740,32 @@ msgid ""
 "available."
 msgstr ""
 
-#: gnu/packages/perl.scm:7859
+#: gnu/packages/perl.scm:8369
 msgid "Check for comprehensive documentation of a module"
 msgstr ""
 
-#: gnu/packages/perl.scm:7860
+#: gnu/packages/perl.scm:8370
 msgid ""
 "This module provides a mechanism for determining if the pod\n"
 "for a given module is comprehensive."
 msgstr ""
 
-#: gnu/packages/perl.scm:7877
+#: gnu/packages/perl.scm:8387
 msgid "Parsing library for text in Pod format"
 msgstr ""
 
-#: gnu/packages/perl.scm:7878
+#: gnu/packages/perl.scm:8388
 msgid ""
 "@code{Pod::Simple} is a Perl library for parsing text in\n"
 "the @dfn{Pod} (plain old documentation) markup language that is typically\n"
 "used for writing documentation for Perl and for Perl modules."
 msgstr ""
 
-#: gnu/packages/perl.scm:7899
+#: gnu/packages/perl.scm:8409
 msgid "GNU C library compatible strftime for loggers and servers"
 msgstr ""
 
-#: gnu/packages/perl.scm:7900
+#: gnu/packages/perl.scm:8410
 msgid ""
 "POSIX::strftime::Compiler provides GNU C library compatible\n"
 "strftime(3).  But this module is not affected by the system locale.  This\n"
@@ -17715,32 +19773,42 @@ msgid ""
 "applications."
 msgstr ""
 
-#: gnu/packages/perl.scm:7918
+#: gnu/packages/perl.scm:8442
+msgid "Parse, analyze and manipulate Perl (without Perl)"
+msgstr ""
+
+#: gnu/packages/perl.scm:8443
+msgid ""
+"The PPI module parses, analyzes and manipulates Perl\n"
+"code."
+msgstr ""
+
+#: gnu/packages/perl.scm:8459
 msgid "Information about the currently running perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:7920
+#: gnu/packages/perl.scm:8461
 msgid ""
 "Probe::Perl provides methods for obtaining information about the\n"
 "currently running perl interpreter.  It originally began life as code in the\n"
 "Module::Build project, but has been externalized here for general use."
 msgstr ""
 
-#: gnu/packages/perl.scm:7947
+#: gnu/packages/perl.scm:8488
 msgid "Interface to external editor from Perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:7948
+#: gnu/packages/perl.scm:8489
 msgid ""
 "This module provides the ability to supply some text to an\n"
 "external text editor, have it edited by the user, and retrieve the results."
 msgstr ""
 
-#: gnu/packages/perl.scm:7967
+#: gnu/packages/perl.scm:8508
 msgid "Create read-only scalars, arrays, hashes"
 msgstr ""
 
-#: gnu/packages/perl.scm:7968
+#: gnu/packages/perl.scm:8509
 msgid ""
 "This module provides a facility for creating non-modifiable\n"
 "variables in Perl.  This is useful for configuration files, headers, etc.  It\n"
@@ -17748,11 +19816,11 @@ msgid ""
 "variables that should not be changed."
 msgstr ""
 
-#: gnu/packages/perl.scm:7988
+#: gnu/packages/perl.scm:8529
 msgid "XS implementation for Ref::Util"
 msgstr ""
 
-#: gnu/packages/perl.scm:7989
+#: gnu/packages/perl.scm:8530
 msgid ""
 "@code{Ref::Util::XS} is the XS implementation of\n"
 "@code{Ref::Util}, which provides several functions to help identify references\n"
@@ -17760,11 +19828,11 @@ msgid ""
 "of @code{ref}."
 msgstr ""
 
-#: gnu/packages/perl.scm:8007
+#: gnu/packages/perl.scm:8548
 msgid "Provide commonly requested regular expressions"
 msgstr ""
 
-#: gnu/packages/perl.scm:8009
+#: gnu/packages/perl.scm:8550
 msgid ""
 "This module exports a single hash (@code{%RE}) that stores or generates\n"
 "commonly needed regular expressions.  Patterns currently provided include:\n"
@@ -17774,11 +19842,11 @@ msgid ""
 "codes."
 msgstr ""
 
-#: gnu/packages/perl.scm:8033
+#: gnu/packages/perl.scm:8574
 msgid "Selection of general-utility regexp subroutines"
 msgstr ""
 
-#: gnu/packages/perl.scm:8034
+#: gnu/packages/perl.scm:8575
 msgid ""
 "This package provides a selection of regular expression\n"
 "subroutines including @code{is_regexp}, @code{regexp_seen_evals},\n"
@@ -17786,29 +19854,29 @@ msgid ""
 "and @code{deserialize_regexp}."
 msgstr ""
 
-#: gnu/packages/perl.scm:8059
+#: gnu/packages/perl.scm:8600
 msgid "Roles, as a slice of Moose"
 msgstr ""
 
-#: gnu/packages/perl.scm:8060
+#: gnu/packages/perl.scm:8601
 msgid "Role::Tiny is a minimalist role composition tool."
 msgstr ""
 
-#: gnu/packages/perl.scm:8090
+#: gnu/packages/perl.scm:8631
 msgid "Call isa, can, does, and DOES safely"
 msgstr ""
 
-#: gnu/packages/perl.scm:8091
+#: gnu/packages/perl.scm:8632
 msgid ""
 "This module allows you to call isa, can, does, and DOES\n"
 "safely on things that may not be objects."
 msgstr ""
 
-#: gnu/packages/perl.scm:8114
+#: gnu/packages/perl.scm:8655
 msgid "String aspects of scalars"
 msgstr ""
 
-#: gnu/packages/perl.scm:8115
+#: gnu/packages/perl.scm:8656
 msgid ""
 "@code{Scalar::String} is about the string part of\n"
 "plain Perl scalars.  A scalar has a string value, which is notionally\n"
@@ -17821,11 +19889,11 @@ msgid ""
 "with a pure Perl backup version for systems that cannot handle XS."
 msgstr ""
 
-#: gnu/packages/perl.scm:8140
+#: gnu/packages/perl.scm:8681
 msgid "Lexically-scoped resource management"
 msgstr ""
 
-#: gnu/packages/perl.scm:8141
+#: gnu/packages/perl.scm:8682
 msgid ""
 "This module provides a convenient way to perform cleanup or\n"
 "other forms of resource management at the end of a scope.  It is particularly\n"
@@ -17836,39 +19904,39 @@ msgid ""
 "collector."
 msgstr ""
 
-#: gnu/packages/perl.scm:8164
+#: gnu/packages/perl.scm:8705
 msgid "Infinite sets"
 msgstr ""
 
-#: gnu/packages/perl.scm:8165
+#: gnu/packages/perl.scm:8706
 msgid "Set::Infinite is a set theory module for infinite sets."
 msgstr ""
 
-#: gnu/packages/perl.scm:8182
+#: gnu/packages/perl.scm:8723
 msgid "Manage sets of integers"
 msgstr ""
 
-#: gnu/packages/perl.scm:8183
+#: gnu/packages/perl.scm:8724
 msgid ""
 "@code{Set::IntSpan} manages sets of integers.  It is\n"
 "optimized for sets that have long runs of consecutive integers."
 msgstr ""
 
-#: gnu/packages/perl.scm:8203
+#: gnu/packages/perl.scm:8744
 msgid "Unordered collections of Perl Objects"
 msgstr ""
 
-#: gnu/packages/perl.scm:8204
+#: gnu/packages/perl.scm:8745
 msgid ""
 "Set::Object provides efficient sets, unordered collections\n"
 "of Perl objects without duplicates for scalars and references."
 msgstr ""
 
-#: gnu/packages/perl.scm:8222
+#: gnu/packages/perl.scm:8763
 msgid "Set operations for Perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:8223
+#: gnu/packages/perl.scm:8764
 msgid ""
 "The first priority of Set::Scalar is to be a convenient\n"
 "interface to sets (as in: unordered collections of Perl scalars).  While not\n"
@@ -17876,21 +19944,21 @@ msgid ""
 "compact."
 msgstr ""
 
-#: gnu/packages/perl.scm:8243
+#: gnu/packages/perl.scm:8784
 msgid "Sort arrays by one or multiple calculated keys"
 msgstr ""
 
-#: gnu/packages/perl.scm:8244
+#: gnu/packages/perl.scm:8785
 msgid ""
 "This Perl module provides various functions to quickly sort\n"
 "arrays by one or multiple calculated keys."
 msgstr ""
 
-#: gnu/packages/perl.scm:8262
+#: gnu/packages/perl.scm:8803
 msgid "Sort lexically, but sort numeral parts numerically"
 msgstr ""
 
-#: gnu/packages/perl.scm:8263
+#: gnu/packages/perl.scm:8804
 msgid ""
 "This module exports two functions, @code{nsort} and\n"
 "@code{ncmp}; they are used in implementing a \"natural sorting\" algorithm.\n"
@@ -17898,11 +19966,11 @@ msgid ""
 "word-characters are compared lexically."
 msgstr ""
 
-#: gnu/packages/perl.scm:8291
+#: gnu/packages/perl.scm:8832
 msgid "Classes for representing type constraints and coercion"
 msgstr ""
 
-#: gnu/packages/perl.scm:8292
+#: gnu/packages/perl.scm:8833
 msgid ""
 "The Specio distribution provides classes for representing type\n"
 "constraints and coercion, along with syntax sugar for declaring them.  Note that\n"
@@ -17913,11 +19981,11 @@ msgid ""
 "coerce values to that type."
 msgstr ""
 
-#: gnu/packages/perl.scm:8315
+#: gnu/packages/perl.scm:8856
 msgid "Spiffy Perl Interface Framework For You"
 msgstr ""
 
-#: gnu/packages/perl.scm:8316
+#: gnu/packages/perl.scm:8857
 msgid ""
 "Spiffy is a framework and methodology for doing object\n"
 "oriented (OO) programming in Perl.  Spiffy combines the best parts of\n"
@@ -17927,21 +19995,21 @@ msgid ""
 "other OO languages like Python, Ruby, Java and Perl 6."
 msgstr ""
 
-#: gnu/packages/perl.scm:8340
+#: gnu/packages/perl.scm:8881
 msgid "Collection of very basic statistics modules"
 msgstr "Sammlung sehr grundlegender Statistik-Module"
 
-#: gnu/packages/perl.scm:8341
+#: gnu/packages/perl.scm:8882
 msgid ""
 "This package provides basic statistics functions like\n"
 "@code{median()}, @code{mean()}, @code{variance()} and @code{stddev()}."
 msgstr ""
 
-#: gnu/packages/perl.scm:8359
+#: gnu/packages/perl.scm:8900
 msgid "Temporary buffer to save bytes"
 msgstr ""
 
-#: gnu/packages/perl.scm:8360
+#: gnu/packages/perl.scm:8901
 msgid ""
 "Stream::Buffered is a buffer class to store arbitrary length\n"
 "of byte strings and then get a seekable filehandle once everything is\n"
@@ -17949,31 +20017,31 @@ msgid ""
 "on the length of the size."
 msgstr ""
 
-#: gnu/packages/perl.scm:8380
+#: gnu/packages/perl.scm:8921
 msgid "Turn on strict and make all warnings fatal"
 msgstr ""
 
-#: gnu/packages/perl.scm:8381
+#: gnu/packages/perl.scm:8922
 msgid ""
 "Strictures turns on strict and make all warnings fatal when\n"
 "run from within a source-controlled directory."
 msgstr ""
 
-#: gnu/packages/perl.scm:8421
+#: gnu/packages/perl.scm:8962
 msgid "Camelcase and de-camelcase"
 msgstr ""
 
-#: gnu/packages/perl.scm:8422
+#: gnu/packages/perl.scm:8963
 msgid ""
 "This module may be used to convert from under_score text to\n"
 "CamelCase and back again."
 msgstr ""
 
-#: gnu/packages/perl.scm:8441
+#: gnu/packages/perl.scm:8982
 msgid "Backslash escapes, quoted phrase, word elision, etc."
 msgstr ""
 
-#: gnu/packages/perl.scm:8442
+#: gnu/packages/perl.scm:8983
 msgid ""
 "This module provides a flexible calling interface to some\n"
 "frequently-performed string conversion functions, including applying and\n"
@@ -17982,63 +20050,63 @@ msgid ""
 "removing double-quotes, and truncating to fit within a desired length."
 msgstr ""
 
-#: gnu/packages/perl.scm:8467
+#: gnu/packages/perl.scm:9008
 msgid "Build your own sprintf-like functions"
 msgstr ""
 
-#: gnu/packages/perl.scm:8469
+#: gnu/packages/perl.scm:9010
 msgid ""
 "@code{String::Formatter} is a tool for building sprintf-like formatting\n"
 "routines.  It supports named or positional formatting, custom conversions,\n"
 "fixed string interpolation, and simple width-matching."
 msgstr ""
 
-#: gnu/packages/perl.scm:8490
+#: gnu/packages/perl.scm:9031
 msgid "Rewrite strings based on a set of known prefixes"
 msgstr ""
 
-#: gnu/packages/perl.scm:8491
+#: gnu/packages/perl.scm:9032
 msgid ""
 "This module allows you to rewrite strings based on a set of\n"
 "known prefixes."
 msgstr ""
 
-#: gnu/packages/perl.scm:8511
+#: gnu/packages/perl.scm:9052
 msgid "Quote strings for passing through a shell"
 msgstr ""
 
-#: gnu/packages/perl.scm:8513
+#: gnu/packages/perl.scm:9054
 msgid ""
 "@code{shell-quote} lets you pass arbitrary strings through the shell so\n"
 "that they won't be changed."
 msgstr ""
 
-#: gnu/packages/perl.scm:8532
+#: gnu/packages/perl.scm:9073
 msgid "String printing alternatives to printf"
 msgstr ""
 
-#: gnu/packages/perl.scm:8534
+#: gnu/packages/perl.scm:9075
 msgid ""
 "This module inserts values into (translated) strings.  It provides\n"
 "@code{printf} and @code{sprintf} alternatives via both an object-oriented and\n"
 "a functional interface."
 msgstr ""
 
-#: gnu/packages/perl.scm:8557
+#: gnu/packages/perl.scm:9098
 msgid "Sophisticated exporter for custom-built routines"
 msgstr ""
 
-#: gnu/packages/perl.scm:8559
+#: gnu/packages/perl.scm:9100
 msgid ""
 "Sub::Exporter provides a sophisticated alternative to Exporter.pm for\n"
 "custom-built routines."
 msgstr ""
 
-#: gnu/packages/perl.scm:8578
+#: gnu/packages/perl.scm:9119
 msgid "Only use Sub::Exporter if you need it"
 msgstr ""
 
-#: gnu/packages/perl.scm:8579
+#: gnu/packages/perl.scm:9120
 msgid ""
 "Sub::Exporter is an incredibly powerful module, but with\n"
 "that power comes great responsibility, as well as some runtime penalties.\n"
@@ -18048,74 +20116,74 @@ msgid ""
 "renaming exports, if they try to use them."
 msgstr ""
 
-#: gnu/packages/perl.scm:8601
+#: gnu/packages/perl.scm:9142
 msgid "Retrieve names of code references"
 msgstr ""
 
-#: gnu/packages/perl.scm:8602
+#: gnu/packages/perl.scm:9143
 msgid ""
 "Sub::Identify allows you to retrieve the real name of code\n"
 "references."
 msgstr ""
 
-#: gnu/packages/perl.scm:8622
+#: gnu/packages/perl.scm:9163
 msgid "Tool to inspect subroutines"
 msgstr ""
 
-#: gnu/packages/perl.scm:8623
+#: gnu/packages/perl.scm:9164
 msgid ""
 "This package provides tools for inspecting subroutines\n"
 "in Perl."
 msgstr ""
 
-#: gnu/packages/perl.scm:8642
+#: gnu/packages/perl.scm:9183
 msgid "Install subroutines into packages easily"
 msgstr ""
 
-#: gnu/packages/perl.scm:8644
+#: gnu/packages/perl.scm:9185
 msgid ""
 "Sub::Install makes it easy to install subroutines into packages without\n"
 "the unsightly mess of C<no strict> or typeglobs lying about where just anyone\n"
 "can see them."
 msgstr ""
 
-#: gnu/packages/perl.scm:8665
+#: gnu/packages/perl.scm:9206
 msgid "(Re)name a sub"
 msgstr ""
 
-#: gnu/packages/perl.scm:8666
+#: gnu/packages/perl.scm:9207
 msgid ""
 "Assigns a new name to referenced sub.  If package\n"
 "specification is omitted in the name, then the current package is used.  The\n"
 "return value is the sub."
 msgstr ""
 
-#: gnu/packages/perl.scm:8689
+#: gnu/packages/perl.scm:9230
 msgid "Efficient generation of subroutines via string eval"
 msgstr ""
 
-#: gnu/packages/perl.scm:8690
+#: gnu/packages/perl.scm:9231
 msgid ""
 "Sub::Quote provides an efficient generation of subroutines\n"
 "via string eval."
 msgstr ""
 
-#: gnu/packages/perl.scm:8708
+#: gnu/packages/perl.scm:9249
 msgid "Apparently run a function in a higher stack frame"
 msgstr ""
 
-#: gnu/packages/perl.scm:8709
+#: gnu/packages/perl.scm:9250
 msgid ""
 "Like Tcl's uplevel() function, but not quite so dangerous.\n"
 "The idea is just to fool caller().  All the really naughty bits of Tcl's\n"
 "uplevel() are avoided."
 msgstr ""
 
-#: gnu/packages/perl.scm:8731
+#: gnu/packages/perl.scm:9272
 msgid "Control superclass method dispatching"
 msgstr ""
 
-#: gnu/packages/perl.scm:8733
+#: gnu/packages/perl.scm:9274
 msgid ""
 "When subclassing a class, you may occasionally want to dispatch control to\n"
 "the superclass---at least conditionally and temporarily.  This module provides\n"
@@ -18124,11 +20192,11 @@ msgid ""
 "support for run-time mix-ins and roles."
 msgstr ""
 
-#: gnu/packages/perl.scm:8753
+#: gnu/packages/perl.scm:9294
 msgid "Perl extension for generating SVG documents"
 msgstr ""
 
-#: gnu/packages/perl.scm:8754
+#: gnu/packages/perl.scm:9295
 msgid ""
 "SVG is a Perl module which generates a nested data structure\n"
 "containing the DOM representation of an SVG (Scalable Vector Graphics) image.\n"
@@ -18137,53 +20205,53 @@ msgid ""
 "animation content."
 msgstr ""
 
-#: gnu/packages/perl.scm:8775
+#: gnu/packages/perl.scm:9316
 msgid "Switch statement for Perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:8776
+#: gnu/packages/perl.scm:9317
 msgid ""
 "Switch is a Perl module which implements a generalized case\n"
 "mechanism.  The module augments the standard Perl syntax with two new\n"
 "statements: @code{switch} and @code{case}."
 msgstr ""
 
-#: gnu/packages/perl.scm:8823
+#: gnu/packages/perl.scm:9364
 msgid "Perl extension for getting CPU information"
 msgstr ""
 
-#: gnu/packages/perl.scm:8825
+#: gnu/packages/perl.scm:9366
 msgid ""
 "Sys::CPU is a module for counting the number of CPUs on a system, and\n"
 "determining their type and clock speed."
 msgstr ""
 
-#: gnu/packages/perl.scm:8845
+#: gnu/packages/perl.scm:9386
 msgid "Get full hostname in Perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:8846
+#: gnu/packages/perl.scm:9387
 msgid ""
 "Sys::Hostname::Long tries very hard to get the full hostname\n"
 "of a system."
 msgstr ""
 
-#: gnu/packages/perl.scm:8865
+#: gnu/packages/perl.scm:9406
 msgid "Access system calls that Perl doesn't normally provide access to"
 msgstr ""
 
-#: gnu/packages/perl.scm:8867
+#: gnu/packages/perl.scm:9408
 msgid ""
 "Sys::Syscall allows one to use epoll and sendfile system calls from\n"
 "Perl.  Support is mostly Linux-only for now, but other syscalls/OSes are\n"
 "planned for the future."
 msgstr ""
 
-#: gnu/packages/perl.scm:8895
+#: gnu/packages/perl.scm:9436
 msgid "Ensure that a platform has weaken support"
 msgstr ""
 
-#: gnu/packages/perl.scm:8896
+#: gnu/packages/perl.scm:9437
 msgid ""
 "One recurring problem in modules that use Scalar::Util's\n"
 "weaken function is that it is not present in the pure-perl variant.  If\n"
@@ -18193,11 +20261,11 @@ msgid ""
 "error encouraging the user to seek support."
 msgstr ""
 
-#: gnu/packages/perl.scm:8921
+#: gnu/packages/perl.scm:9462
 msgid "Template processing system for Perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:8922
+#: gnu/packages/perl.scm:9463
 msgid ""
 "The Template Toolkit is a collection of modules which\n"
 "implement an extensible template processing system.  It was originally\n"
@@ -18206,21 +20274,21 @@ msgid ""
 "documents: HTML, XML, POD, PostScript, LaTeX, and so on."
 msgstr ""
 
-#: gnu/packages/perl.scm:8945
+#: gnu/packages/perl.scm:9486
 msgid "Profiling for Template Toolkit"
 msgstr ""
 
-#: gnu/packages/perl.scm:8946
+#: gnu/packages/perl.scm:9487
 msgid ""
 "Template::Timer provides inline profiling of the template\n"
 "processing in Perl code."
 msgstr ""
 
-#: gnu/packages/perl.scm:8966
+#: gnu/packages/perl.scm:9507
 msgid "Template Toolkit reimplemented in as little code as possible"
 msgstr ""
 
-#: gnu/packages/perl.scm:8968
+#: gnu/packages/perl.scm:9509
 msgid ""
 "@code{Template::Tiny} is a reimplementation of a subset of the\n"
 "functionality from Template Toolkit in as few lines of code as possible.\n"
@@ -18230,32 +20298,32 @@ msgid ""
 "future, or if you want the retain the familiarity of TT-style templates."
 msgstr ""
 
-#: gnu/packages/perl.scm:8992
+#: gnu/packages/perl.scm:9533
 msgid "Detect encoding of the current terminal"
 msgstr ""
 
-#: gnu/packages/perl.scm:8993
+#: gnu/packages/perl.scm:9534
 msgid ""
 "Term::Encoding is a simple module to detect the encoding of\n"
 "the current terminal expects in various ways."
 msgstr ""
 
-#: gnu/packages/perl.scm:9017
+#: gnu/packages/perl.scm:9558
 msgid "Progress meter on a standard terminal"
 msgstr ""
 
-#: gnu/packages/perl.scm:9018
+#: gnu/packages/perl.scm:9559
 msgid ""
 "Term::ProgressBar provides a simple progress bar on the\n"
 "terminal, to let the user know that something is happening, roughly how much\n"
 "stuff has been done, and maybe an estimate at how long remains."
 msgstr ""
 
-#: gnu/packages/perl.scm:9041
+#: gnu/packages/perl.scm:9582
 msgid "Progress meter if run interactively"
 msgstr ""
 
-#: gnu/packages/perl.scm:9042
+#: gnu/packages/perl.scm:9583
 msgid ""
 "Term::ProgressBar is a wonderful module for showing progress\n"
 "bars on the terminal.  This module acts very much like that module when it is\n"
@@ -18263,21 +20331,21 @@ msgid ""
 "a cron job) then it does not show the progress bar."
 msgstr ""
 
-#: gnu/packages/perl.scm:9064
+#: gnu/packages/perl.scm:9605
 msgid "Simple progress bars"
 msgstr ""
 
-#: gnu/packages/perl.scm:9065
+#: gnu/packages/perl.scm:9606
 msgid ""
 "Term::ProgressBar::Simple tells you how much work has been\n"
 "done, how much is left to do, and estimate how long it will take."
 msgstr ""
 
-#: gnu/packages/perl.scm:9083
+#: gnu/packages/perl.scm:9624
 msgid "Simple terminal control"
 msgstr ""
 
-#: gnu/packages/perl.scm:9084
+#: gnu/packages/perl.scm:9625
 msgid ""
 "This module, ReadKey, provides ioctl control for terminals\n"
 "so the input modes can be changed (thus allowing reads of a single character\n"
@@ -18286,11 +20354,11 @@ msgid ""
 "screen size, and retrieval/modification of the control characters."
 msgstr ""
 
-#: gnu/packages/perl.scm:9122
+#: gnu/packages/perl.scm:9663
 msgid "GNU Readline/History Library interface for Perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:9123
+#: gnu/packages/perl.scm:9664
 msgid ""
 "This module implements an interface to the GNU Readline\n"
 "library.  It gives you input line editing facilities, input history management\n"
@@ -18298,11 +20366,11 @@ msgid ""
 "compatible with Term::ReadLine."
 msgstr ""
 
-#: gnu/packages/perl.scm:9147
+#: gnu/packages/perl.scm:9688
 msgid "Retrieve terminal size"
 msgstr ""
 
-#: gnu/packages/perl.scm:9148
+#: gnu/packages/perl.scm:9689
 msgid ""
 "This is a unified interface to retrieve terminal size.  It\n"
 "loads one module of a list of known alternatives, each implementing some way\n"
@@ -18310,62 +20378,62 @@ msgid ""
 "the job on behalf of @code{Term::Size::Any}."
 msgstr ""
 
-#: gnu/packages/perl.scm:9167
+#: gnu/packages/perl.scm:9708
 msgid "Perl extension for retrieving terminal size (Perl version)"
 msgstr ""
 
-#: gnu/packages/perl.scm:9168
+#: gnu/packages/perl.scm:9709
 msgid ""
 "This is yet another implementation of @code{Term::Size}.\n"
 "Now in pure Perl, with the exception of a C probe run at build time."
 msgstr ""
 
-#: gnu/packages/perl.scm:9188
+#: gnu/packages/perl.scm:9729
 msgid "Format a header and rows into a table"
 msgstr ""
 
-#: gnu/packages/perl.scm:9189
+#: gnu/packages/perl.scm:9730
 msgid ""
 "This module is able to generically format rows of data\n"
 "into tables."
 msgstr ""
 
-#: gnu/packages/perl.scm:9207
+#: gnu/packages/perl.scm:9748
 msgid "Align text"
 msgstr ""
 
-#: gnu/packages/perl.scm:9208
+#: gnu/packages/perl.scm:9749
 msgid ""
 "Text::Aligner exports a single function, align(), which is\n"
 "used to justify strings to various alignment styles."
 msgstr ""
 
-#: gnu/packages/perl.scm:9226
+#: gnu/packages/perl.scm:9767
 msgid "Extract delimited text sequences from strings"
 msgstr ""
 
-#: gnu/packages/perl.scm:9227
+#: gnu/packages/perl.scm:9768
 msgid ""
 "The Text::Balanced module can be used to extract delimited\n"
 "text sequences from strings."
 msgstr ""
 
-#: gnu/packages/perl.scm:9244
+#: gnu/packages/perl.scm:9785
 msgid "Manipulate comma-separated values"
 msgstr ""
 
-#: gnu/packages/perl.scm:9245
+#: gnu/packages/perl.scm:9786
 msgid ""
 "Text::CSV provides facilities for the composition and\n"
 "decomposition of comma-separated values.  An instance of the Text::CSV class\n"
 "can combine fields into a CSV string and parse a CSV string into fields."
 msgstr ""
 
-#: gnu/packages/perl.scm:9263
+#: gnu/packages/perl.scm:9804
 msgid "Routines for manipulating CSV files"
 msgstr ""
 
-#: gnu/packages/perl.scm:9264
+#: gnu/packages/perl.scm:9805
 msgid ""
 "@code{Text::CSV_XS} provides facilities for the composition\n"
 "and decomposition of comma-separated values.  An instance of the\n"
@@ -18375,11 +20443,11 @@ msgid ""
 "and escapes."
 msgstr ""
 
-#: gnu/packages/perl.scm:9288
+#: gnu/packages/perl.scm:9829
 msgid "Perform diffs on files and record sets"
 msgstr ""
 
-#: gnu/packages/perl.scm:9289
+#: gnu/packages/perl.scm:9830
 msgid ""
 "Text::Diff provides a basic set of services akin to the GNU\n"
 "diff utility.  It is not anywhere near as feature complete as GNU diff, but it\n"
@@ -18388,44 +20456,65 @@ msgid ""
 "generally slower on larger files."
 msgstr ""
 
-#: gnu/packages/perl.scm:9314
+#: gnu/packages/perl.scm:9855
 msgid "Various subroutines to format text"
 msgstr ""
 
-#: gnu/packages/perl.scm:9315
+#: gnu/packages/perl.scm:9856
 msgid ""
 "This package provides functions to format text in various\n"
 "ways like centering, paragraphing, and converting tabs to spaces and spaces\n"
 "to tabs."
 msgstr ""
 
-#: gnu/packages/perl.scm:9335
+#: gnu/packages/perl.scm:9876
 msgid "Match globbing patterns against text"
 msgstr ""
 
-#: gnu/packages/perl.scm:9336
+#: gnu/packages/perl.scm:9877
 msgid ""
 "Text::Glob implements glob(3) style matching that can be\n"
 "used to match against text, rather than fetching names from a file system.  If\n"
 "you want to do full file globbing use the File::Glob module instead."
 msgstr ""
 
-#: gnu/packages/perl.scm:9359
+#: gnu/packages/perl.scm:9900
+msgid "Haml Perl implementation"
+msgstr ""
+
+#: gnu/packages/perl.scm:9902
+msgid ""
+"Text::Haml implements Haml\n"
+"@url{http://haml.info/docs/yardoc/file.REFERENCE.html} specification."
+msgstr ""
+
+#: gnu/packages/perl.scm:9924
 msgid "Fast, middleweight template engine"
 msgstr ""
 
-#: gnu/packages/perl.scm:9361
+#: gnu/packages/perl.scm:9926
 msgid ""
 "Text::NeatTemplate provides a simple, middleweight but fast\n"
 "template engine, for when you need speed rather than complex features,\n"
 "yet need more features than simple variable substitution."
 msgstr ""
 
-#: gnu/packages/perl.scm:9380
+#: gnu/packages/perl.scm:9946
+msgid "Patches text with given patch"
+msgstr ""
+
+#: gnu/packages/perl.scm:9947
+msgid ""
+"Text::Patch combines source text with given\n"
+"diff (difference) data.  Diff data is produced by Text::Diff module or\n"
+"by the standard @code{diff} utility."
+msgstr ""
+
+#: gnu/packages/perl.scm:9966
 msgid "Convert between Roman and Arabic algorisms"
 msgstr ""
 
-#: gnu/packages/perl.scm:9381
+#: gnu/packages/perl.scm:9967
 msgid ""
 "This package provides functions to convert between Roman and\n"
 "Arabic algorisms.  It supports both conventional Roman algorisms (which range\n"
@@ -18433,27 +20522,27 @@ msgid ""
 "algorism to indicate multiplication by 1000."
 msgstr ""
 
-#: gnu/packages/perl.scm:9400
+#: gnu/packages/perl.scm:9986
 msgid "Simple ASCII tables"
 msgstr ""
 
-#: gnu/packages/perl.scm:9401
+#: gnu/packages/perl.scm:9987
 msgid "Text::SimpleTable draws simple ASCII tables."
 msgstr ""
 
-#: gnu/packages/perl.scm:9422
+#: gnu/packages/perl.scm:10008
 msgid "Organize Data in Tables"
 msgstr ""
 
-#: gnu/packages/perl.scm:9423
+#: gnu/packages/perl.scm:10009
 msgid "Text::Table renders plaintext tables."
 msgstr ""
 
-#: gnu/packages/perl.scm:9447
+#: gnu/packages/perl.scm:10033
 msgid "Expand template text with embedded Perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:9449
+#: gnu/packages/perl.scm:10035
 msgid ""
 "This is a library for generating letters, building HTML pages, or\n"
 "filling in templates generally.  A template is a piece of text that has little\n"
@@ -18461,11 +20550,11 @@ msgid ""
 "evaluate the little programs and replace them with their values."
 msgstr ""
 
-#: gnu/packages/perl.scm:9468
+#: gnu/packages/perl.scm:10054
 msgid "Provide plain ASCII transliterations of Unicode text"
 msgstr ""
 
-#: gnu/packages/perl.scm:9469
+#: gnu/packages/perl.scm:10055
 msgid ""
 "Text::Unidecode provides a function, unidecode(...) that\n"
 "takes Unicode data and tries to represent it in US-ASCII characters (i.e., the\n"
@@ -18475,29 +20564,29 @@ msgid ""
 "system."
 msgstr ""
 
-#: gnu/packages/perl.scm:9490
+#: gnu/packages/perl.scm:10076
 msgid "Perl interpreter-based threads"
 msgstr ""
 
-#: gnu/packages/perl.scm:9491
+#: gnu/packages/perl.scm:10077
 msgid "This module exposes interpreter threads to the Perl level."
 msgstr ""
 
-#: gnu/packages/perl.scm:9514
+#: gnu/packages/perl.scm:10100
 msgid "Role for classes that can be thrown"
 msgstr ""
 
-#: gnu/packages/perl.scm:9515
+#: gnu/packages/perl.scm:10101
 msgid ""
 "Throwable is a role for classes that are meant to be thrown\n"
 "as exceptions to standard program flow."
 msgstr ""
 
-#: gnu/packages/perl.scm:9532
+#: gnu/packages/perl.scm:10118
 msgid "Perl script tidier"
 msgstr ""
 
-#: gnu/packages/perl.scm:9533
+#: gnu/packages/perl.scm:10119
 msgid ""
 "This package contains a Perl script which indents and\n"
 "reformats Perl scripts to make them easier to read.   The formatting can be\n"
@@ -18505,21 +20594,21 @@ msgid ""
 "approximately follow the suggestions in the Perl Style Guide."
 msgstr ""
 
-#: gnu/packages/perl.scm:9553
+#: gnu/packages/perl.scm:10139
 msgid "Cycle through a list of values"
 msgstr ""
 
-#: gnu/packages/perl.scm:9554
+#: gnu/packages/perl.scm:10140
 msgid ""
 "You use @code{Tie::Cycle} to go through a list over and over\n"
 "again.  Once you get to the end of the list, you go back to the beginning."
 msgstr ""
 
-#: gnu/packages/perl.scm:9573
+#: gnu/packages/perl.scm:10159
 msgid "Ordered associative arrays for Perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:9574
+#: gnu/packages/perl.scm:10160
 msgid ""
 "This Perl module implements Perl hashes that preserve the\n"
 "order in which the hash elements were added.  The order is not affected when\n"
@@ -18528,63 +20617,79 @@ msgid ""
 "operations can also be performed on the IxHash."
 msgstr ""
 
-#: gnu/packages/perl.scm:9597
+#: gnu/packages/perl.scm:10183
 msgid "Special file handle that hides the beginning of a file"
 msgstr ""
 
-#: gnu/packages/perl.scm:9599
+#: gnu/packages/perl.scm:10185
 msgid ""
 "This modules provides a file handle that hides the beginning of a file,\n"
 "by modifying the @code{seek()} and @code{tell()} calls."
 msgstr ""
 
-#: gnu/packages/perl.scm:9619
+#: gnu/packages/perl.scm:10202
+msgid "Variable ties made much easier"
+msgstr ""
+
+#: gnu/packages/perl.scm:10204
+msgid ""
+"This module adds the ability to quickly create new types of tie objects\n"
+"without creating a complete class.  It does so in such a way as to try and\n"
+"make the programmers life easier when it comes to single-use ties that I find\n"
+"myself wanting to use from time-to-time.\n"
+"\n"
+"The Tie::Simple package is actually a front-end to other classes which really\n"
+"do all the work once tied, but this package does the dwimming to automatically\n"
+"figure out what you're trying to do."
+msgstr ""
+
+#: gnu/packages/perl.scm:10230
 msgid "Tie to an existing Perl object"
 msgstr ""
 
-#: gnu/packages/perl.scm:9620
+#: gnu/packages/perl.scm:10231
 msgid ""
 "This class provides a tie constructor that returns the\n"
 "object it was given as it's first argument.  This way side effects of calling\n"
 "$object->TIEHASH are avoided."
 msgstr ""
 
-#: gnu/packages/perl.scm:9642
+#: gnu/packages/perl.scm:10253
 msgid "English expression of durations"
 msgstr ""
 
-#: gnu/packages/perl.scm:9643
+#: gnu/packages/perl.scm:10254
 msgid ""
 "This module provides functions for expressing durations in\n"
 "rounded or exact terms."
 msgstr ""
 
-#: gnu/packages/perl.scm:9664
+#: gnu/packages/perl.scm:10275
 msgid "Parse time duration strings"
 msgstr ""
 
-#: gnu/packages/perl.scm:9665
+#: gnu/packages/perl.scm:10276
 msgid ""
 "Time::Duration::Parse is a module to parse human readable\n"
 "duration strings like \"2 minutes\" and \"3 seconds\" to seconds."
 msgstr ""
 
-#: gnu/packages/perl.scm:9683
-msgid "High resolution alarm, sleep, gettimeofday, interval timers"
+#: gnu/packages/perl.scm:10294
+msgid "High-resolution alarm, sleep, gettimeofday, and interval timers"
 msgstr ""
 
-#: gnu/packages/perl.scm:9684
+#: gnu/packages/perl.scm:10295
 msgid ""
 "This package implements @code{usleep}, @code{ualarm}, and\n"
 "@code{gettimeofday} for Perl, as well as wrappers to implement @code{time},\n"
 "@code{sleep}, and @code{alarm} that know about non-integral seconds."
 msgstr ""
 
-#: gnu/packages/perl.scm:9703
+#: gnu/packages/perl.scm:10314
 msgid "Efficiently compute time from local and GMT time"
 msgstr ""
 
-#: gnu/packages/perl.scm:9704
+#: gnu/packages/perl.scm:10315
 msgid ""
 "This module provides functions that are the inverse of\n"
 "built-in perl functions localtime() and gmtime().  They accept a date as a\n"
@@ -18592,11 +20697,11 @@ msgid ""
 "the system epoch."
 msgstr ""
 
-#: gnu/packages/perl.scm:9724
+#: gnu/packages/perl.scm:10335
 msgid "Object-Oriented time objects"
 msgstr ""
 
-#: gnu/packages/perl.scm:9726
+#: gnu/packages/perl.scm:10337
 msgid ""
 "This module replaces the standard @code{localtime} and @code{gmtime}\n"
 "functions with implementations that return objects.  It does so in a\n"
@@ -18604,62 +20709,62 @@ msgid ""
 "still work as expected."
 msgstr ""
 
-#: gnu/packages/perl.scm:9745
+#: gnu/packages/perl.scm:10356
 msgid "Date parsing/formatting subroutines"
 msgstr ""
 
-#: gnu/packages/perl.scm:9746
+#: gnu/packages/perl.scm:10357
 msgid ""
 "This module provides routines for parsing date string into\n"
 "time values and formatting dates into ASCII strings."
 msgstr ""
 
-#: gnu/packages/perl.scm:9768
+#: gnu/packages/perl.scm:10379
 msgid "Shift and scale time"
 msgstr ""
 
-#: gnu/packages/perl.scm:9769
+#: gnu/packages/perl.scm:10380
 msgid ""
 "This module allows you to speed up your sleep(), alarm(),\n"
 "and time() calls."
 msgstr ""
 
-#: gnu/packages/perl.scm:9791
+#: gnu/packages/perl.scm:10402
 msgid "Simple tree object"
 msgstr ""
 
-#: gnu/packages/perl.scm:9792
+#: gnu/packages/perl.scm:10403
 msgid ""
 "This module in a fully object-oriented implementation of a\n"
 "simple n-ary tree."
 msgstr ""
 
-#: gnu/packages/perl.scm:9814
+#: gnu/packages/perl.scm:10425
 msgid "Factory object for dispensing Visitor objects"
 msgstr ""
 
-#: gnu/packages/perl.scm:9815
+#: gnu/packages/perl.scm:10426
 msgid ""
 "This module is a factory for dispensing\n"
 "Tree::Simple::Visitor::* objects."
 msgstr ""
 
-#: gnu/packages/perl.scm:9833
+#: gnu/packages/perl.scm:10444
 msgid "Minimal try/catch with proper preservation of $@@"
 msgstr ""
 
-#: gnu/packages/perl.scm:9834
+#: gnu/packages/perl.scm:10445
 msgid ""
 "This module provides bare bones try/catch/finally statements\n"
 "that are designed to minimize common mistakes with eval blocks, and nothing\n"
 "else."
 msgstr ""
 
-#: gnu/packages/perl.scm:9858
+#: gnu/packages/perl.scm:10469
 msgid "Tie a variable to a type constraint"
 msgstr ""
 
-#: gnu/packages/perl.scm:9859
+#: gnu/packages/perl.scm:10470
 msgid ""
 "This module exports a single function: @code{ttie}.  It ties\n"
 "a variable to a type constraint, ensuring that whatever values stored in the\n"
@@ -18668,11 +20773,11 @@ msgid ""
 "variable conform."
 msgstr ""
 
-#: gnu/packages/perl.scm:9891
+#: gnu/packages/perl.scm:10502
 msgid "Tiny, yet Moo(se)-compatible type constraint"
 msgstr ""
 
-#: gnu/packages/perl.scm:9892
+#: gnu/packages/perl.scm:10503
 msgid ""
 "@code{Type::Tiny} is a small class for writing type\n"
 "constraints, inspired by Moose's type constraint API.  It has only one\n"
@@ -18681,11 +20786,11 @@ msgid ""
 "be used with Moose, Mouse and Moo (or none of the above)."
 msgstr ""
 
-#: gnu/packages/perl.scm:9912
+#: gnu/packages/perl.scm:10523
 msgid "Provides an XS boost for some of Type::Tiny's built-in type constraints"
 msgstr ""
 
-#: gnu/packages/perl.scm:9913
+#: gnu/packages/perl.scm:10524
 msgid ""
 "This module is optionally used by @code{Type::Tiny} to\n"
 "provide faster, C-based implementations of some type constraints.  This\n"
@@ -18693,11 +20798,11 @@ msgid ""
 "so other data validation frameworks might also consider using it."
 msgstr ""
 
-#: gnu/packages/perl.scm:9937
+#: gnu/packages/perl.scm:10548
 msgid "Types and coercions for Moose and Moo"
 msgstr ""
 
-#: gnu/packages/perl.scm:9938
+#: gnu/packages/perl.scm:10549
 msgid ""
 "This module provides @code{Path::Tiny} types for Moose, Moo,\n"
 "etc.  It handles two important types of coercion: coercing objects with\n"
@@ -18705,91 +20810,91 @@ msgid ""
 "to ensure that files or directories exist."
 msgstr ""
 
-#: gnu/packages/perl.scm:9960
+#: gnu/packages/perl.scm:10571
 msgid "Data types for common serialisation formats"
 msgstr ""
 
-#: gnu/packages/perl.scm:9961
+#: gnu/packages/perl.scm:10572
 msgid ""
 "This module provides some extra datatypes that are used by\n"
 "common serialisation formats such as JSON or CBOR."
 msgstr ""
 
-#: gnu/packages/perl.scm:9988
+#: gnu/packages/perl.scm:10599
 msgid "Unicode normalization forms"
 msgstr ""
 
-#: gnu/packages/perl.scm:9989
+#: gnu/packages/perl.scm:10600
 msgid "This Perl module provides Unicode normalization forms."
 msgstr ""
 
-#: gnu/packages/perl.scm:10017
+#: gnu/packages/perl.scm:10628
 msgid "Unicode collation algorithm"
 msgstr ""
 
-#: gnu/packages/perl.scm:10018
+#: gnu/packages/perl.scm:10629
 msgid ""
 "This package provides tools for sorting and comparing\n"
 "Unicode data."
 msgstr ""
 
-#: gnu/packages/perl.scm:10039
+#: gnu/packages/perl.scm:10650
 msgid "Unicode line breaking algorithm"
 msgstr ""
 
-#: gnu/packages/perl.scm:10041
+#: gnu/packages/perl.scm:10652
 msgid ""
 "@code{Unicode::LineBreak} implements the line breaking algorithm\n"
 "described in Unicode Standard Annex #14.  The @code{East_Asian_Width} property\n"
 "defined by Annex #11 is used to determine breaking positions."
 msgstr ""
 
-#: gnu/packages/perl.scm:10067
+#: gnu/packages/perl.scm:10678
 msgid "Encoding and decoding of UTF-8 encoding form"
 msgstr ""
 
-#: gnu/packages/perl.scm:10069
+#: gnu/packages/perl.scm:10680
 msgid ""
 "This module provides functions to encode and decode UTF-8 encoding form\n"
 "as specified by Unicode and ISO/IEC 10646:2011."
 msgstr ""
 
-#: gnu/packages/perl.scm:10087
+#: gnu/packages/perl.scm:10698
 msgid "UNIVERSAL::can() reimplementation"
 msgstr ""
 
-#: gnu/packages/perl.scm:10088
+#: gnu/packages/perl.scm:10699
 msgid ""
 "This module attempts to work around people calling\n"
 "UNIVERSAL::can() as a function, which it is not."
 msgstr ""
 
-#: gnu/packages/perl.scm:10108
+#: gnu/packages/perl.scm:10719
 msgid "UNIVERSAL::isa() reimplementation"
 msgstr ""
 
-#: gnu/packages/perl.scm:10109
+#: gnu/packages/perl.scm:10720
 msgid ""
 "This module attempts to recover from people calling\n"
 "UNIVERSAL::isa as a function."
 msgstr ""
 
-#: gnu/packages/perl.scm:10128
+#: gnu/packages/perl.scm:10739
 msgid "Require modules from a variable"
 msgstr ""
 
-#: gnu/packages/perl.scm:10129
+#: gnu/packages/perl.scm:10740
 msgid ""
 "This module lets you require other modules where the module\n"
 "name is in a variable, something you can't do with the @code{require}\n"
 "built-in."
 msgstr ""
 
-#: gnu/packages/perl.scm:10148
+#: gnu/packages/perl.scm:10759
 msgid "Associate user-defined magic to variables from Perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:10149
+#: gnu/packages/perl.scm:10760
 msgid ""
 "Magic is Perl's way of enhancing variables.  This mechanism\n"
 "lets the user add extra data to any variable and hook syntactical\n"
@@ -18798,11 +20903,11 @@ msgid ""
 "having to write a single line of XS."
 msgstr ""
 
-#: gnu/packages/perl.scm:10172
+#: gnu/packages/perl.scm:10783
 msgid "Easily generate well-formed, namespace-aware XML"
 msgstr ""
 
-#: gnu/packages/perl.scm:10173
+#: gnu/packages/perl.scm:10784
 msgid ""
 "@code{XML::Writer} is a simple Perl module for writing XML\n"
 "documents: it takes care of constructing markup and escaping data correctly.\n"
@@ -18812,11 +20917,11 @@ msgid ""
 "attribute names."
 msgstr ""
 
-#: gnu/packages/perl.scm:10200
+#: gnu/packages/perl.scm:10811
 msgid "Opaque, extensible XS pointer backed objects using sv_magic"
 msgstr ""
 
-#: gnu/packages/perl.scm:10202
+#: gnu/packages/perl.scm:10813
 msgid ""
 "This way of associating structs with Perl space objects is designed to\n"
 "supersede Perl's builtin @code{T_PTROBJ} with something that is extensible\n"
@@ -18824,62 +20929,62 @@ msgid ""
 "neither visible nor modifiable from Perl space)."
 msgstr ""
 
-#: gnu/packages/perl.scm:10223
+#: gnu/packages/perl.scm:10834
 msgid "YAML for Perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:10224
+#: gnu/packages/perl.scm:10835
 msgid ""
 "The YAML.pm module implements a YAML Loader and Dumper based\n"
 "on the YAML 1.0 specification."
 msgstr ""
 
-#: gnu/packages/perl.scm:10242
+#: gnu/packages/perl.scm:10853
 msgid "Perl YAML Serialization using XS and libyaml"
 msgstr ""
 
-#: gnu/packages/perl.scm:10244
+#: gnu/packages/perl.scm:10855
 msgid ""
 "@code{YAML::XS} is a Perl XS binding to libyaml which offers Perl the\n"
 "best YAML support to date."
 msgstr ""
 
-#: gnu/packages/perl.scm:10267
+#: gnu/packages/perl.scm:10878
 msgid "Read/Write YAML files"
 msgstr ""
 
-#: gnu/packages/perl.scm:10268
+#: gnu/packages/perl.scm:10879
 msgid ""
 "YAML::Tiny is a perl class for reading and writing\n"
 "YAML-style files, written with as little code as possible, reducing load time\n"
 "and memory overhead."
 msgstr ""
 
-#: gnu/packages/perl.scm:10292
+#: gnu/packages/perl.scm:10903
 msgid "Generate recursive-descent parsers"
 msgstr ""
 
-#: gnu/packages/perl.scm:10294
+#: gnu/packages/perl.scm:10905
 msgid ""
 "@code{Parse::RecDescent} can incrementally generate top-down\n"
 "recursive-descent text parsers from simple yacc-like grammar specifications."
 msgstr ""
 
-#: gnu/packages/perl.scm:10314
+#: gnu/packages/perl.scm:10925
 msgid "Generate and use LALR parsers"
 msgstr ""
 
-#: gnu/packages/perl.scm:10315
+#: gnu/packages/perl.scm:10926
 msgid ""
 "This package compiles yacc-like @dfn{Look Ahead LR} (LALR)\n"
 "grammars to generate Perl object oriented parser modules."
 msgstr ""
 
-#: gnu/packages/perl.scm:10341
+#: gnu/packages/perl.scm:10952
 msgid "Distribution metadata for a CPAN dist"
 msgstr ""
 
-#: gnu/packages/perl.scm:10342
+#: gnu/packages/perl.scm:10953
 msgid ""
 "Software distributions released to the CPAN include a\n"
 "META.json or, for older distributions, META.yml, which describes the\n"
@@ -18890,11 +20995,11 @@ msgid ""
 "methods for interrogating that data."
 msgstr ""
 
-#: gnu/packages/perl.scm:10365
+#: gnu/packages/perl.scm:10976
 msgid "Set of version requirements for a CPAN dist"
 msgstr ""
 
-#: gnu/packages/perl.scm:10366
+#: gnu/packages/perl.scm:10977
 msgid ""
 "A CPAN::Meta::Requirements object models a set of version\n"
 "constraints like those specified in the META.yml or META.json files in CPAN\n"
@@ -18903,22 +21008,22 @@ msgid ""
 "representation."
 msgstr ""
 
-#: gnu/packages/perl.scm:10389
+#: gnu/packages/perl.scm:11000
 msgid "Read and write a subset of YAML for CPAN Meta files"
 msgstr ""
 
-#: gnu/packages/perl.scm:10390
+#: gnu/packages/perl.scm:11001
 msgid ""
 "This module implements a subset of the YAML specification\n"
 "for use in reading and writing CPAN metadata files like META.yml and\n"
 "MYMETA.yml."
 msgstr ""
 
-#: gnu/packages/perl.scm:10411
+#: gnu/packages/perl.scm:11022
 msgid "Build and install Perl modules"
 msgstr ""
 
-#: gnu/packages/perl.scm:10412
+#: gnu/packages/perl.scm:11023
 msgid ""
 "@code{Module::Build} is a system for building, testing, and\n"
 "installing Perl modules; it used to be part of Perl itself until version 5.22,\n"
@@ -18929,21 +21034,21 @@ msgid ""
 "system---most of the @code{Module::Build} code is pure-Perl."
 msgstr ""
 
-#: gnu/packages/perl.scm:10438
+#: gnu/packages/perl.scm:11049
 msgid "Parse META.yml and META.json CPAN metadata files"
 msgstr ""
 
-#: gnu/packages/perl.scm:10439
+#: gnu/packages/perl.scm:11050
 msgid ""
 "Parse::CPAN::Meta is a parser for META.json and META.yml\n"
 "files, using JSON::PP and/or CPAN::Meta::YAML."
 msgstr ""
 
-#: gnu/packages/perl.scm:10456
+#: gnu/packages/perl.scm:11067
 msgid "Common Scalar and List utility subroutines"
 msgstr ""
 
-#: gnu/packages/perl.scm:10457
+#: gnu/packages/perl.scm:11068
 msgid ""
 "This package contains a selection of subroutines that people\n"
 "have expressed would be nice to have in the perl core, but the usage would not\n"
@@ -18951,39 +21056,51 @@ msgid ""
 "such that being individual extensions would be wasteful."
 msgstr ""
 
-#: gnu/packages/perl.scm:10481
+#: gnu/packages/perl.scm:11106
+msgid "SDL bindings to Perl"
+msgstr "SDL-Anbindungen für Perl"
+
+#: gnu/packages/perl.scm:11108
+msgid ""
+"SDL Perl is a package of Perl modules that provide both functional and\n"
+"object oriented interfaces to the Simple DirectMedia Layer for Perl5.  This\n"
+"package takes some liberties with the SDL API, and attempts to adhere to the\n"
+"spirit of both the SDL and Perl."
+msgstr ""
+
+#: gnu/packages/perl.scm:11132
 msgid "Cross-platform functions emulating common shell commands"
 msgstr ""
 
-#: gnu/packages/perl.scm:10483
+#: gnu/packages/perl.scm:11134
 msgid "Shell::Command is a thin wrapper around ExtUtils::Command."
 msgstr ""
 
-#: gnu/packages/perl.scm:10510
+#: gnu/packages/perl.scm:11160
 msgid "Object-oriented File::Find replacement in Perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:10511
+#: gnu/packages/perl.scm:11161
 msgid ""
 "File::Find::Object is an object-oriented\n"
 "File::Find replacement in Perl."
 msgstr ""
 
-#: gnu/packages/perl.scm:10539
+#: gnu/packages/perl.scm:11189
 msgid "Alternative interface to File::Find::Object"
 msgstr ""
 
-#: gnu/packages/perl.scm:10540
+#: gnu/packages/perl.scm:11190
 msgid ""
 "File::Find::Object::Rule is an alternative Perl\n"
 "interface to File::Find::Object."
 msgstr ""
 
-#: gnu/packages/perl.scm:10561
+#: gnu/packages/perl.scm:11211
 msgid "Wrapper for @code{File::Find} ala @code{find(1)}"
 msgstr ""
 
-#: gnu/packages/perl.scm:10563
+#: gnu/packages/perl.scm:11213
 msgid ""
 "@code{File::Find} is great, but constructing the wanted routine can\n"
 "sometimes be a pain.  @code{File::Finder} provides a wanted-writer, using\n"
@@ -18998,11 +21115,11 @@ msgid ""
 "used as the head of many different sequences."
 msgstr ""
 
-#: gnu/packages/perl.scm:10592
+#: gnu/packages/perl.scm:11242
 msgid "TTF font support for Perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:10593
+#: gnu/packages/perl.scm:11243
 msgid ""
 "This package provides a Perl module for TrueType/OpenType\n"
 "font hacking.  It supports reading, processing and writing of the following\n"
@@ -19011,22 +21128,22 @@ msgid ""
 "prop, vhea, vmtx and the reading and writing of all other table types."
 msgstr ""
 
-#: gnu/packages/perl.scm:10631
+#: gnu/packages/perl.scm:11281
 msgid "Collection of Perl modules for time/date manipulation"
 msgstr ""
 
-#: gnu/packages/perl.scm:10632
+#: gnu/packages/perl.scm:11282
 msgid ""
 "Provides several perl modules for date/time manipulation:\n"
 "@code{Time::CTime.pm}, @code{Time::JulianDay.pm}, @code{Time::ParseDate.pm},\n"
 "@code{Time::Timezone.pm}, and @code{Time::DaysInMonth.pm}."
 msgstr ""
 
-#: gnu/packages/perl.scm:10661
+#: gnu/packages/perl.scm:11311
 msgid "Perl library for testing if a time() is in a specific period"
 msgstr ""
 
-#: gnu/packages/perl.scm:10662
+#: gnu/packages/perl.scm:11312
 msgid ""
 "This Perl library provides a function which tells whether a\n"
 "specific time falls within a specified time period.  Its syntax for specifying\n"
@@ -19036,11 +21153,11 @@ msgid ""
 "1998\"."
 msgstr ""
 
-#: gnu/packages/perl.scm:10693
+#: gnu/packages/perl.scm:11343
 msgid "Iterative, recursive file finder"
 msgstr ""
 
-#: gnu/packages/perl.scm:10694
+#: gnu/packages/perl.scm:11344
 msgid ""
 "Path::Iterator::Rule iterates over files and directories to\n"
 "identify ones matching a user-defined set of rules.  The API is based heavily\n"
@@ -19067,11 +21184,11 @@ msgid ""
 "arduous to type for one-liners."
 msgstr ""
 
-#: gnu/packages/perl.scm:10734
+#: gnu/packages/perl.scm:11384
 msgid "Include constants from POD"
 msgstr ""
 
-#: gnu/packages/perl.scm:10735
+#: gnu/packages/perl.scm:11385
 msgid ""
 "This module allows you to specify those constants that\n"
 "should be documented in your POD, and pull them out a run time in a fairly\n"
@@ -19083,116 +21200,116 @@ msgid ""
 "(or it can't find %INC{caller()})."
 msgstr ""
 
-#: gnu/packages/perl.scm:10761
+#: gnu/packages/perl.scm:11411
 msgid "Collection of regexp patterns"
 msgstr ""
 
-#: gnu/packages/perl.scm:10762
+#: gnu/packages/perl.scm:11412
 msgid ""
 "Regexp::Pattern is a convention for organizing reusable\n"
 "regexp patterns in modules."
 msgstr ""
 
-#: gnu/packages/perl.scm:10786
+#: gnu/packages/perl.scm:11436
 msgid "Parse Lisp S-Expressions into Perl data structures"
 msgstr ""
 
-#: gnu/packages/perl.scm:10787
+#: gnu/packages/perl.scm:11437
 msgid ""
 "Data::SExpression parses Lisp S-Expressions into Perl data\n"
 "structures."
 msgstr ""
 
-#: gnu/packages/photo.scm:160
+#: gnu/packages/photo.scm:170
 msgid "Import photos and videos from cameras, phones and memory cards"
 msgstr ""
 
-#: gnu/packages/photo.scm:161
+#: gnu/packages/photo.scm:171
 msgid ""
 "Import photos and videos from cameras, phones and memory\n"
 "cards and generate meaningful file and folder names."
 msgstr ""
 
-#: gnu/packages/photo.scm:184
+#: gnu/packages/photo.scm:194
 msgid "Raw image decoder"
 msgstr ""
 
-#: gnu/packages/photo.scm:186
+#: gnu/packages/photo.scm:196
 msgid ""
 "LibRaw is a library for reading RAW files obtained from digital photo\n"
 "cameras (CRW/CR2, NEF, RAF, DNG, and others)."
 msgstr ""
 
-#: gnu/packages/photo.scm:222
+#: gnu/packages/photo.scm:232
 msgid "Read and manipulate EXIF data in digital photographs"
 msgstr ""
 
-#: gnu/packages/photo.scm:224
+#: gnu/packages/photo.scm:234
 msgid ""
 "The libexif C library allows applications to read, edit, and save EXIF\n"
 "data as produced by digital cameras."
 msgstr ""
 
-#: gnu/packages/photo.scm:250
+#: gnu/packages/photo.scm:260
 msgid "Accessing digital cameras"
 msgstr ""
 
-#: gnu/packages/photo.scm:252
+#: gnu/packages/photo.scm:262
 msgid ""
 "This is the library backend for gphoto2.  It contains the code for PTP,\n"
 "MTP, and other vendor specific protocols for controlling and transferring data\n"
 "from digital cameras."
 msgstr ""
 
-#: gnu/packages/photo.scm:294
+#: gnu/packages/photo.scm:304
 msgid "Command-line tools to access digital cameras"
 msgstr ""
 
-#: gnu/packages/photo.scm:296
+#: gnu/packages/photo.scm:306
 msgid ""
 "Gphoto2 is a set of command line utilities for manipulating a large\n"
 "number of different digital cameras.  Through libgphoto2, it supports PTP,\n"
 "MTP, and much more."
 msgstr ""
 
-#: gnu/packages/photo.scm:337
+#: gnu/packages/photo.scm:347
 msgid "Program and Perl library to manipulate EXIF and other metadata"
 msgstr ""
 
-#: gnu/packages/photo.scm:338
+#: gnu/packages/photo.scm:348
 msgid ""
 "This package provides the @code{exiftool} command and the\n"
 "@code{Image::ExifTool} Perl library to manipulate EXIF tags of digital images\n"
 "and a wide variety of other metadata."
 msgstr ""
 
-#: gnu/packages/photo.scm:362
+#: gnu/packages/photo.scm:372
 msgid "Library for panoramic images"
 msgstr ""
 
-#: gnu/packages/photo.scm:364
+#: gnu/packages/photo.scm:374
 msgid ""
 "The libpano13 package contains the backend library written by the\n"
 "Panorama Tools project for building panoramic images from a set of\n"
 "overlapping images, as well as some command line tools."
 msgstr ""
 
-#: gnu/packages/photo.scm:408
+#: gnu/packages/photo.scm:418
 msgid "Tools for combining and blending images"
 msgstr ""
 
-#: gnu/packages/photo.scm:410
+#: gnu/packages/photo.scm:420
 msgid ""
 "Enblend blends away the seams in a panoramic image mosaic using a\n"
 "multi-resolution spline.  Enfuse merges different exposures of the same\n"
 "scene to produce an image that looks much like a tone-mapped image."
 msgstr ""
 
-#: gnu/packages/photo.scm:441
+#: gnu/packages/photo.scm:451
 msgid "Library to correct optical lens defects with a lens database"
 msgstr ""
 
-#: gnu/packages/photo.scm:442
+#: gnu/packages/photo.scm:452
 msgid ""
 "Digital photographs are not ideal.  Of course, the better is\n"
 "your camera, the better the results will be, but in any case if you look\n"
@@ -19206,11 +21323,11 @@ msgid ""
 "photographic equipment."
 msgstr ""
 
-#: gnu/packages/photo.scm:516
+#: gnu/packages/photo.scm:570
 msgid "Virtual lighttable and darkroom for photographers"
 msgstr ""
 
-#: gnu/packages/photo.scm:517
+#: gnu/packages/photo.scm:571
 msgid ""
 "Darktable is a photography workflow application and RAW\n"
 "developer.  It manages your digital negatives in a database, lets you view\n"
@@ -19218,22 +21335,48 @@ msgid ""
 "and enhance them."
 msgstr ""
 
-#: gnu/packages/photo.scm:588
+#: gnu/packages/photo.scm:615
+msgid "Quick, simple but powerful image editor"
+msgstr ""
+
+#: gnu/packages/photo.scm:616
+msgid ""
+"Photoflare is a cross-platform image editor with an aim\n"
+"to balance between powerful features and a very friendly graphical user\n"
+"interface.  It suits a wide variety of different tasks and users who value a\n"
+"more nimble workflow.  Features include basic image editing capabilities,\n"
+"paint brushes, image filters, colour adjustments and more advanced features\n"
+"such as Batch image processing."
+msgstr ""
+
+#: gnu/packages/photo.scm:681
+msgid "Camera control and capture"
+msgstr ""
+
+#: gnu/packages/photo.scm:683
+msgid ""
+"Entangle is an application which uses GTK and libgphoto2 to provide a\n"
+"graphical interface for tethered photography with digital cameras.  It\n"
+"includes control over camera shooting and configuration settings and 'hands\n"
+"off' shooting directly from the controlling computer."
+msgstr ""
+
+#: gnu/packages/photo.scm:752
 msgid "Panorama photo stitcher"
 msgstr ""
 
-#: gnu/packages/photo.scm:590
+#: gnu/packages/photo.scm:754
 msgid ""
 "Hugin is an easy to use panoramic imaging toolchain with a graphical\n"
 "user interface.  It can be used to assemble a mosaic of photographs into\n"
 "a complete panorama and stitch any series of overlapping pictures."
 msgstr ""
 
-#: gnu/packages/photo.scm:642
+#: gnu/packages/photo.scm:806
 msgid "Raw image developing and processing"
 msgstr ""
 
-#: gnu/packages/photo.scm:643
+#: gnu/packages/photo.scm:807
 msgid ""
 "RawTherapee is a raw image processing suite.  It comprises a\n"
 "subset of image editing operations specifically aimed at non-destructive raw\n"
@@ -19263,11 +21406,11 @@ msgid ""
 "cripples Emacs and other quality pieces of software."
 msgstr ""
 
-#: gnu/packages/readline.scm:91
+#: gnu/packages/readline.scm:104
 msgid "Edit command lines while typing, with history support"
 msgstr ""
 
-#: gnu/packages/readline.scm:93
+#: gnu/packages/readline.scm:106
 msgid ""
 "The GNU readline library allows users to edit command lines as they\n"
 "are typed in.  It can maintain a searchable history of previously entered\n"
@@ -19276,11 +21419,11 @@ msgid ""
 "comfortable for anyone."
 msgstr ""
 
-#: gnu/packages/readline.scm:149
+#: gnu/packages/readline.scm:162
 msgid "Wrapper to allow the editing of keyboard commands"
 msgstr ""
 
-#: gnu/packages/readline.scm:151
+#: gnu/packages/readline.scm:164
 msgid ""
 "Rlwrap is a 'readline wrapper', a small utility that uses the GNU\n"
 "readline library to allow the editing of keyboard input for any command.  You\n"
@@ -19301,11 +21444,11 @@ msgid ""
 "package contains the library, but no drivers."
 msgstr ""
 
-#: gnu/packages/scanner.scm:158
+#: gnu/packages/scanner.scm:159
 msgid "Raster image scanner library and drivers, with scanner support"
 msgstr ""
 
-#: gnu/packages/scanner.scm:159
+#: gnu/packages/scanner.scm:160
 msgid ""
 "SANE stands for \"Scanner Access Now Easy\" and is an API\n"
 "proving access to any raster image scanner hardware (flatbed scanner,\n"
@@ -19313,11 +21456,11 @@ msgid ""
 "package contains the library and drivers."
 msgstr ""
 
-#: gnu/packages/scanner.scm:236
+#: gnu/packages/scanner.scm:237
 msgid "Featureful graphical interface for document and image scanners"
 msgstr ""
 
-#: gnu/packages/scanner.scm:238
+#: gnu/packages/scanner.scm:239
 msgid ""
 "XSane is a graphical interface for controlling a scanner and acquiring\n"
 "images from it.  You can photocopy multi-page documents and save, fax, print,\n"
@@ -19329,22 +21472,22 @@ msgid ""
 "back-end library, which supports almost all existing scanners."
 msgstr ""
 
-#: gnu/packages/scheme.scm:217
+#: gnu/packages/scheme.scm:220
 msgid "A Scheme implementation with integrated editor and debugger"
 msgstr "Scheme-Implementierung mit integriertem Editor und Debugger zur Fehlersuche"
 
-#: gnu/packages/scheme.scm:219
+#: gnu/packages/scheme.scm:222
 msgid ""
 "GNU/MIT Scheme is an implementation of the Scheme programming\n"
 "language.  It provides an interpreter, a compiler and a debugger.  It also\n"
 "features an integrated Emacs-like editor and a large runtime library."
 msgstr ""
 
-#: gnu/packages/scheme.scm:310
+#: gnu/packages/scheme.scm:313
 msgid "Efficient Scheme compiler"
 msgstr ""
 
-#: gnu/packages/scheme.scm:312
+#: gnu/packages/scheme.scm:315
 msgid ""
 "Bigloo is a Scheme implementation devoted to one goal: enabling Scheme\n"
 "based programming style where C(++) is usually required.  Bigloo attempts to\n"
@@ -19355,11 +21498,11 @@ msgid ""
 "and between Scheme and Java programs."
 msgstr ""
 
-#: gnu/packages/scheme.scm:363
+#: gnu/packages/scheme.scm:366
 msgid "Multi-tier programming language for the Web 2.0"
 msgstr ""
 
-#: gnu/packages/scheme.scm:365
+#: gnu/packages/scheme.scm:368
 msgid ""
 "HOP is a multi-tier programming language for the Web 2.0 and the\n"
 "so-called diffuse Web.  It is designed for programming interactive web\n"
@@ -19368,22 +21511,22 @@ msgid ""
 "mashups, office (web agendas, mail clients, ...), etc."
 msgstr ""
 
-#: gnu/packages/scheme.scm:386
+#: gnu/packages/scheme.scm:389
 msgid "Scheme implementation using a bytecode interpreter"
 msgstr "Scheme-Implementierung mit Bytecode-Interpretierer"
 
-#: gnu/packages/scheme.scm:388
+#: gnu/packages/scheme.scm:391
 msgid ""
 "Scheme 48 is an implementation of Scheme based on a byte-code\n"
 "interpreter and is designed to be used as a testbed for experiments in\n"
 "implementation techniques and as an expository tool."
 msgstr ""
 
-#: gnu/packages/scheme.scm:517
+#: gnu/packages/scheme.scm:520
 msgid "Implementation of Scheme and related languages"
 msgstr ""
 
-#: gnu/packages/scheme.scm:519
+#: gnu/packages/scheme.scm:522
 msgid ""
 "Racket is an implementation of the Scheme programming language (R5RS and\n"
 "R6RS) and related languages, such as Typed Racket.  It features a compiler and\n"
@@ -19391,11 +21534,11 @@ msgid ""
 "of libraries."
 msgstr ""
 
-#: gnu/packages/scheme.scm:543
+#: gnu/packages/scheme.scm:546
 msgid "Racket without bundled packages such as Dr. Racket"
 msgstr ""
 
-#: gnu/packages/scheme.scm:555
+#: gnu/packages/scheme.scm:558
 msgid ""
 "Racket is an implementation of the Scheme programming language (R5RS and\n"
 "R6RS) and related languages, such as Typed Racket.  It features a compiler and\n"
@@ -19407,11 +21550,11 @@ msgid ""
 "the @code{pkg} library are still bundled."
 msgstr ""
 
-#: gnu/packages/scheme.scm:585
+#: gnu/packages/scheme.scm:588
 msgid "Efficient Scheme interpreter and compiler"
 msgstr ""
 
-#: gnu/packages/scheme.scm:587
+#: gnu/packages/scheme.scm:590
 msgid ""
 "Gambit consists of two main programs: gsi, the Gambit Scheme\n"
 "interpreter, and gsc, the Gambit Scheme compiler.  The interpreter contains\n"
@@ -19422,11 +21565,11 @@ msgid ""
 "mixed."
 msgstr ""
 
-#: gnu/packages/scheme.scm:621
+#: gnu/packages/scheme.scm:624
 msgid "Small embeddable Scheme implementation"
 msgstr ""
 
-#: gnu/packages/scheme.scm:623
+#: gnu/packages/scheme.scm:626
 msgid ""
 "Chibi-Scheme is a very small library with no external dependencies\n"
 "intended for use as an extension and scripting language in C programs.  In\n"
@@ -19435,11 +21578,11 @@ msgid ""
 "threads."
 msgstr ""
 
-#: gnu/packages/scheme.scm:670
+#: gnu/packages/scheme.scm:673
 msgid "Structure and Interpretation of Computer Programs"
 msgstr ""
 
-#: gnu/packages/scheme.scm:671
+#: gnu/packages/scheme.scm:674
 msgid ""
 "Structure and Interpretation of Computer Programs (SICP) is\n"
 "a textbook aiming to teach the principles of computer programming.\n"
@@ -19449,31 +21592,31 @@ msgid ""
 "metalinguistic abstraction, recursion, interpreters, and modular programming."
 msgstr ""
 
-#: gnu/packages/scheme.scm:713
+#: gnu/packages/scheme.scm:716
 msgid "SRE String pattern-matching library for scheme48"
 msgstr ""
 
-#: gnu/packages/scheme.scm:715
+#: gnu/packages/scheme.scm:718
 msgid ""
 "String pattern-matching library for scheme48 based on the SRE\n"
 "regular-expression notation."
 msgstr ""
 
-#: gnu/packages/scheme.scm:748
+#: gnu/packages/scheme.scm:751
 msgid "Compatibility and utility library for Scheme"
 msgstr ""
 
-#: gnu/packages/scheme.scm:749
+#: gnu/packages/scheme.scm:752
 msgid ""
 "SLIB is a portable Scheme library providing compatibility and\n"
 "utility functions for all standard Scheme implementations."
 msgstr ""
 
-#: gnu/packages/scheme.scm:805
+#: gnu/packages/scheme.scm:808
 msgid "Scheme implementation conforming to R5RS and IEEE P1178"
 msgstr ""
 
-#: gnu/packages/scheme.scm:806
+#: gnu/packages/scheme.scm:809
 msgid ""
 "GNU SCM is an implementation of Scheme.  This\n"
 "implementation includes Hobbit, a Scheme-to-C compiler, which can\n"
@@ -19481,11 +21624,11 @@ msgid ""
 "linked with a SCM executable."
 msgstr ""
 
-#: gnu/packages/scheme.scm:863
+#: gnu/packages/scheme.scm:866
 msgid "Light-weight interpreter for the Scheme programming language"
 msgstr ""
 
-#: gnu/packages/scheme.scm:865
+#: gnu/packages/scheme.scm:868
 msgid ""
 "TinyScheme is a light-weight Scheme interpreter that implements as large a\n"
 "subset of R5RS as was possible without getting very large and complicated.\n"
@@ -19501,11 +21644,11 @@ msgid ""
 "small program, it is easy to comprehend, get to grips with, and use."
 msgstr ""
 
-#: gnu/packages/scheme.scm:944
+#: gnu/packages/scheme.scm:947
 msgid "Brutally efficient Scheme compiler"
 msgstr ""
 
-#: gnu/packages/scheme.scm:946
+#: gnu/packages/scheme.scm:949
 msgid ""
 "Stalin is an aggressively optimizing whole-program compiler\n"
 "for Scheme that does polyvariant interprocedural flow analysis,\n"
@@ -19517,22 +21660,22 @@ msgid ""
 "generation."
 msgstr ""
 
-#: gnu/packages/scheme.scm:999
+#: gnu/packages/scheme.scm:1002
 msgid "Scheme-like lisp implementation"
 msgstr ""
 
-#: gnu/packages/scheme.scm:1001
+#: gnu/packages/scheme.scm:1004
 msgid ""
 "@code{femtolisp} is a scheme-like lisp implementation with a\n"
 "simple, elegant Scheme dialect.  It is a lisp-1 with lexical scope.\n"
 "The core is 12 builtin special forms and 33 builtin functions."
 msgstr ""
 
-#: gnu/packages/scheme.scm:1071
+#: gnu/packages/scheme.scm:1074
 msgid "Scheme scripting engine"
 msgstr ""
 
-#: gnu/packages/scheme.scm:1072
+#: gnu/packages/scheme.scm:1075
 msgid ""
 "Gauche is a R7RS Scheme scripting engine aiming at being a\n"
 "handy tool that helps programmers and system administrators to write small to\n"
@@ -19542,6 +21685,21 @@ msgid ""
 "and list gauche extension packages."
 msgstr ""
 
+#: gnu/packages/scheme.scm:1176
+msgid "Meta-dialect of Scheme with post-modern features"
+msgstr ""
+
+#: gnu/packages/scheme.scm:1177
+msgid ""
+"Gerbil is an opinionated dialect of Scheme designed for Systems\n"
+"Programming, with a state of the art macro and module system on top of the Gambit\n"
+"runtime.  The macro system is based on quote-syntax, and provides the full meta-syntactic\n"
+"tower with a native implementation of syntax-case.  It also provides a full-blown module\n"
+"system, similar to PLT Scheme's (sorry, Racket) modules.  The main difference from Racket\n"
+"is that Gerbil modules are single instantiation, supporting high performance ahead of\n"
+"time compilation and compiled macros."
+msgstr ""
+
 #: gnu/packages/search.scm:78
 msgid "Search Engine Library"
 msgstr ""
@@ -19670,11 +21828,11 @@ msgid ""
 "server and an IRC server."
 msgstr ""
 
-#: gnu/packages/shells.scm:86
+#: gnu/packages/shells.scm:91
 msgid "POSIX-compliant shell optimised for size"
 msgstr ""
 
-#: gnu/packages/shells.scm:88
+#: gnu/packages/shells.scm:93
 msgid ""
 "dash is a POSIX-compliant @command{/bin/sh} implementation that aims to be\n"
 "as small as possible, often without sacrificing speed.  It is faster than the\n"
@@ -19682,11 +21840,11 @@ msgid ""
 "direct descendant of NetBSD's Almquist Shell (@command{ash})."
 msgstr ""
 
-#: gnu/packages/shells.scm:198
+#: gnu/packages/shells.scm:235
 msgid "The friendly interactive shell"
 msgstr ""
 
-#: gnu/packages/shells.scm:200
+#: gnu/packages/shells.scm:237
 msgid ""
 "Fish (friendly interactive shell) is a shell focused on interactive use,\n"
 "discoverability, and friendliness.  Fish has very user-friendly and powerful\n"
@@ -19698,32 +21856,32 @@ msgid ""
 "and syntax highlighting."
 msgstr ""
 
-#: gnu/packages/shells.scm:253
+#: gnu/packages/shells.scm:290
 msgid "Foreign environment interface for fish shell"
 msgstr ""
 
-#: gnu/packages/shells.scm:254
+#: gnu/packages/shells.scm:291
 msgid ""
 "@code{fish-foreign-env} wraps bash script execution in a way\n"
 "that environment variables that are exported or modified get imported back\n"
 "into fish."
 msgstr ""
 
-#: gnu/packages/shells.scm:292
+#: gnu/packages/shells.scm:329
 msgid "Alternative implementation of the rc shell by Byron Rakitzis"
 msgstr ""
 
-#: gnu/packages/shells.scm:294
+#: gnu/packages/shells.scm:331
 msgid ""
 "This is a reimplementation by Byron Rakitzis of the Plan 9 shell.  It\n"
 "has a small feature set similar to a traditional Bourne shell."
 msgstr ""
 
-#: gnu/packages/shells.scm:325
+#: gnu/packages/shells.scm:362
 msgid "Extensible shell with higher-order functions"
 msgstr ""
 
-#: gnu/packages/shells.scm:327
+#: gnu/packages/shells.scm:364
 msgid ""
 "Es is an extensible shell.  The language was derived from the Plan 9\n"
 "shell, rc, and was influenced by functional programming languages, such as\n"
@@ -19732,11 +21890,11 @@ msgid ""
 "written by Paul Haahr and Byron Rakitzis."
 msgstr ""
 
-#: gnu/packages/shells.scm:387
+#: gnu/packages/shells.scm:431
 msgid "Unix shell based on csh"
 msgstr ""
 
-#: gnu/packages/shells.scm:389
+#: gnu/packages/shells.scm:433
 msgid ""
 "Tcsh is an enhanced, but completely compatible version of the Berkeley\n"
 "UNIX C shell (csh).  It is a command language interpreter usable both as an\n"
@@ -19745,11 +21903,11 @@ msgid ""
 "history mechanism, job control and a C-like syntax."
 msgstr ""
 
-#: gnu/packages/shells.scm:449
+#: gnu/packages/shells.scm:501
 msgid "Powerful shell for interactive use and scripting"
 msgstr ""
 
-#: gnu/packages/shells.scm:450
+#: gnu/packages/shells.scm:502
 msgid ""
 "The Z shell (zsh) is a Unix shell that can be used\n"
 "as an interactive login shell and as a powerful command interpreter\n"
@@ -19758,11 +21916,11 @@ msgid ""
 "ksh, and tcsh."
 msgstr ""
 
-#: gnu/packages/shells.scm:489
+#: gnu/packages/shells.scm:550
 msgid "Python-ish shell"
 msgstr ""
 
-#: gnu/packages/shells.scm:491
+#: gnu/packages/shells.scm:552
 msgid ""
 "Xonsh is a Python-ish, BASHwards-looking shell language and command\n"
 "prompt.  The language is a superset of Python 3.4+ with additional shell\n"
@@ -19771,11 +21929,11 @@ msgid ""
 "use of experts and novices alike."
 msgstr ""
 
-#: gnu/packages/shells.scm:535
+#: gnu/packages/shells.scm:596
 msgid "Unix shell embedded in Scheme"
 msgstr ""
 
-#: gnu/packages/shells.scm:537
+#: gnu/packages/shells.scm:598
 msgid ""
 "Scsh is a Unix shell embedded in Scheme.  Scsh has two main\n"
 "components: a process notation for running programs and setting up pipelines\n"
@@ -19783,11 +21941,11 @@ msgid ""
 "operating system."
 msgstr ""
 
-#: gnu/packages/shells.scm:576
+#: gnu/packages/shells.scm:638
 msgid "Minimal zero-config readline replacement"
 msgstr ""
 
-#: gnu/packages/shells.scm:578
+#: gnu/packages/shells.scm:640
 msgid ""
 "Linenoise is a minimal, zero-config, readline replacement.\n"
 "Its features include:\n"
@@ -19801,14 +21959,15 @@ msgid ""
 "@end enumerate\n"
 msgstr ""
 
-#: gnu/packages/shells.scm:640
+#: gnu/packages/shells.scm:702
 msgid "Extremely minimal shell with the simplest syntax possible"
 msgstr ""
 
-#: gnu/packages/shells.scm:642
+#: gnu/packages/shells.scm:704
 msgid ""
-"S is a new shell that aims to be extremely simple.\n"
-"S does not implemnt the POSIX shell standard.\n"
+"S is a new shell that aims to be extremely simple.  It does not\n"
+"implement the POSIX shell standard.\n"
+"\n"
 "There are no globs or \"splatting\" where a variable $FOO turns into multiple\n"
 "command line arguments.  One token stays one token forever.\n"
 "This is a \"no surprises\" straightforward approach.\n"
@@ -19818,55 +21977,53 @@ msgid ""
 "A @code{andglob} program is also provided along with s."
 msgstr ""
 
-#: gnu/packages/shells.scm:670
+#: gnu/packages/shells.scm:733
 msgid "Port of OpenBSD Korn Shell"
 msgstr ""
 
-#: gnu/packages/shells.scm:672
+#: gnu/packages/shells.scm:735
 msgid ""
 "Oksh is a port of the OpenBSD Korn Shell.\n"
 "The OpenBSD Korn Shell is a cleaned up and enhanced ksh."
 msgstr ""
 
-#: gnu/packages/shells.scm:704
+#: gnu/packages/shells.scm:767
 msgid "Korn Shell from OpenBSD"
 msgstr ""
 
-#: gnu/packages/shells.scm:706
+#: gnu/packages/shells.scm:769
 msgid ""
 "loksh is a Linux port of OpenBSD's @command{ksh}.  It is a small,\n"
 "interactive POSIX shell targeted at resource-constrained systems."
 msgstr ""
 
-#: gnu/packages/shells.scm:744
+#: gnu/packages/shells.scm:807
 msgid "Korn Shell from MirBSD"
 msgstr ""
 
-#: gnu/packages/shells.scm:745
+#: gnu/packages/shells.scm:808
 msgid ""
 "mksh is an actively developed free implementation of the\n"
 "Korn Shell programming language and a successor to the Public Domain Korn\n"
 "Shell (pdksh)."
 msgstr ""
 
-#: gnu/packages/shells.scm:787
-msgid "Bash-compatible Unix shell"
+#: gnu/packages/shells.scm:849
+msgid "Programming language and Bash-compatible Unix shell"
 msgstr ""
 
-#: gnu/packages/shells.scm:788
+#: gnu/packages/shells.scm:850
 msgid ""
-"Oil is a Unix / POSIX shell, compatible with Bash.  It\n"
-"implements the Oil language, which is a new shell language to which Bash can be\n"
-"automatically translated.  The Oil language is a superset of Bash.  It also\n"
-"implements the OSH language, a statically-parseable language based on Bash as it\n"
-"is commonly written."
+"Oil is a programming language with automatic translation for\n"
+"Bash.  It includes osh, a Unix/POSIX shell that runs unmodified Bash\n"
+"scripts."
 msgstr ""
 
-#: gnu/packages/shells.scm:817
+#: gnu/packages/shells.scm:886
 msgid "POSIX-compatible shell written in Guile Scheme"
 msgstr ""
 
-#: gnu/packages/shells.scm:818
+#: gnu/packages/shells.scm:887
 msgid ""
 "Gash is a POSIX-compatible shell written in Guile\n"
 "Scheme.  It provides both the shell interface, as well as a Guile\n"
@@ -19874,11 +22031,11 @@ msgid ""
 "as part of the Guix bootstrap process."
 msgstr ""
 
-#: gnu/packages/shells.scm:842
+#: gnu/packages/shells.scm:920
 msgid "Core POSIX utilities written in Guile Scheme"
 msgstr ""
 
-#: gnu/packages/shells.scm:843
+#: gnu/packages/shells.scm:921
 msgid ""
 "Gash-Utils provides Scheme implementations of many\n"
 "common POSIX utilities (there are about 40 of them, ranging in\n"
@@ -19888,11 +22045,22 @@ msgid ""
 "files and text."
 msgstr ""
 
-#: gnu/packages/telephony.scm:175
+#: gnu/packages/telephony.scm:118
+msgid "Libre iLBC codec"
+msgstr ""
+
+#: gnu/packages/telephony.scm:119
+msgid ""
+"LibiLBC is a packaging friendly copy of the iLBC codec from\n"
+"the WebRTC project.  It provides a base for distribution packages and can be\n"
+"used as drop-in replacement for the non-free code from RFC 3591."
+msgstr ""
+
+#: gnu/packages/telephony.scm:206
 msgid "DSP library for telephony"
 msgstr ""
 
-#: gnu/packages/telephony.scm:176
+#: gnu/packages/telephony.scm:207
 msgid ""
 "SpanDSP is a library of DSP functions for telephony, in the\n"
 "8000 sample per second world of E1s, T1s, and higher order PCM channels.  It\n"
@@ -19901,11 +22069,11 @@ msgid ""
 "software FAX machine."
 msgstr ""
 
-#: gnu/packages/telephony.scm:205
+#: gnu/packages/telephony.scm:236
 msgid "(u)Common C++ framework for threaded applications"
 msgstr ""
 
-#: gnu/packages/telephony.scm:206
+#: gnu/packages/telephony.scm:237
 msgid ""
 "GNU Common C++ is an portable, optimized class framework for\n"
 "threaded applications, supporting concurrent synchronization, inter-process\n"
@@ -19914,11 +22082,11 @@ msgid ""
 "reimplementation."
 msgstr ""
 
-#: gnu/packages/telephony.scm:226
+#: gnu/packages/telephony.scm:259
 msgid "Common C++ framework for threaded applications"
 msgstr ""
 
-#: gnu/packages/telephony.scm:227
+#: gnu/packages/telephony.scm:260
 msgid ""
 "GNU uCommon C++ is meant as a very light-weight C++ library\n"
 "to facilitate using C++ design patterns even for very deeply embedded\n"
@@ -19926,11 +22094,11 @@ msgid ""
 "support."
 msgstr ""
 
-#: gnu/packages/telephony.scm:249
+#: gnu/packages/telephony.scm:282
 msgid "Implementation of RTP (real-time transport protocol)"
 msgstr ""
 
-#: gnu/packages/telephony.scm:250
+#: gnu/packages/telephony.scm:283
 msgid ""
 "GNU ccRTP is an implementation of RTP, the real-time transport\n"
 "protocol from the IETF.  It is suitable both for high capacity servers and\n"
@@ -19939,22 +22107,33 @@ msgid ""
 "packet-manipulation library."
 msgstr ""
 
-#: gnu/packages/telephony.scm:272
+#: gnu/packages/telephony.scm:316
+msgid "C++ Implementation of ZRTP protocol"
+msgstr ""
+
+#: gnu/packages/telephony.scm:317
+msgid ""
+"GNU ZRTP C++ provides a library that adds ZRTP support to the\n"
+"GNU ccRTP stack and serves as library for other RTP stacks\n"
+"(PJSIP, GStreamer)."
+msgstr ""
+
+#: gnu/packages/telephony.scm:336
 msgid "Library implementing SIP (RFC-3261)"
 msgstr ""
 
-#: gnu/packages/telephony.scm:273
+#: gnu/packages/telephony.scm:337
 msgid ""
 "GNU oSIP is an implementation of the SIP protocol.  It is\n"
 "used to provide multimedia and telecom software developers with an interface\n"
 "to initiate and control SIP sessions."
 msgstr ""
 
-#: gnu/packages/telephony.scm:292
+#: gnu/packages/telephony.scm:358
 msgid "Sip abstraction library"
 msgstr ""
 
-#: gnu/packages/telephony.scm:293
+#: gnu/packages/telephony.scm:359
 msgid ""
 "EXosip is a library that hides the complexity of using the\n"
 "SIP protocol for multimedia session establishment.  This protocol is mainly to\n"
@@ -19963,11 +22142,11 @@ msgid ""
 "multiplayer games."
 msgstr ""
 
-#: gnu/packages/telephony.scm:336
+#: gnu/packages/telephony.scm:402
 msgid "Secure peer-to-peer VoIP server for the SIP protocol"
 msgstr ""
 
-#: gnu/packages/telephony.scm:337
+#: gnu/packages/telephony.scm:403
 msgid ""
 "GNU SIP Witch is a peer-to-peer Voice-over-IP server that\n"
 "uses the SIP protocol.  Calls can be made from behind NAT firewalls and\n"
@@ -19977,32 +22156,32 @@ msgid ""
 "internet."
 msgstr ""
 
-#: gnu/packages/telephony.scm:377
+#: gnu/packages/telephony.scm:443
 msgid "Secure RTP (SRTP) Reference Implementation"
 msgstr ""
 
-#: gnu/packages/telephony.scm:379
+#: gnu/packages/telephony.scm:445
 msgid ""
 "This package provides an implementation of the Secure Real-time Transport\n"
 "Protocol (@dfn{SRTP}), the Universal Security Transform (@dfn{UST}), and a\n"
 "supporting cryptographic kernel."
 msgstr ""
 
-#: gnu/packages/telephony.scm:407
+#: gnu/packages/telephony.scm:473
 msgid "Inter-Asterisk-Protocol library"
 msgstr ""
 
-#: gnu/packages/telephony.scm:408
+#: gnu/packages/telephony.scm:474
 msgid ""
 "LibIAX2 implements the Inter-Asterisk-Protocol for relaying\n"
 "Voice-over-IP (VoIP) communications."
 msgstr ""
 
-#: gnu/packages/telephony.scm:439
+#: gnu/packages/telephony.scm:505
 msgid "Simple VoIP program to create conferences from the terminal"
 msgstr ""
 
-#: gnu/packages/telephony.scm:441
+#: gnu/packages/telephony.scm:507
 msgid ""
 "Seren is a simple VoIP program based on the Opus codec that allows you\n"
 "to create a voice conference from the terminal, with up to 10 participants,\n"
@@ -20011,11 +22190,11 @@ msgid ""
 "address of one of the participants."
 msgstr ""
 
-#: gnu/packages/telephony.scm:577
+#: gnu/packages/telephony.scm:651
 msgid "Low-latency, high quality voice chat software"
 msgstr ""
 
-#: gnu/packages/telephony.scm:579
+#: gnu/packages/telephony.scm:653
 msgid ""
 "Mumble is an low-latency, high quality voice chat\n"
 "software primarily intended for use while gaming.\n"
@@ -20023,83 +22202,44 @@ msgid ""
 "@code{mumble} for the client, and @code{murmur} for the server."
 msgstr ""
 
-#: gnu/packages/telephony.scm:640
+#: gnu/packages/telephony.scm:711
 msgid "Softphone for voice over IP and instant messaging"
 msgstr ""
 
-#: gnu/packages/telephony.scm:641
+#: gnu/packages/telephony.scm:712
 msgid ""
 "Twinkle is a softphone for your voice over IP and instant\n"
-"messaging communcations using the SIP protocol.  You can use it for direct IP\n"
-"phone to IP phone communication or in a network using a SIP proxy to route your\n"
-"calls and messages"
+"messaging communcations using the SIP protocol.  You can use it for direct\n"
+"IP phone to IP phone communication or in a network using a SIP proxy to route\n"
+"your calls and messages."
 msgstr ""
 
-#: gnu/packages/telephony.scm:728
+#: gnu/packages/telephony.scm:861
 msgid "Session Initiation Protocol (SIP) stack"
 msgstr ""
 
-#: gnu/packages/telephony.scm:729
+#: gnu/packages/telephony.scm:862
 msgid ""
 "PJProject provides an implementation of the Session\n"
 "Initiation Protocol (SIP) and a multimedia framework."
 msgstr ""
 
-#: gnu/packages/telephony.scm:914 gnu/packages/telephony.scm:951
-msgid "Distributed multimedia communications platform"
-msgstr ""
-
-#: gnu/packages/telephony.scm:915
-msgid ""
-"Jami (formerly GNU Ring) is a secure and distributed voice,\n"
-"video and chat communication platform that requires no centralized server and\n"
-"leaves the power of privacy in the hands of the user.  It supports the SIP and\n"
-"IAX protocols, as well as decentralized calling using P2P-DHT.\n"
-"\n"
-"This package provides a library and daemon implementing the Jami core\n"
-"functionality."
-msgstr ""
-
-#: gnu/packages/telephony.scm:952
-msgid ""
-"Jami (formerly GNU Ring) is a secure and distributed voice,\n"
-"video and chat communication platform that requires no centralized server and\n"
-"leaves the power of privacy in the hands of the user.  It supports the SIP and\n"
-"IAX protocols, as well as decentralized calling using P2P-DHT.\n"
-"\n"
-"This package provides a library common to all Jami clients."
-msgstr ""
-
-#: gnu/packages/telephony.scm:1011
-msgid "Distributed, privacy-respecting communication program"
-msgstr ""
-
-#: gnu/packages/telephony.scm:1012
-msgid ""
-"Jami (formerly GNU Ring) is a secure and distributed voice,\n"
-"video and chat communication platform that requires no centralized server and\n"
-"leaves the power of privacy in the hands of the user.  It supports the SIP and\n"
-"IAX protocols, as well as decentralized calling using P2P-DHT.\n"
-"\n"
-"This package provides the Jami client for the GNOME desktop."
-msgstr ""
-
-#: gnu/packages/telephony.scm:1050
+#: gnu/packages/telephony.scm:909
 msgid "VoIP library for Telegram clients"
 msgstr ""
 
-#: gnu/packages/telephony.scm:1051
+#: gnu/packages/telephony.scm:910
 msgid ""
 "A collection of libraries and header files for implementing\n"
 "telephony functionality into custom Telegram clients."
 msgstr ""
 
-#: gnu/packages/tex.scm:436 gnu/packages/tex.scm:5920
-#: gnu/packages/tex.scm:5983
+#: gnu/packages/tex.scm:438 gnu/packages/tex.scm:5862
+#: gnu/packages/tex.scm:5925
 msgid "TeX Live, a package of the TeX typesetting system"
 msgstr ""
 
-#: gnu/packages/tex.scm:438
+#: gnu/packages/tex.scm:440
 msgid ""
 "TeX Live provides a comprehensive TeX document production system.\n"
 "It includes all the major TeX-related programs, macro packages, and fonts\n"
@@ -20109,21 +22249,21 @@ msgid ""
 "This package contains the binaries."
 msgstr ""
 
-#: gnu/packages/tex.scm:457
+#: gnu/packages/tex.scm:459
 msgid "Utility to strip documentation from TeX files."
 msgstr ""
 
-#: gnu/packages/tex.scm:458
+#: gnu/packages/tex.scm:460
 msgid ""
 "This package provides the docstrip utility to strip\n"
 "documentation from TeX files.  It is part of the LaTeX base."
 msgstr ""
 
-#: gnu/packages/tex.scm:472
+#: gnu/packages/tex.scm:474
 msgid "Unicode data and loaders for TeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:473
+#: gnu/packages/tex.scm:475
 msgid ""
 "This bundle provides generic access to Unicode Consortium\n"
 "data for TeX use.  It contains a set of text files provided by the Unicode\n"
@@ -20136,11 +22276,11 @@ msgid ""
 "out to date by @code{unicode-letters.tex}. "
 msgstr ""
 
-#: gnu/packages/tex.scm:505
+#: gnu/packages/tex.scm:507
 msgid "Core hyphenation support files"
 msgstr ""
 
-#: gnu/packages/tex.scm:506
+#: gnu/packages/tex.scm:508
 msgid ""
 "This package includes Knuth's original @file{hyphen.tex},\n"
 "@file{zerohyph.tex} to disable hyphenation, @file{language.us} which starts\n"
@@ -20148,21 +22288,21 @@ msgid ""
 "default versions of those), etc."
 msgstr ""
 
-#: gnu/packages/tex.scm:526
+#: gnu/packages/tex.scm:528
 msgid "DVI to PostScript drivers"
 msgstr ""
 
-#: gnu/packages/tex.scm:527
+#: gnu/packages/tex.scm:529
 msgid ""
 "This package provides files needed for converting DVI files\n"
 "to PostScript."
 msgstr ""
 
-#: gnu/packages/tex.scm:540
+#: gnu/packages/tex.scm:542
 msgid "Files for creating TeX formats"
 msgstr ""
 
-#: gnu/packages/tex.scm:541
+#: gnu/packages/tex.scm:543
 msgid ""
 "This bundle provides a collection of model \".ini\" files\n"
 "for creating TeX formats.  These files are commonly used to introduced\n"
@@ -20171,21 +22311,21 @@ msgid ""
 "to adapt the plain e-TeX source file to work with XeTeX and LuaTeX."
 msgstr ""
 
-#: gnu/packages/tex.scm:598
+#: gnu/packages/tex.scm:600
 msgid "Metafont base files"
 msgstr ""
 
-#: gnu/packages/tex.scm:599
+#: gnu/packages/tex.scm:601
 msgid ""
 "This package provides the Metafont base files needed to\n"
 "build fonts using the Metafont system."
 msgstr ""
 
-#: gnu/packages/tex.scm:684
+#: gnu/packages/tex.scm:686
 msgid "Tools for converting and installing fonts for TeX and LaTeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:685
+#: gnu/packages/tex.scm:687
 msgid ""
 "This package provides TeX macros for converting Adobe Font\n"
 "Metric files to TeX metric and virtual font format.  Fontinst helps mainly\n"
@@ -20195,11 +22335,11 @@ msgid ""
 "typesetting in these fonts."
 msgstr ""
 
-#: gnu/packages/tex.scm:706
+#: gnu/packages/tex.scm:708
 msgid "Scheme for naming fonts in TeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:707
+#: gnu/packages/tex.scm:709
 msgid ""
 "This is Fontname, a naming scheme for (the base part of)\n"
 "external TeX font filenames.  This makes at most eight-character names\n"
@@ -20207,11 +22347,11 @@ msgid ""
 "documents."
 msgstr ""
 
-#: gnu/packages/tex.scm:780
+#: gnu/packages/tex.scm:782
 msgid "Computer Modern fonts for TeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:781
+#: gnu/packages/tex.scm:783
 msgid ""
 "This package provides the Computer Modern fonts by Donald\n"
 "Knuth.  The Computer Modern font family is a large collection of text,\n"
@@ -20219,11 +22359,11 @@ msgid ""
 "8A."
 msgstr ""
 
-#: gnu/packages/tex.scm:812
+#: gnu/packages/tex.scm:814
 msgid "Computer Modern Super family of fonts"
 msgstr ""
 
-#: gnu/packages/tex.scm:813
+#: gnu/packages/tex.scm:815
 msgid ""
 "The CM-Super family provides Adobe Type 1 fonts that replace\n"
 "the T1/TS1-encoded Computer Modern (EC/TC), T1/TS1-encoded Concrete,\n"
@@ -20233,33 +22373,33 @@ msgid ""
 "originals."
 msgstr ""
 
-#: gnu/packages/tex.scm:842
+#: gnu/packages/tex.scm:844
 msgid "Latin Modern family of fonts"
 msgstr ""
 
-#: gnu/packages/tex.scm:843
+#: gnu/packages/tex.scm:845
 msgid ""
 "The Latin Modern fonts are derived from the famous Computer\n"
 "Modern fonts designed by Donald E. Knuth and described in Volume E of his\n"
 "Computers & Typesetting series."
 msgstr ""
 
-#: gnu/packages/tex.scm:916
+#: gnu/packages/tex.scm:918
 msgid "Small library of METAFONT sources"
 msgstr ""
 
-#: gnu/packages/tex.scm:917
+#: gnu/packages/tex.scm:919
 msgid ""
 "This is a collection of core TeX and METAFONT macro files\n"
 "from Donald Knuth, including the plain format, plain base, and the MF logo\n"
 "fonts."
 msgstr ""
 
-#: gnu/packages/tex.scm:991
+#: gnu/packages/tex.scm:993
 msgid "Collection of fonts used in LaTeX distributions"
 msgstr ""
 
-#: gnu/packages/tex.scm:992
+#: gnu/packages/tex.scm:994
 msgid ""
 "This is a collection of fonts for use with standard LaTeX\n"
 "packages and classes. It includes invisible fonts (for use with the slides\n"
@@ -20267,22 +22407,22 @@ msgid ""
 "symbol fonts."
 msgstr ""
 
-#: gnu/packages/tex.scm:1013
+#: gnu/packages/tex.scm:1015
 msgid "LaTeX support for Metafont logo fonts"
 msgstr ""
 
-#: gnu/packages/tex.scm:1015
+#: gnu/packages/tex.scm:1017
 msgid ""
 "This package provides LaTeX and font definition files to access the\n"
 "Knuthian mflogo fonts described in The Metafontbook and to typeset Metafont\n"
 "logos in LaTeX documents."
 msgstr ""
 
-#: gnu/packages/tex.scm:1032
+#: gnu/packages/tex.scm:1034
 msgid "Metafont logo font"
 msgstr ""
 
-#: gnu/packages/tex.scm:1034
+#: gnu/packages/tex.scm:1036
 msgid ""
 "These fonts were created in METAFONT by Knuth, for his own publications.\n"
 "At some stage, the letters P and S were added, so that the METAPOST logo could\n"
@@ -20291,11 +22431,11 @@ msgid ""
 "Taco Hoekwater."
 msgstr ""
 
-#: gnu/packages/tex.scm:1176
+#: gnu/packages/tex.scm:1178
 msgid "TeX fonts from the American Mathematical Society"
 msgstr ""
 
-#: gnu/packages/tex.scm:1178
+#: gnu/packages/tex.scm:1180
 msgid ""
 "This package provides an extended set of fonts for use in mathematics,\n"
 "including: extra mathematical symbols; blackboard bold letters (uppercase\n"
@@ -20309,11 +22449,11 @@ msgid ""
 "details can be found in the documentation."
 msgstr ""
 
-#: gnu/packages/tex.scm:1209
+#: gnu/packages/tex.scm:1211
 msgid "Utility for making hyphenation patterns"
 msgstr ""
 
-#: gnu/packages/tex.scm:1210
+#: gnu/packages/tex.scm:1212
 msgid ""
 "Mkpattern is a general purpose program for the generation of\n"
 "hyphenation patterns, with definition of letter sets and template-like\n"
@@ -20321,11 +22461,11 @@ msgid ""
 "output encodings, and features generation of clean UTF-8 patterns."
 msgstr ""
 
-#: gnu/packages/tex.scm:1267
+#: gnu/packages/tex.scm:1269
 msgid "Extended version of TeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:1269
+#: gnu/packages/tex.scm:1271
 msgid ""
 "This package provides an extended version of TeX (which is capable of\n"
 "running as if it were TeX unmodified).  E-TeX has been specified by the LaTeX\n"
@@ -20334,192 +22474,192 @@ msgid ""
 "incorporates the e-TeX extensions."
 msgstr ""
 
-#: gnu/packages/tex.scm:1285
+#: gnu/packages/tex.scm:1287
 msgid "Plain TeX format and supporting files"
 msgstr ""
 
-#: gnu/packages/tex.scm:1287
+#: gnu/packages/tex.scm:1289
 msgid ""
 "This package contains files used to build the Plain TeX format, as\n"
 "described in the TeXbook, together with various supporting files (some also\n"
 "discussed in the book)."
 msgstr ""
 
-#: gnu/packages/tex.scm:1299
+#: gnu/packages/tex.scm:1301
 msgid "Hyphenation patterns for Afrikaans"
 msgstr ""
 
-#: gnu/packages/tex.scm:1300
+#: gnu/packages/tex.scm:1302
 msgid ""
 "The package provides hyphenation patterns for the Afrikaans\n"
 "language."
 msgstr ""
 
-#: gnu/packages/tex.scm:1313
+#: gnu/packages/tex.scm:1315
 msgid "Hyphenation patterns for ancient Greek"
 msgstr ""
 
-#: gnu/packages/tex.scm:1314
+#: gnu/packages/tex.scm:1316
 msgid ""
 "The package provides hyphenation patterns for ancient\n"
 "Greek."
 msgstr ""
 
-#: gnu/packages/tex.scm:1348
+#: gnu/packages/tex.scm:1328
 msgid "Hyphenation patterns for Armenian"
 msgstr ""
 
-#: gnu/packages/tex.scm:1349
+#: gnu/packages/tex.scm:1329
 msgid ""
 "The package provides hyphenation patterns for the Armenian\n"
 "language."
 msgstr "Dieses Paket bietet Worttrennungsmuster für die armenische Sprache."
 
-#: gnu/packages/tex.scm:1384
+#: gnu/packages/tex.scm:1342
 msgid "Hyphenation patterns for Basque"
 msgstr ""
 
-#: gnu/packages/tex.scm:1385
+#: gnu/packages/tex.scm:1343
 msgid ""
 "The package provides hyphenation patterns for the Basque\n"
 "language."
 msgstr "Dieses Paket bietet Worttrennungsmuster für die baskische Sprache."
 
-#: gnu/packages/tex.scm:1398
+#: gnu/packages/tex.scm:1356
 msgid "Hyphenation patterns for Belarusian"
 msgstr ""
 
-#: gnu/packages/tex.scm:1399
+#: gnu/packages/tex.scm:1357
 msgid ""
 "The package provides hyphenation patterns for the Belarusian\n"
 "language."
 msgstr "Dieses Paket bietet Worttrennungsmuster für die weißrussische Sprache."
 
-#: gnu/packages/tex.scm:1412
+#: gnu/packages/tex.scm:1370
 msgid "Hyphenation patterns for Bulgarian"
 msgstr ""
 
-#: gnu/packages/tex.scm:1413
+#: gnu/packages/tex.scm:1371
 msgid ""
 "The package provides hyphenation patterns for the Bulgarian\n"
 "language in T2A and UTF-8 encodings."
 msgstr ""
 
-#: gnu/packages/tex.scm:1426
+#: gnu/packages/tex.scm:1384
 msgid "Hyphenation patterns for Catalan"
 msgstr ""
 
-#: gnu/packages/tex.scm:1427
+#: gnu/packages/tex.scm:1385
 msgid ""
 "The package provides hyphenation patterns for Catalan in\n"
 "T1/EC and UTF-8 encodings."
 msgstr ""
 
-#: gnu/packages/tex.scm:1438
+#: gnu/packages/tex.scm:1396
 msgid "Hyphenation patterns for unaccented Chinese pinyin"
 msgstr ""
 
-#: gnu/packages/tex.scm:1439
+#: gnu/packages/tex.scm:1397
 msgid ""
 "The package provides hyphenation patterns for unaccented\n"
 "Chinese pinyin T1/EC and UTF-8 encodings."
 msgstr ""
 
-#: gnu/packages/tex.scm:1450
+#: gnu/packages/tex.scm:1408
 msgid "Hyphenation patterns for Church Slavonic"
 msgstr ""
 
-#: gnu/packages/tex.scm:1451
+#: gnu/packages/tex.scm:1409
 msgid ""
 "The package provides hyphenation patterns for Church\n"
 "Slavonic in UTF-8 encoding."
 msgstr ""
 
-#: gnu/packages/tex.scm:1463
+#: gnu/packages/tex.scm:1421
 msgid "Hyphenation patterns for Coptic"
 msgstr ""
 
-#: gnu/packages/tex.scm:1464
+#: gnu/packages/tex.scm:1422
 msgid ""
 "The package provides hyphenation patterns for Coptic in\n"
 "UTF-8 encoding as well as in ASCII-based encoding for 8-bit engines."
 msgstr ""
 
-#: gnu/packages/tex.scm:1476
+#: gnu/packages/tex.scm:1434
 msgid "Hyphenation patterns for Croatian"
 msgstr ""
 
-#: gnu/packages/tex.scm:1477
+#: gnu/packages/tex.scm:1435
 msgid ""
 "The package provides hyphenation patterns for Croatian in\n"
 "T1/EC and UTF-8 encodings."
 msgstr ""
 
-#: gnu/packages/tex.scm:1488
+#: gnu/packages/tex.scm:1446
 msgid "Hyphenation patterns for Czech"
 msgstr ""
 
-#: gnu/packages/tex.scm:1489
+#: gnu/packages/tex.scm:1447
 msgid ""
 "The package provides hyphenation patterns for Czech in T1/EC\n"
 "and UTF-8 encodings."
 msgstr ""
 
-#: gnu/packages/tex.scm:1500
+#: gnu/packages/tex.scm:1458
 msgid "Hyphenation patterns for Danish"
 msgstr ""
 
-#: gnu/packages/tex.scm:1501
+#: gnu/packages/tex.scm:1459
 msgid ""
 "The package provides hyphenation patterns for Danish in\n"
 "T1/EC and UTF-8 encodings."
 msgstr ""
 
-#: gnu/packages/tex.scm:1513
+#: gnu/packages/tex.scm:1471
 msgid "Hyphenation patterns for Dutch"
 msgstr ""
 
-#: gnu/packages/tex.scm:1514
+#: gnu/packages/tex.scm:1472
 msgid ""
 "The package provides hyphenation patterns for Dutch in T1/EC\n"
 "and UTF-8 encodings."
 msgstr ""
 
-#: gnu/packages/tex.scm:1526
+#: gnu/packages/tex.scm:1484
 msgid "Hyphenation patterns for American and British English"
 msgstr ""
 
-#: gnu/packages/tex.scm:1527
+#: gnu/packages/tex.scm:1485
 msgid ""
 "The package provides additional hyphenation patterns for\n"
 "American and British English in ASCII encoding."
 msgstr ""
 
-#: gnu/packages/tex.scm:1540
+#: gnu/packages/tex.scm:1498
 msgid "Hyphenation patterns for Esperanto"
 msgstr ""
 
-#: gnu/packages/tex.scm:1541
+#: gnu/packages/tex.scm:1499
 msgid ""
 "The package provides hyphenation patterns for Esperanto ISO\n"
 "Latin 3 and UTF-8 encodings."
 msgstr ""
 
-#: gnu/packages/tex.scm:1552
+#: gnu/packages/tex.scm:1510
 msgid "Hyphenation patterns for Estonian"
 msgstr ""
 
-#: gnu/packages/tex.scm:1553
+#: gnu/packages/tex.scm:1511
 msgid ""
 "The package provides hyphenation patterns for Estonian in\n"
 "T1/EC and UTF-8 encodings."
 msgstr ""
 
-#: gnu/packages/tex.scm:1602
+#: gnu/packages/tex.scm:1524
 msgid "Hyphenation patterns for Ethiopic scripts"
 msgstr ""
 
-#: gnu/packages/tex.scm:1603
+#: gnu/packages/tex.scm:1525
 msgid ""
 "The package provides hyphenation patterns for languages\n"
 "written using the Ethiopic script for Unicode engines.  They are not supposed\n"
@@ -20527,144 +22667,144 @@ msgid ""
 "be replaced by files tailored to individual languages."
 msgstr ""
 
-#: gnu/packages/tex.scm:1616
+#: gnu/packages/tex.scm:1538
 msgid "Hyphenation patterns for Finnish"
 msgstr ""
 
-#: gnu/packages/tex.scm:1617
+#: gnu/packages/tex.scm:1539
 msgid ""
 "The package provides hyphenation patterns for Finnish in\n"
 "T1/EC and UTF-8 encodings."
 msgstr ""
 
-#: gnu/packages/tex.scm:1628
+#: gnu/packages/tex.scm:1550
 msgid "Hyphenation patterns for French"
 msgstr ""
 
-#: gnu/packages/tex.scm:1629
+#: gnu/packages/tex.scm:1551
 msgid ""
 "The package provides hyphenation patterns for French in\n"
 "T1/EC and UTF-8 encodings."
 msgstr ""
 
-#: gnu/packages/tex.scm:1640
+#: gnu/packages/tex.scm:1562
 msgid "Hyphenation patterns for Friulan"
 msgstr ""
 
-#: gnu/packages/tex.scm:1641
+#: gnu/packages/tex.scm:1563
 msgid ""
 "The package provides hyphenation patterns for Friulan in\n"
 "ASCII encodings."
 msgstr ""
 
-#: gnu/packages/tex.scm:1687
+#: gnu/packages/tex.scm:1575
 msgid "Hyphenation patterns for Galician"
 msgstr ""
 
-#: gnu/packages/tex.scm:1688
+#: gnu/packages/tex.scm:1576
 msgid ""
 "The package provides hyphenation patterns for Galician in\n"
 "T1/EC and UTF-8 encodings."
 msgstr ""
 
-#: gnu/packages/tex.scm:1700
+#: gnu/packages/tex.scm:1587
 msgid "Hyphenation patterns for Georgian"
 msgstr ""
 
-#: gnu/packages/tex.scm:1701
+#: gnu/packages/tex.scm:1588
 msgid ""
 "The package provides hyphenation patterns for Georgian in\n"
 "T8M, T8K, and UTF-8 encodings."
 msgstr ""
 
-#: gnu/packages/tex.scm:1718 gnu/packages/tex.scm:2397
+#: gnu/packages/tex.scm:1605 gnu/packages/tex.scm:2253
 msgid "Hyphenation patterns for German"
 msgstr ""
 
-#: gnu/packages/tex.scm:1719
+#: gnu/packages/tex.scm:1606
 msgid ""
 "This package provides hyphenation patterns for German in\n"
 "T1/EC and UTF-8 encodings, for traditional and reformed spelling, including\n"
 "Swiss German."
 msgstr ""
 
-#: gnu/packages/tex.scm:1737
+#: gnu/packages/tex.scm:1624
 msgid "Hyphenation patterns for Greek"
 msgstr ""
 
-#: gnu/packages/tex.scm:1738
+#: gnu/packages/tex.scm:1625
 msgid ""
 "This package provides hyphenation patterns for Modern Greek\n"
 "in monotonic and polytonic spelling in LGR and UTF-8 encodings."
 msgstr ""
 
-#: gnu/packages/tex.scm:1751
+#: gnu/packages/tex.scm:1638
 msgid "Hyphenation patterns for Hungarian"
 msgstr ""
 
-#: gnu/packages/tex.scm:1752
+#: gnu/packages/tex.scm:1639
 msgid ""
 "This package provides hyphenation patterns for Hungarian in\n"
 "T1/EC and UTF-8 encodings."
 msgstr ""
 
-#: gnu/packages/tex.scm:1764
+#: gnu/packages/tex.scm:1651
 msgid "Hyphenation patterns for Icelandic"
 msgstr ""
 
-#: gnu/packages/tex.scm:1765
+#: gnu/packages/tex.scm:1652
 msgid ""
 "This package provides hyphenation patterns for Icelandic in\n"
 "T1/EC and UTF-8 encodings."
 msgstr ""
 
-#: gnu/packages/tex.scm:1787
+#: gnu/packages/tex.scm:1674
 msgid "Indic hyphenation patterns"
 msgstr ""
 
-#: gnu/packages/tex.scm:1788
+#: gnu/packages/tex.scm:1675
 msgid ""
 "This package provides hyphenation patterns for Assamese,\n"
 "Bengali, Gujarati, Hindi, Kannada, Malayalam, Marathi, Oriya, Panjabi, Tamil\n"
 "and Telugu for Unicode engines."
 msgstr ""
 
-#: gnu/packages/tex.scm:1800
+#: gnu/packages/tex.scm:1687
 msgid "Indonesian hyphenation patterns"
 msgstr ""
 
-#: gnu/packages/tex.scm:1801
+#: gnu/packages/tex.scm:1688
 msgid ""
 "This package provides hyphenation patterns for\n"
 "Indonesian (Bahasa Indonesia) in ASCII encoding.  They are probably also\n"
 "usable for Malay (Bahasa Melayu)."
 msgstr ""
 
-#: gnu/packages/tex.scm:1813
+#: gnu/packages/tex.scm:1700
 msgid "Interlingua hyphenation patterns"
 msgstr ""
 
-#: gnu/packages/tex.scm:1814
+#: gnu/packages/tex.scm:1701
 msgid ""
 "This package provides hyphenation patterns for Interlingua\n"
 "in ASCII encoding."
 msgstr ""
 
-#: gnu/packages/tex.scm:1825
+#: gnu/packages/tex.scm:1712
 msgid "Irish hyphenation patterns"
 msgstr ""
 
-#: gnu/packages/tex.scm:1826
+#: gnu/packages/tex.scm:1713
 msgid ""
 "This package provides hyphenation patterns for\n"
 "Irish (Gaeilge) in T1/EC and UTF-8 encodings."
 msgstr ""
 
-#: gnu/packages/tex.scm:1838
+#: gnu/packages/tex.scm:1725
 msgid "Italian hyphenation patterns"
 msgstr ""
 
-#: gnu/packages/tex.scm:1839
+#: gnu/packages/tex.scm:1726
 msgid ""
 "This package provides hyphenation patterns for Italian in\n"
 "ASCII encoding.  Compliant with the Recommendation UNI 6461 on hyphenation\n"
@@ -20672,22 +22812,22 @@ msgid ""
 "UNI)."
 msgstr ""
 
-#: gnu/packages/tex.scm:1852
+#: gnu/packages/tex.scm:1739
 msgid "Kurmanji hyphenation patterns"
 msgstr ""
 
-#: gnu/packages/tex.scm:1853
+#: gnu/packages/tex.scm:1740
 msgid ""
 "This package provides hyphenation patterns for\n"
 "Kurmanji (Northern Kurdish) as spoken in Turkey and by the Kurdish diaspora in\n"
 "Europe, in T1/EC and UTF-8 encodings."
 msgstr ""
 
-#: gnu/packages/tex.scm:1867
+#: gnu/packages/tex.scm:1754
 msgid "Liturgical Latin hyphenation patterns"
 msgstr ""
 
-#: gnu/packages/tex.scm:1868
+#: gnu/packages/tex.scm:1755
 msgid ""
 "This package provides hyphenation patterns for Latin in\n"
 "T1/EC and UTF-8 encodings, mainly in modern spelling (u when u is needed and v\n"
@@ -20701,51 +22841,51 @@ msgid ""
 "T1/EC and UTF-8 encodings."
 msgstr ""
 
-#: gnu/packages/tex.scm:1888
+#: gnu/packages/tex.scm:1775
 msgid "Latvian hyphenation patterns"
 msgstr ""
 
-#: gnu/packages/tex.scm:1889
+#: gnu/packages/tex.scm:1776
 msgid ""
 "This package provides hyphenation patterns for Latvian in\n"
 "L7X and UTF-8 encodings."
 msgstr ""
 
-#: gnu/packages/tex.scm:1901
+#: gnu/packages/tex.scm:1788
 msgid "Lithuanian hyphenation patterns"
 msgstr ""
 
-#: gnu/packages/tex.scm:1902
+#: gnu/packages/tex.scm:1789
 msgid ""
 "This package provides hyphenation patterns for Lithuanian in\n"
 "L7X and UTF-8 encodings."
 msgstr ""
 
-#: gnu/packages/tex.scm:1916
+#: gnu/packages/tex.scm:1803
 msgid "Mongolian hyphenation patterns in Cyrillic script"
 msgstr ""
 
-#: gnu/packages/tex.scm:1917
+#: gnu/packages/tex.scm:1804
 msgid ""
 "This package provides hyphenation patterns for Mongolian in\n"
 "T2A, LMC and UTF-8 encodings."
 msgstr ""
 
-#: gnu/packages/tex.scm:1931
+#: gnu/packages/tex.scm:1818
 msgid "Norwegian Bokmal and Nynorsk hyphenation patterns"
 msgstr ""
 
-#: gnu/packages/tex.scm:1932
+#: gnu/packages/tex.scm:1819
 msgid ""
 "This package provides hyphenation patterns for Norwegian\n"
 "Bokmal and Nynorsk in T1/EC and UTF-8 encodings."
 msgstr ""
 
-#: gnu/packages/tex.scm:1945
+#: gnu/packages/tex.scm:1832
 msgid "Occitan hyphenation patterns"
 msgstr ""
 
-#: gnu/packages/tex.scm:1946
+#: gnu/packages/tex.scm:1833
 msgid ""
 "This package provides hyphenation patterns for Occitan in\n"
 "T1/EC and UTF-8 encodings.  They are supposed to be valid for all the Occitan\n"
@@ -20754,144 +22894,154 @@ msgid ""
 "Alps encompassing the southern half of the French pentagon."
 msgstr ""
 
-#: gnu/packages/tex.scm:1960
+#: gnu/packages/tex.scm:1847
+msgid "Panjabi hyphenation patterns"
+msgstr "Worttrennungsmuster für Panjabi"
+
+#: gnu/packages/tex.scm:1848
+msgid ""
+"This package provides hyphenation patterns for Panjabi in\n"
+"T1/EC encoding."
+msgstr "Dieses Paket bietet Worttrennungsmuster für die Sprache Panjabi (Pandschabi) in T1/EC-Kodierung."
+
+#: gnu/packages/tex.scm:1860
 msgid "Piedmontese hyphenation patterns"
 msgstr "Piemontesische Worttrennungsmuster"
 
-#: gnu/packages/tex.scm:1961
+#: gnu/packages/tex.scm:1861
 msgid ""
 "This package provides hyphenation patterns for Piedmontese\n"
 "in ASCII encoding.  Compliant with 'Gramatica dla lengua piemonteisa' by\n"
 "Camillo Brero."
 msgstr ""
 
-#: gnu/packages/tex.scm:1973
+#: gnu/packages/tex.scm:1873
 msgid "Polish hyphenation patterns"
 msgstr ""
 
-#: gnu/packages/tex.scm:1974
+#: gnu/packages/tex.scm:1874
 msgid ""
 "This package provides hyphenation patterns for Polish in QX\n"
 "and UTF-8 encodings."
 msgstr ""
 
-#: gnu/packages/tex.scm:1986
+#: gnu/packages/tex.scm:1886
 msgid "Portuguese hyphenation patterns"
 msgstr ""
 
-#: gnu/packages/tex.scm:1987
+#: gnu/packages/tex.scm:1887
 msgid ""
 "This package provides hyphenation patterns for Portuguese in\n"
 "T1/EC and UTF-8 encodings."
 msgstr ""
 
-#: gnu/packages/tex.scm:1998
+#: gnu/packages/tex.scm:1898
 msgid "Romanian hyphenation patterns"
 msgstr ""
 
-#: gnu/packages/tex.scm:1999
+#: gnu/packages/tex.scm:1899
 msgid ""
 "This package provides hyphenation patterns for Romanian in\n"
 "T1/EC and UTF-8 encodings."
 msgstr ""
 
-#: gnu/packages/tex.scm:2011
+#: gnu/packages/tex.scm:1911
 msgid "Romansh hyphenation patterns"
 msgstr ""
 
-#: gnu/packages/tex.scm:2012
+#: gnu/packages/tex.scm:1912
 msgid ""
 "This package provides hyphenation patterns for Romansh in\n"
 "ASCII encodings.  They are supposed to comply with the rules indicated by the\n"
 "Lia Rumantscha (Romansh language society)."
 msgstr ""
 
-#: gnu/packages/tex.scm:2024
+#: gnu/packages/tex.scm:1924
 msgid "Russian hyphenation patterns"
 msgstr ""
 
-#: gnu/packages/tex.scm:2025
+#: gnu/packages/tex.scm:1925
 msgid ""
 "This package provides hyphenation patterns for Russian in\n"
 "T2A and UTF-8 encodings."
 msgstr ""
 
-#: gnu/packages/tex.scm:2037
+#: gnu/packages/tex.scm:1937
 msgid "Sanskrit hyphenation patterns"
 msgstr ""
 
-#: gnu/packages/tex.scm:2038
+#: gnu/packages/tex.scm:1938
 msgid ""
 "This package provides hyphenation patterns for Sanskrit and\n"
 "Prakrit in longdesc transliteration, and in Devanagari, Bengali, Kannada,\n"
 "Malayalam longdesc and Telugu scripts for Unicode engines."
 msgstr ""
 
-#: gnu/packages/tex.scm:2054
+#: gnu/packages/tex.scm:1954
 msgid "Serbian hyphenation patterns"
 msgstr ""
 
-#: gnu/packages/tex.scm:2055
+#: gnu/packages/tex.scm:1955
 msgid ""
 "This package provides hyphenation patterns for Serbian in\n"
 "T1/EC, T2A and UTF-8 encodings."
 msgstr ""
 
-#: gnu/packages/tex.scm:2067
+#: gnu/packages/tex.scm:1967
 msgid "Slovak hyphenation patterns"
 msgstr ""
 
-#: gnu/packages/tex.scm:2068
+#: gnu/packages/tex.scm:1968
 msgid ""
 "This package provides hyphenation patterns for Slovak in\n"
 "T1/EC and UTF-8 encodings."
 msgstr ""
 
-#: gnu/packages/tex.scm:2079
+#: gnu/packages/tex.scm:1979
 msgid "Slovenian hyphenation patterns"
 msgstr ""
 
-#: gnu/packages/tex.scm:2080
+#: gnu/packages/tex.scm:1980
 msgid ""
 "This package provides hyphenation patterns for Slovenian in\n"
 "T1/EC and UTF-8 encodings."
 msgstr ""
 
-#: gnu/packages/tex.scm:2095
+#: gnu/packages/tex.scm:1995
 msgid "Hyphenation patterns for Spanish"
 msgstr ""
 
-#: gnu/packages/tex.scm:2096
+#: gnu/packages/tex.scm:1996
 msgid ""
 "The package provides hyphenation patterns for Spanish in\n"
 "T1/EC and UTF-8 encodings."
 msgstr ""
 
-#: gnu/packages/tex.scm:2107
+#: gnu/packages/tex.scm:2007
 msgid "Swedish hyphenation patterns"
 msgstr ""
 
-#: gnu/packages/tex.scm:2108
+#: gnu/packages/tex.scm:2008
 msgid ""
 "This package provides hyphenation patterns for Swedish in\n"
 "T1/EC and UTF-8 encodings."
 msgstr ""
 
-#: gnu/packages/tex.scm:2119
+#: gnu/packages/tex.scm:2019
 msgid "Thai hyphenation patterns"
 msgstr ""
 
-#: gnu/packages/tex.scm:2120
+#: gnu/packages/tex.scm:2020
 msgid ""
 "This package provides hyphenation patterns for Thai in LTH\n"
 "and UTF-8 encodings."
 msgstr ""
 
-#: gnu/packages/tex.scm:2154
+#: gnu/packages/tex.scm:2032
 msgid "Hyphenation patterns for Turkish"
 msgstr ""
 
-#: gnu/packages/tex.scm:2155
+#: gnu/packages/tex.scm:2033
 msgid ""
 "The package provides hyphenation patterns for Turkish in\n"
 "T1/EC and UTF-8 encodings.  The patterns for Turkish were first produced for\n"
@@ -20901,51 +23051,51 @@ msgid ""
 "compatibility with 8-bit engines."
 msgstr ""
 
-#: gnu/packages/tex.scm:2193
+#: gnu/packages/tex.scm:2049
 msgid "Hyphenation patterns for Turkmen"
 msgstr ""
 
-#: gnu/packages/tex.scm:2194
+#: gnu/packages/tex.scm:2050
 msgid ""
 "The package provides hyphenation patterns for Turkmen in\n"
 "T1/EC and UTF-8 encodings."
 msgstr ""
 
-#: gnu/packages/tex.scm:2205
+#: gnu/packages/tex.scm:2061
 msgid "Ukrainian hyphenation patterns"
 msgstr "Ukrainische Worttrennungsmuster"
 
-#: gnu/packages/tex.scm:2206
+#: gnu/packages/tex.scm:2062
 msgid ""
 "This package provides hyphenation patterns for Ukrainian in\n"
 "T2A and UTF-8 encodings."
 msgstr ""
 
-#: gnu/packages/tex.scm:2218
+#: gnu/packages/tex.scm:2074
 msgid "Upper Sorbian hyphenation patterns"
 msgstr ""
 
-#: gnu/packages/tex.scm:2219
+#: gnu/packages/tex.scm:2075
 msgid ""
 "This package provides hyphenation patterns for Upper Sorbian\n"
 "in T1/EC and UTF-8 encodings."
 msgstr ""
 
-#: gnu/packages/tex.scm:2230
+#: gnu/packages/tex.scm:2086
 msgid "Welsh hyphenation patterns"
 msgstr ""
 
-#: gnu/packages/tex.scm:2231
+#: gnu/packages/tex.scm:2087
 msgid ""
 "This package provides hyphenation patterns for Welsh in\n"
 "T1/EC and UTF-8 encodings."
 msgstr ""
 
-#: gnu/packages/tex.scm:2351
+#: gnu/packages/tex.scm:2207
 msgid "Hyphenation patterns expressed in UTF-8"
 msgstr ""
 
-#: gnu/packages/tex.scm:2352
+#: gnu/packages/tex.scm:2208
 msgid ""
 "Modern native UTF-8 engines such as XeTeX and LuaTeX need\n"
 "hyphenation patterns in UTF-8 format, whereas older systems require\n"
@@ -20958,7 +23108,7 @@ msgid ""
 "converters, will completely supplant the older patterns."
 msgstr ""
 
-#: gnu/packages/tex.scm:2398
+#: gnu/packages/tex.scm:2254
 msgid ""
 "The package provides experimental hyphenation patterns for\n"
 "the German language, covering both traditional and reformed orthography.  The\n"
@@ -20966,33 +23116,33 @@ msgid ""
 "bundle."
 msgstr ""
 
-#: gnu/packages/tex.scm:2419
+#: gnu/packages/tex.scm:2275
 msgid "Hyphenation patterns for Ukrainian"
 msgstr ""
 
-#: gnu/packages/tex.scm:2420
+#: gnu/packages/tex.scm:2276
 msgid ""
 "The package provides a range of hyphenation patterns for\n"
 "Ukrainian, depending on the encoding of the output font including the standard\n"
 "T2A."
 msgstr ""
 
-#: gnu/packages/tex.scm:2458
+#: gnu/packages/tex.scm:2314
 msgid "Hyphenation patterns for Russian"
 msgstr ""
 
-#: gnu/packages/tex.scm:2459
+#: gnu/packages/tex.scm:2315
 msgid ""
 "The package provides a collection of Russian hyphenation\n"
 "patterns supporting a number of Cyrillic font encodings, including T2,\n"
 "UCY (Omega Unicode Cyrillic), LCY, LWN (OT2), and koi8-r."
 msgstr ""
 
-#: gnu/packages/tex.scm:2501
+#: gnu/packages/tex.scm:2357
 msgid "Files related to the path searching library for TeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:2502
+#: gnu/packages/tex.scm:2358
 msgid ""
 "Kpathsea is a library and utility programs which provide\n"
 "path searching facilities for TeX file types, including the self-locating\n"
@@ -21000,21 +23150,21 @@ msgid ""
 "mechanism.  This package provides supporting files."
 msgstr ""
 
-#: gnu/packages/tex.scm:2517
+#: gnu/packages/tex.scm:2373
 msgid "Configuration files for LaTeX-related formats"
 msgstr "Konfigurationsdateien für LaTeX und verwandte Formate"
 
-#: gnu/packages/tex.scm:2518
+#: gnu/packages/tex.scm:2374
 msgid ""
 "The package provides configuration files for LaTeX-related\n"
 "formats."
 msgstr "Dieses Paket bietet Konfigurationsdateien für LaTeX und verwandte Formate."
 
-#: gnu/packages/tex.scm:2723
+#: gnu/packages/tex.scm:2586
 msgid "Base sources of LaTeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:2725
+#: gnu/packages/tex.scm:2588
 msgid ""
 "This bundle comprises the source of LaTeX itself, together with several\n"
 "packages which are considered \"part of the kernel\".  This bundle, together\n"
@@ -21022,11 +23172,11 @@ msgid ""
 "contain."
 msgstr ""
 
-#: gnu/packages/tex.scm:2745
+#: gnu/packages/tex.scm:2608
 msgid "Extended filecontents and filecontents* environments"
 msgstr ""
 
-#: gnu/packages/tex.scm:2747
+#: gnu/packages/tex.scm:2610
 msgid ""
 "LaTeX2e's @code{filecontents} and @code{filecontents*} environments\n"
 "enable a LaTeX source file to generate external files as it runs through\n"
@@ -21037,22 +23187,22 @@ msgid ""
 "@code{filecontents*} anywhere."
 msgstr ""
 
-#: gnu/packages/tex.scm:2774
+#: gnu/packages/tex.scm:2637
 msgid "Am I running under XeTeX?"
 msgstr ""
 
-#: gnu/packages/tex.scm:2776
+#: gnu/packages/tex.scm:2639
 msgid ""
 "This is a simple package which provides an @code{\\ifxetex} conditional,\n"
 "so that other code can determine that it is running under XeTeX.  The package\n"
 "requires the e-TeX extensions to the TeX primitive set."
 msgstr ""
 
-#: gnu/packages/tex.scm:2791
+#: gnu/packages/tex.scm:2654
 msgid "Simple macros for EPS inclusion"
 msgstr ""
 
-#: gnu/packages/tex.scm:2793
+#: gnu/packages/tex.scm:2656
 msgid ""
 "This package provides the original (and now obsolescent) graphics\n"
 "inclusion macros for use with dvips, still widely used by Plain TeX users (in\n"
@@ -21062,11 +23212,11 @@ msgid ""
 "users, via its Plain TeX version.)"
 msgstr ""
 
-#: gnu/packages/tex.scm:2820
+#: gnu/packages/tex.scm:2677
 msgid "Sophisticated verbatim text"
 msgstr ""
 
-#: gnu/packages/tex.scm:2822
+#: gnu/packages/tex.scm:2679
 msgid ""
 "This package provides tools for the flexible handling of verbatim text\n"
 "including: verbatim commands in footnotes; a variety of verbatim environments\n"
@@ -21076,11 +23226,11 @@ msgid ""
 "verbatim source)."
 msgstr ""
 
-#: gnu/packages/tex.scm:2840
+#: gnu/packages/tex.scm:2697
 msgid "Color and graphics option files"
 msgstr ""
 
-#: gnu/packages/tex.scm:2842
+#: gnu/packages/tex.scm:2699
 msgid ""
 "This bundle is a combined distribution consisting of @file{dvips.def},\n"
 "@file{pdftex.def}, @file{luatex.def}, @file{xetex.def}, @file{dvipdfmx.def},\n"
@@ -21088,21 +23238,21 @@ msgid ""
 "packages."
 msgstr ""
 
-#: gnu/packages/tex.scm:2858
+#: gnu/packages/tex.scm:2715
 msgid "Sample configuration files for LaTeX color and graphics"
 msgstr ""
 
-#: gnu/packages/tex.scm:2860
+#: gnu/packages/tex.scm:2717
 msgid ""
 "This bundle includes @file{color.cfg} and @file{graphics.cfg} files that\n"
 "set default \"driver\" options for the color and graphics packages."
 msgstr ""
 
-#: gnu/packages/tex.scm:2881
+#: gnu/packages/tex.scm:2738
 msgid "LaTeX standard graphics bundle"
 msgstr ""
 
-#: gnu/packages/tex.scm:2883
+#: gnu/packages/tex.scm:2740
 msgid ""
 "This is a collection of LaTeX packages for producing color, including\n"
 "graphics (e.g. PostScript) files, and rotation and scaling of text in LaTeX\n"
@@ -21110,11 +23260,11 @@ msgid ""
 "keyval, and lscape."
 msgstr ""
 
-#: gnu/packages/tex.scm:2915
+#: gnu/packages/tex.scm:2772
 msgid "Driver-independent color extensions for LaTeX and pdfLaTeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:2917
+#: gnu/packages/tex.scm:2774
 msgid ""
 "The package starts from the basic facilities of the colorcolor package,\n"
 "and provides easy driver-independent access to several kinds of color tints,\n"
@@ -21125,11 +23275,11 @@ msgid ""
 "tables."
 msgstr ""
 
-#: gnu/packages/tex.scm:2949
+#: gnu/packages/tex.scm:2806
 msgid "Extensive support for hypertext in LaTeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:2951
+#: gnu/packages/tex.scm:2808
 msgid ""
 "The @code{hyperref} package is used to handle cross-referencing commands\n"
 "in LaTeX to produce hypertext links in the document.  The package provides\n"
@@ -21141,22 +23291,22 @@ msgid ""
 "@code{nameref} packages, which make use of the facilities of @code{hyperref}."
 msgstr ""
 
-#: gnu/packages/tex.scm:2987
+#: gnu/packages/tex.scm:2844
 msgid "Bundle of packages submitted by Heiko Oberdiek"
 msgstr ""
 
-#: gnu/packages/tex.scm:2989
+#: gnu/packages/tex.scm:2846
 msgid ""
 "The bundle comprises various LaTeX packages, providing among others:\n"
 "better accessibility support for PDF files; extensible chemists reaction\n"
 "arrows; record information about document class(es) used; and many more."
 msgstr ""
 
-#: gnu/packages/tex.scm:3010 gnu/packages/tex.scm:7212
+#: gnu/packages/tex.scm:2867 gnu/packages/tex.scm:7165
 msgid "LaTeX standard tools bundle"
 msgstr ""
 
-#: gnu/packages/tex.scm:3012
+#: gnu/packages/tex.scm:2869
 msgid ""
 "This package is a collection of (variously) simple tools provided as\n"
 "part of the LaTeX required tools distribution, comprising the following\n"
@@ -21166,11 +23316,11 @@ msgid ""
 "xr, and xspace."
 msgstr ""
 
-#: gnu/packages/tex.scm:3030
+#: gnu/packages/tex.scm:2887
 msgid "Verbatim with URL-sensitive line breaks"
 msgstr ""
 
-#: gnu/packages/tex.scm:3031
+#: gnu/packages/tex.scm:2888
 msgid ""
 "The command @code{\\url} is a form of verbatim command that\n"
 "allows linebreaks at certain characters or combinations of characters, accepts\n"
@@ -21182,22 +23332,22 @@ msgid ""
 "of file names."
 msgstr ""
 
-#: gnu/packages/tex.scm:3057
+#: gnu/packages/tex.scm:2914
 msgid "Font maps originally from teTeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:3058
+#: gnu/packages/tex.scm:2915
 msgid ""
 "This package provides font maps that were originally part of\n"
 "the now obsolete teTeX distributions but are still used at the core of the TeX\n"
 "Live distribution."
 msgstr ""
 
-#: gnu/packages/tex.scm:3078
+#: gnu/packages/tex.scm:2935
 msgid "LaTeX3 programmers’ interface"
 msgstr ""
 
-#: gnu/packages/tex.scm:3080
+#: gnu/packages/tex.scm:2937
 msgid ""
 "The l3kernel bundle provides an implementation of the LaTeX3\n"
 "programmers’ interface, as a set of packages that run under LaTeX 2e.  The\n"
@@ -21206,11 +23356,11 @@ msgid ""
 "that the LaTeX3 conventions can be used with regular LaTeX 2e packages."
 msgstr ""
 
-#: gnu/packages/tex.scm:3125
+#: gnu/packages/tex.scm:2982
 msgid "High-level LaTeX3 concepts"
 msgstr ""
 
-#: gnu/packages/tex.scm:3127
+#: gnu/packages/tex.scm:2984
 msgid ""
 "This bundle holds prototype implementations of concepts for a LaTeX\n"
 "designer interface, to be used with the experimental LaTeX kernel as\n"
@@ -21227,11 +23377,11 @@ msgid ""
 "@end enumerate\n"
 msgstr ""
 
-#: gnu/packages/tex.scm:3187
+#: gnu/packages/tex.scm:3044
 msgid "Advanced font selection in XeLaTeX and LuaLaTeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:3189
+#: gnu/packages/tex.scm:3046
 msgid ""
 "Fontspec is a package for XeLaTeX and LuaLaTeX.  It provides an\n"
 "automatic and unified interface to feature-rich AAT and OpenType fonts through\n"
@@ -21239,22 +23389,22 @@ msgid ""
 "the l3kernel and xparse bundles from the LaTeX 3 development team."
 msgstr ""
 
-#: gnu/packages/tex.scm:3225
+#: gnu/packages/tex.scm:3082
 msgid "Lua modules for general programming (in the (La)TeX world)"
 msgstr ""
 
-#: gnu/packages/tex.scm:3227
+#: gnu/packages/tex.scm:3084
 msgid ""
 "Lualibs is a collection of Lua modules useful for general programming.\n"
 "The bundle is based on Lua modules shipped with ConTeXt, and made available in\n"
 "this bundle for use independent of ConTeXt."
 msgstr ""
 
-#: gnu/packages/tex.scm:3315
+#: gnu/packages/tex.scm:3172
 msgid "OpenType font loader for LuaTeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:3317
+#: gnu/packages/tex.scm:3174
 msgid ""
 "Luaotfload is an adaptation of the ConTeXt font loading system for the\n"
 "Plain and LaTeX formats.  It allows OpenType fonts to be loaded with font\n"
@@ -21263,11 +23413,11 @@ msgid ""
 "loading fonts by their proper names instead of file names."
 msgstr ""
 
-#: gnu/packages/tex.scm:3339
+#: gnu/packages/tex.scm:3196
 msgid "AMS mathematical facilities for LaTeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:3341
+#: gnu/packages/tex.scm:3198
 msgid ""
 "This is the principal package in the AMS-LaTeX distribution.  It adapts\n"
 "for use in LaTeX most of the mathematical features found in AMS-TeX; it is\n"
@@ -21282,11 +23432,11 @@ msgid ""
 "definitions."
 msgstr ""
 
-#: gnu/packages/tex.scm:3369
+#: gnu/packages/tex.scm:3226
 msgid "AMS document classes for LaTeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:3371
+#: gnu/packages/tex.scm:3228
 msgid ""
 "This bundle contains three AMS classes: @code{amsartamsart} (for writing\n"
 "articles for the AMS), @code{amsbookamsbook} (for books) and\n"
@@ -21295,11 +23445,11 @@ msgid ""
 "distribution."
 msgstr ""
 
-#: gnu/packages/tex.scm:3402
+#: gnu/packages/tex.scm:3259
 msgid "Multilingual support for Plain TeX or LaTeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:3404
+#: gnu/packages/tex.scm:3261
 msgid ""
 "The package manages culturally-determined typographical (and other)\n"
 "rules, and hyphenation patterns for a wide range of languages.  A document may\n"
@@ -21310,11 +23460,11 @@ msgid ""
 "polyglossia package rather than Babel."
 msgstr ""
 
-#: gnu/packages/tex.scm:3427
+#: gnu/packages/tex.scm:3284
 msgid "Babel support for English"
 msgstr ""
 
-#: gnu/packages/tex.scm:3429
+#: gnu/packages/tex.scm:3286
 msgid ""
 "This package provides the language definition file for support of\n"
 "English in @code{babel}.  Care is taken to select British hyphenation patterns\n"
@@ -21322,11 +23472,11 @@ msgid ""
 "for Canadian and USA text."
 msgstr ""
 
-#: gnu/packages/tex.scm:3449
+#: gnu/packages/tex.scm:3306
 msgid "Babel support for German"
 msgstr ""
 
-#: gnu/packages/tex.scm:3451
+#: gnu/packages/tex.scm:3308
 msgid ""
 "This package provides the language definition file for support of German\n"
 "in @code{babel}.  It provides all the necessary macros, definitions and\n"
@@ -21335,11 +23485,11 @@ msgid ""
 "Swiss varieties of German."
 msgstr ""
 
-#: gnu/packages/tex.scm:3473
+#: gnu/packages/tex.scm:3330
 msgid "Support for Cyrillic fonts in LaTeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:3475
+#: gnu/packages/tex.scm:3332
 msgid ""
 "This bundle of macros files provides macro support (including font\n"
 "encoding macros) for the use of Cyrillic characters in fonts encoded under the\n"
@@ -21347,11 +23497,11 @@ msgid ""
 "language that is written in a Cyrillic alphabet."
 msgstr ""
 
-#: gnu/packages/tex.scm:3495
+#: gnu/packages/tex.scm:3352
 msgid "Font support for common PostScript fonts"
 msgstr ""
 
-#: gnu/packages/tex.scm:3497
+#: gnu/packages/tex.scm:3354
 msgid ""
 "The PSNFSS collection includes a set of files that provide a complete\n"
 "working setup of the LaTeX font selection scheme (NFSS2) for use with common\n"
@@ -21362,31 +23512,31 @@ msgid ""
 "packages."
 msgstr ""
 
-#: gnu/packages/tex.scm:3539
+#: gnu/packages/tex.scm:3396
 msgid "TeX Live base packages"
 msgstr ""
 
-#: gnu/packages/tex.scm:3540 gnu/packages/tex.scm:3678
+#: gnu/packages/tex.scm:3397 gnu/packages/tex.scm:3535
 msgid ""
 "This is a very limited subset of the TeX Live distribution.\n"
 "It includes little more than the required set of LaTeX packages."
 msgstr ""
 
-#: gnu/packages/tex.scm:3661
+#: gnu/packages/tex.scm:3518
 msgid "Union of TeX Live packages"
 msgstr ""
 
-#: gnu/packages/tex.scm:3662
+#: gnu/packages/tex.scm:3519
 msgid ""
 "This package provides a subset of the TeX Live\n"
 "distribution."
 msgstr ""
 
-#: gnu/packages/tex.scm:3695
+#: gnu/packages/tex.scm:3552
 msgid "LaTeX-based replacement for BibTeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:3697
+#: gnu/packages/tex.scm:3554
 msgid ""
 "Amsrefs is a LaTeX package for bibliographies that provides an archival\n"
 "data format similar to the format of BibTeX database files, but adapted to\n"
@@ -21394,11 +23544,11 @@ msgid ""
 "conjunction with BibTeX or as a replacement for BibTeX."
 msgstr ""
 
-#: gnu/packages/tex.scm:3724
+#: gnu/packages/tex.scm:3581
 msgid "Footnotes for critical editions"
 msgstr ""
 
-#: gnu/packages/tex.scm:3726
+#: gnu/packages/tex.scm:3583
 msgid ""
 "This package aims to provide a one-stop solution to requirements for\n"
 "footnotes.  It offers: Multiple footnote apparatus superior to that of\n"
@@ -21412,11 +23562,11 @@ msgid ""
 "@code{suffix} packages."
 msgstr ""
 
-#: gnu/packages/tex.scm:3752
+#: gnu/packages/tex.scm:3609
 msgid "Producing 'blind' text for testing"
 msgstr ""
 
-#: gnu/packages/tex.scm:3754
+#: gnu/packages/tex.scm:3611
 msgid ""
 "The package provides the commands @code{\\blindtext} and\n"
 "@code{\\Blindtext} for creating \"blind\" text useful in testing new classes\n"
@@ -21427,11 +23577,11 @@ msgid ""
 "ipsum\" text, see the @code{lipsum} package)."
 msgstr ""
 
-#: gnu/packages/tex.scm:3791
+#: gnu/packages/tex.scm:3648
 msgid "German letter DIN style"
 msgstr ""
 
-#: gnu/packages/tex.scm:3793
+#: gnu/packages/tex.scm:3650
 msgid ""
 "This package implements a document layout for writing letters according\n"
 "to the rules of DIN (Deutsches Institut für Normung, German standardisation\n"
@@ -21443,11 +23593,11 @@ msgid ""
 "package."
 msgstr ""
 
-#: gnu/packages/tex.scm:3817
+#: gnu/packages/tex.scm:3674
 msgid "Put a grey textual watermark on document pages"
 msgstr ""
 
-#: gnu/packages/tex.scm:3819
+#: gnu/packages/tex.scm:3676
 msgid ""
 "This package provides a means to add a textual, light grey watermark on\n"
 "every page or on the first page of a document.  Typical usage may consist in\n"
@@ -21457,11 +23607,11 @@ msgid ""
 "on everypage."
 msgstr ""
 
-#: gnu/packages/tex.scm:3841
+#: gnu/packages/tex.scm:3698
 msgid "New interface for environments in LaTeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:3843
+#: gnu/packages/tex.scm:3700
 msgid ""
 "This package provides the @code{\\collect@@body} command (as in\n"
 "@code{amsmath}), as well as a @code{\\long} version @code{\\Collect@@Body},\n"
@@ -21469,11 +23619,11 @@ msgid ""
 "define a new author interface to creating new environments."
 msgstr ""
 
-#: gnu/packages/tex.scm:3863
+#: gnu/packages/tex.scm:3720
 msgid "Create equal-widthed parboxes"
 msgstr ""
 
-#: gnu/packages/tex.scm:3865
+#: gnu/packages/tex.scm:3722
 msgid ""
 "LaTeX users sometimes need to ensure that two or more blocks of text\n"
 "occupy the same amount of horizontal space on the page.  To that end, the\n"
@@ -21487,11 +23637,11 @@ msgid ""
 "also provided."
 msgstr ""
 
-#: gnu/packages/tex.scm:3899
+#: gnu/packages/tex.scm:3756
 msgid "Expanded description environments"
 msgstr ""
 
-#: gnu/packages/tex.scm:3901
+#: gnu/packages/tex.scm:3758
 msgid ""
 "The package provides additional features for the LaTeX\n"
 "@code{description} environment, including adjustable left margin.  The package\n"
@@ -21500,11 +23650,11 @@ msgid ""
 "@code{enumerate} lists, and numbered lists remain in sequence)."
 msgstr ""
 
-#: gnu/packages/tex.scm:3919
+#: gnu/packages/tex.scm:3776
 msgid "Provide file modification times, and compare them"
 msgstr ""
 
-#: gnu/packages/tex.scm:3921
+#: gnu/packages/tex.scm:3778
 msgid ""
 "This package provides macros to read and compare the modification dates\n"
 "of files.  The files may be @code{.tex} files, images or other files (as long\n"
@@ -21516,11 +23666,11 @@ msgid ""
 "but non-expandable ones."
 msgstr ""
 
-#: gnu/packages/tex.scm:3948
+#: gnu/packages/tex.scm:3805
 msgid "Conditionals to test which platform is being used"
 msgstr ""
 
-#: gnu/packages/tex.scm:3950
+#: gnu/packages/tex.scm:3807
 msgid ""
 "This package uses the (La)TeX extension @code{-shell-escape} to\n"
 "establish whether the document is being processed on a Windows or on a\n"
@@ -21531,11 +23681,11 @@ msgid ""
 "classes of systems."
 msgstr ""
 
-#: gnu/packages/tex.scm:3973
+#: gnu/packages/tex.scm:3830
 msgid "Flexible bibliography support"
 msgstr ""
 
-#: gnu/packages/tex.scm:3975
+#: gnu/packages/tex.scm:3832
 msgid ""
 "This bundle provides a package that implements both author-year and\n"
 "numbered references, as well as much detailed of support for other\n"
@@ -21545,11 +23695,11 @@ msgid ""
 "designed from the start to be compatible with @code{natbib}."
 msgstr ""
 
-#: gnu/packages/tex.scm:3997
+#: gnu/packages/tex.scm:3854
 msgid "Replace strings in encapsulated PostScript figures"
 msgstr ""
 
-#: gnu/packages/tex.scm:3999
+#: gnu/packages/tex.scm:3856
 msgid ""
 "This package allows LaTeX constructions (equations, picture\n"
 "environments, etc.) to be precisely superimposed over Encapsulated PostScript\n"
@@ -21560,11 +23710,11 @@ msgid ""
 "rotated."
 msgstr ""
 
-#: gnu/packages/tex.scm:4029
+#: gnu/packages/tex.scm:3886
 msgid "Process PostScript graphics within pdfLaTeX documents"
 msgstr ""
 
-#: gnu/packages/tex.scm:4031
+#: gnu/packages/tex.scm:3888
 msgid ""
 "This is a package for processing PostScript graphics with @code{psfrag}\n"
 "labels within pdfLaTeX documents.  Every graphic is compiled individually,\n"
@@ -21572,11 +23722,11 @@ msgid ""
 "re-processing."
 msgstr ""
 
-#: gnu/packages/tex.scm:4050
+#: gnu/packages/tex.scm:3907
 msgid "Make overhead slides"
 msgstr ""
 
-#: gnu/packages/tex.scm:4053
+#: gnu/packages/tex.scm:3910
 msgid ""
 "This package provides a class that produces overhead\n"
 "slides (transparencies), with many facilities.  Seminar is not nowadays\n"
@@ -21585,11 +23735,11 @@ msgid ""
 "21st-century presentation styles."
 msgstr ""
 
-#: gnu/packages/tex.scm:4089
+#: gnu/packages/tex.scm:3946
 msgid "Trim spaces around an argument or within a macro"
 msgstr ""
 
-#: gnu/packages/tex.scm:4091
+#: gnu/packages/tex.scm:3948
 msgid ""
 "This very short package allows you to expandably remove spaces around a\n"
 "token list (commands are provided to remove spaces before, spaces after, or\n"
@@ -21597,21 +23747,21 @@ msgid ""
 "space-stripped macros."
 msgstr ""
 
-#: gnu/packages/tex.scm:4124
+#: gnu/packages/tex.scm:3981
 msgid "Captions on more than floats"
 msgstr ""
 
-#: gnu/packages/tex.scm:4126
+#: gnu/packages/tex.scm:3983
 msgid ""
 "This package defines a command @code{\\captionof} for putting a caption\n"
 "to something that's not a float."
 msgstr ""
 
-#: gnu/packages/tex.scm:4140
+#: gnu/packages/tex.scm:3997
 msgid "Create correct hyperlinks for DOI numbers"
 msgstr ""
 
-#: gnu/packages/tex.scm:4142
+#: gnu/packages/tex.scm:3999
 msgid ""
 "You can hyperlink DOI numbers to doi.org.  However, some publishers have\n"
 "elected to use nasty characters in their DOI numbering scheme (@code{<},\n"
@@ -21621,11 +23771,11 @@ msgid ""
 "hyperlink to the target of the DOI."
 msgstr ""
 
-#: gnu/packages/tex.scm:4164
+#: gnu/packages/tex.scm:4021
 msgid "e-TeX tools for LaTeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:4166
+#: gnu/packages/tex.scm:4023
 msgid ""
 "This package is a toolbox of programming facilities geared primarily\n"
 "towards LaTeX class and package authors.  It provides LaTeX frontends to some\n"
@@ -21636,11 +23786,11 @@ msgid ""
 "of the LaTeX kernel."
 msgstr ""
 
-#: gnu/packages/tex.scm:4205
+#: gnu/packages/tex.scm:4062
 msgid "Seven predefined chapter heading styles"
 msgstr ""
 
-#: gnu/packages/tex.scm:4207
+#: gnu/packages/tex.scm:4064
 msgid ""
 "This package provides seven predefined chapter heading styles.  Each\n"
 "style can be modified using a set of simple commands.  Optionally one can\n"
@@ -21648,11 +23798,11 @@ msgid ""
 "headings."
 msgstr ""
 
-#: gnu/packages/tex.scm:4240
+#: gnu/packages/tex.scm:4097
 msgid "Framed or shaded regions that can break across pages"
 msgstr ""
 
-#: gnu/packages/tex.scm:4242
+#: gnu/packages/tex.scm:4099
 msgid ""
 "The package creates three environments: @code{framed}, which puts an\n"
 "ordinary frame box around the region, @code{shaded}, which shades the region,\n"
@@ -21663,11 +23813,11 @@ msgid ""
 "@code{\\MakeFramed} to make your own framed-style environments."
 msgstr ""
 
-#: gnu/packages/tex.scm:4274
+#: gnu/packages/tex.scm:4131
 msgid "Letter document class"
 msgstr ""
 
-#: gnu/packages/tex.scm:4276
+#: gnu/packages/tex.scm:4133
 msgid ""
 "This package is designed for formatting formless letters in German; it\n"
 "can also be used for English (by those who can read the documentation).  There\n"
@@ -21675,21 +23825,21 @@ msgid ""
 "\"old\" and a \"new\" version of g-brief."
 msgstr ""
 
-#: gnu/packages/tex.scm:4296
+#: gnu/packages/tex.scm:4153
 msgid "Typeset Galois connections"
 msgstr ""
 
-#: gnu/packages/tex.scm:4298
+#: gnu/packages/tex.scm:4155
 msgid ""
 "The package deals with connections in two-dimensional style, optionally\n"
 "in colour."
 msgstr ""
 
-#: gnu/packages/tex.scm:4316
+#: gnu/packages/tex.scm:4173
 msgid "Citations in a reader-friendly style"
 msgstr ""
 
-#: gnu/packages/tex.scm:4318
+#: gnu/packages/tex.scm:4175
 msgid ""
 "The package allows citations in the German style, which is considered by\n"
 "many to be particularly reader-friendly.  The citation provides a small amount\n"
@@ -21699,11 +23849,11 @@ msgid ""
 "BibLaTeX, and is considered experimental."
 msgstr ""
 
-#: gnu/packages/tex.scm:4342
+#: gnu/packages/tex.scm:4199
 msgid "Flexible and complete interface to document dimensions"
 msgstr ""
 
-#: gnu/packages/tex.scm:4344
+#: gnu/packages/tex.scm:4201
 msgid ""
 "This package provides an easy and flexible user interface to customize\n"
 "page layout, implementing auto-centering and auto-balancing mechanisms so that\n"
@@ -21714,11 +23864,11 @@ msgid ""
 "ability to communicate the paper size it's set up to the output."
 msgstr ""
 
-#: gnu/packages/tex.scm:4367
+#: gnu/packages/tex.scm:4224
 msgid "Miscellaneous tools by Mark Wooding"
 msgstr ""
 
-#: gnu/packages/tex.scm:4369
+#: gnu/packages/tex.scm:4226
 msgid ""
 "This collection of tools includes: @code{atsupport} for short commands\n"
 "starting with @code{@@}, macros to sanitize the OT1 encoding of the\n"
@@ -21728,21 +23878,21 @@ msgid ""
 "array environments; verbatim handling; and syntax diagrams."
 msgstr ""
 
-#: gnu/packages/tex.scm:4391
+#: gnu/packages/tex.scm:4248
 msgid "Alternative to babel for XeLaTeX and LuaLaTeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:4393
+#: gnu/packages/tex.scm:4250
 msgid ""
 "This package provides a complete Babel replacement for users of LuaLaTeX\n"
 "and XeLaTeX; it relies on the @code{fontspec} package, version 2.0 at least."
 msgstr ""
 
-#: gnu/packages/tex.scm:4411
+#: gnu/packages/tex.scm:4268
 msgid "Multi-page tables package"
 msgstr ""
 
-#: gnu/packages/tex.scm:4413
+#: gnu/packages/tex.scm:4270
 msgid ""
 "This package was a predecessor of @code{longtable}; the newer\n"
 "package (designed on quite different principles) is easier to use and more\n"
@@ -21750,11 +23900,11 @@ msgid ""
 "situations where longtable has problems."
 msgstr ""
 
-#: gnu/packages/tex.scm:4446
+#: gnu/packages/tex.scm:4303
 msgid "TeX macros to handle Texinfo files"
 msgstr ""
 
-#: gnu/packages/tex.scm:4448
+#: gnu/packages/tex.scm:4305
 msgid ""
 "Texinfo is the preferred format for documentation in the GNU project;\n"
 "the format may be used to produce online or printed output from a single\n"
@@ -21763,11 +23913,11 @@ msgid ""
 "hypertext linkages in some cases)."
 msgstr ""
 
-#: gnu/packages/tex.scm:4469
+#: gnu/packages/tex.scm:4326
 msgid "Show \"realistic\" quotes in verbatim"
 msgstr ""
 
-#: gnu/packages/tex.scm:4471
+#: gnu/packages/tex.scm:4328
 msgid ""
 "Typewriter-style fonts are best for program listings, but Computer\n"
 "Modern Typewriter prints @code{`} and @code{'} as bent opening and closing\n"
@@ -21781,22 +23931,22 @@ msgid ""
 "does not affect @code{\\tt}, @code{\\texttt}, etc."
 msgstr ""
 
-#: gnu/packages/tex.scm:4510
+#: gnu/packages/tex.scm:4367
 msgid "Simple package to set up document margins"
 msgstr ""
 
-#: gnu/packages/tex.scm:4512
+#: gnu/packages/tex.scm:4369
 msgid ""
 "This is a simple package to set up document margins.  This package is\n"
 "considered obsolete; alternatives are the @code{typearea} package from the\n"
 "@code{koma-script} bundle, or the @code{geometry} package."
 msgstr ""
 
-#: gnu/packages/tex.scm:4531
+#: gnu/packages/tex.scm:4388
 msgid "Extra control of appendices"
 msgstr ""
 
-#: gnu/packages/tex.scm:4533
+#: gnu/packages/tex.scm:4390
 msgid ""
 "The appendix package provides various ways of formatting the titles of\n"
 "appendices.  Also (sub)appendices environments are provided that can be used,\n"
@@ -21805,11 +23955,11 @@ msgid ""
 "command."
 msgstr ""
 
-#: gnu/packages/tex.scm:4554
+#: gnu/packages/tex.scm:4411
 msgid "Generate changebars in LaTeX documents"
 msgstr ""
 
-#: gnu/packages/tex.scm:4556
+#: gnu/packages/tex.scm:4413
 msgid ""
 "Identify areas of text to be marked with changebars with the\n"
 "@code{\\cbstart} and @code{\\cbend} commands; the bars may be coloured.  The\n"
@@ -21818,31 +23968,31 @@ msgid ""
 "drivers, and VTeX and pdfTeX."
 msgstr ""
 
-#: gnu/packages/tex.scm:4591
+#: gnu/packages/tex.scm:4448
 msgid "CMap support for PDF files"
 msgstr ""
 
-#: gnu/packages/tex.scm:4593
+#: gnu/packages/tex.scm:4450
 msgid ""
 "This package embeds CMap tables into PDF files to make search and\n"
 "copy-and-paste functions work properly."
 msgstr ""
 
-#: gnu/packages/tex.scm:4611
+#: gnu/packages/tex.scm:4468
 msgid "Add colour to LaTeX tables"
 msgstr ""
 
-#: gnu/packages/tex.scm:4613
+#: gnu/packages/tex.scm:4470
 msgid ""
 "This package allows rows, columns, and even individual cells in LaTeX\n"
 "tables to be coloured."
 msgstr ""
 
-#: gnu/packages/tex.scm:4644
+#: gnu/packages/tex.scm:4501
 msgid "Variants of \\fbox and other games with boxes"
 msgstr ""
 
-#: gnu/packages/tex.scm:4646
+#: gnu/packages/tex.scm:4503
 msgid ""
 "This package provides variants of @code{\\fbox}: @code{\\shadowbox},\n"
 "@code{\\doublebox}, @code{\\ovalbox}, @code{\\Ovalbox}, with helpful tools for\n"
@@ -21850,22 +24000,22 @@ msgid ""
 "floats, center, flushleft, and flushright, lists, and pages."
 msgstr ""
 
-#: gnu/packages/tex.scm:4679
+#: gnu/packages/tex.scm:4536
 msgid "Extensive control of page headers and footers in LaTeX2e"
 msgstr ""
 
-#: gnu/packages/tex.scm:4681
+#: gnu/packages/tex.scm:4538
 msgid ""
 "The package provides extensive facilities, both for constructing headers\n"
 "and footers, and for controlling their use (for example, at times when LaTeX\n"
 "would automatically change the heading style in use)."
 msgstr ""
 
-#: gnu/packages/tex.scm:4700
+#: gnu/packages/tex.scm:4557
 msgid "Improved interface for floating objects"
 msgstr ""
 
-#: gnu/packages/tex.scm:4702
+#: gnu/packages/tex.scm:4559
 msgid ""
 "This package improves the interface for defining floating objects such\n"
 "as figures and tables.  It introduces the boxed float, the ruled float and the\n"
@@ -21875,11 +24025,11 @@ msgid ""
 "with @code{\\floatplacement{figure}{H}}."
 msgstr ""
 
-#: gnu/packages/tex.scm:4724
+#: gnu/packages/tex.scm:4581
 msgid "Range of footnote options"
 msgstr ""
 
-#: gnu/packages/tex.scm:4726
+#: gnu/packages/tex.scm:4583
 msgid ""
 "This is a collection of ways to change the typesetting of footnotes.\n"
 "The package provides means of changing the layout of the footnotes themselves,\n"
@@ -21889,11 +24039,11 @@ msgid ""
 "footnotes with symbols rather than numbers."
 msgstr ""
 
-#: gnu/packages/tex.scm:4750
+#: gnu/packages/tex.scm:4607
 msgid "Typeset source code listings using LaTeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:4752
+#: gnu/packages/tex.scm:4609
 msgid ""
 "The package enables the user to typeset programs (programming code)\n"
 "within LaTeX; the source code is read directly by TeX---no front-end processor\n"
@@ -21901,11 +24051,11 @@ msgid ""
 "styles.  Support for @code{hyperref} is provided."
 msgstr ""
 
-#: gnu/packages/tex.scm:4785
+#: gnu/packages/tex.scm:4642
 msgid "Miscellaneous packages by Joerg Knappen"
 msgstr ""
 
-#: gnu/packages/tex.scm:4787
+#: gnu/packages/tex.scm:4644
 msgid ""
 "This package provides miscellaneous macros by Joerg Knappen, including:\n"
 "represent counters in greek; Maxwell's non-commutative division;\n"
@@ -21917,11 +24067,11 @@ msgid ""
 "in SGML; use maths minus in text as appropriate; simple Young tableaux."
 msgstr ""
 
-#: gnu/packages/tex.scm:4862
+#: gnu/packages/tex.scm:4719
 msgid "Computer modern fonts in T1 and TS1 encodings"
 msgstr ""
 
-#: gnu/packages/tex.scm:4864
+#: gnu/packages/tex.scm:4721
 msgid ""
 "The EC fonts are European Computer Modern Fonts, supporting the complete\n"
 "LaTeX T1 encoding defined at the 1990 TUG conference hold at Cork/Ireland.\n"
@@ -21938,11 +24088,11 @@ msgid ""
 "differs from the EC in a number of particulars."
 msgstr ""
 
-#: gnu/packages/tex.scm:4895
+#: gnu/packages/tex.scm:4752
 msgid "Virtual fonts for T1 encoded CMR-fonts"
 msgstr ""
 
-#: gnu/packages/tex.scm:4897
+#: gnu/packages/tex.scm:4754
 msgid ""
 "This package provides a set of virtual fonts which emulates T1 coded\n"
 "fonts using the standard CM fonts.  The package name, AE fonts, supposedly\n"
@@ -21952,34 +24102,47 @@ msgid ""
 "via the CM-super, Latin Modern and (in a restricted way) CM-LGC font sets."
 msgstr ""
 
-#: gnu/packages/tex.scm:4923 gnu/packages/tex.scm:4952
-#: gnu/packages/tex.scm:4978
+#: gnu/packages/tex.scm:4777
+msgid "Monospaced font with support files for use with TeX"
+msgstr ""
+
+#: gnu/packages/tex.scm:4779
+msgid ""
+"Inconsolata is a monospaced font designed by Raph Levien.  This package\n"
+"contains the font (in both Adobe Type 1 and OpenType formats) in regular and\n"
+"bold weights, with additional glyphs and options to control slashed zero,\n"
+"upright quotes and a shapelier lower-case L, plus metric files for use with\n"
+"TeX, and LaTeX font definition and other relevant files."
+msgstr ""
+
+#: gnu/packages/tex.scm:4806 gnu/packages/tex.scm:4835
+#: gnu/packages/tex.scm:4861 gnu/packages/tex.scm:7547
 msgid "URW Base 35 font pack for LaTeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:4925
+#: gnu/packages/tex.scm:4808
 msgid ""
 "This package provides a drop-in replacements for the Times font from\n"
 "Adobe's basic set."
 msgstr ""
 
-#: gnu/packages/tex.scm:4954
+#: gnu/packages/tex.scm:4837
 msgid ""
 "This package provides a drop-in replacements for the Palatino font from\n"
 "Adobe's basic set."
 msgstr ""
 
-#: gnu/packages/tex.scm:4980
+#: gnu/packages/tex.scm:4863
 msgid ""
 "This package provides a drop-in replacements for the Zapfding font from\n"
 "Adobe's basic set."
 msgstr ""
 
-#: gnu/packages/tex.scm:5053
+#: gnu/packages/tex.scm:4936
 msgid "Ralph Smith's Formal Script font"
 msgstr ""
 
-#: gnu/packages/tex.scm:5055
+#: gnu/packages/tex.scm:4938
 msgid ""
 "The fonts provide uppercase formal script letters for use as symbols in\n"
 "scientific and mathematical typesetting (in contrast to the informal script\n"
@@ -21989,22 +24152,22 @@ msgid ""
 "one of the packages @code{calrsfs} and @code{mathrsfs}."
 msgstr ""
 
-#: gnu/packages/tex.scm:5077
+#: gnu/packages/tex.scm:4960
 msgid "Add picture commands (or backgrounds) to every page"
 msgstr ""
 
-#: gnu/packages/tex.scm:5079
+#: gnu/packages/tex.scm:4962
 msgid ""
 "The package adds one or more user commands to LaTeX's @code{shipout}\n"
 "routine, which may be used to place the output at fixed positions.  The\n"
 "@code{grid} option may be used to find the correct places."
 msgstr ""
 
-#: gnu/packages/tex.scm:5111
+#: gnu/packages/tex.scm:4994
 msgid "Extensions to epic and the LaTeX drawing tools"
 msgstr ""
 
-#: gnu/packages/tex.scm:5113
+#: gnu/packages/tex.scm:4996
 msgid ""
 "Extensions to @code{epic} and the LaTeX picture drawing environment,\n"
 "include the drawing of lines at any slope, the drawing of circles in any\n"
@@ -22014,11 +24177,11 @@ msgid ""
 "@code{\\special} commands."
 msgstr ""
 
-#: gnu/packages/tex.scm:5148
+#: gnu/packages/tex.scm:5031
 msgid "Customize basic list environments"
 msgstr ""
 
-#: gnu/packages/tex.scm:5150
+#: gnu/packages/tex.scm:5033
 msgid ""
 "This package is intended to ease customizing the three basic list\n"
 "environments: @code{enumerate}, @code{itemize} and @code{description}.  It\n"
@@ -22027,22 +24190,22 @@ msgid ""
 "@code{\\begin{itemize}[itemsep=1ex,leftmargin=1cm]}."
 msgstr ""
 
-#: gnu/packages/tex.scm:5171
+#: gnu/packages/tex.scm:5054
 msgid "Create tabular cells spanning multiple rows"
 msgstr ""
 
-#: gnu/packages/tex.scm:5173
+#: gnu/packages/tex.scm:5056
 msgid ""
 "The package provides tools for creating tabular cells spanning multiple\n"
 "rows.  It has a lot of flexibility, including an option for specifying an\n"
 "entry at the \"natural\" width of its text."
 msgstr ""
 
-#: gnu/packages/tex.scm:5205
+#: gnu/packages/tex.scm:5088
 msgid "Combine LaTeX commands over included graphics"
 msgstr ""
 
-#: gnu/packages/tex.scm:5207
+#: gnu/packages/tex.scm:5090
 msgid ""
 "The @code{overpic} environment is a cross between the LaTeX\n"
 "@code{picture} environment and the @code{\\includegraphics} command of\n"
@@ -22051,22 +24214,22 @@ msgid ""
 "positions; a grid for orientation is available."
 msgstr ""
 
-#: gnu/packages/tex.scm:5241
+#: gnu/packages/tex.scm:5124
 msgid "Layout with zero \\parindent, non-zero \\parskip"
 msgstr ""
 
-#: gnu/packages/tex.scm:5243
+#: gnu/packages/tex.scm:5126
 msgid ""
 "Simply changing @code{\\parskip} and @code{\\parindent} leaves a layout\n"
 "that is untidy; this package (though it is no substitute for a properly\n"
 "designed class) helps alleviate this untidiness."
 msgstr ""
 
-#: gnu/packages/tex.scm:5262
+#: gnu/packages/tex.scm:5145
 msgid "Include PDF documents in LaTeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:5264
+#: gnu/packages/tex.scm:5147
 msgid ""
 "This package simplifies the inclusion of external multi-page PDF\n"
 "documents in LaTeX documents.  Pages may be freely selected and it is possible\n"
@@ -22076,11 +24239,11 @@ msgid ""
 "use this package to insert PostScript files, in addition to PDF files."
 msgstr ""
 
-#: gnu/packages/tex.scm:5296
+#: gnu/packages/tex.scm:5179
 msgid "St Mary Road symbols for theoretical computer science"
 msgstr ""
 
-#: gnu/packages/tex.scm:5298
+#: gnu/packages/tex.scm:5181
 msgid ""
 "The fonts were originally distributed as Metafont sources only, but\n"
 "Adobe Type 1 versions are also now available.  Macro support is provided for\n"
@@ -22089,11 +24252,11 @@ msgid ""
 "the whole font."
 msgstr ""
 
-#: gnu/packages/tex.scm:5319
+#: gnu/packages/tex.scm:5202
 msgid "Figures divided into subfigures"
 msgstr ""
 
-#: gnu/packages/tex.scm:5321
+#: gnu/packages/tex.scm:5204
 msgid ""
 "This (deprecated) package provides support for the manipulation and\n"
 "reference of small or \"sub\" figures and tables within a single figure or\n"
@@ -22106,11 +24269,11 @@ msgid ""
 "the more recent @code{subcaption} package more satisfactory."
 msgstr ""
 
-#: gnu/packages/tex.scm:5346
+#: gnu/packages/tex.scm:5229
 msgid "Tabular with variable width columns balanced"
 msgstr ""
 
-#: gnu/packages/tex.scm:5348
+#: gnu/packages/tex.scm:5231
 msgid ""
 "The package defines a @code{tabular*}-like environment, @code{tabulary},\n"
 "taking a \"total width\" argument as well as the column specifications.  The\n"
@@ -22121,11 +24284,11 @@ msgid ""
 "according to the natural width of the widest cell in the column."
 msgstr ""
 
-#: gnu/packages/tex.scm:5384
+#: gnu/packages/tex.scm:5267
 msgid "Tables with captions and notes all the same width"
 msgstr ""
 
-#: gnu/packages/tex.scm:5386
+#: gnu/packages/tex.scm:5269
 msgid ""
 "This package facilitates tables with titles (captions) and notes.  The\n"
 "title and notes are given a width equal to the body of the table (a\n"
@@ -22134,11 +24297,11 @@ msgid ""
 "environment."
 msgstr ""
 
-#: gnu/packages/tex.scm:5411
+#: gnu/packages/tex.scm:5294
 msgid "Times-like fonts in support of mathematics"
 msgstr ""
 
-#: gnu/packages/tex.scm:5413
+#: gnu/packages/tex.scm:5296
 msgid ""
 "Txfonts supplies virtual text roman fonts using Adobe Times (or URW\n"
 "NimbusRomNo9L) with some modified and additional text symbols in the OT1, T1,\n"
@@ -22154,11 +24317,11 @@ msgid ""
 "TeX metrics (VF and TFM files) and macros for use with LaTeX."
 msgstr ""
 
-#: gnu/packages/tex.scm:5463
+#: gnu/packages/tex.scm:5346
 msgid "Sans-serif typeface for TeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:5464
+#: gnu/packages/tex.scm:5347
 msgid ""
 "Iwona is a two-element sans-serif typeface. It was created\n"
 "as an alternative version of the Kurier typeface, which was designed in 1975\n"
@@ -22169,11 +24332,38 @@ msgid ""
 "of ink traps which typify the Kurier font."
 msgstr ""
 
-#: gnu/packages/tex.scm:5500
+#: gnu/packages/tex.scm:5374
+msgid "Use Linux Libertine and Biolinum fonts with LaTeX"
+msgstr ""
+
+#: gnu/packages/tex.scm:5376
+msgid ""
+"The package provides the Libertine and Biolinum fonts in both Type 1 and\n"
+"OTF styles, together with support macros for their use.  Monospaced and\n"
+"display fonts, and the \"keyboard\" set are also included, in OTF style, only.\n"
+"The @code{mweights} package is used to manage the selection of font weights.\n"
+"The package supersedes both the @code{libertineotf} and the\n"
+"@code{libertine-legacy} packages."
+msgstr ""
+
+#: gnu/packages/tex.scm:5406
+msgid "LaTeX support for the DejaVu fonts"
+msgstr ""
+
+#: gnu/packages/tex.scm:5408
+msgid ""
+"The package contains LaTeX support for the DejaVu fonts, which are\n"
+"derived from the Vera fonts but contain more characters and styles.  The fonts\n"
+"are included in the original TrueType format, and in converted Type 1 format.\n"
+"The (currently) supported encodings are: OT1, T1, IL2, TS1, T2*, X2, QX, and\n"
+"LGR.  The package doesn't (currently) support mathematics."
+msgstr ""
+
+#: gnu/packages/tex.scm:5442
 msgid "Select alternative section titles"
 msgstr ""
 
-#: gnu/packages/tex.scm:5502
+#: gnu/packages/tex.scm:5444
 msgid ""
 "This package provides an interface to sectioning commands for selection\n"
 "from various title styles, e.g. for marginal titles and to change the font of\n"
@@ -22182,11 +24372,11 @@ msgid ""
 "floats in a page.  You may assign headers/footers to individual floats, too."
 msgstr ""
 
-#: gnu/packages/tex.scm:5523
+#: gnu/packages/tex.scm:5465
 msgid "Arbitrary size font selection in LaTeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:5525
+#: gnu/packages/tex.scm:5467
 msgid ""
 "LaTeX, by default, restricts the sizes at which you can use its default\n"
 "computer modern fonts, to a fixed set of discrete sizes (effectively, a set\n"
@@ -22201,11 +24391,11 @@ msgid ""
 "@code{ec} fonts."
 msgstr ""
 
-#: gnu/packages/tex.scm:5552
+#: gnu/packages/tex.scm:5494
 msgid "Cyrillic fonts that support LaTeX standard encodings"
 msgstr ""
 
-#: gnu/packages/tex.scm:5554
+#: gnu/packages/tex.scm:5496
 msgid ""
 "The LH fonts address the problem of the wide variety of alphabets that\n"
 "are written with Cyrillic-style characters.  The fonts are the original basis\n"
@@ -22218,43 +24408,43 @@ msgid ""
 "OT2 encoded fonts, CM bright shaped fonts and Concrete shaped fonts."
 msgstr ""
 
-#: gnu/packages/tex.scm:5592
+#: gnu/packages/tex.scm:5534
 msgid "Create scalable illustrations"
 msgstr ""
 
-#: gnu/packages/tex.scm:5594
+#: gnu/packages/tex.scm:5536
 msgid ""
 "MetaPost uses a language based on that of Metafont to produce precise\n"
 "technical illustrations.  Its output is scalable PostScript or SVG, rather\n"
 "than the bitmaps Metafont creates."
 msgstr ""
 
-#: gnu/packages/tex.scm:5613
+#: gnu/packages/tex.scm:5555
 msgid "Class for typesetting publications of ACM"
 msgstr ""
 
-#: gnu/packages/tex.scm:5615
+#: gnu/packages/tex.scm:5557
 msgid ""
 "This package provides a class for typesetting publications of the\n"
 "Association for Computing Machinery (ACM)."
 msgstr ""
 
-#: gnu/packages/tex.scm:5646
+#: gnu/packages/tex.scm:5588
 msgid "Variable-width minipage"
 msgstr ""
 
-#: gnu/packages/tex.scm:5648
+#: gnu/packages/tex.scm:5590
 msgid ""
 "The @code{varwidth} environment is superficially similar to\n"
 "@code{minipage}, but the specified width is just a maximum value — the box may\n"
 "get a narrower “natural” width."
 msgstr ""
 
-#: gnu/packages/tex.scm:5667
+#: gnu/packages/tex.scm:5609
 msgid "LaTeX support file to use the WASY2 fonts"
 msgstr ""
 
-#: gnu/packages/tex.scm:5669
+#: gnu/packages/tex.scm:5611
 msgid ""
 "The wasy2WASY2 (Waldi Symbol) font by Roland Waldi provides many glyphs\n"
 "like male and female symbols and astronomical symbols, as well as the complete\n"
@@ -22262,22 +24452,22 @@ msgid ""
 "to use interface for these symbols."
 msgstr ""
 
-#: gnu/packages/tex.scm:5702
+#: gnu/packages/tex.scm:5644
 msgid "Produces figures which text can flow around"
 msgstr ""
 
-#: gnu/packages/tex.scm:5704
+#: gnu/packages/tex.scm:5646
 msgid ""
 "This package allows figures or tables to have text wrapped around them.\n"
 "It does not work in combination with list environments, but can be used in a\n"
 "@code{parbox} or @code{minipage}, and in two-column format."
 msgstr ""
 
-#: gnu/packages/tex.scm:5736
+#: gnu/packages/tex.scm:5678
 msgid "Extended UTF-8 input encoding support for LaTeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:5738
+#: gnu/packages/tex.scm:5680
 msgid ""
 "The bundle provides the @code{ucs} package, and @code{utf8x.def},\n"
 "together with a large number of support files.  The @code{utf8x.def}\n"
@@ -22290,11 +24480,11 @@ msgid ""
 "package of that name now exists."
 msgstr ""
 
-#: gnu/packages/tex.scm:5770
+#: gnu/packages/tex.scm:5712
 msgid "Extract bits of a LaTeX source for output"
 msgstr ""
 
-#: gnu/packages/tex.scm:5772
+#: gnu/packages/tex.scm:5714
 msgid ""
 "The main purpose of the preview package is the extraction of selected\n"
 "elements from a LaTeX source, like formulas or graphics, into separate\n"
@@ -22305,11 +24495,11 @@ msgid ""
 "files."
 msgstr ""
 
-#: gnu/packages/tex.scm:5795
+#: gnu/packages/tex.scm:5737
 msgid "Expand acronyms at least once"
 msgstr ""
 
-#: gnu/packages/tex.scm:5797
+#: gnu/packages/tex.scm:5739
 msgid ""
 "This package ensures that all acronyms used in the text are spelled out\n"
 "in full at least once.  It also provides an environment to build a list of\n"
@@ -22318,17 +24508,17 @@ msgid ""
 "e-TeX."
 msgstr ""
 
-#: gnu/packages/tex.scm:5848
+#: gnu/packages/tex.scm:5790
 msgid "TeX extension for direct creation of PDF"
 msgstr ""
 
-#: gnu/packages/tex.scm:5850
+#: gnu/packages/tex.scm:5792
 msgid ""
 "This package provides an extension of TeX which can be configured to\n"
 "directly generate PDF documents instead of DVI."
 msgstr ""
 
-#: gnu/packages/tex.scm:5922
+#: gnu/packages/tex.scm:5864
 msgid ""
 "TeX Live provides a comprehensive TeX document production system.\n"
 "It includes all the major TeX-related programs, macro packages, and fonts\n"
@@ -22338,7 +24528,7 @@ msgid ""
 "This package contains the complete tree of texmf-dist data."
 msgstr ""
 
-#: gnu/packages/tex.scm:5985
+#: gnu/packages/tex.scm:5927
 msgid ""
 "TeX Live provides a comprehensive TeX document production system.\n"
 "It includes all the major TeX-related programs, macro packages, and fonts\n"
@@ -22348,11 +24538,11 @@ msgid ""
 "This package contains the complete TeX Live distribution."
 msgstr ""
 
-#: gnu/packages/tex.scm:6028
+#: gnu/packages/tex.scm:5970
 msgid "Interface to read and parse BibTeX files"
 msgstr ""
 
-#: gnu/packages/tex.scm:6029
+#: gnu/packages/tex.scm:5971
 msgid ""
 "@code{Text::BibTeX} is a Perl library for reading, parsing,\n"
 "and processing BibTeX files.  @code{Text::BibTeX} gives you access to the data\n"
@@ -22361,21 +24551,21 @@ msgid ""
 "values (strings, macros, or numbers) pasted together."
 msgstr ""
 
-#: gnu/packages/tex.scm:6115
+#: gnu/packages/tex.scm:6061
 msgid "Backend for the BibLaTeX citation management tool"
 msgstr ""
 
-#: gnu/packages/tex.scm:6116
+#: gnu/packages/tex.scm:6062
 msgid ""
 "Biber is a BibTeX replacement for users of biblatex.  Among\n"
 "other things it comes with full Unicode support."
 msgstr ""
 
-#: gnu/packages/tex.scm:6140
+#: gnu/packages/tex.scm:6094
 msgid "Wrapper for LaTeX and friends"
 msgstr ""
 
-#: gnu/packages/tex.scm:6142
+#: gnu/packages/tex.scm:6096
 msgid ""
 "Rubber is a program whose purpose is to handle all tasks related to the\n"
 "compilation of LaTeX documents.  This includes compiling the document itself,\n"
@@ -22385,32 +24575,32 @@ msgid ""
 "PDF documents."
 msgstr ""
 
-#: gnu/packages/tex.scm:6184
+#: gnu/packages/tex.scm:6138
 msgid "LaTeX editor"
 msgstr "LaTeX-Editor"
 
-#: gnu/packages/tex.scm:6185
+#: gnu/packages/tex.scm:6139
 msgid ""
 "Texmaker is a program that integrates many tools needed to\n"
 "develop documents with LaTeX, in a single application."
 msgstr ""
 
-#: gnu/packages/tex.scm:6225
+#: gnu/packages/tex.scm:6179
 msgid "Book on TeX, plain TeX and Eplain"
 msgstr ""
 
-#: gnu/packages/tex.scm:6226
+#: gnu/packages/tex.scm:6180
 msgid ""
 "@i{TeX for the Impatient} is a ~350 page book on TeX,\n"
 "plain TeX, and Eplain, originally written by Paul Abrahams, Kathryn Hargreaves,\n"
 "and Karl Berry."
 msgstr ""
 
-#: gnu/packages/tex.scm:6318
+#: gnu/packages/tex.scm:6246
 msgid "Document preparation system with GUI"
 msgstr ""
 
-#: gnu/packages/tex.scm:6319
+#: gnu/packages/tex.scm:6247
 msgid ""
 "LyX is a document preparation system.  It excels at letting\n"
 "you create complex technical and scientific articles with mathematics,\n"
@@ -22419,11 +24609,11 @@ msgid ""
 "required: automatic sectioning and pagination, spell checking and so forth."
 msgstr ""
 
-#: gnu/packages/tex.scm:6353
+#: gnu/packages/tex.scm:6281
 msgid "Multimedia inclusion package with Adobe Reader-9/X compatibility"
 msgstr ""
 
-#: gnu/packages/tex.scm:6355
+#: gnu/packages/tex.scm:6283
 msgid ""
 "The package provides an interface to embed interactive Flash (SWF) and 3D\n"
 "objects (Adobe U3D & PRC), as well as video and sound files or streams in the\n"
@@ -22436,11 +24626,11 @@ msgid ""
 "specification.  It replaces the now obsolete @code{movie15} package."
 msgstr ""
 
-#: gnu/packages/tex.scm:6393
+#: gnu/packages/tex.scm:6321
 msgid "Provide OCG (Optional Content Groups) support within a PDF document"
 msgstr ""
 
-#: gnu/packages/tex.scm:6395
+#: gnu/packages/tex.scm:6323
 msgid ""
 "This package provides OCG (Optional Content Groups) support within a PDF\n"
 "document.\n"
@@ -22458,11 +24648,11 @@ msgid ""
 "It also ensures compatibility with the @code{media9} and @code{animate} packages."
 msgstr ""
 
-#: gnu/packages/tex.scm:6427
+#: gnu/packages/tex.scm:6355
 msgid "Various LATEX packages by Martin Schröder"
 msgstr ""
 
-#: gnu/packages/tex.scm:6429
+#: gnu/packages/tex.scm:6357
 msgid ""
 "A bundle of LATEX packages by Martin Schröder; the collection comprises:\n"
 "\n"
@@ -22476,22 +24666,22 @@ msgid ""
 "@end itemize\n"
 msgstr ""
 
-#: gnu/packages/tex.scm:6459
+#: gnu/packages/tex.scm:6387
 msgid "Insert pagebreak if not enough space"
 msgstr ""
 
-#: gnu/packages/tex.scm:6461
+#: gnu/packages/tex.scm:6389
 msgid ""
 "Provides commands to disable pagebreaking within a given vertical\n"
 "space.  If there is not enough space between the command and the bottom of the\n"
 "page, a new page will be started."
 msgstr ""
 
-#: gnu/packages/tex.scm:6485
+#: gnu/packages/tex.scm:6413
 msgid "Margin adjustment and detection of odd/even pages"
 msgstr ""
 
-#: gnu/packages/tex.scm:6487
+#: gnu/packages/tex.scm:6415
 msgid ""
 "The package provides commands to change the page layout in the middle of\n"
 "a document, and to robustly check for typesetting on odd or even pages.\n"
@@ -22499,11 +24689,11 @@ msgid ""
 "of code from the @code{memoir} class, whose user interface it shares."
 msgstr ""
 
-#: gnu/packages/tex.scm:6521
+#: gnu/packages/tex.scm:6449
 msgid "UK format dates, with weekday"
 msgstr ""
 
-#: gnu/packages/tex.scm:6523
+#: gnu/packages/tex.scm:6451
 msgid ""
 "The package is used to change the format of @code{\\today}’s date,\n"
 "including the weekday, e.g., \"Saturday, 26 June 2008\", the 'UK format', which\n"
@@ -22511,11 +24701,11 @@ msgid ""
 "@code{\\maketitle} of the article class, \"June 26, 2008\", the 'US format'."
 msgstr ""
 
-#: gnu/packages/tex.scm:6557
+#: gnu/packages/tex.scm:6485
 msgid "Underline text in TeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:6559
+#: gnu/packages/tex.scm:6487
 msgid ""
 "The package provides an @code{\\ul} (underline) command which will break\n"
 "over line ends; this technique may be used to replace @code{\\em} (both in that\n"
@@ -22524,11 +24714,11 @@ msgid ""
 "striking out (line through words) and crossing out (/// over words)."
 msgstr ""
 
-#: gnu/packages/tex.scm:6613
+#: gnu/packages/tex.scm:6541
 msgid "Create PostScript and PDF graphics in TeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:6615
+#: gnu/packages/tex.scm:6543
 msgid ""
 "PGF is a macro package for creating graphics.  It is platform- and\n"
 "format-independent and works together with the most important TeX backend\n"
@@ -22540,11 +24730,11 @@ msgid ""
 "produce either PostScript or PDF output."
 msgstr ""
 
-#: gnu/packages/tex.scm:6660
+#: gnu/packages/tex.scm:6588
 msgid "Bundle of versatile classes and packages"
 msgstr ""
 
-#: gnu/packages/tex.scm:6662
+#: gnu/packages/tex.scm:6590
 msgid ""
 "The KOMA-Script bundle provides replacements for the article, report, and\n"
 "book classes with emphasis on typography and versatility.  There is also a\n"
@@ -22569,22 +24759,22 @@ msgid ""
 "typearea (which are the main parts of the bundle)."
 msgstr ""
 
-#: gnu/packages/tex.scm:6712
+#: gnu/packages/tex.scm:6640
 msgid "Grab items in lists using user-specified separation character"
 msgstr ""
 
-#: gnu/packages/tex.scm:6714
+#: gnu/packages/tex.scm:6642
 msgid ""
 "This package allows one to capture all the items of a list, for which\n"
 "the parsing character has been selected by the user, and to access any of\n"
 "these items with a simple syntax."
 msgstr ""
 
-#: gnu/packages/tex.scm:6748
+#: gnu/packages/tex.scm:6676
 msgid "Read, store and recall array-formatted data"
 msgstr ""
 
-#: gnu/packages/tex.scm:6750
+#: gnu/packages/tex.scm:6678
 msgid ""
 "This package allows the user to input formatted data into elements of a\n"
 "2-D or 3-D array and to recall that data at will by individual cell number.\n"
@@ -22592,11 +24782,11 @@ msgid ""
 "formatted text."
 msgstr ""
 
-#: gnu/packages/tex.scm:6785
+#: gnu/packages/tex.scm:6713
 msgid "Deposit verbatim text in a box"
 msgstr ""
 
-#: gnu/packages/tex.scm:6787
+#: gnu/packages/tex.scm:6715
 msgid ""
 "The package provides a @code{verbbox} environment to place its contents\n"
 "into a globally available box, or into a box specified by the user.  The\n"
@@ -22606,11 +24796,11 @@ msgid ""
 "@code{trivlist}) may not appear."
 msgstr ""
 
-#: gnu/packages/tex.scm:6822
+#: gnu/packages/tex.scm:6750
 msgid "Verbatim phrases and listings in LaTeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:6824
+#: gnu/packages/tex.scm:6752
 msgid ""
 "Examplep provides sophisticated features for typesetting verbatim source\n"
 "code listings, including the display of the source code and its compiled LaTeX\n"
@@ -22623,11 +24813,11 @@ msgid ""
 "titles."
 msgstr ""
 
-#: gnu/packages/tex.scm:6860
+#: gnu/packages/tex.scm:6788
 msgid "Flexible diagramming macros"
 msgstr ""
 
-#: gnu/packages/tex.scm:6861
+#: gnu/packages/tex.scm:6789
 msgid ""
 "This is a package for typesetting a variety of graphs and\n"
 "diagrams with TeX.  Xy-pic works with most formats (including LaTeX,\n"
@@ -22635,11 +24825,11 @@ msgid ""
 "@code{diag} package, which was previously distributed stand-alone."
 msgstr ""
 
-#: gnu/packages/tex.scm:6901
+#: gnu/packages/tex.scm:6829
 msgid "Process bibliographies for LaTeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:6903
+#: gnu/packages/tex.scm:6831
 msgid ""
 "BibTeX allows the user to store his citation data in generic form, while\n"
 "printing citations in a document in the form specified by a BibTeX style, to\n"
@@ -22647,11 +24837,11 @@ msgid ""
 "package, such as @command{natbib} as well)."
 msgstr ""
 
-#: gnu/packages/tex.scm:6922
+#: gnu/packages/tex.scm:6850
 msgid "Charter fonts for TeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:6923
+#: gnu/packages/tex.scm:6851
 msgid ""
 "This package provides a copy of the Charter Type-1 fonts\n"
 "which Bitstream contributed to the X consortium, renamed for use with TeX.\n"
@@ -22659,22 +24849,22 @@ msgid ""
 "@command{psnfss}. "
 msgstr ""
 
-#: gnu/packages/tex.scm:6960
+#: gnu/packages/tex.scm:6888
 msgid "Full featured, parameter driven macro package for TeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:6961
+#: gnu/packages/tex.scm:6889
 msgid ""
 "A full featured, parameter driven macro package, which fully\n"
 "supports advanced interactive documents.  See the ConTeXt garden for a wealth\n"
 "of support information."
 msgstr ""
 
-#: gnu/packages/tex.scm:6981
+#: gnu/packages/tex.scm:6909
 msgid "LaTeX class for producing presentations and slides"
 msgstr ""
 
-#: gnu/packages/tex.scm:6982
+#: gnu/packages/tex.scm:6910
 msgid ""
 "The beamer LaTeX class can be used for producing slides.\n"
 "The class works in both PostScript and direct PDF output modes, using the\n"
@@ -22687,11 +24877,11 @@ msgid ""
 "effects, varying slide transitions and animations."
 msgstr ""
 
-#: gnu/packages/tex.scm:7013
+#: gnu/packages/tex.scm:6941
 msgid "Include eXtensible Metadata Platform data in pdfLaTeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:7015
+#: gnu/packages/tex.scm:6943
 msgid ""
 "The XMP (eXtensible Metadata platform) is a framework to add metadata to\n"
 "digital material to enhance the workflow in publication.  The essence is that\n"
@@ -22699,21 +24889,21 @@ msgid ""
 "the file to which it applies."
 msgstr ""
 
-#: gnu/packages/tex.scm:7068
+#: gnu/packages/tex.scm:6996
 msgid "PDF/X and PDF/A support for pdfTeX, LuaTeX and XeTeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:7070
+#: gnu/packages/tex.scm:6998
 msgid ""
-"This package helps LaTeX users to create PDF/X, PFD/A and other\n"
+"This package helps LaTeX users to create PDF/X, PDF/A and other\n"
 "standards-compliant PDF documents with pdfTeX, LuaTeX and XeTeX."
 msgstr ""
 
-#: gnu/packages/tex.scm:7112
+#: gnu/packages/tex.scm:7040
 msgid "Macros for documentation of LaTeX classes and packages"
 msgstr ""
 
-#: gnu/packages/tex.scm:7113
+#: gnu/packages/tex.scm:7041
 msgid ""
 "The package provides macros and environments to document\n"
 "LaTeX packages and classes.  It is an (as yet unfinished) alternative to the\n"
@@ -22724,11 +24914,11 @@ msgid ""
 "change."
 msgstr ""
 
-#: gnu/packages/tex.scm:7140
+#: gnu/packages/tex.scm:7068
 msgid "PostScript macros for TeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:7141
+#: gnu/packages/tex.scm:7069
 msgid ""
 "PSTricks offers an extensive collection of macros for\n"
 "generating PostScript that is usable with most TeX macro formats, including\n"
@@ -22739,22 +24929,34 @@ msgid ""
 "or shading the cells of tables."
 msgstr ""
 
-#: gnu/packages/tex.scm:7166
+#: gnu/packages/tex.scm:7093
 msgid "Text and character manipulation in PSTricks"
 msgstr ""
 
-#: gnu/packages/tex.scm:7167
+#: gnu/packages/tex.scm:7094
 msgid ""
 "Pst-text is a PSTricks based package for plotting text along\n"
 "a different path and manipulating characters.  It includes the functionality\n"
 "of the old package @code{pst-char}."
 msgstr ""
 
-#: gnu/packages/tex.scm:7183
+#: gnu/packages/tex.scm:7118
+msgid "Notes in the margin"
+msgstr ""
+
+#: gnu/packages/tex.scm:7119
+msgid ""
+"This package provides the command @code{\\marginnote} that\n"
+"may be used instead of @code{\\marginpar} at almost every place where\n"
+"@code{\\marginpar} cannot be used, e.g., inside floats, footnotes, or in\n"
+"frames made with the @code{framed} package."
+msgstr ""
+
+#: gnu/packages/tex.scm:7136
 msgid "Determine the currently used TeX engine"
 msgstr ""
 
-#: gnu/packages/tex.scm:7184
+#: gnu/packages/tex.scm:7137
 msgid ""
 "This package, which works both for Plain TeX and for\n"
 "LaTeX, defines the @code{\\ifPDFTeX}, @code{\\ifXeTeX}, and @code{\\ifLuaTeX}\n"
@@ -22764,7 +24966,7 @@ msgid ""
 "LuaTeX (respectively) is not the engine in use."
 msgstr ""
 
-#: gnu/packages/tex.scm:7213
+#: gnu/packages/tex.scm:7166
 msgid ""
 "This package provides a collection of simple tools that\n"
 "are part of the LaTeX required tools distribution, comprising the packages:\n"
@@ -22776,11 +24978,11 @@ msgid ""
 "@code{varioref}, @code{verbatim}, @code{xr}, and @code{xspace}."
 msgstr ""
 
-#: gnu/packages/tex.scm:7292
+#: gnu/packages/tex.scm:7245
 msgid "Extension of the keyval package"
 msgstr ""
 
-#: gnu/packages/tex.scm:7294
+#: gnu/packages/tex.scm:7247
 msgid ""
 "This package is an extension of the keyval package and offers additional\n"
 "macros for setting keys and declaring and setting class or package options.\n"
@@ -22790,11 +24992,11 @@ msgid ""
 "keys."
 msgstr ""
 
-#: gnu/packages/tex.scm:7321
+#: gnu/packages/tex.scm:7274
 msgid "Compile TeX pictures stand-alone or as part of a document"
 msgstr ""
 
-#: gnu/packages/tex.scm:7322
+#: gnu/packages/tex.scm:7275
 msgid ""
 "A class and package is provided which allows TeX pictures or\n"
 "other TeX code to be compiled standalone or as part of a main document.\n"
@@ -22806,11 +25008,11 @@ msgid ""
 "@code{standalone.cfg} to redefine the standalone environment."
 msgstr ""
 
-#: gnu/packages/tex.scm:7354
+#: gnu/packages/tex.scm:7307
 msgid "Comprehensive SI units package"
 msgstr ""
 
-#: gnu/packages/tex.scm:7356
+#: gnu/packages/tex.scm:7309
 msgid ""
 "Typesetting values with units requires care to ensure that the combined\n"
 "mathematical meaning of the value plus unit combination is clear.  In\n"
@@ -22826,11 +25028,11 @@ msgid ""
 "package to handle all of the possible unit-related needs of LaTeX users."
 msgstr ""
 
-#: gnu/packages/tex.scm:7385
+#: gnu/packages/tex.scm:7338
 msgid "Publication quality tables in LaTeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:7387
+#: gnu/packages/tex.scm:7340
 msgid ""
 "This package enhances the quality of tables in LaTeX, providing extra\n"
 "commands as well as behind-the-scenes optimisation.  Guidelines are given as\n"
@@ -22838,11 +25040,180 @@ msgid ""
 "@code{longtable} compatibility."
 msgstr ""
 
-#: gnu/packages/texinfo.scm:61
+#: gnu/packages/tex.scm:7359
+msgid "Context sensitive quotation facilities"
+msgstr ""
+
+#: gnu/packages/tex.scm:7360
+msgid ""
+"This package provides advanced facilities for inline and\n"
+"display quotations.  It is designed for a wide range of tasks ranging from the\n"
+"most simple applications to the more complex demands of formal quotations.\n"
+"The facilities include commands, environments, and user-definable 'smart\n"
+"quotes' which dynamically adjust to their context.  Quotation marks are\n"
+"switched automatically if quotations are nested and they can be adjusted to\n"
+"the current language if the babel package is available.  There are additional\n"
+"facilities designed to cope with the more specific demands of academic\n"
+"writing, especially in the humanities and the social sciences.  All quote\n"
+"styles as well as the optional active quotes are freely configurable."
+msgstr ""
+
+#: gnu/packages/tex.scm:7385
+msgid "Support for automation of the LaTeX workflow"
+msgstr ""
+
+#: gnu/packages/tex.scm:7386
+msgid ""
+"The package helps to automate a typical LaTeX\n"
+"workflow that involves running LaTeX several times and running tools\n"
+"such as BibTeX or makeindex.  It will log requests like \"please rerun\n"
+"LaTeX\" or \"please run BibTeX on file X\" to an external file in a\n"
+"machine-readable format.  Compiler scripts and integrated LaTeX\n"
+"editing environments may parse this file to determine the next steps\n"
+"in the workflow.  In sum, the package will do two things:\n"
+"\n"
+"@enumerate\n"
+"@item\n"
+"enable package authors to use LaTeX commands to issue requests, and\n"
+"\n"
+"@item\n"
+"collect all requests from all packages and write them to an external\n"
+"XML file.\n"
+"@end enumerate\n"
+msgstr ""
+
+#: gnu/packages/tex.scm:7418
+msgid "Sophisticated bibliographies in LaTeX"
+msgstr ""
+
+#: gnu/packages/tex.scm:7419
+msgid ""
+"BibLaTeX is a complete reimplementation of the\n"
+"bibliographic facilities provided by LaTeX.  Formatting of the\n"
+"bibliography is entirely controlled by LaTeX macros, facilitating the\n"
+"design of new bibliography and citation styles.  BibLaTeX uses its own\n"
+"data backend program \"biber\" to read and process the bibliographic\n"
+"data.  With biber, the range of features provided by biblatex\n"
+"includes:\n"
+"\n"
+"@enumerate\n"
+"@item\n"
+"full unicode support,\n"
+"\n"
+"@item\n"
+"customisable bibliography labels,\n"
+"\n"
+"@item\n"
+"multiple bibliographies in the same document, and\n"
+"\n"
+"@item\n"
+"subdivided bibliographies, such as bibliographies per chapter or\n"
+"section.\n"
+"@end enumerate\n"
+msgstr ""
+
+#: gnu/packages/tex.scm:7457
+msgid "Marking things to do in a LaTeX document"
+msgstr ""
+
+#: gnu/packages/tex.scm:7458
+msgid ""
+"The @code{todonotes} package lets the user mark\n"
+"things to do later, in a simple and visually appealing way.  The\n"
+"package takes several options to enable customization and finetuning\n"
+"of the visual appearance."
+msgstr ""
+
+#: gnu/packages/tex.scm:7475
+msgid "Typeset physical units and fractions"
+msgstr ""
+
+#: gnu/packages/tex.scm:7476
+msgid ""
+"@code{units} is a package for typesetting physical\n"
+"units in a standard-looking way.  The package is based upon\n"
+"@code{nicefrac}, a package for typing fractions.  @code{nicefrac} is\n"
+"included in the @code{units} bundle."
+msgstr ""
+
+#: gnu/packages/tex.scm:7493
+msgid "Subliminal refinements towards typographical perfection"
+msgstr ""
+
+#: gnu/packages/tex.scm:7494
+msgid ""
+"@code{microtype} provides a LaTeX interface to the\n"
+"micro-typographic extensions that were introduced by pdfTeX and have\n"
+"since propagated to XeTeX and LuaTeX: most prominently character\n"
+"protrusion and font expansion, the adjustment of kerning and interword\n"
+"spacing, hyphenatable letterspacing and the possibility to disable all\n"
+"or selected ligatures.  These features may be applied to customisable\n"
+"sets of fonts.  All micro-typographic aspects of the fonts can be\n"
+"configured in a straight-forward and flexible way.  Settings for\n"
+"various fonts are provided.  An alternative package\n"
+"@code{letterspace}, which also works with plain TeX, is included in\n"
+"the bundle."
+msgstr ""
+
+#: gnu/packages/tex.scm:7518
+msgid "Customising captions in floating environments"
+msgstr ""
+
+#: gnu/packages/tex.scm:7519
+msgid ""
+"The @code{caption} package provides many ways to\n"
+"customise the captions in floating environments like figure and table.\n"
+"Facilities include rotating captions, sideways captions and continued\n"
+"captions (for tables or figures that come in several parts).  A list\n"
+"of compatibility notes, for other packages, is provided in the\n"
+"documentation.  The package also provides the \"caption outside\n"
+"float\" facility, in the same way that simpler packages like\n"
+"@code{capt-ofcapt-of} do.  The package supersedes @code{caption2}.\n"
+"Packages @code{bicaption}, @code{ltcaption}, @code{newfloat},\n"
+"@code{subcaption} and @code{totalcount} are included in the bundle."
+msgstr ""
+
+#: gnu/packages/tex.scm:7548
+msgid ""
+"This package provides a drop-in replacement for the\n"
+"Symbol font from Adobe's basic set."
+msgstr ""
+
+#: gnu/packages/tex.scm:7565
+msgid "Fonts to typeset mathematics to match Palatino"
+msgstr ""
+
+#: gnu/packages/tex.scm:7566
+msgid ""
+"The Pazo Math fonts are a family of PostScript fonts\n"
+"suitable for typesetting mathematics in combination with the Palatino\n"
+"family of text fonts.  The Pazo Math family is made up of five fonts\n"
+"provided in Adobe Type 1 format.  These contain glyphs that are\n"
+"usually not available in Palatino and for which Computer Modern looks\n"
+"odd when combined with Palatino.  These glyphs include the uppercase\n"
+"Greek alphabet in upright and slanted shapes, the lowercase Greek\n"
+"alphabet in slanted shape, several mathematical glyphs and the\n"
+"uppercase letters commonly used to represent various number sets.\n"
+"LaTeX macro support is provided in package @code{psnfss}."
+msgstr ""
+
+#: gnu/packages/tex.scm:7590
+msgid "SC and OsF fonts for URW Palladio L"
+msgstr ""
+
+#: gnu/packages/tex.scm:7591
+msgid ""
+"The FPL Fonts provide a set of SC/OsF fonts for URW\n"
+"Palladio L which are compatible with the Palatino SC/OsF fonts from\n"
+"Adobe.  LaTeX use is enabled by the mathpazo package, which is part of\n"
+"the @code{psnfss} distribution."
+msgstr ""
+
+#: gnu/packages/texinfo.scm:90
 msgid "The GNU documentation format"
 msgstr ""
 
-#: gnu/packages/texinfo.scm:63
+#: gnu/packages/texinfo.scm:92
 msgid ""
 "Texinfo is the official documentation format of the GNU project.  It\n"
 "uses a single source file using explicit commands to produce a final document\n"
@@ -22852,15 +25223,15 @@ msgid ""
 "is on expressing the content semantically, avoiding physical markup commands."
 msgstr ""
 
-#: gnu/packages/texinfo.scm:144
+#: gnu/packages/texinfo.scm:189
 msgid "Standalone Info documentation reader"
 msgstr ""
 
-#: gnu/packages/texinfo.scm:176
+#: gnu/packages/texinfo.scm:221
 msgid "Convert Texinfo to HTML"
 msgstr ""
 
-#: gnu/packages/texinfo.scm:178
+#: gnu/packages/texinfo.scm:223
 msgid ""
 "Texi2HTML is a Perl script which converts Texinfo source files to HTML\n"
 "output.  It now supports many advanced features, such as internationalization\n"
@@ -22875,11 +25246,11 @@ msgid ""
 "Texi2HTML."
 msgstr ""
 
-#: gnu/packages/texinfo.scm:244
+#: gnu/packages/texinfo.scm:289
 msgid "Lynx-style Info file and man page reader"
 msgstr ""
 
-#: gnu/packages/texinfo.scm:246
+#: gnu/packages/texinfo.scm:291
 msgid ""
 "Pinfo is an Info file viewer.  Pinfo is similar in use to the Lynx web\n"
 "browser.  You just move across info nodes, and select links, follow them, etc.\n"
@@ -22888,21 +25259,21 @@ msgid ""
 "are hypertextualized."
 msgstr ""
 
-#: gnu/packages/textutils.scm:86
+#: gnu/packages/textutils.scm:91
 msgid "DOS/Mac to Unix and vice versa text file format converter"
 msgstr ""
 
-#: gnu/packages/textutils.scm:88
+#: gnu/packages/textutils.scm:93
 msgid ""
 "dos2unix is a tool to convert line breaks in a text file from Unix format\n"
 "to DOS format and vice versa."
 msgstr ""
 
-#: gnu/packages/textutils.scm:108
+#: gnu/packages/textutils.scm:113
 msgid "Text encoding converter"
 msgstr ""
 
-#: gnu/packages/textutils.scm:109
+#: gnu/packages/textutils.scm:114
 msgid ""
 "The Recode library converts files between character sets and\n"
 "usages.  It recognises or produces over 200 different character sets (or about\n"
@@ -22912,33 +25283,33 @@ msgid ""
 "handy front-end to the library."
 msgstr ""
 
-#: gnu/packages/textutils.scm:134
+#: gnu/packages/textutils.scm:139
 msgid "Text encoding detection tool"
 msgstr ""
 
-#: gnu/packages/textutils.scm:135
+#: gnu/packages/textutils.scm:140
 msgid ""
 "Enca (Extremely Naive Charset Analyser) consists of libenca,\n"
 "an encoding detection library, and enca, a command line frontend, integrating\n"
 "libenca and several charset conversion libraries and tools."
 msgstr ""
 
-#: gnu/packages/textutils.scm:189
+#: gnu/packages/textutils.scm:197
 msgid "C library for processing UTF-8 Unicode data"
 msgstr ""
 
-#: gnu/packages/textutils.scm:190
+#: gnu/packages/textutils.scm:198
 msgid ""
 "utf8proc is a small C library that provides Unicode\n"
 "normalization, case-folding, and other operations for data in the UTF-8\n"
 "encoding, supporting Unicode version 9.0.0."
 msgstr ""
 
-#: gnu/packages/textutils.scm:209 gnu/packages/textutils.scm:714
+#: gnu/packages/textutils.scm:219 gnu/packages/textutils.scm:740
 msgid "Configuration file parser library"
 msgstr ""
 
-#: gnu/packages/textutils.scm:210
+#: gnu/packages/textutils.scm:220
 msgid ""
 "libconfuse is a configuration file parser library.  It\n"
 "supports sections and (lists of) values (strings, integers, floats, booleans\n"
@@ -22947,39 +25318,39 @@ msgid ""
 "nested include statements)."
 msgstr ""
 
-#: gnu/packages/textutils.scm:241
+#: gnu/packages/textutils.scm:262
 msgid "Gordon's text utils library"
 msgstr ""
 
-#: gnu/packages/textutils.scm:243
+#: gnu/packages/textutils.scm:264
 msgid ""
 "libgtextutils is a text utilities library used by the fastx toolkit from\n"
 "the Hannon Lab."
 msgstr ""
 
-#: gnu/packages/textutils.scm:275
+#: gnu/packages/textutils.scm:296
 msgid "C++ hash functions for strings"
 msgstr ""
 
-#: gnu/packages/textutils.scm:277
+#: gnu/packages/textutils.scm:298
 msgid ""
 "CityHash provides hash functions for strings.  The functions mix the\n"
 "input bits thoroughly but are not suitable for cryptography."
 msgstr ""
 
-#: gnu/packages/textutils.scm:315
+#: gnu/packages/textutils.scm:336
 msgid "String library with very low memory overhead"
 msgstr ""
 
-#: gnu/packages/textutils.scm:317
+#: gnu/packages/textutils.scm:338
 msgid "Ustr is a string library for C with very low memory overhead."
 msgstr ""
 
-#: gnu/packages/textutils.scm:340
+#: gnu/packages/textutils.scm:361
 msgid "Convert between ASCII, hexadecimal and binary representations"
 msgstr ""
 
-#: gnu/packages/textutils.scm:341
+#: gnu/packages/textutils.scm:362
 msgid ""
 "The two programs are useful for generating test data, for\n"
 "inspecting binary files, and for interfacing programs that generate textual\n"
@@ -23009,11 +25380,11 @@ msgid ""
 "@end itemize"
 msgstr ""
 
-#: gnu/packages/textutils.scm:399
+#: gnu/packages/textutils.scm:420
 msgid "Find out what is in a Unicode file"
 msgstr ""
 
-#: gnu/packages/textutils.scm:400
+#: gnu/packages/textutils.scm:421
 msgid ""
 "Useful tools when working with Unicode files when one\n"
 "doesn't know the writing system, doesn't have the necessary font, needs to\n"
@@ -23046,11 +25417,11 @@ msgid ""
 "@end itemize"
 msgstr ""
 
-#: gnu/packages/textutils.scm:444
+#: gnu/packages/textutils.scm:465
 msgid "C/C++ configuration file library"
 msgstr ""
 
-#: gnu/packages/textutils.scm:446
+#: gnu/packages/textutils.scm:467
 msgid ""
 "Libconfig is a simple library for manipulating structured configuration\n"
 "files.  This file format is more compact and more readable than XML.  And\n"
@@ -23058,11 +25429,11 @@ msgid ""
 "application code."
 msgstr ""
 
-#: gnu/packages/textutils.scm:467
+#: gnu/packages/textutils.scm:488
 msgid "Probabilistic fast file fingerprinting tool"
 msgstr ""
 
-#: gnu/packages/textutils.scm:469
+#: gnu/packages/textutils.scm:490
 msgid ""
 "pfff is a tool for calculating a compact digital fingerprint of a file\n"
 "by sampling randomly from the file instead of reading it in full.\n"
@@ -23071,22 +25442,22 @@ msgid ""
 "as existing hashing techniques, with provably negligible risk of collisions."
 msgstr ""
 
-#: gnu/packages/textutils.scm:490
+#: gnu/packages/textutils.scm:516
 msgid "Regular expression library"
 msgstr ""
 
-#: gnu/packages/textutils.scm:491
+#: gnu/packages/textutils.scm:517
 msgid ""
 "Oniguruma is a regular expressions library.  The special\n"
 "characteristic of this library is that different character encoding for every\n"
 "regular expression object can be specified."
 msgstr ""
 
-#: gnu/packages/textutils.scm:531
+#: gnu/packages/textutils.scm:557
 msgid "Microsoft Word document reader"
 msgstr ""
 
-#: gnu/packages/textutils.scm:532
+#: gnu/packages/textutils.scm:558
 msgid ""
 "Antiword is an application for displaying Microsoft Word\n"
 "documents.  It can also convert the document to PostScript or XML.  Only\n"
@@ -23096,11 +25467,11 @@ msgid ""
 "runs Word\"."
 msgstr ""
 
-#: gnu/packages/textutils.scm:565
+#: gnu/packages/textutils.scm:591
 msgid "MS-Word to TeX or plain text converter"
 msgstr ""
 
-#: gnu/packages/textutils.scm:566
+#: gnu/packages/textutils.scm:592
 msgid ""
 "@command{catdoc} extracts text from MS-Word files, trying to\n"
 "preserve as many special printable characters as possible.  It supports\n"
@@ -23116,21 +25487,21 @@ msgid ""
 "@command{catppt}, which extracts data from PowerPoint presentations."
 msgstr ""
 
-#: gnu/packages/textutils.scm:607
+#: gnu/packages/textutils.scm:633
 msgid "Portable C++ library for handling UTF-8"
 msgstr ""
 
-#: gnu/packages/textutils.scm:608
+#: gnu/packages/textutils.scm:634
 msgid ""
 "UTF8-CPP is a C++ library for handling UTF-8 encoded text\n"
 "in a portable way."
 msgstr ""
 
-#: gnu/packages/textutils.scm:676
+#: gnu/packages/textutils.scm:702
 msgid "Bayesian text and email classifier"
 msgstr ""
 
-#: gnu/packages/textutils.scm:678
+#: gnu/packages/textutils.scm:704
 msgid ""
 "dbacl is a fast Bayesian text and email classifier.  It builds a variety\n"
 "of language models using maximum entropy (minimum divergence) principles, and\n"
@@ -23138,15 +25509,72 @@ msgid ""
 "categories."
 msgstr ""
 
-#: gnu/packages/textutils.scm:716
+#: gnu/packages/textutils.scm:742
 msgid "C library for creating and parsing configuration files."
 msgstr ""
 
-#: gnu/packages/textutils.scm:744
+#: gnu/packages/textutils.scm:798
+msgid "Utilities to manipulate text and binary files"
+msgstr ""
+
+#: gnu/packages/textutils.scm:799
+msgid ""
+"The drm_tools package contains the following commands:\n"
+"@table @command\n"
+"@item accudate\n"
+"An extended version of the \"date\" program that has sub-second accuracy.\n"
+"@item binformat\n"
+"Format complex binary data into text.\n"
+"@item binload\n"
+"Load data into a binary file using simple commands from the input.\n"
+"@item binorder\n"
+"Sort, merge, search, retrieve or generate test data consisting of fixed size\n"
+"binary records.\n"
+"@item binreplace\n"
+"Find or find/replace in binary files.\n"
+"@item binsplit\n"
+"Split test data consisting of fixed size binary records into one or more\n"
+"output streams.\n"
+"@item chardiff\n"
+"Find changes between two files at the character level.  Unlike \"diff\", it\n"
+"lists just the characters that differ, so if the 40,000th character is\n"
+"different only that one character will be shown, not the entire line.\n"
+"@item columnadd\n"
+"Add columns of integers, decimals, and/or times.\n"
+"@item datasniffer\n"
+"A utility for formatting binary data dumps.\n"
+"@item dmath\n"
+"Double precision interactive command line math calculator.\n"
+"@item extract\n"
+"Extract and emit data from text files based on character or token position.\n"
+"@item execinput\n"
+"A utility that reads from STDIN and executes each line as a command in a\n"
+"sub-process.\n"
+"@item indexed_text\n"
+"A utility for rapid retrieval of text by line numbers, in any order, from a\n"
+"text file.\n"
+"@item mdump\n"
+"Format binary data.\n"
+"@item msgqueue\n"
+"Create message queues and send/receive messages.\n"
+"@item mbin\n"
+"@itemx mbout\n"
+"Multiple buffer in and out.  Used for buffering a lot of data between a slow\n"
+"device and a fast device.  Mostly for buffering streaming tape drives for use\n"
+"with slower network connections, so that streaming is maintained as much as\n"
+"possible to minimize wear on the tape device.\n"
+"@item pockmark\n"
+"Corrupt data streams - useful for testing error correction and data recovery.\n"
+"@item tarsieve\n"
+"Filter, list, or split a tar file.\n"
+"@end table"
+msgstr ""
+
+#: gnu/packages/textutils.scm:874
 msgid "Syntax highlighting text component for Java Swing"
 msgstr ""
 
-#: gnu/packages/textutils.scm:745
+#: gnu/packages/textutils.scm:875
 msgid ""
 "RSyntaxTextArea is a syntax highlighting, code folding text\n"
 "component for Java Swing.  It extends @code{JTextComponent} so it integrates\n"
@@ -23155,32 +25583,32 @@ msgid ""
 "source code."
 msgstr ""
 
-#: gnu/packages/textutils.scm:783
+#: gnu/packages/textutils.scm:913
 msgid "Fast implementation of the edit distance (Levenshtein distance)"
 msgstr ""
 
-#: gnu/packages/textutils.scm:785
+#: gnu/packages/textutils.scm:915
 msgid ""
 "This library simply implements Levenshtein distance algorithm with C++\n"
 "and Cython."
 msgstr ""
 
-#: gnu/packages/textutils.scm:809
+#: gnu/packages/textutils.scm:939
 msgid "@code{runewidth} provides Go functions to work with string widths"
 msgstr ""
 
-#: gnu/packages/textutils.scm:811
+#: gnu/packages/textutils.scm:941
 msgid ""
 "The @code{runewidth} library provides Go functions for padding,\n"
 "measuring and checking the width of strings, with support for East Asian\n"
 "text."
 msgstr ""
 
-#: gnu/packages/textutils.scm:863
+#: gnu/packages/textutils.scm:993
 msgid "Recover text from @file{.docx} files, with good formatting"
 msgstr ""
 
-#: gnu/packages/textutils.scm:865
+#: gnu/packages/textutils.scm:995
 msgid ""
 "@command{docx2txt} is a Perl based command line utility to convert\n"
 "Microsoft Office @file{.docx} documents to equivalent text documents.  Latest\n"
@@ -23199,11 +25627,11 @@ msgid ""
 "@end itemize\n"
 msgstr ""
 
-#: gnu/packages/textutils.scm:909
+#: gnu/packages/textutils.scm:1039
 msgid "Converter from OpenDocument Text to plain text"
 msgstr ""
 
-#: gnu/packages/textutils.scm:910
+#: gnu/packages/textutils.scm:1040
 msgid ""
 "odt2txt is a command-line tool which extracts the text out\n"
 "of OpenDocument Texts, as produced by OpenOffice.org, KOffice, StarOffice and\n"
@@ -23216,11 +25644,11 @@ msgid ""
 "OpenDocument presentations (*.odp)."
 msgstr ""
 
-#: gnu/packages/textutils.scm:955
+#: gnu/packages/textutils.scm:1085
 msgid "Convert between Traditional Chinese and Simplified Chinese"
 msgstr ""
 
-#: gnu/packages/textutils.scm:956
+#: gnu/packages/textutils.scm:1086
 msgid ""
 "Open Chinese Convert (OpenCC) converts between Traditional\n"
 "Chinese and Simplified Chinese, supporting character-level conversion,\n"
@@ -23228,22 +25656,22 @@ msgid ""
 "Mainland China, Taiwan, and Hong-Kong."
 msgstr ""
 
-#: gnu/packages/textutils.scm:990
+#: gnu/packages/textutils.scm:1120
 msgid "Network Kanji Filter"
 msgstr ""
 
-#: gnu/packages/textutils.scm:991
+#: gnu/packages/textutils.scm:1121
 msgid ""
 "Nkf is yet another kanji code converter among networks,\n"
 "hosts and terminals.  It converts input kanji code to designated kanji code\n"
 "such as ISO-2022-JP, Shift_JIS, EUC-JP, UTF-8, UTF-16 or UTF-32."
 msgstr ""
 
-#: gnu/packages/textutils.scm:1009
+#: gnu/packages/textutils.scm:1139
 msgid "Python module for writing Pandoc filters"
 msgstr ""
 
-#: gnu/packages/textutils.scm:1010
+#: gnu/packages/textutils.scm:1140
 msgid ""
 "Pandoc is a powerful utility to transform various\n"
 "input formats into a wide range of output formats.  To alter the\n"
@@ -23256,42 +25684,55 @@ msgid ""
 "This package provides Python bindings."
 msgstr ""
 
-#: gnu/packages/textutils.scm:1046
+#: gnu/packages/textutils.scm:1174
 msgid "Converts terminal escape sequences to HTML"
 msgstr ""
 
-#: gnu/packages/textutils.scm:1047
+#: gnu/packages/textutils.scm:1175
 msgid ""
 "@command{aha} (Ansi Html Adapter) converts ANSI escape sequences\n"
 "of a Unix terminal to HTML code."
 msgstr ""
 
-#: gnu/packages/version-control.scm:141
+#: gnu/packages/textutils.scm:1202
+msgid "Fully customizable syntax-aware linter that focuses on your style"
+msgstr ""
+
+#: gnu/packages/textutils.scm:1204
+msgid ""
+"Vale is a fully extensible linter that focuses on your own writing style\n"
+"by making use of rules in individual YAML files.  It is syntax-aware on markup\n"
+"languages such as HTML, Markdown, Asciidoc, and reStructuredText.  The community\n"
+"around it also has a list of style guides implemented with Vale in\n"
+"@url{https://github.com/errata-ai/styles, their styles repo}."
+msgstr ""
+
+#: gnu/packages/version-control.scm:147
 msgid "Version control system supporting both distributed and centralized workflows"
 msgstr ""
 
-#: gnu/packages/version-control.scm:143
+#: gnu/packages/version-control.scm:149
 msgid ""
 "GNU Bazaar is a version control system that allows you to record\n"
 "changes to project files over time.  It supports both a distributed workflow\n"
 "as well as the classic centralized workflow."
 msgstr ""
 
-#: gnu/packages/version-control.scm:459
+#: gnu/packages/version-control.scm:493
 msgid "Distributed version control system"
 msgstr ""
 
-#: gnu/packages/version-control.scm:461
+#: gnu/packages/version-control.scm:495
 msgid ""
 "Git is a free distributed version control system designed to handle\n"
 "everything from small to very large projects with speed and efficiency."
 msgstr ""
 
-#: gnu/packages/version-control.scm:587
+#: gnu/packages/version-control.scm:620
 msgid "Simple version control system built on top of Git"
 msgstr ""
 
-#: gnu/packages/version-control.scm:589
+#: gnu/packages/version-control.scm:622
 msgid ""
 "Gitless is a Git-compatible version control system that aims to be easy to\n"
 "learn and use.  It simplifies the common workflow by committing changes to\n"
@@ -23305,22 +25746,32 @@ msgid ""
 "on @command{git}, and use any regular Git hosting service."
 msgstr ""
 
-#: gnu/packages/version-control.scm:648
-msgid "Library providing Git core methods"
+#: gnu/packages/version-control.scm:649
+msgid "GitHub like contributions calendar for terminal"
 msgstr ""
 
 #: gnu/packages/version-control.scm:650
 msgid ""
+"@code{git-cal} is a script to view commits calendar similar\n"
+"to GitHub contributions calendar."
+msgstr ""
+
+#: gnu/packages/version-control.scm:712
+msgid "Library providing Git core methods"
+msgstr ""
+
+#: gnu/packages/version-control.scm:714
+msgid ""
 "Libgit2 is a portable, pure C implementation of the Git core methods\n"
 "provided as a re-entrant linkable library with a solid API, allowing you to\n"
 "write native speed custom Git applications in any language with bindings."
 msgstr ""
 
-#: gnu/packages/version-control.scm:700
+#: gnu/packages/version-control.scm:782
 msgid "Transparent encryption of files in a git repository"
 msgstr ""
 
-#: gnu/packages/version-control.scm:701
+#: gnu/packages/version-control.scm:783
 msgid ""
 "git-crypt enables transparent encryption and decryption of\n"
 "files in a git repository.  Files which you choose to protect are encrypted when\n"
@@ -23332,11 +25783,11 @@ msgid ""
 "to lock down your entire repository."
 msgstr ""
 
-#: gnu/packages/version-control.scm:736
+#: gnu/packages/version-control.scm:818
 msgid "Whole remote repository encryption"
 msgstr ""
 
-#: gnu/packages/version-control.scm:737
+#: gnu/packages/version-control.scm:819
 msgid ""
 "git-remote-gcrypt is a Git remote helper to push and pull from\n"
 "repositories encrypted with GnuPG.  It works with the standard Git transports,\n"
@@ -23355,21 +25806,21 @@ msgid ""
 "collaboration using typical untrusted file hosts or services."
 msgstr ""
 
-#: gnu/packages/version-control.scm:857
+#: gnu/packages/version-control.scm:939
 msgid "Web frontend for git repositories"
 msgstr ""
 
-#: gnu/packages/version-control.scm:859
+#: gnu/packages/version-control.scm:941
 msgid ""
 "CGit is an attempt to create a fast web interface for the Git SCM, using\n"
 "a built-in cache to decrease server I/O pressure."
 msgstr ""
 
-#: gnu/packages/version-control.scm:893
+#: gnu/packages/version-control.scm:975
 msgid "Send notification emails for Git pushes"
 msgstr ""
 
-#: gnu/packages/version-control.scm:895
+#: gnu/packages/version-control.scm:977
 msgid ""
 "This hook sends emails describing changes introduced by pushes to a Git\n"
 "repository.  For each reference that was changed, it emits one ReferenceChange\n"
@@ -23380,21 +25831,21 @@ msgid ""
 "repository"
 msgstr ""
 
-#: gnu/packages/version-control.scm:928
+#: gnu/packages/version-control.scm:1010
 msgid "Copy directory to the gh-pages branch"
 msgstr ""
 
-#: gnu/packages/version-control.scm:929
+#: gnu/packages/version-control.scm:1011
 msgid ""
 "Script that copies a directory to the gh-pages branch (by\n"
 "default) of the repository."
 msgstr ""
 
-#: gnu/packages/version-control.scm:987
+#: gnu/packages/version-control.scm:1069
 msgid "Python implementation of the Git object database"
 msgstr ""
 
-#: gnu/packages/version-control.scm:989
+#: gnu/packages/version-control.scm:1071
 msgid ""
 "GitDB allows you to access @dfn{bare} Git repositories for reading and\n"
 "writing.  It aims at allowing full access to loose objects as well as packs\n"
@@ -23402,11 +25853,11 @@ msgid ""
 "allowing to handle large objects with a small memory footprint."
 msgstr ""
 
-#: gnu/packages/version-control.scm:1025
+#: gnu/packages/version-control.scm:1107
 msgid "Python library for interacting with Git repositories"
 msgstr ""
 
-#: gnu/packages/version-control.scm:1027
+#: gnu/packages/version-control.scm:1109
 msgid ""
 "GitPython is a python library used to interact with Git repositories,\n"
 "high-level like git-porcelain, or low-level like git-plumbing.\n"
@@ -23417,11 +25868,11 @@ msgid ""
 "@command{git} command implementation."
 msgstr ""
 
-#: gnu/packages/version-control.scm:1063
+#: gnu/packages/version-control.scm:1145
 msgid "Command-line flags library for shell scripts"
 msgstr ""
 
-#: gnu/packages/version-control.scm:1065
+#: gnu/packages/version-control.scm:1147
 msgid ""
 "Shell Flags (shFlags) is a library written to greatly simplify the\n"
 "handling of command-line flags in Bourne based Unix shell scripts (bash, dash,\n"
@@ -23432,11 +25883,11 @@ msgid ""
 "will work."
 msgstr ""
 
-#: gnu/packages/version-control.scm:1109
+#: gnu/packages/version-control.scm:1191
 msgid "Git extensions for Vincent Driessen's branching model"
 msgstr ""
 
-#: gnu/packages/version-control.scm:1111
+#: gnu/packages/version-control.scm:1193
 msgid ""
 "Vincent Driessen's branching model is a git branching and release\n"
 "management strategy that helps developers keep track of features, hotfixes,\n"
@@ -23445,11 +25896,11 @@ msgid ""
 "lot easier."
 msgstr ""
 
-#: gnu/packages/version-control.scm:1161
+#: gnu/packages/version-control.scm:1243
 msgid "Stacked Git"
 msgstr ""
 
-#: gnu/packages/version-control.scm:1163
+#: gnu/packages/version-control.scm:1245
 msgid ""
 "StGit is a command-line application that provides functionality similar\n"
 "to Quilt (i.e., pushing/popping patches to/from a stack), but using Git\n"
@@ -23458,11 +25909,11 @@ msgid ""
 "manipulate them in various ways."
 msgstr ""
 
-#: gnu/packages/version-control.scm:1200
+#: gnu/packages/version-control.scm:1282
 msgid "Version control system for @code{$HOME}"
 msgstr ""
 
-#: gnu/packages/version-control.scm:1202
+#: gnu/packages/version-control.scm:1284
 msgid ""
 "vcsh version-controls configuration files in several Git repositories,\n"
 "all in one single directory.  They all maintain their working trees without\n"
@@ -23471,43 +25922,64 @@ msgid ""
 "though this can be overridden."
 msgstr ""
 
-#: gnu/packages/version-control.scm:1238
+#: gnu/packages/version-control.scm:1320
 msgid "Run a command over a sequence of commits"
 msgstr ""
 
-#: gnu/packages/version-control.scm:1240
+#: gnu/packages/version-control.scm:1322
 msgid ""
 "git-test-sequence is similar to an automated git bisect except it’s\n"
 "linear.  It will test every change between two points in the DAG.  It will\n"
 "also walk each side of a merge and test those changes individually."
 msgstr ""
 
-#: gnu/packages/version-control.scm:1353
+#: gnu/packages/version-control.scm:1435
 msgid "Git access control layer"
 msgstr ""
 
-#: gnu/packages/version-control.scm:1355
+#: gnu/packages/version-control.scm:1437
 msgid ""
 "Gitolite is an access control layer on top of Git, providing fine access\n"
 "control to Git repositories."
 msgstr ""
 
-#: gnu/packages/version-control.scm:1426
+#: gnu/packages/version-control.scm:1546
+msgid "Framework for managing and maintaining multi-language pre-commit hooks"
+msgstr ""
+
+#: gnu/packages/version-control.scm:1548
+msgid ""
+"Pre-commit is a multi-language package manager for pre-commit hooks.  You\n"
+"specify a list of hooks you want and pre-commit manages the installation and\n"
+"execution of any hook written in any language before every commit."
+msgstr ""
+
+#: gnu/packages/version-control.scm:1627
 msgid "Decentralized version control system"
 msgstr ""
 
-#: gnu/packages/version-control.scm:1428
+#: gnu/packages/version-control.scm:1629
 msgid ""
 "Mercurial is a free, distributed source control management tool.\n"
 "It efficiently handles projects of any size\n"
 "and offers an easy and intuitive interface."
 msgstr ""
 
-#: gnu/packages/version-control.scm:1462
+#: gnu/packages/version-control.scm:1655
+msgid "Flexible evolution of Mercurial history"
+msgstr ""
+
+#: gnu/packages/version-control.scm:1656
+msgid ""
+"Evolve is a Mercurial extension for faster and safer mutable\n"
+"history.  It implements the changeset evolution concept for Mercurial."
+msgstr ""
+
+#: gnu/packages/version-control.scm:1689
 msgid "HTTP and WebDAV client library"
 msgstr ""
 
-#: gnu/packages/version-control.scm:1464
+#: gnu/packages/version-control.scm:1691
 msgid ""
 "Neon is an HTTP and WebDAV client library, with a C interface and the\n"
 "following features:\n"
@@ -23529,11 +26001,11 @@ msgid ""
 "@end enumerate\n"
 msgstr ""
 
-#: gnu/packages/version-control.scm:1562
+#: gnu/packages/version-control.scm:1785
 msgid "Revision control system"
 msgstr ""
 
-#: gnu/packages/version-control.scm:1564
+#: gnu/packages/version-control.scm:1787
 msgid ""
 "@dfn{Subversion} (svn) exists to be recognized and adopted as a\n"
 "centralized version control system characterized by its\n"
@@ -23542,11 +26014,11 @@ msgid ""
 "projects, from individuals to large-scale enterprise operations."
 msgstr ""
 
-#: gnu/packages/version-control.scm:1595
+#: gnu/packages/version-control.scm:1809
 msgid "Per-file local revision control system"
 msgstr ""
 
-#: gnu/packages/version-control.scm:1597
+#: gnu/packages/version-control.scm:1811
 msgid ""
 "RCS is the original Revision Control System.  It works on a\n"
 "file-by-file basis, in contrast to subsequent version control systems such as\n"
@@ -23555,11 +26027,11 @@ msgid ""
 "machine."
 msgstr ""
 
-#: gnu/packages/version-control.scm:1625
+#: gnu/packages/version-control.scm:1839
 msgid "Historical centralized version control system"
 msgstr ""
 
-#: gnu/packages/version-control.scm:1627
+#: gnu/packages/version-control.scm:1841
 msgid ""
 "CVS is a version control system, an important component of Source\n"
 "Configuration Management (SCM).  Using it, you can record the history of\n"
@@ -23567,11 +26039,11 @@ msgid ""
 "RCS, PRCS, and Aegis packages."
 msgstr ""
 
-#: gnu/packages/version-control.scm:1661
+#: gnu/packages/version-control.scm:1875
 msgid "Export an RCS or CVS history as a fast-import stream"
 msgstr ""
 
-#: gnu/packages/version-control.scm:1662
+#: gnu/packages/version-control.scm:1876
 msgid ""
 "This program analyzes a collection of RCS files in a CVS\n"
 "repository (or outside of one) and, when possible, emits an equivalent history\n"
@@ -23584,11 +26056,11 @@ msgid ""
 "masters from remote CVS hosts."
 msgstr ""
 
-#: gnu/packages/version-control.scm:1690
+#: gnu/packages/version-control.scm:1904
 msgid "Version-control-agnostic ChangeLog diff and commit tool"
 msgstr ""
 
-#: gnu/packages/version-control.scm:1692
+#: gnu/packages/version-control.scm:1906
 msgid ""
 "The vc-dwim package contains two tools, \"vc-dwim\" and \"vc-chlog\".\n"
 "vc-dwim is a tool that simplifies the task of maintaining a ChangeLog and\n"
@@ -23598,33 +26070,33 @@ msgid ""
 "standards-compliant ChangeLog entries based on the changes that it detects."
 msgstr ""
 
-#: gnu/packages/version-control.scm:1717
+#: gnu/packages/version-control.scm:1931
 msgid "Make histograms from the output of @command{diff}"
 msgstr ""
 
-#: gnu/packages/version-control.scm:1719
+#: gnu/packages/version-control.scm:1933
 msgid ""
 "Diffstat reads the output of @command{diff} and displays a histogram of\n"
 "the insertions, deletions, and modifications per file.  It is useful for\n"
 "reviewing large, complex patch files."
 msgstr ""
 
-#: gnu/packages/version-control.scm:1758
+#: gnu/packages/version-control.scm:1972
 msgid "File-based version control like SCCS"
 msgstr ""
 
-#: gnu/packages/version-control.scm:1759
+#: gnu/packages/version-control.scm:1973
 msgid ""
 "GNU CSSC provides a replacement for the legacy Unix source\n"
 "code control system SCCS.  This allows old code still under that system to be\n"
 "accessed and migrated on modern systems."
 msgstr ""
 
-#: gnu/packages/version-control.scm:1847
+#: gnu/packages/version-control.scm:2064
 msgid "Project change supervisor"
 msgstr ""
 
-#: gnu/packages/version-control.scm:1848
+#: gnu/packages/version-control.scm:2065
 msgid ""
 "Aegis is a project change supervisor, and performs some of\n"
 "the Software Configuration Management needed in a CASE environment.  Aegis\n"
@@ -23635,11 +26107,11 @@ msgid ""
 "any project with more than one developer, is one of Aegis's major functions."
 msgstr ""
 
-#: gnu/packages/version-control.scm:1922
+#: gnu/packages/version-control.scm:2139
 msgid "Edit version-control repository history"
 msgstr ""
 
-#: gnu/packages/version-control.scm:1923
+#: gnu/packages/version-control.scm:2140
 msgid ""
 "Reposurgeon enables risky operations that version-control\n"
 "systems don't want to let you do, such as editing past comments and metadata\n"
@@ -23650,32 +26122,32 @@ msgid ""
 "from Subversion to any supported Distributed Version Control System (DVCS)."
 msgstr ""
 
-#: gnu/packages/version-control.scm:1962
+#: gnu/packages/version-control.scm:2179
 msgid "Ncurses-based text user interface for Git"
 msgstr ""
 
-#: gnu/packages/version-control.scm:1964
+#: gnu/packages/version-control.scm:2181
 msgid ""
 "Tig is an ncurses text user interface for Git, primarily intended as\n"
 "a history browser.  It can also stage hunks for commit, or colorize the\n"
 "output of the @code{git} command."
 msgstr ""
 
-#: gnu/packages/version-control.scm:1986
+#: gnu/packages/version-control.scm:2203
 msgid "Print the modification time of the latest file"
 msgstr ""
 
-#: gnu/packages/version-control.scm:1988
+#: gnu/packages/version-control.scm:2205
 msgid ""
 "Recursively find the newest file in a file tree and print its\n"
 "modification time."
 msgstr ""
 
-#: gnu/packages/version-control.scm:2033
+#: gnu/packages/version-control.scm:2250
 msgid "Multiple repository management tool"
 msgstr ""
 
-#: gnu/packages/version-control.scm:2035
+#: gnu/packages/version-control.scm:2252
 msgid ""
 "Myrepos provides the @code{mr} command, which maps an operation (e.g.,\n"
 "fetching updates) over a collection of version control repositories.  It\n"
@@ -23683,42 +26155,53 @@ msgid ""
 "Mercurial, Bazaar, Darcs, CVS, Fossil, and Veracity."
 msgstr ""
 
-#: gnu/packages/version-control.scm:2078
+#: gnu/packages/version-control.scm:2289
+msgid "Framework to smartly mirror git repositories"
+msgstr ""
+
+#: gnu/packages/version-control.scm:2290
+msgid ""
+"Grokmirror enables replicating large git repository\n"
+"collections efficiently.  Mirrors decide to clone and update repositories\n"
+"based on a manifest file published by servers."
+msgstr ""
+
+#: gnu/packages/version-control.scm:2332
 msgid "Use rclone-supported cloud storage providers with git-annex"
 msgstr ""
 
-#: gnu/packages/version-control.scm:2079
+#: gnu/packages/version-control.scm:2333
 msgid ""
 "This wrapper around rclone makes any destination supported\n"
 "by rclone usable with git-annex."
 msgstr ""
 
-#: gnu/packages/version-control.scm:2136
+#: gnu/packages/version-control.scm:2389
 msgid "Software configuration management system"
 msgstr ""
 
-#: gnu/packages/version-control.scm:2138
+#: gnu/packages/version-control.scm:2391
 msgid ""
 "Fossil is a distributed source control management system which supports\n"
 "access and administration over HTTP CGI or via a built-in HTTP server.  It has\n"
 "a built-in wiki, built-in file browsing, built-in tickets system, etc."
 msgstr ""
 
-#: gnu/packages/version-control.scm:2166
+#: gnu/packages/version-control.scm:2419
 msgid "Static git page generator"
 msgstr ""
 
-#: gnu/packages/version-control.scm:2167
+#: gnu/packages/version-control.scm:2420
 msgid ""
 "Stagit creates static pages for git repositories, the results can\n"
 "be served with a HTTP file server of your choice."
 msgstr ""
 
-#: gnu/packages/version-control.scm:2202
+#: gnu/packages/version-control.scm:2455
 msgid "3D visualisation tool for source control repositories"
 msgstr ""
 
-#: gnu/packages/version-control.scm:2203
+#: gnu/packages/version-control.scm:2456
 msgid ""
 "@code{gource} provides a software version control\n"
 "visualization.  The repository is displayed as a tree where the root of the\n"
@@ -23727,11 +26210,11 @@ msgid ""
 "specific files and directories."
 msgstr ""
 
-#: gnu/packages/version-control.scm:2249
+#: gnu/packages/version-control.scm:2502
 msgid "Simple revision control"
 msgstr ""
 
-#: gnu/packages/version-control.scm:2252
+#: gnu/packages/version-control.scm:2505
 #, scheme-format
 msgid ""
 "SRC (or src) is simple revision control, a version-control system for\n"
@@ -23741,11 +26224,11 @@ msgid ""
 "directory full of HOWTOs."
 msgstr ""
 
-#: gnu/packages/version-control.scm:2304
+#: gnu/packages/version-control.scm:2557
 msgid "Determine when a commit was merged into a Git branch"
 msgstr ""
 
-#: gnu/packages/version-control.scm:2305
+#: gnu/packages/version-control.scm:2558
 msgid ""
 "This Git extension defines a subcommand,\n"
 "@code{when-merged}, whose core operation is to find the merge that brought a\n"
@@ -23753,11 +26236,11 @@ msgid ""
 "how information about the merge is displayed."
 msgstr ""
 
-#: gnu/packages/version-control.scm:2349
+#: gnu/packages/version-control.scm:2602
 msgid "Incremental merge for Git"
 msgstr ""
 
-#: gnu/packages/version-control.scm:2350
+#: gnu/packages/version-control.scm:2603
 msgid ""
 "This Git extension defines a subcommand, @code{imerge},\n"
 "which performs an incremental merge between two branches.  Its two primary\n"
@@ -23766,22 +26249,22 @@ msgid ""
 "interrupted, published, and collaborated on while in progress."
 msgstr ""
 
-#: gnu/packages/version-control.scm:2374
+#: gnu/packages/version-control.scm:2652
 msgid "Git extension for versioning large files"
 msgstr ""
 
-#: gnu/packages/version-control.scm:2376
+#: gnu/packages/version-control.scm:2654
 msgid ""
 "Git Large File Storage (LFS) replaces large files such as audio samples,\n"
 "videos, datasets, and graphics with text pointers inside Git, while storing the\n"
 "file contents on a remote server."
 msgstr ""
 
-#: gnu/packages/version-control.scm:2429
+#: gnu/packages/version-control.scm:2707
 msgid "Historical distributed version-control system"
 msgstr ""
 
-#: gnu/packages/version-control.scm:2431
+#: gnu/packages/version-control.scm:2709
 msgid ""
 "GNU Arch, aka. @code{tla}, was one of the first free distributed\n"
 "version-control systems (DVCS).  It saw its last release in 2006.  This\n"
@@ -23789,11 +26272,19 @@ msgid ""
 "for historians."
 msgstr ""
 
-#: gnu/packages/virtualization.scm:249
+#: gnu/packages/version-control.scm:2766
+msgid "Git implementation library"
+msgstr ""
+
+#: gnu/packages/version-control.scm:2767
+msgid "This package provides a Git implementation library."
+msgstr ""
+
+#: gnu/packages/virtualization.scm:298
 msgid "Machine emulator and virtualizer"
 msgstr ""
 
-#: gnu/packages/virtualization.scm:251
+#: gnu/packages/virtualization.scm:300
 msgid ""
 "QEMU is a generic machine emulator and virtualizer.\n"
 "\n"
@@ -23808,15 +26299,56 @@ msgid ""
 "server and embedded PowerPC, and S390 guests."
 msgstr ""
 
-#: gnu/packages/virtualization.scm:273
-msgid "Machine emulator and virtualizer (without GUI)"
+#: gnu/packages/virtualization.scm:324
+msgid "Machine emulator and virtualizer (without GUI) for the host architecture"
 msgstr ""
 
-#: gnu/packages/virtualization.scm:343
+#: gnu/packages/virtualization.scm:737
+msgid "Cluster-based virtual machine management system"
+msgstr ""
+
+#: gnu/packages/virtualization.scm:739
+msgid ""
+"Ganeti is a virtual machine management tool built on top of existing\n"
+"virtualization technologies such as Xen or KVM.  Ganeti controls:\n"
+"\n"
+"@itemize @bullet\n"
+"@item Disk creation management;\n"
+"@item Operating system installation for instances (in co-operation with\n"
+"OS-specific install scripts); and\n"
+"@item Startup, shutdown, and failover between physical systems.\n"
+"@end itemize\n"
+"\n"
+"Ganeti is designed to facilitate cluster management of virtual servers and\n"
+"to provide fast and simple recovery after physical failures, using\n"
+"commodity hardware."
+msgstr ""
+
+#: gnu/packages/virtualization.scm:775
+msgid "Guix OS integration for Ganeti"
+msgstr ""
+
+#: gnu/packages/virtualization.scm:777
+msgid ""
+"This package provides a guest OS definition for Ganeti that uses\n"
+"Guix to build virtual machines."
+msgstr ""
+
+#: gnu/packages/virtualization.scm:870
+msgid "Debian OS integration for Ganeti"
+msgstr ""
+
+#: gnu/packages/virtualization.scm:872
+msgid ""
+"This package provides a guest OS definition for Ganeti.  It installs\n"
+"Debian or a derivative using @command{debootstrap}."
+msgstr ""
+
+#: gnu/packages/virtualization.scm:932
 msgid "Operating system information database"
 msgstr ""
 
-#: gnu/packages/virtualization.scm:344
+#: gnu/packages/virtualization.scm:933
 msgid ""
 "libosinfo is a GObject based library API for managing\n"
 "information about operating systems, hypervisors and the (virtual) hardware\n"
@@ -23826,22 +26358,22 @@ msgid ""
 "all common programming languages.  Vala bindings are also provided."
 msgstr ""
 
-#: gnu/packages/virtualization.scm:399
+#: gnu/packages/virtualization.scm:982
 msgid "Linux container tools"
 msgstr ""
 
-#: gnu/packages/virtualization.scm:402
+#: gnu/packages/virtualization.scm:985
 msgid ""
 "LXC is a userspace interface for the Linux kernel containment features.\n"
 "Through a powerful API and simple tools, it lets Linux users easily create and\n"
 "manage system or application containers."
 msgstr ""
 
-#: gnu/packages/virtualization.scm:496
+#: gnu/packages/virtualization.scm:1079
 msgid "Simple API for virtualization"
 msgstr ""
 
-#: gnu/packages/virtualization.scm:497
+#: gnu/packages/virtualization.scm:1080
 msgid ""
 "Libvirt is a C toolkit to interact with the virtualization\n"
 "capabilities of recent versions of Linux.  The library aims at providing long\n"
@@ -23849,11 +26381,11 @@ msgid ""
 "to integrate other virtualization mechanisms if needed."
 msgstr ""
 
-#: gnu/packages/virtualization.scm:532
+#: gnu/packages/virtualization.scm:1115
 msgid "GLib wrapper around libvirt"
 msgstr ""
 
-#: gnu/packages/virtualization.scm:533
+#: gnu/packages/virtualization.scm:1116
 msgid ""
 "libvirt-glib wraps the libvirt library to provide a\n"
 "high-level object-oriented API better suited for glib-based applications, via\n"
@@ -23866,21 +26398,21 @@ msgid ""
 "@end enumerate\n"
 msgstr ""
 
-#: gnu/packages/virtualization.scm:576
+#: gnu/packages/virtualization.scm:1159
 msgid "Python bindings to libvirt"
 msgstr ""
 
-#: gnu/packages/virtualization.scm:577
+#: gnu/packages/virtualization.scm:1160
 msgid ""
 "This package provides Python bindings to the libvirt\n"
 "virtualization library."
 msgstr ""
 
-#: gnu/packages/virtualization.scm:678
+#: gnu/packages/virtualization.scm:1278
 msgid "Manage virtual machines"
 msgstr "Virtuelle Maschinen verwalten"
 
-#: gnu/packages/virtualization.scm:680
+#: gnu/packages/virtualization.scm:1280
 msgid ""
 "The virt-manager application is a desktop user interface for managing\n"
 "virtual machines through libvirt.  It primarily targets KVM VMs, but also\n"
@@ -23888,11 +26420,11 @@ msgid ""
 "domains, their live performance and resource utilization statistics."
 msgstr ""
 
-#: gnu/packages/virtualization.scm:793
+#: gnu/packages/virtualization.scm:1387
 msgid "Checkpoint and restore in user space"
 msgstr ""
 
-#: gnu/packages/virtualization.scm:794
+#: gnu/packages/virtualization.scm:1388
 msgid ""
 "Using this tool, you can freeze a running application (or\n"
 "part of it) and checkpoint it to a hard drive as a collection of files.  You\n"
@@ -23901,22 +26433,22 @@ msgid ""
 "mainly implemented in user space."
 msgstr ""
 
-#: gnu/packages/virtualization.scm:820
+#: gnu/packages/virtualization.scm:1414
 msgid "Backup and restore QEMU machines"
 msgstr ""
 
-#: gnu/packages/virtualization.scm:821
+#: gnu/packages/virtualization.scm:1415
 msgid ""
 "qmpbackup is designed to create and restore full and\n"
 "incremental backups of running QEMU virtual machines via QMP, the QEMU\n"
 "Machine Protocol."
 msgstr ""
 
-#: gnu/packages/virtualization.scm:885
+#: gnu/packages/virtualization.scm:1479
 msgid "KVM Frame Relay (KVMFR) implementation"
 msgstr ""
 
-#: gnu/packages/virtualization.scm:886
+#: gnu/packages/virtualization.scm:1480
 msgid ""
 "Looking Glass allows the use of a KVM (Kernel-based Virtual\n"
 "Machine) configured for VGA PCI Pass-through without an attached physical\n"
@@ -23924,11 +26456,11 @@ msgid ""
 "monitor/GPU."
 msgstr ""
 
-#: gnu/packages/virtualization.scm:943
+#: gnu/packages/virtualization.scm:1538
 msgid "Open container initiative runtime"
 msgstr ""
 
-#: gnu/packages/virtualization.scm:946
+#: gnu/packages/virtualization.scm:1541
 msgid ""
 "@command{runc} is a command line client for running applications\n"
 "packaged according to the\n"
@@ -23937,21 +26469,21 @@ msgid ""
 "Open Container Initiative specification."
 msgstr ""
 
-#: gnu/packages/virtualization.scm:992
+#: gnu/packages/virtualization.scm:1588
 msgid "Tool for modifying Open Container images"
 msgstr ""
 
-#: gnu/packages/virtualization.scm:994
+#: gnu/packages/virtualization.scm:1590
 msgid ""
 "@command{umoci} is a tool that allows for high-level modification of an\n"
 "Open Container Initiative (OCI) image layout and its tagged images."
 msgstr ""
 
-#: gnu/packages/virtualization.scm:1040
+#: gnu/packages/virtualization.scm:1643
 msgid "Interact with container images and container image registries"
 msgstr ""
 
-#: gnu/packages/virtualization.scm:1042
+#: gnu/packages/virtualization.scm:1645
 msgid ""
 "@command{skopeo} is a command line utility providing various operations\n"
 "with container images and container image registries.  It can:\n"
@@ -23972,22 +26504,22 @@ msgid ""
 "@end enumerate"
 msgstr ""
 
-#: gnu/packages/virtualization.scm:1076
+#: gnu/packages/virtualization.scm:1679
 msgid "Python bindings for Vagrant"
 msgstr "Python-Anbindungen für Vagrant"
 
-#: gnu/packages/virtualization.scm:1078
+#: gnu/packages/virtualization.scm:1681
 msgid ""
 "Python-vagrant is a Python module that provides a thin wrapper around the\n"
 "@code{vagrant} command line executable, allowing programmatic control of Vagrant\n"
 "virtual machines."
 msgstr ""
 
-#: gnu/packages/virtualization.scm:1132
+#: gnu/packages/virtualization.scm:1735
 msgid "Unprivileged sandboxing tool"
 msgstr ""
 
-#: gnu/packages/virtualization.scm:1133
+#: gnu/packages/virtualization.scm:1736
 msgid ""
 "Bubblewrap is aimed at running applications in a sandbox,\n"
 "restricting their access to parts of the operating system or user data such as\n"
@@ -23997,11 +26529,11 @@ msgid ""
 "by default and can be made read-only."
 msgstr ""
 
-#: gnu/packages/virtualization.scm:1158
+#: gnu/packages/virtualization.scm:1761
 msgid "Emulator for x86 PC"
 msgstr ""
 
-#: gnu/packages/virtualization.scm:1160
+#: gnu/packages/virtualization.scm:1763
 msgid ""
 "Bochs is an emulator which can emulate Intel x86 CPU, common I/O\n"
 "devices, and a custom BIOS.  It can also be compiled to emulate many different\n"
@@ -24010,74 +26542,84 @@ msgid ""
 "DOS or Microsoft Windows."
 msgstr ""
 
-#: gnu/packages/virtualization.scm:1363
+#: gnu/packages/virtualization.scm:1965
 msgid "Xen Virtual Machine Monitor"
 msgstr ""
 
-#: gnu/packages/virtualization.scm:1364
+#: gnu/packages/virtualization.scm:1966
 msgid ""
 "This package provides the Xen Virtual Machine Monitor\n"
 "which is a hypervisor."
 msgstr ""
 
-#: gnu/packages/virtualization.scm:1399
+#: gnu/packages/virtualization.scm:2001
 msgid "Tools for managing the osinfo database"
 msgstr ""
 
-#: gnu/packages/virtualization.scm:1400
+#: gnu/packages/virtualization.scm:2002
 msgid ""
 "This package contains a set of tools to assist\n"
 "administrators and developers in managing the database."
 msgstr ""
 
-#: gnu/packages/virtualization.scm:1434
+#: gnu/packages/virtualization.scm:2036
 msgid "Database of information about operating systems"
 msgstr ""
 
-#: gnu/packages/virtualization.scm:1435
+#: gnu/packages/virtualization.scm:2037
 msgid ""
 "Osinfo-db provides the database files for use with the\n"
 "libosinfo library.  It provides information about guest operating systems for\n"
 "use with virtualization provisioning tools"
 msgstr ""
 
-#: gnu/packages/webkit.scm:86
-msgid "Platform agnostic WebKit interfaces"
+#: gnu/packages/webkit.scm:88
+msgid "General-purpose library for WPE"
 msgstr ""
 
-#: gnu/packages/webkit.scm:88
+#: gnu/packages/webkit.scm:89
 msgid ""
-"@code{libwpe} is a small library that defines programming interfaces\n"
-"for use by WebKit, and provides a mechanism for loading a platform-specific\n"
-"backend which implements them."
+"LibWPE is general-purpose library specifically developed for\n"
+"the WPE-flavored port of WebKit."
 msgstr ""
 
-#: gnu/packages/webkit.scm:115
+#: gnu/packages/webkit.scm:116
 msgid "Wayland WPE backend"
 msgstr ""
 
-#: gnu/packages/webkit.scm:117
+#: gnu/packages/webkit.scm:118
 msgid ""
 "This package provides a backend implementation for the WPE WebKit\n"
 "engine that uses Wayland for graphics output."
 msgstr ""
 
-#: gnu/packages/webkit.scm:227
+#: gnu/packages/webkit.scm:212
+msgid "WebKit port optimized for embedded devices"
+msgstr ""
+
+#: gnu/packages/webkit.scm:213
+msgid ""
+"WPE WebKit allows embedders to create simple and performant\n"
+"systems based on Web platform technologies.  It is designed with hardware\n"
+"acceleration in mind, leveraging common 3D graphics APIs for best performance."
+msgstr ""
+
+#: gnu/packages/webkit.scm:342
 msgid "Web content engine for GTK+"
 msgstr ""
 
-#: gnu/packages/webkit.scm:229
+#: gnu/packages/webkit.scm:344
 msgid ""
 "WebKitGTK+ is a full-featured port of the WebKit rendering engine,\n"
 "suitable for projects requiring any kind of web integration, from hybrid\n"
 "HTML/CSS applications to full-fledged web browsers."
 msgstr ""
 
-#: gnu/packages/web.scm:177
+#: gnu/packages/web.scm:188
 msgid "Featureful HTTP server"
 msgstr ""
 
-#: gnu/packages/web.scm:179
+#: gnu/packages/web.scm:190
 msgid ""
 "The Apache HTTP Server Project is a collaborative software development\n"
 "effort aimed at creating a robust, commercial-grade, featureful, and\n"
@@ -24087,63 +26629,73 @@ msgid ""
 "and its related documentation."
 msgstr ""
 
-#: gnu/packages/web.scm:211
+#: gnu/packages/web.scm:222
 msgid "Apache HTTPD module for Python WSGI applications"
 msgstr ""
 
-#: gnu/packages/web.scm:213
+#: gnu/packages/web.scm:224
 msgid ""
 "The mod_wsgi module for the Apache HTTPD Server adds support for running\n"
 "applications that support the Python @acronym{WSGI, Web Server Gateway\n"
 "Interface} specification."
 msgstr ""
 
-#: gnu/packages/web.scm:302
+#: gnu/packages/web.scm:313
 msgid "HTTP and reverse proxy server"
 msgstr ""
 
-#: gnu/packages/web.scm:304
+#: gnu/packages/web.scm:315
 msgid ""
 "Nginx (\"engine X\") is a high-performance web and reverse proxy server\n"
 "created by Igor Sysoev.  It can be used both as a stand-alone web server\n"
 "and as a proxy to reduce the load on back-end HTTP or mail servers."
 msgstr ""
 
-#: gnu/packages/web.scm:349
-msgid "XSLScript with NGinx specific modifications"
-msgstr ""
-
-#: gnu/packages/web.scm:351
-msgid ""
-"XSLScript is a terse notation for writing complex XSLT stylesheets.\n"
-"This is modified version, specifically intended for use with the NGinx\n"
-"documentation."
-msgstr ""
-
-#: gnu/packages/web.scm:404
+#: gnu/packages/web.scm:373
 msgid "Documentation for the nginx web server"
 msgstr ""
 
-#: gnu/packages/web.scm:406
+#: gnu/packages/web.scm:375
 msgid "This package provides HTML documentation for the nginx web server."
 msgstr ""
 
-#: gnu/packages/web.scm:533
+#: gnu/packages/web.scm:502
 msgid "Nginx module for parsing the Accept-Language HTTP header"
 msgstr ""
 
-#: gnu/packages/web.scm:535
+#: gnu/packages/web.scm:504
 msgid ""
 "This nginx module parses the Accept-Language field in HTTP headers and\n"
 "chooses the most suitable locale for the user from the list of locales\n"
 "supported at your website."
 msgstr ""
 
-#: gnu/packages/web.scm:598
+#: gnu/packages/web.scm:549
+msgid "XSLScript with NGinx specific modifications"
+msgstr ""
+
+#: gnu/packages/web.scm:551
+msgid ""
+"XSLScript is a terse notation for writing complex XSLT stylesheets.\n"
+"This is modified version, specifically intended for use with the NGinx\n"
+"documentation."
+msgstr ""
+
+#: gnu/packages/web.scm:624
+msgid "NGINX module for Lua programming language support"
+msgstr ""
+
+#: gnu/packages/web.scm:625
+msgid ""
+"This NGINX module provides a scripting support with Lua\n"
+"programming language."
+msgstr ""
+
+#: gnu/packages/web.scm:681
 msgid "Lightweight HTTP and reverse proxy server"
 msgstr ""
 
-#: gnu/packages/web.scm:600
+#: gnu/packages/web.scm:683
 msgid ""
 "Lighttpd is a secure, fast, compliant, and very flexible web-server that\n"
 "has been optimized for high-performance environments.  It has a very low\n"
@@ -24151,65 +26703,65 @@ msgid ""
 "CGI, authentication, output compression, URL rewriting and many more."
 msgstr ""
 
-#: gnu/packages/web.scm:629
+#: gnu/packages/web.scm:712
 msgid "Language-independent, high-performant extension to CGI"
 msgstr ""
 
-#: gnu/packages/web.scm:630
+#: gnu/packages/web.scm:713
 msgid ""
 "FastCGI is a language-independent, scalable extension to CGI\n"
 "that provides high performance without the limitations of server specific\n"
 "APIs."
 msgstr ""
 
-#: gnu/packages/web.scm:669
+#: gnu/packages/web.scm:752
 msgid "Simple server for running CGI applications over FastCGI"
 msgstr ""
 
-#: gnu/packages/web.scm:670
+#: gnu/packages/web.scm:753
 msgid ""
 "Fcgiwrap is a simple server for running CGI applications\n"
 "over FastCGI.  It hopes to provide clean CGI support to Nginx (and other web\n"
 "servers that may need it)."
 msgstr ""
 
-#: gnu/packages/web.scm:700
+#: gnu/packages/web.scm:783
 msgid "PSGI/Plack web server"
 msgstr ""
 
-#: gnu/packages/web.scm:701
+#: gnu/packages/web.scm:784
 msgid ""
 "Starman is a PSGI perl web server that has unique features\n"
 "such as high performance, preforking, signal support, superdaemon awareness,\n"
 "and UNIX socket support."
 msgstr ""
 
-#: gnu/packages/web.scm:733
+#: gnu/packages/web.scm:816
 msgid "Java Web Start"
 msgstr ""
 
-#: gnu/packages/web.scm:735
+#: gnu/packages/web.scm:818
 msgid ""
 "IcedTea-Web is an implementation of the @dfn{Java Network Launching\n"
 "Protocol}, also known as Java Web Start.  This package provides tools and\n"
 "libraries for working with JNLP applets."
 msgstr ""
 
-#: gnu/packages/web.scm:758
+#: gnu/packages/web.scm:841
 msgid "JSON C library"
 msgstr ""
 
-#: gnu/packages/web.scm:760
+#: gnu/packages/web.scm:843
 msgid ""
 "Jansson is a C library for encoding, decoding and manipulating JSON\n"
 "data."
 msgstr ""
 
-#: gnu/packages/web.scm:787
+#: gnu/packages/web.scm:862
 msgid "JSON implementation in C"
 msgstr ""
 
-#: gnu/packages/web.scm:789
+#: gnu/packages/web.scm:864
 msgid ""
 "JSON-C implements a reference counting object model that allows you to\n"
 "easily construct JSON objects in C, output them as JSON-formatted strings and\n"
@@ -24217,11 +26769,11 @@ msgid ""
 "It aims to conform to RFC 7159."
 msgstr ""
 
-#: gnu/packages/web.scm:840
+#: gnu/packages/web.scm:948
 msgid "JSON parser written in ANSI C"
 msgstr ""
 
-#: gnu/packages/web.scm:841
+#: gnu/packages/web.scm:949
 msgid ""
 "This package provides a very low footprint JSON parser\n"
 "written in portable ANSI C.\n"
@@ -24234,33 +26786,33 @@ msgid ""
 "@end itemize"
 msgstr ""
 
-#: gnu/packages/web.scm:885
+#: gnu/packages/web.scm:993
 msgid "Library that maps JSON data to QVariant objects"
 msgstr ""
 
-#: gnu/packages/web.scm:886
+#: gnu/packages/web.scm:994
 msgid ""
 "QJson is a Qt-based library that maps JSON data to\n"
 "@code{QVariant} objects.  JSON arrays will be mapped to @code{QVariantList}\n"
 "instances, while JSON's objects will be mapped to @code{QVariantMap}."
 msgstr ""
 
-#: gnu/packages/web.scm:930
+#: gnu/packages/web.scm:1038
 msgid "Qt-based C++ library for OAuth authorization scheme"
 msgstr ""
 
-#: gnu/packages/web.scm:931
+#: gnu/packages/web.scm:1039
 msgid ""
 "QOAuth is an attempt to support interaction with\n"
 "OAuth-powered network services in a Qt way, i.e. simply, clearly and\n"
 "efficiently.  It gives the application developer no more than 4 methods."
 msgstr ""
 
-#: gnu/packages/web.scm:1014
+#: gnu/packages/web.scm:1122
 msgid "Hierarchical data exploration with zoomable HTML5 pie charts"
 msgstr ""
 
-#: gnu/packages/web.scm:1016
+#: gnu/packages/web.scm:1124
 msgid ""
 "Krona is a flexible tool for exploring the relative proportions of\n"
 "hierarchical data, such as metagenomic classifications, using a radial,\n"
@@ -24269,42 +26821,42 @@ msgid ""
 "current version of any major web browser."
 msgstr ""
 
-#: gnu/packages/web.scm:1058
+#: gnu/packages/web.scm:1166
 msgid "JSON parser/generator for C++ with both SAX/DOM style API"
 msgstr ""
 
-#: gnu/packages/web.scm:1060
+#: gnu/packages/web.scm:1168
 msgid ""
 "RapidJSON is a fast JSON parser/generator for C++ with both SAX/DOM\n"
 "style API."
 msgstr ""
 
-#: gnu/packages/web.scm:1087
+#: gnu/packages/web.scm:1195
 msgid "C library for parsing JSON"
 msgstr ""
 
-#: gnu/packages/web.scm:1089
+#: gnu/packages/web.scm:1197
 msgid ""
 "Yet Another JSON Library (YAJL) is a small event-driven (SAX-style) JSON\n"
 "parser written in ANSI C and a small validating JSON generator."
 msgstr ""
 
-#: gnu/packages/web.scm:1119
+#: gnu/packages/web.scm:1227
 msgid "WebSockets library written in C"
 msgstr ""
 
-#: gnu/packages/web.scm:1121
+#: gnu/packages/web.scm:1229
 msgid ""
 "Libwebsockets is a library that allows C programs to establish client\n"
 "and server WebSockets connections---a protocol layered above HTTP that allows\n"
 "for efficient socket-like bidirectional reliable communication channels."
 msgstr ""
 
-#: gnu/packages/web.scm:1149
+#: gnu/packages/web.scm:1257
 msgid "WebAssembly Binary Toolkit"
 msgstr ""
 
-#: gnu/packages/web.scm:1150
+#: gnu/packages/web.scm:1258
 msgid ""
 "WABT (pronounced: wabbit) is a suite of tools for\n"
 "WebAssembly, including:\n"
@@ -24329,11 +26881,11 @@ msgid ""
 "other systems that want to manipulate WebAssembly files."
 msgstr ""
 
-#: gnu/packages/web.scm:1200
+#: gnu/packages/web.scm:1308
 msgid "C++ library implementing the WebSocket protocol"
 msgstr ""
 
-#: gnu/packages/web.scm:1201
+#: gnu/packages/web.scm:1309
 msgid ""
 "WebSocket++ is a C++ library that can be used to implement\n"
 "WebSocket functionality.  The goals of the project are to provide a WebSocket\n"
@@ -24341,11 +26893,11 @@ msgid ""
 "high performance."
 msgstr ""
 
-#: gnu/packages/web.scm:1232
+#: gnu/packages/web.scm:1340
 msgid "C WebSocket library"
 msgstr ""
 
-#: gnu/packages/web.scm:1233
+#: gnu/packages/web.scm:1341
 msgid ""
 "@code{Wslay} is an event-based C library for the WebSocket\n"
 "protocol version 13, described in RFC 6455.  Besides a high-level API it\n"
@@ -24354,11 +26906,11 @@ msgid ""
 "perform the opening handshake in HTTP."
 msgstr ""
 
-#: gnu/packages/web.scm:1262
+#: gnu/packages/web.scm:1370
 msgid "C library for the Publix Suffix List"
 msgstr ""
 
-#: gnu/packages/web.scm:1264
+#: gnu/packages/web.scm:1372
 msgid ""
 "A \"public suffix\" is a domain name under which Internet users can\n"
 "directly register own names.\n"
@@ -24368,7 +26920,7 @@ msgid ""
 "highlighting parts of the domain in a user interface, and sorting domain lists\n"
 "by site.\n"
 "\n"
-"Libpsl has built-in PSL data for fast access, allows to load PSL data from\n"
+"Libpsl has built-in PSL data for fast access, allowing to load PSL data from\n"
 "files, checks if a given domain is a public suffix, provides immediate cookie\n"
 "domain verification, finds the longest public part of a given domain, finds\n"
 "the shortest private part of a given domain, works with international\n"
@@ -24376,21 +26928,32 @@ msgid ""
 "UTS#46."
 msgstr ""
 
-#: gnu/packages/web.scm:1310
+#: gnu/packages/web.scm:1418
 msgid "HTML validator and tidier"
 msgstr ""
 
-#: gnu/packages/web.scm:1311
+#: gnu/packages/web.scm:1419
 msgid ""
 "HTML Tidy is a command-line tool and C library that can be\n"
 "used to validate and fix HTML data."
 msgstr ""
 
-#: gnu/packages/web.scm:1343
+#: gnu/packages/web.scm:1461
+msgid "Bundler and minifier tool for JavaScript and TypeScript"
+msgstr ""
+
+#: gnu/packages/web.scm:1463
+msgid ""
+"The esbuild tool provides a unified bundler, transpiler and\n"
+"minifier.  It packages up JavaScript and TypeScript code, along with JSON\n"
+"and other data, for distribution on the web."
+msgstr ""
+
+#: gnu/packages/web.scm:1495
 msgid "Light-weight HTTP/HTTPS proxy daemon"
 msgstr ""
 
-#: gnu/packages/web.scm:1344
+#: gnu/packages/web.scm:1496
 msgid ""
 "Tinyproxy is a light-weight HTTP/HTTPS proxy\n"
 "daemon.  Designed from the ground up to be fast and yet small, it is an ideal\n"
@@ -24399,22 +26962,22 @@ msgid ""
 "unavailable."
 msgstr ""
 
-#: gnu/packages/web.scm:1377
+#: gnu/packages/web.scm:1529
 msgid "Small caching web proxy"
 msgstr ""
 
-#: gnu/packages/web.scm:1379
+#: gnu/packages/web.scm:1531
 msgid ""
 "Polipo is a small caching web proxy (web cache, HTTP proxy, and proxy\n"
 "server).  It was primarily designed to be used by one person or a small group\n"
 "of people."
 msgstr ""
 
-#: gnu/packages/web.scm:1407
+#: gnu/packages/web.scm:1559
 msgid "WebSockets support for any application/server"
 msgstr ""
 
-#: gnu/packages/web.scm:1408
+#: gnu/packages/web.scm:1560
 msgid ""
 "Websockify translates WebSockets traffic to normal socket\n"
 "traffic.  Websockify accepts the WebSockets handshake, parses it, and then\n"
@@ -24422,11 +26985,11 @@ msgid ""
 "directions."
 msgstr ""
 
-#: gnu/packages/web.scm:1434
+#: gnu/packages/web.scm:1586
 msgid "Caching web proxy optimized for intermittent internet links"
 msgstr ""
 
-#: gnu/packages/web.scm:1435
+#: gnu/packages/web.scm:1587
 msgid ""
 "WWWOFFLE is a proxy web server that is especially good for\n"
 "intermittent internet links.  It can cache HTTP, HTTPS, FTP, and finger\n"
@@ -24435,11 +26998,11 @@ msgid ""
 "changes, and much more."
 msgstr ""
 
-#: gnu/packages/web.scm:1460
+#: gnu/packages/web.scm:1612
 msgid "C library implementing the OAuth API"
 msgstr ""
 
-#: gnu/packages/web.scm:1462
+#: gnu/packages/web.scm:1614
 msgid ""
 "liboauth is a collection of C functions implementing the OAuth API.\n"
 "liboauth provides functions to escape and encode strings according to OAuth\n"
@@ -24448,42 +27011,42 @@ msgid ""
 "hash/signatures."
 msgstr ""
 
-#: gnu/packages/web.scm:1485
+#: gnu/packages/web.scm:1635
 msgid "YAML 1.1 parser and emitter written in C"
 msgstr ""
 
-#: gnu/packages/web.scm:1487
+#: gnu/packages/web.scm:1637
 msgid "LibYAML is a YAML 1.1 parser and emitter written in C."
 msgstr ""
 
-#: gnu/packages/web.scm:1518 gnu/packages/web.scm:1552
-#: gnu/packages/web.scm:1575
+#: gnu/packages/web.scm:1654 gnu/packages/web.scm:1688
+#: gnu/packages/web.scm:1711
 msgid "Media stream URL parser"
 msgstr ""
 
-#: gnu/packages/web.scm:1519
+#: gnu/packages/web.scm:1655
 msgid ""
 "This package contains support scripts called by libquvi to\n"
 "parse media stream properties."
 msgstr ""
 
-#: gnu/packages/web.scm:1553
+#: gnu/packages/web.scm:1689
 msgid ""
 "libquvi is a library with a C API for parsing media stream\n"
 "URLs and extracting their actual media files."
 msgstr ""
 
-#: gnu/packages/web.scm:1576
+#: gnu/packages/web.scm:1712
 msgid ""
 "quvi is a command-line-tool suite to extract media files\n"
 "from streaming URLs.  It is a command-line wrapper for the libquvi library."
 msgstr ""
 
-#: gnu/packages/web.scm:1648
+#: gnu/packages/web.scm:1784
 msgid "High-performance asynchronous HTTP client library"
 msgstr ""
 
-#: gnu/packages/web.scm:1650
+#: gnu/packages/web.scm:1786
 msgid ""
 "serf is a C-based HTTP client library built upon the Apache Portable\n"
 "Runtime (APR) library.  It multiplexes connections, running the read/write\n"
@@ -24491,11 +27054,11 @@ msgid ""
 "minimum to provide high performance operation."
 msgstr ""
 
-#: gnu/packages/web.scm:1685
+#: gnu/packages/web.scm:1821
 msgid "SASS Compiler, implemented as a C/C++ library"
 msgstr ""
 
-#: gnu/packages/web.scm:1687
+#: gnu/packages/web.scm:1823
 msgid ""
 "LibSass is a @acronym{SASS,Syntactically awesome style sheets} compiler\n"
 "library designed for portability and efficiency.  To actually compile SASS\n"
@@ -24503,49 +27066,49 @@ msgid ""
 "@var{sassc} for example."
 msgstr ""
 
-#: gnu/packages/web.scm:1735
+#: gnu/packages/web.scm:1871
 msgid "CSS pre-processor"
 msgstr ""
 
-#: gnu/packages/web.scm:1736
+#: gnu/packages/web.scm:1872
 msgid ""
 "SassC is a compiler written in C for the CSS pre-processor\n"
 "language known as SASS."
 msgstr ""
 
-#: gnu/packages/web.scm:1788
+#: gnu/packages/web.scm:1924
 msgid "Compile a log format string to perl-code"
 msgstr ""
 
-#: gnu/packages/web.scm:1789
+#: gnu/packages/web.scm:1925
 msgid ""
 "This module provides methods to compile a log format string\n"
 "to perl-code, for faster generation of access_log lines."
 msgstr ""
 
-#: gnu/packages/web.scm:1817
+#: gnu/packages/web.scm:1953
 msgid "SASL authentication framework"
 msgstr ""
 
-#: gnu/packages/web.scm:1818
+#: gnu/packages/web.scm:1954
 msgid "Authen::SASL provides an SASL authentication framework."
 msgstr ""
 
-#: gnu/packages/web.scm:1843
+#: gnu/packages/web.scm:1979
 msgid "Sensible default Catalyst action"
 msgstr ""
 
-#: gnu/packages/web.scm:1844
+#: gnu/packages/web.scm:1980
 msgid ""
 "This Catalyst action implements a sensible default end\n"
 "action, which will forward to the first available view."
 msgstr ""
 
-#: gnu/packages/web.scm:1876
+#: gnu/packages/web.scm:2012
 msgid "Automated REST Method Dispatching"
 msgstr ""
 
-#: gnu/packages/web.scm:1877
+#: gnu/packages/web.scm:2013
 msgid ""
 "This Action handles doing automatic method dispatching for\n"
 "REST requests.  It takes a normal Catalyst action, and changes the dispatch to\n"
@@ -24554,32 +27117,32 @@ msgid ""
 "regular method."
 msgstr ""
 
-#: gnu/packages/web.scm:1914
+#: gnu/packages/web.scm:2050
 msgid "Storage class for Catalyst authentication using DBIx::Class"
 msgstr ""
 
-#: gnu/packages/web.scm:1915
+#: gnu/packages/web.scm:2051
 msgid ""
 "The Catalyst::Authentication::Store::DBIx::Class class\n"
 "provides access to authentication information stored in a database via\n"
 "DBIx::Class."
 msgstr ""
 
-#: gnu/packages/web.scm:1941
+#: gnu/packages/web.scm:2077
 msgid "Create only one instance of Moose component per context"
 msgstr ""
 
-#: gnu/packages/web.scm:1942
+#: gnu/packages/web.scm:2078
 msgid ""
 "Catalyst::Component::InstancePerContext returns a new\n"
 "instance of a component on each request."
 msgstr ""
 
-#: gnu/packages/web.scm:1978
+#: gnu/packages/web.scm:2114
 msgid "Catalyst Development Tools"
 msgstr ""
 
-#: gnu/packages/web.scm:1979
+#: gnu/packages/web.scm:2115
 msgid ""
 "The Catalyst-Devel distribution includes a variety of\n"
 "modules useful for the development of Catalyst applications, but not required\n"
@@ -24589,11 +27152,11 @@ msgid ""
 "modules."
 msgstr ""
 
-#: gnu/packages/web.scm:2008
+#: gnu/packages/web.scm:2144
 msgid "Regex DispatchType for Catalyst"
 msgstr ""
 
-#: gnu/packages/web.scm:2009
+#: gnu/packages/web.scm:2145
 msgid ""
 "Dispatch type managing path-matching behaviour using\n"
 "regexes.  Regex dispatch types have been deprecated and removed from Catalyst\n"
@@ -24603,32 +27166,32 @@ msgid ""
 "when the dispatch type is first seen in your application."
 msgstr ""
 
-#: gnu/packages/web.scm:2058
+#: gnu/packages/web.scm:2194
 msgid "DBIx::Class::Schema Model Class"
 msgstr ""
 
-#: gnu/packages/web.scm:2059
+#: gnu/packages/web.scm:2195
 msgid ""
 "This is a Catalyst Model for DBIx::Class::Schema-based\n"
 "Models."
 msgstr ""
 
-#: gnu/packages/web.scm:2082
+#: gnu/packages/web.scm:2218
 msgid "Request logging from within Catalyst"
 msgstr ""
 
-#: gnu/packages/web.scm:2083
+#: gnu/packages/web.scm:2219
 msgid ""
 "This Catalyst plugin enables you to create \"access logs\"\n"
 "from within a Catalyst application instead of requiring a webserver to do it\n"
 "for you.  It will work even with Catalyst debug logging turned off."
 msgstr ""
 
-#: gnu/packages/web.scm:2117
+#: gnu/packages/web.scm:2253
 msgid "Infrastructure plugin for the Catalyst authentication framework"
 msgstr ""
 
-#: gnu/packages/web.scm:2118
+#: gnu/packages/web.scm:2254
 msgid ""
 "The authentication plugin provides generic user support for\n"
 "Catalyst apps.  It is the basis for both authentication (checking the user is\n"
@@ -24636,52 +27199,52 @@ msgid ""
 "system authorises them to do)."
 msgstr ""
 
-#: gnu/packages/web.scm:2149
+#: gnu/packages/web.scm:2285
 msgid "Role-based authorization for Catalyst"
 msgstr ""
 
-#: gnu/packages/web.scm:2150
+#: gnu/packages/web.scm:2286
 msgid ""
 "Catalyst::Plugin::Authorization::Roles provides role-based\n"
 "authorization for Catalyst based on Catalyst::Plugin::Authentication."
 msgstr ""
 
-#: gnu/packages/web.scm:2173
+#: gnu/packages/web.scm:2309
 msgid "Captchas for Catalyst"
 msgstr ""
 
-#: gnu/packages/web.scm:2174
+#: gnu/packages/web.scm:2310
 msgid ""
 "This plugin creates and validates Captcha images for\n"
 "Catalyst."
 msgstr ""
 
-#: gnu/packages/web.scm:2201
+#: gnu/packages/web.scm:2336
 msgid "Load config files of various types"
 msgstr ""
 
-#: gnu/packages/web.scm:2202
+#: gnu/packages/web.scm:2337
 msgid ""
 "This module will attempt to load find and load configuration\n"
 "files of various types.  Currently it supports YAML, JSON, XML, INI and Perl\n"
 "formats."
 msgstr ""
 
-#: gnu/packages/web.scm:2233
+#: gnu/packages/web.scm:2368
 msgid "Catalyst generic session plugin"
 msgstr ""
 
-#: gnu/packages/web.scm:2234
+#: gnu/packages/web.scm:2369
 msgid ""
 "This plugin links the two pieces required for session\n"
 "management in web applications together: the state, and the store."
 msgstr ""
 
-#: gnu/packages/web.scm:2262
+#: gnu/packages/web.scm:2397
 msgid "Maintain session IDs using cookies"
 msgstr ""
 
-#: gnu/packages/web.scm:2263
+#: gnu/packages/web.scm:2398
 msgid ""
 "In order for Catalyst::Plugin::Session to work, the session\n"
 "ID needs to be stored on the client, and the session data needs to be stored\n"
@@ -24689,22 +27252,22 @@ msgid ""
 "cookie mechanism."
 msgstr ""
 
-#: gnu/packages/web.scm:2293
+#: gnu/packages/web.scm:2428
 msgid "FastMmap session storage backend"
 msgstr ""
 
-#: gnu/packages/web.scm:2294
+#: gnu/packages/web.scm:2429
 msgid ""
 "Catalyst::Plugin::Session::Store::FastMmap is a fast session\n"
 "storage plugin for Catalyst that uses an mmap'ed file to act as a shared\n"
 "memory interprocess cache.  It is based on Cache::FastMmap."
 msgstr ""
 
-#: gnu/packages/web.scm:2319
+#: gnu/packages/web.scm:2454
 msgid "Stack trace on the Catalyst debug screen"
 msgstr ""
 
-#: gnu/packages/web.scm:2320
+#: gnu/packages/web.scm:2455
 msgid ""
 "This plugin enhances the standard Catalyst debug screen by\n"
 "including a stack trace of your application up to the point where the error\n"
@@ -24712,11 +27275,11 @@ msgid ""
 "number, file name, and code context surrounding the line number."
 msgstr ""
 
-#: gnu/packages/web.scm:2348
+#: gnu/packages/web.scm:2483
 msgid "Simple serving of static pages"
 msgstr ""
 
-#: gnu/packages/web.scm:2349
+#: gnu/packages/web.scm:2484
 msgid ""
 "The Static::Simple plugin is designed to make serving static\n"
 "content in your application during development quick and easy, without\n"
@@ -24727,11 +27290,11 @@ msgid ""
 "MIME type directly to the browser, without being processed through Catalyst."
 msgstr ""
 
-#: gnu/packages/web.scm:2412
+#: gnu/packages/web.scm:2547
 msgid "The Catalyst Framework Runtime"
 msgstr ""
 
-#: gnu/packages/web.scm:2413
+#: gnu/packages/web.scm:2548
 msgid ""
 "Catalyst is a modern framework for making web applications.\n"
 "It is designed to make it easy to manage the various tasks you need to do to\n"
@@ -24739,11 +27302,11 @@ msgid ""
 "\"plug in\" existing Perl modules that do what you need."
 msgstr ""
 
-#: gnu/packages/web.scm:2444
+#: gnu/packages/web.scm:2579
 msgid "Replace request base with value passed by HTTP proxy"
 msgstr ""
 
-#: gnu/packages/web.scm:2445
+#: gnu/packages/web.scm:2580
 msgid ""
 "This module is a Moose::Role which allows you more\n"
 "flexibility in your application's deployment configurations when deployed\n"
@@ -24751,42 +27314,42 @@ msgid ""
 "replaced with the contents of the X-Request-Base header."
 msgstr ""
 
-#: gnu/packages/web.scm:2472
+#: gnu/packages/web.scm:2607
 msgid "Download data in many formats"
 msgstr ""
 
-#: gnu/packages/web.scm:2473
+#: gnu/packages/web.scm:2608
 msgid ""
 "The purpose of this module is to provide a method for\n"
 "downloading data into many supportable formats.  For example, downloading a\n"
 "table based report in a variety of formats (CSV, HTML, etc.)."
 msgstr ""
 
-#: gnu/packages/web.scm:2499
+#: gnu/packages/web.scm:2634
 msgid "Catalyst JSON view"
 msgstr ""
 
-#: gnu/packages/web.scm:2500
+#: gnu/packages/web.scm:2635
 msgid ""
 "Catalyst::View::JSON is a Catalyst View handler that returns\n"
 "stash data in JSON format."
 msgstr ""
 
-#: gnu/packages/web.scm:2526
+#: gnu/packages/web.scm:2660
 msgid "Template View Class"
 msgstr ""
 
-#: gnu/packages/web.scm:2527
+#: gnu/packages/web.scm:2661
 msgid ""
 "This module is a Catalyst view class for the Template\n"
 "Toolkit."
 msgstr ""
 
-#: gnu/packages/web.scm:2556
+#: gnu/packages/web.scm:2690
 msgid "Trait Loading and Resolution for Catalyst Components"
 msgstr ""
 
-#: gnu/packages/web.scm:2557
+#: gnu/packages/web.scm:2691
 msgid ""
 "Adds a \"COMPONENT\" in Catalyst::Component method to your\n"
 "Catalyst component base class that reads the optional \"traits\" parameter\n"
@@ -24795,31 +27358,31 @@ msgid ""
 "MooseX::Traits::Pluggable."
 msgstr ""
 
-#: gnu/packages/web.scm:2582
+#: gnu/packages/web.scm:2716
 msgid "Apply roles to Catalyst classes"
 msgstr ""
 
-#: gnu/packages/web.scm:2583
+#: gnu/packages/web.scm:2717
 msgid ""
 "CatalystX::RoleApplicator applies roles to Catalyst\n"
 "application classes."
 msgstr ""
 
-#: gnu/packages/web.scm:2610
+#: gnu/packages/web.scm:2744
 msgid "Catalyst development server with Starman"
 msgstr ""
 
-#: gnu/packages/web.scm:2611
+#: gnu/packages/web.scm:2745
 msgid ""
 "This module provides a Catalyst extension to replace the\n"
 "development server with Starman."
 msgstr ""
 
-#: gnu/packages/web.scm:2635
+#: gnu/packages/web.scm:2768
 msgid "Handle Common Gateway Interface requests and responses"
 msgstr ""
 
-#: gnu/packages/web.scm:2636
+#: gnu/packages/web.scm:2769
 msgid ""
 "CGI.pm is a stable, complete and mature solution for\n"
 "processing and preparing HTTP requests and responses.  Major features include\n"
@@ -24828,72 +27391,72 @@ msgid ""
 "headers."
 msgstr ""
 
-#: gnu/packages/web.scm:2661
+#: gnu/packages/web.scm:2794
 msgid "Generate and process stateful forms"
 msgstr ""
 
-#: gnu/packages/web.scm:2663
+#: gnu/packages/web.scm:2796
 msgid ""
 "@code{CGI::FormBuilder} provides an easy way to generate and process CGI\n"
 "form-based applications."
 msgstr ""
 
-#: gnu/packages/web.scm:2688
+#: gnu/packages/web.scm:2821
 msgid "Persistent session data in CGI applications"
 msgstr ""
 
-#: gnu/packages/web.scm:2690
+#: gnu/packages/web.scm:2823
 msgid ""
 "@code{CGI::Session} provides modular session management system across\n"
 "HTTP requests."
 msgstr ""
 
-#: gnu/packages/web.scm:2712
+#: gnu/packages/web.scm:2845
 msgid "CGI interface that is CGI.pm compliant"
 msgstr ""
 
-#: gnu/packages/web.scm:2713
+#: gnu/packages/web.scm:2846
 msgid ""
 "CGI::Simple provides a relatively lightweight drop in\n"
 "replacement for CGI.pm.  It shares an identical OO interface to CGI.pm for\n"
 "parameter parsing, file upload, cookie handling and header generation."
 msgstr ""
 
-#: gnu/packages/web.scm:2734
+#: gnu/packages/web.scm:2867
 msgid "Build structures from CGI data"
 msgstr ""
 
-#: gnu/packages/web.scm:2735
+#: gnu/packages/web.scm:2868
 msgid ""
 "This is a module for building structured data from CGI\n"
 "inputs, in a manner reminiscent of how PHP does."
 msgstr ""
 
-#: gnu/packages/web.scm:2758
+#: gnu/packages/web.scm:2891
 msgid "Date conversion routines"
 msgstr ""
 
-#: gnu/packages/web.scm:2759
+#: gnu/packages/web.scm:2892
 msgid ""
 "This module provides functions that deal with the date\n"
 "formats used by the HTTP protocol."
 msgstr ""
 
-#: gnu/packages/web.scm:2779
+#: gnu/packages/web.scm:2912
 msgid "MD5 sums for files and urls"
 msgstr ""
 
-#: gnu/packages/web.scm:2780
+#: gnu/packages/web.scm:2913
 msgid ""
 "Digest::MD5::File is a Perl extension for getting MD5 sums\n"
 "for files and urls."
 msgstr ""
 
-#: gnu/packages/web.scm:2798
+#: gnu/packages/web.scm:2931
 msgid "Perl locale encoding determination"
 msgstr ""
 
-#: gnu/packages/web.scm:2800
+#: gnu/packages/web.scm:2933
 msgid ""
 "The POSIX locale system is used to specify both the language\n"
 "conventions requested by the user and the preferred character set to\n"
@@ -24905,110 +27468,110 @@ msgid ""
 "with Encode::decode(locale => $string)."
 msgstr ""
 
-#: gnu/packages/web.scm:2835
+#: gnu/packages/web.scm:2968
 msgid "Syndication feed auto-discovery"
 msgstr ""
 
-#: gnu/packages/web.scm:2836
+#: gnu/packages/web.scm:2969
 msgid ""
 "@code{Feed::Find} implements feed auto-discovery for finding\n"
 "syndication feeds, given a URI.  It will discover the following feed formats:\n"
 "RSS 0.91, RSS 1.0, RSS 2.0, Atom."
 msgstr ""
 
-#: gnu/packages/web.scm:2857
+#: gnu/packages/web.scm:2990
 msgid "Perl directory listing parser"
 msgstr ""
 
-#: gnu/packages/web.scm:2859
+#: gnu/packages/web.scm:2992
 msgid ""
 "The File::Listing module exports a single function called parse_dir(),\n"
 "which can be used to parse directory listings."
 msgstr ""
 
-#: gnu/packages/web.scm:2890
+#: gnu/packages/web.scm:3023
 msgid "Stock and mutual fund quotes"
 msgstr ""
 
-#: gnu/packages/web.scm:2892
+#: gnu/packages/web.scm:3025
 msgid ""
 "Finance::Quote gets stock quotes from various internet sources, including\n"
 "Yahoo! Finance, Fidelity Investments, and the Australian Stock Exchange."
 msgstr ""
 
-#: gnu/packages/web.scm:2914
+#: gnu/packages/web.scm:3047
 msgid "Perl extension providing access to the GSSAPIv2 library"
 msgstr ""
 
-#: gnu/packages/web.scm:2915
+#: gnu/packages/web.scm:3048
 msgid ""
 "This is a Perl extension for using GSSAPI C bindings as\n"
 "described in RFC 2744."
 msgstr ""
 
-#: gnu/packages/web.scm:2935
+#: gnu/packages/web.scm:3068
 msgid "Manipulate tables of HTML::Element"
 msgstr ""
 
-#: gnu/packages/web.scm:2937
+#: gnu/packages/web.scm:3070
 msgid ""
 "HTML::Element::Extended is a Perl extension for manipulating a table\n"
 "composed of HTML::Element style components."
 msgstr ""
 
-#: gnu/packages/web.scm:2960
+#: gnu/packages/web.scm:3093
 msgid "Perl class representing an HTML form element"
 msgstr ""
 
-#: gnu/packages/web.scm:2961
+#: gnu/packages/web.scm:3094
 msgid ""
 "Objects of the HTML::Form class represents a single HTML\n"
 "<form> ... </form> instance."
 msgstr ""
 
-#: gnu/packages/web.scm:2992
+#: gnu/packages/web.scm:3125
 msgid "Perl extension for scrubbing/sanitizing html"
 msgstr ""
 
-#: gnu/packages/web.scm:2994
+#: gnu/packages/web.scm:3127
 msgid "@code{HTML::Scrubber} Perl extension for scrubbing/sanitizing HTML."
 msgstr ""
 
-#: gnu/packages/web.scm:3014
+#: gnu/packages/web.scm:3147
 msgid "Check for HTML errors in a string or file"
 msgstr ""
 
-#: gnu/packages/web.scm:3015
+#: gnu/packages/web.scm:3148
 msgid ""
 "HTML::Lint is a pure-Perl HTML parser and checker for\n"
 "syntactic legitmacy."
 msgstr ""
 
-#: gnu/packages/web.scm:3036
+#: gnu/packages/web.scm:3169
 msgid "Extract contents from HTML tables"
 msgstr ""
 
-#: gnu/packages/web.scm:3038
+#: gnu/packages/web.scm:3171
 msgid ""
 "HTML::TableExtract is a Perl module for extracting the content contained\n"
 "in tables within an HTML document, either as text or encoded element trees."
 msgstr ""
 
-#: gnu/packages/web.scm:3063
+#: gnu/packages/web.scm:3196
 msgid "Work with HTML in a DOM-like tree structure"
 msgstr ""
 
-#: gnu/packages/web.scm:3064
+#: gnu/packages/web.scm:3197
 msgid ""
 "This distribution contains a suite of modules for\n"
 "representing, creating, and extracting information from HTML syntax trees."
 msgstr ""
 
-#: gnu/packages/web.scm:3085
+#: gnu/packages/web.scm:3218
 msgid "Perl HTML parser class"
 msgstr ""
 
-#: gnu/packages/web.scm:3087
+#: gnu/packages/web.scm:3220
 msgid ""
 "Objects of the HTML::Parser class will recognize markup and separate\n"
 "it from plain text (alias data content) in HTML documents.  As different\n"
@@ -25016,21 +27579,21 @@ msgid ""
 "are invoked."
 msgstr ""
 
-#: gnu/packages/web.scm:3107
+#: gnu/packages/web.scm:3240
 msgid "Perl data tables useful in parsing HTML"
 msgstr ""
 
-#: gnu/packages/web.scm:3109
+#: gnu/packages/web.scm:3242
 msgid ""
 "The HTML::Tagset module contains several data tables useful in various\n"
 "kinds of HTML parsing operations."
 msgstr ""
 
-#: gnu/packages/web.scm:3128
+#: gnu/packages/web.scm:3261
 msgid "HTML-like templates"
 msgstr ""
 
-#: gnu/packages/web.scm:3130
+#: gnu/packages/web.scm:3263
 msgid ""
 "This module attempts to make using HTML templates simple and natural.\n"
 "It extends standard HTML with a few new HTML-esque tags: @code{<TMPL_VAR>},\n"
@@ -25041,64 +27604,64 @@ msgid ""
 "you to separate design from the data."
 msgstr ""
 
-#: gnu/packages/web.scm:3158
+#: gnu/packages/web.scm:3291
 msgid "HTTP Body Parser"
 msgstr ""
 
-#: gnu/packages/web.scm:3159
+#: gnu/packages/web.scm:3292
 msgid ""
 "HTTP::Body parses chunks of HTTP POST data and supports\n"
 "application/octet-stream, application/json, application/x-www-form-urlencoded,\n"
 "and multipart/form-data."
 msgstr ""
 
-#: gnu/packages/web.scm:3186
+#: gnu/packages/web.scm:3318
 msgid "Minimalist HTTP user agent cookie jar"
 msgstr ""
 
-#: gnu/packages/web.scm:3187
+#: gnu/packages/web.scm:3319
 msgid ""
 "This module implements a minimalist HTTP user agent cookie\n"
 "jar in conformance with RFC 6265 <http://tools.ietf.org/html/rfc6265>."
 msgstr ""
 
-#: gnu/packages/web.scm:3207
+#: gnu/packages/web.scm:3339
 msgid "Perl HTTP cookie jars"
 msgstr ""
 
-#: gnu/packages/web.scm:3209
+#: gnu/packages/web.scm:3341
 msgid ""
 "The HTTP::Cookies class is for objects that represent a cookie jar,\n"
 "that is, a database of all the HTTP cookies that a given LWP::UserAgent\n"
 "object knows about."
 msgstr ""
 
-#: gnu/packages/web.scm:3231
+#: gnu/packages/web.scm:3363
 msgid "Perl simple http server class"
 msgstr ""
 
-#: gnu/packages/web.scm:3233
+#: gnu/packages/web.scm:3365
 msgid ""
 "Instances of the HTTP::Daemon class are HTTP/1.1 servers that listen\n"
 "on a socket for incoming requests.  The HTTP::Daemon is a subclass of\n"
 "IO::Socket::INET, so you can perform socket operations directly on it too."
 msgstr ""
 
-#: gnu/packages/web.scm:3252
+#: gnu/packages/web.scm:3384
 msgid "Perl date conversion routines"
 msgstr ""
 
-#: gnu/packages/web.scm:3254
+#: gnu/packages/web.scm:3386
 msgid ""
 "The HTTP::Date module provides functions that deal with date formats\n"
 "used by the HTTP protocol (and then some more)."
 msgstr ""
 
-#: gnu/packages/web.scm:3274
+#: gnu/packages/web.scm:3406
 msgid "Lightweight HTTP implementation"
 msgstr ""
 
-#: gnu/packages/web.scm:3275
+#: gnu/packages/web.scm:3407
 msgid ""
 "@code{HTTP::Lite} is a stand-alone lightweight\n"
 "HTTP/1.1 implementation for perl.  It is intended for use in\n"
@@ -25112,19 +27675,19 @@ msgid ""
 "processing of request data as it arrives."
 msgstr ""
 
-#: gnu/packages/web.scm:3309
+#: gnu/packages/web.scm:3441
 msgid "Perl HTTP style message"
 msgstr ""
 
-#: gnu/packages/web.scm:3311
+#: gnu/packages/web.scm:3443
 msgid "An HTTP::Message object contains some headers and a content body."
 msgstr ""
 
-#: gnu/packages/web.scm:3330
+#: gnu/packages/web.scm:3462
 msgid "Perl http content negotiation"
 msgstr ""
 
-#: gnu/packages/web.scm:3332
+#: gnu/packages/web.scm:3464
 msgid ""
 "The HTTP::Negotiate module provides a complete implementation of the\n"
 "HTTP content negotiation algorithm specified in\n"
@@ -25134,11 +27697,11 @@ msgid ""
 "fields in the request."
 msgstr ""
 
-#: gnu/packages/web.scm:3357
+#: gnu/packages/web.scm:3489
 msgid "Parse HTTP/1.1 requests"
 msgstr ""
 
-#: gnu/packages/web.scm:3358
+#: gnu/packages/web.scm:3490
 msgid ""
 "This is an HTTP request parser.  It takes chunks of text as\n"
 "received and returns a @code{hint} as to what is required, or returns the\n"
@@ -25146,53 +27709,53 @@ msgid ""
 "supported."
 msgstr ""
 
-#: gnu/packages/web.scm:3380
+#: gnu/packages/web.scm:3512
 msgid "Fast HTTP request parser"
 msgstr ""
 
-#: gnu/packages/web.scm:3381
+#: gnu/packages/web.scm:3513
 msgid ""
 "HTTP::Parser::XS is a fast, primitive HTTP request/response\n"
 "parser."
 msgstr ""
 
-#: gnu/packages/web.scm:3402
+#: gnu/packages/web.scm:3534
 msgid "Set up a CGI environment from an HTTP::Request"
 msgstr ""
 
-#: gnu/packages/web.scm:3403
+#: gnu/packages/web.scm:3535
 msgid ""
 "This module provides a convenient way to set up a CGI\n"
 "environment from an HTTP::Request."
 msgstr ""
 
-#: gnu/packages/web.scm:3436
+#: gnu/packages/web.scm:3568
 msgid "Lightweight HTTP server"
 msgstr ""
 
-#: gnu/packages/web.scm:3437
+#: gnu/packages/web.scm:3569
 msgid ""
 "HTTP::Server::Simple is a simple standalone HTTP daemon with\n"
 "no non-core module dependencies.  It can be used for building a standalone\n"
 "http-based UI to your existing tools."
 msgstr ""
 
-#: gnu/packages/web.scm:3462
+#: gnu/packages/web.scm:3594
 msgid "HTTP/1.1 client"
 msgstr ""
 
-#: gnu/packages/web.scm:3463
+#: gnu/packages/web.scm:3595
 msgid ""
 "This is a very simple HTTP/1.1 client, designed for doing\n"
 "simple requests without the overhead of a large framework like LWP::UserAgent.\n"
 "It supports proxies and redirection.  It also correctly resumes after EINTR."
 msgstr ""
 
-#: gnu/packages/web.scm:3487
+#: gnu/packages/web.scm:3619
 msgid "@code{HTTP::Tiny} compatible HTTP client wrappers"
 msgstr ""
 
-#: gnu/packages/web.scm:3489
+#: gnu/packages/web.scm:3621
 msgid ""
 "@code{HTTP::Tinyish} is a wrapper module for @acronym{LWP,libwww-perl},\n"
 "@code{HTTP::Tiny}, curl and wget.\n"
@@ -25200,32 +27763,32 @@ msgid ""
 "It provides an API compatible to HTTP::Tiny."
 msgstr ""
 
-#: gnu/packages/web.scm:3509
+#: gnu/packages/web.scm:3641
 msgid "Perl module to open an HTML file with automatic charset detection"
 msgstr ""
 
-#: gnu/packages/web.scm:3511
+#: gnu/packages/web.scm:3643
 msgid ""
 "IO::HTML provides an easy way to open a file containing HTML while\n"
 "automatically determining its encoding.  It uses the HTML5 encoding sniffing\n"
 "algorithm specified in section 8.2.2.1 of the draft standard."
 msgstr ""
 
-#: gnu/packages/web.scm:3531
+#: gnu/packages/web.scm:3662
 msgid "Family-neutral IP socket supporting both IPv4 and IPv6"
 msgstr ""
 
-#: gnu/packages/web.scm:3532
+#: gnu/packages/web.scm:3663
 msgid ""
 "This module provides a protocol-independent way to use IPv4\n"
 "and IPv6 sockets, intended as a replacement for IO::Socket::INET."
 msgstr ""
 
-#: gnu/packages/web.scm:3554
+#: gnu/packages/web.scm:3685
 msgid "Nearly transparent SSL encapsulation for IO::Socket::INET"
 msgstr ""
 
-#: gnu/packages/web.scm:3556
+#: gnu/packages/web.scm:3687
 msgid ""
 "IO::Socket::SSL makes using SSL/TLS much easier by wrapping the\n"
 "necessary functionality into the familiar IO::Socket interface and providing\n"
@@ -25234,11 +27797,11 @@ msgid ""
 "select or poll."
 msgstr ""
 
-#: gnu/packages/web.scm:3595
+#: gnu/packages/web.scm:3726
 msgid "Perl modules for the WWW"
 msgstr ""
 
-#: gnu/packages/web.scm:3597
+#: gnu/packages/web.scm:3728
 msgid ""
 "The libwww-perl collection is a set of Perl modules which provides a\n"
 "simple and consistent application programming interface to the\n"
@@ -25248,11 +27811,11 @@ msgid ""
 "help you implement simple HTTP servers."
 msgstr ""
 
-#: gnu/packages/web.scm:3625
+#: gnu/packages/web.scm:3756
 msgid "Checks whether your process has access to the web"
 msgstr ""
 
-#: gnu/packages/web.scm:3626
+#: gnu/packages/web.scm:3757
 msgid ""
 "This module attempts to answer, as accurately as it can, one\n"
 "of the nastiest technical questions there is: am I on the internet?\n"
@@ -25262,11 +27825,11 @@ msgid ""
 "not have DNS.  We might not have a network card at all!"
 msgstr ""
 
-#: gnu/packages/web.scm:3650
+#: gnu/packages/web.scm:3781
 msgid "Perl module to guess the media type for a file or a URL"
 msgstr ""
 
-#: gnu/packages/web.scm:3652
+#: gnu/packages/web.scm:3783
 #, scheme-format
 msgid ""
 "The LWP::MediaTypes module provides functions for handling media (also\n"
@@ -25275,32 +27838,32 @@ msgid ""
 "exists it is used instead."
 msgstr ""
 
-#: gnu/packages/web.scm:3681
+#: gnu/packages/web.scm:3812
 msgid "HTTPS support for LWP::UserAgent"
 msgstr ""
 
-#: gnu/packages/web.scm:3682
+#: gnu/packages/web.scm:3813
 msgid ""
 "The LWP::Protocol::https module provides support for using\n"
 "https schemed URLs with LWP."
 msgstr ""
 
-#: gnu/packages/web.scm:3702
+#: gnu/packages/web.scm:3833
 msgid "Simple caching for LWP::UserAgent"
 msgstr ""
 
-#: gnu/packages/web.scm:3703
+#: gnu/packages/web.scm:3834
 msgid ""
 "LWP::UserAgent::Cached is an LWP::UserAgent subclass with\n"
-"cache support.  It returns responses from the local filesystem if available\n"
+"cache support.  It returns responses from the local file system, if available,\n"
 "instead of making an HTTP request."
 msgstr ""
 
-#: gnu/packages/web.scm:3724
+#: gnu/packages/web.scm:3855
 msgid "Virtual browser that retries errors"
 msgstr ""
 
-#: gnu/packages/web.scm:3725
+#: gnu/packages/web.scm:3856
 msgid ""
 "LWP::UserAgent::Determined works just like LWP::UserAgent,\n"
 "except that when you use it to get a web page but run into a\n"
@@ -25308,19 +27871,33 @@ msgid ""
 "and retry a few times."
 msgstr ""
 
-#: gnu/packages/web.scm:3770
+#: gnu/packages/web.scm:3882
+msgid "Security enhanced subclass of LWP::UserAgent"
+msgstr ""
+
+#: gnu/packages/web.scm:3883
+msgid ""
+"@code{LWPx::ParanoidAgent} is a class subclassing\n"
+"@code{LWP::UserAgent} but paranoid against attackers.  Its purpose is\n"
+"to vet requests for a remote resource on behalf of a possibly\n"
+"malicious user.  The class can do the same as @code{LWP::UserAgent},\n"
+"except that proxy support has been removed.  Support for URI schemes\n"
+"is limited to http and https."
+msgstr ""
+
+#: gnu/packages/web.scm:3930
 msgid "Perl interface to Amazon S3"
 msgstr ""
 
-#: gnu/packages/web.scm:3771
+#: gnu/packages/web.scm:3931
 msgid "This module provides a Perlish interface to Amazon S3."
 msgstr ""
 
-#: gnu/packages/web.scm:3791
+#: gnu/packages/web.scm:3951
 msgid "Perl low-level HTTP connection (client)"
 msgstr ""
 
-#: gnu/packages/web.scm:3793
+#: gnu/packages/web.scm:3953
 msgid ""
 "The Net::HTTP class is a low-level HTTP client.  An instance of the\n"
 "Net::HTTP class represents a connection to an HTTP server.  The HTTP protocol\n"
@@ -25328,11 +27905,11 @@ msgid ""
 "HTTP/1.1."
 msgstr ""
 
-#: gnu/packages/web.scm:3813
+#: gnu/packages/web.scm:3973
 msgid "Extensible Perl server engine"
 msgstr ""
 
-#: gnu/packages/web.scm:3814
+#: gnu/packages/web.scm:3974
 msgid ""
 "Net::Server is an extensible, generic Perl server engine.\n"
 "It attempts to be a generic server as in Net::Daemon and NetServer::Generic.\n"
@@ -25346,19 +27923,19 @@ msgid ""
 "or to multiple server ports."
 msgstr ""
 
-#: gnu/packages/web.scm:3842
+#: gnu/packages/web.scm:4002
 msgid "SSL support for Net::SMTP"
 msgstr ""
 
-#: gnu/packages/web.scm:3843
+#: gnu/packages/web.scm:4003
 msgid "SSL support for Net::SMTP."
 msgstr ""
 
-#: gnu/packages/web.scm:3877
+#: gnu/packages/web.scm:4037
 msgid "Perl Superglue for Web frameworks and servers (PSGI toolkit)"
 msgstr ""
 
-#: gnu/packages/web.scm:3878
+#: gnu/packages/web.scm:4038
 msgid ""
 "Plack is a set of tools for using the PSGI stack.  It\n"
 "contains middleware components, a reference server, and utilities for Web\n"
@@ -25366,11 +27943,11 @@ msgid ""
 "WSGI."
 msgstr ""
 
-#: gnu/packages/web.scm:3904
+#: gnu/packages/web.scm:4064
 msgid "Compress response body with Gzip or Deflate"
 msgstr ""
 
-#: gnu/packages/web.scm:3906
+#: gnu/packages/web.scm:4066
 msgid ""
 "Plack::Middleware::Deflater is a middleware to encode your response body\n"
 "in gzip or deflate, based on \"Accept-Encoding\" HTTP request header.  It\n"
@@ -25379,21 +27956,21 @@ msgid ""
 "servers."
 msgstr ""
 
-#: gnu/packages/web.scm:3933
+#: gnu/packages/web.scm:4093
 msgid "Plack::Middleware which sets body for redirect response"
 msgstr ""
 
-#: gnu/packages/web.scm:3934
+#: gnu/packages/web.scm:4094
 msgid ""
 "This module sets the body in redirect response, if it's not\n"
 "already set."
 msgstr ""
 
-#: gnu/packages/web.scm:3956
+#: gnu/packages/web.scm:4116
 msgid "Override REST methods to Plack apps via POST"
 msgstr ""
 
-#: gnu/packages/web.scm:3957
+#: gnu/packages/web.scm:4117
 msgid ""
 "This middleware allows for POST requests that pretend to be\n"
 "something else: by adding either a header named X-HTTP-Method-Override to the\n"
@@ -25401,72 +27978,72 @@ msgid ""
 "can say what method it actually meant."
 msgstr ""
 
-#: gnu/packages/web.scm:3980
+#: gnu/packages/web.scm:4140
 msgid "Plack::Middleware which removes body for HTTP response"
 msgstr ""
 
-#: gnu/packages/web.scm:3981
+#: gnu/packages/web.scm:4141
 msgid ""
 "This module removes the body in an HTTP response if it's not\n"
 "required."
 msgstr ""
 
-#: gnu/packages/web.scm:4003
+#: gnu/packages/web.scm:4163
 msgid "Supports app to run as a reverse proxy backend"
 msgstr ""
 
-#: gnu/packages/web.scm:4004
+#: gnu/packages/web.scm:4164
 msgid ""
 "Plack::Middleware::ReverseProxy resets some HTTP headers,\n"
 "which are changed by reverse-proxy.  You can specify the reverse proxy address\n"
 "and stop fake requests using @code{enable_if} directive in your app.psgi."
 msgstr ""
 
-#: gnu/packages/web.scm:4024
+#: gnu/packages/web.scm:4184
 msgid "Run HTTP tests on external live servers"
 msgstr ""
 
-#: gnu/packages/web.scm:4025
+#: gnu/packages/web.scm:4185
 msgid ""
 "This module allows your to run your Plack::Test tests\n"
 "against an external server instead of just against a local application through\n"
 "either mocked HTTP or a locally spawned server."
 msgstr ""
 
-#: gnu/packages/web.scm:4046
+#: gnu/packages/web.scm:4206
 msgid "Testing TCP programs"
 msgstr ""
 
-#: gnu/packages/web.scm:4047
+#: gnu/packages/web.scm:4207
 msgid "Test::TCP is test utilities for TCP/IP programs."
 msgstr ""
 
-#: gnu/packages/web.scm:4071
+#: gnu/packages/web.scm:4231
 msgid "Testing-specific WWW::Mechanize subclass"
 msgstr ""
 
-#: gnu/packages/web.scm:4072
+#: gnu/packages/web.scm:4232
 msgid ""
 "Test::WWW::Mechanize is a subclass of the Perl module\n"
 "WWW::Mechanize that incorporates features for web application testing."
 msgstr ""
 
-#: gnu/packages/web.scm:4105
+#: gnu/packages/web.scm:4265
 msgid "Test::WWW::Mechanize for Catalyst"
 msgstr ""
 
-#: gnu/packages/web.scm:4106
+#: gnu/packages/web.scm:4266
 msgid ""
 "The Test::WWW::Mechanize::Catalyst module meshes the\n"
 "Test::WWW:Mechanize module and the Catalyst web application framework to allow\n"
 "testing of Catalyst applications without needing to start up a web server."
 msgstr ""
 
-#: gnu/packages/web.scm:4130
+#: gnu/packages/web.scm:4290
 msgid "Test PSGI programs using WWW::Mechanize"
 msgstr ""
 
-#: gnu/packages/web.scm:4131
+#: gnu/packages/web.scm:4291
 msgid ""
 "PSGI is a specification to decouple web server environments\n"
 "from web application framework code.  Test::WWW::Mechanize is a subclass of\n"
@@ -25475,33 +28052,33 @@ msgid ""
 "applications."
 msgstr ""
 
-#: gnu/packages/web.scm:4154
+#: gnu/packages/web.scm:4314
 msgid "Perl Uniform Resource Identifiers (absolute and relative)"
 msgstr ""
 
-#: gnu/packages/web.scm:4156
+#: gnu/packages/web.scm:4316
 msgid ""
 "The URI module implements the URI class.  Objects of this class\n"
 "represent \"Uniform Resource Identifier references\" as specified in RFC 2396\n"
 "and updated by RFC 2732."
 msgstr ""
 
-#: gnu/packages/web.scm:4180
+#: gnu/packages/web.scm:4340
 msgid "Smart URI fetching/caching"
 msgstr ""
 
-#: gnu/packages/web.scm:4181
+#: gnu/packages/web.scm:4341
 msgid ""
 "@code{URI::Fetch} is a smart client for fetching HTTP pages,\n"
 "notably syndication feeds (RSS, Atom, and others), in an intelligent, bandwidth-\n"
 "and time-saving way."
 msgstr ""
 
-#: gnu/packages/web.scm:4204
+#: gnu/packages/web.scm:4364
 msgid "Find URIs in arbitrary text"
 msgstr ""
 
-#: gnu/packages/web.scm:4205
+#: gnu/packages/web.scm:4365
 msgid ""
 "This module finds URIs and URLs (according to what URI.pm\n"
 "considers a URI) in plain text.  It only finds URIs which include a\n"
@@ -25509,61 +28086,61 @@ msgid ""
 "URI::Find::Schemeless.  For a command-line interface, urifind is provided."
 msgstr ""
 
-#: gnu/packages/web.scm:4227
+#: gnu/packages/web.scm:4387
 msgid "WebSocket support for URI package"
 msgstr ""
 
-#: gnu/packages/web.scm:4228
+#: gnu/packages/web.scm:4388
 msgid ""
 "With this module, the URI package provides the same set of\n"
 "methods for WebSocket URIs as it does for HTTP URIs."
 msgstr ""
 
-#: gnu/packages/web.scm:4252
+#: gnu/packages/web.scm:4412
 msgid "Object for handling URI templates"
 msgstr ""
 
-#: gnu/packages/web.scm:4253
+#: gnu/packages/web.scm:4413
 msgid ""
 "This perl module provides a wrapper around URI templates as described in\n"
 "RFC 6570."
 msgstr ""
 
-#: gnu/packages/web.scm:4285
+#: gnu/packages/web.scm:4445
 msgid "Perl extension interface for libcurl"
 msgstr ""
 
-#: gnu/packages/web.scm:4287
+#: gnu/packages/web.scm:4447
 msgid ""
 "This is a Perl extension interface for the libcurl file downloading\n"
 "library."
 msgstr ""
 
-#: gnu/packages/web.scm:4320
+#: gnu/packages/web.scm:4480
 msgid "Web browsing in a Perl object"
 msgstr ""
 
-#: gnu/packages/web.scm:4321
+#: gnu/packages/web.scm:4481
 msgid ""
 "WWW::Mechanize is a Perl module for stateful programmatic\n"
 "web browsing, used for automating interaction with websites."
 msgstr ""
 
-#: gnu/packages/web.scm:4357
+#: gnu/packages/web.scm:4517
 msgid "Search A9 OpenSearch compatible engines"
 msgstr ""
 
-#: gnu/packages/web.scm:4359
+#: gnu/packages/web.scm:4519
 msgid ""
 "@code{WWW::OpenSearch} is a module to search @url{A9's OpenSearch,\n"
 "http://opensearch.a9.com} compatible search engines."
 msgstr ""
 
-#: gnu/packages/web.scm:4379
+#: gnu/packages/web.scm:4539
 msgid "Perl database of robots.txt-derived permissions"
 msgstr ""
 
-#: gnu/packages/web.scm:4381
+#: gnu/packages/web.scm:4541
 msgid ""
 "The WWW::RobotRules module parses /robots.txt files as specified in\n"
 "\"A Standard for Robot Exclusion\", at\n"
@@ -25572,21 +28149,21 @@ msgid ""
 "their web site."
 msgstr ""
 
-#: gnu/packages/web.scm:4404
+#: gnu/packages/web.scm:4564
 msgid "Parse feeds in Python"
 msgstr ""
 
-#: gnu/packages/web.scm:4406
+#: gnu/packages/web.scm:4566
 msgid ""
 "Universal feed parser which handles RSS 0.9x, RSS 1.0, RSS 2.0,\n"
 "CDF, Atom 0.3, and Atom 1.0 feeds."
 msgstr ""
 
-#: gnu/packages/web.scm:4503
+#: gnu/packages/web.scm:4664
 msgid "Store and provide data about GNU Guix"
 msgstr ""
 
-#: gnu/packages/web.scm:4505
+#: gnu/packages/web.scm:4666
 msgid ""
 "The Guix Data Service stores data about GNU Guix, and provides this\n"
 "through a web interface.  It supports listening to the guix-commits mailing\n"
@@ -25594,32 +28171,32 @@ msgid ""
 "PostgreSQL database."
 msgstr ""
 
-#: gnu/packages/web.scm:4534
+#: gnu/packages/web.scm:4695
 msgid "HTML5 parsing library"
 msgstr ""
 
-#: gnu/packages/web.scm:4536
+#: gnu/packages/web.scm:4697
 msgid ""
 "Gumbo is an implementation of the HTML5 parsing algorithm implemented as\n"
 "a pure C99 library."
 msgstr ""
 
-#: gnu/packages/web.scm:4607
+#: gnu/packages/web.scm:4768
 msgid "Application container server"
 msgstr ""
 
-#: gnu/packages/web.scm:4609
+#: gnu/packages/web.scm:4770
 msgid ""
 "uWSGI presents a complete stack for networked/clustered web applications,\n"
 "implementing message/object passing, caching, RPC and process management.\n"
 "It uses the uwsgi protocol for all the networking/interprocess communications."
 msgstr ""
 
-#: gnu/packages/web.scm:4641
+#: gnu/packages/web.scm:4802
 msgid "Command-line JSON processor"
 msgstr ""
 
-#: gnu/packages/web.scm:4642
+#: gnu/packages/web.scm:4803
 msgid ""
 "jq is like sed for JSON data – you can use it to slice and\n"
 "filter and map and transform structured data with the same ease that sed, awk,\n"
@@ -25629,96 +28206,96 @@ msgid ""
 "you'd expect."
 msgstr ""
 
-#: gnu/packages/web.scm:4672
+#: gnu/packages/web.scm:4832
 msgid "Library for mocking web service APIs which use HTTP or HTTPS"
 msgstr ""
 
-#: gnu/packages/web.scm:4674
+#: gnu/packages/web.scm:4834
 msgid ""
 "Uhttpmock is a project for mocking web service APIs which use HTTP or\n"
 "HTTPS.  It provides a library, libuhttpmock, which implements recording and\n"
 "playback of HTTP request/response traces."
 msgstr ""
 
-#: gnu/packages/web.scm:4709
+#: gnu/packages/web.scm:4869
 msgid "Single file web server"
 msgstr ""
 
-#: gnu/packages/web.scm:4710
+#: gnu/packages/web.scm:4870
 msgid ""
 "Woof (Web Offer One File) is a small simple web server that\n"
 "can easily be invoked on a single file.  Your partner can access the file with\n"
 "tools they trust (e.g. wget)."
 msgstr ""
 
-#: gnu/packages/web.scm:4736
+#: gnu/packages/web.scm:4896
 msgid "Build system for the Netsurf project"
 msgstr ""
 
-#: gnu/packages/web.scm:4738
+#: gnu/packages/web.scm:4898
 msgid ""
 "This package provides the shared build system for Netsurf project\n"
 "libraries."
 msgstr ""
 
-#: gnu/packages/web.scm:4773
+#: gnu/packages/web.scm:4933
 msgid "Parser building library"
 msgstr ""
 
-#: gnu/packages/web.scm:4775
+#: gnu/packages/web.scm:4935
 msgid ""
 "LibParserUtils is a library for building efficient parsers, written in\n"
 "C.  It is developed as part of the NetSurf project."
 msgstr ""
 
-#: gnu/packages/web.scm:4803
+#: gnu/packages/web.scm:4963
 msgid "HTML5 compliant parsing library"
 msgstr ""
 
-#: gnu/packages/web.scm:4805
+#: gnu/packages/web.scm:4965
 msgid ""
 "Hubbub is an HTML5 compliant parsing library, written in C, which can\n"
 "parse both valid and invalid web content.  It is developed as part of the\n"
 "NetSurf project."
 msgstr ""
 
-#: gnu/packages/web.scm:4878
+#: gnu/packages/web.scm:5083
 msgid "Wiki compiler, capable of generating HTML"
 msgstr ""
 
-#: gnu/packages/web.scm:4880
+#: gnu/packages/web.scm:5085
 msgid ""
 "Ikiwiki is a wiki compiler, capable of generating a static set of web\n"
 "pages, but also incorporating dynamic features like a web based editor and\n"
 "commenting."
 msgstr ""
 
-#: gnu/packages/web.scm:4904
+#: gnu/packages/web.scm:5109
 msgid "String internment library"
 msgstr ""
 
-#: gnu/packages/web.scm:4906
+#: gnu/packages/web.scm:5111
 msgid ""
 "LibWapcaplet provides a reference counted string internment system\n"
 "designed to store small strings and allow rapid comparison of them.  It is\n"
 "developed as part of the Netsurf project."
 msgstr ""
 
-#: gnu/packages/web.scm:4933
+#: gnu/packages/web.scm:5138
 msgid "CSS parser and selection library"
 msgstr ""
 
-#: gnu/packages/web.scm:4935
+#: gnu/packages/web.scm:5140
 msgid ""
 "LibCSS is a CSS (Cascading Style Sheet) parser and selection engine,\n"
 "written in C.  It is developed as part of the NetSurf project."
 msgstr ""
 
-#: gnu/packages/web.scm:4969
+#: gnu/packages/web.scm:5173
 msgid "C library for reading and writing YAML"
 msgstr ""
 
-#: gnu/packages/web.scm:4971
+#: gnu/packages/web.scm:5175
 msgid ""
 "LibCYAML is a C library written in ISO C11 for reading and writing\n"
 "structured YAML documents.  The fundamental idea behind CYAML is to allow\n"
@@ -25727,21 +28304,21 @@ msgid ""
 "in which the loaded data is arranged in memory."
 msgstr ""
 
-#: gnu/packages/web.scm:5009
+#: gnu/packages/web.scm:5213
 msgid "Implementation of the W3C DOM"
 msgstr ""
 
-#: gnu/packages/web.scm:5011
+#: gnu/packages/web.scm:5215
 msgid ""
 "LibDOM is an implementation of the W3C DOM, written in C.  It is\n"
 "developed as part of the NetSurf project."
 msgstr ""
 
-#: gnu/packages/web.scm:5038
+#: gnu/packages/web.scm:5242
 msgid "Library for parsing SVG files"
 msgstr ""
 
-#: gnu/packages/web.scm:5040
+#: gnu/packages/web.scm:5244
 msgid ""
 "Libsvgtiny takes some SVG as input and returns a list of paths and texts\n"
 "which can be rendered easily, as defined in\n"
@@ -25749,105 +28326,105 @@ msgid ""
 "project."
 msgstr ""
 
-#: gnu/packages/web.scm:5063
+#: gnu/packages/web.scm:5267
 msgid "Decoding library for BMP and ICO files"
 msgstr ""
 
-#: gnu/packages/web.scm:5065
+#: gnu/packages/web.scm:5269
 msgid ""
 "Libnsbmp is a decoding library for BMP and ICO image file formats,\n"
 "written in C.  It is developed as part of the NetSurf project."
 msgstr ""
 
-#: gnu/packages/web.scm:5086
+#: gnu/packages/web.scm:5290
 msgid "Decoding library for GIF files"
 msgstr ""
 
-#: gnu/packages/web.scm:5088
+#: gnu/packages/web.scm:5292
 msgid ""
 "Libnsgif is a decoding library for the GIF image file format, written in\n"
 "C.  It is developed as part of the NetSurf project."
 msgstr ""
 
-#: gnu/packages/web.scm:5113
+#: gnu/packages/web.scm:5317
 msgid "Logging library"
 msgstr ""
 
-#: gnu/packages/web.scm:5115
+#: gnu/packages/web.scm:5319
 msgid ""
 "Libnslog provides a category-based logging library which supports\n"
 "complex logging filters, multiple log levels, and provides context through to\n"
 "client applications.  It is developed as part of the NetSurf project."
 msgstr ""
 
-#: gnu/packages/web.scm:5137
+#: gnu/packages/web.scm:5341
 msgid "Utility library for NetSurf"
 msgstr ""
 
-#: gnu/packages/web.scm:5139
+#: gnu/packages/web.scm:5343
 msgid ""
 "Libnsutils provides a small number of useful utility routines.  It is\n"
 "developed as part of the NetSurf project."
 msgstr ""
 
-#: gnu/packages/web.scm:5160
+#: gnu/packages/web.scm:5364
 msgid "Library to generate a static Public Suffix List"
 msgstr ""
 
-#: gnu/packages/web.scm:5162
+#: gnu/packages/web.scm:5366
 msgid ""
 "Libnspsl is a library to generate a static code representation of the\n"
 "Public Suffix List.  It is developed as part of the NetSurf project."
 msgstr ""
 
-#: gnu/packages/web.scm:5188
+#: gnu/packages/web.scm:5392
 msgid "Generate JavaScript to DOM bindings"
 msgstr ""
 
-#: gnu/packages/web.scm:5190
+#: gnu/packages/web.scm:5394
 msgid ""
 "@code{nsgenbind} is a tool to generate JavaScript to DOM bindings from\n"
 "w3c webidl files and a binding configuration file."
 msgstr ""
 
-#: gnu/packages/web.scm:5311
+#: gnu/packages/web.scm:5515
 msgid "Web browser"
 msgstr ""
 
-#: gnu/packages/web.scm:5313
+#: gnu/packages/web.scm:5517
 msgid ""
 "NetSurf is a lightweight web browser that has its own layout and\n"
 "rendering engine entirely written from scratch.  It is small and capable of\n"
 "handling many of the web standards in use today."
 msgstr ""
 
-#: gnu/packages/web.scm:5354
+#: gnu/packages/web.scm:5558
 msgid "Unix command line interface to the www"
 msgstr ""
 
-#: gnu/packages/web.scm:5355
+#: gnu/packages/web.scm:5559
 msgid ""
 "Surfraw (Shell Users' Revolutionary Front Rage Against the Web)\n"
 "provides a unix command line interface to a variety of popular www search engines\n"
 "and similar services."
 msgstr ""
 
-#: gnu/packages/web.scm:5386
+#: gnu/packages/web.scm:5590
 msgid "Simple static web server"
 msgstr ""
 
-#: gnu/packages/web.scm:5387
+#: gnu/packages/web.scm:5591
 msgid ""
 "darkhttpd is a simple static web server.  It is\n"
 "standalone and does not need inetd or ucspi-tcp.  It does not need any\n"
 "config files---you only have to specify the www root."
 msgstr ""
 
-#: gnu/packages/web.scm:5418
+#: gnu/packages/web.scm:5622
 msgid "Analyze Web server logs in real time"
 msgstr ""
 
-#: gnu/packages/web.scm:5420
+#: gnu/packages/web.scm:5624
 msgid ""
 "GoAccess is a real-time web log analyzer and interactive viewer that\n"
 "runs in a terminal or through your browser.  It provides fast and valuable\n"
@@ -25855,11 +28432,23 @@ msgid ""
 "on the fly."
 msgstr ""
 
-#: gnu/packages/web.scm:5456
+#: gnu/packages/web.scm:5676
+msgid "Scalable TLS proxy"
+msgstr ""
+
+#: gnu/packages/web.scm:5678
+msgid ""
+"Hitch is a performant TLS proxy based on @code{libev}.  It terminates\n"
+"SSL/TLS connections and forwards the unencrypted traffic to a backend such\n"
+"as a web server.  It is designed to handle many thousand connections on\n"
+"multicore machines."
+msgstr ""
+
+#: gnu/packages/web.scm:5714
 msgid "Tunnel data connections through HTTP requests"
 msgstr ""
 
-#: gnu/packages/web.scm:5457
+#: gnu/packages/web.scm:5715
 msgid ""
 "httptunnel creates a bidirectional virtual data connection\n"
 "tunnelled through HTTP (HyperText Transfer Protocol) requests.  This can be\n"
@@ -25868,11 +28457,11 @@ msgid ""
 "tools like SSH (Secure Shell) to reach the outside world."
 msgstr ""
 
-#: gnu/packages/web.scm:5503
+#: gnu/packages/web.scm:5761
 msgid "TLS proxy for clients or servers"
 msgstr ""
 
-#: gnu/packages/web.scm:5504
+#: gnu/packages/web.scm:5762
 msgid ""
 "Stunnel is a proxy designed to add TLS encryption\n"
 "functionality to existing clients and servers without any changes in the\n"
@@ -25881,11 +28470,11 @@ msgid ""
 "deployments."
 msgstr ""
 
-#: gnu/packages/web.scm:5574
+#: gnu/packages/web.scm:5832
 msgid "Web application accelerator"
 msgstr ""
 
-#: gnu/packages/web.scm:5576
+#: gnu/packages/web.scm:5834
 msgid ""
 "Varnish is a high-performance HTTP accelerator.  It acts as a caching\n"
 "reverse proxy and load balancer.  You install it in front of any server that\n"
@@ -25893,22 +28482,22 @@ msgid ""
 "configuration language."
 msgstr ""
 
-#: gnu/packages/web.scm:5604
+#: gnu/packages/web.scm:5862
 msgid "Collection of Varnish modules"
 msgstr "Sammlung von Varnish-Modulen"
 
-#: gnu/packages/web.scm:5606
+#: gnu/packages/web.scm:5864
 msgid ""
 "This package provides a collection of modules (@dfn{vmods}) for the Varnish\n"
-"cache server, extending the @dfn{Varnish Configuration Language} (VCL) with\n"
+"cache server, extending the @acronym{VCL, Varnish Configuration Language} with\n"
 "additional capabilities."
 msgstr ""
 
-#: gnu/packages/web.scm:5635
+#: gnu/packages/web.scm:5893
 msgid "Internet services daemon"
 msgstr ""
 
-#: gnu/packages/web.scm:5636
+#: gnu/packages/web.scm:5894
 msgid ""
 "@code{xinetd}, a more secure replacement for @code{inetd},\n"
 "listens for incoming requests over a network and launches the appropriate\n"
@@ -25917,11 +28506,11 @@ msgid ""
 "used to start services with both privileged and non-privileged port numbers."
 msgstr ""
 
-#: gnu/packages/web.scm:5681
+#: gnu/packages/web.scm:5939
 msgid "HTML Tidy with HTML5 support"
 msgstr ""
 
-#: gnu/packages/web.scm:5683
+#: gnu/packages/web.scm:5941
 msgid ""
 "Tidy is a console application which corrects and cleans up\n"
 "HTML and XML documents by fixing markup errors and upgrading\n"
@@ -25932,22 +28521,22 @@ msgid ""
 "functions of Tidy."
 msgstr ""
 
-#: gnu/packages/web.scm:5746
+#: gnu/packages/web.scm:6004
 msgid "Webserver with focus on security"
 msgstr ""
 
-#: gnu/packages/web.scm:5748
+#: gnu/packages/web.scm:6006
 msgid ""
 "Hiawatha has been written with security in mind.\n"
 "Features include the ability to stop SQL injections, XSS and CSRF attacks and\n"
 "exploit attempts."
 msgstr ""
 
-#: gnu/packages/web.scm:5772
+#: gnu/packages/web.scm:6030
 msgid "HTTP request and response service"
 msgstr ""
 
-#: gnu/packages/web.scm:5773
+#: gnu/packages/web.scm:6031
 msgid ""
 "Testing an HTTP Library can become difficult sometimes.\n"
 "@code{RequestBin} is fantastic for testing POST requests, but doesn't let you control the\n"
@@ -25955,22 +28544,22 @@ msgid ""
 "JSON-encoded."
 msgstr ""
 
-#: gnu/packages/web.scm:5801
+#: gnu/packages/web.scm:6059
 msgid "Test your HTTP library against a local copy of httpbin"
 msgstr ""
 
-#: gnu/packages/web.scm:5803
+#: gnu/packages/web.scm:6061
 msgid ""
 "@code{Pytest-httpbin} creates a @code{pytest} fixture that is dependency-injected\n"
 "into your tests.  It automatically starts up a HTTP server in a separate thread running\n"
 "@code{httpbin} and provides your test with the URL in the fixture."
 msgstr ""
 
-#: gnu/packages/web.scm:5848
+#: gnu/packages/web.scm:6134
 msgid "HTTP request/response parser for C"
 msgstr ""
 
-#: gnu/packages/web.scm:5849
+#: gnu/packages/web.scm:6135
 msgid ""
 "This is a parser for HTTP messages written in C.  It parses\n"
 "both requests and responses.  The parser is designed to be used in\n"
@@ -25980,64 +28569,64 @@ msgid ""
 "message stream (in a web server that is per connection)."
 msgstr ""
 
-#: gnu/packages/web.scm:5882
+#: gnu/packages/web.scm:6168
 msgid "HTTP client mock for Python"
 msgstr ""
 
-#: gnu/packages/web.scm:5883
+#: gnu/packages/web.scm:6169
 msgid ""
 "@code{httpretty} is a helper for faking web requests,\n"
 "inspired by Ruby's @code{fakeweb}."
 msgstr ""
 
-#: gnu/packages/web.scm:5901
+#: gnu/packages/web.scm:6186
 msgid "Output JSON from a shell"
 msgstr ""
 
-#: gnu/packages/web.scm:5902
+#: gnu/packages/web.scm:6187
 msgid ""
 "jo is a command-line utility to create JSON objects or\n"
 "arrays.  It creates a JSON string on stdout from words provided as\n"
 "command-line arguments or read from stdin."
 msgstr ""
 
-#: gnu/packages/web.scm:5962
+#: gnu/packages/web.scm:6247
 msgid "Command-line interface to archive.org"
 msgstr ""
 
-#: gnu/packages/web.scm:5963
+#: gnu/packages/web.scm:6248
 msgid ""
 "@code{ia} is a command-line tool for using\n"
 "@url{archive.org} from the command-line.  It also emplements the\n"
 "internetarchive python module for programmatic access to archive.org."
 msgstr ""
 
-#: gnu/packages/web.scm:6013
+#: gnu/packages/web.scm:6298
 msgid "Search code snippets on @url{https://commandlinefu.com}"
 msgstr ""
 
-#: gnu/packages/web.scm:6014
+#: gnu/packages/web.scm:6299
 msgid ""
 "@code{clf} is a command line tool for searching code\n"
 "snippets on @url{https://commandlinefu.com}."
 msgstr ""
 
-#: gnu/packages/web.scm:6047
+#: gnu/packages/web.scm:6332
 msgid "Generate Atom feeds for social networking websites"
 msgstr ""
 
-#: gnu/packages/web.scm:6048
+#: gnu/packages/web.scm:6333
 msgid ""
 "rss-bridge generates Atom feeds for social networking\n"
 "websites lacking feeds.  Supported websites include Facebook, Twitter,\n"
 "Instagram and YouTube."
 msgstr ""
 
-#: gnu/packages/web.scm:6102
+#: gnu/packages/web.scm:6387
 msgid "Check websites for broken links"
 msgstr ""
 
-#: gnu/packages/web.scm:6103
+#: gnu/packages/web.scm:6388
 msgid ""
 "LinkChecker is a website validator.  It checks for broken\n"
 "links in websites.  It is recursive and multithreaded providing output in\n"
@@ -26046,99 +28635,99 @@ msgid ""
 "file links."
 msgstr ""
 
-#: gnu/packages/web.scm:6139
+#: gnu/packages/web.scm:6424
 msgid "Command-line WebDAV client"
 msgstr ""
 
-#: gnu/packages/web.scm:6141
+#: gnu/packages/web.scm:6426
 msgid ""
 "Cadaver is a command-line WebDAV client for Unix.  It supports\n"
 "file upload, download, on-screen display, namespace operations (move/copy),\n"
 "collection creation and deletion, and locking operations."
 msgstr ""
 
-#: gnu/packages/web.scm:6159
+#: gnu/packages/web.scm:6444
 msgid "Universal Binary JSON encoder/decoder"
 msgstr ""
 
-#: gnu/packages/web.scm:6161
+#: gnu/packages/web.scm:6446
 msgid ""
 "Py-ubjson is a Python module providing an Universal Binary JSON\n"
 "encoder/decoder based on the draft-12 specification for UBJSON."
 msgstr ""
 
-#: gnu/packages/web.scm:6255
+#: gnu/packages/web.scm:6540
 msgid ""
 "Java Servlet, JavaServer Pages, Java Expression Language and Java\n"
 "WebSocket"
 msgstr ""
 
-#: gnu/packages/web.scm:6257
+#: gnu/packages/web.scm:6542
 msgid ""
 "Apache Tomcat is a free implementation of the Java\n"
 "Servlet, JavaServer Pages, Java Expression Language and Java WebSocket\n"
 "technologies."
 msgstr ""
 
-#: gnu/packages/web.scm:6308
+#: gnu/packages/web.scm:6595
 msgid "Helper classes for jetty tests"
 msgstr ""
 
-#: gnu/packages/web.scm:6309
+#: gnu/packages/web.scm:6596
 msgid ""
 "This package contains helper classes for testing the Jetty\n"
 "Web Server."
 msgstr ""
 
-#: gnu/packages/web.scm:6371
+#: gnu/packages/web.scm:6658
 msgid "Utility classes for Jetty"
 msgstr ""
 
-#: gnu/packages/web.scm:6372
+#: gnu/packages/web.scm:6659
 msgid ""
 "The Jetty Web Server provides an HTTP server and Servlet\n"
 "container capable of serving static and dynamic content either from a standalone\n"
 "or embedded instantiation.  This package provides utility classes."
 msgstr ""
 
-#: gnu/packages/web.scm:6443
+#: gnu/packages/web.scm:6730
 msgid "Jetty :: IO Utility"
 msgstr ""
 
-#: gnu/packages/web.scm:6444
+#: gnu/packages/web.scm:6731
 msgid ""
 "The Jetty Web Server provides an HTTP server and Servlet\n"
 "container capable of serving static and dynamic content either from a standalone\n"
 "or embedded instantiation.  This package provides IO-related utility classes."
 msgstr ""
 
-#: gnu/packages/web.scm:6487
+#: gnu/packages/web.scm:6774
 msgid "Jetty :: Http Utility"
 msgstr ""
 
-#: gnu/packages/web.scm:6488
+#: gnu/packages/web.scm:6775
 msgid ""
 "The Jetty Web Server provides an HTTP server and Servlet\n"
 "container capable of serving static and dynamic content either from a standalone\n"
 "or embedded instantiation.  This package provides HTTP-related utility classes."
 msgstr ""
 
-#: gnu/packages/web.scm:6521
+#: gnu/packages/web.scm:6808
 msgid "Jetty :: JMX Management"
 msgstr ""
 
-#: gnu/packages/web.scm:6522
+#: gnu/packages/web.scm:6809
 msgid ""
 "The Jetty Web Server provides an HTTP server and Servlet\n"
 "container capable of serving static and dynamic content either from a standalone\n"
 "or embedded instantiation.  This package provides the JMX management."
 msgstr ""
 
-#: gnu/packages/web.scm:6609
+#: gnu/packages/web.scm:6896
 msgid "Core jetty server artifact"
 msgstr ""
 
-#: gnu/packages/web.scm:6610
+#: gnu/packages/web.scm:6897
 msgid ""
 "The Jetty Web Server provides an HTTP server and Servlet\n"
 "container capable of serving static and dynamic content either from a standalone\n"
@@ -26146,11 +28735,11 @@ msgid ""
 "artifact."
 msgstr ""
 
-#: gnu/packages/web.scm:6654
+#: gnu/packages/web.scm:6941
 msgid "Jetty security infrastructure"
 msgstr ""
 
-#: gnu/packages/web.scm:6655
+#: gnu/packages/web.scm:6942
 msgid ""
 "The Jetty Web Server provides an HTTP server and Servlet\n"
 "container capable of serving static and dynamic content either from a standalone\n"
@@ -26158,11 +28747,11 @@ msgid ""
 "infrastructure"
 msgstr ""
 
-#: gnu/packages/web.scm:6698
+#: gnu/packages/web.scm:6985
 msgid "Jetty Servlet Container"
 msgstr ""
 
-#: gnu/packages/web.scm:6699
+#: gnu/packages/web.scm:6986
 msgid ""
 "The Jetty Web Server provides an HTTP server and Servlet\n"
 "container capable of serving static and dynamic content either from a standalone\n"
@@ -26170,22 +28759,22 @@ msgid ""
 "container."
 msgstr ""
 
-#: gnu/packages/web.scm:6865
+#: gnu/packages/web.scm:7152
 msgid "HTML parser"
 msgstr ""
 
-#: gnu/packages/web.scm:6866
+#: gnu/packages/web.scm:7153
 msgid ""
 "Jsoup is a Java library for working with real-world HTML.  It\n"
 "provides a very convenient API for extracting and manipulating data, using the\n"
 "best of DOM, CSS, and jQuery-like methods."
 msgstr ""
 
-#: gnu/packages/web.scm:6894
+#: gnu/packages/web.scm:7181
 msgid "Lightweight client-side OAuth library for Java"
 msgstr ""
 
-#: gnu/packages/web.scm:6895
+#: gnu/packages/web.scm:7182
 msgid ""
 "Signpost is the easy and intuitive solution for signing\n"
 "HTTP messages on the Java platform in conformance with the OAuth Core 1.0a\n"
@@ -26193,11 +28782,11 @@ msgid ""
 "combine it with different HTTP messaging layers."
 msgstr ""
 
-#: gnu/packages/web.scm:6917
+#: gnu/packages/web.scm:7204
 msgid "Validate HTML"
 msgstr ""
 
-#: gnu/packages/web.scm:6918
+#: gnu/packages/web.scm:7205
 msgid ""
 "Tidyp is a program that can validate your HTML, as well as\n"
 "modify it to be more clean and standard.  tidyp does not validate HTML 5.\n"
@@ -26207,22 +28796,22 @@ msgid ""
 "based on this library, allowing Perl programmers to easily validate HTML."
 msgstr ""
 
-#: gnu/packages/web.scm:6959
+#: gnu/packages/web.scm:7246
 msgid "(X)HTML validation in a Perl object"
 msgstr ""
 
-#: gnu/packages/web.scm:6960
+#: gnu/packages/web.scm:7247
 msgid ""
 "@code{HTML::Tidy} is an HTML checker in a handy dandy\n"
 "object.  It's meant as a replacement for @code{HTML::Lint}, which is written\n"
 "in Perl but is not nearly as capable as @code{HTML::Tidy}."
 msgstr ""
 
-#: gnu/packages/web.scm:6987
+#: gnu/packages/web.scm:7274
 msgid "Small Gopher server"
 msgstr ""
 
-#: gnu/packages/web.scm:6989
+#: gnu/packages/web.scm:7276
 msgid ""
 "Geomyidae is a server for distributed hypertext protocol Gopher.  Its\n"
 "features include:\n"
@@ -26236,22 +28825,22 @@ msgid ""
 "@end enumerate\n"
 msgstr ""
 
-#: gnu/packages/web.scm:7036
+#: gnu/packages/web.scm:7323
 msgid "Random avatar generator"
 msgstr ""
 
-#: gnu/packages/web.scm:7037
+#: gnu/packages/web.scm:7324
 msgid ""
 "Cat avatar generator is a generator of cat pictures optimised\n"
 "to generate random avatars, or defined avatar from a \"seed\".  This is a\n"
 "derivation by David Revoy from the original MonsterID by Andreas Gohr."
 msgstr ""
 
-#: gnu/packages/web.scm:7100
+#: gnu/packages/web.scm:7392
 msgid "HTTP/2 protocol client, proxy, server, and library"
 msgstr ""
 
-#: gnu/packages/web.scm:7102
+#: gnu/packages/web.scm:7394
 msgid ""
 "nghttp2 implements the Hypertext Transfer Protocol, version\n"
 "2 (@dfn{HTTP/2}).\n"
@@ -26277,22 +28866,22 @@ msgid ""
 "@end itemize\n"
 msgstr ""
 
-#: gnu/packages/web.scm:7229
+#: gnu/packages/web.scm:7509
 msgid "Web interface for cluster deployments of Guix"
 msgstr ""
 
-#: gnu/packages/web.scm:7230
+#: gnu/packages/web.scm:7510
 msgid ""
 "Hpcguix-web provides a web interface to the list of packages\n"
 "provided by Guix.  The list of packages is searchable and provides\n"
 "instructions on how to use Guix in a shared HPC environment."
 msgstr ""
 
-#: gnu/packages/web.scm:7251
+#: gnu/packages/web.scm:7531
 msgid "Easy-to-use offline browser utility"
 msgstr ""
 
-#: gnu/packages/web.scm:7252
+#: gnu/packages/web.scm:7532
 msgid ""
 "HTTrack allows you to download a World Wide Web site from\n"
 "the Internet to a local directory, building recursively all directories,\n"
@@ -26306,11 +28895,24 @@ msgid ""
 "HTTrack is fully configurable, and has an integrated help system."
 msgstr ""
 
-#: gnu/packages/web.scm:7276
+#: gnu/packages/web.scm:7566
+msgid "Bookmark manager"
+msgstr ""
+
+#: gnu/packages/web.scm:7568
+msgid ""
+"buku is a powerful bookmark manager written in Python3 and SQLite3.\n"
+"@command{buku} can auto-import bookmarks from your browser and present them\n"
+"in an interactive command-line interface that lets you compose and update\n"
+"bookmarks directly.  It can also present them in a web interface with\n"
+"@command{bukuserver}."
+msgstr ""
+
+#: gnu/packages/web.scm:7587
 msgid "Anonymize IP addresses in log files"
 msgstr ""
 
-#: gnu/packages/web.scm:7278
+#: gnu/packages/web.scm:7589
 msgid ""
 "Anonip masks the last bits of IPv4 and IPv6 addresses in log files.\n"
 "That way most of the relevant information is preserved, while the IP address\n"
@@ -26325,11 +28927,11 @@ msgid ""
 "Anonip can also be uses as a Python module in your own Python application."
 msgstr ""
 
-#: gnu/packages/web.scm:7312
+#: gnu/packages/web.scm:7623
 msgid "Lightweight asynchronous task execution service"
 msgstr ""
 
-#: gnu/packages/web.scm:7313
+#: gnu/packages/web.scm:7624
 msgid ""
 "Poussetaches (which literally means \"push tasks\" in\n"
 "French) is a lightweight asynchronous task execution service that aims to\n"
@@ -26341,11 +28943,11 @@ msgid ""
 "returned."
 msgstr ""
 
-#: gnu/packages/web.scm:7337
+#: gnu/packages/web.scm:7648
 msgid "Simple non-validating CSS1 and HTML parser for C++"
 msgstr ""
 
-#: gnu/packages/web.scm:7338
+#: gnu/packages/web.scm:7649
 msgid ""
 "htmlcxx is a simple non-validating CSS1 and HTML parser for\n"
 "C++.  Although there are several other HTML parsers available, htmlcxx has some\n"
@@ -26363,11 +28965,11 @@ msgid ""
 "@end itemize"
 msgstr ""
 
-#: gnu/packages/web.scm:7381
+#: gnu/packages/web.scm:7692
 msgid "HTML/CSS user interface library"
 msgstr ""
 
-#: gnu/packages/web.scm:7382
+#: gnu/packages/web.scm:7693
 msgid ""
 "libRocket is a C++ user interface package based on the HTML\n"
 "and CSS standards.  libRocket uses the open standards XHTML1.0 and\n"
@@ -26384,6 +28986,14 @@ msgid ""
 "@end itemize\n"
 msgstr ""
 
+#: gnu/packages/web.scm:7744
+msgid "Simple Gemini protocol server"
+msgstr ""
+
+#: gnu/packages/web.scm:7745
+msgid "gmnisrv is a simple Gemini protocol server written in C."
+msgstr ""
+
 #: gnu/packages/wordnet.scm:92
 msgid "Lexical database for the English language"
 msgstr ""
@@ -26406,7 +29016,7 @@ msgstr ""
 
 #: gnu/packages/xiph.scm:77
 msgid ""
-"The libogg library allows to manipulate the ogg multimedia container\n"
+"The libogg library manipulates the ogg multimedia container\n"
 "format, which encapsulates raw compressed data and allows the interleaving of\n"
 "audio and video data.  In addition to encapsulation and interleaving of\n"
 "multiple data streams, ogg provides packet framing, error detection, and\n"
@@ -26535,7 +29145,7 @@ msgid ""
 "         an ogg vorbis file."
 msgstr ""
 
-#: gnu/packages/xiph.scm:364 gnu/packages/xiph.scm:430
+#: gnu/packages/xiph.scm:364 gnu/packages/xiph.scm:432
 msgid "Versatile audio codec"
 msgstr ""
 
@@ -26559,28 +29169,28 @@ msgid ""
 "decoding .opus files."
 msgstr ""
 
-#: gnu/packages/xiph.scm:432
+#: gnu/packages/xiph.scm:434
 msgid ""
 "The opusfile library provides seeking, decode, and playback of Opus\n"
 "streams in the Ogg container (.opus files) including over http(s) on posix and\n"
 "windows systems."
 msgstr ""
 
-#: gnu/packages/xiph.scm:454
+#: gnu/packages/xiph.scm:456
 msgid "Library for encoding Opus audio files and streams "
 msgstr ""
 
-#: gnu/packages/xiph.scm:455
+#: gnu/packages/xiph.scm:457
 msgid ""
 "The libopusenc libraries provide a high-level API for\n"
 "encoding Opus files and streams."
 msgstr ""
 
-#: gnu/packages/xiph.scm:484
+#: gnu/packages/xiph.scm:486
 msgid "Streaming media server"
 msgstr ""
 
-#: gnu/packages/xiph.scm:485
+#: gnu/packages/xiph.scm:487
 msgid ""
 "Icecast is a streaming media server which currently supports\n"
 "Ogg (Vorbis and Theora), Opus, WebM and MP3 audio streams.  It can be used to\n"
@@ -26588,46 +29198,37 @@ msgid ""
 "things in between."
 msgstr ""
 
-#: gnu/packages/xiph.scm:513
+#: gnu/packages/xiph.scm:515
 msgid "Audio streaming library for icecast encoders"
 msgstr ""
 
-#: gnu/packages/xiph.scm:515
+#: gnu/packages/xiph.scm:517
 msgid ""
 "Libshout is a library for communicating with and sending data to an\n"
 "icecast server.  It handles the socket connection, the timing of the data,\n"
 "and prevents bad data from getting to the icecast server."
 msgstr ""
 
-#: gnu/services/base.scm:304
-msgid ""
-"The @code{user-processes} service is responsible for\n"
-"terminating all the processes so that the root file system can be re-mounted\n"
-"read-only, just before rebooting/halting.  Processes still running after a few\n"
-"seconds after @code{SIGTERM} has been sent are terminated with\n"
-"@code{SIGKILL}."
-msgstr ""
-
-#: gnu/services/base.scm:356
+#: gnu/services/base.scm:238
 msgid ""
 "Populate the @file{/etc/fstab} based on the given file\n"
 "system objects."
 msgstr ""
 
-#: gnu/services/base.scm:550
+#: gnu/services/base.scm:432
 msgid ""
 "Provide Shepherd services to mount and unmount the given\n"
 "file systems, as well as corresponding @file{/etc/fstab} entries."
 msgstr ""
 
-#: gnu/services/base.scm:648
+#: gnu/services/base.scm:530
 msgid ""
 "Seed the @file{/dev/urandom} pseudo-random number\n"
 "generator (RNG) with the value recorded when the system was last shut\n"
 "down."
 msgstr ""
 
-#: gnu/services/base.scm:814
+#: gnu/services/base.scm:696
 msgid ""
 "Install the given fonts on the specified ttys (fonts are per\n"
 "virtual console on GNU/Linux).  The value of this service is a list of\n"
@@ -26645,56 +29246,56 @@ msgid ""
 "@end example\n"
 msgstr ""
 
-#: gnu/services/base.scm:866
+#: gnu/services/base.scm:748
 msgid ""
 "Provide a console log-in service as specified by its\n"
 "configuration value, a @code{login-configuration} object."
 msgstr ""
 
-#: gnu/services/base.scm:1134
+#: gnu/services/base.scm:1016
 msgid ""
 "Provide console login using the @command{agetty}\n"
 "program."
 msgstr ""
 
-#: gnu/services/base.scm:1195
+#: gnu/services/base.scm:1077
 msgid ""
 "Provide console login using the @command{mingetty}\n"
 "program."
 msgstr ""
 
-#: gnu/services/base.scm:1412
+#: gnu/services/base.scm:1294
 msgid ""
 "Runs libc's @dfn{name service cache daemon} (nscd) with the\n"
 "given configuration---an @code{<nscd-configuration>} object.  @xref{Name\n"
 "Service Switch}, for an example."
 msgstr ""
 
-#: gnu/services/base.scm:1519
+#: gnu/services/base.scm:1401
 msgid ""
 "Install the specified resource usage limits by populating\n"
 "@file{/etc/security/limits.conf} and using the @code{pam_limits}\n"
 "authentication module."
 msgstr ""
 
-#: gnu/services/base.scm:1799
+#: gnu/services/base.scm:1716
 msgid "Run the build daemon of GNU@tie{}Guix, aka. @command{guix-daemon}."
 msgstr ""
 
-#: gnu/services/base.scm:1938
+#: gnu/services/base.scm:1861
 msgid ""
 "Add a Shepherd service running @command{guix publish}, a\n"
 "command that allows you to share pre-built binaries with others over HTTP."
 msgstr ""
 
-#: gnu/services/base.scm:2157
+#: gnu/services/base.scm:2080
 msgid ""
 "Run @command{udev}, which populates the @file{/dev}\n"
 "directory dynamically.  Get extra rules from the packages listed in the\n"
 "@code{rules} field of its value, @code{udev-configuration} object."
 msgstr ""
 
-#: gnu/services/base.scm:2239
+#: gnu/services/base.scm:2212
 msgid ""
 "Run GPM, the general-purpose mouse daemon, with the given\n"
 "command-line options.  GPM allows users to use the mouse in the console,\n"
@@ -26702,7 +29303,7 @@ msgid ""
 "@code{ps2} protocol, which works for both USB and PS/2 mice."
 msgstr ""
 
-#: gnu/services/base.scm:2423
+#: gnu/services/base.scm:2396
 msgid ""
 "Turn up the specified network interfaces upon startup,\n"
 "with the given IP address, gateway, netmask, and so on.  The value for\n"
@@ -26710,71 +29311,77 @@ msgid ""
 "network interface."
 msgstr ""
 
-#: gnu/services/certbot.scm:197
+#: gnu/services/certbot.scm:202
 msgid ""
 "Automatically renew @url{https://letsencrypt.org, Let's\n"
 "Encrypt} HTTPS certificates by adjusting the nginx web server configuration\n"
 "and periodically invoking @command{certbot}."
 msgstr ""
 
-#: gnu/services/networking.scm:479
+#: gnu/services/networking.scm:341
+msgid ""
+"Run a DHCP (Dynamic Host Configuration Protocol) daemon.  The\n"
+"daemon is responsible for allocating IP addresses to its client."
+msgstr ""
+
+#: gnu/services/networking.scm:496
 msgid ""
 "Run the @command{ntpd}, the Network Time Protocol (NTP)\n"
 "daemon of the @uref{http://www.ntp.org, Network Time Foundation}.  The daemon\n"
 "will keep the system clock synchronized with that of the given servers."
 msgstr ""
 
-#: gnu/services/networking.scm:609
+#: gnu/services/networking.scm:626
 msgid ""
 "Run the @command{ntpd}, the Network Time Protocol (NTP)\n"
 "daemon, as implemented by @uref{http://www.openntpd.org, OpenNTPD}.  The\n"
 "daemon will keep the system clock synchronized with that of the given servers."
 msgstr ""
 
-#: gnu/services/networking.scm:697
+#: gnu/services/networking.scm:714
 msgid ""
 "Start @command{inetd}, the @dfn{Internet superserver}.  It is responsible\n"
 "for listening on Internet sockets and spawning the corresponding services on\n"
 "demand."
 msgstr ""
 
-#: gnu/services/networking.scm:876
+#: gnu/services/networking.scm:893
 msgid ""
 "Run the @uref{https://torproject.org, Tor} anonymous\n"
 "networking daemon."
 msgstr ""
 
-#: gnu/services/networking.scm:900
+#: gnu/services/networking.scm:917
 msgid "Define a new Tor @dfn{hidden service}."
 msgstr ""
 
-#: gnu/services/networking.scm:968
+#: gnu/services/networking.scm:985
 msgid ""
 "Run @url{https://launchpad.net/wicd,Wicd}, a network\n"
 "management daemon that aims to simplify wired and wireless networking."
 msgstr ""
 
-#: gnu/services/networking.scm:1109
+#: gnu/services/networking.scm:1126
 msgid ""
 "Run @uref{https://wiki.gnome.org/Projects/NetworkManager,\n"
 "NetworkManager}, a network management daemon that aims to simplify wired and\n"
 "wireless networking."
 msgstr ""
 
-#: gnu/services/networking.scm:1177
+#: gnu/services/networking.scm:1195
 msgid ""
 "Run @url{https://01.org/connman,Connman},\n"
 "a network connection manager."
 msgstr ""
 
-#: gnu/services/networking.scm:1200
+#: gnu/services/networking.scm:1218
 msgid ""
 "Run @uref{https://wiki.gnome.org/Projects/ModemManager,\n"
 "ModemManager}, a modem management daemon that aims to simplify dialup\n"
 "networking."
 msgstr ""
 
-#: gnu/services/networking.scm:1290
+#: gnu/services/networking.scm:1308
 msgid ""
 "Run @uref{http://www.draisberghof.de/usb_modeswitch/,\n"
 "USB_ModeSwitch}, a mode switching tool for controlling USB devices with\n"
@@ -26785,28 +29392,38 @@ msgid ""
 "whatever the thing is supposed to do)."
 msgstr ""
 
-#: gnu/services/networking.scm:1357
+#: gnu/services/networking.scm:1379
 msgid ""
 "Run the WPA Supplicant daemon, a service that\n"
 "implements authentication, key negotiation and more for wireless networks."
 msgstr ""
 
-#: gnu/services/networking.scm:1419
+#: gnu/services/networking.scm:1440
+msgid ""
+"Run the @uref{https://w1.fi/hostapd/, hostapd} daemon for Wi-Fi access\n"
+"points and authentication servers."
+msgstr ""
+
+#: gnu/services/networking.scm:1474
+msgid "Run hostapd to simulate WiFi connectivity."
+msgstr ""
+
+#: gnu/services/networking.scm:1534
 msgid ""
 "Run @uref{http://www.openvswitch.org, Open vSwitch}, a multilayer virtual\n"
 "switch designed to enable massive network automation through programmatic\n"
 "extension."
 msgstr ""
 
-#: gnu/services/networking.scm:1465
+#: gnu/services/networking.scm:1580
 msgid "Run @command{iptables-restore}, setting up the specified rules."
 msgstr ""
 
-#: gnu/services/networking.scm:1534
+#: gnu/services/networking.scm:1649
 msgid "Run @command{nft}, setting up the specified ruleset."
 msgstr ""
 
-#: gnu/services/networking.scm:1635
+#: gnu/services/networking.scm:1750
 msgid ""
 "Run @url{https://pagekite.net/,PageKite}, a tunneling solution to make\n"
 "local servers publicly accessible on the web, even behind NATs and firewalls."
@@ -26818,7 +29435,7 @@ msgid ""
 "protocol."
 msgstr ""
 
-#: gnu/services/version-control.scm:374
+#: gnu/services/version-control.scm:379
 msgid ""
 "Setup @command{gitolite}, a Git hosting tool providing access over SSH..\n"
 "By default, the @code{git} user is used, but this is configurable.\n"
@@ -27051,9 +29668,6 @@ msgstr ""
 #~ msgid "imported file lacks a signature"
 #~ msgstr "Der importierten Datei fehlt eine Signatur"
 
-#~ msgid "Software speech synthesizer"
-#~ msgstr "Software-Sprachsynthesizer"
-
 #~ msgid ""
 #~ "eSpeak is a software speech synthesizer for English and\n"
 #~ "other languages.  eSpeak uses a \"formant synthesis\" method.  This allows many\n"
@@ -27062,8 +29676,5 @@ msgstr ""
 #~ "based on human speech recordings."
 #~ msgstr "eSpeak ist ein Software-Sprachsynthesizer für Englisch und andere Sprachen.  eSpeak benutzt eine „Formantensynthese“-Methode.  Dies ermöglicht es, viele Sprachen auf wenig Speicherplatz zu unterstützen.  Die Sprache ist klar und kann mit hohen Geschwindigkeiten benutzt werden, ist jedoch nicht so natürlich oder glatt wie bei größeren Synthesizern, die auf Aufnahmen menschlicher Sprache basieren."
 
-#~ msgid "Guile bindings to ncurses"
-#~ msgstr "Guile-Anbindungen zu Ncurses"
-
 #~ msgid "Collection of useful Guile Scheme modules"
 #~ msgstr "Sammlung nützlicher Guile-Scheme-Modulen"
diff --git a/po/packages/eo.po b/po/packages/eo.po
index db99c25c9c..9db0916334 100644
--- a/po/packages/eo.po
+++ b/po/packages/eo.po
@@ -1,42 +1,51 @@
 # Esperanto messages for GNU Guix
-# Copyright (C) 2013, 2014, 2015 Free Software Foundation, Inc.
+# Copyright (C) 2013, 2014, 2015, 2020 the Guix authors (msgids) 
 # This file is distributed under the same license as the guix package.
-# Felipe Castro <fefcas@gmail.com>, 2013, 2014, 2015.
+# Felipe Castro <fefcas@gmail.com>, 2013, 2014, 2015, 2020.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: guix-packages 0.8.1\n"
-"Report-Msgid-Bugs-To: ludo@gnu.org\n"
-"POT-Creation-Date: 2015-01-27 00:07+0100\n"
-"PO-Revision-Date: 2015-02-05 09:41-0300\n"
+"Project-Id-Version: guix-packages 1.2.0-pre1\n"
+"Report-Msgid-Bugs-To: bug-guix@gnu.org\n"
+"POT-Creation-Date: 2020-10-05 16:00+0200\n"
+"PO-Revision-Date: 2020-10-13 16:08-0300\n"
 "Last-Translator: Felipe Castro <fefcas@gmail.com>\n"
 "Language-Team: Esperanto <translation-team-eo@lists.sourceforge.net>\n"
 "Language: eo\n"
-"X-Bugs: Report translation errors to the Language-Team address.\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Poedit 1.6.10\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
+"X-Generator: Poedit 2.4.1\n"
 
-#: gnu/packages/abiword.scm:101
+#: gnu/packages/abiword.scm:115
 msgid "Word processing program"
 msgstr "Teksto-proceza programaro"
 
-#: gnu/packages/abiword.scm:103
+#. TRANSLATORS: Dear translator, We would like to inform you that package
+#. descriptions may occasionally include Texinfo markup.  Texinfo markup
+#. looks like "@code{rm -rf}", "@emph{important}", etc.  When translating,
+#. please leave markup as is.
+#: gnu/packages/abiword.scm:124
+#, fuzzy
+#| msgid ""
+#| "AbiWord is a word processing program.  It is rapidly becoming a state\n"
+#| "of the art word processor, with lots of features useful for your daily work,\n"
+#| "personal needs, or for just some good old typing fun."
 msgid ""
-"AbiWord is a word processing program.  It is rapidly becoming a state\n"
-"of the art word processor, with lots of features useful for your daily work,\n"
-"personal needs, or for just some good old typing fun."
+"AbiWord is a word processing program.  It is rapidly\n"
+"becoming a state of the art word processor, with lots of features useful for\n"
+"your daily work, personal needs, or for just some good old typing fun."
 msgstr ""
 "AbiWord estas teksto-procezilo.  Ĝi rapide progresas al stato-de-la-arta\n"
 "teksto-procezilo, kun multe da distingaĵoj utilaj por via ĉiutaga laboro,\n"
 "personaj bezonoj, aŭ simple por iom da bona amuziĝo per tajpado."
 
-#: gnu/packages/aspell.scm:42
+#: gnu/packages/aspell.scm:81 gnu/packages/libreoffice.scm:845
 msgid "Spell checker"
 msgstr "Literumilo"
 
-#: gnu/packages/aspell.scm:44
+#: gnu/packages/aspell.scm:83
 msgid ""
 "Aspell is a spell-checker which can be used either as a library or as\n"
 "a standalone program.  Notable features of Aspell include its full support of\n"
@@ -44,15 +53,1472 @@ msgid ""
 "dictionaries, including personal ones."
 msgstr ""
 
-#: gnu/packages/aspell.scm:84
+#: gnu/packages/aspell.scm:132
 msgid "This package provides a dictionary for the GNU Aspell spell checker."
 msgstr "Tiu ĉi pako provizas vortaron por la literumilo GNU Aspell."
 
-#: gnu/packages/backup.scm:87
+#: gnu/packages/aspell.scm:421 gnu/packages/libreoffice.scm:895
+#: gnu/packages/libreoffice.scm:968
+#, fuzzy
+#| msgid "This package provides a dictionary for the GNU Aspell spell checker."
+msgid ""
+"This package provides a dictionary for the Hunspell spell-checking\n"
+"library."
+msgstr "Tiu ĉi pako provizas vortaron por la literumilo GNU Aspell."
+
+#: gnu/packages/aspell.scm:439
+msgid "Hunspell dictionary for English"
+msgstr "Vortaro Hunspell por la Angla"
+
+#: gnu/packages/aspell.scm:443
+msgid "Hunspell dictionary for Australian English"
+msgstr ""
+
+#: gnu/packages/aspell.scm:447
+msgid "Hunspell dictionary for Canadian English"
+msgstr ""
+
+#: gnu/packages/aspell.scm:451
+msgid "Hunspell dictionary for British English, with -ise endings"
+msgstr ""
+
+#: gnu/packages/aspell.scm:455
+msgid "Hunspell dictionary for British English, with -ize endings"
+msgstr ""
+
+#: gnu/packages/aspell.scm:459
+msgid "Hunspell dictionary for United States English"
+msgstr ""
+
+#: gnu/packages/audio.scm:185
+msgid "Embedded Audio Acceleration"
+msgstr ""
+
+#: gnu/packages/audio.scm:186
+msgid ""
+"OpenSLES is a royalty-free, cross-platform,\n"
+"hardware-accelerated audio API tuned for embedded systems.  It provides a\n"
+"standardized, high-performance, low-latency method to access audio\n"
+"functionality for developers of native applications on embedded mobile\n"
+"multimedia devices, enabling straightforward cross-platform deployment of\n"
+"hardware and software audio capabilities, reducing implementation effort, and\n"
+"promoting the market for advanced audio."
+msgstr ""
+
+#: gnu/packages/audio.scm:221
+msgid "Software Synthesizer"
+msgstr ""
+
+#: gnu/packages/audio.scm:222
+msgid ""
+"WildMIDI is a simple software midi player which has a core\n"
+"softsynth library that can be use with other applications."
+msgstr ""
+
+#: gnu/packages/audio.scm:245
+msgid "WebRTC's Audio Processing Library"
+msgstr ""
+
+#: gnu/packages/audio.scm:246
+msgid ""
+"WebRTC-Audio-Processing library based on Google's\n"
+"implementation of WebRTC."
+msgstr ""
+
+#: gnu/packages/audio.scm:265
+msgid "VisualOn AAC Encoder"
+msgstr ""
+
+#: gnu/packages/audio.scm:266
+msgid ""
+"VO-AACENC is the VisualOn implementation of Advanced Audio\n"
+"Coding (AAC) encoder."
+msgstr ""
+
+#: gnu/packages/audio.scm:294
+#, fuzzy
+#| msgid "PDF rendering library"
+msgid "ALSA interfacing library"
+msgstr "PDF-bildiga biblioteko"
+
+#: gnu/packages/audio.scm:295
+msgid ""
+"TinyALSA is a small library to interface with ALSA in the\n"
+"Linux kernel."
+msgstr ""
+
+#: gnu/packages/audio.scm:339
+#, fuzzy
+#| msgid "PDF rendering library"
+msgid "Audio tracking library"
+msgstr "PDF-bildiga biblioteko"
+
+#: gnu/packages/audio.scm:340
+msgid ""
+"LibOpenMPT is a cross-platform C++ and C module playback\n"
+"library.  It is based on the player code of the Open ModPlug Tracker project."
+msgstr ""
+
+#: gnu/packages/audio.scm:371
+msgid "Open Fingerprint Architecture"
+msgstr ""
+
+#: gnu/packages/audio.scm:372
+msgid ""
+"LibOFA is an audio fingerprint library, created and provided\n"
+"by MusicIP."
+msgstr ""
+
+#: gnu/packages/audio.scm:395
+msgid "Freeware Advanced Audio Coder"
+msgstr ""
+
+#: gnu/packages/audio.scm:396
+msgid "FAAC is an MPEG-4 and MPEG-2 AAC encoder."
+msgstr ""
+
+#: gnu/packages/audio.scm:424
+msgid "MIDI to WAVE converter library"
+msgstr ""
+
+#: gnu/packages/audio.scm:425
+msgid ""
+"LibTiMidity is a MIDI to WAVE converter library that uses\n"
+"Gravis Ultrasound-compatible patch files to generate digital audio data from\n"
+"General MIDI files."
+msgstr ""
+
+#: gnu/packages/audio.scm:449 gnu/packages/audio.scm:468
+msgid "Adaptive Multi Rate Codec"
+msgstr ""
+
+#: gnu/packages/audio.scm:450
+msgid ""
+"VO-AMR is a library of VisualOn implementation of\n"
+"Adaptive Multi Rate Narrowband and Wideband (AMR-NB and AMR-WB) speech codec."
+msgstr ""
+
+#: gnu/packages/audio.scm:469
+msgid ""
+"OpenCore-AMR is a library of OpenCORE Framework\n"
+"implementation of Adaptive Multi Rate Narrowband and Wideband\n"
+"(AMR-NB and AMR-WB) speech codec."
+msgstr ""
+
+#: gnu/packages/audio.scm:528
+msgid "Realtime modular synthesizer and effect processor"
+msgstr ""
+
+#: gnu/packages/audio.scm:530
+msgid ""
+"AlsaModularSynth is a digital implementation of a classical analog\n"
+"modular synthesizer system.  It uses virtual control voltages to control the\n"
+"parameters of the modules.  The control voltages which control the frequency\n"
+"e.g. of the VCO (Voltage Controlled Oscillator) and VCF (Voltage Controlled\n"
+"Filter) modules follow the convention of 1V / Octave."
+msgstr ""
+
+#: gnu/packages/audio.scm:569
+#, fuzzy
+#| msgid "Library for handling PNG files"
+msgid "Library for audio labelling"
+msgstr "Biblioteko por trakti dosierojn PNG"
+
+#: gnu/packages/audio.scm:571
+msgid ""
+"aubio is a tool designed for the extraction of annotations from audio\n"
+"signals.  Its features include segmenting a sound file before each of its\n"
+"attacks, performing pitch detection, tapping the beat and producing MIDI\n"
+"streams from live audio."
+msgstr ""
+
+#: gnu/packages/audio.scm:695
+msgid "Digital audio workstation"
+msgstr ""
+
+#: gnu/packages/audio.scm:697
+msgid ""
+"Ardour is a multi-channel digital audio workstation, allowing users to\n"
+"record, edit, mix and master audio and MIDI projects.  It is targeted at audio\n"
+"engineers, musicians, soundtrack editors and composers."
+msgstr ""
+
+#: gnu/packages/audio.scm:836
+msgid "Software for recording and editing sounds"
+msgstr ""
+
+#: gnu/packages/audio.scm:838
+msgid ""
+"Audacity is a multi-track audio editor designed for recording, playing\n"
+"and editing digital audio.  It features digital effects and spectrum analysis\n"
+"tools."
+msgstr ""
+
+#: gnu/packages/audio.scm:881
+#, fuzzy
+#| msgid "Library implementing the vorbis audio format"
+msgid "Library to handle various audio file formats"
+msgstr "Biblioteko kiu realigas la aŭdformon vorbis"
+
+#: gnu/packages/audio.scm:882
+msgid ""
+"This is an open-source version of SGI's audiofile library.\n"
+"It provides a uniform programming interface for processing of audio data to\n"
+"and from audio files of many common formats.\n"
+"\n"
+"Currently supported file formats include AIFF/AIFF-C, WAVE, and NeXT/Sun\n"
+".snd/.au, BICS, and raw data.  Supported compression formats are currently\n"
+"G.711 mu-law and A-law."
+msgstr ""
+
+#: gnu/packages/audio.scm:922
+msgid "Pitch-correction LADSPA audio plugin"
+msgstr ""
+
+#: gnu/packages/audio.scm:924
+msgid ""
+"Autotalent is a LADSPA plugin for real-time pitch-correction.  Among its\n"
+"controls are allowable notes, strength of correction, LFO for vibrato and\n"
+"formant warp."
+msgstr ""
+
+#: gnu/packages/audio.scm:966
+msgid "Tonewheel organ synthesizer"
+msgstr ""
+
+#: gnu/packages/audio.scm:968
+msgid ""
+"AZR-3 is a port of the free VST plugin AZR-3.  It is a tonewheel organ\n"
+"with drawbars, distortion and rotating speakers.  The organ has three\n"
+"sections, two polyphonic sections with nine drawbars each and one monophonic\n"
+"bass section with five drawbars.  A standalone JACK application and LV2\n"
+"plugins are provided."
+msgstr ""
+
+#: gnu/packages/audio.scm:1005
+msgid "Audio plug-in pack for LV2 and JACK environments"
+msgstr ""
+
+#: gnu/packages/audio.scm:1007
+msgid ""
+"Calf Studio Gear is an audio plug-in pack for LV2 and JACK environments.\n"
+"The suite contains lots of effects (delay, modulation, signal processing,\n"
+"filters, equalizers, dynamics, distortion and mastering effects),\n"
+"instruments (SF2 player, organ simulator and a monophonic synthesizer) and\n"
+"tools (analyzer, mono/stereo tools, crossovers)."
+msgstr ""
+
+#: gnu/packages/audio.scm:1050
+msgid "LV2 port of the CAPS audio plugin collection"
+msgstr ""
+
+#: gnu/packages/audio.scm:1052
+msgid ""
+"LV2 port of CAPS, a collection of audio plugins comprising basic virtual\n"
+"guitar amplification and a small range of classic effects, signal processors and\n"
+"generators of mostly elementary and occasionally exotic nature."
+msgstr ""
+
+#: gnu/packages/audio.scm:1089
+msgid "LV2 plugins for live use"
+msgstr ""
+
+#: gnu/packages/audio.scm:1091
+msgid ""
+"The infamous plugins are a collection of LV2 audio plugins for live\n"
+"performances.  The plugins include a cellular automaton synthesizer, an\n"
+"envelope follower, distortion effects, tape effects and more."
+msgstr ""
+
+#: gnu/packages/audio.scm:1122
+msgid "The SWH Plugins package for the LADSPA plugin system"
+msgstr ""
+
+#: gnu/packages/audio.scm:1123
+msgid "This package provides Steve Harris's LADSPA plugins."
+msgstr ""
+
+#: gnu/packages/audio.scm:1163
+msgid "SWH plugins in LV2 format"
+msgstr ""
+
+#: gnu/packages/audio.scm:1165
+msgid ""
+"Swh-plugins-lv2 is a collection of audio plugins in LV2 format.  Plugin\n"
+"classes include: dynamics (compressor, limiter), time (delay, chorus,\n"
+"flanger), ringmodulator, distortion, filters, pitchshift, oscillators,\n"
+"emulation (valve, tape), bit fiddling (decimator, pointer-cast), etc."
+msgstr ""
+
+#: gnu/packages/audio.scm:1232
+msgid "Sound Synthesis with Physical Models"
+msgstr ""
+
+#: gnu/packages/audio.scm:1233
+msgid ""
+"Tao is a software package for sound synthesis using physical\n"
+"models.  It provides a virtual acoustic material constructed from masses and\n"
+"springs which can be used as the basis for building quite complex virtual\n"
+"musical instruments.  Tao comes with a synthesis language for creating and\n"
+"playing instruments and a C++ API for those who would like to use it as an\n"
+"object library."
+msgstr ""
+
+#: gnu/packages/audio.scm:1269
+msgid "Sound and music computing system"
+msgstr ""
+
+#: gnu/packages/audio.scm:1271
+msgid ""
+"Csound is a user-programmable and user-extensible sound processing\n"
+"language and software synthesizer."
+msgstr ""
+
+#: gnu/packages/audio.scm:1313 gnu/packages/audio.scm:3725
+msgid "C++ wrapper around the ALSA API"
+msgstr ""
+
+#: gnu/packages/audio.scm:1315
+msgid ""
+"clalsadrv is a C++ wrapper around the ALSA API simplifying access to\n"
+"ALSA PCM devices."
+msgstr ""
+
+#: gnu/packages/audio.scm:1352
+msgid "LADSPA ambisonics plugins"
+msgstr ""
+
+#: gnu/packages/audio.scm:1354
+msgid ""
+"The AMB plugins are a set of LADSPA ambisonics plugins, mainly to be\n"
+"used within Ardour.  Features include: mono and stereo to B-format panning,\n"
+"horizontal rotator, square, hexagon and cube decoders."
+msgstr ""
+
+#: gnu/packages/audio.scm:1389
+msgid "Chorus, phaser, and vintage high-pass and low-pass filters"
+msgstr ""
+
+#: gnu/packages/audio.scm:1391
+msgid ""
+"This package provides various LADSPA plugins.  @code{cs_chorus} and\n"
+"@code{cs_phaser} provide chorus and phaser effects, respectively;\n"
+"@code{mvclpf24} provides four implementations of the low-pass filter used in\n"
+"vintage Moog synthesizers; @code{mvchpf24} is based on the voltage-controlled\n"
+"high-pass filter by Robert Moog.  The filters attempt to accurately emulate\n"
+"the non-linear circuit elements of their original analog counterparts."
+msgstr ""
+
+#: gnu/packages/audio.scm:1429
+msgid "LADSPA reverb plugin"
+msgstr ""
+
+#: gnu/packages/audio.scm:1431
+msgid ""
+"This package provides a stereo reverb LADSPA plugin based on the\n"
+"well-known greverb."
+msgstr ""
+
+#: gnu/packages/audio.scm:1465
+msgid "LADSPA four-band parametric equalizer plugin"
+msgstr ""
+
+#: gnu/packages/audio.scm:1467
+msgid ""
+"This package provides a LADSPA plugin for a four-band parametric\n"
+"equalizer.  Each section has an active/bypass switch, frequency, bandwidth and\n"
+"gain controls.  There is also a global bypass switch and gain control.\n"
+"\n"
+"The 2nd order resonant filters are implemented using a Mitra-Regalia style\n"
+"lattice filter, which is stable even while parameters are being changed.\n"
+"\n"
+"All switches and controls are internally smoothed, so they can be used @code{live}\n"
+"without any clicks or zipper noises.  This makes this plugin suitable for use\n"
+"in systems that allow automation of plugin control ports, such as Ardour, or\n"
+"for stage use."
+msgstr ""
+
+#: gnu/packages/audio.scm:1510
+msgid "LADSPA stereo width plugin"
+msgstr ""
+
+#: gnu/packages/audio.scm:1512
+#, fuzzy
+#| msgid "This package provides tools for manipulating ext2/ext3/ext4 file systems."
+msgid ""
+"This package provides a LADSPA plugin to manipulate the stereo width of\n"
+"audio signals."
+msgstr "Tiu ĉi pako provizas ilojn por manipuli dosiersistemojn ext2/ext3/ext4."
+
+#: gnu/packages/audio.scm:1547
+msgid "LADSPA plugin for synthesizer oscillators"
+msgstr ""
+
+#: gnu/packages/audio.scm:1549
+msgid ""
+"The @code{blvco} LADSPA plugin provides three anti-aliased oscillators:\n"
+"\n"
+"@enumerate\n"
+"@item Pulse-VCO, a dirac pulse oscillator with flat amplitude spectrum\n"
+"@item Saw-VCO, a sawtooth oscillator with 1/F amplitude spectrum\n"
+"@item Rec-VCO, a square / rectangle oscillator\n"
+"@end enumerate\n"
+"\n"
+"\n"
+"All oscillators are low-pass filtered to provide waveforms similar to the\n"
+"output of analog synthesizers such as the Moog Voyager."
+msgstr ""
+
+#: gnu/packages/audio.scm:1591
+msgid "LADSPA Autowah effect plugin"
+msgstr ""
+
+#: gnu/packages/audio.scm:1593
+#, fuzzy
+#| msgid "This package provides a dictionary for the GNU Aspell spell checker."
+msgid ""
+"This package provides a LADSPA plugin for a Wah effect with envelope\n"
+"follower."
+msgstr "Tiu ĉi pako provizas vortaron por la literumilo GNU Aspell."
+
+#: gnu/packages/audio.scm:1627
+msgid "LADSPA stereo reverb plugin"
+msgstr ""
+
+#: gnu/packages/audio.scm:1629
+#, fuzzy
+#| msgid "This package provides an database interface for Perl."
+msgid "This package provides a LADSPA plugin for a stereo reverb effect."
+msgstr "Tiu ĉi pako provizas datumbazan interfacon por Perl."
+
+#: gnu/packages/audio.scm:1668
+msgid "SoundFont synthesizer"
+msgstr ""
+
+#: gnu/packages/audio.scm:1670
+msgid ""
+"FluidSynth is a real-time software synthesizer based on the SoundFont 2\n"
+"specifications.  FluidSynth reads and handles MIDI events from the MIDI input\n"
+"device.  It is the software analogue of a MIDI synthesizer.  FluidSynth can\n"
+"also play midifiles using a Soundfont."
+msgstr ""
+
+#: gnu/packages/audio.scm:1707
+msgid "MPEG-4 and MPEG-2 AAC decoder"
+msgstr ""
+
+#: gnu/packages/audio.scm:1709
+msgid "FAAD2 is an MPEG-4 and MPEG-2 AAC decoder supporting LC, Main, LTP, SBR, -PS, and DAB+."
+msgstr ""
+
+#: gnu/packages/audio.scm:1748
+msgid "Signal processing language"
+msgstr ""
+
+#: gnu/packages/audio.scm:1750
+msgid "Faust is a programming language for realtime audio signal processing."
+msgstr ""
+
+#: gnu/packages/audio.scm:1817
+msgid "GUS compatible patches for MIDI players"
+msgstr ""
+
+#: gnu/packages/audio.scm:1819
+msgid ""
+"FreePats is a project to create a free and open set of GUS compatible\n"
+"patches that can be used with softsynths such as Timidity and WildMidi."
+msgstr ""
+
+#: gnu/packages/audio.scm:1871
+msgid "Virtual guitar amplifier"
+msgstr ""
+
+#: gnu/packages/audio.scm:1872
+msgid ""
+"Guitarix is a virtual guitar amplifier running JACK.\n"
+"Guitarix takes the signal from your guitar as a mono-signal from your sound\n"
+"card.  The input is processed by a main amp and a rack-section.  Both can be\n"
+"routed separately and deliver a processed stereo-signal via JACK.  You may\n"
+"fill the rack with effects from more than 25 built-in modules including stuff\n"
+"from a simple noise gate to modulation effects like flanger, phaser or\n"
+"auto-wah."
+msgstr ""
+
+#: gnu/packages/audio.scm:1926
+msgid "Audio effects processor"
+msgstr ""
+
+#: gnu/packages/audio.scm:1928
+msgid ""
+"Rakarrack is a richly featured multi-effects processor emulating a\n"
+"guitar effects pedalboard.  Effects include compressor, expander, noise gate,\n"
+"equalizers, exciter, flangers, chorus, various delay and reverb effects,\n"
+"distortion modules and many more.  Most of the effects engine is built from\n"
+"modules found in the excellent software synthesizer ZynAddSubFX.  Presets and\n"
+"user interface are optimized for guitar, but Rakarrack processes signals in\n"
+"stereo while it does not apply internal band-limiting filtering, and thus is\n"
+"well suited to all musical instruments and vocals."
+msgstr ""
+
+#: gnu/packages/audio.scm:1975
+msgid "LV2 convolution reverb"
+msgstr ""
+
+#: gnu/packages/audio.scm:1977
+msgid ""
+"IR is a low-latency, real-time, high performance signal convolver\n"
+"especially for creating reverb effects.  It supports impulse responses with 1,\n"
+"2 or 4 channels, in any soundfile format supported by libsndfile."
+msgstr ""
+
+#: gnu/packages/audio.scm:2016
+msgid "JACK audio connection kit"
+msgstr ""
+
+#: gnu/packages/audio.scm:2018
+msgid ""
+"JACK is a low-latency audio server.  It can connect a number of\n"
+"different applications to an audio device, as well as allowing them to share\n"
+"audio between themselves.  JACK is different from other audio server efforts\n"
+"in that it has been designed from the ground up to be suitable for\n"
+"professional audio work.  This means that it focuses on two key areas:\n"
+"synchronous execution of all clients, and low latency operation."
+msgstr ""
+
+#: gnu/packages/audio.scm:2112
+msgid "Simple LV2 host for JACK"
+msgstr ""
+
+#: gnu/packages/audio.scm:2114
+msgid ""
+"Jalv is a simple but fully featured LV2 host for JACK.  It runs LV2\n"
+"plugins and exposes their ports as JACK ports, essentially making any LV2\n"
+"plugin function as a JACK application."
+msgstr ""
+
+#: gnu/packages/audio.scm:2158
+msgid "Linux Audio Developer's Simple Plugin API (LADSPA)"
+msgstr ""
+
+#: gnu/packages/audio.scm:2160
+msgid ""
+"LADSPA is a standard that allows software audio processors and effects\n"
+"to be plugged into a wide range of audio synthesis and recording packages."
+msgstr ""
+
+#: gnu/packages/audio.scm:2212
+msgid "Audio application session manager"
+msgstr ""
+
+#: gnu/packages/audio.scm:2214
+msgid ""
+"LASH is a session management system for audio applications.  It allows\n"
+"you to save and restore audio sessions consisting of multiple interconneced\n"
+"applications, restoring program state (i.e. loaded patches) and the\n"
+"connections between them."
+msgstr ""
+
+#: gnu/packages/audio.scm:2235
+msgid "Bauer stereophonic-to-binaural DSP"
+msgstr ""
+
+#: gnu/packages/audio.scm:2237
+msgid ""
+"The Bauer stereophonic-to-binaural DSP (bs2b) library and plugins is\n"
+"designed to improve headphone listening of stereo audio records.  Recommended\n"
+"for headphone prolonged listening to disable superstereo fatigue without\n"
+"essential distortions."
+msgstr ""
+
+#: gnu/packages/audio.scm:2260
+msgid "Bauer stereophonic-to-binaural DSP - LADSPA plugin"
+msgstr ""
+
+#: gnu/packages/audio.scm:2261
+msgid ""
+"The Bauer stereophonic-to-binaural DSP (bs2b) library and\n"
+"plugins is designed to improve headphone listening of stereo audio records.\n"
+"Recommended for headphone prolonged listening to disable superstereo fatigue\n"
+"without essential distortions.  This package contains a LADSPA plugin for use\n"
+"with applications that support them (e.g. PulseAudio)."
+msgstr ""
+
+#: gnu/packages/audio.scm:2285
+#, fuzzy
+#| msgid "Implementation of Scheme and related languages"
+msgid "Implementation of the Open Sound Control protocol"
+msgstr "Realigo de Scheme kaj rilataj program-lingvoj"
+
+#: gnu/packages/audio.scm:2287
+msgid ""
+"liblo is a lightweight library that provides an easy to use\n"
+"implementation of the Open Sound Control (@dfn{OSC}) protocol."
+msgstr ""
+
+#: gnu/packages/audio.scm:2311
+msgid "Common API for real-time audio I/O"
+msgstr ""
+
+#: gnu/packages/audio.scm:2313
+msgid ""
+"RtAudio is a set of C++ classes that provides a common API for real-time\n"
+"audio input/output.  It was designed with the following objectives:\n"
+"\n"
+"@itemize\n"
+"@item object-oriented C++ design\n"
+"@item simple, common API across all supported platforms\n"
+"@item only one source and one header file for easy inclusion in programming\n"
+"projects\n"
+"@item allow simultaneous multi-api support\n"
+"@item support dynamic connection of devices\n"
+"@item provide extensive audio device parameter control\n"
+"@item allow audio device capability probing\n"
+"@item automatic internal conversion for data format, channel number\n"
+"compensation, (de)interleaving, and byte-swapping\n"
+"@end itemize"
+msgstr ""
+
+#: gnu/packages/audio.scm:2348
+msgid "Bindings for PortAudio v19"
+msgstr ""
+
+#: gnu/packages/audio.scm:2349
+msgid ""
+"This package provides bindings for PortAudio v19, the\n"
+"cross-platform audio input/output stream library."
+msgstr ""
+
+#: gnu/packages/audio.scm:2374
+#, fuzzy
+#| msgid "Python bindings for cairo"
+msgid "Python bindings for liblo"
+msgstr "Bindoj de Python por Cairo"
+
+#: gnu/packages/audio.scm:2376
+msgid ""
+"Pyliblo is a Python wrapper for the liblo Open Sound Control (OSC)\n"
+"library.  It supports almost the complete functionality of liblo, allowing you\n"
+"to send and receive OSC messages using a nice and simple Python API.  Also\n"
+"included are the command line utilities @code{send_osc} and @code{dump_osc}."
+msgstr ""
+
+#: gnu/packages/audio.scm:2424
+msgid "Library to simplify use of LV2 plugins in applications"
+msgstr ""
+
+#: gnu/packages/audio.scm:2426
+msgid ""
+"Lilv is a C library to make the use of LV2 plugins as simple as possible\n"
+"for applications.  Lilv is the successor to SLV2, rewritten to be\n"
+"significantly faster and have minimal dependencies."
+msgstr ""
+
+#: gnu/packages/audio.scm:2452
+msgid "LV2 audio plugin specification"
+msgstr ""
+
+#: gnu/packages/audio.scm:2454
+msgid ""
+"LV2 is an open specification for audio plugins and host applications.\n"
+"At its core, LV2 is a simple stable interface, accompanied by extensions which\n"
+"add functionality to support the needs of increasingly powerful audio\n"
+"software."
+msgstr ""
+
+#: gnu/packages/audio.scm:2490
+msgid "LV2 port of the mda Piano plugin"
+msgstr ""
+
+#: gnu/packages/audio.scm:2491
+msgid "An LV2 port of the mda Piano VSTi."
+msgstr ""
+
+#: gnu/packages/audio.scm:2504
+msgid "LV2 port of the mda EPiano plugin"
+msgstr ""
+
+#: gnu/packages/audio.scm:2505
+msgid "An LV2 port of the mda EPiano VSTi."
+msgstr ""
+
+#: gnu/packages/audio.scm:2535
+msgid "C++ libraries for LV2 plugins"
+msgstr ""
+
+#: gnu/packages/audio.scm:2537
+msgid ""
+"The LV2 Toolkit (LVTK) contains libraries that wrap the LV2 C API and\n"
+"extensions into easy to use C++ classes.  It is the successor of\n"
+"lv2-c++-tools."
+msgstr ""
+
+#: gnu/packages/audio.scm:2578
+msgid "3D audio API"
+msgstr "3D-sona API"
+
+#: gnu/packages/audio.scm:2580
+msgid ""
+"OpenAL provides capabilities for playing audio in a virtual 3D\n"
+"environment.  Distance attenuation, doppler shift, and directional sound\n"
+"emitters are among the features handled by the API.  More advanced effects,\n"
+"including air absorption, occlusion, and environmental reverb, are available\n"
+"through the EFX extension.  It also facilitates streaming audio, multi-channel\n"
+"buffers, and audio capture."
+msgstr ""
+
+#: gnu/packages/audio.scm:2610
+msgid "Free implementation of OpenAL's ALUT standard"
+msgstr ""
+
+#: gnu/packages/audio.scm:2611
+msgid "freealut is the OpenAL Utility Toolkit."
+msgstr ""
+
+#: gnu/packages/audio.scm:2642
+msgid "Modular patch bay for audio and MIDI systems"
+msgstr ""
+
+#: gnu/packages/audio.scm:2644
+msgid ""
+"Patchage is a modular patch bay for audio and MIDI systems based on JACK\n"
+"and ALSA."
+msgstr ""
+
+#: gnu/packages/audio.scm:2672
+#, fuzzy
+#| msgid "Cross platform audio library"
+msgid "Portable C audio library"
+msgstr "Plursistema son-biblioteko"
+
+#: gnu/packages/audio.scm:2674
+msgid ""
+"The Portable C Audio Library (pcaudiolib) provides a C@tie{}API to\n"
+"different audio devices such as ALSA or PulseAudio."
+msgstr ""
+
+#: gnu/packages/audio.scm:2705
+msgid "Jack server control application"
+msgstr ""
+
+#: gnu/packages/audio.scm:2706
+msgid ""
+"Control a Jack server.  Allows you to plug various sources\n"
+"into various outputs and to start, stop and configure jackd"
+msgstr ""
+
+#: gnu/packages/audio.scm:2739
+msgid "Stereo audio recorder for JACK"
+msgstr ""
+
+#: gnu/packages/audio.scm:2740
+msgid ""
+"QJackRcd is a simple graphical stereo recorder for JACK\n"
+"supporting silence processing for automatic pause, file splitting, and\n"
+"background file post-processing."
+msgstr ""
+
+#: gnu/packages/audio.scm:2853
+msgid "Synthesis engine and programming language"
+msgstr ""
+
+#: gnu/packages/audio.scm:2854
+msgid ""
+"SuperCollider is a synthesis engine (@code{scsynth} or\n"
+"@code{supernova}) and programming language (@code{sclang}).  It can be used\n"
+"for experimenting with sound synthesis and algorithmic composition.\n"
+"\n"
+"SuperCollider requires jackd to be installed in your user profile and your\n"
+"user must be allowed to access the realtime features of the kernel.  Search\n"
+"for \"realtime\" in the index of the Guix manual to learn how to achieve this\n"
+"using Guix System."
+msgstr ""
+
+#: gnu/packages/audio.scm:2885
+msgid "Real-time audio utility library"
+msgstr ""
+
+#: gnu/packages/audio.scm:2887
+msgid ""
+"Raul (Real-time Audio Utility Library) is a C++ utility library primarily\n"
+"aimed at audio/musical applications."
+msgstr ""
+
+#: gnu/packages/audio.scm:2925
+#, fuzzy
+#| msgid "Compression and file packing utility"
+msgid "Sampling rate conversion and filter design utilities"
+msgstr "Utilaĵo por densigi kaj pakigi dosierojn"
+
+#: gnu/packages/audio.scm:2926
+msgid ""
+"This package contains the @command{resample} and\n"
+"@command{windowfilter} command line utilities.  The @command{resample} command\n"
+"allows changing the sampling rate of a sound file, while the\n"
+"@command{windowfilter} command allows to design Finite Impulse Response (FIR)\n"
+"filters using the so-called @emph{window method}."
+msgstr ""
+
+#: gnu/packages/audio.scm:2967
+msgid "Audio time-stretching and pitch-shifting library"
+msgstr ""
+
+#: gnu/packages/audio.scm:2969
+msgid ""
+"Rubber Band is a library and utility program that permits changing the\n"
+"tempo and pitch of an audio recording independently of one another."
+msgstr ""
+
+#: gnu/packages/audio.scm:2995
+#, fuzzy
+#| msgid "Cross platform audio library"
+msgid "Cross-platform MIDI library for C++"
+msgstr "Plursistema son-biblioteko"
+
+#: gnu/packages/audio.scm:2997
+msgid ""
+"RtMidi is a set of C++ classes (RtMidiIn, RtMidiOut, and API specific\n"
+"classes) that provide a common cross-platform API for realtime MIDI\n"
+"input/output."
+msgstr ""
+
+#: gnu/packages/audio.scm:3023
+msgid "Library for serialising LV2 atoms to/from RDF"
+msgstr ""
+
+#: gnu/packages/audio.scm:3025
+msgid ""
+"Sratom is a library for serialising LV2 atoms to/from RDF, particularly\n"
+"the Turtle syntax."
+msgstr ""
+
+#: gnu/packages/audio.scm:3051
+msgid "Library for loading and wrapping LV2 plugin UIs"
+msgstr ""
+
+#: gnu/packages/audio.scm:3053
+msgid ""
+"Suil is a lightweight C library for loading and wrapping LV2 plugin UIs.\n"
+"\n"
+"Suil makes it possible to load a UI of a toolkit in a host using another\n"
+"toolkit.  The API is designed such that hosts do not need to explicitly\n"
+"support specific toolkits – if Suil supports a particular toolkit, then UIs in\n"
+"that toolkit will work in all hosts that use Suil automatically.\n"
+"\n"
+"Suil currently supports every combination of Gtk, Qt, and X11."
+msgstr ""
+
+#: gnu/packages/audio.scm:3111
+msgid "Software synthesizer for playing MIDI files"
+msgstr ""
+
+#: gnu/packages/audio.scm:3113
+msgid ""
+"TiMidity++ is a software synthesizer.  It can play MIDI files by\n"
+"converting them into PCM waveform data; give it a MIDI data along with digital\n"
+"instrument data files, then it synthesizes them in real-time, and plays.  It\n"
+"can not only play sounds, but also can save the generated waveforms into hard\n"
+"disks as various audio file formats."
+msgstr ""
+
+#: gnu/packages/audio.scm:3151
+msgid "Modular and extensible audio processing system"
+msgstr ""
+
+#: gnu/packages/audio.scm:3153
+msgid ""
+"Vamp is an audio processing plugin system for plugins that extract\n"
+"descriptive information from audio data — typically referred to as audio\n"
+"analysis plugins or audio feature extraction plugins."
+msgstr ""
+
+#: gnu/packages/audio.scm:3193
+msgid "Library for time stretching and pitch scaling of audio"
+msgstr ""
+
+#: gnu/packages/audio.scm:3195
+msgid ""
+"SBSMS (Subband Sinusoidal Modeling Synthesis) is software for time\n"
+"stretching and pitch scaling of audio.  This package contains the library."
+msgstr ""
+
+#: gnu/packages/audio.scm:3230
+#, fuzzy
+#| msgid "Free lossless audio codec"
+msgid "Hybrid lossless audio codec"
+msgstr "Libera senperda sona kodeko"
+
+#: gnu/packages/audio.scm:3232
+msgid ""
+"WavPack is an audio compression format with lossless, lossy and hybrid\n"
+"compression modes.  This package contains command-line programs and library to\n"
+"encode and decode wavpack files."
+msgstr ""
+
+#: gnu/packages/audio.scm:3251
+msgid "Mod file playing library"
+msgstr ""
+
+#: gnu/packages/audio.scm:3253
+msgid ""
+"Libmodplug renders mod music files as raw audio data, for playing or\n"
+"conversion.  mod, .s3m, .it, .xm, and a number of lesser-known formats are\n"
+"supported.  Optional features include high-quality resampling, bass expansion,\n"
+"surround and reverb."
+msgstr ""
+
+#: gnu/packages/audio.scm:3272
+msgid "Module player library"
+msgstr ""
+
+#: gnu/packages/audio.scm:3274
+msgid ""
+"Libxmp is a library that renders module files to PCM data.  It supports\n"
+"over 90 mainstream and obscure module formats including Protracker (MOD),\n"
+"Scream Tracker 3 (S3M), Fast Tracker II (XM), and Impulse Tracker (IT)."
+msgstr ""
+
+#: gnu/packages/audio.scm:3297
+msgid "Extended module player"
+msgstr ""
+
+#: gnu/packages/audio.scm:3299
+msgid ""
+"Xmp is a portable module player that plays over 90 mainstream and\n"
+"obscure module formats, including Protracker MOD, Fasttracker II XM, Scream\n"
+"Tracker 3 S3M and Impulse Tracker IT files."
+msgstr ""
+
+#: gnu/packages/audio.scm:3325
+msgid "Audio processing library for changing tempo, pitch and playback rate"
+msgstr ""
+
+#: gnu/packages/audio.scm:3327
+msgid ""
+"SoundTouch is an audio processing library for changing the tempo, pitch\n"
+"and playback rates of audio streams or audio files.  It is intended for\n"
+"application developers writing sound processing tools that require tempo/pitch\n"
+"control functionality, or just for playing around with the sound effects."
+msgstr ""
+
+#: gnu/packages/audio.scm:3364
+msgid "Sound processing utility"
+msgstr ""
+
+#: gnu/packages/audio.scm:3366
+msgid ""
+"SoX (Sound eXchange) is a command line utility that can convert\n"
+"various formats of computer audio files to other formats.  It can also\n"
+"apply various effects to these sound files, and, as an added bonus, SoX\n"
+"can play and record audio files."
+msgstr ""
+
+#: gnu/packages/audio.scm:3389
+msgid "One-dimensional sample-rate conversion library"
+msgstr ""
+
+#: gnu/packages/audio.scm:3391
+msgid ""
+"The SoX Resampler library (libsoxr) performs one-dimensional sample-rate\n"
+"conversion.  It may be used, for example, to resample PCM-encoded audio."
+msgstr ""
+
+#: gnu/packages/audio.scm:3413
+msgid "MPEG Audio Layer 2 (MP2) encoder"
+msgstr ""
+
+#: gnu/packages/audio.scm:3415
+msgid ""
+"TwoLAME is an optimised MPEG Audio Layer 2 (MP2) encoder based on\n"
+"tooLAME by Mike Cheng, which in turn is based upon the ISO dist10 code and\n"
+"portions of LAME."
+msgstr ""
+
+#: gnu/packages/audio.scm:3473
+msgid "Audio I/O library"
+msgstr ""
+
+#: gnu/packages/audio.scm:3475
+msgid ""
+"PortAudio is a portable C/C++ audio I/O library providing a simple API\n"
+"to record and/or play sound using a callback function or a blocking read/write\n"
+"interface."
+msgstr ""
+
+#: gnu/packages/audio.scm:3502
+#, fuzzy
+#| msgid "Graphical user interface for chess programs"
+msgid "Graphical user interface for FluidSynth"
+msgstr "Grafikinterfacon por ŝak-programarojn"
+
+#: gnu/packages/audio.scm:3504
+msgid ""
+"Qsynth is a GUI front-end application for the FluidSynth SoundFont\n"
+"synthesizer written in C++."
+msgstr ""
+
+#: gnu/packages/audio.scm:3541
+msgid "Networked audio system"
+msgstr ""
+
+#: gnu/packages/audio.scm:3543
+msgid ""
+"RSound allows you to send audio from an application and transfer it\n"
+"directly to a different computer on your LAN network.  It is an audio daemon\n"
+"with a much different focus than most other audio daemons."
+msgstr ""
+
+#: gnu/packages/audio.scm:3574
+msgid "JACK audio frequency analyzer and display"
+msgstr ""
+
+#: gnu/packages/audio.scm:3576
+msgid ""
+"XJackFreak is an audio analysis and equalizing tool for the Jack Audio\n"
+"Connection Kit.  It can display the FFT of any input, modify it and output the\n"
+"result."
+msgstr ""
+
+#: gnu/packages/audio.scm:3626
+msgid "Fast, partitioned convolution engine library"
+msgstr ""
+
+#: gnu/packages/audio.scm:3628
+msgid ""
+"Zita convolver is a C++ library providing a real-time convolution\n"
+"engine."
+msgstr ""
+
+#: gnu/packages/audio.scm:3678
+#, fuzzy
+#| msgid "Library for accessing zip files"
+msgid "C++ library for resampling audio signals"
+msgstr "Biblioteko por aliri zip-dosierojn"
+
+#: gnu/packages/audio.scm:3680
+msgid ""
+"Libzita-resampler is a C++ library for resampling audio signals.  It is\n"
+"designed to be used within a real-time processing context, to be fast, and to\n"
+"provide high-quality sample rate conversion."
+msgstr ""
+
+#: gnu/packages/audio.scm:3727
+msgid ""
+"Zita-alsa-pcmi is a C++ wrapper around the ALSA API.  It provides easy\n"
+"access to ALSA PCM devices, taking care of the many functions required to\n"
+"open, initialise and use a hw: device in mmap mode, and providing floating\n"
+"point audio data."
+msgstr ""
+
+#: gnu/packages/audio.scm:3753
+msgid "Cue and toc file parsers and utilities"
+msgstr ""
+
+#: gnu/packages/audio.scm:3754
+msgid ""
+"Cuetools is a set of programs that are useful for manipulating\n"
+"and using CUE sheet (cue) files and Table of Contents (toc) files.  CUE and TOC\n"
+"files are a way to represent the layout of a data or audio CD in a\n"
+"machine-readable ASCII format."
+msgstr ""
+
+#: gnu/packages/audio.scm:3773
+msgid "WAVE audio data processing tool"
+msgstr ""
+
+#: gnu/packages/audio.scm:3774
+msgid ""
+"shntool is a multi-purpose WAVE data processing and reporting\n"
+"utility.  File formats are abstracted from its core, so it can process any file\n"
+"that contains WAVE data, compressed or not---provided there exists a format\n"
+"module to handle that particular file type.  It can also generate CUE files, and\n"
+"use them split WAVE data into multiple files."
+msgstr ""
+
+#: gnu/packages/audio.scm:3813
+msgid "DTS Coherent Acoustics decoder"
+msgstr ""
+
+#: gnu/packages/audio.scm:3814
+msgid ""
+"Dcadec is a DTS Coherent Acoustics surround sound decoder\n"
+"with support for HD extensions."
+msgstr ""
+
+#: gnu/packages/audio.scm:3850
+msgid "Tool to adjust loudness of media files"
+msgstr ""
+
+#: gnu/packages/audio.scm:3852
+msgid ""
+"BS1770GAIN is a loudness scanner compliant with ITU-R BS.1770 and its\n"
+"flavors EBU R128, ATSC A/85, and ReplayGain 2.0.  It helps normalizing the\n"
+"loudness of audio and video files to the same level."
+msgstr ""
+
+#: gnu/packages/audio.scm:3883
+msgid "Lightweight audio filtering library"
+msgstr ""
+
+#: gnu/packages/audio.scm:3884
+msgid ""
+"An easy to use audio filtering library made from webrtc\n"
+"code, used in @code{libtoxcore}."
+msgstr ""
+
+#: gnu/packages/audio.scm:3936
+#, fuzzy
+#| msgid "Multi-format archive and compression library"
+msgid "GSM 06.10 lossy speech compression library"
+msgstr "Mult-forma biblioteko por arĥivi kaj densigi"
+
+#: gnu/packages/audio.scm:3937
+msgid ""
+"This C library provides an encoder and a decoder for the GSM\n"
+"06.10 RPE-LTP lossy speech compression algorithm."
+msgstr ""
+
+#: gnu/packages/audio.scm:3958
+msgid "ALSA wrappers for Python"
+msgstr ""
+
+#: gnu/packages/audio.scm:3960
+msgid ""
+"This package contains wrappers for accessing the ALSA API from Python.\n"
+"It is currently fairly complete for PCM devices, and has some support for\n"
+"mixers."
+msgstr ""
+
+#: gnu/packages/audio.scm:4007
+msgid "Bluetooth ALSA backend"
+msgstr ""
+
+#: gnu/packages/audio.scm:4008
+msgid ""
+"This project is a rebirth of a direct integration between\n"
+"Bluez and ALSA.  Since Bluez >= 5, the build-in integration has been removed\n"
+"in favor of 3rd party audio applications.  From now on, Bluez acts as a\n"
+"middleware between an audio application, which implements Bluetooth audio\n"
+"profile, and a Bluetooth audio device.  BlueALSA registers all known Bluetooth\n"
+"audio profiles in Bluez, so in theory every Bluetooth device (with audio\n"
+"capabilities) can be connected.  In order to access the audio stream, one has\n"
+"to connect to the ALSA PCM device called @code{bluealsa}.  The device is based\n"
+"on the ALSA software PCM plugin."
+msgstr ""
+
+#: gnu/packages/audio.scm:4071
+#, fuzzy
+#| msgid "Stream editor"
+msgid "Sound editor"
+msgstr "Flu-redaktilo"
+
+#: gnu/packages/audio.scm:4074
+msgid ""
+"Snd is a sound editor modelled loosely after Emacs.  It can be\n"
+"customized and extended using either the s7 Scheme implementation (included in\n"
+"the Snd sources), Ruby, or Forth."
+msgstr ""
+
+#: gnu/packages/audio.scm:4103
+msgid "LV2 plugin for broadband noise reduction"
+msgstr ""
+
+#: gnu/packages/audio.scm:4104
+msgid ""
+"Noise Repellent is an LV2 plugin to reduce noise.  It has\n"
+"the following features:\n"
+"\n"
+"@enumerate\n"
+"@item Spectral gating and spectral subtraction suppression rule\n"
+"@item Adaptive and manual noise thresholds estimation\n"
+"@item Adjustable noise floor\n"
+"@item Adjustable offset of thresholds to perform over-subtraction\n"
+"@item Time smoothing and a masking estimation to reduce artifacts\n"
+"@item Basic onset detector to avoid transients suppression\n"
+"@item Whitening of the noise floor to mask artifacts and to recover higher\n"
+"  frequencies\n"
+"@item Option to listen to the residual signal\n"
+"@item Soft bypass\n"
+"@item Noise profile saved with the session\n"
+"@end enumerate\n"
+msgstr ""
+
+#: gnu/packages/audio.scm:4163
+msgid "Command-line audio visualizer"
+msgstr ""
+
+#: gnu/packages/audio.scm:4164
+msgid ""
+"@code{cli-visualizer} displays fast-Fourier\n"
+"transforms (FFTs) of the sound being played, as well as other graphical\n"
+"representations."
+msgstr ""
+
+#: gnu/packages/audio.scm:4217
+msgid "Console audio visualizer for ALSA, MPD, and PulseAudio"
+msgstr ""
+
+#: gnu/packages/audio.scm:4218
+msgid ""
+"C.A.V.A. is a bar audio spectrum visualizer for the terminal\n"
+"using ALSA, MPD, PulseAudio, or a FIFO buffer as its input."
+msgstr ""
+
+#: gnu/packages/audio.scm:4251
+msgid "Pro-quality GM soundfont"
+msgstr ""
+
+#: gnu/packages/audio.scm:4252
+msgid "Fluid-3 is Frank Wen's pro-quality GM soundfont."
+msgstr ""
+
+#: gnu/packages/audio.scm:4275
+msgid "Fraunhofer FDK AAC library"
+msgstr ""
+
+#: gnu/packages/audio.scm:4276
+msgid ""
+"FDK is a library for encoding and decoding Advanced Audio\n"
+"Coding (AAC) format audio, developed by Fraunhofer IIS, and included as part of\n"
+"Android.  It supports several Audio Object Types including MPEG-2 and MPEG-4 AAC\n"
+"LC, HE-AAC (AAC LC + SBR), HE-AACv2 (LC + SBR + PS) as well AAC-LD (low delay)\n"
+"and AAC-ELD (enhanced low delay) for real-time communication.  The encoding\n"
+"library supports sample rates up to 96 kHz and up to eight channels (7.1\n"
+"                                                                     surround)."
+msgstr ""
+
+#: gnu/packages/audio.scm:4315
+msgid "Audio editing and playback for OpenShot"
+msgstr ""
+
+#: gnu/packages/audio.scm:4316
+msgid ""
+"OpenShot Audio Library (libopenshot-audio) allows\n"
+"high-quality editing and playback of audio, and is based on the JUCE\n"
+"library."
+msgstr ""
+
+#: gnu/packages/audio.scm:4342
+#, fuzzy
+#| msgid "Full chess implementation"
+msgid "XAudio reimplementation"
+msgstr "Kompleta realigo de ŝako"
+
+#: gnu/packages/audio.scm:4343
+msgid ""
+"FAudio is an XAudio reimplementation that focuses solely on\n"
+"developing fully accurate DirectX Audio runtime libraries."
+msgstr ""
+
+#: gnu/packages/audio.scm:4368
+msgid "Binaural beat synthesizer"
+msgstr ""
+
+#: gnu/packages/audio.scm:4369
+msgid ""
+"Gnaural is a programmable auditory binaural beat synthesizer\n"
+"intended to be used for brainwave entrainment.  Gnaural supports creation of\n"
+"binaural beat tracks of different frequencies and exporting of tracks into\n"
+"different audio formats.  Gnaural can also be linked over the internet with\n"
+"other Gnaural instances, allowing synchronous sessions between many users."
+msgstr ""
+
+#: gnu/packages/audio.scm:4403
+msgid "Live audio streamer"
+msgstr ""
+
+#: gnu/packages/audio.scm:4404
+msgid ""
+"DarkIce is a live audio streamer.  It takes audio input from\n"
+"a sound card, encodes it into Ogg Vorbis and/or mp3, and sends the audio\n"
+"stream to one or more IceCast and/or ShoutCast servers."
+msgstr ""
+
+#: gnu/packages/audio.scm:4428
+msgid "Encode or decode Linear/Longitudinal Time Code (LTC) audio"
+msgstr ""
+
+#: gnu/packages/audio.scm:4429
+msgid ""
+"Libltc is a POSIX-C Library for handling\n"
+"@dfn{Linear/Longitudinal Time Code} (LTC) data."
+msgstr ""
+
+#: gnu/packages/audio.scm:4461
+#, fuzzy
+#| msgid "Free lossless audio codec"
+msgid "TTA lossless audio encoder"
+msgstr "Libera senperda sona kodeko"
+
+#: gnu/packages/audio.scm:4463
+msgid ""
+"TTA performs lossless compression on multichannel 8,16 and 24 bits\n"
+"data of the Wav audio files.  Being lossless means that no data-\n"
+"quality is lost in the compression - when uncompressed, the data will\n"
+"be identical to the original.  The compression ratios of TTA depend on\n"
+"the type of music file being compressed, but the compression size\n"
+"will generally range between 30% - 70% of the original.  TTA format\n"
+"supports both of ID3v1/v2 and APEv2 tags."
+msgstr ""
+
+#: gnu/packages/audio.scm:4497
+msgid "C library for real-time audio input and output"
+msgstr ""
+
+#: gnu/packages/audio.scm:4498
+msgid ""
+"@code{libsoundio} is a C library providing audio input and\n"
+"output.  The API is suitable for real-time software such as digital audio\n"
+"workstations as well as consumer software such as music players."
+msgstr ""
+
+#: gnu/packages/audio.scm:4523
+msgid "Small GUI toolkit"
+msgstr ""
+
+#: gnu/packages/audio.scm:4524
+msgid ""
+"Redkite is a small GUI toolkit developed in C++17 and\n"
+"inspired from other well known GUI toolkits such as Qt and GTK.  It is\n"
+"minimal on purpose and is intended to be statically linked to applications,\n"
+"therefore satisfying any requirements they may have to be self contained,\n"
+"as is the case with audio plugins."
+msgstr ""
+
+#: gnu/packages/audio.scm:4595
+msgid "Audio plugin host"
+msgstr ""
+
+#: gnu/packages/audio.scm:4596
+msgid ""
+"Carla is a modular audio plugin host, with features like\n"
+"transport control, automation of parameters via MIDI CC and remote control\n"
+"over OSC.  Carla currently supports LADSPA (including LRDF), DSSI, LV2, VST2,\n"
+"and VST3 plugin formats, plus SF2 and SFZ file support.  It uses JACK as the\n"
+"default and preferred audio driver but also supports native drivers like ALSA."
+msgstr ""
+
+#: gnu/packages/audio.scm:4631
+msgid "Multitrack audio processing"
+msgstr ""
+
+#: gnu/packages/audio.scm:4632
+msgid ""
+"Ecasound is a software package designed for multitrack audio\n"
+"processing. It can be used for simple tasks like audio playback, recording and\n"
+"format conversions, as well as for multitrack effect processing, mixing,\n"
+"recording and signal recycling. Ecasound supports a wide range of audio inputs,\n"
+"outputs and effect algorithms. Effects and audio objects can be combined in\n"
+"various ways, and their parameters can be controlled by operator objects like\n"
+"oscillators and MIDI-CCs. A versatile console mode user-interface is included\n"
+"in the package."
+msgstr ""
+
+#: gnu/packages/audio.scm:4669
+#, fuzzy
+#| msgid "Library for handling PNG files"
+msgid "Library for reading and resampling audio files"
+msgstr "Biblioteko por trakti dosierojn PNG"
+
+#: gnu/packages/audio.scm:4670
+msgid ""
+"libaudec is a wrapper library over ffmpeg, sndfile and\n"
+"libsamplerate for reading and resampling audio files, based on Robin Gareus'\n"
+"@code{audio_decoder} code."
+msgstr ""
+
+#: gnu/packages/audio.scm:4701
+msgid "LV2 plugin lint tool"
+msgstr ""
+
+#: gnu/packages/audio.scm:4702
+msgid ""
+"lv2lint is an LV2 lint-like tool that checks whether a\n"
+"given plugin and its UI(s) match up with the provided metadata and adhere\n"
+"to well-known best practices."
+msgstr ""
+
+#: gnu/packages/audio.scm:4736
+msgid "Documentation generator for LV2 plugins"
+msgstr ""
+
+#: gnu/packages/audio.scm:4738
+msgid ""
+"lv2toweb allows the user to create an xhtml page with information\n"
+"about the given LV2 plugin, provided that the plugin and its UI(s) match up\n"
+"with the provided metadata and adhere to well-known best practices."
+msgstr ""
+
+#: gnu/packages/audio.scm:4764
+msgid "GUI toolkit for LV2 plugins"
+msgstr ""
+
+#: gnu/packages/audio.scm:4765
+msgid ""
+"ZToolkit (Ztk) is a cross-platform GUI toolkit heavily\n"
+"inspired by GTK.  It handles events and low level drawing on behalf of\n"
+"the user and provides a high-level API for managing the UI and custom\n"
+"widgets.  ZToolkit is written in C and was created to be used for building\n"
+"audio plugin UIs, where the dependencies often need to be kept to a\n"
+"minimum."
+msgstr ""
+
+#: gnu/packages/audio.scm:4797
+msgid "Instrument file software library"
+msgstr ""
+
+#: gnu/packages/audio.scm:4799
+msgid ""
+"libInstPatch is a library for processing digital sample based MIDI\n"
+"instrument \"patch\" files.  The types of files libInstPatch supports are used\n"
+"for creating instrument sounds for wavetable synthesis.  libInstPatch provides\n"
+"an object framework (based on GObject) to load patch files, which can then be\n"
+"edited, converted, compressed and saved."
+msgstr ""
+
+#: gnu/packages/audio.scm:4815
+msgid "ZToolkit with SVG support"
+msgstr ""
+
+#: gnu/packages/audio.scm:4842
+msgid "Digital signal processing library"
+msgstr ""
+
+#: gnu/packages/audio.scm:4843
+msgid ""
+"The LSP DSP library provides a set of functions that perform\n"
+"SIMD-optimized computing on several hardware architectures.  All functions\n"
+"currently operate on IEEE-754 single-precision floating-point numbers."
+msgstr ""
+
+#: gnu/packages/audio.scm:4874
+msgid "Speech codec"
+msgstr ""
+
+#: gnu/packages/audio.scm:4876
+msgid ""
+"Codec 2 is a speech codec designed for communications quality speech\n"
+"between 700 and 3200 bit/s.  The main application is low bandwidth HF/VHF\n"
+"digital radio."
+msgstr ""
+
+#: gnu/packages/audio.scm:4974
+msgid "Synchronize musical beat, tempo, and phase across multiple applications"
+msgstr ""
+
+#: gnu/packages/audio.scm:4976
+msgid ""
+"Ableton Link is a C++ library that synchronizes musical beat, tempo, and phase\n"
+"across multiple applications running on one or more devices.  Applications on devices\n"
+"connected to a local network discover each other automatically and form a musical\n"
+"session in which each participant can perform independently: anyone can start or stop\n"
+"while still staying in time."
+msgstr ""
+
+#: gnu/packages/backup.scm:138
 msgid "Encrypted backup using rsync algorithm"
 msgstr "Ĉifrita savkopio uzanta algoritmon rsync"
 
-#: gnu/packages/backup.scm:89
+#: gnu/packages/backup.scm:140
 msgid ""
 "Duplicity backs up directories by producing encrypted tar-format volumes\n"
 "and uploading them to a remote or local file server.  Because duplicity uses\n"
@@ -62,23 +1528,39 @@ msgid ""
 "spying and/or modification by the server."
 msgstr ""
 
-#: gnu/packages/backup.scm:123
+#: gnu/packages/backup.scm:165
+msgid "File verification and repair tools"
+msgstr ""
+
+#: gnu/packages/backup.scm:166
+msgid ""
+"Par2cmdline uses Reed-Solomon error-correcting codes to\n"
+"generate and verify PAR2 recovery files.  These files can be distributed\n"
+"alongside the source files or stored together with back-ups to protect against\n"
+"transmission errors or @dfn{bit rot}, the degradation of storage media over\n"
+"time.\n"
+"Unlike a simple checksum, PAR2 doesn't merely detect errors: as long as the\n"
+"damage isn't too extensive (and smaller than the size of the recovery file), it\n"
+"can even repair them."
+msgstr ""
+
+#: gnu/packages/backup.scm:203
 msgid "Simple incremental backup tool"
 msgstr "Simpla alkrementa savkopiilo"
 
-#: gnu/packages/backup.scm:125
+#: gnu/packages/backup.scm:205
 msgid ""
-"Hdup2 is a backup utilty, its aim is to make backup really simple.  The\n"
+"Hdup2 is a backup utility, its aim is to make backup really simple.  The\n"
 "backup scheduling is done by means of a cron job.  It supports an\n"
 "include/exclude mechanism, remote backups, encrypted backups and split\n"
 "backups (called chunks) to allow easy burning to CD/DVD."
 msgstr ""
 
-#: gnu/packages/backup.scm:178
+#: gnu/packages/backup.scm:300
 msgid "Multi-format archive and compression library"
 msgstr "Mult-forma biblioteko por arĥivi kaj densigi"
 
-#: gnu/packages/backup.scm:180
+#: gnu/packages/backup.scm:302
 msgid ""
 "Libarchive provides a flexible interface for reading and writing\n"
 "archives in various formats such as tar and cpio.  Libarchive also supports\n"
@@ -89,23 +1571,23 @@ msgid ""
 "random access nor for in-place modification."
 msgstr ""
 
-#: gnu/packages/backup.scm:243
+#: gnu/packages/backup.scm:370
 msgid "Provide a list of files to backup"
 msgstr "Provizas liston da dosieroj por savkopii"
 
-#: gnu/packages/backup.scm:245
+#: gnu/packages/backup.scm:372
 msgid ""
 "Rdup is a utility inspired by rsync and the plan9 way of doing backups.\n"
 "Rdup itself does not backup anything, it only print a list of absolute\n"
-"filenames to standard output.  Auxiliary scripts are needed that act on this\n"
+"file names to standard output.  Auxiliary scripts are needed that act on this\n"
 "list and implement the backup strategy."
 msgstr ""
 
-#: gnu/packages/backup.scm:275
+#: gnu/packages/backup.scm:402
 msgid "Tar-compatible archiver"
 msgstr "Arĥivilo kongrua al tar"
 
-#: gnu/packages/backup.scm:277
+#: gnu/packages/backup.scm:404
 msgid ""
 "Btar is a tar-compatible archiver which allows arbitrary compression and\n"
 "ciphering, redundancy, differential backup, indexed extraction, multicore\n"
@@ -113,11 +1595,11 @@ msgid ""
 "errors."
 msgstr ""
 
-#: gnu/packages/backup.scm:305
+#: gnu/packages/backup.scm:430
 msgid "Local/remote mirroring+incremental backup"
 msgstr "Loka/demalproksima spegula+alkrementa savkopio"
 
-#: gnu/packages/backup.scm:307
+#: gnu/packages/backup.scm:432
 msgid ""
 "Rdiff-backup backs up one directory to another, possibly over a network.\n"
 "The target directory ends up a copy of the source directory, but extra reverse\n"
@@ -129,14 +1611,169 @@ msgid ""
 "rdiff-backup can operate in a bandwidth efficient manner over a pipe, like\n"
 "rsync.  Thus you can use rdiff-backup and ssh to securely back a hard drive up\n"
 "to a remote location, and only the differences will be transmitted.  Finally,\n"
-"rdiff-backup is easy to use and settings have sensical defaults."
+"rdiff-backup is easy to use and settings have sensible defaults."
 msgstr ""
 
-#: gnu/packages/base.scm:57
+#: gnu/packages/backup.scm:477
+msgid "Deduplicating snapshot backup utility based on rsync"
+msgstr ""
+
+#: gnu/packages/backup.scm:478
+msgid ""
+"rsnapshot is a file system snapshot utility based on rsync.\n"
+"rsnapshot makes it easy to make periodic snapshots of local machines, and\n"
+"remote machines over SSH.  To reduce the disk space required for each backup,\n"
+"rsnapshot uses hard links to deduplicate identical files."
+msgstr ""
+
+#: gnu/packages/backup.scm:558
+msgid "Tools & library for data backup and distributed storage"
+msgstr ""
+
+#: gnu/packages/backup.scm:560
+msgid ""
+"Libchop is a set of utilities and library for data backup and\n"
+"distributed storage.  Its main application is @command{chop-backup}, an\n"
+"encrypted backup program that supports data integrity checks, versioning,\n"
+"distribution among several sites, selective sharing of stored data, adaptive\n"
+"compression, and more.  The library itself implements storage techniques such\n"
+"as content-addressable storage, content hash keys, Merkle trees, similarity\n"
+"detection, and lossless compression."
+msgstr ""
+
+#: gnu/packages/backup.scm:689
+msgid "Deduplicated, encrypted, authenticated and compressed backups"
+msgstr ""
+
+#: gnu/packages/backup.scm:690
+msgid ""
+"Borg is a deduplicating backup program.  Optionally, it\n"
+"supports compression and authenticated encryption.  The main goal of Borg is to\n"
+"provide an efficient and secure way to backup data.  The data deduplication\n"
+"technique used makes Borg suitable for daily backups since only changes are\n"
+"stored.  The authenticated encryption technique makes it suitable for backups\n"
+"to not fully trusted targets.  Borg is a fork of Attic."
+msgstr ""
+
+#: gnu/packages/backup.scm:734
+msgid "Deduplicating backup program"
+msgstr ""
+
+#: gnu/packages/backup.scm:735
+msgid ""
+"Attic is a deduplicating backup program.  The main goal of\n"
+"Attic is to provide an efficient and secure way to backup data.  The data\n"
+"deduplication technique used makes Attic suitable for daily backups since only\n"
+"changes are stored."
+msgstr ""
+
+#: gnu/packages/backup.scm:765
+msgid "WIM file manipulation library and utilities"
+msgstr ""
+
+#: gnu/packages/backup.scm:766
+msgid ""
+"wimlib is a C library and set of command-line utilities for\n"
+"creating, modifying, extracting, and mounting archives in the Windows Imaging\n"
+"Format (@dfn{WIM files}).  It can capture and apply WIMs directly from and to\n"
+"NTFS volumes using @code{ntfs-3g}, preserving NTFS-specific attributes."
+msgstr ""
+
+#: gnu/packages/backup.scm:876
+msgid "Fast, disk based, rotating network backup system"
+msgstr ""
+
+#: gnu/packages/backup.scm:878
+msgid ""
+"With dirvish you can maintain a set of complete images of your\n"
+"file systems with unattended creation and expiration.  A dirvish backup vault\n"
+"is like a time machine for your data. "
+msgstr ""
+
+#: gnu/packages/backup.scm:969
+msgid "Backup program with multiple revisions, encryption and more"
+msgstr ""
+
+#: gnu/packages/backup.scm:970
+msgid ""
+"Restic is a program that does backups right and was designed\n"
+"with the following principles in mind:\n"
+"\n"
+"@itemize\n"
+"@item Easy: Doing backups should be a frictionless process, otherwise you\n"
+"might be tempted to skip it.  Restic should be easy to configure and use, so\n"
+"that, in the event of a data loss, you can just restore it.  Likewise,\n"
+"restoring data should not be complicated.\n"
+"\n"
+"@item Fast: Backing up your data with restic should only be limited by your\n"
+"network or hard disk bandwidth so that you can backup your files every day.\n"
+"Nobody does backups if it takes too much time.  Restoring backups should only\n"
+"transfer data that is needed for the files that are to be restored, so that\n"
+"this process is also fast.\n"
+"\n"
+"@item Verifiable: Much more important than backup is restore, so restic\n"
+"enables you to easily verify that all data can be restored.  @item Secure:\n"
+"Restic uses cryptography to guarantee confidentiality and integrity of your\n"
+"data.  The location the backup data is stored is assumed not to be a trusted\n"
+"environment (e.g.  a shared space where others like system administrators are\n"
+"able to access your backups).  Restic is built to secure your data against\n"
+"such attackers.\n"
+"\n"
+"@item Efficient: With the growth of data, additional snapshots should only\n"
+"take the storage of the actual increment.  Even more, duplicate data should be\n"
+"de-duplicated before it is actually written to the storage back end to save\n"
+"precious backup space.\n"
+"@end itemize"
+msgstr ""
+
+#: gnu/packages/backup.scm:1023
+msgid "Versatile deduplicating backup tool"
+msgstr ""
+
+#: gnu/packages/backup.scm:1025
+msgid ""
+"ZBackup is a globally-deduplicating backup tool, based on the\n"
+"ideas found in Rsync.  Feed a large @file{.tar} into it, and it will\n"
+"store duplicate regions of it only once, then compress and optionally\n"
+"encrypt the result.  Feed another @file{.tar} file, and it will also\n"
+"re-use any data found in any previous backups.  This way only new\n"
+"changes are stored, and as long as the files are not very different,\n"
+"the amount of storage required is very low.  Any of the backup files\n"
+"stored previously can be read back in full at any time.  The program\n"
+"is format-agnostic, so you can feed virtually any files to it."
+msgstr ""
+
+#: gnu/packages/backup.scm:1062
+msgid "Ext2/3/4 file system dump/restore utilities"
+msgstr ""
+
+#: gnu/packages/backup.scm:1063
+msgid ""
+"Dump examines files in a file system, determines which ones\n"
+"need to be backed up, and copies those files to a specified disk, tape or\n"
+"other storage medium.  Subsequent incremental backups can then be layered on\n"
+"top of the full backup.  The restore command performs the inverse function of\n"
+"dump; it can restore a full backup of a file system.  Single files and\n"
+"directory subtrees may also be restored from full or partial backups in\n"
+"interactive mode."
+msgstr ""
+
+#: gnu/packages/backup.scm:1109
+msgid "Differential backup and restore"
+msgstr ""
+
+#: gnu/packages/backup.scm:1110
+msgid ""
+"Burp is a network backup and restore program.  It attempts\n"
+"to reduce network traffic and the amount of space that is used by each\n"
+"backup."
+msgstr ""
+
+#: gnu/packages/base.scm:85
 msgid "Hello, GNU world: An example GNU package"
 msgstr "Saluton, mondo GNU: ekzemplo de pako GNU"
 
-#: gnu/packages/base.scm:59
+#: gnu/packages/base.scm:87
 msgid ""
 "GNU Hello prints the message \"Hello, world!\" and then exits.  It\n"
 "serves as an example of standard GNU coding practices.  As such, it supports\n"
@@ -146,11 +1783,11 @@ msgstr ""
 "funkcias kiel ekzemplo de norma kodumada tradicio de GNU.  Tiel, ĝi subtenas\n"
 "komand-liniajn argumentojn, plurajn lingvojn, kaj tiel plu."
 
-#: gnu/packages/base.scm:77
+#: gnu/packages/base.scm:122
 msgid "Print lines matching a pattern"
 msgstr "Montri liniojn kongruajn al ŝablono"
 
-#: gnu/packages/base.scm:79
+#: gnu/packages/base.scm:124
 msgid ""
 "grep is a tool for finding text inside files.  Text is found by\n"
 "matching a pattern provided by the user in one or many files.  The pattern\n"
@@ -168,11 +1805,11 @@ msgstr ""
 "ekzemple, lini-numerojn.  GNU grep oferaj multajn aldonojn kompare al la\n"
 "originala aplikaĵo, inkluzive, ekzemple, rikuran serĉadon en dosierujoj."
 
-#: gnu/packages/base.scm:101
+#: gnu/packages/base.scm:146
 msgid "Stream editor"
 msgstr "Flu-redaktilo"
 
-#: gnu/packages/base.scm:116
+#: gnu/packages/base.scm:150
 msgid ""
 "Sed is a non-interactive, text stream editor.  It receives a text\n"
 "input from a file or from standard input and it then applies a series of text\n"
@@ -185,11 +1822,11 @@ msgstr ""
 "Ĝi estas ofte uzata por anstataŭigi teksto-ŝablonojn en fluo.  La GNU-a \n"
 "realigo oferas plurajn aldonojn kompare al la ordinara aplikaĵo."
 
-#: gnu/packages/base.scm:136
+#: gnu/packages/base.scm:205
 msgid "Managing tar archives"
 msgstr "Administrado de arĥivoj tar"
 
-#: gnu/packages/base.scm:138
+#: gnu/packages/base.scm:207
 msgid ""
 "Tar provides the ability to create tar archives, as well as the\n"
 "ability to extract, update or list files in an existing archive.  It is\n"
@@ -205,11 +1842,11 @@ msgstr ""
 "dato de kreo/modifo.  GNU tar oferas multajn aldonojn kompare\n"
 "al la ordinara aplikaĵo."
 
-#: gnu/packages/base.scm:162
+#: gnu/packages/base.scm:236
 msgid "Apply differences to originals, with optional backups"
 msgstr "Apliki malsamojn al originaloj, kun nedevigaj savkopioj"
 
-#: gnu/packages/base.scm:164
+#: gnu/packages/base.scm:238
 msgid ""
 "Patch is a program that applies changes to files based on differences\n"
 "laid out as by the program \"diff\".  The changes may be applied to one or more\n"
@@ -218,24 +1855,24 @@ msgid ""
 "differences."
 msgstr ""
 
-#: gnu/packages/base.scm:184
+#: gnu/packages/base.scm:259
 msgid "Comparing and merging files"
 msgstr "Komparo kaj kunmikso de dosieroj"
 
-#: gnu/packages/base.scm:186
+#: gnu/packages/base.scm:261
 msgid ""
 "GNU Diffutils is a package containing tools for finding the\n"
 "differences between files.  The \"diff\" command is used to show how two files\n"
-"differ, while \"cmp\" shows the offsets and line numbers where they differ. \n"
+"differ, while \"cmp\" shows the offsets and line numbers where they differ.\n"
 "\"diff3\" allows you to compare three files.  Finally, \"sdiff\" offers an\n"
 "interactive means to merge two files."
 msgstr ""
 
-#: gnu/packages/base.scm:213
+#: gnu/packages/base.scm:295
 msgid "Operating on files matching given criteria"
 msgstr "Operacio sur dosieroj kongruantaj al indikita kriterio"
 
-#: gnu/packages/base.scm:215
+#: gnu/packages/base.scm:297
 msgid ""
 "Findutils supplies the basic file directory searching utilities of the\n"
 "GNU system.  It consists of two primary searching utilities: \"find\"\n"
@@ -245,23 +1882,24 @@ msgid ""
 "used to apply commands with arbitrarily long arguments."
 msgstr ""
 
-#: gnu/packages/base.scm:265
+#: gnu/packages/base.scm:375
 msgid "Core GNU utilities (file, text, shell)"
 msgstr "Nukleaj utilaĵoj GNU (file, text, shell)"
 
-#: gnu/packages/base.scm:267
+#: gnu/packages/base.scm:377
 msgid ""
-"GNU Coreutils includes all of the basic command-line tools that are\n"
-"expected in a POSIX system.  These provide the basic file, shell and text\n"
-"manipulation functions of the GNU system.  Most of these tools offer extended\n"
-"functionality beyond that which is outlined in the POSIX standard."
+"GNU Coreutils package includes all of the basic command-line tools that\n"
+"are expected in a POSIX system, excluding shell.  This package is the union of\n"
+"the GNU fileutils, sh-utils, and textutils packages.  Most of these tools\n"
+"offer extended functionality beyond that which is outlined in the POSIX\n"
+"standard."
 msgstr ""
 
-#: gnu/packages/base.scm:301
+#: gnu/packages/base.scm:453
 msgid "Remake files automatically"
 msgstr "Reprocezi dosierojn aŭtomate"
 
-#: gnu/packages/base.scm:303
+#: gnu/packages/base.scm:455
 msgid ""
 "Make is a program that is used to control the production of\n"
 "executables or other files from their source files.  The process is\n"
@@ -271,11 +1909,11 @@ msgid ""
 "change.  GNU make offers many powerful extensions over the standard utility."
 msgstr ""
 
-#: gnu/packages/base.scm:348
+#: gnu/packages/base.scm:536
 msgid "Binary utilities: bfd gas gprof ld"
 msgstr "Duumaj utilaĵoj: bfd gas gprof ld"
 
-#: gnu/packages/base.scm:350
+#: gnu/packages/base.scm:538
 msgid ""
 "GNU Binutils is a collection of tools for working with binary files.\n"
 "Perhaps the most notable are \"ld\", a linker, and \"as\", an assembler.\n"
@@ -285,11 +1923,22 @@ msgid ""
 "included."
 msgstr ""
 
-#: gnu/packages/base.scm:493
+#: gnu/packages/base.scm:672
+msgid "The linker wrapper"
+msgstr "La ligila ĉirkaŭanto"
+
+#: gnu/packages/base.scm:674
+msgid ""
+"The linker wrapper (or @code{ld-wrapper}) wraps the linker to add any\n"
+"missing @code{-rpath} flags, and to detect any misuse of libraries outside of\n"
+"the store."
+msgstr ""
+
+#: gnu/packages/base.scm:925
 msgid "The GNU C Library"
 msgstr "La Biblioteko GNU C"
 
-#: gnu/packages/base.scm:495
+#: gnu/packages/base.scm:927
 msgid ""
 "Any Unix-like operating system needs a C library: the library which\n"
 "defines the \"system calls\" and other basic facilities such as open, malloc,\n"
@@ -299,11 +1948,43 @@ msgid ""
 "with the Linux kernel."
 msgstr ""
 
-#: gnu/packages/base.scm:564
+#: gnu/packages/base.scm:1046
+msgid "All the locales supported by the GNU C Library"
+msgstr ""
+
+#: gnu/packages/base.scm:1048
+msgid ""
+"This package provides all the locales supported by the GNU C Library,\n"
+"more than 400 in total.  To use them set the @code{LOCPATH} environment variable\n"
+"to the @code{share/locale} sub-directory of this package."
+msgstr ""
+
+#: gnu/packages/base.scm:1152
+msgid "Small sample of UTF-8 locales"
+msgstr ""
+
+#: gnu/packages/base.scm:1154
+msgid ""
+"This package provides a small sample of UTF-8 locales mostly useful in\n"
+"test environments."
+msgstr ""
+
+#: gnu/packages/base.scm:1185
+msgid "Find full path of shell commands"
+msgstr ""
+
+#: gnu/packages/base.scm:1187
+msgid ""
+"The which program finds the location of executables in PATH, with a\n"
+"variety of options.  It is an alternative to the shell \"type\" built-in\n"
+"command."
+msgstr ""
+
+#: gnu/packages/base.scm:1292
 msgid "Database of current and historical time zones"
 msgstr "Datumbazo de nuna kaj pasintaj temp-zonoj"
 
-#: gnu/packages/base.scm:565
+#: gnu/packages/base.scm:1293
 msgid ""
 "The Time Zone Database (often called tz or zoneinfo)\n"
 "contains code and data that represent the history of local time for many\n"
@@ -312,66 +1993,1091 @@ msgid ""
 "and daylight-saving rules."
 msgstr ""
 
-#: gnu/packages/bittorrent.scm:82
+#: gnu/packages/base.scm:1349
+#, fuzzy
+#| msgid "Data source abstraction library"
+msgid "Character set conversion library"
+msgstr "Datumar-fonta abstrakta biblioteko"
+
+#: gnu/packages/base.scm:1351
+msgid ""
+"libiconv provides an implementation of the iconv function for systems\n"
+"that lack it.  iconv is used to convert between character encodings in a\n"
+"program.  It supports a wide variety of different encodings."
+msgstr ""
+
+#: gnu/packages/bittorrent.scm:114
 msgid "Fast and easy BitTorrent client"
 msgstr "Rapida kaj facila kliento por BitTorrent"
 
-#: gnu/packages/bittorrent.scm:84
+#: gnu/packages/bittorrent.scm:116
 msgid ""
 "Transmission is a BitTorrent client that comes with graphical,\n"
 "textual, and Web user interfaces.  Transmission also has a daemon for\n"
-"unattended operationg.  It supports local peer discovery, full encryption,\n"
+"unattended operations.  It supports local peer discovery, full encryption,\n"
 "DHT, µTP, PEX and Magnet Links."
 msgstr ""
 
-#: gnu/packages/bittorrent.scm:122
+#: gnu/packages/bittorrent.scm:148
 msgid "BitTorrent library of rtorrent"
 msgstr "Biblioteko BitTorrent de rTorrent"
 
-#: gnu/packages/bittorrent.scm:124
+#: gnu/packages/bittorrent.scm:150
 msgid ""
 "LibTorrent is a BitTorrent library used by and developed in parallel\n"
 "with the BitTorrent client rtorrent.  It is written in C++ with emphasis on\n"
 "speed and efficiency."
 msgstr ""
 
-#: gnu/packages/bittorrent.scm:151
+#: gnu/packages/bittorrent.scm:177
 msgid "BitTorrent client with ncurses interface"
 msgstr "Kliento BitTorrent kun interfaco ncurses"
 
-#: gnu/packages/bittorrent.scm:153
+#: gnu/packages/bittorrent.scm:179
 msgid ""
 "rTorrent is a BitTorrent client with an ncurses interface.  It supports\n"
 "full encryption, DHT, PEX, and Magnet Links.  It can also be controlled via\n"
 "XML-RPC over SCGI."
 msgstr ""
 
-#: gnu/packages/databases.scm:83
-msgid "Berkeley database"
-msgstr "Datumbazo de Berkeley"
+#: gnu/packages/bittorrent.scm:211 gnu/packages/bittorrent.scm:252
+msgid "Console client for the Transmission BitTorrent daemon"
+msgstr ""
+
+#: gnu/packages/bittorrent.scm:212
+msgid ""
+"Tremc is a console client, with a curses interface, for the\n"
+"Transmission BitTorrent daemon."
+msgstr ""
+
+#: gnu/packages/bittorrent.scm:253
+msgid ""
+"Transmission-remote-cli is a console client, with a curses\n"
+"interface, for the Transmission BitTorrent daemon.  This package is no longer\n"
+"maintained upstream."
+msgstr ""
+
+#: gnu/packages/bittorrent.scm:301
+msgid "Utility for parallel downloading files"
+msgstr ""
+
+#: gnu/packages/bittorrent.scm:303
+msgid ""
+"Aria2 is a lightweight, multi-protocol & multi-source command-line\n"
+"download utility.  It supports HTTP/HTTPS, FTP, SFTP, BitTorrent and Metalink.\n"
+"Aria2 can be manipulated via built-in JSON-RPC and XML-RPC interfaces."
+msgstr ""
+
+#: gnu/packages/bittorrent.scm:334
+msgid "Universal download manager with GTK+ interface"
+msgstr ""
+
+#: gnu/packages/bittorrent.scm:336
+msgid ""
+"uGet is portable download manager with GTK+ interface supporting\n"
+"HTTP, HTTPS, BitTorrent and Metalink, supporting multi-connection\n"
+"downloads, download scheduling, download rate limiting."
+msgstr ""
+
+#: gnu/packages/bittorrent.scm:366
+msgid "Utility to create BitTorrent metainfo files"
+msgstr ""
+
+#: gnu/packages/bittorrent.scm:368
+msgid ""
+"mktorrent is a simple command-line utility to create BitTorrent\n"
+"@dfn{metainfo} files, often known simply as @dfn{torrents}, from both single\n"
+"files and whole directories.  It can add multiple trackers and web seed URLs,\n"
+"and set the @code{private} flag to disallow advertisement through the\n"
+"distributed hash table (@dfn{DHT}) and Peer Exchange.  Hashing is multi-threaded\n"
+"and will take advantage of multiple processor cores where possible."
+msgstr ""
+
+#: gnu/packages/bittorrent.scm:406
+msgid "Feature-complete BitTorrent implementation"
+msgstr ""
+
+#: gnu/packages/bittorrent.scm:408
+msgid ""
+"libtorrent-rasterbar is a feature-complete C++ BitTorrent implementation\n"
+"focusing on efficiency and scalability.  It runs on embedded devices as well as\n"
+"desktops."
+msgstr ""
+
+#: gnu/packages/bittorrent.scm:457
+#, fuzzy
+#| msgid "Fast and easy BitTorrent client"
+msgid "Graphical BitTorrent client"
+msgstr "Rapida kaj facila kliento por BitTorrent"
+
+#: gnu/packages/bittorrent.scm:459
+msgid ""
+"qBittorrent is a BitTorrent client programmed in C++/Qt that uses\n"
+"libtorrent (sometimes called libtorrent-rasterbar) by Arvid Norberg.\n"
+"\n"
+"It aims to be a good alternative to all other BitTorrent clients out there.\n"
+"qBittorrent is fast, stable and provides unicode support as well as many\n"
+"features."
+msgstr ""
+
+#: gnu/packages/bittorrent.scm:530
+msgid "Fully-featured cross-platform ​BitTorrent client"
+msgstr ""
+
+#: gnu/packages/bittorrent.scm:532
+msgid ""
+"Deluge contains the common features to BitTorrent clients such as\n"
+"Protocol Encryption, DHT, Local Peer Discovery (LSD), Peer Exchange\n"
+"(PEX), UPnP, NAT-PMP, Proxy support, Web seeds, global and per-torrent\n"
+"speed limits.  Deluge heavily utilises the ​libtorrent library.  It is\n"
+"designed to run as both a normal standalone desktop application and as a\n"
+"​client-server."
+msgstr ""
+
+#: gnu/packages/certs.scm:68
+msgid "Python script to extract .pem data from certificate collection"
+msgstr ""
+
+#: gnu/packages/certs.scm:70
+msgid ""
+"certdata2pem.py is a Python script to transform X.509 certificate\n"
+"\"source code\" as contained, for example, in the Mozilla sources, into\n"
+".pem formatted certificates."
+msgstr ""
+
+#: gnu/packages/certs.scm:140
+msgid "CA certificates from Mozilla"
+msgstr ""
+
+#: gnu/packages/certs.scm:142
+msgid ""
+"This package provides certificates for Certification Authorities (CA)\n"
+"taken from the NSS package and thus ultimately from the Mozilla project."
+msgstr ""
+
+#: gnu/packages/certs.scm:210
+msgid "Let's Encrypt root and intermediate certificates"
+msgstr ""
+
+#: gnu/packages/certs.scm:211
+msgid ""
+"This package provides a certificate store containing only the\n"
+"Let's Encrypt root and intermediate certificates.  It is intended to be used\n"
+"within Guix."
+msgstr ""
+
+#: gnu/packages/compression.scm:125
+#, fuzzy
+#| msgid "Data source abstraction library"
+msgid "Compression library"
+msgstr "Datumar-fonta abstrakta biblioteko"
+
+#: gnu/packages/compression.scm:127
+msgid ""
+"zlib is designed to be a free, general-purpose, legally unencumbered --\n"
+"that is, not covered by any patents -- lossless data-compression library for\n"
+"use on virtually any computer hardware and operating system.  The zlib data\n"
+"format is itself portable across platforms.  Unlike the LZW compression method\n"
+"used in Unix compress(1) and in the GIF image format, the compression method\n"
+"currently used in zlib essentially never expands the data. (LZW can double or\n"
+"triple the file size in extreme cases.)  zlib's memory footprint is also\n"
+"independent of the input data and can be reduced, if necessary, at some cost\n"
+"in compression."
+msgstr ""
+
+#: gnu/packages/compression.scm:164
+msgid "Zip Compression library"
+msgstr ""
+
+#: gnu/packages/compression.scm:166
+msgid ""
+"Minizip is a minimalistic library that supports compressing,\n"
+"extracting and viewing ZIP archives.  This version is extracted from\n"
+"the @code{zlib} source."
+msgstr ""
+
+#: gnu/packages/compression.scm:185
+msgid "Replacement for Sun's 'jar' utility"
+msgstr ""
+
+#: gnu/packages/compression.scm:187
+msgid ""
+"FastJar is an attempt to create a much faster replacement for Sun's\n"
+"@code{jar} utility.  Instead of being written in Java, FastJar is written in C."
+msgstr ""
+
+#: gnu/packages/compression.scm:216
+#, fuzzy
+#| msgid "Library for handling PNG files"
+msgid "C library for manipulating POSIX tar files"
+msgstr "Biblioteko por trakti dosierojn PNG"
+
+#: gnu/packages/compression.scm:218
+msgid ""
+"libtar is a C library for manipulating POSIX tar files.  It handles\n"
+"adding and extracting files to/from a tar archive."
+msgstr ""
+
+#: gnu/packages/compression.scm:235
+msgid "General file (de)compression (using lzw)"
+msgstr ""
+
+#: gnu/packages/compression.scm:264
+msgid ""
+"GNU Gzip provides data compression and decompression utilities; the\n"
+"typical extension is \".gz\".  Unlike the \"zip\" format, it compresses a single\n"
+"file; as a result, it is often used in conjunction with \"tar\", resulting in\n"
+"\".tar.gz\" or \".tgz\", etc."
+msgstr ""
+
+#: gnu/packages/compression.scm:372
+msgid "High-quality data compression program"
+msgstr ""
+
+#: gnu/packages/compression.scm:374
+msgid ""
+"bzip2 is a freely available, patent free (see below), high-quality data\n"
+"compressor.  It typically compresses files to within 10% to 15% of the best\n"
+"available techniques (the PPM family of statistical compressors), whilst\n"
+"being around twice as fast at compression and six times faster at\n"
+"decompression."
+msgstr ""
+
+#: gnu/packages/compression.scm:429
+msgid "Parallel bzip2 compression utility"
+msgstr ""
+
+#: gnu/packages/compression.scm:431
+msgid ""
+"lbzip2 is a multi-threaded compression utility with support for the\n"
+"bzip2 compressed file format.  lbzip2 can process standard bz2 files in\n"
+"parallel.  It uses POSIX threading model (pthreads), which allows it to take\n"
+"full advantage of symmetric multiprocessing (SMP) systems.  It has been proven\n"
+"to scale linearly, even to over one hundred processor cores.  lbzip2 is fully\n"
+"compatible with bzip2 – both at file format and command line level."
+msgstr ""
+
+#: gnu/packages/compression.scm:464
+#, fuzzy
+#| msgid "Full chess implementation"
+msgid "Parallel bzip2 implementation"
+msgstr "Kompleta realigo de ŝako"
+
+#: gnu/packages/compression.scm:466
+msgid ""
+"Pbzip2 is a parallel implementation of the bzip2 block-sorting file\n"
+"compressor that uses pthreads and achieves near-linear speedup on SMP machines.\n"
+"The output of this version is fully compatible with bzip2 v1.0.2 (i.e. anything\n"
+"compressed with pbzip2 can be decompressed with bzip2)."
+msgstr ""
+
+#: gnu/packages/compression.scm:504
+msgid "General-purpose data compression"
+msgstr ""
+
+#: gnu/packages/compression.scm:506
+msgid ""
+"XZ Utils is free general-purpose data compression software with high\n"
+"compression ratio.  XZ Utils were written for POSIX-like systems, but also\n"
+"work on some not-so-POSIX systems.  XZ Utils are the successor to LZMA Utils.\n"
+"\n"
+"The core of the XZ Utils compression code is based on LZMA SDK, but it has\n"
+"been modified quite a lot to be suitable for XZ Utils.  The primary\n"
+"compression algorithm is currently LZMA2, which is used inside the .xz\n"
+"container format.  With typical files, XZ Utils create 30 % smaller output\n"
+"than gzip and 15 % smaller output than bzip2."
+msgstr ""
+
+#: gnu/packages/compression.scm:542
+msgid "LHA archive decompressor"
+msgstr ""
+
+#: gnu/packages/compression.scm:543
+msgid ""
+"Lhasa is a replacement for the Unix LHA tool, for\n"
+"decompressing .lzh (LHA / LHarc) and .lzs (LArc) archives.  The backend for the\n"
+"tool is a library, so that it can be reused for other purposes.  Lhasa aims to\n"
+"be compatible with as many types of lzh/lzs archives as possible.  It also aims\n"
+"to generate the same output as the (non-free) Unix LHA tool, so that it will\n"
+"act as a free drop-in replacement."
+msgstr ""
+
+#: gnu/packages/compression.scm:567
+msgid "Data compression library suitable for real-time data de-/compression"
+msgstr ""
+
+#: gnu/packages/compression.scm:569
+msgid ""
+"LZO is a data compression library which is suitable for data\n"
+"de-/compression in real-time.  This means it favours speed over\n"
+"compression ratio.\n"
+"\n"
+"LZO is written in ANSI C.  Both the source code and the compressed data\n"
+"format are designed to be portable across platforms."
+msgstr ""
+
+#: gnu/packages/compression.scm:592
+#, fuzzy
+#| msgid "Compression and file packing utility"
+msgid "Compress or expand files"
+msgstr "Utilaĵo por densigi kaj pakigi dosierojn"
+
+#: gnu/packages/compression.scm:594
+msgid ""
+"Lzop is a file compressor which is very similar to gzip.  Lzop uses the\n"
+"LZO data compression library for compression services, and its main advantages\n"
+"over gzip are much higher compression and decompression speed (at the cost of\n"
+"some compression ratio)."
+msgstr ""
+
+#: gnu/packages/compression.scm:613
+msgid "Lossless data compressor based on the LZMA algorithm"
+msgstr ""
+
+#: gnu/packages/compression.scm:615
+msgid ""
+"Lzip is a lossless data compressor with a user interface similar to the\n"
+"one of gzip or bzip2.  Lzip decompresses almost as fast as gzip and compresses\n"
+"more than bzip2, which makes it well-suited for software distribution and data\n"
+"archiving.  Lzip is a clean implementation of the LZMA algorithm."
+msgstr ""
+
+#: gnu/packages/compression.scm:634
+msgid "Recover and decompress data from damaged lzip files"
+msgstr ""
+
+#: gnu/packages/compression.scm:636
+msgid ""
+"Lziprecover is a data recovery tool and decompressor for files in the lzip\n"
+"compressed data format (.lz).  It can test the integrity of lzip files, extract\n"
+"data from damaged ones, and repair most files with small errors (up to one\n"
+"single-byte error per member) entirely.\n"
+"\n"
+"Lziprecover is not a replacement for regular backups, but a last line of defence\n"
+"when even the backups are corrupt.  It can recover files by merging the good\n"
+"parts of two or more damaged copies, such as can be easily produced by running\n"
+"@command{ddrescue} on a failing device.\n"
+"\n"
+"This package also includes @command{unzcrash}, a tool to test the robustness of\n"
+"decompressors when faced with corrupted input."
+msgstr ""
+
+#: gnu/packages/compression.scm:691
+msgid "Archives in shell scripts, uuencode/uudecode"
+msgstr ""
+
+#: gnu/packages/compression.scm:693
+msgid ""
+"GNU sharutils is a package for creating and manipulating shell\n"
+"archives that can be readily emailed.  A shell archive is a file that can be\n"
+"processed by a Bourne-type shell to unpack the original collection of files.\n"
+"This package is mostly for compatibility and historical interest."
+msgstr ""
+
+#: gnu/packages/compression.scm:725
+#, fuzzy
+#| msgid "Library for patent-free audio compression format"
+msgid "Library for SoundFont decompression"
+msgstr "Biblioteko por senpatenta sondensiga formo"
+
+#: gnu/packages/compression.scm:727
+msgid ""
+"SfArkLib is a C++ library for decompressing SoundFont files compressed\n"
+"with the sfArk algorithm."
+msgstr ""
+
+#: gnu/packages/compression.scm:762
+msgid "Basic sfArk decompressor"
+msgstr ""
+
+#: gnu/packages/compression.scm:763
+msgid ""
+"SfArk extractor converts SoundFonts in the compressed legacy\n"
+"sfArk file format to the uncompressed sf2 format."
+msgstr ""
+
+#: gnu/packages/compression.scm:781
+msgid "Compression tools for some formats used by Microsoft"
+msgstr ""
+
+#: gnu/packages/compression.scm:783
+msgid ""
+"The purpose of libmspack is to provide both compression and\n"
+"decompression of some loosely related file formats used by Microsoft."
+msgstr ""
+
+#: gnu/packages/compression.scm:824
+msgid "Compression algorithm focused on speed"
+msgstr ""
+
+#: gnu/packages/compression.scm:825
+msgid ""
+"LZ4 is a lossless compression algorithm, providing\n"
+"compression speed at 400 MB/s per core (0.16 Bytes/cycle).  It also features an\n"
+"extremely fast decoder, with speed in multiple GB/s per core (0.71 Bytes/cycle).\n"
+"A high compression derivative, called LZ4_HC, is also provided.  It trades CPU\n"
+"time for compression ratio."
+msgstr ""
+
+#: gnu/packages/compression.scm:867
+msgid "Tools to create and extract squashfs file systems"
+msgstr ""
+
+#: gnu/packages/compression.scm:869
+msgid ""
+"Squashfs is a highly compressed read-only file system for Linux.  It uses\n"
+"zlib to compress files, inodes, and directories.  All blocks are packed to\n"
+"minimize the data overhead, and block sizes of between 4K and 1M are supported.\n"
+"It is intended to be used for archival use, for live CDs, and for embedded\n"
+"systems where low overhead is needed.  This package allows you to create and\n"
+"extract such file systems."
+msgstr ""
+
+#: gnu/packages/compression.scm:907
+#, fuzzy
+#| msgid "Full chess implementation"
+msgid "Parallel implementation of gzip"
+msgstr "Kompleta realigo de ŝako"
+
+#: gnu/packages/compression.scm:909
+msgid ""
+"This package provides a parallel implementation of gzip that exploits\n"
+"multiple processors and multiple cores when compressing data."
+msgstr ""
+
+#: gnu/packages/compression.scm:933
+msgid "Parallel indexing implementation of LZMA"
+msgstr ""
+
+#: gnu/packages/compression.scm:935
+msgid ""
+"The existing XZ Utils provide great compression in the .xz file format,\n"
+"but they produce just one big block of compressed data.  Pixz instead produces\n"
+"a collection of smaller blocks which makes random access to the original data\n"
+"possible and can compress in parallel.  This is especially useful for large\n"
+"tarballs."
+msgstr ""
+
+#: gnu/packages/compression.scm:970
+msgid "Patch binary files"
+msgstr ""
+
+#: gnu/packages/compression.scm:972
+msgid ""
+"@command{bsdiff} and @command{bspatch} are tools for building and\n"
+"applying patches to binary files.  By using suffix sorting (specifically\n"
+"Larsson and Sadakane's @code{qsufsort}) and taking advantage of how\n"
+"executable files change, bsdiff routinely produces binary patches 50-80%\n"
+"smaller than those produced by @code{Xdelta}."
+msgstr ""
+
+#: gnu/packages/compression.scm:1018
+msgid "Tool to unpack Cabinet archives"
+msgstr ""
+
+#: gnu/packages/compression.scm:1019
+msgid "Extracts files out of Microsoft Cabinet (.cab) archives"
+msgstr ""
+
+#: gnu/packages/compression.scm:1052
+msgid "Delta encoder for binary files"
+msgstr ""
+
+#: gnu/packages/compression.scm:1053
+msgid ""
+"xdelta encodes only the differences between two binary files\n"
+"using the VCDIFF algorithm and patch file format described in RFC 3284.  It can\n"
+"also be used to apply such patches.  xdelta is similar to @command{diff} and\n"
+"@command{patch}, but is not limited to plain text and does not generate\n"
+"human-readable output."
+msgstr ""
+
+#: gnu/packages/compression.scm:1086
+msgid "Large file compressor with a very high compression ratio"
+msgstr ""
+
+#: gnu/packages/compression.scm:1087
+msgid ""
+"lrzip is a compression utility that uses long-range\n"
+"redundancy reduction to improve the subsequent compression ratio of\n"
+"larger files.  It can then further compress the result with the ZPAQ or\n"
+"LZMA algorithms for maximum compression, or LZO for maximum speed.  This\n"
+"choice between size or speed allows for either better compression than\n"
+"even LZMA can provide, or a higher speed than gzip while compressing as\n"
+"well as bzip2."
+msgstr ""
+
+#: gnu/packages/compression.scm:1115
+msgid "Fast compressor/decompressor"
+msgstr ""
+
+#: gnu/packages/compression.scm:1116
+msgid ""
+"Snappy is a compression/decompression library.  It does not\n"
+"aim for maximum compression, or compatibility with any other compression library;\n"
+"instead, it aims for very high speeds and reasonable compression.  For instance,\n"
+"compared to the fastest mode of zlib, Snappy is an order of magnitude faster\n"
+"for most inputs, but the resulting compressed files are anywhere from 20% to\n"
+"100% bigger."
+msgstr ""
+
+#: gnu/packages/compression.scm:1185
+msgid "Command-line file archiver with high compression ratio"
+msgstr ""
+
+#: gnu/packages/compression.scm:1186
+msgid ""
+"p7zip is a command-line port of 7-Zip, a file archiver that\n"
+"handles the 7z format which features very high compression ratios."
+msgstr ""
+
+#: gnu/packages/compression.scm:1227
+msgid "Compressed C++ iostream"
+msgstr ""
+
+#: gnu/packages/compression.scm:1228
+msgid ""
+"gzstream is a small library for providing zlib\n"
+"functionality in a C++ iostream."
+msgstr ""
+
+#: gnu/packages/compression.scm:1277
+msgid "Incremental journaling archiver"
+msgstr ""
+
+#: gnu/packages/compression.scm:1278
+msgid ""
+"ZPAQ is a command-line archiver for realistic situations with\n"
+"many duplicate and already compressed files.  It backs up only those files\n"
+"modified since the last update.  All previous versions remain untouched and can\n"
+"be independently recovered.  Identical files are only stored once (known as\n"
+"@dfn{de-duplication}).  Archives can also be encrypted.\n"
+"\n"
+"ZPAQ is intended to back up user data, not entire operating systems.  It ignores\n"
+"owner and group IDs, ACLs, extended attributes, or special file types like\n"
+"devices, sockets, or named pipes.  It does not follow or restore symbolic links\n"
+"or junctions, and always follows hard links."
+msgstr ""
+
+#: gnu/packages/compression.scm:1378
+msgid "Extract CAB files from InstallShield installers"
+msgstr ""
+
+#: gnu/packages/compression.scm:1380
+msgid ""
+"@command{unshield} is a tool and library for extracting @file{.cab}\n"
+" archives from InstallShield installers."
+msgstr ""
+
+#: gnu/packages/compression.scm:1436
+msgid "Zstandard real-time compression algorithm"
+msgstr ""
+
+#: gnu/packages/compression.scm:1437
+msgid ""
+"Zstandard (@command{zstd}) is a lossless compression algorithm\n"
+"that combines very fast operation with a compression ratio comparable to that of\n"
+"zlib.  In most scenarios, both compression and decompression can be performed in\n"
+"‘real time’.  The compressor can be configured to provide the most suitable\n"
+"trade-off between compression ratio and speed, without affecting decompression\n"
+"speed."
+msgstr ""
+
+#: gnu/packages/compression.scm:1479
+msgid "Threaded implementation of the Zstandard compression algorithm"
+msgstr ""
+
+#: gnu/packages/compression.scm:1480
+msgid ""
+"Parallel Zstandard (PZstandard or @command{pzstd}) is a\n"
+"multi-threaded implementation of the @uref{http://zstd.net/, Zstandard\n"
+"compression algorithm}.  It is fully compatible with the original Zstandard file\n"
+"format and command-line interface, and can be used as a drop-in replacement.\n"
+"\n"
+"Compression is distributed over multiple processor cores to improve performance,\n"
+"as is the decompression of data compressed in this manner.  Data compressed by\n"
+"other implementations will only be decompressed by two threads: one performing\n"
+"the actual decompression, the other input and output."
+msgstr ""
+
+#: gnu/packages/compression.scm:1518
+msgid "Compression and file packing utility"
+msgstr "Utilaĵo por densigi kaj pakigi dosierojn"
+
+#: gnu/packages/compression.scm:1520
+msgid ""
+"Zip is a compression and file packaging/archive utility.  Zip is useful\n"
+"for packaging a set of files for distribution, for archiving files, and for\n"
+"saving disk space by temporarily compressing unused files or directories.\n"
+"Zip puts one or more compressed files into a single ZIP archive, along with\n"
+"information about the files (name, path, date, time of last modification,\n"
+"protection, and check information to verify file integrity).  An entire\n"
+"directory structure can be packed into a ZIP archive with a single command.\n"
+"\n"
+"Zip has one compression method (deflation) and can also store files without\n"
+"compression.  Zip automatically chooses the better of the two for each file.\n"
+"Compression ratios of 2:1 to 3:1 are common for text files."
+msgstr ""
 
-#: gnu/packages/databases.scm:85
+#: gnu/packages/compression.scm:1582
+msgid "Decompression and file extraction utility"
+msgstr "Utilaĵo por maldensigi kaj malpakigi dosierojn"
+
+#: gnu/packages/compression.scm:1584
 msgid ""
-"Berkeley DB is an embeddable database allowing developers the choice of\n"
-"SQL, Key/Value, XML/XQuery or Java Object storage for their data model."
+"UnZip is an extraction utility for archives compressed in .zip format,\n"
+"also called \"zipfiles\".\n"
+"\n"
+"UnZip lists, tests, or extracts files from a .zip archive.  The default\n"
+"behaviour (with no options) is to extract into the current directory, and\n"
+"subdirectories below it, all files from the specified zipfile.  UnZip\n"
+"recreates the stored directory structure by default."
 msgstr ""
 
-#: gnu/packages/databases.scm:143
+#: gnu/packages/compression.scm:1629
+msgid "Library for accessing zip files"
+msgstr "Biblioteko por aliri zip-dosierojn"
+
+#: gnu/packages/compression.scm:1631
+msgid "ZZipLib is a library based on zlib for accessing zip files."
+msgstr "ZZipLib estas biblioteko bazita sur zlib por aliri zip-dosierojn."
+
+#: gnu/packages/compression.scm:1656
+msgid "C library for reading, creating, and modifying zip archives"
+msgstr ""
+
+#: gnu/packages/compression.scm:1657
+msgid ""
+"Libzip is a C library for reading, creating, and modifying\n"
+"zip archives.  Files can be added from data buffers, files, or compressed data\n"
+"copied directly from other zip archives.  Changes made without closing the\n"
+"archive can be reverted."
+msgstr ""
+
+#: gnu/packages/compression.scm:1690
+msgid "Universal tool to manage file archives of various types"
+msgstr ""
+
+#: gnu/packages/compression.scm:1691
+msgid ""
+"The main command is @command{aunpack} which extracts files\n"
+"from an archive.  The other commands provided are @command{apack} (to create\n"
+"archives), @command{als} (to list files in archives), and @command{acat} (to\n"
+"extract files to standard out).  As @command{atool} invokes external programs\n"
+"to handle the archives, not all commands may be supported for a certain type\n"
+"of archives."
+msgstr ""
+
+#: gnu/packages/compression.scm:1715
+msgid "Small, stand-alone lzip decompressor"
+msgstr ""
+
+#: gnu/packages/compression.scm:1717
+msgid ""
+"Lunzip is a decompressor for files in the lzip compression format (.lz),\n"
+"written as a single small C tool with no dependencies.  This makes it\n"
+"well-suited to embedded and other systems without a C++ compiler, or for use in\n"
+"applications such as software installers that need only to decompress files,\n"
+"not compress them.\n"
+"Lunzip is intended to be fully compatible with the regular lzip package."
+msgstr ""
+
+#: gnu/packages/compression.scm:1742
+msgid "Small, stand-alone lzip compressor and decompressor"
+msgstr ""
+
+#: gnu/packages/compression.scm:1744
+msgid ""
+"Clzip is a compressor and decompressor for files in the lzip compression\n"
+"format (.lz), written as a single small C tool with no dependencies.  This makes\n"
+"it well-suited to embedded and other systems without a C++ compiler, or for use\n"
+"in other applications like package managers.\n"
+"Clzip is intended to be fully compatible with the regular lzip package."
+msgstr ""
+
+#: gnu/packages/compression.scm:1770
+#, fuzzy
+#| msgid "Multi-format archive and compression library"
+msgid "Lzip data compression C library"
+msgstr "Mult-forma biblioteko por arĥivi kaj densigi"
+
+#: gnu/packages/compression.scm:1772
+msgid ""
+"Lzlib is a C library for in-memory LZMA compression and decompression in\n"
+"the lzip format.  It supports integrity checking of the decompressed data, and\n"
+"all functions are thread-safe.  The library should never crash, even in case of\n"
+"corrupted input."
+msgstr ""
+
+#: gnu/packages/compression.scm:1794
+msgid "Parallel lossless data compressor for the lzip format"
+msgstr ""
+
+#: gnu/packages/compression.scm:1796
+msgid ""
+"Plzip is a massively parallel (multi-threaded) lossless data compressor\n"
+"and decompressor that uses the lzip file format (.lz).  Files produced by plzip\n"
+"are fully compatible with lzip and can be rescued with lziprecover.\n"
+"On multiprocessor machines, plzip can compress and decompress large files much\n"
+"faster than lzip, at the cost of a slightly reduced compression ratio (0.4% to\n"
+"2%).  The number of usable threads is limited by file size: on files of only a\n"
+"few MiB, plzip is no faster than lzip.\n"
+"Files that were compressed with regular lzip will also not be decompressed\n"
+"faster by plzip, unless the @code{-b} option was used: lzip usually produces\n"
+"single-member files which can't be decompressed in parallel."
+msgstr ""
+
+#: gnu/packages/compression.scm:1829
+msgid "Tool for extracting Inno Setup installers"
+msgstr ""
+
+#: gnu/packages/compression.scm:1830
+msgid ""
+"innoextract allows extracting Inno Setup installers under\n"
+"non-Windows systems without running the actual installer using wine."
+msgstr ""
+
+#: gnu/packages/compression.scm:1868
+msgid "General-purpose lossless compression"
+msgstr ""
+
+#: gnu/packages/compression.scm:1869
+msgid ""
+"This package provides the reference implementation of Brotli,\n"
+"a generic-purpose lossless compression algorithm that compresses data using a\n"
+"combination of a modern variant of the LZ77 algorithm, Huffman coding and 2nd\n"
+"order context modeling, with a compression ratio comparable to the best\n"
+"currently available general-purpose compression methods.  It is similar in speed\n"
+"with @code{deflate} but offers more dense compression.\n"
+"\n"
+"The specification of the Brotli Compressed Data Format is defined in RFC 7932."
+msgstr ""
+
+#: gnu/packages/compression.scm:1889
+msgid "Python interface to google-brotli"
+msgstr ""
+
+#: gnu/packages/compression.scm:1890
+msgid ""
+"@code{python-google-brotli} provides a Python interface to\n"
+"@code{google-brotli}, an implementation of the Brotli lossless compression\n"
+"algorithm."
+msgstr ""
+
+#: gnu/packages/compression.scm:1911
+#, fuzzy
+#| msgid "Multi-format archive and compression library"
+msgid "Portable lossless data compression library"
+msgstr "Mult-forma biblioteko por arĥivi kaj densigi"
+
+#: gnu/packages/compression.scm:1912
+msgid ""
+"UCL implements a number of compression algorithms that\n"
+"achieve an excellent compression ratio while allowing fast decompression.\n"
+"Decompression requires no additional memory.\n"
+"\n"
+"Compared to LZO, the UCL algorithms achieve a better compression ratio but\n"
+"decompression is a little bit slower."
+msgstr ""
+
+#: gnu/packages/compression.scm:1958
+msgid "Compression tool for executables"
+msgstr ""
+
+#: gnu/packages/compression.scm:1960
+msgid ""
+"The Ultimate Packer for eXecutables (UPX) is an executable file\n"
+"compressor.  UPX typically reduces the file size of programs and shared\n"
+"libraries by around 50%--70%, thus reducing disk space, network load times,\n"
+"download times, and other distribution and storage costs."
+msgstr ""
+
+#: gnu/packages/compression.scm:1988
+msgid "Qt/C++ wrapper for Minizip"
+msgstr ""
+
+#: gnu/packages/compression.scm:1989
+msgid ""
+"QuaZIP is a simple C++ wrapper over Gilles Vollant's\n"
+"ZIP/UNZIP package that can be used to access ZIP archives.  It uses\n"
+"Trolltech's Qt toolkit.\n"
+"\n"
+"QuaZIP allows you to access files inside ZIP archives using QIODevice\n"
+"API, and that means that you can also use QTextStream, QDataStream or\n"
+"whatever you would like to use on your zipped files.\n"
+"\n"
+"QuaZIP provides complete abstraction of the ZIP/UNZIP API, for both\n"
+"reading from and writing to ZIP archives. "
+msgstr ""
+
+#: gnu/packages/compression.scm:2036
+#, fuzzy
+#| msgid "Utilities that give information about processes"
+msgid "Utilities that transparently operate on compressed files"
+msgstr "Utilaĵoj kiuj informas pri procezoj"
+
+#: gnu/packages/compression.scm:2038
+msgid ""
+"Zutils is a collection of utilities able to process any combination of\n"
+"compressed and uncompressed files transparently.  If any given file, including\n"
+"standard input, is compressed, its decompressed content is used instead.\n"
+"\n"
+"@command{zcat}, @command{zcmp}, @command{zdiff}, and @command{zgrep} are\n"
+"improved replacements for the shell scripts provided by GNU gzip.\n"
+"@command{ztest} tests the integrity of supported compressed files.\n"
+"@command{zupdate} recompresses files with lzip, similar to gzip's\n"
+"@command{znew}.\n"
+"\n"
+"Supported compression formats are bzip2, gzip, lzip, and xz.  Zutils uses\n"
+"external compressors: the compressor to be used for each format is configurable\n"
+"at run time, and must be installed separately."
+msgstr ""
+
+#: gnu/packages/compression.scm:2095
+msgid "Extract makeself and mojo archives without running untrusted code"
+msgstr ""
+
+#: gnu/packages/compression.scm:2096
+msgid ""
+"This package provides a script to unpack self-extracting\n"
+"archives generated by @command{makeself} or @command{mojo} without running the\n"
+"possibly untrusted extraction shell script."
+msgstr ""
+
+#: gnu/packages/compression.scm:2123
+msgid "Original Lempel-Ziv compress/uncompress programs"
+msgstr ""
+
+#: gnu/packages/compression.scm:2124
+msgid ""
+"(N)compress provides the original compress and uncompress\n"
+"programs that used to be the de facto UNIX standard for compressing and\n"
+"uncompressing files.  These programs implement a fast, simple Lempel-Ziv (LZW)\n"
+"file compression algorithm."
+msgstr ""
+
+#: gnu/packages/compression.scm:2153
+#, fuzzy
+#| msgid "Graphical user interface for chess programs"
+msgid "Graphical front-end for archive operations"
+msgstr "Grafikinterfacon por ŝak-programarojn"
+
+#: gnu/packages/compression.scm:2154
+msgid ""
+"Xarchiver is a front-end to various command line archiving\n"
+"tools.  It uses GTK+ tool-kit and is designed to be desktop-environment\n"
+"independent.  Supported formats are 7z, ARJ, bzip2, gzip, LHA, lzma, lzop,\n"
+"RAR, RPM, DEB, tar, and ZIP.  It cannot perform functions for archives, whose\n"
+"archiver is not installed."
+msgstr ""
+
+#: gnu/packages/compression.scm:2189
+msgid "Multithreaded tar utility"
+msgstr ""
+
+#: gnu/packages/compression.scm:2191
+msgid ""
+"Archive huge numbers of files, or split massive tar archives into smaller\n"
+"chunks."
+msgstr ""
+
+#: gnu/packages/compression.scm:2210
+#, fuzzy
+#| msgid "Multi-format archive and compression library"
+msgid "Blocking, shuffling and lossless compression library"
+msgstr "Mult-forma biblioteko por arĥivi kaj densigi"
+
+#: gnu/packages/compression.scm:2212
+msgid ""
+"Blosc is a high performance compressor optimized for binary data. It has\n"
+"been designed to transmit data to the processor cache faster than the\n"
+"traditional, non-compressed, direct memory fetch approach via a\n"
+"@code{memcpy()} system call.  Blosc is meant not only to reduce the size of\n"
+"large datasets on-disk or in-memory, but also to accelerate memory-bound\n"
+"computations."
+msgstr ""
+
+#: gnu/packages/compression.scm:2249
+msgid "Error code modeler"
+msgstr ""
+
+#: gnu/packages/compression.scm:2250
+msgid ""
+"ECM is a utility that converts ECM files, i.e., CD data files\n"
+"with their error correction data losslessly rearranged for better compression,\n"
+"to their original, binary CD format."
+msgstr ""
+
+#: gnu/packages/compression.scm:2272
+msgid "Combination of the tar archiver and the lzip compressor"
+msgstr ""
+
+#: gnu/packages/compression.scm:2274
+msgid ""
+"Tarlz is a massively parallel (multi-threaded) combined implementation of\n"
+"the tar archiver and the lzip compressor.  Tarlz creates, lists, and extracts\n"
+"archives in a simplified and safer variant of the POSIX pax format compressed\n"
+"with lzip, keeping the alignment between tar members and lzip members.  The\n"
+"resulting multimember tar.lz archive is fully backward compatible with standard\n"
+"tar tools like GNU tar, which treat it like any other tar.lz archive.  Tarlz\n"
+"can append files to the end of such compressed archives."
+msgstr ""
+
+#: gnu/packages/databases.scm:181
+msgid "Clustered RDF storage and query engine"
+msgstr ""
+
+#: gnu/packages/databases.scm:182
+msgid ""
+"4store is a RDF/SPARQL store written in C, supporting\n"
+"either single machines or networked clusters."
+msgstr ""
+
+#: gnu/packages/databases.scm:224
+msgid "@code{mgo} offers a rich MongoDB driver for Go."
+msgstr ""
+
+#: gnu/packages/databases.scm:226
+msgid ""
+"@code{mgo} (pronounced as mango) is a MongoDB driver for the Go language.\n"
+"It implements a rich selection of features under a simple API following\n"
+"standard Go idioms."
+msgstr ""
+
+#: gnu/packages/databases.scm:272
+msgid "Run temporary PostgreSQL databases"
+msgstr ""
+
+#: gnu/packages/databases.scm:274
+msgid ""
+"@code{pg_tmp} creates temporary PostgreSQL databases, suitable for tasks\n"
+"like running software test suites.  Temporary databases created with\n"
+"@code{pg_tmp} have a limited shared memory footprint and are automatically\n"
+"garbage-collected after a configurable number of seconds (the default is\n"
+"60)."
+msgstr ""
+
+#: gnu/packages/databases.scm:301
+msgid "Utility for dumping and restoring ElasticSearch indexes"
+msgstr ""
+
+#: gnu/packages/databases.scm:303
+msgid ""
+"This package provides a utility for dumping the contents of an\n"
+"ElasticSearch index to a compressed file and restoring the dumpfile back to an\n"
+"ElasticSearch server"
+msgstr ""
+
+#: gnu/packages/databases.scm:328
+msgid "Fast key-value storage library"
+msgstr ""
+
+#: gnu/packages/databases.scm:330
+msgid ""
+"LevelDB is a fast key-value storage library that provides an ordered\n"
+"mapping from string keys to string values."
+msgstr ""
+
+#: gnu/packages/databases.scm:350
+msgid "In-memory caching service"
+msgstr ""
+
+#: gnu/packages/databases.scm:351
+msgid ""
+"Memcached is an in-memory key-value store.  It has a small\n"
+"and generic API, and was originally intended for use with dynamic web\n"
+"applications."
+msgstr ""
+
+#: gnu/packages/databases.scm:428
+msgid "C++ library for memcached"
+msgstr ""
+
+#: gnu/packages/databases.scm:429
+msgid ""
+"libMemcached is a library to use memcached in C/C++\n"
+"applications.  It comes with a complete reference guide and documentation of\n"
+"the API, and provides features such as:\n"
+"@itemize\n"
+"@item Asynchronous and synchronous transport support\n"
+"@item Consistent hashing and distribution\n"
+"@item Tunable hashing algorithm to match keys\n"
+"@item Access to large object support\n"
+"@item Local replication\n"
+"@end itemize"
+msgstr ""
+
+#: gnu/packages/databases.scm:467
+#, fuzzy
+#| msgid "Python bindings for cairo"
+msgid "Python client for memcached"
+msgstr "Bindoj de Python por Cairo"
+
+#: gnu/packages/databases.scm:469
+msgid ""
+"@code{pylibmc} is a client in Python for memcached.  It is a wrapper\n"
+"around TangentOrg’s libmemcached library, and can be used as a drop-in\n"
+"replacement for the code@{python-memcached} library."
+msgstr ""
+
+#: gnu/packages/databases.scm:604
+msgid "High performance and high availability document database"
+msgstr ""
+
+#: gnu/packages/databases.scm:606
+msgid ""
+"Mongo is a high-performance, high availability, schema-free\n"
+"document-oriented database.  A key goal of MongoDB is to bridge the gap\n"
+"between key/value stores (which are fast and highly scalable) and traditional\n"
+"RDBMS systems (which are deep in functionality)."
+msgstr ""
+
+#: gnu/packages/databases.scm:638
+msgid "Terminal Client for MySQL with AutoCompletion and Syntax Highlighting"
+msgstr ""
+
+#: gnu/packages/databases.scm:640
+msgid ""
+"MyCLI is a command line interface for MySQL, MariaDB, and Percona with\n"
+"auto-completion and syntax highlighting."
+msgstr ""
+
+#: gnu/packages/databases.scm:709
 msgid "Fast, easy to use, and popular database"
 msgstr "Rapida, faciluzebla, kaj populara datumbazo"
 
-#: gnu/packages/databases.scm:145
+#: gnu/packages/databases.scm:711
 msgid ""
 "MySQL is a fast, reliable, and easy to use relational database\n"
 "management system that supports the standardized Structured Query\n"
 "Language."
 msgstr ""
 
-#: gnu/packages/databases.scm:166
+#: gnu/packages/databases.scm:964
+msgid "SQL database server"
+msgstr ""
+
+#: gnu/packages/databases.scm:966
+msgid ""
+"MariaDB is a multi-user and multi-threaded SQL database server, designed\n"
+"as a drop-in replacement of MySQL."
+msgstr ""
+
+#: gnu/packages/databases.scm:989
+msgid "Client library to connect to MySQL or MariaDB"
+msgstr ""
+
+#: gnu/packages/databases.scm:990
+msgid ""
+"The MariaDB Connector/C is used to connect applications\n"
+"developed in C/C++ to MariaDB and MySQL databases."
+msgstr ""
+
+#: gnu/packages/databases.scm:1031
 msgid "Powerful object-relational database system"
 msgstr "Potenca objekt-rilata datumbaza sistemo"
 
-#: gnu/packages/databases.scm:168
+#: gnu/packages/databases.scm:1033
 msgid ""
 "PostgreSQL is a powerful object-relational database system.  It is fully\n"
 "ACID compliant, has full support for foreign keys, joins, views, triggers, and\n"
@@ -381,11 +3087,37 @@ msgid ""
 "pictures, sounds, or video."
 msgstr ""
 
-#: gnu/packages/databases.scm:203
+#: gnu/packages/databases.scm:1085
+msgid "Pure-Python MySQL driver"
+msgstr ""
+
+#: gnu/packages/databases.scm:1087
+msgid ""
+"PyMySQL is a pure-Python MySQL client library, based on PEP 249.\n"
+"Most public APIs are compatible with @command{mysqlclient} and MySQLdb."
+msgstr ""
+
+#: gnu/packages/databases.scm:1113
+#, fuzzy
+#| msgid "Trivial database"
+msgid "Key-value database"
+msgstr "Ordinara datumbazo"
+
+#: gnu/packages/databases.scm:1114
+msgid ""
+"QDBM is a library of routines for managing a\n"
+"database.  The database is a simple data file containing key-value\n"
+"pairs.  Every key and value is serial bytes with variable length.\n"
+"Binary data as well as character strings can be used as a key or a\n"
+"value.  There is no concept of data tables or data types.  Records are\n"
+"organized in a hash table or B+ tree."
+msgstr ""
+
+#: gnu/packages/databases.scm:1149
 msgid "Manipulate plain text files as databases"
 msgstr "Manipuli simplajn tekst-dosierojn kiel datumbazojn"
 
-#: gnu/packages/databases.scm:205
+#: gnu/packages/databases.scm:1151
 msgid ""
 "GNU Recutils is a set of tools and libraries for creating and\n"
 "manipulating text-based, human-editable databases.  Despite being text-based,\n"
@@ -394,23 +3126,77 @@ msgid ""
 "types are supported, as is encryption."
 msgstr ""
 
-#: gnu/packages/databases.scm:241
-msgid "The SQLite database management system"
-msgstr "La datumbaza administra sistemo SQLite"
+#: gnu/packages/databases.scm:1173
+msgid "Emacs mode for working with recutils database files"
+msgstr ""
 
-#: gnu/packages/databases.scm:243
+#: gnu/packages/databases.scm:1174
 msgid ""
-"SQLite is a software library that implements a self-contained, serverless,\n"
-"zero-configuration, transactional SQL database engine.  SQLite is the most\n"
-"widely deployed SQL database engine in the world.  The source code for SQLite\n"
-"is in the public domain."
+"This package provides an Emacs major mode @code{rec-mode}\n"
+"for working with GNU Recutils text-based, human-editable databases.  It\n"
+"supports editing, navigation, and querying of recutils database files\n"
+"including field and record folding."
+msgstr ""
+
+#: gnu/packages/databases.scm:1268
+msgid "Persistent key-value store for fast storage"
 msgstr ""
 
-#: gnu/packages/databases.scm:278
+#: gnu/packages/databases.scm:1270
+msgid ""
+"RocksDB is a library that forms the core building block for a fast\n"
+"key-value server, especially suited for storing data on flash drives.  It\n"
+"has a @dfn{Log-Structured-Merge-Database} (LSM) design with flexible tradeoffs\n"
+"between @dfn{Write-Amplification-Factor} (WAF), @dfn{Read-Amplification-Factor}\n"
+"(RAF) and @dfn{Space-Amplification-Factor} (SAF).  It has multi-threaded\n"
+"compactions, making it specially suitable for storing multiple terabytes of\n"
+"data in a single database.  RocksDB is partially based on @code{LevelDB}."
+msgstr ""
+
+#: gnu/packages/databases.scm:1331
+#, fuzzy
+#| msgid "Command-line tools to access digital cameras"
+msgid "Command-line tool for accessing SPARQL endpoints over HTTP"
+msgstr "Komandliniaj iloj por aliri ciferecajn kameraojn"
+
+#: gnu/packages/databases.scm:1332
+msgid ""
+"Sparql-query is a command-line tool for accessing SPARQL\n"
+"endpoints over HTTP.  It has been intentionally designed to @code{feel} similar to\n"
+"tools for interrogating SQL databases.  For example, you can enter a query over\n"
+"several lines, using a semi-colon at the end of a line to indicate the end of\n"
+"your query.  It also supports readline so that you can more easily recall and\n"
+"edit previous queries, even across sessions.  It can be used non-interactively,\n"
+"for example from a shell script."
+msgstr ""
+
+#: gnu/packages/databases.scm:1423
+msgid "Database change management tool"
+msgstr ""
+
+#: gnu/packages/databases.scm:1425
+msgid ""
+"Sqitch is a standalone change management system for database schemas,\n"
+"which uses SQL to describe changes."
+msgstr ""
+
+#: gnu/packages/databases.scm:1452
+msgid "Text console-based database viewer and editor"
+msgstr ""
+
+#: gnu/packages/databases.scm:1454
+msgid ""
+"SQLcrush lets you view and edit a database directly from the text\n"
+"console through an ncurses interface.  You can explore each table's structure,\n"
+"browse and edit the contents, add and delete entries, all while tracking your\n"
+"changes."
+msgstr ""
+
+#: gnu/packages/databases.scm:1490
 msgid "Trivial database"
 msgstr "Ordinara datumbazo"
 
-#: gnu/packages/databases.scm:280
+#: gnu/packages/databases.scm:1492
 msgid ""
 "TDB is a Trivial Database.  In concept, it is very much like GDBM,\n"
 "and BSD's DB except that it allows multiple simultaneous writers and uses\n"
@@ -418,19 +3204,94 @@ msgid ""
 "extremely small."
 msgstr ""
 
-#: gnu/packages/databases.scm:299
+#: gnu/packages/databases.scm:1511
 msgid "Database independent interface for Perl"
 msgstr "Datumbaz-sendependa interfaco por Perl"
 
-#: gnu/packages/databases.scm:300
+#: gnu/packages/databases.scm:1512
 msgid "This package provides an database interface for Perl."
 msgstr "Tiu ĉi pako provizas datumbazan interfacon por Perl."
 
-#: gnu/packages/databases.scm:319
+#: gnu/packages/databases.scm:1559
+msgid "Extensible and flexible object <-> relational mapper"
+msgstr ""
+
+#: gnu/packages/databases.scm:1560
+msgid ""
+"An SQL to OO mapper with an object API inspired by\n"
+"Class::DBI (with a compatibility layer as a springboard for porting) and a\n"
+"resultset API that allows abstract encapsulation of database operations.  It\n"
+"aims to make representing queries in your code as perl-ish as possible while\n"
+"still providing access to as many of the capabilities of the database as\n"
+"possible, including retrieving related records from multiple tables in a\n"
+"single query, \"JOIN\", \"LEFT JOIN\", \"COUNT\", \"DISTINCT\", \"GROUP BY\",\n"
+"\"ORDER BY\" and \"HAVING\" support."
+msgstr ""
+
+#: gnu/packages/databases.scm:1591
+msgid "Cursor with built-in caching support"
+msgstr ""
+
+#: gnu/packages/databases.scm:1592
+msgid ""
+"DBIx::Class::Cursor::Cached provides a cursor class with\n"
+"built-in caching support."
+msgstr ""
+
+#: gnu/packages/databases.scm:1614
+msgid "Introspect many-to-many relationships"
+msgstr ""
+
+#: gnu/packages/databases.scm:1615
+msgid ""
+"Because the many-to-many relationships are not real\n"
+"relationships, they can not be introspected with DBIx::Class.  Many-to-many\n"
+"relationships are actually just a collection of convenience methods installed\n"
+"to bridge two relationships.  This DBIx::Class component can be used to store\n"
+"all relevant information about these non-relationships so they can later be\n"
+"introspected and examined."
+msgstr ""
+
+#: gnu/packages/databases.scm:1673
+msgid "Create a DBIx::Class::Schema based on a database"
+msgstr ""
+
+#: gnu/packages/databases.scm:1674
+msgid ""
+"DBIx::Class::Schema::Loader automates the definition of a\n"
+"DBIx::Class::Schema by scanning database table definitions and setting up the\n"
+"columns, primary keys, unique constraints and relationships."
+msgstr ""
+
+#: gnu/packages/databases.scm:1698
+msgid "DBI PostgreSQL interface"
+msgstr ""
+
+#: gnu/packages/databases.scm:1699
+#, fuzzy
+#| msgid "This package provides an database interface for Perl."
+msgid ""
+"This package provides a PostgreSQL driver for the Perl5\n"
+"@dfn{Database Interface} (DBI)."
+msgstr "Tiu ĉi pako provizas datumbazan interfacon por Perl."
+
+#: gnu/packages/databases.scm:1736
+msgid "DBI MySQL interface"
+msgstr ""
+
+#: gnu/packages/databases.scm:1737
+#, fuzzy
+#| msgid "This package provides an database interface for Perl."
+msgid ""
+"This package provides a MySQL driver for the Perl5\n"
+"@dfn{Database Interface} (DBI)."
+msgstr "Tiu ĉi pako provizas datumbazan interfacon por Perl."
+
+#: gnu/packages/databases.scm:1756
 msgid "SQlite interface for Perl"
 msgstr "Interfaco de SQLite por Perl"
 
-#: gnu/packages/databases.scm:320
+#: gnu/packages/databases.scm:1757
 msgid ""
 "DBD::SQLite is a Perl DBI driver for SQLite, that includes\n"
 "the entire thing in the distribution.  So in order to get a fast transaction\n"
@@ -438,35 +3299,1183 @@ msgid ""
 "module, and nothing else."
 msgstr ""
 
-#: gnu/packages/databases.scm:340
+#: gnu/packages/databases.scm:1780
+#, scheme-format
+msgid "Parse and utilize MySQL's /etc/my.cnf and ~/.my.cnf files"
+msgstr ""
+
+#: gnu/packages/databases.scm:1782
+msgid ""
+"@code{MySQL::Config} emulates the @code{load_defaults} function from\n"
+"libmysqlclient.  It will fill an array with long options, ready to be parsed by\n"
+"@code{Getopt::Long}."
+msgstr ""
+
+#: gnu/packages/databases.scm:1810 gnu/packages/databases.scm:1839
+msgid "Generate SQL from Perl data structures"
+msgstr ""
+
+#: gnu/packages/databases.scm:1811
+msgid ""
+"This module was inspired by the excellent DBIx::Abstract.\n"
+"While based on the concepts used by DBIx::Abstract, the concepts used have\n"
+"been modified to make the SQL easier to generate from Perl data structures.\n"
+"The underlying idea is for this module to do what you mean, based on the data\n"
+"structures you provide it, so that you don't have to modify your code every\n"
+"time your data changes."
+msgstr ""
+
+#: gnu/packages/databases.scm:1841
+msgid ""
+"This module is nearly identical to @code{SQL::Abstract} 1.81, and exists\n"
+"to preserve the ability of users to opt into the new way of doing things in\n"
+"later versions according to their own schedules.\n"
+"\n"
+"It is an abstract SQL generation module based on the concepts used by\n"
+"@code{DBIx::Abstract}, with several important differences, especially when it\n"
+"comes to @code{WHERE} clauses.  These concepts were modified to make the SQL\n"
+"easier to generate from Perl data structures.\n"
+"\n"
+"The underlying idea is for this module to do what you mean, based on the data\n"
+"structures you provide it.  You shouldn't have to modify your code every time\n"
+"your data changes, as this module figures it out."
+msgstr ""
+
+#: gnu/packages/databases.scm:1876
+msgid "Split SQL code into atomic statements"
+msgstr ""
+
+#: gnu/packages/databases.scm:1877
+msgid ""
+"This module tries to split any SQL code, even including\n"
+"non-standard extensions, into the atomic statements it is composed of."
+msgstr ""
+
+#: gnu/packages/databases.scm:1895
+msgid "SQL tokenizer"
+msgstr ""
+
+#: gnu/packages/databases.scm:1896
+msgid ""
+"SQL::Tokenizer is a tokenizer for SQL queries.  It does not\n"
+"claim to be a parser or query verifier.  It just creates sane tokens from a\n"
+"valid SQL query."
+msgstr ""
+
+#: gnu/packages/databases.scm:1914
 msgid "Data source abstraction library"
 msgstr "Datumar-fonta abstrakta biblioteko"
 
-#: gnu/packages/databases.scm:341
+#: gnu/packages/databases.scm:1915
 msgid ""
 "Unixodbc is a library providing an API with which to access\n"
 "data sources.  Data sources include SQL Servers and any software with an ODBC\n"
 "Driver."
 msgstr ""
 
-#: gnu/packages/games.scm:95
+#: gnu/packages/databases.scm:1939
+msgid "In-memory key/value and document store"
+msgstr ""
+
+#: gnu/packages/databases.scm:1941
+msgid ""
+"UnQLite is an in-process software library which implements a\n"
+"self-contained, serverless, zero-configuration, transactional NoSQL\n"
+"database engine.  UnQLite is a document store database similar to\n"
+"MongoDB, Redis, CouchDB, etc. as well as a standard Key/Value store\n"
+"similar to BerkeleyDB, LevelDB, etc."
+msgstr ""
+
+#: gnu/packages/databases.scm:1969
+msgid "Key-value cache and store"
+msgstr ""
+
+#: gnu/packages/databases.scm:1970
+msgid ""
+"Redis is an advanced key-value cache and store.  Redis\n"
+"supports many data structures including strings, hashes, lists, sets, sorted\n"
+"sets, bitmaps and hyperloglogs."
+msgstr ""
+
+#: gnu/packages/databases.scm:1997
+msgid "Kyoto Cabinet is a modern implementation of the DBM database"
+msgstr ""
+
+#: gnu/packages/databases.scm:1999
+msgid ""
+"Kyoto Cabinet is a standalone file-based database that supports Hash\n"
+"and B+ Tree data storage models.  It is a fast key-value lightweight\n"
+"database and supports many programming languages.  It is a NoSQL database."
+msgstr ""
+
+#: gnu/packages/databases.scm:2025
+msgid "Tokyo Cabinet is a modern implementation of the DBM database"
+msgstr ""
+
+#: gnu/packages/databases.scm:2027
+msgid ""
+"Tokyo Cabinet is a library of routines for managing a database.\n"
+"The database is a simple data file containing records, each is a pair of a\n"
+"key and a value.  Every key and value is serial bytes with variable length.\n"
+"Both binary data and character string can be used as a key and a value.\n"
+"There is neither concept of data tables nor data types.  Records are\n"
+"organized in hash table, B+ tree, or fixed-length array."
+msgstr ""
+
+#: gnu/packages/databases.scm:2063
+msgid "NoSQL data engine"
+msgstr ""
+
+#: gnu/packages/databases.scm:2065
+msgid ""
+"WiredTiger is an extensible platform for data management.  It supports\n"
+"row-oriented storage (where all columns of a row are stored together),\n"
+"column-oriented storage (where columns are stored in groups, allowing for\n"
+"more efficient access and storage of column subsets) and log-structured merge\n"
+"trees (LSM), for sustained throughput under random insert workloads."
+msgstr ""
+
+#: gnu/packages/databases.scm:2116
+#, fuzzy
+#| msgid "Cairo bindings for GNU Guile"
+msgid "WiredTiger bindings for GNU Guile"
+msgstr "Bindoj de Cairo por GNU Guile"
+
+#: gnu/packages/databases.scm:2118
+msgid ""
+"This package provides Guile bindings to the WiredTiger ``NoSQL''\n"
+"database."
+msgstr ""
+
+#: gnu/packages/databases.scm:2146
+msgid "Perl5 access to Berkeley DB version 1.x"
+msgstr ""
+
+#: gnu/packages/databases.scm:2148
+msgid "The DB::File module provides Perl bindings to the Berkeley DB version 1.x."
+msgstr ""
+
+#: gnu/packages/databases.scm:2176
+msgid "Lightning Memory-Mapped Database library"
+msgstr ""
+
+#: gnu/packages/databases.scm:2178
+msgid ""
+"The @dfn{Lightning Memory-Mapped Database} (LMDB) is a high-performance\n"
+"transactional database.  Unlike more complex relational databases, LMDB handles\n"
+"only key-value pairs (stored as arbitrary byte arrays) and relies on the\n"
+"underlying operating system for caching and locking, keeping the code small and\n"
+"simple.\n"
+"The use of ‘zero-copy’ memory-mapped files combines the persistence of classic\n"
+"disk-based databases with high read performance that scales linearly over\n"
+"multiple cores.  The size of each database is limited only by the size of the\n"
+"virtual address space — not physical RAM."
+msgstr ""
+
+#: gnu/packages/databases.scm:2211
+msgid "C++11 wrapper for the LMDB embedded B+ tree database library"
+msgstr ""
+
+#: gnu/packages/databases.scm:2212
+msgid ""
+"@code{lmdbxx} is a comprehensive @code{C++} wrapper for the\n"
+"@code{LMDB} embedded database library, offering both an error-checked\n"
+"procedural interface and an object-oriented resource interface with RAII\n"
+"semantics."
+msgstr ""
+
+#: gnu/packages/databases.scm:2244
+msgid "C++ connector for PostgreSQL"
+msgstr ""
+
+#: gnu/packages/databases.scm:2246
+msgid ""
+"Libpqxx is a C++ library to enable user programs to communicate with the\n"
+"PostgreSQL database back-end.  The database back-end can be local or it may be\n"
+"on another machine, accessed via TCP/IP."
+msgstr ""
+
+#: gnu/packages/databases.scm:2269
+msgid "Small object-relational mapping utility"
+msgstr ""
+
+#: gnu/packages/databases.scm:2271
+msgid ""
+"Peewee is a simple and small ORM (object-relation mapping) tool.  Peewee\n"
+"handles converting between pythonic values and those used by databases, so you\n"
+"can use Python types in your code without having to worry.  It has built-in\n"
+"support for sqlite, mysql and postgresql.  If you already have a database, you\n"
+"can autogenerate peewee models using @code{pwiz}, a model generator."
+msgstr ""
+
+#: gnu/packages/databases.scm:2307
+msgid "Easy async ORM for python, built with relations in mind"
+msgstr ""
+
+#: gnu/packages/databases.scm:2309
+msgid ""
+"Tortoise ORM is an easy-to-use asyncio ORM (Object Relational Mapper)\n"
+"inspired by Django.  Tortoise ORM was build with relations in mind and\n"
+"admiration for the excellent and popular Django ORM.  It’s engraved in its\n"
+"design that you are working not with just tables, you work with relational\n"
+"data."
+msgstr ""
+
+#: gnu/packages/databases.scm:2352
+msgid "Library providing transparent encryption of SQLite database files"
+msgstr ""
+
+#: gnu/packages/databases.scm:2353
+msgid ""
+"SQLCipher is an implementation of SQLite, extended to\n"
+"provide transparent 256-bit AES encryption of database files.  Pages are\n"
+"encrypted before being written to disk and are decrypted when read back.  It’s\n"
+"well suited for protecting embedded application databases and for mobile\n"
+"development."
+msgstr ""
+
+#: gnu/packages/databases.scm:2385 gnu/packages/databases.scm:2410
+#, fuzzy
+#| msgid "The GNU C Library"
+msgid "Python ODBC Library"
+msgstr "La Biblioteko GNU C"
+
+#: gnu/packages/databases.scm:2386
+msgid ""
+"@code{python-pyodbc-c} provides a Python DB-API driver\n"
+"for ODBC."
+msgstr ""
+
+#: gnu/packages/databases.scm:2411
+msgid ""
+"@code{python-pyodbc} provides a Python DB-API driver\n"
+"for ODBC."
+msgstr ""
+
+#: gnu/packages/databases.scm:2443
+msgid "Read Microsoft Access databases"
+msgstr ""
+
+#: gnu/packages/databases.scm:2444
+msgid ""
+"MDB Tools is a set of tools and applications to read the\n"
+"proprietary MDB file format used in Microsoft's Access database package.  This\n"
+"includes programs to export schema and data from Microsoft's Access database\n"
+"file format to other databases such as MySQL, Oracle, Sybase, PostgreSQL,\n"
+"etc., and an SQL engine for performing simple SQL queries."
+msgstr ""
+
+#: gnu/packages/databases.scm:2488
+msgid "Python binding for the ‘Lightning’ database (LMDB)"
+msgstr ""
+
+#: gnu/packages/databases.scm:2490
+msgid ""
+"python-lmdb or py-lmdb is a Python binding for the @dfn{Lightning\n"
+"Memory-Mapped Database} (LMDB), a high-performance key-value store."
+msgstr ""
+
+#: gnu/packages/databases.scm:2527
+msgid "ActiveRecord ORM for Python"
+msgstr ""
+
+#: gnu/packages/databases.scm:2529
+msgid ""
+"Orator provides a simple ActiveRecord-like Object Relational Mapping\n"
+"implementation for Python."
+msgstr ""
+
+#: gnu/packages/databases.scm:2574
+#, fuzzy
+#| msgid "Powerful object-relational database system"
+msgid "Multi-model database system"
+msgstr "Potenca objekt-rilata datumbaza sistemo"
+
+#: gnu/packages/databases.scm:2575
+msgid ""
+"Virtuoso is a scalable cross-platform server that combines\n"
+"relational, graph, and document data management with web application server\n"
+"and web services platform functionality."
+msgstr ""
+
+#: gnu/packages/databases.scm:2601
+msgid ""
+"Cassandra Cluster Manager for Apache Cassandra clusters on\n"
+"localhost"
+msgstr ""
+
+#: gnu/packages/databases.scm:2603
+msgid ""
+"Cassandra Cluster Manager is a development tool for testing\n"
+"local Cassandra clusters. It creates, launches and removes Cassandra clusters\n"
+"on localhost."
+msgstr ""
+
+#: gnu/packages/databases.scm:2629
+#, fuzzy
+#| msgid "Python bindings for cairo"
+msgid "SQLite bindings for Python"
+msgstr "Bindoj de Python por Cairo"
+
+#: gnu/packages/databases.scm:2631
+msgid ""
+"Pysqlite provides SQLite bindings for Python that comply to the\n"
+"Database API 2.0T."
+msgstr ""
+
+#: gnu/packages/databases.scm:2656
+#, fuzzy
+#| msgid "Data source abstraction library"
+msgid "Database abstraction library"
+msgstr "Datumar-fonta abstrakta biblioteko"
+
+#: gnu/packages/databases.scm:2658
+msgid ""
+"SQLAlchemy is the Python SQL toolkit and Object Relational Mapper that\n"
+"gives application developers the full power and flexibility of SQL.  It\n"
+"provides a full suite of well known enterprise-level persistence patterns,\n"
+"designed for efficient and high-performing database access, adapted into a\n"
+"simple and Pythonic domain language."
+msgstr ""
+
+#: gnu/packages/databases.scm:2697
+msgid "Various utility functions for SQLAlchemy"
+msgstr ""
+
+#: gnu/packages/databases.scm:2699
+msgid ""
+"SQLAlchemy-utils provides various utility functions and custom data types\n"
+"for SQLAlchemy.  SQLAlchemy is an SQL database abstraction library for Python.\n"
+"\n"
+"You might also want to install the following optional dependencies:\n"
+"@enumerate\n"
+"@item @code{python-passlib}\n"
+"@item @code{python-babel}\n"
+"@item @code{python-cryptography}\n"
+"@item @code{python-pytz}\n"
+"@item @code{python-psycopg2}\n"
+"@item @code{python-furl}\n"
+"@item @code{python-flask-babel}\n"
+"@end enumerate\n"
+msgstr ""
+
+#: gnu/packages/databases.scm:2749
+msgid "Mock helpers for SQLAlchemy"
+msgstr ""
+
+#: gnu/packages/databases.scm:2751
+msgid ""
+"This package provides mock helpers for SQLAlchemy that makes it easy\n"
+"to mock an SQLAlchemy session while preserving the ability to do asserts.\n"
+"\n"
+"Normally Normally SQLAlchemy's expressions cannot be easily compared as\n"
+"comparison on binary expression produces yet another binary expression, but\n"
+"this library provides functions to facilitate such comparisons."
+msgstr ""
+
+#: gnu/packages/databases.scm:2784
+msgid "Database migration tool for SQLAlchemy"
+msgstr ""
+
+#: gnu/packages/databases.scm:2786
+msgid ""
+"Alembic is a lightweight database migration tool for usage with the\n"
+"SQLAlchemy Database Toolkit for Python."
+msgstr ""
+
+#: gnu/packages/databases.scm:2812
+msgid "Tiny key value database with concurrency support"
+msgstr ""
+
+#: gnu/packages/databases.scm:2814
+msgid ""
+"PickleShare is a small ‘shelve’-like datastore with concurrency support.\n"
+"Like shelve, a PickleShareDB object acts like a normal dictionary.  Unlike\n"
+"shelve, many processes can access the database simultaneously.  Changing a\n"
+"value in database is immediately visible to other processes accessing the same\n"
+"database.  Concurrency is possible because the values are stored in separate\n"
+"files.  Hence the “database” is a directory where all files are governed by\n"
+"PickleShare."
+msgstr ""
+
+#: gnu/packages/databases.scm:2866
+msgid "Another Python SQLite Wrapper"
+msgstr ""
+
+#: gnu/packages/databases.scm:2867
+msgid ""
+"APSW is a Python wrapper for the SQLite\n"
+"embedded relational database engine.  In contrast to other wrappers such as\n"
+"pysqlite it focuses on being a minimal layer over SQLite attempting just to\n"
+"translate the complete SQLite API into Python."
+msgstr ""
+
+#: gnu/packages/databases.scm:2892
+msgid "Asyncio bridge for sqlite3"
+msgstr ""
+
+#: gnu/packages/databases.scm:2894
+msgid ""
+"The package aiosqlite replicates the standard sqlite3 module, but with\n"
+"async versions of all the standard connection and cursor methods, and context\n"
+"managers for automatically closing connections."
+msgstr ""
+
+#: gnu/packages/databases.scm:2914
+msgid "Neo4j driver code written in Python"
+msgstr ""
+
+#: gnu/packages/databases.scm:2915
+msgid ""
+"This package provides the Neo4j Python driver that connects\n"
+"to the database using Neo4j's binary protocol.  It aims to be minimal, while\n"
+"being idiomatic to Python."
+msgstr ""
+
+#: gnu/packages/databases.scm:2934
+msgid "Library and toolkit for working with Neo4j in Python"
+msgstr ""
+
+#: gnu/packages/databases.scm:2935
+msgid ""
+"This package provides a client library and toolkit for\n"
+"working with Neo4j from within Python applications and from the command\n"
+"line.  The core library has no external dependencies and has been carefully\n"
+"designed to be easy and intuitive to use."
+msgstr ""
+
+#: gnu/packages/databases.scm:2959
+msgid "Python PostgreSQL adapter"
+msgstr ""
+
+#: gnu/packages/databases.scm:2961
+msgid ""
+"psycopg2 is a thread-safe PostgreSQL adapter that implements DB-API\n"
+"2.0."
+msgstr ""
+
+#: gnu/packages/databases.scm:2986
+msgid "SQLAlchemy schema displayer"
+msgstr ""
+
+#: gnu/packages/databases.scm:2987
+msgid ""
+"This package provides a program to build Entity\n"
+"Relationship diagrams from a SQLAlchemy model (or directly from the\n"
+"database)."
+msgstr ""
+
+#: gnu/packages/databases.scm:3012
+msgid "MySQLdb is an interface to the popular MySQL database server for Python"
+msgstr ""
+
+#: gnu/packages/databases.scm:3013
+msgid ""
+"MySQLdb is an interface to the popular MySQL database server\n"
+"for Python.  The design goals are:\n"
+"@enumerate\n"
+"@item Compliance with Python database API version 2.0 [PEP-0249],\n"
+"@item Thread-safety,\n"
+"@item Thread-friendliness (threads will not block each other).\n"
+"@end enumerate"
+msgstr ""
+
+#: gnu/packages/databases.scm:3038
+msgid "Python extension that wraps protocol parsing code in hiredis"
+msgstr ""
+
+#: gnu/packages/databases.scm:3039
+msgid ""
+"Python-hiredis is a python extension that wraps protocol\n"
+"parsing code in hiredis.  It primarily speeds up parsing of multi bulk replies."
+msgstr ""
+
+#: gnu/packages/databases.scm:3064
+msgid "Fake implementation of redis API for testing purposes"
+msgstr ""
+
+#: gnu/packages/databases.scm:3066
+msgid ""
+"Fakeredis is a pure-Python implementation of the redis-py Python client\n"
+"that simulates talking to a redis server.  It was created for a single purpose:\n"
+"to write unit tests.\n"
+"\n"
+"Setting up redis is not hard, but one often wants to write unit tests that don't\n"
+"talk to an external server such as redis.  This module can be used as a\n"
+"reasonable substitute."
+msgstr ""
+
+#: gnu/packages/databases.scm:3095
+msgid "Redis Python client"
+msgstr ""
+
+#: gnu/packages/databases.scm:3097
+#, fuzzy
+#| msgid "This package provides an database interface for Perl."
+msgid "This package provides a Python interface to the Redis key-value store."
+msgstr "Tiu ĉi pako provizas datumbazan interfacon por Perl."
+
+#: gnu/packages/databases.scm:3139
+msgid "Simple job queues for Python"
+msgstr ""
+
+#: gnu/packages/databases.scm:3141
+msgid ""
+"RQ (Redis Queue) is a simple Python library for queueing jobs and\n"
+"processing them in the background with workers.  It is backed by Redis and it\n"
+"is designed to have a low barrier to entry."
+msgstr ""
+
+#: gnu/packages/databases.scm:3181
+msgid "Job scheduling capabilities for RQ (Redis Queue)"
+msgstr ""
+
+#: gnu/packages/databases.scm:3183
+msgid ""
+"This package provides job scheduling capabilities to @code{python-rq}\n"
+"(Redis Queue)."
+msgstr ""
+
+#: gnu/packages/databases.scm:3202
+msgid "Port of asyncio-redis to trollius"
+msgstr ""
+
+#: gnu/packages/databases.scm:3203
+msgid ""
+"@code{trollius-redis} is a Redis client for Python\n"
+"  trollius.  It is an asynchronous IO (PEP 3156) implementation of the\n"
+"  Redis protocol."
+msgstr ""
+
+#: gnu/packages/databases.scm:3230
+msgid "Non-validating SQL parser"
+msgstr ""
+
+#: gnu/packages/databases.scm:3231
+msgid ""
+"Sqlparse is a non-validating SQL parser for Python.  It\n"
+"provides support for parsing, splitting and formatting SQL statements."
+msgstr ""
+
+#: gnu/packages/databases.scm:3250
+msgid "Library to write SQL queries in a pythonic way"
+msgstr ""
+
+#: gnu/packages/databases.scm:3251
+msgid ""
+"@code{python-sql} is a library to write SQL queries, that\n"
+"transforms idiomatic python function calls to well-formed SQL queries."
+msgstr ""
+
+#: gnu/packages/databases.scm:3275
+msgid "SQL query builder API for Python"
+msgstr ""
+
+#: gnu/packages/databases.scm:3277
+msgid ""
+"PyPika is a python SQL query builder that exposes the full richness of\n"
+"the SQL language using a syntax that reflects the resulting query."
+msgstr ""
+
+#: gnu/packages/databases.scm:3371
+msgid "Various tools for interacting with MongoDB and BSON"
+msgstr ""
+
+#: gnu/packages/databases.scm:3373
+msgid ""
+"This package includes a collection of tools related to MongoDB.\n"
+"@table @code\n"
+"@item bsondump\n"
+"Display BSON files in a human-readable format\n"
+"@item mongoimport\n"
+"Convert data from JSON, TSV or CSV and insert them into a collection\n"
+"@item mongoexport\n"
+"Write an existing collection to CSV or JSON format\n"
+"@item mongodump/mongorestore\n"
+"Dump MongoDB backups to disk in the BSON format\n"
+"@item mongorestore\n"
+"Read MongoDB backups in the BSON format, and restore them to a live database\n"
+"@item mongostat\n"
+"Monitor live MongoDB servers, replica sets, or sharded clusters\n"
+"@item mongofiles\n"
+"Read, write, delete, or update files in GridFS\n"
+"@item mongooplog\n"
+"Replay oplog entries between MongoDB servers\n"
+"@item mongotop\n"
+"Monitor read/write activity on a mongo server\n"
+"@end table"
+msgstr ""
+
+#: gnu/packages/databases.scm:3510
+msgid "Columnar in-memory analytics"
+msgstr ""
+
+#: gnu/packages/databases.scm:3511
+msgid ""
+"Apache Arrow is a columnar in-memory analytics layer\n"
+"designed to accelerate big data.  It houses a set of canonical in-memory\n"
+"representations of flat and hierarchical data along with multiple\n"
+"language-bindings for structure manipulation.  It also provides IPC and common\n"
+"algorithm implementations."
+msgstr ""
+
+#: gnu/packages/databases.scm:3548
+#, fuzzy
+#| msgid "Python bindings for cairo"
+msgid "Python bindings for Apache Arrow"
+msgstr "Bindoj de Python por Cairo"
+
+#: gnu/packages/databases.scm:3550
+msgid ""
+"This library provides a Pythonic API wrapper for the reference Arrow C++\n"
+"implementation, along with tools for interoperability with pandas, NumPy, and\n"
+"other traditional Python scientific computing packages."
+msgstr ""
+
+#: gnu/packages/databases.scm:3572
+msgid "CrateDB Python client"
+msgstr ""
+
+#: gnu/packages/databases.scm:3574
+msgid ""
+"This package provides a Python client library for CrateDB.\n"
+"It implements the Python DB API 2.0 specification and includes support for\n"
+"SQLAlchemy."
+msgstr ""
+
+#: gnu/packages/databases.scm:3591
+#, fuzzy
+#| msgid "Database independent interface for Perl"
+msgid "Database independent abstraction layer in C"
+msgstr "Datumbaz-sendependa interfaco por Perl"
+
+#: gnu/packages/databases.scm:3593
+msgid ""
+"This library implements a database independent abstraction layer in C,\n"
+"similar to the DBI/DBD layer in Perl.  Writing one generic set of code,\n"
+"programmers can leverage the power of multiple databases and multiple\n"
+"simultaneous database connections by using this framework."
+msgstr ""
+
+#: gnu/packages/databases.scm:3658
+msgid "Database drivers for the libdbi framework"
+msgstr ""
+
+#: gnu/packages/databases.scm:3660
+msgid ""
+"The @code{libdbi-drivers} library provides the database specific drivers\n"
+"for the @code{libdbi} framework.\n"
+"\n"
+"The drivers officially supported by @code{libdbi} are:\n"
+"@itemize\n"
+"@item MySQL,\n"
+"@item PostgreSQL,\n"
+"@item SQLite.\n"
+"@end itemize"
+msgstr ""
+
+#: gnu/packages/databases.scm:3702
+msgid "C++ Database Access Library"
+msgstr ""
+
+#: gnu/packages/databases.scm:3704
+msgid ""
+"SOCI is an abstraction layer for several database backends, including\n"
+"PostreSQL, SQLite, ODBC and MySQL."
+msgstr ""
+
+#: gnu/packages/debug.scm:102
+msgid "Heuristical file minimizer"
+msgstr ""
+
+#: gnu/packages/debug.scm:104
+msgid ""
+"Delta assists you in minimizing \"interesting\" files subject to a test\n"
+"of their interestingness.  A common such situation is when attempting to\n"
+"isolate a small failure-inducing substring of a large input that causes your\n"
+"program to exhibit a bug."
+msgstr ""
+
+#: gnu/packages/debug.scm:163
+msgid "Reducer for interesting code"
+msgstr ""
+
+#: gnu/packages/debug.scm:165
+msgid ""
+"C-Reduce is a tool that takes a large C or C++ program that has a\n"
+"property of interest (such as triggering a compiler bug) and automatically\n"
+"produces a much smaller C/C++ program that has the same property.  It is\n"
+"intended for use by people who discover and report bugs in compilers and other\n"
+"tools that process C/C++ code."
+msgstr ""
+
+#: gnu/packages/debug.scm:234
+msgid "Security-oriented fuzzer"
+msgstr ""
+
+#: gnu/packages/debug.scm:236
+msgid ""
+"American fuzzy lop is a security-oriented fuzzer that employs a novel\n"
+"type of compile-time instrumentation and genetic algorithms to automatically\n"
+"discover clean, interesting test cases that trigger new internal states in the\n"
+"targeted binary.  This substantially improves the functional coverage for the\n"
+"fuzzed code.  The compact synthesized corpora produced by the tool are also\n"
+"useful for seeding other, more labor- or resource-intensive testing regimes\n"
+"down the road."
+msgstr ""
+
+#: gnu/packages/debug.scm:376
+msgid "Machine emulator and virtualizer (without GUI) for american fuzzy lop"
+msgstr ""
+
+#: gnu/packages/debug.scm:378
+msgid ""
+"QEMU is a generic machine emulator and virtualizer.  This package\n"
+"of QEMU is used only by the american fuzzy lop package.\n"
+"\n"
+"When used as a machine emulator, QEMU can run OSes and programs made for one\n"
+"machine (e.g. an ARM board) on a different machine---e.g., your own PC.  By\n"
+"using dynamic translation, it achieves very good performance.\n"
+"\n"
+"When used as a virtualizer, QEMU achieves near native performances by\n"
+"executing the guest code directly on the host CPU.  QEMU supports\n"
+"virtualization when executing under the Xen hypervisor or using\n"
+"the KVM kernel module in Linux.  When using KVM, QEMU can virtualize x86,\n"
+"server and embedded PowerPC, and S390 guests."
+msgstr ""
+
+#: gnu/packages/debug.scm:446
+msgid "Expose race conditions in Makefiles"
+msgstr ""
+
+#: gnu/packages/debug.scm:448
+msgid ""
+"Stress Make is a customized GNU Make that explicitly manages the order\n"
+"in which concurrent jobs are run to provoke erroneous behavior into becoming\n"
+"manifest.  It can run jobs in the order in which they're launched, in backwards\n"
+"order, or in random order.  The thought is that if code builds correctly with\n"
+"Stress Make, then it is likely that the @code{Makefile} contains no race\n"
+"conditions."
+msgstr ""
+
+#: gnu/packages/debug.scm:475
+msgid "Transparent application input fuzzer"
+msgstr ""
+
+#: gnu/packages/debug.scm:476
+msgid ""
+"Zzuf is a transparent application input fuzzer.  It works by\n"
+"intercepting file operations and changing random bits in the program's\n"
+"input.  Zzuf's behaviour is deterministic, making it easy to reproduce bugs."
+msgstr ""
+
+#: gnu/packages/debug.scm:529
+msgid "Memory scanner"
+msgstr ""
+
+#: gnu/packages/debug.scm:530
+msgid ""
+"Scanmem is a debugging utility designed to isolate the\n"
+"address of an arbitrary variable in an executing process.  Scanmem simply\n"
+"needs to be told the pid of the process and the value of the variable at\n"
+"several different times.  After several scans of the process, scanmem isolates\n"
+"the position of the variable and allows you to modify its value."
+msgstr ""
+
+#: gnu/packages/debug.scm:560
+msgid ""
+"Remake is an enhanced version of GNU Make that adds improved\n"
+"error reporting, better tracing, profiling, and a debugger."
+msgstr ""
+
+#: gnu/packages/debug.scm:618
+msgid "Record and reply debugging framework"
+msgstr ""
+
+#: gnu/packages/debug.scm:620
+msgid ""
+"rr is a lightweight tool for recording, replaying and debugging\n"
+"execution of applications (trees of processes and threads).  Debugging extends\n"
+"GDB with very efficient reverse-execution, which in combination with standard\n"
+"GDB/x86 features like hardware data watchpoints, makes debugging much more\n"
+"fun."
+msgstr ""
+
+#: gnu/packages/debug.scm:652
+msgid "Debugging tool for MSP430 MCUs"
+msgstr ""
+
+#: gnu/packages/debug.scm:653
+msgid ""
+"MspDebug supports FET430UIF, eZ430, RF2500 and Olimex\n"
+"MSP430-JTAG-TINY programmers, as well as many other compatible\n"
+"devices.  It can be used as a proxy for gdb or as an independent\n"
+"debugger with support for programming, disassembly and reverse\n"
+"engineering."
+msgstr ""
+
+#: gnu/packages/dejagnu.scm:78
+msgid "GNU software testing framework"
+msgstr ""
+
+#: gnu/packages/dejagnu.scm:80
+msgid ""
+"DejaGnu is a framework for testing software.  In effect, it serves as\n"
+"a front-end for all tests written for a program.  Thus, each program can have\n"
+"multiple test suites, which are then all managed by a single harness."
+msgstr ""
+
+#: gnu/packages/games.scm:262
+msgid "Scrolling, platform-jumping, ancient pyramid exploring game"
+msgstr ""
+
+#: gnu/packages/games.scm:264
+msgid ""
+"Abe's Amazing Adventure is a scrolling,\n"
+"platform-jumping, key-collecting, ancient pyramid exploring game, vaguely in\n"
+"the style of similar games for the Commodore+4."
+msgstr ""
+
+#: gnu/packages/games.scm:332
+msgid "Action game in four spatial dimensions"
+msgstr ""
+
+#: gnu/packages/games.scm:334
+msgid ""
+"Adanaxis is a fast-moving first person shooter set in deep space, where\n"
+"the fundamentals of space itself are changed.  By adding another dimension to\n"
+"space this game provides an environment with movement in four directions and\n"
+"six planes of rotation.  Initially the game explains the 4D control system via\n"
+"a graphical sequence, before moving on to 30 levels of gameplay with numerous\n"
+"enemy, ally, weapon and mission types.  Features include simulated 4D texturing,\n"
+"mouse and joystick control, and original music."
+msgstr ""
+
+#: gnu/packages/games.scm:376
+msgid "Retro platform game"
+msgstr ""
+
+#: gnu/packages/games.scm:378
+msgid ""
+"Guide Alex the Allegator through the jungle in order to save his\n"
+"girlfriend Lola from evil humans who want to make a pair of shoes out of her.\n"
+"Plenty of classic platforming in four nice colors guaranteed!\n"
+"\n"
+"The game includes a built-in editor so you can design and share your own maps."
+msgstr ""
+
+#: gnu/packages/games.scm:407
+msgid "Tron clone in 3D"
+msgstr ""
+
+#: gnu/packages/games.scm:408
+msgid ""
+"Armagetron Advanced is a multiplayer game in 3d that\n"
+"attempts to emulate and expand on the lightcycle sequence from the movie Tron.\n"
+"It's an old school arcade game slung into the 21st century.  Highlights\n"
+"include a customizable playing arena, HUD, unique graphics, and AI bots.  For\n"
+"the more advanced player there are new game modes and a wide variety of\n"
+"physics settings to tweak as well."
+msgstr ""
+
+#: gnu/packages/games.scm:464
+msgid "3D space shooter with spaceship upgrade possibilities"
+msgstr ""
+
+#: gnu/packages/games.scm:466
+msgid ""
+"Space is a vast area, an unbounded territory where it seems there is\n"
+"a room for everybody, but reversal of fortune put things differently.  The\n"
+"hordes of hostile creatures crawled out from the dark corners of the universe,\n"
+"craving to conquer your homeland.  Their force is compelling, their legions\n"
+"are interminable.  However, humans didn't give up without a final showdown and\n"
+"put their best pilot to fight back.  These malicious invaders chose the wrong\n"
+"galaxy to conquer and you are to prove it!  Go ahead and make alien aggressors\n"
+"regret their insolence."
+msgstr ""
+
+#: gnu/packages/games.scm:532
+msgid "Antagonistic Tetris-style falling brick game for text terminals"
+msgstr ""
+
+#: gnu/packages/games.scm:534
+msgid ""
+"Bastet (short for Bastard Tetris) is a simple ncurses-based falling brick\n"
+"game.  Unlike normal Tetris, Bastet does not choose the next brick at random.\n"
+"Instead, it uses a special algorithm to choose the worst brick possible.\n"
+"\n"
+"Playing bastet can be a painful experience, especially if you usually make\n"
+"canyons and wait for the long I-shaped block to clear four rows at a time."
+msgstr ""
+
+#: gnu/packages/games.scm:580
+msgid "Platform action game featuring a blob with a lot of weapons"
+msgstr ""
+
+#: gnu/packages/games.scm:581
+msgid ""
+"Blobwars: Metal Blob Solid is a 2D platform game, the first\n"
+"in the Blobwars series.  You take on the role of a fearless Blob agent.  Your\n"
+"mission is to infiltrate various enemy bases and rescue as many MIAs as\n"
+"possible, while battling many vicious aliens."
+msgstr ""
+
+#: gnu/packages/games.scm:636
+msgid "3D first person tank battle game"
+msgstr ""
+
+#: gnu/packages/games.scm:638
+msgid ""
+"BZFlag is a 3D multi-player multiplatform tank battle game that\n"
+"allows users to play against each other in a network environment.\n"
+"There are five teams: red, green, blue, purple and rogue (rogue tanks\n"
+"are black).  Destroying a player on another team scores a win, while\n"
+"being destroyed or destroying a teammate scores a loss.  Rogues have\n"
+"no teammates (not even other rogues), so they cannot shoot teammates\n"
+"and they do not have a team score.\n"
+"\n"
+"There are two main styles of play: capture-the-flag and free-for-all.\n"
+"In capture-the-flag, each team (except rogues) has a team base and\n"
+"each team with at least one player has a team flag.  The object is to\n"
+"capture an enemy team's flag by bringing it to your team's base.  This\n"
+"destroys every player on the captured team, subtracts one from that\n"
+"team's score, and adds one to your team's score.  In free-for-all,\n"
+"there are no team flags or team bases.  The object is simply to get as\n"
+"high a score as possible."
+msgstr ""
+
+#: gnu/packages/games.scm:710
+msgid "Survival horror roguelike video game"
+msgstr ""
+
+#: gnu/packages/games.scm:712
+msgid ""
+"Cataclysm: Dark Days Ahead (or \"DDA\" for short) is a roguelike set\n"
+"in a post-apocalyptic world.  Struggle to survive in a harsh, persistent,\n"
+"procedurally generated world.  Scavenge the remnants of a dead civilization\n"
+"for food, equipment, or, if you are lucky, a vehicle with a full tank of gas\n"
+"to get you out of Dodge.  Fight to defeat or escape from a wide variety of\n"
+"powerful monstrosities, from zombies to giant insects to killer robots and\n"
+"things far stranger and deadlier, and against the others like yourself, that\n"
+"want what you have."
+msgstr ""
+
+#: gnu/packages/games.scm:768
+#, fuzzy
+#| msgid "Implementation of Scheme and related languages"
+msgid "Implementation of the @i{Theme Hospital} game engine"
+msgstr "Realigo de Scheme kaj rilataj program-lingvoj"
+
+#: gnu/packages/games.scm:770
+msgid ""
+"This package provides a reimplementation of the 1997 Bullfrog business\n"
+"simulation game @i{Theme Hospital}.  As well as faithfully recreating the\n"
+"original engine, CorsixTH adds support for high resolutions, custom levels and\n"
+"more.  This package does @emph{not} provide the game assets."
+msgstr ""
+
+#: gnu/packages/games.scm:811
+msgid "Speaking cow text filter"
+msgstr ""
+
+#: gnu/packages/games.scm:812
+msgid ""
+"Cowsay is basically a text filter.  Send some text into it,\n"
+"and you get a cow saying your text.  If you think a talking cow isn't enough,\n"
+"cows can think too: all you have to do is run @command{cowthink}.  If you're\n"
+"tired of cows, a variety of other ASCII-art messengers are available."
+msgstr ""
+
+#: gnu/packages/games.scm:852
+msgid "Rainbow coloring effect for text console display"
+msgstr ""
+
+#: gnu/packages/games.scm:853
+msgid ""
+"@command{lolcat} concatenates files and streams like\n"
+"regular @command{cat}, but it also adds terminal escape codes between\n"
+"characters and lines resulting in a rainbow effect."
+msgstr ""
+
+#: gnu/packages/games.scm:967
+msgid "3D billiard game"
+msgstr ""
+
+#: gnu/packages/games.scm:968
+msgid ""
+"FooBillard++ is an advanced 3D OpenGL billiard game\n"
+"based on the original foobillard 3.0a sources from Florian Berger.\n"
+"You can play it with one or two players or against the computer.\n"
+"\n"
+"The game features:\n"
+"\n"
+"@itemize\n"
+"@item Wood paneled table with gold covers and gold diamonds.\n"
+"@item Reflections on balls.\n"
+"@item Zoom in and out, rotation, different angles and bird's eye view.\n"
+"@item Different game modes: 8 or 9-ball, Snooker or Carambole.\n"
+"@item Tournaments.  Compete against other players.\n"
+"@item Animated cue with strength and eccentric hit adjustment.\n"
+"@item Jump shots and snipping.\n"
+"@item Realistic gameplay and billiard sounds.\n"
+"@item Red-Green stereo.\n"
+"@item And much more.\n"
+"@end itemize"
+msgstr ""
+
+#: gnu/packages/games.scm:1029
+msgid "Free content game based on the Doom engine"
+msgstr ""
+
+#: gnu/packages/games.scm:1038
+msgid ""
+"The Freedoom project aims to create a complete free content first person\n"
+"shooter game.  Freedoom by itself is just the raw material for a game: it must\n"
+"be paired with a compatible game engine (such as @code{prboom-plus}) to be\n"
+"played.  Freedoom complements the Doom engine with free levels, artwork, sound\n"
+"effects and music to make a completely free game."
+msgstr ""
+
+#: gnu/packages/games.scm:1086
+msgid "Isometric role-playing game against killer robots"
+msgstr ""
+
+#: gnu/packages/games.scm:1088
+msgid ""
+"Freedroid RPG is an @dfn{RPG} (Role-Playing Game) with isometric graphics.\n"
+"The game tells the story of a world destroyed by a conflict between robots and\n"
+"their human masters.  To restore peace to humankind, the player must complete\n"
+"numerous quests while fighting off rebelling robots---either by taking control\n"
+"of them, or by simply blasting them to pieces with melee and ranged weapons in\n"
+"real-time combat."
+msgstr ""
+
+#: gnu/packages/games.scm:1165
+msgid "Software for exploring cellular automata"
+msgstr ""
+
+#: gnu/packages/games.scm:1167
+msgid ""
+"Golly simulates Conway's Game of Life and many other types of cellular\n"
+"automata.  The following features are available:\n"
+"@enumerate\n"
+"@item Support for bounded and unbounded universes, with cells of up to 256\n"
+"  states.\n"
+"@item Support for multiple algorithms, including Bill Gosper's Hashlife\n"
+"  algorithm.\n"
+"@item Loading patterns from BMP, PNG, GIF and TIFF image files.\n"
+"@item Reading RLE, macrocell, Life 1.05/1.06, dblife and MCell files.\n"
+"@item Scriptable via Lua or Python.\n"
+"@item Extracting patterns, rules and scripts from zip files.\n"
+"@item Downloading patterns, rules and scripts from online archives.\n"
+"@item Pasting patterns from the clipboard.\n"
+"@item Unlimited undo/redo.\n"
+"@item Configurable keyboard shortcuts.\n"
+"@item Auto fit option to keep patterns within the view.\n"
+"@end enumerate"
+msgstr ""
+
+#: gnu/packages/games.scm:1212
+msgid "Re-implementation of Caesar III game engine"
+msgstr ""
+
+#: gnu/packages/games.scm:1214
+msgid ""
+"Engine for Caesar III, a city-building real-time strategy game.\n"
+"Julius includes some UI enhancements while preserving the logic (including\n"
+"bugs) of the original game, so that saved games are compatible.  This package\n"
+"does not include game data."
+msgstr ""
+
+#: gnu/packages/games.scm:1246
+msgid "Re-implementation of Caesar III game engine with gameplay changes"
+msgstr ""
+
+#: gnu/packages/games.scm:1248
+msgid ""
+"Fork of Julius, an engine for the a city-building real-time strategy\n"
+"game Caesar III.  Gameplay enhancements include:\n"
+"\n"
+"@itemize\n"
+"@item roadblocks;\n"
+"@item market special orders;\n"
+"@item global labour pool;\n"
+"@item partial warehouse storage;\n"
+"@item increased game limits;\n"
+"@item zoom controls.\n"
+"@end itemize\n"
+msgstr ""
+
+#: gnu/packages/games.scm:1286
+msgid "Puzzle/platform game"
+msgstr ""
+
+#: gnu/packages/games.scm:1287
+msgid ""
+"Me and My Shadow is a puzzle/platform game in which you try\n"
+"to reach the exit by solving puzzles.  Spikes, moving blocks, fragile blocks\n"
+"and much more stand between you and the exit.  Record your moves and let your\n"
+"shadow mimic them to reach blocks you couldn't reach alone."
+msgstr ""
+
+#: gnu/packages/games.scm:1345
+msgid "2D retro side-scrolling game"
+msgstr ""
+
+#: gnu/packages/games.scm:1346
+msgid ""
+"@code{Open Surge} is a 2D retro side-scrolling platformer\n"
+"inspired by the Sonic games.  The player runs at high speeds through each\n"
+"level while collecting items and avoiding obstacles.  The game includes a\n"
+"built-in level editor."
+msgstr ""
+
+#: gnu/packages/games.scm:1391
+msgid "Multiplayer dungeon game involving knights and quests"
+msgstr ""
+
+#: gnu/packages/games.scm:1392
+msgid ""
+"Knights is a multiplayer game involving several knights who\n"
+"must run around a dungeon and complete various quests.  Each game revolves\n"
+"around a quest – for example, you might have to find some items and carry them\n"
+"back to your starting point.  This may sound easy, but as there are only\n"
+"enough items in the dungeon for one player to win, you may end up having to\n"
+"kill your opponents to get their stuff!  Other quests involve escaping from\n"
+"the dungeon, fighting a duel to the death against the enemy knights, or\n"
+"destroying an ancient book using a special wand."
+msgstr ""
+
+#: gnu/packages/games.scm:1438
+msgid "Chess board for GNOME"
+msgstr ""
+
+#: gnu/packages/games.scm:1439
+msgid ""
+"GNOME Chess provides a 2D board for playing chess games\n"
+"against human or computer players.  It supports loading and saving games in\n"
+"Portable Game Notation.  To play against a computer, install a chess engine\n"
+"such as chess or stockfish."
+msgstr ""
+
+#: gnu/packages/games.scm:1493
 msgid "Backgammon game"
 msgstr "Triktrako (Bakgamono)"
 
-#: gnu/packages/games.scm:96
+#: gnu/packages/games.scm:1494
 msgid ""
-"The GNU backgammon application can be used for playing, analyzing and\n"
-"teaching the game.  It has an advanced evaluation engine based on artificial\n"
-"neural networks suitable for both beginners and advanced players.  In\n"
-"addition to a command-line interface, it also features an attractive, 3D\n"
-"representation of the playing board."
+"The GNU backgammon application (also known as \"gnubg\") can\n"
+"be used for playing, analyzing and teaching the game.  It has an advanced\n"
+"evaluation engine based on artificial neural networks suitable for both\n"
+"beginners and advanced players.  In addition to a command-line interface, it\n"
+"also features an attractive, 3D representation of the playing board."
 msgstr ""
 
-#: gnu/packages/games.scm:125
+#: gnu/packages/games.scm:1533
 msgid "3d Rubik's cube game"
 msgstr "3D Rubika kubo"
 
-#: gnu/packages/games.scm:127
+#: gnu/packages/games.scm:1535
 msgid ""
 "GNUbik is a puzzle game in which you must manipulate a cube to make\n"
 "each of its faces have a uniform color.  The game is customizable, allowing\n"
@@ -475,11 +4484,179 @@ msgid ""
 "scriptable with Guile."
 msgstr ""
 
-#: gnu/packages/games.scm:189
+#: gnu/packages/games.scm:1557
+msgid "The game of Shogi (Japanese chess)"
+msgstr ""
+
+#: gnu/packages/games.scm:1558
+msgid ""
+"GNU Shogi is a program that plays the game Shogi (Japanese\n"
+"Chess).  It is similar to standard chess but this variant is far more complicated."
+msgstr ""
+
+#: gnu/packages/games.scm:1589
+msgid "Tetris clone based on the SDL library"
+msgstr ""
+
+#: gnu/packages/games.scm:1591
+msgid ""
+"LTris is a tetris clone: differently shaped blocks are falling down the\n"
+"rectangular playing field and can be moved sideways or rotated by 90 degree\n"
+"units with the aim of building lines without gaps which then disappear (causing\n"
+"any block above the deleted line to fall down).  LTris has three game modes: In\n"
+"Classic you play until the stack of blocks reaches the top of the playing field\n"
+"and no new blocks can enter.  In Figures the playing field is reset to a new\n"
+"figure each level and later on tiles and lines suddenly appear.  In Multiplayer\n"
+"up to three players (either human or CPU) compete with each other sending\n"
+"removed lines to all opponents.  There is also a Demo mode in which you can\n"
+"watch your CPU playing while enjoying a cup of tea!"
+msgstr ""
+
+#: gnu/packages/games.scm:1715
+msgid "Classic dungeon crawl game"
+msgstr ""
+
+#: gnu/packages/games.scm:1716
+msgid ""
+"NetHack is a single player dungeon exploration game that runs\n"
+"on a wide variety of computer systems, with a variety of graphical and text\n"
+"interfaces all using the same game engine.  Unlike many other Dungeons &\n"
+"Dragons-inspired games, the emphasis in NetHack is on discovering the detail of\n"
+"the dungeon and not simply killing everything in sight - in fact, killing\n"
+"everything in sight is a good way to die quickly.  Each game presents a\n"
+"different landscape - the random number generator provides an essentially\n"
+"unlimited number of variations of the dungeon and its denizens to be discovered\n"
+"by the player in one of a number of characters: you can pick your race, your\n"
+"role, and your gender."
+msgstr ""
+
+#: gnu/packages/games.scm:1760
+msgid "Logical tile puzzle"
+msgstr ""
+
+#: gnu/packages/games.scm:1762
+msgid ""
+"PipeWalker is a simple puzzle game with many diffent themes: connect all\n"
+"computers to one network server, bring water from a source to the taps, etc.\n"
+"The underlying mechanism is always the same: you must turn each tile in the\n"
+"grid in the right direction to combine all components into a single circuit.\n"
+"Every puzzle has a complete solution, although there may be more than one."
+msgstr ""
+
+#: gnu/packages/games.scm:1810
+msgid "Version of the classic 3D shoot'em'up game Doom"
+msgstr ""
+
+#: gnu/packages/games.scm:1812
+msgid "PrBoom+ is a Doom source port developed from the original PrBoom project."
+msgstr ""
+
+#: gnu/packages/games.scm:1860
+msgid "Action platformer game"
+msgstr ""
+
+#: gnu/packages/games.scm:1862
+msgid ""
+"ReTux is an action platformer loosely inspired by the Mario games,\n"
+"utilizing the art assets from the @code{SuperTux} project."
+msgstr ""
+
+#: gnu/packages/games.scm:1971
+msgid "A classical roguelike/sandbox game"
+msgstr ""
+
+#: gnu/packages/games.scm:1973
+msgid ""
+"RogueBox Adventures is a graphical roguelike with strong influences\n"
+"from sandbox games like Minecraft or Terraria.  The main idea of RogueBox\n"
+"Adventures is to offer the player a kind of roguelike toy-world.  This world\n"
+"can be explored and changed freely."
+msgstr ""
+
+#: gnu/packages/games.scm:2084
+msgid "Help Barbie the seahorse float on bubbles to the moon"
+msgstr ""
+
+#: gnu/packages/games.scm:2086
+msgid ""
+"Barbie Seahorse Adventures is a retro style platform arcade game.\n"
+"You are Barbie the seahorse who travels through the jungle, up to the\n"
+"volcano until you float on bubbles to the moon.  On the way to your\n"
+"final destination you will encounter various enemies, servants of the\n"
+"evil overlord who has stolen the galaxy crystal.  Avoid getting hit\n"
+"and defeat them with your bubbles!"
+msgstr ""
+
+#: gnu/packages/games.scm:2165
+msgid "Fast-paced local multiplayer arcade game"
+msgstr ""
+
+#: gnu/packages/games.scm:2166
+msgid ""
+"In SuperStarfighter, up to four local players compete in a\n"
+"2D arena with fast-moving ships and missiles.  Different game types are\n"
+"available, as well as a single-player mode with AI-controlled ships."
+msgstr ""
+
+#: gnu/packages/games.scm:2266
+msgid "UFO: AI map generator"
+msgstr ""
+
+#: gnu/packages/games.scm:2268
+msgid ""
+"This package provides @command{ufo2map}, a program used to generate\n"
+"maps for the UFO: Alien Invasion strategy game."
+msgstr ""
+
+#: gnu/packages/games.scm:2308
+msgid "UFO: AI data files"
+msgstr ""
+
+#: gnu/packages/games.scm:2310
+#, fuzzy
+#| msgid "This package contains the game data of GNU Freedink."
+msgid "This package contains maps and other assets for UFO: Alien Invasion."
+msgstr "Tiu ĉi pako enhavas ludan datumaron por GNU Freedink."
+
+#: gnu/packages/games.scm:2395
+msgid "Turn-based tactical strategy game"
+msgstr ""
+
+#: gnu/packages/games.scm:2397
+msgid ""
+"UFO: Alien Invasion is a tactical strategy game set in the year 2084.\n"
+"You control a secret organisation charged with defending Earth from a brutal\n"
+"alien enemy.  Build up your bases, prepare your team, and dive head-first into\n"
+"the fast and flowing turn-based combat.\n"
+"\n"
+"Over the long term you will need to conduct research into the alien threat to\n"
+"figure out their mysterious goals and use their powerful weapons for your own\n"
+"ends.  You will produce unique items and use them in combat against your\n"
+"enemies.\n"
+"\n"
+"You can also use them against your friends with the multiplayer functionality.\n"
+"\n"
+"Warning: This is a pre-release version of UFO: AI!  Some things may not work\n"
+"properly."
+msgstr ""
+
+#: gnu/packages/games.scm:2434
+#, fuzzy
+#| msgid "SQlite interface for Perl"
+msgid "User interface for gnushogi"
+msgstr "Interfaco de SQLite por Perl"
+
+#: gnu/packages/games.scm:2435
+#, fuzzy
+#| msgid "Graphical user interface for chess programs"
+msgid "A graphical user interface for the package @code{gnushogi}."
+msgstr "Grafikinterfacon por ŝak-programarojn"
+
+#: gnu/packages/games.scm:2487
 msgid "GNU/Linux port of the indie game \"l'Abbaye des Morts\""
 msgstr "Pordo GNU/Linux de la sendependa ludo \"l'Abbaye des Morts\""
 
-#: gnu/packages/games.scm:190
+#: gnu/packages/games.scm:2488
 msgid ""
 "L'Abbaye des Morts is a 2D platform game set in 13th century\n"
 "France.  The Cathars, who preach about good Christian beliefs, were being\n"
@@ -488,11 +4665,22 @@ msgid ""
 "that beneath its ruins lay buried an ancient evil."
 msgstr ""
 
-#: gnu/packages/games.scm:233
+#: gnu/packages/games.scm:2540
+msgid "Dungeon exploration roguelike"
+msgstr ""
+
+#: gnu/packages/games.scm:2541
+msgid ""
+"Angband is a Classic dungeon exploration roguelike.  Explore\n"
+"the depths below Angband, seeking riches, fighting monsters, and preparing to\n"
+"fight Morgoth, the Lord of Darkness."
+msgstr ""
+
+#: gnu/packages/games.scm:2588
 msgid "Lemmings clone"
 msgstr "Klono de 'Lemmings'"
 
-#: gnu/packages/games.scm:235
+#: gnu/packages/games.scm:2590
 msgid ""
 "Pingus is a free Lemmings-like puzzle game in which the player takes\n"
 "command of a bunch of small animals and has to guide them through levels.\n"
@@ -502,22 +4690,33 @@ msgid ""
 "level's exit.  The game is presented in a 2D side view."
 msgstr ""
 
-#: gnu/packages/games.scm:257
+#: gnu/packages/games.scm:2612
 msgid "Convert English text to humorous dialects"
 msgstr "Konverti anglajn tekstojn al humuraj dialektaĵoj"
 
-#: gnu/packages/games.scm:258
+#: gnu/packages/games.scm:2613
 msgid ""
 "The GNU Talk Filters are programs that convert English text\n"
 "into stereotyped or otherwise humorous dialects.  The filters are provided as\n"
 "a C library, so they can easily be integrated into other programs."
 msgstr ""
 
-#: gnu/packages/games.scm:290
+#: gnu/packages/games.scm:2657
+msgid "Shoot'em up fangame and libre clone of Touhou Project"
+msgstr ""
+
+#: gnu/packages/games.scm:2659
+msgid ""
+"The player controls a character (one of three: Good, Bad, and Dead),\n"
+"dodges the missiles (lots of it cover the screen, but the character's hitbox\n"
+"is very small), and shoot at the adversaries that keep appear on the screen."
+msgstr ""
+
+#: gnu/packages/games.scm:2702
 msgid "Simulate the display from \"The Matrix\""
 msgstr "Simuli la ekranon el \"The Matrix\""
 
-#: gnu/packages/games.scm:291
+#: gnu/packages/games.scm:2703
 msgid ""
 "CMatrix simulates the display from \"The Matrix\" and is\n"
 "based on the screensaver from the movie's website.  It works with terminal\n"
@@ -525,22 +4724,22 @@ msgid ""
 "asynchronously and at a user-defined speed."
 msgstr ""
 
-#: gnu/packages/games.scm:311
+#: gnu/packages/games.scm:2723
 msgid "Full chess implementation"
 msgstr "Kompleta realigo de ŝako"
 
-#: gnu/packages/games.scm:312
+#: gnu/packages/games.scm:2724
 msgid ""
 "GNU Chess is a chess engine.  It allows you to compete\n"
 "against the computer in a game of chess, either through the default terminal\n"
 "interface or via an external visual interface such as GNU XBoard."
 msgstr ""
 
-#: gnu/packages/games.scm:340
+#: gnu/packages/games.scm:2784
 msgid "Twisted adventures of young pig farmer Dink Smallwood"
 msgstr "Frenezaj aventuroj de la juna pork-bredisto Dink Smallwood"
 
-#: gnu/packages/games.scm:342
+#: gnu/packages/games.scm:2786
 msgid ""
 "GNU FreeDink is a free and portable re-implementation of the engine\n"
 "for the role-playing game Dink Smallwood.  It supports not only the original\n"
@@ -548,19 +4747,31 @@ msgid ""
 "To that extent, it also includes a front-end for managing all of your D-Mods."
 msgstr ""
 
-#: gnu/packages/games.scm:364
+#: gnu/packages/games.scm:2812
 msgid "Game data for GNU Freedink"
 msgstr "Ludo-datumaro por GNU Freedink"
 
-#: gnu/packages/games.scm:366
+#: gnu/packages/games.scm:2814
 msgid "This package contains the game data of GNU Freedink."
 msgstr "Tiu ĉi pako enhavas ludan datumaron por GNU Freedink."
 
-#: gnu/packages/games.scm:427
+#: gnu/packages/games.scm:2837
+#, fuzzy
+#| msgid "Tools for loading and managing Linux kernel modules"
+msgid "Front-end for managing and playing Dink Modules"
+msgstr "Iloj por ŝargi kaj administri linuks-kernajn modulojn"
+
+#: gnu/packages/games.scm:2838
+msgid ""
+"DFArc makes it easy to play and manage the GNU FreeDink game\n"
+"and its numerous D-Mods."
+msgstr ""
+
+#: gnu/packages/games.scm:2890
 msgid "Graphical user interface for chess programs"
 msgstr "Grafikinterfacon por ŝak-programarojn"
 
-#: gnu/packages/games.scm:428
+#: gnu/packages/games.scm:2891
 msgid ""
 "GNU XBoard is a graphical board for all varieties of chess,\n"
 "including international chess, xiangqi (Chinese chess), shogi (Japanese chess)\n"
@@ -569,23 +4780,11 @@ msgid ""
 "Portable Game Notation."
 msgstr ""
 
-#: gnu/packages/games.scm:481
-msgid "Ball and paddle game"
-msgstr "Ludo kun pilko kaj padelo"
-
-#: gnu/packages/games.scm:482
-msgid ""
-"XBoing is a blockout type game where you have a paddle which\n"
-"you control to bounce a ball around the game zone destroying blocks with a\n"
-"proton ball.  Each block carries a different point value.  The more blocks you\n"
-"destroy, the better your score.  The person with the highest score wins."
-msgstr ""
-
-#: gnu/packages/games.scm:514
+#: gnu/packages/games.scm:2925
 msgid "Typing tutor"
 msgstr "Instruilo por tajpado"
 
-#: gnu/packages/games.scm:516
+#: gnu/packages/games.scm:2927
 msgid ""
 "GNU Typist is a universal typing tutor.  It can be used to learn and\n"
 "practice touch-typing.  Several tutorials are included; in addition to\n"
@@ -594,25 +4793,11 @@ msgid ""
 "are primarily in English, however some in other languages are provided."
 msgstr ""
 
-#: gnu/packages/games.scm:541
-msgid "3D audio API"
-msgstr "3D-sona API"
-
-#: gnu/packages/games.scm:543
-msgid ""
-"OpenAL provides capabilities for playing audio in a virtual 3D\n"
-"environment.  Distance attenuation, doppler shift, and directional sound\n"
-"emitters are among the features handled by the API.  More advanced effects,\n"
-"including air absorption, occlusion, and environmental reverb, are available\n"
-"through the EFX extension.  It also facilitates streaming audio, multi-channel\n"
-"buffers, and audio capture."
-msgstr ""
-
-#: gnu/packages/games.scm:598
+#: gnu/packages/games.scm:2993
 msgid "3D game engine written in C++"
 msgstr "3D-luda maŝino verkita en C++"
 
-#: gnu/packages/games.scm:600
+#: gnu/packages/games.scm:2995
 msgid ""
 "The Irrlicht Engine is a high performance realtime 3D engine written in\n"
 "C++.  Features include an OpenGL renderer, extensible materials, scene graph\n"
@@ -620,19 +4805,23 @@ msgid ""
 "for common mesh file formats, and collision detection."
 msgstr ""
 
-#: gnu/packages/games.scm:641
-msgid "Main game data for the Minetest game engine"
-msgstr "Datumaro de ĉefa ludo por la lud-maŝino Minetest"
+#: gnu/packages/games.scm:3047
+msgid "2D space shooter"
+msgstr ""
 
-#: gnu/packages/games.scm:643
-msgid "Game data for the Minetest infinite-world block sandox game."
+#: gnu/packages/games.scm:3049
+msgid ""
+"M.A.R.S. is a 2D space shooter with pretty visual effects and\n"
+"attractive physics.  Players can battle each other or computer controlled\n"
+"enemies in different game modes such as space ball, death match, team death\n"
+"match, cannon keep, and grave-itation pit."
 msgstr ""
 
-#: gnu/packages/games.scm:705
+#: gnu/packages/games.scm:3113
 msgid "Infinite-world block sandbox game"
 msgstr "Senlima-monda bloka sablo-skatola ludo"
 
-#: gnu/packages/games.scm:707
+#: gnu/packages/games.scm:3115
 msgid ""
 "Minetest is a sandbox construction game.  Players can create and destroy\n"
 "various types of blocks in a three-dimensional open world.  This allows\n"
@@ -641,60 +4830,2263 @@ msgid ""
 "in different ways."
 msgstr ""
 
-#: gnu/packages/games.scm:746
+#: gnu/packages/games.scm:3151
+msgid "Main game data for the Minetest game engine"
+msgstr "Datumaro de ĉefa ludo por la lud-maŝino Minetest"
+
+#: gnu/packages/games.scm:3153
+#, fuzzy
+#| msgid "Infinite-world block sandbox game"
+msgid "Game data for the Minetest infinite-world block sandbox game."
+msgstr "Senlima-monda bloka sablo-skatola ludo"
+
+#: gnu/packages/games.scm:3174
+#, fuzzy
+#| msgid "Main game data for the Minetest game engine"
+msgid "Minecraft clone based on Minetest engine"
+msgstr "Datumaro de ĉefa ludo por la lud-maŝino Minetest"
+
+#: gnu/packages/games.scm:3176
+msgid ""
+"MineClone is a Minetest subgame, that aims to recreate Minecraft as\n"
+"closely as the engine allows."
+msgstr ""
+
+#: gnu/packages/games.scm:3212
 msgid "Curses Implementation of the Glk API"
 msgstr "Realigo curses de la API Glk"
 
-#: gnu/packages/games.scm:748
+#: gnu/packages/games.scm:3214
 msgid ""
 "Glk defines a portable API for applications with text UIs.  It was\n"
 "primarily designed for interactive fiction, but it should be suitable for many\n"
 "interactive text utilities, particularly those based on a command line.\n"
 "This is an implementation of the Glk library which runs in a terminal window,\n"
-"using the curses.h library for screen control."
+"using the @code{curses.h} library for screen control."
 msgstr ""
 
-#: gnu/packages/games.scm:785
+#: gnu/packages/games.scm:3252
 msgid "Interpreter for Glulx VM"
 msgstr "Interpretilo por Glulx VM"
 
-#: gnu/packages/games.scm:787
+#: gnu/packages/games.scm:3254
 msgid ""
 "Glulx is a 32-bit portable virtual machine intended for writing and\n"
 "playing interactive fiction.  It was designed by Andrew Plotkin to relieve\n"
 "some of the restrictions in the venerable Z-machine format.  This is the\n"
-"reference interpreter, using Glk API."
+"reference interpreter, using the Glk API."
+msgstr ""
+
+#: gnu/packages/games.scm:3280
+msgid "Cross platform GUI library specifically for games"
+msgstr ""
+
+#: gnu/packages/games.scm:3282
+msgid ""
+"Fifechan is a lightweight cross platform GUI library written in C++\n"
+"specifically designed for games.  It has a built in set of extendable GUI\n"
+"Widgets, and allows users to create more."
+msgstr ""
+
+#: gnu/packages/games.scm:3376
+#, fuzzy
+#| msgid "3D game engine written in C++"
+msgid "FIFE is a multi-platform isometric game engine written in C++"
+msgstr "3D-luda maŝino verkita en C++"
+
+#: gnu/packages/games.scm:3378
+msgid ""
+"@acronym{FIFE, Flexible Isometric Free Engine} is a multi-platform\n"
+"isometric game engine.  Python bindings are included allowing users to create\n"
+"games using Python as well as C++."
+msgstr ""
+
+#: gnu/packages/games.scm:3411
+msgid "Z-machine interpreter"
+msgstr ""
+
+#: gnu/packages/games.scm:3413
+msgid ""
+"Fizmo is a console-based Z-machine interpreter.  It is used to play\n"
+"interactive fiction, also known as text adventures, which were implemented\n"
+"either by Infocom or created using the Inform compiler."
+msgstr ""
+
+#: gnu/packages/games.scm:3431
+msgid "Play the game of Go"
+msgstr ""
+
+#: gnu/packages/games.scm:3433
+msgid ""
+"GNU Go is a program that plays the game of Go, in which players\n"
+"place stones on a grid to form territory or capture other stones.  While\n"
+"it can be played directly from the terminal, rendered in ASCII characters,\n"
+"it is also possible to play GNU Go with 3rd party graphical interfaces or\n"
+"even in Emacs.  It supports the standard game storage format (SGF, Smart\n"
+"Game Format) and inter-process communication format (GMP, Go Modem\n"
+"Protocol)."
+msgstr ""
+
+#: gnu/packages/games.scm:3461
+msgid "High-speed arctic racing game based on Tux Racer"
+msgstr ""
+
+#: gnu/packages/games.scm:3463
+msgid ""
+"Extreme Tux Racer, or etracer as it is called for short, is\n"
+"a simple OpenGL racing game featuring Tux, the Linux mascot.  The goal of the\n"
+"game is to slide down a snow- and ice-covered mountain as quickly as possible,\n"
+"avoiding the trees and rocks that will slow you down.\n"
+"\n"
+"Collect herrings and other goodies while sliding down the hill, but avoid fish\n"
+"bones.\n"
+"\n"
+"This game is based on the GPL version of the famous game TuxRacer."
+msgstr ""
+
+#: gnu/packages/games.scm:3533
+msgid "3D kart racing game"
+msgstr ""
+
+#: gnu/packages/games.scm:3534
+msgid ""
+"SuperTuxKart is a 3D kart racing game, with a focus on\n"
+"having fun over realism.  You can play with up to 4 friends on one PC, racing\n"
+"against each other or just trying to beat the computer; single-player mode is\n"
+"also available."
+msgstr ""
+
+#: gnu/packages/games.scm:3609
+msgid "Isometric realtime strategy, economy and city building simulation"
+msgstr ""
+
+#: gnu/packages/games.scm:3611
+msgid ""
+"Unknown Horizons is a 2D realtime strategy simulation with an emphasis\n"
+"on economy and city building.  Expand your small settlement to a strong and\n"
+"wealthy colony, collect taxes and supply your inhabitants with valuable\n"
+"goods.  Increase your power with a well balanced economy and with strategic\n"
+"trade and diplomacy."
+msgstr ""
+
+#: gnu/packages/games.scm:3666
+msgid "Game of jumping to the next floor, trying not to fall"
+msgstr ""
+
+#: gnu/packages/games.scm:3668
+msgid ""
+"GNUjump is a simple, yet addictive game in which you must jump from\n"
+"platform to platform to avoid falling, while the platforms drop at faster rates\n"
+"the higher you go.  The game features multiplayer, unlimited FPS, smooth floor\n"
+"falling, themeable graphics and sounds, and replays."
+msgstr ""
+
+#: gnu/packages/games.scm:3702
+msgid "Turn-based strategy game"
+msgstr ""
+
+#: gnu/packages/games.scm:3704
+msgid ""
+"The Battle for Wesnoth is a fantasy, turn based tactical strategy game,\n"
+"with several single player campaigns, and multiplayer games (both networked and\n"
+"local).\n"
+"\n"
+"Battle for control on a range of maps, using variety of units which have\n"
+"advantages and disadvantages against different types of attacks.  Units gain\n"
+"experience and advance levels, and are carried over from one scenario to the\n"
+"next campaign."
+msgstr ""
+
+#: gnu/packages/games.scm:3726
+msgid "Dedicated @emph{Battle for Wesnoth} server"
+msgstr ""
+
+#: gnu/packages/games.scm:3727
+msgid ""
+"This package contains a dedicated server for @emph{The\n"
+"Battle for Wesnoth}."
+msgstr ""
+
+#: gnu/packages/games.scm:3768
+msgid "Mouse and keyboard discovery for children"
+msgstr ""
+
+#: gnu/packages/games.scm:3770
+msgid ""
+"Gamine is a game designed for young children who are learning to use the\n"
+"mouse and keyboard.  The child uses the mouse to draw colored dots and lines\n"
+"on the screen and keyboard to display letters."
+msgstr ""
+
+#: gnu/packages/games.scm:3803
+msgid "Client for 'The Mana World' and similar games"
+msgstr ""
+
+#: gnu/packages/games.scm:3805
+msgid ""
+"ManaPlus is a 2D MMORPG client for game servers.  It is the only\n"
+"fully supported client for @uref{http://www.themanaworld.org, The mana\n"
+"world}, @uref{http://evolonline.org, Evol Online} and\n"
+"@uref{http://landoffire.org, Land of fire}."
+msgstr ""
+
+#: gnu/packages/games.scm:3856
+msgid "Transportation economics simulator game"
+msgstr ""
+
+#: gnu/packages/games.scm:3857
+msgid ""
+"OpenTTD is a game in which you transport goods and\n"
+"passengers by land, water and air.  It is a re-implementation of Transport\n"
+"Tycoon Deluxe with many enhancements including multiplayer mode,\n"
+"internationalization support, conditional orders and the ability to clone,\n"
+"autoreplace and autoupdate vehicles.  This package only includes the game\n"
+"engine.  When you start it you will be prompted to download a graphics set."
+msgstr ""
+
+#: gnu/packages/games.scm:3915
+msgid "Base graphics set for OpenTTD"
+msgstr ""
+
+#: gnu/packages/games.scm:3917
+msgid ""
+"The OpenGFX project is an implementation of the OpenTTD base graphics\n"
+"set that aims to ensure the best possible out-of-the-box experience.\n"
+"\n"
+"OpenGFX provides you with...\n"
+"@enumerate\n"
+"@item All graphics you need to enjoy OpenTTD.\n"
+"@item Uniquely drawn rail vehicles for every climate.\n"
+"@item Completely snow-aware rivers.\n"
+"@item Different river and sea water.\n"
+"@item Snow-aware buoys.\n"
+"@end enumerate"
+msgstr ""
+
+#: gnu/packages/games.scm:3962
+msgid "Base sounds for OpenTTD"
+msgstr ""
+
+#: gnu/packages/games.scm:3963
+msgid ""
+"OpenSFX is a set of free base sounds for OpenTTD which make\n"
+"it possible to play OpenTTD without requiring the proprietary sound files from\n"
+"the original Transport Tycoon Deluxe."
+msgstr ""
+
+#: gnu/packages/games.scm:4000
+msgid "Music set for OpenTTD"
+msgstr ""
+
+#: gnu/packages/games.scm:4001
+msgid ""
+"OpenMSX is a music set for OpenTTD which makes it possible\n"
+"to play OpenTTD without requiring the proprietary music from the original\n"
+"Transport Tycoon Deluxe."
+msgstr ""
+
+#: gnu/packages/games.scm:4070
+msgid "Title sequences for OpenRCT2"
+msgstr ""
+
+#: gnu/packages/games.scm:4072
+msgid "openrct2-title-sequences is a set of title sequences for OpenRCT2."
+msgstr ""
+
+#: gnu/packages/games.scm:4110
+msgid "Objects for OpenRCT2"
+msgstr ""
+
+#: gnu/packages/games.scm:4112
+msgid "openrct2-objects is a set of objects for OpenRCT2."
+msgstr ""
+
+#: gnu/packages/games.scm:4172
+msgid "Free software re-implementation of RollerCoaster Tycoon 2"
+msgstr ""
+
+#: gnu/packages/games.scm:4173
+msgid ""
+"OpenRCT2 is a free software re-implementation of\n"
+"RollerCoaster Tycoon 2 (RCT2).  The gameplay revolves around building and\n"
+"maintaining an amusement park containing attractions, shops and facilities.\n"
+"\n"
+"Note that this package does @emph{not} provide the game assets (sounds,\n"
+"images, etc.)"
+msgstr ""
+
+#: gnu/packages/games.scm:4215
+msgid "Pinball simulator"
+msgstr ""
+
+#: gnu/packages/games.scm:4216
+msgid ""
+"The Emilia Pinball Project is a pinball simulator.  There\n"
+"are only two levels to play with, but they are very addictive."
+msgstr ""
+
+#: gnu/packages/games.scm:4239
+msgid "Board game inspired by The Settlers of Catan"
+msgstr ""
+
+#: gnu/packages/games.scm:4240
+msgid ""
+"Pioneers is an emulation of the board game The Settlers of\n"
+"Catan.  It can be played on a local network, on the internet, and with AI\n"
+"players."
+msgstr ""
+
+#: gnu/packages/games.scm:4281 gnu/packages/gnome.scm:4820
+msgid "Logic puzzle game"
+msgstr ""
+
+#: gnu/packages/games.scm:4282
+msgid ""
+"The goal of this logic game is to open all cards in a 6x6\n"
+"grid, using a number of hints as to their relative position.  The game idea\n"
+"is attributed to Albert Einstein."
+msgstr ""
+
+#: gnu/packages/games.scm:4310
+#, fuzzy
+#| msgid "Fast and easy BitTorrent client"
+msgid "MUD and telnet client"
+msgstr "Rapida kaj facila kliento por BitTorrent"
+
+#: gnu/packages/games.scm:4312
+msgid ""
+"POWWOW is a client software which can be used for telnet as well as for\n"
+"@dfn{Multi-User Dungeon} (MUD).  Additionally it can serve as a nice client for\n"
+"the chat server psyced with the specific config located at\n"
+"http://lavachat.symlynx.com/unix/"
+msgstr ""
+
+#: gnu/packages/games.scm:4422
+msgid "Arena shooter derived from the Cube 2 engine"
+msgstr ""
+
+#: gnu/packages/games.scm:4424
+msgid ""
+"Red Eclipse is an arena shooter, created from the Cube2 engine.\n"
+"Offering an innovative parkour system and distinct but all potent weapons,\n"
+"Red Eclipse provides fast paced and accessible gameplay."
+msgstr ""
+
+#: gnu/packages/games.scm:4487
+msgid "Text adventure game"
+msgstr ""
+
+#: gnu/packages/games.scm:4489
+msgid ""
+"Grue Hunter is a text adventure game written in Perl.  You must make\n"
+"your way through an underground cave system in search of the Grue.  Can you\n"
+"capture it and get out alive?"
+msgstr ""
+
+#: gnu/packages/games.scm:4531
+msgid "Old-school earthworm action game"
+msgstr ""
+
+#: gnu/packages/games.scm:4533
+msgid ""
+"lierolibre is an earthworm action game where you fight another player\n"
+"(or the computer) underground using a wide array of weapons.\n"
+"\n"
+"Features:\n"
+"@itemize\n"
+"@item 2 worms, 40 weapons, great playability, two game modes: Kill'em All\n"
+"and Game of Tag, plus AI-players without true intelligence!\n"
+"@item Dat nostalgia.\n"
+"@item Extensions via a hidden F1 menu:\n"
+"@itemize\n"
+"@item Replays\n"
+"@item Game controller support\n"
+"@item Powerlevel palettes\n"
+"@end itemize\n"
+"@item Ability to write game variables to plain text files.\n"
+"@item Ability to load game variables from both EXE and plain text files.\n"
+"@item Scripts to extract and repack graphics, sounds and levels.\n"
+"@end itemize\n"
+"\n"
+"To switch between different window sizes, use F6, F7 and F8, to switch to\n"
+"fullscreen, use F5 or Alt+Enter."
+msgstr ""
+
+#: gnu/packages/games.scm:4611
+msgid "Play tennis against the computer or a friend"
+msgstr ""
+
+#: gnu/packages/games.scm:4612
+msgid ""
+"Tennix is a 2D tennis game.  You can play against the\n"
+"computer or against another player using the keyboard.  The game runs\n"
+"in-window at 640x480 resolution or fullscreen."
+msgstr ""
+
+#: gnu/packages/games.scm:4692
+msgid "3D Real-time strategy and real-time tactics game"
+msgstr ""
+
+#: gnu/packages/games.scm:4694
+msgid ""
+"Warzone 2100 offers campaign, multi-player, and single-player skirmish\n"
+"modes.  An extensive tech tree with over 400 different technologies, combined\n"
+"with the unit design system, allows for a wide variety of possible units and\n"
+"tactics."
+msgstr ""
+
+#: gnu/packages/games.scm:4768
+msgid "Fantasy real-time strategy game"
+msgstr ""
+
+#: gnu/packages/games.scm:4770
+msgid ""
+"In Widelands, you are the regent of a small clan.  You start out with\n"
+"nothing but your headquarters, where all your resources are stored.\n"
+"\n"
+"In the course of the game, you will build an ever growing settlement.  Every\n"
+"member of your clan will do his or her part to produce more resources---wood,\n"
+"food, iron, gold and more---to further this growth.  The economic network is\n"
+"complex and different in the four tribes (Barbarians, Empire, Atlanteans, and\n"
+"Frisians).\n"
+"\n"
+"As you are not alone in the world, you will meet other clans sooner or later.\n"
+"Some of them may be friendly and you may eventually trade with them.  However,\n"
+"if you want to rule the world, you will have to train soldiers and fight.\n"
+"\n"
+"Widelands offers single-player mode with different campaigns; the campaigns\n"
+"all tell stories of tribes and their struggle in the Widelands universe!\n"
+"However, settling really starts when you unite with friends over the Internet\n"
+"or LAN to build up new empires together---or to crush each other in the dusts\n"
+"of war.  Widelands also offers an Artificial Intelligence to challenge you."
+msgstr ""
+
+#: gnu/packages/games.scm:4818
+msgid "2D scrolling shooter game"
+msgstr ""
+
+#: gnu/packages/games.scm:4820
+msgid ""
+"In the year 2579, the intergalactic weapons corporation, WEAPCO, has\n"
+"dominated the galaxy.  Guide Chris Bainfield and his friend Sid Wilson on\n"
+"their quest to liberate the galaxy from the clutches of WEAPCO.  Along the\n"
+"way, you will encounter new foes, make new allies, and assist local rebels\n"
+"in strikes against the evil corporation."
+msgstr ""
+
+#: gnu/packages/games.scm:4851
+msgid "Fast-paced, arcade-style, top-scrolling space shooter"
+msgstr ""
+
+#: gnu/packages/games.scm:4853
+msgid ""
+"In this game you are the captain of the cargo ship Chromium B.S.U. and\n"
+"are responsible for delivering supplies to the troops on the front line.  Your\n"
+"ship has a small fleet of robotic fighters which you control from the relative\n"
+"safety of the Chromium vessel."
+msgstr ""
+
+#: gnu/packages/games.scm:4935
+msgid "Drawing software for children"
+msgstr ""
+
+#: gnu/packages/games.scm:4937
+msgid ""
+"Tux Paint is a free drawing program designed for young children (kids\n"
+"ages 3 and up).  It has a simple, easy-to-use interface; fun sound effects;\n"
+"and an encouraging cartoon mascot who helps guide children as they use the\n"
+"program.  It provides a blank canvas and a variety of drawing tools to help\n"
+"your child be creative."
+msgstr ""
+
+#: gnu/packages/games.scm:4976
+msgid "Stamp images for Tux Paint"
+msgstr ""
+
+#: gnu/packages/games.scm:4978
+msgid ""
+"This package contains a set of \"Rubber Stamp\" images which can be used\n"
+"with the \"Stamp\" tool within Tux Paint."
+msgstr ""
+
+#: gnu/packages/games.scm:5025
+msgid "Configure Tux Paint"
+msgstr ""
+
+#: gnu/packages/games.scm:5027
+msgid "Tux Paint Config is a graphical configuration editor for Tux Paint."
+msgstr ""
+
+#: gnu/packages/games.scm:5077
+msgid "2D platformer game"
+msgstr ""
+
+#: gnu/packages/games.scm:5078
+msgid ""
+"SuperTux is a classic 2D jump'n run sidescroller game in\n"
+"a style similar to the original Super Mario games."
+msgstr ""
+
+#: gnu/packages/games.scm:5111
+msgid "MUD client"
+msgstr ""
+
+#: gnu/packages/games.scm:5113
+msgid ""
+"TinTin++ is a MUD client which supports MCCP (Mud Client Compression\n"
+"Protocol), MMCP (Mud Master Chat Protocol), xterm 256 colors, most TELNET\n"
+"options used by MUDs, as well as those required to login via telnet on\n"
+"Linux / Mac OS X servers, and an auto mapper with a VT100 map display."
+msgstr ""
+
+#: gnu/packages/games.scm:5158
+#, fuzzy
+#| msgid "Backgammon game"
+msgid "Programming game"
+msgstr "Triktrako (Bakgamono)"
+
+#: gnu/packages/games.scm:5159
+msgid ""
+"Learn programming, playing with ants and spider webs ;-)\n"
+"Your robot ant can be programmed in many languages: OCaml, Python, C, C++,\n"
+"Java, Ruby, Lua, JavaScript, Pascal, Perl, Scheme, Vala, Prolog.  Experienced\n"
+"programmers may also add their own favorite language."
+msgstr ""
+
+#: gnu/packages/games.scm:5197
+msgid "Keyboard mashing and doodling game for babies"
+msgstr ""
+
+#: gnu/packages/games.scm:5198
+msgid ""
+"Bambam is a simple baby keyboard (and gamepad) masher\n"
+"application that locks the keyboard and mouse and instead displays bright\n"
+"colors, pictures, and sounds."
+msgstr ""
+
+#: gnu/packages/games.scm:5262
+msgid "Arcade-style fire fighting game"
+msgstr ""
+
+#: gnu/packages/games.scm:5264
+msgid ""
+"Mr. Rescue is an arcade styled 2d action game centered around evacuating\n"
+"civilians from burning buildings.  The game features fast-paced fire\n"
+"extinguishing action, intense boss battles, a catchy soundtrack, and lots of\n"
+"throwing people around in pseudo-randomly generated buildings."
+msgstr ""
+
+#: gnu/packages/games.scm:5374
+msgid "Non-euclidean graphical rogue-like game"
+msgstr ""
+
+#: gnu/packages/games.scm:5376
+msgid ""
+"HyperRogue is a game in which the player collects treasures and fights\n"
+"monsters -- rogue-like but for the fact that it is played on the hyperbolic\n"
+"plane and not in euclidean space.\n"
+"\n"
+"In HyperRogue, the player can move through different parts of the world, which\n"
+"are home to particular creatures and may be subject to their own rules of\n"
+"\"physics\".\n"
+"\n"
+"While the game can use ASCII characters to display the the classical rogue\n"
+"symbols, it still needs graphics to render the non-euclidean world."
+msgstr ""
+
+#: gnu/packages/games.scm:5421
+msgid "Shooter with space station destruction"
+msgstr ""
+
+#: gnu/packages/games.scm:5423
+msgid ""
+"Kobo Deluxe is an enhanced version of Akira Higuchi's XKobo graphical game\n"
+"for Un*x systems with X11."
+msgstr ""
+
+#: gnu/packages/games.scm:5454
+msgid "Turn-based empire building strategy game"
+msgstr ""
+
+#: gnu/packages/games.scm:5455
+msgid ""
+"Freeciv is a turn-based empire building strategy game\n"
+"inspired by the history of human civilization.  The game commences in\n"
+"prehistory and your mission is to lead your tribe from the Stone Age\n"
+"into the Space Age."
+msgstr ""
+
+#: gnu/packages/games.scm:5486
+msgid "Recreation of data decryption effect in \"Sneakers\""
+msgstr ""
+
+#: gnu/packages/games.scm:5488
+msgid ""
+"@code{No More Secrets} provides a command line tool called \"nms\"\n"
+"that recreates the famous data decryption effect seen on screen in the 1992\n"
+"movie \"Sneakers\".\n"
+"\n"
+"This command works on piped data.  Pipe any ASCII or UTF-8 text to nms, and\n"
+"it will apply the hollywood effect, initially showing encrypted data, then\n"
+"starting a decryption sequence to reveal the original plaintext characters."
+msgstr ""
+
+#: gnu/packages/games.scm:5515
+msgid "Data files for MegaGlest"
+msgstr ""
+
+#: gnu/packages/games.scm:5516
+#, fuzzy
+#| msgid "This package contains the game data of GNU Freedink."
+msgid "This package contains the data files required for MegaGlest."
+msgstr "Tiu ĉi pako enhavas ludan datumaron por GNU Freedink."
+
+#: gnu/packages/games.scm:5569
+msgid "3D real-time strategy (RTS) game"
+msgstr ""
+
+#: gnu/packages/games.scm:5570
+msgid ""
+"MegaGlest is a cross-platform 3D real-time strategy (RTS)\n"
+"game, where you control the armies of one of seven different factions: Tech,\n"
+"Magic, Egypt, Indians, Norsemen, Persian or Romans."
+msgstr ""
+
+#: gnu/packages/games.scm:5621
+msgid "Side-scrolling physics platformer with a ball of tar"
+msgstr ""
+
+#: gnu/packages/games.scm:5622
+msgid ""
+"In FreeGish you control Gish, a ball of tar who lives\n"
+"happily with his girlfriend Brea, until one day a mysterious dark creature\n"
+"emerges from a sewer hole and pulls her below ground."
+msgstr ""
+
+#: gnu/packages/games.scm:5661
+msgid "Classic overhead run-and-gun game"
+msgstr ""
+
+#: gnu/packages/games.scm:5662
+msgid ""
+"C-Dogs SDL is a classic overhead run-and-gun game,\n"
+"supporting up to 4 players in co-op and deathmatch modes.  Customize your\n"
+"player, choose from many weapons, and blast, slide and slash your way through\n"
+"over 100 user-created campaigns."
+msgstr ""
+
+#: gnu/packages/games.scm:5762
+msgid "3D puzzle game"
+msgstr ""
+
+#: gnu/packages/games.scm:5763
+msgid ""
+"Kiki the nano bot is a 3D puzzle game.  It is basically a\n"
+"mixture of the games Sokoban and Kula-World.  Your task is to help Kiki, a\n"
+"small robot living in the nano world, repair its maker."
+msgstr ""
+
+#: gnu/packages/games.scm:5874
+msgid "2D retro multiplayer shooter game"
+msgstr ""
+
+#: gnu/packages/games.scm:5875
+msgid ""
+"Teeworlds is an online multiplayer game.  Battle with up to\n"
+"16 players in a variety of game modes, including Team Deathmatch and Capture\n"
+"The Flag.  You can even design your own maps!"
+msgstr ""
+
+#: gnu/packages/games.scm:5936
+msgid "Puzzle game with a dexterity component"
+msgstr ""
+
+#: gnu/packages/games.scm:5937
+msgid ""
+"Enigma is a puzzle game with 550 unique levels.  The object\n"
+"of the game is to find and uncover pairs of identically colored ‘Oxyd’ stones.\n"
+"Simple?  Yes.  Easy?  Certainly not!  Hidden traps, vast mazes, laser beams,\n"
+"and most of all, countless hairy puzzles usually block your direct way to the\n"
+"Oxyd stones.  Enigma’s game objects (and there are hundreds of them, lest you\n"
+"get bored) interact in many unexpected ways, and since many of them follow the\n"
+"laws of physics (Enigma’s special laws of physics, that is), controlling them\n"
+"with the mouse isn’t always trivial."
+msgstr ""
+
+#: gnu/packages/games.scm:5971
+msgid "Abstract puzzle game"
+msgstr ""
+
+#: gnu/packages/games.scm:5972
+msgid ""
+"Chroma is an abstract puzzle game. A variety of colourful\n"
+"shapes are arranged in a series of increasingly complex patterns, forming\n"
+"fiendish traps that must be disarmed and mysterious puzzles that must be\n"
+"manipulated in order to give up their subtle secrets.  Initially so\n"
+"straightforward that anyone can pick it up and begin to play, yet gradually\n"
+"becoming difficult enough to tax even the brightest of minds."
+msgstr ""
+
+#: gnu/packages/games.scm:6041
+msgid "Puzzle game"
+msgstr ""
+
+#: gnu/packages/games.scm:6042
+msgid ""
+"Fish Fillets NG is strictly a puzzle game.  The goal in\n"
+"every of the seventy levels is always the same: find a safe way out.  The fish\n"
+"utter witty remarks about their surroundings, the various inhabitants of their\n"
+"underwater realm quarrel among themselves or comment on the efforts of your\n"
+"fish.  The whole game is accompanied by quiet, comforting music."
+msgstr ""
+
+#: gnu/packages/games.scm:6125
+msgid "Roguelike dungeon crawler game"
+msgstr ""
+
+#: gnu/packages/games.scm:6126
+msgid ""
+"Dungeon Crawl Stone Soup (also known as \"Crawl\" or DCSS\n"
+"for short) is a roguelike adventure through dungeons filled with dangerous\n"
+"monsters in a quest to find the mystifyingly fabulous Orb of Zot."
+msgstr ""
+
+#: gnu/packages/games.scm:6172
+msgid "Graphical roguelike dungeon crawler game"
+msgstr ""
+
+#: gnu/packages/games.scm:6202
+msgid "Cross-platform third-person action game"
+msgstr ""
+
+#: gnu/packages/games.scm:6203
+msgid ""
+"Lugaru is a third-person action game.  The main character,\n"
+"Turner, is an anthropomorphic rebel bunny rabbit with impressive combat skills.\n"
+"In his quest to find those responsible for slaughtering his village, he uncovers\n"
+"a far-reaching conspiracy involving the corrupt leaders of the rabbit republic\n"
+"and the starving wolves from a nearby den.  Turner takes it upon himself to\n"
+"fight against their plot and save his fellow rabbits from slavery."
+msgstr ""
+
+#: gnu/packages/games.scm:6253
+msgid "Data files for 0ad"
+msgstr ""
+
+#: gnu/packages/games.scm:6254
+msgid "0ad-data provides the data files required by the game 0ad."
+msgstr ""
+
+#: gnu/packages/games.scm:6372
+msgid "3D real-time strategy game of ancient warfare"
+msgstr ""
+
+#: gnu/packages/games.scm:6373
+msgid ""
+"0 A.D. is a real-time strategy (RTS) game of ancient\n"
+"warfare.  It's a historically-based war/economy game that allows players to\n"
+"relive or rewrite the history of twelve ancient civilizations, each depicted\n"
+"at their peak of economic growth and military prowess.\n"
+"\n"
+"0ad needs a window manager that supports 'Extended Window Manager Hints'."
+msgstr ""
+
+#: gnu/packages/games.scm:6448
+msgid "Colossal Cave Adventure"
+msgstr ""
+
+#: gnu/packages/games.scm:6449
+msgid ""
+"The original Colossal Cave Adventure from 1976 was the\n"
+"origin of all text adventures, dungeon-crawl (computer) games, and\n"
+"computer-hosted roleplaying games.  This is the last version released by\n"
+"Crowther & Woods, its original authors, in 1995.  It has been known as\n"
+"\"adventure 2.5\" and \"430-point adventure\"."
+msgstr ""
+
+#: gnu/packages/games.scm:6460
+msgid "Single-player, RPG roguelike game set in the world of Eyal"
+msgstr ""
+
+#: gnu/packages/games.scm:6568
+msgid ""
+"Tales of Maj’Eyal (ToME) RPG, featuring tactical turn-based\n"
+"combat and advanced character building.  Play as one of many unique races and\n"
+"classes in the lore-filled world of Eyal, exploring random dungeons, facing\n"
+"challenging battles, and developing characters with your own tailored mix of\n"
+"abilities and powers.  With a modern graphical and customisable interface,\n"
+"intuitive mouse control, streamlined mechanics and deep, challenging combat,\n"
+"Tales of Maj’Eyal offers engaging roguelike gameplay for the 21st century."
+msgstr ""
+
+#: gnu/packages/games.scm:6613
+msgid "First person shooter engine for Quake 1"
+msgstr ""
+
+#: gnu/packages/games.scm:6614
+msgid ""
+"Quakespasm is a modern engine for id software's Quake 1.\n"
+"It includes support for 64 bit CPUs, custom music playback, a new sound driver,\n"
+"some graphical niceities, and numerous bug-fixes and other improvements."
+msgstr ""
+
+#: gnu/packages/games.scm:6672
+msgid ""
+"vkquake is a modern engine for id software's Quake 1.\n"
+"It includes support for 64 bit CPUs, custom music playback, a new sound driver,\n"
+"some graphical niceities, and numerous bug-fixes and other improvements."
+msgstr ""
+
+#: gnu/packages/games.scm:6723
+msgid "First person shooter engine based on quake2"
+msgstr ""
+
+#: gnu/packages/games.scm:6724
+msgid ""
+"Yamagi Quake II is an enhanced client for id Software's Quake II.\n"
+"The main focus is an unchanged single player experience like back in 1997,\n"
+"thus the gameplay and the graphics are unaltered.  However the user may use one\n"
+"of the unofficial retexturing packs.  In comparison with the official client,\n"
+"over 1000 bugs were fixed and an extensive code audit done,\n"
+"making Yamagi Quake II one of the most solid Quake II implementations available."
+msgstr ""
+
+#: gnu/packages/games.scm:6752
+msgid "Sudoku for your terminal"
+msgstr ""
+
+#: gnu/packages/games.scm:6753
+msgid "Nudoku is a ncurses-based Sudoku game for your terminal."
+msgstr ""
+
+#: gnu/packages/games.scm:6799
+msgid "Realistic physics puzzle game"
+msgstr ""
+
+#: gnu/packages/games.scm:6800
+msgid ""
+"The Butterfly Effect (tbe) is a game that uses\n"
+"realistic physics simulations to combine lots of simple mechanical\n"
+"elements to achieve a simple goal in the most complex way possible."
+msgstr ""
+
+#: gnu/packages/games.scm:6843
+msgid "Game of lonely space adventure"
+msgstr ""
+
+#: gnu/packages/games.scm:6845
+msgid ""
+"Pioneer is a space adventure game set in our galaxy at the turn of the\n"
+"31st century.  The game is open-ended, and you are free to eke out whatever\n"
+"kind of space-faring existence you can think of.  Look for fame or fortune by\n"
+"exploring the millions of star systems.  Turn to a life of crime as a pirate,\n"
+"smuggler or bounty hunter.  Forge and break alliances with the various\n"
+"factions fighting for power, freedom or self-determination.  The universe is\n"
+"whatever you make of it."
+msgstr ""
+
+#: gnu/packages/games.scm:6872
+msgid "Hacking contribution graphs in git"
+msgstr ""
+
+#: gnu/packages/games.scm:6874
+msgid ""
+"Badass generates false commits for a range of dates, essentially\n"
+"hacking the gamification of contribution graphs on platforms such as\n"
+"Github or Gitlab."
+msgstr ""
+
+#: gnu/packages/games.scm:6947
+msgid "Educational programming strategy game"
+msgstr ""
+
+#: gnu/packages/games.scm:6948
+msgid ""
+"Colobot: Gold Edition is a real-time strategy game, where\n"
+"you can program your units (bots) in a language called CBOT, which is similar\n"
+"to C++ and Java.  Your mission is to find a new planet to live and survive.\n"
+"You can save humanity and get programming skills!"
+msgstr ""
+
+#: gnu/packages/games.scm:7040
+msgid "Modern Doom 2 source port"
+msgstr ""
+
+#: gnu/packages/games.scm:7041
+msgid ""
+"GZdoom is a port of the Doom 2 game engine, with a modern\n"
+"renderer.  It improves modding support with ZDoom's advanced mapping features\n"
+"and the new ZScript language.  In addition to Doom, it supports Heretic, Hexen,\n"
+"Strife, Chex Quest, and fan-created games like Harmony, Hacx and Freedoom."
+msgstr ""
+
+#: gnu/packages/games.scm:7076
+#, fuzzy
+#| msgid "Music Player Daemon"
+msgid "Multiplayer Doom port"
+msgstr "Music Player Daemon (muzik-ludila demono)"
+
+#: gnu/packages/games.scm:7077
+msgid ""
+"Odamex is a modification of the Doom engine that\n"
+"allows players to easily join servers dedicated to playing Doom\n"
+"online."
+msgstr ""
+
+#: gnu/packages/games.scm:7102
+msgid ""
+"Doom source port preserving the look, feel, and bugs of vanilla\n"
+"Doom"
+msgstr ""
+
+#: gnu/packages/games.scm:7105
+msgid ""
+"Chocolate Doom takes a different approach to other source ports.  Its\n"
+"aim is to accurately reproduce the experience of playing Vanilla Doom.  It is\n"
+"a conservative, historically accurate Doom source port, which is compatible\n"
+"with the thousands of mods and levels that were made before the Doom source\n"
+"code was released.  Rather than flashy new graphics, Chocolate Doom's main\n"
+"features are its accurate reproduction of the game as it was played in the\n"
+"1990s.  The project is developed around a carefully-considered philosophy that\n"
+"intentionally restricts which features may be added (and rejects any that\n"
+"affect gameplay)."
+msgstr ""
+
+#: gnu/packages/games.scm:7141
+msgid ""
+"Limit-removing enhanced-resolution Doom source port based on\n"
+"Chocolate Doom"
+msgstr ""
+
+#: gnu/packages/games.scm:7144
+msgid ""
+"Crispy Doom is a friendly fork of Chocolate Doom that provides a higher\n"
+"display resolution, removes the static limits of the Doom engine and offers\n"
+"further optional visual, tactical and physical enhancements while remaining\n"
+"entirely config file, savegame, netplay and demo compatible with the\n"
+"original."
+msgstr ""
+
+#: gnu/packages/games.scm:7216
+msgid "C11 / gnu11 utilities C library"
+msgstr ""
+
+#: gnu/packages/games.scm:7217
+msgid "This package provides C11 / gnu11 utilities C library"
+msgstr ""
+
+#: gnu/packages/games.scm:7274
+msgid "The Fortune Cookie program from BSD games"
+msgstr ""
+
+#: gnu/packages/games.scm:7275
+msgid ""
+"Fortune is a command-line utility which displays a random\n"
+"quotation from a collection of quotes."
+msgstr ""
+
+#: gnu/packages/games.scm:7315
+msgid "Data files for Xonotic"
+msgstr ""
+
+#: gnu/packages/games.scm:7317
+msgid "Xonotic-data provides the data files required by the game Xonotic."
+msgstr ""
+
+#: gnu/packages/games.scm:7511
+msgid "Fast-paced first-person shooter game"
+msgstr ""
+
+#: gnu/packages/games.scm:7513
+msgid ""
+"Xonotic is a free, fast-paced first-person shooter.\n"
+"The project is geared towards providing addictive arena shooter\n"
+"gameplay which is all spawned and driven by the community itself.\n"
+"Xonotic is a direct successor of the Nexuiz project with years of\n"
+"development between them, and it aims to become the best possible\n"
+"open-source FPS of its kind."
+msgstr ""
+
+#: gnu/packages/games.scm:7563
+msgid "Portable Z-machine interpreter (ncurses version) for text adventure games"
+msgstr ""
+
+#: gnu/packages/games.scm:7564
+msgid ""
+"Frotz is an interpreter for Infocom games and other Z-machine\n"
+"games in the text adventure/interactive fiction genre.  This version of Frotz\n"
+"complies with standard 1.0 of Graham Nelson's specification.  It plays all\n"
+"Z-code games V1-V8, including V6, with sound support through libao, and uses\n"
+"ncurses for text display."
+msgstr ""
+
+#: gnu/packages/games.scm:7605
+msgid "Portable Z-machine dumb interpreter for text adventure games"
+msgstr ""
+
+#: gnu/packages/games.scm:7606
+msgid ""
+"Frotz is an interpreter for Infocom games and\n"
+"other Z-machine games in the text adventure/interactive fiction genre.\n"
+"dfrotz is the dumb interface version.  You get no screen control; everything\n"
+"is just printed to the terminal line by line.  The terminal handles all the\n"
+"scrolling.  Maybe you'd like to experience what it's like to play Adventure on\n"
+"a teletype.  A much cooler use for compiling Frotz with the dumb interface is\n"
+"that it can be wrapped in CGI scripting, PHP, and the like to allow people\n"
+"to play games on webpages.  It can also be made into a chat bot."
+msgstr ""
+
+#: gnu/packages/games.scm:7669
+msgid "Portable Z-machine interpreter (SDL port) for text adventure games"
+msgstr ""
+
+#: gnu/packages/games.scm:7670
+msgid ""
+"Frotz is an interpreter for Infocom games and other Z-machine\n"
+"games in the text adventure/interactive fiction genre.  This version of Frotz\n"
+"using SDL fully supports all these versions of the Z-Machine including the\n"
+"graphical version 6.  Graphics and sound are created through the use of the SDL\n"
+"libraries.  AIFF sound effects and music in MOD and OGG formats are supported\n"
+"when packaged in Blorb container files or optionally from individual files."
+msgstr ""
+
+#: gnu/packages/games.scm:7762
+msgid "Puzzle with bubbles"
+msgstr ""
+
+#: gnu/packages/games.scm:7764
+msgid ""
+"Frozen-Bubble is a clone of the popular Puzzle Bobble game, in which\n"
+"you attempt to shoot bubbles into groups of the same color to cause them to\n"
+"pop.\n"
+"\n"
+"Players compete as penguins and must use the arrow keys to aim a colored\n"
+"bubble at groups of bubbles.  The objective is to clear all the bubbles off\n"
+"the screen before a bubble passes below a line at the bottom.\n"
+"\n"
+"It features 100 single-player levels, a two-player mode, music and striking\n"
+"graphics.  A level editor is also included to allow players to create and play\n"
+"their own levels."
+msgstr ""
+
+#: gnu/packages/games.scm:7799
+msgid "Game controller library"
+msgstr ""
+
+#: gnu/packages/games.scm:7800
+msgid ""
+"Libmanette is a small GObject library giving you simple\n"
+"access to game controllers.  It supports the de-facto standard gamepads as\n"
+"defined by the W3C standard Gamepad specification or as implemented by the SDL\n"
+"GameController."
+msgstr ""
+
+#: gnu/packages/games.scm:7846
+msgid "GNOME version of Tetris"
+msgstr ""
+
+#: gnu/packages/games.scm:7847
+msgid ""
+"Quadrapassel comes from the classic falling-block game,\n"
+"Tetris.  The goal of the game is to create complete horizontal lines of\n"
+"blocks, which will disappear.  The blocks come in seven different shapes made\n"
+"from four blocks each: one straight, two L-shaped, one square, and two\n"
+"S-shaped.  The blocks fall from the top center of the screen in a random\n"
+"order.  You rotate the blocks and move them across the screen to drop them in\n"
+"complete lines.  You score by dropping blocks fast and completing lines.  As\n"
+"your score gets higher, you level up and the blocks fall faster."
+msgstr ""
+
+#: gnu/packages/games.scm:7900
+msgid "2D space trading and combat game"
+msgstr ""
+
+#: gnu/packages/games.scm:7901
+msgid ""
+"Endless Sky is a 2D space trading and combat game.  Explore\n"
+"other star systems.  Earn money by trading, carrying passengers, or completing\n"
+"missions.  Use your earnings to buy a better ship or to upgrade the weapons and\n"
+"engines on your current one.  Blow up pirates.  Take sides in a civil war.  Or\n"
+"leave human space behind and hope to find friendly aliens whose culture is more\n"
+"civilized than your own."
+msgstr ""
+
+#: gnu/packages/games.scm:8050
+msgid "Advanced rhythm game designed for both home and arcade use"
+msgstr ""
+
+#: gnu/packages/games.scm:8051
+msgid ""
+"StepMania is a dance and rhythm game.  It features 3D\n"
+"graphics, keyboard and dance pad support, and an editor for creating your own\n"
+"steps.\n"
+"\n"
+"This package provides the core application, but no song is shipped.  You need\n"
+"to download and install them in @file{$HOME/.stepmania-X.Y/Songs} directory."
+msgstr ""
+
+#: gnu/packages/games.scm:8136
+msgid "Multiplayer tank battle game"
+msgstr ""
+
+#: gnu/packages/games.scm:8137
+msgid ""
+"Battle Tanks (also known as \"btanks\") is a funny battle\n"
+"game, where you can choose one of three vehicles and eliminate your enemy\n"
+"using the whole arsenal of weapons.  It has original cartoon-like graphics and\n"
+"cool music, it’s fun and dynamic, it has several network modes for deathmatch\n"
+"and cooperative."
+msgstr ""
+
+#: gnu/packages/games.scm:8167
+msgid "Simple 2D shooting strategy game set in space"
+msgstr ""
+
+#: gnu/packages/games.scm:8168
+msgid ""
+"Slingshot is a two-dimensional strategy game where two\n"
+"players attempt to shoot one another through a section of space populated by\n"
+"planets.  The main feature of the game is that the shots, once fired, are\n"
+"affected by the gravity of the planets."
+msgstr ""
+
+#: gnu/packages/games.scm:8215
+msgid "4D Tetris"
+msgstr ""
+
+#: gnu/packages/games.scm:8216
+msgid ""
+"4D-TRIS is an alteration of the well-known Tetris game.  The\n"
+"game field is extended to 4D space, which has to filled up by the gamer with\n"
+"4D hyper cubes."
+msgstr ""
+
+#: gnu/packages/games.scm:8292
+msgid "Port of Arx Fatalis, a first-person role-playing game"
+msgstr ""
+
+#: gnu/packages/games.scm:8293
+msgid ""
+"Arx Libertatis is a cross-platform port of Arx Fatalis, a 2002\n"
+"first-person role-playing game / dungeon crawler developed by Arkane Studios.\n"
+"This port however does not include the game data, so you need to obtain a copy\n"
+"of the original Arx Fatalis or its demo to play Arx Libertatis.  Arx Fatalis\n"
+"features crafting, melee and ranged combat, as well as a unique casting system\n"
+"where the player draws runes in real time to effect the desired spell."
+msgstr ""
+
+#: gnu/packages/games.scm:8339
+msgid "2d action platformer game"
+msgstr ""
+
+#: gnu/packages/games.scm:8340
+msgid ""
+"The Legend of Edgar is a 2D platform game with a persistent world.\n"
+"When Edgar's father fails to return home after venturing out one dark and stormy night,\n"
+"Edgar fears the worst: he has been captured by the evil sorcerer who lives in\n"
+"a fortress beyond the forbidden swamp."
+msgstr ""
+
+#: gnu/packages/games.scm:8441
+msgid "Multiplayer action game where you control small and nimble humanoids"
+msgstr ""
+
+#: gnu/packages/games.scm:8442
+msgid ""
+"OpenClonk is a multiplayer action/tactics/skill game.  It is\n"
+"often referred to as a mixture of The Settlers and Worms.  In a simple 2D\n"
+"antfarm-style landscape, the player controls a crew of Clonks, small but\n"
+"robust humanoid beings.  The game encourages free play but the normal goal is\n"
+"to either exploit valuable resources from the earth by building a mine or\n"
+"fight each other on an arena-like map."
+msgstr ""
+
+#: gnu/packages/games.scm:8473
+msgid "Action Roleplaying Engine"
+msgstr ""
+
+#: gnu/packages/games.scm:8474
+msgid ""
+"Flare (Free Libre Action Roleplaying Engine) is a simple\n"
+"game engine built to handle a very specific kind of game: single-player 2D\n"
+"action RPGs."
+msgstr ""
+
+#: gnu/packages/games.scm:8538
+msgid "Fantasy action RPG using the FLARE engine"
+msgstr ""
+
+#: gnu/packages/games.scm:8539
+msgid ""
+"Flare is a single-player 2D action RPG with\n"
+"fast-paced action and a dark fantasy style."
+msgstr ""
+
+#: gnu/packages/games.scm:8590
+msgid "Action-adventure dungeon crawl game"
+msgstr ""
+
+#: gnu/packages/games.scm:8591
+msgid ""
+"Far below the surface of the planet is a place of limitless\n"
+"power.  Those that seek to control such a utopia will soon bring an end to\n"
+"themselves.  Seeking an end to the troubles that plague him, PSI user Merit\n"
+"journeys into the hallowed Orcus Dome in search of answers.\n"
+"\n"
+"Meritous is a action-adventure game with simple controls but a challenge to\n"
+"find a balance of power versus recovery time during real-time battles.  Set in\n"
+"a procedurally generated world, the player can explore thousands of rooms in\n"
+"search of powerful artifacts, tools to help them, and to eventually free the\n"
+"Orcus Dome from evil."
+msgstr ""
+
+#: gnu/packages/games.scm:8654
+msgid "Guide a marble across fractal landscapes"
+msgstr ""
+
+#: gnu/packages/games.scm:8655
+msgid ""
+"Marble Marcher is a video game that uses a fractal physics\n"
+"engine and fully procedural rendering to produce beautiful and unique\n"
+"gameplay.  The game is played on the surface of evolving fractals.  The goal\n"
+"of the game is to get your marble to the flag as quickly as possible.  But be\n"
+"careful not to fall off the level or get crushed by the fractal!  There are 24\n"
+"levels to unlock."
+msgstr ""
+
+#: gnu/packages/games.scm:8696
+msgid "Libraries for 3D simulations and games"
+msgstr ""
+
+#: gnu/packages/games.scm:8697
+msgid ""
+"SimGear is a set of libraries designed to be used as\n"
+"building blocks for quickly assembling 3D simulations, games, and\n"
+"visualization applications.  SimGear is developed by the FlightGear project\n"
+"and also provides the base for the FlightGear Flight Simulator."
+msgstr ""
+
+#: gnu/packages/games.scm:8789
+msgid "Flight simulator"
+msgstr ""
+
+#: gnu/packages/games.scm:8790
+msgid ""
+"The goal of the FlightGear project is to create a\n"
+"sophisticated flight simulator framework for use in research or academic\n"
+"environments, pilot training, as an industry engineering tool, for DIY-ers to\n"
+"pursue their favorite interesting flight simulation idea, and last but\n"
+"certainly not least as a fun, realistic, and challenging desktop flight\n"
+"simulator."
+msgstr ""
+
+#: gnu/packages/games.scm:8836
+msgid "Multiplayer platform game with bunnies"
+msgstr ""
+
+#: gnu/packages/games.scm:8837
+msgid ""
+"You, as a bunny, have to jump on your opponents to make them\n"
+"explode.  It is a true multiplayer game; you cannot play this alone.  You can\n"
+"play with up to four players simultaneously.  It has network support."
+msgstr ""
+
+#: gnu/packages/games.scm:8898
+msgid "Turn-based artillery game featuring fighting hedgehogs"
+msgstr ""
+
+#: gnu/packages/games.scm:8900
+msgid ""
+"Hedgewars is a turn based strategy, artillery, action and comedy game,\n"
+"featuring the antics of pink hedgehogs with attitude as they battle from the\n"
+"depths of hell to the depths of space.\n"
+"\n"
+"As commander, it's your job to assemble your crack team of hedgehog soldiers\n"
+"and bring the war to your enemy."
+msgstr ""
+
+#: gnu/packages/games.scm:8932
+msgid "Stealth coffee-break roguelike game"
+msgstr ""
+
+#: gnu/packages/games.scm:8933
+msgid ""
+"Harmonist: Dayoriah Clan Infiltration is a stealth\n"
+"coffee-break roguelike game.  The game has a heavy focus on tactical\n"
+"positioning, light and noise mechanisms, making use of various terrain types\n"
+"and cones of view for monsters.  Aiming for a replayable streamlined experience,\n"
+"the game avoids complex inventory management and character building, relying\n"
+"on items and player adaptability for character progression."
+msgstr ""
+
+#: gnu/packages/games.scm:9064 gnu/packages/games.scm:9247
+msgid "Classic 2D point and click adventure game"
+msgstr ""
+
+#: gnu/packages/games.scm:9065
+msgid ""
+"Drascula: The Vampire Strikes Back is a classic humorous 2D\n"
+"point and click adventure game.\n"
+"\n"
+"In Drascula you play the role of John Hacker, a British estate agent, that\n"
+"gets to meet a gorgeous blond girl who is kidnapped by the notorious vampire\n"
+"Count Drascula and embark on a fun yet dangerous quest to rescue her.\n"
+"Unfortunately, Hacker is not aware of Drascula's real ambitions: DOMINATING\n"
+"the World and demonstrating that he is even more evil than his brother Vlad."
+msgstr ""
+
+#: gnu/packages/games.scm:9145
+msgid "2D point and click fantasy adventure game"
+msgstr ""
+
+#: gnu/packages/games.scm:9147
+msgid ""
+"Lure of the Temptress is a classic 2D point and click adventure game.\n"
+"\n"
+"You are Diermot, an unwilling hero who'd prefer a quiet life, and are, to all\n"
+"intents and purposes, a good man.  After decades of unrest the King has united\n"
+"the warring factions in his kingdom and all his lands are at peace, except\n"
+"a remote region around a town called Turnvale.  A revolt has recently taken\n"
+"place in Turnvale, a revolt orchestrated by an apprentice sorceress called\n"
+"Selena, the titular temptress.  The king calls together his finest horsemen\n"
+"and heads off (with you in tow) to Turnvale just to witness how hellish\n"
+"mercenary monsters called Skorl are invading the town.\n"
+"\n"
+"The king's men are defeated, the king is killed and you fall of your horse and\n"
+"bang your head heavily on the ground.  You have been *unconscious for a while\n"
+"when you realize that you are in a dingy cell guarded by a not so friendly\n"
+"Skorl.  Maybe it would be an idea to try and escape..."
+msgstr ""
+
+#: gnu/packages/games.scm:9248
+msgid ""
+"Flight of the Amazon Queen is a 2D point-and-click\n"
+"adventure game set in the 1940s.\n"
+"\n"
+"You assume the role of Joe King, a pilot for hire who is given the job\n"
+"of flying Faye Russell (a famous movie star) into the Amazon jungle\n"
+"for a photo shoot.  Of course, things never go according to plans.\n"
+"After an unfortunate turn of events they find themselves stranded in\n"
+"the heart of the Amazon jungle, where Joe will embark on a quest to\n"
+"rescue a kidnapped princess and in the process, discover the true\n"
+"sinister intentions of a suspiciously located Lederhosen company.  In\n"
+"a rich 2D environment, Joe will cross paths with a variety of unlikely\n"
+"jungle inhabitants including, but not limited to, a tribe of Amazon\n"
+"women and 6-foot-tall pygmies."
+msgstr ""
+
+#: gnu/packages/games.scm:9348
+msgid "Classic 2D point an click science-fiction adventure game"
+msgstr ""
+
+#: gnu/packages/games.scm:9350
+msgid ""
+"Beneath a Steel Sky is a science-fiction thriller set in a bleak\n"
+"post-apocalyptic vision of the future.  It revolves around Union City,\n"
+"where selfishness, rivalry, and corruption by its citizens seems to be\n"
+"all too common, those who can afford it live underground, away from\n"
+"the pollution and social problems which are plaguing the city.\n"
+"\n"
+"You take on the role of Robert Foster, an outcast of sorts from the\n"
+"city since a boy who was raised in a remote environment outside of\n"
+"Union City simply termed ``the gap''.  Robert's mother took him away\n"
+"from Union City as a child on their way to ``Hobart'' but the\n"
+"helicopter crashed on its way.  Unfortunately, Robert's mother died,\n"
+"but he survived and was left to be raised by a local tribe from the\n"
+"gap.\n"
+"\n"
+"Years later, Union City security drops by and abducts Robert, killing\n"
+"his tribe in the process; upon reaching the city the helicopter taking\n"
+"him there crashes with him escaping, high upon a tower block in the\n"
+"middle of the city.  He sets out to discover the truth about his past,\n"
+"and to seek vengeance for the killing of his tribe."
+msgstr ""
+
+#: gnu/packages/games.scm:9411
+msgid "Program a little robot and watch it explore a world"
+msgstr ""
+
+#: gnu/packages/games.scm:9413
+msgid ""
+"GNU Robots is a game in which you program a robot to explore a world\n"
+"full of enemies that can hurt it, obstacles and food to be eaten.  The goal of\n"
+"the game is to stay alive and collect prizes.  The robot program conveniently\n"
+"may be written in a plain text file in the Scheme programming language."
+msgstr ""
+
+#: gnu/packages/games.scm:9482
+msgid "Toy train simulation game"
+msgstr ""
+
+#: gnu/packages/games.scm:9483
+msgid ""
+"Ri-li is a game in which you drive a wooden toy\n"
+"steam locomotive across many levels and collect all the coaches to\n"
+"win."
+msgstr ""
+
+#: gnu/packages/games.scm:9537
+msgid "Turn-based space empire and galactic conquest computer game"
+msgstr ""
+
+#: gnu/packages/games.scm:9539
+msgid ""
+"FreeOrion is a turn-based space empire and galactic conquest (4X)\n"
+"computer game being designed and built by the FreeOrion project.  Control an\n"
+"empire with the goal of exploring the galaxy, expanding your territory,\n"
+"exploiting the resources, and exterminating rival alien empires.  FreeOrion is\n"
+"inspired by the tradition of the Master of Orion games, but is not a clone or\n"
+"remake of that series or any other game."
+msgstr ""
+
+#: gnu/packages/games.scm:9593
+msgid "Program playing the game of Go"
+msgstr ""
+
+#: gnu/packages/games.scm:9595
+msgid ""
+"Leela-zero is a Go engine with no human-provided knowledge, modeled after\n"
+"the AlphaGo Zero paper.  The current best network weights file for the engine\n"
+"can be downloaded from @url{https://zero.sjeng.org/best-network}."
+msgstr ""
+
+#: gnu/packages/games.scm:9668
+msgid "Qt GUI to play the game of Go"
+msgstr ""
+
+#: gnu/packages/games.scm:9670
+msgid ""
+"This a tool for Go players which performs the following functions:\n"
+"@itemize\n"
+"@item SGF editor,\n"
+"@item Analysis frontend for Leela Zero (or compatible engines),\n"
+"@item GTP interface (to play against an engine),\n"
+"@item IGS client (to play on the internet),\n"
+"@item Export games to a variety of formats.\n"
+"@end itemize"
+msgstr ""
+
+#: gnu/packages/games.scm:9712
+msgid "Stamp drawing toy"
+msgstr ""
+
+#: gnu/packages/games.scm:9713
+msgid ""
+"KTuberling is a drawing toy intended for small children and\n"
+"adults who remain young at heart.  The game has no winner; the only purpose is\n"
+"to make the funniest faces you can.  Several activities are possible, e.g.:\n"
+"\n"
+"@itemize\n"
+"@item Give the potato a funny face, clothes, and other goodies\n"
+"@item Build a small town, complete with school, zoo, and fire department\n"
+"@item Create a fantastic moonscape with spaceships and aliens\n"
+"@item Top a pizza\n"
+"@end itemize\n"
+"\n"
+"KTuberling can speak the name of each the object in several languages,\n"
+"to assist in learning basic vocabulary.\n"
+"\n"
+"This package is part of the KDE games module."
+msgstr ""
+
+#: gnu/packages/games.scm:9759
+msgid "Number logic game"
+msgstr ""
+
+#: gnu/packages/games.scm:9760
+msgid ""
+"Picmi is a number logic game in which cells in a grid have\n"
+"to be colored or left blank according to numbers given at the side of the\n"
+"grid.  The aim is to reveal a hidden picture.\n"
+"\n"
+"This package is part of the KDE games module."
+msgstr ""
+
+#: gnu/packages/games.scm:9797
+msgid "Miniature golf game"
+msgstr ""
+
+#: gnu/packages/games.scm:9798
+msgid ""
+"Kolf is a miniature golf game for one to ten players.  The\n"
+"game is played from an overhead view, with a short bar representing the golf\n"
+"club.  Kolf features many different types of objects, such as water hazards,\n"
+"slopes, sand traps, and black holes (warps), among others.\n"
+"\n"
+"Features are:\n"
+"@itemize\n"
+"@item Single and Multi-player (up to ten players) modes\n"
+"@item High scores table\n"
+"@item Dynamic courses\n"
+"@item Third-party courses\n"
+"@item Course editor\n"
+"@end itemize\n"
+"\n"
+"This package is part of the KDE games module."
+msgstr ""
+
+#: gnu/packages/games.scm:9841
+msgid "Shared library for kmahjongg and kshisen"
+msgstr ""
+
+#: gnu/packages/games.scm:9842
+msgid ""
+"Shared library and common files for kmahjongg, kshisen and\n"
+"other Mah Jongg like games."
+msgstr ""
+
+#: gnu/packages/games.scm:9875
+msgid "Tile laying patience"
+msgstr ""
+
+#: gnu/packages/games.scm:9876
+msgid ""
+"In KMahjongg the tiles are scrambled and staked on top of\n"
+"each other to resemble a certain shape.  The player is then expected to remove\n"
+"all the tiles off the game board by locating each tile's matching pair.\n"
+"\n"
+"A variety of tile layouts are included, as well as an editor to create new\n"
+"layouts.\n"
+"\n"
+"This package is part of the KDE games module."
+msgstr ""
+
+#: gnu/packages/games.scm:9917
+msgid "Shisen-Sho solitaire game"
 msgstr ""
 
-#: gnu/packages/games.scm:837
-msgid "Reference frontend for the libretro API"
-msgstr "Referenca fasono por la API libretro"
+#: gnu/packages/games.scm:9918
+msgid ""
+"KShisen is a solitaire-like game played using the standard\n"
+"set of Mahjong tiles.  Unlike Mahjong however, KShisen has only one layer of\n"
+"scrambled tiles\n"
+"\n"
+"This package is part of the KDE games module."
+msgstr ""
+
+#: gnu/packages/games.scm:9955
+msgid "Classical Mah Jongg game for 4 players"
+msgstr ""
+
+#: gnu/packages/games.scm:9956
+msgid ""
+"Kajongg is the ancient Chinese board game for 4 players.\n"
+"\n"
+"If you are looking for the Mah Jongg solitaire please use the application\n"
+"kmahjongg.\n"
+"\n"
+"Kajongg can be used in two different ways: Scoring a manual game where you\n"
+"play as always and use Kajongg for the computation of scores and for\n"
+"bookkeeping.  Or you can use Kajongg to play against any combination of other\n"
+"human players or computer players.\n"
+"\n"
+"This package is part of the KDE games module."
+msgstr ""
+
+#: gnu/packages/games.scm:9998
+msgid "Breakout like game"
+msgstr ""
+
+#: gnu/packages/games.scm:9999
+msgid ""
+"KBreakout is similar to the classics breakout and xboing,\n"
+"featuring a number of added graphical enhancements and effects.  You control a\n"
+"paddle at the bottom of the playing-field, and must destroy bricks at the top\n"
+"by bouncing balls against them.\n"
+"\n"
+"This package is part of the KDE games module."
+msgstr ""
+
+#: gnu/packages/games.scm:10037
+msgid "Classical mine sweeper game"
+msgstr ""
+
+#: gnu/packages/games.scm:10038
+msgid ""
+"KMines is a classic Minesweeper game.  The idea is to\n"
+"uncover all the squares without blowing up any mines.  When a mine is blown\n"
+"up, the game is over.\n"
+"\n"
+"This package is part of the KDE games module."
+msgstr ""
+
+#: gnu/packages/games.scm:10075
+msgid "Simple turn-based strategy game"
+msgstr ""
+
+#: gnu/packages/games.scm:10076
+msgid ""
+"Konquest is the KDE version of Gnu-Lactic Konquest.  Players\n"
+"conquer other planets by sending ships to them.  The goal is to build an\n"
+"interstellar empire and ultimately conquer all other player's planets.  The\n"
+"game can be played with up to nine empires, commanded either by the computer\n"
+"or by puny earthlings.\n"
+"\n"
+"This package is part of the KDE games module."
+msgstr ""
+
+#: gnu/packages/games.scm:10115
+#, fuzzy
+#| msgid "Ball and paddle game"
+msgid "Jezzball arcade game"
+msgstr "Ludo kun pilko kaj padelo"
+
+#: gnu/packages/games.scm:10116
+msgid ""
+"KBounce is a single player arcade game with the elements of\n"
+"puzzle.  It is played on a field, surrounded by wall, with two or more balls\n"
+"bouncing around within the walls.  The object of the game is to build new\n"
+"walls to decrease the size of the active field.\n"
+"\n"
+"This package is part of the KDE games module."
+msgstr ""
+
+#: gnu/packages/games.scm:10154
+msgid "Single player falling blocks puzzle game"
+msgstr ""
+
+#: gnu/packages/games.scm:10155
+msgid ""
+"KBlocks is the classic Tetris-like falling blocks game.\n"
+"\n"
+"The idea is to stack the falling blocks to create horizontal lines without any\n"
+"gaps.  When a line is completed it is removed, and more space is available in\n"
+"the play area.  When there is not enough space for blocks to fall, the game is\n"
+"over.\n"
+"\n"
+"This package is part of the KDE games module."
+msgstr ""
+
+#: gnu/packages/games.scm:10198
+msgid "Sudoku puzzle game and solver"
+msgstr ""
+
+#: gnu/packages/games.scm:10199
+msgid ""
+"KSudoku is a Sudoku game and solver, supporting a range of\n"
+"2D and 3D Sudoku variants.  In addition to playing Sudoku, it can print Sudoku\n"
+"puzzle sheets and find the solution to any Sudoku puzzle.\n"
+"\n"
+"The word Sudoku means \"single number in an allotted place\" in Japanese.\n"
+"These are the basic rules: Every Sudoku is a square divided into 3x3\n"
+"subsquares with 3x3 cells each.\n"
+"\n"
+"Some cells are filled with a number at the beginning.  The remaining ones are\n"
+"to be filled by the player using numbers from 1 to 9, without repeating a\n"
+"number twice on each column, row or subsquare (each of them must contain only\n"
+"one 1, one 2, one 3, and so on).  The game requires logic and patience.\n"
+"Solving takes usually 10 to 30 minutes, depending on puzzle level, your skill\n"
+"and experience.\n"
+"\n"
+"The numerals in Sudoku puzzles are used for convenience (for example in 16x16\n"
+"board we use letters): arithmetic relationships between numbers are\n"
+"irrelevant.\n"
+"\n"
+"This program supports also 16x16 games with numbers from 1 to 16 and 256\n"
+"cells with 16 cols, rows and subsquares!\n"
+"\n"
+"More information at http://en.wikipedia.org/wiki/Sudoku\n"
+"\n"
+"This package is part of the KDE games module."
+msgstr ""
+
+#: gnu/packages/games.scm:10254
+msgid "Place 5 equal pieces together, but wait, there are 3 new ones"
+msgstr ""
+
+#: gnu/packages/games.scm:10255
+msgid ""
+"KLines is a simple but highly addictive one player game.\n"
+"\n"
+"The player has to move the colored balls around the game board, gathering them\n"
+"into the lines of the same color by five.  Once the line is complete it is\n"
+"removed from the board, therefore freeing precious space.  In the same time\n"
+"the new balls keep arriving by three after each move, filling up the game\n"
+"board.\n"
+"\n"
+"KLines is a single-player game where the player removes colored balls from the\n"
+"board by arranging them into lines of five or more.  However, every time the\n"
+"player moves a ball, three more balls are added to the board.\n"
+"\n"
+"This package is part of the KDE games module."
+msgstr ""
+
+#: gnu/packages/games.scm:10298
+msgid "Action and puzzle solving game"
+msgstr ""
+
+#: gnu/packages/games.scm:10299
+msgid ""
+"KGoldrunner is an action game where the hero runs through a\n"
+"maze, climbs stairs, dig holes and dodges enemies in order to collect all the\n"
+"gold nuggets and escape to the next level.  Your enemies are also after the\n"
+"gold.  Worse still, they are after you!.\n"
+"\n"
+"KGoldrunner is a fast-paced platform game where the player must navigate a\n"
+"maze while collecting gold nuggets and avoiding enemies.  A variety of level\n"
+"packs are included, as well as an editor to create new levels.\n"
+"\n"
+"This package is part of the KDE games module."
+msgstr ""
+
+#: gnu/packages/games.scm:10342
+msgid "Three-in-a-row game"
+msgstr ""
+
+#: gnu/packages/games.scm:10343
+msgid ""
+"KDiamond is a three-in-a-row game like Bejeweled.  It\n"
+"features unlimited fun with randomly generated games and five difficulty\n"
+"levels with varying number of diamond colors and board sizes.\n"
+"\n"
+"This package is part of the KDE games module."
+msgstr ""
+
+#: gnu/packages/games.scm:10380
+msgid "Place 4 pieces in a row"
+msgstr ""
+
+#: gnu/packages/games.scm:10381
+msgid ""
+"KFourInLine is a board game for two players based on the\n"
+"Connect-Four game.\n"
+"\n"
+"KFourInLine is a game where two players take turns dropping pieces into a\n"
+"grid, the winner being the first to place four pieces in a line.\n"
+"\n"
+"This package is part of the KDE games module."
+msgstr ""
+
+#: gnu/packages/games.scm:10420
+msgid "Find atoms in a grid by shooting electrons"
+msgstr ""
+
+#: gnu/packages/games.scm:10421
+msgid ""
+"KBlackbox is a game of hide and seek played on a grid of\n"
+"boxes where the computer has hidden several balls.  The position of the hidden\n"
+"balls can be deduced by shooting beams into the box\n"
+"\n"
+"KBlackBox is a game of hide and seek played on an grid of boxes, where the\n"
+"player shoots rays into the grid to deduce the positions of hidden objects.\n"
+"\n"
+"This package is part of the KDE games module."
+msgstr ""
+
+#: gnu/packages/games.scm:10461
+msgid "Turn the board pieces to get all computers connected"
+msgstr ""
 
-#: gnu/packages/games.scm:839
+#: gnu/packages/games.scm:10462
 msgid ""
-"Libretro is a simple but powerful development interface that allows for\n"
-"the easy creation of emulators, games and multimedia applications that can plug\n"
-"straight into any libretro-compatible frontend.  RetroArch is the official\n"
-"reference frontend for the libretro API, currently used by most as a modular\n"
-"multi-system game/emulator system."
+"KNetWalk is a small game where you have to build up a\n"
+"computer network by rotating the wires to connect the terminals to the server.\n"
+"When the network is build, a highscore-list comes up where competitions can be\n"
+"fought out.\n"
+"\n"
+"KNetwalk is a puzzle game where the player arranges sections of wire to\n"
+"connect all the computers on the board.\n"
+"\n"
+"This package is part of the KDE games module."
+msgstr ""
+
+#: gnu/packages/games.scm:10500
+msgid "Arcade bombing game"
+msgstr ""
+
+#: gnu/packages/games.scm:10501
+msgid ""
+"Bomber is a single player arcade game.\n"
+"\n"
+"The player is invading various cities in a plane that is decreasing in height.\n"
+"The goal of the game is to destroy all the buildings and advance to the next\n"
+"level.  Each level gets a bit harder by increasing the speed of the plane and\n"
+"the height of the buildings.\n"
+"\n"
+"Bomber is a game where you fly a spaceship and attempt to bomb the buildings\n"
+"below you.  Each pass the spaceship makes, it gets lower and lower.  If you've\n"
+"not destroyed a building in your path, you will crash into it.\n"
+"\n"
+"This package is part of the KDE games module."
+msgstr ""
+
+#: gnu/packages/games.scm:10546
+#, fuzzy
+#| msgid "Lemmings clone"
+msgid "Bomberman clone"
+msgstr "Klono de 'Lemmings'"
+
+#: gnu/packages/games.scm:10547
+msgid ""
+"Granatier is a clone of the classic Bomberman game,\n"
+"inspired by the work of the Clanbomber clone.\n"
+"\n"
+"This package is part of the KDE games module."
+msgstr ""
+
+#: gnu/packages/games.scm:10584
+msgid ""
+"Computerized version of the well known strategy board game\n"
+"'Risk'"
+msgstr ""
+
+#: gnu/packages/games.scm:10586
+msgid ""
+"KsirK is a multi-player network-enabled game.  The goal of\n"
+"the game is simply to conquer the world by attacking your neighbors with your\n"
+"armies.\n"
+"\n"
+"At the beginning of the game, countries are distributed to all the players.\n"
+"Each country contains one army represented by an infantryman.  Each player has\n"
+"some armies to distribute to his countries.  On each turn, each player can\n"
+"attack his neighbours, eventually conquering one or more countries.  At the\n"
+"end of each turn, some bonus armies are distributed to the players in function\n"
+"of the number of countries they own.  The winner is the player that conquered\n"
+"all the world.\n"
+"\n"
+"Features:\n"
+"@itemize\n"
+"@item Support for 1-6 human or computer players\n"
+"@item Multi-player gaming over a network\n"
+"@item You can easily create new skins with SVG graphics and the skin editor\n"
+"@item Hot New Stuff support.  You can easily download and install new skins\n"
+"@end itemize\n"
+"\n"
+"This package is part of the KDE games module."
+msgstr ""
+
+#: gnu/packages/games.scm:10646
+msgid "Jigsaw puzzle game"
+msgstr ""
+
+#: gnu/packages/games.scm:10647
+msgid ""
+"Palapeli is a jigsaw puzzle game.  Unlike other games in\n"
+"that genre, you are not limited to aligning pieces on imaginary grids.  The\n"
+"pieces are freely moveable.  Also, Palapeli features real persistency, i.e.\n"
+"everything you do is saved on your disk immediately.\n"
+"\n"
+"Palapeli is the Finnish word for jigsaw puzzle.\n"
+"\n"
+"This package is part of the KDE games module."
+msgstr ""
+
+#: gnu/packages/games.scm:10686
+msgid "Yahtzee dice game"
+msgstr ""
+
+#: gnu/packages/games.scm:10687
+msgid ""
+"Kiriki is an addictive and fun dice game, designed to be\n"
+"played by as many as six players.\n"
+"\n"
+"Participants have to collect points by rolling five dice for up to three times\n"
+"per single turn to make combinations with the highest score.\n"
+"\n"
+"This package is part of the KDE games module."
+msgstr ""
+
+#: gnu/packages/games.scm:10727
+msgid "Go board game"
+msgstr ""
+
+#: gnu/packages/games.scm:10728
+msgid ""
+"Kigo is an open-source implementation of the popular Go\n"
+"game.\n"
+"\n"
+"Go is a strategic board game for two players.  It is also known as\n"
+"igo (Japanese), weiqi or wei ch'i (Chinese) or baduk (Korean).  Go is noted\n"
+"for being rich in strategic complexity despite its simple rules.  The game is\n"
+"played by two players who alternately place black and white stones (playing\n"
+"pieces, now usually made of glass or plastic) on the vacant intersections of a\n"
+"grid of 19x19 lines (9x9 or 13x13 for easier games).\n"
+"\n"
+"You also need to install a go engine, e.g. @code{gnugo}.\n"
+"\n"
+"This package is part of the KDE games module."
+msgstr ""
+
+#: gnu/packages/games.scm:10773
+msgid "Game based on Rubik's Cube"
+msgstr ""
+
+#: gnu/packages/games.scm:10774
+msgid ""
+"Kubrick is a game based on the Rubik's Cube puzzle.\n"
+"\n"
+"The cube sizes range from 2x2x2 up to 6x6x6, or you can play with irregular\n"
+"\"bricks\" such as 5x3x2 or \"mats\" such as 6x4x1 or 2x2x1.  The game has a\n"
+"selection of puzzles at several levels of difficulty, as well as demos of\n"
+"pretty patterns and solution moves, or you can make up your own puzzles.  The\n"
+"game has unlimited undo, redo, save and reload capabilities.\n"
+"\n"
+"This package is part of the KDE games module."
+msgstr ""
+
+#: gnu/packages/games.scm:10814
+msgid "Lieutnant Skat card game"
+msgstr ""
+
+#: gnu/packages/games.scm:10815
+msgid ""
+"Lieutnant Skat (from German \"Offiziersskat\") is a fun and\n"
+"engaging card game for two players, where the second player is either live\n"
+"opponent, or a built in artificial intelligence.\n"
+"\n"
+"Lieutnant Skat is a simplified variant of the Skat card game for two players.\n"
+"\n"
+"This package is part of the KDE games module."
+msgstr ""
+
+#: gnu/packages/games.scm:10853
+msgid "Pac-Man clone"
+msgstr ""
+
+#: gnu/packages/games.scm:10854
+msgid ""
+"Kapman is a clone of the well known game Pac-Man.\n"
+"\n"
+"You must run through the maze to eat all pills without being captured by a\n"
+"ghost.  By eating an energizer, Kapman gets the ability to eat ghosts for a\n"
+"few seconds.  When a stage is cleared of pills and energizer the player is\n"
+"taken to the next stage with slightly increased game speed\n"
+"\n"
+"This package is part of the KDE games module."
+msgstr ""
+
+#: gnu/packages/games.scm:10893
+msgid "Two player game with shooting spaceships flying around a sun"
+msgstr ""
+
+#: gnu/packages/games.scm:10894
+msgid ""
+"KSpaceduel is a space battle game for one or two players,\n"
+"where two ships fly around a star in a struggle to be the only survivor.\n"
+"\n"
+"This package is part of the KDE games module."
+msgstr ""
+
+#: gnu/packages/games.scm:10927
+msgid "Classic pen and paper game: five in a line"
+msgstr ""
+
+#: gnu/packages/games.scm:10928
+msgid ""
+"Bovo is a Gomoku (from Japanese 五目並べ - lit.  \"five\n"
+"points\") like game for two players, where the opponents alternate in placing\n"
+"their respective pictogram on the game board.  The winner is the first to\n"
+"complete a line of five markers.  (Also known as: Connect Five, Five in a row,\n"
+"X and O, Naughts and Crosses)\n"
+"\n"
+"This package is part of the KDE games module."
+msgstr ""
+
+#: gnu/packages/games.scm:10966
+msgid "Port of the classic BSD console game robots"
+msgstr ""
+
+#: gnu/packages/games.scm:10967
+msgid ""
+"Killbots is a simple game of evading killer robots.\n"
+"\n"
+"Who created the robots and why they have been programmed to destroy, no one\n"
+"knows.  All that is known is that the robots are numerous and their sole\n"
+"objective is to destroy you.  Fortunately for you, their creator has focused\n"
+"on quantity rather than quality and as a result the robots are severely\n"
+"lacking in intelligence.  Your superior wit and a fancy teleportation device\n"
+"are your only weapons against the never-ending stream of mindless automatons.\n"
+"\n"
+"This package is part of the KDE games module."
+msgstr ""
+
+#: gnu/packages/games.scm:11009
+msgid "Snake race played against the computer"
 msgstr ""
 
-#: gnu/packages/gcc.scm:279
+#: gnu/packages/games.scm:11010
+msgid ""
+"KSnakeDuel is a fast action game where you steer a snake\n"
+"which has to eat food.  While eating the snake grows.  But once a player\n"
+"collides with the other snake or the wall the game is lost.  This becomes of\n"
+"course more and more difficult the longer the snakes grow.\n"
+"\n"
+"This package is part of the KDE games module."
+msgstr ""
+
+#: gnu/packages/games.scm:11046
+msgid "Simple ball dodging game"
+msgstr ""
+
+#: gnu/packages/games.scm:11047
+msgid ""
+"In Kollision you use mouse to control a small blue ball in a\n"
+"closed space environment filled with small red balls, which move about\n"
+"chaotically.  Your goal is to avoid touching any of those red balls with your\n"
+"blue one, because the moment you do the game will be over.  The longer you can\n"
+"stay in game the higher will your score be.\n"
+"\n"
+"This package is part of the KDE games module."
+msgstr ""
+
+#: gnu/packages/games.scm:11087
+msgid "Battleship board game with built-in game server"
+msgstr ""
+
+#: gnu/packages/games.scm:11088
+msgid ""
+"KBattleship is a Battle Ship game for KDE.\n"
+"\n"
+"Ships are placed on a board which represents the sea.  Players try to hit each\n"
+"others ships in turns without knowing where they are placed.  The first player\n"
+"to destroy all ships wins the game.\n"
+"\n"
+"This package is part of the KDE games module."
+msgstr ""
+
+#: gnu/packages/games.scm:11128
+msgid "Old reversi board game, also known as othello"
+msgstr ""
+
+#: gnu/packages/games.scm:11129
+msgid ""
+"KReversi is a simple one player strategy game played\n"
+"against the computer.\n"
+"\n"
+"If a player's piece is captured by an opposing player, that piece is turned\n"
+"over to reveal the color of that player.  A winner is declared when one player\n"
+"has more pieces of his own color on the board and there are no more possible\n"
+"moves.\n"
+"\n"
+"This package is part of the KDE games module."
+msgstr ""
+
+#: gnu/packages/games.scm:11169
+msgid "Dots and Boxes game"
+msgstr ""
+
+#: gnu/packages/games.scm:11170
+msgid ""
+"KSquares is an implementation of the popular paper based\n"
+"game Squares.  Two players take turns connecting dots on a grid to complete\n"
+"squares, the player with the most squares wins.\n"
+"\n"
+"This package is part of the KDE games module."
+msgstr ""
+
+#: gnu/packages/games.scm:11207
+msgid "Simple tactical game for number-crunchers"
+msgstr ""
+
+#: gnu/packages/games.scm:11208
+msgid ""
+"KJumpingcube is a simple tactical game for one or two\n"
+"players, played on a grid of numbered squares.  Each turn, players compete for\n"
+"control of the board by capturing or adding to one square.\n"
+"\n"
+"This package is part of the KDE games module."
+msgstr ""
+
+#: gnu/packages/games.scm:11296
+msgid "2D motocross platform game"
+msgstr ""
+
+#: gnu/packages/games.scm:11298
+msgid ""
+"X-Moto is a challenging 2D motocross platform game, where\n"
+"physics play an all important role in the gameplay.  You need to\n"
+"control your bike to its limit, if you want to have a chance finishing\n"
+"the more difficult challenges."
+msgstr ""
+
+#: gnu/packages/games.scm:11344
+#, fuzzy
+#| msgid "Graphical user interface for chess programs"
+msgid "Graphical user interface to play chess"
+msgstr "Grafikinterfacon por ŝak-programarojn"
+
+#: gnu/packages/games.scm:11346
+msgid ""
+"Eboard is a chess board interface for ICS (Internet Chess Servers)\n"
+"and chess engines."
+msgstr ""
+
+#: gnu/packages/games.scm:11401
+#, fuzzy
+#| msgid "Berkeley database"
+msgid "Chess game database"
+msgstr "Datumbazo de Berkeley"
+
+#: gnu/packages/games.scm:11403
+msgid ""
+"ChessX is a chess database.  With ChessX you can operate on your\n"
+"collection of chess games in many ways: browse, edit, add, organize, analyze,\n"
+"etc.  You can also play games on FICS or against an engine."
+msgstr ""
+
+#: gnu/packages/games.scm:11439
+msgid "Strong chess engine"
+msgstr ""
+
+#: gnu/packages/games.scm:11441
+msgid ""
+"Stockfish is a very strong chess engines.  It is much stronger than the\n"
+"best human chess grandmasters.  It can be used with UCI-compatible GUIs like\n"
+"ChessX."
+msgstr ""
+
+#: gnu/packages/games.scm:11470
+msgid "Violent point-and-click shooting game with nice effects"
+msgstr ""
+
+#: gnu/packages/games.scm:11472
+msgid ""
+"Barrage is a rather destructive action game that puts you on a shooting\n"
+"range with the objective to hit as many dummy targets as possible within\n"
+"3 minutes.  You control a gun that may either fire small or large grenades at\n"
+"soldiers, jeeps and tanks.  The gameplay is simple but it is not that easy to\n"
+"get high scores."
+msgstr ""
+
+#: gnu/packages/games.scm:11496
+msgid "Avoid evil foodstuffs and make burgers"
+msgstr ""
+
+#: gnu/packages/games.scm:11498
+msgid ""
+"This is a clone of the classic game BurgerTime.  In it, you play\n"
+"the part of a chef who must create burgers by stepping repeatedly on\n"
+"the ingredients until they fall into place.  And to make things more\n"
+"complicated, you also must avoid evil animate food items while\n"
+"performing this task, with nothing but your trusty pepper shaker to\n"
+"protect you."
+msgstr ""
+
+#: gnu/packages/games.scm:11528
+msgid "Seven Kingdoms Ancient Adversaries: real-time strategy game"
+msgstr ""
+
+#: gnu/packages/games.scm:11530
+msgid ""
+"Seven Kingdoms, designed by Trevor Chan, brings a blend of Real-Time\n"
+"Strategy with the addition of trade, diplomacy, and espionage.  The game\n"
+"enables players to compete against up to six other kingdoms allowing players\n"
+"to conquer opponents by defeating them in war (with troops or machines),\n"
+"capturing their buildings with spies, or offering opponents money for their\n"
+"kingdom."
+msgstr ""
+
+#: gnu/packages/games.scm:11644
+msgid "3D floor-tilting game"
+msgstr ""
+
+#: gnu/packages/games.scm:11646
+msgid ""
+"In the grand tradition of Marble Madness and Super Monkey Ball,\n"
+"Neverball has you guide a rolling ball through dangerous territory.  Balance\n"
+"on narrow bridges, navigate mazes, ride moving platforms, and dodge pushers\n"
+"and shovers to get to the goal.  Race against the clock to collect coins to\n"
+"earn extra balls.  Also included is Neverputt, which is a 3D miniature golf\n"
+"game."
+msgstr ""
+
+#: gnu/packages/games.scm:11721
+msgid "Texas holdem poker game"
+msgstr ""
+
+#: gnu/packages/games.scm:11723
+msgid ""
+"With PokerTH you can play the Texas holdem poker game, either against\n"
+"computer opponents or against real players online."
+msgstr ""
+
+#: gnu/packages/games.scm:11758
+msgid "Metroidvania game with vector graphics"
+msgstr ""
+
+#: gnu/packages/games.scm:11760
+msgid ""
+"Pilot your ship inside a planet to find and rescue the colonists trapped\n"
+"inside the Zenith Colony."
+msgstr ""
+
+#: gnu/packages/games.scm:11790
+msgid "High performance X11 animated wallpaper setter"
+msgstr ""
+
+#: gnu/packages/games.scm:11791
+msgid ""
+"High performance animated desktop background setter for\n"
+"X11 that won't set your CPU on fire, drain your laptop battery, or lower video\n"
+"game FPS."
+msgstr ""
+
+#: gnu/packages/gcc.scm:354
 msgid "GNU Compiler Collection"
 msgstr "GNU-a kompila kolekto"
 
-#: gnu/packages/gcc.scm:281
+#: gnu/packages/gcc.scm:356
 msgid ""
 "GCC is the GNU Compiler Collection.  It provides compiler front-ends\n"
 "for several languages, including C, C++, Objective-C, Fortran, Java, Ada, and\n"
 "Go.  It also includes runtime support libraries for these languages."
 msgstr ""
 
-#: gnu/packages/gcc.scm:364
+#: gnu/packages/gcc.scm:541
+msgid ""
+"GCC is the GNU Compiler Collection.  It provides compiler front-ends\n"
+"for several languages, including C, C++, Objective-C, Fortran, Ada, and Go.\n"
+"It also includes runtime support libraries for these languages."
+msgstr ""
+
+#: gnu/packages/gcc.scm:615
+#, fuzzy
+#| msgid "GNU C++ standard library (intermediate)"
+msgid "GNU C++ standard library"
+msgstr "GNU C++ norma biblioteko (intermeza)"
+
+#: gnu/packages/gcc.scm:640
+msgid "Headers of GNU libstdc++"
+msgstr ""
+
+#: gnu/packages/gcc.scm:671
+msgid "Collection of subroutines used by various GNU programs"
+msgstr ""
+
+#: gnu/packages/gcc.scm:764
+msgid "GCC library generating machine code on-the-fly at runtime"
+msgstr ""
+
+#: gnu/packages/gcc.scm:766
+msgid ""
+"This package is part of the GNU Compiler Collection and provides an\n"
+"embeddable library for generating machine code on-the-fly at runtime.  This\n"
+"shared library can then be dynamically-linked into bytecode interpreters and\n"
+"other such programs that want to generate machine code on-the-fly at run-time.\n"
+"It can also be used for ahead-of-time code generation for building standalone\n"
+"compilers.  The just-in-time (jit) part of the name is now something of a\n"
+"misnomer."
+msgstr ""
+
+#: gnu/packages/gcc.scm:778
+msgid "Go frontend to GCC"
+msgstr ""
+
+#: gnu/packages/gcc.scm:780
+msgid ""
+"This package is part of the GNU Compiler Collection and\n"
+"provides the GNU compiler for the Go programming language."
+msgstr ""
+
+#: gnu/packages/gcc.scm:879
+msgid "GNU libstdc++ documentation"
+msgstr ""
+
+#: gnu/packages/gcc.scm:969
 msgid "Manipulating sets and relations of integer points bounded by linear constraints"
 msgstr "Manipulo de aroj kaj rilatoj de entjeraj punktoj ligataj per linearaj limigoj"
 
-#: gnu/packages/gcc.scm:367
+#: gnu/packages/gcc.scm:972
 msgid ""
 "isl is a library for manipulating sets and relations of integer points\n"
 "bounded by linear constraints.  Supported operations on sets include\n"
@@ -706,11 +7098,11 @@ msgid ""
 "dependence analysis and bounds on piecewise step-polynomials."
 msgstr ""
 
-#: gnu/packages/gcc.scm:399
+#: gnu/packages/gcc.scm:1036
 msgid "Library to generate code for scanning Z-polyhedra"
 msgstr "Biblioteko por krei kodumaron por skani Z-pluredrojn"
 
-#: gnu/packages/gcc.scm:401
+#: gnu/packages/gcc.scm:1038
 msgid ""
 "CLooG is a free software library to generate code for scanning\n"
 "Z-polyhedra.  That is, it finds a code (e.g., in C, FORTRAN...) that\n"
@@ -725,80 +7117,2865 @@ msgid ""
 "effective code."
 msgstr ""
 
-#: gnu/packages/gettext.scm:74
-msgid "Tools and documentation for translation"
+#: gnu/packages/gcc.scm:1093
+msgid "Reference manual for the C programming language"
+msgstr ""
+
+#: gnu/packages/gcc.scm:1095
+msgid ""
+"This is a reference manual for the C programming language, as\n"
+"implemented by the GNU C Compiler (gcc).  As a reference, it is not intended\n"
+"to be a tutorial of the language.  Rather, it outlines all of the constructs\n"
+"of the language.  Library functions are not included."
+msgstr ""
+
+#: gnu/packages/gettext.scm:118
+#, fuzzy
+#| msgid "Tools and documentation for translation"
+msgid "Tools and documentation for translation (used to build other packages)"
 msgstr "Iloj kaj dokumentado por tradukado"
 
-#: gnu/packages/gettext.scm:76
+#: gnu/packages/gettext.scm:120
 msgid ""
 "GNU Gettext is a package providing a framework for translating the\n"
 "textual output of programs into multiple languages.  It provides translators\n"
-"with the means to create message catalogs, as well as an Emacs mode to work\n"
-"with them, and a runtime library to load translated messages from the\n"
-"catalogs.  Nearly all GNU packages use Gettext."
+"with the means to create message catalogs, and a runtime library to load\n"
+"translated messages from the catalogs.  Nearly all GNU packages use Gettext."
 msgstr ""
 
-#: gnu/packages/gnuzilla.scm:81
-msgid "Mozilla javascript engine"
-msgstr "Ĵavaskripta maŝino de Mozilla"
+#: gnu/packages/gettext.scm:152
+msgid "Tools and documentation for translation"
+msgstr "Iloj kaj dokumentado por tradukado"
+
+#: gnu/packages/gettext.scm:177
+#, fuzzy
+#| msgid "GNOME text and font handling library"
+msgid "Text styling library"
+msgstr "Biblioteko de GNOME por traktado de teksto kaj tiparo"
 
-#: gnu/packages/gnuzilla.scm:82
+#: gnu/packages/gettext.scm:179
 msgid ""
-"SpiderMonkey is Mozilla's JavaScript engine written\n"
-"in C/C++."
+"GNU libtextstyle is a C library that provides an easy way to add styling\n"
+"to programs that produce output to a console or terminal emulator window.  It\n"
+"allows applications to emit text annotated with styling information, such as\n"
+"color, font attributes (weight, posture), or underlining."
 msgstr ""
 
-#: gnu/packages/gnuzilla.scm:113
-msgid "Netscape API for system level and libc-like functions"
-msgstr "Netscape API por sistem-nivelaj kaj libc-similaj funkcioj"
+#: gnu/packages/gettext.scm:248
+msgid "Scripts to ease maintenance of translations"
+msgstr ""
 
-#: gnu/packages/gnuzilla.scm:114
+#: gnu/packages/gettext.scm:250
 msgid ""
-"Netscape Portable Runtime (NSPR) provides a\n"
-"platform-neutral API for system level and libc-like functions.  It is used\n"
-"in the Mozilla clients."
+"The po4a (PO for anything) project goal is to ease translations (and\n"
+"more interestingly, the maintenance of translations) using gettext tools on\n"
+"areas where they were not expected like documentation."
 msgstr ""
 
-#: gnu/packages/gnuzilla.scm:204
-msgid "Network Security Services"
-msgstr "Network Security Services"
+#: gnu/packages/gimp.scm:126
+msgid "2D constrained Delaunay triangulation library"
+msgstr ""
+
+#: gnu/packages/gimp.scm:127
+msgid ""
+"Poly2Tri-C is a library for generating, refining and rendering\n"
+"2-Dimensional Constrained Delaunay Triangulations."
+msgstr ""
+
+#: gnu/packages/gimp.scm:158
+msgid "Microraptor GUI"
+msgstr ""
+
+#: gnu/packages/gimp.scm:159
+msgid ""
+"MrG is is a C API for creating user interfaces.  It can be\n"
+"used as an application writing environment or as an interactive canvas for part\n"
+"of a larger interface."
+msgstr ""
+
+#: gnu/packages/gimp.scm:193
+msgid "Image pixel format conversion library"
+msgstr ""
+
+#: gnu/packages/gimp.scm:195
+msgid ""
+"Babl is a dynamic, any-to-any pixel format translation library.\n"
+"It allows converting between different methods of storing pixels, known as\n"
+"@dfn{pixel formats}, that have different bit depths and other data\n"
+"representations, color models, and component permutations.\n"
+"\n"
+"A vocabulary to formulate new pixel formats from existing primitives is\n"
+"provided, as well as a framework to add new color models and data types."
+msgstr ""
+
+#: gnu/packages/gimp.scm:241
+msgid "Graph based image processing framework"
+msgstr ""
+
+#: gnu/packages/gimp.scm:242
+msgid ""
+"GEGL (Generic Graphics Library) provides infrastructure to\n"
+"do demand based cached non destructive image editing on larger than RAM\n"
+"buffers."
+msgstr ""
+
+#: gnu/packages/gimp.scm:322
+msgid "GNU Image Manipulation Program"
+msgstr ""
+
+#: gnu/packages/gimp.scm:324
+msgid ""
+"GIMP is an application for image manipulation tasks such as photo\n"
+"retouching, composition and authoring.  It supports all common image formats\n"
+"as well as specialized ones.  It features a highly customizable interface\n"
+"that is extensible via a plugin system."
+msgstr ""
+
+#: gnu/packages/gimp.scm:384
+msgid "GIMP plug-in to edit image in fourier space"
+msgstr ""
+
+#: gnu/packages/gimp.scm:386
+msgid ""
+"This package provides a simple plug-in to apply the fourier transform on\n"
+"an image, allowing you to work with the transformed image inside GIMP.  You\n"
+"can draw or apply filters in fourier space and get the modified image with an\n"
+"inverse fourier transform."
+msgstr ""
+
+#: gnu/packages/gimp.scm:414
+msgid "Artistic brushes library"
+msgstr ""
+
+#: gnu/packages/gimp.scm:415
+msgid ""
+"Libmypaint, also called \"brushlib\", is a library for making\n"
+"brushstrokes which is used by MyPaint and GIMP."
+msgstr ""
+
+#: gnu/packages/gimp.scm:437
+msgid "Default brushes for MyPaint"
+msgstr ""
+
+#: gnu/packages/gimp.scm:438
+#, fuzzy
+#| msgid "This package provides an database interface for Perl."
+msgid ""
+"This package provides the default set of brushes for\n"
+"MyPaint."
+msgstr "Tiu ĉi pako provizas datumbazan interfacon por Perl."
+
+#: gnu/packages/gimp.scm:517
+msgid "GIMP plugins for texture synthesis"
+msgstr ""
+
+#: gnu/packages/gimp.scm:519
+msgid ""
+"This package provides resynthesizer plugins for GIMP, which encompasses\n"
+"tools for healing selections (content-aware fill), enlarging the canvas and\n"
+"healing the border, increasing the resolution while adding detail, and\n"
+"transferring the style of an image."
+msgstr ""
+
+#: gnu/packages/gnome.scm:267
+msgid "CD/DVD burning tool for Gnome"
+msgstr ""
+
+#: gnu/packages/gnome.scm:268
+msgid ""
+"Brasero is an application to burn CD/DVD for the Gnome\n"
+"Desktop.  It is designed to be as simple as possible and has some unique\n"
+"features to enable users to create their discs easily and quickly."
+msgstr ""
+
+#: gnu/packages/gnome.scm:313
+msgid "Cloudproviders Integration API"
+msgstr ""
+
+#: gnu/packages/gnome.scm:314
+msgid ""
+"Libcloudproviders is a DBus API that allows cloud storage sync\n"
+"clients to expose their services.  Clients such as file managers and desktop\n"
+"environments can then provide integrated access to the cloud providers\n"
+"services."
+msgstr ""
+
+#: gnu/packages/gnome.scm:362
+msgid "Glib library for feeds"
+msgstr ""
+
+#: gnu/packages/gnome.scm:363
+msgid ""
+"LibGRSS is a Glib abstraction to handle feeds in RSS, Atom,\n"
+"and other formats."
+msgstr ""
+
+#: gnu/packages/gnome.scm:390
+msgid "Common JS Modules"
+msgstr ""
+
+#: gnu/packages/gnome.scm:391
+msgid ""
+"GNOME-JS-Common provides common modules for GNOME JavaScript\n"
+"bindings."
+msgstr ""
+
+#: gnu/packages/gnome.scm:473
+msgid "GObject JavaScriptCore bridge"
+msgstr ""
+
+#: gnu/packages/gnome.scm:474
+msgid ""
+"Seed is a library and interpreter, dynamically bridging\n"
+"(through GObjectIntrospection) the WebKit JavaScriptCore engine, with the\n"
+"GNOME platform.  It serves as something which enables you to write standalone\n"
+"applications in JavaScript, or easily enable your application to be extensible\n"
+"in JavaScript."
+msgstr ""
+
+#: gnu/packages/gnome.scm:532
+#, fuzzy
+#| msgid "Music Player Daemon client library"
+msgid "Media management library"
+msgstr "Klienta biblioteko por \"Music Player Daemon\""
+
+#: gnu/packages/gnome.scm:533
+msgid ""
+"Libdmapsharing is a library which allows programs to access,\n"
+"share and control the playback of media content using DMAP (DAAP, DPAP & DACP).\n"
+"It is written in C using GObject and libsoup."
+msgstr ""
+
+#: gnu/packages/gnome.scm:567
+msgid "GLib Testing Framework"
+msgstr ""
+
+#: gnu/packages/gnome.scm:568
+msgid ""
+"GTX is a small collection of convenience functions intended to\n"
+"enhance the GLib testing framework.  With specific emphasis on easing the pain\n"
+"of writing test cases for asynchronous interactions."
+msgstr ""
+
+#: gnu/packages/gnome.scm:644
+msgid "Model to synchronize multiple instances over DBus"
+msgstr ""
+
+#: gnu/packages/gnome.scm:645
+msgid ""
+"Dee is a library that uses DBus to provide objects allowing\n"
+"you to create Model-View-Controller type programs across DBus.  It also consists\n"
+"of utility objects which extend DBus allowing for peer-to-peer discoverability\n"
+"of known objects without needing a central registrar."
+msgstr ""
+
+#: gnu/packages/gnome.scm:725
+msgid "Desktop Activity Logging"
+msgstr ""
+
+#: gnu/packages/gnome.scm:726
+msgid ""
+"Zeitgeist is a service which logs the users’s activities and\n"
+"events, anywhere from files opened to websites visited and conversations.  It\n"
+"makes this information readily available for other applications to use.  It is\n"
+"able to establish relationships between items based on similarity and usage\n"
+"patterns."
+msgstr ""
+
+#: gnu/packages/gnome.scm:801
+msgid "Access, organize and share your photos on GNOME desktop"
+msgstr ""
+
+#: gnu/packages/gnome.scm:802
+msgid ""
+"GNOME Photos is a simple and elegant replacement for using a\n"
+"file manager to deal with photos.  Enhance, crop and edit in a snap.  Seamless\n"
+"cloud integration is offered through GNOME Online Accounts."
+msgstr ""
+
+#: gnu/packages/gnome.scm:863
+msgid "Simple music player for GNOME desktop"
+msgstr ""
+
+#: gnu/packages/gnome.scm:864
+msgid ""
+"GNOME Music is the new GNOME music playing application that\n"
+"aims to combine an elegant and immersive browsing experience with simple\n"
+"and straightforward controls."
+msgstr ""
+
+#: gnu/packages/gnome.scm:884
+#, fuzzy
+#| msgid "Data source abstraction library"
+msgid "External Data Representation Library"
+msgstr "Datumar-fonta abstrakta biblioteko"
+
+#: gnu/packages/gnome.scm:885
+msgid ""
+"PortableXDR is an implementation of External Data\n"
+"Representation (XDR) Library.  It is a standard data serialization format, for\n"
+"uses such as computer network protocols.  It allows data to be transferred\n"
+"between different kinds of computer systems."
+msgstr ""
+
+#: gnu/packages/gnome.scm:922
+msgid "Text editor product line"
+msgstr ""
+
+#: gnu/packages/gnome.scm:923
+msgid ""
+"Tepl is a library that eases the development of\n"
+"GtkSourceView-based text editors and IDEs."
+msgstr ""
+
+#: gnu/packages/gnome.scm:955
+msgid "Popup dialogs for Kerberos 5"
+msgstr ""
+
+#: gnu/packages/gnome.scm:956
+msgid ""
+"krb5-auth-dialog is a simple dialog that monitors Kerberos\n"
+"tickets, and pops up a dialog when they are about to expire."
+msgstr ""
+
+#: gnu/packages/gnome.scm:983
+msgid "Notification Daemon for GNOME Desktop"
+msgstr ""
+
+#: gnu/packages/gnome.scm:984
+msgid ""
+"Notification-Daemon is the server implementation of the\n"
+"freedesktop.org desktop notification specification."
+msgstr ""
+
+#: gnu/packages/gnome.scm:1024
+msgid "Module of GNOME C++ bindings"
+msgstr ""
+
+#: gnu/packages/gnome.scm:1025
+msgid ""
+"The mm-common module provides the build infrastructure\n"
+"and utilities shared among the GNOME C++ binding libraries.  Release\n"
+"archives of mm-common include the Doxygen tag file for the GNU C++\n"
+"Library reference documentation."
+msgstr ""
+
+#: gnu/packages/gnome.scm:1065
+msgid "WebDav server implementation using libsoup"
+msgstr ""
+
+#: gnu/packages/gnome.scm:1066
+msgid ""
+"PhoDav was initially developed as a file-sharing mechanism for Spice,\n"
+"but it is generic enough to be reused in other projects,\n"
+"in particular in the GNOME desktop."
+msgstr ""
+
+#: gnu/packages/gnome.scm:1118
+msgid "Color profile manager for the GNOME desktop"
+msgstr ""
+
+#: gnu/packages/gnome.scm:1119
+msgid ""
+"GNOME Color Manager is a session framework that makes\n"
+"it easy to manage, install and generate color profiles\n"
+"in the GNOME desktop."
+msgstr ""
+
+#: gnu/packages/gnome.scm:1153
+msgid "Web Crawlers for GNOME"
+msgstr ""
+
+#: gnu/packages/gnome.scm:1154
+msgid ""
+"GNOME Online Miners provides a set of crawlers that\n"
+"go through your online content and index them locally in Tracker.\n"
+"It has miners for Facebook, Flickr, Google, ownCloud and SkyDrive."
+msgstr ""
+
+#: gnu/packages/gnome.scm:1183
+msgid ""
+"GObject-based API over @acronym{SSDP, Simple Service Discovery\n"
+"Protocol} for GNOME"
+msgstr ""
+
+#: gnu/packages/gnome.scm:1185
+msgid ""
+"This package provides a library to handle resource discovery\n"
+"and announcement over @acronym{SSDP, Simple Service Discovery Protocol} and\n"
+"a debugging tool, @command{gssdp-device-sniffer}."
+msgstr ""
+
+#: gnu/packages/gnome.scm:1215
+msgid "PnP API for GNOME"
+msgstr ""
+
+#: gnu/packages/gnome.scm:1216
+msgid ""
+"This package provides GUPnP, an object-oriented framework\n"
+"for creating UPnP devices and control points, written in C using\n"
+"@code{GObject} and @code{libsoup}."
+msgstr ""
+
+#: gnu/packages/gnome.scm:1249
+msgid "GUPnP DLNA for GNOME"
+msgstr ""
+
+#: gnu/packages/gnome.scm:1250
+msgid ""
+"This package provides a small utility library to\n"
+"support DLNA-related tasks such as media profile guessing, transcoding to a\n"
+"given profile, etc.  DLNA is a subset of UPnP A/V."
+msgstr ""
+
+#: gnu/packages/gnome.scm:1279
+msgid "GUPnP A/V for GNOME"
+msgstr ""
+
+#: gnu/packages/gnome.scm:1280
+msgid ""
+"This package provides a small library for handling\n"
+"and implementation of UPnP A/V profiles."
+msgstr ""
+
+#: gnu/packages/gnome.scm:1307
+msgid "Media art library for the GNOME desktop"
+msgstr ""
+
+#: gnu/packages/gnome.scm:1309
+msgid ""
+"The libmediaart library is the foundation for media art caching,\n"
+"extraction, and lookup for applications on the desktop."
+msgstr ""
+
+#: gnu/packages/gnome.scm:1372
+msgid "Initial setup wizard for GNOME desktop"
+msgstr ""
+
+#: gnu/packages/gnome.scm:1373
+msgid ""
+"This package provides a set-up wizard when a\n"
+"user logs into GNOME for the first time.  It typically provides a\n"
+"tour of all gnome components and allows the user to set them up."
+msgstr ""
+
+#: gnu/packages/gnome.scm:1412
+msgid "File sharing for GNOME desktop"
+msgstr ""
+
+#: gnu/packages/gnome.scm:1413
+msgid ""
+"GNOME User Share is a small package that binds together\n"
+"various free software projects to bring easy to use user-level file\n"
+"sharing to the masses."
+msgstr ""
+
+#: gnu/packages/gnome.scm:1467
+msgid "File previewer for the GNOME desktop"
+msgstr ""
+
+#: gnu/packages/gnome.scm:1468
+msgid ""
+"Sushi is a DBus-activated service that allows applications to\n"
+"preview files on the GNOME desktop."
+msgstr ""
+
+#: gnu/packages/gnome.scm:1507
+msgid "Share audio, video, and pictures with other devices"
+msgstr ""
+
+#: gnu/packages/gnome.scm:1509
+msgid ""
+"Rygel is a home media solution (@dfn{UPnP AV MediaServer and\n"
+"MediaRenderer}) for GNOME that allows you to easily share audio, video, and\n"
+"pictures, and to control a media player on your home network.\n"
+"\n"
+"Rygel achieves interoperability with other devices by trying to conform to the\n"
+"strict requirements of DLNA and by converting media on-the-fly to formats that\n"
+"client devices can handle."
+msgstr ""
+
+#: gnu/packages/gnome.scm:1561
+msgid "Network Manager's applet library"
+msgstr ""
+
+#: gnu/packages/gnome.scm:1562
+msgid ""
+"Libnma is an applet library for Network Manager.  It was\n"
+"initially part of network-manager-applet and has now become a separate\n"
+"project."
+msgstr ""
+
+#: gnu/packages/gnome.scm:1587
+msgid "Menu support for GNOME desktop"
+msgstr ""
+
+#: gnu/packages/gnome.scm:1588
+msgid ""
+"GNOME Menus contains the libgnome-menu library, the layout\n"
+"configuration files for the GNOME menu, as well as a simple menu editor."
+msgstr ""
+
+#: gnu/packages/gnome.scm:1662
+msgid "Simple backup tool, for regular encrypted backups"
+msgstr ""
+
+#: gnu/packages/gnome.scm:1664
+msgid ""
+"Déjà Dup is a simple backup tool, for regular encrypted backups.  It\n"
+"uses duplicity as the backend, which supports incremental backups and storage\n"
+"either on a local, or remote machine via a number of methods."
+msgstr ""
+
+#: gnu/packages/gnome.scm:1699
+msgid "Two-pane graphical file manager for the GNOME desktop"
+msgstr ""
+
+#: gnu/packages/gnome.scm:1701
+msgid ""
+"GNOME Commander is a two-pane graphical file manager using GNOME\n"
+"libraries.  It aims to fulfill the demands of more advanced users who\n"
+"like to focus on file management, their work through special applications\n"
+"and running smart commands."
+msgstr ""
+
+#: gnu/packages/gnome.scm:1725
+#, fuzzy
+#| msgid "Tools and documentation for translation"
+msgid "User documentation for the GNOME desktop"
+msgstr "Iloj kaj dokumentado por tradukado"
+
+#: gnu/packages/gnome.scm:1727
+msgid ""
+"The GNOME User Documentation explains how to use the GNOME desktop and its\n"
+"components.  It covers usage and setup of the core GNOME programs by end-users\n"
+"and system administrators."
+msgstr ""
+
+#: gnu/packages/gnome.scm:1751
+msgid "Help to get new users started with the GNOME desktop"
+msgstr ""
+
+#: gnu/packages/gnome.scm:1753
+msgid ""
+"The GNOME Getting Started Documentation contains GNOME's intuitive\n"
+"\"Getting Started\" tour, with video guides, that can be viewed with Yelp.\n"
+"\n"
+"It is normally used together with @command{gnome-initial-setup}, but is also\n"
+"useful as a tutorial and users' guide for new or less experienced users."
+msgstr ""
+
+#: gnu/packages/gnome.scm:1797
+msgid "Diagram creation for GNOME"
+msgstr ""
+
+#: gnu/packages/gnome.scm:1798
+msgid ""
+"Dia can be used to draw different types of diagrams, and\n"
+"includes support for UML static structure diagrams (class diagrams), entity\n"
+"relationship modeling, and network diagrams.  The program supports various file\n"
+"formats like PNG, SVG, PDF and EPS."
+msgstr ""
+
+#: gnu/packages/gnome.scm:1847
+#, fuzzy
+#| msgid "Library for accessing zip files"
+msgid "Library for accessing online service APIs"
+msgstr "Biblioteko por aliri zip-dosierojn"
+
+#: gnu/packages/gnome.scm:1849
+msgid ""
+"libgdata is a GLib-based library for accessing online service APIs using\n"
+"the GData protocol — most notably, Google's services.  It provides APIs to\n"
+"access the common Google services, and has full asynchronous support."
+msgstr ""
+
+#: gnu/packages/gnome.scm:1881
+msgid "GObject-based library for handling and rendering XPS documents"
+msgstr ""
 
-#: gnu/packages/gnuzilla.scm:206
+#: gnu/packages/gnome.scm:1883
 msgid ""
-"Network Security Services (NSS) is a set of libraries designed to support\n"
-"cross-platform development of security-enabled client and server applications.\n"
-"Applications built with NSS can support SSL v2 and v3, TLS, PKCS #5, PKCS #7,\n"
-"PKCS #11, PKCS #12, S/MIME, X.509 v3 certificates, and other security\n"
-"standards."
+"libgxps is a GObject-based library for handling and rendering XPS\n"
+"documents.  This package also contains binaries that can convert XPS documents\n"
+"to other formats."
 msgstr ""
 
-#: gnu/packages/gnuzilla.scm:332
+#: gnu/packages/gnome.scm:1926
+msgid "Find and insert unusual characters"
+msgstr ""
+
+#: gnu/packages/gnome.scm:1927
+msgid ""
+"Characters is a simple utility application to find\n"
+"and insert unusual characters.  It allows you to quickly find the\n"
+"character you are looking for by searching for keywords."
+msgstr ""
+
+#: gnu/packages/gnome.scm:1947
+msgid "Bootstrap GNOME modules built from Git"
+msgstr ""
+
+#: gnu/packages/gnome.scm:1948
+msgid ""
+"gnome-common contains various files needed to bootstrap\n"
+"GNOME modules built from Git.  It contains a common \"autogen.sh\" script that\n"
+"can be used to configure a source directory checked out from Git and some\n"
+"commonly used macros."
+msgstr ""
+
+#: gnu/packages/gnome.scm:2007
+msgid "GNOME's integrated address book"
+msgstr ""
+
+#: gnu/packages/gnome.scm:2009
+msgid ""
+"GNOME Contacts organizes your contact information from online and\n"
+"offline sources, providing a centralized place for managing your contacts."
+msgstr ""
+
+#: gnu/packages/gnome.scm:2086
+msgid "Libgnome-desktop, gnome-about, and desktop-wide documents"
+msgstr ""
+
+#: gnu/packages/gnome.scm:2088
+msgid ""
+"The libgnome-desktop library provides API shared by several applications\n"
+"on the desktop, but that cannot live in the platform for various reasons.\n"
+"There is no API or ABI guarantee, although we are doing our best to provide\n"
+"stability.  Documentation for the API is available with gtk-doc.\n"
+"\n"
+"The gnome-about program helps find which version of GNOME is installed."
+msgstr ""
+
+#: gnu/packages/gnome.scm:2121
+#, fuzzy
+#| msgid "Collection of utilities for the Linux kernel"
+msgid "Documentation utilities for the Gnome project"
+msgstr "Aro da utilaĵoj por la Linuks-kerno"
+
+#: gnu/packages/gnome.scm:2123
+msgid ""
+"Gnome-doc-utils is a collection of documentation utilities for the\n"
+"Gnome project.  It includes xml2po tool which makes it easier to translate\n"
+"and keep up to date translations of documentation."
+msgstr ""
+
+#: gnu/packages/gnome.scm:2172
+msgid "Disk management utility for GNOME"
+msgstr ""
+
+#: gnu/packages/gnome.scm:2173
+msgid "Disk management utility for GNOME."
+msgstr ""
+
+#: gnu/packages/gnome.scm:2206
+msgid "GNOME Fonts"
+msgstr ""
+
+#: gnu/packages/gnome.scm:2207
+msgid ""
+"Application to show you the fonts installed on your computer\n"
+"for your use as thumbnails.  Selecting any thumbnails shows the full view of how\n"
+"the font would look under various sizes."
+msgstr ""
+
+#: gnu/packages/gnome.scm:2260
+msgid "Libraries for displaying certificates and accessing key stores"
+msgstr ""
+
+#: gnu/packages/gnome.scm:2262
+msgid ""
+"The GCR package contains libraries used for displaying certificates and\n"
+"accessing key stores.  It also provides the viewer for crypto files on the\n"
+"GNOME Desktop."
+msgstr ""
+
+#: gnu/packages/gnome.scm:2300
+#, fuzzy
+#| msgid "GNOME text and font handling library"
+msgid "GNOME docking library"
+msgstr "Biblioteko de GNOME por traktado de teksto kaj tiparo"
+
+#: gnu/packages/gnome.scm:2301
+msgid "This library provides docking features for gtk+."
+msgstr ""
+
+#: gnu/packages/gnome.scm:2348
+msgid "Accessing passwords from the GNOME keyring"
+msgstr ""
+
+#: gnu/packages/gnome.scm:2350
+msgid "Client library to access passwords from the GNOME keyring."
+msgstr ""
+
+#: gnu/packages/gnome.scm:2420
+msgid "Daemon to store passwords and encryption keys"
+msgstr ""
+
+#: gnu/packages/gnome.scm:2422
+msgid ""
+"gnome-keyring is a program that keeps passwords and other secrets for\n"
+"users.  It is run as a daemon in the session, similar to ssh-agent, and other\n"
+"applications locate it via an environment variable or D-Bus.\n"
+"\n"
+"The program can manage several keyrings, each with its own master password,\n"
+"and there is also a session keyring which is never stored to disk, but\n"
+"forgotten when the session ends."
+msgstr ""
+
+#: gnu/packages/gnome.scm:2493
+msgid "GNOME's document viewer"
+msgstr ""
+
+#: gnu/packages/gnome.scm:2495
+msgid ""
+"Evince is a document viewer for multiple document formats.  It\n"
+"currently supports PDF, PostScript, DjVu, TIFF and DVI.  The goal\n"
+"of Evince is to replace the multiple document viewers that exist\n"
+"on the GNOME Desktop with a single simple application."
+msgstr ""
+
+#: gnu/packages/gnome.scm:2539
+msgid "GNOME settings for various desktop components"
+msgstr ""
+
+#: gnu/packages/gnome.scm:2541
+msgid ""
+"Gsettings-desktop-schemas contains a collection of GSettings schemas\n"
+"for settings shared by various components of the GNOME desktop."
+msgstr ""
+
+#: gnu/packages/gnome.scm:2575
+msgid "Library to easily handle complex data structures"
+msgstr ""
+
+#: gnu/packages/gnome.scm:2577
+msgid ""
+"Liblarch is a Python library built to easily handle data structures such\n"
+"as lists, trees and acyclic graphs.  There's also a GTK binding that will\n"
+"allow you to use your data structure in a @code{Gtk.Treeview}.\n"
+"\n"
+"Liblarch support multiple views of one data structure and complex filtering.\n"
+"That way, you have a clear separation between your data themselves (Model)\n"
+"and how they are displayed (View)."
+msgstr ""
+
+#: gnu/packages/gnome.scm:2633
+msgid "Personal organizer for the GNOME desktop"
+msgstr ""
+
+#: gnu/packages/gnome.scm:2635
+msgid ""
+"Getting Things GNOME! (GTG) is a personal tasks and TODO list items\n"
+"organizer for the GNOME desktop environment inspired by the Getting Things\n"
+"Done (GTD) methodology.  GTG is designed with flexibility, adaptability,\n"
+"and ease of use in mind so it can be used as more than just GTD software.\n"
+"GTG is intended to help you track everything you need to do and need to\n"
+"know, from small tasks to large projects."
+msgstr ""
+
+#: gnu/packages/gnome.scm:2673
+msgid "Utility to implement the Freedesktop Icon Naming Specification"
+msgstr ""
+
+#: gnu/packages/gnome.scm:2675
+msgid ""
+"To help with the transition to the Freedesktop Icon Naming\n"
+"Specification, the icon naming utility maps the icon names used by the\n"
+"GNOME and KDE desktops to the icon names proposed in the specification."
+msgstr ""
+
+#: gnu/packages/gnome.scm:2705
+msgid "GNOME icon theme"
+msgstr ""
+
+#: gnu/packages/gnome.scm:2706
+msgid "Icons for the GNOME desktop."
+msgstr ""
+
+#: gnu/packages/gnome.scm:2743
+msgid "Tango icon theme"
+msgstr ""
+
+#: gnu/packages/gnome.scm:2744
+msgid ""
+"This is an icon theme that follows the Tango visual\n"
+"guidelines."
+msgstr ""
+
+#: gnu/packages/gnome.scm:2773
+msgid "Database of common MIME types"
+msgstr ""
+
+#: gnu/packages/gnome.scm:2775
+msgid ""
+"The shared-mime-info package contains the core database of common types\n"
+"and the update-mime-database command used to extend it.  It requires glib2 to\n"
+"be installed for building the update command.  Additionally, it uses intltool\n"
+"for translations, though this is only a dependency for the maintainers.  This\n"
+"database is translated at Transifex."
+msgstr ""
+
+#: gnu/packages/gnome.scm:2858
+msgid "CUPS administration tool"
+msgstr ""
+
+#: gnu/packages/gnome.scm:2860
+msgid ""
+"system-config-printer is a CUPS administration tool.  It's written in\n"
+"Python using GTK+, and uses the @acronym{IPP, Internet Printing Protocol} when\n"
+"configuring CUPS."
+msgstr ""
+
+#: gnu/packages/gnome.scm:2882
+msgid "Freedesktop icon theme"
+msgstr ""
+
+#: gnu/packages/gnome.scm:2884
+msgid "Freedesktop icon theme."
+msgstr ""
+
+#: gnu/packages/gnome.scm:2916
+#, fuzzy
+#| msgid "GNOME text and font handling library"
+msgid "GNOME desktop notification library"
+msgstr "Biblioteko de GNOME por traktado de teksto kaj tiparo"
+
+#: gnu/packages/gnome.scm:2918
+msgid ""
+"Libnotify is a library that sends desktop notifications to a\n"
+"notification daemon, as defined in the Desktop Notifications spec.  These\n"
+"notifications can be used to inform the user about an event or display\n"
+"some form of information without getting in the user's way."
+msgstr ""
+
+#: gnu/packages/gnome.scm:2964
+msgid "GObject plugin system"
+msgstr ""
+
+#: gnu/packages/gnome.scm:2966
+msgid ""
+"Libpeas is a gobject-based plugin engine, targeted at giving every\n"
+"application the chance to assume its own extensibility.  It also has a set of\n"
+"features including, but not limited to: multiple extension points; on-demand\n"
+"(lazy) programming language support for C, Python and JS; simplicity of the\n"
+"API."
+msgstr ""
+
+#: gnu/packages/gnome.scm:3005
+msgid "OpenGL extension to GTK+"
+msgstr ""
+
+#: gnu/packages/gnome.scm:3006
+msgid ""
+"GtkGLExt is an OpenGL extension to GTK+.  It provides\n"
+"additional GDK objects which support OpenGL rendering in GTK+ and GtkWidget\n"
+"API add-ons to make GTK+ widgets OpenGL-capable."
+msgstr ""
+
+#: gnu/packages/gnome.scm:3057
+msgid "GTK+ rapid application development tool"
+msgstr ""
+
+#: gnu/packages/gnome.scm:3058
+msgid ""
+"Glade is a rapid application development (RAD) tool to\n"
+"enable quick & easy development of user interfaces for the GTK+ toolkit and\n"
+"the GNOME desktop environment."
+msgstr ""
+
+#: gnu/packages/gnome.scm:3089
+#, fuzzy
+#| msgid "GNOME image loading and manipulation library"
+msgid "CSS2 parsing and manipulation library"
+msgstr "Biblioteko de GNOME por ŝargi kaj manipuli bildojn"
+
+#: gnu/packages/gnome.scm:3091
+msgid ""
+"Libcroco is a standalone CSS2 parsing and manipulation library.\n"
+"The parser provides a low level event driven SAC-like API and a CSS object\n"
+"model like API.  Libcroco provides a CSS2 selection engine and an experimental\n"
+"XML/CSS rendering engine."
+msgstr ""
+
+#: gnu/packages/gnome.scm:3129
+msgid "GNOME's Structured File Library"
+msgstr ""
+
+#: gnu/packages/gnome.scm:3131
+msgid ""
+"Libgsf aims to provide an efficient extensible I/O abstraction for\n"
+"dealing with different structured file formats."
+msgstr ""
+
+#: gnu/packages/gnome.scm:3199
+msgid "Render SVG files using Cairo"
+msgstr ""
+
+#: gnu/packages/gnome.scm:3201
+msgid ""
+"Librsvg is a C library to render SVG files using the Cairo 2D graphics\n"
+"library."
+msgstr ""
+
+#: gnu/packages/gnome.scm:3380
+#, fuzzy
+#| msgid "PDF rendering library"
+msgid "SVG rendering library"
+msgstr "PDF-bildiga biblioteko"
+
+#: gnu/packages/gnome.scm:3381
+msgid ""
+"Librsvg is a library to render SVG images to Cairo surfaces.\n"
+"GNOME uses this to render SVG icons.  Outside of GNOME, other desktop\n"
+"environments use it for similar purposes.  Wikimedia uses it for Wikipedia's SVG\n"
+"diagrams."
+msgstr ""
+
+#: gnu/packages/gnome.scm:3407
+msgid "Create trees of CORBA Interface Definition Language files"
+msgstr ""
+
+#: gnu/packages/gnome.scm:3408
+msgid ""
+"Libidl is a library for creating trees of CORBA Interface\n"
+"Definition Language (idl) files, which is a specification for defining\n"
+"portable interfaces. libidl was initially written for orbit (the orb from the\n"
+"GNOME project, and the primary means of libidl distribution).  However, the\n"
+"functionality was designed to be as reusable and portable as possible."
+msgstr ""
+
+#: gnu/packages/gnome.scm:3455
+msgid "CORBA 2.4-compliant Object Request Broker"
+msgstr ""
+
+#: gnu/packages/gnome.scm:3456
+msgid ""
+"ORBit2 is a CORBA 2.4-compliant Object Request Broker (orb)\n"
+"featuring mature C, C++ and Python bindings."
+msgstr ""
+
+#: gnu/packages/gnome.scm:3511
+msgid "Framework for creating reusable components for use in GNOME applications"
+msgstr ""
+
+#: gnu/packages/gnome.scm:3512
+msgid ""
+"Bonobo is a framework for creating reusable components for\n"
+"use in GNOME applications, built on top of CORBA."
+msgstr ""
+
+#: gnu/packages/gnome.scm:3543
+msgid "Store application preferences"
+msgstr ""
+
+#: gnu/packages/gnome.scm:3544
+msgid ""
+"Gconf is a system for storing application preferences.  It\n"
+"is intended for user preferences; not arbitrary data storage."
+msgstr ""
+
+#: gnu/packages/gnome.scm:3578
+msgid "Base MIME and Application database for GNOME"
+msgstr ""
+
+#: gnu/packages/gnome.scm:3579
+msgid ""
+"GNOME Mime Data is a module which contains the base MIME\n"
+"and Application database for GNOME.  The data stored by this module is\n"
+"designed to be accessed through the MIME functions in GnomeVFS."
+msgstr ""
+
+#: gnu/packages/gnome.scm:3622
+msgid "Access files and folders in GNOME applications"
+msgstr ""
+
+#: gnu/packages/gnome.scm:3624
+msgid ""
+"GnomeVFS is the core library used to access files and folders in GNOME\n"
+"applications.  It provides a file system abstraction which allows applications\n"
+"to access local and remote files with a single consistent API."
+msgstr ""
+
+#: gnu/packages/gnome.scm:3669
+msgid "Useful routines for building applications"
+msgstr ""
+
+#: gnu/packages/gnome.scm:3670
+msgid ""
+"The libgnome library provides a number of useful routines\n"
+"for building modern applications, including session management, activation of\n"
+"files and URIs, and displaying help."
+msgstr ""
+
+#: gnu/packages/gnome.scm:3693
+#, fuzzy
+#| msgid "PDF rendering library"
+msgid "2D drawing library"
+msgstr "PDF-bildiga biblioteko"
+
+#: gnu/packages/gnome.scm:3694
+msgid ""
+"Libart is a 2D drawing library intended as a\n"
+"high-quality vector-based 2D library with antialiasing and alpha composition."
+msgstr ""
+
+#: gnu/packages/gnome.scm:3721
+msgid "Flexible widget for creating interactive structured graphics"
+msgstr ""
+
+#: gnu/packages/gnome.scm:3722
+msgid ""
+"The GnomeCanvas widget provides a flexible widget for\n"
+"creating interactive structured graphics."
+msgstr ""
+
+#: gnu/packages/gnome.scm:3744
+#, fuzzy
+#| msgid "C++ bindings to the Cairo 2D graphics library"
+msgid "C++ bindings to the GNOME Canvas library"
+msgstr "Bindoj de C++ por la 2D-grafika biblioteko Cairo"
+
+#: gnu/packages/gnome.scm:3745
+#, fuzzy
+#| msgid "C++ bindings to the Cairo 2D graphics library"
+msgid "C++ bindings to the GNOME Canvas library."
+msgstr "Bindoj de C++ por la 2D-grafika biblioteko Cairo"
+
+#: gnu/packages/gnome.scm:3777
+msgid "Additional widgets for applications"
+msgstr ""
+
+#: gnu/packages/gnome.scm:3778
+msgid ""
+"The libgnomeui library provides additional widgets for\n"
+"applications.  Many of the widgets from libgnomeui have already been\n"
+"ported to GTK+."
+msgstr ""
+
+#: gnu/packages/gnome.scm:3804
+msgid "Load glade interfaces and access the glade built widgets"
+msgstr ""
+
+#: gnu/packages/gnome.scm:3805
+msgid ""
+"Libglade is a library that provides interfaces for loading\n"
+"graphical interfaces described in glade files and for accessing the\n"
+"widgets built in the loading process."
+msgstr ""
+
+#: gnu/packages/gnome.scm:3835 gnu/packages/gnome.scm:3867
+msgid "Printing framework for GNOME"
+msgstr ""
+
+#: gnu/packages/gnome.scm:3837
+msgid ""
+"GNOME-print was a printing framework for GNOME.  It has been deprecated\n"
+"since ca. 2006, when GTK+ itself incorporated printing support."
+msgstr ""
+
+#: gnu/packages/gnome.scm:3911
+msgid "Some user interface controls using Bonobo"
+msgstr ""
+
+#: gnu/packages/gnome.scm:3912
+msgid ""
+"The Bonobo UI library provides a number of user interface\n"
+"controls using the Bonobo component framework."
+msgstr ""
+
+#: gnu/packages/gnome.scm:3939
+msgid "Window Navigator Construction Kit"
+msgstr ""
+
+#: gnu/packages/gnome.scm:3941
+msgid ""
+"Libwnck is the Window Navigator Construction Kit, a library for use in\n"
+"writing pagers, tasklists, and more generally applications that are dealing\n"
+"with window management.  It tries hard to respect the Extended Window Manager\n"
+"Hints specification (EWMH)."
+msgstr ""
+
+#: gnu/packages/gnome.scm:3998
+msgid "Document-centric objects and utilities"
+msgstr ""
+
+#: gnu/packages/gnome.scm:3999
+msgid "A GLib/GTK+ set of document-centric objects and utilities."
+msgstr ""
+
+#: gnu/packages/gnome.scm:4083
+msgid "Spreadsheet application"
+msgstr ""
+
+#: gnu/packages/gnome.scm:4085
+msgid ""
+"GNUmeric is a GNU spreadsheet application, running under GNOME.  It is\n"
+"interoperable with other spreadsheet applications.  It has a vast array of\n"
+"features beyond typical spreadsheet functionality, such as support for linear\n"
+"and non-linear solvers, statistical analysis, and telecommunication\n"
+"engineering."
+msgstr ""
+
+#: gnu/packages/gnome.scm:4125
+msgid "Default GNOME 3 themes"
+msgstr ""
+
+#: gnu/packages/gnome.scm:4127
+msgid "The default GNOME 3 themes (Adwaita and some accessibility themes)."
+msgstr ""
+
+#: gnu/packages/gnome.scm:4174
+msgid "Manage encryption keys and passwords in the GNOME keyring"
+msgstr ""
+
+#: gnu/packages/gnome.scm:4176
+msgid ""
+"Seahorse is a GNOME application for managing encryption keys and\n"
+"passwords in the GNOME keyring."
+msgstr ""
+
+#: gnu/packages/gnome.scm:4217 gnu/packages/gnome.scm:4445
+msgid "Compiler for the GObject type system"
+msgstr ""
+
+#: gnu/packages/gnome.scm:4219
+msgid ""
+"Vala is a programming language that aims to bring modern programming\n"
+"language features to GNOME developers without imposing any additional runtime\n"
+"requirements and without using a different ABI compared to applications and\n"
+"libraries written in C."
+msgstr ""
+
+#: gnu/packages/gnome.scm:4268
+msgid "Virtual Terminal Emulator"
+msgstr ""
+
+#: gnu/packages/gnome.scm:4270
+msgid ""
+"VTE is a library (libvte) implementing a terminal emulator widget for\n"
+"GTK+, and a minimal sample application (vte) using that.  Vte is mainly used in\n"
+"gnome-terminal, but can also be used to embed a console/terminal in games,\n"
+"editors, IDEs, etc."
+msgstr ""
+
+#: gnu/packages/gnome.scm:4295
+msgid "Enhanced VTE terminal widget"
+msgstr ""
+
+#: gnu/packages/gnome.scm:4297
+msgid ""
+"VTE is a library (libvte) implementing a terminal emulator widget for\n"
+"GTK+, this fork provides additional functions exposed for keyboard text\n"
+"selection and URL hints."
+msgstr ""
+
+#: gnu/packages/gnome.scm:4376
+msgid "Remote desktop viewer for GNOME"
+msgstr ""
+
+#: gnu/packages/gnome.scm:4377
+msgid ""
+"Vinagre is a remote display client supporting the VNC, SPICE\n"
+"and RDP protocols."
+msgstr ""
+
+#: gnu/packages/gnome.scm:4418
+msgid "Low-level GNOME configuration system"
+msgstr ""
+
+#: gnu/packages/gnome.scm:4419
+msgid ""
+"Dconf is a low-level configuration system.  Its main purpose\n"
+"is to provide a backend to GSettings on platforms that don't already have\n"
+"configuration storage systems."
+msgstr ""
+
+#: gnu/packages/gnome.scm:4447
+msgid ""
+"JSON-GLib is a C library based on GLib providing serialization and\n"
+"deserialization support for the JavaScript Object Notation (JSON) format\n"
+"described by RFC 4627.  It provides parser and generator GObject classes and\n"
+"various wrappers for the complex data types employed by JSON, such as arrays\n"
+"and objects."
+msgstr ""
+
+#: gnu/packages/gnome.scm:4496
+msgid "High-level API for X Keyboard Extension"
+msgstr ""
+
+#: gnu/packages/gnome.scm:4498
+msgid ""
+"LibXklavier is a library providing high-level API for X Keyboard\n"
+"Extension known as XKB.  This library is intended to support XFree86 and other\n"
+"commercial X servers.  It is useful for creating XKB-related software (layout\n"
+"indicators etc)."
+msgstr ""
+
+#: gnu/packages/gnome.scm:4526
+#, fuzzy
+#| msgid "Python bindings for cairo"
+msgid "Python bindings to librsvg"
+msgstr "Bindoj de Python por Cairo"
+
+#: gnu/packages/gnome.scm:4528
+msgid ""
+"This package provides Python bindings to librsvg, the SVG rendering\n"
+"library."
+msgstr ""
+
+#: gnu/packages/gnome.scm:4558
+msgid "Network-related GIO modules"
+msgstr ""
+
+#: gnu/packages/gnome.scm:4560
+msgid ""
+"This package contains various network related extensions for the GIO\n"
+"library."
+msgstr ""
+
+#: gnu/packages/gnome.scm:4591
+msgid "RESTful web api query library"
+msgstr ""
+
+#: gnu/packages/gnome.scm:4593
+msgid ""
+"This library was designed to make it easier to access web services that\n"
+"claim to be \"RESTful\".  It includes convenience wrappers for libsoup and\n"
+"libxml to ease remote use of the RESTful API."
+msgstr ""
+
+#: gnu/packages/gnome.scm:4714
+msgid "GLib-based HTTP Library"
+msgstr ""
+
+#: gnu/packages/gnome.scm:4716
+msgid ""
+"LibSoup is an HTTP client/server library for GNOME.  It uses GObjects\n"
+"and the GLib main loop, to integrate well with GNOME applications."
+msgstr ""
+
+#: gnu/packages/gnome.scm:4778
+msgid "GObject bindings for \"Secret Service\" API"
+msgstr ""
+
+#: gnu/packages/gnome.scm:4780
+msgid ""
+"Libsecret is a GObject based library for storing and retrieving passwords\n"
+"and other secrets.  It communicates with the \"Secret Service\" using DBus."
+msgstr ""
+
+#: gnu/packages/gnome.scm:4821
+msgid ""
+"Five or More is a game where you try to align\n"
+" five or more objects of the same color and shape causing them to disappear.\n"
+" On every turn more objects will appear, until the board is full.\n"
+" Try to last as long as possible."
+msgstr ""
+
+#: gnu/packages/gnome.scm:4863
+msgid "Minesweeper game"
+msgstr ""
+
+#: gnu/packages/gnome.scm:4865
+msgid ""
+"Mines (previously gnomine) is a puzzle game where you locate mines\n"
+"floating in an ocean using only your brain and a little bit of luck."
+msgstr ""
+
+#: gnu/packages/gnome.scm:4904
+msgid "Write to multiple USB devices at once"
+msgstr ""
+
+#: gnu/packages/gnome.scm:4906
+msgid ""
+"MultiWriter can be used to write an ISO file to multiple USB devices at\n"
+"once."
+msgstr ""
+
+#: gnu/packages/gnome.scm:4948
+msgid "Japanese logic game"
+msgstr ""
+
+#: gnu/packages/gnome.scm:4950
+msgid ""
+"Sudoku is a Japanese logic game that exploded in popularity in 2005.\n"
+"GNOME Sudoku is meant to have an interface as simple and unobstrusive as\n"
+"possible while still providing features that make playing difficult Sudoku\n"
+"more fun."
+msgstr ""
+
+#: gnu/packages/gnome.scm:4996
+msgid "Terminal emulator"
+msgstr ""
+
+#: gnu/packages/gnome.scm:4998
+msgid ""
+"GNOME Terminal is a terminal emulator application for accessing a\n"
+"UNIX shell environment which can be used to run programs available on\n"
+"your system.\n"
+"\n"
+"It supports several profiles, multiple tabs and implements several\n"
+"keyboard shortcuts."
+msgstr ""
+
+#: gnu/packages/gnome.scm:5077
+msgid "Color management service"
+msgstr ""
+
+#: gnu/packages/gnome.scm:5078
+msgid ""
+"Colord is a system service that makes it easy to manage,\n"
+"install and generate color profiles to accurately color manage input and\n"
+"output devices."
+msgstr ""
+
+#: gnu/packages/gnome.scm:5113
+msgid "Geolocation service"
+msgstr ""
+
+#: gnu/packages/gnome.scm:5114
+msgid ""
+"Geoclue is a D-Bus service that provides location\n"
+"information.  The primary goal of the Geoclue project is to make creating\n"
+"location-aware applications as simple as possible, while the secondary goal is\n"
+"to ensure that no application can access location information without explicit\n"
+"permission from user."
+msgstr ""
+
+#: gnu/packages/gnome.scm:5158
+msgid "Geocoding and reverse-geocoding library"
+msgstr ""
+
+#: gnu/packages/gnome.scm:5160
+msgid ""
+"geocode-glib is a convenience library for geocoding (finding longitude,\n"
+"and latitude from an address) and reverse geocoding (finding an address from\n"
+"coordinates) using the Nominatim service.  geocode-glib caches requests for\n"
+"faster results and to avoid unnecessary server load."
+msgstr ""
+
+#: gnu/packages/gnome.scm:5229
+msgid "System daemon for managing power devices"
+msgstr ""
+
+#: gnu/packages/gnome.scm:5231
+msgid ""
+"UPower is an abstraction for enumerating power devices,\n"
+"listening to device events and querying history and statistics.  Any\n"
+"application or service on the system can access the org.freedesktop.UPower\n"
+"service via the system message bus."
+msgstr ""
+
+#: gnu/packages/gnome.scm:5273
+msgid "Location, time zone, and weather library for GNOME"
+msgstr ""
+
+#: gnu/packages/gnome.scm:5275
+msgid ""
+"libgweather is a library to access weather information from online\n"
+"services for numerous locations."
+msgstr ""
+
+#: gnu/packages/gnome.scm:5358
+msgid "GNOME settings daemon"
+msgstr ""
+
+#: gnu/packages/gnome.scm:5360
+msgid ""
+"This package contains the daemon responsible for setting the various\n"
+"parameters of a GNOME session and the applications that run under it.  It\n"
+"handles settings such keyboard layout, shortcuts, and accessibility, clipboard\n"
+"settings, themes, mouse settings, and startup of other daemons."
+msgstr ""
+
+#: gnu/packages/gnome.scm:5396
+msgid "Library to parse and save media playlists for GNOME"
+msgstr ""
+
+#: gnu/packages/gnome.scm:5397
+msgid ""
+"Totem-pl-parser is a GObjects-based library to parse and save\n"
+"playlists in a variety of formats."
+msgstr ""
+
+#: gnu/packages/gnome.scm:5431
+msgid "Solitaire card games"
+msgstr ""
+
+#: gnu/packages/gnome.scm:5433
+msgid ""
+"Aisleriot (also known as Solitaire or sol) is a collection of card games\n"
+"which are easy to play with the aid of a mouse."
+msgstr ""
+
+#: gnu/packages/gnome.scm:5461
+msgid "Actions, Menus and Toolbars Kit for GTK+ applications"
+msgstr ""
+
+#: gnu/packages/gnome.scm:5463
+msgid ""
+"Amtk is the acronym for @acronym{Amtk, Actions Menus and Toolbars Kit}.\n"
+"It is a basic GtkUIManager replacement based on GAction.  It is suitable for\n"
+"both a traditional UI or a modern UI with a GtkHeaderBar."
+msgstr ""
+
+#: gnu/packages/gnome.scm:5502
+msgid "API documentation browser for GNOME"
+msgstr ""
+
+#: gnu/packages/gnome.scm:5504
+msgid ""
+"Devhelp is an API documentation browser for GTK+ and GNOME.  It works\n"
+"natively with GTK-Doc (the API reference system developed for GTK+ and used\n"
+"throughout GNOME for API documentation)."
+msgstr ""
+
+#: gnu/packages/gnome.scm:5581
+msgid "Object oriented GL/GLES Abstraction/Utility Layer"
+msgstr ""
+
+#: gnu/packages/gnome.scm:5583
+msgid ""
+"Cogl is a small library for using 3D graphics hardware to draw pretty\n"
+"pictures.  The API departs from the flat state machine style of OpenGL and is\n"
+"designed to make it easy to write orthogonal components that can render\n"
+"without stepping on each others toes."
+msgstr ""
+
+#: gnu/packages/gnome.scm:5640
+msgid "OpenGL-based interactive canvas library"
+msgstr ""
+
+#: gnu/packages/gnome.scm:5642 gnu/packages/gnome.scm:5671
+msgid ""
+"Clutter is an OpenGL-based interactive canvas library, designed for\n"
+"creating fast, mainly 2D single window applications such as media box UIs,\n"
+"presentations, kiosk style applications and so on."
+msgstr ""
+
+#: gnu/packages/gnome.scm:5669
+msgid "OpenGL-based interactive canvas library GTK+ widget"
+msgstr ""
+
+#: gnu/packages/gnome.scm:5698
+msgid "Integration library for using GStreamer with Clutter"
+msgstr ""
+
+#: gnu/packages/gnome.scm:5700
+msgid ""
+"Clutter-Gst is an integration library for using GStreamer with Clutter.\n"
+"It provides a GStreamer sink to upload frames to GL and an actor that\n"
+"implements the ClutterGstPlayer interface using playbin.  Clutter is an\n"
+"OpenGL-based interactive canvas library."
+msgstr ""
+
+#: gnu/packages/gnome.scm:5734
+msgid "C library providing a ClutterActor to display maps"
+msgstr ""
+
+#: gnu/packages/gnome.scm:5736
+msgid ""
+"libchamplain is a C library providing a ClutterActor to display maps.\n"
+"It also provides a Gtk+ widget to display maps in Gtk+ applications.  Python\n"
+"and Perl bindings are also available.  It supports numerous free map sources\n"
+"such as OpenStreetMap, OpenCycleMap, OpenAerialMap, and Maps for free."
+msgstr ""
+
+#: gnu/packages/gnome.scm:5767
+msgid "Object mapper from GObjects to SQLite"
+msgstr ""
+
+#: gnu/packages/gnome.scm:5769
+msgid ""
+"Gom provides an object mapper from GObjects to SQLite.  It helps you\n"
+"write applications that need to store structured data as well as make complex\n"
+"queries upon that data."
+msgstr ""
+
+#: gnu/packages/gnome.scm:5804
+msgid "Useful functionality shared among GNOME games"
+msgstr ""
+
+#: gnu/packages/gnome.scm:5806
+msgid ""
+"libgnome-games-support is a small library intended for internal use by\n"
+"GNOME Games, but it may be used by others."
+msgstr ""
+
+#: gnu/packages/gnome.scm:5846
+msgid "Sliding block puzzles"
+msgstr ""
+
+#: gnu/packages/gnome.scm:5848
+msgid ""
+"GNOME Klotski is a set of block sliding puzzles.  The objective is to move\n"
+"the patterned block to the area bordered by green markers.  To do so, you will\n"
+"need to slide other blocks out of the way.  Complete each puzzle in as few moves\n"
+"as possible!"
+msgstr ""
+
+#: gnu/packages/gnome.scm:5888
+msgid "Framework for discovering and browsing media"
+msgstr ""
+
+#: gnu/packages/gnome.scm:5890
+msgid ""
+"Grilo is a framework focused on making media discovery and browsing easy\n"
+"for application developers."
+msgstr ""
+
+#: gnu/packages/gnome.scm:5935
+msgid "Plugins for the Grilo media discovery library"
+msgstr ""
+
+#: gnu/packages/gnome.scm:5937
+msgid ""
+"Grilo is a framework focused on making media discovery and browsing easy\n"
+"for application developers.  This package provides plugins for common media\n"
+"discovery protocols."
+msgstr ""
+
+#: gnu/packages/gnome.scm:6040
+msgid "Simple media player for GNOME based on GStreamer"
+msgstr ""
+
+#: gnu/packages/gnome.scm:6041
+msgid ""
+"Totem is a simple yet featureful media player for GNOME\n"
+"which can read a large number of file formats."
+msgstr ""
+
+#: gnu/packages/gnome.scm:6130
+#, fuzzy
+#| msgid "Music Player Daemon"
+msgid "Music player for GNOME"
+msgstr "Music Player Daemon (muzik-ludila demono)"
+
+#: gnu/packages/gnome.scm:6131
+msgid ""
+"Rhythmbox is a music playing application for GNOME.  It\n"
+"supports playlists, song ratings, and any codecs installed through gstreamer."
+msgstr ""
+
+#: gnu/packages/gnome.scm:6190
+msgid "GNOME image viewer"
+msgstr ""
+
+#: gnu/packages/gnome.scm:6191
+msgid ""
+"Eye of GNOME is the GNOME image viewer.  It\n"
+"supports image conversion, rotation, and slideshows."
+msgstr ""
+
+#: gnu/packages/gnome.scm:6213
+msgid "Extensions for the Eye of GNOME image viewer"
+msgstr ""
+
+#: gnu/packages/gnome.scm:6225
+msgid ""
+"This package provides plugins for the Eye of GNOME (EOG) image viewer,\n"
+"notably:\n"
+"\n"
+"@itemize\n"
+"@item @dfn{EXIF Display}, which displays camera (EXIF) information;\n"
+"@item @dfn{Map}, which displays a map of where the picture was taken on the\n"
+"side panel;\n"
+"@item @dfn{Slideshow Shuffle}, to shuffle images in slideshow mode.\n"
+"@end itemize\n"
+msgstr ""
+
+#: gnu/packages/gnome.scm:6265
+#, fuzzy
+#| msgid "Python bindings for cairo"
+msgid "GObject bindings for libudev"
+msgstr "Bindoj de Python por Cairo"
+
+#: gnu/packages/gnome.scm:6267
+msgid ""
+"This library provides GObject bindings for libudev.  It was originally\n"
+"part of udev-extras, then udev, then systemd.  It's now a project on its own."
+msgstr ""
+
+#: gnu/packages/gnome.scm:6330
+#, fuzzy
+#| msgid "User-space union file system"
+msgid "Userspace virtual file system for GIO"
+msgstr "Uzant-spaca unuiga dosiersistemo"
+
+#: gnu/packages/gnome.scm:6332
+msgid ""
+"GVFS is a userspace virtual file system designed to work with the I/O\n"
+"abstraction of GIO.  It contains a GIO module that seamlessly adds GVFS support\n"
+"to all applications using the GIO API.  It also supports exposing the GVFS\n"
+"mounts to non-GIO applications using FUSE.\n"
+"\n"
+"GVFS comes with a set of backends, including trash support, SFTP, SMB, HTTP,\n"
+"DAV, and others."
+msgstr ""
+
+#: gnu/packages/gnome.scm:6367
+#, fuzzy
+#| msgid "Guile bindings to ncurses"
+msgid "GLib binding for libusb1"
+msgstr "Bindoj de Guile por ncurses"
+
+#: gnu/packages/gnome.scm:6369
+msgid ""
+"GUsb is a GObject wrapper for libusb1 that makes it easy to do\n"
+"asynchronous control, bulk and interrupt transfers with proper cancellation\n"
+"and integration into a mainloop.  This makes it easy to integrate low level\n"
+"USB transfers with your high-level application or system daemon."
+msgstr ""
+
+#: gnu/packages/gnome.scm:6407
+msgid "Document and image scanner"
+msgstr ""
+
+#: gnu/packages/gnome.scm:6409
+msgid ""
+"Document Scanner is an easy-to-use application that lets you connect your\n"
+"scanner and quickly capture images and documents in an appropriate format.  It\n"
+"supports any scanner for which a suitable SANE driver is available, which is\n"
+"almost all of them."
+msgstr ""
+
+#: gnu/packages/gnome.scm:6477
+msgid "Web browser for GNOME"
+msgstr ""
+
+#: gnu/packages/gnome.scm:6479
+msgid ""
+"Eolie is a new web browser for GNOME.  It features Firefox sync support,\n"
+"a secret password store, an adblocker, and a modern UI."
+msgstr ""
+
+#: gnu/packages/gnome.scm:6553
+msgid "GNOME web browser"
+msgstr ""
+
+#: gnu/packages/gnome.scm:6555
+msgid ""
+"Epiphany is a GNOME web browser targeted at non-technical users.  Its\n"
+"principles are simplicity and standards compliance."
+msgstr ""
+
+#: gnu/packages/gnome.scm:6612
+msgid "D-Bus debugger"
+msgstr ""
+
+#: gnu/packages/gnome.scm:6614
+msgid ""
+"D-Feet is a D-Bus debugger, which can be used to inspect D-Bus interfaces\n"
+"of running programs and invoke methods on those interfaces."
+msgstr ""
+
+#: gnu/packages/gnome.scm:6636
+msgid "XSL stylesheets for Yelp"
+msgstr ""
+
+#: gnu/packages/gnome.scm:6638
+msgid ""
+"Yelp-xsl contains XSL stylesheets that are used by the yelp help browser\n"
+"to format Docbook and Mallard documents."
+msgstr ""
+
+#: gnu/packages/gnome.scm:6669
+msgid "GNOME help browser"
+msgstr ""
+
+#: gnu/packages/gnome.scm:6671
+msgid ""
+"Yelp is the help viewer in Gnome.  It natively views Mallard, DocBook,\n"
+"man, info, and HTML documents.  It can locate documents according to the\n"
+"freedesktop.org help system specification."
+msgstr ""
+
+#: gnu/packages/gnome.scm:6699
+msgid "Yelp documentation tools"
+msgstr ""
+
+#: gnu/packages/gnome.scm:6701
+msgid ""
+"Yelp-tools is a collection of scripts and build utilities to help create,\n"
+"manage, and publish documentation for Yelp and the web.  Most of the heavy\n"
+"lifting is done by packages like yelp-xsl and itstool.  This package just\n"
+"wraps things up in a developer-friendly way."
+msgstr ""
+
+#: gnu/packages/gnome.scm:6738
+msgid "GObject collection library"
+msgstr ""
+
+#: gnu/packages/gnome.scm:6740
+msgid ""
+"Libgee is a utility library providing GObject-based interfaces and\n"
+"classes for commonly used data structures."
+msgstr ""
+
+#: gnu/packages/gnome.scm:6769
+msgid "GObject wrapper around the Exiv2 photo metadata library"
+msgstr ""
+
+#: gnu/packages/gnome.scm:6771
+msgid ""
+"Gexiv2 is a GObject wrapper around the Exiv2 photo metadata library.  It\n"
+"allows for GNOME applications to easily inspect and update EXIF, IPTC, and XMP\n"
+"metadata in photo and video files of various formats."
+msgstr ""
+
+#: gnu/packages/gnome.scm:6823
+msgid "Photo manager for GNOME 3"
+msgstr ""
+
+#: gnu/packages/gnome.scm:6825
+msgid ""
+"Shotwell is a digital photo manager designed for the GNOME desktop\n"
+"environment.  It allows you to import photos from disk or camera, organize\n"
+"them by keywords and events, view them in full-window or fullscreen mode, and\n"
+"share them with others via social networking and more."
+msgstr ""
+
+#: gnu/packages/gnome.scm:6860
+msgid "Graphical archive manager for GNOME"
+msgstr ""
+
+#: gnu/packages/gnome.scm:6861
+msgid ""
+"File Roller is an archive manager for the GNOME desktop\n"
+"environment that allows users to view, unpack, and create compressed archives\n"
+"such as gzip tarballs."
+msgstr ""
+
+#: gnu/packages/gnome.scm:6931
+msgid "Session manager for GNOME"
+msgstr ""
+
+#: gnu/packages/gnome.scm:6933
+msgid ""
+"This package contains the GNOME session manager, as well as a\n"
+"configuration program to choose applications starting on login."
+msgstr ""
+
+#: gnu/packages/gnome.scm:6990
+#, fuzzy
+#| msgid "Cairo bindings for GNU Guile"
+msgid "Javascript bindings for GNOME"
+msgstr "Bindoj de Cairo por GNU Guile"
+
+#: gnu/packages/gnome.scm:6993
+msgid ""
+"Gjs is a javascript binding for GNOME.  It's mainly based on spidermonkey\n"
+"javascript engine and the GObject introspection framework."
+msgstr ""
+
+#: gnu/packages/gnome.scm:7086
+#, fuzzy
+#| msgid "Stream editor"
+msgid "GNOME text editor"
+msgstr "Flu-redaktilo"
+
+#: gnu/packages/gnome.scm:7087
+msgid ""
+"While aiming at simplicity and ease of use, gedit is a\n"
+"powerful general purpose text editor."
+msgstr ""
+
+#: gnu/packages/gnome.scm:7111
+msgid "Display graphical dialog boxes from shell scripts"
+msgstr ""
+
+#: gnu/packages/gnome.scm:7114
+msgid ""
+"Zenity is a rewrite of gdialog, the GNOME port of dialog which allows you\n"
+"to display dialog boxes from the commandline and shell scripts."
+msgstr ""
+
+#: gnu/packages/gnome.scm:7222
+msgid "Window and compositing manager"
+msgstr ""
+
+#: gnu/packages/gnome.scm:7225
+msgid ""
+"Mutter is a window and compositing manager that displays and manages your\n"
+"desktop via OpenGL.  Mutter combines a sophisticated display engine using the\n"
+"Clutter toolkit with solid window-management logic inherited from the Metacity\n"
+"window manager."
+msgstr ""
+
+#: gnu/packages/gnome.scm:7279
+msgid "Single sign-on framework for GNOME"
+msgstr ""
+
+#: gnu/packages/gnome.scm:7282
+msgid ""
+"GNOME Online Accounts provides interfaces so that applications and\n"
+"libraries in GNOME can access the user's online accounts.  It has providers for\n"
+"Google, ownCloud, Facebook, Flickr, Windows Live, Pocket, Foursquare, Microsoft\n"
+"Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos."
+msgstr ""
+
+#: gnu/packages/gnome.scm:7370
+msgid "Store address books and calendars"
+msgstr ""
+
+#: gnu/packages/gnome.scm:7373
+msgid ""
+"This package provides a unified backend for programs that work with\n"
+"contacts, tasks, and calendar information.  It was originally developed for\n"
+"Evolution (hence the name), but is now used by other packages as well."
+msgstr ""
+
+#: gnu/packages/gnome.scm:7436
+msgid "Text entry and UI navigation application"
+msgstr ""
+
+#: gnu/packages/gnome.scm:7439
+msgid ""
+"Caribou is an input assistive technology intended for switch and pointer\n"
+"users."
+msgstr ""
+
+#: gnu/packages/gnome.scm:7587
+msgid "Network connection manager"
+msgstr ""
+
+#: gnu/packages/gnome.scm:7590
+msgid ""
+"NetworkManager is a system network service that manages your network\n"
+"devices and connections, attempting to keep active network connectivity when\n"
+"available.  It manages ethernet, WiFi, mobile broadband (WWAN), and PPPoE\n"
+"devices, and provides VPN integration with a variety of different VPN\n"
+"services."
+msgstr ""
+
+#: gnu/packages/gnome.scm:7647
+msgid "OpenVPN plug-in for NetworkManager"
+msgstr ""
+
+#: gnu/packages/gnome.scm:7649
+msgid ""
+"This extension of NetworkManager allows it to take care of connections\n"
+"to virtual private networks (VPNs) via OpenVPN."
+msgstr ""
+
+#: gnu/packages/gnome.scm:7700
+msgid "VPNC plug-in for NetworkManager"
+msgstr ""
+
+#: gnu/packages/gnome.scm:7702
+msgid ""
+"Support for configuring virtual private networks based on VPNC.\n"
+"Compatible with Cisco VPN concentrators configured to use IPsec."
+msgstr ""
+
+#: gnu/packages/gnome.scm:7750
+msgid "OpenConnect plug-in for NetworkManager"
+msgstr ""
+
+#: gnu/packages/gnome.scm:7752
+msgid ""
+"This extension of NetworkManager allows it to take care of connections\n"
+"to @acronym{VPNs, virtual private networks} via OpenConnect, an open client for\n"
+"Cisco's AnyConnect SSL VPN."
+msgstr ""
+
+#: gnu/packages/gnome.scm:7780
+msgid "Database of broadband connection configuration"
+msgstr ""
+
+#: gnu/packages/gnome.scm:7781
+msgid "Database of broadband connection configuration."
+msgstr ""
+
+#: gnu/packages/gnome.scm:7820
+msgid "Applet for managing network connections"
+msgstr ""
+
+#: gnu/packages/gnome.scm:7823
+msgid ""
+"This package contains a systray applet for NetworkManager.  It displays\n"
+"the available networks and allows users to easily switch between them."
+msgstr ""
+
+#: gnu/packages/gnome.scm:7848
+msgid "C++ wrapper for XML parser library libxml2"
+msgstr ""
+
+#: gnu/packages/gnome.scm:7850
+#, fuzzy
+#| msgid "This package provides a dictionary for the GNU Aspell spell checker."
+msgid ""
+"This package provides a C++ wrapper for the XML parser library\n"
+"libxml2."
+msgstr "Tiu ĉi pako provizas vortaron por la literumilo GNU Aspell."
+
+#: gnu/packages/gnome.scm:8052
+msgid "Display manager for GNOME"
+msgstr ""
+
+#: gnu/packages/gnome.scm:8055
+msgid ""
+"GNOME Display Manager is a system service that is responsible for\n"
+"providing graphical log-ins and managing local and remote displays."
+msgstr ""
+
+#: gnu/packages/gnome.scm:8079
+msgid "Portable system access library"
+msgstr ""
+
+#: gnu/packages/gnome.scm:8082
+msgid ""
+"LibGTop is a library to get system specific data such as CPU and memory\n"
+"usage and information about running processes."
+msgstr ""
+
+#: gnu/packages/gnome.scm:8114
+msgid "GNOME Bluetooth subsystem"
+msgstr ""
+
+#: gnu/packages/gnome.scm:8117
+#, fuzzy
+#| msgid "This package provides tools for manipulating ext2/ext3/ext4 file systems."
+msgid ""
+"This package contains tools for managing and manipulating Bluetooth\n"
+"devices using the GNOME desktop."
+msgstr "Tiu ĉi pako provizas ilojn por manipuli dosiersistemojn ext2/ext3/ext4."
+
+#: gnu/packages/gnome.scm:8226
+msgid "Utilities to configure the GNOME desktop"
+msgstr ""
+
+#: gnu/packages/gnome.scm:8229
+msgid ""
+"This package contains configuration applets for the GNOME desktop,\n"
+"allowing to set accessibility configuration, desktop fonts, keyboard and mouse\n"
+"properties, sound setup, desktop theme and background, user interface\n"
+"properties, screen resolution, and other GNOME parameters."
+msgstr ""
+
+#: gnu/packages/gnome.scm:8389
+msgid "Desktop shell for GNOME"
+msgstr ""
+
+#: gnu/packages/gnome.scm:8392
+msgid ""
+"GNOME Shell provides core user interface functions for the GNOME desktop,\n"
+"like switching to windows and launching applications."
+msgstr ""
+
+#: gnu/packages/gnome.scm:8434
+msgid "VNC client viewer widget for GTK+"
+msgstr ""
+
+#: gnu/packages/gnome.scm:8435
+msgid ""
+"GTK-VNC is a project providing client side APIs for the RFB\n"
+"protocol / VNC remote desktop technology.  It is built using coroutines allowing\n"
+"it to be completely asynchronous while remaining single threaded.  It provides a\n"
+"core C library, and bindings for Python (PyGTK)."
+msgstr ""
+
+#: gnu/packages/gnome.scm:8462
+msgid "Archives integration support for GNOME"
+msgstr ""
+
+#: gnu/packages/gnome.scm:8465
+msgid ""
+"GNOME Autoar is a library which makes creating and extracting archives\n"
+"easy, safe, and automatic."
+msgstr ""
+
+#: gnu/packages/gnome.scm:8510 gnu/packages/gnome.scm:8598
+msgid "Metadata database, indexer and search tool"
+msgstr ""
+
+#: gnu/packages/gnome.scm:8513
+msgid ""
+"Tracker is a search engine and triplestore for desktop, embedded and mobile.\n"
+"\n"
+"It is a middleware component aimed at desktop application developers who want\n"
+"their apps to browse and search user content.  It's not designed to be used\n"
+"directly by desktop users, but it provides a commandline tool named\n"
+"@command{tracker} for the adventurous.\n"
+"\n"
+"Tracker allows your application to instantly perform full-text searches across\n"
+"all documents.  This feature is used by the @{emph{search} bar in GNOME Files, for\n"
+"example.  This is achieved by indexing the user's home directory in the\n"
+"background.\n"
+"\n"
+"Tracker also allows your application to query and list content that the user\n"
+"has stored.  For example, GNOME Music displays all the music files that are\n"
+"found by Tracker.  This means that GNOME Music doesn't need to maintain a\n"
+"database of its own.\n"
+"\n"
+"If you need to go beyond simple searches, Tracker is also a linked data\n"
+"endpoint and it understands SPARQL. "
+msgstr ""
+
+#: gnu/packages/gnome.scm:8601
+msgid ""
+"Tracker is an advanced framework for first class objects with associated\n"
+"metadata and tags.  It provides a one stop solution for all metadata, tags,\n"
+"shared object databases, search tools and indexing."
+msgstr ""
+
+#: gnu/packages/gnome.scm:8662
+msgid "File manager for GNOME"
+msgstr ""
+
+#: gnu/packages/gnome.scm:8665
+msgid ""
+"Nautilus (Files) is a file manager designed to fit the GNOME desktop\n"
+"design and behaviour, giving the user a simple way to navigate and manage its\n"
+"files."
+msgstr ""
+
+#: gnu/packages/gnome.scm:8697
+msgid "Disk usage analyzer for GNOME"
+msgstr ""
+
+#: gnu/packages/gnome.scm:8699
+msgid ""
+"Baobab (Disk Usage Analyzer) is a graphical application to analyse disk\n"
+"usage in the GNOME desktop environment.  It can easily scan device volumes or\n"
+"a specific user-requested directory branch (local or remote).  Once the scan\n"
+"is complete it provides a graphical representation of each selected folder."
+msgstr ""
+
+#: gnu/packages/gnome.scm:8723
+msgid "Background images for the GNOME desktop"
+msgstr ""
+
+#: gnu/packages/gnome.scm:8725
+msgid ""
+"GNOME backgrounds package contains a collection of graphics files which\n"
+"can be used as backgrounds in the GNOME Desktop environment.  Additionally,\n"
+"the package creates the proper framework and directory structure so that you\n"
+"can add your own files to the collection."
+msgstr ""
+
+#: gnu/packages/gnome.scm:8769
+msgid "Take pictures of your screen"
+msgstr ""
+
+#: gnu/packages/gnome.scm:8771
+msgid ""
+"GNOME Screenshot is a utility used for taking screenshots of the entire\n"
+"screen, a window or a user defined area of the screen, with optional\n"
+"beautifying border effects."
+msgstr ""
+
+#: gnu/packages/gnome.scm:8801
+msgid "Graphical editor for GNOME's dconf configuration system"
+msgstr ""
+
+#: gnu/packages/gnome.scm:8803
+msgid ""
+"Dconf-editor is a graphical tool for browsing and editing the dconf\n"
+"configuration system for GNOME.  It allows users to configure desktop\n"
+"software that do not provide their own configuration interface."
+msgstr ""
+
+#: gnu/packages/gnome.scm:8832
+msgid "Default MIME type associations for the GNOME desktop"
+msgstr ""
+
+#: gnu/packages/gnome.scm:8834
+msgid ""
+"Given many installed packages which might handle a given MIME type, a\n"
+"user running the GNOME desktop probably has some preferences: for example,\n"
+"that folders be opened by default by the Nautilus file manager, not the Baobab\n"
+"disk usage analyzer.  This package establishes that set of default MIME type\n"
+"associations for GNOME."
+msgstr ""
+
+#: gnu/packages/gnome.scm:8865
+msgid "GoVirt Library"
+msgstr ""
+
+#: gnu/packages/gnome.scm:8866
+msgid "GoVirt is a GObject wrapper for the oVirt REST API."
+msgstr ""
+
+#: gnu/packages/gnome.scm:8918
+msgid "Weather monitoring for GNOME desktop"
+msgstr ""
+
+#: gnu/packages/gnome.scm:8919
+msgid ""
+"GNOME Weather is a small application that allows you to\n"
+"monitor the current weather conditions for your city, or anywhere in the\n"
+"world."
+msgstr ""
+
+#: gnu/packages/gnome.scm:9023
+msgid "The GNU desktop environment"
+msgstr ""
+
+#: gnu/packages/gnome.scm:9026
+msgid ""
+"GNOME is the graphical desktop for GNU.  It includes a wide variety of\n"
+"applications for browsing the web, editing text and images, creating\n"
+"documents and diagrams, playing media, scanning, and much more."
+msgstr ""
+
+#: gnu/packages/gnome.scm:9074
+#, fuzzy
+#| msgid "Word processing program"
+msgid "Desktop recording program"
+msgstr "Teksto-proceza programaro"
+
+#: gnu/packages/gnome.scm:9075
+msgid ""
+"Byzanz is a simple desktop recording program with a\n"
+"command-line interface.  It can record part or all of an X display for a\n"
+"specified duration and save it as a GIF encoded animated image file."
+msgstr ""
+
+#: gnu/packages/gnome.scm:9102
+msgid "GObject wrapper for libcanberra"
+msgstr ""
+
+#: gnu/packages/gnome.scm:9104
+msgid ""
+"GSound is a small library for playing system sounds.  It's designed to be\n"
+"used via GObject Introspection, and is a thin wrapper around the libcanberra C\n"
+"library."
+msgstr ""
+
+#: gnu/packages/gnome.scm:9131
+#, fuzzy
+#| msgid "Library for accessing zip files"
+msgid "Library for accessing SkyDrive and Hotmail"
+msgstr "Biblioteko por aliri zip-dosierojn"
+
+#: gnu/packages/gnome.scm:9133
+msgid ""
+"Libzapojit is a GLib-based library for accessing online service APIs of\n"
+"Microsoft SkyDrive and Hotmail, using their REST protocols."
+msgstr ""
+
+#: gnu/packages/gnome.scm:9176
+msgid "GNOME's clock application"
+msgstr ""
+
+#: gnu/packages/gnome.scm:9178
+msgid ""
+"GNOME Clocks is a simple clocks application designed to fit the GNOME\n"
+"desktop.  It supports world clock, stop watch, alarms, and count down timer."
+msgstr ""
+
+#: gnu/packages/gnome.scm:9222
+msgid "GNOME's calendar application"
+msgstr ""
+
+#: gnu/packages/gnome.scm:9224
+msgid ""
+"GNOME Calendar is a simple calendar application designed to fit the GNOME\n"
+"desktop.  It supports multiple calendars, month, week and year view."
+msgstr ""
+
+#: gnu/packages/gnome.scm:9276
+msgid "GNOME's ToDo Application"
+msgstr ""
+
+#: gnu/packages/gnome.scm:9278
+msgid ""
+"GNOME To Do is a simplistic personal task manager designed to perfectly\n"
+"fit the GNOME desktop."
+msgstr ""
+
+#: gnu/packages/gnome.scm:9316
+msgid "Look up words in dictionary sources"
+msgstr ""
+
+#: gnu/packages/gnome.scm:9318
+msgid ""
+"GNOME Dictionary can look for the definition or translation of a word in\n"
+"existing databases over the internet."
+msgstr ""
+
+#: gnu/packages/gnome.scm:9374
+msgid "Customize advanced GNOME 3 options"
+msgstr ""
+
+#: gnu/packages/gnome.scm:9377
+msgid ""
+"GNOME Tweaks allows adjusting advanced configuration settings in\n"
+"GNOME 3.  This includes things like the fonts used in user interface elements,\n"
+"alternative user interface themes, changes in window management behavior,\n"
+"GNOME Shell appearance and extension, etc."
+msgstr ""
+
+#: gnu/packages/gnome.scm:9404
+msgid "Extensions for GNOME Shell"
+msgstr ""
+
+#: gnu/packages/gnome.scm:9405
+msgid ""
+"GNOME Shell extensions modify and extend GNOME Shell\n"
+"functionality and behavior."
+msgstr ""
+
+#: gnu/packages/gnome.scm:9444
+msgid "A flat GTK+ theme with transparent elements"
+msgstr ""
+
+#: gnu/packages/gnome.scm:9445
+msgid ""
+"Arc is a flat theme with transparent elements for GTK 3, GTK\n"
+"2, and GNOME Shell which supports GTK 3 and GTK 2 based desktop environments\n"
+"like GNOME, Unity, Budgie, Pantheon, XFCE, Mate, etc."
+msgstr ""
+
+#: gnu/packages/gnome.scm:9476
+msgid "Faba icon theme"
+msgstr ""
+
+#: gnu/packages/gnome.scm:9478
+msgid ""
+"Faba is a minimal icon set used as a basis for other themes such as\n"
+"Moka"
+msgstr ""
+
+#: gnu/packages/gnome.scm:9502
+msgid "Moka icon theme"
+msgstr ""
+
+#: gnu/packages/gnome.scm:9503
+msgid ""
+"Moka is a stylized desktop icon set, designed to be clear,\n"
+"simple and consistent."
+msgstr ""
+
+#: gnu/packages/gnome.scm:9536
+msgid "Arc icon theme"
+msgstr ""
+
+#: gnu/packages/gnome.scm:9537
+msgid ""
+"The Arc icon theme provides a set of icons matching the\n"
+"style of the Arc GTK theme.  Icons missing from the Arc theme are provided by\n"
+"the Moka icon theme."
+msgstr ""
+
+#: gnu/packages/gnome.scm:9580
+msgid "Library to aggregate data about people"
+msgstr ""
+
+#: gnu/packages/gnome.scm:9581
+msgid ""
+"Libfolks is a library that aggregates information about people\n"
+"from multiple sources (e.g., Telepathy connection managers for IM contacts,\n"
+"Evolution Data Server for local contacts, libsocialweb for web service contacts,\n"
+"etc.) to create metacontacts.  It's written in Vala, which generates C code when\n"
+"compiled."
+msgstr ""
+
+#: gnu/packages/gnome.scm:9622
+msgid "GLib/GObject wrapper for the Facebook API"
+msgstr ""
+
+#: gnu/packages/gnome.scm:9623
+msgid ""
+"This library allows you to use the Facebook API from\n"
+"GLib/GObject code."
+msgstr ""
+
+#: gnu/packages/gnome.scm:9651
+#, fuzzy
+#| msgid "GNOME image loading and manipulation library"
+msgid "GNOME keyboard configuration library"
+msgstr "Biblioteko de GNOME por ŝargi kaj manipuli bildojn"
+
+#: gnu/packages/gnome.scm:9653
+msgid ""
+"Libgnomekbd is a keyboard configuration library for the GNOME desktop\n"
+"environment, which can notably display keyboard layouts."
+msgstr ""
+
+#: gnu/packages/gnome.scm:9687
+#, fuzzy
+#| msgid "Library for working with POSIX capabilities"
+msgid "Library for writing single instance applications"
+msgstr "Biblioteko por labori kun kapabloj POSIX"
+
+#: gnu/packages/gnome.scm:9689
+msgid ""
+"Libunique is a library for writing single instance applications.  If you\n"
+"launch a single instance application twice, the second instance will either just\n"
+"quit or will send a message to the running instance.  Libunique makes it easy to\n"
+"write this kind of application, by providing a base class, taking care of all\n"
+"the IPC machinery needed to send messages to a running instance, and also\n"
+"handling the startup notification side."
+msgstr ""
+
+#: gnu/packages/gnome.scm:9728
+msgid "Desktop calculator"
+msgstr ""
+
+#: gnu/packages/gnome.scm:9730
+msgid ""
+"Calculator is an application that solves mathematical equations and\n"
+"is suitable as a default application in a Desktop environment."
+msgstr ""
+
+#: gnu/packages/gnome.scm:9758
+msgid "Virtual sticky note"
+msgstr ""
+
+#: gnu/packages/gnome.scm:9760
+msgid ""
+"Xpad is a sticky note that strives to be simple, fault tolerant,\n"
+"and customizable.  Xpad consists of independent pad windows, each is\n"
+"basically a text box in which notes can be written."
+msgstr ""
+
+#: gnu/packages/gnome.scm:9831
+msgid "Unicode character picker and font browser"
+msgstr ""
+
+#: gnu/packages/gnome.scm:9833
+msgid ""
+"This program allows you to browse through all the available Unicode\n"
+"characters and categories for the installed fonts, and to examine their\n"
+"detailed properties.  It is an easy way to find the character you might\n"
+"only know by its Unicode name or code point."
+msgstr ""
+
+#: gnu/packages/gnome.scm:9862
+msgid "Web development studio"
+msgstr ""
+
+#: gnu/packages/gnome.scm:9864
+msgid ""
+"Bluefish is an editor targeted towards programmers and web developers,\n"
+"with many options to write web sites, scripts and other code.\n"
+"Bluefish supports many programming and markup languages."
+msgstr ""
+
+#: gnu/packages/gnome.scm:9902
+msgid "Process viewer and system resource monitor for GNOME"
+msgstr ""
+
+#: gnu/packages/gnome.scm:9904
+msgid ""
+"GNOME System Monitor is a GNOME process viewer and system monitor with\n"
+"an attractive, easy-to-use interface.  It has features, such as a tree view\n"
+"for process dependencies, icons for processes, the ability to hide processes,\n"
+"graphical time histories of CPU/memory/swap usage and the ability to\n"
+"kill/reinice processes."
+msgstr ""
+
+#: gnu/packages/gnome.scm:9942
+#, fuzzy
+#| msgid "Python bindings for GTK+"
+msgid "Python client bindings for D-Bus AT-SPI"
+msgstr "Bindoj de Python por GTK+"
+
+#: gnu/packages/gnome.scm:9946
+msgid ""
+"This package includes a python client library for the AT-SPI D-Bus\n"
+"accessibility infrastructure."
+msgstr ""
+
+#: gnu/packages/gnome.scm:10014
+msgid "Screen reader for individuals who are blind or visually impaired"
+msgstr ""
+
+#: gnu/packages/gnome.scm:10017
+msgid ""
+"Orca is a screen reader that provides access to the graphical desktop\n"
+"via speech and refreshable braille.  Orca works with applications and toolkits\n"
+"that support the Assistive Technology Service Provider Interface (AT-SPI)."
+msgstr ""
+
+#: gnu/packages/gnome.scm:10072
+msgid "GNOME's alternative spell checker"
+msgstr ""
+
+#: gnu/packages/gnome.scm:10074
+msgid ""
+"gspell provides a flexible API to add spell-checking to a GTK+\n"
+"application.  It provides a GObject API, spell-checking to text entries and\n"
+"text views, and buttons to choose the language."
+msgstr ""
+
+#: gnu/packages/gnome.scm:10116
+msgid "Project management software for the GNOME desktop"
+msgstr ""
+
+#: gnu/packages/gnome.scm:10118
+msgid ""
+"GNOME Planner is a project management tool based on the Work Breakdown\n"
+"Structure (WBS).  Its goal is to enable you to easily plan projects.  Based on\n"
+"the resources, tasks, and constraints that you define, Planner generates\n"
+"various views into a project.  For example, Planner can show a Gantt chart of\n"
+"the project.  It can show a detailed summary of tasks including their\n"
+"duration, cost, and current progress.  It can also show a report of resource\n"
+"utilization that highlights under-utilized and over-utilized resources.  These\n"
+"views can be printed as PDF or PostScript files, or exported to HTML."
+msgstr ""
+
+#: gnu/packages/gnome.scm:10189
+msgid "GNOME music playing application"
+msgstr ""
+
+#: gnu/packages/gnome.scm:10191
+msgid ""
+"Lollypop is a music player designed to play well with GNOME desktop.\n"
+"Lollypop plays audio formats such as mp3, mp4, ogg and flac and gets information\n"
+"from artists and tracks from the web.  It also fetches cover artworks\n"
+"automatically and it can stream songs from online music services and charts."
+msgstr ""
+
+#: gnu/packages/gnome.scm:10214
+msgid "Video effects for Cheese and other GNOME applications"
+msgstr ""
+
+#: gnu/packages/gnome.scm:10216
+msgid ""
+"A collection of GStreamer video filters and effects to be used in\n"
+"photo-booth-like software, such as Cheese."
+msgstr ""
+
+#: gnu/packages/gnome.scm:10290
+msgid "Webcam photo booth software for GNOME"
+msgstr ""
+
+#: gnu/packages/gnome.scm:10292
+msgid ""
+"Cheese uses your webcam to take photos and videos.  Cheese can also\n"
+"apply fancy special effects and lets you share the fun with others."
+msgstr ""
+
+#: gnu/packages/gnome.scm:10329
+msgid "Audio music cd ripper"
+msgstr ""
+
+#: gnu/packages/gnome.scm:10330
+msgid ""
+"Sound Juicer extracts audio from compact discs and convert it\n"
+"into audio files that a personal computer or digital audio player can play.\n"
+"It supports ripping to any audio codec supported by a GStreamer plugin, such as\n"
+"mp3, Ogg Vorbis and FLAC"
+msgstr ""
+
+#: gnu/packages/gnome.scm:10384
+msgid "Convert between audio formats with a graphical interface"
+msgstr ""
+
+#: gnu/packages/gnome.scm:10386
+msgid ""
+"SoundConverter supports converting between many audio formats including\n"
+"Opus, Ogg Vorbis, FLAC and more.  It supports parallel conversion, and\n"
+"configurable file renaming. "
+msgstr ""
+
+#: gnu/packages/gnome.scm:10432
+msgid "Tool to help prevent repetitive strain injury (RSI)"
+msgstr ""
+
+#: gnu/packages/gnome.scm:10434
+msgid ""
+"Workrave is a program that assists in the recovery and prevention of\n"
+"repetitive strain injury (@dfn{RSI}).  The program frequently alerts you to take\n"
+"micro-pauses and rest breaks, and restricts you to your daily limit."
+msgstr ""
+
+#: gnu/packages/gnome.scm:10474
+msgid "GNOME hexadecimal editor"
+msgstr ""
+
+#: gnu/packages/gnome.scm:10475
+msgid ""
+"The GHex program can view and edit files in two ways:\n"
+"hexadecimal or ASCII.  It is useful for editing binary files in general."
+msgstr ""
+
+#: gnu/packages/gnome.scm:10513
+msgid "Companion library to GObject and Gtk+"
+msgstr ""
+
+#: gnu/packages/gnome.scm:10514
+msgid ""
+"The libdazzle library is a companion library to GObject and\n"
+"Gtk+.  It provides various features that the authors wish were in the\n"
+"underlying library but cannot for various reasons.  In most cases, they are\n"
+"wildly out of scope for those libraries.  In other cases, they are not quite\n"
+"generic enough to work for everyone."
+msgstr ""
+
+#: gnu/packages/gnome.scm:10583
+msgid "Manage your email, contacts and schedule"
+msgstr ""
+
+#: gnu/packages/gnome.scm:10584
+msgid ""
+"Evolution is a personal information management application\n"
+"that provides integrated mail, calendaring and address book\n"
+"functionality."
+msgstr ""
+
+#: gnu/packages/gnome.scm:10634
+msgid "GNOME image viewer and browser"
+msgstr ""
+
+#: gnu/packages/gnome.scm:10635
+msgid ""
+"GThumb is an image viewer, browser, organizer, editor and\n"
+"advanced image management tool"
+msgstr ""
+
+#: gnu/packages/gnome.scm:10686
+msgid "Store and run multiple GNOME terminals in one window"
+msgstr ""
+
+#: gnu/packages/gnome.scm:10688
+msgid ""
+"Terminator allows you to run multiple GNOME terminals in a grid and\n"
+"+tabs, and it supports drag and drop re-ordering of terminals."
+msgstr ""
+
+#: gnu/packages/gnome.scm:10734
+msgid "Library full of GTK+ widgets for mobile phones"
+msgstr ""
+
+#: gnu/packages/gnome.scm:10735
+msgid ""
+"The aim of the handy library is to help with developing user\n"
+"interfaces for mobile devices using GTK+.  It provides responsive GTK+ widgets\n"
+"for usage on small and big screens."
+msgstr ""
+
+#: gnu/packages/gnome.scm:10784
+msgid "GLib wrapper around the libgit2 Git access library"
+msgstr ""
+
+#: gnu/packages/gnome.scm:10785
+msgid ""
+"libgit2-glib is a GLib wrapper library around the libgit2 Git\n"
+"access library.  It only implements the core plumbing functions, not really the\n"
+"higher level porcelain stuff."
+msgstr ""
+
+#: gnu/packages/gnome.scm:10848
+#, fuzzy
+#| msgid "Graphical user interface for chess programs"
+msgid "Graphical user interface for git"
+msgstr "Grafikinterfacon por ŝak-programarojn"
+
+#: gnu/packages/gnome.scm:10850
+msgid ""
+"gitg is a graphical user interface for git.  It aims at being a small,\n"
+"fast and convenient tool to visualize the history of git repositories.\n"
+"Besides visualization, gitg also provides several utilities to manage your\n"
+"repository and commit your work."
+msgstr ""
+
+#: gnu/packages/gnome.scm:10887
+msgid "File alteration monitor"
+msgstr ""
+
+#: gnu/packages/gnome.scm:10889
+msgid ""
+"Gamin is a file and directory monitoring system defined to be a subset\n"
+"of the FAM (File Alteration Monitor) system.  This is a service provided by a\n"
+"library which detects when a file or a directory has been modified."
+msgstr ""
+
+#: gnu/packages/gnome.scm:10924
+msgid "Mahjongg tile-matching game"
+msgstr ""
+
+#: gnu/packages/gnome.scm:10925
+msgid ""
+"GNOME Mahjongg is a game based on the classic Chinese\n"
+"tile-matching game Mahjong.  It features multiple board layouts, tile themes,\n"
+"and a high score table."
+msgstr ""
+
+#: gnu/packages/gnome.scm:10962
+msgid "GNOME Extra Themes"
+msgstr ""
+
+#: gnu/packages/gnome.scm:10963
+msgid ""
+"This package provides themes and related elements that don't\n"
+"really fit in other upstream packages.  It offers legacy support for GTK+ 2\n"
+"versions of Adwaita, Adwaita-dark and HighContrast themes.  It also provides\n"
+"index files needed for Adwaita to be used outside of GNOME."
+msgstr ""
+
+#: gnu/packages/gnome.scm:11000
+msgid "Note-taking application for the GNOME desktop"
+msgstr ""
+
+#: gnu/packages/gnome.scm:11002
+msgid ""
+"Gnote is a note-taking application written for the GNOME desktop\n"
+"environment."
+msgstr ""
+
+#: gnu/packages/gnome.scm:11055
+msgid "Simple IRC Client"
+msgstr ""
+
+#: gnu/packages/gnome.scm:11057
+msgid ""
+"Polari is a simple Internet Relay Chat (IRC) client that is designed to\n"
+"integrate seamlessly with the GNOME desktop."
+msgstr ""
+
+#: gnu/packages/gnome.scm:11109
+msgid "View, access, and manage remote and virtual systems"
+msgstr ""
+
+#: gnu/packages/gnome.scm:11110
+msgid ""
+"GNOME Boxes is a simple application to view, access, and\n"
+"manage remote and virtual systems.  Note that this application requires the\n"
+"@code{libvirt} and @code{virtlog} daemons to run.  Use the command\n"
+"@command{info '(guix) Virtualization Services'} to learn how to configure\n"
+"these services on the Guix System."
+msgstr ""
+
+#: gnu/packages/gnome.scm:11190
+msgid "GNOME email application built around conversations"
+msgstr ""
+
+#: gnu/packages/gnome.scm:11192
+msgid ""
+"Geary collects related messages together into conversations,\n"
+"making it easy to find and follow your discussions.  Full-text and keyword\n"
+"search makes it easy to find the email you are looking for.  Geary's\n"
+"full-featured composer lets you send rich, styled text with images, links, and\n"
+"lists, but also send lightweight, easy to read text messages.  Geary\n"
+"automatically picks up your existing GNOME Online Accounts, and adding more is\n"
+"easy.  Geary has a clean, fast, modern interface that works like you want it\n"
+"to."
+msgstr ""
+
+#: gnu/packages/gnome.scm:11235
+msgid "Program for creating labels and business cards"
+msgstr ""
+
+#: gnu/packages/gnome.scm:11237
+msgid ""
+"gLabels is a program for creating labels and business cards.  It is\n"
+"designed to work with various laser/ink-jet peel-off label and business\n"
+"card sheets that you’ll find at most office supply stores."
+msgstr ""
+
+#: gnu/packages/gnome.scm:11277
+msgid "LaTeX editor for the GNOME desktop"
+msgstr ""
+
+#: gnu/packages/gnome.scm:11279
+msgid ""
+"GNOME LaTeX is a LaTeX editor for the GNOME desktop.  It has features\n"
+"such as build tools, completion of LaTeX commands, structure navigation,\n"
+"symbol tables, document templates, project management, spell-checking, menus\n"
+"and toolbars."
+msgstr ""
+
+#: gnu/packages/gnome.scm:11336
+msgid "DBus daemon and utility for configuring gaming mice"
+msgstr ""
+
+#: gnu/packages/gnome.scm:11337
+msgid ""
+"libratbag provides @command{ratbagd}, a DBus daemon to\n"
+"configure input devices, mainly gaming mice.  The daemon provides a generic\n"
+"way to access the various features exposed by these mice and abstracts away\n"
+"hardware-specific and kernel-specific quirks.  There is also the\n"
+"@command{ratbagctl} command line interface for configuring devices.\n"
+"\n"
+"libratbag currently supports devices from Logitech, Etekcity, GSkill, Roccat,\n"
+"Steelseries.\n"
+"\n"
+"The ratbagd DBus service can be enabled by adding the following service to\n"
+"your operating-system definition:\n"
+"\n"
+"  (simple-service 'ratbagd dbus-root-service-type (list libratbag))"
+msgstr ""
+
+#: gnu/packages/gnome.scm:11405
+msgid "Configure bindings and LEDs on gaming mice"
+msgstr ""
+
+#: gnu/packages/gnome.scm:11406
+msgid ""
+"Piper is a GTK+ application for configuring gaming mice with\n"
+"onboard configuration for key bindings via libratbag.  Piper requires\n"
+"a @command{ratbagd} daemon running with root privileges.  It can be run\n"
+"manually as root, but is preferably configured as a DBus service that can\n"
+"launch on demand.  This can be configured by enabling the following service,\n"
+"provided there is a DBus service present:\n"
+"\n"
+"  (simple-service 'ratbagd dbus-root-service-type (list libratbag))"
+msgstr ""
+
+#: gnu/packages/gnome.scm:11463
+msgid "GNOME audio player for transcription"
+msgstr ""
+
+#: gnu/packages/gnome.scm:11464
+msgid ""
+"Parlatype is an audio player for the GNOME desktop\n"
+"environment.  Its main purpose is the manual transcription of spoken\n"
+"audio files."
+msgstr ""
+
+#: gnu/packages/gnome.scm:11491
+msgid "JSON-RPC library for GLib"
+msgstr ""
+
+#: gnu/packages/gnome.scm:11492
+msgid ""
+"Jsonrpc-GLib is a library to communicate with JSON-RPC based\n"
+"peers in either a synchronous or asynchronous fashion.  It also allows\n"
+"communicating using the GVariant serialization format instead of JSON when\n"
+"both peers support it.  You might want that when communicating on a single\n"
+"host to avoid parser overhead and memory-allocator fragmentation."
+msgstr ""
+
+#: gnu/packages/gnome.scm:11525
+msgid "Haptic/visual/audio feedback via DBus"
+msgstr ""
+
+#: gnu/packages/gnome.scm:11526
+msgid ""
+"Feedbackd provides a DBus daemon to act on events to provide\n"
+"haptic, visual and audio feedback.  It offers the libfeedbackd library and\n"
+"GObject introspection bindings."
+msgstr ""
+
+#: gnu/packages/gnome.scm:11574
+msgid "System-wide performance profiler for GNU/Linux"
+msgstr ""
+
+#: gnu/packages/gnome.scm:11576
+msgid ""
+"Sysprof performs detailed, accurate, and fast CPU profiling of an entire\n"
+"GNU/Linux system including the kernel and all user-space applications.  This\n"
+"helps find the function(s) in which a program spends most of its time.\n"
+"\n"
+"It uses the kernel's built-in @code{ptrace} feature and handles shared\n"
+"libraries.  Applications do not need to be recompiled--or even restarted."
+msgstr ""
+
+#: gnu/packages/gnome.scm:11646
+msgid "Toolsmith for GNOME-based applications"
+msgstr ""
+
+#: gnu/packages/gnome.scm:11647
+msgid ""
+"Builder aims to be an integrated development\n"
+"environment (IDE) for writing GNOME-based software.  It features fuzzy search,\n"
+"auto-completion, a mini code map, documentation browsing, Git integration, an\n"
+"integrated profiler via Sysprof, debugging support, and more."
+msgstr ""
+
+#: gnu/packages/gnome.scm:11715
+msgid "Manga reader for GNOME"
+msgstr ""
+
+#: gnu/packages/gnome.scm:11716
+msgid ""
+"Komikku is an online/offline manga reader for GNOME,\n"
+"developed with the aim of being used with the Librem 5 phone."
+msgstr ""
+
+#: gnu/packages/gnome.scm:11791
+#, fuzzy
+#| msgid "Monitor file accesses"
+msgid "Uniform data access"
+msgstr "Observi dosier-alirojn"
+
+#: gnu/packages/gnome.scm:11793
+msgid ""
+"GNU Data Access (GDA) is an attempt to provide uniform access to\n"
+"different kinds of data sources (databases, information servers, mail spools,\n"
+"etc).  It is a complete architecture that provides all you need to access\n"
+"your data."
+msgstr ""
+
+#: gnu/packages/gnome.scm:11839
+msgid "Translation making program"
+msgstr ""
+
+#: gnu/packages/gnome.scm:11841
+msgid ""
+"gtranslator is a quite comfortable gettext po/po.gz/(g)mo files editor\n"
+"for the GNOME 3.x platform with many features.  It aims to be a very complete\n"
+"editing environment for translation issues within the GNU gettext/GNOME desktop\n"
+"world."
+msgstr ""
+
+#: gnu/packages/gnuzilla.scm:146
+msgid "Mozilla javascript engine"
+msgstr "Ĵavaskripta maŝino de Mozilla"
+
+#: gnu/packages/gnuzilla.scm:147
+msgid ""
+"SpiderMonkey is Mozilla's JavaScript engine written\n"
+"in C/C++."
+msgstr ""
+
+#: gnu/packages/gnuzilla.scm:1144
 msgid "Entirely free browser derived from Mozilla Firefox"
 msgstr "Tute libera foliumilo derivita de Mozilla Firefox"
 
-#: gnu/packages/gnuzilla.scm:334
+#: gnu/packages/gnuzilla.scm:1146
 msgid ""
 "IceCat is the GNU version of the Firefox browser.  It is entirely free\n"
 "software, which does not recommend non-free plugins and addons.  It also\n"
-"features built-in privacy-protecting features."
+"features built-in privacy-protecting features.\n"
+"\n"
+"WARNING: IceCat 78 has not yet been released by the upstream IceCat project.\n"
+"This is a preview release, and does not currently meet the privacy-respecting\n"
+"standards of the IceCat project."
 msgstr ""
 
-#: gnu/packages/gtk.scm:65
+#: gnu/packages/gnuzilla.scm:1469
+msgid "Rebranded Mozilla Thunderbird email client"
+msgstr ""
+
+#: gnu/packages/gnuzilla.scm:1471
+msgid ""
+"This package provides an email client built based on Mozilla\n"
+"Thunderbird.  It supports email, news feeds, chat, calendar and contacts."
+msgstr ""
+
+#: gnu/packages/gnuzilla.scm:1510
+msgid "Tool to extract passwords from Mozilla profiles"
+msgstr ""
+
+#: gnu/packages/gnuzilla.scm:1511
+msgid ""
+"Firefox Decrypt is a tool to extract passwords from\n"
+"Mozilla (Firefox, Waterfox, Thunderbird, SeaMonkey) profiles."
+msgstr ""
+
+#: gnu/packages/gtk.scm:114
 msgid "GNOME accessibility toolkit"
 msgstr "Alireca ilaro de GNOME"
 
-#: gnu/packages/gtk.scm:67
+#: gnu/packages/gtk.scm:116
 msgid ""
 "ATK provides the set of accessibility interfaces that are implemented\n"
 "by other toolkits and applications.  Using the ATK interfaces, accessibility\n"
 "tools have full access to view and control running applications."
 msgstr ""
 
-#: gnu/packages/gtk.scm:105
+#: gnu/packages/gtk.scm:157
 msgid "2D graphics library"
 msgstr "2D-bildiga biblioteko"
 
-#: gnu/packages/gtk.scm:107
+#: gnu/packages/gtk.scm:159
 msgid ""
 "Cairo is a 2D graphics library with support for multiple output devices.\n"
 "Currently supported output targets include the X Window System (via both\n"
@@ -813,44 +9990,82 @@ msgid ""
 "PostScript and PDF.  Operations in cairo including stroking and filling cubic\n"
 "Bézier splines, transforming and compositing translucent images, and\n"
 "antialiased text rendering.  All drawing operations can be transformed by any\n"
-"affine transformation (scale, rotation, shear, etc.)"
+"affine transformation (scale, rotation, shear, etc.)."
 msgstr ""
 
-#: gnu/packages/gtk.scm:145
+#: gnu/packages/gtk.scm:187
+#, fuzzy
+#| msgid "2D graphics library"
+msgid "2D graphics library (with X11 support)"
+msgstr "2D-bildiga biblioteko"
+
+#: gnu/packages/gtk.scm:222
 msgid "OpenType text shaping engine"
 msgstr "Teksto-formiga maŝino OpenType"
 
-#: gnu/packages/gtk.scm:147
+#: gnu/packages/gtk.scm:224
 msgid "HarfBuzz is an OpenType text shaping engine."
 msgstr "HarfBuzz estas tekst-formiga maŝino OpenType."
 
-#: gnu/packages/gtk.scm:178
+#: gnu/packages/gtk.scm:252
+msgid "Double-Array Trie Library"
+msgstr ""
+
+#: gnu/packages/gtk.scm:253
+msgid ""
+"Libdatrie is an implementation of double-array structure for\n"
+"representing trie.  Trie is a kind of digital search tree."
+msgstr ""
+
+#: gnu/packages/gtk.scm:283
+msgid "Thai language support library"
+msgstr ""
+
+#: gnu/packages/gtk.scm:284
+msgid ""
+"LibThai is a set of Thai language support routines aimed to\n"
+"ease developers’ tasks to incorporate Thai language support in their\n"
+"applications."
+msgstr ""
+
+#: gnu/packages/gtk.scm:333
 msgid "GNOME text and font handling library"
 msgstr "Biblioteko de GNOME por traktado de teksto kaj tiparo"
 
-#: gnu/packages/gtk.scm:180
+#: gnu/packages/gtk.scm:335
 msgid ""
 "Pango is the core text and font handling library used in GNOME\n"
 "applications.  It has extensive support for the different writing systems\n"
 "used throughout the world."
 msgstr ""
 
-#: gnu/packages/gtk.scm:206
+#: gnu/packages/gtk.scm:376
 msgid "Obsolete pango functions"
 msgstr "Malrekomendindaj funkcioj de Pango"
 
-#: gnu/packages/gtk.scm:207
+#: gnu/packages/gtk.scm:377
 msgid ""
 "Pangox was a X backend to pango.  It is now obsolete and no\n"
 "longer provided by recent pango releases.  pangox-compat provides the\n"
 "functions which were removed."
 msgstr ""
 
-#: gnu/packages/gtk.scm:258
+#: gnu/packages/gtk.scm:412
+msgid "GTK+ widget for interactive graph-like environments"
+msgstr ""
+
+#: gnu/packages/gtk.scm:414
+msgid ""
+"Ganv is an interactive GTK+ widget for interactive “boxes and lines” or\n"
+"graph-like environments, e.g. modular synths or finite state machine\n"
+"diagrams."
+msgstr ""
+
+#: gnu/packages/gtk.scm:468
 msgid "Widget that extends the standard GTK+ 2.x 'GtkTextView' widget"
 msgstr "Fenestraĵo kiu pliriĉigas la ordinaran 'GtkTextView'  de GTK+ 2.x"
 
-#: gnu/packages/gtk.scm:260
+#: gnu/packages/gtk.scm:470
 msgid ""
 "GtkSourceView is a portable C library that extends the standard GTK+\n"
 "framework for multiline text editing with support for configurable syntax\n"
@@ -858,41 +10073,58 @@ msgid ""
 "printing and other features typical of a source code editor."
 msgstr ""
 
-#: gnu/packages/gtk.scm:290
+#: gnu/packages/gtk.scm:519
+msgid "GNOME source code widget"
+msgstr ""
+
+#: gnu/packages/gtk.scm:520
+msgid ""
+"GtkSourceView is a text widget that extends the standard\n"
+"GTK+ text widget GtkTextView.  It improves GtkTextView by implementing syntax\n"
+"highlighting and other features typical of a source code editor."
+msgstr ""
+
+#: gnu/packages/gtk.scm:591
 msgid "GNOME image loading and manipulation library"
 msgstr "Biblioteko de GNOME por ŝargi kaj manipuli bildojn"
 
-#: gnu/packages/gtk.scm:292
+#: gnu/packages/gtk.scm:593
 msgid ""
 "GdkPixbuf is a library for image loading and manipulation developed\n"
 "in the GNOME project."
 msgstr ""
 
-#: gnu/packages/gtk.scm:320
+#: gnu/packages/gtk.scm:627
+#, fuzzy
+#| msgid "GNOME image loading and manipulation library"
+msgid "GNOME image loading and manipulation library, with SVG support"
+msgstr "Biblioteko de GNOME por ŝargi kaj manipuli bildojn"
+
+#: gnu/packages/gtk.scm:691
 msgid "Assistive Technology Service Provider Interface, core components"
 msgstr "'Asista Teknologia Serv-Provizila Interfaco', ĉefaj elementoj"
 
-#: gnu/packages/gtk.scm:322
+#: gnu/packages/gtk.scm:693
 msgid ""
 "The Assistive Technology Service Provider Interface, core components,\n"
 "is part of the GNOME accessibility project."
 msgstr ""
 
-#: gnu/packages/gtk.scm:349
+#: gnu/packages/gtk.scm:748
 msgid "Assistive Technology Service Provider Interface, ATK bindings"
 msgstr "'Asista Teknologia Serv-Provizila Interfaco', bindoj de ATK"
 
-#: gnu/packages/gtk.scm:351
+#: gnu/packages/gtk.scm:750
 msgid ""
 "The Assistive Technology Service Provider Interface\n"
 "is part of the GNOME accessibility project."
 msgstr ""
 
-#: gnu/packages/gtk.scm:387
+#: gnu/packages/gtk.scm:815
 msgid "Cross-platform toolkit for creating graphical user interfaces"
 msgstr "Plursistema ilaro por krei grafik-uzantajn interfacojn"
 
-#: gnu/packages/gtk.scm:389
+#: gnu/packages/gtk.scm:817
 msgid ""
 "GTK+, or the GIMP Toolkit, is a multi-platform toolkit for creating\n"
 "graphical user interfaces.  Offering a complete set of widgets, GTK+ is\n"
@@ -900,11 +10132,11 @@ msgid ""
 "application suites."
 msgstr ""
 
-#: gnu/packages/gtk.scm:494
+#: gnu/packages/gtk.scm:960
 msgid "Cairo bindings for GNU Guile"
 msgstr "Bindoj de Cairo por GNU Guile"
 
-#: gnu/packages/gtk.scm:496
+#: gnu/packages/gtk.scm:962
 msgid ""
 "Guile-Cairo wraps the Cairo graphics library for Guile Scheme.\n"
 "Guile-Cairo is complete, wrapping almost all of the Cairo API.  It is API\n"
@@ -914,41 +10146,78 @@ msgid ""
 "exceptions, macros, and a dynamic programming environment."
 msgstr ""
 
-#: gnu/packages/gtk.scm:531
+#: gnu/packages/gtk.scm:1023
+msgid "Render SVG images using Cairo from Guile"
+msgstr ""
+
+#: gnu/packages/gtk.scm:1025
+msgid ""
+"Guile-RSVG wraps the RSVG library for Guile, allowing you to render SVG\n"
+"images onto Cairo surfaces."
+msgstr ""
+
+#: gnu/packages/gtk.scm:1095
+#, fuzzy
+#| msgid "Create charts and graphs in Guile"
+msgid "Create SVG or PDF presentations in Guile"
+msgstr "Krei diagramojn kaj grafikaĵojn en Guile"
+
+#: gnu/packages/gtk.scm:1097
+msgid ""
+"Guile-Present defines a declarative vocabulary for presentations,\n"
+"together with tools to render presentation documents as SVG or PDF.\n"
+"Guile-Present can be used to make presentations programmatically, but also\n"
+"includes a tools to generate PDF presentations out of Org mode and Texinfo\n"
+"documents."
+msgstr ""
+
+#: gnu/packages/gtk.scm:1164
+#, fuzzy
+#| msgid "Graphical user interface for chess programs"
+msgid "Guile interface for GTK+ programming for GNOME"
+msgstr "Grafikinterfacon por ŝak-programarojn"
+
+#: gnu/packages/gtk.scm:1166
+msgid ""
+"Includes guile-clutter, guile-gnome-gstreamer,\n"
+"guile-gnome-platform (GNOME developer libraries), and guile-gtksourceview."
+msgstr ""
+
+#: gnu/packages/gtk.scm:1199
 msgid "C++ bindings to the Cairo 2D graphics library"
 msgstr "Bindoj de C++ por la 2D-grafika biblioteko Cairo"
 
-#: gnu/packages/gtk.scm:533
+#: gnu/packages/gtk.scm:1201
 msgid ""
 "Cairomm provides a C++ programming interface to the Cairo 2D graphics\n"
 "library."
 msgstr ""
 
-#: gnu/packages/gtk.scm:557
+#: gnu/packages/gtk.scm:1242
 msgid "C++ interface to the Pango text rendering library"
 msgstr "Interfaco C++ por la tekst-bildiga biblioteko Pango"
 
-#: gnu/packages/gtk.scm:559
+#: gnu/packages/gtk.scm:1244
 msgid ""
 "Pangomm provides a C++ programming interface to the Pango text rendering\n"
 "library."
 msgstr ""
 
-#: gnu/packages/gtk.scm:580
+#: gnu/packages/gtk.scm:1284
 msgid "C++ interface to the ATK accessibility library"
 msgstr "Interfaco C++ por la alirebla biblioteko ATK"
 
-#: gnu/packages/gtk.scm:582
+#: gnu/packages/gtk.scm:1286
 msgid ""
 "ATKmm provides a C++ programming interface to the ATK accessibility\n"
 "toolkit."
 msgstr ""
 
-#: gnu/packages/gtk.scm:608
+#: gnu/packages/gtk.scm:1327
 msgid "C++ interface to the GTK+ graphical user interface library"
 msgstr "Interfaco C++ por la grafik-uzanta interfaca biblioteko GTK+"
 
-#: gnu/packages/gtk.scm:610
+#: gnu/packages/gtk.scm:1329
 msgid ""
 "gtkmm is the official C++ interface for the popular GUI library GTK+.\n"
 "Highlights include typesafe callbacks, and a comprehensive set of widgets that\n"
@@ -957,30 +10226,259 @@ msgid ""
 "extensive documentation, including API reference and a tutorial."
 msgstr ""
 
-#: gnu/packages/gtk.scm:672
+#: gnu/packages/gtk.scm:1377
+#, fuzzy
+#| msgid "Widget that extends the standard GTK+ 2.x 'GtkTextView' widget"
+msgid "C++ interface to the GTK+ 'GtkTextView' widget"
+msgstr "Fenestraĵo kiu pliriĉigas la ordinaran 'GtkTextView'  de GTK+ 2.x"
+
+#: gnu/packages/gtk.scm:1379
+msgid ""
+"gtksourceviewmm is a portable C++ library that extends the standard GTK+\n"
+"framework for multiline text editing with support for configurable syntax\n"
+"highlighting, unlimited undo/redo, search and replace, a completion framework,\n"
+"printing and other features typical of a source code editor."
+msgstr ""
+
+#: gnu/packages/gtk.scm:1409
 msgid "Python bindings for cairo"
 msgstr "Bindoj de Python por Cairo"
 
-#: gnu/packages/gtk.scm:674
+#: gnu/packages/gtk.scm:1411
 msgid "Pycairo is a set of Python bindings for the Cairo graphics library."
 msgstr ""
 
-#: gnu/packages/gtk.scm:736
+#: gnu/packages/gtk.scm:1496
 msgid "Python bindings for GTK+"
 msgstr "Bindoj de Python por GTK+"
 
-#: gnu/packages/gtk.scm:738
+#: gnu/packages/gtk.scm:1498
 msgid ""
 "PyGTK allows you to write full featured GTK programs in Python.  It is\n"
-"targetted at GTK 2.x, and can be used in conjunction with gnome-python to\n"
+"targeted at GTK 2.x, and can be used in conjunction with gnome-python to\n"
 "write GNOME applications."
 msgstr ""
 
-#: gnu/packages/guile.scm:99 gnu/packages/guile.scm:166
+#: gnu/packages/gtk.scm:1522
+#, fuzzy
+#| msgid "C++ bindings to the Cairo 2D graphics library"
+msgid "Perl interface to the cairo 2d vector graphics library"
+msgstr "Bindoj de C++ por la 2D-grafika biblioteko Cairo"
+
+#: gnu/packages/gtk.scm:1523
+msgid ""
+"Cairo provides Perl bindings for the vector graphics library\n"
+"cairo.  It supports multiple output targets, including PNG, PDF and SVG.  Cairo\n"
+"produces identical output on all those targets."
+msgstr ""
+
+#: gnu/packages/gtk.scm:1558
+#, fuzzy
+#| msgid "C++ interface to the ATK accessibility library"
+msgid "Perl interface to the 2.x series of the Gimp Toolkit library"
+msgstr "Interfaco C++ por la alirebla biblioteko ATK"
+
+#: gnu/packages/gtk.scm:1559
+msgid ""
+"Perl bindings to the 2.x series of the Gtk+ widget set.\n"
+"This module allows you to write graphical user interfaces in a Perlish and\n"
+"object-oriented way, freeing you from the casting and memory management in C,\n"
+"yet remaining very close in spirit to original API."
+msgstr ""
+
+#: gnu/packages/gtk.scm:1586
+msgid "Layout and render international text"
+msgstr ""
+
+#: gnu/packages/gtk.scm:1587
+msgid ""
+"Pango is a library for laying out and rendering text, with an\n"
+"emphasis on internationalization.  Pango can be used anywhere that text layout\n"
+"is needed, but using Pango in conjunction with Cairo and/or Gtk2 provides a\n"
+"complete solution with high quality text handling and graphics rendering.\n"
+"\n"
+"Dynamically loaded modules handle text layout for particular combinations of\n"
+"script and font backend.  Pango provides a wide selection of modules, including\n"
+"modules for Hebrew, Arabic, Hangul, Thai, and a number of Indic scripts.\n"
+"Virtually all of the world's major scripts are supported.\n"
+"\n"
+"In addition to the low level layout rendering routines, Pango includes\n"
+"@code{Pango::Layout}, a high level driver for laying out entire blocks of text,\n"
+"and routines to assist in editing internationalized text."
+msgstr ""
+
+#: gnu/packages/gtk.scm:1641
+msgid "Library for minimalistic gtk+3 user interfaces"
+msgstr ""
+
+#: gnu/packages/gtk.scm:1642
+msgid ""
+"Girara is a library that implements a user interface that\n"
+"focuses on simplicity and minimalism.  Currently based on GTK+, a\n"
+"cross-platform widget toolkit, it provides an interface that focuses on three\n"
+"main components: a so-called view widget that represents the actual\n"
+"application, an input bar that is used to execute commands of the\n"
+"application and the status bar which provides the user with current\n"
+"information."
+msgstr ""
+
+#: gnu/packages/gtk.scm:1741
+msgid "Documentation generator from C source code"
+msgstr ""
+
+#: gnu/packages/gtk.scm:1743
+msgid ""
+"GTK-Doc generates API documentation from comments added to C code.  It is\n"
+"typically used to document the public API of GTK+ and GNOME libraries, but it\n"
+"can also be used to document application code."
+msgstr ""
+
+#: gnu/packages/gtk.scm:1771
+#, fuzzy
+#| msgid "Python bindings for GTK+"
+msgid "Theming engines for GTK+ 2.x"
+msgstr "Bindoj de Python por GTK+"
+
+#: gnu/packages/gtk.scm:1773
+msgid ""
+"This package contains the standard GTK+ 2.x theming engines including\n"
+"Clearlooks, Crux, High Contrast, Industrial, LighthouseBlue, Metal, Mist,\n"
+"Redmond95 and ThinIce."
+msgstr ""
+
+#: gnu/packages/gtk.scm:1801
+msgid "Cairo-based theming engine for GTK+ 2.x"
+msgstr ""
+
+#: gnu/packages/gtk.scm:1803
+msgid ""
+"Murrine is a cairo-based GTK+ theming engine.  It is named after the\n"
+"glass artworks done by Venicians glass blowers."
+msgstr ""
+
+#: gnu/packages/gtk.scm:1830
+msgid "Spell-checking addon for GTK's TextView widget"
+msgstr ""
+
+#: gnu/packages/gtk.scm:1832
+msgid ""
+"GtkSpell provides word-processor-style highlighting and replacement of\n"
+"misspelled words in a GtkTextView widget."
+msgstr ""
+
+#: gnu/packages/gtk.scm:1858
+msgid "Lightweight GTK+ clipboard manager"
+msgstr ""
+
+#: gnu/packages/gtk.scm:1860
+msgid ""
+"ClipIt is a clipboard manager with features such as a history, search\n"
+"thereof, global hotkeys and clipboard item actions.  It was forked from\n"
+"Parcellite and adds bugfixes and features."
+msgstr ""
+
+#: gnu/packages/gtk.scm:1893
+msgid "Thin layer of graphic data types"
+msgstr ""
+
+#: gnu/packages/gtk.scm:1894
+msgid ""
+"Graphene provides graphic types and their relative API; it\n"
+"does not deal with windowing system surfaces, drawing, scene graphs, or input."
+msgstr ""
+
+#: gnu/packages/gtk.scm:1919
+msgid "Gtk+ widget for dealing with 2-D tabular data"
+msgstr ""
+
+#: gnu/packages/gtk.scm:1921
+msgid ""
+"GNU Spread Sheet Widget is a library for Gtk+ which provides a widget for\n"
+"viewing and manipulating 2 dimensional tabular data in a manner similar to many\n"
+"popular spread sheet programs."
+msgstr ""
+
+#: gnu/packages/gtk.scm:1949
+msgid "System tray volume applet"
+msgstr ""
+
+#: gnu/packages/gtk.scm:1951
+msgid ""
+"Volume Icon is a volume indicator and control applet for @acronym{the\n"
+"Advanced Linux Sound Architecture, ALSA}.  It sits in the system tray,\n"
+"independent of your desktop environment, and supports global key bindings."
+msgstr ""
+
+#: gnu/packages/gtk.scm:1994
+msgid "GTK+ dialog boxes for shell scripts"
+msgstr ""
+
+#: gnu/packages/gtk.scm:1996
+msgid ""
+"This program allows you to display GTK+ dialog boxes from command line or\n"
+"shell scripts.  Example of how to use @code{yad} can be consulted at\n"
+"@url{https://sourceforge.net/p/yad-dialog/wiki/browse_pages/}."
+msgstr ""
+
+#: gnu/packages/gtk.scm:2053
+#, fuzzy
+#| msgid "Library for accessing zip files"
+msgid "Library for passing menus over DBus"
+msgstr "Biblioteko por aliri zip-dosierojn"
+
+#: gnu/packages/gtk.scm:2054
+msgid ""
+"@code{libdbusmenu} passes a menu structure across DBus so\n"
+"that a program can create a menu simply without worrying about how it is\n"
+"displayed on the other side of the bus."
+msgstr ""
+
+#: gnu/packages/gtk.scm:2079
+msgid ""
+"Library to create Wayland desktop components using the Layer\n"
+"Shell protocol"
+msgstr ""
+
+#: gnu/packages/gtk.scm:2081
+msgid ""
+"Layer Shell is a Wayland protocol for desktop shell\n"
+"components, such as panels, notifications and wallpapers.  It can be used to\n"
+"anchor windows to a corner or edge of the output, or stretch them across the\n"
+"entire output.  It supports all Layer Shell features including popups and\n"
+"popovers."
+msgstr ""
+
+#: gnu/packages/gtk.scm:2128
+#, fuzzy
+#| msgid "Python bindings for GTK+"
+msgid "Canvas widget for GTK+"
+msgstr "Bindoj de Python por GTK+"
+
+#: gnu/packages/gtk.scm:2129
+msgid ""
+"GooCanvas is a canvas widget for GTK+ that uses the cairo 2D\n"
+"library for drawing."
+msgstr ""
+
+#: gnu/packages/gtk.scm:2193
+msgid "Spreadsheet widget for GTK+"
+msgstr ""
+
+#: gnu/packages/gtk.scm:2194
+msgid ""
+"GtkSheet is a matrix widget for GTK+.  It consists of an\n"
+"scrollable grid of cells where you can allocate text.  Cell contents can be\n"
+"edited interactively through a specially designed entry, GtkItemEntry.  It is\n"
+"also a container subclass, allowing you to display buttons, images and any\n"
+"other widget in it.  You can also set many attributes such as border,\n"
+"foreground and background colors, text justification and more."
+msgstr ""
+
+#: gnu/packages/guile.scm:127 gnu/packages/guile.scm:222
 msgid "Scheme implementation intended especially for extensions"
 msgstr "Realigo de Scheme celata speciale por aldonoj"
 
-#: gnu/packages/guile.scm:101 gnu/packages/guile.scm:168
+#: gnu/packages/guile.scm:129 gnu/packages/guile.scm:224
 msgid ""
 "Guile is the GNU Ubiquitous Intelligent Language for Extensions, the\n"
 "official extension language of the GNU system.  It is an implementation of\n"
@@ -989,103 +10487,295 @@ msgid ""
 "without requiring the source code to be rewritten."
 msgstr ""
 
-#: gnu/packages/guile.scm:211
-msgid "Framework for building readers for GNU Guile"
-msgstr "Framo por konstrui legilojn por GNU Guile"
+#: gnu/packages/guile.scm:397
+#, fuzzy
+#| msgid "Cairo bindings for GNU Guile"
+msgid "Line editing support for GNU Guile"
+msgstr "Bindoj de Cairo por GNU Guile"
 
-#: gnu/packages/guile.scm:213
+#: gnu/packages/guile.scm:399
 msgid ""
-"Guile-Reader is a simple framework for building readers for GNU Guile.\n"
-"\n"
-"The idea is to make it easy to build procedures that extend Guile’s read\n"
-"procedure.  Readers supporting various syntax variants can easily be written,\n"
-"possibly by re-using existing “token readers” of a standard Scheme\n"
-"readers.  For example, it is used to implement Skribilo’s R5RS-derived\n"
-"document syntax.\n"
+"This module provides line editing support via the Readline library for\n"
+"GNU@tie{}Guile.  Use the @code{(ice-9 readline)} module and call its\n"
+"@code{activate-readline} procedure to enable it."
+msgstr ""
+
+#: gnu/packages/guile.scm:533
+msgid "JSON module for Guile"
+msgstr "Modulo JSON por Guile"
+
+#: gnu/packages/guile.scm:535
+msgid ""
+"Guile-JSON supports parsing and building JSON documents according to the\n"
+"specification.  These are the main features:\n"
 "\n"
-"Guile-Reader’s approach is similar to Common Lisp’s “read table”, but\n"
-"hopefully more powerful and flexible (for instance, one may instantiate as\n"
-"many readers as needed)."
+"@itemize\n"
+"@item Strictly complies to @uref{http://json.org, specification}.\n"
+"@item Build JSON documents programmatically via macros.\n"
+"@item Unicode support for strings.\n"
+"@item Allows JSON pretty printing.\n"
+"@end itemize\n"
+msgstr ""
+
+#: gnu/packages/guile.scm:636
+msgid "Guile bindings to the GDBM library via Guile's FFI"
+msgstr ""
+
+#: gnu/packages/guile.scm:638
+msgid ""
+"Guile bindings to the GDBM key-value storage system, using\n"
+"Guile's foreign function interface."
 msgstr ""
 
-#: gnu/packages/guile.scm:275
-msgid "Guile bindings to ncurses"
+#: gnu/packages/guile.scm:673
+msgid "Access SQLite databases from Guile"
+msgstr ""
+
+#: gnu/packages/guile.scm:675
+#, fuzzy
+#| msgid "This package provides tools for manipulating ext2/ext3/ext4 file systems."
+msgid "This package provides Guile bindings to the SQLite database system."
+msgstr "Tiu ĉi pako provizas ilojn por manipuli dosiersistemojn ext2/ext3/ext4."
+
+#: gnu/packages/guile.scm:719
+msgid "Structured access to bytevector contents for Guile"
+msgstr ""
+
+#: gnu/packages/guile.scm:721
+msgid ""
+"Guile bytestructures offers a system imitating the type system\n"
+"of the C programming language, to be used on bytevectors.  C's type\n"
+"system works on raw memory, and Guile works on bytevectors which are\n"
+"an abstraction over raw memory.  It's also more powerful than the C\n"
+"type system, elevating types to first-class status."
+msgstr ""
+
+#: gnu/packages/guile.scm:762
+#, fuzzy
+#| msgid "Guile bindings to ncurses"
+msgid "Guile bindings for libgit2"
 msgstr "Bindoj de Guile por ncurses"
 
-#: gnu/packages/guile.scm:277
+#: gnu/packages/guile.scm:764
 msgid ""
-"guile-ncurses provides Guile language bindings for the ncurses\n"
-"library."
+"This package provides Guile bindings to libgit2, a library to\n"
+"manipulate repositories of the Git version control system."
 msgstr ""
-"guile-ncurses provizas lingvo-bindojn de Guile por la biblioteko\n"
-"ncurses."
 
-#: gnu/packages/guile.scm:297
-msgid "Run jobs at scheduled times"
-msgstr "Lanĉi taskojn je antaŭplanitaj horoj"
+#: gnu/packages/guile.scm:815
+#, fuzzy
+#| msgid "Guile bindings to ncurses"
+msgid "Guile bindings to zlib"
+msgstr "Bindoj de Guile por ncurses"
 
-#: gnu/packages/guile.scm:299
+#: gnu/packages/guile.scm:817
 msgid ""
-"GNU Mcron is a complete replacement for Vixie cron.  It is used to run\n"
-"tasks on a schedule, such as every hour or every Monday.  Mcron is written in\n"
-"Guile, so its configuration can be written in Scheme; the original cron\n"
-"format is also supported."
+"This package provides Guile bindings for zlib, a lossless\n"
+"data-compression library.  The bindings are written in pure Scheme by using\n"
+"Guile's foreign function interface."
 msgstr ""
 
-#: gnu/packages/guile.scm:327
-msgid "Collection of useful Guile Scheme modules"
-msgstr "Aro da utilaj moduloj de Guile Scheme"
+#: gnu/packages/guile.scm:851
+#, fuzzy
+#| msgid "Guile bindings to ncurses"
+msgid "Guile bindings to lzlib"
+msgstr "Bindoj de Guile por ncurses"
 
-#: gnu/packages/guile.scm:329
+#: gnu/packages/guile.scm:853
 msgid ""
-"Guile-Lib is intended as an accumulation place for pure-scheme Guile\n"
-"modules, allowing for people to cooperate integrating their generic Guile\n"
-"modules into a coherent library.  Think \"a down-scaled, limited-scope CPAN\n"
-"for Guile\"."
+"This package provides Guile bindings for lzlib, a C library for\n"
+"in-memory LZMA compression and decompression.  The bindings are written in\n"
+"pure Scheme by using Guile's foreign function interface."
 msgstr ""
 
-#: gnu/packages/guile.scm:360
-msgid "JSON module for Guile"
-msgstr "Modulo JSON por Guile"
+#: gnu/packages/imagemagick.scm:117 gnu/packages/imagemagick.scm:221
+msgid "Create, edit, compose, or convert bitmap images"
+msgstr "Krei, redakti, kunmeti, aŭ konverti bitmapajn bildojn"
 
-#: gnu/packages/guile.scm:362
+#: gnu/packages/imagemagick.scm:119
 msgid ""
-"Guile-json supports parsing and building JSON documents according to the\n"
-"http:://json.org specification.  These are the main features:\n"
-"- Strictly complies to http://json.org specification.\n"
-"- Build JSON documents programmatically via macros.\n"
-"- Unicode support for strings.\n"
-"- Allows JSON pretty printing."
+"ImageMagick is a software suite to create, edit, compose, or convert\n"
+"bitmap images.  It can read and write images in a variety of formats (over 100)\n"
+"including DPX, EXR, GIF, JPEG, JPEG-2000, PDF, PhotoCD, PNG, Postscript, SVG,\n"
+"and TIFF.  Use ImageMagick to resize, flip, mirror, rotate, distort, shear and\n"
+"transform images, adjust image colors, apply various special effects, or draw\n"
+"text, lines, polygons, ellipses and Bézier curves."
 msgstr ""
 
-#: gnu/packages/image.scm:59
+#: gnu/packages/imagemagick.scm:166
+msgid "Perl interface to ImageMagick"
+msgstr ""
+
+#: gnu/packages/imagemagick.scm:167
+msgid ""
+"This Perl extension allows the reading, manipulation and\n"
+"writing of a large number of image file formats using the ImageMagick library.\n"
+"Use it to create, edit, compose, or convert bitmap images from within a Perl\n"
+"script."
+msgstr ""
+
+#: gnu/packages/imagemagick.scm:223
+msgid ""
+"GraphicsMagick provides a comprehensive collection of utilities,\n"
+"programming interfaces, and GUIs, to support file format conversion, image\n"
+"processing, and 2D vector rendering."
+msgstr ""
+
+#: gnu/packages/image.scm:121
+msgid "Image Quality Assessment"
+msgstr ""
+
+#: gnu/packages/image.scm:122
+msgid ""
+"IQA is a C library for objectively measuring image/video\n"
+"quality.  It implements many popular algorithms, such as MS-SSIM, MS-SSIM*,\n"
+"SIMM, MSE, and PSNR.  It is designed to be fast, accurate, and reliable.  All\n"
+"code is Valgrind-clean and unit tested."
+msgstr ""
+
+#: gnu/packages/image.scm:153
 msgid "Library for handling PNG files"
 msgstr "Biblioteko por trakti dosierojn PNG"
 
-#: gnu/packages/image.scm:61
+#: gnu/packages/image.scm:155
 msgid ""
 "Libpng is the official PNG (Portable Network Graphics) reference\n"
 "library.  It supports almost all PNG features and is extensible."
 msgstr ""
 
-#: gnu/packages/image.scm:77
+#: gnu/packages/image.scm:219
+msgid "APNG patch for libpng"
+msgstr ""
+
+#: gnu/packages/image.scm:221
+msgid ""
+"APNG (Animated Portable Network Graphics) is an unofficial\n"
+"extension of the APNG (Portable Network Graphics) format.\n"
+"APNG patch provides APNG support to libpng."
+msgstr ""
+
+#: gnu/packages/image.scm:276
+msgid "Utility to compress PNG files"
+msgstr ""
+
+#: gnu/packages/image.scm:277
+msgid ""
+"Pngcrush optimizes @acronym{PNG, Portable Network Graphics}\n"
+"images.  It can further losslessly compress them by as much as 40%."
+msgstr ""
+
+#: gnu/packages/image.scm:331
+msgid "Pretty small png library"
+msgstr ""
+
+#: gnu/packages/image.scm:332
+msgid ""
+"A pretty small png library.\n"
+"Currently all documentation resides in @file{pnglite.h}."
+msgstr ""
+
+#: gnu/packages/image.scm:353
+msgid "Image palette quantization library"
+msgstr ""
+
+#: gnu/packages/image.scm:354
+msgid ""
+"libimagequant is a small, portable C library for\n"
+"high-quality conversion of RGBA images to 8-bit indexed-color (palette)\n"
+"images.  This library can significantly reduces file sizes and powers pngquant\n"
+"and other PNG optimizers."
+msgstr ""
+
+#: gnu/packages/image.scm:386
+#, fuzzy
+#| msgid "Tools and library for working with GIF images"
+msgid "Utility and library for lossy compressing PNG images"
+msgstr "Iloj kaj biblioteko por labori kun bildoj GIF"
+
+#: gnu/packages/image.scm:387
+msgid ""
+"pngquant is a PNG compressor that significantly reduces file\n"
+"sizes by converting images to a more efficient 8-bit PNG format with alpha\n"
+"channel (often 60-80% smaller than 24/32-bit PNG files).  Compressed images\n"
+"are fully standards-compliant and are supported by all web browsers and\n"
+"operating systems.\n"
+"\n"
+"Features:\n"
+"@enumerate\n"
+"@item High-quality palette generation using a combination of vector\n"
+"      quantization algorithms.\n"
+"@item Unique adaptive dithering algorithm that adds less noise to images\n"
+"      than the standard Floyd-Steinberg.\n"
+"@item Easy to integrate with shell scripts, GUIs and server-side software.\n"
+"@item Fast mode for real-time processing/large numbers of images.\n"
+"@end enumerate"
+msgstr ""
+
+#: gnu/packages/image.scm:415
 msgid "Library for handling JPEG files"
 msgstr "Biblioteko por trakti dosierojn JPEG"
 
-#: gnu/packages/image.scm:79
+#: gnu/packages/image.scm:417
 msgid ""
 "Libjpeg implements JPEG image encoding, decoding, and transcoding.\n"
 "JPEG is a standardized compression method for full-color and gray-scale\n"
 "images.\n"
-"The included programs provide conversion between the JPEG format and\n"
-"image files in PBMPLUS PPM/PGM, GIF, BMP, and Targa file formats."
+"It also includes programs that provide conversion between the JPEG format and\n"
+"image files in PBMPLUS PPM/PGM, GIF, BMP, and Targa file formats, as well as\n"
+"lossless JPEG manipulations such as rotation, scaling or cropping:\n"
+"@enumerate\n"
+"@item cjpeg\n"
+"@item djpeg\n"
+"@item jpegtran\n"
+"@item rdjpgcom\n"
+"@item wrjpgcom\n"
+"@end enumerate"
+msgstr ""
+
+#: gnu/packages/image.scm:510
+#, fuzzy
+#| msgid "Curses Implementation of the Glk API"
+msgid "Implementation of the JPEG XR standard"
+msgstr "Realigo curses de la API Glk"
+
+#: gnu/packages/image.scm:511
+msgid ""
+"JPEG XR is an approved ISO/IEC International standard (its\n"
+"official designation is ISO/IEC 29199-2). This library is an implementation of that standard."
 msgstr ""
 
-#: gnu/packages/image.scm:116
+#: gnu/packages/image.scm:533
+msgid "Optimize JPEG images"
+msgstr ""
+
+#: gnu/packages/image.scm:535
+msgid ""
+"jpegoptim provides lossless optimization (based on optimizing\n"
+"the Huffman tables) and \"lossy\" optimization based on setting\n"
+"maximum quality factor."
+msgstr ""
+
+#: gnu/packages/image.scm:560
+#, fuzzy
+#| msgid "Library for handling PNG files"
+msgid "Library for handling Mac OS icns resource files"
+msgstr "Biblioteko por trakti dosierojn PNG"
+
+#: gnu/packages/image.scm:562
+msgid ""
+"Libicns is a library for the manipulation of Mac OS IconFamily resource\n"
+"type files (ICNS).  @command{icns2png} and @command{png2icns} are provided to\n"
+"convert between PNG and ICNS. @command{icns2png} will extract image files from\n"
+"ICNS files under names like \"Foo_48x48x32.png\" useful for installing for use\n"
+"with .desktop files.  Additionally, @command{icontainer2png} is provided for\n"
+"extracting icontainer icon files."
+msgstr ""
+
+#: gnu/packages/image.scm:596
 msgid "Library for handling TIFF files"
 msgstr "Biblioteko por trakti dosierojn TIFF"
 
-#: gnu/packages/image.scm:118
+#: gnu/packages/image.scm:598
 msgid ""
 "Libtiff provides support for the Tag Image File Format (TIFF), a format\n"
 "used for storing image data.\n"
@@ -1093,28 +10783,30 @@ msgid ""
 "collection of tools for doing simple manipulations of TIFF images."
 msgstr ""
 
-#: gnu/packages/image.scm:148
-msgid "Library for reading images in the Microsoft WMF format"
-msgstr "Biblioteko por legi bildojn laŭ la formo Microsoft WMF"
+#: gnu/packages/image.scm:655
+msgid "Library and tools for image processing and analysis"
+msgstr ""
 
-#: gnu/packages/image.scm:150
+#: gnu/packages/image.scm:657
 msgid ""
-"libwmf is a library for reading vector images in Microsoft's native\n"
-"Windows Metafile Format (WMF) and for either (a) displaying them in, e.g., an X\n"
-"window; or (b) converting them to more standard/free file formats such as, e.g.,\n"
-"the W3C's XML-based Scaleable Vector Graphic (SVG) format."
+"Leptonica is a C library and set of command-line tools for efficient\n"
+"image processing and image analysis operations.  It supports rasterop, affine\n"
+"transformations, binary and grayscale morphology, rank order, and convolution,\n"
+"seedfill and connected components, image transformations combining changes in\n"
+"scale and pixel depth, and pixelwise masking, blending, enhancement, and\n"
+"arithmetic ops."
 msgstr ""
 
-#: gnu/packages/image.scm:174
+#: gnu/packages/image.scm:695
 msgid "Decoder of the JBIG2 image compression format"
 msgstr "Dekodilo de la bild-densiga formo JBIG2"
 
-#: gnu/packages/image.scm:176
+#: gnu/packages/image.scm:697
 msgid ""
-"JBIG2 is designed for lossy or lossless encoding of 'bilevel'\n"
-"(1-bit monochrome) images at moderately high resolution, and in\n"
-"particular scanned paper documents.  In this domain it is very\n"
-"efficient, offering compression ratios on the order of 100:1.\n"
+"JBIG2 is designed for lossy or lossless encoding of @code{bilevel} (1-bit\n"
+"monochrome) images at moderately high resolution, and in particular scanned\n"
+"paper documents.  In this domain it is very efficient, offering compression\n"
+"ratios on the order of 100:1.\n"
 "\n"
 "This is a decoder only implementation, and currently is in the alpha\n"
 "stage, meaning it doesn't completely work yet.  However, it is\n"
@@ -1122,11 +10814,44 @@ msgid ""
 "work."
 msgstr ""
 
-#: gnu/packages/image.scm:209
+#: gnu/packages/image.scm:765
+msgid "Lossless compression for bi-level high-resolution images"
+msgstr ""
+
+#: gnu/packages/image.scm:767
+msgid ""
+"JBIG-KIT implements the JBIG1 data compression standard (ITU-T T.82 and\n"
+"ISO/IEC 11544:1993), designed for bi-level (one bit per pixel) images such as\n"
+"black-and-white scanned documents.  It is widely used in fax products, printer\n"
+"firmware and drivers, document management systems, and imaging software.\n"
+"\n"
+"This package provides a static C library of (de)compression functions and some\n"
+"simple command-line converters similar to those provided by netpbm.\n"
+"\n"
+"Two JBIG1 variants are available.  One (@file{jbig.c}) implements nearly all\n"
+"options of the standard but has to keep the full uncompressed image in memory.\n"
+"The other (@file{jbig85.c}) implements just the ITU-T T.85 profile, with\n"
+"memory management optimized for embedded and fax applications.  It buffers\n"
+"only a few lines of the uncompressed image in memory and is able to stream\n"
+"images of initially unknown height."
+msgstr ""
+
+#: gnu/packages/image.scm:799
+msgid "Test files for OpenJPEG"
+msgstr ""
+
+#: gnu/packages/image.scm:800
+msgid ""
+"OpenJPEG-Data contains all files required to run the openjpeg\n"
+"test suite, including conformance tests (following Rec. ITU-T T.803 | ISO/IEC\n"
+"15444-4 procedures), non-regression tests and unit tests."
+msgstr ""
+
+#: gnu/packages/image.scm:828
 msgid "JPEG 2000 codec"
 msgstr "Kodeko JPEG 2000"
 
-#: gnu/packages/image.scm:211
+#: gnu/packages/image.scm:830
 msgid ""
 "The OpenJPEG library is a JPEG 2000 codec written in C.  It has\n"
 "been developed in order to promote the use of JPEG 2000, the new\n"
@@ -1139,11 +10864,11 @@ msgid ""
 "error-resilience, a Java-viewer for j2k-images, ..."
 msgstr ""
 
-#: gnu/packages/image.scm:275
+#: gnu/packages/image.scm:897
 msgid "Tools and library for working with GIF images"
 msgstr "Iloj kaj biblioteko por labori kun bildoj GIF"
 
-#: gnu/packages/image.scm:277
+#: gnu/packages/image.scm:899
 msgid ""
 "GIFLIB is a library for reading and writing GIF images.  It is API and\n"
 "ABI compatible with libungif which was in wide use while the LZW compression\n"
@@ -1151,11 +10876,34 @@ msgid ""
 "compose, and analyze GIF images."
 msgstr ""
 
-#: gnu/packages/image.scm:319
+#: gnu/packages/image.scm:949
+#, fuzzy
+#| msgid "Tools and library for working with GIF images"
+msgid "Library for working with WFM, EMF and EMF+ images"
+msgstr "Iloj kaj biblioteko por labori kun bildoj GIF"
+
+#: gnu/packages/image.scm:950
+msgid ""
+"The libUEMF library is a portable C99 implementation for\n"
+"reading and writing @acronym{WFM, Windows Metafile}, @acronym{EMF, Enhanced\n"
+"Metafile}, and @acronym{EMF+, Enhanced Metafile Plus} files."
+msgstr ""
+
+#: gnu/packages/image.scm:970
+#, fuzzy
+#| msgid "PDF rendering library"
+msgid "GIF decompression library"
+msgstr "PDF-bildiga biblioteko"
+
+#: gnu/packages/image.scm:972
+msgid "libungif is the old GIF decompression library by the GIFLIB project."
+msgstr ""
+
+#: gnu/packages/image.scm:1003
 msgid "Loading, saving, rendering and manipulating image files"
 msgstr "Ŝargi, konservi, bildigi kaj manipuli bild-dosierojn"
 
-#: gnu/packages/image.scm:321
+#: gnu/packages/image.scm:1005
 msgid ""
 "Imlib2 is a library that does image file loading and saving as well as\n"
 "rendering, manipulation, arbitrary polygon support, etc.\n"
@@ -1168,75 +10916,1019 @@ msgid ""
 "more modular, simple, and flexible."
 msgstr ""
 
-#: gnu/packages/image.scm:349
+#: gnu/packages/image.scm:1045
 msgid "Wrapper library for imlib2"
 msgstr "Ĉirkaŭira biblioteko por imlib2"
 
-#: gnu/packages/image.scm:351
+#: gnu/packages/image.scm:1047
 msgid ""
 "Giblib is a simple library which wraps imlib2's context API, avoiding\n"
 "all the context_get/set calls, adds fontstyles to the truetype renderer and\n"
 "supplies a generic doubly-linked list and some string functions."
 msgstr ""
 
-#: gnu/packages/image.scm:395
+#: gnu/packages/image.scm:1135
 msgid "Library for handling popular graphics image formats"
 msgstr "Biblioteko por trakti popularajn grafikaĵajn bild-formojn"
 
-#: gnu/packages/image.scm:397
+#: gnu/packages/image.scm:1137
 msgid ""
 "FreeImage is a library for developers who would like to support popular\n"
 "graphics image formats like PNG, BMP, JPEG, TIFF and others."
 msgstr ""
 
-#: gnu/packages/imagemagick.scm:84
-msgid "Create, edit, compose, or convert bitmap images"
-msgstr "Krei, redakti, kunmeti, aŭ konverti bitmapajn bildojn"
+#: gnu/packages/image.scm:1206
+#, fuzzy
+#| msgid "Cross platform audio library"
+msgid "Computer vision library"
+msgstr "Plursistema son-biblioteko"
 
-#: gnu/packages/imagemagick.scm:86
+#: gnu/packages/image.scm:1208
 msgid ""
-"ImageMagick® is a software suite to create, edit, compose, or convert\n"
-"bitmap images.  It can read and write images in a variety of formats (over 100)\n"
-"including DPX, EXR, GIF, JPEG, JPEG-2000, PDF, PhotoCD, PNG, Postscript, SVG,\n"
-"and TIFF.  Use ImageMagick to resize, flip, mirror, rotate, distort, shear and\n"
-"transform images, adjust image colors, apply various special effects, or draw\n"
-"text, lines, polygons, ellipses and Bézier curves."
+"VIGRA stands for Vision with Generic Algorithms.  It is an image\n"
+"processing and analysis library that puts its main emphasis on customizable\n"
+"algorithms and data structures.  It is particularly strong for\n"
+"multi-dimensional image processing."
 msgstr ""
 
-#: gnu/packages/inkscape.scm:81
+#: gnu/packages/image.scm:1241
+#, fuzzy
+#| msgid "C++ interface to the ATK accessibility library"
+msgid "C interface to the VIGRA computer vision library"
+msgstr "Interfaco C++ por la alirebla biblioteko ATK"
+
+#: gnu/packages/image.scm:1243
+msgid ""
+"This package provides a C interface to the VIGRA C++ computer vision\n"
+"library.  It is designed primarily to ease the implementation of higher-level\n"
+"language bindings to VIGRA."
+msgstr ""
+
+#: gnu/packages/image.scm:1280
+msgid "Lossless and lossy image compression"
+msgstr ""
+
+#: gnu/packages/image.scm:1282
+msgid ""
+"WebP is a new image format that provides lossless and lossy compression\n"
+"for images.  WebP lossless images are 26% smaller in size compared to\n"
+"PNGs.  WebP lossy images are 25-34% smaller in size compared to JPEG images at\n"
+"equivalent SSIM index.  WebP supports lossless transparency (also known as\n"
+"alpha channel) with just 22% additional bytes.  Transparency is also supported\n"
+"with lossy compression and typically provides 3x smaller file sizes compared\n"
+"to PNG when lossy compression is acceptable for the red/green/blue color\n"
+"channels."
+msgstr ""
+
+#: gnu/packages/image.scm:1310
+#, fuzzy
+#| msgid "Library for handling PNG files"
+msgid "Library for handling MNG files"
+msgstr "Biblioteko por trakti dosierojn PNG"
+
+#: gnu/packages/image.scm:1312
+msgid "Libmng is the MNG (Multiple-image Network Graphics) reference library."
+msgstr ""
+
+#: gnu/packages/image.scm:1332
+msgid "Library and command-line utility to manage image metadata"
+msgstr ""
+
+#: gnu/packages/image.scm:1334
+msgid ""
+"Exiv2 is a C++ library and a command line utility to manage image\n"
+"metadata.  It provides fast and easy read and write access to the Exif, IPTC\n"
+"and XMP metadata of images in various formats."
+msgstr ""
+
+#: gnu/packages/image.scm:1402
+#, fuzzy
+#| msgid "Library for manipulating the ogg multimedia format"
+msgid "Library for manipulating many image formats"
+msgstr "Biblioteko por manipuli la aŭdvidan formon ogg"
+
+#: gnu/packages/image.scm:1403
+msgid ""
+"Developer's Image Library (DevIL) is a library to develop\n"
+"applications with support for many types of images.  DevIL can load, save,\n"
+"convert, manipulate, filter and display a wide variety of image formats."
+msgstr ""
+
+#: gnu/packages/image.scm:1436
+msgid "JPEG-2000 library"
+msgstr ""
+
+#: gnu/packages/image.scm:1437
+msgid ""
+"The JasPer Project is an initiative to provide a reference\n"
+"implementation of the codec specified in the JPEG-2000 Part-1 standard (i.e.,\n"
+"ISO/IEC 15444-1)."
+msgstr ""
+
+#: gnu/packages/image.scm:1461
+msgid "Scaling, colorspace conversion, and dithering library"
+msgstr ""
+
+#: gnu/packages/image.scm:1462
+msgid ""
+"Zimg implements the commonly required image processing basics\n"
+"of scaling, colorspace conversion, and depth conversion.  A simple API enables\n"
+"conversion between any supported formats to operate with minimal knowledge from\n"
+"the programmer."
+msgstr ""
+
+#: gnu/packages/image.scm:1496
+msgid "Perceptual image comparison utility"
+msgstr ""
+
+#: gnu/packages/image.scm:1497
+msgid ""
+"PerceptualDiff visually compares two images to determine\n"
+"whether they look alike.  It uses a computational model of the human visual\n"
+"system to detect similarities.  This allows it too see beyond irrelevant\n"
+"differences in file encoding, image quality, and other small variations."
+msgstr ""
+
+#: gnu/packages/image.scm:1537
+msgid "Image and audio steganography"
+msgstr ""
+
+#: gnu/packages/image.scm:1539
+msgid ""
+"Steghide is a program to hide data in various kinds of image and audio\n"
+"files (known as @dfn{steganography}).  Neither color nor sample frequencies are\n"
+"changed, making the embedding resistant against first-order statistical tests."
+msgstr ""
+
+#: gnu/packages/image.scm:1564
+#, fuzzy
+#| msgid "Wrapper library for imlib2"
+msgid "Image library for Extempore"
+msgstr "Ĉirkaŭira biblioteko por imlib2"
+
+#: gnu/packages/image.scm:1566
+msgid ""
+"This package is a collection of assorted single-file libraries.  Of\n"
+"all included libraries only the image loading and decoding library is\n"
+"installed as @code{stb_image}."
+msgstr ""
+
+#: gnu/packages/image.scm:1603
+msgid "Optimizer that recompresses PNG image files to a smaller size"
+msgstr ""
+
+#: gnu/packages/image.scm:1604
+msgid ""
+"OptiPNG is a PNG optimizer that recompresses image\n"
+"files to a smaller size, without losing any information.  This program\n"
+"also converts external formats (BMP, GIF, PNM and TIFF) to optimized\n"
+"PNG, and performs PNG integrity checks and corrections."
+msgstr ""
+
+#: gnu/packages/image.scm:1637
+msgid "Example PNGs for use in test suites"
+msgstr ""
+
+#: gnu/packages/image.scm:1638
+msgid ""
+"Collection of graphics images created to test PNG\n"
+"applications like viewers, converters and editors.  As far as that is\n"
+"possible, all formats supported by the PNG standard are represented."
+msgstr ""
+
+#: gnu/packages/image.scm:1691
+msgid "SIMD-accelerated JPEG image handling library"
+msgstr ""
+
+#: gnu/packages/image.scm:1692
+msgid ""
+"libjpeg-turbo is a JPEG image codec that accelerates baseline\n"
+"JPEG compression and decompression using SIMD instructions: MMX on x86, SSE2 on\n"
+"x86-64, NEON on ARM, and AltiVec on PowerPC processors.  Even on other systems,\n"
+"its highly-optimized Huffman coding routines allow it to outperform libjpeg by\n"
+"a significant amount.\n"
+"libjpeg-turbo implements both the traditional libjpeg API and the less powerful\n"
+"but more straightforward TurboJPEG API, and provides a full-featured Java\n"
+"interface.  It supports color space extensions that allow it to compress from\n"
+"and decompress to 32-bit and big-endian pixel buffers (RGBX, XBGR, etc.)."
+msgstr ""
+
+#: gnu/packages/image.scm:1757
+#, fuzzy
+#| msgid "Library for reading images in the Microsoft WMF format"
+msgid "Library for reading and writing files in the nifti-1 format"
+msgstr "Biblioteko por legi bildojn laŭ la formo Microsoft WMF"
+
+#: gnu/packages/image.scm:1758
+msgid ""
+"Niftilib is a set of i/o libraries for reading and writing\n"
+"files in the nifti-1 data format - a binary file format for storing\n"
+"medical image data, e.g. magnetic resonance image (MRI) and functional MRI\n"
+"(fMRI) brain images."
+msgstr ""
+
+#: gnu/packages/image.scm:1799
+msgid "Color picker"
+msgstr ""
+
+#: gnu/packages/image.scm:1800
+msgid "Gpick is an advanced color picker and palette editing tool."
+msgstr ""
+
+#: gnu/packages/image.scm:1818
+#, fuzzy
+#| msgid "GNOME image loading and manipulation library"
+msgid "IPTC metadata manipulation library"
+msgstr "Biblioteko de GNOME por ŝargi kaj manipuli bildojn"
+
+#: gnu/packages/image.scm:1820
+msgid ""
+"Libiptcdata is a C library for manipulating the International Press\n"
+"Telecommunications Council (@dfn{IPTC}) metadata stored within multimedia files\n"
+"such as images.  This metadata can include captions and keywords, often used by\n"
+"popular photo management applications.  The library provides routines for\n"
+"parsing, viewing, modifying, and saving this metadata."
+msgstr ""
+
+#: gnu/packages/image.scm:1857
+msgid "Powerful yet simple to use screenshot software"
+msgstr ""
+
+#: gnu/packages/image.scm:1858
+msgid ""
+"Flameshot is a screenshot program.\n"
+"Features:\n"
+"\n"
+"@itemize\n"
+"@item Customizable appearance.\n"
+"@item Easy to use.\n"
+"@item In-app screenshot edition.\n"
+"@item DBus interface.\n"
+"@item Upload to Imgur.\n"
+"@end itemize\n"
+msgstr ""
+
+#: gnu/packages/image.scm:1898
+msgid "Edit GIF images and animations"
+msgstr ""
+
+#: gnu/packages/image.scm:1899
+msgid ""
+"Gifsicle is a command-line GIF image manipulation tool that:\n"
+"\n"
+"@itemize\n"
+"@item Provides a batch mode for changing GIFs in place.\n"
+"@item Prints detailed information about GIFs, including comments.\n"
+"@item Control over interlacing, comments, looping, transparency, etc.\n"
+"@item Creates well-behaved GIFs: removes redundant colors, only uses local color\n"
+"tables, etc.\n"
+"@item Shrinks colormaps and change images to use the Web-safe palette.\n"
+"@item Optimizes GIF animations, or unoptimizes them for easier editing.\n"
+"@end itemize\n"
+"\n"
+"Two other programs are included with Gifsicle: @command{gifview} is a\n"
+"lightweight animated-GIF viewer, and @command{gifdiff} compares two GIFs for\n"
+"identical visual appearance."
+msgstr ""
+
+#: gnu/packages/image.scm:1935
+msgid "Convert JPEG images to ASCII"
+msgstr ""
+
+#: gnu/packages/image.scm:1937
+msgid "Jp2a is a small utility that converts JPEG images to ASCII."
+msgstr ""
+
+#: gnu/packages/image.scm:1962
+msgid "Create screenshots from a Wayland compositor"
+msgstr ""
+
+#: gnu/packages/image.scm:1963
+msgid "grim can create screenshots from a Wayland compositor."
+msgstr ""
+
+#: gnu/packages/image.scm:1987
+msgid "Select a region in a Wayland compositor"
+msgstr ""
+
+#: gnu/packages/image.scm:1988
+msgid ""
+"Slurp can select a region in a Wayland compositor and print it\n"
+"to the standard output.  It works well together with grim."
+msgstr ""
+
+#: gnu/packages/image.scm:2021
+msgid "Markup language for representing PNG contents"
+msgstr ""
+
+#: gnu/packages/image.scm:2022
+msgid ""
+"SNG (Scriptable Network Graphics) is a minilanguage designed\n"
+"specifically to represent the entire contents of a PNG (Portable Network\n"
+"Graphics) file in an editable form.  Thus, SNGs representing elaborate\n"
+"graphics images and ancillary chunk data can be readily generated or modified\n"
+"using only text tools.\n"
+"\n"
+"SNG is implemented by a compiler/decompiler called sng that\n"
+"losslessly translates between SNG and PNG."
+msgstr ""
+
+#: gnu/packages/image.scm:2081
+msgid "PNG encoder and decoder in C and C++, without dependencies"
+msgstr ""
+
+#: gnu/packages/image.scm:2082
+msgid ""
+"LodePNG is a PNG image decoder and encoder, all in one,\n"
+"no dependency or linkage required.  It's made for C (ISO C90), and has a C++\n"
+"wrapper with a more convenient interface on top."
+msgstr ""
+
+#: gnu/packages/image.scm:2105
+msgid "Extract and convert bitmaps from Windows icon and cursor files"
+msgstr ""
+
+#: gnu/packages/image.scm:2106
+msgid ""
+"Icoutils are a set of program for extracting and converting\n"
+"bitmaps from Microsoft Windows icon and cursor files.  These files usually\n"
+"have the extension @code{.ico} or @code{.cur}, but they can also be embedded\n"
+"in executables and libraries (@code{.dll}-files).  (Such embedded files are\n"
+"referred to as resources.)\n"
+"\n"
+"Conversion of these files to and from PNG images is done @command{icotool}.\n"
+"@command{extresso} automates these tasks with the help of special resource\n"
+"scripts.  Resources such can be extracted from MS Windows executable and\n"
+"library files with @command{wrestool}.\n"
+"\n"
+"This package can be used to create @code{favicon.ico} files for web sites."
+msgstr ""
+
+#: gnu/packages/image.scm:2152
+msgid "Encode and decode AVIF files"
+msgstr ""
+
+#: gnu/packages/image.scm:2153
+msgid ""
+"Libavif is a C implementation of @acronym{AVIF, the AV1 Image\n"
+"File Format}.  It can encode and decode all YUV formats and bit depths supported\n"
+"by AOM, including with alpha."
+msgstr ""
+
+#: gnu/packages/image.scm:2199
+msgid "Create pixel art and manipulate digital images"
+msgstr ""
+
+#: gnu/packages/image.scm:2201
+msgid ""
+"Mtpaint is a graphic editing program which uses the GTK+ toolkit.\n"
+"It can create and edit indexed palette or 24bit RGB images, offers basic\n"
+"painting and palette manipulation tools.  It also handles JPEG, JPEG2000,\n"
+"GIF, TIFF, WEBP, BMP, PNG, XPM formats."
+msgstr ""
+
+#: gnu/packages/image.scm:2251
+msgid "Organize photos and videos in folders"
+msgstr ""
+
+#: gnu/packages/image.scm:2252
+msgid ""
+"Phockup is a media sorting tool that uses creation date and\n"
+"time information in photos and videos to organize them into folders by year,\n"
+"month and day.  All files which are not images or videos or those which do not\n"
+"have creation date information will be placed in a folder called\n"
+"@file{unknown}."
+msgstr ""
+
+#: gnu/packages/image-viewers.scm:108
+msgid "Fast and light imlib2-based image viewer"
+msgstr ""
+
+#: gnu/packages/image-viewers.scm:110
+msgid ""
+"feh is an X11 image viewer aimed mostly at console users.\n"
+"Unlike most other viewers, it does not have a fancy GUI, but simply\n"
+"displays images.  It can also be used to set the desktop wallpaper.\n"
+"It is controlled via commandline arguments and configurable key/mouse\n"
+"actions."
+msgstr ""
+
+#: gnu/packages/image-viewers.scm:155
+msgid "Lightweight GTK+ based image viewer"
+msgstr ""
+
+#: gnu/packages/image-viewers.scm:157
+msgid ""
+"Geeqie is a lightweight GTK+ based image viewer for Unix like operating\n"
+"systems.  It features: EXIF, IPTC and XMP metadata browsing and editing\n"
+"interoperability; easy integration with other software; geeqie works on files\n"
+"and directories, there is no need to import images; fast preview for many raw\n"
+"image formats; tools for image comparison, sorting and managing photo\n"
+"collection.  Geeqie was initially based on GQview."
+msgstr ""
+
+#: gnu/packages/image-viewers.scm:182
+msgid "Simple and fast image viewer for X"
+msgstr ""
+
+#: gnu/packages/image-viewers.scm:183
+msgid ""
+"gpicview is a lightweight GTK+ 2.x based image viewer.\n"
+"It is the default image viewer on LXDE desktop environment."
+msgstr ""
+
+#: gnu/packages/image-viewers.scm:233
+msgid "Simple X Image Viewer"
+msgstr ""
+
+#: gnu/packages/image-viewers.scm:235
+msgid ""
+"sxiv is an alternative to feh and qiv.  Its primary goal is to\n"
+"provide the most basic features required for fast image viewing.  It has\n"
+"vi key bindings and works nicely with tiling window managers.  Its code\n"
+"base should be kept small and clean to make it easy for you to dig into\n"
+"it and customize it for your needs."
+msgstr ""
+
+#: gnu/packages/image-viewers.scm:277
+msgid "Simple, fast and elegant image viewer"
+msgstr ""
+
+#: gnu/packages/image-viewers.scm:278
+msgid ""
+"Viewnior is an image viewer program.  Created to be simple,\n"
+"fast and elegant.  Its minimalistic interface provides more screenspace for\n"
+"your images.  Among its features are:\n"
+"@enumerate\n"
+"@item Fullscreen & Slideshow\n"
+"@item Rotate, flip, crop, save, delete images\n"
+"@item Animation support\n"
+"@item Browse only selected images\n"
+"@item Navigation window\n"
+"@item Set image as wallpaper (Gnome 2, Gnome 3, XFCE, LXDE, FluxBox, Nitrogen)\n"
+"@item Simple interface\n"
+"@item EXIF and IPTC metadata\n"
+"@item Configurable mouse actions\n"
+"@end enumerate\n"
+msgstr ""
+
+#: gnu/packages/image-viewers.scm:333
+msgid "Render images in the terminal"
+msgstr ""
+
+#: gnu/packages/image-viewers.scm:335
+msgid ""
+"Catimg is a little program that prints images in the terminal.\n"
+"It supports JPEG, PNG and GIF formats."
+msgstr ""
+
+#: gnu/packages/image-viewers.scm:388
+msgid "High dynamic range (HDR) imaging application"
+msgstr ""
+
+#: gnu/packages/image-viewers.scm:390
+msgid ""
+"Luminance HDR (formerly QtPFSGui) is a graphical user interface\n"
+"application that aims to provide a workflow for high dynamic range (HDR)\n"
+"imaging.  It supports several HDR and LDR image formats, and it can:\n"
+"\n"
+"@itemize\n"
+"@item Create an HDR file from a set of images (formats: JPEG, TIFF 8bit and\n"
+"16bit, RAW) of the same scene taken at different exposure setting;\n"
+"@item Save load HDR images;\n"
+"@item Rotate, resize and crop HDR images;\n"
+"@item Tone-map HDR images;\n"
+"@item Copy EXIF data between sets of images.\n"
+"@end itemize\n"
+msgstr ""
+
+#: gnu/packages/image-viewers.scm:487
+msgid "Image viewer for comics"
+msgstr ""
+
+#: gnu/packages/image-viewers.scm:488
+msgid ""
+"MComix is a customizable image viewer that specializes as\n"
+"a comic and manga reader.  It supports a variety of container formats\n"
+"including CBZ, CB7, CBT, LHA.\n"
+"\n"
+"For PDF support, install the @emph{mupdf} package."
+msgstr ""
+
+#: gnu/packages/image-viewers.scm:536
+msgid "Convenient and minimal image viewer"
+msgstr ""
+
+#: gnu/packages/image-viewers.scm:537
+msgid ""
+"qView is a Qt image viewer designed with visually\n"
+"minimalism and usability in mind.  Its features include animated GIF\n"
+"controls, file history, rotation/mirroring, and multithreaded\n"
+"preloading."
+msgstr ""
+
+#: gnu/packages/image-viewers.scm:562
+msgid "Convert images to ANSI/Unicode characters"
+msgstr ""
+
+#: gnu/packages/image-viewers.scm:564
+msgid ""
+"Chafa is a command-line utility that converts all kinds of images,\n"
+"including animated GIFs, into ANSI/Unicode character output that can be\n"
+"displayed in a terminal."
+msgstr ""
+
+#: gnu/packages/image-viewers.scm:614
+#, fuzzy
+#| msgid "Simple mouse-free tiling window manager"
+msgid "Image viewer for tiling window managers"
+msgstr "Simpla mus-libera kaheleca fenestr-administrilo"
+
+#: gnu/packages/image-viewers.scm:615
+msgid ""
+"@code{imv} is a command line image viewer intended for use\n"
+"with tiling window managers.  Features include:\n"
+"\n"
+"@itemize\n"
+"@item Native Wayland and X11 support.\n"
+"@item Support for dozens of image formats including:\n"
+"@itemize\n"
+"@item PNG\n"
+"@item JPEG\n"
+"@item Animated GIFs\n"
+"@item SVG\n"
+"@item TIFF\n"
+"@item Various RAW formats\n"
+"@item Photoshop PSD files\n"
+"@end itemize\n"
+"@item Configurable key bindings and behavior.\n"
+"@item Highly scriptable with IPC via imv-msg.\n"
+"@end itemize\n"
+msgstr ""
+
+#: gnu/packages/image-viewers.scm:684
+msgid "Graphical image viewer for X"
+msgstr ""
+
+#: gnu/packages/image-viewers.scm:686
+msgid ""
+"Quick Image Viewer is a small and fast GDK/Imlib2 image viewer.\n"
+"Features include zoom, maxpect, scale down, fullscreen, slideshow, delete,\n"
+"brightness/contrast/gamma correction, pan with keyboard and mouse, flip,\n"
+"rotate left/right, jump/forward/backward images, filename filter and use it\n"
+"to set X desktop background."
+msgstr ""
+
+#: gnu/packages/inkscape.scm:112 gnu/packages/inkscape.scm:288
 msgid "Vector graphics editor"
 msgstr "Vektor-grafika redaktilo"
 
-#: gnu/packages/inkscape.scm:82
+#: gnu/packages/inkscape.scm:113 gnu/packages/inkscape.scm:289
 msgid ""
 "Inkscape is a vector graphics editor.  What sets Inkscape\n"
 "apart is its use of Scalable Vector Graphics (SVG), an XML-based W3C standard,\n"
 "as the native format."
 msgstr ""
 
-#: gnu/packages/linux.scm:136
-msgid "GNU Linux-Libre kernel headers"
-msgstr "GNU Linux-Libre kernaj kapdosieroj"
+#: gnu/packages/jemalloc.scm:66
+msgid "General-purpose scalable concurrent malloc implementation"
+msgstr ""
 
-#: gnu/packages/linux.scm:137
-msgid "Headers of the Linux-Libre kernel."
-msgstr "Kapdosieroj de la kerno Linux-Libre."
+#: gnu/packages/jemalloc.scm:68
+msgid ""
+"This library providing a malloc(3) implementation that emphasizes\n"
+"fragmentation avoidance and scalable concurrency support."
+msgstr ""
 
-#: gnu/packages/linux.scm:168
-msgid "Tools for loading and managing Linux kernel modules"
-msgstr "Iloj por ŝargi kaj administri linuks-kernajn modulojn"
+#: gnu/packages/key-mon.scm:51
+msgid "Show keyboard and mouse status"
+msgstr ""
+
+#: gnu/packages/key-mon.scm:53
+msgid ""
+"The key-mon utility displays the current keyboard and mouse status.\n"
+"This is useful for teaching and screencasts."
+msgstr ""
+
+#: gnu/packages/less.scm:50
+msgid "Paginator for terminals"
+msgstr ""
+
+#: gnu/packages/less.scm:52
+msgid ""
+"GNU less is a pager, a program that allows you to view large amounts\n"
+"of text in page-sized chunks.  Unlike traditional pagers, it allows both\n"
+"backwards and forwards movement through the document.  It also does not have\n"
+"to read the entire input file before starting, so it starts faster than most\n"
+"text editors."
+msgstr ""
+
+#: gnu/packages/less.scm:99
+msgid "Input filter for less"
+msgstr ""
+
+#: gnu/packages/less.scm:100
+msgid ""
+"To browse files, the excellent viewer @code{less} can be\n"
+"used.  By setting the environment variable @code{LESSOPEN}, less can be\n"
+"enhanced by external filters to become more powerful.  The input filter for\n"
+"less described here is called @code{lesspipe.sh}.  It is able to process a\n"
+"wide variety of file formats.  It enables users to inspect archives and\n"
+"display their contents without having to unpack them before.  The filter is\n"
+"easily extensible for new formats."
+msgstr ""
+
+#: gnu/packages/lesstif.scm:47
+msgid "Clone of the Motif toolkit for the X window system"
+msgstr ""
+
+#: gnu/packages/lesstif.scm:48
+msgid "Clone of the Motif toolkit for the X window system."
+msgstr ""
+
+#: gnu/packages/libreoffice.scm:107
+msgid "General purpose formula parser and interpreter"
+msgstr ""
+
+#: gnu/packages/libreoffice.scm:108
+msgid ""
+"Ixion is a library for calculating the results of formula\n"
+"expressions stored in multiple named targets, or \"cells\".  The cells can\n"
+"be referenced from each other, and the library takes care of resolving\n"
+"their dependencies automatically upon calculation."
+msgstr ""
+
+#: gnu/packages/libreoffice.scm:135
+msgid "File import filter library for spreadsheet documents"
+msgstr ""
+
+#: gnu/packages/libreoffice.scm:136
+msgid ""
+"Orcus is a library that provides a collection of standalone\n"
+"file processing filters.  It is currently focused on providing filters for\n"
+"spreadsheet documents.  The library includes import filters for\n"
+"Microsoft Excel 2007 XML, Microsoft Excel 2003 XML, Open Document Spreadsheet,\n"
+"Plain Text, Gnumeric XML, Generic XML.  It also includes low-level parsers for\n"
+"CSV, CSS and XML."
+msgstr ""
+
+#: gnu/packages/libreoffice.scm:187
+msgid "Convert between any document format supported by LibreOffice"
+msgstr ""
+
+#: gnu/packages/libreoffice.scm:189
+msgid ""
+"Unoconv is a command-line utility to convert documents from any format\n"
+"that LibreOffice can import, to any format it can export.  It can be used for\n"
+"batch processing and can apply custom style templates and filters.\n"
+"\n"
+"Unoconv converts between over a hundred formats, including Open Document\n"
+"Format (@file{.odt}, @file{.ods}, @file{.odp})), Portable Document Format\n"
+"(@file{.pdf}), HTML and XHTML, RTF, DocBook (@file{.xml}), @file{.doc} and\n"
+"@file{.docx}), @file{.xls} and @file{.xlsx}).\n"
+"\n"
+"All required fonts must be installed on the converting system."
+msgstr ""
+
+#: gnu/packages/libreoffice.scm:227
+msgid "Document importer for office suites"
+msgstr ""
+
+#: gnu/packages/libreoffice.scm:228
+msgid ""
+"Librevenge is a base library for writing document import\n"
+"filters.  It has interfaces for text documents, vector graphics,\n"
+"spreadsheets and presentations."
+msgstr ""
+
+#: gnu/packages/libreoffice.scm:255
+msgid "Library for importing WordPerfect documents"
+msgstr ""
+
+#: gnu/packages/libreoffice.scm:256
+msgid ""
+"Libwpd is a C++ library designed to help process\n"
+"WordPerfect documents.  It is most commonly used to import such documents\n"
+"into other word processors."
+msgstr ""
+
+#: gnu/packages/libreoffice.scm:289
+msgid "Library for import of reflowable e-book formats"
+msgstr ""
+
+#: gnu/packages/libreoffice.scm:290
+msgid ""
+"Libe-book is a library and a set of tools for reading and\n"
+"converting various reflowable e-book formats.  Currently supported are:\n"
+"Broad Band eBook, eReader .pdb, FictionBook v. 2 (including zipped files),\n"
+"PalmDoc Ebook, Plucker .pdb, QiOO (mobile format, for java-enabled\n"
+"cellphones), TCR (simple compressed text format), TealDoc, zTXT,\n"
+"ZVR (simple compressed text format)."
+msgstr ""
+
+#: gnu/packages/libreoffice.scm:320
+#, fuzzy
+#| msgid "Wrapper library for imlib2"
+msgid "EPUB generator library for librevenge"
+msgstr "Ĉirkaŭira biblioteko por imlib2"
+
+#: gnu/packages/libreoffice.scm:321
+msgid ""
+"libepubgen is an EPUB generator for librevenge.  It supports\n"
+"librevenge's text document interface and--currently in a very limited\n"
+"way--presentation and vector drawing interfaces."
+msgstr ""
+
+#: gnu/packages/libreoffice.scm:347
+msgid "Library and tools for the WordPerfect Graphics format"
+msgstr ""
+
+#: gnu/packages/libreoffice.scm:348
+msgid ""
+"The libwpg project provides a library and tools for\n"
+"working with graphics in the WPG (WordPerfect Graphics) format."
+msgstr ""
+
+#: gnu/packages/libreoffice.scm:388
+#, fuzzy
+#| msgid "Music Player Daemon client library"
+msgid "CMIS client library"
+msgstr "Klienta biblioteko por \"Music Player Daemon\""
+
+#: gnu/packages/libreoffice.scm:389
+msgid ""
+"LibCMIS is a C++ client library for the CMIS interface.  It\n"
+"allows C++ applications to connect to any ECM behaving as a CMIS server such\n"
+"as Alfresco or Nuxeo."
+msgstr ""
+
+#: gnu/packages/libreoffice.scm:418
+#, fuzzy
+#| msgid "Library for manipulating the ogg multimedia format"
+msgid "Library for parsing the AbiWord format"
+msgstr "Biblioteko por manipuli la aŭdvidan formon ogg"
+
+#: gnu/packages/libreoffice.scm:419
+msgid ""
+"Libabw is a library that parses the file format of\n"
+"AbiWord documents."
+msgstr ""
+
+#: gnu/packages/libreoffice.scm:447
+#, fuzzy
+#| msgid "Library for manipulating the ogg multimedia format"
+msgid "Library for parsing the CorelDRAW format"
+msgstr "Biblioteko por manipuli la aŭdvidan formon ogg"
+
+#: gnu/packages/libreoffice.scm:448
+msgid ""
+"Libcdr is a library that parses the file format of\n"
+"CorelDRAW documents of all versions."
+msgstr ""
+
+#: gnu/packages/libreoffice.scm:481
+#, fuzzy
+#| msgid "Library for manipulating the ogg multimedia format"
+msgid "Library for parsing the Apple Keynote format"
+msgstr "Biblioteko por manipuli la aŭdvidan formon ogg"
+
+#: gnu/packages/libreoffice.scm:482
+msgid ""
+"Libetonyek is a library that parses the file format of\n"
+"Apple Keynote documents.  It currently supports Keynote versions 2 to 5."
+msgstr ""
+
+#: gnu/packages/libreoffice.scm:504
+#, fuzzy
+#| msgid "Library for accessing zip files"
+msgid "Library to access tags for identifying languages"
+msgstr "Biblioteko por aliri zip-dosierojn"
+
+#: gnu/packages/libreoffice.scm:505
+msgid ""
+"Liblangtag implements an interface to work with tags\n"
+"for identifying languages as described in RFC 5646.  It supports the\n"
+"extensions described in RFC6067 and RFC6497, and Extension T for\n"
+"language/locale identifiers as described in the Unicode CLDR\n"
+"standard 21.0.2."
+msgstr ""
+
+#: gnu/packages/libreoffice.scm:525
+#, fuzzy
+#| msgid "Data source abstraction library"
+msgid "Text Categorization library"
+msgstr "Datumar-fonta abstrakta biblioteko"
+
+#: gnu/packages/libreoffice.scm:526
+msgid ""
+"Libexttextcat is an N-Gram-Based Text Categorization\n"
+"library primarily intended for language guessing."
+msgstr ""
+
+#: gnu/packages/libreoffice.scm:567
+#, fuzzy
+#| msgid "Library for manipulating the ogg multimedia format"
+msgid "Library for parsing the FreeHand format"
+msgstr "Biblioteko por manipuli la aŭdvidan formon ogg"
+
+#: gnu/packages/libreoffice.scm:568
+msgid ""
+"Libfreehand is a library that parses the file format of\n"
+"Aldus/Macromedia/Adobe FreeHand documents."
+msgstr ""
+
+#: gnu/packages/libreoffice.scm:594
+#, fuzzy
+#| msgid "Library for reading images in the Microsoft WMF format"
+msgid "Library for parsing the Microsoft Publisher format"
+msgstr "Biblioteko por legi bildojn laŭ la formo Microsoft WMF"
+
+#: gnu/packages/libreoffice.scm:595
+msgid ""
+"Libmspub is a library that parses the file format of\n"
+"Microsoft Publisher documents of all versions."
+msgstr ""
+
+#: gnu/packages/libreoffice.scm:615
+msgid "Language-neutral @code{NUMBERTEXT} and @code{MONEYTEXT} functions"
+msgstr ""
+
+#: gnu/packages/libreoffice.scm:617
+msgid ""
+"The libnumbertext library provides language-neutral @code{NUMBERTEXT}\n"
+"and @code{MONEYTEXT} functions for LibreOffice Calc, available for C++ and\n"
+"Java."
+msgstr ""
+
+#: gnu/packages/libreoffice.scm:645
+#, fuzzy
+#| msgid "Library for manipulating the ogg multimedia format"
+msgid "Library for parsing the PageMaker format"
+msgstr "Biblioteko por manipuli la aŭdvidan formon ogg"
+
+#: gnu/packages/libreoffice.scm:646
+msgid ""
+"Libpagemaker is a library that parses the file format of\n"
+"Aldus/Adobe PageMaker documents.  Currently it only understands documents\n"
+"created by PageMaker version 6.x and 7."
+msgstr ""
+
+#: gnu/packages/libreoffice.scm:676
+#, fuzzy
+#| msgid "Library for reading images in the Microsoft WMF format"
+msgid "Library for parsing the Microsoft Visio format"
+msgstr "Biblioteko por legi bildojn laŭ la formo Microsoft WMF"
+
+#: gnu/packages/libreoffice.scm:677
+msgid ""
+"Libvisio is a library that parses the file format of\n"
+"Microsoft Visio documents of all versions."
+msgstr ""
+
+#: gnu/packages/libreoffice.scm:705
+msgid "ODF (Open Document Format) library"
+msgstr ""
+
+#: gnu/packages/libreoffice.scm:706
+msgid ""
+"Libodfgen is a library for generating documents in the\n"
+"Open Document Format (ODF).  It provides generator implementations for all\n"
+"document interfaces supported by librevenge:\n"
+"text documents, vector drawings, presentations and spreadsheets."
+msgstr ""
+
+#: gnu/packages/libreoffice.scm:733
+msgid "Import library for some old Macintosh text documents"
+msgstr ""
+
+#: gnu/packages/libreoffice.scm:734
+msgid ""
+"Libmwaw contains some import filters for old Macintosh\n"
+"text documents (MacWrite, ClarisWorks, ... ) and for some graphics and\n"
+"spreadsheet documents."
+msgstr ""
+
+#: gnu/packages/libreoffice.scm:757
+msgid "Provides LibreOffice support for old StarOffice documents"
+msgstr ""
+
+#: gnu/packages/libreoffice.scm:758
+msgid ""
+"@code{libstaroffice} is an import filter for the document formats\n"
+"from the old StarOffice (.sdc, .sdw, ...)."
+msgstr ""
+
+#: gnu/packages/libreoffice.scm:783
+msgid "Import library for Microsoft Works text documents"
+msgstr ""
+
+#: gnu/packages/libreoffice.scm:784
+#, fuzzy
+#| msgid "Library for reading images in the Microsoft WMF format"
+msgid ""
+"Libwps is a library for importing files in the Microsoft\n"
+"Works word processor file format."
+msgstr "Biblioteko por legi bildojn laŭ la formo Microsoft WMF"
+
+#: gnu/packages/libreoffice.scm:814
+msgid "Parses file format of Zoner Callisto/Draw documents"
+msgstr ""
+
+#: gnu/packages/libreoffice.scm:815
+msgid ""
+"Libzmf is a library that parses the file format of Zoner\n"
+"Callisto/Draw documents.  Currently it only understands documents created by\n"
+"Zoner Draw version 4 and 5."
+msgstr ""
+
+#: gnu/packages/libreoffice.scm:846
+msgid ""
+"Hunspell is a spell checker and morphological analyzer\n"
+"library and program designed for languages with rich morphology and complex\n"
+"word compounding or character encoding."
+msgstr ""
+
+#. TRANSLATORS: In French, this is "Français classique".
+#: gnu/packages/libreoffice.scm:909
+msgid "Hunspell dictionary for ``classic'' French (recommended)"
+msgstr ""
+
+#. TRANSLATORS: In French, this is "Français moderne".
+#: gnu/packages/libreoffice.scm:914
+msgid "Hunspell dictionary for ``modern'' French"
+msgstr ""
+
+#: gnu/packages/libreoffice.scm:918
+msgid "Hunspell dictionary for the post @dfn{1990 réforme} French"
+msgstr ""
+
+#: gnu/packages/libreoffice.scm:922
+msgid "Hunspell dictionary for all variants of French"
+msgstr ""
+
+#: gnu/packages/libreoffice.scm:966
+msgid "Hunspell dictionary for Polish"
+msgstr ""
+
+#: gnu/packages/libreoffice.scm:990
+#, fuzzy
+#| msgid "PDF rendering library"
+msgid "Hyphenation library"
+msgstr "PDF-bildiga biblioteko"
+
+#: gnu/packages/libreoffice.scm:991
+msgid ""
+"Hyphen is a hyphenation library using TeX hyphenation\n"
+"patterns, which are pre-processed by a perl script."
+msgstr ""
+
+#: gnu/packages/libreoffice.scm:1015
+msgid "Thesaurus"
+msgstr ""
 
-#: gnu/packages/linux.scm:170
+#: gnu/packages/libreoffice.scm:1016
 msgid ""
-"Tools for loading and managing Linux kernel modules, such as `modprobe',\n"
-"`insmod', `lsmod', and more."
+"MyThes is a simple thesaurus that uses a structured text\n"
+"data file and an index file with binary search to look up words and phrases\n"
+"and to return information on pronunciations, meanings and synonyms."
+msgstr ""
+
+#: gnu/packages/libreoffice.scm:1044
+msgid "Library and tools for the QuarkXPress file format"
 msgstr ""
 
-#: gnu/packages/linux.scm:301
+#: gnu/packages/libreoffice.scm:1045
+msgid ""
+"libqxp is a library and a set of tools for reading and\n"
+"converting QuarkXPress file format.  It supports versions 3.1 to 4.1."
+msgstr ""
+
+#: gnu/packages/libreoffice.scm:1260
+msgid "Office suite"
+msgstr ""
+
+#: gnu/packages/libreoffice.scm:1261
+msgid ""
+"LibreOffice is a comprehensive office suite.  It contains\n"
+"a number of components: Writer, a word processor; Calc, a spreadsheet\n"
+"application; Impress, a presentation engine; Draw, a drawing and\n"
+"flowcharting application; Base, a database and database frontend;\n"
+"Math for editing mathematics."
+msgstr ""
+
+#: gnu/packages/linux.scm:561
+msgid "GNU Linux-Libre kernel headers"
+msgstr "GNU Linux-Libre kernaj kapdosieroj"
+
+#: gnu/packages/linux.scm:562
+msgid "Headers of the Linux-Libre kernel."
+msgstr "Kapdosieroj de la kerno Linux-Libre."
+
+#: gnu/packages/linux.scm:845
 msgid "100% free redistribution of a cleaned Linux kernel"
 msgstr "100% libera redistribuo de purigita Linuks-kerno"
 
-#: gnu/packages/linux.scm:303
+#: gnu/packages/linux.scm:847
 msgid ""
 "GNU Linux-Libre is a free (as in freedom) variant of the Linux kernel.\n"
 "It has been modified to remove all non-free binary blobs."
@@ -1244,42 +11936,189 @@ msgstr ""
 "GNU Linux-Libre estas libera variaĵo de la linuksa kerno.\n"
 "Ĝi estas modifita por forigi ĉiujn ne-liberajn ciferecajn senkodumaĵojn."
 
-#: gnu/packages/linux.scm:346
+#: gnu/packages/linux.scm:1053
+msgid "Linux kernel module to perform ACPI method calls"
+msgstr ""
+
+#: gnu/packages/linux.scm:1055
+msgid ""
+"This simple Linux kernel module allows calls from user space to any\n"
+"@acronym{ACPI, Advanced Configuration and Power Interface} method provided by\n"
+"your computer's firmware, by writing to @file{/proc/acpi/call}.  You can pass\n"
+"any number of parameters of types @code{ACPI_INTEGER}, @code{ACPI_STRING},\n"
+"and @code{ACPI_BUFFER}.\n"
+"\n"
+"It grants direct and undocumented access to your hardware that may cause damage\n"
+"and should be used with caution, especially on untested models."
+msgstr ""
+
+#: gnu/packages/linux.scm:1103
+msgid "Linux driver for Realtek USB wireless network adapters"
+msgstr ""
+
+#: gnu/packages/linux.scm:1105
+msgid ""
+"This is Realtek's rtl8812au Linux driver for USB 802.11n wireless\n"
+"network adapters, modified by the aircrack-ng project to support monitor mode\n"
+"and frame injection.  It provides a @code{88XXau} kernel module that supports\n"
+"RTL8812AU, RTL8821AU, and RTL8814AU chips."
+msgstr ""
+
+#: gnu/packages/linux.scm:1141
+msgid "Linux driver for Realtek RTL8821CE wireless network adapters"
+msgstr ""
+
+#: gnu/packages/linux.scm:1142
+msgid ""
+"This is Realtek's RTL8821CE Linux driver for wireless\n"
+"network adapters."
+msgstr ""
+
+#: gnu/packages/linux.scm:1163
+msgid "Kernel module that emulates SCSI devices"
+msgstr ""
+
+#: gnu/packages/linux.scm:1164
+msgid ""
+"VHBA module provides a Virtual (SCSI) HBA, which is the link\n"
+"between the CDemu userspace daemon and linux kernel."
+msgstr ""
+
+#: gnu/packages/linux.scm:1189
+msgid "Kernel module that disables discrete Nvidia graphics cards"
+msgstr ""
+
+#: gnu/packages/linux.scm:1190
+msgid ""
+"The bbswitch module provides a way to toggle the Nvidia\n"
+"graphics card on Optimus laptops."
+msgstr ""
+
+#: gnu/packages/linux.scm:1231
+msgid "Pair of Linux kernel drivers for DDC/CI monitors"
+msgstr ""
+
+#: gnu/packages/linux.scm:1232
+msgid ""
+"This package provides two Linux kernel drivers, ddcci and\n"
+"ddcci-backlight, that allows the control of DDC/CI monitors through the sysfs\n"
+"interface.  The ddcci module creates a character device for each DDC/CI\n"
+"monitors in @file{/dev/bus/ddcci/[I²C busnumber]}.  While the ddcci-backlight\n"
+"module allows the control of the backlight level or luminance property when\n"
+"supported under @file{/sys/class/backlight/}."
+msgstr ""
+
+#: gnu/packages/linux.scm:1257
+msgid "Linux kernel module to create virtual V4L2 video devices"
+msgstr ""
+
+#: gnu/packages/linux.scm:1259
+msgid ""
+"This Linux module creates virtual video devices.  @acronym{V4L2, Video\n"
+"for Linux 2} applications will treat these as ordinary video devices but read\n"
+"video data generated by another application, instead of a hardware device such\n"
+"as a capture card.\n"
+"\n"
+"This lets you apply nifty effects to your Jitsi video, for example, but also\n"
+"allows some more serious things like adding streaming capabilities to an\n"
+"application by hooking GStreamer into the loopback device."
+msgstr ""
+
+#: gnu/packages/linux.scm:1315
 msgid "Pluggable authentication modules for Linux"
 msgstr "Konekteblaj aŭtentikigaj moduloj por Linukso"
 
-#: gnu/packages/linux.scm:348
+#: gnu/packages/linux.scm:1317
 msgid ""
 "A *Free* project to implement OSF's RFC 86.0.\n"
 "Pluggable authentication modules are small shared object files that can\n"
 "be used through the PAM API to perform tasks, like authenticating a user\n"
-"at login.  Local and dynamic reconfiguration are its key features"
+"at login.  Local and dynamic reconfiguration are its key features."
 msgstr ""
 
-#: gnu/packages/linux.scm:375
-msgid "Small utilities that use the proc filesystem"
+#: gnu/packages/linux.scm:1377
+msgid "PAM interface using ctypes"
+msgstr ""
+
+#: gnu/packages/linux.scm:1378
+#, fuzzy
+#| msgid "This package provides an database interface for Perl."
+msgid "This package provides a PAM interface using @code{ctypes}."
+msgstr "Tiu ĉi pako provizas datumbazan interfacon por Perl."
+
+#: gnu/packages/linux.scm:1413
+msgid "Measure system power consumption"
+msgstr ""
+
+#: gnu/packages/linux.scm:1415
+msgid ""
+"Powerstat measures and reports your computer's power consumption in real\n"
+"time.  On mobile PCs, it uses ACPI battery information to measure the power\n"
+"drain of the entire system.\n"
+"\n"
+"Powerstat can also report @acronym{RAPL, Running Average Power Limit} power\n"
+"domain measurements.  These are available only on some hardware such as Intel\n"
+"Sandybridge and newer, and cover only part of the machine's components such as\n"
+"CPU, DRAM, and graphics.  However, they provide accurate and immediate readings\n"
+"and don't require a battery at all.\n"
+"\n"
+"The output is like @command{vmstat} but also shows power consumption statistics:\n"
+"at the end of a run, @command{powerstat} will calculate the average, standard\n"
+"deviation, and minimum and maximum values.  It can show a nice histogram too."
+msgstr ""
+
+#: gnu/packages/linux.scm:1451
+#, fuzzy
+#| msgid "Small utilities that use the proc filesystem"
+msgid "Small utilities that use the proc file system"
 msgstr "Etaj utilaĵoj kiuj uzas la dosiersistemon proc"
 
-#: gnu/packages/linux.scm:377
+#: gnu/packages/linux.scm:1453
 msgid ""
 "This PSmisc package is a set of some small useful utilities that\n"
-"use the proc filesystem.  We're not about changing the world, but\n"
+"use the proc file system.  We're not about changing the world, but\n"
 "providing the system administrator with some help in common tasks."
 msgstr ""
 
-#: gnu/packages/linux.scm:423
+#: gnu/packages/linux.scm:1586
 msgid "Collection of utilities for the Linux kernel"
 msgstr "Aro da utilaĵoj por la Linuks-kerno"
 
-#: gnu/packages/linux.scm:425
-msgid "Util-linux is a random collection of utilities for the Linux kernel."
-msgstr "Util-linux estas hazarda aro da utilaĵoj por la Linuks-kerno."
+#: gnu/packages/linux.scm:1587
+msgid ""
+"Util-linux is a diverse collection of Linux kernel\n"
+"utilities.  It provides dmesg and includes tools for working with file systems,\n"
+"block devices, UUIDs, TTYs, and many other tools."
+msgstr ""
+
+#: gnu/packages/linux.scm:1623
+msgid "PERPETUAL DATE CONVERTER FROM GREGORIAN TO POEE CALENDAR"
+msgstr ""
+
+#: gnu/packages/linux.scm:1625
+msgid ""
+"ddate displays the Discordian date and holidays of a given date.\n"
+"The Discordian calendar was made popular by the \"Illuminatus!\" trilogy\n"
+"by Robert Shea and Robert Anton Wilson."
+msgstr ""
+
+#: gnu/packages/linux.scm:1678
+msgid "Show and modify Linux frame buffer settings"
+msgstr ""
 
-#: gnu/packages/linux.scm:479
+#: gnu/packages/linux.scm:1680
+msgid ""
+"The kernel Linux's @dfn{frame buffers} provide a simple interface to\n"
+"different kinds of graphic displays.  The @command{fbset} utility can query and\n"
+"change various device settings such as depth, virtual resolution, and timing\n"
+"parameters."
+msgstr ""
+
+#: gnu/packages/linux.scm:1723
 msgid "Utilities that give information about processes"
 msgstr "Utilaĵoj kiuj informas pri procezoj"
 
-#: gnu/packages/linux.scm:481
+#: gnu/packages/linux.scm:1725
 msgid ""
 "Procps is the package that has a bunch of small useful utilities\n"
 "that give information about processes using the Linux /proc file system.\n"
@@ -1287,58 +12126,82 @@ msgid ""
 "slabtop, and skill."
 msgstr ""
 
-#: gnu/packages/linux.scm:506
+#: gnu/packages/linux.scm:1779
 msgid "Tools for working with USB devices, such as lsusb"
 msgstr "Iloj por labori kun USB-aparatoj, kiel lsusb"
 
-#: gnu/packages/linux.scm:508
+#: gnu/packages/linux.scm:1781
 msgid "Tools for working with USB devices, such as lsusb."
 msgstr "Iloj por labori kun USB-aparatoj, kiel lsusb."
 
-#: gnu/packages/linux.scm:567
+#: gnu/packages/linux.scm:1857
 msgid "Creating and checking ext2/ext3/ext4 file systems"
 msgstr "Kreo kaj kontrolo de dosiersistemoj ext2/ext3/ext4"
 
-#: gnu/packages/linux.scm:569
+#: gnu/packages/linux.scm:1859
 msgid "This package provides tools for manipulating ext2/ext3/ext4 file systems."
 msgstr "Tiu ĉi pako provizas ilojn por manipuli dosiersistemojn ext2/ext3/ext4."
 
-#: gnu/packages/linux.scm:611
-msgid "Statically-linked fsck.* commands from e2fsprogs"
+#: gnu/packages/linux.scm:1901
+#, fuzzy
+#| msgid "Statically-linked fsck.* commands from e2fsprogs"
+msgid "Statically-linked e2fsck command from e2fsprogs"
 msgstr "Statik-ligitaj komandoj fsck.* el e2fsprogs"
 
-#: gnu/packages/linux.scm:613
+#: gnu/packages/linux.scm:1902
 msgid ""
-"This package provides statically-linked command of fsck.ext[234] taken\n"
+"This package provides statically-linked e2fsck command taken\n"
 "from the e2fsprogs package.  It is meant to be used in initrds."
 msgstr ""
 
-#: gnu/packages/linux.scm:646
+#: gnu/packages/linux.scm:1923
+msgid "Recover deleted files from ext2/3/4 partitions"
+msgstr ""
+
+#: gnu/packages/linux.scm:1925
+msgid ""
+"Extundelete is a set of tools that can recover deleted files from an\n"
+"ext3 or ext4 partition."
+msgstr ""
+
+#: gnu/packages/linux.scm:1956
 msgid "Zero non-allocated regions in ext2/ext3/ext4 file systems"
 msgstr "Neniu ne-rezervita regiono en dosiersistemoj ext2/ext3/ext4"
 
-#: gnu/packages/linux.scm:648
+#: gnu/packages/linux.scm:1958
 msgid ""
-"The zerofree command scans the free blocks in an ext2 file system and\n"
-"fills any non-zero blocks with zeroes.  This is a useful way to make disk\n"
-"images more compressible."
+"Zerofree finds the unallocated blocks with non-zero value content in an\n"
+"ext2, ext3, or ext4 file system and fills them with zeroes (or another value).\n"
+"This is a simple way to make disk images more compressible.\n"
+"Zerofree requires the file system to be unmounted or mounted read-only."
 msgstr ""
 
-#: gnu/packages/linux.scm:667
+#: gnu/packages/linux.scm:1996
 msgid "System call tracer for Linux"
-msgstr "Sistem-voka ŝpursekvilo por Linukso"
+msgstr "Ŝpursekvilo de sistem-vokoj por Linukso"
 
-#: gnu/packages/linux.scm:669
+#: gnu/packages/linux.scm:1998
 msgid ""
 "strace is a system call tracer, i.e. a debugging tool which prints out a\n"
 "trace of all the system calls made by a another process/program."
 msgstr ""
 
-#: gnu/packages/linux.scm:688
+#: gnu/packages/linux.scm:2019
+msgid "Library call tracer for Linux"
+msgstr "Ŝpursekvilo de bibliotekaj vokoj por Linukso"
+
+#: gnu/packages/linux.scm:2021
+msgid ""
+"ltrace intercepts and records dynamic library calls which are called by\n"
+"an executed process and the signals received by that process.  It can also\n"
+"intercept and print the system calls executed by the program."
+msgstr ""
+
+#: gnu/packages/linux.scm:2044
 msgid "The Advanced Linux Sound Architecture libraries"
 msgstr "La bibliotekoj de Altnivela Linuksa Sona Arkitekturo"
 
-#: gnu/packages/linux.scm:690 gnu/packages/linux.scm:732
+#: gnu/packages/linux.scm:2046 gnu/packages/linux.scm:2098
 msgid ""
 "The Advanced Linux Sound Architecture (ALSA) provides audio and\n"
 "MIDI functionality to the Linux-based operating system."
@@ -1346,67 +12209,101 @@ msgstr ""
 "La Altnivela Linuksa Sona Arkitekturo (ALSA) provizas sonan kaj\n"
 "MIDI-an funkciojn por linuks-surbazita operaci-sistemo."
 
-#: gnu/packages/linux.scm:730
+#: gnu/packages/linux.scm:2096
 msgid "Utilities for the Advanced Linux Sound Architecture (ALSA)"
 msgstr "Utilaĵoj por la Altnivela Linuksa Sona Arkitekturo (ALSA)"
 
-#: gnu/packages/linux.scm:754
-msgid "Program to configure the Linux IP packet filtering rules"
+#: gnu/packages/linux.scm:2160
+#, fuzzy
+#| msgid "Utilities for the Advanced Linux Sound Architecture (ALSA)"
+msgid "Plugins for the Advanced Linux Sound Architecture (ALSA)"
+msgstr "Utilaĵoj por la Altnivela Linuksa Sona Arkitekturo (ALSA)"
+
+#: gnu/packages/linux.scm:2162
+msgid ""
+"The Advanced Linux Sound Architecture (ALSA) provides audio and\n"
+"MIDI functionality to the Linux-based operating system.  This package enhances ALSA\n"
+"by providing additional plugins which include: upmixing, downmixing, jackd and\n"
+"pulseaudio support for native alsa applications, format conversion (s16 to a52), and\n"
+"external rate conversion."
+msgstr ""
+
+#: gnu/packages/linux.scm:2210
+#, fuzzy
+#| msgid "Program to configure the Linux IP packet filtering rules"
+msgid "Programs to configure Linux IP packet filtering rules"
 msgstr "Programo por agordi la IP-pakajn filtrajn regulojn de Linukso"
 
-#: gnu/packages/linux.scm:756
+#: gnu/packages/linux.scm:2212
 msgid ""
-"iptables is the userspace command line program used to configure the\n"
-"Linux 2.4.x and later IPv4 packet filtering ruleset.  It is targeted towards\n"
-"system administrators.  Since Network Address Translation is also configured\n"
-"from the packet filter ruleset, iptables is used for this, too.  The iptables\n"
-"package also includes ip6tables.  ip6tables is used for configuring the IPv6\n"
-"packet filter."
+"@command{iptables} is the user-space command line program used to\n"
+"configure the Linux 2.4.x and later IPv4 packet filtering ruleset\n"
+"(@dfn{firewall}), including @dfn{NAT} (Network Address Translation).\n"
+"\n"
+"This package also includes @command{ip6tables}, which is used to configure the\n"
+"IPv6 packet filter.\n"
+"\n"
+"Both commands are targeted at system administrators."
+msgstr ""
+
+#: gnu/packages/linux.scm:2234
+msgid "Lists information about SCSI or NVMe devices in Linux"
 msgstr ""
 
-#: gnu/packages/linux.scm:804
+#: gnu/packages/linux.scm:2237
+msgid ""
+"@command{lsscsi} lists SCSI logical units or SCSI targets.  It can\n"
+"also list NVMe namespaces or controllers and show the relationship between a\n"
+"device's primary node name, its SCSI generic (sg) node name and its kernel\n"
+"name."
+msgstr ""
+
+#: gnu/packages/linux.scm:2259
+msgid "Ethernet bridge frame table administration"
+msgstr ""
+
+#: gnu/packages/linux.scm:2262
+msgid ""
+"ebtables is an application program used to set up and maintain the\n"
+"tables of rules (inside the Linux kernel) that inspect Ethernet frames.  It is\n"
+"analogous to the iptables application, but less complicated, due to the fact\n"
+"that the Ethernet protocol is much simpler than the IP protocol."
+msgstr ""
+
+#: gnu/packages/linux.scm:2316
 msgid "Utilities for controlling TCP/IP networking and traffic in Linux"
 msgstr "Utilaĵoj por regi reton TCP/IP kaj trafikon en Linukso"
 
-#: gnu/packages/linux.scm:806
+#: gnu/packages/linux.scm:2318
 msgid ""
-"Iproute2 is a collection of utilities for controlling TCP/IP\n"
-"networking and traffic with the Linux kernel.\n"
+"Iproute2 is a collection of utilities for controlling TCP/IP networking\n"
+"and traffic with the Linux kernel.  The most important of these are\n"
+"@command{ip}, which configures IPv4 and IPv6, and @command{tc} for traffic\n"
+"control.\n"
 "\n"
 "Most network configuration manuals still refer to ifconfig and route as the\n"
 "primary network configuration tools, but ifconfig is known to behave\n"
-"inadequately in modern network environments.  They should be deprecated, but\n"
-"most distros still include them.  Most network configuration systems make use\n"
-"of ifconfig and thus provide a limited feature set.  The /etc/net project aims\n"
-"to support most modern network technologies, as it doesn't use ifconfig and\n"
-"allows a system administrator to make use of all iproute2 features, including\n"
-"traffic control.\n"
-"\n"
-"iproute2 is usually shipped in a package called iproute or iproute2 and\n"
-"consists of several tools, of which the most important are ip and tc.  ip\n"
-"controls IPv4 and IPv6 configuration and tc stands for traffic control.  Both\n"
-"tools print detailed usage messages and are accompanied by a set of\n"
-"manpages."
+"inadequately in modern network environments, and both should be deprecated."
 msgstr ""
 
-#: gnu/packages/linux.scm:898
+#: gnu/packages/linux.scm:2396
 msgid "Tools for controlling the network subsystem in Linux"
 msgstr "Iloj por regi la retan subsistemon en Linukso"
 
-#: gnu/packages/linux.scm:900
+#: gnu/packages/linux.scm:2398
 msgid ""
 "This package includes the important tools for controlling the network\n"
-"subsystem of the Linux kernel.  This includes arp, hostname, ifconfig,\n"
-"netstat, rarp and route.  Additionally, this package contains utilities\n"
-"relating to particular network hardware types (plipconfig, slattach) and\n"
-"advanced aspects of IP configuration (iptunnel, ipmaddr)."
+"subsystem of the Linux kernel.  This includes arp, ifconfig, netstat, rarp and\n"
+"route.  Additionally, this package contains utilities relating to particular\n"
+"network hardware types (plipconfig, slattach) and advanced aspects of IP\n"
+"configuration (iptunnel, ipmaddr)."
 msgstr ""
 
-#: gnu/packages/linux.scm:933
+#: gnu/packages/linux.scm:2436
 msgid "Library for working with POSIX capabilities"
 msgstr "Biblioteko por labori kun kapabloj POSIX"
 
-#: gnu/packages/linux.scm:935
+#: gnu/packages/linux.scm:2438
 msgid ""
 "Libcap2 provides a programming interface to POSIX capabilities on\n"
 "Linux-based operating systems."
@@ -1414,11 +12311,11 @@ msgstr ""
 "Libcap2 provizas program-interfacon por kapabloj POSIX en\n"
 "operaciumaj sistemoj bazitaj sur Linukso."
 
-#: gnu/packages/linux.scm:967
+#: gnu/packages/linux.scm:2495
 msgid "Manipulate Ethernet bridges"
 msgstr "Manipuli pontojn Ethernet"
 
-#: gnu/packages/linux.scm:969
+#: gnu/packages/linux.scm:2497
 msgid ""
 "Utilities for Linux's Ethernet bridging facilities.  A bridge is a way\n"
 "to connect two Ethernet segments together in a protocol independent way.\n"
@@ -1427,34 +12324,34 @@ msgid ""
 "transparently through a bridge."
 msgstr ""
 
-#: gnu/packages/linux.scm:991
+#: gnu/packages/linux.scm:2546
 msgid "NetLink protocol library suite"
 msgstr "Biblioteka programaro por la protokolo NetLink"
 
-#: gnu/packages/linux.scm:993
+#: gnu/packages/linux.scm:2548
 msgid ""
 "The libnl suite is a collection of libraries providing APIs to netlink\n"
-"protocol based Linux kernel interfaces.  Netlink is an IPC mechanism primarly\n"
+"protocol based Linux kernel interfaces.  Netlink is an IPC mechanism primarily\n"
 "between the kernel and user space processes.  It was designed to be a more\n"
 "flexible successor to ioctl to provide mainly networking related kernel\n"
 "configuration and monitoring interfaces."
 msgstr ""
 
-#: gnu/packages/linux.scm:1023
+#: gnu/packages/linux.scm:2624
 msgid "Tool for configuring wireless devices"
 msgstr "Iloj por agordi linuksajn sendratajn aparatojn"
 
-#: gnu/packages/linux.scm:1025
+#: gnu/packages/linux.scm:2626
 msgid ""
 "iw is a new nl80211 based CLI configuration utility for wireless\n"
-"devices.  It replaces 'iwconfig', which is deprecated."
+"devices.  It replaces @code{iwconfig}, which is deprecated."
 msgstr ""
 
-#: gnu/packages/linux.scm:1052
+#: gnu/packages/linux.scm:2670
 msgid "Analyze power consumption on Intel-based laptops"
 msgstr "Analizi konsumon de potenco en tekkomputiloj bazitaj sur Intel"
 
-#: gnu/packages/linux.scm:1054
+#: gnu/packages/linux.scm:2672
 msgid ""
 "PowerTOP is a Linux tool to diagnose issues with power consumption and\n"
 "power management.  In addition to being a diagnostic tool, PowerTOP also has\n"
@@ -1463,11 +12360,11 @@ msgid ""
 "settings."
 msgstr ""
 
-#: gnu/packages/linux.scm:1076
+#: gnu/packages/linux.scm:2694
 msgid "Audio mixer for X and the console"
 msgstr "Son-miksilo por X kaj la konzolo"
 
-#: gnu/packages/linux.scm:1078
+#: gnu/packages/linux.scm:2696
 msgid ""
 "Aumix adjusts an audio mixer from X, the console, a terminal,\n"
 "the command line or a script."
@@ -1475,21 +12372,21 @@ msgstr ""
 "Aumix agordas son-miksilo el X, la konzolo, terminalo,\n"
 "la komandlinio aŭ el skripto."
 
-#: gnu/packages/linux.scm:1102
+#: gnu/packages/linux.scm:2725
 msgid "Displays the IO activity of running processes"
 msgstr "Montri la en/eligan aktivaĵon de rulantaj procezoj"
 
-#: gnu/packages/linux.scm:1104
+#: gnu/packages/linux.scm:2727
 msgid ""
 "Iotop is a Python program with a top like user interface to show the\n"
 "processes currently causing I/O."
 msgstr ""
 
-#: gnu/packages/linux.scm:1155
+#: gnu/packages/linux.scm:2782
 msgid "Support file systems implemented in user space"
 msgstr "Subteni dosiersistemojn realigatajn en la uzant-spaco"
 
-#: gnu/packages/linux.scm:1157
+#: gnu/packages/linux.scm:2784
 msgid ""
 "As a consequence of its monolithic design, file system code for Linux\n"
 "normally goes into the kernel itself---which is not only a robustness issue,\n"
@@ -1499,11 +12396,11 @@ msgid ""
 "user-space processes."
 msgstr ""
 
-#: gnu/packages/linux.scm:1182
+#: gnu/packages/linux.scm:2815
 msgid "User-space union file system"
 msgstr "Uzant-spaca unuiga dosiersistemo"
 
-#: gnu/packages/linux.scm:1184
+#: gnu/packages/linux.scm:2817
 msgid ""
 "UnionFS-FUSE is a flexible union file system implementation in user\n"
 "space, using the FUSE library.  Mounting a union file system allows you to\n"
@@ -1511,15 +12408,15 @@ msgid ""
 "UnionFS-FUSE additionally supports copy-on-write."
 msgstr ""
 
-#: gnu/packages/linux.scm:1209
+#: gnu/packages/linux.scm:2845
 msgid "User-space union file system (statically linked)"
 msgstr "Uzant-spaca unuiga dosiersistemo (statike ligita)"
 
-#: gnu/packages/linux.scm:1251
+#: gnu/packages/linux.scm:2895
 msgid "Mount remote file systems over SSH"
 msgstr "Munti demalproksimajn dosiersistemojn per SSH"
 
-#: gnu/packages/linux.scm:1253
+#: gnu/packages/linux.scm:2897
 msgid ""
 "This is a file system client based on the SSH File Transfer Protocol.\n"
 "Since most SSH servers already support this protocol it is very easy to set\n"
@@ -1527,49 +12424,78 @@ msgid ""
 "file system is as easy as logging into the server with an SSH client."
 msgstr ""
 
-#: gnu/packages/linux.scm:1301
+#: gnu/packages/linux.scm:2924
+msgid "Tool for mounting archive files with FUSE"
+msgstr ""
+
+#: gnu/packages/linux.scm:2925
+msgid ""
+"archivemount is a FUSE-based file system for Unix variants,\n"
+"including Linux.  Its purpose is to mount archives (i.e. tar, tar.gz, etc.) to a\n"
+"mount point where it can be read from or written to as with any other file\n"
+"system.  This makes accessing the contents of the archive, which may be\n"
+"compressed, transparent to other programs, without decompressing them."
+msgstr ""
+
+#: gnu/packages/linux.scm:2954
 msgid "Tools for non-uniform memory access (NUMA) machines"
 msgstr "Iloj por maŝinoj kun ne-kontinua memor-aliro (NUMA)"
 
-#: gnu/packages/linux.scm:1303
+#: gnu/packages/linux.scm:2956
 msgid ""
 "NUMA stands for Non-Uniform Memory Access, in other words a system whose\n"
-"memory is not all in one place.  The numactl program allows you to run your\n"
-"application program on specific CPU's and memory nodes.  It does this by\n"
-"supplying a NUMA memory policy to the operating system before running your\n"
+"memory is not all in one place.  The @command{numactl} program allows you to\n"
+"run your application program on specific CPUs and memory nodes.  It does this\n"
+"by supplying a NUMA memory policy to the operating system before running your\n"
 "program.\n"
 "\n"
-"The package contains other commands, such as numademo, numastat and memhog.\n"
-"The numademo command provides a quick overview of NUMA performance on your\n"
-"system."
+"The package contains other commands, such as @command{numastat},\n"
+"@command{memhog}, and @command{numademo} which provides a quick overview of\n"
+"NUMA performance on your system."
+msgstr ""
+
+#: gnu/packages/linux.scm:2992
+msgid "Neo2 console layout"
+msgstr ""
+
+#: gnu/packages/linux.scm:2994
+msgid ""
+"Kbd-neo provides the Neo2 keyboard layout for use with\n"
+"@command{loadkeys(1)} from @code{kbd(4)}."
 msgstr ""
 
-#: gnu/packages/linux.scm:1366
+#: gnu/packages/linux.scm:3060
 msgid "Linux keyboard utilities and keyboard maps"
 msgstr "Linuksaj klavar-utilaĵoj kaj klavar-mapoj"
 
-#: gnu/packages/linux.scm:1368
+#: gnu/packages/linux.scm:3062
 msgid ""
 "This package contains keytable files and keyboard utilities compatible\n"
 "for systems using the Linux kernel.  This includes commands such as\n"
-"'loadkeys', 'setfont', 'kbdinfo', and 'chvt'."
+"@code{loadkeys}, @code{setfont}, @code{kbdinfo}, and @code{chvt}."
 msgstr ""
 
-#: gnu/packages/linux.scm:1387
+#: gnu/packages/linux.scm:3098
+#, fuzzy
+#| msgid "Statically-linked fsck.* commands from e2fsprogs"
+msgid "Statically-linked @command{loadkeys} program"
+msgstr "Statik-ligitaj komandoj fsck.* el e2fsprogs"
+
+#: gnu/packages/linux.scm:3123
 msgid "Monitor file accesses"
 msgstr "Observi dosier-alirojn"
 
-#: gnu/packages/linux.scm:1389
+#: gnu/packages/linux.scm:3125
 msgid ""
 "The inotify-tools packages provides a C library and command-line tools\n"
 "to use Linux' inotify mechanism, which allows file accesses to be monitored."
 msgstr ""
 
-#: gnu/packages/linux.scm:1427
+#: gnu/packages/linux.scm:3173
 msgid "Kernel module tools"
 msgstr "Iloj por kerno-moduloj"
 
-#: gnu/packages/linux.scm:1428
+#: gnu/packages/linux.scm:3174
 msgid ""
 "Kmod is a set of tools to handle common tasks with Linux\n"
 "kernel modules like insert, remove, list, check properties, resolve\n"
@@ -1580,81 +12506,173 @@ msgid ""
 "from the module-init-tools project."
 msgstr ""
 
-#: gnu/packages/linux.scm:1499
+#: gnu/packages/linux.scm:3221
+msgid "Simple out of memory (OOM) daemon for the Linux kernel"
+msgstr ""
+
+#: gnu/packages/linux.scm:3222
+msgid ""
+"Early OOM is a minimalist out of memory (OOM) daemon that\n"
+"runs in user space and provides a more responsive and configurable alternative\n"
+"to the in-kernel OOM killer."
+msgstr ""
+
+#: gnu/packages/linux.scm:3319
 msgid "Userspace device management"
 msgstr "Administro de uzant-spaca aparato"
 
-#: gnu/packages/linux.scm:1500
+#: gnu/packages/linux.scm:3320
 msgid ""
 "Udev is a daemon which dynamically creates and removes\n"
 "device nodes from /dev/, handles hotplug events and loads drivers at boot\n"
 "time."
 msgstr ""
 
-#: gnu/packages/linux.scm:1560
+#: gnu/packages/linux.scm:3350
+msgid "Bindings to the Linux input handling subsystem"
+msgstr ""
+
+#: gnu/packages/linux.scm:3352
+msgid ""
+"Python-evdev provides bindings to the generic input event interface in\n"
+"Linux.  The @code{evdev} interface serves the purpose of passing events\n"
+"generated in the kernel directly to userspace through character devices that\n"
+"are typically located in @file{/dev/input/}.\n"
+"\n"
+"This package also comes with bindings to @code{uinput}, the userspace input\n"
+"subsystem.  @code{uinput} allows userspace programs to create and handle input\n"
+"devices that can inject events directly into the input subsystem."
+msgstr ""
+
+#: gnu/packages/linux.scm:3434
 msgid "Logical volume management for Linux"
 msgstr "Administro de logika volumo por Linukso"
 
-#: gnu/packages/linux.scm:1562
+#: gnu/packages/linux.scm:3436
 msgid ""
 "LVM2 is the logical volume management tool set for Linux-based systems.\n"
 "This package includes the user-space libraries and tools, including the device\n"
 "mapper.  Kernel components are part of Linux-libre."
 msgstr ""
 
-#: gnu/packages/linux.scm:1595
+#: gnu/packages/linux.scm:3476
+#, fuzzy
+#| msgid "Logical volume management for Linux"
+msgid "Logical volume management for Linux (statically linked)"
+msgstr "Administro de logika volumo por Linukso"
+
+#: gnu/packages/linux.scm:3503
+msgid "Tools for manipulating the metadata of device-mapper targets"
+msgstr ""
+
+#: gnu/packages/linux.scm:3504
+msgid ""
+"A suite of tools for manipulating the metadata of the\n"
+"dm-thin, dm-cache and dm-era device-mapper targets."
+msgstr ""
+
+#: gnu/packages/linux.scm:3549
 msgid "Tools for manipulating Linux Wireless Extensions"
 msgstr "Iloj por manipuli linuksan \"Wireless Extensions\""
 
-#: gnu/packages/linux.scm:1596
+#: gnu/packages/linux.scm:3550
 msgid ""
 "Wireless Tools are used to manipulate the now-deprecated\n"
-"Linux Wireless Extensions; consider using 'iw' instead.  The Wireless\n"
+"Linux Wireless Extensions; consider using @code{iw} instead.  The Wireless\n"
 "Extension was an interface allowing you to set Wireless LAN specific\n"
 "parameters and get the specific stats.  It is deprecated in favor the nl80211\n"
 "interface."
 msgstr ""
 
-#: gnu/packages/linux.scm:1670
+#: gnu/packages/linux.scm:3640
+msgid "Central regulatory domain agent (CRDA) for WiFi"
+msgstr ""
+
+#: gnu/packages/linux.scm:3642
+msgid ""
+"The Central Regulatory Domain Agent (CRDA) acts as the udev helper for\n"
+"communication between the kernel Linux and user space for regulatory\n"
+"compliance."
+msgstr ""
+
+#: gnu/packages/linux.scm:3710
+#, fuzzy
+#| msgid "Berkeley database"
+msgid "Wireless regulatory database"
+msgstr "Datumbazo de Berkeley"
+
+#: gnu/packages/linux.scm:3712
+msgid ""
+"This package contains the wireless regulatory database Central\n"
+"Regulatory Database Agent (CRDA) daemon.  The database contains information on\n"
+"country-specific regulations for the wireless spectrum."
+msgstr ""
+
+#: gnu/packages/linux.scm:3789
 msgid "Utilities to read temperature/voltage/fan sensors"
 msgstr "Utilaĵoj por legi temperaturan/tensian/ventolilan sensilojn"
 
-#: gnu/packages/linux.scm:1672
+#: gnu/packages/linux.scm:3791
 msgid ""
 "Lm-sensors is a hardware health monitoring package for Linux.  It allows\n"
 "you to access information from temperature, voltage, and fan speed sensors.\n"
 "It works with most newer systems."
 msgstr ""
 
-#: gnu/packages/linux.scm:1707
+#: gnu/packages/linux.scm:3809
+#, fuzzy
+#| msgid "Manipulate Ethernet bridges"
+msgid "Manipulate Intel microcode bundles"
+msgstr "Manipuli pontojn Ethernet"
+
+#: gnu/packages/linux.scm:3811
+msgid ""
+"@command{iucode_tool} is a utility to work with microcode packages for\n"
+"Intel processors.  It can convert between formats, extract specific versions,\n"
+"create a firmware image suitable for the Linux kernel, and more."
+msgstr ""
+
+#: gnu/packages/linux.scm:3840
+msgid "I2C tools for Linux"
+msgstr ""
+
+#: gnu/packages/linux.scm:3842
+msgid ""
+"The i2c-tools package contains a heterogeneous set of I2C tools for\n"
+"Linux: a bus probing tool, a chip dumper, register-level SMBus access helpers,\n"
+"EEPROM decoding scripts, EEPROM programming tools, and a python module for\n"
+"SMBus access."
+msgstr ""
+
+#: gnu/packages/linux.scm:3879
 msgid "Hardware health information viewer"
 msgstr "Montrilo de informoj pri la aparatara sano"
 
-#: gnu/packages/linux.scm:1709
+#: gnu/packages/linux.scm:3881
 msgid ""
 "Xsensors reads data from the libsensors library regarding hardware\n"
 "health such as temperature, voltage and fan speed and displays the information\n"
 "in a digital read-out."
 msgstr ""
 
-#: gnu/packages/linux.scm:1757
+#: gnu/packages/linux.scm:3933
 msgid "Linux profiling with performance counters"
 msgstr "Linuksa trajt-esplorado kun rendiment-akumuliloj"
 
-#: gnu/packages/linux.scm:1759
+#: gnu/packages/linux.scm:3935
 msgid ""
 "perf is a tool suite for profiling using hardware performance counters,\n"
 "with support in the Linux kernel.  perf can instrument CPU performance\n"
 "counters, tracepoints, kprobes, and uprobes (dynamic tracing).  It is capable\n"
 "of lightweight profiling.  This package contains the user-land tools and in\n"
-"particular the 'perf' command."
+"particular the @code{perf} command."
 msgstr ""
 
-#: gnu/packages/linux.scm:1781
+#: gnu/packages/linux.scm:3959
 msgid "Simple tool for creating Linux namespace containers"
 msgstr "Simpla ilo por krei linuksajn nomspacajn ujojn"
 
-#: gnu/packages/linux.scm:1782
+#: gnu/packages/linux.scm:3960
 msgid ""
 "pflask is a simple tool for creating Linux namespace\n"
 "containers.  It can be used for running a command or even booting an OS inside\n"
@@ -1663,11 +12681,1130 @@ msgid ""
 "thanks to the use of namespaces."
 msgstr ""
 
-#: gnu/packages/lout.scm:109
+#: gnu/packages/linux.scm:4044
+msgid "Container platform"
+msgstr ""
+
+#: gnu/packages/linux.scm:4045
+msgid ""
+"Singularity is a container platform supporting a number of\n"
+"container image formats.  It can build SquashFS container images or import\n"
+"existing Docker images.  Singularity requires kernel support for container\n"
+"isolation or root privileges."
+msgstr ""
+
+#: gnu/packages/linux.scm:4076
+msgid "View and tune ATA disk drive parameters"
+msgstr ""
+
+#: gnu/packages/linux.scm:4078
+msgid ""
+"@command{hdparm} is a command-line utility to control ATA controllers and\n"
+"disk drives.  It can increase performance and/or reliability by careful tuning\n"
+"of hardware settings like power and acoustic management, DMA modes, and caching.\n"
+"It can also display detailed device information, or be used as a simple\n"
+"performance benchmarking tool.\n"
+"\n"
+"@command{hdparm} provides a command line interface to various Linux kernel\n"
+"interfaces provided by the SATA/ATA/SAS @code{libata} subsystem, and the older\n"
+"IDE driver subsystem.  Many external USB drive enclosures with SCSI-ATA Command\n"
+"Translation (@dfn{SAT}) are also supported."
+msgstr ""
+
+#: gnu/packages/linux.scm:4116
+msgid "NVM-Express user space tooling for Linux"
+msgstr ""
+
+#: gnu/packages/linux.scm:4117
+msgid ""
+"Nvme-cli is a utility to provide standards compliant tooling\n"
+"for NVM-Express drives.  It was made specifically for Linux as it relies on the\n"
+"IOCTLs defined by the mainline kernel driver."
+msgstr ""
+
+#: gnu/packages/linux.scm:4141
+#, fuzzy
+#| msgid "Tool for configuring wireless devices"
+msgid "Tool for enabling and disabling wireless devices"
+msgstr "Iloj por agordi linuksajn sendratajn aparatojn"
+
+#: gnu/packages/linux.scm:4143
+msgid ""
+"rfkill is a simple tool for accessing the rfkill device interface,\n"
+"which is used to enable and disable wireless networking devices, typically\n"
+"WLAN, Bluetooth and mobile broadband."
+msgstr ""
+
+#: gnu/packages/linux.scm:4164
+msgid "Display information on ACPI devices"
+msgstr ""
+
+#: gnu/packages/linux.scm:4165
+msgid ""
+"@code{acpi} attempts to replicate the functionality of the\n"
+"\"old\" @code{apm} command on ACPI systems, including battery and thermal\n"
+"information.  It does not support ACPI suspending, only displays information\n"
+"about ACPI devices."
+msgstr ""
+
+#: gnu/packages/linux.scm:4184
+msgid "Daemon for delivering ACPI events to user-space programs"
+msgstr ""
+
+#: gnu/packages/linux.scm:4186
+msgid ""
+"acpid is designed to notify user-space programs of Advanced\n"
+"Configuration and Power Interface (ACPI) events.  acpid should be started\n"
+"during the system boot, and will run as a background process.  When an ACPI\n"
+"event is received from the kernel, acpid will examine the list of rules\n"
+"specified in /etc/acpi/events and execute the rules that match the event."
+msgstr ""
+
+#: gnu/packages/linux.scm:4208
+msgid "System utilities based on Linux sysfs"
+msgstr ""
+
+#: gnu/packages/linux.scm:4210
+msgid ""
+"These are a set of utilities built upon sysfs, a virtual file system in\n"
+"Linux kernel versions 2.5+ that exposes a system's device tree.  The package\n"
+"also contains the libsysfs library."
+msgstr ""
+
+#: gnu/packages/linux.scm:4240
+msgid "System utilities based on Linux sysfs (version 1.x)"
+msgstr ""
+
+#: gnu/packages/linux.scm:4261
+msgid "Utilities to get and set CPU frequency on Linux"
+msgstr ""
+
+#: gnu/packages/linux.scm:4263
+msgid ""
+"The cpufrequtils suite contains utilities to retrieve CPU frequency\n"
+"information, and set the CPU frequency if supported, using the cpufreq\n"
+"capabilities of the Linux kernel."
+msgstr ""
+
+#: gnu/packages/linux.scm:4282
+msgid "Interface library for the Linux IEEE1394 drivers"
+msgstr ""
+
+#: gnu/packages/linux.scm:4284
+msgid ""
+"Libraw1394 is the only supported interface to the kernel side raw1394 of\n"
+"the Linux IEEE-1394 subsystem, which provides direct access to the connected\n"
+"1394 buses to user space.  Through libraw1394/raw1394, applications can directly\n"
+"send to and receive from other nodes without requiring a kernel driver for the\n"
+"protocol in question."
+msgstr ""
+
+#: gnu/packages/linux.scm:4308
+msgid "AV/C protocol library for IEEE 1394"
+msgstr ""
+
+#: gnu/packages/linux.scm:4310
+msgid ""
+"Libavc1394 is a programming interface to the AV/C specification from\n"
+"the 1394 Trade Association.  AV/C stands for Audio/Video Control."
+msgstr ""
+
+#: gnu/packages/linux.scm:4332
+msgid "Isochronous streaming media library for IEEE 1394"
+msgstr ""
+
+#: gnu/packages/linux.scm:4334
+msgid ""
+"The libiec61883 library provides a higher level API for streaming DV,\n"
+"MPEG-2 and audio over Linux IEEE 1394."
+msgstr ""
+
+#: gnu/packages/linux.scm:4385
+msgid "Tool for managing Linux Software RAID arrays"
+msgstr ""
+
+#: gnu/packages/linux.scm:4387
+msgid ""
+"mdadm is a tool for managing Linux Software RAID arrays.  It can create,\n"
+"assemble, report on, and monitor arrays.  It can also move spares between raid\n"
+"arrays when needed."
+msgstr ""
+
+#: gnu/packages/linux.scm:4419
+#, fuzzy
+#| msgid "Statically-linked fsck.* commands from e2fsprogs"
+msgid "Statically-linked 'mdadm' command for use in an initrd"
+msgstr "Statik-ligitaj komandoj fsck.* el e2fsprogs"
+
+#: gnu/packages/linux.scm:4508
+msgid "Access block devices through multiple paths"
+msgstr ""
+
+#: gnu/packages/linux.scm:4510
+msgid ""
+"This package provides the following binaries to drive the\n"
+"Linux Device Mapper multipathing driver:\n"
+"@enumerate\n"
+"@item @command{multipath} - Device mapper target autoconfig.\n"
+"@item @command{multipathd} - Multipath daemon.\n"
+"@item @command{mpathpersist} - Manages SCSI persistent reservations on\n"
+"@code{dm} multipath devices.\n"
+"@item @command{kpartx} - Create device maps from partition tables.\n"
+"@end enumerate"
+msgstr ""
+
+#: gnu/packages/linux.scm:4548
+msgid "Linux-native asynchronous I/O access library"
+msgstr ""
+
+#: gnu/packages/linux.scm:4550
+msgid ""
+"This library enables userspace to use Linux kernel asynchronous I/O\n"
+"system calls, important for the performance of databases and other advanced\n"
+"applications."
+msgstr ""
+
+#: gnu/packages/linux.scm:4592
+msgid "Block layer IO tracing mechanism"
+msgstr ""
+
+#: gnu/packages/linux.scm:4593
+msgid ""
+"Blktrace is a block layer IO tracing mechanism which provides\n"
+"detailed information about request queue operations to user space.  It extracts\n"
+"event traces from the kernel (via the relaying through the debug file system)."
+msgstr ""
+
+#: gnu/packages/linux.scm:4615
+#, fuzzy
+#| msgid "Versatile audio codec"
+msgid "Bluetooth subband audio codec"
+msgstr "Diversutila son-kodeko"
+
+#: gnu/packages/linux.scm:4617
+msgid ""
+"The SBC is a digital audio encoder and decoder used to transfer data to\n"
+"Bluetooth audio output devices like headphones or loudspeakers."
+msgstr ""
+
+#: gnu/packages/linux.scm:4683
+msgid "Linux Bluetooth protocol stack"
+msgstr ""
+
+#: gnu/packages/linux.scm:4685
+msgid ""
+"BlueZ provides support for the core Bluetooth layers and protocols.  It\n"
+"is flexible, efficient and uses a modular implementation."
+msgstr ""
+
+#: gnu/packages/linux.scm:4707
+#, fuzzy
+#| msgid "Mount remote file systems over SSH"
+msgid "Mount exFAT file systems"
+msgstr "Munti demalproksimajn dosiersistemojn per SSH"
+
+#: gnu/packages/linux.scm:4709
+msgid ""
+"This package provides a FUSE-based file system that provides read and\n"
+"write access to exFAT devices."
+msgstr ""
+
+#: gnu/packages/linux.scm:4732
+#, fuzzy
+#| msgid "Mount remote file systems over SSH"
+msgid "Mount ISO file system images"
+msgstr "Munti demalproksimajn dosiersistemojn per SSH"
+
+#: gnu/packages/linux.scm:4734
+msgid ""
+"FuseISO is a FUSE module to mount ISO file system images (.iso, .nrg,\n"
+".bin, .mdf and .img files).  It supports plain ISO9660 Level 1 and 2, Rock\n"
+"Ridge, Joliet, and zisofs."
+msgstr ""
+
+#: gnu/packages/linux.scm:4777
+msgid "Mouse support for the Linux console"
+msgstr ""
+
+#: gnu/packages/linux.scm:4779
+msgid ""
+"The GPM (general-purpose mouse) daemon is a mouse server for\n"
+"applications running on the Linux console.  It allows users to select items\n"
+"and copy/paste text in the console and in xterm."
+msgstr ""
+
+#: gnu/packages/linux.scm:4851
+msgid "Create and manage btrfs copy-on-write file systems"
+msgstr ""
+
+#: gnu/packages/linux.scm:4852
+msgid ""
+"Btrfs is a @dfn{copy-on-write} (CoW) file system for Linux\n"
+"aimed at implementing advanced features while focusing on fault tolerance,\n"
+"repair and easy administration."
+msgstr ""
+
+#: gnu/packages/linux.scm:4885
+#, fuzzy
+#| msgid "Statically-linked fsck.* commands from e2fsprogs"
+msgid "Statically-linked btrfs command from btrfs-progs"
+msgstr "Statik-ligitaj komandoj fsck.* el e2fsprogs"
+
+#: gnu/packages/linux.scm:4886
+msgid ""
+"This package provides the statically-linked @command{btrfs}\n"
+"from the btrfs-progs package.  It is meant to be used in initrds."
+msgstr ""
+
+#: gnu/packages/linux.scm:4917
+msgid "Tools to manage Cramfs file systems"
+msgstr ""
+
+#: gnu/packages/linux.scm:4918
+msgid ""
+"Cramfs is a Linux file system designed to be simple, small,\n"
+"and to compress things well.  It is used on a number of embedded systems and\n"
+"small devices.  This version has additional features such as uncompressed\n"
+"blocks and random block placement."
+msgstr ""
+
+#: gnu/packages/linux.scm:4951
+msgid "Find compression type/ratio on Btrfs files"
+msgstr ""
+
+#: gnu/packages/linux.scm:4952
+msgid ""
+"@command{compsize} takes a list of files (given as\n"
+"arguments) on a Btrfs file system and measures used compression types and\n"
+"effective compression ratio, producing a report.\n"
+"\n"
+"A directory has no extents but has a (recursive) list of files.  A non-regular\n"
+"file is silently ignored.\n"
+"\n"
+"As it makes no sense to talk about compression ratio of a partial extent,\n"
+"every referenced extent is counted whole, exactly once -- no matter if you use\n"
+"only a few bytes of a 1GB extent or reflink it a thousand times.  Thus, the\n"
+"uncompressed size will not match the number given by @command{tar} or\n"
+"@command{du}.  On the other hand, the space used should be accurate (although\n"
+"obviously it can be shared with files outside our set)."
+msgstr ""
+
+#: gnu/packages/linux.scm:5000
+msgid "Userland tools for f2fs"
+msgstr ""
+
+#: gnu/packages/linux.scm:5002
+msgid ""
+"F2FS, the Flash-Friendly File System, is a modern file system\n"
+"designed to be fast and durable on flash devices such as solid-state\n"
+"disks and SD cards.  This package provides the userland utilities."
+msgstr ""
+
+#: gnu/packages/linux.scm:5090
+#, fuzzy
+#| msgid "Statically-linked fsck.* commands from e2fsprogs"
+msgid "Statically-linked fsck.f2fs command from f2fs-tools"
+msgstr "Statik-ligitaj komandoj fsck.* el e2fsprogs"
+
+#: gnu/packages/linux.scm:5091
+msgid ""
+"This package provides statically-linked fsck.f2fs command taken\n"
+"from the f2fs-tools package. It is meant to be used in initrds."
+msgstr ""
+
+#: gnu/packages/linux.scm:5120
+msgid "Free-fall protection for spinning laptop hard drives"
+msgstr ""
+
+#: gnu/packages/linux.scm:5122
+msgid ""
+"Prevents shock damage to the internal spinning hard drive(s) of some\n"
+"HP and Dell laptops.  When sudden movement is detected, all input/output\n"
+"operations on the drive are suspended and its heads are parked on the ramp,\n"
+"where they are less likely to cause damage to the spinning disc.  Requires a\n"
+"drive that supports the ATA/ATAPI-7 IDLE IMMEDIATE command with unload\n"
+"feature, and a laptop with an accelerometer.  It has no effect on SSDs."
+msgstr ""
+
+#: gnu/packages/linux.scm:5179
+msgid "Simple fan control program"
+msgstr ""
+
+#: gnu/packages/linux.scm:5181
+msgid ""
+"Thinkfan is a simple fan control program.  It reads temperatures,\n"
+"checks them against configured limits and switches to appropriate (also\n"
+"pre-configured) fan level.  It requires a working @code{thinkpad_acpi} or any\n"
+"other @code{hwmon} driver that enables temperature reading and fan control\n"
+"from userspace."
+msgstr ""
+
+#: gnu/packages/linux.scm:5235
+msgid "ThinkPad battery charge controller"
+msgstr ""
+
+#: gnu/packages/linux.scm:5237
+msgid ""
+"Tpacpi-bat is a command-line interface to control battery charging on\n"
+"@uref{https://github.com/teleshoes/tpacpi-bat/wiki/Supported-Hardware, Lenovo\n"
+"ThinkPad models released after 2011}, starting with the xx20 series.  It can\n"
+"query and set the thresholds at which one or both batteries will start and stop\n"
+"charging, inhibit charging batteries for a set period of time, or force them to\n"
+"discharge when they otherwise would not.\n"
+"\n"
+"This tool merely exposes ACPI calls provided by the @code{acpi_call} Linux\n"
+"kernel module provided by the @code{acpi-call-linux-module} package, which must\n"
+"be installed and loaded separately.  Only the original vendor firmware is\n"
+"supported."
+msgstr ""
+
+#: gnu/packages/linux.scm:5294
+msgid "Read-write access to NTFS file systems"
+msgstr ""
+
+#: gnu/packages/linux.scm:5296
+msgid ""
+"NTFS-3G provides read-write access to NTFS file systems, which are\n"
+"commonly found on Microsoft Windows.  It is implemented as a FUSE file system.\n"
+"The package provides additional NTFS tools."
+msgstr ""
+
+#: gnu/packages/linux.scm:5351
+#, fuzzy
+#| msgid "Tools and library for working with GIF images"
+msgid "Utilities and libraries for working with RDMA devices"
+msgstr "Iloj kaj biblioteko por labori kun bildoj GIF"
+
+#: gnu/packages/linux.scm:5353
+msgid ""
+"This package provides userspace components for the InfiniBand\n"
+"subsystem of the Linux kernel.  Specifically it contains userspace\n"
+"libraries for the following device nodes:\n"
+"\n"
+"@enumerate\n"
+"@item @file{/dev/infiniband/uverbsX} (@code{libibverbs})\n"
+"@item @file{/dev/infiniband/rdma_cm} (@code{librdmacm})\n"
+"@item @file{/dev/infiniband/umadX} (@code{libibumad})\n"
+"@end enumerate\n"
+"\n"
+"The following service daemons are also provided:\n"
+"@enumerate\n"
+"@item @code{srp_daemon} (for the @code{ib_srp} kernel module)\n"
+"@item @code{iwpmd} (for iWARP kernel providers)\n"
+"@item @code{ibacm} (for InfiniBand communication management assistant)\n"
+"@end enumerate"
+msgstr ""
+
+#: gnu/packages/linux.scm:5406
+msgid "Open Fabrics Enterprise Distribution (OFED) Performance Tests"
+msgstr ""
+
+#: gnu/packages/linux.scm:5407
+msgid ""
+"This is a collection of tests written over uverbs intended for\n"
+"use as a performance micro-benchmark. The tests may be used for hardware or\n"
+"software tuning as well as for functional testing.\n"
+"\n"
+"The collection contains a set of bandwidth and latency benchmark such as:\n"
+"@enumerate\n"
+"@item Send        - @code{ib_send_bw} and @code{ib_send_lat}\n"
+"@item RDMA Read   - @code{ib_read_bw} and @code{ib_read_lat}\n"
+"@item RDMA Write  - @code{ib_write_bw} and @code{ib_wriet_lat}\n"
+"@item RDMA Atomic - @code{ib_atomic_bw} and @code{ib_atomic_lat}\n"
+"@item Native Ethernet (when working with MOFED2) - @code{raw_ethernet_bw}, @code{raw_ethernet_lat}\n"
+"@end enumerate"
+msgstr ""
+
+#: gnu/packages/linux.scm:5449
+msgid "Random number generator daemon"
+msgstr ""
+
+#: gnu/packages/linux.scm:5451
+msgid ""
+"Monitor a hardware random number generator, and supply entropy\n"
+"from that to the system kernel's @file{/dev/random} machinery."
+msgstr ""
+
+#: gnu/packages/linux.scm:5491
+msgid "CPU frequency and voltage scaling tools for Linux"
+msgstr ""
+
+#: gnu/packages/linux.scm:5493
+msgid ""
+"cpupower is a set of user-space tools that use the cpufreq feature of the\n"
+"Linux kernel to retrieve and control processor features related to power saving,\n"
+"such as frequency and voltage scaling."
+msgstr ""
+
+#: gnu/packages/linux.scm:5523
+msgid "Display and update Intel-CPU energy-performance policy"
+msgstr ""
+
+#: gnu/packages/linux.scm:5525
+msgid ""
+"@command{x86_energy_perf_policy} displays and updates energy-performance\n"
+"policy settings specific to Intel Architecture Processors.  Settings are\n"
+"accessed via Model Specific Register (MSR) updates, no matter if the Linux\n"
+"cpufreq sub-system is enabled or not."
+msgstr ""
+
+#: gnu/packages/linux.scm:5546
+msgid "Entropy source for the Linux random number generator"
+msgstr ""
+
+#: gnu/packages/linux.scm:5548
+msgid ""
+"haveged generates an unpredictable stream of random numbers for use by\n"
+"Linux's @file{/dev/random} and @file{/dev/urandom} devices.  The kernel's\n"
+"standard mechanisms for filling the entropy pool may not be sufficient for\n"
+"systems with high needs or limited user interaction, such as headless servers.\n"
+"\n"
+"@command{haveged} runs as a privileged daemon, harvesting randomness from the\n"
+"indirect effects of hardware events on hidden processor state using the\n"
+"@acronym{HAVEGE, HArdware Volatile Entropy Gathering and Expansion} algorithm.\n"
+"It tunes itself to its environment and provides the same built-in test suite\n"
+"for the output stream as used on certified hardware security devices.\n"
+"\n"
+"The quality of the randomness produced by this algorithm has not been proven.\n"
+"It is recommended to run it together with another entropy source like rngd, and\n"
+"not as a replacement for it."
+msgstr ""
+
+#: gnu/packages/linux.scm:5633
+msgid "eCryptfs cryptographic file system utilities"
+msgstr ""
+
+#: gnu/packages/linux.scm:5635
+msgid ""
+"eCryptfs is a POSIX-compliant stacked cryptographic file system for Linux.\n"
+"Each file's cryptographic meta-data is stored inside the file itself, along\n"
+"with the encrypted contents.  This allows individual encrypted files to be\n"
+"copied between hosts and still be decrypted with the proper key.  eCryptfs is a\n"
+"native Linux file system, and has been part of the Linux kernel since version\n"
+"2.6.19.  This package contains the userland utilities to manage it."
+msgstr ""
+
+#: gnu/packages/linux.scm:5666
+msgid "NFSv4 support library for name/ID mapping"
+msgstr ""
+
+#: gnu/packages/linux.scm:5667
+msgid ""
+"Libnfsidmap is a library holding mulitiple methods of\n"
+"mapping names to ids and visa versa, mainly for NFSv4.  It provides an\n"
+"extensible array of mapping functions, currently consisting of two choices:\n"
+"the default @code{nsswitch} and the experimental @code{umich_ldap}."
+msgstr ""
+
+#: gnu/packages/linux.scm:5701
+msgid "Tools for loading and managing Linux kernel modules"
+msgstr "Iloj por ŝargi kaj administri linuks-kernajn modulojn"
+
+#: gnu/packages/linux.scm:5703
+#, fuzzy
+#| msgid "Tools for loading and managing Linux kernel modules"
+msgid ""
+"Tools for loading and managing Linux kernel modules, such as\n"
+"@code{modprobe}, @code{insmod}, @code{lsmod}, and more."
+msgstr "Iloj por ŝargi kaj administri linuks-kernajn modulojn"
+
+#: gnu/packages/linux.scm:5741
+msgid "Machine check monitor for x86 Linux systems"
+msgstr ""
+
+#: gnu/packages/linux.scm:5743
+msgid ""
+"The mcelog daemon logs memory, I/O, CPU, and other hardware errors on x86\n"
+"systems running the kernel Linux.  It can also perform user-defined tasks, such\n"
+"as bringing bad pages off-line, when configurable error thresholds are\n"
+"exceeded."
+msgstr ""
+
+#: gnu/packages/linux.scm:5774
+msgid "MTD Flash Storage Utilities"
+msgstr ""
+
+#: gnu/packages/linux.scm:5775
+#, fuzzy
+#| msgid "This package provides tools for manipulating ext2/ext3/ext4 file systems."
+msgid ""
+"This package provides utilities for testing, partitioning, etc\n"
+"of flash storage."
+msgstr "Tiu ĉi pako provizas ilojn por manipuli dosiersistemojn ext2/ext3/ext4."
+
+#: gnu/packages/linux.scm:5808
+msgid "Interface to Linux's seccomp syscall filtering mechanism"
+msgstr ""
+
+#: gnu/packages/linux.scm:5809
+msgid ""
+"The libseccomp library provides an easy to use, platform\n"
+"independent, interface to the Linux Kernel's syscall filtering mechanism.  The\n"
+"libseccomp API is designed to abstract away the underlying BPF based syscall\n"
+"filter language and present a more conventional function-call based filtering\n"
+"interface that should be familiar to, and easily adopted by, application\n"
+"developers."
+msgstr ""
+
+#: gnu/packages/linux.scm:5855
+msgid "Usage monitor for AMD Radeon graphics"
+msgstr ""
+
+#: gnu/packages/linux.scm:5856
+msgid ""
+"RadeonTop monitors resource consumption on supported AMD\n"
+"Radeon Graphics Processing Units (GPUs), either in real time as bar graphs on\n"
+"a terminal or saved to a file for further processing.  It measures both the\n"
+"activity of the GPU as a whole, which is also accurate during OpenCL\n"
+"computations, as well as separate component statistics that are only meaningful\n"
+"under OpenGL graphics workloads."
+msgstr ""
+
+#: gnu/packages/linux.scm:5892
+#, fuzzy
+#| msgid "Program and Perl library to manipulate EXIF tags"
+msgid "Tool and library to manipulate EFI variables"
+msgstr "Programaro kaj biblioteko Perl por manipuli etikedojn EXIF"
+
+#: gnu/packages/linux.scm:5893
+msgid ""
+"This package provides a library and a command line\n"
+"interface to the variable facility of UEFI boot firmware."
+msgstr ""
+
+#: gnu/packages/linux.scm:5927
+msgid "Modify the Extensible Firmware Interface (EFI) boot manager"
+msgstr ""
+
+#: gnu/packages/linux.scm:5929
+msgid ""
+"@code{efibootmgr} is a user-space application to modify the Intel\n"
+"Extensible Firmware Interface (EFI) Boot Manager.  This application can\n"
+"create and destroy boot entries, change the boot order, change the next\n"
+"running boot option, and more."
+msgstr ""
+
+#: gnu/packages/linux.scm:5965
+msgid "Performance monitoring tools for Linux"
+msgstr ""
+
+#: gnu/packages/linux.scm:5966
+msgid ""
+"The sysstat utilities are a collection of performance\n"
+"monitoring tools for Linux.  These include @code{mpstat}, @code{iostat},\n"
+"@code{tapestat}, @code{cifsiostat}, @code{pidstat}, @code{sar}, @code{sadc},\n"
+"@code{sadf} and @code{sa}."
+msgstr ""
+
+#: gnu/packages/linux.scm:6005
+msgid "GNU/Linux application to control backlights"
+msgstr ""
+
+#: gnu/packages/linux.scm:6007
+msgid ""
+"Light is a program to send commands to screen backlight controllers\n"
+"under GNU/Linux.  Features include:\n"
+"\n"
+"@itemize\n"
+"@item It does not rely on X.\n"
+"@item Light can automatically figure out the best controller to use, making\n"
+"full use of underlying hardware.\n"
+"@item It is possible to set a minimum brightness value, as some controllers\n"
+"set the screen to be pitch black at a value of 0 (or higher).\n"
+"@end itemize\n"
+msgstr ""
+
+#: gnu/packages/linux.scm:6048
+msgid "Backlight and LED brightness control"
+msgstr ""
+
+#: gnu/packages/linux.scm:6050
+msgid ""
+"This program allows you read and control device brightness.  Devices\n"
+"include backlight and LEDs.  It can also preserve current brightness before\n"
+"applying the operation, such as on lid close.\n"
+"\n"
+"The appropriate permissions must be set on the backlight or LED control\n"
+"interface in sysfs, which can be accomplished with the included udev rules."
+msgstr ""
+
+#: gnu/packages/linux.scm:6173
+#, fuzzy
+#| msgid "Logical volume management for Linux"
+msgid "Power management tool for Linux"
+msgstr "Administro de logika volumo por Linukso"
+
+#: gnu/packages/linux.scm:6174
+msgid ""
+"TLP is a power management tool for Linux.  It comes with\n"
+"a default configuration already optimized for battery life.  Nevertheless,\n"
+"TLP is customizable to fulfil system requirements.  TLP settings are applied\n"
+"every time the power supply source is changed."
+msgstr ""
+
+#: gnu/packages/linux.scm:6200
+#, fuzzy
+#| msgid "Hardware health information viewer"
+msgid "List hardware information"
+msgstr "Montrilo de informoj pri la aparatara sano"
+
+#: gnu/packages/linux.scm:6202
+msgid ""
+"@command{lshw} (Hardware Lister) is a small tool to provide\n"
+"detailed information on the hardware configuration of the machine.\n"
+"It can report exact memory configuration, firmware version, mainboard\n"
+"configuration, CPU version and speed, cache configuration, bus speed,\n"
+"and more on DMI-capable x86 or EFI (IA-64) systems and on some PowerPC\n"
+"machines (PowerMac G4 is known to work)."
+msgstr ""
+
+#: gnu/packages/linux.scm:6225
+#, fuzzy
+#| msgid "NetLink protocol library suite"
+msgid "Netlink utility library"
+msgstr "Biblioteka programaro por la protokolo NetLink"
+
+#: gnu/packages/linux.scm:6226
+msgid ""
+"Libmnl is a minimalistic user-space library oriented to\n"
+"Netlink developers.  There are a lot of common tasks in parsing, validating,\n"
+"constructing of both the Netlink header and TLVs that are repetitive and easy to\n"
+"get wrong.  This library aims to provide simple helpers that allows you to\n"
+"re-use code and to avoid re-inventing the wheel."
+msgstr ""
+
+#: gnu/packages/linux.scm:6250
+msgid "Netlink programming interface to the Linux nf_tables subsystem"
+msgstr ""
+
+#: gnu/packages/linux.scm:6251
+msgid ""
+"Libnftnl is a userspace library providing a low-level netlink\n"
+"programming interface to the in-kernel nf_tables subsystem.  The library\n"
+"libnftnl has been previously known as libnftables.  This library is currently\n"
+"used by nftables."
+msgstr ""
+
+#: gnu/packages/linux.scm:6281
+#, fuzzy
+#| msgid "Program to configure the Linux IP packet filtering rules"
+msgid "Userspace utility for Linux packet filtering"
+msgstr "Programo por agordi la IP-pakajn filtrajn regulojn de Linukso"
+
+#: gnu/packages/linux.scm:6282
+msgid ""
+"nftables is the project that aims to replace the existing\n"
+"{ip,ip6,arp,eb}tables framework.  Basically, this project provides a new packet\n"
+"filtering framework, a new userspace utility and also a compatibility layer for\n"
+"{ip,ip6}tables.  nftables is built upon the building blocks of the Netfilter\n"
+"infrastructure such as the existing hooks, the connection tracking system, the\n"
+"userspace queueing component and the logging subsystem."
+msgstr ""
+
+#: gnu/packages/linux.scm:6390
+msgid "Unprivileged chroot, bind mount, and binfmt_misc"
+msgstr ""
+
+#: gnu/packages/linux.scm:6392
+msgid ""
+"PRoot is a user-space implementation of @code{chroot}, @code{mount --bind},\n"
+"and @code{binfmt_misc}.  This means that users don't need any privileges or\n"
+"setup to do things like using an arbitrary directory as the new root\n"
+"file system, making files accessible somewhere else in the file system\n"
+"hierarchy, or executing programs built for another CPU architecture\n"
+"transparently through QEMU user-mode.  Also, developers can use PRoot as a\n"
+"generic process instrumentation engine thanks to its extension mechanism.\n"
+"Technically PRoot relies on @code{ptrace}, an unprivileged system-call\n"
+"available in the kernel Linux."
+msgstr ""
+
+#: gnu/packages/linux.scm:6408
+msgid "Unprivileged chroot, bind mount, and binfmt_misc (statically linked)"
+msgstr ""
+
+#: gnu/packages/linux.scm:6454
+msgid "Linux tool to dump x86 CPUID information about the CPU(s)"
+msgstr ""
+
+#: gnu/packages/linux.scm:6455
+msgid ""
+"cpuid dumps detailed information about the CPU(s) gathered\n"
+"from the CPUID instruction, and also determines the exact model of CPU(s).  It\n"
+"supports Intel, AMD, and VIA CPUs, as well as older Transmeta, Cyrix, UMC,\n"
+"NexGen, Rise, and SiS CPUs."
+msgstr ""
+
+#: gnu/packages/linux.scm:6483
+msgid "Use a FUSE file system to access data over MTP"
+msgstr ""
+
+#: gnu/packages/linux.scm:6484
+msgid ""
+"jmtpfs uses FUSE (file system in userspace) to provide access\n"
+"to data over the Media Transfer Protocol (MTP).  Unprivileged users can mount\n"
+"the MTP device as a file system."
+msgstr ""
+
+#: gnu/packages/linux.scm:6514
+msgid "Utility to show process environment"
+msgstr ""
+
+#: gnu/packages/linux.scm:6515
+msgid ""
+"Procenv is a command-line tool that displays as much detail about\n"
+"itself and its environment as possible.  It can be used as a test\n"
+"tool, to understand the type of environment a process runs in, and for\n"
+"comparing system environments."
+msgstr ""
+
+#: gnu/packages/linux.scm:6542
+msgid "Open Fabric Interfaces"
+msgstr ""
+
+#: gnu/packages/linux.scm:6544
+msgid ""
+"OpenFabrics Interfaces (OFI) is a framework focused on exporting fabric\n"
+"communication services to applications.  OFI is best described as a collection\n"
+"of libraries and applications used to export fabric services.  The key\n"
+"components of OFI are: application interfaces, provider libraries, kernel\n"
+"services, daemons, and test applications.\n"
+"\n"
+"Libfabric is a core component of OFI.  It is the library that defines and\n"
+"exports the user-space API of OFI, and is typically the only software that\n"
+"applications deal with directly.  It works in conjunction with provider\n"
+"libraries, which are often integrated directly into libfabric."
+msgstr ""
+
+#: gnu/packages/linux.scm:6599
+msgid "Intel Performance Scaled Messaging (PSM) Libraries"
+msgstr ""
+
+#: gnu/packages/linux.scm:6601
+msgid ""
+"The PSM Messaging API, or PSM API, is Intel's low-level user-level\n"
+"communications interface for the True Scale family of products.  PSM users are\n"
+"enabled with mechanisms necessary to implement higher level communications\n"
+"interfaces in parallel environments."
+msgstr ""
+
+#: gnu/packages/linux.scm:6642
+msgid "Take screenshots of one or more Linux text consoles"
+msgstr ""
+
+#: gnu/packages/linux.scm:6644
+msgid ""
+"snapscreenshot saves a screenshot of one or more Linux text consoles as a\n"
+"Targa (@dfn{.tga}) image.  It can be used by anyone with read access to the\n"
+"relevant @file{/dev/vcs*} file(s)."
+msgstr ""
+
+#: gnu/packages/linux.scm:6698
+msgid "Take a screenshot of the contents of the Linux framebuffer"
+msgstr ""
+
+#: gnu/packages/linux.scm:6700
+msgid ""
+"fbcat saves the contents of the Linux framebuffer (@file{/dev/fb*}), or\n"
+"a dump therof.  It supports a wide range of drivers and pixel formats.\n"
+"@command{fbcat} can take screenshots of virtually any application that can be\n"
+"made to write its output to the framebuffer, including (but not limited to)\n"
+"text-mode or graphical applications that don't use a display server.\n"
+"\n"
+"Also included is @command{fbgrab}, a wrapper around @command{fbcat} that\n"
+"emulates the behaviour of Gunnar Monell's older fbgrab utility."
+msgstr ""
+
+#: gnu/packages/linux.scm:6731
+msgid "Control groups management tools"
+msgstr ""
+
+#: gnu/packages/linux.scm:6732
+msgid ""
+"Control groups is Linux kernel method for process resource\n"
+"restriction, permission handling and more.  This package provides userspace\n"
+"interface to this kernel feature."
+msgstr ""
+
+#: gnu/packages/linux.scm:6765
+msgid "Control fan speed on Macbooks"
+msgstr ""
+
+#: gnu/packages/linux.scm:6767
+msgid ""
+"mbpfan is a fan control daemon for Apple Macbooks.  It uses input from\n"
+"the @code{coretemp} module and sets the fan speed using the @code{applesmc}\n"
+"module.  It can be executed as a daemon or in the foreground with root\n"
+"privileges."
+msgstr ""
+
+#: gnu/packages/linux.scm:6810
+msgid "Intel Performance Scaled Messaging 2 (PSM2) library"
+msgstr ""
+
+#: gnu/packages/linux.scm:6812
+msgid ""
+"This package is low-level user-level Intel's communications interface.\n"
+"The PSM2 API is a high-performance vendor-specific protocol that provides a\n"
+"low-level communications interface for the Intel Omni-Path family of\n"
+"high-speed networking devices."
+msgstr ""
+
+#: gnu/packages/linux.scm:6852
+msgid "Performance event monitoring library"
+msgstr ""
+
+#: gnu/packages/linux.scm:6854
+msgid ""
+"This package provides a library called libpfm4, which is used to develop\n"
+"monitoring tools exploiting the performance monitoring events such as those\n"
+"provided by the Performance Monitoring Unit (PMU) of modern processors.\n"
+"\n"
+"Libpfm4 helps convert from an event name, expressed as a string, to the event\n"
+"encoding that is either the raw event as documented by the hardware vendor or\n"
+"the OS-specific encoding.  In the latter case, the library is able to prepare\n"
+"the OS-specific data structures needed by the kernel to setup the event.\n"
+"\n"
+"libpfm4 provides support for the @code{perf_events} interface, which was\n"
+"introduced in Linux 2.6.31."
+msgstr ""
+
+#: gnu/packages/linux.scm:6882
+msgid "Low-level netfilter netlink communication library"
+msgstr ""
+
+#: gnu/packages/linux.scm:6884
+msgid ""
+"@code{libnfnetlink} is the low-level library for netfilter related\n"
+"kernel/userspace communication.  It provides a generic messaging\n"
+"infrastructure for in-kernel netfilter subsystems (such as nfnetlink_log,\n"
+"nfnetlink_queue, nfnetlink_conntrack) and their respective users and/or\n"
+"management tools in userspace."
+msgstr ""
+
+#: gnu/packages/linux.scm:6911
+msgid "Simple netlink library for Go"
+msgstr ""
+
+#: gnu/packages/linux.scm:6912
+msgid ""
+"The netlink package provides a simple netlink library for\n"
+"Go.  Netlink is the interface a user-space program in Linux uses to\n"
+"communicate with the kernel.  It can be used to add and remove interfaces, set\n"
+"IP addresses and routes, and configure IPsec."
+msgstr ""
+
+#: gnu/packages/linux.scm:6956
+msgid "XFS file system tools"
+msgstr ""
+
+#: gnu/packages/linux.scm:6957
+#, fuzzy
+#| msgid "This package provides tools for manipulating ext2/ext3/ext4 file systems."
+msgid ""
+"This package provides commands to create and check XFS\n"
+"file systems."
+msgstr "Tiu ĉi pako provizas ilojn por manipuli dosiersistemojn ext2/ext3/ext4."
+
+#: gnu/packages/linux.scm:6995
+msgid "Generate ext2 file system as a normal user"
+msgstr ""
+
+#: gnu/packages/linux.scm:6996
+msgid ""
+"This package provides a program to generate an ext2\n"
+"file system as a normal (non-root) user.  It does not require you to mount\n"
+"the image file to copy files on it, nor does it require that you become\n"
+"the superuser to make device nodes."
+msgstr ""
+
+#: gnu/packages/linux.scm:7075
+msgid "Provides a fake root environment"
+msgstr ""
+
+#: gnu/packages/linux.scm:7076
+msgid ""
+"@command{fakeroot} runs a command in an environment where\n"
+"it appears to have root privileges for file manipulation. This is useful\n"
+"for allowing users to create archives (tar, ar, .deb etc.) with files in\n"
+"them with root permissions/ownership. Without fakeroot one would have to\n"
+"have root privileges to create the constituent files of the archives with\n"
+"the correct permissions and ownership, and then pack them up, or one would\n"
+"have to construct the archives directly, without using the archiver."
+msgstr ""
+
+#: gnu/packages/linux.scm:7104
+msgid "Emulate @code{chroot} by overriding file system calls"
+msgstr ""
+
+#: gnu/packages/linux.scm:7106
+msgid ""
+"@command{fakechroot} runs a command in an environment were is additional\n"
+"possibility to use @code{chroot} command without root privileges.  This is\n"
+"useful for allowing users to create own chrooted environment with possibility\n"
+"to install another packages without need for root privileges.\n"
+"\n"
+"It works by providing @file{libfakechroot.so}, a shared library meant to be\n"
+"set as @code{LD_PRELOAD} to override the C library file system functions."
+msgstr ""
+
+#: gnu/packages/linux.scm:7153
+msgid "Dispatch input peripherals events to a device file"
+msgstr ""
+
+#: gnu/packages/linux.scm:7154
+msgid ""
+"inputattach dispatches input events from several device\n"
+"types and interfaces and translates so that the X server can use them."
+msgstr ""
+
+#: gnu/packages/linux.scm:7187
+msgid "Server and user space API to deal with multimedia pipelines"
+msgstr ""
+
+#: gnu/packages/linux.scm:7189
+msgid ""
+"PipeWire is a project that aims to greatly improve handling of audio and\n"
+"video under Linux.  It aims to support the usecases currently handled by both\n"
+"PulseAudio and Jack and at the same time provide same level of powerful handling\n"
+"of Video input and output.  It also introduces a security model that makes\n"
+"interacting with audio and video devices from containerized applications easy,\n"
+"with supporting Flatpak applications being the primary goal.  Alongside Wayland\n"
+"and Flatpak we expect PipeWire to provide a core building block for the future\n"
+"of Linux application development."
+msgstr ""
+
+#: gnu/packages/linux.scm:7262
+msgid "Embedded Linux Library"
+msgstr ""
+
+#: gnu/packages/linux.scm:7263
+msgid ""
+"The Embedded Linux* Library (ELL) provides core, low-level\n"
+"functionality for system daemons.  It typically has no dependencies other than\n"
+"the Linux kernel, C standard library, and libdl (for dynamic linking).  While\n"
+"ELL is designed to be efficient and compact enough for use on embedded Linux\n"
+"platforms, it is not limited to resource-constrained systems."
+msgstr ""
+
+#: gnu/packages/linux.scm:7288
+msgid "LTTng userspace tracer libraries"
+msgstr ""
+
+#: gnu/packages/linux.scm:7289
+msgid ""
+"The user space tracing library, liblttng-ust, is the LTTng\n"
+"user space tracer.  It receives commands from a session daemon, for example to\n"
+"enable and disable specific instrumentation points, and writes event records\n"
+"to ring buffers shared with a consumer daemon."
+msgstr ""
+
+#: gnu/packages/linux.scm:7311
+#, fuzzy
+#| msgid "Tools for loading and managing Linux kernel modules"
+msgid "Tools for booting directly into different kernels"
+msgstr "Iloj por ŝargi kaj administri linuks-kernajn modulojn"
+
+#: gnu/packages/linux.scm:7312
+msgid ""
+"This package provides the @code{kexec} program and ancillary\n"
+"utilities.  Using @code{kexec}, it is possible to boot directly into a new\n"
+"kernel from the context of an already-running kernel, bypassing the normal\n"
+"system boot process."
+msgstr ""
+
+#: gnu/packages/linux.scm:7344
+msgid "CacheFiles userspace management daemon"
+msgstr ""
+
+#: gnu/packages/linux.scm:7345
+msgid ""
+"@code{cachefilesd} is a userspace daemon that manages the\n"
+"cache data store that is used by network file systems such as @code{AFS} and\n"
+"@code{NFS} to cache data locally on disk.  The content of the cache is\n"
+"persistent over reboots."
+msgstr ""
+
+#: gnu/packages/linux.scm:7392
+msgid "BPF CO-RE (Compile Once – Run Everywhere)"
+msgstr ""
+
+#: gnu/packages/linux.scm:7394
+msgid ""
+"Libbpf supports building BPF CO-RE-enabled applications, which, in\n"
+"contrast to BCC, do not require the Clang/LLVM runtime or linux kernel\n"
+"headers."
+msgstr ""
+
+#: gnu/packages/linux.scm:7472
+msgid "Tools for BPF on Linux"
+msgstr ""
+
+#: gnu/packages/linux.scm:7474
+msgid ""
+"BCC is a toolkit for creating efficient kernel tracing and manipulation\n"
+"programs, and includes several useful tools and examples.  It makes use of\n"
+"extended BPF (Berkeley Packet Filters), formally known as eBPF, a new feature\n"
+"that was first added to Linux 3.15.  Much of what BCC uses requires Linux 4.1\n"
+"and above."
+msgstr ""
+
+#: gnu/packages/linux.scm:7514
+msgid "High-level tracing language for Linux eBPF"
+msgstr ""
+
+#: gnu/packages/linux.scm:7516
+msgid ""
+"bpftrace is a high-level tracing language for Linux enhanced Berkeley\n"
+"Packet Filter (eBPF) available in recent Linux kernels (4.x).  bpftrace uses\n"
+"LLVM as a backend to compile scripts to BPF-bytecode and makes use of BCC for\n"
+"interacting with the Linux BPF system, as well as existing Linux tracing\n"
+"capabilities: kernel dynamic tracing (kprobes), user-level dynamic\n"
+"tracing (uprobes), and tracepoints.  The bpftrace language is inspired by awk\n"
+"and C, and predecessor tracers such as DTrace and SystemTap.  bpftrace was\n"
+"created by Alastair Robertson."
+msgstr ""
+
+#: gnu/packages/linux.scm:7547
+msgid "Low-latency Raspberry Pi UART driver"
+msgstr ""
+
+#: gnu/packages/linux.scm:7548
+msgid ""
+"This package provides a Linux kernel module that will\n"
+"provide a serial device @code{/dev/ttyebus} with almost no latency upon\n"
+"receiving.  It is dedicated to the PL011 UART of the Raspberry Pi."
+msgstr ""
+
+#: gnu/packages/linux.scm:7571
+msgid "Administration tool for IP sets"
+msgstr ""
+
+#: gnu/packages/linux.scm:7572
+msgid ""
+"IP sets are a framework inside the Linux 2.4.x and 2.6.x kernel which\n"
+"can be administered by the ipset utility.  Depending on the type,\n"
+"currently an IP set may store IP addresses, (TCP/UDP) port numbers or\n"
+"IP addresses with MAC addresses in a way which ensures lightning speed\n"
+"when matching an entry against a set.\n"
+"\n"
+"If you want to\n"
+"@itemize @bullet\n"
+"@item store multiple IP addresses or port numbers and match against the entire\n"
+"collection using a single iptables rule.\n"
+"@item dynamically update iptables rules against IP addresses or ports without\n"
+"performance penalty.\n"
+"@item express complex IP address and ports based rulesets with a single\n"
+"iptables rule and benefit from the speed of IP sets.\n"
+"@end itemize\n"
+"\n"
+"then IP sets may be the proper tool for you."
+msgstr ""
+
+#: gnu/packages/lout.scm:100
 msgid "Document layout system"
 msgstr "Dokument-aranĵa sistemo"
 
-#: gnu/packages/lout.scm:111
+#: gnu/packages/lout.scm:102
 msgid ""
 "The Lout document formatting system reads a high-level description of\n"
 "a document similar in style to LaTeX and produces a PostScript or plain text\n"
@@ -1686,21 +13823,585 @@ msgid ""
 "beginning."
 msgstr ""
 
-#: gnu/packages/mpd.scm:62
+#: gnu/packages/messaging.scm:165
+msgid "Console Jabber/XMPP Client"
+msgstr ""
+
+#: gnu/packages/messaging.scm:166
+msgid ""
+"Poezio is a free console XMPP client (the protocol on which\n"
+"the Jabber IM network is built).\n"
+"Its goal is to let you connect very easily (no account creation needed) to the\n"
+"network and join various chatrooms, immediately.  It tries to look like the\n"
+"most famous IRC clients (weechat, irssi, etc).  Many commands are identical and\n"
+"you won't be lost if you already know these clients.  Configuration can be\n"
+"made in a configuration file or directly from the client.\n"
+"You'll find the light, fast, geeky and anonymous spirit of IRC while using a\n"
+"powerful, standard and open protocol."
+msgstr ""
+
+#: gnu/packages/messaging.scm:195
+msgid "Off-the-Record (OTR) Messaging Library and Toolkit"
+msgstr ""
+
+#: gnu/packages/messaging.scm:197
+msgid ""
+"OTR allows you to have private conversations over instant messaging by\n"
+"providing: (1) Encryption: No one else can read your instant messages.  (2)\n"
+"Authentication: You are assured the correspondent is who you think it is.  (3)\n"
+"Deniability: The messages you send do not have digital signatures that are\n"
+"checkable by a third party.  Anyone can forge messages after a conversation to\n"
+"make them look like they came from you.  However, during a conversation, your\n"
+"correspondent is assured the messages he sees are authentic and\n"
+"unmodified.  (4) Perfect forward secrecy: If you lose control of your private\n"
+"keys, no previous conversation is compromised."
+msgstr ""
+
+#: gnu/packages/messaging.scm:231
+msgid "Implementation of a ratcheting forward secrecy protocol"
+msgstr ""
+
+#: gnu/packages/messaging.scm:232
+msgid ""
+"libsignal-protocol-c is an implementation of a ratcheting\n"
+"forward secrecy protocol that works in synchronous and asynchronous\n"
+"messaging environments.  It can be used with messaging software to provide\n"
+"end-to-end encryption."
+msgstr ""
+
+#: gnu/packages/messaging.scm:276
+msgid "IRC to instant messaging gateway"
+msgstr ""
+
+#: gnu/packages/messaging.scm:277
+msgid ""
+"BitlBee brings IM (instant messaging) to IRC clients, for\n"
+"people who have an IRC client running all the time and don't want to run an\n"
+"additional IM client.  BitlBee currently supports XMPP/Jabber (including\n"
+"Google Talk), MSN Messenger, Yahoo!  Messenger, AIM and ICQ, and the Twitter\n"
+"microblogging network (plus all other Twitter API compatible services like\n"
+"identi.ca and status.net)."
+msgstr ""
+
+#: gnu/packages/messaging.scm:291
+msgid "IRC to instant messaging gateway (using Pidgin's libpurple)"
+msgstr ""
+
+#: gnu/packages/messaging.scm:346
+msgid "Discord plugin for Bitlbee"
+msgstr ""
+
+#: gnu/packages/messaging.scm:347
+msgid ""
+"Bitlbee-discord is a plugin for Bitlbee which provides\n"
+"access to servers running the Discord protocol."
+msgstr ""
+
+#: gnu/packages/messaging.scm:394
+msgid "Purple plug-in to access Mattermost instant messaging"
+msgstr ""
+
+#: gnu/packages/messaging.scm:396
+msgid ""
+"Purple-Mattermost is a plug-in for Purple, the instant messaging library\n"
+"used by Pidgin and Bitlbee, among others, to access\n"
+"@uref{https://mattermost.com/, Mattermost} servers."
+msgstr ""
+
+#: gnu/packages/messaging.scm:443
+msgid "Graphical IRC client"
+msgstr ""
+
+#: gnu/packages/messaging.scm:445
+msgid ""
+"HexChat lets you connect to multiple IRC networks at once.  The main\n"
+"window shows the list of currently connected networks and their channels, the\n"
+"current conversation and the list of users.  It uses colors to differentiate\n"
+"between users and to highlight messages.  It checks spelling using available\n"
+"dictionaries.  HexChat can be extended with multiple addons."
+msgstr ""
+
+#: gnu/packages/messaging.scm:511
+msgid "Lightweight Internet Relay Chat server for small networks"
+msgstr ""
+
+#: gnu/packages/messaging.scm:513
+msgid ""
+"ngIRCd is a lightweight @dfn{Internet Relay Chat} (IRC) server for small\n"
+"or private networks.  It is easy to configure, can cope with dynamic IP\n"
+"addresses, and supports IPv6, SSL-protected connections, as well as PAM for\n"
+"authentication."
+msgstr ""
+
+#: gnu/packages/messaging.scm:597
+msgid "Graphical multi-protocol instant messaging client"
+msgstr ""
+
+#: gnu/packages/messaging.scm:599
+msgid ""
+"Pidgin is a modular instant messaging client that supports many popular\n"
+"chat protocols."
+msgstr ""
+
+#: gnu/packages/messaging.scm:637
+msgid "Off-the-Record Messaging plugin for Pidgin"
+msgstr ""
+
+#: gnu/packages/messaging.scm:639
+msgid ""
+"Pidgin-OTR is a plugin that adds support for OTR to the Pidgin instant\n"
+"messaging client.  OTR (Off-the-Record) Messaging allows you to have private\n"
+"conversations over instant messaging by providing: (1) Encryption: No one else\n"
+"can read your instant messages.  (2) Authentication: You are assured the\n"
+"correspondent is who you think it is.  (3) Deniability: The messages you send\n"
+"do not have digital signatures that are checkable by a third party.  Anyone\n"
+"can forge messages after a conversation to make them look like they came from\n"
+"you.  However, during a conversation, your correspondent is assured the\n"
+"messages he sees are authentic and unmodified.  (4) Perfect forward secrecy:\n"
+"If you lose control of your private keys, no previous conversation is\n"
+"compromised."
+msgstr ""
+
+#: gnu/packages/messaging.scm:693
+msgid "IRC network bouncer"
+msgstr ""
+
+#: gnu/packages/messaging.scm:694
+msgid ""
+"ZNC is an @dfn{IRC network bouncer} or @dfn{BNC}.  It can\n"
+"detach the client from the actual IRC server, and also from selected channels.\n"
+"Multiple clients from different locations can connect to a single ZNC account\n"
+"simultaneously and therefore appear under the same nickname on IRC."
+msgstr ""
+
+#: gnu/packages/messaging.scm:715
+msgid "Non-blocking Jabber/XMPP module"
+msgstr ""
+
+#: gnu/packages/messaging.scm:717
+msgid ""
+"The goal of this python library is to provide a way for Python\n"
+"applications to use Jabber/XMPP networks in a non-blocking way.  This library\n"
+"was initially a fork of xmpppy, but uses non-blocking sockets."
+msgstr ""
+
+#: gnu/packages/messaging.scm:834
+msgid "Jabber (XMPP) client"
+msgstr ""
+
+#: gnu/packages/messaging.scm:835
+msgid ""
+"Gajim is a feature-rich and easy to use Jabber/XMPP client.\n"
+"Among its features are: a tabbed chat window and single window modes; support\n"
+"for group chat (with Multi-User Chat protocol), invitation, chat to group chat\n"
+"transformation; audio and video conferences; file transfer; TLS, GPG and\n"
+"end-to-end encryption support; XML console."
+msgstr ""
+
+#: gnu/packages/messaging.scm:870
+msgid "Gajim OMEMO plugin"
+msgstr ""
+
+#: gnu/packages/messaging.scm:872
+msgid ""
+"This package provides the Gajim OMEMO plugin.  OMEMO is an XMPP\n"
+"Extension Protocol (XEP) for secure multi-client end-to-end encryption based\n"
+"on Axolotl and PEP."
+msgstr ""
+
+#: gnu/packages/messaging.scm:921
+msgid "Graphical Jabber (XMPP) client"
+msgstr ""
+
+#: gnu/packages/messaging.scm:922
+msgid ""
+"Dino is a Jabber (XMPP) client which aims to fit well into\n"
+"a graphical desktop environment like GNOME."
+msgstr ""
+
+#: gnu/packages/messaging.scm:1009
+msgid "Jabber (XMPP) server"
+msgstr ""
+
+#: gnu/packages/messaging.scm:1010
+msgid ""
+"Prosody is a modern XMPP communication server.  It aims to\n"
+"be easy to set up and configure, and efficient with system resources.\n"
+"Additionally, for developers it aims to be easy to extend and give a flexible\n"
+"system on which to rapidly develop added functionality, or prototype new\n"
+"protocols."
+msgstr ""
+
+#: gnu/packages/messaging.scm:1044
+msgid "XEP-0363: Allow clients to upload files over HTTP"
+msgstr ""
+
+#: gnu/packages/messaging.scm:1045
+msgid ""
+"This module implements XEP-0363: it allows clients to\n"
+"upload files over HTTP."
+msgstr ""
+
+#: gnu/packages/messaging.scm:1076
+msgid "XEP-0198: Reliability and fast reconnects for XMPP"
+msgstr ""
+
+#: gnu/packages/messaging.scm:1077
+msgid ""
+"This module implements XEP-0198: when supported by both\n"
+"the client and server, it can allow clients to resume a disconnected session,\n"
+"and prevent message loss."
+msgstr ""
+
+#: gnu/packages/messaging.scm:1110 gnu/packages/messaging.scm:1144
+msgid "Library for the Tox encrypted messenger protocol"
+msgstr ""
+
+#: gnu/packages/messaging.scm:1112
+msgid "C library implementation of the Tox encrypted messenger protocol."
+msgstr ""
+
+#: gnu/packages/messaging.scm:1146
+msgid ""
+"Official fork of the C library implementation of the Tox encrypted\n"
+"messenger protocol."
+msgstr ""
+
+#: gnu/packages/messaging.scm:1201
+#, fuzzy
+#| msgid "Lightweight PDF viewer and toolkit"
+msgid "Lightweight Tox client"
+msgstr "Malpeza PDF-montrilo kaj ilaro"
+
+#: gnu/packages/messaging.scm:1203
+msgid ""
+"Utox is a lightweight Tox client.  Tox is a distributed and secure\n"
+"instant messenger with audio and video chat capabilities."
+msgstr ""
+
+#: gnu/packages/messaging.scm:1268
+msgid "Tox chat client using Qt"
+msgstr ""
+
+#: gnu/packages/messaging.scm:1269
+msgid ""
+"qTox is a Tox client that follows the Tox design\n"
+"guidelines.  It provides an easy to use application that allows you to\n"
+"connect with friends and family without anyone else listening in."
+msgstr ""
+
+#: gnu/packages/messaging.scm:1362
+msgid ""
+"Distributed and trustless peer-to-peer communications protocol\n"
+"for sending encrypted messages to one person or many subscribers."
+msgstr ""
+
+#: gnu/packages/messaging.scm:1364
+msgid "Distributed peer-to-peer communication"
+msgstr ""
+
+#: gnu/packages/messaging.scm:1383
+msgid "Multi-user chat program"
+msgstr ""
+
+#: gnu/packages/messaging.scm:1384
+msgid ""
+"Ytalk is a replacement for the BSD talk program.  Its main\n"
+"advantage is the ability to communicate with any arbitrary number of users at\n"
+"once.  It supports both talk protocols (\"talk\" and \"ntalk\") and can communicate\n"
+"with several different talk daemons at the same time."
+msgstr ""
+
+#: gnu/packages/messaging.scm:1408
+msgid "Portable high-level Jabber/XMPP library for C++"
+msgstr ""
+
+#: gnu/packages/messaging.scm:1410
+msgid ""
+"gloox is a full-featured Jabber/XMPP client library,\n"
+"written in ANSI C++.  It makes writing spec-compliant clients easy\n"
+"and allows for hassle-free integration of Jabber/XMPP functionality\n"
+"into existing applications."
+msgstr ""
+
+#: gnu/packages/messaging.scm:1481
+msgid ""
+"@code{Net::PSYC} with support for TCP, UDP, Event.pm, @code{IO::Select} and\n"
+"Gtk2 event loops.  This package includes 12 applications and additional scripts:\n"
+"psycion (a @uref{https://about.psyc.eu,PSYC} chat client), remotor (a control console\n"
+"for @uref{https://torproject.org,tor} router) and many more."
+msgstr ""
+
+#: gnu/packages/messaging.scm:1485
+msgid "Perl implementation of PSYC protocol"
+msgstr ""
+
+#: gnu/packages/messaging.scm:1524
+msgid ""
+"@code{libpsyc} is a PSYC library in C which implements\n"
+"core aspects of PSYC, useful for all kinds of clients and servers\n"
+"including psyced."
+msgstr ""
+
+#: gnu/packages/messaging.scm:1527
+msgid "PSYC library in C"
+msgstr ""
+
+#: gnu/packages/messaging.scm:1594
+msgid "psycLPC is a multi-user network server programming language"
+msgstr ""
+
+#: gnu/packages/messaging.scm:1596
+msgid ""
+"LPC is a bytecode language, invented to specifically implement\n"
+"multi user virtual environments on the internet.  This technology is used for\n"
+"MUDs and also the psyced implementation of the Protocol for SYnchronous\n"
+"Conferencing (PSYC).  psycLPC is a fork of LDMud with some new features and\n"
+"many bug fixes."
+msgstr ""
+
+#: gnu/packages/messaging.scm:1627
+msgid ""
+"Loudmouth is a lightweight and easy-to-use C library for programming\n"
+"with the XMPP (formerly known as Jabber) protocol.  It is designed to be\n"
+"easy to get started with and yet extensible to let you do anything the XMPP\n"
+"protocol allows."
+msgstr ""
+
+#: gnu/packages/messaging.scm:1631
+msgid "Asynchronous XMPP library"
+msgstr ""
+
+#: gnu/packages/messaging.scm:1662
+msgid ""
+"Mcabber is a small XMPP (Jabber) console client, which includes features\n"
+"such as SASL and TLS support, @dfn{Multi-User Chat} (MUC) support, logging,\n"
+"command-completion, OpenPGP encryption, @dfn{Off-the-Record Messaging} (OTR)\n"
+"support, and more."
+msgstr ""
+
+#: gnu/packages/messaging.scm:1666
+msgid "Small XMPP console client"
+msgstr ""
+
+#: gnu/packages/messaging.scm:1709
+msgid "Extensible console-based Jabber client"
+msgstr ""
+
+#: gnu/packages/messaging.scm:1711
+msgid ""
+"GNU Freetalk is a command-line Jabber/XMPP chat client.  It notably uses\n"
+"the Readline library to handle input, so it features convenient navigation of\n"
+"text as well as tab-completion of buddy names, commands and English words.  It\n"
+"is also scriptable and extensible via Guile."
+msgstr ""
+
+#: gnu/packages/messaging.scm:1740 gnu/packages/messaging.scm:1770
+#, fuzzy
+#| msgid "Library for handling PNG files"
+msgid "C library for writing XMPP clients"
+msgstr "Biblioteko por trakti dosierojn PNG"
+
+#: gnu/packages/messaging.scm:1741
+msgid ""
+"Libmesode is a fork of libstrophe for use with Profanity\n"
+"XMPP Client.  In particular, libmesode provides extra TLS functionality such as\n"
+"manual SSL certificate verification."
+msgstr ""
+
+#: gnu/packages/messaging.scm:1771
+msgid ""
+"Libstrophe is a minimal XMPP library written in C.  It has\n"
+"almost no external dependencies, only an XML parsing library (expat or libxml\n"
+"are both supported)."
+msgstr ""
+
+#: gnu/packages/messaging.scm:1825
+msgid "Console-based XMPP client"
+msgstr ""
+
+#: gnu/packages/messaging.scm:1826
+msgid ""
+"Profanity is a console based XMPP client written in C\n"
+"using ncurses and libmesode, inspired by Irssi."
+msgstr ""
+
+#: gnu/packages/messaging.scm:1855
+#, fuzzy
+#| msgid "Library implementing the vorbis audio format"
+msgid "Library implementing the client IRC protocol"
+msgstr "Biblioteko kiu realigas la aŭdformon vorbis"
+
+#: gnu/packages/messaging.scm:1856
+msgid ""
+"Libircclient is a library which implements the client IRC\n"
+"protocol.  It is designed to be small, fast, portable and compatible with the\n"
+"RFC standards as well as non-standard but popular features.  It can be used for\n"
+"building the IRC clients and bots."
+msgstr ""
+
+#: gnu/packages/messaging.scm:1913
+msgid "Tox chat client using ncurses"
+msgstr ""
+
+#: gnu/packages/messaging.scm:1914
+msgid ""
+"Toxic is a console-based instant messaging client, using\n"
+"c-toxcore and ncurses.  It provides audio calls, sound and desktop\n"
+"notifications, and Python scripting support."
+msgstr ""
+
+#: gnu/packages/messaging.scm:1940
+msgid "Qt5 client library for the Matrix instant messaging protocol"
+msgstr ""
+
+#: gnu/packages/messaging.scm:1941
+msgid ""
+"libqmatrixclient is a Qt5 library to write clients for the\n"
+"Matrix instant messaging protocol.  Quaternion is the reference client\n"
+"implementation.  Quaternion and libqmatrixclient together form the\n"
+"QMatrixClient project."
+msgstr ""
+
+#: gnu/packages/messaging.scm:1992
+msgid "Client API library for the Matrix protocol"
+msgstr ""
+
+#: gnu/packages/messaging.scm:1993
+msgid ""
+"@code{mtxclient} is a C++ library that implements client API\n"
+"for the Matrix protocol.  It is built on to of @code{Boost.Asio}."
+msgstr ""
+
+#: gnu/packages/messaging.scm:2051
+msgid "Desktop client for Matrix using Qt and C++14"
+msgstr ""
+
+#: gnu/packages/messaging.scm:2052
+msgid ""
+"@code{Nheko} want to provide a native desktop app for the\n"
+"Matrix protocol that feels more like a mainstream chat app and less like an IRC\n"
+"client.\n"
+"\n"
+"There is support for:\n"
+"@itemize\n"
+"@item E2E encryption (text messages only: attachments are currently sent unencrypted).\n"
+"@item User registration.\n"
+"@item Creating, joining & leaving rooms.\n"
+"@item Sending & receiving invites.\n"
+"@item Sending & receiving files and emoji.\n"
+"@item Typing notifications.\n"
+"@item Username auto-completion.\n"
+"@item Message & mention notifications.\n"
+"@item Redacting messages.\n"
+"@item Read receipts.\n"
+"@item Basic communities support.\n"
+"@item Room switcher (@key{ctrl-K}).\n"
+"@item Light, Dark & System themes.\n"
+"@end itemize"
+msgstr ""
+
+#: gnu/packages/messaging.scm:2101
+msgid "Graphical client for the Matrix instant messaging protocol"
+msgstr ""
+
+#: gnu/packages/messaging.scm:2102
+msgid ""
+"Quaternion is a Qt5 desktop client for the Matrix instant\n"
+"messaging protocol.  It uses libqmatrixclient and is its reference client\n"
+"implementation.  Quaternion and libqmatrixclient together form the\n"
+"QMatrixClient project."
+msgstr ""
+
+#: gnu/packages/messaging.scm:2144
+msgid "Instant messaging client for Google Hangouts"
+msgstr ""
+
+#: gnu/packages/messaging.scm:2146
+msgid ""
+"Hangups is an instant messaging client for Google Hangouts.  It includes\n"
+"both a Python library and a reference client with a text-based user interface.\n"
+"\n"
+"Hangups is implements a reverse-engineered version of Hangouts' proprietary,\n"
+"non-interoperable protocol, which allows it to support features like group\n"
+"messaging that aren’t available to clients that connect over XMPP."
+msgstr ""
+
+#: gnu/packages/messaging.scm:2226
+msgid "Telegram messaging support for Pidgin"
+msgstr ""
+
+#: gnu/packages/messaging.scm:2228
+msgid ""
+"Telegram-purple is a plugin for Libpurple, the communication library\n"
+"used by the Pidgin instant messaging client, that adds support for the\n"
+"Telegram messenger."
+msgstr ""
+
+#: gnu/packages/messaging.scm:2275
+#, fuzzy
+#| msgid "Cross-platform toolkit for creating graphical user interfaces"
+msgid "Cross-platform library for building Telegram clients"
+msgstr "Plursistema ilaro por krei grafik-uzantajn interfacojn"
+
+#: gnu/packages/messaging.scm:2276
+msgid ""
+"Tdlib is a cross-platform library for creating custom\n"
+"Telegram clients following the official Telegram API.  It can be easily used\n"
+"from almost any programming language with a C-FFI and features first-class\n"
+"support for high performance Telegram Bot creation."
+msgstr ""
+
+#: gnu/packages/messaging.scm:2314
+msgid "Libpurple plugin for SMS via ModemManager"
+msgstr ""
+
+#: gnu/packages/messaging.scm:2315
+msgid "Plugin for libpurple to allow sending SMS using ModemManager."
+msgstr ""
+
+#: gnu/packages/messaging.scm:2357
+msgid "Mobile client for XMPP and SMS messaging"
+msgstr ""
+
+#: gnu/packages/messaging.scm:2358
+msgid ""
+"Chatty is a chat program for XMPP and SMS.  It works on mobile\n"
+"as well as on desktop platforms.  It's based on libpurple and ModemManager."
+msgstr ""
+
+#: gnu/packages/messaging.scm:2378
+msgid "Message broker"
+msgstr ""
+
+#: gnu/packages/messaging.scm:2379
+msgid ""
+"This package provides Eclipse Mosquitto, a message broker\n"
+"that implements the MQTT protocol versions 5.0, 3.1.1 and 3.1.  Mosquitto\n"
+"is lightweight and is suitable for use on all devices from low power single\n"
+"board computers to full servers.\n"
+"\n"
+"The MQTT protocol provides a lightweight method of carrying out messaging\n"
+"using a publish/subscribe model. This makes it suitable for Internet of\n"
+"Things messaging such as with low power sensors or mobile devices such\n"
+"as phones, embedded computers or microcontrollers."
+msgstr ""
+
+#: gnu/packages/mpd.scm:87
 msgid "Music Player Daemon client library"
 msgstr "Klienta biblioteko por \"Music Player Daemon\""
 
-#: gnu/packages/mpd.scm:63
+#: gnu/packages/mpd.scm:88
 msgid ""
 "A stable, documented, asynchronous API library for\n"
 "interfacing MPD in the C, C++ & Objective C languages."
 msgstr ""
 
-#: gnu/packages/mpd.scm:121
+#: gnu/packages/mpd.scm:152
 msgid "Music Player Daemon"
 msgstr "Music Player Daemon (muzik-ludila demono)"
 
-#: gnu/packages/mpd.scm:122
+#: gnu/packages/mpd.scm:153
 msgid ""
 "Music Player Daemon (MPD) is a flexible, powerful,\n"
 "server-side application for playing music.  Through plugins and libraries it\n"
@@ -1708,49 +14409,1451 @@ msgid ""
 "protocol."
 msgstr ""
 
-#: gnu/packages/mpd.scm:147
+#: gnu/packages/mpd.scm:178
+#, fuzzy
+#| msgid "Curses Music Player Daemon client"
+msgid "Music Player Daemon client"
+msgstr "Kliento por \"Curses Music Player Daemon\""
+
+#: gnu/packages/mpd.scm:179
+msgid ""
+"MPC is a minimalist command line interface to MPD, the music\n"
+"player daemon."
+msgstr ""
+
+#: gnu/packages/mpd.scm:211
 msgid "Curses Music Player Daemon client"
 msgstr "Kliento por \"Curses Music Player Daemon\""
 
-#: gnu/packages/mpd.scm:148
+#: gnu/packages/mpd.scm:212
 msgid ""
 "ncmpc is a fully featured MPD client, which runs in a\n"
 "terminal using ncurses."
 msgstr ""
 
-#: gnu/packages/mpd.scm:169
+#: gnu/packages/mpd.scm:242
 msgid "Featureful ncurses based MPD client inspired by ncmpc"
 msgstr "Riĉa MPD-kliento bazita sur ncurses kaj inspirita de ncmpc"
 
-#: gnu/packages/mpd.scm:170
+#: gnu/packages/mpd.scm:243
 msgid ""
 "Ncmpcpp is an mpd client with a UI very similar to ncmpc,\n"
 "but it provides new useful features such as support for regular expressions\n"
 "for library searches, extended song format, items filtering, the ability to\n"
-"sort playlists, and a local filesystem browser."
+"sort playlists, and a local file system browser."
+msgstr ""
+
+#: gnu/packages/mpd.scm:267
+msgid "MPD client for track scrobbling"
+msgstr ""
+
+#: gnu/packages/mpd.scm:268
+msgid ""
+"mpdscribble is a Music Player Daemon client which submits\n"
+"information about tracks being played to a scrobbler, such as Libre.FM."
+msgstr ""
+
+#: gnu/packages/mpd.scm:291
+#, fuzzy
+#| msgid "Music Player Daemon client library"
+msgid "Python MPD client library"
+msgstr "Klienta biblioteko por \"Music Player Daemon\""
+
+#: gnu/packages/mpd.scm:292
+msgid ""
+"Python-mpd2 is a Python library which provides a client\n"
+"interface for the Music Player Daemon."
+msgstr ""
+
+#: gnu/packages/mpd.scm:341
+#, fuzzy
+#| msgid "Music Player Daemon"
+msgid "Elegant client for the Music Player Daemon"
+msgstr "Music Player Daemon (muzik-ludila demono)"
+
+#: gnu/packages/mpd.scm:342
+msgid ""
+"Sonata is an elegant graphical client for the Music Player\n"
+"Daemon (MPD).  It supports playlists, multiple profiles (connecting to different\n"
+"MPD servers, search and multimedia key support."
+msgstr ""
+
+#: gnu/packages/mpd.scm:365
+msgid "Automatic library-wide shuffle for mpd"
+msgstr ""
+
+#: gnu/packages/mpd.scm:366
+msgid ""
+"ashuffle is an application for automatically shuffling your\n"
+"MPD library in a similar way to many other music players' 'shuffle library'\n"
+"feature. ashuffle works like any other MPD client, and can be used alongside\n"
+"other MPD frontends."
+msgstr ""
+
+#: gnu/packages/netpbm.scm:189
+#, fuzzy
+#| msgid "Tools for manipulating Linux Wireless Extensions"
+msgid "Toolkit for manipulation of images"
+msgstr "Iloj por manipuli linuksan \"Wireless Extensions\""
+
+#: gnu/packages/netpbm.scm:191
+msgid ""
+"Netpbm is a toolkit for the manipulation of graphic images, including\n"
+"the conversion of images between a variety of different formats.\n"
+"There are over 300 separate tools in the package including converters for\n"
+"about 100 graphics formats."
+msgstr ""
+
+#: gnu/packages/nettle.scm:66
+msgid "C library for low-level cryptographic functionality"
+msgstr ""
+
+#: gnu/packages/nettle.scm:68
+msgid ""
+"GNU Nettle is a low-level cryptographic library.  It is designed to\n"
+"fit in easily in almost any context.  It can be easily included in\n"
+"cryptographic toolkits for object-oriented languages or in applications\n"
+"themselves."
+msgstr ""
+
+#: gnu/packages/networking.scm:201
+msgid "Camera stack and framework"
+msgstr ""
+
+#: gnu/packages/networking.scm:202
+msgid ""
+"LibCamera is a complex camera support library for GNU+Linux,\n"
+"Android, and ChromeOS."
+msgstr ""
+
+#: gnu/packages/networking.scm:250
+#, fuzzy
+#| msgid "Full chess implementation"
+msgid "GLib ICE implementation"
+msgstr "Kompleta realigo de ŝako"
+
+#: gnu/packages/networking.scm:251
+msgid ""
+"LibNice is a library that implements the Interactive\n"
+"Connectivity Establishment (ICE) standard (RFC 5245 & RFC 8445).  It provides a\n"
+"GLib-based library, libnice, as well as GStreamer elements to use it."
+msgstr ""
+
+#: gnu/packages/networking.scm:297
+#, fuzzy
+#| msgid "Tools and library for working with GIF images"
+msgid "Tools and library for handling RTMP streams"
+msgstr "Iloj kaj biblioteko por labori kun bildoj GIF"
+
+#: gnu/packages/networking.scm:298
+msgid ""
+"RTMPdump is a toolkit for RTMP streams.  All forms of RTMP are\n"
+"supported, including rtmp://, rtmpt://, rtmpe://, rtmpte://, and rtmps://."
+msgstr ""
+
+#: gnu/packages/networking.scm:343
+msgid "Secure Reliable Transport"
+msgstr ""
+
+#: gnu/packages/networking.scm:344
+msgid ""
+"SRT is a transport technology that optimizes streaming\n"
+"performance across unpredictable networks, such as the Internet."
+msgstr ""
+
+#: gnu/packages/networking.scm:371
+msgid "Linux SCTP helper library"
+msgstr ""
+
+#: gnu/packages/networking.scm:372
+msgid ""
+"Lksctp-tools project provides a user space library for SCTP\n"
+"(libsctp) including C language header files (netinet/sctp.h) for accessing SCTP\n"
+"specific application programming interfaces not provided by the standard\n"
+"sockets, and also some helper utilities around SCTP."
+msgstr ""
+
+#: gnu/packages/networking.scm:399
+msgid "Small port-knock daemon"
+msgstr ""
+
+#: gnu/packages/networking.scm:400
+msgid ""
+"@command{knockd} is a port-knock daemon.  It listens to all traffic on\n"
+"an ethernet or PPP interface, looking for special \"knock\" sequences of @dfn{port-hits}\n"
+"(UDP/TCP packets sent to a server port).  This port need not be open, since knockd listens\n"
+"at the link-layer level."
+msgstr ""
+
+#: gnu/packages/networking.scm:439
+msgid "Lightweight messaging library"
+msgstr ""
+
+#: gnu/packages/networking.scm:440
+msgid ""
+"NNG project is a rewrite of the scalability protocols library\n"
+"known as libnanomsg, and adds significant new capabilities, while retaining\n"
+"compatibility with the original.  It is a lightweight, broker-less library,\n"
+"offering a simple API to solve common recurring messaging problems, such as\n"
+"publish/subscribe, RPC-style request/reply, or service discovery."
+msgstr ""
+
+#: gnu/packages/networking.scm:482
+msgid "Scalable socket library"
+msgstr ""
+
+#: gnu/packages/networking.scm:483
+msgid ""
+"Nanomsg is a socket library that provides several common\n"
+"communication patterns.  It aims to make the networking layer fast, scalable,\n"
+"and easy to use.  Implemented in C, it works on a wide range of operating\n"
+"systems with no further dependencies."
+msgstr ""
+
+#: gnu/packages/networking.scm:597
+msgid "GTK+ Bluetooth manager"
+msgstr ""
+
+#: gnu/packages/networking.scm:598
+msgid ""
+"Blueman is a Bluetooth management utility using the Bluez\n"
+"D-Bus backend.  It is designed to be easy to use for most common Bluetooth\n"
+"tasks."
+msgstr ""
+
+#: gnu/packages/networking.scm:622
+msgid "Viewing and manipulating MAC addresses of network interfaces"
+msgstr ""
+
+#: gnu/packages/networking.scm:623
+msgid ""
+"GNU MAC Changer is a utility for viewing and changing MAC\n"
+"addresses of networking devices.  New addresses may be set explicitly or\n"
+"randomly.  They can include MAC addresses of the same or other hardware vendors\n"
+"or, more generally, MAC addresses of the same category of hardware."
+msgstr ""
+
+#: gnu/packages/networking.scm:652
+msgid "Teredo IPv6 tunneling software"
+msgstr ""
+
+#: gnu/packages/networking.scm:654
+msgid ""
+"Miredo is an implementation (client, relay, server) of the Teredo\n"
+"specification, which provides IPv6 Internet connectivity to IPv6 enabled hosts\n"
+"residing in IPv4-only networks, even when they are behind a NAT device."
+msgstr ""
+
+#: gnu/packages/networking.scm:672
+msgid "IPv6 diagnostic tools"
+msgstr ""
+
+#: gnu/packages/networking.scm:674
+msgid ""
+"NDisc6 is a collection of tools for IPv6 networking diagnostics.\n"
+"It includes the following programs:\n"
+"\n"
+"@itemize\n"
+"@item @command{ndisc6}: ICMPv6 Neighbor Discovery tool.\n"
+"@item @command{rdisc6}: ICMPv6 Router Discovery tool.\n"
+"@item @command{tcptraceroute6}: IPv6 traceroute over TCP.\n"
+"@item @command{traceroute6}: IPv6 traceroute over UDP.\n"
+"@item @command{rdnssd}: Recursive DNS Servers discovery daemon.\n"
+"@end itemize"
+msgstr ""
+
+#: gnu/packages/networking.scm:725
+msgid "Proxy ARP requests to other interfaces"
+msgstr ""
+
+#: gnu/packages/networking.scm:727
+msgid ""
+"@command{parprouted} is a daemon for transparent IP (Layer@tie{}3)\n"
+"proxy ARP bridging.  Unlike standard bridging, proxy ARP bridging can bridge\n"
+"Ethernet networks behind wireless nodes.  Normal layer@tie{}2 bridging does\n"
+"not work between wireless nodes because wireless does not know about MAC\n"
+"addresses used in the wired Ethernet networks.  This daemon can also be\n"
+"useful for making transparent firewalls."
+msgstr ""
+
+#: gnu/packages/networking.scm:752
+msgid "Open bidirectional communication channels from the command line"
+msgstr ""
+
+#: gnu/packages/networking.scm:754
+msgid ""
+"socat is a relay for bidirectional data transfer between two independent\n"
+"data channels---files, pipes, devices, sockets, etc.  It can create\n"
+"\"listening\" sockets, named pipes, and pseudo terminals.\n"
+"\n"
+"socat can be used, for instance, as TCP port forwarder, as a shell interface\n"
+"to UNIX sockets, IPv6 relay, for redirecting TCP oriented programs to a serial\n"
+"line, to logically connect serial lines on different computers, or to\n"
+"establish a relatively secure environment (su and chroot) for running client\n"
+"or server shell scripts with network connections."
+msgstr ""
+
+#: gnu/packages/networking.scm:836
+msgid "Monitor and filter incoming requests for network services"
+msgstr ""
+
+#: gnu/packages/networking.scm:837
+msgid ""
+"With this package you can monitor and filter incoming requests for\n"
+"network services.  It includes a library which may be used by daemons to\n"
+"transparently check connection attempts against an access control list."
+msgstr ""
+
+#: gnu/packages/networking.scm:856
+msgid "Library for message-based applications"
+msgstr ""
+
+#: gnu/packages/networking.scm:858
+msgid ""
+"The 0MQ lightweight messaging kernel is a library which extends the\n"
+"standard socket interfaces with features traditionally provided by specialized\n"
+"messaging middle-ware products.  0MQ sockets provide an abstraction of\n"
+"asynchronous message queues, multiple messaging patterns, message\n"
+"filtering (subscriptions), seamless access to multiple transport protocols and\n"
+"more."
+msgstr ""
+
+#: gnu/packages/networking.scm:894
+msgid "High-level C bindings for ØMQ"
+msgstr ""
+
+#: gnu/packages/networking.scm:896
+msgid ""
+"czmq provides bindings for the ØMQ core API that hides the differences\n"
+"between different versions of ØMQ."
+msgstr ""
+
+#: gnu/packages/networking.scm:925
+#, fuzzy
+#| msgid "C++ bindings to the Cairo 2D graphics library"
+msgid "C++ bindings for the ØMQ messaging library"
+msgstr "Bindoj de C++ por la 2D-grafika biblioteko Cairo"
+
+#: gnu/packages/networking.scm:927
+msgid ""
+"This package provides header-only C++ bindings for ØMQ.  The header\n"
+"files contain direct mappings of the abstractions provided by the ØMQ C API."
+msgstr ""
+
+#: gnu/packages/networking.scm:959
+msgid "C library implementing NAT-PMP"
+msgstr ""
+
+#: gnu/packages/networking.scm:961
+msgid ""
+"@code{libnatpmp} is a portable and asynchronous implementation of\n"
+"the Network Address Translation - Port Mapping Protocol (NAT-PMP)\n"
+"written in the C programming language."
+msgstr ""
+
+#: gnu/packages/networking.scm:997
+msgid "Apache Kafka C/C++ client library"
+msgstr ""
+
+#: gnu/packages/networking.scm:999
+msgid ""
+"librdkafka is a C library implementation of the Apache Kafka protocol,\n"
+"containing both Producer and Consumer support."
+msgstr ""
+
+#: gnu/packages/networking.scm:1016
+msgid "Library for Neighbor Discovery Protocol"
+msgstr ""
+
+#: gnu/packages/networking.scm:1018
+msgid ""
+"libndp contains a library which provides a wrapper for IPv6 Neighbor\n"
+"Discovery Protocol.  It also provides a tool named ndptool for sending and\n"
+"receiving NDP messages."
+msgstr ""
+
+#: gnu/packages/networking.scm:1040
+msgid "Display or change Ethernet device settings"
+msgstr ""
+
+#: gnu/packages/networking.scm:1042
+msgid ""
+"ethtool can be used to query and change settings such as speed,\n"
+"auto-negotiation and checksum offload on many network devices, especially\n"
+"Ethernet devices."
+msgstr ""
+
+#: gnu/packages/networking.scm:1082
+msgid "Text based network interface status monitor"
+msgstr ""
+
+#: gnu/packages/networking.scm:1084
+msgid ""
+"IFStatus is a simple, easy-to-use program for displaying commonly\n"
+"needed/wanted real-time traffic statistics of multiple network\n"
+"interfaces, with a simple and efficient view on the command line.  It is\n"
+"intended as a substitute for the PPPStatus and EthStatus projects."
+msgstr ""
+
+#: gnu/packages/networking.scm:1133
+#, fuzzy
+#| msgid "Collection of utilities for the Linux kernel"
+msgid "Collection of network utilities"
+msgstr "Aro da utilaĵoj por la Linuks-kerno"
+
+#: gnu/packages/networking.scm:1135
+msgid ""
+"This package contains a variety of tools for dealing with network\n"
+"configuration, troubleshooting, or servers.  Utilities included are:\n"
+"\n"
+"@itemize @bullet\n"
+"@item @command{arping}: Ping hosts using the @dfn{Address Resolution Protocol}.\n"
+"@item @command{clockdiff}: Compute time difference between network hosts\n"
+"using ICMP TSTAMP messages.\n"
+"@item @command{ninfod}: Daemon that responds to IPv6 Node Information Queries.\n"
+"@item @command{ping}: Use ICMP ECHO messages to measure round-trip delays\n"
+"and packet loss across network paths.\n"
+"@item @command{rarpd}: Answer RARP requests from clients.\n"
+"@item @command{rdisc}: Populate network routing tables with information from\n"
+"the ICMP router discovery protocol.\n"
+"@item @command{tftpd}: Trivial file transfer protocol server.\n"
+"@item @command{tracepath}: Trace network path to an IPv4 or IPv6 address and\n"
+"discover MTU along the way.\n"
+"@end itemize"
+msgstr ""
+
+#: gnu/packages/networking.scm:1174
+msgid "Realtime console network usage monitor"
+msgstr ""
+
+#: gnu/packages/networking.scm:1176
+msgid ""
+"Nload is a console application which monitors network traffic and\n"
+"bandwidth usage in real time.  It visualizes the in- and outgoing traffic using\n"
+"two graphs, and provides additional info like total amount of transferred data\n"
+"and min/max network usage."
+msgstr ""
+
+#: gnu/packages/networking.scm:1221
+msgid "Tunnel IPv4 data through a DNS server"
+msgstr ""
+
+#: gnu/packages/networking.scm:1222
+msgid ""
+"Iodine tunnels IPv4 data through a DNS server.  This\n"
+"can be useful in different situations where internet access is firewalled, but\n"
+"DNS queries are allowed.  The bandwidth is asymmetrical, with limited upstream\n"
+"and up to 1 Mbit/s downstream."
+msgstr ""
+
+#: gnu/packages/networking.scm:1258
+msgid "Intelligent client for the WHOIS directory service"
+msgstr ""
+
+#: gnu/packages/networking.scm:1260
+msgid ""
+"whois searches for an object in a @dfn{WHOIS} (RFC 3912) database.\n"
+"It is commonly used to look up the registered users or assignees of an Internet\n"
+"resource, such as a domain name, an IP address block, or an autonomous system.\n"
+"It can automatically select the appropriate server for most queries.\n"
+"\n"
+"For historical reasons, this package also includes @command{mkpasswd}, which\n"
+"encrypts passwords using @code{crypt(3)} and is unrelated to the Expect command\n"
+"of the same name."
+msgstr ""
+
+#: gnu/packages/networking.scm:1333
+msgid "Network traffic analyzer"
+msgstr ""
+
+#: gnu/packages/networking.scm:1334
+msgid ""
+"Wireshark is a network protocol analyzer, or @dfn{packet\n"
+"sniffer}, that lets you capture and interactively browse the contents of\n"
+"network frames."
+msgstr ""
+
+#: gnu/packages/networking.scm:1353
+msgid "Send ICMP ECHO_REQUEST packets to network hosts"
+msgstr ""
+
+#: gnu/packages/networking.scm:1355
+msgid ""
+"fping is a ping-like program which uses @acronym{ICMP, Internet Control\n"
+"Message Protocol} echo requests to determine if a target host is responding.\n"
+"\n"
+"@command{fping} differs from @command{ping} in that you can specify any number\n"
+"of targets on the command line, or specify a file containing the lists of\n"
+"targets to ping.  Instead of sending to one target until it times out or\n"
+"replies, fping will send out a ping packet and move on to the next target in a\n"
+"round-robin fashion."
+msgstr ""
+
+#: gnu/packages/networking.scm:1407
+msgid "Command-line interface to the Gandi.net Web API"
+msgstr ""
+
+#: gnu/packages/networking.scm:1409
+msgid ""
+"This package provides a command-line client (@command{gandi}) to buy,\n"
+"manage, and delete Internet resources from Gandi.net such as domain names,\n"
+"virtual machines, and certificates."
+msgstr ""
+
+#: gnu/packages/networking.scm:1434
+msgid "Simple network namespace handling for Go"
+msgstr ""
+
+#: gnu/packages/networking.scm:1435
+#, fuzzy
+#| msgid "This package provides an database interface for Perl."
+msgid ""
+"The netns package provides a simple interface for\n"
+"handling network namespaces in Go."
+msgstr "Tiu ĉi pako provizas datumbazan interfacon por Perl."
+
+#: gnu/packages/networking.scm:1461
+msgid "SCTP library for the Go programming language"
+msgstr ""
+
+#: gnu/packages/networking.scm:1462
+msgid ""
+"This library provides methods for using the stream control\n"
+"transmission protocol (SCTP) in a Go application."
+msgstr ""
+
+#: gnu/packages/networking.scm:1491
+msgid "Web server latency and throughput monitor"
+msgstr ""
+
+#: gnu/packages/networking.scm:1493
+msgid ""
+"httping measures how long it takes to connect to a web server, send an\n"
+"HTTP(S) request, and receive the reply headers.  It is somewhat similar to\n"
+"@command{ping}, but can be used even in cases where ICMP traffic is blocked\n"
+"by firewalls or when you want to monitor the response time of the actual web\n"
+"application stack itself."
+msgstr ""
+
+#: gnu/packages/networking.scm:1525
+msgid "Visualize curl statistics"
+msgstr ""
+
+#: gnu/packages/networking.scm:1527
+msgid ""
+"@command{httpstat} is a tool to visualize statistics from the\n"
+"@command{curl} HTTP client.  It acts as a wrapper for @command{curl} and\n"
+"prints timing information for each step of the HTTP request (DNS lookup,\n"
+"TCP connection, TLS handshake and so on) in the terminal."
+msgstr ""
+
+#: gnu/packages/networking.scm:1567
+msgid "Web caching proxy"
+msgstr ""
+
+#: gnu/packages/networking.scm:1568
+msgid ""
+"Squid is a caching proxy for the Web supporting HTTP, HTTPS,\n"
+"FTP, and more.  It reduces bandwidth and improves response times by caching and\n"
+"reusing frequently-requested web pages."
+msgstr ""
+
+#: gnu/packages/networking.scm:1602
+msgid "Console based live network and disk I/O bandwidth monitor"
+msgstr ""
+
+#: gnu/packages/networking.scm:1603
+msgid ""
+"Bandwidth Monitor NG is a small and simple console based\n"
+"live network and disk I/O bandwidth monitor."
+msgstr ""
+
+#: gnu/packages/networking.scm:1656
+msgid "Assess WiFi network security"
+msgstr ""
+
+#: gnu/packages/networking.scm:1658
+msgid ""
+"Aircrack-ng is a complete suite of tools to assess WiFi network\n"
+"security.  It focuses on different areas of WiFi security: monitoring,\n"
+"attacking, testing, and cracking.  All tools are command-line driven, which\n"
+"allows for heavy scripting."
+msgstr ""
+
+#: gnu/packages/networking.scm:1686
+msgid "Offline brute-force tool for Wi-Fi Protected Setup"
+msgstr ""
+
+#: gnu/packages/networking.scm:1687
+msgid ""
+"Pixiewps implements the pixie-dust attack to brute\n"
+"force the Wi-Fi Protected Setup (WPS) PIN by exploiting the low or\n"
+"non-existing entropy of some access points."
+msgstr ""
+
+#: gnu/packages/networking.scm:1733
+msgid "Attack tool for Wi-Fi Protected Setup"
+msgstr ""
+
+#: gnu/packages/networking.scm:1734
+msgid ""
+"Reaver performs a brute force attack against an access\n"
+"point's Wi-Fi Protected Setup (WPS) PIN.  Once the PIN is found, the WPA\n"
+"passphrase can be recovered and the AP's wireless settings can be\n"
+"reconfigured."
+msgstr ""
+
+#: gnu/packages/networking.scm:1757
+msgid "Event loop and event-driven async socket base class"
+msgstr ""
+
+#: gnu/packages/networking.scm:1759
+msgid ""
+"Danga::Socket is an abstract base class for objects backed by a socket\n"
+"which provides the basic framework for event-driven asynchronous IO, designed\n"
+"to be fast.  Danga::Socket is both a base class for objects, and an event\n"
+"loop."
+msgstr ""
+
+#: gnu/packages/networking.scm:1783
+msgid "IPv4 and IPv6 validation methods"
+msgstr ""
+
+#: gnu/packages/networking.scm:1785
+msgid ""
+"This module provides several IP address validation subroutines that both\n"
+"validate and untaint their input.  This includes both basic validation\n"
+"(@code{is_ipv4()} and @code{is_ipv6()}) and special cases like checking whether\n"
+"an address belongs to a specific network or whether an address is public or\n"
+"private (reserved)."
+msgstr ""
+
+#: gnu/packages/networking.scm:1812
+msgid "Perl Interface to the Domain Name System"
+msgstr ""
+
+#: gnu/packages/networking.scm:1813
+msgid "Net::DNS is the Perl Interface to the Domain Name System."
+msgstr ""
+
+#: gnu/packages/networking.scm:1844
+msgid "IPv6 related part of the C socket.h defines and structure manipulators for Perl"
+msgstr ""
+
+#: gnu/packages/networking.scm:1845
+msgid ""
+"Socket6 binds the IPv6 related part of the C socket header\n"
+"definitions and structure manipulators for Perl."
+msgstr ""
+
+#: gnu/packages/networking.scm:1871
+msgid "Programmable DNS resolver class for offline emulation of DNS"
+msgstr ""
+
+#: gnu/packages/networking.scm:1872
+msgid ""
+"Net::DNS::Resolver::Programmable is a programmable DNS resolver for\n"
+"offline emulation of DNS."
+msgstr ""
+
+#: gnu/packages/networking.scm:1892
+msgid "Mock DNS Resolver object for testing"
+msgstr ""
+
+#: gnu/packages/networking.scm:1894
+msgid ""
+"Net::DNS::Resolver::Mock is a subclass of Net::DNS::Resolver, but returns\n"
+"static data from any provided DNS zone file instead of querying the network.\n"
+"It is intended primarily for use in testing."
+msgstr ""
+
+#: gnu/packages/networking.scm:1928
+msgid "Manages IPv4 and IPv6 addresses and subnets"
+msgstr ""
+
+#: gnu/packages/networking.scm:1929
+msgid "NetAddr::IP manages IPv4 and IPv6 addresses and subsets."
+msgstr ""
+
+#: gnu/packages/networking.scm:1961
+msgid "Patricia Trie Perl module for fast IP address lookups"
+msgstr ""
+
+#: gnu/packages/networking.scm:1963
+msgid "Net::Patricia does IP address lookups quickly in Perl."
+msgstr ""
+
+#: gnu/packages/networking.scm:1986
+msgid "Perl extension for merging IPv4 or IPv6 CIDR addresses"
+msgstr ""
+
+#: gnu/packages/networking.scm:1987
+msgid "Net::CIDR::Lite merges IPv4 or IPv6 CIDR addresses."
+msgstr ""
+
+#: gnu/packages/networking.scm:2009
+msgid "Look up location and network information by IP Address in Perl"
+msgstr ""
+
+#: gnu/packages/networking.scm:2010
+msgid ""
+"The Perl module @code{Geo::IP}.  It looks up location and\n"
+"network information by IP Address."
+msgstr ""
+
+#: gnu/packages/networking.scm:2039
+msgid "Perl object interface for AF_INET/AF_INET6 domain sockets"
+msgstr ""
+
+#: gnu/packages/networking.scm:2040
+msgid ""
+"IO::Socket::INET6 is an interface for AF_INET/AF_INET6 domain\n"
+"sockets in Perl."
+msgstr ""
+
+#: gnu/packages/networking.scm:2068
+msgid "Library providing automatic proxy configuration management"
+msgstr ""
+
+#: gnu/packages/networking.scm:2069
+msgid ""
+"Libproxy handles the details of HTTP/HTTPS proxy\n"
+"configuration for applications across all scenarios.  Applications using\n"
+"libproxy only have to specify which proxy to use."
+msgstr ""
+
+#: gnu/packages/networking.scm:2104
+msgid "Redirect any TCP connection through a proxy or proxy chain"
+msgstr ""
+
+#: gnu/packages/networking.scm:2105
+msgid ""
+"Proxychains-ng is a preloader which hooks calls to sockets\n"
+"in dynamically linked programs and redirects them through one or more SOCKS or\n"
+"HTTP proxies."
+msgstr ""
+
+#: gnu/packages/networking.scm:2125
+msgid "Network communication layer on top of UDP"
+msgstr ""
+
+#: gnu/packages/networking.scm:2127
+msgid ""
+"ENet's purpose is to provide a relatively thin, simple and robust network\n"
+"communication layer on top of UDP.  The primary feature it provides is optional\n"
+"reliable, in-order delivery of packets.  ENet omits certain higher level\n"
+"networking features such as authentication, server discovery, encryption, or\n"
+"other similar tasks that are particularly application specific so that the\n"
+"library remains flexible, portable, and easily embeddable."
+msgstr ""
+
+#: gnu/packages/networking.scm:2192
+msgid "Applicative network protocol demultiplexer"
+msgstr ""
+
+#: gnu/packages/networking.scm:2194
+msgid ""
+"sslh is a network protocol demultiplexer.  It acts like a switchboard,\n"
+"accepting connections from clients on one port and forwarding them to different\n"
+"servers based on the contents of the first received data packet.  Detection of\n"
+"common protocols like HTTP(S), SSL, SSH, OpenVPN, tinc, and XMPP is already\n"
+"implemented, but any other protocol that matches a regular expression can be\n"
+"added.  sslh's name comes from its original application of serving both SSH and\n"
+"HTTPS on port 443, allowing SSH connections from inside corporate firewalls\n"
+"that block port 22."
+msgstr ""
+
+#: gnu/packages/networking.scm:2217
+msgid "TCP, UDP and SCTP bandwidth measurement tool"
+msgstr ""
+
+#: gnu/packages/networking.scm:2219
+msgid ""
+"iPerf is a tool to measure achievable bandwidth on IP networks.  It\n"
+"supports tuning of various parameters related to timing, buffers and\n"
+"protocols (TCP, UDP, SCTP with IPv4 and IPv6).  For each test it reports\n"
+"the bandwidth, loss, and other parameters."
+msgstr ""
+
+#: gnu/packages/networking.scm:2256
+msgid "Per-process bandwidth monitor"
+msgstr ""
+
+#: gnu/packages/networking.scm:2257
+msgid ""
+"NetHogs is a small 'net top' tool for Linux.  Instead of\n"
+"breaking the traffic down per protocol or per subnet, like most tools do, it\n"
+"groups bandwidth by process.\n"
+"\n"
+"NetHogs does not rely on a special kernel module to be loaded.  If there's\n"
+"suddenly a lot of network traffic, you can fire up NetHogs and immediately see\n"
+"which PID is causing this.  This makes it easy to identify programs that have\n"
+"gone wild and are suddenly taking up your bandwidth."
+msgstr ""
+
+#: gnu/packages/networking.scm:2303
+msgid "Usenet binary file downloader"
+msgstr ""
+
+#: gnu/packages/networking.scm:2305
+msgid ""
+"NZBGet is a binary newsgrabber, which downloads files from Usenet based\n"
+"on information given in @code{nzb} files.  NZBGet can be used in standalone\n"
+"and in server/client modes.  In standalone mode, you pass NZBGet @command{nzb}\n"
+"files as command-line parameters and it downloads them and exits.  NZBGet also\n"
+"contains a Web interface.  Its server can be controlled through remote\n"
+"procedure calls (RPCs)."
+msgstr ""
+
+#: gnu/packages/networking.scm:2357
+msgid "Virtual network switch"
+msgstr ""
+
+#: gnu/packages/networking.scm:2360
+msgid ""
+"Open vSwitch is a multilayer virtual switch.  It is designed to enable\n"
+"massive network automation through programmatic extension, while still\n"
+"supporting standard management interfaces and protocols (e.g. NetFlow, sFlow,\n"
+"IPFIX, RSPAN, CLI, LACP, 802.1ag)."
+msgstr ""
+
+#: gnu/packages/networking.scm:2382
+msgid "Python class and tools for handling IP addresses and networks"
+msgstr ""
+
+#: gnu/packages/networking.scm:2383
+msgid ""
+"The @code{IP} class allows a comfortable parsing and\n"
+"handling for most notations in use for IPv4 and IPv6 addresses and\n"
+"networks."
+msgstr ""
+
+#: gnu/packages/networking.scm:2406
+msgid "Internet bandwidth tester"
+msgstr ""
+
+#: gnu/packages/networking.scm:2408
+msgid ""
+"Command line interface for testing internet bandwidth using\n"
+"speedtest.net."
+msgstr ""
+
+#: gnu/packages/networking.scm:2426
+msgid "HPA's tftp client"
+msgstr ""
+
+#: gnu/packages/networking.scm:2428
+msgid ""
+"This is a tftp client derived from OpenBSD tftp with some extra options\n"
+"added and bugs fixed.  The source includes readline support but it is not\n"
+"enabled due to license conflicts between the BSD advertising clause and the GPL."
+msgstr ""
+
+#: gnu/packages/networking.scm:2457
+msgid "Small Ident Daemon"
+msgstr ""
+
+#: gnu/packages/networking.scm:2459
+msgid ""
+"@dfn{Pidentd} (Peter's Ident Daemon) is an identd, which implements a\n"
+"identification server.  Pidentd looks up specific TCP/IP connections and\n"
+"returns the user name and other information about the connection."
+msgstr ""
+
+#: gnu/packages/networking.scm:2506
+msgid "Create secure pipes between sockets"
+msgstr ""
+
+#: gnu/packages/networking.scm:2507
+msgid ""
+"Spiped (pronounced \"ess-pipe-dee\") is a utility for creating\n"
+"symmetrically encrypted and authenticated pipes between socket addresses, so\n"
+"that one may connect to one address (e.g., a UNIX socket on localhost) and\n"
+"transparently have a connection established to another address (e.g., a UNIX\n"
+"socket on a different system).  This is similar to 'ssh -L' functionality, but\n"
+"does not use SSH and requires a pre-shared symmetric key."
+msgstr ""
+
+#: gnu/packages/networking.scm:2534
+msgid "Routing Software Suite"
+msgstr ""
+
+#: gnu/packages/networking.scm:2535
+msgid ""
+"Quagga is a routing software suite, providing implementations\n"
+"of OSPFv2, OSPFv3, RIP v1 and v2, RIPng and BGP-4 for Unix platforms.\n"
+"\n"
+"The Quagga architecture consists of a core daemon, @command{zebra}, which\n"
+"acts as an abstraction layer to the underlying Unix kernel and presents the\n"
+"Zserv API over a Unix or TCP stream to Quagga clients.  It is these Zserv\n"
+"clients which typically implement a routing protocol and communicate routing\n"
+"updates to the zebra daemon."
+msgstr ""
+
+#: gnu/packages/networking.scm:2586
+msgid "IPv6 security research toolkit"
+msgstr ""
+
+#: gnu/packages/networking.scm:2587
+msgid ""
+"The THC IPv6 Toolkit provides command-line tools and a library\n"
+"for researching IPv6 implementations and deployments.  It requires Linux 2.6 or\n"
+"newer and only works on Ethernet network interfaces."
+msgstr ""
+
+#: gnu/packages/networking.scm:2613
+msgid "Bandwidth monitor"
+msgstr ""
+
+#: gnu/packages/networking.scm:2614
+msgid ""
+"bmon is a monitoring and debugging tool to capture\n"
+"networking-related statistics and prepare them visually in a human-friendly\n"
+"way.  It features various output methods including an interactive curses user\n"
+"interface and a programmable text output for scripting."
+msgstr ""
+
+#: gnu/packages/networking.scm:2651
+msgid "Framework for low-level network packet construction"
+msgstr ""
+
+#: gnu/packages/networking.scm:2653
+msgid ""
+"Libnet provides a fairly portable framework for network packet\n"
+"construction and injection.  It features portable packet creation interfaces\n"
+"at the IP layer and link layer, as well as a host of supplementary\n"
+"functionality.  Using libnet, quick and simple packet assembly applications\n"
+"can be whipped up with little effort."
+msgstr ""
+
+#: gnu/packages/networking.scm:2678
+msgid "Network diagnostic tool"
+msgstr ""
+
+#: gnu/packages/networking.scm:2680
+msgid ""
+"@acronym{mtr, My TraceRoute} combines the functionality of the\n"
+"@command{traceroute} and @command{ping} programs in a single network diagnostic\n"
+"tool.  @command{mtr} can use several network protocols to detect intermediate\n"
+"routers (or @dfn{hops}) between the local host and a user-specified destination.\n"
+"It then continually measures the response time and packet loss at each hop, and\n"
+"displays the results in real time."
+msgstr ""
+
+#: gnu/packages/networking.scm:2732
+msgid "IKEv1/v2 keying daemon"
+msgstr ""
+
+#: gnu/packages/networking.scm:2733
+msgid ""
+"StrongSwan is an IPsec implementation originally based upon\n"
+"the FreeS/WAN project.  It contains support for IKEv1, IKEv2, MOBIKE, IPv6,\n"
+"NAT-T and more."
+msgstr ""
+
+#: gnu/packages/networking.scm:2817
+msgid "Peer-to-peer client for the eD2K and Kademlia networks"
+msgstr ""
+
+#: gnu/packages/networking.scm:2819
+msgid ""
+"aMule is an eMule-like client for the eD2k and Kademlia peer-to-peer\n"
+"file sharing networks.  It includes a graphical user interface (GUI), a daemon\n"
+"allowing you to run a client with no graphical interface, and a Web GUI for\n"
+"remote access.  The @command{amulecmd} command allows you to control aMule\n"
+"remotely."
+msgstr ""
+
+#: gnu/packages/networking.scm:2842
+msgid "Framework for proximity-based peer-to-peer applications"
+msgstr ""
+
+#: gnu/packages/networking.scm:2843
+msgid ""
+"Zyre provides reliable group messaging over local area\n"
+"networks using zeromq.  It has these key characteristics:\n"
+"\n"
+"@itemize\n"
+"@item Zyre needs no administration or configuration.\n"
+"@item Peers may join and leave the network at any time.\n"
+"@item Peers talk to each other without any central brokers or servers.\n"
+"@item Peers can talk directly to each other.\n"
+"@item Peers can join groups, and then talk to groups.\n"
+"@item Zyre is reliable, and loses no messages even when the network is heavily loaded.\n"
+"@item Zyre is fast and has low latency, requiring no consensus protocols.\n"
+"@item Zyre is designed for WiFi networks, yet also works well on Ethernet networks.\n"
+"@end itemize"
+msgstr ""
+
+#: gnu/packages/networking.scm:2878
+msgid "SocketCAN user-space library"
+msgstr ""
+
+#: gnu/packages/networking.scm:2879
+msgid ""
+"This library allows controlling basic functions in SocketCAN\n"
+"from user-space.  It requires a kernel built with SocketCAN support."
+msgstr ""
+
+#: gnu/packages/networking.scm:2907
+msgid "CAN utilities"
+msgstr ""
+
+#: gnu/packages/networking.scm:2908
+msgid ""
+"This package provides CAN utilities in the following areas:\n"
+"\n"
+"@itemize\n"
+"@item Basic tools to display, record, generate and replay CAN traffic\n"
+"@item CAN access via IP sockets\n"
+"@item CAN in-kernel gateway configuration\n"
+"@item CAN bus measurement and testing\n"
+"@item ISO-TP (ISO15765-2:2016 - this means messages with a body larger than\n"
+"eight bytes) tools\n"
+"@item Log file converters\n"
+"@item Serial Line Discipline configuration for slcan driver\n"
+"@end itemize"
+msgstr ""
+
+#: gnu/packages/networking.scm:2944
+msgid "C++ library for ASynchronous network I/O"
+msgstr ""
+
+#: gnu/packages/networking.scm:2945
+msgid ""
+"Asio is a cross-platform C++ library for network and\n"
+"low-level I/O programming that provides developers with a consistent\n"
+"asynchronous model using a modern C++ approach."
+msgstr ""
+
+#: gnu/packages/networking.scm:2969
+msgid "Fast tunnel proxy that helps you bypass firewalls"
+msgstr ""
+
+#: gnu/packages/networking.scm:2971
+msgid ""
+"This package is a fast tunnel proxy that helps you bypass firewalls.\n"
+"\n"
+"Features:\n"
+"@itemize\n"
+"@item TCP & UDP support\n"
+"@item User management API\n"
+"@item TCP Fast Open\n"
+"@item Workers and graceful restart\n"
+"@item Destination IP blacklist\n"
+"@end itemize"
+msgstr ""
+
+#: gnu/packages/networking.scm:3052
+msgid "Simple Network Management Protocol library and tools"
+msgstr ""
+
+#: gnu/packages/networking.scm:3053
+msgid ""
+"The @dfn{Simple Network Management Protocol} (SNMP) is a\n"
+"widely used protocol for monitoring the health and welfare of network\n"
+"equipment (e.g. routers), computer equipment and even devices like UPSs.\n"
+"Net-SNMP is a suite of applications used to implement SNMP v1, SNMP v2c and\n"
+"SNMP v3 using both IPv4 and IPv6."
+msgstr ""
+
+#: gnu/packages/networking.scm:3099
+msgid "Bridge for UDP tunnels, Ethernet, TAP and VMnet interfaces"
+msgstr ""
+
+#: gnu/packages/networking.scm:3100
+msgid ""
+"uBridge is a simple program to create user-land bridges\n"
+"between various technologies.  Currently, bridging between UDP tunnels,\n"
+"Ethernet and TAP interfaces is supported.  Packet capture is also supported."
+msgstr ""
+
+#: gnu/packages/networking.scm:3133
+msgid "Capture wlan traffic to hashcat and John the Ripper"
+msgstr ""
+
+#: gnu/packages/networking.scm:3135
+msgid ""
+"This package contains a small set of tools to capture and convert\n"
+"packets from wireless devices for use with hashcat or John the Ripper."
+msgstr ""
+
+#: gnu/packages/networking.scm:3164
+msgid "Small tool to capture packets from wlan devices"
+msgstr ""
+
+#: gnu/packages/networking.scm:3166
+msgid ""
+"Small tool to capture packets from WLAN devices.  After capturing,\n"
+"upload the \"uncleaned\" cap to @url{https://wpa-sec.stanev.org/?submit} to\n"
+"see if the access point or the client is vulnerable to a dictionary attack.\n"
+"Convert the cap file to hccapx format and/or to WPA-PMKID-PBKDF2\n"
+"hashline (16800) with @command{hcxpcaptool} from the @code{hcxtools} package\n"
+"and check if the WLAN key or the master key was transmitted unencrypted."
+msgstr ""
+
+#: gnu/packages/networking.scm:3193
+msgid "SOCKS server and client"
+msgstr ""
+
+#: gnu/packages/networking.scm:3194
+msgid ""
+"Dante is a SOCKS client and server implementation.  It can\n"
+"be installed on a machine with access to an external TCP/IP network and will\n"
+"allow all other machines, without direct access to that network, to be relayed\n"
+"through the machine the Dante server is running on.  The external network will\n"
+"never see any machines other than the one Dante is running on."
+msgstr ""
+
+#: gnu/packages/networking.scm:3247
+msgid "Asynchronous RESTful functionality to C++11 applications"
+msgstr ""
+
+#: gnu/packages/networking.scm:3248
+msgid ""
+"Restbed is a comprehensive and consistent programming\n"
+"model for building applications that require seamless and secure\n"
+"communication over HTTP."
+msgstr ""
+
+#: gnu/packages/networking.scm:3290
+msgid "C++14 library that gives you an embedded HTTP/Websocket server"
+msgstr ""
+
+#: gnu/packages/networking.scm:3291
+msgid ""
+"RESTinio is a header-only C++14 library that gives you an embedded\n"
+"HTTP/Websocket server.  It is based on standalone version of ASIO\n"
+"and targeted primarily for asynchronous processing of HTTP-requests."
+msgstr ""
+
+#: gnu/packages/networking.scm:3340
+msgid "Distributed Hash Table (DHT) library"
+msgstr ""
+
+#: gnu/packages/networking.scm:3341
+msgid ""
+"OpenDHT is a Distributed Hash Table (DHT) library.  It may\n"
+"be used to manage peer-to-peer network connections as needed for real time\n"
+"communication."
+msgstr ""
+
+#: gnu/packages/networking.scm:3369
+#, fuzzy
+#| msgid "NetLink protocol library suite"
+msgid "IP routing protocol suite"
+msgstr "Biblioteka programaro por la protokolo NetLink"
+
+#: gnu/packages/networking.scm:3370
+msgid ""
+"FRRouting (FRR) is an IP routing protocol suite which includes\n"
+"protocol daemons for BGP, IS-IS, LDP, OSPF, PIM, and RIP. "
+msgstr ""
+
+#: gnu/packages/networking.scm:3425
+msgid "Internet Wireless Daemon"
+msgstr ""
+
+#: gnu/packages/networking.scm:3426
+msgid ""
+"iwd is a wireless daemon for Linux that aims to replace WPA\n"
+"Supplicant.  It optimizes resource utilization by not depending on any external\n"
+"libraries and instead utilizing features provided by the Linux kernel to the\n"
+"maximum extent possible."
+msgstr ""
+
+#: gnu/packages/networking.scm:3459
+msgid "Management tool for the mesh networking BATMAN protocol"
+msgstr ""
+
+#: gnu/packages/networking.scm:3460
+msgid ""
+"This package provides a control tool for the\n"
+"B.A.T.M.A.N. mesh networking routing protocol provided by the Linux kernel\n"
+"module @code{batman-adv}, for Layer 2."
+msgstr ""
+
+#: gnu/packages/networking.scm:3495
+msgid "Make localhost servers publicly visible"
+msgstr ""
+
+#: gnu/packages/networking.scm:3497
+msgid ""
+"PageKite implements a tunneled reverse proxy which makes it easy to make\n"
+"a service (such as an HTTP or SSH server) on localhost visible to the wider\n"
+"Internet, even behind NAT or restrictive firewalls.  A managed front-end relay\n"
+"service is available at @url{https://pagekite.net/}, or you can run your own."
 msgstr ""
 
-#: gnu/packages/pdf.scm:94
+#: gnu/packages/networking.scm:3540
+msgid "Simple IP network calculator"
+msgstr ""
+
+#: gnu/packages/networking.scm:3541
+msgid ""
+"ipcalc takes an IP address and netmask and calculates the\n"
+"resulting broadcast, network, Cisco wildcard mask, and host range.  By giving\n"
+"a second netmask, you can design subnets and supernets.  It is also intended\n"
+"to be a teaching tool and presents the subnetting results as\n"
+"easy-to-understand binary values."
+msgstr ""
+
+#: gnu/packages/networking.scm:3579
+msgid "Utility to set up and maintain TUN/TAP network interfaces"
+msgstr ""
+
+#: gnu/packages/networking.scm:3580
+msgid ""
+"Tunctl is used to set up and maintain persistent TUN/TAP\n"
+"network interfaces, enabling user applications to simulate network traffic.\n"
+"Such interfaces are useful for VPN software, virtualization, emulation,\n"
+"simulation, and a number of other applications."
+msgstr ""
+
+#: gnu/packages/networking.scm:3599
+msgid "Implements Wake On LAN functionality in a small program"
+msgstr ""
+
+#: gnu/packages/networking.scm:3600
+msgid ""
+"Tool to send a magic packet to wake another host on the\n"
+"network.  This must be enabled on the target host, usually in the BIOS."
+msgstr ""
+
+#: gnu/packages/networking.scm:3622
+msgid "Virtual Distributed Ethernet"
+msgstr ""
+
+#: gnu/packages/networking.scm:3623
+msgid ""
+"VDE is a set of programs to provide virtual software-defined\n"
+"Ethernet network interface controllers across multiple virtual or\n"
+"physical, local or remote devices.  The VDE architecture provides\n"
+"virtual counterparts to hardware components such as switches and\n"
+"cables."
+msgstr ""
+
+#: gnu/packages/networking.scm:3667
+msgid "Reliable, high performance TCP/HTTP load balancer"
+msgstr ""
+
+#: gnu/packages/networking.scm:3668
+msgid ""
+"HAProxy is a free, very fast and reliable solution offering\n"
+"high availability, load balancing, and proxying for TCP and HTTP-based\n"
+"applications.  It is particularly suited for web sites crawling under very\n"
+"high loads while needing persistence or Layer7 processing.  Supporting tens of\n"
+"thousands of connections is clearly realistic with today's hardware."
+msgstr ""
+
+#: gnu/packages/networking.scm:3714
+msgid "Locate neighbors of your network equipment"
+msgstr ""
+
+#: gnu/packages/networking.scm:3716
+msgid ""
+"The @dfn{Link Layer Discovery Protocol} (LLDP) is an industry standard\n"
+"protocol designed to supplant proprietary Link-Layer protocols such as EDP or\n"
+"CDP.  The goal of LLDP is to provide an inter-vendor compatible mechanism to\n"
+"deliver Link-Layer notifications to adjacent network devices.  @code{lldpd} is\n"
+"an implementation of LLDP.  It also supports some proprietary protocols."
+msgstr ""
+
+#: gnu/packages/networking.scm:3757
+msgid "Denial-of-service countermeasure"
+msgstr ""
+
+#: gnu/packages/networking.scm:3758
+msgid ""
+"Hashcash is a proof-of-work algorithm, which has been used\n"
+"as a denial-of-service countermeasure technique in a number of systems.\n"
+"\n"
+"A hashcash stamp constitutes a proof-of-work which takes a parametrizable\n"
+"amount of work to compute for the sender.  The recipient can verify received\n"
+"hashcash stamps efficiently.\n"
+"\n"
+"This package contains a command-line tool for computing and verifying hashcash\n"
+"stamps."
+msgstr ""
+
+#: gnu/packages/networking.scm:3788
+msgid "NBD client and server"
+msgstr ""
+
+#: gnu/packages/networking.scm:3789
+msgid ""
+"This package provides the NBD (Network Block Devices)\n"
+"client and server.  It allows you to use remote block devices over a TCP/IP\n"
+"network."
+msgstr ""
+
+#: gnu/packages/pdf.scm:128
+msgid "Rearrange PDF pages to print as flyers on one sheet"
+msgstr ""
+
+#: gnu/packages/pdf.scm:129
+msgid ""
+"@command{flyer-composer} can be used to prepare one- or\n"
+"two-sided flyers for printing on one sheet of paper.\n"
+"\n"
+"Imagine you have designed a flyer in A6 format and want to print it using your\n"
+"A4 printer.  Of course, you want to print four flyers on each sheet.  This is\n"
+"where Flyer Composer steps in, creating a PDF which holds your flyer four\n"
+"times.  If you have a second page, Flyer Composer can arrange it the same way\n"
+"- even if the second page is in a separate PDF file.\n"
+"\n"
+"This package contains both the command line tool and the gui too."
+msgstr ""
+
+#: gnu/packages/pdf.scm:156
+msgid ""
+"@command{flyer-composer} can be used to prepare one- or\n"
+"two-sided flyers for printing on one sheet of paper.\n"
+"\n"
+"Imagine you have designed a flyer in A6 format and want to print it using your\n"
+"A4 printer.  Of course, you want to print four flyers on each sheet.  This is\n"
+"where Flyer Composer steps in, creating a PDF which holds your flyer four\n"
+"times.  If you have a second page, Flyer Composer can arrange it the same way\n"
+"- even if the second page is in a separate PDF file.\n"
+"\n"
+"This package contains only the command line tool.  If you like to use the gui,\n"
+"please install the @code{flyer-composer-gui} package."
+msgstr ""
+
+#: gnu/packages/pdf.scm:214
 msgid "PDF rendering library"
 msgstr "PDF-bildiga biblioteko"
 
-#: gnu/packages/pdf.scm:96
+#: gnu/packages/pdf.scm:216
 msgid "Poppler is a PDF rendering library based on the xpdf-3.0 code base."
-msgstr "Poppler estas PDF-bildiga biblioteko bazita sur la kodum-bazo de xpdf-3.0"
+msgstr "Poppler estas PDF-bildiga biblioteko bazita sur la kodum-bazo de xpdf-3.0."
+
+#: gnu/packages/pdf.scm:241
+msgid "Poppler encoding files for rendering of CJK and Cyrillic text"
+msgstr ""
 
-#: gnu/packages/pdf.scm:139
+#: gnu/packages/pdf.scm:242
+msgid ""
+"This package provides optional encoding files for Poppler.\n"
+"When present, Poppler is able to correctly render CJK and Cyrillic text."
+msgstr ""
+
+#: gnu/packages/pdf.scm:255
+#, fuzzy
+#| msgid "C++ interface to the Pango text rendering library"
+msgid "Qt4 frontend for the Poppler PDF rendering library"
+msgstr "Interfaco C++ por la tekst-bildiga biblioteko Pango"
+
+#: gnu/packages/pdf.scm:262
+#, fuzzy
+#| msgid "C++ interface to the Pango text rendering library"
+msgid "Qt5 frontend for the Poppler PDF rendering library"
+msgstr "Interfaco C++ por la tekst-bildiga biblioteko Pango"
+
+#: gnu/packages/pdf.scm:302
+#, fuzzy
+#| msgid "Python bindings for cairo"
+msgid "Python bindings for Poppler-Qt5"
+msgstr "Bindoj de Python por Cairo"
+
+#: gnu/packages/pdf.scm:304
+#, fuzzy
+#| msgid "This package provides an database interface for Perl."
+msgid ""
+"This package provides Python bindings for the Qt5 interface of the\n"
+"Poppler PDF rendering library."
+msgstr "Tiu ĉi pako provizas datumbazan interfacon por Perl."
+
+#: gnu/packages/pdf.scm:338
+#, fuzzy
+#| msgid "Library for handling PNG files"
+msgid "Library for generating PDF files"
+msgstr "Biblioteko por trakti dosierojn PNG"
+
+#: gnu/packages/pdf.scm:340
+msgid ""
+"libHaru is a library for generating PDF files.  libHaru does not support\n"
+"reading and editing of existing PDF files."
+msgstr ""
+
+#: gnu/packages/pdf.scm:388
 msgid "Viewer for PDF files based on the Motif toolkit"
 msgstr "Montrilo por PDF-dosieroj bazitaj sur la ilaro Motif"
 
-#: gnu/packages/pdf.scm:141
-msgid "Xpdf is a viewer for Portable Document Format (PDF) files"
+#: gnu/packages/pdf.scm:390
+#, fuzzy
+#| msgid "Xpdf is a viewer for Portable Document Format (PDF) files"
+msgid "Xpdf is a viewer for Portable Document Format (PDF) files."
 msgstr "Xpdf estas montrilo por dosieroj PDF (portebla dokument-formo)"
 
-#: gnu/packages/pdf.scm:169
+#: gnu/packages/pdf.scm:424
+msgid "Comic book support for zathura (libarchive backend)"
+msgstr ""
+
+#: gnu/packages/pdf.scm:425
+msgid ""
+"The zathura-cb plugin adds comic book support to zathura\n"
+"using libarchive."
+msgstr ""
+
+#: gnu/packages/pdf.scm:459
+msgid "PS support for zathura (libspectre backend)"
+msgstr ""
+
+#: gnu/packages/pdf.scm:460
+msgid ""
+"The zathura-ps plugin adds PS support to zathura\n"
+"using libspectre."
+msgstr ""
+
+#: gnu/packages/pdf.scm:495
+msgid "DjVu support for zathura (DjVuLibre backend)"
+msgstr ""
+
+#: gnu/packages/pdf.scm:496
+msgid ""
+"The zathura-djvu plugin adds DjVu support to zathura\n"
+"using the DjVuLibre library."
+msgstr ""
+
+#: gnu/packages/pdf.scm:539
+msgid "PDF support for zathura (mupdf backend)"
+msgstr ""
+
+#: gnu/packages/pdf.scm:540
+msgid ""
+"The zathura-pdf-mupdf plugin adds PDF support to zathura\n"
+"by using the @code{mupdf} rendering library."
+msgstr ""
+
+#: gnu/packages/pdf.scm:575
+msgid "PDF support for zathura (poppler backend)"
+msgstr ""
+
+#: gnu/packages/pdf.scm:576
+msgid ""
+"The zathura-pdf-poppler plugin adds PDF support to zathura\n"
+"by using the poppler rendering engine."
+msgstr ""
+
+#: gnu/packages/pdf.scm:632
+#, fuzzy
+#| msgid "Lightweight PDF viewer and toolkit"
+msgid "Lightweight keyboard-driven PDF viewer"
+msgstr "Malpeza PDF-montrilo kaj ilaro"
+
+#: gnu/packages/pdf.scm:633
+msgid ""
+"Zathura is a customizable document viewer.  It provides a\n"
+"minimalistic interface and an interface that mainly focuses on keyboard\n"
+"interaction."
+msgstr ""
+
+#: gnu/packages/pdf.scm:676
 msgid "Tools to work with the PDF file format"
 msgstr "Iloj por labori kun la PDF dosierformo"
 
-#: gnu/packages/pdf.scm:171
+#: gnu/packages/pdf.scm:678
 msgid ""
 "PoDoFo is a C++ library and set of command-line tools to work with the\n"
 "PDF file format.  It can parse PDF files and load them into memory, and makes\n"
@@ -1759,11 +15862,11 @@ msgid ""
 "extracting content or merging files."
 msgstr ""
 
-#: gnu/packages/pdf.scm:232
+#: gnu/packages/pdf.scm:733
 msgid "Lightweight PDF viewer and toolkit"
 msgstr "Malpeza PDF-montrilo kaj ilaro"
 
-#: gnu/packages/pdf.scm:234
+#: gnu/packages/pdf.scm:735
 msgid ""
 "MuPDF is a C library that implements a PDF and XPS parsing and\n"
 "rendering engine.  It is used primarily to render pages into bitmaps,\n"
@@ -1771,15 +15874,15 @@ msgid ""
 "listing the table of contents and hyperlinks.\n"
 "\n"
 "The library ships with a rudimentary X11 viewer, and a set of command\n"
-"line tools for batch rendering (pdfdraw), examining the file structure\n"
-"(pdfshow), and rewriting files (pdfclean)."
+"line tools for batch rendering @command{pdfdraw}, rewriting files\n"
+"@command{pdfclean}, and examining the file structure @command{pdfshow}."
 msgstr ""
 
-#: gnu/packages/pdf.scm:274
+#: gnu/packages/pdf.scm:782
 msgid "Command-line tools and library for transforming PDF files"
 msgstr "Komandliniaj iloj kaj biblioteko por transformi PDF-dosierojn"
 
-#: gnu/packages/pdf.scm:276
+#: gnu/packages/pdf.scm:784
 msgid ""
 "QPDF is a command-line program that does structural, content-preserving\n"
 "transformations on PDF files.  It could have been called something like\n"
@@ -1788,11 +15891,5521 @@ msgid ""
 "program capable of converting PDF into other formats."
 msgstr ""
 
-#: gnu/packages/photo.scm:46
+#: gnu/packages/pdf.scm:816
+msgid "Notetaking using a stylus"
+msgstr ""
+
+#: gnu/packages/pdf.scm:818
+msgid ""
+"Xournal is an application for notetaking, sketching, keeping a journal\n"
+"using a stylus."
+msgstr ""
+
+#: gnu/packages/pdf.scm:877
+msgid "Handwriting notetaking software with PDF annotation support"
+msgstr ""
+
+#: gnu/packages/pdf.scm:878
+msgid ""
+"Xournal++ is a hand note taking software written in\n"
+"C++ with the target of flexibility, functionality and speed.  Stroke\n"
+"recognizer and other parts are based on Xournal code.\n"
+"\n"
+"Xournal++ features:\n"
+"\n"
+"@itemize\n"
+"@item Support for Pen pressure, e.g., Wacom Tablet\n"
+"@item Support for annotating PDFs\n"
+"@item Fill shape functionality\n"
+"@item PDF Export (with and without paper style)\n"
+"@item PNG Export (with and without transparent background)\n"
+"@item Map different tools / colors etc. to stylus buttons /\n"
+"mouse buttons\n"
+"@item Sidebar with Page Previews with advanced page sorting, PDF\n"
+"Bookmarks and Layers (can be individually hidden, editing layer can be\n"
+"selected)\n"
+"@item enhanced support for image insertion\n"
+"@item Eraser with multiple configurations\n"
+"@item LaTeX support\n"
+"@item bug reporting, autosave, and auto backup tools\n"
+"@item Customizeable toolbar, with multiple configurations, e.g., to\n"
+"optimize toolbar for portrait / landscape\n"
+"@item Page Template definitions\n"
+"@item Shape drawing (line, arrow, circle, rectangle)\n"
+"@item Shape resizing and rotation\n"
+"@item Rotation snapping every 45 degrees\n"
+"@item Rect snapping to grid\n"
+"@item Audio recording and playback alongside with handwritten notes\n"
+"@item Multi Language Support, Like English, German, Italian...\n"
+"@item Plugins using LUA Scripting\n"
+"@end itemize"
+msgstr ""
+
+#: gnu/packages/pdf.scm:956
+msgid "Python library for generating PDFs and graphics"
+msgstr ""
+
+#: gnu/packages/pdf.scm:957
+msgid ""
+"This is the ReportLab PDF Toolkit.  It allows rapid creation\n"
+"of rich PDF documents, and also creation of charts in a variety of bitmap and\n"
+"vector formats."
+msgstr ""
+
+#: gnu/packages/pdf.scm:1010
+msgid "PDF presentation tool with visual effects"
+msgstr ""
+
+#: gnu/packages/pdf.scm:1012
+msgid ""
+"Impressive is a tool to display PDF files that provides visual effects\n"
+"such as smooth alpha-blended slide transitions.  It provides additional tools\n"
+"such as zooming, highlighting an area of the screen, and a tool to navigate\n"
+"the PDF pages."
+msgstr ""
+
+#: gnu/packages/pdf.scm:1061
+msgid "Framebuffer and drm-based image viewer"
+msgstr ""
+
+#: gnu/packages/pdf.scm:1063
+msgid ""
+"fbida contains a few applications for viewing and editing images on\n"
+"the framebuffer."
+msgstr ""
+
+#: gnu/packages/pdf.scm:1088
+msgid "PDF to SVG converter"
+msgstr ""
+
+#: gnu/packages/pdf.scm:1089
+msgid ""
+"@command{pdf2svg} is a simple command-line PDF to SVG\n"
+"converter using the Poppler and Cairo libraries."
+msgstr ""
+
+#: gnu/packages/pdf.scm:1120 gnu/packages/pdf.scm:1157
+msgid "Pure Python PDF toolkit"
+msgstr ""
+
+#: gnu/packages/pdf.scm:1121
+msgid ""
+"PyPDF2 is a pure Python PDF library capable of:\n"
+"\n"
+"@enumerate\n"
+"@item extracting document information (title, author, …)\n"
+"@item splitting documents page by page\n"
+"@item merging documents page by page\n"
+"@item cropping pages\n"
+"@item merging multiple pages into a single page\n"
+"@item encrypting and decrypting PDF files\n"
+"@end enumerate\n"
+"\n"
+"By being pure Python, it should run on any Python platform without any\n"
+"dependencies on external libraries.  It can also work entirely on\n"
+"@code{StringIO} objects rather than file streams, allowing for PDF\n"
+"manipulation in memory.  It is therefore a useful tool for websites that\n"
+"manage or manipulate PDFs."
+msgstr ""
+
+#: gnu/packages/pdf.scm:1158
+msgid ""
+"PyPDF2 is a pure Python PDF toolkit.\n"
+"\n"
+"Note: This module isn't maintained anymore.  For new projects please use\n"
+"python-pypdf2 instead."
+msgstr ""
+
+#: gnu/packages/pdf.scm:1199
+msgid "Merge, split and re-arrange pages from PDF documents"
+msgstr ""
+
+#: gnu/packages/pdf.scm:1201
+msgid ""
+"PDF Arranger is a small application which allows one to merge or split\n"
+"PDF documents and rotate, crop and rearrange their pages using an interactive\n"
+"and intuitive graphical interface.\n"
+"\n"
+"PDF Arranger was formerly known as PDF-Shuffler."
+msgstr ""
+
+#: gnu/packages/pdf.scm:1224
+msgid "Scale and tile PDF images/pages to print on multiple pages"
+msgstr ""
+
+#: gnu/packages/pdf.scm:1225
+msgid ""
+"@command{pdfposter} can be used to create a large poster by\n"
+"building it from multiple pages and/or printing it on large media.  It expects\n"
+"as input a PDF file, normally printing on a single page.  The output is again\n"
+"a PDF file, maybe containing multiple pages together building the poster.  The\n"
+"input page will be scaled to obtain the desired size.\n"
+"\n"
+"This is much like @command{poster} does for Postscript files, but working with\n"
+"PDF.  Since sometimes @command{poster} does not like your files converted from\n"
+"PDF.  Indeed @command{pdfposter} was inspired by @command{poster}."
+msgstr ""
+
+#: gnu/packages/pdf.scm:1256
+#, fuzzy
+#| msgid "Command-line tools and library for transforming PDF files"
+msgid "Command-line utility to search text in PDF files"
+msgstr "Komandliniaj iloj kaj biblioteko por transformi PDF-dosierojn"
+
+#: gnu/packages/pdf.scm:1258
+msgid ""
+"Pdfgrep searches in pdf files for strings matching a regular expression.\n"
+"Support some GNU grep options as file name output, page number output,\n"
+"optional case insensitivity, count occurrences, color highlights and search in\n"
+"multiple files."
+msgstr ""
+
+#: gnu/packages/pdf.scm:1291
+msgid "Presenter console with multi-monitor support for PDF files"
+msgstr ""
+
+#: gnu/packages/pdf.scm:1293
+msgid ""
+"pdfpc is a presentation viewer application which uses multi-monitor\n"
+"output to provide meta information to the speaker during the presentation.  It\n"
+"is able to show a normal presentation window on one screen, while showing a\n"
+"more sophisticated overview on the other one providing information like a\n"
+"picture of the next slide, as well as the left over time till the end of the\n"
+"presentation.  The input files processed by pdfpc are PDF documents."
+msgstr ""
+
+#: gnu/packages/pdf.scm:1319
+msgid "Pango to PostScript converter"
+msgstr ""
+
+#: gnu/packages/pdf.scm:1321
+msgid ""
+"Paps reads a UTF-8 encoded file and generates a PostScript language\n"
+"rendering of the file through the Pango Cairo back end."
+msgstr ""
+
+#: gnu/packages/pdf.scm:1351
+msgid "PDF manipulation tool"
+msgstr ""
+
+#: gnu/packages/pdf.scm:1352
+msgid ""
+"Stapler is a pure Python alternative to PDFtk, a tool for\n"
+"manipulating PDF documents from the command line.  It supports\n"
+"\n"
+"@itemize\n"
+"@item cherry-picking pages and concatenating them into a new file\n"
+"@item splitting a PDF document into single pages each in its own file\n"
+"@item merging PDF documents with their pages interleaved\n"
+"@item displaying metadata in a PDF document\n"
+"@item displaying the mapping between logical and physical page numbers\n"
+"@end itemize"
+msgstr ""
+
+#: gnu/packages/pdf.scm:1424
+msgid "Document factory for creating PDF files from HTML"
+msgstr ""
+
+#: gnu/packages/pdf.scm:1425
+msgid ""
+"WeasyPrint helps web developers to create PDF documents.  It\n"
+"turns simple HTML pages into gorgeous statistical reports, invoices, tickets,\n"
+"etc.\n"
+"\n"
+"From a technical point of view, WeasyPrint is a visual rendering engine for\n"
+"HTML and CSS that can export to PDF and PNG.  It aims to support web standards\n"
+"for printing.\n"
+"\n"
+"It is based on various libraries but not on a full rendering engine like\n"
+"WebKit or Gecko.  The CSS layout engine is written in Python, designed for\n"
+"pagination, and meant to be easy to hack on.  Weasyprint can also be used as a\n"
+"python library.\n"
+"\n"
+"Keywords: html2pdf, htmltopdf"
+msgstr ""
+
+#: gnu/packages/pem.scm:41
+msgid "Personal expenses manager"
+msgstr ""
+
+#: gnu/packages/pem.scm:43
+msgid ""
+"GNU Pem is a simple tool for tracking personal income and\n"
+"expenses.  It operates from the command line and it stores its data\n"
+"in a basic text format in your home directory.  It can easily print\n"
+"reports of your spending on different expenses via a basic search\n"
+"feature."
+msgstr ""
+
+#: gnu/packages/perl.scm:258
+#, fuzzy
+#| msgid "Implementation of Scheme and related languages"
+msgid "Implementation of the Perl programming language"
+msgstr "Realigo de Scheme kaj rilataj program-lingvoj"
+
+#: gnu/packages/perl.scm:260
+msgid ""
+"Perl is a general-purpose programming language originally developed for\n"
+"text manipulation and now used for a wide range of tasks including system\n"
+"administration, web development, network programming, GUI development, and\n"
+"more."
+msgstr ""
+
+#: gnu/packages/perl.scm:281
+msgid "Module for merging hierarchies using the C3 algorithm"
+msgstr ""
+
+#: gnu/packages/perl.scm:282
+msgid ""
+"This module implements the C3 algorithm, which aims to\n"
+"provide a sane method resolution order under multiple inheritance."
+msgstr ""
+
+#: gnu/packages/perl.scm:300
+msgid "Compute differences between two files or lists"
+msgstr ""
+
+#: gnu/packages/perl.scm:301
+msgid ""
+"This is a module for computing the difference between two\n"
+"files, two strings, or any other two lists of things.  It uses an intelligent\n"
+"algorithm similar to (or identical to) the one used by the Unix \"diff\"\n"
+"program.  It is guaranteed to find the *smallest possible* set of\n"
+"differences."
+msgstr ""
+
+#: gnu/packages/perl.scm:323
+msgid "Use shorter versions of class names"
+msgstr ""
+
+#: gnu/packages/perl.scm:324
+msgid ""
+"The alias module loads the class you specify and exports\n"
+"into your namespace a subroutine that returns the class name.  You can\n"
+"explicitly alias the class to another name or, if you prefer, you can do so\n"
+"implicitly."
+msgstr ""
+
+#: gnu/packages/perl.scm:379
+msgid "Get, build and use SDL libraries"
+msgstr ""
+
+#: gnu/packages/perl.scm:381
+msgid ""
+"Alien::SDL can be used to detect and get configuration settings from an\n"
+"installed SDL and related libraries.  Based on your platform it offers the\n"
+"possibility to download and install prebuilt binaries or to build SDL & co.@:\n"
+"from source codes."
+msgstr ""
+
+#: gnu/packages/perl.scm:403
+msgid "Transparently use Moose or Mouse modules"
+msgstr ""
+
+#: gnu/packages/perl.scm:405
+msgid ""
+"This module facilitates using @code{Moose} or @code{Mouse} modules\n"
+"without changing the code.  By default, Mouse will be provided to libraries,\n"
+"unless Moose is already loaded, or explicitly requested by the end-user.  End\n"
+"users can force the decision of which backend to use by setting the environment\n"
+"variable ANY_MOOSE to be Moose or Mouse."
+msgstr ""
+
+#: gnu/packages/perl.scm:428
+msgid "Configuration files and command line parsing"
+msgstr ""
+
+#: gnu/packages/perl.scm:429
+msgid ""
+"AppConfig is a bundle of Perl5 modules for reading\n"
+"configuration files and parsing command line arguments."
+msgstr ""
+
+#: gnu/packages/perl.scm:449
+msgid "Small utils for array manipulation"
+msgstr ""
+
+#: gnu/packages/perl.scm:450
+msgid ""
+"@code{Array::Utils} is a small pure-perl module containing\n"
+"list manipulation routines."
+msgstr ""
+
+#: gnu/packages/perl.scm:471
+msgid "Allow C/XS libraries to interrupt perl asynchronously"
+msgstr ""
+
+#: gnu/packages/perl.scm:473
+msgid ""
+"@code{Async::Interrupt} implements a single feature only of interest\n"
+"to advanced perl modules, namely asynchronous interruptions (think \"UNIX\n"
+"signals\", which are very similar).\n"
+"\n"
+"Sometimes, modules wish to run code asynchronously (in another thread,\n"
+"or from a signal handler), and then signal the perl interpreter on\n"
+"certain events.  One common way is to write some data to a pipe and use\n"
+"an event handling toolkit to watch for I/O events.  Another way is to\n"
+"send a signal.  Those methods are slow, and in the case of a pipe, also\n"
+"not asynchronous - it won't interrupt a running perl interpreter.\n"
+"\n"
+"This module implements asynchronous notifications that enable you to\n"
+"signal running perl code from another thread, asynchronously, and\n"
+"sometimes even without using a single syscall."
+msgstr ""
+
+#: gnu/packages/perl.scm:503
+msgid "Assorted general utility attributes"
+msgstr ""
+
+#: gnu/packages/perl.scm:504
+msgid ""
+"This package provides various utility functions.  When used\n"
+"without argument, this module provides four universally accessible attributes\n"
+"of general interest as follows:\n"
+"@itemize\n"
+"@item Abstract\n"
+"@item Alias\n"
+"@item Memoize\n"
+"@item Method\n"
+"@item SigHandler\n"
+"@end itemize"
+msgstr ""
+
+#: gnu/packages/perl.scm:539
+msgid "DEC VMS password hashing"
+msgstr ""
+
+#: gnu/packages/perl.scm:540
+msgid ""
+"@code{Authen::DecHpwd} implements the\n"
+"SYS$HASH_PASSWORD password hashing function from VMS (also known as\n"
+"LGI$HPWD) and some associated VMS username and password handling\n"
+"functions.  The password hashing function is implemented in XS with a\n"
+"pure Perl backup version for systems that cannot handle XS."
+msgstr ""
+
+#: gnu/packages/perl.scm:577
+msgid "Hashed passwords/passphrases as objects"
+msgstr ""
+
+#: gnu/packages/perl.scm:578
+msgid ""
+"@code{Authen-Passphrase} is the base class for a\n"
+"system of objects that encapsulate passphrases.  An object of this\n"
+"type is a passphrase recogniser; its job is to recognise whether an\n"
+"offered passphrase is the right one.  For security such passphrase\n"
+"recognisers usually do not themselves know the passphrase they are\n"
+"looking for; they can merely recognise it when they see it.  There are\n"
+"many schemes in use to achieve this effect and the intent of this\n"
+"class is to provide a consistent interface to them all.  In addition\n"
+"to the base class, this module also contains implementations of\n"
+"several specific passphrase schemes."
+msgstr ""
+
+#: gnu/packages/perl.scm:604
+msgid "Lexically disable autovivification"
+msgstr ""
+
+#: gnu/packages/perl.scm:605
+msgid ""
+"When an undefined variable is dereferenced, it gets silently\n"
+"upgraded to an array or hash reference (depending of the type of the\n"
+"dereferencing).  This behaviour is called autovivification and usually does\n"
+"what you mean but it may be unnatural or surprising because your variables get\n"
+"populated behind your back.  This is especially true when several levels of\n"
+"dereferencing are involved, in which case all levels are vivified up to the\n"
+"last, or when it happens in intuitively read-only constructs like\n"
+"@code{exists}.  The pragma provided by this package lets you disable\n"
+"autovivification for some constructs and optionally throws a warning or an\n"
+"error when it would have happened."
+msgstr ""
+
+#: gnu/packages/perl.scm:638
+msgid "Disables bareword filehandles"
+msgstr ""
+
+#: gnu/packages/perl.scm:639
+msgid "This module disables bareword filehandles."
+msgstr ""
+
+#: gnu/packages/perl.scm:659
+msgid "Open a browser in a given URL"
+msgstr ""
+
+#: gnu/packages/perl.scm:660
+msgid ""
+"The functions exported by this module allow you to open URLs\n"
+"in the user's browser.  A set of known commands per OS-name is tested for\n"
+"presence, and the first one found is executed.  With an optional parameter,\n"
+"all known commands are checked."
+msgstr ""
+
+#: gnu/packages/perl.scm:685
+msgid "Execute code after a scope finished compilation"
+msgstr ""
+
+#: gnu/packages/perl.scm:686
+msgid ""
+"This module allows you to execute code when perl finished\n"
+"compiling the surrounding scope."
+msgstr ""
+
+#: gnu/packages/perl.scm:707
+msgid "Wrap OP check callbacks"
+msgstr ""
+
+#: gnu/packages/perl.scm:708
+msgid "This module allows you to wrap OP check callbacks."
+msgstr ""
+
+#: gnu/packages/perl.scm:724
+msgid "Lists of reserved barewords and symbol names"
+msgstr ""
+
+#: gnu/packages/perl.scm:725
+msgid ""
+"@code{B::Keywords} supplies several arrays of exportable\n"
+"keywords: @code{@@Scalars, @@Arrays, @@Hashes, @@Filehandles, @@Symbols,\n"
+"@@Functions, @@Barewords, @@TieIOMethods, @@UNIVERSALMethods and\n"
+"@@ExporterSymbols}."
+msgstr ""
+
+#: gnu/packages/perl.scm:748
+msgid "Benchmarking with statistical confidence"
+msgstr ""
+
+#: gnu/packages/perl.scm:750
+msgid ""
+"The Benchmark::Timer class allows you to time portions of code\n"
+"conveniently, as well as benchmark code by allowing timings of repeated\n"
+"trials.  It is perfect for when you need more precise information about the\n"
+"running time of portions of your code than the Benchmark module will give you,\n"
+"but don't want to go all out and profile your code."
+msgstr ""
+
+#: gnu/packages/perl.scm:774
+msgid "Bit vector library"
+msgstr ""
+
+#: gnu/packages/perl.scm:775
+msgid ""
+"Bit::Vector is an efficient C library which allows you to\n"
+"handle bit vectors, sets (of integers), \"big integer arithmetic\" and boolean\n"
+"matrices, all of arbitrary sizes.  The package also includes an\n"
+"object-oriented Perl module for accessing the C library from Perl, and\n"
+"optionally features overloaded operators for maximum ease of use.  The C\n"
+"library can nevertheless be used stand-alone, without Perl."
+msgstr ""
+
+#: gnu/packages/perl.scm:796
+msgid "Boolean support for Perl"
+msgstr ""
+
+#: gnu/packages/perl.scm:797
+msgid ""
+"This module provides basic Boolean support, by defining two\n"
+"special objects: true and false."
+msgstr ""
+
+#: gnu/packages/perl.scm:815
+msgid "Data files for Business::ISBN"
+msgstr ""
+
+#: gnu/packages/perl.scm:816
+msgid ""
+"This package provides a data pack for @code{Business::ISBN}.\n"
+"These data are generated from the RangeMessage.xml file provided by the ISBN\n"
+"Agency."
+msgstr ""
+
+#: gnu/packages/perl.scm:838
+msgid "Work with International Standard Book Numbers"
+msgstr ""
+
+#: gnu/packages/perl.scm:839
+msgid ""
+"This modules provides tools to deal with International\n"
+"Standard Book Numbers, including ISBN-10 and ISBN-13."
+msgstr ""
+
+#: gnu/packages/perl.scm:857
+msgid "Work with International Standard Serial Numbers"
+msgstr ""
+
+#: gnu/packages/perl.scm:858
+msgid ""
+"This modules provides tools to deal with International\n"
+"Standard Serial Numbers."
+msgstr ""
+
+#: gnu/packages/perl.scm:877
+msgid "Work with International Standard Music Numbers"
+msgstr ""
+
+#: gnu/packages/perl.scm:878
+msgid ""
+"This modules provides tools to deal with International\n"
+"Standard Music Numbers."
+msgstr ""
+
+#: gnu/packages/perl.scm:899
+#, fuzzy
+#| msgid "SQlite interface for Perl"
+msgid "Cache interface for Perl"
+msgstr "Interfaco de SQLite por Perl"
+
+#: gnu/packages/perl.scm:900
+msgid ""
+"The Cache modules are designed to assist a developer in\n"
+"persisting data for a specified period of time.  Often these modules are used\n"
+"in web applications to store data locally to save repeated and redundant\n"
+"expensive calls to remote machines or databases.  People have also been known\n"
+"to use Cache::Cache for its straightforward interface in sharing data between\n"
+"runs of an application or invocations of a CGI-style script or simply as an\n"
+"easy to use abstraction of the file system or shared memory."
+msgstr ""
+
+#: gnu/packages/perl.scm:922
+msgid "Shared memory interprocess cache via mmap"
+msgstr ""
+
+#: gnu/packages/perl.scm:923
+msgid ""
+"A shared memory cache through an mmap'ed file.  It's core is\n"
+"written in C for performance.  It uses fcntl locking to ensure multiple\n"
+"processes can safely access the cache at the same time.  It uses a basic LRU\n"
+"algorithm to keep the most used entries in the cache."
+msgstr ""
+
+#: gnu/packages/perl.scm:944
+msgid "Capture STDOUT and STDERR from Perl, XS or external programs"
+msgstr ""
+
+#: gnu/packages/perl.scm:946
+msgid ""
+"Capture::Tiny provides a simple, portable way to capture almost anything\n"
+"sent to STDOUT or STDERR, regardless of whether it comes from Perl, from XS\n"
+"code or from an external program.  Optionally, output can be teed so that it\n"
+"is captured while being passed through to the original file handles."
+msgstr ""
+
+#: gnu/packages/perl.scm:965
+msgid "Check compatibility with the installed perl version"
+msgstr ""
+
+#: gnu/packages/perl.scm:967
+msgid ""
+"This module is used by Schmorp's modules during configuration stage\n"
+"to test the installed perl for compatibility with his modules."
+msgstr ""
+
+#: gnu/packages/perl.scm:985
+msgid "Alternative warn and die for modules"
+msgstr ""
+
+#: gnu/packages/perl.scm:986
+msgid ""
+"The @code{Carp} routines are useful in your own modules\n"
+"because they act like @code{die()} or @code{warn()}, but with a message\n"
+"which is more likely to be useful to a user of your module.  In the case\n"
+"of @code{cluck}, @code{confess}, and @code{longmess} that context is a\n"
+"summary of every call in the call-stack.  For a shorter message you can use\n"
+"@code{carp} or @code{croak} which report the error as being from where your\n"
+"module was called.  There is no guarantee that that is where the error was,\n"
+"but it is a good educated guess."
+msgstr ""
+
+#: gnu/packages/perl.scm:1011
+msgid "Warns and dies noisily with stack backtraces/"
+msgstr ""
+
+#: gnu/packages/perl.scm:1012
+msgid ""
+"This module is meant as a debugging aid.  It can be used to\n"
+"make a script complain loudly with stack backtraces when @code{warn()}-ing or\n"
+"@code{die()}ing."
+msgstr ""
+
+#: gnu/packages/perl.scm:1031
+msgid "Executable comments for Perl"
+msgstr ""
+
+#: gnu/packages/perl.scm:1032
+msgid ""
+"Carp::Assert is intended for a purpose like the ANSI C\n"
+"library assert.h."
+msgstr ""
+
+#: gnu/packages/perl.scm:1053
+msgid "Convenience wrappers around Carp::Assert"
+msgstr ""
+
+#: gnu/packages/perl.scm:1054
+msgid ""
+"Carp::Assert::More is a set of handy assertion functions for\n"
+"Perl."
+msgstr ""
+
+#: gnu/packages/perl.scm:1073
+msgid "Report errors from a \"clan\" of modules"
+msgstr ""
+
+#: gnu/packages/perl.scm:1074
+msgid ""
+"This module allows errors from a clan (or family) of modules\n"
+"to appear to originate from the caller of the clan.  This is necessary in\n"
+"cases where the clan modules are not classes derived from each other, and thus\n"
+"the Carp.pm module doesn't help."
+msgstr ""
+
+#: gnu/packages/perl.scm:1094
+msgid "Read the CDDB entry for an audio CD in your drive"
+msgstr ""
+
+#: gnu/packages/perl.scm:1095
+msgid "This module can retrieve information from the CDDB."
+msgstr ""
+
+#: gnu/packages/perl.scm:1188
+msgid "Generation of circularly composited renditions"
+msgstr ""
+
+#: gnu/packages/perl.scm:1190
+msgid ""
+"Circos is a program for the generation of publication-quality, circularly\n"
+"composited renditions of genomic data and related annotations."
+msgstr ""
+
+#: gnu/packages/perl.scm:1210
+msgid "Automated accessor generation"
+msgstr ""
+
+#: gnu/packages/perl.scm:1211
+msgid ""
+"This module automagically generates accessors/mutators for\n"
+"your class."
+msgstr ""
+
+#: gnu/packages/perl.scm:1233
+msgid "Faster, but less expandable, chained accessors"
+msgstr ""
+
+#: gnu/packages/perl.scm:1234
+msgid ""
+"A chained accessor is one that always returns the object\n"
+"when called with parameters (to set), and the value of the field when called\n"
+"with no arguments.  This module subclasses Class::Accessor in order to provide\n"
+"the same mk_accessors interface."
+msgstr ""
+
+#: gnu/packages/perl.scm:1260
+msgid "Build groups of accessors"
+msgstr ""
+
+#: gnu/packages/perl.scm:1261
+msgid ""
+"This class lets you build groups of accessors that will call\n"
+"different getters and setters."
+msgstr ""
+
+#: gnu/packages/perl.scm:1280
+msgid "Pragma to use the C3 method resolution order algorithm"
+msgstr ""
+
+#: gnu/packages/perl.scm:1281
+msgid ""
+"This is pragma to change Perl 5's standard method resolution\n"
+"order from depth-first left-to-right (a.k.a - pre-order) to the more\n"
+"sophisticated C3 method resolution order."
+msgstr ""
+
+#: gnu/packages/perl.scm:1306
+msgid "Drop-in replacement for NEXT"
+msgstr ""
+
+#: gnu/packages/perl.scm:1307
+msgid ""
+"This module is intended as a drop-in replacement for NEXT,\n"
+"supporting the same interface, but using Class::C3 to do the hard work."
+msgstr ""
+
+#: gnu/packages/perl.scm:1331
+msgid "Load mix-ins or components to your C3-based class"
+msgstr ""
+
+#: gnu/packages/perl.scm:1332
+msgid ""
+"This module will inject base classes to your module using\n"
+"the Class::C3 method resolution order."
+msgstr ""
+
+#: gnu/packages/perl.scm:1350
+msgid "Inheritable, overridable class data"
+msgstr ""
+
+#: gnu/packages/perl.scm:1351
+msgid ""
+"Class::Data::Inheritable is for creating accessor/mutators\n"
+"to class data.  That is, if you want to store something about your class as a\n"
+"whole (instead of about a single object).  This data is then inherited by your\n"
+"subclasses and can be overridden."
+msgstr ""
+
+#: gnu/packages/perl.scm:1371
+msgid "Class for easy date and time manipulation"
+msgstr ""
+
+#: gnu/packages/perl.scm:1372
+msgid ""
+"This module provides a general-purpose date and datetime\n"
+"type for perl."
+msgstr ""
+
+#: gnu/packages/perl.scm:1389
+msgid "Base class for error handling"
+msgstr ""
+
+#: gnu/packages/perl.scm:1391
+msgid ""
+"@code{Class::ErrorHandler} provides an error-handling mechanism that is generic\n"
+"enough to be used as the base class for a variety of OO classes.  Subclasses inherit\n"
+"its two error-handling methods, error and errstr, to communicate error messages back\n"
+"to the calling program."
+msgstr ""
+
+#: gnu/packages/perl.scm:1412
+msgid "Utility methods for factory classes"
+msgstr ""
+
+#: gnu/packages/perl.scm:1413
+msgid "This module exports methods useful for factory classes."
+msgstr ""
+
+#: gnu/packages/perl.scm:1430
+msgid "Get information about a class and its structure"
+msgstr ""
+
+#: gnu/packages/perl.scm:1431
+msgid ""
+"Class::Inspector allows you to get information about a\n"
+"loaded class."
+msgstr ""
+
+#: gnu/packages/perl.scm:1459
+msgid "Working (require \"Class::Name\") and more"
+msgstr ""
+
+#: gnu/packages/perl.scm:1460
+msgid ""
+"\"require EXPR\" only accepts Class/Name.pm style module\n"
+"names, not Class::Name.  For that, this module provides \"load_class\n"
+"'Class::Name'\"."
+msgstr ""
+
+#: gnu/packages/perl.scm:1484
+msgid "XS implementation of parts of Class::Load"
+msgstr ""
+
+#: gnu/packages/perl.scm:1485
+msgid ""
+"This module provides an XS implementation for portions of\n"
+"Class::Load."
+msgstr ""
+
+#: gnu/packages/perl.scm:1504
+msgid "Create generic methods for OO Perl"
+msgstr ""
+
+#: gnu/packages/perl.scm:1505
+msgid ""
+"This module solves the problem of having to continually\n"
+"write accessor methods for your objects that perform standard tasks."
+msgstr ""
+
+#: gnu/packages/perl.scm:1525
+msgid "Moose-like method modifiers"
+msgstr ""
+
+#: gnu/packages/perl.scm:1526
+msgid ""
+"Class::Method::Modifiers provides three modifiers:\n"
+"@code{before}, @code{around}, and @code{after}.  @code{before} and @code{after}\n"
+"are run just before and after the method they modify, but can not really affect\n"
+"that original method.  @code{around} is run in place of the original method,\n"
+"with a hook to easily call that original method."
+msgstr ""
+
+#: gnu/packages/perl.scm:1554
+msgid "Dynamic class mixing"
+msgstr ""
+
+#: gnu/packages/perl.scm:1555
+msgid ""
+"The @code{mix_class} function provided by this\n"
+"module dynamically generates anonymous classes with specified\n"
+"inheritance.  This is useful where an incomplete class requires use of\n"
+"a mixin in order to become instantiable."
+msgstr ""
+
+#: gnu/packages/perl.scm:1575
+msgid "Implementation of a singleton class for Perl"
+msgstr ""
+
+#: gnu/packages/perl.scm:1576
+msgid ""
+"This module implements a Singleton class from which other\n"
+"classes can be derived.  By itself, the Class::Singleton module does very\n"
+"little other than manage the instantiation of a single object."
+msgstr ""
+
+#: gnu/packages/perl.scm:1595
+msgid "Minimalist class construction"
+msgstr ""
+
+#: gnu/packages/perl.scm:1596
+msgid ""
+"This module offers a minimalist class construction kit.  It\n"
+"uses no non-core modules for any recent Perl."
+msgstr ""
+
+#: gnu/packages/perl.scm:1617
+msgid "Unload a class"
+msgstr ""
+
+#: gnu/packages/perl.scm:1618
+msgid ""
+"Class:Unload unloads a given class by clearing out its\n"
+"symbol table and removing it from %INC."
+msgstr ""
+
+#: gnu/packages/perl.scm:1636
+msgid "Generate fast XS accessors without runtime compilation"
+msgstr ""
+
+#: gnu/packages/perl.scm:1637
+msgid ""
+"Class::XSAccessor implements fast read, write, and\n"
+"read/write accessors in XS.  Additionally, it can provide predicates such as\n"
+"\"has_foo()\" for testing whether the attribute \"foo\" is defined in the\n"
+"object.  It only works with objects that are implemented as ordinary hashes.\n"
+"Class::XSAccessor::Array implements the same interface for objects that use\n"
+"arrays for their internal representation."
+msgstr ""
+
+#: gnu/packages/perl.scm:1657 gnu/packages/perl.scm:1705
+msgid "Recursively copy Perl datatypes"
+msgstr ""
+
+#: gnu/packages/perl.scm:1659
+msgid ""
+"This module provides a clone() method which makes recursive copies of\n"
+"nested hash, array, scalar and reference types, including tied variables and\n"
+"objects."
+msgstr ""
+
+#: gnu/packages/perl.scm:1685
+msgid "Choose appropriate Perl @code{clone} utility"
+msgstr ""
+
+#: gnu/packages/perl.scm:1686
+msgid ""
+"This @code{Clone::Choose} module checks several different\n"
+"modules which provide a @code{clone()} function and selects an appropriate\n"
+"one."
+msgstr ""
+
+#: gnu/packages/perl.scm:1706
+msgid ""
+"This module provides a general-purpose @code{clone} function\n"
+"to make deep copies of Perl data structures.  It calls itself recursively to\n"
+"copy nested hash, array, scalar and reference types, including tied variables\n"
+"and objects."
+msgstr ""
+
+#: gnu/packages/perl.scm:1726
+msgid "Sane defaults for Perl programs"
+msgstr ""
+
+#: gnu/packages/perl.scm:1727
+msgid ""
+"This module implements some sane defaults for Perl programs,\n"
+"as defined by two typical specimens of Perl coders."
+msgstr ""
+
+#: gnu/packages/perl.scm:1751
+msgid "Perl extension for libconfig"
+msgstr ""
+
+#: gnu/packages/perl.scm:1753
+msgid ""
+"Conf::Libconfig is a Perl interface to the libconfig configuration file\n"
+"library.  It support scalar, array, and hash data structures just like its C/C++\n"
+"counterpart.  It reduces the effort required to implement a configuration file\n"
+"parser in your Perl programme and allows sharing configuration files between\n"
+"languages."
+msgstr ""
+
+#: gnu/packages/perl.scm:1773
+msgid "Grammar-based config parser"
+msgstr ""
+
+#: gnu/packages/perl.scm:1775
+msgid ""
+"Config::Grammar is a module to parse configuration files.  The\n"
+"configuration may consist of multiple-level sections with assignments and\n"
+"tabular data."
+msgstr ""
+
+#: gnu/packages/perl.scm:1796
+msgid "Load configuration from different file formats"
+msgstr ""
+
+#: gnu/packages/perl.scm:1797
+msgid ""
+"Config::Any provides a facility for Perl applications and\n"
+"libraries to load configuration data from multiple different file formats.  It\n"
+"supports XML, YAML, JSON, Apache-style configuration, and Perl code."
+msgstr ""
+
+#: gnu/packages/perl.scm:1818
+msgid "Package for configuration files outside your Perl script"
+msgstr ""
+
+#: gnu/packages/perl.scm:1819
+msgid ""
+"This package provides a way to have readable configuration\n"
+"files outside your Perl script.  Configurations can be imported, sections\n"
+"can be grouped, and settings can be accessed from a tied hash."
+msgstr ""
+
+#: gnu/packages/perl.scm:1840
+msgid "Module to implement some AutoConf macros in Perl"
+msgstr ""
+
+#: gnu/packages/perl.scm:1841
+msgid ""
+"Config::AutoConf is intended to provide the same\n"
+"opportunities to Perl developers as GNU Autoconf does for Shell developers."
+msgstr ""
+
+#: gnu/packages/perl.scm:1858
+msgid "Generic Config Module"
+msgstr ""
+
+#: gnu/packages/perl.scm:1859
+msgid ""
+"This module opens a config file and parses its contents for\n"
+"you.  The format of config files supported by Config::General is inspired by\n"
+"the well known Apache config format and is 100% compatible with Apache\n"
+"configs, but you can also just use simple name/value pairs in your config\n"
+"files.  In addition to the capabilities of an Apache config file it supports\n"
+"some enhancements such as here-documents, C-style comments, and multiline\n"
+"options."
+msgstr ""
+
+#: gnu/packages/perl.scm:1889
+msgid "Parse Git style configuration files"
+msgstr ""
+
+#: gnu/packages/perl.scm:1891
+msgid ""
+"This module handles parsing, modifying and creating configuration files\n"
+"of the style used by the Git version control system."
+msgstr ""
+
+#: gnu/packages/perl.scm:1913
+msgid "Simple .ini-file format reader and writer"
+msgstr ""
+
+#: gnu/packages/perl.scm:1914
+msgid ""
+"@code{Config::INI} is a module that facilates the reading\n"
+"and writing of @code{.ini}-style configuration files."
+msgstr ""
+
+#: gnu/packages/perl.scm:1935
+msgid "Preserve context during subroutine call"
+msgstr ""
+
+#: gnu/packages/perl.scm:1936
+msgid ""
+"This module runs code after a subroutine call, preserving\n"
+"the context the subroutine would have seen if it were the last statement in\n"
+"the caller."
+msgstr ""
+
+#: gnu/packages/perl.scm:1961
+msgid "Extract data from Macintosh BinHex files"
+msgstr ""
+
+#: gnu/packages/perl.scm:1963
+msgid ""
+"BinHex is a format for transporting files safely through electronic\n"
+"mail, as short-lined, 7-bit, semi-compressed data streams.  This module\n"
+"provides a means of converting those data streams back into into binary\n"
+"data."
+msgstr ""
+
+#: gnu/packages/perl.scm:1984
+msgid "Read and write @file{Changes} files"
+msgstr ""
+
+#: gnu/packages/perl.scm:1986
+msgid ""
+"@code{CPAN::Changes} helps users programmatically read and write\n"
+"@file{Changes} files that conform to a common specification."
+msgstr ""
+
+#: gnu/packages/perl.scm:2006
+msgid "Extract the name and version from a distribution filename"
+msgstr ""
+
+#: gnu/packages/perl.scm:2008
+msgid ""
+"@code{CPAN::DistnameInfo} uses heuristics to extract the distribution\n"
+"name and version from filenames."
+msgstr ""
+
+#: gnu/packages/perl.scm:2028
+msgid "Verify requirements in a CPAN::Meta object"
+msgstr ""
+
+#: gnu/packages/perl.scm:2029
+msgid ""
+"This module verifies if requirements described in a\n"
+"CPAN::Meta object are present."
+msgstr ""
+
+#: gnu/packages/perl.scm:2048
+msgid "JSON::XS for Cpanel"
+msgstr ""
+
+#: gnu/packages/perl.scm:2049 gnu/packages/perl.scm:5608
+msgid ""
+"This module converts Perl data structures to JSON and vice\n"
+"versa."
+msgstr ""
+
+#: gnu/packages/perl.scm:2070
+msgid "Encrypt Data with Cipher Block Chaining Mode"
+msgstr ""
+
+#: gnu/packages/perl.scm:2071
+msgid ""
+"@code{Crypt::CBC} is a Perl-only implementation of\n"
+"the cryptographic Cipher Block Chaining (CBC) mode.  In combination\n"
+"with a block cipher such as @code{Crypt::Rijndael} you can encrypt and\n"
+"decrypt messages of arbitrarily long length.  The encrypted messages\n"
+"are compatible with the encryption format used by SSLeay."
+msgstr ""
+
+#: gnu/packages/perl.scm:2095
+msgid "DES encryption module"
+msgstr ""
+
+#: gnu/packages/perl.scm:2096
+msgid ""
+"@code{Crypt::DES} is an XS-based implementation of\n"
+"the DES cryptography algorithm.  The module implements the\n"
+"@code{Crypt::CBC} interface which has blocksize, keysize, encrypt and\n"
+"decrypt functions."
+msgstr ""
+
+#: gnu/packages/perl.scm:2123
+msgid "The Eksblowfish block cipher"
+msgstr ""
+
+#: gnu/packages/perl.scm:2124
+msgid ""
+"Eksblowfish is a variant of the Blowfish cipher,\n"
+"modified to make the key setup very expensive.  This doesn't make it\n"
+"significantly cryptographically stronger but is intended to hinder\n"
+"brute-force attacks.  Eksblowfish is a parameterised (family-keyed)\n"
+"cipher.  It takes a cost parameter that controls how expensive the key\n"
+"scheduling is.  It also takes a family key, known as the \"salt\".\n"
+"Cost and salt parameters together define a cipher family.  Within each\n"
+"family, the key determines the encryption function.  This distribution\n"
+"also includes an implementation of @code{bcrypt}, the Unix crypt()\n"
+"password hashing algorithm based on Eksblowfish."
+msgstr ""
+
+#: gnu/packages/perl.scm:2156
+msgid "Emulate the MySQL PASSWORD() function"
+msgstr ""
+
+#: gnu/packages/perl.scm:2157
+msgid ""
+"@code{Crypt::MySQL} emulates the MySQL PASSWORD()\n"
+"function.  The module does not depend on an interface to the MySQL\n"
+"database server.  This enables the comparison of encrypted passwords\n"
+"without the need for a real MySQL environment."
+msgstr ""
+
+#: gnu/packages/perl.scm:2180
+msgid "Interoperable MD5-based crypt() functions"
+msgstr ""
+
+#: gnu/packages/perl.scm:2181
+msgid ""
+"@code{Crypt::PasswdMD5} provides various\n"
+"crypt()-compatible interfaces to the MD5-based crypt() function found\n"
+"in various *nixes.  It is based on the implementation found on FreeBSD\n"
+"2.2.[56]-RELEASE."
+msgstr ""
+
+#: gnu/packages/perl.scm:2201
+msgid "Random password generator"
+msgstr ""
+
+#: gnu/packages/perl.scm:2202
+msgid ""
+"Crypt::RandPasswd provides three functions that can be used\n"
+"to generate random passwords, constructed from words, letters, or characters.\n"
+"This code is a Perl implementation of the Automated Password Generator\n"
+"standard, like the program described in \"A Random Word Generator For\n"
+"Pronounceable Passwords\".  This code is a re-engineering of the program\n"
+"contained in Appendix A of FIPS Publication 181, \"Standard for Automated\n"
+"Password Generator\"."
+msgstr ""
+
+#: gnu/packages/perl.scm:2226
+msgid "Crypt::CBC compliant Rijndael encryption module"
+msgstr ""
+
+#: gnu/packages/perl.scm:2227
+msgid ""
+"This module implements the Rijndael cipher which has\n"
+"been selected as the Advanced Encryption Standard.  The keysize for\n"
+"Rijndael is 32 bytes.  The blocksize is 16 bytes (128 bits).  The\n"
+"supported encryption modes are:\n"
+"\n"
+"@itemize\n"
+"@item @code{MODE_CBC}---Cipher Block Chaining\n"
+"@item @code{MODE_CFB}---Cipher feedback\n"
+"@item @code{MODE_CTR}---Counter mode\n"
+"@item @code{MODE_ECB}---Electronic cookbook mode\n"
+"@item @code{MODE_OFB}---Output feedback\n"
+"@end itemize"
+msgstr ""
+
+#: gnu/packages/perl.scm:2257
+msgid "Perl implementation of the RC4 encryption algorithm"
+msgstr ""
+
+#: gnu/packages/perl.scm:2258
+#, fuzzy
+#| msgid "Curses Implementation of the Glk API"
+msgid "A pure Perl implementation of the RC4 algorithm."
+msgstr "Realigo curses de la API Glk"
+
+#: gnu/packages/perl.scm:2276
+msgid "XS interface for a portable traditional crypt function"
+msgstr ""
+
+#: gnu/packages/perl.scm:2277
+msgid ""
+"@code{Crypt::UnixCrypt_XS} implements the DES-based\n"
+"Unix @code{crypt} function.  For those who need to construct\n"
+"non-standard variants of @code{crypt}, the various building blocks\n"
+"used in @code{crypt} are also supplied separately."
+msgstr ""
+
+#: gnu/packages/perl.scm:2300
+msgid "Temporarily change working directory"
+msgstr ""
+
+#: gnu/packages/perl.scm:2302
+msgid ""
+"@code{Cwd::Guard} changes the current directory using a limited scope.\n"
+"It returns to the previous working directory when the object is destroyed."
+msgstr ""
+
+#: gnu/packages/perl.scm:2339
+#, fuzzy
+#| msgid "Library for accessing zip files"
+msgid "Library for genomic analysis"
+msgstr "Biblioteko por aliri zip-dosierojn"
+
+#: gnu/packages/perl.scm:2340
+msgid ""
+"Chaolin Zhang's Perl Library (czplib) contains assorted\n"
+"functions and data structures for processing and analysing genomic and\n"
+"bioinformatics data."
+msgstr ""
+
+#: gnu/packages/perl.scm:2369 gnu/packages/perl.scm:2648
+msgid "Base classes wrapping fundamental Perl data types"
+msgstr ""
+
+#: gnu/packages/perl.scm:2370
+msgid ""
+"Collection of classes that wrap fundamental data types that\n"
+"exist in Perl.  These classes and methods as they exist today are an attempt\n"
+"to mirror functionality provided by Moose's Native Traits.  One important\n"
+"thing to note is all classes currently do no validation on constructor\n"
+"input."
+msgstr ""
+
+#: gnu/packages/perl.scm:2393
+msgid "Compare Perl data structures"
+msgstr ""
+
+#: gnu/packages/perl.scm:2394
+msgid ""
+"This module compares arbitrary data structures to see if\n"
+"they are copies of each other."
+msgstr ""
+
+#: gnu/packages/perl.scm:2422
+msgid "Entropy (randomness) management"
+msgstr ""
+
+#: gnu/packages/perl.scm:2423
+msgid ""
+"@code{Data::Entropy} provides modules relating to\n"
+"the generation and use of entropy.  The Data::Entropy::Source class\n"
+"manages the entropy coming from a particular source.  This class acts\n"
+"as a layer over a raw entropy source, which may be a normal I/O handle\n"
+"or a special-purpose class.  The Data::Entropy::RawSource::* classes\n"
+"provide fundamental sources of entropy.  The sources specially\n"
+"supported are an OS-supplied entropy collector, downloads from servers\n"
+"on the Internet, and cryptographic fake entropy.  The\n"
+"Data::Entropy::Algorithms module contains a collection of fundamental\n"
+"algorithms that use entropy.  There are random number generators and\n"
+"functions to shuffle arrays."
+msgstr ""
+
+#: gnu/packages/perl.scm:2455
+msgid "Details of the native integer data type"
+msgstr ""
+
+#: gnu/packages/perl.scm:2456
+msgid ""
+"This module is about the native integer numerical\n"
+"data type.  A native integer is one of the types of datum that can\n"
+"appear in the numeric part of a Perl scalar.  This module supplies\n"
+"constants describing the native integer type.  Both signed and\n"
+"unsigned representations are handled."
+msgstr ""
+
+#: gnu/packages/perl.scm:2477
+msgid "Perl extension for generating unique identifiers"
+msgstr ""
+
+#: gnu/packages/perl.scm:2478
+msgid ""
+"@code{Data::Uniqid} provides three simple routines for\n"
+"generating unique ids.  These ids are coded with a Base62 system to make them\n"
+"short and handy (e.g. to use it as part of a URL)."
+msgstr ""
+
+#: gnu/packages/perl.scm:2497
+msgid "Pretty printing of data structures"
+msgstr ""
+
+#: gnu/packages/perl.scm:2498
+msgid ""
+"This module provide functions that takes a list of values as\n"
+"their argument and produces a string as its result.  The string contains Perl\n"
+"code that, when \"eval\"ed, produces a deep copy of the original arguments."
+msgstr ""
+
+#: gnu/packages/perl.scm:2517
+msgid "Convert data structures to strings"
+msgstr ""
+
+#: gnu/packages/perl.scm:2518
+msgid ""
+"Given a list of scalars or reference variables,\n"
+"@code{Data::Dumper} writes out their contents in Perl syntax.  The references\n"
+"can also be objects.  The content of each variable is output in a single Perl\n"
+"statement.  It handles self-referential structures correctly."
+msgstr ""
+
+#: gnu/packages/perl.scm:2538
+msgid "Concise data dumper"
+msgstr ""
+
+#: gnu/packages/perl.scm:2539
+msgid ""
+"Data::Dumper::Concise provides a dumper with Less\n"
+"indentation and newlines plus sub deparsing."
+msgstr ""
+
+#: gnu/packages/perl.scm:2562
+msgid "Details of the floating point data type"
+msgstr ""
+
+#: gnu/packages/perl.scm:2563
+msgid ""
+"@code{Data::Float} is about the native floating\n"
+"point numerical data type.  A floating point number is one of the\n"
+"types of datum that can appear in the numeric part of a Perl scalar.\n"
+"This module supplies constants describing the native floating point\n"
+"type, classification functions and functions to manipulate floating\n"
+"point values at a low level."
+msgstr ""
+
+#: gnu/packages/perl.scm:2589
+msgid "Parse and validate simple name/value option pairs"
+msgstr ""
+
+#: gnu/packages/perl.scm:2591
+msgid "Data::OptList provides a simple syntax for name/value option pairs."
+msgstr ""
+
+#: gnu/packages/perl.scm:2612
+msgid "Help when paging through sets of results"
+msgstr ""
+
+#: gnu/packages/perl.scm:2613
+msgid ""
+"When searching through large amounts of data, it is often\n"
+"the case that a result set is returned that is larger than we want to display\n"
+"on one page.  This results in wanting to page through various pages of data.\n"
+"The maths behind this is unfortunately fiddly, hence this module."
+msgstr ""
+
+#: gnu/packages/perl.scm:2650
+msgid ""
+"@code{Data::Perl} is a container class for the following classes:\n"
+"@itemize\n"
+"@item @code{Data::Perl::Collection::Hash}\n"
+"@item @code{Data::Perl::Collection::Array}\n"
+"@item @code{Data::Perl::String}\n"
+"@item @code{Data::Perl::Number}\n"
+"@item @code{Data::Perl::Counter}\n"
+"@item @code{Data::Perl::Bool}\n"
+"@item @code{Data::Perl::Code}\n"
+"@end itemize"
+msgstr ""
+
+#: gnu/packages/perl.scm:2681
+msgid "Colored pretty-print of Perl data structures and objects"
+msgstr ""
+
+#: gnu/packages/perl.scm:2682
+msgid ""
+"Display Perl variables and objects on screen, properly\n"
+"formatted (to be inspected by a human)."
+msgstr ""
+
+#: gnu/packages/perl.scm:2705
+msgid "Conditionally split data into records"
+msgstr ""
+
+#: gnu/packages/perl.scm:2706
+msgid ""
+"This Perl module allows you to split data into records by\n"
+"not only specifying what you wish to split the data on, but also by specifying\n"
+"an \"unless\" regular expression.  If the text in question matches the\n"
+"\"unless\" regex, it will not be split there.  This allows us to do things\n"
+"like split on newlines unless newlines are embedded in quotes."
+msgstr ""
+
+#: gnu/packages/perl.scm:2734
+msgid "Read multiple hunks of data out of your DATA section"
+msgstr ""
+
+#: gnu/packages/perl.scm:2735
+msgid ""
+"This package provides a Perl library to read multiple hunks\n"
+"of data out of your DATA section."
+msgstr ""
+
+#: gnu/packages/perl.scm:2754
+msgid "Read data from __DATA__"
+msgstr ""
+
+#: gnu/packages/perl.scm:2756
+msgid ""
+"Data::Section::Simple is a simple module to extract data from __DATA__\n"
+"section of the file."
+msgstr ""
+
+#: gnu/packages/perl.scm:2776
+msgid "Structured tags datastructures"
+msgstr ""
+
+#: gnu/packages/perl.scm:2778
+msgid ""
+"This module is for manipulating data as hierarchical tag/value\n"
+"pairs (Structured TAGs or Simple Tree AGgregates).  These datastructures can\n"
+"be represented as nested arrays, which have the advantage of being native to\n"
+"Perl."
+msgstr ""
+
+#: gnu/packages/perl.scm:2805
+msgid "N at a time iteration API"
+msgstr ""
+
+#: gnu/packages/perl.scm:2806
+msgid ""
+"This module tries to find middle ground between one at a\n"
+"time and all at once processing of data sets.  The purpose of this module is\n"
+"to avoid the overhead of implementing an iterative api when this isn't\n"
+"necessary, without breaking forward compatibility in case that becomes\n"
+"necessary later on."
+msgstr ""
+
+#: gnu/packages/perl.scm:2830
+msgid "Dynamic generation of nested combinations of variants"
+msgstr ""
+
+#: gnu/packages/perl.scm:2831
+msgid ""
+"Data::Tumbler - Dynamic generation of nested combinations of\n"
+"variants."
+msgstr ""
+
+#: gnu/packages/perl.scm:2857
+msgid "Visitor style traversal of Perl data structures"
+msgstr ""
+
+#: gnu/packages/perl.scm:2858
+msgid ""
+"This module is a simple visitor implementation for Perl\n"
+"values.  It has a main dispatcher method, visit, which takes a single perl\n"
+"value and then calls the methods appropriate for that value.  It can\n"
+"recursively map (cloning as necessary) or just traverse most structures, with\n"
+"support for per-object behavior, circular structures, visiting tied\n"
+"structures, and all ref types (hashes, arrays, scalars, code, globs)."
+msgstr ""
+
+#: gnu/packages/perl.scm:2883
+msgid "Gregorian calendar date calculations"
+msgstr ""
+
+#: gnu/packages/perl.scm:2884
+msgid ""
+"This package consists of a Perl module for date calculations\n"
+"based on the Gregorian calendar, thereby complying with all relevant norms and\n"
+"standards: ISO/R 2015-1971, DIN 1355 and, to some extent, ISO 8601 (where\n"
+"applicable)."
+msgstr ""
+
+#: gnu/packages/perl.scm:2908
+msgid "XS wrapper for Date::Calc"
+msgstr ""
+
+#: gnu/packages/perl.scm:2909
+msgid ""
+"Date::Calc::XS is an XS wrapper and C library plug-in for\n"
+"Date::Calc."
+msgstr ""
+
+#: gnu/packages/perl.scm:2931
+msgid "Date manipulation routines"
+msgstr ""
+
+#: gnu/packages/perl.scm:2932
+msgid ""
+"Date::Manip is a series of modules for common date/time\n"
+"operations, such as comparing two times, determining a date a given amount of\n"
+"time from another, or parsing international times."
+msgstr ""
+
+#: gnu/packages/perl.scm:2951
+msgid "Simple date handling"
+msgstr ""
+
+#: gnu/packages/perl.scm:2952
+msgid ""
+"Dates are complex enough without times and timezones.  This\n"
+"module may be used to create simple date objects.  It handles validation,\n"
+"interval arithmetic, and day-of-week calculation.  It does not deal with\n"
+"hours, minutes, seconds, and time zones."
+msgstr ""
+
+#: gnu/packages/perl.scm:2983
+msgid "Date and time object for Perl"
+msgstr ""
+
+#: gnu/packages/perl.scm:2984
+msgid ""
+"DateTime is a class for the representation of date/time\n"
+"combinations.  It represents the Gregorian calendar, extended backwards in\n"
+"time before its creation (in 1582)."
+msgstr ""
+
+#: gnu/packages/perl.scm:3005
+msgid "Dates in the Julian calendar"
+msgstr ""
+
+#: gnu/packages/perl.scm:3006
+msgid ""
+"This package is a companion module to @code{DateTime.pm}.\n"
+"It implements the Julian calendar.  It supports everything that\n"
+"@code{DateTime.pm} supports and more: about one day per century more, to be\n"
+"precise."
+msgstr ""
+
+#: gnu/packages/perl.scm:3032
+msgid "DateTime set objects"
+msgstr ""
+
+#: gnu/packages/perl.scm:3033
+msgid ""
+"The DateTime::Set module provides a date/time sets\n"
+"implementation.  It allows, for example, the generation of groups of dates,\n"
+"like \"every wednesday\", and then find all the dates matching that pattern,\n"
+"within a time range."
+msgstr ""
+
+#: gnu/packages/perl.scm:3056
+msgid "DateTime rfc2445 recurrences"
+msgstr ""
+
+#: gnu/packages/perl.scm:3057
+msgid ""
+"This module provides convenience methods that let you easily\n"
+"create DateTime::Set objects for RFC 2445 style recurrences."
+msgstr ""
+
+#: gnu/packages/perl.scm:3078
+msgid "DateTime::Set extension for basic recurrences"
+msgstr ""
+
+#: gnu/packages/perl.scm:3079
+msgid ""
+"This module provides convenience methods that let you easily\n"
+"create DateTime::Set objects for various recurrences, such as \"once a month\"\n"
+"or \"every day\".  You can also create more complicated recurrences, such as\n"
+"\"every Monday, Wednesday and Thursday at 10:00 AM and 2:00 PM\"."
+msgstr ""
+
+#: gnu/packages/perl.scm:3104
+msgid "Create DateTime parser classes and objects"
+msgstr ""
+
+#: gnu/packages/perl.scm:3105
+msgid ""
+"DateTime::Format::Builder creates DateTime parsers.  Many\n"
+"string formats of dates and times are simple and just require a basic regular\n"
+"expression to extract the relevant information.  Builder provides a simple way\n"
+"to do this without writing reams of structural code."
+msgstr ""
+
+#: gnu/packages/perl.scm:3134
+msgid "Parse date and time strings"
+msgstr ""
+
+#: gnu/packages/perl.scm:3135
+msgid ""
+"DateTime::Format::Flexible attempts to take any string you\n"
+"give it and parse it into a DateTime object."
+msgstr ""
+
+#: gnu/packages/perl.scm:3161
+msgid "Parse and format iCal datetime and duration strings"
+msgstr ""
+
+#: gnu/packages/perl.scm:3162
+msgid ""
+"This module understands the ICal date/time and duration\n"
+"formats, as defined in RFC 2445.  It can be used to parse these formats in\n"
+"order to create the appropriate objects."
+msgstr ""
+
+#: gnu/packages/perl.scm:3190
+msgid "Parse ISO8601 date and time formats"
+msgstr ""
+
+#: gnu/packages/perl.scm:3191
+msgid ""
+"@code{DateTime::Format::ISO8601} is a DateTime\n"
+"extension that parses almost all ISO8601 date and time formats."
+msgstr ""
+
+#: gnu/packages/perl.scm:3221
+msgid "Machine-readable date/time with natural parsing"
+msgstr ""
+
+#: gnu/packages/perl.scm:3222
+msgid ""
+"DateTime::Format::Natural takes a string with a human\n"
+"readable date/time and creates a machine readable one by applying natural\n"
+"parsing logic."
+msgstr ""
+
+#: gnu/packages/perl.scm:3248
+msgid "Parse and format strp and strf time patterns"
+msgstr ""
+
+#: gnu/packages/perl.scm:3249
+msgid ""
+"This module implements most of `strptime(3)`, the POSIX\n"
+"function that is the reverse of `strftime(3)`, for `DateTime`.  While\n"
+"`strftime` takes a `DateTime` and a pattern and returns a string, `strptime`\n"
+"takes a string and a pattern and returns the `DateTime` object associated."
+msgstr ""
+
+#: gnu/packages/perl.scm:3282
+msgid "Localization support for DateTime.pm"
+msgstr ""
+
+#: gnu/packages/perl.scm:3283
+msgid ""
+"The DateTime::Locale modules provide localization data for\n"
+"the DateTime.pm class."
+msgstr ""
+
+#: gnu/packages/perl.scm:3324
+#, fuzzy
+#| msgid "SQlite interface for Perl"
+msgid "Time zone object for Perl"
+msgstr "Interfaco de SQLite por Perl"
+
+#: gnu/packages/perl.scm:3325
+msgid ""
+"This class is the base class for all time zone objects.  A\n"
+"time zone is represented internally as a set of observances, each of which\n"
+"describes the offset from GMT for a given time period.  Note that without the\n"
+"DateTime module, this module does not do much.  It's primary interface is\n"
+"through a DateTime object, and most users will not need to directly use\n"
+"DateTime::TimeZone methods."
+msgstr ""
+
+#: gnu/packages/perl.scm:3355
+msgid "Parse date/time strings"
+msgstr ""
+
+#: gnu/packages/perl.scm:3356
+msgid ""
+"DateTimeX::Easy uses a variety of DateTime::Format packages\n"
+"to create DateTime objects, with some custom tweaks to smooth out the rough\n"
+"edges (mainly concerning timezone detection and selection)."
+msgstr ""
+
+#: gnu/packages/perl.scm:3377
+msgid "Convert between DateTime and RFC2822/822 formats"
+msgstr ""
+
+#: gnu/packages/perl.scm:3378
+msgid ""
+"RFCs 2822 and 822 specify date formats to be used by email.\n"
+"This module parses and emits such dates."
+msgstr ""
+
+#: gnu/packages/perl.scm:3400
+msgid "Parse and format W3CDTF datetime strings"
+msgstr ""
+
+#: gnu/packages/perl.scm:3402
+msgid ""
+"This module understands the W3CDTF date/time format, an ISO 8601 profile,\n"
+"defined at https://www.w3.org/TR/NOTE-datetime.  This format is the native date\n"
+"format of RSS 1.0.  It can be used to parse these formats in order to create\n"
+"the appropriate objects."
+msgstr ""
+
+#: gnu/packages/perl.scm:3430
+msgid "Custom op checking attached to subroutines"
+msgstr ""
+
+#: gnu/packages/perl.scm:3431
+msgid ""
+"This module makes some new features of the Perl\n"
+"5.14.0 C API available to XS modules running on older versions of\n"
+"Perl.  The features are centred around the function\n"
+"@code{cv_set_call_checker}, which allows XS code to attach a magical\n"
+"annotation to a Perl subroutine, resulting in resolvable calls to that\n"
+"subroutine being mutated at compile time by arbitrary C code.  This\n"
+"module makes @code{cv_set_call_checker} and several supporting\n"
+"functions available."
+msgstr ""
+
+#: gnu/packages/perl.scm:3457
+msgid "Meatier version of caller"
+msgstr ""
+
+#: gnu/packages/perl.scm:3458
+msgid "Devel::Caller provides meatier version of caller."
+msgstr ""
+
+#: gnu/packages/perl.scm:3476
+msgid "Check that a command is available"
+msgstr ""
+
+#: gnu/packages/perl.scm:3477
+msgid ""
+"Devel::CheckBin is a perl module that checks whether a\n"
+"particular command is available."
+msgstr ""
+
+#: gnu/packages/perl.scm:3497
+msgid "Check that a library is available"
+msgstr ""
+
+#: gnu/packages/perl.scm:3499
+msgid ""
+"@code{Devel::CheckLib} is a Perl module that checks whether a particular\n"
+"C library and its headers are available.  You can also check for the presence of\n"
+"particular functions in a library, or even that those functions return\n"
+"particular results."
+msgstr ""
+
+#: gnu/packages/perl.scm:3520
+msgid "Check compiler availability"
+msgstr ""
+
+#: gnu/packages/perl.scm:3521
+msgid ""
+"@code{Devel::CheckCompiler} is a tiny module to check\n"
+"whether a compiler is available.  It can test for a C99 compiler, or\n"
+"you can tell it to compile a C source file with optional linker flags."
+msgstr ""
+
+#: gnu/packages/perl.scm:3543
+msgid "Find memory cycles in objects"
+msgstr ""
+
+#: gnu/packages/perl.scm:3545
+msgid ""
+"@code{Devel::Cycle} This is a tool for finding circular references in\n"
+"objects and other types of references.  Because of Perl's reference-count\n"
+"based memory management, circular references will cause memory leaks."
+msgstr ""
+
+#: gnu/packages/perl.scm:3566
+msgid "Provides equivalent of ${^GLOBAL_PHASE} eq 'DESTRUCT' for older perls"
+msgstr ""
+
+#: gnu/packages/perl.scm:3567
+msgid ""
+"Devel::GlobalDestruction provides a function returning the\n"
+"equivalent of \"$@{^GLOBAL_PHASE@} eq 'DESTRUCT'\" for older perls."
+msgstr ""
+
+#: gnu/packages/perl.scm:3587
+msgid "Forces the unavailability of specified Perl modules (for testing)"
+msgstr ""
+
+#: gnu/packages/perl.scm:3588
+msgid ""
+"Given a list of Perl modules/filenames, this module makes\n"
+"@code{require} and @code{use} statements fail (no matter whether the specified\n"
+"files/modules are installed or not)."
+msgstr ""
+
+#: gnu/packages/perl.scm:3607
+msgid "Utility for looking for perl objects that are not reclaimed"
+msgstr ""
+
+#: gnu/packages/perl.scm:3609
+msgid ""
+"This module provides a basic way to discover if a piece of perl code is\n"
+"allocating perl data and not releasing them again."
+msgstr ""
+
+#: gnu/packages/perl.scm:3629
+msgid "Alias lexical variables"
+msgstr ""
+
+#: gnu/packages/perl.scm:3630
+msgid ""
+"Devel::LexAlias provides the ability to alias a lexical\n"
+"variable in a subroutines scope to one of your choosing."
+msgstr ""
+
+#: gnu/packages/perl.scm:3654
+msgid "Introspect overloaded operators"
+msgstr ""
+
+#: gnu/packages/perl.scm:3655
+msgid ""
+"Devel::OverloadInfo returns information about overloaded\n"
+"operators for a given class (or object), including where in the inheritance\n"
+"hierarchy the overloads are declared and where the code implementing it is."
+msgstr ""
+
+#: gnu/packages/perl.scm:3682
+msgid "Partial dumping of data structures"
+msgstr ""
+
+#: gnu/packages/perl.scm:3683
+msgid ""
+"This module is a data dumper optimized for logging of\n"
+"arbitrary parameters."
+msgstr ""
+
+#: gnu/packages/perl.scm:3700
+msgid "Object representing a stack trace"
+msgstr ""
+
+#: gnu/packages/perl.scm:3701
+msgid ""
+"The Devel::StackTrace module contains two classes,\n"
+"Devel::StackTrace and Devel::StackTrace::Frame.  These objects encapsulate the\n"
+"information that can be retrieved via Perl's caller() function, as well as\n"
+"providing a simple interface to this data."
+msgstr ""
+
+#: gnu/packages/perl.scm:3723
+msgid "Displays stack trace in HTML"
+msgstr ""
+
+#: gnu/packages/perl.scm:3724
+msgid ""
+"Devel::StackTrace::AsHTML adds as_html method to\n"
+"Devel::StackTrace which displays the stack trace in beautiful HTML, with code\n"
+"snippet context and function parameters.  If you call it on an instance of\n"
+"Devel::StackTrace::WithLexicals, you even get to see the lexical variables of\n"
+"each stack frame."
+msgstr ""
+
+#: gnu/packages/perl.scm:3745
+msgid "Dump symbol names or the symbol table"
+msgstr ""
+
+#: gnu/packages/perl.scm:3746
+msgid "Devel::Symdump provides access to the perl symbol table."
+msgstr ""
+
+#: gnu/packages/perl.scm:3764
+msgid "Generic CRC functions"
+msgstr ""
+
+#: gnu/packages/perl.scm:3765
+msgid ""
+"The @code{Digest::CRC} module calculates CRC sums of\n"
+"all sorts.  It contains wrapper functions with the correct parameters\n"
+"for CRC-CCITT, CRC-16 and CRC-32."
+msgstr ""
+
+#: gnu/packages/perl.scm:3784
+msgid "Keyed-Hashing for Message Authentication"
+msgstr ""
+
+#: gnu/packages/perl.scm:3785
+msgid ""
+"The Digest::HMAC module follows the common Digest::\n"
+"interface for the RFC 2104 HMAC mechanism."
+msgstr ""
+
+#: gnu/packages/perl.scm:3804
+msgid "Interface to the MD4 Algorithm"
+msgstr ""
+
+#: gnu/packages/perl.scm:3805
+msgid ""
+"The @code{Digest::MD4} module allows you to use the\n"
+"RSA Data Security Inc.@: MD4 Message Digest algorithm from within Perl\n"
+"programs.  The algorithm takes as input a message of arbitrary length\n"
+"and produces as output a 128-bit \"fingerprint\" or \"message digest\"\n"
+"of the input.  MD4 is described in RFC 1320."
+msgstr ""
+
+#: gnu/packages/perl.scm:3834
+msgid "Perl interface to the MD-5 algorithm"
+msgstr ""
+
+#: gnu/packages/perl.scm:3836
+msgid ""
+"The @code{Digest::MD5} module allows you to use the MD5 Message Digest\n"
+"algorithm from within Perl programs.  The algorithm takes as\n"
+"input a message of arbitrary length and produces as output a\n"
+"128-bit \"fingerprint\" or \"message digest\" of the input."
+msgstr ""
+
+#: gnu/packages/perl.scm:3854
+msgid "Perl implementation of the SHA-1 message digest algorithm"
+msgstr ""
+
+#: gnu/packages/perl.scm:3856
+msgid ""
+"This package provides @code{Digest::SHA1}, an implementation of the NIST\n"
+"SHA-1 message digest algorithm for use by Perl programs."
+msgstr ""
+
+#: gnu/packages/perl.scm:3877
+msgid "Declare version conflicts for your dist"
+msgstr ""
+
+#: gnu/packages/perl.scm:3878
+msgid ""
+"This module allows you to specify conflicting versions of\n"
+"modules separately and deal with them after the module is done installing."
+msgstr ""
+
+#: gnu/packages/perl.scm:3901
+msgid "Deconstructed dynamic C library loading"
+msgstr ""
+
+#: gnu/packages/perl.scm:3902
+msgid ""
+"This module provides a function-based interface to\n"
+"dynamic loading as used by Perl.  Some details of dynamic loading are\n"
+"very platform-dependent, so correct use of these functions requires\n"
+"the programmer to be mindfulof the space of platform variations."
+msgstr ""
+
+#: gnu/packages/perl.scm:3924
+msgid "Detect the encoding of data"
+msgstr ""
+
+#: gnu/packages/perl.scm:3925
+msgid ""
+"This package provides a class @code{Encode::Detect} to detect\n"
+"the encoding of data."
+msgstr ""
+
+#: gnu/packages/perl.scm:3943
+msgid "ASCII mapping for eucJP encoding"
+msgstr ""
+
+#: gnu/packages/perl.scm:3944
+#, fuzzy
+#| msgid "This package provides an database interface for Perl."
+msgid ""
+"This package provides an ASCII mapping for the eucJP\n"
+"encoding."
+msgstr "Tiu ĉi pako provizas datumbazan interfacon por Perl."
+
+#: gnu/packages/perl.scm:3962
+msgid "JIS X 0212 (aka JIS 2000) encodings"
+msgstr ""
+
+#: gnu/packages/perl.scm:3963
+msgid ""
+"This package provides encodings for JIS X 0212, which is\n"
+"also known as JIS 2000."
+msgstr ""
+
+#: gnu/packages/perl.scm:3986
+msgid "Additional Chinese encodings"
+msgstr ""
+
+#: gnu/packages/perl.scm:3987
+msgid ""
+"This Perl module provides Chinese encodings that are not\n"
+"part of Perl by default, including \"BIG5-1984\", \"BIG5-2003\", \"BIG5PLUS\",\n"
+"\"BIG5EXT\", \"CCCII\", \"EUC-TW\", \"CNS11643-*\", \"GB18030\", and\n"
+"\"UNISYS\"."
+msgstr ""
+
+#: gnu/packages/perl.scm:4009
+msgid "Advanced operations on path variables"
+msgstr ""
+
+#: gnu/packages/perl.scm:4010
+msgid ""
+"@code{Env::Path} presents an object-oriented interface to\n"
+"path variables, defined as that subclass of environment variables which name\n"
+"an ordered list of file system elements separated by a platform-standard\n"
+"separator."
+msgstr ""
+
+#: gnu/packages/perl.scm:4030
+msgid "OO-ish Error/Exception handling for Perl"
+msgstr ""
+
+#: gnu/packages/perl.scm:4031
+msgid ""
+"The Error package provides two interfaces.  Firstly Error\n"
+"provides a procedural interface to exception handling.  Secondly Error is a\n"
+"base class for errors/exceptions that can either be thrown, for subsequent\n"
+"catch, or can simply be recorded."
+msgstr ""
+
+#: gnu/packages/perl.scm:4056
+msgid "Safely and cleanly create closures via string eval"
+msgstr ""
+
+#: gnu/packages/perl.scm:4057
+msgid ""
+"String eval is often used for dynamic code generation.  For\n"
+"instance, Moose uses it heavily, to generate inlined versions of accessors and\n"
+"constructors, which speeds code up at runtime by a significant amount.  String\n"
+"eval is not without its issues however - it's difficult to control the scope\n"
+"it's used in (which determines which variables are in scope inside the eval),\n"
+"and it's easy to miss compilation errors, since eval catches them and sticks\n"
+"them in $@@ instead.  This module attempts to solve these problems.  It\n"
+"provides an eval_closure function, which evals a string in a clean\n"
+"environment, other than a fixed list of specified variables.  Compilation\n"
+"errors are rethrown automatically."
+msgstr ""
+
+#: gnu/packages/perl.scm:4086
+msgid "Allows you to declare real exception classes in Perl"
+msgstr ""
+
+#: gnu/packages/perl.scm:4087
+msgid ""
+"Exception::Class allows you to declare exception hierarchies\n"
+"in your modules in a \"Java-esque\" manner."
+msgstr ""
+
+#: gnu/packages/perl.scm:4103
+msgid "Lightweight exporting of functions and variables"
+msgstr ""
+
+#: gnu/packages/perl.scm:4105
+msgid ""
+"Exporter::Lite is an alternative to Exporter, intended to provide a\n"
+"lightweight subset of the most commonly-used functionality.  It supports\n"
+"import(), @@EXPORT and @@EXPORT_OK and not a whole lot else."
+msgstr ""
+
+#: gnu/packages/perl.scm:4124
+msgid "Exporter with the features of Sub::Exporter but only core dependencies"
+msgstr ""
+
+#: gnu/packages/perl.scm:4125
+msgid ""
+"Exporter::Tiny supports many of Sub::Exporter's\n"
+"external-facing features including renaming imported functions with the `-as`,\n"
+"`-prefix` and `-suffix` options; explicit destinations with the `into` option;\n"
+"and alternative installers with the `installler` option.  But it's written in\n"
+"only about 40% as many lines of code and with zero non-core dependencies."
+msgstr ""
+
+#: gnu/packages/perl.scm:4148
+msgid "Build.PL install path logic made easy"
+msgstr ""
+
+#: gnu/packages/perl.scm:4149
+msgid ""
+"This module tries to make install path resolution as easy as\n"
+"possible."
+msgstr ""
+
+#: gnu/packages/perl.scm:4167
+msgid "Wrapper for perl's configuration"
+msgstr ""
+
+#: gnu/packages/perl.scm:4168
+msgid ""
+"ExtUtils::Config is an abstraction around the %Config hash.\n"
+"By itself it is not a particularly interesting module by any measure, however\n"
+"it ties together a family of modern toolchain modules."
+msgstr ""
+
+#: gnu/packages/perl.scm:4195
+msgid "Tool for guessing C++ compiler and flags"
+msgstr ""
+
+#: gnu/packages/perl.scm:4196
+msgid ""
+"ExtUtils::CppGuess attempts to guess the C++ compiler that\n"
+"is compatible with the C compiler used to build perl."
+msgstr ""
+
+#: gnu/packages/perl.scm:4215
+msgid "Easily build XS extensions that depend on XS extensions"
+msgstr ""
+
+#: gnu/packages/perl.scm:4217
+msgid ""
+"This module tries to make it easy to build Perl extensions that use\n"
+"functions and typemaps provided by other perl extensions.  This means that a\n"
+"perl extension is treated like a shared library that provides also a C and an\n"
+"XS interface besides the perl one."
+msgstr ""
+
+#: gnu/packages/perl.scm:4237
+msgid "Various portability utilities for module builders"
+msgstr ""
+
+#: gnu/packages/perl.scm:4238
+msgid ""
+"This module provides various portable helper functions for\n"
+"module building modules."
+msgstr ""
+
+#: gnu/packages/perl.scm:4258
+msgid "Tool to build C libraries"
+msgstr ""
+
+#: gnu/packages/perl.scm:4259
+msgid ""
+"Some Perl modules need to ship C libraries together with\n"
+"their Perl code.  Although there are mechanisms to compile and link (or glue)\n"
+"C code in your Perl programs, there isn't a clear method to compile standard,\n"
+"self-contained C libraries.  This module main goal is to help in that task."
+msgstr ""
+
+#: gnu/packages/perl.scm:4282
+msgid "Module to convert Perl XS code into C code"
+msgstr ""
+
+#: gnu/packages/perl.scm:4283
+msgid ""
+"The package contains the ExtUtils::ParseXS module to\n"
+"convert Perl XS code into C code, the ExtUtils::Typemaps module to\n"
+"handle Perl/XS typemap files, and their submodules."
+msgstr ""
+
+#: gnu/packages/perl.scm:4303
+msgid "Simplistic interface to pkg-config"
+msgstr ""
+
+#: gnu/packages/perl.scm:4305
+msgid ""
+"@code{ExtUtils::PkgConfig} is a very simplistic interface to the\n"
+"@command{pkg-config} utility, intended for use in the @file{Makefile.PL}\n"
+"of perl extensions which bind libraries that @command{pkg-config} knows.\n"
+"It is really just boilerplate code that you would have written yourself."
+msgstr ""
+
+#: gnu/packages/perl.scm:4330
+msgid "Set of useful typemaps"
+msgstr ""
+
+#: gnu/packages/perl.scm:4331
+msgid ""
+"The package provides a number of useful typemaps as\n"
+"submodules of ExtUtils::Typemaps."
+msgstr ""
+
+#: gnu/packages/perl.scm:4356
+msgid "XS for C++"
+msgstr ""
+
+#: gnu/packages/perl.scm:4357
+msgid ""
+"This module implements the Perl foreign function\n"
+"interface XS for C++; it is a thin layer over plain XS."
+msgstr ""
+
+#: gnu/packages/perl.scm:4387
+#, fuzzy
+#| msgid "Library for handling PNG files"
+msgid "Watch for changes to files"
+msgstr "Biblioteko por trakti dosierojn PNG"
+
+#: gnu/packages/perl.scm:4388
+msgid ""
+"This module provides a class to monitor a directory for\n"
+"changes made to any file."
+msgstr ""
+
+#: gnu/packages/perl.scm:4410
+msgid "Get directories of configuration files"
+msgstr ""
+
+#: gnu/packages/perl.scm:4411
+msgid ""
+"This module is a helper for installing, reading and finding\n"
+"configuration file locations.  @code{File::ConfigDir} is a module to help out\n"
+"when Perl modules (especially applications) need to read and store\n"
+"configuration files from more than one location."
+msgstr ""
+
+#: gnu/packages/perl.scm:4431
+msgid "Recursively copy files and directories"
+msgstr ""
+
+#: gnu/packages/perl.scm:4432
+msgid ""
+"This module has 3 functions: one to copy files only, one to\n"
+"copy directories only, and one to do either depending on the argument's\n"
+"type."
+msgstr ""
+
+#: gnu/packages/perl.scm:4454
+msgid "Alternative interface to File::Find"
+msgstr ""
+
+#: gnu/packages/perl.scm:4455
+msgid ""
+"File::Find::Rule is a friendlier interface to File::Find.\n"
+"It allows you to build rules which specify the desired files and\n"
+"directories."
+msgstr ""
+
+#: gnu/packages/perl.scm:4478
+msgid "Common rules for searching for Perl things"
+msgstr ""
+
+#: gnu/packages/perl.scm:4479
+msgid ""
+"File::Find::Rule::Perl provides methods for finding various\n"
+"types Perl-related files, or replicating search queries run on a distribution\n"
+"in various parts of the CPAN ecosystem."
+msgstr ""
+
+#: gnu/packages/perl.scm:4500
+msgid "Matches patterns in a series of files"
+msgstr ""
+
+#: gnu/packages/perl.scm:4501
+msgid ""
+"@code{File::Grep} provides similar functionality as perl's\n"
+"builtin @code{grep}, @code{map}, and @code{foreach} commands, but iterating\n"
+"over a passed filelist instead of arrays.  While trivial, this module can\n"
+"provide a quick dropin when such functionality is needed."
+msgstr ""
+
+#: gnu/packages/perl.scm:4524
+msgid "Find your home and other directories on any platform"
+msgstr ""
+
+#: gnu/packages/perl.scm:4525
+msgid ""
+"File::HomeDir is a module for locating the directories that\n"
+"are @code{owned} by a user (typically your user) and to solve the various issues\n"
+"that arise trying to find them consistently across a wide variety of\n"
+"platforms."
+msgstr ""
+
+#: gnu/packages/perl.scm:4546
+msgid "Create or remove directory trees"
+msgstr ""
+
+#: gnu/packages/perl.scm:4547
+msgid ""
+"This module provide a convenient way to create directories\n"
+"of arbitrary depth and to delete an entire directory subtree from the\n"
+"file system."
+msgstr ""
+
+#: gnu/packages/perl.scm:4570
+msgid "Change directory temporarily for a limited scope"
+msgstr ""
+
+#: gnu/packages/perl.scm:4571
+msgid ""
+"@code{File::pushd} does a temporary @code{chdir} that is\n"
+"easily and automatically reverted, similar to @code{pushd} in some Unix\n"
+"command shells.  It works by creating an object that caches the original\n"
+"working directory.  When the object is destroyed, the destructor calls\n"
+"@code{chdir} to revert to the original working directory.  By storing the\n"
+"object in a lexical variable with a limited scope, this happens automatically\n"
+"at the end of the scope."
+msgstr ""
+
+#: gnu/packages/perl.scm:4599
+msgid ""
+"Perl extension for crawling directory trees and compiling\n"
+"lists of files"
+msgstr ""
+
+#: gnu/packages/perl.scm:4602
+msgid ""
+"The File::List module crawls the directory tree starting at the\n"
+"provided base directory and can return files (and/or directories if desired)\n"
+"matching a regular expression."
+msgstr ""
+
+#: gnu/packages/perl.scm:4623
+msgid "Read a file backwards by lines"
+msgstr ""
+
+#: gnu/packages/perl.scm:4624
+msgid ""
+"This module reads a file backwards line by line. It is\n"
+"simple to use, memory efficient and fast.  It supports both an object and a\n"
+"tied handle interface.\n"
+"\n"
+"It is intended for processing log and other similar text files which typically\n"
+"have their newest entries appended to them.  By default files are assumed to\n"
+"be plain text and have a line ending appropriate to the OS.  But you can set\n"
+"the input record separator string on a per file basis."
+msgstr ""
+
+#: gnu/packages/perl.scm:4650
+msgid "Remove files and directories in Perl"
+msgstr ""
+
+#: gnu/packages/perl.scm:4651
+msgid ""
+"@code{File::Remove::remove} removes files and directories.\n"
+"It acts like @code{/bin/rm}, for the most part.  Although @code{unlink} can be\n"
+"given a list of files, it will not remove directories; this module remedies\n"
+"that.  It also accepts wildcards, * and ?, as arguments for file names."
+msgstr ""
+
+#: gnu/packages/perl.scm:4674
+msgid "Locate per-dist and per-module shared files"
+msgstr ""
+
+#: gnu/packages/perl.scm:4675
+msgid ""
+"The intent of File::ShareDir is to provide a companion to\n"
+"Class::Inspector and File::HomeDir.  Quite often you want or need your Perl\n"
+"module to have access to a large amount of read-only data that is stored on\n"
+"the file-system at run-time.  Once the files have been installed to the\n"
+"correct directory, you can use File::ShareDir to find your files again after\n"
+"the installation."
+msgstr ""
+
+#: gnu/packages/perl.scm:4696
+msgid "Locate per-dist shared files"
+msgstr ""
+
+#: gnu/packages/perl.scm:4697
+msgid ""
+"File::ShareDir::Dist finds share directories for\n"
+"distributions.  It is a companion module to File::ShareDir."
+msgstr ""
+
+#: gnu/packages/perl.scm:4717
+msgid "Install shared files"
+msgstr ""
+
+#: gnu/packages/perl.scm:4718
+msgid ""
+"File::ShareDir::Install allows you to install read-only data\n"
+"files from a distribution.  It is a companion module to File::ShareDir, which\n"
+"allows you to locate these files after installation."
+msgstr ""
+
+#: gnu/packages/perl.scm:4736
+msgid "Reading/Writing/Modifying of complete files"
+msgstr ""
+
+#: gnu/packages/perl.scm:4737
+msgid ""
+"File::Slurp provides subroutines to read or write entire\n"
+"files with a simple call.  It also has a subroutine for reading the list of\n"
+"file names in a directory."
+msgstr ""
+
+#: gnu/packages/perl.scm:4762
+msgid "Simple, sane and efficient module to slurp a file"
+msgstr ""
+
+#: gnu/packages/perl.scm:4763
+msgid ""
+"This module provides functions for fast and correct file\n"
+"slurping and spewing.  All functions are optionally exported."
+msgstr ""
+
+#: gnu/packages/perl.scm:4780
+msgid "Simple file reader and writer"
+msgstr ""
+
+#: gnu/packages/perl.scm:4782
+msgid "This module provides functions for fast reading and writing of files."
+msgstr ""
+
+#: gnu/packages/perl.scm:4798
+msgid "Return name and handle of a temporary file safely"
+msgstr ""
+
+#: gnu/packages/perl.scm:4799
+msgid ""
+"File::Temp can be used to create and open temporary files in\n"
+"a safe way."
+msgstr ""
+
+#: gnu/packages/perl.scm:4816
+#, fuzzy
+#| msgid "Curses Implementation of the Glk API"
+msgid "Portable implementation of the `which' utility"
+msgstr "Realigo curses de la API Glk"
+
+#: gnu/packages/perl.scm:4818
+msgid ""
+"File::Which was created to be able to get the paths to executable\n"
+"programs on systems under which the `which' program wasn't implemented in the\n"
+"shell."
+msgstr ""
+
+#: gnu/packages/perl.scm:4840
+msgid "Extended Unix style glob functionality"
+msgstr ""
+
+#: gnu/packages/perl.scm:4841
+msgid ""
+"@code{File::Zglob} provides a traditional Unix @code{glob}\n"
+"functionality; it returns a list of file names that match the given pattern.\n"
+"For instance, it supports the @code{**/*.pm} form."
+msgstr ""
+
+#: gnu/packages/perl.scm:4862
+msgid "Simple and dumb file system watcher"
+msgstr ""
+
+#: gnu/packages/perl.scm:4864
+msgid ""
+"@code{Filesys::Notify::Simple} is a simple but unified interface to get\n"
+"notifications of changes to a given file system path.  It uses inotify2 on\n"
+"Linux, fsevents on OS X, @code{kqueue} on FreeBSD, and\n"
+"@code{FindFirstChangeNotification} on Windows if they're installed, and falls\n"
+"back to a full directory scan if none of these are available."
+msgstr ""
+
+#: gnu/packages/perl.scm:4884
+msgid "Module to handle parsing command line options"
+msgstr ""
+
+#: gnu/packages/perl.scm:4885
+msgid ""
+"The @code{Getopt::Long} module implements an extended getopt\n"
+"function called @code{GetOptions()}.  It parses the command line from\n"
+"@code{ARGV}, recognizing and removing specified options and their possible\n"
+"values.\n"
+"\n"
+"This function adheres to the POSIX syntax for command line options, with GNU\n"
+"extensions.  In general, this means that options have long names instead of\n"
+"single letters, and are introduced with a double dash \"--\".  Support for\n"
+"bundling of command line options, as was the case with the more traditional\n"
+"single-letter approach, is provided but not enabled by default."
+msgstr ""
+
+#: gnu/packages/perl.scm:4919
+msgid "Getopt::Long, but simpler and more powerful"
+msgstr ""
+
+#: gnu/packages/perl.scm:4920
+msgid ""
+"Getopt::Long::Descriptive is yet another Getopt library.\n"
+"It's built atop Getopt::Long, and gets a lot of its features, but tries to\n"
+"avoid making you think about its huge array of options.  It also provides\n"
+"usage (help) messages, data validation, and a few other useful features."
+msgstr ""
+
+#: gnu/packages/perl.scm:4938
+msgid "Table-driven argument parsing for Perl"
+msgstr ""
+
+#: gnu/packages/perl.scm:4940
+msgid ""
+"Getopt::Tabular is a Perl 5 module for table-driven argument parsing,\n"
+"vaguely inspired by John Ousterhout's Tk_ParseArgv."
+msgstr ""
+
+#: gnu/packages/perl.scm:4961
+msgid "Graph data structures and algorithms"
+msgstr ""
+
+#: gnu/packages/perl.scm:4962
+msgid ""
+"This is @code{Graph}, a Perl module for dealing with graphs,\n"
+"the abstract data structures."
+msgstr ""
+
+#: gnu/packages/perl.scm:4979
+msgid "Safe cleanup blocks implemented as guards"
+msgstr ""
+
+#: gnu/packages/perl.scm:4980
+msgid ""
+"@code{Guard} implements so-called @dfn{guards}.  A guard is\n"
+"something (usually an object) that \"guards\" a resource, ensuring that it is\n"
+"cleaned up when expected.\n"
+"\n"
+"Specifically, this module supports two different types of guards: guard\n"
+"objects, which execute a given code block when destroyed, and scoped guards,\n"
+"which are tied to the scope exit."
+msgstr ""
+
+#: gnu/packages/perl.scm:5016
+msgid "Lightweight field hash for inside-out objects"
+msgstr ""
+
+#: gnu/packages/perl.scm:5017
+msgid ""
+"@code{Hash::FieldHash} provides the field hash mechanism\n"
+"which supports the inside-out technique.  It is an alternative to\n"
+"@code{Hash::Util::FieldHash} with a simpler interface, higher performance, and\n"
+"relic support."
+msgstr ""
+
+#: gnu/packages/perl.scm:5042
+msgid "Merge arbitrarily deep hashes into a single hash"
+msgstr ""
+
+#: gnu/packages/perl.scm:5043
+msgid ""
+"Hash::Merge merges two arbitrarily deep hashes into a single\n"
+"hash.  That is, at any level, it will add non-conflicting key-value pairs from\n"
+"one hash to the other, and follows a set of specific rules when there are key\n"
+"value conflicts.  The hash is followed recursively, so that deeply nested\n"
+"hashes that are at the same level will be merged when the parent hashes are\n"
+"merged."
+msgstr ""
+
+#: gnu/packages/perl.scm:5065
+msgid "Store multiple values per key"
+msgstr ""
+
+#: gnu/packages/perl.scm:5066
+msgid ""
+"Hash::MultiValue is an object (and a plain hash reference)\n"
+"that may contain multiple values per key, inspired by MultiDict of WebOb."
+msgstr ""
+
+#: gnu/packages/perl.scm:5084
+msgid "Lexically scoped subroutine wrappers"
+msgstr ""
+
+#: gnu/packages/perl.scm:5086
+msgid ""
+"Hook::LexWrap allows you to install a pre- or post-wrapper (or\n"
+"both) around an existing subroutine.  Unlike other modules that\n"
+"provide this capacity (e.g., Hook::PreAndPost and Hook::WrapSub),\n"
+"Hook::LexWrap implements wrappers in such a way that the standard\n"
+"caller function works correctly within the wrapped subroutine."
+msgstr ""
+
+#: gnu/packages/perl.scm:5107
+msgid "Alternative but compatible interface to modules that export symbols"
+msgstr ""
+
+#: gnu/packages/perl.scm:5108
+msgid ""
+"This module acts as a layer between Exporter and modules which\n"
+"consume exports.  It is feature-compatible with Exporter, plus some much needed\n"
+"extras.  You can use this to import symbols from any exporter that follows\n"
+"Exporters specification.  The exporter modules themselves do not need to use or\n"
+"inherit from the Exporter module, they just need to set @@EXPORT and/or other\n"
+"variables."
+msgstr ""
+
+#: gnu/packages/perl.scm:5132
+msgid "Import packages into other packages"
+msgstr ""
+
+#: gnu/packages/perl.scm:5133
+msgid ""
+"Writing exporters is a pain.  Some use Exporter, some use\n"
+"Sub::Exporter, some use Moose::Exporter, some use Exporter::Declare ... and\n"
+"some things are pragmas.  Exporting on someone else's behalf is harder.  The\n"
+"exporters don't provide a consistent API for this, and pragmas need to have\n"
+"their import method called directly, since they effect the current unit of\n"
+"compilation.  Import::Into provides global methods to make this painless."
+msgstr ""
+
+#: gnu/packages/perl.scm:5155
+msgid "Use modules in inc/ if newer than installed"
+msgstr ""
+
+#: gnu/packages/perl.scm:5156
+msgid ""
+"The inc::latest module helps bootstrap configure-time\n"
+"dependencies for CPAN distributions.  These dependencies get bundled into the\n"
+"inc directory within a distribution and are used by Makefile.PL or Build.PL."
+msgstr ""
+
+#: gnu/packages/perl.scm:5175
+msgid "Lexically warn about using the indirect method call syntax"
+msgstr ""
+
+#: gnu/packages/perl.scm:5177
+msgid "Indirect warns about using the indirect method call syntax."
+msgstr ""
+
+#: gnu/packages/perl.scm:5197
+msgid "Write Perl subroutines in other programming languages"
+msgstr ""
+
+#: gnu/packages/perl.scm:5198
+msgid ""
+"The @code{Inline} module allows you to put source code\n"
+"from other programming languages directly (inline) in a Perl script or\n"
+"module.  The code is automatically compiled as needed, and then loaded\n"
+"for immediate access from Perl."
+msgstr ""
+
+#: gnu/packages/perl.scm:5228
+msgid "C Language Support for Inline"
+msgstr ""
+
+#: gnu/packages/perl.scm:5229
+msgid ""
+"The @code{Inline::C} module allows you to write Perl\n"
+"subroutines in C.  Since version 0.30 the @code{Inline} module supports\n"
+"multiple programming languages and each language has its own support module.\n"
+"This document describes how to use Inline with the C programming language.\n"
+"It also goes a bit into Perl C internals."
+msgstr ""
+
+#: gnu/packages/perl.scm:5255
+msgid "@code{IO::All} to Larry Wall!"
+msgstr ""
+
+#: gnu/packages/perl.scm:5256
+msgid ""
+"@code{IO::All} combines all of the best Perl IO modules into\n"
+"a single nifty object oriented interface to greatly simplify your everyday\n"
+"Perl IO idioms.  It exports a single function called io, which returns a new\n"
+"@code{IO::All} object.  And that object can do it all!"
+msgstr ""
+
+#: gnu/packages/perl.scm:5277
+msgid "Capture STDOUT and STDERR from Perl code, subprocesses or XS"
+msgstr ""
+
+#: gnu/packages/perl.scm:5278
+msgid ""
+"@code{IO::CaptureOutput} provides routines for capturing\n"
+"@code{STDOUT} and @code{STDERR} from perl subroutines, forked system\n"
+"calls (e.g. @code{system()}, @code{fork()}) and from XS or C modules.\n"
+"\n"
+"This module is no longer recommended by its maintainer.  Users are advised to\n"
+"try @code{Capture::Tiny} instead."
+msgstr ""
+
+#: gnu/packages/perl.scm:5299
+msgid "Utilities for interactive I/O"
+msgstr ""
+
+#: gnu/packages/perl.scm:5300
+msgid ""
+"This module provides three utility subroutines that make it\n"
+"easier to develop interactive applications: is_interactive(), interactive(),\n"
+"and busy()."
+msgstr ""
+
+#: gnu/packages/perl.scm:5333
+msgid "Select a pager and pipe text to it"
+msgstr ""
+
+#: gnu/packages/perl.scm:5335
+msgid ""
+"@code{IO::Pager} can be used to locate an available pager and use it to\n"
+"display output if a TTY is in use."
+msgstr ""
+
+#: gnu/packages/perl.scm:5353
+msgid "Emulate file interface for in-core strings"
+msgstr ""
+
+#: gnu/packages/perl.scm:5354
+msgid ""
+"IO::String is an IO::File (and IO::Handle) compatible class\n"
+"that reads or writes data from in-core strings."
+msgstr ""
+
+#: gnu/packages/perl.scm:5372
+msgid "IO:: interface for reading/writing an array of lines"
+msgstr ""
+
+#: gnu/packages/perl.scm:5373
+msgid ""
+"This toolkit primarily provides modules for performing both\n"
+"traditional and object-oriented i/o) on things *other* than normal\n"
+"filehandles; in particular, IO::Scalar, IO::ScalarArray, and IO::Lines."
+msgstr ""
+
+#: gnu/packages/perl.scm:5391
+msgid "Perl interface to pseudo ttys"
+msgstr ""
+
+#: gnu/packages/perl.scm:5393
+msgid ""
+"This package provides the @code{IO::Pty} and @code{IO::Tty} Perl\n"
+"interfaces to pseudo ttys."
+msgstr ""
+
+#: gnu/packages/perl.scm:5410
+msgid "Run interactive command-line programs"
+msgstr ""
+
+#: gnu/packages/perl.scm:5411
+msgid ""
+"@code{IPC::Cmd} allows for the searching and execution of\n"
+"any binary on your system.  It adheres to verbosity settings and is able to\n"
+"run interactively.  It also has an option to capture output/error buffers."
+msgstr ""
+
+#: gnu/packages/perl.scm:5440
+msgid "Run system() and background procs w/ piping, redirs, ptys"
+msgstr ""
+
+#: gnu/packages/perl.scm:5441
+msgid ""
+"IPC::Run allows you run and interact with child processes\n"
+"using files, pipes, and pseudo-ttys.  Both system()-style and scripted usages\n"
+"are supported and may be mixed.  Likewise, functional and OO API styles are\n"
+"both supported and may be mixed."
+msgstr ""
+
+#: gnu/packages/perl.scm:5459
+msgid "Run a subprocess with input/output redirection"
+msgstr ""
+
+#: gnu/packages/perl.scm:5461
+msgid ""
+"The IPC::Run3 module allows you to run a subprocess and redirect stdin,\n"
+"stdout, and/or stderr to files and perl data structures.  It aims to satisfy\n"
+"99% of the need for using system, qx, and open3 with a simple, extremely\n"
+"Perlish API and none of the bloat and rarely used features of IPC::Run."
+msgstr ""
+
+#: gnu/packages/perl.scm:5484
+#, fuzzy
+#| msgid "SQlite interface for Perl"
+msgid "Lightweight interface to shared memory"
+msgstr "Interfaco de SQLite por Perl"
+
+#: gnu/packages/perl.scm:5485
+msgid ""
+"IPC::ShareLite provides a simple interface to shared memory,\n"
+"allowing data to be efficiently communicated between processes."
+msgstr ""
+
+#: gnu/packages/perl.scm:5503
+msgid "Run commands simply, with detailed diagnostics"
+msgstr ""
+
+#: gnu/packages/perl.scm:5504
+msgid ""
+"Calling Perl's in-built @code{system} function is easy,\n"
+"determining if it was successful is hard.  Let's face it, @code{$?} isn't the\n"
+"nicest variable in the world to play with, and even if you do check it,\n"
+"producing a well-formatted error string takes a lot of work.\n"
+"\n"
+"@code{IPC::System::Simple} takes the hard work out of calling external\n"
+"commands."
+msgstr ""
+
+#: gnu/packages/perl.scm:5529
+msgid "JSON encoder/decoder for Perl"
+msgstr ""
+
+#: gnu/packages/perl.scm:5530
+msgid ""
+"This module converts Perl data structures to JSON and vice\n"
+"versa using either JSON::XS or JSON::PP."
+msgstr ""
+
+#: gnu/packages/perl.scm:5555
+msgid "Wrapper for Perl JSON classes"
+msgstr ""
+
+#: gnu/packages/perl.scm:5557
+msgid ""
+"This module tries to provide a coherent API to bring together the\n"
+"various JSON modules currently on CPAN.  This module will allow you to code to\n"
+"any JSON API and have it work regardless of which JSON module is actually\n"
+"installed."
+msgstr ""
+
+#: gnu/packages/perl.scm:5581
+msgid "Cpanel::JSON::XS with fallback"
+msgstr ""
+
+#: gnu/packages/perl.scm:5582
+msgid ""
+"This module first checks to see if either Cpanel::JSON::XS\n"
+"or JSON::XS is already loaded, in which case it uses that module.  Otherwise\n"
+"it tries to load Cpanel::JSON::XS, then JSON::XS, then JSON::PP in order, and\n"
+"either uses the first module it finds or throws an error."
+msgstr ""
+
+#: gnu/packages/perl.scm:5607
+msgid "JSON serialising/deserialising for Perl"
+msgstr ""
+
+#: gnu/packages/perl.scm:5630
+msgid "Prevent leakage of lexical hints"
+msgstr ""
+
+#: gnu/packages/perl.scm:5632
+msgid "Lexical::SealRequireHints prevents leakage of lexical hints"
+msgstr ""
+
+#: gnu/packages/perl.scm:5655
+msgid "Use other catalog formats in Maketext"
+msgstr ""
+
+#: gnu/packages/perl.scm:5657
+msgid ""
+"This module provides lexicon-handling modules to read from other\n"
+"localization formats, such as Gettext, Msgcat, and so on."
+msgstr ""
+
+#: gnu/packages/perl.scm:5674
+msgid "Bringing loggers and listeners together"
+msgstr ""
+
+#: gnu/packages/perl.scm:5675
+msgid ""
+"@code{Log::Any} provides a standard log production API for\n"
+"modules.  @code{Log::Any::Adapter} allows applications to choose the mechanism\n"
+"for log consumption, whether screen, file or another logging mechanism like\n"
+"@code{Log::Dispatch} or @code{Log::Log4perl}.\n"
+"\n"
+"A CPAN module uses @code{Log::Any} to get a log producer object.  An\n"
+"application, in turn, may choose one or more logging mechanisms via\n"
+"@code{Log::Any::Adapter}, or none at all.\n"
+"\n"
+"@code{Log::Any} has a very tiny footprint and no dependencies beyond Perl\n"
+"itself, which makes it appropriate for even small CPAN modules to use.  It\n"
+"defaults to @code{null} logging activity, so a module can safely log without\n"
+"worrying about whether the application has chosen (or will ever choose) a\n"
+"logging mechanism."
+msgstr ""
+
+#: gnu/packages/perl.scm:5711
+msgid "Log::Any adapter for Log::Log4perl"
+msgstr ""
+
+#: gnu/packages/perl.scm:5712
+msgid ""
+"@code{Log::Any::Adapter::Log4perl} provides a\n"
+"@code{Log::Any} adapter using @code{Log::Log4perl} for logging."
+msgstr ""
+
+#: gnu/packages/perl.scm:5733
+msgid "Log4j implementation for Perl"
+msgstr ""
+
+#: gnu/packages/perl.scm:5734
+msgid ""
+"@code{Log::Log4perl} lets you remote-control and fine-tune\n"
+"the logging behaviour of your system from the outside.  It implements the\n"
+"widely popular (Java-based) Log4j logging package in pure Perl."
+msgstr ""
+
+#: gnu/packages/perl.scm:5754
+msgid "Log::Report in the lightest form"
+msgstr ""
+
+#: gnu/packages/perl.scm:5756
+msgid ""
+"This module allows libraries to have a dependency to a small module\n"
+"instead of the full Log-Report distribution.  The full power of\n"
+"@code{Log::Report} is only released when the main program uses that module.\n"
+"In that case, the module using the @code{Optional} will also use the full\n"
+"@code{Log::Report}, otherwise the dressed-down @code{Log::Report::Minimal}\n"
+"version."
+msgstr ""
+
+#: gnu/packages/perl.scm:5781
+msgid "Get messages to users and logs"
+msgstr ""
+
+#: gnu/packages/perl.scm:5783
+msgid ""
+"@code{Log::Report} combines three tasks which are closely related in\n"
+"one: logging, exceptions, and translations."
+msgstr ""
+
+#: gnu/packages/perl.scm:5811
+msgid "High-level interface to Uniforum message translation"
+msgstr ""
+
+#: gnu/packages/perl.scm:5812
+msgid ""
+"This package is an internationalization library for Perl\n"
+"that aims to be compatible with the Uniforum message translations system as\n"
+"implemented for example in GNU gettext."
+msgstr ""
+
+#: gnu/packages/perl.scm:5832
+msgid "Split text into sentences"
+msgstr ""
+
+#: gnu/packages/perl.scm:5834
+msgid ""
+"The Lingua::EN::Sentence module contains the function get_sentences,\n"
+"which splits text into its constituent sentences, based on a regular\n"
+"expression and a list of abbreviations (built in and given)."
+msgstr ""
+
+#: gnu/packages/perl.scm:5853
+msgid "Transliterate text between writing systems"
+msgstr ""
+
+#: gnu/packages/perl.scm:5854
+msgid ""
+"@code{Lingua::Translit} can be used to convert text from one\n"
+"writing system to another, based on national or international transliteration\n"
+"tables.  Where possible a reverse transliteration is supported."
+msgstr ""
+
+#: gnu/packages/perl.scm:5878
+msgid "Combination of List::Util and List::MoreUtils"
+msgstr ""
+
+#: gnu/packages/perl.scm:5879
+msgid ""
+"This module exports all of the functions that either\n"
+"List::Util or List::MoreUtils defines, with preference to List::Util."
+msgstr ""
+
+#: gnu/packages/perl.scm:5901
+msgid "Compare elements of two or more lists"
+msgstr ""
+
+#: gnu/packages/perl.scm:5902
+msgid ""
+"@code{List::Compare} provides a module to perform\n"
+"comparative operations on two or more lists.  Provided operations include\n"
+"intersections, unions, unique elements, complements and many more."
+msgstr ""
+
+#: gnu/packages/perl.scm:5937 gnu/packages/perl.scm:5987
+msgid "Provide the stuff missing in List::Util"
+msgstr ""
+
+#: gnu/packages/perl.scm:5938
+msgid ""
+"List::MoreUtils provides some trivial but commonly needed\n"
+"functionality on lists which is not going to go into List::Util."
+msgstr ""
+
+#: gnu/packages/perl.scm:5960
+msgid "Provide the stuff missing in List::Util in XS"
+msgstr ""
+
+#: gnu/packages/perl.scm:5961
+msgid ""
+"@code{List::MoreUtils::XS} provides some trivial but\n"
+"commonly needed functionality on lists which is not going to go into\n"
+"@code{List::Util}."
+msgstr ""
+
+#: gnu/packages/perl.scm:5988
+msgid ""
+"@code{List::SomeUtils} provides some trivial but commonly\n"
+"needed functionality on lists which is not going to go into @code{List::Util}.\n"
+"\n"
+"All of the below functions are implementable in only a couple of lines of Perl\n"
+"code.  Using the functions from this module however should give slightly\n"
+"better performance as everything is implemented in C.  The pure-Perl\n"
+"implementation of these functions only serves as a fallback in case the C\n"
+"portions of this module couldn't be compiled on this machine."
+msgstr ""
+
+#: gnu/packages/perl.scm:6017
+msgid "Bundle of ancient email modules"
+msgstr ""
+
+#: gnu/packages/perl.scm:6018
+msgid ""
+"MailTools contains the following modules:\n"
+"@table @asis\n"
+"@item Mail::Address\n"
+"Parse email address from a header line.\n"
+"@item Mail::Cap\n"
+"Interpret mailcap files: mappings of file-types to applications as used by\n"
+"many command-line email programs.\n"
+"@item Mail::Field\n"
+"Simplifies access to (some) email header fields.  Used by Mail::Header.\n"
+"@item Mail::Filter\n"
+"Process Mail::Internet messages.\n"
+"@item Mail::Header\n"
+"Collection of Mail::Field objects, representing the header of a Mail::Internet\n"
+"object.\n"
+"@item Mail::Internet\n"
+"Represents a single email message, with header and body.\n"
+"@item Mail::Mailer\n"
+"Send Mail::Internet emails via direct smtp or local MTA's.\n"
+"@item Mail::Send\n"
+"Build a Mail::Internet object, and then send it out using Mail::Mailer.\n"
+"@item Mail::Util\n"
+"\"Smart functions\" you should not depend on.\n"
+"@end table"
+msgstr ""
+
+#: gnu/packages/perl.scm:6060
+msgid "Simple platform independent mailer"
+msgstr ""
+
+#: gnu/packages/perl.scm:6061
+msgid ""
+"Mail::Sendmail is a pure perl module that provides a\n"
+"simple means to send email from a perl script.  The module only\n"
+"requires Perl5 and a network connection."
+msgstr ""
+
+#: gnu/packages/perl.scm:6080
+msgid "Solution of bezier curves"
+msgstr ""
+
+#: gnu/packages/perl.scm:6081
+msgid ""
+"This module implements the algorithm for the solution of Bezier\n"
+"curves as presented by Robert D Miller in Graphics Gems V, \"Quick and Simple\n"
+"Bezier Curve Drawing\"."
+msgstr ""
+
+#: gnu/packages/perl.scm:6100
+msgid "Perl extension for rounding numbers"
+msgstr ""
+
+#: gnu/packages/perl.scm:6101
+msgid ""
+"@code{Math::Round} provides functions to round numbers,\n"
+"both positive and negative, in various ways."
+msgstr ""
+
+#: gnu/packages/perl.scm:6119
+msgid "Basic numeric stats on vectors"
+msgstr ""
+
+#: gnu/packages/perl.scm:6120
+msgid ""
+"This package provides some basic statistics on numerical\n"
+"vectors.  All the subroutines can take a reference to the vector to be\n"
+"operated on."
+msgstr ""
+
+#: gnu/packages/perl.scm:6139
+msgid "Make functions faster by trading space for time"
+msgstr ""
+
+#: gnu/packages/perl.scm:6140
+msgid ""
+"This package transparently speeds up functions by caching\n"
+"return values, trading space for time."
+msgstr ""
+
+#: gnu/packages/perl.scm:6158
+msgid "Expiry plug-in for Memoize that adds LRU cache expiration"
+msgstr ""
+
+#: gnu/packages/perl.scm:6159
+msgid ""
+"This module implements an expiry policy for Memoize that\n"
+"follows LRU semantics, that is, the last n results, where n is specified as\n"
+"the argument to the CACHESIZE parameter, will be cached."
+msgstr ""
+
+#: gnu/packages/perl.scm:6177
+msgid "Charset information for MIME messages"
+msgstr ""
+
+#: gnu/packages/perl.scm:6179
+msgid ""
+"@code{MIME::Charset} provides information about character sets used for\n"
+"MIME messages on Internet."
+msgstr ""
+
+#: gnu/packages/perl.scm:6206
+msgid "Tools to manipulate MIME messages"
+msgstr ""
+
+#: gnu/packages/perl.scm:6208
+msgid ""
+"MIME-tools is a collection of Perl5 MIME:: modules for parsing,\n"
+"decoding, and generating single- or multipart (even nested multipart) MIME\n"
+"messages."
+msgstr ""
+
+#: gnu/packages/perl.scm:6227
+msgid "Definition of MIME types"
+msgstr ""
+
+#: gnu/packages/perl.scm:6228
+msgid ""
+"This module provides a list of known mime-types, combined\n"
+"from various sources.  For instance, it contains all IANA types and the\n"
+"knowledge of Apache."
+msgstr ""
+
+#: gnu/packages/perl.scm:6250
+msgid "Write your linewise code for handles; this does the rest"
+msgstr ""
+
+#: gnu/packages/perl.scm:6251
+msgid ""
+"It's boring to deal with opening files for IO, converting\n"
+"strings to handle-like objects, and all that.  With\n"
+"@code{Mixin::Linewise::Readers} and @code{Mixin::Linewise::Writers}, you can\n"
+"just write a method to handle handles, and methods for handling strings and\n"
+"file names are added for you."
+msgstr ""
+
+#: gnu/packages/perl.scm:6276
+msgid "Enable all of the features of Modern Perl with one import"
+msgstr ""
+
+#: gnu/packages/perl.scm:6277
+msgid ""
+"@code{Modern::Perl} provides a simple way to enable\n"
+"multiple, by now, standard libraries in a Perl program."
+msgstr ""
+
+#: gnu/packages/perl.scm:6305
+msgid "Tiny replacement for Module::Build"
+msgstr ""
+
+#: gnu/packages/perl.scm:6306
+msgid ""
+"Many Perl distributions use a Build.PL file instead of a\n"
+"Makefile.PL file to drive distribution configuration, build, test and\n"
+"installation.  Traditionally, Build.PL uses Module::Build as the underlying\n"
+"build system.  This module provides a simple, lightweight, drop-in\n"
+"replacement.  Whereas Module::Build has over 6,700 lines of code; this module\n"
+"has less than 120, yet supports the features needed by most distributions."
+msgstr ""
+
+#: gnu/packages/perl.scm:6338
+msgid "The module provides an XS++ enhanced flavour of Module::Build"
+msgstr ""
+
+#: gnu/packages/perl.scm:6339
+msgid ""
+"This subclass of Module::Build adds some tools and\n"
+"processes to make it easier to use for wrapping C++ using XS++\n"
+"(ExtUtils::XSpp)."
+msgstr ""
+
+#: gnu/packages/perl.scm:6364
+msgid "Module::Build class for building XS modules"
+msgstr ""
+
+#: gnu/packages/perl.scm:6366
+msgid ""
+"@code{Module::Build::XSUtil} is subclass of @code{Module::Build}\n"
+"for support building XS modules.\n"
+"\n"
+"This is a list of a new parameters in the @code{Module::Build::new} method:\n"
+"\n"
+"@enumerate\n"
+"@item @code{needs_compiler_c99}: This option checks C99 compiler availability.\n"
+"@item @code{needs_compiler_cpp}: This option checks C++ compiler availability.\n"
+"Can also pass @code{extra_compiler_flags} and @code{extra_linker_flags} for C++.\n"
+"@item @code{generate_ppport_h}: Generate @file{ppport.h} by @code{Devel::PPPort}.\n"
+"@item @code{generate_xshelper_h}: Generate @file{xshelper.h} which is a helper\n"
+"header file to include @file{EXTERN.h}, @file{perl.h}, @file{XSUB.h} and\n"
+"@file{ppport.h}, and defines some portability stuff which are not supported by\n"
+"@file{ppport.h}.\n"
+"\n"
+"It is ported from @code{Module::Install::XSUtil}.\n"
+"@item @code{cc_warnings}: Toggle compiler warnings.  Enabled by default.\n"
+"@item @code{-g options}: Invoke @file{Build.PL} with @code{-g} to enable\n"
+"debug options.\n"
+"@end enumerate"
+msgstr ""
+
+#: gnu/packages/perl.scm:6402
+msgid "Find and use installed modules in a (sub)category"
+msgstr ""
+
+#: gnu/packages/perl.scm:6403
+msgid ""
+"Module::Find lets you find and use modules in categories.\n"
+"This can be useful for auto-detecting driver or plugin modules.  You can\n"
+"differentiate between looking in the category itself or in all\n"
+"subcategories."
+msgstr ""
+
+#: gnu/packages/perl.scm:6429
+msgid "Loads alternate underlying implementations for a module"
+msgstr ""
+
+#: gnu/packages/perl.scm:6430
+msgid ""
+"This module abstracts out the process of choosing one of\n"
+"several underlying implementations for a module.  This can be used to provide\n"
+"XS and pure Perl implementations of a module, or it could be used to load an\n"
+"implementation for a given OS or any other case of needing to provide multiple\n"
+"implementations."
+msgstr ""
+
+#: gnu/packages/perl.scm:6468
+msgid "Standalone, extensible Perl module installer"
+msgstr ""
+
+#: gnu/packages/perl.scm:6469
+msgid ""
+"Module::Install is a package for writing installers for\n"
+"CPAN (or CPAN-like) distributions that are clean, simple, minimalist, act in a\n"
+"strictly correct manner with ExtUtils::MakeMaker, and will run on any Perl\n"
+"installation version 5.005 or newer."
+msgstr ""
+
+#: gnu/packages/perl.scm:6495
+msgid "Parse and examine a Perl distribution @file{MANIFEST} file"
+msgstr ""
+
+#: gnu/packages/perl.scm:6497
+msgid ""
+"@code{Module::Manifest} is a simple utility module created originally for\n"
+"use in @code{Module::Inspector}.\n"
+"\n"
+"It can load a @file{MANIFEST} file that comes in a Perl distribution tarball,\n"
+"examine the contents, and perform some simple tasks.  It can also load the\n"
+"@file{MANIFEST.SKIP} file and check that."
+msgstr ""
+
+#: gnu/packages/perl.scm:6520
+msgid "Give your Perl module the ability to have plugins"
+msgstr ""
+
+#: gnu/packages/perl.scm:6521
+msgid ""
+"This module provides a simple but extensible way of having\n"
+"@code{plugins} for your Perl module."
+msgstr ""
+
+#: gnu/packages/perl.scm:6540
+msgid "Perl runtime module handling"
+msgstr ""
+
+#: gnu/packages/perl.scm:6541
+msgid ""
+"The functions exported by this module deal with runtime\n"
+"handling of Perl modules, which are normally handled at compile time."
+msgstr ""
+
+#: gnu/packages/perl.scm:6564
+msgid "Provide information on conflicts for Module::Runtime"
+msgstr ""
+
+#: gnu/packages/perl.scm:6565
+msgid ""
+"This module provides conflicts checking for Module::Runtime,\n"
+"which had a recent release that broke some versions of Moose.  It is called\n"
+"from Moose::Conflicts and moose-outdated."
+msgstr ""
+
+#: gnu/packages/perl.scm:6586
+msgid "Recursively scan Perl code for dependencies"
+msgstr ""
+
+#: gnu/packages/perl.scm:6587
+msgid ""
+"Module::ScanDeps is a module to recursively scan Perl\n"
+"programs for dependencies."
+msgstr ""
+
+#: gnu/packages/perl.scm:6607
+msgid "Module name tools and transformations"
+msgstr ""
+
+#: gnu/packages/perl.scm:6608
+msgid ""
+"This module provides a few useful functions for manipulating\n"
+"module names.  Its main aim is to centralise some of the functions commonly\n"
+"used by modules that manipulate other modules in some way, like converting\n"
+"module names to relative paths."
+msgstr ""
+
+#: gnu/packages/perl.scm:6638
+msgid "Minimalist Object Orientation (with Moose compatibility)"
+msgstr ""
+
+#: gnu/packages/perl.scm:6639
+msgid ""
+"Moo is an extremely light-weight Object Orientation system.\n"
+"It allows one to concisely define objects and roles with a convenient syntax\n"
+"that avoids the details of Perl's object system.  Moo contains a subset of\n"
+"Moose and is optimised for rapid startup."
+msgstr ""
+
+#: gnu/packages/perl.scm:6744
+msgid "Postmodern object system for Perl 5"
+msgstr ""
+
+#: gnu/packages/perl.scm:6746
+msgid ""
+"Moose is a complete object system for Perl 5.  It provides keywords for\n"
+"attribute declaration, object construction, inheritance, and maybe more.  With\n"
+"Moose, you define your class declaratively, without needing to know about\n"
+"blessed hashrefs, accessor methods, and so on.  You can concentrate on the\n"
+"logical structure of your classes, focusing on \"what\" rather than \"how\".\n"
+"A class definition with Moose reads like a list of very concise English\n"
+"sentences."
+msgstr ""
+
+#: gnu/packages/perl.scm:6774
+msgid "Emulate Class::Accessor::Fast behavior using Moose attributes"
+msgstr ""
+
+#: gnu/packages/perl.scm:6775
+msgid ""
+"This module attempts to emulate the behavior of\n"
+"Class::Accessor::Fast as accurately as possible using the Moose attribute\n"
+"system.  The public API of Class::Accessor::Fast is wholly supported, but the\n"
+"private methods are not."
+msgstr ""
+
+#: gnu/packages/perl.scm:6809
+msgid "Moose role for processing command line options"
+msgstr ""
+
+#: gnu/packages/perl.scm:6810
+msgid ""
+"This is a Moose role which provides an alternate constructor\n"
+"for creating objects using parameters passed in from the command line."
+msgstr ""
+
+#: gnu/packages/perl.scm:6831
+msgid "Mark overload code symbols as methods"
+msgstr ""
+
+#: gnu/packages/perl.scm:6832
+msgid ""
+"MooseX::MarkAsMethods allows one to easily mark certain\n"
+"functions as Moose methods.  This will allow other packages such as\n"
+"namespace::autoclean to operate without blowing away your overloads.  After\n"
+"using MooseX::MarkAsMethods your overloads will be recognized by Class::MOP as\n"
+"being methods, and class extension as well as composition from roles with\n"
+"overloads will \"just work\"."
+msgstr ""
+
+#: gnu/packages/perl.scm:6862
+msgid "Code attribute introspection"
+msgstr ""
+
+#: gnu/packages/perl.scm:6863
+msgid ""
+"This module allows code attributes of methods to be\n"
+"introspected using Moose meta method objects."
+msgstr ""
+
+#: gnu/packages/perl.scm:6889
+msgid "Subclassing of non-Moose classes"
+msgstr ""
+
+#: gnu/packages/perl.scm:6890
+msgid ""
+"MooseX::NonMoose allows for easily subclassing non-Moose\n"
+"classes with Moose, taking care of the details connected with doing this, such\n"
+"as setting up proper inheritance from Moose::Object and installing (and\n"
+"inlining, at make_immutable time) a constructor that makes sure things like\n"
+"BUILD methods are called.  It tries to be as non-intrusive as possible."
+msgstr ""
+
+#: gnu/packages/perl.scm:6918
+msgid "Extension of Params::Validate using Moose's types"
+msgstr ""
+
+#: gnu/packages/perl.scm:6919
+msgid ""
+"This module fills a gap in Moose by adding method parameter\n"
+"validation to Moose."
+msgstr ""
+
+#: gnu/packages/perl.scm:6940
+msgid "Apply roles to a related Perl class"
+msgstr ""
+
+#: gnu/packages/perl.scm:6941
+msgid ""
+"This module applies roles to make a subclass instead of\n"
+"manually setting up a subclass."
+msgstr ""
+
+#: gnu/packages/perl.scm:6967
+msgid "Moose roles with composition parameters"
+msgstr ""
+
+#: gnu/packages/perl.scm:6968
+msgid ""
+"Because Moose roles serve many different masters, they\n"
+"usually provide only the least common denominator of functionality.  To\n"
+"empower roles further, more configurability than -alias and -excludes is\n"
+"required.  Perhaps your role needs to know which method to call when it is\n"
+"done processing, or what default value to use for its url attribute.\n"
+"Parameterized roles offer a solution to these (and other) kinds of problems."
+msgstr ""
+
+#: gnu/packages/perl.scm:6994
+msgid "Roles which support overloading"
+msgstr ""
+
+#: gnu/packages/perl.scm:6995
+msgid ""
+"MooseX::Role::WithOverloading allows you to write a\n"
+"Moose::Role which defines overloaded operators and allows those overload\n"
+"methods to be composed into the classes/roles/instances it's compiled to,\n"
+"where plain Moose::Roles would lose the overloading."
+msgstr ""
+
+#: gnu/packages/perl.scm:7017
+msgid "Name your accessors foo() and set_foo()"
+msgstr ""
+
+#: gnu/packages/perl.scm:7018
+msgid ""
+"This module does not provide any methods.  Simply loading it\n"
+"changes the default naming policy for the loading class so that accessors are\n"
+"separated into get and set methods.  The get methods have the same name as the\n"
+"accessor, while set methods are prefixed with \"_set_\"."
+msgstr ""
+
+#: gnu/packages/perl.scm:7044
+msgid "Strict object constructors for Moose"
+msgstr ""
+
+#: gnu/packages/perl.scm:7045
+msgid ""
+"Simply loading this module makes your constructors\n"
+"\"strict\".  If your constructor is called with an attribute init argument\n"
+"that your class does not declare, then it calls Moose->throw_error()."
+msgstr ""
+
+#: gnu/packages/perl.scm:7073
+msgid "Trait loading and resolution for Moose"
+msgstr ""
+
+#: gnu/packages/perl.scm:7074
+msgid ""
+"Adds support on top of MooseX::Traits for class precedence\n"
+"search for traits and some extra attributes."
+msgstr ""
+
+#: gnu/packages/perl.scm:7100
+msgid "Organise your Moose types in libraries"
+msgstr ""
+
+#: gnu/packages/perl.scm:7101
+msgid ""
+"This package lets you declare types using short names, but\n"
+"behind the scenes it namespaces all your type declarations, effectively\n"
+"prevent name clashes between packages."
+msgstr ""
+
+#: gnu/packages/perl.scm:7132
+msgid "DateTime related constraints and coercions for Moose"
+msgstr ""
+
+#: gnu/packages/perl.scm:7133
+msgid ""
+"This module packages several Moose::Util::TypeConstraints\n"
+"with coercions, designed to work with the DateTime suite of objects."
+msgstr ""
+
+#: gnu/packages/perl.scm:7164
+msgid "Extensions to MooseX::Types::DateTime"
+msgstr ""
+
+#: gnu/packages/perl.scm:7165
+msgid ""
+"This module builds on MooseX::Types::DateTime to add\n"
+"additional custom types and coercions.  Since it builds on an existing type,\n"
+"all coercions and constraints are inherited."
+msgstr ""
+
+#: gnu/packages/perl.scm:7193
+msgid "ClassName type constraints for Moose"
+msgstr ""
+
+#: gnu/packages/perl.scm:7194
+msgid ""
+"MooseX::Types::LoadableClass provides a ClassName type\n"
+"constraint with coercion to load the class."
+msgstr ""
+
+#: gnu/packages/perl.scm:7220
+msgid "Using Moo and MooX:: packages the most lazy way"
+msgstr ""
+
+#: gnu/packages/perl.scm:7221
+msgid "Contains the MooX and MooX::Role packages."
+msgstr ""
+
+#: gnu/packages/perl.scm:7247
+msgid "Giving an easy Moo style way to make command organized CLI apps"
+msgstr ""
+
+#: gnu/packages/perl.scm:7248
+msgid ""
+"This package eases the writing of command line utilities,\n"
+"accepting commands and subcommands and so on.  These commands can form a tree,\n"
+"which is mirrored in the package structure.  On invocation, each command along\n"
+"the path through the tree (starting from the top-level command through to the\n"
+"most specific one) is instantiated."
+msgstr ""
+
+#: gnu/packages/perl.scm:7281
+msgid "Moo eXtension for initializing objects from config file"
+msgstr ""
+
+#: gnu/packages/perl.scm:7282
+msgid ""
+"This module is intended to easily load initialization values\n"
+"for attributes on object construction from an appropriate config file.  The\n"
+"building is done in @code{MooX::ConfigFromFile::Role}---using\n"
+"@code{MooX::ConfigFromFile} ensures that the role is applied."
+msgstr ""
+
+#: gnu/packages/perl.scm:7306
+msgid "Moo eXtension for @code{File::ConfigDir}"
+msgstr ""
+
+#: gnu/packages/perl.scm:7307
+msgid ""
+"This module is a helper for easily finding configuration\n"
+"file locations.  This information can be used to find a suitable place for\n"
+"installing configuration files or for finding any piece of settings."
+msgstr ""
+
+#: gnu/packages/perl.scm:7342
+msgid "NativeTrait-like behavior for Moo"
+msgstr ""
+
+#: gnu/packages/perl.scm:7344
+msgid ""
+"@code{MooX::HandlesVia} is an extension of Moo's @code{handles}\n"
+"attribute functionality.  It provides a means of proxying functionality from\n"
+"an external class to the given attribute."
+msgstr ""
+
+#: gnu/packages/perl.scm:7372
+msgid "Easily translate Moose code to Moo"
+msgstr ""
+
+#: gnu/packages/perl.scm:7374
+msgid ""
+"MooX::late does the following:\n"
+"@enumerate\n"
+"@item Supports isa => $stringytype\n"
+"@item Supports does => $rolename\n"
+"@item Supports lazy_build => 1\n"
+"@item Exports blessed and confess functions to your namespace.\n"
+"@item Handles certain attribute traits\n"
+"Currently Hash, Array and Code are supported.  This feature requires\n"
+"MooX::HandlesVia.\n"
+"@end enumerate"
+msgstr ""
+
+#: gnu/packages/perl.scm:7429
+msgid "Explicit Options eXtension for Object Class"
+msgstr ""
+
+#: gnu/packages/perl.scm:7430
+msgid ""
+"Create a command line tool with your Mo, Moo, Moose objects.\n"
+"You have an @code{option} keyword to replace the usual @code{has} to\n"
+"explicitly use your attribute on the command line.  The @code{option} keyword\n"
+"takes additional parameters and uses @code{Getopt::Long::Descriptive} to\n"
+"generate a command line tool."
+msgstr ""
+
+#: gnu/packages/perl.scm:7459
+msgid "Make Moo-based object constructors blow up on unknown attributes"
+msgstr ""
+
+#: gnu/packages/perl.scm:7461
+msgid ""
+"Loading @code{MooX::StrictConstructor} makes your constructors \"strict\".\n"
+"If your constructor is called with an attribute init argument that your class\n"
+"does not declare, then it dies."
+msgstr ""
+
+#: gnu/packages/perl.scm:7485
+msgid "Moosish types and type builder"
+msgstr ""
+
+#: gnu/packages/perl.scm:7486
+msgid ""
+"MooX::Types::MooseLike provides a possibility to build your\n"
+"own set of Moose-like types.  These custom types can then be used to describe\n"
+"fields in Moo-based classes."
+msgstr ""
+
+#: gnu/packages/perl.scm:7515
+msgid "Fast Moose-compatible object system for perl5"
+msgstr ""
+
+#: gnu/packages/perl.scm:7517
+msgid ""
+"Mouse is a @code{Moose} compatible object system that implements a\n"
+"subset of the functionality for reduced startup time."
+msgstr ""
+
+#: gnu/packages/perl.scm:7540
+#, fuzzy
+#| msgid "SQlite interface for Perl"
+msgid "Extend attribute interfaces for Mouse"
+msgstr "Interfaco de SQLite por Perl"
+
+#: gnu/packages/perl.scm:7542
+msgid ""
+"While @code{Mouse} attributes provide a way to name your accessors,\n"
+"readers, writers, clearers and predicates, @code{MouseX::NativeTraits}\n"
+"provides commonly used attribute helper methods for more specific types\n"
+"of data."
+msgstr ""
+
+#: gnu/packages/perl.scm:7562
+msgid "Mozilla's CA cert bundle in PEM format"
+msgstr ""
+
+#: gnu/packages/perl.scm:7563
+msgid ""
+"@code{Mozilla::CA} provides a copy of Mozilla's bundle of\n"
+"Certificate Authority certificates in a form that can be consumed by modules\n"
+"and libraries based on OpenSSL."
+msgstr ""
+
+#: gnu/packages/perl.scm:7589
+msgid "Disable multidimensional array emulation"
+msgstr ""
+
+#: gnu/packages/perl.scm:7591
+msgid "Multidimensional disables multidimensional array emulation."
+msgstr ""
+
+#: gnu/packages/perl.scm:7608
+msgid "MRO interface compatibility for Perls < 5.9.5"
+msgstr ""
+
+#: gnu/packages/perl.scm:7609
+msgid ""
+"The \"mro\" namespace provides several utilities for dealing\n"
+"with method resolution order and method caching in general in Perl 5.9.5 and\n"
+"higher.  This module provides those interfaces for earlier versions of\n"
+"Perl (back to 5.6.0)."
+msgstr ""
+
+#: gnu/packages/perl.scm:7635
+msgid "Keep imports out of your namespace"
+msgstr ""
+
+#: gnu/packages/perl.scm:7636
+msgid ""
+"The namespace::autoclean pragma will remove all imported\n"
+"symbols at the end of the current package's compile cycle.  Functions called\n"
+"in the package itself will still be bound by their name, but they won't show\n"
+"up as methods on your class or instances.  It is very similar to\n"
+"namespace::clean, except it will clean all imported functions, no matter if\n"
+"you imported them before or after you used the pragma.  It will also not touch\n"
+"anything that looks like a method."
+msgstr ""
+
+#: gnu/packages/perl.scm:7662
+msgid "Keep imports and functions out of your namespace"
+msgstr ""
+
+#: gnu/packages/perl.scm:7663
+msgid ""
+"The namespace::clean pragma will remove all previously\n"
+"declared or imported symbols at the end of the current package's compile\n"
+"cycle.  Functions called in the package itself will still be bound by their\n"
+"name, but they won't show up as methods on your class or instances."
+msgstr ""
+
+#: gnu/packages/perl.scm:7681
+msgid "Object-oriented API to the BGP protocol"
+msgstr ""
+
+#: gnu/packages/perl.scm:7683
+msgid ""
+"This module is an implementation of the BGP-4 inter-domain routing protocol.\n"
+"It encapsulates all of the functionality needed to establish and maintain a\n"
+"BGP peering session and exchange routing update information with the peer.\n"
+"It aims to provide a simple API to the BGP protocol for the purposes of\n"
+"automation, logging, monitoring, testing, and similar tasks using the\n"
+"power and flexibility of perl.  The module does not implement the\n"
+"functionality of a RIB (Routing Information Base) nor does it modify the\n"
+"kernel routing table of the host system.  However, such operations could be\n"
+"implemented using the API provided by the module."
+msgstr ""
+
+#: gnu/packages/perl.scm:7708
+msgid "Non-blocking system DNS resolver"
+msgstr ""
+
+#: gnu/packages/perl.scm:7710
+msgid ""
+"This class provides several methods for host name resolution.  It is\n"
+"designed to be used with event loops.  Names are resolved by your system's\n"
+"native @code{getaddrinfo(3)} implementation, called in a separate thread to\n"
+"avoid blocking the entire application.  Threading overhead is limited by using\n"
+"system threads instead of Perl threads."
+msgstr ""
+
+#: gnu/packages/perl.scm:7733
+msgid "Internationalizing Domain Names in Applications (IDNA)"
+msgstr ""
+
+#: gnu/packages/perl.scm:7735
+msgid ""
+"Internationalized Domain Names (IDNs) use characters drawn from a large\n"
+"repertoire (Unicode), but IDNA allows the non-ASCII characters to be\n"
+"represented using only the ASCII characters already allowed in so-called host\n"
+"names today (letter-digit-hyphen, /[A-Z0-9-]/i).\n"
+"\n"
+"Use this module if you just want to convert domain names (or email addresses),\n"
+"using whatever IDNA standard is the best choice at the moment."
+msgstr ""
+
+#: gnu/packages/perl.scm:7761
+msgid "Perl client for Etsy's statsd daemon"
+msgstr ""
+
+#: gnu/packages/perl.scm:7762
+msgid ""
+"This module implement a UDP client for the statsd statistics\n"
+"collector daemon in use at Etsy.com."
+msgstr ""
+
+#: gnu/packages/perl.scm:7780
+msgid "Numeric comparisons"
+msgstr ""
+
+#: gnu/packages/perl.scm:7781
+msgid ""
+"Number::Compare compiles a simple comparison to an anonymous\n"
+"subroutine, which you can call with a value to be tested against."
+msgstr ""
+
+#: gnu/packages/perl.scm:7799
+msgid "Convert numbers to strings with pretty formatting"
+msgstr ""
+
+#: gnu/packages/perl.scm:7800
+msgid ""
+"@code{Number::Format} is a library for formatting numbers.\n"
+"Functions are provided for converting numbers to strings in a variety of ways,\n"
+"and to convert strings that contain numbers back into numeric form.  The\n"
+"output formats may include thousands separators - characters inserted between\n"
+"each group of three characters counting right to left from the decimal point.\n"
+"The characters used for the decimal point and the thousands separator come from\n"
+"the locale information or can be specified by the user."
+msgstr ""
+
+#: gnu/packages/perl.scm:7824
+msgid "Perl extension defining ranges of numbers"
+msgstr ""
+
+#: gnu/packages/perl.scm:7825
+msgid ""
+"Number::Range is an object-oriented interface to test if a\n"
+"number exists in a given range, and to be able to manipulate the range."
+msgstr ""
+
+#: gnu/packages/perl.scm:7844
+msgid "Generate cryptographic signatures for objects"
+msgstr ""
+
+#: gnu/packages/perl.scm:7845
+msgid ""
+"Object::Signature is an abstract base class that you can\n"
+"inherit from in order to allow your objects to generate unique cryptographic\n"
+"signatures."
+msgstr ""
+
+#: gnu/packages/perl.scm:7866
+msgid "Read and write OLE storage files"
+msgstr ""
+
+#: gnu/packages/perl.scm:7867
+msgid ""
+"This module allows you to read and write\n"
+"an OLE-Structured file.  @dfn{OLE} (Object Linking and Embedding) is a\n"
+"technology to store hierarchical information such as links to other\n"
+"documents within a single file."
+msgstr ""
+
+#: gnu/packages/perl.scm:7890
+msgid "Anonymous packages"
+msgstr ""
+
+#: gnu/packages/perl.scm:7891
+msgid ""
+"This module allows for anonymous packages that are\n"
+"independent of the main namespace and only available through an object\n"
+"instance, not by name."
+msgstr ""
+
+#: gnu/packages/perl.scm:7919
+msgid "Manage deprecation warnings for your distribution"
+msgstr ""
+
+#: gnu/packages/perl.scm:7920
+msgid ""
+"This module allows you to manage a set of deprecations for\n"
+"one or more modules."
+msgstr ""
+
+#: gnu/packages/perl.scm:7946
+msgid "Routines for manipulating stashes"
+msgstr ""
+
+#: gnu/packages/perl.scm:7947
+msgid ""
+"Manipulating stashes (Perl's symbol tables) is occasionally\n"
+"necessary, but incredibly messy, and easy to get wrong.  This module hides all\n"
+"of that behind a simple API."
+msgstr ""
+
+#: gnu/packages/perl.scm:7969
+#, fuzzy
+#| msgid "Curses Implementation of the Glk API"
+msgid "Faster implementation of the Package::Stash API"
+msgstr "Realigo curses de la API Glk"
+
+#: gnu/packages/perl.scm:7970
+msgid ""
+"This is a backend for Package::Stash, which provides the\n"
+"functionality in a way that's less buggy and much faster.  It will be used by\n"
+"default if it's installed, and should be preferred in all environments with a\n"
+"compiler."
+msgstr ""
+
+#: gnu/packages/perl.scm:7989
+msgid "Play with other peoples' lexical variables"
+msgstr ""
+
+#: gnu/packages/perl.scm:7990
+msgid ""
+"PadWalker is a module which allows you to inspect (and even\n"
+"change) lexical variables in any subroutine which called you.  It will only\n"
+"show those variables which are in scope at the point of the call.  PadWalker\n"
+"is particularly useful for debugging."
+msgstr ""
+
+#: gnu/packages/perl.scm:8014
+msgid "Simple parallel processing fork manager"
+msgstr ""
+
+#: gnu/packages/perl.scm:8015
+msgid ""
+"@code{Parallel::ForkManager} is intended for use in\n"
+"operations that can be done in parallel where the number of\n"
+"processes to be forked off should be limited."
+msgstr ""
+
+#: gnu/packages/perl.scm:8041
+msgid "Argument type classification"
+msgstr ""
+
+#: gnu/packages/perl.scm:8042
+msgid ""
+"This module provides various type-testing functions.\n"
+"These are intended for functions that care what type of data they are\n"
+"operating on.  There are two flavours of function.  Functions of the\n"
+"first flavour provide type classification only.  Functions of the\n"
+"second flavour also check that an argument is of an expected type.\n"
+"The type enforcement functions handle only the simplest requirements\n"
+"for arguments of the types handled by the classification functions.\n"
+"Enforcement of more complex types may be built using the\n"
+"classification functions, or it may be more convenient to use a module\n"
+"designed for the more complex job, such as @code{Params::Validate}"
+msgstr ""
+
+#: gnu/packages/perl.scm:8069
+msgid "Simple, compact and correct param-checking functions"
+msgstr ""
+
+#: gnu/packages/perl.scm:8071
+msgid ""
+"Params::Util provides a basic set of importable functions that makes\n"
+"checking parameters easier."
+msgstr ""
+
+#: gnu/packages/perl.scm:8095
+msgid "Validate method/function parameters"
+msgstr ""
+
+#: gnu/packages/perl.scm:8096
+msgid ""
+"The Params::Validate module allows you to validate method or\n"
+"function call parameters to an arbitrary level of specificity."
+msgstr ""
+
+#: gnu/packages/perl.scm:8123
+msgid "Build an optimized subroutine parameter validator"
+msgstr ""
+
+#: gnu/packages/perl.scm:8124
+msgid ""
+"This module creates a customized, highly efficient\n"
+"parameter checking subroutine.  It can handle named or positional\n"
+"parameters, and can return the parameters as key/value pairs or a list\n"
+"of values.  In addition to type checks, it also supports parameter\n"
+"defaults, optional parameters, and extra \"slurpy\" parameters."
+msgstr ""
+
+#: gnu/packages/perl.scm:8145
+msgid "Create and manipulate PAR distributions"
+msgstr ""
+
+#: gnu/packages/perl.scm:8146
+msgid ""
+"PAR::Dist is a toolkit to create and manipulate PAR\n"
+"distributions."
+msgstr ""
+
+#: gnu/packages/perl.scm:8168
+msgid "Path specification manipulation"
+msgstr ""
+
+#: gnu/packages/perl.scm:8169
+msgid ""
+"Path::Class is a module for manipulation of file and\n"
+"directory specifications in a cross-platform manner."
+msgstr ""
+
+#: gnu/packages/perl.scm:8199
+#, fuzzy
+#| msgid "Tools for working with USB devices, such as lsusb"
+msgid "Tools for working with directory and file names"
+msgstr "Iloj por labori kun USB-aparatoj, kiel lsusb"
+
+#: gnu/packages/perl.scm:8200
+#, fuzzy
+#| msgid "This package provides tools for manipulating ext2/ext3/ext4 file systems."
+msgid ""
+"This package provides functions to work with directory and\n"
+"file names."
+msgstr "Tiu ĉi pako provizas ilojn por manipuli dosiersistemojn ext2/ext3/ext4."
+
+#: gnu/packages/perl.scm:8224
+msgid "File path utility"
+msgstr ""
+
+#: gnu/packages/perl.scm:8225
+msgid ""
+"This module provides a small, fast utility for working\n"
+"with file paths."
+msgstr ""
+
+#: gnu/packages/perl.scm:8248
+msgid "Facilitates the creation and modification of PDF files"
+msgstr ""
+
+#: gnu/packages/perl.scm:8249
+msgid ""
+"This Perl module facilitates the creation and modification\n"
+"of PDF files."
+msgstr ""
+
+#: gnu/packages/perl.scm:8270
+msgid "Fast and correct UTF-8 IO"
+msgstr ""
+
+#: gnu/packages/perl.scm:8271
+msgid ""
+"@code{PerlIO::utf8_strict} provides a fast and correct UTF-8\n"
+"PerlIO layer.  Unlike Perl's default @code{:utf8} layer it checks the input\n"
+"for correctness."
+msgstr ""
+
+#: gnu/packages/perl.scm:8294
+msgid "Acmeist PEG Parser Framework"
+msgstr ""
+
+#: gnu/packages/perl.scm:8295
+msgid ""
+"Pegex is an Acmeist parser framework.  It allows you to easily\n"
+"create parsers that will work equivalently in lots of programming languages.\n"
+"The inspiration for Pegex comes from the parsing engine upon which the\n"
+"postmodern programming language Perl 6 is based on.  Pegex brings this beauty\n"
+"to the other justmodern languages that have a normal regular expression engine\n"
+"available."
+msgstr ""
+
+#: gnu/packages/perl.scm:8319
+msgid "Check for comprehensive documentation of a module"
+msgstr ""
+
+#: gnu/packages/perl.scm:8320
+msgid ""
+"This module provides a mechanism for determining if the pod\n"
+"for a given module is comprehensive."
+msgstr ""
+
+#: gnu/packages/perl.scm:8337
+msgid "Parsing library for text in Pod format"
+msgstr ""
+
+#: gnu/packages/perl.scm:8338
+msgid ""
+"@code{Pod::Simple} is a Perl library for parsing text in\n"
+"the @dfn{Pod} (plain old documentation) markup language that is typically\n"
+"used for writing documentation for Perl and for Perl modules."
+msgstr ""
+
+#: gnu/packages/perl.scm:8359
+msgid "GNU C library compatible strftime for loggers and servers"
+msgstr ""
+
+#: gnu/packages/perl.scm:8360
+msgid ""
+"POSIX::strftime::Compiler provides GNU C library compatible\n"
+"strftime(3).  But this module is not affected by the system locale.  This\n"
+"feature is useful when you want to write loggers, servers, and portable\n"
+"applications."
+msgstr ""
+
+#: gnu/packages/perl.scm:8392
+msgid "Parse, analyze and manipulate Perl (without Perl)"
+msgstr ""
+
+#: gnu/packages/perl.scm:8393
+msgid ""
+"The PPI module parses, analyzes and manipulates Perl\n"
+"code."
+msgstr ""
+
+#: gnu/packages/perl.scm:8409
+msgid "Information about the currently running perl"
+msgstr ""
+
+#: gnu/packages/perl.scm:8411
+msgid ""
+"Probe::Perl provides methods for obtaining information about the\n"
+"currently running perl interpreter.  It originally began life as code in the\n"
+"Module::Build project, but has been externalized here for general use."
+msgstr ""
+
+#: gnu/packages/perl.scm:8438
+msgid "Interface to external editor from Perl"
+msgstr ""
+
+#: gnu/packages/perl.scm:8439
+msgid ""
+"This module provides the ability to supply some text to an\n"
+"external text editor, have it edited by the user, and retrieve the results."
+msgstr ""
+
+#: gnu/packages/perl.scm:8458
+msgid "Create read-only scalars, arrays, hashes"
+msgstr ""
+
+#: gnu/packages/perl.scm:8459
+msgid ""
+"This module provides a facility for creating non-modifiable\n"
+"variables in Perl.  This is useful for configuration files, headers, etc.  It\n"
+"can also be useful as a development and debugging tool for catching updates to\n"
+"variables that should not be changed."
+msgstr ""
+
+#: gnu/packages/perl.scm:8479
+msgid "XS implementation for Ref::Util"
+msgstr ""
+
+#: gnu/packages/perl.scm:8480
+msgid ""
+"@code{Ref::Util::XS} is the XS implementation of\n"
+"@code{Ref::Util}, which provides several functions to help identify references\n"
+"in a more convenient way than the usual approach of examining the return value\n"
+"of @code{ref}."
+msgstr ""
+
+#: gnu/packages/perl.scm:8498
+msgid "Provide commonly requested regular expressions"
+msgstr ""
+
+#: gnu/packages/perl.scm:8500
+msgid ""
+"This module exports a single hash (@code{%RE}) that stores or generates\n"
+"commonly needed regular expressions.  Patterns currently provided include:\n"
+"balanced parentheses and brackets, delimited text (with escapes), integers and\n"
+"floating-point numbers in any base (up to 36), comments in 44 languages,\n"
+"offensive language, lists of any pattern, IPv4 addresses, URIs, and Zip\n"
+"codes."
+msgstr ""
+
+#: gnu/packages/perl.scm:8524
+msgid "Selection of general-utility regexp subroutines"
+msgstr ""
+
+#: gnu/packages/perl.scm:8525
+msgid ""
+"This package provides a selection of regular expression\n"
+"subroutines including @code{is_regexp}, @code{regexp_seen_evals},\n"
+"@code{regexp_is_foreign}, @code{regexp_is_anchored}, @code{serialize_regexp},\n"
+"and @code{deserialize_regexp}."
+msgstr ""
+
+#: gnu/packages/perl.scm:8550
+msgid "Roles, as a slice of Moose"
+msgstr ""
+
+#: gnu/packages/perl.scm:8551
+msgid "Role::Tiny is a minimalist role composition tool."
+msgstr ""
+
+#: gnu/packages/perl.scm:8581
+msgid "Call isa, can, does, and DOES safely"
+msgstr ""
+
+#: gnu/packages/perl.scm:8582
+msgid ""
+"This module allows you to call isa, can, does, and DOES\n"
+"safely on things that may not be objects."
+msgstr ""
+
+#: gnu/packages/perl.scm:8605
+msgid "String aspects of scalars"
+msgstr ""
+
+#: gnu/packages/perl.scm:8606
+msgid ""
+"@code{Scalar::String} is about the string part of\n"
+"plain Perl scalars.  A scalar has a string value, which is notionally\n"
+"a sequence of Unicode codepoints but may be internally encoded in\n"
+"either ISO-8859-1 or UTF-8.  In places, more so in older versions of\n"
+"Perl, the internal encoding shows through.  To fully understand Perl\n"
+"strings it is necessary to understand these implementation details.\n"
+"This module provides functions to classify a string by encoding and to\n"
+"encode a string in a desired way.  The module is implemented in XS,\n"
+"with a pure Perl backup version for systems that cannot handle XS."
+msgstr ""
+
+#: gnu/packages/perl.scm:8631
+#, fuzzy
+#| msgid "Userspace device management"
+msgid "Lexically-scoped resource management"
+msgstr "Administro de uzant-spaca aparato"
+
+#: gnu/packages/perl.scm:8632
+msgid ""
+"This module provides a convenient way to perform cleanup or\n"
+"other forms of resource management at the end of a scope.  It is particularly\n"
+"useful when dealing with exceptions: the Scope::Guard constructor takes a\n"
+"reference to a subroutine that is guaranteed to be called even if the thread\n"
+"of execution is aborted prematurely.  This effectively allows lexically-scoped\n"
+"\"promises\" to be made that are automatically honoured by perl's garbage\n"
+"collector."
+msgstr ""
+
+#: gnu/packages/perl.scm:8655
+msgid "Infinite sets"
+msgstr ""
+
+#: gnu/packages/perl.scm:8656
+msgid "Set::Infinite is a set theory module for infinite sets."
+msgstr ""
+
+#: gnu/packages/perl.scm:8673
+msgid "Manage sets of integers"
+msgstr ""
+
+#: gnu/packages/perl.scm:8674
+msgid ""
+"@code{Set::IntSpan} manages sets of integers.  It is\n"
+"optimized for sets that have long runs of consecutive integers."
+msgstr ""
+
+#: gnu/packages/perl.scm:8694
+msgid "Unordered collections of Perl Objects"
+msgstr ""
+
+#: gnu/packages/perl.scm:8695
+msgid ""
+"Set::Object provides efficient sets, unordered collections\n"
+"of Perl objects without duplicates for scalars and references."
+msgstr ""
+
+#: gnu/packages/perl.scm:8713
+#, fuzzy
+#| msgid "SQlite interface for Perl"
+msgid "Set operations for Perl"
+msgstr "Interfaco de SQLite por Perl"
+
+#: gnu/packages/perl.scm:8714
+msgid ""
+"The first priority of Set::Scalar is to be a convenient\n"
+"interface to sets (as in: unordered collections of Perl scalars).  While not\n"
+"designed to be slow or big, neither has it been designed to be fast or\n"
+"compact."
+msgstr ""
+
+#: gnu/packages/perl.scm:8734
+msgid "Sort arrays by one or multiple calculated keys"
+msgstr ""
+
+#: gnu/packages/perl.scm:8735
+msgid ""
+"This Perl module provides various functions to quickly sort\n"
+"arrays by one or multiple calculated keys."
+msgstr ""
+
+#: gnu/packages/perl.scm:8753
+msgid "Sort lexically, but sort numeral parts numerically"
+msgstr ""
+
+#: gnu/packages/perl.scm:8754
+msgid ""
+"This module exports two functions, @code{nsort} and\n"
+"@code{ncmp}; they are used in implementing a \"natural sorting\" algorithm.\n"
+"Under natural sorting, numeric substrings are compared numerically, and other\n"
+"word-characters are compared lexically."
+msgstr ""
+
+#: gnu/packages/perl.scm:8782
+msgid "Classes for representing type constraints and coercion"
+msgstr ""
+
+#: gnu/packages/perl.scm:8783
+msgid ""
+"The Specio distribution provides classes for representing type\n"
+"constraints and coercion, along with syntax sugar for declaring them.  Note that\n"
+"this is not a proper type system for Perl. Nothing in this distribution will\n"
+"magically make the Perl interpreter start checking a value's type on assignment\n"
+"to a variable. In fact, there's no built-in way to apply a type to a variable at\n"
+"all.  Instead, you can explicitly check a value against a type, and optionally\n"
+"coerce values to that type."
+msgstr ""
+
+#: gnu/packages/perl.scm:8806
+msgid "Spiffy Perl Interface Framework For You"
+msgstr ""
+
+#: gnu/packages/perl.scm:8807
+msgid ""
+"Spiffy is a framework and methodology for doing object\n"
+"oriented (OO) programming in Perl.  Spiffy combines the best parts of\n"
+"Exporter.pm, base.pm, mixin.pm and SUPER.pm into one magic foundation class.\n"
+"It attempts to fix all the nits and warts of traditional Perl OO, in a clean,\n"
+"straightforward and (perhaps someday) standard way.  Spiffy borrows ideas from\n"
+"other OO languages like Python, Ruby, Java and Perl 6."
+msgstr ""
+
+#: gnu/packages/perl.scm:8831
+#, fuzzy
+#| msgid "Collection of useful Guile Scheme modules"
+msgid "Collection of very basic statistics modules"
+msgstr "Aro da utilaj moduloj de Guile Scheme"
+
+#: gnu/packages/perl.scm:8832
+msgid ""
+"This package provides basic statistics functions like\n"
+"@code{median()}, @code{mean()}, @code{variance()} and @code{stddev()}."
+msgstr ""
+
+#: gnu/packages/perl.scm:8850
+msgid "Temporary buffer to save bytes"
+msgstr ""
+
+#: gnu/packages/perl.scm:8851
+msgid ""
+"Stream::Buffered is a buffer class to store arbitrary length\n"
+"of byte strings and then get a seekable filehandle once everything is\n"
+"buffered.  It uses PerlIO and/or temporary file to save the buffer depending\n"
+"on the length of the size."
+msgstr ""
+
+#: gnu/packages/perl.scm:8871
+msgid "Turn on strict and make all warnings fatal"
+msgstr ""
+
+#: gnu/packages/perl.scm:8872
+msgid ""
+"Strictures turns on strict and make all warnings fatal when\n"
+"run from within a source-controlled directory."
+msgstr ""
+
+#: gnu/packages/perl.scm:8912
+msgid "Camelcase and de-camelcase"
+msgstr ""
+
+#: gnu/packages/perl.scm:8913
+msgid ""
+"This module may be used to convert from under_score text to\n"
+"CamelCase and back again."
+msgstr ""
+
+#: gnu/packages/perl.scm:8932
+msgid "Backslash escapes, quoted phrase, word elision, etc."
+msgstr ""
+
+#: gnu/packages/perl.scm:8933
+msgid ""
+"This module provides a flexible calling interface to some\n"
+"frequently-performed string conversion functions, including applying and\n"
+"expanding standard C/Unix-style backslash escapes like \n"
+" and \t, wrapping and\n"
+"removing double-quotes, and truncating to fit within a desired length."
+msgstr ""
+
+#: gnu/packages/perl.scm:8958
+msgid "Build your own sprintf-like functions"
+msgstr ""
+
+#: gnu/packages/perl.scm:8960
+msgid ""
+"@code{String::Formatter} is a tool for building sprintf-like formatting\n"
+"routines.  It supports named or positional formatting, custom conversions,\n"
+"fixed string interpolation, and simple width-matching."
+msgstr ""
+
+#: gnu/packages/perl.scm:8981
+msgid "Rewrite strings based on a set of known prefixes"
+msgstr ""
+
+#: gnu/packages/perl.scm:8982
+msgid ""
+"This module allows you to rewrite strings based on a set of\n"
+"known prefixes."
+msgstr ""
+
+#: gnu/packages/perl.scm:9002
+msgid "Quote strings for passing through a shell"
+msgstr ""
+
+#: gnu/packages/perl.scm:9004
+msgid ""
+"@code{shell-quote} lets you pass arbitrary strings through the shell so\n"
+"that they won't be changed."
+msgstr ""
+
+#: gnu/packages/perl.scm:9023
+msgid "String printing alternatives to printf"
+msgstr ""
+
+#: gnu/packages/perl.scm:9025
+msgid ""
+"This module inserts values into (translated) strings.  It provides\n"
+"@code{printf} and @code{sprintf} alternatives via both an object-oriented and\n"
+"a functional interface."
+msgstr ""
+
+#: gnu/packages/perl.scm:9048
+msgid "Sophisticated exporter for custom-built routines"
+msgstr ""
+
+#: gnu/packages/perl.scm:9050
+msgid ""
+"Sub::Exporter provides a sophisticated alternative to Exporter.pm for\n"
+"custom-built routines."
+msgstr ""
+
+#: gnu/packages/perl.scm:9069
+msgid "Only use Sub::Exporter if you need it"
+msgstr ""
+
+#: gnu/packages/perl.scm:9070
+msgid ""
+"Sub::Exporter is an incredibly powerful module, but with\n"
+"that power comes great responsibility, as well as some runtime penalties.\n"
+"This module is a \"Sub::Exporter\" wrapper that will let your users just use\n"
+"Exporter if all they are doing is picking exports, but use \"Sub::Exporter\"\n"
+"if your users try to use \"Sub::Exporter\"'s more advanced features, like\n"
+"renaming exports, if they try to use them."
+msgstr ""
+
+#: gnu/packages/perl.scm:9092
+msgid "Retrieve names of code references"
+msgstr ""
+
+#: gnu/packages/perl.scm:9093
+msgid ""
+"Sub::Identify allows you to retrieve the real name of code\n"
+"references."
+msgstr ""
+
+#: gnu/packages/perl.scm:9113
+msgid "Tool to inspect subroutines"
+msgstr ""
+
+#: gnu/packages/perl.scm:9114
+#, fuzzy
+#| msgid "This package provides tools for manipulating ext2/ext3/ext4 file systems."
+msgid ""
+"This package provides tools for inspecting subroutines\n"
+"in Perl."
+msgstr "Tiu ĉi pako provizas ilojn por manipuli dosiersistemojn ext2/ext3/ext4."
+
+#: gnu/packages/perl.scm:9133
+msgid "Install subroutines into packages easily"
+msgstr ""
+
+#: gnu/packages/perl.scm:9135
+msgid ""
+"Sub::Install makes it easy to install subroutines into packages without\n"
+"the unsightly mess of C<no strict> or typeglobs lying about where just anyone\n"
+"can see them."
+msgstr ""
+
+#: gnu/packages/perl.scm:9156
+msgid "(Re)name a sub"
+msgstr ""
+
+#: gnu/packages/perl.scm:9157
+msgid ""
+"Assigns a new name to referenced sub.  If package\n"
+"specification is omitted in the name, then the current package is used.  The\n"
+"return value is the sub."
+msgstr ""
+
+#: gnu/packages/perl.scm:9180
+msgid "Efficient generation of subroutines via string eval"
+msgstr ""
+
+#: gnu/packages/perl.scm:9181
+msgid ""
+"Sub::Quote provides an efficient generation of subroutines\n"
+"via string eval."
+msgstr ""
+
+#: gnu/packages/perl.scm:9199
+msgid "Apparently run a function in a higher stack frame"
+msgstr ""
+
+#: gnu/packages/perl.scm:9200
+msgid ""
+"Like Tcl's uplevel() function, but not quite so dangerous.\n"
+"The idea is just to fool caller().  All the really naughty bits of Tcl's\n"
+"uplevel() are avoided."
+msgstr ""
+
+#: gnu/packages/perl.scm:9222
+msgid "Control superclass method dispatching"
+msgstr ""
+
+#: gnu/packages/perl.scm:9224
+msgid ""
+"When subclassing a class, you may occasionally want to dispatch control to\n"
+"the superclass---at least conditionally and temporarily.  This module provides\n"
+"nicer equivalents to the native Perl syntax for calling superclasses, along with\n"
+"a universal @code{super} method to determine a class' own superclass, and better\n"
+"support for run-time mix-ins and roles."
+msgstr ""
+
+#: gnu/packages/perl.scm:9244
+msgid "Perl extension for generating SVG documents"
+msgstr ""
+
+#: gnu/packages/perl.scm:9245
+msgid ""
+"SVG is a Perl module which generates a nested data structure\n"
+"containing the DOM representation of an SVG (Scalable Vector Graphics) image.\n"
+"Using SVG, you can generate SVG objects, embed other SVG instances into it,\n"
+"access the DOM object, create and access Javascript, and generate SMIL\n"
+"animation content."
+msgstr ""
+
+#: gnu/packages/perl.scm:9266
+#, fuzzy
+#| msgid "SQlite interface for Perl"
+msgid "Switch statement for Perl"
+msgstr "Interfaco de SQLite por Perl"
+
+#: gnu/packages/perl.scm:9267
+msgid ""
+"Switch is a Perl module which implements a generalized case\n"
+"mechanism.  The module augments the standard Perl syntax with two new\n"
+"statements: @code{switch} and @code{case}."
+msgstr ""
+
+#: gnu/packages/perl.scm:9314
+msgid "Perl extension for getting CPU information"
+msgstr ""
+
+#: gnu/packages/perl.scm:9316
+msgid ""
+"Sys::CPU is a module for counting the number of CPUs on a system, and\n"
+"determining their type and clock speed."
+msgstr ""
+
+#: gnu/packages/perl.scm:9336
+msgid "Get full hostname in Perl"
+msgstr ""
+
+#: gnu/packages/perl.scm:9337
+msgid ""
+"Sys::Hostname::Long tries very hard to get the full hostname\n"
+"of a system."
+msgstr ""
+
+#: gnu/packages/perl.scm:9356
+msgid "Access system calls that Perl doesn't normally provide access to"
+msgstr ""
+
+#: gnu/packages/perl.scm:9358
+msgid ""
+"Sys::Syscall allows one to use epoll and sendfile system calls from\n"
+"Perl.  Support is mostly Linux-only for now, but other syscalls/OSes are\n"
+"planned for the future."
+msgstr ""
+
+#: gnu/packages/perl.scm:9386
+msgid "Ensure that a platform has weaken support"
+msgstr ""
+
+#: gnu/packages/perl.scm:9387
+msgid ""
+"One recurring problem in modules that use Scalar::Util's\n"
+"weaken function is that it is not present in the pure-perl variant.  If\n"
+"Scalar::Util is not available at all, it will issue a normal dependency on the\n"
+"module.  However, if Scalar::Util is relatively new ( it is >= 1.19 ) and the\n"
+"module does not have weaken, the install will bail out altogether with a long\n"
+"error encouraging the user to seek support."
+msgstr ""
+
+#: gnu/packages/perl.scm:9412
+msgid "Template processing system for Perl"
+msgstr ""
+
+#: gnu/packages/perl.scm:9413
+msgid ""
+"The Template Toolkit is a collection of modules which\n"
+"implement an extensible template processing system.  It was originally\n"
+"designed and remains primarily useful for generating dynamic web content, but\n"
+"it can be used equally well for processing any other kind of text based\n"
+"documents: HTML, XML, POD, PostScript, LaTeX, and so on."
+msgstr ""
+
+#: gnu/packages/perl.scm:9436
+msgid "Profiling for Template Toolkit"
+msgstr ""
+
+#: gnu/packages/perl.scm:9437
+msgid ""
+"Template::Timer provides inline profiling of the template\n"
+"processing in Perl code."
+msgstr ""
+
+#: gnu/packages/perl.scm:9457
+msgid "Template Toolkit reimplemented in as little code as possible"
+msgstr ""
+
+#: gnu/packages/perl.scm:9459
+msgid ""
+"@code{Template::Tiny} is a reimplementation of a subset of the\n"
+"functionality from Template Toolkit in as few lines of code as possible.\n"
+"\n"
+"It is intended for use in light-usage, low-memory, or low-cpu templating\n"
+"situations, where you may need to upgrade to the full feature set in the\n"
+"future, or if you want the retain the familiarity of TT-style templates."
+msgstr ""
+
+#: gnu/packages/perl.scm:9483
+msgid "Detect encoding of the current terminal"
+msgstr ""
+
+#: gnu/packages/perl.scm:9484
+msgid ""
+"Term::Encoding is a simple module to detect the encoding of\n"
+"the current terminal expects in various ways."
+msgstr ""
+
+#: gnu/packages/perl.scm:9508
+msgid "Progress meter on a standard terminal"
+msgstr ""
+
+#: gnu/packages/perl.scm:9509
+msgid ""
+"Term::ProgressBar provides a simple progress bar on the\n"
+"terminal, to let the user know that something is happening, roughly how much\n"
+"stuff has been done, and maybe an estimate at how long remains."
+msgstr ""
+
+#: gnu/packages/perl.scm:9532
+msgid "Progress meter if run interactively"
+msgstr ""
+
+#: gnu/packages/perl.scm:9533
+msgid ""
+"Term::ProgressBar is a wonderful module for showing progress\n"
+"bars on the terminal.  This module acts very much like that module when it is\n"
+"run interactively.  However, when it is not run interactively (for example, as\n"
+"a cron job) then it does not show the progress bar."
+msgstr ""
+
+#: gnu/packages/perl.scm:9555
+msgid "Simple progress bars"
+msgstr ""
+
+#: gnu/packages/perl.scm:9556
+msgid ""
+"Term::ProgressBar::Simple tells you how much work has been\n"
+"done, how much is left to do, and estimate how long it will take."
+msgstr ""
+
+#: gnu/packages/perl.scm:9574
+#, fuzzy
+#| msgid "Simple incremental backup tool"
+msgid "Simple terminal control"
+msgstr "Simpla alkrementa savkopiilo"
+
+#: gnu/packages/perl.scm:9575
+msgid ""
+"This module, ReadKey, provides ioctl control for terminals\n"
+"so the input modes can be changed (thus allowing reads of a single character\n"
+"at a time), and also provides non-blocking reads of stdin, as well as several\n"
+"other terminal related features, including retrieval/modification of the\n"
+"screen size, and retrieval/modification of the control characters."
+msgstr ""
+
+#: gnu/packages/perl.scm:9613
+#, fuzzy
+#| msgid "SQlite interface for Perl"
+msgid "GNU Readline/History Library interface for Perl"
+msgstr "Interfaco de SQLite por Perl"
+
+#: gnu/packages/perl.scm:9614
+msgid ""
+"This module implements an interface to the GNU Readline\n"
+"library.  It gives you input line editing facilities, input history management\n"
+"facilities, completion facilities, etc.  Term::ReadLine::Gnu is upwards\n"
+"compatible with Term::ReadLine."
+msgstr ""
+
+#: gnu/packages/perl.scm:9638
+msgid "Retrieve terminal size"
+msgstr ""
+
+#: gnu/packages/perl.scm:9639
+msgid ""
+"This is a unified interface to retrieve terminal size.  It\n"
+"loads one module of a list of known alternatives, each implementing some way\n"
+"to get the desired terminal information.  This loaded module will actually do\n"
+"the job on behalf of @code{Term::Size::Any}."
+msgstr ""
+
+#: gnu/packages/perl.scm:9658
+msgid "Perl extension for retrieving terminal size (Perl version)"
+msgstr ""
+
+#: gnu/packages/perl.scm:9659
+msgid ""
+"This is yet another implementation of @code{Term::Size}.\n"
+"Now in pure Perl, with the exception of a C probe run at build time."
+msgstr ""
+
+#: gnu/packages/perl.scm:9679
+msgid "Format a header and rows into a table"
+msgstr ""
+
+#: gnu/packages/perl.scm:9680
+msgid ""
+"This module is able to generically format rows of data\n"
+"into tables."
+msgstr ""
+
+#: gnu/packages/perl.scm:9698
+msgid "Align text"
+msgstr ""
+
+#: gnu/packages/perl.scm:9699
+msgid ""
+"Text::Aligner exports a single function, align(), which is\n"
+"used to justify strings to various alignment styles."
+msgstr ""
+
+#: gnu/packages/perl.scm:9717
+msgid "Extract delimited text sequences from strings"
+msgstr ""
+
+#: gnu/packages/perl.scm:9718
+msgid ""
+"The Text::Balanced module can be used to extract delimited\n"
+"text sequences from strings."
+msgstr ""
+
+#: gnu/packages/perl.scm:9735
+msgid "Manipulate comma-separated values"
+msgstr ""
+
+#: gnu/packages/perl.scm:9736
+msgid ""
+"Text::CSV provides facilities for the composition and\n"
+"decomposition of comma-separated values.  An instance of the Text::CSV class\n"
+"can combine fields into a CSV string and parse a CSV string into fields."
+msgstr ""
+
+#: gnu/packages/perl.scm:9754
+#, fuzzy
+#| msgid "Tools for manipulating Linux Wireless Extensions"
+msgid "Routines for manipulating CSV files"
+msgstr "Iloj por manipuli linuksan \"Wireless Extensions\""
+
+#: gnu/packages/perl.scm:9755
+msgid ""
+"@code{Text::CSV_XS} provides facilities for the composition\n"
+"and decomposition of comma-separated values.  An instance of the\n"
+"@code{Text::CSV_XS} class will combine fields into a CSV string and parse a\n"
+"CSV string into fields.  The module accepts either strings or files as input\n"
+"and support the use of user-specified characters for delimiters, separators,\n"
+"and escapes."
+msgstr ""
+
+#: gnu/packages/perl.scm:9779
+msgid "Perform diffs on files and record sets"
+msgstr ""
+
+#: gnu/packages/perl.scm:9780
+msgid ""
+"Text::Diff provides a basic set of services akin to the GNU\n"
+"diff utility.  It is not anywhere near as feature complete as GNU diff, but it\n"
+"is better integrated with Perl and available on all platforms.  It is often\n"
+"faster than shelling out to a system's diff executable for small files, and\n"
+"generally slower on larger files."
+msgstr ""
+
+#: gnu/packages/perl.scm:9805
+msgid "Various subroutines to format text"
+msgstr ""
+
+#: gnu/packages/perl.scm:9806
+msgid ""
+"This package provides functions to format text in various\n"
+"ways like centering, paragraphing, and converting tabs to spaces and spaces\n"
+"to tabs."
+msgstr ""
+
+#: gnu/packages/perl.scm:9826
+msgid "Match globbing patterns against text"
+msgstr ""
+
+#: gnu/packages/perl.scm:9827
+msgid ""
+"Text::Glob implements glob(3) style matching that can be\n"
+"used to match against text, rather than fetching names from a file system.  If\n"
+"you want to do full file globbing use the File::Glob module instead."
+msgstr ""
+
+#: gnu/packages/perl.scm:9850
+#, fuzzy
+#| msgid "Full chess implementation"
+msgid "Haml Perl implementation"
+msgstr "Kompleta realigo de ŝako"
+
+#: gnu/packages/perl.scm:9852
+msgid ""
+"Text::Haml implements Haml\n"
+"@url{http://haml.info/docs/yardoc/file.REFERENCE.html} specification."
+msgstr ""
+
+#: gnu/packages/perl.scm:9874
+msgid "Fast, middleweight template engine"
+msgstr ""
+
+#: gnu/packages/perl.scm:9876
+msgid ""
+"Text::NeatTemplate provides a simple, middleweight but fast\n"
+"template engine, for when you need speed rather than complex features,\n"
+"yet need more features than simple variable substitution."
+msgstr ""
+
+#: gnu/packages/perl.scm:9896
+msgid "Patches text with given patch"
+msgstr ""
+
+#: gnu/packages/perl.scm:9897
+msgid ""
+"Text::Patch combines source text with given\n"
+"diff (difference) data.  Diff data is produced by Text::Diff module or\n"
+"by the standard @code{diff} utility."
+msgstr ""
+
+#: gnu/packages/perl.scm:9916
+msgid "Convert between Roman and Arabic algorisms"
+msgstr ""
+
+#: gnu/packages/perl.scm:9917
+msgid ""
+"This package provides functions to convert between Roman and\n"
+"Arabic algorisms.  It supports both conventional Roman algorisms (which range\n"
+"from 1 to 3999) and Milhar Romans, a variation which uses a bar across the\n"
+"algorism to indicate multiplication by 1000."
+msgstr ""
+
+#: gnu/packages/perl.scm:9936
+msgid "Simple ASCII tables"
+msgstr ""
+
+#: gnu/packages/perl.scm:9937
+msgid "Text::SimpleTable draws simple ASCII tables."
+msgstr ""
+
+#: gnu/packages/perl.scm:9958
+msgid "Organize Data in Tables"
+msgstr ""
+
+#: gnu/packages/perl.scm:9959
+msgid "Text::Table renders plaintext tables."
+msgstr ""
+
+#: gnu/packages/perl.scm:9983
+msgid "Expand template text with embedded Perl"
+msgstr ""
+
+#: gnu/packages/perl.scm:9985
+msgid ""
+"This is a library for generating letters, building HTML pages, or\n"
+"filling in templates generally.  A template is a piece of text that has little\n"
+"Perl programs embedded in it here and there.  When you fill in a template, you\n"
+"evaluate the little programs and replace them with their values."
+msgstr ""
+
+#: gnu/packages/perl.scm:10004
+msgid "Provide plain ASCII transliterations of Unicode text"
+msgstr ""
+
+#: gnu/packages/perl.scm:10005
+msgid ""
+"Text::Unidecode provides a function, unidecode(...) that\n"
+"takes Unicode data and tries to represent it in US-ASCII characters (i.e., the\n"
+"universally displayable characters between 0x00 and 0x7F).  The representation\n"
+"is almost always an attempt at transliteration-- i.e., conveying, in Roman\n"
+"letters, the pronunciation expressed by the text in some other writing\n"
+"system."
+msgstr ""
+
+#: gnu/packages/perl.scm:10026
+msgid "Perl interpreter-based threads"
+msgstr ""
+
+#: gnu/packages/perl.scm:10027
+msgid "This module exposes interpreter threads to the Perl level."
+msgstr ""
+
+#: gnu/packages/perl.scm:10050
+msgid "Role for classes that can be thrown"
+msgstr ""
+
+#: gnu/packages/perl.scm:10051
+msgid ""
+"Throwable is a role for classes that are meant to be thrown\n"
+"as exceptions to standard program flow."
+msgstr ""
+
+#: gnu/packages/perl.scm:10068
+msgid "Perl script tidier"
+msgstr ""
+
+#: gnu/packages/perl.scm:10069
+msgid ""
+"This package contains a Perl script which indents and\n"
+"reformats Perl scripts to make them easier to read.   The formatting can be\n"
+"controlled with command line parameters.  The default parameter settings\n"
+"approximately follow the suggestions in the Perl Style Guide."
+msgstr ""
+
+#: gnu/packages/perl.scm:10089
+msgid "Cycle through a list of values"
+msgstr ""
+
+#: gnu/packages/perl.scm:10090
+msgid ""
+"You use @code{Tie::Cycle} to go through a list over and over\n"
+"again.  Once you get to the end of the list, you go back to the beginning."
+msgstr ""
+
+#: gnu/packages/perl.scm:10109
+msgid "Ordered associative arrays for Perl"
+msgstr ""
+
+#: gnu/packages/perl.scm:10110
+msgid ""
+"This Perl module implements Perl hashes that preserve the\n"
+"order in which the hash elements were added.  The order is not affected when\n"
+"values corresponding to existing keys in the IxHash are changed.  The elements\n"
+"can also be set to any arbitrary supplied order.  The familiar perl array\n"
+"operations can also be performed on the IxHash."
+msgstr ""
+
+#: gnu/packages/perl.scm:10133
+msgid "Special file handle that hides the beginning of a file"
+msgstr ""
+
+#: gnu/packages/perl.scm:10135
+msgid ""
+"This modules provides a file handle that hides the beginning of a file,\n"
+"by modifying the @code{seek()} and @code{tell()} calls."
+msgstr ""
+
+#: gnu/packages/perl.scm:10152
+msgid "Variable ties made much easier"
+msgstr ""
+
+#: gnu/packages/perl.scm:10154
+msgid ""
+"This module adds the ability to quickly create new types of tie objects\n"
+"without creating a complete class.  It does so in such a way as to try and\n"
+"make the programmers life easier when it comes to single-use ties that I find\n"
+"myself wanting to use from time-to-time.\n"
+"\n"
+"The Tie::Simple package is actually a front-end to other classes which really\n"
+"do all the work once tied, but this package does the dwimming to automatically\n"
+"figure out what you're trying to do."
+msgstr ""
+
+#: gnu/packages/perl.scm:10180
+msgid "Tie to an existing Perl object"
+msgstr ""
+
+#: gnu/packages/perl.scm:10181
+msgid ""
+"This class provides a tie constructor that returns the\n"
+"object it was given as it's first argument.  This way side effects of calling\n"
+"$object->TIEHASH are avoided."
+msgstr ""
+
+#: gnu/packages/perl.scm:10203
+msgid "English expression of durations"
+msgstr ""
+
+#: gnu/packages/perl.scm:10204
+msgid ""
+"This module provides functions for expressing durations in\n"
+"rounded or exact terms."
+msgstr ""
+
+#: gnu/packages/perl.scm:10225
+msgid "Parse time duration strings"
+msgstr ""
+
+#: gnu/packages/perl.scm:10226
+msgid ""
+"Time::Duration::Parse is a module to parse human readable\n"
+"duration strings like \"2 minutes\" and \"3 seconds\" to seconds."
+msgstr ""
+
+#: gnu/packages/perl.scm:10244
+msgid "High-resolution alarm, sleep, gettimeofday, and interval timers"
+msgstr ""
+
+#: gnu/packages/perl.scm:10245
+msgid ""
+"This package implements @code{usleep}, @code{ualarm}, and\n"
+"@code{gettimeofday} for Perl, as well as wrappers to implement @code{time},\n"
+"@code{sleep}, and @code{alarm} that know about non-integral seconds."
+msgstr ""
+
+#: gnu/packages/perl.scm:10264
+msgid "Efficiently compute time from local and GMT time"
+msgstr ""
+
+#: gnu/packages/perl.scm:10265
+msgid ""
+"This module provides functions that are the inverse of\n"
+"built-in perl functions localtime() and gmtime().  They accept a date as a\n"
+"six-element array, and return the corresponding time(2) value in seconds since\n"
+"the system epoch."
+msgstr ""
+
+#: gnu/packages/perl.scm:10285
+msgid "Object-Oriented time objects"
+msgstr ""
+
+#: gnu/packages/perl.scm:10287
+msgid ""
+"This module replaces the standard @code{localtime} and @code{gmtime}\n"
+"functions with implementations that return objects.  It does so in a\n"
+"backwards-compatible manner, so that using these functions as documented will\n"
+"still work as expected."
+msgstr ""
+
+#: gnu/packages/perl.scm:10306
+msgid "Date parsing/formatting subroutines"
+msgstr ""
+
+#: gnu/packages/perl.scm:10307
+msgid ""
+"This module provides routines for parsing date string into\n"
+"time values and formatting dates into ASCII strings."
+msgstr ""
+
+#: gnu/packages/perl.scm:10329
+msgid "Shift and scale time"
+msgstr ""
+
+#: gnu/packages/perl.scm:10330
+msgid ""
+"This module allows you to speed up your sleep(), alarm(),\n"
+"and time() calls."
+msgstr ""
+
+#: gnu/packages/perl.scm:10352
+msgid "Simple tree object"
+msgstr ""
+
+#: gnu/packages/perl.scm:10353
+msgid ""
+"This module in a fully object-oriented implementation of a\n"
+"simple n-ary tree."
+msgstr ""
+
+#: gnu/packages/perl.scm:10375
+msgid "Factory object for dispensing Visitor objects"
+msgstr ""
+
+#: gnu/packages/perl.scm:10376
+msgid ""
+"This module is a factory for dispensing\n"
+"Tree::Simple::Visitor::* objects."
+msgstr ""
+
+#: gnu/packages/perl.scm:10394
+msgid "Minimal try/catch with proper preservation of $@@"
+msgstr ""
+
+#: gnu/packages/perl.scm:10395
+msgid ""
+"This module provides bare bones try/catch/finally statements\n"
+"that are designed to minimize common mistakes with eval blocks, and nothing\n"
+"else."
+msgstr ""
+
+#: gnu/packages/perl.scm:10419
+msgid "Tie a variable to a type constraint"
+msgstr ""
+
+#: gnu/packages/perl.scm:10420
+msgid ""
+"This module exports a single function: @code{ttie}.  It ties\n"
+"a variable to a type constraint, ensuring that whatever values stored in the\n"
+"variable will conform to the type constraint.  If the type constraint has\n"
+"coercions, these will be used if necessary to ensure values assigned to the\n"
+"variable conform."
+msgstr ""
+
+#: gnu/packages/perl.scm:10452
+msgid "Tiny, yet Moo(se)-compatible type constraint"
+msgstr ""
+
+#: gnu/packages/perl.scm:10453
+msgid ""
+"@code{Type::Tiny} is a small class for writing type\n"
+"constraints, inspired by Moose's type constraint API.  It has only one\n"
+"non-core dependency (and even that is simply a module that was previously\n"
+"distributed as part of @code{Type::Tiny} but has since been spun off), and can\n"
+"be used with Moose, Mouse and Moo (or none of the above)."
+msgstr ""
+
+#: gnu/packages/perl.scm:10473
+msgid "Provides an XS boost for some of Type::Tiny's built-in type constraints"
+msgstr ""
+
+#: gnu/packages/perl.scm:10474
+msgid ""
+"This module is optionally used by @code{Type::Tiny} to\n"
+"provide faster, C-based implementations of some type constraints.  This\n"
+"package has only core dependencies, and does not depend on @code{Type::Tiny},\n"
+"so other data validation frameworks might also consider using it."
+msgstr ""
+
+#: gnu/packages/perl.scm:10498
+msgid "Types and coercions for Moose and Moo"
+msgstr ""
+
+#: gnu/packages/perl.scm:10499
+msgid ""
+"This module provides @code{Path::Tiny} types for Moose, Moo,\n"
+"etc.  It handles two important types of coercion: coercing objects with\n"
+"overloaded stringification, and coercing to absolute paths.  It also can check\n"
+"to ensure that files or directories exist."
+msgstr ""
+
+#: gnu/packages/perl.scm:10521
+msgid "Data types for common serialisation formats"
+msgstr ""
+
+#: gnu/packages/perl.scm:10522
+msgid ""
+"This module provides some extra datatypes that are used by\n"
+"common serialisation formats such as JSON or CBOR."
+msgstr ""
+
+#: gnu/packages/perl.scm:10549
+msgid "Unicode normalization forms"
+msgstr ""
+
+#: gnu/packages/perl.scm:10550
+msgid "This Perl module provides Unicode normalization forms."
+msgstr ""
+
+#: gnu/packages/perl.scm:10578
+msgid "Unicode collation algorithm"
+msgstr ""
+
+#: gnu/packages/perl.scm:10579
+#, fuzzy
+#| msgid "This package provides tools for manipulating ext2/ext3/ext4 file systems."
+msgid ""
+"This package provides tools for sorting and comparing\n"
+"Unicode data."
+msgstr "Tiu ĉi pako provizas ilojn por manipuli dosiersistemojn ext2/ext3/ext4."
+
+#: gnu/packages/perl.scm:10600
+msgid "Unicode line breaking algorithm"
+msgstr ""
+
+#: gnu/packages/perl.scm:10602
+msgid ""
+"@code{Unicode::LineBreak} implements the line breaking algorithm\n"
+"described in Unicode Standard Annex #14.  The @code{East_Asian_Width} property\n"
+"defined by Annex #11 is used to determine breaking positions."
+msgstr ""
+
+#: gnu/packages/perl.scm:10628
+msgid "Encoding and decoding of UTF-8 encoding form"
+msgstr ""
+
+#: gnu/packages/perl.scm:10630
+msgid ""
+"This module provides functions to encode and decode UTF-8 encoding form\n"
+"as specified by Unicode and ISO/IEC 10646:2011."
+msgstr ""
+
+#: gnu/packages/perl.scm:10648
+msgid "UNIVERSAL::can() reimplementation"
+msgstr ""
+
+#: gnu/packages/perl.scm:10649
+msgid ""
+"This module attempts to work around people calling\n"
+"UNIVERSAL::can() as a function, which it is not."
+msgstr ""
+
+#: gnu/packages/perl.scm:10669
+msgid "UNIVERSAL::isa() reimplementation"
+msgstr ""
+
+#: gnu/packages/perl.scm:10670
+msgid ""
+"This module attempts to recover from people calling\n"
+"UNIVERSAL::isa as a function."
+msgstr ""
+
+#: gnu/packages/perl.scm:10689
+msgid "Require modules from a variable"
+msgstr ""
+
+#: gnu/packages/perl.scm:10690
+msgid ""
+"This module lets you require other modules where the module\n"
+"name is in a variable, something you can't do with the @code{require}\n"
+"built-in."
+msgstr ""
+
+#: gnu/packages/perl.scm:10709
+msgid "Associate user-defined magic to variables from Perl"
+msgstr ""
+
+#: gnu/packages/perl.scm:10710
+msgid ""
+"Magic is Perl's way of enhancing variables.  This mechanism\n"
+"lets the user add extra data to any variable and hook syntactical\n"
+"operations (such as access, assignment or destruction) that can be applied to\n"
+"it.  With this module, you can add your own magic to any variable without\n"
+"having to write a single line of XS."
+msgstr ""
+
+#: gnu/packages/perl.scm:10733
+msgid "Easily generate well-formed, namespace-aware XML"
+msgstr ""
+
+#: gnu/packages/perl.scm:10734
+msgid ""
+"@code{XML::Writer} is a simple Perl module for writing XML\n"
+"documents: it takes care of constructing markup and escaping data correctly.\n"
+"By default, it also performs a significant amount of well-formedness checking\n"
+"on the output to make certain (for example) that start and end tags match,\n"
+"that there is exactly one document element, and that there are not duplicate\n"
+"attribute names."
+msgstr ""
+
+#: gnu/packages/perl.scm:10761
+msgid "Opaque, extensible XS pointer backed objects using sv_magic"
+msgstr ""
+
+#: gnu/packages/perl.scm:10763
+msgid ""
+"This way of associating structs with Perl space objects is designed to\n"
+"supersede Perl's builtin @code{T_PTROBJ} with something that is extensible\n"
+"(structs can be associated with any data type) and opaque (the C pointer is\n"
+"neither visible nor modifiable from Perl space)."
+msgstr ""
+
+#: gnu/packages/perl.scm:10784
+msgid "YAML for Perl"
+msgstr ""
+
+#: gnu/packages/perl.scm:10785
+msgid ""
+"The YAML.pm module implements a YAML Loader and Dumper based\n"
+"on the YAML 1.0 specification."
+msgstr ""
+
+#: gnu/packages/perl.scm:10803
+msgid "Perl YAML Serialization using XS and libyaml"
+msgstr ""
+
+#: gnu/packages/perl.scm:10805
+msgid ""
+"@code{YAML::XS} is a Perl XS binding to libyaml which offers Perl the\n"
+"best YAML support to date."
+msgstr ""
+
+#: gnu/packages/perl.scm:10828
+msgid "Read/Write YAML files"
+msgstr ""
+
+#: gnu/packages/perl.scm:10829
+msgid ""
+"YAML::Tiny is a perl class for reading and writing\n"
+"YAML-style files, written with as little code as possible, reducing load time\n"
+"and memory overhead."
+msgstr ""
+
+#: gnu/packages/perl.scm:10853
+msgid "Generate recursive-descent parsers"
+msgstr ""
+
+#: gnu/packages/perl.scm:10855
+msgid ""
+"@code{Parse::RecDescent} can incrementally generate top-down\n"
+"recursive-descent text parsers from simple yacc-like grammar specifications."
+msgstr ""
+
+#: gnu/packages/perl.scm:10875
+msgid "Generate and use LALR parsers"
+msgstr ""
+
+#: gnu/packages/perl.scm:10876
+msgid ""
+"This package compiles yacc-like @dfn{Look Ahead LR} (LALR)\n"
+"grammars to generate Perl object oriented parser modules."
+msgstr ""
+
+#: gnu/packages/perl.scm:10902
+msgid "Distribution metadata for a CPAN dist"
+msgstr ""
+
+#: gnu/packages/perl.scm:10903
+msgid ""
+"Software distributions released to the CPAN include a\n"
+"META.json or, for older distributions, META.yml, which describes the\n"
+"distribution, its contents, and the requirements for building and installing\n"
+"the distribution.  The data structure stored in the META.json file is\n"
+"described in CPAN::Meta::Spec.  CPAN::Meta provides a simple class to\n"
+"represent this distribution metadata (or distmeta), along with some helpful\n"
+"methods for interrogating that data."
+msgstr ""
+
+#: gnu/packages/perl.scm:10926
+msgid "Set of version requirements for a CPAN dist"
+msgstr ""
+
+#: gnu/packages/perl.scm:10927
+msgid ""
+"A CPAN::Meta::Requirements object models a set of version\n"
+"constraints like those specified in the META.yml or META.json files in CPAN\n"
+"distributions, and as defined by CPAN::Meta::Spec.  It can be built up by\n"
+"adding more and more constraints, and will reduce them to the simplest\n"
+"representation."
+msgstr ""
+
+#: gnu/packages/perl.scm:10950
+msgid "Read and write a subset of YAML for CPAN Meta files"
+msgstr ""
+
+#: gnu/packages/perl.scm:10951
+msgid ""
+"This module implements a subset of the YAML specification\n"
+"for use in reading and writing CPAN metadata files like META.yml and\n"
+"MYMETA.yml."
+msgstr ""
+
+#: gnu/packages/perl.scm:10972
+msgid "Build and install Perl modules"
+msgstr ""
+
+#: gnu/packages/perl.scm:10973
+msgid ""
+"@code{Module::Build} is a system for building, testing, and\n"
+"installing Perl modules; it used to be part of Perl itself until version 5.22,\n"
+"which dropped it.  It is meant to be an alternative to\n"
+"@code{ExtUtils::MakeMaker}.  Developers may alter the behavior of the module\n"
+"through subclassing in a much more straightforward way than with\n"
+"@code{MakeMaker}.  It also does not require a @command{make} on your\n"
+"system---most of the @code{Module::Build} code is pure-Perl."
+msgstr ""
+
+#: gnu/packages/perl.scm:10999
+msgid "Parse META.yml and META.json CPAN metadata files"
+msgstr ""
+
+#: gnu/packages/perl.scm:11000
+msgid ""
+"Parse::CPAN::Meta is a parser for META.json and META.yml\n"
+"files, using JSON::PP and/or CPAN::Meta::YAML."
+msgstr ""
+
+#: gnu/packages/perl.scm:11017
+msgid "Common Scalar and List utility subroutines"
+msgstr ""
+
+#: gnu/packages/perl.scm:11018
+msgid ""
+"This package contains a selection of subroutines that people\n"
+"have expressed would be nice to have in the perl core, but the usage would not\n"
+"really be high enough to warrant the use of a keyword, and the size so small\n"
+"such that being individual extensions would be wasteful."
+msgstr ""
+
+#: gnu/packages/perl.scm:11056
+#, fuzzy
+#| msgid "Guile bindings to ncurses"
+msgid "SDL bindings to Perl"
+msgstr "Bindoj de Guile por ncurses"
+
+#: gnu/packages/perl.scm:11058
+msgid ""
+"SDL Perl is a package of Perl modules that provide both functional and\n"
+"object oriented interfaces to the Simple DirectMedia Layer for Perl5.  This\n"
+"package takes some liberties with the SDL API, and attempts to adhere to the\n"
+"spirit of both the SDL and Perl."
+msgstr ""
+
+#: gnu/packages/perl.scm:11082
+msgid "Cross-platform functions emulating common shell commands"
+msgstr ""
+
+#: gnu/packages/perl.scm:11084
+msgid "Shell::Command is a thin wrapper around ExtUtils::Command."
+msgstr ""
+
+#: gnu/packages/perl.scm:11110
+msgid "Object-oriented File::Find replacement in Perl"
+msgstr ""
+
+#: gnu/packages/perl.scm:11111
+msgid ""
+"File::Find::Object is an object-oriented\n"
+"File::Find replacement in Perl."
+msgstr ""
+
+#: gnu/packages/perl.scm:11139
+msgid "Alternative interface to File::Find::Object"
+msgstr ""
+
+#: gnu/packages/perl.scm:11140
+msgid ""
+"File::Find::Object::Rule is an alternative Perl\n"
+"interface to File::Find::Object."
+msgstr ""
+
+#: gnu/packages/perl.scm:11161
+msgid "Wrapper for @code{File::Find} ala @code{find(1)}"
+msgstr ""
+
+#: gnu/packages/perl.scm:11163
+msgid ""
+"@code{File::Find} is great, but constructing the wanted routine can\n"
+"sometimes be a pain.  @code{File::Finder} provides a wanted-writer, using\n"
+"syntax that is directly mappable to the @code{find(1)} command's syntax.\n"
+"\n"
+"A @code{File::Finder} object contains a hash of @code{File::Find} options, and\n"
+"a series of steps that mimic find's predicates.  Initially, a\n"
+"@code{File::Finder} object has no steps.  Each step method clones the previous\n"
+"object's options and steps, and then adds the new step, returning the new\n"
+"object.  In this manner, an object can be grown, step by step, by chaining\n"
+"method calls.  Furthermore, a partial sequence can be created and held, and\n"
+"used as the head of many different sequences."
+msgstr ""
+
+#: gnu/packages/perl.scm:11192
+msgid "TTF font support for Perl"
+msgstr ""
+
+#: gnu/packages/perl.scm:11193
+msgid ""
+"This package provides a Perl module for TrueType/OpenType\n"
+"font hacking.  It supports reading, processing and writing of the following\n"
+"tables: GDEF, GPOS, GSUB, LTSH, OS/2, PCLT, bsln, cmap, cvt, fdsc, feat,\n"
+"fpgm, glyf, hdmx, head, hhea, hmtx, kern, loca, maxp, mort, name, post, prep,\n"
+"prop, vhea, vmtx and the reading and writing of all other table types."
+msgstr ""
+
+#: gnu/packages/perl.scm:11231
+msgid "Collection of Perl modules for time/date manipulation"
+msgstr ""
+
+#: gnu/packages/perl.scm:11232
+msgid ""
+"Provides several perl modules for date/time manipulation:\n"
+"@code{Time::CTime.pm}, @code{Time::JulianDay.pm}, @code{Time::ParseDate.pm},\n"
+"@code{Time::Timezone.pm}, and @code{Time::DaysInMonth.pm}."
+msgstr ""
+
+#: gnu/packages/perl.scm:11261
+msgid "Perl library for testing if a time() is in a specific period"
+msgstr ""
+
+#: gnu/packages/perl.scm:11262
+msgid ""
+"This Perl library provides a function which tells whether a\n"
+"specific time falls within a specified time period.  Its syntax for specifying\n"
+"time periods allows you to test for conditions like \"Monday to Friday, 9am\n"
+"till 5pm\" and \"on the second Tuesday of the month\" and \"between 4pm and\n"
+"4:15pm\" and \"in the first half of each minute\" and \"in January of\n"
+"1998\"."
+msgstr ""
+
+#: gnu/packages/perl.scm:11293
+msgid "Iterative, recursive file finder"
+msgstr ""
+
+#: gnu/packages/perl.scm:11294
+msgid ""
+"Path::Iterator::Rule iterates over files and directories to\n"
+"identify ones matching a user-defined set of rules.  The API is based heavily\n"
+"on File::Find::Rule, but with more explicit distinction between matching rules\n"
+"and options that influence how directories are searched.  A\n"
+"Path::Iterator::Rule object is a collection of rules (match criteria) with\n"
+"methods to add additional criteria.  Options that control directory traversal\n"
+"are given as arguments to the method that generates an iterator.\n"
+"\n"
+"A summary of features for comparison to other file finding modules:\n"
+"\n"
+"@itemize\n"
+"@item provides many helper methods for specifying rules\n"
+"@item offers (lazy) iterator and flattened list interfaces\n"
+"@item custom rules implemented with callbacks\n"
+"@item breadth-first (default) or pre- or post-order depth-first searching\n"
+"@item follows symlinks (by default, but can be disabled)\n"
+"@item directories visited only once (no infinite loop; can be disabled)\n"
+"@item doesn't chdir during operation\n"
+"@item provides an API for extensions\n"
+"@end itemize\n"
+"\n"
+"As a convenience, the PIR module is an empty subclass of this one that is less\n"
+"arduous to type for one-liners."
+msgstr ""
+
+#: gnu/packages/perl.scm:11334
+msgid "Include constants from POD"
+msgstr ""
+
+#: gnu/packages/perl.scm:11335
+msgid ""
+"This module allows you to specify those constants that\n"
+"should be documented in your POD, and pull them out a run time in a fairly\n"
+"arbitrary fashion.\n"
+"\n"
+"Pod::Constants uses Pod::Parser to do the parsing of the source file.  It has\n"
+"to open the source file it is called from, and does so directly either by\n"
+"lookup in %INC or by assuming it is $0 if the caller is @code{main}\n"
+"(or it can't find %INC{caller()})."
+msgstr ""
+
+#: gnu/packages/perl.scm:11361
+msgid "Collection of regexp patterns"
+msgstr ""
+
+#: gnu/packages/perl.scm:11362
+msgid ""
+"Regexp::Pattern is a convention for organizing reusable\n"
+"regexp patterns in modules."
+msgstr ""
+
+#: gnu/packages/perl.scm:11386
+msgid "Parse Lisp S-Expressions into Perl data structures"
+msgstr ""
+
+#: gnu/packages/perl.scm:11387
+msgid ""
+"Data::SExpression parses Lisp S-Expressions into Perl data\n"
+"structures."
+msgstr ""
+
+#: gnu/packages/photo.scm:170
+msgid "Import photos and videos from cameras, phones and memory cards"
+msgstr ""
+
+#: gnu/packages/photo.scm:171
+msgid ""
+"Import photos and videos from cameras, phones and memory\n"
+"cards and generate meaningful file and folder names."
+msgstr ""
+
+#: gnu/packages/photo.scm:194
+msgid "Raw image decoder"
+msgstr ""
+
+#: gnu/packages/photo.scm:196
+msgid ""
+"LibRaw is a library for reading RAW files obtained from digital photo\n"
+"cameras (CRW/CR2, NEF, RAF, DNG, and others)."
+msgstr ""
+
+#: gnu/packages/photo.scm:232
 msgid "Read and manipulate EXIF data in digital photographs"
 msgstr "Legi kaj manipuli datumaron EXIF en ciferecaj fotaĵoj"
 
-#: gnu/packages/photo.scm:48
+#: gnu/packages/photo.scm:234
 msgid ""
 "The libexif C library allows applications to read, edit, and save EXIF\n"
 "data as produced by digital cameras."
@@ -1800,45 +21413,159 @@ msgstr ""
 "La C-biblioteko libexif ebligas ke aplikaĵoj legu, redaktu kaj konservu\n"
 "datumaron EXIF samkiel produktite de ciferecaj kameraoj."
 
-#: gnu/packages/photo.scm:73
+#: gnu/packages/photo.scm:260
 msgid "Accessing digital cameras"
 msgstr "Aliro al ciferecaj kameraoj"
 
-#: gnu/packages/photo.scm:75
+#: gnu/packages/photo.scm:262
 msgid ""
 "This is the library backend for gphoto2.  It contains the code for PTP,\n"
 "MTP, and other vendor specific protocols for controlling and transferring data\n"
 "from digital cameras."
 msgstr ""
 
-#: gnu/packages/photo.scm:116
+#: gnu/packages/photo.scm:304
 msgid "Command-line tools to access digital cameras"
 msgstr "Komandliniaj iloj por aliri ciferecajn kameraojn"
 
-#: gnu/packages/photo.scm:118
+#: gnu/packages/photo.scm:306
 msgid ""
 "Gphoto2 is a set of command line utilities for manipulating a large\n"
 "number of different digital cameras.  Through libgphoto2, it supports PTP,\n"
 "MTP, and much more."
 msgstr ""
 
-#: gnu/packages/photo.scm:152
-msgid "Program and Perl library to manipulate EXIF tags"
+#: gnu/packages/photo.scm:347
+#, fuzzy
+#| msgid "Program and Perl library to manipulate EXIF tags"
+msgid "Program and Perl library to manipulate EXIF and other metadata"
 msgstr "Programaro kaj biblioteko Perl por manipuli etikedojn EXIF"
 
-#: gnu/packages/photo.scm:154
+#: gnu/packages/photo.scm:348
+#, fuzzy
+#| msgid ""
+#| "This package provides the 'exiftool' command and the 'Image::ExifTool'\n"
+#| "Perl library to manipulate EXIF tags of digital images."
 msgid ""
-"This package provides the 'exiftool' command and the 'Image::ExifTool'\n"
-"Perl library to manipulate EXIF tags of digital images."
+"This package provides the @code{exiftool} command and the\n"
+"@code{Image::ExifTool} Perl library to manipulate EXIF tags of digital images\n"
+"and a wide variety of other metadata."
 msgstr ""
 "Tiu ĉi pako provizas la komandon 'exiftool' kaj la bibliotekon Perl\n"
 "'Image::ExifTool' por manipuli etikedojn EXIF el ciferecaj bildoj."
 
-#: gnu/packages/ratpoison.scm:60
+#: gnu/packages/photo.scm:372
+#, fuzzy
+#| msgid "Library for handling popular graphics image formats"
+msgid "Library for panoramic images"
+msgstr "Biblioteko por trakti popularajn grafikaĵajn bild-formojn"
+
+#: gnu/packages/photo.scm:374
+msgid ""
+"The libpano13 package contains the backend library written by the\n"
+"Panorama Tools project for building panoramic images from a set of\n"
+"overlapping images, as well as some command line tools."
+msgstr ""
+
+#: gnu/packages/photo.scm:418
+#, fuzzy
+#| msgid "Tools for loading and managing Linux kernel modules"
+msgid "Tools for combining and blending images"
+msgstr "Iloj por ŝargi kaj administri linuks-kernajn modulojn"
+
+#: gnu/packages/photo.scm:420
+msgid ""
+"Enblend blends away the seams in a panoramic image mosaic using a\n"
+"multi-resolution spline.  Enfuse merges different exposures of the same\n"
+"scene to produce an image that looks much like a tone-mapped image."
+msgstr ""
+
+#: gnu/packages/photo.scm:451
+msgid "Library to correct optical lens defects with a lens database"
+msgstr ""
+
+#: gnu/packages/photo.scm:452
+msgid ""
+"Digital photographs are not ideal.  Of course, the better is\n"
+"your camera, the better the results will be, but in any case if you look\n"
+"carefully at shots taken even by the most expensive cameras equipped with the\n"
+"most expensive lenses you will see various artifacts.  It is very hard to make\n"
+"ideal cameras, because there are a lot of factors that affect the final image\n"
+"quality, and at some point camera and lens designers have to trade one factor\n"
+"for another to achieve the optimal image quality, within the given design\n"
+"restrictions and budget.  But we all want ideal shots, don't we?  So that's\n"
+"what's Lensfun is all about: rectifying the defects introduced by your\n"
+"photographic equipment."
+msgstr ""
+
+#: gnu/packages/photo.scm:570
+msgid "Virtual lighttable and darkroom for photographers"
+msgstr ""
+
+#: gnu/packages/photo.scm:571
+msgid ""
+"Darktable is a photography workflow application and RAW\n"
+"developer.  It manages your digital negatives in a database, lets you view\n"
+"them through a zoomable lighttable and enables you to develop raw images\n"
+"and enhance them."
+msgstr ""
+
+#: gnu/packages/photo.scm:615
+msgid "Quick, simple but powerful image editor"
+msgstr ""
+
+#: gnu/packages/photo.scm:616
+msgid ""
+"Photoflare is a cross-platform image editor with an aim\n"
+"to balance between powerful features and a very friendly graphical user\n"
+"interface.  It suits a wide variety of different tasks and users who value a\n"
+"more nimble workflow.  Features include basic image editing capabilities,\n"
+"paint brushes, image filters, colour adjustments and more advanced features\n"
+"such as Batch image processing."
+msgstr ""
+
+#: gnu/packages/photo.scm:681
+msgid "Camera control and capture"
+msgstr ""
+
+#: gnu/packages/photo.scm:683
+msgid ""
+"Entangle is an application which uses GTK and libgphoto2 to provide a\n"
+"graphical interface for tethered photography with digital cameras.  It\n"
+"includes control over camera shooting and configuration settings and 'hands\n"
+"off' shooting directly from the controlling computer."
+msgstr ""
+
+#: gnu/packages/photo.scm:752
+msgid "Panorama photo stitcher"
+msgstr ""
+
+#: gnu/packages/photo.scm:754
+msgid ""
+"Hugin is an easy to use panoramic imaging toolchain with a graphical\n"
+"user interface.  It can be used to assemble a mosaic of photographs into\n"
+"a complete panorama and stitch any series of overlapping pictures."
+msgstr ""
+
+#: gnu/packages/photo.scm:806
+msgid "Raw image developing and processing"
+msgstr ""
+
+#: gnu/packages/photo.scm:807
+msgid ""
+"RawTherapee is a raw image processing suite.  It comprises a\n"
+"subset of image editing operations specifically aimed at non-destructive raw\n"
+"photo post-production and is primarily focused on improving a photographer's\n"
+"workflow by facilitating the handling of large numbers of images.  Most raw\n"
+"formats are supported, including Pentax Pixel Shift, Canon Dual-Pixel, and those\n"
+"from Foveon and X-Trans sensors."
+msgstr ""
+
+#: gnu/packages/ratpoison.scm:85
 msgid "Simple mouse-free tiling window manager"
 msgstr "Simpla mus-libera kaheleca fenestr-administrilo"
 
-#: gnu/packages/ratpoison.scm:62
+#: gnu/packages/ratpoison.scm:87
 msgid ""
 "Ratpoison is a simple window manager with no fat library\n"
 "dependencies, no fancy graphics, no window decorations, and no\n"
@@ -1854,11 +21581,53 @@ msgid ""
 "cripples Emacs and other quality pieces of software."
 msgstr ""
 
-#: gnu/packages/scanner.scm:52
-msgid "Raster image scanner library and drivers"
+#: gnu/packages/readline.scm:104
+msgid "Edit command lines while typing, with history support"
+msgstr ""
+
+#: gnu/packages/readline.scm:106
+msgid ""
+"The GNU readline library allows users to edit command lines as they\n"
+"are typed in.  It can maintain a searchable history of previously entered\n"
+"commands, letting you easily recall, edit and re-enter past commands.  It\n"
+"features both Emacs-like and vi-like keybindings, making its usage\n"
+"comfortable for anyone."
+msgstr ""
+
+#: gnu/packages/readline.scm:162
+msgid "Wrapper to allow the editing of keyboard commands"
+msgstr ""
+
+#: gnu/packages/readline.scm:164
+msgid ""
+"Rlwrap is a 'readline wrapper', a small utility that uses the GNU\n"
+"readline library to allow the editing of keyboard input for any command.  You\n"
+"should consider rlwrap especially when you need user-defined completion (by way\n"
+"of completion word lists) and persistent history, or if you want to program\n"
+"'special effects' using the filter mechanism."
+msgstr ""
+
+#: gnu/packages/scanner.scm:110
+#, fuzzy
+#| msgid "Raster image scanner library and drivers"
+msgid "Raster image scanner library and drivers, without scanner support"
+msgstr "Rastruma bild-skanila biblioteko kaj peliloj"
+
+#: gnu/packages/scanner.scm:111
+msgid ""
+"SANE stands for \"Scanner Access Now Easy\" and is an API\n"
+"proving access to any raster image scanner hardware (flatbed scanner,\n"
+"hand-held scanner, video- and still-cameras, frame-grabbers, etc.).  The\n"
+"package contains the library, but no drivers."
+msgstr ""
+
+#: gnu/packages/scanner.scm:159
+#, fuzzy
+#| msgid "Raster image scanner library and drivers"
+msgid "Raster image scanner library and drivers, with scanner support"
 msgstr "Rastruma bild-skanila biblioteko kaj peliloj"
 
-#: gnu/packages/scanner.scm:53
+#: gnu/packages/scanner.scm:160
 msgid ""
 "SANE stands for \"Scanner Access Now Easy\" and is an API\n"
 "proving access to any raster image scanner hardware (flatbed scanner,\n"
@@ -1866,38 +21635,53 @@ msgid ""
 "package contains the library and drivers."
 msgstr ""
 
-#: gnu/packages/scheme.scm:126
+#: gnu/packages/scanner.scm:237
+msgid "Featureful graphical interface for document and image scanners"
+msgstr ""
+
+#: gnu/packages/scanner.scm:239
+msgid ""
+"XSane is a graphical interface for controlling a scanner and acquiring\n"
+"images from it.  You can photocopy multi-page documents and save, fax, print,\n"
+"or e-mail your scanned images.  It is highly configurable and exposes all\n"
+"device settings, letting you fine-tune the final result.  It can also be used\n"
+"as a GIMP plugin to acquire images directly from a scanner.\n"
+"\n"
+"XSane talks to scanners through the @acronym{SANE, Scanner Access Now Easy}\n"
+"back-end library, which supports almost all existing scanners."
+msgstr ""
+
+#: gnu/packages/scheme.scm:220
 msgid "A Scheme implementation with integrated editor and debugger"
 msgstr "Realigo de Scheme kun integrita redaktilo kaj erarserĉilo"
 
-#: gnu/packages/scheme.scm:128
+#: gnu/packages/scheme.scm:222
 msgid ""
 "GNU/MIT Scheme is an implementation of the Scheme programming\n"
 "language.  It provides an interpreter, a compiler and a debugger.  It also\n"
 "features an integrated Emacs-like editor and a large runtime library."
 msgstr ""
 
-#: gnu/packages/scheme.scm:208
+#: gnu/packages/scheme.scm:313
 msgid "Efficient Scheme compiler"
 msgstr "Efika kompililo Scheme"
 
-#: gnu/packages/scheme.scm:210
+#: gnu/packages/scheme.scm:315
 msgid ""
-"Bigloo is a Scheme implementation devoted to one goal: enabling\n"
-"Scheme based programming style where C(++) is usually\n"
-"required.  Bigloo attempts to make Scheme practical by offering\n"
-"features usually presented by traditional programming languages\n"
-"but not offered by Scheme and functional programming.  Bigloo\n"
-"compiles Scheme modules.  It delivers small and fast stand alone\n"
-"binary executables.  Bigloo enables full connections between\n"
-"Scheme and C programs and between Scheme and Java programs."
+"Bigloo is a Scheme implementation devoted to one goal: enabling Scheme\n"
+"based programming style where C(++) is usually required.  Bigloo attempts to\n"
+"make Scheme practical by offering features usually presented by traditional\n"
+"programming languages but not offered by Scheme and functional programming.\n"
+"Bigloo compiles Scheme modules.  It delivers small and fast stand alone binary\n"
+"executables.  Bigloo enables full connections between Scheme and C programs\n"
+"and between Scheme and Java programs."
 msgstr ""
 
-#: gnu/packages/scheme.scm:281
+#: gnu/packages/scheme.scm:366
 msgid "Multi-tier programming language for the Web 2.0"
 msgstr "Plurtavola programlingvo por la Web 2.0"
 
-#: gnu/packages/scheme.scm:283
+#: gnu/packages/scheme.scm:368
 msgid ""
 "HOP is a multi-tier programming language for the Web 2.0 and the\n"
 "so-called diffuse Web.  It is designed for programming interactive web\n"
@@ -1906,33 +21690,22 @@ msgid ""
 "mashups, office (web agendas, mail clients, ...), etc."
 msgstr ""
 
-#: gnu/packages/scheme.scm:323
-msgid "R5RS Scheme implementation that compiles native code via C"
-msgstr "Realigo R5RS de Scheme kiu kompilas originalan kodumaron per C"
-
-#: gnu/packages/scheme.scm:325
-msgid ""
-"CHICKEN is a compiler for the Scheme programming language.  CHICKEN\n"
-"produces portable and efficient C, supports almost all of the R5RS Scheme\n"
-"language standard, and includes many enhancements and extensions."
-msgstr ""
-
-#: gnu/packages/scheme.scm:344
+#: gnu/packages/scheme.scm:389
 msgid "Scheme implementation using a bytecode interpreter"
 msgstr "Realigo de Scheme, kiu uzas bajtkodan interpretilon"
 
-#: gnu/packages/scheme.scm:346
+#: gnu/packages/scheme.scm:391
 msgid ""
 "Scheme 48 is an implementation of Scheme based on a byte-code\n"
 "interpreter and is designed to be used as a testbed for experiments in\n"
 "implementation techniques and as an expository tool."
 msgstr ""
 
-#: gnu/packages/scheme.scm:419
+#: gnu/packages/scheme.scm:520
 msgid "Implementation of Scheme and related languages"
 msgstr "Realigo de Scheme kaj rilataj program-lingvoj"
 
-#: gnu/packages/scheme.scm:421
+#: gnu/packages/scheme.scm:522
 msgid ""
 "Racket is an implementation of the Scheme programming language (R5RS and\n"
 "R6RS) and related languages, such as Typed Racket.  It features a compiler and\n"
@@ -1940,40 +21713,7502 @@ msgid ""
 "of libraries."
 msgstr ""
 
-#: gnu/packages/wordnet.scm:79
+#: gnu/packages/scheme.scm:546
+msgid "Racket without bundled packages such as Dr. Racket"
+msgstr ""
+
+#: gnu/packages/scheme.scm:558
+msgid ""
+"Racket is an implementation of the Scheme programming language (R5RS and\n"
+"R6RS) and related languages, such as Typed Racket.  It features a compiler and\n"
+"a virtual machine with just-in-time native compilation, as well as a large set\n"
+"of libraries.\n"
+"\n"
+"In this minimal package, the essential package racket-libs is included, as\n"
+"well as libraries that live in collections.  In particular, @command{raco} and\n"
+"the @code{pkg} library are still bundled."
+msgstr ""
+
+#: gnu/packages/scheme.scm:588
+#, fuzzy
+#| msgid "Efficient Scheme compiler"
+msgid "Efficient Scheme interpreter and compiler"
+msgstr "Efika kompililo Scheme"
+
+#: gnu/packages/scheme.scm:590
+msgid ""
+"Gambit consists of two main programs: gsi, the Gambit Scheme\n"
+"interpreter, and gsc, the Gambit Scheme compiler.  The interpreter contains\n"
+"the complete execution and debugging environment.  The compiler is the\n"
+"interpreter extended with the capability of generating executable files.  The\n"
+"compiler can produce standalone executables or compiled modules which can be\n"
+"loaded at run time.  Interpreted code and compiled code can be freely\n"
+"mixed."
+msgstr ""
+
+#: gnu/packages/scheme.scm:624
+#, fuzzy
+#| msgid "Full chess implementation"
+msgid "Small embeddable Scheme implementation"
+msgstr "Kompleta realigo de ŝako"
+
+#: gnu/packages/scheme.scm:626
+msgid ""
+"Chibi-Scheme is a very small library with no external dependencies\n"
+"intended for use as an extension and scripting language in C programs.  In\n"
+"addition to support for lightweight VM-based threads, each VM itself runs in\n"
+"an isolated heap allowing multiple VMs to run simultaneously in different OS\n"
+"threads."
+msgstr ""
+
+#: gnu/packages/scheme.scm:673
+msgid "Structure and Interpretation of Computer Programs"
+msgstr ""
+
+#: gnu/packages/scheme.scm:674
+msgid ""
+"Structure and Interpretation of Computer Programs (SICP) is\n"
+"a textbook aiming to teach the principles of computer programming.\n"
+"\n"
+"Using Scheme, a dialect of the Lisp programming language, the book explains\n"
+"core computer science concepts such as abstraction in programming,\n"
+"metalinguistic abstraction, recursion, interpreters, and modular programming."
+msgstr ""
+
+#: gnu/packages/scheme.scm:716
+msgid "SRE String pattern-matching library for scheme48"
+msgstr ""
+
+#: gnu/packages/scheme.scm:718
+msgid ""
+"String pattern-matching library for scheme48 based on the SRE\n"
+"regular-expression notation."
+msgstr ""
+
+#: gnu/packages/scheme.scm:751
+msgid "Compatibility and utility library for Scheme"
+msgstr ""
+
+#: gnu/packages/scheme.scm:752
+msgid ""
+"SLIB is a portable Scheme library providing compatibility and\n"
+"utility functions for all standard Scheme implementations."
+msgstr ""
+
+#: gnu/packages/scheme.scm:808
+msgid "Scheme implementation conforming to R5RS and IEEE P1178"
+msgstr ""
+
+#: gnu/packages/scheme.scm:809
+msgid ""
+"GNU SCM is an implementation of Scheme.  This\n"
+"implementation includes Hobbit, a Scheme-to-C compiler, which can\n"
+"generate C files whose binaries can be dynamically or statically\n"
+"linked with a SCM executable."
+msgstr ""
+
+#: gnu/packages/scheme.scm:866
+msgid "Light-weight interpreter for the Scheme programming language"
+msgstr ""
+
+#: gnu/packages/scheme.scm:868
+msgid ""
+"TinyScheme is a light-weight Scheme interpreter that implements as large a\n"
+"subset of R5RS as was possible without getting very large and complicated.\n"
+"\n"
+"It's meant to be used as an embedded scripting interpreter for other programs.\n"
+"As such, it does not offer an Integrated Development Environment (@dfn{IDE}) or\n"
+"extensive toolkits, although it does sport a small (and optional) top-level\n"
+"loop.\n"
+"\n"
+"As an embedded interpreter, it allows multiple interpreter states to coexist in\n"
+"the same program, without any interference between them.  Foreign functions in C\n"
+"can be added and values can be defined in the Scheme environment.  Being quite a\n"
+"small program, it is easy to comprehend, get to grips with, and use."
+msgstr ""
+
+#: gnu/packages/scheme.scm:947
+#, fuzzy
+#| msgid "Efficient Scheme compiler"
+msgid "Brutally efficient Scheme compiler"
+msgstr "Efika kompililo Scheme"
+
+#: gnu/packages/scheme.scm:949
+msgid ""
+"Stalin is an aggressively optimizing whole-program compiler\n"
+"for Scheme that does polyvariant interprocedural flow analysis,\n"
+"flow-directed interprocedural escape analysis, flow-directed\n"
+"lightweight CPS conversion, flow-directed lightweight closure\n"
+"conversion, flow-directed interprocedural lifetime analysis, automatic\n"
+"in-lining, unboxing, and flow-directed program-specific and\n"
+"program-point-specific low-level representation selection and code\n"
+"generation."
+msgstr ""
+
+#: gnu/packages/scheme.scm:1002
+#, fuzzy
+#| msgid "Full chess implementation"
+msgid "Scheme-like lisp implementation"
+msgstr "Kompleta realigo de ŝako"
+
+#: gnu/packages/scheme.scm:1004
+msgid ""
+"@code{femtolisp} is a scheme-like lisp implementation with a\n"
+"simple, elegant Scheme dialect.  It is a lisp-1 with lexical scope.\n"
+"The core is 12 builtin special forms and 33 builtin functions."
+msgstr ""
+
+#: gnu/packages/scheme.scm:1074
+msgid "Scheme scripting engine"
+msgstr ""
+
+#: gnu/packages/scheme.scm:1075
+msgid ""
+"Gauche is a R7RS Scheme scripting engine aiming at being a\n"
+"handy tool that helps programmers and system administrators to write small to\n"
+"large scripts quickly.  Quick startup, built-in system interface, native\n"
+"multilingual support are some of the goals.  Gauche comes with a package\n"
+"manager/installer @code{gauche-package} which can download, compile, install\n"
+"and list gauche extension packages."
+msgstr ""
+
+#: gnu/packages/scheme.scm:1176
+msgid "Meta-dialect of Scheme with post-modern features"
+msgstr ""
+
+#: gnu/packages/scheme.scm:1177
+msgid ""
+"Gerbil is an opinionated dialect of Scheme designed for Systems\n"
+"Programming, with a state of the art macro and module system on top of the Gambit\n"
+"runtime.  The macro system is based on quote-syntax, and provides the full meta-syntactic\n"
+"tower with a native implementation of syntax-case.  It also provides a full-blown module\n"
+"system, similar to PLT Scheme's (sorry, Racket) modules.  The main difference from Racket\n"
+"is that Gerbil modules are single instantiation, supporting high performance ahead of\n"
+"time compilation and compiled macros."
+msgstr ""
+
+#: gnu/packages/search.scm:78
+msgid "Search Engine Library"
+msgstr ""
+
+#: gnu/packages/search.scm:80
+msgid ""
+"Xapian is a highly adaptable toolkit which allows developers to easily\n"
+"add advanced indexing and search facilities to their own applications.  It\n"
+"supports the Probabilistic Information Retrieval model and also supports a\n"
+"rich set of boolean query operators."
+msgstr ""
+
+#: gnu/packages/search.scm:113
+#, fuzzy
+#| msgid "C++ bindings to the Cairo 2D graphics library"
+msgid "Python bindings for the Xapian search engine library"
+msgstr "Bindoj de C++ por la 2D-grafika biblioteko Cairo"
+
+#: gnu/packages/search.scm:134
+msgid "Perl XS frontend to the Xapian C++ search library"
+msgstr ""
+
+#: gnu/packages/search.scm:136
+msgid ""
+"Search::Xapian wraps most methods of most Xapian classes.  The missing\n"
+"classes and methods should be added in the future.  It also provides a\n"
+"simplified, more 'perlish' interface to some common operations."
+msgstr ""
+
+#: gnu/packages/search.scm:177
+msgid "Tool for Obsessive Compulsive Classifiers"
+msgstr ""
+
+#: gnu/packages/search.scm:179
+msgid ""
+"libtocc is the engine of the Tocc project, a tag-based file management\n"
+"system.  The goal of Tocc is to provide a better system for classifying files\n"
+"that is more flexible than classic file systems that are based on a tree of\n"
+"files and directories."
+msgstr ""
+
+#: gnu/packages/search.scm:201
+msgid "Command-line interface to libtocc"
+msgstr ""
+
+#: gnu/packages/search.scm:203
+msgid ""
+"Tocc is a tag-based file management system.  This package contains the\n"
+"command line tool for interacting with libtocc."
+msgstr ""
+
+#: gnu/packages/search.scm:221
+msgid "Finding text and HTML files that match boolean expressions"
+msgstr ""
+
+#: gnu/packages/search.scm:223
+msgid ""
+"GNU Bool is a utility to perform text searches on files using Boolean\n"
+"expressions.  For example, a search for \"hello AND world\" would return a\n"
+"file containing the phrase \"Hello, world!\".  It supports both AND and OR\n"
+"statements, as well as the NEAR statement to search for the occurrence of\n"
+"words in close proximity to each other.  It handles context gracefully,\n"
+"accounting for new lines and paragraph changes.  It also has robust support\n"
+"for parsing HTML files."
+msgstr ""
+
+#: gnu/packages/search.scm:253
+msgid "Full-text search system"
+msgstr ""
+
+#: gnu/packages/search.scm:254
+msgid ""
+"Hyper Estraier can be used to integrate full-text\n"
+"search into applications, using either the provided command line and CGI\n"
+"interfaces, or a C API."
+msgstr ""
+
+#: gnu/packages/search.scm:272
+#, fuzzy
+#| msgid "User-space union file system"
+msgid "Locate files on the file system"
+msgstr "Uzant-spaca unuiga dosiersistemo"
+
+#: gnu/packages/search.scm:274
+msgid ""
+"mlocate is a locate/updatedb implementation.  The @code{m} stands for\n"
+"\"merging\": @code{updatedb} reuses the existing database to avoid rereading\n"
+"most of the file system, which makes it faster and does not trash the system\n"
+"caches as much.  The locate(1) utility is intended to be completely compatible\n"
+"with slocate, and attempts to be compatible to GNU locate when it does not\n"
+"conflict with slocate compatibility."
+msgstr ""
+
+#: gnu/packages/search.scm:339
+msgid "Web indexing system"
+msgstr ""
+
+#: gnu/packages/search.scm:341
+msgid ""
+"Swish-e is Simple Web Indexing System for Humans - Enhanced.  Swish-e\n"
+"can quickly and easily index directories of files or remote web sites and\n"
+"search the generated indexes."
+msgstr ""
+
+#: gnu/packages/search.scm:408
+msgid "Personal document indexing system"
+msgstr ""
+
+#: gnu/packages/search.scm:410
+msgid ""
+"Xapers is a personal document indexing system,\n"
+"geared towards academic journal articles build on the Xapian search engine.\n"
+"Think of it as your own personal document search engine, or a local cache of\n"
+"online libraries.  It provides fast search of document text and\n"
+"bibliographic data and simple document and bibtex retrieval."
+msgstr ""
+
+#: gnu/packages/serveez.scm:52
+msgid "Framework for implementing IP-based servers"
+msgstr ""
+
+#: gnu/packages/serveez.scm:54
+msgid ""
+"GNU Serveez is a server framework providing the routines necessary to\n"
+"easily implement IP-based servers in your application.  It\n"
+"demonstrates aspects of network programming in a portable manner,\n"
+"making it convenient for both simplifying the process of adding a\n"
+"server to your application or for learning about how network services\n"
+"work.  Several example servers are provided already, such as an HTTP\n"
+"server and an IRC server."
+msgstr ""
+
+#: gnu/packages/shells.scm:91
+msgid "POSIX-compliant shell optimised for size"
+msgstr ""
+
+#: gnu/packages/shells.scm:93
+msgid ""
+"dash is a POSIX-compliant @command{/bin/sh} implementation that aims to be\n"
+"as small as possible, often without sacrificing speed.  It is faster than the\n"
+"GNU Bourne-Again Shell (@command{bash}) at most scripted tasks.  dash is a\n"
+"direct descendant of NetBSD's Almquist Shell (@command{ash})."
+msgstr ""
+
+#: gnu/packages/shells.scm:235
+msgid "The friendly interactive shell"
+msgstr ""
+
+#: gnu/packages/shells.scm:237
+msgid ""
+"Fish (friendly interactive shell) is a shell focused on interactive use,\n"
+"discoverability, and friendliness.  Fish has very user-friendly and powerful\n"
+"tab-completion, including descriptions of every completion, completion of\n"
+"strings with wildcards, and many completions for specific commands.  It also\n"
+"has extensive and discoverable help.  A special @command{help} command gives\n"
+"access to all the fish documentation in your web browser.  Other features\n"
+"include smart terminal handling based on terminfo, an easy to search history,\n"
+"and syntax highlighting."
+msgstr ""
+
+#: gnu/packages/shells.scm:290
+#, fuzzy
+#| msgid "Database independent interface for Perl"
+msgid "Foreign environment interface for fish shell"
+msgstr "Datumbaz-sendependa interfaco por Perl"
+
+#: gnu/packages/shells.scm:291
+msgid ""
+"@code{fish-foreign-env} wraps bash script execution in a way\n"
+"that environment variables that are exported or modified get imported back\n"
+"into fish."
+msgstr ""
+
+#: gnu/packages/shells.scm:329
+msgid "Alternative implementation of the rc shell by Byron Rakitzis"
+msgstr ""
+
+#: gnu/packages/shells.scm:331
+msgid ""
+"This is a reimplementation by Byron Rakitzis of the Plan 9 shell.  It\n"
+"has a small feature set similar to a traditional Bourne shell."
+msgstr ""
+
+#: gnu/packages/shells.scm:362
+msgid "Extensible shell with higher-order functions"
+msgstr ""
+
+#: gnu/packages/shells.scm:364
+msgid ""
+"Es is an extensible shell.  The language was derived from the Plan 9\n"
+"shell, rc, and was influenced by functional programming languages, such as\n"
+"Scheme, and the Tcl embeddable programming language.  This implementation is\n"
+"derived from Byron Rakitzis's public domain implementation of rc, and was\n"
+"written by Paul Haahr and Byron Rakitzis."
+msgstr ""
+
+#: gnu/packages/shells.scm:431
+msgid "Unix shell based on csh"
+msgstr ""
+
+#: gnu/packages/shells.scm:433
+msgid ""
+"Tcsh is an enhanced, but completely compatible version of the Berkeley\n"
+"UNIX C shell (csh).  It is a command language interpreter usable both as an\n"
+"interactive login shell and a shell script command processor.  It includes a\n"
+"command-line editor, programmable word completion, spelling correction, a\n"
+"history mechanism, job control and a C-like syntax."
+msgstr ""
+
+#: gnu/packages/shells.scm:501
+msgid "Powerful shell for interactive use and scripting"
+msgstr "Potenca ŝelo por interaga uzo kaj por skriptoj"
+
+#: gnu/packages/shells.scm:502
+msgid ""
+"The Z shell (zsh) is a Unix shell that can be used\n"
+"as an interactive login shell and as a powerful command interpreter\n"
+"for shell scripting.  Zsh can be thought of as an extended Bourne shell\n"
+"with a large number of improvements, including some features of bash,\n"
+"ksh, and tcsh."
+msgstr ""
+
+#: gnu/packages/shells.scm:550
+msgid "Python-ish shell"
+msgstr ""
+
+#: gnu/packages/shells.scm:552
+msgid ""
+"Xonsh is a Python-ish, BASHwards-looking shell language and command\n"
+"prompt.  The language is a superset of Python 3.4+ with additional shell\n"
+"primitives that you are used to from Bash and IPython.  It works on all major\n"
+"systems including Linux, Mac OSX, and Windows.  Xonsh is meant for the daily\n"
+"use of experts and novices alike."
+msgstr ""
+
+#: gnu/packages/shells.scm:596
+msgid "Unix shell embedded in Scheme"
+msgstr ""
+
+#: gnu/packages/shells.scm:598
+msgid ""
+"Scsh is a Unix shell embedded in Scheme.  Scsh has two main\n"
+"components: a process notation for running programs and setting up pipelines\n"
+"and redirections, and a complete syscall library for low-level access to the\n"
+"operating system."
+msgstr ""
+
+#: gnu/packages/shells.scm:638
+msgid "Minimal zero-config readline replacement"
+msgstr ""
+
+#: gnu/packages/shells.scm:640
+msgid ""
+"Linenoise is a minimal, zero-config, readline replacement.\n"
+"Its features include:\n"
+"\n"
+"@enumerate\n"
+"@item Single and multi line editing mode with the usual key bindings\n"
+"@item History handling\n"
+"@item Completion\n"
+"@item Hints (suggestions at the right of the prompt as you type)\n"
+"@item A subset of VT100 escapes, ANSI.SYS compatible\n"
+"@end enumerate\n"
+msgstr ""
+
+#: gnu/packages/shells.scm:702
+msgid "Extremely minimal shell with the simplest syntax possible"
+msgstr ""
+
+#: gnu/packages/shells.scm:704
+msgid ""
+"S is a new shell that aims to be extremely simple.  It does not\n"
+"implement the POSIX shell standard.\n"
+"\n"
+"There are no globs or \"splatting\" where a variable $FOO turns into multiple\n"
+"command line arguments.  One token stays one token forever.\n"
+"This is a \"no surprises\" straightforward approach.\n"
+"\n"
+"There are no redirection operators > in the shell language, they are added as\n"
+"extra programs.  > is just another unix command, < is essentially cat(1).\n"
+"A @code{andglob} program is also provided along with s."
+msgstr ""
+
+#: gnu/packages/shells.scm:733
+msgid "Port of OpenBSD Korn Shell"
+msgstr ""
+
+#: gnu/packages/shells.scm:735
+msgid ""
+"Oksh is a port of the OpenBSD Korn Shell.\n"
+"The OpenBSD Korn Shell is a cleaned up and enhanced ksh."
+msgstr ""
+
+#: gnu/packages/shells.scm:767
+msgid "Korn Shell from OpenBSD"
+msgstr ""
+
+#: gnu/packages/shells.scm:769
+msgid ""
+"loksh is a Linux port of OpenBSD's @command{ksh}.  It is a small,\n"
+"interactive POSIX shell targeted at resource-constrained systems."
+msgstr ""
+
+#: gnu/packages/shells.scm:807
+msgid "Korn Shell from MirBSD"
+msgstr ""
+
+#: gnu/packages/shells.scm:808
+msgid ""
+"mksh is an actively developed free implementation of the\n"
+"Korn Shell programming language and a successor to the Public Domain Korn\n"
+"Shell (pdksh)."
+msgstr ""
+
+#: gnu/packages/shells.scm:849
+msgid "Programming language and Bash-compatible Unix shell"
+msgstr ""
+
+#: gnu/packages/shells.scm:850
+msgid ""
+"Oil is a programming language with automatic translation for\n"
+"Bash.  It includes osh, a Unix/POSIX shell that runs unmodified Bash\n"
+"scripts."
+msgstr ""
+
+#: gnu/packages/shells.scm:886
+msgid "POSIX-compatible shell written in Guile Scheme"
+msgstr ""
+
+#: gnu/packages/shells.scm:887
+msgid ""
+"Gash is a POSIX-compatible shell written in Guile\n"
+"Scheme.  It provides both the shell interface, as well as a Guile\n"
+"library for parsing shell scripts.  Gash is designed to bootstrap Bash\n"
+"as part of the Guix bootstrap process."
+msgstr ""
+
+#: gnu/packages/shells.scm:920
+msgid "Core POSIX utilities written in Guile Scheme"
+msgstr ""
+
+#: gnu/packages/shells.scm:921
+msgid ""
+"Gash-Utils provides Scheme implementations of many\n"
+"common POSIX utilities (there are about 40 of them, ranging in\n"
+"complexity from @command{false} to @command{awk}).  The utilities are\n"
+"designed to be capable of bootstrapping their standard GNU counterparts.\n"
+"Underpinning these utilities are many Scheme interfaces for manipulating\n"
+"files and text."
+msgstr ""
+
+#: gnu/packages/telephony.scm:118
+msgid "Libre iLBC codec"
+msgstr ""
+
+#: gnu/packages/telephony.scm:119
+msgid ""
+"LibiLBC is a packaging friendly copy of the iLBC codec from\n"
+"the WebRTC project.  It provides a base for distribution packages and can be\n"
+"used as drop-in replacement for the non-free code from RFC 3591."
+msgstr ""
+
+#: gnu/packages/telephony.scm:206
+msgid "DSP library for telephony"
+msgstr ""
+
+#: gnu/packages/telephony.scm:207
+msgid ""
+"SpanDSP is a library of DSP functions for telephony, in the\n"
+"8000 sample per second world of E1s, T1s, and higher order PCM channels.  It\n"
+"contains low level functions, such as basic filters.  It also contains higher\n"
+"level functions, such as cadenced supervisory tone detection, and a complete\n"
+"software FAX machine."
+msgstr ""
+
+#: gnu/packages/telephony.scm:236
+msgid "(u)Common C++ framework for threaded applications"
+msgstr ""
+
+#: gnu/packages/telephony.scm:237
+msgid ""
+"GNU Common C++ is an portable, optimized class framework for\n"
+"threaded applications, supporting concurrent synchronization, inter-process\n"
+"communications via sockets, and various methods for data handling, such as\n"
+"serialization and XML parsing.  It includes the uCommon C++ library, a smaller\n"
+"reimplementation."
+msgstr ""
+
+#: gnu/packages/telephony.scm:259
+msgid "Common C++ framework for threaded applications"
+msgstr ""
+
+#: gnu/packages/telephony.scm:260
+msgid ""
+"GNU uCommon C++ is meant as a very light-weight C++ library\n"
+"to facilitate using C++ design patterns even for very deeply embedded\n"
+"applications, such as for systems using uclibc along with posix threading\n"
+"support."
+msgstr ""
+
+#: gnu/packages/telephony.scm:282
+msgid "Implementation of RTP (real-time transport protocol)"
+msgstr ""
+
+#: gnu/packages/telephony.scm:283
+msgid ""
+"GNU ccRTP is an implementation of RTP, the real-time transport\n"
+"protocol from the IETF.  It is suitable both for high capacity servers and\n"
+"personal client applications.  It is flexible in its design, allowing it to\n"
+"function as a framework for the framework, rather than just being a\n"
+"packet-manipulation library."
+msgstr ""
+
+#: gnu/packages/telephony.scm:316
+#, fuzzy
+#| msgid "Curses Implementation of the Glk API"
+msgid "C++ Implementation of ZRTP protocol"
+msgstr "Realigo curses de la API Glk"
+
+#: gnu/packages/telephony.scm:317
+msgid ""
+"GNU ZRTP C++ provides a library that adds ZRTP support to the\n"
+"GNU ccRTP stack and serves as library for other RTP stacks\n"
+"(PJSIP, GStreamer)."
+msgstr ""
+
+#: gnu/packages/telephony.scm:336
+msgid "Library implementing SIP (RFC-3261)"
+msgstr ""
+
+#: gnu/packages/telephony.scm:337
+msgid ""
+"GNU oSIP is an implementation of the SIP protocol.  It is\n"
+"used to provide multimedia and telecom software developers with an interface\n"
+"to initiate and control SIP sessions."
+msgstr ""
+
+#: gnu/packages/telephony.scm:358
+#, fuzzy
+#| msgid "Data source abstraction library"
+msgid "Sip abstraction library"
+msgstr "Datumar-fonta abstrakta biblioteko"
+
+#: gnu/packages/telephony.scm:359
+msgid ""
+"EXosip is a library that hides the complexity of using the\n"
+"SIP protocol for multimedia session establishment.  This protocol is mainly to\n"
+"be used by VoIP telephony applications (endpoints or conference server) but\n"
+"might be also useful for any application that wish to establish sessions like\n"
+"multiplayer games."
+msgstr ""
+
+#: gnu/packages/telephony.scm:402
+msgid "Secure peer-to-peer VoIP server for the SIP protocol"
+msgstr ""
+
+#: gnu/packages/telephony.scm:403
+msgid ""
+"GNU SIP Witch is a peer-to-peer Voice-over-IP server that\n"
+"uses the SIP protocol.  Calls can be made from behind NAT firewalls and\n"
+"without the need for a service provider.  Its peer-to-peer design ensures that\n"
+"there is no central point for media intercept or capture and thus it can be\n"
+"used to construct a secure telephone system that operates over the public\n"
+"internet."
+msgstr ""
+
+#: gnu/packages/telephony.scm:443
+msgid "Secure RTP (SRTP) Reference Implementation"
+msgstr ""
+
+#: gnu/packages/telephony.scm:445
+msgid ""
+"This package provides an implementation of the Secure Real-time Transport\n"
+"Protocol (@dfn{SRTP}), the Universal Security Transform (@dfn{UST}), and a\n"
+"supporting cryptographic kernel."
+msgstr ""
+
+#: gnu/packages/telephony.scm:473
+#, fuzzy
+#| msgid "NetLink protocol library suite"
+msgid "Inter-Asterisk-Protocol library"
+msgstr "Biblioteka programaro por la protokolo NetLink"
+
+#: gnu/packages/telephony.scm:474
+msgid ""
+"LibIAX2 implements the Inter-Asterisk-Protocol for relaying\n"
+"Voice-over-IP (VoIP) communications."
+msgstr ""
+
+#: gnu/packages/telephony.scm:505
+msgid "Simple VoIP program to create conferences from the terminal"
+msgstr ""
+
+#: gnu/packages/telephony.scm:507
+msgid ""
+"Seren is a simple VoIP program based on the Opus codec that allows you\n"
+"to create a voice conference from the terminal, with up to 10 participants,\n"
+"without having to register accounts, exchange emails, or add people to contact\n"
+"lists.  All you need to join an existing conference is the host name or IP\n"
+"address of one of the participants."
+msgstr ""
+
+#: gnu/packages/telephony.scm:651
+msgid "Low-latency, high quality voice chat software"
+msgstr ""
+
+#: gnu/packages/telephony.scm:653
+msgid ""
+"Mumble is an low-latency, high quality voice chat\n"
+"software primarily intended for use while gaming.\n"
+"Mumble consists of two applications for separate usage:\n"
+"@code{mumble} for the client, and @code{murmur} for the server."
+msgstr ""
+
+#: gnu/packages/telephony.scm:711
+msgid "Softphone for voice over IP and instant messaging"
+msgstr ""
+
+#: gnu/packages/telephony.scm:712
+msgid ""
+"Twinkle is a softphone for your voice over IP and instant\n"
+"messaging communcations using the SIP protocol.  You can use it for direct\n"
+"IP phone to IP phone communication or in a network using a SIP proxy to route\n"
+"your calls and messages."
+msgstr ""
+
+#: gnu/packages/telephony.scm:861
+msgid "Session Initiation Protocol (SIP) stack"
+msgstr ""
+
+#: gnu/packages/telephony.scm:862
+msgid ""
+"PJProject provides an implementation of the Session\n"
+"Initiation Protocol (SIP) and a multimedia framework."
+msgstr ""
+
+#: gnu/packages/telephony.scm:909
+msgid "VoIP library for Telegram clients"
+msgstr ""
+
+#: gnu/packages/telephony.scm:910
+msgid ""
+"A collection of libraries and header files for implementing\n"
+"telephony functionality into custom Telegram clients."
+msgstr ""
+
+#: gnu/packages/tex.scm:438 gnu/packages/tex.scm:5803
+#: gnu/packages/tex.scm:5866
+msgid "TeX Live, a package of the TeX typesetting system"
+msgstr ""
+
+#: gnu/packages/tex.scm:440
+msgid ""
+"TeX Live provides a comprehensive TeX document production system.\n"
+"It includes all the major TeX-related programs, macro packages, and fonts\n"
+"that are free software, including support for many languages around the\n"
+"world.\n"
+"\n"
+"This package contains the binaries."
+msgstr ""
+
+#: gnu/packages/tex.scm:459
+msgid "Utility to strip documentation from TeX files."
+msgstr ""
+
+#: gnu/packages/tex.scm:460
+msgid ""
+"This package provides the docstrip utility to strip\n"
+"documentation from TeX files.  It is part of the LaTeX base."
+msgstr ""
+
+#: gnu/packages/tex.scm:474
+msgid "Unicode data and loaders for TeX"
+msgstr ""
+
+#: gnu/packages/tex.scm:475
+msgid ""
+"This bundle provides generic access to Unicode Consortium\n"
+"data for TeX use.  It contains a set of text files provided by the Unicode\n"
+"Consortium which are currently all from Unicode 8.0.0, with the exception of\n"
+"@code{MathClass.txt} which is not currently part of the Unicode Character\n"
+"Database.  Accompanying these source data are generic TeX loader files\n"
+"allowing this data to be used as part of TeX runs, in particular in building\n"
+"format files.  Currently there are two loader files: one for general character\n"
+"set up and one for initializing XeTeX character classes as has been carried\n"
+"out to date by @code{unicode-letters.tex}. "
+msgstr ""
+
+#: gnu/packages/tex.scm:507
+msgid "Core hyphenation support files"
+msgstr ""
+
+#: gnu/packages/tex.scm:508
+msgid ""
+"This package includes Knuth's original @file{hyphen.tex},\n"
+"@file{zerohyph.tex} to disable hyphenation, @file{language.us} which starts\n"
+"the autogenerated files @file{language.dat} and @file{language.def} (and\n"
+"default versions of those), etc."
+msgstr ""
+
+#: gnu/packages/tex.scm:528
+msgid "DVI to PostScript drivers"
+msgstr ""
+
+#: gnu/packages/tex.scm:529
+msgid ""
+"This package provides files needed for converting DVI files\n"
+"to PostScript."
+msgstr ""
+
+#: gnu/packages/tex.scm:542
+msgid "Files for creating TeX formats"
+msgstr ""
+
+#: gnu/packages/tex.scm:543
+msgid ""
+"This bundle provides a collection of model \".ini\" files\n"
+"for creating TeX formats.  These files are commonly used to introduced\n"
+"distribution-dependent variations in formats.  They are also used to\n"
+"allow existing format source files to be used with newer engines, for example\n"
+"to adapt the plain e-TeX source file to work with XeTeX and LuaTeX."
+msgstr ""
+
+#: gnu/packages/tex.scm:600
+msgid "Metafont base files"
+msgstr ""
+
+#: gnu/packages/tex.scm:601
+msgid ""
+"This package provides the Metafont base files needed to\n"
+"build fonts using the Metafont system."
+msgstr ""
+
+#: gnu/packages/tex.scm:686
+msgid "Tools for converting and installing fonts for TeX and LaTeX"
+msgstr ""
+
+#: gnu/packages/tex.scm:687
+msgid ""
+"This package provides TeX macros for converting Adobe Font\n"
+"Metric files to TeX metric and virtual font format.  Fontinst helps mainly\n"
+"with the number crunching and shovelling parts of font installation.  This\n"
+"means in practice that it creates a number of files which give the TeX\n"
+"metrics (and related information) for a font family that TeX needs to do any\n"
+"typesetting in these fonts."
+msgstr ""
+
+#: gnu/packages/tex.scm:708
+msgid "Scheme for naming fonts in TeX"
+msgstr ""
+
+#: gnu/packages/tex.scm:709
+msgid ""
+"This is Fontname, a naming scheme for (the base part of)\n"
+"external TeX font filenames.  This makes at most eight-character names\n"
+"from (almost) arbitrarily complex font names, thus helping portability of TeX\n"
+"documents."
+msgstr ""
+
+#: gnu/packages/tex.scm:782
+msgid "Computer Modern fonts for TeX"
+msgstr ""
+
+#: gnu/packages/tex.scm:783
+msgid ""
+"This package provides the Computer Modern fonts by Donald\n"
+"Knuth.  The Computer Modern font family is a large collection of text,\n"
+"display, and mathematical fonts in a range of styles, based on Monotype Modern\n"
+"8A."
+msgstr ""
+
+#: gnu/packages/tex.scm:814
+msgid "Computer Modern Super family of fonts"
+msgstr ""
+
+#: gnu/packages/tex.scm:815
+msgid ""
+"The CM-Super family provides Adobe Type 1 fonts that replace\n"
+"the T1/TS1-encoded Computer Modern (EC/TC), T1/TS1-encoded Concrete,\n"
+"T1/TS1-encoded CM bright and LH Cyrillic fonts (thus supporting all European\n"
+"languages except Greek), and bringing many ameliorations in typesetting\n"
+"quality.  The fonts exhibit the same metrics as the METAFONT-encoded\n"
+"originals."
+msgstr ""
+
+#: gnu/packages/tex.scm:844
+msgid "Latin Modern family of fonts"
+msgstr ""
+
+#: gnu/packages/tex.scm:845
+msgid ""
+"The Latin Modern fonts are derived from the famous Computer\n"
+"Modern fonts designed by Donald E. Knuth and described in Volume E of his\n"
+"Computers & Typesetting series."
+msgstr ""
+
+#: gnu/packages/tex.scm:918
+msgid "Small library of METAFONT sources"
+msgstr ""
+
+#: gnu/packages/tex.scm:919
+msgid ""
+"This is a collection of core TeX and METAFONT macro files\n"
+"from Donald Knuth, including the plain format, plain base, and the MF logo\n"
+"fonts."
+msgstr ""
+
+#: gnu/packages/tex.scm:993
+msgid "Collection of fonts used in LaTeX distributions"
+msgstr ""
+
+#: gnu/packages/tex.scm:994
+msgid ""
+"This is a collection of fonts for use with standard LaTeX\n"
+"packages and classes. It includes invisible fonts (for use with the slides\n"
+"class), line and circle fonts (for use in the picture environment) and LaTeX\n"
+"symbol fonts."
+msgstr ""
+
+#: gnu/packages/tex.scm:1015
+msgid "LaTeX support for Metafont logo fonts"
+msgstr ""
+
+#: gnu/packages/tex.scm:1017
+msgid ""
+"This package provides LaTeX and font definition files to access the\n"
+"Knuthian mflogo fonts described in The Metafontbook and to typeset Metafont\n"
+"logos in LaTeX documents."
+msgstr ""
+
+#: gnu/packages/tex.scm:1034
+msgid "Metafont logo font"
+msgstr ""
+
+#: gnu/packages/tex.scm:1036
+msgid ""
+"These fonts were created in METAFONT by Knuth, for his own publications.\n"
+"At some stage, the letters P and S were added, so that the METAPOST logo could\n"
+"also be expressed.  The fonts were originally issued (of course) as METAFONT\n"
+"source; they have since been autotraced and reissued in Adobe Type 1 format by\n"
+"Taco Hoekwater."
+msgstr ""
+
+#: gnu/packages/tex.scm:1178
+msgid "TeX fonts from the American Mathematical Society"
+msgstr ""
+
+#: gnu/packages/tex.scm:1180
+msgid ""
+"This package provides an extended set of fonts for use in mathematics,\n"
+"including: extra mathematical symbols; blackboard bold letters (uppercase\n"
+"only); fraktur letters; subscript sizes of bold math italic and bold Greek\n"
+"letters; subscript sizes of large symbols such as sum and product; added sizes\n"
+"of the Computer Modern small caps font; cyrillic fonts (from the University of\n"
+"Washington); Euler mathematical fonts.  All fonts are provided as Adobe Type 1\n"
+"files, and all except the Euler fonts are provided as Metafont source.  The\n"
+"distribution also includes the canonical Type 1 versions of the Computer\n"
+"Modern family of fonts.  The Euler fonts are supported by separate packages;\n"
+"details can be found in the documentation."
+msgstr ""
+
+#: gnu/packages/tex.scm:1211
+msgid "Utility for making hyphenation patterns"
+msgstr ""
+
+#: gnu/packages/tex.scm:1212
+msgid ""
+"Mkpattern is a general purpose program for the generation of\n"
+"hyphenation patterns, with definition of letter sets and template-like\n"
+"constructions.  It also provides an easy way to handle different input and\n"
+"output encodings, and features generation of clean UTF-8 patterns."
+msgstr ""
+
+#: gnu/packages/tex.scm:1269
+msgid "Extended version of TeX"
+msgstr ""
+
+#: gnu/packages/tex.scm:1271
+msgid ""
+"This package provides an extended version of TeX (which is capable of\n"
+"running as if it were TeX unmodified).  E-TeX has been specified by the LaTeX\n"
+"team as the engine for the development of LaTeX2e; as a result, LaTeX\n"
+"programmers may assume e-TeX functionality.  The pdftex engine directly\n"
+"incorporates the e-TeX extensions."
+msgstr ""
+
+#: gnu/packages/tex.scm:1287
+msgid "Plain TeX format and supporting files"
+msgstr ""
+
+#: gnu/packages/tex.scm:1289
+msgid ""
+"This package contains files used to build the Plain TeX format, as\n"
+"described in the TeXbook, together with various supporting files (some also\n"
+"discussed in the book)."
+msgstr ""
+
+#: gnu/packages/tex.scm:1301
+msgid "Hyphenation patterns for Afrikaans"
+msgstr ""
+
+#: gnu/packages/tex.scm:1302
+#, fuzzy
+#| msgid "This package provides an database interface for Perl."
+msgid ""
+"The package provides hyphenation patterns for the Afrikaans\n"
+"language."
+msgstr "Tiu ĉi pako provizas datumbazan interfacon por Perl."
+
+#: gnu/packages/tex.scm:1315
+msgid "Hyphenation patterns for ancient Greek"
+msgstr ""
+
+#: gnu/packages/tex.scm:1316
+#, fuzzy
+#| msgid "This package provides an database interface for Perl."
+msgid ""
+"The package provides hyphenation patterns for ancient\n"
+"Greek."
+msgstr "Tiu ĉi pako provizas datumbazan interfacon por Perl."
+
+#: gnu/packages/tex.scm:1328
+msgid "Hyphenation patterns for Armenian"
+msgstr ""
+
+#: gnu/packages/tex.scm:1329
+#, fuzzy
+#| msgid "This package provides an database interface for Perl."
+msgid ""
+"The package provides hyphenation patterns for the Armenian\n"
+"language."
+msgstr "Tiu ĉi pako provizas datumbazan interfacon por Perl."
+
+#: gnu/packages/tex.scm:1342
+msgid "Hyphenation patterns for Basque"
+msgstr ""
+
+#: gnu/packages/tex.scm:1343
+#, fuzzy
+#| msgid "This package provides a dictionary for the GNU Aspell spell checker."
+msgid ""
+"The package provides hyphenation patterns for the Basque\n"
+"language."
+msgstr "Tiu ĉi pako provizas vortaron por la literumilo GNU Aspell."
+
+#: gnu/packages/tex.scm:1356
+msgid "Hyphenation patterns for Belarusian"
+msgstr ""
+
+#: gnu/packages/tex.scm:1357
+#, fuzzy
+#| msgid "This package provides a dictionary for the GNU Aspell spell checker."
+msgid ""
+"The package provides hyphenation patterns for the Belarusian\n"
+"language."
+msgstr "Tiu ĉi pako provizas vortaron por la literumilo GNU Aspell."
+
+#: gnu/packages/tex.scm:1370
+msgid "Hyphenation patterns for Bulgarian"
+msgstr ""
+
+#: gnu/packages/tex.scm:1371
+msgid ""
+"The package provides hyphenation patterns for the Bulgarian\n"
+"language in T2A and UTF-8 encodings."
+msgstr ""
+
+#: gnu/packages/tex.scm:1384
+msgid "Hyphenation patterns for Catalan"
+msgstr ""
+
+#: gnu/packages/tex.scm:1385
+msgid ""
+"The package provides hyphenation patterns for Catalan in\n"
+"T1/EC and UTF-8 encodings."
+msgstr ""
+
+#: gnu/packages/tex.scm:1396
+msgid "Hyphenation patterns for unaccented Chinese pinyin"
+msgstr ""
+
+#: gnu/packages/tex.scm:1397
+msgid ""
+"The package provides hyphenation patterns for unaccented\n"
+"Chinese pinyin T1/EC and UTF-8 encodings."
+msgstr ""
+
+#: gnu/packages/tex.scm:1408
+msgid "Hyphenation patterns for Church Slavonic"
+msgstr ""
+
+#: gnu/packages/tex.scm:1409
+msgid ""
+"The package provides hyphenation patterns for Church\n"
+"Slavonic in UTF-8 encoding."
+msgstr ""
+
+#: gnu/packages/tex.scm:1421
+msgid "Hyphenation patterns for Coptic"
+msgstr ""
+
+#: gnu/packages/tex.scm:1422
+msgid ""
+"The package provides hyphenation patterns for Coptic in\n"
+"UTF-8 encoding as well as in ASCII-based encoding for 8-bit engines."
+msgstr ""
+
+#: gnu/packages/tex.scm:1434
+msgid "Hyphenation patterns for Croatian"
+msgstr ""
+
+#: gnu/packages/tex.scm:1435
+msgid ""
+"The package provides hyphenation patterns for Croatian in\n"
+"T1/EC and UTF-8 encodings."
+msgstr ""
+
+#: gnu/packages/tex.scm:1446
+msgid "Hyphenation patterns for Czech"
+msgstr ""
+
+#: gnu/packages/tex.scm:1447
+msgid ""
+"The package provides hyphenation patterns for Czech in T1/EC\n"
+"and UTF-8 encodings."
+msgstr ""
+
+#: gnu/packages/tex.scm:1458
+msgid "Hyphenation patterns for Danish"
+msgstr ""
+
+#: gnu/packages/tex.scm:1459
+msgid ""
+"The package provides hyphenation patterns for Danish in\n"
+"T1/EC and UTF-8 encodings."
+msgstr ""
+
+#: gnu/packages/tex.scm:1471
+msgid "Hyphenation patterns for Dutch"
+msgstr ""
+
+#: gnu/packages/tex.scm:1472
+msgid ""
+"The package provides hyphenation patterns for Dutch in T1/EC\n"
+"and UTF-8 encodings."
+msgstr ""
+
+#: gnu/packages/tex.scm:1484
+msgid "Hyphenation patterns for American and British English"
+msgstr ""
+
+#: gnu/packages/tex.scm:1485
+msgid ""
+"The package provides additional hyphenation patterns for\n"
+"American and British English in ASCII encoding."
+msgstr ""
+
+#: gnu/packages/tex.scm:1498
+msgid "Hyphenation patterns for Esperanto"
+msgstr ""
+
+#: gnu/packages/tex.scm:1499
+msgid ""
+"The package provides hyphenation patterns for Esperanto ISO\n"
+"Latin 3 and UTF-8 encodings."
+msgstr ""
+
+#: gnu/packages/tex.scm:1510
+msgid "Hyphenation patterns for Estonian"
+msgstr ""
+
+#: gnu/packages/tex.scm:1511
+msgid ""
+"The package provides hyphenation patterns for Estonian in\n"
+"T1/EC and UTF-8 encodings."
+msgstr ""
+
+#: gnu/packages/tex.scm:1524
+msgid "Hyphenation patterns for Ethiopic scripts"
+msgstr ""
+
+#: gnu/packages/tex.scm:1525
+msgid ""
+"The package provides hyphenation patterns for languages\n"
+"written using the Ethiopic script for Unicode engines.  They are not supposed\n"
+"to be linguistically relevant in all cases and should, for proper typography,\n"
+"be replaced by files tailored to individual languages."
+msgstr ""
+
+#: gnu/packages/tex.scm:1538
+msgid "Hyphenation patterns for Finnish"
+msgstr ""
+
+#: gnu/packages/tex.scm:1539
+msgid ""
+"The package provides hyphenation patterns for Finnish in\n"
+"T1/EC and UTF-8 encodings."
+msgstr ""
+
+#: gnu/packages/tex.scm:1550
+msgid "Hyphenation patterns for French"
+msgstr ""
+
+#: gnu/packages/tex.scm:1551
+msgid ""
+"The package provides hyphenation patterns for French in\n"
+"T1/EC and UTF-8 encodings."
+msgstr ""
+
+#: gnu/packages/tex.scm:1562
+msgid "Hyphenation patterns for Friulan"
+msgstr ""
+
+#: gnu/packages/tex.scm:1563
+msgid ""
+"The package provides hyphenation patterns for Friulan in\n"
+"ASCII encodings."
+msgstr ""
+
+#: gnu/packages/tex.scm:1575
+msgid "Hyphenation patterns for Galician"
+msgstr ""
+
+#: gnu/packages/tex.scm:1576
+msgid ""
+"The package provides hyphenation patterns for Galician in\n"
+"T1/EC and UTF-8 encodings."
+msgstr ""
+
+#: gnu/packages/tex.scm:1587
+msgid "Hyphenation patterns for Georgian"
+msgstr ""
+
+#: gnu/packages/tex.scm:1588
+msgid ""
+"The package provides hyphenation patterns for Georgian in\n"
+"T8M, T8K, and UTF-8 encodings."
+msgstr ""
+
+#: gnu/packages/tex.scm:1605 gnu/packages/tex.scm:2253
+msgid "Hyphenation patterns for German"
+msgstr ""
+
+#: gnu/packages/tex.scm:1606
+msgid ""
+"This package provides hyphenation patterns for German in\n"
+"T1/EC and UTF-8 encodings, for traditional and reformed spelling, including\n"
+"Swiss German."
+msgstr ""
+
+#: gnu/packages/tex.scm:1624
+msgid "Hyphenation patterns for Greek"
+msgstr ""
+
+#: gnu/packages/tex.scm:1625
+msgid ""
+"This package provides hyphenation patterns for Modern Greek\n"
+"in monotonic and polytonic spelling in LGR and UTF-8 encodings."
+msgstr ""
+
+#: gnu/packages/tex.scm:1638
+msgid "Hyphenation patterns for Hungarian"
+msgstr ""
+
+#: gnu/packages/tex.scm:1639
+msgid ""
+"This package provides hyphenation patterns for Hungarian in\n"
+"T1/EC and UTF-8 encodings."
+msgstr ""
+
+#: gnu/packages/tex.scm:1651
+msgid "Hyphenation patterns for Icelandic"
+msgstr ""
+
+#: gnu/packages/tex.scm:1652
+msgid ""
+"This package provides hyphenation patterns for Icelandic in\n"
+"T1/EC and UTF-8 encodings."
+msgstr ""
+
+#: gnu/packages/tex.scm:1674
+msgid "Indic hyphenation patterns"
+msgstr ""
+
+#: gnu/packages/tex.scm:1675
+msgid ""
+"This package provides hyphenation patterns for Assamese,\n"
+"Bengali, Gujarati, Hindi, Kannada, Malayalam, Marathi, Oriya, Panjabi, Tamil\n"
+"and Telugu for Unicode engines."
+msgstr ""
+
+#: gnu/packages/tex.scm:1687
+msgid "Indonesian hyphenation patterns"
+msgstr ""
+
+#: gnu/packages/tex.scm:1688
+msgid ""
+"This package provides hyphenation patterns for\n"
+"Indonesian (Bahasa Indonesia) in ASCII encoding.  They are probably also\n"
+"usable for Malay (Bahasa Melayu)."
+msgstr ""
+
+#: gnu/packages/tex.scm:1700
+msgid "Interlingua hyphenation patterns"
+msgstr ""
+
+#: gnu/packages/tex.scm:1701
+#, fuzzy
+#| msgid "This package provides an database interface for Perl."
+msgid ""
+"This package provides hyphenation patterns for Interlingua\n"
+"in ASCII encoding."
+msgstr "Tiu ĉi pako provizas datumbazan interfacon por Perl."
+
+#: gnu/packages/tex.scm:1712
+msgid "Irish hyphenation patterns"
+msgstr ""
+
+#: gnu/packages/tex.scm:1713
+msgid ""
+"This package provides hyphenation patterns for\n"
+"Irish (Gaeilge) in T1/EC and UTF-8 encodings."
+msgstr ""
+
+#: gnu/packages/tex.scm:1725
+msgid "Italian hyphenation patterns"
+msgstr ""
+
+#: gnu/packages/tex.scm:1726
+msgid ""
+"This package provides hyphenation patterns for Italian in\n"
+"ASCII encoding.  Compliant with the Recommendation UNI 6461 on hyphenation\n"
+"issued by the Italian Standards Institution (Ente Nazionale di Unificazione\n"
+"UNI)."
+msgstr ""
+
+#: gnu/packages/tex.scm:1739
+msgid "Kurmanji hyphenation patterns"
+msgstr ""
+
+#: gnu/packages/tex.scm:1740
+msgid ""
+"This package provides hyphenation patterns for\n"
+"Kurmanji (Northern Kurdish) as spoken in Turkey and by the Kurdish diaspora in\n"
+"Europe, in T1/EC and UTF-8 encodings."
+msgstr ""
+
+#: gnu/packages/tex.scm:1754
+msgid "Liturgical Latin hyphenation patterns"
+msgstr ""
+
+#: gnu/packages/tex.scm:1755
+msgid ""
+"This package provides hyphenation patterns for Latin in\n"
+"T1/EC and UTF-8 encodings, mainly in modern spelling (u when u is needed and v\n"
+"when v is needed), medieval spelling with the ligatures @code{\\ae} and\n"
+"@code{\\oe} and the (uncial) lowercase 'v' written as a 'u' is also supported.\n"
+"Apparently there is no conflict between the patterns of modern Latin and those\n"
+"of medieval Latin.  It also includes hyphenation patterns for the Classical\n"
+"Latin in T1/EC and UTF-8 encodings.  Classical Latin hyphenation patterns are\n"
+"different from those of 'plain' Latin, the latter being more adapted to modern\n"
+"Latin.  It also provides hyphenation patterns for the Liturgical Latin in\n"
+"T1/EC and UTF-8 encodings."
+msgstr ""
+
+#: gnu/packages/tex.scm:1775
+msgid "Latvian hyphenation patterns"
+msgstr ""
+
+#: gnu/packages/tex.scm:1776
+msgid ""
+"This package provides hyphenation patterns for Latvian in\n"
+"L7X and UTF-8 encodings."
+msgstr ""
+
+#: gnu/packages/tex.scm:1788
+msgid "Lithuanian hyphenation patterns"
+msgstr ""
+
+#: gnu/packages/tex.scm:1789
+msgid ""
+"This package provides hyphenation patterns for Lithuanian in\n"
+"L7X and UTF-8 encodings."
+msgstr ""
+
+#: gnu/packages/tex.scm:1803
+msgid "Mongolian hyphenation patterns in Cyrillic script"
+msgstr ""
+
+#: gnu/packages/tex.scm:1804
+msgid ""
+"This package provides hyphenation patterns for Mongolian in\n"
+"T2A, LMC and UTF-8 encodings."
+msgstr ""
+
+#: gnu/packages/tex.scm:1818
+msgid "Norwegian Bokmal and Nynorsk hyphenation patterns"
+msgstr ""
+
+#: gnu/packages/tex.scm:1819
+msgid ""
+"This package provides hyphenation patterns for Norwegian\n"
+"Bokmal and Nynorsk in T1/EC and UTF-8 encodings."
+msgstr ""
+
+#: gnu/packages/tex.scm:1832
+msgid "Occitan hyphenation patterns"
+msgstr ""
+
+#: gnu/packages/tex.scm:1833
+msgid ""
+"This package provides hyphenation patterns for Occitan in\n"
+"T1/EC and UTF-8 encodings.  They are supposed to be valid for all the Occitan\n"
+"variants spoken and written in the wide area called 'Occitanie' by the French.\n"
+"It ranges from the Val d'Aran within Catalunya, to the South Western Italian\n"
+"Alps encompassing the southern half of the French pentagon."
+msgstr ""
+
+#: gnu/packages/tex.scm:1847
+msgid "Panjabi hyphenation patterns"
+msgstr ""
+
+#: gnu/packages/tex.scm:1848
+#, fuzzy
+#| msgid "This package provides an database interface for Perl."
+msgid ""
+"This package provides hyphenation patterns for Panjabi in\n"
+"T1/EC encoding."
+msgstr "Tiu ĉi pako provizas datumbazan interfacon por Perl."
+
+#: gnu/packages/tex.scm:1860
+#, fuzzy
+#| msgid "Print lines matching a pattern"
+msgid "Piedmontese hyphenation patterns"
+msgstr "Montri liniojn kongruajn al ŝablono"
+
+#: gnu/packages/tex.scm:1861
+msgid ""
+"This package provides hyphenation patterns for Piedmontese\n"
+"in ASCII encoding.  Compliant with 'Gramatica dla lengua piemonteisa' by\n"
+"Camillo Brero."
+msgstr ""
+
+#: gnu/packages/tex.scm:1873
+msgid "Polish hyphenation patterns"
+msgstr ""
+
+#: gnu/packages/tex.scm:1874
+msgid ""
+"This package provides hyphenation patterns for Polish in QX\n"
+"and UTF-8 encodings."
+msgstr ""
+
+#: gnu/packages/tex.scm:1886
+msgid "Portuguese hyphenation patterns"
+msgstr ""
+
+#: gnu/packages/tex.scm:1887
+msgid ""
+"This package provides hyphenation patterns for Portuguese in\n"
+"T1/EC and UTF-8 encodings."
+msgstr ""
+
+#: gnu/packages/tex.scm:1898
+msgid "Romanian hyphenation patterns"
+msgstr ""
+
+#: gnu/packages/tex.scm:1899
+msgid ""
+"This package provides hyphenation patterns for Romanian in\n"
+"T1/EC and UTF-8 encodings."
+msgstr ""
+
+#: gnu/packages/tex.scm:1911
+msgid "Romansh hyphenation patterns"
+msgstr ""
+
+#: gnu/packages/tex.scm:1912
+msgid ""
+"This package provides hyphenation patterns for Romansh in\n"
+"ASCII encodings.  They are supposed to comply with the rules indicated by the\n"
+"Lia Rumantscha (Romansh language society)."
+msgstr ""
+
+#: gnu/packages/tex.scm:1924
+msgid "Russian hyphenation patterns"
+msgstr ""
+
+#: gnu/packages/tex.scm:1925
+msgid ""
+"This package provides hyphenation patterns for Russian in\n"
+"T2A and UTF-8 encodings."
+msgstr ""
+
+#: gnu/packages/tex.scm:1937
+msgid "Sanskrit hyphenation patterns"
+msgstr ""
+
+#: gnu/packages/tex.scm:1938
+msgid ""
+"This package provides hyphenation patterns for Sanskrit and\n"
+"Prakrit in longdesc transliteration, and in Devanagari, Bengali, Kannada,\n"
+"Malayalam longdesc and Telugu scripts for Unicode engines."
+msgstr ""
+
+#: gnu/packages/tex.scm:1954
+msgid "Serbian hyphenation patterns"
+msgstr ""
+
+#: gnu/packages/tex.scm:1955
+msgid ""
+"This package provides hyphenation patterns for Serbian in\n"
+"T1/EC, T2A and UTF-8 encodings."
+msgstr ""
+
+#: gnu/packages/tex.scm:1967
+msgid "Slovak hyphenation patterns"
+msgstr ""
+
+#: gnu/packages/tex.scm:1968
+msgid ""
+"This package provides hyphenation patterns for Slovak in\n"
+"T1/EC and UTF-8 encodings."
+msgstr ""
+
+#: gnu/packages/tex.scm:1979
+msgid "Slovenian hyphenation patterns"
+msgstr ""
+
+#: gnu/packages/tex.scm:1980
+msgid ""
+"This package provides hyphenation patterns for Slovenian in\n"
+"T1/EC and UTF-8 encodings."
+msgstr ""
+
+#: gnu/packages/tex.scm:1995
+msgid "Hyphenation patterns for Spanish"
+msgstr ""
+
+#: gnu/packages/tex.scm:1996
+msgid ""
+"The package provides hyphenation patterns for Spanish in\n"
+"T1/EC and UTF-8 encodings."
+msgstr ""
+
+#: gnu/packages/tex.scm:2007
+msgid "Swedish hyphenation patterns"
+msgstr ""
+
+#: gnu/packages/tex.scm:2008
+msgid ""
+"This package provides hyphenation patterns for Swedish in\n"
+"T1/EC and UTF-8 encodings."
+msgstr ""
+
+#: gnu/packages/tex.scm:2019
+msgid "Thai hyphenation patterns"
+msgstr ""
+
+#: gnu/packages/tex.scm:2020
+msgid ""
+"This package provides hyphenation patterns for Thai in LTH\n"
+"and UTF-8 encodings."
+msgstr ""
+
+#: gnu/packages/tex.scm:2032
+msgid "Hyphenation patterns for Turkish"
+msgstr ""
+
+#: gnu/packages/tex.scm:2033
+msgid ""
+"The package provides hyphenation patterns for Turkish in\n"
+"T1/EC and UTF-8 encodings.  The patterns for Turkish were first produced for\n"
+"the Ottoman Texts Project in 1987 and were suitable for both Modern Turkish\n"
+"and Ottoman Turkish in Latin script, however the required character set didn't\n"
+"fit into EC encoding, so support for Ottoman Turkish had to be dropped to keep\n"
+"compatibility with 8-bit engines."
+msgstr ""
+
+#: gnu/packages/tex.scm:2049
+msgid "Hyphenation patterns for Turkmen"
+msgstr ""
+
+#: gnu/packages/tex.scm:2050
+msgid ""
+"The package provides hyphenation patterns for Turkmen in\n"
+"T1/EC and UTF-8 encodings."
+msgstr ""
+
+#: gnu/packages/tex.scm:2061
+#, fuzzy
+#| msgid "Print lines matching a pattern"
+msgid "Ukrainian hyphenation patterns"
+msgstr "Montri liniojn kongruajn al ŝablono"
+
+#: gnu/packages/tex.scm:2062
+msgid ""
+"This package provides hyphenation patterns for Ukrainian in\n"
+"T2A and UTF-8 encodings."
+msgstr ""
+
+#: gnu/packages/tex.scm:2074
+msgid "Upper Sorbian hyphenation patterns"
+msgstr ""
+
+#: gnu/packages/tex.scm:2075
+msgid ""
+"This package provides hyphenation patterns for Upper Sorbian\n"
+"in T1/EC and UTF-8 encodings."
+msgstr ""
+
+#: gnu/packages/tex.scm:2086
+msgid "Welsh hyphenation patterns"
+msgstr ""
+
+#: gnu/packages/tex.scm:2087
+msgid ""
+"This package provides hyphenation patterns for Welsh in\n"
+"T1/EC and UTF-8 encodings."
+msgstr ""
+
+#: gnu/packages/tex.scm:2207
+msgid "Hyphenation patterns expressed in UTF-8"
+msgstr ""
+
+#: gnu/packages/tex.scm:2208
+msgid ""
+"Modern native UTF-8 engines such as XeTeX and LuaTeX need\n"
+"hyphenation patterns in UTF-8 format, whereas older systems require\n"
+"hyphenation patterns in the 8-bit encoding of the font in use (such encodings\n"
+"are codified in the LaTeX scheme with names like OT1, T2A, TS1, OML, LY1,\n"
+"etc).  The present package offers a collection of conversions of existing\n"
+"patterns to UTF-8 format, together with converters for use with 8-bit fonts in\n"
+"older systems.  Since hyphenation patterns for Knuthian-style TeX systems are\n"
+"only read at iniTeX time, it is hoped that the UTF-8 patterns, with their\n"
+"converters, will completely supplant the older patterns."
+msgstr ""
+
+#: gnu/packages/tex.scm:2254
+msgid ""
+"The package provides experimental hyphenation patterns for\n"
+"the German language, covering both traditional and reformed orthography.  The\n"
+"patterns can be used with packages Babel and hyphsubst from the Oberdiek\n"
+"bundle."
+msgstr ""
+
+#: gnu/packages/tex.scm:2275
+msgid "Hyphenation patterns for Ukrainian"
+msgstr ""
+
+#: gnu/packages/tex.scm:2276
+msgid ""
+"The package provides a range of hyphenation patterns for\n"
+"Ukrainian, depending on the encoding of the output font including the standard\n"
+"T2A."
+msgstr ""
+
+#: gnu/packages/tex.scm:2314
+msgid "Hyphenation patterns for Russian"
+msgstr ""
+
+#: gnu/packages/tex.scm:2315
+msgid ""
+"The package provides a collection of Russian hyphenation\n"
+"patterns supporting a number of Cyrillic font encodings, including T2,\n"
+"UCY (Omega Unicode Cyrillic), LCY, LWN (OT2), and koi8-r."
+msgstr ""
+
+#: gnu/packages/tex.scm:2357
+msgid "Files related to the path searching library for TeX"
+msgstr ""
+
+#: gnu/packages/tex.scm:2358
+msgid ""
+"Kpathsea is a library and utility programs which provide\n"
+"path searching facilities for TeX file types, including the self-locating\n"
+"feature required for movable installations, layered on top of a general search\n"
+"mechanism.  This package provides supporting files."
+msgstr ""
+
+#: gnu/packages/tex.scm:2373
+msgid "Configuration files for LaTeX-related formats"
+msgstr ""
+
+#: gnu/packages/tex.scm:2374
+#, fuzzy
+#| msgid "This package provides an database interface for Perl."
+msgid ""
+"The package provides configuration files for LaTeX-related\n"
+"formats."
+msgstr "Tiu ĉi pako provizas datumbazan interfacon por Perl."
+
+#: gnu/packages/tex.scm:2586
+msgid "Base sources of LaTeX"
+msgstr ""
+
+#: gnu/packages/tex.scm:2588
+msgid ""
+"This bundle comprises the source of LaTeX itself, together with several\n"
+"packages which are considered \"part of the kernel\".  This bundle, together\n"
+"with the required packages, constitutes what every LaTeX distribution should\n"
+"contain."
+msgstr ""
+
+#: gnu/packages/tex.scm:2608
+msgid "Extended filecontents and filecontents* environments"
+msgstr ""
+
+#: gnu/packages/tex.scm:2610
+msgid ""
+"LaTeX2e's @code{filecontents} and @code{filecontents*} environments\n"
+"enable a LaTeX source file to generate external files as it runs through\n"
+"LaTeX.  However, there are two limitations of these environments: they refuse\n"
+"to overwrite existing files, and they can only be used in the preamble of a\n"
+"document.  The filecontents package removes these limitations, letting you\n"
+"overwrite existing files and letting you use @code{filecontents} /\n"
+"@code{filecontents*} anywhere."
+msgstr ""
+
+#: gnu/packages/tex.scm:2637
+msgid "Am I running under XeTeX?"
+msgstr ""
+
+#: gnu/packages/tex.scm:2639
+msgid ""
+"This is a simple package which provides an @code{\\ifxetex} conditional,\n"
+"so that other code can determine that it is running under XeTeX.  The package\n"
+"requires the e-TeX extensions to the TeX primitive set."
+msgstr ""
+
+#: gnu/packages/tex.scm:2654
+msgid "Simple macros for EPS inclusion"
+msgstr ""
+
+#: gnu/packages/tex.scm:2656
+msgid ""
+"This package provides the original (and now obsolescent) graphics\n"
+"inclusion macros for use with dvips, still widely used by Plain TeX users (in\n"
+"particular).  For LaTeX users, the package is nowadays (rather strongly)\n"
+"deprecated in favour of the more sophisticated standard LaTeX latex-graphics\n"
+"bundle of packages.  (The latex-graphics bundle is also available to Plain TeX\n"
+"users, via its Plain TeX version.)"
+msgstr ""
+
+#: gnu/packages/tex.scm:2677
+msgid "Sophisticated verbatim text"
+msgstr ""
+
+#: gnu/packages/tex.scm:2679
+msgid ""
+"This package provides tools for the flexible handling of verbatim text\n"
+"including: verbatim commands in footnotes; a variety of verbatim environments\n"
+"with many parameters; ability to define new customized verbatim environments;\n"
+"save and restore verbatim text and environments; write and read files in\n"
+"verbatim mode; build \"example\" environments (showing both result and\n"
+"verbatim source)."
+msgstr ""
+
+#: gnu/packages/tex.scm:2697
+#, fuzzy
+#| msgid "Create charts and graphs in Guile"
+msgid "Color and graphics option files"
+msgstr "Krei diagramojn kaj grafikaĵojn en Guile"
+
+#: gnu/packages/tex.scm:2699
+msgid ""
+"This bundle is a combined distribution consisting of @file{dvips.def},\n"
+"@file{pdftex.def}, @file{luatex.def}, @file{xetex.def}, @file{dvipdfmx.def},\n"
+"and @file{dvisvgm.def} driver option files for the LaTeX graphics and color\n"
+"packages."
+msgstr ""
+
+#: gnu/packages/tex.scm:2715
+msgid "Sample configuration files for LaTeX color and graphics"
+msgstr ""
+
+#: gnu/packages/tex.scm:2717
+msgid ""
+"This bundle includes @file{color.cfg} and @file{graphics.cfg} files that\n"
+"set default \"driver\" options for the color and graphics packages."
+msgstr ""
+
+#: gnu/packages/tex.scm:2738
+msgid "LaTeX standard graphics bundle"
+msgstr ""
+
+#: gnu/packages/tex.scm:2740
+msgid ""
+"This is a collection of LaTeX packages for producing color, including\n"
+"graphics (e.g. PostScript) files, and rotation and scaling of text in LaTeX\n"
+"documents.  It comprises the packages color, graphics, graphicx, trig, epsfig,\n"
+"keyval, and lscape."
+msgstr ""
+
+#: gnu/packages/tex.scm:2772
+msgid "Driver-independent color extensions for LaTeX and pdfLaTeX"
+msgstr ""
+
+#: gnu/packages/tex.scm:2774
+msgid ""
+"The package starts from the basic facilities of the colorcolor package,\n"
+"and provides easy driver-independent access to several kinds of color tints,\n"
+"shades, tones, and mixes of arbitrary colors.  It allows a user to select a\n"
+"document-wide target color model and offers complete tools for conversion\n"
+"between eight color models.  Additionally, there is a command for alternating\n"
+"row colors plus repeated non-aligned material (like horizontal lines) in\n"
+"tables."
+msgstr ""
+
+#: gnu/packages/tex.scm:2806
+msgid "Extensive support for hypertext in LaTeX"
+msgstr ""
+
+#: gnu/packages/tex.scm:2808
+msgid ""
+"The @code{hyperref} package is used to handle cross-referencing commands\n"
+"in LaTeX to produce hypertext links in the document.  The package provides\n"
+"backends for the @code{\\special} set defined for HyperTeX DVI processors; for\n"
+"embedded @code{pdfmark} commands for processing by Acrobat\n"
+"Distiller (@code{dvips} and Y&Y's @code{dvipsone}); for Y&Y's @code{dviwindo};\n"
+"for PDF control within pdfTeX and @code{dvipdfm}; for TeX4ht; and for VTeX's\n"
+"pdf and HTML backends.  The package is distributed with the @code{backref} and\n"
+"@code{nameref} packages, which make use of the facilities of @code{hyperref}."
+msgstr ""
+
+#: gnu/packages/tex.scm:2844
+msgid "Bundle of packages submitted by Heiko Oberdiek"
+msgstr ""
+
+#: gnu/packages/tex.scm:2846
+msgid ""
+"The bundle comprises various LaTeX packages, providing among others:\n"
+"better accessibility support for PDF files; extensible chemists reaction\n"
+"arrows; record information about document class(es) used; and many more."
+msgstr ""
+
+#: gnu/packages/tex.scm:2867 gnu/packages/tex.scm:7106
+msgid "LaTeX standard tools bundle"
+msgstr ""
+
+#: gnu/packages/tex.scm:2869
+msgid ""
+"This package is a collection of (variously) simple tools provided as\n"
+"part of the LaTeX required tools distribution, comprising the following\n"
+"packages: afterpage, array, bm, calc, dcolumn, delarray, enumerate, fileerr,\n"
+"fontsmpl, ftnright, hhline, indentfirst, layout, longtable, multicol,\n"
+"rawfonts, showkeys, somedefs, tabularx, theorem, trace, varioref, verbatim,\n"
+"xr, and xspace."
+msgstr ""
+
+#: gnu/packages/tex.scm:2887
+msgid "Verbatim with URL-sensitive line breaks"
+msgstr ""
+
+#: gnu/packages/tex.scm:2888
+msgid ""
+"The command @code{\\url} is a form of verbatim command that\n"
+"allows linebreaks at certain characters or combinations of characters, accepts\n"
+"reconfiguration, and can usually be used in the argument to another command.\n"
+"The command is intended for email addresses, hypertext links,\n"
+"directories/paths, etc., which normally have no spaces, so by default the\n"
+"package ignores spaces in its argument.  However, a package option allows\n"
+"spaces, which is useful for operating systems where spaces are a common part\n"
+"of file names."
+msgstr ""
+
+#: gnu/packages/tex.scm:2914
+msgid "Font maps originally from teTeX"
+msgstr ""
+
+#: gnu/packages/tex.scm:2915
+msgid ""
+"This package provides font maps that were originally part of\n"
+"the now obsolete teTeX distributions but are still used at the core of the TeX\n"
+"Live distribution."
+msgstr ""
+
+#: gnu/packages/tex.scm:2935
+msgid "LaTeX3 programmers’ interface"
+msgstr ""
+
+#: gnu/packages/tex.scm:2937
+msgid ""
+"The l3kernel bundle provides an implementation of the LaTeX3\n"
+"programmers’ interface, as a set of packages that run under LaTeX 2e.  The\n"
+"interface provides the foundation on which the LaTeX3 kernel and other future\n"
+"code are built: it is an API for TeX programmers.  The packages are set up so\n"
+"that the LaTeX3 conventions can be used with regular LaTeX 2e packages."
+msgstr ""
+
+#: gnu/packages/tex.scm:2982
+msgid "High-level LaTeX3 concepts"
+msgstr ""
+
+#: gnu/packages/tex.scm:2984
+msgid ""
+"This bundle holds prototype implementations of concepts for a LaTeX\n"
+"designer interface, to be used with the experimental LaTeX kernel as\n"
+"programming tools and kernel sup­port.  Packages provided in this release are:\n"
+"\n"
+"@enumerate\n"
+"@item l3keys2e, which makes the facilities of the kernel module l3keys\n"
+"  available for use by LaTeX 2e packages;\n"
+"@item xfrac, which provides flexible splitlevel fractions;\n"
+"@item xparse, which provides a high-level interface for declaring document\n"
+"  commands; and\n"
+"@item xtemplate, which provides a means of defining generic functions using a\n"
+"  key-value syntax.\n"
+"@end enumerate\n"
+msgstr ""
+
+#: gnu/packages/tex.scm:3044
+msgid "Advanced font selection in XeLaTeX and LuaLaTeX"
+msgstr ""
+
+#: gnu/packages/tex.scm:3046
+msgid ""
+"Fontspec is a package for XeLaTeX and LuaLaTeX.  It provides an\n"
+"automatic and unified interface to feature-rich AAT and OpenType fonts through\n"
+"the NFSS in LaTeX running on XeTeX or LuaTeX engines.  The package requires\n"
+"the l3kernel and xparse bundles from the LaTeX 3 development team."
+msgstr ""
+
+#: gnu/packages/tex.scm:3082
+msgid "Lua modules for general programming (in the (La)TeX world)"
+msgstr ""
+
+#: gnu/packages/tex.scm:3084
+msgid ""
+"Lualibs is a collection of Lua modules useful for general programming.\n"
+"The bundle is based on Lua modules shipped with ConTeXt, and made available in\n"
+"this bundle for use independent of ConTeXt."
+msgstr ""
+
+#: gnu/packages/tex.scm:3172
+msgid "OpenType font loader for LuaTeX"
+msgstr ""
+
+#: gnu/packages/tex.scm:3174
+msgid ""
+"Luaotfload is an adaptation of the ConTeXt font loading system for the\n"
+"Plain and LaTeX formats.  It allows OpenType fonts to be loaded with font\n"
+"features accessible using an extended font request syntax while providing\n"
+"compatibilitywith XeTeX.  By indexing metadata in a database it facilitates\n"
+"loading fonts by their proper names instead of file names."
+msgstr ""
+
+#: gnu/packages/tex.scm:3196
+msgid "AMS mathematical facilities for LaTeX"
+msgstr ""
+
+#: gnu/packages/tex.scm:3198
+msgid ""
+"This is the principal package in the AMS-LaTeX distribution.  It adapts\n"
+"for use in LaTeX most of the mathematical features found in AMS-TeX; it is\n"
+"highly recommended as an adjunct to serious mathematical typesetting in LaTeX.\n"
+"When amsmath is loaded, AMS-LaTeX packages @code{amsbsyamsbsy} (for bold\n"
+"symbols), @code{amsopnamsopn} (for operator names) and\n"
+"@code{amstextamstext} (for text embedded in mathematics) are also loaded.\n"
+"This package is part of the LaTeX required distribution; however, several\n"
+"contributed packages add still further to its appeal; examples are\n"
+"@code{empheqempheq}, which provides functions for decorating and highlighting\n"
+"mathematics, and @code{ntheoremntheorem}, for specifying theorem (and similar)\n"
+"definitions."
+msgstr ""
+
+#: gnu/packages/tex.scm:3226
+msgid "AMS document classes for LaTeX"
+msgstr ""
+
+#: gnu/packages/tex.scm:3228
+msgid ""
+"This bundle contains three AMS classes: @code{amsartamsart} (for writing\n"
+"articles for the AMS), @code{amsbookamsbook} (for books) and\n"
+"@code{amsprocamsproc} (for proceedings), together with some supporting\n"
+"material.  The material is made available as part of the AMS-LaTeX\n"
+"distribution."
+msgstr ""
+
+#: gnu/packages/tex.scm:3259
+msgid "Multilingual support for Plain TeX or LaTeX"
+msgstr ""
+
+#: gnu/packages/tex.scm:3261
+msgid ""
+"The package manages culturally-determined typographical (and other)\n"
+"rules, and hyphenation patterns for a wide range of languages.  A document may\n"
+"select a single language to be supported, or it may select several, in which\n"
+"case the document may switch from one language to another in a variety of\n"
+"ways.  Babel uses contributed configuration files that provide the detail of\n"
+"what has to be done for each language.  Users of XeTeX are advised to use the\n"
+"polyglossia package rather than Babel."
+msgstr ""
+
+#: gnu/packages/tex.scm:3284
+msgid "Babel support for English"
+msgstr ""
+
+#: gnu/packages/tex.scm:3286
+msgid ""
+"This package provides the language definition file for support of\n"
+"English in @code{babel}.  Care is taken to select British hyphenation patterns\n"
+"for British English and Australian text, and default (\"american\") patterns\n"
+"for Canadian and USA text."
+msgstr ""
+
+#: gnu/packages/tex.scm:3306
+msgid "Babel support for German"
+msgstr ""
+
+#: gnu/packages/tex.scm:3308
+msgid ""
+"This package provides the language definition file for support of German\n"
+"in @code{babel}.  It provides all the necessary macros, definitions and\n"
+"settings to typeset German documents.  The bundle includes support for the\n"
+"traditional and reformed German orthography as well as for the Austrian and\n"
+"Swiss varieties of German."
+msgstr ""
+
+#: gnu/packages/tex.scm:3330
+msgid "Support for Cyrillic fonts in LaTeX"
+msgstr ""
+
+#: gnu/packages/tex.scm:3332
+msgid ""
+"This bundle of macros files provides macro support (including font\n"
+"encoding macros) for the use of Cyrillic characters in fonts encoded under the\n"
+"T2* and X2 encodings. These encodings cover (between them) pretty much every\n"
+"language that is written in a Cyrillic alphabet."
+msgstr ""
+
+#: gnu/packages/tex.scm:3352
+msgid "Font support for common PostScript fonts"
+msgstr ""
+
+#: gnu/packages/tex.scm:3354
+msgid ""
+"The PSNFSS collection includes a set of files that provide a complete\n"
+"working setup of the LaTeX font selection scheme (NFSS2) for use with common\n"
+"PostScript fonts.  It covers the so-called \"Base\" fonts (which are built\n"
+"into any Level 2 PostScript printing device and the Ghostscript interpreter)\n"
+"and a number of free fonts.  It provides font definition files, macros and\n"
+"font metrics.  The bundle as a whole is part of the LaTeX required set of\n"
+"packages."
+msgstr ""
+
+#: gnu/packages/tex.scm:3396
+msgid "TeX Live base packages"
+msgstr ""
+
+#: gnu/packages/tex.scm:3397 gnu/packages/tex.scm:3535
+msgid ""
+"This is a very limited subset of the TeX Live distribution.\n"
+"It includes little more than the required set of LaTeX packages."
+msgstr ""
+
+#: gnu/packages/tex.scm:3518
+msgid "Union of TeX Live packages"
+msgstr ""
+
+#: gnu/packages/tex.scm:3519
+#, fuzzy
+#| msgid "This package provides an database interface for Perl."
+msgid ""
+"This package provides a subset of the TeX Live\n"
+"distribution."
+msgstr "Tiu ĉi pako provizas datumbazan interfacon por Perl."
+
+#: gnu/packages/tex.scm:3552
+msgid "LaTeX-based replacement for BibTeX"
+msgstr ""
+
+#: gnu/packages/tex.scm:3554
+msgid ""
+"Amsrefs is a LaTeX package for bibliographies that provides an archival\n"
+"data format similar to the format of BibTeX database files, but adapted to\n"
+"make direct processing by LaTeX easier.  The package can be used either in\n"
+"conjunction with BibTeX or as a replacement for BibTeX."
+msgstr ""
+
+#: gnu/packages/tex.scm:3581
+msgid "Footnotes for critical editions"
+msgstr ""
+
+#: gnu/packages/tex.scm:3583
+msgid ""
+"This package aims to provide a one-stop solution to requirements for\n"
+"footnotes.  It offers: Multiple footnote apparatus superior to that of\n"
+"@code{manyfoot}.  Footnotes can be formatted in separate paragraphs, or be run\n"
+"into a single paragraph (this choice may be selected per footnote series);\n"
+"Things you might have expected (such as @code{\\verb}-like material in\n"
+"footnotes, and color selections over page breaks) now work.  Note that the\n"
+"majority of the bigfoot package's interface is identical to that of\n"
+"@code{manyfoot}; users should seek information from that package's\n"
+"documentation.  The bigfoot bundle also provides the @code{perpage} and\n"
+"@code{suffix} packages."
+msgstr ""
+
+#: gnu/packages/tex.scm:3609
+msgid "Producing 'blind' text for testing"
+msgstr ""
+
+#: gnu/packages/tex.scm:3611
+msgid ""
+"The package provides the commands @code{\\blindtext} and\n"
+"@code{\\Blindtext} for creating \"blind\" text useful in testing new classes\n"
+"and packages, and @code{\\blinddocument}, @code{\\Blinddocument} for creating\n"
+"an entire random document with sections, lists, mathematics, etc.  The package\n"
+"supports three languages, @code{english}, @code{(n)german} and @code{latin};\n"
+"the @code{latin} option provides a short \"lorem ipsum\" (for a fuller \"lorem\n"
+"ipsum\" text, see the @code{lipsum} package)."
+msgstr ""
+
+#: gnu/packages/tex.scm:3648
+msgid "German letter DIN style"
+msgstr ""
+
+#: gnu/packages/tex.scm:3650
+msgid ""
+"This package implements a document layout for writing letters according\n"
+"to the rules of DIN (Deutsches Institut für Normung, German standardisation\n"
+"institute).  A style file for LaTeX 2.09 (with limited support of the\n"
+"features) is part of the package.  Since the letter layout is based on a\n"
+"German standard, the user guide is written in German, but most macros have\n"
+"English names from which the user can recognize what they are used for.  In\n"
+"addition there are example files showing how letters may be created with the\n"
+"package."
+msgstr ""
+
+#: gnu/packages/tex.scm:3674
+msgid "Put a grey textual watermark on document pages"
+msgstr ""
+
+#: gnu/packages/tex.scm:3676
+msgid ""
+"This package provides a means to add a textual, light grey watermark on\n"
+"every page or on the first page of a document.  Typical usage may consist in\n"
+"writing words such as DRAFT or CONFIDENTIAL across document pages.  The\n"
+"package performs a similar function to that of @code{draftcopy}, but its\n"
+"implementation is output device independent, and made very simple by relying\n"
+"on everypage."
+msgstr ""
+
+#: gnu/packages/tex.scm:3698
+msgid "New interface for environments in LaTeX"
+msgstr ""
+
+#: gnu/packages/tex.scm:3700
+msgid ""
+"This package provides the @code{\\collect@@body} command (as in\n"
+"@code{amsmath}), as well as a @code{\\long} version @code{\\Collect@@Body},\n"
+"for collecting the body text of an environment.  These commands are used to\n"
+"define a new author interface to creating new environments."
+msgstr ""
+
+#: gnu/packages/tex.scm:3720
+msgid "Create equal-widthed parboxes"
+msgstr ""
+
+#: gnu/packages/tex.scm:3722
+msgid ""
+"LaTeX users sometimes need to ensure that two or more blocks of text\n"
+"occupy the same amount of horizontal space on the page.  To that end, the\n"
+"@code{eqparbox} package defines a new command, @code{\\eqparbox}, which works\n"
+"just like @code{\\parbox}, except that instead of specifying a width, one\n"
+"specifies a tag.  All @code{eqparbox}es with the same tag---regardless of\n"
+"where they are in the document---will stretch to fit the widest\n"
+"@code{eqparbox} with that tag.  This simple, equal-width mechanism can be used\n"
+"for a variety of alignment purposes, as is evidenced by the examples in\n"
+"@code{eqparbox}'s documentation.  Various derivatives of @code{\\eqparbox} are\n"
+"also provided."
+msgstr ""
+
+#: gnu/packages/tex.scm:3756
+msgid "Expanded description environments"
+msgstr ""
+
+#: gnu/packages/tex.scm:3758
+msgid ""
+"The package provides additional features for the LaTeX\n"
+"@code{description} environment, including adjustable left margin.  The package\n"
+"also allows the user to \"break\" a list (for example, to interpose a comment)\n"
+"without affecting the structure of the list (this works for @code{itemize} and\n"
+"@code{enumerate} lists, and numbered lists remain in sequence)."
+msgstr ""
+
+#: gnu/packages/tex.scm:3776
+msgid "Provide file modification times, and compare them"
+msgstr ""
+
+#: gnu/packages/tex.scm:3778
+msgid ""
+"This package provides macros to read and compare the modification dates\n"
+"of files.  The files may be @code{.tex} files, images or other files (as long\n"
+"as they can be found by LaTeX).  It uses the @code{\\pdffilemoddate} primitive\n"
+"of pdfLaTeX to find the file modification date as PDF date string, parses the\n"
+"string and returns the value to the user.  The package will also work for DVI\n"
+"output with recent versions of the LaTeX compiler which uses pdfLaTeX in DVI\n"
+"mode.  The functionality is provided by purely expandable macros or by faster\n"
+"but non-expandable ones."
+msgstr ""
+
+#: gnu/packages/tex.scm:3805
+msgid "Conditionals to test which platform is being used"
+msgstr ""
+
+#: gnu/packages/tex.scm:3807
+msgid ""
+"This package uses the (La)TeX extension @code{-shell-escape} to\n"
+"establish whether the document is being processed on a Windows or on a\n"
+"Unix-like system, or on Cygwin (Unix environment over a Windows system).\n"
+"Booleans provided are: @code{\\ifwindows}, @code{\\iflinux}, @code{\\ifmacosx}\n"
+"and @code{\\ifcygwin}.  The package also preserves the output of @code{uname}\n"
+"on a Unix-like system, which may be used to distinguish between various\n"
+"classes of systems."
+msgstr ""
+
+#: gnu/packages/tex.scm:3830
+msgid "Flexible bibliography support"
+msgstr ""
+
+#: gnu/packages/tex.scm:3832
+msgid ""
+"This bundle provides a package that implements both author-year and\n"
+"numbered references, as well as much detailed of support for other\n"
+"bibliography use.  Also provided are versions of the standard BibTeX styles\n"
+"that are compatible with @code{natbib}: @code{plainnat}, @code{unsrtnat},\n"
+"@code{abbrnat}.  The bibliography styles produced by @code{custom-bib} are\n"
+"designed from the start to be compatible with @code{natbib}."
+msgstr ""
+
+#: gnu/packages/tex.scm:3854
+msgid "Replace strings in encapsulated PostScript figures"
+msgstr ""
+
+#: gnu/packages/tex.scm:3856
+msgid ""
+"This package allows LaTeX constructions (equations, picture\n"
+"environments, etc.) to be precisely superimposed over Encapsulated PostScript\n"
+"figures, using your own favorite drawing tool to create an EPS figure and\n"
+"placing simple text \"tags\" where each replacement is to be placed, with\n"
+"PSfrag automatically removing these tags from the figure and replacing them\n"
+"with a user specified LaTeX construction, properly aligned, scaled, and/or\n"
+"rotated."
+msgstr ""
+
+#: gnu/packages/tex.scm:3886
+msgid "Process PostScript graphics within pdfLaTeX documents"
+msgstr ""
+
+#: gnu/packages/tex.scm:3888
+msgid ""
+"This is a package for processing PostScript graphics with @code{psfrag}\n"
+"labels within pdfLaTeX documents.  Every graphic is compiled individually,\n"
+"drastically speeding up compilation time when only a single figure needs\n"
+"re-processing."
+msgstr ""
+
+#: gnu/packages/tex.scm:3907
+msgid "Make overhead slides"
+msgstr ""
+
+#: gnu/packages/tex.scm:3910
+msgid ""
+"This package provides a class that produces overhead\n"
+"slides (transparencies), with many facilities.  Seminar is not nowadays\n"
+"reckoned a good basis for a presentation — users are advised to use more\n"
+"recent classes such as powerdot or beamer, both of which are tuned to\n"
+"21st-century presentation styles."
+msgstr ""
+
+#: gnu/packages/tex.scm:3946
+msgid "Trim spaces around an argument or within a macro"
+msgstr ""
+
+#: gnu/packages/tex.scm:3948
+msgid ""
+"This very short package allows you to expandably remove spaces around a\n"
+"token list (commands are provided to remove spaces before, spaces after, or\n"
+"both); or to remove surrounding spaces within a macro definition, or to define\n"
+"space-stripped macros."
+msgstr ""
+
+#: gnu/packages/tex.scm:3981
+msgid "Captions on more than floats"
+msgstr ""
+
+#: gnu/packages/tex.scm:3983
+msgid ""
+"This package defines a command @code{\\captionof} for putting a caption\n"
+"to something that's not a float."
+msgstr ""
+
+#: gnu/packages/tex.scm:3997
+msgid "Create correct hyperlinks for DOI numbers"
+msgstr ""
+
+#: gnu/packages/tex.scm:3999
+msgid ""
+"You can hyperlink DOI numbers to doi.org.  However, some publishers have\n"
+"elected to use nasty characters in their DOI numbering scheme (@code{<},\n"
+"@code{>}, @code{_} and @code{;} have all been spotted).  This will either\n"
+"upset LaTeX, or your PDF reader.  This package contains a single user-level\n"
+"command @code{\\doi{}}, which takes a DOI number, and creates a correct\n"
+"hyperlink to the target of the DOI."
+msgstr ""
+
+#: gnu/packages/tex.scm:4021
+msgid "e-TeX tools for LaTeX"
+msgstr ""
+
+#: gnu/packages/tex.scm:4023
+msgid ""
+"This package is a toolbox of programming facilities geared primarily\n"
+"towards LaTeX class and package authors.  It provides LaTeX frontends to some\n"
+"of the new primitives provided by e-TeX as well as some generic tools which\n"
+"are not strictly related to e-TeX but match the profile of this package.  The\n"
+"package provides functions that seem to offer alternative ways of implementing\n"
+"some LaTeX kernel commands; nevertheless, the package will not modify any part\n"
+"of the LaTeX kernel."
+msgstr ""
+
+#: gnu/packages/tex.scm:4062
+msgid "Seven predefined chapter heading styles"
+msgstr ""
+
+#: gnu/packages/tex.scm:4064
+msgid ""
+"This package provides seven predefined chapter heading styles.  Each\n"
+"style can be modified using a set of simple commands.  Optionally one can\n"
+"modify the formatting routines in order to create additional chapter\n"
+"headings."
+msgstr ""
+
+#: gnu/packages/tex.scm:4097
+msgid "Framed or shaded regions that can break across pages"
+msgstr ""
+
+#: gnu/packages/tex.scm:4099
+msgid ""
+"The package creates three environments: @code{framed}, which puts an\n"
+"ordinary frame box around the region, @code{shaded}, which shades the region,\n"
+"and @code{leftbar}, which places a line at the left side.  The environments\n"
+"allow a break at their start (the @code{\\FrameCommand} enables creation of a\n"
+"title that is “attached” to the environment); breaks are also allowed in the\n"
+"course of the framed/shaded matter.  There is also a command\n"
+"@code{\\MakeFramed} to make your own framed-style environments."
+msgstr ""
+
+#: gnu/packages/tex.scm:4131
+msgid "Letter document class"
+msgstr ""
+
+#: gnu/packages/tex.scm:4133
+msgid ""
+"This package is designed for formatting formless letters in German; it\n"
+"can also be used for English (by those who can read the documentation).  There\n"
+"are LaTeX 2.09 @code{documentstyle} and LaTeX 2e class files for both an\n"
+"\"old\" and a \"new\" version of g-brief."
+msgstr ""
+
+#: gnu/packages/tex.scm:4153
+msgid "Typeset Galois connections"
+msgstr ""
+
+#: gnu/packages/tex.scm:4155
+msgid ""
+"The package deals with connections in two-dimensional style, optionally\n"
+"in colour."
+msgstr ""
+
+#: gnu/packages/tex.scm:4173
+msgid "Citations in a reader-friendly style"
+msgstr ""
+
+#: gnu/packages/tex.scm:4175
+msgid ""
+"The package allows citations in the German style, which is considered by\n"
+"many to be particularly reader-friendly.  The citation provides a small amount\n"
+"of bibliographic information in a footnote on the page where each citation is\n"
+"made.  It combines a desire to eliminate unnecessary page-turning with the\n"
+"look-up efficiency afforded by numeric citations.  The package makes use of\n"
+"BibLaTeX, and is considered experimental."
+msgstr ""
+
+#: gnu/packages/tex.scm:4199
+msgid "Flexible and complete interface to document dimensions"
+msgstr ""
+
+#: gnu/packages/tex.scm:4201
+msgid ""
+"This package provides an easy and flexible user interface to customize\n"
+"page layout, implementing auto-centering and auto-balancing mechanisms so that\n"
+"the users have only to give the least description for the page layout.  The\n"
+"package knows about all the standard paper sizes, so that the user need not\n"
+"know what the nominal \"real\" dimensions of the paper are, just its standard\n"
+"name (such as a4, letter, etc.).  An important feature is the package's\n"
+"ability to communicate the paper size it's set up to the output."
+msgstr ""
+
+#: gnu/packages/tex.scm:4224
+msgid "Miscellaneous tools by Mark Wooding"
+msgstr ""
+
+#: gnu/packages/tex.scm:4226
+msgid ""
+"This collection of tools includes: @code{atsupport} for short commands\n"
+"starting with @code{@@}, macros to sanitize the OT1 encoding of the\n"
+"@code{cmtt} fonts; a @code{doafter} command; improved @code{footnote} support;\n"
+"@code{mathenv} for various alignment in maths; list handling; @code{mdwmath}\n"
+"which adds some minor changes to LaTeX maths; a rewrite of LaTeX's tabular and\n"
+"array environments; verbatim handling; and syntax diagrams."
+msgstr ""
+
+#: gnu/packages/tex.scm:4248
+msgid "Alternative to babel for XeLaTeX and LuaLaTeX"
+msgstr ""
+
+#: gnu/packages/tex.scm:4250
+msgid ""
+"This package provides a complete Babel replacement for users of LuaLaTeX\n"
+"and XeLaTeX; it relies on the @code{fontspec} package, version 2.0 at least."
+msgstr ""
+
+#: gnu/packages/tex.scm:4268
+msgid "Multi-page tables package"
+msgstr ""
+
+#: gnu/packages/tex.scm:4270
+msgid ""
+"This package was a predecessor of @code{longtable}; the newer\n"
+"package (designed on quite different principles) is easier to use and more\n"
+"flexible, in many cases, but supertabular retains its usefulness in a few\n"
+"situations where longtable has problems."
+msgstr ""
+
+#: gnu/packages/tex.scm:4303
+msgid "TeX macros to handle Texinfo files"
+msgstr ""
+
+#: gnu/packages/tex.scm:4305
+msgid ""
+"Texinfo is the preferred format for documentation in the GNU project;\n"
+"the format may be used to produce online or printed output from a single\n"
+"source.  The Texinfo macros may be used to produce printable output using TeX;\n"
+"other programs in the distribution offer online interactive use (with\n"
+"hypertext linkages in some cases)."
+msgstr ""
+
+#: gnu/packages/tex.scm:4326
+msgid "Show \"realistic\" quotes in verbatim"
+msgstr ""
+
+#: gnu/packages/tex.scm:4328
+msgid ""
+"Typewriter-style fonts are best for program listings, but Computer\n"
+"Modern Typewriter prints @code{`} and @code{'} as bent opening and closing\n"
+"single quotes.  Other fonts, and most programming languages, print @code{`} as\n"
+"a grave accent and @code{'} upright; @code{'} is used both to open and to\n"
+"close quoted strings.  The package switches the typewriter font to Computer\n"
+"Modern Typewriter in OT1 encoding, and modifies the behaviour of\n"
+"@code{verbatim}, @code{verbatim*}, @code{\\verb}, and @code{\\verb*} to print\n"
+"in the expected way.  It does this regardless of other fonts or encodings in\n"
+"use, so long as the package is loaded after the other fonts were.  The package\n"
+"does not affect @code{\\tt}, @code{\\texttt}, etc."
+msgstr ""
+
+#: gnu/packages/tex.scm:4367
+msgid "Simple package to set up document margins"
+msgstr ""
+
+#: gnu/packages/tex.scm:4369
+msgid ""
+"This is a simple package to set up document margins.  This package is\n"
+"considered obsolete; alternatives are the @code{typearea} package from the\n"
+"@code{koma-script} bundle, or the @code{geometry} package."
+msgstr ""
+
+#: gnu/packages/tex.scm:4388
+msgid "Extra control of appendices"
+msgstr ""
+
+#: gnu/packages/tex.scm:4390
+msgid ""
+"The appendix package provides various ways of formatting the titles of\n"
+"appendices.  Also (sub)appendices environments are provided that can be used,\n"
+"for example, for per chapter/section appendices.  An @code{appendices}\n"
+"environment is provided which can be used instead of the @code{\\appendix}\n"
+"command."
+msgstr ""
+
+#: gnu/packages/tex.scm:4411
+msgid "Generate changebars in LaTeX documents"
+msgstr ""
+
+#: gnu/packages/tex.scm:4413
+msgid ""
+"Identify areas of text to be marked with changebars with the\n"
+"@code{\\cbstart} and @code{\\cbend} commands; the bars may be coloured.  The\n"
+"package uses @code{drivers} to place the bars; the available drivers can work\n"
+"with @code{dvitoln03}, @code{dvitops}, @code{dvips}, the emTeX and TeXtures DVI\n"
+"drivers, and VTeX and pdfTeX."
+msgstr ""
+
+#: gnu/packages/tex.scm:4448
+msgid "CMap support for PDF files"
+msgstr ""
+
+#: gnu/packages/tex.scm:4450
+msgid ""
+"This package embeds CMap tables into PDF files to make search and\n"
+"copy-and-paste functions work properly."
+msgstr ""
+
+#: gnu/packages/tex.scm:4468
+msgid "Add colour to LaTeX tables"
+msgstr ""
+
+#: gnu/packages/tex.scm:4470
+msgid ""
+"This package allows rows, columns, and even individual cells in LaTeX\n"
+"tables to be coloured."
+msgstr ""
+
+#: gnu/packages/tex.scm:4501
+msgid "Variants of \\fbox and other games with boxes"
+msgstr ""
+
+#: gnu/packages/tex.scm:4503
+msgid ""
+"This package provides variants of @code{\\fbox}: @code{\\shadowbox},\n"
+"@code{\\doublebox}, @code{\\ovalbox}, @code{\\Ovalbox}, with helpful tools for\n"
+"using box macros and flexible verbatim macros.  You can box mathematics,\n"
+"floats, center, flushleft, and flushright, lists, and pages."
+msgstr ""
+
+#: gnu/packages/tex.scm:4536
+msgid "Extensive control of page headers and footers in LaTeX2e"
+msgstr ""
+
+#: gnu/packages/tex.scm:4538
+msgid ""
+"The package provides extensive facilities, both for constructing headers\n"
+"and footers, and for controlling their use (for example, at times when LaTeX\n"
+"would automatically change the heading style in use)."
+msgstr ""
+
+#: gnu/packages/tex.scm:4557
+msgid "Improved interface for floating objects"
+msgstr ""
+
+#: gnu/packages/tex.scm:4559
+msgid ""
+"This package improves the interface for defining floating objects such\n"
+"as figures and tables.  It introduces the boxed float, the ruled float and the\n"
+"plaintop float.  You can define your own floats and improve the behaviour of\n"
+"the old ones.  The package also provides the @code{H} float modifier option of\n"
+"the obsolete @code{here} package.  You can select this as automatic default\n"
+"with @code{\\floatplacement{figure}{H}}."
+msgstr ""
+
+#: gnu/packages/tex.scm:4581
+msgid "Range of footnote options"
+msgstr ""
+
+#: gnu/packages/tex.scm:4583
+msgid ""
+"This is a collection of ways to change the typesetting of footnotes.\n"
+"The package provides means of changing the layout of the footnotes themselves,\n"
+"a way to number footnotes per page, to make footnotes disappear in a\n"
+"\"moving\" argument, and to deal with multiple references to footnotes from\n"
+"the same place.  The package also has a range of techniques for labelling\n"
+"footnotes with symbols rather than numbers."
+msgstr ""
+
+#: gnu/packages/tex.scm:4607
+msgid "Typeset source code listings using LaTeX"
+msgstr ""
+
+#: gnu/packages/tex.scm:4609
+msgid ""
+"The package enables the user to typeset programs (programming code)\n"
+"within LaTeX; the source code is read directly by TeX---no front-end processor\n"
+"is needed.  Keywords, comments and strings can be typeset using different\n"
+"styles.  Support for @code{hyperref} is provided."
+msgstr ""
+
+#: gnu/packages/tex.scm:4642
+msgid "Miscellaneous packages by Joerg Knappen"
+msgstr ""
+
+#: gnu/packages/tex.scm:4644
+msgid ""
+"This package provides miscellaneous macros by Joerg Knappen, including:\n"
+"represent counters in greek; Maxwell's non-commutative division;\n"
+"@code{latin1jk}, @code{latin2jk} and @code{latin3jk}, which are\n"
+"@code{inputenc} definition files that allow verbatim input in the respective\n"
+"ISO Latin codes; blackboard bold fonts in maths; use of RSFS fonts in maths;\n"
+"extra alignments for @code{\\parboxes}; swap Roman and Sans fonts;\n"
+"transliterate semitic languages; patches to make (La)TeX formulae embeddable\n"
+"in SGML; use maths minus in text as appropriate; simple Young tableaux."
+msgstr ""
+
+#: gnu/packages/tex.scm:4719
+msgid "Computer modern fonts in T1 and TS1 encodings"
+msgstr ""
+
+#: gnu/packages/tex.scm:4721
+msgid ""
+"The EC fonts are European Computer Modern Fonts, supporting the complete\n"
+"LaTeX T1 encoding defined at the 1990 TUG conference hold at Cork/Ireland.\n"
+"These fonts are intended to be stable with no changes being made to the tfm\n"
+"files.  The set also contains a Text Companion Symbol font, called @code{tc},\n"
+"featuring many useful characters needed in text typesetting, for example\n"
+"oldstyle digits, currency symbols (including the newly created Euro symbol),\n"
+"the permille sign, copyright, trade mark and servicemark as well as a copyleft\n"
+"sign, and many others.  Recent releases of LaTeX2e support the EC fonts.  The\n"
+"EC fonts supersede the preliminary version released as the DC fonts.  The\n"
+"fonts are available in (traced) Adobe Type 1 format, as part of the\n"
+"@code{cm-super} bundle.  The other Computer Modern-style T1-encoded Type 1\n"
+"set, Latin Modern, is not actually a direct development of the EC set, and\n"
+"differs from the EC in a number of particulars."
+msgstr ""
+
+#: gnu/packages/tex.scm:4752
+msgid "Virtual fonts for T1 encoded CMR-fonts"
+msgstr ""
+
+#: gnu/packages/tex.scm:4754
+msgid ""
+"This package provides a set of virtual fonts which emulates T1 coded\n"
+"fonts using the standard CM fonts.  The package name, AE fonts, supposedly\n"
+"stands for \"Almost European\".  The main use of the package was to produce\n"
+"PDF files using Adobe Type 1 versions of the CM fonts instead of bitmapped EC\n"
+"fonts.  Note that direct substitutes for the bitmapped EC fonts are available,\n"
+"via the CM-super, Latin Modern and (in a restricted way) CM-LGC font sets."
+msgstr ""
+
+#: gnu/packages/tex.scm:4777
+msgid "Monospaced font with support files for use with TeX"
+msgstr ""
+
+#: gnu/packages/tex.scm:4779
+msgid ""
+"Inconsolata is a monospaced font designed by Raph Levien.  This package\n"
+"contains the font (in both Adobe Type 1 and OpenType formats) in regular and\n"
+"bold weights, with additional glyphs and options to control slashed zero,\n"
+"upright quotes and a shapelier lower-case L, plus metric files for use with\n"
+"TeX, and LaTeX font definition and other relevant files."
+msgstr ""
+
+#: gnu/packages/tex.scm:4806 gnu/packages/tex.scm:4835
+#: gnu/packages/tex.scm:4861 gnu/packages/tex.scm:7488
+msgid "URW Base 35 font pack for LaTeX"
+msgstr ""
+
+#: gnu/packages/tex.scm:4808
+msgid ""
+"This package provides a drop-in replacements for the Times font from\n"
+"Adobe's basic set."
+msgstr ""
+
+#: gnu/packages/tex.scm:4837
+msgid ""
+"This package provides a drop-in replacements for the Palatino font from\n"
+"Adobe's basic set."
+msgstr ""
+
+#: gnu/packages/tex.scm:4863
+msgid ""
+"This package provides a drop-in replacements for the Zapfding font from\n"
+"Adobe's basic set."
+msgstr ""
+
+#: gnu/packages/tex.scm:4936
+msgid "Ralph Smith's Formal Script font"
+msgstr ""
+
+#: gnu/packages/tex.scm:4938
+msgid ""
+"The fonts provide uppercase formal script letters for use as symbols in\n"
+"scientific and mathematical typesetting (in contrast to the informal script\n"
+"fonts such as that used for the calligraphic symbols in the TeX maths symbol\n"
+"font).  The fonts are provided as Metafont source, and as derived Adobe Type 1\n"
+"format.  LaTeX support, for using these fonts in mathematics, is available via\n"
+"one of the packages @code{calrsfs} and @code{mathrsfs}."
+msgstr ""
+
+#: gnu/packages/tex.scm:4960
+msgid "Add picture commands (or backgrounds) to every page"
+msgstr ""
+
+#: gnu/packages/tex.scm:4962
+msgid ""
+"The package adds one or more user commands to LaTeX's @code{shipout}\n"
+"routine, which may be used to place the output at fixed positions.  The\n"
+"@code{grid} option may be used to find the correct places."
+msgstr ""
+
+#: gnu/packages/tex.scm:4994
+msgid "Extensions to epic and the LaTeX drawing tools"
+msgstr ""
+
+#: gnu/packages/tex.scm:4996
+msgid ""
+"Extensions to @code{epic} and the LaTeX picture drawing environment,\n"
+"include the drawing of lines at any slope, the drawing of circles in any\n"
+"radii, and the drawing of dotted and dashed lines much faster with much less\n"
+"TeX memory, and providing several new commands for drawing ellipses, arcs,\n"
+"splines, and filled circles and ellipses.  The package uses @code{tpic}\n"
+"@code{\\special} commands."
+msgstr ""
+
+#: gnu/packages/tex.scm:5031
+msgid "Customize basic list environments"
+msgstr ""
+
+#: gnu/packages/tex.scm:5033
+msgid ""
+"This package is intended to ease customizing the three basic list\n"
+"environments: @code{enumerate}, @code{itemize} and @code{description}.  It\n"
+"extends their syntax to allow an optional argument where a set of parameters\n"
+"in the form @code{key=value} are available, for example:\n"
+"@code{\\begin{itemize}[itemsep=1ex,leftmargin=1cm]}."
+msgstr ""
+
+#: gnu/packages/tex.scm:5054
+msgid "Create tabular cells spanning multiple rows"
+msgstr ""
+
+#: gnu/packages/tex.scm:5056
+msgid ""
+"The package provides tools for creating tabular cells spanning multiple\n"
+"rows.  It has a lot of flexibility, including an option for specifying an\n"
+"entry at the \"natural\" width of its text."
+msgstr ""
+
+#: gnu/packages/tex.scm:5088
+msgid "Combine LaTeX commands over included graphics"
+msgstr ""
+
+#: gnu/packages/tex.scm:5090
+msgid ""
+"The @code{overpic} environment is a cross between the LaTeX\n"
+"@code{picture} environment and the @code{\\includegraphics} command of\n"
+"@code{graphicx}.  The resulting picture environment has the same dimensions as\n"
+"the included graphic.  LaTeX commands can be placed on the graphic at defined\n"
+"positions; a grid for orientation is available."
+msgstr ""
+
+#: gnu/packages/tex.scm:5124
+msgid "Layout with zero \\parindent, non-zero \\parskip"
+msgstr ""
+
+#: gnu/packages/tex.scm:5126
+msgid ""
+"Simply changing @code{\\parskip} and @code{\\parindent} leaves a layout\n"
+"that is untidy; this package (though it is no substitute for a properly\n"
+"designed class) helps alleviate this untidiness."
+msgstr ""
+
+#: gnu/packages/tex.scm:5145
+msgid "Include PDF documents in LaTeX"
+msgstr ""
+
+#: gnu/packages/tex.scm:5147
+msgid ""
+"This package simplifies the inclusion of external multi-page PDF\n"
+"documents in LaTeX documents.  Pages may be freely selected and it is possible\n"
+"to put several logical pages onto each sheet of paper.  Furthermore a lot of\n"
+"hypertext features like hyperlinks and article threads are provided.  The\n"
+"package supports pdfTeX (pdfLaTeX) and VTeX.  With VTeX it is even possible to\n"
+"use this package to insert PostScript files, in addition to PDF files."
+msgstr ""
+
+#: gnu/packages/tex.scm:5179
+msgid "St Mary Road symbols for theoretical computer science"
+msgstr ""
+
+#: gnu/packages/tex.scm:5181
+msgid ""
+"The fonts were originally distributed as Metafont sources only, but\n"
+"Adobe Type 1 versions are also now available.  Macro support is provided for\n"
+"use under LaTeX; the package supports the @code{only} option (provided by the\n"
+"@code{somedefs} package) to restrict what is loaded, for those who don't need\n"
+"the whole font."
+msgstr ""
+
+#: gnu/packages/tex.scm:5202
+msgid "Figures divided into subfigures"
+msgstr ""
+
+#: gnu/packages/tex.scm:5204
+msgid ""
+"This (deprecated) package provides support for the manipulation and\n"
+"reference of small or \"sub\" figures and tables within a single figure or\n"
+"table environment.  It is convenient to use this package when your subfigures\n"
+"are to be separately captioned, referenced, or are to be included in the\n"
+"List-of-Figures.  A new @code{\\subfigure} command is introduced which can be\n"
+"used inside a figure environment for each subfigure.  An optional first\n"
+"argument is used as the caption for that subfigure.  The package is now\n"
+"considered obsolete: it was superseded by @code{subfig}, but users may find\n"
+"the more recent @code{subcaption} package more satisfactory."
+msgstr ""
+
+#: gnu/packages/tex.scm:5229
+msgid "Tabular with variable width columns balanced"
+msgstr ""
+
+#: gnu/packages/tex.scm:5231
+msgid ""
+"The package defines a @code{tabular*}-like environment, @code{tabulary},\n"
+"taking a \"total width\" argument as well as the column specifications.  The\n"
+"environment uses column types @code{L}, @code{C}, @code{R} and @code{J} for\n"
+"variable width columns (@code{\\raggedright}, @code{\\centering},\n"
+"@code{\\raggedleft}, and normally justified).  In contrast to\n"
+"@code{tabularx}'s @code{X} columns, the width of each column is weighted\n"
+"according to the natural width of the widest cell in the column."
+msgstr ""
+
+#: gnu/packages/tex.scm:5267
+msgid "Tables with captions and notes all the same width"
+msgstr ""
+
+#: gnu/packages/tex.scm:5269
+msgid ""
+"This package facilitates tables with titles (captions) and notes.  The\n"
+"title and notes are given a width equal to the body of the table (a\n"
+"@code{tabular} environment).  By itself, a @code{threeparttable} does not\n"
+"float, but you can put it in a @code{table} or a @code{table*} or some other\n"
+"environment."
+msgstr ""
+
+#: gnu/packages/tex.scm:5294
+msgid "Times-like fonts in support of mathematics"
+msgstr ""
+
+#: gnu/packages/tex.scm:5296
+msgid ""
+"Txfonts supplies virtual text roman fonts using Adobe Times (or URW\n"
+"NimbusRomNo9L) with some modified and additional text symbols in the OT1, T1,\n"
+"and TS1 encodings; maths alphabets using Times/URW Nimbus; maths fonts\n"
+"providing all the symbols of the Computer Modern and AMS fonts, including all\n"
+"the Greek capital letters from CMR; and additional maths fonts of various\n"
+"other symbols.\n"
+"\n"
+"The set is complemented by a sans-serif set of text fonts, based on\n"
+"Helvetica/NimbusSanL, and a monospace set.\n"
+"\n"
+"All the fonts are in Type 1 format (AFM and PFB files), and are supported by\n"
+"TeX metrics (VF and TFM files) and macros for use with LaTeX."
+msgstr ""
+
+#: gnu/packages/tex.scm:5346
+msgid "Sans-serif typeface for TeX"
+msgstr ""
+
+#: gnu/packages/tex.scm:5347
+msgid ""
+"Iwona is a two-element sans-serif typeface. It was created\n"
+"as an alternative version of the Kurier typeface, which was designed in 1975\n"
+"for a diploma in typeface design at the Warsaw Academy of Fine Arts under the\n"
+"supervision of Roman Tomaszewski.  Kurier was designed for linotype\n"
+"typesetting of newspapers and similar periodicals.  The Iwona fonts are an\n"
+"alternative version of the Kurier fonts.  The difference lies in the absence\n"
+"of ink traps which typify the Kurier font."
+msgstr ""
+
+#: gnu/packages/tex.scm:5383
+msgid "Select alternative section titles"
+msgstr ""
+
+#: gnu/packages/tex.scm:5385
+msgid ""
+"This package provides an interface to sectioning commands for selection\n"
+"from various title styles, e.g. for marginal titles and to change the font of\n"
+"all headings with a single command, also providing simple one-step page\n"
+"styles.  It also includes a package to change the page styles when there are\n"
+"floats in a page.  You may assign headers/footers to individual floats, too."
+msgstr ""
+
+#: gnu/packages/tex.scm:5406
+msgid "Arbitrary size font selection in LaTeX"
+msgstr ""
+
+#: gnu/packages/tex.scm:5408
+msgid ""
+"LaTeX, by default, restricts the sizes at which you can use its default\n"
+"computer modern fonts, to a fixed set of discrete sizes (effectively, a set\n"
+"specified by Knuth).  The @code{type1cm} package removes this restriction;\n"
+"this is particularly useful when using scalable versions of the CM\n"
+"fonts (Bakoma, or the versions from BSR/Y&Y, or True Type versions from Kinch,\n"
+"PCTeX, etc.).  In fact, since modern distributions will automatically generate\n"
+"any bitmap font you might need, @code{type1cm} has wider application than just\n"
+"those using scalable versions of the fonts.  Note that the LaTeX distribution\n"
+"now contains a package @code{fix-cm},f which performs the task of\n"
+"@code{type1cm}, as well as doing the same job for T1- and TS1-encoded\n"
+"@code{ec} fonts."
+msgstr ""
+
+#: gnu/packages/tex.scm:5435
+msgid "Cyrillic fonts that support LaTeX standard encodings"
+msgstr ""
+
+#: gnu/packages/tex.scm:5437
+msgid ""
+"The LH fonts address the problem of the wide variety of alphabets that\n"
+"are written with Cyrillic-style characters.  The fonts are the original basis\n"
+"of the set of T2* and X2 encodings that are now used when LaTeX users need to\n"
+"write in Cyrillic languages.  Macro support in standard LaTeX encodings is\n"
+"offered through the latex-cyrillic and t2 bundles, and the package itself\n"
+"offers support for other (more traditional) encodings.  The fonts, in the\n"
+"standard T2* and X2 encodings are available in Adobe Type 1 format, in the\n"
+"CM-Super family of fonts.  The package also offers its own LaTeX support for\n"
+"OT2 encoded fonts, CM bright shaped fonts and Concrete shaped fonts."
+msgstr ""
+
+#: gnu/packages/tex.scm:5475
+msgid "Create scalable illustrations"
+msgstr ""
+
+#: gnu/packages/tex.scm:5477
+msgid ""
+"MetaPost uses a language based on that of Metafont to produce precise\n"
+"technical illustrations.  Its output is scalable PostScript or SVG, rather\n"
+"than the bitmaps Metafont creates."
+msgstr ""
+
+#: gnu/packages/tex.scm:5496
+msgid "Class for typesetting publications of ACM"
+msgstr ""
+
+#: gnu/packages/tex.scm:5498
+msgid ""
+"This package provides a class for typesetting publications of the\n"
+"Association for Computing Machinery (ACM)."
+msgstr ""
+
+#: gnu/packages/tex.scm:5529
+msgid "Variable-width minipage"
+msgstr ""
+
+#: gnu/packages/tex.scm:5531
+msgid ""
+"The @code{varwidth} environment is superficially similar to\n"
+"@code{minipage}, but the specified width is just a maximum value — the box may\n"
+"get a narrower “natural” width."
+msgstr ""
+
+#: gnu/packages/tex.scm:5550
+msgid "LaTeX support file to use the WASY2 fonts"
+msgstr ""
+
+#: gnu/packages/tex.scm:5552
+msgid ""
+"The wasy2WASY2 (Waldi Symbol) font by Roland Waldi provides many glyphs\n"
+"like male and female symbols and astronomical symbols, as well as the complete\n"
+"lasy font set and other odds and ends.  The wasysym package implements an easy\n"
+"to use interface for these symbols."
+msgstr ""
+
+#: gnu/packages/tex.scm:5585
+msgid "Produces figures which text can flow around"
+msgstr ""
+
+#: gnu/packages/tex.scm:5587
+msgid ""
+"This package allows figures or tables to have text wrapped around them.\n"
+"It does not work in combination with list environments, but can be used in a\n"
+"@code{parbox} or @code{minipage}, and in two-column format."
+msgstr ""
+
+#: gnu/packages/tex.scm:5619
+msgid "Extended UTF-8 input encoding support for LaTeX"
+msgstr ""
+
+#: gnu/packages/tex.scm:5621
+msgid ""
+"The bundle provides the @code{ucs} package, and @code{utf8x.def},\n"
+"together with a large number of support files.  The @code{utf8x.def}\n"
+"definition file for use with @code{inputenc} covers a wider range of Unicode\n"
+"characters than does @code{utf8.def} in the LaTeX distribution.  The package\n"
+"provides facilities for efficient use of its large sets of Unicode characters.\n"
+"Glyph production may be controlled by various options, which permits use of\n"
+"non-ASCII characters when coding mathematical formulae.  Note that the bundle\n"
+"previously had an alias “unicode”; that alias has now been withdrawn, and no\n"
+"package of that name now exists."
+msgstr ""
+
+#: gnu/packages/tex.scm:5653
+msgid "Extract bits of a LaTeX source for output"
+msgstr ""
+
+#: gnu/packages/tex.scm:5655
+msgid ""
+"The main purpose of the preview package is the extraction of selected\n"
+"elements from a LaTeX source, like formulas or graphics, into separate\n"
+"pages of a DVI file.  A flexible and convenient interface allows it to\n"
+"specify what commands and constructs should be extracted.  This works\n"
+"with DVI files postprocessed by either Dvips and Ghostscript or\n"
+"dvipng, but it also works when you are using PDFTeX for generating PDF\n"
+"files."
+msgstr ""
+
+#: gnu/packages/tex.scm:5678
+msgid "Expand acronyms at least once"
+msgstr ""
+
+#: gnu/packages/tex.scm:5680
+msgid ""
+"This package ensures that all acronyms used in the text are spelled out\n"
+"in full at least once.  It also provides an environment to build a list of\n"
+"acronyms used.  The package is compatible with PDF bookmarks.  The package\n"
+"requires the suffix package, which in turn requires that it runs under\n"
+"e-TeX."
+msgstr ""
+
+#: gnu/packages/tex.scm:5731
+msgid "TeX extension for direct creation of PDF"
+msgstr ""
+
+#: gnu/packages/tex.scm:5733
+msgid ""
+"This package provides an extension of TeX which can be configured to\n"
+"directly generate PDF documents instead of DVI."
+msgstr ""
+
+#: gnu/packages/tex.scm:5805
+msgid ""
+"TeX Live provides a comprehensive TeX document production system.\n"
+"It includes all the major TeX-related programs, macro packages, and fonts\n"
+"that are free software, including support for many languages around the\n"
+"world.\n"
+"\n"
+"This package contains the complete tree of texmf-dist data."
+msgstr ""
+
+#: gnu/packages/tex.scm:5868
+msgid ""
+"TeX Live provides a comprehensive TeX document production system.\n"
+"It includes all the major TeX-related programs, macro packages, and fonts\n"
+"that are free software, including support for many languages around the\n"
+"world.\n"
+"\n"
+"This package contains the complete TeX Live distribution."
+msgstr ""
+
+#: gnu/packages/tex.scm:5911
+msgid "Interface to read and parse BibTeX files"
+msgstr ""
+
+#: gnu/packages/tex.scm:5912
+msgid ""
+"@code{Text::BibTeX} is a Perl library for reading, parsing,\n"
+"and processing BibTeX files.  @code{Text::BibTeX} gives you access to the data\n"
+"at many different levels: you may work with BibTeX entries as simple field to\n"
+"string mappings, or get at the original form of the data as a list of simple\n"
+"values (strings, macros, or numbers) pasted together."
+msgstr ""
+
+#: gnu/packages/tex.scm:6002
+msgid "Backend for the BibLaTeX citation management tool"
+msgstr ""
+
+#: gnu/packages/tex.scm:6003
+msgid ""
+"Biber is a BibTeX replacement for users of biblatex.  Among\n"
+"other things it comes with full Unicode support."
+msgstr ""
+
+#: gnu/packages/tex.scm:6035
+msgid "Wrapper for LaTeX and friends"
+msgstr ""
+
+#: gnu/packages/tex.scm:6037
+msgid ""
+"Rubber is a program whose purpose is to handle all tasks related to the\n"
+"compilation of LaTeX documents.  This includes compiling the document itself,\n"
+"of course, enough times so that all references are defined, and running BibTeX\n"
+"to manage bibliographic references.  Automatic execution of dvips to produce\n"
+"PostScript documents is also included, as well as usage of pdfLaTeX to produce\n"
+"PDF documents."
+msgstr ""
+
+#: gnu/packages/tex.scm:6079
+#, fuzzy
+#| msgid "Stream editor"
+msgid "LaTeX editor"
+msgstr "Flu-redaktilo"
+
+#: gnu/packages/tex.scm:6080
+msgid ""
+"Texmaker is a program that integrates many tools needed to\n"
+"develop documents with LaTeX, in a single application."
+msgstr ""
+
+#: gnu/packages/tex.scm:6120
+msgid "Book on TeX, plain TeX and Eplain"
+msgstr ""
+
+#: gnu/packages/tex.scm:6121
+msgid ""
+"@i{TeX for the Impatient} is a ~350 page book on TeX,\n"
+"plain TeX, and Eplain, originally written by Paul Abrahams, Kathryn Hargreaves,\n"
+"and Karl Berry."
+msgstr ""
+
+#: gnu/packages/tex.scm:6187
+#, fuzzy
+#| msgid "Document layout system"
+msgid "Document preparation system with GUI"
+msgstr "Dokument-aranĵa sistemo"
+
+#: gnu/packages/tex.scm:6188
+msgid ""
+"LyX is a document preparation system.  It excels at letting\n"
+"you create complex technical and scientific articles with mathematics,\n"
+"cross-references, bibliographies, indexes, etc.  It is very good for working\n"
+"with documents of any length in which the usual processing abilities are\n"
+"required: automatic sectioning and pagination, spell checking and so forth."
+msgstr ""
+
+#: gnu/packages/tex.scm:6222
+msgid "Multimedia inclusion package with Adobe Reader-9/X compatibility"
+msgstr ""
+
+#: gnu/packages/tex.scm:6224
+msgid ""
+"The package provides an interface to embed interactive Flash (SWF) and 3D\n"
+"objects (Adobe U3D & PRC), as well as video and sound files or streams in the\n"
+"popular MP4, FLV and MP3 formats into PDF documents with Acrobat-9/X\n"
+"compatibility.  Playback of multimedia files uses the built-in Flash Player of\n"
+"Adobe Reader and does, therefore, not depend on external plug-ins.  Flash Player\n"
+"supports the efficient H.264 codec for video compression.\n"
+"\n"
+"The package is based on the RichMedia Annotation, an Adobe addition to the PDF\n"
+"specification.  It replaces the now obsolete @code{movie15} package."
+msgstr ""
+
+#: gnu/packages/tex.scm:6262
+msgid "Provide OCG (Optional Content Groups) support within a PDF document"
+msgstr ""
+
+#: gnu/packages/tex.scm:6264
+msgid ""
+"This package provides OCG (Optional Content Groups) support within a PDF\n"
+"document.\n"
+"\n"
+"It re-implements the functionality of the @code{ocg}, @code{ocgx}, and\n"
+"@code{ocg-p} packages and adds support for all known engines and back-ends\n"
+"including:\n"
+"\n"
+"@itemize\n"
+"@item LaTeX → dvips → @code{ps2pdf}/Distiller\n"
+"@item (Xe)LaTeX(x) → @code{dvipdfmx}\n"
+"@item pdfLaTeX and LuaLaTeX .\n"
+"@end itemize\n"
+"\n"
+"It also ensures compatibility with the @code{media9} and @code{animate} packages."
+msgstr ""
+
+#: gnu/packages/tex.scm:6296
+msgid "Various LATEX packages by Martin Schröder"
+msgstr ""
+
+#: gnu/packages/tex.scm:6298
+msgid ""
+"A bundle of LATEX packages by Martin Schröder; the collection comprises:\n"
+"\n"
+"@itemize\n"
+"@item @command{count1to}, make use of fixed TEX counters;\n"
+"@item @command{everysel}, set commands to execute every time a font is selected;\n"
+"@item @command{everyshi}, set commands to execute whenever a page is shipped out;\n"
+"@item @command{multitoc}, typeset the table of contents in multiple columns;\n"
+"@item @command{prelim2e}, mark typeset pages as preliminary; and\n"
+"@item @command{ragged2e}, typeset ragged text and allow hyphenation.\n"
+"@end itemize\n"
+msgstr ""
+
+#: gnu/packages/tex.scm:6328
+msgid "Insert pagebreak if not enough space"
+msgstr ""
+
+#: gnu/packages/tex.scm:6330
+msgid ""
+"Provides commands to disable pagebreaking within a given vertical\n"
+"space.  If there is not enough space between the command and the bottom of the\n"
+"page, a new page will be started."
+msgstr ""
+
+#: gnu/packages/tex.scm:6354
+msgid "Margin adjustment and detection of odd/even pages"
+msgstr ""
+
+#: gnu/packages/tex.scm:6356
+msgid ""
+"The package provides commands to change the page layout in the middle of\n"
+"a document, and to robustly check for typesetting on odd or even pages.\n"
+"Instructions for use are at the end of the file.  The package is an extraction\n"
+"of code from the @code{memoir} class, whose user interface it shares."
+msgstr ""
+
+#: gnu/packages/tex.scm:6390
+msgid "UK format dates, with weekday"
+msgstr ""
+
+#: gnu/packages/tex.scm:6392
+msgid ""
+"The package is used to change the format of @code{\\today}’s date,\n"
+"including the weekday, e.g., \"Saturday, 26 June 2008\", the 'UK format', which\n"
+"is preferred in many parts of the world, as distinct from that which is used in\n"
+"@code{\\maketitle} of the article class, \"June 26, 2008\", the 'US format'."
+msgstr ""
+
+#: gnu/packages/tex.scm:6426
+msgid "Underline text in TeX"
+msgstr ""
+
+#: gnu/packages/tex.scm:6428
+msgid ""
+"The package provides an @code{\\ul} (underline) command which will break\n"
+"over line ends; this technique may be used to replace @code{\\em} (both in that\n"
+"form and as the @code{\\emph} command), so as to make output look as if it comes\n"
+"from a typewriter.  The package also offers double and wavy underlining, and\n"
+"striking out (line through words) and crossing out (/// over words)."
+msgstr ""
+
+#: gnu/packages/tex.scm:6482
+#, fuzzy
+#| msgid "Create charts and graphs in Guile"
+msgid "Create PostScript and PDF graphics in TeX"
+msgstr "Krei diagramojn kaj grafikaĵojn en Guile"
+
+#: gnu/packages/tex.scm:6484
+msgid ""
+"PGF is a macro package for creating graphics.  It is platform- and\n"
+"format-independent and works together with the most important TeX backend\n"
+"drivers, including pdfTeX and dvips.  It comes with a user-friendly syntax layer\n"
+"called TikZ.\n"
+"\n"
+"Its usage is similar to pstricks and the standard picture environment.  PGF\n"
+"works with plain (pdf-)TeX, (pdf-)LaTeX, and ConTeXt.  Unlike pstricks, it can\n"
+"produce either PostScript or PDF output."
+msgstr ""
+
+#: gnu/packages/tex.scm:6529
+msgid "Bundle of versatile classes and packages"
+msgstr ""
+
+#: gnu/packages/tex.scm:6531
+msgid ""
+"The KOMA-Script bundle provides replacements for the article, report, and\n"
+"book classes with emphasis on typography and versatility.  There is also a\n"
+"letter class.\n"
+"\n"
+"The bundle also offers:\n"
+"\n"
+"@itemize\n"
+"@item a package for calculating type areas in the way laid down by the\n"
+"typographer Jan Tschichold,\n"
+"@item packages for easily changing and defining page styles,\n"
+"@item a package scrdate for getting not only the current date but also the name\n"
+"of the day, and\n"
+"@item a package scrtime for getting the current time.\n"
+"@end itemize\n"
+"\n"
+"All these packages may be used not only with KOMA-Script classes but also with\n"
+"the standard classes.\n"
+"\n"
+"Since every package has its own version number, the version number quoted only\n"
+"refers to the version of scrbook, scrreprt, scrartcl, scrlttr2 and\n"
+"typearea (which are the main parts of the bundle)."
+msgstr ""
+
+#: gnu/packages/tex.scm:6581
+msgid "Grab items in lists using user-specified separation character"
+msgstr ""
+
+#: gnu/packages/tex.scm:6583
+msgid ""
+"This package allows one to capture all the items of a list, for which\n"
+"the parsing character has been selected by the user, and to access any of\n"
+"these items with a simple syntax."
+msgstr ""
+
+#: gnu/packages/tex.scm:6617
+msgid "Read, store and recall array-formatted data"
+msgstr ""
+
+#: gnu/packages/tex.scm:6619
+msgid ""
+"This package allows the user to input formatted data into elements of a\n"
+"2-D or 3-D array and to recall that data at will by individual cell number.\n"
+"The data can be but need not be numerical in nature.  It can be, for example,\n"
+"formatted text."
+msgstr ""
+
+#: gnu/packages/tex.scm:6654
+msgid "Deposit verbatim text in a box"
+msgstr ""
+
+#: gnu/packages/tex.scm:6656
+msgid ""
+"The package provides a @code{verbbox} environment to place its contents\n"
+"into a globally available box, or into a box specified by the user.  The\n"
+"global box may then be used in a variety of situations (for example, providing\n"
+"a replica of the @code{boxedverbatim} environment itself).  A valuable use is\n"
+"in places where the standard @code{verbatim} environment (which is based on a\n"
+"@code{trivlist}) may not appear."
+msgstr ""
+
+#: gnu/packages/tex.scm:6691
+msgid "Verbatim phrases and listings in LaTeX"
+msgstr ""
+
+#: gnu/packages/tex.scm:6693
+msgid ""
+"Examplep provides sophisticated features for typesetting verbatim source\n"
+"code listings, including the display of the source code and its compiled LaTeX\n"
+"or METAPOST output side-by-side, with automatic width detection and enabled\n"
+"page breaks (in the source), without the need for specifying the source twice.\n"
+"Special care is taken that section, page and footnote numbers do not interfere\n"
+"with the main document.  For typesetting short verbatim phrases, a replacement\n"
+"for the @code{\\verb} command is also provided in the package, which can be\n"
+"used inside tables and moving arguments such as footnotes and section\n"
+"titles."
+msgstr ""
+
+#: gnu/packages/tex.scm:6729
+msgid "Flexible diagramming macros"
+msgstr ""
+
+#: gnu/packages/tex.scm:6730
+msgid ""
+"This is a package for typesetting a variety of graphs and\n"
+"diagrams with TeX.  Xy-pic works with most formats (including LaTeX,\n"
+"AMS-LaTeX, AMS-TeX, and plain TeX).  The distribution includes Michael Barr's\n"
+"@code{diag} package, which was previously distributed stand-alone."
+msgstr ""
+
+#: gnu/packages/tex.scm:6770
+msgid "Process bibliographies for LaTeX"
+msgstr ""
+
+#: gnu/packages/tex.scm:6772
+msgid ""
+"BibTeX allows the user to store his citation data in generic form, while\n"
+"printing citations in a document in the form specified by a BibTeX style, to\n"
+"be specified in the document itself (one often needs a LaTeX citation-style\n"
+"package, such as @command{natbib} as well)."
+msgstr ""
+
+#: gnu/packages/tex.scm:6791
+msgid "Charter fonts for TeX"
+msgstr ""
+
+#: gnu/packages/tex.scm:6792
+msgid ""
+"This package provides a copy of the Charter Type-1 fonts\n"
+"which Bitstream contributed to the X consortium, renamed for use with TeX.\n"
+"Support for use with LaTeX is available in @code{freenfss}, part of\n"
+"@command{psnfss}. "
+msgstr ""
+
+#: gnu/packages/tex.scm:6829
+msgid "Full featured, parameter driven macro package for TeX"
+msgstr ""
+
+#: gnu/packages/tex.scm:6830
+msgid ""
+"A full featured, parameter driven macro package, which fully\n"
+"supports advanced interactive documents.  See the ConTeXt garden for a wealth\n"
+"of support information."
+msgstr ""
+
+#: gnu/packages/tex.scm:6850
+msgid "LaTeX class for producing presentations and slides"
+msgstr ""
+
+#: gnu/packages/tex.scm:6851
+msgid ""
+"The beamer LaTeX class can be used for producing slides.\n"
+"The class works in both PostScript and direct PDF output modes, using the\n"
+"@code{pgf} graphics system for visual effects.  Content is created in the\n"
+"@code{frame} environment, and each frame can be made up of a number of slides\n"
+"using a simple notation for specifying material to appear on each slide within\n"
+"a frame.  Short versions of title, authors, institute can also be specified as\n"
+"optional parameters.  Whole frame graphics are supported by plain frames.  The\n"
+"class supports @code{figure} and @code{table} environments, transparency\n"
+"effects, varying slide transitions and animations."
+msgstr ""
+
+#: gnu/packages/tex.scm:6882
+msgid "Include eXtensible Metadata Platform data in pdfLaTeX"
+msgstr ""
+
+#: gnu/packages/tex.scm:6884
+msgid ""
+"The XMP (eXtensible Metadata platform) is a framework to add metadata to\n"
+"digital material to enhance the workflow in publication.  The essence is that\n"
+"the metadata is stored in an XML file, and this XML stream is then embedded in\n"
+"the file to which it applies."
+msgstr ""
+
+#: gnu/packages/tex.scm:6937
+msgid "PDF/X and PDF/A support for pdfTeX, LuaTeX and XeTeX"
+msgstr ""
+
+#: gnu/packages/tex.scm:6939
+msgid ""
+"This package helps LaTeX users to create PDF/X, PDF/A and other\n"
+"standards-compliant PDF documents with pdfTeX, LuaTeX and XeTeX."
+msgstr ""
+
+#: gnu/packages/tex.scm:6981
+msgid "Macros for documentation of LaTeX classes and packages"
+msgstr ""
+
+#: gnu/packages/tex.scm:6982
+msgid ""
+"The package provides macros and environments to document\n"
+"LaTeX packages and classes.  It is an (as yet unfinished) alternative to the\n"
+"@code{ltxdoc} class and the @code{doc} or @code{xdoc} packages.  The aim is to\n"
+"provide a different layout and more modern styles (using the @code{xcolor},\n"
+"@code{hyperref} packages, etc.)  This is an alpha release, and should probably\n"
+"not (yet) be used with other packages, since the implementation might\n"
+"change."
+msgstr ""
+
+#: gnu/packages/tex.scm:7009
+msgid "PostScript macros for TeX"
+msgstr ""
+
+#: gnu/packages/tex.scm:7010
+msgid ""
+"PSTricks offers an extensive collection of macros for\n"
+"generating PostScript that is usable with most TeX macro formats, including\n"
+"Plain TeX, LaTeX, AMS-TeX, and AMS-LaTeX.  Included are macros for colour,\n"
+"graphics, pie charts, rotation, trees and overlays.  It has many special\n"
+"features, including a wide variety of graphics (picture drawing) macros, with\n"
+"a flexible interface and with colour support.  There are macros for colouring\n"
+"or shading the cells of tables."
+msgstr ""
+
+#: gnu/packages/tex.scm:7034
+msgid "Text and character manipulation in PSTricks"
+msgstr ""
+
+#: gnu/packages/tex.scm:7035
+msgid ""
+"Pst-text is a PSTricks based package for plotting text along\n"
+"a different path and manipulating characters.  It includes the functionality\n"
+"of the old package @code{pst-char}."
+msgstr ""
+
+#: gnu/packages/tex.scm:7059
+msgid "Notes in the margin"
+msgstr ""
+
+#: gnu/packages/tex.scm:7060
+msgid ""
+"This package provides the command @code{\\marginnote} that\n"
+"may be used instead of @code{\\marginpar} at almost every place where\n"
+"@code{\\marginpar} cannot be used, e.g., inside floats, footnotes, or in\n"
+"frames made with the @code{framed} package."
+msgstr ""
+
+#: gnu/packages/tex.scm:7077
+msgid "Determine the currently used TeX engine"
+msgstr ""
+
+#: gnu/packages/tex.scm:7078
+msgid ""
+"This package, which works both for Plain TeX and for\n"
+"LaTeX, defines the @code{\\ifPDFTeX}, @code{\\ifXeTeX}, and @code{\\ifLuaTeX}\n"
+"conditionals for testing which engine is being used for typesetting.  The\n"
+"package also provides the @code{\\RequirePDFTeX}, @code{\\RequireXeTeX}, and\n"
+"@code{\\RequireLuaTeX} commands which throw an error if pdfTeX, XeTeX or\n"
+"LuaTeX (respectively) is not the engine in use."
+msgstr ""
+
+#: gnu/packages/tex.scm:7107
+msgid ""
+"This package provides a collection of simple tools that\n"
+"are part of the LaTeX required tools distribution, comprising the packages:\n"
+"@code{afterpage}, @code{array}, @code{bm}, @code{calc}, @code{dcolumn},\n"
+"@code{delarray}, @code{enumerate}, @code{fileerr}, @code{fontsmpl},\n"
+"@code{ftnright}, @code{hhline}, @code{indentfirst}, @code{layout},\n"
+"@code{longtable}, @code{multicol}, @code{rawfonts}, @code{showkeys},\n"
+"@code{somedefs}, @code{tabularx}, @code{theorem}, @code{trace},\n"
+"@code{varioref}, @code{verbatim}, @code{xr}, and @code{xspace}."
+msgstr ""
+
+#: gnu/packages/tex.scm:7186
+msgid "Extension of the keyval package"
+msgstr ""
+
+#: gnu/packages/tex.scm:7188
+msgid ""
+"This package is an extension of the keyval package and offers additional\n"
+"macros for setting keys and declaring and setting class or package options.\n"
+"The package allows the programmer to specify a prefix to the name of the\n"
+"macros it defines for keys, and to define families of key definitions; these\n"
+"all help use in documents where several packages define their own sets of\n"
+"keys."
+msgstr ""
+
+#: gnu/packages/tex.scm:7215
+msgid "Compile TeX pictures stand-alone or as part of a document"
+msgstr ""
+
+#: gnu/packages/tex.scm:7216
+msgid ""
+"A class and package is provided which allows TeX pictures or\n"
+"other TeX code to be compiled standalone or as part of a main document.\n"
+"Special support for pictures with beamer overlays is also provided.  The\n"
+"package is used in the main document and skips extra preambles in sub-files.\n"
+"The class may be used to simplify the preamble in sub-files.  By default the\n"
+"@code{preview} package is used to display the typeset code without margins.\n"
+"The behaviour in standalone mode may adjusted using a configuration file\n"
+"@code{standalone.cfg} to redefine the standalone environment."
+msgstr ""
+
+#: gnu/packages/tex.scm:7248
+msgid "Comprehensive SI units package"
+msgstr ""
+
+#: gnu/packages/tex.scm:7250
+msgid ""
+"Typesetting values with units requires care to ensure that the combined\n"
+"mathematical meaning of the value plus unit combination is clear.  In\n"
+"particular, the SI units system lays down a consistent set of units with rules\n"
+"on how they are to be used.  However, different countries and publishers have\n"
+"differing conventions on the exact appearance of numbers (and units).  A\n"
+"number of LaTeX packages have been developed to provide consistent application\n"
+"of the various rules.  The @code{siunitx} package takes the best from the\n"
+"existing packages, and adds new features and a consistent interface.  A number\n"
+"of new ideas have been incorporated, to fill gaps in the existing provision.\n"
+"The package also provides backward-compatibility with @code{SIunits},\n"
+"@code{sistyle}, @code{unitsdef} and @code{units}.  The aim is to have one\n"
+"package to handle all of the possible unit-related needs of LaTeX users."
+msgstr ""
+
+#: gnu/packages/tex.scm:7279
+msgid "Publication quality tables in LaTeX"
+msgstr ""
+
+#: gnu/packages/tex.scm:7281
+msgid ""
+"This package enhances the quality of tables in LaTeX, providing extra\n"
+"commands as well as behind-the-scenes optimisation.  Guidelines are given as\n"
+"to what constitutes a good table in this context.  The package offers\n"
+"@code{longtable} compatibility."
+msgstr ""
+
+#: gnu/packages/tex.scm:7300
+msgid "Context sensitive quotation facilities"
+msgstr ""
+
+#: gnu/packages/tex.scm:7301
+msgid ""
+"This package provides advanced facilities for inline and\n"
+"display quotations.  It is designed for a wide range of tasks ranging from the\n"
+"most simple applications to the more complex demands of formal quotations.\n"
+"The facilities include commands, environments, and user-definable 'smart\n"
+"quotes' which dynamically adjust to their context.  Quotation marks are\n"
+"switched automatically if quotations are nested and they can be adjusted to\n"
+"the current language if the babel package is available.  There are additional\n"
+"facilities designed to cope with the more specific demands of academic\n"
+"writing, especially in the humanities and the social sciences.  All quote\n"
+"styles as well as the optional active quotes are freely configurable."
+msgstr ""
+
+#: gnu/packages/tex.scm:7326
+msgid "Support for automation of the LaTeX workflow"
+msgstr ""
+
+#: gnu/packages/tex.scm:7327
+msgid ""
+"The package helps to automate a typical LaTeX\n"
+"workflow that involves running LaTeX several times and running tools\n"
+"such as BibTeX or makeindex.  It will log requests like \"please rerun\n"
+"LaTeX\" or \"please run BibTeX on file X\" to an external file in a\n"
+"machine-readable format.  Compiler scripts and integrated LaTeX\n"
+"editing environments may parse this file to determine the next steps\n"
+"in the workflow.  In sum, the package will do two things:\n"
+"\n"
+"@enumerate\n"
+"@item\n"
+"enable package authors to use LaTeX commands to issue requests, and\n"
+"\n"
+"@item\n"
+"collect all requests from all packages and write them to an external\n"
+"XML file.\n"
+"@end enumerate\n"
+msgstr ""
+
+#: gnu/packages/tex.scm:7359
+msgid "Sophisticated bibliographies in LaTeX"
+msgstr ""
+
+#: gnu/packages/tex.scm:7360
+msgid ""
+"BibLaTeX is a complete reimplementation of the\n"
+"bibliographic facilities provided by LaTeX.  Formatting of the\n"
+"bibliography is entirely controlled by LaTeX macros, facilitating the\n"
+"design of new bibliography and citation styles.  BibLaTeX uses its own\n"
+"data backend program \"biber\" to read and process the bibliographic\n"
+"data.  With biber, the range of features provided by biblatex\n"
+"includes:\n"
+"\n"
+"@enumerate\n"
+"@item\n"
+"full unicode support,\n"
+"\n"
+"@item\n"
+"customisable bibliography labels,\n"
+"\n"
+"@item\n"
+"multiple bibliographies in the same document, and\n"
+"\n"
+"@item\n"
+"subdivided bibliographies, such as bibliographies per chapter or\n"
+"section.\n"
+"@end enumerate\n"
+msgstr ""
+
+#: gnu/packages/tex.scm:7398
+msgid "Marking things to do in a LaTeX document"
+msgstr ""
+
+#: gnu/packages/tex.scm:7399
+msgid ""
+"The @code{todonotes} package lets the user mark\n"
+"things to do later, in a simple and visually appealing way.  The\n"
+"package takes several options to enable customization and finetuning\n"
+"of the visual appearance."
+msgstr ""
+
+#: gnu/packages/tex.scm:7416
+msgid "Typeset physical units and fractions"
+msgstr ""
+
+#: gnu/packages/tex.scm:7417
+msgid ""
+"@code{units} is a package for typesetting physical\n"
+"units in a standard-looking way.  The package is based upon\n"
+"@code{nicefrac}, a package for typing fractions.  @code{nicefrac} is\n"
+"included in the @code{units} bundle."
+msgstr ""
+
+#: gnu/packages/tex.scm:7434
+msgid "Subliminal refinements towards typographical perfection"
+msgstr ""
+
+#: gnu/packages/tex.scm:7435
+msgid ""
+"@code{microtype} provides a LaTeX interface to the\n"
+"micro-typographic extensions that were introduced by pdfTeX and have\n"
+"since propagated to XeTeX and LuaTeX: most prominently character\n"
+"protrusion and font expansion, the adjustment of kerning and interword\n"
+"spacing, hyphenatable letterspacing and the possibility to disable all\n"
+"or selected ligatures.  These features may be applied to customisable\n"
+"sets of fonts.  All micro-typographic aspects of the fonts can be\n"
+"configured in a straight-forward and flexible way.  Settings for\n"
+"various fonts are provided.  An alternative package\n"
+"@code{letterspace}, which also works with plain TeX, is included in\n"
+"the bundle."
+msgstr ""
+
+#: gnu/packages/tex.scm:7459
+msgid "Customising captions in floating environments"
+msgstr ""
+
+#: gnu/packages/tex.scm:7460
+msgid ""
+"The @code{caption} package provides many ways to\n"
+"customise the captions in floating environments like figure and table.\n"
+"Facilities include rotating captions, sideways captions and continued\n"
+"captions (for tables or figures that come in several parts).  A list\n"
+"of compatibility notes, for other packages, is provided in the\n"
+"documentation.  The package also provides the \"caption outside\n"
+"float\" facility, in the same way that simpler packages like\n"
+"@code{capt-ofcapt-of} do.  The package supersedes @code{caption2}.\n"
+"Packages @code{bicaption}, @code{ltcaption}, @code{newfloat},\n"
+"@code{subcaption} and @code{totalcount} are included in the bundle."
+msgstr ""
+
+#: gnu/packages/tex.scm:7489
+msgid ""
+"This package provides a drop-in replacement for the\n"
+"Symbol font from Adobe's basic set."
+msgstr ""
+
+#: gnu/packages/texinfo.scm:90
+#, fuzzy
+#| msgid "Tools and documentation for translation"
+msgid "The GNU documentation format"
+msgstr "Iloj kaj dokumentado por tradukado"
+
+#: gnu/packages/texinfo.scm:92
+msgid ""
+"Texinfo is the official documentation format of the GNU project.  It\n"
+"uses a single source file using explicit commands to produce a final document\n"
+"in any of several supported output formats, such as HTML or PDF.  This\n"
+"package includes both the tools necessary to produce Info documents from\n"
+"their source and the command-line Info reader.  The emphasis of the language\n"
+"is on expressing the content semantically, avoiding physical markup commands."
+msgstr ""
+
+#: gnu/packages/texinfo.scm:189
+msgid "Standalone Info documentation reader"
+msgstr ""
+
+#: gnu/packages/texinfo.scm:221
+msgid "Convert Texinfo to HTML"
+msgstr ""
+
+#: gnu/packages/texinfo.scm:223
+msgid ""
+"Texi2HTML is a Perl script which converts Texinfo source files to HTML\n"
+"output.  It now supports many advanced features, such as internationalization\n"
+"and extremely configurable output formats.\n"
+"\n"
+"Development of Texi2HTML moved to the GNU Texinfo repository in 2010, since it\n"
+"was meant to replace the makeinfo implementation in GNU Texinfo.  The route\n"
+"forward for authors is, in most cases, to alter manuals and build processes as\n"
+"necessary to use the new features of the makeinfo/texi2any implementation of\n"
+"GNU Texinfo.  The Texi2HTML maintainers (one of whom is the principal author\n"
+"of the GNU Texinfo implementation) do not intend to make further releases of\n"
+"Texi2HTML."
+msgstr ""
+
+#: gnu/packages/texinfo.scm:289
+msgid "Lynx-style Info file and man page reader"
+msgstr ""
+
+#: gnu/packages/texinfo.scm:291
+msgid ""
+"Pinfo is an Info file viewer.  Pinfo is similar in use to the Lynx web\n"
+"browser.  You just move across info nodes, and select links, follow them, etc.\n"
+"It supports many colors.  Pinfo also supports viewing of manual pages -- they\n"
+"are colorized like in the midnight commander's viewer, and additionally they\n"
+"are hypertextualized."
+msgstr ""
+
+#: gnu/packages/textutils.scm:89
+msgid "DOS/Mac to Unix and vice versa text file format converter"
+msgstr ""
+
+#: gnu/packages/textutils.scm:91
+msgid ""
+"dos2unix is a tool to convert line breaks in a text file from Unix format\n"
+"to DOS format and vice versa."
+msgstr ""
+
+#: gnu/packages/textutils.scm:111
+msgid "Text encoding converter"
+msgstr ""
+
+#: gnu/packages/textutils.scm:112
+msgid ""
+"The Recode library converts files between character sets and\n"
+"usages.  It recognises or produces over 200 different character sets (or about\n"
+"300 if combined with an iconv library) and transliterates files between almost\n"
+"any pair.  When exact transliteration are not possible, it gets rid of\n"
+"offending characters or falls back on approximations.  The recode program is a\n"
+"handy front-end to the library."
+msgstr ""
+
+#: gnu/packages/textutils.scm:137
+msgid "Text encoding detection tool"
+msgstr ""
+
+#: gnu/packages/textutils.scm:138
+msgid ""
+"Enca (Extremely Naive Charset Analyser) consists of libenca,\n"
+"an encoding detection library, and enca, a command line frontend, integrating\n"
+"libenca and several charset conversion libraries and tools."
+msgstr ""
+
+#: gnu/packages/textutils.scm:195
+msgid "C library for processing UTF-8 Unicode data"
+msgstr ""
+
+#: gnu/packages/textutils.scm:196
+msgid ""
+"utf8proc is a small C library that provides Unicode\n"
+"normalization, case-folding, and other operations for data in the UTF-8\n"
+"encoding, supporting Unicode version 9.0.0."
+msgstr ""
+
+#: gnu/packages/textutils.scm:217 gnu/packages/textutils.scm:738
+msgid "Configuration file parser library"
+msgstr ""
+
+#: gnu/packages/textutils.scm:218
+msgid ""
+"libconfuse is a configuration file parser library.  It\n"
+"supports sections and (lists of) values (strings, integers, floats, booleans\n"
+"or other sections), as well as some other features (such as\n"
+"single/double-quoted strings, environment variable expansion, functions and\n"
+"nested include statements)."
+msgstr ""
+
+#: gnu/packages/textutils.scm:260
+msgid "Gordon's text utils library"
+msgstr ""
+
+#: gnu/packages/textutils.scm:262
+msgid ""
+"libgtextutils is a text utilities library used by the fastx toolkit from\n"
+"the Hannon Lab."
+msgstr ""
+
+#: gnu/packages/textutils.scm:294
+msgid "C++ hash functions for strings"
+msgstr ""
+
+#: gnu/packages/textutils.scm:296
+msgid ""
+"CityHash provides hash functions for strings.  The functions mix the\n"
+"input bits thoroughly but are not suitable for cryptography."
+msgstr ""
+
+#: gnu/packages/textutils.scm:334
+msgid "String library with very low memory overhead"
+msgstr ""
+
+#: gnu/packages/textutils.scm:336
+msgid "Ustr is a string library for C with very low memory overhead."
+msgstr ""
+
+#: gnu/packages/textutils.scm:359
+msgid "Convert between ASCII, hexadecimal and binary representations"
+msgstr ""
+
+#: gnu/packages/textutils.scm:360
+msgid ""
+"The two programs are useful for generating test data, for\n"
+"inspecting binary files, and for interfacing programs that generate textual\n"
+"output to programs that require binary input and conversely.  They can also be\n"
+"useful when it is desired to reformat numbers.\n"
+"\n"
+"@itemize\n"
+"\n"
+"@item @command{ascii2binary} reads input consisting of ascii or hexadecimal\n"
+"   representation numbers separated by whitespace and produces as output\n"
+"   the binary equivalents.  The type and precision of the binary output\n"
+"   is selected using command line flags.\n"
+"\n"
+"@item @command{binary2ascii} reads input consisting of binary numbers\n"
+"   and converts them to their ascii or hexadecimal representation.\n"
+"   Command line flags specify the type and size of the binary numbers\n"
+"   and provide control over the format of the output.\n"
+"   Unsigned integers may be written out in binary, octal, decimal,\n"
+"   or hexadecimal.\n"
+"\n"
+"   Signed integers may be written out only in binary or decimal.  Floating\n"
+"   point numbers may be written out only decimal, either in standard or\n"
+"   scientific notation.  (If you want to examine the binary representation\n"
+"   of floating point numbers, just treat the input as a sequence of unsigned\n"
+"   characters.)\n"
+"\n"
+"@end itemize"
+msgstr ""
+
+#: gnu/packages/textutils.scm:418
+msgid "Find out what is in a Unicode file"
+msgstr ""
+
+#: gnu/packages/textutils.scm:419
+msgid ""
+"Useful tools when working with Unicode files when one\n"
+"doesn't know the writing system, doesn't have the necessary font, needs to\n"
+"inspect invisible characters, needs to find out whether characters have been\n"
+"combined or in what order they occur, or needs statistics on which characters\n"
+"occur.\n"
+"\n"
+"@itemize\n"
+"\n"
+"@item @command{uniname} defaults to printing the character offset of each\n"
+"character, its byte offset, its hex code value, its encoding, the glyph\n"
+"itself, and its name.  It may also be used to validate UTF-8 input.\n"
+"\n"
+"@item @command{unidesc} reports the character ranges to which different\n"
+"portions of the text belong.   It can also be used to identify Unicode encodings\n"
+"(e.g. UTF-16be) flagged by magic numbers.\n"
+"\n"
+"@item @command{unihist} generates a histogram of the characters in its input.\n"
+"\n"
+"@item @command{ExplicateUTF8} is intended for debugging or for learning about\n"
+"Unicode.  It determines and explains the validity of a sequence of bytes as a\n"
+"UTF8 encoding.\n"
+"\n"
+"@item @command{utf8lookup} provides a handy way to look up Unicode characters\n"
+"from the command line.\n"
+"\n"
+"@item @command{unireverse} reverse each line of UTF-8 input\n"
+"character-by-character.\n"
+"\n"
+"@end itemize"
+msgstr ""
+
+#: gnu/packages/textutils.scm:463
+msgid "C/C++ configuration file library"
+msgstr ""
+
+#: gnu/packages/textutils.scm:465
+msgid ""
+"Libconfig is a simple library for manipulating structured configuration\n"
+"files.  This file format is more compact and more readable than XML.  And\n"
+"unlike XML, it is type-aware, so it is not necessary to do string parsing in\n"
+"application code."
+msgstr ""
+
+#: gnu/packages/textutils.scm:486
+msgid "Probabilistic fast file fingerprinting tool"
+msgstr ""
+
+#: gnu/packages/textutils.scm:488
+msgid ""
+"pfff is a tool for calculating a compact digital fingerprint of a file\n"
+"by sampling randomly from the file instead of reading it in full.\n"
+"Consequently, the computation has a flat performance characteristic,\n"
+"correlated with data variation rather than file size.  pfff can be as reliable\n"
+"as existing hashing techniques, with provably negligible risk of collisions."
+msgstr ""
+
+#: gnu/packages/textutils.scm:514
+#, fuzzy
+#| msgid "Multi-format archive and compression library"
+msgid "Regular expression library"
+msgstr "Mult-forma biblioteko por arĥivi kaj densigi"
+
+#: gnu/packages/textutils.scm:515
+msgid ""
+"Oniguruma is a regular expressions library.  The special\n"
+"characteristic of this library is that different character encoding for every\n"
+"regular expression object can be specified."
+msgstr ""
+
+#: gnu/packages/textutils.scm:555
+msgid "Microsoft Word document reader"
+msgstr ""
+
+#: gnu/packages/textutils.scm:556
+msgid ""
+"Antiword is an application for displaying Microsoft Word\n"
+"documents.  It can also convert the document to PostScript or XML.  Only\n"
+"documents made by MS Word version 2 and version 6 or later are supported.  The\n"
+"name comes from: \"The antidote against people who send Microsoft Word files\n"
+"to everybody, because they believe that everybody runs Windows and therefore\n"
+"runs Word\"."
+msgstr ""
+
+#: gnu/packages/textutils.scm:589
+msgid "MS-Word to TeX or plain text converter"
+msgstr ""
+
+#: gnu/packages/textutils.scm:590
+msgid ""
+"@command{catdoc} extracts text from MS-Word files, trying to\n"
+"preserve as many special printable characters as possible.  It supports\n"
+"everything up to Word-97. Also supported are MS Write documents and RTF files.\n"
+"\n"
+"@command{catdoc} does not preserve complex word formatting, but it can\n"
+"translate some non-ASCII characters into TeX escape codes.  It's goal is to\n"
+"extract plain text and allow you to read it and, probably, reformat with TeX,\n"
+"according to TeXnical rules.\n"
+"\n"
+"This package also provides @command{xls2csv}, which extracts data from Excel\n"
+"spreadsheets and outputs it in comma-separated-value format, and\n"
+"@command{catppt}, which extracts data from PowerPoint presentations."
+msgstr ""
+
+#: gnu/packages/textutils.scm:631
+#, fuzzy
+#| msgid "Library for handling TIFF files"
+msgid "Portable C++ library for handling UTF-8"
+msgstr "Biblioteko por trakti dosierojn TIFF"
+
+#: gnu/packages/textutils.scm:632
+msgid ""
+"UTF8-CPP is a C++ library for handling UTF-8 encoded text\n"
+"in a portable way."
+msgstr ""
+
+#: gnu/packages/textutils.scm:700
+msgid "Bayesian text and email classifier"
+msgstr ""
+
+#: gnu/packages/textutils.scm:702
+msgid ""
+"dbacl is a fast Bayesian text and email classifier.  It builds a variety\n"
+"of language models using maximum entropy (minimum divergence) principles, and\n"
+"these can then be used to categorize input data automatically among multiple\n"
+"categories."
+msgstr ""
+
+#: gnu/packages/textutils.scm:740
+msgid "C library for creating and parsing configuration files."
+msgstr ""
+
+#: gnu/packages/textutils.scm:796
+msgid "Utilities to manipulate text and binary files"
+msgstr ""
+
+#: gnu/packages/textutils.scm:797
+msgid ""
+"The drm_tools package contains the following commands:\n"
+"@table @command\n"
+"@item accudate\n"
+"An extended version of the \"date\" program that has sub-second accuracy.\n"
+"@item binformat\n"
+"Format complex binary data into text.\n"
+"@item binload\n"
+"Load data into a binary file using simple commands from the input.\n"
+"@item binorder\n"
+"Sort, merge, search, retrieve or generate test data consisting of fixed size\n"
+"binary records.\n"
+"@item binreplace\n"
+"Find or find/replace in binary files.\n"
+"@item binsplit\n"
+"Split test data consisting of fixed size binary records into one or more\n"
+"output streams.\n"
+"@item chardiff\n"
+"Find changes between two files at the character level.  Unlike \"diff\", it\n"
+"lists just the characters that differ, so if the 40,000th character is\n"
+"different only that one character will be shown, not the entire line.\n"
+"@item columnadd\n"
+"Add columns of integers, decimals, and/or times.\n"
+"@item datasniffer\n"
+"A utility for formatting binary data dumps.\n"
+"@item dmath\n"
+"Double precision interactive command line math calculator.\n"
+"@item extract\n"
+"Extract and emit data from text files based on character or token position.\n"
+"@item execinput\n"
+"A utility that reads from STDIN and executes each line as a command in a\n"
+"sub-process.\n"
+"@item indexed_text\n"
+"A utility for rapid retrieval of text by line numbers, in any order, from a\n"
+"text file.\n"
+"@item mdump\n"
+"Format binary data.\n"
+"@item msgqueue\n"
+"Create message queues and send/receive messages.\n"
+"@item mbin\n"
+"@itemx mbout\n"
+"Multiple buffer in and out.  Used for buffering a lot of data between a slow\n"
+"device and a fast device.  Mostly for buffering streaming tape drives for use\n"
+"with slower network connections, so that streaming is maintained as much as\n"
+"possible to minimize wear on the tape device.\n"
+"@item pockmark\n"
+"Corrupt data streams - useful for testing error correction and data recovery.\n"
+"@item tarsieve\n"
+"Filter, list, or split a tar file.\n"
+"@end table"
+msgstr ""
+
+#: gnu/packages/textutils.scm:872
+msgid "Syntax highlighting text component for Java Swing"
+msgstr ""
+
+#: gnu/packages/textutils.scm:873
+msgid ""
+"RSyntaxTextArea is a syntax highlighting, code folding text\n"
+"component for Java Swing.  It extends @code{JTextComponent} so it integrates\n"
+"completely with the standard @code{javax.swing.text} package.  It is fast and\n"
+"efficient, and can be used in any application that needs to edit or view\n"
+"source code."
+msgstr ""
+
+#: gnu/packages/textutils.scm:911
+msgid "Fast implementation of the edit distance (Levenshtein distance)"
+msgstr ""
+
+#: gnu/packages/textutils.scm:913
+msgid ""
+"This library simply implements Levenshtein distance algorithm with C++\n"
+"and Cython."
+msgstr ""
+
+#: gnu/packages/textutils.scm:937
+msgid "@code{runewidth} provides Go functions to work with string widths"
+msgstr ""
+
+#: gnu/packages/textutils.scm:939
+msgid ""
+"The @code{runewidth} library provides Go functions for padding,\n"
+"measuring and checking the width of strings, with support for East Asian\n"
+"text."
+msgstr ""
+
+#: gnu/packages/textutils.scm:991
+msgid "Recover text from @file{.docx} files, with good formatting"
+msgstr ""
+
+#: gnu/packages/textutils.scm:993
+msgid ""
+"@command{docx2txt} is a Perl based command line utility to convert\n"
+"Microsoft Office @file{.docx} documents to equivalent text documents.  Latest\n"
+"version supports following features during text extraction.\n"
+"\n"
+"@itemize\n"
+"@item Character conversions; currency characters are converted to respective\n"
+"names like Euro.\n"
+"@item Capitalisation of text blocks.\n"
+"@item Center and right justification of text fitting in a line of\n"
+"(configurable) 80 columns.\n"
+"@item Horizontal ruler, line breaks, paragraphs separation, tabs.\n"
+"@item Indicating hyperlinked text along with the hyperlink (configurable).\n"
+"@item Handling (bullet, decimal, letter, roman) lists along with (attempt at)\n"
+"indentation.\n"
+"@end itemize\n"
+msgstr ""
+
+#: gnu/packages/textutils.scm:1037
+msgid "Converter from OpenDocument Text to plain text"
+msgstr ""
+
+#: gnu/packages/textutils.scm:1038
+msgid ""
+"odt2txt is a command-line tool which extracts the text out\n"
+"of OpenDocument Texts, as produced by OpenOffice.org, KOffice, StarOffice and\n"
+"others.\n"
+"\n"
+"odt2txt can also extract text from some file formats similar to OpenDocument\n"
+"Text, such as OpenOffice.org XML (*.sxw), which was used by OpenOffice.org\n"
+"version 1.x and older StarOffice versions.  To a lesser extent, odt2txt may be\n"
+"useful to extract content from OpenDocument spreadsheets (*.ods) and\n"
+"OpenDocument presentations (*.odp)."
+msgstr ""
+
+#: gnu/packages/textutils.scm:1083
+msgid "Convert between Traditional Chinese and Simplified Chinese"
+msgstr ""
+
+#: gnu/packages/textutils.scm:1084
+msgid ""
+"Open Chinese Convert (OpenCC) converts between Traditional\n"
+"Chinese and Simplified Chinese, supporting character-level conversion,\n"
+"phrase-level conversion, variant conversion, and regional idioms among\n"
+"Mainland China, Taiwan, and Hong-Kong."
+msgstr ""
+
+#: gnu/packages/textutils.scm:1118
+msgid "Network Kanji Filter"
+msgstr ""
+
+#: gnu/packages/textutils.scm:1119
+msgid ""
+"Nkf is yet another kanji code converter among networks,\n"
+"hosts and terminals.  It converts input kanji code to designated kanji code\n"
+"such as ISO-2022-JP, Shift_JIS, EUC-JP, UTF-8, UTF-16 or UTF-32."
+msgstr ""
+
+#: gnu/packages/textutils.scm:1137
+msgid "Python module for writing Pandoc filters"
+msgstr ""
+
+#: gnu/packages/textutils.scm:1138
+msgid ""
+"Pandoc is a powerful utility to transform various\n"
+"input formats into a wide range of output formats.  To alter the\n"
+"exported output document, Pandoc allows the usage of filters, which\n"
+"are pipes that read a JSON serialization of the Pandoc AST from stdin,\n"
+"transform it in some way, and write it to stdout.  It allows therefore\n"
+"to alter the processing of Pandoc's supported input formats, for\n"
+"instance one can add new syntax elements to markdown, etc.\n"
+"\n"
+"This package provides Python bindings."
+msgstr ""
+
+#: gnu/packages/textutils.scm:1172
+msgid "Converts terminal escape sequences to HTML"
+msgstr ""
+
+#: gnu/packages/textutils.scm:1173
+msgid ""
+"@command{aha} (Ansi Html Adapter) converts ANSI escape sequences\n"
+"of a Unix terminal to HTML code."
+msgstr ""
+
+#: gnu/packages/version-control.scm:147
+msgid "Version control system supporting both distributed and centralized workflows"
+msgstr ""
+
+#: gnu/packages/version-control.scm:149
+msgid ""
+"GNU Bazaar is a version control system that allows you to record\n"
+"changes to project files over time.  It supports both a distributed workflow\n"
+"as well as the classic centralized workflow."
+msgstr ""
+
+#: gnu/packages/version-control.scm:493
+msgid "Distributed version control system"
+msgstr ""
+
+#: gnu/packages/version-control.scm:495
+msgid ""
+"Git is a free distributed version control system designed to handle\n"
+"everything from small to very large projects with speed and efficiency."
+msgstr ""
+
+#: gnu/packages/version-control.scm:625
+msgid "Simple version control system built on top of Git"
+msgstr ""
+
+#: gnu/packages/version-control.scm:627
+msgid ""
+"Gitless is a Git-compatible version control system that aims to be easy to\n"
+"learn and use.  It simplifies the common workflow by committing changes to\n"
+"tracked files by default and saving any uncommitted changes as part of a branch.\n"
+"\n"
+"The friendly @command{gl} command-line interface gives feedback and helps you\n"
+"figure out what to do next.\n"
+"\n"
+"Gitless is implemented on top of Git and its commits and repositories are\n"
+"indistinguishable from Git's.  You (or other contributors) can always fall back\n"
+"on @command{git}, and use any regular Git hosting service."
+msgstr ""
+
+#: gnu/packages/version-control.scm:654
+msgid "GitHub like contributions calendar for terminal"
+msgstr ""
+
+#: gnu/packages/version-control.scm:655
+msgid ""
+"@code{git-cal} is a script to view commits calendar similar\n"
+"to GitHub contributions calendar."
+msgstr ""
+
+#: gnu/packages/version-control.scm:717
+msgid "Library providing Git core methods"
+msgstr ""
+
+#: gnu/packages/version-control.scm:719
+msgid ""
+"Libgit2 is a portable, pure C implementation of the Git core methods\n"
+"provided as a re-entrant linkable library with a solid API, allowing you to\n"
+"write native speed custom Git applications in any language with bindings."
+msgstr ""
+
+#: gnu/packages/version-control.scm:787
+msgid "Transparent encryption of files in a git repository"
+msgstr ""
+
+#: gnu/packages/version-control.scm:788
+msgid ""
+"git-crypt enables transparent encryption and decryption of\n"
+"files in a git repository.  Files which you choose to protect are encrypted when\n"
+"committed, and decrypted when checked out.  git-crypt lets you freely share a\n"
+"repository containing a mix of public and private content.  git-crypt gracefully\n"
+"degrades, so developers without the secret key can still clone and commit to a\n"
+"repository with encrypted files.  This lets you store your secret material (such\n"
+"as keys or passwords) in the same repository as your code, without requiring you\n"
+"to lock down your entire repository."
+msgstr ""
+
+#: gnu/packages/version-control.scm:823
+msgid "Whole remote repository encryption"
+msgstr ""
+
+#: gnu/packages/version-control.scm:824
+msgid ""
+"git-remote-gcrypt is a Git remote helper to push and pull from\n"
+"repositories encrypted with GnuPG.  It works with the standard Git transports,\n"
+"including repository hosting services like GitLab.\n"
+"\n"
+"Remote helper programs are invoked by Git to handle network transport.  This\n"
+"helper handles @code{gcrypt:} URLs that access a remote repository encrypted\n"
+"with GPG, using our custom format.\n"
+"\n"
+"Supported locations are local, @code{rsync://} and @code{sftp://}, where the\n"
+"repository is stored as a set of files, or instead any Git URL where gcrypt\n"
+"will store the same representation in a Git repository, bridged over arbitrary\n"
+"Git transport.\n"
+"\n"
+"The aim is to provide confidential, authenticated Git storage and\n"
+"collaboration using typical untrusted file hosts or services."
+msgstr ""
+
+#: gnu/packages/version-control.scm:944
+msgid "Web frontend for git repositories"
+msgstr ""
+
+#: gnu/packages/version-control.scm:946
+msgid ""
+"CGit is an attempt to create a fast web interface for the Git SCM, using\n"
+"a built-in cache to decrease server I/O pressure."
+msgstr ""
+
+#: gnu/packages/version-control.scm:980
+msgid "Send notification emails for Git pushes"
+msgstr ""
+
+#: gnu/packages/version-control.scm:982
+msgid ""
+"This hook sends emails describing changes introduced by pushes to a Git\n"
+"repository.  For each reference that was changed, it emits one ReferenceChange\n"
+"email summarizing how the reference was changed, followed by one Revision\n"
+"email for each new commit that was introduced by the reference change.\n"
+"\n"
+"This script is designed to be used as a post-receive hook in a Git\n"
+"repository"
+msgstr ""
+
+#: gnu/packages/version-control.scm:1015
+msgid "Copy directory to the gh-pages branch"
+msgstr ""
+
+#: gnu/packages/version-control.scm:1016
+msgid ""
+"Script that copies a directory to the gh-pages branch (by\n"
+"default) of the repository."
+msgstr ""
+
+#: gnu/packages/version-control.scm:1074
+msgid "Python implementation of the Git object database"
+msgstr ""
+
+#: gnu/packages/version-control.scm:1076
+msgid ""
+"GitDB allows you to access @dfn{bare} Git repositories for reading and\n"
+"writing.  It aims at allowing full access to loose objects as well as packs\n"
+"with performance and scalability in mind.  It operates exclusively on streams,\n"
+"allowing to handle large objects with a small memory footprint."
+msgstr ""
+
+#: gnu/packages/version-control.scm:1112
+#, fuzzy
+#| msgid "Tools and library for working with GIF images"
+msgid "Python library for interacting with Git repositories"
+msgstr "Iloj kaj biblioteko por labori kun bildoj GIF"
+
+#: gnu/packages/version-control.scm:1114
+msgid ""
+"GitPython is a python library used to interact with Git repositories,\n"
+"high-level like git-porcelain, or low-level like git-plumbing.\n"
+"\n"
+"It provides abstractions of Git objects for easy access of repository data,\n"
+"and additionally allows you to access the Git repository more directly using\n"
+"either a pure Python implementation, or the faster, but more resource intensive\n"
+"@command{git} command implementation."
+msgstr ""
+
+#: gnu/packages/version-control.scm:1150
+#, fuzzy
+#| msgid "Command-line tools and library for transforming PDF files"
+msgid "Command-line flags library for shell scripts"
+msgstr "Komandliniaj iloj kaj biblioteko por transformi PDF-dosierojn"
+
+#: gnu/packages/version-control.scm:1152
+msgid ""
+"Shell Flags (shFlags) is a library written to greatly simplify the\n"
+"handling of command-line flags in Bourne based Unix shell scripts (bash, dash,\n"
+"ksh, sh, zsh).  Most shell scripts use getopt for flags processing, but the\n"
+"different versions of getopt on various OSes make writing portable shell\n"
+"scripts difficult.  shFlags instead provides an API that doesn't change across\n"
+"shell and OS versions so the script writer can be confident that the script\n"
+"will work."
+msgstr ""
+
+#: gnu/packages/version-control.scm:1196
+msgid "Git extensions for Vincent Driessen's branching model"
+msgstr ""
+
+#: gnu/packages/version-control.scm:1198
+msgid ""
+"Vincent Driessen's branching model is a git branching and release\n"
+"management strategy that helps developers keep track of features, hotfixes,\n"
+"and releases in bigger software projects.  The git-flow library of git\n"
+"subcommands helps automate some parts of the flow to make working with it a\n"
+"lot easier."
+msgstr ""
+
+#: gnu/packages/version-control.scm:1248
+msgid "Stacked Git"
+msgstr ""
+
+#: gnu/packages/version-control.scm:1250
+msgid ""
+"StGit is a command-line application that provides functionality similar\n"
+"to Quilt (i.e., pushing/popping patches to/from a stack), but using Git\n"
+"instead of @command{diff} and @command{patch}.  StGit stores its patches in a\n"
+"Git repository as normal Git commits, and provides a number of commands to\n"
+"manipulate them in various ways."
+msgstr ""
+
+#: gnu/packages/version-control.scm:1287
+msgid "Version control system for @code{$HOME}"
+msgstr ""
+
+#: gnu/packages/version-control.scm:1289
+msgid ""
+"vcsh version-controls configuration files in several Git repositories,\n"
+"all in one single directory.  They all maintain their working trees without\n"
+"clobbering each other or interfering otherwise.  By default, all Git\n"
+"repositories maintained via vcsh store the actual files in @code{$HOME},\n"
+"though this can be overridden."
+msgstr ""
+
+#: gnu/packages/version-control.scm:1325
+msgid "Run a command over a sequence of commits"
+msgstr ""
+
+#: gnu/packages/version-control.scm:1327
+msgid ""
+"git-test-sequence is similar to an automated git bisect except it’s\n"
+"linear.  It will test every change between two points in the DAG.  It will\n"
+"also walk each side of a merge and test those changes individually."
+msgstr ""
+
+#: gnu/packages/version-control.scm:1440
+msgid "Git access control layer"
+msgstr ""
+
+#: gnu/packages/version-control.scm:1442
+msgid ""
+"Gitolite is an access control layer on top of Git, providing fine access\n"
+"control to Git repositories."
+msgstr ""
+
+#: gnu/packages/version-control.scm:1551
+msgid "Framework for managing and maintaining multi-language pre-commit hooks"
+msgstr ""
+
+#: gnu/packages/version-control.scm:1553
+msgid ""
+"Pre-commit is a multi-language package manager for pre-commit hooks.  You\n"
+"specify a list of hooks you want and pre-commit manages the installation and\n"
+"execution of any hook written in any language before every commit."
+msgstr ""
+
+#: gnu/packages/version-control.scm:1632
+msgid "Decentralized version control system"
+msgstr ""
+
+#: gnu/packages/version-control.scm:1634
+msgid ""
+"Mercurial is a free, distributed source control management tool.\n"
+"It efficiently handles projects of any size\n"
+"and offers an easy and intuitive interface."
+msgstr ""
+
+#: gnu/packages/version-control.scm:1660
+msgid "Flexible evolution of Mercurial history"
+msgstr ""
+
+#: gnu/packages/version-control.scm:1661
+msgid ""
+"Evolve is a Mercurial extension for faster and safer mutable\n"
+"history.  It implements the changeset evolution concept for Mercurial."
+msgstr ""
+
+#: gnu/packages/version-control.scm:1694
+msgid "HTTP and WebDAV client library"
+msgstr ""
+
+#: gnu/packages/version-control.scm:1696
+msgid ""
+"Neon is an HTTP and WebDAV client library, with a C interface and the\n"
+"following features:\n"
+"@enumerate\n"
+"@item High-level wrappers for common HTTP and WebDAV operations (GET, MOVE,\n"
+"  DELETE, etc.);\n"
+"@item low-level interface to the HTTP request/response engine, allowing the use\n"
+"  of arbitrary HTTP methods, headers, etc.;\n"
+"@item authentication support including Basic and Digest support, along with\n"
+"  GSSAPI-based Negotiate on Unix, and SSPI-based Negotiate/NTLM on Win32;\n"
+"@item SSL/TLS support using OpenSSL or GnuTLS, exposing an abstraction layer for\n"
+"  verifying server certificates, handling client certificates, and examining\n"
+"  certificate properties, smartcard-based client certificates are also\n"
+"  supported via a PKCS#11 wrapper interface;\n"
+"@item abstract interface to parsing XML using libxml2 or expat, and wrappers for\n"
+"  simplifying handling XML HTTP response bodies;\n"
+"@item WebDAV metadata support, wrappers for PROPFIND and PROPPATCH to simplify\n"
+"  property manipulation.\n"
+"@end enumerate\n"
+msgstr ""
+
+#: gnu/packages/version-control.scm:1790
+msgid "Revision control system"
+msgstr ""
+
+#: gnu/packages/version-control.scm:1792
+msgid ""
+"@dfn{Subversion} (svn) exists to be recognized and adopted as a\n"
+"centralized version control system characterized by its\n"
+"reliability as a safe haven for valuable data; the simplicity of its model and\n"
+"usage; and its ability to support the needs of a wide variety of users and\n"
+"projects, from individuals to large-scale enterprise operations."
+msgstr ""
+
+#: gnu/packages/version-control.scm:1823
+msgid "Per-file local revision control system"
+msgstr ""
+
+#: gnu/packages/version-control.scm:1825
+msgid ""
+"RCS is the original Revision Control System.  It works on a\n"
+"file-by-file basis, in contrast to subsequent version control systems such as\n"
+"CVS, Subversion, and Git.  This can make it suitable for system\n"
+"administration files, for example, which are often inherently local to one\n"
+"machine."
+msgstr ""
+
+#: gnu/packages/version-control.scm:1853
+msgid "Historical centralized version control system"
+msgstr ""
+
+#: gnu/packages/version-control.scm:1855
+msgid ""
+"CVS is a version control system, an important component of Source\n"
+"Configuration Management (SCM).  Using it, you can record the history of\n"
+"sources files, and documents.  It fills a similar role to the free software\n"
+"RCS, PRCS, and Aegis packages."
+msgstr ""
+
+#: gnu/packages/version-control.scm:1889
+msgid "Export an RCS or CVS history as a fast-import stream"
+msgstr ""
+
+#: gnu/packages/version-control.scm:1890
+msgid ""
+"This program analyzes a collection of RCS files in a CVS\n"
+"repository (or outside of one) and, when possible, emits an equivalent history\n"
+"in the form of a fast-import stream.  Not all possible histories can be\n"
+"rendered this way; the program tries to emit useful warnings when it can't.\n"
+"\n"
+"The program can also produce a visualization of the resulting commit directed\n"
+"acyclic graph (DAG) in the input format of @uref{http://www.graphviz.org,\n"
+"Graphviz}.  The package also includes @command{cvssync}, a tool for mirroring\n"
+"masters from remote CVS hosts."
+msgstr ""
+
+#: gnu/packages/version-control.scm:1918
+msgid "Version-control-agnostic ChangeLog diff and commit tool"
+msgstr ""
+
+#: gnu/packages/version-control.scm:1920
+msgid ""
+"The vc-dwim package contains two tools, \"vc-dwim\" and \"vc-chlog\".\n"
+"vc-dwim is a tool that simplifies the task of maintaining a ChangeLog and\n"
+"using version control at the same time, for example by printing a reminder\n"
+"when a file change has been described in the ChangeLog but the file has not\n"
+"been added to the VC.  vc-chlog scans changed files and generates\n"
+"standards-compliant ChangeLog entries based on the changes that it detects."
+msgstr ""
+
+#: gnu/packages/version-control.scm:1945
+msgid "Make histograms from the output of @command{diff}"
+msgstr ""
+
+#: gnu/packages/version-control.scm:1947
+msgid ""
+"Diffstat reads the output of @command{diff} and displays a histogram of\n"
+"the insertions, deletions, and modifications per file.  It is useful for\n"
+"reviewing large, complex patch files."
+msgstr ""
+
+#: gnu/packages/version-control.scm:1986
+msgid "File-based version control like SCCS"
+msgstr ""
+
+#: gnu/packages/version-control.scm:1987
+msgid ""
+"GNU CSSC provides a replacement for the legacy Unix source\n"
+"code control system SCCS.  This allows old code still under that system to be\n"
+"accessed and migrated on modern systems."
+msgstr ""
+
+#: gnu/packages/version-control.scm:2078
+msgid "Project change supervisor"
+msgstr ""
+
+#: gnu/packages/version-control.scm:2079
+msgid ""
+"Aegis is a project change supervisor, and performs some of\n"
+"the Software Configuration Management needed in a CASE environment.  Aegis\n"
+"provides a framework within which a team of developers may work on many\n"
+"changes to a program independently, and Aegis coordinates integrating these\n"
+"changes back into the master source of the program, with as little disruption\n"
+"as possible.  Resolution of contention for source files, a major headache for\n"
+"any project with more than one developer, is one of Aegis's major functions."
+msgstr ""
+
+#: gnu/packages/version-control.scm:2153
+msgid "Edit version-control repository history"
+msgstr ""
+
+#: gnu/packages/version-control.scm:2154
+msgid ""
+"Reposurgeon enables risky operations that version-control\n"
+"systems don't want to let you do, such as editing past comments and metadata\n"
+"and removing commits.  It works with any version control system that can\n"
+"export and import Git fast-import streams, including Git, Mercurial, Fossil,\n"
+"Bazaar, CVS, RCS, and Src.  It can also read Subversion dump files directly\n"
+"and can thus be used to script production of very high-quality conversions\n"
+"from Subversion to any supported Distributed Version Control System (DVCS)."
+msgstr ""
+
+#: gnu/packages/version-control.scm:2193
+msgid "Ncurses-based text user interface for Git"
+msgstr ""
+
+#: gnu/packages/version-control.scm:2195
+msgid ""
+"Tig is an ncurses text user interface for Git, primarily intended as\n"
+"a history browser.  It can also stage hunks for commit, or colorize the\n"
+"output of the @code{git} command."
+msgstr ""
+
+#: gnu/packages/version-control.scm:2217
+msgid "Print the modification time of the latest file"
+msgstr ""
+
+#: gnu/packages/version-control.scm:2219
+msgid ""
+"Recursively find the newest file in a file tree and print its\n"
+"modification time."
+msgstr ""
+
+#: gnu/packages/version-control.scm:2264
+msgid "Multiple repository management tool"
+msgstr ""
+
+#: gnu/packages/version-control.scm:2266
+msgid ""
+"Myrepos provides the @code{mr} command, which maps an operation (e.g.,\n"
+"fetching updates) over a collection of version control repositories.  It\n"
+"supports a large number of version control systems: Git, Subversion,\n"
+"Mercurial, Bazaar, Darcs, CVS, Fossil, and Veracity."
+msgstr ""
+
+#: gnu/packages/version-control.scm:2303
+msgid "Framework to smartly mirror git repositories"
+msgstr ""
+
+#: gnu/packages/version-control.scm:2304
+msgid ""
+"Grokmirror enables replicating large git repository\n"
+"collections efficiently.  Mirrors decide to clone and update repositories\n"
+"based on a manifest file published by servers."
+msgstr ""
+
+#: gnu/packages/version-control.scm:2346
+msgid "Use rclone-supported cloud storage providers with git-annex"
+msgstr ""
+
+#: gnu/packages/version-control.scm:2347
+msgid ""
+"This wrapper around rclone makes any destination supported\n"
+"by rclone usable with git-annex."
+msgstr ""
+
+#: gnu/packages/version-control.scm:2403
+#, fuzzy
+#| msgid "The SQLite database management system"
+msgid "Software configuration management system"
+msgstr "La datumbaza administra sistemo SQLite"
+
+#: gnu/packages/version-control.scm:2405
+msgid ""
+"Fossil is a distributed source control management system which supports\n"
+"access and administration over HTTP CGI or via a built-in HTTP server.  It has\n"
+"a built-in wiki, built-in file browsing, built-in tickets system, etc."
+msgstr ""
+
+#: gnu/packages/version-control.scm:2433
+msgid "Static git page generator"
+msgstr ""
+
+#: gnu/packages/version-control.scm:2434
+msgid ""
+"Stagit creates static pages for git repositories, the results can\n"
+"be served with a HTTP file server of your choice."
+msgstr ""
+
+#: gnu/packages/version-control.scm:2469
+msgid "3D visualisation tool for source control repositories"
+msgstr ""
+
+#: gnu/packages/version-control.scm:2470
+msgid ""
+"@code{gource} provides a software version control\n"
+"visualization.  The repository is displayed as a tree where the root of the\n"
+"repository is the centre, directories are branches and files are leaves.\n"
+"Contributors to the source code appear and disappear as they contribute to\n"
+"specific files and directories."
+msgstr ""
+
+#: gnu/packages/version-control.scm:2516
+msgid "Simple revision control"
+msgstr ""
+
+#: gnu/packages/version-control.scm:2519
+#, scheme-format
+msgid ""
+"SRC (or src) is simple revision control, a version-control system for\n"
+"single-file projects by solo developers and authors.  It modernizes the\n"
+"venerable RCS, hence the anagrammatic acronym.  The design is tuned for use\n"
+"cases like all those little scripts in your @file{~/bin} directory, or a\n"
+"directory full of HOWTOs."
+msgstr ""
+
+#: gnu/packages/version-control.scm:2571
+msgid "Determine when a commit was merged into a Git branch"
+msgstr ""
+
+#: gnu/packages/version-control.scm:2572
+msgid ""
+"This Git extension defines a subcommand,\n"
+"@code{when-merged}, whose core operation is to find the merge that brought a\n"
+"given commit into the specified ref(s).  It has various options that control\n"
+"how information about the merge is displayed."
+msgstr ""
+
+#: gnu/packages/version-control.scm:2616
+msgid "Incremental merge for Git"
+msgstr ""
+
+#: gnu/packages/version-control.scm:2617
+msgid ""
+"This Git extension defines a subcommand, @code{imerge},\n"
+"which performs an incremental merge between two branches.  Its two primary\n"
+"design goals are to reduce the pain of resolving merge conflicts by finding\n"
+"the smallest possible conflicts and to allow a merge to be saved, tested,\n"
+"interrupted, published, and collaborated on while in progress."
+msgstr ""
+
+#: gnu/packages/version-control.scm:2666
+msgid "Git extension for versioning large files"
+msgstr ""
+
+#: gnu/packages/version-control.scm:2668
+msgid ""
+"Git Large File Storage (LFS) replaces large files such as audio samples,\n"
+"videos, datasets, and graphics with text pointers inside Git, while storing the\n"
+"file contents on a remote server."
+msgstr ""
+
+#: gnu/packages/version-control.scm:2721
+msgid "Historical distributed version-control system"
+msgstr ""
+
+#: gnu/packages/version-control.scm:2723
+msgid ""
+"GNU Arch, aka. @code{tla}, was one of the first free distributed\n"
+"version-control systems (DVCS).  It saw its last release in 2006.  This\n"
+"package is provided for users who need to recover @code{tla} repositories and\n"
+"for historians."
+msgstr ""
+
+#: gnu/packages/version-control.scm:2780
+msgid "Git implementation library"
+msgstr ""
+
+#: gnu/packages/version-control.scm:2781
+#, fuzzy
+#| msgid "This package provides an database interface for Perl."
+msgid "This package provides a Git implementation library."
+msgstr "Tiu ĉi pako provizas datumbazan interfacon por Perl."
+
+#: gnu/packages/virtualization.scm:298
+msgid "Machine emulator and virtualizer"
+msgstr ""
+
+#: gnu/packages/virtualization.scm:300
+msgid ""
+"QEMU is a generic machine emulator and virtualizer.\n"
+"\n"
+"When used as a machine emulator, QEMU can run OSes and programs made for one\n"
+"machine (e.g. an ARM board) on a different machine---e.g., your own PC.  By\n"
+"using dynamic translation, it achieves very good performance.\n"
+"\n"
+"When used as a virtualizer, QEMU achieves near native performances by\n"
+"executing the guest code directly on the host CPU.  QEMU supports\n"
+"virtualization when executing under the Xen hypervisor or using\n"
+"the KVM kernel module in Linux.  When using KVM, QEMU can virtualize x86,\n"
+"server and embedded PowerPC, and S390 guests."
+msgstr ""
+
+#: gnu/packages/virtualization.scm:324
+msgid "Machine emulator and virtualizer (without GUI) for the host architecture"
+msgstr ""
+
+#: gnu/packages/virtualization.scm:737
+msgid "Cluster-based virtual machine management system"
+msgstr ""
+
+#: gnu/packages/virtualization.scm:739
+msgid ""
+"Ganeti is a virtual machine management tool built on top of existing\n"
+"virtualization technologies such as Xen or KVM.  Ganeti controls:\n"
+"\n"
+"@itemize @bullet\n"
+"@item Disk creation management;\n"
+"@item Operating system installation for instances (in co-operation with\n"
+"OS-specific install scripts); and\n"
+"@item Startup, shutdown, and failover between physical systems.\n"
+"@end itemize\n"
+"\n"
+"Ganeti is designed to facilitate cluster management of virtual servers and\n"
+"to provide fast and simple recovery after physical failures, using\n"
+"commodity hardware."
+msgstr ""
+
+#: gnu/packages/virtualization.scm:775
+msgid "Guix OS integration for Ganeti"
+msgstr ""
+
+#: gnu/packages/virtualization.scm:777
+msgid ""
+"This package provides a guest OS definition for Ganeti that uses\n"
+"Guix to build virtual machines."
+msgstr ""
+
+#: gnu/packages/virtualization.scm:870
+msgid "Debian OS integration for Ganeti"
+msgstr ""
+
+#: gnu/packages/virtualization.scm:872
+msgid ""
+"This package provides a guest OS definition for Ganeti.  It installs\n"
+"Debian or a derivative using @command{debootstrap}."
+msgstr ""
+
+#: gnu/packages/virtualization.scm:932
+msgid "Operating system information database"
+msgstr ""
+
+#: gnu/packages/virtualization.scm:933
+msgid ""
+"libosinfo is a GObject based library API for managing\n"
+"information about operating systems, hypervisors and the (virtual) hardware\n"
+"devices they can support.  It includes a database containing device metadata\n"
+"and provides APIs to match/identify optimal devices for deploying an operating\n"
+"system on a hypervisor.  Via GObject Introspection, the API is available in\n"
+"all common programming languages.  Vala bindings are also provided."
+msgstr ""
+
+#: gnu/packages/virtualization.scm:982
+msgid "Linux container tools"
+msgstr ""
+
+#: gnu/packages/virtualization.scm:985
+msgid ""
+"LXC is a userspace interface for the Linux kernel containment features.\n"
+"Through a powerful API and simple tools, it lets Linux users easily create and\n"
+"manage system or application containers."
+msgstr ""
+
+#: gnu/packages/virtualization.scm:1079
+msgid "Simple API for virtualization"
+msgstr ""
+
+#: gnu/packages/virtualization.scm:1080
+msgid ""
+"Libvirt is a C toolkit to interact with the virtualization\n"
+"capabilities of recent versions of Linux.  The library aims at providing long\n"
+"term stable C API initially for the Xen paravirtualization but should be able\n"
+"to integrate other virtualization mechanisms if needed."
+msgstr ""
+
+#: gnu/packages/virtualization.scm:1115
+msgid "GLib wrapper around libvirt"
+msgstr ""
+
+#: gnu/packages/virtualization.scm:1116
+msgid ""
+"libvirt-glib wraps the libvirt library to provide a\n"
+"high-level object-oriented API better suited for glib-based applications, via\n"
+"three libraries:\n"
+"\n"
+"@enumerate\n"
+"@item libvirt-glib - GLib main loop integration & misc helper APIs\n"
+"@item libvirt-gconfig - GObjects for manipulating libvirt XML documents\n"
+"@item libvirt-gobject - GObjects for managing libvirt objects\n"
+"@end enumerate\n"
+msgstr ""
+
+#: gnu/packages/virtualization.scm:1159
+#, fuzzy
+#| msgid "Python bindings for cairo"
+msgid "Python bindings to libvirt"
+msgstr "Bindoj de Python por Cairo"
+
+#: gnu/packages/virtualization.scm:1160
+msgid ""
+"This package provides Python bindings to the libvirt\n"
+"virtualization library."
+msgstr ""
+
+#: gnu/packages/virtualization.scm:1278
+#, fuzzy
+#| msgid "Managing tar archives"
+msgid "Manage virtual machines"
+msgstr "Administrado de arĥivoj tar"
+
+#: gnu/packages/virtualization.scm:1280
+msgid ""
+"The virt-manager application is a desktop user interface for managing\n"
+"virtual machines through libvirt.  It primarily targets KVM VMs, but also\n"
+"manages Xen and LXC (Linux containers).  It presents a summary view of running\n"
+"domains, their live performance and resource utilization statistics."
+msgstr ""
+
+#: gnu/packages/virtualization.scm:1387
+msgid "Checkpoint and restore in user space"
+msgstr ""
+
+#: gnu/packages/virtualization.scm:1388
+msgid ""
+"Using this tool, you can freeze a running application (or\n"
+"part of it) and checkpoint it to a hard drive as a collection of files.  You\n"
+"can then use the files to restore and run the application from the point it\n"
+"was frozen at.  The distinctive feature of the CRIU project is that it is\n"
+"mainly implemented in user space."
+msgstr ""
+
+#: gnu/packages/virtualization.scm:1414
+msgid "Backup and restore QEMU machines"
+msgstr ""
+
+#: gnu/packages/virtualization.scm:1415
+msgid ""
+"qmpbackup is designed to create and restore full and\n"
+"incremental backups of running QEMU virtual machines via QMP, the QEMU\n"
+"Machine Protocol."
+msgstr ""
+
+#: gnu/packages/virtualization.scm:1479
+msgid "KVM Frame Relay (KVMFR) implementation"
+msgstr ""
+
+#: gnu/packages/virtualization.scm:1480
+msgid ""
+"Looking Glass allows the use of a KVM (Kernel-based Virtual\n"
+"Machine) configured for VGA PCI Pass-through without an attached physical\n"
+"monitor, keyboard or mouse.  It displays the VM's rendered contents on your main\n"
+"monitor/GPU."
+msgstr ""
+
+#: gnu/packages/virtualization.scm:1537
+msgid "Open container initiative runtime"
+msgstr ""
+
+#: gnu/packages/virtualization.scm:1540
+msgid ""
+"@command{runc} is a command line client for running applications\n"
+"packaged according to the\n"
+"@uref{https://github.com/opencontainers/runtime-spec/blob/master/spec.md, Open\n"
+"Container Initiative (OCI) format} and is a compliant implementation of the\n"
+"Open Container Initiative specification."
+msgstr ""
+
+#: gnu/packages/virtualization.scm:1586
+msgid "Tool for modifying Open Container images"
+msgstr ""
+
+#: gnu/packages/virtualization.scm:1588
+msgid ""
+"@command{umoci} is a tool that allows for high-level modification of an\n"
+"Open Container Initiative (OCI) image layout and its tagged images."
+msgstr ""
+
+#: gnu/packages/virtualization.scm:1634
+msgid "Interact with container images and container image registries"
+msgstr ""
+
+#: gnu/packages/virtualization.scm:1636
+msgid ""
+"@command{skopeo} is a command line utility providing various operations\n"
+"with container images and container image registries.  It can:\n"
+"@enumerate\n"
+"\n"
+"@item Copy container images between various containers image stores,\n"
+"converting them as necessary.\n"
+"\n"
+"@item Convert a Docker schema 2 or schema 1 container image to an OCI image.\n"
+"\n"
+"@item Inspect a repository on a container registry without needlessly pulling\n"
+"the image.\n"
+"\n"
+"@item Sign and verify container images.\n"
+"\n"
+"@item Delete container images from a remote container registry.\n"
+"\n"
+"@end enumerate"
+msgstr ""
+
+#: gnu/packages/virtualization.scm:1670
+#, fuzzy
+#| msgid "Python bindings for cairo"
+msgid "Python bindings for Vagrant"
+msgstr "Bindoj de Python por Cairo"
+
+#: gnu/packages/virtualization.scm:1672
+msgid ""
+"Python-vagrant is a Python module that provides a thin wrapper around the\n"
+"@code{vagrant} command line executable, allowing programmatic control of Vagrant\n"
+"virtual machines."
+msgstr ""
+
+#: gnu/packages/virtualization.scm:1726
+msgid "Unprivileged sandboxing tool"
+msgstr ""
+
+#: gnu/packages/virtualization.scm:1727
+msgid ""
+"Bubblewrap is aimed at running applications in a sandbox,\n"
+"restricting their access to parts of the operating system or user data such as\n"
+"the home directory.  Bubblewrap always creates a new mount namespace, and the\n"
+"user can specify exactly what parts of the file system should be made visible\n"
+"in the sandbox.  These directories are mounted with the @code{nodev} option\n"
+"by default and can be made read-only."
+msgstr ""
+
+#: gnu/packages/virtualization.scm:1752
+msgid "Emulator for x86 PC"
+msgstr ""
+
+#: gnu/packages/virtualization.scm:1754
+msgid ""
+"Bochs is an emulator which can emulate Intel x86 CPU, common I/O\n"
+"devices, and a custom BIOS.  It can also be compiled to emulate many different\n"
+"x86 CPUs, from early 386 to the most recent x86-64 Intel and AMD processors.\n"
+"Bochs can run most Operating Systems inside the emulation including Linux,\n"
+"DOS or Microsoft Windows."
+msgstr ""
+
+#: gnu/packages/virtualization.scm:1956
+msgid "Xen Virtual Machine Monitor"
+msgstr ""
+
+#: gnu/packages/virtualization.scm:1957
+msgid ""
+"This package provides the Xen Virtual Machine Monitor\n"
+"which is a hypervisor."
+msgstr ""
+
+#: gnu/packages/virtualization.scm:1992
+msgid "Tools for managing the osinfo database"
+msgstr ""
+
+#: gnu/packages/virtualization.scm:1993
+msgid ""
+"This package contains a set of tools to assist\n"
+"administrators and developers in managing the database."
+msgstr ""
+
+#: gnu/packages/virtualization.scm:2027
+msgid "Database of information about operating systems"
+msgstr ""
+
+#: gnu/packages/virtualization.scm:2028
+msgid ""
+"Osinfo-db provides the database files for use with the\n"
+"libosinfo library.  It provides information about guest operating systems for\n"
+"use with virtualization provisioning tools"
+msgstr ""
+
+#: gnu/packages/webkit.scm:88
+#, fuzzy
+#| msgid "Wrapper library for imlib2"
+msgid "General-purpose library for WPE"
+msgstr "Ĉirkaŭira biblioteko por imlib2"
+
+#: gnu/packages/webkit.scm:89
+msgid ""
+"LibWPE is general-purpose library specifically developed for\n"
+"the WPE-flavored port of WebKit."
+msgstr ""
+
+#: gnu/packages/webkit.scm:116
+msgid "Wayland WPE backend"
+msgstr ""
+
+#: gnu/packages/webkit.scm:118
+msgid ""
+"This package provides a backend implementation for the WPE WebKit\n"
+"engine that uses Wayland for graphics output."
+msgstr ""
+
+#: gnu/packages/webkit.scm:212
+msgid "WebKit port optimized for embedded devices"
+msgstr ""
+
+#: gnu/packages/webkit.scm:213
+msgid ""
+"WPE WebKit allows embedders to create simple and performant\n"
+"systems based on Web platform technologies.  It is designed with hardware\n"
+"acceleration in mind, leveraging common 3D graphics APIs for best performance."
+msgstr ""
+
+#: gnu/packages/webkit.scm:342
+msgid "Web content engine for GTK+"
+msgstr ""
+
+#: gnu/packages/webkit.scm:344
+msgid ""
+"WebKitGTK+ is a full-featured port of the WebKit rendering engine,\n"
+"suitable for projects requiring any kind of web integration, from hybrid\n"
+"HTML/CSS applications to full-fledged web browsers."
+msgstr ""
+
+#: gnu/packages/web.scm:185
+msgid "Featureful HTTP server"
+msgstr ""
+
+#: gnu/packages/web.scm:187
+msgid ""
+"The Apache HTTP Server Project is a collaborative software development\n"
+"effort aimed at creating a robust, commercial-grade, featureful, and\n"
+"freely-available source code implementation of an HTTP (Web) server.  The\n"
+"project is jointly managed by a group of volunteers located around the world,\n"
+"using the Internet and the Web to communicate, plan, and develop the server\n"
+"and its related documentation."
+msgstr ""
+
+#: gnu/packages/web.scm:219
+msgid "Apache HTTPD module for Python WSGI applications"
+msgstr ""
+
+#: gnu/packages/web.scm:221
+msgid ""
+"The mod_wsgi module for the Apache HTTPD Server adds support for running\n"
+"applications that support the Python @acronym{WSGI, Web Server Gateway\n"
+"Interface} specification."
+msgstr ""
+
+#: gnu/packages/web.scm:309
+msgid "HTTP and reverse proxy server"
+msgstr ""
+
+#: gnu/packages/web.scm:311
+msgid ""
+"Nginx (\"engine X\") is a high-performance web and reverse proxy server\n"
+"created by Igor Sysoev.  It can be used both as a stand-alone web server\n"
+"and as a proxy to reduce the load on back-end HTTP or mail servers."
+msgstr ""
+
+#: gnu/packages/web.scm:369
+msgid "Documentation for the nginx web server"
+msgstr ""
+
+#: gnu/packages/web.scm:371
+#, fuzzy
+#| msgid "This package provides a dictionary for the GNU Aspell spell checker."
+msgid "This package provides HTML documentation for the nginx web server."
+msgstr "Tiu ĉi pako provizas vortaron por la literumilo GNU Aspell."
+
+#: gnu/packages/web.scm:498
+msgid "Nginx module for parsing the Accept-Language HTTP header"
+msgstr ""
+
+#: gnu/packages/web.scm:500
+msgid ""
+"This nginx module parses the Accept-Language field in HTTP headers and\n"
+"chooses the most suitable locale for the user from the list of locales\n"
+"supported at your website."
+msgstr ""
+
+#: gnu/packages/web.scm:545
+msgid "XSLScript with NGinx specific modifications"
+msgstr ""
+
+#: gnu/packages/web.scm:547
+msgid ""
+"XSLScript is a terse notation for writing complex XSLT stylesheets.\n"
+"This is modified version, specifically intended for use with the NGinx\n"
+"documentation."
+msgstr ""
+
+#: gnu/packages/web.scm:605
+msgid "Lightweight HTTP and reverse proxy server"
+msgstr ""
+
+#: gnu/packages/web.scm:607
+msgid ""
+"Lighttpd is a secure, fast, compliant, and very flexible web-server that\n"
+"has been optimized for high-performance environments.  It has a very low\n"
+"memory footprint compared to other webservers.  Its features include FastCGI,\n"
+"CGI, authentication, output compression, URL rewriting and many more."
+msgstr ""
+
+#: gnu/packages/web.scm:636
+msgid "Language-independent, high-performant extension to CGI"
+msgstr ""
+
+#: gnu/packages/web.scm:637
+msgid ""
+"FastCGI is a language-independent, scalable extension to CGI\n"
+"that provides high performance without the limitations of server specific\n"
+"APIs."
+msgstr ""
+
+#: gnu/packages/web.scm:676
+msgid "Simple server for running CGI applications over FastCGI"
+msgstr ""
+
+#: gnu/packages/web.scm:677
+msgid ""
+"Fcgiwrap is a simple server for running CGI applications\n"
+"over FastCGI.  It hopes to provide clean CGI support to Nginx (and other web\n"
+"servers that may need it)."
+msgstr ""
+
+#: gnu/packages/web.scm:707
+msgid "PSGI/Plack web server"
+msgstr ""
+
+#: gnu/packages/web.scm:708
+msgid ""
+"Starman is a PSGI perl web server that has unique features\n"
+"such as high performance, preforking, signal support, superdaemon awareness,\n"
+"and UNIX socket support."
+msgstr ""
+
+#: gnu/packages/web.scm:740
+msgid "Java Web Start"
+msgstr ""
+
+#: gnu/packages/web.scm:742
+msgid ""
+"IcedTea-Web is an implementation of the @dfn{Java Network Launching\n"
+"Protocol}, also known as Java Web Start.  This package provides tools and\n"
+"libraries for working with JNLP applets."
+msgstr ""
+
+#: gnu/packages/web.scm:765
+#, fuzzy
+#| msgid "The GNU C Library"
+msgid "JSON C library"
+msgstr "La Biblioteko GNU C"
+
+#: gnu/packages/web.scm:767
+msgid ""
+"Jansson is a C library for encoding, decoding and manipulating JSON\n"
+"data."
+msgstr ""
+
+#: gnu/packages/web.scm:786
+#, fuzzy
+#| msgid "Full chess implementation"
+msgid "JSON implementation in C"
+msgstr "Kompleta realigo de ŝako"
+
+#: gnu/packages/web.scm:788
+msgid ""
+"JSON-C implements a reference counting object model that allows you to\n"
+"easily construct JSON objects in C, output them as JSON-formatted strings and\n"
+"parse JSON-formatted strings back into the C representation of JSON objects.\n"
+"It aims to conform to RFC 7159."
+msgstr ""
+
+#: gnu/packages/web.scm:872
+msgid "JSON parser written in ANSI C"
+msgstr ""
+
+#: gnu/packages/web.scm:873
+msgid ""
+"This package provides a very low footprint JSON parser\n"
+"written in portable ANSI C.\n"
+"\n"
+"@itemize\n"
+"@item BSD licensed with no dependencies (i.e. just drop the C file into your\n"
+"project)\n"
+"@item Never recurses or allocates more memory than it needs\n"
+"@item Very simple API with operator sugar for C++\n"
+"@end itemize"
+msgstr ""
+
+#: gnu/packages/web.scm:917
+msgid "Library that maps JSON data to QVariant objects"
+msgstr ""
+
+#: gnu/packages/web.scm:918
+msgid ""
+"QJson is a Qt-based library that maps JSON data to\n"
+"@code{QVariant} objects.  JSON arrays will be mapped to @code{QVariantList}\n"
+"instances, while JSON's objects will be mapped to @code{QVariantMap}."
+msgstr ""
+
+#: gnu/packages/web.scm:962
+msgid "Qt-based C++ library for OAuth authorization scheme"
+msgstr ""
+
+#: gnu/packages/web.scm:963
+msgid ""
+"QOAuth is an attempt to support interaction with\n"
+"OAuth-powered network services in a Qt way, i.e. simply, clearly and\n"
+"efficiently.  It gives the application developer no more than 4 methods."
+msgstr ""
+
+#: gnu/packages/web.scm:1046
+msgid "Hierarchical data exploration with zoomable HTML5 pie charts"
+msgstr ""
+
+#: gnu/packages/web.scm:1048
+msgid ""
+"Krona is a flexible tool for exploring the relative proportions of\n"
+"hierarchical data, such as metagenomic classifications, using a radial,\n"
+"space-filling display.  It is implemented using HTML5 and JavaScript, allowing\n"
+"charts to be explored locally or served over the Internet, requiring only a\n"
+"current version of any major web browser."
+msgstr ""
+
+#: gnu/packages/web.scm:1090
+msgid "JSON parser/generator for C++ with both SAX/DOM style API"
+msgstr ""
+
+#: gnu/packages/web.scm:1092
+msgid ""
+"RapidJSON is a fast JSON parser/generator for C++ with both SAX/DOM\n"
+"style API."
+msgstr ""
+
+#: gnu/packages/web.scm:1119
+#, fuzzy
+#| msgid "Library for handling PNG files"
+msgid "C library for parsing JSON"
+msgstr "Biblioteko por trakti dosierojn PNG"
+
+#: gnu/packages/web.scm:1121
+msgid ""
+"Yet Another JSON Library (YAJL) is a small event-driven (SAX-style) JSON\n"
+"parser written in ANSI C and a small validating JSON generator."
+msgstr ""
+
+#: gnu/packages/web.scm:1151
+msgid "WebSockets library written in C"
+msgstr ""
+
+#: gnu/packages/web.scm:1153
+msgid ""
+"Libwebsockets is a library that allows C programs to establish client\n"
+"and server WebSockets connections---a protocol layered above HTTP that allows\n"
+"for efficient socket-like bidirectional reliable communication channels."
+msgstr ""
+
+#: gnu/packages/web.scm:1181
+msgid "WebAssembly Binary Toolkit"
+msgstr ""
+
+#: gnu/packages/web.scm:1182
+msgid ""
+"WABT (pronounced: wabbit) is a suite of tools for\n"
+"WebAssembly, including:\n"
+"\n"
+"@enumerate\n"
+"@item @command{wat2wasm} translates from WebAssembly text format to the\n"
+"WebAssembly binary format\n"
+"@item @command{wasm2wat} is the inverse; it translates from the binary format\n"
+"back to the text format (also known as a .wat)\n"
+"@item @command{wasm-objdump} prints information about a wasm binary, similarly\n"
+"to @command{objdump}.\n"
+"@item @command{wasm-interp} decodes ands run a WebAssembly binary file using a\n"
+"stack-based interpreter\n"
+"@item @command{wat-desugar} parses .wat text form as supported by the spec\n"
+"interpreter (s-expressions, flat syntax, or mixed) and prints the canonical\n"
+"flat format\n"
+"@item @command{wasm2c} converts a WebAssembly binary file to a C source and\n"
+"header file.\n"
+"@end enumerate\n"
+"\n"
+"These tools are intended for use in (or for development of) toolchains or\n"
+"other systems that want to manipulate WebAssembly files."
+msgstr ""
+
+#: gnu/packages/web.scm:1232
+#, fuzzy
+#| msgid "Library implementing the Theora video format"
+msgid "C++ library implementing the WebSocket protocol"
+msgstr "Biblioteko kiu realigas la videformon Theora"
+
+#: gnu/packages/web.scm:1233
+msgid ""
+"WebSocket++ is a C++ library that can be used to implement\n"
+"WebSocket functionality.  The goals of the project are to provide a WebSocket\n"
+"implementation that is simple, portable, flexible, lightweight, low level, and\n"
+"high performance."
+msgstr ""
+
+#: gnu/packages/web.scm:1264
+msgid "C WebSocket library"
+msgstr ""
+
+#: gnu/packages/web.scm:1265
+msgid ""
+"@code{Wslay} is an event-based C library for the WebSocket\n"
+"protocol version 13, described in RFC 6455.  Besides a high-level API it\n"
+"provides callbacks for sending and receiving frames directly.  @code{Wslay}\n"
+"only supports the data transfer part of WebSocket protocol and does not\n"
+"perform the opening handshake in HTTP."
+msgstr ""
+
+#: gnu/packages/web.scm:1294
+msgid "C library for the Publix Suffix List"
+msgstr ""
+
+#: gnu/packages/web.scm:1296
+msgid ""
+"A \"public suffix\" is a domain name under which Internet users can\n"
+"directly register own names.\n"
+"\n"
+"Browsers and other web clients can use it to avoid privacy-leaking\n"
+"\"supercookies\", avoid privacy-leaking \"super domain\" certificates, domain\n"
+"highlighting parts of the domain in a user interface, and sorting domain lists\n"
+"by site.\n"
+"\n"
+"Libpsl has built-in PSL data for fast access, allowing to load PSL data from\n"
+"files, checks if a given domain is a public suffix, provides immediate cookie\n"
+"domain verification, finds the longest public part of a given domain, finds\n"
+"the shortest private part of a given domain, works with international\n"
+"domains (UTF-8 and IDNA2008 Punycode), is thread-safe, and handles IDNA2008\n"
+"UTS#46."
+msgstr ""
+
+#: gnu/packages/web.scm:1342
+msgid "HTML validator and tidier"
+msgstr ""
+
+#: gnu/packages/web.scm:1343
+msgid ""
+"HTML Tidy is a command-line tool and C library that can be\n"
+"used to validate and fix HTML data."
+msgstr ""
+
+#: gnu/packages/web.scm:1375
+msgid "Light-weight HTTP/HTTPS proxy daemon"
+msgstr ""
+
+#: gnu/packages/web.scm:1376
+msgid ""
+"Tinyproxy is a light-weight HTTP/HTTPS proxy\n"
+"daemon.  Designed from the ground up to be fast and yet small, it is an ideal\n"
+"solution for use cases such as embedded deployments where a full featured HTTP\n"
+"proxy is required, but the system resources for a larger proxy are\n"
+"unavailable."
+msgstr ""
+
+#: gnu/packages/web.scm:1409
+msgid "Small caching web proxy"
+msgstr ""
+
+#: gnu/packages/web.scm:1411
+msgid ""
+"Polipo is a small caching web proxy (web cache, HTTP proxy, and proxy\n"
+"server).  It was primarily designed to be used by one person or a small group\n"
+"of people."
+msgstr ""
+
+#: gnu/packages/web.scm:1439
+msgid "WebSockets support for any application/server"
+msgstr ""
+
+#: gnu/packages/web.scm:1440
+msgid ""
+"Websockify translates WebSockets traffic to normal socket\n"
+"traffic.  Websockify accepts the WebSockets handshake, parses it, and then\n"
+"begins forwarding traffic between the client and the target in both\n"
+"directions."
+msgstr ""
+
+#: gnu/packages/web.scm:1466
+msgid "Caching web proxy optimized for intermittent internet links"
+msgstr ""
+
+#: gnu/packages/web.scm:1467
+msgid ""
+"WWWOFFLE is a proxy web server that is especially good for\n"
+"intermittent internet links.  It can cache HTTP, HTTPS, FTP, and finger\n"
+"protocols, and supports browsing and requesting pages while offline, indexing,\n"
+"modifying pages and incoming and outgoing headers, monitoring pages for\n"
+"changes, and much more."
+msgstr ""
+
+#: gnu/packages/web.scm:1492
+#, fuzzy
+#| msgid "Library implementing the vorbis audio format"
+msgid "C library implementing the OAuth API"
+msgstr "Biblioteko kiu realigas la aŭdformon vorbis"
+
+#: gnu/packages/web.scm:1494
+msgid ""
+"liboauth is a collection of C functions implementing the OAuth API.\n"
+"liboauth provides functions to escape and encode strings according to OAuth\n"
+"specifications and offers high-level functionality built on top to sign\n"
+"requests or verify signatures using either NSS or OpenSSL for calculating the\n"
+"hash/signatures."
+msgstr ""
+
+#: gnu/packages/web.scm:1515
+msgid "YAML 1.1 parser and emitter written in C"
+msgstr ""
+
+#: gnu/packages/web.scm:1517
+msgid "LibYAML is a YAML 1.1 parser and emitter written in C."
+msgstr ""
+
+#: gnu/packages/web.scm:1534 gnu/packages/web.scm:1568
+#: gnu/packages/web.scm:1591
+msgid "Media stream URL parser"
+msgstr ""
+
+#: gnu/packages/web.scm:1535
+msgid ""
+"This package contains support scripts called by libquvi to\n"
+"parse media stream properties."
+msgstr ""
+
+#: gnu/packages/web.scm:1569
+msgid ""
+"libquvi is a library with a C API for parsing media stream\n"
+"URLs and extracting their actual media files."
+msgstr ""
+
+#: gnu/packages/web.scm:1592
+msgid ""
+"quvi is a command-line-tool suite to extract media files\n"
+"from streaming URLs.  It is a command-line wrapper for the libquvi library."
+msgstr ""
+
+#: gnu/packages/web.scm:1664
+msgid "High-performance asynchronous HTTP client library"
+msgstr ""
+
+#: gnu/packages/web.scm:1666
+msgid ""
+"serf is a C-based HTTP client library built upon the Apache Portable\n"
+"Runtime (APR) library.  It multiplexes connections, running the read/write\n"
+"communication asynchronously.  Memory copies and transformations are kept to a\n"
+"minimum to provide high performance operation."
+msgstr ""
+
+#: gnu/packages/web.scm:1701
+msgid "SASS Compiler, implemented as a C/C++ library"
+msgstr ""
+
+#: gnu/packages/web.scm:1703
+msgid ""
+"LibSass is a @acronym{SASS,Syntactically awesome style sheets} compiler\n"
+"library designed for portability and efficiency.  To actually compile SASS\n"
+"stylesheets, you'll need to use another program that uses this library,\n"
+"@var{sassc} for example."
+msgstr ""
+
+#: gnu/packages/web.scm:1751
+msgid "CSS pre-processor"
+msgstr ""
+
+#: gnu/packages/web.scm:1752
+msgid ""
+"SassC is a compiler written in C for the CSS pre-processor\n"
+"language known as SASS."
+msgstr ""
+
+#: gnu/packages/web.scm:1804
+msgid "Compile a log format string to perl-code"
+msgstr ""
+
+#: gnu/packages/web.scm:1805
+msgid ""
+"This module provides methods to compile a log format string\n"
+"to perl-code, for faster generation of access_log lines."
+msgstr ""
+
+#: gnu/packages/web.scm:1833
+msgid "SASL authentication framework"
+msgstr ""
+
+#: gnu/packages/web.scm:1834
+msgid "Authen::SASL provides an SASL authentication framework."
+msgstr ""
+
+#: gnu/packages/web.scm:1859
+msgid "Sensible default Catalyst action"
+msgstr ""
+
+#: gnu/packages/web.scm:1860
+msgid ""
+"This Catalyst action implements a sensible default end\n"
+"action, which will forward to the first available view."
+msgstr ""
+
+#: gnu/packages/web.scm:1892
+msgid "Automated REST Method Dispatching"
+msgstr ""
+
+#: gnu/packages/web.scm:1893
+msgid ""
+"This Action handles doing automatic method dispatching for\n"
+"REST requests.  It takes a normal Catalyst action, and changes the dispatch to\n"
+"append an underscore and method name.  First it will try dispatching to an\n"
+"action with the generated name, and failing that it will try to dispatch to a\n"
+"regular method."
+msgstr ""
+
+#: gnu/packages/web.scm:1930
+msgid "Storage class for Catalyst authentication using DBIx::Class"
+msgstr ""
+
+#: gnu/packages/web.scm:1931
+msgid ""
+"The Catalyst::Authentication::Store::DBIx::Class class\n"
+"provides access to authentication information stored in a database via\n"
+"DBIx::Class."
+msgstr ""
+
+#: gnu/packages/web.scm:1957
+msgid "Create only one instance of Moose component per context"
+msgstr ""
+
+#: gnu/packages/web.scm:1958
+msgid ""
+"Catalyst::Component::InstancePerContext returns a new\n"
+"instance of a component on each request."
+msgstr ""
+
+#: gnu/packages/web.scm:1994
+msgid "Catalyst Development Tools"
+msgstr ""
+
+#: gnu/packages/web.scm:1995
+msgid ""
+"The Catalyst-Devel distribution includes a variety of\n"
+"modules useful for the development of Catalyst applications, but not required\n"
+"to run them.  Catalyst-Devel includes the Catalyst::Helper system, which\n"
+"autogenerates scripts and tests; Module::Install::Catalyst, a Module::Install\n"
+"extension for Catalyst; and requirements for a variety of development-related\n"
+"modules."
+msgstr ""
+
+#: gnu/packages/web.scm:2024
+msgid "Regex DispatchType for Catalyst"
+msgstr ""
+
+#: gnu/packages/web.scm:2025
+msgid ""
+"Dispatch type managing path-matching behaviour using\n"
+"regexes.  Regex dispatch types have been deprecated and removed from Catalyst\n"
+"core.  It is recommend that you use Chained methods or other techniques\n"
+"instead.  As part of the refactoring, the dispatch priority of Regex vs Regexp\n"
+"vs LocalRegex vs LocalRegexp may have changed.  Priority is now influenced by\n"
+"when the dispatch type is first seen in your application."
+msgstr ""
+
+#: gnu/packages/web.scm:2074
+msgid "DBIx::Class::Schema Model Class"
+msgstr ""
+
+#: gnu/packages/web.scm:2075
+msgid ""
+"This is a Catalyst Model for DBIx::Class::Schema-based\n"
+"Models."
+msgstr ""
+
+#: gnu/packages/web.scm:2098
+msgid "Request logging from within Catalyst"
+msgstr ""
+
+#: gnu/packages/web.scm:2099
+msgid ""
+"This Catalyst plugin enables you to create \"access logs\"\n"
+"from within a Catalyst application instead of requiring a webserver to do it\n"
+"for you.  It will work even with Catalyst debug logging turned off."
+msgstr ""
+
+#: gnu/packages/web.scm:2133
+msgid "Infrastructure plugin for the Catalyst authentication framework"
+msgstr ""
+
+#: gnu/packages/web.scm:2134
+msgid ""
+"The authentication plugin provides generic user support for\n"
+"Catalyst apps.  It is the basis for both authentication (checking the user is\n"
+"who they claim to be), and authorization (allowing the user to do what the\n"
+"system authorises them to do)."
+msgstr ""
+
+#: gnu/packages/web.scm:2165
+msgid "Role-based authorization for Catalyst"
+msgstr ""
+
+#: gnu/packages/web.scm:2166
+msgid ""
+"Catalyst::Plugin::Authorization::Roles provides role-based\n"
+"authorization for Catalyst based on Catalyst::Plugin::Authentication."
+msgstr ""
+
+#: gnu/packages/web.scm:2189
+msgid "Captchas for Catalyst"
+msgstr ""
+
+#: gnu/packages/web.scm:2190
+msgid ""
+"This plugin creates and validates Captcha images for\n"
+"Catalyst."
+msgstr ""
+
+#: gnu/packages/web.scm:2216
+msgid "Load config files of various types"
+msgstr ""
+
+#: gnu/packages/web.scm:2217
+msgid ""
+"This module will attempt to load find and load configuration\n"
+"files of various types.  Currently it supports YAML, JSON, XML, INI and Perl\n"
+"formats."
+msgstr ""
+
+#: gnu/packages/web.scm:2248
+msgid "Catalyst generic session plugin"
+msgstr ""
+
+#: gnu/packages/web.scm:2249
+msgid ""
+"This plugin links the two pieces required for session\n"
+"management in web applications together: the state, and the store."
+msgstr ""
+
+#: gnu/packages/web.scm:2277
+msgid "Maintain session IDs using cookies"
+msgstr ""
+
+#: gnu/packages/web.scm:2278
+msgid ""
+"In order for Catalyst::Plugin::Session to work, the session\n"
+"ID needs to be stored on the client, and the session data needs to be stored\n"
+"on the server.  This plugin stores the session ID on the client using the\n"
+"cookie mechanism."
+msgstr ""
+
+#: gnu/packages/web.scm:2308
+msgid "FastMmap session storage backend"
+msgstr ""
+
+#: gnu/packages/web.scm:2309
+msgid ""
+"Catalyst::Plugin::Session::Store::FastMmap is a fast session\n"
+"storage plugin for Catalyst that uses an mmap'ed file to act as a shared\n"
+"memory interprocess cache.  It is based on Cache::FastMmap."
+msgstr ""
+
+#: gnu/packages/web.scm:2334
+msgid "Stack trace on the Catalyst debug screen"
+msgstr ""
+
+#: gnu/packages/web.scm:2335
+msgid ""
+"This plugin enhances the standard Catalyst debug screen by\n"
+"including a stack trace of your application up to the point where the error\n"
+"occurred.  Each stack frame is displayed along with the package name, line\n"
+"number, file name, and code context surrounding the line number."
+msgstr ""
+
+#: gnu/packages/web.scm:2363
+msgid "Simple serving of static pages"
+msgstr ""
+
+#: gnu/packages/web.scm:2364
+msgid ""
+"The Static::Simple plugin is designed to make serving static\n"
+"content in your application during development quick and easy, without\n"
+"requiring a single line of code from you.  This plugin detects static files by\n"
+"looking at the file extension in the URL (such as .css or .png or .js).  The\n"
+"plugin uses the lightweight MIME::Types module to map file extensions to\n"
+"IANA-registered MIME types, and will serve your static files with the correct\n"
+"MIME type directly to the browser, without being processed through Catalyst."
+msgstr ""
+
+#: gnu/packages/web.scm:2427
+msgid "The Catalyst Framework Runtime"
+msgstr ""
+
+#: gnu/packages/web.scm:2428
+msgid ""
+"Catalyst is a modern framework for making web applications.\n"
+"It is designed to make it easy to manage the various tasks you need to do to\n"
+"run an application on the web, either by doing them itself, or by letting you\n"
+"\"plug in\" existing Perl modules that do what you need."
+msgstr ""
+
+#: gnu/packages/web.scm:2459
+msgid "Replace request base with value passed by HTTP proxy"
+msgstr ""
+
+#: gnu/packages/web.scm:2460
+msgid ""
+"This module is a Moose::Role which allows you more\n"
+"flexibility in your application's deployment configurations when deployed\n"
+"behind a proxy.  Using this module, the request base ($c->req->base) is\n"
+"replaced with the contents of the X-Request-Base header."
+msgstr ""
+
+#: gnu/packages/web.scm:2487
+msgid "Download data in many formats"
+msgstr ""
+
+#: gnu/packages/web.scm:2488
+msgid ""
+"The purpose of this module is to provide a method for\n"
+"downloading data into many supportable formats.  For example, downloading a\n"
+"table based report in a variety of formats (CSV, HTML, etc.)."
+msgstr ""
+
+#: gnu/packages/web.scm:2514
+msgid "Catalyst JSON view"
+msgstr ""
+
+#: gnu/packages/web.scm:2515
+msgid ""
+"Catalyst::View::JSON is a Catalyst View handler that returns\n"
+"stash data in JSON format."
+msgstr ""
+
+#: gnu/packages/web.scm:2540
+msgid "Template View Class"
+msgstr ""
+
+#: gnu/packages/web.scm:2541
+msgid ""
+"This module is a Catalyst view class for the Template\n"
+"Toolkit."
+msgstr ""
+
+#: gnu/packages/web.scm:2570
+msgid "Trait Loading and Resolution for Catalyst Components"
+msgstr ""
+
+#: gnu/packages/web.scm:2571
+msgid ""
+"Adds a \"COMPONENT\" in Catalyst::Component method to your\n"
+"Catalyst component base class that reads the optional \"traits\" parameter\n"
+"from app and component config and instantiates the component subclass with\n"
+"those traits using \"new_with_traits\" in MooseX::Traits from\n"
+"MooseX::Traits::Pluggable."
+msgstr ""
+
+#: gnu/packages/web.scm:2596
+msgid "Apply roles to Catalyst classes"
+msgstr ""
+
+#: gnu/packages/web.scm:2597
+msgid ""
+"CatalystX::RoleApplicator applies roles to Catalyst\n"
+"application classes."
+msgstr ""
+
+#: gnu/packages/web.scm:2624
+msgid "Catalyst development server with Starman"
+msgstr ""
+
+#: gnu/packages/web.scm:2625
+msgid ""
+"This module provides a Catalyst extension to replace the\n"
+"development server with Starman."
+msgstr ""
+
+#: gnu/packages/web.scm:2649
+msgid "Handle Common Gateway Interface requests and responses"
+msgstr ""
+
+#: gnu/packages/web.scm:2650
+msgid ""
+"CGI.pm is a stable, complete and mature solution for\n"
+"processing and preparing HTTP requests and responses.  Major features include\n"
+"processing form submissions, file uploads, reading and writing cookies, query\n"
+"string generation and manipulation, and processing and preparing HTTP\n"
+"headers."
+msgstr ""
+
+#: gnu/packages/web.scm:2675
+msgid "Generate and process stateful forms"
+msgstr ""
+
+#: gnu/packages/web.scm:2677
+msgid ""
+"@code{CGI::FormBuilder} provides an easy way to generate and process CGI\n"
+"form-based applications."
+msgstr ""
+
+#: gnu/packages/web.scm:2702
+msgid "Persistent session data in CGI applications"
+msgstr ""
+
+#: gnu/packages/web.scm:2704
+msgid ""
+"@code{CGI::Session} provides modular session management system across\n"
+"HTTP requests."
+msgstr ""
+
+#: gnu/packages/web.scm:2726
+msgid "CGI interface that is CGI.pm compliant"
+msgstr ""
+
+#: gnu/packages/web.scm:2727
+msgid ""
+"CGI::Simple provides a relatively lightweight drop in\n"
+"replacement for CGI.pm.  It shares an identical OO interface to CGI.pm for\n"
+"parameter parsing, file upload, cookie handling and header generation."
+msgstr ""
+
+#: gnu/packages/web.scm:2748
+msgid "Build structures from CGI data"
+msgstr ""
+
+#: gnu/packages/web.scm:2749
+msgid ""
+"This is a module for building structured data from CGI\n"
+"inputs, in a manner reminiscent of how PHP does."
+msgstr ""
+
+#: gnu/packages/web.scm:2772
+msgid "Date conversion routines"
+msgstr ""
+
+#: gnu/packages/web.scm:2773
+msgid ""
+"This module provides functions that deal with the date\n"
+"formats used by the HTTP protocol."
+msgstr ""
+
+#: gnu/packages/web.scm:2793
+msgid "MD5 sums for files and urls"
+msgstr ""
+
+#: gnu/packages/web.scm:2794
+msgid ""
+"Digest::MD5::File is a Perl extension for getting MD5 sums\n"
+"for files and urls."
+msgstr ""
+
+#: gnu/packages/web.scm:2812
+msgid "Perl locale encoding determination"
+msgstr ""
+
+#: gnu/packages/web.scm:2814
+msgid ""
+"The POSIX locale system is used to specify both the language\n"
+"conventions requested by the user and the preferred character set to\n"
+"consume and output.  The Encode::Locale module looks up the charset and\n"
+"encoding (called a CODESET in the locale jargon) and arranges for the\n"
+"Encode module to know this encoding under the name \"locale\".  It means\n"
+"bytes obtained from the environment can be converted to Unicode strings\n"
+"by calling Encode::encode(locale => $bytes) and converted back again\n"
+"with Encode::decode(locale => $string)."
+msgstr ""
+
+#: gnu/packages/web.scm:2849
+msgid "Syndication feed auto-discovery"
+msgstr ""
+
+#: gnu/packages/web.scm:2850
+msgid ""
+"@code{Feed::Find} implements feed auto-discovery for finding\n"
+"syndication feeds, given a URI.  It will discover the following feed formats:\n"
+"RSS 0.91, RSS 1.0, RSS 2.0, Atom."
+msgstr ""
+
+#: gnu/packages/web.scm:2871
+msgid "Perl directory listing parser"
+msgstr ""
+
+#: gnu/packages/web.scm:2873
+msgid ""
+"The File::Listing module exports a single function called parse_dir(),\n"
+"which can be used to parse directory listings."
+msgstr ""
+
+#: gnu/packages/web.scm:2904
+msgid "Stock and mutual fund quotes"
+msgstr ""
+
+#: gnu/packages/web.scm:2906
+msgid ""
+"Finance::Quote gets stock quotes from various internet sources, including\n"
+"Yahoo! Finance, Fidelity Investments, and the Australian Stock Exchange."
+msgstr ""
+
+#: gnu/packages/web.scm:2928
+msgid "Perl extension providing access to the GSSAPIv2 library"
+msgstr ""
+
+#: gnu/packages/web.scm:2929
+msgid ""
+"This is a Perl extension for using GSSAPI C bindings as\n"
+"described in RFC 2744."
+msgstr ""
+
+#: gnu/packages/web.scm:2949
+msgid "Manipulate tables of HTML::Element"
+msgstr ""
+
+#: gnu/packages/web.scm:2951
+msgid ""
+"HTML::Element::Extended is a Perl extension for manipulating a table\n"
+"composed of HTML::Element style components."
+msgstr ""
+
+#: gnu/packages/web.scm:2974
+msgid "Perl class representing an HTML form element"
+msgstr ""
+
+#: gnu/packages/web.scm:2975
+msgid ""
+"Objects of the HTML::Form class represents a single HTML\n"
+"<form> ... </form> instance."
+msgstr ""
+
+#: gnu/packages/web.scm:3006
+msgid "Perl extension for scrubbing/sanitizing html"
+msgstr ""
+
+#: gnu/packages/web.scm:3008
+msgid "@code{HTML::Scrubber} Perl extension for scrubbing/sanitizing HTML."
+msgstr ""
+
+#: gnu/packages/web.scm:3028
+msgid "Check for HTML errors in a string or file"
+msgstr ""
+
+#: gnu/packages/web.scm:3029
+msgid ""
+"HTML::Lint is a pure-Perl HTML parser and checker for\n"
+"syntactic legitmacy."
+msgstr ""
+
+#: gnu/packages/web.scm:3050
+msgid "Extract contents from HTML tables"
+msgstr ""
+
+#: gnu/packages/web.scm:3052
+msgid ""
+"HTML::TableExtract is a Perl module for extracting the content contained\n"
+"in tables within an HTML document, either as text or encoded element trees."
+msgstr ""
+
+#: gnu/packages/web.scm:3077
+msgid "Work with HTML in a DOM-like tree structure"
+msgstr ""
+
+#: gnu/packages/web.scm:3078
+msgid ""
+"This distribution contains a suite of modules for\n"
+"representing, creating, and extracting information from HTML syntax trees."
+msgstr ""
+
+#: gnu/packages/web.scm:3099
+msgid "Perl HTML parser class"
+msgstr ""
+
+#: gnu/packages/web.scm:3101
+msgid ""
+"Objects of the HTML::Parser class will recognize markup and separate\n"
+"it from plain text (alias data content) in HTML documents.  As different\n"
+"kinds of markup and text are recognized, the corresponding event handlers\n"
+"are invoked."
+msgstr ""
+
+#: gnu/packages/web.scm:3121
+msgid "Perl data tables useful in parsing HTML"
+msgstr ""
+
+#: gnu/packages/web.scm:3123
+msgid ""
+"The HTML::Tagset module contains several data tables useful in various\n"
+"kinds of HTML parsing operations."
+msgstr ""
+
+#: gnu/packages/web.scm:3142
+msgid "HTML-like templates"
+msgstr ""
+
+#: gnu/packages/web.scm:3144
+msgid ""
+"This module attempts to make using HTML templates simple and natural.\n"
+"It extends standard HTML with a few new HTML-esque tags: @code{<TMPL_VAR>},\n"
+"@code{<TMPL_LOOP>}, @code{<TMPL_INCLUDE>}, @code{<TMPL_IF>},\n"
+"@code{<TMPL_ELSE>} and @code{<TMPL_UNLESS>}.  The file written with HTML and\n"
+"these new tags is called a template.  Using this module you fill in the values\n"
+"for the variables, loops and branches declared in the template.  This allows\n"
+"you to separate design from the data."
+msgstr ""
+
+#: gnu/packages/web.scm:3172
+msgid "HTTP Body Parser"
+msgstr ""
+
+#: gnu/packages/web.scm:3173
+msgid ""
+"HTTP::Body parses chunks of HTTP POST data and supports\n"
+"application/octet-stream, application/json, application/x-www-form-urlencoded,\n"
+"and multipart/form-data."
+msgstr ""
+
+#: gnu/packages/web.scm:3199
+msgid "Minimalist HTTP user agent cookie jar"
+msgstr ""
+
+#: gnu/packages/web.scm:3200
+msgid ""
+"This module implements a minimalist HTTP user agent cookie\n"
+"jar in conformance with RFC 6265 <http://tools.ietf.org/html/rfc6265>."
+msgstr ""
+
+#: gnu/packages/web.scm:3220
+msgid "Perl HTTP cookie jars"
+msgstr ""
+
+#: gnu/packages/web.scm:3222
+msgid ""
+"The HTTP::Cookies class is for objects that represent a cookie jar,\n"
+"that is, a database of all the HTTP cookies that a given LWP::UserAgent\n"
+"object knows about."
+msgstr ""
+
+#: gnu/packages/web.scm:3244
+msgid "Perl simple http server class"
+msgstr ""
+
+#: gnu/packages/web.scm:3246
+msgid ""
+"Instances of the HTTP::Daemon class are HTTP/1.1 servers that listen\n"
+"on a socket for incoming requests.  The HTTP::Daemon is a subclass of\n"
+"IO::Socket::INET, so you can perform socket operations directly on it too."
+msgstr ""
+
+#: gnu/packages/web.scm:3265
+msgid "Perl date conversion routines"
+msgstr ""
+
+#: gnu/packages/web.scm:3267
+msgid ""
+"The HTTP::Date module provides functions that deal with date formats\n"
+"used by the HTTP protocol (and then some more)."
+msgstr ""
+
+#: gnu/packages/web.scm:3287
+#, fuzzy
+#| msgid "Lightweight PDF viewer and toolkit"
+msgid "Lightweight HTTP implementation"
+msgstr "Malpeza PDF-montrilo kaj ilaro"
+
+#: gnu/packages/web.scm:3288
+msgid ""
+"@code{HTTP::Lite} is a stand-alone lightweight\n"
+"HTTP/1.1 implementation for perl.  It is intended for use in\n"
+"situations where it is desirable to install the minimal number of\n"
+"modules to achieve HTTP support.  @code{HTTP::Lite} is ideal for\n"
+"CGI (or mod_perl) programs or for bundling for redistribution with\n"
+"larger packages where only HTTP GET and POST functionality are\n"
+"necessary.  @code{HTTP::Lite} is compliant with the Host header,\n"
+"necessary for name based virtual hosting, and supports proxies.\n"
+"Additionally, @code{HTTP::Lite} supports a callback to allow\n"
+"processing of request data as it arrives."
+msgstr ""
+
+#: gnu/packages/web.scm:3322
+msgid "Perl HTTP style message"
+msgstr ""
+
+#: gnu/packages/web.scm:3324
+msgid "An HTTP::Message object contains some headers and a content body."
+msgstr ""
+
+#: gnu/packages/web.scm:3343
+msgid "Perl http content negotiation"
+msgstr ""
+
+#: gnu/packages/web.scm:3345
+msgid ""
+"The HTTP::Negotiate module provides a complete implementation of the\n"
+"HTTP content negotiation algorithm specified in\n"
+"draft-ietf-http-v11-spec-00.ps chapter 12.  Content negotiation allows for\n"
+"the selection of a preferred content representation based upon attributes\n"
+"of the negotiable variants and the value of the various Accept* header\n"
+"fields in the request."
+msgstr ""
+
+#: gnu/packages/web.scm:3370
+msgid "Parse HTTP/1.1 requests"
+msgstr ""
+
+#: gnu/packages/web.scm:3371
+msgid ""
+"This is an HTTP request parser.  It takes chunks of text as\n"
+"received and returns a @code{hint} as to what is required, or returns the\n"
+"HTTP::Request when a complete request has been read.  HTTP/1.1 chunking is\n"
+"supported."
+msgstr ""
+
+#: gnu/packages/web.scm:3393
+msgid "Fast HTTP request parser"
+msgstr ""
+
+#: gnu/packages/web.scm:3394
+msgid ""
+"HTTP::Parser::XS is a fast, primitive HTTP request/response\n"
+"parser."
+msgstr ""
+
+#: gnu/packages/web.scm:3415
+msgid "Set up a CGI environment from an HTTP::Request"
+msgstr ""
+
+#: gnu/packages/web.scm:3416
+msgid ""
+"This module provides a convenient way to set up a CGI\n"
+"environment from an HTTP::Request."
+msgstr ""
+
+#: gnu/packages/web.scm:3449
+msgid "Lightweight HTTP server"
+msgstr ""
+
+#: gnu/packages/web.scm:3450
+msgid ""
+"HTTP::Server::Simple is a simple standalone HTTP daemon with\n"
+"no non-core module dependencies.  It can be used for building a standalone\n"
+"http-based UI to your existing tools."
+msgstr ""
+
+#: gnu/packages/web.scm:3475
+msgid "HTTP/1.1 client"
+msgstr ""
+
+#: gnu/packages/web.scm:3476
+msgid ""
+"This is a very simple HTTP/1.1 client, designed for doing\n"
+"simple requests without the overhead of a large framework like LWP::UserAgent.\n"
+"It supports proxies and redirection.  It also correctly resumes after EINTR."
+msgstr ""
+
+#: gnu/packages/web.scm:3500
+msgid "@code{HTTP::Tiny} compatible HTTP client wrappers"
+msgstr ""
+
+#: gnu/packages/web.scm:3502
+msgid ""
+"@code{HTTP::Tinyish} is a wrapper module for @acronym{LWP,libwww-perl},\n"
+"@code{HTTP::Tiny}, curl and wget.\n"
+"\n"
+"It provides an API compatible to HTTP::Tiny."
+msgstr ""
+
+#: gnu/packages/web.scm:3522
+msgid "Perl module to open an HTML file with automatic charset detection"
+msgstr ""
+
+#: gnu/packages/web.scm:3524
+msgid ""
+"IO::HTML provides an easy way to open a file containing HTML while\n"
+"automatically determining its encoding.  It uses the HTML5 encoding sniffing\n"
+"algorithm specified in section 8.2.2.1 of the draft standard."
+msgstr ""
+
+#: gnu/packages/web.scm:3543
+msgid "Family-neutral IP socket supporting both IPv4 and IPv6"
+msgstr ""
+
+#: gnu/packages/web.scm:3544
+msgid ""
+"This module provides a protocol-independent way to use IPv4\n"
+"and IPv6 sockets, intended as a replacement for IO::Socket::INET."
+msgstr ""
+
+#: gnu/packages/web.scm:3566
+msgid "Nearly transparent SSL encapsulation for IO::Socket::INET"
+msgstr ""
+
+#: gnu/packages/web.scm:3568
+msgid ""
+"IO::Socket::SSL makes using SSL/TLS much easier by wrapping the\n"
+"necessary functionality into the familiar IO::Socket interface and providing\n"
+"secure defaults whenever possible.  This way existing applications can be made\n"
+"SSL-aware without much effort, at least if you do blocking I/O and don't use\n"
+"select or poll."
+msgstr ""
+
+#: gnu/packages/web.scm:3607
+msgid "Perl modules for the WWW"
+msgstr ""
+
+#: gnu/packages/web.scm:3609
+msgid ""
+"The libwww-perl collection is a set of Perl modules which provides a\n"
+"simple and consistent application programming interface to the\n"
+"World-Wide Web.  The main focus of the library is to provide classes\n"
+"and functions that allow you to write WWW clients.  The library also\n"
+"contains modules that are of more general use and even classes that\n"
+"help you implement simple HTTP servers."
+msgstr ""
+
+#: gnu/packages/web.scm:3637
+msgid "Checks whether your process has access to the web"
+msgstr ""
+
+#: gnu/packages/web.scm:3638
+msgid ""
+"This module attempts to answer, as accurately as it can, one\n"
+"of the nastiest technical questions there is: am I on the internet?\n"
+"\n"
+"A host of networking and security issues make this problem very difficult.\n"
+"There are firewalls, proxies (both well behaved and badly behaved).  We might\n"
+"not have DNS.  We might not have a network card at all!"
+msgstr ""
+
+#: gnu/packages/web.scm:3662
+msgid "Perl module to guess the media type for a file or a URL"
+msgstr ""
+
+#: gnu/packages/web.scm:3664
+#, scheme-format
+msgid ""
+"The LWP::MediaTypes module provides functions for handling media (also\n"
+"known as MIME) types and encodings.  The mapping from file extensions to\n"
+"media types is defined by the media.types file.  If the ~/.media.types file\n"
+"exists it is used instead."
+msgstr ""
+
+#: gnu/packages/web.scm:3693
+msgid "HTTPS support for LWP::UserAgent"
+msgstr ""
+
+#: gnu/packages/web.scm:3694
+msgid ""
+"The LWP::Protocol::https module provides support for using\n"
+"https schemed URLs with LWP."
+msgstr ""
+
+#: gnu/packages/web.scm:3714
+msgid "Simple caching for LWP::UserAgent"
+msgstr ""
+
+#: gnu/packages/web.scm:3715
+msgid ""
+"LWP::UserAgent::Cached is an LWP::UserAgent subclass with\n"
+"cache support.  It returns responses from the local file system, if available,\n"
+"instead of making an HTTP request."
+msgstr ""
+
+#: gnu/packages/web.scm:3736
+msgid "Virtual browser that retries errors"
+msgstr ""
+
+#: gnu/packages/web.scm:3737
+msgid ""
+"LWP::UserAgent::Determined works just like LWP::UserAgent,\n"
+"except that when you use it to get a web page but run into a\n"
+"possibly-temporary error (like a DNS lookup timeout), it'll wait a few seconds\n"
+"and retry a few times."
+msgstr ""
+
+#: gnu/packages/web.scm:3763
+msgid "Security enhanced subclass of LWP::UserAgent"
+msgstr ""
+
+#: gnu/packages/web.scm:3764
+msgid ""
+"@code{LWPx::ParanoidAgent} is a class subclassing\n"
+"@code{LWP::UserAgent} but paranoid against attackers.  Its purpose is\n"
+"to vet requests for a remote resource on behalf of a possibly\n"
+"malicious user.  The class can do the same as @code{LWP::UserAgent},\n"
+"except that proxy support has been removed.  Support for URI schemes\n"
+"is limited to http and https."
+msgstr ""
+
+#: gnu/packages/web.scm:3811
+msgid "Perl interface to Amazon S3"
+msgstr ""
+
+#: gnu/packages/web.scm:3812
+#, fuzzy
+#| msgid "This package provides an database interface for Perl."
+msgid "This module provides a Perlish interface to Amazon S3."
+msgstr "Tiu ĉi pako provizas datumbazan interfacon por Perl."
+
+#: gnu/packages/web.scm:3832
+msgid "Perl low-level HTTP connection (client)"
+msgstr ""
+
+#: gnu/packages/web.scm:3834
+msgid ""
+"The Net::HTTP class is a low-level HTTP client.  An instance of the\n"
+"Net::HTTP class represents a connection to an HTTP server.  The HTTP protocol\n"
+"is described in RFC 2616.  The Net::HTTP class supports HTTP/1.0 and\n"
+"HTTP/1.1."
+msgstr ""
+
+#: gnu/packages/web.scm:3854
+msgid "Extensible Perl server engine"
+msgstr ""
+
+#: gnu/packages/web.scm:3855
+msgid ""
+"Net::Server is an extensible, generic Perl server engine.\n"
+"It attempts to be a generic server as in Net::Daemon and NetServer::Generic.\n"
+"It includes with it the ability to run as an inetd\n"
+"process (Net::Server::INET), a single connection server (Net::Server or\n"
+"Net::Server::Single), a forking server (Net::Server::Fork), a preforking\n"
+"server which maintains a constant number of preforked\n"
+"children (Net::Server::PreForkSimple), or as a managed preforking server which\n"
+"maintains the number of children based on server load (Net::Server::PreFork).\n"
+"In all but the inetd type, the server provides the ability to connect to one\n"
+"or to multiple server ports."
+msgstr ""
+
+#: gnu/packages/web.scm:3883
+msgid "SSL support for Net::SMTP"
+msgstr ""
+
+#: gnu/packages/web.scm:3884
+msgid "SSL support for Net::SMTP."
+msgstr ""
+
+#: gnu/packages/web.scm:3918
+msgid "Perl Superglue for Web frameworks and servers (PSGI toolkit)"
+msgstr ""
+
+#: gnu/packages/web.scm:3919
+msgid ""
+"Plack is a set of tools for using the PSGI stack.  It\n"
+"contains middleware components, a reference server, and utilities for Web\n"
+"application frameworks.  Plack is like Ruby's Rack or Python's Paste for\n"
+"WSGI."
+msgstr ""
+
+#: gnu/packages/web.scm:3945
+msgid "Compress response body with Gzip or Deflate"
+msgstr ""
+
+#: gnu/packages/web.scm:3947
+msgid ""
+"Plack::Middleware::Deflater is a middleware to encode your response body\n"
+"in gzip or deflate, based on \"Accept-Encoding\" HTTP request header.  It\n"
+"would save the bandwidth a little bit but should increase the Plack server\n"
+"load, so ideally you should handle this on the frontend reverse proxy\n"
+"servers."
+msgstr ""
+
+#: gnu/packages/web.scm:3974
+msgid "Plack::Middleware which sets body for redirect response"
+msgstr ""
+
+#: gnu/packages/web.scm:3975
+msgid ""
+"This module sets the body in redirect response, if it's not\n"
+"already set."
+msgstr ""
+
+#: gnu/packages/web.scm:3997
+msgid "Override REST methods to Plack apps via POST"
+msgstr ""
+
+#: gnu/packages/web.scm:3998
+msgid ""
+"This middleware allows for POST requests that pretend to be\n"
+"something else: by adding either a header named X-HTTP-Method-Override to the\n"
+"request, or a query parameter named x-tunneled-method to the URI, the client\n"
+"can say what method it actually meant."
+msgstr ""
+
+#: gnu/packages/web.scm:4021
+msgid "Plack::Middleware which removes body for HTTP response"
+msgstr ""
+
+#: gnu/packages/web.scm:4022
+msgid ""
+"This module removes the body in an HTTP response if it's not\n"
+"required."
+msgstr ""
+
+#: gnu/packages/web.scm:4044
+msgid "Supports app to run as a reverse proxy backend"
+msgstr ""
+
+#: gnu/packages/web.scm:4045
+msgid ""
+"Plack::Middleware::ReverseProxy resets some HTTP headers,\n"
+"which are changed by reverse-proxy.  You can specify the reverse proxy address\n"
+"and stop fake requests using @code{enable_if} directive in your app.psgi."
+msgstr ""
+
+#: gnu/packages/web.scm:4065
+msgid "Run HTTP tests on external live servers"
+msgstr ""
+
+#: gnu/packages/web.scm:4066
+msgid ""
+"This module allows your to run your Plack::Test tests\n"
+"against an external server instead of just against a local application through\n"
+"either mocked HTTP or a locally spawned server."
+msgstr ""
+
+#: gnu/packages/web.scm:4087
+#, fuzzy
+#| msgid "Word processing program"
+msgid "Testing TCP programs"
+msgstr "Teksto-proceza programaro"
+
+#: gnu/packages/web.scm:4088
+msgid "Test::TCP is test utilities for TCP/IP programs."
+msgstr ""
+
+#: gnu/packages/web.scm:4112
+msgid "Testing-specific WWW::Mechanize subclass"
+msgstr ""
+
+#: gnu/packages/web.scm:4113
+msgid ""
+"Test::WWW::Mechanize is a subclass of the Perl module\n"
+"WWW::Mechanize that incorporates features for web application testing."
+msgstr ""
+
+#: gnu/packages/web.scm:4146
+msgid "Test::WWW::Mechanize for Catalyst"
+msgstr ""
+
+#: gnu/packages/web.scm:4147
+msgid ""
+"The Test::WWW::Mechanize::Catalyst module meshes the\n"
+"Test::WWW:Mechanize module and the Catalyst web application framework to allow\n"
+"testing of Catalyst applications without needing to start up a web server."
+msgstr ""
+
+#: gnu/packages/web.scm:4171
+msgid "Test PSGI programs using WWW::Mechanize"
+msgstr ""
+
+#: gnu/packages/web.scm:4172
+msgid ""
+"PSGI is a specification to decouple web server environments\n"
+"from web application framework code.  Test::WWW::Mechanize is a subclass of\n"
+"WWW::Mechanize that incorporates features for web application testing.  The\n"
+"Test::WWW::Mechanize::PSGI module meshes the two to allow easy testing of PSGI\n"
+"applications."
+msgstr ""
+
+#: gnu/packages/web.scm:4195
+msgid "Perl Uniform Resource Identifiers (absolute and relative)"
+msgstr ""
+
+#: gnu/packages/web.scm:4197
+msgid ""
+"The URI module implements the URI class.  Objects of this class\n"
+"represent \"Uniform Resource Identifier references\" as specified in RFC 2396\n"
+"and updated by RFC 2732."
+msgstr ""
+
+#: gnu/packages/web.scm:4221
+msgid "Smart URI fetching/caching"
+msgstr ""
+
+#: gnu/packages/web.scm:4222
+msgid ""
+"@code{URI::Fetch} is a smart client for fetching HTTP pages,\n"
+"notably syndication feeds (RSS, Atom, and others), in an intelligent, bandwidth-\n"
+"and time-saving way."
+msgstr ""
+
+#: gnu/packages/web.scm:4245
+msgid "Find URIs in arbitrary text"
+msgstr ""
+
+#: gnu/packages/web.scm:4246
+msgid ""
+"This module finds URIs and URLs (according to what URI.pm\n"
+"considers a URI) in plain text.  It only finds URIs which include a\n"
+"scheme (http:// or the like), for something a bit less strict, consider\n"
+"URI::Find::Schemeless.  For a command-line interface, urifind is provided."
+msgstr ""
+
+#: gnu/packages/web.scm:4268
+msgid "WebSocket support for URI package"
+msgstr ""
+
+#: gnu/packages/web.scm:4269
+msgid ""
+"With this module, the URI package provides the same set of\n"
+"methods for WebSocket URIs as it does for HTTP URIs."
+msgstr ""
+
+#: gnu/packages/web.scm:4293
+#, fuzzy
+#| msgid "Library for handling TIFF files"
+msgid "Object for handling URI templates"
+msgstr "Biblioteko por trakti dosierojn TIFF"
+
+#: gnu/packages/web.scm:4294
+msgid ""
+"This perl module provides a wrapper around URI templates as described in\n"
+"RFC 6570."
+msgstr ""
+
+#: gnu/packages/web.scm:4326
+#, fuzzy
+#| msgid "SQlite interface for Perl"
+msgid "Perl extension interface for libcurl"
+msgstr "Interfaco de SQLite por Perl"
+
+#: gnu/packages/web.scm:4328
+msgid ""
+"This is a Perl extension interface for the libcurl file downloading\n"
+"library."
+msgstr ""
+
+#: gnu/packages/web.scm:4361
+msgid "Web browsing in a Perl object"
+msgstr ""
+
+#: gnu/packages/web.scm:4362
+msgid ""
+"WWW::Mechanize is a Perl module for stateful programmatic\n"
+"web browsing, used for automating interaction with websites."
+msgstr ""
+
+#: gnu/packages/web.scm:4398
+msgid "Search A9 OpenSearch compatible engines"
+msgstr ""
+
+#: gnu/packages/web.scm:4400
+msgid ""
+"@code{WWW::OpenSearch} is a module to search @url{A9's OpenSearch,\n"
+"http://opensearch.a9.com} compatible search engines."
+msgstr ""
+
+#: gnu/packages/web.scm:4420
+msgid "Perl database of robots.txt-derived permissions"
+msgstr ""
+
+#: gnu/packages/web.scm:4422
+msgid ""
+"The WWW::RobotRules module parses /robots.txt files as specified in\n"
+"\"A Standard for Robot Exclusion\", at\n"
+"<http://www.robotstxt.org/wc/norobots.html>.  Webmasters can use the\n"
+"/robots.txt file to forbid conforming robots from accessing parts of\n"
+"their web site."
+msgstr ""
+
+#: gnu/packages/web.scm:4445
+msgid "Parse feeds in Python"
+msgstr ""
+
+#: gnu/packages/web.scm:4447
+msgid ""
+"Universal feed parser which handles RSS 0.9x, RSS 1.0, RSS 2.0,\n"
+"CDF, Atom 0.3, and Atom 1.0 feeds."
+msgstr ""
+
+#: gnu/packages/web.scm:4545
+msgid "Store and provide data about GNU Guix"
+msgstr ""
+
+#: gnu/packages/web.scm:4547
+msgid ""
+"The Guix Data Service stores data about GNU Guix, and provides this\n"
+"through a web interface.  It supports listening to the guix-commits mailing\n"
+"list to find out about new revisions, then loads the data from these in to a\n"
+"PostgreSQL database."
+msgstr ""
+
+#: gnu/packages/web.scm:4576
+#, fuzzy
+#| msgid "PDF rendering library"
+msgid "HTML5 parsing library"
+msgstr "PDF-bildiga biblioteko"
+
+#: gnu/packages/web.scm:4578
+msgid ""
+"Gumbo is an implementation of the HTML5 parsing algorithm implemented as\n"
+"a pure C99 library."
+msgstr ""
+
+#: gnu/packages/web.scm:4649
+msgid "Application container server"
+msgstr ""
+
+#: gnu/packages/web.scm:4651
+msgid ""
+"uWSGI presents a complete stack for networked/clustered web applications,\n"
+"implementing message/object passing, caching, RPC and process management.\n"
+"It uses the uwsgi protocol for all the networking/interprocess communications."
+msgstr ""
+
+#: gnu/packages/web.scm:4683
+msgid "Command-line JSON processor"
+msgstr ""
+
+#: gnu/packages/web.scm:4684
+msgid ""
+"jq is like sed for JSON data – you can use it to slice and\n"
+"filter and map and transform structured data with the same ease that sed, awk,\n"
+"grep and friends let you play with text.  It is written in portable C.  jq can\n"
+"mangle the data format that you have into the one that you want with very\n"
+"little effort, and the program to do so is often shorter and simpler than\n"
+"you'd expect."
+msgstr ""
+
+#: gnu/packages/web.scm:4713
+msgid "Library for mocking web service APIs which use HTTP or HTTPS"
+msgstr ""
+
+#: gnu/packages/web.scm:4715
+msgid ""
+"Uhttpmock is a project for mocking web service APIs which use HTTP or\n"
+"HTTPS.  It provides a library, libuhttpmock, which implements recording and\n"
+"playback of HTTP request/response traces."
+msgstr ""
+
+#: gnu/packages/web.scm:4750
+msgid "Single file web server"
+msgstr ""
+
+#: gnu/packages/web.scm:4751
+msgid ""
+"Woof (Web Offer One File) is a small simple web server that\n"
+"can easily be invoked on a single file.  Your partner can access the file with\n"
+"tools they trust (e.g. wget)."
+msgstr ""
+
+#: gnu/packages/web.scm:4777
+msgid "Build system for the Netsurf project"
+msgstr ""
+
+#: gnu/packages/web.scm:4779
+msgid ""
+"This package provides the shared build system for Netsurf project\n"
+"libraries."
+msgstr ""
+
+#: gnu/packages/web.scm:4814
+#, fuzzy
+#| msgid "PDF rendering library"
+msgid "Parser building library"
+msgstr "PDF-bildiga biblioteko"
+
+#: gnu/packages/web.scm:4816
+msgid ""
+"LibParserUtils is a library for building efficient parsers, written in\n"
+"C.  It is developed as part of the NetSurf project."
+msgstr ""
+
+#: gnu/packages/web.scm:4844
+msgid "HTML5 compliant parsing library"
+msgstr ""
+
+#: gnu/packages/web.scm:4846
+msgid ""
+"Hubbub is an HTML5 compliant parsing library, written in C, which can\n"
+"parse both valid and invalid web content.  It is developed as part of the\n"
+"NetSurf project."
+msgstr ""
+
+#: gnu/packages/web.scm:4964
+msgid "Wiki compiler, capable of generating HTML"
+msgstr ""
+
+#: gnu/packages/web.scm:4966
+msgid ""
+"Ikiwiki is a wiki compiler, capable of generating a static set of web\n"
+"pages, but also incorporating dynamic features like a web based editor and\n"
+"commenting."
+msgstr ""
+
+#: gnu/packages/web.scm:4990
+msgid "String internment library"
+msgstr ""
+
+#: gnu/packages/web.scm:4992
+msgid ""
+"LibWapcaplet provides a reference counted string internment system\n"
+"designed to store small strings and allow rapid comparison of them.  It is\n"
+"developed as part of the Netsurf project."
+msgstr ""
+
+#: gnu/packages/web.scm:5019
+#, fuzzy
+#| msgid "PDF rendering library"
+msgid "CSS parser and selection library"
+msgstr "PDF-bildiga biblioteko"
+
+#: gnu/packages/web.scm:5021
+msgid ""
+"LibCSS is a CSS (Cascading Style Sheet) parser and selection engine,\n"
+"written in C.  It is developed as part of the NetSurf project."
+msgstr ""
+
+#: gnu/packages/web.scm:5054
+msgid "C library for reading and writing YAML"
+msgstr ""
+
+#: gnu/packages/web.scm:5056
+msgid ""
+"LibCYAML is a C library written in ISO C11 for reading and writing\n"
+"structured YAML documents.  The fundamental idea behind CYAML is to allow\n"
+"applications to construct schemas which describe both the permissible\n"
+"structure of the YAML documents to read/write, and the C data structure(s)\n"
+"in which the loaded data is arranged in memory."
+msgstr ""
+
+#: gnu/packages/web.scm:5094
+#, fuzzy
+#| msgid "Curses Implementation of the Glk API"
+msgid "Implementation of the W3C DOM"
+msgstr "Realigo curses de la API Glk"
+
+#: gnu/packages/web.scm:5096
+msgid ""
+"LibDOM is an implementation of the W3C DOM, written in C.  It is\n"
+"developed as part of the NetSurf project."
+msgstr ""
+
+#: gnu/packages/web.scm:5123
+#, fuzzy
+#| msgid "Library for handling PNG files"
+msgid "Library for parsing SVG files"
+msgstr "Biblioteko por trakti dosierojn PNG"
+
+#: gnu/packages/web.scm:5125
+msgid ""
+"Libsvgtiny takes some SVG as input and returns a list of paths and texts\n"
+"which can be rendered easily, as defined in\n"
+"@url{http://www.w3.org/TR/SVGMobile/}.  It is developed as part of the NetSurf\n"
+"project."
+msgstr ""
+
+#: gnu/packages/web.scm:5148
+#, fuzzy
+#| msgid "Library for handling TIFF files"
+msgid "Decoding library for BMP and ICO files"
+msgstr "Biblioteko por trakti dosierojn TIFF"
+
+#: gnu/packages/web.scm:5150
+msgid ""
+"Libnsbmp is a decoding library for BMP and ICO image file formats,\n"
+"written in C.  It is developed as part of the NetSurf project."
+msgstr ""
+
+#: gnu/packages/web.scm:5171
+#, fuzzy
+#| msgid "Library for handling TIFF files"
+msgid "Decoding library for GIF files"
+msgstr "Biblioteko por trakti dosierojn TIFF"
+
+#: gnu/packages/web.scm:5173
+msgid ""
+"Libnsgif is a decoding library for the GIF image file format, written in\n"
+"C.  It is developed as part of the NetSurf project."
+msgstr ""
+
+#: gnu/packages/web.scm:5198
+#, fuzzy
+#| msgid "PDF rendering library"
+msgid "Logging library"
+msgstr "PDF-bildiga biblioteko"
+
+#: gnu/packages/web.scm:5200
+msgid ""
+"Libnslog provides a category-based logging library which supports\n"
+"complex logging filters, multiple log levels, and provides context through to\n"
+"client applications.  It is developed as part of the NetSurf project."
+msgstr ""
+
+#: gnu/packages/web.scm:5222
+msgid "Utility library for NetSurf"
+msgstr ""
+
+#: gnu/packages/web.scm:5224
+msgid ""
+"Libnsutils provides a small number of useful utility routines.  It is\n"
+"developed as part of the NetSurf project."
+msgstr ""
+
+#: gnu/packages/web.scm:5245
+msgid "Library to generate a static Public Suffix List"
+msgstr ""
+
+#: gnu/packages/web.scm:5247
+msgid ""
+"Libnspsl is a library to generate a static code representation of the\n"
+"Public Suffix List.  It is developed as part of the NetSurf project."
+msgstr ""
+
+#: gnu/packages/web.scm:5273
+msgid "Generate JavaScript to DOM bindings"
+msgstr ""
+
+#: gnu/packages/web.scm:5275
+msgid ""
+"@code{nsgenbind} is a tool to generate JavaScript to DOM bindings from\n"
+"w3c webidl files and a binding configuration file."
+msgstr ""
+
+#: gnu/packages/web.scm:5396
+msgid "Web browser"
+msgstr ""
+
+#: gnu/packages/web.scm:5398
+msgid ""
+"NetSurf is a lightweight web browser that has its own layout and\n"
+"rendering engine entirely written from scratch.  It is small and capable of\n"
+"handling many of the web standards in use today."
+msgstr ""
+
+#: gnu/packages/web.scm:5439
+msgid "Unix command line interface to the www"
+msgstr ""
+
+#: gnu/packages/web.scm:5440
+msgid ""
+"Surfraw (Shell Users' Revolutionary Front Rage Against the Web)\n"
+"provides a unix command line interface to a variety of popular www search engines\n"
+"and similar services."
+msgstr ""
+
+#: gnu/packages/web.scm:5471
+msgid "Simple static web server"
+msgstr ""
+
+#: gnu/packages/web.scm:5472
+msgid ""
+"darkhttpd is a simple static web server.  It is\n"
+"standalone and does not need inetd or ucspi-tcp.  It does not need any\n"
+"config files---you only have to specify the www root."
+msgstr ""
+
+#: gnu/packages/web.scm:5503
+msgid "Analyze Web server logs in real time"
+msgstr ""
+
+#: gnu/packages/web.scm:5505
+msgid ""
+"GoAccess is a real-time web log analyzer and interactive viewer that\n"
+"runs in a terminal or through your browser.  It provides fast and valuable\n"
+"HTTP statistics for system administrators that require a visual server report\n"
+"on the fly."
+msgstr ""
+
+#: gnu/packages/web.scm:5557
+msgid "Scalable TLS proxy"
+msgstr ""
+
+#: gnu/packages/web.scm:5559
+msgid ""
+"Hitch is a performant TLS proxy based on @code{libev}.  It terminates\n"
+"SSL/TLS connections and forwards the unencrypted traffic to a backend such\n"
+"as a web server.  It is designed to handle many thousand connections on\n"
+"multicore machines."
+msgstr ""
+
+#: gnu/packages/web.scm:5595
+msgid "Tunnel data connections through HTTP requests"
+msgstr ""
+
+#: gnu/packages/web.scm:5596
+msgid ""
+"httptunnel creates a bidirectional virtual data connection\n"
+"tunnelled through HTTP (HyperText Transfer Protocol) requests.  This can be\n"
+"useful for users behind restrictive firewalls.  As long as Web traffic is\n"
+"allowed, even through a HTTP-only proxy, httptunnel can be combined with other\n"
+"tools like SSH (Secure Shell) to reach the outside world."
+msgstr ""
+
+#: gnu/packages/web.scm:5642
+msgid "TLS proxy for clients or servers"
+msgstr ""
+
+#: gnu/packages/web.scm:5643
+msgid ""
+"Stunnel is a proxy designed to add TLS encryption\n"
+"functionality to existing clients and servers without any changes in the\n"
+"programs' code.  Its architecture is optimized for security, portability, and\n"
+"scalability (including load-balancing), making it suitable for large\n"
+"deployments."
+msgstr ""
+
+#: gnu/packages/web.scm:5713
+msgid "Web application accelerator"
+msgstr ""
+
+#: gnu/packages/web.scm:5715
+msgid ""
+"Varnish is a high-performance HTTP accelerator.  It acts as a caching\n"
+"reverse proxy and load balancer.  You install it in front of any server that\n"
+"speaks HTTP and configure it to cache the contents through an extensive\n"
+"configuration language."
+msgstr ""
+
+#: gnu/packages/web.scm:5743
+#, fuzzy
+#| msgid "Collection of useful Guile Scheme modules"
+msgid "Collection of Varnish modules"
+msgstr "Aro da utilaj moduloj de Guile Scheme"
+
+#: gnu/packages/web.scm:5745
+msgid ""
+"This package provides a collection of modules (@dfn{vmods}) for the Varnish\n"
+"cache server, extending the @acronym{VCL, Varnish Configuration Language} with\n"
+"additional capabilities."
+msgstr ""
+
+#: gnu/packages/web.scm:5774
+msgid "Internet services daemon"
+msgstr ""
+
+#: gnu/packages/web.scm:5775
+msgid ""
+"@code{xinetd}, a more secure replacement for @code{inetd},\n"
+"listens for incoming requests over a network and launches the appropriate\n"
+"service for that request.  Requests are made using port numbers as identifiers\n"
+"and xinetd usually launches another daemon to handle the request.  It can be\n"
+"used to start services with both privileged and non-privileged port numbers."
+msgstr ""
+
+#: gnu/packages/web.scm:5820
+msgid "HTML Tidy with HTML5 support"
+msgstr ""
+
+#: gnu/packages/web.scm:5822
+msgid ""
+"Tidy is a console application which corrects and cleans up\n"
+"HTML and XML documents by fixing markup errors and upgrading\n"
+"legacy code to modern standards.\n"
+"\n"
+"Tidy also provides @code{libtidy}, a C static and dynamic library that\n"
+"developers can integrate into their applications to make use of the\n"
+"functions of Tidy."
+msgstr ""
+
+#: gnu/packages/web.scm:5885
+msgid "Webserver with focus on security"
+msgstr ""
+
+#: gnu/packages/web.scm:5887
+msgid ""
+"Hiawatha has been written with security in mind.\n"
+"Features include the ability to stop SQL injections, XSS and CSRF attacks and\n"
+"exploit attempts."
+msgstr ""
+
+#: gnu/packages/web.scm:5911
+msgid "HTTP request and response service"
+msgstr ""
+
+#: gnu/packages/web.scm:5912
+msgid ""
+"Testing an HTTP Library can become difficult sometimes.\n"
+"@code{RequestBin} is fantastic for testing POST requests, but doesn't let you control the\n"
+"response.  This exists to cover all kinds of HTTP scenarios.  All endpoint responses are\n"
+"JSON-encoded."
+msgstr ""
+
+#: gnu/packages/web.scm:5940
+msgid "Test your HTTP library against a local copy of httpbin"
+msgstr ""
+
+#: gnu/packages/web.scm:5942
+msgid ""
+"@code{Pytest-httpbin} creates a @code{pytest} fixture that is dependency-injected\n"
+"into your tests.  It automatically starts up a HTTP server in a separate thread running\n"
+"@code{httpbin} and provides your test with the URL in the fixture."
+msgstr ""
+
+#: gnu/packages/web.scm:6015
+msgid "HTTP request/response parser for C"
+msgstr ""
+
+#: gnu/packages/web.scm:6016
+msgid ""
+"This is a parser for HTTP messages written in C.  It parses\n"
+"both requests and responses.  The parser is designed to be used in\n"
+"high-performance HTTP applications.  It does not make any syscalls nor\n"
+"allocations, it does not buffer data, it can be interrupted at anytime.\n"
+"Depending on your architecture, it only requires about 40 bytes of data per\n"
+"message stream (in a web server that is per connection)."
+msgstr ""
+
+#: gnu/packages/web.scm:6049
+msgid "HTTP client mock for Python"
+msgstr ""
+
+#: gnu/packages/web.scm:6050
+msgid ""
+"@code{httpretty} is a helper for faking web requests,\n"
+"inspired by Ruby's @code{fakeweb}."
+msgstr ""
+
+#: gnu/packages/web.scm:6067
+msgid "Output JSON from a shell"
+msgstr ""
+
+#: gnu/packages/web.scm:6068
+msgid ""
+"jo is a command-line utility to create JSON objects or\n"
+"arrays.  It creates a JSON string on stdout from words provided as\n"
+"command-line arguments or read from stdin."
+msgstr ""
+
+#: gnu/packages/web.scm:6128
+#, fuzzy
+#| msgid "Provides an interface to ZIP archive files"
+msgid "Command-line interface to archive.org"
+msgstr "Provizas interfacon por arĥiv-dosierojn ZIP"
+
+#: gnu/packages/web.scm:6129
+msgid ""
+"@code{ia} is a command-line tool for using\n"
+"@url{archive.org} from the command-line.  It also emplements the\n"
+"internetarchive python module for programmatic access to archive.org."
+msgstr ""
+
+#: gnu/packages/web.scm:6179
+msgid "Search code snippets on @url{https://commandlinefu.com}"
+msgstr ""
+
+#: gnu/packages/web.scm:6180
+msgid ""
+"@code{clf} is a command line tool for searching code\n"
+"snippets on @url{https://commandlinefu.com}."
+msgstr ""
+
+#: gnu/packages/web.scm:6213
+msgid "Generate Atom feeds for social networking websites"
+msgstr ""
+
+#: gnu/packages/web.scm:6214
+msgid ""
+"rss-bridge generates Atom feeds for social networking\n"
+"websites lacking feeds.  Supported websites include Facebook, Twitter,\n"
+"Instagram and YouTube."
+msgstr ""
+
+#: gnu/packages/web.scm:6268
+msgid "Check websites for broken links"
+msgstr ""
+
+#: gnu/packages/web.scm:6269
+msgid ""
+"LinkChecker is a website validator.  It checks for broken\n"
+"links in websites.  It is recursive and multithreaded providing output in\n"
+"colored or normal text, HTML, SQL, CSV, XML or as a sitemap graph.  It\n"
+"supports checking HTTP/1.1, HTTPS, FTP, mailto, news, nntp, telnet and local\n"
+"file links."
+msgstr ""
+
+#: gnu/packages/web.scm:6305
+msgid "Command-line WebDAV client"
+msgstr ""
+
+#: gnu/packages/web.scm:6307
+msgid ""
+"Cadaver is a command-line WebDAV client for Unix.  It supports\n"
+"file upload, download, on-screen display, namespace operations (move/copy),\n"
+"collection creation and deletion, and locking operations."
+msgstr ""
+
+#: gnu/packages/web.scm:6325
+msgid "Universal Binary JSON encoder/decoder"
+msgstr ""
+
+#: gnu/packages/web.scm:6327
+msgid ""
+"Py-ubjson is a Python module providing an Universal Binary JSON\n"
+"encoder/decoder based on the draft-12 specification for UBJSON."
+msgstr ""
+
+#: gnu/packages/web.scm:6421
+msgid ""
+"Java Servlet, JavaServer Pages, Java Expression Language and Java\n"
+"WebSocket"
+msgstr ""
+
+#: gnu/packages/web.scm:6423
+msgid ""
+"Apache Tomcat is a free implementation of the Java\n"
+"Servlet, JavaServer Pages, Java Expression Language and Java WebSocket\n"
+"technologies."
+msgstr ""
+
+#: gnu/packages/web.scm:6476
+msgid "Helper classes for jetty tests"
+msgstr ""
+
+#: gnu/packages/web.scm:6477
+msgid ""
+"This package contains helper classes for testing the Jetty\n"
+"Web Server."
+msgstr ""
+
+#: gnu/packages/web.scm:6539
+msgid "Utility classes for Jetty"
+msgstr ""
+
+#: gnu/packages/web.scm:6540
+msgid ""
+"The Jetty Web Server provides an HTTP server and Servlet\n"
+"container capable of serving static and dynamic content either from a standalone\n"
+"or embedded instantiation.  This package provides utility classes."
+msgstr ""
+
+#: gnu/packages/web.scm:6611
+msgid "Jetty :: IO Utility"
+msgstr ""
+
+#: gnu/packages/web.scm:6612
+msgid ""
+"The Jetty Web Server provides an HTTP server and Servlet\n"
+"container capable of serving static and dynamic content either from a standalone\n"
+"or embedded instantiation.  This package provides IO-related utility classes."
+msgstr ""
+
+#: gnu/packages/web.scm:6655
+msgid "Jetty :: Http Utility"
+msgstr ""
+
+#: gnu/packages/web.scm:6656
+msgid ""
+"The Jetty Web Server provides an HTTP server and Servlet\n"
+"container capable of serving static and dynamic content either from a standalone\n"
+"or embedded instantiation.  This package provides HTTP-related utility classes."
+msgstr ""
+
+#: gnu/packages/web.scm:6689
+msgid "Jetty :: JMX Management"
+msgstr ""
+
+#: gnu/packages/web.scm:6690
+msgid ""
+"The Jetty Web Server provides an HTTP server and Servlet\n"
+"container capable of serving static and dynamic content either from a standalone\n"
+"or embedded instantiation.  This package provides the JMX management."
+msgstr ""
+
+#: gnu/packages/web.scm:6777
+msgid "Core jetty server artifact"
+msgstr ""
+
+#: gnu/packages/web.scm:6778
+msgid ""
+"The Jetty Web Server provides an HTTP server and Servlet\n"
+"container capable of serving static and dynamic content either from a standalone\n"
+"or embedded instantiation.  This package provides the core jetty server\n"
+"artifact."
+msgstr ""
+
+#: gnu/packages/web.scm:6822
+msgid "Jetty security infrastructure"
+msgstr ""
+
+#: gnu/packages/web.scm:6823
+msgid ""
+"The Jetty Web Server provides an HTTP server and Servlet\n"
+"container capable of serving static and dynamic content either from a standalone\n"
+"or embedded instantiation.  This package provides the core jetty security\n"
+"infrastructure"
+msgstr ""
+
+#: gnu/packages/web.scm:6866
+msgid "Jetty Servlet Container"
+msgstr ""
+
+#: gnu/packages/web.scm:6867
+msgid ""
+"The Jetty Web Server provides an HTTP server and Servlet\n"
+"container capable of serving static and dynamic content either from a standalone\n"
+"or embedded instantiation.  This package provides the core jetty servlet\n"
+"container."
+msgstr ""
+
+#: gnu/packages/web.scm:7033
+msgid "HTML parser"
+msgstr ""
+
+#: gnu/packages/web.scm:7034
+msgid ""
+"Jsoup is a Java library for working with real-world HTML.  It\n"
+"provides a very convenient API for extracting and manipulating data, using the\n"
+"best of DOM, CSS, and jQuery-like methods."
+msgstr ""
+
+#: gnu/packages/web.scm:7062
+msgid "Lightweight client-side OAuth library for Java"
+msgstr ""
+
+#: gnu/packages/web.scm:7063
+msgid ""
+"Signpost is the easy and intuitive solution for signing\n"
+"HTTP messages on the Java platform in conformance with the OAuth Core 1.0a\n"
+"standard.  Signpost follows a modular and flexible design, allowing you to\n"
+"combine it with different HTTP messaging layers."
+msgstr ""
+
+#: gnu/packages/web.scm:7085
+msgid "Validate HTML"
+msgstr ""
+
+#: gnu/packages/web.scm:7086
+msgid ""
+"Tidyp is a program that can validate your HTML, as well as\n"
+"modify it to be more clean and standard.  tidyp does not validate HTML 5.\n"
+"\n"
+"libtidyp is the library on which the program is based.  It can be used by any\n"
+"other program that can interface to it.  The Perl module @code{HTML::Tidy} is\n"
+"based on this library, allowing Perl programmers to easily validate HTML."
+msgstr ""
+
+#: gnu/packages/web.scm:7127
+msgid "(X)HTML validation in a Perl object"
+msgstr ""
+
+#: gnu/packages/web.scm:7128
+msgid ""
+"@code{HTML::Tidy} is an HTML checker in a handy dandy\n"
+"object.  It's meant as a replacement for @code{HTML::Lint}, which is written\n"
+"in Perl but is not nearly as capable as @code{HTML::Tidy}."
+msgstr ""
+
+#: gnu/packages/web.scm:7155
+msgid "Small Gopher server"
+msgstr ""
+
+#: gnu/packages/web.scm:7157
+msgid ""
+"Geomyidae is a server for distributed hypertext protocol Gopher.  Its\n"
+"features include:\n"
+"\n"
+"@enumerate\n"
+"@item Gopher menus (see @file{index.gph} for an example);\n"
+"@item directory listings (if no @file{index.gph} was found);\n"
+"@item CGI support (@file{.cgi} files are executed);\n"
+"@item search support in CGI files;\n"
+"@item logging with multiple log levels.\n"
+"@end enumerate\n"
+msgstr ""
+
+#: gnu/packages/web.scm:7204
+msgid "Random avatar generator"
+msgstr ""
+
+#: gnu/packages/web.scm:7205
+msgid ""
+"Cat avatar generator is a generator of cat pictures optimised\n"
+"to generate random avatars, or defined avatar from a \"seed\".  This is a\n"
+"derivation by David Revoy from the original MonsterID by Andreas Gohr."
+msgstr ""
+
+#: gnu/packages/web.scm:7273
+msgid "HTTP/2 protocol client, proxy, server, and library"
+msgstr ""
+
+#: gnu/packages/web.scm:7275
+msgid ""
+"nghttp2 implements the Hypertext Transfer Protocol, version\n"
+"2 (@dfn{HTTP/2}).\n"
+"\n"
+"A reusable C library provides the HTTP/2 framing layer, with several tools built\n"
+"on top of it:\n"
+"\n"
+"@itemize\n"
+"@item @command{nghttp}, a command-line HTTP/2 client.  It exposes many advanced\n"
+"and low-level aspects of the protocol and is useful for debugging.\n"
+"@item @command{nghttpd}, a fast, multi-threaded HTTP/2 static web server that\n"
+"serves files from a local directory.\n"
+"@item @command{nghttpx}, a fast, multi-threaded HTTP/2 reverse proxy that can be\n"
+"deployed in front of existing web servers that don't support HTTP/2.\n"
+"Both @command{nghttpd} and @command{nghttpx} can fall back to HTTP/1.1 for\n"
+"backwards compatibility with clients that don't speak HTTP/2.\n"
+"@item @command{h2load} for benchmarking (only!) your own HTTP/2 servers.\n"
+"@item HTTP/2 uses a header compression method called @dfn{HPACK}.\n"
+"nghttp2 provides a HPACK encoder and decoder as part of its public API.\n"
+"@item @command{deflatehd} converts JSON data or HTTP/1-style header fields to\n"
+"compressed JSON header blocks.\n"
+"@item @command{inflatehd} converts such compressed headers back to JSON pairs.\n"
+"@end itemize\n"
+msgstr ""
+
+#: gnu/packages/web.scm:7390
+msgid "Web interface for cluster deployments of Guix"
+msgstr ""
+
+#: gnu/packages/web.scm:7391
+msgid ""
+"Hpcguix-web provides a web interface to the list of packages\n"
+"provided by Guix.  The list of packages is searchable and provides\n"
+"instructions on how to use Guix in a shared HPC environment."
+msgstr ""
+
+#: gnu/packages/web.scm:7412
+msgid "Easy-to-use offline browser utility"
+msgstr ""
+
+#: gnu/packages/web.scm:7413
+msgid ""
+"HTTrack allows you to download a World Wide Web site from\n"
+"the Internet to a local directory, building recursively all directories,\n"
+"getting HTML, images, and other files from the server to your computer.\n"
+"\n"
+"HTTrack arranges the original site's relative link-structure.  Simply open\n"
+"a page of the @emph{mirrored} website in your browser, and you can browse the\n"
+"site from link to link, as if you were viewing it online.  HTTrack can also\n"
+"update an existing mirrored site, and resume interrupted downloads.\n"
+"\n"
+"HTTrack is fully configurable, and has an integrated help system."
+msgstr ""
+
+#: gnu/packages/web.scm:7437
+msgid "Anonymize IP addresses in log files"
+msgstr ""
+
+#: gnu/packages/web.scm:7439
+msgid ""
+"Anonip masks the last bits of IPv4 and IPv6 addresses in log files.\n"
+"That way most of the relevant information is preserved, while the IP address\n"
+"does not match a particular individuum anymore.\n"
+"\n"
+"Depending on your Web server, the log entries may be piped to Anonip directly\n"
+"or via a FIFO (named pipe).  Thus the unmasked IP addresses will never be\n"
+"written to any file.\n"
+"\n"
+"It's also possible to rewrite existing log files.\n"
+"\n"
+"Anonip can also be uses as a Python module in your own Python application."
+msgstr ""
+
+#: gnu/packages/web.scm:7473
+msgid "Lightweight asynchronous task execution service"
+msgstr ""
+
+#: gnu/packages/web.scm:7474
+msgid ""
+"Poussetaches (which literally means \"push tasks\" in\n"
+"French) is a lightweight asynchronous task execution service that aims to\n"
+"replace Celery and RabbitMQ for small Python applications.\n"
+"\n"
+"The app posts base64-encoded payload to poussetaches and specifies the\n"
+"endpoint that will be used to trigger the task.  Poussetaches makes HTTP\n"
+"requests with the registered payload until the right status code is\n"
+"returned."
+msgstr ""
+
+#: gnu/packages/web.scm:7498
+msgid "Simple non-validating CSS1 and HTML parser for C++"
+msgstr ""
+
+#: gnu/packages/web.scm:7499
+msgid ""
+"htmlcxx is a simple non-validating CSS1 and HTML parser for\n"
+"C++.  Although there are several other HTML parsers available, htmlcxx has some\n"
+"characteristics that make it unique:\n"
+"@itemize\n"
+"@item STL like navigation of DOM tree, using excelent's tree.hh library from\n"
+"Kasper Peeters\n"
+"@item It is possible to reproduce exactly, character by character, the original\n"
+"document from the parse tree\n"
+"@item Bundled CSS parser\n"
+"@item Optional parsing of attributes\n"
+"@item C++ code that looks like C++ (not so true anymore)\n"
+"@item Offsets of tags/elements in the original document are stored in the nodes\n"
+"of the DOM tree\n"
+"@end itemize"
+msgstr ""
+
+#: gnu/packages/web.scm:7542
+msgid "HTML/CSS user interface library"
+msgstr ""
+
+#: gnu/packages/web.scm:7543
+msgid ""
+"libRocket is a C++ user interface package based on the HTML\n"
+"and CSS standards.  libRocket uses the open standards XHTML1.0 and\n"
+"CSS2.0 (while borrowing features from HTML5 and CSS3), and extends them with\n"
+"features suited towards real-time applications.  It is designed as a complete\n"
+"solution for any project's interface needs:\n"
+"\n"
+"@itemize\n"
+"@item Dynamic layout system.\n"
+"@item Efficient application-wide styling, with a custom-built templating engine.\n"
+"@item Fully featured control set: buttons, sliders, drop-downs, etc.\n"
+"@item Runtime visual debugging suite.\n"
+"@item Easily integrated and extensible with Python or Lua scripting.\n"
+"@end itemize\n"
+msgstr ""
+
+#: gnu/packages/wordnet.scm:92
 msgid "Lexical database for the English language"
 msgstr "Leksika datumbazo por la angla lingvo"
 
-#: gnu/packages/wordnet.scm:81
+#: gnu/packages/wordnet.scm:94
 msgid ""
-"WordNet® is a large lexical database of English.  Nouns, verbs,\n"
-"adjectives and adverbs are grouped into sets of cognitive synonyms\n"
-"(synsets), each expressing a distinct concept.  Synsets are interlinked by\n"
-"means of conceptual-semantic and lexical relations.  The resulting network of\n"
+"WordNet is a large lexical database of English.  Nouns, verbs,\n"
+"adjectives and adverbs are grouped into sets of cognitive synonyms (synsets),\n"
+"each expressing a distinct concept.  Synsets are interlinked by means of\n"
+"conceptual-semantic and lexical relations.  The resulting network of\n"
 "meaningfully related words and concepts can be navigated with the browser.\n"
 "WordNet is also freely and publicly available for download.  WordNet's\n"
 "structure makes it a useful tool for computational linguistics and natural\n"
 "language processing."
 msgstr ""
 
-#: gnu/packages/xiph.scm:61
+#: gnu/packages/xiph.scm:75
 msgid "Library for manipulating the ogg multimedia format"
 msgstr "Biblioteko por manipuli la aŭdvidan formon ogg"
 
-#: gnu/packages/xiph.scm:63
+#: gnu/packages/xiph.scm:77
 msgid ""
-"The libogg library allows to manipulate the ogg multimedia container\n"
+"The libogg library manipulates the ogg multimedia container\n"
 "format, which encapsulates raw compressed data and allows the interleaving of\n"
 "audio and video data.  In addition to encapsulation and interleaving of\n"
 "multiple data streams, ogg provides packet framing, error detection, and\n"
 "periodic timestamps for seeking."
 msgstr ""
 
-#: gnu/packages/xiph.scm:87
+#: gnu/packages/xiph.scm:102
 msgid "Library implementing the vorbis audio format"
 msgstr "Biblioteko kiu realigas la aŭdformon vorbis"
 
-#: gnu/packages/xiph.scm:89
+#: gnu/packages/xiph.scm:104
 msgid ""
 "The libvorbis library implements the ogg vorbis audio format,\n"
 "a fully open, non-proprietary, patent-and-royalty-free, general-purpose\n"
@@ -1982,22 +29217,22 @@ msgid ""
 "128 kbps/channel."
 msgstr ""
 
-#: gnu/packages/xiph.scm:114
+#: gnu/packages/xiph.scm:131
 msgid "Library implementing the Theora video format"
 msgstr "Biblioteko kiu realigas la videformon Theora"
 
-#: gnu/packages/xiph.scm:116
+#: gnu/packages/xiph.scm:133
 msgid ""
 "The libtheora library implements the ogg theora video format,\n"
 "a fully open, non-proprietary, patent-and-royalty-free, general-purpose\n"
 "compressed video format."
 msgstr ""
 
-#: gnu/packages/xiph.scm:137
+#: gnu/packages/xiph.scm:160
 msgid "Library for patent-free audio compression format"
 msgstr "Biblioteko por senpatenta sondensiga formo"
 
-#: gnu/packages/xiph.scm:139
+#: gnu/packages/xiph.scm:162
 msgid ""
 "GNU Speex is a patent-free audio compression codec specially designed\n"
 "for speech.  It is well-adapted to internet applications, such as VoIP.  It\n"
@@ -2005,39 +29240,53 @@ msgid ""
 "stereo encoding, and voice activity detection."
 msgstr ""
 
-#: gnu/packages/xiph.scm:167
+#: gnu/packages/xiph.scm:189
+#, fuzzy
+#| msgid "PDF rendering library"
+msgid "Speex processing library"
+msgstr "PDF-bildiga biblioteko"
+
+#: gnu/packages/xiph.scm:191
+msgid ""
+"SpeexDSP is a @dfn{DSP} (Digital Signal Processing) library based on\n"
+"work from the @code{speex} codec."
+msgstr ""
+
+#: gnu/packages/xiph.scm:223
 msgid "Cross platform audio library"
 msgstr "Plursistema son-biblioteko"
 
-#: gnu/packages/xiph.scm:169
+#: gnu/packages/xiph.scm:225
 msgid ""
 "Libao is a cross-platform audio library that allows programs to\n"
 "output audio using a simple API on a wide variety of platforms.\n"
 "It currently supports:\n"
-"Null output (handy for testing without a sound device),\n"
-"WAV files,\n"
-"AU files,\n"
-"RAW files,\n"
-"OSS (Open Sound System, used on Linux and FreeBSD),\n"
-"ALSA (Advanced Linux Sound Architecture),\n"
-"aRts (Analog RealTime Synth, used by KDE),\n"
-"PulseAudio (next generation GNOME sound server),\n"
-"esd (EsounD or Enlightened Sound Daemon),\n"
-"Mac OS X,\n"
-"Windows (98 and later),\n"
-"AIX,\n"
-"Sun/NetBSD/OpenBSD,\n"
-"IRIX,\n"
-"NAS (Network Audio Server),\n"
-"RoarAudio (Modern, multi-OS, networked Sound System),\n"
-"OpenBSD's sndio."
-msgstr ""
-
-#: gnu/packages/xiph.scm:208
+"@enumerate\n"
+"@item Null output (handy for testing without a sound device),\n"
+"@item WAV files,\n"
+"@item AU files,\n"
+"@item RAW files,\n"
+"@item OSS (Open Sound System, used on Linux and FreeBSD),\n"
+"@item ALSA (Advanced Linux Sound Architecture),\n"
+"@item aRts (Analog RealTime Synth, used by KDE),\n"
+"@item PulseAudio (next generation GNOME sound server),\n"
+"@item esd (EsounD or Enlightened Sound Daemon),\n"
+"@item Mac OS X,\n"
+"@item Windows (98 and later),\n"
+"@item AIX,\n"
+"@item Sun/NetBSD/OpenBSD,\n"
+"@item IRIX,\n"
+"@item NAS (Network Audio Server),\n"
+"@item RoarAudio (Modern, multi-OS, networked Sound System),\n"
+"@item OpenBSD's sndio.\n"
+"@end enumerate\n"
+msgstr ""
+
+#: gnu/packages/xiph.scm:268
 msgid "Free lossless audio codec"
 msgstr "Libera senperda sona kodeko"
 
-#: gnu/packages/xiph.scm:210
+#: gnu/packages/xiph.scm:270
 msgid ""
 "FLAC stands for Free Lossless Audio Codec, an audio format that is lossless,\n"
 "meaning that audio is compressed in FLAC without any loss in quality."
@@ -2045,11 +29294,11 @@ msgstr ""
 "FLAC signifas Libera Senperda Son-kodeko, kio signifas ke,\n"
 "sono densigita per FLAC ne havas perdon en ĝia kvalito."
 
-#: gnu/packages/xiph.scm:236
+#: gnu/packages/xiph.scm:296
 msgid "Karaoke and text codec for embedding in ogg"
 msgstr "Karaokea kaj teksta kodeko por enkorpigi en ogg"
 
-#: gnu/packages/xiph.scm:238
+#: gnu/packages/xiph.scm:298
 msgid ""
 "Kate is an overlay codec, originally designed for karaoke and text,\n"
 "that can be multiplixed in Ogg.  Text and images can be carried by a Kate\n"
@@ -2064,11 +29313,11 @@ msgid ""
 "Kate stream."
 msgstr ""
 
-#: gnu/packages/xiph.scm:272
+#: gnu/packages/xiph.scm:336
 msgid "Ogg vorbis tools"
 msgstr "Ilaro ogg vorbis"
 
-#: gnu/packages/xiph.scm:274
+#: gnu/packages/xiph.scm:338
 msgid ""
 "Ogg vorbis is a non-proprietary, patent-and-royalty-free,\n"
 "general-purpose compressed audio format.\n"
@@ -2081,11 +29330,11 @@ msgid ""
 "         an ogg vorbis file."
 msgstr ""
 
-#: gnu/packages/xiph.scm:299
+#: gnu/packages/xiph.scm:364 gnu/packages/xiph.scm:432
 msgid "Versatile audio codec"
 msgstr "Diversutila son-kodeko"
 
-#: gnu/packages/xiph.scm:301
+#: gnu/packages/xiph.scm:366
 msgid ""
 "Opus is a totally open, royalty-free, highly versatile audio codec.  Opus\n"
 "is unmatched for interactive speech and music transmission over the Internet,\n"
@@ -2094,96 +29343,335 @@ msgid ""
 "incorporated technology from Skype's SILK codec and Xiph.Org's CELT codec."
 msgstr ""
 
-#: gnu/packages/xiph.scm:334
-msgid ""
-"Command line utilities to encode, inspect, and decode .opus\n"
-"files"
+#: gnu/packages/xiph.scm:403
+#, fuzzy
+#| msgid ""
+#| "Command line utilities to encode, inspect, and decode .opus\n"
+#| "files"
+msgid "Command line utilities to encode, inspect, and decode .opus files"
 msgstr ""
 "Komandliniaj utilaĵoj por enkodigi, inspekti, kaj dekodigi\n"
 "dosierojn .opus"
 
-#: gnu/packages/xiph.scm:336
+#: gnu/packages/xiph.scm:404
 msgid ""
 "Opus is a royalty-free, highly versatile audio codec.\n"
 "Opus-tools provide command line utilities for creating, inspecting and\n"
-"decoding .opus files"
+"decoding .opus files."
 msgstr ""
 
-#: gnu/packages/zip.scm:57
-msgid "Compression and file packing utility"
-msgstr "Utilaĵo por densigi kaj pakigi dosierojn"
+#: gnu/packages/xiph.scm:434
+msgid ""
+"The opusfile library provides seeking, decode, and playback of Opus\n"
+"streams in the Ogg container (.opus files) including over http(s) on posix and\n"
+"windows systems."
+msgstr ""
 
-#: gnu/packages/zip.scm:59
+#: gnu/packages/xiph.scm:456
+#, fuzzy
+#| msgid "Library for handling PNG files"
+msgid "Library for encoding Opus audio files and streams "
+msgstr "Biblioteko por trakti dosierojn PNG"
+
+#: gnu/packages/xiph.scm:457
 msgid ""
-"Zip is a compression and file packaging/archive utility.  Zip is useful\n"
-"for packaging a set of files for distribution, for archiving files, and for\n"
-"saving disk space by temporarily compressing unused files or directories.\n"
-"Zip puts one or more compressed files into a single ZIP archive, along with\n"
-"information about the files (name, path, date, time of last modification,\n"
-"protection, and check information to verify file integrity).  An entire\n"
-"directory structure can be packed into a ZIP archive with a single command.\n"
-"\n"
-"Zip has one compression method (deflation) and can also store files without\n"
-"compression.  Zip automatically chooses the better of the two for each file.\n"
-"Compression ratios of 2:1 to 3:1 are common for text files."
+"The libopusenc libraries provide a high-level API for\n"
+"encoding Opus files and streams."
 msgstr ""
 
-#: gnu/packages/zip.scm:102
-msgid "Decompression and file extraction utility"
-msgstr "Utilaĵo por maldensigi kaj malpakigi dosierojn"
+#: gnu/packages/xiph.scm:486
+#, fuzzy
+#| msgid "Stream editor"
+msgid "Streaming media server"
+msgstr "Flu-redaktilo"
 
-#: gnu/packages/zip.scm:104
+#: gnu/packages/xiph.scm:487
 msgid ""
-"UnZip is an extraction utility for archives compressed in .zip format,\n"
-"also called \"zipfiles\".\n"
+"Icecast is a streaming media server which currently supports\n"
+"Ogg (Vorbis and Theora), Opus, WebM and MP3 audio streams.  It can be used to\n"
+"create an Internet radio station or a privately running jukebox and many\n"
+"things in between."
+msgstr ""
+
+#: gnu/packages/xiph.scm:515
+msgid "Audio streaming library for icecast encoders"
+msgstr ""
+
+#: gnu/packages/xiph.scm:517
+msgid ""
+"Libshout is a library for communicating with and sending data to an\n"
+"icecast server.  It handles the socket connection, the timing of the data,\n"
+"and prevents bad data from getting to the icecast server."
+msgstr ""
+
+#: gnu/services/base.scm:238
+msgid ""
+"Populate the @file{/etc/fstab} based on the given file\n"
+"system objects."
+msgstr ""
+
+#: gnu/services/base.scm:432
+msgid ""
+"Provide Shepherd services to mount and unmount the given\n"
+"file systems, as well as corresponding @file{/etc/fstab} entries."
+msgstr ""
+
+#: gnu/services/base.scm:530
+msgid ""
+"Seed the @file{/dev/urandom} pseudo-random number\n"
+"generator (RNG) with the value recorded when the system was last shut\n"
+"down."
+msgstr ""
+
+#: gnu/services/base.scm:696
+msgid ""
+"Install the given fonts on the specified ttys (fonts are per\n"
+"virtual console on GNU/Linux).  The value of this service is a list of\n"
+"tty/font pairs.  The font can be the name of a font provided by the @code{kbd}\n"
+"package or any valid argument to @command{setfont}, as in this example:\n"
 "\n"
-"UnZip lists, tests, or extracts files from a .zip archive.  The default\n"
-"behaviour (with no options) is to extract into the current directory, and\n"
-"subdirectories below it, all files from the specified zipfile.  UnZip\n"
-"recreates the stored directory structure by default."
+"@example\n"
+"`((\"tty1\" . \"LatGrkCyr-8x16\")\n"
+"  (\"tty2\" . ,(file-append\n"
+"                 font-tamzen\n"
+"                 \"/share/kbd/consolefonts/TamzenForPowerline10x20.psf\"))\n"
+"  (\"tty3\" . ,(file-append\n"
+"                 font-terminus\n"
+"                 \"/share/consolefonts/ter-132n\"))) ; for HDPI\n"
+"@end example\n"
 msgstr ""
 
-#: gnu/packages/zip.scm:138
-msgid "Library for accessing zip files"
-msgstr "Biblioteko por aliri zip-dosierojn"
+#: gnu/services/base.scm:748
+msgid ""
+"Provide a console log-in service as specified by its\n"
+"configuration value, a @code{login-configuration} object."
+msgstr ""
 
-#: gnu/packages/zip.scm:140
-msgid "ZZipLib is a library based on zlib for accessing zip files."
-msgstr "ZZipLib estas biblioteko bazita sur zlib por aliri zip-dosierojn."
+#: gnu/services/base.scm:1016
+msgid ""
+"Provide console login using the @command{agetty}\n"
+"program."
+msgstr ""
 
-#: gnu/packages/zip.scm:158
-msgid "Provides an interface to ZIP archive files"
-msgstr "Provizas interfacon por arĥiv-dosierojn ZIP"
+#: gnu/services/base.scm:1077
+msgid ""
+"Provide console login using the @command{mingetty}\n"
+"program."
+msgstr ""
 
-#: gnu/packages/zip.scm:159
+#: gnu/services/base.scm:1294
 msgid ""
-"The Archive::Zip module allows a Perl program to create,\n"
-"manipulate, read, and write Zip archive files."
+"Runs libc's @dfn{name service cache daemon} (nscd) with the\n"
+"given configuration---an @code{<nscd-configuration>} object.  @xref{Name\n"
+"Service Switch}, for an example."
 msgstr ""
-"La modulo Archive::Zip ebligas al Perl-programo krei,\n"
-"manipuli, legi, kaj skribi arĥiv-dosierojn ZIP."
 
-#: gnu/packages/zsh.scm:63
-msgid "Powerful shell for interactive use and scripting"
-msgstr "Potenca ŝelo por interaga uzo kaj por skriptoj"
+#: gnu/services/base.scm:1401
+msgid ""
+"Install the specified resource usage limits by populating\n"
+"@file{/etc/security/limits.conf} and using the @code{pam_limits}\n"
+"authentication module."
+msgstr ""
+
+#: gnu/services/base.scm:1706
+msgid "Run the build daemon of GNU@tie{}Guix, aka. @command{guix-daemon}."
+msgstr ""
 
-#: gnu/packages/zsh.scm:64
+#: gnu/services/base.scm:1845
 msgid ""
-"The Z shell (zsh) is a Unix shell that can be used\n"
-"as an interactive login shell and as a powerful command interpreter\n"
-"for shell scripting.  Zsh can be thought of as an extended Bourne shell\n"
-"with a large number of improvements, including some features of bash,\n"
-"ksh, and tcsh."
+"Add a Shepherd service running @command{guix publish}, a\n"
+"command that allows you to share pre-built binaries with others over HTTP."
+msgstr ""
+
+#: gnu/services/base.scm:2064
+msgid ""
+"Run @command{udev}, which populates the @file{/dev}\n"
+"directory dynamically.  Get extra rules from the packages listed in the\n"
+"@code{rules} field of its value, @code{udev-configuration} object."
+msgstr ""
+
+#: gnu/services/base.scm:2166
+msgid ""
+"Run GPM, the general-purpose mouse daemon, with the given\n"
+"command-line options.  GPM allows users to use the mouse in the console,\n"
+"notably to select, copy, and paste text.  The default options use the\n"
+"@code{ps2} protocol, which works for both USB and PS/2 mice."
+msgstr ""
+
+#: gnu/services/base.scm:2350
+msgid ""
+"Turn up the specified network interfaces upon startup,\n"
+"with the given IP address, gateway, netmask, and so on.  The value for\n"
+"services of this type is a list of @code{static-networking} objects, one per\n"
+"network interface."
 msgstr ""
 
-#~ msgid "Create charts and graphs in Guile"
-#~ msgstr "Krei diagramojn kaj grafikaĵojn en Guile"
+#: gnu/services/certbot.scm:202
+msgid ""
+"Automatically renew @url{https://letsencrypt.org, Let's\n"
+"Encrypt} HTTPS certificates by adjusting the nginx web server configuration\n"
+"and periodically invoking @command{certbot}."
+msgstr ""
+
+#: gnu/services/networking.scm:341
+msgid ""
+"Run a DHCP (Dynamic Host Configuration Protocol) daemon.  The\n"
+"daemon is responsible for allocating IP addresses to its client."
+msgstr ""
+
+#: gnu/services/networking.scm:496
+msgid ""
+"Run the @command{ntpd}, the Network Time Protocol (NTP)\n"
+"daemon of the @uref{http://www.ntp.org, Network Time Foundation}.  The daemon\n"
+"will keep the system clock synchronized with that of the given servers."
+msgstr ""
+
+#: gnu/services/networking.scm:626
+msgid ""
+"Run the @command{ntpd}, the Network Time Protocol (NTP)\n"
+"daemon, as implemented by @uref{http://www.openntpd.org, OpenNTPD}.  The\n"
+"daemon will keep the system clock synchronized with that of the given servers."
+msgstr ""
+
+#: gnu/services/networking.scm:714
+msgid ""
+"Start @command{inetd}, the @dfn{Internet superserver}.  It is responsible\n"
+"for listening on Internet sockets and spawning the corresponding services on\n"
+"demand."
+msgstr ""
+
+#: gnu/services/networking.scm:893
+msgid ""
+"Run the @uref{https://torproject.org, Tor} anonymous\n"
+"networking daemon."
+msgstr ""
+
+#: gnu/services/networking.scm:917
+msgid "Define a new Tor @dfn{hidden service}."
+msgstr ""
+
+#: gnu/services/networking.scm:985
+msgid ""
+"Run @url{https://launchpad.net/wicd,Wicd}, a network\n"
+"management daemon that aims to simplify wired and wireless networking."
+msgstr ""
+
+#: gnu/services/networking.scm:1126
+msgid ""
+"Run @uref{https://wiki.gnome.org/Projects/NetworkManager,\n"
+"NetworkManager}, a network management daemon that aims to simplify wired and\n"
+"wireless networking."
+msgstr ""
+
+#: gnu/services/networking.scm:1195
+msgid ""
+"Run @url{https://01.org/connman,Connman},\n"
+"a network connection manager."
+msgstr ""
+
+#: gnu/services/networking.scm:1218
+msgid ""
+"Run @uref{https://wiki.gnome.org/Projects/ModemManager,\n"
+"ModemManager}, a modem management daemon that aims to simplify dialup\n"
+"networking."
+msgstr ""
+
+#: gnu/services/networking.scm:1308
+msgid ""
+"Run @uref{http://www.draisberghof.de/usb_modeswitch/,\n"
+"USB_ModeSwitch}, a mode switching tool for controlling USB devices with\n"
+"multiple @dfn{modes}.  When plugged in for the first time many USB\n"
+"devices (primarily high-speed WAN modems) act like a flash storage containing\n"
+"installers for Windows drivers.  USB_ModeSwitch replays the sequence the\n"
+"Windows drivers would send to switch their mode from storage to modem (or\n"
+"whatever the thing is supposed to do)."
+msgstr ""
+
+#: gnu/services/networking.scm:1379
+msgid ""
+"Run the WPA Supplicant daemon, a service that\n"
+"implements authentication, key negotiation and more for wireless networks."
+msgstr ""
+
+#: gnu/services/networking.scm:1440
+msgid ""
+"Run the @uref{https://w1.fi/hostapd/, hostapd} daemon for Wi-Fi access\n"
+"points and authentication servers."
+msgstr ""
+
+#: gnu/services/networking.scm:1474
+msgid "Run hostapd to simulate WiFi connectivity."
+msgstr ""
+
+#: gnu/services/networking.scm:1534
+msgid ""
+"Run @uref{http://www.openvswitch.org, Open vSwitch}, a multilayer virtual\n"
+"switch designed to enable massive network automation through programmatic\n"
+"extension."
+msgstr ""
+
+#: gnu/services/networking.scm:1580
+msgid "Run @command{iptables-restore}, setting up the specified rules."
+msgstr ""
+
+#: gnu/services/networking.scm:1649
+msgid "Run @command{nft}, setting up the specified ruleset."
+msgstr ""
+
+#: gnu/services/networking.scm:1750
+msgid ""
+"Run @url{https://pagekite.net/,PageKite}, a tunneling solution to make\n"
+"local servers publicly accessible on the web, even behind NATs and firewalls."
+msgstr ""
+
+#: gnu/services/version-control.scm:160
+msgid ""
+"Expose Git repositories over the insecure @code{git://} TCP-based\n"
+"protocol."
+msgstr ""
+
+#: gnu/services/version-control.scm:374
+msgid ""
+"Setup @command{gitolite}, a Git hosting tool providing access over SSH..\n"
+"By default, the @code{git} user is used, but this is configurable.\n"
+"Additionally, Gitolite can integrate with with tools like gitweb or cgit to\n"
+"provide a web interface to view selected repositories."
+msgstr ""
+
+#~ msgid "Reference frontend for the libretro API"
+#~ msgstr "Referenca fasono por la API libretro"
+
+#~ msgid "Netscape API for system level and libc-like functions"
+#~ msgstr "Netscape API por sistem-nivelaj kaj libc-similaj funkcioj"
+
+#~ msgid "Network Security Services"
+#~ msgstr "Network Security Services"
+
+#~ msgid "Framework for building readers for GNU Guile"
+#~ msgstr "Framo por konstrui legilojn por GNU Guile"
+
+#~ msgid ""
+#~ "guile-ncurses provides Guile language bindings for the ncurses\n"
+#~ "library."
+#~ msgstr ""
+#~ "guile-ncurses provizas lingvo-bindojn de Guile por la biblioteko\n"
+#~ "ncurses."
+
+#~ msgid "Run jobs at scheduled times"
+#~ msgstr "Lanĉi taskojn je antaŭplanitaj horoj"
+
+#~ msgid "Util-linux is a random collection of utilities for the Linux kernel."
+#~ msgstr "Util-linux estas hazarda aro da utilaĵoj por la Linuks-kerno."
 
-#~ msgid "GNU C++ standard library (intermediate)"
-#~ msgstr "GNU C++ norma biblioteko (intermeza)"
+#~ msgid "R5RS Scheme implementation that compiles native code via C"
+#~ msgstr "Realigo R5RS de Scheme kiu kompilas originalan kodumaron per C"
 
-#~ msgid "The linker wrapper"
-#~ msgstr "La ligila ĉirkaŭanto"
+#~ msgid ""
+#~ "The Archive::Zip module allows a Perl program to create,\n"
+#~ "manipulate, read, and write Zip archive files."
+#~ msgstr ""
+#~ "La modulo Archive::Zip ebligas al Perl-programo krei,\n"
+#~ "manipuli, legi, kaj skribi arĥiv-dosierojn ZIP."
 
 #~ msgid "Complete GCC tool chain for C/C++ development"
 #~ msgstr "Kompleta ilaro GCC por kodumado en C/C++"
diff --git a/po/packages/es.po b/po/packages/es.po
index 1c93aaa7b8..f38f46a6a6 100644
--- a/po/packages/es.po
+++ b/po/packages/es.po
@@ -1,15 +1,15 @@
-# Spanish translation for guix-packages 1.0.0-pre2
-# Copyright (C) 2019 Ludovic Courtès
+# Spanish translation for guix-packages 1.2.0-pre1
+# Copyright (C) 2019, 2020 the authors of Guix (msgids)
 # This file is distributed under the same license as the guix package.
 # Francisco Javier Serrador <fserrador@gmail.com>, 2018.
 # Miguel Ángel Arruga Vivas <rosen644835@gmail.com> 2019.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: guix-packages 1.0.0-pre2\n"
-"Report-Msgid-Bugs-To: ludo@gnu.org\n"
-"POT-Creation-Date: 2019-04-24 13:25+0200\n"
-"PO-Revision-Date: 2019-04-24 21:50+0200\n"
+"Project-Id-Version: guix-packages 1.2.0-pre3\n"
+"Report-Msgid-Bugs-To: bug-guix@gnu.org\n"
+"POT-Creation-Date: 2020-11-05 17:27+0100\n"
+"PO-Revision-Date: 2020-11-05 19:55+0100\n"
 "Last-Translator: Miguel Ángel Arruga Vivas <rosen644835@gmail.com>\n"
 "Language-Team: Spanish <es@tp.org.es>\n"
 "Language: es\n"
@@ -21,7 +21,7 @@ msgstr ""
 
 #: gnu/packages/abiword.scm:115
 msgid "Word processing program"
-msgstr "Programa de procesado de texto"
+msgstr "Programa para procesamiento de texto"
 
 #. TRANSLATORS: Dear translator, We would like to inform you that package
 #. descriptions may occasionally include Texinfo markup.  Texinfo markup
@@ -38,7 +38,7 @@ msgstr ""
 "útiles para su trabajo diario, sus necesidades personales o simplemente\n"
 "para algo de diversión tecleando a la vieja usanza."
 
-#: gnu/packages/aspell.scm:85 gnu/packages/libreoffice.scm:771
+#: gnu/packages/aspell.scm:85 gnu/packages/libreoffice.scm:846
 msgid "Spell checker"
 msgstr "Comprobador ortográfico"
 
@@ -49,17 +49,18 @@ msgid ""
 "documents written in the UTF-8 encoding and its ability to use multiple\n"
 "dictionaries, including personal ones."
 msgstr ""
-"Aspell es un comprobador ortográfico que puede usarse tanto como una\n"
-"biblioteca o como un programa independiente. Características notables\n"
-"de Aspell incluyen su soporte de documentos con codificación UTF-8 y\n"
-"su capacidad de uso de múltiples diccionarios, incluyendo diccionarios\n"
-"personales."
+"Aspell es una herramienta de comprobación ortográfica que puede usarse\n"
+"tanto como una biblioteca o como un programa independiente.\n"
+"Entre las características notables de Aspell se incluyen su soporte\n"
+"de documentos con codificación UTF-8 y su capacidad de uso de\n"
+"múltiples diccionarios, incluyendo diccionarios personales."
 
-#: gnu/packages/aspell.scm:129
+#: gnu/packages/aspell.scm:136
 msgid "This package provides a dictionary for the GNU Aspell spell checker."
 msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
 
-#: gnu/packages/aspell.scm:324 gnu/packages/libreoffice.scm:821
+#: gnu/packages/aspell.scm:425 gnu/packages/libreoffice.scm:896
+#: gnu/packages/libreoffice.scm:969
 msgid ""
 "This package provides a dictionary for the Hunspell spell-checking\n"
 "library."
@@ -67,35 +68,157 @@ msgstr ""
 "Este paquete proporciona un diccionario para la biblioteca de\n"
 "comprobación ortográfica Hunspell."
 
-#: gnu/packages/aspell.scm:342
+#: gnu/packages/aspell.scm:443
 msgid "Hunspell dictionary for English"
 msgstr "Diccionario Hunspell para inglés"
 
-#: gnu/packages/aspell.scm:346
+#: gnu/packages/aspell.scm:447
 msgid "Hunspell dictionary for Australian English"
 msgstr "Diccionario Hunspell para inglés australiano"
 
-#: gnu/packages/aspell.scm:350
+#: gnu/packages/aspell.scm:451
 msgid "Hunspell dictionary for Canadian English"
 msgstr "Diccionario Hunspell para inglés canadiense"
 
-#: gnu/packages/aspell.scm:354
+#: gnu/packages/aspell.scm:455
 msgid "Hunspell dictionary for British English, with -ise endings"
 msgstr "Diccionario Hunspell para inglés británico, con finalización -ise"
 
-#: gnu/packages/aspell.scm:358
+#: gnu/packages/aspell.scm:459
 msgid "Hunspell dictionary for British English, with -ize endings"
 msgstr "Diccionario Hunspell para inglés británico, con finalización -ize"
 
-#: gnu/packages/aspell.scm:362
+#: gnu/packages/aspell.scm:463
 msgid "Hunspell dictionary for United States English"
 msgstr "Diccionario Hunspell para inglés norteamericano"
 
-#: gnu/packages/audio.scm:147
+#: gnu/packages/aspell.scm:506
+msgid "Interactive spell-checking tool for Unix"
+msgstr ""
+
+#: gnu/packages/aspell.scm:507
+msgid ""
+"Ispell is an interactive spell-checking tool supporting many\n"
+"European languages."
+msgstr ""
+
+#: gnu/packages/audio.scm:185
+msgid "Embedded Audio Acceleration"
+msgstr ""
+
+#: gnu/packages/audio.scm:186
+msgid ""
+"OpenSLES is a royalty-free, cross-platform,\n"
+"hardware-accelerated audio API tuned for embedded systems.  It provides a\n"
+"standardized, high-performance, low-latency method to access audio\n"
+"functionality for developers of native applications on embedded mobile\n"
+"multimedia devices, enabling straightforward cross-platform deployment of\n"
+"hardware and software audio capabilities, reducing implementation effort, and\n"
+"promoting the market for advanced audio."
+msgstr ""
+
+#: gnu/packages/audio.scm:221
+msgid "Software Synthesizer"
+msgstr "Sintetizador software"
+
+#: gnu/packages/audio.scm:222
+msgid ""
+"WildMIDI is a simple software midi player which has a core\n"
+"softsynth library that can be use with other applications."
+msgstr ""
+
+#: gnu/packages/audio.scm:245
+msgid "WebRTC's Audio Processing Library"
+msgstr "Biblioteca de procesamiento de audio de WebRTC"
+
+#: gnu/packages/audio.scm:246
+msgid ""
+"WebRTC-Audio-Processing library based on Google's\n"
+"implementation of WebRTC."
+msgstr ""
+
+#: gnu/packages/audio.scm:265
+msgid "VisualOn AAC Encoder"
+msgstr ""
+
+#: gnu/packages/audio.scm:266
+msgid ""
+"VO-AACENC is the VisualOn implementation of Advanced Audio\n"
+"Coding (AAC) encoder."
+msgstr ""
+
+#: gnu/packages/audio.scm:294
+msgid "ALSA interfacing library"
+msgstr "Biblioteca de interfaz para ALSA"
+
+#: gnu/packages/audio.scm:295
+msgid ""
+"TinyALSA is a small library to interface with ALSA in the\n"
+"Linux kernel."
+msgstr ""
+
+#: gnu/packages/audio.scm:339
+#, fuzzy
+msgid "Audio tracking library"
+msgstr "Biblioteca E/S del sonido"
+
+#: gnu/packages/audio.scm:340
+msgid ""
+"LibOpenMPT is a cross-platform C++ and C module playback\n"
+"library.  It is based on the player code of the Open ModPlug Tracker project."
+msgstr ""
+
+#: gnu/packages/audio.scm:371
+msgid "Open Fingerprint Architecture"
+msgstr ""
+
+#: gnu/packages/audio.scm:372
+msgid ""
+"LibOFA is an audio fingerprint library, created and provided\n"
+"by MusicIP."
+msgstr ""
+
+#: gnu/packages/audio.scm:395
+msgid "Freeware Advanced Audio Coder"
+msgstr ""
+
+#: gnu/packages/audio.scm:396
+msgid "FAAC is an MPEG-4 and MPEG-2 AAC encoder."
+msgstr "FAAC es un codificador MPEG-4 y MPEG-2 AAC."
+
+#: gnu/packages/audio.scm:424
+msgid "MIDI to WAVE converter library"
+msgstr "Biblioteca de conversión de MIDI a WAVE"
+
+#: gnu/packages/audio.scm:425
+msgid ""
+"LibTiMidity is a MIDI to WAVE converter library that uses\n"
+"Gravis Ultrasound-compatible patch files to generate digital audio data from\n"
+"General MIDI files."
+msgstr ""
+
+#: gnu/packages/audio.scm:449 gnu/packages/audio.scm:468
+msgid "Adaptive Multi Rate Codec"
+msgstr ""
+
+#: gnu/packages/audio.scm:450
+msgid ""
+"VO-AMR is a library of VisualOn implementation of\n"
+"Adaptive Multi Rate Narrowband and Wideband (AMR-NB and AMR-WB) speech codec."
+msgstr ""
+
+#: gnu/packages/audio.scm:469
+msgid ""
+"OpenCore-AMR is a library of OpenCORE Framework\n"
+"implementation of Adaptive Multi Rate Narrowband and Wideband\n"
+"(AMR-NB and AMR-WB) speech codec."
+msgstr ""
+
+#: gnu/packages/audio.scm:528
 msgid "Realtime modular synthesizer and effect processor"
 msgstr "Sintetizador modular y procesador de efectos de tiempo real"
 
-#: gnu/packages/audio.scm:149
+#: gnu/packages/audio.scm:530
 msgid ""
 "AlsaModularSynth is a digital implementation of a classical analog\n"
 "modular synthesizer system.  It uses virtual control voltages to control the\n"
@@ -104,11 +227,11 @@ msgid ""
 "Filter) modules follow the convention of 1V / Octave."
 msgstr ""
 
-#: gnu/packages/audio.scm:188
+#: gnu/packages/audio.scm:569
 msgid "Library for audio labelling"
 msgstr "Biblioteca para etiquetado de sonido"
 
-#: gnu/packages/audio.scm:190
+#: gnu/packages/audio.scm:571
 msgid ""
 "aubio is a tool designed for the extraction of annotations from audio\n"
 "signals.  Its features include segmenting a sound file before each of its\n"
@@ -116,22 +239,22 @@ msgid ""
 "streams from live audio."
 msgstr ""
 
-#: gnu/packages/audio.scm:314
+#: gnu/packages/audio.scm:695
 msgid "Digital audio workstation"
 msgstr "Estación de trabajo para sonido digital"
 
-#: gnu/packages/audio.scm:316
+#: gnu/packages/audio.scm:697
 msgid ""
 "Ardour is a multi-channel digital audio workstation, allowing users to\n"
 "record, edit, mix and master audio and MIDI projects.  It is targeted at audio\n"
 "engineers, musicians, soundtrack editors and composers."
 msgstr ""
 
-#: gnu/packages/audio.scm:454
+#: gnu/packages/audio.scm:836
 msgid "Software for recording and editing sounds"
 msgstr "Sofware para grabación y edición de sonido"
 
-#: gnu/packages/audio.scm:456
+#: gnu/packages/audio.scm:838
 msgid ""
 "Audacity is a multi-track audio editor designed for recording, playing\n"
 "and editing digital audio.  It features digital effects and spectrum analysis\n"
@@ -141,22 +264,37 @@ msgstr ""
 "reproducir y editar audio digital. Implementa efectos digitales y herramientas\n"
 "de análisis del espectro de onda."
 
-#: gnu/packages/audio.scm:492
-msgid "Pitch-correction LADSPA audio plugin"
+#: gnu/packages/audio.scm:893
+msgid "Library to handle various audio file formats"
+msgstr "Biblioteca para el manejo de varios formatos de fichero de audio"
+
+#: gnu/packages/audio.scm:894
+msgid ""
+"This is an open-source version of SGI's audiofile library.\n"
+"It provides a uniform programming interface for processing of audio data to\n"
+"and from audio files of many common formats.\n"
+"\n"
+"Currently supported file formats include AIFF/AIFF-C, WAVE, and NeXT/Sun\n"
+".snd/.au, BICS, and raw data.  Supported compression formats are currently\n"
+"G.711 mu-law and A-law."
 msgstr ""
 
-#: gnu/packages/audio.scm:494
+#: gnu/packages/audio.scm:934
+msgid "Pitch-correction LADSPA audio plugin"
+msgstr "Módulo LADSPA para corrección de frecuencia"
+
+#: gnu/packages/audio.scm:936
 msgid ""
 "Autotalent is a LADSPA plugin for real-time pitch-correction.  Among its\n"
 "controls are allowable notes, strength of correction, LFO for vibrato and\n"
 "formant warp."
 msgstr ""
 
-#: gnu/packages/audio.scm:538
+#: gnu/packages/audio.scm:978
 msgid "Tonewheel organ synthesizer"
 msgstr "Sintetizador de órgano Tonewheel"
 
-#: gnu/packages/audio.scm:540
+#: gnu/packages/audio.scm:980
 msgid ""
 "AZR-3 is a port of the free VST plugin AZR-3.  It is a tonewheel organ\n"
 "with drawbars, distortion and rotating speakers.  The organ has three\n"
@@ -165,11 +303,11 @@ msgid ""
 "plugins are provided."
 msgstr ""
 
-#: gnu/packages/audio.scm:577
+#: gnu/packages/audio.scm:1017
 msgid "Audio plug-in pack for LV2 and JACK environments"
 msgstr ""
 
-#: gnu/packages/audio.scm:579
+#: gnu/packages/audio.scm:1019
 msgid ""
 "Calf Studio Gear is an audio plug-in pack for LV2 and JACK environments.\n"
 "The suite contains lots of effects (delay, modulation, signal processing,\n"
@@ -178,36 +316,42 @@ msgid ""
 "tools (analyzer, mono/stereo tools, crossovers)."
 msgstr ""
 
-#: gnu/packages/audio.scm:622
+#: gnu/packages/audio.scm:1062
 #, fuzzy
-#| msgid "LV2 audio plugin specification"
-msgid "LV2 port of the CAPS audio plugin colection"
+msgid "LV2 port of the CAPS audio plugin collection"
 msgstr "Especificación de complemento para audio LV2"
 
-#: gnu/packages/audio.scm:624
+#: gnu/packages/audio.scm:1064
 msgid ""
 "LV2 port of CAPS, a collection of audio plugins comprising basic virtual\n"
 "guitar amplification and a small range of classic effects, signal processors and\n"
 "generators of mostly elementary and occasionally exotic nature."
 msgstr ""
 
-#: gnu/packages/audio.scm:661
+#: gnu/packages/audio.scm:1101
 msgid "LV2 plugins for live use"
 msgstr "Complementos LV2 para usar live"
 
-#: gnu/packages/audio.scm:663
+#: gnu/packages/audio.scm:1103
 msgid ""
 "The infamous plugins are a collection of LV2 audio plugins for live\n"
 "performances.  The plugins include a cellular automaton synthesizer, an\n"
 "envelope follower, distortion effects, tape effects and more."
 msgstr ""
 
-#: gnu/packages/audio.scm:705
-#, fuzzy
+#: gnu/packages/audio.scm:1134
+msgid "The SWH Plugins package for the LADSPA plugin system"
+msgstr ""
+
+#: gnu/packages/audio.scm:1135
+msgid "This package provides Steve Harris's LADSPA plugins."
+msgstr ""
+
+#: gnu/packages/audio.scm:1175
 msgid "SWH plugins in LV2 format"
-msgstr "Complementos LV2 para usar live"
+msgstr "Módulos SWH en formato LV2"
 
-#: gnu/packages/audio.scm:707
+#: gnu/packages/audio.scm:1177
 msgid ""
 "Swh-plugins-lv2 is a collection of audio plugins in LV2 format.  Plugin\n"
 "classes include: dynamics (compressor, limiter), time (delay, chorus,\n"
@@ -215,43 +359,57 @@ msgid ""
 "emulation (valve, tape), bit fiddling (decimator, pointer-cast), etc."
 msgstr ""
 
-#: gnu/packages/audio.scm:741
+#: gnu/packages/audio.scm:1244
+msgid "Sound Synthesis with Physical Models"
+msgstr ""
+
+#: gnu/packages/audio.scm:1245
+msgid ""
+"Tao is a software package for sound synthesis using physical\n"
+"models.  It provides a virtual acoustic material constructed from masses and\n"
+"springs which can be used as the basis for building quite complex virtual\n"
+"musical instruments.  Tao comes with a synthesis language for creating and\n"
+"playing instruments and a C++ API for those who would like to use it as an\n"
+"object library."
+msgstr ""
+
+#: gnu/packages/audio.scm:1281
 msgid "Sound and music computing system"
 msgstr "Sistema de computación de música y sonido"
 
-#: gnu/packages/audio.scm:743
+#: gnu/packages/audio.scm:1283
 msgid ""
 "Csound is a user-programmable and user-extensible sound processing\n"
 "language and software synthesizer."
 msgstr ""
 
 # FUZZY
-#: gnu/packages/audio.scm:785 gnu/packages/audio.scm:3112
+#: gnu/packages/audio.scm:1325 gnu/packages/audio.scm:3763
 msgid "C++ wrapper around the ALSA API"
 msgstr "Recubrimiento C++ sobre la interfaz de ALSA"
 
-#: gnu/packages/audio.scm:787
+#: gnu/packages/audio.scm:1327
 msgid ""
 "clalsadrv is a C++ wrapper around the ALSA API simplifying access to\n"
 "ALSA PCM devices."
 msgstr ""
 
-#: gnu/packages/audio.scm:824
+#: gnu/packages/audio.scm:1364
 msgid "LADSPA ambisonics plugins"
-msgstr "Complementos ambisonics de LADSPA"
+msgstr "Módulo LADSPA ambisonics"
 
-#: gnu/packages/audio.scm:826
+#: gnu/packages/audio.scm:1366
 msgid ""
 "The AMB plugins are a set of LADSPA ambisonics plugins, mainly to be\n"
 "used within Ardour.  Features include: mono and stereo to B-format panning,\n"
 "horizontal rotator, square, hexagon and cube decoders."
 msgstr ""
 
-#: gnu/packages/audio.scm:861
+#: gnu/packages/audio.scm:1401
 msgid "Chorus, phaser, and vintage high-pass and low-pass filters"
-msgstr ""
+msgstr "«Chorus», «phaser» y filtros de paso bajo y paso alto «vintage»"
 
-#: gnu/packages/audio.scm:863
+#: gnu/packages/audio.scm:1403
 msgid ""
 "This package provides various LADSPA plugins.  @code{cs_chorus} and\n"
 "@code{cs_phaser} provide chorus and phaser effects, respectively;\n"
@@ -261,21 +419,21 @@ msgid ""
 "the non-linear circuit elements of their original analog counterparts."
 msgstr ""
 
-#: gnu/packages/audio.scm:901
+#: gnu/packages/audio.scm:1441
 msgid "LADSPA reverb plugin"
-msgstr "LADSPA reverbera complemento"
+msgstr "Módulo LADSPA de efecto «reverb»"
 
-#: gnu/packages/audio.scm:903
+#: gnu/packages/audio.scm:1443
 msgid ""
 "This package provides a stereo reverb LADSPA plugin based on the\n"
 "well-known greverb."
 msgstr ""
 
-#: gnu/packages/audio.scm:937
+#: gnu/packages/audio.scm:1477
 msgid "LADSPA four-band parametric equalizer plugin"
-msgstr "Complemento LADSPA cuatro-bandas paramétrica ecualizada"
+msgstr "Módulo LADSPA de ecualizador de cuatro-bandas paramétrico"
 
-#: gnu/packages/audio.scm:939
+#: gnu/packages/audio.scm:1479
 msgid ""
 "This package provides a LADSPA plugin for a four-band parametric\n"
 "equalizer.  Each section has an active/bypass switch, frequency, bandwidth and\n"
@@ -290,29 +448,28 @@ msgid ""
 "for stage use."
 msgstr ""
 
-#: gnu/packages/audio.scm:982
+#: gnu/packages/audio.scm:1522
 msgid "LADSPA stereo width plugin"
-msgstr "Anchura LADSPA estéreo complemento"
+msgstr "Módulo LADSPA para amplitud estéreo"
 
-#: gnu/packages/audio.scm:984
+#: gnu/packages/audio.scm:1524
 msgid ""
 "This package provides a LADSPA plugin to manipulate the stereo width of\n"
 "audio signals."
 msgstr ""
 
-#: gnu/packages/audio.scm:1019
-#, fuzzy
+#: gnu/packages/audio.scm:1559
 msgid "LADSPA plugin for synthesizer oscillators"
-msgstr "Anchura LADSPA estéreo complemento"
+msgstr "Módulo LADSPA para sintetizadores de oscilador"
 
-#: gnu/packages/audio.scm:1021
+#: gnu/packages/audio.scm:1561
 msgid ""
 "The @code{blvco} LADSPA plugin provides three anti-aliased oscillators:\n"
 "\n"
 "@enumerate\n"
 "@item Pulse-VCO, a dirac pulse oscillator with flat amplitude spectrum\n"
 "@item Saw-VCO, a sawtooth oscillator with 1/F amplitude spectrum\n"
-"@item Rec-VCO, a square / rectange oscillator\n"
+"@item Rec-VCO, a square / rectangle oscillator\n"
 "@end enumerate\n"
 "\n"
 "\n"
@@ -320,31 +477,29 @@ msgid ""
 "output of analog synthesizers such as the Moog Voyager."
 msgstr ""
 
-#: gnu/packages/audio.scm:1063
-#, fuzzy
+#: gnu/packages/audio.scm:1603
 msgid "LADSPA Autowah effect plugin"
-msgstr "Anchura LADSPA estéreo complemento"
+msgstr "Módulo LADSPA de efecto «auto-wah»"
 
-#: gnu/packages/audio.scm:1065
+#: gnu/packages/audio.scm:1605
 msgid ""
 "This package provides a LADSPA plugin for a Wah effect with envelope\n"
 "follower."
 msgstr ""
 
-#: gnu/packages/audio.scm:1099
-#, fuzzy
+#: gnu/packages/audio.scm:1639
 msgid "LADSPA stereo reverb plugin"
-msgstr "LADSPA reverbera complemento"
+msgstr "Módulo LADSPA de efecto «reverb» estéreo"
 
-#: gnu/packages/audio.scm:1101
+#: gnu/packages/audio.scm:1641
 msgid "This package provides a LADSPA plugin for a stereo reverb effect."
 msgstr ""
 
-#: gnu/packages/audio.scm:1140
+#: gnu/packages/audio.scm:1680
 msgid "SoundFont synthesizer"
-msgstr "Sintentizado SoundFont"
+msgstr "Sintetizador SoundFont"
 
-#: gnu/packages/audio.scm:1142
+#: gnu/packages/audio.scm:1682
 msgid ""
 "FluidSynth is a real-time software synthesizer based on the SoundFont 2\n"
 "specifications.  FluidSynth reads and handles MIDI events from the MIDI input\n"
@@ -352,39 +507,37 @@ msgid ""
 "also play midifiles using a Soundfont."
 msgstr ""
 
-#: gnu/packages/audio.scm:1189
+#: gnu/packages/audio.scm:1719
 msgid "MPEG-4 and MPEG-2 AAC decoder"
 msgstr "Decodificador MPEG-4 y MPEG-2 AAC"
 
-#: gnu/packages/audio.scm:1191
-msgid ""
-"FAAD2 is an MPEG-4 and MPEG-2 AAC decoder supporting LC, Main, LTP, SBR,\n"
-"PS, and DAB+."
+#: gnu/packages/audio.scm:1721
+msgid "FAAD2 is an MPEG-4 and MPEG-2 AAC decoder supporting LC, Main, LTP, SBR, -PS, and DAB+."
 msgstr ""
 
-#: gnu/packages/audio.scm:1231
+#: gnu/packages/audio.scm:1760
 msgid "Signal processing language"
 msgstr "Lenguaje de procesamiento de señales"
 
-#: gnu/packages/audio.scm:1233
+#: gnu/packages/audio.scm:1762
 msgid "Faust is a programming language for realtime audio signal processing."
 msgstr ""
 
-#: gnu/packages/audio.scm:1300
+#: gnu/packages/audio.scm:1829
 msgid "GUS compatible patches for MIDI players"
 msgstr "Parches compatibles con GUS para reproductores MIDI"
 
-#: gnu/packages/audio.scm:1302
+#: gnu/packages/audio.scm:1831
 msgid ""
 "FreePats is a project to create a free and open set of GUS compatible\n"
 "patches that can be used with softsynths such as Timidity and WildMidi."
 msgstr ""
 
-#: gnu/packages/audio.scm:1368
+#: gnu/packages/audio.scm:1883
 msgid "Virtual guitar amplifier"
 msgstr "Amplificador de guitarra virtual"
 
-#: gnu/packages/audio.scm:1369
+#: gnu/packages/audio.scm:1884
 msgid ""
 "Guitarix is a virtual guitar amplifier running JACK.\n"
 "Guitarix takes the signal from your guitar as a mono-signal from your sound\n"
@@ -395,11 +548,11 @@ msgid ""
 "auto-wah."
 msgstr ""
 
-#: gnu/packages/audio.scm:1423
+#: gnu/packages/audio.scm:1938
 msgid "Audio effects processor"
 msgstr "Procesador de efectos de sonido"
 
-#: gnu/packages/audio.scm:1425
+#: gnu/packages/audio.scm:1940
 msgid ""
 "Rakarrack is a richly featured multi-effects processor emulating a\n"
 "guitar effects pedalboard.  Effects include compressor, expander, noise gate,\n"
@@ -411,22 +564,22 @@ msgid ""
 "well suited to all musical instruments and vocals."
 msgstr ""
 
-#: gnu/packages/audio.scm:1476
+#: gnu/packages/audio.scm:1987
 msgid "LV2 convolution reverb"
-msgstr "Reverbera convolución LV2"
+msgstr "Efecto «reverb» de convolución de LV2"
 
-#: gnu/packages/audio.scm:1478
+#: gnu/packages/audio.scm:1989
 msgid ""
 "IR is a low-latency, real-time, high performance signal convolver\n"
 "especially for creating reverb effects.  It supports impulse responses with 1,\n"
 "2 or 4 channels, in any soundfile format supported by libsndfile."
 msgstr ""
 
-#: gnu/packages/audio.scm:1516
+#: gnu/packages/audio.scm:2028
 msgid "JACK audio connection kit"
 msgstr "Conjunto de conexión de sonido JACK"
 
-#: gnu/packages/audio.scm:1518
+#: gnu/packages/audio.scm:2030
 msgid ""
 "JACK is a low-latency audio server.  It can connect a number of\n"
 "different applications to an audio device, as well as allowing them to share\n"
@@ -436,32 +589,32 @@ msgid ""
 "synchronous execution of all clients, and low latency operation."
 msgstr ""
 
-#: gnu/packages/audio.scm:1616
+#: gnu/packages/audio.scm:2124
 msgid "Simple LV2 host for JACK"
 msgstr ""
 
-#: gnu/packages/audio.scm:1618
+#: gnu/packages/audio.scm:2126
 msgid ""
 "Jalv is a simple but fully featured LV2 host for JACK.  It runs LV2\n"
 "plugins and exposes their ports as JACK ports, essentially making any LV2\n"
 "plugin function as a JACK application."
 msgstr ""
 
-#: gnu/packages/audio.scm:1662
+#: gnu/packages/audio.scm:2170
 msgid "Linux Audio Developer's Simple Plugin API (LADSPA)"
 msgstr ""
 
-#: gnu/packages/audio.scm:1664
+#: gnu/packages/audio.scm:2172
 msgid ""
 "LADSPA is a standard that allows software audio processors and effects\n"
 "to be plugged into a wide range of audio synthesis and recording packages."
 msgstr ""
 
-#: gnu/packages/audio.scm:1710
+#: gnu/packages/audio.scm:2224
 msgid "Audio application session manager"
 msgstr "Gestor de sesiones de aplicaciones de sonido"
 
-#: gnu/packages/audio.scm:1712
+#: gnu/packages/audio.scm:2226
 msgid ""
 "LASH is a session management system for audio applications.  It allows\n"
 "you to save and restore audio sessions consisting of multiple interconneced\n"
@@ -469,11 +622,11 @@ msgid ""
 "connections between them."
 msgstr ""
 
-#: gnu/packages/audio.scm:1733
+#: gnu/packages/audio.scm:2247
 msgid "Bauer stereophonic-to-binaural DSP"
 msgstr ""
 
-#: gnu/packages/audio.scm:1735
+#: gnu/packages/audio.scm:2249
 msgid ""
 "The Bauer stereophonic-to-binaural DSP (bs2b) library and plugins is\n"
 "designed to improve headphone listening of stereo audio records.  Recommended\n"
@@ -481,31 +634,67 @@ msgid ""
 "essential distortions."
 msgstr ""
 
-#: gnu/packages/audio.scm:1758
+#: gnu/packages/audio.scm:2272
+msgid "Bauer stereophonic-to-binaural DSP - LADSPA plugin"
+msgstr ""
+
+#: gnu/packages/audio.scm:2273
+msgid ""
+"The Bauer stereophonic-to-binaural DSP (bs2b) library and\n"
+"plugins is designed to improve headphone listening of stereo audio records.\n"
+"Recommended for headphone prolonged listening to disable superstereo fatigue\n"
+"without essential distortions.  This package contains a LADSPA plugin for use\n"
+"with applications that support them (e.g. PulseAudio)."
+msgstr ""
+
+#: gnu/packages/audio.scm:2297
 msgid "Implementation of the Open Sound Control protocol"
 msgstr ""
 
-#: gnu/packages/audio.scm:1760
+#: gnu/packages/audio.scm:2299
 msgid ""
 "liblo is a lightweight library that provides an easy to use\n"
 "implementation of the Open Sound Control (@dfn{OSC}) protocol."
 msgstr ""
 
-#: gnu/packages/audio.scm:1779
+#: gnu/packages/audio.scm:2323
+msgid "Common API for real-time audio I/O"
+msgstr ""
+
+#: gnu/packages/audio.scm:2325
+msgid ""
+"RtAudio is a set of C++ classes that provides a common API for real-time\n"
+"audio input/output.  It was designed with the following objectives:\n"
+"\n"
+"@itemize\n"
+"@item object-oriented C++ design\n"
+"@item simple, common API across all supported platforms\n"
+"@item only one source and one header file for easy inclusion in programming\n"
+"projects\n"
+"@item allow simultaneous multi-api support\n"
+"@item support dynamic connection of devices\n"
+"@item provide extensive audio device parameter control\n"
+"@item allow audio device capability probing\n"
+"@item automatic internal conversion for data format, channel number\n"
+"compensation, (de)interleaving, and byte-swapping\n"
+"@end itemize"
+msgstr ""
+
+#: gnu/packages/audio.scm:2360
 msgid "Bindings for PortAudio v19"
 msgstr ""
 
-#: gnu/packages/audio.scm:1780
+#: gnu/packages/audio.scm:2361
 msgid ""
 "This package provides bindings for PortAudio v19, the\n"
 "cross-platform audio input/output stream library."
 msgstr ""
 
-#: gnu/packages/audio.scm:1805
+#: gnu/packages/audio.scm:2386
 msgid "Python bindings for liblo"
 msgstr "Enlaces binarios para liblo"
 
-#: gnu/packages/audio.scm:1807
+#: gnu/packages/audio.scm:2388
 msgid ""
 "Pyliblo is a Python wrapper for the liblo Open Sound Control (OSC)\n"
 "library.  It supports almost the complete functionality of liblo, allowing you\n"
@@ -513,22 +702,22 @@ msgid ""
 "included are the command line utilities @code{send_osc} and @code{dump_osc}."
 msgstr ""
 
-#: gnu/packages/audio.scm:1848
+#: gnu/packages/audio.scm:2436
 msgid "Library to simplify use of LV2 plugins in applications"
 msgstr ""
 
-#: gnu/packages/audio.scm:1850
+#: gnu/packages/audio.scm:2438
 msgid ""
 "Lilv is a C library to make the use of LV2 plugins as simple as possible\n"
 "for applications.  Lilv is the successor to SLV2, rewritten to be\n"
 "significantly faster and have minimal dependencies."
 msgstr ""
 
-#: gnu/packages/audio.scm:1876
+#: gnu/packages/audio.scm:2464
 msgid "LV2 audio plugin specification"
 msgstr "Especificación de complemento para audio LV2"
 
-#: gnu/packages/audio.scm:1878
+#: gnu/packages/audio.scm:2466
 msgid ""
 "LV2 is an open specification for audio plugins and host applications.\n"
 "At its core, LV2 is a simple stable interface, accompanied by extensions which\n"
@@ -536,38 +725,38 @@ msgid ""
 "software."
 msgstr ""
 
-#: gnu/packages/audio.scm:1914
+#: gnu/packages/audio.scm:2502
 msgid "LV2 port of the mda Piano plugin"
 msgstr ""
 
-#: gnu/packages/audio.scm:1915
+#: gnu/packages/audio.scm:2503
 msgid "An LV2 port of the mda Piano VSTi."
 msgstr "Un puerto LV2 del mda Piano VSTi."
 
-#: gnu/packages/audio.scm:1928
+#: gnu/packages/audio.scm:2516
 msgid "LV2 port of the mda EPiano plugin"
 msgstr ""
 
-#: gnu/packages/audio.scm:1929
+#: gnu/packages/audio.scm:2517
 msgid "An LV2 port of the mda EPiano VSTi."
 msgstr "Un puerto LV2 del EPiano mda VSTi."
 
-#: gnu/packages/audio.scm:1974
+#: gnu/packages/audio.scm:2547
 msgid "C++ libraries for LV2 plugins"
 msgstr "Bibliotecas C++ para complementos LV2"
 
-#: gnu/packages/audio.scm:1976
+#: gnu/packages/audio.scm:2549
 msgid ""
 "The LV2 Toolkit (LVTK) contains libraries that wrap the LV2 C API and\n"
 "extensions into easy to use C++ classes.  It is the successor of\n"
 "lv2-c++-tools."
 msgstr ""
 
-#: gnu/packages/audio.scm:2017
+#: gnu/packages/audio.scm:2590
 msgid "3D audio API"
 msgstr "API sonido3D"
 
-#: gnu/packages/audio.scm:2019
+#: gnu/packages/audio.scm:2592
 msgid ""
 "OpenAL provides capabilities for playing audio in a virtual 3D\n"
 "environment.  Distance attenuation, doppler shift, and directional sound\n"
@@ -577,64 +766,61 @@ msgid ""
 "buffers, and audio capture."
 msgstr ""
 
-#: gnu/packages/audio.scm:2049
+#: gnu/packages/audio.scm:2622
 msgid "Free implementation of OpenAL's ALUT standard"
 msgstr ""
 
-#: gnu/packages/audio.scm:2050
+#: gnu/packages/audio.scm:2623
 msgid "freealut is the OpenAL Utility Toolkit."
 msgstr ""
 
-#: gnu/packages/audio.scm:2081
+#: gnu/packages/audio.scm:2654
 msgid "Modular patch bay for audio and MIDI systems"
 msgstr ""
 
-#: gnu/packages/audio.scm:2083
+#: gnu/packages/audio.scm:2656
 msgid ""
 "Patchage is a modular patch bay for audio and MIDI systems based on JACK\n"
 "and ALSA."
 msgstr ""
 
-#: gnu/packages/audio.scm:2111
-#, fuzzy
-#| msgid "Portable system access library"
+#: gnu/packages/audio.scm:2684
 msgid "Portable C audio library"
-msgstr "Biblioteca de sistema de acceso portable"
+msgstr "Biblioteca para C de audio portable"
 
-#: gnu/packages/audio.scm:2113
+#: gnu/packages/audio.scm:2686
 msgid ""
 "The Portable C Audio Library (pcaudiolib) provides a C@tie{}API to\n"
 "different audio devices such as ALSA or PulseAudio."
 msgstr ""
 
-#: gnu/packages/audio.scm:2143
+#: gnu/packages/audio.scm:2717
 msgid "Jack server control application"
 msgstr "Aplicación controladora de servicio Jack"
 
-#: gnu/packages/audio.scm:2144
+#: gnu/packages/audio.scm:2718
 msgid ""
 "Control a Jack server.  Allows you to plug various sources\n"
 "into various outputs and to start, stop and configure jackd"
 msgstr ""
 
-#: gnu/packages/audio.scm:2177
+#: gnu/packages/audio.scm:2751
 msgid "Stereo audio recorder for JACK"
 msgstr ""
 
-#: gnu/packages/audio.scm:2178
+#: gnu/packages/audio.scm:2752
 msgid ""
 "QJackRcd is a simple graphical stereo recorder for JACK\n"
 "supporting silence processing for automatic pause, file splitting, and\n"
 "background file post-processing."
 msgstr ""
 
-#: gnu/packages/audio.scm:2261
-#, fuzzy
-#| msgid "Implementation of the Perl programming language"
+#: gnu/packages/audio.scm:2865
 msgid "Synthesis engine and programming language"
-msgstr "Implementación del lenguaje de programación Perl"
+msgstr ""
 
-#: gnu/packages/audio.scm:2262
+# realtime también funciona en castellano
+#: gnu/packages/audio.scm:2866
 msgid ""
 "SuperCollider is a synthesis engine (@code{scsynth} or\n"
 "@code{supernova}) and programming language (@code{sclang}).  It can be used\n"
@@ -646,52 +832,65 @@ msgid ""
 "using Guix System."
 msgstr ""
 
-#: gnu/packages/audio.scm:2293
+#: gnu/packages/audio.scm:2897
 msgid "Real-time audio utility library"
 msgstr ""
 
-#: gnu/packages/audio.scm:2295
+#: gnu/packages/audio.scm:2899
 msgid ""
 "Raul (Real-time Audio Utility Library) is a C++ utility library primarily\n"
 "aimed at audio/musical applications."
 msgstr ""
 
-#: gnu/packages/audio.scm:2349
+#: gnu/packages/audio.scm:2937
+msgid "Sampling rate conversion and filter design utilities"
+msgstr "Utilidades para conversión de muestreo y diseño de filtros"
+
+#: gnu/packages/audio.scm:2938
+msgid ""
+"This package contains the @command{resample} and\n"
+"@command{windowfilter} command line utilities.  The @command{resample} command\n"
+"allows changing the sampling rate of a sound file, while the\n"
+"@command{windowfilter} command allows designing Finite Impulse Response (FIR)\n"
+"filters using the so-called @emph{window method}."
+msgstr ""
+
+#: gnu/packages/audio.scm:2979
 msgid "Audio time-stretching and pitch-shifting library"
 msgstr ""
 
-#: gnu/packages/audio.scm:2351
+#: gnu/packages/audio.scm:2981
 msgid ""
 "Rubber Band is a library and utility program that permits changing the\n"
 "tempo and pitch of an audio recording independently of one another."
 msgstr ""
 
-#: gnu/packages/audio.scm:2395
+#: gnu/packages/audio.scm:3007
 msgid "Cross-platform MIDI library for C++"
 msgstr "Plataforma cruzada de biblioteca MIDI para C++"
 
-#: gnu/packages/audio.scm:2397
+#: gnu/packages/audio.scm:3009
 msgid ""
 "RtMidi is a set of C++ classes (RtMidiIn, RtMidiOut, and API specific\n"
 "classes) that provide a common cross-platform API for realtime MIDI\n"
 "input/output."
 msgstr ""
 
-#: gnu/packages/audio.scm:2422
+#: gnu/packages/audio.scm:3035
 msgid "Library for serialising LV2 atoms to/from RDF"
 msgstr ""
 
-#: gnu/packages/audio.scm:2424
+#: gnu/packages/audio.scm:3037
 msgid ""
 "Sratom is a library for serialising LV2 atoms to/from RDF, particularly\n"
 "the Turtle syntax."
 msgstr ""
 
-#: gnu/packages/audio.scm:2452
+#: gnu/packages/audio.scm:3063
 msgid "Library for loading and wrapping LV2 plugin UIs"
 msgstr "Biblioteca para carga y contorno de complemento IU LV2"
 
-#: gnu/packages/audio.scm:2454
+#: gnu/packages/audio.scm:3065
 msgid ""
 "Suil is a lightweight C library for loading and wrapping LV2 plugin UIs.\n"
 "\n"
@@ -703,11 +902,21 @@ msgid ""
 "Suil currently supports every combination of Gtk, Qt, and X11."
 msgstr ""
 
-#: gnu/packages/audio.scm:2511
+#: gnu/packages/audio.scm:3095
+msgid "Library implementing the EBU R 128 loudness standard"
+msgstr ""
+
+#: gnu/packages/audio.scm:3097
+msgid ""
+"@code{libebur128} is a C library that implements the EBU R 128 standard\n"
+"for loudness normalisation."
+msgstr ""
+
+#: gnu/packages/audio.scm:3149
 msgid "Software synthesizer for playing MIDI files"
 msgstr ""
 
-#: gnu/packages/audio.scm:2513
+#: gnu/packages/audio.scm:3151
 msgid ""
 "TiMidity++ is a software synthesizer.  It can play MIDI files by\n"
 "converting them into PCM waveform data; give it a MIDI data along with digital\n"
@@ -716,44 +925,44 @@ msgid ""
 "disks as various audio file formats."
 msgstr ""
 
-#: gnu/packages/audio.scm:2551
+#: gnu/packages/audio.scm:3189
 msgid "Modular and extensible audio processing system"
 msgstr ""
 
-#: gnu/packages/audio.scm:2553
+#: gnu/packages/audio.scm:3191
 msgid ""
 "Vamp is an audio processing plugin system for plugins that extract\n"
 "descriptive information from audio data — typically referred to as audio\n"
 "analysis plugins or audio feature extraction plugins."
 msgstr ""
 
-#: gnu/packages/audio.scm:2593
+#: gnu/packages/audio.scm:3231
 msgid "Library for time stretching and pitch scaling of audio"
 msgstr ""
 
-#: gnu/packages/audio.scm:2595
+#: gnu/packages/audio.scm:3233
 msgid ""
 "SBSMS (Subband Sinusoidal Modeling Synthesis) is software for time\n"
 "stretching and pitch scaling of audio.  This package contains the library."
 msgstr ""
 
-#: gnu/packages/audio.scm:2617
+#: gnu/packages/audio.scm:3268
 #, fuzzy
 msgid "Hybrid lossless audio codec"
 msgstr "Código de sonido sin pérdida libre"
 
-#: gnu/packages/audio.scm:2619
+#: gnu/packages/audio.scm:3270
 msgid ""
 "WavPack is an audio compression format with lossless, lossy and hybrid\n"
 "compression modes.  This package contains command-line programs and library to\n"
 "encode and decode wavpack files."
 msgstr ""
 
-#: gnu/packages/audio.scm:2638
+#: gnu/packages/audio.scm:3289
 msgid "Mod file playing library"
 msgstr "Fichero Mod reproduciendo biblioteca"
 
-#: gnu/packages/audio.scm:2640
+#: gnu/packages/audio.scm:3291
 msgid ""
 "Libmodplug renders mod music files as raw audio data, for playing or\n"
 "conversion.  mod, .s3m, .it, .xm, and a number of lesser-known formats are\n"
@@ -761,34 +970,34 @@ msgid ""
 "surround and reverb."
 msgstr ""
 
-#: gnu/packages/audio.scm:2659
+#: gnu/packages/audio.scm:3310
 msgid "Module player library"
 msgstr "Biblioteca de módulo jugador"
 
-#: gnu/packages/audio.scm:2661
+#: gnu/packages/audio.scm:3312
 msgid ""
 "Libxmp is a library that renders module files to PCM data.  It supports\n"
 "over 90 mainstream and obscure module formats including Protracker (MOD),\n"
 "Scream Tracker 3 (S3M), Fast Tracker II (XM), and Impulse Tracker (IT)."
 msgstr ""
 
-#: gnu/packages/audio.scm:2684
+#: gnu/packages/audio.scm:3335
 msgid "Extended module player"
 msgstr "Módulo jugador extendido"
 
-#: gnu/packages/audio.scm:2686
+#: gnu/packages/audio.scm:3337
 msgid ""
 "Xmp is a portable module player that plays over 90 mainstream and\n"
 "obscure module formats, including Protracker MOD, Fasttracker II XM, Scream\n"
 "Tracker 3 S3M and Impulse Tracker IT files."
 msgstr ""
 
-#: gnu/packages/audio.scm:2714
+#: gnu/packages/audio.scm:3363
 #, fuzzy
 msgid "Audio processing library for changing tempo, pitch and playback rate"
 msgstr "Sonido procesando biblioteca para modificar tempo, pitch y tasa de reproducción"
 
-#: gnu/packages/audio.scm:2716
+#: gnu/packages/audio.scm:3365
 msgid ""
 "SoundTouch is an audio processing library for changing the tempo, pitch\n"
 "and playback rates of audio streams or audio files.  It is intended for\n"
@@ -796,11 +1005,11 @@ msgid ""
 "control functionality, or just for playing around with the sound effects."
 msgstr ""
 
-#: gnu/packages/audio.scm:2753
+#: gnu/packages/audio.scm:3402
 msgid "Sound processing utility"
 msgstr "Utilidad de sonido procesado"
 
-#: gnu/packages/audio.scm:2755
+#: gnu/packages/audio.scm:3404
 msgid ""
 "SoX (Sound eXchange) is a command line utility that can convert\n"
 "various formats of computer audio files to other formats.  It can also\n"
@@ -808,92 +1017,92 @@ msgid ""
 "can play and record audio files."
 msgstr ""
 
-#: gnu/packages/audio.scm:2778
+#: gnu/packages/audio.scm:3427
 msgid "One-dimensional sample-rate conversion library"
 msgstr ""
 
-#: gnu/packages/audio.scm:2780
+#: gnu/packages/audio.scm:3429
 msgid ""
 "The SoX Resampler library (libsoxr) performs one-dimensional sample-rate\n"
 "conversion.  It may be used, for example, to resample PCM-encoded audio."
 msgstr ""
 
-#: gnu/packages/audio.scm:2810
+#: gnu/packages/audio.scm:3451
 msgid "MPEG Audio Layer 2 (MP2) encoder"
 msgstr ""
 
-#: gnu/packages/audio.scm:2812
+#: gnu/packages/audio.scm:3453
 msgid ""
 "TwoLAME is an optimised MPEG Audio Layer 2 (MP2) encoder based on\n"
 "tooLAME by Mike Cheng, which in turn is based upon the ISO dist10 code and\n"
 "portions of LAME."
 msgstr ""
 
-#: gnu/packages/audio.scm:2864
+#: gnu/packages/audio.scm:3511
 msgid "Audio I/O library"
 msgstr "Biblioteca E/S del sonido"
 
-#: gnu/packages/audio.scm:2866
+#: gnu/packages/audio.scm:3513
 msgid ""
 "PortAudio is a portable C/C++ audio I/O library providing a simple API\n"
 "to record and/or play sound using a callback function or a blocking read/write\n"
 "interface."
 msgstr ""
 
-#: gnu/packages/audio.scm:2895
+#: gnu/packages/audio.scm:3540
 msgid "Graphical user interface for FluidSynth"
 msgstr "Interfaz gráfico del usuario para FluidSynth"
 
-#: gnu/packages/audio.scm:2897
+#: gnu/packages/audio.scm:3542
 msgid ""
 "Qsynth is a GUI front-end application for the FluidSynth SoundFont\n"
 "synthesizer written in C++."
 msgstr ""
 
-#: gnu/packages/audio.scm:2934
+#: gnu/packages/audio.scm:3579
 msgid "Networked audio system"
 msgstr "Sistema de sonido por red"
 
-#: gnu/packages/audio.scm:2936
+#: gnu/packages/audio.scm:3581
 msgid ""
 "RSound allows you to send audio from an application and transfer it\n"
 "directly to a different computer on your LAN network.  It is an audio daemon\n"
 "with a much different focus than most other audio daemons."
 msgstr ""
 
-#: gnu/packages/audio.scm:2967
+#: gnu/packages/audio.scm:3612
 msgid "JACK audio frequency analyzer and display"
 msgstr "Analizador y presentación de frecuencia de audio JACK "
 
-#: gnu/packages/audio.scm:2969
+#: gnu/packages/audio.scm:3614
 msgid ""
 "XJackFreak is an audio analysis and equalizing tool for the Jack Audio\n"
 "Connection Kit.  It can display the FFT of any input, modify it and output the\n"
 "result."
 msgstr ""
 
-#: gnu/packages/audio.scm:3017
+#: gnu/packages/audio.scm:3664
 msgid "Fast, partitioned convolution engine library"
 msgstr ""
 
-#: gnu/packages/audio.scm:3019
+#: gnu/packages/audio.scm:3666
 msgid ""
 "Zita convolver is a C++ library providing a real-time convolution\n"
 "engine."
 msgstr ""
 
-#: gnu/packages/audio.scm:3067
+#: gnu/packages/audio.scm:3716
 msgid "C++ library for resampling audio signals"
 msgstr ""
 
-#: gnu/packages/audio.scm:3069
+#: gnu/packages/audio.scm:3718
 msgid ""
 "Libzita-resampler is a C++ library for resampling audio signals.  It is\n"
 "designed to be used within a real-time processing context, to be fast, and to\n"
 "provide high-quality sample rate conversion."
 msgstr ""
 
-#: gnu/packages/audio.scm:3114
+#: gnu/packages/audio.scm:3765
 msgid ""
 "Zita-alsa-pcmi is a C++ wrapper around the ALSA API.  It provides easy\n"
 "access to ALSA PCM devices, taking care of the many functions required to\n"
@@ -901,11 +1110,11 @@ msgid ""
 "point audio data."
 msgstr ""
 
-#: gnu/packages/audio.scm:3140
+#: gnu/packages/audio.scm:3791
 msgid "Cue and toc file parsers and utilities"
 msgstr ""
 
-#: gnu/packages/audio.scm:3141
+#: gnu/packages/audio.scm:3792
 msgid ""
 "Cuetools is a set of programs that are useful for manipulating\n"
 "and using CUE sheet (cue) files and Table of Contents (toc) files.  CUE and TOC\n"
@@ -913,11 +1122,11 @@ msgid ""
 "machine-readable ASCII format."
 msgstr ""
 
-#: gnu/packages/audio.scm:3160
+#: gnu/packages/audio.scm:3811
 msgid "WAVE audio data processing tool"
 msgstr ""
 
-#: gnu/packages/audio.scm:3161
+#: gnu/packages/audio.scm:3812
 msgid ""
 "shntool is a multi-purpose WAVE data processing and reporting\n"
 "utility.  File formats are abstracted from its core, so it can process any file\n"
@@ -926,63 +1135,74 @@ msgid ""
 "use them split WAVE data into multiple files."
 msgstr ""
 
-#: gnu/packages/audio.scm:3200
+#: gnu/packages/audio.scm:3851
 msgid "DTS Coherent Acoustics decoder"
 msgstr ""
 
-#: gnu/packages/audio.scm:3201
+#: gnu/packages/audio.scm:3852
 msgid ""
 "Dcadec is a DTS Coherent Acoustics surround sound decoder\n"
 "with support for HD extensions."
 msgstr ""
 
-#: gnu/packages/audio.scm:3231
+#: gnu/packages/audio.scm:3888
 msgid "Tool to adjust loudness of media files"
 msgstr ""
 
-#: gnu/packages/audio.scm:3233
+#: gnu/packages/audio.scm:3890
 msgid ""
 "BS1770GAIN is a loudness scanner compliant with ITU-R BS.1770 and its\n"
 "flavors EBU R128, ATSC A/85, and ReplayGain 2.0.  It helps normalizing the\n"
 "loudness of audio and video files to the same level."
 msgstr ""
 
-#: gnu/packages/audio.scm:3264
+#: gnu/packages/audio.scm:3921
 msgid "Lightweight audio filtering library"
 msgstr "Biblioteca de filtro de sonido ligero"
 
-#: gnu/packages/audio.scm:3265
+#: gnu/packages/audio.scm:3922
 msgid ""
 "An easy to use audio filtering library made from webrtc\n"
 "code, used in @code{libtoxcore}."
 msgstr ""
 
-#: gnu/packages/audio.scm:3311
+#: gnu/packages/audio.scm:3974
 msgid "GSM 06.10 lossy speech compression library"
 msgstr ""
 
-#: gnu/packages/audio.scm:3312
+#: gnu/packages/audio.scm:3975
 msgid ""
 "This C library provides an encoder and a decoder for the GSM\n"
 "06.10 RPE-LTP lossy speech compression algorithm."
 msgstr ""
 
-#: gnu/packages/audio.scm:3333
+#: gnu/packages/audio.scm:3996
 msgid "ALSA wrappers for Python"
 msgstr "Cubiertas ALSA para Python"
 
-#: gnu/packages/audio.scm:3335
+#: gnu/packages/audio.scm:3998
 msgid ""
 "This package contains wrappers for accessing the ALSA API from Python.\n"
 "It is currently fairly complete for PCM devices, and has some support for\n"
 "mixers."
 msgstr ""
 
-#: gnu/packages/audio.scm:3373
+#: gnu/packages/audio.scm:4021
+msgid "LDAC Bluetooth encoder and ABR library"
+msgstr ""
+
+#: gnu/packages/audio.scm:4022
+msgid ""
+"This package provides an encoder for the LDAC\n"
+"high-resolution Bluetooth audio streaming codec for streaming at up to 990\n"
+"kbps at 24 bit/96 kHz."
+msgstr ""
+
+#: gnu/packages/audio.scm:4068
 msgid "Bluetooth ALSA backend"
 msgstr ""
 
-#: gnu/packages/audio.scm:3374
+#: gnu/packages/audio.scm:4069
 msgid ""
 "This project is a rebirth of a direct integration between\n"
 "Bluez and ALSA.  Since Bluez >= 5, the build-in integration has been removed\n"
@@ -995,22 +1215,22 @@ msgid ""
 "on the ALSA software PCM plugin."
 msgstr ""
 
-#: gnu/packages/audio.scm:3436
+#: gnu/packages/audio.scm:4132
 msgid "Sound editor"
 msgstr "Editor de sonido"
 
-#: gnu/packages/audio.scm:3439
+#: gnu/packages/audio.scm:4135
 msgid ""
 "Snd is a sound editor modelled loosely after Emacs.  It can be\n"
 "customized and extended using either the s7 Scheme implementation (included in\n"
 "the Snd sources), Ruby, or Forth."
 msgstr ""
 
-#: gnu/packages/audio.scm:3472
+#: gnu/packages/audio.scm:4164
 msgid "LV2 plugin for broadband noise reduction"
 msgstr ""
 
-#: gnu/packages/audio.scm:3473
+#: gnu/packages/audio.scm:4165
 msgid ""
 "Noise Repellent is an LV2 plugin to reduce noise.  It has\n"
 "the following features:\n"
@@ -1030,42 +1250,40 @@ msgid ""
 "@end enumerate\n"
 msgstr ""
 
-#: gnu/packages/audio.scm:3542
-#, fuzzy
-#| msgid "Command-line WebDAV client"
+#: gnu/packages/audio.scm:4224
 msgid "Command-line audio visualizer"
-msgstr "Cliente WebDAV por mandato lineal"
+msgstr "Visualizador de audio para línea de órdenes"
 
-#: gnu/packages/audio.scm:3543
+#: gnu/packages/audio.scm:4225
 msgid ""
 "@code{cli-visualizer} displays fast-Fourier\n"
 "transforms (FFTs) of the sound being played, as well as other graphical\n"
 "representations."
 msgstr ""
 
-#: gnu/packages/audio.scm:3596
+#: gnu/packages/audio.scm:4278
 msgid "Console audio visualizer for ALSA, MPD, and PulseAudio"
 msgstr ""
 
-#: gnu/packages/audio.scm:3597
+#: gnu/packages/audio.scm:4279
 msgid ""
 "C.A.V.A. is a bar audio spectrum visualizer for the terminal\n"
 "using ALSA, MPD, PulseAudio, or a FIFO buffer as its input."
 msgstr ""
 
-#: gnu/packages/audio.scm:3630
+#: gnu/packages/audio.scm:4312
 msgid "Pro-quality GM soundfont"
 msgstr ""
 
-#: gnu/packages/audio.scm:3631
+#: gnu/packages/audio.scm:4313
 msgid "Fluid-3 is Frank Wen's pro-quality GM soundfont."
 msgstr ""
 
-#: gnu/packages/audio.scm:3657
+#: gnu/packages/audio.scm:4336
 msgid "Fraunhofer FDK AAC library"
 msgstr ""
 
-#: gnu/packages/audio.scm:3658
+#: gnu/packages/audio.scm:4337
 msgid ""
 "FDK is a library for encoding and decoding Advanced Audio\n"
 "Coding (AAC) format audio, developed by Fraunhofer IIS, and included as part of\n"
@@ -1073,35 +1291,241 @@ msgid ""
 "LC, HE-AAC (AAC LC + SBR), HE-AACv2 (LC + SBR + PS) as well AAC-LD (low delay)\n"
 "and AAC-ELD (enhanced low delay) for real-time communication.  The encoding\n"
 "library supports sample rates up to 96 kHz and up to eight channels (7.1\n"
-"surround)."
+"                                                                     surround)."
 msgstr ""
 
-#: gnu/packages/audio.scm:3697
+#: gnu/packages/audio.scm:4376
 msgid "Audio editing and playback for OpenShot"
 msgstr ""
 
-#: gnu/packages/audio.scm:3698
+#: gnu/packages/audio.scm:4377
 msgid ""
 "OpenShot Audio Library (libopenshot-audio) allows\n"
 "high-quality editing and playback of audio, and is based on the JUCE\n"
 "library."
 msgstr ""
 
-#: gnu/packages/audio.scm:3724
+#: gnu/packages/audio.scm:4403
 msgid "XAudio reimplementation"
 msgstr "Reimplementación de XAudio"
 
-#: gnu/packages/audio.scm:3725
+#: gnu/packages/audio.scm:4404
 msgid ""
 "FAudio is an XAudio reimplementation that focuses solely on\n"
 "developing fully accurate DirectX Audio runtime libraries."
 msgstr ""
 
-#: gnu/packages/backup.scm:125
-msgid "Encrypted backup using rsync algorithm"
+#: gnu/packages/audio.scm:4429
+msgid "Binaural beat synthesizer"
+msgstr "Sintetizador rítmico binaural"
+
+#: gnu/packages/audio.scm:4430
+msgid ""
+"Gnaural is a programmable auditory binaural beat synthesizer\n"
+"intended to be used for brainwave entrainment.  Gnaural supports creation of\n"
+"binaural beat tracks of different frequencies and exporting of tracks into\n"
+"different audio formats.  Gnaural can also be linked over the internet with\n"
+"other Gnaural instances, allowing synchronous sessions between many users."
+msgstr ""
+
+#: gnu/packages/audio.scm:4464
+msgid "Live audio streamer"
 msgstr ""
 
-#: gnu/packages/backup.scm:127
+#: gnu/packages/audio.scm:4465
+msgid ""
+"DarkIce is a live audio streamer.  It takes audio input from\n"
+"a sound card, encodes it into Ogg Vorbis and/or mp3, and sends the audio\n"
+"stream to one or more IceCast and/or ShoutCast servers."
+msgstr ""
+
+#: gnu/packages/audio.scm:4489
+msgid "Encode or decode Linear/Longitudinal Time Code (LTC) audio"
+msgstr ""
+
+#: gnu/packages/audio.scm:4490
+msgid ""
+"Libltc is a POSIX-C Library for handling\n"
+"@dfn{Linear/Longitudinal Time Code} (LTC) data."
+msgstr ""
+
+#: gnu/packages/audio.scm:4522
+msgid "TTA lossless audio encoder"
+msgstr "Codificador para audio sin pérdida TTA"
+
+#: gnu/packages/audio.scm:4524
+msgid ""
+"TTA performs lossless compression on multichannel 8,16 and 24 bits\n"
+"data of the Wav audio files.  Being lossless means that no data-\n"
+"quality is lost in the compression - when uncompressed, the data will\n"
+"be identical to the original.  The compression ratios of TTA depend on\n"
+"the type of music file being compressed, but the compression size\n"
+"will generally range between 30% - 70% of the original.  TTA format\n"
+"supports both of ID3v1/v2 and APEv2 tags."
+msgstr ""
+
+#: gnu/packages/audio.scm:4558
+msgid "C library for real-time audio input and output"
+msgstr ""
+
+#: gnu/packages/audio.scm:4559
+msgid ""
+"@code{libsoundio} is a C library providing audio input and\n"
+"output.  The API is suitable for real-time software such as digital audio\n"
+"workstations as well as consumer software such as music players."
+msgstr ""
+
+#: gnu/packages/audio.scm:4584
+msgid "Small GUI toolkit"
+msgstr "Pequeña biblioteca para interfaces gráficas (GUI)"
+
+#: gnu/packages/audio.scm:4585
+msgid ""
+"Redkite is a small GUI toolkit developed in C++17 and\n"
+"inspired from other well known GUI toolkits such as Qt and GTK.  It is\n"
+"minimal on purpose and is intended to be statically linked to applications,\n"
+"therefore satisfying any requirements they may have to be self contained,\n"
+"as is the case with audio plugins."
+msgstr ""
+
+#: gnu/packages/audio.scm:4656
+msgid "Audio plugin host"
+msgstr ""
+
+#: gnu/packages/audio.scm:4657
+msgid ""
+"Carla is a modular audio plugin host, with features like\n"
+"transport control, automation of parameters via MIDI CC and remote control\n"
+"over OSC.  Carla currently supports LADSPA (including LRDF), DSSI, LV2, VST2,\n"
+"and VST3 plugin formats, plus SF2 and SFZ file support.  It uses JACK as the\n"
+"default and preferred audio driver but also supports native drivers like ALSA."
+msgstr ""
+
+#: gnu/packages/audio.scm:4692
+msgid "Multitrack audio processing"
+msgstr "Procesamiento de audio multipista"
+
+#: gnu/packages/audio.scm:4693
+msgid ""
+"Ecasound is a software package designed for multitrack audio\n"
+"processing. It can be used for simple tasks like audio playback, recording and\n"
+"format conversions, as well as for multitrack effect processing, mixing,\n"
+"recording and signal recycling. Ecasound supports a wide range of audio inputs,\n"
+"outputs and effect algorithms. Effects and audio objects can be combined in\n"
+"various ways, and their parameters can be controlled by operator objects like\n"
+"oscillators and MIDI-CCs. A versatile console mode user-interface is included\n"
+"in the package."
+msgstr ""
+
+# FUZZY
+#: gnu/packages/audio.scm:4730
+msgid "Library for reading and resampling audio files"
+msgstr "Biblioteca para la lectura y cambios en el muestreo de ficheros de audio"
+
+#: gnu/packages/audio.scm:4731
+msgid ""
+"libaudec is a wrapper library over ffmpeg, sndfile and\n"
+"libsamplerate for reading and resampling audio files, based on Robin Gareus'\n"
+"@code{audio_decoder} code."
+msgstr ""
+
+#: gnu/packages/audio.scm:4762
+#, fuzzy
+msgid "LV2 plugin lint tool"
+msgstr "Complementos LV2 para usar live"
+
+#: gnu/packages/audio.scm:4763
+msgid ""
+"lv2lint is an LV2 lint-like tool that checks whether a\n"
+"given plugin and its UI(s) match up with the provided metadata and adhere\n"
+"to well-known best practices."
+msgstr ""
+
+#: gnu/packages/audio.scm:4797
+msgid "Documentation generator for LV2 plugins"
+msgstr "Generador de documentación para módulos LV2"
+
+#: gnu/packages/audio.scm:4799
+msgid ""
+"lv2toweb allows the user to create an xhtml page with information\n"
+"about the given LV2 plugin, provided that the plugin and its UI(s) match up\n"
+"with the provided metadata and adhere to well-known best practices."
+msgstr ""
+
+#: gnu/packages/audio.scm:4825
+msgid "GUI toolkit for LV2 plugins"
+msgstr "Biblioteca de interfaz gráfica para complementos LV2"
+
+#: gnu/packages/audio.scm:4826
+msgid ""
+"ZToolkit (Ztk) is a cross-platform GUI toolkit heavily\n"
+"inspired by GTK.  It handles events and low level drawing on behalf of\n"
+"the user and provides a high-level API for managing the UI and custom\n"
+"widgets.  ZToolkit is written in C and was created to be used for building\n"
+"audio plugin UIs, where the dependencies often need to be kept to a\n"
+"minimum."
+msgstr ""
+
+#: gnu/packages/audio.scm:4858
+#, fuzzy
+msgid "Instrument file software library"
+msgstr "Biblioteca interpreta fichero de configuración"
+
+#: gnu/packages/audio.scm:4860
+msgid ""
+"libInstPatch is a library for processing digital sample based MIDI\n"
+"instrument \"patch\" files.  The types of files libInstPatch supports are used\n"
+"for creating instrument sounds for wavetable synthesis.  libInstPatch provides\n"
+"an object framework (based on GObject) to load patch files, which can then be\n"
+"edited, converted, compressed and saved."
+msgstr ""
+
+# FUZZY
+#: gnu/packages/audio.scm:4876
+msgid "ZToolkit with SVG support"
+msgstr "ZToolkit con implementación para SVG"
+
+#: gnu/packages/audio.scm:4903
+#, fuzzy
+msgid "Digital signal processing library"
+msgstr "Biblioteca de procesamiento Speex"
+
+#: gnu/packages/audio.scm:4904
+msgid ""
+"The LSP DSP library provides a set of functions that perform\n"
+"SIMD-optimized computing on several hardware architectures.  All functions\n"
+"currently operate on IEEE-754 single-precision floating-point numbers."
+msgstr ""
+
+#: gnu/packages/audio.scm:4935
+msgid "Speech codec"
+msgstr ""
+
+#: gnu/packages/audio.scm:4937
+msgid ""
+"Codec 2 is a speech codec designed for communications quality speech\n"
+"between 700 and 3200 bit/s.  The main application is low bandwidth HF/VHF\n"
+"digital radio."
+msgstr ""
+
+#: gnu/packages/audio.scm:5035
+msgid "Synchronize musical beat, tempo, and phase across multiple applications"
+msgstr ""
+
+#: gnu/packages/audio.scm:5037
+msgid ""
+"Ableton Link is a C++ library that synchronizes musical beat, tempo, and phase\n"
+"across multiple applications running on one or more devices.  Applications on devices\n"
+"connected to a local network discover each other automatically and form a musical\n"
+"session in which each participant can perform independently: anyone can start or stop\n"
+"while still staying in time."
+msgstr ""
+
+#: gnu/packages/backup.scm:138
+msgid "Encrypted backup using rsync algorithm"
+msgstr "Copia de seguridad cifrada usando el algoritmo rsync"
+
+#: gnu/packages/backup.scm:140
 msgid ""
 "Duplicity backs up directories by producing encrypted tar-format volumes\n"
 "and uploading them to a remote or local file server.  Because duplicity uses\n"
@@ -1111,11 +1535,11 @@ msgid ""
 "spying and/or modification by the server."
 msgstr ""
 
-#: gnu/packages/backup.scm:152
+#: gnu/packages/backup.scm:165
 msgid "File verification and repair tools"
 msgstr "Herramientas para verificación y reparación de ficheros"
 
-#: gnu/packages/backup.scm:153
+#: gnu/packages/backup.scm:166
 msgid ""
 "Par2cmdline uses Reed-Solomon error-correcting codes to\n"
 "generate and verify PAR2 recovery files.  These files can be distributed\n"
@@ -1127,11 +1551,11 @@ msgid ""
 "can even repair them."
 msgstr ""
 
-#: gnu/packages/backup.scm:189
+#: gnu/packages/backup.scm:203
 msgid "Simple incremental backup tool"
 msgstr "Herramienta de respaldo incremental sencillo"
 
-#: gnu/packages/backup.scm:191
+#: gnu/packages/backup.scm:205
 msgid ""
 "Hdup2 is a backup utility, its aim is to make backup really simple.  The\n"
 "backup scheduling is done by means of a cron job.  It supports an\n"
@@ -1139,11 +1563,11 @@ msgid ""
 "backups (called chunks) to allow easy burning to CD/DVD."
 msgstr ""
 
-#: gnu/packages/backup.scm:266
+#: gnu/packages/backup.scm:300
 msgid "Multi-format archive and compression library"
 msgstr ""
 
-#: gnu/packages/backup.scm:268
+#: gnu/packages/backup.scm:302
 msgid ""
 "Libarchive provides a flexible interface for reading and writing\n"
 "archives in various formats such as tar and cpio.  Libarchive also supports\n"
@@ -1154,11 +1578,11 @@ msgid ""
 "random access nor for in-place modification."
 msgstr ""
 
-#: gnu/packages/backup.scm:342
+#: gnu/packages/backup.scm:370
 msgid "Provide a list of files to backup"
 msgstr "Proporciona una lista de fichero para respaldo"
 
-#: gnu/packages/backup.scm:344
+#: gnu/packages/backup.scm:372
 msgid ""
 "Rdup is a utility inspired by rsync and the plan9 way of doing backups.\n"
 "Rdup itself does not backup anything, it only print a list of absolute\n"
@@ -1166,11 +1590,11 @@ msgid ""
 "list and implement the backup strategy."
 msgstr ""
 
-#: gnu/packages/backup.scm:374
+#: gnu/packages/backup.scm:402
 msgid "Tar-compatible archiver"
 msgstr "Archivador compatible con tar"
 
-#: gnu/packages/backup.scm:376
+#: gnu/packages/backup.scm:404
 msgid ""
 "Btar is a tar-compatible archiver which allows arbitrary compression and\n"
 "ciphering, redundancy, differential backup, indexed extraction, multicore\n"
@@ -1178,11 +1602,11 @@ msgid ""
 "errors."
 msgstr ""
 
-#: gnu/packages/backup.scm:402
+#: gnu/packages/backup.scm:430
 msgid "Local/remote mirroring+incremental backup"
 msgstr ""
 
-#: gnu/packages/backup.scm:404
+#: gnu/packages/backup.scm:432
 msgid ""
 "Rdiff-backup backs up one directory to another, possibly over a network.\n"
 "The target directory ends up a copy of the source directory, but extra reverse\n"
@@ -1197,11 +1621,11 @@ msgid ""
 "rdiff-backup is easy to use and settings have sensible defaults."
 msgstr ""
 
-#: gnu/packages/backup.scm:446
+#: gnu/packages/backup.scm:477
 msgid "Deduplicating snapshot backup utility based on rsync"
 msgstr ""
 
-#: gnu/packages/backup.scm:447
+#: gnu/packages/backup.scm:478
 msgid ""
 "rsnapshot is a file system snapshot utility based on rsync.\n"
 "rsnapshot makes it easy to make periodic snapshots of local machines, and\n"
@@ -1209,11 +1633,11 @@ msgid ""
 "rsnapshot uses hard links to deduplicate identical files."
 msgstr ""
 
-#: gnu/packages/backup.scm:500
+#: gnu/packages/backup.scm:558
 msgid "Tools & library for data backup and distributed storage"
 msgstr ""
 
-#: gnu/packages/backup.scm:502
+#: gnu/packages/backup.scm:560
 msgid ""
 "Libchop is a set of utilities and library for data backup and\n"
 "distributed storage.  Its main application is @command{chop-backup}, an\n"
@@ -1224,11 +1648,11 @@ msgid ""
 "detection, and lossless compression."
 msgstr ""
 
-#: gnu/packages/backup.scm:620
+#: gnu/packages/backup.scm:689
 msgid "Deduplicated, encrypted, authenticated and compressed backups"
 msgstr ""
 
-#: gnu/packages/backup.scm:621
+#: gnu/packages/backup.scm:690
 msgid ""
 "Borg is a deduplicating backup program.  Optionally, it\n"
 "supports compression and authenticated encryption.  The main goal of Borg is to\n"
@@ -1238,11 +1662,11 @@ msgid ""
 "to not fully trusted targets.  Borg is a fork of Attic."
 msgstr ""
 
-#: gnu/packages/backup.scm:665
+#: gnu/packages/backup.scm:734
 msgid "Deduplicating backup program"
 msgstr "Deduplicando programa de respaldo"
 
-#: gnu/packages/backup.scm:666
+#: gnu/packages/backup.scm:735
 msgid ""
 "Attic is a deduplicating backup program.  The main goal of\n"
 "Attic is to provide an efficient and secure way to backup data.  The data\n"
@@ -1250,11 +1674,11 @@ msgid ""
 "changes are stored."
 msgstr ""
 
-#: gnu/packages/backup.scm:696
+#: gnu/packages/backup.scm:765
 msgid "WIM file manipulation library and utilities"
 msgstr ""
 
-#: gnu/packages/backup.scm:697
+#: gnu/packages/backup.scm:766
 msgid ""
 "wimlib is a C library and set of command-line utilities for\n"
 "creating, modifying, extracting, and mounting archives in the Windows Imaging\n"
@@ -1262,37 +1686,22 @@ msgid ""
 "NTFS volumes using @code{ntfs-3g}, preserving NTFS-specific attributes."
 msgstr ""
 
-#: gnu/packages/backup.scm:754
-msgid "Retired backup program"
-msgstr "Programa de copias de seguridad retirado"
-
-#: gnu/packages/backup.scm:756
-msgid ""
-"Warning: @uref{https://blog.liw.fi/posts/2017/08/13/retiring_obnam/,\n"
-"the Obnam project is retired}.  You should use another backup solution instead.\n"
-"\n"
-"Obnam was an easy, secure backup program.  Features included snapshot backups,\n"
-"data de-duplication and encrypted backups using GnuPG.  Backups can be stored on\n"
-"local hard disks, or online via the SSH SFTP protocol.  The backup server, if\n"
-"used, does not require any special software, on top of SSH."
-msgstr ""
-
-#: gnu/packages/backup.scm:864
+#: gnu/packages/backup.scm:876
 msgid "Fast, disk based, rotating network backup system"
 msgstr ""
 
-#: gnu/packages/backup.scm:866
+#: gnu/packages/backup.scm:878
 msgid ""
 "With dirvish you can maintain a set of complete images of your\n"
 "file systems with unattended creation and expiration.  A dirvish backup vault\n"
 "is like a time machine for your data. "
 msgstr ""
 
-#: gnu/packages/backup.scm:964
+#: gnu/packages/backup.scm:969
 msgid "Backup program with multiple revisions, encryption and more"
 msgstr ""
 
-#: gnu/packages/backup.scm:965
+#: gnu/packages/backup.scm:970
 msgid ""
 "Restic is a program that does backups right and was designed\n"
 "with the following principles in mind:\n"
@@ -1324,33 +1733,70 @@ msgid ""
 "@end itemize"
 msgstr ""
 
-#: gnu/packages/backup.scm:1016
+#: gnu/packages/backup.scm:1023
+#, fuzzy
+msgid "Versatile deduplicating backup tool"
+msgstr "Deduplicando programa de respaldo"
+
+#: gnu/packages/backup.scm:1025
+msgid ""
+"ZBackup is a globally-deduplicating backup tool, based on the\n"
+"ideas found in Rsync.  Feed a large @file{.tar} into it, and it will\n"
+"store duplicate regions of it only once, then compress and optionally\n"
+"encrypt the result.  Feed another @file{.tar} file, and it will also\n"
+"re-use any data found in any previous backups.  This way only new\n"
+"changes are stored, and as long as the files are not very different,\n"
+"the amount of storage required is very low.  Any of the backup files\n"
+"stored previously can be read back in full at any time.  The program\n"
+"is format-agnostic, so you can feed virtually any files to it."
+msgstr ""
+
+#: gnu/packages/backup.scm:1062
+msgid "Ext2/3/4 file system dump/restore utilities"
+msgstr ""
+
+#: gnu/packages/backup.scm:1063
+msgid ""
+"Dump examines files in a file system, determines which ones\n"
+"need to be backed up, and copies those files to a specified disk, tape or\n"
+"other storage medium.  Subsequent incremental backups can then be layered on\n"
+"top of the full backup.  The restore command performs the inverse function of\n"
+"dump; it can restore a full backup of a file system.  Single files and\n"
+"directory subtrees may also be restored from full or partial backups in\n"
+"interactive mode."
+msgstr ""
+
+#: gnu/packages/backup.scm:1109
 msgid "Differential backup and restore"
 msgstr ""
 
-#: gnu/packages/backup.scm:1017
+#: gnu/packages/backup.scm:1110
 msgid ""
 "Burp is a network backup and restore program.  It attempts\n"
 "to reduce network traffic and the amount of space that is used by each\n"
 "backup."
 msgstr ""
 
-#: gnu/packages/base.scm:83
+#: gnu/packages/base.scm:85
 msgid "Hello, GNU world: An example GNU package"
 msgstr "Hola, mundo GNU: un ejemplo de paquete GNU"
 
-#: gnu/packages/base.scm:85
+#: gnu/packages/base.scm:87
 msgid ""
 "GNU Hello prints the message \"Hello, world!\" and then exits.  It\n"
 "serves as an example of standard GNU coding practices.  As such, it supports\n"
 "command-line arguments, multiple languages, and so on."
 msgstr ""
+"GNU Hello imprime el mensaje \"¡Hola mundo!\" y termina. Sirve como\n"
+"ejemplo de las prácticas de codificación estándar de GNU. Por tanto\n"
+"permite parámetros en la línea de órdenes, implementa múltiples\n"
+"idiomas, etcétera."
 
-#: gnu/packages/base.scm:129
+#: gnu/packages/base.scm:122
 msgid "Print lines matching a pattern"
 msgstr "Escribe líneas coincidiendo un patrón"
 
-#: gnu/packages/base.scm:131
+#: gnu/packages/base.scm:124
 msgid ""
 "grep is a tool for finding text inside files.  Text is found by\n"
 "matching a pattern provided by the user in one or many files.  The pattern\n"
@@ -1361,11 +1807,11 @@ msgid ""
 "including, for example, recursive directory searching."
 msgstr ""
 
-#: gnu/packages/base.scm:153
+#: gnu/packages/base.scm:146
 msgid "Stream editor"
 msgstr "Editorde flujo"
 
-#: gnu/packages/base.scm:169
+#: gnu/packages/base.scm:150
 msgid ""
 "Sed is a non-interactive, text stream editor.  It receives a text\n"
 "input from a file or from standard input and it then applies a series of text\n"
@@ -1374,11 +1820,11 @@ msgid ""
 "implementation offers several extensions over the standard utility."
 msgstr ""
 
-#: gnu/packages/base.scm:229
+#: gnu/packages/base.scm:205
 msgid "Managing tar archives"
 msgstr "Gestionando archivos tar"
 
-#: gnu/packages/base.scm:231
+#: gnu/packages/base.scm:207
 msgid ""
 "Tar provides the ability to create tar archives, as well as the\n"
 "ability to extract, update or list files in an existing archive.  It is\n"
@@ -1388,11 +1834,11 @@ msgid ""
 "standard utility."
 msgstr ""
 
-#: gnu/packages/base.scm:260
+#: gnu/packages/base.scm:236
 msgid "Apply differences to originals, with optional backups"
 msgstr ""
 
-#: gnu/packages/base.scm:262
+#: gnu/packages/base.scm:238
 msgid ""
 "Patch is a program that applies changes to files based on differences\n"
 "laid out as by the program \"diff\".  The changes may be applied to one or more\n"
@@ -1401,11 +1847,11 @@ msgid ""
 "differences."
 msgstr ""
 
-#: gnu/packages/base.scm:283
+#: gnu/packages/base.scm:259
 msgid "Comparing and merging files"
 msgstr "Comparando y uniendo ficheros"
 
-#: gnu/packages/base.scm:285
+#: gnu/packages/base.scm:261
 msgid ""
 "GNU Diffutils is a package containing tools for finding the\n"
 "differences between files.  The \"diff\" command is used to show how two files\n"
@@ -1414,11 +1860,11 @@ msgid ""
 "interactive means to merge two files."
 msgstr ""
 
-#: gnu/packages/base.scm:330
+#: gnu/packages/base.scm:295
 msgid "Operating on files matching given criteria"
 msgstr ""
 
-#: gnu/packages/base.scm:332
+#: gnu/packages/base.scm:297
 msgid ""
 "Findutils supplies the basic file directory searching utilities of the\n"
 "GNU system.  It consists of two primary searching utilities: \"find\"\n"
@@ -1428,23 +1874,24 @@ msgid ""
 "used to apply commands with arbitrarily long arguments."
 msgstr ""
 
-#: gnu/packages/base.scm:400
+#: gnu/packages/base.scm:375
 msgid "Core GNU utilities (file, text, shell)"
 msgstr ""
 
-#: gnu/packages/base.scm:402
+#: gnu/packages/base.scm:377
 msgid ""
-"GNU Coreutils includes all of the basic command-line tools that are\n"
-"expected in a POSIX system.  These provide the basic file, shell and text\n"
-"manipulation functions of the GNU system.  Most of these tools offer extended\n"
-"functionality beyond that which is outlined in the POSIX standard."
+"GNU Coreutils package includes all of the basic command-line tools that\n"
+"are expected in a POSIX system, excluding shell.  This package is the union of\n"
+"the GNU fileutils, sh-utils, and textutils packages.  Most of these tools\n"
+"offer extended functionality beyond that which is outlined in the POSIX\n"
+"standard."
 msgstr ""
 
-#: gnu/packages/base.scm:449
+#: gnu/packages/base.scm:453
 msgid "Remake files automatically"
 msgstr "Recrear ficheros automáticamente"
 
-#: gnu/packages/base.scm:451
+#: gnu/packages/base.scm:455
 msgid ""
 "Make is a program that is used to control the production of\n"
 "executables or other files from their source files.  The process is\n"
@@ -1454,11 +1901,11 @@ msgid ""
 "change.  GNU make offers many powerful extensions over the standard utility."
 msgstr ""
 
-#: gnu/packages/base.scm:497
+#: gnu/packages/base.scm:536
 msgid "Binary utilities: bfd gas gprof ld"
 msgstr ""
 
-#: gnu/packages/base.scm:499
+#: gnu/packages/base.scm:538
 msgid ""
 "GNU Binutils is a collection of tools for working with binary files.\n"
 "Perhaps the most notable are \"ld\", a linker, and \"as\", an assembler.\n"
@@ -1468,22 +1915,22 @@ msgid ""
 "included."
 msgstr ""
 
-#: gnu/packages/base.scm:601
+#: gnu/packages/base.scm:672
 msgid "The linker wrapper"
 msgstr "La cubierta del enlazador"
 
-#: gnu/packages/base.scm:603
+#: gnu/packages/base.scm:674
 msgid ""
 "The linker wrapper (or @code{ld-wrapper}) wraps the linker to add any\n"
 "missing @code{-rpath} flags, and to detect any misuse of libraries outside of\n"
 "the store."
 msgstr ""
 
-#: gnu/packages/base.scm:866
+#: gnu/packages/base.scm:925
 msgid "The GNU C Library"
 msgstr "La biblioteca GNU C"
 
-#: gnu/packages/base.scm:868
+#: gnu/packages/base.scm:927
 msgid ""
 "Any Unix-like operating system needs a C library: the library which\n"
 "defines the \"system calls\" and other basic facilities such as open, malloc,\n"
@@ -1493,43 +1940,43 @@ msgid ""
 "with the Linux kernel."
 msgstr ""
 
-#: gnu/packages/base.scm:1019
+#: gnu/packages/base.scm:1046
 msgid "All the locales supported by the GNU C Library"
 msgstr "Todos los locales compatibles por la Biblioteca GNU C"
 
-#: gnu/packages/base.scm:1021
+#: gnu/packages/base.scm:1048
 msgid ""
 "This package provides all the locales supported by the GNU C Library,\n"
 "more than 400 in total.  To use them set the @code{LOCPATH} environment variable\n"
 "to the @code{share/locale} sub-directory of this package."
 msgstr ""
 
-#: gnu/packages/base.scm:1090
+#: gnu/packages/base.scm:1152
 msgid "Small sample of UTF-8 locales"
 msgstr ""
 
-#: gnu/packages/base.scm:1092
+#: gnu/packages/base.scm:1154
 msgid ""
 "This package provides a small sample of UTF-8 locales mostly useful in\n"
 "test environments."
 msgstr ""
 
-#: gnu/packages/base.scm:1122
+#: gnu/packages/base.scm:1185
 msgid "Find full path of shell commands"
 msgstr ""
 
-#: gnu/packages/base.scm:1124
+#: gnu/packages/base.scm:1187
 msgid ""
 "The which program finds the location of executables in PATH, with a\n"
 "variety of options.  It is an alternative to the shell \"type\" built-in\n"
 "command."
 msgstr ""
 
-#: gnu/packages/base.scm:1220
+#: gnu/packages/base.scm:1292
 msgid "Database of current and historical time zones"
 msgstr ""
 
-#: gnu/packages/base.scm:1221
+#: gnu/packages/base.scm:1293
 msgid ""
 "The Time Zone Database (often called tz or zoneinfo)\n"
 "contains code and data that represent the history of local time for many\n"
@@ -1538,11 +1985,11 @@ msgid ""
 "and daylight-saving rules."
 msgstr ""
 
-#: gnu/packages/base.scm:1277
+#: gnu/packages/base.scm:1349
 msgid "Character set conversion library"
 msgstr "Biblioteca de conversión de conjunto de caracteres"
 
-#: gnu/packages/base.scm:1279
+#: gnu/packages/base.scm:1351
 msgid ""
 "libiconv provides an implementation of the iconv function for systems\n"
 "that lack it.  iconv is used to convert between character encodings in a\n"
@@ -1583,17 +2030,17 @@ msgid ""
 "XML-RPC over SCGI."
 msgstr ""
 
-#: gnu/packages/bittorrent.scm:210 gnu/packages/bittorrent.scm:251
+#: gnu/packages/bittorrent.scm:211 gnu/packages/bittorrent.scm:252
 msgid "Console client for the Transmission BitTorrent daemon"
 msgstr ""
 
-#: gnu/packages/bittorrent.scm:211
+#: gnu/packages/bittorrent.scm:212
 msgid ""
 "Tremc is a console client, with a curses interface, for the\n"
 "Transmission BitTorrent daemon."
 msgstr ""
 
-#: gnu/packages/bittorrent.scm:252
+#: gnu/packages/bittorrent.scm:253
 msgid ""
 "Transmission-remote-cli is a console client, with a curses\n"
 "interface, for the Transmission BitTorrent daemon.  This package is no longer\n"
@@ -1636,22 +2083,23 @@ msgid ""
 "and will take advantage of multiple processor cores where possible."
 msgstr ""
 
-#: gnu/packages/bittorrent.scm:419
-msgid "Feature complete BitTorrent implementation"
-msgstr ""
+# FUZZY
+#: gnu/packages/bittorrent.scm:406
+msgid "Feature-complete BitTorrent implementation"
+msgstr "Implementación de BitTorrent repleta de características"
 
-#: gnu/packages/bittorrent.scm:421
+#: gnu/packages/bittorrent.scm:408
 msgid ""
-"libtorrent-rasterbar is a feature complete C++ BitTorrent implementation\n"
+"libtorrent-rasterbar is a feature-complete C++ BitTorrent implementation\n"
 "focusing on efficiency and scalability.  It runs on embedded devices as well as\n"
 "desktops."
 msgstr ""
 
-#: gnu/packages/bittorrent.scm:459
+#: gnu/packages/bittorrent.scm:457
 msgid "Graphical BitTorrent client"
 msgstr "Cliente BitTorrent gráfico"
 
-#: gnu/packages/bittorrent.scm:461
+#: gnu/packages/bittorrent.scm:459
 msgid ""
 "qBittorrent is a BitTorrent client programmed in C++/Qt that uses\n"
 "libtorrent (sometimes called libtorrent-rasterbar) by Arvid Norberg.\n"
@@ -1661,11 +2109,11 @@ msgid ""
 "features."
 msgstr ""
 
-#: gnu/packages/bittorrent.scm:496
+#: gnu/packages/bittorrent.scm:530
 msgid "Fully-featured cross-platform ​BitTorrent client"
 msgstr ""
 
-#: gnu/packages/bittorrent.scm:498
+#: gnu/packages/bittorrent.scm:532
 msgid ""
 "Deluge contains the common features to BitTorrent clients such as\n"
 "Protocol Encryption, DHT, Local Peer Discovery (LSD), Peer Exchange\n"
@@ -1688,7 +2136,7 @@ msgstr ""
 
 #: gnu/packages/certs.scm:140
 msgid "CA certificates from Mozilla"
-msgstr "Certificado CA desde Mozilla"
+msgstr "Certificados de AC (autoridad de certificación/CA) de Mozilla"
 
 #: gnu/packages/certs.scm:142
 msgid ""
@@ -1707,11 +2155,11 @@ msgid ""
 "within Guix."
 msgstr ""
 
-#: gnu/packages/compression.scm:108
+#: gnu/packages/compression.scm:125
 msgid "Compression library"
 msgstr "Biblioteca de compresión"
 
-#: gnu/packages/compression.scm:110
+#: gnu/packages/compression.scm:127
 msgid ""
 "zlib is designed to be a free, general-purpose, legally unencumbered --\n"
 "that is, not covered by any patents -- lossless data-compression library for\n"
@@ -1724,42 +2172,42 @@ msgid ""
 "in compression."
 msgstr ""
 
-#: gnu/packages/compression.scm:138
+#: gnu/packages/compression.scm:164
 msgid "Zip Compression library"
-msgstr "Biblioteca Zip de compresión"
+msgstr "Biblioteca de compresión Zip"
 
-#: gnu/packages/compression.scm:140
+#: gnu/packages/compression.scm:166
 msgid ""
 "Minizip is a minimalistic library that supports compressing,\n"
 "extracting and viewing ZIP archives.  This version is extracted from\n"
 "the @code{zlib} source."
 msgstr ""
 
-#: gnu/packages/compression.scm:159
+#: gnu/packages/compression.scm:185
 msgid "Replacement for Sun's 'jar' utility"
-msgstr ""
+msgstr "Reemplazo de la herramienta de Sun 'jar'"
 
-#: gnu/packages/compression.scm:161
+#: gnu/packages/compression.scm:187
 msgid ""
 "FastJar is an attempt to create a much faster replacement for Sun's\n"
 "@code{jar} utility.  Instead of being written in Java, FastJar is written in C."
 msgstr ""
 
-#: gnu/packages/compression.scm:190
+#: gnu/packages/compression.scm:216
 msgid "C library for manipulating POSIX tar files"
-msgstr "Biblioteca C para manipulador de ficheros tar POSIX"
+msgstr "Biblioteca C para manipulación de ficheros tar POSIX"
 
-#: gnu/packages/compression.scm:192
+#: gnu/packages/compression.scm:218
 msgid ""
 "libtar is a C library for manipulating POSIX tar files.  It handles\n"
 "adding and extracting files to/from a tar archive."
 msgstr ""
 
-#: gnu/packages/compression.scm:209
+#: gnu/packages/compression.scm:235
 msgid "General file (de)compression (using lzw)"
 msgstr ""
 
-#: gnu/packages/compression.scm:238
+#: gnu/packages/compression.scm:264
 msgid ""
 "GNU Gzip provides data compression and decompression utilities; the\n"
 "typical extension is \".gz\".  Unlike the \"zip\" format, it compresses a single\n"
@@ -1767,11 +2215,11 @@ msgid ""
 "\".tar.gz\" or \".tgz\", etc."
 msgstr ""
 
-#: gnu/packages/compression.scm:332
+#: gnu/packages/compression.scm:372
 msgid "High-quality data compression program"
 msgstr "Programa de compresión de datos de alta calidad"
 
-#: gnu/packages/compression.scm:334
+#: gnu/packages/compression.scm:374
 msgid ""
 "bzip2 is a freely available, patent free (see below), high-quality data\n"
 "compressor.  It typically compresses files to within 10% to 15% of the best\n"
@@ -1780,11 +2228,11 @@ msgid ""
 "decompression."
 msgstr ""
 
-#: gnu/packages/compression.scm:368
+#: gnu/packages/compression.scm:429
 msgid "Parallel bzip2 compression utility"
 msgstr "Utilidad de compresión bzip2 paralela"
 
-#: gnu/packages/compression.scm:370
+#: gnu/packages/compression.scm:431
 msgid ""
 "lbzip2 is a multi-threaded compression utility with support for the\n"
 "bzip2 compressed file format.  lbzip2 can process standard bz2 files in\n"
@@ -1794,11 +2242,11 @@ msgid ""
 "compatible with bzip2 – both at file format and command line level."
 msgstr ""
 
-#: gnu/packages/compression.scm:400
+#: gnu/packages/compression.scm:464
 msgid "Parallel bzip2 implementation"
 msgstr "Implementación bzip2 paralelo"
 
-#: gnu/packages/compression.scm:402
+#: gnu/packages/compression.scm:466
 msgid ""
 "Pbzip2 is a parallel implementation of the bzip2 block-sorting file\n"
 "compressor that uses pthreads and achieves near-linear speedup on SMP machines.\n"
@@ -1806,11 +2254,11 @@ msgid ""
 "compressed with pbzip2 can be decompressed with bzip2)."
 msgstr ""
 
-#: gnu/packages/compression.scm:423
+#: gnu/packages/compression.scm:504
 msgid "General-purpose data compression"
 msgstr "Propósito general de compresión de datos"
 
-#: gnu/packages/compression.scm:425
+#: gnu/packages/compression.scm:506
 msgid ""
 "XZ Utils is free general-purpose data compression software with high\n"
 "compression ratio.  XZ Utils were written for POSIX-like systems, but also\n"
@@ -1823,12 +2271,11 @@ msgid ""
 "than gzip and 15 % smaller output than bzip2."
 msgstr ""
 
-#: gnu/packages/compression.scm:461
-#, fuzzy
+#: gnu/packages/compression.scm:542
 msgid "LHA archive decompressor"
-msgstr "Descompresor de archivos LHA"
+msgstr "Extractor de archivos LHA"
 
-#: gnu/packages/compression.scm:462
+#: gnu/packages/compression.scm:543
 msgid ""
 "Lhasa is a replacement for the Unix LHA tool, for\n"
 "decompressing .lzh (LHA / LHarc) and .lzs (LArc) archives.  The backend for the\n"
@@ -1838,11 +2285,11 @@ msgid ""
 "act as a free drop-in replacement."
 msgstr ""
 
-#: gnu/packages/compression.scm:486
+#: gnu/packages/compression.scm:567
 msgid "Data compression library suitable for real-time data de-/compression"
 msgstr ""
 
-#: gnu/packages/compression.scm:488
+#: gnu/packages/compression.scm:569
 msgid ""
 "LZO is a data compression library which is suitable for data\n"
 "de-/compression in real-time.  This means it favours speed over\n"
@@ -1852,11 +2299,11 @@ msgid ""
 "format are designed to be portable across platforms."
 msgstr ""
 
-#: gnu/packages/compression.scm:511
+#: gnu/packages/compression.scm:592
 msgid "Compress or expand files"
 msgstr "Comprime o expande ficheros"
 
-#: gnu/packages/compression.scm:513
+#: gnu/packages/compression.scm:594
 msgid ""
 "Lzop is a file compressor which is very similar to gzip.  Lzop uses the\n"
 "LZO data compression library for compression services, and its main advantages\n"
@@ -1864,11 +2311,11 @@ msgid ""
 "some compression ratio)."
 msgstr ""
 
-#: gnu/packages/compression.scm:532
+#: gnu/packages/compression.scm:613
 msgid "Lossless data compressor based on the LZMA algorithm"
 msgstr ""
 
-#: gnu/packages/compression.scm:534
+#: gnu/packages/compression.scm:615
 msgid ""
 "Lzip is a lossless data compressor with a user interface similar to the\n"
 "one of gzip or bzip2.  Lzip decompresses almost as fast as gzip and compresses\n"
@@ -1876,11 +2323,11 @@ msgid ""
 "archiving.  Lzip is a clean implementation of the LZMA algorithm."
 msgstr ""
 
-#: gnu/packages/compression.scm:553
+#: gnu/packages/compression.scm:634
 msgid "Recover and decompress data from damaged lzip files"
 msgstr ""
 
-#: gnu/packages/compression.scm:555
+#: gnu/packages/compression.scm:636
 msgid ""
 "Lziprecover is a data recovery tool and decompressor for files in the lzip\n"
 "compressed data format (.lz).  It can test the integrity of lzip files, extract\n"
@@ -1896,11 +2343,11 @@ msgid ""
 "decompressors when faced with corrupted input."
 msgstr ""
 
-#: gnu/packages/compression.scm:610
+#: gnu/packages/compression.scm:691
 msgid "Archives in shell scripts, uuencode/uudecode"
 msgstr ""
 
-#: gnu/packages/compression.scm:612
+#: gnu/packages/compression.scm:693
 msgid ""
 "GNU sharutils is a package for creating and manipulating shell\n"
 "archives that can be readily emailed.  A shell archive is a file that can be\n"
@@ -1908,41 +2355,41 @@ msgid ""
 "This package is mostly for compatibility and historical interest."
 msgstr ""
 
-#: gnu/packages/compression.scm:643
+#: gnu/packages/compression.scm:725
 msgid "Library for SoundFont decompression"
 msgstr "Biblioteca descompresión SoundFont"
 
-#: gnu/packages/compression.scm:645
+#: gnu/packages/compression.scm:727
 msgid ""
 "SfArkLib is a C++ library for decompressing SoundFont files compressed\n"
 "with the sfArk algorithm."
 msgstr ""
 
-#: gnu/packages/compression.scm:680
+#: gnu/packages/compression.scm:762
 msgid "Basic sfArk decompressor"
 msgstr "Descompresor básico sfArk"
 
-#: gnu/packages/compression.scm:681
+#: gnu/packages/compression.scm:763
 msgid ""
 "SfArk extractor converts SoundFonts in the compressed legacy\n"
 "sfArk file format to the uncompressed sf2 format."
 msgstr ""
 
-#: gnu/packages/compression.scm:699
+#: gnu/packages/compression.scm:781
 msgid "Compression tools for some formats used by Microsoft"
 msgstr ""
 
-#: gnu/packages/compression.scm:701
+#: gnu/packages/compression.scm:783
 msgid ""
 "The purpose of libmspack is to provide both compression and\n"
 "decompression of some loosely related file formats used by Microsoft."
 msgstr ""
 
-#: gnu/packages/compression.scm:727
+#: gnu/packages/compression.scm:824
 msgid "Compression algorithm focused on speed"
 msgstr "Compresión algorítmica dedicada a velocidad"
 
-#: gnu/packages/compression.scm:728
+#: gnu/packages/compression.scm:825
 msgid ""
 "LZ4 is a lossless compression algorithm, providing\n"
 "compression speed at 400 MB/s per core (0.16 Bytes/cycle).  It also features an\n"
@@ -1951,11 +2398,11 @@ msgid ""
 "time for compression ratio."
 msgstr ""
 
-#: gnu/packages/compression.scm:777
+#: gnu/packages/compression.scm:867
 msgid "Tools to create and extract squashfs file systems"
 msgstr ""
 
-#: gnu/packages/compression.scm:779
+#: gnu/packages/compression.scm:869
 msgid ""
 "Squashfs is a highly compressed read-only file system for Linux.  It uses\n"
 "zlib to compress files, inodes, and directories.  All blocks are packed to\n"
@@ -1965,21 +2412,21 @@ msgid ""
 "extract such file systems."
 msgstr ""
 
-#: gnu/packages/compression.scm:833
+#: gnu/packages/compression.scm:907
 msgid "Parallel implementation of gzip"
 msgstr "Paralelismo implementado para gzip"
 
-#: gnu/packages/compression.scm:835
+#: gnu/packages/compression.scm:909
 msgid ""
 "This package provides a parallel implementation of gzip that exploits\n"
 "multiple processors and multiple cores when compressing data."
 msgstr ""
 
-#: gnu/packages/compression.scm:859
+#: gnu/packages/compression.scm:933
 msgid "Parallel indexing implementation of LZMA"
 msgstr "Implementado indizada paralela de LZMA"
 
-#: gnu/packages/compression.scm:861
+#: gnu/packages/compression.scm:935
 msgid ""
 "The existing XZ Utils provide great compression in the .xz file format,\n"
 "but they produce just one big block of compressed data.  Pixz instead produces\n"
@@ -1988,25 +2435,12 @@ msgid ""
 "tarballs."
 msgstr ""
 
-#: gnu/packages/compression.scm:903
-msgid "Implementation of the Brotli compression algorithm"
-msgstr "Implementación del algoritmo de compresión Brotli"
-
-#: gnu/packages/compression.scm:905
-msgid ""
-"Brotli is a general-purpose lossless compression algorithm.  It is\n"
-"similar in speed to deflate but offers denser compression.  This package\n"
-"provides encoder and a decoder libraries: libbrotlienc and libbrotlidec,\n"
-"respectively, based on the reference implementation from Google."
-msgstr ""
-
-#: gnu/packages/compression.scm:939
+#: gnu/packages/compression.scm:970
 #, fuzzy
-#| msgid "Delta encoder for binary files"
 msgid "Patch binary files"
 msgstr "Codificador delta para ficheros binarios"
 
-#: gnu/packages/compression.scm:941
+#: gnu/packages/compression.scm:972
 msgid ""
 "@command{bsdiff} and @command{bspatch} are tools for building and\n"
 "applying patches to binary files.  By using suffix sorting (specifically\n"
@@ -2015,19 +2449,19 @@ msgid ""
 "smaller than those produced by @code{Xdelta}."
 msgstr ""
 
-#: gnu/packages/compression.scm:987
+#: gnu/packages/compression.scm:1018
 msgid "Tool to unpack Cabinet archives"
 msgstr ""
 
-#: gnu/packages/compression.scm:988
+#: gnu/packages/compression.scm:1019
 msgid "Extracts files out of Microsoft Cabinet (.cab) archives"
 msgstr ""
 
-#: gnu/packages/compression.scm:1021
+#: gnu/packages/compression.scm:1052
 msgid "Delta encoder for binary files"
 msgstr "Codificador delta para ficheros binarios"
 
-#: gnu/packages/compression.scm:1022
+#: gnu/packages/compression.scm:1053
 msgid ""
 "xdelta encodes only the differences between two binary files\n"
 "using the VCDIFF algorithm and patch file format described in RFC 3284.  It can\n"
@@ -2036,11 +2470,11 @@ msgid ""
 "human-readable output."
 msgstr ""
 
-#: gnu/packages/compression.scm:1055
+#: gnu/packages/compression.scm:1086
 msgid "Large file compressor with a very high compression ratio"
 msgstr ""
 
-#: gnu/packages/compression.scm:1056
+#: gnu/packages/compression.scm:1087
 msgid ""
 "lrzip is a compression utility that uses long-range\n"
 "redundancy reduction to improve the subsequent compression ratio of\n"
@@ -2051,11 +2485,11 @@ msgid ""
 "well as bzip2."
 msgstr ""
 
-#: gnu/packages/compression.scm:1083
+#: gnu/packages/compression.scm:1115
 msgid "Fast compressor/decompressor"
 msgstr "Compresor/descompresor rápido"
 
-#: gnu/packages/compression.scm:1084
+#: gnu/packages/compression.scm:1116
 msgid ""
 "Snappy is a compression/decompression library.  It does not\n"
 "aim for maximum compression, or compatibility with any other compression library;\n"
@@ -2065,31 +2499,31 @@ msgid ""
 "100% bigger."
 msgstr ""
 
-#: gnu/packages/compression.scm:1153
+#: gnu/packages/compression.scm:1185
 msgid "Command-line file archiver with high compression ratio"
 msgstr ""
 
-#: gnu/packages/compression.scm:1154
+#: gnu/packages/compression.scm:1186
 msgid ""
 "p7zip is a command-line port of 7-Zip, a file archiver that\n"
 "handles the 7z format which features very high compression ratios."
 msgstr ""
 
-#: gnu/packages/compression.scm:1195
+#: gnu/packages/compression.scm:1227
 msgid "Compressed C++ iostream"
 msgstr "Flujo E/S C++ comprimido"
 
-#: gnu/packages/compression.scm:1196
+#: gnu/packages/compression.scm:1228
 msgid ""
 "gzstream is a small library for providing zlib\n"
 "functionality in a C++ iostream."
 msgstr ""
 
-#: gnu/packages/compression.scm:1245
+#: gnu/packages/compression.scm:1277
 msgid "Incremental journaling archiver"
 msgstr "Archivador diario incremental"
 
-#: gnu/packages/compression.scm:1246
+#: gnu/packages/compression.scm:1278
 msgid ""
 "ZPAQ is a command-line archiver for realistic situations with\n"
 "many duplicate and already compressed files.  It backs up only those files\n"
@@ -2103,21 +2537,21 @@ msgid ""
 "or junctions, and always follows hard links."
 msgstr ""
 
-#: gnu/packages/compression.scm:1345
+#: gnu/packages/compression.scm:1378
 msgid "Extract CAB files from InstallShield installers"
 msgstr ""
 
-#: gnu/packages/compression.scm:1347
+#: gnu/packages/compression.scm:1380
 msgid ""
 "@command{unshield} is a tool and library for extracting @file{.cab}\n"
 " archives from InstallShield installers."
 msgstr ""
 
-#: gnu/packages/compression.scm:1377
+#: gnu/packages/compression.scm:1436
 msgid "Zstandard real-time compression algorithm"
 msgstr ""
 
-#: gnu/packages/compression.scm:1378
+#: gnu/packages/compression.scm:1437
 msgid ""
 "Zstandard (@command{zstd}) is a lossless compression algorithm\n"
 "that combines very fast operation with a compression ratio comparable to that of\n"
@@ -2127,12 +2561,11 @@ msgid ""
 "speed."
 msgstr ""
 
-#: gnu/packages/compression.scm:1420
-#, fuzzy
+#: gnu/packages/compression.scm:1479
 msgid "Threaded implementation of the Zstandard compression algorithm"
-msgstr "Implementación del algoritmo de compresión Brotli"
+msgstr "Implementación multihilo del algoritmo de compresión Zstandard"
 
-#: gnu/packages/compression.scm:1421
+#: gnu/packages/compression.scm:1480
 msgid ""
 "Parallel Zstandard (PZstandard or @command{pzstd}) is a\n"
 "multi-threaded implementation of the @uref{http://zstd.net/, Zstandard\n"
@@ -2145,11 +2578,11 @@ msgid ""
 "the actual decompression, the other input and output."
 msgstr ""
 
-#: gnu/packages/compression.scm:1459
+#: gnu/packages/compression.scm:1518
 msgid "Compression and file packing utility"
 msgstr "Utilidad de empaquetado y compresión"
 
-#: gnu/packages/compression.scm:1461
+#: gnu/packages/compression.scm:1520
 msgid ""
 "Zip is a compression and file packaging/archive utility.  Zip is useful\n"
 "for packaging a set of files for distribution, for archiving files, and for\n"
@@ -2164,11 +2597,11 @@ msgid ""
 "Compression ratios of 2:1 to 3:1 are common for text files."
 msgstr ""
 
-#: gnu/packages/compression.scm:1523
+#: gnu/packages/compression.scm:1582
 msgid "Decompression and file extraction utility"
 msgstr "Utilidad de extracción y descompresión de fichero"
 
-#: gnu/packages/compression.scm:1525
+#: gnu/packages/compression.scm:1584
 msgid ""
 "UnZip is an extraction utility for archives compressed in .zip format,\n"
 "also called \"zipfiles\".\n"
@@ -2179,19 +2612,19 @@ msgid ""
 "recreates the stored directory structure by default."
 msgstr ""
 
-#: gnu/packages/compression.scm:1556
+#: gnu/packages/compression.scm:1629
 msgid "Library for accessing zip files"
 msgstr "Biblioteca para acceso a ficheros zip"
 
-#: gnu/packages/compression.scm:1558
+#: gnu/packages/compression.scm:1631
 msgid "ZZipLib is a library based on zlib for accessing zip files."
 msgstr ""
 
-#: gnu/packages/compression.scm:1580
+#: gnu/packages/compression.scm:1656
 msgid "C library for reading, creating, and modifying zip archives"
 msgstr ""
 
-#: gnu/packages/compression.scm:1581
+#: gnu/packages/compression.scm:1657
 msgid ""
 "Libzip is a C library for reading, creating, and modifying\n"
 "zip archives.  Files can be added from data buffers, files, or compressed data\n"
@@ -2199,11 +2632,11 @@ msgid ""
 "archive can be reverted."
 msgstr ""
 
-#: gnu/packages/compression.scm:1614
+#: gnu/packages/compression.scm:1690
 msgid "Universal tool to manage file archives of various types"
 msgstr ""
 
-#: gnu/packages/compression.scm:1615
+#: gnu/packages/compression.scm:1691
 msgid ""
 "The main command is @command{aunpack} which extracts files\n"
 "from an archive.  The other commands provided are @command{apack} (to create\n"
@@ -2213,11 +2646,11 @@ msgid ""
 "of archives."
 msgstr ""
 
-#: gnu/packages/compression.scm:1639
+#: gnu/packages/compression.scm:1715
 msgid "Small, stand-alone lzip decompressor"
 msgstr ""
 
-#: gnu/packages/compression.scm:1641
+#: gnu/packages/compression.scm:1717
 msgid ""
 "Lunzip is a decompressor for files in the lzip compression format (.lz),\n"
 "written as a single small C tool with no dependencies.  This makes it\n"
@@ -2227,13 +2660,12 @@ msgid ""
 "Lunzip is intended to be fully compatible with the regular lzip package."
 msgstr ""
 
-#: gnu/packages/compression.scm:1666
+#: gnu/packages/compression.scm:1742
 #, fuzzy
-#| msgid "Fast compressor/decompressor"
 msgid "Small, stand-alone lzip compressor and decompressor"
 msgstr "Compresor/descompresor rápido"
 
-#: gnu/packages/compression.scm:1668
+#: gnu/packages/compression.scm:1744
 msgid ""
 "Clzip is a compressor and decompressor for files in the lzip compression\n"
 "format (.lz), written as a single small C tool with no dependencies.  This makes\n"
@@ -2242,13 +2674,11 @@ msgid ""
 "Clzip is intended to be fully compatible with the regular lzip package."
 msgstr ""
 
-#: gnu/packages/compression.scm:1693
-#, fuzzy
-#| msgid "Zip Compression library"
+#: gnu/packages/compression.scm:1770
 msgid "Lzip data compression C library"
-msgstr "Biblioteca Zip de compresión"
+msgstr "Biblioteca de C para compresión de datos con Lzip"
 
-#: gnu/packages/compression.scm:1695
+#: gnu/packages/compression.scm:1772
 msgid ""
 "Lzlib is a C library for in-memory LZMA compression and decompression in\n"
 "the lzip format.  It supports integrity checking of the decompressed data, and\n"
@@ -2256,11 +2686,11 @@ msgid ""
 "corrupted input."
 msgstr ""
 
-#: gnu/packages/compression.scm:1717
+#: gnu/packages/compression.scm:1794
 msgid "Parallel lossless data compressor for the lzip format"
 msgstr ""
 
-#: gnu/packages/compression.scm:1719
+#: gnu/packages/compression.scm:1796
 msgid ""
 "Plzip is a massively parallel (multi-threaded) lossless data compressor\n"
 "and decompressor that uses the lzip file format (.lz).  Files produced by plzip\n"
@@ -2274,21 +2704,21 @@ msgid ""
 "single-member files which can't be decompressed in parallel."
 msgstr ""
 
-#: gnu/packages/compression.scm:1753
+#: gnu/packages/compression.scm:1829
 msgid "Tool for extracting Inno Setup installers"
 msgstr ""
 
-#: gnu/packages/compression.scm:1754
+#: gnu/packages/compression.scm:1830
 msgid ""
 "innoextract allows extracting Inno Setup installers under\n"
 "non-Windows systems without running the actual installer using wine."
 msgstr ""
 
-#: gnu/packages/compression.scm:1792
+#: gnu/packages/compression.scm:1868
 msgid "General-purpose lossless compression"
 msgstr "Compresión sin pérdida de propósito general"
 
-#: gnu/packages/compression.scm:1793
+#: gnu/packages/compression.scm:1869
 msgid ""
 "This package provides the reference implementation of Brotli,\n"
 "a generic-purpose lossless compression algorithm that compresses data using a\n"
@@ -2300,11 +2730,22 @@ msgid ""
 "The specification of the Brotli Compressed Data Format is defined in RFC 7932."
 msgstr ""
 
-#: gnu/packages/compression.scm:1816
+#: gnu/packages/compression.scm:1889
+msgid "Python interface to google-brotli"
+msgstr "Interfaz Python para google-brotli"
+
+#: gnu/packages/compression.scm:1890
+msgid ""
+"@code{python-google-brotli} provides a Python interface to\n"
+"@code{google-brotli}, an implementation of the Brotli lossless compression\n"
+"algorithm."
+msgstr ""
+
+#: gnu/packages/compression.scm:1911
 msgid "Portable lossless data compression library"
 msgstr "Biblioteca portable de compresión de datos sin pérdida"
 
-#: gnu/packages/compression.scm:1817
+#: gnu/packages/compression.scm:1912
 msgid ""
 "UCL implements a number of compression algorithms that\n"
 "achieve an excellent compression ratio while allowing fast decompression.\n"
@@ -2314,11 +2755,11 @@ msgid ""
 "decompression is a little bit slower."
 msgstr ""
 
-#: gnu/packages/compression.scm:1873
+#: gnu/packages/compression.scm:1958
 msgid "Compression tool for executables"
 msgstr "Herramienta de compresión para ejecutables"
 
-#: gnu/packages/compression.scm:1875
+#: gnu/packages/compression.scm:1960
 msgid ""
 "The Ultimate Packer for eXecutables (UPX) is an executable file\n"
 "compressor.  UPX typically reduces the file size of programs and shared\n"
@@ -2326,11 +2767,138 @@ msgid ""
 "download times, and other distribution and storage costs."
 msgstr ""
 
-#: gnu/packages/databases.scm:161
+#: gnu/packages/compression.scm:1988
+msgid "Qt/C++ wrapper for Minizip"
+msgstr ""
+
+#: gnu/packages/compression.scm:1989
+msgid ""
+"QuaZIP is a simple C++ wrapper over Gilles Vollant's\n"
+"ZIP/UNZIP package that can be used to access ZIP archives.  It uses\n"
+"Trolltech's Qt toolkit.\n"
+"\n"
+"QuaZIP allows you to access files inside ZIP archives using QIODevice\n"
+"API, and that means that you can also use QTextStream, QDataStream or\n"
+"whatever you would like to use on your zipped files.\n"
+"\n"
+"QuaZIP provides complete abstraction of the ZIP/UNZIP API, for both\n"
+"reading from and writing to ZIP archives. "
+msgstr ""
+
+#: gnu/packages/compression.scm:2036
+msgid "Utilities that transparently operate on compressed files"
+msgstr ""
+
+#: gnu/packages/compression.scm:2038
+msgid ""
+"Zutils is a collection of utilities able to process any combination of\n"
+"compressed and uncompressed files transparently.  If any given file, including\n"
+"standard input, is compressed, its decompressed content is used instead.\n"
+"\n"
+"@command{zcat}, @command{zcmp}, @command{zdiff}, and @command{zgrep} are\n"
+"improved replacements for the shell scripts provided by GNU gzip.\n"
+"@command{ztest} tests the integrity of supported compressed files.\n"
+"@command{zupdate} recompresses files with lzip, similar to gzip's\n"
+"@command{znew}.\n"
+"\n"
+"Supported compression formats are bzip2, gzip, lzip, and xz.  Zutils uses\n"
+"external compressors: the compressor to be used for each format is configurable\n"
+"at run time, and must be installed separately."
+msgstr ""
+
+#: gnu/packages/compression.scm:2095
+msgid "Extract makeself and mojo archives without running untrusted code"
+msgstr ""
+
+#: gnu/packages/compression.scm:2096
+msgid ""
+"This package provides a script to unpack self-extracting\n"
+"archives generated by @command{makeself} or @command{mojo} without running the\n"
+"possibly untrusted extraction shell script."
+msgstr ""
+
+#: gnu/packages/compression.scm:2123
+msgid "Original Lempel-Ziv compress/uncompress programs"
+msgstr ""
+
+#: gnu/packages/compression.scm:2124
+msgid ""
+"(N)compress provides the original compress and uncompress\n"
+"programs that used to be the de facto UNIX standard for compressing and\n"
+"uncompressing files.  These programs implement a fast, simple Lempel-Ziv (LZW)\n"
+"file compression algorithm."
+msgstr ""
+
+# FUZZY
+#: gnu/packages/compression.scm:2153
+msgid "Graphical front-end for archive operations"
+msgstr "Interfaz gráfica para manipular archivadores"
+
+#: gnu/packages/compression.scm:2154
+msgid ""
+"Xarchiver is a front-end to various command line archiving\n"
+"tools.  It uses GTK+ tool-kit and is designed to be desktop-environment\n"
+"independent.  Supported formats are 7z, ARJ, bzip2, gzip, LHA, lzma, lzop,\n"
+"RAR, RPM, DEB, tar, and ZIP.  It cannot perform functions for archives, whose\n"
+"archiver is not installed."
+msgstr ""
+
+#: gnu/packages/compression.scm:2189
+msgid "Multithreaded tar utility"
+msgstr "Herramienta tar multihilo"
+
+#: gnu/packages/compression.scm:2191
+msgid ""
+"Archive huge numbers of files, or split massive tar archives into smaller\n"
+"chunks."
+msgstr ""
+
+#: gnu/packages/compression.scm:2210
+#, fuzzy
+msgid "Blocking, shuffling and lossless compression library"
+msgstr "Biblioteca portable de compresión de datos sin pérdida"
+
+#: gnu/packages/compression.scm:2212
+msgid ""
+"Blosc is a high performance compressor optimized for binary data. It has\n"
+"been designed to transmit data to the processor cache faster than the\n"
+"traditional, non-compressed, direct memory fetch approach via a\n"
+"@code{memcpy()} system call.  Blosc is meant not only to reduce the size of\n"
+"large datasets on-disk or in-memory, but also to accelerate memory-bound\n"
+"computations."
+msgstr ""
+
+#: gnu/packages/compression.scm:2249
+msgid "Error code modeler"
+msgstr ""
+
+#: gnu/packages/compression.scm:2250
+msgid ""
+"ECM is a utility that converts ECM files, i.e., CD data files\n"
+"with their error correction data losslessly rearranged for better compression,\n"
+"to their original, binary CD format."
+msgstr ""
+
+#: gnu/packages/compression.scm:2272
+msgid "Combination of the tar archiver and the lzip compressor"
+msgstr ""
+
+#: gnu/packages/compression.scm:2274
+msgid ""
+"Tarlz is a massively parallel (multi-threaded) combined implementation of\n"
+"the tar archiver and the lzip compressor.  Tarlz creates, lists, and extracts\n"
+"archives in a simplified and safer variant of the POSIX pax format compressed\n"
+"with lzip, keeping the alignment between tar members and lzip members.  The\n"
+"resulting multimember tar.lz archive is fully backward compatible with standard\n"
+"tar tools like GNU tar, which treat it like any other tar.lz archive.  Tarlz\n"
+"can append files to the end of such compressed archives."
+msgstr ""
+
+#: gnu/packages/databases.scm:183
 msgid "Clustered RDF storage and query engine"
 msgstr "Almacenamiento racimo RDF y motor de petición"
 
-#: gnu/packages/databases.scm:162
+#: gnu/packages/databases.scm:184
 msgid ""
 "4store is a RDF/SPARQL store written in C, supporting\n"
 "either single machines or networked clusters."
@@ -2338,54 +2906,96 @@ msgstr ""
 "4store es un almacén RDF/SPARQL escrito en C, soportando\n"
 "tanto máquinas únicas o racimos por red."
 
-#: gnu/packages/databases.scm:204
+#: gnu/packages/databases.scm:226
 msgid "@code{mgo} offers a rich MongoDB driver for Go."
 msgstr ""
 
-#: gnu/packages/databases.scm:206
+#: gnu/packages/databases.scm:228
 msgid ""
 "@code{mgo} (pronounced as mango) is a MongoDB driver for the Go language.\n"
 "It implements a rich selection of features under a simple API following\n"
 "standard Go idioms."
 msgstr ""
 
-#: gnu/packages/databases.scm:232
+#: gnu/packages/databases.scm:274
+msgid "Run temporary PostgreSQL databases"
+msgstr "Ejecución de bases de datos PostgreSQL temporales"
+
+#: gnu/packages/databases.scm:276
+msgid ""
+"@code{pg_tmp} creates temporary PostgreSQL databases, suitable for tasks\n"
+"like running software test suites.  Temporary databases created with\n"
+"@code{pg_tmp} have a limited shared memory footprint and are automatically\n"
+"garbage-collected after a configurable number of seconds (the default is\n"
+"60)."
+msgstr ""
+
+#: gnu/packages/databases.scm:303
 msgid "Utility for dumping and restoring ElasticSearch indexes"
 msgstr ""
 
-#: gnu/packages/databases.scm:234
+#: gnu/packages/databases.scm:305
 msgid ""
 "This package provides a utility for dumping the contents of an\n"
 "ElasticSearch index to a compressed file and restoring the dumpfile back to an\n"
 "ElasticSearch server"
 msgstr ""
 
-#: gnu/packages/databases.scm:259
+#: gnu/packages/databases.scm:330
 msgid "Fast key-value storage library"
 msgstr ""
 
-#: gnu/packages/databases.scm:261
+#: gnu/packages/databases.scm:332
 msgid ""
 "LevelDB is a fast key-value storage library that provides an ordered\n"
 "mapping from string keys to string values."
 msgstr ""
 
-#: gnu/packages/databases.scm:281
+#: gnu/packages/databases.scm:352
 msgid "In-memory caching service"
 msgstr "Servicio de caché en memoria"
 
-#: gnu/packages/databases.scm:282
+#: gnu/packages/databases.scm:353
 msgid ""
 "Memcached is an in-memory key-value store.  It has a small\n"
 "and generic API, and was originally intended for use with dynamic web\n"
 "applications."
 msgstr ""
 
-#: gnu/packages/databases.scm:405
+#: gnu/packages/databases.scm:430
+msgid "C++ library for memcached"
+msgstr "Biblioteca C++ para memcached"
+
+#: gnu/packages/databases.scm:431
+msgid ""
+"libMemcached is a library to use memcached in C/C++\n"
+"applications.  It comes with a complete reference guide and documentation of\n"
+"the API, and provides features such as:\n"
+"@itemize\n"
+"@item Asynchronous and synchronous transport support\n"
+"@item Consistent hashing and distribution\n"
+"@item Tunable hashing algorithm to match keys\n"
+"@item Access to large object support\n"
+"@item Local replication\n"
+"@end itemize"
+msgstr ""
+
+#: gnu/packages/databases.scm:469
+msgid "Python client for memcached"
+msgstr "Cliente Python para memcached"
+
+#: gnu/packages/databases.scm:471
+msgid ""
+"@code{pylibmc} is a client in Python for memcached.  It is a wrapper\n"
+"around TangentOrg’s libmemcached library, and can be used as a drop-in\n"
+"replacement for the code@{python-memcached} library."
+msgstr ""
+
+#: gnu/packages/databases.scm:606
 msgid "High performance and high availability document database"
 msgstr ""
 
-#: gnu/packages/databases.scm:407
+#: gnu/packages/databases.scm:608
 msgid ""
 "Mongo is a high-performance, high availability, schema-free\n"
 "document-oriented database.  A key goal of MongoDB is to bridge the gap\n"
@@ -2393,32 +3003,52 @@ msgid ""
 "RDBMS systems (which are deep in functionality)."
 msgstr ""
 
-#: gnu/packages/databases.scm:477
+#: gnu/packages/databases.scm:640
+msgid "Terminal Client for MySQL with AutoCompletion and Syntax Highlighting"
+msgstr ""
+
+#: gnu/packages/databases.scm:642
+msgid ""
+"MyCLI is a command line interface for MySQL, MariaDB, and Percona with\n"
+"auto-completion and syntax highlighting."
+msgstr ""
+
+#: gnu/packages/databases.scm:711
 msgid "Fast, easy to use, and popular database"
 msgstr ""
 
-#: gnu/packages/databases.scm:479
+#: gnu/packages/databases.scm:713
 msgid ""
 "MySQL is a fast, reliable, and easy to use relational database\n"
 "management system that supports the standardized Structured Query\n"
 "Language."
 msgstr ""
 
-#: gnu/packages/databases.scm:667
+#: gnu/packages/databases.scm:966
 msgid "SQL database server"
 msgstr "Servidor BBDD SQL"
 
-#: gnu/packages/databases.scm:669
+#: gnu/packages/databases.scm:968
 msgid ""
 "MariaDB is a multi-user and multi-threaded SQL database server, designed\n"
 "as a drop-in replacement of MySQL."
 msgstr ""
 
-#: gnu/packages/databases.scm:709
+#: gnu/packages/databases.scm:991
+msgid "Client library to connect to MySQL or MariaDB"
+msgstr ""
+
+#: gnu/packages/databases.scm:992
+msgid ""
+"The MariaDB Connector/C is used to connect applications\n"
+"developed in C/C++ to MariaDB and MySQL databases."
+msgstr ""
+
+#: gnu/packages/databases.scm:1033
 msgid "Powerful object-relational database system"
 msgstr ""
 
-#: gnu/packages/databases.scm:711
+#: gnu/packages/databases.scm:1035
 msgid ""
 "PostgreSQL is a powerful object-relational database system.  It is fully\n"
 "ACID compliant, has full support for foreign keys, joins, views, triggers, and\n"
@@ -2428,21 +3058,21 @@ msgid ""
 "pictures, sounds, or video."
 msgstr ""
 
-#: gnu/packages/databases.scm:750
+#: gnu/packages/databases.scm:1089
 msgid "Pure-Python MySQL driver"
 msgstr ""
 
-#: gnu/packages/databases.scm:752
+#: gnu/packages/databases.scm:1091
 msgid ""
 "PyMySQL is a pure-Python MySQL client library, based on PEP 249.\n"
 "Most public APIs are compatible with @command{mysqlclient} and MySQLdb."
 msgstr ""
 
-#: gnu/packages/databases.scm:777
+#: gnu/packages/databases.scm:1117
 msgid "Key-value database"
 msgstr "Valor-clave de BD"
 
-#: gnu/packages/databases.scm:778
+#: gnu/packages/databases.scm:1118
 msgid ""
 "QDBM is a library of routines for managing a\n"
 "database.  The database is a simple data file containing key-value\n"
@@ -2452,11 +3082,11 @@ msgid ""
 "organized in a hash table or B+ tree."
 msgstr ""
 
-#: gnu/packages/databases.scm:814
+#: gnu/packages/databases.scm:1153
 msgid "Manipulate plain text files as databases"
-msgstr ""
+msgstr "Manipulación de ficheros de texto como bases de datos"
 
-#: gnu/packages/databases.scm:816
+#: gnu/packages/databases.scm:1155
 msgid ""
 "GNU Recutils is a set of tools and libraries for creating and\n"
 "manipulating text-based, human-editable databases.  Despite being text-based,\n"
@@ -2465,11 +3095,23 @@ msgid ""
 "types are supported, as is encryption."
 msgstr ""
 
-#: gnu/packages/databases.scm:913
+#: gnu/packages/databases.scm:1177
+msgid "Emacs mode for working with recutils database files"
+msgstr "Modo de Emacs para trabajar con ficheros de base de datos de recutils"
+
+#: gnu/packages/databases.scm:1178
+msgid ""
+"This package provides an Emacs major mode @code{rec-mode}\n"
+"for working with GNU Recutils text-based, human-editable databases.  It\n"
+"supports editing, navigation, and querying of recutils database files\n"
+"including field and record folding."
+msgstr ""
+
+#: gnu/packages/databases.scm:1272
 msgid "Persistent key-value store for fast storage"
 msgstr "Almacenaje clave-valor persistente para almacenar rápido"
 
-#: gnu/packages/databases.scm:915
+#: gnu/packages/databases.scm:1274
 msgid ""
 "RocksDB is a library that forms the core building block for a fast\n"
 "key-value server, especially suited for storing data on flash drives.  It\n"
@@ -2480,11 +3122,11 @@ msgid ""
 "data in a single database.  RocksDB is partially based on @code{LevelDB}."
 msgstr ""
 
-#: gnu/packages/databases.scm:975
+#: gnu/packages/databases.scm:1335
 msgid "Command-line tool for accessing SPARQL endpoints over HTTP"
 msgstr ""
 
-#: gnu/packages/databases.scm:976
+#: gnu/packages/databases.scm:1336
 msgid ""
 "Sparql-query is a command-line tool for accessing SPARQL\n"
 "endpoints over HTTP.  It has been intentionally designed to @code{feel} similar to\n"
@@ -2495,23 +3137,21 @@ msgid ""
 "for example from a shell script."
 msgstr ""
 
-#: gnu/packages/databases.scm:1067
+#: gnu/packages/databases.scm:1427
 msgid "Database change management tool"
 msgstr ""
 
-#: gnu/packages/databases.scm:1069
+#: gnu/packages/databases.scm:1429
 msgid ""
 "Sqitch is a standalone change management system for database schemas,\n"
 "which uses SQL to describe changes."
 msgstr ""
 
-#: gnu/packages/databases.scm:1096
-#, fuzzy
-#| msgid "Extensible console-based Jabber client"
+#: gnu/packages/databases.scm:1456
 msgid "Text console-based database viewer and editor"
-msgstr "Cliente extensible Jabber basado en consola"
+msgstr "Visor y editor de base de datos de texto basado en consola"
 
-#: gnu/packages/databases.scm:1098
+#: gnu/packages/databases.scm:1458
 msgid ""
 "SQLcrush lets you view and edit a database directly from the text\n"
 "console through an ncurses interface.  You can explore each table's structure,\n"
@@ -2519,11 +3159,11 @@ msgid ""
 "changes."
 msgstr ""
 
-#: gnu/packages/databases.scm:1134
+#: gnu/packages/databases.scm:1494
 msgid "Trivial database"
-msgstr "BD trivial"
+msgstr "Base de datos trivial"
 
-#: gnu/packages/databases.scm:1136
+#: gnu/packages/databases.scm:1496
 msgid ""
 "TDB is a Trivial Database.  In concept, it is very much like GDBM,\n"
 "and BSD's DB except that it allows multiple simultaneous writers and uses\n"
@@ -2531,19 +3171,19 @@ msgid ""
 "extremely small."
 msgstr ""
 
-#: gnu/packages/databases.scm:1155
+#: gnu/packages/databases.scm:1515
 msgid "Database independent interface for Perl"
 msgstr "Interfaz de base de datos independiente para Perl"
 
-#: gnu/packages/databases.scm:1156
+#: gnu/packages/databases.scm:1516
 msgid "This package provides an database interface for Perl."
 msgstr ""
 
-#: gnu/packages/databases.scm:1204
+#: gnu/packages/databases.scm:1563
 msgid "Extensible and flexible object <-> relational mapper"
 msgstr ""
 
-#: gnu/packages/databases.scm:1205
+#: gnu/packages/databases.scm:1564
 msgid ""
 "An SQL to OO mapper with an object API inspired by\n"
 "Class::DBI (with a compatibility layer as a springboard for porting) and a\n"
@@ -2555,21 +3195,21 @@ msgid ""
 "\"ORDER BY\" and \"HAVING\" support."
 msgstr ""
 
-#: gnu/packages/databases.scm:1236
+#: gnu/packages/databases.scm:1595
 msgid "Cursor with built-in caching support"
 msgstr ""
 
-#: gnu/packages/databases.scm:1237
+#: gnu/packages/databases.scm:1596
 msgid ""
 "DBIx::Class::Cursor::Cached provides a cursor class with\n"
 "built-in caching support."
 msgstr ""
 
-#: gnu/packages/databases.scm:1259
+#: gnu/packages/databases.scm:1618
 msgid "Introspect many-to-many relationships"
 msgstr "Introspección relaciones muchos-a-muchos"
 
-#: gnu/packages/databases.scm:1260
+#: gnu/packages/databases.scm:1619
 msgid ""
 "Because the many-to-many relationships are not real\n"
 "relationships, they can not be introspected with DBIx::Class.  Many-to-many\n"
@@ -2579,42 +3219,42 @@ msgid ""
 "introspected and examined."
 msgstr ""
 
-#: gnu/packages/databases.scm:1318
+#: gnu/packages/databases.scm:1677
 msgid "Create a DBIx::Class::Schema based on a database"
 msgstr ""
 
-#: gnu/packages/databases.scm:1319
+#: gnu/packages/databases.scm:1678
 msgid ""
 "DBIx::Class::Schema::Loader automates the definition of a\n"
 "DBIx::Class::Schema by scanning database table definitions and setting up the\n"
 "columns, primary keys, unique constraints and relationships."
 msgstr ""
 
-#: gnu/packages/databases.scm:1343
+#: gnu/packages/databases.scm:1702
 msgid "DBI PostgreSQL interface"
-msgstr "Interfaz PostgreSQL DBI"
+msgstr "Interfaz DBI de PostgreSQL"
 
-#: gnu/packages/databases.scm:1344
+#: gnu/packages/databases.scm:1703
 msgid ""
 "This package provides a PostgreSQL driver for the Perl5\n"
 "@dfn{Database Interface} (DBI)."
 msgstr ""
 
-#: gnu/packages/databases.scm:1380
+#: gnu/packages/databases.scm:1740
 msgid "DBI MySQL interface"
-msgstr "Interfaz BDI MySQL"
+msgstr "Interfaz DBI de MySQL"
 
-#: gnu/packages/databases.scm:1381
+#: gnu/packages/databases.scm:1741
 msgid ""
 "This package provides a MySQL driver for the Perl5\n"
 "@dfn{Database Interface} (DBI)."
 msgstr ""
 
-#: gnu/packages/databases.scm:1400
+#: gnu/packages/databases.scm:1760
 msgid "SQlite interface for Perl"
 msgstr "Interfaz SQlite para Perl"
 
-#: gnu/packages/databases.scm:1401
+#: gnu/packages/databases.scm:1761
 msgid ""
 "DBD::SQLite is a Perl DBI driver for SQLite, that includes\n"
 "the entire thing in the distribution.  So in order to get a fast transaction\n"
@@ -2622,23 +3262,23 @@ msgid ""
 "module, and nothing else."
 msgstr ""
 
-#: gnu/packages/databases.scm:1424
+#: gnu/packages/databases.scm:1784
 #, scheme-format
 msgid "Parse and utilize MySQL's /etc/my.cnf and ~/.my.cnf files"
 msgstr ""
 
-#: gnu/packages/databases.scm:1426
+#: gnu/packages/databases.scm:1786
 msgid ""
 "@code{MySQL::Config} emulates the @code{load_defaults} function from\n"
-"libmysqlclient.  It will fill an aray with long options, ready to be parsed by\n"
+"libmysqlclient.  It will fill an array with long options, ready to be parsed by\n"
 "@code{Getopt::Long}."
 msgstr ""
 
-#: gnu/packages/databases.scm:1454
+#: gnu/packages/databases.scm:1814 gnu/packages/databases.scm:1843
 msgid "Generate SQL from Perl data structures"
 msgstr ""
 
-#: gnu/packages/databases.scm:1455
+#: gnu/packages/databases.scm:1815
 msgid ""
 "This module was inspired by the excellent DBIx::Abstract.\n"
 "While based on the concepts used by DBIx::Abstract, the concepts used have\n"
@@ -2648,43 +3288,59 @@ msgid ""
 "time your data changes."
 msgstr ""
 
-#: gnu/packages/databases.scm:1484
+#: gnu/packages/databases.scm:1845
+msgid ""
+"This module is nearly identical to @code{SQL::Abstract} 1.81, and exists\n"
+"to preserve the ability of users to opt into the new way of doing things in\n"
+"later versions according to their own schedules.\n"
+"\n"
+"It is an abstract SQL generation module based on the concepts used by\n"
+"@code{DBIx::Abstract}, with several important differences, especially when it\n"
+"comes to @code{WHERE} clauses.  These concepts were modified to make the SQL\n"
+"easier to generate from Perl data structures.\n"
+"\n"
+"The underlying idea is for this module to do what you mean, based on the data\n"
+"structures you provide it.  You shouldn't have to modify your code every time\n"
+"your data changes, as this module figures it out."
+msgstr ""
+
+#: gnu/packages/databases.scm:1880
 msgid "Split SQL code into atomic statements"
 msgstr ""
 
-#: gnu/packages/databases.scm:1485
+#: gnu/packages/databases.scm:1881
 msgid ""
 "This module tries to split any SQL code, even including\n"
 "non-standard extensions, into the atomic statements it is composed of."
 msgstr ""
 
-#: gnu/packages/databases.scm:1503
+#: gnu/packages/databases.scm:1899
 msgid "SQL tokenizer"
 msgstr "Generador de símbolo SQL"
 
-#: gnu/packages/databases.scm:1504
+#: gnu/packages/databases.scm:1900
 msgid ""
 "SQL::Tokenizer is a tokenizer for SQL queries.  It does not\n"
 "claim to be a parser or query verifier.  It just creates sane tokens from a\n"
 "valid SQL query."
 msgstr ""
 
-#: gnu/packages/databases.scm:1522
+#: gnu/packages/databases.scm:1918
 msgid "Data source abstraction library"
 msgstr "Biblioteca abstracta de origen de datos"
 
-#: gnu/packages/databases.scm:1523
+#: gnu/packages/databases.scm:1919
 msgid ""
 "Unixodbc is a library providing an API with which to access\n"
 "data sources.  Data sources include SQL Servers and any software with an ODBC\n"
 "Driver."
 msgstr ""
 
-#: gnu/packages/databases.scm:1547
+#: gnu/packages/databases.scm:1943
 msgid "In-memory key/value and document store"
 msgstr "Almacén en memoria de clave/valor y documento"
 
-#: gnu/packages/databases.scm:1549
+#: gnu/packages/databases.scm:1945
 msgid ""
 "UnQLite is an in-process software library which implements a\n"
 "self-contained, serverless, zero-configuration, transactional NoSQL\n"
@@ -2693,33 +3349,33 @@ msgid ""
 "similar to BerkeleyDB, LevelDB, etc."
 msgstr ""
 
-#: gnu/packages/databases.scm:1577
+#: gnu/packages/databases.scm:1973
 msgid "Key-value cache and store"
 msgstr "Caché de valor-llave y almacenaje"
 
-#: gnu/packages/databases.scm:1578
+#: gnu/packages/databases.scm:1974
 msgid ""
 "Redis is an advanced key-value cache and store.  Redis\n"
 "supports many data structures including strings, hashes, lists, sets, sorted\n"
 "sets, bitmaps and hyperloglogs."
 msgstr ""
 
-#: gnu/packages/databases.scm:1605
+#: gnu/packages/databases.scm:2001
 msgid "Kyoto Cabinet is a modern implementation of the DBM database"
 msgstr ""
 
-#: gnu/packages/databases.scm:1607
+#: gnu/packages/databases.scm:2003
 msgid ""
 "Kyoto Cabinet is a standalone file-based database that supports Hash\n"
 "and B+ Tree data storage models.  It is a fast key-value lightweight\n"
 "database and supports many programming languages.  It is a NoSQL database."
 msgstr ""
 
-#: gnu/packages/databases.scm:1633
+#: gnu/packages/databases.scm:2029
 msgid "Tokyo Cabinet is a modern implementation of the DBM database"
 msgstr ""
 
-#: gnu/packages/databases.scm:1635
+#: gnu/packages/databases.scm:2031
 msgid ""
 "Tokyo Cabinet is a library of routines for managing a database.\n"
 "The database is a simple data file containing records, each is a pair of a\n"
@@ -2729,11 +3385,11 @@ msgid ""
 "organized in hash table, B+ tree, or fixed-length array."
 msgstr ""
 
-#: gnu/packages/databases.scm:1671
+#: gnu/packages/databases.scm:2067
 msgid "NoSQL data engine"
 msgstr "Motor de datos NoSQL"
 
-#: gnu/packages/databases.scm:1673
+#: gnu/packages/databases.scm:2069
 msgid ""
 "WiredTiger is an extensible platform for data management.  It supports\n"
 "row-oriented storage (where all columns of a row are stored together),\n"
@@ -2742,31 +3398,29 @@ msgid ""
 "trees (LSM), for sustained throughput under random insert workloads."
 msgstr ""
 
-#: gnu/packages/databases.scm:1724
-#, fuzzy
-#| msgid "Wired Tiger bindings for GNU Guile"
+#: gnu/packages/databases.scm:2120
 msgid "WiredTiger bindings for GNU Guile"
-msgstr "Enlazando Tiger cableado para GNU Guile"
+msgstr "Interfaz GNU Guile para WiredTiger"
 
-#: gnu/packages/databases.scm:1726
+#: gnu/packages/databases.scm:2122
 msgid ""
 "This package provides Guile bindings to the WiredTiger ``NoSQL''\n"
 "database."
 msgstr ""
 
-#: gnu/packages/databases.scm:1758
+#: gnu/packages/databases.scm:2150
 msgid "Perl5 access to Berkeley DB version 1.x"
 msgstr "Acceso Perl5 a versión 1.x de BD Berkeley"
 
-#: gnu/packages/databases.scm:1760
+#: gnu/packages/databases.scm:2152
 msgid "The DB::File module provides Perl bindings to the Berkeley DB version 1.x."
 msgstr ""
 
-#: gnu/packages/databases.scm:1788
+#: gnu/packages/databases.scm:2180
 msgid "Lightning Memory-Mapped Database library"
 msgstr ""
 
-#: gnu/packages/databases.scm:1790
+#: gnu/packages/databases.scm:2182
 msgid ""
 "The @dfn{Lightning Memory-Mapped Database} (LMDB) is a high-performance\n"
 "transactional database.  Unlike more complex relational databases, LMDB handles\n"
@@ -2779,22 +3433,34 @@ msgid ""
 "virtual address space — not physical RAM."
 msgstr ""
 
-#: gnu/packages/databases.scm:1827
+#: gnu/packages/databases.scm:2215
+msgid "C++11 wrapper for the LMDB embedded B+ tree database library"
+msgstr ""
+
+#: gnu/packages/databases.scm:2216
+msgid ""
+"@code{lmdbxx} is a comprehensive @code{C++} wrapper for the\n"
+"@code{LMDB} embedded database library, offering both an error-checked\n"
+"procedural interface and an object-oriented resource interface with RAII\n"
+"semantics."
+msgstr ""
+
+#: gnu/packages/databases.scm:2248
 msgid "C++ connector for PostgreSQL"
 msgstr "Conector C++ para PostgreSQL"
 
-#: gnu/packages/databases.scm:1829
+#: gnu/packages/databases.scm:2250
 msgid ""
 "Libpqxx is a C++ library to enable user programs to communicate with the\n"
 "PostgreSQL database back-end.  The database back-end can be local or it may be\n"
 "on another machine, accessed via TCP/IP."
 msgstr ""
 
-#: gnu/packages/databases.scm:1852
+#: gnu/packages/databases.scm:2273
 msgid "Small object-relational mapping utility"
 msgstr ""
 
-#: gnu/packages/databases.scm:1854
+#: gnu/packages/databases.scm:2275
 msgid ""
 "Peewee is a simple and small ORM (object-relation mapping) tool.  Peewee\n"
 "handles converting between pythonic values and those used by databases, so you\n"
@@ -2803,11 +3469,24 @@ msgid ""
 "can autogenerate peewee models using @code{pwiz}, a model generator."
 msgstr ""
 
-#: gnu/packages/databases.scm:1900
+#: gnu/packages/databases.scm:2311
+msgid "Easy async ORM for python, built with relations in mind"
+msgstr ""
+
+#: gnu/packages/databases.scm:2313
+msgid ""
+"Tortoise ORM is an easy-to-use asyncio ORM (Object Relational Mapper)\n"
+"inspired by Django.  Tortoise ORM was build with relations in mind and\n"
+"admiration for the excellent and popular Django ORM.  It’s engraved in its\n"
+"design that you are working not with just tables, you work with relational\n"
+"data."
+msgstr ""
+
+#: gnu/packages/databases.scm:2356
 msgid "Library providing transparent encryption of SQLite database files"
 msgstr ""
 
-#: gnu/packages/databases.scm:1901
+#: gnu/packages/databases.scm:2357
 msgid ""
 "SQLCipher is an implementation of SQLite, extended to\n"
 "provide transparent 256-bit AES encryption of database files.  Pages are\n"
@@ -2816,27 +3495,27 @@ msgid ""
 "development."
 msgstr ""
 
-#: gnu/packages/databases.scm:1933 gnu/packages/databases.scm:1959
+#: gnu/packages/databases.scm:2389 gnu/packages/databases.scm:2414
 msgid "Python ODBC Library"
 msgstr "Biblioteca Python ODBC"
 
-#: gnu/packages/databases.scm:1934
+#: gnu/packages/databases.scm:2390
 msgid ""
 "@code{python-pyodbc-c} provides a Python DB-API driver\n"
 "for ODBC."
 msgstr ""
 
-#: gnu/packages/databases.scm:1960
+#: gnu/packages/databases.scm:2415
 msgid ""
 "@code{python-pyodbc} provides a Python DB-API driver\n"
 "for ODBC."
 msgstr ""
 
-#: gnu/packages/databases.scm:1992
+#: gnu/packages/databases.scm:2447
 msgid "Read Microsoft Access databases"
 msgstr "Lee bbdd Microsoft Access"
 
-#: gnu/packages/databases.scm:1993
+#: gnu/packages/databases.scm:2448
 msgid ""
 "MDB Tools is a set of tools and applications to read the\n"
 "proprietary MDB file format used in Microsoft's Access database package.  This\n"
@@ -2845,65 +3524,65 @@ msgid ""
 "etc., and an SQL engine for performing simple SQL queries."
 msgstr ""
 
-#: gnu/packages/databases.scm:2036
+#: gnu/packages/databases.scm:2492
 msgid "Python binding for the ‘Lightning’ database (LMDB)"
 msgstr ""
 
-#: gnu/packages/databases.scm:2038
+#: gnu/packages/databases.scm:2494
 msgid ""
 "python-lmdb or py-lmdb is a Python binding for the @dfn{Lightning\n"
 "Memory-Mapped Database} (LMDB), a high-performance key-value store."
 msgstr ""
 
-#: gnu/packages/databases.scm:2092
+#: gnu/packages/databases.scm:2531
 msgid "ActiveRecord ORM for Python"
 msgstr "ORM ActiceRecord para Python"
 
-#: gnu/packages/databases.scm:2094
+#: gnu/packages/databases.scm:2533
 msgid ""
 "Orator provides a simple ActiveRecord-like Object Relational Mapping\n"
 "implementation for Python."
 msgstr ""
 
-#: gnu/packages/databases.scm:2127
+#: gnu/packages/databases.scm:2578
 msgid "Multi-model database system"
 msgstr "Sistema BBDD multi-modelo"
 
-#: gnu/packages/databases.scm:2128
+#: gnu/packages/databases.scm:2579
 msgid ""
 "Virtuoso is a scalable cross-platform server that combines\n"
 "relational, graph, and document data management with web application server\n"
 "and web services platform functionality."
 msgstr ""
 
-#: gnu/packages/databases.scm:2154
+#: gnu/packages/databases.scm:2605
 msgid ""
 "Cassandra Cluster Manager for Apache Cassandra clusters on\n"
 "localhost"
 msgstr ""
 
-#: gnu/packages/databases.scm:2156
+#: gnu/packages/databases.scm:2607
 msgid ""
 "Cassandra Cluster Manager is a development tool for testing\n"
 "local Cassandra clusters. It creates, launches and removes Cassandra clusters\n"
 "on localhost."
 msgstr ""
 
-#: gnu/packages/databases.scm:2182
+#: gnu/packages/databases.scm:2633
 msgid "SQLite bindings for Python"
 msgstr "Enlazando SQLite para Python"
 
-#: gnu/packages/databases.scm:2184
+#: gnu/packages/databases.scm:2635
 msgid ""
 "Pysqlite provides SQLite bindings for Python that comply to the\n"
 "Database API 2.0T."
 msgstr ""
 
-#: gnu/packages/databases.scm:2209
+#: gnu/packages/databases.scm:2660
 msgid "Database abstraction library"
 msgstr "Biblioteca abstracta de BD"
 
-#: gnu/packages/databases.scm:2211
+#: gnu/packages/databases.scm:2662
 msgid ""
 "SQLAlchemy is the Python SQL toolkit and Object Relational Mapper that\n"
 "gives application developers the full power and flexibility of SQL.  It\n"
@@ -2912,11 +3591,11 @@ msgid ""
 "simple and Pythonic domain language."
 msgstr ""
 
-#: gnu/packages/databases.scm:2250
+#: gnu/packages/databases.scm:2701
 msgid "Various utility functions for SQLAlchemy"
 msgstr ""
 
-#: gnu/packages/databases.scm:2252
+#: gnu/packages/databases.scm:2703
 msgid ""
 "SQLAlchemy-utils provides various utility functions and custom data types\n"
 "for SQLAlchemy.  SQLAlchemy is an SQL database abstraction library for Python.\n"
@@ -2933,11 +3612,25 @@ msgid ""
 "@end enumerate\n"
 msgstr ""
 
-#: gnu/packages/databases.scm:2293
+#: gnu/packages/databases.scm:2753
+msgid "Mock helpers for SQLAlchemy"
+msgstr ""
+
+#: gnu/packages/databases.scm:2755
+msgid ""
+"This package provides mock helpers for SQLAlchemy that makes it easy\n"
+"to mock an SQLAlchemy session while preserving the ability to do asserts.\n"
+"\n"
+"Normally Normally SQLAlchemy's expressions cannot be easily compared as\n"
+"comparison on binary expression produces yet another binary expression, but\n"
+"this library provides functions to facilitate such comparisons."
+msgstr ""
+
+#: gnu/packages/databases.scm:2788
 msgid "Database migration tool for SQLAlchemy"
 msgstr "Herramienta de migración de BD para SQLAlchemy"
 
-#: gnu/packages/databases.scm:2295
+#: gnu/packages/databases.scm:2790
 msgid ""
 "Alembic is a lightweight database migration tool for usage with the\n"
 "SQLAlchemy Database Toolkit for Python."
@@ -2945,11 +3638,11 @@ msgstr ""
 "Alembic es una herramienta de migración de base de datos ligera para\n"
 "utilizar con el Kit de Herramienta de BD SQLAlchemy para Python."
 
-#: gnu/packages/databases.scm:2321
+#: gnu/packages/databases.scm:2816
 msgid "Tiny key value database with concurrency support"
 msgstr ""
 
-#: gnu/packages/databases.scm:2323
+#: gnu/packages/databases.scm:2818
 msgid ""
 "PickleShare is a small ‘shelve’-like datastore with concurrency support.\n"
 "Like shelve, a PickleShareDB object acts like a normal dictionary.  Unlike\n"
@@ -2960,11 +3653,11 @@ msgid ""
 "PickleShare."
 msgstr ""
 
-#: gnu/packages/databases.scm:2375
+#: gnu/packages/databases.scm:2870
 msgid "Another Python SQLite Wrapper"
 msgstr "Otra cubierta SQLite para Python"
 
-#: gnu/packages/databases.scm:2376
+#: gnu/packages/databases.scm:2871
 msgid ""
 "APSW is a Python wrapper for the SQLite\n"
 "embedded relational database engine.  In contrast to other wrappers such as\n"
@@ -2972,22 +3665,33 @@ msgid ""
 "translate the complete SQLite API into Python."
 msgstr ""
 
-#: gnu/packages/databases.scm:2400
+#: gnu/packages/databases.scm:2896
+msgid "Asyncio bridge for sqlite3"
+msgstr ""
+
+#: gnu/packages/databases.scm:2898
+msgid ""
+"The package aiosqlite replicates the standard sqlite3 module, but with\n"
+"async versions of all the standard connection and cursor methods, and context\n"
+"managers for automatically closing connections."
+msgstr ""
+
+#: gnu/packages/databases.scm:2918
 msgid "Neo4j driver code written in Python"
 msgstr ""
 
-#: gnu/packages/databases.scm:2401
+#: gnu/packages/databases.scm:2919
 msgid ""
 "This package provides the Neo4j Python driver that connects\n"
 "to the database using Neo4j's binary protocol.  It aims to be minimal, while\n"
 "being idiomatic to Python."
 msgstr ""
 
-#: gnu/packages/databases.scm:2420
+#: gnu/packages/databases.scm:2938
 msgid "Library and toolkit for working with Neo4j in Python"
 msgstr ""
 
-#: gnu/packages/databases.scm:2421
+#: gnu/packages/databases.scm:2939
 msgid ""
 "This package provides a client library and toolkit for\n"
 "working with Neo4j from within Python applications and from the command\n"
@@ -2995,32 +3699,42 @@ msgid ""
 "designed to be easy and intuitive to use."
 msgstr ""
 
-#: gnu/packages/databases.scm:2445
+#: gnu/packages/databases.scm:2963
 msgid "Python PostgreSQL adapter"
 msgstr "Adaptador Python PosgreSQL"
 
-#: gnu/packages/databases.scm:2447
+#: gnu/packages/databases.scm:2965
 msgid ""
 "psycopg2 is a thread-safe PostgreSQL adapter that implements DB-API\n"
 "2.0."
 msgstr ""
 
-#: gnu/packages/databases.scm:2472
+#: gnu/packages/databases.scm:2990
 msgid "SQLAlchemy schema displayer"
 msgstr "Consultador de schema SQLAlchemy"
 
-#: gnu/packages/databases.scm:2473
+#: gnu/packages/databases.scm:2991
 msgid ""
 "This package provides a program to build Entity\n"
 "Relationship diagrams from a SQLAlchemy model (or directly from the\n"
 "database)."
 msgstr ""
 
-#: gnu/packages/databases.scm:2503
+#: gnu/packages/databases.scm:3023
+msgid "Database migrations with SQL"
+msgstr "Migración de bases de datos con SQL"
+
+#: gnu/packages/databases.scm:3025
+msgid ""
+"Yoyo is a database schema migration tool.  Migrations are written as SQL\n"
+"files or Python scripts that define a list of migration steps."
+msgstr ""
+
+#: gnu/packages/databases.scm:3046
 msgid "MySQLdb is an interface to the popular MySQL database server for Python"
 msgstr ""
 
-#: gnu/packages/databases.scm:2504
+#: gnu/packages/databases.scm:3047
 msgid ""
 "MySQLdb is an interface to the popular MySQL database server\n"
 "for Python.  The design goals are:\n"
@@ -3031,21 +3745,21 @@ msgid ""
 "@end enumerate"
 msgstr ""
 
-#: gnu/packages/databases.scm:2532
+#: gnu/packages/databases.scm:3072
 msgid "Python extension that wraps protocol parsing code in hiredis"
 msgstr ""
 
-#: gnu/packages/databases.scm:2533
+#: gnu/packages/databases.scm:3073
 msgid ""
 "Python-hiredis is a python extension that wraps protocol\n"
 "parsing code in hiredis.  It primarily speeds up parsing of multi bulk replies."
 msgstr ""
 
-#: gnu/packages/databases.scm:2556
+#: gnu/packages/databases.scm:3098
 msgid "Fake implementation of redis API for testing purposes"
 msgstr ""
 
-#: gnu/packages/databases.scm:2558
+#: gnu/packages/databases.scm:3100
 msgid ""
 "Fakeredis is a pure-Python implementation of the redis-py Python client\n"
 "that simulates talking to a redis server.  It was created for a single purpose:\n"
@@ -3056,61 +3770,81 @@ msgid ""
 "reasonable substitute."
 msgstr ""
 
-#: gnu/packages/databases.scm:2587
+#: gnu/packages/databases.scm:3129
 msgid "Redis Python client"
 msgstr "Cliente Python Redis"
 
-#: gnu/packages/databases.scm:2589
+#: gnu/packages/databases.scm:3131
 msgid "This package provides a Python interface to the Redis key-value store."
 msgstr ""
 
-#: gnu/packages/databases.scm:2610
+#: gnu/packages/databases.scm:3173
 msgid "Simple job queues for Python"
 msgstr ""
 
-#: gnu/packages/databases.scm:2612
+#: gnu/packages/databases.scm:3175
 msgid ""
 "RQ (Redis Queue) is a simple Python library for queueing jobs and\n"
 "processing them in the background with workers.  It is backed by Redis and it\n"
 "is designed to have a low barrier to entry."
 msgstr ""
 
-#: gnu/packages/databases.scm:2635
+#: gnu/packages/databases.scm:3215
+msgid "Job scheduling capabilities for RQ (Redis Queue)"
+msgstr ""
+
+#: gnu/packages/databases.scm:3217
+msgid ""
+"This package provides job scheduling capabilities to @code{python-rq}\n"
+"(Redis Queue)."
+msgstr ""
+
+#: gnu/packages/databases.scm:3236
 msgid "Port of asyncio-redis to trollius"
 msgstr ""
 
-#: gnu/packages/databases.scm:2636
+#: gnu/packages/databases.scm:3237
 msgid ""
 "@code{trollius-redis} is a Redis client for Python\n"
-"  trollius.  It is an asynchronious IO (PEP 3156) implementation of the\n"
+"  trollius.  It is an asynchronous IO (PEP 3156) implementation of the\n"
 "  Redis protocol."
 msgstr ""
 
-#: gnu/packages/databases.scm:2663
+#: gnu/packages/databases.scm:3264
 msgid "Non-validating SQL parser"
 msgstr ""
 
-#: gnu/packages/databases.scm:2664
+#: gnu/packages/databases.scm:3265
 msgid ""
 "Sqlparse is a non-validating SQL parser for Python.  It\n"
 "provides support for parsing, splitting and formatting SQL statements."
 msgstr ""
 
-#: gnu/packages/databases.scm:2683
+#: gnu/packages/databases.scm:3284
 msgid "Library to write SQL queries in a pythonic way"
 msgstr "Biblioteca para escribir peticiones SQL dentro de una forma pythonisa"
 
-#: gnu/packages/databases.scm:2684
+#: gnu/packages/databases.scm:3285
 msgid ""
 "@code{python-sql} is a library to write SQL queries, that\n"
 "transforms idiomatic python function calls to well-formed SQL queries."
 msgstr ""
 
-#: gnu/packages/databases.scm:2781
+#: gnu/packages/databases.scm:3309
+msgid "SQL query builder API for Python"
+msgstr "Biblioteca Python para construcción de consultas SQL"
+
+#: gnu/packages/databases.scm:3311
+msgid ""
+"PyPika is a python SQL query builder that exposes the full richness of\n"
+"the SQL language using a syntax that reflects the resulting query."
+msgstr ""
+
+#: gnu/packages/databases.scm:3405
 msgid "Various tools for interacting with MongoDB and BSON"
 msgstr ""
 
-#: gnu/packages/databases.scm:2783
+#: gnu/packages/databases.scm:3407
 msgid ""
 "This package includes a collection of tools related to MongoDB.\n"
 "@table @code\n"
@@ -3135,37 +3869,85 @@ msgid ""
 "@end table"
 msgstr ""
 
-#: gnu/packages/databases.scm:2867
+#: gnu/packages/databases.scm:3544
 msgid "Columnar in-memory analytics"
 msgstr ""
 
-#: gnu/packages/databases.scm:2868
+#: gnu/packages/databases.scm:3545
 msgid ""
 "Apache Arrow is a columnar in-memory analytics layer\n"
-"designed to accelerate big data. It houses a set of canonical in-memory\n"
+"designed to accelerate big data.  It houses a set of canonical in-memory\n"
 "representations of flat and hierarchical data along with multiple\n"
-"language-bindings for structure manipulation. It also provides IPC and common\n"
+"language-bindings for structure manipulation.  It also provides IPC and common\n"
 "algorithm implementations."
 msgstr ""
 
-#: gnu/packages/databases.scm:2913
-#, fuzzy
-#| msgid "Python bindings for cairo"
+#: gnu/packages/databases.scm:3582
 msgid "Python bindings for Apache Arrow"
-msgstr "Enlace Python para cairo"
+msgstr "Interfaz Python para Apache Arrow"
 
-#: gnu/packages/databases.scm:2914
+#: gnu/packages/databases.scm:3584
 msgid ""
-"This library provides a Pythonic API wrapper for the reference\n"
-"Arrow C++ implementation, along with tools for interoperability with pandas,\n"
-"NumPy, and other traditional Python scientific computing packages."
+"This library provides a Pythonic API wrapper for the reference Arrow C++\n"
+"implementation, along with tools for interoperability with pandas, NumPy, and\n"
+"other traditional Python scientific computing packages."
 msgstr ""
 
-#: gnu/packages/debug.scm:85
+#: gnu/packages/databases.scm:3606
+msgid "CrateDB Python client"
+msgstr "Cliente Python de CrateDB"
+
+#: gnu/packages/databases.scm:3608
+msgid ""
+"This package provides a Python client library for CrateDB.\n"
+"It implements the Python DB API 2.0 specification and includes support for\n"
+"SQLAlchemy."
+msgstr ""
+
+#: gnu/packages/databases.scm:3625
+msgid "Database independent abstraction layer in C"
+msgstr "Capa de abstracción independiente para bases de datos en C"
+
+#: gnu/packages/databases.scm:3627
+msgid ""
+"This library implements a database independent abstraction layer in C,\n"
+"similar to the DBI/DBD layer in Perl.  Writing one generic set of code,\n"
+"programmers can leverage the power of multiple databases and multiple\n"
+"simultaneous database connections by using this framework."
+msgstr ""
+
+#: gnu/packages/databases.scm:3692
+msgid "Database drivers for the libdbi framework"
+msgstr ""
+
+#: gnu/packages/databases.scm:3694
+msgid ""
+"The @code{libdbi-drivers} library provides the database specific drivers\n"
+"for the @code{libdbi} framework.\n"
+"\n"
+"The drivers officially supported by @code{libdbi} are:\n"
+"@itemize\n"
+"@item MySQL,\n"
+"@item PostgreSQL,\n"
+"@item SQLite.\n"
+"@end itemize"
+msgstr ""
+
+#: gnu/packages/databases.scm:3736
+msgid "C++ Database Access Library"
+msgstr "Biblioteca de acceso a bases de datos en C++"
+
+#: gnu/packages/databases.scm:3738
+msgid ""
+"SOCI is an abstraction layer for several database backends, including\n"
+"PostreSQL, SQLite, ODBC and MySQL."
+msgstr ""
+
+#: gnu/packages/debug.scm:104
 msgid "Heuristical file minimizer"
-msgstr "Fichero heurístico minimizador"
+msgstr "Minimizador de ficheros heurístico"
 
-#: gnu/packages/debug.scm:87
+#: gnu/packages/debug.scm:106
 msgid ""
 "Delta assists you in minimizing \"interesting\" files subject to a test\n"
 "of their interestingness.  A common such situation is when attempting to\n"
@@ -3173,11 +3955,11 @@ msgid ""
 "program to exhibit a bug."
 msgstr ""
 
-#: gnu/packages/debug.scm:147
+#: gnu/packages/debug.scm:165
 msgid "Reducer for interesting code"
-msgstr "Reducir para códigos interesante"
+msgstr ""
 
-#: gnu/packages/debug.scm:149
+#: gnu/packages/debug.scm:167
 msgid ""
 "C-Reduce is a tool that takes a large C or C++ program that has a\n"
 "property of interest (such as triggering a compiler bug) and automatically\n"
@@ -3186,11 +3968,11 @@ msgid ""
 "tools that process C/C++ code."
 msgstr ""
 
-#: gnu/packages/debug.scm:256
+#: gnu/packages/debug.scm:236
 msgid "Security-oriented fuzzer"
-msgstr "Zumbado orientado garantizado"
+msgstr ""
 
-#: gnu/packages/debug.scm:258
+#: gnu/packages/debug.scm:238
 msgid ""
 "American fuzzy lop is a security-oriented fuzzer that employs a novel\n"
 "type of compile-time instrumentation and genetic algorithms to automatically\n"
@@ -3201,13 +3983,34 @@ msgid ""
 "down the road."
 msgstr ""
 
-#: gnu/packages/debug.scm:314
+#: gnu/packages/debug.scm:378
+#, fuzzy
+msgid "Machine emulator and virtualizer (without GUI) for american fuzzy lop"
+msgstr "Máquina emuladora y virtualizadora"
+
+#: gnu/packages/debug.scm:380
+msgid ""
+"QEMU is a generic machine emulator and virtualizer.  This package\n"
+"of QEMU is used only by the american fuzzy lop package.\n"
+"\n"
+"When used as a machine emulator, QEMU can run OSes and programs made for one\n"
+"machine (e.g. an ARM board) on a different machine---e.g., your own PC.  By\n"
+"using dynamic translation, it achieves very good performance.\n"
+"\n"
+"When used as a virtualizer, QEMU achieves near native performances by\n"
+"executing the guest code directly on the host CPU.  QEMU supports\n"
+"virtualization when executing under the Xen hypervisor or using\n"
+"the KVM kernel module in Linux.  When using KVM, QEMU can virtualize x86,\n"
+"server and embedded PowerPC, and S390 guests."
+msgstr ""
+
+#: gnu/packages/debug.scm:448
 msgid "Expose race conditions in Makefiles"
 msgstr ""
 
-#: gnu/packages/debug.scm:316
+#: gnu/packages/debug.scm:450
 msgid ""
-"Stress Make is a customized GNU Make that explicitely manages the order\n"
+"Stress Make is a customized GNU Make that explicitly manages the order\n"
 "in which concurrent jobs are run to provoke erroneous behavior into becoming\n"
 "manifest.  It can run jobs in the order in which they're launched, in backwards\n"
 "order, or in random order.  The thought is that if code builds correctly with\n"
@@ -3215,11 +4018,11 @@ msgid ""
 "conditions."
 msgstr ""
 
-#: gnu/packages/debug.scm:343
+#: gnu/packages/debug.scm:477
 msgid "Transparent application input fuzzer"
-msgstr "Aplicación transparente de entrada fuzzer"
+msgstr ""
 
-#: gnu/packages/debug.scm:344
+#: gnu/packages/debug.scm:478
 msgid ""
 "Zzuf is a transparent application input fuzzer.  It works by\n"
 "intercepting file operations and changing random bits in the program's\n"
@@ -3231,11 +4034,11 @@ msgstr ""
 "de Zzuf es determinalístico, creando fácil su reproducción de\n"
 "defectos."
 
-#: gnu/packages/debug.scm:397
+#: gnu/packages/debug.scm:531
 msgid "Memory scanner"
 msgstr ""
 
-#: gnu/packages/debug.scm:398
+#: gnu/packages/debug.scm:532
 msgid ""
 "Scanmem is a debugging utility designed to isolate the\n"
 "address of an arbitrary variable in an executing process.  Scanmem simply\n"
@@ -3244,6 +4047,64 @@ msgid ""
 "the position of the variable and allows you to modify its value."
 msgstr ""
 
+#: gnu/packages/debug.scm:562
+msgid ""
+"Remake is an enhanced version of GNU Make that adds improved\n"
+"error reporting, better tracing, profiling, and a debugger."
+msgstr ""
+
+#: gnu/packages/debug.scm:620
+msgid "Record and reply debugging framework"
+msgstr ""
+
+#: gnu/packages/debug.scm:622
+msgid ""
+"rr is a lightweight tool for recording, replaying and debugging\n"
+"execution of applications (trees of processes and threads).  Debugging extends\n"
+"GDB with very efficient reverse-execution, which in combination with standard\n"
+"GDB/x86 features like hardware data watchpoints, makes debugging much more\n"
+"fun."
+msgstr ""
+
+#: gnu/packages/debug.scm:649
+msgid "C library for producing symbolic backtraces"
+msgstr ""
+
+#: gnu/packages/debug.scm:650
+msgid ""
+"The @code{libbacktrace} library can be linked into a C/C++\n"
+"program to produce symbolic backtraces."
+msgstr ""
+
+#: gnu/packages/debug.scm:690
+msgid "Memory leaks detection tool"
+msgstr "Herramienta para detección de pérdidas de memoria"
+
+#: gnu/packages/debug.scm:691
+msgid ""
+"The libleak tool detects memory leaks by hooking memory\n"
+"functions such as @code{malloc}.  It comes as a shared object to be pre-loaded\n"
+"via @code{LD_PRELOAD} when launching the application.  It prints the full call\n"
+"stack at suspicious memory leak points.  Modifying or recompiling the target\n"
+"program is not required, and the detection can be enabled or disabled while\n"
+"the target application is running.  The overhead incurred by libleak is\n"
+"smaller than that of other tools such as Valgrind, and it aims to be easier to\n"
+"use than similar tools like @command{mtrace}."
+msgstr ""
+
+#: gnu/packages/debug.scm:726
+msgid "Debugging tool for MSP430 MCUs"
+msgstr ""
+
+#: gnu/packages/debug.scm:727
+msgid ""
+"MspDebug supports FET430UIF, eZ430, RF2500 and Olimex\n"
+"MSP430-JTAG-TINY programmers, as well as many other compatible\n"
+"devices.  It can be used as a proxy for gdb or as an independent\n"
+"debugger with support for programming, disassembly and reverse\n"
+"engineering."
+msgstr ""
+
 #: gnu/packages/dejagnu.scm:78
 msgid "GNU software testing framework"
 msgstr "Marco de pruebas de software GNU"
@@ -3255,11 +4116,22 @@ msgid ""
 "multiple test suites, which are then all managed by a single harness."
 msgstr ""
 
-#: gnu/packages/games.scm:230
+#: gnu/packages/games.scm:263
+msgid "Scrolling, platform-jumping, ancient pyramid exploring game"
+msgstr ""
+
+#: gnu/packages/games.scm:265
+msgid ""
+"Abe's Amazing Adventure is a scrolling,\n"
+"platform-jumping, key-collecting, ancient pyramid exploring game, vaguely in\n"
+"the style of similar games for the Commodore+4."
+msgstr ""
+
+#: gnu/packages/games.scm:333
 msgid "Action game in four spatial dimensions"
 msgstr "Juego de acción en cuatro dimensiones espaciales"
 
-#: gnu/packages/games.scm:232
+#: gnu/packages/games.scm:335
 msgid ""
 "Adanaxis is a fast-moving first person shooter set in deep space, where\n"
 "the fundamentals of space itself are changed.  By adding another dimension to\n"
@@ -3271,11 +4143,11 @@ msgid ""
 msgstr ""
 
 # FUZZY
-#: gnu/packages/games.scm:282
+#: gnu/packages/games.scm:377
 msgid "Retro platform game"
 msgstr "Juego de plataformas «retro»"
 
-#: gnu/packages/games.scm:284
+#: gnu/packages/games.scm:379
 msgid ""
 "Guide Alex the Allegator through the jungle in order to save his\n"
 "girlfriend Lola from evil humans who want to make a pair of shoes out of her.\n"
@@ -3284,11 +4156,11 @@ msgid ""
 "The game includes a built-in editor so you can design and share your own maps."
 msgstr ""
 
-#: gnu/packages/games.scm:311
+#: gnu/packages/games.scm:408
 msgid "Tron clone in 3D"
 msgstr "Clon de Tron en 3D"
 
-#: gnu/packages/games.scm:312
+#: gnu/packages/games.scm:409
 msgid ""
 "Armagetron Advanced is a multiplayer game in 3d that\n"
 "attempts to emulate and expand on the lightcycle sequence from the movie Tron.\n"
@@ -3298,11 +4170,27 @@ msgid ""
 "physics settings to tweak as well."
 msgstr ""
 
-#: gnu/packages/games.scm:377
+#: gnu/packages/games.scm:465
+msgid "3D space shooter with spaceship upgrade possibilities"
+msgstr ""
+
+#: gnu/packages/games.scm:467
+msgid ""
+"Space is a vast area, an unbounded territory where it seems there is\n"
+"a room for everybody, but reversal of fortune put things differently.  The\n"
+"hordes of hostile creatures crawled out from the dark corners of the universe,\n"
+"craving to conquer your homeland.  Their force is compelling, their legions\n"
+"are interminable.  However, humans didn't give up without a final showdown and\n"
+"put their best pilot to fight back.  These malicious invaders chose the wrong\n"
+"galaxy to conquer and you are to prove it!  Go ahead and make alien aggressors\n"
+"regret their insolence."
+msgstr ""
+
+#: gnu/packages/games.scm:533
 msgid "Antagonistic Tetris-style falling brick game for text terminals"
 msgstr ""
 
-#: gnu/packages/games.scm:379
+#: gnu/packages/games.scm:535
 msgid ""
 "Bastet (short for Bastard Tetris) is a simple ncurses-based falling brick\n"
 "game.  Unlike normal Tetris, Bastet does not choose the next brick at random.\n"
@@ -3312,11 +4200,84 @@ msgid ""
 "canyons and wait for the long I-shaped block to clear four rows at a time."
 msgstr ""
 
-#: gnu/packages/games.scm:440
+#: gnu/packages/games.scm:581
+msgid "Platform action game featuring a blob with a lot of weapons"
+msgstr ""
+
+#: gnu/packages/games.scm:582
+msgid ""
+"Blobwars: Metal Blob Solid is a 2D platform game, the first\n"
+"in the Blobwars series.  You take on the role of a fearless Blob agent.  Your\n"
+"mission is to infiltrate various enemy bases and rescue as many MIAs as\n"
+"possible, while battling many vicious aliens."
+msgstr ""
+
+#: gnu/packages/games.scm:675
+msgid "Collection of the old text-based games and amusements"
+msgstr ""
+
+#: gnu/packages/games.scm:677
+msgid ""
+"These are the BSD games.  See the fortune-mod package for fortunes.\n"
+"\n"
+"Action: atc (keep the airplanes safe), hack (explore the dangerous Dungeon),\n"
+"hunt (kill the others for the Pair of Boots, multi-player only), robots (avoid\n"
+"the evil robots), sail (game of naval warfare with wooden ships), snake (steal\n"
+"the $$ from the cave, anger the snake, and get out alive), tetris (game of\n"
+"lining up the falling bricks of different shapes), and worm (eat, grow big,\n"
+"and neither bite your tail, nor ram the wall).\n"
+"\n"
+"Amusements: banner (prints a large banner), bcd & morse & ppt (print a punch\n"
+"card, or paper tape, or Morse codes), caesar & rot13 (ciphers and deciphers\n"
+"the input), factor (factorizes a number), number (translates numbers into\n"
+"text), pig (translates from English to Pig Latin), pom (should print the\n"
+"Moon's phase), primes (generates primes), rain & worms (plays an screen-saver\n"
+"in terminal), random (prints randomly choosen lines from files, or returns a\n"
+"random exit-code), and wtf (explains what do some acronyms mean).\n"
+"\n"
+"Board: backgammon (lead the men out of board faster than the friend do),\n"
+"boggle (find the words in the square of letters), dab (game of dots and\n"
+"boxes), gomoku (game of five in a row), hangman (guess a word before man is\n"
+"hanged), and monop (game of monopoly, hot-seat only).  Also the card-games:\n"
+"canfield, cribbage, fish (juniors game), and mille.\n"
+"\n"
+"Quests: adventure (search for treasures with the help of wizard),\n"
+"battlestar (explore the world around, starting from dying spaceship),\n"
+"phantasia (role-play as an rogue), trek (hunt the Klingons, and save the\n"
+"Federation), and wump (hunt the big smelly Wumpus in a dark cave).\n"
+"\n"
+"Quizes: arithmetic, and quiz."
+msgstr ""
+
+#: gnu/packages/games.scm:770
+msgid "3D first person tank battle game"
+msgstr ""
+
+#: gnu/packages/games.scm:772
+msgid ""
+"BZFlag is a 3D multi-player multiplatform tank battle game that\n"
+"allows users to play against each other in a network environment.\n"
+"There are five teams: red, green, blue, purple and rogue (rogue tanks\n"
+"are black).  Destroying a player on another team scores a win, while\n"
+"being destroyed or destroying a teammate scores a loss.  Rogues have\n"
+"no teammates (not even other rogues), so they cannot shoot teammates\n"
+"and they do not have a team score.\n"
+"\n"
+"There are two main styles of play: capture-the-flag and free-for-all.\n"
+"In capture-the-flag, each team (except rogues) has a team base and\n"
+"each team with at least one player has a team flag.  The object is to\n"
+"capture an enemy team's flag by bringing it to your team's base.  This\n"
+"destroys every player on the captured team, subtracts one from that\n"
+"team's score, and adds one to your team's score.  In free-for-all,\n"
+"there are no team flags or team bases.  The object is simply to get as\n"
+"high a score as possible."
+msgstr ""
+
+#: gnu/packages/games.scm:844
 msgid "Survival horror roguelike video game"
 msgstr "Videojuego de horror y supervivencia tipo mazmorra"
 
-#: gnu/packages/games.scm:442
+#: gnu/packages/games.scm:846
 msgid ""
 "Cataclysm: Dark Days Ahead (or \"DDA\" for short) is a roguelike set\n"
 "in a post-apocalyptic world.  Struggle to survive in a harsh, persistent,\n"
@@ -3328,11 +4289,23 @@ msgid ""
 "want what you have."
 msgstr ""
 
-#: gnu/packages/games.scm:487
+#: gnu/packages/games.scm:902
+msgid "Implementation of the @i{Theme Hospital} game engine"
+msgstr "Implementación del motor de juegos @i{Theme Hospital}"
+
+#: gnu/packages/games.scm:904
+msgid ""
+"This package provides a reimplementation of the 1997 Bullfrog business\n"
+"simulation game @i{Theme Hospital}.  As well as faithfully recreating the\n"
+"original engine, CorsixTH adds support for high resolutions, custom levels and\n"
+"more.  This package does @emph{not} provide the game assets."
+msgstr ""
+
+#: gnu/packages/games.scm:945
 msgid "Speaking cow text filter"
 msgstr "Filtro de texto para una vaca hablante"
 
-#: gnu/packages/games.scm:488
+#: gnu/packages/games.scm:946
 msgid ""
 "Cowsay is basically a text filter.  Send some text into it,\n"
 "and you get a cow saying your text.  If you think a talking cow isn't enough,\n"
@@ -3340,11 +4313,48 @@ msgid ""
 "tired of cows, a variety of other ASCII-art messengers are available."
 msgstr ""
 
-#: gnu/packages/games.scm:557
+#: gnu/packages/games.scm:986
+msgid "Rainbow coloring effect for text console display"
+msgstr ""
+
+#: gnu/packages/games.scm:987
+msgid ""
+"@command{lolcat} concatenates files and streams like\n"
+"regular @command{cat}, but it also adds terminal escape codes between\n"
+"characters and lines resulting in a rainbow effect."
+msgstr ""
+
+#: gnu/packages/games.scm:1101
+msgid "3D billiard game"
+msgstr "Juego de billar 3d"
+
+#: gnu/packages/games.scm:1102
+msgid ""
+"FooBillard++ is an advanced 3D OpenGL billiard game\n"
+"based on the original foobillard 3.0a sources from Florian Berger.\n"
+"You can play it with one or two players or against the computer.\n"
+"\n"
+"The game features:\n"
+"\n"
+"@itemize\n"
+"@item Wood paneled table with gold covers and gold diamonds.\n"
+"@item Reflections on balls.\n"
+"@item Zoom in and out, rotation, different angles and bird's eye view.\n"
+"@item Different game modes: 8 or 9-ball, Snooker or Carambole.\n"
+"@item Tournaments.  Compete against other players.\n"
+"@item Animated cue with strength and eccentric hit adjustment.\n"
+"@item Jump shots and snipping.\n"
+"@item Realistic gameplay and billiard sounds.\n"
+"@item Red-Green stereo.\n"
+"@item And much more.\n"
+"@end itemize"
+msgstr ""
+
+#: gnu/packages/games.scm:1163
 msgid "Free content game based on the Doom engine"
 msgstr "Juego de contenido libre basado en el motor de Doom"
 
-#: gnu/packages/games.scm:566
+#: gnu/packages/games.scm:1172
 msgid ""
 "The Freedoom project aims to create a complete free content first person\n"
 "shooter game.  Freedoom by itself is just the raw material for a game: it must\n"
@@ -3353,11 +4363,11 @@ msgid ""
 "effects and music to make a completely free game."
 msgstr ""
 
-#: gnu/packages/games.scm:614
+#: gnu/packages/games.scm:1220
 msgid "Isometric role-playing game against killer robots"
 msgstr "Juego de rol isométrico contra robots asesinos"
 
-#: gnu/packages/games.scm:616
+#: gnu/packages/games.scm:1222
 msgid ""
 "Freedroid RPG is an @dfn{RPG} (Role-Playing Game) with isometric graphics.\n"
 "The game tells the story of a world destroyed by a conflict between robots and\n"
@@ -3367,11 +4377,11 @@ msgid ""
 "real-time combat."
 msgstr ""
 
-#: gnu/packages/games.scm:693
+#: gnu/packages/games.scm:1299
 msgid "Software for exploring cellular automata"
 msgstr "Software para la exploración de autómatas celulares"
 
-#: gnu/packages/games.scm:695
+#: gnu/packages/games.scm:1301
 msgid ""
 "Golly simulates Conway's Game of Life and many other types of cellular\n"
 "automata.  The following features are available:\n"
@@ -3392,11 +4402,42 @@ msgid ""
 "@end enumerate"
 msgstr ""
 
-#: gnu/packages/games.scm:740
+#: gnu/packages/games.scm:1346
+msgid "Re-implementation of Caesar III game engine"
+msgstr "Reimplementación del motor del juego Caesar III"
+
+#: gnu/packages/games.scm:1348
+msgid ""
+"Engine for Caesar III, a city-building real-time strategy game.\n"
+"Julius includes some UI enhancements while preserving the logic (including\n"
+"bugs) of the original game, so that saved games are compatible.  This package\n"
+"does not include game data."
+msgstr ""
+
+#: gnu/packages/games.scm:1380
+msgid "Re-implementation of Caesar III game engine with gameplay changes"
+msgstr "Reimplementación del motor del juego Caesar III con cambios en el juego"
+
+#: gnu/packages/games.scm:1382
+msgid ""
+"Fork of Julius, an engine for the a city-building real-time strategy\n"
+"game Caesar III.  Gameplay enhancements include:\n"
+"\n"
+"@itemize\n"
+"@item roadblocks;\n"
+"@item market special orders;\n"
+"@item global labour pool;\n"
+"@item partial warehouse storage;\n"
+"@item increased game limits;\n"
+"@item zoom controls.\n"
+"@end itemize\n"
+msgstr ""
+
+#: gnu/packages/games.scm:1420
 msgid "Puzzle/platform game"
-msgstr "Puzzle/juego de plataformas"
+msgstr "Juego de plataformas/puzzles"
 
-#: gnu/packages/games.scm:741
+#: gnu/packages/games.scm:1421
 msgid ""
 "Me and My Shadow is a puzzle/platform game in which you try\n"
 "to reach the exit by solving puzzles.  Spikes, moving blocks, fragile blocks\n"
@@ -3404,12 +4445,25 @@ msgid ""
 "shadow mimic them to reach blocks you couldn't reach alone."
 msgstr ""
 
+#: gnu/packages/games.scm:1479
+#, fuzzy
+msgid "2D retro side-scrolling game"
+msgstr "Juego disparador multiplataforma 2D"
+
+#: gnu/packages/games.scm:1480
+msgid ""
+"@code{Open Surge} is a 2D retro side-scrolling platformer\n"
+"inspired by the Sonic games.  The player runs at high speeds through each\n"
+"level while collecting items and avoiding obstacles.  The game includes a\n"
+"built-in level editor."
+msgstr ""
+
 # FUZZY
-#: gnu/packages/games.scm:776
+#: gnu/packages/games.scm:1525
 msgid "Multiplayer dungeon game involving knights and quests"
 msgstr "Juego de mazmorras multijugador que incluye caballeros y desafíos"
 
-#: gnu/packages/games.scm:777
+#: gnu/packages/games.scm:1526
 msgid ""
 "Knights is a multiplayer game involving several knights who\n"
 "must run around a dungeon and complete various quests.  Each game revolves\n"
@@ -3421,11 +4475,23 @@ msgid ""
 "destroying an ancient book using a special wand."
 msgstr ""
 
-#: gnu/packages/games.scm:814
+#: gnu/packages/games.scm:1572
+msgid "Chess board for GNOME"
+msgstr "Tablero de ajedrez para GNOME"
+
+#: gnu/packages/games.scm:1573
+msgid ""
+"GNOME Chess provides a 2D board for playing chess games\n"
+"against human or computer players.  It supports loading and saving games in\n"
+"Portable Game Notation.  To play against a computer, install a chess engine\n"
+"such as chess or stockfish."
+msgstr ""
+
+#: gnu/packages/games.scm:1627
 msgid "Backgammon game"
 msgstr "Juego backgammon"
 
-#: gnu/packages/games.scm:815
+#: gnu/packages/games.scm:1628
 msgid ""
 "The GNU backgammon application (also known as \"gnubg\") can\n"
 "be used for playing, analyzing and teaching the game.  It has an advanced\n"
@@ -3434,11 +4500,11 @@ msgid ""
 "also features an attractive, 3D representation of the playing board."
 msgstr ""
 
-#: gnu/packages/games.scm:847
+#: gnu/packages/games.scm:1667
 msgid "3d Rubik's cube game"
-msgstr "Juego del cubo de Rubik 3D"
+msgstr "Juego del cubo de Rubik 3d"
 
-#: gnu/packages/games.scm:849
+#: gnu/packages/games.scm:1669
 msgid ""
 "GNUbik is a puzzle game in which you must manipulate a cube to make\n"
 "each of its faces have a uniform color.  The game is customizable, allowing\n"
@@ -3447,11 +4513,11 @@ msgid ""
 "scriptable with Guile."
 msgstr ""
 
-#: gnu/packages/games.scm:871
+#: gnu/packages/games.scm:1691
 msgid "The game of Shogi (Japanese chess)"
 msgstr "El juego de Shogi (Ajedrez japonés)"
 
-#: gnu/packages/games.scm:872
+#: gnu/packages/games.scm:1692
 msgid ""
 "GNU Shogi is a program that plays the game Shogi (Japanese\n"
 "Chess).  It is similar to standard chess but this variant is far more complicated."
@@ -3460,11 +4526,11 @@ msgstr ""
 "parecido al ajedrez estándar pero esta variante es mucho más\n"
 "complicada."
 
-#: gnu/packages/games.scm:903
+#: gnu/packages/games.scm:1723
 msgid "Tetris clone based on the SDL library"
 msgstr "Clon de Tetris basado en la biblioteca SDL"
 
-#: gnu/packages/games.scm:905
+#: gnu/packages/games.scm:1725
 msgid ""
 "LTris is a tetris clone: differently shaped blocks are falling down the\n"
 "rectangular playing field and can be moved sideways or rotated by 90 degree\n"
@@ -3478,12 +4544,11 @@ msgid ""
 "watch your CPU playing while enjoying a cup of tea!"
 msgstr ""
 
-#: gnu/packages/games.scm:1028
-#, fuzzy
+#: gnu/packages/games.scm:1849
 msgid "Classic dungeon crawl game"
-msgstr "Explorador de mazmorra similar a Dungeon Rogue"
+msgstr "Juego de exploración de mazmorras clásico"
 
-#: gnu/packages/games.scm:1029
+#: gnu/packages/games.scm:1850
 msgid ""
 "NetHack is a single player dungeon exploration game that runs\n"
 "on a wide variety of computer systems, with a variety of graphical and text\n"
@@ -3497,13 +4562,12 @@ msgid ""
 "role, and your gender."
 msgstr ""
 
-#: gnu/packages/games.scm:1073
+#: gnu/packages/games.scm:1894
 #, fuzzy
-#| msgid "Logic puzzle game"
 msgid "Logical tile puzzle"
 msgstr "Juego lógico de puzzle"
 
-#: gnu/packages/games.scm:1075
+#: gnu/packages/games.scm:1896
 msgid ""
 "PipeWalker is a simple puzzle game with many diffent themes: connect all\n"
 "computers to one network server, bring water from a source to the taps, etc.\n"
@@ -3512,29 +4576,29 @@ msgid ""
 "Every puzzle has a complete solution, although there may be more than one."
 msgstr ""
 
-#: gnu/packages/games.scm:1122
+#: gnu/packages/games.scm:1944
 msgid "Version of the classic 3D shoot'em'up game Doom"
 msgstr "Versión del clásico juego 3D de disparos Doom"
 
-#: gnu/packages/games.scm:1124
+#: gnu/packages/games.scm:1946
 msgid "PrBoom+ is a Doom source port developed from the original PrBoom project."
 msgstr ""
 
-#: gnu/packages/games.scm:1172
+#: gnu/packages/games.scm:1994
 msgid "Action platformer game"
-msgstr "Juego de plataforma de acción"
+msgstr "Juego de acción de plataformas"
 
-#: gnu/packages/games.scm:1174
+#: gnu/packages/games.scm:1996
 msgid ""
 "ReTux is an action platformer loosely inspired by the Mario games,\n"
 "utilizing the art assets from the @code{SuperTux} project."
 msgstr ""
 
-#: gnu/packages/games.scm:1280
+#: gnu/packages/games.scm:2105
 msgid "A classical roguelike/sandbox game"
 msgstr ""
 
-#: gnu/packages/games.scm:1282
+#: gnu/packages/games.scm:2107
 msgid ""
 "RogueBox Adventures is a graphical roguelike with strong influences\n"
 "from sandbox games like Minecraft or Terraria.  The main idea of RogueBox\n"
@@ -3542,19 +4606,84 @@ msgid ""
 "can be explored and changed freely."
 msgstr ""
 
-#: gnu/packages/games.scm:1309
+#: gnu/packages/games.scm:2218
+msgid "Help Barbie the seahorse float on bubbles to the moon"
+msgstr ""
+
+#: gnu/packages/games.scm:2220
+msgid ""
+"Barbie Seahorse Adventures is a retro style platform arcade game.\n"
+"You are Barbie the seahorse who travels through the jungle, up to the\n"
+"volcano until you float on bubbles to the moon.  On the way to your\n"
+"final destination you will encounter various enemies, servants of the\n"
+"evil overlord who has stolen the galaxy crystal.  Avoid getting hit\n"
+"and defeat them with your bubbles!"
+msgstr ""
+
+#: gnu/packages/games.scm:2299
+msgid "Fast-paced local multiplayer arcade game"
+msgstr ""
+
+#: gnu/packages/games.scm:2300
+msgid ""
+"In SuperStarfighter, up to four local players compete in a\n"
+"2D arena with fast-moving ships and missiles.  Different game types are\n"
+"available, as well as a single-player mode with AI-controlled ships."
+msgstr ""
+
+#: gnu/packages/games.scm:2400
+msgid "UFO: AI map generator"
+msgstr "Generador de mapas de UFO: AI"
+
+#: gnu/packages/games.scm:2402
+msgid ""
+"This package provides @command{ufo2map}, a program used to generate\n"
+"maps for the UFO: Alien Invasion strategy game."
+msgstr ""
+
+#: gnu/packages/games.scm:2442
+msgid "UFO: AI data files"
+msgstr "Ficheros de datos de UFO: AI"
+
+#: gnu/packages/games.scm:2444
+msgid "This package contains maps and other assets for UFO: Alien Invasion."
+msgstr ""
+
+#: gnu/packages/games.scm:2529
+msgid "Turn-based tactical strategy game"
+msgstr "Juego de estrategia basado en turnos"
+
+#: gnu/packages/games.scm:2531
+msgid ""
+"UFO: Alien Invasion is a tactical strategy game set in the year 2084.\n"
+"You control a secret organisation charged with defending Earth from a brutal\n"
+"alien enemy.  Build up your bases, prepare your team, and dive head-first into\n"
+"the fast and flowing turn-based combat.\n"
+"\n"
+"Over the long term you will need to conduct research into the alien threat to\n"
+"figure out their mysterious goals and use their powerful weapons for your own\n"
+"ends.  You will produce unique items and use them in combat against your\n"
+"enemies.\n"
+"\n"
+"You can also use them against your friends with the multiplayer functionality.\n"
+"\n"
+"Warning: This is a pre-release version of UFO: AI!  Some things may not work\n"
+"properly."
+msgstr ""
+
+#: gnu/packages/games.scm:2568
 msgid "User interface for gnushogi"
 msgstr "Interfaz de usuario para gnushogi"
 
-#: gnu/packages/games.scm:1310
+#: gnu/packages/games.scm:2569
 msgid "A graphical user interface for the package @code{gnushogi}."
 msgstr "Un interfaz gráfico para usuario para el paquete @code{gnushogi}."
 
-#: gnu/packages/games.scm:1361
+#: gnu/packages/games.scm:2621
 msgid "GNU/Linux port of the indie game \"l'Abbaye des Morts\""
 msgstr ""
 
-#: gnu/packages/games.scm:1362
+#: gnu/packages/games.scm:2622
 msgid ""
 "L'Abbaye des Morts is a 2D platform game set in 13th century\n"
 "France.  The Cathars, who preach about good Christian beliefs, were being\n"
@@ -3563,22 +4692,22 @@ msgid ""
 "that beneath its ruins lay buried an ancient evil."
 msgstr ""
 
-#: gnu/packages/games.scm:1418
+#: gnu/packages/games.scm:2674
 msgid "Dungeon exploration roguelike"
 msgstr "Explorador de mazmorra similar a Dungeon Rogue"
 
-#: gnu/packages/games.scm:1419
+#: gnu/packages/games.scm:2675
 msgid ""
 "Angband is a Classic dungeon exploration roguelike.  Explore\n"
 "the depths below Angband, seeking riches, fighting monsters, and preparing to\n"
 "fight Morgoth, the Lord of Darkness."
 msgstr ""
 
-#: gnu/packages/games.scm:1457
+#: gnu/packages/games.scm:2722
 msgid "Lemmings clone"
 msgstr "Clon de Lemmings"
 
-#: gnu/packages/games.scm:1459
+#: gnu/packages/games.scm:2724
 msgid ""
 "Pingus is a free Lemmings-like puzzle game in which the player takes\n"
 "command of a bunch of small animals and has to guide them through levels.\n"
@@ -3588,22 +4717,33 @@ msgid ""
 "level's exit.  The game is presented in a 2D side view."
 msgstr ""
 
-#: gnu/packages/games.scm:1481
+#: gnu/packages/games.scm:2746
 msgid "Convert English text to humorous dialects"
 msgstr "Convierte texto inglés a dialectos humorísticos"
 
-#: gnu/packages/games.scm:1482
+#: gnu/packages/games.scm:2747
 msgid ""
 "The GNU Talk Filters are programs that convert English text\n"
 "into stereotyped or otherwise humorous dialects.  The filters are provided as\n"
 "a C library, so they can easily be integrated into other programs."
 msgstr ""
 
-#: gnu/packages/games.scm:1513
+#: gnu/packages/games.scm:2791
+msgid "Shoot'em up fangame and libre clone of Touhou Project"
+msgstr ""
+
+#: gnu/packages/games.scm:2793
+msgid ""
+"The player controls a character (one of three: Good, Bad, and Dead),\n"
+"dodges the missiles (lots of it cover the screen, but the character's hitbox\n"
+"is very small), and shoot at the adversaries that keep appear on the screen."
+msgstr ""
+
+#: gnu/packages/games.scm:2836
 msgid "Simulate the display from \"The Matrix\""
 msgstr "Simula la pantalla de «The Matrix»"
 
-#: gnu/packages/games.scm:1514
+#: gnu/packages/games.scm:2837
 msgid ""
 "CMatrix simulates the display from \"The Matrix\" and is\n"
 "based on the screensaver from the movie's website.  It works with terminal\n"
@@ -3611,16 +4751,16 @@ msgid ""
 "asynchronously and at a user-defined speed."
 msgstr ""
 "CMatrix simula la pantalla de «The Matrix» y está basado en el\n"
-"salvapantallas de la página web de la pelicula. Funciona con\n"
+"salvapantallas de sitio web de la pelicula. Funciona con\n"
 "configuraciones de terminal hasta 132x300 y puede desplazar todas las\n"
 "líneas al mismo ritmo o de forma asíncrona y a una velocidad definida\n"
 "por la usuaria."
 
-#: gnu/packages/games.scm:1534
+#: gnu/packages/games.scm:2857
 msgid "Full chess implementation"
 msgstr "Implementación completa de ajedrez"
 
-#: gnu/packages/games.scm:1535
+#: gnu/packages/games.scm:2858
 msgid ""
 "GNU Chess is a chess engine.  It allows you to compete\n"
 "against the computer in a game of chess, either through the default terminal\n"
@@ -3631,11 +4771,11 @@ msgstr ""
 "predeterminada del terminal o mediante una interfaz visual externa\n"
 "como GNU XBoard."
 
-#: gnu/packages/games.scm:1575
+#: gnu/packages/games.scm:2918
 msgid "Twisted adventures of young pig farmer Dink Smallwood"
 msgstr ""
 
-#: gnu/packages/games.scm:1577
+#: gnu/packages/games.scm:2920
 msgid ""
 "GNU FreeDink is a free and portable re-implementation of the engine\n"
 "for the role-playing game Dink Smallwood.  It supports not only the original\n"
@@ -3643,29 +4783,29 @@ msgid ""
 "To that extent, it also includes a front-end for managing all of your D-Mods."
 msgstr ""
 
-#: gnu/packages/games.scm:1603
+#: gnu/packages/games.scm:2946
 msgid "Game data for GNU Freedink"
 msgstr "Datos de juego para GNU Freedink"
 
-#: gnu/packages/games.scm:1605
+#: gnu/packages/games.scm:2948
 msgid "This package contains the game data of GNU Freedink."
 msgstr ""
 
-#: gnu/packages/games.scm:1628
+#: gnu/packages/games.scm:2971
 msgid "Front-end for managing and playing Dink Modules"
 msgstr ""
 
-#: gnu/packages/games.scm:1629
+#: gnu/packages/games.scm:2972
 msgid ""
 "DFArc makes it easy to play and manage the GNU FreeDink game\n"
 "and its numerous D-Mods."
 msgstr ""
 
-#: gnu/packages/games.scm:1681
+#: gnu/packages/games.scm:3024
 msgid "Graphical user interface for chess programs"
 msgstr "Interfaz gráfica para programas de ajedrez"
 
-#: gnu/packages/games.scm:1682
+#: gnu/packages/games.scm:3025
 msgid ""
 "GNU XBoard is a graphical board for all varieties of chess,\n"
 "including international chess, xiangqi (Chinese chess), shogi (Japanese chess)\n"
@@ -3680,11 +4820,11 @@ msgstr ""
 "interactiva y puede cargar y almacenar juegos en la notación de juegos\n"
 "portable (PGN)."
 
-#: gnu/packages/games.scm:1716
+#: gnu/packages/games.scm:3059
 msgid "Typing tutor"
 msgstr "Tutor de mecanografía"
 
-#: gnu/packages/games.scm:1718
+#: gnu/packages/games.scm:3061
 msgid ""
 "GNU Typist is a universal typing tutor.  It can be used to learn and\n"
 "practice touch-typing.  Several tutorials are included; in addition to\n"
@@ -3693,11 +4833,11 @@ msgid ""
 "are primarily in English, however some in other languages are provided."
 msgstr ""
 
-#: gnu/packages/games.scm:1784
+#: gnu/packages/games.scm:3127
 msgid "3D game engine written in C++"
 msgstr "Motor de juegos 3D escrito en C++"
 
-#: gnu/packages/games.scm:1786
+#: gnu/packages/games.scm:3129
 msgid ""
 "The Irrlicht Engine is a high performance realtime 3D engine written in\n"
 "C++.  Features include an OpenGL renderer, extensible materials, scene graph\n"
@@ -3705,11 +4845,11 @@ msgid ""
 "for common mesh file formats, and collision detection."
 msgstr ""
 
-#: gnu/packages/games.scm:1838
+#: gnu/packages/games.scm:3181
 msgid "2D space shooter"
 msgstr "Caza espacial 2D"
 
-#: gnu/packages/games.scm:1840
+#: gnu/packages/games.scm:3183
 msgid ""
 "M.A.R.S. is a 2D space shooter with pretty visual effects and\n"
 "attractive physics.  Players can battle each other or computer controlled\n"
@@ -3717,21 +4857,11 @@ msgid ""
 "match, cannon keep, and grave-itation pit."
 msgstr ""
 
-#: gnu/packages/games.scm:1874
-msgid "Main game data for the Minetest game engine"
-msgstr ""
-
-#: gnu/packages/games.scm:1876
-#, fuzzy
-#| msgid "Infinite-world block sandbox game"
-msgid "Game data for the Minetest infinite-world block sandbox game."
-msgstr "Juego de arena de bloque de palabra infinitas"
-
-#: gnu/packages/games.scm:1936
+#: gnu/packages/games.scm:3247
 msgid "Infinite-world block sandbox game"
 msgstr "Juego de arena de bloque de palabra infinitas"
 
-#: gnu/packages/games.scm:1938
+#: gnu/packages/games.scm:3249
 msgid ""
 "Minetest is a sandbox construction game.  Players can create and destroy\n"
 "various types of blocks in a three-dimensional open world.  This allows\n"
@@ -3740,11 +4870,31 @@ msgid ""
 "in different ways."
 msgstr ""
 
-#: gnu/packages/games.scm:1977
+#: gnu/packages/games.scm:3285
+msgid "Main game data for the Minetest game engine"
+msgstr ""
+
+#: gnu/packages/games.scm:3287
+#, fuzzy
+msgid "Game data for the Minetest infinite-world block sandbox game."
+msgstr "Juego de arena de bloque de palabra infinitas"
+
+#: gnu/packages/games.scm:3308
+#, fuzzy
+msgid "Minecraft clone based on Minetest engine"
+msgstr "Juego de contenido libre basado en el motor de Doom"
+
+#: gnu/packages/games.scm:3310
+msgid ""
+"MineClone is a Minetest subgame, that aims to recreate Minecraft as\n"
+"closely as the engine allows."
+msgstr ""
+
+#: gnu/packages/games.scm:3346
 msgid "Curses Implementation of the Glk API"
 msgstr ""
 
-#: gnu/packages/games.scm:1979
+#: gnu/packages/games.scm:3348
 msgid ""
 "Glk defines a portable API for applications with text UIs.  It was\n"
 "primarily designed for interactive fiction, but it should be suitable for many\n"
@@ -3753,11 +4903,11 @@ msgid ""
 "using the @code{curses.h} library for screen control."
 msgstr ""
 
-#: gnu/packages/games.scm:2017
+#: gnu/packages/games.scm:3386
 msgid "Interpreter for Glulx VM"
-msgstr "Intérprete para Clulx VM"
+msgstr "Intérprete para Glulx VM"
 
-#: gnu/packages/games.scm:2019
+#: gnu/packages/games.scm:3388
 msgid ""
 "Glulx is a 32-bit portable virtual machine intended for writing and\n"
 "playing interactive fiction.  It was designed by Andrew Plotkin to relieve\n"
@@ -3765,22 +4915,46 @@ msgid ""
 "reference interpreter, using the Glk API."
 msgstr ""
 
-#: gnu/packages/games.scm:2053
+#: gnu/packages/games.scm:3414
+#, fuzzy
+msgid "Cross platform GUI library specifically for games"
+msgstr "Plataforma cruzada de biblioteca MIDI para C++"
+
+#: gnu/packages/games.scm:3416
+msgid ""
+"Fifechan is a lightweight cross platform GUI library written in C++\n"
+"specifically designed for games.  It has a built in set of extendable GUI\n"
+"Widgets, and allows users to create more."
+msgstr ""
+
+#: gnu/packages/games.scm:3510
+#, fuzzy
+msgid "FIFE is a multi-platform isometric game engine written in C++"
+msgstr "Motor de juegos 3D escrito en C++"
+
+#: gnu/packages/games.scm:3512
+msgid ""
+"@acronym{FIFE, Flexible Isometric Free Engine} is a multi-platform\n"
+"isometric game engine.  Python bindings are included allowing users to create\n"
+"games using Python as well as C++."
+msgstr ""
+
+#: gnu/packages/games.scm:3545
 msgid "Z-machine interpreter"
-msgstr "Interpretador Z-machine"
+msgstr "Intérprete de Z-machine"
 
-#: gnu/packages/games.scm:2055
+#: gnu/packages/games.scm:3547
 msgid ""
 "Fizmo is a console-based Z-machine interpreter.  It is used to play\n"
 "interactive fiction, also known as text adventures, which were implemented\n"
 "either by Infocom or created using the Inform compiler."
 msgstr ""
 
-#: gnu/packages/games.scm:2073
+#: gnu/packages/games.scm:3565
 msgid "Play the game of Go"
-msgstr "Jugar al juego de Go"
+msgstr "Juego de Go"
 
-#: gnu/packages/games.scm:2075
+#: gnu/packages/games.scm:3567
 msgid ""
 "GNU Go is a program that plays the game of Go, in which players\n"
 "place stones on a grid to form territory or capture other stones.  While\n"
@@ -3791,11 +4965,11 @@ msgid ""
 "Protocol)."
 msgstr ""
 
-#: gnu/packages/games.scm:2103
+#: gnu/packages/games.scm:3595
 msgid "High-speed arctic racing game based on Tux Racer"
 msgstr ""
 
-#: gnu/packages/games.scm:2105
+#: gnu/packages/games.scm:3597
 msgid ""
 "Extreme Tux Racer, or etracer as it is called for short, is\n"
 "a simple OpenGL racing game featuring Tux, the Linux mascot.  The goal of the\n"
@@ -3808,11 +4982,11 @@ msgid ""
 "This game is based on the GPL version of the famous game TuxRacer."
 msgstr ""
 
-#: gnu/packages/games.scm:2177
+#: gnu/packages/games.scm:3667
 msgid "3D kart racing game"
 msgstr "Juego de carreras de kart 3D"
 
-#: gnu/packages/games.scm:2178
+#: gnu/packages/games.scm:3668
 msgid ""
 "SuperTuxKart is a 3D kart racing game, with a focus on\n"
 "having fun over realism.  You can play with up to 4 friends on one PC, racing\n"
@@ -3820,11 +4994,24 @@ msgid ""
 "also available."
 msgstr ""
 
-#: gnu/packages/games.scm:2210
+#: gnu/packages/games.scm:3743
+msgid "Isometric realtime strategy, economy and city building simulation"
+msgstr ""
+
+#: gnu/packages/games.scm:3745
+msgid ""
+"Unknown Horizons is a 2D realtime strategy simulation with an emphasis\n"
+"on economy and city building.  Expand your small settlement to a strong and\n"
+"wealthy colony, collect taxes and supply your inhabitants with valuable\n"
+"goods.  Increase your power with a well balanced economy and with strategic\n"
+"trade and diplomacy."
+msgstr ""
+
+#: gnu/packages/games.scm:3800
 msgid "Game of jumping to the next floor, trying not to fall"
 msgstr ""
 
-#: gnu/packages/games.scm:2212
+#: gnu/packages/games.scm:3802
 msgid ""
 "GNUjump is a simple, yet addictive game in which you must jump from\n"
 "platform to platform to avoid falling, while the platforms drop at faster rates\n"
@@ -3832,11 +5019,11 @@ msgid ""
 "falling, themeable graphics and sounds, and replays."
 msgstr ""
 
-#: gnu/packages/games.scm:2246
+#: gnu/packages/games.scm:3836
 msgid "Turn-based strategy game"
-msgstr "Juego estratégico basado en turnos"
+msgstr "Juego de estrategia basado en turnos"
 
-#: gnu/packages/games.scm:2248
+#: gnu/packages/games.scm:3838
 msgid ""
 "The Battle for Wesnoth is a fantasy, turn based tactical strategy game,\n"
 "with several single player campaigns, and multiplayer games (both networked and\n"
@@ -3848,32 +5035,32 @@ msgid ""
 "next campaign."
 msgstr ""
 
-#: gnu/packages/games.scm:2273
+#: gnu/packages/games.scm:3860
 msgid "Dedicated @emph{Battle for Wesnoth} server"
-msgstr ""
+msgstr "Servidor dedicado de @emph{Battle for Wesnoth}"
 
-#: gnu/packages/games.scm:2274
+#: gnu/packages/games.scm:3861
 msgid ""
 "This package contains a dedicated server for @emph{The\n"
 "Battle for Wesnoth}."
 msgstr ""
 
-#: gnu/packages/games.scm:2318
+#: gnu/packages/games.scm:3902
 msgid "Mouse and keyboard discovery for children"
 msgstr "Descubrimiento de ratón y teclado para niños"
 
-#: gnu/packages/games.scm:2320
+#: gnu/packages/games.scm:3904
 msgid ""
 "Gamine is a game designed for young children who are learning to use the\n"
 "mouse and keyboard.  The child uses the mouse to draw colored dots and lines\n"
 "on the screen and keyboard to display letters."
 msgstr ""
 
-#: gnu/packages/games.scm:2353
+#: gnu/packages/games.scm:3937
 msgid "Client for 'The Mana World' and similar games"
-msgstr ""
+msgstr "Cliente para 'The Mana World' y juegos similares"
 
-#: gnu/packages/games.scm:2355
+#: gnu/packages/games.scm:3939
 msgid ""
 "ManaPlus is a 2D MMORPG client for game servers.  It is the only\n"
 "fully supported client for @uref{http://www.themanaworld.org, The mana\n"
@@ -3882,12 +5069,11 @@ msgid ""
 msgstr ""
 
 # FUZZY
-#: gnu/packages/games.scm:2422
-#, fuzzy
+#: gnu/packages/games.scm:3990
 msgid "Transportation economics simulator game"
 msgstr "Juego de simulación económica de transportes"
 
-#: gnu/packages/games.scm:2423
+#: gnu/packages/games.scm:3991
 msgid ""
 "OpenTTD is a game in which you transport goods and\n"
 "passengers by land, water and air.  It is a re-implementation of Transport\n"
@@ -3897,13 +5083,13 @@ msgid ""
 "engine.  When you start it you will be prompted to download a graphics set."
 msgstr ""
 
-#: gnu/packages/games.scm:2480
+#: gnu/packages/games.scm:4049
 msgid "Base graphics set for OpenTTD"
 msgstr "Conjunto de gráficos básicos para OpenTTD"
 
-#: gnu/packages/games.scm:2482
+#: gnu/packages/games.scm:4051
 msgid ""
-"The OpenGFX projects is an implementation of the OpenTTD base grahics\n"
+"The OpenGFX project is an implementation of the OpenTTD base graphics\n"
 "set that aims to ensure the best possible out-of-the-box experience.\n"
 "\n"
 "OpenGFX provides you with...\n"
@@ -3916,49 +5102,49 @@ msgid ""
 "@end enumerate"
 msgstr ""
 
-#: gnu/packages/games.scm:2527
+#: gnu/packages/games.scm:4096
 msgid "Base sounds for OpenTTD"
 msgstr "Sonidos básicos para OpenTTD"
 
-#: gnu/packages/games.scm:2528
+#: gnu/packages/games.scm:4097
 msgid ""
 "OpenSFX is a set of free base sounds for OpenTTD which make\n"
 "it possible to play OpenTTD without requiring the proprietary sound files from\n"
 "the original Transport Tycoon Deluxe."
 msgstr ""
 
-#: gnu/packages/games.scm:2565
+#: gnu/packages/games.scm:4134
 msgid "Music set for OpenTTD"
 msgstr "Conjunto de música para OpenTTD"
 
-#: gnu/packages/games.scm:2566
+#: gnu/packages/games.scm:4135
 msgid ""
 "OpenMSX is a music set for OpenTTD which makes it possible\n"
 "to play OpenTTD without requiring the proprietary music from the original\n"
 "Transport Tycoon Deluxe."
 msgstr ""
 
-#: gnu/packages/games.scm:2635
+#: gnu/packages/games.scm:4204
 msgid "Title sequences for OpenRCT2"
 msgstr "Secuencias de título para OpenRCT2"
 
-#: gnu/packages/games.scm:2637
+#: gnu/packages/games.scm:4206
 msgid "openrct2-title-sequences is a set of title sequences for OpenRCT2."
 msgstr ""
 
-#: gnu/packages/games.scm:2675
+#: gnu/packages/games.scm:4244
 msgid "Objects for OpenRCT2"
 msgstr "Objetos para OpenRCT2"
 
-#: gnu/packages/games.scm:2677
+#: gnu/packages/games.scm:4246
 msgid "openrct2-objects is a set of objects for OpenRCT2."
 msgstr ""
 
-#: gnu/packages/games.scm:2742
+#: gnu/packages/games.scm:4306
 msgid "Free software re-implementation of RollerCoaster Tycoon 2"
 msgstr ""
 
-#: gnu/packages/games.scm:2743
+#: gnu/packages/games.scm:4307
 msgid ""
 "OpenRCT2 is a free software re-implementation of\n"
 "RollerCoaster Tycoon 2 (RCT2).  The gameplay revolves around building and\n"
@@ -3968,21 +5154,21 @@ msgid ""
 "images, etc.)"
 msgstr ""
 
-#: gnu/packages/games.scm:2785
+#: gnu/packages/games.scm:4349
 msgid "Pinball simulator"
 msgstr "Simulador Pinball"
 
-#: gnu/packages/games.scm:2786
+#: gnu/packages/games.scm:4350
 msgid ""
 "The Emilia Pinball Project is a pinball simulator.  There\n"
 "are only two levels to play with, but they are very addictive."
 msgstr ""
 
-#: gnu/packages/games.scm:2809
+#: gnu/packages/games.scm:4373
 msgid "Board game inspired by The Settlers of Catan"
-msgstr ""
+msgstr "Juego de mesa inspirado en «The Settlers of Catan»"
 
-#: gnu/packages/games.scm:2810
+#: gnu/packages/games.scm:4374
 msgid ""
 "Pioneers is an emulation of the board game The Settlers of\n"
 "Catan.  It can be played on a local network, on the internet, and with AI\n"
@@ -3991,22 +5177,22 @@ msgstr ""
 "Pioneros es una emulación del juego The Settlers od Catan.\n"
 "Puede jugarse en una red local, o en interred, y con jugadores IA."
 
-#: gnu/packages/games.scm:2851 gnu/packages/gnome.scm:2746
+#: gnu/packages/games.scm:4415 gnu/packages/gnome.scm:4879
 msgid "Logic puzzle game"
 msgstr "Juego lógico de puzzle"
 
-#: gnu/packages/games.scm:2852
+#: gnu/packages/games.scm:4416
 msgid ""
 "The goal of this logic game is to open all cards in a 6x6\n"
 "grid, using a number of hints as to their relative position.  The game idea\n"
 "is attributed to Albert Einstein."
 msgstr ""
 
-#: gnu/packages/games.scm:2880
+#: gnu/packages/games.scm:4444
 msgid "MUD and telnet client"
 msgstr "Cliente MUD y telnet"
 
-#: gnu/packages/games.scm:2882
+#: gnu/packages/games.scm:4446
 msgid ""
 "POWWOW is a client software which can be used for telnet as well as for\n"
 "@dfn{Multi-User Dungeon} (MUD).  Additionally it can serve as a nice client for\n"
@@ -4014,33 +5200,33 @@ msgid ""
 "http://lavachat.symlynx.com/unix/"
 msgstr ""
 
-#: gnu/packages/games.scm:3057
+#: gnu/packages/games.scm:4556
 msgid "Arena shooter derived from the Cube 2 engine"
 msgstr ""
 
-#: gnu/packages/games.scm:3059
+#: gnu/packages/games.scm:4558
 msgid ""
 "Red Eclipse is an arena shooter, created from the Cube2 engine.\n"
 "Offering an innovative parkour system and distinct but all potent weapons,\n"
 "Red Eclipse provides fast paced and accessible gameplay."
 msgstr ""
 
-#: gnu/packages/games.scm:3119
+#: gnu/packages/games.scm:4621
 msgid "Text adventure game"
 msgstr "Juego textual de aventura"
 
-#: gnu/packages/games.scm:3121
+#: gnu/packages/games.scm:4623
 msgid ""
 "Grue Hunter is a text adventure game written in Perl.  You must make\n"
 "your way through an underground cave system in search of the Grue.  Can you\n"
 "capture it and get out alive?"
 msgstr ""
 
-#: gnu/packages/games.scm:3163
+#: gnu/packages/games.scm:4665
 msgid "Old-school earthworm action game"
 msgstr ""
 
-#: gnu/packages/games.scm:3165
+#: gnu/packages/games.scm:4667
 msgid ""
 "lierolibre is an earthworm action game where you fight another player\n"
 "(or the computer) underground using a wide array of weapons.\n"
@@ -4065,23 +5251,60 @@ msgid ""
 "fullscreen, use F5 or Alt+Enter."
 msgstr ""
 
-#: gnu/packages/games.scm:3239
+#: gnu/packages/games.scm:4745
+msgid "Play tennis against the computer or a friend"
+msgstr ""
+
+#: gnu/packages/games.scm:4746
+msgid ""
+"Tennix is a 2D tennis game.  You can play against the\n"
+"computer or against another player using the keyboard.  The game runs\n"
+"in-window at 640x480 resolution or fullscreen."
+msgstr ""
+
+#: gnu/packages/games.scm:4826
 msgid "3D Real-time strategy and real-time tactics game"
 msgstr "Juego táctico y estratégico en tiempo real en 3D"
 
-#: gnu/packages/games.scm:3241
+#: gnu/packages/games.scm:4828
 msgid ""
 "Warzone 2100 offers campaign, multi-player, and single-player skirmish\n"
-"modes. An extensive tech tree with over 400 different technologies, combined\n"
+"modes.  An extensive tech tree with over 400 different technologies, combined\n"
 "with the unit design system, allows for a wide variety of possible units and\n"
 "tactics."
 msgstr ""
 
-#: gnu/packages/games.scm:3274
+#: gnu/packages/games.scm:4902
+msgid "Fantasy real-time strategy game"
+msgstr "Juego de estrategia en tiempo real con temática fantástica"
+
+#: gnu/packages/games.scm:4904
+msgid ""
+"In Widelands, you are the regent of a small clan.  You start out with\n"
+"nothing but your headquarters, where all your resources are stored.\n"
+"\n"
+"In the course of the game, you will build an ever growing settlement.  Every\n"
+"member of your clan will do his or her part to produce more resources---wood,\n"
+"food, iron, gold and more---to further this growth.  The economic network is\n"
+"complex and different in the four tribes (Barbarians, Empire, Atlanteans, and\n"
+"Frisians).\n"
+"\n"
+"As you are not alone in the world, you will meet other clans sooner or later.\n"
+"Some of them may be friendly and you may eventually trade with them.  However,\n"
+"if you want to rule the world, you will have to train soldiers and fight.\n"
+"\n"
+"Widelands offers single-player mode with different campaigns; the campaigns\n"
+"all tell stories of tribes and their struggle in the Widelands universe!\n"
+"However, settling really starts when you unite with friends over the Internet\n"
+"or LAN to build up new empires together---or to crush each other in the dusts\n"
+"of war.  Widelands also offers an Artificial Intelligence to challenge you."
+msgstr ""
+
+#: gnu/packages/games.scm:4952
 msgid "2D scrolling shooter game"
 msgstr "Juego disparador multiplataforma 2D"
 
-#: gnu/packages/games.scm:3276
+#: gnu/packages/games.scm:4954
 msgid ""
 "In the year 2579, the intergalactic weapons corporation, WEAPCO, has\n"
 "dominated the galaxy.  Guide Chris Bainfield and his friend Sid Wilson on\n"
@@ -4095,11 +5318,11 @@ msgstr ""
 "necesitara colaborar nuevos enemigos, crear nuevas alianzas, y asistir\n"
 "rebeliones locales en intentos dente la corporación maligna."
 
-#: gnu/packages/games.scm:3310
+#: gnu/packages/games.scm:4985
 msgid "Fast-paced, arcade-style, top-scrolling space shooter"
 msgstr ""
 
-#: gnu/packages/games.scm:3312
+#: gnu/packages/games.scm:4987
 msgid ""
 "In this game you are the captain of the cargo ship Chromium B.S.U. and\n"
 "are responsible for delivering supplies to the troops on the front line.  Your\n"
@@ -4107,11 +5330,11 @@ msgid ""
 "safety of the Chromium vessel."
 msgstr ""
 
-#: gnu/packages/games.scm:3394
+#: gnu/packages/games.scm:5069
 msgid "Drawing software for children"
 msgstr "Software de dibujo para niños"
 
-#: gnu/packages/games.scm:3396
+#: gnu/packages/games.scm:5071
 msgid ""
 "Tux Paint is a free drawing program designed for young children (kids\n"
 "ages 3 and up).  It has a simple, easy-to-use interface; fun sound effects;\n"
@@ -4120,40 +5343,39 @@ msgid ""
 "your child be creative."
 msgstr ""
 
-#: gnu/packages/games.scm:3435
+#: gnu/packages/games.scm:5110
 msgid "Stamp images for Tux Paint"
 msgstr "Imágenes selladas para Pintor Tux"
 
-#: gnu/packages/games.scm:3437
+#: gnu/packages/games.scm:5112
 msgid ""
 "This package contains a set of \"Rubber Stamp\" images which can be used\n"
 "with the \"Stamp\" tool within Tux Paint."
 msgstr ""
 
-#: gnu/packages/games.scm:3484
+#: gnu/packages/games.scm:5159
 msgid "Configure Tux Paint"
 msgstr "Configurar Pintor Tux"
 
-#: gnu/packages/games.scm:3486
+#: gnu/packages/games.scm:5161
 msgid "Tux Paint Config is a graphical configuration editor for Tux Paint."
 msgstr ""
 
-#: gnu/packages/games.scm:3518
+#: gnu/packages/games.scm:5211
 msgid "2D platformer game"
 msgstr "Juego de plataforma 2D"
 
-#: gnu/packages/games.scm:3519
+#: gnu/packages/games.scm:5212
 msgid ""
-"SuperTux is a free classic 2D jump'n run sidescroller game\n"
-"in a style similar to the original Super Mario games covered under\n"
-"the GNU GPL."
+"SuperTux is a classic 2D jump'n run sidescroller game in\n"
+"a style similar to the original Super Mario games."
 msgstr ""
 
-#: gnu/packages/games.scm:3554
+#: gnu/packages/games.scm:5245
 msgid "MUD client"
 msgstr "Cliente MUD"
 
-#: gnu/packages/games.scm:3556
+#: gnu/packages/games.scm:5247
 msgid ""
 "TinTin++ is a MUD client which supports MCCP (Mud Client Compression\n"
 "Protocol), MMCP (Mud Master Chat Protocol), xterm 256 colors, most TELNET\n"
@@ -4161,11 +5383,11 @@ msgid ""
 "Linux / Mac OS X servers, and an auto mapper with a VT100 map display."
 msgstr ""
 
-#: gnu/packages/games.scm:3600
+#: gnu/packages/games.scm:5292
 msgid "Programming game"
 msgstr "Programación de juegos"
 
-#: gnu/packages/games.scm:3601
+#: gnu/packages/games.scm:5293
 msgid ""
 "Learn programming, playing with ants and spider webs ;-)\n"
 "Your robot ant can be programmed in many languages: OCaml, Python, C, C++,\n"
@@ -4173,22 +5395,22 @@ msgid ""
 "programmers may also add their own favorite language."
 msgstr ""
 
-#: gnu/packages/games.scm:3646
+#: gnu/packages/games.scm:5331
 msgid "Keyboard mashing and doodling game for babies"
 msgstr ""
 
-#: gnu/packages/games.scm:3647
+#: gnu/packages/games.scm:5332
 msgid ""
 "Bambam is a simple baby keyboard (and gamepad) masher\n"
 "application that locks the keyboard and mouse and instead displays bright\n"
 "colors, pictures, and sounds."
 msgstr ""
 
-#: gnu/packages/games.scm:3711
+#: gnu/packages/games.scm:5396
 msgid "Arcade-style fire fighting game"
 msgstr "Juego de lucha a tiros estilo arcade"
 
-#: gnu/packages/games.scm:3713
+#: gnu/packages/games.scm:5398
 msgid ""
 "Mr. Rescue is an arcade styled 2d action game centered around evacuating\n"
 "civilians from burning buildings.  The game features fast-paced fire\n"
@@ -4196,11 +5418,11 @@ msgid ""
 "throwing people around in pseudo-randomly generated buildings."
 msgstr ""
 
-#: gnu/packages/games.scm:3822
+#: gnu/packages/games.scm:5508
 msgid "Non-euclidean graphical rogue-like game"
 msgstr ""
 
-#: gnu/packages/games.scm:3824
+#: gnu/packages/games.scm:5510
 msgid ""
 "HyperRogue is a game in which the player collects treasures and fights\n"
 "monsters -- rogue-like but for the fact that it is played on the hyperbolic\n"
@@ -4214,33 +5436,33 @@ msgid ""
 "symbols, it still needs graphics to render the non-euclidean world."
 msgstr ""
 
-#: gnu/packages/games.scm:3867
+#: gnu/packages/games.scm:5555
 msgid "Shooter with space station destruction"
 msgstr "Disparos con destrucción de estaciones del espacio"
 
-#: gnu/packages/games.scm:3869
+#: gnu/packages/games.scm:5557
 msgid ""
 "Kobo Deluxe is an enhanced version of Akira Higuchi's XKobo graphical game\n"
 "for Un*x systems with X11."
 msgstr ""
 
-#: gnu/packages/games.scm:3901
-msgid "Turn based empire building strategy game"
-msgstr "Juego estratégico basado en construcción de imperio basado en turnos"
+#: gnu/packages/games.scm:5588
+msgid "Turn-based empire building strategy game"
+msgstr "Juego de construcción de imperios y estrategia por turnos"
 
-#: gnu/packages/games.scm:3902
+#: gnu/packages/games.scm:5589
 msgid ""
-"Freeciv is a turn based empire building strategy game\n"
+"Freeciv is a turn-based empire building strategy game\n"
 "inspired by the history of human civilization.  The game commences in\n"
 "prehistory and your mission is to lead your tribe from the Stone Age\n"
-"to the Space Age."
+"into the Space Age."
 msgstr ""
 
-#: gnu/packages/games.scm:3933
+#: gnu/packages/games.scm:5620
 msgid "Recreation of data decryption effect in \"Sneakers\""
 msgstr ""
 
-#: gnu/packages/games.scm:3935
+#: gnu/packages/games.scm:5622
 msgid ""
 "@code{No More Secrets} provides a command line tool called \"nms\"\n"
 "that recreates the famous data decryption effect seen on screen in the 1992\n"
@@ -4251,41 +5473,41 @@ msgid ""
 "starting a decryption sequence to reveal the original plaintext characters."
 msgstr ""
 
-#: gnu/packages/games.scm:3962
+#: gnu/packages/games.scm:5649
 msgid "Data files for MegaGlest"
 msgstr "Datos de fichero para MegaGlest"
 
-#: gnu/packages/games.scm:3963
+#: gnu/packages/games.scm:5650
 msgid "This package contains the data files required for MegaGlest."
 msgstr ""
 
-#: gnu/packages/games.scm:4016
+#: gnu/packages/games.scm:5703
 msgid "3D real-time strategy (RTS) game"
 msgstr "Juego estratégico 3D en tiempo real (RTS)"
 
-#: gnu/packages/games.scm:4017
+#: gnu/packages/games.scm:5704
 msgid ""
 "MegaGlest is a cross-platform 3D real-time strategy (RTS)\n"
 "game, where you control the armies of one of seven different factions: Tech,\n"
 "Magic, Egypt, Indians, Norsemen, Persian or Romans."
 msgstr ""
 
-#: gnu/packages/games.scm:4068
+#: gnu/packages/games.scm:5755
 msgid "Side-scrolling physics platformer with a ball of tar"
 msgstr ""
 
-#: gnu/packages/games.scm:4069
+#: gnu/packages/games.scm:5756
 msgid ""
 "In FreeGish you control Gish, a ball of tar who lives\n"
 "happily with his girlfriend Brea, until one day a mysterious dark creature\n"
 "emerges from a sewer hole and pulls her below ground."
 msgstr ""
 
-#: gnu/packages/games.scm:4105
+#: gnu/packages/games.scm:5795
 msgid "Classic overhead run-and-gun game"
 msgstr ""
 
-#: gnu/packages/games.scm:4106
+#: gnu/packages/games.scm:5796
 msgid ""
 "C-Dogs SDL is a classic overhead run-and-gun game,\n"
 "supporting up to 4 players in co-op and deathmatch modes.  Customize your\n"
@@ -4293,33 +5515,33 @@ msgid ""
 "over 100 user-created campaigns."
 msgstr ""
 
-#: gnu/packages/games.scm:4206
+#: gnu/packages/games.scm:5896
 msgid "3D puzzle game"
 msgstr "Juego de puzzle 3D"
 
-#: gnu/packages/games.scm:4207
+#: gnu/packages/games.scm:5897
 msgid ""
 "Kiki the nano bot is a 3D puzzle game.  It is basically a\n"
 "mixture of the games Sokoban and Kula-World.  Your task is to help Kiki, a\n"
 "small robot living in the nano world, repair its maker."
 msgstr ""
 
-#: gnu/packages/games.scm:4341
+#: gnu/packages/games.scm:6008
 msgid "2D retro multiplayer shooter game"
 msgstr "Juego disparador multiplataforma retro de 2D"
 
-#: gnu/packages/games.scm:4342
+#: gnu/packages/games.scm:6009
 msgid ""
 "Teeworlds is an online multiplayer game.  Battle with up to\n"
 "16 players in a variety of game modes, including Team Deathmatch and Capture\n"
 "The Flag.  You can even design your own maps!"
 msgstr ""
 
-#: gnu/packages/games.scm:4395
+#: gnu/packages/games.scm:6070
 msgid "Puzzle game with a dexterity component"
 msgstr "Juego de puzzle con un componente de destreza"
 
-#: gnu/packages/games.scm:4396
+#: gnu/packages/games.scm:6071
 msgid ""
 "Enigma is a puzzle game with 550 unique levels.  The object\n"
 "of the game is to find and uncover pairs of identically colored ‘Oxyd’ stones.\n"
@@ -4331,25 +5553,25 @@ msgid ""
 "with the mouse isn’t always trivial."
 msgstr ""
 
-#: gnu/packages/games.scm:4429
+#: gnu/packages/games.scm:6105
 msgid "Abstract puzzle game"
 msgstr "Juego de puzzles abstractos"
 
-#: gnu/packages/games.scm:4430
+#: gnu/packages/games.scm:6106
 msgid ""
 "Chroma is an abstract puzzle game. A variety of colourful\n"
 "shapes are arranged in a series of increasingly complex patterns, forming\n"
-" fiendish traps that must be disarmed and mysterious puzzles that must be\n"
-" manipulated in order to give up their subtle secrets. Initially so\n"
-" straightforward that anyone can pick it up and begin to play, yet gradually\n"
-" becoming difficult enough to tax even the brightest of minds."
+"fiendish traps that must be disarmed and mysterious puzzles that must be\n"
+"manipulated in order to give up their subtle secrets.  Initially so\n"
+"straightforward that anyone can pick it up and begin to play, yet gradually\n"
+"becoming difficult enough to tax even the brightest of minds."
 msgstr ""
 
-#: gnu/packages/games.scm:4499
+#: gnu/packages/games.scm:6175
 msgid "Puzzle game"
 msgstr "Juego de Puzzle"
 
-#: gnu/packages/games.scm:4500
+#: gnu/packages/games.scm:6176
 msgid ""
 "Fish Fillets NG is strictly a puzzle game.  The goal in\n"
 "every of the seventy levels is always the same: find a safe way out.  The fish\n"
@@ -4358,27 +5580,27 @@ msgid ""
 "fish.  The whole game is accompanied by quiet, comforting music."
 msgstr ""
 
-#: gnu/packages/games.scm:4576
+#: gnu/packages/games.scm:6259
 #, fuzzy
 msgid "Roguelike dungeon crawler game"
 msgstr "Explorador de mazmorra similar a Dungeon Rogue"
 
-#: gnu/packages/games.scm:4577
+#: gnu/packages/games.scm:6260
 msgid ""
 "Dungeon Crawl Stone Soup (also known as \"Crawl\" or DCSS\n"
 "for short) is a roguelike adventure through dungeons filled with dangerous\n"
 "monsters in a quest to find the mystifyingly fabulous Orb of Zot."
 msgstr ""
 
-#: gnu/packages/games.scm:4626
+#: gnu/packages/games.scm:6306
 msgid "Graphical roguelike dungeon crawler game"
 msgstr ""
 
-#: gnu/packages/games.scm:4659
+#: gnu/packages/games.scm:6336
 msgid "Cross-platform third-person action game"
 msgstr ""
 
-#: gnu/packages/games.scm:4660
+#: gnu/packages/games.scm:6337
 msgid ""
 "Lugaru is a third-person action game.  The main character,\n"
 "Turner, is an anthropomorphic rebel bunny rabbit with impressive combat skills.\n"
@@ -4388,19 +5610,19 @@ msgid ""
 "fight against their plot and save his fellow rabbits from slavery."
 msgstr ""
 
-#: gnu/packages/games.scm:4710
+#: gnu/packages/games.scm:6387
 msgid "Data files for 0ad"
 msgstr "Datos de fichero para 0ad"
 
-#: gnu/packages/games.scm:4711
+#: gnu/packages/games.scm:6388
 msgid "0ad-data provides the data files required by the game 0ad."
 msgstr "0ad-data proporciona el fichero de datos solicitado por el juego 0ad."
 
-#: gnu/packages/games.scm:4829
+#: gnu/packages/games.scm:6506
 msgid "3D real-time strategy game of ancient warfare"
 msgstr "Juego estratégico en tiempo real 3D de guerras antiguas"
 
-#: gnu/packages/games.scm:4830
+#: gnu/packages/games.scm:6507
 msgid ""
 "0 A.D. is a real-time strategy (RTS) game of ancient\n"
 "warfare.  It's a historically-based war/economy game that allows players to\n"
@@ -4416,11 +5638,11 @@ msgstr ""
 "\n"
 "0ad requiere un gestor de ventanas que sea compatible con 'Extended Window Manager Hints'."
 
-#: gnu/packages/games.scm:4905
+#: gnu/packages/games.scm:6582
 msgid "Colossal Cave Adventure"
 msgstr "Colossal Cave Adventure"
 
-#: gnu/packages/games.scm:4906
+#: gnu/packages/games.scm:6583
 msgid ""
 "The original Colossal Cave Adventure from 1976 was the\n"
 "origin of all text adventures, dungeon-crawl (computer) games, and\n"
@@ -4429,11 +5651,11 @@ msgid ""
 "\"adventure 2.5\" and \"430-point adventure\"."
 msgstr ""
 
-#: gnu/packages/games.scm:4917
+#: gnu/packages/games.scm:6594
 msgid "Single-player, RPG roguelike game set in the world of Eyal"
 msgstr ""
 
-#: gnu/packages/games.scm:5027
+#: gnu/packages/games.scm:6702
 msgid ""
 "Tales of Maj’Eyal (ToME) RPG, featuring tactical turn-based\n"
 "combat and advanced character building.  Play as one of many unique races and\n"
@@ -4444,29 +5666,29 @@ msgid ""
 "Tales of Maj’Eyal offers engaging roguelike gameplay for the 21st century."
 msgstr ""
 
-#: gnu/packages/games.scm:5076
+#: gnu/packages/games.scm:6747
 msgid "First person shooter engine for Quake 1"
 msgstr ""
 
-#: gnu/packages/games.scm:5077
+#: gnu/packages/games.scm:6748
 msgid ""
 "Quakespasm is a modern engine for id software's Quake 1.\n"
 "It includes support for 64 bit CPUs, custom music playback, a new sound driver,\n"
 "some graphical niceities, and numerous bug-fixes and other improvements."
 msgstr ""
 
-#: gnu/packages/games.scm:5127
+#: gnu/packages/games.scm:6806
 msgid ""
 "vkquake is a modern engine for id software's Quake 1.\n"
 "It includes support for 64 bit CPUs, custom music playback, a new sound driver,\n"
 "some graphical niceities, and numerous bug-fixes and other improvements."
 msgstr ""
 
-#: gnu/packages/games.scm:5178
+#: gnu/packages/games.scm:6857
 msgid "First person shooter engine based on quake2"
 msgstr ""
 
-#: gnu/packages/games.scm:5179
+#: gnu/packages/games.scm:6858
 msgid ""
 "Yamagi Quake II is an enhanced client for id Software's Quake II.\n"
 "The main focus is an unchanged single player experience like back in 1997,\n"
@@ -4476,34 +5698,30 @@ msgid ""
 "making Yamagi Quake II one of the most solid Quake II implementations available."
 msgstr ""
 
-#: gnu/packages/games.scm:5207
+#: gnu/packages/games.scm:6886
 msgid "Sudoku for your terminal"
 msgstr ""
 
-#: gnu/packages/games.scm:5208
+#: gnu/packages/games.scm:6887
 msgid "Nudoku is a ncurses-based Sudoku game for your terminal."
 msgstr ""
 
-#: gnu/packages/games.scm:5254
-#, fuzzy
-#| msgid "Logic puzzle game"
+#: gnu/packages/games.scm:6933
 msgid "Realistic physics puzzle game"
-msgstr "Juego lógico de puzzle"
+msgstr "Juego de puzzles con física realista"
 
-#: gnu/packages/games.scm:5255
+#: gnu/packages/games.scm:6934
 msgid ""
 "The Butterfly Effect (tbe) is a game that uses\n"
 "realistic physics simulations to combine lots of simple mechanical\n"
 "elements to achieve a simple goal in the most complex way possible."
 msgstr ""
 
-#: gnu/packages/games.scm:5306
-#, fuzzy
-#| msgid "Colossal Cave Adventure"
+#: gnu/packages/games.scm:6977
 msgid "Game of lonely space adventure"
-msgstr "Colossal Cave Adventure"
+msgstr "Juego de aventuras espaciales solitarias"
 
-#: gnu/packages/games.scm:5308
+#: gnu/packages/games.scm:6979
 msgid ""
 "Pioneer is a space adventure game set in our galaxy at the turn of the\n"
 "31st century.  The game is open-ended, and you are free to eke out whatever\n"
@@ -4514,22 +5732,22 @@ msgid ""
 "whatever you make of it."
 msgstr ""
 
-#: gnu/packages/games.scm:5335
+#: gnu/packages/games.scm:7006
 msgid "Hacking contribution graphs in git"
 msgstr ""
 
-#: gnu/packages/games.scm:5337
+#: gnu/packages/games.scm:7008
 msgid ""
 "Badass generates false commits for a range of dates, essentially\n"
 "hacking the gamification of contribution graphs on platforms such as\n"
 "Github or Gitlab."
 msgstr ""
 
-#: gnu/packages/games.scm:5410
+#: gnu/packages/games.scm:7081
 msgid "Educational programming strategy game"
 msgstr ""
 
-#: gnu/packages/games.scm:5411
+#: gnu/packages/games.scm:7082
 msgid ""
 "Colobot: Gold Edition is a real-time strategy game, where\n"
 "you can program your units (bots) in a language called CBOT, which is similar\n"
@@ -4537,11 +5755,11 @@ msgid ""
 "You can save humanity and get programming skills!"
 msgstr ""
 
-#: gnu/packages/games.scm:5494
+#: gnu/packages/games.scm:7174
 msgid "Modern Doom 2 source port"
 msgstr ""
 
-#: gnu/packages/games.scm:5495
+#: gnu/packages/games.scm:7175
 msgid ""
 "GZdoom is a port of the Doom 2 game engine, with a modern\n"
 "renderer.  It improves modding support with ZDoom's advanced mapping features\n"
@@ -4549,45 +5767,85 @@ msgid ""
 "Strife, Chex Quest, and fan-created games like Harmony, Hacx and Freedoom."
 msgstr ""
 
-#: gnu/packages/games.scm:5531
+#: gnu/packages/games.scm:7210
 msgid "Multiplayer Doom port"
 msgstr "Adaptación multijugador de Doom"
 
-#: gnu/packages/games.scm:5532
+#: gnu/packages/games.scm:7211
 msgid ""
 "Odamex is a modification of the Doom engine that\n"
 "allows players to easily join servers dedicated to playing Doom\n"
 "online."
 msgstr ""
 
-#: gnu/packages/games.scm:5598
+#: gnu/packages/games.scm:7236
+msgid ""
+"Doom source port preserving the look, feel, and bugs of vanilla\n"
+"Doom"
+msgstr ""
+
+#: gnu/packages/games.scm:7239
+msgid ""
+"Chocolate Doom takes a different approach to other source ports.  Its\n"
+"aim is to accurately reproduce the experience of playing Vanilla Doom.  It is\n"
+"a conservative, historically accurate Doom source port, which is compatible\n"
+"with the thousands of mods and levels that were made before the Doom source\n"
+"code was released.  Rather than flashy new graphics, Chocolate Doom's main\n"
+"features are its accurate reproduction of the game as it was played in the\n"
+"1990s.  The project is developed around a carefully-considered philosophy that\n"
+"intentionally restricts which features may be added (and rejects any that\n"
+"affect gameplay)."
+msgstr ""
+
+#: gnu/packages/games.scm:7275
+msgid ""
+"Limit-removing enhanced-resolution Doom source port based on\n"
+"Chocolate Doom"
+msgstr ""
+
+#: gnu/packages/games.scm:7278
+msgid ""
+"Crispy Doom is a friendly fork of Chocolate Doom that provides a higher\n"
+"display resolution, removes the static limits of the Doom engine and offers\n"
+"further optional visual, tactical and physical enhancements while remaining\n"
+"entirely config file, savegame, netplay and demo compatible with the\n"
+"original."
+msgstr ""
+
+#: gnu/packages/games.scm:7350
+msgid "C11 / gnu11 utilities C library"
+msgstr ""
+
+#: gnu/packages/games.scm:7351
+msgid "This package provides C11 / gnu11 utilities C library"
+msgstr ""
+
+#: gnu/packages/games.scm:7408
 msgid "The Fortune Cookie program from BSD games"
 msgstr ""
 
-#: gnu/packages/games.scm:5599
+#: gnu/packages/games.scm:7409
 msgid ""
 "Fortune is a command-line utility which displays a random\n"
 "quotation from a collection of quotes."
 msgstr ""
 
-#: gnu/packages/games.scm:5639
+#: gnu/packages/games.scm:7449
 msgid "Data files for Xonotic"
 msgstr "Ficheros de datos para Xonotic"
 
-#: gnu/packages/games.scm:5641
-#, fuzzy
+#: gnu/packages/games.scm:7451
 msgid "Xonotic-data provides the data files required by the game Xonotic."
 msgstr ""
 "Xonotic-data proporciona los ficheros de datos necesarios para el\n"
 "juego Xonotic."
 
 # FUZZY
-#: gnu/packages/games.scm:5835
-#, fuzzy
+#: gnu/packages/games.scm:7645
 msgid "Fast-paced first-person shooter game"
 msgstr "Juego de disparos en primera persona de acción rápida"
 
-#: gnu/packages/games.scm:5837
+#: gnu/packages/games.scm:7647
 msgid ""
 "Xonotic is a free, fast-paced first-person shooter.\n"
 "The project is geared towards providing addictive arena shooter\n"
@@ -4597,11 +5855,11 @@ msgid ""
 "open-source FPS of its kind."
 msgstr ""
 
-#: gnu/packages/games.scm:5887
+#: gnu/packages/games.scm:7697
 msgid "Portable Z-machine interpreter (ncurses version) for text adventure games"
 msgstr ""
 
-#: gnu/packages/games.scm:5888
+#: gnu/packages/games.scm:7698
 msgid ""
 "Frotz is an interpreter for Infocom games and other Z-machine\n"
 "games in the text adventure/interactive fiction genre.  This version of Frotz\n"
@@ -4610,11 +5868,11 @@ msgid ""
 "ncurses for text display."
 msgstr ""
 
-#: gnu/packages/games.scm:5929
+#: gnu/packages/games.scm:7739
 msgid "Portable Z-machine dumb interpreter for text adventure games"
 msgstr ""
 
-#: gnu/packages/games.scm:5930
+#: gnu/packages/games.scm:7740
 msgid ""
 "Frotz is an interpreter for Infocom games and\n"
 "other Z-machine games in the text adventure/interactive fiction genre.\n"
@@ -4626,11 +5884,11 @@ msgid ""
 "to play games on webpages.  It can also be made into a chat bot."
 msgstr ""
 
-#: gnu/packages/games.scm:5993
+#: gnu/packages/games.scm:7803
 msgid "Portable Z-machine interpreter (SDL port) for text adventure games"
 msgstr ""
 
-#: gnu/packages/games.scm:5994
+#: gnu/packages/games.scm:7804
 msgid ""
 "Frotz is an interpreter for Infocom games and other Z-machine\n"
 "games in the text adventure/interactive fiction genre.  This version of Frotz\n"
@@ -4640,11 +5898,30 @@ msgid ""
 "when packaged in Blorb container files or optionally from individual files."
 msgstr ""
 
-#: gnu/packages/games.scm:6025
+#: gnu/packages/games.scm:7896
+msgid "Puzzle with bubbles"
+msgstr ""
+
+#: gnu/packages/games.scm:7898
+msgid ""
+"Frozen-Bubble is a clone of the popular Puzzle Bobble game, in which\n"
+"you attempt to shoot bubbles into groups of the same color to cause them to\n"
+"pop.\n"
+"\n"
+"Players compete as penguins and must use the arrow keys to aim a colored\n"
+"bubble at groups of bubbles.  The objective is to clear all the bubbles off\n"
+"the screen before a bubble passes below a line at the bottom.\n"
+"\n"
+"It features 100 single-player levels, a two-player mode, music and striking\n"
+"graphics.  A level editor is also included to allow players to create and play\n"
+"their own levels."
+msgstr ""
+
+#: gnu/packages/games.scm:7933
 msgid "Game controller library"
 msgstr "Biblioteca de controladores para juegos"
 
-#: gnu/packages/games.scm:6026
+#: gnu/packages/games.scm:7934
 msgid ""
 "Libmanette is a small GObject library giving you simple\n"
 "access to game controllers.  It supports the de-facto standard gamepads as\n"
@@ -4652,11 +5929,11 @@ msgid ""
 "GameController."
 msgstr ""
 
-#: gnu/packages/games.scm:6061
+#: gnu/packages/games.scm:7980
 msgid "GNOME version of Tetris"
 msgstr "Versión de Tetris de GNOME"
 
-#: gnu/packages/games.scm:6062
+#: gnu/packages/games.scm:7981
 msgid ""
 "Quadrapassel comes from the classic falling-block game,\n"
 "Tetris.  The goal of the game is to create complete horizontal lines of\n"
@@ -4668,11 +5945,11 @@ msgid ""
 "your score gets higher, you level up and the blocks fall faster."
 msgstr ""
 
-#: gnu/packages/games.scm:6116
+#: gnu/packages/games.scm:8034
 msgid "2D space trading and combat game"
 msgstr ""
 
-#: gnu/packages/games.scm:6117
+#: gnu/packages/games.scm:8035
 msgid ""
 "Endless Sky is a 2D space trading and combat game.  Explore\n"
 "other star systems.  Earn money by trading, carrying passengers, or completing\n"
@@ -4682,11 +5959,11 @@ msgid ""
 "civilized than your own."
 msgstr ""
 
-#: gnu/packages/games.scm:6266
+#: gnu/packages/games.scm:8184
 msgid "Advanced rhythm game designed for both home and arcade use"
 msgstr ""
 
-#: gnu/packages/games.scm:6267
+#: gnu/packages/games.scm:8185
 msgid ""
 "StepMania is a dance and rhythm game.  It features 3D\n"
 "graphics, keyboard and dance pad support, and an editor for creating your own\n"
@@ -4696,11 +5973,11 @@ msgid ""
 "to download and install them in @file{$HOME/.stepmania-X.Y/Songs} directory."
 msgstr ""
 
-#: gnu/packages/games.scm:6351
+#: gnu/packages/games.scm:8270
 msgid "Multiplayer tank battle game"
 msgstr ""
 
-#: gnu/packages/games.scm:6352
+#: gnu/packages/games.scm:8271
 msgid ""
 "Battle Tanks (also known as \"btanks\") is a funny battle\n"
 "game, where you can choose one of three vehicles and eliminate your enemy\n"
@@ -4709,11 +5986,11 @@ msgid ""
 "and cooperative."
 msgstr ""
 
-#: gnu/packages/games.scm:6385
+#: gnu/packages/games.scm:8301
 msgid "Simple 2D shooting strategy game set in space"
 msgstr ""
 
-#: gnu/packages/games.scm:6386
+#: gnu/packages/games.scm:8302
 msgid ""
 "Slingshot is a two-dimensional strategy game where two\n"
 "players attempt to shoot one another through a section of space populated by\n"
@@ -4721,38 +5998,37 @@ msgid ""
 "affected by the gravity of the planets."
 msgstr ""
 
-#: gnu/packages/games.scm:6432
+#: gnu/packages/games.scm:8349
 msgid "4D Tetris"
 msgstr ""
 
-#: gnu/packages/games.scm:6433
+#: gnu/packages/games.scm:8350
 msgid ""
 "4D-TRIS is an alteration of the well-known Tetris game.  The\n"
 "game field is extended to 4D space, which has to filled up by the gamer with\n"
 "4D hyper cubes."
 msgstr ""
 
-#: gnu/packages/games.scm:6509
+#: gnu/packages/games.scm:8426
 msgid "Port of Arx Fatalis, a first-person role-playing game"
 msgstr ""
 
-#: gnu/packages/games.scm:6510
+#: gnu/packages/games.scm:8427
 msgid ""
-"Arx Libertatis is a cross-platform, open source port of Arx\n"
-"Fatalis, a 2002 first-person role-playing game / dungeon crawler developed by\n"
-"Arkane Studios.  This port however does not include the game data, so you need\n"
-"to obtain a copy of the original Arx Fatalis or its demo to play Arx\n"
-"Libertatis.  Arx Fatalis features crafting, melee and ranged combat, as well\n"
-"as a unique casting system where the player draws runes in real time to effect\n"
-"the desired spell."
+"Arx Libertatis is a cross-platform port of Arx Fatalis, a 2002\n"
+"first-person role-playing game / dungeon crawler developed by Arkane Studios.\n"
+"This port however does not include the game data, so you need to obtain a copy\n"
+"of the original Arx Fatalis or its demo to play Arx Libertatis.  Arx Fatalis\n"
+"features crafting, melee and ranged combat, as well as a unique casting system\n"
+"where the player draws runes in real time to effect the desired spell."
 msgstr ""
 
 # FUZZY
-#: gnu/packages/games.scm:6556
+#: gnu/packages/games.scm:8473
 msgid "2d action platformer game"
 msgstr "Juego de acción de plataformas 2d"
 
-#: gnu/packages/games.scm:6557
+#: gnu/packages/games.scm:8474
 msgid ""
 "The Legend of Edgar is a 2D platform game with a persistent world.\n"
 "When Edgar's father fails to return home after venturing out one dark and stormy night,\n"
@@ -4760,47 +6036,47 @@ msgid ""
 "a fortress beyond the forbidden swamp."
 msgstr ""
 
-#: gnu/packages/games.scm:6645
+#: gnu/packages/games.scm:8575
 msgid "Multiplayer action game where you control small and nimble humanoids"
 msgstr ""
 
-#: gnu/packages/games.scm:6646
+#: gnu/packages/games.scm:8576
 msgid ""
 "OpenClonk is a multiplayer action/tactics/skill game.  It is\n"
 "often referred to as a mixture of The Settlers and Worms.  In a simple 2D\n"
-"antfarm-style landscape, the player controls his crew of Clonks, small but\n"
+"antfarm-style landscape, the player controls a crew of Clonks, small but\n"
 "robust humanoid beings.  The game encourages free play but the normal goal is\n"
 "to either exploit valuable resources from the earth by building a mine or\n"
 "fight each other on an arena-like map."
 msgstr ""
 
-#: gnu/packages/games.scm:6677
+#: gnu/packages/games.scm:8607
 msgid "Action Roleplaying Engine"
 msgstr ""
 
-#: gnu/packages/games.scm:6678
+#: gnu/packages/games.scm:8608
 msgid ""
 "Flare (Free Libre Action Roleplaying Engine) is a simple\n"
 "game engine built to handle a very specific kind of game: single-player 2D\n"
 "action RPGs."
 msgstr ""
 
-#: gnu/packages/games.scm:6742
+#: gnu/packages/games.scm:8672
 msgid "Fantasy action RPG using the FLARE engine"
 msgstr ""
 
-#: gnu/packages/games.scm:6743
+#: gnu/packages/games.scm:8673
 msgid ""
 "Flare is a single-player 2D action RPG with\n"
 "fast-paced action and a dark fantasy style."
 msgstr ""
 
-#: gnu/packages/games.scm:6794
+#: gnu/packages/games.scm:8724
 #, fuzzy
 msgid "Action-adventure dungeon crawl game"
 msgstr "Explorador de mazmorra similar a Dungeon Rogue"
 
-#: gnu/packages/games.scm:6795
+#: gnu/packages/games.scm:8725
 msgid ""
 "Far below the surface of the planet is a place of limitless\n"
 "power.  Those that seek to control such a utopia will soon bring an end to\n"
@@ -4814,11 +6090,11 @@ msgid ""
 "Orcus Dome from evil."
 msgstr ""
 
-#: gnu/packages/games.scm:6858
+#: gnu/packages/games.scm:8788
 msgid "Guide a marble across fractal landscapes"
 msgstr ""
 
-#: gnu/packages/games.scm:6859
+#: gnu/packages/games.scm:8789
 msgid ""
 "Marble Marcher is a video game that uses a fractal physics\n"
 "engine and fully procedural rendering to produce beautiful and unique\n"
@@ -4828,11 +6104,11 @@ msgid ""
 "levels to unlock."
 msgstr ""
 
-#: gnu/packages/games.scm:6900
+#: gnu/packages/games.scm:8830
 msgid "Libraries for 3D simulations and games"
 msgstr ""
 
-#: gnu/packages/games.scm:6901
+#: gnu/packages/games.scm:8831
 msgid ""
 "SimGear is a set of libraries designed to be used as\n"
 "building blocks for quickly assembling 3D simulations, games, and\n"
@@ -4840,13 +6116,13 @@ msgid ""
 "and also provides the base for the FlightGear Flight Simulator."
 msgstr ""
 
-#: gnu/packages/games.scm:6993
+#: gnu/packages/games.scm:8923
 msgid "Flight simulator"
 msgstr "Simulador de vuelo"
 
 # FUZZY
 # TODO: Revisar traducción.
-#: gnu/packages/games.scm:6994
+#: gnu/packages/games.scm:8924
 msgid ""
 "The goal of the FlightGear project is to create a\n"
 "sophisticated flight simulator framework for use in research or academic\n"
@@ -4863,12 +6139,963 @@ msgstr ""
 "importante, como un simulador de vuelo de escritorio divertido,\n"
 "realista y desafiante."
 
-#: gnu/packages/gcc.scm:348
+#: gnu/packages/games.scm:8970
+msgid "Multiplayer platform game with bunnies"
+msgstr ""
+
+#: gnu/packages/games.scm:8971
+msgid ""
+"You, as a bunny, have to jump on your opponents to make them\n"
+"explode.  It is a true multiplayer game; you cannot play this alone.  You can\n"
+"play with up to four players simultaneously.  It has network support."
+msgstr ""
+
+#: gnu/packages/games.scm:9032
+msgid "Turn-based artillery game featuring fighting hedgehogs"
+msgstr ""
+
+#: gnu/packages/games.scm:9034
+msgid ""
+"Hedgewars is a turn based strategy, artillery, action and comedy game,\n"
+"featuring the antics of pink hedgehogs with attitude as they battle from the\n"
+"depths of hell to the depths of space.\n"
+"\n"
+"As commander, it's your job to assemble your crack team of hedgehog soldiers\n"
+"and bring the war to your enemy."
+msgstr ""
+
+#: gnu/packages/games.scm:9066
+msgid "Stealth coffee-break roguelike game"
+msgstr ""
+
+#: gnu/packages/games.scm:9067
+msgid ""
+"Harmonist: Dayoriah Clan Infiltration is a stealth\n"
+"coffee-break roguelike game.  The game has a heavy focus on tactical\n"
+"positioning, light and noise mechanisms, making use of various terrain types\n"
+"and cones of view for monsters.  Aiming for a replayable streamlined experience,\n"
+"the game avoids complex inventory management and character building, relying\n"
+"on items and player adaptability for character progression."
+msgstr ""
+
+#: gnu/packages/games.scm:9198 gnu/packages/games.scm:9381
+msgid "Classic 2D point and click adventure game"
+msgstr ""
+
+#: gnu/packages/games.scm:9199
+msgid ""
+"Drascula: The Vampire Strikes Back is a classic humorous 2D\n"
+"point and click adventure game.\n"
+"\n"
+"In Drascula you play the role of John Hacker, a British estate agent, that\n"
+"gets to meet a gorgeous blond girl who is kidnapped by the notorious vampire\n"
+"Count Drascula and embark on a fun yet dangerous quest to rescue her.\n"
+"Unfortunately, Hacker is not aware of Drascula's real ambitions: DOMINATING\n"
+"the World and demonstrating that he is even more evil than his brother Vlad."
+msgstr ""
+
+#: gnu/packages/games.scm:9279
+msgid "2D point and click fantasy adventure game"
+msgstr ""
+
+#: gnu/packages/games.scm:9281
+msgid ""
+"Lure of the Temptress is a classic 2D point and click adventure game.\n"
+"\n"
+"You are Diermot, an unwilling hero who'd prefer a quiet life, and are, to all\n"
+"intents and purposes, a good man.  After decades of unrest the King has united\n"
+"the warring factions in his kingdom and all his lands are at peace, except\n"
+"a remote region around a town called Turnvale.  A revolt has recently taken\n"
+"place in Turnvale, a revolt orchestrated by an apprentice sorceress called\n"
+"Selena, the titular temptress.  The king calls together his finest horsemen\n"
+"and heads off (with you in tow) to Turnvale just to witness how hellish\n"
+"mercenary monsters called Skorl are invading the town.\n"
+"\n"
+"The king's men are defeated, the king is killed and you fall of your horse and\n"
+"bang your head heavily on the ground.  You have been *unconscious for a while\n"
+"when you realize that you are in a dingy cell guarded by a not so friendly\n"
+"Skorl.  Maybe it would be an idea to try and escape..."
+msgstr ""
+
+#: gnu/packages/games.scm:9382
+msgid ""
+"Flight of the Amazon Queen is a 2D point-and-click\n"
+"adventure game set in the 1940s.\n"
+"\n"
+"You assume the role of Joe King, a pilot for hire who is given the job\n"
+"of flying Faye Russell (a famous movie star) into the Amazon jungle\n"
+"for a photo shoot.  Of course, things never go according to plans.\n"
+"After an unfortunate turn of events they find themselves stranded in\n"
+"the heart of the Amazon jungle, where Joe will embark on a quest to\n"
+"rescue a kidnapped princess and in the process, discover the true\n"
+"sinister intentions of a suspiciously located Lederhosen company.  In\n"
+"a rich 2D environment, Joe will cross paths with a variety of unlikely\n"
+"jungle inhabitants including, but not limited to, a tribe of Amazon\n"
+"women and 6-foot-tall pygmies."
+msgstr ""
+
+#: gnu/packages/games.scm:9482
+msgid "Classic 2D point and click science-fiction adventure game"
+msgstr ""
+
+#: gnu/packages/games.scm:9484
+msgid ""
+"Beneath a Steel Sky is a science-fiction thriller set in a bleak\n"
+"post-apocalyptic vision of the future.  It revolves around Union City,\n"
+"where selfishness, rivalry, and corruption by its citizens seems to be\n"
+"all too common, those who can afford it live underground, away from\n"
+"the pollution and social problems which are plaguing the city.\n"
+"\n"
+"You take on the role of Robert Foster, an outcast of sorts from the\n"
+"city since a boy who was raised in a remote environment outside of\n"
+"Union City simply termed ``the gap''.  Robert's mother took him away\n"
+"from Union City as a child on their way to ``Hobart'' but the\n"
+"helicopter crashed on its way.  Unfortunately, Robert's mother died,\n"
+"but he survived and was left to be raised by a local tribe from the\n"
+"gap.\n"
+"\n"
+"Years later, Union City security drops by and abducts Robert, killing\n"
+"his tribe in the process; upon reaching the city the helicopter taking\n"
+"him there crashes with him escaping, high upon a tower block in the\n"
+"middle of the city.  He sets out to discover the truth about his past,\n"
+"and to seek vengeance for the killing of his tribe."
+msgstr ""
+
+#: gnu/packages/games.scm:9545
+msgid "Program a little robot and watch it explore a world"
+msgstr ""
+
+#: gnu/packages/games.scm:9547
+msgid ""
+"GNU Robots is a game in which you program a robot to explore a world\n"
+"full of enemies that can hurt it, obstacles and food to be eaten.  The goal of\n"
+"the game is to stay alive and collect prizes.  The robot program conveniently\n"
+"may be written in a plain text file in the Scheme programming language."
+msgstr ""
+
+# FUZZY
+#: gnu/packages/games.scm:9616
+msgid "Toy train simulation game"
+msgstr "Juego de simulación sobre un tren de juguete"
+
+#: gnu/packages/games.scm:9617
+msgid ""
+"Ri-li is a game in which you drive a wooden toy\n"
+"steam locomotive across many levels and collect all the coaches to\n"
+"win."
+msgstr ""
+
+#: gnu/packages/games.scm:9671
+msgid "Turn-based space empire and galactic conquest computer game"
+msgstr "Juego de creación de un imperio espacial y conquista galáctica por turnos"
+
+#: gnu/packages/games.scm:9673
+msgid ""
+"FreeOrion is a turn-based space empire and galactic conquest (4X)\n"
+"computer game being designed and built by the FreeOrion project.  Control an\n"
+"empire with the goal of exploring the galaxy, expanding your territory,\n"
+"exploiting the resources, and exterminating rival alien empires.  FreeOrion is\n"
+"inspired by the tradition of the Master of Orion games, but is not a clone or\n"
+"remake of that series or any other game."
+msgstr ""
+
+#: gnu/packages/games.scm:9727
+msgid "Program playing the game of Go"
+msgstr "Programa para jugar al juego Go"
+
+#: gnu/packages/games.scm:9729
+msgid ""
+"Leela-zero is a Go engine with no human-provided knowledge, modeled after\n"
+"the AlphaGo Zero paper.  The current best network weights file for the engine\n"
+"can be downloaded from @url{https://zero.sjeng.org/best-network}."
+msgstr ""
+
+#: gnu/packages/games.scm:9802
+msgid "Qt GUI to play the game of Go"
+msgstr "Interfaz gráfica QT para jugar al juego Go"
+
+#: gnu/packages/games.scm:9804
+msgid ""
+"This a tool for Go players which performs the following functions:\n"
+"@itemize\n"
+"@item SGF editor,\n"
+"@item Analysis frontend for Leela Zero (or compatible engines),\n"
+"@item GTP interface (to play against an engine),\n"
+"@item IGS client (to play on the internet),\n"
+"@item Export games to a variety of formats.\n"
+"@end itemize"
+msgstr ""
+
+#: gnu/packages/games.scm:9846
+msgid "Stamp drawing toy"
+msgstr ""
+
+#: gnu/packages/games.scm:9847
+msgid ""
+"KTuberling is a drawing toy intended for small children and\n"
+"adults who remain young at heart.  The game has no winner; the only purpose is\n"
+"to make the funniest faces you can.  Several activities are possible, e.g.:\n"
+"\n"
+"@itemize\n"
+"@item Give the potato a funny face, clothes, and other goodies\n"
+"@item Build a small town, complete with school, zoo, and fire department\n"
+"@item Create a fantastic moonscape with spaceships and aliens\n"
+"@item Top a pizza\n"
+"@end itemize\n"
+"\n"
+"KTuberling can speak the name of each the object in several languages,\n"
+"to assist in learning basic vocabulary.\n"
+"\n"
+"This package is part of the KDE games module."
+msgstr ""
+
+#: gnu/packages/games.scm:9893
+msgid "Number logic game"
+msgstr "Juego de lógica numérica"
+
+#: gnu/packages/games.scm:9894
+msgid ""
+"Picmi is a number logic game in which cells in a grid have\n"
+"to be colored or left blank according to numbers given at the side of the\n"
+"grid.  The aim is to reveal a hidden picture.\n"
+"\n"
+"This package is part of the KDE games module."
+msgstr ""
+
+#: gnu/packages/games.scm:9931
+msgid "Miniature golf game"
+msgstr "Juego de golf en miniatura"
+
+#: gnu/packages/games.scm:9932
+msgid ""
+"Kolf is a miniature golf game for one to ten players.  The\n"
+"game is played from an overhead view, with a short bar representing the golf\n"
+"club.  Kolf features many different types of objects, such as water hazards,\n"
+"slopes, sand traps, and black holes (warps), among others.\n"
+"\n"
+"Features are:\n"
+"@itemize\n"
+"@item Single and Multi-player (up to ten players) modes\n"
+"@item High scores table\n"
+"@item Dynamic courses\n"
+"@item Third-party courses\n"
+"@item Course editor\n"
+"@end itemize\n"
+"\n"
+"This package is part of the KDE games module."
+msgstr ""
+
+#: gnu/packages/games.scm:9975
+msgid "Shared library for kmahjongg and kshisen"
+msgstr "Biblioteca compartida por kmahjongg y kshisen"
+
+#: gnu/packages/games.scm:9976
+msgid ""
+"Shared library and common files for kmahjongg, kshisen and\n"
+"other Mah Jongg like games."
+msgstr ""
+
+#: gnu/packages/games.scm:10009
+msgid "Tile laying patience"
+msgstr ""
+
+#: gnu/packages/games.scm:10010
+msgid ""
+"In KMahjongg the tiles are scrambled and staked on top of\n"
+"each other to resemble a certain shape.  The player is then expected to remove\n"
+"all the tiles off the game board by locating each tile's matching pair.\n"
+"\n"
+"A variety of tile layouts are included, as well as an editor to create new\n"
+"layouts.\n"
+"\n"
+"This package is part of the KDE games module."
+msgstr ""
+
+#: gnu/packages/games.scm:10051
+msgid "Shisen-Sho solitaire game"
+msgstr "Juego solitario Shisen-Sho"
+
+#: gnu/packages/games.scm:10052
+msgid ""
+"KShisen is a solitaire-like game played using the standard\n"
+"set of Mahjong tiles.  Unlike Mahjong however, KShisen has only one layer of\n"
+"scrambled tiles\n"
+"\n"
+"This package is part of the KDE games module."
+msgstr ""
+
+#: gnu/packages/games.scm:10089
+msgid "Classical Mah Jongg game for 4 players"
+msgstr "Juego Mah Jongg clásico para 4 participantes"
+
+#: gnu/packages/games.scm:10090
+msgid ""
+"Kajongg is the ancient Chinese board game for 4 players.\n"
+"\n"
+"If you are looking for the Mah Jongg solitaire please use the application\n"
+"kmahjongg.\n"
+"\n"
+"Kajongg can be used in two different ways: Scoring a manual game where you\n"
+"play as always and use Kajongg for the computation of scores and for\n"
+"bookkeeping.  Or you can use Kajongg to play against any combination of other\n"
+"human players or computer players.\n"
+"\n"
+"This package is part of the KDE games module."
+msgstr ""
+
+#: gnu/packages/games.scm:10132
+msgid "Breakout like game"
+msgstr "Juego parecido a Breakout"
+
+#: gnu/packages/games.scm:10133
+msgid ""
+"KBreakout is similar to the classics breakout and xboing,\n"
+"featuring a number of added graphical enhancements and effects.  You control a\n"
+"paddle at the bottom of the playing-field, and must destroy bricks at the top\n"
+"by bouncing balls against them.\n"
+"\n"
+"This package is part of the KDE games module."
+msgstr ""
+
+#: gnu/packages/games.scm:10171
+#, fuzzy
+msgid "Classical mine sweeper game"
+msgstr "Juego buscaminas"
+
+#: gnu/packages/games.scm:10172
+msgid ""
+"KMines is a classic Minesweeper game.  The idea is to\n"
+"uncover all the squares without blowing up any mines.  When a mine is blown\n"
+"up, the game is over.\n"
+"\n"
+"This package is part of the KDE games module."
+msgstr ""
+
+#: gnu/packages/games.scm:10209
+#, fuzzy
+msgid "Simple turn-based strategy game"
+msgstr "Juego estratégico basado en turnos"
+
+#: gnu/packages/games.scm:10210
+msgid ""
+"Konquest is the KDE version of Gnu-Lactic Konquest.  Players\n"
+"conquer other planets by sending ships to them.  The goal is to build an\n"
+"interstellar empire and ultimately conquer all other player's planets.  The\n"
+"game can be played with up to nine empires, commanded either by the computer\n"
+"or by puny earthlings.\n"
+"\n"
+"This package is part of the KDE games module."
+msgstr ""
+
+#: gnu/packages/games.scm:10249
+#, fuzzy
+msgid "Jezzball arcade game"
+msgstr "Juego de pelota y paleta"
+
+#: gnu/packages/games.scm:10250
+msgid ""
+"KBounce is a single player arcade game with the elements of\n"
+"puzzle.  It is played on a field, surrounded by wall, with two or more balls\n"
+"bouncing around within the walls.  The object of the game is to build new\n"
+"walls to decrease the size of the active field.\n"
+"\n"
+"This package is part of the KDE games module."
+msgstr ""
+
+#: gnu/packages/games.scm:10288
+msgid "Single player falling blocks puzzle game"
+msgstr ""
+
+#: gnu/packages/games.scm:10289
+msgid ""
+"KBlocks is the classic Tetris-like falling blocks game.\n"
+"\n"
+"The idea is to stack the falling blocks to create horizontal lines without any\n"
+"gaps.  When a line is completed it is removed, and more space is available in\n"
+"the play area.  When there is not enough space for blocks to fall, the game is\n"
+"over.\n"
+"\n"
+"This package is part of the KDE games module."
+msgstr ""
+
+#: gnu/packages/games.scm:10332
+msgid "Sudoku puzzle game and solver"
+msgstr ""
+
+#: gnu/packages/games.scm:10333
+msgid ""
+"KSudoku is a Sudoku game and solver, supporting a range of\n"
+"2D and 3D Sudoku variants.  In addition to playing Sudoku, it can print Sudoku\n"
+"puzzle sheets and find the solution to any Sudoku puzzle.\n"
+"\n"
+"The word Sudoku means \"single number in an allotted place\" in Japanese.\n"
+"These are the basic rules: Every Sudoku is a square divided into 3x3\n"
+"subsquares with 3x3 cells each.\n"
+"\n"
+"Some cells are filled with a number at the beginning.  The remaining ones are\n"
+"to be filled by the player using numbers from 1 to 9, without repeating a\n"
+"number twice on each column, row or subsquare (each of them must contain only\n"
+"one 1, one 2, one 3, and so on).  The game requires logic and patience.\n"
+"Solving takes usually 10 to 30 minutes, depending on puzzle level, your skill\n"
+"and experience.\n"
+"\n"
+"The numerals in Sudoku puzzles are used for convenience (for example in 16x16\n"
+"board we use letters): arithmetic relationships between numbers are\n"
+"irrelevant.\n"
+"\n"
+"This program supports also 16x16 games with numbers from 1 to 16 and 256\n"
+"cells with 16 cols, rows and subsquares!\n"
+"\n"
+"More information at http://en.wikipedia.org/wiki/Sudoku\n"
+"\n"
+"This package is part of the KDE games module."
+msgstr ""
+
+#: gnu/packages/games.scm:10388
+msgid "Place 5 equal pieces together, but wait, there are 3 new ones"
+msgstr ""
+
+#: gnu/packages/games.scm:10389
+msgid ""
+"KLines is a simple but highly addictive one player game.\n"
+"\n"
+"The player has to move the colored balls around the game board, gathering them\n"
+"into the lines of the same color by five.  Once the line is complete it is\n"
+"removed from the board, therefore freeing precious space.  In the same time\n"
+"the new balls keep arriving by three after each move, filling up the game\n"
+"board.\n"
+"\n"
+"KLines is a single-player game where the player removes colored balls from the\n"
+"board by arranging them into lines of five or more.  However, every time the\n"
+"player moves a ball, three more balls are added to the board.\n"
+"\n"
+"This package is part of the KDE games module."
+msgstr ""
+
+#: gnu/packages/games.scm:10432
+#, fuzzy
+msgid "Action and puzzle solving game"
+msgstr "Juego de puzzles abstractos"
+
+#: gnu/packages/games.scm:10433
+msgid ""
+"KGoldrunner is an action game where the hero runs through a\n"
+"maze, climbs stairs, dig holes and dodges enemies in order to collect all the\n"
+"gold nuggets and escape to the next level.  Your enemies are also after the\n"
+"gold.  Worse still, they are after you!.\n"
+"\n"
+"KGoldrunner is a fast-paced platform game where the player must navigate a\n"
+"maze while collecting gold nuggets and avoiding enemies.  A variety of level\n"
+"packs are included, as well as an editor to create new levels.\n"
+"\n"
+"This package is part of the KDE games module."
+msgstr ""
+
+#: gnu/packages/games.scm:10476
+msgid "Three-in-a-row game"
+msgstr ""
+
+#: gnu/packages/games.scm:10477
+msgid ""
+"KDiamond is a three-in-a-row game like Bejeweled.  It\n"
+"features unlimited fun with randomly generated games and five difficulty\n"
+"levels with varying number of diamond colors and board sizes.\n"
+"\n"
+"This package is part of the KDE games module."
+msgstr ""
+
+#: gnu/packages/games.scm:10514
+msgid "Place 4 pieces in a row"
+msgstr ""
+
+#: gnu/packages/games.scm:10515
+msgid ""
+"KFourInLine is a board game for two players based on the\n"
+"Connect-Four game.\n"
+"\n"
+"KFourInLine is a game where two players take turns dropping pieces into a\n"
+"grid, the winner being the first to place four pieces in a line.\n"
+"\n"
+"This package is part of the KDE games module."
+msgstr ""
+
+#: gnu/packages/games.scm:10554
+msgid "Find atoms in a grid by shooting electrons"
+msgstr ""
+
+#: gnu/packages/games.scm:10555
+msgid ""
+"KBlackbox is a game of hide and seek played on a grid of\n"
+"boxes where the computer has hidden several balls.  The position of the hidden\n"
+"balls can be deduced by shooting beams into the box\n"
+"\n"
+"KBlackBox is a game of hide and seek played on an grid of boxes, where the\n"
+"player shoots rays into the grid to deduce the positions of hidden objects.\n"
+"\n"
+"This package is part of the KDE games module."
+msgstr ""
+
+#: gnu/packages/games.scm:10595
+msgid "Turn the board pieces to get all computers connected"
+msgstr ""
+
+#: gnu/packages/games.scm:10596
+msgid ""
+"KNetWalk is a small game where you have to build up a\n"
+"computer network by rotating the wires to connect the terminals to the server.\n"
+"When the network is build, a highscore-list comes up where competitions can be\n"
+"fought out.\n"
+"\n"
+"KNetwalk is a puzzle game where the player arranges sections of wire to\n"
+"connect all the computers on the board.\n"
+"\n"
+"This package is part of the KDE games module."
+msgstr ""
+
+#: gnu/packages/games.scm:10634
+#, fuzzy
+msgid "Arcade bombing game"
+msgstr "Programación de juegos"
+
+#: gnu/packages/games.scm:10635
+msgid ""
+"Bomber is a single player arcade game.\n"
+"\n"
+"The player is invading various cities in a plane that is decreasing in height.\n"
+"The goal of the game is to destroy all the buildings and advance to the next\n"
+"level.  Each level gets a bit harder by increasing the speed of the plane and\n"
+"the height of the buildings.\n"
+"\n"
+"Bomber is a game where you fly a spaceship and attempt to bomb the buildings\n"
+"below you.  Each pass the spaceship makes, it gets lower and lower.  If you've\n"
+"not destroyed a building in your path, you will crash into it.\n"
+"\n"
+"This package is part of the KDE games module."
+msgstr ""
+
+#: gnu/packages/games.scm:10680
+#, fuzzy
+msgid "Bomberman clone"
+msgstr "Clon de Lemmings"
+
+#: gnu/packages/games.scm:10681
+msgid ""
+"Granatier is a clone of the classic Bomberman game,\n"
+"inspired by the work of the Clanbomber clone.\n"
+"\n"
+"This package is part of the KDE games module."
+msgstr ""
+
+#: gnu/packages/games.scm:10718
+msgid ""
+"Computerized version of the well known strategy board game\n"
+"'Risk'"
+msgstr ""
+
+#: gnu/packages/games.scm:10720
+msgid ""
+"KsirK is a multi-player network-enabled game.  The goal of\n"
+"the game is simply to conquer the world by attacking your neighbors with your\n"
+"armies.\n"
+"\n"
+"At the beginning of the game, countries are distributed to all the players.\n"
+"Each country contains one army represented by an infantryman.  Each player has\n"
+"some armies to distribute to his countries.  On each turn, each player can\n"
+"attack his neighbours, eventually conquering one or more countries.  At the\n"
+"end of each turn, some bonus armies are distributed to the players in function\n"
+"of the number of countries they own.  The winner is the player that conquered\n"
+"all the world.\n"
+"\n"
+"Features:\n"
+"@itemize\n"
+"@item Support for 1-6 human or computer players\n"
+"@item Multi-player gaming over a network\n"
+"@item You can easily create new skins with SVG graphics and the skin editor\n"
+"@item Hot New Stuff support.  You can easily download and install new skins\n"
+"@end itemize\n"
+"\n"
+"This package is part of the KDE games module."
+msgstr ""
+
+#: gnu/packages/games.scm:10780
+#, fuzzy
+msgid "Jigsaw puzzle game"
+msgstr "Juego de puzzle 3D"
+
+#: gnu/packages/games.scm:10781
+msgid ""
+"Palapeli is a jigsaw puzzle game.  Unlike other games in\n"
+"that genre, you are not limited to aligning pieces on imaginary grids.  The\n"
+"pieces are freely moveable.  Also, Palapeli features real persistency, i.e.\n"
+"everything you do is saved on your disk immediately.\n"
+"\n"
+"Palapeli is the Finnish word for jigsaw puzzle.\n"
+"\n"
+"This package is part of the KDE games module."
+msgstr ""
+
+#: gnu/packages/games.scm:10820
+#, fuzzy
+msgid "Yahtzee dice game"
+msgstr "Juego lógico japonés"
+
+#: gnu/packages/games.scm:10821
+msgid ""
+"Kiriki is an addictive and fun dice game, designed to be\n"
+"played by as many as six players.\n"
+"\n"
+"Participants have to collect points by rolling five dice for up to three times\n"
+"per single turn to make combinations with the highest score.\n"
+"\n"
+"This package is part of the KDE games module."
+msgstr ""
+
+#: gnu/packages/games.scm:10861
+#, fuzzy
+msgid "Go board game"
+msgstr "Juegos de cartas solitatias"
+
+#: gnu/packages/games.scm:10862
+msgid ""
+"Kigo is an open-source implementation of the popular Go\n"
+"game.\n"
+"\n"
+"Go is a strategic board game for two players.  It is also known as\n"
+"igo (Japanese), weiqi or wei ch'i (Chinese) or baduk (Korean).  Go is noted\n"
+"for being rich in strategic complexity despite its simple rules.  The game is\n"
+"played by two players who alternately place black and white stones (playing\n"
+"pieces, now usually made of glass or plastic) on the vacant intersections of a\n"
+"grid of 19x19 lines (9x9 or 13x13 for easier games).\n"
+"\n"
+"You also need to install a go engine, e.g. @code{gnugo}.\n"
+"\n"
+"This package is part of the KDE games module."
+msgstr ""
+
+#: gnu/packages/games.scm:10907
+msgid "Game based on Rubik's Cube"
+msgstr ""
+
+#: gnu/packages/games.scm:10908
+msgid ""
+"Kubrick is a game based on the Rubik's Cube puzzle.\n"
+"\n"
+"The cube sizes range from 2x2x2 up to 6x6x6, or you can play with irregular\n"
+"\"bricks\" such as 5x3x2 or \"mats\" such as 6x4x1 or 2x2x1.  The game has a\n"
+"selection of puzzles at several levels of difficulty, as well as demos of\n"
+"pretty patterns and solution moves, or you can make up your own puzzles.  The\n"
+"game has unlimited undo, redo, save and reload capabilities.\n"
+"\n"
+"This package is part of the KDE games module."
+msgstr ""
+
+#: gnu/packages/games.scm:10948
+msgid "Lieutnant Skat card game"
+msgstr ""
+
+#: gnu/packages/games.scm:10949
+msgid ""
+"Lieutnant Skat (from German \"Offiziersskat\") is a fun and\n"
+"engaging card game for two players, where the second player is either live\n"
+"opponent, or a built in artificial intelligence.\n"
+"\n"
+"Lieutnant Skat is a simplified variant of the Skat card game for two players.\n"
+"\n"
+"This package is part of the KDE games module."
+msgstr ""
+
+#: gnu/packages/games.scm:10987
+msgid "Pac-Man clone"
+msgstr ""
+
+#: gnu/packages/games.scm:10988
+msgid ""
+"Kapman is a clone of the well known game Pac-Man.\n"
+"\n"
+"You must run through the maze to eat all pills without being captured by a\n"
+"ghost.  By eating an energizer, Kapman gets the ability to eat ghosts for a\n"
+"few seconds.  When a stage is cleared of pills and energizer the player is\n"
+"taken to the next stage with slightly increased game speed\n"
+"\n"
+"This package is part of the KDE games module."
+msgstr ""
+
+#: gnu/packages/games.scm:11027
+msgid "Two player game with shooting spaceships flying around a sun"
+msgstr ""
+
+#: gnu/packages/games.scm:11028
+msgid ""
+"KSpaceduel is a space battle game for one or two players,\n"
+"where two ships fly around a star in a struggle to be the only survivor.\n"
+"\n"
+"This package is part of the KDE games module."
+msgstr ""
+
+#: gnu/packages/games.scm:11061
+msgid "Classic pen and paper game: five in a line"
+msgstr ""
+
+#: gnu/packages/games.scm:11062
+msgid ""
+"Bovo is a Gomoku (from Japanese 五目並べ - lit.  \"five\n"
+"points\") like game for two players, where the opponents alternate in placing\n"
+"their respective pictogram on the game board.  The winner is the first to\n"
+"complete a line of five markers.  (Also known as: Connect Five, Five in a row,\n"
+"X and O, Naughts and Crosses)\n"
+"\n"
+"This package is part of the KDE games module."
+msgstr ""
+
+#: gnu/packages/games.scm:11100
+#, fuzzy
+msgid "Port of the classic BSD console game robots"
+msgstr "Versión del clásico juego 3D de disparos Doom"
+
+#: gnu/packages/games.scm:11101
+msgid ""
+"Killbots is a simple game of evading killer robots.\n"
+"\n"
+"Who created the robots and why they have been programmed to destroy, no one\n"
+"knows.  All that is known is that the robots are numerous and their sole\n"
+"objective is to destroy you.  Fortunately for you, their creator has focused\n"
+"on quantity rather than quality and as a result the robots are severely\n"
+"lacking in intelligence.  Your superior wit and a fancy teleportation device\n"
+"are your only weapons against the never-ending stream of mindless automatons.\n"
+"\n"
+"This package is part of the KDE games module."
+msgstr ""
+
+#: gnu/packages/games.scm:11143
+msgid "Snake race played against the computer"
+msgstr ""
+
+#: gnu/packages/games.scm:11144
+msgid ""
+"KSnakeDuel is a fast action game where you steer a snake\n"
+"which has to eat food.  While eating the snake grows.  But once a player\n"
+"collides with the other snake or the wall the game is lost.  This becomes of\n"
+"course more and more difficult the longer the snakes grow.\n"
+"\n"
+"This package is part of the KDE games module."
+msgstr ""
+
+#: gnu/packages/games.scm:11180
+#, fuzzy
+msgid "Simple ball dodging game"
+msgstr "Programa simple del control del ventilador"
+
+#: gnu/packages/games.scm:11181
+msgid ""
+"In Kollision you use mouse to control a small blue ball in a\n"
+"closed space environment filled with small red balls, which move about\n"
+"chaotically.  Your goal is to avoid touching any of those red balls with your\n"
+"blue one, because the moment you do the game will be over.  The longer you can\n"
+"stay in game the higher will your score be.\n"
+"\n"
+"This package is part of the KDE games module."
+msgstr ""
+
+#: gnu/packages/games.scm:11221
+msgid "Battleship board game with built-in game server"
+msgstr ""
+
+#: gnu/packages/games.scm:11222
+msgid ""
+"KBattleship is a Battle Ship game for KDE.\n"
+"\n"
+"Ships are placed on a board which represents the sea.  Players try to hit each\n"
+"others ships in turns without knowing where they are placed.  The first player\n"
+"to destroy all ships wins the game.\n"
+"\n"
+"This package is part of the KDE games module."
+msgstr ""
+
+#: gnu/packages/games.scm:11262
+msgid "Old reversi board game, also known as othello"
+msgstr ""
+
+#: gnu/packages/games.scm:11263
+msgid ""
+"KReversi is a simple one player strategy game played\n"
+"against the computer.\n"
+"\n"
+"If a player's piece is captured by an opposing player, that piece is turned\n"
+"over to reveal the color of that player.  A winner is declared when one player\n"
+"has more pieces of his own color on the board and there are no more possible\n"
+"moves.\n"
+"\n"
+"This package is part of the KDE games module."
+msgstr ""
+
+#: gnu/packages/games.scm:11303
+msgid "Dots and Boxes game"
+msgstr ""
+
+#: gnu/packages/games.scm:11304
+msgid ""
+"KSquares is an implementation of the popular paper based\n"
+"game Squares.  Two players take turns connecting dots on a grid to complete\n"
+"squares, the player with the most squares wins.\n"
+"\n"
+"This package is part of the KDE games module."
+msgstr ""
+
+#: gnu/packages/games.scm:11341
+msgid "Simple tactical game for number-crunchers"
+msgstr ""
+
+#: gnu/packages/games.scm:11342
+msgid ""
+"KJumpingcube is a simple tactical game for one or two\n"
+"players, played on a grid of numbered squares.  Each turn, players compete for\n"
+"control of the board by capturing or adding to one square.\n"
+"\n"
+"This package is part of the KDE games module."
+msgstr ""
+
+# FUZZY
+#: gnu/packages/games.scm:11430
+#, fuzzy
+msgid "2D motocross platform game"
+msgstr "Juego de plataformas «retro»"
+
+#: gnu/packages/games.scm:11432
+msgid ""
+"X-Moto is a challenging 2D motocross platform game, where\n"
+"physics play an all important role in the gameplay.  You need to\n"
+"control your bike to its limit, if you want to have a chance finishing\n"
+"the more difficult challenges."
+msgstr ""
+
+#: gnu/packages/games.scm:11478
+#, fuzzy
+msgid "Graphical user interface to play chess"
+msgstr "Interfaz gráfica para programas de ajedrez"
+
+#: gnu/packages/games.scm:11480
+msgid ""
+"Eboard is a chess board interface for ICS (Internet Chess Servers)\n"
+"and chess engines."
+msgstr ""
+
+#: gnu/packages/games.scm:11535
+#, fuzzy
+msgid "Chess game database"
+msgstr "Valor-clave de BD"
+
+#: gnu/packages/games.scm:11537
+msgid ""
+"ChessX is a chess database.  With ChessX you can operate on your\n"
+"collection of chess games in many ways: browse, edit, add, organize, analyze,\n"
+"etc.  You can also play games on FICS or against an engine."
+msgstr ""
+
+#: gnu/packages/games.scm:11587
+#, fuzzy
+msgid "Strong chess engine"
+msgstr "Compresión de cadena"
+
+#: gnu/packages/games.scm:11589
+msgid ""
+"Stockfish is a very strong chess engine.  It is much stronger than the\n"
+"best human chess grandmasters.  It can be used with UCI-compatible GUIs like\n"
+"ChessX."
+msgstr ""
+
+#: gnu/packages/games.scm:11618
+msgid "Violent point-and-click shooting game with nice effects"
+msgstr ""
+
+#: gnu/packages/games.scm:11620
+msgid ""
+"Barrage is a rather destructive action game that puts you on a shooting\n"
+"range with the objective to hit as many dummy targets as possible within\n"
+"3 minutes.  You control a gun that may either fire small or large grenades at\n"
+"soldiers, jeeps and tanks.  The gameplay is simple but it is not that easy to\n"
+"get high scores."
+msgstr ""
+
+#: gnu/packages/games.scm:11644
+msgid "Avoid evil foodstuffs and make burgers"
+msgstr ""
+
+#: gnu/packages/games.scm:11646
+msgid ""
+"This is a clone of the classic game BurgerTime.  In it, you play\n"
+"the part of a chef who must create burgers by stepping repeatedly on\n"
+"the ingredients until they fall into place.  And to make things more\n"
+"complicated, you also must avoid evil animate food items while\n"
+"performing this task, with nothing but your trusty pepper shaker to\n"
+"protect you."
+msgstr ""
+
+#: gnu/packages/games.scm:11676
+msgid "Seven Kingdoms Ancient Adversaries: real-time strategy game"
+msgstr ""
+
+#: gnu/packages/games.scm:11678
+msgid ""
+"Seven Kingdoms, designed by Trevor Chan, brings a blend of Real-Time\n"
+"Strategy with the addition of trade, diplomacy, and espionage.  The game\n"
+"enables players to compete against up to six other kingdoms allowing players\n"
+"to conquer opponents by defeating them in war (with troops or machines),\n"
+"capturing their buildings with spies, or offering opponents money for their\n"
+"kingdom."
+msgstr ""
+
+#: gnu/packages/games.scm:11792
+#, fuzzy
+msgid "3D floor-tilting game"
+msgstr "Juego de carreras de kart 3D"
+
+#: gnu/packages/games.scm:11794
+msgid ""
+"In the grand tradition of Marble Madness and Super Monkey Ball,\n"
+"Neverball has you guide a rolling ball through dangerous territory.  Balance\n"
+"on narrow bridges, navigate mazes, ride moving platforms, and dodge pushers\n"
+"and shovers to get to the goal.  Race against the clock to collect coins to\n"
+"earn extra balls.  Also included is Neverputt, which is a 3D miniature golf\n"
+"game."
+msgstr ""
+
+#: gnu/packages/games.scm:11869
+msgid "Texas holdem poker game"
+msgstr ""
+
+#: gnu/packages/games.scm:11871
+msgid ""
+"With PokerTH you can play the Texas holdem poker game, either against\n"
+"computer opponents or against real players online."
+msgstr ""
+
+#: gnu/packages/games.scm:11906
+msgid "Metroidvania game with vector graphics"
+msgstr ""
+
+#: gnu/packages/games.scm:11908
+msgid ""
+"Pilot your ship inside a planet to find and rescue the colonists trapped\n"
+"inside the Zenith Colony."
+msgstr ""
+
+#: gnu/packages/games.scm:11938
+msgid "High performance X11 animated wallpaper setter"
+msgstr ""
+
+#: gnu/packages/games.scm:11939
+msgid ""
+"High performance animated desktop background setter for\n"
+"X11 that won't set your CPU on fire, drain your laptop battery, or lower video\n"
+"game FPS."
+msgstr ""
+
+#: gnu/packages/gcc.scm:354
 msgid "GNU Compiler Collection"
 msgstr "Colección de compiladores GNU"
 
 # FUZZY
-#: gnu/packages/gcc.scm:350
+#: gnu/packages/gcc.scm:356
 msgid ""
 "GCC is the GNU Compiler Collection.  It provides compiler front-ends\n"
 "for several languages, including C, C++, Objective-C, Fortran, Java, Ada, and\n"
@@ -4879,7 +7106,7 @@ msgstr ""
 "Ada y Go. También incluye bibliotecas de soporte en tiempo de\n"
 "ejecuciñon para dichos lenguajes."
 
-#: gnu/packages/gcc.scm:504
+#: gnu/packages/gcc.scm:541
 msgid ""
 "GCC is the GNU Compiler Collection.  It provides compiler front-ends\n"
 "for several languages, including C, C++, Objective-C, Fortran, Ada, and Go.\n"
@@ -4890,23 +7117,52 @@ msgstr ""
 "Go. También incluye bibliotecas de soporte en tiempo de ejecuciñon\n"
 "para dichos lenguajes."
 
-#: gnu/packages/gcc.scm:549
+#: gnu/packages/gcc.scm:615
 msgid "GNU C++ standard library"
 msgstr "Biblioteca estándar de C++ de GNU"
 
-#: gnu/packages/gcc.scm:584
+#: gnu/packages/gcc.scm:640
+msgid "Headers of GNU libstdc++"
+msgstr ""
+
+#: gnu/packages/gcc.scm:671
 msgid "Collection of subroutines used by various GNU programs"
 msgstr "Collección de subrutinas usadas por varios programas GNU"
 
-#: gnu/packages/gcc.scm:791
+#: gnu/packages/gcc.scm:764
+msgid "GCC library generating machine code on-the-fly at runtime"
+msgstr ""
+
+#: gnu/packages/gcc.scm:766
+msgid ""
+"This package is part of the GNU Compiler Collection and provides an\n"
+"embeddable library for generating machine code on-the-fly at runtime.  This\n"
+"shared library can then be dynamically-linked into bytecode interpreters and\n"
+"other such programs that want to generate machine code on-the-fly at run-time.\n"
+"It can also be used for ahead-of-time code generation for building standalone\n"
+"compilers.  The just-in-time (jit) part of the name is now something of a\n"
+"misnomer."
+msgstr ""
+
+#: gnu/packages/gcc.scm:778
+msgid "Go frontend to GCC"
+msgstr ""
+
+#: gnu/packages/gcc.scm:780
+msgid ""
+"This package is part of the GNU Compiler Collection and\n"
+"provides the GNU compiler for the Go programming language."
+msgstr ""
+
+#: gnu/packages/gcc.scm:879
 msgid "GNU libstdc++ documentation"
 msgstr "Documentación de GNU libstdc++"
 
-#: gnu/packages/gcc.scm:861
+#: gnu/packages/gcc.scm:969
 msgid "Manipulating sets and relations of integer points bounded by linear constraints"
 msgstr ""
 
-#: gnu/packages/gcc.scm:864
+#: gnu/packages/gcc.scm:972
 msgid ""
 "isl is a library for manipulating sets and relations of integer points\n"
 "bounded by linear constraints.  Supported operations on sets include\n"
@@ -4918,11 +7174,11 @@ msgid ""
 "dependence analysis and bounds on piecewise step-polynomials."
 msgstr ""
 
-#: gnu/packages/gcc.scm:928
+#: gnu/packages/gcc.scm:1036
 msgid "Library to generate code for scanning Z-polyhedra"
 msgstr ""
 
-#: gnu/packages/gcc.scm:930
+#: gnu/packages/gcc.scm:1038
 msgid ""
 "CLooG is a free software library to generate code for scanning\n"
 "Z-polyhedra.  That is, it finds a code (e.g., in C, FORTRAN...) that\n"
@@ -4937,11 +7193,11 @@ msgid ""
 "effective code."
 msgstr ""
 
-#: gnu/packages/gcc.scm:985
+#: gnu/packages/gcc.scm:1093
 msgid "Reference manual for the C programming language"
 msgstr "Manual de referencia para el lenguaje de programación C"
 
-#: gnu/packages/gcc.scm:987
+#: gnu/packages/gcc.scm:1095
 msgid ""
 "This is a reference manual for the C programming language, as\n"
 "implemented by the GNU C Compiler (gcc).  As a reference, it is not intended\n"
@@ -4954,11 +7210,11 @@ msgstr ""
 "enumera todas las construcciones del lenguaje. Las funciones de la\n"
 "biblioteca no están incluidas."
 
-#: gnu/packages/gettext.scm:109
+#: gnu/packages/gettext.scm:119
 msgid "Tools and documentation for translation (used to build other packages)"
 msgstr "Herramientas y documentación para traducciones (usadas para construir otros paquetes)"
 
-#: gnu/packages/gettext.scm:111
+#: gnu/packages/gettext.scm:121
 msgid ""
 "GNU Gettext is a package providing a framework for translating the\n"
 "textual output of programs into multiple languages.  It provides translators\n"
@@ -4972,26 +7228,61 @@ msgstr ""
 "mensajes traducidos desde los catálogos. Prácticamente todos los\n"
 "paquetes GNU usan Gettext."
 
-#: gnu/packages/gettext.scm:141
+#: gnu/packages/gettext.scm:153
 msgid "Tools and documentation for translation"
 msgstr "Herramientas y documentación para traducción"
 
-#: gnu/packages/gettext.scm:206
+#: gnu/packages/gettext.scm:178
+#, fuzzy
+msgid "Text styling library"
+msgstr "Biblioteca interpretando HTML5"
+
+#: gnu/packages/gettext.scm:180
+msgid ""
+"GNU libtextstyle is a C library that provides an easy way to add styling\n"
+"to programs that produce output to a console or terminal emulator window.  It\n"
+"allows applications to emit text annotated with styling information, such as\n"
+"color, font attributes (weight, posture), or underlining."
+msgstr ""
+
+#: gnu/packages/gettext.scm:251
 msgid "Scripts to ease maintenance of translations"
 msgstr "Guiones para facilitar el mantenimiento de traducciones"
 
-#: gnu/packages/gettext.scm:208
+#: gnu/packages/gettext.scm:253
 msgid ""
 "The po4a (PO for anything) project goal is to ease translations (and\n"
 "more interestingly, the maintenance of translations) using gettext tools on\n"
 "areas where they were not expected like documentation."
 msgstr ""
 
-#: gnu/packages/gimp.scm:69
+#: gnu/packages/gimp.scm:127
+#, fuzzy
+msgid "2D constrained Delaunay triangulation library"
+msgstr "Biblioteca para procesado y manipulación de CSS2"
+
+#: gnu/packages/gimp.scm:128
+msgid ""
+"Poly2Tri-C is a library for generating, refining and rendering\n"
+"2-Dimensional Constrained Delaunay Triangulations."
+msgstr ""
+
+#: gnu/packages/gimp.scm:159
+msgid "Microraptor GUI"
+msgstr ""
+
+#: gnu/packages/gimp.scm:160
+msgid ""
+"MrG is is a C API for creating user interfaces.  It can be\n"
+"used as an application writing environment or as an interactive canvas for part\n"
+"of a larger interface."
+msgstr ""
+
+#: gnu/packages/gimp.scm:194
 msgid "Image pixel format conversion library"
 msgstr ""
 
-#: gnu/packages/gimp.scm:71
+#: gnu/packages/gimp.scm:196
 msgid ""
 "Babl is a dynamic, any-to-any pixel format translation library.\n"
 "It allows converting between different methods of storing pixels, known as\n"
@@ -5002,22 +7293,22 @@ msgid ""
 "provided, as well as a framework to add new color models and data types."
 msgstr ""
 
-#: gnu/packages/gimp.scm:110
+#: gnu/packages/gimp.scm:242
 msgid "Graph based image processing framework"
 msgstr ""
 
-#: gnu/packages/gimp.scm:111
+#: gnu/packages/gimp.scm:243
 msgid ""
 "GEGL (Generic Graphics Library) provides infrastructure to\n"
 "do demand based cached non destructive image editing on larger than RAM\n"
 "buffers."
 msgstr ""
 
-#: gnu/packages/gimp.scm:180
+#: gnu/packages/gimp.scm:324
 msgid "GNU Image Manipulation Program"
 msgstr "Programa de Manipulación de Imágenes GNU GIMP"
 
-#: gnu/packages/gimp.scm:182
+#: gnu/packages/gimp.scm:326
 msgid ""
 "GIMP is an application for image manipulation tasks such as photo\n"
 "retouching, composition and authoring.  It supports all common image formats\n"
@@ -5025,11 +7316,11 @@ msgid ""
 "that is extensible via a plugin system."
 msgstr ""
 
-#: gnu/packages/gimp.scm:242
+#: gnu/packages/gimp.scm:386
 msgid "GIMP plug-in to edit image in fourier space"
 msgstr "Complemento GIMP para editar imagen en espacio Fourier"
 
-#: gnu/packages/gimp.scm:244
+#: gnu/packages/gimp.scm:388
 msgid ""
 "This package provides a simple plug-in to apply the fourier transform on\n"
 "an image, allowing you to work with the transformed image inside GIMP.  You\n"
@@ -5037,31 +7328,31 @@ msgid ""
 "inverse fourier transform."
 msgstr ""
 
-#: gnu/packages/gimp.scm:272
+#: gnu/packages/gimp.scm:416
 msgid "Artistic brushes library"
 msgstr ""
 
-#: gnu/packages/gimp.scm:273
+#: gnu/packages/gimp.scm:417
 msgid ""
 "Libmypaint, also called \"brushlib\", is a library for making\n"
 "brushstrokes which is used by MyPaint and GIMP."
 msgstr ""
 
-#: gnu/packages/gimp.scm:304
+#: gnu/packages/gimp.scm:439
 msgid "Default brushes for MyPaint"
 msgstr ""
 
-#: gnu/packages/gimp.scm:305
+#: gnu/packages/gimp.scm:440
 msgid ""
 "This package provides the default set of brushes for\n"
 "MyPaint."
 msgstr ""
 
-#: gnu/packages/gimp.scm:366
+#: gnu/packages/gimp.scm:519
 msgid "GIMP plugins for texture synthesis"
-msgstr ""
+msgstr "Módulos de GIMP para síntesis de texturas"
 
-#: gnu/packages/gimp.scm:368
+#: gnu/packages/gimp.scm:521
 msgid ""
 "This package provides resynthesizer plugins for GIMP, which encompasses\n"
 "tools for healing selections (content-aware fill), enlarging the canvas and\n"
@@ -5069,22 +7360,370 @@ msgid ""
 "transferring the style of an image."
 msgstr ""
 
-#: gnu/packages/gnome.scm:221
+#: gnu/packages/gnome.scm:270
+msgid "UPnP IGD for GNOME"
+msgstr ""
+
+#: gnu/packages/gnome.scm:271
+msgid "GUPnP-IGD is a library to handle UPnP IGD port mapping."
+msgstr ""
+
+#: gnu/packages/gnome.scm:325
 msgid "CD/DVD burning tool for Gnome"
-msgstr "Herramienta de quemado CD/DVD para GNOME"
+msgstr "Herramienta de grabación de CD/DVD para Gnome"
 
-#: gnu/packages/gnome.scm:222
+#: gnu/packages/gnome.scm:326
 msgid ""
 "Brasero is an application to burn CD/DVD for the Gnome\n"
 "Desktop.  It is designed to be as simple as possible and has some unique\n"
 "features to enable users to create their discs easily and quickly."
 msgstr ""
+"Brasero es una aplicación de grabación de CD/DVD para el escritorio\n"
+"Gnome. Ha sido diseñada para ser lo más sencilla posible y tiene\n"
+"algunas características únicas que permiten a las usuarias crear sus\n"
+"discos de manera fácil y rápida."
+
+#: gnu/packages/gnome.scm:371
+msgid "Cloudproviders Integration API"
+msgstr ""
+
+#: gnu/packages/gnome.scm:372
+msgid ""
+"Libcloudproviders is a DBus API that allows cloud storage sync\n"
+"clients to expose their services.  Clients such as file managers and desktop\n"
+"environments can then provide integrated access to the cloud providers\n"
+"services."
+msgstr ""
+
+#: gnu/packages/gnome.scm:420
+#, fuzzy
+msgid "Glib library for feeds"
+msgstr "Biblioteca descodificante para ficheros GIF"
+
+#: gnu/packages/gnome.scm:421
+msgid ""
+"LibGRSS is a Glib abstraction to handle feeds in RSS, Atom,\n"
+"and other formats."
+msgstr ""
+
+#: gnu/packages/gnome.scm:448
+msgid "Common JS Modules"
+msgstr "Módulos JS comunes"
+
+#: gnu/packages/gnome.scm:449
+msgid ""
+"GNOME-JS-Common provides common modules for GNOME JavaScript\n"
+"bindings."
+msgstr ""
+"GNOME-JS-Common proporciona módulos comunes del acceso a las\n"
+"bibliotecas de GNOME con Javascript."
+
+#: gnu/packages/gnome.scm:531
+msgid "GObject JavaScriptCore bridge"
+msgstr "Puente GObject para JavaScriptCore"
 
-#: gnu/packages/gnome.scm:297
+#: gnu/packages/gnome.scm:532
+msgid ""
+"Seed is a library and interpreter, dynamically bridging\n"
+"(through GObjectIntrospection) the WebKit JavaScriptCore engine, with the\n"
+"GNOME platform.  It serves as something which enables you to write standalone\n"
+"applications in JavaScript, or easily enable your application to be extensible\n"
+"in JavaScript."
+msgstr ""
+
+#: gnu/packages/gnome.scm:590
+msgid "Media management library"
+msgstr "Biblioteca de gestión de medios"
+
+#: gnu/packages/gnome.scm:591
+msgid ""
+"Libdmapsharing is a library which allows programs to access,\n"
+"share and control the playback of media content using DMAP (DAAP, DPAP & DACP).\n"
+"It is written in C using GObject and libsoup."
+msgstr ""
+
+#: gnu/packages/gnome.scm:625
+msgid "GLib Testing Framework"
+msgstr "Biblioteca para pruebas de Glib"
+
+#: gnu/packages/gnome.scm:626
+msgid ""
+"GTX is a small collection of convenience functions intended to\n"
+"enhance the GLib testing framework.  With specific emphasis on easing the pain\n"
+"of writing test cases for asynchronous interactions."
+msgstr ""
+
+#: gnu/packages/gnome.scm:702
+msgid "Model to synchronize multiple instances over DBus"
+msgstr ""
+
+#: gnu/packages/gnome.scm:703
+msgid ""
+"Dee is a library that uses DBus to provide objects allowing\n"
+"you to create Model-View-Controller type programs across DBus.  It also consists\n"
+"of utility objects which extend DBus allowing for peer-to-peer discoverability\n"
+"of known objects without needing a central registrar."
+msgstr ""
+
+#: gnu/packages/gnome.scm:783
+msgid "Desktop Activity Logging"
+msgstr "Registro de la actividad del escritorio"
+
+#: gnu/packages/gnome.scm:784
+msgid ""
+"Zeitgeist is a service which logs the users’s activities and\n"
+"events, anywhere from files opened to websites visited and conversations.  It\n"
+"makes this information readily available for other applications to use.  It is\n"
+"able to establish relationships between items based on similarity and usage\n"
+"patterns."
+msgstr ""
+
+#: gnu/packages/gnome.scm:859
+msgid "Access, organize and share your photos on GNOME desktop"
+msgstr "Acceso, organización y compartición de sus fotos en el escritorio GNOME"
+
+#: gnu/packages/gnome.scm:860
+msgid ""
+"GNOME Photos is a simple and elegant replacement for using a\n"
+"file manager to deal with photos.  Enhance, crop and edit in a snap.  Seamless\n"
+"cloud integration is offered through GNOME Online Accounts."
+msgstr ""
+
+#: gnu/packages/gnome.scm:921
+msgid "Simple music player for GNOME desktop"
+msgstr "Simple reproductor musical para el escritorio GNOME"
+
+#: gnu/packages/gnome.scm:922
+msgid ""
+"GNOME Music is the new GNOME music playing application that\n"
+"aims to combine an elegant and immersive browsing experience with simple\n"
+"and straightforward controls."
+msgstr ""
+
+#: gnu/packages/gnome.scm:942
+#, fuzzy
+msgid "External Data Representation Library"
+msgstr "Biblioteca abstracta de origen de datos"
+
+#: gnu/packages/gnome.scm:943
+msgid ""
+"PortableXDR is an implementation of External Data\n"
+"Representation (XDR) Library.  It is a standard data serialization format, for\n"
+"uses such as computer network protocols.  It allows data to be transferred\n"
+"between different kinds of computer systems."
+msgstr ""
+
+#: gnu/packages/gnome.scm:980
+msgid "Text editor product line"
+msgstr ""
+
+#: gnu/packages/gnome.scm:981
+msgid ""
+"Tepl is a library that eases the development of\n"
+"GtkSourceView-based text editors and IDEs."
+msgstr ""
+
+#: gnu/packages/gnome.scm:1013
+msgid "Popup dialogs for Kerberos 5"
+msgstr ""
+
+#: gnu/packages/gnome.scm:1014
+msgid ""
+"krb5-auth-dialog is a simple dialog that monitors Kerberos\n"
+"tickets, and pops up a dialog when they are about to expire."
+msgstr ""
+
+#: gnu/packages/gnome.scm:1041
+msgid "Notification Daemon for GNOME Desktop"
+msgstr "Daemon de notificaciones para el escritorio GNOME"
+
+#: gnu/packages/gnome.scm:1042
+msgid ""
+"Notification-Daemon is the server implementation of the\n"
+"freedesktop.org desktop notification specification."
+msgstr ""
+
+#: gnu/packages/gnome.scm:1082
+msgid "Module of GNOME C++ bindings"
+msgstr ""
+
+#: gnu/packages/gnome.scm:1083
+msgid ""
+"The mm-common module provides the build infrastructure\n"
+"and utilities shared among the GNOME C++ binding libraries.  Release\n"
+"archives of mm-common include the Doxygen tag file for the GNU C++\n"
+"Library reference documentation."
+msgstr ""
+
+#: gnu/packages/gnome.scm:1123
+#, fuzzy
+msgid "WebDav server implementation using libsoup"
+msgstr "Paralelismo implementado para gzip"
+
+#: gnu/packages/gnome.scm:1124
+msgid ""
+"PhoDav was initially developed as a file-sharing mechanism for Spice,\n"
+"but it is generic enough to be reused in other projects,\n"
+"in particular in the GNOME desktop."
+msgstr ""
+
+#: gnu/packages/gnome.scm:1176
+#, fuzzy
+msgid "Color profile manager for the GNOME desktop"
+msgstr "Software de gestión de proyectos para el escritorio GNOME"
+
+#: gnu/packages/gnome.scm:1177
+msgid ""
+"GNOME Color Manager is a session framework that makes\n"
+"it easy to manage, install and generate color profiles\n"
+"in the GNOME desktop."
+msgstr ""
+
+#: gnu/packages/gnome.scm:1211
+#, fuzzy
+msgid "Web Crawlers for GNOME"
+msgstr "Explorador web para GNOME"
+
+#: gnu/packages/gnome.scm:1212
+msgid ""
+"GNOME Online Miners provides a set of crawlers that\n"
+"go through your online content and index them locally in Tracker.\n"
+"It has miners for Facebook, Flickr, Google, ownCloud and SkyDrive."
+msgstr ""
+
+#: gnu/packages/gnome.scm:1241
+msgid ""
+"GObject-based API over @acronym{SSDP, Simple Service Discovery\n"
+"Protocol} for GNOME"
+msgstr ""
+
+#: gnu/packages/gnome.scm:1243
+msgid ""
+"This package provides a library to handle resource discovery\n"
+"and announcement over @acronym{SSDP, Simple Service Discovery Protocol} and\n"
+"a debugging tool, @command{gssdp-device-sniffer}."
+msgstr ""
+
+#: gnu/packages/gnome.scm:1273
+msgid "PnP API for GNOME"
+msgstr ""
+
+#: gnu/packages/gnome.scm:1274
+msgid ""
+"This package provides GUPnP, an object-oriented framework\n"
+"for creating UPnP devices and control points, written in C using\n"
+"@code{GObject} and @code{libsoup}."
+msgstr ""
+
+#: gnu/packages/gnome.scm:1307
+msgid "GUPnP DLNA for GNOME"
+msgstr ""
+
+#: gnu/packages/gnome.scm:1308
+msgid ""
+"This package provides a small utility library to\n"
+"support DLNA-related tasks such as media profile guessing, transcoding to a\n"
+"given profile, etc.  DLNA is a subset of UPnP A/V."
+msgstr ""
+
+#: gnu/packages/gnome.scm:1337
+msgid "GUPnP A/V for GNOME"
+msgstr ""
+
+#: gnu/packages/gnome.scm:1338
+msgid ""
+"This package provides a small library for handling\n"
+"and implementation of UPnP A/V profiles."
+msgstr ""
+
+#: gnu/packages/gnome.scm:1365
+#, fuzzy
+msgid "Media art library for the GNOME desktop"
+msgstr "Fondo de imágenes para el escritorio GNOME"
+
+#: gnu/packages/gnome.scm:1367
+msgid ""
+"The libmediaart library is the foundation for media art caching,\n"
+"extraction, and lookup for applications on the desktop."
+msgstr ""
+
+#: gnu/packages/gnome.scm:1430
+#, fuzzy
+msgid "Initial setup wizard for GNOME desktop"
+msgstr "Iconos para el escritorio GNOME."
+
+#: gnu/packages/gnome.scm:1431
+msgid ""
+"This package provides a set-up wizard when a\n"
+"user logs into GNOME for the first time.  It typically provides a\n"
+"tour of all gnome components and allows the user to set them up."
+msgstr ""
+
+#: gnu/packages/gnome.scm:1470
+#, fuzzy
+msgid "File sharing for GNOME desktop"
+msgstr "Gestor de ficheros para GNOME"
+
+#: gnu/packages/gnome.scm:1471
+msgid ""
+"GNOME User Share is a small package that binds together\n"
+"various free software projects to bring easy to use user-level file\n"
+"sharing to the masses."
+msgstr ""
+
+#: gnu/packages/gnome.scm:1525
+#, fuzzy
+msgid "File previewer for the GNOME desktop"
+msgstr "Iconos para el escritorio GNOME."
+
+#: gnu/packages/gnome.scm:1526
+msgid ""
+"Sushi is a DBus-activated service that allows applications to\n"
+"preview files on the GNOME desktop."
+msgstr ""
+
+#: gnu/packages/gnome.scm:1565
+msgid "Share audio, video, and pictures with other devices"
+msgstr ""
+
+#: gnu/packages/gnome.scm:1567
+msgid ""
+"Rygel is a home media solution (@dfn{UPnP AV MediaServer and\n"
+"MediaRenderer}) for GNOME that allows you to easily share audio, video, and\n"
+"pictures, and to control a media player on your home network.\n"
+"\n"
+"Rygel achieves interoperability with other devices by trying to conform to the\n"
+"strict requirements of DLNA and by converting media on-the-fly to formats that\n"
+"client devices can handle."
+msgstr ""
+
+#: gnu/packages/gnome.scm:1619
+msgid "Network Manager's applet library"
+msgstr ""
+
+#: gnu/packages/gnome.scm:1620
+msgid ""
+"Libnma is an applet library for Network Manager.  It was\n"
+"initially part of network-manager-applet and has now become a separate\n"
+"project."
+msgstr ""
+
+#: gnu/packages/gnome.scm:1645
+#, fuzzy
+msgid "Menu support for GNOME desktop"
+msgstr "Iconos para el escritorio GNOME."
+
+#: gnu/packages/gnome.scm:1646
+msgid ""
+"GNOME Menus contains the libgnome-menu library, the layout\n"
+"configuration files for the GNOME menu, as well as a simple menu editor."
+msgstr ""
+
+#: gnu/packages/gnome.scm:1720
 msgid "Simple backup tool, for regular encrypted backups"
 msgstr "Herramienta simple de respaldo, para respaldo cifrado regular"
 
-#: gnu/packages/gnome.scm:299
+#: gnu/packages/gnome.scm:1722
 msgid ""
 "Déjà Dup is a simple backup tool, for regular encrypted backups.  It\n"
 "uses duplicity as the backend, which supports incremental backups and storage\n"
@@ -5094,11 +7733,50 @@ msgstr ""
 "para cifrado.  Utiliza duplicity como el fondo, el cual aporta respaldos incrementales\n"
 "y almacenaje ya sea en un local, o una máquina remota vía un número de métodos."
 
-#: gnu/packages/gnome.scm:346
+#: gnu/packages/gnome.scm:1757
+#, fuzzy
+msgid "Two-pane graphical file manager for the GNOME desktop"
+msgstr "Fondo de imágenes para el escritorio GNOME"
+
+#: gnu/packages/gnome.scm:1759
+msgid ""
+"GNOME Commander is a two-pane graphical file manager using GNOME\n"
+"libraries.  It aims to fulfill the demands of more advanced users who\n"
+"like to focus on file management, their work through special applications\n"
+"and running smart commands."
+msgstr ""
+
+#: gnu/packages/gnome.scm:1783
+#, fuzzy
+msgid "User documentation for the GNOME desktop"
+msgstr "Iconos para el escritorio GNOME."
+
+#: gnu/packages/gnome.scm:1785
+msgid ""
+"The GNOME User Documentation explains how to use the GNOME desktop and its\n"
+"components.  It covers usage and setup of the core GNOME programs by end-users\n"
+"and system administrators."
+msgstr ""
+
+#: gnu/packages/gnome.scm:1809
+#, fuzzy
+msgid "Help to get new users started with the GNOME desktop"
+msgstr "Software de gestión de proyectos para el escritorio GNOME"
+
+#: gnu/packages/gnome.scm:1811
+msgid ""
+"The GNOME Getting Started Documentation contains GNOME's intuitive\n"
+"\"Getting Started\" tour, with video guides, that can be viewed with Yelp.\n"
+"\n"
+"It is normally used together with @command{gnome-initial-setup}, but is also\n"
+"useful as a tutorial and users' guide for new or less experienced users."
+msgstr ""
+
+#: gnu/packages/gnome.scm:1855
 msgid "Diagram creation for GNOME"
 msgstr "Creación de diagrama para GNOME"
 
-#: gnu/packages/gnome.scm:347
+#: gnu/packages/gnome.scm:1856
 msgid ""
 "Dia can be used to draw different types of diagrams, and\n"
 "includes support for UML static structure diagrams (class diagrams), entity\n"
@@ -5106,33 +7784,44 @@ msgid ""
 "formats like PNG, SVG, PDF and EPS."
 msgstr ""
 
-#: gnu/packages/gnome.scm:397
+#: gnu/packages/gnome.scm:1905
 msgid "Library for accessing online service APIs"
 msgstr "Biblioteca para acceso por conexión a varias API de servicio"
 
-#: gnu/packages/gnome.scm:399
+#: gnu/packages/gnome.scm:1907
 msgid ""
 "libgdata is a GLib-based library for accessing online service APIs using\n"
 "the GData protocol — most notably, Google's services.  It provides APIs to\n"
 "access the common Google services, and has full asynchronous support."
 msgstr ""
 
-#: gnu/packages/gnome.scm:432
+#: gnu/packages/gnome.scm:1939
 msgid "GObject-based library for handling and rendering XPS documents"
 msgstr ""
 
-#: gnu/packages/gnome.scm:434
+#: gnu/packages/gnome.scm:1941
 msgid ""
 "libgxps is a GObject-based library for handling and rendering XPS\n"
 "documents.  This package also contains binaries that can convert XPS documents\n"
 "to other formats."
 msgstr ""
 
-#: gnu/packages/gnome.scm:454
+#: gnu/packages/gnome.scm:1984
+msgid "Find and insert unusual characters"
+msgstr ""
+
+#: gnu/packages/gnome.scm:1985
+msgid ""
+"Characters is a simple utility application to find\n"
+"and insert unusual characters.  It allows you to quickly find the\n"
+"character you are looking for by searching for keywords."
+msgstr ""
+
+#: gnu/packages/gnome.scm:2005
 msgid "Bootstrap GNOME modules built from Git"
 msgstr "Módulos GNOME de arranque compilados desde Git"
 
-#: gnu/packages/gnome.scm:455
+#: gnu/packages/gnome.scm:2006
 msgid ""
 "gnome-common contains various files needed to bootstrap\n"
 "GNOME modules built from Git.  It contains a common \"autogen.sh\" script that\n"
@@ -5145,11 +7834,21 @@ msgstr ""
 "fuente comprobado desde Git y empleados algunos normalmente en\n"
 "macros."
 
-#: gnu/packages/gnome.scm:506
+#: gnu/packages/gnome.scm:2065
+msgid "GNOME's integrated address book"
+msgstr ""
+
+#: gnu/packages/gnome.scm:2067
+msgid ""
+"GNOME Contacts organizes your contact information from online and\n"
+"offline sources, providing a centralized place for managing your contacts."
+msgstr ""
+
+#: gnu/packages/gnome.scm:2144
 msgid "Libgnome-desktop, gnome-about, and desktop-wide documents"
 msgstr ""
 
-#: gnu/packages/gnome.scm:508
+#: gnu/packages/gnome.scm:2146
 msgid ""
 "The libgnome-desktop library provides API shared by several applications\n"
 "on the desktop, but that cannot live in the platform for various reasons.\n"
@@ -5159,49 +7858,77 @@ msgid ""
 "The gnome-about program helps find which version of GNOME is installed."
 msgstr ""
 
-#: gnu/packages/gnome.scm:541
+#: gnu/packages/gnome.scm:2179
 msgid "Documentation utilities for the Gnome project"
 msgstr "Utilidades de documentación para el proyecto GNOME"
 
-#: gnu/packages/gnome.scm:543
+#: gnu/packages/gnome.scm:2181
 msgid ""
 "Gnome-doc-utils is a collection of documentation utilities for the\n"
 "Gnome project.  It includes xml2po tool which makes it easier to translate\n"
 "and keep up to date translations of documentation."
 msgstr ""
+"«Gnome-doc-utils» es una colección de utilidades de documentación para\n"
+"el proyecto Gnome. Incluye la herramienta @command{xml2po} que\n"
+"facilita la traducción y mantiene actualizadas las traducciones de la\n"
+"documentación."
 
-#: gnu/packages/gnome.scm:582
+#: gnu/packages/gnome.scm:2230
 msgid "Disk management utility for GNOME"
 msgstr "Utilidad de gestión de disco para GNOME"
 
-#: gnu/packages/gnome.scm:583
+#: gnu/packages/gnome.scm:2231
 msgid "Disk management utility for GNOME."
 msgstr "Utilidad de gestión de disco para GNOME."
 
-#: gnu/packages/gnome.scm:626
-msgid "Libraries for displaying certificates and accessing key stores"
+#: gnu/packages/gnome.scm:2264
+#, fuzzy
+msgid "GNOME Fonts"
+msgstr "Tema de iconos de GNOME"
+
+#: gnu/packages/gnome.scm:2265
+msgid ""
+"Application to show you the fonts installed on your computer\n"
+"for your use as thumbnails.  Selecting any thumbnails shows the full view of how\n"
+"the font would look under various sizes."
 msgstr ""
 
-#: gnu/packages/gnome.scm:628
+#: gnu/packages/gnome.scm:2318
+msgid "Libraries for displaying certificates and accessing key stores"
+msgstr "Bibliotecas para visualización de certificados y acceso a almacenes de claves"
+
+#: gnu/packages/gnome.scm:2320
 msgid ""
 "The GCR package contains libraries used for displaying certificates and\n"
 "accessing key stores.  It also provides the viewer for crypto files on the\n"
 "GNOME Desktop."
 msgstr ""
+"El paquete GCR contiene bibliotecas usadas para la visualización de\n"
+"certificados y el acceso a almacenes de claves. También se usa para la\n"
+"visualización de ficheros cifrados en el escritorio GNOME."
 
-#: gnu/packages/gnome.scm:657
+#: gnu/packages/gnome.scm:2358
+#, fuzzy
+msgid "GNOME docking library"
+msgstr "Biblioteca de notificación de escritorio GNOME"
+
+#: gnu/packages/gnome.scm:2359
+msgid "This library provides docking features for gtk+."
+msgstr ""
+
+#: gnu/packages/gnome.scm:2406
 msgid "Accessing passwords from the GNOME keyring"
-msgstr "Accediendo contraseña desde el anillo GNOME"
+msgstr "Acceso a contraseñas del anillo de claves de GNOME"
 
-#: gnu/packages/gnome.scm:659
+#: gnu/packages/gnome.scm:2408
 msgid "Client library to access passwords from the GNOME keyring."
-msgstr ""
+msgstr "Biblioteca para el acceso de clientes a contraseñas del anillo de claves de GNOME."
 
-#: gnu/packages/gnome.scm:729
+#: gnu/packages/gnome.scm:2478
 msgid "Daemon to store passwords and encryption keys"
-msgstr ""
+msgstr "Daemon para el almacenamiento de contraseñas y claves de cifrado"
 
-#: gnu/packages/gnome.scm:731
+#: gnu/packages/gnome.scm:2480
 msgid ""
 "gnome-keyring is a program that keeps passwords and other secrets for\n"
 "users.  It is run as a daemon in the session, similar to ssh-agent, and other\n"
@@ -5211,63 +7938,114 @@ msgid ""
 "and there is also a session keyring which is never stored to disk, but\n"
 "forgotten when the session ends."
 msgstr ""
+"@command{gnome-keyring} es un programa que gestiona las contraseñas y\n"
+"otros secretos para las usuarias.  Se ejecuta como daemon en la\n"
+"sesión, de manera similar a ssh-agent, y otras aplicaciones pueden\n"
+"encontrarlo a través de las variables de entorno o de D-Bus.\n"
+"\n"
+"El programa puede gestionar vario anillos de claves, cada uno con su\n"
+"contraseña principal, y también existe un anillo de claves de la\n"
+"sesión, el cual nunca se almacena en disco sino que se olvida tras\n"
+"terminar la sesión."
 
-#: gnu/packages/gnome.scm:805
+#: gnu/packages/gnome.scm:2551
 msgid "GNOME's document viewer"
 msgstr "Visor documental de GNOME"
 
-#: gnu/packages/gnome.scm:807
+#: gnu/packages/gnome.scm:2553
 msgid ""
 "Evince is a document viewer for multiple document formats.  It\n"
 "currently supports PDF, PostScript, DjVu, TIFF and DVI.  The goal\n"
 "of Evince is to replace the multiple document viewers that exist\n"
 "on the GNOME Desktop with a single simple application."
 msgstr ""
+"Evince es un visor de documentos para múltiples formatos. Actualmente\n"
+"implementa PDF, PostScript, DjVu, TIFF y DVI. El objetivo de Evince es\n"
+"sustituir a los múltiples visores de documentos ya existentes en el\n"
+"escritorio GNOME con una única y simple aplicación."
 
-#: gnu/packages/gnome.scm:836
+#: gnu/packages/gnome.scm:2597
 msgid "GNOME settings for various desktop components"
-msgstr ""
+msgstr "Configuración de GNOME para varios componentes del escritorio"
 
-#: gnu/packages/gnome.scm:838
+#: gnu/packages/gnome.scm:2599
 msgid ""
 "Gsettings-desktop-schemas contains a collection of GSettings schemas\n"
 "for settings shared by various components of the GNOME desktop."
 msgstr ""
+"Gsettings-desktop-schemas contiene una colección de esquemas de\n"
+"configuración GSettings compartidos por varios componentes del\n"
+"escritorio GNOME."
 
-#: gnu/packages/gnome.scm:872
-msgid "Utility to implement the Freedesktop Icon Naming Specification"
+#: gnu/packages/gnome.scm:2633
+#, fuzzy
+msgid "Library to easily handle complex data structures"
+msgstr "Volcado parcial de estructuras de datos"
+
+#: gnu/packages/gnome.scm:2635
+msgid ""
+"Liblarch is a Python library built to easily handle data structures such\n"
+"as lists, trees and acyclic graphs.  There's also a GTK binding that will\n"
+"allow you to use your data structure in a @code{Gtk.Treeview}.\n"
+"\n"
+"Liblarch support multiple views of one data structure and complex filtering.\n"
+"That way, you have a clear separation between your data themselves (Model)\n"
+"and how they are displayed (View)."
+msgstr ""
+
+#: gnu/packages/gnome.scm:2691
+#, fuzzy
+msgid "Personal organizer for the GNOME desktop"
+msgstr "Fondo de imágenes para el escritorio GNOME"
+
+#: gnu/packages/gnome.scm:2693
+msgid ""
+"Getting Things GNOME! (GTG) is a personal tasks and TODO list items\n"
+"organizer for the GNOME desktop environment inspired by the Getting Things\n"
+"Done (GTD) methodology.  GTG is designed with flexibility, adaptability,\n"
+"and ease of use in mind so it can be used as more than just GTD software.\n"
+"GTG is intended to help you track everything you need to do and need to\n"
+"know, from small tasks to large projects."
 msgstr ""
 
-#: gnu/packages/gnome.scm:874
+#: gnu/packages/gnome.scm:2731
+msgid "Utility to implement the Freedesktop Icon Naming Specification"
+msgstr "Herramienta para implementar la especificación de nombrado de iconos de Freedesktop"
+
+#: gnu/packages/gnome.scm:2733
 msgid ""
 "To help with the transition to the Freedesktop Icon Naming\n"
 "Specification, the icon naming utility maps the icon names used by the\n"
 "GNOME and KDE desktops to the icon names proposed in the specification."
 msgstr ""
+"Para ayudar con la transición a la especificación de nombrado de\n"
+"iconos de Freedesktop, la herramienta de nombrado de iconos asocia los\n"
+"nombres de icono usados en los escritorios GNOME y KDE con los nombres\n"
+"propuestos en la especificación."
 
-#: gnu/packages/gnome.scm:905
+#: gnu/packages/gnome.scm:2763
 msgid "GNOME icon theme"
-msgstr "Tema icónico GNOME"
+msgstr "Tema de iconos de GNOME"
 
-#: gnu/packages/gnome.scm:907
+#: gnu/packages/gnome.scm:2764
 msgid "Icons for the GNOME desktop."
 msgstr "Iconos para el escritorio GNOME."
 
-#: gnu/packages/gnome.scm:944
+#: gnu/packages/gnome.scm:2801
 msgid "Tango icon theme"
-msgstr "Tema icónico Tango"
+msgstr "Tema de iconos Tango"
 
-#: gnu/packages/gnome.scm:945
+#: gnu/packages/gnome.scm:2802
 msgid ""
 "This is an icon theme that follows the Tango visual\n"
 "guidelines."
-msgstr ""
+msgstr "Tema de iconos que sigue las guías de estilo visual Tango."
 
-#: gnu/packages/gnome.scm:971
+#: gnu/packages/gnome.scm:2831
 msgid "Database of common MIME types"
-msgstr "BD de tipo MIME común"
+msgstr "Base de datos para tipos MIME comunes"
 
-#: gnu/packages/gnome.scm:973
+#: gnu/packages/gnome.scm:2833
 msgid ""
 "The shared-mime-info package contains the core database of common types\n"
 "and the update-mime-database command used to extend it.  It requires glib2 to\n"
@@ -5275,33 +8053,44 @@ msgid ""
 "for translations, though this is only a dependency for the maintainers.  This\n"
 "database is translated at Transifex."
 msgstr ""
+"El paquete shared-mime-info contiene la base de datos principal de\n"
+"tipos comunes y la orden @command{update-mime-database} usada para\n"
+"extenderla. Necesita que se haya instalado glib2 para construir el\n"
+"ejecutable de actualización. De manera adicional, usa intltool para\n"
+"las traducciones, aunque esta es una dependencia unicamente para\n"
+"quienes mantienen el proyecto. Esta base de datos se traduce en\n"
+"Transifex."
 
-#: gnu/packages/gnome.scm:1055
-#, fuzzy
-#| msgid "Yelp documentation tools"
+#: gnu/packages/gnome.scm:2916
 msgid "CUPS administration tool"
-msgstr "Herramientas documentales Yelp"
+msgstr "Herramienta de administración de CUPS"
 
-#: gnu/packages/gnome.scm:1057
+#: gnu/packages/gnome.scm:2918
 msgid ""
 "system-config-printer is a CUPS administration tool.  It's written in\n"
 "Python using GTK+, and uses the @acronym{IPP, Internet Printing Protocol} when\n"
 "configuring CUPS."
 msgstr ""
+"system-config-printer es una herramienta de administración de\n"
+"CUPS. Está escrita en Python usando GTK+, y usa el protocolo de\n"
+"impresión de internet @acronym{IPP, Internet Printing Protocol} para\n"
+"configurar CUPS."
 
-#: gnu/packages/gnome.scm:1079
+# FUZZY
+#: gnu/packages/gnome.scm:2940
 msgid "Freedesktop icon theme"
-msgstr "Tema icónico Freedesktop"
+msgstr "Tema de iconos de Freedesktop"
 
-#: gnu/packages/gnome.scm:1081
+# FUZZY
+#: gnu/packages/gnome.scm:2942
 msgid "Freedesktop icon theme."
-msgstr "Tema icónico Freedesktop."
+msgstr "Tema de iconos Freedesktop."
 
-#: gnu/packages/gnome.scm:1109
+#: gnu/packages/gnome.scm:2974
 msgid "GNOME desktop notification library"
 msgstr "Biblioteca de notificación de escritorio GNOME"
 
-#: gnu/packages/gnome.scm:1111
+#: gnu/packages/gnome.scm:2976
 msgid ""
 "Libnotify is a library that sends desktop notifications to a\n"
 "notification daemon, as defined in the Desktop Notifications spec.  These\n"
@@ -5309,11 +8098,11 @@ msgid ""
 "some form of information without getting in the user's way."
 msgstr ""
 
-#: gnu/packages/gnome.scm:1145
+#: gnu/packages/gnome.scm:3022
 msgid "GObject plugin system"
-msgstr "Complemento GObject sistema"
+msgstr "Sistema de módulos basado en GObject"
 
-#: gnu/packages/gnome.scm:1147
+#: gnu/packages/gnome.scm:3024
 msgid ""
 "Libpeas is a gobject-based plugin engine, targeted at giving every\n"
 "application the chance to assume its own extensibility.  It also has a set of\n"
@@ -5322,33 +8111,33 @@ msgid ""
 "API."
 msgstr ""
 
-#: gnu/packages/gnome.scm:1186
+#: gnu/packages/gnome.scm:3063
 msgid "OpenGL extension to GTK+"
 msgstr "Extensión OpenGL para GTK+"
 
-#: gnu/packages/gnome.scm:1187
+#: gnu/packages/gnome.scm:3064
 msgid ""
 "GtkGLExt is an OpenGL extension to GTK+.  It provides\n"
 "additional GDK objects which support OpenGL rendering in GTK+ and GtkWidget\n"
 "API add-ons to make GTK+ widgets OpenGL-capable."
 msgstr ""
 
-#: gnu/packages/gnome.scm:1230
+#: gnu/packages/gnome.scm:3115
 msgid "GTK+ rapid application development tool"
-msgstr "Herramienta de desarrollo de aplicación rápida en GTK+"
+msgstr "Herramienta para desarrollo rápido de aplicaciones con GTK+"
 
-#: gnu/packages/gnome.scm:1231
+#: gnu/packages/gnome.scm:3116
 msgid ""
 "Glade is a rapid application development (RAD) tool to\n"
 "enable quick & easy development of user interfaces for the GTK+ toolkit and\n"
 "the GNOME desktop environment."
 msgstr ""
 
-#: gnu/packages/gnome.scm:1259
+#: gnu/packages/gnome.scm:3147
 msgid "CSS2 parsing and manipulation library"
-msgstr "Biblioteca interpretando CSS2 y manipulación"
+msgstr "Biblioteca para procesado y manipulación de CSS2"
 
-#: gnu/packages/gnome.scm:1261
+#: gnu/packages/gnome.scm:3149
 msgid ""
 "Libcroco is a standalone CSS2 parsing and manipulation library.\n"
 "The parser provides a low level event driven SAC-like API and a CSS object\n"
@@ -5356,31 +8145,44 @@ msgid ""
 "XML/CSS rendering engine."
 msgstr ""
 
-#: gnu/packages/gnome.scm:1294
+#: gnu/packages/gnome.scm:3187
 msgid "GNOME's Structured File Library"
 msgstr "Biblioteca de Fichero Estructurado de GNOME"
 
-#: gnu/packages/gnome.scm:1296
+#: gnu/packages/gnome.scm:3189
 msgid ""
 "Libgsf aims to provide an efficient extensible I/O abstraction for\n"
 "dealing with different structured file formats."
 msgstr ""
 
-#: gnu/packages/gnome.scm:1361
+#: gnu/packages/gnome.scm:3257
 msgid "Render SVG files using Cairo"
 msgstr "Renderiza ficheros SVG utilizando Cairo"
 
-#: gnu/packages/gnome.scm:1363
+#: gnu/packages/gnome.scm:3259
 msgid ""
 "Librsvg is a C library to render SVG files using the Cairo 2D graphics\n"
 "library."
 msgstr ""
 
-#: gnu/packages/gnome.scm:1387
+#: gnu/packages/gnome.scm:3438
+#, fuzzy
+msgid "SVG rendering library"
+msgstr "Biblioteca renderizadora de PDF"
+
+#: gnu/packages/gnome.scm:3439
+msgid ""
+"Librsvg is a library to render SVG images to Cairo surfaces.\n"
+"GNOME uses this to render SVG icons.  Outside of GNOME, other desktop\n"
+"environments use it for similar purposes.  Wikimedia uses it for Wikipedia's SVG\n"
+"diagrams."
+msgstr ""
+
+#: gnu/packages/gnome.scm:3465
 msgid "Create trees of CORBA Interface Definition Language files"
 msgstr ""
 
-#: gnu/packages/gnome.scm:1388
+#: gnu/packages/gnome.scm:3466
 msgid ""
 "Libidl is a library for creating trees of CORBA Interface\n"
 "Definition Language (idl) files, which is a specification for defining\n"
@@ -5389,124 +8191,127 @@ msgid ""
 "functionality was designed to be as reusable and portable as possible."
 msgstr ""
 
-#: gnu/packages/gnome.scm:1432
+#: gnu/packages/gnome.scm:3513
 msgid "CORBA 2.4-compliant Object Request Broker"
 msgstr ""
 
-#: gnu/packages/gnome.scm:1433
+#: gnu/packages/gnome.scm:3514
 msgid ""
 "ORBit2 is a CORBA 2.4-compliant Object Request Broker (orb)\n"
 "featuring mature C, C++ and Python bindings."
 msgstr ""
 
-#: gnu/packages/gnome.scm:1488
+#: gnu/packages/gnome.scm:3569
 msgid "Framework for creating reusable components for use in GNOME applications"
 msgstr ""
 
-#: gnu/packages/gnome.scm:1489
+#: gnu/packages/gnome.scm:3570
 msgid ""
 "Bonobo is a framework for creating reusable components for\n"
 "use in GNOME applications, built on top of CORBA."
 msgstr ""
 
-#: gnu/packages/gnome.scm:1520
+#: gnu/packages/gnome.scm:3601
 msgid "Store application preferences"
-msgstr "Almacena preferencias de aplicación"
+msgstr "Almacenamiento de preferencias de aplicaciones"
 
-#: gnu/packages/gnome.scm:1521
+#: gnu/packages/gnome.scm:3602
 msgid ""
 "Gconf is a system for storing application preferences.  It\n"
 "is intended for user preferences; not arbitrary data storage."
 msgstr ""
+"Gconf es un sistema para el almacenamiento de preferencias de\n"
+"aplicaciones. Está pensado para las preferencias de cada usuaria; no\n"
+"para el almacenamiento arbitrario de datos."
 
-#: gnu/packages/gnome.scm:1555
+#: gnu/packages/gnome.scm:3636
 msgid "Base MIME and Application database for GNOME"
 msgstr "Base MIME y base de datos de Aplicación para GNOME"
 
-#: gnu/packages/gnome.scm:1556
+#: gnu/packages/gnome.scm:3637
 msgid ""
 "GNOME Mime Data is a module which contains the base MIME\n"
 "and Application database for GNOME.  The data stored by this module is\n"
 "designed to be accessed through the MIME functions in GnomeVFS."
 msgstr ""
 
-#: gnu/packages/gnome.scm:1599
+#: gnu/packages/gnome.scm:3680
 msgid "Access files and folders in GNOME applications"
 msgstr "Fichero de acceso y carpetas en aplicaciones GNOME"
 
-#: gnu/packages/gnome.scm:1601
+#: gnu/packages/gnome.scm:3682
 msgid ""
 "GnomeVFS is the core library used to access files and folders in GNOME\n"
 "applications.  It provides a file system abstraction which allows applications\n"
 "to access local and remote files with a single consistent API."
 msgstr ""
 
-#: gnu/packages/gnome.scm:1646
+#: gnu/packages/gnome.scm:3727
 msgid "Useful routines for building applications"
 msgstr ""
 
-#: gnu/packages/gnome.scm:1647
+#: gnu/packages/gnome.scm:3728
 msgid ""
 "The libgnome library provides a number of useful routines\n"
 "for building modern applications, including session management, activation of\n"
 "files and URIs, and displaying help."
 msgstr ""
 
-#: gnu/packages/gnome.scm:1670
+#: gnu/packages/gnome.scm:3751
 msgid "2D drawing library"
 msgstr "Biblioteca de dibujo 2D"
 
-#: gnu/packages/gnome.scm:1671
+#: gnu/packages/gnome.scm:3752
 msgid ""
 "Libart is a 2D drawing library intended as a\n"
 "high-quality vector-based 2D library with antialiasing and alpha composition."
 msgstr ""
 
-#: gnu/packages/gnome.scm:1698
+#: gnu/packages/gnome.scm:3779
 msgid "Flexible widget for creating interactive structured graphics"
 msgstr ""
 
-#: gnu/packages/gnome.scm:1699
+#: gnu/packages/gnome.scm:3780
 msgid ""
 "The GnomeCanvas widget provides a flexible widget for\n"
 "creating interactive structured graphics."
 msgstr ""
 
-#: gnu/packages/gnome.scm:1723
+#: gnu/packages/gnome.scm:3802
 msgid "C++ bindings to the GNOME Canvas library"
 msgstr ""
 
-#: gnu/packages/gnome.scm:1724
+#: gnu/packages/gnome.scm:3803
 msgid "C++ bindings to the GNOME Canvas library."
 msgstr ""
 
-#: gnu/packages/gnome.scm:1756
+#: gnu/packages/gnome.scm:3835
 msgid "Additional widgets for applications"
 msgstr "Widgets adicional para aplicaciones"
 
-#: gnu/packages/gnome.scm:1757
+#: gnu/packages/gnome.scm:3836
 msgid ""
 "The libgnomeui library provides additional widgets for\n"
 "applications.  Many of the widgets from libgnomeui have already been\n"
 "ported to GTK+."
 msgstr ""
 
-#: gnu/packages/gnome.scm:1783
+#: gnu/packages/gnome.scm:3862
 msgid "Load glade interfaces and access the glade built widgets"
 msgstr ""
 
-#: gnu/packages/gnome.scm:1784
+#: gnu/packages/gnome.scm:3863
 msgid ""
 "Libglade is a library that provides interfaces for loading\n"
 "graphical interfaces described in glade files and for accessing the\n"
 "widgets built in the loading process."
 msgstr ""
 
-#: gnu/packages/gnome.scm:1814 gnu/packages/gnome.scm:1846
+#: gnu/packages/gnome.scm:3893 gnu/packages/gnome.scm:3925
 msgid "Printing framework for GNOME"
 msgstr "Impresión para marco de trabajo de GNOME"
 
-#: gnu/packages/gnome.scm:1816
+#: gnu/packages/gnome.scm:3895
 msgid ""
 "GNOME-print was a printing framework for GNOME.  It has been deprecated\n"
 "since ca. 2006, when GTK+ itself incorporated printing support."
@@ -5514,21 +8319,21 @@ msgstr ""
 "GNOME-print fue un marco referencial de impresión para GNOME.  Ha sido obsoleto\n"
 "desde el 2006, cuando el mismo GTK+ incorpora apoyo de impresión."
 
-#: gnu/packages/gnome.scm:1890
+#: gnu/packages/gnome.scm:3969
 msgid "Some user interface controls using Bonobo"
 msgstr ""
 
-#: gnu/packages/gnome.scm:1891
+#: gnu/packages/gnome.scm:3970
 msgid ""
 "The Bonobo UI library provides a number of user interface\n"
 "controls using the Bonobo component framework."
 msgstr ""
 
-#: gnu/packages/gnome.scm:1916
+#: gnu/packages/gnome.scm:3997
 msgid "Window Navigator Construction Kit"
 msgstr ""
 
-#: gnu/packages/gnome.scm:1918
+#: gnu/packages/gnome.scm:3999
 msgid ""
 "Libwnck is the Window Navigator Construction Kit, a library for use in\n"
 "writing pagers, tasklists, and more generally applications that are dealing\n"
@@ -5536,19 +8341,19 @@ msgid ""
 "Hints specification (EWMH)."
 msgstr ""
 
-#: gnu/packages/gnome.scm:1971
+#: gnu/packages/gnome.scm:4056
 msgid "Document-centric objects and utilities"
 msgstr "Objeto documental céntrico y utilidades"
 
-#: gnu/packages/gnome.scm:1972
+#: gnu/packages/gnome.scm:4057
 msgid "A GLib/GTK+ set of document-centric objects and utilities."
 msgstr "Un conjunto GLib/GTK+ de objetos y utilidades documentales-centrados."
 
-#: gnu/packages/gnome.scm:2056
+#: gnu/packages/gnome.scm:4141
 msgid "Spreadsheet application"
 msgstr "Aplicación de hojas de cálculo"
 
-#: gnu/packages/gnome.scm:2058
+#: gnu/packages/gnome.scm:4143
 msgid ""
 "GNUmeric is a GNU spreadsheet application, running under GNOME.  It is\n"
 "interoperable with other spreadsheet applications.  It has a vast array of\n"
@@ -5557,29 +8362,29 @@ msgid ""
 "engineering."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2098
+#: gnu/packages/gnome.scm:4183
 msgid "Default GNOME 3 themes"
 msgstr "Temas de GNOME 3 predeterminado"
 
-#: gnu/packages/gnome.scm:2100
+#: gnu/packages/gnome.scm:4185
 msgid "The default GNOME 3 themes (Adwaita and some accessibility themes)."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2133
+#: gnu/packages/gnome.scm:4231
 msgid "Manage encryption keys and passwords in the GNOME keyring"
 msgstr ""
 
-#: gnu/packages/gnome.scm:2135
+#: gnu/packages/gnome.scm:4233
 msgid ""
 "Seahorse is a GNOME application for managing encryption keys and\n"
 "passwords in the GNOME keyring."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2178 gnu/packages/gnome.scm:2411
+#: gnu/packages/gnome.scm:4274 gnu/packages/gnome.scm:4502
 msgid "Compiler for the GObject type system"
 msgstr "Compilador para el sistema tipado GObject"
 
-#: gnu/packages/gnome.scm:2180
+#: gnu/packages/gnome.scm:4276
 msgid ""
 "Vala is a programming language that aims to bring modern programming\n"
 "language features to GNOME developers without imposing any additional runtime\n"
@@ -5587,11 +8392,11 @@ msgid ""
 "libraries written in C."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2212
+#: gnu/packages/gnome.scm:4325
 msgid "Virtual Terminal Emulator"
 msgstr "Emulador de Terminal Virtual"
 
-#: gnu/packages/gnome.scm:2214
+#: gnu/packages/gnome.scm:4327
 msgid ""
 "VTE is a library (libvte) implementing a terminal emulator widget for\n"
 "GTK+, and a minimal sample application (vte) using that.  Vte is mainly used in\n"
@@ -5599,39 +8404,39 @@ msgid ""
 "editors, IDEs, etc."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2246
+#: gnu/packages/gnome.scm:4352
 msgid "Enhanced VTE terminal widget"
 msgstr ""
 
-#: gnu/packages/gnome.scm:2248
+#: gnu/packages/gnome.scm:4354
 msgid ""
 "VTE is a library (libvte) implementing a terminal emulator widget for\n"
 "GTK+, this fork provides additional functions exposed for keyboard text\n"
 "selection and URL hints."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2344
+#: gnu/packages/gnome.scm:4433
 msgid "Remote desktop viewer for GNOME"
 msgstr "Visor de escritorio remoto para GNOME"
 
-#: gnu/packages/gnome.scm:2345
+#: gnu/packages/gnome.scm:4434
 msgid ""
 "Vinagre is a remote display client supporting the VNC, SPICE\n"
 "and RDP protocols."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2384
+#: gnu/packages/gnome.scm:4475
 msgid "Low-level GNOME configuration system"
 msgstr ""
 
-#: gnu/packages/gnome.scm:2385
+#: gnu/packages/gnome.scm:4476
 msgid ""
 "Dconf is a low-level configuration system.  Its main purpose\n"
 "is to provide a backend to GSettings on platforms that don't already have\n"
 "configuration storage systems."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2413
+#: gnu/packages/gnome.scm:4504
 msgid ""
 "JSON-GLib is a C library based on GLib providing serialization and\n"
 "deserialization support for the JavaScript Object Notation (JSON) format\n"
@@ -5640,11 +8445,11 @@ msgid ""
 "and objects."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2452
+#: gnu/packages/gnome.scm:4553
 msgid "High-level API for X Keyboard Extension"
 msgstr ""
 
-#: gnu/packages/gnome.scm:2454
+#: gnu/packages/gnome.scm:4555
 msgid ""
 "LibXklavier is a library providing high-level API for X Keyboard\n"
 "Extension known as XKB.  This library is intended to support XFree86 and other\n"
@@ -5652,58 +8457,61 @@ msgid ""
 "indicators etc)."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2482
+#: gnu/packages/gnome.scm:4583
 msgid "Python bindings to librsvg"
 msgstr "Enlazando Python para librsvg"
 
-#: gnu/packages/gnome.scm:2484
+#: gnu/packages/gnome.scm:4585
+#, fuzzy
 msgid ""
-"This packages provides Python bindings to librsvg, the SVG rendering\n"
+"This package provides Python bindings to librsvg, the SVG rendering\n"
 "library."
 msgstr ""
+"Este paquete proporciona un diccionario para la biblioteca de\n"
+"comprobación ortográfica Hunspell."
 
-#: gnu/packages/gnome.scm:2523
+#: gnu/packages/gnome.scm:4615
 msgid "Network-related GIO modules"
 msgstr ""
 
-#: gnu/packages/gnome.scm:2525
+#: gnu/packages/gnome.scm:4617
 msgid ""
 "This package contains various network related extensions for the GIO\n"
 "library."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2556
+#: gnu/packages/gnome.scm:4648
 msgid "RESTful web api query library"
 msgstr ""
 
-#: gnu/packages/gnome.scm:2558
+#: gnu/packages/gnome.scm:4650
 msgid ""
 "This library was designed to make it easier to access web services that\n"
 "claim to be \"RESTful\".  It includes convenience wrappers for libsoup and\n"
 "libxml to ease remote use of the RESTful API."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2668
+#: gnu/packages/gnome.scm:4771
 msgid "GLib-based HTTP Library"
 msgstr "Biblioteca HTTP basada en GLib"
 
-#: gnu/packages/gnome.scm:2670
+#: gnu/packages/gnome.scm:4773
 msgid ""
 "LibSoup is an HTTP client/server library for GNOME.  It uses GObjects\n"
 "and the GLib main loop, to integrate well with GNOME applications."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2716
+#: gnu/packages/gnome.scm:4837
 msgid "GObject bindings for \"Secret Service\" API"
 msgstr "Enlazando GObject para API «Servicio Secreto»"
 
-#: gnu/packages/gnome.scm:2718
+#: gnu/packages/gnome.scm:4839
 msgid ""
 "Libsecret is a GObject based library for storing and retrieving passwords\n"
 "and other secrets.  It communicates with the \"Secret Service\" using DBus."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2747
+#: gnu/packages/gnome.scm:4880
 msgid ""
 "Five or More is a game where you try to align\n"
 " five or more objects of the same color and shape causing them to disappear.\n"
@@ -5711,21 +8519,31 @@ msgid ""
 " Try to last as long as possible."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2785
+#: gnu/packages/gnome.scm:4922
 msgid "Minesweeper game"
 msgstr "Juego buscaminas"
 
-#: gnu/packages/gnome.scm:2787
+#: gnu/packages/gnome.scm:4924
 msgid ""
 "Mines (previously gnomine) is a puzzle game where you locate mines\n"
 "floating in an ocean using only your brain and a little bit of luck."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2818
+#: gnu/packages/gnome.scm:4963
+msgid "Write to multiple USB devices at once"
+msgstr ""
+
+#: gnu/packages/gnome.scm:4965
+msgid ""
+"MultiWriter can be used to write an ISO file to multiple USB devices at\n"
+"once."
+msgstr ""
+
+#: gnu/packages/gnome.scm:5007
 msgid "Japanese logic game"
 msgstr "Juego lógico japonés"
 
-#: gnu/packages/gnome.scm:2820
+#: gnu/packages/gnome.scm:5009
 msgid ""
 "Sudoku is a Japanese logic game that exploded in popularity in 2005.\n"
 "GNOME Sudoku is meant to have an interface as simple and unobstrusive as\n"
@@ -5733,11 +8551,11 @@ msgid ""
 "more fun."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2866
+#: gnu/packages/gnome.scm:5055
 msgid "Terminal emulator"
 msgstr "Emulador de terminal"
 
-#: gnu/packages/gnome.scm:2868
+#: gnu/packages/gnome.scm:5057
 msgid ""
 "GNOME Terminal is a terminal emulator application for accessing a\n"
 "UNIX shell environment which can be used to run programs available on\n"
@@ -5747,22 +8565,22 @@ msgid ""
 "keyboard shortcuts."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2934
+#: gnu/packages/gnome.scm:5136
 msgid "Color management service"
 msgstr "Servicio de gestión de color"
 
-#: gnu/packages/gnome.scm:2935
+#: gnu/packages/gnome.scm:5137
 msgid ""
 "Colord is a system service that makes it easy to manage,\n"
 "install and generate color profiles to accurately color manage input and\n"
 "output devices."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2980
+#: gnu/packages/gnome.scm:5172
 msgid "Geolocation service"
 msgstr "Servicio de geolocalización"
 
-#: gnu/packages/gnome.scm:2981
+#: gnu/packages/gnome.scm:5173
 msgid ""
 "Geoclue is a D-Bus service that provides location\n"
 "information.  The primary goal of the Geoclue project is to make creating\n"
@@ -5771,11 +8589,11 @@ msgid ""
 "permission from user."
 msgstr ""
 
-#: gnu/packages/gnome.scm:3016
+#: gnu/packages/gnome.scm:5217
 msgid "Geocoding and reverse-geocoding library"
 msgstr "Biblioteca de geocódigo y reversión de geocódigo"
 
-#: gnu/packages/gnome.scm:3018
+#: gnu/packages/gnome.scm:5219
 msgid ""
 "geocode-glib is a convenience library for geocoding (finding longitude,\n"
 "and latitude from an address) and reverse geocoding (finding an address from\n"
@@ -5783,11 +8601,11 @@ msgid ""
 "faster results and to avoid unnecessary server load."
 msgstr ""
 
-#: gnu/packages/gnome.scm:3065
+#: gnu/packages/gnome.scm:5288
 msgid "System daemon for managing power devices"
 msgstr ""
 
-#: gnu/packages/gnome.scm:3067
+#: gnu/packages/gnome.scm:5290
 msgid ""
 "UPower is an abstraction for enumerating power devices,\n"
 "listening to device events and querying history and statistics.  Any\n"
@@ -5795,21 +8613,21 @@ msgid ""
 "service via the system message bus."
 msgstr ""
 
-#: gnu/packages/gnome.scm:3125
+#: gnu/packages/gnome.scm:5332
 msgid "Location, time zone, and weather library for GNOME"
 msgstr ""
 
-#: gnu/packages/gnome.scm:3127
+#: gnu/packages/gnome.scm:5334
 msgid ""
 "libgweather is a library to access weather information from online\n"
 "services for numerous locations."
 msgstr ""
 
-#: gnu/packages/gnome.scm:3178
+#: gnu/packages/gnome.scm:5417
 msgid "GNOME settings daemon"
 msgstr "GNOME configurando demonios"
 
-#: gnu/packages/gnome.scm:3180
+#: gnu/packages/gnome.scm:5419
 msgid ""
 "This package contains the daemon responsible for setting the various\n"
 "parameters of a GNOME session and the applications that run under it.  It\n"
@@ -5817,42 +8635,54 @@ msgid ""
 "settings, themes, mouse settings, and startup of other daemons."
 msgstr ""
 
-#: gnu/packages/gnome.scm:3217
+#: gnu/packages/gnome.scm:5455
 msgid "Library to parse and save media playlists for GNOME"
 msgstr ""
 
-#: gnu/packages/gnome.scm:3218
+#: gnu/packages/gnome.scm:5456
 msgid ""
 "Totem-pl-parser is a GObjects-based library to parse and save\n"
 "playlists in a variety of formats."
 msgstr ""
 
-#: gnu/packages/gnome.scm:3252
+#: gnu/packages/gnome.scm:5490
 msgid "Solitaire card games"
 msgstr "Juegos de cartas solitatias"
 
-#: gnu/packages/gnome.scm:3254
+#: gnu/packages/gnome.scm:5492
 msgid ""
 "Aisleriot (also known as Solitaire or sol) is a collection of card games\n"
 "which are easy to play with the aid of a mouse."
 msgstr ""
 
-#: gnu/packages/gnome.scm:3278
+#: gnu/packages/gnome.scm:5520
+#, fuzzy
+msgid "Actions, Menus and Toolbars Kit for GTK+ applications"
+msgstr "Fichero de acceso y carpetas en aplicaciones GNOME"
+
+#: gnu/packages/gnome.scm:5522
+msgid ""
+"Amtk is the acronym for @acronym{Amtk, Actions Menus and Toolbars Kit}.\n"
+"It is a basic GtkUIManager replacement based on GAction.  It is suitable for\n"
+"both a traditional UI or a modern UI with a GtkHeaderBar."
+msgstr ""
+
+#: gnu/packages/gnome.scm:5561
 msgid "API documentation browser for GNOME"
 msgstr "Documentación de API para GNOME"
 
-#: gnu/packages/gnome.scm:3280
+#: gnu/packages/gnome.scm:5563
 msgid ""
 "Devhelp is an API documentation browser for GTK+ and GNOME.  It works\n"
 "natively with GTK-Doc (the API reference system developed for GTK+ and used\n"
 "throughout GNOME for API documentation)."
 msgstr ""
 
-#: gnu/packages/gnome.scm:3347
+#: gnu/packages/gnome.scm:5640
 msgid "Object oriented GL/GLES Abstraction/Utility Layer"
 msgstr ""
 
-#: gnu/packages/gnome.scm:3349
+#: gnu/packages/gnome.scm:5642
 msgid ""
 "Cogl is a small library for using 3D graphics hardware to draw pretty\n"
 "pictures.  The API departs from the flat state machine style of OpenGL and is\n"
@@ -5860,26 +8690,26 @@ msgid ""
 "without stepping on each others toes."
 msgstr ""
 
-#: gnu/packages/gnome.scm:3406
+#: gnu/packages/gnome.scm:5699
 msgid "OpenGL-based interactive canvas library"
 msgstr ""
 
-#: gnu/packages/gnome.scm:3408 gnu/packages/gnome.scm:3437
+#: gnu/packages/gnome.scm:5701 gnu/packages/gnome.scm:5730
 msgid ""
 "Clutter is an OpenGL-based interactive canvas library, designed for\n"
 "creating fast, mainly 2D single window applications such as media box UIs,\n"
 "presentations, kiosk style applications and so on."
 msgstr ""
 
-#: gnu/packages/gnome.scm:3435
+#: gnu/packages/gnome.scm:5728
 msgid "OpenGL-based interactive canvas library GTK+ widget"
 msgstr ""
 
-#: gnu/packages/gnome.scm:3464
+#: gnu/packages/gnome.scm:5757
 msgid "Integration library for using GStreamer with Clutter"
 msgstr ""
 
-#: gnu/packages/gnome.scm:3466
+#: gnu/packages/gnome.scm:5759
 msgid ""
 "Clutter-Gst is an integration library for using GStreamer with Clutter.\n"
 "It provides a GStreamer sink to upload frames to GL and an actor that\n"
@@ -5887,11 +8717,11 @@ msgid ""
 "OpenGL-based interactive canvas library."
 msgstr ""
 
-#: gnu/packages/gnome.scm:3500
+#: gnu/packages/gnome.scm:5793
 msgid "C library providing a ClutterActor to display maps"
 msgstr "Biblioteca C proporcionando un ClustterActor para enseñar distribuciones"
 
-#: gnu/packages/gnome.scm:3502
+#: gnu/packages/gnome.scm:5795
 msgid ""
 "libchamplain is a C library providing a ClutterActor to display maps.\n"
 "It also provides a Gtk+ widget to display maps in Gtk+ applications.  Python\n"
@@ -5899,32 +8729,36 @@ msgid ""
 "such as OpenStreetMap, OpenCycleMap, OpenAerialMap, and Maps for free."
 msgstr ""
 
-#: gnu/packages/gnome.scm:3533
+#: gnu/packages/gnome.scm:5826
 msgid "Object mapper from GObjects to SQLite"
-msgstr ""
+msgstr "Asociación automática de objetos GObject con SQLite"
 
-#: gnu/packages/gnome.scm:3535
+#: gnu/packages/gnome.scm:5828
 msgid ""
 "Gom provides an object mapper from GObjects to SQLite.  It helps you\n"
 "write applications that need to store structured data as well as make complex\n"
 "queries upon that data."
 msgstr ""
+"Gom implementa un sistema de asociación automática de objetos GObject\n"
+"con SQLite.  Le ayuda a escribir aplicaciones que necesitan almacenar\n"
+"datos estructurados así como realizar consultas complejas sobre dichos\n"
+"datos."
 
-#: gnu/packages/gnome.scm:3570
+#: gnu/packages/gnome.scm:5863
 msgid "Useful functionality shared among GNOME games"
 msgstr ""
 
-#: gnu/packages/gnome.scm:3572
+#: gnu/packages/gnome.scm:5865
 msgid ""
 "libgnome-games-support is a small library intended for internal use by\n"
 "GNOME Games, but it may be used by others."
 msgstr ""
 
-#: gnu/packages/gnome.scm:3600
+#: gnu/packages/gnome.scm:5905
 msgid "Sliding block puzzles"
 msgstr "Puzzles de bloque corredizo"
 
-#: gnu/packages/gnome.scm:3602
+#: gnu/packages/gnome.scm:5907
 msgid ""
 "GNOME Klotski is a set of block sliding puzzles.  The objective is to move\n"
 "the patterned block to the area bordered by green markers.  To do so, you will\n"
@@ -5932,55 +8766,67 @@ msgid ""
 "as possible!"
 msgstr ""
 
-#: gnu/packages/gnome.scm:3656
+#: gnu/packages/gnome.scm:5947
 msgid "Framework for discovering and browsing media"
 msgstr ""
 
-#: gnu/packages/gnome.scm:3658 gnu/packages/gnome.scm:3711
+#: gnu/packages/gnome.scm:5949
 msgid ""
 "Grilo is a framework focused on making media discovery and browsing easy\n"
 "for application developers."
 msgstr ""
 
-#: gnu/packages/gnome.scm:3709
+#: gnu/packages/gnome.scm:5994
 msgid "Plugins for the Grilo media discovery library"
 msgstr ""
 
-#: gnu/packages/gnome.scm:3812
-msgid "Simple media player for GNOME based on GStreamer"
+#: gnu/packages/gnome.scm:5996
+msgid ""
+"Grilo is a framework focused on making media discovery and browsing easy\n"
+"for application developers.  This package provides plugins for common media\n"
+"discovery protocols."
 msgstr ""
 
-#: gnu/packages/gnome.scm:3813
+#: gnu/packages/gnome.scm:6099
+msgid "Simple media player for GNOME based on GStreamer"
+msgstr "Reproductor multimedia para GNOME basado en GStreamer"
+
+#: gnu/packages/gnome.scm:6100
 msgid ""
 "Totem is a simple yet featureful media player for GNOME\n"
 "which can read a large number of file formats."
 msgstr ""
+"Totem es un reproductor multimedia simple pero completo en\n"
+"características para GNOME que puede leer un gran número de formatos\n"
+"de fichero."
 
-#: gnu/packages/gnome.scm:3914
+#: gnu/packages/gnome.scm:6189
 msgid "Music player for GNOME"
 msgstr "Reproductor musical para GNOME"
 
-#: gnu/packages/gnome.scm:3915
+#: gnu/packages/gnome.scm:6190
 msgid ""
 "Rhythmbox is a music playing application for GNOME.  It\n"
 "supports playlists, song ratings, and any codecs installed through gstreamer."
 msgstr ""
 
-#: gnu/packages/gnome.scm:3965
+#: gnu/packages/gnome.scm:6249
 msgid "GNOME image viewer"
-msgstr "Visor de imagen GNOME"
+msgstr "Visor de imágenes de GNOME"
 
-#: gnu/packages/gnome.scm:3966
+#: gnu/packages/gnome.scm:6250
 msgid ""
 "Eye of GNOME is the GNOME image viewer.  It\n"
 "supports image conversion, rotation, and slideshows."
 msgstr ""
+"«Eye of GNOME» es el visor de imágenes de GNOME. Es posible convertir,\n"
+"rotar y mostrar en diapositivas las imágenes."
 
-#: gnu/packages/gnome.scm:3988
+#: gnu/packages/gnome.scm:6272
 msgid "Extensions for the Eye of GNOME image viewer"
-msgstr "Extensiones para el visor de imagen del Ojo de GNOME"
+msgstr "Extensiones para el visor de imágenes de GNOME"
 
-#: gnu/packages/gnome.scm:4000
+#: gnu/packages/gnome.scm:6284
 msgid ""
 "This package provides plugins for the Eye of GNOME (EOG) image viewer,\n"
 "notably:\n"
@@ -5992,22 +8838,32 @@ msgid ""
 "@item @dfn{Slideshow Shuffle}, to shuffle images in slideshow mode.\n"
 "@end itemize\n"
 msgstr ""
+"Este paquete proporciona módulos para el visor de imágenes de GNOME\n"
+"(«Eye of GNOME» o EOG), destacando:\n"
+"\n"
+"@itemize\n"
+"@item @dfn{EXIF Display}, que muestra la información de la cámara (EXIF);\n"
+"@item @dfn{Map}, que muestra un mapa de donde se tomó la fotografía en\n"
+"el panel lateral;\n"
+"@item @dfn{Slideshow Shuffle}, para mostrar las imágenes en orden\n"
+"aleatorio cuando se muestran como diapositivas.\n"
+"@end itemize\n"
 
-#: gnu/packages/gnome.scm:4036
+#: gnu/packages/gnome.scm:6324
 msgid "GObject bindings for libudev"
 msgstr "Enlaces GObject para libudev"
 
-#: gnu/packages/gnome.scm:4038
+#: gnu/packages/gnome.scm:6326
 msgid ""
 "This library provides GObject bindings for libudev.  It was originally\n"
 "part of udev-extras, then udev, then systemd.  It's now a project on its own."
 msgstr ""
 
-#: gnu/packages/gnome.scm:4086
+#: gnu/packages/gnome.scm:6389
 msgid "Userspace virtual file system for GIO"
-msgstr ""
+msgstr "Sistema de ficheros en espacio de usuaria para GIO"
 
-#: gnu/packages/gnome.scm:4088
+#: gnu/packages/gnome.scm:6391
 msgid ""
 "GVFS is a userspace virtual file system designed to work with the I/O\n"
 "abstraction of GIO.  It contains a GIO module that seamlessly adds GVFS support\n"
@@ -6018,11 +8874,11 @@ msgid ""
 "DAV, and others."
 msgstr ""
 
-#: gnu/packages/gnome.scm:4121
+#: gnu/packages/gnome.scm:6426
 msgid "GLib binding for libusb1"
 msgstr "Enlazando GLib para libusb1"
 
-#: gnu/packages/gnome.scm:4123
+#: gnu/packages/gnome.scm:6428
 msgid ""
 "GUsb is a GObject wrapper for libusb1 that makes it easy to do\n"
 "asynchronous control, bulk and interrupt transfers with proper cancellation\n"
@@ -6030,75 +8886,74 @@ msgid ""
 "USB transfers with your high-level application or system daemon."
 msgstr ""
 
-#: gnu/packages/gnome.scm:4174
+#: gnu/packages/gnome.scm:6466
 msgid "Document and image scanner"
 msgstr "Documento e imagen analíticos (escaner)"
 
-#: gnu/packages/gnome.scm:4175
+#: gnu/packages/gnome.scm:6468
 msgid ""
-"Simple Scan is an easy-to-use application, designed to let\n"
-"users connect their scanner and quickly have the image/document in an\n"
-"appropriate format.  Simple Scan is basically a frontend for SANE - which is\n"
-"the same backend as XSANE uses. This means that all existing scanners will\n"
-"work and the interface is well tested."
+"Document Scanner is an easy-to-use application that lets you connect your\n"
+"scanner and quickly capture images and documents in an appropriate format.  It\n"
+"supports any scanner for which a suitable SANE driver is available, which is\n"
+"almost all of them."
 msgstr ""
 
-#: gnu/packages/gnome.scm:4242
+#: gnu/packages/gnome.scm:6536
 msgid "Web browser for GNOME"
 msgstr "Explorador web para GNOME"
 
-#: gnu/packages/gnome.scm:4244
+#: gnu/packages/gnome.scm:6538
 msgid ""
 "Eolie is a new web browser for GNOME.  It features Firefox sync support,\n"
 "a secret password store, an adblocker, and a modern UI."
 msgstr ""
 
-#: gnu/packages/gnome.scm:4301
+#: gnu/packages/gnome.scm:6612
 msgid "GNOME web browser"
 msgstr "Explorador web GNOME"
 
-#: gnu/packages/gnome.scm:4303
+#: gnu/packages/gnome.scm:6614
 msgid ""
 "Epiphany is a GNOME web browser targeted at non-technical users.  Its\n"
 "principles are simplicity and standards compliance."
 msgstr ""
 
-#: gnu/packages/gnome.scm:4359
+#: gnu/packages/gnome.scm:6671
 msgid "D-Bus debugger"
 msgstr "Depurador D-Bus"
 
-#: gnu/packages/gnome.scm:4361
+#: gnu/packages/gnome.scm:6673
 msgid ""
 "D-Feet is a D-Bus debugger, which can be used to inspect D-Bus interfaces\n"
 "of running programs and invoke methods on those interfaces."
 msgstr ""
 
-#: gnu/packages/gnome.scm:4383
+#: gnu/packages/gnome.scm:6695
 msgid "XSL stylesheets for Yelp"
 msgstr "Hojas de estilos XSL para Yelp"
 
-#: gnu/packages/gnome.scm:4385
+#: gnu/packages/gnome.scm:6697
 msgid ""
 "Yelp-xsl contains XSL stylesheets that are used by the yelp help browser\n"
 "to format Docbook and Mallard documents."
 msgstr ""
 
-#: gnu/packages/gnome.scm:4416
+#: gnu/packages/gnome.scm:6728
 msgid "GNOME help browser"
 msgstr "Explorador ayuda GNOME"
 
-#: gnu/packages/gnome.scm:4418
+#: gnu/packages/gnome.scm:6730
 msgid ""
 "Yelp is the help viewer in Gnome.  It natively views Mallard, DocBook,\n"
 "man, info, and HTML documents.  It can locate documents according to the\n"
 "freedesktop.org help system specification."
 msgstr ""
 
-#: gnu/packages/gnome.scm:4446
+#: gnu/packages/gnome.scm:6758
 msgid "Yelp documentation tools"
 msgstr "Herramientas documentales Yelp"
 
-#: gnu/packages/gnome.scm:4448
+#: gnu/packages/gnome.scm:6760
 msgid ""
 "Yelp-tools is a collection of scripts and build utilities to help create,\n"
 "manage, and publish documentation for Yelp and the web.  Most of the heavy\n"
@@ -6106,32 +8961,32 @@ msgid ""
 "wraps things up in a developer-friendly way."
 msgstr ""
 
-#: gnu/packages/gnome.scm:4485
+#: gnu/packages/gnome.scm:6797
 msgid "GObject collection library"
 msgstr "Colección bibliotecaria de GObject"
 
-#: gnu/packages/gnome.scm:4487
+#: gnu/packages/gnome.scm:6799
 msgid ""
 "Libgee is a utility library providing GObject-based interfaces and\n"
 "classes for commonly used data structures."
 msgstr ""
 
-#: gnu/packages/gnome.scm:4514
+#: gnu/packages/gnome.scm:6828
 msgid "GObject wrapper around the Exiv2 photo metadata library"
 msgstr ""
 
-#: gnu/packages/gnome.scm:4516
+#: gnu/packages/gnome.scm:6830
 msgid ""
 "Gexiv2 is a GObject wrapper around the Exiv2 photo metadata library.  It\n"
 "allows for GNOME applications to easily inspect and update EXIF, IPTC, and XMP\n"
 "metadata in photo and video files of various formats."
 msgstr ""
 
-#: gnu/packages/gnome.scm:4560
+#: gnu/packages/gnome.scm:6882
 msgid "Photo manager for GNOME 3"
 msgstr "Gestor de fotos para GNOME"
 
-#: gnu/packages/gnome.scm:4562
+#: gnu/packages/gnome.scm:6884
 msgid ""
 "Shotwell is a digital photo manager designed for the GNOME desktop\n"
 "environment.  It allows you to import photos from disk or camera, organize\n"
@@ -6139,62 +8994,62 @@ msgid ""
 "share them with others via social networking and more."
 msgstr ""
 
-#: gnu/packages/gnome.scm:4603
+#: gnu/packages/gnome.scm:6919
 msgid "Graphical archive manager for GNOME"
 msgstr "Gestor de archivo gráfico para GNOME"
 
-#: gnu/packages/gnome.scm:4604
+#: gnu/packages/gnome.scm:6920
 msgid ""
 "File Roller is an archive manager for the GNOME desktop\n"
 "environment that allows users to view, unpack, and create compressed archives\n"
 "such as gzip tarballs."
 msgstr ""
 
-#: gnu/packages/gnome.scm:4680
+#: gnu/packages/gnome.scm:6990
 msgid "Session manager for GNOME"
 msgstr "Gestor de sesión para GNOME"
 
-#: gnu/packages/gnome.scm:4682
+#: gnu/packages/gnome.scm:6992
 msgid ""
 "This package contains the GNOME session manager, as well as a\n"
 "configuration program to choose applications starting on login."
 msgstr ""
 
-#: gnu/packages/gnome.scm:4735
+#: gnu/packages/gnome.scm:7049
 msgid "Javascript bindings for GNOME"
 msgstr "Enlazados Javascript para GNOME"
 
-#: gnu/packages/gnome.scm:4738
+#: gnu/packages/gnome.scm:7052
 msgid ""
 "Gjs is a javascript binding for GNOME.  It's mainly based on spidermonkey\n"
 "javascript engine and the GObject introspection framework."
 msgstr ""
 
-#: gnu/packages/gnome.scm:4797
+#: gnu/packages/gnome.scm:7145
 msgid "GNOME text editor"
-msgstr "Editor textual de GNOME"
+msgstr "Editor de texto de GNOME"
 
-#: gnu/packages/gnome.scm:4798
+#: gnu/packages/gnome.scm:7146
 msgid ""
 "While aiming at simplicity and ease of use, gedit is a\n"
 "powerful general purpose text editor."
 msgstr ""
 
-#: gnu/packages/gnome.scm:4822
+#: gnu/packages/gnome.scm:7170
 msgid "Display graphical dialog boxes from shell scripts"
 msgstr ""
 
-#: gnu/packages/gnome.scm:4825
+#: gnu/packages/gnome.scm:7173
 msgid ""
 "Zenity is a rewrite of gdialog, the GNOME port of dialog which allows you\n"
 "to display dialog boxes from the commandline and shell scripts."
 msgstr ""
 
-#: gnu/packages/gnome.scm:4924
+#: gnu/packages/gnome.scm:7281
 msgid "Window and compositing manager"
 msgstr "Ventana y composicion de gestor"
 
-#: gnu/packages/gnome.scm:4927
+#: gnu/packages/gnome.scm:7284
 msgid ""
 "Mutter is a window and compositing manager that displays and manages your\n"
 "desktop via OpenGL.  Mutter combines a sophisticated display engine using the\n"
@@ -6202,12 +9057,12 @@ msgid ""
 "window manager."
 msgstr ""
 
-#: gnu/packages/gnome.scm:4977
+#: gnu/packages/gnome.scm:7338
 #, fuzzy
 msgid "Single sign-on framework for GNOME"
 msgstr "Impresión para marco de trabajo de GNOME"
 
-#: gnu/packages/gnome.scm:4980
+#: gnu/packages/gnome.scm:7341
 msgid ""
 "GNOME Online Accounts provides interfaces so that applications and\n"
 "libraries in GNOME can access the user's online accounts.  It has providers for\n"
@@ -6215,32 +9070,32 @@ msgid ""
 "Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos."
 msgstr ""
 
-#: gnu/packages/gnome.scm:5098
+#: gnu/packages/gnome.scm:7429
 msgid "Store address books and calendars"
 msgstr "Dirección de almacén de libros y calendarios"
 
-#: gnu/packages/gnome.scm:5101
+#: gnu/packages/gnome.scm:7432
 msgid ""
 "This package provides a unified backend for programs that work with\n"
 "contacts, tasks, and calendar information.  It was originally developed for\n"
 "Evolution (hence the name), but is now used by other packages as well."
 msgstr ""
 
-#: gnu/packages/gnome.scm:5164
+#: gnu/packages/gnome.scm:7495
 msgid "Text entry and UI navigation application"
 msgstr "Entrada textual y aplicación de explorador IU"
 
-#: gnu/packages/gnome.scm:5167
+#: gnu/packages/gnome.scm:7498
 msgid ""
 "Caribou is an input assistive technology intended for switch and pointer\n"
 "users."
 msgstr ""
 
-#: gnu/packages/gnome.scm:5285
+#: gnu/packages/gnome.scm:7646
 msgid "Network connection manager"
 msgstr "Gestor de conexión a red"
 
-#: gnu/packages/gnome.scm:5288
+#: gnu/packages/gnome.scm:7649
 msgid ""
 "NetworkManager is a system network service that manages your network\n"
 "devices and connections, attempting to keep active network connectivity when\n"
@@ -6249,79 +9104,100 @@ msgid ""
 "services."
 msgstr ""
 
-#: gnu/packages/gnome.scm:5322
+#: gnu/packages/gnome.scm:7706
 msgid "OpenVPN plug-in for NetworkManager"
 msgstr ""
 
-#: gnu/packages/gnome.scm:5324
+#: gnu/packages/gnome.scm:7708
 msgid ""
 "This extension of NetworkManager allows it to take care of connections\n"
 "to virtual private networks (VPNs) via OpenVPN."
 msgstr ""
 
-#: gnu/packages/gnome.scm:5346
+#: gnu/packages/gnome.scm:7759
+msgid "VPNC plug-in for NetworkManager"
+msgstr ""
+
+#: gnu/packages/gnome.scm:7761
+msgid ""
+"Support for configuring virtual private networks based on VPNC.\n"
+"Compatible with Cisco VPN concentrators configured to use IPsec."
+msgstr ""
+
+#: gnu/packages/gnome.scm:7809
+msgid "OpenConnect plug-in for NetworkManager"
+msgstr ""
+
+#: gnu/packages/gnome.scm:7811
+msgid ""
+"This extension of NetworkManager allows it to take care of connections\n"
+"to @acronym{VPNs, virtual private networks} via OpenConnect, an open client for\n"
+"Cisco's AnyConnect SSL VPN."
+msgstr ""
+
+#: gnu/packages/gnome.scm:7839
 msgid "Database of broadband connection configuration"
 msgstr "Configuración de BD para conexión ancha"
 
-#: gnu/packages/gnome.scm:5347
+#: gnu/packages/gnome.scm:7840
 msgid "Database of broadband connection configuration."
 msgstr "Configuración de BD para conexión ancha."
 
-#: gnu/packages/gnome.scm:5381
+#: gnu/packages/gnome.scm:7879
 msgid "Applet for managing network connections"
 msgstr "Applet para gestión de conexiones de red"
 
-#: gnu/packages/gnome.scm:5384
+#: gnu/packages/gnome.scm:7882
 msgid ""
 "This package contains a systray applet for NetworkManager.  It displays\n"
 "the available networks and allows users to easily switch between them."
 msgstr ""
 
-#: gnu/packages/gnome.scm:5409
+#: gnu/packages/gnome.scm:7907
 msgid "C++ wrapper for XML parser library libxml2"
 msgstr ""
 
-#: gnu/packages/gnome.scm:5411
+#: gnu/packages/gnome.scm:7909
 msgid ""
 "This package provides a C++ wrapper for the XML parser library\n"
 "libxml2."
 msgstr ""
 
-#: gnu/packages/gnome.scm:5575
+#: gnu/packages/gnome.scm:8111
 msgid "Display manager for GNOME"
 msgstr "Gestor de pantalla para GNOME"
 
-#: gnu/packages/gnome.scm:5578
+#: gnu/packages/gnome.scm:8114
 msgid ""
 "GNOME Display Manager is a system service that is responsible for\n"
 "providing graphical log-ins and managing local and remote displays."
 msgstr ""
 
-#: gnu/packages/gnome.scm:5602
+#: gnu/packages/gnome.scm:8138
 msgid "Portable system access library"
 msgstr "Biblioteca de sistema de acceso portable"
 
-#: gnu/packages/gnome.scm:5605
+#: gnu/packages/gnome.scm:8141
 msgid ""
 "LibGTop is a library to get system specific data such as CPU and memory\n"
 "usage and information about running processes."
 msgstr ""
 
-#: gnu/packages/gnome.scm:5635
+#: gnu/packages/gnome.scm:8173
 msgid "GNOME Bluetooth subsystem"
 msgstr "Subsistema Bluetooth GNOME"
 
-#: gnu/packages/gnome.scm:5638
+#: gnu/packages/gnome.scm:8176
 msgid ""
 "This package contains tools for managing and manipulating Bluetooth\n"
 "devices using the GNOME desktop."
 msgstr ""
 
-#: gnu/packages/gnome.scm:5705
+#: gnu/packages/gnome.scm:8285
 msgid "Utilities to configure the GNOME desktop"
 msgstr "Utilidades para configurar el escritorio de GNOME"
 
-#: gnu/packages/gnome.scm:5708
+#: gnu/packages/gnome.scm:8288
 msgid ""
 "This package contains configuration applets for the GNOME desktop,\n"
 "allowing to set accessibility configuration, desktop fonts, keyboard and mouse\n"
@@ -6329,65 +9205,88 @@ msgid ""
 "properties, screen resolution, and other GNOME parameters."
 msgstr ""
 
-#: gnu/packages/gnome.scm:5853
+#: gnu/packages/gnome.scm:8448
 msgid "Desktop shell for GNOME"
 msgstr "Shell de escritorio para GNOME"
 
-#: gnu/packages/gnome.scm:5856
+#: gnu/packages/gnome.scm:8451
 msgid ""
 "GNOME Shell provides core user interface functions for the GNOME desktop,\n"
 "like switching to windows and launching applications."
 msgstr ""
 
-#: gnu/packages/gnome.scm:5891
-msgid "VNC viewer widget for GTK+"
+#: gnu/packages/gnome.scm:8493
+msgid "VNC client viewer widget for GTK+"
 msgstr ""
 
-#: gnu/packages/gnome.scm:5893
+#: gnu/packages/gnome.scm:8494
 msgid ""
-"GTK-VNC is a VNC viewer widget for GTK+, used by remote desktop viewing\n"
-"applications, for instance the Vinagre client, GNOME Boxes and virt-viewer.\n"
-"GTK-VNC implements client side RFB protocol and authentication extensions such\n"
-"as SASL, TLS and VeNCrypt.  Additionally it supports encoding extensions."
+"GTK-VNC is a project providing client side APIs for the RFB\n"
+"protocol / VNC remote desktop technology.  It is built using coroutines allowing\n"
+"it to be completely asynchronous while remaining single threaded.  It provides a\n"
+"core C library, and bindings for Python (PyGTK)."
 msgstr ""
 
-#: gnu/packages/gnome.scm:5921
+#: gnu/packages/gnome.scm:8521
 msgid "Archives integration support for GNOME"
 msgstr ""
 
-#: gnu/packages/gnome.scm:5924
+#: gnu/packages/gnome.scm:8524
 msgid ""
 "GNOME Autoar is a library which makes creating and extracting archives\n"
 "easy, safe, and automatic."
 msgstr ""
 
-#: gnu/packages/gnome.scm:5976
+#: gnu/packages/gnome.scm:8569 gnu/packages/gnome.scm:8657
 msgid "Metadata database, indexer and search tool"
 msgstr ""
 
-#: gnu/packages/gnome.scm:5979
+#: gnu/packages/gnome.scm:8572
+msgid ""
+"Tracker is a search engine and triplestore for desktop, embedded and mobile.\n"
+"\n"
+"It is a middleware component aimed at desktop application developers who want\n"
+"their apps to browse and search user content.  It's not designed to be used\n"
+"directly by desktop users, but it provides a commandline tool named\n"
+"@command{tracker} for the adventurous.\n"
+"\n"
+"Tracker allows your application to instantly perform full-text searches across\n"
+"all documents.  This feature is used by the @{emph{search} bar in GNOME Files, for\n"
+"example.  This is achieved by indexing the user's home directory in the\n"
+"background.\n"
+"\n"
+"Tracker also allows your application to query and list content that the user\n"
+"has stored.  For example, GNOME Music displays all the music files that are\n"
+"found by Tracker.  This means that GNOME Music doesn't need to maintain a\n"
+"database of its own.\n"
+"\n"
+"If you need to go beyond simple searches, Tracker is also a linked data\n"
+"endpoint and it understands SPARQL. "
+msgstr ""
+
+#: gnu/packages/gnome.scm:8660
 msgid ""
 "Tracker is an advanced framework for first class objects with associated\n"
 "metadata and tags.  It provides a one stop solution for all metadata, tags,\n"
 "shared object databases, search tools and indexing."
 msgstr ""
 
-#: gnu/packages/gnome.scm:6030
+#: gnu/packages/gnome.scm:8721
 msgid "File manager for GNOME"
 msgstr "Gestor de ficheros para GNOME"
 
-#: gnu/packages/gnome.scm:6033
+#: gnu/packages/gnome.scm:8724
 msgid ""
 "Nautilus (Files) is a file manager designed to fit the GNOME desktop\n"
 "design and behaviour, giving the user a simple way to navigate and manage its\n"
 "files."
 msgstr ""
 
-#: gnu/packages/gnome.scm:6065
+#: gnu/packages/gnome.scm:8756
 msgid "Disk usage analyzer for GNOME"
 msgstr "Análisis de utilización de disco para GNOME"
 
-#: gnu/packages/gnome.scm:6067
+#: gnu/packages/gnome.scm:8758
 msgid ""
 "Baobab (Disk Usage Analyzer) is a graphical application to analyse disk\n"
 "usage in the GNOME desktop environment.  It can easily scan device volumes or\n"
@@ -6395,11 +9294,11 @@ msgid ""
 "is complete it provides a graphical representation of each selected folder."
 msgstr ""
 
-#: gnu/packages/gnome.scm:6091
+#: gnu/packages/gnome.scm:8782
 msgid "Background images for the GNOME desktop"
 msgstr "Fondo de imágenes para el escritorio GNOME"
 
-#: gnu/packages/gnome.scm:6093
+#: gnu/packages/gnome.scm:8784
 msgid ""
 "GNOME backgrounds package contains a collection of graphics files which\n"
 "can be used as backgrounds in the GNOME Desktop environment.  Additionally,\n"
@@ -6407,33 +9306,33 @@ msgid ""
 "can add your own files to the collection."
 msgstr ""
 
-#: gnu/packages/gnome.scm:6126
+#: gnu/packages/gnome.scm:8828
 msgid "Take pictures of your screen"
 msgstr "Toma cuadros en su pantalla"
 
-#: gnu/packages/gnome.scm:6128
+#: gnu/packages/gnome.scm:8830
 msgid ""
 "GNOME Screenshot is a utility used for taking screenshots of the entire\n"
 "screen, a window or a user defined area of the screen, with optional\n"
 "beautifying border effects."
 msgstr ""
 
-#: gnu/packages/gnome.scm:6165
+#: gnu/packages/gnome.scm:8860
 msgid "Graphical editor for GNOME's dconf configuration system"
 msgstr ""
 
-#: gnu/packages/gnome.scm:6167
+#: gnu/packages/gnome.scm:8862
 msgid ""
 "Dconf-editor is a graphical tool for browsing and editing the dconf\n"
 "configuration system for GNOME.  It allows users to configure desktop\n"
 "software that do not provide their own configuration interface."
 msgstr ""
 
-#: gnu/packages/gnome.scm:6196
+#: gnu/packages/gnome.scm:8891
 msgid "Default MIME type associations for the GNOME desktop"
 msgstr "Tipo MIME predeterminado para el escritorio GNOME"
 
-#: gnu/packages/gnome.scm:6198
+#: gnu/packages/gnome.scm:8893
 msgid ""
 "Given many installed packages which might handle a given MIME type, a\n"
 "user running the GNOME desktop probably has some preferences: for example,\n"
@@ -6442,64 +9341,105 @@ msgid ""
 "associations for GNOME."
 msgstr ""
 
-#: gnu/packages/gnome.scm:6258
+#: gnu/packages/gnome.scm:8924
+msgid "GoVirt Library"
+msgstr ""
+
+#: gnu/packages/gnome.scm:8925
+msgid "GoVirt is a GObject wrapper for the oVirt REST API."
+msgstr ""
+
+#: gnu/packages/gnome.scm:8977
+#, fuzzy
+msgid "Weather monitoring for GNOME desktop"
+msgstr "Fondo de imágenes para el escritorio GNOME"
+
+#: gnu/packages/gnome.scm:8978
+msgid ""
+"GNOME Weather is a small application that allows you to\n"
+"monitor the current weather conditions for your city, or anywhere in the\n"
+"world."
+msgstr ""
+
+#: gnu/packages/gnome.scm:9082
 msgid "The GNU desktop environment"
 msgstr "El entorno de escritorio GNU"
 
-#: gnu/packages/gnome.scm:6261
+#: gnu/packages/gnome.scm:9085
 msgid ""
 "GNOME is the graphical desktop for GNU.  It includes a wide variety of\n"
 "applications for browsing the web, editing text and images, creating\n"
 "documents and diagrams, playing media, scanning, and much more."
 msgstr ""
 
-#: gnu/packages/gnome.scm:6313
+#: gnu/packages/gnome.scm:9133
 msgid "Desktop recording program"
 msgstr "Escritorio grabando programa"
 
-#: gnu/packages/gnome.scm:6314
+#: gnu/packages/gnome.scm:9134
 msgid ""
 "Byzanz is a simple desktop recording program with a\n"
 "command-line interface.  It can record part or all of an X display for a\n"
 "specified duration and save it as a GIF encoded animated image file."
 msgstr ""
 
-#: gnu/packages/gnome.scm:6341
+#: gnu/packages/gnome.scm:9192
+msgid "Two-factor authentication application built for GNOME"
+msgstr ""
+
+#: gnu/packages/gnome.scm:9194
+msgid ""
+"Authenticator is a two-factor authentication (2FA) application built for\n"
+"the GNOME desktop environment.\n"
+"\n"
+"Features:\n"
+"\n"
+"@itemize\n"
+"@item QR code scanner\n"
+"@item Beautiful UI\n"
+"@item Huge database of more than 560 supported services\n"
+"@item Keep your PIN tokens secure by locking the application with a password\n"
+"@item Automatically fetch an image for services using their favicon\n"
+"@item The possibility to add new services\n"
+"@end itemize"
+msgstr ""
+
+#: gnu/packages/gnome.scm:9230
 msgid "GObject wrapper for libcanberra"
 msgstr "Envoltura GObject para libcanberra"
 
-#: gnu/packages/gnome.scm:6343
+#: gnu/packages/gnome.scm:9232
 msgid ""
 "GSound is a small library for playing system sounds.  It's designed to be\n"
 "used via GObject Introspection, and is a thin wrapper around the libcanberra C\n"
 "library."
 msgstr ""
 
-#: gnu/packages/gnome.scm:6370
+#: gnu/packages/gnome.scm:9259
 msgid "Library for accessing SkyDrive and Hotmail"
 msgstr "Biblioteca para acceso a SkyDrive y Hotmail"
 
-#: gnu/packages/gnome.scm:6372
+#: gnu/packages/gnome.scm:9261
 msgid ""
 "Libzapojit is a GLib-based library for accessing online service APIs of\n"
 "Microsoft SkyDrive and Hotmail, using their REST protocols."
 msgstr ""
 
-#: gnu/packages/gnome.scm:6408
+#: gnu/packages/gnome.scm:9304
 msgid "GNOME's clock application"
 msgstr "Aplicación reloj de GNOME"
 
-#: gnu/packages/gnome.scm:6410
+#: gnu/packages/gnome.scm:9306
 msgid ""
 "GNOME Clocks is a simple clocks application designed to fit the GNOME\n"
 "desktop.  It supports world clock, stop watch, alarms, and count down timer."
 msgstr ""
 
-#: gnu/packages/gnome.scm:6443
+#: gnu/packages/gnome.scm:9350
 msgid "GNOME's calendar application"
 msgstr "Aplicación calendario de GNOME"
 
-#: gnu/packages/gnome.scm:6445
+#: gnu/packages/gnome.scm:9352
 msgid ""
 "GNOME Calendar is a simple calendar application designed to fit the GNOME\n"
 "desktop.  It supports multiple calendars, month, week and year view."
@@ -6507,95 +9447,95 @@ msgstr ""
 "Calendario GNOME es una pliacación simple de calendario diseñado para ajustar\n"
 "el escritorio de GNOME.  Apoya múltiples vistas de calendarios, meses, semanas y año."
 
-#: gnu/packages/gnome.scm:6496
+#: gnu/packages/gnome.scm:9404
 msgid "GNOME's ToDo Application"
 msgstr "Aplicación ToDo de GNOME"
 
-#: gnu/packages/gnome.scm:6498
+#: gnu/packages/gnome.scm:9406
 msgid ""
 "GNOME To Do is a simplistic personal task manager designed to perfectly\n"
 "fit the GNOME desktop."
 msgstr ""
 
-#: gnu/packages/gnome.scm:6536
+#: gnu/packages/gnome.scm:9444
 msgid "Look up words in dictionary sources"
 msgstr ""
 
-#: gnu/packages/gnome.scm:6538
+#: gnu/packages/gnome.scm:9446
 msgid ""
 "GNOME Dictionary can look for the definition or translation of a word in\n"
 "existing databases over the internet."
 msgstr ""
 
-#: gnu/packages/gnome.scm:6598
+#: gnu/packages/gnome.scm:9502
 msgid "Customize advanced GNOME 3 options"
 msgstr ""
 
-#: gnu/packages/gnome.scm:6601
+#: gnu/packages/gnome.scm:9505
 msgid ""
-"GNOME Tweak Tool allows adjusting advanced configuration settings in\n"
+"GNOME Tweaks allows adjusting advanced configuration settings in\n"
 "GNOME 3.  This includes things like the fonts used in user interface elements,\n"
 "alternative user interface themes, changes in window management behavior,\n"
 "GNOME Shell appearance and extension, etc."
 msgstr ""
 
-#: gnu/packages/gnome.scm:6628
+#: gnu/packages/gnome.scm:9532
 msgid "Extensions for GNOME Shell"
 msgstr "Extensiones para GNOME Shell"
 
-#: gnu/packages/gnome.scm:6629
+#: gnu/packages/gnome.scm:9533
 msgid ""
 "GNOME Shell extensions modify and extend GNOME Shell\n"
 "functionality and behavior."
 msgstr ""
 
-#: gnu/packages/gnome.scm:6664
+#: gnu/packages/gnome.scm:9572
 msgid "A flat GTK+ theme with transparent elements"
 msgstr "Un marcado de tema GTK+ con elementos transparentes"
 
-#: gnu/packages/gnome.scm:6665
+#: gnu/packages/gnome.scm:9573
 msgid ""
 "Arc is a flat theme with transparent elements for GTK 3, GTK\n"
 "2, and GNOME Shell which supports GTK 3 and GTK 2 based desktop environments\n"
 "like GNOME, Unity, Budgie, Pantheon, XFCE, Mate, etc."
 msgstr ""
 
-#: gnu/packages/gnome.scm:6696
+#: gnu/packages/gnome.scm:9604
 msgid "Faba icon theme"
 msgstr "Tema icónico Faba"
 
-#: gnu/packages/gnome.scm:6698
+#: gnu/packages/gnome.scm:9606
 msgid ""
 "Faba is a minimal icon set used as a basis for other themes such as\n"
 "Moka"
 msgstr ""
 
-#: gnu/packages/gnome.scm:6722
+#: gnu/packages/gnome.scm:9630
 msgid "Moka icon theme"
 msgstr "Tema icónico Moka"
 
-#: gnu/packages/gnome.scm:6723
+#: gnu/packages/gnome.scm:9631
 msgid ""
 "Moka is a stylized desktop icon set, designed to be clear,\n"
 "simple and consistent."
 msgstr ""
 
-#: gnu/packages/gnome.scm:6755
+#: gnu/packages/gnome.scm:9664
 msgid "Arc icon theme"
 msgstr "Tema icónico Arc"
 
-#: gnu/packages/gnome.scm:6756
+#: gnu/packages/gnome.scm:9665
 msgid ""
 "The Arc icon theme provides a set of icons matching the\n"
 "style of the Arc GTK theme.  Icons missing from the Arc theme are provided by\n"
 "the Moka icon theme."
 msgstr ""
 
-#: gnu/packages/gnome.scm:6788
+#: gnu/packages/gnome.scm:9708
 msgid "Library to aggregate data about people"
 msgstr "Biblioteca para agregar datos acerca de gente"
 
-#: gnu/packages/gnome.scm:6789
+#: gnu/packages/gnome.scm:9709
 msgid ""
 "Libfolks is a library that aggregates information about people\n"
 "from multiple sources (e.g., Telepathy connection managers for IM contacts,\n"
@@ -6604,31 +9544,31 @@ msgid ""
 "compiled."
 msgstr ""
 
-#: gnu/packages/gnome.scm:6824
+#: gnu/packages/gnome.scm:9750
 msgid "GLib/GObject wrapper for the Facebook API"
 msgstr ""
 
-#: gnu/packages/gnome.scm:6825
+#: gnu/packages/gnome.scm:9751
 msgid ""
 "This library allows you to use the Facebook API from\n"
 "GLib/GObject code."
 msgstr ""
 
-#: gnu/packages/gnome.scm:6853
+#: gnu/packages/gnome.scm:9779
 msgid "GNOME keyboard configuration library"
 msgstr "Biblioteca de configuración de teclado GNOME"
 
-#: gnu/packages/gnome.scm:6855
+#: gnu/packages/gnome.scm:9781
 msgid ""
 "Libgnomekbd is a keyboard configuration library for the GNOME desktop\n"
 "environment, which can notably display keyboard layouts."
 msgstr ""
 
-#: gnu/packages/gnome.scm:6889
+#: gnu/packages/gnome.scm:9815
 msgid "Library for writing single instance applications"
 msgstr ""
 
-#: gnu/packages/gnome.scm:6891
+#: gnu/packages/gnome.scm:9817
 msgid ""
 "Libunique is a library for writing single instance applications.  If you\n"
 "launch a single instance application twice, the second instance will either just\n"
@@ -6638,32 +9578,32 @@ msgid ""
 "handling the startup notification side."
 msgstr ""
 
-#: gnu/packages/gnome.scm:6924
+#: gnu/packages/gnome.scm:9856
 msgid "Desktop calculator"
 msgstr "Calculadora para escritorio"
 
-#: gnu/packages/gnome.scm:6926
+#: gnu/packages/gnome.scm:9858
 msgid ""
 "Calculator is an application that solves mathematical equations and\n"
 "is suitable as a default application in a Desktop environment."
 msgstr ""
 
-#: gnu/packages/gnome.scm:6954
+#: gnu/packages/gnome.scm:9886
 msgid "Virtual sticky note"
 msgstr "Anotación chincheta virtual"
 
-#: gnu/packages/gnome.scm:6956
+#: gnu/packages/gnome.scm:9888
 msgid ""
 "Xpad is a sticky note that strives to be simple, fault tolerant,\n"
 "and customizable.  Xpad consists of independent pad windows, each is\n"
 "basically a text box in which notes can be written."
 msgstr ""
 
-#: gnu/packages/gnome.scm:6986
+#: gnu/packages/gnome.scm:9959
 msgid "Unicode character picker and font browser"
 msgstr ""
 
-#: gnu/packages/gnome.scm:6988
+#: gnu/packages/gnome.scm:9961
 msgid ""
 "This program allows you to browse through all the available Unicode\n"
 "characters and categories for the installed fonts, and to examine their\n"
@@ -6671,22 +9611,22 @@ msgid ""
 "only know by its Unicode name or code point."
 msgstr ""
 
-#: gnu/packages/gnome.scm:7018
+#: gnu/packages/gnome.scm:9990
 msgid "Web development studio"
 msgstr "Estudio de desarrollo web"
 
-#: gnu/packages/gnome.scm:7020
+#: gnu/packages/gnome.scm:9992
 msgid ""
 "Bluefish is an editor targeted towards programmers and web developers,\n"
 "with many options to write web sites, scripts and other code.\n"
 "Bluefish supports many programming and markup languages."
 msgstr ""
 
-#: gnu/packages/gnome.scm:7052
+#: gnu/packages/gnome.scm:10030
 msgid "Process viewer and system resource monitor for GNOME"
-msgstr ""
+msgstr "Visor de procesos y monitor de recursos del sistema para GNOME"
 
-#: gnu/packages/gnome.scm:7054
+#: gnu/packages/gnome.scm:10032
 msgid ""
 "GNOME System Monitor is a GNOME process viewer and system monitor with\n"
 "an attractive, easy-to-use interface.  It has features, such as a tree view\n"
@@ -6694,44 +9634,56 @@ msgid ""
 "graphical time histories of CPU/memory/swap usage and the ability to\n"
 "kill/reinice processes."
 msgstr ""
+"GNOME System Monitor es un visor de procesos y monitor de recursos del\n"
+"sistema de GNOME con una interfaz atractiva y fácil de usar. Entre sus\n"
+"características se encuentran la vista en forma de árbol de las\n"
+"dependencias de los procesos, iconos para los proccesos, la abilidad\n"
+"de ocultar procesos, gráficos históricos de uso de procesador, memoria\n"
+"y memoria de intercambio y la capacidad de finalizar o cambiar el\n"
+"valor «nice» de procesos."
 
-#: gnu/packages/gnome.scm:7080
+#: gnu/packages/gnome.scm:10070
 msgid "Python client bindings for D-Bus AT-SPI"
 msgstr ""
 
-#: gnu/packages/gnome.scm:7084
+#: gnu/packages/gnome.scm:10074
 msgid ""
 "This package includes a python client library for the AT-SPI D-Bus\n"
 "accessibility infrastructure."
 msgstr ""
 
-#: gnu/packages/gnome.scm:7143
+#: gnu/packages/gnome.scm:10142
 msgid "Screen reader for individuals who are blind or visually impaired"
-msgstr ""
+msgstr "Lector de pantalla para personas ciegas o con dificultades visuales"
 
-#: gnu/packages/gnome.scm:7146
+#: gnu/packages/gnome.scm:10145
 msgid ""
 "Orca is a screen reader that provides access to the graphical desktop\n"
 "via speech and refreshable braille.  Orca works with applications and toolkits\n"
 "that support the Assistive Technology Service Provider Interface (AT-SPI)."
 msgstr ""
+"Orca es un lector de pantalla que proporciona acceso al escritorio\n"
+"gráfico a través de la voz y de braille refrescable. Orca trabaja con\n"
+"aplicaciones y biblootecas de herramienteas e implementa la interfaz\n"
+"AT-SPI (interfaz para proveedores de servicios de tecnologías de\n"
+"asistencia)."
 
-#: gnu/packages/gnome.scm:7198
+#: gnu/packages/gnome.scm:10200
 msgid "GNOME's alternative spell checker"
 msgstr "Comprobador ortográfico alternativo de GNOME"
 
-#: gnu/packages/gnome.scm:7200
+#: gnu/packages/gnome.scm:10202
 msgid ""
 "gspell provides a flexible API to add spell-checking to a GTK+\n"
 "application.  It provides a GObject API, spell-checking to text entries and\n"
 "text views, and buttons to choose the language."
 msgstr ""
 
-#: gnu/packages/gnome.scm:7242
+#: gnu/packages/gnome.scm:10244
 msgid "Project management software for the GNOME desktop"
-msgstr ""
+msgstr "Software de gestión de proyectos para el escritorio GNOME"
 
-#: gnu/packages/gnome.scm:7244
+#: gnu/packages/gnome.scm:10246
 msgid ""
 "GNOME Planner is a project management tool based on the Work Breakdown\n"
 "Structure (WBS).  Its goal is to enable you to easily plan projects.  Based on\n"
@@ -6743,11 +9695,11 @@ msgid ""
 "views can be printed as PDF or PostScript files, or exported to HTML."
 msgstr ""
 
-#: gnu/packages/gnome.scm:7310
+#: gnu/packages/gnome.scm:10318
 msgid "GNOME music playing application"
 msgstr "Aplicación de reproducción musical de GNOME"
 
-#: gnu/packages/gnome.scm:7312
+#: gnu/packages/gnome.scm:10320
 msgid ""
 "Lollypop is a music player designed to play well with GNOME desktop.\n"
 "Lollypop plays audio formats such as mp3, mp4, ogg and flac and gets information\n"
@@ -6755,23 +9707,24 @@ msgid ""
 "automatically and it can stream songs from online music services and charts."
 msgstr ""
 
-#: gnu/packages/gnome.scm:7339
+#: gnu/packages/gnome.scm:10343
 msgid "Video effects for Cheese and other GNOME applications"
-msgstr ""
+msgstr "Efectos de vídeo para Cheese y otras aplicaciones de GNOME"
 
-#: gnu/packages/gnome.scm:7341
+#: gnu/packages/gnome.scm:10345
 msgid ""
 "A collection of GStreamer video filters and effects to be used in\n"
 "photo-booth-like software, such as Cheese."
 msgstr ""
 "Una colección de filtros de vídeo GStreamer y efectos para ser\n"
-"utilizados en software de tipo foto, como Cheese."
+"utilizados en software de captura fotográfica, como Cheese."
 
-#: gnu/packages/gnome.scm:7401
+# FUZZY
+#: gnu/packages/gnome.scm:10419
 msgid "Webcam photo booth software for GNOME"
-msgstr ""
+msgstr "Software de captura fotográfica y audiovisual para GNOME"
 
-#: gnu/packages/gnome.scm:7403
+#: gnu/packages/gnome.scm:10421
 msgid ""
 "Cheese uses your webcam to take photos and videos.  Cheese can also\n"
 "apply fancy special effects and lets you share the fun with others."
@@ -6779,11 +9732,23 @@ msgstr ""
 "Cheese utiliza su cámara web para tomar fotos y vídeos.  Cheese también\n"
 "puede aplicar efectos especiales divertidos y deja compartir con otros."
 
-#: gnu/packages/gnome.scm:7440
-msgid "Audio music cd ripper"
+#: gnu/packages/gnome.scm:10472
+#, fuzzy
+msgid "Password manager for the GNOME desktop"
+msgstr "Fondo de imágenes para el escritorio GNOME"
+
+#: gnu/packages/gnome.scm:10474
+msgid ""
+"Password Safe is a password manager which makes use of the KeePass v4\n"
+"format.  It integrates perfectly with the GNOME desktop and provides an easy\n"
+"and uncluttered interface for the management of password databases."
 msgstr ""
 
-#: gnu/packages/gnome.scm:7441
+#: gnu/packages/gnome.scm:10512
+msgid "Audio music cd ripper"
+msgstr "Extractor de música de CD"
+
+#: gnu/packages/gnome.scm:10513
 msgid ""
 "Sound Juicer extracts audio from compact discs and convert it\n"
 "into audio files that a personal computer or digital audio player can play.\n"
@@ -6791,45 +9756,43 @@ msgid ""
 "mp3, Ogg Vorbis and FLAC"
 msgstr ""
 
-#: gnu/packages/gnome.scm:7498
+#: gnu/packages/gnome.scm:10567
 msgid "Convert between audio formats with a graphical interface"
 msgstr ""
 
-#: gnu/packages/gnome.scm:7500
+#: gnu/packages/gnome.scm:10569
 msgid ""
 "SoundConverter supports converting between many audio formats including\n"
 "Opus, Ogg Vorbis, FLAC and more.  It supports parallel conversion, and\n"
 "configurable file renaming. "
 msgstr ""
 
-#: gnu/packages/gnome.scm:7543
+#: gnu/packages/gnome.scm:10615
 msgid "Tool to help prevent repetitive strain injury (RSI)"
 msgstr ""
 
-#: gnu/packages/gnome.scm:7545
+#: gnu/packages/gnome.scm:10617
 msgid ""
 "Workrave is a program that assists in the recovery and prevention of\n"
 "repetitive strain injury (@dfn{RSI}).  The program frequently alerts you to take\n"
 "micro-pauses and rest breaks, and restricts you to your daily limit."
 msgstr ""
 
-#: gnu/packages/gnome.scm:7574
-#, fuzzy
-#| msgid "GNOME text editor"
+#: gnu/packages/gnome.scm:10657
 msgid "GNOME hexadecimal editor"
-msgstr "Editor textual de GNOME"
+msgstr "Editor hexadecimal de GNOME"
 
-#: gnu/packages/gnome.scm:7575
+#: gnu/packages/gnome.scm:10658
 msgid ""
 "The GHex program can view and edit files in two ways:\n"
 "hexadecimal or ASCII.  It is useful for editing binary files in general."
 msgstr ""
 
-#: gnu/packages/gnome.scm:7619
+#: gnu/packages/gnome.scm:10696
 msgid "Companion library to GObject and Gtk+"
 msgstr ""
 
-#: gnu/packages/gnome.scm:7620
+#: gnu/packages/gnome.scm:10697
 msgid ""
 "The libdazzle library is a companion library to GObject and\n"
 "Gtk+.  It provides various features that the authors wish were in the\n"
@@ -6838,43 +9801,370 @@ msgid ""
 "generic enough to work for everyone."
 msgstr ""
 
-#: gnu/packages/gnome.scm:7668
+#: gnu/packages/gnome.scm:10766
 msgid "Manage your email, contacts and schedule"
 msgstr ""
 
-#: gnu/packages/gnome.scm:7669
+#: gnu/packages/gnome.scm:10767
 msgid ""
 "Evolution is a personal information management application\n"
 "that provides integrated mail, calendaring and address book\n"
 "functionality."
 msgstr ""
 
-#: gnu/packages/gnuzilla.scm:137
+#: gnu/packages/gnome.scm:10817
+#, fuzzy
+msgid "GNOME image viewer and browser"
+msgstr "Visor de imágenes de GNOME"
+
+#: gnu/packages/gnome.scm:10818
+msgid ""
+"GThumb is an image viewer, browser, organizer, editor and\n"
+"advanced image management tool"
+msgstr ""
+
+#: gnu/packages/gnome.scm:10869
+msgid "Store and run multiple GNOME terminals in one window"
+msgstr ""
+
+#: gnu/packages/gnome.scm:10871
+msgid ""
+"Terminator allows you to run multiple GNOME terminals in a grid and\n"
+"+tabs, and it supports drag and drop re-ordering of terminals."
+msgstr ""
+
+#: gnu/packages/gnome.scm:10917
+msgid "Library full of GTK+ widgets for mobile phones"
+msgstr ""
+
+#: gnu/packages/gnome.scm:10918
+msgid ""
+"The aim of the handy library is to help with developing user\n"
+"interfaces for mobile devices using GTK+.  It provides responsive GTK+ widgets\n"
+"for usage on small and big screens."
+msgstr ""
+
+#: gnu/packages/gnome.scm:10967
+msgid "GLib wrapper around the libgit2 Git access library"
+msgstr ""
+
+#: gnu/packages/gnome.scm:10968
+msgid ""
+"libgit2-glib is a GLib wrapper library around the libgit2 Git\n"
+"access library.  It only implements the core plumbing functions, not really the\n"
+"higher level porcelain stuff."
+msgstr ""
+
+#: gnu/packages/gnome.scm:11031
+#, fuzzy
+msgid "Graphical user interface for git"
+msgstr "Interfaz gráfico del usuario para FluidSynth"
+
+#: gnu/packages/gnome.scm:11033
+msgid ""
+"gitg is a graphical user interface for git.  It aims at being a small,\n"
+"fast and convenient tool to visualize the history of git repositories.\n"
+"Besides visualization, gitg also provides several utilities to manage your\n"
+"repository and commit your work."
+msgstr ""
+
+#: gnu/packages/gnome.scm:11070
+msgid "File alteration monitor"
+msgstr ""
+
+#: gnu/packages/gnome.scm:11072
+msgid ""
+"Gamin is a file and directory monitoring system defined to be a subset\n"
+"of the FAM (File Alteration Monitor) system.  This is a service provided by a\n"
+"library which detects when a file or a directory has been modified."
+msgstr ""
+
+#: gnu/packages/gnome.scm:11107
+msgid "Mahjongg tile-matching game"
+msgstr ""
+
+#: gnu/packages/gnome.scm:11108
+msgid ""
+"GNOME Mahjongg is a game based on the classic Chinese\n"
+"tile-matching game Mahjong.  It features multiple board layouts, tile themes,\n"
+"and a high score table."
+msgstr ""
+
+#: gnu/packages/gnome.scm:11145
+#, fuzzy
+msgid "GNOME Extra Themes"
+msgstr "Tema de iconos de GNOME"
+
+#: gnu/packages/gnome.scm:11146
+msgid ""
+"This package provides themes and related elements that don't\n"
+"really fit in other upstream packages.  It offers legacy support for GTK+ 2\n"
+"versions of Adwaita, Adwaita-dark and HighContrast themes.  It also provides\n"
+"index files needed for Adwaita to be used outside of GNOME."
+msgstr ""
+
+#: gnu/packages/gnome.scm:11183
+#, fuzzy
+msgid "Note-taking application for the GNOME desktop"
+msgstr "Iconos para el escritorio GNOME."
+
+#: gnu/packages/gnome.scm:11185
+msgid ""
+"Gnote is a note-taking application written for the GNOME desktop\n"
+"environment."
+msgstr ""
+
+#: gnu/packages/gnome.scm:11238
+#, fuzzy
+msgid "Simple IRC Client"
+msgstr "Cliente IRC gráfico"
+
+#: gnu/packages/gnome.scm:11240
+msgid ""
+"Polari is a simple Internet Relay Chat (IRC) client that is designed to\n"
+"integrate seamlessly with the GNOME desktop."
+msgstr ""
+
+#: gnu/packages/gnome.scm:11292
+msgid "View, access, and manage remote and virtual systems"
+msgstr ""
+
+#: gnu/packages/gnome.scm:11293
+msgid ""
+"GNOME Boxes is a simple application to view, access, and\n"
+"manage remote and virtual systems.  Note that this application requires the\n"
+"@code{libvirt} and @code{virtlog} daemons to run.  Use the command\n"
+"@command{info '(guix) Virtualization Services'} to learn how to configure\n"
+"these services on the Guix System."
+msgstr ""
+
+#: gnu/packages/gnome.scm:11373
+msgid "GNOME email application built around conversations"
+msgstr ""
+
+#: gnu/packages/gnome.scm:11375
+msgid ""
+"Geary collects related messages together into conversations,\n"
+"making it easy to find and follow your discussions.  Full-text and keyword\n"
+"search makes it easy to find the email you are looking for.  Geary's\n"
+"full-featured composer lets you send rich, styled text with images, links, and\n"
+"lists, but also send lightweight, easy to read text messages.  Geary\n"
+"automatically picks up your existing GNOME Online Accounts, and adding more is\n"
+"easy.  Geary has a clean, fast, modern interface that works like you want it\n"
+"to."
+msgstr ""
+
+#: gnu/packages/gnome.scm:11418
+msgid "Program for creating labels and business cards"
+msgstr ""
+
+#: gnu/packages/gnome.scm:11420
+msgid ""
+"gLabels is a program for creating labels and business cards.  It is\n"
+"designed to work with various laser/ink-jet peel-off label and business\n"
+"card sheets that you’ll find at most office supply stores."
+msgstr ""
+
+#: gnu/packages/gnome.scm:11460
+#, fuzzy
+msgid "LaTeX editor for the GNOME desktop"
+msgstr "Iconos para el escritorio GNOME."
+
+#: gnu/packages/gnome.scm:11462
+msgid ""
+"GNOME LaTeX is a LaTeX editor for the GNOME desktop.  It has features\n"
+"such as build tools, completion of LaTeX commands, structure navigation,\n"
+"symbol tables, document templates, project management, spell-checking, menus\n"
+"and toolbars."
+msgstr ""
+
+#: gnu/packages/gnome.scm:11519
+msgid "DBus daemon and utility for configuring gaming mice"
+msgstr ""
+
+#: gnu/packages/gnome.scm:11520
+msgid ""
+"libratbag provides @command{ratbagd}, a DBus daemon to\n"
+"configure input devices, mainly gaming mice.  The daemon provides a generic\n"
+"way to access the various features exposed by these mice and abstracts away\n"
+"hardware-specific and kernel-specific quirks.  There is also the\n"
+"@command{ratbagctl} command line interface for configuring devices.\n"
+"\n"
+"libratbag currently supports devices from Logitech, Etekcity, GSkill, Roccat,\n"
+"Steelseries.\n"
+"\n"
+"The ratbagd DBus service can be enabled by adding the following service to\n"
+"your operating-system definition:\n"
+"\n"
+"  (simple-service 'ratbagd dbus-root-service-type (list libratbag))"
+msgstr ""
+
+#: gnu/packages/gnome.scm:11588
+msgid "Configure bindings and LEDs on gaming mice"
+msgstr ""
+
+#: gnu/packages/gnome.scm:11589
+msgid ""
+"Piper is a GTK+ application for configuring gaming mice with\n"
+"onboard configuration for key bindings via libratbag.  Piper requires\n"
+"a @command{ratbagd} daemon running with root privileges.  It can be run\n"
+"manually as root, but is preferably configured as a DBus service that can\n"
+"launch on demand.  This can be configured by enabling the following service,\n"
+"provided there is a DBus service present:\n"
+"\n"
+"  (simple-service 'ratbagd dbus-root-service-type (list libratbag))"
+msgstr ""
+
+#: gnu/packages/gnome.scm:11646
+msgid "GNOME audio player for transcription"
+msgstr ""
+
+#: gnu/packages/gnome.scm:11647
+msgid ""
+"Parlatype is an audio player for the GNOME desktop\n"
+"environment.  Its main purpose is the manual transcription of spoken\n"
+"audio files."
+msgstr ""
+
+#: gnu/packages/gnome.scm:11674
+#, fuzzy
+msgid "JSON-RPC library for GLib"
+msgstr "Biblioteca JSON para R"
+
+#: gnu/packages/gnome.scm:11675
+msgid ""
+"Jsonrpc-GLib is a library to communicate with JSON-RPC based\n"
+"peers in either a synchronous or asynchronous fashion.  It also allows\n"
+"communicating using the GVariant serialization format instead of JSON when\n"
+"both peers support it.  You might want that when communicating on a single\n"
+"host to avoid parser overhead and memory-allocator fragmentation."
+msgstr ""
+
+#: gnu/packages/gnome.scm:11708
+msgid "Haptic/visual/audio feedback via DBus"
+msgstr ""
+
+#: gnu/packages/gnome.scm:11709
+msgid ""
+"Feedbackd provides a DBus daemon to act on events to provide\n"
+"haptic, visual and audio feedback.  It offers the libfeedbackd library and\n"
+"GObject introspection bindings."
+msgstr ""
+
+#: gnu/packages/gnome.scm:11757
+msgid "System-wide performance profiler for GNU/Linux"
+msgstr ""
+
+#: gnu/packages/gnome.scm:11759
+msgid ""
+"Sysprof performs detailed, accurate, and fast CPU profiling of an entire\n"
+"GNU/Linux system including the kernel and all user-space applications.  This\n"
+"helps find the function(s) in which a program spends most of its time.\n"
+"\n"
+"It uses the kernel's built-in @code{ptrace} feature and handles shared\n"
+"libraries.  Applications do not need to be recompiled--or even restarted."
+msgstr ""
+
+#: gnu/packages/gnome.scm:11836
+#, fuzzy
+msgid "Toolsmith for GNOME-based applications"
+msgstr "Aplicación calendario de GNOME"
+
+#: gnu/packages/gnome.scm:11837
+msgid ""
+"Builder aims to be an integrated development\n"
+"environment (IDE) for writing GNOME-based software.  It features fuzzy search,\n"
+"auto-completion, a mini code map, documentation browsing, Git integration, an\n"
+"integrated profiler via Sysprof, debugging support, and more."
+msgstr ""
+
+#: gnu/packages/gnome.scm:11905
+#, fuzzy
+msgid "Manga reader for GNOME"
+msgstr "Creación de diagrama para GNOME"
+
+#: gnu/packages/gnome.scm:11906
+msgid ""
+"Komikku is an online/offline manga reader for GNOME,\n"
+"developed with the aim of being used with the Librem 5 phone."
+msgstr ""
+
+#: gnu/packages/gnome.scm:11981
+#, fuzzy
+msgid "Uniform data access"
+msgstr "Monitor de acceso a fichero"
+
+#: gnu/packages/gnome.scm:11983
+msgid ""
+"GNU Data Access (GDA) is an attempt to provide uniform access to\n"
+"different kinds of data sources (databases, information servers, mail spools,\n"
+"etc).  It is a complete architecture that provides all you need to access\n"
+"your data."
+msgstr ""
+
+#: gnu/packages/gnome.scm:12030
+#, fuzzy
+msgid "Translation making program"
+msgstr "Probando programa TCP"
+
+#: gnu/packages/gnome.scm:12032
+msgid ""
+"gtranslator is a quite comfortable gettext po/po.gz/(g)mo files editor\n"
+"for the GNOME 3.x platform with many features.  It aims to be a very complete\n"
+"editing environment for translation issues within the GNU gettext/GNOME desktop\n"
+"world."
+msgstr ""
+
+#: gnu/packages/gnuzilla.scm:146
 msgid "Mozilla javascript engine"
 msgstr "Motor JavaScript Mozilla"
 
-#: gnu/packages/gnuzilla.scm:138
+#: gnu/packages/gnuzilla.scm:147
 msgid ""
 "SpiderMonkey is Mozilla's JavaScript engine written\n"
 "in C/C++."
 msgstr ""
 
-#: gnu/packages/gnuzilla.scm:955
+#: gnu/packages/gnuzilla.scm:1148
 msgid "Entirely free browser derived from Mozilla Firefox"
 msgstr ""
 
-#: gnu/packages/gnuzilla.scm:957
+#: gnu/packages/gnuzilla.scm:1150
 msgid ""
 "IceCat is the GNU version of the Firefox browser.  It is entirely free\n"
 "software, which does not recommend non-free plugins and addons.  It also\n"
-"features built-in privacy-protecting features."
+"features built-in privacy-protecting features.\n"
+"\n"
+"WARNING: IceCat 78 has not yet been released by the upstream IceCat project.\n"
+"This is a preview release, and does not currently meet the privacy-respecting\n"
+"standards of the IceCat project."
+msgstr ""
+
+#: gnu/packages/gnuzilla.scm:1473
+msgid "Rebranded Mozilla Thunderbird email client"
 msgstr ""
 
-#: gnu/packages/gtk.scm:109
+#: gnu/packages/gnuzilla.scm:1475
+msgid ""
+"This package provides an email client built based on Mozilla\n"
+"Thunderbird.  It supports email, news feeds, chat, calendar and contacts."
+msgstr ""
+
+#: gnu/packages/gnuzilla.scm:1514
+msgid "Tool to extract passwords from Mozilla profiles"
+msgstr ""
+
+#: gnu/packages/gnuzilla.scm:1515
+msgid ""
+"Firefox Decrypt is a tool to extract passwords from\n"
+"Mozilla (Firefox, Waterfox, Thunderbird, SeaMonkey) profiles."
+msgstr ""
+
+#: gnu/packages/gtk.scm:114
 msgid "GNOME accessibility toolkit"
 msgstr "(Kit de herramientas de accesibilidad GNOME"
 
-#: gnu/packages/gtk.scm:111
+#: gnu/packages/gtk.scm:116
 msgid ""
 "ATK provides the set of accessibility interfaces that are implemented\n"
 "by other toolkits and applications.  Using the ATK interfaces, accessibility\n"
@@ -6885,11 +10175,11 @@ msgstr ""
 "de accesibilidad tienen acceso completo para ver ty controlar ejecuciones de \n"
 "aplicaciones."
 
-#: gnu/packages/gtk.scm:150
+#: gnu/packages/gtk.scm:157
 msgid "2D graphics library"
 msgstr "Biblioteca de gráficos 2D"
 
-#: gnu/packages/gtk.scm:152
+#: gnu/packages/gtk.scm:159
 msgid ""
 "Cairo is a 2D graphics library with support for multiple output devices.\n"
 "Currently supported output targets include the X Window System (via both\n"
@@ -6907,56 +10197,79 @@ msgid ""
 "affine transformation (scale, rotation, shear, etc.)."
 msgstr ""
 
-#: gnu/packages/gtk.scm:180
+#: gnu/packages/gtk.scm:193
 msgid "2D graphics library (with X11 support)"
 msgstr "Biblioteca de gráficos 2D (con apoyo X11)"
 
-#: gnu/packages/gtk.scm:214
+#: gnu/packages/gtk.scm:228
 msgid "OpenType text shaping engine"
 msgstr ""
 
-#: gnu/packages/gtk.scm:216
+#: gnu/packages/gtk.scm:230
 msgid "HarfBuzz is an OpenType text shaping engine."
 msgstr ""
 
-#: gnu/packages/gtk.scm:252
+#: gnu/packages/gtk.scm:258
+#, fuzzy
+msgid "Double-Array Trie Library"
+msgstr "Biblioteca de módulo jugador"
+
+#: gnu/packages/gtk.scm:259
+msgid ""
+"Libdatrie is an implementation of double-array structure for\n"
+"representing trie.  Trie is a kind of digital search tree."
+msgstr ""
+
+#: gnu/packages/gtk.scm:289
+#, fuzzy
+msgid "Thai language support library"
+msgstr "Capacidad Babel para inglés"
+
+#: gnu/packages/gtk.scm:290
+msgid ""
+"LibThai is a set of Thai language support routines aimed to\n"
+"ease developers’ tasks to incorporate Thai language support in their\n"
+"applications."
+msgstr ""
+
+#: gnu/packages/gtk.scm:339
 msgid "GNOME text and font handling library"
 msgstr ""
 
-#: gnu/packages/gtk.scm:254
+#: gnu/packages/gtk.scm:341
 msgid ""
 "Pango is the core text and font handling library used in GNOME\n"
 "applications.  It has extensive support for the different writing systems\n"
 "used throughout the world."
 msgstr ""
 
-#: gnu/packages/gtk.scm:280
+#: gnu/packages/gtk.scm:382
 msgid "Obsolete pango functions"
 msgstr "Funciones pango obsoletas"
 
-#: gnu/packages/gtk.scm:281
+#: gnu/packages/gtk.scm:383
 msgid ""
 "Pangox was a X backend to pango.  It is now obsolete and no\n"
 "longer provided by recent pango releases.  pangox-compat provides the\n"
 "functions which were removed."
 msgstr ""
 
-#: gnu/packages/gtk.scm:319
+#: gnu/packages/gtk.scm:418
 msgid "GTK+ widget for interactive graph-like environments"
 msgstr ""
 
-#: gnu/packages/gtk.scm:321
+#: gnu/packages/gtk.scm:420
 msgid ""
 "Ganv is an interactive GTK+ widget for interactive “boxes and lines” or\n"
 "graph-like environments, e.g. modular synths or finite state machine\n"
 "diagrams."
 msgstr ""
 
-#: gnu/packages/gtk.scm:390
+#: gnu/packages/gtk.scm:474
 msgid "Widget that extends the standard GTK+ 2.x 'GtkTextView' widget"
 msgstr ""
 
-#: gnu/packages/gtk.scm:392
+#: gnu/packages/gtk.scm:476
 msgid ""
 "GtkSourceView is a portable C library that extends the standard GTK+\n"
 "framework for multiline text editing with support for configurable syntax\n"
@@ -6964,56 +10277,56 @@ msgid ""
 "printing and other features typical of a source code editor."
 msgstr ""
 
-#: gnu/packages/gtk.scm:441
+#: gnu/packages/gtk.scm:525
 msgid "GNOME source code widget"
 msgstr "Widget de código fuente GNOME"
 
-#: gnu/packages/gtk.scm:442
+#: gnu/packages/gtk.scm:526
 msgid ""
 "GtkSourceView is a text widget that extends the standard\n"
 "GTK+ text widget GtkTextView.  It improves GtkTextView by implementing syntax\n"
 "highlighting and other features typical of a source code editor."
 msgstr ""
 
-#: gnu/packages/gtk.scm:509
+#: gnu/packages/gtk.scm:597
 msgid "GNOME image loading and manipulation library"
 msgstr ""
 
-#: gnu/packages/gtk.scm:511
+#: gnu/packages/gtk.scm:599
 msgid ""
 "GdkPixbuf is a library for image loading and manipulation developed\n"
 "in the GNOME project."
 msgstr ""
 
-#: gnu/packages/gtk.scm:545
+#: gnu/packages/gtk.scm:633
 msgid "GNOME image loading and manipulation library, with SVG support"
 msgstr ""
 
-#: gnu/packages/gtk.scm:585
+#: gnu/packages/gtk.scm:697
 msgid "Assistive Technology Service Provider Interface, core components"
 msgstr ""
 
-#: gnu/packages/gtk.scm:587
+#: gnu/packages/gtk.scm:699
 msgid ""
 "The Assistive Technology Service Provider Interface, core components,\n"
 "is part of the GNOME accessibility project."
 msgstr ""
 
-#: gnu/packages/gtk.scm:620
+#: gnu/packages/gtk.scm:754
 msgid "Assistive Technology Service Provider Interface, ATK bindings"
 msgstr ""
 
-#: gnu/packages/gtk.scm:622
+#: gnu/packages/gtk.scm:756
 msgid ""
 "The Assistive Technology Service Provider Interface\n"
 "is part of the GNOME accessibility project."
 msgstr ""
 
-#: gnu/packages/gtk.scm:682
+#: gnu/packages/gtk.scm:821
 msgid "Cross-platform toolkit for creating graphical user interfaces"
 msgstr ""
 
-#: gnu/packages/gtk.scm:684
+#: gnu/packages/gtk.scm:823
 msgid ""
 "GTK+, or the GIMP Toolkit, is a multi-platform toolkit for creating\n"
 "graphical user interfaces.  Offering a complete set of widgets, GTK+ is\n"
@@ -7021,11 +10334,11 @@ msgid ""
 "application suites."
 msgstr ""
 
-#: gnu/packages/gtk.scm:840
+#: gnu/packages/gtk.scm:966
 msgid "Cairo bindings for GNU Guile"
 msgstr "Enlazando Cairo para GNU Guile"
 
-#: gnu/packages/gtk.scm:842
+#: gnu/packages/gtk.scm:968
 msgid ""
 "Guile-Cairo wraps the Cairo graphics library for Guile Scheme.\n"
 "Guile-Cairo is complete, wrapping almost all of the Cairo API.  It is API\n"
@@ -7035,21 +10348,21 @@ msgid ""
 "exceptions, macros, and a dynamic programming environment."
 msgstr ""
 
-#: gnu/packages/gtk.scm:890
+#: gnu/packages/gtk.scm:1029
 msgid "Render SVG images using Cairo from Guile"
 msgstr ""
 
-#: gnu/packages/gtk.scm:892
+#: gnu/packages/gtk.scm:1031
 msgid ""
 "Guile-RSVG wraps the RSVG library for Guile, allowing you to render SVG\n"
 "images onto Cairo surfaces."
 msgstr ""
 
-#: gnu/packages/gtk.scm:932
+#: gnu/packages/gtk.scm:1101
 msgid "Create SVG or PDF presentations in Guile"
 msgstr ""
 
-#: gnu/packages/gtk.scm:934
+#: gnu/packages/gtk.scm:1103
 msgid ""
 "Guile-Present defines a declarative vocabulary for presentations,\n"
 "together with tools to render presentation documents as SVG or PDF.\n"
@@ -7058,51 +10371,51 @@ msgid ""
 "documents."
 msgstr ""
 
-#: gnu/packages/gtk.scm:988
+#: gnu/packages/gtk.scm:1170
 msgid "Guile interface for GTK+ programming for GNOME"
 msgstr ""
 
-#: gnu/packages/gtk.scm:990
+#: gnu/packages/gtk.scm:1172
 msgid ""
 "Includes guile-clutter, guile-gnome-gstreamer,\n"
 "guile-gnome-platform (GNOME developer libraries), and guile-gtksourceview."
 msgstr ""
 
-#: gnu/packages/gtk.scm:1023
+#: gnu/packages/gtk.scm:1205
 msgid "C++ bindings to the Cairo 2D graphics library"
 msgstr ""
 
-#: gnu/packages/gtk.scm:1025
+#: gnu/packages/gtk.scm:1207
 msgid ""
 "Cairomm provides a C++ programming interface to the Cairo 2D graphics\n"
 "library."
 msgstr ""
 
-#: gnu/packages/gtk.scm:1049
+#: gnu/packages/gtk.scm:1248
 msgid "C++ interface to the Pango text rendering library"
 msgstr ""
 
-#: gnu/packages/gtk.scm:1051
+#: gnu/packages/gtk.scm:1250
 msgid ""
 "Pangomm provides a C++ programming interface to the Pango text rendering\n"
 "library."
 msgstr ""
 
-#: gnu/packages/gtk.scm:1072
+#: gnu/packages/gtk.scm:1290
 msgid "C++ interface to the ATK accessibility library"
 msgstr ""
 
-#: gnu/packages/gtk.scm:1074
+#: gnu/packages/gtk.scm:1292
 msgid ""
 "ATKmm provides a C++ programming interface to the ATK accessibility\n"
 "toolkit."
 msgstr ""
 
-#: gnu/packages/gtk.scm:1118
+#: gnu/packages/gtk.scm:1333
 msgid "C++ interface to the GTK+ graphical user interface library"
 msgstr ""
 
-#: gnu/packages/gtk.scm:1120
+#: gnu/packages/gtk.scm:1335
 msgid ""
 "gtkmm is the official C++ interface for the popular GUI library GTK+.\n"
 "Highlights include typesafe callbacks, and a comprehensive set of widgets that\n"
@@ -7111,11 +10424,11 @@ msgid ""
 "extensive documentation, including API reference and a tutorial."
 msgstr ""
 
-#: gnu/packages/gtk.scm:1169
+#: gnu/packages/gtk.scm:1383
 msgid "C++ interface to the GTK+ 'GtkTextView' widget"
 msgstr ""
 
-#: gnu/packages/gtk.scm:1171
+#: gnu/packages/gtk.scm:1385
 msgid ""
 "gtksourceviewmm is a portable C++ library that extends the standard GTK+\n"
 "framework for multiline text editing with support for configurable syntax\n"
@@ -7123,41 +10436,41 @@ msgid ""
 "printing and other features typical of a source code editor."
 msgstr ""
 
-#: gnu/packages/gtk.scm:1201
+#: gnu/packages/gtk.scm:1415
 msgid "Python bindings for cairo"
 msgstr "Enlace Python para cairo"
 
-#: gnu/packages/gtk.scm:1203
+#: gnu/packages/gtk.scm:1417
 msgid "Pycairo is a set of Python bindings for the Cairo graphics library."
 msgstr ""
 
-#: gnu/packages/gtk.scm:1276
+#: gnu/packages/gtk.scm:1502
 msgid "Python bindings for GTK+"
 msgstr "Enlaces Python para GTK+"
 
-#: gnu/packages/gtk.scm:1278
+#: gnu/packages/gtk.scm:1504
 msgid ""
 "PyGTK allows you to write full featured GTK programs in Python.  It is\n"
 "targeted at GTK 2.x, and can be used in conjunction with gnome-python to\n"
 "write GNOME applications."
 msgstr ""
 
-#: gnu/packages/gtk.scm:1302
+#: gnu/packages/gtk.scm:1528
 msgid "Perl interface to the cairo 2d vector graphics library"
 msgstr ""
 
-#: gnu/packages/gtk.scm:1303
+#: gnu/packages/gtk.scm:1529
 msgid ""
 "Cairo provides Perl bindings for the vector graphics library\n"
 "cairo.  It supports multiple output targets, including PNG, PDF and SVG.  Cairo\n"
 "produces identical output on all those targets."
 msgstr ""
 
-#: gnu/packages/gtk.scm:1328
+#: gnu/packages/gtk.scm:1564
 msgid "Perl interface to the 2.x series of the Gimp Toolkit library"
 msgstr ""
 
-#: gnu/packages/gtk.scm:1329
+#: gnu/packages/gtk.scm:1565
 msgid ""
 "Perl bindings to the 2.x series of the Gtk+ widget set.\n"
 "This module allows you to write graphical user interfaces in a Perlish and\n"
@@ -7165,11 +10478,11 @@ msgid ""
 "yet remaining very close in spirit to original API."
 msgstr ""
 
-#: gnu/packages/gtk.scm:1356
+#: gnu/packages/gtk.scm:1592
 msgid "Layout and render international text"
 msgstr ""
 
-#: gnu/packages/gtk.scm:1357
+#: gnu/packages/gtk.scm:1593
 msgid ""
 "Pango is a library for laying out and rendering text, with an\n"
 "emphasis on internationalization.  Pango can be used anywhere that text layout\n"
@@ -7186,11 +10499,11 @@ msgid ""
 "and routines to assist in editing internationalized text."
 msgstr ""
 
-#: gnu/packages/gtk.scm:1410
+#: gnu/packages/gtk.scm:1647
 msgid "Library for minimalistic gtk+3 user interfaces"
 msgstr ""
 
-#: gnu/packages/gtk.scm:1411
+#: gnu/packages/gtk.scm:1648
 msgid ""
 "Girara is a library that implements a user interface that\n"
 "focuses on simplicity and minimalism.  Currently based on GTK+, a\n"
@@ -7201,11 +10514,11 @@ msgid ""
 "information."
 msgstr ""
 
-#: gnu/packages/gtk.scm:1510
+#: gnu/packages/gtk.scm:1747
 msgid "Documentation generator from C source code"
 msgstr "Generador de documentación desde código fuente C"
 
-#: gnu/packages/gtk.scm:1512
+#: gnu/packages/gtk.scm:1749
 msgid ""
 "GTK-Doc generates API documentation from comments added to C code.  It is\n"
 "typically used to document the public API of GTK+ and GNOME libraries, but it\n"
@@ -7215,86 +10528,149 @@ msgstr ""
 "Típicamente es utilizado para documentos al API pública de bibliotecas GTK+ y\n"
 "GNOME, pero puede ser además utilizado al código de aplicación documentado."
 
-#: gnu/packages/gtk.scm:1540
+#: gnu/packages/gtk.scm:1777
 msgid "Theming engines for GTK+ 2.x"
 msgstr "Motores de temarios para GTK+ 2.x"
 
-#: gnu/packages/gtk.scm:1542
+#: gnu/packages/gtk.scm:1779
 msgid ""
 "This package contains the standard GTK+ 2.x theming engines including\n"
 "Clearlooks, Crux, High Contrast, Industrial, LighthouseBlue, Metal, Mist,\n"
 "Redmond95 and ThinIce."
 msgstr ""
 
-#: gnu/packages/gtk.scm:1570
+#: gnu/packages/gtk.scm:1807
 msgid "Cairo-based theming engine for GTK+ 2.x"
 msgstr ""
 
-#: gnu/packages/gtk.scm:1572
+#: gnu/packages/gtk.scm:1809
 msgid ""
 "Murrine is a cairo-based GTK+ theming engine.  It is named after the\n"
 "glass artworks done by Venicians glass blowers."
 msgstr ""
 
-#: gnu/packages/gtk.scm:1598
+#: gnu/packages/gtk.scm:1836
 msgid "Spell-checking addon for GTK's TextView widget"
 msgstr ""
 
-#: gnu/packages/gtk.scm:1600
+#: gnu/packages/gtk.scm:1838
 msgid ""
 "GtkSpell provides word-processor-style highlighting and replacement of\n"
 "misspelled words in a GtkTextView widget."
 msgstr ""
 
-#: gnu/packages/gtk.scm:1626
+#: gnu/packages/gtk.scm:1864
 msgid "Lightweight GTK+ clipboard manager"
 msgstr "Gestor de portapapeles GTK+ ligero"
 
-#: gnu/packages/gtk.scm:1628
+#: gnu/packages/gtk.scm:1866
 msgid ""
 "ClipIt is a clipboard manager with features such as a history, search\n"
 "thereof, global hotkeys and clipboard item actions.  It was forked from\n"
 "Parcellite and adds bugfixes and features."
 msgstr ""
 
-#: gnu/packages/gtk.scm:1660
+#: gnu/packages/gtk.scm:1899
 msgid "Thin layer of graphic data types"
 msgstr "Capa delgada para tipos de datos gráficos"
 
-#: gnu/packages/gtk.scm:1661
+#: gnu/packages/gtk.scm:1900
 msgid ""
-"This library provides graphic types and their relative API;\n"
-"it does not deal with windowing system surfaces, drawing, scene graphs, or\n"
-"input."
+"Graphene provides graphic types and their relative API; it\n"
+"does not deal with windowing system surfaces, drawing, scene graphs, or input."
 msgstr ""
 
-#: gnu/packages/gtk.scm:1686
+#: gnu/packages/gtk.scm:1925
 msgid "Gtk+ widget for dealing with 2-D tabular data"
 msgstr ""
 
-#: gnu/packages/gtk.scm:1688
+#: gnu/packages/gtk.scm:1927
 msgid ""
 "GNU Spread Sheet Widget is a library for Gtk+ which provides a widget for\n"
 "viewing and manipulating 2 dimensional tabular data in a manner similar to many\n"
 "popular spread sheet programs."
 msgstr ""
 
-#: gnu/packages/gtk.scm:1729
+#: gnu/packages/gtk.scm:1955
+msgid "System tray volume applet"
+msgstr ""
+
+#: gnu/packages/gtk.scm:1957
+msgid ""
+"Volume Icon is a volume indicator and control applet for @acronym{the\n"
+"Advanced Linux Sound Architecture, ALSA}.  It sits in the system tray,\n"
+"independent of your desktop environment, and supports global key bindings."
+msgstr ""
+
+#: gnu/packages/gtk.scm:2000
 msgid "GTK+ dialog boxes for shell scripts"
 msgstr ""
 
-#: gnu/packages/gtk.scm:1731
+#: gnu/packages/gtk.scm:2002
 msgid ""
 "This program allows you to display GTK+ dialog boxes from command line or\n"
 "shell scripts.  Example of how to use @code{yad} can be consulted at\n"
 "@url{https://sourceforge.net/p/yad-dialog/wiki/browse_pages/}."
 msgstr ""
 
-#: gnu/packages/guile.scm:125 gnu/packages/guile.scm:206
+#: gnu/packages/gtk.scm:2059
+#, fuzzy
+msgid "Library for passing menus over DBus"
+msgstr "Biblioteca para interpretar ficheros SVG"
+
+#: gnu/packages/gtk.scm:2060
+msgid ""
+"@code{libdbusmenu} passes a menu structure across DBus so\n"
+"that a program can create a menu simply without worrying about how it is\n"
+"displayed on the other side of the bus."
+msgstr ""
+
+#: gnu/packages/gtk.scm:2085
+msgid ""
+"Library to create Wayland desktop components using the Layer\n"
+"Shell protocol"
+msgstr ""
+
+#: gnu/packages/gtk.scm:2087
+msgid ""
+"Layer Shell is a Wayland protocol for desktop shell\n"
+"components, such as panels, notifications and wallpapers.  It can be used to\n"
+"anchor windows to a corner or edge of the output, or stretch them across the\n"
+"entire output.  It supports all Layer Shell features including popups and\n"
+"popovers."
+msgstr ""
+
+#: gnu/packages/gtk.scm:2134
+#, fuzzy
+msgid "Canvas widget for GTK+"
+msgstr "Enlaces Python para GTK+"
+
+#: gnu/packages/gtk.scm:2135
+msgid ""
+"GooCanvas is a canvas widget for GTK+ that uses the cairo 2D\n"
+"library for drawing."
+msgstr ""
+
+#: gnu/packages/gtk.scm:2199
+#, fuzzy
+msgid "Spreadsheet widget for GTK+"
+msgstr "Aplicación de hojas de cálculo"
+
+#: gnu/packages/gtk.scm:2200
+msgid ""
+"GtkSheet is a matrix widget for GTK+.  It consists of an\n"
+"scrollable grid of cells where you can allocate text.  Cell contents can be\n"
+"edited interactively through a specially designed entry, GtkItemEntry.  It is\n"
+"also a container subclass, allowing you to display buttons, images and any\n"
+"other widget in it.  You can also set many attributes such as border,\n"
+"foreground and background colors, text justification and more."
+msgstr ""
+
+#: gnu/packages/guile.scm:127 gnu/packages/guile.scm:222
 msgid "Scheme implementation intended especially for extensions"
 msgstr ""
 
-#: gnu/packages/guile.scm:127 gnu/packages/guile.scm:208
+#: gnu/packages/guile.scm:129 gnu/packages/guile.scm:224
 msgid ""
 "Guile is the GNU Ubiquitous Intelligent Language for Extensions, the\n"
 "official extension language of the GNU system.  It is an implementation of\n"
@@ -7303,24 +10679,23 @@ msgid ""
 "without requiring the source code to be rewritten."
 msgstr ""
 
-#: gnu/packages/guile.scm:364
+#: gnu/packages/guile.scm:397
 #, fuzzy
-#| msgid "Cairo bindings for GNU Guile"
 msgid "Line editing support for GNU Guile"
 msgstr "Enlazando Cairo para GNU Guile"
 
-#: gnu/packages/guile.scm:366
+#: gnu/packages/guile.scm:399
 msgid ""
 "This module provides line editing support via the Readline library for\n"
 "GNU@tie{}Guile.  Use the @code{(ice-9 readline)} module and call its\n"
 "@code{activate-readline} procedure to enable it."
 msgstr ""
 
-#: gnu/packages/guile.scm:446
+#: gnu/packages/guile.scm:533
 msgid "JSON module for Guile"
 msgstr "JSON modular para Guile"
 
-#: gnu/packages/guile.scm:448
+#: gnu/packages/guile.scm:535
 msgid ""
 "Guile-JSON supports parsing and building JSON documents according to the\n"
 "specification.  These are the main features:\n"
@@ -7333,29 +10708,29 @@ msgid ""
 "@end itemize\n"
 msgstr ""
 
-#: gnu/packages/guile.scm:524
+#: gnu/packages/guile.scm:636
 msgid "Guile bindings to the GDBM library via Guile's FFI"
 msgstr ""
 
-#: gnu/packages/guile.scm:526
+#: gnu/packages/guile.scm:638
 msgid ""
 "Guile bindings to the GDBM key-value storage system, using\n"
 "Guile's foreign function interface."
 msgstr ""
 
-#: gnu/packages/guile.scm:558
+#: gnu/packages/guile.scm:673
 msgid "Access SQLite databases from Guile"
 msgstr "BD Access SQLite desde Guile"
 
-#: gnu/packages/guile.scm:560
+#: gnu/packages/guile.scm:675
 msgid "This package provides Guile bindings to the SQLite database system."
 msgstr ""
 
-#: gnu/packages/guile.scm:584
+#: gnu/packages/guile.scm:719
 msgid "Structured access to bytevector contents for Guile"
 msgstr ""
 
-#: gnu/packages/guile.scm:586
+#: gnu/packages/guile.scm:721
 msgid ""
 "Guile bytestructures offers a system imitating the type system\n"
 "of the C programming language, to be used on bytevectors.  C's type\n"
@@ -7364,21 +10739,45 @@ msgid ""
 "type system, elevating types to first-class status."
 msgstr ""
 
-#: gnu/packages/guile.scm:620
+#: gnu/packages/guile.scm:762
 msgid "Guile bindings for libgit2"
 msgstr "Enlazando Guile para libgit2"
 
-#: gnu/packages/guile.scm:622
+#: gnu/packages/guile.scm:764
 msgid ""
 "This package provides Guile bindings to libgit2, a library to\n"
 "manipulate repositories of the Git version control system."
 msgstr ""
 
-#: gnu/packages/imagemagick.scm:113 gnu/packages/imagemagick.scm:216
+#: gnu/packages/guile.scm:807
+#, fuzzy
+msgid "Guile bindings to zlib"
+msgstr "Enlazando Guile para libgit2"
+
+#: gnu/packages/guile.scm:809
+msgid ""
+"This package provides Guile bindings for zlib, a lossless\n"
+"data-compression library.  The bindings are written in pure Scheme by using\n"
+"Guile's foreign function interface."
+msgstr ""
+
+#: gnu/packages/guile.scm:843
+#, fuzzy
+msgid "Guile bindings to lzlib"
+msgstr "Enlazando Guile para libgit2"
+
+#: gnu/packages/guile.scm:845
+msgid ""
+"This package provides Guile bindings for lzlib, a C library for\n"
+"in-memory LZMA compression and decompression.  The bindings are written in\n"
+"pure Scheme by using Guile's foreign function interface."
+msgstr ""
+
+#: gnu/packages/imagemagick.scm:117 gnu/packages/imagemagick.scm:221
 msgid "Create, edit, compose, or convert bitmap images"
 msgstr ""
 
-#: gnu/packages/imagemagick.scm:115
+#: gnu/packages/imagemagick.scm:119
 msgid ""
 "ImageMagick is a software suite to create, edit, compose, or convert\n"
 "bitmap images.  It can read and write images in a variety of formats (over 100)\n"
@@ -7388,11 +10787,11 @@ msgid ""
 "text, lines, polygons, ellipses and Bézier curves."
 msgstr ""
 
-#: gnu/packages/imagemagick.scm:162
+#: gnu/packages/imagemagick.scm:166
 msgid "Perl interface to ImageMagick"
 msgstr "Interfaz Perl para ImageMagic"
 
-#: gnu/packages/imagemagick.scm:163
+#: gnu/packages/imagemagick.scm:167
 msgid ""
 "This Perl extension allows the reading, manipulation and\n"
 "writing of a large number of image file formats using the ImageMagick library.\n"
@@ -7400,61 +10799,109 @@ msgid ""
 "script."
 msgstr ""
 
-#: gnu/packages/imagemagick.scm:218
+#: gnu/packages/imagemagick.scm:223
 msgid ""
 "GraphicsMagick provides a comprehensive collection of utilities,\n"
 "programming interfaces, and GUIs, to support file format conversion, image\n"
 "processing, and 2D vector rendering."
 msgstr ""
 
-#: gnu/packages/image.scm:109
+#: gnu/packages/image.scm:121
+msgid "Image Quality Assessment"
+msgstr ""
+
+#: gnu/packages/image.scm:122
+msgid ""
+"IQA is a C library for objectively measuring image/video\n"
+"quality.  It implements many popular algorithms, such as MS-SSIM, MS-SSIM*,\n"
+"SIMM, MSE, and PSNR.  It is designed to be fast, accurate, and reliable.  All\n"
+"code is Valgrind-clean and unit tested."
+msgstr ""
+
+#: gnu/packages/image.scm:153
 msgid "Library for handling PNG files"
 msgstr "Biblioteca para manipulación de ficheros PNG"
 
-#: gnu/packages/image.scm:111
+#: gnu/packages/image.scm:155
 msgid ""
 "Libpng is the official PNG (Portable Network Graphics) reference\n"
 "library.  It supports almost all PNG features and is extensible."
 msgstr ""
 
-#: gnu/packages/image.scm:194
+#: gnu/packages/image.scm:219
 msgid "APNG patch for libpng"
 msgstr "Parche APNG para libpng"
 
-#: gnu/packages/image.scm:196
+#: gnu/packages/image.scm:221
 msgid ""
 "APNG (Animated Portable Network Graphics) is an unofficial\n"
 "extension of the APNG (Portable Network Graphics) format.\n"
 "APNG patch provides APNG support to libpng."
 msgstr ""
 
-#: gnu/packages/image.scm:251
+#: gnu/packages/image.scm:276
 msgid "Utility to compress PNG files"
 msgstr "Utilidad para comprimir ficheros PNG"
 
-#: gnu/packages/image.scm:252
+#: gnu/packages/image.scm:277
 msgid ""
-"pngcrusqh is an optimizer for PNG (Portable Network Graphics)\n"
-"files.  It can compress them as much as 40% losslessly."
+"Pngcrush optimizes @acronym{PNG, Portable Network Graphics}\n"
+"images.  It can further losslessly compress them by as much as 40%."
 msgstr ""
 
-#: gnu/packages/image.scm:310
+#: gnu/packages/image.scm:331
 #, fuzzy
-#| msgid "Parser building library"
 msgid "Pretty small png library"
 msgstr "Interpretador construyendo biblioteca"
 
-#: gnu/packages/image.scm:311
+#: gnu/packages/image.scm:332
 msgid ""
 "A pretty small png library.\n"
 "Currently all documentation resides in @file{pnglite.h}."
 msgstr ""
 
-#: gnu/packages/image.scm:326
+#: gnu/packages/image.scm:353
+#, fuzzy
+msgid "Image palette quantization library"
+msgstr "Biblioteca de Categoría Textual"
+
+#: gnu/packages/image.scm:354
+msgid ""
+"libimagequant is a small, portable C library for\n"
+"high-quality conversion of RGBA images to 8-bit indexed-color (palette)\n"
+"images.  This library can significantly reduces file sizes and powers pngquant\n"
+"and other PNG optimizers."
+msgstr ""
+
+#: gnu/packages/image.scm:386
+#, fuzzy
+msgid "Utility and library for lossy compressing PNG images"
+msgstr "Utilidad para comprimir ficheros PNG"
+
+#: gnu/packages/image.scm:387
+msgid ""
+"pngquant is a PNG compressor that significantly reduces file\n"
+"sizes by converting images to a more efficient 8-bit PNG format with alpha\n"
+"channel (often 60-80% smaller than 24/32-bit PNG files).  Compressed images\n"
+"are fully standards-compliant and are supported by all web browsers and\n"
+"operating systems.\n"
+"\n"
+"Features:\n"
+"@enumerate\n"
+"@item High-quality palette generation using a combination of vector\n"
+"      quantization algorithms.\n"
+"@item Unique adaptive dithering algorithm that adds less noise to images\n"
+"      than the standard Floyd-Steinberg.\n"
+"@item Easy to integrate with shell scripts, GUIs and server-side software.\n"
+"@item Fast mode for real-time processing/large numbers of images.\n"
+"@end enumerate"
+msgstr ""
+
+#: gnu/packages/image.scm:415
 msgid "Library for handling JPEG files"
 msgstr "Biblioteca para manipulación de ficheros JPEG"
 
-#: gnu/packages/image.scm:328
+#: gnu/packages/image.scm:417
 msgid ""
 "Libjpeg implements JPEG image encoding, decoding, and transcoding.\n"
 "JPEG is a standardized compression method for full-color and gray-scale\n"
@@ -7471,32 +10918,32 @@ msgid ""
 "@end enumerate"
 msgstr ""
 
-#: gnu/packages/image.scm:401
+#: gnu/packages/image.scm:510
 msgid "Implementation of the JPEG XR standard"
 msgstr ""
 
-#: gnu/packages/image.scm:402
+#: gnu/packages/image.scm:511
 msgid ""
 "JPEG XR is an approved ISO/IEC International standard (its\n"
 "official designation is ISO/IEC 29199-2). This library is an implementation of that standard."
 msgstr ""
 
-#: gnu/packages/image.scm:424
+#: gnu/packages/image.scm:533
 msgid "Optimize JPEG images"
 msgstr "Optimiza imágenes JPEG"
 
-#: gnu/packages/image.scm:426
+#: gnu/packages/image.scm:535
 msgid ""
 "jpegoptim provides lossless optimization (based on optimizing\n"
 "the Huffman tables) and \"lossy\" optimization based on setting\n"
 "maximum quality factor."
 msgstr ""
 
-#: gnu/packages/image.scm:451
+#: gnu/packages/image.scm:560
 msgid "Library for handling Mac OS icns resource files"
 msgstr "Biblioteca para manipulación de ficheros de recursos icns Mac OS"
 
-#: gnu/packages/image.scm:453
+#: gnu/packages/image.scm:562
 msgid ""
 "Libicns is a library for the manipulation of Mac OS IconFamily resource\n"
 "type files (ICNS).  @command{icns2png} and @command{png2icns} are provided to\n"
@@ -7506,11 +10953,11 @@ msgid ""
 "extracting icontainer icon files."
 msgstr ""
 
-#: gnu/packages/image.scm:486
+#: gnu/packages/image.scm:596
 msgid "Library for handling TIFF files"
 msgstr "Biblioteca para manipulación de ficheros TIFF"
 
-#: gnu/packages/image.scm:488
+#: gnu/packages/image.scm:598
 msgid ""
 "Libtiff provides support for the Tag Image File Format (TIFF), a format\n"
 "used for storing image data.\n"
@@ -7518,11 +10965,11 @@ msgid ""
 "collection of tools for doing simple manipulations of TIFF images."
 msgstr ""
 
-#: gnu/packages/image.scm:541
+#: gnu/packages/image.scm:655
 msgid "Library and tools for image processing and analysis"
 msgstr ""
 
-#: gnu/packages/image.scm:543
+#: gnu/packages/image.scm:657
 msgid ""
 "Leptonica is a C library and set of command-line tools for efficient\n"
 "image processing and image analysis operations.  It supports rasterop, affine\n"
@@ -7532,11 +10979,11 @@ msgid ""
 "arithmetic ops."
 msgstr ""
 
-#: gnu/packages/image.scm:566
+#: gnu/packages/image.scm:695
 msgid "Decoder of the JBIG2 image compression format"
 msgstr ""
 
-#: gnu/packages/image.scm:568
+#: gnu/packages/image.scm:697
 msgid ""
 "JBIG2 is designed for lossy or lossless encoding of @code{bilevel} (1-bit\n"
 "monochrome) images at moderately high resolution, and in particular scanned\n"
@@ -7549,11 +10996,44 @@ msgid ""
 "work."
 msgstr ""
 
-#: gnu/packages/image.scm:604
+#: gnu/packages/image.scm:765
+msgid "Lossless compression for bi-level high-resolution images"
+msgstr ""
+
+#: gnu/packages/image.scm:767
+msgid ""
+"JBIG-KIT implements the JBIG1 data compression standard (ITU-T T.82 and\n"
+"ISO/IEC 11544:1993), designed for bi-level (one bit per pixel) images such as\n"
+"black-and-white scanned documents.  It is widely used in fax products, printer\n"
+"firmware and drivers, document management systems, and imaging software.\n"
+"\n"
+"This package provides a static C library of (de)compression functions and some\n"
+"simple command-line converters similar to those provided by netpbm.\n"
+"\n"
+"Two JBIG1 variants are available.  One (@file{jbig.c}) implements nearly all\n"
+"options of the standard but has to keep the full uncompressed image in memory.\n"
+"The other (@file{jbig85.c}) implements just the ITU-T T.85 profile, with\n"
+"memory management optimized for embedded and fax applications.  It buffers\n"
+"only a few lines of the uncompressed image in memory and is able to stream\n"
+"images of initially unknown height."
+msgstr ""
+
+#: gnu/packages/image.scm:799
+msgid "Test files for OpenJPEG"
+msgstr ""
+
+#: gnu/packages/image.scm:800
+msgid ""
+"OpenJPEG-Data contains all files required to run the openjpeg\n"
+"test suite, including conformance tests (following Rec. ITU-T T.803 | ISO/IEC\n"
+"15444-4 procedures), non-regression tests and unit tests."
+msgstr ""
+
+#: gnu/packages/image.scm:828
 msgid "JPEG 2000 codec"
 msgstr "Código JPEG 2000"
 
-#: gnu/packages/image.scm:606
+#: gnu/packages/image.scm:830
 msgid ""
 "The OpenJPEG library is a JPEG 2000 codec written in C.  It has\n"
 "been developed in order to promote the use of JPEG 2000, the new\n"
@@ -7566,11 +11046,11 @@ msgid ""
 "error-resilience, a Java-viewer for j2k-images, ..."
 msgstr ""
 
-#: gnu/packages/image.scm:687
+#: gnu/packages/image.scm:897
 msgid "Tools and library for working with GIF images"
 msgstr ""
 
-#: gnu/packages/image.scm:689
+#: gnu/packages/image.scm:899
 msgid ""
 "GIFLIB is a library for reading and writing GIF images.  It is API and\n"
 "ABI compatible with libungif which was in wide use while the LZW compression\n"
@@ -7578,19 +11058,31 @@ msgid ""
 "compose, and analyze GIF images."
 msgstr ""
 
-#: gnu/packages/image.scm:711
+#: gnu/packages/image.scm:949
+#, fuzzy
+msgid "Library for working with WFM, EMF and EMF+ images"
+msgstr "Biblioteca para trabajar con capacidades POSIX"
+
+#: gnu/packages/image.scm:950
+msgid ""
+"The libUEMF library is a portable C99 implementation for\n"
+"reading and writing @acronym{WFM, Windows Metafile}, @acronym{EMF, Enhanced\n"
+"Metafile}, and @acronym{EMF+, Enhanced Metafile Plus} files."
+msgstr ""
+
+#: gnu/packages/image.scm:970
 msgid "GIF decompression library"
 msgstr "Biblioteca descompresora GIF"
 
-#: gnu/packages/image.scm:713
+#: gnu/packages/image.scm:972
 msgid "libungif is the old GIF decompression library by the GIFLIB project."
 msgstr ""
 
-#: gnu/packages/image.scm:742
+#: gnu/packages/image.scm:1003
 msgid "Loading, saving, rendering and manipulating image files"
 msgstr ""
 
-#: gnu/packages/image.scm:744
+#: gnu/packages/image.scm:1005
 msgid ""
 "Imlib2 is a library that does image file loading and saving as well as\n"
 "rendering, manipulation, arbitrary polygon support, etc.\n"
@@ -7603,32 +11095,32 @@ msgid ""
 "more modular, simple, and flexible."
 msgstr ""
 
-#: gnu/packages/image.scm:776
+#: gnu/packages/image.scm:1045
 msgid "Wrapper library for imlib2"
 msgstr "Biblioteca cubierta para imlib2"
 
-#: gnu/packages/image.scm:778
+#: gnu/packages/image.scm:1047
 msgid ""
 "Giblib is a simple library which wraps imlib2's context API, avoiding\n"
 "all the context_get/set calls, adds fontstyles to the truetype renderer and\n"
 "supplies a generic doubly-linked list and some string functions."
 msgstr ""
 
-#: gnu/packages/image.scm:859
+#: gnu/packages/image.scm:1135
 msgid "Library for handling popular graphics image formats"
 msgstr ""
 
-#: gnu/packages/image.scm:861
+#: gnu/packages/image.scm:1137
 msgid ""
 "FreeImage is a library for developers who would like to support popular\n"
 "graphics image formats like PNG, BMP, JPEG, TIFF and others."
 msgstr ""
 
-#: gnu/packages/image.scm:927
+#: gnu/packages/image.scm:1206
 msgid "Computer vision library"
 msgstr "Biblioteca de visión de computación"
 
-#: gnu/packages/image.scm:929
+#: gnu/packages/image.scm:1208
 msgid ""
 "VIGRA stands for Vision with Generic Algorithms.  It is an image\n"
 "processing and analysis library that puts its main emphasis on customizable\n"
@@ -7636,24 +11128,23 @@ msgid ""
 "multi-dimensional image processing."
 msgstr ""
 
-#: gnu/packages/image.scm:962
+#: gnu/packages/image.scm:1241
 #, fuzzy
-#| msgid "Computer vision library"
 msgid "C interface to the VIGRA computer vision library"
 msgstr "Biblioteca de visión de computación"
 
-#: gnu/packages/image.scm:964
+#: gnu/packages/image.scm:1243
 msgid ""
 "This package provides a C interface to the VIGRA C++ computer vision\n"
 "library.  It is designed primarily to ease the implementation of higher-level\n"
 "language bindings to VIGRA."
 msgstr ""
 
-#: gnu/packages/image.scm:1004
+#: gnu/packages/image.scm:1280
 msgid "Lossless and lossy image compression"
 msgstr "Compresión de Imagen de pérdida menor y mínima"
 
-#: gnu/packages/image.scm:1006
+#: gnu/packages/image.scm:1282
 msgid ""
 "WebP is a new image format that provides lossless and lossy compression\n"
 "for images.  WebP lossless images are 26% smaller in size compared to\n"
@@ -7665,52 +11156,52 @@ msgid ""
 "channels."
 msgstr ""
 
-#: gnu/packages/image.scm:1034
+#: gnu/packages/image.scm:1310
 msgid "Library for handling MNG files"
 msgstr "Biblioteca para manipulación de ficheros MNG"
 
-#: gnu/packages/image.scm:1036
+#: gnu/packages/image.scm:1312
 msgid "Libmng is the MNG (Multiple-image Network Graphics) reference library."
 msgstr ""
 
-#: gnu/packages/image.scm:1064
+#: gnu/packages/image.scm:1332
 msgid "Library and command-line utility to manage image metadata"
 msgstr ""
 
-#: gnu/packages/image.scm:1066
+#: gnu/packages/image.scm:1334
 msgid ""
 "Exiv2 is a C++ library and a command line utility to manage image\n"
 "metadata.  It provides fast and easy read and write access to the Exif, IPTC\n"
 "and XMP metadata of images in various formats."
 msgstr ""
 
-#: gnu/packages/image.scm:1106
+#: gnu/packages/image.scm:1402
 msgid "Library for manipulating many image formats"
 msgstr ""
 
-#: gnu/packages/image.scm:1107
+#: gnu/packages/image.scm:1403
 msgid ""
 "Developer's Image Library (DevIL) is a library to develop\n"
 "applications with support for many types of images.  DevIL can load, save,\n"
 "convert, manipulate, filter and display a wide variety of image formats."
 msgstr ""
 
-#: gnu/packages/image.scm:1128
+#: gnu/packages/image.scm:1425
 msgid "JPEG-2000 library"
 msgstr "Biblioteca JPEG-2000"
 
-#: gnu/packages/image.scm:1129
+#: gnu/packages/image.scm:1426
 msgid ""
 "The JasPer Project is an initiative to provide a reference\n"
 "implementation of the codec specified in the JPEG-2000 Part-1 standard (i.e.,\n"
 "ISO/IEC 15444-1)."
 msgstr ""
 
-#: gnu/packages/image.scm:1160
+#: gnu/packages/image.scm:1450
 msgid "Scaling, colorspace conversion, and dithering library"
 msgstr ""
 
-#: gnu/packages/image.scm:1161
+#: gnu/packages/image.scm:1451
 msgid ""
 "Zimg implements the commonly required image processing basics\n"
 "of scaling, colorspace conversion, and depth conversion.  A simple API enables\n"
@@ -7718,11 +11209,11 @@ msgid ""
 "the programmer."
 msgstr ""
 
-#: gnu/packages/image.scm:1195
+#: gnu/packages/image.scm:1485
 msgid "Perceptual image comparison utility"
 msgstr "Utilidad de comparación de imagen perceptible"
 
-#: gnu/packages/image.scm:1196
+#: gnu/packages/image.scm:1486
 msgid ""
 "PerceptualDiff visually compares two images to determine\n"
 "whether they look alike.  It uses a computational model of the human visual\n"
@@ -7730,33 +11221,22 @@ msgid ""
 "differences in file encoding, image quality, and other small variations."
 msgstr ""
 
-#: gnu/packages/image.scm:1236
+#: gnu/packages/image.scm:1526
 msgid "Image and audio steganography"
 msgstr "Esteganografía de imagen y sonido"
 
-#: gnu/packages/image.scm:1238
+#: gnu/packages/image.scm:1528
 msgid ""
 "Steghide is a program to hide data in various kinds of image and audio\n"
 "files (known as @dfn{steganography}).  Neither color nor sample frequencies are\n"
 "changed, making the embedding resistant against first-order statistical tests."
 msgstr ""
 
-#: gnu/packages/image.scm:1263
-msgid "Image library for Extempore"
-msgstr "Biblioteca de imagen para Extempore"
-
-#: gnu/packages/image.scm:1265
-msgid ""
-"This package is a collection of assorted single-file libraries.  Of\n"
-"all included libraries only the image loading and decoding library is\n"
-"installed as @code{stb_image}."
-msgstr ""
-
-#: gnu/packages/image.scm:1302
+#: gnu/packages/image.scm:1565
 msgid "Optimizer that recompresses PNG image files to a smaller size"
 msgstr ""
 
-#: gnu/packages/image.scm:1303
+#: gnu/packages/image.scm:1566
 msgid ""
 "OptiPNG is a PNG optimizer that recompresses image\n"
 "files to a smaller size, without losing any information.  This program\n"
@@ -7764,11 +11244,22 @@ msgid ""
 "PNG, and performs PNG integrity checks and corrections."
 msgstr ""
 
-#: gnu/packages/image.scm:1329
+#: gnu/packages/image.scm:1599
+msgid "Example PNGs for use in test suites"
+msgstr ""
+
+#: gnu/packages/image.scm:1600
+msgid ""
+"Collection of graphics images created to test PNG\n"
+"applications like viewers, converters and editors.  As far as that is\n"
+"possible, all formats supported by the PNG standard are represented."
+msgstr ""
+
+#: gnu/packages/image.scm:1653
 msgid "SIMD-accelerated JPEG image handling library"
 msgstr ""
 
-#: gnu/packages/image.scm:1330
+#: gnu/packages/image.scm:1654
 msgid ""
 "libjpeg-turbo is a JPEG image codec that accelerates baseline\n"
 "JPEG compression and decompression using SIMD instructions: MMX on x86, SSE2 on\n"
@@ -7781,11 +11272,11 @@ msgid ""
 "and decompress to 32-bit and big-endian pixel buffers (RGBX, XBGR, etc.)."
 msgstr ""
 
-#: gnu/packages/image.scm:1392
+#: gnu/packages/image.scm:1719
 msgid "Library for reading and writing files in the nifti-1 format"
 msgstr ""
 
-#: gnu/packages/image.scm:1393
+#: gnu/packages/image.scm:1720
 msgid ""
 "Niftilib is a set of i/o libraries for reading and writing\n"
 "files in the nifti-1 data format - a binary file format for storing\n"
@@ -7793,21 +11284,20 @@ msgid ""
 "(fMRI) brain images."
 msgstr ""
 
-#: gnu/packages/image.scm:1434
+#: gnu/packages/image.scm:1761
 msgid "Color picker"
 msgstr "Escogedor de color"
 
-#: gnu/packages/image.scm:1435
+#: gnu/packages/image.scm:1762
 msgid "Gpick is an advanced color picker and palette editing tool."
 msgstr ""
 
-#: gnu/packages/image.scm:1453
+#: gnu/packages/image.scm:1780
 #, fuzzy
-#| msgid "CSS2 parsing and manipulation library"
 msgid "IPTC metadata manipulation library"
 msgstr "Biblioteca interpretando CSS2 y manipulación"
 
-#: gnu/packages/image.scm:1455
+#: gnu/packages/image.scm:1782
 msgid ""
 "Libiptcdata is a C library for manipulating the International Press\n"
 "Telecommunications Council (@dfn{IPTC}) metadata stored within multimedia files\n"
@@ -7816,11 +11306,11 @@ msgid ""
 "parsing, viewing, modifying, and saving this metadata."
 msgstr ""
 
-#: gnu/packages/image.scm:1492
+#: gnu/packages/image.scm:1819
 msgid "Powerful yet simple to use screenshot software"
 msgstr ""
 
-#: gnu/packages/image.scm:1493
+#: gnu/packages/image.scm:1820
 msgid ""
 "Flameshot is a screenshot program.\n"
 "Features:\n"
@@ -7834,24 +11324,11 @@ msgid ""
 "@end itemize\n"
 msgstr ""
 
-#: gnu/packages/image.scm:1519
-#, fuzzy
-#| msgid "Read and write PNG images"
-msgid "Read and write JPEG images with R"
-msgstr "Lectura y escritura de imágenes PNG"
-
-#: gnu/packages/image.scm:1520
-msgid ""
-"This package provides a way to read, write and display bitmap\n"
-"images stored in the JPEG format with R.  It can read and write both files and\n"
-"in-memory raw vectors."
-msgstr ""
-
-#: gnu/packages/image.scm:1553
+#: gnu/packages/image.scm:1860
 msgid "Edit GIF images and animations"
 msgstr ""
 
-#: gnu/packages/image.scm:1554
+#: gnu/packages/image.scm:1861
 msgid ""
 "Gifsicle is a command-line GIF image manipulation tool that:\n"
 "\n"
@@ -7870,37 +11347,121 @@ msgid ""
 "identical visual appearance."
 msgstr ""
 
-#: gnu/packages/image.scm:1594
+#: gnu/packages/image.scm:1897
 msgid "Convert JPEG images to ASCII"
 msgstr ""
 
-#: gnu/packages/image.scm:1596
+#: gnu/packages/image.scm:1899
 msgid "Jp2a is a small utility that converts JPEG images to ASCII."
 msgstr ""
 
-#: gnu/packages/image.scm:1620
+#: gnu/packages/image.scm:1924
 msgid "Create screenshots from a Wayland compositor"
 msgstr ""
 
-#: gnu/packages/image.scm:1621
+#: gnu/packages/image.scm:1925
 msgid "grim can create screenshots from a Wayland compositor."
 msgstr ""
 
-#: gnu/packages/image.scm:1645
+#: gnu/packages/image.scm:1949
 msgid "Select a region in a Wayland compositor"
 msgstr ""
 
-#: gnu/packages/image.scm:1646
+#: gnu/packages/image.scm:1950
 msgid ""
 "Slurp can select a region in a Wayland compositor and print it\n"
 "to the standard output.  It works well together with grim."
 msgstr ""
 
-#: gnu/packages/image-viewers.scm:95
+#: gnu/packages/image.scm:1983
+msgid "Markup language for representing PNG contents"
+msgstr ""
+
+#: gnu/packages/image.scm:1984
+msgid ""
+"SNG (Scriptable Network Graphics) is a minilanguage designed\n"
+"specifically to represent the entire contents of a PNG (Portable Network\n"
+"Graphics) file in an editable form.  Thus, SNGs representing elaborate\n"
+"graphics images and ancillary chunk data can be readily generated or modified\n"
+"using only text tools.\n"
+"\n"
+"SNG is implemented by a compiler/decompiler called sng that\n"
+"losslessly translates between SNG and PNG."
+msgstr ""
+
+#: gnu/packages/image.scm:2043
+msgid "PNG encoder and decoder in C and C++, without dependencies"
+msgstr ""
+
+#: gnu/packages/image.scm:2044
+msgid ""
+"LodePNG is a PNG image decoder and encoder, all in one,\n"
+"no dependency or linkage required.  It's made for C (ISO C90), and has a C++\n"
+"wrapper with a more convenient interface on top."
+msgstr ""
+
+#: gnu/packages/image.scm:2067
+msgid "Extract and convert bitmaps from Windows icon and cursor files"
+msgstr ""
+
+#: gnu/packages/image.scm:2068
+msgid ""
+"Icoutils are a set of program for extracting and converting\n"
+"bitmaps from Microsoft Windows icon and cursor files.  These files usually\n"
+"have the extension @code{.ico} or @code{.cur}, but they can also be embedded\n"
+"in executables and libraries (@code{.dll}-files).  (Such embedded files are\n"
+"referred to as resources.)\n"
+"\n"
+"Conversion of these files to and from PNG images is done @command{icotool}.\n"
+"@command{extresso} automates these tasks with the help of special resource\n"
+"scripts.  Resources such can be extracted from MS Windows executable and\n"
+"library files with @command{wrestool}.\n"
+"\n"
+"This package can be used to create @code{favicon.ico} files for web sites."
+msgstr ""
+
+#: gnu/packages/image.scm:2114
+msgid "Encode and decode AVIF files"
+msgstr ""
+
+#: gnu/packages/image.scm:2115
+msgid ""
+"Libavif is a C implementation of @acronym{AVIF, the AV1 Image\n"
+"File Format}.  It can encode and decode all YUV formats and bit depths supported\n"
+"by AOM, including with alpha."
+msgstr ""
+
+#: gnu/packages/image.scm:2161
+msgid "Create pixel art and manipulate digital images"
+msgstr ""
+
+#: gnu/packages/image.scm:2163
+msgid ""
+"Mtpaint is a graphic editing program which uses the GTK+ toolkit.\n"
+"It can create and edit indexed palette or 24bit RGB images, offers basic\n"
+"painting and palette manipulation tools.  It also handles JPEG, JPEG2000,\n"
+"GIF, TIFF, WEBP, BMP, PNG, XPM formats."
+msgstr ""
+
+#: gnu/packages/image.scm:2213
+#, fuzzy
+msgid "Organize photos and videos in folders"
+msgstr "Organizar Datos en Tablas"
+
+#: gnu/packages/image.scm:2214
+msgid ""
+"Phockup is a media sorting tool that uses creation date and\n"
+"time information in photos and videos to organize them into folders by year,\n"
+"month and day.  All files which are not images or videos or those which do not\n"
+"have creation date information will be placed in a folder called\n"
+"@file{unknown}."
+msgstr ""
+
+#: gnu/packages/image-viewers.scm:108
 msgid "Fast and light imlib2-based image viewer"
 msgstr "Visor de imagen ligero y rápido basado en imlib2"
 
-#: gnu/packages/image-viewers.scm:97
+#: gnu/packages/image-viewers.scm:110
 msgid ""
 "feh is an X11 image viewer aimed mostly at console users.\n"
 "Unlike most other viewers, it does not have a fancy GUI, but simply\n"
@@ -7933,11 +11494,11 @@ msgid ""
 "It is the default image viewer on LXDE desktop environment."
 msgstr ""
 
-#: gnu/packages/image-viewers.scm:224
+#: gnu/packages/image-viewers.scm:233
 msgid "Simple X Image Viewer"
 msgstr "Visor Imagen X Simple"
 
-#: gnu/packages/image-viewers.scm:226
+#: gnu/packages/image-viewers.scm:235
 msgid ""
 "sxiv is an alternative to feh and qiv.  Its primary goal is to\n"
 "provide the most basic features required for fast image viewing.  It has\n"
@@ -7946,11 +11507,11 @@ msgid ""
 "it and customize it for your needs."
 msgstr ""
 
-#: gnu/packages/image-viewers.scm:268
+#: gnu/packages/image-viewers.scm:277
 msgid "Simple, fast and elegant image viewer"
 msgstr "Visor de imagen elegante, rápido y simple"
 
-#: gnu/packages/image-viewers.scm:269
+#: gnu/packages/image-viewers.scm:278
 msgid ""
 "Viewnior is an image viewer program.  Created to be simple,\n"
 "fast and elegant.  Its minimalistic interface provides more screenspace for\n"
@@ -7968,21 +11529,21 @@ msgid ""
 "@end enumerate\n"
 msgstr ""
 
-#: gnu/packages/image-viewers.scm:324
+#: gnu/packages/image-viewers.scm:333
 msgid "Render images in the terminal"
 msgstr "Tratamiento de imágenes dentro del terminal"
 
-#: gnu/packages/image-viewers.scm:326
+#: gnu/packages/image-viewers.scm:335
 msgid ""
 "Catimg is a little program that prints images in the terminal.\n"
 "It supports JPEG, PNG and GIF formats."
 msgstr ""
 
-#: gnu/packages/image-viewers.scm:377
+#: gnu/packages/image-viewers.scm:388
 msgid "High dynamic range (HDR) imaging application"
 msgstr ""
 
-#: gnu/packages/image-viewers.scm:379
+#: gnu/packages/image-viewers.scm:390
 msgid ""
 "Luminance HDR (formerly QtPFSGui) is a graphical user interface\n"
 "application that aims to provide a workflow for high dynamic range (HDR)\n"
@@ -7998,33 +11559,100 @@ msgid ""
 "@end itemize\n"
 msgstr ""
 
-#: gnu/packages/image-viewers.scm:427
+#: gnu/packages/image-viewers.scm:487
 msgid "Image viewer for comics"
 msgstr "Visor imagen para comics"
 
-#: gnu/packages/image-viewers.scm:428
+#: gnu/packages/image-viewers.scm:488
 msgid ""
 "MComix is a customizable image viewer that specializes as\n"
 "a comic and manga reader.  It supports a variety of container formats\n"
-"including CBZ, CB7, CBT, LHA."
+"including CBZ, CB7, CBT, LHA.\n"
+"\n"
+"For PDF support, install the @emph{mupdf} package."
+msgstr ""
+
+#: gnu/packages/image-viewers.scm:529
+#, fuzzy
+msgid "Convenient and minimal image viewer"
+msgstr "Visor de imagen ligero y rápido basado en imlib2"
+
+#: gnu/packages/image-viewers.scm:530
+msgid ""
+"qView is a Qt image viewer designed with visually\n"
+"minimalism and usability in mind.  Its features include animated GIF\n"
+"controls, file history, rotation/mirroring, and multithreaded\n"
+"preloading."
+msgstr ""
+
+#: gnu/packages/image-viewers.scm:555
+msgid "Convert images to ANSI/Unicode characters"
 msgstr ""
 
-#: gnu/packages/inkscape.scm:91
+#: gnu/packages/image-viewers.scm:557
+msgid ""
+"Chafa is a command-line utility that converts all kinds of images,\n"
+"including animated GIFs, into ANSI/Unicode character output that can be\n"
+"displayed in a terminal."
+msgstr ""
+
+#: gnu/packages/image-viewers.scm:607
+#, fuzzy
+msgid "Image viewer for tiling window managers"
+msgstr "Visor imagen para comics"
+
+#: gnu/packages/image-viewers.scm:608
+msgid ""
+"@code{imv} is a command line image viewer intended for use\n"
+"with tiling window managers.  Features include:\n"
+"\n"
+"@itemize\n"
+"@item Native Wayland and X11 support.\n"
+"@item Support for dozens of image formats including:\n"
+"@itemize\n"
+"@item PNG\n"
+"@item JPEG\n"
+"@item Animated GIFs\n"
+"@item SVG\n"
+"@item TIFF\n"
+"@item Various RAW formats\n"
+"@item Photoshop PSD files\n"
+"@end itemize\n"
+"@item Configurable key bindings and behavior.\n"
+"@item Highly scriptable with IPC via imv-msg.\n"
+"@end itemize\n"
+msgstr ""
+
+#: gnu/packages/image-viewers.scm:677
+#, fuzzy
+msgid "Graphical image viewer for X"
+msgstr "Visor de imagen simple y rápido para X"
+
+#: gnu/packages/image-viewers.scm:679
+msgid ""
+"Quick Image Viewer is a small and fast GDK/Imlib2 image viewer.\n"
+"Features include zoom, maxpect, scale down, fullscreen, slideshow, delete,\n"
+"brightness/contrast/gamma correction, pan with keyboard and mouse, flip,\n"
+"rotate left/right, jump/forward/backward images, filename filter and use it\n"
+"to set X desktop background."
+msgstr ""
+
+#: gnu/packages/inkscape.scm:114 gnu/packages/inkscape.scm:301
 msgid "Vector graphics editor"
 msgstr "Editor gráfico vectorial"
 
-#: gnu/packages/inkscape.scm:92
+#: gnu/packages/inkscape.scm:115 gnu/packages/inkscape.scm:302
 msgid ""
 "Inkscape is a vector graphics editor.  What sets Inkscape\n"
 "apart is its use of Scalable Vector Graphics (SVG), an XML-based W3C standard,\n"
 "as the native format."
 msgstr ""
 
-#: gnu/packages/jemalloc.scm:63
+#: gnu/packages/jemalloc.scm:66
 msgid "General-purpose scalable concurrent malloc implementation"
 msgstr ""
 
-#: gnu/packages/jemalloc.scm:65
+#: gnu/packages/jemalloc.scm:68
 msgid ""
 "This library providing a malloc(3) implementation that emphasizes\n"
 "fragmentation avoidance and scalable concurrency support."
@@ -8040,11 +11668,11 @@ msgid ""
 "This is useful for teaching and screencasts."
 msgstr ""
 
-#: gnu/packages/less.scm:41
+#: gnu/packages/less.scm:50
 msgid "Paginator for terminals"
 msgstr "Paginador para terminales"
 
-#: gnu/packages/less.scm:43
+#: gnu/packages/less.scm:52
 msgid ""
 "GNU less is a pager, a program that allows you to view large amounts\n"
 "of text in page-sized chunks.  Unlike traditional pagers, it allows both\n"
@@ -8053,6 +11681,22 @@ msgid ""
 "text editors."
 msgstr ""
 
+#: gnu/packages/less.scm:99
+#, fuzzy
+msgid "Input filter for less"
+msgstr "Datos de fichero para MegaGlest"
+
+#: gnu/packages/less.scm:100
+msgid ""
+"To browse files, the excellent viewer @code{less} can be\n"
+"used.  By setting the environment variable @code{LESSOPEN}, less can be\n"
+"enhanced by external filters to become more powerful.  The input filter for\n"
+"less described here is called @code{lesspipe.sh}.  It is able to process a\n"
+"wide variety of file formats.  It enables users to inspect archives and\n"
+"display their contents without having to unpack them before.  The filter is\n"
+"easily extensible for new formats."
+msgstr ""
+
 #: gnu/packages/lesstif.scm:47
 msgid "Clone of the Motif toolkit for the X window system"
 msgstr "Clon del kit de herramientas Motif para el sistema de ventanas X"
@@ -8061,11 +11705,11 @@ msgstr "Clon del kit de herramientas Motif para el sistema de ventanas X"
 msgid "Clone of the Motif toolkit for the X window system."
 msgstr "Clon del kit de herramientas Motif para el sistema de ventanas X."
 
-#: gnu/packages/libreoffice.scm:103
+#: gnu/packages/libreoffice.scm:108
 msgid "General purpose formula parser and interpreter"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:104
+#: gnu/packages/libreoffice.scm:109
 msgid ""
 "Ixion is a library for calculating the results of formula\n"
 "expressions stored in multiple named targets, or \"cells\".  The cells can\n"
@@ -8073,11 +11717,11 @@ msgid ""
 "their dependencies automatically upon calculation."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:131
+#: gnu/packages/libreoffice.scm:136
 msgid "File import filter library for spreadsheet documents"
 msgstr "Importar fichero filtrador de biblioteca para docuento de hojas de cálculo"
 
-#: gnu/packages/libreoffice.scm:132
+#: gnu/packages/libreoffice.scm:137
 msgid ""
 "Orcus is a library that provides a collection of standalone\n"
 "file processing filters.  It is currently focused on providing filters for\n"
@@ -8087,33 +11731,51 @@ msgid ""
 "CSV, CSS and XML."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:166
+#: gnu/packages/libreoffice.scm:188
+msgid "Convert between any document format supported by LibreOffice"
+msgstr ""
+
+#: gnu/packages/libreoffice.scm:190
+msgid ""
+"Unoconv is a command-line utility to convert documents from any format\n"
+"that LibreOffice can import, to any format it can export.  It can be used for\n"
+"batch processing and can apply custom style templates and filters.\n"
+"\n"
+"Unoconv converts between over a hundred formats, including Open Document\n"
+"Format (@file{.odt}, @file{.ods}, @file{.odp})), Portable Document Format\n"
+"(@file{.pdf}), HTML and XHTML, RTF, DocBook (@file{.xml}), @file{.doc} and\n"
+"@file{.docx}), @file{.xls} and @file{.xlsx}).\n"
+"\n"
+"All required fonts must be installed on the converting system."
+msgstr ""
+
+#: gnu/packages/libreoffice.scm:228
 msgid "Document importer for office suites"
 msgstr "Importador documento para suites ofimáticas"
 
-#: gnu/packages/libreoffice.scm:167
+#: gnu/packages/libreoffice.scm:229
 msgid ""
 "Librevenge is a base library for writing document import\n"
 "filters.  It has interfaces for text documents, vector graphics,\n"
 "spreadsheets and presentations."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:192
+#: gnu/packages/libreoffice.scm:256
 msgid "Library for importing WordPerfect documents"
 msgstr "Biblioteca para importar documentos WordPerfect"
 
-#: gnu/packages/libreoffice.scm:193
+#: gnu/packages/libreoffice.scm:257
 msgid ""
 "Libwpd is a C++ library designed to help process\n"
 "WordPerfect documents.  It is most commonly used to import such documents\n"
 "into other word processors."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:226
+#: gnu/packages/libreoffice.scm:290
 msgid "Library for import of reflowable e-book formats"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:227
+#: gnu/packages/libreoffice.scm:291
 msgid ""
 "Libe-book is a library and a set of tools for reading and\n"
 "converting various reflowable e-book formats.  Currently supported are:\n"
@@ -8123,75 +11785,74 @@ msgid ""
 "ZVR (simple compressed text format)."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:257
+#: gnu/packages/libreoffice.scm:321
 #, fuzzy
-#| msgid "Wrapper library for imlib2"
 msgid "EPUB generator library for librevenge"
 msgstr "Biblioteca cubierta para imlib2"
 
-#: gnu/packages/libreoffice.scm:258
+#: gnu/packages/libreoffice.scm:322
 msgid ""
 "libepubgen is an EPUB generator for librevenge.  It supports\n"
 "librevenge's text document interface and--currently in a very limited\n"
 "way--presentation and vector drawing interfaces."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:284
+#: gnu/packages/libreoffice.scm:348
 msgid "Library and tools for the WordPerfect Graphics format"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:285
+#: gnu/packages/libreoffice.scm:349
 msgid ""
 "The libwpg project provides a library and tools for\n"
 "working with graphics in the WPG (WordPerfect Graphics) format."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:323
+#: gnu/packages/libreoffice.scm:389
 msgid "CMIS client library"
 msgstr "Cliente biblioteca CMIS"
 
-#: gnu/packages/libreoffice.scm:324
+#: gnu/packages/libreoffice.scm:390
 msgid ""
 "LibCMIS is a C++ client library for the CMIS interface.  It\n"
 "allows C++ applications to connect to any ECM behaving as a CMIS server such\n"
 "as Alfresco or Nuxeo."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:355
+#: gnu/packages/libreoffice.scm:419
 msgid "Library for parsing the AbiWord format"
 msgstr "Biblioteca para interpretación del formato AbiWord"
 
-#: gnu/packages/libreoffice.scm:356
+#: gnu/packages/libreoffice.scm:420
 msgid ""
 "Libabw is a library that parses the file format of\n"
 "AbiWord documents."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:384
+#: gnu/packages/libreoffice.scm:448
 msgid "Library for parsing the CorelDRAW format"
 msgstr "Biblioteca para interpretación del formato CorelDraw"
 
-#: gnu/packages/libreoffice.scm:385
+#: gnu/packages/libreoffice.scm:449
 msgid ""
 "Libcdr is a library that parses the file format of\n"
 "CorelDRAW documents of all versions."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:418
+#: gnu/packages/libreoffice.scm:482
 msgid "Library for parsing the Apple Keynote format"
 msgstr "Biblioteca para interpretación del formato Apple Keynote"
 
-#: gnu/packages/libreoffice.scm:419
+#: gnu/packages/libreoffice.scm:483
 msgid ""
 "Libetonyek is a library that parses the file format of\n"
 "Apple Keynote documents.  It currently supports Keynote versions 2 to 5."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:443
+#: gnu/packages/libreoffice.scm:505
 msgid "Library to access tags for identifying languages"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:444
+#: gnu/packages/libreoffice.scm:506
 msgid ""
 "Liblangtag implements an interface to work with tags\n"
 "for identifying languages as described in RFC 5646.  It supports the\n"
@@ -8200,73 +11861,73 @@ msgid ""
 "standard 21.0.2."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:464
+#: gnu/packages/libreoffice.scm:526
 msgid "Text Categorization library"
 msgstr "Biblioteca de Categoría Textual"
 
-#: gnu/packages/libreoffice.scm:465
+#: gnu/packages/libreoffice.scm:527
 msgid ""
 "Libexttextcat is an N-Gram-Based Text Categorization\n"
 "library primarily intended for language guessing."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:495
+#: gnu/packages/libreoffice.scm:568
 msgid "Library for parsing the FreeHand format"
 msgstr "Biblioteca para interpretación del formato FreeHand"
 
-#: gnu/packages/libreoffice.scm:496
+#: gnu/packages/libreoffice.scm:569
 msgid ""
 "Libfreehand is a library that parses the file format of\n"
 "Aldus/Macromedia/Adobe FreeHand documents."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:522
+#: gnu/packages/libreoffice.scm:595
 msgid "Library for parsing the Microsoft Publisher format"
 msgstr "Biblioteca para interpretación del formato Microsoft Publisher"
 
-#: gnu/packages/libreoffice.scm:523
+#: gnu/packages/libreoffice.scm:596
 msgid ""
 "Libmspub is a library that parses the file format of\n"
 "Microsoft Publisher documents of all versions."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:543
+#: gnu/packages/libreoffice.scm:616
 msgid "Language-neutral @code{NUMBERTEXT} and @code{MONEYTEXT} functions"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:545
+#: gnu/packages/libreoffice.scm:618
 msgid ""
 "The libnumbertext library provides language-neutral @code{NUMBERTEXT}\n"
 "and @code{MONEYTEXT} functions for LibreOffice Calc, available for C++ and\n"
 "Java."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:571
+#: gnu/packages/libreoffice.scm:646
 msgid "Library for parsing the PageMaker format"
 msgstr "Biblioteca para interpretación del formato PageMaker"
 
-#: gnu/packages/libreoffice.scm:572
+#: gnu/packages/libreoffice.scm:647
 msgid ""
 "Libpagemaker is a library that parses the file format of\n"
 "Aldus/Adobe PageMaker documents.  Currently it only understands documents\n"
 "created by PageMaker version 6.x and 7."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:602
+#: gnu/packages/libreoffice.scm:677
 msgid "Library for parsing the Microsoft Visio format"
 msgstr "Biblioteca para interpretación del formato Microsoft Visio"
 
-#: gnu/packages/libreoffice.scm:603
+#: gnu/packages/libreoffice.scm:678
 msgid ""
 "Libvisio is a library that parses the file format of\n"
 "Microsoft Visio documents of all versions."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:631
+#: gnu/packages/libreoffice.scm:706
 msgid "ODF (Open Document Format) library"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:632
+#: gnu/packages/libreoffice.scm:707
 msgid ""
 "Libodfgen is a library for generating documents in the\n"
 "Open Document Format (ODF).  It provides generator implementations for all\n"
@@ -8274,49 +11935,49 @@ msgid ""
 "text documents, vector drawings, presentations and spreadsheets."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:659
+#: gnu/packages/libreoffice.scm:734
 msgid "Import library for some old Macintosh text documents"
 msgstr "Importar biblioteca para algunos antiguos documentos de texto Macintosh"
 
-#: gnu/packages/libreoffice.scm:660
+#: gnu/packages/libreoffice.scm:735
 msgid ""
 "Libmwaw contains some import filters for old Macintosh\n"
 "text documents (MacWrite, ClarisWorks, ... ) and for some graphics and\n"
 "spreadsheet documents."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:683
+#: gnu/packages/libreoffice.scm:758
 msgid "Provides LibreOffice support for old StarOffice documents"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:684
+#: gnu/packages/libreoffice.scm:759
 msgid ""
 "@code{libstaroffice} is an import filter for the document formats\n"
 "from the old StarOffice (.sdc, .sdw, ...)."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:709
+#: gnu/packages/libreoffice.scm:784
 msgid "Import library for Microsoft Works text documents"
 msgstr "Importar biblioteca para texto documental Microsoft Works"
 
-#: gnu/packages/libreoffice.scm:710
+#: gnu/packages/libreoffice.scm:785
 msgid ""
 "Libwps is a library for importing files in the Microsoft\n"
 "Works word processor file format."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:740
+#: gnu/packages/libreoffice.scm:815
 msgid "Parses file format of Zoner Callisto/Draw documents"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:741
+#: gnu/packages/libreoffice.scm:816
 msgid ""
 "Libzmf is a library that parses the file format of Zoner\n"
 "Callisto/Draw documents.  Currently it only understands documents created by\n"
 "Zoner Draw version 4 and 5."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:772
+#: gnu/packages/libreoffice.scm:847
 msgid ""
 "Hunspell is a spell checker and morphological analyzer\n"
 "library and program designed for languages with rich morphology and complex\n"
@@ -8324,59 +11985,78 @@ msgid ""
 msgstr ""
 
 #. TRANSLATORS: In French, this is "Français classique".
-#: gnu/packages/libreoffice.scm:835
+#: gnu/packages/libreoffice.scm:910
 msgid "Hunspell dictionary for ``classic'' French (recommended)"
 msgstr "Diccionario Hunspell para francés ``clásico'' (recomendado)"
 
 #. TRANSLATORS: In French, this is "Français moderne".
-#: gnu/packages/libreoffice.scm:840
+#: gnu/packages/libreoffice.scm:915
 msgid "Hunspell dictionary for ``modern'' French"
 msgstr "Diccionario Hunspell para el ``moderno'' francés"
 
-#: gnu/packages/libreoffice.scm:844
+#: gnu/packages/libreoffice.scm:919
 msgid "Hunspell dictionary for the post @dfn{1990 réforme} French"
 msgstr "Diccionario Hunspell para francés posterior @dfn{1990 réforme}"
 
-#: gnu/packages/libreoffice.scm:848
+#: gnu/packages/libreoffice.scm:923
 msgid "Hunspell dictionary for all variants of French"
 msgstr "Diccionario Hunspell para todas las variantes francesas"
 
-#: gnu/packages/libreoffice.scm:866
+#: gnu/packages/libreoffice.scm:967
+#, fuzzy
+msgid "Hunspell dictionary for Polish"
+msgstr "Diccionario Hunspell para inglés"
+
+#: gnu/packages/libreoffice.scm:1004
+#, fuzzy
+msgid "Hunspell dictionary for German (de_DE)"
+msgstr "Diccionario Hunspell para el ``moderno'' francés"
+
+#: gnu/packages/libreoffice.scm:1005
+#, fuzzy
+msgid ""
+"This package provides a dictionary for the Hunspell\n"
+"spell-checking library."
+msgstr ""
+"Este paquete proporciona un diccionario para la biblioteca de\n"
+"comprobación ortográfica Hunspell."
+
+#: gnu/packages/libreoffice.scm:1026
 msgid "Hyphenation library"
 msgstr "Biblioteca separación silábica"
 
-#: gnu/packages/libreoffice.scm:867
+#: gnu/packages/libreoffice.scm:1027
 msgid ""
 "Hyphen is a hyphenation library using TeX hyphenation\n"
 "patterns, which are pre-processed by a perl script."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:890
+#: gnu/packages/libreoffice.scm:1051
 msgid "Thesaurus"
 msgstr "Tesausus"
 
-#: gnu/packages/libreoffice.scm:891
+#: gnu/packages/libreoffice.scm:1052
 msgid ""
 "MyThes is a simple thesaurus that uses a structured text\n"
 "data file and an index file with binary search to look up words and phrases\n"
 "and to return information on pronunciations, meanings and synonyms."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:919
+#: gnu/packages/libreoffice.scm:1080
 msgid "Library and tools for the QuarkXPress file format"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:920
+#: gnu/packages/libreoffice.scm:1081
 msgid ""
 "libqxp is a library and a set of tools for reading and\n"
 "converting QuarkXPress file format.  It supports versions 3.1 to 4.1."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:1162
+#: gnu/packages/libreoffice.scm:1296
 msgid "Office suite"
 msgstr "Suite oficina"
 
-#: gnu/packages/libreoffice.scm:1163
+#: gnu/packages/libreoffice.scm:1297
 msgid ""
 "LibreOffice is a comprehensive office suite.  It contains\n"
 "a number of components: Writer, a word processor; Calc, a spreadsheet\n"
@@ -8385,39 +12065,117 @@ msgid ""
 "Math for editing mathematics."
 msgstr ""
 
-#: gnu/packages/linux.scm:224
+#: gnu/packages/linux.scm:563
 msgid "GNU Linux-Libre kernel headers"
 msgstr "Cabeceras de núcleo GNU Linux-Libre"
 
-#: gnu/packages/linux.scm:225
+#: gnu/packages/linux.scm:564
 msgid "Headers of the Linux-Libre kernel."
 msgstr "Cabeceras de núcleo Linux-Libre."
 
-#: gnu/packages/linux.scm:420
+#: gnu/packages/linux.scm:847
 msgid "100% free redistribution of a cleaned Linux kernel"
 msgstr "Redistribución 100% libre de un núcleo Linux limpio"
 
-#: gnu/packages/linux.scm:422
+#: gnu/packages/linux.scm:849
 msgid ""
 "GNU Linux-Libre is a free (as in freedom) variant of the Linux kernel.\n"
 "It has been modified to remove all non-free binary blobs."
 msgstr ""
 
-#: gnu/packages/linux.scm:457
+#: gnu/packages/linux.scm:1064
+msgid "Linux kernel module to perform ACPI method calls"
+msgstr ""
+
+#: gnu/packages/linux.scm:1066
+msgid ""
+"This simple Linux kernel module allows calls from user space to any\n"
+"@acronym{ACPI, Advanced Configuration and Power Interface} method provided by\n"
+"your computer's firmware, by writing to @file{/proc/acpi/call}.  You can pass\n"
+"any number of parameters of types @code{ACPI_INTEGER}, @code{ACPI_STRING},\n"
+"and @code{ACPI_BUFFER}.\n"
+"\n"
+"It grants direct and undocumented access to your hardware that may cause damage\n"
+"and should be used with caution, especially on untested models."
+msgstr ""
+
+#: gnu/packages/linux.scm:1114
+msgid "Linux driver for Realtek USB wireless network adapters"
+msgstr ""
+
+#: gnu/packages/linux.scm:1116
+msgid ""
+"This is Realtek's rtl8812au Linux driver for USB 802.11n wireless\n"
+"network adapters, modified by the aircrack-ng project to support monitor mode\n"
+"and frame injection.  It provides a @code{88XXau} kernel module that supports\n"
+"RTL8812AU, RTL8821AU, and RTL8814AU chips."
+msgstr ""
+
+#: gnu/packages/linux.scm:1152
+msgid "Linux driver for Realtek RTL8821CE wireless network adapters"
+msgstr ""
+
+#: gnu/packages/linux.scm:1153
+msgid ""
+"This is Realtek's RTL8821CE Linux driver for wireless\n"
+"network adapters."
+msgstr ""
+
+#: gnu/packages/linux.scm:1174
 msgid "Kernel module that emulates SCSI devices"
 msgstr ""
 
-#: gnu/packages/linux.scm:458
+#: gnu/packages/linux.scm:1175
 msgid ""
 "VHBA module provides a Virtual (SCSI) HBA, which is the link\n"
 "between the CDemu userspace daemon and linux kernel."
 msgstr ""
 
-#: gnu/packages/linux.scm:603
+#: gnu/packages/linux.scm:1200
+msgid "Kernel module that disables discrete Nvidia graphics cards"
+msgstr ""
+
+#: gnu/packages/linux.scm:1201
+msgid ""
+"The bbswitch module provides a way to toggle the Nvidia\n"
+"graphics card on Optimus laptops."
+msgstr ""
+
+#: gnu/packages/linux.scm:1242
+msgid "Pair of Linux kernel drivers for DDC/CI monitors"
+msgstr ""
+
+#: gnu/packages/linux.scm:1243
+msgid ""
+"This package provides two Linux kernel drivers, ddcci and\n"
+"ddcci-backlight, that allows the control of DDC/CI monitors through the sysfs\n"
+"interface.  The ddcci module creates a character device for each DDC/CI\n"
+"monitors in @file{/dev/bus/ddcci/[I²C busnumber]}.  While the ddcci-backlight\n"
+"module allows the control of the backlight level or luminance property when\n"
+"supported under @file{/sys/class/backlight/}."
+msgstr ""
+
+#: gnu/packages/linux.scm:1268
+msgid "Linux kernel module to create virtual V4L2 video devices"
+msgstr ""
+
+#: gnu/packages/linux.scm:1270
+msgid ""
+"This Linux module creates virtual video devices.  @acronym{V4L2, Video\n"
+"for Linux 2} applications will treat these as ordinary video devices but read\n"
+"video data generated by another application, instead of a hardware device such\n"
+"as a capture card.\n"
+"\n"
+"This lets you apply nifty effects to your Jitsi video, for example, but also\n"
+"allows some more serious things like adding streaming capabilities to an\n"
+"application by hooking GStreamer into the loopback device."
+msgstr ""
+
+#: gnu/packages/linux.scm:1326
 msgid "Pluggable authentication modules for Linux"
 msgstr ""
 
-#: gnu/packages/linux.scm:605
+#: gnu/packages/linux.scm:1328
 msgid ""
 "A *Free* project to implement OSF's RFC 86.0.\n"
 "Pluggable authentication modules are small shared object files that can\n"
@@ -8430,44 +12188,86 @@ msgstr ""
 "autenticando un usuario en el registro de entrada.  Local y dinámica \n"
 "reconfiguración son su característica de clave."
 
-#: gnu/packages/linux.scm:647
+#: gnu/packages/linux.scm:1388
+#, fuzzy
+msgid "PAM interface using ctypes"
+msgstr "Interfaz Perl para pseudo ttys"
+
+#: gnu/packages/linux.scm:1389
+msgid "This package provides a PAM interface using @code{ctypes}."
+msgstr ""
+
+#: gnu/packages/linux.scm:1424
+msgid "Measure system power consumption"
+msgstr ""
+
+#: gnu/packages/linux.scm:1426
+msgid ""
+"Powerstat measures and reports your computer's power consumption in real\n"
+"time.  On mobile PCs, it uses ACPI battery information to measure the power\n"
+"drain of the entire system.\n"
+"\n"
+"Powerstat can also report @acronym{RAPL, Running Average Power Limit} power\n"
+"domain measurements.  These are available only on some hardware such as Intel\n"
+"Sandybridge and newer, and cover only part of the machine's components such as\n"
+"CPU, DRAM, and graphics.  However, they provide accurate and immediate readings\n"
+"and don't require a battery at all.\n"
+"\n"
+"The output is like @command{vmstat} but also shows power consumption statistics:\n"
+"at the end of a run, @command{powerstat} will calculate the average, standard\n"
+"deviation, and minimum and maximum values.  It can show a nice histogram too."
+msgstr ""
+
+#: gnu/packages/linux.scm:1462
 msgid "Small utilities that use the proc file system"
 msgstr ""
 
-#: gnu/packages/linux.scm:649
+#: gnu/packages/linux.scm:1464
 msgid ""
 "This PSmisc package is a set of some small useful utilities that\n"
 "use the proc file system.  We're not about changing the world, but\n"
 "providing the system administrator with some help in common tasks."
 msgstr ""
 
-#: gnu/packages/linux.scm:741
+#: gnu/packages/linux.scm:1597
 msgid "Collection of utilities for the Linux kernel"
 msgstr "Colección de utilidades para el núcleo Linux"
 
-#: gnu/packages/linux.scm:742
+#: gnu/packages/linux.scm:1598
 msgid ""
 "Util-linux is a diverse collection of Linux kernel\n"
 "utilities.  It provides dmesg and includes tools for working with file systems,\n"
 "block devices, UUIDs, TTYs, and many other tools."
 msgstr ""
 
-#: gnu/packages/linux.scm:766
+#: gnu/packages/linux.scm:1634
 msgid "PERPETUAL DATE CONVERTER FROM GREGORIAN TO POEE CALENDAR"
 msgstr ""
 
-#: gnu/packages/linux.scm:768
+#: gnu/packages/linux.scm:1636
 msgid ""
 "ddate displays the Discordian date and holidays of a given date.\n"
 "The Discordian calendar was made popular by the \"Illuminatus!\" trilogy\n"
 "by Robert Shea and Robert Anton Wilson."
 msgstr ""
 
-#: gnu/packages/linux.scm:804
+#: gnu/packages/linux.scm:1689
+msgid "Show and modify Linux frame buffer settings"
+msgstr ""
+
+#: gnu/packages/linux.scm:1691
+msgid ""
+"The kernel Linux's @dfn{frame buffers} provide a simple interface to\n"
+"different kinds of graphic displays.  The @command{fbset} utility can query and\n"
+"change various device settings such as depth, virtual resolution, and timing\n"
+"parameters."
+msgstr ""
+
+#: gnu/packages/linux.scm:1734
 msgid "Utilities that give information about processes"
 msgstr ""
 
-#: gnu/packages/linux.scm:806
+#: gnu/packages/linux.scm:1736
 msgid ""
 "Procps is the package that has a bunch of small useful utilities\n"
 "that give information about processes using the Linux /proc file system.\n"
@@ -8475,47 +12275,47 @@ msgid ""
 "slabtop, and skill."
 msgstr ""
 
-#: gnu/packages/linux.scm:832
+#: gnu/packages/linux.scm:1790
 msgid "Tools for working with USB devices, such as lsusb"
 msgstr ""
 
-#: gnu/packages/linux.scm:834
+#: gnu/packages/linux.scm:1792
 msgid "Tools for working with USB devices, such as lsusb."
 msgstr ""
 
-#: gnu/packages/linux.scm:910
+#: gnu/packages/linux.scm:1868
 msgid "Creating and checking ext2/ext3/ext4 file systems"
 msgstr "Creando y comprobando sistemas de ficheros ext2/ext3/ext4"
 
-#: gnu/packages/linux.scm:912
+#: gnu/packages/linux.scm:1870
 msgid "This package provides tools for manipulating ext2/ext3/ext4 file systems."
 msgstr ""
 
-#: gnu/packages/linux.scm:954
+#: gnu/packages/linux.scm:1912
 msgid "Statically-linked e2fsck command from e2fsprogs"
 msgstr ""
 
-#: gnu/packages/linux.scm:955
+#: gnu/packages/linux.scm:1913
 msgid ""
 "This package provides statically-linked e2fsck command taken\n"
 "from the e2fsprogs package.  It is meant to be used in initrds."
 msgstr ""
 
-#: gnu/packages/linux.scm:976
+#: gnu/packages/linux.scm:1934
 msgid "Recover deleted files from ext2/3/4 partitions"
 msgstr ""
 
-#: gnu/packages/linux.scm:978
+#: gnu/packages/linux.scm:1936
 msgid ""
 "Extundelete is a set of tools that can recover deleted files from an\n"
 "ext3 or ext4 partition."
 msgstr ""
 
-#: gnu/packages/linux.scm:1009
+#: gnu/packages/linux.scm:1967
 msgid "Zero non-allocated regions in ext2/ext3/ext4 file systems"
 msgstr ""
 
-#: gnu/packages/linux.scm:1011
+#: gnu/packages/linux.scm:1969
 msgid ""
 "Zerofree finds the unallocated blocks with non-zero value content in an\n"
 "ext2, ext3, or ext4 file system and fills them with zeroes (or another value).\n"
@@ -8523,46 +12323,46 @@ msgid ""
 "Zerofree requires the file system to be unmounted or mounted read-only."
 msgstr ""
 
-#: gnu/packages/linux.scm:1043
+#: gnu/packages/linux.scm:2007
 msgid "System call tracer for Linux"
 msgstr "Traza de llamada al sistema para Linux"
 
-#: gnu/packages/linux.scm:1045
+#: gnu/packages/linux.scm:2009
 msgid ""
 "strace is a system call tracer, i.e. a debugging tool which prints out a\n"
 "trace of all the system calls made by a another process/program."
 msgstr ""
 
-#: gnu/packages/linux.scm:1066
+#: gnu/packages/linux.scm:2030
 msgid "Library call tracer for Linux"
 msgstr "Traza de llamada bibliotecaria para Linux"
 
-#: gnu/packages/linux.scm:1068
+#: gnu/packages/linux.scm:2032
 msgid ""
 "ltrace intercepts and records dynamic library calls which are called by\n"
 "an executed process and the signals received by that process.  It can also\n"
 "intercept and print the system calls executed by the program."
 msgstr ""
 
-#: gnu/packages/linux.scm:1087
+#: gnu/packages/linux.scm:2055
 msgid "The Advanced Linux Sound Architecture libraries"
 msgstr ""
 
-#: gnu/packages/linux.scm:1089 gnu/packages/linux.scm:1133
+#: gnu/packages/linux.scm:2057 gnu/packages/linux.scm:2109
 msgid ""
 "The Advanced Linux Sound Architecture (ALSA) provides audio and\n"
 "MIDI functionality to the Linux-based operating system."
 msgstr ""
 
-#: gnu/packages/linux.scm:1131
+#: gnu/packages/linux.scm:2107
 msgid "Utilities for the Advanced Linux Sound Architecture (ALSA)"
 msgstr ""
 
-#: gnu/packages/linux.scm:1195
+#: gnu/packages/linux.scm:2171
 msgid "Plugins for the Advanced Linux Sound Architecture (ALSA)"
 msgstr ""
 
-#: gnu/packages/linux.scm:1197
+#: gnu/packages/linux.scm:2173
 msgid ""
 "The Advanced Linux Sound Architecture (ALSA) provides audio and\n"
 "MIDI functionality to the Linux-based operating system.  This package enhances ALSA\n"
@@ -8571,11 +12371,11 @@ msgid ""
 "external rate conversion."
 msgstr ""
 
-#: gnu/packages/linux.scm:1231
+#: gnu/packages/linux.scm:2208
 msgid "Programs to configure Linux IP packet filtering rules"
 msgstr ""
 
-#: gnu/packages/linux.scm:1233
+#: gnu/packages/linux.scm:2210
 msgid ""
 "@command{iptables} is the user-space command line program used to\n"
 "configure the Linux 2.4.x and later IPv4 packet filtering ruleset\n"
@@ -8587,11 +12387,24 @@ msgid ""
 "Both commands are targeted at system administrators."
 msgstr ""
 
-#: gnu/packages/linux.scm:1289
+#: gnu/packages/linux.scm:2232
+#, fuzzy
+msgid "Lists information about SCSI or NVMe devices in Linux"
+msgstr "Enseña información sobre dispositivos ACPI"
+
+#: gnu/packages/linux.scm:2235
+msgid ""
+"@command{lsscsi} lists SCSI logical units or SCSI targets.  It can\n"
+"also list NVMe namespaces or controllers and show the relationship between a\n"
+"device's primary node name, its SCSI generic (sg) node name and its kernel\n"
+"name."
+msgstr ""
+
+#: gnu/packages/linux.scm:2257
 msgid "Ethernet bridge frame table administration"
 msgstr ""
 
-#: gnu/packages/linux.scm:1292
+#: gnu/packages/linux.scm:2260
 msgid ""
 "ebtables is an application program used to set up and maintain the\n"
 "tables of rules (inside the Linux kernel) that inspect Ethernet frames.  It is\n"
@@ -8599,11 +12412,11 @@ msgid ""
 "that the Ethernet protocol is much simpler than the IP protocol."
 msgstr ""
 
-#: gnu/packages/linux.scm:1345
+#: gnu/packages/linux.scm:2314
 msgid "Utilities for controlling TCP/IP networking and traffic in Linux"
 msgstr ""
 
-#: gnu/packages/linux.scm:1347
+#: gnu/packages/linux.scm:2316
 msgid ""
 "Iproute2 is a collection of utilities for controlling TCP/IP networking\n"
 "and traffic with the Linux kernel.  The most important of these are\n"
@@ -8615,11 +12428,11 @@ msgid ""
 "inadequately in modern network environments, and both should be deprecated."
 msgstr ""
 
-#: gnu/packages/linux.scm:1424
+#: gnu/packages/linux.scm:2394
 msgid "Tools for controlling the network subsystem in Linux"
 msgstr ""
 
-#: gnu/packages/linux.scm:1426
+#: gnu/packages/linux.scm:2396
 msgid ""
 "This package includes the important tools for controlling the network\n"
 "subsystem of the Linux kernel.  This includes arp, ifconfig, netstat, rarp and\n"
@@ -8628,21 +12441,21 @@ msgid ""
 "configuration (iptunnel, ipmaddr)."
 msgstr ""
 
-#: gnu/packages/linux.scm:1464
+#: gnu/packages/linux.scm:2434
 msgid "Library for working with POSIX capabilities"
 msgstr "Biblioteca para trabajar con capacidades POSIX"
 
-#: gnu/packages/linux.scm:1466
+#: gnu/packages/linux.scm:2436
 msgid ""
 "Libcap2 provides a programming interface to POSIX capabilities on\n"
 "Linux-based operating systems."
 msgstr ""
 
-#: gnu/packages/linux.scm:1509
+#: gnu/packages/linux.scm:2493
 msgid "Manipulate Ethernet bridges"
 msgstr "Puente manipulador Ethernet"
 
-#: gnu/packages/linux.scm:1511
+#: gnu/packages/linux.scm:2495
 msgid ""
 "Utilities for Linux's Ethernet bridging facilities.  A bridge is a way\n"
 "to connect two Ethernet segments together in a protocol independent way.\n"
@@ -8651,12 +12464,12 @@ msgid ""
 "transparently through a bridge."
 msgstr ""
 
-#: gnu/packages/linux.scm:1577
+#: gnu/packages/linux.scm:2544
 #, fuzzy
 msgid "NetLink protocol library suite"
 msgstr "Biblioteca utilitaria para Netlink"
 
-#: gnu/packages/linux.scm:1579
+#: gnu/packages/linux.scm:2546
 msgid ""
 "The libnl suite is a collection of libraries providing APIs to netlink\n"
 "protocol based Linux kernel interfaces.  Netlink is an IPC mechanism primarily\n"
@@ -8665,21 +12478,21 @@ msgid ""
 "configuration and monitoring interfaces."
 msgstr ""
 
-#: gnu/packages/linux.scm:1609
+#: gnu/packages/linux.scm:2622
 msgid "Tool for configuring wireless devices"
 msgstr ""
 
-#: gnu/packages/linux.scm:1611
+#: gnu/packages/linux.scm:2624
 msgid ""
 "iw is a new nl80211 based CLI configuration utility for wireless\n"
 "devices.  It replaces @code{iwconfig}, which is deprecated."
 msgstr ""
 
-#: gnu/packages/linux.scm:1655
+#: gnu/packages/linux.scm:2668
 msgid "Analyze power consumption on Intel-based laptops"
 msgstr "Analiza consumo de energía en portátiles basados en Intel"
 
-#: gnu/packages/linux.scm:1657
+#: gnu/packages/linux.scm:2670
 msgid ""
 "PowerTOP is a Linux tool to diagnose issues with power consumption and\n"
 "power management.  In addition to being a diagnostic tool, PowerTOP also has\n"
@@ -8688,31 +12501,31 @@ msgid ""
 "settings."
 msgstr ""
 
-#: gnu/packages/linux.scm:1679
+#: gnu/packages/linux.scm:2692
 msgid "Audio mixer for X and the console"
 msgstr ""
 
-#: gnu/packages/linux.scm:1681
+#: gnu/packages/linux.scm:2694
 msgid ""
 "Aumix adjusts an audio mixer from X, the console, a terminal,\n"
 "the command line or a script."
 msgstr ""
 
-#: gnu/packages/linux.scm:1705
+#: gnu/packages/linux.scm:2723
 msgid "Displays the IO activity of running processes"
 msgstr ""
 
-#: gnu/packages/linux.scm:1707
+#: gnu/packages/linux.scm:2725
 msgid ""
 "Iotop is a Python program with a top like user interface to show the\n"
 "processes currently causing I/O."
 msgstr ""
 
-#: gnu/packages/linux.scm:1761
+#: gnu/packages/linux.scm:2780
 msgid "Support file systems implemented in user space"
 msgstr "Sistema de fichero compatible implementado en espacio de usuario"
 
-#: gnu/packages/linux.scm:1763
+#: gnu/packages/linux.scm:2782
 msgid ""
 "As a consequence of its monolithic design, file system code for Linux\n"
 "normally goes into the kernel itself---which is not only a robustness issue,\n"
@@ -8722,11 +12535,11 @@ msgid ""
 "user-space processes."
 msgstr ""
 
-#: gnu/packages/linux.scm:1794
+#: gnu/packages/linux.scm:2813
 msgid "User-space union file system"
 msgstr "Unión de espacio de usuario al fichero de sistema"
 
-#: gnu/packages/linux.scm:1796
+#: gnu/packages/linux.scm:2815
 msgid ""
 "UnionFS-FUSE is a flexible union file system implementation in user\n"
 "space, using the FUSE library.  Mounting a union file system allows you to\n"
@@ -8734,15 +12547,15 @@ msgid ""
 "UnionFS-FUSE additionally supports copy-on-write."
 msgstr ""
 
-#: gnu/packages/linux.scm:1824
+#: gnu/packages/linux.scm:2843
 msgid "User-space union file system (statically linked)"
 msgstr "Unión de espacio de usuario al fichero de sistema (enlazado estático)"
 
-#: gnu/packages/linux.scm:1874
+#: gnu/packages/linux.scm:2893
 msgid "Mount remote file systems over SSH"
 msgstr ""
 
-#: gnu/packages/linux.scm:1876
+#: gnu/packages/linux.scm:2895
 msgid ""
 "This is a file system client based on the SSH File Transfer Protocol.\n"
 "Since most SSH servers already support this protocol it is very easy to set\n"
@@ -8750,11 +12563,11 @@ msgid ""
 "file system is as easy as logging into the server with an SSH client."
 msgstr ""
 
-#: gnu/packages/linux.scm:1903
+#: gnu/packages/linux.scm:2922
 msgid "Tool for mounting archive files with FUSE"
 msgstr ""
 
-#: gnu/packages/linux.scm:1904
+#: gnu/packages/linux.scm:2923
 msgid ""
 "archivemount is a FUSE-based file system for Unix variants,\n"
 "including Linux.  Its purpose is to mount archives (i.e. tar, tar.gz, etc.) to a\n"
@@ -8763,63 +12576,63 @@ msgid ""
 "compressed, transparent to other programs, without decompressing them."
 msgstr ""
 
-#: gnu/packages/linux.scm:1933
+#: gnu/packages/linux.scm:2952
 msgid "Tools for non-uniform memory access (NUMA) machines"
 msgstr ""
 
-#: gnu/packages/linux.scm:1935
+#: gnu/packages/linux.scm:2954
 msgid ""
 "NUMA stands for Non-Uniform Memory Access, in other words a system whose\n"
-"memory is not all in one place.  The numactl program allows you to run your\n"
-"application program on specific CPU's and memory nodes.  It does this by\n"
-"supplying a NUMA memory policy to the operating system before running your\n"
+"memory is not all in one place.  The @command{numactl} program allows you to\n"
+"run your application program on specific CPUs and memory nodes.  It does this\n"
+"by supplying a NUMA memory policy to the operating system before running your\n"
 "program.\n"
 "\n"
-"The package contains other commands, such as numademo, numastat and memhog.\n"
-"The numademo command provides a quick overview of NUMA performance on your\n"
-"system."
+"The package contains other commands, such as @command{numastat},\n"
+"@command{memhog}, and @command{numademo} which provides a quick overview of\n"
+"NUMA performance on your system."
 msgstr ""
 
-#: gnu/packages/linux.scm:1971
+#: gnu/packages/linux.scm:2990
 msgid "Neo2 console layout"
 msgstr "Entorno de consola Neo2"
 
-#: gnu/packages/linux.scm:1973
+#: gnu/packages/linux.scm:2992
 msgid ""
 "Kbd-neo provides the Neo2 keyboard layout for use with\n"
 "@command{loadkeys(1)} from @code{kbd(4)}."
 msgstr ""
 
-#: gnu/packages/linux.scm:2039
+#: gnu/packages/linux.scm:3058
 msgid "Linux keyboard utilities and keyboard maps"
 msgstr ""
 
-#: gnu/packages/linux.scm:2041
+#: gnu/packages/linux.scm:3060
 msgid ""
 "This package contains keytable files and keyboard utilities compatible\n"
 "for systems using the Linux kernel.  This includes commands such as\n"
 "@code{loadkeys}, @code{setfont}, @code{kbdinfo}, and @code{chvt}."
 msgstr ""
 
-#: gnu/packages/linux.scm:2077
+#: gnu/packages/linux.scm:3096
 msgid "Statically-linked @command{loadkeys} program"
 msgstr ""
 
-#: gnu/packages/linux.scm:2102
+#: gnu/packages/linux.scm:3121
 msgid "Monitor file accesses"
 msgstr "Monitor de acceso a fichero"
 
-#: gnu/packages/linux.scm:2104
+#: gnu/packages/linux.scm:3123
 msgid ""
 "The inotify-tools packages provides a C library and command-line tools\n"
 "to use Linux' inotify mechanism, which allows file accesses to be monitored."
 msgstr ""
 
-#: gnu/packages/linux.scm:2143
+#: gnu/packages/linux.scm:3171
 msgid "Kernel module tools"
 msgstr "Herramientas de módulo del núcleo"
 
-#: gnu/packages/linux.scm:2144
+#: gnu/packages/linux.scm:3172
 msgid ""
 "Kmod is a set of tools to handle common tasks with Linux\n"
 "kernel modules like insert, remove, list, check properties, resolve\n"
@@ -8830,37 +12643,75 @@ msgid ""
 "from the module-init-tools project."
 msgstr ""
 
-#: gnu/packages/linux.scm:2213
+#: gnu/packages/linux.scm:3219
+msgid "Simple out of memory (OOM) daemon for the Linux kernel"
+msgstr ""
+
+#: gnu/packages/linux.scm:3220
+msgid ""
+"Early OOM is a minimalist out of memory (OOM) daemon that\n"
+"runs in user space and provides a more responsive and configurable alternative\n"
+"to the in-kernel OOM killer."
+msgstr ""
+
+#: gnu/packages/linux.scm:3317
 msgid "Userspace device management"
 msgstr "Gestión de dispositivo en espacio de usuario"
 
-#: gnu/packages/linux.scm:2214
+#: gnu/packages/linux.scm:3318
 msgid ""
 "Udev is a daemon which dynamically creates and removes\n"
 "device nodes from /dev/, handles hotplug events and loads drivers at boot\n"
 "time."
 msgstr ""
 
-#: gnu/packages/linux.scm:2293
+#: gnu/packages/linux.scm:3348
+msgid "Bindings to the Linux input handling subsystem"
+msgstr ""
+
+#: gnu/packages/linux.scm:3350
+msgid ""
+"Python-evdev provides bindings to the generic input event interface in\n"
+"Linux.  The @code{evdev} interface serves the purpose of passing events\n"
+"generated in the kernel directly to userspace through character devices that\n"
+"are typically located in @file{/dev/input/}.\n"
+"\n"
+"This package also comes with bindings to @code{uinput}, the userspace input\n"
+"subsystem.  @code{uinput} allows userspace programs to create and handle input\n"
+"devices that can inject events directly into the input subsystem."
+msgstr ""
+
+#: gnu/packages/linux.scm:3432
 msgid "Logical volume management for Linux"
 msgstr "Gesto de volumen lógico para Linux"
 
-#: gnu/packages/linux.scm:2295
+#: gnu/packages/linux.scm:3434
 msgid ""
 "LVM2 is the logical volume management tool set for Linux-based systems.\n"
 "This package includes the user-space libraries and tools, including the device\n"
 "mapper.  Kernel components are part of Linux-libre."
 msgstr ""
 
-#: gnu/packages/linux.scm:2317
+#: gnu/packages/linux.scm:3474
 msgid "Logical volume management for Linux (statically linked)"
 msgstr "Gesto de volumen lógico para Linux (enlace estático)"
 
-#: gnu/packages/linux.scm:2347
+#: gnu/packages/linux.scm:3501
+#, fuzzy
+msgid "Tools for manipulating the metadata of device-mapper targets"
+msgstr "Herramientas para manipulación de imágenes"
+
+#: gnu/packages/linux.scm:3502
+msgid ""
+"A suite of tools for manipulating the metadata of the\n"
+"dm-thin, dm-cache and dm-era device-mapper targets."
+msgstr ""
+
+#: gnu/packages/linux.scm:3547
 msgid "Tools for manipulating Linux Wireless Extensions"
 msgstr ""
 
-#: gnu/packages/linux.scm:2348
+#: gnu/packages/linux.scm:3548
 msgid ""
 "Wireless Tools are used to manipulate the now-deprecated\n"
 "Linux Wireless Extensions; consider using @code{iw} instead.  The Wireless\n"
@@ -8869,57 +12720,56 @@ msgid ""
 "interface."
 msgstr ""
 
-#: gnu/packages/linux.scm:2425
+#: gnu/packages/linux.scm:3638
 msgid "Central regulatory domain agent (CRDA) for WiFi"
 msgstr ""
 
-#: gnu/packages/linux.scm:2427
+#: gnu/packages/linux.scm:3640
 msgid ""
 "The Central Regulatory Domain Agent (CRDA) acts as the udev helper for\n"
 "communication between the kernel Linux and user space for regulatory\n"
 "compliance."
 msgstr ""
 
-#: gnu/packages/linux.scm:2480
+#: gnu/packages/linux.scm:3708
 msgid "Wireless regulatory database"
 msgstr "BB regulatorio sin cable de red"
 
-#: gnu/packages/linux.scm:2482
+#: gnu/packages/linux.scm:3710
 msgid ""
 "This package contains the wireless regulatory database Central\n"
 "Regulatory Database Agent (CRDA) daemon.  The database contains information on\n"
 "country-specific regulations for the wireless spectrum."
 msgstr ""
 
-#: gnu/packages/linux.scm:2559
+#: gnu/packages/linux.scm:3787
 msgid "Utilities to read temperature/voltage/fan sensors"
 msgstr ""
 
-#: gnu/packages/linux.scm:2561
+#: gnu/packages/linux.scm:3789
 msgid ""
 "Lm-sensors is a hardware health monitoring package for Linux.  It allows\n"
 "you to access information from temperature, voltage, and fan speed sensors.\n"
 "It works with most newer systems."
 msgstr ""
 
-#: gnu/packages/linux.scm:2579
+#: gnu/packages/linux.scm:3807
 #, fuzzy
-#| msgid "Manipulate Ethernet bridges"
 msgid "Manipulate Intel microcode bundles"
 msgstr "Puente manipulador Ethernet"
 
-#: gnu/packages/linux.scm:2581
+#: gnu/packages/linux.scm:3809
 msgid ""
 "@command{iucode_tool} is a utility to work with microcode packages for\n"
 "Intel processors.  It can convert between formats, extract specific versions,\n"
 "create a firmware image suitable for the Linux kernel, and more."
 msgstr ""
 
-#: gnu/packages/linux.scm:2610
+#: gnu/packages/linux.scm:3838
 msgid "I2C tools for Linux"
 msgstr "Herramientas I2C para Linux"
 
-#: gnu/packages/linux.scm:2612
+#: gnu/packages/linux.scm:3840
 msgid ""
 "The i2c-tools package contains a heterogeneous set of I2C tools for\n"
 "Linux: a bus probing tool, a chip dumper, register-level SMBus access helpers,\n"
@@ -8927,22 +12777,22 @@ msgid ""
 "SMBus access."
 msgstr ""
 
-#: gnu/packages/linux.scm:2649
+#: gnu/packages/linux.scm:3877
 msgid "Hardware health information viewer"
 msgstr "Visor de información para salud del hardware"
 
-#: gnu/packages/linux.scm:2651
+#: gnu/packages/linux.scm:3879
 msgid ""
 "Xsensors reads data from the libsensors library regarding hardware\n"
 "health such as temperature, voltage and fan speed and displays the information\n"
 "in a digital read-out."
 msgstr ""
 
-#: gnu/packages/linux.scm:2701
+#: gnu/packages/linux.scm:3931
 msgid "Linux profiling with performance counters"
 msgstr "Perfilado Linux con monitorización de rendimiento"
 
-#: gnu/packages/linux.scm:2703
+#: gnu/packages/linux.scm:3933
 msgid ""
 "perf is a tool suite for profiling using hardware performance counters,\n"
 "with support in the Linux kernel.  perf can instrument CPU performance\n"
@@ -8951,11 +12801,11 @@ msgid ""
 "particular the @code{perf} command."
 msgstr ""
 
-#: gnu/packages/linux.scm:2726
+#: gnu/packages/linux.scm:3957
 msgid "Simple tool for creating Linux namespace containers"
 msgstr ""
 
-#: gnu/packages/linux.scm:2727
+#: gnu/packages/linux.scm:3958
 msgid ""
 "pflask is a simple tool for creating Linux namespace\n"
 "containers.  It can be used for running a command or even booting an OS inside\n"
@@ -8964,13 +12814,12 @@ msgid ""
 "thanks to the use of namespaces."
 msgstr ""
 
-#: gnu/packages/linux.scm:2782
+#: gnu/packages/linux.scm:4042
 #, fuzzy
-#| msgid "Action platformer game"
 msgid "Container platform"
 msgstr "Juego de plataforma de acción"
 
-#: gnu/packages/linux.scm:2783
+#: gnu/packages/linux.scm:4043
 msgid ""
 "Singularity is a container platform supporting a number of\n"
 "container image formats.  It can build SquashFS container images or import\n"
@@ -8978,11 +12827,11 @@ msgid ""
 "isolation or root privileges."
 msgstr ""
 
-#: gnu/packages/linux.scm:2811
+#: gnu/packages/linux.scm:4074
 msgid "View and tune ATA disk drive parameters"
 msgstr ""
 
-#: gnu/packages/linux.scm:2813
+#: gnu/packages/linux.scm:4076
 msgid ""
 "@command{hdparm} is a command-line utility to control ATA controllers and\n"
 "disk drives.  It can increase performance and/or reliability by careful tuning\n"
@@ -8996,22 +12845,33 @@ msgid ""
 "Translation (@dfn{SAT}) are also supported."
 msgstr ""
 
-#: gnu/packages/linux.scm:2844
+#: gnu/packages/linux.scm:4114
+msgid "NVM-Express user space tooling for Linux"
+msgstr ""
+
+#: gnu/packages/linux.scm:4115
+msgid ""
+"Nvme-cli is a utility to provide standards compliant tooling\n"
+"for NVM-Express drives.  It was made specifically for Linux as it relies on the\n"
+"IOCTLs defined by the mainline kernel driver."
+msgstr ""
+
+#: gnu/packages/linux.scm:4139
 msgid "Tool for enabling and disabling wireless devices"
 msgstr ""
 
-#: gnu/packages/linux.scm:2846
+#: gnu/packages/linux.scm:4141
 msgid ""
 "rfkill is a simple tool for accessing the rfkill device interface,\n"
 "which is used to enable and disable wireless networking devices, typically\n"
 "WLAN, Bluetooth and mobile broadband."
 msgstr ""
 
-#: gnu/packages/linux.scm:2867
+#: gnu/packages/linux.scm:4162
 msgid "Display information on ACPI devices"
 msgstr "Enseña información sobre dispositivos ACPI"
 
-#: gnu/packages/linux.scm:2868
+#: gnu/packages/linux.scm:4163
 msgid ""
 "@code{acpi} attempts to replicate the functionality of the\n"
 "\"old\" @code{apm} command on ACPI systems, including battery and thermal\n"
@@ -9019,11 +12879,11 @@ msgid ""
 "about ACPI devices."
 msgstr ""
 
-#: gnu/packages/linux.scm:2887
+#: gnu/packages/linux.scm:4182
 msgid "Daemon for delivering ACPI events to user-space programs"
 msgstr ""
 
-#: gnu/packages/linux.scm:2889
+#: gnu/packages/linux.scm:4184
 msgid ""
 "acpid is designed to notify user-space programs of Advanced\n"
 "Configuration and Power Interface (ACPI) events.  acpid should be started\n"
@@ -9032,37 +12892,37 @@ msgid ""
 "specified in /etc/acpi/events and execute the rules that match the event."
 msgstr ""
 
-#: gnu/packages/linux.scm:2911
+#: gnu/packages/linux.scm:4206
 msgid "System utilities based on Linux sysfs"
 msgstr ""
 
-#: gnu/packages/linux.scm:2913
+#: gnu/packages/linux.scm:4208
 msgid ""
 "These are a set of utilities built upon sysfs, a virtual file system in\n"
 "Linux kernel versions 2.5+ that exposes a system's device tree.  The package\n"
 "also contains the libsysfs library."
 msgstr ""
 
-#: gnu/packages/linux.scm:2943
+#: gnu/packages/linux.scm:4238
 msgid "System utilities based on Linux sysfs (version 1.x)"
 msgstr ""
 
-#: gnu/packages/linux.scm:2966
+#: gnu/packages/linux.scm:4259
 msgid "Utilities to get and set CPU frequency on Linux"
 msgstr ""
 
-#: gnu/packages/linux.scm:2968
+#: gnu/packages/linux.scm:4261
 msgid ""
 "The cpufrequtils suite contains utilities to retrieve CPU frequency\n"
 "information, and set the CPU frequency if supported, using the cpufreq\n"
 "capabilities of the Linux kernel."
 msgstr ""
 
-#: gnu/packages/linux.scm:2987
+#: gnu/packages/linux.scm:4280
 msgid "Interface library for the Linux IEEE1394 drivers"
 msgstr ""
 
-#: gnu/packages/linux.scm:2989
+#: gnu/packages/linux.scm:4282
 msgid ""
 "Libraw1394 is the only supported interface to the kernel side raw1394 of\n"
 "the Linux IEEE-1394 subsystem, which provides direct access to the connected\n"
@@ -9071,46 +12931,46 @@ msgid ""
 "protocol in question."
 msgstr ""
 
-#: gnu/packages/linux.scm:3013
+#: gnu/packages/linux.scm:4306
 msgid "AV/C protocol library for IEEE 1394"
 msgstr "Biblioteca de protocolo AV/C para IEEE 1394"
 
-#: gnu/packages/linux.scm:3015
+#: gnu/packages/linux.scm:4308
 msgid ""
 "Libavc1394 is a programming interface to the AV/C specification from\n"
 "the 1394 Trade Association.  AV/C stands for Audio/Video Control."
 msgstr ""
 
-#: gnu/packages/linux.scm:3037
+#: gnu/packages/linux.scm:4330
 msgid "Isochronous streaming media library for IEEE 1394"
 msgstr "Flujo isocrono de biblioteca de medio para IEEE 1394"
 
-#: gnu/packages/linux.scm:3039
+#: gnu/packages/linux.scm:4332
 msgid ""
 "The libiec61883 library provides a higher level API for streaming DV,\n"
 "MPEG-2 and audio over Linux IEEE 1394."
 msgstr ""
 
-#: gnu/packages/linux.scm:3088
+#: gnu/packages/linux.scm:4383
 msgid "Tool for managing Linux Software RAID arrays"
 msgstr ""
 
-#: gnu/packages/linux.scm:3090
+#: gnu/packages/linux.scm:4385
 msgid ""
 "mdadm is a tool for managing Linux Software RAID arrays.  It can create,\n"
 "assemble, report on, and monitor arrays.  It can also move spares between raid\n"
 "arrays when needed."
 msgstr ""
 
-#: gnu/packages/linux.scm:3122
+#: gnu/packages/linux.scm:4417
 msgid "Statically-linked 'mdadm' command for use in an initrd"
 msgstr ""
 
-#: gnu/packages/linux.scm:3187
+#: gnu/packages/linux.scm:4506
 msgid "Access block devices through multiple paths"
 msgstr "Acceso de bloque de dispositivos a través de rutas múltiples"
 
-#: gnu/packages/linux.scm:3189
+#: gnu/packages/linux.scm:4508
 msgid ""
 "This package provides the following binaries to drive the\n"
 "Linux Device Mapper multipathing driver:\n"
@@ -9123,108 +12983,162 @@ msgid ""
 "@end enumerate"
 msgstr ""
 
-#: gnu/packages/linux.scm:3221
+#: gnu/packages/linux.scm:4546
 msgid "Linux-native asynchronous I/O access library"
 msgstr ""
 
-#: gnu/packages/linux.scm:3223
+#: gnu/packages/linux.scm:4548
 msgid ""
 "This library enables userspace to use Linux kernel asynchronous I/O\n"
 "system calls, important for the performance of databases and other advanced\n"
 "applications."
 msgstr ""
 
-#: gnu/packages/linux.scm:3245
+#: gnu/packages/linux.scm:4590
+msgid "Block layer IO tracing mechanism"
+msgstr ""
+
+#: gnu/packages/linux.scm:4591
+msgid ""
+"Blktrace is a block layer IO tracing mechanism which provides\n"
+"detailed information about request queue operations to user space.  It extracts\n"
+"event traces from the kernel (via the relaying through the debug file system)."
+msgstr ""
+
+#: gnu/packages/linux.scm:4613
 msgid "Bluetooth subband audio codec"
 msgstr "Código de sonido versátil Bluetooth"
 
-#: gnu/packages/linux.scm:3247
+#: gnu/packages/linux.scm:4615
 msgid ""
 "The SBC is a digital audio encoder and decoder used to transfer data to\n"
 "Bluetooth audio output devices like headphones or loudspeakers."
 msgstr ""
 
-#: gnu/packages/linux.scm:3313
+#: gnu/packages/linux.scm:4681
 msgid "Linux Bluetooth protocol stack"
 msgstr ""
 
-#: gnu/packages/linux.scm:3315
+#: gnu/packages/linux.scm:4683
 msgid ""
 "BlueZ provides support for the core Bluetooth layers and protocols.  It\n"
 "is flexible, efficient and uses a modular implementation."
 msgstr ""
 
-#: gnu/packages/linux.scm:3337
+#: gnu/packages/linux.scm:4705
 msgid "Mount exFAT file systems"
 msgstr "Montar fichero del sistema exFAT"
 
-#: gnu/packages/linux.scm:3339
+#: gnu/packages/linux.scm:4707
 msgid ""
 "This package provides a FUSE-based file system that provides read and\n"
 "write access to exFAT devices."
 msgstr ""
 
-#: gnu/packages/linux.scm:3362
+#: gnu/packages/linux.scm:4730
 #, fuzzy
-#| msgid "Mount exFAT file systems"
 msgid "Mount ISO file system images"
 msgstr "Montar fichero del sistema exFAT"
 
-#: gnu/packages/linux.scm:3364
+#: gnu/packages/linux.scm:4732
 msgid ""
-"FuseISO is a FUSE module to mount ISO filesystem images (.iso, .nrg,\n"
+"FuseISO is a FUSE module to mount ISO file system images (.iso, .nrg,\n"
 ".bin, .mdf and .img files).  It supports plain ISO9660 Level 1 and 2, Rock\n"
 "Ridge, Joliet, and zisofs."
 msgstr ""
 
-#: gnu/packages/linux.scm:3407
+#: gnu/packages/linux.scm:4775
 msgid "Mouse support for the Linux console"
 msgstr ""
 
-#: gnu/packages/linux.scm:3409
+#: gnu/packages/linux.scm:4777
 msgid ""
 "The GPM (general-purpose mouse) daemon is a mouse server for\n"
 "applications running on the Linux console.  It allows users to select items\n"
 "and copy/paste text in the console and in xterm."
 msgstr ""
 
-#: gnu/packages/linux.scm:3473
+#: gnu/packages/linux.scm:4849
 msgid "Create and manage btrfs copy-on-write file systems"
 msgstr ""
 
-#: gnu/packages/linux.scm:3474
+#: gnu/packages/linux.scm:4850
 msgid ""
 "Btrfs is a @dfn{copy-on-write} (CoW) file system for Linux\n"
 "aimed at implementing advanced features while focusing on fault tolerance,\n"
 "repair and easy administration."
 msgstr ""
 
-#: gnu/packages/linux.scm:3507
+#: gnu/packages/linux.scm:4883
 msgid "Statically-linked btrfs command from btrfs-progs"
 msgstr ""
 
-#: gnu/packages/linux.scm:3508
+#: gnu/packages/linux.scm:4884
 msgid ""
 "This package provides the statically-linked @command{btrfs}\n"
 "from the btrfs-progs package.  It is meant to be used in initrds."
 msgstr ""
 
-#: gnu/packages/linux.scm:3545
+#: gnu/packages/linux.scm:4915
+#, fuzzy
+msgid "Tools to manage Cramfs file systems"
+msgstr "Herramientas para manipulación de mensajes MIME"
+
+#: gnu/packages/linux.scm:4916
+msgid ""
+"Cramfs is a Linux file system designed to be simple, small,\n"
+"and to compress things well.  It is used on a number of embedded systems and\n"
+"small devices.  This version has additional features such as uncompressed\n"
+"blocks and random block placement."
+msgstr ""
+
+#: gnu/packages/linux.scm:4949
+msgid "Find compression type/ratio on Btrfs files"
+msgstr ""
+
+#: gnu/packages/linux.scm:4950
+msgid ""
+"@command{compsize} takes a list of files (given as\n"
+"arguments) on a Btrfs file system and measures used compression types and\n"
+"effective compression ratio, producing a report.\n"
+"\n"
+"A directory has no extents but has a (recursive) list of files.  A non-regular\n"
+"file is silently ignored.\n"
+"\n"
+"As it makes no sense to talk about compression ratio of a partial extent,\n"
+"every referenced extent is counted whole, exactly once -- no matter if you use\n"
+"only a few bytes of a 1GB extent or reflink it a thousand times.  Thus, the\n"
+"uncompressed size will not match the number given by @command{tar} or\n"
+"@command{du}.  On the other hand, the space used should be accurate (although\n"
+"obviously it can be shared with files outside our set)."
+msgstr ""
+
+#: gnu/packages/linux.scm:4998
 msgid "Userland tools for f2fs"
 msgstr "Herramientas de usuario para f2fs"
 
-#: gnu/packages/linux.scm:3547
+#: gnu/packages/linux.scm:5000
 msgid ""
 "F2FS, the Flash-Friendly File System, is a modern file system\n"
 "designed to be fast and durable on flash devices such as solid-state\n"
 "disks and SD cards.  This package provides the userland utilities."
 msgstr ""
 
-#: gnu/packages/linux.scm:3595
+#: gnu/packages/linux.scm:5088
+msgid "Statically-linked fsck.f2fs command from f2fs-tools"
+msgstr ""
+
+#: gnu/packages/linux.scm:5089
+msgid ""
+"This package provides statically-linked fsck.f2fs command taken\n"
+"from the f2fs-tools package. It is meant to be used in initrds."
+msgstr ""
+
+#: gnu/packages/linux.scm:5118
 msgid "Free-fall protection for spinning laptop hard drives"
 msgstr ""
 
-#: gnu/packages/linux.scm:3597
+#: gnu/packages/linux.scm:5120
 msgid ""
 "Prevents shock damage to the internal spinning hard drive(s) of some\n"
 "HP and Dell laptops.  When sudden movement is detected, all input/output\n"
@@ -9234,11 +13148,11 @@ msgid ""
 "feature, and a laptop with an accelerometer.  It has no effect on SSDs."
 msgstr ""
 
-#: gnu/packages/linux.scm:3654
+#: gnu/packages/linux.scm:5177
 msgid "Simple fan control program"
 msgstr "Programa simple del control del ventilador"
 
-#: gnu/packages/linux.scm:3656
+#: gnu/packages/linux.scm:5179
 msgid ""
 "Thinkfan is a simple fan control program.  It reads temperatures,\n"
 "checks them against configured limits and switches to appropriate (also\n"
@@ -9247,22 +13161,41 @@ msgid ""
 "from userspace."
 msgstr ""
 
-#: gnu/packages/linux.scm:3706
+#: gnu/packages/linux.scm:5233
+msgid "ThinkPad battery charge controller"
+msgstr ""
+
+#: gnu/packages/linux.scm:5235
+msgid ""
+"Tpacpi-bat is a command-line interface to control battery charging on\n"
+"@uref{https://github.com/teleshoes/tpacpi-bat/wiki/Supported-Hardware, Lenovo\n"
+"ThinkPad models released after 2011}, starting with the xx20 series.  It can\n"
+"query and set the thresholds at which one or both batteries will start and stop\n"
+"charging, inhibit charging batteries for a set period of time, or force them to\n"
+"discharge when they otherwise would not.\n"
+"\n"
+"This tool merely exposes ACPI calls provided by the @code{acpi_call} Linux\n"
+"kernel module provided by the @code{acpi-call-linux-module} package, which must\n"
+"be installed and loaded separately.  Only the original vendor firmware is\n"
+"supported."
+msgstr ""
+
+#: gnu/packages/linux.scm:5292
 msgid "Read-write access to NTFS file systems"
 msgstr "Acceso lectura-escritura para sistema de ficheros NTFS"
 
-#: gnu/packages/linux.scm:3708
+#: gnu/packages/linux.scm:5294
 msgid ""
 "NTFS-3G provides read-write access to NTFS file systems, which are\n"
 "commonly found on Microsoft Windows.  It is implemented as a FUSE file system.\n"
 "The package provides additional NTFS tools."
 msgstr ""
 
-#: gnu/packages/linux.scm:3750
+#: gnu/packages/linux.scm:5349
 msgid "Utilities and libraries for working with RDMA devices"
 msgstr ""
 
-#: gnu/packages/linux.scm:3752
+#: gnu/packages/linux.scm:5351
 msgid ""
 "This package provides userspace components for the InfiniBand\n"
 "subsystem of the Linux kernel.  Specifically it contains userspace\n"
@@ -9282,11 +13215,11 @@ msgid ""
 "@end enumerate"
 msgstr ""
 
-#: gnu/packages/linux.scm:3805
+#: gnu/packages/linux.scm:5404
 msgid "Open Fabrics Enterprise Distribution (OFED) Performance Tests"
 msgstr ""
 
-#: gnu/packages/linux.scm:3806
+#: gnu/packages/linux.scm:5405
 msgid ""
 "This is a collection of tests written over uverbs intended for\n"
 "use as a performance micro-benchmark. The tests may be used for hardware or\n"
@@ -9302,32 +13235,44 @@ msgid ""
 "@end enumerate"
 msgstr ""
 
-#: gnu/packages/linux.scm:3844
+#: gnu/packages/linux.scm:5447
 msgid "Random number generator daemon"
 msgstr "Demonio generador de número aleatorias"
 
-#: gnu/packages/linux.scm:3846
+#: gnu/packages/linux.scm:5449
 msgid ""
 "Monitor a hardware random number generator, and supply entropy\n"
 "from that to the system kernel's @file{/dev/random} machinery."
 msgstr ""
 
-#: gnu/packages/linux.scm:3885
+#: gnu/packages/linux.scm:5489
 msgid "CPU frequency and voltage scaling tools for Linux"
 msgstr ""
 
-#: gnu/packages/linux.scm:3887
+#: gnu/packages/linux.scm:5491
 msgid ""
 "cpupower is a set of user-space tools that use the cpufreq feature of the\n"
 "Linux kernel to retrieve and control processor features related to power saving,\n"
 "such as frequency and voltage scaling."
 msgstr ""
 
-#: gnu/packages/linux.scm:3907
+#: gnu/packages/linux.scm:5521
+msgid "Display and update Intel-CPU energy-performance policy"
+msgstr ""
+
+#: gnu/packages/linux.scm:5523
+msgid ""
+"@command{x86_energy_perf_policy} displays and updates energy-performance\n"
+"policy settings specific to Intel Architecture Processors.  Settings are\n"
+"accessed via Model Specific Register (MSR) updates, no matter if the Linux\n"
+"cpufreq sub-system is enabled or not."
+msgstr ""
+
+#: gnu/packages/linux.scm:5544
 msgid "Entropy source for the Linux random number generator"
 msgstr ""
 
-#: gnu/packages/linux.scm:3909
+#: gnu/packages/linux.scm:5546
 msgid ""
 "haveged generates an unpredictable stream of random numbers for use by\n"
 "Linux's @file{/dev/random} and @file{/dev/urandom} devices.  The kernel's\n"
@@ -9335,21 +13280,21 @@ msgid ""
 "systems with high needs or limited user interaction, such as headless servers.\n"
 "\n"
 "@command{haveged} runs as a privileged daemon, harvesting randomness from the\n"
-"indirect effects of hardware events on hidden processor state using the HArdware\n"
-"Volatile Entropy Gathering and Expansion (@dfn{HAVEGE}) algorithm.  It tunes\n"
-"itself to its environment and provides the same built-in test suite for the\n"
-"output stream as used on certified hardware security devices.\n"
+"indirect effects of hardware events on hidden processor state using the\n"
+"@acronym{HAVEGE, HArdware Volatile Entropy Gathering and Expansion} algorithm.\n"
+"It tunes itself to its environment and provides the same built-in test suite\n"
+"for the output stream as used on certified hardware security devices.\n"
 "\n"
 "The quality of the randomness produced by this algorithm has not been proven.\n"
 "It is recommended to run it together with another entropy source like rngd, and\n"
 "not as a replacement for it."
 msgstr ""
 
-#: gnu/packages/linux.scm:3994
+#: gnu/packages/linux.scm:5631
 msgid "eCryptfs cryptographic file system utilities"
 msgstr ""
 
-#: gnu/packages/linux.scm:3996
+#: gnu/packages/linux.scm:5633
 msgid ""
 "eCryptfs is a POSIX-compliant stacked cryptographic file system for Linux.\n"
 "Each file's cryptographic meta-data is stored inside the file itself, along\n"
@@ -9359,11 +13304,11 @@ msgid ""
 "2.6.19.  This package contains the userland utilities to manage it."
 msgstr ""
 
-#: gnu/packages/linux.scm:4027
+#: gnu/packages/linux.scm:5664
 msgid "NFSv4 support library for name/ID mapping"
 msgstr ""
 
-#: gnu/packages/linux.scm:4028
+#: gnu/packages/linux.scm:5665
 msgid ""
 "Libnfsidmap is a library holding mulitiple methods of\n"
 "mapping names to ids and visa versa, mainly for NFSv4.  It provides an\n"
@@ -9371,43 +13316,43 @@ msgid ""
 "the default @code{nsswitch} and the experimental @code{umich_ldap}."
 msgstr ""
 
-#: gnu/packages/linux.scm:4062
+#: gnu/packages/linux.scm:5699
 msgid "Tools for loading and managing Linux kernel modules"
 msgstr ""
 
-#: gnu/packages/linux.scm:4064
+#: gnu/packages/linux.scm:5701
 msgid ""
 "Tools for loading and managing Linux kernel modules, such as\n"
 "@code{modprobe}, @code{insmod}, @code{lsmod}, and more."
 msgstr ""
 
-#: gnu/packages/linux.scm:4101
+#: gnu/packages/linux.scm:5739
 msgid "Machine check monitor for x86 Linux systems"
 msgstr ""
 
-#: gnu/packages/linux.scm:4103
+#: gnu/packages/linux.scm:5741
 msgid ""
-"The mcelog daemon is required by the Linux kernel to log memory, I/O, CPU,\n"
-"and other hardware errors on x86 systems.  It can also perform user-defined\n"
-"tasks, such as bringing bad pages off-line, when configurable error thresholds\n"
-"are exceeded."
+"The mcelog daemon logs memory, I/O, CPU, and other hardware errors on x86\n"
+"systems running the kernel Linux.  It can also perform user-defined tasks, such\n"
+"as bringing bad pages off-line, when configurable error thresholds are\n"
+"exceeded."
 msgstr ""
 
-#: gnu/packages/linux.scm:4132
+#: gnu/packages/linux.scm:5772
 msgid "MTD Flash Storage Utilities"
 msgstr ""
 
-#: gnu/packages/linux.scm:4133
+#: gnu/packages/linux.scm:5773
 msgid ""
 "This package provides utilities for testing, partitioning, etc\n"
 "of flash storage."
 msgstr ""
 
-#: gnu/packages/linux.scm:4156
+#: gnu/packages/linux.scm:5806
 msgid "Interface to Linux's seccomp syscall filtering mechanism"
 msgstr ""
 
-#: gnu/packages/linux.scm:4157
+#: gnu/packages/linux.scm:5807
 msgid ""
 "The libseccomp library provides an easy to use, platform\n"
 "independent, interface to the Linux Kernel's syscall filtering mechanism.  The\n"
@@ -9417,11 +13362,11 @@ msgid ""
 "developers."
 msgstr ""
 
-#: gnu/packages/linux.scm:4201
+#: gnu/packages/linux.scm:5853
 msgid "Usage monitor for AMD Radeon graphics"
 msgstr ""
 
-#: gnu/packages/linux.scm:4202
+#: gnu/packages/linux.scm:5854
 msgid ""
 "RadeonTop monitors resource consumption on supported AMD\n"
 "Radeon Graphics Processing Units (GPUs), either in real time as bar graphs on\n"
@@ -9431,21 +13376,21 @@ msgid ""
 "under OpenGL graphics workloads."
 msgstr ""
 
-#: gnu/packages/linux.scm:4238
+#: gnu/packages/linux.scm:5890
 msgid "Tool and library to manipulate EFI variables"
 msgstr ""
 
-#: gnu/packages/linux.scm:4239
+#: gnu/packages/linux.scm:5891
 msgid ""
 "This package provides a library and a command line\n"
 "interface to the variable facility of UEFI boot firmware."
 msgstr ""
 
-#: gnu/packages/linux.scm:4273
+#: gnu/packages/linux.scm:5925
 msgid "Modify the Extensible Firmware Interface (EFI) boot manager"
 msgstr ""
 
-#: gnu/packages/linux.scm:4275
+#: gnu/packages/linux.scm:5927
 msgid ""
 "@code{efibootmgr} is a user-space application to modify the Intel\n"
 "Extensible Firmware Interface (EFI) Boot Manager.  This application can\n"
@@ -9453,11 +13398,11 @@ msgid ""
 "running boot option, and more."
 msgstr ""
 
-#: gnu/packages/linux.scm:4311
+#: gnu/packages/linux.scm:5963
 msgid "Performance monitoring tools for Linux"
 msgstr "Herramientas monitorizada de rendimiento para Linux"
 
-#: gnu/packages/linux.scm:4312
+#: gnu/packages/linux.scm:5964
 msgid ""
 "The sysstat utilities are a collection of performance\n"
 "monitoring tools for Linux.  These include @code{mpstat}, @code{iostat},\n"
@@ -9465,11 +13410,11 @@ msgid ""
 "@code{sadf} and @code{sa}."
 msgstr ""
 
-#: gnu/packages/linux.scm:4336
+#: gnu/packages/linux.scm:6003
 msgid "GNU/Linux application to control backlights"
 msgstr "Aplicación GNU/Linux para controlar luces de fondo"
 
-#: gnu/packages/linux.scm:4338
+#: gnu/packages/linux.scm:6005
 msgid ""
 "Light is a program to send commands to screen backlight controllers\n"
 "under GNU/Linux.  Features include:\n"
@@ -9479,17 +13424,15 @@ msgid ""
 "@item Light can automatically figure out the best controller to use, making\n"
 "full use of underlying hardware.\n"
 "@item It is possible to set a minimum brightness value, as some controllers\n"
-"set the screen to be pitch black at a vaĺue of 0 (or higher).\n"
+"set the screen to be pitch black at a value of 0 (or higher).\n"
 "@end itemize\n"
-"\n"
-"Light is the successor of lightscript."
 msgstr ""
 
-#: gnu/packages/linux.scm:4381
+#: gnu/packages/linux.scm:6046
 msgid "Backlight and LED brightness control"
 msgstr ""
 
-#: gnu/packages/linux.scm:4383
+#: gnu/packages/linux.scm:6048
 msgid ""
 "This program allows you read and control device brightness.  Devices\n"
 "include backlight and LEDs.  It can also preserve current brightness before\n"
@@ -9499,11 +13442,11 @@ msgid ""
 "interface in sysfs, which can be accomplished with the included udev rules."
 msgstr ""
 
-#: gnu/packages/linux.scm:4484
+#: gnu/packages/linux.scm:6171
 msgid "Power management tool for Linux"
 msgstr "Herramienta de gestor de energía para Linux"
 
-#: gnu/packages/linux.scm:4485
+#: gnu/packages/linux.scm:6172
 msgid ""
 "TLP is a power management tool for Linux.  It comes with\n"
 "a default configuration already optimized for battery life.  Nevertheless,\n"
@@ -9511,11 +13454,11 @@ msgid ""
 "every time the power supply source is changed."
 msgstr ""
 
-#: gnu/packages/linux.scm:4511
+#: gnu/packages/linux.scm:6198
 msgid "List hardware information"
 msgstr "Información listada de hardware"
 
-#: gnu/packages/linux.scm:4513
+#: gnu/packages/linux.scm:6200
 msgid ""
 "@command{lshw} (Hardware Lister) is a small tool to provide\n"
 "detailed information on the hardware configuration of the machine.\n"
@@ -9525,11 +13468,11 @@ msgid ""
 "machines (PowerMac G4 is known to work)."
 msgstr ""
 
-#: gnu/packages/linux.scm:4536
+#: gnu/packages/linux.scm:6223
 msgid "Netlink utility library"
 msgstr "Biblioteca utilitaria para Netlink"
 
-#: gnu/packages/linux.scm:4537
+#: gnu/packages/linux.scm:6224
 msgid ""
 "Libmnl is a minimalistic user-space library oriented to\n"
 "Netlink developers.  There are a lot of common tasks in parsing, validating,\n"
@@ -9538,11 +13481,11 @@ msgid ""
 "re-use code and to avoid re-inventing the wheel."
 msgstr ""
 
-#: gnu/packages/linux.scm:4561
+#: gnu/packages/linux.scm:6248
 msgid "Netlink programming interface to the Linux nf_tables subsystem"
 msgstr ""
 
-#: gnu/packages/linux.scm:4562
+#: gnu/packages/linux.scm:6249
 msgid ""
 "Libnftnl is a userspace library providing a low-level netlink\n"
 "programming interface to the in-kernel nf_tables subsystem.  The library\n"
@@ -9550,11 +13493,11 @@ msgid ""
 "used by nftables."
 msgstr ""
 
-#: gnu/packages/linux.scm:4591
+#: gnu/packages/linux.scm:6279
 msgid "Userspace utility for Linux packet filtering"
 msgstr ""
 
-#: gnu/packages/linux.scm:4592
+#: gnu/packages/linux.scm:6280
 msgid ""
 "nftables is the project that aims to replace the existing\n"
 "{ip,ip6,arp,eb}tables framework.  Basically, this project provides a new packet\n"
@@ -9564,11 +13507,11 @@ msgid ""
 "userspace queueing component and the logging subsystem."
 msgstr ""
 
-#: gnu/packages/linux.scm:4689
+#: gnu/packages/linux.scm:6388
 msgid "Unprivileged chroot, bind mount, and binfmt_misc"
 msgstr ""
 
-#: gnu/packages/linux.scm:4691
+#: gnu/packages/linux.scm:6390
 msgid ""
 "PRoot is a user-space implementation of @code{chroot}, @code{mount --bind},\n"
 "and @code{binfmt_misc}.  This means that users don't need any privileges or\n"
@@ -9581,15 +13524,15 @@ msgid ""
 "available in the kernel Linux."
 msgstr ""
 
-#: gnu/packages/linux.scm:4707
+#: gnu/packages/linux.scm:6406
 msgid "Unprivileged chroot, bind mount, and binfmt_misc (statically linked)"
 msgstr ""
 
-#: gnu/packages/linux.scm:4753
+#: gnu/packages/linux.scm:6453
 msgid "Linux tool to dump x86 CPUID information about the CPU(s)"
 msgstr ""
 
-#: gnu/packages/linux.scm:4754
+#: gnu/packages/linux.scm:6454
 msgid ""
 "cpuid dumps detailed information about the CPU(s) gathered\n"
 "from the CPUID instruction, and also determines the exact model of CPU(s).  It\n"
@@ -9597,22 +13540,22 @@ msgid ""
 "NexGen, Rise, and SiS CPUs."
 msgstr ""
 
-#: gnu/packages/linux.scm:4781
+#: gnu/packages/linux.scm:6482
 msgid "Use a FUSE file system to access data over MTP"
 msgstr ""
 
-#: gnu/packages/linux.scm:4782
+#: gnu/packages/linux.scm:6483
 msgid ""
 "jmtpfs uses FUSE (file system in userspace) to provide access\n"
 "to data over the Media Transfer Protocol (MTP).  Unprivileged users can mount\n"
 "the MTP device as a file system."
 msgstr ""
 
-#: gnu/packages/linux.scm:4805
+#: gnu/packages/linux.scm:6513
 msgid "Utility to show process environment"
 msgstr "Utilidad para mostrar entorno de procesos"
 
-#: gnu/packages/linux.scm:4806
+#: gnu/packages/linux.scm:6514
 msgid ""
 "Procenv is a command-line tool that displays as much detail about\n"
 "itself and its environment as possible.  It can be used as a test\n"
@@ -9620,11 +13563,11 @@ msgid ""
 "comparing system environments."
 msgstr ""
 
-#: gnu/packages/linux.scm:4833
+#: gnu/packages/linux.scm:6541
 msgid "Open Fabric Interfaces"
 msgstr "Abrir Interfaz Fábrica"
 
-#: gnu/packages/linux.scm:4835
+#: gnu/packages/linux.scm:6543
 msgid ""
 "OpenFabrics Interfaces (OFI) is a framework focused on exporting fabric\n"
 "communication services to applications.  OFI is best described as a collection\n"
@@ -9638,11 +13581,11 @@ msgid ""
 "libraries, which are often integrated directly into libfabric."
 msgstr ""
 
-#: gnu/packages/linux.scm:4888
+#: gnu/packages/linux.scm:6598
 msgid "Intel Performance Scaled Messaging (PSM) Libraries"
 msgstr ""
 
-#: gnu/packages/linux.scm:4890
+#: gnu/packages/linux.scm:6600
 msgid ""
 "The PSM Messaging API, or PSM API, is Intel's low-level user-level\n"
 "communications interface for the True Scale family of products.  PSM users are\n"
@@ -9650,22 +13593,22 @@ msgid ""
 "interfaces in parallel environments."
 msgstr ""
 
-#: gnu/packages/linux.scm:4931
+#: gnu/packages/linux.scm:6641
 msgid "Take screenshots of one or more Linux text consoles"
 msgstr ""
 
-#: gnu/packages/linux.scm:4933
+#: gnu/packages/linux.scm:6643
 msgid ""
 "snapscreenshot saves a screenshot of one or more Linux text consoles as a\n"
 "Targa (@dfn{.tga}) image.  It can be used by anyone with read access to the\n"
 "relevant @file{/dev/vcs*} file(s)."
 msgstr ""
 
-#: gnu/packages/linux.scm:4987
+#: gnu/packages/linux.scm:6697
 msgid "Take a screenshot of the contents of the Linux framebuffer"
 msgstr ""
 
-#: gnu/packages/linux.scm:4989
+#: gnu/packages/linux.scm:6699
 msgid ""
 "fbcat saves the contents of the Linux framebuffer (@file{/dev/fb*}), or\n"
 "a dump therof.  It supports a wide range of drivers and pixel formats.\n"
@@ -9677,24 +13620,23 @@ msgid ""
 "emulates the behaviour of Gunnar Monell's older fbgrab utility."
 msgstr ""
 
-#: gnu/packages/linux.scm:5020
+#: gnu/packages/linux.scm:6730
 #, fuzzy
-#| msgid "Multiple repository management tool"
 msgid "Control groups management tools"
 msgstr "Herramienta gestora de múltiples repositorios"
 
-#: gnu/packages/linux.scm:5021
+#: gnu/packages/linux.scm:6731
 msgid ""
 "Control groups is Linux kernel method for process resource\n"
 "restriction, permission handling and more.  This package provides userspace\n"
 "interface to this kernel feature."
 msgstr ""
 
-#: gnu/packages/linux.scm:5055
+#: gnu/packages/linux.scm:6764
 msgid "Control fan speed on Macbooks"
 msgstr ""
 
-#: gnu/packages/linux.scm:5057
+#: gnu/packages/linux.scm:6766
 msgid ""
 "mbpfan is a fan control daemon for Apple Macbooks.  It uses input from\n"
 "the @code{coretemp} module and sets the fan speed using the @code{applesmc}\n"
@@ -9702,11 +13644,11 @@ msgid ""
 "privileges."
 msgstr ""
 
-#: gnu/packages/linux.scm:5100
+#: gnu/packages/linux.scm:6809
 msgid "Intel Performance Scaled Messaging 2 (PSM2) library"
 msgstr ""
 
-#: gnu/packages/linux.scm:5102
+#: gnu/packages/linux.scm:6811
 msgid ""
 "This package is low-level user-level Intel's communications interface.\n"
 "The PSM2 API is a high-performance vendor-specific protocol that provides a\n"
@@ -9714,13 +13656,12 @@ msgid ""
 "high-speed networking devices."
 msgstr ""
 
-#: gnu/packages/linux.scm:5142
+#: gnu/packages/linux.scm:6851
 #, fuzzy
-#| msgid "Performance monitoring tools for Linux"
 msgid "Performance event monitoring library"
 msgstr "Herramientas monitorizada de rendimiento para Linux"
 
-#: gnu/packages/linux.scm:5144
+#: gnu/packages/linux.scm:6853
 msgid ""
 "This package provides a library called libpfm4, which is used to develop\n"
 "monitoring tools exploiting the performance monitoring events such as those\n"
@@ -9735,11 +13676,11 @@ msgid ""
 "introduced in Linux 2.6.31."
 msgstr ""
 
-#: gnu/packages/linux.scm:5172
+#: gnu/packages/linux.scm:6881
 msgid "Low-level netfilter netlink communication library"
 msgstr ""
 
-#: gnu/packages/linux.scm:5174
+#: gnu/packages/linux.scm:6883
 msgid ""
 "@code{libnfnetlink} is the low-level library for netfilter related\n"
 "kernel/userspace communication.  It provides a generic messaging\n"
@@ -9748,35 +13689,47 @@ msgid ""
 "management tools in userspace."
 msgstr ""
 
-#: gnu/packages/linux.scm:5204
+#: gnu/packages/linux.scm:6910
+#, fuzzy
+msgid "Simple netlink library for Go"
+msgstr "Cliente biblioteca Redis para Guile"
+
+#: gnu/packages/linux.scm:6911
+msgid ""
+"The netlink package provides a simple netlink library for\n"
+"Go.  Netlink is the interface a user-space program in Linux uses to\n"
+"communicate with the kernel.  It can be used to add and remove interfaces, set\n"
+"IP addresses and routes, and configure IPsec."
+msgstr ""
+
+#: gnu/packages/linux.scm:6955
 #, fuzzy
-#| msgid "Mount exFAT file systems"
 msgid "XFS file system tools"
 msgstr "Montar fichero del sistema exFAT"
 
-#: gnu/packages/linux.scm:5205
+#: gnu/packages/linux.scm:6956
 msgid ""
 "This package provides commands to create and check XFS\n"
 "file systems."
 msgstr ""
 
-#: gnu/packages/linux.scm:5243
-msgid "Generate ext2 filesystem as a normal user"
+#: gnu/packages/linux.scm:6994
+msgid "Generate ext2 file system as a normal user"
 msgstr ""
 
-#: gnu/packages/linux.scm:5244
+#: gnu/packages/linux.scm:6995
 msgid ""
-"This package provides a program to general an ext2\n"
-"filesystem as a normal (non-root) user.  It does not require you to mount\n"
+"This package provides a program to generate an ext2\n"
+"file system as a normal (non-root) user.  It does not require you to mount\n"
 "the image file to copy files on it, nor does it require that you become\n"
 "the superuser to make device nodes."
 msgstr ""
 
-#: gnu/packages/linux.scm:5307
+#: gnu/packages/linux.scm:7080
 msgid "Provides a fake root environment"
 msgstr ""
 
-#: gnu/packages/linux.scm:5308
+#: gnu/packages/linux.scm:7081
 msgid ""
 "@command{fakeroot} runs a command in an environment where\n"
 "it appears to have root privileges for file manipulation. This is useful\n"
@@ -9787,16 +13740,187 @@ msgid ""
 "have to construct the archives directly, without using the archiver."
 msgstr ""
 
-#: gnu/packages/linux.scm:5355
+#: gnu/packages/linux.scm:7109
+msgid "Emulate @code{chroot} by overriding file system calls"
+msgstr ""
+
+#: gnu/packages/linux.scm:7111
+msgid ""
+"@command{fakechroot} runs a command in an environment were is additional\n"
+"possibility to use @code{chroot} command without root privileges.  This is\n"
+"useful for allowing users to create own chrooted environment with possibility\n"
+"to install another packages without need for root privileges.\n"
+"\n"
+"It works by providing @file{libfakechroot.so}, a shared library meant to be\n"
+"set as @code{LD_PRELOAD} to override the C library file system functions."
+msgstr ""
+
+#: gnu/packages/linux.scm:7158
 msgid "Dispatch input peripherals events to a device file"
 msgstr ""
 
-#: gnu/packages/linux.scm:5356
+#: gnu/packages/linux.scm:7159
 msgid ""
 "inputattach dispatches input events from several device\n"
 "types and interfaces and translates so that the X server can use them."
 msgstr ""
 
+#: gnu/packages/linux.scm:7192
+msgid "Server and user space API to deal with multimedia pipelines"
+msgstr ""
+
+#: gnu/packages/linux.scm:7194
+msgid ""
+"PipeWire is a project that aims to greatly improve handling of audio and\n"
+"video under Linux.  It aims to support the usecases currently handled by both\n"
+"PulseAudio and Jack and at the same time provide same level of powerful handling\n"
+"of Video input and output.  It also introduces a security model that makes\n"
+"interacting with audio and video devices from containerized applications easy,\n"
+"with supporting Flatpak applications being the primary goal.  Alongside Wayland\n"
+"and Flatpak we expect PipeWire to provide a core building block for the future\n"
+"of Linux application development."
+msgstr ""
+
+#: gnu/packages/linux.scm:7267
+msgid "Embedded Linux Library"
+msgstr ""
+
+#: gnu/packages/linux.scm:7268
+msgid ""
+"The Embedded Linux* Library (ELL) provides core, low-level\n"
+"functionality for system daemons.  It typically has no dependencies other than\n"
+"the Linux kernel, C standard library, and libdl (for dynamic linking).  While\n"
+"ELL is designed to be efficient and compact enough for use on embedded Linux\n"
+"platforms, it is not limited to resource-constrained systems."
+msgstr ""
+
+#: gnu/packages/linux.scm:7293
+msgid "LTTng userspace tracer libraries"
+msgstr ""
+
+#: gnu/packages/linux.scm:7294
+msgid ""
+"The user space tracing library, liblttng-ust, is the LTTng\n"
+"user space tracer.  It receives commands from a session daemon, for example to\n"
+"enable and disable specific instrumentation points, and writes event records\n"
+"to ring buffers shared with a consumer daemon."
+msgstr ""
+
+#: gnu/packages/linux.scm:7316
+#, fuzzy
+msgid "Tools for booting directly into different kernels"
+msgstr "Herramientas para trabajar con el formato de fichero PDF"
+
+#: gnu/packages/linux.scm:7317
+msgid ""
+"This package provides the @code{kexec} program and ancillary\n"
+"utilities.  Using @code{kexec}, it is possible to boot directly into a new\n"
+"kernel from the context of an already-running kernel, bypassing the normal\n"
+"system boot process."
+msgstr ""
+
+#: gnu/packages/linux.scm:7349
+msgid "CacheFiles userspace management daemon"
+msgstr ""
+
+#: gnu/packages/linux.scm:7350
+msgid ""
+"@code{cachefilesd} is a userspace daemon that manages the\n"
+"cache data store that is used by network file systems such as @code{AFS} and\n"
+"@code{NFS} to cache data locally on disk.  The content of the cache is\n"
+"persistent over reboots."
+msgstr ""
+
+#: gnu/packages/linux.scm:7396
+msgid "BPF CO-RE (Compile Once – Run Everywhere)"
+msgstr ""
+
+#: gnu/packages/linux.scm:7398
+msgid ""
+"Libbpf supports building BPF CO-RE-enabled applications, which, in\n"
+"contrast to BCC, do not require the Clang/LLVM runtime or linux kernel\n"
+"headers."
+msgstr ""
+
+#: gnu/packages/linux.scm:7476
+#, fuzzy
+msgid "Tools for BPF on Linux"
+msgstr "Herramientas I2C para Linux"
+
+#: gnu/packages/linux.scm:7478
+msgid ""
+"BCC is a toolkit for creating efficient kernel tracing and manipulation\n"
+"programs, and includes several useful tools and examples.  It makes use of\n"
+"extended BPF (Berkeley Packet Filters), formally known as eBPF, a new feature\n"
+"that was first added to Linux 3.15.  Much of what BCC uses requires Linux 4.1\n"
+"and above."
+msgstr ""
+
+#: gnu/packages/linux.scm:7518
+msgid "High-level tracing language for Linux eBPF"
+msgstr ""
+
+#: gnu/packages/linux.scm:7520
+msgid ""
+"bpftrace is a high-level tracing language for Linux enhanced Berkeley\n"
+"Packet Filter (eBPF) available in recent Linux kernels (4.x).  bpftrace uses\n"
+"LLVM as a backend to compile scripts to BPF-bytecode and makes use of BCC for\n"
+"interacting with the Linux BPF system, as well as existing Linux tracing\n"
+"capabilities: kernel dynamic tracing (kprobes), user-level dynamic\n"
+"tracing (uprobes), and tracepoints.  The bpftrace language is inspired by awk\n"
+"and C, and predecessor tracers such as DTrace and SystemTap.  bpftrace was\n"
+"created by Alastair Robertson."
+msgstr ""
+
+#: gnu/packages/linux.scm:7551
+msgid "Low-latency Raspberry Pi UART driver"
+msgstr ""
+
+#: gnu/packages/linux.scm:7552
+msgid ""
+"This package provides a Linux kernel module that will\n"
+"provide a serial device @code{/dev/ttyebus} with almost no latency upon\n"
+"receiving.  It is dedicated to the PL011 UART of the Raspberry Pi."
+msgstr ""
+
+#: gnu/packages/linux.scm:7575
+#, fuzzy
+msgid "Administration tool for IP sets"
+msgstr "Herramienta de administración de CUPS"
+
+#: gnu/packages/linux.scm:7576
+msgid ""
+"IP sets are a framework inside the Linux 2.4.x and 2.6.x kernel which\n"
+"can be administered by the ipset utility.  Depending on the type,\n"
+"currently an IP set may store IP addresses, (TCP/UDP) port numbers or\n"
+"IP addresses with MAC addresses in a way which ensures lightning speed\n"
+"when matching an entry against a set.\n"
+"\n"
+"If you want to\n"
+"@itemize @bullet\n"
+"@item store multiple IP addresses or port numbers and match against the entire\n"
+"collection using a single iptables rule.\n"
+"@item dynamically update iptables rules against IP addresses or ports without\n"
+"performance penalty.\n"
+"@item express complex IP address and ports based rulesets with a single\n"
+"iptables rule and benefit from the speed of IP sets.\n"
+"@end itemize\n"
+"\n"
+"then IP sets may be the proper tool for you."
+msgstr ""
+
+#: gnu/packages/linux.scm:7622
+msgid "Interface to the Linux kernel @code{io_uring} interface"
+msgstr ""
+
+#: gnu/packages/linux.scm:7623
+msgid ""
+"This is the io_uring library, liburing. liburing provides\n"
+"helpers to setup and teardown io_uring instances, and also a simplified\n"
+"interface for applications that don't need (or want) to deal with the full\n"
+"kernel side implementation."
+msgstr ""
+
 #: gnu/packages/lout.scm:100
 msgid "Document layout system"
 msgstr "Sistema de diseño documental"
@@ -9820,11 +13944,29 @@ msgid ""
 "beginning."
 msgstr ""
 
-#: gnu/packages/messaging.scm:123
+#: gnu/packages/messaging.scm:168
+#, fuzzy
+msgid "Console Jabber/XMPP Client"
+msgstr "Cliente XMPP basado en consola"
+
+#: gnu/packages/messaging.scm:169
+msgid ""
+"Poezio is a free console XMPP client (the protocol on which\n"
+"the Jabber IM network is built).\n"
+"Its goal is to let you connect very easily (no account creation needed) to the\n"
+"network and join various chatrooms, immediately.  It tries to look like the\n"
+"most famous IRC clients (weechat, irssi, etc).  Many commands are identical and\n"
+"you won't be lost if you already know these clients.  Configuration can be\n"
+"made in a configuration file or directly from the client.\n"
+"You'll find the light, fast, geeky and anonymous spirit of IRC while using a\n"
+"powerful, standard and open protocol."
+msgstr ""
+
+#: gnu/packages/messaging.scm:198
 msgid "Off-the-Record (OTR) Messaging Library and Toolkit"
 msgstr ""
 
-#: gnu/packages/messaging.scm:125
+#: gnu/packages/messaging.scm:200
 msgid ""
 "OTR allows you to have private conversations over instant messaging by\n"
 "providing: (1) Encryption: No one else can read your instant messages.  (2)\n"
@@ -9837,11 +13979,11 @@ msgid ""
 "keys, no previous conversation is compromised."
 msgstr ""
 
-#: gnu/packages/messaging.scm:159
+#: gnu/packages/messaging.scm:234
 msgid "Implementation of a ratcheting forward secrecy protocol"
 msgstr ""
 
-#: gnu/packages/messaging.scm:160
+#: gnu/packages/messaging.scm:235
 msgid ""
 "libsignal-protocol-c is an implementation of a ratcheting\n"
 "forward secrecy protocol that works in synchronous and asynchronous\n"
@@ -9849,11 +13991,11 @@ msgid ""
 "end-to-end encryption."
 msgstr ""
 
-#: gnu/packages/messaging.scm:201
+#: gnu/packages/messaging.scm:279
 msgid "IRC to instant messaging gateway"
 msgstr "IRC para pórtico de mensajería instantánea"
 
-#: gnu/packages/messaging.scm:202
+#: gnu/packages/messaging.scm:280
 msgid ""
 "BitlBee brings IM (instant messaging) to IRC clients, for\n"
 "people who have an IRC client running all the time and don't want to run an\n"
@@ -9863,23 +14005,39 @@ msgid ""
 "identi.ca and status.net)."
 msgstr ""
 
-#: gnu/packages/messaging.scm:248
+#: gnu/packages/messaging.scm:294
+#, fuzzy
+msgid "IRC to instant messaging gateway (using Pidgin's libpurple)"
+msgstr "IRC para pórtico de mensajería instantánea"
+
+#: gnu/packages/messaging.scm:349
 #, fuzzy
-#| msgid "LV2 plugins for live use"
 msgid "Discord plugin for Bitlbee"
 msgstr "Complementos LV2 para usar live"
 
-#: gnu/packages/messaging.scm:249
+#: gnu/packages/messaging.scm:350
 msgid ""
-"Bitlbee-discord is a plugin for Bitlbee witch provides\n"
+"Bitlbee-discord is a plugin for Bitlbee which provides\n"
 "access to servers running the Discord protocol."
 msgstr ""
 
-#: gnu/packages/messaging.scm:296
-msgid "Graphical IRC Client"
+#: gnu/packages/messaging.scm:397
+msgid "Purple plug-in to access Mattermost instant messaging"
+msgstr ""
+
+#: gnu/packages/messaging.scm:399
+msgid ""
+"Purple-Mattermost is a plug-in for Purple, the instant messaging library\n"
+"used by Pidgin and Bitlbee, among others, to access\n"
+"@uref{https://mattermost.com/, Mattermost} servers."
+msgstr ""
+
+#: gnu/packages/messaging.scm:446
+#, fuzzy
+msgid "Graphical IRC client"
 msgstr "Cliente IRC gráfico"
 
-#: gnu/packages/messaging.scm:298
+#: gnu/packages/messaging.scm:448
 msgid ""
 "HexChat lets you connect to multiple IRC networks at once.  The main\n"
 "window shows the list of currently connected networks and their channels, the\n"
@@ -9888,11 +14046,11 @@ msgid ""
 "dictionaries.  HexChat can be extended with multiple addons."
 msgstr ""
 
-#: gnu/packages/messaging.scm:363
+#: gnu/packages/messaging.scm:514
 msgid "Lightweight Internet Relay Chat server for small networks"
 msgstr ""
 
-#: gnu/packages/messaging.scm:365
+#: gnu/packages/messaging.scm:516
 msgid ""
 "ngIRCd is a lightweight @dfn{Internet Relay Chat} (IRC) server for small\n"
 "or private networks.  It is easy to configure, can cope with dynamic IP\n"
@@ -9900,21 +14058,21 @@ msgid ""
 "authentication."
 msgstr ""
 
-#: gnu/packages/messaging.scm:437
+#: gnu/packages/messaging.scm:600
 msgid "Graphical multi-protocol instant messaging client"
 msgstr ""
 
-#: gnu/packages/messaging.scm:439
+#: gnu/packages/messaging.scm:602
 msgid ""
 "Pidgin is a modular instant messaging client that supports many popular\n"
 "chat protocols."
 msgstr ""
 
-#: gnu/packages/messaging.scm:477
+#: gnu/packages/messaging.scm:640
 msgid "Off-the-Record Messaging plugin for Pidgin"
 msgstr "Complemento de mensajería Off-the-Record para Pidgin"
 
-#: gnu/packages/messaging.scm:479
+#: gnu/packages/messaging.scm:642
 msgid ""
 "Pidgin-OTR is a plugin that adds support for OTR to the Pidgin instant\n"
 "messaging client.  OTR (Off-the-Record) Messaging allows you to have private\n"
@@ -9929,11 +14087,11 @@ msgid ""
 "compromised."
 msgstr ""
 
-#: gnu/packages/messaging.scm:546
+#: gnu/packages/messaging.scm:696
 msgid "IRC network bouncer"
 msgstr "Red IRC limitada"
 
-#: gnu/packages/messaging.scm:547
+#: gnu/packages/messaging.scm:697
 msgid ""
 "ZNC is an @dfn{IRC network bouncer} or @dfn{BNC}.  It can\n"
 "detach the client from the actual IRC server, and also from selected channels.\n"
@@ -9941,56 +14099,65 @@ msgid ""
 "simultaneously and therefore appear under the same nickname on IRC."
 msgstr ""
 
-#: gnu/packages/messaging.scm:568
-msgid "Non-blocking Jabber/XMPP module"
+#: gnu/packages/messaging.scm:724
+msgid "Non-blocking XMPP Module"
 msgstr ""
 
-#: gnu/packages/messaging.scm:570
+#: gnu/packages/messaging.scm:725
 msgid ""
-"The goal of this python library is to provide a way for Python\n"
-"applications to use Jabber/XMPP networks in a non-blocking way.  This library\n"
-"was initially a fork of xmpppy, but uses non-blocking sockets."
+"Python-nbxmpp is a Python library that provides a way for\n"
+"Python applications to use the XMPP network.  This library was initially a fork\n"
+"of xmpppy."
 msgstr ""
 
-#: gnu/packages/messaging.scm:675
-msgid "Jabber (XMPP) client"
-msgstr "Cliente Jabber (XMPP)"
+#: gnu/packages/messaging.scm:852
+#, fuzzy
+msgid "Fully-featured XMPP client"
+msgstr "Cliente XMPP basado en consola"
 
-#: gnu/packages/messaging.scm:676
+#: gnu/packages/messaging.scm:853
 msgid ""
-"Gajim is a feature-rich and easy to use Jabber/XMPP client.\n"
-"Among its features are: a tabbed chat window and single window modes; support\n"
-"for group chat (with Multi-User Chat protocol), invitation, chat to group chat\n"
-"transformation; audio and video conferences; file transfer; TLS, GPG and\n"
-"end-to-end encryption support; XML console."
+"Gajim aims to be an easy to use and fully-featured XMPP chat\n"
+"client.  It is extensible via plugins, supports end-to-end encryption (OMEMO\n"
+"and OpenPGP) and available in 29 languages."
 msgstr ""
 
-#: gnu/packages/messaging.scm:711
+#: gnu/packages/messaging.scm:889
 msgid "Gajim OMEMO plugin"
 msgstr ""
 
-#: gnu/packages/messaging.scm:713
+#: gnu/packages/messaging.scm:890
 msgid ""
-"This package provides the Gajim OMEMO plugin.  OMEMO is an XMPP\n"
-"Extension Protocol (XEP) for secure multi-client end-to-end encryption based\n"
-"on Axolotl and PEP."
+"Gajim-OMEMO is a plugin that adds support for the OMEMO\n"
+"Encryption to Gajim.  OMEMO is an XMPP Extension Protocol (XEP) for secure\n"
+"multi-client end-to-end encryption."
+msgstr ""
+
+#: gnu/packages/messaging.scm:925
+msgid "Gajim OpenPGP plugin"
 msgstr ""
 
-#: gnu/packages/messaging.scm:777
+#: gnu/packages/messaging.scm:926
+msgid ""
+"Gajim-OpenPGP is a plugin that adds support for the OpenPGP\n"
+"Encryption to Gajim."
+msgstr ""
+
+#: gnu/packages/messaging.scm:975
 msgid "Graphical Jabber (XMPP) client"
 msgstr "Cliente Jabber gráfico (XMPP)"
 
-#: gnu/packages/messaging.scm:778
+#: gnu/packages/messaging.scm:976
 msgid ""
 "Dino is a Jabber (XMPP) client which aims to fit well into\n"
 "a graphical desktop environment like GNOME."
 msgstr ""
 
-#: gnu/packages/messaging.scm:865
+#: gnu/packages/messaging.scm:1063
 msgid "Jabber (XMPP) server"
 msgstr "Servidor Jabber (XMPP)"
 
-#: gnu/packages/messaging.scm:866
+#: gnu/packages/messaging.scm:1064
 msgid ""
 "Prosody is a modern XMPP communication server.  It aims to\n"
 "be easy to set up and configure, and efficient with system resources.\n"
@@ -9999,77 +14166,77 @@ msgid ""
 "protocols."
 msgstr ""
 
-#: gnu/packages/messaging.scm:900
+#: gnu/packages/messaging.scm:1098
 msgid "XEP-0363: Allow clients to upload files over HTTP"
 msgstr ""
 
-#: gnu/packages/messaging.scm:901
+#: gnu/packages/messaging.scm:1099
 msgid ""
 "This module implements XEP-0363: it allows clients to\n"
 "upload files over HTTP."
 msgstr ""
 
-#: gnu/packages/messaging.scm:932
+#: gnu/packages/messaging.scm:1130
 msgid "XEP-0198: Reliability and fast reconnects for XMPP"
 msgstr ""
 
-#: gnu/packages/messaging.scm:933
+#: gnu/packages/messaging.scm:1131
 msgid ""
 "This module implements XEP-0198: when supported by both\n"
 "the client and server, it can allow clients to resume a disconnected session,\n"
 "and prevent message loss."
 msgstr ""
 
-#: gnu/packages/messaging.scm:966 gnu/packages/messaging.scm:1000
+#: gnu/packages/messaging.scm:1164 gnu/packages/messaging.scm:1198
 msgid "Library for the Tox encrypted messenger protocol"
 msgstr ""
 
-#: gnu/packages/messaging.scm:968
+#: gnu/packages/messaging.scm:1166
 msgid "C library implementation of the Tox encrypted messenger protocol."
 msgstr ""
 
-#: gnu/packages/messaging.scm:1002
+#: gnu/packages/messaging.scm:1200
 msgid ""
 "Official fork of the C library implementation of the Tox encrypted\n"
 "messenger protocol."
 msgstr ""
 
-#: gnu/packages/messaging.scm:1057
+#: gnu/packages/messaging.scm:1255
 msgid "Lightweight Tox client"
 msgstr "Cliente ligero Tox"
 
-#: gnu/packages/messaging.scm:1059
+#: gnu/packages/messaging.scm:1257
 msgid ""
 "Utox is a lightweight Tox client.  Tox is a distributed and secure\n"
 "instant messenger with audio and video chat capabilities."
 msgstr ""
 
-#: gnu/packages/messaging.scm:1116
+#: gnu/packages/messaging.scm:1322
 msgid "Tox chat client using Qt"
 msgstr ""
 
-#: gnu/packages/messaging.scm:1117
+#: gnu/packages/messaging.scm:1323
 msgid ""
 "qTox is a Tox client that follows the Tox design\n"
 "guidelines.  It provides an easy to use application that allows you to\n"
 "connect with friends and family without anyone else listening in."
 msgstr ""
 
-#: gnu/packages/messaging.scm:1210
+#: gnu/packages/messaging.scm:1416
 msgid ""
 "Distributed and trustless peer-to-peer communications protocol\n"
 "for sending encrypted messages to one person or many subscribers."
 msgstr ""
 
-#: gnu/packages/messaging.scm:1212
+#: gnu/packages/messaging.scm:1418
 msgid "Distributed peer-to-peer communication"
 msgstr "Comunicación distribuida peer-to-peer"
 
-#: gnu/packages/messaging.scm:1231
+#: gnu/packages/messaging.scm:1437
 msgid "Multi-user chat program"
 msgstr ""
 
-#: gnu/packages/messaging.scm:1232
+#: gnu/packages/messaging.scm:1438
 msgid ""
 "Ytalk is a replacement for the BSD talk program.  Its main\n"
 "advantage is the ability to communicate with any arbitrary number of users at\n"
@@ -10077,11 +14244,11 @@ msgid ""
 "with several different talk daemons at the same time."
 msgstr ""
 
-#: gnu/packages/messaging.scm:1257
+#: gnu/packages/messaging.scm:1462
 msgid "Portable high-level Jabber/XMPP library for C++"
 msgstr ""
 
-#: gnu/packages/messaging.scm:1259
+#: gnu/packages/messaging.scm:1464
 msgid ""
 "gloox is a full-featured Jabber/XMPP client library,\n"
 "written in ANSI C++.  It makes writing spec-compliant clients easy\n"
@@ -10089,34 +14256,34 @@ msgid ""
 "into existing applications."
 msgstr ""
 
-#: gnu/packages/messaging.scm:1330
+#: gnu/packages/messaging.scm:1535
 msgid ""
 "@code{Net::PSYC} with support for TCP, UDP, Event.pm, @code{IO::Select} and\n"
 "Gtk2 event loops.  This package includes 12 applications and additional scripts:\n"
-"psycion (a @uref{http://about.psyc.eu,PSYC} chat client), remotor (a control console\n"
+"psycion (a @uref{https://about.psyc.eu,PSYC} chat client), remotor (a control console\n"
 "for @uref{https://torproject.org,tor} router) and many more."
 msgstr ""
 
-#: gnu/packages/messaging.scm:1334
+#: gnu/packages/messaging.scm:1539
 msgid "Perl implementation of PSYC protocol"
 msgstr "Implementación Perl de protocolo PSYC"
 
-#: gnu/packages/messaging.scm:1373
+#: gnu/packages/messaging.scm:1578
 msgid ""
 "@code{libpsyc} is a PSYC library in C which implements\n"
 "core aspects of PSYC, useful for all kinds of clients and servers\n"
 "including psyced."
 msgstr ""
 
-#: gnu/packages/messaging.scm:1376
+#: gnu/packages/messaging.scm:1581
 msgid "PSYC library in C"
 msgstr "Biblioteca PSYC en C"
 
-#: gnu/packages/messaging.scm:1443
+#: gnu/packages/messaging.scm:1648
 msgid "psycLPC is a multi-user network server programming language"
 msgstr ""
 
-#: gnu/packages/messaging.scm:1445
+#: gnu/packages/messaging.scm:1650
 msgid ""
 "LPC is a bytecode language, invented to specifically implement\n"
 "multi user virtual environments on the internet.  This technology is used for\n"
@@ -10125,7 +14292,7 @@ msgid ""
 "many bug fixes."
 msgstr ""
 
-#: gnu/packages/messaging.scm:1476
+#: gnu/packages/messaging.scm:1681
 msgid ""
 "Loudmouth is a lightweight and easy-to-use C library for programming\n"
 "with the XMPP (formerly known as Jabber) protocol.  It is designed to be\n"
@@ -10133,11 +14300,11 @@ msgid ""
 "protocol allows."
 msgstr ""
 
-#: gnu/packages/messaging.scm:1480
+#: gnu/packages/messaging.scm:1685
 msgid "Asynchronous XMPP library"
 msgstr "Biblioteca XMPP asíncrona)"
 
-#: gnu/packages/messaging.scm:1512
+#: gnu/packages/messaging.scm:1716
 msgid ""
 "Mcabber is a small XMPP (Jabber) console client, which includes features\n"
 "such as SASL and TLS support, @dfn{Multi-User Chat} (MUC) support, logging,\n"
@@ -10145,15 +14312,15 @@ msgid ""
 "support, and more."
 msgstr ""
 
-#: gnu/packages/messaging.scm:1516
+#: gnu/packages/messaging.scm:1720
 msgid "Small XMPP console client"
 msgstr "Cliente pequeño de consola XMPP"
 
-#: gnu/packages/messaging.scm:1559
+#: gnu/packages/messaging.scm:1763
 msgid "Extensible console-based Jabber client"
 msgstr "Cliente extensible Jabber basado en consola"
 
-#: gnu/packages/messaging.scm:1561
+#: gnu/packages/messaging.scm:1765
 msgid ""
 "GNU Freetalk is a command-line Jabber/XMPP chat client.  It notably uses\n"
 "the Readline library to handle input, so it features convenient navigation of\n"
@@ -10161,39 +14328,39 @@ msgid ""
 "is also scriptable and extensible via Guile."
 msgstr ""
 
-#: gnu/packages/messaging.scm:1590 gnu/packages/messaging.scm:1619
+#: gnu/packages/messaging.scm:1794 gnu/packages/messaging.scm:1824
 msgid "C library for writing XMPP clients"
 msgstr ""
 
-#: gnu/packages/messaging.scm:1591
+#: gnu/packages/messaging.scm:1795
 msgid ""
 "Libmesode is a fork of libstrophe for use with Profanity\n"
 "XMPP Client.  In particular, libmesode provides extra TLS functionality such as\n"
 "manual SSL certificate verification."
 msgstr ""
 
-#: gnu/packages/messaging.scm:1620
+#: gnu/packages/messaging.scm:1825
 msgid ""
 "Libstrophe is a minimal XMPP library written in C.  It has\n"
 "almost no external dependencies, only an XML parsing library (expat or libxml\n"
 "are both supported)."
 msgstr ""
 
-#: gnu/packages/messaging.scm:1656
+#: gnu/packages/messaging.scm:1879
 msgid "Console-based XMPP client"
 msgstr "Cliente XMPP basado en consola"
 
-#: gnu/packages/messaging.scm:1657
+#: gnu/packages/messaging.scm:1880
 msgid ""
 "Profanity is a console based XMPP client written in C\n"
 "using ncurses and libmesode, inspired by Irssi."
 msgstr ""
 
-#: gnu/packages/messaging.scm:1686
+#: gnu/packages/messaging.scm:1909
 msgid "Library implementing the client IRC protocol"
 msgstr ""
 
-#: gnu/packages/messaging.scm:1687
+#: gnu/packages/messaging.scm:1910
 msgid ""
 "Libircclient is a library which implements the client IRC\n"
 "protocol.  It is designed to be small, fast, portable and compatible with the\n"
@@ -10201,22 +14368,22 @@ msgid ""
 "building the IRC clients and bots."
 msgstr ""
 
-#: gnu/packages/messaging.scm:1738
+#: gnu/packages/messaging.scm:1967
 msgid "Tox chat client using ncurses"
 msgstr ""
 
-#: gnu/packages/messaging.scm:1739
+#: gnu/packages/messaging.scm:1968
 msgid ""
 "Toxic is a console-based instant messaging client, using\n"
 "c-toxcore and ncurses.  It provides audio calls, sound and desktop\n"
 "notifications, and Python scripting support."
 msgstr ""
 
-#: gnu/packages/messaging.scm:1765
+#: gnu/packages/messaging.scm:1994
 msgid "Qt5 client library for the Matrix instant messaging protocol"
 msgstr ""
 
-#: gnu/packages/messaging.scm:1766
+#: gnu/packages/messaging.scm:1995
 msgid ""
 "libqmatrixclient is a Qt5 library to write clients for the\n"
 "Matrix instant messaging protocol.  Quaternion is the reference client\n"
@@ -10224,23 +14391,61 @@ msgid ""
 "QMatrixClient project."
 msgstr ""
 
-#: gnu/packages/messaging.scm:1812
+#: gnu/packages/messaging.scm:2046
+msgid "Client API library for the Matrix protocol"
+msgstr ""
+
+#: gnu/packages/messaging.scm:2047
+msgid ""
+"@code{mtxclient} is a C++ library that implements client API\n"
+"for the Matrix protocol.  It is built on to of @code{Boost.Asio}."
+msgstr ""
+
+#: gnu/packages/messaging.scm:2105
+msgid "Desktop client for Matrix using Qt and C++14"
+msgstr ""
+
+#: gnu/packages/messaging.scm:2106
+msgid ""
+"@code{Nheko} want to provide a native desktop app for the\n"
+"Matrix protocol that feels more like a mainstream chat app and less like an IRC\n"
+"client.\n"
+"\n"
+"There is support for:\n"
+"@itemize\n"
+"@item E2E encryption (text messages only: attachments are currently sent unencrypted).\n"
+"@item User registration.\n"
+"@item Creating, joining & leaving rooms.\n"
+"@item Sending & receiving invites.\n"
+"@item Sending & receiving files and emoji.\n"
+"@item Typing notifications.\n"
+"@item Username auto-completion.\n"
+"@item Message & mention notifications.\n"
+"@item Redacting messages.\n"
+"@item Read receipts.\n"
+"@item Basic communities support.\n"
+"@item Room switcher (@key{ctrl-K}).\n"
+"@item Light, Dark & System themes.\n"
+"@end itemize"
+msgstr ""
+
+#: gnu/packages/messaging.scm:2155
 msgid "Graphical client for the Matrix instant messaging protocol"
 msgstr ""
 
-#: gnu/packages/messaging.scm:1813
+#: gnu/packages/messaging.scm:2156
 msgid ""
 "Quaternion is a Qt5 desktop client for the Matrix instant\n"
 "messaging protocol.  It uses libqmatrixclient and is its reference client\n"
-"implementation.  Quaternion and libqmatriclient together form the\n"
+"implementation.  Quaternion and libqmatrixclient together form the\n"
 "QMatrixClient project."
 msgstr ""
 
-#: gnu/packages/messaging.scm:1855
+#: gnu/packages/messaging.scm:2198
 msgid "Instant messaging client for Google Hangouts"
 msgstr ""
 
-#: gnu/packages/messaging.scm:1857
+#: gnu/packages/messaging.scm:2200
 msgid ""
 "Hangups is an instant messaging client for Google Hangouts.  It includes\n"
 "both a Python library and a reference client with a text-based user interface.\n"
@@ -10250,24 +14455,71 @@ msgid ""
 "messaging that aren’t available to clients that connect over XMPP."
 msgstr ""
 
-#: gnu/packages/messaging.scm:1937
+#: gnu/packages/messaging.scm:2280
 #, fuzzy
-#| msgid "Off-the-Record Messaging plugin for Pidgin"
 msgid "Telegram messaging support for Pidgin"
 msgstr "Complemento de mensajería Off-the-Record para Pidgin"
 
-#: gnu/packages/messaging.scm:1939
+#: gnu/packages/messaging.scm:2282
 msgid ""
 "Telegram-purple is a plugin for Libpurple, the communication library\n"
 "used by the Pidgin instant messaging client, that adds support for the\n"
 "Telegram messenger."
 msgstr ""
 
-#: gnu/packages/mpd.scm:85
+#: gnu/packages/messaging.scm:2329
+#, fuzzy
+msgid "Cross-platform library for building Telegram clients"
+msgstr "Plataforma cruzada de biblioteca MIDI para C++"
+
+#: gnu/packages/messaging.scm:2330
+msgid ""
+"Tdlib is a cross-platform library for creating custom\n"
+"Telegram clients following the official Telegram API.  It can be easily used\n"
+"from almost any programming language with a C-FFI and features first-class\n"
+"support for high performance Telegram Bot creation."
+msgstr ""
+
+#: gnu/packages/messaging.scm:2368
+msgid "Libpurple plugin for SMS via ModemManager"
+msgstr ""
+
+#: gnu/packages/messaging.scm:2369
+msgid "Plugin for libpurple to allow sending SMS using ModemManager."
+msgstr ""
+
+#: gnu/packages/messaging.scm:2412
+msgid "Mobile client for XMPP and SMS messaging"
+msgstr ""
+
+#: gnu/packages/messaging.scm:2413
+msgid ""
+"Chatty is a chat program for XMPP and SMS.  It works on mobile\n"
+"as well as on desktop platforms.  It's based on libpurple and ModemManager."
+msgstr ""
+
+#: gnu/packages/messaging.scm:2433
+msgid "Message broker"
+msgstr ""
+
+#: gnu/packages/messaging.scm:2434
+msgid ""
+"This package provides Eclipse Mosquitto, a message broker\n"
+"that implements the MQTT protocol versions 5.0, 3.1.1 and 3.1.  Mosquitto\n"
+"is lightweight and is suitable for use on all devices from low power single\n"
+"board computers to full servers.\n"
+"\n"
+"The MQTT protocol provides a lightweight method of carrying out messaging\n"
+"using a publish/subscribe model. This makes it suitable for Internet of\n"
+"Things messaging such as with low power sensors or mobile devices such\n"
+"as phones, embedded computers or microcontrollers."
+msgstr ""
+
+#: gnu/packages/mpd.scm:98
 msgid "Music Player Daemon client library"
 msgstr "Biblioteca cliente del Demonio de Reproductor Musical"
 
-#: gnu/packages/mpd.scm:86
+#: gnu/packages/mpd.scm:99
 msgid ""
 "A stable, documented, asynchronous API library for\n"
 "interfacing MPD in the C, C++ & Objective C languages."
@@ -10295,21 +14547,21 @@ msgid ""
 "player daemon."
 msgstr ""
 
-#: gnu/packages/mpd.scm:233
+#: gnu/packages/mpd.scm:222
 msgid "Curses Music Player Daemon client"
 msgstr "Cliente de Maldiciones del Demonio de Reproductor Musical"
 
-#: gnu/packages/mpd.scm:234
+#: gnu/packages/mpd.scm:223
 msgid ""
 "ncmpc is a fully featured MPD client, which runs in a\n"
 "terminal using ncurses."
 msgstr ""
 
-#: gnu/packages/mpd.scm:264
+#: gnu/packages/mpd.scm:253
 msgid "Featureful ncurses based MPD client inspired by ncmpc"
 msgstr "Característica ncurses basada en cliente MPD inspirado por ncmpc"
 
-#: gnu/packages/mpd.scm:265
+#: gnu/packages/mpd.scm:254
 msgid ""
 "Ncmpcpp is an mpd client with a UI very similar to ncmpc,\n"
 "but it provides new useful features such as support for regular expressions\n"
@@ -10317,42 +14569,80 @@ msgid ""
 "sort playlists, and a local file system browser."
 msgstr ""
 
-#: gnu/packages/mpd.scm:288
+#: gnu/packages/mpd.scm:278
 msgid "MPD client for track scrobbling"
 msgstr "Cliente MPD para seguimiento de rollo de papel"
 
-#: gnu/packages/mpd.scm:289
+#: gnu/packages/mpd.scm:279
 msgid ""
 "mpdscribble is a Music Player Daemon client which submits\n"
 "information about tracks being played to a scrobbler, such as Libre.FM."
 msgstr ""
 
-#: gnu/packages/mpd.scm:312
+#: gnu/packages/mpd.scm:302
 msgid "Python MPD client library"
 msgstr "Cliente biblioteca Python MPD"
 
-#: gnu/packages/mpd.scm:313
+#: gnu/packages/mpd.scm:303
 msgid ""
 "Python-mpd2 is a Python library which provides a client\n"
 "interface for the Music Player Daemon."
 msgstr ""
 
-#: gnu/packages/mpd.scm:362
+#: gnu/packages/mpd.scm:352
 msgid "Elegant client for the Music Player Daemon"
 msgstr "Cliente elegante para el Demonio de Reproductor Musical"
 
-#: gnu/packages/mpd.scm:363
+#: gnu/packages/mpd.scm:353
 msgid ""
 "Sonata is an elegant graphical client for the Music Player\n"
 "Daemon (MPD).  It supports playlists, multiple profiles (connecting to different\n"
 "MPD servers, search and multimedia key support."
 msgstr ""
 
-#: gnu/packages/netpbm.scm:184
+#: gnu/packages/mpd.scm:376
+msgid "Automatic library-wide shuffle for mpd"
+msgstr ""
+
+#: gnu/packages/mpd.scm:377
+msgid ""
+"ashuffle is an application for automatically shuffling your\n"
+"MPD library in a similar way to many other music players' 'shuffle library'\n"
+"feature. ashuffle works like any other MPD client, and can be used alongside\n"
+"other MPD frontends."
+msgstr ""
+
+#: gnu/packages/mpd.scm:420
+#, fuzzy
+msgid "MPRIS V2.1 support for MPD"
+msgstr "Capacidad SSL para Net::SMTP"
+
+#: gnu/packages/mpd.scm:421
+#, fuzzy
+msgid ""
+"Client for the Music Player Daemon providing MPRIS 2\n"
+"support"
+msgstr "Cliente elegante para el Demonio de Reproductor Musical"
+
+#: gnu/packages/mpd.scm:455
+#, fuzzy
+msgid "Graphical MPD Client"
+msgstr "Cliente IRC gráfico"
+
+#: gnu/packages/mpd.scm:456
+msgid ""
+"Cantata is a graphical client for the Music Player Daemon\n"
+"(MPD), using the Qt5 toolkit.  Its user interface is highly customizable,\n"
+"supporting multiple collections, ratings, and dynamic playlists.  A local cache\n"
+"of the music library will be created to provide a hierarchy of albums and\n"
+"artists along with albumart."
+msgstr ""
+
+#: gnu/packages/netpbm.scm:189
 msgid "Toolkit for manipulation of images"
 msgstr "Herramientas para manipulación de imágenes"
 
-#: gnu/packages/netpbm.scm:186
+#: gnu/packages/netpbm.scm:191
 msgid ""
 "Netpbm is a toolkit for the manipulation of graphic images, including\n"
 "the conversion of images between a variety of different formats.\n"
@@ -10372,11 +14662,117 @@ msgid ""
 "themselves."
 msgstr ""
 
-#: gnu/packages/networking.scm:124
+#: gnu/packages/networking.scm:201
+msgid "Camera stack and framework"
+msgstr ""
+
+#: gnu/packages/networking.scm:202
+msgid ""
+"LibCamera is a complex camera support library for GNU+Linux,\n"
+"Android, and ChromeOS."
+msgstr ""
+
+#: gnu/packages/networking.scm:257
+#, fuzzy
+msgid "GLib ICE implementation"
+msgstr "Reimplementación de XAudio"
+
+#: gnu/packages/networking.scm:258
+msgid ""
+"LibNice is a library that implements the Interactive\n"
+"Connectivity Establishment (ICE) standard (RFC 5245 & RFC 8445).  It provides a\n"
+"GLib-based library, libnice, as well as GStreamer elements to use it."
+msgstr ""
+
+#: gnu/packages/networking.scm:304
+#, fuzzy
+msgid "Tools and library for handling RTMP streams"
+msgstr "Biblioteca para manipulación de ficheros PNG"
+
+#: gnu/packages/networking.scm:305
+msgid ""
+"RTMPdump is a toolkit for RTMP streams.  All forms of RTMP are\n"
+"supported, including rtmp://, rtmpt://, rtmpe://, rtmpte://, and rtmps://."
+msgstr ""
+
+#: gnu/packages/networking.scm:344
+msgid "Secure Reliable Transport"
+msgstr ""
+
+#: gnu/packages/networking.scm:345
+msgid ""
+"SRT is a transport technology that optimizes streaming\n"
+"performance across unpredictable networks, such as the Internet."
+msgstr ""
+
+#: gnu/packages/networking.scm:390
+msgid "Linux SCTP helper library"
+msgstr ""
+
+#: gnu/packages/networking.scm:391
+msgid ""
+"Lksctp-tools project provides a user space library for SCTP\n"
+"(libsctp) including C language header files (netinet/sctp.h) for accessing SCTP\n"
+"specific application programming interfaces not provided by the standard\n"
+"sockets, and also some helper utilities around SCTP."
+msgstr ""
+
+#: gnu/packages/networking.scm:418
+#, fuzzy
+msgid "Small port-knock daemon"
+msgstr "Demonio Ident Pequeño"
+
+#: gnu/packages/networking.scm:419
+msgid ""
+"@command{knockd} is a port-knock daemon.  It listens to all traffic on\n"
+"an ethernet or PPP interface, looking for special \"knock\" sequences of @dfn{port-hits}\n"
+"(UDP/TCP packets sent to a server port).  This port need not be open, since knockd listens\n"
+"at the link-layer level."
+msgstr ""
+
+#: gnu/packages/networking.scm:458
+#, fuzzy
+msgid "Lightweight messaging library"
+msgstr "Biblioteca de filtro de sonido ligero"
+
+#: gnu/packages/networking.scm:459
+msgid ""
+"NNG project is a rewrite of the scalability protocols library\n"
+"known as libnanomsg, and adds significant new capabilities, while retaining\n"
+"compatibility with the original.  It is a lightweight, broker-less library,\n"
+"offering a simple API to solve common recurring messaging problems, such as\n"
+"publish/subscribe, RPC-style request/reply, or service discovery."
+msgstr ""
+
+#: gnu/packages/networking.scm:501
+#, fuzzy
+msgid "Scalable socket library"
+msgstr "Biblioteca abstracta de BD"
+
+#: gnu/packages/networking.scm:502
+msgid ""
+"Nanomsg is a socket library that provides several common\n"
+"communication patterns.  It aims to make the networking layer fast, scalable,\n"
+"and easy to use.  Implemented in C, it works on a wide range of operating\n"
+"systems with no further dependencies."
+msgstr ""
+
+#: gnu/packages/networking.scm:616
+msgid "GTK+ Bluetooth manager"
+msgstr ""
+
+#: gnu/packages/networking.scm:617
+msgid ""
+"Blueman is a Bluetooth management utility using the Bluez\n"
+"D-Bus backend.  It is designed to be easy to use for most common Bluetooth\n"
+"tasks."
+msgstr ""
+
+#: gnu/packages/networking.scm:641
 msgid "Viewing and manipulating MAC addresses of network interfaces"
 msgstr ""
 
-#: gnu/packages/networking.scm:125
+#: gnu/packages/networking.scm:642
 msgid ""
 "GNU MAC Changer is a utility for viewing and changing MAC\n"
 "addresses of networking devices.  New addresses may be set explicitly or\n"
@@ -10384,22 +14780,54 @@ msgid ""
 "or, more generally, MAC addresses of the same category of hardware."
 msgstr ""
 
-#: gnu/packages/networking.scm:154
+#: gnu/packages/networking.scm:671
 msgid "Teredo IPv6 tunneling software"
 msgstr ""
 
-#: gnu/packages/networking.scm:156
+#: gnu/packages/networking.scm:673
 msgid ""
 "Miredo is an implementation (client, relay, server) of the Teredo\n"
 "specification, which provides IPv6 Internet connectivity to IPv6 enabled hosts\n"
 "residing in IPv4-only networks, even when they are behind a NAT device."
 msgstr ""
 
-#: gnu/packages/networking.scm:178
+#: gnu/packages/networking.scm:691
+msgid "IPv6 diagnostic tools"
+msgstr ""
+
+#: gnu/packages/networking.scm:693
+msgid ""
+"NDisc6 is a collection of tools for IPv6 networking diagnostics.\n"
+"It includes the following programs:\n"
+"\n"
+"@itemize\n"
+"@item @command{ndisc6}: ICMPv6 Neighbor Discovery tool.\n"
+"@item @command{rdisc6}: ICMPv6 Router Discovery tool.\n"
+"@item @command{tcptraceroute6}: IPv6 traceroute over TCP.\n"
+"@item @command{traceroute6}: IPv6 traceroute over UDP.\n"
+"@item @command{rdnssd}: Recursive DNS Servers discovery daemon.\n"
+"@end itemize"
+msgstr ""
+
+#: gnu/packages/networking.scm:744
+msgid "Proxy ARP requests to other interfaces"
+msgstr ""
+
+#: gnu/packages/networking.scm:746
+msgid ""
+"@command{parprouted} is a daemon for transparent IP (Layer@tie{}3)\n"
+"proxy ARP bridging.  Unlike standard bridging, proxy ARP bridging can bridge\n"
+"Ethernet networks behind wireless nodes.  Normal layer@tie{}2 bridging does\n"
+"not work between wireless nodes because wireless does not know about MAC\n"
+"addresses used in the wired Ethernet networks.  This daemon can also be\n"
+"useful for making transparent firewalls."
+msgstr ""
+
+#: gnu/packages/networking.scm:771
 msgid "Open bidirectional communication channels from the command line"
 msgstr ""
 
-#: gnu/packages/networking.scm:180
+#: gnu/packages/networking.scm:773
 msgid ""
 "socat is a relay for bidirectional data transfer between two independent\n"
 "data channels---files, pipes, devices, sockets, etc.  It can create\n"
@@ -10412,22 +14840,22 @@ msgid ""
 "or server shell scripts with network connections."
 msgstr ""
 
-#: gnu/packages/networking.scm:262
+#: gnu/packages/networking.scm:855
 msgid "Monitor and filter incoming requests for network services"
 msgstr ""
 
-#: gnu/packages/networking.scm:263
+#: gnu/packages/networking.scm:856
 msgid ""
 "With this package you can monitor and filter incoming requests for\n"
 "network services.  It includes a library which may be used by daemons to\n"
 "transparently check connection attempts against an access control list."
 msgstr ""
 
-#: gnu/packages/networking.scm:283
+#: gnu/packages/networking.scm:875
 msgid "Library for message-based applications"
 msgstr ""
 
-#: gnu/packages/networking.scm:285
+#: gnu/packages/networking.scm:877
 msgid ""
 "The 0MQ lightweight messaging kernel is a library which extends the\n"
 "standard socket interfaces with features traditionally provided by specialized\n"
@@ -10437,65 +14865,76 @@ msgid ""
 "more."
 msgstr ""
 
-#: gnu/packages/networking.scm:323
+#: gnu/packages/networking.scm:917
 #, fuzzy
-#| msgid "Generate C bindings for Guile"
 msgid "High-level C bindings for ØMQ"
 msgstr "Genera enlaces C para Guile"
 
-#: gnu/packages/networking.scm:325
+#: gnu/packages/networking.scm:919
 msgid ""
 "czmq provides bindings for the ØMQ core API that hides the differences\n"
 "between different versions of ØMQ."
 msgstr ""
 
-#: gnu/packages/networking.scm:352
+#: gnu/packages/networking.scm:948
 msgid "C++ bindings for the ØMQ messaging library"
 msgstr ""
 
-#: gnu/packages/networking.scm:354
+#: gnu/packages/networking.scm:950
 msgid ""
 "This package provides header-only C++ bindings for ØMQ.  The header\n"
 "files contain direct mappings of the abstractions provided by the ØMQ C API."
 msgstr ""
 
-#: gnu/packages/networking.scm:389
+#: gnu/packages/networking.scm:982
+#, fuzzy
+msgid "C library implementing NAT-PMP"
+msgstr "Biblioteca implementando SIP (RFC-3261)"
+
+#: gnu/packages/networking.scm:984
+msgid ""
+"@code{libnatpmp} is a portable and asynchronous implementation of\n"
+"the Network Address Translation - Port Mapping Protocol (NAT-PMP)\n"
+"written in the C programming language."
+msgstr ""
+
+#: gnu/packages/networking.scm:1020
 msgid "Apache Kafka C/C++ client library"
 msgstr "Biblioteca cliente Apache Kafka C/C++"
 
-#: gnu/packages/networking.scm:391
+#: gnu/packages/networking.scm:1022
 msgid ""
 "librdkafka is a C library implementation of the Apache Kafka protocol,\n"
 "containing both Producer and Consumer support."
 msgstr ""
 
-#: gnu/packages/networking.scm:408
+#: gnu/packages/networking.scm:1039
 msgid "Library for Neighbor Discovery Protocol"
 msgstr ""
 
-#: gnu/packages/networking.scm:410
+#: gnu/packages/networking.scm:1041
 msgid ""
 "libndp contains a library which provides a wrapper for IPv6 Neighbor\n"
 "Discovery Protocol.  It also provides a tool named ndptool for sending and\n"
 "receiving NDP messages."
 msgstr ""
 
-#: gnu/packages/networking.scm:428
+#: gnu/packages/networking.scm:1063
 msgid "Display or change Ethernet device settings"
 msgstr "Enseña o modifica opciones de dispositivos Ethernet"
 
-#: gnu/packages/networking.scm:430
+#: gnu/packages/networking.scm:1065
 msgid ""
 "ethtool can be used to query and change settings such as speed,\n"
 "auto-negotiation and checksum offload on many network devices, especially\n"
 "Ethernet devices."
 msgstr ""
 
-#: gnu/packages/networking.scm:470
+#: gnu/packages/networking.scm:1105
 msgid "Text based network interface status monitor"
 msgstr ""
 
-#: gnu/packages/networking.scm:472
+#: gnu/packages/networking.scm:1107
 msgid ""
 "IFStatus is a simple, easy-to-use program for displaying commonly\n"
 "needed/wanted real-time traffic statistics of multiple network\n"
@@ -10503,11 +14942,37 @@ msgid ""
 "intended as a substitute for the PPPStatus and EthStatus projects."
 msgstr ""
 
-#: gnu/packages/networking.scm:492
+#: gnu/packages/networking.scm:1156
+#, fuzzy
+msgid "Collection of network utilities"
+msgstr "Colección de utilidades para el núcleo Linux"
+
+#: gnu/packages/networking.scm:1158
+msgid ""
+"This package contains a variety of tools for dealing with network\n"
+"configuration, troubleshooting, or servers.  Utilities included are:\n"
+"\n"
+"@itemize @bullet\n"
+"@item @command{arping}: Ping hosts using the @dfn{Address Resolution Protocol}.\n"
+"@item @command{clockdiff}: Compute time difference between network hosts\n"
+"using ICMP TSTAMP messages.\n"
+"@item @command{ninfod}: Daemon that responds to IPv6 Node Information Queries.\n"
+"@item @command{ping}: Use ICMP ECHO messages to measure round-trip delays\n"
+"and packet loss across network paths.\n"
+"@item @command{rarpd}: Answer RARP requests from clients.\n"
+"@item @command{rdisc}: Populate network routing tables with information from\n"
+"the ICMP router discovery protocol.\n"
+"@item @command{tftpd}: Trivial file transfer protocol server.\n"
+"@item @command{tracepath}: Trace network path to an IPv4 or IPv6 address and\n"
+"discover MTU along the way.\n"
+"@end itemize"
+msgstr ""
+
+#: gnu/packages/networking.scm:1197
 msgid "Realtime console network usage monitor"
 msgstr ""
 
-#: gnu/packages/networking.scm:494
+#: gnu/packages/networking.scm:1199
 msgid ""
 "Nload is a console application which monitors network traffic and\n"
 "bandwidth usage in real time.  It visualizes the in- and outgoing traffic using\n"
@@ -10515,11 +14980,11 @@ msgid ""
 "and min/max network usage."
 msgstr ""
 
-#: gnu/packages/networking.scm:539
+#: gnu/packages/networking.scm:1244
 msgid "Tunnel IPv4 data through a DNS server"
 msgstr ""
 
-#: gnu/packages/networking.scm:540
+#: gnu/packages/networking.scm:1245
 msgid ""
 "Iodine tunnels IPv4 data through a DNS server.  This\n"
 "can be useful in different situations where internet access is firewalled, but\n"
@@ -10527,11 +14992,11 @@ msgid ""
 "and up to 1 Mbit/s downstream."
 msgstr ""
 
-#: gnu/packages/networking.scm:577
+#: gnu/packages/networking.scm:1281
 msgid "Intelligent client for the WHOIS directory service"
 msgstr ""
 
-#: gnu/packages/networking.scm:579
+#: gnu/packages/networking.scm:1283
 msgid ""
 "whois searches for an object in a @dfn{WHOIS} (RFC 3912) database.\n"
 "It is commonly used to look up the registered users or assignees of an Internet\n"
@@ -10543,50 +15008,72 @@ msgid ""
 "of the same name."
 msgstr ""
 
-#: gnu/packages/networking.scm:652
+#: gnu/packages/networking.scm:1359
 msgid "Network traffic analyzer"
 msgstr "Análisis del tráfico de red"
 
-#: gnu/packages/networking.scm:653
+#: gnu/packages/networking.scm:1360
 msgid ""
 "Wireshark is a network protocol analyzer, or @dfn{packet\n"
 "sniffer}, that lets you capture and interactively browse the contents of\n"
 "network frames."
 msgstr ""
 
-#: gnu/packages/networking.scm:672
+#: gnu/packages/networking.scm:1379
 msgid "Send ICMP ECHO_REQUEST packets to network hosts"
 msgstr ""
 
-#: gnu/packages/networking.scm:674
+#: gnu/packages/networking.scm:1381
 msgid ""
-"fping is a ping like program which uses the Internet Control Message\n"
-"Protocol (ICMP) echo request to determine if a target host is responding.\n"
-"fping differs from ping in that you can specify any number of targets on the\n"
-"command line, or specify a file containing the lists of targets to ping.\n"
-"Instead of sending to one target until it times out or replies, fping will\n"
-"send out a ping packet and move on to the next target in a round-robin\n"
-"fashion."
+"fping is a ping-like program which uses @acronym{ICMP, Internet Control\n"
+"Message Protocol} echo requests to determine if a target host is responding.\n"
+"\n"
+"@command{fping} differs from @command{ping} in that you can specify any number\n"
+"of targets on the command line, or specify a file containing the lists of\n"
+"targets to ping.  Instead of sending to one target until it times out or\n"
+"replies, fping will send out a ping packet and move on to the next target in a\n"
+"round-robin fashion."
 msgstr ""
 
-#: gnu/packages/networking.scm:725
+#: gnu/packages/networking.scm:1433
 #, fuzzy
-#| msgid "Command-line interface to libtocc"
 msgid "Command-line interface to the Gandi.net Web API"
 msgstr "Interfaz de mandato lineal para libtocc"
 
-#: gnu/packages/networking.scm:727
+#: gnu/packages/networking.scm:1435
 msgid ""
 "This package provides a command-line client (@command{gandi}) to buy,\n"
 "manage, and delete Internet resources from Gandi.net such as domain names,\n"
 "virtual machines, and certificates."
 msgstr ""
 
-#: gnu/packages/networking.scm:757
+#: gnu/packages/networking.scm:1460
+#, fuzzy
+msgid "Simple network namespace handling for Go"
+msgstr "Manipular fecha simple"
+
+#: gnu/packages/networking.scm:1461
+msgid ""
+"The netns package provides a simple interface for\n"
+"handling network namespaces in Go."
+msgstr ""
+
+#: gnu/packages/networking.scm:1487
+#, fuzzy
+msgid "SCTP library for the Go programming language"
+msgstr "Manual de referencia para el lenguaje de programación C"
+
+#: gnu/packages/networking.scm:1488
+msgid ""
+"This library provides methods for using the stream control\n"
+"transmission protocol (SCTP) in a Go application."
+msgstr ""
+
+#: gnu/packages/networking.scm:1517
 msgid "Web server latency and throughput monitor"
 msgstr ""
 
-#: gnu/packages/networking.scm:759
+#: gnu/packages/networking.scm:1519
 msgid ""
 "httping measures how long it takes to connect to a web server, send an\n"
 "HTTP(S) request, and receive the reply headers.  It is somewhat similar to\n"
@@ -10595,11 +15082,11 @@ msgid ""
 "application stack itself."
 msgstr ""
 
-#: gnu/packages/networking.scm:791
+#: gnu/packages/networking.scm:1551
 msgid "Visualize curl statistics"
 msgstr "Visualizar estadísticas curl"
 
-#: gnu/packages/networking.scm:793
+#: gnu/packages/networking.scm:1553
 msgid ""
 "@command{httpstat} is a tool to visualize statistics from the\n"
 "@command{curl} HTTP client.  It acts as a wrapper for @command{curl} and\n"
@@ -10607,21 +15094,32 @@ msgid ""
 "TCP connection, TLS handshake and so on) in the terminal."
 msgstr ""
 
-#: gnu/packages/networking.scm:827
+#: gnu/packages/networking.scm:1597
+msgid "Web caching proxy"
+msgstr ""
+
+#: gnu/packages/networking.scm:1598
+msgid ""
+"Squid is a caching proxy for the Web supporting HTTP, HTTPS,\n"
+"FTP, and more.  It reduces bandwidth and improves response times by caching and\n"
+"reusing frequently-requested web pages."
+msgstr ""
+
+#: gnu/packages/networking.scm:1632
 msgid "Console based live network and disk I/O bandwidth monitor"
 msgstr ""
 
-#: gnu/packages/networking.scm:828
+#: gnu/packages/networking.scm:1633
 msgid ""
 "Bandwidth Monitor NG is a small and simple console based\n"
 "live network and disk I/O bandwidth monitor."
 msgstr ""
 
-#: gnu/packages/networking.scm:888
+#: gnu/packages/networking.scm:1686
 msgid "Assess WiFi network security"
 msgstr "Evaluar seguridad de redes WiFi"
 
-#: gnu/packages/networking.scm:890
+#: gnu/packages/networking.scm:1688
 msgid ""
 "Aircrack-ng is a complete suite of tools to assess WiFi network\n"
 "security.  It focuses on different areas of WiFi security: monitoring,\n"
@@ -10629,11 +15127,34 @@ msgid ""
 "allows for heavy scripting."
 msgstr ""
 
-#: gnu/packages/networking.scm:912
+#: gnu/packages/networking.scm:1716
+msgid "Offline brute-force tool for Wi-Fi Protected Setup"
+msgstr ""
+
+#: gnu/packages/networking.scm:1717
+msgid ""
+"Pixiewps implements the pixie-dust attack to brute\n"
+"force the Wi-Fi Protected Setup (WPS) PIN by exploiting the low or\n"
+"non-existing entropy of some access points."
+msgstr ""
+
+#: gnu/packages/networking.scm:1763
+msgid "Attack tool for Wi-Fi Protected Setup"
+msgstr ""
+
+#: gnu/packages/networking.scm:1764
+msgid ""
+"Reaver performs a brute force attack against an access\n"
+"point's Wi-Fi Protected Setup (WPS) PIN.  Once the PIN is found, the WPA\n"
+"passphrase can be recovered and the AP's wireless settings can be\n"
+"reconfigured."
+msgstr ""
+
+#: gnu/packages/networking.scm:1787
 msgid "Event loop and event-driven async socket base class"
 msgstr ""
 
-#: gnu/packages/networking.scm:914
+#: gnu/packages/networking.scm:1789
 msgid ""
 "Danga::Socket is an abstract base class for objects backed by a socket\n"
 "which provides the basic framework for event-driven asynchronous IO, designed\n"
@@ -10641,11 +15162,11 @@ msgid ""
 "loop."
 msgstr ""
 
-#: gnu/packages/networking.scm:938
+#: gnu/packages/networking.scm:1813
 msgid "IPv4 and IPv6 validation methods"
 msgstr ""
 
-#: gnu/packages/networking.scm:940
+#: gnu/packages/networking.scm:1815
 msgid ""
 "This module provides several IP address validation subroutines that both\n"
 "validate and untaint their input.  This includes both basic validation\n"
@@ -10654,105 +15175,116 @@ msgid ""
 "private (reserved)."
 msgstr ""
 
-#: gnu/packages/networking.scm:967
+#: gnu/packages/networking.scm:1842
 msgid "Perl Interface to the Domain Name System"
 msgstr ""
 
-#: gnu/packages/networking.scm:968
+#: gnu/packages/networking.scm:1843
 msgid "Net::DNS is the Perl Interface to the Domain Name System."
 msgstr ""
 
-#: gnu/packages/networking.scm:999
+#: gnu/packages/networking.scm:1874
 msgid "IPv6 related part of the C socket.h defines and structure manipulators for Perl"
 msgstr ""
 
-#: gnu/packages/networking.scm:1000
+#: gnu/packages/networking.scm:1875
 msgid ""
 "Socket6 binds the IPv6 related part of the C socket header\n"
 "definitions and structure manipulators for Perl."
 msgstr ""
 
-#: gnu/packages/networking.scm:1026
+#: gnu/packages/networking.scm:1901
 msgid "Programmable DNS resolver class for offline emulation of DNS"
 msgstr ""
 
-#: gnu/packages/networking.scm:1027
+#: gnu/packages/networking.scm:1902
 msgid ""
 "Net::DNS::Resolver::Programmable is a programmable DNS resolver for\n"
 "offline emulation of DNS."
 msgstr ""
 
-#: gnu/packages/networking.scm:1060
+#: gnu/packages/networking.scm:1922
+msgid "Mock DNS Resolver object for testing"
+msgstr ""
+
+#: gnu/packages/networking.scm:1924
+msgid ""
+"Net::DNS::Resolver::Mock is a subclass of Net::DNS::Resolver, but returns\n"
+"static data from any provided DNS zone file instead of querying the network.\n"
+"It is intended primarily for use in testing."
+msgstr ""
+
+#: gnu/packages/networking.scm:1958
 msgid "Manages IPv4 and IPv6 addresses and subnets"
 msgstr "Gestiona direcciones IPv4 e IPv6 y subredes"
 
-#: gnu/packages/networking.scm:1061
+#: gnu/packages/networking.scm:1959
 msgid "NetAddr::IP manages IPv4 and IPv6 addresses and subsets."
 msgstr ""
 
-#: gnu/packages/networking.scm:1085
+#: gnu/packages/networking.scm:1991
 msgid "Patricia Trie Perl module for fast IP address lookups"
 msgstr "Módulo Perl Patricia Trie para direccionamiento de bucles IP rápido"
 
-#: gnu/packages/networking.scm:1087
+#: gnu/packages/networking.scm:1993
 msgid "Net::Patricia does IP address lookups quickly in Perl."
 msgstr ""
 
-#: gnu/packages/networking.scm:1110
+#: gnu/packages/networking.scm:2016
 msgid "Perl extension for merging IPv4 or IPv6 CIDR addresses"
 msgstr ""
 
-#: gnu/packages/networking.scm:1111
+#: gnu/packages/networking.scm:2017
 msgid "Net::CIDR::Lite merges IPv4 or IPv6 CIDR addresses."
 msgstr ""
 
-#: gnu/packages/networking.scm:1133
+#: gnu/packages/networking.scm:2039
 msgid "Look up location and network information by IP Address in Perl"
 msgstr ""
 
-#: gnu/packages/networking.scm:1134
+#: gnu/packages/networking.scm:2040
 msgid ""
 "The Perl module @code{Geo::IP}.  It looks up location and\n"
 "network information by IP Address."
 msgstr ""
 
-#: gnu/packages/networking.scm:1163
+#: gnu/packages/networking.scm:2069
 msgid "Perl object interface for AF_INET/AF_INET6 domain sockets"
 msgstr ""
 
-#: gnu/packages/networking.scm:1164
+#: gnu/packages/networking.scm:2070
 msgid ""
 "IO::Socket::INET6 is an interface for AF_INET/AF_INET6 domain\n"
 "sockets in Perl."
 msgstr ""
 
-#: gnu/packages/networking.scm:1193
+#: gnu/packages/networking.scm:2098
 msgid "Library providing automatic proxy configuration management"
 msgstr ""
 
-#: gnu/packages/networking.scm:1194
+#: gnu/packages/networking.scm:2099
 msgid ""
 "Libproxy handles the details of HTTP/HTTPS proxy\n"
 "configuration for applications across all scenarios.  Applications using\n"
 "libproxy only have to specify which proxy to use."
 msgstr ""
 
-#: gnu/packages/networking.scm:1229
+#: gnu/packages/networking.scm:2134
 msgid "Redirect any TCP connection through a proxy or proxy chain"
 msgstr ""
 
-#: gnu/packages/networking.scm:1230
+#: gnu/packages/networking.scm:2135
 msgid ""
 "Proxychains-ng is a preloader which hooks calls to sockets\n"
 "in dynamically linked programs and redirects them through one or more SOCKS or\n"
 "HTTP proxies."
 msgstr ""
 
-#: gnu/packages/networking.scm:1250
+#: gnu/packages/networking.scm:2155
 msgid "Network communication layer on top of UDP"
 msgstr ""
 
-#: gnu/packages/networking.scm:1252
+#: gnu/packages/networking.scm:2157
 msgid ""
 "ENet's purpose is to provide a relatively thin, simple and robust network\n"
 "communication layer on top of UDP.  The primary feature it provides is optional\n"
@@ -10762,11 +15294,11 @@ msgid ""
 "library remains flexible, portable, and easily embeddable."
 msgstr ""
 
-#: gnu/packages/networking.scm:1317
+#: gnu/packages/networking.scm:2222
 msgid "Applicative network protocol demultiplexer"
 msgstr ""
 
-#: gnu/packages/networking.scm:1319
+#: gnu/packages/networking.scm:2224
 msgid ""
 "sslh is a network protocol demultiplexer.  It acts like a switchboard,\n"
 "accepting connections from clients on one port and forwarding them to different\n"
@@ -10778,11 +15310,11 @@ msgid ""
 "that block port 22."
 msgstr ""
 
-#: gnu/packages/networking.scm:1342
+#: gnu/packages/networking.scm:2247
 msgid "TCP, UDP and SCTP bandwidth measurement tool"
 msgstr ""
 
-#: gnu/packages/networking.scm:1344
+#: gnu/packages/networking.scm:2249
 msgid ""
 "iPerf is a tool to measure achievable bandwidth on IP networks.  It\n"
 "supports tuning of various parameters related to timing, buffers and\n"
@@ -10790,12 +15322,12 @@ msgid ""
 "the bandwidth, loss, and other parameters."
 msgstr ""
 
-#: gnu/packages/networking.scm:1377
+#: gnu/packages/networking.scm:2286
 #, fuzzy
 msgid "Per-process bandwidth monitor"
 msgstr "Monitor ancho de banda"
 
-#: gnu/packages/networking.scm:1378
+#: gnu/packages/networking.scm:2287
 msgid ""
 "NetHogs is a small 'net top' tool for Linux.  Instead of\n"
 "breaking the traffic down per protocol or per subnet, like most tools do, it\n"
@@ -10807,11 +15339,11 @@ msgid ""
 "gone wild and are suddenly taking up your bandwidth."
 msgstr ""
 
-#: gnu/packages/networking.scm:1424
+#: gnu/packages/networking.scm:2333
 msgid "Usenet binary file downloader"
 msgstr "Descargador de fichero binario Usenet"
 
-#: gnu/packages/networking.scm:1426
+#: gnu/packages/networking.scm:2335
 msgid ""
 "NZBGet is a binary newsgrabber, which downloads files from Usenet based\n"
 "on information given in @code{nzb} files.  NZBGet can be used in standalone\n"
@@ -10821,11 +15353,11 @@ msgid ""
 "procedure calls (RPCs)."
 msgstr ""
 
-#: gnu/packages/networking.scm:1480
+#: gnu/packages/networking.scm:2387
 msgid "Virtual network switch"
 msgstr "Intercambio de red virtual"
 
-#: gnu/packages/networking.scm:1483
+#: gnu/packages/networking.scm:2390
 msgid ""
 "Open vSwitch is a multilayer virtual switch.  It is designed to enable\n"
 "massive network automation through programmatic extension, while still\n"
@@ -10833,22 +15365,22 @@ msgid ""
 "IPFIX, RSPAN, CLI, LACP, 802.1ag)."
 msgstr ""
 
-#: gnu/packages/networking.scm:1505
+#: gnu/packages/networking.scm:2412
 msgid "Python class and tools for handling IP addresses and networks"
 msgstr ""
 
-#: gnu/packages/networking.scm:1506
+#: gnu/packages/networking.scm:2413
 msgid ""
 "The @code{IP} class allows a comfortable parsing and\n"
 "handling for most notations in use for IPv4 and IPv6 addresses and\n"
 "networks."
 msgstr ""
 
-#: gnu/packages/networking.scm:1529
+#: gnu/packages/networking.scm:2436
 msgid "Internet bandwidth tester"
 msgstr "Probando anchura de banda Internet"
 
-#: gnu/packages/networking.scm:1531
+#: gnu/packages/networking.scm:2438
 msgid ""
 "Command line interface for testing internet bandwidth using\n"
 "speedtest.net."
@@ -10856,33 +15388,33 @@ msgstr ""
 "Interfaz de mandato lineal para probar ancho de banda de \n"
 "interred utilizando speedtest.net."
 
-#: gnu/packages/networking.scm:1549
+#: gnu/packages/networking.scm:2456
 msgid "HPA's tftp client"
 msgstr "Cliente tftp de HPA"
 
-#: gnu/packages/networking.scm:1551
+#: gnu/packages/networking.scm:2458
 msgid ""
 "This is a tftp client derived from OpenBSD tftp with some extra options\n"
 "added and bugs fixed.  The source includes readline support but it is not\n"
 "enabled due to license conflicts between the BSD advertising clause and the GPL."
 msgstr ""
 
-#: gnu/packages/networking.scm:1579
+#: gnu/packages/networking.scm:2487
 msgid "Small Ident Daemon"
 msgstr "Demonio Ident Pequeño"
 
-#: gnu/packages/networking.scm:1581
+#: gnu/packages/networking.scm:2489
 msgid ""
-"@dfn{Pidentd} (Peter's Ident Daemon) is a identd, which implements a\n"
+"@dfn{Pidentd} (Peter's Ident Daemon) is an identd, which implements a\n"
 "identification server.  Pidentd looks up specific TCP/IP connections and\n"
 "returns the user name and other information about the connection."
 msgstr ""
 
-#: gnu/packages/networking.scm:1628
+#: gnu/packages/networking.scm:2536
 msgid "Create secure pipes between sockets"
 msgstr ""
 
-#: gnu/packages/networking.scm:1629
+#: gnu/packages/networking.scm:2537
 msgid ""
 "Spiped (pronounced \"ess-pipe-dee\") is a utility for creating\n"
 "symmetrically encrypted and authenticated pipes between socket addresses, so\n"
@@ -10892,11 +15424,11 @@ msgid ""
 "does not use SSH and requires a pre-shared symmetric key."
 msgstr ""
 
-#: gnu/packages/networking.scm:1656
+#: gnu/packages/networking.scm:2564
 msgid "Routing Software Suite"
 msgstr "Enrutando Suite Software"
 
-#: gnu/packages/networking.scm:1657
+#: gnu/packages/networking.scm:2565
 msgid ""
 "Quagga is a routing software suite, providing implementations\n"
 "of OSPFv2, OSPFv3, RIP v1 and v2, RIPng and BGP-4 for Unix platforms.\n"
@@ -10908,22 +15440,22 @@ msgid ""
 "updates to the zebra daemon."
 msgstr ""
 
-#: gnu/packages/networking.scm:1708
+#: gnu/packages/networking.scm:2616
 msgid "IPv6 security research toolkit"
 msgstr "Kit de herramientas de análisis de seguridad IPv6"
 
-#: gnu/packages/networking.scm:1709
+#: gnu/packages/networking.scm:2617
 msgid ""
 "The THC IPv6 Toolkit provides command-line tools and a library\n"
 "for researching IPv6 implementations and deployments.  It requires Linux 2.6 or\n"
 "newer and only works on Ethernet network interfaces."
 msgstr ""
 
-#: gnu/packages/networking.scm:1735
+#: gnu/packages/networking.scm:2643
 msgid "Bandwidth monitor"
 msgstr "Monitor ancho de banda"
 
-#: gnu/packages/networking.scm:1736
+#: gnu/packages/networking.scm:2644
 msgid ""
 "bmon is a monitoring and debugging tool to capture\n"
 "networking-related statistics and prepare them visually in a human-friendly\n"
@@ -10931,11 +15463,11 @@ msgid ""
 "interface and a programmable text output for scripting."
 msgstr ""
 
-#: gnu/packages/networking.scm:1778
+#: gnu/packages/networking.scm:2681
 msgid "Framework for low-level network packet construction"
 msgstr ""
 
-#: gnu/packages/networking.scm:1780
+#: gnu/packages/networking.scm:2683
 msgid ""
 "Libnet provides a fairly portable framework for network packet\n"
 "construction and injection.  It features portable packet creation interfaces\n"
@@ -10944,13 +15476,13 @@ msgid ""
 "can be whipped up with little effort."
 msgstr ""
 
-#: gnu/packages/networking.scm:1808
+#: gnu/packages/networking.scm:2708
 msgid "Network diagnostic tool"
 msgstr ""
 
-#: gnu/packages/networking.scm:1810
+#: gnu/packages/networking.scm:2710
 msgid ""
-"@dfn{mtr} (My TraceRoute) combines the functionality of the\n"
+"@acronym{mtr, My TraceRoute} combines the functionality of the\n"
 "@command{traceroute} and @command{ping} programs in a single network diagnostic\n"
 "tool.  @command{mtr} can use several network protocols to detect intermediate\n"
 "routers (or @dfn{hops}) between the local host and a user-specified destination.\n"
@@ -10958,24 +15490,23 @@ msgid ""
 "displays the results in real time."
 msgstr ""
 
-#: gnu/packages/networking.scm:1862
+#: gnu/packages/networking.scm:2762
 #, fuzzy
-#| msgid "GNOME settings daemon"
 msgid "IKEv1/v2 keying daemon"
 msgstr "GNOME configurando demonios"
 
-#: gnu/packages/networking.scm:1863
+#: gnu/packages/networking.scm:2763
 msgid ""
 "StrongSwan is an IPsec implementation originally based upon\n"
 "the FreeS/WAN project.  It contains support for IKEv1, IKEv2, MOBIKE, IPv6,\n"
 "NAT-T and more."
 msgstr ""
 
-#: gnu/packages/networking.scm:1947
+#: gnu/packages/networking.scm:2847
 msgid "Peer-to-peer client for the eD2K and Kademlia networks"
 msgstr ""
 
-#: gnu/packages/networking.scm:1949
+#: gnu/packages/networking.scm:2849
 msgid ""
 "aMule is an eMule-like client for the eD2k and Kademlia peer-to-peer\n"
 "file sharing networks.  It includes a graphical user interface (GUI), a daemon\n"
@@ -10984,11 +15515,11 @@ msgid ""
 "remotely."
 msgstr ""
 
-#: gnu/packages/networking.scm:1972
+#: gnu/packages/networking.scm:2872
 msgid "Framework for proximity-based peer-to-peer applications"
 msgstr ""
 
-#: gnu/packages/networking.scm:1973
+#: gnu/packages/networking.scm:2873
 msgid ""
 "Zyre provides reliable group messaging over local area\n"
 "networks using zeromq.  It has these key characteristics:\n"
@@ -11005,11 +15536,21 @@ msgid ""
 "@end itemize"
 msgstr ""
 
-#: gnu/packages/networking.scm:2013
+#: gnu/packages/networking.scm:2908
+msgid "SocketCAN user-space library"
+msgstr ""
+
+#: gnu/packages/networking.scm:2909
+msgid ""
+"This library allows controlling basic functions in SocketCAN\n"
+"from user-space.  It requires a kernel built with SocketCAN support."
+msgstr ""
+
+#: gnu/packages/networking.scm:2937
 msgid "CAN utilities"
 msgstr ""
 
-#: gnu/packages/networking.scm:2014
+#: gnu/packages/networking.scm:2938
 msgid ""
 "This package provides CAN utilities in the following areas:\n"
 "\n"
@@ -11025,22 +15566,22 @@ msgid ""
 "@end itemize"
 msgstr ""
 
-#: gnu/packages/networking.scm:2050
+#: gnu/packages/networking.scm:2974
 msgid "C++ library for ASynchronous network I/O"
 msgstr ""
 
-#: gnu/packages/networking.scm:2051
+#: gnu/packages/networking.scm:2975
 msgid ""
 "Asio is a cross-platform C++ library for network and\n"
 "low-level I/O programming that provides developers with a consistent\n"
 "asynchronous model using a modern C++ approach."
 msgstr ""
 
-#: gnu/packages/networking.scm:2075
+#: gnu/packages/networking.scm:2999
 msgid "Fast tunnel proxy that helps you bypass firewalls"
 msgstr ""
 
-#: gnu/packages/networking.scm:2077
+#: gnu/packages/networking.scm:3001
 msgid ""
 "This package is a fast tunnel proxy that helps you bypass firewalls.\n"
 "\n"
@@ -11054,11 +15595,11 @@ msgid ""
 "@end itemize"
 msgstr ""
 
-#: gnu/packages/networking.scm:2155
+#: gnu/packages/networking.scm:3082
 msgid "Simple Network Management Protocol library and tools"
 msgstr ""
 
-#: gnu/packages/networking.scm:2156
+#: gnu/packages/networking.scm:3083
 msgid ""
 "The @dfn{Simple Network Management Protocol} (SNMP) is a\n"
 "widely used protocol for monitoring the health and welfare of network\n"
@@ -11067,32 +15608,32 @@ msgid ""
 "SNMP v3 using both IPv4 and IPv6."
 msgstr ""
 
-#: gnu/packages/networking.scm:2197
+#: gnu/packages/networking.scm:3129
 msgid "Bridge for UDP tunnels, Ethernet, TAP and VMnet interfaces"
 msgstr ""
 
-#: gnu/packages/networking.scm:2198
+#: gnu/packages/networking.scm:3130
 msgid ""
 "uBridge is a simple program to create user-land bridges\n"
 "between various technologies.  Currently, bridging between UDP tunnels,\n"
 "Ethernet and TAP interfaces is supported.  Packet capture is also supported."
 msgstr ""
 
-#: gnu/packages/networking.scm:2244
+#: gnu/packages/networking.scm:3163
 msgid "Capture wlan traffic to hashcat and John the Ripper"
 msgstr ""
 
-#: gnu/packages/networking.scm:2246
+#: gnu/packages/networking.scm:3165
 msgid ""
 "This package contains a small set of tools to capture and convert\n"
 "packets from wireless devices for use with hashcat or John the Ripper."
 msgstr ""
 
-#: gnu/packages/networking.scm:2273
+#: gnu/packages/networking.scm:3194
 msgid "Small tool to capture packets from wlan devices"
 msgstr ""
 
-#: gnu/packages/networking.scm:2275
+#: gnu/packages/networking.scm:3196
 msgid ""
 "Small tool to capture packets from WLAN devices.  After capturing,\n"
 "upload the \"uncleaned\" cap to @url{https://wpa-sec.stanev.org/?submit} to\n"
@@ -11102,11 +15643,11 @@ msgid ""
 "and check if the WLAN key or the master key was transmitted unencrypted."
 msgstr ""
 
-#: gnu/packages/networking.scm:2302
+#: gnu/packages/networking.scm:3223
 msgid "SOCKS server and client"
 msgstr ""
 
-#: gnu/packages/networking.scm:2303
+#: gnu/packages/networking.scm:3224
 msgid ""
 "Dante is a SOCKS client and server implementation.  It can\n"
 "be installed on a machine with access to an external TCP/IP network and will\n"
@@ -11115,159 +15656,342 @@ msgid ""
 "never see any machines other than the one Dante is running on."
 msgstr ""
 
-#: gnu/packages/networking.scm:2356
+#: gnu/packages/networking.scm:3277
 msgid "Asynchronous RESTful functionality to C++11 applications"
 msgstr ""
 
-#: gnu/packages/networking.scm:2357
+#: gnu/packages/networking.scm:3278
 msgid ""
 "Restbed is a comprehensive and consistent programming\n"
 "model for building applications that require seamless and secure\n"
 "communication over HTTP."
 msgstr ""
 
-#: gnu/packages/networking.scm:2396
+#: gnu/packages/networking.scm:3320
+msgid "C++14 library that gives you an embedded HTTP/Websocket server"
+msgstr ""
+
+#: gnu/packages/networking.scm:3321
+msgid ""
+"RESTinio is a header-only C++14 library that gives you an embedded\n"
+"HTTP/Websocket server.  It is based on standalone version of ASIO\n"
+"and targeted primarily for asynchronous processing of HTTP-requests."
+msgstr ""
+
+#: gnu/packages/networking.scm:3370
 msgid "Distributed Hash Table (DHT) library"
 msgstr ""
 
-#: gnu/packages/networking.scm:2397
+#: gnu/packages/networking.scm:3371
 msgid ""
 "OpenDHT is a Distributed Hash Table (DHT) library.  It may\n"
 "be used to manage peer-to-peer network connections as needed for real time\n"
 "communication."
 msgstr ""
 
-#: gnu/packages/networking.scm:2425
+#: gnu/packages/networking.scm:3399
 #, fuzzy
 msgid "IP routing protocol suite"
 msgstr "Biblioteca utilitaria para Netlink"
 
-#: gnu/packages/networking.scm:2426
+#: gnu/packages/networking.scm:3400
 msgid ""
 "FRRouting (FRR) is an IP routing protocol suite which includes\n"
 "protocol daemons for BGP, IS-IS, LDP, OSPF, PIM, and RIP. "
 msgstr ""
 
+#: gnu/packages/networking.scm:3455
+#, fuzzy
+msgid "Internet Wireless Daemon"
+msgstr "Demonio de servicios de Internet"
+
+#: gnu/packages/networking.scm:3456
+msgid ""
+"iwd is a wireless daemon for Linux that aims to replace WPA\n"
+"Supplicant.  It optimizes resource utilization by not depending on any external\n"
+"libraries and instead utilizing features provided by the Linux kernel to the\n"
+"maximum extent possible."
+msgstr ""
+
+#: gnu/packages/networking.scm:3489
+msgid "Management tool for the mesh networking BATMAN protocol"
+msgstr ""
+
+#: gnu/packages/networking.scm:3490
+msgid ""
+"This package provides a control tool for the\n"
+"B.A.T.M.A.N. mesh networking routing protocol provided by the Linux kernel\n"
+"module @code{batman-adv}, for Layer 2."
+msgstr ""
+
+#: gnu/packages/networking.scm:3525
+msgid "Make localhost servers publicly visible"
+msgstr ""
+
+#: gnu/packages/networking.scm:3527
+msgid ""
+"PageKite implements a tunneled reverse proxy which makes it easy to make\n"
+"a service (such as an HTTP or SSH server) on localhost visible to the wider\n"
+"Internet, even behind NAT or restrictive firewalls.  A managed front-end relay\n"
+"service is available at @url{https://pagekite.net/}, or you can run your own."
+msgstr ""
+
+#: gnu/packages/networking.scm:3570
+#, fuzzy
+msgid "Simple IP network calculator"
+msgstr "Calculadora para escritorio"
+
+#: gnu/packages/networking.scm:3571
+msgid ""
+"ipcalc takes an IP address and netmask and calculates the\n"
+"resulting broadcast, network, Cisco wildcard mask, and host range.  By giving\n"
+"a second netmask, you can design subnets and supernets.  It is also intended\n"
+"to be a teaching tool and presents the subnetting results as\n"
+"easy-to-understand binary values."
+msgstr ""
+
+#: gnu/packages/networking.scm:3609
+msgid "Utility to set up and maintain TUN/TAP network interfaces"
+msgstr ""
+
+#: gnu/packages/networking.scm:3610
+msgid ""
+"Tunctl is used to set up and maintain persistent TUN/TAP\n"
+"network interfaces, enabling user applications to simulate network traffic.\n"
+"Such interfaces are useful for VPN software, virtualization, emulation,\n"
+"simulation, and a number of other applications."
+msgstr ""
+
+#: gnu/packages/networking.scm:3629
+msgid "Implements Wake On LAN functionality in a small program"
+msgstr ""
+
+#: gnu/packages/networking.scm:3630
+msgid ""
+"Tool to send a magic packet to wake another host on the\n"
+"network.  This must be enabled on the target host, usually in the BIOS."
+msgstr ""
+
+#: gnu/packages/networking.scm:3652
+msgid "Virtual Distributed Ethernet"
+msgstr ""
+
+#: gnu/packages/networking.scm:3653
+msgid ""
+"VDE is a set of programs to provide virtual software-defined\n"
+"Ethernet network interface controllers across multiple virtual or\n"
+"physical, local or remote devices.  The VDE architecture provides\n"
+"virtual counterparts to hardware components such as switches and\n"
+"cables."
+msgstr ""
+
+#: gnu/packages/networking.scm:3697
+msgid "Reliable, high performance TCP/HTTP load balancer"
+msgstr ""
+
+#: gnu/packages/networking.scm:3698
+msgid ""
+"HAProxy is a free, very fast and reliable solution offering\n"
+"high availability, load balancing, and proxying for TCP and HTTP-based\n"
+"applications.  It is particularly suited for web sites crawling under very\n"
+"high loads while needing persistence or Layer7 processing.  Supporting tens of\n"
+"thousands of connections is clearly realistic with today's hardware."
+msgstr ""
+
+#: gnu/packages/networking.scm:3745
+msgid "Locate neighbors of your network equipment"
+msgstr ""
+
+#: gnu/packages/networking.scm:3747
+msgid ""
+"The @dfn{Link Layer Discovery Protocol} (LLDP) is an industry standard\n"
+"protocol designed to supplant proprietary Link-Layer protocols such as EDP or\n"
+"CDP.  The goal of LLDP is to provide an inter-vendor compatible mechanism to\n"
+"deliver Link-Layer notifications to adjacent network devices.  @code{lldpd} is\n"
+"an implementation of LLDP.  It also supports some proprietary protocols."
+msgstr ""
+
+#: gnu/packages/networking.scm:3788
+msgid "Denial-of-service countermeasure"
+msgstr ""
+
+#: gnu/packages/networking.scm:3789
+msgid ""
+"Hashcash is a proof-of-work algorithm, which has been used\n"
+"as a denial-of-service countermeasure technique in a number of systems.\n"
+"\n"
+"A hashcash stamp constitutes a proof-of-work which takes a parametrizable\n"
+"amount of work to compute for the sender.  The recipient can verify received\n"
+"hashcash stamps efficiently.\n"
+"\n"
+"This package contains a command-line tool for computing and verifying hashcash\n"
+"stamps."
+msgstr ""
+
+#: gnu/packages/networking.scm:3819
+msgid "NBD client and server"
+msgstr ""
+
+#: gnu/packages/networking.scm:3820
+msgid ""
+"This package provides the NBD (Network Block Devices)\n"
+"client and server.  It allows you to use remote block devices over a TCP/IP\n"
+"network."
+msgstr ""
+
 #: gnu/packages/pdf.scm:129
+msgid "Rearrange PDF pages to print as flyers on one sheet"
+msgstr ""
+
+#: gnu/packages/pdf.scm:130
+msgid ""
+"@command{flyer-composer} can be used to prepare one- or\n"
+"two-sided flyers for printing on one sheet of paper.\n"
+"\n"
+"Imagine you have designed a flyer in A6 format and want to print it using your\n"
+"A4 printer.  Of course, you want to print four flyers on each sheet.  This is\n"
+"where Flyer Composer steps in, creating a PDF which holds your flyer four\n"
+"times.  If you have a second page, Flyer Composer can arrange it the same way\n"
+"- even if the second page is in a separate PDF file.\n"
+"\n"
+"This package contains both the command line tool and the gui too."
+msgstr ""
+
+#: gnu/packages/pdf.scm:157
+msgid ""
+"@command{flyer-composer} can be used to prepare one- or\n"
+"two-sided flyers for printing on one sheet of paper.\n"
+"\n"
+"Imagine you have designed a flyer in A6 format and want to print it using your\n"
+"A4 printer.  Of course, you want to print four flyers on each sheet.  This is\n"
+"where Flyer Composer steps in, creating a PDF which holds your flyer four\n"
+"times.  If you have a second page, Flyer Composer can arrange it the same way\n"
+"- even if the second page is in a separate PDF file.\n"
+"\n"
+"This package contains only the command line tool.  If you like to use the gui,\n"
+"please install the @code{flyer-composer-gui} package."
+msgstr ""
+
+#: gnu/packages/pdf.scm:213
 msgid "PDF rendering library"
 msgstr "Biblioteca renderizadora de PDF"
 
-#: gnu/packages/pdf.scm:131
+#: gnu/packages/pdf.scm:215
 msgid "Poppler is a PDF rendering library based on the xpdf-3.0 code base."
 msgstr ""
 
-#: gnu/packages/pdf.scm:156
+#: gnu/packages/pdf.scm:240
 msgid "Poppler encoding files for rendering of CJK and Cyrillic text"
 msgstr ""
 
-#: gnu/packages/pdf.scm:157
+#: gnu/packages/pdf.scm:241
 msgid ""
 "This package provides optional encoding files for Poppler.\n"
 "When present, Poppler is able to correctly render CJK and Cyrillic text."
 msgstr ""
 
-#: gnu/packages/pdf.scm:170
+#: gnu/packages/pdf.scm:254
 msgid "Qt4 frontend for the Poppler PDF rendering library"
 msgstr ""
 
-#: gnu/packages/pdf.scm:177
+#: gnu/packages/pdf.scm:261
 msgid "Qt5 frontend for the Poppler PDF rendering library"
 msgstr ""
 
-#: gnu/packages/pdf.scm:220
+#: gnu/packages/pdf.scm:301
 msgid "Python bindings for Poppler-Qt5"
 msgstr "Enlaces binarios para Poppler-Qt5"
 
-#: gnu/packages/pdf.scm:222
+#: gnu/packages/pdf.scm:303
 msgid ""
 "This package provides Python bindings for the Qt5 interface of the\n"
 "Poppler PDF rendering library."
 msgstr ""
 
-#: gnu/packages/pdf.scm:256
+#: gnu/packages/pdf.scm:337
 msgid "Library for generating PDF files"
 msgstr "Biblioteca para generación de ficheros PDF"
 
-#: gnu/packages/pdf.scm:258
+#: gnu/packages/pdf.scm:339
 msgid ""
 "libHaru is a library for generating PDF files.  libHaru does not support\n"
 "reading and editing of existing PDF files."
 msgstr ""
 
-#: gnu/packages/pdf.scm:305
+#: gnu/packages/pdf.scm:387
 msgid "Viewer for PDF files based on the Motif toolkit"
 msgstr ""
 
-#: gnu/packages/pdf.scm:307
+#: gnu/packages/pdf.scm:389
 msgid "Xpdf is a viewer for Portable Document Format (PDF) files."
 msgstr ""
 
-#: gnu/packages/pdf.scm:341
+#: gnu/packages/pdf.scm:423
 msgid "Comic book support for zathura (libarchive backend)"
 msgstr ""
 
-#: gnu/packages/pdf.scm:342
+#: gnu/packages/pdf.scm:424
 msgid ""
 "The zathura-cb plugin adds comic book support to zathura\n"
 "using libarchive."
 msgstr ""
 
-#: gnu/packages/pdf.scm:376
+#: gnu/packages/pdf.scm:458
 msgid "PS support for zathura (libspectre backend)"
 msgstr "Apoyo PS para zathura (libspectre backend)"
 
-#: gnu/packages/pdf.scm:377
+#: gnu/packages/pdf.scm:459
 msgid ""
 "The zathura-ps plugin adds PS support to zathura\n"
 "using libspectre."
 msgstr ""
 
-#: gnu/packages/pdf.scm:412
+#: gnu/packages/pdf.scm:494
 msgid "DjVu support for zathura (DjVuLibre backend)"
 msgstr "Apoyo DjVu para zathura (DjVuLibre backend)"
 
-#: gnu/packages/pdf.scm:413
+#: gnu/packages/pdf.scm:495
 msgid ""
 "The zathura-djvu plugin adds DjVu support to zathura\n"
 "using the DjVuLibre library."
 msgstr ""
 
-#: gnu/packages/pdf.scm:456
+#: gnu/packages/pdf.scm:538
 msgid "PDF support for zathura (mupdf backend)"
 msgstr "Apoyo PDF para zathura (mupdf backend)"
 
-#: gnu/packages/pdf.scm:457
+#: gnu/packages/pdf.scm:539
 msgid ""
 "The zathura-pdf-mupdf plugin adds PDF support to zathura\n"
 "by using the @code{mupdf} rendering library."
 msgstr ""
 
-#: gnu/packages/pdf.scm:492
+#: gnu/packages/pdf.scm:574
 msgid "PDF support for zathura (poppler backend)"
 msgstr "Apoyo PDF para zathura (poppler backend)"
 
-#: gnu/packages/pdf.scm:493
+#: gnu/packages/pdf.scm:575
 msgid ""
 "The zathura-pdf-poppler plugin adds PDF support to zathura\n"
 "by using the poppler rendering engine."
 msgstr ""
 
-#: gnu/packages/pdf.scm:546
+#: gnu/packages/pdf.scm:631
 msgid "Lightweight keyboard-driven PDF viewer"
 msgstr ""
 
-#: gnu/packages/pdf.scm:547
+#: gnu/packages/pdf.scm:632
 msgid ""
 "Zathura is a customizable document viewer.  It provides a\n"
 "minimalistic interface and an interface that mainly focuses on keyboard\n"
 "interaction."
 msgstr ""
 
-#: gnu/packages/pdf.scm:590
+#: gnu/packages/pdf.scm:675
 msgid "Tools to work with the PDF file format"
 msgstr "Herramientas para trabajar con el formato de fichero PDF"
 
-#: gnu/packages/pdf.scm:592
+#: gnu/packages/pdf.scm:677
 msgid ""
 "PoDoFo is a C++ library and set of command-line tools to work with the\n"
 "PDF file format.  It can parse PDF files and load them into memory, and makes\n"
@@ -11276,11 +16000,11 @@ msgid ""
 "extracting content or merging files."
 msgstr ""
 
-#: gnu/packages/pdf.scm:647
+#: gnu/packages/pdf.scm:732
 msgid "Lightweight PDF viewer and toolkit"
 msgstr ""
 
-#: gnu/packages/pdf.scm:649
+#: gnu/packages/pdf.scm:734
 msgid ""
 "MuPDF is a C library that implements a PDF and XPS parsing and\n"
 "rendering engine.  It is used primarily to render pages into bitmaps,\n"
@@ -11292,11 +16016,11 @@ msgid ""
 "@command{pdfclean}, and examining the file structure @command{pdfshow}."
 msgstr ""
 
-#: gnu/packages/pdf.scm:708
+#: gnu/packages/pdf.scm:781
 msgid "Command-line tools and library for transforming PDF files"
 msgstr ""
 
-#: gnu/packages/pdf.scm:710
+#: gnu/packages/pdf.scm:783
 msgid ""
 "QPDF is a command-line program that does structural, content-preserving\n"
 "transformations on PDF files.  It could have been called something like\n"
@@ -11305,32 +16029,72 @@ msgid ""
 "program capable of converting PDF into other formats."
 msgstr ""
 
-#: gnu/packages/pdf.scm:742
+#: gnu/packages/pdf.scm:815
 msgid "Notetaking using a stylus"
 msgstr "Anotación utilizando un estilo"
 
-#: gnu/packages/pdf.scm:744
+#: gnu/packages/pdf.scm:817
 msgid ""
 "Xournal is an application for notetaking, sketching, keeping a journal\n"
 "using a stylus."
 msgstr ""
 
-#: gnu/packages/pdf.scm:768
+#: gnu/packages/pdf.scm:876
+msgid "Handwriting notetaking software with PDF annotation support"
+msgstr ""
+
+#: gnu/packages/pdf.scm:877
+msgid ""
+"Xournal++ is a hand note taking software written in\n"
+"C++ with the target of flexibility, functionality and speed.  Stroke\n"
+"recognizer and other parts are based on Xournal code.\n"
+"\n"
+"Xournal++ features:\n"
+"\n"
+"@itemize\n"
+"@item Support for Pen pressure, e.g., Wacom Tablet\n"
+"@item Support for annotating PDFs\n"
+"@item Fill shape functionality\n"
+"@item PDF Export (with and without paper style)\n"
+"@item PNG Export (with and without transparent background)\n"
+"@item Map different tools / colors etc. to stylus buttons /\n"
+"mouse buttons\n"
+"@item Sidebar with Page Previews with advanced page sorting, PDF\n"
+"Bookmarks and Layers (can be individually hidden, editing layer can be\n"
+"selected)\n"
+"@item enhanced support for image insertion\n"
+"@item Eraser with multiple configurations\n"
+"@item LaTeX support\n"
+"@item bug reporting, autosave, and auto backup tools\n"
+"@item Customizeable toolbar, with multiple configurations, e.g., to\n"
+"optimize toolbar for portrait / landscape\n"
+"@item Page Template definitions\n"
+"@item Shape drawing (line, arrow, circle, rectangle)\n"
+"@item Shape resizing and rotation\n"
+"@item Rotation snapping every 45 degrees\n"
+"@item Rect snapping to grid\n"
+"@item Audio recording and playback alongside with handwritten notes\n"
+"@item Multi Language Support, Like English, German, Italian...\n"
+"@item Plugins using LUA Scripting\n"
+"@end itemize"
+msgstr ""
+
+#: gnu/packages/pdf.scm:955
 msgid "Python library for generating PDFs and graphics"
 msgstr ""
 
-#: gnu/packages/pdf.scm:769
+#: gnu/packages/pdf.scm:956
 msgid ""
 "This is the ReportLab PDF Toolkit.  It allows rapid creation\n"
 "of rich PDF documents, and also creation of charts in a variety of bitmap and\n"
 "vector formats."
 msgstr ""
 
-#: gnu/packages/pdf.scm:822
+#: gnu/packages/pdf.scm:1009
 msgid "PDF presentation tool with visual effects"
 msgstr "Herramienta de presentación PDF con efectos visuales"
 
-#: gnu/packages/pdf.scm:824
+#: gnu/packages/pdf.scm:1011
 msgid ""
 "Impressive is a tool to display PDF files that provides visual effects\n"
 "such as smooth alpha-blended slide transitions.  It provides additional tools\n"
@@ -11338,31 +16102,31 @@ msgid ""
 "the PDF pages."
 msgstr ""
 
-#: gnu/packages/pdf.scm:873
+#: gnu/packages/pdf.scm:1060
 msgid "Framebuffer and drm-based image viewer"
 msgstr ""
 
-#: gnu/packages/pdf.scm:875
+#: gnu/packages/pdf.scm:1062
 msgid ""
 "fbida contains a few applications for viewing and editing images on\n"
 "the framebuffer."
 msgstr ""
 
-#: gnu/packages/pdf.scm:900
+#: gnu/packages/pdf.scm:1087
 msgid "PDF to SVG converter"
 msgstr "Conversor PDF a SVG"
 
-#: gnu/packages/pdf.scm:901
+#: gnu/packages/pdf.scm:1088
 msgid ""
 "@command{pdf2svg} is a simple command-line PDF to SVG\n"
 "converter using the Poppler and Cairo libraries."
 msgstr ""
 
-#: gnu/packages/pdf.scm:932 gnu/packages/pdf.scm:969
+#: gnu/packages/pdf.scm:1119 gnu/packages/pdf.scm:1156
 msgid "Pure Python PDF toolkit"
 msgstr ""
 
-#: gnu/packages/pdf.scm:933
+#: gnu/packages/pdf.scm:1120
 msgid ""
 "PyPDF2 is a pure Python PDF library capable of:\n"
 "\n"
@@ -11382,7 +16146,7 @@ msgid ""
 "manage or manipulate PDFs."
 msgstr ""
 
-#: gnu/packages/pdf.scm:970
+#: gnu/packages/pdf.scm:1157
 msgid ""
 "PyPDF2 is a pure Python PDF toolkit.\n"
 "\n"
@@ -11390,14 +16154,27 @@ msgid ""
 "python-pypdf2 instead."
 msgstr ""
 
-#: gnu/packages/pdf.scm:994
+#: gnu/packages/pdf.scm:1198
+msgid "Merge, split and re-arrange pages from PDF documents"
+msgstr ""
+
+#: gnu/packages/pdf.scm:1200
+msgid ""
+"PDF Arranger is a small application which allows one to merge or split\n"
+"PDF documents and rotate, crop and rearrange their pages using an interactive\n"
+"and intuitive graphical interface.\n"
+"\n"
+"PDF Arranger was formerly known as PDF-Shuffler."
+msgstr ""
+
+#: gnu/packages/pdf.scm:1223
 msgid "Scale and tile PDF images/pages to print on multiple pages"
 msgstr ""
 
-#: gnu/packages/pdf.scm:995
+#: gnu/packages/pdf.scm:1224
 msgid ""
 "@command{pdfposter} can be used to create a large poster by\n"
-"building it from multple pages and/or printing it on large media.  It expects\n"
+"building it from multiple pages and/or printing it on large media.  It expects\n"
 "as input a PDF file, normally printing on a single page.  The output is again\n"
 "a PDF file, maybe containing multiple pages together building the poster.  The\n"
 "input page will be scaled to obtain the desired size.\n"
@@ -11407,11 +16184,11 @@ msgid ""
 "PDF.  Indeed @command{pdfposter} was inspired by @command{poster}."
 msgstr ""
 
-#: gnu/packages/pdf.scm:1026
+#: gnu/packages/pdf.scm:1255
 msgid "Command-line utility to search text in PDF files"
 msgstr "Utilidad de línea de mandato para buscar texto en ficheros PDF"
 
-#: gnu/packages/pdf.scm:1028
+#: gnu/packages/pdf.scm:1257
 msgid ""
 "Pdfgrep searches in pdf files for strings matching a regular expression.\n"
 "Support some GNU grep options as file name output, page number output,\n"
@@ -11419,11 +16196,11 @@ msgid ""
 "multiple files."
 msgstr ""
 
-#: gnu/packages/pdf.scm:1062
+#: gnu/packages/pdf.scm:1290
 msgid "Presenter console with multi-monitor support for PDF files"
 msgstr ""
 
-#: gnu/packages/pdf.scm:1064
+#: gnu/packages/pdf.scm:1292
 msgid ""
 "pdfpc is a presentation viewer application which uses multi-monitor\n"
 "output to provide meta information to the speaker during the presentation.  It\n"
@@ -11433,17 +16210,56 @@ msgid ""
 "presentation.  The input files processed by pdfpc are PDF documents."
 msgstr ""
 
-#: gnu/packages/pdf.scm:1109
+#: gnu/packages/pdf.scm:1318
 #, fuzzy
-#| msgid "DVI to PostScript drivers"
 msgid "Pango to PostScript converter"
 msgstr "Controladores DVI a PostScript"
 
-#: gnu/packages/pdf.scm:1111
+#: gnu/packages/pdf.scm:1320
 msgid ""
 "Paps reads a UTF-8 encoded file and generates a PostScript language\n"
-"rendering of the file.  The rendering is done by creating outline curves\n"
-"through the Pango @code{ft2} backend."
+"rendering of the file through the Pango Cairo back end."
+msgstr ""
+
+#: gnu/packages/pdf.scm:1350
+#, fuzzy
+msgid "PDF manipulation tool"
+msgstr "Fecha del rutinas de manipulación"
+
+#: gnu/packages/pdf.scm:1351
+msgid ""
+"Stapler is a pure Python alternative to PDFtk, a tool for\n"
+"manipulating PDF documents from the command line.  It supports\n"
+"\n"
+"@itemize\n"
+"@item cherry-picking pages and concatenating them into a new file\n"
+"@item splitting a PDF document into single pages each in its own file\n"
+"@item merging PDF documents with their pages interleaved\n"
+"@item displaying metadata in a PDF document\n"
+"@item displaying the mapping between logical and physical page numbers\n"
+"@end itemize"
+msgstr ""
+
+#: gnu/packages/pdf.scm:1423
+msgid "Document factory for creating PDF files from HTML"
+msgstr ""
+
+#: gnu/packages/pdf.scm:1424
+msgid ""
+"WeasyPrint helps web developers to create PDF documents.  It\n"
+"turns simple HTML pages into gorgeous statistical reports, invoices, tickets,\n"
+"etc.\n"
+"\n"
+"From a technical point of view, WeasyPrint is a visual rendering engine for\n"
+"HTML and CSS that can export to PDF and PNG.  It aims to support web standards\n"
+"for printing.\n"
+"\n"
+"It is based on various libraries but not on a full rendering engine like\n"
+"WebKit or Gecko.  The CSS layout engine is written in Python, designed for\n"
+"pagination, and meant to be easy to hack on.  Weasyprint can also be used as a\n"
+"python library.\n"
+"\n"
+"Keywords: html2pdf, htmltopdf"
 msgstr ""
 
 #: gnu/packages/pem.scm:41
@@ -11459,11 +16275,11 @@ msgid ""
 "feature."
 msgstr ""
 
-#: gnu/packages/perl.scm:158
+#: gnu/packages/perl.scm:260
 msgid "Implementation of the Perl programming language"
 msgstr "Implementación del lenguaje de programación Perl"
 
-#: gnu/packages/perl.scm:160
+#: gnu/packages/perl.scm:262
 msgid ""
 "Perl is a general-purpose programming language originally developed for\n"
 "text manipulation and now used for a wide range of tasks including system\n"
@@ -11471,21 +16287,21 @@ msgid ""
 "more."
 msgstr ""
 
-#: gnu/packages/perl.scm:181
+#: gnu/packages/perl.scm:283
 msgid "Module for merging hierarchies using the C3 algorithm"
 msgstr ""
 
-#: gnu/packages/perl.scm:182
+#: gnu/packages/perl.scm:284
 msgid ""
 "This module implements the C3 algorithm, which aims to\n"
 "provide a sane method resolution order under multiple inheritance."
 msgstr ""
 
-#: gnu/packages/perl.scm:200
+#: gnu/packages/perl.scm:302
 msgid "Compute differences between two files or lists"
 msgstr ""
 
-#: gnu/packages/perl.scm:201
+#: gnu/packages/perl.scm:303
 msgid ""
 "This is a module for computing the difference between two\n"
 "files, two strings, or any other two lists of things.  It uses an intelligent\n"
@@ -11494,11 +16310,11 @@ msgid ""
 "differences."
 msgstr ""
 
-#: gnu/packages/perl.scm:223
+#: gnu/packages/perl.scm:325
 msgid "Use shorter versions of class names"
 msgstr ""
 
-#: gnu/packages/perl.scm:224
+#: gnu/packages/perl.scm:326
 msgid ""
 "The alias module loads the class you specify and exports\n"
 "into your namespace a subroutine that returns the class name.  You can\n"
@@ -11506,11 +16322,24 @@ msgid ""
 "implicitly."
 msgstr ""
 
-#: gnu/packages/perl.scm:246
+#: gnu/packages/perl.scm:381
+#, fuzzy
+msgid "Get, build and use SDL libraries"
+msgstr "Herramienta para compilar bibliotecas C"
+
+#: gnu/packages/perl.scm:383
+msgid ""
+"Alien::SDL can be used to detect and get configuration settings from an\n"
+"installed SDL and related libraries.  Based on your platform it offers the\n"
+"possibility to download and install prebuilt binaries or to build SDL & co.@:\n"
+"from source codes."
+msgstr ""
+
+#: gnu/packages/perl.scm:405
 msgid "Transparently use Moose or Mouse modules"
 msgstr ""
 
-#: gnu/packages/perl.scm:248
+#: gnu/packages/perl.scm:407
 msgid ""
 "This module facilitates using @code{Moose} or @code{Mouse} modules\n"
 "without changing the code.  By default, Mouse will be provided to libraries,\n"
@@ -11519,31 +16348,31 @@ msgid ""
 "variable ANY_MOOSE to be Moose or Mouse."
 msgstr ""
 
-#: gnu/packages/perl.scm:271
+#: gnu/packages/perl.scm:430
 msgid "Configuration files and command line parsing"
 msgstr "Ficheros de configuración e interpretando mandatos de línea"
 
-#: gnu/packages/perl.scm:272
+#: gnu/packages/perl.scm:431
 msgid ""
 "AppConfig is a bundle of Perl5 modules for reading\n"
 "configuration files and parsing command line arguments."
 msgstr ""
 
-#: gnu/packages/perl.scm:292
+#: gnu/packages/perl.scm:451
 msgid "Small utils for array manipulation"
 msgstr ""
 
-#: gnu/packages/perl.scm:293
+#: gnu/packages/perl.scm:452
 msgid ""
 "@code{Array::Utils} is a small pure-perl module containing\n"
 "list manipulation routines."
 msgstr ""
 
-#: gnu/packages/perl.scm:314
+#: gnu/packages/perl.scm:473
 msgid "Allow C/XS libraries to interrupt perl asynchronously"
 msgstr "Permite bibliotecas C/XS para interrumpir perl asíncronamente"
 
-#: gnu/packages/perl.scm:316
+#: gnu/packages/perl.scm:475
 msgid ""
 "@code{Async::Interrupt} implements a single feature only of interest\n"
 "to advanced perl modules, namely asynchronous interruptions (think \"UNIX\n"
@@ -11561,11 +16390,60 @@ msgid ""
 "sometimes even without using a single syscall."
 msgstr ""
 
-#: gnu/packages/perl.scm:346
+#: gnu/packages/perl.scm:505
+msgid "Assorted general utility attributes"
+msgstr ""
+
+#: gnu/packages/perl.scm:506
+msgid ""
+"This package provides various utility functions.  When used\n"
+"without argument, this module provides four universally accessible attributes\n"
+"of general interest as follows:\n"
+"@itemize\n"
+"@item Abstract\n"
+"@item Alias\n"
+"@item Memoize\n"
+"@item Method\n"
+"@item SigHandler\n"
+"@end itemize"
+msgstr ""
+
+#: gnu/packages/perl.scm:541
+msgid "DEC VMS password hashing"
+msgstr ""
+
+#: gnu/packages/perl.scm:542
+msgid ""
+"@code{Authen::DecHpwd} implements the\n"
+"SYS$HASH_PASSWORD password hashing function from VMS (also known as\n"
+"LGI$HPWD) and some associated VMS username and password handling\n"
+"functions.  The password hashing function is implemented in XS with a\n"
+"pure Perl backup version for systems that cannot handle XS."
+msgstr ""
+
+#: gnu/packages/perl.scm:579
+msgid "Hashed passwords/passphrases as objects"
+msgstr ""
+
+#: gnu/packages/perl.scm:580
+msgid ""
+"@code{Authen-Passphrase} is the base class for a\n"
+"system of objects that encapsulate passphrases.  An object of this\n"
+"type is a passphrase recogniser; its job is to recognise whether an\n"
+"offered passphrase is the right one.  For security such passphrase\n"
+"recognisers usually do not themselves know the passphrase they are\n"
+"looking for; they can merely recognise it when they see it.  There are\n"
+"many schemes in use to achieve this effect and the intent of this\n"
+"class is to provide a consistent interface to them all.  In addition\n"
+"to the base class, this module also contains implementations of\n"
+"several specific passphrase schemes."
+msgstr ""
+
+#: gnu/packages/perl.scm:606
 msgid "Lexically disable autovivification"
 msgstr "Léxicamente desactiva autovivificación"
 
-#: gnu/packages/perl.scm:347
+#: gnu/packages/perl.scm:607
 msgid ""
 "When an undefined variable is dereferenced, it gets silently\n"
 "upgraded to an array or hash reference (depending of the type of the\n"
@@ -11579,31 +16457,19 @@ msgid ""
 "error when it would have happened."
 msgstr ""
 
-#: gnu/packages/perl.scm:380
+#: gnu/packages/perl.scm:640
 msgid "Disables bareword filehandles"
 msgstr ""
 
-#: gnu/packages/perl.scm:381
+#: gnu/packages/perl.scm:641
 msgid "This module disables bareword filehandles."
 msgstr ""
 
-#: gnu/packages/perl.scm:397 gnu/packages/perl.scm:6979
-msgid "Establish an ISA relationship with base classes at compile time"
-msgstr ""
-
-#: gnu/packages/perl.scm:398
-msgid ""
-"Allows you to both load one or more modules, while setting\n"
-"up inheritance from those modules at the same time.  Unless you are using the\n"
-"fields pragma, consider this module discouraged in favor of the lighter-weight\n"
-"parent."
-msgstr ""
-
-#: gnu/packages/perl.scm:418
+#: gnu/packages/perl.scm:661
 msgid "Open a browser in a given URL"
 msgstr "Abre un explorador dentro de una URL dada"
 
-#: gnu/packages/perl.scm:419
+#: gnu/packages/perl.scm:662
 msgid ""
 "The functions exported by this module allow you to open URLs\n"
 "in the user's browser.  A set of known commands per OS-name is tested for\n"
@@ -11611,29 +16477,29 @@ msgid ""
 "all known commands are checked."
 msgstr ""
 
-#: gnu/packages/perl.scm:444
+#: gnu/packages/perl.scm:687
 msgid "Execute code after a scope finished compilation"
 msgstr ""
 
-#: gnu/packages/perl.scm:445
+#: gnu/packages/perl.scm:688
 msgid ""
 "This module allows you to execute code when perl finished\n"
 "compiling the surrounding scope."
 msgstr ""
 
-#: gnu/packages/perl.scm:466
+#: gnu/packages/perl.scm:709
 msgid "Wrap OP check callbacks"
 msgstr ""
 
-#: gnu/packages/perl.scm:467
+#: gnu/packages/perl.scm:710
 msgid "This module allows you to wrap OP check callbacks."
 msgstr ""
 
-#: gnu/packages/perl.scm:483
+#: gnu/packages/perl.scm:726
 msgid "Lists of reserved barewords and symbol names"
 msgstr ""
 
-#: gnu/packages/perl.scm:484
+#: gnu/packages/perl.scm:727
 msgid ""
 "@code{B::Keywords} supplies several arrays of exportable\n"
 "keywords: @code{@@Scalars, @@Arrays, @@Hashes, @@Filehandles, @@Symbols,\n"
@@ -11641,11 +16507,11 @@ msgid ""
 "@@ExporterSymbols}."
 msgstr ""
 
-#: gnu/packages/perl.scm:507
+#: gnu/packages/perl.scm:750
 msgid "Benchmarking with statistical confidence"
 msgstr "Medición con confianza estadísticas"
 
-#: gnu/packages/perl.scm:509
+#: gnu/packages/perl.scm:752
 msgid ""
 "The Benchmark::Timer class allows you to time portions of code\n"
 "conveniently, as well as benchmark code by allowing timings of repeated\n"
@@ -11654,11 +16520,11 @@ msgid ""
 "but don't want to go all out and profile your code."
 msgstr ""
 
-#: gnu/packages/perl.scm:533
+#: gnu/packages/perl.scm:776
 msgid "Bit vector library"
 msgstr "Biblioteca vectorial bit"
 
-#: gnu/packages/perl.scm:534
+#: gnu/packages/perl.scm:777
 msgid ""
 "Bit::Vector is an efficient C library which allows you to\n"
 "handle bit vectors, sets (of integers), \"big integer arithmetic\" and boolean\n"
@@ -11668,62 +16534,62 @@ msgid ""
 "library can nevertheless be used stand-alone, without Perl."
 msgstr ""
 
-#: gnu/packages/perl.scm:555
+#: gnu/packages/perl.scm:798
 msgid "Boolean support for Perl"
 msgstr "Apoyo booleano para Perl"
 
-#: gnu/packages/perl.scm:556
+#: gnu/packages/perl.scm:799
 msgid ""
 "This module provides basic Boolean support, by defining two\n"
 "special objects: true and false."
 msgstr ""
 
-#: gnu/packages/perl.scm:574
+#: gnu/packages/perl.scm:817
 msgid "Data files for Business::ISBN"
 msgstr "Datos de fichero para  Business::ISBN"
 
-#: gnu/packages/perl.scm:575
+#: gnu/packages/perl.scm:818
 msgid ""
 "This package provides a data pack for @code{Business::ISBN}.\n"
 "These data are generated from the RangeMessage.xml file provided by the ISBN\n"
 "Agency."
 msgstr ""
 
-#: gnu/packages/perl.scm:597
+#: gnu/packages/perl.scm:840
 msgid "Work with International Standard Book Numbers"
 msgstr ""
 
-#: gnu/packages/perl.scm:598
+#: gnu/packages/perl.scm:841
 msgid ""
 "This modules provides tools to deal with International\n"
 "Standard Book Numbers, including ISBN-10 and ISBN-13."
 msgstr ""
 
-#: gnu/packages/perl.scm:616
+#: gnu/packages/perl.scm:859
 msgid "Work with International Standard Serial Numbers"
 msgstr ""
 
-#: gnu/packages/perl.scm:617
+#: gnu/packages/perl.scm:860
 msgid ""
 "This modules provides tools to deal with International\n"
 "Standard Serial Numbers."
 msgstr ""
 
-#: gnu/packages/perl.scm:636
+#: gnu/packages/perl.scm:879
 msgid "Work with International Standard Music Numbers"
 msgstr ""
 
-#: gnu/packages/perl.scm:637
+#: gnu/packages/perl.scm:880
 msgid ""
 "This modules provides tools to deal with International\n"
 "Standard Music Numbers."
 msgstr ""
 
-#: gnu/packages/perl.scm:658
+#: gnu/packages/perl.scm:901
 msgid "Cache interface for Perl"
 msgstr "Caché de interfaz para Perl"
 
-#: gnu/packages/perl.scm:659
+#: gnu/packages/perl.scm:902
 msgid ""
 "The Cache modules are designed to assist a developer in\n"
 "persisting data for a specified period of time.  Often these modules are used\n"
@@ -11734,11 +16600,11 @@ msgid ""
 "easy to use abstraction of the file system or shared memory."
 msgstr ""
 
-#: gnu/packages/perl.scm:681
+#: gnu/packages/perl.scm:924
 msgid "Shared memory interprocess cache via mmap"
 msgstr ""
 
-#: gnu/packages/perl.scm:682
+#: gnu/packages/perl.scm:925
 msgid ""
 "A shared memory cache through an mmap'ed file.  It's core is\n"
 "written in C for performance.  It uses fcntl locking to ensure multiple\n"
@@ -11746,11 +16612,11 @@ msgid ""
 "algorithm to keep the most used entries in the cache."
 msgstr ""
 
-#: gnu/packages/perl.scm:703
+#: gnu/packages/perl.scm:946
 msgid "Capture STDOUT and STDERR from Perl, XS or external programs"
 msgstr ""
 
-#: gnu/packages/perl.scm:705
+#: gnu/packages/perl.scm:948
 msgid ""
 "Capture::Tiny provides a simple, portable way to capture almost anything\n"
 "sent to STDOUT or STDERR, regardless of whether it comes from Perl, from XS\n"
@@ -11758,21 +16624,21 @@ msgid ""
 "is captured while being passed through to the original file handles."
 msgstr ""
 
-#: gnu/packages/perl.scm:724
+#: gnu/packages/perl.scm:967
 msgid "Check compatibility with the installed perl version"
 msgstr ""
 
-#: gnu/packages/perl.scm:726
+#: gnu/packages/perl.scm:969
 msgid ""
 "This module is used by Schmorp's modules during configuration stage\n"
 "to test the installed perl for compatibility with his modules."
 msgstr ""
 
-#: gnu/packages/perl.scm:744
+#: gnu/packages/perl.scm:987
 msgid "Alternative warn and die for modules"
 msgstr ""
 
-#: gnu/packages/perl.scm:745
+#: gnu/packages/perl.scm:988
 msgid ""
 "The @code{Carp} routines are useful in your own modules\n"
 "because they act like @code{die()} or @code{warn()}, but with a message\n"
@@ -11784,42 +16650,42 @@ msgid ""
 "but it is a good educated guess."
 msgstr ""
 
-#: gnu/packages/perl.scm:770
+#: gnu/packages/perl.scm:1013
 msgid "Warns and dies noisily with stack backtraces/"
 msgstr ""
 
-#: gnu/packages/perl.scm:771
+#: gnu/packages/perl.scm:1014
 msgid ""
 "This module is meant as a debugging aid.  It can be used to\n"
 "make a script complain loudly with stack backtraces when @code{warn()}-ing or\n"
 "@code{die()}ing."
 msgstr ""
 
-#: gnu/packages/perl.scm:790
+#: gnu/packages/perl.scm:1033
 msgid "Executable comments for Perl"
 msgstr "Comentarios ejecutable para Perl"
 
-#: gnu/packages/perl.scm:791
+#: gnu/packages/perl.scm:1034
 msgid ""
 "Carp::Assert is intended for a purpose like the ANSI C\n"
 "library assert.h."
 msgstr ""
 
-#: gnu/packages/perl.scm:813
+#: gnu/packages/perl.scm:1055
 msgid "Convenience wrappers around Carp::Assert"
 msgstr ""
 
-#: gnu/packages/perl.scm:814
+#: gnu/packages/perl.scm:1056
 msgid ""
 "Carp::Assert::More is a set of handy assertion functions for\n"
 "Perl."
 msgstr ""
 
-#: gnu/packages/perl.scm:834
+#: gnu/packages/perl.scm:1075
 msgid "Report errors from a \"clan\" of modules"
 msgstr ""
 
-#: gnu/packages/perl.scm:835
+#: gnu/packages/perl.scm:1076
 msgid ""
 "This module allows errors from a clan (or family) of modules\n"
 "to appear to originate from the caller of the clan.  This is necessary in\n"
@@ -11827,29 +16693,39 @@ msgid ""
 "the Carp.pm module doesn't help."
 msgstr ""
 
-#: gnu/packages/perl.scm:855
+#: gnu/packages/perl.scm:1096
 msgid "Read the CDDB entry for an audio CD in your drive"
 msgstr ""
 
-#: gnu/packages/perl.scm:856
+#: gnu/packages/perl.scm:1097
 msgid "This module can retrieve information from the CDDB."
 msgstr ""
 
-#: gnu/packages/perl.scm:878
+#: gnu/packages/perl.scm:1190
+msgid "Generation of circularly composited renditions"
+msgstr ""
+
+#: gnu/packages/perl.scm:1192
+msgid ""
+"Circos is a program for the generation of publication-quality, circularly\n"
+"composited renditions of genomic data and related annotations."
+msgstr ""
+
+#: gnu/packages/perl.scm:1212
 msgid "Automated accessor generation"
 msgstr "Generación accesor automático"
 
-#: gnu/packages/perl.scm:879
+#: gnu/packages/perl.scm:1213
 msgid ""
 "This module automagically generates accessors/mutators for\n"
 "your class."
 msgstr ""
 
-#: gnu/packages/perl.scm:901
+#: gnu/packages/perl.scm:1235
 msgid "Faster, but less expandable, chained accessors"
 msgstr ""
 
-#: gnu/packages/perl.scm:902
+#: gnu/packages/perl.scm:1236
 msgid ""
 "A chained accessor is one that always returns the object\n"
 "when called with parameters (to set), and the value of the field when called\n"
@@ -11861,52 +16737,52 @@ msgstr ""
 "llamó sin ningún argumento.  Este módulo subclase Class::Accessor en orden de\n"
 "proporcionar el mismo interfaz mk_accesors."
 
-#: gnu/packages/perl.scm:928
+#: gnu/packages/perl.scm:1262
 msgid "Build groups of accessors"
 msgstr "Compilar grupos de accesorios"
 
-#: gnu/packages/perl.scm:929
+#: gnu/packages/perl.scm:1263
 msgid ""
 "This class lets you build groups of accessors that will call\n"
 "different getters and setters."
 msgstr ""
 
-#: gnu/packages/perl.scm:948
+#: gnu/packages/perl.scm:1282
 msgid "Pragma to use the C3 method resolution order algorithm"
 msgstr ""
 
-#: gnu/packages/perl.scm:949
+#: gnu/packages/perl.scm:1283
 msgid ""
 "This is pragma to change Perl 5's standard method resolution\n"
 "order from depth-first left-to-right (a.k.a - pre-order) to the more\n"
 "sophisticated C3 method resolution order."
 msgstr ""
 
-#: gnu/packages/perl.scm:973
+#: gnu/packages/perl.scm:1308
 msgid "Drop-in replacement for NEXT"
 msgstr "Soltar sustitución para NEXT"
 
-#: gnu/packages/perl.scm:974
+#: gnu/packages/perl.scm:1309
 msgid ""
 "This module is intended as a drop-in replacement for NEXT,\n"
 "supporting the same interface, but using Class::C3 to do the hard work."
 msgstr ""
 
-#: gnu/packages/perl.scm:998
+#: gnu/packages/perl.scm:1333
 msgid "Load mix-ins or components to your C3-based class"
 msgstr ""
 
-#: gnu/packages/perl.scm:999
+#: gnu/packages/perl.scm:1334
 msgid ""
 "This module will inject base classes to your module using\n"
 "the Class::C3 method resolution order."
 msgstr ""
 
-#: gnu/packages/perl.scm:1017
+#: gnu/packages/perl.scm:1352
 msgid "Inheritable, overridable class data"
 msgstr ""
 
-#: gnu/packages/perl.scm:1018
+#: gnu/packages/perl.scm:1353
 msgid ""
 "Class::Data::Inheritable is for creating accessor/mutators\n"
 "to class data.  That is, if you want to store something about your class as a\n"
@@ -11914,21 +16790,21 @@ msgid ""
 "subclasses and can be overridden."
 msgstr ""
 
-#: gnu/packages/perl.scm:1038
+#: gnu/packages/perl.scm:1373
 msgid "Class for easy date and time manipulation"
 msgstr "Clase para manipulación de fecha y hora fácil"
 
-#: gnu/packages/perl.scm:1039
+#: gnu/packages/perl.scm:1374
 msgid ""
 "This module provides a general-purpose date and datetime\n"
 "type for perl."
 msgstr ""
 
-#: gnu/packages/perl.scm:1056
+#: gnu/packages/perl.scm:1391
 msgid "Base class for error handling"
 msgstr "Clase base para manipulado de error"
 
-#: gnu/packages/perl.scm:1058
+#: gnu/packages/perl.scm:1393
 msgid ""
 "@code{Class::ErrorHandler} provides an error-handling mechanism that is generic\n"
 "enough to be used as the base class for a variety of OO classes.  Subclasses inherit\n"
@@ -11936,29 +16812,29 @@ msgid ""
 "to the calling program."
 msgstr ""
 
-#: gnu/packages/perl.scm:1079
+#: gnu/packages/perl.scm:1414
 msgid "Utility methods for factory classes"
 msgstr "Métodos utilizados para clases factoriales"
 
-#: gnu/packages/perl.scm:1080
+#: gnu/packages/perl.scm:1415
 msgid "This module exports methods useful for factory classes."
 msgstr ""
 
-#: gnu/packages/perl.scm:1097
+#: gnu/packages/perl.scm:1432
 msgid "Get information about a class and its structure"
 msgstr ""
 
-#: gnu/packages/perl.scm:1098
+#: gnu/packages/perl.scm:1433
 msgid ""
 "Class::Inspector allows you to get information about a\n"
 "loaded class."
 msgstr ""
 
-#: gnu/packages/perl.scm:1126
+#: gnu/packages/perl.scm:1461
 msgid "Working (require \"Class::Name\") and more"
 msgstr ""
 
-#: gnu/packages/perl.scm:1127
+#: gnu/packages/perl.scm:1462
 msgid ""
 "\"require EXPR\" only accepts Class/Name.pm style module\n"
 "names, not Class::Name.  For that, this module provides \"load_class\n"
@@ -11968,31 +16844,31 @@ msgstr ""
 "modulares, no Clase::Nombre.  Por eso, este módulo proporciona \n"
 "«load_class 'Clase::Nombre'»."
 
-#: gnu/packages/perl.scm:1151
+#: gnu/packages/perl.scm:1486
 msgid "XS implementation of parts of Class::Load"
 msgstr ""
 
-#: gnu/packages/perl.scm:1152
+#: gnu/packages/perl.scm:1487
 msgid ""
 "This module provides an XS implementation for portions of\n"
 "Class::Load."
 msgstr ""
 
-#: gnu/packages/perl.scm:1171
+#: gnu/packages/perl.scm:1506
 msgid "Create generic methods for OO Perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:1172
+#: gnu/packages/perl.scm:1507
 msgid ""
 "This module solves the problem of having to continually\n"
 "write accessor methods for your objects that perform standard tasks."
 msgstr ""
 
-#: gnu/packages/perl.scm:1193
+#: gnu/packages/perl.scm:1527
 msgid "Moose-like method modifiers"
 msgstr ""
 
-#: gnu/packages/perl.scm:1194
+#: gnu/packages/perl.scm:1528
 msgid ""
 "Class::Method::Modifiers provides three modifiers:\n"
 "@code{before}, @code{around}, and @code{after}.  @code{before} and @code{after}\n"
@@ -12001,42 +16877,54 @@ msgid ""
 "with a hook to easily call that original method."
 msgstr ""
 
-#: gnu/packages/perl.scm:1215
+#: gnu/packages/perl.scm:1556
+msgid "Dynamic class mixing"
+msgstr ""
+
+#: gnu/packages/perl.scm:1557
+msgid ""
+"The @code{mix_class} function provided by this\n"
+"module dynamically generates anonymous classes with specified\n"
+"inheritance.  This is useful where an incomplete class requires use of\n"
+"a mixin in order to become instantiable."
+msgstr ""
+
+#: gnu/packages/perl.scm:1577
 msgid "Implementation of a singleton class for Perl"
 msgstr "Implementación de una clase simple para Perl"
 
-#: gnu/packages/perl.scm:1216
+#: gnu/packages/perl.scm:1578
 msgid ""
 "This module implements a Singleton class from which other\n"
 "classes can be derived.  By itself, the Class::Singleton module does very\n"
 "little other than manage the instantiation of a single object."
 msgstr ""
 
-#: gnu/packages/perl.scm:1235
+#: gnu/packages/perl.scm:1597
 msgid "Minimalist class construction"
 msgstr "Construcción de clase minimalista"
 
-#: gnu/packages/perl.scm:1236
+#: gnu/packages/perl.scm:1598
 msgid ""
 "This module offers a minimalist class construction kit.  It\n"
 "uses no non-core modules for any recent Perl."
 msgstr ""
 
-#: gnu/packages/perl.scm:1256
+#: gnu/packages/perl.scm:1619
 msgid "Unload a class"
 msgstr "Descarga una clase"
 
-#: gnu/packages/perl.scm:1257
+#: gnu/packages/perl.scm:1620
 msgid ""
 "Class:Unload unloads a given class by clearing out its\n"
 "symbol table and removing it from %INC."
 msgstr ""
 
-#: gnu/packages/perl.scm:1275
+#: gnu/packages/perl.scm:1638
 msgid "Generate fast XS accessors without runtime compilation"
 msgstr ""
 
-#: gnu/packages/perl.scm:1276
+#: gnu/packages/perl.scm:1639
 msgid ""
 "Class::XSAccessor implements fast read, write, and\n"
 "read/write accessors in XS.  Additionally, it can provide predicates such as\n"
@@ -12046,18 +16934,29 @@ msgid ""
 "arrays for their internal representation."
 msgstr ""
 
-#: gnu/packages/perl.scm:1296 gnu/packages/perl.scm:1318
+#: gnu/packages/perl.scm:1659 gnu/packages/perl.scm:1707
 msgid "Recursively copy Perl datatypes"
 msgstr "Copiar recursivamente tipos de datos Perl"
 
-#: gnu/packages/perl.scm:1298
+#: gnu/packages/perl.scm:1661
 msgid ""
 "This module provides a clone() method which makes recursive copies of\n"
 "nested hash, array, scalar and reference types, including tied variables and\n"
 "objects."
 msgstr ""
 
-#: gnu/packages/perl.scm:1319
+#: gnu/packages/perl.scm:1687
+msgid "Choose appropriate Perl @code{clone} utility"
+msgstr ""
+
+#: gnu/packages/perl.scm:1688
+msgid ""
+"This @code{Clone::Choose} module checks several different\n"
+"modules which provide a @code{clone()} function and selects an appropriate\n"
+"one."
+msgstr ""
+
+#: gnu/packages/perl.scm:1708
 msgid ""
 "This module provides a general-purpose @code{clone} function\n"
 "to make deep copies of Perl data structures.  It calls itself recursively to\n"
@@ -12065,23 +16964,22 @@ msgid ""
 "and objects."
 msgstr ""
 
-#: gnu/packages/perl.scm:1339
+#: gnu/packages/perl.scm:1728
 msgid "Sane defaults for Perl programs"
 msgstr "Predeterminación Sane para progrmas Perl"
 
-#: gnu/packages/perl.scm:1340
+#: gnu/packages/perl.scm:1729
 msgid ""
 "This module implements some sane defaults for Perl programs,\n"
 "as defined by two typical specimens of Perl coders."
 msgstr ""
 
-#: gnu/packages/perl.scm:1364
+#: gnu/packages/perl.scm:1753
 #, fuzzy
-#| msgid "Perl extension interface for libcurl"
 msgid "Perl extension for libconfig"
 msgstr "Extensión de interfaz Perl para libcurl"
 
-#: gnu/packages/perl.scm:1366
+#: gnu/packages/perl.scm:1755
 msgid ""
 "Conf::Libconfig is a Perl interface to the libconfig configuration file\n"
 "library.  It support scalar, array, and hash data structures just like its C/C++\n"
@@ -12090,32 +16988,54 @@ msgid ""
 "languages."
 msgstr ""
 
-#: gnu/packages/perl.scm:1389
+#: gnu/packages/perl.scm:1775
+msgid "Grammar-based config parser"
+msgstr ""
+
+#: gnu/packages/perl.scm:1777
+msgid ""
+"Config::Grammar is a module to parse configuration files.  The\n"
+"configuration may consist of multiple-level sections with assignments and\n"
+"tabular data."
+msgstr ""
+
+#: gnu/packages/perl.scm:1798
 msgid "Load configuration from different file formats"
 msgstr ""
 
-#: gnu/packages/perl.scm:1390
+#: gnu/packages/perl.scm:1799
 msgid ""
 "Config::Any provides a facility for Perl applications and\n"
 "libraries to load configuration data from multiple different file formats.  It\n"
 "supports XML, YAML, JSON, Apache-style configuration, and Perl code."
 msgstr ""
 
-#: gnu/packages/perl.scm:1411
+#: gnu/packages/perl.scm:1820
+msgid "Package for configuration files outside your Perl script"
+msgstr ""
+
+#: gnu/packages/perl.scm:1821
+msgid ""
+"This package provides a way to have readable configuration\n"
+"files outside your Perl script.  Configurations can be imported, sections\n"
+"can be grouped, and settings can be accessed from a tied hash."
+msgstr ""
+
+#: gnu/packages/perl.scm:1842
 msgid "Module to implement some AutoConf macros in Perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:1412
+#: gnu/packages/perl.scm:1843
 msgid ""
 "Config::AutoConf is intended to provide the same\n"
 "opportunities to Perl developers as GNU Autoconf does for Shell developers."
 msgstr ""
 
-#: gnu/packages/perl.scm:1429
+#: gnu/packages/perl.scm:1860
 msgid "Generic Config Module"
 msgstr "Módulo Configurable Genérico"
 
-#: gnu/packages/perl.scm:1430
+#: gnu/packages/perl.scm:1861
 msgid ""
 "This module opens a config file and parses its contents for\n"
 "you.  The format of config files supported by Config::General is inspired by\n"
@@ -12126,98 +17046,163 @@ msgid ""
 "options."
 msgstr ""
 
-#: gnu/packages/perl.scm:1460
+#: gnu/packages/perl.scm:1891
 #, fuzzy
-#| msgid "Get directories of configuration files"
 msgid "Parse Git style configuration files"
 msgstr "Obtiene directorios de ficheros de configuración"
 
-#: gnu/packages/perl.scm:1462
+#: gnu/packages/perl.scm:1893
 msgid ""
 "This module handles parsing, modifying and creating configuration files\n"
 "of the style used by the Git version control system."
 msgstr ""
 
-#: gnu/packages/perl.scm:1484
+#: gnu/packages/perl.scm:1915
 msgid "Simple .ini-file format reader and writer"
 msgstr ""
 
-#: gnu/packages/perl.scm:1485
+#: gnu/packages/perl.scm:1916
 msgid ""
 "@code{Config::INI} is a module that facilates the reading\n"
 "and writing of @code{.ini}-style configuration files."
 msgstr ""
 
-#: gnu/packages/perl.scm:1506
+#: gnu/packages/perl.scm:1937
 msgid "Preserve context during subroutine call"
 msgstr ""
 
-#: gnu/packages/perl.scm:1507
+#: gnu/packages/perl.scm:1938
 msgid ""
 "This module runs code after a subroutine call, preserving\n"
 "the context the subroutine would have seen if it were the last statement in\n"
 "the caller."
 msgstr ""
 
-#: gnu/packages/perl.scm:1532
+#: gnu/packages/perl.scm:1963
 msgid "Extract data from Macintosh BinHex files"
 msgstr ""
 
-#: gnu/packages/perl.scm:1534
+#: gnu/packages/perl.scm:1965
 msgid ""
 "BinHex is a format for transporting files safely through electronic\n"
-"mail, as short-lined, 7-bit, semi-compressed data streams.  Ths module\n"
+"mail, as short-lined, 7-bit, semi-compressed data streams.  This module\n"
 "provides a means of converting those data streams back into into binary\n"
 "data."
 msgstr ""
 
-#: gnu/packages/perl.scm:1555
+#: gnu/packages/perl.scm:1986
 #, fuzzy
-#| msgid "Read and write OLE storage files"
 msgid "Read and write @file{Changes} files"
 msgstr "Fichero almacén de lectura y escritura OLE"
 
-#: gnu/packages/perl.scm:1557
+#: gnu/packages/perl.scm:1988
 msgid ""
 "@code{CPAN::Changes} helps users programmatically read and write\n"
 "@file{Changes} files that conform to a common specification."
 msgstr ""
 
-#: gnu/packages/perl.scm:1577
+#: gnu/packages/perl.scm:2008
 msgid "Extract the name and version from a distribution filename"
 msgstr ""
 
-#: gnu/packages/perl.scm:1579
+#: gnu/packages/perl.scm:2010
 msgid ""
 "@code{CPAN::DistnameInfo} uses heuristics to extract the distribution\n"
 "name and version from filenames."
 msgstr ""
 
-#: gnu/packages/perl.scm:1599
+#: gnu/packages/perl.scm:2030
 msgid "Verify requirements in a CPAN::Meta object"
 msgstr ""
 
-#: gnu/packages/perl.scm:1600
+#: gnu/packages/perl.scm:2031
 msgid ""
 "This module verifies if requirements described in a\n"
 "CPAN::Meta object are present."
 msgstr ""
 
-#: gnu/packages/perl.scm:1619
+#: gnu/packages/perl.scm:2050
 msgid "JSON::XS for Cpanel"
 msgstr "JSON::XS para Cpanel"
 
-#: gnu/packages/perl.scm:1620 gnu/packages/perl.scm:4627
+#: gnu/packages/perl.scm:2051 gnu/packages/perl.scm:5600
 msgid ""
 "This module converts Perl data structures to JSON and vice\n"
 "versa."
 msgstr ""
 
-#: gnu/packages/perl.scm:1638
+#: gnu/packages/perl.scm:2072
+msgid "Encrypt Data with Cipher Block Chaining Mode"
+msgstr ""
+
+#: gnu/packages/perl.scm:2073
+msgid ""
+"@code{Crypt::CBC} is a Perl-only implementation of\n"
+"the cryptographic Cipher Block Chaining (CBC) mode.  In combination\n"
+"with a block cipher such as @code{Crypt::Rijndael} you can encrypt and\n"
+"decrypt messages of arbitrarily long length.  The encrypted messages\n"
+"are compatible with the encryption format used by SSLeay."
+msgstr ""
+
+#: gnu/packages/perl.scm:2097
+msgid "DES encryption module"
+msgstr ""
+
+#: gnu/packages/perl.scm:2098
+msgid ""
+"@code{Crypt::DES} is an XS-based implementation of\n"
+"the DES cryptography algorithm.  The module implements the\n"
+"@code{Crypt::CBC} interface which has blocksize, keysize, encrypt and\n"
+"decrypt functions."
+msgstr ""
+
+#: gnu/packages/perl.scm:2125
+msgid "The Eksblowfish block cipher"
+msgstr ""
+
+#: gnu/packages/perl.scm:2126
+msgid ""
+"Eksblowfish is a variant of the Blowfish cipher,\n"
+"modified to make the key setup very expensive.  This doesn't make it\n"
+"significantly cryptographically stronger but is intended to hinder\n"
+"brute-force attacks.  Eksblowfish is a parameterised (family-keyed)\n"
+"cipher.  It takes a cost parameter that controls how expensive the key\n"
+"scheduling is.  It also takes a family key, known as the \"salt\".\n"
+"Cost and salt parameters together define a cipher family.  Within each\n"
+"family, the key determines the encryption function.  This distribution\n"
+"also includes an implementation of @code{bcrypt}, the Unix crypt()\n"
+"password hashing algorithm based on Eksblowfish."
+msgstr ""
+
+#: gnu/packages/perl.scm:2158
+msgid "Emulate the MySQL PASSWORD() function"
+msgstr ""
+
+#: gnu/packages/perl.scm:2159
+msgid ""
+"@code{Crypt::MySQL} emulates the MySQL PASSWORD()\n"
+"function.  The module does not depend on an interface to the MySQL\n"
+"database server.  This enables the comparison of encrypted passwords\n"
+"without the need for a real MySQL environment."
+msgstr ""
+
+#: gnu/packages/perl.scm:2182
+msgid "Interoperable MD5-based crypt() functions"
+msgstr ""
+
+#: gnu/packages/perl.scm:2183
+msgid ""
+"@code{Crypt::PasswdMD5} provides various\n"
+"crypt()-compatible interfaces to the MD5-based crypt() function found\n"
+"in various *nixes.  It is based on the implementation found on FreeBSD\n"
+"2.2.[56]-RELEASE."
+msgstr ""
+
+#: gnu/packages/perl.scm:2203
 msgid "Random password generator"
 msgstr "Generador de contraseñas aleatorias"
 
-#: gnu/packages/perl.scm:1639
+#: gnu/packages/perl.scm:2204
 msgid ""
 "Crypt::RandPasswd provides three functions that can be used\n"
 "to generate random passwords, constructed from words, letters, or characters.\n"
@@ -12228,40 +17213,72 @@ msgid ""
 "Password Generator\"."
 msgstr ""
 
-#: gnu/packages/perl.scm:1664
+#: gnu/packages/perl.scm:2227
+msgid "Crypt::CBC compliant Rijndael encryption module"
+msgstr ""
+
+#: gnu/packages/perl.scm:2228
+msgid ""
+"This module implements the Rijndael cipher which has\n"
+"been selected as the Advanced Encryption Standard.  The keysize for\n"
+"Rijndael is 32 bytes.  The blocksize is 16 bytes (128 bits).  The\n"
+"supported encryption modes are:\n"
+"\n"
+"@itemize\n"
+"@item @code{MODE_CBC}---Cipher Block Chaining\n"
+"@item @code{MODE_CFB}---Cipher feedback\n"
+"@item @code{MODE_CTR}---Counter mode\n"
+"@item @code{MODE_ECB}---Electronic cookbook mode\n"
+"@item @code{MODE_OFB}---Output feedback\n"
+"@end itemize"
+msgstr ""
+
+#: gnu/packages/perl.scm:2258
 msgid "Perl implementation of the RC4 encryption algorithm"
 msgstr ""
 
-#: gnu/packages/perl.scm:1665
+#: gnu/packages/perl.scm:2259
 msgid "A pure Perl implementation of the RC4 algorithm."
 msgstr "Una implementación Perl pura del algoritmo RC4."
 
-#: gnu/packages/perl.scm:1684
+#: gnu/packages/perl.scm:2277
+msgid "XS interface for a portable traditional crypt function"
+msgstr ""
+
+#: gnu/packages/perl.scm:2278
+msgid ""
+"@code{Crypt::UnixCrypt_XS} implements the DES-based\n"
+"Unix @code{crypt} function.  For those who need to construct\n"
+"non-standard variants of @code{crypt}, the various building blocks\n"
+"used in @code{crypt} are also supplied separately."
+msgstr ""
+
+#: gnu/packages/perl.scm:2301
 msgid "Temporarily change working directory"
 msgstr "Temporalmente modificar directorio de trabajo"
 
-#: gnu/packages/perl.scm:1686
+#: gnu/packages/perl.scm:2303
 msgid ""
 "@code{Cwd::Guard} changes the current directory using a limited scope.\n"
 "It returns to the previous working directory when the object is destroyed."
 msgstr ""
 
-#: gnu/packages/perl.scm:1723
+#: gnu/packages/perl.scm:2340
 msgid "Library for genomic analysis"
 msgstr "Biblioteca para análisis genómico"
 
-#: gnu/packages/perl.scm:1724
+#: gnu/packages/perl.scm:2341
 msgid ""
 "Chaolin Zhang's Perl Library (czplib) contains assorted\n"
 "functions and data structures for processing and analysing genomic and\n"
 "bioinformatics data."
 msgstr ""
 
-#: gnu/packages/perl.scm:1753 gnu/packages/perl.scm:1940
+#: gnu/packages/perl.scm:2370 gnu/packages/perl.scm:2649
 msgid "Base classes wrapping fundamental Perl data types"
 msgstr "Clases base cubriendo tipos de datos fundamentales Perl"
 
-#: gnu/packages/perl.scm:1754
+#: gnu/packages/perl.scm:2371
 msgid ""
 "Collection of classes that wrap fundamental data types that\n"
 "exist in Perl.  These classes and methods as they exist today are an attempt\n"
@@ -12270,45 +17287,77 @@ msgid ""
 "input."
 msgstr ""
 
-#: gnu/packages/perl.scm:1777
+#: gnu/packages/perl.scm:2394
 msgid "Compare Perl data structures"
 msgstr "Compara datos Perl estructurados"
 
-#: gnu/packages/perl.scm:1778
+#: gnu/packages/perl.scm:2395
 msgid ""
 "This module compares arbitrary data structures to see if\n"
 "they are copies of each other."
 msgstr ""
 
-#: gnu/packages/perl.scm:1796
+#: gnu/packages/perl.scm:2423
+#, fuzzy
+msgid "Entropy (randomness) management"
+msgstr "Herramienta gestora de múltiples repositorios"
+
+#: gnu/packages/perl.scm:2424
+msgid ""
+"@code{Data::Entropy} provides modules relating to\n"
+"the generation and use of entropy.  The Data::Entropy::Source class\n"
+"manages the entropy coming from a particular source.  This class acts\n"
+"as a layer over a raw entropy source, which may be a normal I/O handle\n"
+"or a special-purpose class.  The Data::Entropy::RawSource::* classes\n"
+"provide fundamental sources of entropy.  The sources specially\n"
+"supported are an OS-supplied entropy collector, downloads from servers\n"
+"on the Internet, and cryptographic fake entropy.  The\n"
+"Data::Entropy::Algorithms module contains a collection of fundamental\n"
+"algorithms that use entropy.  There are random number generators and\n"
+"functions to shuffle arrays."
+msgstr ""
+
+#: gnu/packages/perl.scm:2456
+msgid "Details of the native integer data type"
+msgstr ""
+
+#: gnu/packages/perl.scm:2457
+msgid ""
+"This module is about the native integer numerical\n"
+"data type.  A native integer is one of the types of datum that can\n"
+"appear in the numeric part of a Perl scalar.  This module supplies\n"
+"constants describing the native integer type.  Both signed and\n"
+"unsigned representations are handled."
+msgstr ""
+
+#: gnu/packages/perl.scm:2478
 msgid "Perl extension for generating unique identifiers"
 msgstr ""
 
-#: gnu/packages/perl.scm:1797
+#: gnu/packages/perl.scm:2479
 msgid ""
 "@code{Data::Uniqid} provides three simple routines for\n"
-"generating unique ids.  These ids are coded with a Base62 systen to make them\n"
+"generating unique ids.  These ids are coded with a Base62 system to make them\n"
 "short and handy (e.g. to use it as part of a URL)."
 msgstr ""
 
-#: gnu/packages/perl.scm:1816
+#: gnu/packages/perl.scm:2498
 msgid "Pretty printing of data structures"
 msgstr "Impresión bonita de estructura de datos"
 
-#: gnu/packages/perl.scm:1817
+#: gnu/packages/perl.scm:2499
 msgid ""
 "This module provide functions that takes a list of values as\n"
 "their argument and produces a string as its result.  The string contains Perl\n"
 "code that, when \"eval\"ed, produces a deep copy of the original arguments."
 msgstr ""
 
-#: gnu/packages/perl.scm:1836
+#: gnu/packages/perl.scm:2518
 #, fuzzy
-#| msgid "Compare Perl data structures"
 msgid "Convert data structures to strings"
 msgstr "Compara datos Perl estructurados"
 
-#: gnu/packages/perl.scm:1837
+#: gnu/packages/perl.scm:2519
 msgid ""
 "Given a list of scalars or reference variables,\n"
 "@code{Data::Dumper} writes out their contents in Perl syntax.  The references\n"
@@ -12316,29 +17365,43 @@ msgid ""
 "statement.  It handles self-referential structures correctly."
 msgstr ""
 
-#: gnu/packages/perl.scm:1857
+#: gnu/packages/perl.scm:2539
 msgid "Concise data dumper"
 msgstr "Volcador de fechas concisas"
 
-#: gnu/packages/perl.scm:1858
+#: gnu/packages/perl.scm:2540
 msgid ""
 "Data::Dumper::Concise provides a dumper with Less\n"
 "indentation and newlines plus sub deparsing."
 msgstr ""
 
-#: gnu/packages/perl.scm:1880
+#: gnu/packages/perl.scm:2563
+msgid "Details of the floating point data type"
+msgstr ""
+
+#: gnu/packages/perl.scm:2564
+msgid ""
+"@code{Data::Float} is about the native floating\n"
+"point numerical data type.  A floating point number is one of the\n"
+"types of datum that can appear in the numeric part of a Perl scalar.\n"
+"This module supplies constants describing the native floating point\n"
+"type, classification functions and functions to manipulate floating\n"
+"point values at a low level."
+msgstr ""
+
+#: gnu/packages/perl.scm:2590
 msgid "Parse and validate simple name/value option pairs"
 msgstr ""
 
-#: gnu/packages/perl.scm:1882
+#: gnu/packages/perl.scm:2592
 msgid "Data::OptList provides a simple syntax for name/value option pairs."
 msgstr ""
 
-#: gnu/packages/perl.scm:1904
+#: gnu/packages/perl.scm:2613
 msgid "Help when paging through sets of results"
 msgstr "Ayuda cuando paginado a través de conjuntos de resultados"
 
-#: gnu/packages/perl.scm:1905
+#: gnu/packages/perl.scm:2614
 msgid ""
 "When searching through large amounts of data, it is often\n"
 "the case that a result set is returned that is larger than we want to display\n"
@@ -12346,7 +17409,7 @@ msgid ""
 "The maths behind this is unfortunately fiddly, hence this module."
 msgstr ""
 
-#: gnu/packages/perl.scm:1942
+#: gnu/packages/perl.scm:2651
 msgid ""
 "@code{Data::Perl} is a container class for the following classes:\n"
 "@itemize\n"
@@ -12360,21 +17423,21 @@ msgid ""
 "@end itemize"
 msgstr ""
 
-#: gnu/packages/perl.scm:1973
+#: gnu/packages/perl.scm:2682
 msgid "Colored pretty-print of Perl data structures and objects"
 msgstr ""
 
-#: gnu/packages/perl.scm:1974
+#: gnu/packages/perl.scm:2683
 msgid ""
 "Display Perl variables and objects on screen, properly\n"
 "formatted (to be inspected by a human)."
 msgstr ""
 
-#: gnu/packages/perl.scm:1997
+#: gnu/packages/perl.scm:2706
 msgid "Conditionally split data into records"
 msgstr ""
 
-#: gnu/packages/perl.scm:1998
+#: gnu/packages/perl.scm:2707
 msgid ""
 "This Perl module allows you to split data into records by\n"
 "not only specifying what you wish to split the data on, but also by specifying\n"
@@ -12383,21 +17446,31 @@ msgid ""
 "like split on newlines unless newlines are embedded in quotes."
 msgstr ""
 
-#: gnu/packages/perl.scm:2026
+#: gnu/packages/perl.scm:2735
 msgid "Read multiple hunks of data out of your DATA section"
 msgstr ""
 
-#: gnu/packages/perl.scm:2027
+#: gnu/packages/perl.scm:2736
 msgid ""
 "This package provides a Perl library to read multiple hunks\n"
 "of data out of your DATA section."
 msgstr ""
 
-#: gnu/packages/perl.scm:2047
+#: gnu/packages/perl.scm:2755
+msgid "Read data from __DATA__"
+msgstr ""
+
+#: gnu/packages/perl.scm:2757
+msgid ""
+"Data::Section::Simple is a simple module to extract data from __DATA__\n"
+"section of the file."
+msgstr ""
+
+#: gnu/packages/perl.scm:2777
 msgid "Structured tags datastructures"
 msgstr "Etiquetas estructuradas de estructura de datos"
 
-#: gnu/packages/perl.scm:2049
+#: gnu/packages/perl.scm:2779
 msgid ""
 "This module is for manipulating data as hierarchical tag/value\n"
 "pairs (Structured TAGs or Simple Tree AGgregates).  These datastructures can\n"
@@ -12405,11 +17478,11 @@ msgid ""
 "Perl."
 msgstr ""
 
-#: gnu/packages/perl.scm:2076
+#: gnu/packages/perl.scm:2806
 msgid "N at a time iteration API"
 msgstr ""
 
-#: gnu/packages/perl.scm:2077
+#: gnu/packages/perl.scm:2807
 msgid ""
 "This module tries to find middle ground between one at a\n"
 "time and all at once processing of data sets.  The purpose of this module is\n"
@@ -12418,21 +17491,21 @@ msgid ""
 "necessary later on."
 msgstr ""
 
-#: gnu/packages/perl.scm:2101
+#: gnu/packages/perl.scm:2831
 msgid "Dynamic generation of nested combinations of variants"
 msgstr ""
 
-#: gnu/packages/perl.scm:2102
+#: gnu/packages/perl.scm:2832
 msgid ""
 "Data::Tumbler - Dynamic generation of nested combinations of\n"
 "variants."
 msgstr ""
 
-#: gnu/packages/perl.scm:2128
+#: gnu/packages/perl.scm:2858
 msgid "Visitor style traversal of Perl data structures"
 msgstr ""
 
-#: gnu/packages/perl.scm:2129
+#: gnu/packages/perl.scm:2859
 msgid ""
 "This module is a simple visitor implementation for Perl\n"
 "values.  It has a main dispatcher method, visit, which takes a single perl\n"
@@ -12442,11 +17515,11 @@ msgid ""
 "structures, and all ref types (hashes, arrays, scalars, code, globs)."
 msgstr ""
 
-#: gnu/packages/perl.scm:2154
+#: gnu/packages/perl.scm:2884
 msgid "Gregorian calendar date calculations"
 msgstr ""
 
-#: gnu/packages/perl.scm:2155
+#: gnu/packages/perl.scm:2885
 msgid ""
 "This package consists of a Perl module for date calculations\n"
 "based on the Gregorian calendar, thereby complying with all relevant norms and\n"
@@ -12454,32 +17527,32 @@ msgid ""
 "applicable)."
 msgstr ""
 
-#: gnu/packages/perl.scm:2179
+#: gnu/packages/perl.scm:2909
 msgid "XS wrapper for Date::Calc"
 msgstr ""
 
-#: gnu/packages/perl.scm:2180
+#: gnu/packages/perl.scm:2910
 msgid ""
 "Date::Calc::XS is an XS wrapper and C library plug-in for\n"
 "Date::Calc."
 msgstr ""
 
-#: gnu/packages/perl.scm:2203
+#: gnu/packages/perl.scm:2932
 msgid "Date manipulation routines"
 msgstr "Fecha del rutinas de manipulación"
 
-#: gnu/packages/perl.scm:2204
+#: gnu/packages/perl.scm:2933
 msgid ""
 "Date::Manip is a series of modules for common date/time\n"
 "operations, such as comparing two times, determining a date a given amount of\n"
 "time from another, or parsing international times."
 msgstr ""
 
-#: gnu/packages/perl.scm:2223
+#: gnu/packages/perl.scm:2952
 msgid "Simple date handling"
 msgstr "Manipular fecha simple"
 
-#: gnu/packages/perl.scm:2224
+#: gnu/packages/perl.scm:2953
 msgid ""
 "Dates are complex enough without times and timezones.  This\n"
 "module may be used to create simple date objects.  It handles validation,\n"
@@ -12487,22 +17560,22 @@ msgid ""
 "hours, minutes, seconds, and time zones."
 msgstr ""
 
-#: gnu/packages/perl.scm:2256
+#: gnu/packages/perl.scm:2984
 msgid "Date and time object for Perl"
 msgstr "Objetos de fecha y hora para Perl"
 
-#: gnu/packages/perl.scm:2257
+#: gnu/packages/perl.scm:2985
 msgid ""
 "DateTime is a class for the representation of date/time\n"
 "combinations.  It represents the Gregorian calendar, extended backwards in\n"
 "time before its creation (in 1582)."
 msgstr ""
 
-#: gnu/packages/perl.scm:2278
+#: gnu/packages/perl.scm:3006
 msgid "Dates in the Julian calendar"
 msgstr "Fechas en el calendario juliano"
 
-#: gnu/packages/perl.scm:2279
+#: gnu/packages/perl.scm:3007
 msgid ""
 "This package is a companion module to @code{DateTime.pm}.\n"
 "It implements the Julian calendar.  It supports everything that\n"
@@ -12510,11 +17583,11 @@ msgid ""
 "precise."
 msgstr ""
 
-#: gnu/packages/perl.scm:2305
+#: gnu/packages/perl.scm:3033
 msgid "DateTime set objects"
 msgstr "Objetos establecen FechaHora"
 
-#: gnu/packages/perl.scm:2306
+#: gnu/packages/perl.scm:3034
 msgid ""
 "The DateTime::Set module provides a date/time sets\n"
 "implementation.  It allows, for example, the generation of groups of dates,\n"
@@ -12522,21 +17595,21 @@ msgid ""
 "within a time range."
 msgstr ""
 
-#: gnu/packages/perl.scm:2329
+#: gnu/packages/perl.scm:3057
 msgid "DateTime rfc2445 recurrences"
 msgstr "Recurrencia FechaHora rfc2445"
 
-#: gnu/packages/perl.scm:2330
+#: gnu/packages/perl.scm:3058
 msgid ""
 "This module provides convenience methods that let you easily\n"
 "create DateTime::Set objects for RFC 2445 style recurrences."
 msgstr ""
 
-#: gnu/packages/perl.scm:2351
+#: gnu/packages/perl.scm:3079
 msgid "DateTime::Set extension for basic recurrences"
 msgstr ""
 
-#: gnu/packages/perl.scm:2352
+#: gnu/packages/perl.scm:3080
 msgid ""
 "This module provides convenience methods that let you easily\n"
 "create DateTime::Set objects for various recurrences, such as \"once a month\"\n"
@@ -12544,11 +17617,11 @@ msgid ""
 "\"every Monday, Wednesday and Thursday at 10:00 AM and 2:00 PM\"."
 msgstr ""
 
-#: gnu/packages/perl.scm:2377
+#: gnu/packages/perl.scm:3105
 msgid "Create DateTime parser classes and objects"
 msgstr ""
 
-#: gnu/packages/perl.scm:2378
+#: gnu/packages/perl.scm:3106
 msgid ""
 "DateTime::Format::Builder creates DateTime parsers.  Many\n"
 "string formats of dates and times are simple and just require a basic regular\n"
@@ -12556,43 +17629,54 @@ msgid ""
 "to do this without writing reams of structural code."
 msgstr ""
 
-#: gnu/packages/perl.scm:2405
-msgid "Parse data/time strings"
-msgstr "Interpreta cadenas textuales de datos/hora"
+#: gnu/packages/perl.scm:3135
+#, fuzzy
+msgid "Parse date and time strings"
+msgstr "Interpreta cadenas textuales de fecha/hora"
 
-#: gnu/packages/perl.scm:2406
+#: gnu/packages/perl.scm:3136
 msgid ""
 "DateTime::Format::Flexible attempts to take any string you\n"
 "give it and parse it into a DateTime object."
 msgstr ""
 
-#: gnu/packages/perl.scm:2432
+#: gnu/packages/perl.scm:3162
 msgid "Parse and format iCal datetime and duration strings"
 msgstr "Interpreta y formatea fecha y hora iCal y cadenas de duración"
 
-#: gnu/packages/perl.scm:2433
+#: gnu/packages/perl.scm:3163
 msgid ""
 "This module understands the ICal date/time and duration\n"
 "formats, as defined in RFC 2445.  It can be used to parse these formats in\n"
 "order to create the appropriate objects."
 msgstr ""
 
-#: gnu/packages/perl.scm:2464
+#: gnu/packages/perl.scm:3191
+msgid "Parse ISO8601 date and time formats"
+msgstr ""
+
+#: gnu/packages/perl.scm:3192
+msgid ""
+"@code{DateTime::Format::ISO8601} is a DateTime\n"
+"extension that parses almost all ISO8601 date and time formats."
+msgstr ""
+
+#: gnu/packages/perl.scm:3222
 msgid "Machine-readable date/time with natural parsing"
 msgstr ""
 
-#: gnu/packages/perl.scm:2465
+#: gnu/packages/perl.scm:3223
 msgid ""
 "DateTime::Format::Natural takes a string with a human\n"
 "readable date/time and creates a machine readable one by applying natural\n"
 "parsing logic."
 msgstr ""
 
-#: gnu/packages/perl.scm:2492
+#: gnu/packages/perl.scm:3249
 msgid "Parse and format strp and strf time patterns"
 msgstr "Interpreta y formatea patrones temporales strp y strf"
 
-#: gnu/packages/perl.scm:2493
+#: gnu/packages/perl.scm:3250
 msgid ""
 "This module implements most of `strptime(3)`, the POSIX\n"
 "function that is the reverse of `strftime(3)`, for `DateTime`.  While\n"
@@ -12600,21 +17684,21 @@ msgid ""
 "takes a string and a pattern and returns the `DateTime` object associated."
 msgstr ""
 
-#: gnu/packages/perl.scm:2526
+#: gnu/packages/perl.scm:3283
 msgid "Localization support for DateTime.pm"
 msgstr "Apoyo a localización para  DateTime.pm"
 
-#: gnu/packages/perl.scm:2527
+#: gnu/packages/perl.scm:3284
 msgid ""
 "The DateTime::Locale modules provide localization data for\n"
 "the DateTime.pm class."
 msgstr ""
 
-#: gnu/packages/perl.scm:2568
+#: gnu/packages/perl.scm:3325
 msgid "Time zone object for Perl"
 msgstr "Objeto de zona horaria para Perl"
 
-#: gnu/packages/perl.scm:2569
+#: gnu/packages/perl.scm:3326
 msgid ""
 "This class is the base class for all time zone objects.  A\n"
 "time zone is represented internally as a set of observances, each of which\n"
@@ -12624,32 +17708,32 @@ msgid ""
 "DateTime::TimeZone methods."
 msgstr ""
 
-#: gnu/packages/perl.scm:2599
+#: gnu/packages/perl.scm:3356
 msgid "Parse date/time strings"
 msgstr "Interpreta cadenas textuales de fecha/hora"
 
-#: gnu/packages/perl.scm:2600
+#: gnu/packages/perl.scm:3357
 msgid ""
 "DateTimeX::Easy uses a variety of DateTime::Format packages\n"
 "to create DateTime objects, with some custom tweaks to smooth out the rough\n"
 "edges (mainly concerning timezone detection and selection)."
 msgstr ""
 
-#: gnu/packages/perl.scm:2621
+#: gnu/packages/perl.scm:3378
 msgid "Convert between DateTime and RFC2822/822 formats"
 msgstr ""
 
-#: gnu/packages/perl.scm:2622
+#: gnu/packages/perl.scm:3379
 msgid ""
 "RFCs 2822 and 822 specify date formats to be used by email.\n"
 "This module parses and emits such dates."
 msgstr ""
 
-#: gnu/packages/perl.scm:2644
+#: gnu/packages/perl.scm:3401
 msgid "Parse and format W3CDTF datetime strings"
 msgstr "Interpreta y rellena cadenas de fecha y hora W3CDTF"
 
-#: gnu/packages/perl.scm:2646
+#: gnu/packages/perl.scm:3403
 msgid ""
 "This module understands the W3CDTF date/time format, an ISO 8601 profile,\n"
 "defined at https://www.w3.org/TR/NOTE-datetime.  This format is the native date\n"
@@ -12657,31 +17741,46 @@ msgid ""
 "the appropriate objects."
 msgstr ""
 
-#: gnu/packages/perl.scm:2668
+#: gnu/packages/perl.scm:3431
+msgid "Custom op checking attached to subroutines"
+msgstr ""
+
+#: gnu/packages/perl.scm:3432
+msgid ""
+"This module makes some new features of the Perl\n"
+"5.14.0 C API available to XS modules running on older versions of\n"
+"Perl.  The features are centred around the function\n"
+"@code{cv_set_call_checker}, which allows XS code to attach a magical\n"
+"annotation to a Perl subroutine, resulting in resolvable calls to that\n"
+"subroutine being mutated at compile time by arbitrary C code.  This\n"
+"module makes @code{cv_set_call_checker} and several supporting\n"
+"functions available."
+msgstr ""
+
+#: gnu/packages/perl.scm:3458
 msgid "Meatier version of caller"
 msgstr "Versión carnosa de llamador"
 
-#: gnu/packages/perl.scm:2669
+#: gnu/packages/perl.scm:3459
 msgid "Devel::Caller provides meatier version of caller."
 msgstr ""
 
-#: gnu/packages/perl.scm:2687
+#: gnu/packages/perl.scm:3477
 msgid "Check that a command is available"
 msgstr "Marcar que una función está disponible"
 
-#: gnu/packages/perl.scm:2688
+#: gnu/packages/perl.scm:3478
 msgid ""
 "Devel::CheckBin is a perl module that checks whether a\n"
 "particular command is available."
 msgstr ""
 
-#: gnu/packages/perl.scm:2708
+#: gnu/packages/perl.scm:3498
 #, fuzzy
-#| msgid "Check that a command is available"
 msgid "Check that a library is available"
 msgstr "Marcar que una función está disponible"
 
-#: gnu/packages/perl.scm:2710
+#: gnu/packages/perl.scm:3500
 msgid ""
 "@code{Devel::CheckLib} is a Perl module that checks whether a particular\n"
 "C library and its headers are available.  You can also check for the presence of\n"
@@ -12689,95 +17788,95 @@ msgid ""
 "particular results."
 msgstr ""
 
-#: gnu/packages/perl.scm:2731
+#: gnu/packages/perl.scm:3521
 msgid "Check compiler availability"
 msgstr "Marcar disponibilidad del compilador"
 
-#: gnu/packages/perl.scm:2732
+#: gnu/packages/perl.scm:3522
 msgid ""
 "@code{Devel::CheckCompiler} is a tiny module to check\n"
 "whether a compiler is available.  It can test for a C99 compiler, or\n"
 "you can tell it to compile a C source file with optional linker flags."
 msgstr ""
 
-#: gnu/packages/perl.scm:2754
+#: gnu/packages/perl.scm:3544
 msgid "Find memory cycles in objects"
 msgstr "Encontrar ciclos de memoria en objetos"
 
-#: gnu/packages/perl.scm:2756
+#: gnu/packages/perl.scm:3546
 msgid ""
 "@code{Devel::Cycle} This is a tool for finding circular references in\n"
 "objects and other types of references.  Because of Perl's reference-count\n"
 "based memory management, circular references will cause memory leaks."
 msgstr ""
 
-#: gnu/packages/perl.scm:2777
+#: gnu/packages/perl.scm:3567
 msgid "Provides equivalent of ${^GLOBAL_PHASE} eq 'DESTRUCT' for older perls"
 msgstr ""
 
-#: gnu/packages/perl.scm:2778
+#: gnu/packages/perl.scm:3568
 msgid ""
 "Devel::GlobalDestruction provides a function returning the\n"
 "equivalent of \"$@{^GLOBAL_PHASE@} eq 'DESTRUCT'\" for older perls."
 msgstr ""
 
-#: gnu/packages/perl.scm:2798
+#: gnu/packages/perl.scm:3588
 msgid "Forces the unavailability of specified Perl modules (for testing)"
 msgstr "Fuerza la indisponibilidad de módulos Perl especificados (para pruebas)"
 
-#: gnu/packages/perl.scm:2799
+#: gnu/packages/perl.scm:3589
 msgid ""
 "Given a list of Perl modules/filenames, this module makes\n"
 "@code{require} and @code{use} statements fail (no matter whether the specified\n"
 "files/modules are installed or not)."
 msgstr ""
 
-#: gnu/packages/perl.scm:2818
+#: gnu/packages/perl.scm:3608
 msgid "Utility for looking for perl objects that are not reclaimed"
 msgstr ""
 
-#: gnu/packages/perl.scm:2820
+#: gnu/packages/perl.scm:3610
 msgid ""
 "This module provides a basic way to discover if a piece of perl code is\n"
 "allocating perl data and not releasing them again."
 msgstr ""
 
-#: gnu/packages/perl.scm:2840
+#: gnu/packages/perl.scm:3630
 msgid "Alias lexical variables"
 msgstr "Variables léxicas alias"
 
-#: gnu/packages/perl.scm:2841
+#: gnu/packages/perl.scm:3631
 msgid ""
 "Devel::LexAlias provides the ability to alias a lexical\n"
 "variable in a subroutines scope to one of your choosing."
 msgstr ""
 
-#: gnu/packages/perl.scm:2865
+#: gnu/packages/perl.scm:3655
 msgid "Introspect overloaded operators"
 msgstr "Introspección de operadores sobrecargados"
 
-#: gnu/packages/perl.scm:2866
+#: gnu/packages/perl.scm:3656
 msgid ""
 "Devel::OverloadInfo returns information about overloaded\n"
 "operators for a given class (or object), including where in the inheritance\n"
 "hierarchy the overloads are declared and where the code implementing it is."
 msgstr ""
 
-#: gnu/packages/perl.scm:2893
+#: gnu/packages/perl.scm:3683
 msgid "Partial dumping of data structures"
 msgstr "Volcado parcial de estructuras de datos"
 
-#: gnu/packages/perl.scm:2894
+#: gnu/packages/perl.scm:3684
 msgid ""
 "This module is a data dumper optimized for logging of\n"
 "arbitrary parameters."
 msgstr ""
 
-#: gnu/packages/perl.scm:2912
+#: gnu/packages/perl.scm:3701
 msgid "Object representing a stack trace"
 msgstr "Objeto representando una traza de pila"
 
-#: gnu/packages/perl.scm:2913
+#: gnu/packages/perl.scm:3702
 msgid ""
 "The Devel::StackTrace module contains two classes,\n"
 "Devel::StackTrace and Devel::StackTrace::Frame.  These objects encapsulate the\n"
@@ -12785,11 +17884,11 @@ msgid ""
 "providing a simple interface to this data."
 msgstr ""
 
-#: gnu/packages/perl.scm:2935
+#: gnu/packages/perl.scm:3724
 msgid "Displays stack trace in HTML"
 msgstr "Enseña trazas de pilas en HTML"
 
-#: gnu/packages/perl.scm:2936
+#: gnu/packages/perl.scm:3725
 msgid ""
 "Devel::StackTrace::AsHTML adds as_html method to\n"
 "Devel::StackTrace which displays the stack trace in beautiful HTML, with code\n"
@@ -12798,29 +17897,54 @@ msgid ""
 "each stack frame."
 msgstr ""
 
-#: gnu/packages/perl.scm:2957
+#: gnu/packages/perl.scm:3746
 msgid "Dump symbol names or the symbol table"
 msgstr "Volcar nombres de símbolos o la distribución simbólica"
 
-#: gnu/packages/perl.scm:2958
+#: gnu/packages/perl.scm:3747
 msgid "Devel::Symdump provides access to the perl symbol table."
 msgstr ""
 
-#: gnu/packages/perl.scm:2975
+#: gnu/packages/perl.scm:3765
+msgid "Generic CRC functions"
+msgstr ""
+
+#: gnu/packages/perl.scm:3766
+msgid ""
+"The @code{Digest::CRC} module calculates CRC sums of\n"
+"all sorts.  It contains wrapper functions with the correct parameters\n"
+"for CRC-CCITT, CRC-16 and CRC-32."
+msgstr ""
+
+#: gnu/packages/perl.scm:3785
 msgid "Keyed-Hashing for Message Authentication"
 msgstr "Hash del Ojo para Mensaje Autenticado"
 
-#: gnu/packages/perl.scm:2976
+#: gnu/packages/perl.scm:3786
 msgid ""
 "The Digest::HMAC module follows the common Digest::\n"
 "interface for the RFC 2104 HMAC mechanism."
 msgstr ""
 
-#: gnu/packages/perl.scm:3002
+#: gnu/packages/perl.scm:3805
+#, fuzzy
+msgid "Interface to the MD4 Algorithm"
+msgstr "Interfaz Perl para algoritmo MD-5"
+
+#: gnu/packages/perl.scm:3806
+msgid ""
+"The @code{Digest::MD4} module allows you to use the\n"
+"RSA Data Security Inc.@: MD4 Message Digest algorithm from within Perl\n"
+"programs.  The algorithm takes as input a message of arbitrary length\n"
+"and produces as output a 128-bit \"fingerprint\" or \"message digest\"\n"
+"of the input.  MD4 is described in RFC 1320."
+msgstr ""
+
+#: gnu/packages/perl.scm:3826
 msgid "Perl interface to the MD-5 algorithm"
 msgstr "Interfaz Perl para algoritmo MD-5"
 
-#: gnu/packages/perl.scm:3004
+#: gnu/packages/perl.scm:3828
 msgid ""
 "The @code{Digest::MD5} module allows you to use the MD5 Message Digest\n"
 "algorithm from within Perl programs.  The algorithm takes as\n"
@@ -12828,61 +17952,73 @@ msgid ""
 "128-bit \"fingerprint\" or \"message digest\" of the input."
 msgstr ""
 
-#: gnu/packages/perl.scm:3022
+#: gnu/packages/perl.scm:3846
 msgid "Perl implementation of the SHA-1 message digest algorithm"
 msgstr ""
 
-#: gnu/packages/perl.scm:3024
+#: gnu/packages/perl.scm:3848
 msgid ""
 "This package provides @code{Digest::SHA1}, an implementation of the NIST\n"
 "SHA-1 message digest algorithm for use by Perl programs."
 msgstr ""
 
-#: gnu/packages/perl.scm:3045
+#: gnu/packages/perl.scm:3869
 msgid "Declare version conflicts for your dist"
 msgstr "Declara conflictos de versiones para su distro"
 
-#: gnu/packages/perl.scm:3046
+#: gnu/packages/perl.scm:3870
 msgid ""
 "This module allows you to specify conflicting versions of\n"
 "modules separately and deal with them after the module is done installing."
 msgstr ""
 
-#: gnu/packages/perl.scm:3066
+#: gnu/packages/perl.scm:3893
+msgid "Deconstructed dynamic C library loading"
+msgstr ""
+
+#: gnu/packages/perl.scm:3894
+msgid ""
+"This module provides a function-based interface to\n"
+"dynamic loading as used by Perl.  Some details of dynamic loading are\n"
+"very platform-dependent, so correct use of these functions requires\n"
+"the programmer to be mindfulof the space of platform variations."
+msgstr ""
+
+#: gnu/packages/perl.scm:3916
 msgid "Detect the encoding of data"
 msgstr "Detecta la codificación de datos"
 
-#: gnu/packages/perl.scm:3067
+#: gnu/packages/perl.scm:3917
 msgid ""
 "This package provides a class @code{Encode::Detect} to detect\n"
 "the encoding of data."
 msgstr ""
 
-#: gnu/packages/perl.scm:3085
+#: gnu/packages/perl.scm:3935
 msgid "ASCII mapping for eucJP encoding"
 msgstr ""
 
-#: gnu/packages/perl.scm:3086
+#: gnu/packages/perl.scm:3936
 msgid ""
 "This package provides an ASCII mapping for the eucJP\n"
 "encoding."
 msgstr ""
 
-#: gnu/packages/perl.scm:3104
+#: gnu/packages/perl.scm:3954
 msgid "JIS X 0212 (aka JIS 2000) encodings"
 msgstr "Codificaciones JIS X 0212 (aka JIS 2000)"
 
-#: gnu/packages/perl.scm:3105
+#: gnu/packages/perl.scm:3955
 msgid ""
 "This package provides encodings for JIS X 0212, which is\n"
 "also known as JIS 2000."
 msgstr ""
 
-#: gnu/packages/perl.scm:3128
+#: gnu/packages/perl.scm:3978
 msgid "Additional Chinese encodings"
 msgstr "Codificación china adicional"
 
-#: gnu/packages/perl.scm:3129
+#: gnu/packages/perl.scm:3979
 msgid ""
 "This Perl module provides Chinese encodings that are not\n"
 "part of Perl by default, including \"BIG5-1984\", \"BIG5-2003\", \"BIG5PLUS\",\n"
@@ -12890,11 +18026,11 @@ msgid ""
 "\"UNISYS\"."
 msgstr ""
 
-#: gnu/packages/perl.scm:3151
+#: gnu/packages/perl.scm:4001
 msgid "Advanced operations on path variables"
 msgstr "Operaciones avanzadas en rutas variables"
 
-#: gnu/packages/perl.scm:3152
+#: gnu/packages/perl.scm:4002
 msgid ""
 "@code{Env::Path} presents an object-oriented interface to\n"
 "path variables, defined as that subclass of environment variables which name\n"
@@ -12902,11 +18038,11 @@ msgid ""
 "separator."
 msgstr ""
 
-#: gnu/packages/perl.scm:3172
+#: gnu/packages/perl.scm:4022
 msgid "OO-ish Error/Exception handling for Perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:3173
+#: gnu/packages/perl.scm:4023
 msgid ""
 "The Error package provides two interfaces.  Firstly Error\n"
 "provides a procedural interface to exception handling.  Secondly Error is a\n"
@@ -12914,11 +18050,11 @@ msgid ""
 "catch, or can simply be recorded."
 msgstr ""
 
-#: gnu/packages/perl.scm:3198
+#: gnu/packages/perl.scm:4048
 msgid "Safely and cleanly create closures via string eval"
 msgstr ""
 
-#: gnu/packages/perl.scm:3199
+#: gnu/packages/perl.scm:4049
 msgid ""
 "String eval is often used for dynamic code generation.  For\n"
 "instance, Moose uses it heavily, to generate inlined versions of accessors and\n"
@@ -12932,32 +18068,32 @@ msgid ""
 "errors are rethrown automatically."
 msgstr ""
 
-#: gnu/packages/perl.scm:3228
+#: gnu/packages/perl.scm:4078
 msgid "Allows you to declare real exception classes in Perl"
 msgstr "Permite a usted declarar excepciones reales de clases en Perl"
 
-#: gnu/packages/perl.scm:3229
+#: gnu/packages/perl.scm:4079
 msgid ""
 "Exception::Class allows you to declare exception hierarchies\n"
 "in your modules in a \"Java-esque\" manner."
 msgstr ""
 
-#: gnu/packages/perl.scm:3245
+#: gnu/packages/perl.scm:4095
 msgid "Lightweight exporting of functions and variables"
 msgstr ""
 
-#: gnu/packages/perl.scm:3247
+#: gnu/packages/perl.scm:4097
 msgid ""
 "Exporter::Lite is an alternative to Exporter, intended to provide a\n"
 "lightweight subset of the most commonly-used functionality.  It supports\n"
 "import(), @@EXPORT and @@EXPORT_OK and not a whole lot else."
 msgstr ""
 
-#: gnu/packages/perl.scm:3266
+#: gnu/packages/perl.scm:4116
 msgid "Exporter with the features of Sub::Exporter but only core dependencies"
 msgstr ""
 
-#: gnu/packages/perl.scm:3267
+#: gnu/packages/perl.scm:4117
 msgid ""
 "Exporter::Tiny supports many of Sub::Exporter's\n"
 "external-facing features including renaming imported functions with the `-as`,\n"
@@ -12966,32 +18102,42 @@ msgid ""
 "only about 40% as many lines of code and with zero non-core dependencies."
 msgstr ""
 
-#: gnu/packages/perl.scm:3290
+#: gnu/packages/perl.scm:4140
 msgid "Build.PL install path logic made easy"
 msgstr ""
 
-#: gnu/packages/perl.scm:3291
+#: gnu/packages/perl.scm:4141
 msgid ""
 "This module tries to make install path resolution as easy as\n"
 "possible."
 msgstr ""
 
-#: gnu/packages/perl.scm:3309
+#: gnu/packages/perl.scm:4159
 msgid "Wrapper for perl's configuration"
 msgstr "Recubridor de configuración de Perl"
 
-#: gnu/packages/perl.scm:3310
+#: gnu/packages/perl.scm:4160
 msgid ""
 "ExtUtils::Config is an abstraction around the %Config hash.\n"
 "By itself it is not a particularly interesting module by any measure, however\n"
 "it ties together a family of modern toolchain modules."
 msgstr ""
 
-#: gnu/packages/perl.scm:3330
+#: gnu/packages/perl.scm:4187
+msgid "Tool for guessing C++ compiler and flags"
+msgstr ""
+
+#: gnu/packages/perl.scm:4188
+msgid ""
+"ExtUtils::CppGuess attempts to guess the C++ compiler that\n"
+"is compatible with the C compiler used to build perl."
+msgstr ""
+
+#: gnu/packages/perl.scm:4207
 msgid "Easily build XS extensions that depend on XS extensions"
 msgstr ""
 
-#: gnu/packages/perl.scm:3332
+#: gnu/packages/perl.scm:4209
 msgid ""
 "This module tries to make it easy to build Perl extensions that use\n"
 "functions and typemaps provided by other perl extensions.  This means that a\n"
@@ -12999,21 +18145,21 @@ msgid ""
 "XS interface besides the perl one."
 msgstr ""
 
-#: gnu/packages/perl.scm:3352
+#: gnu/packages/perl.scm:4229
 msgid "Various portability utilities for module builders"
 msgstr ""
 
-#: gnu/packages/perl.scm:3353
+#: gnu/packages/perl.scm:4230
 msgid ""
 "This module provides various portable helper functions for\n"
 "module building modules."
 msgstr ""
 
-#: gnu/packages/perl.scm:3373
+#: gnu/packages/perl.scm:4250
 msgid "Tool to build C libraries"
 msgstr "Herramienta para compilar bibliotecas C"
 
-#: gnu/packages/perl.scm:3374
+#: gnu/packages/perl.scm:4251
 msgid ""
 "Some Perl modules need to ship C libraries together with\n"
 "their Perl code.  Although there are mechanisms to compile and link (or glue)\n"
@@ -13021,11 +18167,22 @@ msgid ""
 "self-contained C libraries.  This module main goal is to help in that task."
 msgstr ""
 
-#: gnu/packages/perl.scm:3395
+#: gnu/packages/perl.scm:4274
+msgid "Module to convert Perl XS code into C code"
+msgstr ""
+
+#: gnu/packages/perl.scm:4275
+msgid ""
+"The package contains the ExtUtils::ParseXS module to\n"
+"convert Perl XS code into C code, the ExtUtils::Typemaps module to\n"
+"handle Perl/XS typemap files, and their submodules."
+msgstr ""
+
+#: gnu/packages/perl.scm:4295
 msgid "Simplistic interface to pkg-config"
 msgstr ""
 
-#: gnu/packages/perl.scm:3397
+#: gnu/packages/perl.scm:4297
 msgid ""
 "@code{ExtUtils::PkgConfig} is a very simplistic interface to the\n"
 "@command{pkg-config} utility, intended for use in the @file{Makefile.PL}\n"
@@ -13033,21 +18190,41 @@ msgid ""
 "It is really just boilerplate code that you would have written yourself."
 msgstr ""
 
-#: gnu/packages/perl.scm:3429
+#: gnu/packages/perl.scm:4322
+msgid "Set of useful typemaps"
+msgstr ""
+
+#: gnu/packages/perl.scm:4323
+msgid ""
+"The package provides a number of useful typemaps as\n"
+"submodules of ExtUtils::Typemaps."
+msgstr ""
+
+#: gnu/packages/perl.scm:4348
+msgid "XS for C++"
+msgstr ""
+
+#: gnu/packages/perl.scm:4349
+msgid ""
+"This module implements the Perl foreign function\n"
+"interface XS for C++; it is a thin layer over plain XS."
+msgstr ""
+
+#: gnu/packages/perl.scm:4379
 msgid "Watch for changes to files"
 msgstr "Vigile modificaciones a ficheros"
 
-#: gnu/packages/perl.scm:3430
+#: gnu/packages/perl.scm:4380
 msgid ""
 "This module provides a class to monitor a directory for\n"
 "changes made to any file."
 msgstr ""
 
-#: gnu/packages/perl.scm:3451
+#: gnu/packages/perl.scm:4402
 msgid "Get directories of configuration files"
 msgstr "Obtiene directorios de ficheros de configuración"
 
-#: gnu/packages/perl.scm:3452
+#: gnu/packages/perl.scm:4403
 msgid ""
 "This module is a helper for installing, reading and finding\n"
 "configuration file locations.  @code{File::ConfigDir} is a module to help out\n"
@@ -13055,44 +18232,44 @@ msgid ""
 "configuration files from more than one location."
 msgstr ""
 
-#: gnu/packages/perl.scm:3472
+#: gnu/packages/perl.scm:4423
 msgid "Recursively copy files and directories"
 msgstr "Copia recursivamente de ficheros y directorios"
 
-#: gnu/packages/perl.scm:3473
+#: gnu/packages/perl.scm:4424
 msgid ""
 "This module has 3 functions: one to copy files only, one to\n"
 "copy directories only, and one to do either depending on the argument's\n"
 "type."
 msgstr ""
 
-#: gnu/packages/perl.scm:3495
+#: gnu/packages/perl.scm:4446
 msgid "Alternative interface to File::Find"
 msgstr "Interfaz alternativo para Fichero::Encontrar"
 
-#: gnu/packages/perl.scm:3496
+#: gnu/packages/perl.scm:4447
 msgid ""
 "File::Find::Rule is a friendlier interface to File::Find.\n"
 "It allows you to build rules which specify the desired files and\n"
 "directories."
 msgstr ""
 
-#: gnu/packages/perl.scm:3519
+#: gnu/packages/perl.scm:4470
 msgid "Common rules for searching for Perl things"
 msgstr ""
 
-#: gnu/packages/perl.scm:3520
+#: gnu/packages/perl.scm:4471
 msgid ""
 "File::Find::Rule::Perl provides methods for finding various\n"
 "types Perl-related files, or replicating search queries run on a distribution\n"
 "in various parts of the CPAN ecosystem."
 msgstr ""
 
-#: gnu/packages/perl.scm:3541
+#: gnu/packages/perl.scm:4492
 msgid "Matches patterns in a series of files"
 msgstr ""
 
-#: gnu/packages/perl.scm:3542
+#: gnu/packages/perl.scm:4493
 msgid ""
 "@code{File::Grep} provides similar functionality as perl's\n"
 "builtin @code{grep}, @code{map}, and @code{foreach} commands, but iterating\n"
@@ -13100,11 +18277,11 @@ msgid ""
 "provide a quick dropin when such functionality is needed."
 msgstr ""
 
-#: gnu/packages/perl.scm:3565
+#: gnu/packages/perl.scm:4516
 msgid "Find your home and other directories on any platform"
 msgstr ""
 
-#: gnu/packages/perl.scm:3566
+#: gnu/packages/perl.scm:4517
 msgid ""
 "File::HomeDir is a module for locating the directories that\n"
 "are @code{owned} by a user (typically your user) and to solve the various issues\n"
@@ -13112,22 +18289,22 @@ msgid ""
 "platforms."
 msgstr ""
 
-#: gnu/packages/perl.scm:3587
+#: gnu/packages/perl.scm:4538
 msgid "Create or remove directory trees"
 msgstr "Crear o quitar árboles directóricos"
 
-#: gnu/packages/perl.scm:3588
+#: gnu/packages/perl.scm:4539
 msgid ""
 "This module provide a convenient way to create directories\n"
 "of arbitrary depth and to delete an entire directory subtree from the\n"
 "file system."
 msgstr ""
 
-#: gnu/packages/perl.scm:3611
+#: gnu/packages/perl.scm:4562
 msgid "Change directory temporarily for a limited scope"
 msgstr "Temporalmente modificar directorio para un ámbito limitado"
 
-#: gnu/packages/perl.scm:3612
+#: gnu/packages/perl.scm:4563
 msgid ""
 "@code{File::pushd} does a temporary @code{chdir} that is\n"
 "easily and automatically reverted, similar to @code{pushd} in some Unix\n"
@@ -13138,24 +18315,24 @@ msgid ""
 "at the end of the scope."
 msgstr ""
 
-#: gnu/packages/perl.scm:3640
+#: gnu/packages/perl.scm:4591
 msgid ""
 "Perl extension for crawling directory trees and compiling\n"
 "lists of files"
 msgstr ""
 
-#: gnu/packages/perl.scm:3643
+#: gnu/packages/perl.scm:4594
 msgid ""
 "The File::List module crawls the directory tree starting at the\n"
 "provided base directory and can return files (and/or directories if desired)\n"
 "matching a regular expression."
 msgstr ""
 
-#: gnu/packages/perl.scm:3664
+#: gnu/packages/perl.scm:4615
 msgid "Read a file backwards by lines"
 msgstr ""
 
-#: gnu/packages/perl.scm:3665
+#: gnu/packages/perl.scm:4616
 msgid ""
 "This module reads a file backwards line by line. It is\n"
 "simple to use, memory efficient and fast.  It supports both an object and a\n"
@@ -13167,11 +18344,11 @@ msgid ""
 "the input record separator string on a per file basis."
 msgstr ""
 
-#: gnu/packages/perl.scm:3691
+#: gnu/packages/perl.scm:4642
 msgid "Remove files and directories in Perl"
 msgstr "Quita ficheros y directorios en Perl"
 
-#: gnu/packages/perl.scm:3692
+#: gnu/packages/perl.scm:4643
 msgid ""
 "@code{File::Remove::remove} removes files and directories.\n"
 "It acts like @code{/bin/rm}, for the most part.  Although @code{unlink} can be\n"
@@ -13179,11 +18356,11 @@ msgid ""
 "that.  It also accepts wildcards, * and ?, as arguments for file names."
 msgstr ""
 
-#: gnu/packages/perl.scm:3715
+#: gnu/packages/perl.scm:4666
 msgid "Locate per-dist and per-module shared files"
 msgstr ""
 
-#: gnu/packages/perl.scm:3716
+#: gnu/packages/perl.scm:4667
 msgid ""
 "The intent of File::ShareDir is to provide a companion to\n"
 "Class::Inspector and File::HomeDir.  Quite often you want or need your Perl\n"
@@ -13193,106 +18370,106 @@ msgid ""
 "the installation."
 msgstr ""
 
-#: gnu/packages/perl.scm:3737
+#: gnu/packages/perl.scm:4688
 msgid "Locate per-dist shared files"
 msgstr ""
 
-#: gnu/packages/perl.scm:3738
+#: gnu/packages/perl.scm:4689
 msgid ""
 "File::ShareDir::Dist finds share directories for\n"
 "distributions.  It is a companion module to File::ShareDir."
 msgstr ""
 
-#: gnu/packages/perl.scm:3758
+#: gnu/packages/perl.scm:4709
 msgid "Install shared files"
 msgstr "Instalar ficheros compartidos"
 
-#: gnu/packages/perl.scm:3759
+#: gnu/packages/perl.scm:4710
 msgid ""
 "File::ShareDir::Install allows you to install read-only data\n"
 "files from a distribution.  It is a companion module to File::ShareDir, which\n"
 "allows you to locate these files after installation."
 msgstr ""
 
-#: gnu/packages/perl.scm:3777
+#: gnu/packages/perl.scm:4728
 msgid "Reading/Writing/Modifying of complete files"
 msgstr ""
 
-#: gnu/packages/perl.scm:3778
+#: gnu/packages/perl.scm:4729
 msgid ""
 "File::Slurp provides subroutines to read or write entire\n"
 "files with a simple call.  It also has a subroutine for reading the list of\n"
 "file names in a directory."
 msgstr ""
 
-#: gnu/packages/perl.scm:3803
+#: gnu/packages/perl.scm:4754
 msgid "Simple, sane and efficient module to slurp a file"
 msgstr ""
 
-#: gnu/packages/perl.scm:3804
+#: gnu/packages/perl.scm:4755
 msgid ""
 "This module provides functions for fast and correct file\n"
 "slurping and spewing.  All functions are optionally exported."
 msgstr ""
 
-#: gnu/packages/perl.scm:3821
+#: gnu/packages/perl.scm:4772
 msgid "Simple file reader and writer"
 msgstr "Lectura y escritura simple de ficheros"
 
-#: gnu/packages/perl.scm:3823
+#: gnu/packages/perl.scm:4774
 msgid "This module provides functions for fast reading and writing of files."
 msgstr ""
 
-#: gnu/packages/perl.scm:3841
+#: gnu/packages/perl.scm:4790
 msgid "Return name and handle of a temporary file safely"
 msgstr ""
 
-#: gnu/packages/perl.scm:3842
+#: gnu/packages/perl.scm:4791
 msgid ""
 "File::Temp can be used to create and open temporary files in\n"
 "a safe way."
 msgstr ""
 
-#: gnu/packages/perl.scm:3859
+#: gnu/packages/perl.scm:4808
 msgid "Portable implementation of the `which' utility"
 msgstr ""
 
-#: gnu/packages/perl.scm:3861
+#: gnu/packages/perl.scm:4810
 msgid ""
 "File::Which was created to be able to get the paths to executable\n"
 "programs on systems under which the `which' program wasn't implemented in the\n"
 "shell."
 msgstr ""
 
-#: gnu/packages/perl.scm:3883
+#: gnu/packages/perl.scm:4832
 msgid "Extended Unix style glob functionality"
 msgstr ""
 
-#: gnu/packages/perl.scm:3884
+#: gnu/packages/perl.scm:4833
 msgid ""
 "@code{File::Zglob} provides a traditional Unix @code{glob}\n"
 "functionality; it returns a list of file names that match the given pattern.\n"
 "For instance, it supports the @code{**/*.pm} form."
 msgstr ""
 
-#: gnu/packages/perl.scm:3905
+#: gnu/packages/perl.scm:4854
 msgid "Simple and dumb file system watcher"
 msgstr ""
 
-#: gnu/packages/perl.scm:3907
+#: gnu/packages/perl.scm:4856
 msgid ""
-"Filesys::Notify::Simple is a simple but unified interface to get\n"
-"notifications of changes to a given filesystem path.  It utilizes inotify2 on\n"
-"Linux, fsevents on OS X, kqueue on FreeBSD and FindFirstChangeNotification on\n"
-"Windows if they're installed, with a fallback to the full directory scan if\n"
-"they're not available."
+"@code{Filesys::Notify::Simple} is a simple but unified interface to get\n"
+"notifications of changes to a given file system path.  It uses inotify2 on\n"
+"Linux, fsevents on OS X, @code{kqueue} on FreeBSD, and\n"
+"@code{FindFirstChangeNotification} on Windows if they're installed, and falls\n"
+"back to a full directory scan if none of these are available."
 msgstr ""
 
-#: gnu/packages/perl.scm:3928
+#: gnu/packages/perl.scm:4876
 msgid "Module to handle parsing command line options"
 msgstr "Módulo para  manipular opciones de líneas de mandatos interpretandos"
 
-#: gnu/packages/perl.scm:3929
+#: gnu/packages/perl.scm:4877
 msgid ""
 "The @code{Getopt::Long} module implements an extended getopt\n"
 "function called @code{GetOptions()}.  It parses the command line from\n"
@@ -13306,11 +18483,11 @@ msgid ""
 "single-letter approach, is provided but not enabled by default."
 msgstr ""
 
-#: gnu/packages/perl.scm:3963
+#: gnu/packages/perl.scm:4911
 msgid "Getopt::Long, but simpler and more powerful"
 msgstr ""
 
-#: gnu/packages/perl.scm:3964
+#: gnu/packages/perl.scm:4912
 msgid ""
 "Getopt::Long::Descriptive is yet another Getopt library.\n"
 "It's built atop Getopt::Long, and gets a lot of its features, but tries to\n"
@@ -13318,31 +18495,31 @@ msgid ""
 "usage (help) messages, data validation, and a few other useful features."
 msgstr ""
 
-#: gnu/packages/perl.scm:3982
+#: gnu/packages/perl.scm:4930
 msgid "Table-driven argument parsing for Perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:3984
+#: gnu/packages/perl.scm:4932
 msgid ""
 "Getopt::Tabular is a Perl 5 module for table-driven argument parsing,\n"
 "vaguely inspired by John Ousterhout's Tk_ParseArgv."
 msgstr ""
 
-#: gnu/packages/perl.scm:4005
+#: gnu/packages/perl.scm:4953
 msgid "Graph data structures and algorithms"
 msgstr "Estructuras y algoritmos de datos gráficos"
 
-#: gnu/packages/perl.scm:4006
+#: gnu/packages/perl.scm:4954
 msgid ""
 "This is @code{Graph}, a Perl module for dealing with graphs,\n"
 "the abstract data structures."
 msgstr ""
 
-#: gnu/packages/perl.scm:4023
+#: gnu/packages/perl.scm:4971
 msgid "Safe cleanup blocks implemented as guards"
 msgstr ""
 
-#: gnu/packages/perl.scm:4024
+#: gnu/packages/perl.scm:4972
 msgid ""
 "@code{Guard} implements so-called @dfn{guards}.  A guard is\n"
 "something (usually an object) that \"guards\" a resource, ensuring that it is\n"
@@ -13353,11 +18530,11 @@ msgid ""
 "which are tied to the scope exit."
 msgstr ""
 
-#: gnu/packages/perl.scm:4060
+#: gnu/packages/perl.scm:5008
 msgid "Lightweight field hash for inside-out objects"
 msgstr ""
 
-#: gnu/packages/perl.scm:4061
+#: gnu/packages/perl.scm:5009
 msgid ""
 "@code{Hash::FieldHash} provides the field hash mechanism\n"
 "which supports the inside-out technique.  It is an alternative to\n"
@@ -13365,11 +18542,11 @@ msgid ""
 "relic support."
 msgstr ""
 
-#: gnu/packages/perl.scm:4081
+#: gnu/packages/perl.scm:5034
 msgid "Merge arbitrarily deep hashes into a single hash"
 msgstr "Combina arbitrariamente hashes profundos dentro de un hash único"
 
-#: gnu/packages/perl.scm:4082
+#: gnu/packages/perl.scm:5035
 msgid ""
 "Hash::Merge merges two arbitrarily deep hashes into a single\n"
 "hash.  That is, at any level, it will add non-conflicting key-value pairs from\n"
@@ -13379,21 +18556,34 @@ msgid ""
 "merged."
 msgstr ""
 
-#: gnu/packages/perl.scm:4104
+#: gnu/packages/perl.scm:5057
 msgid "Store multiple values per key"
 msgstr ""
 
-#: gnu/packages/perl.scm:4105
+#: gnu/packages/perl.scm:5058
 msgid ""
 "Hash::MultiValue is an object (and a plain hash reference)\n"
 "that may contain multiple values per key, inspired by MultiDict of WebOb."
 msgstr ""
 
-#: gnu/packages/perl.scm:4123
+#: gnu/packages/perl.scm:5076
+msgid "Lexically scoped subroutine wrappers"
+msgstr ""
+
+#: gnu/packages/perl.scm:5078
+msgid ""
+"Hook::LexWrap allows you to install a pre- or post-wrapper (or\n"
+"both) around an existing subroutine.  Unlike other modules that\n"
+"provide this capacity (e.g., Hook::PreAndPost and Hook::WrapSub),\n"
+"Hook::LexWrap implements wrappers in such a way that the standard\n"
+"caller function works correctly within the wrapped subroutine."
+msgstr ""
+
+#: gnu/packages/perl.scm:5099
 msgid "Alternative but compatible interface to modules that export symbols"
 msgstr "Interfaz alternativo pero compatible para módulos que exportan símbolos"
 
-#: gnu/packages/perl.scm:4124
+#: gnu/packages/perl.scm:5100
 msgid ""
 "This module acts as a layer between Exporter and modules which\n"
 "consume exports.  It is feature-compatible with Exporter, plus some much needed\n"
@@ -13403,11 +18593,11 @@ msgid ""
 "variables."
 msgstr ""
 
-#: gnu/packages/perl.scm:4148
+#: gnu/packages/perl.scm:5124
 msgid "Import packages into other packages"
 msgstr "Importar paquetes dentro de otros paquetes"
 
-#: gnu/packages/perl.scm:4149
+#: gnu/packages/perl.scm:5125
 msgid ""
 "Writing exporters is a pain.  Some use Exporter, some use\n"
 "Sub::Exporter, some use Moose::Exporter, some use Exporter::Declare ... and\n"
@@ -13417,32 +18607,31 @@ msgid ""
 "compilation.  Import::Into provides global methods to make this painless."
 msgstr ""
 
-#: gnu/packages/perl.scm:4171
+#: gnu/packages/perl.scm:5147
 msgid "Use modules in inc/ if newer than installed"
 msgstr ""
 
-#: gnu/packages/perl.scm:4172
+#: gnu/packages/perl.scm:5148
 msgid ""
 "The inc::latest module helps bootstrap configure-time\n"
 "dependencies for CPAN distributions.  These dependencies get bundled into the\n"
 "inc directory within a distribution and are used by Makefile.PL or Build.PL."
 msgstr ""
 
-#: gnu/packages/perl.scm:4192
+#: gnu/packages/perl.scm:5167
 msgid "Lexically warn about using the indirect method call syntax"
 msgstr ""
 
-#: gnu/packages/perl.scm:4194
+#: gnu/packages/perl.scm:5169
 msgid "Indirect warns about using the indirect method call syntax."
 msgstr ""
 
-#: gnu/packages/perl.scm:4214
+#: gnu/packages/perl.scm:5189
 #, fuzzy
-#| msgid "Implementation of the Perl programming language"
 msgid "Write Perl subroutines in other programming languages"
 msgstr "Implementación del lenguaje de programación Perl"
 
-#: gnu/packages/perl.scm:4215
+#: gnu/packages/perl.scm:5190
 msgid ""
 "The @code{Inline} module allows you to put source code\n"
 "from other programming languages directly (inline) in a Perl script or\n"
@@ -13450,13 +18639,12 @@ msgid ""
 "for immediate access from Perl."
 msgstr ""
 
-#: gnu/packages/perl.scm:4245
+#: gnu/packages/perl.scm:5220
 #, fuzzy
-#| msgid "Babel support for English"
 msgid "C Language Support for Inline"
 msgstr "Capacidad Babel para inglés"
 
-#: gnu/packages/perl.scm:4246
+#: gnu/packages/perl.scm:5221
 msgid ""
 "The @code{Inline::C} module allows you to write Perl\n"
 "subroutines in C.  Since version 0.30 the @code{Inline} module supports\n"
@@ -13465,11 +18653,11 @@ msgid ""
 "It also goes a bit into Perl C internals."
 msgstr ""
 
-#: gnu/packages/perl.scm:4272
+#: gnu/packages/perl.scm:5247
 msgid "@code{IO::All} to Larry Wall!"
 msgstr ""
 
-#: gnu/packages/perl.scm:4273
+#: gnu/packages/perl.scm:5248
 msgid ""
 "@code{IO::All} combines all of the best Perl IO modules into\n"
 "a single nifty object oriented interface to greatly simplify your everyday\n"
@@ -13477,11 +18665,11 @@ msgid ""
 "@code{IO::All} object.  And that object can do it all!"
 msgstr ""
 
-#: gnu/packages/perl.scm:4295
+#: gnu/packages/perl.scm:5269
 msgid "Capture STDOUT and STDERR from Perl code, subprocesses or XS"
 msgstr ""
 
-#: gnu/packages/perl.scm:4296
+#: gnu/packages/perl.scm:5270
 msgid ""
 "@code{IO::CaptureOutput} provides routines for capturing\n"
 "@code{STDOUT} and @code{STDERR} from perl subroutines, forked system\n"
@@ -13491,74 +18679,74 @@ msgid ""
 "try @code{Capture::Tiny} instead."
 msgstr ""
 
-#: gnu/packages/perl.scm:4317
+#: gnu/packages/perl.scm:5291
 msgid "Utilities for interactive I/O"
 msgstr "Utilidades para E/S interactiva"
 
-#: gnu/packages/perl.scm:4318
+#: gnu/packages/perl.scm:5292
 msgid ""
 "This module provides three utility subroutines that make it\n"
 "easier to develop interactive applications: is_interactive(), interactive(),\n"
 "and busy()."
 msgstr ""
 
-#: gnu/packages/perl.scm:4352
+#: gnu/packages/perl.scm:5325
 msgid "Select a pager and pipe text to it"
 msgstr ""
 
-#: gnu/packages/perl.scm:4354
+#: gnu/packages/perl.scm:5327
 msgid ""
 "@code{IO::Pager} can be used to locate an available pager and use it to\n"
 "display output if a TTY is in use."
 msgstr ""
 
-#: gnu/packages/perl.scm:4372
+#: gnu/packages/perl.scm:5345
 msgid "Emulate file interface for in-core strings"
 msgstr ""
 
-#: gnu/packages/perl.scm:4373
+#: gnu/packages/perl.scm:5346
 msgid ""
 "IO::String is an IO::File (and IO::Handle) compatible class\n"
 "that reads or writes data from in-core strings."
 msgstr ""
 
-#: gnu/packages/perl.scm:4391
+#: gnu/packages/perl.scm:5364
 msgid "IO:: interface for reading/writing an array of lines"
 msgstr ""
 
-#: gnu/packages/perl.scm:4392
+#: gnu/packages/perl.scm:5365
 msgid ""
 "This toolkit primarily provides modules for performing both\n"
 "traditional and object-oriented i/o) on things *other* than normal\n"
 "filehandles; in particular, IO::Scalar, IO::ScalarArray, and IO::Lines."
 msgstr ""
 
-#: gnu/packages/perl.scm:4410
+#: gnu/packages/perl.scm:5383
 msgid "Perl interface to pseudo ttys"
 msgstr "Interfaz Perl para pseudo ttys"
 
-#: gnu/packages/perl.scm:4412
+#: gnu/packages/perl.scm:5385
 msgid ""
 "This package provides the @code{IO::Pty} and @code{IO::Tty} Perl\n"
 "interfaces to pseudo ttys."
 msgstr ""
 
-#: gnu/packages/perl.scm:4429
+#: gnu/packages/perl.scm:5402
 msgid "Run interactive command-line programs"
 msgstr "Ejecución interactiva de programa por línea de mandato"
 
-#: gnu/packages/perl.scm:4430
+#: gnu/packages/perl.scm:5403
 msgid ""
 "@code{IPC::Cmd} allows for the searching and execution of\n"
 "any binary on your system.  It adheres to verbosity settings and is able to\n"
 "run interactively.  It also has an option to capture output/error buffers."
 msgstr ""
 
-#: gnu/packages/perl.scm:4459
+#: gnu/packages/perl.scm:5432
 msgid "Run system() and background procs w/ piping, redirs, ptys"
 msgstr ""
 
-#: gnu/packages/perl.scm:4460
+#: gnu/packages/perl.scm:5433
 msgid ""
 "IPC::Run allows you run and interact with child processes\n"
 "using files, pipes, and pseudo-ttys.  Both system()-style and scripted usages\n"
@@ -13566,11 +18754,11 @@ msgid ""
 "both supported and may be mixed."
 msgstr ""
 
-#: gnu/packages/perl.scm:4478
+#: gnu/packages/perl.scm:5451
 msgid "Run a subprocess with input/output redirection"
 msgstr ""
 
-#: gnu/packages/perl.scm:4480
+#: gnu/packages/perl.scm:5453
 msgid ""
 "The IPC::Run3 module allows you to run a subprocess and redirect stdin,\n"
 "stdout, and/or stderr to files and perl data structures.  It aims to satisfy\n"
@@ -13578,21 +18766,21 @@ msgid ""
 "Perlish API and none of the bloat and rarely used features of IPC::Run."
 msgstr ""
 
-#: gnu/packages/perl.scm:4503
+#: gnu/packages/perl.scm:5476
 msgid "Lightweight interface to shared memory"
 msgstr "Interfaz ligero para memoria compartida"
 
-#: gnu/packages/perl.scm:4504
+#: gnu/packages/perl.scm:5477
 msgid ""
 "IPC::ShareLite provides a simple interface to shared memory,\n"
 "allowing data to be efficiently communicated between processes."
 msgstr ""
 
-#: gnu/packages/perl.scm:4522
+#: gnu/packages/perl.scm:5495
 msgid "Run commands simply, with detailed diagnostics"
 msgstr ""
 
-#: gnu/packages/perl.scm:4523
+#: gnu/packages/perl.scm:5496
 msgid ""
 "Calling Perl's in-built @code{system} function is easy,\n"
 "determining if it was successful is hard.  Let's face it, @code{$?} isn't the\n"
@@ -13603,21 +18791,21 @@ msgid ""
 "commands."
 msgstr ""
 
-#: gnu/packages/perl.scm:4548
+#: gnu/packages/perl.scm:5521
 msgid "JSON encoder/decoder for Perl"
 msgstr "Codificador/decodificador JSON para Perl"
 
-#: gnu/packages/perl.scm:4549
+#: gnu/packages/perl.scm:5522
 msgid ""
 "This module converts Perl data structures to JSON and vice\n"
 "versa using either JSON::XS or JSON::PP."
 msgstr ""
 
-#: gnu/packages/perl.scm:4574
+#: gnu/packages/perl.scm:5547
 msgid "Wrapper for Perl JSON classes"
 msgstr "Recubridor de clases JSON de Perl"
 
-#: gnu/packages/perl.scm:4576
+#: gnu/packages/perl.scm:5549
 msgid ""
 "This module tries to provide a coherent API to bring together the\n"
 "various JSON modules currently on CPAN.  This module will allow you to code to\n"
@@ -13625,11 +18813,11 @@ msgid ""
 "installed."
 msgstr ""
 
-#: gnu/packages/perl.scm:4600
+#: gnu/packages/perl.scm:5573
 msgid "Cpanel::JSON::XS with fallback"
 msgstr "Cpanel::JSON::XS con retroceso"
 
-#: gnu/packages/perl.scm:4601
+#: gnu/packages/perl.scm:5574
 msgid ""
 "This module first checks to see if either Cpanel::JSON::XS\n"
 "or JSON::XS is already loaded, in which case it uses that module.  Otherwise\n"
@@ -13637,23 +18825,33 @@ msgid ""
 "either uses the first module it finds or throws an error."
 msgstr ""
 
-#: gnu/packages/perl.scm:4626
+#: gnu/packages/perl.scm:5599
 msgid "JSON serialising/deserialising for Perl"
 msgstr "Serialización/deserialización de JSON para Perl"
 
-#: gnu/packages/perl.scm:4649
+#: gnu/packages/perl.scm:5622
 msgid "Prevent leakage of lexical hints"
 msgstr ""
 
-#: gnu/packages/perl.scm:4651
+#: gnu/packages/perl.scm:5624
 msgid "Lexical::SealRequireHints prevents leakage of lexical hints"
 msgstr ""
 
-#: gnu/packages/perl.scm:4667
+#: gnu/packages/perl.scm:5647
+msgid "Use other catalog formats in Maketext"
+msgstr ""
+
+#: gnu/packages/perl.scm:5649
+msgid ""
+"This module provides lexicon-handling modules to read from other\n"
+"localization formats, such as Gettext, Msgcat, and so on."
+msgstr ""
+
+#: gnu/packages/perl.scm:5666
 msgid "Bringing loggers and listeners together"
 msgstr ""
 
-#: gnu/packages/perl.scm:4668
+#: gnu/packages/perl.scm:5667
 msgid ""
 "@code{Log::Any} provides a standard log production API for\n"
 "modules.  @code{Log::Any::Adapter} allows applications to choose the mechanism\n"
@@ -13671,32 +18869,32 @@ msgid ""
 "logging mechanism."
 msgstr ""
 
-#: gnu/packages/perl.scm:4704
+#: gnu/packages/perl.scm:5703
 msgid "Log::Any adapter for Log::Log4perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:4705
+#: gnu/packages/perl.scm:5704
 msgid ""
 "@code{Log::Any::Adapter::Log4perl} provides a\n"
 "@code{Log::Any} adapter using @code{Log::Log4perl} for logging."
 msgstr ""
 
-#: gnu/packages/perl.scm:4726
+#: gnu/packages/perl.scm:5725
 msgid "Log4j implementation for Perl"
 msgstr "Implementación Log4j para Perl"
 
-#: gnu/packages/perl.scm:4727
+#: gnu/packages/perl.scm:5726
 msgid ""
 "@code{Log::Log4perl} lets you remote-control and fine-tune\n"
 "the logging behaviour of your system from the outside.  It implements the\n"
 "widely popular (Java-based) Log4j logging package in pure Perl."
 msgstr ""
 
-#: gnu/packages/perl.scm:4747
+#: gnu/packages/perl.scm:5746
 msgid "Log::Report in the lightest form"
 msgstr "Log::Report en formato ligero"
 
-#: gnu/packages/perl.scm:4749
+#: gnu/packages/perl.scm:5748
 msgid ""
 "This module allows libraries to have a dependency to a small module\n"
 "instead of the full Log-Report distribution.  The full power of\n"
@@ -13706,81 +18904,92 @@ msgid ""
 "version."
 msgstr ""
 
-#: gnu/packages/perl.scm:4774
+#: gnu/packages/perl.scm:5773
 msgid "Get messages to users and logs"
 msgstr "Obtiene mensajes para usuarios y boletines"
 
-#: gnu/packages/perl.scm:4776
+#: gnu/packages/perl.scm:5775
 msgid ""
 "@code{Log::Report} combines three tasks which are closely related in\n"
 "one: logging, exceptions, and translations."
 msgstr ""
 
-#: gnu/packages/perl.scm:4804
+#: gnu/packages/perl.scm:5803
 msgid "High-level interface to Uniforum message translation"
 msgstr ""
 
-#: gnu/packages/perl.scm:4805
+#: gnu/packages/perl.scm:5804
 msgid ""
 "This package is an internationalization library for Perl\n"
 "that aims to be compatible with the Uniforum message translations system as\n"
 "implemented for example in GNU gettext."
 msgstr ""
 
-#: gnu/packages/perl.scm:4824
+#: gnu/packages/perl.scm:5824
+msgid "Split text into sentences"
+msgstr ""
+
+#: gnu/packages/perl.scm:5826
+msgid ""
+"The Lingua::EN::Sentence module contains the function get_sentences,\n"
+"which splits text into its constituent sentences, based on a regular\n"
+"expression and a list of abbreviations (built in and given)."
+msgstr ""
+
+#: gnu/packages/perl.scm:5845
 msgid "Transliterate text between writing systems"
 msgstr ""
 
-#: gnu/packages/perl.scm:4825
+#: gnu/packages/perl.scm:5846
 msgid ""
 "@code{Lingua::Translit} can be used to convert text from one\n"
 "writing system to another, based on national or international transliteration\n"
 "tables.  Where possible a reverse transliteration is supported."
 msgstr ""
 
-#: gnu/packages/perl.scm:4849
+#: gnu/packages/perl.scm:5870
 msgid "Combination of List::Util and List::MoreUtils"
 msgstr ""
 
-#: gnu/packages/perl.scm:4850
+#: gnu/packages/perl.scm:5871
 msgid ""
 "This module exports all of the functions that either\n"
 "List::Util or List::MoreUtils defines, with preference to List::Util."
 msgstr ""
 
-#: gnu/packages/perl.scm:4872
+#: gnu/packages/perl.scm:5893
 msgid "Compare elements of two or more lists"
 msgstr ""
 
-#: gnu/packages/perl.scm:4873
+#: gnu/packages/perl.scm:5894
 msgid ""
 "@code{List::Compare} provides a module to perform\n"
 "comparative operations on two or more lists.  Provided operations include\n"
 "intersections, unions, unique elements, complements and many more."
 msgstr ""
 
-#: gnu/packages/perl.scm:4908 gnu/packages/perl.scm:4958
+#: gnu/packages/perl.scm:5929 gnu/packages/perl.scm:5979
 msgid "Provide the stuff missing in List::Util"
 msgstr ""
 
-#: gnu/packages/perl.scm:4909
+#: gnu/packages/perl.scm:5930
 msgid ""
 "List::MoreUtils provides some trivial but commonly needed\n"
 "functionality on lists which is not going to go into List::Util."
 msgstr ""
 
-#: gnu/packages/perl.scm:4931
+#: gnu/packages/perl.scm:5952
 msgid "Provide the stuff missing in List::Util in XS"
 msgstr ""
 
-#: gnu/packages/perl.scm:4932
+#: gnu/packages/perl.scm:5953
 msgid ""
 "@code{List::MoreUtils::XS} provides some trivial but\n"
 "commonly needed functionality on lists which is not going to go into\n"
 "@code{List::Util}."
 msgstr ""
 
-#: gnu/packages/perl.scm:4959
+#: gnu/packages/perl.scm:5980
 msgid ""
 "@code{List::SomeUtils} provides some trivial but commonly\n"
 "needed functionality on lists which is not going to go into @code{List::Util}.\n"
@@ -13792,11 +19001,11 @@ msgid ""
 "portions of this module couldn't be compiled on this machine."
 msgstr ""
 
-#: gnu/packages/perl.scm:4988
+#: gnu/packages/perl.scm:6009
 msgid "Bundle of ancient email modules"
 msgstr ""
 
-#: gnu/packages/perl.scm:4989
+#: gnu/packages/perl.scm:6010
 msgid ""
 "MailTools contains the following modules:\n"
 "@table @asis\n"
@@ -13823,87 +19032,109 @@ msgid ""
 "@end table"
 msgstr ""
 
-#: gnu/packages/perl.scm:5028
+#: gnu/packages/perl.scm:6052
+#, fuzzy
+msgid "Simple platform independent mailer"
+msgstr "Visor de imagen elegante, rápido y simple"
+
+#: gnu/packages/perl.scm:6053
+msgid ""
+"Mail::Sendmail is a pure perl module that provides a\n"
+"simple means to send email from a perl script.  The module only\n"
+"requires Perl5 and a network connection."
+msgstr ""
+
+#: gnu/packages/perl.scm:6072
 msgid "Solution of bezier curves"
 msgstr ""
 
-#: gnu/packages/perl.scm:5029
+#: gnu/packages/perl.scm:6073
 msgid ""
 "This module implements the algorithm for the solution of Bezier\n"
 "curves as presented by Robert D Miller in Graphics Gems V, \"Quick and Simple\n"
 "Bezier Curve Drawing\"."
 msgstr ""
 
-#: gnu/packages/perl.scm:5048
+#: gnu/packages/perl.scm:6092
 #, fuzzy
-#| msgid "Perl date conversion routines"
 msgid "Perl extension for rounding numbers"
 msgstr "Rutinas de conversión de fecha Perl"
 
-#: gnu/packages/perl.scm:5049
+#: gnu/packages/perl.scm:6093
 msgid ""
 "@code{Math::Round} provides functions to round numbers,\n"
 "both positive and negative, in various ways."
 msgstr ""
 
-#: gnu/packages/perl.scm:5067
+#: gnu/packages/perl.scm:6111
+msgid "Basic numeric stats on vectors"
+msgstr ""
+
+#: gnu/packages/perl.scm:6112
+msgid ""
+"This package provides some basic statistics on numerical\n"
+"vectors.  All the subroutines can take a reference to the vector to be\n"
+"operated on."
+msgstr ""
+
+#: gnu/packages/perl.scm:6131
 msgid "Make functions faster by trading space for time"
 msgstr ""
 
-#: gnu/packages/perl.scm:5068
+#: gnu/packages/perl.scm:6132
 msgid ""
 "This package transparently speeds up functions by caching\n"
 "return values, trading space for time."
 msgstr ""
 
-#: gnu/packages/perl.scm:5086
+#: gnu/packages/perl.scm:6150
 msgid "Expiry plug-in for Memoize that adds LRU cache expiration"
 msgstr ""
 
-#: gnu/packages/perl.scm:5087
+#: gnu/packages/perl.scm:6151
 msgid ""
 "This module implements an expiry policy for Memoize that\n"
 "follows LRU semantics, that is, the last n results, where n is specified as\n"
 "the argument to the CACHESIZE parameter, will be cached."
 msgstr ""
 
-#: gnu/packages/perl.scm:5105
+#: gnu/packages/perl.scm:6169
 msgid "Charset information for MIME messages"
 msgstr "Información del conjunto de caracteres en mensajes MIME"
 
-#: gnu/packages/perl.scm:5107
+#: gnu/packages/perl.scm:6171
 msgid ""
 "@code{MIME::Charset} provides information about character sets used for\n"
 "MIME messages on Internet."
 msgstr ""
 
-#: gnu/packages/perl.scm:5134
+#: gnu/packages/perl.scm:6198
 msgid "Tools to manipulate MIME messages"
 msgstr "Herramientas para manipulación de mensajes MIME"
 
-#: gnu/packages/perl.scm:5136
+#: gnu/packages/perl.scm:6200
 msgid ""
 "MIME-tools is a collection of Perl5 MIME:: modules for parsing,\n"
 "decoding, and generating single- or multipart (even nested multipart) MIME\n"
 "messages."
 msgstr ""
 
-#: gnu/packages/perl.scm:5155
+#: gnu/packages/perl.scm:6219
 msgid "Definition of MIME types"
 msgstr "Definición de tipos MIME"
 
-#: gnu/packages/perl.scm:5156
+#: gnu/packages/perl.scm:6220
 msgid ""
 "This module provides a list of known mime-types, combined\n"
 "from various sources.  For instance, it contains all IANA types and the\n"
 "knowledge of Apache."
 msgstr ""
 
-#: gnu/packages/perl.scm:5178
+#: gnu/packages/perl.scm:6242
 msgid "Write your linewise code for handles; this does the rest"
 msgstr ""
 
-#: gnu/packages/perl.scm:5179
+#: gnu/packages/perl.scm:6243
 msgid ""
 "It's boring to deal with opening files for IO, converting\n"
 "strings to handle-like objects, and all that.  With\n"
@@ -13912,21 +19143,21 @@ msgid ""
 "file names are added for you."
 msgstr ""
 
-#: gnu/packages/perl.scm:5204
+#: gnu/packages/perl.scm:6268
 msgid "Enable all of the features of Modern Perl with one import"
 msgstr ""
 
-#: gnu/packages/perl.scm:5205
+#: gnu/packages/perl.scm:6269
 msgid ""
 "@code{Modern::Perl} provides a simple way to enable\n"
 "multiple, by now, standard libraries in a Perl program."
 msgstr ""
 
-#: gnu/packages/perl.scm:5233
+#: gnu/packages/perl.scm:6297
 msgid "Tiny replacement for Module::Build"
 msgstr "Pequeña sustitución para Module::Build"
 
-#: gnu/packages/perl.scm:5234
+#: gnu/packages/perl.scm:6298
 msgid ""
 "Many Perl distributions use a Build.PL file instead of a\n"
 "Makefile.PL file to drive distribution configuration, build, test and\n"
@@ -13936,11 +19167,22 @@ msgid ""
 "has less than 120, yet supports the features needed by most distributions."
 msgstr ""
 
-#: gnu/packages/perl.scm:5262
+#: gnu/packages/perl.scm:6330
+msgid "The module provides an XS++ enhanced flavour of Module::Build"
+msgstr ""
+
+#: gnu/packages/perl.scm:6331
+msgid ""
+"This subclass of Module::Build adds some tools and\n"
+"processes to make it easier to use for wrapping C++ using XS++\n"
+"(ExtUtils::XSpp)."
+msgstr ""
+
+#: gnu/packages/perl.scm:6356
 msgid "Module::Build class for building XS modules"
 msgstr ""
 
-#: gnu/packages/perl.scm:5264
+#: gnu/packages/perl.scm:6358
 msgid ""
 "@code{Module::Build::XSUtil} is subclass of @code{Module::Build}\n"
 "for support building XS modules.\n"
@@ -13964,11 +19206,11 @@ msgid ""
 "@end enumerate"
 msgstr ""
 
-#: gnu/packages/perl.scm:5300
+#: gnu/packages/perl.scm:6394
 msgid "Find and use installed modules in a (sub)category"
 msgstr ""
 
-#: gnu/packages/perl.scm:5301
+#: gnu/packages/perl.scm:6395
 msgid ""
 "Module::Find lets you find and use modules in categories.\n"
 "This can be useful for auto-detecting driver or plugin modules.  You can\n"
@@ -13976,11 +19218,11 @@ msgid ""
 "subcategories."
 msgstr ""
 
-#: gnu/packages/perl.scm:5327
+#: gnu/packages/perl.scm:6421
 msgid "Loads alternate underlying implementations for a module"
 msgstr ""
 
-#: gnu/packages/perl.scm:5328
+#: gnu/packages/perl.scm:6422
 msgid ""
 "This module abstracts out the process of choosing one of\n"
 "several underlying implementations for a module.  This can be used to provide\n"
@@ -13989,11 +19231,11 @@ msgid ""
 "implementations."
 msgstr ""
 
-#: gnu/packages/perl.scm:5366
+#: gnu/packages/perl.scm:6460
 msgid "Standalone, extensible Perl module installer"
 msgstr ""
 
-#: gnu/packages/perl.scm:5367
+#: gnu/packages/perl.scm:6461
 msgid ""
 "Module::Install is a package for writing installers for\n"
 "CPAN (or CPAN-like) distributions that are clean, simple, minimalist, act in a\n"
@@ -14001,11 +19243,11 @@ msgid ""
 "installation version 5.005 or newer."
 msgstr ""
 
-#: gnu/packages/perl.scm:5393
+#: gnu/packages/perl.scm:6487
 msgid "Parse and examine a Perl distribution @file{MANIFEST} file"
 msgstr ""
 
-#: gnu/packages/perl.scm:5395
+#: gnu/packages/perl.scm:6489
 msgid ""
 "@code{Module::Manifest} is a simple utility module created originally for\n"
 "use in @code{Module::Inspector}.\n"
@@ -14015,52 +19257,52 @@ msgid ""
 "@file{MANIFEST.SKIP} file and check that."
 msgstr ""
 
-#: gnu/packages/perl.scm:5418
+#: gnu/packages/perl.scm:6512
 msgid "Give your Perl module the ability to have plugins"
 msgstr ""
 
-#: gnu/packages/perl.scm:5419
+#: gnu/packages/perl.scm:6513
 msgid ""
 "This module provides a simple but extensible way of having\n"
 "@code{plugins} for your Perl module."
 msgstr ""
 
-#: gnu/packages/perl.scm:5438
+#: gnu/packages/perl.scm:6532
 msgid "Perl runtime module handling"
 msgstr ""
 
-#: gnu/packages/perl.scm:5439
+#: gnu/packages/perl.scm:6533
 msgid ""
 "The functions exported by this module deal with runtime\n"
 "handling of Perl modules, which are normally handled at compile time."
 msgstr ""
 
-#: gnu/packages/perl.scm:5462
+#: gnu/packages/perl.scm:6556
 msgid "Provide information on conflicts for Module::Runtime"
 msgstr ""
 
-#: gnu/packages/perl.scm:5463
+#: gnu/packages/perl.scm:6557
 msgid ""
 "This module provides conflicts checking for Module::Runtime,\n"
 "which had a recent release that broke some versions of Moose.  It is called\n"
 "from Moose::Conflicts and moose-outdated."
 msgstr ""
 
-#: gnu/packages/perl.scm:5484
+#: gnu/packages/perl.scm:6578
 msgid "Recursively scan Perl code for dependencies"
 msgstr ""
 
-#: gnu/packages/perl.scm:5485
+#: gnu/packages/perl.scm:6579
 msgid ""
 "Module::ScanDeps is a module to recursively scan Perl\n"
 "programs for dependencies."
 msgstr ""
 
-#: gnu/packages/perl.scm:5505
+#: gnu/packages/perl.scm:6599
 msgid "Module name tools and transformations"
 msgstr "Herramientas de nombre modular y transformaciones"
 
-#: gnu/packages/perl.scm:5506
+#: gnu/packages/perl.scm:6600
 msgid ""
 "This module provides a few useful functions for manipulating\n"
 "module names.  Its main aim is to centralise some of the functions commonly\n"
@@ -14068,11 +19310,11 @@ msgid ""
 "module names to relative paths."
 msgstr ""
 
-#: gnu/packages/perl.scm:5536
+#: gnu/packages/perl.scm:6630
 msgid "Minimalist Object Orientation (with Moose compatibility)"
 msgstr ""
 
-#: gnu/packages/perl.scm:5537
+#: gnu/packages/perl.scm:6631
 msgid ""
 "Moo is an extremely light-weight Object Orientation system.\n"
 "It allows one to concisely define objects and roles with a convenient syntax\n"
@@ -14080,11 +19322,11 @@ msgid ""
 "Moose and is optimised for rapid startup."
 msgstr ""
 
-#: gnu/packages/perl.scm:5644
+#: gnu/packages/perl.scm:6736
 msgid "Postmodern object system for Perl 5"
 msgstr ""
 
-#: gnu/packages/perl.scm:5646
+#: gnu/packages/perl.scm:6738
 msgid ""
 "Moose is a complete object system for Perl 5.  It provides keywords for\n"
 "attribute declaration, object construction, inheritance, and maybe more.  With\n"
@@ -14095,11 +19337,11 @@ msgid ""
 "sentences."
 msgstr ""
 
-#: gnu/packages/perl.scm:5674
+#: gnu/packages/perl.scm:6766
 msgid "Emulate Class::Accessor::Fast behavior using Moose attributes"
 msgstr ""
 
-#: gnu/packages/perl.scm:5675
+#: gnu/packages/perl.scm:6767
 msgid ""
 "This module attempts to emulate the behavior of\n"
 "Class::Accessor::Fast as accurately as possible using the Moose attribute\n"
@@ -14107,21 +19349,21 @@ msgid ""
 "private methods are not."
 msgstr ""
 
-#: gnu/packages/perl.scm:5709
+#: gnu/packages/perl.scm:6801
 msgid "Moose role for processing command line options"
 msgstr ""
 
-#: gnu/packages/perl.scm:5710
+#: gnu/packages/perl.scm:6802
 msgid ""
 "This is a Moose role which provides an alternate constructor\n"
 "for creating objects using parameters passed in from the command line."
 msgstr ""
 
-#: gnu/packages/perl.scm:5731
+#: gnu/packages/perl.scm:6823
 msgid "Mark overload code symbols as methods"
 msgstr ""
 
-#: gnu/packages/perl.scm:5732
+#: gnu/packages/perl.scm:6824
 msgid ""
 "MooseX::MarkAsMethods allows one to easily mark certain\n"
 "functions as Moose methods.  This will allow other packages such as\n"
@@ -14131,21 +19373,21 @@ msgid ""
 "overloads will \"just work\"."
 msgstr ""
 
-#: gnu/packages/perl.scm:5762
+#: gnu/packages/perl.scm:6854
 msgid "Code attribute introspection"
 msgstr "Interprospección código atributado"
 
-#: gnu/packages/perl.scm:5763
+#: gnu/packages/perl.scm:6855
 msgid ""
 "This module allows code attributes of methods to be\n"
 "introspected using Moose meta method objects."
 msgstr ""
 
-#: gnu/packages/perl.scm:5789
+#: gnu/packages/perl.scm:6881
 msgid "Subclassing of non-Moose classes"
 msgstr ""
 
-#: gnu/packages/perl.scm:5790
+#: gnu/packages/perl.scm:6882
 msgid ""
 "MooseX::NonMoose allows for easily subclassing non-Moose\n"
 "classes with Moose, taking care of the details connected with doing this, such\n"
@@ -14154,31 +19396,31 @@ msgid ""
 "BUILD methods are called.  It tries to be as non-intrusive as possible."
 msgstr ""
 
-#: gnu/packages/perl.scm:5818
+#: gnu/packages/perl.scm:6910
 msgid "Extension of Params::Validate using Moose's types"
 msgstr ""
 
-#: gnu/packages/perl.scm:5819
+#: gnu/packages/perl.scm:6911
 msgid ""
 "This module fills a gap in Moose by adding method parameter\n"
 "validation to Moose."
 msgstr ""
 
-#: gnu/packages/perl.scm:5840
+#: gnu/packages/perl.scm:6932
 msgid "Apply roles to a related Perl class"
 msgstr "Aplica oficios a una clase Perl relativa"
 
-#: gnu/packages/perl.scm:5841
+#: gnu/packages/perl.scm:6933
 msgid ""
 "This module applies roles to make a subclass instead of\n"
 "manually setting up a subclass."
 msgstr ""
 
-#: gnu/packages/perl.scm:5867
+#: gnu/packages/perl.scm:6959
 msgid "Moose roles with composition parameters"
 msgstr "Actores alce con composiciones paramétricas"
 
-#: gnu/packages/perl.scm:5868
+#: gnu/packages/perl.scm:6960
 msgid ""
 "Because Moose roles serve many different masters, they\n"
 "usually provide only the least common denominator of functionality.  To\n"
@@ -14188,11 +19430,11 @@ msgid ""
 "Parameterized roles offer a solution to these (and other) kinds of problems."
 msgstr ""
 
-#: gnu/packages/perl.scm:5894
+#: gnu/packages/perl.scm:6986
 msgid "Roles which support overloading"
 msgstr ""
 
-#: gnu/packages/perl.scm:5895
+#: gnu/packages/perl.scm:6987
 msgid ""
 "MooseX::Role::WithOverloading allows you to write a\n"
 "Moose::Role which defines overloaded operators and allows those overload\n"
@@ -14200,11 +19442,11 @@ msgid ""
 "where plain Moose::Roles would lose the overloading."
 msgstr ""
 
-#: gnu/packages/perl.scm:5917
+#: gnu/packages/perl.scm:7009
 msgid "Name your accessors foo() and set_foo()"
 msgstr ""
 
-#: gnu/packages/perl.scm:5918
+#: gnu/packages/perl.scm:7010
 msgid ""
 "This module does not provide any methods.  Simply loading it\n"
 "changes the default naming policy for the loading class so that accessors are\n"
@@ -14212,22 +19454,22 @@ msgid ""
 "accessor, while set methods are prefixed with \"_set_\"."
 msgstr ""
 
-#: gnu/packages/perl.scm:5944
+#: gnu/packages/perl.scm:7036
 msgid "Strict object constructors for Moose"
 msgstr ""
 
-#: gnu/packages/perl.scm:5945
+#: gnu/packages/perl.scm:7037
 msgid ""
 "Simply loading this module makes your constructors\n"
 "\"strict\".  If your constructor is called with an attribute init argument\n"
 "that your class does not declare, then it calls Moose->throw_error()."
 msgstr ""
 
-#: gnu/packages/perl.scm:5973
+#: gnu/packages/perl.scm:7065
 msgid "Trait loading and resolution for Moose"
 msgstr ""
 
-#: gnu/packages/perl.scm:5974
+#: gnu/packages/perl.scm:7066
 msgid ""
 "Adds support on top of MooseX::Traits for class precedence\n"
 "search for traits and some extra attributes."
@@ -14235,61 +19477,61 @@ msgstr ""
 "Añade apoyo en máximo de MooseX::Traits para clases precedente\n"
 "busca tratados y algunos atributos adicionales."
 
-#: gnu/packages/perl.scm:6000
+#: gnu/packages/perl.scm:7092
 msgid "Organise your Moose types in libraries"
 msgstr ""
 
-#: gnu/packages/perl.scm:6001
+#: gnu/packages/perl.scm:7093
 msgid ""
 "This package lets you declare types using short names, but\n"
 "behind the scenes it namespaces all your type declarations, effectively\n"
 "prevent name clashes between packages."
 msgstr ""
 
-#: gnu/packages/perl.scm:6032
+#: gnu/packages/perl.scm:7124
 msgid "DateTime related constraints and coercions for Moose"
 msgstr ""
 
-#: gnu/packages/perl.scm:6033
+#: gnu/packages/perl.scm:7125
 msgid ""
 "This module packages several Moose::Util::TypeConstraints\n"
 "with coercions, designed to work with the DateTime suite of objects."
 msgstr ""
 
-#: gnu/packages/perl.scm:6064
+#: gnu/packages/perl.scm:7156
 msgid "Extensions to MooseX::Types::DateTime"
 msgstr ""
 
-#: gnu/packages/perl.scm:6065
+#: gnu/packages/perl.scm:7157
 msgid ""
 "This module builds on MooseX::Types::DateTime to add\n"
 "additional custom types and coercions.  Since it builds on an existing type,\n"
 "all coercions and constraints are inherited."
 msgstr ""
 
-#: gnu/packages/perl.scm:6093
+#: gnu/packages/perl.scm:7185
 msgid "ClassName type constraints for Moose"
 msgstr ""
 
-#: gnu/packages/perl.scm:6094
+#: gnu/packages/perl.scm:7186
 msgid ""
 "MooseX::Types::LoadableClass provides a ClassName type\n"
 "constraint with coercion to load the class."
 msgstr ""
 
-#: gnu/packages/perl.scm:6120
+#: gnu/packages/perl.scm:7212
 msgid "Using Moo and MooX:: packages the most lazy way"
 msgstr ""
 
-#: gnu/packages/perl.scm:6121
+#: gnu/packages/perl.scm:7213
 msgid "Contains the MooX and MooX::Role packages."
 msgstr ""
 
-#: gnu/packages/perl.scm:6147
+#: gnu/packages/perl.scm:7239
 msgid "Giving an easy Moo style way to make command organized CLI apps"
 msgstr ""
 
-#: gnu/packages/perl.scm:6148
+#: gnu/packages/perl.scm:7240
 msgid ""
 "This package eases the writing of command line utilities,\n"
 "accepting commands and subcommands and so on.  These commands can form a tree,\n"
@@ -14298,11 +19540,11 @@ msgid ""
 "most specific one) is instantiated."
 msgstr ""
 
-#: gnu/packages/perl.scm:6181
+#: gnu/packages/perl.scm:7273
 msgid "Moo eXtension for initializing objects from config file"
 msgstr ""
 
-#: gnu/packages/perl.scm:6182
+#: gnu/packages/perl.scm:7274
 msgid ""
 "This module is intended to easily load initialization values\n"
 "for attributes on object construction from an appropriate config file.  The\n"
@@ -14310,33 +19552,33 @@ msgid ""
 "@code{MooX::ConfigFromFile} ensures that the role is applied."
 msgstr ""
 
-#: gnu/packages/perl.scm:6206
+#: gnu/packages/perl.scm:7298
 msgid "Moo eXtension for @code{File::ConfigDir}"
 msgstr ""
 
-#: gnu/packages/perl.scm:6207
+#: gnu/packages/perl.scm:7299
 msgid ""
 "This module is a helper for easily finding configuration\n"
 "file locations.  This information can be used to find a suitable place for\n"
 "installing configuration files or for finding any piece of settings."
 msgstr ""
 
-#: gnu/packages/perl.scm:6242
+#: gnu/packages/perl.scm:7334
 msgid "NativeTrait-like behavior for Moo"
 msgstr ""
 
-#: gnu/packages/perl.scm:6244
+#: gnu/packages/perl.scm:7336
 msgid ""
 "@code{MooX::HandlesVia} is an extension of Moo's @code{handles}\n"
 "attribute functionality.  It provides a means of proxying functionality from\n"
-"an external class to the given atttribute."
+"an external class to the given attribute."
 msgstr ""
 
-#: gnu/packages/perl.scm:6275
+#: gnu/packages/perl.scm:7364
 msgid "Easily translate Moose code to Moo"
 msgstr ""
 
-#: gnu/packages/perl.scm:6277
+#: gnu/packages/perl.scm:7366
 msgid ""
 "MooX::late does the following:\n"
 "@enumerate\n"
@@ -14350,11 +19592,11 @@ msgid ""
 "@end enumerate"
 msgstr ""
 
-#: gnu/packages/perl.scm:6332
+#: gnu/packages/perl.scm:7421
 msgid "Explicit Options eXtension for Object Class"
 msgstr ""
 
-#: gnu/packages/perl.scm:6333
+#: gnu/packages/perl.scm:7422
 msgid ""
 "Create a command line tool with your Mo, Moo, Moose objects.\n"
 "You have an @code{option} keyword to replace the usual @code{has} to\n"
@@ -14363,32 +19605,43 @@ msgid ""
 "generate a command line tool."
 msgstr ""
 
-#: gnu/packages/perl.scm:6359
+#: gnu/packages/perl.scm:7451
+msgid "Make Moo-based object constructors blow up on unknown attributes"
+msgstr ""
+
+#: gnu/packages/perl.scm:7453
+msgid ""
+"Loading @code{MooX::StrictConstructor} makes your constructors \"strict\".\n"
+"If your constructor is called with an attribute init argument that your class\n"
+"does not declare, then it dies."
+msgstr ""
+
+#: gnu/packages/perl.scm:7477
 msgid "Moosish types and type builder"
 msgstr "Tipos de alce y tipo de constructor"
 
-#: gnu/packages/perl.scm:6360
+#: gnu/packages/perl.scm:7478
 msgid ""
 "MooX::Types::MooseLike provides a possibility to build your\n"
 "own set of Moose-like types.  These custom types can then be used to describe\n"
 "fields in Moo-based classes."
 msgstr ""
 
-#: gnu/packages/perl.scm:6389
+#: gnu/packages/perl.scm:7507
 msgid "Fast Moose-compatible object system for perl5"
 msgstr ""
 
-#: gnu/packages/perl.scm:6391
+#: gnu/packages/perl.scm:7509
 msgid ""
 "Mouse is a @code{Moose} compatible object system that implements a\n"
 "subset of the functionality for reduced startup time."
 msgstr ""
 
-#: gnu/packages/perl.scm:6414
+#: gnu/packages/perl.scm:7532
 msgid "Extend attribute interfaces for Mouse"
 msgstr "Extiende atributo interfaz para Ratón"
 
-#: gnu/packages/perl.scm:6416
+#: gnu/packages/perl.scm:7534
 msgid ""
 "While @code{Mouse} attributes provide a way to name your accessors,\n"
 "readers, writers, clearers and predicates, @code{MouseX::NativeTraits}\n"
@@ -14396,30 +19649,30 @@ msgid ""
 "of data."
 msgstr ""
 
-#: gnu/packages/perl.scm:6436
+#: gnu/packages/perl.scm:7554
 msgid "Mozilla's CA cert bundle in PEM format"
 msgstr ""
 
-#: gnu/packages/perl.scm:6437
+#: gnu/packages/perl.scm:7555
 msgid ""
 "@code{Mozilla::CA} provides a copy of Mozilla's bundle of\n"
 "Certificate Authority certificates in a form that can be consumed by modules\n"
 "and libraries based on OpenSSL."
 msgstr ""
 
-#: gnu/packages/perl.scm:6463
+#: gnu/packages/perl.scm:7581
 msgid "Disable multidimensional array emulation"
 msgstr ""
 
-#: gnu/packages/perl.scm:6465
+#: gnu/packages/perl.scm:7583
 msgid "Multidimensional disables multidimensional array emulation."
 msgstr ""
 
-#: gnu/packages/perl.scm:6482
+#: gnu/packages/perl.scm:7600
 msgid "MRO interface compatibility for Perls < 5.9.5"
 msgstr ""
 
-#: gnu/packages/perl.scm:6483
+#: gnu/packages/perl.scm:7601
 msgid ""
 "The \"mro\" namespace provides several utilities for dealing\n"
 "with method resolution order and method caching in general in Perl 5.9.5 and\n"
@@ -14427,11 +19680,11 @@ msgid ""
 "Perl (back to 5.6.0)."
 msgstr ""
 
-#: gnu/packages/perl.scm:6510
+#: gnu/packages/perl.scm:7627
 msgid "Keep imports out of your namespace"
 msgstr ""
 
-#: gnu/packages/perl.scm:6511
+#: gnu/packages/perl.scm:7628
 msgid ""
 "The namespace::autoclean pragma will remove all imported\n"
 "symbols at the end of the current package's compile cycle.  Functions called\n"
@@ -14442,11 +19695,11 @@ msgid ""
 "anything that looks like a method."
 msgstr ""
 
-#: gnu/packages/perl.scm:6537
+#: gnu/packages/perl.scm:7654
 msgid "Keep imports and functions out of your namespace"
 msgstr ""
 
-#: gnu/packages/perl.scm:6538
+#: gnu/packages/perl.scm:7655
 msgid ""
 "The namespace::clean pragma will remove all previously\n"
 "declared or imported symbols at the end of the current package's compile\n"
@@ -14454,11 +19707,28 @@ msgid ""
 "name, but they won't show up as methods on your class or instances."
 msgstr ""
 
-#: gnu/packages/perl.scm:6558
+#: gnu/packages/perl.scm:7673
+msgid "Object-oriented API to the BGP protocol"
+msgstr ""
+
+#: gnu/packages/perl.scm:7675
+msgid ""
+"This module is an implementation of the BGP-4 inter-domain routing protocol.\n"
+"It encapsulates all of the functionality needed to establish and maintain a\n"
+"BGP peering session and exchange routing update information with the peer.\n"
+"It aims to provide a simple API to the BGP protocol for the purposes of\n"
+"automation, logging, monitoring, testing, and similar tasks using the\n"
+"power and flexibility of perl.  The module does not implement the\n"
+"functionality of a RIB (Routing Information Base) nor does it modify the\n"
+"kernel routing table of the host system.  However, such operations could be\n"
+"implemented using the API provided by the module."
+msgstr ""
+
+#: gnu/packages/perl.scm:7700
 msgid "Non-blocking system DNS resolver"
 msgstr ""
 
-#: gnu/packages/perl.scm:6560
+#: gnu/packages/perl.scm:7702
 msgid ""
 "This class provides several methods for host name resolution.  It is\n"
 "designed to be used with event loops.  Names are resolved by your system's\n"
@@ -14467,11 +19737,11 @@ msgid ""
 "system threads instead of Perl threads."
 msgstr ""
 
-#: gnu/packages/perl.scm:6583
+#: gnu/packages/perl.scm:7725
 msgid "Internationalizing Domain Names in Applications (IDNA)"
 msgstr ""
 
-#: gnu/packages/perl.scm:6585
+#: gnu/packages/perl.scm:7727
 msgid ""
 "Internationalized Domain Names (IDNs) use characters drawn from a large\n"
 "repertoire (Unicode), but IDNA allows the non-ASCII characters to be\n"
@@ -14482,31 +19752,31 @@ msgid ""
 "using whatever IDNA standard is the best choice at the moment."
 msgstr ""
 
-#: gnu/packages/perl.scm:6611
+#: gnu/packages/perl.scm:7753
 msgid "Perl client for Etsy's statsd daemon"
 msgstr "Cliente Perl para estadísticas del demonio Etsys"
 
-#: gnu/packages/perl.scm:6612
+#: gnu/packages/perl.scm:7754
 msgid ""
 "This module implement a UDP client for the statsd statistics\n"
 "collector daemon in use at Etsy.com."
 msgstr ""
 
-#: gnu/packages/perl.scm:6630
+#: gnu/packages/perl.scm:7772
 msgid "Numeric comparisons"
 msgstr "Comparaciones numéricas"
 
-#: gnu/packages/perl.scm:6631
+#: gnu/packages/perl.scm:7773
 msgid ""
 "Number::Compare compiles a simple comparison to an anonymous\n"
 "subroutine, which you can call with a value to be tested against."
 msgstr ""
 
-#: gnu/packages/perl.scm:6649
+#: gnu/packages/perl.scm:7791
 msgid "Convert numbers to strings with pretty formatting"
 msgstr ""
 
-#: gnu/packages/perl.scm:6650
+#: gnu/packages/perl.scm:7792
 msgid ""
 "@code{Number::Format} is a library for formatting numbers.\n"
 "Functions are provided for converting numbers to strings in a variety of ways,\n"
@@ -14517,34 +19787,33 @@ msgid ""
 "the locale information or can be specified by the user."
 msgstr ""
 
-#: gnu/packages/perl.scm:6674
+#: gnu/packages/perl.scm:7816
 #, fuzzy
-#| msgid "Perl extension interface for libcurl"
 msgid "Perl extension defining ranges of numbers"
 msgstr "Extensión de interfaz Perl para libcurl"
 
-#: gnu/packages/perl.scm:6675
+#: gnu/packages/perl.scm:7817
 msgid ""
 "Number::Range is an object-oriented interface to test if a\n"
 "number exists in a given range, and to be able to manipulate the range."
 msgstr ""
 
-#: gnu/packages/perl.scm:6694
+#: gnu/packages/perl.scm:7836
 msgid "Generate cryptographic signatures for objects"
 msgstr ""
 
-#: gnu/packages/perl.scm:6695
+#: gnu/packages/perl.scm:7837
 msgid ""
 "Object::Signature is an abstract base class that you can\n"
 "inherit from in order to allow your objects to generate unique cryptographic\n"
 "signatures."
 msgstr ""
 
-#: gnu/packages/perl.scm:6716
+#: gnu/packages/perl.scm:7858
 msgid "Read and write OLE storage files"
 msgstr "Fichero almacén de lectura y escritura OLE"
 
-#: gnu/packages/perl.scm:6717
+#: gnu/packages/perl.scm:7859
 msgid ""
 "This module allows you to read and write\n"
 "an OLE-Structured file.  @dfn{OLE} (Object Linking and Embedding) is a\n"
@@ -14552,43 +19821,53 @@ msgid ""
 "documents within a single file."
 msgstr ""
 
-#: gnu/packages/perl.scm:6740
+#: gnu/packages/perl.scm:7918
+msgid "Perl bindings to the OpenGL API, GLU, and GLUT/FreeGLUT"
+msgstr ""
+
+#: gnu/packages/perl.scm:7919
+msgid ""
+"The package provides Perl bindings to OpenGL, GLU\n"
+"and FreeGLUT."
+msgstr ""
+
+#: gnu/packages/perl.scm:7940
 msgid "Anonymous packages"
 msgstr "Paquetes anónimos"
 
-#: gnu/packages/perl.scm:6741
+#: gnu/packages/perl.scm:7941
 msgid ""
 "This module allows for anonymous packages that are\n"
 "independent of the main namespace and only available through an object\n"
 "instance, not by name."
 msgstr ""
 
-#: gnu/packages/perl.scm:6769
+#: gnu/packages/perl.scm:7969
 msgid "Manage deprecation warnings for your distribution"
 msgstr ""
 
-#: gnu/packages/perl.scm:6770
+#: gnu/packages/perl.scm:7970
 msgid ""
 "This module allows you to manage a set of deprecations for\n"
 "one or more modules."
 msgstr ""
 
-#: gnu/packages/perl.scm:6796
+#: gnu/packages/perl.scm:7996
 msgid "Routines for manipulating stashes"
 msgstr "Rutinas para manipulación de alijos"
 
-#: gnu/packages/perl.scm:6797
+#: gnu/packages/perl.scm:7997
 msgid ""
 "Manipulating stashes (Perl's symbol tables) is occasionally\n"
 "necessary, but incredibly messy, and easy to get wrong.  This module hides all\n"
 "of that behind a simple API."
 msgstr ""
 
-#: gnu/packages/perl.scm:6819
+#: gnu/packages/perl.scm:8019
 msgid "Faster implementation of the Package::Stash API"
 msgstr ""
 
-#: gnu/packages/perl.scm:6820
+#: gnu/packages/perl.scm:8020
 msgid ""
 "This is a backend for Package::Stash, which provides the\n"
 "functionality in a way that's less buggy and much faster.  It will be used by\n"
@@ -14596,11 +19875,11 @@ msgid ""
 "compiler."
 msgstr ""
 
-#: gnu/packages/perl.scm:6839
+#: gnu/packages/perl.scm:8039
 msgid "Play with other peoples' lexical variables"
 msgstr ""
 
-#: gnu/packages/perl.scm:6840
+#: gnu/packages/perl.scm:8040
 msgid ""
 "PadWalker is a module which allows you to inspect (and even\n"
 "change) lexical variables in any subroutine which called you.  It will only\n"
@@ -14608,42 +19887,60 @@ msgid ""
 "is particularly useful for debugging."
 msgstr ""
 
-#: gnu/packages/perl.scm:6864
+#: gnu/packages/perl.scm:8064
 msgid "Simple parallel processing fork manager"
 msgstr ""
 
-#: gnu/packages/perl.scm:6865
+#: gnu/packages/perl.scm:8065
 msgid ""
 "@code{Parallel::ForkManager} is intended for use in\n"
 "operations that can be done in parallel where the number of\n"
 "processes to be forked off should be limited."
 msgstr ""
 
-#: gnu/packages/perl.scm:6885
+#: gnu/packages/perl.scm:8091
+msgid "Argument type classification"
+msgstr ""
+
+#: gnu/packages/perl.scm:8092
+msgid ""
+"This module provides various type-testing functions.\n"
+"These are intended for functions that care what type of data they are\n"
+"operating on.  There are two flavours of function.  Functions of the\n"
+"first flavour provide type classification only.  Functions of the\n"
+"second flavour also check that an argument is of an expected type.\n"
+"The type enforcement functions handle only the simplest requirements\n"
+"for arguments of the types handled by the classification functions.\n"
+"Enforcement of more complex types may be built using the\n"
+"classification functions, or it may be more convenient to use a module\n"
+"designed for the more complex job, such as @code{Params::Validate}"
+msgstr ""
+
+#: gnu/packages/perl.scm:8119
 msgid "Simple, compact and correct param-checking functions"
 msgstr ""
 
-#: gnu/packages/perl.scm:6887
+#: gnu/packages/perl.scm:8121
 msgid ""
 "Params::Util provides a basic set of importable functions that makes\n"
 "checking parameters easier."
 msgstr ""
 
-#: gnu/packages/perl.scm:6911
+#: gnu/packages/perl.scm:8145
 msgid "Validate method/function parameters"
 msgstr "Valida parámetros de métodos/función"
 
-#: gnu/packages/perl.scm:6912
+#: gnu/packages/perl.scm:8146
 msgid ""
 "The Params::Validate module allows you to validate method or\n"
 "function call parameters to an arbitrary level of specificity."
 msgstr ""
 
-#: gnu/packages/perl.scm:6939
+#: gnu/packages/perl.scm:8173
 msgid "Build an optimized subroutine parameter validator"
 msgstr ""
 
-#: gnu/packages/perl.scm:6940
+#: gnu/packages/perl.scm:8174
 msgid ""
 "This module creates a customized, highly efficient\n"
 "parameter checking subroutine.  It can handle named or positional\n"
@@ -14652,70 +19949,73 @@ msgid ""
 "defaults, optional parameters, and extra \"slurpy\" parameters."
 msgstr ""
 
-#: gnu/packages/perl.scm:6961
+#: gnu/packages/perl.scm:8195
 msgid "Create and manipulate PAR distributions"
 msgstr ""
 
-#: gnu/packages/perl.scm:6962
+#: gnu/packages/perl.scm:8196
 msgid ""
 "PAR::Dist is a toolkit to create and manipulate PAR\n"
 "distributions."
 msgstr ""
 
-#: gnu/packages/perl.scm:6980
-msgid ""
-"Allows you to both load one or more modules, while setting\n"
-"up inheritance from those modules at the same time."
-msgstr ""
-
-#: gnu/packages/perl.scm:6999
+#: gnu/packages/perl.scm:8218
 msgid "Path specification manipulation"
 msgstr "Manipulación especificante de ruta"
 
-#: gnu/packages/perl.scm:7000
+#: gnu/packages/perl.scm:8219
 msgid ""
 "Path::Class is a module for manipulation of file and\n"
 "directory specifications in a cross-platform manner."
 msgstr ""
 
-#: gnu/packages/perl.scm:7030
+#: gnu/packages/perl.scm:8249
 #, fuzzy
-#| msgid "Tools to work with the PDF file format"
 msgid "Tools for working with directory and file names"
 msgstr "Herramientas para trabajar con el formato de fichero PDF"
 
-#: gnu/packages/perl.scm:7031
+#: gnu/packages/perl.scm:8250
 msgid ""
 "This package provides functions to work with directory and\n"
 "file names."
 msgstr ""
 
-#: gnu/packages/perl.scm:7055
+#: gnu/packages/perl.scm:8274
 msgid "File path utility"
 msgstr "Ruta de fichero de utilidad"
 
-#: gnu/packages/perl.scm:7056
+#: gnu/packages/perl.scm:8275
 msgid ""
 "This module provides a small, fast utility for working\n"
 "with file paths."
 msgstr ""
 
-#: gnu/packages/perl.scm:7077
+#: gnu/packages/perl.scm:8298
+msgid "Facilitates the creation and modification of PDF files"
+msgstr ""
+
+#: gnu/packages/perl.scm:8299
+msgid ""
+"This Perl module facilitates the creation and modification\n"
+"of PDF files."
+msgstr ""
+
+#: gnu/packages/perl.scm:8320
 msgid "Fast and correct UTF-8 IO"
 msgstr "Rápida y correcta E/S UTF-8"
 
-#: gnu/packages/perl.scm:7078
+#: gnu/packages/perl.scm:8321
 msgid ""
 "@code{PerlIO::utf8_strict} provides a fast and correct UTF-8\n"
 "PerlIO layer.  Unlike Perl's default @code{:utf8} layer it checks the input\n"
 "for correctness."
 msgstr ""
 
-#: gnu/packages/perl.scm:7101
+#: gnu/packages/perl.scm:8344
 msgid "Acmeist PEG Parser Framework"
 msgstr ""
 
-#: gnu/packages/perl.scm:7102
+#: gnu/packages/perl.scm:8345
 msgid ""
 "Pegex is an Acmeist parser framework.  It allows you to easily\n"
 "create parsers that will work equivalently in lots of programming languages.\n"
@@ -14725,32 +20025,32 @@ msgid ""
 "available."
 msgstr ""
 
-#: gnu/packages/perl.scm:7126
+#: gnu/packages/perl.scm:8369
 msgid "Check for comprehensive documentation of a module"
 msgstr ""
 
-#: gnu/packages/perl.scm:7127
+#: gnu/packages/perl.scm:8370
 msgid ""
 "This module provides a mechanism for determining if the pod\n"
 "for a given module is comprehensive."
 msgstr ""
 
-#: gnu/packages/perl.scm:7144
+#: gnu/packages/perl.scm:8387
 msgid "Parsing library for text in Pod format"
 msgstr "Interpreta biblioteca para texto en formato Pod"
 
-#: gnu/packages/perl.scm:7145
+#: gnu/packages/perl.scm:8388
 msgid ""
 "@code{Pod::Simple} is a Perl library for parsing text in\n"
 "the @dfn{Pod} (plain old documentation) markup language that is typically\n"
 "used for writing documentation for Perl and for Perl modules."
 msgstr ""
 
-#: gnu/packages/perl.scm:7166
+#: gnu/packages/perl.scm:8409
 msgid "GNU C library compatible strftime for loggers and servers"
 msgstr ""
 
-#: gnu/packages/perl.scm:7167
+#: gnu/packages/perl.scm:8410
 msgid ""
 "POSIX::strftime::Compiler provides GNU C library compatible\n"
 "strftime(3).  But this module is not affected by the system locale.  This\n"
@@ -14758,32 +20058,42 @@ msgid ""
 "applications."
 msgstr ""
 
-#: gnu/packages/perl.scm:7185
+#: gnu/packages/perl.scm:8442
+msgid "Parse, analyze and manipulate Perl (without Perl)"
+msgstr ""
+
+#: gnu/packages/perl.scm:8443
+msgid ""
+"The PPI module parses, analyzes and manipulates Perl\n"
+"code."
+msgstr ""
+
+#: gnu/packages/perl.scm:8459
 msgid "Information about the currently running perl"
 msgstr "Información sobre la actualmente ejecución de perl"
 
-#: gnu/packages/perl.scm:7187
+#: gnu/packages/perl.scm:8461
 msgid ""
 "Probe::Perl provides methods for obtaining information about the\n"
 "currently running perl interpreter.  It originally began life as code in the\n"
 "Module::Build project, but has been externalized here for general use."
 msgstr ""
 
-#: gnu/packages/perl.scm:7214
+#: gnu/packages/perl.scm:8488
 msgid "Interface to external editor from Perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:7215
+#: gnu/packages/perl.scm:8489
 msgid ""
 "This module provides the ability to supply some text to an\n"
 "external text editor, have it edited by the user, and retrieve the results."
 msgstr ""
 
-#: gnu/packages/perl.scm:7234
+#: gnu/packages/perl.scm:8508
 msgid "Create read-only scalars, arrays, hashes"
 msgstr ""
 
-#: gnu/packages/perl.scm:7235
+#: gnu/packages/perl.scm:8509
 msgid ""
 "This module provides a facility for creating non-modifiable\n"
 "variables in Perl.  This is useful for configuration files, headers, etc.  It\n"
@@ -14791,11 +20101,11 @@ msgid ""
 "variables that should not be changed."
 msgstr ""
 
-#: gnu/packages/perl.scm:7255
+#: gnu/packages/perl.scm:8529
 msgid "XS implementation for Ref::Util"
 msgstr ""
 
-#: gnu/packages/perl.scm:7256
+#: gnu/packages/perl.scm:8530
 msgid ""
 "@code{Ref::Util::XS} is the XS implementation of\n"
 "@code{Ref::Util}, which provides several functions to help identify references\n"
@@ -14803,11 +20113,11 @@ msgid ""
 "of @code{ref}."
 msgstr ""
 
-#: gnu/packages/perl.scm:7274
+#: gnu/packages/perl.scm:8548
 msgid "Provide commonly requested regular expressions"
 msgstr ""
 
-#: gnu/packages/perl.scm:7276
+#: gnu/packages/perl.scm:8550
 msgid ""
 "This module exports a single hash (@code{%RE}) that stores or generates\n"
 "commonly needed regular expressions.  Patterns currently provided include:\n"
@@ -14817,11 +20127,11 @@ msgid ""
 "codes."
 msgstr ""
 
-#: gnu/packages/perl.scm:7300
+#: gnu/packages/perl.scm:8574
 msgid "Selection of general-utility regexp subroutines"
 msgstr ""
 
-#: gnu/packages/perl.scm:7301
+#: gnu/packages/perl.scm:8575
 msgid ""
 "This package provides a selection of regular expression\n"
 "subroutines including @code{is_regexp}, @code{regexp_seen_evals},\n"
@@ -14829,29 +20139,46 @@ msgid ""
 "and @code{deserialize_regexp}."
 msgstr ""
 
-#: gnu/packages/perl.scm:7326
+#: gnu/packages/perl.scm:8600
 msgid "Roles, as a slice of Moose"
 msgstr "Actores, como una rodaja de Moose"
 
-#: gnu/packages/perl.scm:7327
+#: gnu/packages/perl.scm:8601
 msgid "Role::Tiny is a minimalist role composition tool."
 msgstr ""
 
-#: gnu/packages/perl.scm:7358
+#: gnu/packages/perl.scm:8631
 msgid "Call isa, can, does, and DOES safely"
 msgstr ""
 
-#: gnu/packages/perl.scm:7359
+#: gnu/packages/perl.scm:8632
 msgid ""
 "This module allows you to call isa, can, does, and DOES\n"
 "safely on things that may not be objects."
 msgstr ""
 
-#: gnu/packages/perl.scm:7377
+#: gnu/packages/perl.scm:8655
+msgid "String aspects of scalars"
+msgstr ""
+
+#: gnu/packages/perl.scm:8656
+msgid ""
+"@code{Scalar::String} is about the string part of\n"
+"plain Perl scalars.  A scalar has a string value, which is notionally\n"
+"a sequence of Unicode codepoints but may be internally encoded in\n"
+"either ISO-8859-1 or UTF-8.  In places, more so in older versions of\n"
+"Perl, the internal encoding shows through.  To fully understand Perl\n"
+"strings it is necessary to understand these implementation details.\n"
+"This module provides functions to classify a string by encoding and to\n"
+"encode a string in a desired way.  The module is implemented in XS,\n"
+"with a pure Perl backup version for systems that cannot handle XS."
+msgstr ""
+
+#: gnu/packages/perl.scm:8681
 msgid "Lexically-scoped resource management"
 msgstr ""
 
-#: gnu/packages/perl.scm:7378
+#: gnu/packages/perl.scm:8682
 msgid ""
 "This module provides a convenient way to perform cleanup or\n"
 "other forms of resource management at the end of a scope.  It is particularly\n"
@@ -14862,39 +20189,39 @@ msgid ""
 "collector."
 msgstr ""
 
-#: gnu/packages/perl.scm:7401
+#: gnu/packages/perl.scm:8705
 msgid "Infinite sets"
 msgstr "Conjuntos infinitos"
 
-#: gnu/packages/perl.scm:7402
+#: gnu/packages/perl.scm:8706
 msgid "Set::Infinite is a set theory module for infinite sets."
 msgstr ""
 
-#: gnu/packages/perl.scm:7419
+#: gnu/packages/perl.scm:8723
 msgid "Manage sets of integers"
 msgstr ""
 
-#: gnu/packages/perl.scm:7420
+#: gnu/packages/perl.scm:8724
 msgid ""
 "@code{Set::IntSpan} manages sets of integers.  It is\n"
 "optimized for sets that have long runs of consecutive integers."
 msgstr ""
 
-#: gnu/packages/perl.scm:7440
+#: gnu/packages/perl.scm:8744
 msgid "Unordered collections of Perl Objects"
 msgstr ""
 
-#: gnu/packages/perl.scm:7441
+#: gnu/packages/perl.scm:8745
 msgid ""
 "Set::Object provides efficient sets, unordered collections\n"
 "of Perl objects without duplicates for scalars and references."
 msgstr ""
 
-#: gnu/packages/perl.scm:7459
+#: gnu/packages/perl.scm:8763
 msgid "Set operations for Perl"
 msgstr "Establece operaciones para Perl"
 
-#: gnu/packages/perl.scm:7460
+#: gnu/packages/perl.scm:8764
 msgid ""
 "The first priority of Set::Scalar is to be a convenient\n"
 "interface to sets (as in: unordered collections of Perl scalars).  While not\n"
@@ -14902,21 +20229,21 @@ msgid ""
 "compact."
 msgstr ""
 
-#: gnu/packages/perl.scm:7480
+#: gnu/packages/perl.scm:8784
 msgid "Sort arrays by one or multiple calculated keys"
 msgstr ""
 
-#: gnu/packages/perl.scm:7481
+#: gnu/packages/perl.scm:8785
 msgid ""
 "This Perl module provides various functions to quickly sort\n"
 "arrays by one or multiple calculated keys."
 msgstr ""
 
-#: gnu/packages/perl.scm:7499
+#: gnu/packages/perl.scm:8803
 msgid "Sort lexically, but sort numeral parts numerically"
 msgstr ""
 
-#: gnu/packages/perl.scm:7500
+#: gnu/packages/perl.scm:8804
 msgid ""
 "This module exports two functions, @code{nsort} and\n"
 "@code{ncmp}; they are used in implementing a \"natural sorting\" algorithm.\n"
@@ -14924,11 +20251,11 @@ msgid ""
 "word-characters are compared lexically."
 msgstr ""
 
-#: gnu/packages/perl.scm:7528
+#: gnu/packages/perl.scm:8832
 msgid "Classes for representing type constraints and coercion"
 msgstr ""
 
-#: gnu/packages/perl.scm:7529
+#: gnu/packages/perl.scm:8833
 msgid ""
 "The Specio distribution provides classes for representing type\n"
 "constraints and coercion, along with syntax sugar for declaring them.  Note that\n"
@@ -14939,11 +20266,11 @@ msgid ""
 "coerce values to that type."
 msgstr ""
 
-#: gnu/packages/perl.scm:7552
+#: gnu/packages/perl.scm:8856
 msgid "Spiffy Perl Interface Framework For You"
 msgstr ""
 
-#: gnu/packages/perl.scm:7553
+#: gnu/packages/perl.scm:8857
 msgid ""
 "Spiffy is a framework and methodology for doing object\n"
 "oriented (OO) programming in Perl.  Spiffy combines the best parts of\n"
@@ -14953,21 +20280,21 @@ msgid ""
 "other OO languages like Python, Ruby, Java and Perl 6."
 msgstr ""
 
-#: gnu/packages/perl.scm:7577
+#: gnu/packages/perl.scm:8881
 msgid "Collection of very basic statistics modules"
 msgstr ""
 
-#: gnu/packages/perl.scm:7578
+#: gnu/packages/perl.scm:8882
 msgid ""
 "This package provides basic statistics functions like\n"
 "@code{median()}, @code{mean()}, @code{variance()} and @code{stddev()}."
 msgstr ""
 
-#: gnu/packages/perl.scm:7596
+#: gnu/packages/perl.scm:8900
 msgid "Temporary buffer to save bytes"
 msgstr ""
 
-#: gnu/packages/perl.scm:7597
+#: gnu/packages/perl.scm:8901
 msgid ""
 "Stream::Buffered is a buffer class to store arbitrary length\n"
 "of byte strings and then get a seekable filehandle once everything is\n"
@@ -14975,31 +20302,31 @@ msgid ""
 "on the length of the size."
 msgstr ""
 
-#: gnu/packages/perl.scm:7617
+#: gnu/packages/perl.scm:8921
 msgid "Turn on strict and make all warnings fatal"
 msgstr ""
 
-#: gnu/packages/perl.scm:7618
+#: gnu/packages/perl.scm:8922
 msgid ""
 "Strictures turns on strict and make all warnings fatal when\n"
 "run from within a source-controlled directory."
 msgstr ""
 
-#: gnu/packages/perl.scm:7658
+#: gnu/packages/perl.scm:8962
 msgid "Camelcase and de-camelcase"
 msgstr ""
 
-#: gnu/packages/perl.scm:7659
+#: gnu/packages/perl.scm:8963
 msgid ""
 "This module may be used to convert from under_score text to\n"
 "CamelCase and back again."
 msgstr ""
 
-#: gnu/packages/perl.scm:7678
+#: gnu/packages/perl.scm:8982
 msgid "Backslash escapes, quoted phrase, word elision, etc."
 msgstr ""
 
-#: gnu/packages/perl.scm:7679
+#: gnu/packages/perl.scm:8983
 msgid ""
 "This module provides a flexible calling interface to some\n"
 "frequently-performed string conversion functions, including applying and\n"
@@ -15008,63 +20335,63 @@ msgid ""
 "removing double-quotes, and truncating to fit within a desired length."
 msgstr ""
 
-#: gnu/packages/perl.scm:7704
+#: gnu/packages/perl.scm:9008
 msgid "Build your own sprintf-like functions"
 msgstr ""
 
-#: gnu/packages/perl.scm:7706
+#: gnu/packages/perl.scm:9010
 msgid ""
 "@code{String::Formatter} is a tool for building sprintf-like formatting\n"
 "routines.  It supports named or positional formatting, custom conversions,\n"
 "fixed string interpolation, and simple width-matching."
 msgstr ""
 
-#: gnu/packages/perl.scm:7727
+#: gnu/packages/perl.scm:9031
 msgid "Rewrite strings based on a set of known prefixes"
 msgstr ""
 
-#: gnu/packages/perl.scm:7728
+#: gnu/packages/perl.scm:9032
 msgid ""
 "This module allows you to rewrite strings based on a set of\n"
 "known prefixes."
 msgstr ""
 
-#: gnu/packages/perl.scm:7748
+#: gnu/packages/perl.scm:9052
 msgid "Quote strings for passing through a shell"
 msgstr ""
 
-#: gnu/packages/perl.scm:7750
+#: gnu/packages/perl.scm:9054
 msgid ""
 "@code{shell-quote} lets you pass arbitrary strings through the shell so\n"
 "that they won't be changed."
 msgstr ""
 
-#: gnu/packages/perl.scm:7769
+#: gnu/packages/perl.scm:9073
 msgid "String printing alternatives to printf"
 msgstr "Escritura de cadenas alternativas para imprimir"
 
-#: gnu/packages/perl.scm:7771
+#: gnu/packages/perl.scm:9075
 msgid ""
 "This module inserts values into (translated) strings.  It provides\n"
 "@code{printf} and @code{sprintf} alternatives via both an object-oriented and\n"
 "a functional interface."
 msgstr ""
 
-#: gnu/packages/perl.scm:7794
+#: gnu/packages/perl.scm:9098
 msgid "Sophisticated exporter for custom-built routines"
 msgstr ""
 
-#: gnu/packages/perl.scm:7796
+#: gnu/packages/perl.scm:9100
 msgid ""
 "Sub::Exporter provides a sophisticated alternative to Exporter.pm for\n"
 "custom-built routines."
 msgstr ""
 
-#: gnu/packages/perl.scm:7815
+#: gnu/packages/perl.scm:9119
 msgid "Only use Sub::Exporter if you need it"
 msgstr ""
 
-#: gnu/packages/perl.scm:7816
+#: gnu/packages/perl.scm:9120
 msgid ""
 "Sub::Exporter is an incredibly powerful module, but with\n"
 "that power comes great responsibility, as well as some runtime penalties.\n"
@@ -15074,74 +20401,74 @@ msgid ""
 "renaming exports, if they try to use them."
 msgstr ""
 
-#: gnu/packages/perl.scm:7838
+#: gnu/packages/perl.scm:9142
 msgid "Retrieve names of code references"
 msgstr ""
 
-#: gnu/packages/perl.scm:7839
+#: gnu/packages/perl.scm:9143
 msgid ""
 "Sub::Identify allows you to retrieve the real name of code\n"
 "references."
 msgstr ""
 
-#: gnu/packages/perl.scm:7859
+#: gnu/packages/perl.scm:9163
 msgid "Tool to inspect subroutines"
 msgstr "Herramienta para inspeccionar subrutinas"
 
-#: gnu/packages/perl.scm:7860
+#: gnu/packages/perl.scm:9164
 msgid ""
 "This package provides tools for inspecting subroutines\n"
 "in Perl."
 msgstr ""
 
-#: gnu/packages/perl.scm:7879
+#: gnu/packages/perl.scm:9183
 msgid "Install subroutines into packages easily"
 msgstr "Instala subrutinas dentro de paquetes fácilmente"
 
-#: gnu/packages/perl.scm:7881
+#: gnu/packages/perl.scm:9185
 msgid ""
 "Sub::Install makes it easy to install subroutines into packages without\n"
 "the unsightly mess of C<no strict> or typeglobs lying about where just anyone\n"
 "can see them."
 msgstr ""
 
-#: gnu/packages/perl.scm:7902
+#: gnu/packages/perl.scm:9206
 msgid "(Re)name a sub"
 msgstr "(Re)nombrar un sub"
 
-#: gnu/packages/perl.scm:7903
+#: gnu/packages/perl.scm:9207
 msgid ""
 "Assigns a new name to referenced sub.  If package\n"
 "specification is omitted in the name, then the current package is used.  The\n"
 "return value is the sub."
 msgstr ""
 
-#: gnu/packages/perl.scm:7926
+#: gnu/packages/perl.scm:9230
 msgid "Efficient generation of subroutines via string eval"
 msgstr ""
 
-#: gnu/packages/perl.scm:7927
+#: gnu/packages/perl.scm:9231
 msgid ""
 "Sub::Quote provides an efficient generation of subroutines\n"
 "via string eval."
 msgstr ""
 
-#: gnu/packages/perl.scm:7945
+#: gnu/packages/perl.scm:9249
 msgid "Apparently run a function in a higher stack frame"
 msgstr "Aparentemente ejecuta una función en un marco de pila más alto"
 
-#: gnu/packages/perl.scm:7946
+#: gnu/packages/perl.scm:9250
 msgid ""
 "Like Tcl's uplevel() function, but not quite so dangerous.\n"
 "The idea is just to fool caller().  All the really naughty bits of Tcl's\n"
 "uplevel() are avoided."
 msgstr ""
 
-#: gnu/packages/perl.scm:7968
+#: gnu/packages/perl.scm:9272
 msgid "Control superclass method dispatching"
 msgstr ""
 
-#: gnu/packages/perl.scm:7970
+#: gnu/packages/perl.scm:9274
 msgid ""
 "When subclassing a class, you may occasionally want to dispatch control to\n"
 "the superclass---at least conditionally and temporarily.  This module provides\n"
@@ -15150,11 +20477,11 @@ msgid ""
 "support for run-time mix-ins and roles."
 msgstr ""
 
-#: gnu/packages/perl.scm:7990
+#: gnu/packages/perl.scm:9294
 msgid "Perl extension for generating SVG documents"
 msgstr ""
 
-#: gnu/packages/perl.scm:7991
+#: gnu/packages/perl.scm:9295
 msgid ""
 "SVG is a Perl module which generates a nested data structure\n"
 "containing the DOM representation of an SVG (Scalable Vector Graphics) image.\n"
@@ -15163,53 +20490,53 @@ msgid ""
 "animation content."
 msgstr ""
 
-#: gnu/packages/perl.scm:8012
+#: gnu/packages/perl.scm:9316
 msgid "Switch statement for Perl"
 msgstr "Declaración intercambio para Perl"
 
-#: gnu/packages/perl.scm:8013
+#: gnu/packages/perl.scm:9317
 msgid ""
 "Switch is a Perl module which implements a generalized case\n"
 "mechanism.  The module augments the standard Perl syntax with two new\n"
 "statements: @code{switch} and @code{case}."
 msgstr ""
 
-#: gnu/packages/perl.scm:8060
+#: gnu/packages/perl.scm:9364
 msgid "Perl extension for getting CPU information"
 msgstr ""
 
-#: gnu/packages/perl.scm:8062
+#: gnu/packages/perl.scm:9366
 msgid ""
 "Sys::CPU is a module for counting the number of CPUs on a system, and\n"
 "determining their type and clock speed."
 msgstr ""
 
-#: gnu/packages/perl.scm:8082
+#: gnu/packages/perl.scm:9386
 msgid "Get full hostname in Perl"
 msgstr "Obtiene nombre de anfitrión completo en Perl"
 
-#: gnu/packages/perl.scm:8083
+#: gnu/packages/perl.scm:9387
 msgid ""
 "Sys::Hostname::Long tries very hard to get the full hostname\n"
 "of a system."
 msgstr ""
 
-#: gnu/packages/perl.scm:8102
+#: gnu/packages/perl.scm:9406
 msgid "Access system calls that Perl doesn't normally provide access to"
 msgstr ""
 
-#: gnu/packages/perl.scm:8104
+#: gnu/packages/perl.scm:9408
 msgid ""
 "Sys::Syscall allows one to use epoll and sendfile system calls from\n"
 "Perl.  Support is mostly Linux-only for now, but other syscalls/OSes are\n"
 "planned for the future."
 msgstr ""
 
-#: gnu/packages/perl.scm:8132
+#: gnu/packages/perl.scm:9436
 msgid "Ensure that a platform has weaken support"
 msgstr ""
 
-#: gnu/packages/perl.scm:8133
+#: gnu/packages/perl.scm:9437
 msgid ""
 "One recurring problem in modules that use Scalar::Util's\n"
 "weaken function is that it is not present in the pure-perl variant.  If\n"
@@ -15219,11 +20546,11 @@ msgid ""
 "error encouraging the user to seek support."
 msgstr ""
 
-#: gnu/packages/perl.scm:8158
+#: gnu/packages/perl.scm:9462
 msgid "Template processing system for Perl"
 msgstr "Sistema procesando plantilla para Perl"
 
-#: gnu/packages/perl.scm:8159
+#: gnu/packages/perl.scm:9463
 msgid ""
 "The Template Toolkit is a collection of modules which\n"
 "implement an extensible template processing system.  It was originally\n"
@@ -15232,21 +20559,21 @@ msgid ""
 "documents: HTML, XML, POD, PostScript, LaTeX, and so on."
 msgstr ""
 
-#: gnu/packages/perl.scm:8182
+#: gnu/packages/perl.scm:9486
 msgid "Profiling for Template Toolkit"
 msgstr "Perfilando para Plantillas de Kit de Herramientas"
 
-#: gnu/packages/perl.scm:8183
+#: gnu/packages/perl.scm:9487
 msgid ""
 "Template::Timer provides inline profiling of the template\n"
 "processing in Perl code."
 msgstr ""
 
-#: gnu/packages/perl.scm:8203
+#: gnu/packages/perl.scm:9507
 msgid "Template Toolkit reimplemented in as little code as possible"
 msgstr ""
 
-#: gnu/packages/perl.scm:8205
+#: gnu/packages/perl.scm:9509
 msgid ""
 "@code{Template::Tiny} is a reimplementation of a subset of the\n"
 "functionality from Template Toolkit in as few lines of code as possible.\n"
@@ -15256,32 +20583,32 @@ msgid ""
 "future, or if you want the retain the familiarity of TT-style templates."
 msgstr ""
 
-#: gnu/packages/perl.scm:8229
+#: gnu/packages/perl.scm:9533
 msgid "Detect encoding of the current terminal"
 msgstr "Detecta codificación del terminal actual"
 
-#: gnu/packages/perl.scm:8230
+#: gnu/packages/perl.scm:9534
 msgid ""
 "Term::Encoding is a simple module to detect the encoding of\n"
 "the current terminal expects in various ways."
 msgstr ""
 
-#: gnu/packages/perl.scm:8254
+#: gnu/packages/perl.scm:9558
 msgid "Progress meter on a standard terminal"
 msgstr ""
 
-#: gnu/packages/perl.scm:8255
+#: gnu/packages/perl.scm:9559
 msgid ""
 "Term::ProgressBar provides a simple progress bar on the\n"
 "terminal, to let the user know that something is happening, roughly how much\n"
 "stuff has been done, and maybe an estimate at how long remains."
 msgstr ""
 
-#: gnu/packages/perl.scm:8278
+#: gnu/packages/perl.scm:9582
 msgid "Progress meter if run interactively"
 msgstr ""
 
-#: gnu/packages/perl.scm:8279
+#: gnu/packages/perl.scm:9583
 msgid ""
 "Term::ProgressBar is a wonderful module for showing progress\n"
 "bars on the terminal.  This module acts very much like that module when it is\n"
@@ -15289,22 +20616,22 @@ msgid ""
 "a cron job) then it does not show the progress bar."
 msgstr ""
 
-#: gnu/packages/perl.scm:8301
+#: gnu/packages/perl.scm:9605
 #, fuzzy
 msgid "Simple progress bars"
 msgstr "# prohibe el registro"
 
-#: gnu/packages/perl.scm:8302
+#: gnu/packages/perl.scm:9606
 msgid ""
 "Term::ProgressBar::Simple tells you how much work has been\n"
 "done, how much is left to do, and estimate how long it will take."
 msgstr ""
 
-#: gnu/packages/perl.scm:8320
+#: gnu/packages/perl.scm:9624
 msgid "Simple terminal control"
 msgstr "Terminal controladora única"
 
-#: gnu/packages/perl.scm:8321
+#: gnu/packages/perl.scm:9625
 msgid ""
 "This module, ReadKey, provides ioctl control for terminals\n"
 "so the input modes can be changed (thus allowing reads of a single character\n"
@@ -15313,11 +20640,24 @@ msgid ""
 "screen size, and retrieval/modification of the control characters."
 msgstr ""
 
-#: gnu/packages/perl.scm:8346
+#: gnu/packages/perl.scm:9663
+#, fuzzy
+msgid "GNU Readline/History Library interface for Perl"
+msgstr "Interfaz SQlite para Perl"
+
+#: gnu/packages/perl.scm:9664
+msgid ""
+"This module implements an interface to the GNU Readline\n"
+"library.  It gives you input line editing facilities, input history management\n"
+"facilities, completion facilities, etc.  Term::ReadLine::Gnu is upwards\n"
+"compatible with Term::ReadLine."
+msgstr ""
+
+#: gnu/packages/perl.scm:9688
 msgid "Retrieve terminal size"
 msgstr "Obtener tamaño del terminal"
 
-#: gnu/packages/perl.scm:8347
+#: gnu/packages/perl.scm:9689
 msgid ""
 "This is a unified interface to retrieve terminal size.  It\n"
 "loads one module of a list of known alternatives, each implementing some way\n"
@@ -15325,62 +20665,63 @@ msgid ""
 "the job on behalf of @code{Term::Size::Any}."
 msgstr ""
 
-#: gnu/packages/perl.scm:8366
+#: gnu/packages/perl.scm:9708
 msgid "Perl extension for retrieving terminal size (Perl version)"
 msgstr ""
 
-#: gnu/packages/perl.scm:8367
+#: gnu/packages/perl.scm:9709
 msgid ""
 "This is yet another implementation of @code{Term::Size}.\n"
 "Now in pure Perl, with the exception of a C probe run at build time."
 msgstr ""
 
-#: gnu/packages/perl.scm:8387
+#: gnu/packages/perl.scm:9729
 msgid "Format a header and rows into a table"
 msgstr "Formatear una cabecera y filas dentro de una tabla"
 
-#: gnu/packages/perl.scm:8388
+#: gnu/packages/perl.scm:9730
 msgid ""
 "This module is able to generically format rows of data\n"
 "into tables."
 msgstr ""
 
-#: gnu/packages/perl.scm:8406
+#: gnu/packages/perl.scm:9748
 msgid "Align text"
 msgstr "Texto alineado"
 
-#: gnu/packages/perl.scm:8407
+#: gnu/packages/perl.scm:9749
 msgid ""
 "Text::Aligner exports a single function, align(), which is\n"
 "used to justify strings to various alignment styles."
 msgstr ""
 
-#: gnu/packages/perl.scm:8425
+#: gnu/packages/perl.scm:9767
 msgid "Extract delimited text sequences from strings"
 msgstr ""
 
-#: gnu/packages/perl.scm:8426
+#: gnu/packages/perl.scm:9768
 msgid ""
 "The Text::Balanced module can be used to extract delimited\n"
 "text sequences from strings."
 msgstr ""
 
-#: gnu/packages/perl.scm:8443
+#: gnu/packages/perl.scm:9785
 msgid "Manipulate comma-separated values"
 msgstr "Manipula valorer separados por coma"
 
-#: gnu/packages/perl.scm:8444
+#: gnu/packages/perl.scm:9786
 msgid ""
 "Text::CSV provides facilities for the composition and\n"
 "decomposition of comma-separated values.  An instance of the Text::CSV class\n"
 "can combine fields into a CSV string and parse a CSV string into fields."
 msgstr ""
 
-#: gnu/packages/perl.scm:8462
-msgid "Rountines for manipulating CSV files"
+#: gnu/packages/perl.scm:9804
+#, fuzzy
+msgid "Routines for manipulating CSV files"
 msgstr "Rutinas para manipulación de ficheros CSV"
 
-#: gnu/packages/perl.scm:8463
+#: gnu/packages/perl.scm:9805
 msgid ""
 "@code{Text::CSV_XS} provides facilities for the composition\n"
 "and decomposition of comma-separated values.  An instance of the\n"
@@ -15390,11 +20731,11 @@ msgid ""
 "and escapes."
 msgstr ""
 
-#: gnu/packages/perl.scm:8487
+#: gnu/packages/perl.scm:9829
 msgid "Perform diffs on files and record sets"
 msgstr ""
 
-#: gnu/packages/perl.scm:8488
+#: gnu/packages/perl.scm:9830
 msgid ""
 "Text::Diff provides a basic set of services akin to the GNU\n"
 "diff utility.  It is not anywhere near as feature complete as GNU diff, but it\n"
@@ -15403,44 +20744,66 @@ msgid ""
 "generally slower on larger files."
 msgstr ""
 
-#: gnu/packages/perl.scm:8513
+#: gnu/packages/perl.scm:9855
 msgid "Various subroutines to format text"
 msgstr ""
 
-#: gnu/packages/perl.scm:8514
+#: gnu/packages/perl.scm:9856
 msgid ""
 "This package provides functions to format text in various\n"
 "ways like centering, paragraphing, and converting tabs to spaces and spaces\n"
 "to tabs."
 msgstr ""
 
-#: gnu/packages/perl.scm:8534
+#: gnu/packages/perl.scm:9876
 msgid "Match globbing patterns against text"
 msgstr ""
 
-#: gnu/packages/perl.scm:8535
+#: gnu/packages/perl.scm:9877
 msgid ""
 "Text::Glob implements glob(3) style matching that can be\n"
 "used to match against text, rather than fetching names from a file system.  If\n"
 "you want to do full file globbing use the File::Glob module instead."
 msgstr ""
 
-#: gnu/packages/perl.scm:8558
+#: gnu/packages/perl.scm:9900
+#, fuzzy
+msgid "Haml Perl implementation"
+msgstr "Implementación completa de ajedrez"
+
+#: gnu/packages/perl.scm:9902
+msgid ""
+"Text::Haml implements Haml\n"
+"@url{http://haml.info/docs/yardoc/file.REFERENCE.html} specification."
+msgstr ""
+
+#: gnu/packages/perl.scm:9924
 msgid "Fast, middleweight template engine"
 msgstr ""
 
-#: gnu/packages/perl.scm:8560
+#: gnu/packages/perl.scm:9926
 msgid ""
 "Text::NeatTemplate provides a simple, middleweight but fast\n"
 "template engine, for when you need speed rather than complex features,\n"
 "yet need more features than simple variable substitution."
 msgstr ""
 
-#: gnu/packages/perl.scm:8579
+#: gnu/packages/perl.scm:9946
+msgid "Patches text with given patch"
+msgstr ""
+
+#: gnu/packages/perl.scm:9947
+msgid ""
+"Text::Patch combines source text with given\n"
+"diff (difference) data.  Diff data is produced by Text::Diff module or\n"
+"by the standard @code{diff} utility."
+msgstr ""
+
+#: gnu/packages/perl.scm:9966
 msgid "Convert between Roman and Arabic algorisms"
 msgstr ""
 
-#: gnu/packages/perl.scm:8580
+#: gnu/packages/perl.scm:9967
 msgid ""
 "This package provides functions to convert between Roman and\n"
 "Arabic algorisms.  It supports both conventional Roman algorisms (which range\n"
@@ -15448,27 +20811,27 @@ msgid ""
 "algorism to indicate multiplication by 1000."
 msgstr ""
 
-#: gnu/packages/perl.scm:8599
+#: gnu/packages/perl.scm:9986
 msgid "Simple ASCII tables"
 msgstr "Distribución simple ASCII"
 
-#: gnu/packages/perl.scm:8600
+#: gnu/packages/perl.scm:9987
 msgid "Text::SimpleTable draws simple ASCII tables."
 msgstr ""
 
-#: gnu/packages/perl.scm:8621
+#: gnu/packages/perl.scm:10008
 msgid "Organize Data in Tables"
 msgstr "Organizar Datos en Tablas"
 
-#: gnu/packages/perl.scm:8622
+#: gnu/packages/perl.scm:10009
 msgid "Text::Table renders plaintext tables."
 msgstr ""
 
-#: gnu/packages/perl.scm:8646
+#: gnu/packages/perl.scm:10033
 msgid "Expand template text with embedded Perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:8648
+#: gnu/packages/perl.scm:10035
 msgid ""
 "This is a library for generating letters, building HTML pages, or\n"
 "filling in templates generally.  A template is a piece of text that has little\n"
@@ -15476,11 +20839,11 @@ msgid ""
 "evaluate the little programs and replace them with their values."
 msgstr ""
 
-#: gnu/packages/perl.scm:8667
+#: gnu/packages/perl.scm:10054
 msgid "Provide plain ASCII transliterations of Unicode text"
 msgstr ""
 
-#: gnu/packages/perl.scm:8668
+#: gnu/packages/perl.scm:10055
 msgid ""
 "Text::Unidecode provides a function, unidecode(...) that\n"
 "takes Unicode data and tries to represent it in US-ASCII characters (i.e., the\n"
@@ -15490,31 +20853,30 @@ msgid ""
 "system."
 msgstr ""
 
-#: gnu/packages/perl.scm:8689
+#: gnu/packages/perl.scm:10076
 #, fuzzy
-#| msgid "Perl interface to pseudo ttys"
 msgid "Perl interpreter-based threads"
 msgstr "Interfaz Perl para pseudo ttys"
 
-#: gnu/packages/perl.scm:8690
+#: gnu/packages/perl.scm:10077
 msgid "This module exposes interpreter threads to the Perl level."
 msgstr ""
 
-#: gnu/packages/perl.scm:8713
+#: gnu/packages/perl.scm:10100
 msgid "Role for classes that can be thrown"
 msgstr "Cargo para clases que puedan ser referenciada"
 
-#: gnu/packages/perl.scm:8714
+#: gnu/packages/perl.scm:10101
 msgid ""
 "Throwable is a role for classes that are meant to be thrown\n"
 "as exceptions to standard program flow."
 msgstr ""
 
-#: gnu/packages/perl.scm:8731
+#: gnu/packages/perl.scm:10118
 msgid "Perl script tidier"
 msgstr "Guiones Perl tipado"
 
-#: gnu/packages/perl.scm:8732
+#: gnu/packages/perl.scm:10119
 msgid ""
 "This package contains a Perl script which indents and\n"
 "reformats Perl scripts to make them easier to read.   The formatting can be\n"
@@ -15522,21 +20884,21 @@ msgid ""
 "approximately follow the suggestions in the Perl Style Guide."
 msgstr ""
 
-#: gnu/packages/perl.scm:8752
+#: gnu/packages/perl.scm:10139
 msgid "Cycle through a list of values"
 msgstr ""
 
-#: gnu/packages/perl.scm:8753
+#: gnu/packages/perl.scm:10140
 msgid ""
 "You use @code{Tie::Cycle} to go through a list over and over\n"
 "again.  Once you get to the end of the list, you go back to the beginning."
 msgstr ""
 
-#: gnu/packages/perl.scm:8772
+#: gnu/packages/perl.scm:10159
 msgid "Ordered associative arrays for Perl"
 msgstr "Matrices asociadas ordenadas para Perl"
 
-#: gnu/packages/perl.scm:8773
+#: gnu/packages/perl.scm:10160
 msgid ""
 "This Perl module implements Perl hashes that preserve the\n"
 "order in which the hash elements were added.  The order is not affected when\n"
@@ -15545,63 +20907,79 @@ msgid ""
 "operations can also be performed on the IxHash."
 msgstr ""
 
-#: gnu/packages/perl.scm:8796
+#: gnu/packages/perl.scm:10183
 msgid "Special file handle that hides the beginning of a file"
 msgstr ""
 
-#: gnu/packages/perl.scm:8798
+#: gnu/packages/perl.scm:10185
 msgid ""
 "This modules provides a file handle that hides the beginning of a file,\n"
 "by modifying the @code{seek()} and @code{tell()} calls."
 msgstr ""
 
-#: gnu/packages/perl.scm:8818
+#: gnu/packages/perl.scm:10202
+msgid "Variable ties made much easier"
+msgstr ""
+
+#: gnu/packages/perl.scm:10204
+msgid ""
+"This module adds the ability to quickly create new types of tie objects\n"
+"without creating a complete class.  It does so in such a way as to try and\n"
+"make the programmers life easier when it comes to single-use ties that I find\n"
+"myself wanting to use from time-to-time.\n"
+"\n"
+"The Tie::Simple package is actually a front-end to other classes which really\n"
+"do all the work once tied, but this package does the dwimming to automatically\n"
+"figure out what you're trying to do."
+msgstr ""
+
+#: gnu/packages/perl.scm:10230
 msgid "Tie to an existing Perl object"
 msgstr "Vínculo a un objeto existente para Perl"
 
-#: gnu/packages/perl.scm:8819
+#: gnu/packages/perl.scm:10231
 msgid ""
 "This class provides a tie constructor that returns the\n"
 "object it was given as it's first argument.  This way side effects of calling\n"
 "$object->TIEHASH are avoided."
 msgstr ""
 
-#: gnu/packages/perl.scm:8842
+#: gnu/packages/perl.scm:10253
 msgid "English expression of durations"
 msgstr "Expresión inglesa de duraciones"
 
-#: gnu/packages/perl.scm:8843
+#: gnu/packages/perl.scm:10254
 msgid ""
 "This module provides functions for expressing durations in\n"
 "rounded or exact terms."
 msgstr ""
 
-#: gnu/packages/perl.scm:8864
+#: gnu/packages/perl.scm:10275
 msgid "Parse time duration strings"
 msgstr "Interpreta cadenas textuales de duración temporal"
 
-#: gnu/packages/perl.scm:8865
+#: gnu/packages/perl.scm:10276
 msgid ""
 "Time::Duration::Parse is a module to parse human readable\n"
 "duration strings like \"2 minutes\" and \"3 seconds\" to seconds."
 msgstr ""
 
-#: gnu/packages/perl.scm:8883
-msgid "High resolution alarm, sleep, gettimeofday, interval timers"
+#: gnu/packages/perl.scm:10294
+msgid "High-resolution alarm, sleep, gettimeofday, and interval timers"
 msgstr ""
 
-#: gnu/packages/perl.scm:8884
+#: gnu/packages/perl.scm:10295
 msgid ""
 "This package implements @code{usleep}, @code{ualarm}, and\n"
 "@code{gettimeofday} for Perl, as well as wrappers to implement @code{time},\n"
 "@code{sleep}, and @code{alarm} that know about non-integral seconds."
 msgstr ""
 
-#: gnu/packages/perl.scm:8903
+#: gnu/packages/perl.scm:10314
 msgid "Efficiently compute time from local and GMT time"
 msgstr ""
 
-#: gnu/packages/perl.scm:8904
+#: gnu/packages/perl.scm:10315
 msgid ""
 "This module provides functions that are the inverse of\n"
 "built-in perl functions localtime() and gmtime().  They accept a date as a\n"
@@ -15609,11 +20987,11 @@ msgid ""
 "the system epoch."
 msgstr ""
 
-#: gnu/packages/perl.scm:8924
+#: gnu/packages/perl.scm:10335
 msgid "Object-Oriented time objects"
 msgstr ""
 
-#: gnu/packages/perl.scm:8926
+#: gnu/packages/perl.scm:10337
 msgid ""
 "This module replaces the standard @code{localtime} and @code{gmtime}\n"
 "functions with implementations that return objects.  It does so in a\n"
@@ -15621,62 +20999,62 @@ msgid ""
 "still work as expected."
 msgstr ""
 
-#: gnu/packages/perl.scm:8946
+#: gnu/packages/perl.scm:10356
 msgid "Date parsing/formatting subroutines"
 msgstr "Interpretando/formando datos de subrutinas"
 
-#: gnu/packages/perl.scm:8947
+#: gnu/packages/perl.scm:10357
 msgid ""
 "This module provides routines for parsing date string into\n"
 "time values and formatting dates into ASCII strings."
 msgstr ""
 
-#: gnu/packages/perl.scm:8969
+#: gnu/packages/perl.scm:10379
 msgid "Shift and scale time"
 msgstr "Mayúsculas y escala temporal"
 
-#: gnu/packages/perl.scm:8970
+#: gnu/packages/perl.scm:10380
 msgid ""
 "This module allows you to speed up your sleep(), alarm(),\n"
 "and time() calls."
 msgstr ""
 
-#: gnu/packages/perl.scm:8992
+#: gnu/packages/perl.scm:10402
 msgid "Simple tree object"
 msgstr "Objeto arbóreo único"
 
-#: gnu/packages/perl.scm:8993
+#: gnu/packages/perl.scm:10403
 msgid ""
 "This module in a fully object-oriented implementation of a\n"
 "simple n-ary tree."
 msgstr ""
 
-#: gnu/packages/perl.scm:9016
+#: gnu/packages/perl.scm:10425
 msgid "Factory object for dispensing Visitor objects"
 msgstr ""
 
-#: gnu/packages/perl.scm:9017
+#: gnu/packages/perl.scm:10426
 msgid ""
 "This module is a factory for dispensing\n"
 "Tree::Simple::Visitor::* objects."
 msgstr ""
 
-#: gnu/packages/perl.scm:9035
+#: gnu/packages/perl.scm:10444
 msgid "Minimal try/catch with proper preservation of $@@"
 msgstr ""
 
-#: gnu/packages/perl.scm:9036
+#: gnu/packages/perl.scm:10445
 msgid ""
 "This module provides bare bones try/catch/finally statements\n"
 "that are designed to minimize common mistakes with eval blocks, and nothing\n"
 "else."
 msgstr ""
 
-#: gnu/packages/perl.scm:9060
+#: gnu/packages/perl.scm:10469
 msgid "Tie a variable to a type constraint"
 msgstr "Vincula una variable a un tipo constante"
 
-#: gnu/packages/perl.scm:9061
+#: gnu/packages/perl.scm:10470
 msgid ""
 "This module exports a single function: @code{ttie}.  It ties\n"
 "a variable to a type constraint, ensuring that whatever values stored in the\n"
@@ -15685,11 +21063,11 @@ msgid ""
 "variable conform."
 msgstr ""
 
-#: gnu/packages/perl.scm:9093
+#: gnu/packages/perl.scm:10502
 msgid "Tiny, yet Moo(se)-compatible type constraint"
 msgstr ""
 
-#: gnu/packages/perl.scm:9094
+#: gnu/packages/perl.scm:10503
 msgid ""
 "@code{Type::Tiny} is a small class for writing type\n"
 "constraints, inspired by Moose's type constraint API.  It has only one\n"
@@ -15698,11 +21076,11 @@ msgid ""
 "be used with Moose, Mouse and Moo (or none of the above)."
 msgstr ""
 
-#: gnu/packages/perl.scm:9114
+#: gnu/packages/perl.scm:10523
 msgid "Provides an XS boost for some of Type::Tiny's built-in type constraints"
 msgstr ""
 
-#: gnu/packages/perl.scm:9115
+#: gnu/packages/perl.scm:10524
 msgid ""
 "This module is optionally used by @code{Type::Tiny} to\n"
 "provide faster, C-based implementations of some type constraints.  This\n"
@@ -15710,11 +21088,11 @@ msgid ""
 "so other data validation frameworks might also consider using it."
 msgstr ""
 
-#: gnu/packages/perl.scm:9139
+#: gnu/packages/perl.scm:10548
 msgid "Types and coercions for Moose and Moo"
 msgstr ""
 
-#: gnu/packages/perl.scm:9140
+#: gnu/packages/perl.scm:10549
 msgid ""
 "This module provides @code{Path::Tiny} types for Moose, Moo,\n"
 "etc.  It handles two important types of coercion: coercing objects with\n"
@@ -15722,91 +21100,91 @@ msgid ""
 "to ensure that files or directories exist."
 msgstr ""
 
-#: gnu/packages/perl.scm:9162
+#: gnu/packages/perl.scm:10571
 msgid "Data types for common serialisation formats"
 msgstr ""
 
-#: gnu/packages/perl.scm:9163
+#: gnu/packages/perl.scm:10572
 msgid ""
 "This module provides some extra datatypes that are used by\n"
 "common serialisation formats such as JSON or CBOR."
 msgstr ""
 
-#: gnu/packages/perl.scm:9190
+#: gnu/packages/perl.scm:10599
 msgid "Unicode normalization forms"
 msgstr "Formato de normalización Unicode"
 
-#: gnu/packages/perl.scm:9191
+#: gnu/packages/perl.scm:10600
 msgid "This Perl module provides Unicode normalization forms."
 msgstr ""
 
-#: gnu/packages/perl.scm:9219
+#: gnu/packages/perl.scm:10628
 msgid "Unicode collation algorithm"
 msgstr "Algoritmo adoptado Unicode"
 
-#: gnu/packages/perl.scm:9220
+#: gnu/packages/perl.scm:10629
 msgid ""
 "This package provides tools for sorting and comparing\n"
 "Unicode data."
 msgstr ""
 
-#: gnu/packages/perl.scm:9241
+#: gnu/packages/perl.scm:10650
 msgid "Unicode line breaking algorithm"
 msgstr "Línea Unicode dividiendo algoritmo"
 
-#: gnu/packages/perl.scm:9243
+#: gnu/packages/perl.scm:10652
 msgid ""
 "@code{Unicode::LineBreak} implements the line breaking algorithm\n"
 "described in Unicode Standard Annex #14.  The @code{East_Asian_Width} property\n"
 "defined by Annex #11 is used to determine breaking positions."
 msgstr ""
 
-#: gnu/packages/perl.scm:9269
+#: gnu/packages/perl.scm:10678
 msgid "Encoding and decoding of UTF-8 encoding form"
 msgstr "Codificación y decodificación de relleno en UTF-8"
 
-#: gnu/packages/perl.scm:9271
+#: gnu/packages/perl.scm:10680
 msgid ""
 "This module provides functions to encode and decode UTF-8 encoding form\n"
 "as specified by Unicode and ISO/IEC 10646:2011."
 msgstr ""
 
-#: gnu/packages/perl.scm:9289
+#: gnu/packages/perl.scm:10698
 msgid "UNIVERSAL::can() reimplementation"
 msgstr "UNIVERSAL::can() reimplementación"
 
-#: gnu/packages/perl.scm:9290
+#: gnu/packages/perl.scm:10699
 msgid ""
 "This module attempts to work around people calling\n"
 "UNIVERSAL::can() as a function, which it is not."
 msgstr ""
 
-#: gnu/packages/perl.scm:9310
+#: gnu/packages/perl.scm:10719
 msgid "UNIVERSAL::isa() reimplementation"
 msgstr "UNIVERSAL::isa() reimplementación"
 
-#: gnu/packages/perl.scm:9311
+#: gnu/packages/perl.scm:10720
 msgid ""
 "This module attempts to recover from people calling\n"
 "UNIVERSAL::isa as a function."
 msgstr ""
 
-#: gnu/packages/perl.scm:9330
+#: gnu/packages/perl.scm:10739
 msgid "Require modules from a variable"
 msgstr ""
 
-#: gnu/packages/perl.scm:9331
+#: gnu/packages/perl.scm:10740
 msgid ""
 "This module lets you require other modules where the module\n"
 "name is in a variable, something you can't do with the @code{require}\n"
 "built-in."
 msgstr ""
 
-#: gnu/packages/perl.scm:9350
+#: gnu/packages/perl.scm:10759
 msgid "Associate user-defined magic to variables from Perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:9351
+#: gnu/packages/perl.scm:10760
 msgid ""
 "Magic is Perl's way of enhancing variables.  This mechanism\n"
 "lets the user add extra data to any variable and hook syntactical\n"
@@ -15815,11 +21193,11 @@ msgid ""
 "having to write a single line of XS."
 msgstr ""
 
-#: gnu/packages/perl.scm:9374
+#: gnu/packages/perl.scm:10783
 msgid "Easily generate well-formed, namespace-aware XML"
 msgstr ""
 
-#: gnu/packages/perl.scm:9375
+#: gnu/packages/perl.scm:10784
 msgid ""
 "@code{XML::Writer} is a simple Perl module for writing XML\n"
 "documents: it takes care of constructing markup and escaping data correctly.\n"
@@ -15829,11 +21207,11 @@ msgid ""
 "attribute names."
 msgstr ""
 
-#: gnu/packages/perl.scm:9402
+#: gnu/packages/perl.scm:10811
 msgid "Opaque, extensible XS pointer backed objects using sv_magic"
 msgstr ""
 
-#: gnu/packages/perl.scm:9404
+#: gnu/packages/perl.scm:10813
 msgid ""
 "This way of associating structs with Perl space objects is designed to\n"
 "supersede Perl's builtin @code{T_PTROBJ} with something that is extensible\n"
@@ -15841,62 +21219,62 @@ msgid ""
 "neither visible nor modifiable from Perl space)."
 msgstr ""
 
-#: gnu/packages/perl.scm:9426
+#: gnu/packages/perl.scm:10834
 msgid "YAML for Perl"
 msgstr "YAML para Perl"
 
-#: gnu/packages/perl.scm:9427
+#: gnu/packages/perl.scm:10835
 msgid ""
 "The YAML.pm module implements a YAML Loader and Dumper based\n"
 "on the YAML 1.0 specification."
 msgstr ""
 
-#: gnu/packages/perl.scm:9448
+#: gnu/packages/perl.scm:10853
 msgid "Perl YAML Serialization using XS and libyaml"
 msgstr ""
 
-#: gnu/packages/perl.scm:9450
+#: gnu/packages/perl.scm:10855
 msgid ""
 "@code{YAML::XS} is a Perl XS binding to libyaml which offers Perl the\n"
 "best YAML support to date."
 msgstr ""
 
-#: gnu/packages/perl.scm:9473
+#: gnu/packages/perl.scm:10878
 msgid "Read/Write YAML files"
 msgstr "Ficheros Lectura/Escritura YAML"
 
-#: gnu/packages/perl.scm:9474
+#: gnu/packages/perl.scm:10879
 msgid ""
 "YAML::Tiny is a perl class for reading and writing\n"
 "YAML-style files, written with as little code as possible, reducing load time\n"
 "and memory overhead."
 msgstr ""
 
-#: gnu/packages/perl.scm:9498
+#: gnu/packages/perl.scm:10903
 msgid "Generate recursive-descent parsers"
 msgstr ""
 
-#: gnu/packages/perl.scm:9500
+#: gnu/packages/perl.scm:10905
 msgid ""
 "@code{Parse::RecDescent} can incrementally generate top-down\n"
 "recursive-descent text parsers from simple yacc-like grammar specifications."
 msgstr ""
 
-#: gnu/packages/perl.scm:9520
+#: gnu/packages/perl.scm:10925
 msgid "Generate and use LALR parsers"
 msgstr "Genera y utiliza intérpretes LALR"
 
-#: gnu/packages/perl.scm:9521
+#: gnu/packages/perl.scm:10926
 msgid ""
 "This package compiles yacc-like @dfn{Look Ahead LR} (LALR)\n"
 "grammars to generate Perl object oriented parser modules."
 msgstr ""
 
-#: gnu/packages/perl.scm:9547
+#: gnu/packages/perl.scm:10952
 msgid "Distribution metadata for a CPAN dist"
 msgstr "Distribuir matadatos para un dist CPAN"
 
-#: gnu/packages/perl.scm:9548
+#: gnu/packages/perl.scm:10953
 msgid ""
 "Software distributions released to the CPAN include a\n"
 "META.json or, for older distributions, META.yml, which describes the\n"
@@ -15907,11 +21285,11 @@ msgid ""
 "methods for interrogating that data."
 msgstr ""
 
-#: gnu/packages/perl.scm:9571
+#: gnu/packages/perl.scm:10976
 msgid "Set of version requirements for a CPAN dist"
 msgstr ""
 
-#: gnu/packages/perl.scm:9572
+#: gnu/packages/perl.scm:10977
 msgid ""
 "A CPAN::Meta::Requirements object models a set of version\n"
 "constraints like those specified in the META.yml or META.json files in CPAN\n"
@@ -15920,22 +21298,22 @@ msgid ""
 "representation."
 msgstr ""
 
-#: gnu/packages/perl.scm:9595
+#: gnu/packages/perl.scm:11000
 msgid "Read and write a subset of YAML for CPAN Meta files"
 msgstr ""
 
-#: gnu/packages/perl.scm:9596
+#: gnu/packages/perl.scm:11001
 msgid ""
 "This module implements a subset of the YAML specification\n"
 "for use in reading and writing CPAN metadata files like META.yml and\n"
 "MYMETA.yml."
 msgstr ""
 
-#: gnu/packages/perl.scm:9617
+#: gnu/packages/perl.scm:11022
 msgid "Build and install Perl modules"
 msgstr "Compila e instala módulos Perl"
 
-#: gnu/packages/perl.scm:9618
+#: gnu/packages/perl.scm:11023
 msgid ""
 "@code{Module::Build} is a system for building, testing, and\n"
 "installing Perl modules; it used to be part of Perl itself until version 5.22,\n"
@@ -15946,21 +21324,21 @@ msgid ""
 "system---most of the @code{Module::Build} code is pure-Perl."
 msgstr ""
 
-#: gnu/packages/perl.scm:9644
+#: gnu/packages/perl.scm:11049
 msgid "Parse META.yml and META.json CPAN metadata files"
 msgstr ""
 
-#: gnu/packages/perl.scm:9645
+#: gnu/packages/perl.scm:11050
 msgid ""
 "Parse::CPAN::Meta is a parser for META.json and META.yml\n"
 "files, using JSON::PP and/or CPAN::Meta::YAML."
 msgstr ""
 
-#: gnu/packages/perl.scm:9663
+#: gnu/packages/perl.scm:11067
 msgid "Common Scalar and List utility subroutines"
 msgstr ""
 
-#: gnu/packages/perl.scm:9664
+#: gnu/packages/perl.scm:11068
 msgid ""
 "This package contains a selection of subroutines that people\n"
 "have expressed would be nice to have in the perl core, but the usage would not\n"
@@ -15968,19 +21346,32 @@ msgid ""
 "such that being individual extensions would be wasteful."
 msgstr ""
 
-#: gnu/packages/perl.scm:9688
+#: gnu/packages/perl.scm:11106
+#, fuzzy
+msgid "SDL bindings to Perl"
+msgstr "Enlazando XOSD para Guile"
+
+#: gnu/packages/perl.scm:11108
+msgid ""
+"SDL Perl is a package of Perl modules that provide both functional and\n"
+"object oriented interfaces to the Simple DirectMedia Layer for Perl5.  This\n"
+"package takes some liberties with the SDL API, and attempts to adhere to the\n"
+"spirit of both the SDL and Perl."
+msgstr ""
+
+#: gnu/packages/perl.scm:11132
 msgid "Cross-platform functions emulating common shell commands"
 msgstr ""
 
-#: gnu/packages/perl.scm:9690
+#: gnu/packages/perl.scm:11134
 msgid "Shell::Command is a thin wrapper around ExtUtils::Command."
 msgstr ""
 
-#: gnu/packages/perl.scm:9717
+#: gnu/packages/perl.scm:11160
 msgid "Object-oriented File::Find replacement in Perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:9718
+#: gnu/packages/perl.scm:11161
 msgid ""
 "File::Find::Object is an object-oriented\n"
 "File::Find replacement in Perl."
@@ -15988,21 +21379,21 @@ msgstr ""
 "File::Find::Object es un objecto-orientado\n"
 "File::Find sustitución en Perl."
 
-#: gnu/packages/perl.scm:9746
+#: gnu/packages/perl.scm:11189
 msgid "Alternative interface to File::Find::Object"
 msgstr "Interfaz alternativo para Fichero::Encontrar::Objeto"
 
-#: gnu/packages/perl.scm:9747
+#: gnu/packages/perl.scm:11190
 msgid ""
 "File::Find::Object::Rule is an alternative Perl\n"
 "interface to File::Find::Object."
 msgstr ""
 
-#: gnu/packages/perl.scm:9768
+#: gnu/packages/perl.scm:11211
 msgid "Wrapper for @code{File::Find} ala @code{find(1)}"
 msgstr ""
 
-#: gnu/packages/perl.scm:9770
+#: gnu/packages/perl.scm:11213
 msgid ""
 "@code{File::Find} is great, but constructing the wanted routine can\n"
 "sometimes be a pain.  @code{File::Finder} provides a wanted-writer, using\n"
@@ -16017,13 +21408,12 @@ msgid ""
 "used as the head of many different sequences."
 msgstr ""
 
-#: gnu/packages/perl.scm:9799
+#: gnu/packages/perl.scm:11242
 #, fuzzy
-#| msgid "Boolean support for Perl"
 msgid "TTF font support for Perl"
 msgstr "Apoyo booleano para Perl"
 
-#: gnu/packages/perl.scm:9800
+#: gnu/packages/perl.scm:11243
 msgid ""
 "This package provides a Perl module for TrueType/OpenType\n"
 "font hacking.  It supports reading, processing and writing of the following\n"
@@ -16032,22 +21422,22 @@ msgid ""
 "prop, vhea, vmtx and the reading and writing of all other table types."
 msgstr ""
 
-#: gnu/packages/perl.scm:9838
+#: gnu/packages/perl.scm:11281
 msgid "Collection of Perl modules for time/date manipulation"
 msgstr ""
 
-#: gnu/packages/perl.scm:9839
+#: gnu/packages/perl.scm:11282
 msgid ""
 "Provides several perl modules for date/time manipulation:\n"
 "@code{Time::CTime.pm}, @code{Time::JulianDay.pm}, @code{Time::ParseDate.pm},\n"
 "@code{Time::Timezone.pm}, and @code{Time::DaysInMonth.pm}."
 msgstr ""
 
-#: gnu/packages/perl.scm:9868
+#: gnu/packages/perl.scm:11311
 msgid "Perl library for testing if a time() is in a specific period"
 msgstr ""
 
-#: gnu/packages/perl.scm:9869
+#: gnu/packages/perl.scm:11312
 msgid ""
 "This Perl library provides a function which tells whether a\n"
 "specific time falls within a specified time period.  Its syntax for specifying\n"
@@ -16057,11 +21447,11 @@ msgid ""
 "1998\"."
 msgstr ""
 
-#: gnu/packages/perl.scm:9900
+#: gnu/packages/perl.scm:11343
 msgid "Iterative, recursive file finder"
 msgstr ""
 
-#: gnu/packages/perl.scm:9901
+#: gnu/packages/perl.scm:11344
 msgid ""
 "Path::Iterator::Rule iterates over files and directories to\n"
 "identify ones matching a user-defined set of rules.  The API is based heavily\n"
@@ -16088,11 +21478,11 @@ msgid ""
 "arduous to type for one-liners."
 msgstr ""
 
-#: gnu/packages/perl.scm:9941
+#: gnu/packages/perl.scm:11384
 msgid "Include constants from POD"
 msgstr ""
 
-#: gnu/packages/perl.scm:9942
+#: gnu/packages/perl.scm:11385
 msgid ""
 "This module allows you to specify those constants that\n"
 "should be documented in your POD, and pull them out a run time in a fairly\n"
@@ -16104,108 +21494,117 @@ msgid ""
 "(or it can't find %INC{caller()})."
 msgstr ""
 
-#: gnu/packages/perl.scm:9968
+#: gnu/packages/perl.scm:11411
 msgid "Collection of regexp patterns"
 msgstr ""
 
-#: gnu/packages/perl.scm:9969
+#: gnu/packages/perl.scm:11412
 msgid ""
 "Regexp::Pattern is a convention for organizing reusable\n"
 "regexp patterns in modules."
 msgstr ""
 
-#: gnu/packages/perl.scm:9993
+#: gnu/packages/perl.scm:11436
 #, fuzzy
-#| msgid "Pretty printing of data structures"
 msgid "Parse Lisp S-Expressions into Perl data structures"
 msgstr "Impresión bonita de estructura de datos"
 
-#: gnu/packages/perl.scm:9994
+#: gnu/packages/perl.scm:11437
 msgid ""
 "Data::SExpression parses Lisp S-Expressions into Perl data\n"
 "structures."
 msgstr ""
 
-#: gnu/packages/photo.scm:89
+#: gnu/packages/photo.scm:170
+msgid "Import photos and videos from cameras, phones and memory cards"
+msgstr ""
+
+#: gnu/packages/photo.scm:171
+msgid ""
+"Import photos and videos from cameras, phones and memory\n"
+"cards and generate meaningful file and folder names."
+msgstr ""
+
+#: gnu/packages/photo.scm:194
 msgid "Raw image decoder"
 msgstr "Decodificador de imagen cruda"
 
-#: gnu/packages/photo.scm:91
+#: gnu/packages/photo.scm:196
 msgid ""
 "LibRaw is a library for reading RAW files obtained from digital photo\n"
 "cameras (CRW/CR2, NEF, RAF, DNG, and others)."
 msgstr ""
 
-#: gnu/packages/photo.scm:126
+#: gnu/packages/photo.scm:232
 msgid "Read and manipulate EXIF data in digital photographs"
 msgstr ""
 
-#: gnu/packages/photo.scm:128
+#: gnu/packages/photo.scm:234
 msgid ""
 "The libexif C library allows applications to read, edit, and save EXIF\n"
 "data as produced by digital cameras."
 msgstr ""
 
-#: gnu/packages/photo.scm:154
+#: gnu/packages/photo.scm:260
 msgid "Accessing digital cameras"
 msgstr "Accediendo cámaras digitales"
 
-#: gnu/packages/photo.scm:156
+#: gnu/packages/photo.scm:262
 msgid ""
 "This is the library backend for gphoto2.  It contains the code for PTP,\n"
 "MTP, and other vendor specific protocols for controlling and transferring data\n"
 "from digital cameras."
 msgstr ""
 
-#: gnu/packages/photo.scm:198
+#: gnu/packages/photo.scm:304
 msgid "Command-line tools to access digital cameras"
 msgstr ""
 
-#: gnu/packages/photo.scm:200
+#: gnu/packages/photo.scm:306
 msgid ""
 "Gphoto2 is a set of command line utilities for manipulating a large\n"
 "number of different digital cameras.  Through libgphoto2, it supports PTP,\n"
 "MTP, and much more."
 msgstr ""
 
-#: gnu/packages/photo.scm:240
+#: gnu/packages/photo.scm:347
 msgid "Program and Perl library to manipulate EXIF and other metadata"
 msgstr ""
 
-#: gnu/packages/photo.scm:241
+#: gnu/packages/photo.scm:348
 msgid ""
 "This package provides the @code{exiftool} command and the\n"
 "@code{Image::ExifTool} Perl library to manipulate EXIF tags of digital images\n"
 "and a wide variety of other metadata."
 msgstr ""
 
-#: gnu/packages/photo.scm:265
+#: gnu/packages/photo.scm:372
 msgid "Library for panoramic images"
 msgstr "Biblioteca para imágenes panorámicas"
 
-#: gnu/packages/photo.scm:267
+#: gnu/packages/photo.scm:374
 msgid ""
 "The libpano13 package contains the backend library written by the\n"
 "Panorama Tools project for building panoramic images from a set of\n"
 "overlapping images, as well as some command line tools."
 msgstr ""
 
-#: gnu/packages/photo.scm:311
+#: gnu/packages/photo.scm:418
 msgid "Tools for combining and blending images"
 msgstr ""
 
-#: gnu/packages/photo.scm:313
+#: gnu/packages/photo.scm:420
 msgid ""
 "Enblend blends away the seams in a panoramic image mosaic using a\n"
 "multi-resolution spline.  Enfuse merges different exposures of the same\n"
 "scene to produce an image that looks much like a tone-mapped image."
 msgstr ""
 
-#: gnu/packages/photo.scm:344
+#: gnu/packages/photo.scm:451
 msgid "Library to correct optical lens defects with a lens database"
 msgstr ""
 
-#: gnu/packages/photo.scm:345
+#: gnu/packages/photo.scm:452
 msgid ""
 "Digital photographs are not ideal.  Of course, the better is\n"
 "your camera, the better the results will be, but in any case if you look\n"
@@ -16219,11 +21618,11 @@ msgid ""
 "photographic equipment."
 msgstr ""
 
-#: gnu/packages/photo.scm:420
+#: gnu/packages/photo.scm:570
 msgid "Virtual lighttable and darkroom for photographers"
 msgstr ""
 
-#: gnu/packages/photo.scm:421
+#: gnu/packages/photo.scm:571
 msgid ""
 "Darktable is a photography workflow application and RAW\n"
 "developer.  It manages your digital negatives in a database, lets you view\n"
@@ -16231,22 +21630,49 @@ msgid ""
 "and enhance them."
 msgstr ""
 
-#: gnu/packages/photo.scm:492
+#: gnu/packages/photo.scm:615
+msgid "Quick, simple but powerful image editor"
+msgstr ""
+
+#: gnu/packages/photo.scm:616
+msgid ""
+"Photoflare is a cross-platform image editor with an aim\n"
+"to balance between powerful features and a very friendly graphical user\n"
+"interface.  It suits a wide variety of different tasks and users who value a\n"
+"more nimble workflow.  Features include basic image editing capabilities,\n"
+"paint brushes, image filters, colour adjustments and more advanced features\n"
+"such as Batch image processing."
+msgstr ""
+
+#: gnu/packages/photo.scm:681
+#, fuzzy
+msgid "Camera control and capture"
+msgstr "Control adicional de apéndices"
+
+#: gnu/packages/photo.scm:683
+msgid ""
+"Entangle is an application which uses GTK and libgphoto2 to provide a\n"
+"graphical interface for tethered photography with digital cameras.  It\n"
+"includes control over camera shooting and configuration settings and 'hands\n"
+"off' shooting directly from the controlling computer."
+msgstr ""
+
+#: gnu/packages/photo.scm:752
 msgid "Panorama photo stitcher"
 msgstr "Grapadora de foto panorámica"
 
-#: gnu/packages/photo.scm:494
+#: gnu/packages/photo.scm:754
 msgid ""
 "Hugin is an easy to use panoramic imaging toolchain with a graphical\n"
 "user interface.  It can be used to assemble a mosaic of photographs into\n"
 "a complete panorama and stitch any series of overlapping pictures."
 msgstr ""
 
-#: gnu/packages/photo.scm:545
+#: gnu/packages/photo.scm:806
 msgid "Raw image developing and processing"
 msgstr ""
 
-#: gnu/packages/photo.scm:546
+#: gnu/packages/photo.scm:807
 msgid ""
 "RawTherapee is a raw image processing suite.  It comprises a\n"
 "subset of image editing operations specifically aimed at non-destructive raw\n"
@@ -16276,11 +21702,11 @@ msgid ""
 "cripples Emacs and other quality pieces of software."
 msgstr ""
 
-#: gnu/packages/readline.scm:94
+#: gnu/packages/readline.scm:104
 msgid "Edit command lines while typing, with history support"
 msgstr ""
 
-#: gnu/packages/readline.scm:96
+#: gnu/packages/readline.scm:106
 msgid ""
 "The GNU readline library allows users to edit command lines as they\n"
 "are typed in.  It can maintain a searchable history of previously entered\n"
@@ -16289,11 +21715,11 @@ msgid ""
 "comfortable for anyone."
 msgstr ""
 
-#: gnu/packages/readline.scm:135
+#: gnu/packages/readline.scm:162
 msgid "Wrapper to allow the editing of keyboard commands"
 msgstr ""
 
-#: gnu/packages/readline.scm:137
+#: gnu/packages/readline.scm:164
 msgid ""
 "Rlwrap is a 'readline wrapper', a small utility that uses the GNU\n"
 "readline library to allow the editing of keyboard input for any command.  You\n"
@@ -16302,11 +21728,11 @@ msgid ""
 "'special effects' using the filter mechanism."
 msgstr ""
 
-#: gnu/packages/scanner.scm:100
+#: gnu/packages/scanner.scm:110
 msgid "Raster image scanner library and drivers, without scanner support"
 msgstr ""
 
-#: gnu/packages/scanner.scm:101
+#: gnu/packages/scanner.scm:111
 msgid ""
 "SANE stands for \"Scanner Access Now Easy\" and is an API\n"
 "proving access to any raster image scanner hardware (flatbed scanner,\n"
@@ -16314,11 +21740,11 @@ msgid ""
 "package contains the library, but no drivers."
 msgstr ""
 
-#: gnu/packages/scanner.scm:140
+#: gnu/packages/scanner.scm:159
 msgid "Raster image scanner library and drivers, with scanner support"
 msgstr ""
 
-#: gnu/packages/scanner.scm:141
+#: gnu/packages/scanner.scm:160
 msgid ""
 "SANE stands for \"Scanner Access Now Easy\" and is an API\n"
 "proving access to any raster image scanner hardware (flatbed scanner,\n"
@@ -16326,22 +21752,38 @@ msgid ""
 "package contains the library and drivers."
 msgstr ""
 
-#: gnu/packages/scheme.scm:216
+#: gnu/packages/scanner.scm:237
+msgid "Featureful graphical interface for document and image scanners"
+msgstr ""
+
+#: gnu/packages/scanner.scm:239
+msgid ""
+"XSane is a graphical interface for controlling a scanner and acquiring\n"
+"images from it.  You can photocopy multi-page documents and save, fax, print,\n"
+"or e-mail your scanned images.  It is highly configurable and exposes all\n"
+"device settings, letting you fine-tune the final result.  It can also be used\n"
+"as a GIMP plugin to acquire images directly from a scanner.\n"
+"\n"
+"XSane talks to scanners through the @acronym{SANE, Scanner Access Now Easy}\n"
+"back-end library, which supports almost all existing scanners."
+msgstr ""
+
+#: gnu/packages/scheme.scm:220
 msgid "A Scheme implementation with integrated editor and debugger"
 msgstr "Una implementación Scheme con editor integrado y depurador"
 
-#: gnu/packages/scheme.scm:218
+#: gnu/packages/scheme.scm:222
 msgid ""
 "GNU/MIT Scheme is an implementation of the Scheme programming\n"
 "language.  It provides an interpreter, a compiler and a debugger.  It also\n"
 "features an integrated Emacs-like editor and a large runtime library."
 msgstr ""
 
-#: gnu/packages/scheme.scm:311
+#: gnu/packages/scheme.scm:313
 msgid "Efficient Scheme compiler"
 msgstr "Compilador eficiente Scheme"
 
-#: gnu/packages/scheme.scm:313
+#: gnu/packages/scheme.scm:315
 msgid ""
 "Bigloo is a Scheme implementation devoted to one goal: enabling Scheme\n"
 "based programming style where C(++) is usually required.  Bigloo attempts to\n"
@@ -16352,11 +21794,11 @@ msgid ""
 "and between Scheme and Java programs."
 msgstr ""
 
-#: gnu/packages/scheme.scm:364
+#: gnu/packages/scheme.scm:366
 msgid "Multi-tier programming language for the Web 2.0"
 msgstr ""
 
-#: gnu/packages/scheme.scm:366
+#: gnu/packages/scheme.scm:368
 msgid ""
 "HOP is a multi-tier programming language for the Web 2.0 and the\n"
 "so-called diffuse Web.  It is designed for programming interactive web\n"
@@ -16365,33 +21807,22 @@ msgid ""
 "mashups, office (web agendas, mail clients, ...), etc."
 msgstr ""
 
-#: gnu/packages/scheme.scm:407
-msgid "R5RS Scheme implementation that compiles native code via C"
-msgstr "Implementación Scheme S5R5 que compila código nativo vía C"
-
-#: gnu/packages/scheme.scm:409
-msgid ""
-"CHICKEN is a compiler for the Scheme programming language.  CHICKEN\n"
-"produces portable and efficient C, supports almost all of the R5RS Scheme\n"
-"language standard, and includes many enhancements and extensions."
-msgstr ""
-
-#: gnu/packages/scheme.scm:428
+#: gnu/packages/scheme.scm:389
 msgid "Scheme implementation using a bytecode interpreter"
 msgstr ""
 
-#: gnu/packages/scheme.scm:430
+#: gnu/packages/scheme.scm:391
 msgid ""
 "Scheme 48 is an implementation of Scheme based on a byte-code\n"
 "interpreter and is designed to be used as a testbed for experiments in\n"
 "implementation techniques and as an expository tool."
 msgstr ""
 
-#: gnu/packages/scheme.scm:549
+#: gnu/packages/scheme.scm:520
 msgid "Implementation of Scheme and related languages"
 msgstr "Implementación de Scheme y lenguajes relacionados"
 
-#: gnu/packages/scheme.scm:551
+#: gnu/packages/scheme.scm:522
 msgid ""
 "Racket is an implementation of the Scheme programming language (R5RS and\n"
 "R6RS) and related languages, such as Typed Racket.  It features a compiler and\n"
@@ -16399,11 +21830,27 @@ msgid ""
 "of libraries."
 msgstr ""
 
-#: gnu/packages/scheme.scm:578
+#: gnu/packages/scheme.scm:546
+msgid "Racket without bundled packages such as Dr. Racket"
+msgstr ""
+
+#: gnu/packages/scheme.scm:558
+msgid ""
+"Racket is an implementation of the Scheme programming language (R5RS and\n"
+"R6RS) and related languages, such as Typed Racket.  It features a compiler and\n"
+"a virtual machine with just-in-time native compilation, as well as a large set\n"
+"of libraries.\n"
+"\n"
+"In this minimal package, the essential package racket-libs is included, as\n"
+"well as libraries that live in collections.  In particular, @command{raco} and\n"
+"the @code{pkg} library are still bundled."
+msgstr ""
+
+#: gnu/packages/scheme.scm:588
 msgid "Efficient Scheme interpreter and compiler"
 msgstr "Interpretador y compilador Scheme eficiente"
 
-#: gnu/packages/scheme.scm:580
+#: gnu/packages/scheme.scm:590
 msgid ""
 "Gambit consists of two main programs: gsi, the Gambit Scheme\n"
 "interpreter, and gsc, the Gambit Scheme compiler.  The interpreter contains\n"
@@ -16414,11 +21861,11 @@ msgid ""
 "mixed."
 msgstr ""
 
-#: gnu/packages/scheme.scm:614
+#: gnu/packages/scheme.scm:624
 msgid "Small embeddable Scheme implementation"
 msgstr "Pequeña implementación Scheme embebible"
 
-#: gnu/packages/scheme.scm:616
+#: gnu/packages/scheme.scm:626
 msgid ""
 "Chibi-Scheme is a very small library with no external dependencies\n"
 "intended for use as an extension and scripting language in C programs.  In\n"
@@ -16427,23 +21874,11 @@ msgid ""
 "threads."
 msgstr ""
 
-#: gnu/packages/scheme.scm:788
-msgid "Scmutils library for MIT Scheme"
-msgstr "Biblioteca Scmutils para MIT Scheme"
-
-#: gnu/packages/scheme.scm:789
-msgid ""
-"The Scmutils system is an integrated library of\n"
-"procedures, embedded in the programming language Scheme, and intended to\n"
-"support teaching and research in mathematical physics and electrical\n"
-"engineering."
-msgstr ""
-
-#: gnu/packages/scheme.scm:838
+#: gnu/packages/scheme.scm:673
 msgid "Structure and Interpretation of Computer Programs"
 msgstr ""
 
-#: gnu/packages/scheme.scm:839
+#: gnu/packages/scheme.scm:674
 msgid ""
 "Structure and Interpretation of Computer Programs (SICP) is\n"
 "a textbook aiming to teach the principles of computer programming.\n"
@@ -16453,31 +21888,31 @@ msgid ""
 "metalinguistic abstraction, recursion, interpreters, and modular programming."
 msgstr ""
 
-#: gnu/packages/scheme.scm:881
+#: gnu/packages/scheme.scm:716
 msgid "SRE String pattern-matching library for scheme48"
 msgstr ""
 
-#: gnu/packages/scheme.scm:883
+#: gnu/packages/scheme.scm:718
 msgid ""
 "String pattern-matching library for scheme48 based on the SRE\n"
 "regular-expression notation."
 msgstr ""
 
-#: gnu/packages/scheme.scm:916
+#: gnu/packages/scheme.scm:751
 msgid "Compatibility and utility library for Scheme"
 msgstr "Compatibilizar y utilidad bibliotecaria para Scheme"
 
-#: gnu/packages/scheme.scm:917
+#: gnu/packages/scheme.scm:752
 msgid ""
 "SLIB is a portable Scheme library providing compatibility and\n"
 "utility functions for all standard Scheme implementations."
 msgstr ""
 
-#: gnu/packages/scheme.scm:973
+#: gnu/packages/scheme.scm:808
 msgid "Scheme implementation conforming to R5RS and IEEE P1178"
 msgstr ""
 
-#: gnu/packages/scheme.scm:974
+#: gnu/packages/scheme.scm:809
 msgid ""
 "GNU SCM is an implementation of Scheme.  This\n"
 "implementation includes Hobbit, a Scheme-to-C compiler, which can\n"
@@ -16485,13 +21920,12 @@ msgid ""
 "linked with a SCM executable."
 msgstr ""
 
-#: gnu/packages/scheme.scm:1031
+#: gnu/packages/scheme.scm:866
 #, fuzzy
-#| msgid "Implementation of the Perl programming language"
 msgid "Light-weight interpreter for the Scheme programming language"
 msgstr "Implementación del lenguaje de programación Perl"
 
-#: gnu/packages/scheme.scm:1033
+#: gnu/packages/scheme.scm:868
 msgid ""
 "TinyScheme is a light-weight Scheme interpreter that implements as large a\n"
 "subset of R5RS as was possible without getting very large and complicated.\n"
@@ -16507,11 +21941,11 @@ msgid ""
 "small program, it is easy to comprehend, get to grips with, and use."
 msgstr ""
 
-#: gnu/packages/scheme.scm:1112
+#: gnu/packages/scheme.scm:947
 msgid "Brutally efficient Scheme compiler"
 msgstr "Compilador Scheme brutalmente eficiente"
 
-#: gnu/packages/scheme.scm:1114
+#: gnu/packages/scheme.scm:949
 msgid ""
 "Stalin is an aggressively optimizing whole-program compiler\n"
 "for Scheme that does polyvariant interprocedural flow analysis,\n"
@@ -16523,22 +21957,22 @@ msgid ""
 "generation."
 msgstr ""
 
-#: gnu/packages/scheme.scm:1167
+#: gnu/packages/scheme.scm:1002
 msgid "Scheme-like lisp implementation"
 msgstr "Implementación de lisp de tipo Scheme"
 
-#: gnu/packages/scheme.scm:1169
+#: gnu/packages/scheme.scm:1004
 msgid ""
 "@code{femtolisp} is a scheme-like lisp implementation with a\n"
 "simple, elegant Scheme dialect.  It is a lisp-1 with lexical scope.\n"
 "The core is 12 builtin special forms and 33 builtin functions."
 msgstr ""
 
-#: gnu/packages/scheme.scm:1240
+#: gnu/packages/scheme.scm:1074
 msgid "Scheme scripting engine"
 msgstr ""
 
-#: gnu/packages/scheme.scm:1241
+#: gnu/packages/scheme.scm:1075
 msgid ""
 "Gauche is a R7RS Scheme scripting engine aiming at being a\n"
 "handy tool that helps programmers and system administrators to write small to\n"
@@ -16548,11 +21982,26 @@ msgid ""
 "and list gauche extension packages."
 msgstr ""
 
-#: gnu/packages/search.scm:77
+#: gnu/packages/scheme.scm:1176
+msgid "Meta-dialect of Scheme with post-modern features"
+msgstr ""
+
+#: gnu/packages/scheme.scm:1177
+msgid ""
+"Gerbil is an opinionated dialect of Scheme designed for Systems\n"
+"Programming, with a state of the art macro and module system on top of the Gambit\n"
+"runtime.  The macro system is based on quote-syntax, and provides the full meta-syntactic\n"
+"tower with a native implementation of syntax-case.  It also provides a full-blown module\n"
+"system, similar to PLT Scheme's (sorry, Racket) modules.  The main difference from Racket\n"
+"is that Gerbil modules are single instantiation, supporting high performance ahead of\n"
+"time compilation and compiled macros."
+msgstr ""
+
+#: gnu/packages/search.scm:78
 msgid "Search Engine Library"
 msgstr "Biblioteca de Motor de Búsqueda"
 
-#: gnu/packages/search.scm:79
+#: gnu/packages/search.scm:80
 msgid ""
 "Xapian is a highly adaptable toolkit which allows developers to easily\n"
 "add advanced indexing and search facilities to their own applications.  It\n"
@@ -16560,26 +22009,26 @@ msgid ""
 "rich set of boolean query operators."
 msgstr ""
 
-#: gnu/packages/search.scm:111
+#: gnu/packages/search.scm:113
 msgid "Python bindings for the Xapian search engine library"
 msgstr ""
 
-#: gnu/packages/search.scm:132
+#: gnu/packages/search.scm:134
 msgid "Perl XS frontend to the Xapian C++ search library"
 msgstr ""
 
-#: gnu/packages/search.scm:134
+#: gnu/packages/search.scm:136
 msgid ""
 "Search::Xapian wraps most methods of most Xapian classes.  The missing\n"
 "classes and methods should be added in the future.  It also provides a\n"
 "simplified, more 'perlish' interface to some common operations."
 msgstr ""
 
-#: gnu/packages/search.scm:175
+#: gnu/packages/search.scm:177
 msgid "Tool for Obsessive Compulsive Classifiers"
 msgstr ""
 
-#: gnu/packages/search.scm:177
+#: gnu/packages/search.scm:179
 msgid ""
 "libtocc is the engine of the Tocc project, a tag-based file management\n"
 "system.  The goal of Tocc is to provide a better system for classifying files\n"
@@ -16587,21 +22036,21 @@ msgid ""
 "files and directories."
 msgstr ""
 
-#: gnu/packages/search.scm:199
+#: gnu/packages/search.scm:201
 msgid "Command-line interface to libtocc"
 msgstr "Interfaz de mandato lineal para libtocc"
 
-#: gnu/packages/search.scm:201
+#: gnu/packages/search.scm:203
 msgid ""
 "Tocc is a tag-based file management system.  This package contains the\n"
 "command line tool for interacting with libtocc."
 msgstr ""
 
-#: gnu/packages/search.scm:219
+#: gnu/packages/search.scm:221
 msgid "Finding text and HTML files that match boolean expressions"
 msgstr ""
 
-#: gnu/packages/search.scm:221
+#: gnu/packages/search.scm:223
 msgid ""
 "GNU Bool is a utility to perform text searches on files using Boolean\n"
 "expressions.  For example, a search for \"hello AND world\" would return a\n"
@@ -16612,22 +22061,22 @@ msgid ""
 "for parsing HTML files."
 msgstr ""
 
-#: gnu/packages/search.scm:251
+#: gnu/packages/search.scm:253
 msgid "Full-text search system"
 msgstr "Sistema de búsqueda de texto completo"
 
-#: gnu/packages/search.scm:252
+#: gnu/packages/search.scm:254
 msgid ""
 "Hyper Estraier can be used to integrate full-text\n"
 "search into applications, using either the provided command line and CGI\n"
 "interfaces, or a C API."
 msgstr ""
 
-#: gnu/packages/search.scm:270
+#: gnu/packages/search.scm:272
 msgid "Locate files on the file system"
 msgstr "Localiza ficheros en el sistema del fichero"
 
-#: gnu/packages/search.scm:272
+#: gnu/packages/search.scm:274
 msgid ""
 "mlocate is a locate/updatedb implementation.  The @code{m} stands for\n"
 "\"merging\": @code{updatedb} reuses the existing database to avoid rereading\n"
@@ -16637,22 +22086,22 @@ msgid ""
 "conflict with slocate compatibility."
 msgstr ""
 
-#: gnu/packages/search.scm:337
+#: gnu/packages/search.scm:339
 msgid "Web indexing system"
 msgstr "Sistema indizado web"
 
-#: gnu/packages/search.scm:339
+#: gnu/packages/search.scm:341
 msgid ""
 "Swish-e is Simple Web Indexing System for Humans - Enhanced.  Swish-e\n"
 "can quickly and easily index directories of files or remote web sites and\n"
 "search the generated indexes."
 msgstr ""
 
-#: gnu/packages/search.scm:406
+#: gnu/packages/search.scm:408
 msgid "Personal document indexing system"
 msgstr "Sistema personal de indexado de documentos"
 
-#: gnu/packages/search.scm:408
+#: gnu/packages/search.scm:410
 msgid ""
 "Xapers is a personal document indexing system,\n"
 "geared towards academic journal articles build on the Xapian search engine.\n"
@@ -16676,11 +22125,11 @@ msgid ""
 "server and an IRC server."
 msgstr ""
 
-#: gnu/packages/shells.scm:82
+#: gnu/packages/shells.scm:91
 msgid "POSIX-compliant shell optimised for size"
 msgstr ""
 
-#: gnu/packages/shells.scm:84
+#: gnu/packages/shells.scm:93
 msgid ""
 "dash is a POSIX-compliant @command{/bin/sh} implementation that aims to be\n"
 "as small as possible, often without sacrificing speed.  It is faster than the\n"
@@ -16688,11 +22137,11 @@ msgid ""
 "direct descendant of NetBSD's Almquist Shell (@command{ash})."
 msgstr ""
 
-#: gnu/packages/shells.scm:194
+#: gnu/packages/shells.scm:235
 msgid "The friendly interactive shell"
 msgstr "El shell interactivo amigable"
 
-#: gnu/packages/shells.scm:196
+#: gnu/packages/shells.scm:237
 msgid ""
 "Fish (friendly interactive shell) is a shell focused on interactive use,\n"
 "discoverability, and friendliness.  Fish has very user-friendly and powerful\n"
@@ -16704,32 +22153,32 @@ msgid ""
 "and syntax highlighting."
 msgstr ""
 
-#: gnu/packages/shells.scm:249
+#: gnu/packages/shells.scm:290
 msgid "Foreign environment interface for fish shell"
 msgstr ""
 
-#: gnu/packages/shells.scm:250
+#: gnu/packages/shells.scm:291
 msgid ""
 "@code{fish-foreign-env} wraps bash script execution in a way\n"
 "that environment variables that are exported or modified get imported back\n"
 "into fish."
 msgstr ""
 
-#: gnu/packages/shells.scm:288
+#: gnu/packages/shells.scm:329
 msgid "Alternative implementation of the rc shell by Byron Rakitzis"
 msgstr "Implementación alternativa de los rc shell por Byron Rakitzis"
 
-#: gnu/packages/shells.scm:290
+#: gnu/packages/shells.scm:331
 msgid ""
 "This is a reimplementation by Byron Rakitzis of the Plan 9 shell.  It\n"
 "has a small feature set similar to a traditional Bourne shell."
 msgstr ""
 
-#: gnu/packages/shells.scm:321
+#: gnu/packages/shells.scm:362
 msgid "Extensible shell with higher-order functions"
 msgstr ""
 
-#: gnu/packages/shells.scm:323
+#: gnu/packages/shells.scm:364
 msgid ""
 "Es is an extensible shell.  The language was derived from the Plan 9\n"
 "shell, rc, and was influenced by functional programming languages, such as\n"
@@ -16738,11 +22187,11 @@ msgid ""
 "written by Paul Haahr and Byron Rakitzis."
 msgstr ""
 
-#: gnu/packages/shells.scm:383
+#: gnu/packages/shells.scm:431
 msgid "Unix shell based on csh"
 msgstr "Unix shell basada en csh"
 
-#: gnu/packages/shells.scm:385
+#: gnu/packages/shells.scm:433
 msgid ""
 "Tcsh is an enhanced, but completely compatible version of the Berkeley\n"
 "UNIX C shell (csh).  It is a command language interpreter usable both as an\n"
@@ -16751,11 +22200,11 @@ msgid ""
 "history mechanism, job control and a C-like syntax."
 msgstr ""
 
-#: gnu/packages/shells.scm:444
+#: gnu/packages/shells.scm:501
 msgid "Powerful shell for interactive use and scripting"
 msgstr ""
 
-#: gnu/packages/shells.scm:445
+#: gnu/packages/shells.scm:502
 msgid ""
 "The Z shell (zsh) is a Unix shell that can be used\n"
 "as an interactive login shell and as a powerful command interpreter\n"
@@ -16764,11 +22213,11 @@ msgid ""
 "ksh, and tcsh."
 msgstr ""
 
-#: gnu/packages/shells.scm:484
+#: gnu/packages/shells.scm:550
 msgid "Python-ish shell"
 msgstr "Shell Pytoniso"
 
-#: gnu/packages/shells.scm:486
+#: gnu/packages/shells.scm:552
 msgid ""
 "Xonsh is a Python-ish, BASHwards-looking shell language and command\n"
 "prompt.  The language is a superset of Python 3.4+ with additional shell\n"
@@ -16777,11 +22226,11 @@ msgid ""
 "use of experts and novices alike."
 msgstr ""
 
-#: gnu/packages/shells.scm:530
+#: gnu/packages/shells.scm:596
 msgid "Unix shell embedded in Scheme"
 msgstr "Unix shell embebido en Scheme"
 
-#: gnu/packages/shells.scm:532
+#: gnu/packages/shells.scm:598
 msgid ""
 "Scsh is a Unix shell embedded in Scheme.  Scsh has two main\n"
 "components: a process notation for running programs and setting up pipelines\n"
@@ -16789,11 +22238,11 @@ msgid ""
 "operating system."
 msgstr ""
 
-#: gnu/packages/shells.scm:571
+#: gnu/packages/shells.scm:638
 msgid "Minimal zero-config readline replacement"
 msgstr ""
 
-#: gnu/packages/shells.scm:573
+#: gnu/packages/shells.scm:640
 msgid ""
 "Linenoise is a minimal, zero-config, readline replacement.\n"
 "Its features include:\n"
@@ -16807,14 +22256,15 @@ msgid ""
 "@end enumerate\n"
 msgstr ""
 
-#: gnu/packages/shells.scm:635
+#: gnu/packages/shells.scm:702
 msgid "Extremely minimal shell with the simplest syntax possible"
 msgstr ""
 
-#: gnu/packages/shells.scm:637
+#: gnu/packages/shells.scm:704
 msgid ""
-"S is a new shell that aims to be extremely simple.\n"
-"S does not implemnt the POSIX shell standard.\n"
+"S is a new shell that aims to be extremely simple.  It does not\n"
+"implement the POSIX shell standard.\n"
+"\n"
 "There are no globs or \"splatting\" where a variable $FOO turns into multiple\n"
 "command line arguments.  One token stays one token forever.\n"
 "This is a \"no surprises\" straightforward approach.\n"
@@ -16824,56 +22274,106 @@ msgid ""
 "A @code{andglob} program is also provided along with s."
 msgstr ""
 
-#: gnu/packages/shells.scm:665
+#: gnu/packages/shells.scm:733
 msgid "Port of OpenBSD Korn Shell"
 msgstr "Puerto de Shell Korn OpenBSD"
 
-#: gnu/packages/shells.scm:667
+#: gnu/packages/shells.scm:735
 msgid ""
 "Oksh is a port of the OpenBSD Korn Shell.\n"
 "The OpenBSD Korn Shell is a cleaned up and enhanced ksh."
 msgstr ""
 
-#: gnu/packages/shells.scm:699
+#: gnu/packages/shells.scm:767
 msgid "Korn Shell from OpenBSD"
 msgstr "Shell Korn desde OpenBSD"
 
-#: gnu/packages/shells.scm:701
+#: gnu/packages/shells.scm:769
 msgid ""
 "loksh is a Linux port of OpenBSD's @command{ksh}.  It is a small,\n"
 "interactive POSIX shell targeted at resource-constrained systems."
 msgstr ""
 
-#: gnu/packages/shells.scm:740
+#: gnu/packages/shells.scm:807
 msgid "Korn Shell from MirBSD"
 msgstr "Shell Korn de MirBSD"
 
-#: gnu/packages/shells.scm:741
+#: gnu/packages/shells.scm:808
 msgid ""
 "mksh is an actively developed free implementation of the\n"
 "Korn Shell programming language and a successor to the Public Domain Korn\n"
 "Shell (pdksh)."
 msgstr ""
 
-#: gnu/packages/shells.scm:783
-msgid "Bash-compatible Unix shell"
+#: gnu/packages/shells.scm:849
+#, fuzzy
+msgid "Programming language and Bash-compatible Unix shell"
 msgstr "Shell de Unix compatible con Bash"
 
-#: gnu/packages/shells.scm:784
+#: gnu/packages/shells.scm:850
+msgid ""
+"Oil is a programming language with automatic translation for\n"
+"Bash.  It includes osh, a Unix/POSIX shell that runs unmodified Bash\n"
+"scripts."
+msgstr ""
+
+#: gnu/packages/shells.scm:886
+msgid "POSIX-compatible shell written in Guile Scheme"
+msgstr ""
+
+#: gnu/packages/shells.scm:887
+msgid ""
+"Gash is a POSIX-compatible shell written in Guile\n"
+"Scheme.  It provides both the shell interface, as well as a Guile\n"
+"library for parsing shell scripts.  Gash is designed to bootstrap Bash\n"
+"as part of the Guix bootstrap process."
+msgstr ""
+
+#: gnu/packages/shells.scm:920
+msgid "Core POSIX utilities written in Guile Scheme"
+msgstr ""
+
+#: gnu/packages/shells.scm:921
+msgid ""
+"Gash-Utils provides Scheme implementations of many\n"
+"common POSIX utilities (there are about 40 of them, ranging in\n"
+"complexity from @command{false} to @command{awk}).  The utilities are\n"
+"designed to be capable of bootstrapping their standard GNU counterparts.\n"
+"Underpinning these utilities are many Scheme interfaces for manipulating\n"
+"files and text."
+msgstr ""
+
+#: gnu/packages/telephony.scm:118
+msgid "Libre iLBC codec"
+msgstr ""
+
+#: gnu/packages/telephony.scm:119
 msgid ""
-"Oil is a Unix / POSIX shell, compatible with Bash.  It\n"
-"implements the Oil language, which is a new shell language to which Bash can be\n"
-"automatically translated.  The Oil language is a superset of Bash.  It also\n"
-"implements the OSH language, a statically-parseable language based on Bash as it\n"
-"is commonly written."
+"LibiLBC is a packaging friendly copy of the iLBC codec from\n"
+"the WebRTC project.  It provides a base for distribution packages and can be\n"
+"used as drop-in replacement for the non-free code from RFC 3591."
+msgstr ""
+
+#: gnu/packages/telephony.scm:206
+#, fuzzy
+msgid "DSP library for telephony"
+msgstr "Biblioteca de imagen para Extempore"
+
+#: gnu/packages/telephony.scm:207
+msgid ""
+"SpanDSP is a library of DSP functions for telephony, in the\n"
+"8000 sample per second world of E1s, T1s, and higher order PCM channels.  It\n"
+"contains low level functions, such as basic filters.  It also contains higher\n"
+"level functions, such as cadenced supervisory tone detection, and a complete\n"
+"software FAX machine."
 msgstr ""
 
 # FUZZY
-#: gnu/packages/telephony.scm:100
+#: gnu/packages/telephony.scm:236
 msgid "(u)Common C++ framework for threaded applications"
 msgstr "Biblioteca (u)Common C++ para aplicaciones multihilo"
 
-#: gnu/packages/telephony.scm:101
+#: gnu/packages/telephony.scm:237
 msgid ""
 "GNU Common C++ is an portable, optimized class framework for\n"
 "threaded applications, supporting concurrent synchronization, inter-process\n"
@@ -16883,11 +22383,11 @@ msgid ""
 msgstr ""
 
 # FUZZY
-#: gnu/packages/telephony.scm:121
+#: gnu/packages/telephony.scm:259
 msgid "Common C++ framework for threaded applications"
 msgstr "Biblioteca Common C++ para aplicaciones multihilo"
 
-#: gnu/packages/telephony.scm:122
+#: gnu/packages/telephony.scm:260
 msgid ""
 "GNU uCommon C++ is meant as a very light-weight C++ library\n"
 "to facilitate using C++ design patterns even for very deeply embedded\n"
@@ -16895,11 +22395,11 @@ msgid ""
 "support."
 msgstr ""
 
-#: gnu/packages/telephony.scm:144
+#: gnu/packages/telephony.scm:282
 msgid "Implementation of RTP (real-time transport protocol)"
 msgstr "Implementación de RTP (protocolo de transporte en tiempo real)"
 
-#: gnu/packages/telephony.scm:145
+#: gnu/packages/telephony.scm:283
 msgid ""
 "GNU ccRTP is an implementation of RTP, the real-time transport\n"
 "protocol from the IETF.  It is suitable both for high capacity servers and\n"
@@ -16908,22 +22408,34 @@ msgid ""
 "packet-manipulation library."
 msgstr ""
 
-#: gnu/packages/telephony.scm:167
+#: gnu/packages/telephony.scm:316
+#, fuzzy
+msgid "C++ Implementation of ZRTP protocol"
+msgstr "Implementación Perl de protocolo PSYC"
+
+#: gnu/packages/telephony.scm:317
+msgid ""
+"GNU ZRTP C++ provides a library that adds ZRTP support to the\n"
+"GNU ccRTP stack and serves as library for other RTP stacks\n"
+"(PJSIP, GStreamer)."
+msgstr ""
+
+#: gnu/packages/telephony.scm:336
 msgid "Library implementing SIP (RFC-3261)"
 msgstr "Biblioteca implementando SIP (RFC-3261)"
 
-#: gnu/packages/telephony.scm:168
+#: gnu/packages/telephony.scm:337
 msgid ""
 "GNU oSIP is an implementation of the SIP protocol.  It is\n"
 "used to provide multimedia and telecom software developers with an interface\n"
 "to initiate and control SIP sessions."
 msgstr ""
 
-#: gnu/packages/telephony.scm:187
+#: gnu/packages/telephony.scm:358
 msgid "Sip abstraction library"
 msgstr "Biblioteca de abstracción de Sip"
 
-#: gnu/packages/telephony.scm:188
+#: gnu/packages/telephony.scm:359
 msgid ""
 "EXosip is a library that hides the complexity of using the\n"
 "SIP protocol for multimedia session establishment.  This protocol is mainly to\n"
@@ -16932,11 +22444,11 @@ msgid ""
 "multiplayer games."
 msgstr ""
 
-#: gnu/packages/telephony.scm:231
+#: gnu/packages/telephony.scm:402
 msgid "Secure peer-to-peer VoIP server for the SIP protocol"
 msgstr ""
 
-#: gnu/packages/telephony.scm:232
+#: gnu/packages/telephony.scm:403
 msgid ""
 "GNU SIP Witch is a peer-to-peer Voice-over-IP server that\n"
 "uses the SIP protocol.  Calls can be made from behind NAT firewalls and\n"
@@ -16946,52 +22458,32 @@ msgid ""
 "internet."
 msgstr ""
 
-#: gnu/packages/telephony.scm:259
+#: gnu/packages/telephony.scm:443
 msgid "Secure RTP (SRTP) Reference Implementation"
 msgstr ""
 
-#: gnu/packages/telephony.scm:261
+#: gnu/packages/telephony.scm:445
 msgid ""
 "This package provides an implementation of the Secure Real-time Transport\n"
 "Protocol (@dfn{SRTP}), the Universal Security Transform (@dfn{UST}), and a\n"
 "supporting cryptographic kernel."
 msgstr ""
 
-#: gnu/packages/telephony.scm:285
-msgid "Utilities library for linphone software"
-msgstr "Biblioteca de utilidades para el software linphone"
-
-#: gnu/packages/telephony.scm:286
-msgid ""
-"BCtoolbox is a utilities library used by Belledonne\n"
-"Communications softwares like linphone."
-msgstr ""
-
-#: gnu/packages/telephony.scm:308
-msgid "Implementation of the Real-time transport protocol"
-msgstr "Implementación del protocolo de transporte en tiempo real"
-
-#: gnu/packages/telephony.scm:309
-msgid ""
-"oRTP is a library implementing the Real-time transport\n"
-"protocol (RFC 3550)."
-msgstr ""
-
-#: gnu/packages/telephony.scm:335
+#: gnu/packages/telephony.scm:473
 msgid "Inter-Asterisk-Protocol library"
 msgstr ""
 
-#: gnu/packages/telephony.scm:336
+#: gnu/packages/telephony.scm:474
 msgid ""
 "LibIAX2 implements the Inter-Asterisk-Protocol for relaying\n"
 "Voice-over-IP (VoIP) communications."
 msgstr ""
 
-#: gnu/packages/telephony.scm:367
+#: gnu/packages/telephony.scm:505
 msgid "Simple VoIP program to create conferences from the terminal"
 msgstr ""
 
-#: gnu/packages/telephony.scm:369
+#: gnu/packages/telephony.scm:507
 msgid ""
 "Seren is a simple VoIP program based on the Opus codec that allows you\n"
 "to create a voice conference from the terminal, with up to 10 participants,\n"
@@ -17000,11 +22492,11 @@ msgid ""
 "address of one of the participants."
 msgstr ""
 
-#: gnu/packages/telephony.scm:482
+#: gnu/packages/telephony.scm:651
 msgid "Low-latency, high quality voice chat software"
 msgstr ""
 
-#: gnu/packages/telephony.scm:484
+#: gnu/packages/telephony.scm:653
 msgid ""
 "Mumble is an low-latency, high quality voice chat\n"
 "software primarily intended for use while gaming.\n"
@@ -17012,72 +22504,44 @@ msgid ""
 "@code{mumble} for the client, and @code{murmur} for the server."
 msgstr ""
 
-#: gnu/packages/telephony.scm:549
+#: gnu/packages/telephony.scm:711
 msgid "Softphone for voice over IP and instant messaging"
 msgstr ""
 
-#: gnu/packages/telephony.scm:550
+#: gnu/packages/telephony.scm:712
 msgid ""
 "Twinkle is a softphone for your voice over IP and instant\n"
-"messaging communcations using the SIP protocol.  You can use it for direct IP\n"
-"phone to IP phone communication or in a network using a SIP proxy to route your\n"
-"calls and messages"
+"messaging communcations using the SIP protocol.  You can use it for direct\n"
+"IP phone to IP phone communication or in a network using a SIP proxy to route\n"
+"your calls and messages."
 msgstr ""
 
-#: gnu/packages/telephony.scm:632
+#: gnu/packages/telephony.scm:861
 msgid "Session Initiation Protocol (SIP) stack"
 msgstr ""
 
-#: gnu/packages/telephony.scm:633
+#: gnu/packages/telephony.scm:862
 msgid ""
 "PJProject provides an implementation of the Session\n"
 "Initiation Protocol (SIP) and a multimedia framework."
 msgstr ""
 
-#: gnu/packages/telephony.scm:803 gnu/packages/telephony.scm:840
-#: gnu/packages/telephony.scm:900
-#, fuzzy
-#| msgid "Distributed peer-to-peer communication"
-msgid "Distributed multimedia communications platform"
-msgstr "Comunicación distribuida peer-to-peer"
-
-#: gnu/packages/telephony.scm:804
-msgid ""
-"Jami (formerly GNU Ring) is a secure and distributed voice,\n"
-"video and chat communication platform that requires no centralized server and\n"
-"leaves the power of privacy in the hands of the user.  It supports the SIP and\n"
-"IAX protocols, as well as decentralized calling using P2P-DHT.\n"
-"\n"
-"This package provides a library and daemon implementing the Jami core\n"
-"functionality."
-msgstr ""
-
-#: gnu/packages/telephony.scm:841
-msgid ""
-"Jami (formerly GNU Ring) is a secure and distributed voice,\n"
-"video and chat communication platform that requires no centralized server and\n"
-"leaves the power of privacy in the hands of the user.  It supports the SIP and\n"
-"IAX protocols, as well as decentralized calling using P2P-DHT.\n"
-"\n"
-"This package provides a library common to all Jami clients."
+#: gnu/packages/telephony.scm:909
+msgid "VoIP library for Telegram clients"
 msgstr ""
 
-#: gnu/packages/telephony.scm:901
+#: gnu/packages/telephony.scm:910
 msgid ""
-"Jami (formerly GNU Ring) is a secure and distributed voice,\n"
-"video and chat communication platform that requires no centralized server and\n"
-"leaves the power of privacy in the hands of the user.  It supports the SIP and\n"
-"IAX protocols, as well as decentralized calling using P2P-DHT.\n"
-"\n"
-"This package provides the Jami client for the GNOME desktop."
+"A collection of libraries and header files for implementing\n"
+"telephony functionality into custom Telegram clients."
 msgstr ""
 
-#: gnu/packages/tex.scm:253 gnu/packages/tex.scm:5227
-#: gnu/packages/tex.scm:5290
+#: gnu/packages/tex.scm:438 gnu/packages/tex.scm:5862
+#: gnu/packages/tex.scm:5925
 msgid "TeX Live, a package of the TeX typesetting system"
 msgstr ""
 
-#: gnu/packages/tex.scm:255
+#: gnu/packages/tex.scm:440
 msgid ""
 "TeX Live provides a comprehensive TeX document production system.\n"
 "It includes all the major TeX-related programs, macro packages, and fonts\n"
@@ -17087,21 +22551,22 @@ msgid ""
 "This package contains the binaries."
 msgstr ""
 
-#: gnu/packages/tex.scm:323
-msgid "DVI to PostScript drivers"
-msgstr "Controladores DVI a PostScript"
+#: gnu/packages/tex.scm:459
+#, fuzzy
+msgid "Utility to strip documentation from TeX files."
+msgstr "Utilidad para crear ficheros metainfo de BitTorrent"
 
-#: gnu/packages/tex.scm:324
+#: gnu/packages/tex.scm:460
 msgid ""
-"This package provides files needed for converting DVI files\n"
-"to PostScript."
+"This package provides the docstrip utility to strip\n"
+"documentation from TeX files.  It is part of the LaTeX base."
 msgstr ""
 
-#: gnu/packages/tex.scm:358
+#: gnu/packages/tex.scm:474
 msgid "Unicode data and loaders for TeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:359
+#: gnu/packages/tex.scm:475
 msgid ""
 "This bundle provides generic access to Unicode Consortium\n"
 "data for TeX use.  It contains a set of text files provided by the Unicode\n"
@@ -17114,23 +22579,33 @@ msgid ""
 "out to date by @code{unicode-letters.tex}. "
 msgstr ""
 
-#: gnu/packages/tex.scm:397
-msgid "Hyphenation patterns for German"
-msgstr "Patrones hipernacionales para Alemán"
+#: gnu/packages/tex.scm:507
+msgid "Core hyphenation support files"
+msgstr ""
 
-#: gnu/packages/tex.scm:398
+#: gnu/packages/tex.scm:508
 msgid ""
-"The package provides experimental hyphenation patterns for\n"
-"the German language, covering both traditional and reformed orthography.  The\n"
-"patterns can be used with packages Babel and hyphsubst from the Oberdiek\n"
-"bundle."
+"This package includes Knuth's original @file{hyphen.tex},\n"
+"@file{zerohyph.tex} to disable hyphenation, @file{language.us} which starts\n"
+"the autogenerated files @file{language.dat} and @file{language.def} (and\n"
+"default versions of those), etc."
 msgstr ""
 
-#: gnu/packages/tex.scm:433
+#: gnu/packages/tex.scm:528
+msgid "DVI to PostScript drivers"
+msgstr "Controladores DVI a PostScript"
+
+#: gnu/packages/tex.scm:529
+msgid ""
+"This package provides files needed for converting DVI files\n"
+"to PostScript."
+msgstr ""
+
+#: gnu/packages/tex.scm:542
 msgid "Files for creating TeX formats"
 msgstr "Ficheros para creación de formatos TeX"
 
-#: gnu/packages/tex.scm:434
+#: gnu/packages/tex.scm:543
 msgid ""
 "This bundle provides a collection of model \".ini\" files\n"
 "for creating TeX formats.  These files are commonly used to introduced\n"
@@ -17145,38 +22620,21 @@ msgstr ""
 "para ser utilizados con motores más nuevos, por ejemplo para adaptar los\n"
 "ficheros fuente e-Text simple para trabajar con XeTeX y LueaTeX."
 
-#: gnu/packages/tex.scm:468
-msgid "Hyphenation patterns expressed in UTF-8"
-msgstr "Patrones hipernacionales expresados en UTF-8"
-
-#: gnu/packages/tex.scm:469
-msgid ""
-"Modern native UTF-8 engines such as XeTeX and LuaTeX need\n"
-"hyphenation patterns in UTF-8 format, whereas older systems require\n"
-"hyphenation patterns in the 8-bit encoding of the font in use (such encodings\n"
-"are codified in the LaTeX scheme with names like OT1, T2A, TS1, OML, LY1,\n"
-"etc).  The present package offers a collection of conversions of existing\n"
-"patterns to UTF-8 format, together with converters for use with 8-bit fonts in\n"
-"older systems.  Since hyphenation patterns for Knuthian-style TeX systems are\n"
-"only read at iniTeX time, it is hoped that the UTF-8 patterns, with their\n"
-"converters, will completely supplant the older patterns."
-msgstr ""
-
-#: gnu/packages/tex.scm:545
+#: gnu/packages/tex.scm:600
 msgid "Metafont base files"
 msgstr "Ficheros Metafont básicos"
 
-#: gnu/packages/tex.scm:546
+#: gnu/packages/tex.scm:601
 msgid ""
 "This package provides the Metafont base files needed to\n"
 "build fonts using the Metafont system."
 msgstr ""
 
-#: gnu/packages/tex.scm:577
+#: gnu/packages/tex.scm:686
 msgid "Tools for converting and installing fonts for TeX and LaTeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:578
+#: gnu/packages/tex.scm:687
 msgid ""
 "This package provides TeX macros for converting Adobe Font\n"
 "Metric files to TeX metric and virtual font format.  Fontinst helps mainly\n"
@@ -17186,11 +22644,11 @@ msgid ""
 "typesetting in these fonts."
 msgstr ""
 
-#: gnu/packages/tex.scm:613
+#: gnu/packages/tex.scm:708
 msgid "Scheme for naming fonts in TeX"
 msgstr "Esquema para el nombrado de tipografías en TeX"
 
-#: gnu/packages/tex.scm:614
+#: gnu/packages/tex.scm:709
 msgid ""
 "This is Fontname, a naming scheme for (the base part of)\n"
 "external TeX font filenames.  This makes at most eight-character names\n"
@@ -17198,11 +22656,11 @@ msgid ""
 "documents."
 msgstr ""
 
-#: gnu/packages/tex.scm:705
+#: gnu/packages/tex.scm:782
 msgid "Computer Modern fonts for TeX"
 msgstr "Tipografías de Computer Modern para TeX"
 
-#: gnu/packages/tex.scm:706
+#: gnu/packages/tex.scm:783
 msgid ""
 "This package provides the Computer Modern fonts by Donald\n"
 "Knuth.  The Computer Modern font family is a large collection of text,\n"
@@ -17210,11 +22668,11 @@ msgid ""
 "8A."
 msgstr ""
 
-#: gnu/packages/tex.scm:813
+#: gnu/packages/tex.scm:814
 msgid "Computer Modern Super family of fonts"
 msgstr "Familia de tipografías Computer Modern Super"
 
-#: gnu/packages/tex.scm:814
+#: gnu/packages/tex.scm:815
 msgid ""
 "The CM-Super family provides Adobe Type 1 fonts that replace\n"
 "the T1/TS1-encoded Computer Modern (EC/TC), T1/TS1-encoded Concrete,\n"
@@ -17224,33 +22682,33 @@ msgid ""
 "originals."
 msgstr ""
 
-#: gnu/packages/tex.scm:851
+#: gnu/packages/tex.scm:844
 msgid "Latin Modern family of fonts"
 msgstr ""
 
-#: gnu/packages/tex.scm:852
+#: gnu/packages/tex.scm:845
 msgid ""
 "The Latin Modern fonts are derived from the famous Computer\n"
 "Modern fonts designed by Donald E. Knuth and described in Volume E of his\n"
 "Computers & Typesetting series."
 msgstr ""
 
-#: gnu/packages/tex.scm:922
+#: gnu/packages/tex.scm:918
 msgid "Small library of METAFONT sources"
 msgstr "Pequeña biblioteca de fuentes de METAFONT"
 
-#: gnu/packages/tex.scm:923
+#: gnu/packages/tex.scm:919
 msgid ""
 "This is a collection of core TeX and METAFONT macro files\n"
 "from Donald Knuth, including the plain format, plain base, and the MF logo\n"
 "fonts."
 msgstr ""
 
-#: gnu/packages/tex.scm:997
+#: gnu/packages/tex.scm:993
 msgid "Collection of fonts used in LaTeX distributions"
 msgstr ""
 
-#: gnu/packages/tex.scm:998
+#: gnu/packages/tex.scm:994
 msgid ""
 "This is a collection of fonts for use with standard LaTeX\n"
 "packages and classes. It includes invisible fonts (for use with the slides\n"
@@ -17258,22 +22716,22 @@ msgid ""
 "symbol fonts."
 msgstr ""
 
-#: gnu/packages/tex.scm:1018
+#: gnu/packages/tex.scm:1015
 msgid "LaTeX support for Metafont logo fonts"
 msgstr ""
 
-#: gnu/packages/tex.scm:1020
+#: gnu/packages/tex.scm:1017
 msgid ""
 "This package provides LaTeX and font definition files to access the\n"
 "Knuthian mflogo fonts described in The Metafontbook and to typeset Metafont\n"
 "logos in LaTeX documents."
 msgstr ""
 
-#: gnu/packages/tex.scm:1087
+#: gnu/packages/tex.scm:1034
 msgid "Metafont logo font"
 msgstr ""
 
-#: gnu/packages/tex.scm:1089
+#: gnu/packages/tex.scm:1036
 msgid ""
 "These fonts were created in METAFONT by Knuth, for his own publications.\n"
 "At some stage, the letters P and S were added, so that the METAPOST logo could\n"
@@ -17282,11 +22740,11 @@ msgid ""
 "Taco Hoekwater."
 msgstr ""
 
-#: gnu/packages/tex.scm:1285 gnu/packages/tex.scm:1316
+#: gnu/packages/tex.scm:1178
 msgid "TeX fonts from the American Mathematical Society"
 msgstr "Tipografías TeX desde la Sociedad Americana de Matemáticas"
 
-#: gnu/packages/tex.scm:1287
+#: gnu/packages/tex.scm:1180
 msgid ""
 "This package provides an extended set of fonts for use in mathematics,\n"
 "including: extra mathematical symbols; blackboard bold letters (uppercase\n"
@@ -17300,29 +22758,787 @@ msgid ""
 "details can be found in the documentation."
 msgstr ""
 
-#: gnu/packages/tex.scm:1318
+#: gnu/packages/tex.scm:1211
+msgid "Utility for making hyphenation patterns"
+msgstr ""
+
+#: gnu/packages/tex.scm:1212
 msgid ""
-"This package provides basic LaTeX support for the symbol fonts provides\n"
-"by the amsfonts package.  It provides @code{amsfonts.sty}, with names of\n"
-"individual symbols defined in @code{amssymb.sty}."
+"Mkpattern is a general purpose program for the generation of\n"
+"hyphenation patterns, with definition of letter sets and template-like\n"
+"constructions.  It also provides an easy way to handle different input and\n"
+"output encodings, and features generation of clean UTF-8 patterns."
 msgstr ""
 
-#: gnu/packages/tex.scm:1352
+#: gnu/packages/tex.scm:1269
+#, fuzzy
+msgid "Extended version of TeX"
+msgstr "Versión de Tetris de GNOME"
+
+#: gnu/packages/tex.scm:1271
+msgid ""
+"This package provides an extended version of TeX (which is capable of\n"
+"running as if it were TeX unmodified).  E-TeX has been specified by the LaTeX\n"
+"team as the engine for the development of LaTeX2e; as a result, LaTeX\n"
+"programmers may assume e-TeX functionality.  The pdftex engine directly\n"
+"incorporates the e-TeX extensions."
+msgstr ""
+
+#: gnu/packages/tex.scm:1287
 msgid "Plain TeX format and supporting files"
 msgstr "Formato Tex simple y soportando ficheros"
 
-#: gnu/packages/tex.scm:1354
+#: gnu/packages/tex.scm:1289
+msgid ""
+"This package contains files used to build the Plain TeX format, as\n"
+"described in the TeXbook, together with various supporting files (some also\n"
+"discussed in the book)."
+msgstr ""
+
+#: gnu/packages/tex.scm:1301
+msgid "Hyphenation patterns for Afrikaans"
+msgstr "Patrones de separación silábica para afrikaans"
+
+#: gnu/packages/tex.scm:1302
+msgid ""
+"The package provides hyphenation patterns for the Afrikaans\n"
+"language."
+msgstr ""
+"Este paquete proporciona patrones de separación silábica y división de\n"
+"palabras para la lengua afrikaans."
+
+#: gnu/packages/tex.scm:1315
+msgid "Hyphenation patterns for ancient Greek"
+msgstr "Patrones de separación silábica para griego clásico"
+
+#: gnu/packages/tex.scm:1316
+msgid ""
+"The package provides hyphenation patterns for ancient\n"
+"Greek."
+msgstr ""
+"Este paquete proporciona patrones de separación silábica y división de\n"
+"palabras para el griego clásico."
+
+#: gnu/packages/tex.scm:1328
+msgid "Hyphenation patterns for Armenian"
+msgstr "Patrones de separación silábica para armenio"
+
+#: gnu/packages/tex.scm:1329
+msgid ""
+"The package provides hyphenation patterns for the Armenian\n"
+"language."
+msgstr ""
+"Este paquete proporciona patrones de separación silábica y división de\n"
+"palabras para la lengua armenia."
+
+#: gnu/packages/tex.scm:1342
+msgid "Hyphenation patterns for Basque"
+msgstr "Patrones de separación silábica para vasco"
+
+#: gnu/packages/tex.scm:1343
+msgid ""
+"The package provides hyphenation patterns for the Basque\n"
+"language."
+msgstr ""
+"Este paquete proporciona patrones de separación silábica y división de\n"
+"palabras para la lengua vasca."
+
+#: gnu/packages/tex.scm:1356
+msgid "Hyphenation patterns for Belarusian"
+msgstr "Patrones de separación silábica para bielorruso"
+
+#: gnu/packages/tex.scm:1357
+msgid ""
+"The package provides hyphenation patterns for the Belarusian\n"
+"language."
+msgstr ""
+"Este paquete proporciona patrones de separación silábica y división de\n"
+"palabras para la lengua bielorrusa."
+
+#: gnu/packages/tex.scm:1370
+msgid "Hyphenation patterns for Bulgarian"
+msgstr "Patrones de separación silábica para búlgaro"
+
+#: gnu/packages/tex.scm:1371
+msgid ""
+"The package provides hyphenation patterns for the Bulgarian\n"
+"language in T2A and UTF-8 encodings."
+msgstr ""
+"Este paquete proporciona patrones de separación silábica y división de\n"
+"palabras para la lengua búlgara en las codificaciones T2A y UTF-8."
+
+#: gnu/packages/tex.scm:1384
+msgid "Hyphenation patterns for Catalan"
+msgstr "Patrones de separación silábica para catalán"
+
+#: gnu/packages/tex.scm:1385
+msgid ""
+"The package provides hyphenation patterns for Catalan in\n"
+"T1/EC and UTF-8 encodings."
+msgstr ""
+"Este paquete proporciona patrones de separación silábica y división de\n"
+"palabras para la lengua catalana en las codificaciones T1/EC y UTF-8."
+
+#: gnu/packages/tex.scm:1396
+msgid "Hyphenation patterns for unaccented Chinese pinyin"
+msgstr "Separación silábica para lengua china romanizada (pinyin, sin acentuar)"
+
+#: gnu/packages/tex.scm:1397
+msgid ""
+"The package provides hyphenation patterns for unaccented\n"
+"Chinese pinyin T1/EC and UTF-8 encodings."
+msgstr ""
+"Este paquete proporciona patrones de separación silábica y división de\n"
+"palabras para la romanización sin acentuar pinyin de la lengua china\n"
+"en las codificaciones T1/EC y UTF-8."
+
+#: gnu/packages/tex.scm:1408
+#, fuzzy
+msgid "Hyphenation patterns for Church Slavonic"
+msgstr "Patrones hipernacionales para Alemán"
+
+#: gnu/packages/tex.scm:1409
+msgid ""
+"The package provides hyphenation patterns for Church\n"
+"Slavonic in UTF-8 encoding."
+msgstr ""
+
+#: gnu/packages/tex.scm:1421
+msgid "Hyphenation patterns for Coptic"
+msgstr "Patrones de separación silábica para copto"
+
+#: gnu/packages/tex.scm:1422
+msgid ""
+"The package provides hyphenation patterns for Coptic in\n"
+"UTF-8 encoding as well as in ASCII-based encoding for 8-bit engines."
+msgstr ""
+
+#: gnu/packages/tex.scm:1434
+msgid "Hyphenation patterns for Croatian"
+msgstr "Patrones de separación silábica para croata"
+
+#: gnu/packages/tex.scm:1435
 msgid ""
-"Contains files used to build the Plain TeX format, as described in the\n"
-"TeXbook, together with various supporting files (some also discussed in the\n"
-"book)."
+"The package provides hyphenation patterns for Croatian in\n"
+"T1/EC and UTF-8 encodings."
 msgstr ""
 
-#: gnu/packages/tex.scm:1533
+#: gnu/packages/tex.scm:1446
+msgid "Hyphenation patterns for Czech"
+msgstr "Patrones de separación silábica para checo"
+
+#: gnu/packages/tex.scm:1447
+msgid ""
+"The package provides hyphenation patterns for Czech in T1/EC\n"
+"and UTF-8 encodings."
+msgstr ""
+
+#: gnu/packages/tex.scm:1458
+msgid "Hyphenation patterns for Danish"
+msgstr "Patrones de separación silábica para danés"
+
+#: gnu/packages/tex.scm:1459
+msgid ""
+"The package provides hyphenation patterns for Danish in\n"
+"T1/EC and UTF-8 encodings."
+msgstr ""
+
+#: gnu/packages/tex.scm:1471
+msgid "Hyphenation patterns for Dutch"
+msgstr "Patrones de separación silábica para neerlandés"
+
+#: gnu/packages/tex.scm:1472
+msgid ""
+"The package provides hyphenation patterns for Dutch in T1/EC\n"
+"and UTF-8 encodings."
+msgstr ""
+
+#: gnu/packages/tex.scm:1484
+msgid "Hyphenation patterns for American and British English"
+msgstr "Patrones de separación silábica para inglés americano y británico"
+
+#: gnu/packages/tex.scm:1485
+msgid ""
+"The package provides additional hyphenation patterns for\n"
+"American and British English in ASCII encoding."
+msgstr ""
+
+#: gnu/packages/tex.scm:1498
+msgid "Hyphenation patterns for Esperanto"
+msgstr "Patrones de separación silábica para esperanto"
+
+#: gnu/packages/tex.scm:1499
+msgid ""
+"The package provides hyphenation patterns for Esperanto ISO\n"
+"Latin 3 and UTF-8 encodings."
+msgstr ""
+
+#: gnu/packages/tex.scm:1510
+msgid "Hyphenation patterns for Estonian"
+msgstr "Patrones de separación silábica para estonio"
+
+#: gnu/packages/tex.scm:1511
+msgid ""
+"The package provides hyphenation patterns for Estonian in\n"
+"T1/EC and UTF-8 encodings."
+msgstr ""
+
+#: gnu/packages/tex.scm:1524
+msgid "Hyphenation patterns for Ethiopic scripts"
+msgstr "Patrones de separación silábica para escrituras etíopes"
+
+#: gnu/packages/tex.scm:1525
+msgid ""
+"The package provides hyphenation patterns for languages\n"
+"written using the Ethiopic script for Unicode engines.  They are not supposed\n"
+"to be linguistically relevant in all cases and should, for proper typography,\n"
+"be replaced by files tailored to individual languages."
+msgstr ""
+
+#: gnu/packages/tex.scm:1538
+msgid "Hyphenation patterns for Finnish"
+msgstr "Patrones de separación silábica para finés"
+
+#: gnu/packages/tex.scm:1539
+msgid ""
+"The package provides hyphenation patterns for Finnish in\n"
+"T1/EC and UTF-8 encodings."
+msgstr ""
+
+#: gnu/packages/tex.scm:1550
+msgid "Hyphenation patterns for French"
+msgstr "Patrones de separación silábica para francés"
+
+#: gnu/packages/tex.scm:1551
+msgid ""
+"The package provides hyphenation patterns for French in\n"
+"T1/EC and UTF-8 encodings."
+msgstr ""
+
+#: gnu/packages/tex.scm:1562
+#, fuzzy
+msgid "Hyphenation patterns for Friulan"
+msgstr "Patrones hipernacionales para Alemán"
+
+#: gnu/packages/tex.scm:1563
+msgid ""
+"The package provides hyphenation patterns for Friulan in\n"
+"ASCII encodings."
+msgstr ""
+
+#: gnu/packages/tex.scm:1575
+msgid "Hyphenation patterns for Galician"
+msgstr "Patrones de separación silábica para gallego"
+
+#: gnu/packages/tex.scm:1576
+msgid ""
+"The package provides hyphenation patterns for Galician in\n"
+"T1/EC and UTF-8 encodings."
+msgstr ""
+
+#: gnu/packages/tex.scm:1587
+#, fuzzy
+msgid "Hyphenation patterns for Georgian"
+msgstr "Patrones hipernacionales para Alemán"
+
+#: gnu/packages/tex.scm:1588
+msgid ""
+"The package provides hyphenation patterns for Georgian in\n"
+"T8M, T8K, and UTF-8 encodings."
+msgstr ""
+
+#: gnu/packages/tex.scm:1605 gnu/packages/tex.scm:2253
+msgid "Hyphenation patterns for German"
+msgstr "Patrones hipernacionales para Alemán"
+
+#: gnu/packages/tex.scm:1606
+msgid ""
+"This package provides hyphenation patterns for German in\n"
+"T1/EC and UTF-8 encodings, for traditional and reformed spelling, including\n"
+"Swiss German."
+msgstr ""
+
+#: gnu/packages/tex.scm:1624
+#, fuzzy
+msgid "Hyphenation patterns for Greek"
+msgstr "Patrones hipernacionales para Alemán"
+
+#: gnu/packages/tex.scm:1625
+msgid ""
+"This package provides hyphenation patterns for Modern Greek\n"
+"in monotonic and polytonic spelling in LGR and UTF-8 encodings."
+msgstr ""
+
+#: gnu/packages/tex.scm:1638
+#, fuzzy
+msgid "Hyphenation patterns for Hungarian"
+msgstr "Patrones hipernacionales para Alemán"
+
+#: gnu/packages/tex.scm:1639
+msgid ""
+"This package provides hyphenation patterns for Hungarian in\n"
+"T1/EC and UTF-8 encodings."
+msgstr ""
+
+#: gnu/packages/tex.scm:1651
+#, fuzzy
+msgid "Hyphenation patterns for Icelandic"
+msgstr "Patrones hipernacionales para Alemán"
+
+#: gnu/packages/tex.scm:1652
+msgid ""
+"This package provides hyphenation patterns for Icelandic in\n"
+"T1/EC and UTF-8 encodings."
+msgstr ""
+
+#: gnu/packages/tex.scm:1674
+#, fuzzy
+msgid "Indic hyphenation patterns"
+msgstr "Patrones hipernacionales para Alemán"
+
+#: gnu/packages/tex.scm:1675
+msgid ""
+"This package provides hyphenation patterns for Assamese,\n"
+"Bengali, Gujarati, Hindi, Kannada, Malayalam, Marathi, Oriya, Panjabi, Tamil\n"
+"and Telugu for Unicode engines."
+msgstr ""
+
+#: gnu/packages/tex.scm:1687
+#, fuzzy
+msgid "Indonesian hyphenation patterns"
+msgstr "Patrones hipernacionales para Alemán"
+
+#: gnu/packages/tex.scm:1688
+msgid ""
+"This package provides hyphenation patterns for\n"
+"Indonesian (Bahasa Indonesia) in ASCII encoding.  They are probably also\n"
+"usable for Malay (Bahasa Melayu)."
+msgstr ""
+
+#: gnu/packages/tex.scm:1700
+#, fuzzy
+msgid "Interlingua hyphenation patterns"
+msgstr "Patrones hipernacionales para Alemán"
+
+#: gnu/packages/tex.scm:1701
+msgid ""
+"This package provides hyphenation patterns for Interlingua\n"
+"in ASCII encoding."
+msgstr ""
+
+#: gnu/packages/tex.scm:1712
+#, fuzzy
+msgid "Irish hyphenation patterns"
+msgstr "Patrones hipernacionales para Alemán"
+
+#: gnu/packages/tex.scm:1713
+msgid ""
+"This package provides hyphenation patterns for\n"
+"Irish (Gaeilge) in T1/EC and UTF-8 encodings."
+msgstr ""
+
+#: gnu/packages/tex.scm:1725
+#, fuzzy
+msgid "Italian hyphenation patterns"
+msgstr "Patrones hipernacionales para Alemán"
+
+#: gnu/packages/tex.scm:1726
+msgid ""
+"This package provides hyphenation patterns for Italian in\n"
+"ASCII encoding.  Compliant with the Recommendation UNI 6461 on hyphenation\n"
+"issued by the Italian Standards Institution (Ente Nazionale di Unificazione\n"
+"UNI)."
+msgstr ""
+
+#: gnu/packages/tex.scm:1739
+#, fuzzy
+msgid "Kurmanji hyphenation patterns"
+msgstr "Patrones hipernacionales para Alemán"
+
+#: gnu/packages/tex.scm:1740
+msgid ""
+"This package provides hyphenation patterns for\n"
+"Kurmanji (Northern Kurdish) as spoken in Turkey and by the Kurdish diaspora in\n"
+"Europe, in T1/EC and UTF-8 encodings."
+msgstr ""
+
+#: gnu/packages/tex.scm:1754
+msgid "Liturgical Latin hyphenation patterns"
+msgstr ""
+
+#: gnu/packages/tex.scm:1755
+msgid ""
+"This package provides hyphenation patterns for Latin in\n"
+"T1/EC and UTF-8 encodings, mainly in modern spelling (u when u is needed and v\n"
+"when v is needed), medieval spelling with the ligatures @code{\\ae} and\n"
+"@code{\\oe} and the (uncial) lowercase 'v' written as a 'u' is also supported.\n"
+"Apparently there is no conflict between the patterns of modern Latin and those\n"
+"of medieval Latin.  It also includes hyphenation patterns for the Classical\n"
+"Latin in T1/EC and UTF-8 encodings.  Classical Latin hyphenation patterns are\n"
+"different from those of 'plain' Latin, the latter being more adapted to modern\n"
+"Latin.  It also provides hyphenation patterns for the Liturgical Latin in\n"
+"T1/EC and UTF-8 encodings."
+msgstr ""
+
+#: gnu/packages/tex.scm:1775
+#, fuzzy
+msgid "Latvian hyphenation patterns"
+msgstr "Patrones hipernacionales para Alemán"
+
+#: gnu/packages/tex.scm:1776
+msgid ""
+"This package provides hyphenation patterns for Latvian in\n"
+"L7X and UTF-8 encodings."
+msgstr ""
+
+#: gnu/packages/tex.scm:1788
+#, fuzzy
+msgid "Lithuanian hyphenation patterns"
+msgstr "Patrones hipernacionales para Alemán"
+
+#: gnu/packages/tex.scm:1789
+msgid ""
+"This package provides hyphenation patterns for Lithuanian in\n"
+"L7X and UTF-8 encodings."
+msgstr ""
+
+#: gnu/packages/tex.scm:1803
+msgid "Mongolian hyphenation patterns in Cyrillic script"
+msgstr ""
+
+#: gnu/packages/tex.scm:1804
+msgid ""
+"This package provides hyphenation patterns for Mongolian in\n"
+"T2A, LMC and UTF-8 encodings."
+msgstr ""
+
+#: gnu/packages/tex.scm:1818
+msgid "Norwegian Bokmal and Nynorsk hyphenation patterns"
+msgstr ""
+
+#: gnu/packages/tex.scm:1819
+msgid ""
+"This package provides hyphenation patterns for Norwegian\n"
+"Bokmal and Nynorsk in T1/EC and UTF-8 encodings."
+msgstr ""
+
+#: gnu/packages/tex.scm:1832
+#, fuzzy
+msgid "Occitan hyphenation patterns"
+msgstr "Patrones hipernacionales para Alemán"
+
+#: gnu/packages/tex.scm:1833
+msgid ""
+"This package provides hyphenation patterns for Occitan in\n"
+"T1/EC and UTF-8 encodings.  They are supposed to be valid for all the Occitan\n"
+"variants spoken and written in the wide area called 'Occitanie' by the French.\n"
+"It ranges from the Val d'Aran within Catalunya, to the South Western Italian\n"
+"Alps encompassing the southern half of the French pentagon."
+msgstr ""
+
+#: gnu/packages/tex.scm:1847
+#, fuzzy
+msgid "Panjabi hyphenation patterns"
+msgstr "Patrones hipernacionales para Alemán"
+
+#: gnu/packages/tex.scm:1848
+msgid ""
+"This package provides hyphenation patterns for Panjabi in\n"
+"T1/EC encoding."
+msgstr ""
+
+#: gnu/packages/tex.scm:1860
+#, fuzzy
+msgid "Piedmontese hyphenation patterns"
+msgstr "Escribe líneas coincidiendo un patrón"
+
+#: gnu/packages/tex.scm:1861
+msgid ""
+"This package provides hyphenation patterns for Piedmontese\n"
+"in ASCII encoding.  Compliant with 'Gramatica dla lengua piemonteisa' by\n"
+"Camillo Brero."
+msgstr ""
+
+#: gnu/packages/tex.scm:1873
+#, fuzzy
+msgid "Polish hyphenation patterns"
+msgstr "Patrones hipernacionales para Alemán"
+
+#: gnu/packages/tex.scm:1874
+msgid ""
+"This package provides hyphenation patterns for Polish in QX\n"
+"and UTF-8 encodings."
+msgstr ""
+
+#: gnu/packages/tex.scm:1886
+#, fuzzy
+msgid "Portuguese hyphenation patterns"
+msgstr "Patrones hipernacionales para Alemán"
+
+#: gnu/packages/tex.scm:1887
+msgid ""
+"This package provides hyphenation patterns for Portuguese in\n"
+"T1/EC and UTF-8 encodings."
+msgstr ""
+
+#: gnu/packages/tex.scm:1898
+#, fuzzy
+msgid "Romanian hyphenation patterns"
+msgstr "Patrones hipernacionales para Alemán"
+
+#: gnu/packages/tex.scm:1899
+msgid ""
+"This package provides hyphenation patterns for Romanian in\n"
+"T1/EC and UTF-8 encodings."
+msgstr ""
+
+#: gnu/packages/tex.scm:1911
+#, fuzzy
+msgid "Romansh hyphenation patterns"
+msgstr "Patrones hipernacionales para Alemán"
+
+#: gnu/packages/tex.scm:1912
+msgid ""
+"This package provides hyphenation patterns for Romansh in\n"
+"ASCII encodings.  They are supposed to comply with the rules indicated by the\n"
+"Lia Rumantscha (Romansh language society)."
+msgstr ""
+
+#: gnu/packages/tex.scm:1924
+#, fuzzy
+msgid "Russian hyphenation patterns"
+msgstr "Patrones hipernacionales para Alemán"
+
+#: gnu/packages/tex.scm:1925
+msgid ""
+"This package provides hyphenation patterns for Russian in\n"
+"T2A and UTF-8 encodings."
+msgstr ""
+
+#: gnu/packages/tex.scm:1937
+#, fuzzy
+msgid "Sanskrit hyphenation patterns"
+msgstr "Patrones hipernacionales para Alemán"
+
+#: gnu/packages/tex.scm:1938
+msgid ""
+"This package provides hyphenation patterns for Sanskrit and\n"
+"Prakrit in longdesc transliteration, and in Devanagari, Bengali, Kannada,\n"
+"Malayalam longdesc and Telugu scripts for Unicode engines."
+msgstr ""
+
+#: gnu/packages/tex.scm:1954
+#, fuzzy
+msgid "Serbian hyphenation patterns"
+msgstr "Patrones hipernacionales para Alemán"
+
+#: gnu/packages/tex.scm:1955
+msgid ""
+"This package provides hyphenation patterns for Serbian in\n"
+"T1/EC, T2A and UTF-8 encodings."
+msgstr ""
+
+#: gnu/packages/tex.scm:1967
+#, fuzzy
+msgid "Slovak hyphenation patterns"
+msgstr "Patrones hipernacionales para Alemán"
+
+#: gnu/packages/tex.scm:1968
+msgid ""
+"This package provides hyphenation patterns for Slovak in\n"
+"T1/EC and UTF-8 encodings."
+msgstr ""
+
+#: gnu/packages/tex.scm:1979
+#, fuzzy
+msgid "Slovenian hyphenation patterns"
+msgstr "Patrones hipernacionales para Alemán"
+
+#: gnu/packages/tex.scm:1980
+msgid ""
+"This package provides hyphenation patterns for Slovenian in\n"
+"T1/EC and UTF-8 encodings."
+msgstr ""
+
+#: gnu/packages/tex.scm:1995
+#, fuzzy
+msgid "Hyphenation patterns for Spanish"
+msgstr "Patrones hipernacionales para Alemán"
+
+#: gnu/packages/tex.scm:1996
+msgid ""
+"The package provides hyphenation patterns for Spanish in\n"
+"T1/EC and UTF-8 encodings."
+msgstr ""
+
+#: gnu/packages/tex.scm:2007
+#, fuzzy
+msgid "Swedish hyphenation patterns"
+msgstr "Patrones hipernacionales para Alemán"
+
+#: gnu/packages/tex.scm:2008
+msgid ""
+"This package provides hyphenation patterns for Swedish in\n"
+"T1/EC and UTF-8 encodings."
+msgstr ""
+
+#: gnu/packages/tex.scm:2019
+#, fuzzy
+msgid "Thai hyphenation patterns"
+msgstr "Patrones hipernacionales para Alemán"
+
+#: gnu/packages/tex.scm:2020
+msgid ""
+"This package provides hyphenation patterns for Thai in LTH\n"
+"and UTF-8 encodings."
+msgstr ""
+
+#: gnu/packages/tex.scm:2032
+#, fuzzy
+msgid "Hyphenation patterns for Turkish"
+msgstr "Patrones hipernacionales para Alemán"
+
+#: gnu/packages/tex.scm:2033
+msgid ""
+"The package provides hyphenation patterns for Turkish in\n"
+"T1/EC and UTF-8 encodings.  The patterns for Turkish were first produced for\n"
+"the Ottoman Texts Project in 1987 and were suitable for both Modern Turkish\n"
+"and Ottoman Turkish in Latin script, however the required character set didn't\n"
+"fit into EC encoding, so support for Ottoman Turkish had to be dropped to keep\n"
+"compatibility with 8-bit engines."
+msgstr ""
+
+#: gnu/packages/tex.scm:2049
+#, fuzzy
+msgid "Hyphenation patterns for Turkmen"
+msgstr "Patrones hipernacionales para Alemán"
+
+#: gnu/packages/tex.scm:2050
+msgid ""
+"The package provides hyphenation patterns for Turkmen in\n"
+"T1/EC and UTF-8 encodings."
+msgstr ""
+
+#: gnu/packages/tex.scm:2061
+#, fuzzy
+msgid "Ukrainian hyphenation patterns"
+msgstr "Patrones hipernacionales para Alemán"
+
+#: gnu/packages/tex.scm:2062
+msgid ""
+"This package provides hyphenation patterns for Ukrainian in\n"
+"T2A and UTF-8 encodings."
+msgstr ""
+
+#: gnu/packages/tex.scm:2074
+msgid "Upper Sorbian hyphenation patterns"
+msgstr ""
+
+#: gnu/packages/tex.scm:2075
+msgid ""
+"This package provides hyphenation patterns for Upper Sorbian\n"
+"in T1/EC and UTF-8 encodings."
+msgstr ""
+
+#: gnu/packages/tex.scm:2086
+#, fuzzy
+msgid "Welsh hyphenation patterns"
+msgstr "Patrones hipernacionales para Alemán"
+
+#: gnu/packages/tex.scm:2087
+msgid ""
+"This package provides hyphenation patterns for Welsh in\n"
+"T1/EC and UTF-8 encodings."
+msgstr ""
+
+#: gnu/packages/tex.scm:2207
+#, fuzzy
+msgid "Hyphenation patterns expressed in UTF-8"
+msgstr "Patrones de división de palabras expresados en UTF-8"
+
+#: gnu/packages/tex.scm:2208
+msgid ""
+"Modern native UTF-8 engines such as XeTeX and LuaTeX need\n"
+"hyphenation patterns in UTF-8 format, whereas older systems require\n"
+"hyphenation patterns in the 8-bit encoding of the font in use (such encodings\n"
+"are codified in the LaTeX scheme with names like OT1, T2A, TS1, OML, LY1,\n"
+"etc).  The present package offers a collection of conversions of existing\n"
+"patterns to UTF-8 format, together with converters for use with 8-bit fonts in\n"
+"older systems.  Since hyphenation patterns for Knuthian-style TeX systems are\n"
+"only read at iniTeX time, it is hoped that the UTF-8 patterns, with their\n"
+"converters, will completely supplant the older patterns."
+msgstr ""
+"Los motores modernos con UTF-8 como XeTeX y LuaTeX necesitan los\n"
+"patrones de división de palabras con guiones en formato UTF-8,\n"
+"mientras que los sistemas antiguos necesitan dichos patrones en la\n"
+"codificación de 8 bits usada por la tipografía en uso (a dichas\n"
+"codificaciones se les hace referencia en el esquema de LaTex con\n"
+"nombres como OT1, T2A, TS1, OML, LY1, etcétera). Este paquete ofrece\n"
+"una colección de conversiones de patrones existentes a formato UTF-8,\n"
+"junto con conversores para usar fuentes de 8 bits en sistemas más\n"
+"antiguos. Debido a que los patrones de división de palabras para\n"
+"sistemas TeX del estilo de Knuth únicamente se leen durante el tiempo\n"
+"de @command{iniTeX}, se espera que dichos patrones UTF-8, con sus\n"
+"conversores, suplanten completamente los patrones más antiguos."
+
+#: gnu/packages/tex.scm:2254
+msgid ""
+"The package provides experimental hyphenation patterns for\n"
+"the German language, covering both traditional and reformed orthography.  The\n"
+"patterns can be used with packages Babel and hyphsubst from the Oberdiek\n"
+"bundle."
+msgstr ""
+
+#: gnu/packages/tex.scm:2275
+msgid "Hyphenation patterns for Ukrainian"
+msgstr "Patrones de separación de palabras para el ucraniano"
+
+#: gnu/packages/tex.scm:2276
+msgid ""
+"The package provides a range of hyphenation patterns for\n"
+"Ukrainian, depending on the encoding of the output font including the standard\n"
+"T2A."
+msgstr ""
+
+#: gnu/packages/tex.scm:2314
+msgid "Hyphenation patterns for Russian"
+msgstr "Patrones de separación de palabras para el ruso"
+
+#: gnu/packages/tex.scm:2315
+msgid ""
+"The package provides a collection of Russian hyphenation\n"
+"patterns supporting a number of Cyrillic font encodings, including T2,\n"
+"UCY (Omega Unicode Cyrillic), LCY, LWN (OT2), and koi8-r."
+msgstr ""
+
+#: gnu/packages/tex.scm:2357
+msgid "Files related to the path searching library for TeX"
+msgstr ""
+
+#: gnu/packages/tex.scm:2358
+msgid ""
+"Kpathsea is a library and utility programs which provide\n"
+"path searching facilities for TeX file types, including the self-locating\n"
+"feature required for movable installations, layered on top of a general search\n"
+"mechanism.  This package provides supporting files."
+msgstr ""
+
+#: gnu/packages/tex.scm:2373
+#, fuzzy
+msgid "Configuration files for LaTeX-related formats"
+msgstr "Biblioteca interpreta fichero de configuración"
+
+#: gnu/packages/tex.scm:2374
+msgid ""
+"The package provides configuration files for LaTeX-related\n"
+"formats."
+msgstr ""
+
+#: gnu/packages/tex.scm:2586
 msgid "Base sources of LaTeX"
 msgstr "Orígenes base de LaTeX"
 
-#: gnu/packages/tex.scm:1535
+#: gnu/packages/tex.scm:2588
 msgid ""
 "This bundle comprises the source of LaTeX itself, together with several\n"
 "packages which are considered \"part of the kernel\".  This bundle, together\n"
@@ -17330,11 +23546,11 @@ msgid ""
 "contain."
 msgstr ""
 
-#: gnu/packages/tex.scm:1555
+#: gnu/packages/tex.scm:2608
 msgid "Extended filecontents and filecontents* environments"
 msgstr ""
 
-#: gnu/packages/tex.scm:1557
+#: gnu/packages/tex.scm:2610
 msgid ""
 "LaTeX2e's @code{filecontents} and @code{filecontents*} environments\n"
 "enable a LaTeX source file to generate external files as it runs through\n"
@@ -17345,22 +23561,22 @@ msgid ""
 "@code{filecontents*} anywhere."
 msgstr ""
 
-#: gnu/packages/tex.scm:1584
+#: gnu/packages/tex.scm:2637
 msgid "Am I running under XeTeX?"
 msgstr "¿Estoy ejecutando bajo XeTeX?"
 
-#: gnu/packages/tex.scm:1586
+#: gnu/packages/tex.scm:2639
 msgid ""
 "This is a simple package which provides an @code{\\ifxetex} conditional,\n"
 "so that other code can determine that it is running under XeTeX.  The package\n"
 "requires the e-TeX extensions to the TeX primitive set."
 msgstr ""
 
-#: gnu/packages/tex.scm:1618
+#: gnu/packages/tex.scm:2654
 msgid "Simple macros for EPS inclusion"
 msgstr ""
 
-#: gnu/packages/tex.scm:1620
+#: gnu/packages/tex.scm:2656
 msgid ""
 "This package provides the original (and now obsolescent) graphics\n"
 "inclusion macros for use with dvips, still widely used by Plain TeX users (in\n"
@@ -17370,11 +23586,11 @@ msgid ""
 "users, via its Plain TeX version.)"
 msgstr ""
 
-#: gnu/packages/tex.scm:1644
+#: gnu/packages/tex.scm:2677
 msgid "Sophisticated verbatim text"
 msgstr "Texto verborreo sofisticado"
 
-#: gnu/packages/tex.scm:1646
+#: gnu/packages/tex.scm:2679
 msgid ""
 "This package provides tools for the flexible handling of verbatim text\n"
 "including: verbatim commands in footnotes; a variety of verbatim environments\n"
@@ -17384,11 +23600,33 @@ msgid ""
 "verbatim source)."
 msgstr ""
 
-#: gnu/packages/tex.scm:1715
+#: gnu/packages/tex.scm:2697
+msgid "Color and graphics option files"
+msgstr ""
+
+#: gnu/packages/tex.scm:2699
+msgid ""
+"This bundle is a combined distribution consisting of @file{dvips.def},\n"
+"@file{pdftex.def}, @file{luatex.def}, @file{xetex.def}, @file{dvipdfmx.def},\n"
+"and @file{dvisvgm.def} driver option files for the LaTeX graphics and color\n"
+"packages."
+msgstr ""
+
+#: gnu/packages/tex.scm:2715
+msgid "Sample configuration files for LaTeX color and graphics"
+msgstr ""
+
+#: gnu/packages/tex.scm:2717
+msgid ""
+"This bundle includes @file{color.cfg} and @file{graphics.cfg} files that\n"
+"set default \"driver\" options for the color and graphics packages."
+msgstr ""
+
+#: gnu/packages/tex.scm:2738
 msgid "LaTeX standard graphics bundle"
 msgstr "Manojo de gráficos comunes en LaTeX"
 
-#: gnu/packages/tex.scm:1717
+#: gnu/packages/tex.scm:2740
 msgid ""
 "This is a collection of LaTeX packages for producing color, including\n"
 "graphics (e.g. PostScript) files, and rotation and scaling of text in LaTeX\n"
@@ -17396,11 +23634,11 @@ msgid ""
 "keyval, and lscape."
 msgstr ""
 
-#: gnu/packages/tex.scm:1739
+#: gnu/packages/tex.scm:2772
 msgid "Driver-independent color extensions for LaTeX and pdfLaTeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:1741
+#: gnu/packages/tex.scm:2774
 msgid ""
 "The package starts from the basic facilities of the colorcolor package,\n"
 "and provides easy driver-independent access to several kinds of color tints,\n"
@@ -17411,11 +23649,11 @@ msgid ""
 "tables."
 msgstr ""
 
-#: gnu/packages/tex.scm:1770
+#: gnu/packages/tex.scm:2806
 msgid "Extensive support for hypertext in LaTeX"
 msgstr "Apoyo extensivo para hipertexto en LaTeX"
 
-#: gnu/packages/tex.scm:1772
+#: gnu/packages/tex.scm:2808
 msgid ""
 "The @code{hyperref} package is used to handle cross-referencing commands\n"
 "in LaTeX to produce hypertext links in the document.  The package provides\n"
@@ -17427,22 +23665,22 @@ msgid ""
 "@code{nameref} packages, which make use of the facilities of @code{hyperref}."
 msgstr ""
 
-#: gnu/packages/tex.scm:1808
+#: gnu/packages/tex.scm:2844
 msgid "Bundle of packages submitted by Heiko Oberdiek"
 msgstr ""
 
-#: gnu/packages/tex.scm:1810
+#: gnu/packages/tex.scm:2846
 msgid ""
 "The bundle comprises various LaTeX packages, providing among others:\n"
 "better accessibility support for PDF files; extensible chemists reaction\n"
 "arrows; record information about document class(es) used; and many more."
 msgstr ""
 
-#: gnu/packages/tex.scm:1831
+#: gnu/packages/tex.scm:2867 gnu/packages/tex.scm:7165
 msgid "LaTeX standard tools bundle"
 msgstr "Manojo de herramientas LaTeX común"
 
-#: gnu/packages/tex.scm:1833
+#: gnu/packages/tex.scm:2869
 msgid ""
 "This package is a collection of (variously) simple tools provided as\n"
 "part of the LaTeX required tools distribution, comprising the following\n"
@@ -17452,11 +23690,11 @@ msgid ""
 "xr, and xspace."
 msgstr ""
 
-#: gnu/packages/tex.scm:1868
+#: gnu/packages/tex.scm:2887
 msgid "Verbatim with URL-sensitive line breaks"
 msgstr ""
 
-#: gnu/packages/tex.scm:1869
+#: gnu/packages/tex.scm:2888
 msgid ""
 "The command @code{\\url} is a form of verbatim command that\n"
 "allows linebreaks at certain characters or combinations of characters, accepts\n"
@@ -17468,11 +23706,22 @@ msgid ""
 "of file names."
 msgstr ""
 
-#: gnu/packages/tex.scm:1896
+#: gnu/packages/tex.scm:2914
+msgid "Font maps originally from teTeX"
+msgstr ""
+
+#: gnu/packages/tex.scm:2915
+msgid ""
+"This package provides font maps that were originally part of\n"
+"the now obsolete teTeX distributions but are still used at the core of the TeX\n"
+"Live distribution."
+msgstr ""
+
+#: gnu/packages/tex.scm:2935
 msgid "LaTeX3 programmers’ interface"
 msgstr "Interfaz de programadores LaTeX3"
 
-#: gnu/packages/tex.scm:1898
+#: gnu/packages/tex.scm:2937
 msgid ""
 "The l3kernel bundle provides an implementation of the LaTeX3\n"
 "programmers’ interface, as a set of packages that run under LaTeX 2e.  The\n"
@@ -17481,11 +23730,11 @@ msgid ""
 "that the LaTeX3 conventions can be used with regular LaTeX 2e packages."
 msgstr ""
 
-#: gnu/packages/tex.scm:1943
+#: gnu/packages/tex.scm:2982
 msgid "High-level LaTeX3 concepts"
 msgstr ""
 
-#: gnu/packages/tex.scm:1945
+#: gnu/packages/tex.scm:2984
 msgid ""
 "This bundle holds prototype implementations of concepts for a LaTeX\n"
 "designer interface, to be used with the experimental LaTeX kernel as\n"
@@ -17502,11 +23751,11 @@ msgid ""
 "@end enumerate\n"
 msgstr ""
 
-#: gnu/packages/tex.scm:2005
+#: gnu/packages/tex.scm:3044
 msgid "Advanced font selection in XeLaTeX and LuaLaTeX"
 msgstr "Selección tipográfica avanzada en XeLaTeX y LuaLaTeX"
 
-#: gnu/packages/tex.scm:2007
+#: gnu/packages/tex.scm:3046
 msgid ""
 "Fontspec is a package for XeLaTeX and LuaLaTeX.  It provides an\n"
 "automatic and unified interface to feature-rich AAT and OpenType fonts through\n"
@@ -17514,24 +23763,23 @@ msgid ""
 "the l3kernel and xparse bundles from the LaTeX 3 development team."
 msgstr ""
 
-#: gnu/packages/tex.scm:2043
+#: gnu/packages/tex.scm:3082
 msgid "Lua modules for general programming (in the (La)TeX world)"
 msgstr ""
 
-#: gnu/packages/tex.scm:2045
+#: gnu/packages/tex.scm:3084
 msgid ""
 "Lualibs is a collection of Lua modules useful for general programming.\n"
 "The bundle is based on Lua modules shipped with ConTeXt, and made available in\n"
 "this bundle for use independent of ConTeXt."
 msgstr ""
 
-#: gnu/packages/tex.scm:2133
+#: gnu/packages/tex.scm:3172
 #, fuzzy
-#| msgid "e-TeX tools for LaTeX"
 msgid "OpenType font loader for LuaTeX"
 msgstr "Herramientas e-TeX para LaTeX"
 
-#: gnu/packages/tex.scm:2135
+#: gnu/packages/tex.scm:3174
 msgid ""
 "Luaotfload is an adaptation of the ConTeXt font loading system for the\n"
 "Plain and LaTeX formats.  It allows OpenType fonts to be loaded with font\n"
@@ -17540,11 +23788,11 @@ msgid ""
 "loading fonts by their proper names instead of file names."
 msgstr ""
 
-#: gnu/packages/tex.scm:2157
+#: gnu/packages/tex.scm:3196
 msgid "AMS mathematical facilities for LaTeX"
 msgstr "Capacidad matemática AMS para LaTeX"
 
-#: gnu/packages/tex.scm:2159
+#: gnu/packages/tex.scm:3198
 msgid ""
 "This is the principal package in the AMS-LaTeX distribution.  It adapts\n"
 "for use in LaTeX most of the mathematical features found in AMS-TeX; it is\n"
@@ -17559,11 +23807,11 @@ msgid ""
 "definitions."
 msgstr ""
 
-#: gnu/packages/tex.scm:2187
+#: gnu/packages/tex.scm:3226
 msgid "AMS document classes for LaTeX"
 msgstr "Clases documentales AMS para LaTeX"
 
-#: gnu/packages/tex.scm:2189
+#: gnu/packages/tex.scm:3228
 msgid ""
 "This bundle contains three AMS classes: @code{amsartamsart} (for writing\n"
 "articles for the AMS), @code{amsbookamsbook} (for books) and\n"
@@ -17572,11 +23820,11 @@ msgid ""
 "distribution."
 msgstr ""
 
-#: gnu/packages/tex.scm:2220
+#: gnu/packages/tex.scm:3259
 msgid "Multilingual support for Plain TeX or LaTeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:2222
+#: gnu/packages/tex.scm:3261
 msgid ""
 "The package manages culturally-determined typographical (and other)\n"
 "rules, and hyphenation patterns for a wide range of languages.  A document may\n"
@@ -17587,11 +23835,11 @@ msgid ""
 "polyglossia package rather than Babel."
 msgstr ""
 
-#: gnu/packages/tex.scm:2245
+#: gnu/packages/tex.scm:3284
 msgid "Babel support for English"
 msgstr "Capacidad Babel para inglés"
 
-#: gnu/packages/tex.scm:2247
+#: gnu/packages/tex.scm:3286
 msgid ""
 "This package provides the language definition file for support of\n"
 "English in @code{babel}.  Care is taken to select British hyphenation patterns\n"
@@ -17599,13 +23847,12 @@ msgid ""
 "for Canadian and USA text."
 msgstr ""
 
-#: gnu/packages/tex.scm:2267
+#: gnu/packages/tex.scm:3306
 #, fuzzy
-#| msgid "Babel support for English"
 msgid "Babel support for German"
 msgstr "Capacidad Babel para inglés"
 
-#: gnu/packages/tex.scm:2269
+#: gnu/packages/tex.scm:3308
 msgid ""
 "This package provides the language definition file for support of German\n"
 "in @code{babel}.  It provides all the necessary macros, definitions and\n"
@@ -17614,11 +23861,11 @@ msgid ""
 "Swiss varieties of German."
 msgstr ""
 
-#: gnu/packages/tex.scm:2291
+#: gnu/packages/tex.scm:3330
 msgid "Support for Cyrillic fonts in LaTeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:2293
+#: gnu/packages/tex.scm:3332
 msgid ""
 "This bundle of macros files provides macro support (including font\n"
 "encoding macros) for the use of Cyrillic characters in fonts encoded under the\n"
@@ -17626,11 +23873,11 @@ msgid ""
 "language that is written in a Cyrillic alphabet."
 msgstr ""
 
-#: gnu/packages/tex.scm:2313
+#: gnu/packages/tex.scm:3352
 msgid "Font support for common PostScript fonts"
 msgstr "Capacidad de tipografía para tipos PostScript comunes"
 
-#: gnu/packages/tex.scm:2315
+#: gnu/packages/tex.scm:3354
 msgid ""
 "The PSNFSS collection includes a set of files that provide a complete\n"
 "working setup of the LaTeX font selection scheme (NFSS2) for use with common\n"
@@ -17641,31 +23888,31 @@ msgid ""
 "packages."
 msgstr ""
 
-#: gnu/packages/tex.scm:2356
+#: gnu/packages/tex.scm:3396
 msgid "TeX Live base packages"
 msgstr ""
 
-#: gnu/packages/tex.scm:2357 gnu/packages/tex.scm:2445
+#: gnu/packages/tex.scm:3397 gnu/packages/tex.scm:3535
 msgid ""
 "This is a very limited subset of the TeX Live distribution.\n"
 "It includes little more than the required set of LaTeX packages."
 msgstr ""
 
-#: gnu/packages/tex.scm:2428
+#: gnu/packages/tex.scm:3518
 msgid "Union of TeX Live packages"
 msgstr ""
 
-#: gnu/packages/tex.scm:2429
+#: gnu/packages/tex.scm:3519
 msgid ""
 "This package provides a subset of the TeX Live\n"
 "distribution."
 msgstr ""
 
-#: gnu/packages/tex.scm:2462
+#: gnu/packages/tex.scm:3552
 msgid "LaTeX-based replacement for BibTeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:2464
+#: gnu/packages/tex.scm:3554
 msgid ""
 "Amsrefs is a LaTeX package for bibliographies that provides an archival\n"
 "data format similar to the format of BibTeX database files, but adapted to\n"
@@ -17673,11 +23920,11 @@ msgid ""
 "conjunction with BibTeX or as a replacement for BibTeX."
 msgstr ""
 
-#: gnu/packages/tex.scm:2491
+#: gnu/packages/tex.scm:3581
 msgid "Footnotes for critical editions"
 msgstr "Anotaciones pie para ediciones críticas"
 
-#: gnu/packages/tex.scm:2493
+#: gnu/packages/tex.scm:3583
 msgid ""
 "This package aims to provide a one-stop solution to requirements for\n"
 "footnotes.  It offers: Multiple footnote apparatus superior to that of\n"
@@ -17691,11 +23938,11 @@ msgid ""
 "@code{suffix} packages."
 msgstr ""
 
-#: gnu/packages/tex.scm:2519
+#: gnu/packages/tex.scm:3609
 msgid "Producing 'blind' text for testing"
 msgstr ""
 
-#: gnu/packages/tex.scm:2521
+#: gnu/packages/tex.scm:3611
 msgid ""
 "The package provides the commands @code{\\blindtext} and\n"
 "@code{\\Blindtext} for creating \"blind\" text useful in testing new classes\n"
@@ -17706,11 +23953,11 @@ msgid ""
 "ipsum\" text, see the @code{lipsum} package)."
 msgstr ""
 
-#: gnu/packages/tex.scm:2558
+#: gnu/packages/tex.scm:3648
 msgid "German letter DIN style"
 msgstr "Estilo DIN de letra alemana"
 
-#: gnu/packages/tex.scm:2560
+#: gnu/packages/tex.scm:3650
 msgid ""
 "This package implements a document layout for writing letters according\n"
 "to the rules of DIN (Deutsches Institut für Normung, German standardisation\n"
@@ -17722,11 +23969,11 @@ msgid ""
 "package."
 msgstr ""
 
-#: gnu/packages/tex.scm:2584
+#: gnu/packages/tex.scm:3674
 msgid "Put a grey textual watermark on document pages"
 msgstr ""
 
-#: gnu/packages/tex.scm:2586
+#: gnu/packages/tex.scm:3676
 msgid ""
 "This package provides a means to add a textual, light grey watermark on\n"
 "every page or on the first page of a document.  Typical usage may consist in\n"
@@ -17736,11 +23983,11 @@ msgid ""
 "on everypage."
 msgstr ""
 
-#: gnu/packages/tex.scm:2608
+#: gnu/packages/tex.scm:3698
 msgid "New interface for environments in LaTeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:2610
+#: gnu/packages/tex.scm:3700
 msgid ""
 "This package provides the @code{\\collect@@body} command (as in\n"
 "@code{amsmath}), as well as a @code{\\long} version @code{\\Collect@@Body},\n"
@@ -17748,11 +23995,11 @@ msgid ""
 "define a new author interface to creating new environments."
 msgstr ""
 
-#: gnu/packages/tex.scm:2630
+#: gnu/packages/tex.scm:3720
 msgid "Create equal-widthed parboxes"
 msgstr ""
 
-#: gnu/packages/tex.scm:2632
+#: gnu/packages/tex.scm:3722
 msgid ""
 "LaTeX users sometimes need to ensure that two or more blocks of text\n"
 "occupy the same amount of horizontal space on the page.  To that end, the\n"
@@ -17766,11 +24013,11 @@ msgid ""
 "also provided."
 msgstr ""
 
-#: gnu/packages/tex.scm:2666
+#: gnu/packages/tex.scm:3756
 msgid "Expanded description environments"
 msgstr "Entorno descripción expandido"
 
-#: gnu/packages/tex.scm:2668
+#: gnu/packages/tex.scm:3758
 msgid ""
 "The package provides additional features for the LaTeX\n"
 "@code{description} environment, including adjustable left margin.  The package\n"
@@ -17779,11 +24026,11 @@ msgid ""
 "@code{enumerate} lists, and numbered lists remain in sequence)."
 msgstr ""
 
-#: gnu/packages/tex.scm:2702
+#: gnu/packages/tex.scm:3776
 msgid "Provide file modification times, and compare them"
 msgstr ""
 
-#: gnu/packages/tex.scm:2704
+#: gnu/packages/tex.scm:3778
 msgid ""
 "This package provides macros to read and compare the modification dates\n"
 "of files.  The files may be @code{.tex} files, images or other files (as long\n"
@@ -17795,11 +24042,11 @@ msgid ""
 "but non-expandable ones."
 msgstr ""
 
-#: gnu/packages/tex.scm:2728
+#: gnu/packages/tex.scm:3805
 msgid "Conditionals to test which platform is being used"
 msgstr ""
 
-#: gnu/packages/tex.scm:2730
+#: gnu/packages/tex.scm:3807
 msgid ""
 "This package uses the (La)TeX extension @code{-shell-escape} to\n"
 "establish whether the document is being processed on a Windows or on a\n"
@@ -17810,11 +24057,11 @@ msgid ""
 "classes of systems."
 msgstr ""
 
-#: gnu/packages/tex.scm:2753
+#: gnu/packages/tex.scm:3830
 msgid "Flexible bibliography support"
 msgstr "Compatibilidad bibliográfica flexible"
 
-#: gnu/packages/tex.scm:2755
+#: gnu/packages/tex.scm:3832
 msgid ""
 "This bundle provides a package that implements both author-year and\n"
 "numbered references, as well as much detailed of support for other\n"
@@ -17824,11 +24071,11 @@ msgid ""
 "designed from the start to be compatible with @code{natbib}."
 msgstr ""
 
-#: gnu/packages/tex.scm:2777
+#: gnu/packages/tex.scm:3854
 msgid "Replace strings in encapsulated PostScript figures"
 msgstr ""
 
-#: gnu/packages/tex.scm:2779
+#: gnu/packages/tex.scm:3856
 msgid ""
 "This package allows LaTeX constructions (equations, picture\n"
 "environments, etc.) to be precisely superimposed over Encapsulated PostScript\n"
@@ -17839,26 +24086,11 @@ msgid ""
 "rotated."
 msgstr ""
 
-#: gnu/packages/tex.scm:2802
-msgid "Macros for defining and setting keys"
-msgstr ""
-
-#: gnu/packages/tex.scm:2804
-msgid ""
-"This package is an extension of the @code{keyval} package and offers\n"
-"more flexible macros for defining and setting keys.  The package provides a\n"
-"pointer and a preset system.  Furthermore, it supplies macros to allow class\n"
-"and package options to contain options of the @code{key=value} form.  A LaTeX\n"
-"kernel patch is provided to avoid premature expansions of macros in class or\n"
-"package options.  A specialized system for setting @code{PSTricks} keys is\n"
-"provided by the @code{pst-xkey} package."
-msgstr ""
-
-#: gnu/packages/tex.scm:2851
+#: gnu/packages/tex.scm:3886
 msgid "Process PostScript graphics within pdfLaTeX documents"
 msgstr ""
 
-#: gnu/packages/tex.scm:2853
+#: gnu/packages/tex.scm:3888
 msgid ""
 "This is a package for processing PostScript graphics with @code{psfrag}\n"
 "labels within pdfLaTeX documents.  Every graphic is compiled individually,\n"
@@ -17866,11 +24098,11 @@ msgid ""
 "re-processing."
 msgstr ""
 
-#: gnu/packages/tex.scm:2886
+#: gnu/packages/tex.scm:3907
 msgid "Make overhead slides"
 msgstr "Crear ranuras suspendidas"
 
-#: gnu/packages/tex.scm:2889
+#: gnu/packages/tex.scm:3910
 msgid ""
 "This package provides a class that produces overhead\n"
 "slides (transparencies), with many facilities.  Seminar is not nowadays\n"
@@ -17879,11 +24111,11 @@ msgid ""
 "21st-century presentation styles."
 msgstr ""
 
-#: gnu/packages/tex.scm:2922
+#: gnu/packages/tex.scm:3946
 msgid "Trim spaces around an argument or within a macro"
 msgstr ""
 
-#: gnu/packages/tex.scm:2924
+#: gnu/packages/tex.scm:3948
 msgid ""
 "This very short package allows you to expandably remove spaces around a\n"
 "token list (commands are provided to remove spaces before, spaces after, or\n"
@@ -17891,22 +24123,22 @@ msgid ""
 "space-stripped macros."
 msgstr ""
 
-#: gnu/packages/tex.scm:2957
+#: gnu/packages/tex.scm:3981
 #, fuzzy
 msgid "Captions on more than floats"
 msgstr "Se ha especificado más de una fecha tope"
 
-#: gnu/packages/tex.scm:2959
+#: gnu/packages/tex.scm:3983
 msgid ""
 "This package defines a command @code{\\captionof} for putting a caption\n"
 "to something that's not a float."
 msgstr ""
 
-#: gnu/packages/tex.scm:2990
+#: gnu/packages/tex.scm:3997
 msgid "Create correct hyperlinks for DOI numbers"
 msgstr ""
 
-#: gnu/packages/tex.scm:2992
+#: gnu/packages/tex.scm:3999
 msgid ""
 "You can hyperlink DOI numbers to doi.org.  However, some publishers have\n"
 "elected to use nasty characters in their DOI numbering scheme (@code{<},\n"
@@ -17916,11 +24148,11 @@ msgid ""
 "hyperlink to the target of the DOI."
 msgstr ""
 
-#: gnu/packages/tex.scm:3028
+#: gnu/packages/tex.scm:4021
 msgid "e-TeX tools for LaTeX"
 msgstr "Herramientas e-TeX para LaTeX"
 
-#: gnu/packages/tex.scm:3030
+#: gnu/packages/tex.scm:4023
 msgid ""
 "This package is a toolbox of programming facilities geared primarily\n"
 "towards LaTeX class and package authors.  It provides LaTeX frontends to some\n"
@@ -17931,11 +24163,11 @@ msgid ""
 "of the LaTeX kernel."
 msgstr ""
 
-#: gnu/packages/tex.scm:3066
+#: gnu/packages/tex.scm:4062
 msgid "Seven predefined chapter heading styles"
 msgstr ""
 
-#: gnu/packages/tex.scm:3068
+#: gnu/packages/tex.scm:4064
 msgid ""
 "This package provides seven predefined chapter heading styles.  Each\n"
 "style can be modified using a set of simple commands.  Optionally one can\n"
@@ -17943,11 +24175,11 @@ msgid ""
 "headings."
 msgstr ""
 
-#: gnu/packages/tex.scm:3101
+#: gnu/packages/tex.scm:4097
 msgid "Framed or shaded regions that can break across pages"
 msgstr ""
 
-#: gnu/packages/tex.scm:3103
+#: gnu/packages/tex.scm:4099
 msgid ""
 "The package creates three environments: @code{framed}, which puts an\n"
 "ordinary frame box around the region, @code{shaded}, which shades the region,\n"
@@ -17958,11 +24190,11 @@ msgid ""
 "@code{\\MakeFramed} to make your own framed-style environments."
 msgstr ""
 
-#: gnu/packages/tex.scm:3135
+#: gnu/packages/tex.scm:4131
 msgid "Letter document class"
 msgstr "Clase de documentos de carta"
 
-#: gnu/packages/tex.scm:3137
+#: gnu/packages/tex.scm:4133
 msgid ""
 "This package is designed for formatting formless letters in German; it\n"
 "can also be used for English (by those who can read the documentation).  There\n"
@@ -17970,21 +24202,21 @@ msgid ""
 "\"old\" and a \"new\" version of g-brief."
 msgstr ""
 
-#: gnu/packages/tex.scm:3157
+#: gnu/packages/tex.scm:4153
 msgid "Typeset Galois connections"
 msgstr "Conexiones Typeset Galois"
 
-#: gnu/packages/tex.scm:3159
+#: gnu/packages/tex.scm:4155
 msgid ""
 "The package deals with connections in two-dimensional style, optionally\n"
 "in colour."
 msgstr ""
 
-#: gnu/packages/tex.scm:3177
+#: gnu/packages/tex.scm:4173
 msgid "Citations in a reader-friendly style"
 msgstr "Citaciones dentro de un estilo lector-amistoso"
 
-#: gnu/packages/tex.scm:3179
+#: gnu/packages/tex.scm:4175
 msgid ""
 "The package allows citations in the German style, which is considered by\n"
 "many to be particularly reader-friendly.  The citation provides a small amount\n"
@@ -17994,11 +24226,11 @@ msgid ""
 "BibLaTeX, and is considered experimental."
 msgstr ""
 
-#: gnu/packages/tex.scm:3203
+#: gnu/packages/tex.scm:4199
 msgid "Flexible and complete interface to document dimensions"
 msgstr ""
 
-#: gnu/packages/tex.scm:3205
+#: gnu/packages/tex.scm:4201
 msgid ""
 "This package provides an easy and flexible user interface to customize\n"
 "page layout, implementing auto-centering and auto-balancing mechanisms so that\n"
@@ -18009,11 +24241,11 @@ msgid ""
 "ability to communicate the paper size it's set up to the output."
 msgstr ""
 
-#: gnu/packages/tex.scm:3228
+#: gnu/packages/tex.scm:4224
 msgid "Miscellaneous tools by Mark Wooding"
 msgstr "Varias herramientas por Mark Wooding"
 
-#: gnu/packages/tex.scm:3230
+#: gnu/packages/tex.scm:4226
 msgid ""
 "This collection of tools includes: @code{atsupport} for short commands\n"
 "starting with @code{@@}, macros to sanitize the OT1 encoding of the\n"
@@ -18023,21 +24255,21 @@ msgid ""
 "array environments; verbatim handling; and syntax diagrams."
 msgstr ""
 
-#: gnu/packages/tex.scm:3252
+#: gnu/packages/tex.scm:4248
 msgid "Alternative to babel for XeLaTeX and LuaLaTeX"
 msgstr "Alternativo a babel para XeLaTeX y LuaLaTeX"
 
-#: gnu/packages/tex.scm:3254
+#: gnu/packages/tex.scm:4250
 msgid ""
 "This package provides a complete Babel replacement for users of LuaLaTeX\n"
 "and XeLaTeX; it relies on the @code{fontspec} package, version 2.0 at least."
 msgstr ""
 
-#: gnu/packages/tex.scm:3272
+#: gnu/packages/tex.scm:4268
 msgid "Multi-page tables package"
 msgstr ""
 
-#: gnu/packages/tex.scm:3274
+#: gnu/packages/tex.scm:4270
 msgid ""
 "This package was a predecessor of @code{longtable}; the newer\n"
 "package (designed on quite different principles) is easier to use and more\n"
@@ -18045,11 +24277,11 @@ msgid ""
 "situations where longtable has problems."
 msgstr ""
 
-#: gnu/packages/tex.scm:3307
+#: gnu/packages/tex.scm:4303
 msgid "TeX macros to handle Texinfo files"
 msgstr ""
 
-#: gnu/packages/tex.scm:3309
+#: gnu/packages/tex.scm:4305
 msgid ""
 "Texinfo is the preferred format for documentation in the GNU project;\n"
 "the format may be used to produce online or printed output from a single\n"
@@ -18058,11 +24290,11 @@ msgid ""
 "hypertext linkages in some cases)."
 msgstr ""
 
-#: gnu/packages/tex.scm:3330
+#: gnu/packages/tex.scm:4326
 msgid "Show \"realistic\" quotes in verbatim"
 msgstr ""
 
-#: gnu/packages/tex.scm:3332
+#: gnu/packages/tex.scm:4328
 msgid ""
 "Typewriter-style fonts are best for program listings, but Computer\n"
 "Modern Typewriter prints @code{`} and @code{'} as bent opening and closing\n"
@@ -18076,22 +24308,22 @@ msgid ""
 "does not affect @code{\\tt}, @code{\\texttt}, etc."
 msgstr ""
 
-#: gnu/packages/tex.scm:3371
+#: gnu/packages/tex.scm:4367
 msgid "Simple package to set up document margins"
 msgstr ""
 
-#: gnu/packages/tex.scm:3373
+#: gnu/packages/tex.scm:4369
 msgid ""
 "This is a simple package to set up document margins.  This package is\n"
 "considered obsolete; alternatives are the @code{typearea} package from the\n"
 "@code{koma-script} bundle, or the @code{geometry} package."
 msgstr ""
 
-#: gnu/packages/tex.scm:3392
+#: gnu/packages/tex.scm:4388
 msgid "Extra control of appendices"
 msgstr "Control adicional de apéndices"
 
-#: gnu/packages/tex.scm:3394
+#: gnu/packages/tex.scm:4390
 msgid ""
 "The appendix package provides various ways of formatting the titles of\n"
 "appendices.  Also (sub)appendices environments are provided that can be used,\n"
@@ -18100,11 +24332,11 @@ msgid ""
 "command."
 msgstr ""
 
-#: gnu/packages/tex.scm:3415
+#: gnu/packages/tex.scm:4411
 msgid "Generate changebars in LaTeX documents"
 msgstr "Genera modificaciones de barras en documentos LaTeX"
 
-#: gnu/packages/tex.scm:3417
+#: gnu/packages/tex.scm:4413
 msgid ""
 "Identify areas of text to be marked with changebars with the\n"
 "@code{\\cbstart} and @code{\\cbend} commands; the bars may be coloured.  The\n"
@@ -18113,31 +24345,31 @@ msgid ""
 "drivers, and VTeX and pdfTeX."
 msgstr ""
 
-#: gnu/packages/tex.scm:3452
+#: gnu/packages/tex.scm:4448
 msgid "CMap support for PDF files"
 msgstr "Compatibilidad CMap para ficheros PDF"
 
-#: gnu/packages/tex.scm:3454
+#: gnu/packages/tex.scm:4450
 msgid ""
 "This package embeds CMap tables into PDF files to make search and\n"
 "copy-and-paste functions work properly."
 msgstr ""
 
-#: gnu/packages/tex.scm:3472
+#: gnu/packages/tex.scm:4468
 msgid "Add colour to LaTeX tables"
 msgstr "Añade color a tablas LaTeX"
 
-#: gnu/packages/tex.scm:3474
+#: gnu/packages/tex.scm:4470
 msgid ""
 "This package allows rows, columns, and even individual cells in LaTeX\n"
 "tables to be coloured."
 msgstr ""
 
-#: gnu/packages/tex.scm:3505
+#: gnu/packages/tex.scm:4501
 msgid "Variants of \\fbox and other games with boxes"
 msgstr ""
 
-#: gnu/packages/tex.scm:3507
+#: gnu/packages/tex.scm:4503
 msgid ""
 "This package provides variants of @code{\\fbox}: @code{\\shadowbox},\n"
 "@code{\\doublebox}, @code{\\ovalbox}, @code{\\Ovalbox}, with helpful tools for\n"
@@ -18145,22 +24377,22 @@ msgid ""
 "floats, center, flushleft, and flushright, lists, and pages."
 msgstr ""
 
-#: gnu/packages/tex.scm:3540
+#: gnu/packages/tex.scm:4536
 msgid "Extensive control of page headers and footers in LaTeX2e"
 msgstr ""
 
-#: gnu/packages/tex.scm:3542
+#: gnu/packages/tex.scm:4538
 msgid ""
 "The package provides extensive facilities, both for constructing headers\n"
 "and footers, and for controlling their use (for example, at times when LaTeX\n"
 "would automatically change the heading style in use)."
 msgstr ""
 
-#: gnu/packages/tex.scm:3561
+#: gnu/packages/tex.scm:4557
 msgid "Improved interface for floating objects"
 msgstr ""
 
-#: gnu/packages/tex.scm:3563
+#: gnu/packages/tex.scm:4559
 msgid ""
 "This package improves the interface for defining floating objects such\n"
 "as figures and tables.  It introduces the boxed float, the ruled float and the\n"
@@ -18170,11 +24402,11 @@ msgid ""
 "with @code{\\floatplacement{figure}{H}}."
 msgstr ""
 
-#: gnu/packages/tex.scm:3585
+#: gnu/packages/tex.scm:4581
 msgid "Range of footnote options"
 msgstr "Ancho de opciones de anotaciones"
 
-#: gnu/packages/tex.scm:3587
+#: gnu/packages/tex.scm:4583
 msgid ""
 "This is a collection of ways to change the typesetting of footnotes.\n"
 "The package provides means of changing the layout of the footnotes themselves,\n"
@@ -18184,11 +24416,11 @@ msgid ""
 "footnotes with symbols rather than numbers."
 msgstr ""
 
-#: gnu/packages/tex.scm:3611
+#: gnu/packages/tex.scm:4607
 msgid "Typeset source code listings using LaTeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:3613
+#: gnu/packages/tex.scm:4609
 msgid ""
 "The package enables the user to typeset programs (programming code)\n"
 "within LaTeX; the source code is read directly by TeX---no front-end processor\n"
@@ -18196,11 +24428,11 @@ msgid ""
 "styles.  Support for @code{hyperref} is provided."
 msgstr ""
 
-#: gnu/packages/tex.scm:3646
+#: gnu/packages/tex.scm:4642
 msgid "Miscellaneous packages by Joerg Knappen"
 msgstr "Varios paquetes por Joerg Knappen"
 
-#: gnu/packages/tex.scm:3648
+#: gnu/packages/tex.scm:4644
 msgid ""
 "This package provides miscellaneous macros by Joerg Knappen, including:\n"
 "represent counters in greek; Maxwell's non-commutative division;\n"
@@ -18212,11 +24444,11 @@ msgid ""
 "in SGML; use maths minus in text as appropriate; simple Young tableaux."
 msgstr ""
 
-#: gnu/packages/tex.scm:3723
+#: gnu/packages/tex.scm:4719
 msgid "Computer modern fonts in T1 and TS1 encodings"
 msgstr ""
 
-#: gnu/packages/tex.scm:3725
+#: gnu/packages/tex.scm:4721
 msgid ""
 "The EC fonts are European Computer Modern Fonts, supporting the complete\n"
 "LaTeX T1 encoding defined at the 1990 TUG conference hold at Cork/Ireland.\n"
@@ -18233,34 +24465,61 @@ msgid ""
 "differs from the EC in a number of particulars."
 msgstr ""
 
-#: gnu/packages/tex.scm:3897 gnu/packages/tex.scm:4060
-#: gnu/packages/tex.scm:4195
+#: gnu/packages/tex.scm:4752
+msgid "Virtual fonts for T1 encoded CMR-fonts"
+msgstr ""
+
+#: gnu/packages/tex.scm:4754
+msgid ""
+"This package provides a set of virtual fonts which emulates T1 coded\n"
+"fonts using the standard CM fonts.  The package name, AE fonts, supposedly\n"
+"stands for \"Almost European\".  The main use of the package was to produce\n"
+"PDF files using Adobe Type 1 versions of the CM fonts instead of bitmapped EC\n"
+"fonts.  Note that direct substitutes for the bitmapped EC fonts are available,\n"
+"via the CM-super, Latin Modern and (in a restricted way) CM-LGC font sets."
+msgstr ""
+
+#: gnu/packages/tex.scm:4777
+msgid "Monospaced font with support files for use with TeX"
+msgstr ""
+
+#: gnu/packages/tex.scm:4779
+msgid ""
+"Inconsolata is a monospaced font designed by Raph Levien.  This package\n"
+"contains the font (in both Adobe Type 1 and OpenType formats) in regular and\n"
+"bold weights, with additional glyphs and options to control slashed zero,\n"
+"upright quotes and a shapelier lower-case L, plus metric files for use with\n"
+"TeX, and LaTeX font definition and other relevant files."
+msgstr ""
+
+#: gnu/packages/tex.scm:4806 gnu/packages/tex.scm:4835
+#: gnu/packages/tex.scm:4861 gnu/packages/tex.scm:7547
 msgid "URW Base 35 font pack for LaTeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:3899
+#: gnu/packages/tex.scm:4808
 msgid ""
 "This package provides a drop-in replacements for the Times font from\n"
 "Adobe's basic set."
 msgstr ""
 
-#: gnu/packages/tex.scm:4062
+#: gnu/packages/tex.scm:4837
 msgid ""
 "This package provides a drop-in replacements for the Palatino font from\n"
 "Adobe's basic set."
 msgstr ""
 
-#: gnu/packages/tex.scm:4197
+#: gnu/packages/tex.scm:4863
 msgid ""
 "This package provides a drop-in replacements for the Zapfding font from\n"
 "Adobe's basic set."
 msgstr ""
 
-#: gnu/packages/tex.scm:4267
+#: gnu/packages/tex.scm:4936
 msgid "Ralph Smith's Formal Script font"
 msgstr "Tipografía de Guión Formal de Ralph Smith"
 
-#: gnu/packages/tex.scm:4269
+#: gnu/packages/tex.scm:4938
 msgid ""
 "The fonts provide uppercase formal script letters for use as symbols in\n"
 "scientific and mathematical typesetting (in contrast to the informal script\n"
@@ -18270,22 +24529,22 @@ msgid ""
 "one of the packages @code{calrsfs} and @code{mathrsfs}."
 msgstr ""
 
-#: gnu/packages/tex.scm:4291
+#: gnu/packages/tex.scm:4960
 msgid "Add picture commands (or backgrounds) to every page"
 msgstr "Añade mandatos pictóricos (o fondos) a cada página"
 
-#: gnu/packages/tex.scm:4293
+#: gnu/packages/tex.scm:4962
 msgid ""
 "The package adds one or more user commands to LaTeX's @code{shipout}\n"
 "routine, which may be used to place the output at fixed positions.  The\n"
 "@code{grid} option may be used to find the correct places."
 msgstr ""
 
-#: gnu/packages/tex.scm:4325
+#: gnu/packages/tex.scm:4994
 msgid "Extensions to epic and the LaTeX drawing tools"
 msgstr ""
 
-#: gnu/packages/tex.scm:4327
+#: gnu/packages/tex.scm:4996
 msgid ""
 "Extensions to @code{epic} and the LaTeX picture drawing environment,\n"
 "include the drawing of lines at any slope, the drawing of circles in any\n"
@@ -18295,11 +24554,11 @@ msgid ""
 "@code{\\special} commands."
 msgstr ""
 
-#: gnu/packages/tex.scm:4362
+#: gnu/packages/tex.scm:5031
 msgid "Customize basic list environments"
 msgstr "Adaptar lista básica de entornos"
 
-#: gnu/packages/tex.scm:4364
+#: gnu/packages/tex.scm:5033
 msgid ""
 "This package is intended to ease customizing the three basic list\n"
 "environments: @code{enumerate}, @code{itemize} and @code{description}.  It\n"
@@ -18308,22 +24567,22 @@ msgid ""
 "@code{\\begin{itemize}[itemsep=1ex,leftmargin=1cm]}."
 msgstr ""
 
-#: gnu/packages/tex.scm:4385
+#: gnu/packages/tex.scm:5054
 msgid "Create tabular cells spanning multiple rows"
 msgstr ""
 
-#: gnu/packages/tex.scm:4387
+#: gnu/packages/tex.scm:5056
 msgid ""
 "The package provides tools for creating tabular cells spanning multiple\n"
 "rows.  It has a lot of flexibility, including an option for specifying an\n"
 "entry at the \"natural\" width of its text."
 msgstr ""
 
-#: gnu/packages/tex.scm:4419
+#: gnu/packages/tex.scm:5088
 msgid "Combine LaTeX commands over included graphics"
 msgstr ""
 
-#: gnu/packages/tex.scm:4421
+#: gnu/packages/tex.scm:5090
 msgid ""
 "The @code{overpic} environment is a cross between the LaTeX\n"
 "@code{picture} environment and the @code{\\includegraphics} command of\n"
@@ -18332,22 +24591,22 @@ msgid ""
 "positions; a grid for orientation is available."
 msgstr ""
 
-#: gnu/packages/tex.scm:4455
+#: gnu/packages/tex.scm:5124
 msgid "Layout with zero \\parindent, non-zero \\parskip"
 msgstr ""
 
-#: gnu/packages/tex.scm:4457
+#: gnu/packages/tex.scm:5126
 msgid ""
 "Simply changing @code{\\parskip} and @code{\\parindent} leaves a layout\n"
 "that is untidy; this package (though it is no substitute for a properly\n"
 "designed class) helps alleviate this untidiness."
 msgstr ""
 
-#: gnu/packages/tex.scm:4476
+#: gnu/packages/tex.scm:5145
 msgid "Include PDF documents in LaTeX"
 msgstr "Incluye documentos PDF en LaTeX"
 
-#: gnu/packages/tex.scm:4478
+#: gnu/packages/tex.scm:5147
 msgid ""
 "This package simplifies the inclusion of external multi-page PDF\n"
 "documents in LaTeX documents.  Pages may be freely selected and it is possible\n"
@@ -18357,11 +24616,11 @@ msgid ""
 "use this package to insert PostScript files, in addition to PDF files."
 msgstr ""
 
-#: gnu/packages/tex.scm:4510
+#: gnu/packages/tex.scm:5179
 msgid "St Mary Road symbols for theoretical computer science"
 msgstr ""
 
-#: gnu/packages/tex.scm:4512
+#: gnu/packages/tex.scm:5181
 msgid ""
 "The fonts were originally distributed as Metafont sources only, but\n"
 "Adobe Type 1 versions are also now available.  Macro support is provided for\n"
@@ -18370,11 +24629,11 @@ msgid ""
 "the whole font."
 msgstr ""
 
-#: gnu/packages/tex.scm:4533
+#: gnu/packages/tex.scm:5202
 msgid "Figures divided into subfigures"
 msgstr "Figuras divididas dentro de subfiguras"
 
-#: gnu/packages/tex.scm:4535
+#: gnu/packages/tex.scm:5204
 msgid ""
 "This (deprecated) package provides support for the manipulation and\n"
 "reference of small or \"sub\" figures and tables within a single figure or\n"
@@ -18387,11 +24646,11 @@ msgid ""
 "the more recent @code{subcaption} package more satisfactory."
 msgstr ""
 
-#: gnu/packages/tex.scm:4560
+#: gnu/packages/tex.scm:5229
 msgid "Tabular with variable width columns balanced"
 msgstr "Tabulado con ancho de columna variable equilibrado"
 
-#: gnu/packages/tex.scm:4562
+#: gnu/packages/tex.scm:5231
 msgid ""
 "The package defines a @code{tabular*}-like environment, @code{tabulary},\n"
 "taking a \"total width\" argument as well as the column specifications.  The\n"
@@ -18402,11 +24661,11 @@ msgid ""
 "according to the natural width of the widest cell in the column."
 msgstr ""
 
-#: gnu/packages/tex.scm:4598
+#: gnu/packages/tex.scm:5267
 msgid "Tables with captions and notes all the same width"
 msgstr ""
 
-#: gnu/packages/tex.scm:4600
+#: gnu/packages/tex.scm:5269
 msgid ""
 "This package facilitates tables with titles (captions) and notes.  The\n"
 "title and notes are given a width equal to the body of the table (a\n"
@@ -18415,11 +24674,11 @@ msgid ""
 "environment."
 msgstr ""
 
-#: gnu/packages/tex.scm:4721
+#: gnu/packages/tex.scm:5294
 msgid "Times-like fonts in support of mathematics"
 msgstr ""
 
-#: gnu/packages/tex.scm:4723
+#: gnu/packages/tex.scm:5296
 msgid ""
 "Txfonts supplies virtual text roman fonts using Adobe Times (or URW\n"
 "NimbusRomNo9L) with some modified and additional text symbols in the OT1, T1,\n"
@@ -18435,26 +24694,54 @@ msgid ""
 "TeX metrics (VF and TFM files) and macros for use with LaTeX."
 msgstr ""
 
-#: gnu/packages/tex.scm:4770
+#: gnu/packages/tex.scm:5346
 msgid "Sans-serif typeface for TeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:4771
+#: gnu/packages/tex.scm:5347
 msgid ""
 "Iwona is a two-element sans-serif typeface. It was created\n"
 "as an alternative version of the Kurier typeface, which was designed in 1975\n"
 "for a diploma in typeface design at the Warsaw Academy of Fine Arts under the\n"
 "supervision of Roman Tomaszewski.  Kurier was designed for linotype\n"
-"typesetting of newspapers and similar periodicals. The Iwona fonts are an\n"
+"typesetting of newspapers and similar periodicals.  The Iwona fonts are an\n"
 "alternative version of the Kurier fonts.  The difference lies in the absence\n"
 "of ink traps which typify the Kurier font."
 msgstr ""
 
-#: gnu/packages/tex.scm:4807
+#: gnu/packages/tex.scm:5374
+msgid "Use Linux Libertine and Biolinum fonts with LaTeX"
+msgstr ""
+
+#: gnu/packages/tex.scm:5376
+msgid ""
+"The package provides the Libertine and Biolinum fonts in both Type 1 and\n"
+"OTF styles, together with support macros for their use.  Monospaced and\n"
+"display fonts, and the \"keyboard\" set are also included, in OTF style, only.\n"
+"The @code{mweights} package is used to manage the selection of font weights.\n"
+"The package supersedes both the @code{libertineotf} and the\n"
+"@code{libertine-legacy} packages."
+msgstr ""
+
+#: gnu/packages/tex.scm:5406
+#, fuzzy
+msgid "LaTeX support for the DejaVu fonts"
+msgstr "Capacidad Babel para inglés"
+
+#: gnu/packages/tex.scm:5408
+msgid ""
+"The package contains LaTeX support for the DejaVu fonts, which are\n"
+"derived from the Vera fonts but contain more characters and styles.  The fonts\n"
+"are included in the original TrueType format, and in converted Type 1 format.\n"
+"The (currently) supported encodings are: OT1, T1, IL2, TS1, T2*, X2, QX, and\n"
+"LGR.  The package doesn't (currently) support mathematics."
+msgstr ""
+
+#: gnu/packages/tex.scm:5442
 msgid "Select alternative section titles"
 msgstr ""
 
-#: gnu/packages/tex.scm:4809
+#: gnu/packages/tex.scm:5444
 msgid ""
 "This package provides an interface to sectioning commands for selection\n"
 "from various title styles, e.g. for marginal titles and to change the font of\n"
@@ -18463,11 +24750,11 @@ msgid ""
 "floats in a page.  You may assign headers/footers to individual floats, too."
 msgstr ""
 
-#: gnu/packages/tex.scm:4830
+#: gnu/packages/tex.scm:5465
 msgid "Arbitrary size font selection in LaTeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:4832
+#: gnu/packages/tex.scm:5467
 msgid ""
 "LaTeX, by default, restricts the sizes at which you can use its default\n"
 "computer modern fonts, to a fixed set of discrete sizes (effectively, a set\n"
@@ -18482,11 +24769,11 @@ msgid ""
 "@code{ec} fonts."
 msgstr ""
 
-#: gnu/packages/tex.scm:4859
+#: gnu/packages/tex.scm:5494
 msgid "Cyrillic fonts that support LaTeX standard encodings"
 msgstr ""
 
-#: gnu/packages/tex.scm:4861
+#: gnu/packages/tex.scm:5496
 msgid ""
 "The LH fonts address the problem of the wide variety of alphabets that\n"
 "are written with Cyrillic-style characters.  The fonts are the original basis\n"
@@ -18499,43 +24786,43 @@ msgid ""
 "OT2 encoded fonts, CM bright shaped fonts and Concrete shaped fonts."
 msgstr ""
 
-#: gnu/packages/tex.scm:4899
+#: gnu/packages/tex.scm:5534
 msgid "Create scalable illustrations"
 msgstr "Crea ilustraciones escalables"
 
-#: gnu/packages/tex.scm:4901
+#: gnu/packages/tex.scm:5536
 msgid ""
 "MetaPost uses a language based on that of Metafont to produce precise\n"
 "technical illustrations.  Its output is scalable PostScript or SVG, rather\n"
 "than the bitmaps Metafont creates."
 msgstr ""
 
-#: gnu/packages/tex.scm:4920
+#: gnu/packages/tex.scm:5555
 msgid "Class for typesetting publications of ACM"
 msgstr ""
 
-#: gnu/packages/tex.scm:4922
+#: gnu/packages/tex.scm:5557
 msgid ""
 "This package provides a class for typesetting publications of the\n"
 "Association for Computing Machinery (ACM)."
 msgstr ""
 
-#: gnu/packages/tex.scm:4953
+#: gnu/packages/tex.scm:5588
 msgid "Variable-width minipage"
 msgstr "Minipaginado de anchura variable"
 
-#: gnu/packages/tex.scm:4955
+#: gnu/packages/tex.scm:5590
 msgid ""
 "The @code{varwidth} environment is superficially similar to\n"
 "@code{minipage}, but the specified width is just a maximum value — the box may\n"
 "get a narrower “natural” width."
 msgstr ""
 
-#: gnu/packages/tex.scm:4974
+#: gnu/packages/tex.scm:5609
 msgid "LaTeX support file to use the WASY2 fonts"
 msgstr ""
 
-#: gnu/packages/tex.scm:4976
+#: gnu/packages/tex.scm:5611
 msgid ""
 "The wasy2WASY2 (Waldi Symbol) font by Roland Waldi provides many glyphs\n"
 "like male and female symbols and astronomical symbols, as well as the complete\n"
@@ -18543,22 +24830,22 @@ msgid ""
 "to use interface for these symbols."
 msgstr ""
 
-#: gnu/packages/tex.scm:5009
+#: gnu/packages/tex.scm:5644
 msgid "Produces figures which text can flow around"
 msgstr ""
 
-#: gnu/packages/tex.scm:5011
+#: gnu/packages/tex.scm:5646
 msgid ""
 "This package allows figures or tables to have text wrapped around them.\n"
 "It does not work in combination with list environments, but can be used in a\n"
 "@code{parbox} or @code{minipage}, and in two-column format."
 msgstr ""
 
-#: gnu/packages/tex.scm:5043
+#: gnu/packages/tex.scm:5678
 msgid "Extended UTF-8 input encoding support for LaTeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:5045
+#: gnu/packages/tex.scm:5680
 msgid ""
 "The bundle provides the @code{ucs} package, and @code{utf8x.def},\n"
 "together with a large number of support files.  The @code{utf8x.def}\n"
@@ -18571,11 +24858,11 @@ msgid ""
 "package of that name now exists."
 msgstr ""
 
-#: gnu/packages/tex.scm:5077
+#: gnu/packages/tex.scm:5712
 msgid "Extract bits of a LaTeX source for output"
 msgstr "Extrae varios bit de una fuente LaTeX para salida"
 
-#: gnu/packages/tex.scm:5079
+#: gnu/packages/tex.scm:5714
 msgid ""
 "The main purpose of the preview package is the extraction of selected\n"
 "elements from a LaTeX source, like formulas or graphics, into separate\n"
@@ -18586,11 +24873,11 @@ msgid ""
 "files."
 msgstr ""
 
-#: gnu/packages/tex.scm:5102
+#: gnu/packages/tex.scm:5737
 msgid "Expand acronyms at least once"
 msgstr ""
 
-#: gnu/packages/tex.scm:5104
+#: gnu/packages/tex.scm:5739
 msgid ""
 "This package ensures that all acronyms used in the text are spelled out\n"
 "in full at least once.  It also provides an environment to build a list of\n"
@@ -18599,17 +24886,17 @@ msgid ""
 "e-TeX."
 msgstr ""
 
-#: gnu/packages/tex.scm:5155
+#: gnu/packages/tex.scm:5790
 msgid "TeX extension for direct creation of PDF"
 msgstr ""
 
-#: gnu/packages/tex.scm:5157
+#: gnu/packages/tex.scm:5792
 msgid ""
 "This package provides an extension of TeX which can be configured to\n"
 "directly generate PDF documents instead of DVI."
 msgstr ""
 
-#: gnu/packages/tex.scm:5229
+#: gnu/packages/tex.scm:5864
 msgid ""
 "TeX Live provides a comprehensive TeX document production system.\n"
 "It includes all the major TeX-related programs, macro packages, and fonts\n"
@@ -18619,7 +24906,7 @@ msgid ""
 "This package contains the complete tree of texmf-dist data."
 msgstr ""
 
-#: gnu/packages/tex.scm:5292
+#: gnu/packages/tex.scm:5927
 msgid ""
 "TeX Live provides a comprehensive TeX document production system.\n"
 "It includes all the major TeX-related programs, macro packages, and fonts\n"
@@ -18629,11 +24916,11 @@ msgid ""
 "This package contains the complete TeX Live distribution."
 msgstr ""
 
-#: gnu/packages/tex.scm:5335
+#: gnu/packages/tex.scm:5970
 msgid "Interface to read and parse BibTeX files"
 msgstr "Interfaz para leer e interpretar ficheros BibTeX"
 
-#: gnu/packages/tex.scm:5336
+#: gnu/packages/tex.scm:5971
 msgid ""
 "@code{Text::BibTeX} is a Perl library for reading, parsing,\n"
 "and processing BibTeX files.  @code{Text::BibTeX} gives you access to the data\n"
@@ -18642,21 +24929,21 @@ msgid ""
 "values (strings, macros, or numbers) pasted together."
 msgstr ""
 
-#: gnu/packages/tex.scm:5422
+#: gnu/packages/tex.scm:6061
 msgid "Backend for the BibLaTeX citation management tool"
 msgstr "Backend para herramienta de gestión de citados BiblaTeX"
 
-#: gnu/packages/tex.scm:5423
+#: gnu/packages/tex.scm:6062
 msgid ""
 "Biber is a BibTeX replacement for users of biblatex.  Among\n"
 "other things it comes with full Unicode support."
 msgstr ""
 
-#: gnu/packages/tex.scm:5447
+#: gnu/packages/tex.scm:6094
 msgid "Wrapper for LaTeX and friends"
 msgstr "Recubridor para LaTeX y similares"
 
-#: gnu/packages/tex.scm:5449
+#: gnu/packages/tex.scm:6096
 msgid ""
 "Rubber is a program whose purpose is to handle all tasks related to the\n"
 "compilation of LaTeX documents.  This includes compiling the document itself,\n"
@@ -18666,34 +24953,33 @@ msgid ""
 "PDF documents."
 msgstr ""
 
-#: gnu/packages/tex.scm:5491
+#: gnu/packages/tex.scm:6138
 msgid "LaTeX editor"
 msgstr "Editor LaTeX"
 
-#: gnu/packages/tex.scm:5492
+#: gnu/packages/tex.scm:6139
 msgid ""
 "Texmaker is a program that integrates many tools needed to\n"
 "develop documents with LaTeX, in a single application."
 msgstr ""
 
-#: gnu/packages/tex.scm:5533
+#: gnu/packages/tex.scm:6179
 msgid "Book on TeX, plain TeX and Eplain"
 msgstr "Libro en TeX, TeX simple y Eplain"
 
-#: gnu/packages/tex.scm:5534
+#: gnu/packages/tex.scm:6180
 msgid ""
 "@i{TeX for the Impatient} is a ~350 page book on TeX,\n"
 "plain TeX, and Eplain, originally written by Paul Abrahams, Kathryn Hargreaves,\n"
 "and Karl Berry."
 msgstr ""
 
-#: gnu/packages/tex.scm:5630
+#: gnu/packages/tex.scm:6246
 #, fuzzy
-#| msgid "Document layout system"
 msgid "Document preparation system with GUI"
 msgstr "Sistema de diseño documental"
 
-#: gnu/packages/tex.scm:5631
+#: gnu/packages/tex.scm:6247
 msgid ""
 "LyX is a document preparation system.  It excels at letting\n"
 "you create complex technical and scientific articles with mathematics,\n"
@@ -18702,11 +24988,11 @@ msgid ""
 "required: automatic sectioning and pagination, spell checking and so forth."
 msgstr ""
 
-#: gnu/packages/tex.scm:5665
+#: gnu/packages/tex.scm:6281
 msgid "Multimedia inclusion package with Adobe Reader-9/X compatibility"
 msgstr ""
 
-#: gnu/packages/tex.scm:5667
+#: gnu/packages/tex.scm:6283
 msgid ""
 "The package provides an interface to embed interactive Flash (SWF) and 3D\n"
 "objects (Adobe U3D & PRC), as well as video and sound files or streams in the\n"
@@ -18719,11 +25005,11 @@ msgid ""
 "specification.  It replaces the now obsolete @code{movie15} package."
 msgstr ""
 
-#: gnu/packages/tex.scm:5705
+#: gnu/packages/tex.scm:6321
 msgid "Provide OCG (Optional Content Groups) support within a PDF document"
 msgstr ""
 
-#: gnu/packages/tex.scm:5707
+#: gnu/packages/tex.scm:6323
 msgid ""
 "This package provides OCG (Optional Content Groups) support within a PDF\n"
 "document.\n"
@@ -18741,11 +25027,11 @@ msgid ""
 "It also ensures compatibility with the @code{media9} and @code{animate} packages."
 msgstr ""
 
-#: gnu/packages/tex.scm:5739
+#: gnu/packages/tex.scm:6355
 msgid "Various LATEX packages by Martin Schröder"
 msgstr ""
 
-#: gnu/packages/tex.scm:5741
+#: gnu/packages/tex.scm:6357
 msgid ""
 "A bundle of LATEX packages by Martin Schröder; the collection comprises:\n"
 "\n"
@@ -18759,22 +25045,22 @@ msgid ""
 "@end itemize\n"
 msgstr ""
 
-#: gnu/packages/tex.scm:5771
+#: gnu/packages/tex.scm:6387
 msgid "Insert pagebreak if not enough space"
 msgstr ""
 
-#: gnu/packages/tex.scm:5773
+#: gnu/packages/tex.scm:6389
 msgid ""
 "Provides commands to disable pagebreaking within a given vertical\n"
 "space.  If there is not enough space between the command and the bottom of the\n"
 "page, a new page will be started."
 msgstr ""
 
-#: gnu/packages/tex.scm:5796
+#: gnu/packages/tex.scm:6413
 msgid "Margin adjustment and detection of odd/even pages"
 msgstr ""
 
-#: gnu/packages/tex.scm:5798
+#: gnu/packages/tex.scm:6415
 msgid ""
 "The package provides commands to change the page layout in the middle of\n"
 "a document, and to robustly check for typesetting on odd or even pages.\n"
@@ -18782,11 +25068,11 @@ msgid ""
 "of code from the @code{memoir} class, whose user interface it shares."
 msgstr ""
 
-#: gnu/packages/tex.scm:5832
+#: gnu/packages/tex.scm:6449
 msgid "UK format dates, with weekday"
 msgstr ""
 
-#: gnu/packages/tex.scm:5834
+#: gnu/packages/tex.scm:6451
 msgid ""
 "The package is used to change the format of @code{\\today}’s date,\n"
 "including the weekday, e.g., \"Saturday, 26 June 2008\", the 'UK format', which\n"
@@ -18794,11 +25080,11 @@ msgid ""
 "@code{\\maketitle} of the article class, \"June 26, 2008\", the 'US format'."
 msgstr ""
 
-#: gnu/packages/tex.scm:5868
+#: gnu/packages/tex.scm:6485
 msgid "Underline text in TeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:5870
+#: gnu/packages/tex.scm:6487
 msgid ""
 "The package provides an @code{\\ul} (underline) command which will break\n"
 "over line ends; this technique may be used to replace @code{\\em} (both in that\n"
@@ -18807,11 +25093,11 @@ msgid ""
 "striking out (line through words) and crossing out (/// over words)."
 msgstr ""
 
-#: gnu/packages/tex.scm:5924
+#: gnu/packages/tex.scm:6541
 msgid "Create PostScript and PDF graphics in TeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:5926
+#: gnu/packages/tex.scm:6543
 msgid ""
 "PGF is a macro package for creating graphics.  It is platform- and\n"
 "format-independent and works together with the most important TeX backend\n"
@@ -18823,11 +25109,11 @@ msgid ""
 "produce either PostScript or PDF output."
 msgstr ""
 
-#: gnu/packages/tex.scm:5971
+#: gnu/packages/tex.scm:6588
 msgid "Bundle of versatile classes and packages"
 msgstr ""
 
-#: gnu/packages/tex.scm:5973
+#: gnu/packages/tex.scm:6590
 msgid ""
 "The KOMA-Script bundle provides replacements for the article, report, and\n"
 "book classes with emphasis on typography and versatility.  There is also a\n"
@@ -18852,22 +25138,22 @@ msgid ""
 "typearea (which are the main parts of the bundle)."
 msgstr ""
 
-#: gnu/packages/tex.scm:6023
+#: gnu/packages/tex.scm:6640
 msgid "Grab items in lists using user-specified separation character"
 msgstr ""
 
-#: gnu/packages/tex.scm:6025
+#: gnu/packages/tex.scm:6642
 msgid ""
 "This package allows one to capture all the items of a list, for which\n"
 "the parsing character has been selected by the user, and to access any of\n"
 "these items with a simple syntax."
 msgstr ""
 
-#: gnu/packages/tex.scm:6059
+#: gnu/packages/tex.scm:6676
 msgid "Read, store and recall array-formatted data"
 msgstr ""
 
-#: gnu/packages/tex.scm:6061
+#: gnu/packages/tex.scm:6678
 msgid ""
 "This package allows the user to input formatted data into elements of a\n"
 "2-D or 3-D array and to recall that data at will by individual cell number.\n"
@@ -18875,13 +25161,12 @@ msgid ""
 "formatted text."
 msgstr ""
 
-#: gnu/packages/tex.scm:6096
+#: gnu/packages/tex.scm:6713
 #, fuzzy
-#| msgid "Sophisticated verbatim text"
 msgid "Deposit verbatim text in a box"
 msgstr "Texto verborreo sofisticado"
 
-#: gnu/packages/tex.scm:6098
+#: gnu/packages/tex.scm:6715
 msgid ""
 "The package provides a @code{verbbox} environment to place its contents\n"
 "into a globally available box, or into a box specified by the user.  The\n"
@@ -18891,11 +25176,11 @@ msgid ""
 "@code{trivlist}) may not appear."
 msgstr ""
 
-#: gnu/packages/tex.scm:6133
+#: gnu/packages/tex.scm:6750
 msgid "Verbatim phrases and listings in LaTeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:6135
+#: gnu/packages/tex.scm:6752
 msgid ""
 "Examplep provides sophisticated features for typesetting verbatim source\n"
 "code listings, including the display of the source code and its compiled LaTeX\n"
@@ -18908,30 +25193,23 @@ msgid ""
 "titles."
 msgstr ""
 
-#: gnu/packages/tex.scm:6175
-msgid "Flexible diagramming macros for TeX"
+#: gnu/packages/tex.scm:6788
+msgid "Flexible diagramming macros"
 msgstr ""
 
-#: gnu/packages/tex.scm:6177
+#: gnu/packages/tex.scm:6789
 msgid ""
-"A package for typesetting a variety of graphs and diagrams with TeX.\n"
-"Xy-pic works with most formats (including LaTeX, AMS-LaTeX, AMS-TeX, and plain\n"
-"TeX)."
+"This is a package for typesetting a variety of graphs and\n"
+"diagrams with TeX.  Xy-pic works with most formats (including LaTeX,\n"
+"AMS-LaTeX, AMS-TeX, and plain TeX).  The distribution includes Michael Barr's\n"
+"@code{diag} package, which was previously distributed stand-alone."
 msgstr ""
 
-#: gnu/packages/tex.scm:6257
-msgid "Fonts for XY-pic"
-msgstr ""
-
-#: gnu/packages/tex.scm:6258
-msgid "This package provides the XY-pic fonts."
-msgstr ""
-
-#: gnu/packages/tex.scm:6289
+#: gnu/packages/tex.scm:6829
 msgid "Process bibliographies for LaTeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:6291
+#: gnu/packages/tex.scm:6831
 msgid ""
 "BibTeX allows the user to store his citation data in generic form, while\n"
 "printing citations in a document in the form specified by a BibTeX style, to\n"
@@ -18939,33 +25217,34 @@ msgid ""
 "package, such as @command{natbib} as well)."
 msgstr ""
 
-#: gnu/packages/tex.scm:6359
+#: gnu/packages/tex.scm:6850
 msgid "Charter fonts for TeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:6360
+#: gnu/packages/tex.scm:6851
 msgid ""
-"A commercial text font donated for the common good.  Support\n"
-"for use with LaTeX is available in @code{freenfss}, part of\n"
+"This package provides a copy of the Charter Type-1 fonts\n"
+"which Bitstream contributed to the X consortium, renamed for use with TeX.\n"
+"Support for use with LaTeX is available in @code{freenfss}, part of\n"
 "@command{psnfss}. "
 msgstr ""
 
-#: gnu/packages/tex.scm:6393
+#: gnu/packages/tex.scm:6888
 msgid "Full featured, parameter driven macro package for TeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:6394
+#: gnu/packages/tex.scm:6889
 msgid ""
 "A full featured, parameter driven macro package, which fully\n"
 "supports advanced interactive documents.  See the ConTeXt garden for a wealth\n"
 "of support information."
 msgstr ""
 
-#: gnu/packages/tex.scm:6450
+#: gnu/packages/tex.scm:6909
 msgid "LaTeX class for producing presentations and slides"
 msgstr ""
 
-#: gnu/packages/tex.scm:6451
+#: gnu/packages/tex.scm:6910
 msgid ""
 "The beamer LaTeX class can be used for producing slides.\n"
 "The class works in both PostScript and direct PDF output modes, using the\n"
@@ -18978,11 +25257,11 @@ msgid ""
 "effects, varying slide transitions and animations."
 msgstr ""
 
-#: gnu/packages/tex.scm:6478
+#: gnu/packages/tex.scm:6941
 msgid "Include eXtensible Metadata Platform data in pdfLaTeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:6480
+#: gnu/packages/tex.scm:6943
 msgid ""
 "The XMP (eXtensible Metadata platform) is a framework to add metadata to\n"
 "digital material to enhance the workflow in publication.  The essence is that\n"
@@ -18990,21 +25269,334 @@ msgid ""
 "the file to which it applies."
 msgstr ""
 
-#: gnu/packages/tex.scm:6532
+#: gnu/packages/tex.scm:6996
 msgid "PDF/X and PDF/A support for pdfTeX, LuaTeX and XeTeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:6534
+#: gnu/packages/tex.scm:6998
 msgid ""
-"This package helps LaTeX users to create PDF/X, PFD/A and other\n"
+"This package helps LaTeX users to create PDF/X, PDF/A and other\n"
 "standards-compliant PDF documents with pdfTeX, LuaTeX and XeTeX."
 msgstr ""
 
-#: gnu/packages/texinfo.scm:55
+#: gnu/packages/tex.scm:7040
+msgid "Macros for documentation of LaTeX classes and packages"
+msgstr ""
+
+#: gnu/packages/tex.scm:7041
+msgid ""
+"The package provides macros and environments to document\n"
+"LaTeX packages and classes.  It is an (as yet unfinished) alternative to the\n"
+"@code{ltxdoc} class and the @code{doc} or @code{xdoc} packages.  The aim is to\n"
+"provide a different layout and more modern styles (using the @code{xcolor},\n"
+"@code{hyperref} packages, etc.)  This is an alpha release, and should probably\n"
+"not (yet) be used with other packages, since the implementation might\n"
+"change."
+msgstr ""
+
+#: gnu/packages/tex.scm:7068
+msgid "PostScript macros for TeX"
+msgstr ""
+
+#: gnu/packages/tex.scm:7069
+msgid ""
+"PSTricks offers an extensive collection of macros for\n"
+"generating PostScript that is usable with most TeX macro formats, including\n"
+"Plain TeX, LaTeX, AMS-TeX, and AMS-LaTeX.  Included are macros for colour,\n"
+"graphics, pie charts, rotation, trees and overlays.  It has many special\n"
+"features, including a wide variety of graphics (picture drawing) macros, with\n"
+"a flexible interface and with colour support.  There are macros for colouring\n"
+"or shading the cells of tables."
+msgstr ""
+
+#: gnu/packages/tex.scm:7093
+msgid "Text and character manipulation in PSTricks"
+msgstr ""
+
+#: gnu/packages/tex.scm:7094
+msgid ""
+"Pst-text is a PSTricks based package for plotting text along\n"
+"a different path and manipulating characters.  It includes the functionality\n"
+"of the old package @code{pst-char}."
+msgstr ""
+
+#: gnu/packages/tex.scm:7118
+msgid "Notes in the margin"
+msgstr ""
+
+#: gnu/packages/tex.scm:7119
+msgid ""
+"This package provides the command @code{\\marginnote} that\n"
+"may be used instead of @code{\\marginpar} at almost every place where\n"
+"@code{\\marginpar} cannot be used, e.g., inside floats, footnotes, or in\n"
+"frames made with the @code{framed} package."
+msgstr ""
+
+#: gnu/packages/tex.scm:7136
+msgid "Determine the currently used TeX engine"
+msgstr ""
+
+#: gnu/packages/tex.scm:7137
+msgid ""
+"This package, which works both for Plain TeX and for\n"
+"LaTeX, defines the @code{\\ifPDFTeX}, @code{\\ifXeTeX}, and @code{\\ifLuaTeX}\n"
+"conditionals for testing which engine is being used for typesetting.  The\n"
+"package also provides the @code{\\RequirePDFTeX}, @code{\\RequireXeTeX}, and\n"
+"@code{\\RequireLuaTeX} commands which throw an error if pdfTeX, XeTeX or\n"
+"LuaTeX (respectively) is not the engine in use."
+msgstr ""
+
+#: gnu/packages/tex.scm:7166
+msgid ""
+"This package provides a collection of simple tools that\n"
+"are part of the LaTeX required tools distribution, comprising the packages:\n"
+"@code{afterpage}, @code{array}, @code{bm}, @code{calc}, @code{dcolumn},\n"
+"@code{delarray}, @code{enumerate}, @code{fileerr}, @code{fontsmpl},\n"
+"@code{ftnright}, @code{hhline}, @code{indentfirst}, @code{layout},\n"
+"@code{longtable}, @code{multicol}, @code{rawfonts}, @code{showkeys},\n"
+"@code{somedefs}, @code{tabularx}, @code{theorem}, @code{trace},\n"
+"@code{varioref}, @code{verbatim}, @code{xr}, and @code{xspace}."
+msgstr ""
+
+#: gnu/packages/tex.scm:7245
+msgid "Extension of the keyval package"
+msgstr ""
+
+#: gnu/packages/tex.scm:7247
+msgid ""
+"This package is an extension of the keyval package and offers additional\n"
+"macros for setting keys and declaring and setting class or package options.\n"
+"The package allows the programmer to specify a prefix to the name of the\n"
+"macros it defines for keys, and to define families of key definitions; these\n"
+"all help use in documents where several packages define their own sets of\n"
+"keys."
+msgstr ""
+
+#: gnu/packages/tex.scm:7274
+msgid "Compile TeX pictures stand-alone or as part of a document"
+msgstr ""
+
+#: gnu/packages/tex.scm:7275
+msgid ""
+"A class and package is provided which allows TeX pictures or\n"
+"other TeX code to be compiled standalone or as part of a main document.\n"
+"Special support for pictures with beamer overlays is also provided.  The\n"
+"package is used in the main document and skips extra preambles in sub-files.\n"
+"The class may be used to simplify the preamble in sub-files.  By default the\n"
+"@code{preview} package is used to display the typeset code without margins.\n"
+"The behaviour in standalone mode may adjusted using a configuration file\n"
+"@code{standalone.cfg} to redefine the standalone environment."
+msgstr ""
+
+#: gnu/packages/tex.scm:7307
+msgid "Comprehensive SI units package"
+msgstr ""
+
+#: gnu/packages/tex.scm:7309
+msgid ""
+"Typesetting values with units requires care to ensure that the combined\n"
+"mathematical meaning of the value plus unit combination is clear.  In\n"
+"particular, the SI units system lays down a consistent set of units with rules\n"
+"on how they are to be used.  However, different countries and publishers have\n"
+"differing conventions on the exact appearance of numbers (and units).  A\n"
+"number of LaTeX packages have been developed to provide consistent application\n"
+"of the various rules.  The @code{siunitx} package takes the best from the\n"
+"existing packages, and adds new features and a consistent interface.  A number\n"
+"of new ideas have been incorporated, to fill gaps in the existing provision.\n"
+"The package also provides backward-compatibility with @code{SIunits},\n"
+"@code{sistyle}, @code{unitsdef} and @code{units}.  The aim is to have one\n"
+"package to handle all of the possible unit-related needs of LaTeX users."
+msgstr ""
+
+#: gnu/packages/tex.scm:7338
+msgid "Publication quality tables in LaTeX"
+msgstr ""
+
+#: gnu/packages/tex.scm:7340
+msgid ""
+"This package enhances the quality of tables in LaTeX, providing extra\n"
+"commands as well as behind-the-scenes optimisation.  Guidelines are given as\n"
+"to what constitutes a good table in this context.  The package offers\n"
+"@code{longtable} compatibility."
+msgstr ""
+
+#: gnu/packages/tex.scm:7359
+msgid "Context sensitive quotation facilities"
+msgstr ""
+
+#: gnu/packages/tex.scm:7360
+msgid ""
+"This package provides advanced facilities for inline and\n"
+"display quotations.  It is designed for a wide range of tasks ranging from the\n"
+"most simple applications to the more complex demands of formal quotations.\n"
+"The facilities include commands, environments, and user-definable 'smart\n"
+"quotes' which dynamically adjust to their context.  Quotation marks are\n"
+"switched automatically if quotations are nested and they can be adjusted to\n"
+"the current language if the babel package is available.  There are additional\n"
+"facilities designed to cope with the more specific demands of academic\n"
+"writing, especially in the humanities and the social sciences.  All quote\n"
+"styles as well as the optional active quotes are freely configurable."
+msgstr ""
+
+#: gnu/packages/tex.scm:7385
+msgid "Support for automation of the LaTeX workflow"
+msgstr ""
+
+#: gnu/packages/tex.scm:7386
+msgid ""
+"The package helps to automate a typical LaTeX\n"
+"workflow that involves running LaTeX several times and running tools\n"
+"such as BibTeX or makeindex.  It will log requests like \"please rerun\n"
+"LaTeX\" or \"please run BibTeX on file X\" to an external file in a\n"
+"machine-readable format.  Compiler scripts and integrated LaTeX\n"
+"editing environments may parse this file to determine the next steps\n"
+"in the workflow.  In sum, the package will do two things:\n"
+"\n"
+"@enumerate\n"
+"@item\n"
+"enable package authors to use LaTeX commands to issue requests, and\n"
+"\n"
+"@item\n"
+"collect all requests from all packages and write them to an external\n"
+"XML file.\n"
+"@end enumerate\n"
+msgstr ""
+
+#: gnu/packages/tex.scm:7418
+msgid "Sophisticated bibliographies in LaTeX"
+msgstr ""
+
+#: gnu/packages/tex.scm:7419
+msgid ""
+"BibLaTeX is a complete reimplementation of the\n"
+"bibliographic facilities provided by LaTeX.  Formatting of the\n"
+"bibliography is entirely controlled by LaTeX macros, facilitating the\n"
+"design of new bibliography and citation styles.  BibLaTeX uses its own\n"
+"data backend program \"biber\" to read and process the bibliographic\n"
+"data.  With biber, the range of features provided by biblatex\n"
+"includes:\n"
+"\n"
+"@enumerate\n"
+"@item\n"
+"full unicode support,\n"
+"\n"
+"@item\n"
+"customisable bibliography labels,\n"
+"\n"
+"@item\n"
+"multiple bibliographies in the same document, and\n"
+"\n"
+"@item\n"
+"subdivided bibliographies, such as bibliographies per chapter or\n"
+"section.\n"
+"@end enumerate\n"
+msgstr ""
+
+#: gnu/packages/tex.scm:7457
+#, fuzzy
+msgid "Marking things to do in a LaTeX document"
+msgstr "Genera modificaciones de barras en documentos LaTeX"
+
+#: gnu/packages/tex.scm:7458
+msgid ""
+"The @code{todonotes} package lets the user mark\n"
+"things to do later, in a simple and visually appealing way.  The\n"
+"package takes several options to enable customization and finetuning\n"
+"of the visual appearance."
+msgstr ""
+
+#: gnu/packages/tex.scm:7475
+#, fuzzy
+msgid "Typeset physical units and fractions"
+msgstr "Conexiones Typeset Galois"
+
+#: gnu/packages/tex.scm:7476
+msgid ""
+"@code{units} is a package for typesetting physical\n"
+"units in a standard-looking way.  The package is based upon\n"
+"@code{nicefrac}, a package for typing fractions.  @code{nicefrac} is\n"
+"included in the @code{units} bundle."
+msgstr ""
+
+#: gnu/packages/tex.scm:7493
+msgid "Subliminal refinements towards typographical perfection"
+msgstr ""
+
+#: gnu/packages/tex.scm:7494
+msgid ""
+"@code{microtype} provides a LaTeX interface to the\n"
+"micro-typographic extensions that were introduced by pdfTeX and have\n"
+"since propagated to XeTeX and LuaTeX: most prominently character\n"
+"protrusion and font expansion, the adjustment of kerning and interword\n"
+"spacing, hyphenatable letterspacing and the possibility to disable all\n"
+"or selected ligatures.  These features may be applied to customisable\n"
+"sets of fonts.  All micro-typographic aspects of the fonts can be\n"
+"configured in a straight-forward and flexible way.  Settings for\n"
+"various fonts are provided.  An alternative package\n"
+"@code{letterspace}, which also works with plain TeX, is included in\n"
+"the bundle."
+msgstr ""
+
+#: gnu/packages/tex.scm:7518
+#, fuzzy
+msgid "Customising captions in floating environments"
+msgstr "Adaptar lista básica de entornos"
+
+#: gnu/packages/tex.scm:7519
+msgid ""
+"The @code{caption} package provides many ways to\n"
+"customise the captions in floating environments like figure and table.\n"
+"Facilities include rotating captions, sideways captions and continued\n"
+"captions (for tables or figures that come in several parts).  A list\n"
+"of compatibility notes, for other packages, is provided in the\n"
+"documentation.  The package also provides the \"caption outside\n"
+"float\" facility, in the same way that simpler packages like\n"
+"@code{capt-ofcapt-of} do.  The package supersedes @code{caption2}.\n"
+"Packages @code{bicaption}, @code{ltcaption}, @code{newfloat},\n"
+"@code{subcaption} and @code{totalcount} are included in the bundle."
+msgstr ""
+
+#: gnu/packages/tex.scm:7548
+msgid ""
+"This package provides a drop-in replacement for the\n"
+"Symbol font from Adobe's basic set."
+msgstr ""
+
+#: gnu/packages/tex.scm:7565
+msgid "Fonts to typeset mathematics to match Palatino"
+msgstr ""
+
+#: gnu/packages/tex.scm:7566
+msgid ""
+"The Pazo Math fonts are a family of PostScript fonts\n"
+"suitable for typesetting mathematics in combination with the Palatino\n"
+"family of text fonts.  The Pazo Math family is made up of five fonts\n"
+"provided in Adobe Type 1 format.  These contain glyphs that are\n"
+"usually not available in Palatino and for which Computer Modern looks\n"
+"odd when combined with Palatino.  These glyphs include the uppercase\n"
+"Greek alphabet in upright and slanted shapes, the lowercase Greek\n"
+"alphabet in slanted shape, several mathematical glyphs and the\n"
+"uppercase letters commonly used to represent various number sets.\n"
+"LaTeX macro support is provided in package @code{psnfss}."
+msgstr ""
+
+#: gnu/packages/tex.scm:7590
+msgid "SC and OsF fonts for URW Palladio L"
+msgstr ""
+
+#: gnu/packages/tex.scm:7591
+msgid ""
+"The FPL Fonts provide a set of SC/OsF fonts for URW\n"
+"Palladio L which are compatible with the Palatino SC/OsF fonts from\n"
+"Adobe.  LaTeX use is enabled by the mathpazo package, which is part of\n"
+"the @code{psnfss} distribution."
+msgstr ""
+
+#: gnu/packages/texinfo.scm:90
 msgid "The GNU documentation format"
 msgstr "El formato de documentación GNU"
 
-#: gnu/packages/texinfo.scm:57
+#: gnu/packages/texinfo.scm:92
 msgid ""
 "Texinfo is the official documentation format of the GNU project.  It\n"
 "uses a single source file using explicit commands to produce a final document\n"
@@ -19014,15 +25606,15 @@ msgid ""
 "is on expressing the content semantically, avoiding physical markup commands."
 msgstr ""
 
-#: gnu/packages/texinfo.scm:126
+#: gnu/packages/texinfo.scm:189
 msgid "Standalone Info documentation reader"
 msgstr ""
 
-#: gnu/packages/texinfo.scm:158
+#: gnu/packages/texinfo.scm:221
 msgid "Convert Texinfo to HTML"
 msgstr "Convierte Texinfo a HTML"
 
-#: gnu/packages/texinfo.scm:160
+#: gnu/packages/texinfo.scm:223
 msgid ""
 "Texi2HTML is a Perl script which converts Texinfo source files to HTML\n"
 "output.  It now supports many advanced features, such as internationalization\n"
@@ -19037,11 +25629,24 @@ msgid ""
 "Texi2HTML."
 msgstr ""
 
-#: gnu/packages/textutils.scm:82
+#: gnu/packages/texinfo.scm:289
+msgid "Lynx-style Info file and man page reader"
+msgstr ""
+
+#: gnu/packages/texinfo.scm:291
+msgid ""
+"Pinfo is an Info file viewer.  Pinfo is similar in use to the Lynx web\n"
+"browser.  You just move across info nodes, and select links, follow them, etc.\n"
+"It supports many colors.  Pinfo also supports viewing of manual pages -- they\n"
+"are colorized like in the midnight commander's viewer, and additionally they\n"
+"are hypertextualized."
+msgstr ""
+
+#: gnu/packages/textutils.scm:91
 msgid "DOS/Mac to Unix and vice versa text file format converter"
 msgstr "Conversor de ficheros de texto de formato DOS/Mac a Unix y viceversa"
 
-#: gnu/packages/textutils.scm:84
+#: gnu/packages/textutils.scm:93
 msgid ""
 "dos2unix is a tool to convert line breaks in a text file from Unix format\n"
 "to DOS format and vice versa."
@@ -19049,11 +25654,11 @@ msgstr ""
 "dos2unix es una herramienta para convertir línea de ruptura en un fichero\n"
 "de texto desde formato Unix a formato DOS y viceversa."
 
-#: gnu/packages/textutils.scm:109
+#: gnu/packages/textutils.scm:113
 msgid "Text encoding converter"
 msgstr "Texto codificando conversor"
 
-#: gnu/packages/textutils.scm:110
+#: gnu/packages/textutils.scm:114
 msgid ""
 "The Recode library converts files between character sets and\n"
 "usages.  It recognises or produces over 200 different character sets (or about\n"
@@ -19063,33 +25668,33 @@ msgid ""
 "handy front-end to the library."
 msgstr ""
 
-#: gnu/packages/textutils.scm:134
+#: gnu/packages/textutils.scm:139
 msgid "Text encoding detection tool"
 msgstr "Herramienta de detección de codificación del texto"
 
-#: gnu/packages/textutils.scm:135
+#: gnu/packages/textutils.scm:140
 msgid ""
 "Enca (Extremely Naive Charset Analyser) consists of libenca,\n"
 "an encoding detection library, and enca, a command line frontend, integrating\n"
 "libenca and several charset conversion libraries and tools."
 msgstr ""
 
-#: gnu/packages/textutils.scm:185
+#: gnu/packages/textutils.scm:197
 msgid "C library for processing UTF-8 Unicode data"
 msgstr ""
 
-#: gnu/packages/textutils.scm:186
+#: gnu/packages/textutils.scm:198
 msgid ""
 "utf8proc is a small C library that provides Unicode\n"
 "normalization, case-folding, and other operations for data in the UTF-8\n"
 "encoding, supporting Unicode version 9.0.0."
 msgstr ""
 
-#: gnu/packages/textutils.scm:205 gnu/packages/textutils.scm:616
+#: gnu/packages/textutils.scm:219 gnu/packages/textutils.scm:740
 msgid "Configuration file parser library"
 msgstr "Biblioteca interpreta fichero de configuración"
 
-#: gnu/packages/textutils.scm:206
+#: gnu/packages/textutils.scm:220
 msgid ""
 "libconfuse is a configuration file parser library.  It\n"
 "supports sections and (lists of) values (strings, integers, floats, booleans\n"
@@ -19098,39 +25703,110 @@ msgid ""
 "nested include statements)."
 msgstr ""
 
-#: gnu/packages/textutils.scm:236
+#: gnu/packages/textutils.scm:262
 msgid "Gordon's text utils library"
 msgstr "Biblioteca de utilidades textuales de Gordon"
 
-#: gnu/packages/textutils.scm:238
+#: gnu/packages/textutils.scm:264
 msgid ""
 "libgtextutils is a text utilities library used by the fastx toolkit from\n"
 "the Hannon Lab."
 msgstr ""
 
-#: gnu/packages/textutils.scm:270
+#: gnu/packages/textutils.scm:296
 msgid "C++ hash functions for strings"
 msgstr ""
 
-#: gnu/packages/textutils.scm:272
+#: gnu/packages/textutils.scm:298
 msgid ""
 "CityHash provides hash functions for strings.  The functions mix the\n"
 "input bits thoroughly but are not suitable for cryptography."
 msgstr ""
 
-#: gnu/packages/textutils.scm:310
+#: gnu/packages/textutils.scm:336
 msgid "String library with very low memory overhead"
 msgstr ""
 
-#: gnu/packages/textutils.scm:312
+#: gnu/packages/textutils.scm:338
 msgid "Ustr is a string library for C with very low memory overhead."
 msgstr ""
 
-#: gnu/packages/textutils.scm:333
+#: gnu/packages/textutils.scm:361
+msgid "Convert between ASCII, hexadecimal and binary representations"
+msgstr ""
+
+#: gnu/packages/textutils.scm:362
+msgid ""
+"The two programs are useful for generating test data, for\n"
+"inspecting binary files, and for interfacing programs that generate textual\n"
+"output to programs that require binary input and conversely.  They can also be\n"
+"useful when it is desired to reformat numbers.\n"
+"\n"
+"@itemize\n"
+"\n"
+"@item @command{ascii2binary} reads input consisting of ascii or hexadecimal\n"
+"   representation numbers separated by whitespace and produces as output\n"
+"   the binary equivalents.  The type and precision of the binary output\n"
+"   is selected using command line flags.\n"
+"\n"
+"@item @command{binary2ascii} reads input consisting of binary numbers\n"
+"   and converts them to their ascii or hexadecimal representation.\n"
+"   Command line flags specify the type and size of the binary numbers\n"
+"   and provide control over the format of the output.\n"
+"   Unsigned integers may be written out in binary, octal, decimal,\n"
+"   or hexadecimal.\n"
+"\n"
+"   Signed integers may be written out only in binary or decimal.  Floating\n"
+"   point numbers may be written out only decimal, either in standard or\n"
+"   scientific notation.  (If you want to examine the binary representation\n"
+"   of floating point numbers, just treat the input as a sequence of unsigned\n"
+"   characters.)\n"
+"\n"
+"@end itemize"
+msgstr ""
+
+#: gnu/packages/textutils.scm:420
+msgid "Find out what is in a Unicode file"
+msgstr ""
+
+#: gnu/packages/textutils.scm:421
+msgid ""
+"Useful tools when working with Unicode files when one\n"
+"doesn't know the writing system, doesn't have the necessary font, needs to\n"
+"inspect invisible characters, needs to find out whether characters have been\n"
+"combined or in what order they occur, or needs statistics on which characters\n"
+"occur.\n"
+"\n"
+"@itemize\n"
+"\n"
+"@item @command{uniname} defaults to printing the character offset of each\n"
+"character, its byte offset, its hex code value, its encoding, the glyph\n"
+"itself, and its name.  It may also be used to validate UTF-8 input.\n"
+"\n"
+"@item @command{unidesc} reports the character ranges to which different\n"
+"portions of the text belong.   It can also be used to identify Unicode encodings\n"
+"(e.g. UTF-16be) flagged by magic numbers.\n"
+"\n"
+"@item @command{unihist} generates a histogram of the characters in its input.\n"
+"\n"
+"@item @command{ExplicateUTF8} is intended for debugging or for learning about\n"
+"Unicode.  It determines and explains the validity of a sequence of bytes as a\n"
+"UTF8 encoding.\n"
+"\n"
+"@item @command{utf8lookup} provides a handy way to look up Unicode characters\n"
+"from the command line.\n"
+"\n"
+"@item @command{unireverse} reverse each line of UTF-8 input\n"
+"character-by-character.\n"
+"\n"
+"@end itemize"
+msgstr ""
+
+#: gnu/packages/textutils.scm:465
 msgid "C/C++ configuration file library"
 msgstr "Biblioteca de fichero de configuración C/C++"
 
-#: gnu/packages/textutils.scm:335
+#: gnu/packages/textutils.scm:467
 msgid ""
 "Libconfig is a simple library for manipulating structured configuration\n"
 "files.  This file format is more compact and more readable than XML.  And\n"
@@ -19138,11 +25814,11 @@ msgid ""
 "application code."
 msgstr ""
 
-#: gnu/packages/textutils.scm:355
+#: gnu/packages/textutils.scm:488
 msgid "Probabilistic fast file fingerprinting tool"
 msgstr ""
 
-#: gnu/packages/textutils.scm:357
+#: gnu/packages/textutils.scm:490
 msgid ""
 "pfff is a tool for calculating a compact digital fingerprint of a file\n"
 "by sampling randomly from the file instead of reading it in full.\n"
@@ -19151,22 +25827,22 @@ msgid ""
 "as existing hashing techniques, with provably negligible risk of collisions."
 msgstr ""
 
-#: gnu/packages/textutils.scm:378
+#: gnu/packages/textutils.scm:516
 msgid "Regular expression library"
 msgstr "Biblioteca de expresión regular"
 
-#: gnu/packages/textutils.scm:379
+#: gnu/packages/textutils.scm:517
 msgid ""
 "Oniguruma is a regular expressions library.  The special\n"
 "characteristic of this library is that different character encoding for every\n"
 "regular expression object can be specified."
 msgstr ""
 
-#: gnu/packages/textutils.scm:433
+#: gnu/packages/textutils.scm:557
 msgid "Microsoft Word document reader"
 msgstr "Lector de documento Word Microsoft"
 
-#: gnu/packages/textutils.scm:434
+#: gnu/packages/textutils.scm:558
 msgid ""
 "Antiword is an application for displaying Microsoft Word\n"
 "documents.  It can also convert the document to PostScript or XML.  Only\n"
@@ -19176,11 +25852,11 @@ msgid ""
 "runs Word\"."
 msgstr ""
 
-#: gnu/packages/textutils.scm:467
+#: gnu/packages/textutils.scm:591
 msgid "MS-Word to TeX or plain text converter"
 msgstr "Conversor de MS-Word a TeX o texto simple"
 
-#: gnu/packages/textutils.scm:468
+#: gnu/packages/textutils.scm:592
 msgid ""
 "@command{catdoc} extracts text from MS-Word files, trying to\n"
 "preserve as many special printable characters as possible.  It supports\n"
@@ -19196,21 +25872,21 @@ msgid ""
 "@command{catppt}, which extracts data from PowerPoint presentations."
 msgstr ""
 
-#: gnu/packages/textutils.scm:509
+#: gnu/packages/textutils.scm:633
 msgid "Portable C++ library for handling UTF-8"
 msgstr ""
 
-#: gnu/packages/textutils.scm:510
+#: gnu/packages/textutils.scm:634
 msgid ""
 "UTF8-CPP is a C++ library for handling UTF-8 encoded text\n"
 "in a portable way."
 msgstr ""
 
-#: gnu/packages/textutils.scm:578
+#: gnu/packages/textutils.scm:702
 msgid "Bayesian text and email classifier"
 msgstr "Texto baesiano y clasificador de correo-e"
 
-#: gnu/packages/textutils.scm:580
+#: gnu/packages/textutils.scm:704
 msgid ""
 "dbacl is a fast Bayesian text and email classifier.  It builds a variety\n"
 "of language models using maximum entropy (minimum divergence) principles, and\n"
@@ -19218,15 +25894,73 @@ msgid ""
 "categories."
 msgstr ""
 
-#: gnu/packages/textutils.scm:618
+#: gnu/packages/textutils.scm:742
 msgid "C library for creating and parsing configuration files."
 msgstr "Biblioteca C para crear e interpretar ficheros de configuración."
 
-#: gnu/packages/textutils.scm:646
+#: gnu/packages/textutils.scm:798
+#, fuzzy
+msgid "Utilities to manipulate text and binary files"
+msgstr "Utilidad para crear ficheros metainfo de BitTorrent"
+
+#: gnu/packages/textutils.scm:799
+msgid ""
+"The drm_tools package contains the following commands:\n"
+"@table @command\n"
+"@item accudate\n"
+"An extended version of the \"date\" program that has sub-second accuracy.\n"
+"@item binformat\n"
+"Format complex binary data into text.\n"
+"@item binload\n"
+"Load data into a binary file using simple commands from the input.\n"
+"@item binorder\n"
+"Sort, merge, search, retrieve or generate test data consisting of fixed size\n"
+"binary records.\n"
+"@item binreplace\n"
+"Find or find/replace in binary files.\n"
+"@item binsplit\n"
+"Split test data consisting of fixed size binary records into one or more\n"
+"output streams.\n"
+"@item chardiff\n"
+"Find changes between two files at the character level.  Unlike \"diff\", it\n"
+"lists just the characters that differ, so if the 40,000th character is\n"
+"different only that one character will be shown, not the entire line.\n"
+"@item columnadd\n"
+"Add columns of integers, decimals, and/or times.\n"
+"@item datasniffer\n"
+"A utility for formatting binary data dumps.\n"
+"@item dmath\n"
+"Double precision interactive command line math calculator.\n"
+"@item extract\n"
+"Extract and emit data from text files based on character or token position.\n"
+"@item execinput\n"
+"A utility that reads from STDIN and executes each line as a command in a\n"
+"sub-process.\n"
+"@item indexed_text\n"
+"A utility for rapid retrieval of text by line numbers, in any order, from a\n"
+"text file.\n"
+"@item mdump\n"
+"Format binary data.\n"
+"@item msgqueue\n"
+"Create message queues and send/receive messages.\n"
+"@item mbin\n"
+"@itemx mbout\n"
+"Multiple buffer in and out.  Used for buffering a lot of data between a slow\n"
+"device and a fast device.  Mostly for buffering streaming tape drives for use\n"
+"with slower network connections, so that streaming is maintained as much as\n"
+"possible to minimize wear on the tape device.\n"
+"@item pockmark\n"
+"Corrupt data streams - useful for testing error correction and data recovery.\n"
+"@item tarsieve\n"
+"Filter, list, or split a tar file.\n"
+"@end table"
+msgstr ""
+
+#: gnu/packages/textutils.scm:874
 msgid "Syntax highlighting text component for Java Swing"
 msgstr ""
 
-#: gnu/packages/textutils.scm:647
+#: gnu/packages/textutils.scm:875
 msgid ""
 "RSyntaxTextArea is a syntax highlighting, code folding text\n"
 "component for Java Swing.  It extends @code{JTextComponent} so it integrates\n"
@@ -19235,31 +25969,32 @@ msgid ""
 "source code."
 msgstr ""
 
-#: gnu/packages/textutils.scm:685
+#: gnu/packages/textutils.scm:913
 msgid "Fast implementation of the edit distance (Levenshtein distance)"
 msgstr ""
 
-#: gnu/packages/textutils.scm:687
+#: gnu/packages/textutils.scm:915
 msgid ""
 "This library simply implements Levenshtein distance algorithm with C++\n"
 "and Cython."
 msgstr ""
 
-#: gnu/packages/textutils.scm:707
+#: gnu/packages/textutils.scm:939
 msgid "@code{runewidth} provides Go functions to work with string widths"
 msgstr ""
 
-#: gnu/packages/textutils.scm:709
+#: gnu/packages/textutils.scm:941
 msgid ""
 "The @code{runewidth} library provides Go functions for padding,\n"
-"measuring and checking the width of strings, with support east asian text."
+"measuring and checking the width of strings, with support for East Asian\n"
+"text."
 msgstr ""
 
-#: gnu/packages/textutils.scm:760
+#: gnu/packages/textutils.scm:993
 msgid "Recover text from @file{.docx} files, with good formatting"
 msgstr ""
 
-#: gnu/packages/textutils.scm:762
+#: gnu/packages/textutils.scm:995
 msgid ""
 "@command{docx2txt} is a Perl based command line utility to convert\n"
 "Microsoft Office @file{.docx} documents to equivalent text documents.  Latest\n"
@@ -19278,11 +26013,28 @@ msgid ""
 "@end itemize\n"
 msgstr ""
 
-#: gnu/packages/textutils.scm:814
+#: gnu/packages/textutils.scm:1039
+msgid "Converter from OpenDocument Text to plain text"
+msgstr ""
+
+#: gnu/packages/textutils.scm:1040
+msgid ""
+"odt2txt is a command-line tool which extracts the text out\n"
+"of OpenDocument Texts, as produced by OpenOffice.org, KOffice, StarOffice and\n"
+"others.\n"
+"\n"
+"odt2txt can also extract text from some file formats similar to OpenDocument\n"
+"Text, such as OpenOffice.org XML (*.sxw), which was used by OpenOffice.org\n"
+"version 1.x and older StarOffice versions.  To a lesser extent, odt2txt may be\n"
+"useful to extract content from OpenDocument spreadsheets (*.ods) and\n"
+"OpenDocument presentations (*.odp)."
+msgstr ""
+
+#: gnu/packages/textutils.scm:1085
 msgid "Convert between Traditional Chinese and Simplified Chinese"
 msgstr ""
 
-#: gnu/packages/textutils.scm:815
+#: gnu/packages/textutils.scm:1086
 msgid ""
 "Open Chinese Convert (OpenCC) converts between Traditional\n"
 "Chinese and Simplified Chinese, supporting character-level conversion,\n"
@@ -19290,56 +26042,124 @@ msgid ""
 "Mainland China, Taiwan, and Hong-Kong."
 msgstr ""
 
-#: gnu/packages/textutils.scm:849
+#: gnu/packages/textutils.scm:1120
 #, fuzzy
-#| msgid "Network traffic analyzer"
 msgid "Network Kanji Filter"
 msgstr "Análisis del tráfico de red"
 
-#: gnu/packages/textutils.scm:850
+#: gnu/packages/textutils.scm:1121
 msgid ""
 "Nkf is yet another kanji code converter among networks,\n"
 "hosts and terminals.  It converts input kanji code to designated kanji code\n"
 "such as ISO-2022-JP, Shift_JIS, EUC-JP, UTF-8, UTF-16 or UTF-32."
 msgstr ""
 
-#: gnu/packages/version-control.scm:135
+#: gnu/packages/textutils.scm:1139
+msgid "Python module for writing Pandoc filters"
+msgstr ""
+
+#: gnu/packages/textutils.scm:1140
+msgid ""
+"Pandoc is a powerful utility to transform various\n"
+"input formats into a wide range of output formats.  To alter the\n"
+"exported output document, Pandoc allows the usage of filters, which\n"
+"are pipes that read a JSON serialization of the Pandoc AST from stdin,\n"
+"transform it in some way, and write it to stdout.  It allows therefore\n"
+"to alter the processing of Pandoc's supported input formats, for\n"
+"instance one can add new syntax elements to markdown, etc.\n"
+"\n"
+"This package provides Python bindings."
+msgstr ""
+
+#: gnu/packages/textutils.scm:1174
+msgid "Converts terminal escape sequences to HTML"
+msgstr ""
+
+#: gnu/packages/textutils.scm:1175
+msgid ""
+"@command{aha} (Ansi Html Adapter) converts ANSI escape sequences\n"
+"of a Unix terminal to HTML code."
+msgstr ""
+
+#: gnu/packages/textutils.scm:1202
+msgid "Fully customizable syntax-aware linter that focuses on your style"
+msgstr ""
+
+#: gnu/packages/textutils.scm:1204
+msgid ""
+"Vale is a fully extensible linter that focuses on your own writing style\n"
+"by making use of rules in individual YAML files.  It is syntax-aware on markup\n"
+"languages such as HTML, Markdown, Asciidoc, and reStructuredText.  The community\n"
+"around it also has a list of style guides implemented with Vale in\n"
+"@url{https://github.com/errata-ai/styles, their styles repo}."
+msgstr ""
+
+#: gnu/packages/version-control.scm:147
 msgid "Version control system supporting both distributed and centralized workflows"
 msgstr ""
 
-#: gnu/packages/version-control.scm:137
+#: gnu/packages/version-control.scm:149
 msgid ""
 "GNU Bazaar is a version control system that allows you to record\n"
 "changes to project files over time.  It supports both a distributed workflow\n"
 "as well as the classic centralized workflow."
 msgstr ""
 
-#: gnu/packages/version-control.scm:451
+#: gnu/packages/version-control.scm:493
 msgid "Distributed version control system"
 msgstr "Sistema de control de versión distribuída"
 
-#: gnu/packages/version-control.scm:453
+#: gnu/packages/version-control.scm:495
 msgid ""
 "Git is a free distributed version control system designed to handle\n"
 "everything from small to very large projects with speed and efficiency."
 msgstr ""
 
-#: gnu/packages/version-control.scm:575
+#: gnu/packages/version-control.scm:620
+#, fuzzy
+msgid "Simple version control system built on top of Git"
+msgstr "Sistema de control de versión distribuída"
+
+#: gnu/packages/version-control.scm:622
+msgid ""
+"Gitless is a Git-compatible version control system that aims to be easy to\n"
+"learn and use.  It simplifies the common workflow by committing changes to\n"
+"tracked files by default and saving any uncommitted changes as part of a branch.\n"
+"\n"
+"The friendly @command{gl} command-line interface gives feedback and helps you\n"
+"figure out what to do next.\n"
+"\n"
+"Gitless is implemented on top of Git and its commits and repositories are\n"
+"indistinguishable from Git's.  You (or other contributors) can always fall back\n"
+"on @command{git}, and use any regular Git hosting service."
+msgstr ""
+
+#: gnu/packages/version-control.scm:649
+msgid "GitHub like contributions calendar for terminal"
+msgstr ""
+
+#: gnu/packages/version-control.scm:650
+msgid ""
+"@code{git-cal} is a script to view commits calendar similar\n"
+"to GitHub contributions calendar."
+msgstr ""
+
+#: gnu/packages/version-control.scm:712
 msgid "Library providing Git core methods"
 msgstr ""
 
-#: gnu/packages/version-control.scm:577
+#: gnu/packages/version-control.scm:714
 msgid ""
 "Libgit2 is a portable, pure C implementation of the Git core methods\n"
 "provided as a re-entrant linkable library with a solid API, allowing you to\n"
 "write native speed custom Git applications in any language with bindings."
 msgstr ""
 
-#: gnu/packages/version-control.scm:614
+#: gnu/packages/version-control.scm:782
 msgid "Transparent encryption of files in a git repository"
 msgstr ""
 
-#: gnu/packages/version-control.scm:615
+#: gnu/packages/version-control.scm:783
 msgid ""
 "git-crypt enables transparent encryption and decryption of\n"
 "files in a git repository.  Files which you choose to protect are encrypted when\n"
@@ -19351,11 +26171,11 @@ msgid ""
 "to lock down your entire repository."
 msgstr ""
 
-#: gnu/packages/version-control.scm:650
+#: gnu/packages/version-control.scm:818
 msgid "Whole remote repository encryption"
 msgstr "Cifrado de repositorio remoto completo"
 
-#: gnu/packages/version-control.scm:651
+#: gnu/packages/version-control.scm:819
 msgid ""
 "git-remote-gcrypt is a Git remote helper to push and pull from\n"
 "repositories encrypted with GnuPG.  It works with the standard Git transports,\n"
@@ -19374,31 +26194,46 @@ msgid ""
 "collaboration using typical untrusted file hosts or services."
 msgstr ""
 
-#: gnu/packages/version-control.scm:770
+#: gnu/packages/version-control.scm:939
 msgid "Web frontend for git repositories"
 msgstr "Web frontal para repositorios git"
 
-#: gnu/packages/version-control.scm:772
+#: gnu/packages/version-control.scm:941
 msgid ""
 "CGit is an attempt to create a fast web interface for the Git SCM, using\n"
 "a built-in cache to decrease server I/O pressure."
 msgstr ""
 
-#: gnu/packages/version-control.scm:800
+#: gnu/packages/version-control.scm:975
+msgid "Send notification emails for Git pushes"
+msgstr ""
+
+#: gnu/packages/version-control.scm:977
+msgid ""
+"This hook sends emails describing changes introduced by pushes to a Git\n"
+"repository.  For each reference that was changed, it emits one ReferenceChange\n"
+"email summarizing how the reference was changed, followed by one Revision\n"
+"email for each new commit that was introduced by the reference change.\n"
+"\n"
+"This script is designed to be used as a post-receive hook in a Git\n"
+"repository"
+msgstr ""
+
+#: gnu/packages/version-control.scm:1010
 msgid "Copy directory to the gh-pages branch"
 msgstr ""
 
-#: gnu/packages/version-control.scm:801
+#: gnu/packages/version-control.scm:1011
 msgid ""
 "Script that copies a directory to the gh-pages branch (by\n"
 "default) of the repository."
 msgstr ""
 
-#: gnu/packages/version-control.scm:859
+#: gnu/packages/version-control.scm:1069
 msgid "Python implementation of the Git object database"
 msgstr ""
 
-#: gnu/packages/version-control.scm:861
+#: gnu/packages/version-control.scm:1071
 msgid ""
 "GitDB allows you to access @dfn{bare} Git repositories for reading and\n"
 "writing.  It aims at allowing full access to loose objects as well as packs\n"
@@ -19406,11 +26241,11 @@ msgid ""
 "allowing to handle large objects with a small memory footprint."
 msgstr ""
 
-#: gnu/packages/version-control.scm:900
+#: gnu/packages/version-control.scm:1107
 msgid "Python library for interacting with Git repositories"
 msgstr ""
 
-#: gnu/packages/version-control.scm:902
+#: gnu/packages/version-control.scm:1109
 msgid ""
 "GitPython is a python library used to interact with Git repositories,\n"
 "high-level like git-porcelain, or low-level like git-plumbing.\n"
@@ -19421,11 +26256,11 @@ msgid ""
 "@command{git} command implementation."
 msgstr ""
 
-#: gnu/packages/version-control.scm:941
+#: gnu/packages/version-control.scm:1145
 msgid "Command-line flags library for shell scripts"
 msgstr ""
 
-#: gnu/packages/version-control.scm:943
+#: gnu/packages/version-control.scm:1147
 msgid ""
 "Shell Flags (shFlags) is a library written to greatly simplify the\n"
 "handling of command-line flags in Bourne based Unix shell scripts (bash, dash,\n"
@@ -19436,11 +26271,11 @@ msgid ""
 "will work."
 msgstr ""
 
-#: gnu/packages/version-control.scm:987
+#: gnu/packages/version-control.scm:1191
 msgid "Git extensions for Vincent Driessen's branching model"
 msgstr ""
 
-#: gnu/packages/version-control.scm:989
+#: gnu/packages/version-control.scm:1193
 msgid ""
 "Vincent Driessen's branching model is a git branching and release\n"
 "management strategy that helps developers keep track of features, hotfixes,\n"
@@ -19449,11 +26284,11 @@ msgid ""
 "lot easier."
 msgstr ""
 
-#: gnu/packages/version-control.scm:1023
+#: gnu/packages/version-control.scm:1243
 msgid "Stacked Git"
 msgstr "Apilados Git"
 
-#: gnu/packages/version-control.scm:1025
+#: gnu/packages/version-control.scm:1245
 msgid ""
 "StGit is a command-line application that provides functionality similar\n"
 "to Quilt (i.e., pushing/popping patches to/from a stack), but using Git\n"
@@ -19462,11 +26297,11 @@ msgid ""
 "manipulate them in various ways."
 msgstr ""
 
-#: gnu/packages/version-control.scm:1062
+#: gnu/packages/version-control.scm:1282
 msgid "Version control system for @code{$HOME}"
 msgstr "Sistema de control de versión para @code{$HOME}"
 
-#: gnu/packages/version-control.scm:1064
+#: gnu/packages/version-control.scm:1284
 msgid ""
 "vcsh version-controls configuration files in several Git repositories,\n"
 "all in one single directory.  They all maintain their working trees without\n"
@@ -19475,43 +26310,64 @@ msgid ""
 "though this can be overridden."
 msgstr ""
 
-#: gnu/packages/version-control.scm:1100
+#: gnu/packages/version-control.scm:1320
 msgid "Run a command over a sequence of commits"
 msgstr "Ejecuta una orden sobre una secuencia de revisiones"
 
-#: gnu/packages/version-control.scm:1102
+#: gnu/packages/version-control.scm:1322
 msgid ""
 "git-test-sequence is similar to an automated git bisect except it’s\n"
 "linear.  It will test every change between two points in the DAG.  It will\n"
 "also walk each side of a merge and test those changes individually."
 msgstr ""
 
-#: gnu/packages/version-control.scm:1215
+#: gnu/packages/version-control.scm:1435
 msgid "Git access control layer"
 msgstr "Placa de control de acceso Git"
 
-#: gnu/packages/version-control.scm:1217
+#: gnu/packages/version-control.scm:1437
 msgid ""
 "Gitolite is an access control layer on top of Git, providing fine access\n"
 "control to Git repositories."
 msgstr ""
 
-#: gnu/packages/version-control.scm:1241
+#: gnu/packages/version-control.scm:1546
+msgid "Framework for managing and maintaining multi-language pre-commit hooks"
+msgstr ""
+
+#: gnu/packages/version-control.scm:1548
+msgid ""
+"Pre-commit is a multi-language package manager for pre-commit hooks.  You\n"
+"specify a list of hooks you want and pre-commit manages the installation and\n"
+"execution of any hook written in any language before every commit."
+msgstr ""
+
+#: gnu/packages/version-control.scm:1627
 msgid "Decentralized version control system"
 msgstr "Sistema de control de versión descentralizado"
 
-#: gnu/packages/version-control.scm:1243
+#: gnu/packages/version-control.scm:1629
 msgid ""
 "Mercurial is a free, distributed source control management tool.\n"
 "It efficiently handles projects of any size\n"
 "and offers an easy and intuitive interface."
 msgstr ""
 
-#: gnu/packages/version-control.scm:1277
+#: gnu/packages/version-control.scm:1655
+msgid "Flexible evolution of Mercurial history"
+msgstr ""
+
+#: gnu/packages/version-control.scm:1656
+msgid ""
+"Evolve is a Mercurial extension for faster and safer mutable\n"
+"history.  It implements the changeset evolution concept for Mercurial."
+msgstr ""
+
+#: gnu/packages/version-control.scm:1689
 msgid "HTTP and WebDAV client library"
 msgstr "Biblioteca de cliente HTTP y WebDAV"
 
-#: gnu/packages/version-control.scm:1279
+#: gnu/packages/version-control.scm:1691
 msgid ""
 "Neon is an HTTP and WebDAV client library, with a C interface and the\n"
 "following features:\n"
@@ -19533,11 +26389,11 @@ msgid ""
 "@end enumerate\n"
 msgstr ""
 
-#: gnu/packages/version-control.scm:1368
+#: gnu/packages/version-control.scm:1785
 msgid "Revision control system"
 msgstr "Sistema de control de revisiones"
 
-#: gnu/packages/version-control.scm:1370
+#: gnu/packages/version-control.scm:1787
 msgid ""
 "@dfn{Subversion} (svn) exists to be recognized and adopted as a\n"
 "centralized version control system characterized by its\n"
@@ -19546,11 +26402,11 @@ msgid ""
 "projects, from individuals to large-scale enterprise operations."
 msgstr ""
 
-#: gnu/packages/version-control.scm:1392
+#: gnu/packages/version-control.scm:1809
 msgid "Per-file local revision control system"
 msgstr "Sistema de control local de revisiones por fichero"
 
-#: gnu/packages/version-control.scm:1394
+#: gnu/packages/version-control.scm:1811
 msgid ""
 "RCS is the original Revision Control System.  It works on a\n"
 "file-by-file basis, in contrast to subsequent version control systems such as\n"
@@ -19559,11 +26415,11 @@ msgid ""
 "machine."
 msgstr ""
 
-#: gnu/packages/version-control.scm:1422
+#: gnu/packages/version-control.scm:1839
 msgid "Historical centralized version control system"
 msgstr "Sistema histórico de control de versiones centralizado"
 
-#: gnu/packages/version-control.scm:1424
+#: gnu/packages/version-control.scm:1841
 msgid ""
 "CVS is a version control system, an important component of Source\n"
 "Configuration Management (SCM).  Using it, you can record the history of\n"
@@ -19571,11 +26427,11 @@ msgid ""
 "RCS, PRCS, and Aegis packages."
 msgstr ""
 
-#: gnu/packages/version-control.scm:1462
+#: gnu/packages/version-control.scm:1875
 msgid "Export an RCS or CVS history as a fast-import stream"
 msgstr ""
 
-#: gnu/packages/version-control.scm:1463
+#: gnu/packages/version-control.scm:1876
 msgid ""
 "This program analyzes a collection of RCS files in a CVS\n"
 "repository (or outside of one) and, when possible, emits an equivalent history\n"
@@ -19588,11 +26444,11 @@ msgid ""
 "masters from remote CVS hosts."
 msgstr ""
 
-#: gnu/packages/version-control.scm:1490
+#: gnu/packages/version-control.scm:1904
 msgid "Version-control-agnostic ChangeLog diff and commit tool"
 msgstr ""
 
-#: gnu/packages/version-control.scm:1492
+#: gnu/packages/version-control.scm:1906
 msgid ""
 "The vc-dwim package contains two tools, \"vc-dwim\" and \"vc-chlog\".\n"
 "vc-dwim is a tool that simplifies the task of maintaining a ChangeLog and\n"
@@ -19602,33 +26458,33 @@ msgid ""
 "standards-compliant ChangeLog entries based on the changes that it detects."
 msgstr ""
 
-#: gnu/packages/version-control.scm:1517
+#: gnu/packages/version-control.scm:1931
 msgid "Make histograms from the output of @command{diff}"
 msgstr "Genera histogramas de la salida de @command{diff}"
 
-#: gnu/packages/version-control.scm:1519
+#: gnu/packages/version-control.scm:1933
 msgid ""
 "Diffstat reads the output of @command{diff} and displays a histogram of\n"
 "the insertions, deletions, and modifications per file.  It is useful for\n"
 "reviewing large, complex patch files."
 msgstr ""
 
-#: gnu/packages/version-control.scm:1558
+#: gnu/packages/version-control.scm:1972
 msgid "File-based version control like SCCS"
 msgstr "Control de versión basado en ficheros como SCCS"
 
-#: gnu/packages/version-control.scm:1559
+#: gnu/packages/version-control.scm:1973
 msgid ""
 "GNU CSSC provides a replacement for the legacy Unix source\n"
 "code control system SCCS.  This allows old code still under that system to be\n"
 "accessed and migrated on modern systems."
 msgstr ""
 
-#: gnu/packages/version-control.scm:1647
+#: gnu/packages/version-control.scm:2064
 msgid "Project change supervisor"
 msgstr "Supervisor de cambios en el proyecto"
 
-#: gnu/packages/version-control.scm:1648
+#: gnu/packages/version-control.scm:2065
 msgid ""
 "Aegis is a project change supervisor, and performs some of\n"
 "the Software Configuration Management needed in a CASE environment.  Aegis\n"
@@ -19648,11 +26504,11 @@ msgstr ""
 "fuentes, un quebradero de cabeza para cualquier proyecto con más de un\n"
 "desarrollador, es una de las mayores funciones de Aegis."
 
-#: gnu/packages/version-control.scm:1722
+#: gnu/packages/version-control.scm:2139
 msgid "Edit version-control repository history"
 msgstr ""
 
-#: gnu/packages/version-control.scm:1723
+#: gnu/packages/version-control.scm:2140
 msgid ""
 "Reposurgeon enables risky operations that version-control\n"
 "systems don't want to let you do, such as editing past comments and metadata\n"
@@ -19663,32 +26519,32 @@ msgid ""
 "from Subversion to any supported Distributed Version Control System (DVCS)."
 msgstr ""
 
-#: gnu/packages/version-control.scm:1762
+#: gnu/packages/version-control.scm:2179
 msgid "Ncurses-based text user interface for Git"
 msgstr ""
 
-#: gnu/packages/version-control.scm:1764
+#: gnu/packages/version-control.scm:2181
 msgid ""
 "Tig is an ncurses text user interface for Git, primarily intended as\n"
 "a history browser.  It can also stage hunks for commit, or colorize the\n"
 "output of the @code{git} command."
 msgstr ""
 
-#: gnu/packages/version-control.scm:1786
+#: gnu/packages/version-control.scm:2203
 msgid "Print the modification time of the latest file"
 msgstr "Escribe las horas de modificación del último fichero"
 
-#: gnu/packages/version-control.scm:1788
+#: gnu/packages/version-control.scm:2205
 msgid ""
 "Recursively find the newest file in a file tree and print its\n"
 "modification time."
 msgstr ""
 
-#: gnu/packages/version-control.scm:1833
+#: gnu/packages/version-control.scm:2250
 msgid "Multiple repository management tool"
 msgstr "Herramienta gestora de múltiples repositorios"
 
-#: gnu/packages/version-control.scm:1835
+#: gnu/packages/version-control.scm:2252
 msgid ""
 "Myrepos provides the @code{mr} command, which maps an operation (e.g.,\n"
 "fetching updates) over a collection of version control repositories.  It\n"
@@ -19696,42 +26552,54 @@ msgid ""
 "Mercurial, Bazaar, Darcs, CVS, Fossil, and Veracity."
 msgstr ""
 
-#: gnu/packages/version-control.scm:1865
-msgid "Use hubic as a git-annex remote"
+#: gnu/packages/version-control.scm:2289
+#, fuzzy
+msgid "Framework to smartly mirror git repositories"
+msgstr "Web frontal para repositorios git"
+
+#: gnu/packages/version-control.scm:2290
+msgid ""
+"Grokmirror enables replicating large git repository\n"
+"collections efficiently.  Mirrors decide to clone and update repositories\n"
+"based on a manifest file published by servers."
+msgstr ""
+
+#: gnu/packages/version-control.scm:2332
+msgid "Use rclone-supported cloud storage providers with git-annex"
 msgstr ""
 
-#: gnu/packages/version-control.scm:1867
+#: gnu/packages/version-control.scm:2333
 msgid ""
-"This package allows you to use your hubic account as a \"special\n"
-"repository\" with git-annex."
+"This wrapper around rclone makes any destination supported\n"
+"by rclone usable with git-annex."
 msgstr ""
 
-#: gnu/packages/version-control.scm:1929
+#: gnu/packages/version-control.scm:2389
 msgid "Software configuration management system"
 msgstr "Sistema de gestión de configuración de software"
 
-#: gnu/packages/version-control.scm:1931
+#: gnu/packages/version-control.scm:2391
 msgid ""
 "Fossil is a distributed source control management system which supports\n"
 "access and administration over HTTP CGI or via a built-in HTTP server.  It has\n"
 "a built-in wiki, built-in file browsing, built-in tickets system, etc."
 msgstr ""
 
-#: gnu/packages/version-control.scm:1959
+#: gnu/packages/version-control.scm:2419
 msgid "Static git page generator"
 msgstr ""
 
-#: gnu/packages/version-control.scm:1960
+#: gnu/packages/version-control.scm:2420
 msgid ""
 "Stagit creates static pages for git repositories, the results can\n"
 "be served with a HTTP file server of your choice."
 msgstr ""
 
-#: gnu/packages/version-control.scm:1995
+#: gnu/packages/version-control.scm:2455
 msgid "3D visualisation tool for source control repositories"
 msgstr ""
 
-#: gnu/packages/version-control.scm:1996
+#: gnu/packages/version-control.scm:2456
 msgid ""
 "@code{gource} provides a software version control\n"
 "visualization.  The repository is displayed as a tree where the root of the\n"
@@ -19740,13 +26608,12 @@ msgid ""
 "specific files and directories."
 msgstr ""
 
-#: gnu/packages/version-control.scm:2042
+#: gnu/packages/version-control.scm:2502
 #, fuzzy
-#| msgid "Simple terminal control"
 msgid "Simple revision control"
 msgstr "Terminal controladora única"
 
-#: gnu/packages/version-control.scm:2045
+#: gnu/packages/version-control.scm:2505
 #, scheme-format
 msgid ""
 "SRC (or src) is simple revision control, a version-control system for\n"
@@ -19756,11 +26623,11 @@ msgid ""
 "directory full of HOWTOs."
 msgstr ""
 
-#: gnu/packages/version-control.scm:2097
+#: gnu/packages/version-control.scm:2557
 msgid "Determine when a commit was merged into a Git branch"
 msgstr ""
 
-#: gnu/packages/version-control.scm:2098
+#: gnu/packages/version-control.scm:2558
 msgid ""
 "This Git extension defines a subcommand,\n"
 "@code{when-merged}, whose core operation is to find the merge that brought a\n"
@@ -19768,13 +26635,12 @@ msgid ""
 "how information about the merge is displayed."
 msgstr ""
 
-#: gnu/packages/version-control.scm:2142
+#: gnu/packages/version-control.scm:2602
 #, fuzzy
-#| msgid "Incremental journaling archiver"
 msgid "Incremental merge for Git"
 msgstr "Archivador diario incremental"
 
-#: gnu/packages/version-control.scm:2143
+#: gnu/packages/version-control.scm:2603
 msgid ""
 "This Git extension defines a subcommand, @code{imerge},\n"
 "which performs an incremental merge between two branches.  Its two primary\n"
@@ -19783,24 +26649,48 @@ msgid ""
 "interrupted, published, and collaborated on while in progress."
 msgstr ""
 
-#: gnu/packages/version-control.scm:2167
+#: gnu/packages/version-control.scm:2652
 #, fuzzy
-#| msgid "Perl date conversion routines"
 msgid "Git extension for versioning large files"
 msgstr "Rutinas de conversión de fecha Perl"
 
-#: gnu/packages/version-control.scm:2169
+#: gnu/packages/version-control.scm:2654
 msgid ""
 "Git Large File Storage (LFS) replaces large files such as audio samples,\n"
 "videos, datasets, and graphics with text pointers inside Git, while storing the\n"
 "file contents on a remote server."
 msgstr ""
 
-#: gnu/packages/virtualization.scm:227
+#: gnu/packages/version-control.scm:2707
+#, fuzzy
+msgid "Historical distributed version-control system"
+msgstr "Sistema histórico de control de versiones centralizado"
+
+#: gnu/packages/version-control.scm:2709
+msgid ""
+"GNU Arch, aka. @code{tla}, was one of the first free distributed\n"
+"version-control systems (DVCS).  It saw its last release in 2006.  This\n"
+"package is provided for users who need to recover @code{tla} repositories and\n"
+"for historians."
+msgstr ""
+
+#: gnu/packages/version-control.scm:2766
+#, fuzzy
+msgid "Git implementation library"
+msgstr "Biblioteca separación silábica"
+
+#: gnu/packages/version-control.scm:2767
+#, fuzzy
+msgid "This package provides a Git implementation library."
+msgstr ""
+"Este paquete proporciona un diccionario para la biblioteca de\n"
+"comprobación ortográfica Hunspell."
+
+#: gnu/packages/virtualization.scm:298
 msgid "Machine emulator and virtualizer"
 msgstr "Máquina emuladora y virtualizadora"
 
-#: gnu/packages/virtualization.scm:229
+#: gnu/packages/virtualization.scm:300
 msgid ""
 "QEMU is a generic machine emulator and virtualizer.\n"
 "\n"
@@ -19815,16 +26705,58 @@ msgid ""
 "server and embedded PowerPC, and S390 guests."
 msgstr ""
 
-#: gnu/packages/virtualization.scm:251
+#: gnu/packages/virtualization.scm:324
 #, fuzzy
-msgid "Machine emulator and virtualizer (without GUI)"
+msgid "Machine emulator and virtualizer (without GUI) for the host architecture"
 msgstr "Máquina emuladora y virtualizadora"
 
-#: gnu/packages/virtualization.scm:343
+#: gnu/packages/virtualization.scm:737
+#, fuzzy
+msgid "Cluster-based virtual machine management system"
+msgstr "Sistema de gestión de configuración de software"
+
+#: gnu/packages/virtualization.scm:739
+msgid ""
+"Ganeti is a virtual machine management tool built on top of existing\n"
+"virtualization technologies such as Xen or KVM.  Ganeti controls:\n"
+"\n"
+"@itemize @bullet\n"
+"@item Disk creation management;\n"
+"@item Operating system installation for instances (in co-operation with\n"
+"OS-specific install scripts); and\n"
+"@item Startup, shutdown, and failover between physical systems.\n"
+"@end itemize\n"
+"\n"
+"Ganeti is designed to facilitate cluster management of virtual servers and\n"
+"to provide fast and simple recovery after physical failures, using\n"
+"commodity hardware."
+msgstr ""
+
+#: gnu/packages/virtualization.scm:775
+msgid "Guix OS integration for Ganeti"
+msgstr ""
+
+#: gnu/packages/virtualization.scm:777
+msgid ""
+"This package provides a guest OS definition for Ganeti that uses\n"
+"Guix to build virtual machines."
+msgstr ""
+
+#: gnu/packages/virtualization.scm:870
+msgid "Debian OS integration for Ganeti"
+msgstr ""
+
+#: gnu/packages/virtualization.scm:872
+msgid ""
+"This package provides a guest OS definition for Ganeti.  It installs\n"
+"Debian or a derivative using @command{debootstrap}."
+msgstr ""
+
+#: gnu/packages/virtualization.scm:932
 msgid "Operating system information database"
 msgstr "BD de información del sistema operativo"
 
-#: gnu/packages/virtualization.scm:344
+#: gnu/packages/virtualization.scm:933
 msgid ""
 "libosinfo is a GObject based library API for managing\n"
 "information about operating systems, hypervisors and the (virtual) hardware\n"
@@ -19834,22 +26766,22 @@ msgid ""
 "all common programming languages.  Vala bindings are also provided."
 msgstr ""
 
-#: gnu/packages/virtualization.scm:393
+#: gnu/packages/virtualization.scm:982
 msgid "Linux container tools"
 msgstr "Herramientas contenedoras Linux"
 
-#: gnu/packages/virtualization.scm:396
+#: gnu/packages/virtualization.scm:985
 msgid ""
 "LXC is a userspace interface for the Linux kernel containment features.\n"
 "Through a powerful API and simple tools, it lets Linux users easily create and\n"
 "manage system or application containers."
 msgstr ""
 
-#: gnu/packages/virtualization.scm:481
+#: gnu/packages/virtualization.scm:1079
 msgid "Simple API for virtualization"
 msgstr "API simple para virtualización"
 
-#: gnu/packages/virtualization.scm:482
+#: gnu/packages/virtualization.scm:1080
 msgid ""
 "Libvirt is a C toolkit to interact with the virtualization\n"
 "capabilities of recent versions of Linux.  The library aims at providing long\n"
@@ -19857,11 +26789,11 @@ msgid ""
 "to integrate other virtualization mechanisms if needed."
 msgstr ""
 
-#: gnu/packages/virtualization.scm:523
+#: gnu/packages/virtualization.scm:1115
 msgid "GLib wrapper around libvirt"
 msgstr ""
 
-#: gnu/packages/virtualization.scm:524
+#: gnu/packages/virtualization.scm:1116
 msgid ""
 "libvirt-glib wraps the libvirt library to provide a\n"
 "high-level object-oriented API better suited for glib-based applications, via\n"
@@ -19874,21 +26806,21 @@ msgid ""
 "@end enumerate\n"
 msgstr ""
 
-#: gnu/packages/virtualization.scm:566
+#: gnu/packages/virtualization.scm:1159
 msgid "Python bindings to libvirt"
 msgstr "Enlazando Python para libvirt"
 
-#: gnu/packages/virtualization.scm:567
+#: gnu/packages/virtualization.scm:1160
 msgid ""
 "This package provides Python bindings to the libvirt\n"
 "virtualization library."
 msgstr ""
 
-#: gnu/packages/virtualization.scm:661
+#: gnu/packages/virtualization.scm:1278
 msgid "Manage virtual machines"
 msgstr "Gestionar máquinas virtuales"
 
-#: gnu/packages/virtualization.scm:663
+#: gnu/packages/virtualization.scm:1280
 msgid ""
 "The virt-manager application is a desktop user interface for managing\n"
 "virtual machines through libvirt.  It primarily targets KVM VMs, but also\n"
@@ -19896,11 +26828,11 @@ msgid ""
 "domains, their live performance and resource utilization statistics."
 msgstr ""
 
-#: gnu/packages/virtualization.scm:769
+#: gnu/packages/virtualization.scm:1387
 msgid "Checkpoint and restore in user space"
 msgstr "Comprobador y restauración dentro del espacio de usuario"
 
-#: gnu/packages/virtualization.scm:770
+#: gnu/packages/virtualization.scm:1388
 msgid ""
 "Using this tool, you can freeze a running application (or\n"
 "part of it) and checkpoint it to a hard drive as a collection of files.  You\n"
@@ -19909,22 +26841,22 @@ msgid ""
 "mainly implemented in user space."
 msgstr ""
 
-#: gnu/packages/virtualization.scm:795
+#: gnu/packages/virtualization.scm:1414
 msgid "Backup and restore QEMU machines"
 msgstr ""
 
-#: gnu/packages/virtualization.scm:796
+#: gnu/packages/virtualization.scm:1415
 msgid ""
 "qmpbackup is designed to create and restore full and\n"
 "incremental backups of running QEMU virtual machines via QMP, the QEMU\n"
 "Machine Protocol."
 msgstr ""
 
-#: gnu/packages/virtualization.scm:843
+#: gnu/packages/virtualization.scm:1479
 msgid "KVM Frame Relay (KVMFR) implementation"
 msgstr ""
 
-#: gnu/packages/virtualization.scm:844
+#: gnu/packages/virtualization.scm:1480
 msgid ""
 "Looking Glass allows the use of a KVM (Kernel-based Virtual\n"
 "Machine) configured for VGA PCI Pass-through without an attached physical\n"
@@ -19932,11 +26864,11 @@ msgid ""
 "monitor/GPU."
 msgstr ""
 
-#: gnu/packages/virtualization.scm:904
+#: gnu/packages/virtualization.scm:1538
 msgid "Open container initiative runtime"
 msgstr ""
 
-#: gnu/packages/virtualization.scm:907
+#: gnu/packages/virtualization.scm:1541
 msgid ""
 "@command{runc} is a command line client for running applications\n"
 "packaged according to the\n"
@@ -19945,21 +26877,21 @@ msgid ""
 "Open Container Initiative specification."
 msgstr ""
 
-#: gnu/packages/virtualization.scm:953
+#: gnu/packages/virtualization.scm:1588
 msgid "Tool for modifying Open Container images"
 msgstr ""
 
-#: gnu/packages/virtualization.scm:955
+#: gnu/packages/virtualization.scm:1590
 msgid ""
 "@command{umoci} is a tool that allows for high-level modification of an\n"
 "Open Container Initiative (OCI) image layout and its tagged images."
 msgstr ""
 
-#: gnu/packages/virtualization.scm:1001
+#: gnu/packages/virtualization.scm:1643
 msgid "Interact with container images and container image registries"
 msgstr ""
 
-#: gnu/packages/virtualization.scm:1003
+#: gnu/packages/virtualization.scm:1645
 msgid ""
 "@command{skopeo} is a command line utility providing various operations\n"
 "with container images and container image registries.  It can:\n"
@@ -19980,38 +26912,37 @@ msgid ""
 "@end enumerate"
 msgstr ""
 
-#: gnu/packages/virtualization.scm:1037
+#: gnu/packages/virtualization.scm:1679
 #, fuzzy
-#| msgid "Python bindings for cairo"
 msgid "Python bindings for Vagrant"
 msgstr "Enlace Python para cairo"
 
-#: gnu/packages/virtualization.scm:1039
+#: gnu/packages/virtualization.scm:1681
 msgid ""
 "Python-vagrant is a Python module that provides a thin wrapper around the\n"
 "@code{vagrant} command line executable, allowing programmatic control of Vagrant\n"
 "virtual machines."
 msgstr ""
 
-#: gnu/packages/virtualization.scm:1090
+#: gnu/packages/virtualization.scm:1735
 msgid "Unprivileged sandboxing tool"
 msgstr ""
 
-#: gnu/packages/virtualization.scm:1091
+#: gnu/packages/virtualization.scm:1736
 msgid ""
 "Bubblewrap is aimed at running applications in a sandbox,\n"
-"where it has restricted access to parts of the operating system or user data\n"
-"such as the home directory.  Bubblewrap always creates a new mount namespace,\n"
-"and the user can specify exactly what parts of the filesystem should be visible\n"
-"in the sandbox.  Any such directories specified is mounted nodev by default,\n"
-"and can be made readonly."
+"restricting their access to parts of the operating system or user data such as\n"
+"the home directory.  Bubblewrap always creates a new mount namespace, and the\n"
+"user can specify exactly what parts of the file system should be made visible\n"
+"in the sandbox.  These directories are mounted with the @code{nodev} option\n"
+"by default and can be made read-only."
 msgstr ""
 
-#: gnu/packages/virtualization.scm:1117
+#: gnu/packages/virtualization.scm:1761
 msgid "Emulator for x86 PC"
 msgstr ""
 
-#: gnu/packages/virtualization.scm:1119
+#: gnu/packages/virtualization.scm:1763
 msgid ""
 "Bochs is an emulator which can emulate Intel x86 CPU, common I/O\n"
 "devices, and a custom BIOS.  It can also be compiled to emulate many different\n"
@@ -20020,34 +26951,86 @@ msgid ""
 "DOS or Microsoft Windows."
 msgstr ""
 
-#: gnu/packages/virtualization.scm:1322
+#: gnu/packages/virtualization.scm:1965
 #, fuzzy
-#| msgid "Manage virtual machines"
 msgid "Xen Virtual Machine Monitor"
 msgstr "Gestionar máquinas virtuales"
 
-#: gnu/packages/virtualization.scm:1323
+#: gnu/packages/virtualization.scm:1966
 msgid ""
 "This package provides the Xen Virtual Machine Monitor\n"
 "which is a hypervisor."
 msgstr ""
 
-#: gnu/packages/webkit.scm:152
+#: gnu/packages/virtualization.scm:2001
+msgid "Tools for managing the osinfo database"
+msgstr ""
+
+#: gnu/packages/virtualization.scm:2002
+msgid ""
+"This package contains a set of tools to assist\n"
+"administrators and developers in managing the database."
+msgstr ""
+
+#: gnu/packages/virtualization.scm:2036
+msgid "Database of information about operating systems"
+msgstr ""
+
+#: gnu/packages/virtualization.scm:2037
+msgid ""
+"Osinfo-db provides the database files for use with the\n"
+"libosinfo library.  It provides information about guest operating systems for\n"
+"use with virtualization provisioning tools"
+msgstr ""
+
+#: gnu/packages/webkit.scm:88
+#, fuzzy
+msgid "General-purpose library for WPE"
+msgstr "Propósito general de compresión de datos"
+
+#: gnu/packages/webkit.scm:89
+msgid ""
+"LibWPE is general-purpose library specifically developed for\n"
+"the WPE-flavored port of WebKit."
+msgstr ""
+
+#: gnu/packages/webkit.scm:116
+msgid "Wayland WPE backend"
+msgstr ""
+
+#: gnu/packages/webkit.scm:118
+msgid ""
+"This package provides a backend implementation for the WPE WebKit\n"
+"engine that uses Wayland for graphics output."
+msgstr ""
+
+#: gnu/packages/webkit.scm:212
+msgid "WebKit port optimized for embedded devices"
+msgstr ""
+
+#: gnu/packages/webkit.scm:213
+msgid ""
+"WPE WebKit allows embedders to create simple and performant\n"
+"systems based on Web platform technologies.  It is designed with hardware\n"
+"acceleration in mind, leveraging common 3D graphics APIs for best performance."
+msgstr ""
+
+#: gnu/packages/webkit.scm:342
 msgid "Web content engine for GTK+"
 msgstr ""
 
-#: gnu/packages/webkit.scm:154
+#: gnu/packages/webkit.scm:344
 msgid ""
 "WebKitGTK+ is a full-featured port of the WebKit rendering engine,\n"
 "suitable for projects requiring any kind of web integration, from hybrid\n"
 "HTML/CSS applications to full-fledged web browsers."
 msgstr ""
 
-#: gnu/packages/web.scm:153
+#: gnu/packages/web.scm:188
 msgid "Featureful HTTP server"
 msgstr "Característica completa servidor HTTP"
 
-#: gnu/packages/web.scm:155
+#: gnu/packages/web.scm:190
 msgid ""
 "The Apache HTTP Server Project is a collaborative software development\n"
 "effort aimed at creating a robust, commercial-grade, featureful, and\n"
@@ -20057,108 +27040,142 @@ msgid ""
 "and its related documentation."
 msgstr ""
 
-#: gnu/packages/web.scm:187
+#: gnu/packages/web.scm:222
 msgid "Apache HTTPD module for Python WSGI applications"
 msgstr ""
 
-#: gnu/packages/web.scm:189
+#: gnu/packages/web.scm:224
 msgid ""
 "The mod_wsgi module for the Apache HTTPD Server adds support for running\n"
 "applications that support the Python @acronym{WSGI, Web Server Gateway\n"
 "Interface} specification."
 msgstr ""
 
-#: gnu/packages/web.scm:278
+#: gnu/packages/web.scm:313
 msgid "HTTP and reverse proxy server"
 msgstr "HTTP y servidor proxy reverso"
 
-#: gnu/packages/web.scm:280
+#: gnu/packages/web.scm:315
 msgid ""
 "Nginx (\"engine X\") is a high-performance web and reverse proxy server\n"
 "created by Igor Sysoev.  It can be used both as a stand-alone web server\n"
 "and as a proxy to reduce the load on back-end HTTP or mail servers."
 msgstr ""
 
-#: gnu/packages/web.scm:325
+#: gnu/packages/web.scm:373
+#, fuzzy
+msgid "Documentation for the nginx web server"
+msgstr "Documentación para servidor web nginx"
+
+#: gnu/packages/web.scm:375
+msgid "This package provides HTML documentation for the nginx web server."
+msgstr ""
+
+#: gnu/packages/web.scm:502
+msgid "Nginx module for parsing the Accept-Language HTTP header"
+msgstr ""
+
+#: gnu/packages/web.scm:504
+msgid ""
+"This nginx module parses the Accept-Language field in HTTP headers and\n"
+"chooses the most suitable locale for the user from the list of locales\n"
+"supported at your website."
+msgstr ""
+
+#: gnu/packages/web.scm:549
 msgid "XSLScript with NGinx specific modifications"
 msgstr ""
 
-#: gnu/packages/web.scm:327
+#: gnu/packages/web.scm:551
 msgid ""
 "XSLScript is a terse notation for writing complex XSLT stylesheets.\n"
 "This is modified version, specifically intended for use with the NGinx\n"
 "documentation."
 msgstr ""
 
-#: gnu/packages/web.scm:380
+#: gnu/packages/web.scm:624
 #, fuzzy
-#| msgid "Documentation for nginx web server"
-msgid "Documentation for the nginx web server"
-msgstr "Documentación para servidor web nginx"
+msgid "NGINX module for Lua programming language support"
+msgstr "Manual de referencia para el lenguaje de programación C"
 
-#: gnu/packages/web.scm:382
-msgid "This package provides HTML documentation for the nginx web server."
+#: gnu/packages/web.scm:625
+msgid ""
+"This NGINX module provides a scripting support with Lua\n"
+"programming language."
 msgstr ""
 
-#: gnu/packages/web.scm:405
+#: gnu/packages/web.scm:681
+#, fuzzy
+msgid "Lightweight HTTP and reverse proxy server"
+msgstr "HTTP y servidor proxy reverso"
+
+#: gnu/packages/web.scm:683
+msgid ""
+"Lighttpd is a secure, fast, compliant, and very flexible web-server that\n"
+"has been optimized for high-performance environments.  It has a very low\n"
+"memory footprint compared to other webservers.  Its features include FastCGI,\n"
+"CGI, authentication, output compression, URL rewriting and many more."
+msgstr ""
+
+#: gnu/packages/web.scm:712
 msgid "Language-independent, high-performant extension to CGI"
 msgstr ""
 
-#: gnu/packages/web.scm:406
+#: gnu/packages/web.scm:713
 msgid ""
 "FastCGI is a language-independent, scalable extension to CGI\n"
 "that provides high performance without the limitations of server specific\n"
 "APIs."
 msgstr ""
 
-#: gnu/packages/web.scm:437
+#: gnu/packages/web.scm:752
 msgid "Simple server for running CGI applications over FastCGI"
 msgstr ""
 
-#: gnu/packages/web.scm:438
+#: gnu/packages/web.scm:753
 msgid ""
 "Fcgiwrap is a simple server for running CGI applications\n"
 "over FastCGI.  It hopes to provide clean CGI support to Nginx (and other web\n"
 "servers that may need it)."
 msgstr ""
 
-#: gnu/packages/web.scm:469
+#: gnu/packages/web.scm:783
 msgid "PSGI/Plack web server"
 msgstr "Servicio web PSGI/Plack"
 
-#: gnu/packages/web.scm:470
+#: gnu/packages/web.scm:784
 msgid ""
 "Starman is a PSGI perl web server that has unique features\n"
 "such as high performance, preforking, signal support, superdaemon awareness,\n"
 "and UNIX socket support."
 msgstr ""
 
-#: gnu/packages/web.scm:502
+#: gnu/packages/web.scm:816
 msgid "Java Web Start"
 msgstr "Inicio de Web Java"
 
-#: gnu/packages/web.scm:504
+#: gnu/packages/web.scm:818
 msgid ""
 "IcedTea-Web is an implementation of the @dfn{Java Network Launching\n"
 "Protocol}, also known as Java Web Start.  This package provides tools and\n"
 "libraries for working with JNLP applets."
 msgstr ""
 
-#: gnu/packages/web.scm:527
+#: gnu/packages/web.scm:841
 msgid "JSON C library"
 msgstr "Biblioteca C JSON"
 
-#: gnu/packages/web.scm:529
+#: gnu/packages/web.scm:843
 msgid ""
 "Jansson is a C library for encoding, decoding and manipulating JSON\n"
 "data."
 msgstr ""
 
-#: gnu/packages/web.scm:556
+#: gnu/packages/web.scm:862
 msgid "JSON implementation in C"
 msgstr "Implementación JSON en C"
 
-#: gnu/packages/web.scm:558
+#: gnu/packages/web.scm:864
 msgid ""
 "JSON-C implements a reference counting object model that allows you to\n"
 "easily construct JSON objects in C, output them as JSON-formatted strings and\n"
@@ -20166,11 +27183,11 @@ msgid ""
 "It aims to conform to RFC 7159."
 msgstr ""
 
-#: gnu/packages/web.scm:609
+#: gnu/packages/web.scm:948
 msgid "JSON parser written in ANSI C"
 msgstr ""
 
-#: gnu/packages/web.scm:610
+#: gnu/packages/web.scm:949
 msgid ""
 "This package provides a very low footprint JSON parser\n"
 "written in portable ANSI C.\n"
@@ -20183,22 +27200,33 @@ msgid ""
 "@end itemize"
 msgstr ""
 
-#: gnu/packages/web.scm:654
+#: gnu/packages/web.scm:993
 msgid "Library that maps JSON data to QVariant objects"
 msgstr ""
 
-#: gnu/packages/web.scm:655
+#: gnu/packages/web.scm:994
 msgid ""
 "QJson is a Qt-based library that maps JSON data to\n"
 "@code{QVariant} objects.  JSON arrays will be mapped to @code{QVariantList}\n"
 "instances, while JSON's objects will be mapped to @code{QVariantMap}."
 msgstr ""
 
-#: gnu/packages/web.scm:739
+#: gnu/packages/web.scm:1038
+msgid "Qt-based C++ library for OAuth authorization scheme"
+msgstr ""
+
+#: gnu/packages/web.scm:1039
+msgid ""
+"QOAuth is an attempt to support interaction with\n"
+"OAuth-powered network services in a Qt way, i.e. simply, clearly and\n"
+"efficiently.  It gives the application developer no more than 4 methods."
+msgstr ""
+
+#: gnu/packages/web.scm:1122
 msgid "Hierarchical data exploration with zoomable HTML5 pie charts"
 msgstr ""
 
-#: gnu/packages/web.scm:741
+#: gnu/packages/web.scm:1124
 msgid ""
 "Krona is a flexible tool for exploring the relative proportions of\n"
 "hierarchical data, such as metagenomic classifications, using a radial,\n"
@@ -20207,42 +27235,99 @@ msgid ""
 "current version of any major web browser."
 msgstr ""
 
-#: gnu/packages/web.scm:782
+#: gnu/packages/web.scm:1166
 msgid "JSON parser/generator for C++ with both SAX/DOM style API"
 msgstr ""
 
-#: gnu/packages/web.scm:784
+#: gnu/packages/web.scm:1168
 msgid ""
 "RapidJSON is a fast JSON parser/generator for C++ with both SAX/DOM\n"
 "style API."
 msgstr ""
 
-#: gnu/packages/web.scm:811
+#: gnu/packages/web.scm:1195
 msgid "C library for parsing JSON"
 msgstr "Biblioteca C para interpretar JSON"
 
-#: gnu/packages/web.scm:813
+#: gnu/packages/web.scm:1197
 msgid ""
 "Yet Another JSON Library (YAJL) is a small event-driven (SAX-style) JSON\n"
 "parser written in ANSI C and a small validating JSON generator."
 msgstr ""
 
-#: gnu/packages/web.scm:843
+#: gnu/packages/web.scm:1227
 msgid "WebSockets library written in C"
 msgstr "Biblioteca WebSockets escrita en C"
 
-#: gnu/packages/web.scm:845
+#: gnu/packages/web.scm:1229
 msgid ""
 "Libwebsockets is a library that allows C programs to establish client\n"
 "and server WebSockets connections---a protocol layered above HTTP that allows\n"
 "for efficient socket-like bidirectional reliable communication channels."
 msgstr ""
 
-#: gnu/packages/web.scm:873
+#: gnu/packages/web.scm:1257
+msgid "WebAssembly Binary Toolkit"
+msgstr ""
+
+#: gnu/packages/web.scm:1258
+msgid ""
+"WABT (pronounced: wabbit) is a suite of tools for\n"
+"WebAssembly, including:\n"
+"\n"
+"@enumerate\n"
+"@item @command{wat2wasm} translates from WebAssembly text format to the\n"
+"WebAssembly binary format\n"
+"@item @command{wasm2wat} is the inverse; it translates from the binary format\n"
+"back to the text format (also known as a .wat)\n"
+"@item @command{wasm-objdump} prints information about a wasm binary, similarly\n"
+"to @command{objdump}.\n"
+"@item @command{wasm-interp} decodes ands run a WebAssembly binary file using a\n"
+"stack-based interpreter\n"
+"@item @command{wat-desugar} parses .wat text form as supported by the spec\n"
+"interpreter (s-expressions, flat syntax, or mixed) and prints the canonical\n"
+"flat format\n"
+"@item @command{wasm2c} converts a WebAssembly binary file to a C source and\n"
+"header file.\n"
+"@end enumerate\n"
+"\n"
+"These tools are intended for use in (or for development of) toolchains or\n"
+"other systems that want to manipulate WebAssembly files."
+msgstr ""
+
+#: gnu/packages/web.scm:1308
+#, fuzzy
+msgid "C++ library implementing the WebSocket protocol"
+msgstr "Implementación Perl de protocolo PSYC"
+
+#: gnu/packages/web.scm:1309
+msgid ""
+"WebSocket++ is a C++ library that can be used to implement\n"
+"WebSocket functionality.  The goals of the project are to provide a WebSocket\n"
+"implementation that is simple, portable, flexible, lightweight, low level, and\n"
+"high performance."
+msgstr ""
+
+#: gnu/packages/web.scm:1340
+#, fuzzy
+msgid "C WebSocket library"
+msgstr "Cliente biblioteca CMIS"
+
+#: gnu/packages/web.scm:1341
+msgid ""
+"@code{Wslay} is an event-based C library for the WebSocket\n"
+"protocol version 13, described in RFC 6455.  Besides a high-level API it\n"
+"provides callbacks for sending and receiving frames directly.  @code{Wslay}\n"
+"only supports the data transfer part of WebSocket protocol and does not\n"
+"perform the opening handshake in HTTP."
+msgstr ""
+
+#: gnu/packages/web.scm:1370
 msgid "C library for the Publix Suffix List"
 msgstr ""
 
-#: gnu/packages/web.scm:875
+#: gnu/packages/web.scm:1372
+#, fuzzy
 msgid ""
 "A \"public suffix\" is a domain name under which Internet users can\n"
 "directly register own names.\n"
@@ -20252,7 +27337,7 @@ msgid ""
 "highlighting parts of the domain in a user interface, and sorting domain lists\n"
 "by site.\n"
 "\n"
-"Libpsl has built-in PSL data for fast access, allows to load PSL data from\n"
+"Libpsl has built-in PSL data for fast access, allowing to load PSL data from\n"
 "files, checks if a given domain is a public suffix, provides immediate cookie\n"
 "domain verification, finds the longest public part of a given domain, finds\n"
 "the shortest private part of a given domain, works with international\n"
@@ -20274,21 +27359,32 @@ msgstr ""
 "dado, funciona con dominios internacionales (UTF-8 e IDNA2008 Punycode), es\n"
 "de hilo seguro, y manipula IDNA2008 UTS#46."
 
-#: gnu/packages/web.scm:921
+#: gnu/packages/web.scm:1418
 msgid "HTML validator and tidier"
 msgstr "Validador y tipado HTML"
 
-#: gnu/packages/web.scm:922
+#: gnu/packages/web.scm:1419
 msgid ""
 "HTML Tidy is a command-line tool and C library that can be\n"
 "used to validate and fix HTML data."
 msgstr ""
 
-#: gnu/packages/web.scm:954
+#: gnu/packages/web.scm:1461
+msgid "Bundler and minifier tool for JavaScript and TypeScript"
+msgstr ""
+
+#: gnu/packages/web.scm:1463
+msgid ""
+"The esbuild tool provides a unified bundler, transpiler and\n"
+"minifier.  It packages up JavaScript and TypeScript code, along with JSON\n"
+"and other data, for distribution on the web."
+msgstr ""
+
+#: gnu/packages/web.scm:1495
 msgid "Light-weight HTTP/HTTPS proxy daemon"
 msgstr ""
 
-#: gnu/packages/web.scm:955
+#: gnu/packages/web.scm:1496
 msgid ""
 "Tinyproxy is a light-weight HTTP/HTTPS proxy\n"
 "daemon.  Designed from the ground up to be fast and yet small, it is an ideal\n"
@@ -20297,22 +27393,22 @@ msgid ""
 "unavailable."
 msgstr ""
 
-#: gnu/packages/web.scm:988
+#: gnu/packages/web.scm:1529
 msgid "Small caching web proxy"
 msgstr ""
 
-#: gnu/packages/web.scm:990
+#: gnu/packages/web.scm:1531
 msgid ""
 "Polipo is a small caching web proxy (web cache, HTTP proxy, and proxy\n"
 "server).  It was primarily designed to be used by one person or a small group\n"
 "of people."
 msgstr ""
 
-#: gnu/packages/web.scm:1018
+#: gnu/packages/web.scm:1559
 msgid "WebSockets support for any application/server"
 msgstr ""
 
-#: gnu/packages/web.scm:1019
+#: gnu/packages/web.scm:1560
 msgid ""
 "Websockify translates WebSockets traffic to normal socket\n"
 "traffic.  Websockify accepts the WebSockets handshake, parses it, and then\n"
@@ -20320,11 +27416,11 @@ msgid ""
 "directions."
 msgstr ""
 
-#: gnu/packages/web.scm:1045
+#: gnu/packages/web.scm:1586
 msgid "Caching web proxy optimized for intermittent internet links"
 msgstr ""
 
-#: gnu/packages/web.scm:1046
+#: gnu/packages/web.scm:1587
 msgid ""
 "WWWOFFLE is a proxy web server that is especially good for\n"
 "intermittent internet links.  It can cache HTTP, HTTPS, FTP, and finger\n"
@@ -20333,11 +27429,11 @@ msgid ""
 "changes, and much more."
 msgstr ""
 
-#: gnu/packages/web.scm:1071
+#: gnu/packages/web.scm:1612
 msgid "C library implementing the OAuth API"
 msgstr ""
 
-#: gnu/packages/web.scm:1073
+#: gnu/packages/web.scm:1614
 msgid ""
 "liboauth is a collection of C functions implementing the OAuth API.\n"
 "liboauth provides functions to escape and encode strings according to OAuth\n"
@@ -20346,42 +27442,42 @@ msgid ""
 "hash/signatures."
 msgstr ""
 
-#: gnu/packages/web.scm:1096
+#: gnu/packages/web.scm:1635
 msgid "YAML 1.1 parser and emitter written in C"
 msgstr ""
 
-#: gnu/packages/web.scm:1098
+#: gnu/packages/web.scm:1637
 msgid "LibYAML is a YAML 1.1 parser and emitter written in C."
 msgstr "LibYAML es un YAML 1.1 interpretador y emisor escrito en C."
 
-#: gnu/packages/web.scm:1115 gnu/packages/web.scm:1149
-#: gnu/packages/web.scm:1172
+#: gnu/packages/web.scm:1654 gnu/packages/web.scm:1688
+#: gnu/packages/web.scm:1711
 msgid "Media stream URL parser"
 msgstr ""
 
-#: gnu/packages/web.scm:1116
+#: gnu/packages/web.scm:1655
 msgid ""
 "This package contains support scripts called by libquvi to\n"
 "parse media stream properties."
 msgstr ""
 
-#: gnu/packages/web.scm:1150
+#: gnu/packages/web.scm:1689
 msgid ""
 "libquvi is a library with a C API for parsing media stream\n"
 "URLs and extracting their actual media files."
 msgstr ""
 
-#: gnu/packages/web.scm:1173
+#: gnu/packages/web.scm:1712
 msgid ""
 "quvi is a command-line-tool suite to extract media files\n"
 "from streaming URLs.  It is a command-line wrapper for the libquvi library."
 msgstr ""
 
-#: gnu/packages/web.scm:1245
+#: gnu/packages/web.scm:1784
 msgid "High-performance asynchronous HTTP client library"
 msgstr ""
 
-#: gnu/packages/web.scm:1247
+#: gnu/packages/web.scm:1786
 msgid ""
 "serf is a C-based HTTP client library built upon the Apache Portable\n"
 "Runtime (APR) library.  It multiplexes connections, running the read/write\n"
@@ -20389,11 +27485,11 @@ msgid ""
 "minimum to provide high performance operation."
 msgstr ""
 
-#: gnu/packages/web.scm:1281
+#: gnu/packages/web.scm:1821
 msgid "SASS Compiler, implemented as a C/C++ library"
 msgstr ""
 
-#: gnu/packages/web.scm:1283
+#: gnu/packages/web.scm:1823
 msgid ""
 "LibSass is a @acronym{SASS,Syntactically awesome style sheets} compiler\n"
 "library designed for portability and efficiency.  To actually compile SASS\n"
@@ -20401,49 +27497,49 @@ msgid ""
 "@var{sassc} for example."
 msgstr ""
 
-#: gnu/packages/web.scm:1332
+#: gnu/packages/web.scm:1871
 msgid "CSS pre-processor"
 msgstr "CSS pre-procesador"
 
-#: gnu/packages/web.scm:1333
+#: gnu/packages/web.scm:1872
 msgid ""
 "SassC is a compiler written in C for the CSS pre-processor\n"
 "language known as SASS."
 msgstr ""
 
-#: gnu/packages/web.scm:1361
+#: gnu/packages/web.scm:1924
 msgid "Compile a log format string to perl-code"
 msgstr ""
 
-#: gnu/packages/web.scm:1362
+#: gnu/packages/web.scm:1925
 msgid ""
 "This module provides methods to compile a log format string\n"
 "to perl-code, for faster generation of access_log lines."
 msgstr ""
 
-#: gnu/packages/web.scm:1390
+#: gnu/packages/web.scm:1953
 msgid "SASL authentication framework"
 msgstr "Marco de trabajo para autenticación SASL"
 
-#: gnu/packages/web.scm:1391
+#: gnu/packages/web.scm:1954
 msgid "Authen::SASL provides an SASL authentication framework."
 msgstr ""
 
-#: gnu/packages/web.scm:1416
+#: gnu/packages/web.scm:1979
 msgid "Sensible default Catalyst action"
 msgstr "Distingue acción Catalyst predeterminada"
 
-#: gnu/packages/web.scm:1417
+#: gnu/packages/web.scm:1980
 msgid ""
 "This Catalyst action implements a sensible default end\n"
 "action, which will forward to the first available view."
 msgstr ""
 
-#: gnu/packages/web.scm:1449
+#: gnu/packages/web.scm:2012
 msgid "Automated REST Method Dispatching"
 msgstr ""
 
-#: gnu/packages/web.scm:1450
+#: gnu/packages/web.scm:2013
 msgid ""
 "This Action handles doing automatic method dispatching for\n"
 "REST requests.  It takes a normal Catalyst action, and changes the dispatch to\n"
@@ -20452,32 +27548,32 @@ msgid ""
 "regular method."
 msgstr ""
 
-#: gnu/packages/web.scm:1487
+#: gnu/packages/web.scm:2050
 msgid "Storage class for Catalyst authentication using DBIx::Class"
 msgstr ""
 
-#: gnu/packages/web.scm:1488
+#: gnu/packages/web.scm:2051
 msgid ""
 "The Catalyst::Authentication::Store::DBIx::Class class\n"
 "provides access to authentication information stored in a database via\n"
 "DBIx::Class."
 msgstr ""
 
-#: gnu/packages/web.scm:1514
+#: gnu/packages/web.scm:2077
 msgid "Create only one instance of Moose component per context"
 msgstr ""
 
-#: gnu/packages/web.scm:1515
+#: gnu/packages/web.scm:2078
 msgid ""
 "Catalyst::Component::InstancePerContext returns a new\n"
 "instance of a component on each request."
 msgstr ""
 
-#: gnu/packages/web.scm:1552
+#: gnu/packages/web.scm:2114
 msgid "Catalyst Development Tools"
 msgstr "Herramientas Desarrollo Catalyst"
 
-#: gnu/packages/web.scm:1553
+#: gnu/packages/web.scm:2115
 msgid ""
 "The Catalyst-Devel distribution includes a variety of\n"
 "modules useful for the development of Catalyst applications, but not required\n"
@@ -20487,11 +27583,11 @@ msgid ""
 "modules."
 msgstr ""
 
-#: gnu/packages/web.scm:1582
+#: gnu/packages/web.scm:2144
 msgid "Regex DispatchType for Catalyst"
 msgstr "Exreg DispatchType para Catalyst"
 
-#: gnu/packages/web.scm:1583
+#: gnu/packages/web.scm:2145
 msgid ""
 "Dispatch type managing path-matching behaviour using\n"
 "regexes.  Regex dispatch types have been deprecated and removed from Catalyst\n"
@@ -20501,32 +27597,32 @@ msgid ""
 "when the dispatch type is first seen in your application."
 msgstr ""
 
-#: gnu/packages/web.scm:1632
+#: gnu/packages/web.scm:2194
 msgid "DBIx::Class::Schema Model Class"
 msgstr "Modelo de Clase DBIx::Class::Schema"
 
-#: gnu/packages/web.scm:1633
+#: gnu/packages/web.scm:2195
 msgid ""
 "This is a Catalyst Model for DBIx::Class::Schema-based\n"
 "Models."
 msgstr ""
 
-#: gnu/packages/web.scm:1656
+#: gnu/packages/web.scm:2218
 msgid "Request logging from within Catalyst"
 msgstr ""
 
-#: gnu/packages/web.scm:1657
+#: gnu/packages/web.scm:2219
 msgid ""
 "This Catalyst plugin enables you to create \"access logs\"\n"
 "from within a Catalyst application instead of requiring a webserver to do it\n"
 "for you.  It will work even with Catalyst debug logging turned off."
 msgstr ""
 
-#: gnu/packages/web.scm:1691
+#: gnu/packages/web.scm:2253
 msgid "Infrastructure plugin for the Catalyst authentication framework"
 msgstr ""
 
-#: gnu/packages/web.scm:1692
+#: gnu/packages/web.scm:2254
 msgid ""
 "The authentication plugin provides generic user support for\n"
 "Catalyst apps.  It is the basis for both authentication (checking the user is\n"
@@ -20534,52 +27630,52 @@ msgid ""
 "system authorises them to do)."
 msgstr ""
 
-#: gnu/packages/web.scm:1723
+#: gnu/packages/web.scm:2285
 msgid "Role-based authorization for Catalyst"
 msgstr "Autorización de cargo basado para Catalyst"
 
-#: gnu/packages/web.scm:1724
+#: gnu/packages/web.scm:2286
 msgid ""
 "Catalyst::Plugin::Authorization::Roles provides role-based\n"
 "authorization for Catalyst based on Catalyst::Plugin::Authentication."
 msgstr ""
 
-#: gnu/packages/web.scm:1747
+#: gnu/packages/web.scm:2309
 msgid "Captchas for Catalyst"
 msgstr "Vista para Catalyst"
 
-#: gnu/packages/web.scm:1748
+#: gnu/packages/web.scm:2310
 msgid ""
 "This plugin creates and validates Captcha images for\n"
 "Catalyst."
 msgstr ""
 
-#: gnu/packages/web.scm:1775
+#: gnu/packages/web.scm:2336
 msgid "Load config files of various types"
 msgstr ""
 
-#: gnu/packages/web.scm:1776
+#: gnu/packages/web.scm:2337
 msgid ""
 "This module will attempt to load find and load configuration\n"
 "files of various types.  Currently it supports YAML, JSON, XML, INI and Perl\n"
 "formats."
 msgstr ""
 
-#: gnu/packages/web.scm:1807
+#: gnu/packages/web.scm:2368
 msgid "Catalyst generic session plugin"
 msgstr "Política de sesión genérica complementaria"
 
-#: gnu/packages/web.scm:1808
+#: gnu/packages/web.scm:2369
 msgid ""
 "This plugin links the two pieces required for session\n"
 "management in web applications together: the state, and the store."
 msgstr ""
 
-#: gnu/packages/web.scm:1836
+#: gnu/packages/web.scm:2397
 msgid "Maintain session IDs using cookies"
 msgstr ""
 
-#: gnu/packages/web.scm:1837
+#: gnu/packages/web.scm:2398
 msgid ""
 "In order for Catalyst::Plugin::Session to work, the session\n"
 "ID needs to be stored on the client, and the session data needs to be stored\n"
@@ -20587,22 +27683,22 @@ msgid ""
 "cookie mechanism."
 msgstr ""
 
-#: gnu/packages/web.scm:1867
+#: gnu/packages/web.scm:2428
 msgid "FastMmap session storage backend"
 msgstr ""
 
-#: gnu/packages/web.scm:1868
+#: gnu/packages/web.scm:2429
 msgid ""
 "Catalyst::Plugin::Session::Store::FastMmap is a fast session\n"
 "storage plugin for Catalyst that uses an mmap'ed file to act as a shared\n"
 "memory interprocess cache.  It is based on Cache::FastMmap."
 msgstr ""
 
-#: gnu/packages/web.scm:1893
+#: gnu/packages/web.scm:2454
 msgid "Stack trace on the Catalyst debug screen"
 msgstr ""
 
-#: gnu/packages/web.scm:1894
+#: gnu/packages/web.scm:2455
 msgid ""
 "This plugin enhances the standard Catalyst debug screen by\n"
 "including a stack trace of your application up to the point where the error\n"
@@ -20610,11 +27706,11 @@ msgid ""
 "number, file name, and code context surrounding the line number."
 msgstr ""
 
-#: gnu/packages/web.scm:1922
+#: gnu/packages/web.scm:2483
 msgid "Simple serving of static pages"
 msgstr "Servicio simple de páginas estáticas"
 
-#: gnu/packages/web.scm:1923
+#: gnu/packages/web.scm:2484
 msgid ""
 "The Static::Simple plugin is designed to make serving static\n"
 "content in your application during development quick and easy, without\n"
@@ -20625,11 +27721,11 @@ msgid ""
 "MIME type directly to the browser, without being processed through Catalyst."
 msgstr ""
 
-#: gnu/packages/web.scm:1985
+#: gnu/packages/web.scm:2547
 msgid "The Catalyst Framework Runtime"
 msgstr "El Armazón Catalyst en Tiempo de Ejecución"
 
-#: gnu/packages/web.scm:1986
+#: gnu/packages/web.scm:2548
 msgid ""
 "Catalyst is a modern framework for making web applications.\n"
 "It is designed to make it easy to manage the various tasks you need to do to\n"
@@ -20637,11 +27733,11 @@ msgid ""
 "\"plug in\" existing Perl modules that do what you need."
 msgstr ""
 
-#: gnu/packages/web.scm:2017
+#: gnu/packages/web.scm:2579
 msgid "Replace request base with value passed by HTTP proxy"
 msgstr ""
 
-#: gnu/packages/web.scm:2018
+#: gnu/packages/web.scm:2580
 msgid ""
 "This module is a Moose::Role which allows you more\n"
 "flexibility in your application's deployment configurations when deployed\n"
@@ -20649,42 +27745,42 @@ msgid ""
 "replaced with the contents of the X-Request-Base header."
 msgstr ""
 
-#: gnu/packages/web.scm:2045
+#: gnu/packages/web.scm:2607
 msgid "Download data in many formats"
 msgstr "Descarga datos en muchos formatos"
 
-#: gnu/packages/web.scm:2046
+#: gnu/packages/web.scm:2608
 msgid ""
 "The purpose of this module is to provide a method for\n"
 "downloading data into many supportable formats.  For example, downloading a\n"
 "table based report in a variety of formats (CSV, HTML, etc.)."
 msgstr ""
 
-#: gnu/packages/web.scm:2072
+#: gnu/packages/web.scm:2634
 msgid "Catalyst JSON view"
 msgstr "Vista catalyst JSON"
 
-#: gnu/packages/web.scm:2073
+#: gnu/packages/web.scm:2635
 msgid ""
 "Catalyst::View::JSON is a Catalyst View handler that returns\n"
 "stash data in JSON format."
 msgstr ""
 
-#: gnu/packages/web.scm:2099
+#: gnu/packages/web.scm:2660
 msgid "Template View Class"
 msgstr "Plantilla Vista Clase"
 
-#: gnu/packages/web.scm:2100
+#: gnu/packages/web.scm:2661
 msgid ""
 "This module is a Catalyst view class for the Template\n"
 "Toolkit."
 msgstr ""
 
-#: gnu/packages/web.scm:2129
+#: gnu/packages/web.scm:2690
 msgid "Trait Loading and Resolution for Catalyst Components"
 msgstr ""
 
-#: gnu/packages/web.scm:2130
+#: gnu/packages/web.scm:2691
 msgid ""
 "Adds a \"COMPONENT\" in Catalyst::Component method to your\n"
 "Catalyst component base class that reads the optional \"traits\" parameter\n"
@@ -20693,32 +27789,32 @@ msgid ""
 "MooseX::Traits::Pluggable."
 msgstr ""
 
-#: gnu/packages/web.scm:2155
+#: gnu/packages/web.scm:2716
 msgid "Apply roles to Catalyst classes"
 msgstr "Aplicar oficios a clases Catalyst"
 
-#: gnu/packages/web.scm:2156
+#: gnu/packages/web.scm:2717
 msgid ""
 "CatalystX::RoleApplicator applies roles to Catalyst\n"
 "application classes."
 msgstr ""
 
-#: gnu/packages/web.scm:2183
+#: gnu/packages/web.scm:2744
 #, fuzzy
 msgid "Catalyst development server with Starman"
 msgstr "Herramientas Desarrollo Catalyst"
 
-#: gnu/packages/web.scm:2184
+#: gnu/packages/web.scm:2745
 msgid ""
 "This module provides a Catalyst extension to replace the\n"
 "development server with Starman."
 msgstr ""
 
-#: gnu/packages/web.scm:2208
+#: gnu/packages/web.scm:2768
 msgid "Handle Common Gateway Interface requests and responses"
 msgstr ""
 
-#: gnu/packages/web.scm:2209
+#: gnu/packages/web.scm:2769
 msgid ""
 "CGI.pm is a stable, complete and mature solution for\n"
 "processing and preparing HTTP requests and responses.  Major features include\n"
@@ -20727,72 +27823,72 @@ msgid ""
 "headers."
 msgstr ""
 
-#: gnu/packages/web.scm:2234
+#: gnu/packages/web.scm:2794
 msgid "Generate and process stateful forms"
 msgstr ""
 
-#: gnu/packages/web.scm:2236
+#: gnu/packages/web.scm:2796
 msgid ""
 "@code{CGI::FormBuilder} provides an easy way to generate and process CGI\n"
 "form-based applications."
 msgstr ""
 
-#: gnu/packages/web.scm:2261
+#: gnu/packages/web.scm:2821
 msgid "Persistent session data in CGI applications"
 msgstr ""
 
-#: gnu/packages/web.scm:2263
+#: gnu/packages/web.scm:2823
 msgid ""
 "@code{CGI::Session} provides modular session management system across\n"
 "HTTP requests."
 msgstr ""
 
-#: gnu/packages/web.scm:2285
+#: gnu/packages/web.scm:2845
 msgid "CGI interface that is CGI.pm compliant"
 msgstr ""
 
-#: gnu/packages/web.scm:2286
+#: gnu/packages/web.scm:2846
 msgid ""
 "CGI::Simple provides a relatively lightweight drop in\n"
 "replacement for CGI.pm.  It shares an identical OO interface to CGI.pm for\n"
 "parameter parsing, file upload, cookie handling and header generation."
 msgstr ""
 
-#: gnu/packages/web.scm:2307
+#: gnu/packages/web.scm:2867
 msgid "Build structures from CGI data"
 msgstr "Construye estructuras desde datos CGI"
 
-#: gnu/packages/web.scm:2308
+#: gnu/packages/web.scm:2868
 msgid ""
 "This is a module for building structured data from CGI\n"
 "inputs, in a manner reminiscent of how PHP does."
 msgstr ""
 
-#: gnu/packages/web.scm:2331
+#: gnu/packages/web.scm:2891
 msgid "Date conversion routines"
 msgstr "Fecha del conversión de rutinas"
 
-#: gnu/packages/web.scm:2332
+#: gnu/packages/web.scm:2892
 msgid ""
 "This module provides functions that deal with the date\n"
 "formats used by the HTTP protocol."
 msgstr ""
 
-#: gnu/packages/web.scm:2352
+#: gnu/packages/web.scm:2912
 msgid "MD5 sums for files and urls"
 msgstr ""
 
-#: gnu/packages/web.scm:2353
+#: gnu/packages/web.scm:2913
 msgid ""
 "Digest::MD5::File is a Perl extension for getting MD5 sums\n"
 "for files and urls."
 msgstr ""
 
-#: gnu/packages/web.scm:2371
+#: gnu/packages/web.scm:2931
 msgid "Perl locale encoding determination"
 msgstr "Determinación de codificación Perl local"
 
-#: gnu/packages/web.scm:2373
+#: gnu/packages/web.scm:2933
 msgid ""
 "The POSIX locale system is used to specify both the language\n"
 "conventions requested by the user and the preferred character set to\n"
@@ -20804,110 +27900,110 @@ msgid ""
 "with Encode::decode(locale => $string)."
 msgstr ""
 
-#: gnu/packages/web.scm:2408
+#: gnu/packages/web.scm:2968
 msgid "Syndication feed auto-discovery"
 msgstr ""
 
-#: gnu/packages/web.scm:2409
+#: gnu/packages/web.scm:2969
 msgid ""
 "@code{Feed::Find} implements feed auto-discovery for finding\n"
 "syndication feeds, given a URI.  It will discover the following feed formats:\n"
 "RSS 0.91, RSS 1.0, RSS 2.0, Atom."
 msgstr ""
 
-#: gnu/packages/web.scm:2430
+#: gnu/packages/web.scm:2990
 msgid "Perl directory listing parser"
 msgstr "Directorio Perl listando intérprete"
 
-#: gnu/packages/web.scm:2432
+#: gnu/packages/web.scm:2992
 msgid ""
 "The File::Listing module exports a single function called parse_dir(),\n"
 "which can be used to parse directory listings."
 msgstr ""
 
-#: gnu/packages/web.scm:2463
+#: gnu/packages/web.scm:3023
 msgid "Stock and mutual fund quotes"
 msgstr "Acciones y fondos de inversión"
 
-#: gnu/packages/web.scm:2465
+#: gnu/packages/web.scm:3025
 msgid ""
 "Finance::Quote gets stock quotes from various internet sources, including\n"
 "Yahoo! Finance, Fidelity Investments, and the Australian Stock Exchange."
 msgstr ""
 
-#: gnu/packages/web.scm:2487
+#: gnu/packages/web.scm:3047
 msgid "Perl extension providing access to the GSSAPIv2 library"
 msgstr ""
 
-#: gnu/packages/web.scm:2488
+#: gnu/packages/web.scm:3048
 msgid ""
 "This is a Perl extension for using GSSAPI C bindings as\n"
 "described in RFC 2744."
 msgstr ""
 
-#: gnu/packages/web.scm:2508
+#: gnu/packages/web.scm:3068
 msgid "Manipulate tables of HTML::Element"
 msgstr "Manipula tablas de HTML::Element"
 
-#: gnu/packages/web.scm:2510
+#: gnu/packages/web.scm:3070
 msgid ""
 "HTML::Element::Extended is a Perl extension for manipulating a table\n"
 "composed of HTML::Element style components."
 msgstr ""
 
-#: gnu/packages/web.scm:2534
+#: gnu/packages/web.scm:3093
 msgid "Perl class representing an HTML form element"
 msgstr ""
 
-#: gnu/packages/web.scm:2535
+#: gnu/packages/web.scm:3094
 msgid ""
 "Objects of the HTML::Form class represents a single HTML\n"
 "<form> ... </form> instance."
 msgstr ""
 
-#: gnu/packages/web.scm:2566
+#: gnu/packages/web.scm:3125
 msgid "Perl extension for scrubbing/sanitizing html"
 msgstr ""
 
-#: gnu/packages/web.scm:2568
+#: gnu/packages/web.scm:3127
 msgid "@code{HTML::Scrubber} Perl extension for scrubbing/sanitizing HTML."
 msgstr ""
 
-#: gnu/packages/web.scm:2588
+#: gnu/packages/web.scm:3147
 msgid "Check for HTML errors in a string or file"
 msgstr ""
 
-#: gnu/packages/web.scm:2589
+#: gnu/packages/web.scm:3148
 msgid ""
 "HTML::Lint is a pure-Perl HTML parser and checker for\n"
 "syntactic legitmacy."
 msgstr ""
 
-#: gnu/packages/web.scm:2610
+#: gnu/packages/web.scm:3169
 msgid "Extract contents from HTML tables"
 msgstr ""
 
-#: gnu/packages/web.scm:2612
+#: gnu/packages/web.scm:3171
 msgid ""
 "HTML::TableExtract is a Perl module for extracting the content contained\n"
 "in tables within an HTML document, either as text or encoded element trees."
 msgstr ""
 
-#: gnu/packages/web.scm:2637
+#: gnu/packages/web.scm:3196
 msgid "Work with HTML in a DOM-like tree structure"
 msgstr ""
 
-#: gnu/packages/web.scm:2638
+#: gnu/packages/web.scm:3197
 msgid ""
 "This distribution contains a suite of modules for\n"
 "representing, creating, and extracting information from HTML syntax trees."
 msgstr ""
 
-#: gnu/packages/web.scm:2659
+#: gnu/packages/web.scm:3218
 msgid "Perl HTML parser class"
 msgstr "Clase interpretada HTML en Perl"
 
-#: gnu/packages/web.scm:2661
+#: gnu/packages/web.scm:3220
 msgid ""
 "Objects of the HTML::Parser class will recognize markup and separate\n"
 "it from plain text (alias data content) in HTML documents.  As different\n"
@@ -20915,21 +28011,21 @@ msgid ""
 "are invoked."
 msgstr ""
 
-#: gnu/packages/web.scm:2681
+#: gnu/packages/web.scm:3240
 msgid "Perl data tables useful in parsing HTML"
 msgstr ""
 
-#: gnu/packages/web.scm:2683
+#: gnu/packages/web.scm:3242
 msgid ""
 "The HTML::Tagset module contains several data tables useful in various\n"
 "kinds of HTML parsing operations."
 msgstr ""
 
-#: gnu/packages/web.scm:2702
+#: gnu/packages/web.scm:3261
 msgid "HTML-like templates"
 msgstr "Plantillas parecidas a HTML"
 
-#: gnu/packages/web.scm:2704
+#: gnu/packages/web.scm:3263
 msgid ""
 "This module attempts to make using HTML templates simple and natural.\n"
 "It extends standard HTML with a few new HTML-esque tags: @code{<TMPL_VAR>},\n"
@@ -20940,72 +28036,91 @@ msgid ""
 "you to separate design from the data."
 msgstr ""
 
-#: gnu/packages/web.scm:2732
+#: gnu/packages/web.scm:3291
 msgid "HTTP Body Parser"
 msgstr "Interpretador Cuerpo HTTP"
 
-#: gnu/packages/web.scm:2733
+#: gnu/packages/web.scm:3292
 msgid ""
 "HTTP::Body parses chunks of HTTP POST data and supports\n"
 "application/octet-stream, application/json, application/x-www-form-urlencoded,\n"
 "and multipart/form-data."
 msgstr ""
 
-#: gnu/packages/web.scm:2760
+#: gnu/packages/web.scm:3318
 msgid "Minimalist HTTP user agent cookie jar"
 msgstr ""
 
-#: gnu/packages/web.scm:2761
+#: gnu/packages/web.scm:3319
 msgid ""
 "This module implements a minimalist HTTP user agent cookie\n"
 "jar in conformance with RFC 6265 <http://tools.ietf.org/html/rfc6265>."
 msgstr ""
 
-#: gnu/packages/web.scm:2781
+#: gnu/packages/web.scm:3339
 msgid "Perl HTTP cookie jars"
 msgstr ""
 
-#: gnu/packages/web.scm:2783
+#: gnu/packages/web.scm:3341
 msgid ""
 "The HTTP::Cookies class is for objects that represent a cookie jar,\n"
 "that is, a database of all the HTTP cookies that a given LWP::UserAgent\n"
 "object knows about."
 msgstr ""
 
-#: gnu/packages/web.scm:2805
+#: gnu/packages/web.scm:3363
 msgid "Perl simple http server class"
 msgstr ""
 
-#: gnu/packages/web.scm:2807
+#: gnu/packages/web.scm:3365
 msgid ""
 "Instances of the HTTP::Daemon class are HTTP/1.1 servers that listen\n"
 "on a socket for incoming requests.  The HTTP::Daemon is a subclass of\n"
 "IO::Socket::INET, so you can perform socket operations directly on it too."
 msgstr ""
 
-#: gnu/packages/web.scm:2826
+#: gnu/packages/web.scm:3384
 msgid "Perl date conversion routines"
 msgstr "Rutinas de conversión de fecha Perl"
 
-#: gnu/packages/web.scm:2828
+#: gnu/packages/web.scm:3386
 msgid ""
 "The HTTP::Date module provides functions that deal with date formats\n"
 "used by the HTTP protocol (and then some more)."
 msgstr ""
 
-#: gnu/packages/web.scm:2854
+#: gnu/packages/web.scm:3406
+#, fuzzy
+msgid "Lightweight HTTP implementation"
+msgstr "Servidor ligero HTTP"
+
+#: gnu/packages/web.scm:3407
+msgid ""
+"@code{HTTP::Lite} is a stand-alone lightweight\n"
+"HTTP/1.1 implementation for perl.  It is intended for use in\n"
+"situations where it is desirable to install the minimal number of\n"
+"modules to achieve HTTP support.  @code{HTTP::Lite} is ideal for\n"
+"CGI (or mod_perl) programs or for bundling for redistribution with\n"
+"larger packages where only HTTP GET and POST functionality are\n"
+"necessary.  @code{HTTP::Lite} is compliant with the Host header,\n"
+"necessary for name based virtual hosting, and supports proxies.\n"
+"Additionally, @code{HTTP::Lite} supports a callback to allow\n"
+"processing of request data as it arrives."
+msgstr ""
+
+#: gnu/packages/web.scm:3441
 msgid "Perl HTTP style message"
 msgstr ""
 
-#: gnu/packages/web.scm:2856
+#: gnu/packages/web.scm:3443
 msgid "An HTTP::Message object contains some headers and a content body."
 msgstr "Un objeto HTTP::Message contiene algunas cabeceras y un cuerpo de contenido."
 
-#: gnu/packages/web.scm:2875
+#: gnu/packages/web.scm:3462
 msgid "Perl http content negotiation"
 msgstr "Negociación de contenido http Perl"
 
-#: gnu/packages/web.scm:2877
+#: gnu/packages/web.scm:3464
 msgid ""
 "The HTTP::Negotiate module provides a complete implementation of the\n"
 "HTTP content negotiation algorithm specified in\n"
@@ -21015,11 +28130,11 @@ msgid ""
 "fields in the request."
 msgstr ""
 
-#: gnu/packages/web.scm:2902
+#: gnu/packages/web.scm:3489
 msgid "Parse HTTP/1.1 requests"
 msgstr "Interpreta peticiones HTTP/1.1"
 
-#: gnu/packages/web.scm:2903
+#: gnu/packages/web.scm:3490
 msgid ""
 "This is an HTTP request parser.  It takes chunks of text as\n"
 "received and returns a @code{hint} as to what is required, or returns the\n"
@@ -21027,53 +28142,53 @@ msgid ""
 "supported."
 msgstr ""
 
-#: gnu/packages/web.scm:2925
+#: gnu/packages/web.scm:3512
 msgid "Fast HTTP request parser"
 msgstr "Intérprete de peticiones HTTP rápida"
 
-#: gnu/packages/web.scm:2926
+#: gnu/packages/web.scm:3513
 msgid ""
 "HTTP::Parser::XS is a fast, primitive HTTP request/response\n"
 "parser."
 msgstr ""
 
-#: gnu/packages/web.scm:2947
+#: gnu/packages/web.scm:3534
 msgid "Set up a CGI environment from an HTTP::Request"
 msgstr ""
 
-#: gnu/packages/web.scm:2948
+#: gnu/packages/web.scm:3535
 msgid ""
 "This module provides a convenient way to set up a CGI\n"
 "environment from an HTTP::Request."
 msgstr ""
 
-#: gnu/packages/web.scm:2981
+#: gnu/packages/web.scm:3568
 msgid "Lightweight HTTP server"
 msgstr "Servidor ligero HTTP"
 
-#: gnu/packages/web.scm:2982
+#: gnu/packages/web.scm:3569
 msgid ""
 "HTTP::Server::Simple is a simple standalone HTTP daemon with\n"
 "no non-core module dependencies.  It can be used for building a standalone\n"
 "http-based UI to your existing tools."
 msgstr ""
 
-#: gnu/packages/web.scm:3007
+#: gnu/packages/web.scm:3594
 msgid "HTTP/1.1 client"
 msgstr "HTTP/1.1 cliente"
 
-#: gnu/packages/web.scm:3008
+#: gnu/packages/web.scm:3595
 msgid ""
 "This is a very simple HTTP/1.1 client, designed for doing\n"
 "simple requests without the overhead of a large framework like LWP::UserAgent.\n"
 "It supports proxies and redirection.  It also correctly resumes after EINTR."
 msgstr ""
 
-#: gnu/packages/web.scm:3032
+#: gnu/packages/web.scm:3619
 msgid "@code{HTTP::Tiny} compatible HTTP client wrappers"
 msgstr ""
 
-#: gnu/packages/web.scm:3034
+#: gnu/packages/web.scm:3621
 msgid ""
 "@code{HTTP::Tinyish} is a wrapper module for @acronym{LWP,libwww-perl},\n"
 "@code{HTTP::Tiny}, curl and wget.\n"
@@ -21081,32 +28196,32 @@ msgid ""
 "It provides an API compatible to HTTP::Tiny."
 msgstr ""
 
-#: gnu/packages/web.scm:3054
+#: gnu/packages/web.scm:3641
 msgid "Perl module to open an HTML file with automatic charset detection"
 msgstr ""
 
-#: gnu/packages/web.scm:3056
+#: gnu/packages/web.scm:3643
 msgid ""
 "IO::HTML provides an easy way to open a file containing HTML while\n"
 "automatically determining its encoding.  It uses the HTML5 encoding sniffing\n"
 "algorithm specified in section 8.2.2.1 of the draft standard."
 msgstr ""
 
-#: gnu/packages/web.scm:3076
+#: gnu/packages/web.scm:3662
 msgid "Family-neutral IP socket supporting both IPv4 and IPv6"
 msgstr ""
 
-#: gnu/packages/web.scm:3077
+#: gnu/packages/web.scm:3663
 msgid ""
 "This module provides a protocol-independent way to use IPv4\n"
 "and IPv6 sockets, intended as a replacement for IO::Socket::INET."
 msgstr ""
 
-#: gnu/packages/web.scm:3099
+#: gnu/packages/web.scm:3685
 msgid "Nearly transparent SSL encapsulation for IO::Socket::INET"
 msgstr ""
 
-#: gnu/packages/web.scm:3101
+#: gnu/packages/web.scm:3687
 msgid ""
 "IO::Socket::SSL makes using SSL/TLS much easier by wrapping the\n"
 "necessary functionality into the familiar IO::Socket interface and providing\n"
@@ -21115,11 +28230,11 @@ msgid ""
 "select or poll."
 msgstr ""
 
-#: gnu/packages/web.scm:3140
+#: gnu/packages/web.scm:3726
 msgid "Perl modules for the WWW"
 msgstr "Módulos Perl para la WWW"
 
-#: gnu/packages/web.scm:3142
+#: gnu/packages/web.scm:3728
 msgid ""
 "The libwww-perl collection is a set of Perl modules which provides a\n"
 "simple and consistent application programming interface to the\n"
@@ -21129,11 +28244,11 @@ msgid ""
 "help you implement simple HTTP servers."
 msgstr ""
 
-#: gnu/packages/web.scm:3170
+#: gnu/packages/web.scm:3756
 msgid "Checks whether your process has access to the web"
 msgstr ""
 
-#: gnu/packages/web.scm:3171
+#: gnu/packages/web.scm:3757
 msgid ""
 "This module attempts to answer, as accurately as it can, one\n"
 "of the nastiest technical questions there is: am I on the internet?\n"
@@ -21143,11 +28258,11 @@ msgid ""
 "not have DNS.  We might not have a network card at all!"
 msgstr ""
 
-#: gnu/packages/web.scm:3193
+#: gnu/packages/web.scm:3781
 msgid "Perl module to guess the media type for a file or a URL"
 msgstr ""
 
-#: gnu/packages/web.scm:3195
+#: gnu/packages/web.scm:3783
 #, scheme-format
 msgid ""
 "The LWP::MediaTypes module provides functions for handling media (also\n"
@@ -21156,21 +28271,32 @@ msgid ""
 "exists it is used instead."
 msgstr ""
 
-#: gnu/packages/web.scm:3224
+#: gnu/packages/web.scm:3812
 msgid "HTTPS support for LWP::UserAgent"
 msgstr ""
 
-#: gnu/packages/web.scm:3225
+#: gnu/packages/web.scm:3813
 msgid ""
 "The LWP::Protocol::https module provides support for using\n"
 "https schemed URLs with LWP."
 msgstr ""
 
-#: gnu/packages/web.scm:3245
+#: gnu/packages/web.scm:3833
+msgid "Simple caching for LWP::UserAgent"
+msgstr ""
+
+#: gnu/packages/web.scm:3834
+msgid ""
+"LWP::UserAgent::Cached is an LWP::UserAgent subclass with\n"
+"cache support.  It returns responses from the local file system, if available,\n"
+"instead of making an HTTP request."
+msgstr ""
+
+#: gnu/packages/web.scm:3855
 msgid "Virtual browser that retries errors"
 msgstr ""
 
-#: gnu/packages/web.scm:3246
+#: gnu/packages/web.scm:3856
 msgid ""
 "LWP::UserAgent::Determined works just like LWP::UserAgent,\n"
 "except that when you use it to get a web page but run into a\n"
@@ -21178,19 +28304,33 @@ msgid ""
 "and retry a few times."
 msgstr ""
 
-#: gnu/packages/web.scm:3291
+#: gnu/packages/web.scm:3882
+msgid "Security enhanced subclass of LWP::UserAgent"
+msgstr ""
+
+#: gnu/packages/web.scm:3883
+msgid ""
+"@code{LWPx::ParanoidAgent} is a class subclassing\n"
+"@code{LWP::UserAgent} but paranoid against attackers.  Its purpose is\n"
+"to vet requests for a remote resource on behalf of a possibly\n"
+"malicious user.  The class can do the same as @code{LWP::UserAgent},\n"
+"except that proxy support has been removed.  Support for URI schemes\n"
+"is limited to http and https."
+msgstr ""
+
+#: gnu/packages/web.scm:3930
 msgid "Perl interface to Amazon S3"
 msgstr "Interfaz Perl para Amazon S3"
 
-#: gnu/packages/web.scm:3292
+#: gnu/packages/web.scm:3931
 msgid "This module provides a Perlish interface to Amazon S3."
 msgstr "Este módulo proporciona un interfaz Perlish para Amazon S3."
 
-#: gnu/packages/web.scm:3312
+#: gnu/packages/web.scm:3951
 msgid "Perl low-level HTTP connection (client)"
 msgstr ""
 
-#: gnu/packages/web.scm:3314
+#: gnu/packages/web.scm:3953
 msgid ""
 "The Net::HTTP class is a low-level HTTP client.  An instance of the\n"
 "Net::HTTP class represents a connection to an HTTP server.  The HTTP protocol\n"
@@ -21198,11 +28338,11 @@ msgid ""
 "HTTP/1.1."
 msgstr ""
 
-#: gnu/packages/web.scm:3334
+#: gnu/packages/web.scm:3973
 msgid "Extensible Perl server engine"
 msgstr ""
 
-#: gnu/packages/web.scm:3335
+#: gnu/packages/web.scm:3974
 msgid ""
 "Net::Server is an extensible, generic Perl server engine.\n"
 "It attempts to be a generic server as in Net::Daemon and NetServer::Generic.\n"
@@ -21216,19 +28356,19 @@ msgid ""
 "or to multiple server ports."
 msgstr ""
 
-#: gnu/packages/web.scm:3363
+#: gnu/packages/web.scm:4002
 msgid "SSL support for Net::SMTP"
 msgstr "Capacidad SSL para Net::SMTP"
 
-#: gnu/packages/web.scm:3364
+#: gnu/packages/web.scm:4003
 msgid "SSL support for Net::SMTP."
 msgstr "Capacidad SSL para Net::SMTP."
 
-#: gnu/packages/web.scm:3398
+#: gnu/packages/web.scm:4037
 msgid "Perl Superglue for Web frameworks and servers (PSGI toolkit)"
 msgstr ""
 
-#: gnu/packages/web.scm:3399
+#: gnu/packages/web.scm:4038
 msgid ""
 "Plack is a set of tools for using the PSGI stack.  It\n"
 "contains middleware components, a reference server, and utilities for Web\n"
@@ -21236,11 +28376,11 @@ msgid ""
 "WSGI."
 msgstr ""
 
-#: gnu/packages/web.scm:3425
+#: gnu/packages/web.scm:4064
 msgid "Compress response body with Gzip or Deflate"
 msgstr ""
 
-#: gnu/packages/web.scm:3427
+#: gnu/packages/web.scm:4066
 msgid ""
 "Plack::Middleware::Deflater is a middleware to encode your response body\n"
 "in gzip or deflate, based on \"Accept-Encoding\" HTTP request header.  It\n"
@@ -21249,21 +28389,21 @@ msgid ""
 "servers."
 msgstr ""
 
-#: gnu/packages/web.scm:3454
+#: gnu/packages/web.scm:4093
 msgid "Plack::Middleware which sets body for redirect response"
 msgstr ""
 
-#: gnu/packages/web.scm:3455
+#: gnu/packages/web.scm:4094
 msgid ""
 "This module sets the body in redirect response, if it's not\n"
 "already set."
 msgstr ""
 
-#: gnu/packages/web.scm:3477
+#: gnu/packages/web.scm:4116
 msgid "Override REST methods to Plack apps via POST"
 msgstr ""
 
-#: gnu/packages/web.scm:3478
+#: gnu/packages/web.scm:4117
 msgid ""
 "This middleware allows for POST requests that pretend to be\n"
 "something else: by adding either a header named X-HTTP-Method-Override to the\n"
@@ -21271,72 +28411,72 @@ msgid ""
 "can say what method it actually meant."
 msgstr ""
 
-#: gnu/packages/web.scm:3501
+#: gnu/packages/web.scm:4140
 msgid "Plack::Middleware which removes body for HTTP response"
 msgstr ""
 
-#: gnu/packages/web.scm:3502
+#: gnu/packages/web.scm:4141
 msgid ""
 "This module removes the body in an HTTP response if it's not\n"
 "required."
 msgstr ""
 
-#: gnu/packages/web.scm:3524
+#: gnu/packages/web.scm:4163
 msgid "Supports app to run as a reverse proxy backend"
 msgstr ""
 
-#: gnu/packages/web.scm:3525
+#: gnu/packages/web.scm:4164
 msgid ""
 "Plack::Middleware::ReverseProxy resets some HTTP headers,\n"
 "which are changed by reverse-proxy.  You can specify the reverse proxy address\n"
 "and stop fake requests using @code{enable_if} directive in your app.psgi."
 msgstr ""
 
-#: gnu/packages/web.scm:3545
+#: gnu/packages/web.scm:4184
 msgid "Run HTTP tests on external live servers"
 msgstr ""
 
-#: gnu/packages/web.scm:3546
+#: gnu/packages/web.scm:4185
 msgid ""
 "This module allows your to run your Plack::Test tests\n"
 "against an external server instead of just against a local application through\n"
 "either mocked HTTP or a locally spawned server."
 msgstr ""
 
-#: gnu/packages/web.scm:3567
+#: gnu/packages/web.scm:4206
 msgid "Testing TCP programs"
 msgstr "Probando programa TCP"
 
-#: gnu/packages/web.scm:3568
+#: gnu/packages/web.scm:4207
 msgid "Test::TCP is test utilities for TCP/IP programs."
 msgstr ""
 
-#: gnu/packages/web.scm:3592
+#: gnu/packages/web.scm:4231
 msgid "Testing-specific WWW::Mechanize subclass"
 msgstr ""
 
-#: gnu/packages/web.scm:3593
+#: gnu/packages/web.scm:4232
 msgid ""
 "Test::WWW::Mechanize is a subclass of the Perl module\n"
 "WWW::Mechanize that incorporates features for web application testing."
 msgstr ""
 
-#: gnu/packages/web.scm:3626
+#: gnu/packages/web.scm:4265
 msgid "Test::WWW::Mechanize for Catalyst"
 msgstr "Test::WWW::Mechanize para Catalyst"
 
-#: gnu/packages/web.scm:3627
+#: gnu/packages/web.scm:4266
 msgid ""
 "The Test::WWW::Mechanize::Catalyst module meshes the\n"
 "Test::WWW:Mechanize module and the Catalyst web application framework to allow\n"
 "testing of Catalyst applications without needing to start up a web server."
 msgstr ""
 
-#: gnu/packages/web.scm:3651
+#: gnu/packages/web.scm:4290
 msgid "Test PSGI programs using WWW::Mechanize"
 msgstr ""
 
-#: gnu/packages/web.scm:3652
+#: gnu/packages/web.scm:4291
 msgid ""
 "PSGI is a specification to decouple web server environments\n"
 "from web application framework code.  Test::WWW::Mechanize is a subclass of\n"
@@ -21345,33 +28485,33 @@ msgid ""
 "applications."
 msgstr ""
 
-#: gnu/packages/web.scm:3675
+#: gnu/packages/web.scm:4314
 msgid "Perl Uniform Resource Identifiers (absolute and relative)"
 msgstr ""
 
-#: gnu/packages/web.scm:3677
+#: gnu/packages/web.scm:4316
 msgid ""
 "The URI module implements the URI class.  Objects of this class\n"
 "represent \"Uniform Resource Identifier references\" as specified in RFC 2396\n"
 "and updated by RFC 2732."
 msgstr ""
 
-#: gnu/packages/web.scm:3701
+#: gnu/packages/web.scm:4340
 msgid "Smart URI fetching/caching"
 msgstr ""
 
-#: gnu/packages/web.scm:3702
+#: gnu/packages/web.scm:4341
 msgid ""
 "@code{URI::Fetch} is a smart client for fetching HTTP pages,\n"
 "notably syndication feeds (RSS, Atom, and others), in an intelligent, bandwidth-\n"
 "and time-saving way."
 msgstr ""
 
-#: gnu/packages/web.scm:3725
+#: gnu/packages/web.scm:4364
 msgid "Find URIs in arbitrary text"
 msgstr "Encuentra URI en texto arbitrario"
 
-#: gnu/packages/web.scm:3726
+#: gnu/packages/web.scm:4365
 msgid ""
 "This module finds URIs and URLs (according to what URI.pm\n"
 "considers a URI) in plain text.  It only finds URIs which include a\n"
@@ -21379,61 +28519,61 @@ msgid ""
 "URI::Find::Schemeless.  For a command-line interface, urifind is provided."
 msgstr ""
 
-#: gnu/packages/web.scm:3748
+#: gnu/packages/web.scm:4387
 msgid "WebSocket support for URI package"
 msgstr ""
 
-#: gnu/packages/web.scm:3749
+#: gnu/packages/web.scm:4388
 msgid ""
 "With this module, the URI package provides the same set of\n"
 "methods for WebSocket URIs as it does for HTTP URIs."
 msgstr ""
 
-#: gnu/packages/web.scm:3773
+#: gnu/packages/web.scm:4412
 msgid "Object for handling URI templates"
 msgstr ""
 
-#: gnu/packages/web.scm:3774
+#: gnu/packages/web.scm:4413
 msgid ""
 "This perl module provides a wrapper around URI templates as described in\n"
 "RFC 6570."
 msgstr ""
 
-#: gnu/packages/web.scm:3806
+#: gnu/packages/web.scm:4445
 msgid "Perl extension interface for libcurl"
 msgstr "Extensión de interfaz Perl para libcurl"
 
-#: gnu/packages/web.scm:3808
+#: gnu/packages/web.scm:4447
 msgid ""
 "This is a Perl extension interface for the libcurl file downloading\n"
 "library."
 msgstr ""
 
-#: gnu/packages/web.scm:3841
+#: gnu/packages/web.scm:4480
 msgid "Web browsing in a Perl object"
 msgstr "Explorador web dentro de un objeto Perl"
 
-#: gnu/packages/web.scm:3842
+#: gnu/packages/web.scm:4481
 msgid ""
 "WWW::Mechanize is a Perl module for stateful programmatic\n"
 "web browsing, used for automating interaction with websites."
 msgstr ""
 
-#: gnu/packages/web.scm:3878
+#: gnu/packages/web.scm:4517
 msgid "Search A9 OpenSearch compatible engines"
 msgstr ""
 
-#: gnu/packages/web.scm:3880
+#: gnu/packages/web.scm:4519
 msgid ""
 "@code{WWW::OpenSearch} is a module to search @url{A9's OpenSearch,\n"
 "http://opensearch.a9.com} compatible search engines."
 msgstr ""
 
-#: gnu/packages/web.scm:3900
+#: gnu/packages/web.scm:4539
 msgid "Perl database of robots.txt-derived permissions"
 msgstr ""
 
-#: gnu/packages/web.scm:3902
+#: gnu/packages/web.scm:4541
 msgid ""
 "The WWW::RobotRules module parses /robots.txt files as specified in\n"
 "\"A Standard for Robot Exclusion\", at\n"
@@ -21442,42 +28582,54 @@ msgid ""
 "their web site."
 msgstr ""
 
-#: gnu/packages/web.scm:3925
+#: gnu/packages/web.scm:4564
 msgid "Parse feeds in Python"
 msgstr "Interpreta novedades para Python"
 
-#: gnu/packages/web.scm:3927
+#: gnu/packages/web.scm:4566
 msgid ""
 "Universal feed parser which handles RSS 0.9x, RSS 1.0, RSS 2.0,\n"
 "CDF, Atom 0.3, and Atom 1.0 feeds."
 msgstr ""
 
-#: gnu/packages/web.scm:3956
+#: gnu/packages/web.scm:4664
+msgid "Store and provide data about GNU Guix"
+msgstr ""
+
+#: gnu/packages/web.scm:4666
+msgid ""
+"The Guix Data Service stores data about GNU Guix, and provides this\n"
+"through a web interface.  It supports listening to the guix-commits mailing\n"
+"list to find out about new revisions, then loads the data from these in to a\n"
+"PostgreSQL database."
+msgstr ""
+
+#: gnu/packages/web.scm:4695
 msgid "HTML5 parsing library"
 msgstr "Biblioteca interpretando HTML5"
 
-#: gnu/packages/web.scm:3958
+#: gnu/packages/web.scm:4697
 msgid ""
 "Gumbo is an implementation of the HTML5 parsing algorithm implemented as\n"
 "a pure C99 library."
 msgstr ""
 
-#: gnu/packages/web.scm:4029
+#: gnu/packages/web.scm:4768
 msgid "Application container server"
 msgstr "Aplicación contenedora de servicio"
 
-#: gnu/packages/web.scm:4031
+#: gnu/packages/web.scm:4770
 msgid ""
 "uWSGI presents a complete stack for networked/clustered web applications,\n"
 "implementing message/object passing, caching, RPC and process management.\n"
 "It uses the uwsgi protocol for all the networking/interprocess communications."
 msgstr ""
 
-#: gnu/packages/web.scm:4057
+#: gnu/packages/web.scm:4802
 msgid "Command-line JSON processor"
 msgstr "Procesador mandato lineal JSON"
 
-#: gnu/packages/web.scm:4058
+#: gnu/packages/web.scm:4803
 msgid ""
 "jq is like sed for JSON data – you can use it to slice and\n"
 "filter and map and transform structured data with the same ease that sed, awk,\n"
@@ -21487,106 +28639,120 @@ msgid ""
 "you'd expect."
 msgstr ""
 
-#: gnu/packages/web.scm:4088
+#: gnu/packages/web.scm:4832
 msgid "Library for mocking web service APIs which use HTTP or HTTPS"
 msgstr ""
 
-#: gnu/packages/web.scm:4090
+#: gnu/packages/web.scm:4834
 msgid ""
 "Uhttpmock is a project for mocking web service APIs which use HTTP or\n"
 "HTTPS.  It provides a library, libuhttpmock, which implements recording and\n"
 "playback of HTTP request/response traces."
 msgstr ""
 
-#: gnu/packages/web.scm:4125
+#: gnu/packages/web.scm:4869
 msgid "Single file web server"
 msgstr "Fichero web simple de servidor"
 
-#: gnu/packages/web.scm:4126
+#: gnu/packages/web.scm:4870
 msgid ""
 "Woof (Web Offer One File) is a small simple web server that\n"
 "can easily be invoked on a single file.  Your partner can access the file with\n"
 "tools they trust (e.g. wget)."
 msgstr ""
 
-#: gnu/packages/web.scm:4152
+#: gnu/packages/web.scm:4896
 msgid "Build system for the Netsurf project"
 msgstr "Sistema compilador para proyecto Netsurf"
 
-#: gnu/packages/web.scm:4154
+#: gnu/packages/web.scm:4898
 msgid ""
 "This package provides the shared build system for Netsurf project\n"
 "libraries."
 msgstr ""
 
-#: gnu/packages/web.scm:4189
+#: gnu/packages/web.scm:4933
 msgid "Parser building library"
 msgstr "Interpretador construyendo biblioteca"
 
-#: gnu/packages/web.scm:4191
+#: gnu/packages/web.scm:4935
 msgid ""
 "LibParserUtils is a library for building efficient parsers, written in\n"
 "C.  It is developed as part of the NetSurf project."
 msgstr ""
 
-#: gnu/packages/web.scm:4219
+#: gnu/packages/web.scm:4963
 msgid "HTML5 compliant parsing library"
 msgstr "Biblioteca interpretando HTML5 completo"
 
-#: gnu/packages/web.scm:4221
+#: gnu/packages/web.scm:4965
 msgid ""
 "Hubbub is an HTML5 compliant parsing library, written in C, which can\n"
 "parse both valid and invalid web content.  It is developed as part of the\n"
 "NetSurf project."
 msgstr ""
 
-#: gnu/packages/web.scm:4302
+#: gnu/packages/web.scm:5083
 msgid "Wiki compiler, capable of generating HTML"
 msgstr ""
 
-#: gnu/packages/web.scm:4304
+#: gnu/packages/web.scm:5085
 msgid ""
 "Ikiwiki is a wiki compiler, capable of generating a static set of web\n"
 "pages, but also incorporating dynamic features like a web based editor and\n"
 "commenting."
 msgstr ""
 
-#: gnu/packages/web.scm:4328
+#: gnu/packages/web.scm:5109
 msgid "String internment library"
 msgstr "Biblioteca de cadena interna"
 
-#: gnu/packages/web.scm:4330
+#: gnu/packages/web.scm:5111
 msgid ""
 "LibWapcaplet provides a reference counted string internment system\n"
 "designed to store small strings and allow rapid comparison of them.  It is\n"
 "developed as part of the Netsurf project."
 msgstr ""
 
-#: gnu/packages/web.scm:4357
+#: gnu/packages/web.scm:5138
 msgid "CSS parser and selection library"
 msgstr "Intérprete CSS y selección de biblioteca"
 
-#: gnu/packages/web.scm:4359
+#: gnu/packages/web.scm:5140
 msgid ""
 "LibCSS is a CSS (Cascading Style Sheet) parser and selection engine,\n"
 "written in C.  It is developed as part of the NetSurf project."
 msgstr ""
 
-#: gnu/packages/web.scm:4393
+#: gnu/packages/web.scm:5173
+#, fuzzy
+msgid "C library for reading and writing YAML"
+msgstr "Biblioteca C para crear e interpretar ficheros de configuración."
+
+#: gnu/packages/web.scm:5175
+msgid ""
+"LibCYAML is a C library written in ISO C11 for reading and writing\n"
+"structured YAML documents.  The fundamental idea behind CYAML is to allow\n"
+"applications to construct schemas which describe both the permissible\n"
+"structure of the YAML documents to read/write, and the C data structure(s)\n"
+"in which the loaded data is arranged in memory."
+msgstr ""
+
+#: gnu/packages/web.scm:5213
 msgid "Implementation of the W3C DOM"
 msgstr "Implementación de DOM W3C"
 
-#: gnu/packages/web.scm:4395
+#: gnu/packages/web.scm:5215
 msgid ""
 "LibDOM is an implementation of the W3C DOM, written in C.  It is\n"
 "developed as part of the NetSurf project."
 msgstr ""
 
-#: gnu/packages/web.scm:4422
+#: gnu/packages/web.scm:5242
 msgid "Library for parsing SVG files"
 msgstr "Biblioteca para interpretar ficheros SVG"
 
-#: gnu/packages/web.scm:4424
+#: gnu/packages/web.scm:5244
 msgid ""
 "Libsvgtiny takes some SVG as input and returns a list of paths and texts\n"
 "which can be rendered easily, as defined in\n"
@@ -21594,94 +28760,106 @@ msgid ""
 "project."
 msgstr ""
 
-#: gnu/packages/web.scm:4447
+#: gnu/packages/web.scm:5267
 msgid "Decoding library for BMP and ICO files"
 msgstr "Descodificando biblioteca para ficheros BMP e ICO"
 
-#: gnu/packages/web.scm:4449
+#: gnu/packages/web.scm:5269
 msgid ""
 "Libnsbmp is a decoding library for BMP and ICO image file formats,\n"
 "written in C.  It is developed as part of the NetSurf project."
 msgstr ""
 
-#: gnu/packages/web.scm:4470
+#: gnu/packages/web.scm:5290
 msgid "Decoding library for GIF files"
 msgstr "Biblioteca descodificante para ficheros GIF"
 
-#: gnu/packages/web.scm:4472
+#: gnu/packages/web.scm:5292
 msgid ""
 "Libnsgif is a decoding library for the GIF image file format, written in\n"
 "C.  It is developed as part of the NetSurf project."
 msgstr ""
 
-#: gnu/packages/web.scm:4493
+#: gnu/packages/web.scm:5317
+#, fuzzy
+msgid "Logging library"
+msgstr "Biblioteca de dibujo 2D"
+
+#: gnu/packages/web.scm:5319
+msgid ""
+"Libnslog provides a category-based logging library which supports\n"
+"complex logging filters, multiple log levels, and provides context through to\n"
+"client applications.  It is developed as part of the NetSurf project."
+msgstr ""
+
+#: gnu/packages/web.scm:5341
 msgid "Utility library for NetSurf"
 msgstr "Biblioteca utilitaria para NetSurf"
 
-#: gnu/packages/web.scm:4495
+#: gnu/packages/web.scm:5343
 msgid ""
 "Libnsutils provides a small number of useful utility routines.  It is\n"
 "developed as part of the NetSurf project."
 msgstr ""
 
-#: gnu/packages/web.scm:4516
+#: gnu/packages/web.scm:5364
 msgid "Library to generate a static Public Suffix List"
 msgstr ""
 
-#: gnu/packages/web.scm:4518
+#: gnu/packages/web.scm:5366
 msgid ""
 "Libnspsl is a library to generate a static code representation of the\n"
 "Public Suffix List.  It is developed as part of the NetSurf project."
 msgstr ""
 
-#: gnu/packages/web.scm:4544
+#: gnu/packages/web.scm:5392
 msgid "Generate JavaScript to DOM bindings"
 msgstr "Genera JavaScript para enlaces DOM"
 
-#: gnu/packages/web.scm:4546
+#: gnu/packages/web.scm:5394
 msgid ""
 "@code{nsgenbind} is a tool to generate JavaScript to DOM bindings from\n"
 "w3c webidl files and a binding configuration file."
 msgstr ""
 
-#: gnu/packages/web.scm:4658
+#: gnu/packages/web.scm:5515
 msgid "Web browser"
 msgstr "Explorador web"
 
-#: gnu/packages/web.scm:4660
+#: gnu/packages/web.scm:5517
 msgid ""
 "NetSurf is a lightweight web browser that has its own layout and\n"
 "rendering engine entirely written from scratch.  It is small and capable of\n"
 "handling many of the web standards in use today."
 msgstr ""
 
-#: gnu/packages/web.scm:4701
+#: gnu/packages/web.scm:5558
 msgid "Unix command line interface to the www"
 msgstr "Interfaz Unix de mandato lineal para www"
 
-#: gnu/packages/web.scm:4702
+#: gnu/packages/web.scm:5559
 msgid ""
 "Surfraw (Shell Users' Revolutionary Front Rage Against the Web)\n"
 "provides a unix command line interface to a variety of popular www search engines\n"
 "and similar services."
 msgstr ""
 
-#: gnu/packages/web.scm:4733
+#: gnu/packages/web.scm:5590
 msgid "Simple static web server"
 msgstr "Servicio web estático simple"
 
-#: gnu/packages/web.scm:4734
+#: gnu/packages/web.scm:5591
 msgid ""
 "darkhttpd is a simple static web server.  It is\n"
 "standalone and does not need inetd or ucspi-tcp.  It does not need any\n"
 "config files---you only have to specify the www root."
 msgstr ""
 
-#: gnu/packages/web.scm:4765
+#: gnu/packages/web.scm:5622
 msgid "Analyze Web server logs in real time"
 msgstr "Analiza boletines de servicios Web en tiempo real"
 
-#: gnu/packages/web.scm:4767
+#: gnu/packages/web.scm:5624
 msgid ""
 "GoAccess is a real-time web log analyzer and interactive viewer that\n"
 "runs in a terminal or through your browser.  It provides fast and valuable\n"
@@ -21689,11 +28867,23 @@ msgid ""
 "on the fly."
 msgstr ""
 
-#: gnu/packages/web.scm:4803
+#: gnu/packages/web.scm:5676
+msgid "Scalable TLS proxy"
+msgstr ""
+
+#: gnu/packages/web.scm:5678
+msgid ""
+"Hitch is a performant TLS proxy based on @code{libev}.  It terminates\n"
+"SSL/TLS connections and forwards the unencrypted traffic to a backend such\n"
+"as a web server.  It is designed to handle many thousand connections on\n"
+"multicore machines."
+msgstr ""
+
+#: gnu/packages/web.scm:5714
 msgid "Tunnel data connections through HTTP requests"
 msgstr ""
 
-#: gnu/packages/web.scm:4804
+#: gnu/packages/web.scm:5715
 msgid ""
 "httptunnel creates a bidirectional virtual data connection\n"
 "tunnelled through HTTP (HyperText Transfer Protocol) requests.  This can be\n"
@@ -21702,11 +28892,11 @@ msgid ""
 "tools like SSH (Secure Shell) to reach the outside world."
 msgstr ""
 
-#: gnu/packages/web.scm:4850
+#: gnu/packages/web.scm:5761
 msgid "TLS proxy for clients or servers"
 msgstr ""
 
-#: gnu/packages/web.scm:4851
+#: gnu/packages/web.scm:5762
 msgid ""
 "Stunnel is a proxy designed to add TLS encryption\n"
 "functionality to existing clients and servers without any changes in the\n"
@@ -21715,13 +28905,12 @@ msgid ""
 "deployments."
 msgstr ""
 
-#: gnu/packages/web.scm:4920
+#: gnu/packages/web.scm:5832
 #, fuzzy
-#| msgid "Store application preferences"
 msgid "Web application accelerator"
 msgstr "Almacena preferencias de aplicación"
 
-#: gnu/packages/web.scm:4922
+#: gnu/packages/web.scm:5834
 msgid ""
 "Varnish is a high-performance HTTP accelerator.  It acts as a caching\n"
 "reverse proxy and load balancer.  You install it in front of any server that\n"
@@ -21729,22 +28918,22 @@ msgid ""
 "configuration language."
 msgstr ""
 
-#: gnu/packages/web.scm:4950
+#: gnu/packages/web.scm:5862
 msgid "Collection of Varnish modules"
 msgstr ""
 
-#: gnu/packages/web.scm:4952
+#: gnu/packages/web.scm:5864
 msgid ""
 "This package provides a collection of modules (@dfn{vmods}) for the Varnish\n"
-"cache server, extending the @dfn{Varnish Configuration Language} (VCL) with\n"
+"cache server, extending the @acronym{VCL, Varnish Configuration Language} with\n"
 "additional capabilities."
 msgstr ""
 
-#: gnu/packages/web.scm:4979
+#: gnu/packages/web.scm:5893
 msgid "Internet services daemon"
 msgstr "Demonio de servicios de Internet"
 
-#: gnu/packages/web.scm:4980
+#: gnu/packages/web.scm:5894
 msgid ""
 "@code{xinetd}, a more secure replacement for @code{inetd},\n"
 "listens for incoming requests over a network and launches the appropriate\n"
@@ -21753,11 +28942,11 @@ msgid ""
 "used to start services with both privileged and non-privileged port numbers."
 msgstr ""
 
-#: gnu/packages/web.scm:5024
+#: gnu/packages/web.scm:5939
 msgid "HTML Tidy with HTML5 support"
 msgstr "HTML Tidy con apoyo HTML5"
 
-#: gnu/packages/web.scm:5026
+#: gnu/packages/web.scm:5941
 msgid ""
 "Tidy is a console application which corrects and cleans up\n"
 "HTML and XML documents by fixing markup errors and upgrading\n"
@@ -21768,22 +28957,22 @@ msgid ""
 "functions of Tidy."
 msgstr ""
 
-#: gnu/packages/web.scm:5089
+#: gnu/packages/web.scm:6004
 msgid "Webserver with focus on security"
 msgstr "Servidor web centrado en seguridad"
 
-#: gnu/packages/web.scm:5091
+#: gnu/packages/web.scm:6006
 msgid ""
 "Hiawatha has been written with security in mind.\n"
 "Features include the ability to stop SQL injections, XSS and CSRF attacks and\n"
 "exploit attempts."
 msgstr ""
 
-#: gnu/packages/web.scm:5115
+#: gnu/packages/web.scm:6030
 msgid "HTTP request and response service"
 msgstr "Petición HTTP y respuesta de servicio"
 
-#: gnu/packages/web.scm:5116
+#: gnu/packages/web.scm:6031
 msgid ""
 "Testing an HTTP Library can become difficult sometimes.\n"
 "@code{RequestBin} is fantastic for testing POST requests, but doesn't let you control the\n"
@@ -21791,22 +28980,22 @@ msgid ""
 "JSON-encoded."
 msgstr ""
 
-#: gnu/packages/web.scm:5144
+#: gnu/packages/web.scm:6059
 msgid "Test your HTTP library against a local copy of httpbin"
 msgstr ""
 
-#: gnu/packages/web.scm:5146
+#: gnu/packages/web.scm:6061
 msgid ""
 "@code{Pytest-httpbin} creates a @code{pytest} fixture that is dependency-injected\n"
 "into your tests.  It automatically starts up a HTTP server in a separate thread running\n"
 "@code{httpbin} and provides your test with the URL in the fixture."
 msgstr ""
 
-#: gnu/packages/web.scm:5177
+#: gnu/packages/web.scm:6134
 msgid "HTTP request/response parser for C"
 msgstr "Petición/respuestas HTTP interpretadas para C"
 
-#: gnu/packages/web.scm:5178
+#: gnu/packages/web.scm:6135
 msgid ""
 "This is a parser for HTTP messages written in C.  It parses\n"
 "both requests and responses.  The parser is designed to be used in\n"
@@ -21816,64 +29005,64 @@ msgid ""
 "message stream (in a web server that is per connection)."
 msgstr ""
 
-#: gnu/packages/web.scm:5211 gnu/packages/web.scm:5260
+#: gnu/packages/web.scm:6168
 msgid "HTTP client mock for Python"
 msgstr "Cliente mofa HTTP para Python"
 
-#: gnu/packages/web.scm:5212 gnu/packages/web.scm:5261
+#: gnu/packages/web.scm:6169
 msgid ""
 "@code{httpretty} is a helper for faking web requests,\n"
 "inspired by Ruby's @code{fakeweb}."
 msgstr ""
 
-#: gnu/packages/web.scm:5279
+#: gnu/packages/web.scm:6186
 msgid "Output JSON from a shell"
 msgstr "Salida JSON desde una shell"
 
-#: gnu/packages/web.scm:5280
+#: gnu/packages/web.scm:6187
 msgid ""
 "jo is a command-line utility to create JSON objects or\n"
 "arrays.  It creates a JSON string on stdout from words provided as\n"
 "command-line arguments or read from stdin."
 msgstr ""
 
-#: gnu/packages/web.scm:5328
+#: gnu/packages/web.scm:6247
 msgid "Command-line interface to archive.org"
 msgstr "Interfaz de mandato lineal para archive.org"
 
-#: gnu/packages/web.scm:5329
+#: gnu/packages/web.scm:6248
 msgid ""
 "@code{ia} is a command-line tool for using\n"
 "@url{archive.org} from the command-line.  It also emplements the\n"
-"internetarchive python module for programatic access to archive.org."
+"internetarchive python module for programmatic access to archive.org."
 msgstr ""
 
-#: gnu/packages/web.scm:5385
+#: gnu/packages/web.scm:6298
 msgid "Search code snippets on @url{https://commandlinefu.com}"
 msgstr ""
 
-#: gnu/packages/web.scm:5386
+#: gnu/packages/web.scm:6299
 msgid ""
 "@code{clf} is a command line tool for searching code\n"
 "snippets on @url{https://commandlinefu.com}."
 msgstr ""
 
-#: gnu/packages/web.scm:5420
+#: gnu/packages/web.scm:6332
 msgid "Generate Atom feeds for social networking websites"
 msgstr ""
 
-#: gnu/packages/web.scm:5421
+#: gnu/packages/web.scm:6333
 msgid ""
 "rss-bridge generates Atom feeds for social networking\n"
 "websites lacking feeds.  Supported websites include Facebook, Twitter,\n"
 "Instagram and YouTube."
 msgstr ""
 
-#: gnu/packages/web.scm:5475
+#: gnu/packages/web.scm:6387
 msgid "Check websites for broken links"
 msgstr ""
 
-#: gnu/packages/web.scm:5476
+#: gnu/packages/web.scm:6388
 msgid ""
 "LinkChecker is a website validator.  It checks for broken\n"
 "links in websites.  It is recursive and multithreaded providing output in\n"
@@ -21882,28 +29071,28 @@ msgid ""
 "file links."
 msgstr ""
 
-#: gnu/packages/web.scm:5512
+#: gnu/packages/web.scm:6424
 msgid "Command-line WebDAV client"
 msgstr "Cliente WebDAV por mandato lineal"
 
-#: gnu/packages/web.scm:5514
+#: gnu/packages/web.scm:6426
 msgid ""
-"Cadaver is a command-line WebDAV client for Unix. It supports\n"
+"Cadaver is a command-line WebDAV client for Unix.  It supports\n"
 "file upload, download, on-screen display, namespace operations (move/copy),\n"
 "collection creation and deletion, and locking operations."
 msgstr ""
 
-#: gnu/packages/web.scm:5532
+#: gnu/packages/web.scm:6444
 msgid "Universal Binary JSON encoder/decoder"
 msgstr "Codificador/decodificador JSON Binario Universal"
 
-#: gnu/packages/web.scm:5534
+#: gnu/packages/web.scm:6446
 msgid ""
 "Py-ubjson is a Python module providing an Universal Binary JSON\n"
 "encoder/decoder based on the draft-12 specification for UBJSON."
 msgstr ""
 
-#: gnu/packages/web.scm:5596
+#: gnu/packages/web.scm:6540
 msgid ""
 "Java Servlet, JavaServer Pages, Java Expression Language and Java\n"
 "WebSocket"
@@ -21911,72 +29100,72 @@ msgstr ""
 "Java Servlet, JavaServer Pages, Java Expression Language y Java\n"
 "WebSocket"
 
-#: gnu/packages/web.scm:5598
+#: gnu/packages/web.scm:6542
 msgid ""
 "Apache Tomcat is a free implementation of the Java\n"
 "Servlet, JavaServer Pages, Java Expression Language and Java WebSocket\n"
 "technologies."
 msgstr ""
 
-#: gnu/packages/web.scm:5649
+#: gnu/packages/web.scm:6595
 msgid "Helper classes for jetty tests"
 msgstr "Clases ayudante para pruebas Jetty"
 
-#: gnu/packages/web.scm:5650
+#: gnu/packages/web.scm:6596
 msgid ""
-"This packages contains helper classes for testing the Jetty\n"
+"This package contains helper classes for testing the Jetty\n"
 "Web Server."
 msgstr ""
 
-#: gnu/packages/web.scm:5712
+#: gnu/packages/web.scm:6658
 msgid "Utility classes for Jetty"
 msgstr "Clases utilidad para Jetty"
 
-#: gnu/packages/web.scm:5713
+#: gnu/packages/web.scm:6659
 msgid ""
 "The Jetty Web Server provides an HTTP server and Servlet\n"
 "container capable of serving static and dynamic content either from a standalone\n"
 "or embedded instantiation.  This package provides utility classes."
 msgstr ""
 
-#: gnu/packages/web.scm:5784
+#: gnu/packages/web.scm:6730
 msgid "Jetty :: IO Utility"
 msgstr "Utilidad Jetty :: E/S"
 
-#: gnu/packages/web.scm:5785
+#: gnu/packages/web.scm:6731
 msgid ""
 "The Jetty Web Server provides an HTTP server and Servlet\n"
 "container capable of serving static and dynamic content either from a standalone\n"
 "or embedded instantiation.  This package provides IO-related utility classes."
 msgstr ""
 
-#: gnu/packages/web.scm:5828
+#: gnu/packages/web.scm:6774
 msgid "Jetty :: Http Utility"
 msgstr "Utilidad Jetty :: Http"
 
-#: gnu/packages/web.scm:5829
+#: gnu/packages/web.scm:6775
 msgid ""
 "The Jetty Web Server provides an HTTP server and Servlet\n"
 "container capable of serving static and dynamic content either from a standalone\n"
 "or embedded instantiation.  This package provides HTTP-related utility classes."
 msgstr ""
 
-#: gnu/packages/web.scm:5862
+#: gnu/packages/web.scm:6808
 msgid "Jetty :: JMX Management"
 msgstr "Gestión Jetty :: JMX"
 
-#: gnu/packages/web.scm:5863
+#: gnu/packages/web.scm:6809
 msgid ""
 "The Jetty Web Server provides an HTTP server and Servlet\n"
 "container capable of serving static and dynamic content either from a standalone\n"
 "or embedded instantiation.  This package provides the JMX management."
 msgstr ""
 
-#: gnu/packages/web.scm:5950
+#: gnu/packages/web.scm:6896
 msgid "Core jetty server artifact"
 msgstr ""
 
-#: gnu/packages/web.scm:5951
+#: gnu/packages/web.scm:6897
 msgid ""
 "The Jetty Web Server provides an HTTP server and Servlet\n"
 "container capable of serving static and dynamic content either from a standalone\n"
@@ -21984,11 +29173,11 @@ msgid ""
 "artifact."
 msgstr ""
 
-#: gnu/packages/web.scm:5995
+#: gnu/packages/web.scm:6941
 msgid "Jetty security infrastructure"
 msgstr "Infraestructura segura Jetty"
 
-#: gnu/packages/web.scm:5996
+#: gnu/packages/web.scm:6942
 msgid ""
 "The Jetty Web Server provides an HTTP server and Servlet\n"
 "container capable of serving static and dynamic content either from a standalone\n"
@@ -21996,11 +29185,11 @@ msgid ""
 "infrastructure"
 msgstr ""
 
-#: gnu/packages/web.scm:6039
+#: gnu/packages/web.scm:6985
 msgid "Jetty Servlet Container"
 msgstr "Contenedor Servicios Jetty"
 
-#: gnu/packages/web.scm:6040
+#: gnu/packages/web.scm:6986
 msgid ""
 "The Jetty Web Server provides an HTTP server and Servlet\n"
 "container capable of serving static and dynamic content either from a standalone\n"
@@ -22008,24 +29197,35 @@ msgid ""
 "container."
 msgstr ""
 
-#: gnu/packages/web.scm:6204
+#: gnu/packages/web.scm:7152
 #, fuzzy
-#| msgid "Perl HTML parser class"
 msgid "HTML parser"
 msgstr "Clase interpretada HTML en Perl"
 
-#: gnu/packages/web.scm:6205
+#: gnu/packages/web.scm:7153
 msgid ""
 "Jsoup is a Java library for working with real-world HTML.  It\n"
 "provides a very convenient API for extracting and manipulating data, using the\n"
 "best of DOM, CSS, and jQuery-like methods."
 msgstr ""
 
-#: gnu/packages/web.scm:6226
+#: gnu/packages/web.scm:7181
+msgid "Lightweight client-side OAuth library for Java"
+msgstr ""
+
+#: gnu/packages/web.scm:7182
+msgid ""
+"Signpost is the easy and intuitive solution for signing\n"
+"HTTP messages on the Java platform in conformance with the OAuth Core 1.0a\n"
+"standard.  Signpost follows a modular and flexible design, allowing you to\n"
+"combine it with different HTTP messaging layers."
+msgstr ""
+
+#: gnu/packages/web.scm:7204
 msgid "Validate HTML"
 msgstr "Validar HTML"
 
-#: gnu/packages/web.scm:6227
+#: gnu/packages/web.scm:7205
 msgid ""
 "Tidyp is a program that can validate your HTML, as well as\n"
 "modify it to be more clean and standard.  tidyp does not validate HTML 5.\n"
@@ -22035,22 +29235,22 @@ msgid ""
 "based on this library, allowing Perl programmers to easily validate HTML."
 msgstr ""
 
-#: gnu/packages/web.scm:6268
+#: gnu/packages/web.scm:7246
 msgid "(X)HTML validation in a Perl object"
 msgstr "Validación (X)HTML dentro de objeto Perl"
 
-#: gnu/packages/web.scm:6269
+#: gnu/packages/web.scm:7247
 msgid ""
 "@code{HTML::Tidy} is an HTML checker in a handy dandy\n"
 "object.  It's meant as a replacement for @code{HTML::Lint}, which is written\n"
 "in Perl but is not nearly as capable as @code{HTML::Tidy}."
 msgstr ""
 
-#: gnu/packages/web.scm:6296
+#: gnu/packages/web.scm:7274
 msgid "Small Gopher server"
 msgstr ""
 
-#: gnu/packages/web.scm:6298
+#: gnu/packages/web.scm:7276
 msgid ""
 "Geomyidae is a server for distributed hypertext protocol Gopher.  Its\n"
 "features include:\n"
@@ -22064,24 +29264,23 @@ msgid ""
 "@end enumerate\n"
 msgstr ""
 
-#: gnu/packages/web.scm:6346
+#: gnu/packages/web.scm:7323
 #, fuzzy
-#| msgid "Random password generator"
 msgid "Random avatar generator"
 msgstr "Generador de contraseñas aleatorias"
 
-#: gnu/packages/web.scm:6347
+#: gnu/packages/web.scm:7324
 msgid ""
 "Cat avatar generator is a generator of cat pictures optimised\n"
 "to generate random avatars, or defined avatar from a \"seed\".  This is a\n"
 "derivation by David Revoy from the original MonsterID by Andreas Gohr."
 msgstr ""
 
-#: gnu/packages/web.scm:6413
+#: gnu/packages/web.scm:7392
 msgid "HTTP/2 protocol client, proxy, server, and library"
 msgstr ""
 
-#: gnu/packages/web.scm:6415
+#: gnu/packages/web.scm:7394
 msgid ""
 "nghttp2 implements the Hypertext Transfer Protocol, version\n"
 "2 (@dfn{HTTP/2}).\n"
@@ -22097,7 +29296,7 @@ msgid ""
 "@item @command{nghttpx}, a fast, multi-threaded HTTP/2 reverse proxy that can be\n"
 "deployed in front of existing web servers that don't support HTTP/2.\n"
 "Both @command{nghttpd} and @command{nghttpx} can fall back to HTTP/1.1 for\n"
-"backwards compatibilty with clients that don't speak HTTP/2.\n"
+"backwards compatibility with clients that don't speak HTTP/2.\n"
 "@item @command{h2load} for benchmarking (only!) your own HTTP/2 servers.\n"
 "@item HTTP/2 uses a header compression method called @dfn{HPACK}.\n"
 "nghttp2 provides a HPACK encoder and decoder as part of its public API.\n"
@@ -22107,35 +29306,136 @@ msgid ""
 "@end itemize\n"
 msgstr ""
 
-#: gnu/packages/web.scm:6515
+#: gnu/packages/web.scm:7509
 msgid "Web interface for cluster deployments of Guix"
 msgstr ""
 
-#: gnu/packages/web.scm:6516
+#: gnu/packages/web.scm:7510
 msgid ""
 "Hpcguix-web provides a web interface to the list of packages\n"
 "provided by Guix.  The list of packages is searchable and provides\n"
 "instructions on how to use Guix in a shared HPC environment."
 msgstr ""
 
-#: gnu/packages/web.scm:6537
+#: gnu/packages/web.scm:7531
 msgid "Easy-to-use offline browser utility"
 msgstr ""
 
-#: gnu/packages/web.scm:6538
+#: gnu/packages/web.scm:7532
 msgid ""
 "HTTrack allows you to download a World Wide Web site from\n"
 "the Internet to a local directory, building recursively all directories,\n"
 "getting HTML, images, and other files from the server to your computer.\n"
 "\n"
 "HTTrack arranges the original site's relative link-structure.  Simply open\n"
-"a page of the ``mirrored'' website in your browser, and you can browse the\n"
+"a page of the @emph{mirrored} website in your browser, and you can browse the\n"
 "site from link to link, as if you were viewing it online.  HTTrack can also\n"
 "update an existing mirrored site, and resume interrupted downloads.\n"
 "\n"
 "HTTrack is fully configurable, and has an integrated help system."
 msgstr ""
 
+#: gnu/packages/web.scm:7566
+msgid "Bookmark manager"
+msgstr ""
+
+#: gnu/packages/web.scm:7568
+msgid ""
+"buku is a powerful bookmark manager written in Python3 and SQLite3.\n"
+"@command{buku} can auto-import bookmarks from your browser and present them\n"
+"in an interactive command-line interface that lets you compose and update\n"
+"bookmarks directly.  It can also present them in a web interface with\n"
+"@command{bukuserver}."
+msgstr ""
+
+#: gnu/packages/web.scm:7587
+msgid "Anonymize IP addresses in log files"
+msgstr ""
+
+#: gnu/packages/web.scm:7589
+msgid ""
+"Anonip masks the last bits of IPv4 and IPv6 addresses in log files.\n"
+"That way most of the relevant information is preserved, while the IP address\n"
+"does not match a particular individuum anymore.\n"
+"\n"
+"Depending on your Web server, the log entries may be piped to Anonip directly\n"
+"or via a FIFO (named pipe).  Thus the unmasked IP addresses will never be\n"
+"written to any file.\n"
+"\n"
+"It's also possible to rewrite existing log files.\n"
+"\n"
+"Anonip can also be uses as a Python module in your own Python application."
+msgstr ""
+
+#: gnu/packages/web.scm:7623
+msgid "Lightweight asynchronous task execution service"
+msgstr ""
+
+#: gnu/packages/web.scm:7624
+msgid ""
+"Poussetaches (which literally means \"push tasks\" in\n"
+"French) is a lightweight asynchronous task execution service that aims to\n"
+"replace Celery and RabbitMQ for small Python applications.\n"
+"\n"
+"The app posts base64-encoded payload to poussetaches and specifies the\n"
+"endpoint that will be used to trigger the task.  Poussetaches makes HTTP\n"
+"requests with the registered payload until the right status code is\n"
+"returned."
+msgstr ""
+
+#: gnu/packages/web.scm:7648
+msgid "Simple non-validating CSS1 and HTML parser for C++"
+msgstr ""
+
+#: gnu/packages/web.scm:7649
+msgid ""
+"htmlcxx is a simple non-validating CSS1 and HTML parser for\n"
+"C++.  Although there are several other HTML parsers available, htmlcxx has some\n"
+"characteristics that make it unique:\n"
+"@itemize\n"
+"@item STL like navigation of DOM tree, using excelent's tree.hh library from\n"
+"Kasper Peeters\n"
+"@item It is possible to reproduce exactly, character by character, the original\n"
+"document from the parse tree\n"
+"@item Bundled CSS parser\n"
+"@item Optional parsing of attributes\n"
+"@item C++ code that looks like C++ (not so true anymore)\n"
+"@item Offsets of tags/elements in the original document are stored in the nodes\n"
+"of the DOM tree\n"
+"@end itemize"
+msgstr ""
+
+#: gnu/packages/web.scm:7692
+#, fuzzy
+msgid "HTML/CSS user interface library"
+msgstr "Biblioteca interpretando HTML5"
+
+#: gnu/packages/web.scm:7693
+msgid ""
+"libRocket is a C++ user interface package based on the HTML\n"
+"and CSS standards.  libRocket uses the open standards XHTML1.0 and\n"
+"CSS2.0 (while borrowing features from HTML5 and CSS3), and extends them with\n"
+"features suited towards real-time applications.  It is designed as a complete\n"
+"solution for any project's interface needs:\n"
+"\n"
+"@itemize\n"
+"@item Dynamic layout system.\n"
+"@item Efficient application-wide styling, with a custom-built templating engine.\n"
+"@item Fully featured control set: buttons, sliders, drop-downs, etc.\n"
+"@item Runtime visual debugging suite.\n"
+"@item Easily integrated and extensible with Python or Lua scripting.\n"
+"@end itemize\n"
+msgstr ""
+
+#: gnu/packages/web.scm:7744
+#, fuzzy
+msgid "Simple Gemini protocol server"
+msgstr "Terminal controladora única"
+
+#: gnu/packages/web.scm:7745
+msgid "gmnisrv is a simple Gemini protocol server written in C."
+msgstr ""
+
 #: gnu/packages/wordnet.scm:92
 msgid "Lexical database for the English language"
 msgstr ""
@@ -22152,24 +29452,24 @@ msgid ""
 "language processing."
 msgstr ""
 
-#: gnu/packages/xiph.scm:70
+#: gnu/packages/xiph.scm:75
 msgid "Library for manipulating the ogg multimedia format"
 msgstr ""
 
-#: gnu/packages/xiph.scm:72
+#: gnu/packages/xiph.scm:77
 msgid ""
-"The libogg library allows to manipulate the ogg multimedia container\n"
+"The libogg library manipulates the ogg multimedia container\n"
 "format, which encapsulates raw compressed data and allows the interleaving of\n"
 "audio and video data.  In addition to encapsulation and interleaving of\n"
 "multiple data streams, ogg provides packet framing, error detection, and\n"
 "periodic timestamps for seeking."
 msgstr ""
 
-#: gnu/packages/xiph.scm:96
+#: gnu/packages/xiph.scm:102
 msgid "Library implementing the vorbis audio format"
 msgstr ""
 
-#: gnu/packages/xiph.scm:98
+#: gnu/packages/xiph.scm:104
 msgid ""
 "The libvorbis library implements the ogg vorbis audio format,\n"
 "a fully open, non-proprietary, patent-and-royalty-free, general-purpose\n"
@@ -22178,22 +29478,22 @@ msgid ""
 "128 kbps/channel."
 msgstr ""
 
-#: gnu/packages/xiph.scm:123
+#: gnu/packages/xiph.scm:131
 msgid "Library implementing the Theora video format"
 msgstr ""
 
-#: gnu/packages/xiph.scm:125
+#: gnu/packages/xiph.scm:133
 msgid ""
 "The libtheora library implements the ogg theora video format,\n"
 "a fully open, non-proprietary, patent-and-royalty-free, general-purpose\n"
 "compressed video format."
 msgstr ""
 
-#: gnu/packages/xiph.scm:150
+#: gnu/packages/xiph.scm:160
 msgid "Library for patent-free audio compression format"
 msgstr ""
 
-#: gnu/packages/xiph.scm:152
+#: gnu/packages/xiph.scm:162
 msgid ""
 "GNU Speex is a patent-free audio compression codec specially designed\n"
 "for speech.  It is well-adapted to internet applications, such as VoIP.  It\n"
@@ -22201,21 +29501,21 @@ msgid ""
 "stereo encoding, and voice activity detection."
 msgstr ""
 
-#: gnu/packages/xiph.scm:178
+#: gnu/packages/xiph.scm:189
 msgid "Speex processing library"
 msgstr "Biblioteca de procesamiento Speex"
 
-#: gnu/packages/xiph.scm:180
+#: gnu/packages/xiph.scm:191
 msgid ""
 "SpeexDSP is a @dfn{DSP} (Digital Signal Processing) library based on\n"
 "work from the @code{speex} codec."
 msgstr ""
 
-#: gnu/packages/xiph.scm:207
+#: gnu/packages/xiph.scm:223
 msgid "Cross platform audio library"
 msgstr "Plataforma de biblioteca de sonido cruzada"
 
-#: gnu/packages/xiph.scm:209
+#: gnu/packages/xiph.scm:225
 msgid ""
 "Libao is a cross-platform audio library that allows programs to\n"
 "output audio using a simple API on a wide variety of platforms.\n"
@@ -22241,21 +29541,21 @@ msgid ""
 "@end enumerate\n"
 msgstr ""
 
-#: gnu/packages/xiph.scm:252
+#: gnu/packages/xiph.scm:268
 msgid "Free lossless audio codec"
 msgstr "Código de sonido sin pérdida libre"
 
-#: gnu/packages/xiph.scm:254
+#: gnu/packages/xiph.scm:270
 msgid ""
 "FLAC stands for Free Lossless Audio Codec, an audio format that is lossless,\n"
 "meaning that audio is compressed in FLAC without any loss in quality."
 msgstr ""
 
-#: gnu/packages/xiph.scm:288
+#: gnu/packages/xiph.scm:296
 msgid "Karaoke and text codec for embedding in ogg"
 msgstr "Karaoke y código textual para empotrar en ogg"
 
-#: gnu/packages/xiph.scm:290
+#: gnu/packages/xiph.scm:298
 msgid ""
 "Kate is an overlay codec, originally designed for karaoke and text,\n"
 "that can be multiplixed in Ogg.  Text and images can be carried by a Kate\n"
@@ -22270,11 +29570,11 @@ msgid ""
 "Kate stream."
 msgstr ""
 
-#: gnu/packages/xiph.scm:328
+#: gnu/packages/xiph.scm:336
 msgid "Ogg vorbis tools"
 msgstr "Herramientas Ogg Vorbis"
 
-#: gnu/packages/xiph.scm:330
+#: gnu/packages/xiph.scm:338
 msgid ""
 "Ogg vorbis is a non-proprietary, patent-and-royalty-free,\n"
 "general-purpose compressed audio format.\n"
@@ -22287,11 +29587,11 @@ msgid ""
 "         an ogg vorbis file."
 msgstr ""
 
-#: gnu/packages/xiph.scm:354 gnu/packages/xiph.scm:420
+#: gnu/packages/xiph.scm:364 gnu/packages/xiph.scm:432
 msgid "Versatile audio codec"
 msgstr "Código de sonido versátil"
 
-#: gnu/packages/xiph.scm:356
+#: gnu/packages/xiph.scm:366
 msgid ""
 "Opus is a totally open, royalty-free, highly versatile audio codec.  Opus\n"
 "is unmatched for interactive speech and music transmission over the Internet,\n"
@@ -22300,41 +29600,40 @@ msgid ""
 "incorporated technology from Skype's SILK codec and Xiph.Org's CELT codec."
 msgstr ""
 
-#: gnu/packages/xiph.scm:393
+#: gnu/packages/xiph.scm:403
 msgid "Command line utilities to encode, inspect, and decode .opus files"
 msgstr "Utilidades de línea de mandato para codificar, inspeccionar y decodificar ficheros .opus"
 
-#: gnu/packages/xiph.scm:394
+#: gnu/packages/xiph.scm:404
 msgid ""
 "Opus is a royalty-free, highly versatile audio codec.\n"
 "Opus-tools provide command line utilities for creating, inspecting and\n"
 "decoding .opus files."
 msgstr ""
 
-#: gnu/packages/xiph.scm:422
+#: gnu/packages/xiph.scm:434
 msgid ""
 "The opusfile library provides seeking, decode, and playback of Opus\n"
 "streams in the Ogg container (.opus files) including over http(s) on posix and\n"
 "windows systems."
 msgstr ""
 
-#: gnu/packages/xiph.scm:444
+#: gnu/packages/xiph.scm:456
 #, fuzzy
-#| msgid "Library for handling PNG files"
 msgid "Library for encoding Opus audio files and streams "
 msgstr "Biblioteca para manipulación de ficheros PNG"
 
-#: gnu/packages/xiph.scm:445
+#: gnu/packages/xiph.scm:457
 msgid ""
 "The libopusenc libraries provide a high-level API for\n"
 "encoding Opus files and streams."
 msgstr ""
 
-#: gnu/packages/xiph.scm:474
+#: gnu/packages/xiph.scm:486
 msgid "Streaming media server"
 msgstr "Medio por flujo del servidor"
 
-#: gnu/packages/xiph.scm:475
+#: gnu/packages/xiph.scm:487
 msgid ""
 "Icecast is a streaming media server which currently supports\n"
 "Ogg (Vorbis and Theora), Opus, WebM and MP3 audio streams.  It can be used to\n"
@@ -22342,106 +29641,112 @@ msgid ""
 "things in between."
 msgstr ""
 
-#: gnu/packages/xiph.scm:503
+#: gnu/packages/xiph.scm:515
 msgid "Audio streaming library for icecast encoders"
 msgstr ""
 
-#: gnu/packages/xiph.scm:505
+#: gnu/packages/xiph.scm:517
 msgid ""
 "Libshout is a library for communicating with and sending data to an\n"
 "icecast server.  It handles the socket connection, the timing of the data,\n"
 "and prevents bad data from getting to the icecast server."
 msgstr ""
 
-#: gnu/services/base.scm:298
-msgid ""
-"The @code{user-processes} service is responsible for\n"
-"terminating all the processes so that the root file system can be re-mounted\n"
-"read-only, just before rebooting/halting.  Processes still running after a few\n"
-"seconds after @code{SIGTERM} has been sent are terminated with\n"
-"@code{SIGKILL}."
-msgstr ""
-
-#: gnu/services/base.scm:350
+#: gnu/services/base.scm:238
 msgid ""
 "Populate the @file{/etc/fstab} based on the given file\n"
 "system objects."
 msgstr ""
+"Genera el fichero @file{/etc/fstab} en base a los objetos de sistema\n"
+"de ficheros proporcionados."
 
-#: gnu/services/base.scm:527
+#: gnu/services/base.scm:432
 msgid ""
 "Provide Shepherd services to mount and unmount the given\n"
 "file systems, as well as corresponding @file{/etc/fstab} entries."
 msgstr ""
+"Porporciona servicios de Shepherd para montar y desmontar los sistemas\n"
+"de ficheros proporcionados, así como genera las correspondientes\n"
+"entradas en @file{/etc/fstab}."
 
-#: gnu/services/base.scm:617
+#: gnu/services/base.scm:530
 msgid ""
 "Seed the @file{/dev/urandom} pseudo-random number\n"
 "generator (RNG) with the value recorded when the system was last shut\n"
 "down."
 msgstr ""
 
-#: gnu/services/base.scm:783
+#: gnu/services/base.scm:696
 msgid ""
 "Install the given fonts on the specified ttys (fonts are per\n"
 "virtual console on GNU/Linux).  The value of this service is a list of\n"
-"tty/font pairs like:\n"
+"tty/font pairs.  The font can be the name of a font provided by the @code{kbd}\n"
+"package or any valid argument to @command{setfont}, as in this example:\n"
 "\n"
 "@example\n"
-"'((\"tty1\" . \"LatGrkCyr-8x16\"))\n"
+"`((\"tty1\" . \"LatGrkCyr-8x16\")\n"
+"  (\"tty2\" . ,(file-append\n"
+"                 font-tamzen\n"
+"                 \"/share/kbd/consolefonts/TamzenForPowerline10x20.psf\"))\n"
+"  (\"tty3\" . ,(file-append\n"
+"                 font-terminus\n"
+"                 \"/share/consolefonts/ter-132n\"))) ; for HDPI\n"
 "@end example\n"
 msgstr ""
 
-#: gnu/services/base.scm:827
+#: gnu/services/base.scm:748
 msgid ""
 "Provide a console log-in service as specified by its\n"
 "configuration value, a @code{login-configuration} object."
 msgstr ""
 
-#: gnu/services/base.scm:1090
+#: gnu/services/base.scm:1016
 msgid ""
 "Provide console login using the @command{agetty}\n"
 "program."
 msgstr ""
 
-#: gnu/services/base.scm:1151
+#: gnu/services/base.scm:1077
 msgid ""
 "Provide console login using the @command{mingetty}\n"
 "program."
 msgstr ""
 
-#: gnu/services/base.scm:1368
+#: gnu/services/base.scm:1294
 msgid ""
 "Runs libc's @dfn{name service cache daemon} (nscd) with the\n"
 "given configuration---an @code{<nscd-configuration>} object.  @xref{Name\n"
 "Service Switch}, for an example."
 msgstr ""
 
-#: gnu/services/base.scm:1468
+#: gnu/services/base.scm:1401
 msgid ""
 "Install the specified resource usage limits by populating\n"
 "@file{/etc/security/limits.conf} and using the @code{pam_limits}\n"
 "authentication module."
 msgstr ""
 
-#: gnu/services/base.scm:1714
+#: gnu/services/base.scm:1716
 msgid "Run the build daemon of GNU@tie{}Guix, aka. @command{guix-daemon}."
-msgstr ""
+msgstr "Ejecuta el daemon de construcción de GNU@tie{}Guix, también conocido como @command{guix-daemon}."
 
-#: gnu/services/base.scm:1816
+#: gnu/services/base.scm:1861
 msgid ""
 "Add a Shepherd service running @command{guix publish}, a\n"
 "command that allows you to share pre-built binaries with others over HTTP."
 msgstr ""
+"Añade a Shepherd un servicio que ejecuta @command{guix publish}, una\n"
+"orden que le permite compartir binarios preconstruidos a través de\n"
+"HTTP."
 
-#: gnu/services/base.scm:2026
+#: gnu/services/base.scm:2080
 msgid ""
 "Run @command{udev}, which populates the @file{/dev}\n"
 "directory dynamically.  Get extra rules from the packages listed in the\n"
 "@code{rules} field of its value, @code{udev-configuration} object."
 msgstr ""
 
-#: gnu/services/base.scm:2108
+#: gnu/services/base.scm:2212
 msgid ""
 "Run GPM, the general-purpose mouse daemon, with the given\n"
 "command-line options.  GPM allows users to use the mouse in the console,\n"
@@ -22449,7 +29754,7 @@ msgid ""
 "@code{ps2} protocol, which works for both USB and PS/2 mice."
 msgstr ""
 
-#: gnu/services/base.scm:2292
+#: gnu/services/base.scm:2396
 msgid ""
 "Turn up the specified network interfaces upon startup,\n"
 "with the given IP address, gateway, netmask, and so on.  The value for\n"
@@ -22457,94 +29762,131 @@ msgid ""
 "network interface."
 msgstr ""
 
-#: gnu/services/certbot.scm:168
+#: gnu/services/certbot.scm:202
 msgid ""
 "Automatically renew @url{https://letsencrypt.org, Let's\n"
 "Encrypt} HTTPS certificates by adjusting the nginx web server configuration\n"
 "and periodically invoking @command{certbot}."
 msgstr ""
 
-#: gnu/services/networking.scm:374
+#: gnu/services/networking.scm:341
+msgid ""
+"Run a DHCP (Dynamic Host Configuration Protocol) daemon.  The\n"
+"daemon is responsible for allocating IP addresses to its client."
+msgstr ""
+
+#: gnu/services/networking.scm:496
 msgid ""
 "Run the @command{ntpd}, the Network Time Protocol (NTP)\n"
 "daemon of the @uref{http://www.ntp.org, Network Time Foundation}.  The daemon\n"
 "will keep the system clock synchronized with that of the given servers."
 msgstr ""
 
-#: gnu/services/networking.scm:488
+#: gnu/services/networking.scm:626
 msgid ""
 "Run the @command{ntpd}, the Network Time Protocol (NTP)\n"
 "daemon, as implemented by @uref{http://www.openntpd.org, OpenNTPD}.  The\n"
 "daemon will keep the system clock synchronized with that of the given servers."
 msgstr ""
 
-#: gnu/services/networking.scm:576
+#: gnu/services/networking.scm:714
 msgid ""
 "Start @command{inetd}, the @dfn{Internet superserver}.  It is responsible\n"
 "for listening on Internet sockets and spawning the corresponding services on\n"
 "demand."
 msgstr ""
 
-#: gnu/services/networking.scm:755
+#: gnu/services/networking.scm:893
 msgid ""
 "Run the @uref{https://torproject.org, Tor} anonymous\n"
 "networking daemon."
 msgstr ""
 
-#: gnu/services/networking.scm:779
+#: gnu/services/networking.scm:917
 msgid "Define a new Tor @dfn{hidden service}."
 msgstr "Define un Tor nuevo @dfn{servicio oculto}."
 
-#: gnu/services/networking.scm:847
+#: gnu/services/networking.scm:985
 msgid ""
 "Run @url{https://launchpad.net/wicd,Wicd}, a network\n"
 "management daemon that aims to simplify wired and wireless networking."
 msgstr ""
 
-#: gnu/services/networking.scm:947
+#: gnu/services/networking.scm:1126
 msgid ""
 "Run @uref{https://wiki.gnome.org/Projects/NetworkManager,\n"
 "NetworkManager}, a network management daemon that aims to simplify wired and\n"
 "wireless networking."
 msgstr ""
 
-#: gnu/services/networking.scm:1015
+#: gnu/services/networking.scm:1195
 msgid ""
 "Run @url{https://01.org/connman,Connman},\n"
 "a network connection manager."
 msgstr ""
 
-#: gnu/services/networking.scm:1038
+#: gnu/services/networking.scm:1218
 msgid ""
 "Run @uref{https://wiki.gnome.org/Projects/ModemManager,\n"
 "ModemManager}, a modem management daemon that aims to simplify dialup\n"
 "networking."
 msgstr ""
 
-#: gnu/services/networking.scm:1101
+#: gnu/services/networking.scm:1308
+msgid ""
+"Run @uref{http://www.draisberghof.de/usb_modeswitch/,\n"
+"USB_ModeSwitch}, a mode switching tool for controlling USB devices with\n"
+"multiple @dfn{modes}.  When plugged in for the first time many USB\n"
+"devices (primarily high-speed WAN modems) act like a flash storage containing\n"
+"installers for Windows drivers.  USB_ModeSwitch replays the sequence the\n"
+"Windows drivers would send to switch their mode from storage to modem (or\n"
+"whatever the thing is supposed to do)."
+msgstr ""
+
+#: gnu/services/networking.scm:1379
 msgid ""
 "Run the WPA Supplicant daemon, a service that\n"
 "implements authentication, key negotiation and more for wireless networks."
 msgstr ""
 
-#: gnu/services/networking.scm:1163
+#: gnu/services/networking.scm:1440
+msgid ""
+"Run the @uref{https://w1.fi/hostapd/, hostapd} daemon for Wi-Fi access\n"
+"points and authentication servers."
+msgstr ""
+
+#: gnu/services/networking.scm:1474
+msgid "Run hostapd to simulate WiFi connectivity."
+msgstr ""
+
+#: gnu/services/networking.scm:1534
 msgid ""
 "Run @uref{http://www.openvswitch.org, Open vSwitch}, a multilayer virtual\n"
 "switch designed to enable massive network automation through programmatic\n"
 "extension."
 msgstr ""
 
-#: gnu/services/networking.scm:1209
+#: gnu/services/networking.scm:1580
 msgid "Run @command{iptables-restore}, setting up the specified rules."
 msgstr ""
 
+#: gnu/services/networking.scm:1649
+msgid "Run @command{nft}, setting up the specified ruleset."
+msgstr ""
+
+#: gnu/services/networking.scm:1750
+msgid ""
+"Run @url{https://pagekite.net/,PageKite}, a tunneling solution to make\n"
+"local servers publicly accessible on the web, even behind NATs and firewalls."
+msgstr ""
+
 #: gnu/services/version-control.scm:160
 msgid ""
-"Expose Git respositories over the insecure @code{git://} TCP-based\n"
+"Expose Git repositories over the insecure @code{git://} TCP-based\n"
 "protocol."
 msgstr ""
 
-#: gnu/services/version-control.scm:374
+#: gnu/services/version-control.scm:379
 msgid ""
 "Setup @command{gitolite}, a Git hosting tool providing access over SSH..\n"
 "By default, the @code{git} user is used, but this is configurable.\n"
@@ -22552,127 +29894,11296 @@ msgid ""
 "provide a web interface to view selected repositories."
 msgstr ""
 
-#~ msgid "Web server interface for R"
+#~ msgid "Portable Braille Library"
+#~ msgstr "Biblioteca Braille portable"
+
+#~ msgid "Braille TTY"
+#~ msgstr "Braille TTY"
+
+#, fuzzy
+#~ msgid "Command line utility for PCsensor foot switch"
+#~ msgstr "Utilidad de línea de mandato para buscar texto en ficheros PDF"
+
+#, fuzzy
+#~ msgid "Standard login and process accounting utilities"
+#~ msgstr "Utilidad de sonido procesado"
+
+#, fuzzy
+#~ msgid "Library and tools for manipulating access control lists"
+#~ msgstr "Biblioteca C para manipulador de ficheros tar POSIX"
+
+#, fuzzy
+#~ msgid "Library and tools for manipulating access control lists."
+#~ msgstr "Biblioteca C para manipulador de ficheros tar POSIX"
+
+#, fuzzy
+#~ msgid "File and directory integrity checker"
+#~ msgstr "Quita ficheros y directorios en Perl"
+
+#~ msgid "System service manager"
+#~ msgstr "Gestor de servicios del sistema"
+
+#~ msgid ""
+#~ "The GNU Shepherd is a daemon-managing daemon, meaning that it supervises\n"
+#~ "the execution of system services, replacing similar functionality found in\n"
+#~ "typical init systems.  It provides dependency-handling through a convenient\n"
+#~ "interface and is based on GNU Guile."
+#~ msgstr ""
+#~ "GNU Shepherd es un daemon de gestión de otros daemon, lo que significa\n"
+#~ "que supervisa la ejecución de servicios del sistema, sustituyendo\n"
+#~ "funcionalidades similares encontradas en sistemas\n"
+#~ "@command{init}. Proporciona gestión sobre las dependencias a través de\n"
+#~ "una adecuada interfaz y se basa en GNU Guile."
+
+#, fuzzy
+#~ msgid "Set of utilities for cloud computing environments"
+#~ msgstr "Colección de utilidades para el núcleo Linux"
+
+#, fuzzy
+#~ msgid "Tools for managing UNIX style services"
+#~ msgstr "Servicio de gestión de color"
+
+#, fuzzy
+#~ msgid "Read and write data over TCP/IP"
+#~ msgstr "Fichero almacén de lectura y escritura OLE"
+
+#, fuzzy
+#~ msgid "Command-line IP subnet calculator"
+#~ msgstr "Cliente WebDAV por mandato lineal"
+
+#, fuzzy
+#~ msgid "Network packet analyzer"
+#~ msgstr "Análisis del tráfico de red"
+
+#, fuzzy
+#~ msgid "Secure concurrent multi-server terminal control"
+#~ msgstr "Terminal controladora única"
+
+#, fuzzy
+#~ msgid "Perl extension for renaming multiple files"
+#~ msgstr "Rutinas de conversión de fecha Perl"
+
+#, fuzzy
+#~ msgid "Run commands as root"
+#~ msgstr "Ejecuta una orden sobre una secuencia de revisiones"
+
+#, fuzzy
+#~ msgid "Graphical user interface for WPA supplicant"
+#~ msgstr "Interfaz gráfico del usuario para FluidSynth"
+
+#, fuzzy
+#~ msgid "Read hardware information from the BIOS"
+#~ msgstr "Información listada de hardware"
+
+#, fuzzy
+#~ msgid "Recursively list the contents of a directory"
+#~ msgstr "Copia recursivamente de ficheros y directorios"
+
+#, fuzzy
+#~ msgid "Library for more easily working with POSIX capabilities"
+#~ msgstr "Biblioteca para trabajar con capacidades POSIX"
+
+#, fuzzy
+#~ msgid "Radically simple IT automation"
+#~ msgstr "Léxicamente desactiva autovivificación"
+
+#, fuzzy
+#~ msgid "Ansible documentation for Emacs"
+#~ msgstr "El formato de documentación GNU"
+
+#, fuzzy
+#~ msgid "Shell extension for file system navigation"
+#~ msgstr "Extensión de interfaz Perl para libcurl"
+
+#, fuzzy
+#~ msgid "Quick access to files and directories for shells"
+#~ msgstr "Quita ficheros y directorios en Perl"
+
+#, fuzzy
+#~ msgid "Versatile resource statistics tool"
+#~ msgstr "Visualizar estadísticas curl"
+
+#, fuzzy
+#~ msgid "Lightweight battery icon for the system tray"
+#~ msgstr "Interfaz ligero para memoria compartida"
+
+#, fuzzy
+#~ msgid "Hardware management tools for Allwinner computers"
+#~ msgstr "Herramienta de gestor de energía para Linux"
+
+#, fuzzy
+#~ msgid "System information script"
+#~ msgstr "BD de información del sistema operativo"
+
+#, fuzzy
+#~ msgid "This package provides a tiny system info utility."
+#~ msgstr ""
+#~ "Este paquete proporciona un diccionario para la biblioteca de\n"
+#~ "comprobación ortográfica Hunspell."
+
+#, fuzzy
+#~ msgid "System information tool"
+#~ msgstr "Herramienta de administración de CUPS"
+
+#, fuzzy
+#~ msgid "Terminal file browser"
+#~ msgstr "Emulador de terminal"
+
+#, fuzzy
+#~ msgid "Full-featured system information script"
+#~ msgstr "BD de información del sistema operativo"
+
+#, fuzzy
+#~ msgid "Python udev binding"
+#~ msgstr "Enlaces Python para GTK+"
+
+#, fuzzy
+#~ msgid "Asynchronous DNS client library and utilities"
+#~ msgstr "Biblioteca XMPP asíncrona)"
+
+#, fuzzy
+#~ msgid "The Iowa Agda Library"
+#~ msgstr "La biblioteca GNU C"
+
+#, fuzzy
+#~ msgid "Library for reading and writing Data Matrix 2D barcodes"
+#~ msgstr "Biblioteca para carga y contorno de complemento IU LV2"
+
+#, fuzzy
+#~ msgid "QR Code generator library"
+#~ msgstr "Biblioteca de Categoría Textual"
+
+#, fuzzy
+#~ msgid "Python interface for fplll"
+#~ msgstr "Caché de interfaz para Perl"
+
+#, fuzzy
+#~ msgid "Computer algebra system"
+#~ msgstr "Biblioteca de visión de computación"
+
+#, fuzzy
+#~ msgid "Fast library for number theory"
+#~ msgstr "Biblioteca de imagen para Extempore"
+
+#, fuzzy
+#~ msgid "C++ library for number theory"
+#~ msgstr "Biblioteca de imagen para Extempore"
+
+#, fuzzy
+#~ msgid "Arbitrary precision numeric processing language"
+#~ msgstr "Lenguaje de procesamiento de señales"
+
+#, fuzzy
+#~ msgid "Fast symbolic manipulation library"
+#~ msgstr "Biblioteca interpretando CSS2 y manipulación"
+
+#, fuzzy
+#~ msgid "C++ template library for linear algebra"
+#~ msgstr "Biblioteca de utilidades para el software linphone"
+
+#, fuzzy
+#~ msgid "Logging library from the Android platform."
+#~ msgstr "Interpreta biblioteca para texto en formato Pod"
+
+#, fuzzy
+#~ msgid "Android platform base library"
+#~ msgstr "Plataforma de biblioteca de sonido cruzada"
+
+#, fuzzy
+#~ msgid "Android platform c utils library"
+#~ msgstr "Plataforma de biblioteca de sonido cruzada"
+
+#, fuzzy
+#~ msgid "Android platform sparse library"
+#~ msgstr "Plataforma de biblioteca de sonido cruzada"
+
+#, fuzzy
+#~ msgid "Android platform ZIP library"
+#~ msgstr "Plataforma de biblioteca de sonido cruzada"
+
+#, fuzzy
+#~ msgid "Android utility library"
+#~ msgstr "Biblioteca utilitaria para Netlink"
+
+#, fuzzy
+#~ msgid "Helps to manage many Git repositories."
+#~ msgstr "Web frontal para repositorios git"
+
+#, fuzzy
+#~ msgid "Tool for manipulating Android Boot Images"
+#~ msgstr "Herramientas para manipulación de imágenes"
+
+#, fuzzy
+#~ msgid "Extended C++ template library"
+#~ msgstr "Módulo jugador extendido"
+
+#~ msgid "Japanese input method"
+#~ msgstr "Método de entrada para japonés"
+
+#~ msgid "Antivirus engine"
+#~ msgstr "Motor anti-virus"
+
+#~ msgid "APL interpreter"
+#~ msgstr "Intérprete APL"
+
+#, fuzzy
+#~ msgid "The Apache Portable Runtime Library"
+#~ msgstr "Biblioteca de sistema de acceso portable"
+
+#, fuzzy
+#~ msgid "Library for generating assembly code at runtime"
+#~ msgstr "Biblioteca para generación de ficheros PDF"
+
+#, fuzzy
+#~ msgid "Just-In-Time compilation library"
+#~ msgstr "Biblioteca interpretando CSS2 y manipulación"
+
+#, fuzzy
+#~ msgid "Library for reading and writing FITS files"
+#~ msgstr "Biblioteca para generación de ficheros PDF"
+
+#, fuzzy
+#~ msgid "Satellite tracking and orbit prediction application"
+#~ msgstr "Entrada textual y aplicación de explorador IU"
+
+#, fuzzy
+#~ msgid "Library and tools for manipulating extended attributes"
+#~ msgstr "Biblioteca C para manipulador de ficheros tar POSIX"
+
+#, fuzzy
+#~ msgid "Portable library and tools for manipulating extended attributes."
+#~ msgstr "Biblioteca C para manipulador de ficheros tar POSIX"
+
+#, fuzzy
+#~ msgid "Edit configuration files programmatically"
+#~ msgstr "Biblioteca interpreta fichero de configuración"
+
+#, fuzzy
+#~ msgid "Automated program generator"
+#~ msgstr "Generación accesor automático"
+
+#, fuzzy
+#~ msgid "Create source code configuration scripts"
+#~ msgstr "Obtiene directorios de ficheros de configuración"
+
+#, fuzzy
+#~ msgid "Implementation of mDNS/DNS-SD protocols"
+#~ msgstr "Implementación Perl de protocolo PSYC"
+
+#, fuzzy
+#~ msgid "The AVR C Library"
+#~ msgstr "La biblioteca GNU C"
+
+#, fuzzy
+#~ msgid "Bash completions for common commands"
+#~ msgstr "Complementaciones de pez para Guix"
+
+#, fuzzy
+#~ msgid "W3C SVG 1.0 interface"
+#~ msgstr "Interfaz BDI MySQL"
+
+#, fuzzy
+#~ msgid "This package provides a SVG 1.0 interface."
+#~ msgstr "Este módulo proporciona un interfaz Perlish para Amazon S3."
+
+#, fuzzy
+#~ msgid "W3C SVG interface"
+#~ msgstr "Interfaz BDI MySQL"
+
+#, fuzzy
+#~ msgid "This package provides a SVG interface."
+#~ msgstr "Este módulo proporciona un interfaz Perlish para Amazon S3."
+
+#, fuzzy
+#~ msgid "Full genome sequences for Homo sapiens"
+#~ msgstr "Secuencias de título para OpenRCT2"
+
+#, fuzzy
+#~ msgid "Full genome sequences for Mouse"
+#~ msgstr "Secuencias de título para OpenRCT2"
+
+#, fuzzy
+#~ msgid ""
+#~ "This package provides R environments for the annotation of\n"
+#~ "microarrays."
+#~ msgstr ""
+#~ "Este paquete proporciona un diccionario para la biblioteca de\n"
+#~ "comprobación ortográfica Hunspell."
+
+#, fuzzy
+#~ msgid "This package provides functions for plotting genomic data."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "Handle graph data structures in R"
+#~ msgstr "Estructuras y algoritmos de datos gráficos"
+
+#, fuzzy
+#~ msgid "Cluster and tree conversion"
+#~ msgstr "Rutinas de conversión de fecha Perl"
+
+#, fuzzy
+#~ msgid "Motif identification and validation"
+#~ msgstr "Manipulación especificante de ruta"
+
+#, fuzzy
+#~ msgid "Wrench normalization for sparse count data"
+#~ msgstr "Formato de normalización Unicode"
+
+#, fuzzy
+#~ msgid "Bioconductor web interface"
+#~ msgstr "Interfaz PostgreSQL DBI"
+
+#, fuzzy
+#~ msgid "R bowtie wrapper"
+#~ msgstr "La cubierta del enlazador"
+
+#, fuzzy
+#~ msgid "Tools for randomization of bipartite graphs"
+#~ msgstr "Herramientas para manipulación de imágenes"
+
+#, fuzzy
+#~ msgid "Implementation of MultiDataSet and ResultSet"
+#~ msgstr "Implementación de Scheme y lenguajes relacionados"
+
+#, fuzzy
+#~ msgid "Utilities for flow cytometry"
+#~ msgstr "Clases utilidad para Jetty"
+
+#, fuzzy
+#~ msgid "Clustering algorithm"
+#~ msgstr "Línea Unicode dividiendo algoritmo"
+
+#, fuzzy
+#~ msgid "Basic structures for flow cytometry data"
+#~ msgstr "Construye estructuras desde datos CGI"
+
+#, fuzzy
+#~ msgid "Utilities for ROC curves"
+#~ msgstr "Utilidades para E/S interactiva"
+
+#, fuzzy
+#~ msgid "R support for SBML"
+#~ msgstr "Capacidad SSL para Net::SMTP"
+
+#, fuzzy
+#~ msgid "Hypergraph data structures"
+#~ msgstr "Compara datos Perl estructurados"
+
+#, fuzzy
+#~ msgid "This package provides functions for visualizing hypergraphs."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "Library for analyzing PacBio genomic sequences"
+#~ msgstr "Biblioteca para manipulación de ficheros de recursos icns Mac OS"
+
+#, fuzzy
+#~ msgid "Bioinformatics toolkit"
+#~ msgstr "Perfilando para Plantillas de Kit de Herramientas"
+
+#, fuzzy
+#~ msgid "Simplest possible FASTA parser"
+#~ msgstr "# prohibe el registro"
+
+#, fuzzy
+#~ msgid "C++ libraries for Bioinformatics"
+#~ msgstr "Bibliotecas C++ para complementos LV2"
+
+#, fuzzy
+#~ msgid "Bio++ population genetics library"
+#~ msgstr "Biblioteca de fichero de configuración C/C++"
+
+#, fuzzy
+#~ msgid "Bio++ sequence library"
+#~ msgstr "Biblioteca vectorial bit"
+
+#, fuzzy
+#~ msgid "Tools for manipulating biological data"
+#~ msgstr "Herramientas para manipulación de imágenes"
+
+#, fuzzy
+#~ msgid "Python bindings to the SAMtools C API"
+#~ msgstr "Enlazando Python para librsvg"
+
+#, fuzzy
+#~ msgid "Python library for reading .2bit files"
+#~ msgstr "Biblioteca para manipulación de ficheros PNG"
+
+#, fuzzy
+#~ msgid "Python library for genomic analysis"
+#~ msgstr "Biblioteca para análisis genómico"
+
+#, fuzzy
+#~ msgid "C library for handling bigWig files"
+#~ msgstr "Biblioteca para manipulación de ficheros PNG"
+
+#, fuzzy
+#~ msgid "Tools for population genetics"
+#~ msgstr "Herramientas para manipulación de imágenes"
+
+#, fuzzy
+#~ msgid "Library for reading and writing PacBio data files"
+#~ msgstr "Biblioteca C para crear e interpretar ficheros de configuración."
+
+#, fuzzy
+#~ msgid "Implementation of warped linear mixed models"
+#~ msgstr "Implementación de una clase simple para Perl"
+
+#, fuzzy
+#~ msgid "Java bindings for NGS SDK"
+#~ msgstr "Enlazados Javascript para GNOME"
+
+#, fuzzy
+#~ msgid "Tools and libraries for reading and writing sequencing data"
+#~ msgstr "Sofware para grabación y edición de sonido"
+
+#, fuzzy
+#~ msgid "Library for nucleotide sequence analysis"
+#~ msgstr "Biblioteca para análisis genómico"
+
+#, fuzzy
+#~ msgid "Tools for converting and modifying sequence files"
+#~ msgstr "Sofware para grabación y edición de sonido"
+
+#, fuzzy
+#~ msgid "Tools for working with VCF files"
+#~ msgstr "Herramientas para trabajar con el formato de fichero PDF"
+
+#, fuzzy
+#~ msgid "Interface to the Boost graph library"
+#~ msgstr "Biblioteca de visión de computación"
+
+#, fuzzy
+#~ msgid "Gene set enrichment data structures and methods"
+#~ msgstr "Estructuras y algoritmos de datos gráficos"
+
+#, fuzzy
+#~ msgid "Tools for manipulating GO and microarrays"
+#~ msgstr "Herramientas para manipulación de imágenes"
+
+#, fuzzy
+#~ msgid "FASTQ input and manipulation tools"
+#~ msgstr "Biblioteca para procesado y manipulación de CSS2"
+
+#, fuzzy
+#~ msgid "This package provides a pipeline for the analysis of GRO-seq data."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "S4 implementation of vectors and lists"
+#~ msgstr "Implementación Log4j para Perl"
+
+#, fuzzy
+#~ msgid "Utilities for manipulating chromosome identifiers"
+#~ msgstr "Rutinas para manipulación de ficheros CSV"
+
+#, fuzzy
+#~ msgid "Delayed operations on array-like objects"
+#~ msgstr "Operaciones avanzadas en rutas variables"
+
+#, fuzzy
+#~ msgid "Tools for working with transcript centric annotations"
+#~ msgstr "Herramientas para trabajar con el formato de fichero PDF"
+
+#, fuzzy
+#~ msgid "HDF5 interface to R"
 #~ msgstr "Servicio web para R"
 
-#~ msgid "JSON library for R"
+#, fuzzy
+#~ msgid "Implementation of binary interval search algorithm"
+#~ msgstr "Implementación del algoritmo de compresión Brotli"
+
+#, fuzzy
+#~ msgid "Helper files for CopywriteR"
+#~ msgstr "Clases ayudante para pruebas Jetty"
+
+#, fuzzy
+#~ msgid "Tools for parsing Affymetrix data files"
+#~ msgstr "Herramientas para trabajar con el formato de fichero PDF"
+
+#, fuzzy
+#~ msgid "Tools for working with SAM/BAM data"
+#~ msgstr "Herramientas para trabajar con el formato de fichero PDF"
+
+#, fuzzy
+#~ msgid "Integrative modeling platform"
+#~ msgstr "Ejecución interactiva de programa por línea de mandato"
+
+#, fuzzy
+#~ msgid "Parser library for reading/writing GFF files"
+#~ msgstr "Biblioteca para generación de ficheros PDF"
+
+#, fuzzy
+#~ msgid "Biojava interface to the forester phylogenomics library"
+#~ msgstr "Biblioteca de visión de computación"
+
+#, fuzzy
+#~ msgid "Minimal C++ interval tree implementation"
+#~ msgstr "Pequeña implementación Scheme embebible"
+
+#, fuzzy
+#~ msgid "Editable interval tree data structure"
+#~ msgstr "Compara datos Perl estructurados"
+
+#, fuzzy
+#~ msgid "Toolkit for working with nanopore sequencing data"
+#~ msgstr "Herramientas para trabajar con el formato de fichero PDF"
+
+# FUZZY
+#, fuzzy
+#~ msgid "C++ wrapper around tabix project"
+#~ msgstr "Recubrimiento C++ sobre la interfaz de ALSA"
+
+#, fuzzy
+#~ msgid "Implementation of the Smith-Waterman algorithm"
+#~ msgstr "Implementación del algoritmo de compresión Brotli"
+
+#, fuzzy
+#~ msgid "Implementation of the Smith-Waterman algorithm."
+#~ msgstr "Implementación del algoritmo de compresión Brotli"
+
+#, fuzzy
+#~ msgid "Library for parsing and manipulating VCF files"
+#~ msgstr "Biblioteca para interpretar ficheros SVG"
+
+#, fuzzy
+#~ msgid "Tool for manipulation of GFF and GTF files"
+#~ msgstr "Herramientas para manipulación de imágenes"
+
+#, fuzzy
+#~ msgid "Yacc-compatible parser generator"
+#~ msgstr "Generador de contraseñas aleatorias"
+
+#, fuzzy
+#~ msgid "Boost.Sync library"
+#~ msgstr "Biblioteca vectorial bit"
+
+#, fuzzy
+#~ msgid "Boost.Signals2 library"
+#~ msgstr "Biblioteca de utilidades textuales de Gordon"
+
+#, fuzzy
+#~ msgid "Multi-dimensional C++ data structures and indexing algorithms"
+#~ msgstr "Estructuras y algoritmos de datos gráficos"
+
+#, fuzzy
+#~ msgid "Lightweight Linux bootloader"
+#~ msgstr "Cliente ligero Tox"
+
+#, fuzzy
+#~ msgid "Bootstrap binaries of the GNU Compiler Collection"
+#~ msgstr "Colección de compiladores GNU"
+
+#, fuzzy
+#~ msgid "Tool for generating a compilation database"
+#~ msgstr "BD de información del sistema operativo"
+
+#, fuzzy
+#~ msgid "Command line program for Chinese calendar"
+#~ msgstr "Cliente WebDAV por mandato lineal"
+
+#, fuzzy
+#~ msgid "CD Input and Control library"
+#~ msgstr "Biblioteca de controladores para juegos"
+
+#, fuzzy
+#~ msgid "Audio CD reading utility"
+#~ msgstr "Utilidad de sonido procesado"
+
+#, fuzzy
+#~ msgid "Read and write CDs in disk-at-once mode"
+#~ msgstr "Fichero almacén de lectura y escritura OLE"
+
+#, fuzzy
+#~ msgid "Command line utilities to manipulate and burn CD/DVD/BD images"
+#~ msgstr "Utilidades de línea de mandato para codificar, inspeccionar y decodificar ficheros .opus"
+
+#, fuzzy
+#~ msgid "DVD authoring application"
+#~ msgstr "Aplicación de reproducción musical de GNOME"
+
+#, fuzzy
+#~ msgid "C library to parse cue sheets"
+#~ msgstr "Biblioteca C para interpretar JSON"
+
+#, fuzzy
+#~ msgid "Command-line audio CD ripper"
+#~ msgstr "Cliente WebDAV por mandato lineal"
+
+#, fuzzy
+#~ msgid "Library for reading and writing optical discs"
+#~ msgstr "Biblioteca para carga y contorno de complemento IU LV2"
+
+#, fuzzy
+#~ msgid "Library to create ISO 9660 images"
+#~ msgstr "Biblioteca para imágenes panorámicas"
+
+#, fuzzy
+#~ msgid "Command-line CD/DVD recorder"
+#~ msgstr "Cliente WebDAV por mandato lineal"
+
+#, fuzzy
+#~ msgid "CD-ROM image access library"
+#~ msgstr "Biblioteca de gráficos 2D"
+
+#, fuzzy
+#~ msgid "Small C testing library"
+#~ msgstr "Interpretador construyendo biblioteca"
+
+#, fuzzy
+#~ msgid "Unit test framework for C"
+#~ msgstr "Impresión para marco de trabajo de GNOME"
+
+#, fuzzy
+#~ msgid "Command line test tool"
+#~ msgstr "Interfaz de mandato lineal para libtocc"
+
+#, fuzzy
+#~ msgid "Automated testing framework for C"
+#~ msgstr "Marco de pruebas de software GNU"
+
+#, fuzzy
+#~ msgid "Unit testing framework for C++"
+#~ msgstr "Impresión para marco de trabajo de GNOME"
+
+#, fuzzy
+#~ msgid "Unit testing framework for C"
+#~ msgstr "Impresión para marco de trabajo de GNOME"
+
+#, fuzzy
+#~ msgid "C++ test framework"
+#~ msgstr "Marco de pruebas de software GNU"
+
+#, fuzzy
+#~ msgid "Python testing library"
+#~ msgstr "Cliente biblioteca Python MPD"
+
+#, fuzzy
+#~ msgid "Python unit testing library"
+#~ msgstr "Cliente biblioteca Python MPD"
+
+#, fuzzy
+#~ msgid "Pyunit extension for managing test resources"
+#~ msgstr "Rutinas de conversión de fecha Perl"
+
+#, fuzzy
+#~ msgid "Python implementation of the subunit protocol"
+#~ msgstr "Implementación Perl de protocolo PSYC"
+
+#, fuzzy
+#~ msgid "Python test fixture library"
+#~ msgstr "Cliente biblioteca Python MPD"
+
+#, fuzzy
+#~ msgid "Pytest support for asyncio"
+#~ msgstr "Capacidad Babel para inglés"
+
+#, fuzzy
+#~ msgid "Library for property based testing"
+#~ msgstr "Biblioteca para etiquetado de sonido"
+
+#, fuzzy
+#~ msgid "LLVM Software Testing Tool"
+#~ msgstr "Marco de pruebas de software GNU"
+
+#, fuzzy
+#~ msgid "Timer plugin for nosetests"
+#~ msgstr "Complementos LV2 para usar live"
+
+#, fuzzy
+#~ msgid "Testing library for Python"
+#~ msgstr "Biblioteca descodificante para ficheros GIF"
+
+#, fuzzy
+#~ msgid "Hamcrest matchers for Python"
+#~ msgstr "Cliente mofa HTTP para Python"
+
+#, fuzzy
+#~ msgid "Lightweight unit testing framework for C++"
+#~ msgstr "Biblioteca de filtro de sonido ligero"
+
+#, fuzzy
+#~ msgid "Header-only test framework"
+#~ msgstr "Marco de pruebas de software GNU"
+
+#, fuzzy
+#~ msgid "Chemistry data manipulation toolbox"
+#~ msgstr "Biblioteca interpretando CSS2 y manipulación"
+
+#, fuzzy
+#~ msgid "SRFI libraries for Chez Scheme"
+#~ msgstr "Biblioteca Scmutils para MIT Scheme"
+
+#, fuzzy
+#~ msgid "This package provides a collection of SRFI libraries for Chez Scheme."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "Extensible sockets library for Chez Scheme"
+#~ msgstr "Biblioteca Scmutils para MIT Scheme"
+
+#, fuzzy
+#~ msgid "Portable regular expression library for Scheme"
+#~ msgstr "Biblioteca de expresión regular"
+
+#, fuzzy
+#~ msgid "Combinator formatting library for Chez Scheme"
+#~ msgstr "Compatibilizar y utilidad bibliotecaria para Scheme"
+
+#, fuzzy
+#~ msgid "MIT/GNU Scheme compatibility library for Chez Scheme"
+#~ msgstr "Compatibilizar y utilidad bibliotecaria para Scheme"
+
+#~ msgid "R5RS Scheme implementation that compiles native code via C"
+#~ msgstr "Implementación Scheme S5R5 que compila código nativo vía C"
+
+#, fuzzy
+#~ msgid "Graphical web browser"
+#~ msgstr "Explorador web GNOME"
+
+#, fuzzy
+#~ msgid "Library for the Cinnamon Desktop"
+#~ msgstr "Biblioteca para generación de ficheros PDF"
+
+#, fuzzy
+#~ msgid "Utilities for macro writers"
+#~ msgstr "Utilidades para E/S interactiva"
+
+#, fuzzy
+#~ msgid "Clojure library for working with command-line arguments"
+#~ msgstr "Herramientas para trabajar con el formato de fichero PDF"
+
+#, fuzzy
+#~ msgid "C implementation of the Raft consensus protocol"
+#~ msgstr "Implementación del protocolo de transporte en tiempo real"
+
+#, fuzzy
+#~ msgid "Cross-platform build system"
+#~ msgstr "Plataforma de biblioteca de sonido cruzada"
+
+#, fuzzy
+#~ msgid "C++11 library for generating stack traces"
+#~ msgstr "Biblioteca para generación de ficheros PDF"
+
+#, fuzzy
+#~ msgid "Code formatter for C and other related languages"
+#~ msgstr "Implementación de Scheme y lenguajes relacionados"
+
+#, fuzzy
+#~ msgid "Tar decompression and extraction in Guile Scheme"
+#~ msgstr "Utilidad de extracción y descompresión de fichero"
+
+#, fuzzy
+#~ msgid "GNU C++ standard library (intermediate)"
+#~ msgstr "Biblioteca estándar de C++ de GNU"
+
+#, fuzzy
+#~ msgid "Personal configuration files manager"
+#~ msgstr "Obtiene directorios de ficheros de configuración"
+
+#, fuzzy
+#~ msgid "Lightweight system monitor for X"
+#~ msgstr "Interfaz ligero para memoria compartida"
+
+#, fuzzy
+#~ msgid "Connection management daemon"
+#~ msgstr "Sistema de gestión de configuración de software"
+
+#, fuzzy
+#~ msgid "Tool for constructing files"
+#~ msgstr "Herramienta para inspeccionar subrutinas"
+
+#, fuzzy
+#~ msgid "Coq library for Reals"
 #~ msgstr "Biblioteca JSON para R"
 
+#, fuzzy
+#~ msgid "Alternative Coq standard library std++"
+#~ msgstr "Biblioteca estándar de C++ de GNU"
+
+#, fuzzy
+#~ msgid "Manage cpio and tar file archives"
+#~ msgstr "Gestionando archivos tar"
+
+#, fuzzy
+#~ msgid "C++ utility library"
+#~ msgstr "Biblioteca utilitaria para Netlink"
+
+#, fuzzy
+#~ msgid "C++ Reflection Library"
+#~ msgstr "Intérprete CSS y selección de biblioteca"
+
+#, fuzzy
+#~ msgid "Data stream helper encapsulation library"
+#~ msgstr "Biblioteca abstracta de origen de datos"
+
+#, fuzzy
+#~ msgid "FIFO-ordered associative container for C++"
+#~ msgstr "Matrices asociadas ordenadas para Perl"
+
+#, fuzzy
+#~ msgid "JSON parser and printer library for C++"
+#~ msgstr "Intérprete CSS y selección de biblioteca"
+
+#, fuzzy
+#~ msgid "Process IO library"
+#~ msgstr "Biblioteca E/S del sonido"
+
+#, fuzzy
+#~ msgid "Cross-platform actor framework for C++"
+#~ msgstr "Plataforma cruzada de biblioteca MIDI para C++"
+
+#, fuzzy
+#~ msgid "Modern C++ tweening library"
+#~ msgstr "Fichero Mod reproduciendo biblioteca"
+
+#, fuzzy
+#~ msgid "Augmented C++ standard library"
+#~ msgstr "Biblioteca estándar de C++ de GNU"
+
+#, fuzzy
+#~ msgid "Lightweight C++ command line option parser"
+#~ msgstr "Gestor de portapapeles GTK+ ligero"
+
+#, fuzzy
+#~ msgid "Article formats for R Markdown"
+#~ msgstr "Distribuciones avanzadas para Markdown/HTML"
+
+#, fuzzy
+#~ msgid "Scale functions for visualization"
+#~ msgstr "API simple para virtualización"
+
+#, fuzzy
+#~ msgid "Tools for working with additional arguments"
+#~ msgstr "Herramientas para trabajar con el formato de fichero PDF"
+
+#, fuzzy
+#~ msgid "Alternative implementations of base R functions"
+#~ msgstr "Implementación alternativa de los rc shell por Byron Rakitzis"
+
+#, fuzzy
+#~ msgid "Safe password entry for R"
+#~ msgstr "Generador de contraseñas aleatorias"
+
+#, fuzzy
+#~ msgid "HTTP and WebSocket server library for R"
+#~ msgstr "Biblioteca de cliente HTTP y WebDAV"
+
+#~ msgid "R tools for HTML"
+#~ msgstr "Herramientas R para HTML"
+
+#~ msgid "HTML Widgets for R"
+#~ msgstr "Cubiertas HTML para R"
+
+#~ msgid "Advanced tables for Markdown/HTML"
+#~ msgstr "Distribuciones avanzadas para Markdown/HTML"
+
+#~ msgid "HTTP client for R"
+#~ msgstr "Cliente HTTP para R"
+
 #~ msgid "Output R objects in HTML format"
 #~ msgstr "Salida de objetos R en formato HTML"
 
-#~ msgid "HTTP client for R"
+#~ msgid "JSON library for R"
+#~ msgstr "Biblioteca JSON para R"
+
+#, fuzzy
+#~ msgid "Fast implementation of a key-value store"
+#~ msgstr "Implementación de una clase simple para Perl"
+
+#, fuzzy
+#~ msgid "jsTree bindings for Shiny"
+#~ msgstr "Enlazando SQLite para Python"
+
+#~ msgid "Web server interface for R"
+#~ msgstr "Servicio web para R"
+
+#, fuzzy
+#~ msgid "Read and write JPEG images with R"
+#~ msgstr "Lectura y escritura de imágenes PNG"
+
+#, fuzzy
+#~ msgid "Color space manipulation"
+#~ msgstr "Clase para manipulación de fecha y hora fácil"
+
+#, fuzzy
+#~ msgid "Toolkit for recursive partytioning"
+#~ msgstr "Herramientas para manipulación de imágenes"
+
+#, fuzzy
+#~ msgid "Functions for plotting graphical shapes"
+#~ msgstr "Rutinas para manipulación de alijos"
+
+#, fuzzy
+#~ msgid "Circular visualization"
+#~ msgstr "API simple para virtualización"
+
+#, fuzzy
+#~ msgid "Fast match function"
+#~ msgstr "Funciones pango obsoletas"
+
+#, fuzzy
+#~ msgid "Terminal progress bars"
+#~ msgstr "# prohibe el registro"
+
+#, fuzzy
+#~ msgid "Database interface and MySQL driver for R"
+#~ msgstr "Interfaz de base de datos independiente para Perl"
+
+#, fuzzy
+#~ msgid "Improved predictors"
+#~ msgstr "Cliente whois mejorado"
+
+#, fuzzy
+#~ msgid "Dynamic Time Warping Algorithms"
+#~ msgstr "Línea Unicode dividiendo algoritmo"
+
+#, fuzzy
+#~ msgid "Helpers for developing command line interfaces"
+#~ msgstr "Módulo para  manipular opciones de líneas de mandatos interpretandos"
+
+#, fuzzy
+#~ msgid "Command-line argument parser"
+#~ msgstr "Cliente WebDAV por mandato lineal"
+
+#, fuzzy
+#~ msgid "Miscellaneous functions"
+#~ msgstr "Funciones pango obsoletas"
+
+#, fuzzy
+#~ msgid "Insightful research tools"
+#~ msgstr "Kit de herramientas de análisis de seguridad IPv6"
+
+#, fuzzy
+#~ msgid "Extensions for ggplot2"
+#~ msgstr "Extensiones para GNOME Shell"
+
+#, fuzzy
+#~ msgid "Interface to the HDF5 Library"
+#~ msgstr "Interfaz Perl para algoritmo MD-5"
+
+#, fuzzy
+#~ msgid "Ace editor bindings for Shiny"
+#~ msgstr "Enlazando SQLite para Python"
+
+#, fuzzy
+#~ msgid "Signal processing"
+#~ msgstr "Lenguaje de procesamiento de señales"
+
+#, fuzzy
+#~ msgid "Cross-platform Zip compression"
+#~ msgstr "Compresión de cadena"
+
+#, fuzzy
+#~ msgid "Read, write and edit XLSX files"
+#~ msgstr "Ficheros Lectura/Escritura YAML"
+
+#, fuzzy
+#~ msgid "Utilities for delaying function execution"
+#~ msgstr "Utilidades para E/S interactiva"
+
+#, fuzzy
+#~ msgid "Project environments"
+#~ msgstr "Adaptar lista básica de entornos"
+
+#, fuzzy
+#~ msgid "R interface to Python"
+#~ msgstr "Interfaz Perl para Amazon S3"
+
+#, fuzzy
+#~ msgid ""
+#~ "This package provides a utility for R to parse a bibtex\n"
+#~ "file."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "Implementation of optimal hierarchical clustering"
+#~ msgstr "Implementación de una clase simple para Perl"
+
+#, fuzzy
+#~ msgid "Interface to the HDF5 binary data format"
+#~ msgstr "Interfaz Perl para algoritmo MD-5"
+
+#, fuzzy
+#~ msgid "Utilities for processing Rd objects and files"
+#~ msgstr "Utilidad para paralelos descargando ficheros"
+
+#, fuzzy
+#~ msgid ""
+#~ "This package provides a data frame to xlsx exporter based on\n"
+#~ "libxlsxwriter."
+#~ msgstr ""
+#~ "Este paquete proporciona un diccionario para la biblioteca de\n"
+#~ "comprobación ortográfica Hunspell."
+
+#, fuzzy
+#~ msgid "Command-line option processor for R"
+#~ msgstr "Procesador mandato lineal JSON"
+
+#, fuzzy
+#~ msgid "Implementation of hash/associated arrays/dictionaries"
+#~ msgstr "Implementación de Scheme y lenguajes relacionados"
+
+#, fuzzy
+#~ msgid "Ordinal dominance statistics"
+#~ msgstr "Visualizar estadísticas curl"
+
+#, fuzzy
+#~ msgid "Data sets for project Mosaic"
+#~ msgstr "Ficheros de datos para Xonotic"
+
+#, fuzzy
+#~ msgid "Functions for managing GUI clients in R"
+#~ msgstr "Rutinas para manipulación de ficheros CSV"
+
+#, fuzzy
+#~ msgid "Portable dialog boxes"
+#~ msgstr "Biblioteca de sistema de acceso portable"
+
+#, fuzzy
+#~ msgid "Augmented backward elimination"
+#~ msgstr "Generación accesor automático"
+
+#, fuzzy
+#~ msgid "Collection of tools for jurimetrical analysis"
+#~ msgstr "Colección de utilidades para el núcleo Linux"
+
+#, fuzzy
+#~ msgid "Tools for multiple imputation of missing data"
+#~ msgstr "Herramientas para manipulación de imágenes"
+
+#, fuzzy
+#~ msgid "Shared data sets"
+#~ msgstr "Interpreta cadenas textuales de datos/hora"
+
+#, fuzzy
+#~ msgid "Read and write configuration files"
+#~ msgstr "Fichero almacén de lectura y escritura OLE"
+
+#, fuzzy
+#~ msgid "R session information"
+#~ msgstr "Información listada de hardware"
+
+#, fuzzy
+#~ msgid ""
+#~ "This package provides a collection of miscellaneous 3d plots, including\n"
+#~ "isosurfaces."
+#~ msgstr ""
+#~ "Este paquete proporciona un diccionario para la biblioteca de\n"
+#~ "comprobación ortográfica Hunspell."
+
+#, fuzzy
+#~ msgid "Circular statistics"
+#~ msgstr "Visualizar estadísticas curl"
+
+#, fuzzy
+#~ msgid "Animal activity statistics"
+#~ msgstr "Visualizar estadísticas curl"
+
+#, fuzzy
+#~ msgid "Read and write TIFF images"
+#~ msgstr "Lectura y escritura de imágenes PNG"
+
+#, fuzzy
+#~ msgid "Build color tables"
+#~ msgstr "Añade color a tablas LaTeX"
+
+#, fuzzy
+#~ msgid "Command-line interface specification language"
+#~ msgstr "Interfaz de mandato lineal para libtocc"
+
+#, fuzzy
+#~ msgid "Family of Lasso regression implementations"
+#~ msgstr "Implementación completa de ajedrez"
+
+#, fuzzy
+#~ msgid "Simple color manipulation"
+#~ msgstr "API simple para virtualización"
+
+#, fuzzy
+#~ msgid "R interface to the Onigmo regular expression library"
+#~ msgstr "Biblioteca de visión de computación"
+
+#, fuzzy
+#~ msgid "Tools for bitmap images"
+#~ msgstr "Herramientas para manipulación de imágenes"
+
+#, fuzzy
+#~ msgid "JSON parser"
+#~ msgstr "Clase interpretada HTML en Perl"
+
+#, fuzzy
+#~ msgid ""
+#~ "This package provides JSON parsing capability through the Rapidjson\n"
+#~ "library."
+#~ msgstr ""
+#~ "Este paquete proporciona un diccionario para la biblioteca de\n"
+#~ "comprobación ortográfica Hunspell."
+
+#, fuzzy
+#~ msgid "R bindings to the MPFR library"
+#~ msgstr "Enlazando Python para librsvg"
+
+#, fuzzy
+#~ msgid "Assertions to check properties of variables"
+#~ msgstr "Operaciones avanzadas en rutas variables"
+
+#, fuzzy
+#~ msgid "Read and write BAM (binary alignment) files"
+#~ msgstr "Fichero almacén de lectura y escritura OLE"
+
+#, fuzzy
+#~ msgid ""
+#~ "This package provides an R interface to functions of the SAMtools\n"
+#~ "library."
+#~ msgstr ""
+#~ "Este paquete proporciona un diccionario para la biblioteca de\n"
+#~ "comprobación ortográfica Hunspell."
+
+#, fuzzy
+#~ msgid "Visualize intersecting sets"
+#~ msgstr "Visualizar estadísticas curl"
+
+#, fuzzy
+#~ msgid ""
+#~ "This package provides a collection of some tests commonly used for\n"
+#~ "identifying outliers."
+#~ msgstr ""
+#~ "Este paquete proporciona un diccionario para la biblioteca de\n"
+#~ "comprobación ortográfica Hunspell."
+
+#, fuzzy
+#~ msgid "R interface to ZeroMQ"
+#~ msgstr "Caché de interfaz para Perl"
+
+#, fuzzy
+#~ msgid "Datasets for spatial analysis"
+#~ msgstr "Vista para Catalyst"
+
+#, fuzzy
+#~ msgid "Simple features for R"
+#~ msgstr "Objeto arbóreo único"
+
+#, fuzzy
+#~ msgid "Polynomial spline routines"
+#~ msgstr "Herramienta para inspeccionar subrutinas"
+
+#, fuzzy
+#~ msgid "SPARQL client for R"
 #~ msgstr "Cliente HTTP para R"
 
-#~ msgid "Advanced tables for Markdown/HTML"
-#~ msgstr "Distribuciones avanzadas para Markdown/HTML"
+#, fuzzy
+#~ msgid "Command line option parser"
+#~ msgstr "Cliente WebDAV por mandato lineal"
 
-#~ msgid "HTML Widgets for R"
+#, fuzzy
+#~ msgid "This package provides functions for drawing and calibrating samples."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "HTML export for R objects"
 #~ msgstr "Cubiertas HTML para R"
 
-#~ msgid "R tools for HTML"
-#~ msgstr "Herramientas R para HTML"
+#, fuzzy
+#~ msgid "Font conversion utility"
+#~ msgstr "Fecha del conversión de rutinas"
 
-#~ msgid "Distributed Revision Control System"
-#~ msgstr "Sistema de Control de Revisión Distribuido"
+#, fuzzy
+#~ msgid "Tools for using fonts in R"
+#~ msgstr "Esquema para el nombrado de tipografías en TeX"
+
+#, fuzzy
+#~ msgid ""
+#~ "This package provides some functions for sample classification in\n"
+#~ "microarrays."
+#~ msgstr ""
+#~ "Este paquete proporciona un diccionario para la biblioteca de\n"
+#~ "comprobación ortográfica Hunspell."
+
+#, fuzzy
+#~ msgid "Read and write PNG images"
+#~ msgstr "Lectura y escritura de imágenes PNG"
+
+#, fuzzy
+#~ msgid "Data visualization on maps"
+#~ msgstr "Fecha del rutinas de manipulación"
+
+#, fuzzy
+#~ msgid "Friendly regular expressions"
+#~ msgstr "%s: la expresión regular no es válida: %s"
+
+#, fuzzy
+#~ msgid "Tools for computation on batch systems"
+#~ msgstr "Herramientas para manipulación de imágenes"
+
+#, fuzzy
+#~ msgid "Parallel pseudo random number generator header files"
+#~ msgstr "Demonio generador de número aleatorias"
+
+#, fuzzy
+#~ msgid "Fast pseudo random number generators"
+#~ msgstr "Demonio generador de número aleatorias"
+
+#, fuzzy
+#~ msgid "R implementation of Leiden clustering algorithm"
+#~ msgstr "Implementación del algoritmo de compresión Brotli"
+
+#, fuzzy
+#~ msgid "Additional layout algorithms for network visualizations"
+#~ msgstr "Widgets adicional para aplicaciones"
+
+#, fuzzy
+#~ msgid "Tidy API for graph manipulation"
+#~ msgstr "API simple para virtualización"
+
+#, fuzzy
+#~ msgid "Tools for calculating solar radiation"
+#~ msgstr "Herramientas y documentación para traducción"
+
+#, fuzzy
+#~ msgid "Loading fonts into R"
+#~ msgstr "Esquema para el nombrado de tipografías en TeX"
+
+#, fuzzy
+#~ msgid "Create GUI for R functions"
+#~ msgstr "Funciones pango obsoletas"
+
+#, fuzzy
+#~ msgid "ACE file to FASTQ converter"
+#~ msgstr "Conversor PDF a SVG"
+
+#, fuzzy
+#~ msgid "Toolbox for WELL random number generators"
+#~ msgstr "Demonio generador de número aleatorias"
+
+#, fuzzy
+#~ msgid "Sound analysis and synthesis"
+#~ msgstr "Sintetizador SoundFont"
+
+#, fuzzy
+#~ msgid "Generate ActiLife counts"
+#~ msgstr "Genera modificaciones de barras en documentos LaTeX"
+
+#, fuzzy
+#~ msgid "Image processing library"
+#~ msgstr "Biblioteca de procesamiento Speex"
+
+#, fuzzy
+#~ msgid "Discrete and global optimization routines"
+#~ msgstr "Fecha del rutinas de manipulación"
+
+#, fuzzy
+#~ msgid "Implementation of an accountable data analysis process"
+#~ msgstr "Implementación de una clase simple para Perl"
+
+#, fuzzy
+#~ msgid "Adaptive sampling algorithms"
+#~ msgstr "Línea Unicode dividiendo algoritmo"
+
+#, fuzzy
+#~ msgid "Collection of functions for matrix calculations"
+#~ msgstr "Colección de utilidades para el núcleo Linux"
+
+#, fuzzy
+#~ msgid "C++ header files for Stan"
+#~ msgstr "Datos de fichero para 0ad"
+
+#, fuzzy
+#~ msgid "Project management tools"
+#~ msgstr "Herramienta gestora de múltiples repositorios"
+
+#, fuzzy
+#~ msgid "Extended Rasch modeling"
+#~ msgstr "Módulo jugador extendido"
+
+#, fuzzy
+#~ msgid "R interface to Stan"
+#~ msgstr "Interfaz Perl para Amazon S3"
+
+#, fuzzy
+#~ msgid "Binary download manager"
+#~ msgstr "Descargador de fichero binario Usenet"
+
+#, fuzzy
+#~ msgid "R bindings for Selenium WebDriver"
+#~ msgstr "Enlaces GObject para libudev"
+
+#, fuzzy
+#~ msgid "Utility functions for spatstat"
+#~ msgstr "Clases utilidad para Jetty"
+
+#, fuzzy
+#~ msgid "Datasets for spatstat"
+#~ msgstr "Datos de fichero para MegaGlest"
+
+#, fuzzy
+#~ msgid "Manage environment specific configuration values"
+#~ msgstr "Obtiene directorios de ficheros de configuración"
+
+#, fuzzy
+#~ msgid "General resampling infrastructure"
+#~ msgstr "Volcado parcial de estructuras de datos"
+
+#, fuzzy
+#~ msgid "Tidy statistical inference"
+#~ msgstr "Medición con confianza estadísticas"
+
+#, fuzzy
+#~ msgid "FFI bindings to aom"
+#~ msgstr "Enlace Python para cairo"
+
+#, fuzzy
+#~ msgid "Rust bindings for CGL on Mac"
+#~ msgstr "Enlazados Javascript para GNOME"
+
+#, fuzzy
+#~ msgid "Rust bindings for CGL on Mac."
+#~ msgstr "Enlazados Javascript para GNOME"
+
+#, fuzzy
+#~ msgid "Core library of Gfx-rs"
+#~ msgstr "Biblioteca BitTorrent de rtorrent"
+
+#, fuzzy
+#~ msgid "OpenGL bindings for rust"
+#~ msgstr "Enlazando GLib para libusb1"
+
+#, fuzzy
+#~ msgid "Egl bindings for glutin"
+#~ msgstr "Enlazando XOSD para Guile"
+
+#, fuzzy
+#~ msgid "The egl bindings for glutin."
+#~ msgstr "Enlaces binarios para liblo"
+
+#, fuzzy
+#~ msgid "Emscripten bindings for glutin"
+#~ msgstr "Enlazando SQLite para Python"
+
+#, fuzzy
+#~ msgid "The emscripten bindings for glutin."
+#~ msgstr "Enlazados Javascript para GNOME"
+
+#, fuzzy
+#~ msgid "The gles2 bindings for glutin"
+#~ msgstr "Enlazando Guile para libgit2"
+
+#, fuzzy
+#~ msgid "The gles2 bindings for glutin."
+#~ msgstr "Enlazando Guile para libgit2"
+
+#, fuzzy
+#~ msgid "Glx bindings for glutin"
+#~ msgstr "Enlazando Guile para libgit2"
+
+#, fuzzy
+#~ msgid "The glx bindings for glutin."
+#~ msgstr "Enlaces binarios para liblo"
+
+#, fuzzy
+#~ msgid "Wgl bindings for glutin"
+#~ msgstr "Enlazando XOSD para Guile"
+
+#, fuzzy
+#~ msgid "The wgl bindings for glutin."
+#~ msgstr "Enlaces binarios para liblo"
+
+#, fuzzy
+#~ msgid "Imaging library written in Rust"
+#~ msgstr "Biblioteca WebSockets escrita en C"
+
+#, fuzzy
+#~ msgid "JPEG decoder"
+#~ msgstr "Código JPEG 2000"
+
+#, fuzzy
+#~ msgid "Collection of line-drawing algorithms"
+#~ msgstr "Línea Unicode dividiendo algoritmo"
+
+#, fuzzy
+#~ msgid "This package provides 2D graphics rendering on the GPU using tessellation."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "OSMesa library bindings for Rust"
+#~ msgstr "Enlazando XOSD para Guile"
+
+#, fuzzy
+#~ msgid "This package provides a library for storing graphics API versions"
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "A generic library for textures"
+#~ msgstr "Biblioteca de imagen para Extempore"
+
+#, fuzzy
+#~ msgid "This package provides a generic library for textures"
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "Library for storing viewport information"
+#~ msgstr "Biblioteca para interpretación del formato AbiWord"
+
+#, fuzzy
+#~ msgid "This package provides a library for storing viewport information."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "This package provides a Gfx 2D back-end for the Piston game engine."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "Piston event loop for games and interactive applications"
+#~ msgstr "Efectos de vídeo para Cheese y otras aplicaciones de GNOME"
+
+#, fuzzy
+#~ msgid "This package provides a Piston window back-end using the Glutin library."
+#~ msgstr ""
+#~ "Este paquete proporciona un diccionario para la biblioteca de\n"
+#~ "comprobación ortográfica Hunspell."
+
+#, fuzzy
+#~ msgid "This package provides a structure for user input."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "Library for window abstraction"
+#~ msgstr "Biblioteca para etiquetado de sonido"
+
+#, fuzzy
+#~ msgid "This package provides a library for window abstraction."
+#~ msgstr ""
+#~ "Este paquete proporciona un diccionario para la biblioteca de\n"
+#~ "comprobación ortográfica Hunspell."
+
+#, fuzzy
+#~ msgid "PNG decoding and encoding library in pure Rust"
+#~ msgstr "Biblioteca de geocódigo y reversión de geocódigo"
+
+#, fuzzy
+#~ msgid "PNG decoding and encoding library in pure Rust."
+#~ msgstr "Biblioteca de geocódigo y reversión de geocódigo"
+
+#, fuzzy
+#~ msgid "This package provides a simple image resampling library in pure Rust."
+#~ msgstr ""
+#~ "Este paquete proporciona un diccionario para la biblioteca de\n"
+#~ "comprobación ortográfica Hunspell."
+
+#, fuzzy
+#~ msgid "Toolkit for making client wayland applications"
+#~ msgstr "Herramientas para manipulación de imágenes"
+
+#, fuzzy
+#~ msgid "TIFF decoding and encoding library in pure Rust"
+#~ msgstr "Biblioteca de geocódigo y reversión de geocódigo"
+
+#, fuzzy
+#~ msgid "TIFF decoding and encoding library in pure Rust."
+#~ msgstr "Biblioteca de geocódigo y reversión de geocódigo"
+
+#, fuzzy
+#~ msgid "Cross-platform window creation library"
+#~ msgstr "Plataforma de biblioteca de sonido cruzada"
+
+#, fuzzy
+#~ msgid "Cross-platform window creation library."
+#~ msgstr "Plataforma de biblioteca de sonido cruzada"
+
+#, fuzzy
+#~ msgid "X11 library bindings for Rust"
+#~ msgstr "Enlazando GLib para libusb1"
+
+#, fuzzy
+#~ msgid "X11 library bindings for Rust."
+#~ msgstr "Enlazando GLib para libusb1"
+
+#, fuzzy
+#~ msgid "Rust bindings for the Cairo library"
+#~ msgstr "Enlace Python para cairo"
+
+#, fuzzy
+#~ msgid "Rust bindings for the Cairo library."
+#~ msgstr "Enlace Python para cairo"
+
+#, fuzzy
+#~ msgid "FFI bindings to libcairo"
+#~ msgstr "Enlazando Python para libvirt"
+
+#, fuzzy
+#~ msgid "FFI bindings to libgdk_pixbuf-2.0"
+#~ msgstr "Enlazando Guile para libgit2"
+
+#, fuzzy
+#~ msgid "Rust bindings for the Gio library"
+#~ msgstr "Enlaces binarios para liblo"
+
+#, fuzzy
+#~ msgid "Rust bindings for the Gio library."
+#~ msgstr "Enlaces binarios para liblo"
+
+#, fuzzy
+#~ msgid "FFI bindings to libgio-2.0"
+#~ msgstr "Enlazando Guile para libgit2"
+
+#, fuzzy
+#~ msgid "Rust bindings for the GLib library"
+#~ msgstr "Enlaces binarios para liblo"
+
+#, fuzzy
+#~ msgid "Rust bindings for the GLib library."
+#~ msgstr "Enlaces binarios para liblo"
+
+#, fuzzy
+#~ msgid "FFI bindings to libglib-2.0"
+#~ msgstr "Enlazando Guile para libgit2"
+
+#, fuzzy
+#~ msgid "FFI bindings to libgobject-2.0"
+#~ msgstr "Enlazando Guile para libgit2"
+
+#, fuzzy
+#~ msgid "Rust bindings for the Pango library"
+#~ msgstr "Enlace Python para cairo"
+
+#, fuzzy
+#~ msgid "Rust bindings for the Pango library."
+#~ msgstr "Enlace Python para cairo"
+
+#, fuzzy
+#~ msgid "FFI bindings to libpango-1.0"
+#~ msgstr "Enlazando Python para librsvg"
+
+#, fuzzy
+#~ msgid "FFI bindings to libgtk-3"
+#~ msgstr "Enlazando Python para librsvg"
+
+#, fuzzy
+#~ msgid "High performance and very unsafe serialization library"
+#~ msgstr "Herramientas monitorizada de rendimiento para Linux"
+
+#, fuzzy
+#~ msgid ""
+#~ "This package provides a high performance and very unsafe serialization\n"
+#~ "library in Rust."
+#~ msgstr ""
+#~ "Este paquete proporciona un diccionario para la biblioteca de\n"
+#~ "comprobación ortográfica Hunspell."
+
+#, fuzzy
+#~ msgid "Implementation of the Adler32 rolling hash algorithm"
+#~ msgstr "Implementación del algoritmo de compresión Brotli"
+
+#, fuzzy
+#~ msgid "This package provides an atomically swappable Arc."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "Test CLI Applications"
+#~ msgstr "Aplicación de hojas de cálculo"
+
+#, fuzzy
+#~ msgid "Test CLI Applications."
+#~ msgstr "Aplicación de hojas de cálculo"
+
+#, fuzzy
+#~ msgid "Asserts that a value matches a pattern"
+#~ msgstr "Escribe líneas coincidiendo un patrón"
+
+#, fuzzy
+#~ msgid "Simple interface for querying atty"
+#~ msgstr "Interfaz SQlite para Perl"
+
+#, fuzzy
+#~ msgid "This package provides a simple interface for querying atty."
+#~ msgstr "Este módulo proporciona un interfaz Perlish para Amazon S3."
+
+#, fuzzy
+#~ msgid "This package provides bindings to the libbacktrace gcc library."
+#~ msgstr ""
+#~ "Este paquete proporciona un diccionario para la biblioteca de\n"
+#~ "comprobación ortográfica Hunspell."
+
+#, fuzzy
+#~ msgid "This package provides arbitrary precision decimal numbers."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "This package provides a vector of bits."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid ""
+#~ "This package provides an iterator over simple binary blob\n"
+#~ "storage."
+#~ msgstr ""
+#~ "Este paquete proporciona un diccionario para la biblioteca de\n"
+#~ "comprobación ortográfica Hunspell."
+
+#, fuzzy
+#~ msgid ""
+#~ "This package provides traits for description of block\n"
+#~ "ciphers."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "Iterator-based integer-only implementation of Bresenham's line algorithm"
+#~ msgstr "Una implementación Perl pura del algoritmo RC4."
+
+#, fuzzy
+#~ msgid "Brotli compressor and decompressor"
+#~ msgstr "Compresor/descompresor rápido"
+
+#, fuzzy
+#~ msgid "Brotli decompressor"
+#~ msgstr "Descompresor de archivos LHA"
+
+#, fuzzy
+#~ msgid "Rust bindings to libbzip2 for bzip2 compression and decompression"
+#~ msgstr "Compresor/descompresor rápido"
+
+#, fuzzy
+#~ msgid "Rust bindings to libbzip2"
+#~ msgstr "Enlazando Python para libvirt"
+
+#, fuzzy
+#~ msgid "Pure-Rust library to work with Linux capabilities"
+#~ msgstr "Biblioteca para trabajar con capacidades POSIX"
+
+# FUZZY
+#, fuzzy
+#~ msgid "Thin wrapper around the Argon2 C library"
+#~ msgstr "Recubrimiento C++ sobre la interfaz de ALSA"
+
+#, fuzzy
+#~ msgid "Date and time library for Rust"
+#~ msgstr "Objetos de fecha y hora para Perl"
+
+#, fuzzy
+#~ msgid "Date and time library for Rust."
+#~ msgstr "Objetos de fecha y hora para Perl"
+
+#, fuzzy
+#~ msgid "Rust bindings for libclang"
+#~ msgstr "Enlaces binarios para liblo"
+
+#, fuzzy
+#~ msgid "Low level interface to CloudABI"
+#~ msgstr "Interfaz alternativo para Fichero::Encontrar"
+
+#, fuzzy
+#~ msgid "Compile time random number generation"
+#~ msgstr "Demonio generador de número aleatorias"
+
+#, fuzzy
+#~ msgid "This package provides a crate for demangling C++ symbols."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "Lightweight alternative to is_x86_feature_detected"
+#~ msgstr "Interfaz ligero para memoria compartida"
+
+#, fuzzy
+#~ msgid "Library for retrieving and interacting with the crates.io index."
+#~ msgstr "Biblioteca C para crear e interpretar ficheros de configuración."
+
+#, fuzzy
+#~ msgid "This package provides a statistics-driven micro-benchmarking library."
+#~ msgstr ""
+#~ "Este paquete proporciona un diccionario para la biblioteca de\n"
+#~ "comprobación ortográfica Hunspell."
+
+#, fuzzy
+#~ msgid "Criterion's plotting library"
+#~ msgstr "Interpretador construyendo biblioteca"
+
+#, fuzzy
+#~ msgid "This package provides criterion's plotting library."
+#~ msgstr ""
+#~ "Este paquete proporciona un diccionario para la biblioteca de\n"
+#~ "comprobación ortográfica Hunspell."
+
+#, fuzzy
+#~ msgid "Crossplatform terminal library for manipulating terminals"
+#~ msgstr "Biblioteca C para manipulador de ficheros tar POSIX"
+
+#, fuzzy
+#~ msgid "Trait for Message Authentication Code (MAC) algorithms"
+#~ msgstr "Hash del Ojo para Mensaje Autenticado"
+
+#, fuzzy
+#~ msgid "Rust implementation of CSS Syntax Level 3"
+#~ msgstr "Implementación de DOM W3C"
+
+#, fuzzy
+#~ msgid "This package provides native bindings to the @code{libcurl} library."
+#~ msgstr ""
+#~ "Este paquete proporciona un diccionario para la biblioteca de\n"
+#~ "comprobación ortográfica Hunspell."
+
+#, fuzzy
+#~ msgid "Library for date and time formatting and arithmetic"
+#~ msgstr "Biblioteca para generación de ficheros PDF"
+
+#, fuzzy
+#~ msgid ""
+#~ "This package provides a library for date and time formatting\n"
+#~ "and arithmetic."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "Pure Rust implementation of the CIEDE2000 algorithm"
+#~ msgstr "Una implementación Perl pura del algoritmo RC4."
+
+#, fuzzy
+#~ msgid "Macros 1.1 implementation of error-chain"
+#~ msgstr "Paralelismo implementado para gzip"
+
+#, fuzzy
+#~ msgid "Library for command line prompts"
+#~ msgstr "Biblioteca para manipulación de ficheros PNG"
+
+#, fuzzy
+#~ msgid "This package provides a library for command line prompts and the like."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "Crate internal to Diesel"
+#~ msgstr "Caché de interfaz para Perl"
+
+#, fuzzy
+#~ msgid "This package provides a Rust text diffing and assertion library."
+#~ msgstr ""
+#~ "Este paquete proporciona un diccionario para la biblioteca de\n"
+#~ "comprobación ortográfica Hunspell."
+
+#, fuzzy
+#~ msgid "Traits for cryptographic hash functions"
+#~ msgstr "Biblioteca C para funcionalidad criptográfica de bajo nivel"
+
+#, fuzzy
+#~ msgid "Traits for cryptographic hash functions."
+#~ msgstr "Biblioteca C para funcionalidad criptográfica de bajo nivel"
+
+#, fuzzy
+#~ msgid ""
+#~ "This package provides a Rust wrapper for Apple's Grand\n"
+#~ "Central Dispatch."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "Command line argument parsing"
+#~ msgstr "Interfaz de mandato lineal para archive.org"
+
+#, fuzzy
+#~ msgid "Persistent vector, similar to Clojure"
+#~ msgstr "Almacenaje clave-valor persistente para almacenar rápido"
+
+#, fuzzy
+#~ msgid "@code{dotenv} implementation for Rust"
+#~ msgstr "Implementación Log4j para Perl"
+
+#, fuzzy
+#~ msgid "Library for running child processes"
+#~ msgstr "Biblioteca para interpretar ficheros SVG"
+
+#, fuzzy
+#~ msgid "Lightweight binding to DirectWrite"
+#~ msgstr "Cliente ligero Tox"
+
+#, fuzzy
+#~ msgid "Character encoding support for Rust"
+#~ msgstr "Enlazando Cairo para GNU Guile"
+
+#, fuzzy
+#~ msgid "Character encoding support for Rust."
+#~ msgstr "Enlazando Cairo para GNU Guile"
+
+#, fuzzy
+#~ msgid "Index tables for traditional Chinese character encodings"
+#~ msgstr "Codificación china adicional"
+
+#, fuzzy
+#~ msgid "Index tables for traditional Chinese character encodings."
+#~ msgstr "Codificación china adicional"
+
+#, fuzzy
+#~ msgid "Gecko-oriented implementation of the Encoding Standard"
+#~ msgstr "Implementación del algoritmo de compresión Brotli"
+
+#, fuzzy
+#~ msgid "Logging implementation for @code{log}"
+#~ msgstr "Implementación Log4j para Perl"
+
+#, fuzzy
+#~ msgid "XML parser library written in C"
+#~ msgstr "Biblioteca WebSockets escrita en C"
+
+#, fuzzy
+#~ msgid "Derives for the failure crate"
+#~ msgstr "Localiza ficheros en el sistema del fichero"
+
+#, fuzzy
+#~ msgid "Profiling and flamegraph library"
+#~ msgstr "Biblioteca interpreta fichero de configuración"
+
+#, fuzzy
+#~ msgid "A profiling and flamegraph library."
+#~ msgstr "Biblioteca para procesado y manipulación de CSS2"
+
+#, fuzzy
+#~ msgid "This package provides a human readable test library."
+#~ msgstr ""
+#~ "Este paquete proporciona un diccionario para la biblioteca de\n"
+#~ "comprobación ortográfica Hunspell."
+
+#, fuzzy
+#~ msgid ""
+#~ "This package provides proc macro attributes for the fluid\n"
+#~ "crate."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "Implementation of the Fowler-Noll-Vo hash function"
+#~ msgstr "Implementación del protocolo de transporte en tiempo real"
+
+#, fuzzy
+#~ msgid "Cross-platform font loading library"
+#~ msgstr "Plataforma de biblioteca de sonido cruzada"
+
+#, fuzzy
+#~ msgid "This package provides a cross-platform font loading library."
+#~ msgstr ""
+#~ "Este paquete proporciona un diccionario para la biblioteca de\n"
+#~ "comprobación ortográfica Hunspell."
+
+#, fuzzy
+#~ msgid "This package provides a framework for Rust wrappers over C APIs."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "This package provides bindings for FreeType font library."
+#~ msgstr ""
+#~ "Este paquete proporciona un diccionario para la biblioteca de\n"
+#~ "comprobación ortográfica Hunspell."
+
+#, fuzzy
+#~ msgid "This package provides low level binding for FreeType font library."
+#~ msgstr ""
+#~ "Este paquete proporciona un diccionario para la biblioteca de\n"
+#~ "comprobación ortográfica Hunspell."
+
+#, fuzzy
+#~ msgid "Extra file system methods"
+#~ msgstr "Montar fichero del sistema exFAT"
+
+#, fuzzy
+#~ msgid "Rust bindings for the Zircon kernel"
+#~ msgstr "Enlazando SQLite para Python"
+
+#, fuzzy
+#~ msgid "Rust bindings for the Zircon kernel."
+#~ msgstr "Enlazando SQLite para Python"
+
+#, fuzzy
+#~ msgid "Low-level Rust bindings for the Zircon kernel"
+#~ msgstr "Colección de utilidades para el núcleo Linux"
+
+#, fuzzy
+#~ msgid "Low-level Rust bindings for the Zircon kernel."
+#~ msgstr "Colección de utilidades para el núcleo Linux"
+
+#, fuzzy
+#~ msgid "Rust implementation of futures and streams"
+#~ msgstr "Implementación de Scheme y lenguajes relacionados"
+
+#, fuzzy
+#~ msgid "Implementation of zero-cost futures in Rust"
+#~ msgstr "Implementación del algoritmo de compresión Brotli"
+
+#, fuzzy
+#~ msgid "Implementation of thread pools which hand out futures"
+#~ msgstr "Implementación de Scheme y lenguajes relacionados"
+
+#, fuzzy
+#~ msgid "An implementation of futures and streams"
+#~ msgstr "Implementación de Scheme y lenguajes relacionados"
+
+#, fuzzy
+#~ msgid ""
+#~ "This package provides the asynchronous @code{Sink} trait for\n"
+#~ "the futures-rs library."
+#~ msgstr ""
+#~ "Este paquete proporciona un diccionario para la biblioteca de\n"
+#~ "comprobación ortográfica Hunspell."
+
+#, fuzzy
+#~ msgid ""
+#~ "This package provides the asynchronous @code{Sink} trait for the\n"
+#~ "futures-rs library."
+#~ msgstr ""
+#~ "Este paquete proporciona un diccionario para la biblioteca de\n"
+#~ "comprobación ortográfica Hunspell."
+
+#, fuzzy
+#~ msgid "Tools for working with tasks"
+#~ msgstr "Herramientas para trabajar con el formato de fichero PDF"
+
+#, fuzzy
+#~ msgid "Tools for working with tasks."
+#~ msgstr "Herramientas para trabajar con el formato de fichero PDF"
+
+#, fuzzy
+#~ msgid ""
+#~ "This package provides common utilities and extension traits\n"
+#~ "for the futures-rs library."
+#~ msgstr ""
+#~ "Este paquete proporciona un diccionario para la biblioteca de\n"
+#~ "comprobación ortográfica Hunspell."
+
+#, fuzzy
+#~ msgid "Package for generating 3D meshes"
+#~ msgstr "Biblioteca para generación de ficheros PDF"
+
+#, fuzzy
+#~ msgid "This package provides a package for generating 3D meshes/"
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "Rust library for option parsing for CLI utilities"
+#~ msgstr "Biblioteca C para crear e interpretar ficheros de configuración."
+
+#, fuzzy
+#~ msgid "This package provides raw FFI bindings for GNU Gettext."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "Library for graphs in the GFA (Graphical Fragment Assembly) format"
+#~ msgstr "Biblioteca para interpretación del formato Apple Keynote"
+
+#, fuzzy
+#~ msgid "Library for reading and writing the DWARF debugging format"
+#~ msgstr "Biblioteca para interpretación del formato AbiWord"
+
+#, fuzzy
+#~ msgid "Rust bindings to libgit2"
+#~ msgstr "Enlazando Guile para libgit2"
 
-#~ msgid "Fish completions for Guix"
+#, fuzzy
+#~ msgid "OpenGL wrapper"
+#~ msgstr "La cubierta del enlazador"
+
+#, fuzzy
+#~ msgid "Utilities for search oriented command line applications"
+#~ msgstr "Módulo para  manipular opciones de líneas de mandatos interpretandos"
+
+#, fuzzy
+#~ msgid "Trait for regular expressions"
+#~ msgstr "%s: la expresión regular no es válida: %s"
+
+#, fuzzy
+#~ msgid "HTTP/2.0 client and server"
+#~ msgstr "HTTP/1.1 cliente"
+
+#, fuzzy
+#~ msgid "@code{statice} friendly data structures"
+#~ msgstr "Compara datos Perl estructurados"
+
+#, fuzzy
+#~ msgid "Case conversion library"
+#~ msgstr "Biblioteca de conversión de conjunto de caracteres"
+
+#, fuzzy
+#~ msgid "Internal implementation of the hex-literal crate"
+#~ msgstr "Implementación alternativa de los rc shell por Byron Rakitzis"
+
+#, fuzzy
+#~ msgid "Internal implementation of the hex-literal crate."
+#~ msgstr "Implementación alternativa de los rc shell por Byron Rakitzis"
+
+#, fuzzy
+#~ msgid "Get hostname for Rust"
+#~ msgstr "Obtiene nombre de anfitrión completo en Perl"
+
+#, fuzzy
+#~ msgid "This package provides a tiny, safe, speedy, zero-copy HTTP/1.x parser."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "Parser and formatter for Duration and SystemTime"
+#~ msgstr "Interpreta y formatea fecha y hora iCal y cadenas de duración"
+
+#, fuzzy
+#~ msgid "Fast and correct HTTP library."
+#~ msgstr "Rápida y correcta E/S UTF-8"
+
+#, fuzzy
+#~ msgid "This package provides a fast and correct HTTP library."
+#~ msgstr ""
+#~ "Este paquete proporciona un diccionario para la biblioteca de\n"
+#~ "comprobación ortográfica Hunspell."
+
+#, fuzzy
+#~ msgid "Default TLS implementation for use with hyper"
+#~ msgstr "Implementación Log4j para Perl"
+
+#, fuzzy
+#~ msgid "Inotify bindings for Rust"
+#~ msgstr "Enlazando GLib para libusb1"
+
+#, fuzzy
+#~ msgid "This package provides inotify bindings for the Rust programming language."
+#~ msgstr ""
+#~ "Este paquete proporciona un diccionario para la biblioteca de\n"
+#~ "comprobación ortográfica Hunspell."
+
+#, fuzzy
+#~ msgid "This package provides a snapshot testing library for Rust."
+#~ msgstr ""
+#~ "Este paquete proporciona un diccionario para la biblioteca de\n"
+#~ "comprobación ortográfica Hunspell."
+
+#, fuzzy
+#~ msgid "Library for interpolation"
+#~ msgstr "Biblioteca para etiquetado de sonido"
+
+#, fuzzy
+#~ msgid "This package provides a library for interpolation."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid ""
+#~ "This package provides a library to work with IP CIDRs in\n"
+#~ "Rust."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "This package provides a Rust allocator backed by jemalloc."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "An implementation of the GNU make jobserver for Rust."
+#~ msgstr "Implementación alternativa de los rc shell por Byron Rakitzis"
+
+#, fuzzy
+#~ msgid "JSON implementation in Rust"
+#~ msgstr "Implementación JSON en C"
+
+#, fuzzy
+#~ msgid "This package provides a library providing a lazily filled Cell struct."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "Lexical, to- and from-string conversion routines"
+#~ msgstr "Rutinas de conversión de fecha Perl"
+
+#, fuzzy
+#~ msgid "Lexical, to- and from-string conversion routines."
+#~ msgstr "Rutinas de conversión de fecha Perl"
+
+#, fuzzy
+#~ msgid "This package provides a LZ77 encoder for libflate crate."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "Native bindings to the libgit2 library"
+#~ msgstr "Enlazando Guile para libgit2"
+
+#, fuzzy
+#~ msgid "This package provides native rust bindings to the @code{libgit2} library."
+#~ msgstr ""
+#~ "Este paquete proporciona un diccionario para la biblioteca de\n"
+#~ "comprobación ortográfica Hunspell."
+
+#, fuzzy
+#~ msgid "Rust library for loading dynamic libraries"
+#~ msgstr "Biblioteca para imágenes panorámicas"
+
+#, fuzzy
+#~ msgid "This package provides an implementation of libm in pure Rust."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "FFI bindings for libnghttp2 (nghttp2)"
+#~ msgstr "Enlazando Guile para libgit2"
+
+#, fuzzy
+#~ msgid "This package provides native rust bindings to the @code{libssh2} library."
+#~ msgstr ""
+#~ "Este paquete proporciona un diccionario para la biblioteca de\n"
+#~ "comprobación ortográfica Hunspell."
+
+#, fuzzy
+#~ msgid "Library for basic localisation"
+#~ msgstr "Biblioteca para etiquetado de sonido"
+
+#, fuzzy
+#~ msgid "This package provides a library for basic localisation."
+#~ msgstr ""
+#~ "Este paquete proporciona un diccionario para la biblioteca de\n"
+#~ "comprobación ortográfica Hunspell."
+
+#, fuzzy
+#~ msgid "Lightweight logging facade for Rust"
+#~ msgstr "Interfaz ligero para memoria compartida"
+
+#, fuzzy
+#~ msgid "Rust library for PDF document manipulation"
+#~ msgstr "Clase para manipulación de fecha y hora fácil"
+
+#, fuzzy
+#~ msgid "This package provides a Rust library for PDF document manipulation."
+#~ msgstr ""
+#~ "Este paquete proporciona un diccionario para la biblioteca de\n"
+#~ "comprobación ortográfica Hunspell."
+
+#, fuzzy
+#~ msgid "LZW compression and decompression"
+#~ msgstr "Compresor/descompresor rápido"
+
+#, fuzzy
+#~ msgid ""
+#~ "This package provides bindings to the OSX mach-o system\n"
+#~ "library"
+#~ msgstr ""
+#~ "Este paquete proporciona un diccionario para la biblioteca de\n"
+#~ "comprobación ortográfica Hunspell."
+
+#, fuzzy
+#~ msgid "Assembly implementation of MD5 compression function"
+#~ msgstr "Implementación Perl de protocolo PSYC"
+
+#, fuzzy
+#~ msgid "Safe interface to memchr"
+#~ msgstr "Caché de interfaz para Perl"
+
+#, fuzzy
+#~ msgid "Rust bindings for Metal"
+#~ msgstr "Enlaces binarios para liblo"
+
+#, fuzzy
+#~ msgid "Rust bindings for Metal."
+#~ msgstr "Enlaces binarios para liblo"
+
+#, fuzzy
+#~ msgid "DEFLATE compression and decompression API"
+#~ msgstr "Compresor/descompresor rápido"
+
+#, fuzzy
+#~ msgid "This package provides bindings to the @code{miniz.c} library."
+#~ msgstr ""
+#~ "Este paquete proporciona un diccionario para la biblioteca de\n"
+#~ "comprobación ortográfica Hunspell."
+
+#, fuzzy
+#~ msgid "Lightweight non-blocking IO"
+#~ msgstr "Cliente ligero Tox"
+
+#, fuzzy
+#~ msgid "Lightweight non-blocking IO."
+#~ msgstr "Cliente ligero Tox"
+
+#, fuzzy
+#~ msgid "Windows named pipe bindings for mio"
+#~ msgstr "Enlazando Tiger cableado para GNU Guile"
+
+#, fuzzy
+#~ msgid "Unix domain socket bindings for mio"
+#~ msgstr "Enlaces binarios para liblo"
+
+#, fuzzy
+#~ msgid "Rust I/O library for Windows"
+#~ msgstr "Biblioteca JSON para R"
+
+#, fuzzy
+#~ msgid "Model-based testing for data structures"
+#~ msgstr "Impresión bonita de estructura de datos"
+
+#, fuzzy
+#~ msgid "Define multiple implementations of trait"
+#~ msgstr "Paralelismo implementado para gzip"
+
+#, fuzzy
+#~ msgid "Linear algebra library"
+#~ msgstr "Biblioteca de abstracción de Sip"
+
+#, fuzzy
+#~ msgid ""
+#~ "This package provides Rust bindings for the Nettle\n"
+#~ "cryptographic library."
+#~ msgstr ""
+#~ "Este paquete proporciona un diccionario para la biblioteca de\n"
+#~ "comprobación ortográfica Hunspell."
+
+#, fuzzy
+#~ msgid ""
+#~ "This package provides low-level Rust bindings for the Nettle\n"
+#~ "cryptographic library."
+#~ msgstr ""
+#~ "Este paquete proporciona un diccionario para la biblioteca de\n"
+#~ "comprobación ortográfica Hunspell."
+
+#, fuzzy
+#~ msgid "Rust friendly bindings to *nix APIs"
+#~ msgstr "Enlazando Guile para ncurses"
+
+#, fuzzy
+#~ msgid ""
+#~ "This package provides a byte-oriented, zero-copy, parser\n"
+#~ "combinators library."
+#~ msgstr ""
+#~ "Este paquete proporciona un diccionario para la biblioteca de\n"
+#~ "comprobación ortográfica Hunspell."
+
+#, fuzzy
+#~ msgid "Cross-platform file system notification library"
+#~ msgstr "Plataforma de biblioteca de sonido cruzada"
+
+#, fuzzy
+#~ msgid "Cross-platform file system notification library."
+#~ msgstr "Plataforma de biblioteca de sonido cruzada"
+
+#, fuzzy
+#~ msgid "Testing framework for Rust"
+#~ msgstr "Impresión para marco de trabajo de GNOME"
+
+#, fuzzy
+#~ msgid "Test cases for ntest framework"
+#~ msgstr "Marco de pruebas de software GNU"
+
+#, fuzzy
+#~ msgid "This package provides test cases for ntest framework."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid ""
+#~ "This package provides a timeout attribute for the ntest\n"
+#~ "framework."
+#~ msgstr ""
+#~ "Este paquete proporciona un diccionario para la biblioteca de\n"
+#~ "comprobación ortográfica Hunspell."
+
+#, fuzzy
+#~ msgid "Big integer implementation for Rust"
+#~ msgstr "Implementación Log4j para Perl"
+
+#, fuzzy
+#~ msgid "Big integer implementation for Rust."
+#~ msgstr "Implementación Log4j para Perl"
+
+#, fuzzy
+#~ msgid "Complex numbers implementation for Rust"
+#~ msgstr "Implementación Log4j para Perl"
+
+#, fuzzy
+#~ msgid "Complex numbers implementation for Rust."
+#~ msgstr "Implementación Log4j para Perl"
+
+#, fuzzy
+#~ msgid "Rational numbers implementation for Rust"
+#~ msgstr "Paralelismo implementado para gzip"
+
+#, fuzzy
+#~ msgid "Rational numbers implementation for Rust."
+#~ msgstr "Paralelismo implementado para gzip"
+
+#, fuzzy
+#~ msgid "Utilities for testing Objective-C interop"
+#~ msgstr "Utilidades para E/S interactiva"
+
+#, fuzzy
+#~ msgid "This package provides utilities for testing Objective-C interop."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "Rust bindings for the Oniguruma regular expression library"
+#~ msgstr "Biblioteca de expresión regular"
+
+#, fuzzy
+#~ msgid "A tiny, robust PRNG implementation."
+#~ msgstr "Reimplementación de XAudio"
+
+#, fuzzy
+#~ msgid "This package provides a tiny, robust PRNG implementation."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "Macro for opaque debug trait implementation"
+#~ msgstr "Implementación bzip2 paralelo"
+
+#, fuzzy
+#~ msgid "Tools for working with the Ord subset of certain PartialOrd types"
+#~ msgstr "Herramientas para trabajar con el formato de fichero PDF"
+
+#, fuzzy
+#~ msgid "Cross-platform library for opening OS pipes"
+#~ msgstr "Plataforma cruzada de biblioteca MIDI para C++"
+
+#, fuzzy
+#~ msgid "A cross-platform library for opening OS pipes."
+#~ msgstr "Plataforma cruzada de biblioteca MIDI para C++"
+
+#, fuzzy
+#~ msgid "Library for padding strings at runtime"
+#~ msgstr "Biblioteca para interpretar ficheros SVG"
+
+#, fuzzy
+#~ msgid "This package provides a library for padding strings at runtime."
+#~ msgstr ""
+#~ "Este paquete proporciona un diccionario para la biblioteca de\n"
+#~ "comprobación ortográfica Hunspell."
+
+#, fuzzy
+#~ msgid "More compact and efficient implementations of the standard synchronization primitives"
+#~ msgstr "Implementación del algoritmo de compresión Brotli"
+
+#, fuzzy
+#~ msgid ""
+#~ "More compact and efficient implementations of the standard\n"
+#~ "synchronization primitives."
+#~ msgstr "Implementación del algoritmo de compresión Brotli"
+
+#, fuzzy
+#~ msgid "Implementation detail of the paste crate"
+#~ msgstr "Implementación de DOM W3C"
+
+#, fuzzy
+#~ msgid "Implementation detail of the paste crate."
+#~ msgstr "Implementación de DOM W3C"
+
+#, fuzzy
+#~ msgid "Rust implementation of cleanname or path.Clean"
+#~ msgstr "Implementación de Scheme y lenguajes relacionados"
+
+#, fuzzy
+#~ msgid "Generic implementation of PBKDF2"
+#~ msgstr "Implementación Perl de protocolo PSYC"
+
+#, fuzzy
+#~ msgid "High level wrapper library for PCRE2"
+#~ msgstr "Biblioteca cubierta para imlib2"
+
+#, fuzzy
+#~ msgid "Percent encoding and decoding"
+#~ msgstr "Determinación de codificación Perl local"
+
+#, fuzzy
+#~ msgid "Graph data structure library"
+#~ msgstr "Estructuras y algoritmos de datos gráficos"
+
+#, fuzzy
+#~ msgid ""
+#~ "Graph data structure library.  Provides graph types and graph\n"
+#~ "algorithms."
+#~ msgstr "Estructuras y algoritmos de datos gráficos"
+
+#, fuzzy
+#~ msgid "Codegen library for PHF types"
+#~ msgstr "Biblioteca descodificante para ficheros GIF"
+
+#, fuzzy
+#~ msgid "Codegen library for PHF types."
+#~ msgstr "Biblioteca descodificante para ficheros GIF"
+
+#, fuzzy
+#~ msgid "Utilities for pinning"
+#~ msgstr "Utilidades para E/S interactiva"
+
+#, fuzzy
+#~ msgid "This package provides utils for proc-macro."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "Implementation of the crypto-simd API for x86"
+#~ msgstr "Implementación del algoritmo de compresión Brotli"
+
+#, fuzzy
+#~ msgid "Auto-generated rust bindings for libpq"
+#~ msgstr "Enlaces binarios para liblo"
+
+#, fuzzy
+#~ msgid ""
+#~ "This package provides auto-generated rust bindings for\n"
+#~ "libpq."
+#~ msgstr ""
+#~ "Este paquete proporciona un diccionario para la biblioteca de\n"
+#~ "comprobación ortográfica Hunspell."
+
+#, fuzzy
+#~ msgid "Implementation of boolean-valued predicate functions"
+#~ msgstr "Implementación de Scheme y lenguajes relacionados"
+
+#, fuzzy
+#~ msgid "Drop-in replacements for assert_eq! and assert_ne!"
+#~ msgstr "Soltar sustitución para NEXT"
+
+#, fuzzy
+#~ msgid "This package provides a visually pretty env_logger."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "Library for printing pretty formatted tables in terminal"
+#~ msgstr "Biblioteca para interpretación del formato Apple Keynote"
+
+#, fuzzy
+#~ msgid "Stack manipulation and introspection routines"
+#~ msgstr "Fecha del rutinas de manipulación"
+
+#, fuzzy
+#~ msgid "This package provides a library for async wake signals."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "Quasi-quoting macro system"
+#~ msgstr "Sistema de control de revisiones"
+
+#, fuzzy
+#~ msgid "This package provides a quasi-quoting macro system."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "This package provides a macro attribute for quickcheck."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "A generic connection pool"
+#~ msgstr "Herramienta de detección de codificación del texto"
+
+#, fuzzy
+#~ msgid "Random number generators and other randomness functionality"
+#~ msgstr "Demonio generador de número aleatorias"
+
+#, fuzzy
+#~ msgid "ChaCha random number generator"
+#~ msgstr "Demonio generador de número aleatorias"
+
+#, fuzzy
+#~ msgid "ChaCha random number generator."
+#~ msgstr "Demonio generador de número aleatorias"
+
+#, fuzzy
+#~ msgid "HC128 random number generator"
+#~ msgstr "Demonio generador de número aleatorias"
+
+#, fuzzy
+#~ msgid "ISAAC random number generator"
+#~ msgstr "Demonio generador de número aleatorias"
+
+#, fuzzy
+#~ msgid "Random number generator based on timing jitter"
+#~ msgstr "Demonio generador de número aleatorias"
+
+#, fuzzy
+#~ msgid "OS backed Random Number Generator"
+#~ msgstr "Demonio generador de número aleatorias"
+
+#, fuzzy
+#~ msgid "OS backed Random Number Generator."
+#~ msgstr "Demonio generador de número aleatorias"
+
+#, fuzzy
+#~ msgid "Selected PCG random number generators"
+#~ msgstr "Demonio generador de número aleatorias"
+
+#, fuzzy
+#~ msgid "Xorshift random number generator"
+#~ msgstr "Demonio generador de número aleatorias"
+
+#, fuzzy
+#~ msgid "Xorshift random number generator."
+#~ msgstr "Demonio generador de número aleatorias"
+
+#, fuzzy
+#~ msgid "Reimplementation of the slice iterators, with extra features"
+#~ msgstr "Implementación del protocolo de transporte en tiempo real"
+
+#, fuzzy
+#~ msgid "Random number generator"
+#~ msgstr "Demonio generador de número aleatorias"
+
+#, fuzzy
+#~ msgid "A simple library for reading hex colors"
+#~ msgstr "Importar fichero filtrador de biblioteca para docuento de hojas de cálculo"
+
+#, fuzzy
+#~ msgid "This package provides a simple library for reading hex colors"
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "Access Redox users and groups"
+#~ msgstr "Obtiene mensajes para usuarios y boletines"
+
+#, fuzzy
+#~ msgid "Regular expressions for Rust"
+#~ msgstr "Biblioteca de expresión regular"
+
+#, fuzzy
+#~ msgid "Regular expression parser"
+#~ msgstr "Biblioteca de expresión regular"
+
+#, fuzzy
+#~ msgid "This package provides a regular expression parser."
+#~ msgstr "%s: la expresión regular no es válida: %s"
+
+#, fuzzy
+#~ msgid "Implementation of remove_dir_all for Windows"
+#~ msgstr "Implementación de Scheme y lenguajes relacionados"
+
+#, fuzzy
+#~ msgid "File reopening utility"
+#~ msgstr "Ruta de fichero de utilidad"
+
+#, fuzzy
+#~ msgid "File reopening utility."
+#~ msgstr "Ruta de fichero de utilidad"
+
+#, fuzzy
+#~ msgid "High level HTTP client library"
+#~ msgstr "Cliente biblioteca Python MPD"
+
+#, fuzzy
+#~ msgid "This package provides a high level HTTP client library."
+#~ msgstr ""
+#~ "Este paquete proporciona un diccionario para la biblioteca de\n"
+#~ "comprobación ortográfica Hunspell."
+
+#, fuzzy
+#~ msgid "Wrapper for SQLite"
+#~ msgstr "Recubridor para LaTeX y similares"
+
+#, fuzzy
+#~ msgid "This prackage provides a wrapper for SQLite."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "Rust implementation of the Argon2 password hashing function"
+#~ msgstr "Implementación del lenguaje de programación Perl"
+
+#, fuzzy
+#~ msgid "This package provides a helper crate for hawktracer profiling library."
+#~ msgstr ""
+#~ "Este paquete proporciona un diccionario para la biblioteca de\n"
+#~ "comprobación ortográfica Hunspell."
+
+#, fuzzy
+#~ msgid "This package provides a sys crate for the rust_hawktracer library."
+#~ msgstr ""
+#~ "Este paquete proporciona un diccionario para la biblioteca de\n"
+#~ "comprobación ortográfica Hunspell."
+
+#, fuzzy
+#~ msgid "Automatically published versions of rustc data structures"
+#~ msgstr "Volcado parcial de estructuras de datos"
+
+#, fuzzy
+#~ msgid ""
+#~ "This package provides a library for querying the version of a installed\n"
+#~ "rustc compiler."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "Modern TLS library written in Rust."
+#~ msgstr "Biblioteca WebSockets escrita en C"
+
+#, fuzzy
+#~ msgid "Library for running Rust tests in sub-processes"
+#~ msgstr "Biblioteca para manipulación de ficheros de recursos icns Mac OS"
+
+#, fuzzy
+#~ msgid "Library for scoped and cached threadpools"
+#~ msgstr "Biblioteca para interpretación del formato FreeHand"
+
+#, fuzzy
+#~ msgid "Library for section-style testing"
+#~ msgstr "Biblioteca para etiquetado de sonido"
+
+#, fuzzy
+#~ msgid "This package provides a library for section-style testing."
+#~ msgstr ""
+#~ "Este paquete proporciona un diccionario para la biblioteca de\n"
+#~ "comprobación ortográfica Hunspell."
+
+#, fuzzy
+#~ msgid "Rust semaphore library"
+#~ msgstr "Biblioteca vectorial bit"
+
+#, fuzzy
+#~ msgid "Rust semaphore library."
+#~ msgstr "Biblioteca vectorial bit"
+
+#, fuzzy
+#~ msgid "This package provides for parsing of the semver spec."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "Generic serialization/deserialization framework"
+#~ msgstr "Serialización/deserialización de JSON para Perl"
+
+#, fuzzy
+#~ msgid "This package provides a big array helper for serde."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "CBOR support for serde"
+#~ msgstr "Apoyo booleano para Perl"
+
+#, fuzzy
+#~ msgid "CBOR support for serde."
+#~ msgstr "Apoyo booleano para Perl"
+
+#, fuzzy
+#~ msgid "YAML support for Serde"
+#~ msgstr "Apoyo booleano para Perl"
+
+#, fuzzy
+#~ msgid "YAML support for Serde."
+#~ msgstr "Capacidad SSL para Net::SMTP."
+
+#, fuzzy
+#~ msgid "Helper crate for serial_test"
+#~ msgstr "Clases ayudante para pruebas Jetty"
+
+#, fuzzy
+#~ msgid "Rust bindings for fontconfig"
+#~ msgstr "Enlazando SQLite para Python"
+
+# FUZZY
+#, fuzzy
+#~ msgid "Rust wrapper around freetype"
+#~ msgstr "Recubrimiento C++ sobre la interfaz de ALSA"
+
+#, fuzzy
+#~ msgid "This package provides a Rust wrapper around the FreeType library."
+#~ msgstr ""
+#~ "Este paquete proporciona un diccionario para la biblioteca de\n"
+#~ "comprobación ortográfica Hunspell."
+
+#, fuzzy
+#~ msgid "Minimal implementation of SHA1 for Rust"
+#~ msgstr "Implementación Perl de protocolo PSYC"
+
+#, fuzzy
+#~ msgid "Minimal implementation of SHA1 for Rust."
+#~ msgstr "Implementación Perl de protocolo PSYC"
+
+#, fuzzy
+#~ msgid "Assembly implementation of SHA-1 compression function"
+#~ msgstr "Implementación Perl de protocolo PSYC"
+
+#, fuzzy
+#~ msgid "Assembly implementation of SHA-1 compression function."
+#~ msgstr "Implementación Perl de protocolo PSYC"
+
+#, fuzzy
+#~ msgid "Assembly implementation of SHA-2"
+#~ msgstr "Paralelismo implementado para gzip"
+
+#, fuzzy
+#~ msgid "Helper library for detecting and picking compatible shaders"
+#~ msgstr "Biblioteca C para crear e interpretar ficheros de configuración."
+
+#, fuzzy
+#~ msgid ""
+#~ "This package provides a helper library for detecting and\n"
+#~ "picking compatible shaders."
+#~ msgstr ""
+#~ "Este paquete proporciona un diccionario para la biblioteca de\n"
+#~ "comprobación ortográfica Hunspell."
+
+#, fuzzy
+#~ msgid "Unix signal handling"
+#~ msgstr "Manipular fecha simple"
+
+#, fuzzy
+#~ msgid "SIMD algebra for Rust"
+#~ msgstr "Biblioteca JSON para R"
+
+#, fuzzy
+#~ msgid "RSpec inspired testing framework for Rust"
+#~ msgstr "Marco de pruebas de software GNU"
+
+#, fuzzy
+#~ msgid "Simple SPMC channel"
+#~ msgstr "Distribución simple ASCII"
+
+#, fuzzy
+#~ msgid "New standard library, old compiler"
+#~ msgstr "Biblioteca estándar de C++ de GNU"
+
+#, fuzzy
+#~ msgid "New standard library, old compiler."
+#~ msgstr "Biblioteca estándar de C++ de GNU"
+
+#, fuzzy
+#~ msgid ""
+#~ "This package provides a standard library for the client-side\n"
+#~ "Web."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "Stream cipher traits"
+#~ msgstr "Editorde flujo"
+
+#, fuzzy
+#~ msgid "String interning library for Rust"
+#~ msgstr "Biblioteca de cadena interna"
+
+#, fuzzy
+#~ msgid "Codegen library for string-cache"
+#~ msgstr "Biblioteca C para interpretar JSON"
+
+#, fuzzy
+#~ msgid "Rust implementations of string similarity metrics"
+#~ msgstr "Implementación de una clase simple para Perl"
+
+#, fuzzy
+#~ msgid "This package provides the test suite of the syn crate."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "Backport of libsyntax"
+#~ msgstr "Puerto Java ágil"
+
+#, fuzzy
+#~ msgid "Simplified interface to libc::sysctl"
+#~ msgstr "Interfaz de mandato lineal para libtocc"
+
+#, fuzzy
+#~ msgid "Simplified interface to libc::sysctl."
+#~ msgstr "Interfaz de mandato lineal para libtocc"
+
+#, fuzzy
+#~ msgid "Send log messages to syslog"
+#~ msgstr "Obtiene mensajes para usuarios y boletines"
+
+#, fuzzy
+#~ msgid "Send log messages to syslog."
+#~ msgstr "Obtiene mensajes para usuarios y boletines"
+
+#, fuzzy
+#~ msgid "Library for managing temporary files and directories"
+#~ msgstr "Biblioteca para manipulación de ficheros PNG"
+
+#, fuzzy
+#~ msgid "Terminal formatting library"
+#~ msgstr "Herramientas monitorizada de rendimiento para Linux"
+
+#, fuzzy
+#~ msgid "This package provides a terminal formatting library."
+#~ msgstr ""
+#~ "Este paquete proporciona un diccionario para la biblioteca de\n"
+#~ "comprobación ortográfica Hunspell."
+
+#, fuzzy
+#~ msgid ""
+#~ "This package provides a library for formatting strings into a\n"
+#~ "grid layout."
+#~ msgstr ""
+#~ "Este paquete proporciona un diccionario para la biblioteca de\n"
+#~ "comprobación ortográfica Hunspell."
+
+#, fuzzy
+#~ msgid "Determine terminal sizes and dimensions"
+#~ msgstr "Obtener tamaño del terminal"
+
+#, fuzzy
+#~ msgid "Library for writing colored text to a terminal"
+#~ msgstr "Biblioteca para importar documentos WordPerfect"
+
+#, fuzzy
+#~ msgid "Terminal information"
+#~ msgstr "Emulador de terminal"
+
+#, fuzzy
+#~ msgid "Library for manipulating terminals"
+#~ msgstr "Biblioteca C para manipulador de ficheros tar POSIX"
+
+#, fuzzy
+#~ msgid "This package provides a bindless library for manipulating terminals."
+#~ msgstr ""
+#~ "Este paquete proporciona un diccionario para la biblioteca de\n"
+#~ "comprobación ortográfica Hunspell."
+
+#, fuzzy
+#~ msgid "Safe bindings for the termios library"
+#~ msgstr "Enlazando SQLite para Python"
+
+#, fuzzy
+#~ msgid "Implementation detail of the thiserror crate"
+#~ msgstr "Implementación del protocolo de transporte en tiempo real"
+
+#, fuzzy
+#~ msgid "Date and time library"
+#~ msgstr "Objetos de fecha y hora para Perl"
+
+#, fuzzy
+#~ msgid "Simple time handling in Rust"
+#~ msgstr "Manipular fecha simple"
+
+#, fuzzy
+#~ msgid ""
+#~ "This package provides procedural macros for the time\n"
+#~ "crate."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "This package provides a timeout mechanism for unit tests."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "Utilities for encoding and decoding frames"
+#~ msgstr "Sofware para grabación y edición de sonido"
+
+#, fuzzy
+#~ msgid "Utilities for encoding and decoding frames."
+#~ msgstr "Sofware para grabación y edición de sonido"
+
+#, fuzzy
+#~ msgid "File system API for Tokio"
+#~ msgstr "Montar fichero del sistema exFAT"
+
+#, fuzzy
+#~ msgid "Windows named pipe bindings for tokio"
+#~ msgstr "Enlazando Tiger cableado para GNU Guile"
+
+#, fuzzy
+#~ msgid "TCP bindings for tokio"
+#~ msgstr "Enlaces binarios para liblo"
+
+#, fuzzy
+#~ msgid "TCP bindings for tokio."
+#~ msgstr "Enlaces binarios para liblo"
+
+#, fuzzy
+#~ msgid "Timer facilities for Tokio"
+#~ msgstr "Capacidad matemática AMS para LaTeX"
+
+#, fuzzy
+#~ msgid "UDP bindings for tokio"
+#~ msgstr "Enlaces binarios para liblo"
+
+#, fuzzy
+#~ msgid "UDP bindings for tokio."
+#~ msgstr "Enlaces binarios para liblo"
+
+#, fuzzy
+#~ msgid "Utilities for working with @code{Service}"
+#~ msgstr "Utilidades para E/S interactiva"
+
+#, fuzzy
+#~ msgid "Application-level tracing for Rust"
+#~ msgstr "Aplicación contenedora de servicio"
+
+#, fuzzy
+#~ msgid "Library for visualizing tree structured data"
+#~ msgstr "Biblioteca para interpretación del formato FreeHand"
+
+#, fuzzy
+#~ msgid "Safe and secure DNS library"
+#~ msgstr "Intérprete CSS y selección de biblioteca"
+
+#, fuzzy
+#~ msgid "Lightweight atomic lock"
+#~ msgstr "Cliente ligero Tox"
+
+#, fuzzy
+#~ msgid "The arena allocator"
+#~ msgstr "Emulador de terminal"
+
+#, fuzzy
+#~ msgid "library for working with the Unicode character database"
+#~ msgstr "Biblioteca para trabajar con capacidades POSIX"
+
+#, fuzzy
+#~ msgid "Implementation of the Unicode Bidirectional Algorithm"
+#~ msgstr "Implementación del algoritmo de compresión Brotli"
+
+#, fuzzy
+#~ msgid "Implementation of the Unicode Bidirectional Algorithm."
+#~ msgstr "Implementación del algoritmo de compresión Brotli"
+
+#, fuzzy
+#~ msgid "This package provides traits for universal hash functions."
+#~ msgstr ""
+#~ "Este paquete proporciona un diccionario para la biblioteca de\n"
+#~ "comprobación ortográfica Hunspell."
+
+#, fuzzy
+#~ msgid "This package provides a table-driven UTF-8 parser."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "Library to generate and parse UUIDs"
+#~ msgstr "Biblioteca para generación de ficheros PDF"
+
+#, fuzzy
+#~ msgid "This package provides a library to generate and parse UUIDs."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "Generate and parse UUIDs"
+#~ msgstr "Genera y utiliza intérpretes LALR"
+
+#, fuzzy
+#~ msgid "Generate version related functions"
+#~ msgstr "Rutinas de conversión de fecha Perl"
+
+#, fuzzy
+#~ msgid "Generate version related functions."
+#~ msgstr "Rutinas de conversión de fecha Perl"
+
+#, fuzzy
+#~ msgid "Recursively walk a directory"
+#~ msgstr "Copia recursivamente de ficheros y directorios"
+
+#, fuzzy
+#~ msgid "Recursively walk a directory."
+#~ msgstr "Copia recursivamente de ficheros y directorios"
+
+#, fuzzy
+#~ msgid ""
+#~ "This package provides a dumping ground for high level safe wrappers over\n"
+#~ "winapi."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "Rust bindings to liblzma"
+#~ msgstr "Enlaces binarios para liblo"
+
+#, fuzzy
+#~ msgid "Implementation of zbase32"
+#~ msgstr "Implementación de DOM W3C"
+
+#, fuzzy
+#~ msgid "Custom derive support for zeroize"
+#~ msgstr "Apoyo extensivo para hipertexto en LaTeX"
+
+#, fuzzy
+#~ msgid "Library to support the reading and writing of zip files"
+#~ msgstr "Biblioteca C para crear e interpretar ficheros de configuración."
+
+#, fuzzy
+#~ msgid "Library to support the reading and writing of zip files."
+#~ msgstr "Biblioteca C para crear e interpretar ficheros de configuración."
+
+#, fuzzy
+#~ msgid "Library for parsing compiled zoneinfo files"
+#~ msgstr "Biblioteca para interpretar ficheros SVG"
+
+#, fuzzy
+#~ msgid "This package provides a library for parsing compiled zoneinfo files."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "Binding to the zstd compression library"
+#~ msgstr "Biblioteca Zip de compresión"
+
+#, fuzzy
+#~ msgid ""
+#~ "This package provides a binding to the zstd compression\n"
+#~ "library."
+#~ msgstr ""
+#~ "Este paquete proporciona un diccionario para la biblioteca de\n"
+#~ "comprobación ortográfica Hunspell."
+
+#, fuzzy
+#~ msgid "Safe low-level bindings to the zstd compression library"
+#~ msgstr "Biblioteca portable de compresión de datos sin pérdida"
+
+#, fuzzy
+#~ msgid ""
+#~ "This package provides safe low-level bindings to the zstd\n"
+#~ "compression library."
+#~ msgstr ""
+#~ "Este paquete proporciona un diccionario para la biblioteca de\n"
+#~ "comprobación ortográfica Hunspell."
+
+#, fuzzy
+#~ msgid "Low-level bindings to the zstd compression library"
+#~ msgstr "Biblioteca portable de compresión de datos sin pérdida"
+
+#, fuzzy
+#~ msgid ""
+#~ "This package provides low-level Rust bindings to the zstd\n"
+#~ "compression library."
+#~ msgstr ""
+#~ "Este paquete proporciona un diccionario para la biblioteca de\n"
+#~ "comprobación ortográfica Hunspell."
+
+#, fuzzy
+#~ msgid "Portable NaCl-based crypto library"
+#~ msgstr "Biblioteca de sistema de acceso portable"
+
+#, fuzzy
+#~ msgid "Minisign verification library for Golang"
+#~ msgstr "Cliente biblioteca Redis para Guile"
+
+#, fuzzy
+#~ msgid "Encrypted virtual file system"
+#~ msgstr "Sistema de ficheros en espacio de usuaria para GIO"
+
+#, fuzzy
+#~ msgid "Linux key management utilities"
+#~ msgstr "Utilidad de gestión de disco para GNOME"
+
+#, fuzzy
+#~ msgid "Shamir's secret sharing scheme implementation"
+#~ msgstr "Pequeña implementación Scheme embebible"
+
+#, fuzzy
+#~ msgid "Password hashing library"
+#~ msgstr "Interpretador construyendo biblioteca"
+
+#, fuzzy
+#~ msgid "C implementation of the ISAAC PRNG algorithm"
+#~ msgstr "Una implementación Perl pura del algoritmo RC4."
+
+#, fuzzy
+#~ msgid "Perl interface to the ISAAC PRNG algorithm"
+#~ msgstr "Interfaz Perl para algoritmo MD-5"
+
+#, fuzzy
+#~ msgid "Cryptographic library in C++11"
+#~ msgstr "Biblioteca de gráficos 2D"
+
+#, fuzzy
+#~ msgid "Command-line utility for encrypting and decrypting files and streams"
+#~ msgstr "Utilidad de línea de mandato para buscar texto en ficheros PDF"
+
+#, fuzzy
+#~ msgid "Implementation of the olm and megolm cryptographic ratchets"
+#~ msgstr "Implementación del lenguaje de programación Perl"
+
+#, fuzzy
+#~ msgid "Hard disk encryption tool (statically linked)"
+#~ msgstr "Unión de espacio de usuario al fichero de sistema (enlazado estático)"
+
+#, fuzzy
+#~ msgid "Portable C compiler"
+#~ msgstr "Biblioteca de sistema de acceso portable"
+
+#, fuzzy
+#~ msgid "Tiny C library for working with arbitrary big sizes in bytes"
+#~ msgstr "Biblioteca para trabajar con capacidades POSIX"
+
+#, fuzzy
+#~ msgid "C library implementing various data structures"
+#~ msgstr "Impresión bonita de estructura de datos"
+
+#, fuzzy
+#~ msgid "Fast JSON library for C"
+#~ msgstr "Biblioteca JSON para R"
+
+#, fuzzy
+#~ msgid "Python bindings for libcups"
+#~ msgstr "Enlaces binarios para liblo"
+
+#, fuzzy
+#~ msgid "Command-line HTTP client"
+#~ msgstr "Cliente WebDAV por mandato lineal"
+
+#, fuzzy
+#~ msgid "Curl bindings for Guile"
+#~ msgstr "Enlazando XOSD para Guile"
+
+# FUZZY
+#, fuzzy
+#~ msgid "C++ wrapper around libcURL"
+#~ msgstr "Recubrimiento C++ sobre la interfaz de ALSA"
+
+#, fuzzy
+#~ msgid "Job application organizer"
+#~ msgstr "Gestor de sesiones de aplicaciones de sonido"
+
+#, fuzzy
+#~ msgid "Generic data structures library"
+#~ msgstr "Compara datos Perl estructurados"
+
+#, fuzzy
+#~ msgid "Trie data structure C++ library"
+#~ msgstr "Biblioteca Zip de compresión"
+
+#, fuzzy
+#~ msgid "Memory-efficient hashtable implementations"
+#~ msgstr "Implementación de lisp de tipo Scheme"
+
+#, fuzzy
+#~ msgid "Succinct data structure library"
+#~ msgstr "Biblioteca de abstracción de Sip"
+
+#, fuzzy
+#~ msgid "Lightweight suffix-sorting library"
+#~ msgstr "Biblioteca de filtro de sonido ligero"
+
+#, fuzzy
+#~ msgid "Lightweight CalDAV/CardDAV server"
+#~ msgstr "Servidor ligero HTTP"
+
+#~ msgid "Berkeley database"
+#~ msgstr "DB Berkeley"
+
+#, fuzzy
+#~ msgid "Lightweight direct connect client with a friendly ncurses interface"
+#~ msgstr "Cliente BitTorrent con interfaz ncurses"
+
+#, fuzzy
+#~ msgid "Configuration language guaranteed to terminate"
+#~ msgstr "Ficheros de configuración e interpretando mandatos de línea"
+
+#, fuzzy
+#~ msgid "Implementation of DICT server (RFC 2229)"
+#~ msgstr "Implementación de DOM W3C"
+
+#, fuzzy
+#~ msgid "Lexical processing toolbox"
+#~ msgstr "Biblioteca de procesamiento Speex"
+
+#, fuzzy
+#~ msgid "Compare files, archives, and directories in depth"
+#~ msgstr "Quita ficheros y directorios en Perl"
+
+#, fuzzy
+#~ msgid "Direct Connect client"
+#~ msgstr "Cliente MUD y telnet"
+
+#, fuzzy
+#~ msgid "Device and file system manager"
+#~ msgstr "Montar fichero del sistema exFAT"
+
+#, fuzzy
+#~ msgid "Utilities for making and checking MS-DOS FAT file systems"
+#~ msgstr "Creando y comprobando sistemas de ficheros ext2/ext3/ext4"
+
+#, fuzzy
+#~ msgid "Parted bindings for Python"
+#~ msgstr "Enlazando SQLite para Python"
+
+#, fuzzy
+#~ msgid "Manipulate storage volume encryption keys"
+#~ msgstr "Daemon para el almacenamiento de contraseñas y claves de cifrado"
+
+#, fuzzy
+#~ msgid "Library for manipulating block devices"
+#~ msgstr "Biblioteca C para manipulador de ficheros tar POSIX"
+
+#, fuzzy
+#~ msgid "Lightweight display manager"
+#~ msgstr "Gestor de portapapeles GTK+ ligero"
+
+#, fuzzy
+#~ msgid "Custom management extensions for Django"
+#~ msgstr "Herramienta de gestor de energía para Linux"
+
+#, fuzzy
+#~ msgid "Django plugin for py.test"
+#~ msgstr "Complementos LV2 para usar live"
+
+#, fuzzy
+#~ msgid "Asset management for Django"
+#~ msgstr "Herramienta de gestor de energía para Linux"
+
+#, fuzzy
+#~ msgid "Drop-in replacement for django's own ManyToManyField"
+#~ msgstr "Soltar sustitución para NEXT"
+
+#, fuzzy
+#~ msgid "Generate JavaScript catalog to static files"
+#~ msgstr "Genera JavaScript para enlaces DOM"
+
+#, fuzzy
+#~ msgid "Django LDAP authentication backend"
+#~ msgstr "Marco de trabajo para autenticación SASL"
+
+#, fuzzy
+#~ msgid "Log requests/responses in various formats"
+#~ msgstr "Petición/respuestas HTTP interpretadas para C"
+
+#, fuzzy
+#~ msgid "Implementation of DjVu, the document format"
+#~ msgstr "Implementación del algoritmo de compresión Brotli"
+
+#, fuzzy
+#~ msgid "LLVM-based compiler for the D programming language"
+#~ msgstr "Manual de referencia para el lenguaje de programación C"
+
+#, fuzzy
+#~ msgid "Package and build manager for D projects"
+#~ msgstr "Gestor de Paquetes para Guile"
+
+#, fuzzy
+#~ msgid "Domain Name System (DNS) implementation"
+#~ msgstr "Pequeña implementación Scheme embebible"
+
+#, fuzzy
+#~ msgid "Minimal mDNS resolver library"
+#~ msgstr "Biblioteca de controladores para juegos"
+
+#, fuzzy
+#~ msgid "Small lightweight DNS server"
+#~ msgstr "Servidor ligero HTTP"
+
+#, fuzzy
+#~ msgid "DocBook to LaTeX Publishing"
+#~ msgstr "Añade color a tablas LaTeX"
+
+#, fuzzy
+#~ msgid "Python client for Docker"
+#~ msgstr "Cliente biblioteca Python MPD"
+
+#, fuzzy
+#~ msgid "Python bindings for the Docker credentials store API"
+#~ msgstr "Enlace Python para cairo"
+
+#, fuzzy
+#~ msgid "Networking for containers"
+#~ msgstr "Gestor de conexión a red"
+
+#, fuzzy
+#~ msgid "Command line interface to Docker"
+#~ msgstr "Interfaz de mandato lineal para libtocc"
+
+#, fuzzy
+#~ msgid "This package provides a command line interface to Docker."
+#~ msgstr "Este módulo proporciona un interfaz Perlish para Amazon S3."
+
+#, fuzzy
+#~ msgid "Text-based document generation system"
+#~ msgstr "Sistema personal de indexado de documentos"
+
+#, fuzzy
+#~ msgid "Open Documentation Cataloging Project"
+#~ msgstr "Utilidades de documentación para el proyecto GNOME"
+
+#, fuzzy
+#~ msgid "Offline documentation browser inspired by Dash"
+#~ msgstr "Documentación de API para GNOME"
+
+#, fuzzy
+#~ msgid "Library for CHM files"
+#~ msgstr "Biblioteca para manipulación de ficheros MNG"
+
+#, fuzzy
+#~ msgid "E-book library management software"
+#~ msgstr "Servicio de gestión de color"
+
+#, fuzzy
+#~ msgid "CHM file viewer"
+#~ msgstr "Visor de imágenes de GNOME"
+
+#, fuzzy
+#~ msgid "Educational software suite"
+#~ msgstr "Enrutando Suite Software"
+
+#, fuzzy
+#~ msgid "Touch typing tutor"
+#~ msgstr "Tutor de mecanografía"
+
+#, fuzzy
+#~ msgid "Visual, blocks based programming language"
+#~ msgstr "Manual de referencia para el lenguaje de programación C"
+
+#, fuzzy
+#~ msgid "Mentored learning for programming languages"
+#~ msgstr "Manual de referencia para el lenguaje de programación C"
+
+#, fuzzy
+#~ msgid "Library for using serial ports"
+#~ msgstr "Biblioteca para interpretación del formato FreeHand"
+
+#, fuzzy
+#~ msgid "Command-line frontend for sigrok"
+#~ msgstr "Interfaz de mandato lineal para libtocc"
+
+#, fuzzy
+#~ msgid "ELF object file access library"
+#~ msgstr "Biblioteca de sistema de acceso portable"
+
+#, fuzzy
+#~ msgid "Elixir programming language"
+#~ msgstr "Programación de juegos"
+
+#, fuzzy
+#~ msgid "Multilingual text processing library (runtime)"
+#~ msgstr "Biblioteca de procesamiento Speex"
+
+#, fuzzy
+#~ msgid "Emacs major modes for Git configuration files"
+#~ msgstr "Obtiene directorios de ficheros de configuración"
+
+#, fuzzy
+#~ msgid "Emacs bindings for libgit2"
+#~ msgstr "Enlazando Guile para libgit2"
+
+#, fuzzy
+#~ msgid "Emacs interface for the Git version control system"
+#~ msgstr "Sistema de control de versión descentralizado"
+
+#, fuzzy
+#~ msgid "Git-SVN extension to Magit"
+#~ msgstr "Extensión OpenGL para GTK+"
+
+#, fuzzy
+#~ msgid "Git-annex support for Magit"
+#~ msgstr "Capacidad Babel para inglés"
+
+#, fuzzy
+#~ msgid "Minor mode for interactive Haskell"
+#~ msgstr "El shell interactivo amigable"
+
+#, fuzzy
+#~ msgid "Simple Web browser for Emacs based on w3m"
+#~ msgstr "Reproductor multimedia para GNOME basado en GStreamer"
+
+#, fuzzy
+#~ msgid "Simple file downloader for Emacs based on wget"
+#~ msgstr "Reproductor multimedia para GNOME basado en GStreamer"
+
+#, fuzzy
+#~ msgid "Contact management utility for Emacs"
+#~ msgstr "Utilidad de gestión de disco para GNOME"
+
+#, fuzzy
+#~ msgid ""
+#~ "This package provides commands for visiting and acting on\n"
+#~ "links."
+#~ msgstr ""
+#~ "Este paquete proporciona un diccionario para la biblioteca de\n"
+#~ "comprobación ortográfica Hunspell."
+
+#, fuzzy
+#~ msgid "Calendar framework for Emacs"
+#~ msgstr "Impresión para marco de trabajo de GNOME"
+
+#, fuzzy
+#~ msgid "Direnv integration for Emacs"
+#~ msgstr "Información del conjunto de caracteres en mensajes MIME"
+
+#, fuzzy
+#~ msgid "Emacs support library for PDF files"
+#~ msgstr "Compatibilidad CMap para ficheros PDF"
+
+#, fuzzy
+#~ msgid "Modern list library for Emacs"
+#~ msgstr "Cliente biblioteca Redis para Guile"
+
+#, fuzzy
+#~ msgid "This package provides a modern list API library for Emacs."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "Emacs interface for GNU Guix"
+#~ msgstr "Interfaz de usuario para gnushogi"
+
+#, fuzzy
+#~ msgid "Emacs minor mode for a nice writing environment"
+#~ msgstr "Entorno descripción expandido"
+
+#, fuzzy
+#~ msgid ""
+#~ "This package provides an Emacs minor mode that puts writing\n"
+#~ "in the center."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "Emacs string manipulation library"
+#~ msgstr "Biblioteca para procesado y manipulación de CSS2"
+
+#, fuzzy
+#~ msgid ""
+#~ "This package provides an Emacs library for manipulating\n"
+#~ "strings."
+#~ msgstr ""
+#~ "Este paquete proporciona un diccionario para la biblioteca de\n"
+#~ "comprobación ortográfica Hunspell."
+
+#, fuzzy
+#~ msgid "Emacs API for working with files and directories"
+#~ msgstr "Herramientas para trabajar con el formato de fichero PDF"
+
+#, fuzzy
+#~ msgid ""
+#~ "This package provides an Emacs library for working with\n"
+#~ "files and directories."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "See and manage hunks of text in a version control system"
+#~ msgstr "Sistema de control de versión descentralizado"
+
+#, fuzzy
+#~ msgid "Dired-mode interface for fd result"
+#~ msgstr "Interfaz SQlite para Perl"
+
+#, fuzzy
+#~ msgid ""
+#~ "This package provides a dired-mode interface for fd's\n"
+#~ "result."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "Test coverage library for Emacs Lisp"
+#~ msgstr "Biblioteca descodificante para ficheros GIF"
+
+#, fuzzy
+#~ msgid "Live web development in Emacs"
+#~ msgstr "Estudio de desarrollo web"
+
+#, fuzzy
+#~ msgid "Org-babel support for Erlang"
+#~ msgstr "Capacidad Babel para inglés"
+
+#, fuzzy
+#~ msgid "SQLite interface for Emacs Lisp"
+#~ msgstr "Interfaz SQlite para Perl"
+
+#, fuzzy
+#~ msgid "Namespace implementation for Emacs Lisp"
+#~ msgstr "Paralelismo implementado para gzip"
+
+#, fuzzy
+#~ msgid "Ledger support for Flycheck"
+#~ msgstr "Enlazando Cairo para GNU Guile"
+
+#, fuzzy
+#~ msgid "Rust/Cargo support for Flycheck"
+#~ msgstr "Compatibilidad CMap para ficheros PDF"
+
+#, fuzzy
+#~ msgid "Emacs front-end for various distributed version control systems."
+#~ msgstr "Sistema de control de versión distribuída"
+
+#, fuzzy
+#~ msgid "Modular text completion framework"
+#~ msgstr "Marco de trabajo para autenticación SASL"
+
+#, fuzzy
+#~ msgid "Extra functions for manipulating multiple cursors"
+#~ msgstr "Rutinas para manipulación de ficheros CSV"
+
+#, fuzzy
+#~ msgid "MIT-Scheme documentation lookup for Emacs"
+#~ msgstr "El formato de documentación GNU"
+
+#, fuzzy
+#~ msgid "Visual Popup User Interface for Emacs"
+#~ msgstr "Interfaz gráfica para programas de ajedrez"
+
+#, fuzzy
+#~ msgid "Emacs interface for Habitica"
+#~ msgstr "Caché de interfaz para Perl"
+
+#, fuzzy
+#~ msgid "Implementation of the game 2048 in Emacs Lisp"
+#~ msgstr "Implementación del protocolo de transporte en tiempo real"
+
+#, fuzzy
+#~ msgid "Emacs library for sorting and filtering candidates"
+#~ msgstr "Biblioteca C para crear e interpretar ficheros de configuración."
+
+#, fuzzy
+#~ msgid "Incremental narrowing in Emacs"
+#~ msgstr "Archivador diario incremental"
+
+#, fuzzy
+#~ msgid "Collaborative editing framework"
+#~ msgstr "Marco de pruebas de software GNU"
+
+#, fuzzy
+#~ msgid "Incremental vertical completion for Emacs"
+#~ msgstr "Archivador diario incremental"
+
+#, fuzzy
+#~ msgid "Various completion functions using Ivy"
 #~ msgstr "Complementaciones de pez para Guix"
 
-#~ msgid "Perl API to zip files"
-#~ msgstr "API Perl para ficheros zip"
+#, fuzzy
+#~ msgid "Ivy interface for @code{xref}"
+#~ msgstr "Caché de interfaz para Perl"
 
-#~ msgid "Python bindings for Poppler-Qt4"
-#~ msgstr "Enlaces binarios para Poppler-Qt4"
+#, fuzzy
+#~ msgid "More friendly interface for @code{ivy}"
+#~ msgstr "El shell interactivo amigable"
 
-#~ msgid "Improved whois client"
-#~ msgstr "Cliente whois mejorado"
+#, fuzzy
+#~ msgid "Tree-based completion for Emacs"
+#~ msgstr "Complementaciones de pez para Guix"
 
-#~ msgid "Colorized REPL for Guile"
-#~ msgstr "REPL colorizado para Guile"
+#, fuzzy
+#~ msgid "Simple outline library"
+#~ msgstr "Biblioteca de controladores para juegos"
 
-#~ msgid "Extend Bash using Guile"
-#~ msgstr "Extiende Bash utilizando Guile"
+#, fuzzy
+#~ msgid "Modal editing for Python"
+#~ msgstr "Enlazando SQLite para Python"
 
 #, fuzzy
-#~ msgid "Spell-checking from Guile"
+#~ msgid "Emacs Package Library"
+#~ msgstr "Biblioteca de Motor de Búsqueda"
+
+#, fuzzy
+#~ msgid "Queue data structure for Emacs"
+#~ msgstr "Compara datos Perl estructurados"
+
+#, fuzzy
+#~ msgid "Information about Emacs packages"
+#~ msgstr "Paquetes anónimos"
+
+#, fuzzy
+#~ msgid "Better defaults for Emacs"
+#~ msgstr "Predeterminación Sane para progrmas Perl"
+
+#, fuzzy
+#~ msgid "Major mode for Julia"
+#~ msgstr "Módulo DSV para Guile"
+
+#, fuzzy
+#~ msgid "Mocking framework for Emacs Lisp"
+#~ msgstr "Impresión para marco de trabajo de GNOME"
+
+#, fuzzy
+#~ msgid "Python virtual environment interface for Emacs"
+#~ msgstr "Extensión de interfaz Perl para libcurl"
+
+#, fuzzy
+#~ msgid "Major mode for editing YAML files"
+#~ msgstr "Biblioteca para manipulación de ficheros MNG"
+
+#, fuzzy
+#~ msgid "Helm interface to the Silver Searcher"
+#~ msgstr "Interfaz Perl para algoritmo MD-5"
+
+#, fuzzy
+#~ msgid "Helm integration for Projectile"
+#~ msgstr "Establece operaciones para Perl"
+
+#, fuzzy
+#~ msgid "This Emacs library provides a Helm interface for Projectile."
+#~ msgstr "Este módulo proporciona un interfaz Perlish para Amazon S3."
+
+#, fuzzy
+#~ msgid ""
+#~ "This package provides an Ivy interface for selecting\n"
+#~ "Makefile targets."
+#~ msgstr ""
+#~ "Este paquete proporciona un diccionario para la biblioteca de\n"
+#~ "comprobación ortográfica Hunspell."
+
+#, fuzzy
+#~ msgid ""
+#~ "This package provides a Helm interface for selecting\n"
+#~ "Makefile targets."
+#~ msgstr ""
+#~ "Este paquete proporciona un diccionario para la biblioteca de\n"
+#~ "comprobación ortográfica Hunspell."
+
+#, fuzzy
+#~ msgid "Text objects for Python"
+#~ msgstr "Cliente mofa HTTP para Python"
+
+#, fuzzy
+#~ msgid "Interactive interface for the Mercurial version control system"
+#~ msgstr "Sistema de control de versión descentralizado"
+
+#, fuzzy
+#~ msgid "Org Babel support for SuperCollider"
+#~ msgstr "Capacidad Babel para inglés"
+
+#, fuzzy
+#~ msgid "Implementation of streams for Emacs"
+#~ msgstr "Implementación de DOM W3C"
+
+#, fuzzy
+#~ msgid "Hash table library for Emacs"
+#~ msgstr "Biblioteca de imagen para Extempore"
+
+#, fuzzy
+#~ msgid "Logging framework for elisp"
+#~ msgstr "Impresión para marco de trabajo de GNOME"
+
+#, fuzzy
+#~ msgid "Desktop notification for mu4e"
+#~ msgstr "Biblioteca de notificación de escritorio GNOME"
+
+#, fuzzy
+#~ msgid ""
+#~ "This Emacs library provides Helm interface for\n"
+#~ "Yasnippet."
+#~ msgstr "Este módulo proporciona un interfaz Perlish para Amazon S3."
+
+#, fuzzy
+#~ msgid "Emacs lisp memoization library"
+#~ msgstr "Biblioteca de Categoría Textual"
+
+#, fuzzy
+#~ msgid "Convert buffer text and decorations to HTML"
+#~ msgstr "Convierte Texinfo a HTML"
+
+#, fuzzy
+#~ msgid "Convert Emacs-lisp file to org file"
+#~ msgstr "Convierte texto inglés a dialectos humorísticos"
+
+#, fuzzy
+#~ msgid "Convert strings to ANSI"
+#~ msgstr "Convierte Texinfo a HTML"
+
+#, fuzzy
+#~ msgid "This package provides a simple testing library for Emacs."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "Reformatting tool for JSON"
+#~ msgstr "Herramientas monitorizada de rendimiento para Linux"
+
+#, fuzzy
+#~ msgid "Major mode for editing JSON files"
+#~ msgstr "Biblioteca para manipulación de ficheros PNG"
+
+#, fuzzy
+#~ msgid "JSON-RPC library"
+#~ msgstr "Biblioteca C JSON"
+
+#, fuzzy
+#~ msgid "Interactive image manipulation utility for Emacs"
+#~ msgstr "Utilidad de comparación de imagen perceptible"
+
+#, fuzzy
+#~ msgid "Sidebar for Emacs using Dired"
+#~ msgstr "Biblioteca para acceso a ficheros zip"
+
+#, fuzzy
+#~ msgid ""
+#~ "This package provides a command to fix the Flycheck error\n"
+#~ "at point."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "Interface to PubMed"
+#~ msgstr "Caché de interfaz para Perl"
+
+#, fuzzy
+#~ msgid "Buffer tracking library"
+#~ msgstr "Biblioteca de dibujo 2D"
+
+#, fuzzy
+#~ msgid "Slack client for Emacs"
+#~ msgstr "Cliente HTTP para R"
+
+#, fuzzy
+#~ msgid ""
+#~ "This package provides an Emacs client for the Slack\n"
+#~ "messaging service."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "Bash completion for the shell buffer"
+#~ msgstr "Complementaciones de pez para Guix"
+
+#, fuzzy
+#~ msgid "Major mode for editing comma/char separated values"
+#~ msgstr "Manipula valorer separados por coma"
+
+#, fuzzy
+#~ msgid "Media player for Emacs"
+#~ msgstr "Reproductor musical para GNOME"
+
+#, fuzzy
+#~ msgid "Emacs Lisp interface for PostgreSQL"
+#~ msgstr "Caché de interfaz para Perl"
+
+#, fuzzy
+#~ msgid "This package provides an Emacs Lisp interface for PostgreSQL."
+#~ msgstr "Este módulo proporciona un interfaz Perlish para Amazon S3."
+
+#, fuzzy
+#~ msgid "Emacs interactive command-line mode"
+#~ msgstr "Ejecución interactiva de programa por línea de mandato"
+
+#, fuzzy
+#~ msgid "This package provides an Emacs interactive command-line mode."
+#~ msgstr "Este módulo proporciona un interfaz Perlish para Amazon S3."
+
+#, fuzzy
+#~ msgid "Library for parsing @file{.bib} files"
+#~ msgstr "Biblioteca para interpretar ficheros SVG"
+
+#, fuzzy
+#~ msgid "Emacs interface to @code{wmctrl}"
+#~ msgstr "Caché de interfaz para Perl"
+
+#, fuzzy
+#~ msgid "List-manipulation utility functions"
+#~ msgstr "Fecha del rutinas de manipulación"
+
+#, fuzzy
+#~ msgid "This package provides a list manipulation library for Emacs."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "Emacs library for scheme validation"
+#~ msgstr "Biblioteca Scmutils para MIT Scheme"
+
+#, fuzzy
+#~ msgid "This package provides an Emacs library to manage tree widgets."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "Library to work with dates in Emacs"
+#~ msgstr "Biblioteca para trabajar con capacidades POSIX"
+
+#, fuzzy
+#~ msgid "Interactive macro-expander for Emacs"
+#~ msgstr "Ejecución interactiva de programa por línea de mandato"
+
+#, fuzzy
+#~ msgid "Magit extension for Gerrit"
+#~ msgstr "Rutinas de conversión de fecha Perl"
+
+#, fuzzy
+#~ msgid "Helm interface to EWW"
+#~ msgstr "Interfaz Perl para Amazon S3"
+
+#, fuzzy
+#~ msgid "Random word generator"
+#~ msgstr "Generador de contraseñas aleatorias"
+
+#, fuzzy
+#~ msgid "Control your GNU/Linux desktop environment from Emacs"
+#~ msgstr "El entorno de escritorio GNU"
+
+#, fuzzy
+#~ msgid "Integrate Emacs with Zotero"
+#~ msgstr "Probando anchura de banda Internet"
+
+#, fuzzy
+#~ msgid "Evil-based key bindings for Magit"
+#~ msgstr "Enlazando Guile para libgit2"
+
+#, fuzzy
+#~ msgid "Evil keybindings for Org mode"
+#~ msgstr "Enlazando Guile para libgit2"
+
+#, fuzzy
+#~ msgid "XML-RPC client for Emacs"
+#~ msgstr "Cliente HTTP para R"
+
+#, fuzzy
+#~ msgid "Fish completion for Emacs pcomplete"
+#~ msgstr "Complementaciones de pez para Guix"
+
+#, fuzzy
+#~ msgid "Emacs interface to Google Translate"
+#~ msgstr "Caché de interfaz para Perl"
+
+#, fuzzy
+#~ msgid ""
+#~ "This package provides an Emacs interface to the Google Translate\n"
+#~ "on-line service."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "Helm interface for company-mode"
+#~ msgstr "Interfaz de usuario para gnushogi"
+
+#, fuzzy
+#~ msgid "Image manipulation extensions for Emacs"
+#~ msgstr "Fecha del rutinas de manipulación"
+
+#, fuzzy
+#~ msgid "Image viewer for Emacs"
+#~ msgstr "Visor imagen para comics"
+
+#, fuzzy
+#~ msgid "GnuPG Pinentry server implementation"
+#~ msgstr "Reimplementación de XAudio"
+
+#, fuzzy
+#~ msgid "Unified user interface for Emacs folding modes"
+#~ msgstr "Interfaz gráfica para programas de ajedrez"
+
+#, fuzzy
+#~ msgid "Racer support for Emacs"
+#~ msgstr "Capacidad Babel para inglés"
+
+#, fuzzy
+#~ msgid "Dired with recursive directory sizes"
+#~ msgstr "Crear o quitar árboles directóricos"
+
+#, fuzzy
+#~ msgid "Emacs interface for youtube-dl"
+#~ msgstr "Caché de interfaz para Perl"
+
+#, fuzzy
+#~ msgid "Overlay library for Emacs Lisp"
+#~ msgstr "Biblioteca cubierta para imlib2"
+
+#, fuzzy
+#~ msgid "Matrix client for Emacs"
+#~ msgstr "Cliente HTTP para R"
+
+#, fuzzy
+#~ msgid "Session manager for Emacs based IDEs"
+#~ msgstr "Gestor de sesión para GNOME"
+
+#, fuzzy
+#~ msgid "Simple window layout management framework for emacs"
+#~ msgstr "Visor de imagen simple y rápido para X"
+
+#, fuzzy
+#~ msgid "Database Interface for Emacs Lisp"
+#~ msgstr "Interfaz de base de datos independiente para Perl"
+
+#, fuzzy
+#~ msgid "Emacs library to communicate with Music Player Daemon (MPD)"
+#~ msgstr "Cliente elegante para el Demonio de Reproductor Musical"
+
+#, fuzzy
+#~ msgid "Emacs user interface for Music Player Daemon (MPD)"
+#~ msgstr "Cliente elegante para el Demonio de Reproductor Musical"
+
+#, fuzzy
+#~ msgid "Alternative M-x interface for Emacs"
+#~ msgstr "Interfaz alternativo para Fichero::Encontrar"
+
+#, fuzzy
+#~ msgid "This package provides an Emacs interface for Docker."
+#~ msgstr "Este módulo proporciona un interfaz Perlish para Amazon S3."
+
+#, fuzzy
+#~ msgid "Libyaml bindings for Emacs"
+#~ msgstr "Enlazando GLib para libusb1"
+
+#, fuzzy
+#~ msgid "Java support for lsp-mode"
+#~ msgstr "Capacidad Babel para inglés"
+
+#, fuzzy
+#~ msgid "Access Git forges from Magit"
 #~ msgstr "BD Access SQLite desde Guile"
 
-#~ msgid "CommonMark parser for Guile"
+#, fuzzy
+#~ msgid "Async support for ERT"
+#~ msgstr "Apoyo booleano para Perl"
+
+#, fuzzy
+#~ msgid "Web server with handlers in Emacs Lisp"
+#~ msgstr "Servidor web centrado en seguridad"
+
+#, fuzzy
+#~ msgid "Major mode for JSX files"
+#~ msgstr "Compatibilidad CMap para ficheros PDF"
+
+#, fuzzy
+#~ msgid "Ivy interface for TRAMP"
+#~ msgstr "Servicio web para R"
+
+#, fuzzy
+#~ msgid "TRAMP automatic authentication library"
+#~ msgstr "Biblioteca de Categoría Textual"
+
+#, fuzzy
+#~ msgid "Gopher client for Emacs"
+#~ msgstr "Cliente HTTP para R"
+
+#, fuzzy
+#~ msgid "Help functions for Eshell"
+#~ msgstr "Extensiones para GNOME Shell"
+
+#, fuzzy
+#~ msgid "Helm interface to Clojure's CIDER"
+#~ msgstr "Interfaz Perl para Amazon S3"
+
+#, fuzzy
+#~ msgid "Read and write EDN from Elisp"
+#~ msgstr "Fichero almacén de lectura y escritura OLE"
+
+#, fuzzy
+#~ msgid "Emacs Helm interface for Wordnet"
+#~ msgstr "Caché de interfaz para Perl"
+
+#, fuzzy
+#~ msgid "Major mode for editing Mercury files"
+#~ msgstr "Codificador delta para ficheros binarios"
+
+#, fuzzy
+#~ msgid "Simulate the @command{dmenu} command line program"
+#~ msgstr "Ejecución interactiva de programa por línea de mandato"
+
+#, fuzzy
+#~ msgid "Elisp functions for reading and parsing CSV files"
+#~ msgstr "Rutinas para manipulación de ficheros CSV"
+
+#, fuzzy
+#~ msgid "Simple Kana to Kanji conversion program"
+#~ msgstr "Programa simple del control del ventilador"
+
+#, fuzzy
+#~ msgid "Navigate and edit text objects"
+#~ msgstr "Objetos establecen FechaHora"
+
+#, fuzzy
+#~ msgid "Reimplementation of Elisp generators"
+#~ msgstr "Implementación Perl de protocolo PSYC"
+
+#, fuzzy
+#~ msgid ""
+#~ "This package provides an Emacs client for the Rocket.chat\n"
+#~ "service."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "Small footprint Tcl implementation"
+#~ msgstr "Implementación de lisp de tipo Scheme"
+
+#, fuzzy
+#~ msgid ""
+#~ "Jim is a small footprint implementation of the Tcl programming\n"
+#~ "language."
+#~ msgstr "Implementación del lenguaje de programación Perl"
+
+#, fuzzy
+#~ msgid "On-Chip Debugger"
+#~ msgstr "Depurador D-Bus"
+
+#, fuzzy
+#~ msgid "Spin simulator"
+#~ msgstr "Simulador Pinball"
+
+#, fuzzy
+#~ msgid ""
+#~ "This package provides @code{binutils} for VideoCore IV,\n"
+#~ "the Raspberry Pi chip."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#~ msgid "Nintendo DS emulator"
+#~ msgstr "Emulador Nintendo DS"
+
+#, fuzzy
+#~ msgid "Nintendo Wii and GameCube emulator"
+#~ msgstr "Emulador Nintendo DS"
+
+#, fuzzy
+#~ msgid "Multi-system emulator"
+#~ msgstr "Emulador Nintendo multi-sistema"
+
+#, fuzzy
+#~ msgid "Nintendo 64 emulator core library"
+#~ msgstr "Emulador Nintendo DS"
+
+#, fuzzy
+#~ msgid "Mupen64Plus command line user interface"
+#~ msgstr "Interfaz Unix de mandato lineal para www"
+
+#, fuzzy
+#~ msgid "Nintendo Entertainment System (NES/Famicom) emulator"
+#~ msgstr "Emulador Nintendo multi-sistema"
+
+#, fuzzy
+#~ msgid "PSP emulator"
+#~ msgstr "Emulador Nintendo DS"
+
+#, fuzzy
+#~ msgid "Fast and safe spellchecking C++ library"
+#~ msgstr "Intérprete CSS y selección de biblioteca"
+
+#, fuzzy
+#~ msgid "Gerber file viewer"
+#~ msgstr "Visor de imágenes de GNOME"
+
+#, fuzzy
+#~ msgid "C library to handle DWG (CAD-related) files"
+#~ msgstr "Biblioteca para manipulación de ficheros PNG"
+
+#, fuzzy
+#~ msgid "Serial terminal emulator"
+#~ msgstr "Emulador de terminal"
+
+#, fuzzy
+#~ msgid "Harmonic inversion solver"
+#~ msgstr "Versión carnosa de llamador"
+
+#, fuzzy
+#~ msgid "VHDL simulator"
+#~ msgstr "Simulador de vuelo"
+
+#, fuzzy
+#~ msgid "GUI for radare2 reverse engineering framework"
+#~ msgstr "Marco de pruebas de software GNU"
+
+#, fuzzy
+#~ msgid "Script-based 3D modeling application"
+#~ msgstr "Aplicación de hojas de cálculo"
+
+#, fuzzy
+#~ msgid "Library to read and write MED files"
+#~ msgstr "Biblioteca para manipulación de ficheros MNG"
+
+#, fuzzy
+#~ msgid "Library and python module for pocketing and profiling operations"
+#~ msgstr "Biblioteca C para crear e interpretar ficheros de configuración."
+
+#, fuzzy
+#~ msgid "Lightweight desktop environment"
+#~ msgstr "El entorno de escritorio GNU"
+
+#, fuzzy
+#~ msgid "Python bindings for EFL"
+#~ msgstr "Enlaces Python para GTK+"
+
+#, fuzzy
+#~ msgid "Simple PDF viewer"
+#~ msgstr "Visor Imagen X Simple"
+
+#, fuzzy
+#~ msgid "EFL Bittorrent client"
+#~ msgstr "Cliente BitTorrent gráfico"
+
+#, fuzzy
+#~ msgid "The Erlang programming language"
+#~ msgstr "Implementación del lenguaje de programación Perl"
+
+#, fuzzy
+#~ msgid "Utilities for managing JFS file systems"
+#~ msgstr "Rutinas para manipulación de ficheros CSV"
+
+#, fuzzy
+#~ msgid "Distributed file system"
+#~ msgstr "Sistema de control de versión distribuída"
+
+#, fuzzy
+#~ msgid "Mount remote file systems over FTP"
+#~ msgstr "Montar fichero del sistema exFAT"
+
+#, fuzzy
+#~ msgid "Client library for accessing NFS shares"
+#~ msgstr "Biblioteca para acceso a ficheros zip"
+
+#, fuzzy
+#~ msgid "Read-only FUSE driver for the APFS file system"
+#~ msgstr "Acceso lectura-escritura para sistema de ficheros NTFS"
+
+#, fuzzy
+#~ msgid "Featureful union file system"
+#~ msgstr "Unión de espacio de usuario al fichero de sistema"
+
+#, fuzzy
+#~ msgid "User-space file system for Dropbox"
+#~ msgstr "Sistema de ficheros en espacio de usuaria para GIO"
+
+#, fuzzy
+#~ msgid "Bitcoin peer-to-peer client"
+#~ msgstr "Comunicación distribuida peer-to-peer"
+
+#, fuzzy
+#~ msgid "Graphical personal accounting application"
+#~ msgstr "Aplicación de reproducción musical de GNOME"
+
+#, fuzzy
+#~ msgid "Command-line interface to the Monero currency"
+#~ msgstr "Interfaz de mandato lineal para libtocc"
+
+#, fuzzy
+#~ msgid "Graphical user interface for the Monero currency"
+#~ msgstr "Interfaz gráfica para programas de ajedrez"
+
+#, fuzzy
+#~ msgid "Implementation of Bitcoin BIP-0039"
+#~ msgstr "Implementación de DOM W3C"
+
+#, fuzzy
+#~ msgid "Python implementation of Duniter API"
+#~ msgstr "Implementación Log4j para Perl"
+
+#, fuzzy
+#~ msgid "Personal accounting application"
+#~ msgstr "Aplicación controladora de servicio Jack"
+
+#, fuzzy
+#~ msgid "Library supporting the Open Financial Exchange format"
+#~ msgstr "Biblioteca para interpretación del formato Apple Keynote"
+
+#, fuzzy
+#~ msgid "Collection of tools for the b43 wireless driver"
+#~ msgstr "Colección de utilidades para el núcleo Linux"
+
+#, fuzzy
+#~ msgid "x86 BIOS implementation"
+#~ msgstr "Implementación JSON en C"
+
+#, fuzzy
+#~ msgid "Implementation of \"secure world software\""
+#~ msgstr "Implementación de Scheme y lenguajes relacionados"
+
+#, fuzzy
+#~ msgid "Intel Management Engine tools"
+#~ msgstr "Herramienta gestora de múltiples repositorios"
+
+#, fuzzy
+#~ msgid "UEFI image editor"
+#~ msgstr "Editor LaTeX"
+
+#, fuzzy
+#~ msgid "3D C++ GUI library"
+#~ msgstr "Biblioteca C JSON"
+
+#, fuzzy
+#~ msgid "Simple bitmap programming font"
+#~ msgstr "Terminal controladora única"
+
+#, fuzzy
+#~ msgid "The Roboto family of fonts"
+#~ msgstr "Familia de tipografías Computer Modern Super"
+
+#, fuzzy
+#~ msgid "Collection of Korean fonts"
+#~ msgstr "Se ha especificado más de una fecha tope"
+
+#, fuzzy
+#~ msgid "Japanese font collection"
+#~ msgstr "Conexiones Typeset Galois"
+
+#, fuzzy
+#~ msgid "Font rendering library"
+#~ msgstr "Biblioteca renderizadora de PDF"
+
+#, fuzzy
+#~ msgid "Automated font hinting"
+#~ msgstr "Generación accesor automático"
+
+#, fuzzy
+#~ msgid "Library for configuring and customizing font access"
+#~ msgstr "Biblioteca C para crear e interpretar ficheros de configuración."
+
+#, fuzzy
+#~ msgid "Library for generating bitmaps from Type 1 fonts"
+#~ msgstr "Biblioteca para generación de ficheros PDF"
+
+#, fuzzy
+#~ msgid "Toolkit for encoding conversions"
+#~ msgstr "Texto codificando conversor"
+
+#, fuzzy
+#~ msgid "Reimplementation of the SIL Graphite text processing engine"
+#~ msgstr "Implementación del algoritmo de compresión Brotli"
+
+#, fuzzy
+#~ msgid "Library for handling OpenType Font"
+#~ msgstr "Biblioteca para manipulación de ficheros TIFF"
+
+#, fuzzy
+#~ msgid "Clothoid to bezier conversion library"
+#~ msgstr "Biblioteca de conversión de conjunto de caracteres"
+
+#, fuzzy
+#~ msgid "Unicode names and annotation list"
+#~ msgstr "Herramientas de nombre modular y transformaciones"
+
+#, fuzzy
+#~ msgid "Outline font editor"
+#~ msgstr "Editor de texto de GNOME"
+
+#, fuzzy
+#~ msgid "Low-level UFO reader and writer"
+#~ msgstr "Lectura y escritura simple de ficheros"
+
+#, fuzzy
+#~ msgid "Noto fonts support tools and scripts"
+#~ msgstr "Capacidad de tipografía para tipos PostScript comunes"
+
+#, fuzzy
+#~ msgid "PDF and PostScript font samples generator"
+#~ msgstr "Controladores DVI a PostScript"
+
+#, fuzzy
+#~ msgid "Forth interpreter"
+#~ msgstr "Interpretador Z-machine"
+
+#, fuzzy
+#~ msgid "FPGA Verilog simulation and synthesis tool"
+#~ msgstr "Herramientas para verificación y reparación de ficheros"
+
+#, fuzzy
+#~ msgid "Glib testing library"
+#~ msgstr "Colección bibliotecaria de GObject"
+
+#, fuzzy
+#~ msgid "Input devices handling library"
+#~ msgstr "Biblioteca de visión de computación"
+
+#, fuzzy
+#~ msgid "Implementation of the XDG Base Directory specification"
+#~ msgstr "Implementación del protocolo de transporte en tiempo real"
+
+#, fuzzy
+#~ msgid "User, seat, and session management service"
+#~ msgstr "Gestión de dispositivo en espacio de usuario"
+
+#, fuzzy
+#~ msgid "This package provides C++ bindings for the Wayland display protocol."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "Reference implementation of a Wayland compositor"
+#~ msgstr "Implementación del algoritmo de compresión Brotli"
+
+#, fuzzy
+#~ msgid "XMP metadata handling library"
+#~ msgstr "Biblioteca interpretando CSS2 y manipulación"
+
+#, fuzzy
+#~ msgid "ATA S.M.A.R.T. reading and parsing library"
+#~ msgstr "Biblioteca interpretando HTML5 completo"
+
+#, fuzzy
+#~ msgid "Disk manager service"
+#~ msgstr "Servicio de gestión de color"
+
+#, fuzzy
+#~ msgid "Telepathy logger library"
+#~ msgstr "Biblioteca de módulo jugador"
+
+#, fuzzy
+#~ msgid "Telepathy IRC connection manager"
+#~ msgstr "Gestor de conexión a red"
+
+#, fuzzy
+#~ msgid "Library to access fingerprint readers"
+#~ msgstr "Biblioteca para acceso a ficheros zip"
+
+#, fuzzy
+#~ msgid "Utilities for working with desktop entries"
+#~ msgstr "Herramientas para trabajar con el formato de fichero PDF"
+
+#, fuzzy
+#~ msgid "Use the Freedesktop.org base directory specification"
+#~ msgstr "Herramienta para implementar la especificación de nombrado de iconos de Freedesktop"
+
+#, fuzzy
+#~ msgid "Handle @file{.desktop} files"
+#~ msgstr "Fichero almacén de lectura y escritura OLE"
+
+#, fuzzy
+#~ msgid "Encoding detector library"
+#~ msgstr "Biblioteca vectorial bit"
+
+#, fuzzy
+#~ msgid "Flatpak portal library"
+#~ msgstr "Biblioteca abstracta de origen de datos"
+
+#, fuzzy
+#~ msgid "GTK implementation of xdg-desktop-portal"
+#~ msgstr "Implementación Log4j para Perl"
+
+#, fuzzy
+#~ msgid "Implementation of the Unicode bidirectional algorithm"
+#~ msgstr "Implementación del algoritmo de compresión Brotli"
+
+#, fuzzy
+#~ msgid "Command-line file transfer program"
+#~ msgstr "Interfaz de mandato lineal para archive.org"
+
+#, fuzzy
+#~ msgid "Command-line File Transfer Protocol (FTP) client"
+#~ msgstr "Interfaz de mandato lineal para libtocc"
+
+#, fuzzy
+#~ msgid "3D physics engine library"
+#~ msgstr "Biblioteca de gráficos 2D"
+
+#, fuzzy
+#~ msgid "GRF development tools"
+#~ msgstr "Estudio de desarrollo web"
+
+#, fuzzy
+#~ msgid "2D game engine for Python"
+#~ msgstr "Motor de juego 2D/3D para GNU Guile"
+
+#, fuzzy
+#~ msgid "Python library for the @code{Tiled} TMX format"
+#~ msgstr "Interpreta biblioteca para texto en formato Pod"
+
+#, fuzzy
+#~ msgid "Extensions for the SGE Game Engine"
+#~ msgstr "Extensiones para el visor de imágenes de GNOME"
+
+#, fuzzy
+#~ msgid "Tile map editor"
+#~ msgstr "Editor LaTeX"
+
+#, fuzzy
+#~ msgid "Simple and Fast Multimedia Library"
+#~ msgstr "Visor de imagen simple y rápido para X"
+
+#, fuzzy
+#~ msgid "Simple sound effect generator"
+#~ msgstr "Visor de imagen simple y rápido para X"
+
+#, fuzzy
+#~ msgid "Scripting language for games"
+#~ msgstr "Juego de plataforma de acción"
+
+#, fuzzy
+#~ msgid "File system abstraction library"
+#~ msgstr "Biblioteca de abstracción de Sip"
+
+#, fuzzy
+#~ msgid "2D game framework for Lua"
+#~ msgstr "Impresión para marco de trabajo de GNOME"
+
+#, fuzzy
+#~ msgid ""
+#~ "LÖVE is a framework for making 2D games in the Lua\n"
+#~ "programming language."
+#~ msgstr "Implementación del lenguaje de programación Perl"
+
+#, fuzzy
+#~ msgid "Game programming library"
+#~ msgstr "Biblioteca de controladores para juegos"
+
+#, fuzzy
+#~ msgid "Sudoku puzzle solver and generator"
+#~ msgstr "Generador de contraseñas aleatorias"
+
+#, fuzzy
+#~ msgid "Implementation of the OpenGL Character Renderer (GLC)"
+#~ msgstr "Implementación de Scheme y lenguajes relacionados"
+
+#, fuzzy
+#~ msgid "SDL wrapper for Python"
+#~ msgstr "Cubiertas ALSA para Python"
+
+#, fuzzy
+#~ msgid "Reimplementation of the Pygame API using SDL2"
+#~ msgstr "Implementación del lenguaje de programación Perl"
+
+#, fuzzy
+#~ msgid "Bitmap paint program"
+#~ msgstr "Programa simple del control del ventilador"
+
+#, fuzzy
+#~ msgid "Object Oriented Input System"
+#~ msgstr "Sistema de módulos basado en GObject"
+
+#, fuzzy
+#~ msgid "Re-implementation of the RPG Morrowind engine"
+#~ msgstr "Implementación del lenguaje de programación Perl"
+
+#, fuzzy
+#~ msgid "Programming language to create games"
+#~ msgstr "Programación de juegos"
+
+#, fuzzy
+#~ msgid "Modules for the Bennu Game Development programming language"
+#~ msgstr "Manual de referencia para el lenguaje de programación C"
+
+#, fuzzy
+#~ msgid "Accuracy-focused XNA4 reimplementation"
+#~ msgstr "Reimplementación de XAudio"
+
+#, fuzzy
+#~ msgid "Text scanning and processing language"
+#~ msgstr "Lenguaje de procesamiento de señales"
+
+#, fuzzy
+#~ msgid "The GNU debugger"
+#~ msgstr "La biblioteca GNU C"
+
+#, fuzzy
+#~ msgid "Perl interface to the GD graphics library"
+#~ msgstr "Interfaz Perl para algoritmo MD-5"
+
+#, fuzzy
+#~ msgid "Library for handling GeoTIFF (geographic enabled TIFF)"
+#~ msgstr "Biblioteca para manipulación de ficheros TIFF"
+
+#, fuzzy
+#~ msgid "Cartographic Projections Library"
+#~ msgstr "Biblioteca abstracta de origen de datos"
+
+#, fuzzy
+#~ msgid "Python bindings for Mapnik"
+#~ msgstr "Enlace Python para cairo"
+
+#, fuzzy
+#~ msgid "Graphical user interface for SpatiaLite"
+#~ msgstr "Interfaz gráfico del usuario para FluidSynth"
+
+#, fuzzy
+#~ msgid "C++ library for working with OpenStreetMap data"
+#~ msgstr "Biblioteca para trabajar con capacidades POSIX"
+
+#, fuzzy
+#~ msgid "Spatial indexing library"
+#~ msgstr "Biblioteca renderizadora de PDF"
+
+#, fuzzy
+#~ msgid "OSM editor"
+#~ msgstr "Editor de sonido"
+
+#, fuzzy
+#~ msgid "C library for the MaxMind DB file format"
+#~ msgstr "Interpreta biblioteca para texto en formato Pod"
+
+#, fuzzy
+#~ msgid "GPS mapping application"
+#~ msgstr "Aplicación de reproducción musical de GNOME"
+
+#, fuzzy
+#~ msgid "Data extractor for OpenStreetMap files"
+#~ msgstr "Codificador delta para ficheros binarios"
+
+#, fuzzy
+#~ msgid "Geocoding library for Python"
+#~ msgstr "Biblioteca descodificante para ficheros GIF"
+
+#, fuzzy
+#~ msgid "Library for handling paper sizes"
+#~ msgstr "Biblioteca para manipulación de ficheros PNG"
+
+#, fuzzy
+#~ msgid "Collection of utilities for manipulating PostScript documents"
+#~ msgstr "Colección de utilidades para el núcleo Linux"
+
+#, fuzzy
+#~ msgid "Free replacements for the PostScript fonts"
+#~ msgstr "Capacidad de tipografía para tipos PostScript comunes"
+
+#, fuzzy
+#~ msgid "Postscript rendering library"
+#~ msgstr "Biblioteca renderizadora de PDF"
+
+#, fuzzy
+#~ msgid "System monitors"
+#~ msgstr "Editorde flujo"
+
+#, fuzzy
+#~ msgid "D-Bus GLib bindings"
+#~ msgstr "Enlazando GLib para libusb1"
+
+#, fuzzy
+#~ msgid "C++ interface to the GLib library"
+#~ msgstr "Biblioteca de visión de computación"
+
+#, fuzzy
+#~ msgid "Python bindings for GObject"
+#~ msgstr "Enlaces Python para GTK+"
+
+#, fuzzy
+#~ msgid "Python bindings for GLib, GObject, and GIO."
+#~ msgstr "Enlaces binarios para liblo"
+
+#, fuzzy
+#~ msgid "Library for reading and writing AppStream metadata"
+#~ msgstr "Biblioteca para carga y contorno de complemento IU LV2"
+
+#, fuzzy
+#~ msgid "Extension for the DBus bindings"
+#~ msgstr "Rutinas de conversión de fecha Perl"
+
+#, fuzzy
+#~ msgid "Perl extension for the DBus GLib bindings"
+#~ msgstr "Extensión de interfaz Perl para libcurl"
+
+#, fuzzy
+#~ msgid "Library for template expansion"
+#~ msgstr "Biblioteca para análisis genómico"
+
+#, fuzzy
+#~ msgid "Mesa OpenGL Utility library"
+#~ msgstr "Biblioteca utilitaria para Netlink"
+
+#, fuzzy
+#~ msgid "S3 Texture Compression implementation"
+#~ msgstr "Implementación completa de ajedrez"
+
+#, fuzzy
+#~ msgid "Utility tools for Mesa"
+#~ msgstr "Clases utilidad para Jetty"
+
+#, fuzzy
+#~ msgid "Guile binding for the OpenGL graphics API"
+#~ msgstr "Enlazando GObject para API «Servicio Secreto»"
+
+#, fuzzy
+#~ msgid "OpenGL texture loading library"
+#~ msgstr "Biblioteca de procesamiento Speex"
+
+#, fuzzy
+#~ msgid "OpenGL application development library"
+#~ msgstr "Herramienta para desarrollo rápido de aplicaciones con GTK+"
+
+#, fuzzy
+#~ msgid "2D vector drawing library on top of OpenGL"
+#~ msgstr "Biblioteca descodificante para ficheros GIF"
+
+#, fuzzy
+#~ msgid "Clipboard manager extension for GNOME Shell"
+#~ msgstr "Extensiones para GNOME Shell"
+
+#, fuzzy
+#~ msgid "Icon taskbar for GNOME Shell"
+#~ msgstr "Extensiones para GNOME Shell"
+
+#, fuzzy
+#~ msgid "Flat theme with light and dark elements"
+#~ msgstr "Un marcado de tema GTK+ con elementos transparentes"
+
+#, fuzzy
+#~ msgid "Language server for Vala"
+#~ msgstr "Capacidad Babel para inglés"
+
+#, fuzzy
+#~ msgid "Documentation for GnuCash"
+#~ msgstr "El formato de documentación GNU"
+
+#, fuzzy
+#~ msgid "Library to extract meta-data from media files"
+#~ msgstr "Biblioteca para agregar datos acerca de gente"
+
+#, fuzzy
+#~ msgid "C library implementing an HTTP 1.1 server"
+#~ msgstr "Biblioteca implementando SIP (RFC-3261)"
+
+#, fuzzy
+#~ msgid "Guile bindings for GNUnet services"
+#~ msgstr "Enlazando Guile para ncurses"
+
+#, fuzzy
+#~ msgid "Cryptographic function library"
+#~ msgstr "Biblioteca separación silábica"
+
+#, fuzzy
+#~ msgid "Qt API bindings for gpgme"
+#~ msgstr "Enlazando SQLite para Python"
+
+#, fuzzy
+#~ msgid "Python bindings for GPGME GnuPG cryptography library"
+#~ msgstr "Enlace Python para cairo"
+
+#, fuzzy
+#~ msgid "Perl interface to GnuPG"
+#~ msgstr "Interfaz Perl para Amazon S3"
+
+#, fuzzy
+#~ msgid "GnuPG's interface to passphrase input"
+#~ msgstr "Interfaz Perl para pseudo ttys"
+
+#, fuzzy
+#~ msgid "Graphical user interface for GnuPG"
+#~ msgstr "Interfaz gráfico del usuario para FluidSynth"
+
+#, fuzzy
+#~ msgid "Network interface monitor"
+#~ msgstr "Interfaz de usuario para gnushogi"
+
+#, fuzzy
+#~ msgid "Display the date and time"
+#~ msgstr "Manipular fecha simple"
+
+#, fuzzy
+#~ msgid "Library for building collaborative editors"
+#~ msgstr "Biblioteca para etiquetado de sonido"
+
+#, fuzzy
+#~ msgid "Infininote protocol implementation"
+#~ msgstr "Reimplementación de XAudio"
+
+#, fuzzy
+#~ msgid "Textual progress bars in Go"
+#~ msgstr "# prohibe el registro"
+
+#, fuzzy
+#~ msgid "Go library for parsing command line arguments"
+#~ msgstr "Biblioteca para acceso por conexión a varias API de servicio"
+
+#, fuzzy
+#~ msgid "Go implementation of docopt"
+#~ msgstr "Implementación Perl de protocolo PSYC"
+
+#, fuzzy
+#~ msgid "Go implementation of HashiCorp Configuration Language"
+#~ msgstr "Implementación del lenguaje de programación Perl"
+
+#, fuzzy
+#~ msgid "Tools that support the Go programming language"
+#~ msgstr "Implementación del lenguaje de programación Perl"
+
+#, fuzzy
+#~ msgid "Supplemental Go text processing libraries"
+#~ msgstr "Biblioteca de procesamiento Speex"
+
+#, fuzzy
+#~ msgid "Client implementation of the OAuth 2.0 spec"
+#~ msgstr "Implementación de DOM W3C"
+
+#, fuzzy
+#~ msgid "Simple exponential backoff counter in Go"
+#~ msgstr "Herramienta de respaldo incremental sencillo"
+
+#, fuzzy
+#~ msgid "Atomic boolean library for Go code"
+#~ msgstr "Cliente biblioteca Redis para Guile"
+
+#, fuzzy
+#~ msgid "Semantic versioning library written in Go"
+#~ msgstr "Biblioteca WebSockets escrita en C"
+
+#, fuzzy
+#~ msgid "Fuzz testing library for Go"
+#~ msgstr "Biblioteca descodificante para ficheros GIF"
+
+#, fuzzy
+#~ msgid "CSS3 tokenizer"
+#~ msgstr "Generador de símbolo SQL"
+
+#, fuzzy
+#~ msgid "Fake clock library for Go"
+#~ msgstr "Cliente biblioteca Redis para Guile"
+
+#, fuzzy
+#~ msgid "File system abstraction for Go"
+#~ msgstr "Capa abstracta de BBDD Guile"
+
+#, fuzzy
+#~ msgid "This package provides a file system abstraction for Go."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "Go library for creating CLI applications"
+#~ msgstr "Biblioteca C para crear e interpretar ficheros de configuración."
+
+#, fuzzy
+#~ msgid "Go logging library"
+#~ msgstr "Fichero Mod reproduciendo biblioteca"
+
+#, fuzzy
+#~ msgid "Go configuration with fangs"
+#~ msgstr "Biblioteca de fichero de configuración C/C++"
+
+#, fuzzy
+#~ msgid "Go library for the TOML configuration language"
+#~ msgstr "Biblioteca C para crear e interpretar ficheros de configuración."
+
+#, fuzzy
+#~ msgid "Go library for loading environment variables from files"
+#~ msgstr "Biblioteca C para crear e interpretar ficheros de configuración."
+
+#, fuzzy
+#~ msgid "Networking library for Go"
+#~ msgstr "Biblioteca descodificante para ficheros GIF"
+
+#, fuzzy
+#~ msgid "This package provides a test library for the Go language."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "Go library for ini files"
+#~ msgstr "Biblioteca descodificante para ficheros GIF"
+
+#, fuzzy
+#~ msgid "Utility for cgo"
+#~ msgstr "Clases utilidad para Jetty"
+
+#, fuzzy
+#~ msgid "Lua reflection bindings for Go"
+#~ msgstr "Enlaces Python para GTK+"
+
+#, fuzzy
+#~ msgid "Pretty printing for Go values"
+#~ msgstr "Impresión bonita de estructura de datos"
+
+#, fuzzy
+#~ msgid "MusicBrainz WS2 client library for Golang"
+#~ msgstr "Cliente biblioteca Redis para Guile"
+
+#, fuzzy
+#~ msgid "Go wrapper for taglib"
+#~ msgstr "Envoltura GObject para libcanberra"
+
+#, fuzzy
+#~ msgid "Deep pretty printer for Go data structures to aid in debugging"
+#~ msgstr "Impresión bonita de estructura de datos"
+
+#, fuzzy
+#~ msgid "Fast implementation of base58 encoding on Golang"
+#~ msgstr "Implementación del lenguaje de programación Perl"
+
+#, fuzzy
+#~ msgid "Multihash implementation in Go"
+#~ msgstr "Implementación JSON en C"
+
+#, fuzzy
+#~ msgid "Multihash implementation in Go."
+#~ msgstr "Implementación JSON en C"
+
+#, fuzzy
+#~ msgid "Go library for decoding generic map values"
+#~ msgstr "Biblioteca para acceso a ficheros zip"
+
+#, fuzzy
+#~ msgid "Go library for decoding deep copying values"
+#~ msgstr "Biblioteca para carga y contorno de complemento IU LV2"
+
+#, fuzzy
+#~ msgid "Gitignore parser for Go"
 #~ msgstr "Interprete CommonMark para Guile"
 
-#~ msgid "XOSD bindings for Guile"
+#, fuzzy
+#~ msgid "Go diff implementation"
+#~ msgstr "Reimplementación de XAudio"
+
+#, fuzzy
+#~ msgid "Go dotenv parsing library"
+#~ msgstr "Biblioteca interpretando HTML5"
+
+#, fuzzy
+#~ msgid ""
+#~ "This package provides a library for parsing the dotenv\n"
+#~ "format in Go."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "This package provides a pretty printer for Go values."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "Pretty printer for Go values."
+#~ msgstr "Impresión bonita de estructura de datos"
+
+#, fuzzy
+#~ msgid "Generics for Go"
+#~ msgstr "Módulo Configurable Genérico"
+
+#, fuzzy
+#~ msgid "JSON encoder/decoder with powerful stream API for Golang"
+#~ msgstr "Codificador/decodificador JSON para Perl"
+
+#, fuzzy
+#~ msgid "Toolkit for parsing Go stack traces"
+#~ msgstr "Objeto representando una traza de pila"
+
+#, fuzzy
+#~ msgid "Cron library for Go"
+#~ msgstr "Biblioteca JSON para R"
+
+#, fuzzy
+#~ msgid ""
+#~ "This package provides a cron library for Go.  It implements\n"
+#~ "a cron spec parser and job runner."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "Process and system monitoring in Go"
+#~ msgstr "Visor de procesos y monitor de recursos del sistema para GNOME"
+
+#, fuzzy
+#~ msgid "Go binding to libvterm"
+#~ msgstr "Enlazando Python para libvirt"
+
+#, fuzzy
+#~ msgid "IMAP4rev1 library written in Go"
+#~ msgstr "Biblioteca WebSockets escrita en C"
+
+#, fuzzy
+#~ msgid "SASL library written in Go"
+#~ msgstr "Biblioteca WebSockets escrita en C"
+
+#, fuzzy
+#~ msgid "IDLE extension for go-imap"
+#~ msgstr "Extensión de interfaz Perl para libcurl"
+
+#, fuzzy
+#~ msgid "Library for encoding structs into URL query parameters"
+#~ msgstr "Biblioteca para manipulación de ficheros PNG"
+
+#, fuzzy
+#~ msgid "Client library for accessing the GitHub API v3"
+#~ msgstr "Biblioteca para acceso por conexión a varias API de servicio"
+
+#, fuzzy
+#~ msgid "Go support for Protocol Buffers"
+#~ msgstr "Compatibilidad CMap para ficheros PDF"
+
+#, fuzzy
+#~ msgid "Unicode transliterator in Golang"
+#~ msgstr "Formato de normalización Unicode"
+
+#, fuzzy
+#~ msgid "Freetype font rasterizer in the Go programming language"
+#~ msgstr "Implementación del lenguaje de programación Perl"
+
+#, fuzzy
+#~ msgid "The Freetype font rasterizer in the Go programming language."
+#~ msgstr "Implementación del lenguaje de programación Perl"
+
+#, fuzzy
+#~ msgid "2D rendering in Go"
+#~ msgstr "Biblioteca renderizadora de PDF"
+
+#, fuzzy
+#~ msgid "Collection of string functions"
+#~ msgstr "Funciones pango obsoletas"
+
+#, fuzzy
+#~ msgid "Full featured regular expressions for Go"
+#~ msgstr "%s: la expresión regular no es válida: %s"
+
+#, fuzzy
+#~ msgid "Go assertion library"
+#~ msgstr "Biblioteca de abstracción de Sip"
+
+#, fuzzy
+#~ msgid "CSS selectors for HTML"
+#~ msgstr "Herramientas R para HTML"
+
+#, fuzzy
+#~ msgid "CSS parser and inliner"
+#~ msgstr "Intérprete CSS y selección de biblioteca"
+
+#, fuzzy
+#~ msgid "HTML sanitizer"
+#~ msgstr "Clase interpretada HTML en Perl"
+
+#, fuzzy
+#~ msgid "Advanced styling options on the terminal"
+#~ msgstr "Operaciones avanzadas en rutas variables"
+
+#, fuzzy
+#~ msgid "Generate ASCII table"
+#~ msgstr "Distribución simple ASCII"
+
+#, fuzzy
+#~ msgid "Markdown parser"
+#~ msgstr "Clase interpretada HTML en Perl"
+
+#, fuzzy
+#~ msgid "This package provides a markdown parser."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "Semantic versioning library"
+#~ msgstr "Herramientas monitorizada de rendimiento para Linux"
+
+#, fuzzy
+#~ msgid "Implementation of various data structures and algorithms in Go"
+#~ msgstr "Implementación del algoritmo de compresión Brotli"
+
+#, fuzzy
+#~ msgid "Gcfg reads INI-style configuration files into Go structs"
+#~ msgstr "Obtiene directorios de ficheros de configuración"
+
+#, fuzzy
+#~ msgid "Gcfg reads INI-style configuration files into Go structs."
+#~ msgstr "Obtiene directorios de ficheros de configuración"
+
+#, fuzzy
+#~ msgid "Parser for @file{ssh_config} files"
+#~ msgstr "Obtiene directorios de ficheros de configuración"
+
+#, fuzzy
+#~ msgid "Control ssh-agent from Go"
+#~ msgstr "Herramienta gestora de múltiples repositorios"
+
+#, fuzzy
+#~ msgid "This package provides a Go library to create and print diffs."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "Library for working with system keyring"
+#~ msgstr "Biblioteca para trabajar con capacidades POSIX"
+
+#, fuzzy
+#~ msgid "Console progress bar for Go"
+#~ msgstr "# prohibe el registro"
+
+#, fuzzy
+#~ msgid "Quick helpers for testing Go applications"
+#~ msgstr "Fichero de acceso y carpetas en aplicaciones GNOME"
+
+#, fuzzy
+#~ msgid "Easy to use Go bindings for LibSass"
+#~ msgstr "Enlaces binarios para liblo"
+
+#, fuzzy
+#~ msgid "Simple podcast client"
+#~ msgstr "Manipular fecha simple"
+
+#, fuzzy
+#~ msgid "GPS service daemon"
+#~ msgstr "Demonio de servicios de Internet"
+
+#, fuzzy
+#~ msgid "DFB Graphics Library"
+#~ msgstr "Biblioteca de gráficos 2D"
+
+#, fuzzy
+#~ msgid "Bitmap to vector graphics converter"
+#~ msgstr "Editor gráfico vectorial"
+
+#, fuzzy
+#~ msgid "Voxel editor"
+#~ msgstr "Editor de sonido"
+
+#, fuzzy
+#~ msgid "Asset import library"
+#~ msgstr "Biblioteca vectorial bit"
+
+#, fuzzy
+#~ msgid "C++ 2D graphics library"
+#~ msgstr "Biblioteca de gráficos 2D"
+
+#, fuzzy
+#~ msgid "Scene-oriented, flexible 3D engine written in C++"
+#~ msgstr "Motor de juegos 3D escrito en C++"
+
+#, fuzzy
+#~ msgid "C++ library for reading and writing images"
+#~ msgstr "Biblioteca C para crear e interpretar ficheros de configuración."
+
+#, fuzzy
+#~ msgid "Toolkit for rapid development of user interfaces"
+#~ msgstr "Herramientas para manipulación de imágenes"
+
+#, fuzzy
+#~ msgid "Python bindings for the igraph network analysis library"
+#~ msgstr "Enlace Python para cairo"
+
+#, fuzzy
+#~ msgid "Simple Python interface for Graphviz"
+#~ msgstr "Interfaz SQlite para Perl"
+
+#, fuzzy
+#~ msgid "Python interface to Graphviz"
+#~ msgstr "Interfaz Perl para Amazon S3"
+
+#, fuzzy
+#~ msgid "Convert nroff files to HTML"
+#~ msgstr "Convierte Texinfo a HTML"
+
+#, fuzzy
+#~ msgid "Groovy test classes"
+#~ msgstr "Aplicar oficios a clases Catalyst"
+
+#, fuzzy
+#~ msgid "Groovy documentation generation"
+#~ msgstr "Herramientas y documentación para traducción"
+
+#, fuzzy
+#~ msgid "Groovy graphical library"
+#~ msgstr "Biblioteca de gráficos 2D"
+
+#, fuzzy
+#~ msgid "Groovy's servlet implementation"
+#~ msgstr "Reimplementación de XAudio"
+
+#, fuzzy
+#~ msgid "Groovy testing framework"
+#~ msgstr "Marco de pruebas de software GNU"
+
+#, fuzzy
+#~ msgid "Programming language for the JVM"
+#~ msgstr "Programación de juegos"
+
+#, fuzzy
+#~ msgid "Generic Security Service library"
+#~ msgstr "Seguridad de Servicios de Red"
+
+#, fuzzy
+#~ msgid "Audio visualisation library"
+#~ msgstr "Biblioteca de abstracción de Sip"
+
+#, fuzzy
+#~ msgid "Oil runtime compiler"
+#~ msgstr "Compilador eficiente Scheme"
+
+#, fuzzy
+#~ msgid "Multimedia library"
+#~ msgstr "Biblioteca de módulo jugador"
+
+#, fuzzy
+#~ msgid "Flexible command line media player based on gstreamer"
+#~ msgstr "Reproductor multimedia para GNOME basado en GStreamer"
+
+#, fuzzy
+#~ msgid "XCB bindings for Guile"
 #~ msgstr "Enlazando XOSD para Guile"
 
+#~ msgid "Package manager for Guile"
+#~ msgstr "Gestor de Paquetes para Guile"
+
+#, fuzzy
+#~ msgid "Spell-checking from Guile"
+#~ msgstr "BD Access SQLite desde Guile"
+
+#~ msgid "Extend Bash using Guile"
+#~ msgstr "Extiende Bash utilizando Guile"
+
+#, fuzzy
+#~ msgid "Asynchronous actor model library for Guile"
+#~ msgstr "Biblioteca XMPP asíncrona)"
+
 #~ msgid "DSV module for Guile"
 #~ msgstr "Módulo DSV para Guile"
 
-#~ msgid "Guile DBI driver for SQLite"
-#~ msgstr "Controlador DBI Guile para SQLite"
+#, fuzzy
+#~ msgid "S-expression based json reader/writer for Guile"
+#~ msgstr "%s: la expresión regular no es válida: %s"
+
+#, fuzzy
+#~ msgid "Connect to PostgreSQL using Guile"
+#~ msgstr "Conector C++ para PostgreSQL"
+
+#~ msgid "Colorized REPL for Guile"
+#~ msgstr "REPL colorizado para Guile"
+
+#, fuzzy
+#~ msgid "Purely functional data structures for Guile"
+#~ msgstr "Impresión bonita de estructura de datos"
+
+#, fuzzy
+#~ msgid "Prometheus client library for Guile"
+#~ msgstr "Cliente biblioteca Redis para Guile"
+
+#, fuzzy
+#~ msgid "AA tree data structure for Guile"
+#~ msgstr "Compara datos Perl estructurados"
+
+#, fuzzy
+#~ msgid ""
+#~ "This package provides a Guile programming interface to the ZeroMQ\n"
+#~ "messaging library."
+#~ msgstr ""
+#~ "Este paquete proporciona un diccionario para la biblioteca de\n"
+#~ "comprobación ortográfica Hunspell."
+
+#, fuzzy
+#~ msgid "SPARQL module for Guile"
+#~ msgstr "Módulo DSV para Guile"
+
+#, fuzzy
+#~ msgid "Guile bindings to Newt"
+#~ msgstr "Enlazando Guile para ncurses"
+
+#, fuzzy
+#~ msgid "Guile bindings to GNU Parted"
+#~ msgstr "Enlazando Guile para ncurses"
+
+#~ msgid "XOSD bindings for Guile"
+#~ msgstr "Enlazando XOSD para Guile"
 
 #~ msgid "Guile database abstraction layer"
 #~ msgstr "Capa abstracta de BBDD Guile"
 
+#~ msgid "Guile DBI driver for SQLite"
+#~ msgstr "Controlador DBI Guile para SQLite"
+
+#, fuzzy
+#~ msgid "Guile DBI driver for PostgreSQL"
+#~ msgstr "Controlador DBI Guile para SQLite"
+
+#, fuzzy
+#~ msgid "Guile application configuration parsing library."
+#~ msgstr "Configuración aplicación Guile interpretando biblioteca"
+
+#, fuzzy
+#~ msgid "Guile parser library for the iCalendar format"
+#~ msgstr "Interpreta biblioteca para texto en formato Pod"
+
 #~ msgid "2D/3D game engine for GNU Guile"
 #~ msgstr "Motor de juego 2D/3D para GNU Guile"
 
+#, fuzzy
+#~ msgid "Guile bindings for GObject Introspection"
+#~ msgstr "Enlazando Guile para ncurses"
+
+#, fuzzy
+#~ msgid "Generate C bindings for Guile"
+#~ msgstr "Enlazando XOSD para Guile"
+
+#, fuzzy
+#~ msgid "Framework for building readers for GNU Guile"
+#~ msgstr "Enlazando Cairo para GNU Guile"
+
+#~ msgid "Guile bindings to ncurses"
+#~ msgstr "Enlazando Guile para ncurses"
+
+#, fuzzy
+#~ msgid "S-expression based regular expressions"
+#~ msgstr "%s: la expresión regular no es válida: %s"
+
 #~ msgid "Redis client library for Guile"
 #~ msgstr "Cliente biblioteca Redis para Guile"
 
-#~ msgid "Guile application configuration parsing library"
-#~ msgstr "Configuración aplicación Guile interpretando biblioteca"
+#~ msgid "CommonMark parser for Guile"
+#~ msgstr "Interprete CommonMark para Guile"
 
 #, fuzzy
-#~ msgid "S-expression based regular expressions"
+#~ msgid "Picture language for Guile"
+#~ msgstr "Gestor de Paquetes para Guile"
+
+#, fuzzy
+#~ msgid "IDE for Guile"
+#~ msgstr "Módulo DSV para Guile"
+
+#, fuzzy
+#~ msgid "Persistence programming framework for Guile"
+#~ msgstr "Impresión para marco de trabajo de GNOME"
+
+#, fuzzy
+#~ msgid "Python implementation in Guile"
+#~ msgstr "Implementación JSON en C"
+
+#, fuzzy
+#~ msgid "Manipulate file names"
+#~ msgstr "Puente manipulador Ethernet"
+
+#, fuzzy
+#~ msgid "GObject bindings for Guile"
+#~ msgstr "Enlaces GObject para libudev"
+
+#, fuzzy
+#~ msgid "Hygienic implementation of SRFI-89 for Guile"
+#~ msgstr "Implementación Log4j para Perl"
+
+#, fuzzy
+#~ msgid "SRFI-145 port for Guile"
+#~ msgstr "Módulo DSV para Guile"
+
+#, fuzzy
+#~ msgid "JSON parser and printer for Guile"
+#~ msgstr "JSON modular para Guile"
+
+#, fuzzy
+#~ msgid "JPEG file parsing library for Guile"
+#~ msgstr "Cliente biblioteca Redis para Guile"
+
+#, fuzzy
+#~ msgid "Computer vision library for Guile"
+#~ msgstr "Biblioteca de visión de computación"
+
+#, fuzzy
+#~ msgid "Composable lenses for data structures in Guile"
+#~ msgstr "Compara datos Perl estructurados"
+
+#, fuzzy
+#~ msgid "Guile bindings for Xapian"
+#~ msgstr "Enlazando Guile para libgit2"
+
+#, fuzzy
+#~ msgid "Torrent library for GNU Guile"
+#~ msgstr "Cliente biblioteca Redis para Guile"
+
+#, fuzzy
+#~ msgid "IRC library for Guile"
+#~ msgstr "Cliente biblioteca Redis para Guile"
+
+#, fuzzy
+#~ msgid "Websocket server/client for Guile"
+#~ msgstr "Servicio web para R"
+
+#, fuzzy
+#~ msgid "Guile implementation of the RDF abstract and concrete syntaxes"
+#~ msgstr "Implementación de Scheme y lenguajes relacionados"
+
+#, fuzzy
+#~ msgid "R6RS library for working with packed byte structures"
+#~ msgstr "Biblioteca para trabajar con capacidades POSIX"
+
+#, fuzzy
+#~ msgid "Guile bindings to Avahi"
+#~ msgstr "Enlazando Guile para ncurses"
+
+#, fuzzy
+#~ msgid "Implementation of a recursive @code{mkdir} for Guile"
+#~ msgstr "Implementación de una clase simple para Perl"
+
+#, fuzzy
+#~ msgid "User-space memory subsystem tester"
+#~ msgstr "Unión de espacio de usuario al fichero de sistema"
+
+#, fuzzy
+#~ msgid "Command-line interface for Cabal and Hackage"
+#~ msgstr "Interfaz de mandato lineal para libtocc"
+
+#, fuzzy
+#~ msgid "Liberalised re-implementation of cpp, the C pre-processor"
+#~ msgstr "Implementación Perl de protocolo PSYC"
+
+#~ msgid "Distributed Revision Control System"
+#~ msgstr "Sistema de Control de Revisión Distribuido"
+
+#, fuzzy
+#~ msgid "Puzzle game with a cat in lead role"
+#~ msgstr "Juego de puzzle con un componente de destreza"
+
+#, fuzzy
+#~ msgid "Test CLI programs"
+#~ msgstr "Probando programa TCP"
+
+#, fuzzy
+#~ msgid ""
+#~ "This package provides SmallCheck support for the Tasty\n"
+#~ "Haskell test framework."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid ""
+#~ "This package provides QuickCheck support for the Tasty\n"
+#~ "Haskell test framework."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "Golden tests support for tasty"
+#~ msgstr "Apoyo booleano para Perl"
+
+#, fuzzy
+#~ msgid "Modern and extensible testing framework"
+#~ msgstr "Marco de pruebas de software GNU"
+
+#, fuzzy
+#~ msgid "This package provides a Tasty provider for Hspec test suites."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "HUnit support for the Tasty test framework"
+#~ msgstr "Marco de pruebas de software GNU"
+
+#, fuzzy
+#~ msgid ""
+#~ "This package provides HUnit support for the Tasty Haskell\n"
+#~ "test framework."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "HUnit support for test-framework"
+#~ msgstr "Marco de pruebas de software GNU"
+
+#, fuzzy
+#~ msgid "This package provides HUnit support for the test-framework package."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "Unit testing framework for Haskell"
+#~ msgstr "Impresión para marco de trabajo de GNOME"
+
+#, fuzzy
+#~ msgid "Testing framework for Haskell"
+#~ msgstr "Impresión para marco de trabajo de GNOME"
+
+#, fuzzy
+#~ msgid "Testing Framework for Haskell"
+#~ msgstr "Impresión para marco de trabajo de GNOME"
+
+#, fuzzy
+#~ msgid "This package provides contributed Hspec extensions."
+#~ msgstr ""
+#~ "Este paquete proporciona un diccionario para la biblioteca de\n"
+#~ "comprobación ortográfica Hunspell."
+
+#, fuzzy
+#~ msgid "Simple monadic parser for ASN1 stream types"
+#~ msgstr "Reproductor multimedia para GNOME basado en GStreamer"
+
+#, fuzzy
+#~ msgid "Collection of cryptographic hashes in Haskell"
+#~ msgstr "Colección de utilidades para el núcleo Linux"
+
+#, fuzzy
+#~ msgid "MD5 implementation for Haskell"
+#~ msgstr "Implementación Log4j para Perl"
+
+#, fuzzy
+#~ msgid "This Haskell package provides implementation of MD5."
+#~ msgstr "Implementado indizada paralela de LZMA"
+
+#, fuzzy
+#~ msgid "SHA-1 implementation for Haskell"
+#~ msgstr "Implementación Log4j para Perl"
+
+#, fuzzy
+#~ msgid "SHA-256 implementation for Haskell"
+#~ msgstr "Implementación Log4j para Perl"
+
+#, fuzzy
+#~ msgid "Haskell implementation of the MD5 hash algorithm"
+#~ msgstr "Una implementación Perl pura del algoritmo RC4."
+
+#, fuzzy
+#~ msgid "X509 reader and writer"
+#~ msgstr "Lectura y escritura simple de ficheros"
+
+#, fuzzy
+#~ msgid "Partial OpenSSL binding for Haskell"
+#~ msgstr "Enlaces binarios para liblo"
+
+#, fuzzy
+#~ msgid "Haskell bindings for libcurl"
+#~ msgstr "Enlaces binarios para liblo"
+
+#, fuzzy
+#~ msgid "Library for client-side HTTP"
+#~ msgstr "Biblioteca para acceso por conexión a varias API de servicio"
+
+#, fuzzy
+#~ msgid "HTTP client engine"
+#~ msgstr "Cliente HTTP para R"
+
+#, fuzzy
+#~ msgid ""
+#~ "Library for Parsing and formatting HTTP\n"
+#~ "Date in Haskell."
+#~ msgstr "Biblioteca para carga y contorno de complemento IU LV2"
+
+#, fuzzy
+#~ msgid "HTTP/HTTPS client with conduit interface"
+#~ msgstr "Cliente BitTorrent con interfaz ncurses"
+
+#, fuzzy
+#~ msgid "Web application interface for Haskell"
+#~ msgstr "Almacena preferencias de aplicación"
+
+#, fuzzy
+#~ msgid "SSL/TLS support for Warp"
+#~ msgstr "Capacidad SSL para Net::SMTP"
+
+#, fuzzy
+#~ msgid "CSS parser and renderer"
+#~ msgstr "Intérprete CSS y selección de biblioteca"
+
+#, fuzzy
+#~ msgid "HTML combinator library"
+#~ msgstr "Biblioteca interpretando HTML5 completo"
+
+#, fuzzy
+#~ msgid "Fast HTML combinator library"
+#~ msgstr "Biblioteca interpretando HTML5 completo"
+
+#, fuzzy
+#~ msgid "HTTP multipart library"
+#~ msgstr "Biblioteca interpretando HTML5"
+
+#, fuzzy
+#~ msgid "Regular expression library for W3C XML Schema regular expressions"
 #~ msgstr "%s: la expresión regular no es válida: %s"
 
-#~ msgid "Guile bindings to ncurses"
+#, fuzzy
+#~ msgid "Collection of tools for processing XML with Haskell"
+#~ msgstr "Colección de utilidades para el núcleo Linux"
+
+#, fuzzy
+#~ msgid "HTTP client using io-streams"
+#~ msgstr "Cliente HTTP para R"
+
+#, fuzzy
+#~ msgid "Web server for the Snap Framework"
+#~ msgstr "Servicio web para R"
+
+#, fuzzy
+#~ msgid "Portable sendfile library for Haskell"
+#~ msgstr "Biblioteca de sistema de acceso portable"
+
+#, fuzzy
+#~ msgid "Compatibility layer for ghc-aeson"
+#~ msgstr "Compatibilizar y utilidad bibliotecaria para Scheme"
+
+#, fuzzy
+#~ msgid "This package provides bindings to the ALSA simple mixer API."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "Simple applicative parser"
+#~ msgstr "Almacenamiento de preferencias de aplicaciones"
+
+#, fuzzy
+#~ msgid "Library to run IO operations asynchronously"
+#~ msgstr "Permite bibliotecas C/XS para interrumpir perl asíncronamente"
+
+#, fuzzy
+#~ msgid "Base64 encoding and decoding for ByteStrings"
+#~ msgstr "Codificación y decodificación de relleno en UTF-8"
+
+#, fuzzy
+#~ msgid "This package provides bifunctors for Haskell."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "Efficient buffered output"
+#~ msgstr "Compilador eficiente Scheme"
+
+#, fuzzy
+#~ msgid "Pure and impure Bloom filter implementations"
+#~ msgstr "Implementación bzip2 paralelo"
+
+#, fuzzy
+#~ msgid "2D text pretty-printing library"
+#~ msgstr "Biblioteca de Categoría Textual"
+
+#, fuzzy
+#~ msgid "Streaming compression/decompression via conduits"
+#~ msgstr "Biblioteca compresión/descompresión bzip2 en Java"
+
+#, fuzzy
+#~ msgid "A library for encoding JSON as CBOR"
+#~ msgstr "Biblioteca C para interpretar JSON"
+
+#, fuzzy
+#~ msgid "Binary serialization library"
+#~ msgstr "Biblioteca de abstracción de Sip"
+
+#, fuzzy
+#~ msgid "Library for writing CGI programs"
+#~ msgstr "Biblioteca para interpretar ficheros SVG"
+
+#, fuzzy
+#~ msgid "Library for generating 2D charts and plots"
+#~ msgstr "Biblioteca para generación de ficheros PDF"
+
+#, fuzzy
+#~ msgid ""
+#~ "This package provides a Cairo vector graphics rendering\n"
+#~ "backend for the Charts library."
+#~ msgstr ""
+#~ "Este paquete proporciona un diccionario para la biblioteca de\n"
+#~ "comprobación ortográfica Hunspell."
+
+#, fuzzy
+#~ msgid "Command line argument processing"
+#~ msgstr "Procesador mandato lineal JSON"
+
+#, fuzzy
+#~ msgid "Library for postfix control flow"
+#~ msgstr "Biblioteca para interpretar ficheros SVG"
+
+#, fuzzy
+#~ msgid "Streaming data library "
+#~ msgstr "Medio por flujo del servidor"
+
+#, fuzzy
+#~ msgid "Configuration management"
+#~ msgstr "Sistema de gestión de configuración de software"
+
+#, fuzzy
+#~ msgid "Simple and easy network connections API"
+#~ msgstr "Applet para gestión de conexiones de red"
+
+#, fuzzy
+#~ msgid "Constraint manipulation"
+#~ msgstr "Manipulación especificante de ruta"
+
+#, fuzzy
+#~ msgid ""
+#~ "This package provides default instances for types from the base\n"
+#~ "package."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "Set and bag operations on ordered lists"
+#~ msgstr "Establece operaciones para Perl"
+
+#, fuzzy
+#~ msgid "This module provides set and multiset operations on ordered lists."
+#~ msgstr "Este módulo proporciona un interfaz Perlish para Amazon S3."
+
+#, fuzzy
+#~ msgid "Generic RNF implementation"
+#~ msgstr "Implementación de lisp de tipo Scheme"
+
+#, fuzzy
+#~ msgid "Test interactive Haskell examples"
+#~ msgstr "El shell interactivo amigable"
+
+#, fuzzy
+#~ msgid "File handling library for Haskell"
+#~ msgstr "Biblioteca descodificante para ficheros GIF"
+
+#, fuzzy
+#~ msgid ""
+#~ "This package provides a plotting library for\n"
+#~ "Haskell, using gnuplot for rendering."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "Extensible exceptions for Haskell"
+#~ msgstr "Extensiones para GNOME Shell"
+
+#, fuzzy
+#~ msgid "Fast logging system"
+#~ msgstr "Sistema de módulos basado en GObject"
+
+#, fuzzy
+#~ msgid "QuickCheck support for fgl"
+#~ msgstr "Capacidad Babel para inglés"
+
+#, fuzzy
+#~ msgid "Create command line interfaces with ease"
+#~ msgstr "Interfaz Unix de mandato lineal para www"
+
+#, fuzzy
+#~ msgid "Hackage security library"
+#~ msgstr "Biblioteca de conversión de conjunto de caracteres"
+
+#, fuzzy
+#~ msgid "Documentation-generation tool for Haskell libraries"
+#~ msgstr "Generador de documentación desde código fuente C"
+
+#, fuzzy
+#~ msgid "Command-line interface for user input, written in Haskell"
+#~ msgstr "Interfaz de mandato lineal para libtocc"
+
+#, fuzzy
+#~ msgid "This package provides a fully compliant Haskell 98 lexer."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "Support for manipulating Haskell source code"
+#~ msgstr "Rutinas para manipulación de alijos"
+
+#, fuzzy
+#~ msgid "Library for manipulating Haskell source"
+#~ msgstr "Biblioteca C para manipulador de ficheros tar POSIX"
+
+#, fuzzy
+#~ msgid "Syntax highlighting library"
+#~ msgstr "Biblioteca separación silábica"
+
+#, fuzzy
+#~ msgid "GSL Statistics interface for Haskell"
+#~ msgstr "Interfaz SQlite para Perl"
+
+#, fuzzy
+#~ msgid "Haskell bindings to bibutils"
 #~ msgstr "Enlazando Guile para ncurses"
 
-#~ msgid "Package manager for Guile"
+#, fuzzy
+#~ msgid "Lua module for text"
+#~ msgstr "Módulo DSV para Guile"
+
+#, fuzzy
+#~ msgid "String interpolation library"
+#~ msgstr "Biblioteca de cadena interna"
+
+#, fuzzy
+#~ msgid ""
+#~ "This package provides a string interpolation library for\n"
+#~ "Haskell."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "Simple and composable stream I/O"
+#~ msgstr "Programa simple del control del ventilador"
+
+#, fuzzy
+#~ msgid "IP routing table"
+#~ msgstr "Biblioteca utilitaria para Netlink"
+
+#, fuzzy
+#~ msgid "Picture loading and serialization library"
+#~ msgstr "Biblioteca para procesado y manipulación de CSS2"
+
+#, fuzzy
+#~ msgid "Kan extensions library"
+#~ msgstr "Biblioteca de expresión regular"
+
+#, fuzzy
+#~ msgid "Haskell binding to libffi"
+#~ msgstr "Enlazando Python para libvirt"
+
+#, fuzzy
+#~ msgid "Haskell client library for the Music Player Daemon"
+#~ msgstr "Cliente elegante para el Demonio de Reproductor Musical"
+
+#, fuzzy
+#~ msgid "Haskell bindings to libxml2"
+#~ msgstr "Enlazando Guile para libgit2"
+
+#, fuzzy
+#~ msgid ""
+#~ "This package provides a Haskell wrapper over the\n"
+#~ "LibYAML C library."
+#~ msgstr ""
+#~ "Este paquete proporciona un diccionario para la biblioteca de\n"
+#~ "comprobación ortográfica Hunspell."
+
+#, fuzzy
+#~ msgid "Linear algebra library for Haskell"
+#~ msgstr "Biblioteca cubierta para imlib2"
+
+#, fuzzy
+#~ msgid "LZMA/XZ compression and decompression"
+#~ msgstr "Compresor/descompresor rápido"
+
+#, fuzzy
+#~ msgid "Trie-based memo functions"
+#~ msgstr "Funciones pango obsoletas"
+
+#, fuzzy
+#~ msgid "Large utility library"
+#~ msgstr "Biblioteca utilitaria para Netlink"
+
+#, fuzzy
+#~ msgid "Random-number generation monad for Haskell"
+#~ msgstr "Demonio generador de número aleatorias"
+
+#, fuzzy
+#~ msgid "MurmurHash2 implementation for Haskell"
+#~ msgstr "Implementación Log4j para Perl"
+
+#, fuzzy
+#~ msgid "Random number generation library for Haskell"
+#~ msgstr "Demonio generador de número aleatorias"
+
+#, fuzzy
+#~ msgid "Modernised bindings to GNU ncurses"
+#~ msgstr "Enlazando Guile para ncurses"
+
+#, fuzzy
+#~ msgid "Library for URI manipulation"
+#~ msgstr "Biblioteca para etiquetado de sonido"
+
+#, fuzzy
+#~ msgid "Useful tools from the C standard library"
+#~ msgstr "Biblioteca estándar de C++ de GNU"
+
+#, fuzzy
+#~ msgid "Time compatibility library for Haskell"
+#~ msgstr "Compatibilizar y utilidad bibliotecaria para Scheme"
+
+#, fuzzy
+#~ msgid "Powerful and easy-to-use command-line option parser"
+#~ msgstr "Módulo para  manipular opciones de líneas de mandatos interpretandos"
+
+#, fuzzy
+#~ msgid "Utilities and combinators for parsing command line options"
+#~ msgstr "Módulo para  manipular opciones de líneas de mandatos interpretandos"
+
+#, fuzzy
+#~ msgid "Pretty-printing library for laying out text documents"
+#~ msgstr "Importar biblioteca para algunos antiguos documentos de texto Macintosh"
+
+#, fuzzy
+#~ msgid "Library for using pandoc with citeproc"
+#~ msgstr "Biblioteca para trabajar con capacidades POSIX"
+
+#, fuzzy
+#~ msgid "Types for representing a structured document"
+#~ msgstr "Objeto representando una traza de pila"
+
+#, fuzzy
+#~ msgid "Parallel programming library"
+#~ msgstr "Interpretador construyendo biblioteca"
+
+#, fuzzy
+#~ msgid "This package provides a library for parallel programming."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "Functions for manipulating well-typed paths"
+#~ msgstr "Rutinas para manipulación de alijos"
+
+#, fuzzy
+#~ msgid "Tools for working with derived `Show` instances"
+#~ msgstr "Herramientas para trabajar con el formato de fichero PDF"
+
+#, fuzzy
+#~ msgid "Random number library"
+#~ msgstr "Demonio generador de número aleatorias"
+
+#, fuzzy
+#~ msgid "POSIX regular expressions for Haskell"
+#~ msgstr "Biblioteca de expresión regular"
+
+#, fuzzy
+#~ msgid "POSIX extended regular expressions in Haskell."
+#~ msgstr "%s: la expresión regular no es válida: %s"
+
+#, fuzzy
+#~ msgid "Text interface for regex-tdfa"
+#~ msgstr "Caché de interfaz para Perl"
+
+#, fuzzy
+#~ msgid "This provides an extra text interface for regex-tdfa."
+#~ msgstr "Este módulo proporciona un interfaz Perlish para Amazon S3."
+
+#, fuzzy
+#~ msgid "A standard library for Haskell"
+#~ msgstr "Biblioteca estándar de C++ de GNU"
+
+#, fuzzy
+#~ msgid "Data encoding library"
+#~ msgstr "Biblioteca renderizadora de PDF"
+
+#, fuzzy
+#~ msgid "Reasonably fast data encoding library."
+#~ msgstr "Biblioteca abstracta de BD"
+
+#, fuzzy
+#~ msgid "High- and low-level bindings to the SDL library"
+#~ msgstr "Clon de Tetris basado en la biblioteca SDL"
+
+#, fuzzy
+#~ msgid "Haskell bindings to libSDL_mixer"
+#~ msgstr "Enlazando Python para libvirt"
+
+#, fuzzy
+#~ msgid "Semigroupoids operations for Haskell"
+#~ msgstr "Establece operaciones para Perl"
+
+#, fuzzy
+#~ msgid "Semigroup operations for Haskell"
+#~ msgstr "Establece operaciones para Perl"
+
+#, fuzzy
+#~ msgid "Library for setting environment variables"
+#~ msgstr "Biblioteca para acceso a ficheros zip"
+
+#, fuzzy
+#~ msgid "Prevent writing to stdout"
+#~ msgstr "Impresión bonita de estructura de datos"
+
+#, fuzzy
+#~ msgid "Cross platform library for the sendfile system call"
+#~ msgstr "Plataforma cruzada de biblioteca MIDI para C++"
+
+#, fuzzy
+#~ msgid "Property-based testing library"
+#~ msgstr "Interpretador construyendo biblioteca"
+
+#, fuzzy
+#~ msgid ""
+#~ "This package provides a writer monad for multi-line string\n"
+#~ "literals."
+#~ msgstr ""
+#~ "Este paquete proporciona un diccionario para la biblioteca de\n"
+#~ "comprobación ortográfica Hunspell."
+
+#, fuzzy
+#~ msgid "Temporary file and directory support"
+#~ msgstr "Temporalmente modificar directorio de trabajo"
+
+#, fuzzy
+#~ msgid "Recurseively reify template haskell datatype info"
+#~ msgstr "Copiar recursivamente tipos de datos Perl"
+
+#, fuzzy
+#~ msgid "Compatibility package for time"
+#~ msgstr "Compatibilizar y utilidad bibliotecaria para Scheme"
+
+#, fuzzy
+#~ msgid "Parser and renderer for binary Olson timezone files"
+#~ msgstr "Codificador delta para ficheros binarios"
+
+#, fuzzy
+#~ msgid "Haskell tldr client"
+#~ msgstr "Cliente tftp de HPA"
+
+#, fuzzy
+#~ msgid "Backported transformer library"
+#~ msgstr "Biblioteca de controladores para juegos"
+
+#, fuzzy
+#~ msgid "Unicode normalization"
+#~ msgstr "Formato de normalización Unicode"
+
+#, fuzzy
+#~ msgid "Unified interface to unsafe functions"
+#~ msgstr "Interfaz Perl para pseudo ttys"
+
+#, fuzzy
+#~ msgid "Support for reading and writing UTF8 Strings"
+#~ msgstr "Sofware para grabación y edición de sonido"
+
+#, fuzzy
+#~ msgid "Persistent store for arbitrary values"
+#~ msgstr "Almacenaje clave-valor persistente para almacenar rápido"
+
+#, fuzzy
+#~ msgid "Word8 library for Haskell"
+#~ msgstr "Biblioteca cubierta para imlib2"
+
+#, fuzzy
+#~ msgid "Bindings to the X11 graphics library"
+#~ msgstr "Biblioteca de gráficos 2D"
+
+#, fuzzy
+#~ msgid "This package provides a library implementing the XDG Base Directory spec."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "This package provides a simple XML library for Haskell."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid ""
+#~ "This package provides basic types for representing XML\n"
+#~ "documents."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "Zip archive library for Haskell"
+#~ msgstr "Cliente biblioteca Redis para Guile"
+
+#, fuzzy
+#~ msgid "Compression and decompression in the gzip and zlib formats"
+#~ msgstr "Compresión/descompresión algorítmica en Java"
+
+#, fuzzy
+#~ msgid "Haskell bindings to the Zstandard compression algorithm"
+#~ msgstr "Implementación del algoritmo de compresión Brotli"
+
+#, fuzzy
+#~ msgid "Binary file editor"
+#~ msgstr "Editor LaTeX"
+
+#, fuzzy
+#~ msgid "GNU Mach kernel headers"
+#~ msgstr "Cabeceras del núcleo GNU Mach"
+
+#~ msgid "Headers of the GNU Mach kernel."
+#~ msgstr "Cabeceras del núcleo GNU Mach."
+
+#, fuzzy
+#~ msgid "Mach 3.0 interface generator for the Hurd"
+#~ msgstr "Caché de interfaz para Perl"
+
+#~ msgid "GNU Hurd headers"
+#~ msgstr "Cabeceras de GNU Hurd"
+
+#~ msgid "GNU Hurd libraries"
+#~ msgstr "Bibliotecas de GNU Hurd"
+
+#~ msgid "Microkernel of the GNU system"
+#~ msgstr "Micronúcleo del sistema GNU"
+
+#~ msgid "GNU Mach is the microkernel upon which a GNU Hurd system is based."
+#~ msgstr "GNU Mach es el micronúcleo sobre el que se basa un sistema GNU Hurd."
+
+#~ msgid "The kernel servers for the GNU operating system"
+#~ msgstr "Servidores del núcleo para el sistema operativo GNU"
+
+#~ msgid ""
+#~ "The Hurd is the kernel for the GNU system, a replacement and\n"
+#~ "augmentation of standard Unix kernels.  It is a collection of protocols for\n"
+#~ "system interaction (file systems, networks, authentication), and servers\n"
+#~ "implementing them."
+#~ msgstr ""
+#~ "Hurd es el núcleo del sistema GNU, un reemplazo de y un incremento\n"
+#~ "sobre los núcleos estándar de Unix.  Se compone de una colección de\n"
+#~ "protocolos para la interacción con el sistema (sistemas de ficheros,\n"
+#~ "redes, identificación) y servidores que los implementan."
+
+#, fuzzy
+#~ msgid "Library to handle Chinese pinyin"
+#~ msgstr "Biblioteca para manipulación de ficheros PNG"
+
+#, fuzzy
+#~ msgid "Lightweight parser combinator library for Idris"
+#~ msgstr "Biblioteca de filtro de sonido ligero"
+
+#, fuzzy
+#~ msgid "Pretty printing library"
+#~ msgstr "Interpretador construyendo biblioteca"
+
+#, fuzzy
+#~ msgid "Bifunctor library"
+#~ msgstr "Biblioteca vectorial bit"
+
+#, fuzzy
+#~ msgid "Libraries for 3D computer graphics"
+#~ msgstr "Bibliotecas C++ para complementos LV2"
+
+#, fuzzy
+#~ msgid "Collection of C++ libraries for computer vision"
+#~ msgstr "Colección de utilidades para el núcleo Linux"
+
+#, fuzzy
+#~ msgid "Medical image segmentation"
+#~ msgstr "Reimplementación de XAudio"
+
+#, fuzzy
+#~ msgid "Package management tool using IPFS"
+#~ msgstr "Herramienta de gestor de energía para Linux"
+
+#, fuzzy
+#~ msgid "Go implementation of IPFS, a peer-to-peer hypermedia protocol"
+#~ msgstr "Implementación de RTP (protocolo de transporte en tiempo real)"
+
+#, fuzzy
+#~ msgid "Terminal-based IRC client"
+#~ msgstr "Cliente XMPP basado en consola"
+
+#, fuzzy
+#~ msgid "Extensible chat client"
+#~ msgstr "Cliente extensible Jabber basado en consola"
+
+#, fuzzy
+#~ msgid "Simple IRC client"
+#~ msgstr "Cliente IRC gráfico"
+
+#, fuzzy
+#~ msgid "Epic5 IRC Client"
+#~ msgstr "Cliente IRC gráfico"
+
+#, fuzzy
+#~ msgid "Modular IRC server written in C++"
+#~ msgstr "Motor de juegos 3D escrito en C++"
+
+#, fuzzy
+#~ msgid "Distributed multimedia communications platform"
+#~ msgstr "Comunicación distribuida peer-to-peer"
+
+#, fuzzy
+#~ msgid "Distributed, privacy-respecting communication program"
+#~ msgstr "Comunicación distribuida peer-to-peer"
+
+#~ msgid "Compression/decompression algorithm in Java"
+#~ msgstr "Compresión/descompresión algorítmica en Java"
+
+#, fuzzy
+#~ msgid "Java port of the Snappy (de)compressor"
+#~ msgstr "Puerto Java ágil"
+
+#~ msgid "Java bzip2 compression/decompression library"
+#~ msgstr "Biblioteca compresión/descompresión bzip2 en Java"
+
+#~ msgid "XZ in Java"
+#~ msgstr "XZ en Java"
+
+#, fuzzy
+#~ msgid ""
+#~ "Tukaani-xz is an implementation of xz compression/decompression\n"
+#~ "algorithms in Java."
+#~ msgstr "Compresión/descompresión algorítmica en Java"
+
+#, fuzzy
+#~ msgid "ANTLR C Library"
+#~ msgstr "Biblioteca C JSON"
+
+#, fuzzy
+#~ msgid "Faster Java Virtual Machine launching"
+#~ msgstr "Gestionar máquinas virtuales"
+
+#, fuzzy
+#~ msgid "Small Java Virtual Machine"
+#~ msgstr "Gestionar máquinas virtuales"
+
+#, fuzzy
+#~ msgid "Java development kit"
+#~ msgstr "Estudio de desarrollo web"
+
+#, fuzzy
+#~ msgid "Java parser generator"
+#~ msgstr "Generador de contraseñas aleatorias"
+
+#, fuzzy
+#~ msgid "Utility classes for libraries from ETH Zurich"
+#~ msgstr "Clases utilidad para Jetty"
+
+#, fuzzy
+#~ msgid "Command line parser library"
+#~ msgstr "Biblioteca interpreta fichero de configuración"
+
+#, fuzzy
+#~ msgid "Java binding for HDF5"
+#~ msgstr "Enlazados Javascript para GNOME"
+
+#, fuzzy
+#~ msgid "Java servlet API implementation"
+#~ msgstr "Implementación bzip2 paralelo"
+
+#, fuzzy
+#~ msgid "Library of matchers for building test expressions"
+#~ msgstr "Biblioteca descompresión SoundFont"
+
+#, fuzzy
+#~ msgid "Test framework for Java"
+#~ msgstr "Impresión para marco de trabajo de GNOME"
+
+#, fuzzy
+#~ msgid "Common utilities for the Plexus framework"
+#~ msgstr "Colección de utilidades para el núcleo Linux"
+
+#, fuzzy
+#~ msgid "CLI building library for plexus"
+#~ msgstr "Biblioteca descodificante para ficheros GIF"
+
+#, fuzzy
+#~ msgid "Java byte code generation library"
+#~ msgstr "Biblioteca de conversión de conjunto de caracteres"
+
+#, fuzzy
+#~ msgid "Java library providing mock objects for unit tests"
+#~ msgstr "Biblioteca C proporcionando un ClustterActor para enseñar distribuciones"
+
+#, fuzzy
+#~ msgid "Java library for parsing command line options"
+#~ msgstr "Módulo para  manipular opciones de líneas de mandatos interpretandos"
+
+#, fuzzy
+#~ msgid "Collections framework"
+#~ msgstr "Marco de trabajo para autenticación SASL"
+
+#, fuzzy
+#~ msgid "Database Connection Pool for Java"
+#~ msgstr "Herramienta de migración de BD para SQLAlchemy"
+
+#, fuzzy
+#~ msgid "Distributed caching system in Java"
+#~ msgstr "Sistema de control de versión distribuída"
+
+#, fuzzy
+#~ msgid "HTTP client library for Java"
+#~ msgstr "Cliente HTTP para R"
+
+#, fuzzy
+#~ msgid "Pure Java implementation of SSH2"
+#~ msgstr "Paralelismo implementado para gzip"
+
+#, fuzzy
+#~ msgid "Java library for working with compressed files"
+#~ msgstr "Biblioteca para trabajar con capacidades POSIX"
+
+#, fuzzy
+#~ msgid "Read and write CSV documents"
+#~ msgstr "Fichero almacén de lectura y escritura OLE"
+
+#, fuzzy
+#~ msgid ""
+#~ "This package provides an implementation of the OSGi Core\n"
+#~ "specification."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "Common Eclipse runtime"
+#~ msgstr "Interprete CommonMark para Guile"
+
+#, fuzzy
+#~ msgid ""
+#~ "This package provides support for the Eclipse extension\n"
+#~ "registry."
+#~ msgstr ""
+#~ "Este paquete proporciona un diccionario para la biblioteca de\n"
+#~ "comprobación ortográfica Hunspell."
+
+#, fuzzy
+#~ msgid "Equinox application container"
+#~ msgstr "Gestor de sesiones de aplicaciones de sonido"
+
+#, fuzzy
+#~ msgid "Eclipse core file system"
+#~ msgstr "Localiza ficheros en el sistema del fichero"
+
+#, fuzzy
+#~ msgid "Eclipse core expression language"
+#~ msgstr "Lenguaje de procesamiento de señales"
+
+#, fuzzy
+#~ msgid "Eclipse core variables"
+#~ msgstr "Variables léxicas alias"
+
+#, fuzzy
+#~ msgid "Ant build tool core libraries"
+#~ msgstr "Herramienta para compilar bibliotecas C"
+
+#, fuzzy
+#~ msgid "Eclipse core resource management"
+#~ msgstr "Gestión de dispositivo en espacio de usuario"
+
+#, fuzzy
+#~ msgid "Eclipse team support core"
+#~ msgstr "Apoyo booleano para Perl"
+
+#, fuzzy
+#~ msgid "Eclipse text library"
+#~ msgstr "Cliente biblioteca CMIS"
+
+#, fuzzy
+#~ msgid "Annotation processing tool"
+#~ msgstr "Utilidad de sonido procesado"
+
+#, fuzzy
+#~ msgid "Reference implementation of the JavaMail API"
+#~ msgstr "Una implementación Perl pura del algoritmo RC4."
+
+#, fuzzy
+#~ msgid "Simple implementation of simple logging facade for Java"
+#~ msgstr "Implementación de una clase simple para Perl"
+
+#, fuzzy
+#~ msgid "ANTLR runtime library"
+#~ msgstr "Biblioteca interpretando HTML5"
+
+#, fuzzy
+#~ msgid "Data Transfer Objects"
+#~ msgstr "Objetos establecen FechaHora"
+
+#, fuzzy
+#~ msgid "OSGI Resolver service"
+#~ msgstr "Servicio de geolocalización"
+
+#, fuzzy
+#~ msgid "OSGI Configuration Management"
+#~ msgstr "Sistema de gestión de configuración de software"
+
+#, fuzzy
+#~ msgid "OSGI Package Administration"
+#~ msgstr "Herramienta de administración de CUPS"
+
+#, fuzzy
+#~ msgid "Tools for OSGi"
+#~ msgstr "Herramientas I2C para Linux"
+
+#, fuzzy
+#~ msgid "YAML processor"
+#~ msgstr "CSS pre-procesador"
+
+#, fuzzy
+#~ msgid "Stax XML API implementation"
+#~ msgstr "Reimplementación de XAudio"
+
+#, fuzzy
+#~ msgid "Read and write XML"
+#~ msgstr "Fichero almacén de lectura y escritura OLE"
+
+#, fuzzy
+#~ msgid "Lightweight dependency injection framework"
+#~ msgstr "Interfaz ligero para memoria compartida"
+
+#, fuzzy
+#~ msgid "Fluent assertions for java"
+#~ msgstr "Establece operaciones para Perl"
+
+#, fuzzy
+#~ msgid "Command line parameters parser"
+#~ msgstr "Procesador mandato lineal JSON"
+
+#, fuzzy
+#~ msgid "Lightweight Scripting for Java"
+#~ msgstr "Gestor de portapapeles GTK+ ligero"
+
+#, fuzzy
+#~ msgid "FEST-Assert provides a fluent interface for assertions."
+#~ msgstr "Este módulo proporciona un interfaz Perlish para Amazon S3."
+
+#, fuzzy
+#~ msgid "Testing framework"
+#~ msgstr "Marco de pruebas de software GNU"
+
+#, fuzzy
+#~ msgid "Java implementation of NaCl"
+#~ msgstr "Implementación JSON en C"
+
+#, fuzzy
+#~ msgid "MVFLEX Expression Language"
+#~ msgstr "Lenguaje de procesamiento de señales"
+
+#, fuzzy
+#~ msgid "Java Expression Language "
+#~ msgstr "Lenguaje de procesamiento de señales"
+
+#, fuzzy
+#~ msgid "Compression algorithm"
+#~ msgstr "Compresión algorítmica dedicada a velocidad"
+
+#, fuzzy
+#~ msgid "Cryptographic library"
+#~ msgstr "Biblioteca de gráficos 2D"
+
+#, fuzzy
+#~ msgid "Byte code engineering library"
+#~ msgstr "Biblioteca renderizadora de PDF"
+
+#, fuzzy
+#~ msgid "Mock library extension framework"
+#~ msgstr "Marco de pruebas de software GNU"
+
+#, fuzzy
+#~ msgid "Java binding for 0MQ"
+#~ msgstr "Enlazados Javascript para GNOME"
+
+#, fuzzy
+#~ msgid "Distributed streaming platform"
+#~ msgstr "Comunicación distribuida peer-to-peer"
+
+#, fuzzy
+#~ msgid "Collection of maven POM files for the Geronimo project"
+#~ msgstr "Colección de utilidades para el núcleo Linux"
+
+#, fuzzy
+#~ msgid "JNI code generator"
+#~ msgstr "Generador de contraseñas aleatorias"
+
+#, fuzzy
+#~ msgid "Native library for jansi"
+#~ msgstr "Biblioteca JSON para R"
+
+#, fuzzy
+#~ msgid "Regular expression parser generator for Java."
+#~ msgstr "Biblioteca de expresión regular"
+
+#, fuzzy
+#~ msgid "Console input handling library"
+#~ msgstr "Fichero Mod reproduciendo biblioteca"
+
+#, fuzzy
+#~ msgid "Java file system library"
+#~ msgstr "Biblioteca de sistema de acceso portable"
+
+#, fuzzy
+#~ msgid "Text-processing for Java"
+#~ msgstr "Biblioteca de procesamiento Speex"
+
+#, fuzzy
+#~ msgid "Cross-platform mappings for jna"
+#~ msgstr "Plataforma de biblioteca de sonido cruzada"
+
+#, fuzzy
+#~ msgid "USocketFactory implementation using JNA"
+#~ msgstr "Implementación JSON en C"
+
+#, fuzzy
+#~ msgid "USocketFactory implementation using netcat"
+#~ msgstr "Implementación JSON en C"
+
+#, fuzzy
+#~ msgid "Dependency manager for the Java programming language"
+#~ msgstr "Manual de referencia para el lenguaje de programación C"
+
+#, fuzzy
+#~ msgid "Java library implementing the Git version control system"
+#~ msgstr "Sistema histórico de control de versiones centralizado"
+
+#, fuzzy
+#~ msgid "Common Lisp Implementation on the JVM"
+#~ msgstr "Implementación de DOM W3C"
+
+#, fuzzy
+#~ msgid "Annotations for Java and other JVM languages"
+#~ msgstr "Implementación de Scheme y lenguajes relacionados"
+
+#, fuzzy
+#~ msgid "JSON encoders and decoders"
+#~ msgstr "Codificador/decodificador JSON para Perl"
+
+#, fuzzy
+#~ msgid "Implementation of strftime to JavaScript"
+#~ msgstr "Implementación del algoritmo de compresión Brotli"
+
+#, fuzzy
+#~ msgid "JavaScript interpreter written in C"
+#~ msgstr "Biblioteca WebSockets escrita en C"
+
+#, fuzzy
+#~ msgid "Small embeddable Javascript engine"
+#~ msgstr "Motor JavaScript Mozilla"
+
+#, fuzzy
+#~ msgid "Personal journal application"
+#~ msgstr "Aplicación controladora de servicio Jack"
+
+#, fuzzy
+#~ msgid "Jupyter protocol implementation"
+#~ msgstr "Implementación completa de ajedrez"
+
+#, fuzzy
+#~ msgid "C++ implementation of the Jupyter Kernel protocol"
+#~ msgstr "Implementación del protocolo de transporte en tiempo real"
+
+#, fuzzy
+#~ msgid "QML wrapper for BlueZ"
+#~ msgstr "Cubiertas ALSA para Python"
+
+#, fuzzy
+#~ msgid "Default KDE Plasma 5 icon theme"
+#~ msgstr "Temas de GNOME 3 predeterminado"
+
+#, fuzzy
+#~ msgid "Library for interfacing with calendars"
+#~ msgstr "Biblioteca para generación de ficheros PDF"
+
+#, fuzzy
+#~ msgid "String encoding and manipulating library"
+#~ msgstr "Biblioteca para procesado y manipulación de CSS2"
+
+#, fuzzy
+#~ msgid "Kconfiguration settings framework for Qt"
+#~ msgstr "Impresión para marco de trabajo de GNOME"
+
+#, fuzzy
+#~ msgid "Utilities for graphical user interfaces"
+#~ msgstr "Utilidades para E/S interactiva"
+
+#, fuzzy
+#~ msgid "Library for regional holiday information"
+#~ msgstr "Biblioteca para interpretación del formato AbiWord"
+
+#, fuzzy
+#~ msgid "Data plotting library"
+#~ msgstr "Biblioteca abstracta de BD"
+
+#, fuzzy
+#~ msgid "Oxygen icon theme for the KDE desktop"
+#~ msgstr "Iconos para el escritorio GNOME."
+
+#, fuzzy
+#~ msgid "Barcode generation abstraction layer"
+#~ msgstr "Capa abstracta de BBDD Guile"
+
+#, fuzzy
+#~ msgid "Qt bindings for PulseAudio"
+#~ msgstr "Enlaces binarios para liblo"
+
+#, fuzzy
+#~ msgid "Desktop hardware abstraction"
+#~ msgstr "Información listada de hardware"
+
+#, fuzzy
+#~ msgid "Multi-language spell checker"
+#~ msgstr "Comprobador ortográfico alternativo de GNOME"
+
+#, fuzzy
+#~ msgid "Create documentation from DocBook"
+#~ msgstr "Herramientas documentales Yelp"
+
+#, fuzzy
+#~ msgid "Desktop notifications"
+#~ msgstr "Biblioteca de notificación de escritorio GNOME"
+
+#, fuzzy
+#~ msgid "RSS/Atom parser library"
+#~ msgstr "Biblioteca de módulo jugador"
+
+#, fuzzy
+#~ msgid "Bookmarks management library"
+#~ msgstr "Servicio de gestión de color"
+
+#, fuzzy
+#~ msgid "Widgets for configuration dialogs"
+#~ msgstr "Obtiene directorios de ficheros de configuración"
+
+#, fuzzy
+#~ msgid "Full text editor component"
+#~ msgstr "Juego de puzzle con un componente de destreza"
+
+#, fuzzy
+#~ msgid "Text editing widgets"
+#~ msgstr "Texto codificando conversor"
+
+#, fuzzy
+#~ msgid "Framework for managing menu and toolbar actions"
+#~ msgstr "Applet para gestión de conexiones de red"
+
+#, fuzzy
+#~ msgid "XML-RPC client"
+#~ msgstr "Cliente MUD"
+
+#, fuzzy
+#~ msgid "Instant messaging and chat application"
+#~ msgstr "IRC para pórtico de mensajería instantánea"
+
+#, fuzzy
+#~ msgid "Remote desktop client"
+#~ msgstr "Visor de escritorio remoto para GNOME"
+
+#, fuzzy
+#~ msgid "BitTorrent client"
+#~ msgstr "Cliente BitTorrent gráfico"
+
+#, fuzzy
+#~ msgid "Take pictures and videos out of your webcam"
+#~ msgstr "Toma cuadros en su pantalla"
+
+#, fuzzy
+#~ msgid "Sound editor for KDE"
+#~ msgstr "Editor de sonido"
+
+#, fuzzy
+#~ msgid "A library for retrieving and sending cddb information."
+#~ msgstr "Biblioteca C para crear e interpretar ficheros de configuración."
+
+#, fuzzy
+#~ msgid "KDE library for playing & ripping CDs"
+#~ msgstr "Biblioteca C para interpretar JSON"
+
+#, fuzzy
+#~ msgid "Library providing calendar helpers for Akonadi items"
+#~ msgstr "Biblioteca C proporcionando un ClustterActor para enseñar distribuciones"
+
+#, fuzzy
+#~ msgid "Akonadi contacts access library"
+#~ msgstr "Biblioteca de sistema de acceso portable"
+
+#, fuzzy
+#~ msgid "Akonadi MIME handling library"
+#~ msgstr "Fichero Mod reproduciendo biblioteca"
+
+#, fuzzy
+#~ msgid "Akonadi notes access library"
+#~ msgstr "Biblioteca de sistema de acceso portable"
+
+#, fuzzy
+#~ msgid "Akonadi search library"
+#~ msgstr "Biblioteca E/S del sonido"
+
+#, fuzzy
+#~ msgid "Address Book application to manage your contacts"
+#~ msgstr "Gestor de sesiones de aplicaciones de sonido"
+
+#, fuzzy
+#~ msgid "Library for handling kalarm calendar data"
+#~ msgstr "Biblioteca para manipulación de ficheros PNG"
+
+#, fuzzy
+#~ msgid "Library for handling IMAP"
+#~ msgstr "Biblioteca para manipulación de ficheros PNG"
+
+#, fuzzy
+#~ msgid "Library for accessing LDAP"
+#~ msgstr "Biblioteca para acceso a ficheros zip"
+
+#, fuzzy
+#~ msgid "KDE email utility library"
+#~ msgstr "Biblioteca utilitaria para Netlink"
+
+#, fuzzy
+#~ msgid "Library for handling mbox mailboxes"
+#~ msgstr "Biblioteca para manipulación de ficheros PNG"
+
+#, fuzzy
+#~ msgid "Library for handling MIME data"
+#~ msgstr "Biblioteca para manipulación de ficheros MNG"
+
+#, fuzzy
+#~ msgid "Note-taking utility"
+#~ msgstr "Anotación utilizando un estilo"
+
+#, fuzzy
+#~ msgid "Kontact interface library"
+#~ msgstr "Biblioteca de cadena interna"
+
+#, fuzzy
+#~ msgid "Library for handling mail attachments using TNEF format"
+#~ msgstr "Biblioteca para interpretación del formato AbiWord"
+
+#, fuzzy
+#~ msgid ""
+#~ "Library for accessing various Google services via their public\n"
+#~ "API"
+#~ msgstr "Biblioteca para acceso por conexión a varias API de servicio"
+
+#, fuzzy
+#~ msgid "KDE PIM cryptographic library"
+#~ msgstr "Biblioteca de gráficos 2D"
+
+#, fuzzy
+#~ msgid "KDE Sieve library"
+#~ msgstr "Biblioteca renderizadora de PDF"
+
+#, fuzzy
+#~ msgid "Screen locking library"
+#~ msgstr "Biblioteca de procesamiento Speex"
+
+#, fuzzy
+#~ msgid "Parser generator library for KDevplatform"
+#~ msgstr "Biblioteca cubierta para imlib2"
+
+#, fuzzy
+#~ msgid "Libraries for creating business diagrams"
+#~ msgstr "Ficheros para creación de formatos TeX"
+
+#, fuzzy
+#~ msgid "Digital painting application"
+#~ msgstr "Aplicación de reproducción musical de GNOME"
+
+#, fuzzy
+#~ msgid "Library for managing partitions"
+#~ msgstr "Biblioteca para manipulación de ficheros PNG"
+
+#, fuzzy
+#~ msgid "Library for managing partitions."
+#~ msgstr "Biblioteca para manipulación de ficheros PNG"
+
+#, fuzzy
+#~ msgid "Qt notification framework"
+#~ msgstr "Marco de trabajo para autenticación SASL"
+
+#, fuzzy
+#~ msgid "Runtime library for kdegames"
+#~ msgstr "Biblioteca de imagen para Extempore"
+
+#, fuzzy
+#~ msgid "File manager for KDE"
+#~ msgstr "Gestor de ficheros para GNOME"
+
+#, fuzzy
+#~ msgid "KDE documentation viewer"
+#~ msgstr "Visor documental de GNOME"
+
+#, fuzzy
+#~ msgid "Terminal emulator similar for KDE"
+#~ msgstr "Emulador de terminal"
+
+#, fuzzy
+#~ msgid "Type-and-say frontend for speech synthesizers"
+#~ msgstr "Sintetizador pronunciador de software"
+
+#, fuzzy
+#~ msgid "Simple stopwatch application"
+#~ msgstr "Aplicación de hojas de cálculo"
+
+#, fuzzy
+#~ msgid "Hexadecimal editor for binary files"
+#~ msgstr "Codificador delta para ficheros binarios"
+
+#, fuzzy
+#~ msgid "Temporary file and history cleaner"
+#~ msgstr "Quita ficheros y directorios en Perl"
+
+#, fuzzy
+#~ msgid "Implementation of the Kerberos 5 network security system"
+#~ msgstr "Implementación del algoritmo de compresión Brotli"
+
+#, fuzzy
+#~ msgid "Kerberos 5 network authentication"
+#~ msgstr "Hash del Ojo para Mensaje Autenticado"
+
+#, fuzzy
+#~ msgid "Lightweight universal identifier library"
+#~ msgstr "Biblioteca de filtro de sonido ligero"
+
+#, fuzzy
+#~ msgid "Stemming Library"
+#~ msgstr "Biblioteca de Motor de Búsqueda"
+
+#, fuzzy
+#~ msgid "Convert English text to numbers"
+#~ msgstr "Convierte texto inglés a dialectos humorísticos"
+
+#, fuzzy
+#~ msgid "Porters stemming algorithm for Danish"
+#~ msgstr "Compresión algorítmica dedicada a velocidad"
+
+#, fuzzy
+#~ msgid "Porters stemming algorithm for Swedish"
+#~ msgstr "Compresión algorítmica dedicada a velocidad"
+
+#, fuzzy
+#~ msgid "The Lean theorem prover and programming language"
+#~ msgstr "Implementación del lenguaje de programación Perl"
+
+#, fuzzy
+#~ msgid "Implementation of the XDG Sound Theme and Name Specifications"
+#~ msgstr "Implementación de Scheme y lenguajes relacionados"
+
+#, fuzzy
+#~ msgid "Ctypes wrapper for the libcanberra API"
+#~ msgstr "Envoltura GObject para libcanberra"
+
+#, fuzzy
+#~ msgid "Pycanberra is a basic Python wrapper for libcanberra."
+#~ msgstr "Envoltura GObject para libcanberra"
+
+#, fuzzy
+#~ msgid "NetBSD Editline library"
+#~ msgstr "Biblioteca utilitaria para Netlink"
+
+#, fuzzy
+#~ msgid "Line editing library"
+#~ msgstr "Biblioteca de dibujo 2D"
+
+#, fuzzy
+#~ msgid "Event notification library"
+#~ msgstr "Biblioteca de notificación de escritorio GNOME"
+
+#, fuzzy
+#~ msgid "Perl interface to libev"
+#~ msgstr "Interfaz Perl para ImageMagic"
+
+#, fuzzy
+#~ msgid "Documentation for the Python CFFI interface"
+#~ msgstr "Documentación para servidor web nginx"
+
+#, fuzzy
+#~ msgid "Internationalized string processing library"
+#~ msgstr "Biblioteca de procesamiento Speex"
+
+#, fuzzy
+#~ msgid "C library to manipulate Phidgets"
+#~ msgstr "Biblioteca C para manipulador de ficheros tar POSIX"
+
+#, fuzzy
+#~ msgid "Library for handling page faults"
+#~ msgstr "Biblioteca para manipulación de ficheros PNG"
+
+#, fuzzy
+#~ msgid "C library for manipulating Unicode strings"
+#~ msgstr "Biblioteca C para manipulador de ficheros tar POSIX"
+
+#, fuzzy
+#~ msgid "JNI bindings to libusb"
+#~ msgstr "Enlazando GLib para libusb1"
+
+#, fuzzy
+#~ msgid "USB library for Java"
+#~ msgstr "Biblioteca JSON para R"
+
+#, fuzzy
+#~ msgid "Python bindings to the libusb library"
+#~ msgstr "Enlazando Python para libvirt"
+
+#, fuzzy
+#~ msgid "Library implementing the Media Transfer Protocol"
+#~ msgstr "Implementación del protocolo de transporte en tiempo real"
+
+#, fuzzy
+#~ msgid "Simple graphical MTP client"
+#~ msgstr "Cliente IRC gráfico"
+
+#, fuzzy
+#~ msgid "HID API library"
+#~ msgstr "Biblioteca E/S del sonido"
+
+#, fuzzy
+#~ msgid "Cython interface to hidapi"
+#~ msgstr "Interfaz de mandato lineal para libtocc"
+
+#, fuzzy
+#~ msgid "This package provides a Cython interface to @code{hidapi}."
+#~ msgstr "Este módulo proporciona un interfaz Perlish para Amazon S3."
+
+#, fuzzy
+#~ msgid "Regular expressions for legal licenses"
+#~ msgstr "Biblioteca de expresión regular"
+
+#, fuzzy
+#~ msgid "Templated software licenses"
+#~ msgstr "Plantilla Vista Clase"
+
+#, fuzzy
+#~ msgid "Python bindings for LIRC"
+#~ msgstr "Enlaces Python para GTK+"
+
+#, fuzzy
+#~ msgid "A Common Lisp implementation"
+#~ msgstr "Implementación de lisp de tipo Scheme"
+
+#, fuzzy
+#~ msgid "Common Lisp implementation"
+#~ msgstr "Implementación de lisp de tipo Scheme"
+
+#, fuzzy
+#~ msgid "General-purpose, multi-paradigm programming language"
+#~ msgstr "Implementación del lenguaje de programación Perl"
+
+#, fuzzy
+#~ msgid "Interpreter for the PicoLisp programming language"
+#~ msgstr "Implementación del lenguaje de programación Perl"
+
+#, fuzzy
+#~ msgid "Collection of portable utilities for Common Lisp"
+#~ msgstr "Colección de utilidades para el núcleo Linux"
+
+#, fuzzy
+#~ msgid "Common Lisp testing framework"
+#~ msgstr "Marco de pruebas de software GNU"
+
+#, fuzzy
+#~ msgid "Implementation of virtual bivalent streams for Common Lisp"
+#~ msgstr "Implementación de una clase simple para Perl"
+
+#, fuzzy
+#~ msgid "Portable regular expression library for Common Lisp"
+#~ msgstr "Biblioteca de expresión regular"
+
+#, fuzzy
+#~ msgid "Common Lisp library for generating PDF files"
+#~ msgstr "Biblioteca para generación de ficheros PDF"
+
+#, fuzzy
+#~ msgid "X11 client library for Common Lisp"
+#~ msgstr "Cliente biblioteca Redis para Guile"
+
+#, fuzzy
+#~ msgid "JavaScript compressor"
+#~ msgstr "Compresión de cadena"
+
+#, fuzzy
+#~ msgid "Extensions to ASDF"
+#~ msgstr "Extensiones para GNOME Shell"
+
+#, fuzzy
+#~ msgid "Simple test framework"
+#~ msgstr "Marco de pruebas de software GNU"
+
+#, fuzzy
+#~ msgid "Charset encoding and decoding library"
+#~ msgstr "Biblioteca de geocódigo y reversión de geocódigo"
+
+#, fuzzy
+#~ msgid "Procedural vector parser"
+#~ msgstr "Directorio Perl listando intérprete"
+
+#, fuzzy
+#~ msgid "Simple scanf-like functionality implementation"
+#~ msgstr "Implementación de lisp de tipo Scheme"
+
+#, fuzzy
+#~ msgid "A simple scanf-like functionality implementation."
+#~ msgstr "Implementación de lisp de tipo Scheme"
+
+#, fuzzy
+#~ msgid "Portable test harness package"
+#~ msgstr "Biblioteca de sistema de acceso portable"
+
+#, fuzzy
+#~ msgid "Portable URI Library"
+#~ msgstr "Biblioteca de sistema de acceso portable"
+
+#, fuzzy
+#~ msgid "Simple queue implementation"
+#~ msgstr "Implementación completa de ajedrez"
+
+#, fuzzy
+#~ msgid "Thread safe queue implementation"
+#~ msgstr "Implementación completa de ajedrez"
+
+#, fuzzy
+#~ msgid "Priority queue (Fibonacci) implementation"
+#~ msgstr "Implementación bzip2 paralelo"
+
+#, fuzzy
+#~ msgid "JSON encoder and decoder for Common-Lisp"
+#~ msgstr "Codificador/decodificador JSON para Perl"
+
+#, fuzzy
+#~ msgid "Common Lisp binding for GTK+3"
+#~ msgstr "Enlaces Python para GTK+"
+
+#, fuzzy
+#~ msgid "Set-like data structure"
+#~ msgstr "Compara datos Perl estructurados"
+
+#, fuzzy
+#~ msgid "HTTP request/response parser for Common Lisp"
+#~ msgstr "Petición/respuestas HTTP interpretadas para C"
+
+#, fuzzy
+#~ msgid ""
+#~ "@code{fast-http} is a HTTP request/response protocol parser for Common\n"
+#~ "Lisp."
+#~ msgstr "Petición/respuestas HTTP interpretadas para C"
+
+#, fuzzy
+#~ msgid "Simple (de)serialization of Lisp datastructures"
+#~ msgstr "Impresión bonita de estructura de datos"
+
+#, fuzzy
+#~ msgid "JSON encoder and decoder"
+#~ msgstr "Codificador/decodificador JSON para Perl"
+
+#, fuzzy
+#~ msgid "HTTP POST data parser"
+#~ msgstr "Interpretador Cuerpo HTTP"
+
+#, fuzzy
+#~ msgid "Time manipulation library for Common Lisp"
+#~ msgstr "Biblioteca interpretando CSS2 y manipulación"
+
+#, fuzzy
+#~ msgid "CLUnit is a Common Lisp unit testing framework"
+#~ msgstr "Marco de pruebas de software GNU"
+
+#, fuzzy
+#~ msgid "Collection of utilities and data structures"
+#~ msgstr "Colección de utilidades para el núcleo Linux"
+
+#, fuzzy
+#~ msgid "Common Lisp I/O library"
+#~ msgstr "Biblioteca E/S del sonido"
+
+#, fuzzy
+#~ msgid "HTTP cookie manager for Common Lisp"
 #~ msgstr "Gestor de Paquetes para Guile"
 
+#, fuzzy
+#~ msgid "Pattern-matching friendly implementation of quasiquote"
+#~ msgstr "Paralelismo implementado para gzip"
+
+#, fuzzy
+#~ msgid "D-Bus client library for Common Lisp"
+#~ msgstr "Cliente biblioteca Redis para Guile"
+
+#, fuzzy
+#~ msgid "Series data structure for Common Lisp"
+#~ msgstr "Compara datos Perl estructurados"
+
+#, fuzzy
+#~ msgid "Common Lisp library for manipulating date/time objects"
+#~ msgstr "Biblioteca C para manipulador de ficheros tar POSIX"
+
+#, fuzzy
+#~ msgid "Container library for Common Lisp"
+#~ msgstr "Juego de plataforma de acción"
+
+#, fuzzy
+#~ msgid "Common Lisp library for lzip (de)compression"
+#~ msgstr "Biblioteca descompresión SoundFont"
+
+#, fuzzy
+#~ msgid "Graph data structure and algorithms for Common Lisp"
+#~ msgstr "Estructuras y algoritmos de datos gráficos"
+
+#, fuzzy
+#~ msgid "GNU Scientific Library for Lisp"
+#~ msgstr "Cliente biblioteca Redis para Guile"
+
+#, fuzzy
+#~ msgid "Common lisp library for comma-separated values"
+#~ msgstr "Manipula valorer separados por coma"
+
+#, fuzzy
+#~ msgid "Functional set-theoretic collections library"
+#~ msgstr "Colección bibliotecaria de GObject"
+
+#, fuzzy
+#~ msgid "Coroutine library for Common Lisp"
+#~ msgstr "Biblioteca descodificante para ficheros GIF"
+
+#, fuzzy
+#~ msgid "Common Lisp bindings to libuv"
+#~ msgstr "Enlazando Python para librsvg"
+
+#, fuzzy
+#~ msgid "Promise implementation for Common Lisp"
+#~ msgstr "Paralelismo implementado para gzip"
+
+#, fuzzy
+#~ msgid "Futures implementation for Common Lisp"
+#~ msgstr "Paralelismo implementado para gzip"
+
+#, fuzzy
+#~ msgid "Extra widgets for LTK"
+#~ msgstr "Cubiertas HTML para R"
+
+#, fuzzy
+#~ msgid "Remote GUI support for LTK"
+#~ msgstr "Apoyo booleano para Perl"
+
+#, fuzzy
+#~ msgid "Unit testing framework for Common Lisp"
+#~ msgstr "Impresión para marco de trabajo de GNOME"
+
+#, fuzzy
+#~ msgid "JPEG image library for Common Lisp"
+#~ msgstr "Biblioteca de imagen para Extempore"
+
+#, fuzzy
+#~ msgid "This is a Common Lisp library for reading PNG images."
+#~ msgstr "Biblioteca para manipulación de ficheros PNG"
+
+#, fuzzy
+#~ msgid "Support library for numcl"
+#~ msgstr "Biblioteca cubierta para imlib2"
+
+#, fuzzy
+#~ msgid "Basic date and time objects for Common Lisp"
+#~ msgstr "Objetos de fecha y hora para Perl"
+
+#, fuzzy
+#~ msgid "Common Lisp interface for PostgreSQL"
+#~ msgstr "Conector C++ para PostgreSQL"
+
+#, fuzzy
+#~ msgid "Database independent interface for Common Lisp"
+#~ msgstr "Interfaz de base de datos independiente para Perl"
+
+#, fuzzy
+#~ msgid "Database driver for MySQL"
+#~ msgstr "Controlador DBI Guile para SQLite"
+
+#, fuzzy
+#~ msgid "Database driver for PostgreSQL"
+#~ msgstr "Conector C++ para PostgreSQL"
+
+#, fuzzy
+#~ msgid "Database driver for SQLite3"
+#~ msgstr "Controlador DBI Guile para SQLite"
+
+#, fuzzy
+#~ msgid "Operating system interface for Common Lisp"
+#~ msgstr "BD de información del sistema operativo"
+
+#, fuzzy
+#~ msgid "CL(x) xembed protocol implementation "
+#~ msgstr "Pequeña implementación Scheme embebible"
+
+#, fuzzy
+#~ msgid "CL(x) xembed protocol implementation"
+#~ msgstr "Pequeña implementación Scheme embebible"
+
+#, fuzzy
+#~ msgid "Minimal testing framework for Common Lisp"
+#~ msgstr "Impresión para marco de trabajo de GNOME"
+
+#, fuzzy
+#~ msgid "Library to make ascii-art tables"
+#~ msgstr "Biblioteca para acceso a ficheros zip"
+
+#, fuzzy
+#~ msgid "Common Lisp client library for Apache Kafka"
+#~ msgstr "Cliente biblioteca Redis para Guile"
+
+#, fuzzy
+#~ msgid "A Common Lisp client library for Apache Kafka."
+#~ msgstr "Cliente biblioteca Redis para Guile"
+
+#, fuzzy
+#~ msgid "Implementation of 2-3 trees for Common Lisp"
+#~ msgstr "Implementación de DOM W3C"
+
+#, fuzzy
+#~ msgid "Implementation of binary trees for Common Lisp"
+#~ msgstr "Implementación de DOM W3C"
+
+#, fuzzy
+#~ msgid "Common Lisp library for reading and writing binary data"
+#~ msgstr "Biblioteca C para crear e interpretar ficheros de configuración."
+
+#, fuzzy
+#~ msgid "Common Lisp library for GIF images"
+#~ msgstr "Biblioteca descodificante para ficheros GIF"
+
+#, fuzzy
+#~ msgid "Common Lisp library for TIFF images"
+#~ msgstr "Biblioteca descodificante para ficheros GIF"
+
+#, fuzzy
+#~ msgid "PNG image decoder for Common Lisp"
+#~ msgstr "Visor imagen para comics"
+
+#, fuzzy
+#~ msgid "Image processing library for Common Lisp"
+#~ msgstr "Biblioteca de procesamiento Speex"
+
+#, fuzzy
+#~ msgid "Templating system for Common Lisp"
+#~ msgstr "Sistema procesando plantilla para Perl"
+
+#, fuzzy
+#~ msgid "Collection of utilities to process lambda-lists"
+#~ msgstr "Colección de utilidades para el núcleo Linux"
+
+#, fuzzy
+#~ msgid "Optimizing compiler infrastructure"
+#~ msgstr "Infraestructura segura Jetty"
+
+#, fuzzy
+#~ msgid "C++ standard library"
+#~ msgstr "Biblioteca estándar de C++ de GNU"
+
+#, fuzzy
+#~ msgid "Libraries for the OpenCL programming language"
+#~ msgstr "Manual de referencia para el lenguaje de programación C"
+
+#, fuzzy
+#~ msgid "This package provides a Python binding to LLVM for use in Numba."
+#~ msgstr ""
+#~ "Este paquete proporciona un diccionario para la biblioteca de\n"
+#~ "comprobación ortográfica Hunspell."
+
+#, fuzzy
+#~ msgid "Log library for C++"
+#~ msgstr "Biblioteca JSON para R"
+
+#, fuzzy
+#~ msgid "C++ logging library"
+#~ msgstr "Cliente biblioteca CMIS"
+
+#, fuzzy
+#~ msgid "Fast C++ logging library"
+#~ msgstr "Interpretador construyendo biblioteca"
+
+#, fuzzy
+#~ msgid "Implementation of the algorithmic language Scheme"
+#~ msgstr "Implementación del lenguaje de programación Perl"
+
+#, fuzzy
+#~ msgid "Display information about open files"
+#~ msgstr "Enseña información sobre dispositivos ACPI"
+
+#, fuzzy
+#~ msgid "SAX XML parser based on the Expat library"
+#~ msgstr "Clon de Tetris basado en la biblioteca SDL"
+
+#, fuzzy
+#~ msgid "Socket library for Lua"
+#~ msgstr "Biblioteca JSON para R"
+
+#, fuzzy
+#~ msgid "File system library for Lua"
+#~ msgstr "Cliente biblioteca Redis para Guile"
+
+#, fuzzy
+#~ msgid "OpenSSL bindings for Lua"
+#~ msgstr "Enlazando XOSD para Guile"
+
+#, fuzzy
+#~ msgid "Collection of general purpose libraries for the Lua language"
+#~ msgstr "Colección de utilidades para el núcleo Linux"
+
+#, fuzzy
+#~ msgid "Lua documentation generator"
+#~ msgstr "Herramientas documentales Yelp"
+
+#, fuzzy
+#~ msgid "Libuv bindings for Lua"
+#~ msgstr "Enlazando GLib para libusb1"
+
+#, fuzzy
+#~ msgid "LXDE monitor configuration tool"
+#~ msgstr "Obtiene directorios de ficheros de configuración"
+
+#, fuzzy
+#~ msgid "LXDE terminal emulator"
+#~ msgstr "Emulador de terminal"
+
+#, fuzzy
+#~ msgid "Common files of the LXDE Desktop"
+#~ msgstr "Iconos para el escritorio GNOME."
+
+#, fuzzy
+#~ msgid "Lightweight X11 session manager"
+#~ msgstr "Gestor de portapapeles GTK+ ligero"
+
+#, fuzzy
+#~ msgid "X11 Desktop panel for LXDE"
+#~ msgstr "Shell de escritorio para GNOME"
+
+#, fuzzy
+#~ msgid "Lightweight X11 Desktop Environment"
+#~ msgstr "El entorno de escritorio GNU"
+
+#, fuzzy
+#~ msgid "Qt implementation of the DBusMenu spec"
+#~ msgstr "Implementación de DOM W3C"
+
+#, fuzzy
+#~ msgid "Qt implementation of freedesktop.org xdg specifications"
+#~ msgstr "Herramienta para implementar la especificación de nombrado de iconos de Freedesktop"
+
+#, fuzzy
+#~ msgid ""
+#~ "Libqtxdg implements the freedesktop.org xdg specifications\n"
+#~ "in Qt."
+#~ msgstr "Herramienta para implementar la especificación de nombrado de iconos de Freedesktop"
+
+#, fuzzy
+#~ msgid "LXQt system administration tool"
+#~ msgstr "Herramienta de administración de CUPS"
+
+#, fuzzy
+#~ msgid "The LXQt desktop panel"
+#~ msgstr "El entorno de escritorio GNU"
+
+#, fuzzy
+#~ msgid "Power management module for LXQt"
+#~ msgstr "Herramienta de gestor de energía para Linux"
+
+#, fuzzy
+#~ msgid "Session manager for LXQt"
+#~ msgstr "Gestor de sesión para GNOME"
+
+#, fuzzy
+#~ msgid "Qt binding for libfm"
+#~ msgstr "Enlaces binarios para liblo"
+
+# FUZZY
+#, fuzzy
+#~ msgid "File manager and desktop icon manager"
+#~ msgstr "Tema de iconos de Freedesktop"
+
+#, fuzzy
+#~ msgid "Openbox configuration tool"
+#~ msgstr "Biblioteca de configuración de teclado GNOME"
+
+#, fuzzy
+#~ msgid "Lightweight Qt-based terminal emulator"
+#~ msgstr "Biblioteca de filtro de sonido ligero"
+
+#, fuzzy
+#~ msgid "The Lightweight Qt Desktop Environment"
+#~ msgstr "El entorno de escritorio GNU"
+
+#, fuzzy
+#~ msgid "LXQt is a lightweight Qt desktop environment."
+#~ msgstr "El entorno de escritorio GNU"
+
+#, fuzzy
+#~ msgid "Macro processor"
+#~ msgstr "CSS pre-procesador"
+
+#, fuzzy
+#~ msgid "Library for Support Vector Machines"
+#~ msgstr "Biblioteca descompresión SoundFont"
+
+#, fuzzy
+#~ msgid "Python bindings of libSVM"
+#~ msgstr "Enlaces binarios para liblo"
+
+# FUZZY
+#, fuzzy
+#~ msgid "OCaml wrappers around MCL"
+#~ msgstr "Recubrimiento C++ sobre la interfaz de ALSA"
+
+#, fuzzy
+#~ msgid ""
+#~ "This package provides OCaml bindings for the MCL graph clustering\n"
+#~ "algorithm."
+#~ msgstr ""
+#~ "Este paquete proporciona un diccionario para la biblioteca de\n"
+#~ "comprobación ortográfica Hunspell."
+
+#, fuzzy
+#~ msgid "Implementation of the Random Forests machine learning method"
+#~ msgstr "Implementación del algoritmo de compresión Brotli"
+
+#, fuzzy
+#~ msgid "Machine learning framework"
+#~ msgstr "Marco de pruebas de software GNU"
+
+#, fuzzy
+#~ msgid "High-level deep learning framework"
+#~ msgstr "Genera enlaces C para Guile"
+
+#, fuzzy
+#~ msgid "Collective communications library"
+#~ msgstr "Colección bibliotecaria de GObject"
+
+#, fuzzy
+#~ msgid "Utilities and library for reading and serving mail"
+#~ msgstr "Biblioteca de utilidades para el software linphone"
+
+#, fuzzy
+#~ msgid "Mail client"
+#~ msgstr "Cliente MUD"
+
+#, fuzzy
+#~ msgid "Command-line mail reader based on Mutt"
+#~ msgstr "Interfaz de mandato lineal para libtocc"
+
+#, fuzzy
+#~ msgid "MIME message parser and creator library"
+#~ msgstr "Intérprete CSS y selección de biblioteca"
+
+#, fuzzy
+#~ msgid "Command-line MUA using @code{notmuch}"
+#~ msgstr "Cliente WebDAV por mandato lineal"
+
+#, fuzzy
+#~ msgid "Portrait image compressor"
+#~ msgstr "Compresión de cadena"
+
+#, fuzzy
+#~ msgid "Parse and format RFC 5322 email addresses and groups"
+#~ msgstr "Interpreta y formatea fecha y hora iCal y cadenas de duración"
+
+#, fuzzy
+#~ msgid "Produce RFC 2822 date strings"
+#~ msgstr "Interpreta cadenas textuales de fecha/hora"
+
+#, fuzzy
+#~ msgid "MIME message handling"
+#~ msgstr "Manipular fecha simple"
+
+#, fuzzy
+#~ msgid "Perl library for sending email"
+#~ msgstr "Biblioteca C para interpretar JSON"
+
+#, fuzzy
+#~ msgid "Perl implementation of Sender Policy Framework"
+#~ msgstr "Implementación Perl de protocolo PSYC"
+
+#, fuzzy
+#~ msgid "Mbox to maildir converter"
+#~ msgstr "Texto codificando conversor"
+
+#, fuzzy
+#~ msgid "Lightweight SMTP daemon"
+#~ msgstr "Cliente ligero Tox"
+
+#, fuzzy
+#~ msgid "Python bindings for the Mailman 3 REST API"
+#~ msgstr "Enlace Python para cairo"
+
+#, fuzzy
+#~ msgid "Web user interface for GNU Mailman"
+#~ msgstr "Servicio web para R"
+
+#, fuzzy
+#~ msgid "Web interface to mailing list archives"
+#~ msgstr "Proporciona un interfaz para ficheros archivos ZIP"
+
+#, fuzzy
+#~ msgid "Featureful SMTP test tool"
+#~ msgstr "Característica completa servidor HTTP"
+
+#, fuzzy
+#~ msgid "E-mail client for GNOME"
+#~ msgstr "Reproductor musical para GNOME"
+
+#, fuzzy
+#~ msgid "Debbugs web interface"
+#~ msgstr "Interfaz BDI MySQL"
+
+#, fuzzy
+#~ msgid "TNEF stream reader for winmail.dat files"
+#~ msgstr "Codificador delta para ficheros binarios"
+
+#, fuzzy
+#~ msgid "Lightweight GTK+ email client"
+#~ msgstr "Cliente ligero Tox"
+
+#, fuzzy
+#~ msgid "Spam filtering system"
+#~ msgstr "Sistema indizado web"
+
+#, fuzzy
+#~ msgid "XML to Man converter"
+#~ msgstr "Conversor PDF a SVG"
+
+#, fuzzy
+#~ msgid "C library for manipulating pipelines of subprocesses"
+#~ msgstr "Biblioteca C para manipulador de ficheros tar POSIX"
+
+#, fuzzy
+#~ msgid "Standard Unix documentation system"
+#~ msgstr "Sistema de computación de música y sonido"
+
+#, fuzzy
+#~ msgid "Development manual pages from the Linux project"
+#~ msgstr "Utilidades de documentación para el proyecto GNOME"
+
+#, fuzzy
+#~ msgid "Simple man page generator"
+#~ msgstr "Visor Imagen X Simple"
+
+#, fuzzy
+#~ msgid "Convert text to man page"
+#~ msgstr "Convierte texto inglés a dialectos humorísticos"
+
+#, fuzzy
+#~ msgid "Markdown processing library"
+#~ msgstr "Biblioteca de procesamiento Speex"
+
+#, fuzzy
+#~ msgid "Text-to-HTML conversion tool"
+#~ msgstr "Herramienta de detección de codificación del texto"
+
+#, fuzzy
+#~ msgid "Markdown processing library, written in C"
+#~ msgstr "Biblioteca WebSockets escrita en C"
+
+#, fuzzy
+#~ msgid "This package provides a python wrapper for the Mastodon API."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "Power manager for MATE"
+#~ msgstr "Gestor de ficheros para GNOME"
+
+#, fuzzy
+#~ msgid "The MATE desktop environment icon theme"
+#~ msgstr "El entorno de escritorio GNU"
+
+#, fuzzy
+#~ msgid "MATE desktop environment icon theme faenza"
+#~ msgstr "El entorno de escritorio GNU"
+
+#, fuzzy
+#~ msgid "Official themes for the MATE desktop"
+#~ msgstr "Iconos para el escritorio GNOME."
+
+#, fuzzy
+#~ msgid "MATE Terminal Emulator"
+#~ msgstr "Emulador de terminal"
+
+#, fuzzy
+#~ msgid "Session manager for MATE"
+#~ msgstr "Gestor de sesión para GNOME"
+
+#, fuzzy
+#~ msgid "Mixer library for the MATE desktop"
+#~ msgstr "Fondo de imágenes para el escritorio GNOME"
+
+#, fuzzy
+#~ msgid "MATE keyboard configuration library"
+#~ msgstr "Biblioteca de configuración de teclado GNOME"
+
+#, fuzzy
+#~ msgid "Document viewer for Mate"
+#~ msgstr "Importador documento para suites ofimáticas"
+
+#, fuzzy
+#~ msgid "File manager for the MATE desktop"
+#~ msgstr "Gestor de ficheros para GNOME"
+
+#, fuzzy
+#~ msgid "Extensions for the File manager Caja"
+#~ msgstr "Extensiones para el visor de imágenes de GNOME"
+
+#, fuzzy
+#~ msgid "MATE Desktop configuration tool"
+#~ msgstr "Biblioteca de configuración de teclado GNOME"
+
+#, fuzzy
+#~ msgid "Window manager for the MATE desktop"
+#~ msgstr "Fondo de imágenes para el escritorio GNOME"
+
+#, fuzzy
+#~ msgid "User Documentation for Mate software"
+#~ msgstr "Documentación para servidor web nginx"
+
+#, fuzzy
+#~ msgid "Utilities for the MATE Desktop"
+#~ msgstr "Utilidades para configurar el escritorio de GNOME"
+
+#, fuzzy
+#~ msgid "Archive Manager for MATE"
+#~ msgstr "Gestor de ficheros para GNOME"
+
+#, fuzzy
+#~ msgid "Engrampa is the archive manager for the MATE Desktop."
+#~ msgstr "Gestor de archivo gráfico para GNOME"
+
+#, fuzzy
+#~ msgid "The MATE desktop environment"
+#~ msgstr "El entorno de escritorio GNU"
+
+#, fuzzy
+#~ msgid "Conversion routines for IEEE doubles"
+#~ msgstr "Fecha del conversión de rutinas"
+
+#, fuzzy
+#~ msgid "Numerical library for C and C++"
+#~ msgstr "Descodificando biblioteca para ficheros BMP e ICO"
+
+#, fuzzy
+#~ msgid "Library for numerical linear algebra"
+#~ msgstr "Biblioteca para imágenes panorámicas"
+
+#, fuzzy
+#~ msgid "Library for scalable numerical linear algebra"
+#~ msgstr "Biblioteca para etiquetado de sonido"
+
+#, fuzzy
+#~ msgid "Command-line driven graphing utility"
+#~ msgstr "Interfaz de mandato lineal para libtocc"
+
+#, fuzzy
+#~ msgid "C++ library of maths, signal processing and communication classes"
+#~ msgstr "Biblioteca C para crear e interpretar ficheros de configuración."
+
+#, fuzzy
+#~ msgid "Library for scientific data"
+#~ msgstr "Biblioteca para análisis genómico"
+
+#, fuzzy
+#~ msgid "Fortran interface for the netCDF library"
+#~ msgstr "Biblioteca de cadena interna"
+
+#, fuzzy
+#~ msgid "Library for nonlinear optimization"
+#~ msgstr "Biblioteca para imágenes panorámicas"
+
+#, fuzzy
+#~ msgid "C++ library for solving large optimization problems"
+#~ msgstr "Biblioteca C para crear e interpretar ficheros de configuración."
+
+#, fuzzy
+#~ msgid "Library implementing Maxflow algorithm"
+#~ msgstr "Una implementación Perl pura del algoritmo RC4."
+
+#, fuzzy
+#~ msgid "Python bindings for PETSc"
+#~ msgstr "Enlaces Python para GTK+"
+
+#, fuzzy
+#~ msgid "Fast implementation of the Cassowary constraint solver"
+#~ msgstr "Implementación del algoritmo de compresión Brotli"
+
+#, fuzzy
+#~ msgid "Scalable library for eigenproblems"
+#~ msgstr "Biblioteca de imagen para Extempore"
+
+#, fuzzy
+#~ msgid "Python bindings for SLEPc"
+#~ msgstr "Enlace Python para cairo"
+
+#, fuzzy
+#~ msgid "AsciiMath parsing and conversion library"
+#~ msgstr "Biblioteca para procesado y manipulación de CSS2"
+
+#, fuzzy
+#~ msgid "Graphical user interface for the Maxima computer algebra system"
+#~ msgstr "Interfaz gráfica para programas de ajedrez"
+
+#, fuzzy
+#~ msgid "C++ linear algebra library"
+#~ msgstr "Biblioteca estándar de C++ de GNU"
+
+#, fuzzy
+#~ msgid "Portable C mathematical library (libm)"
+#~ msgstr "Biblioteca de sistema de acceso portable"
+
+#, fuzzy
+#~ msgid "OpenGL Mathematics library"
+#~ msgstr "Biblioteca de gráficos 2D"
+
+#, fuzzy
+#~ msgid "Finite element library"
+#~ msgstr "Biblioteca de cadena interna"
+
+#, fuzzy
+#~ msgid "Finite element library (with MPI support)"
+#~ msgstr "Biblioteca de gráficos 2D (con apoyo X11)"
+
+#, fuzzy
+#~ msgid "Library for reading and writing MAT files"
+#~ msgstr "Biblioteca para manipulación de ficheros MNG"
+
+#, fuzzy
+#~ msgid "The terminal calculator"
+#~ msgstr "Emulador de terminal"
+
+#, fuzzy
+#~ msgid "Library for graph automorphisms"
+#~ msgstr "Biblioteca para imágenes panorámicas"
+
+#, fuzzy
+#~ msgid "Small, yet efficient, SAT solver"
+#~ msgstr "Compilador Scheme brutalmente eficiente"
+
+#, fuzzy
+#~ msgid "Utility classes for testing the maven repository system"
+#~ msgstr "Clases utilidad para Jetty"
+
+#, fuzzy
+#~ msgid "Utility classes for the maven repository system"
+#~ msgstr "Clases utilidad para Jetty"
+
+#, fuzzy
+#~ msgid "Transport implementation for Maven"
+#~ msgstr "Implementación Log4j para Perl"
+
+#, fuzzy
+#~ msgid "Plexus-util replacement for maven"
+#~ msgstr "Soltar sustitución para NEXT"
+
+#, fuzzy
+#~ msgid "Transport abstraction for Maven"
+#~ msgstr "Biblioteca abstracta de origen de datos"
+
+#, fuzzy
+#~ msgid "Extension API for Maven SureFire"
+#~ msgstr "Extensiones para GNOME Shell"
+
+#, fuzzy
+#~ msgid "Encryption algorithm library"
+#~ msgstr "Cliente biblioteca Python MPD"
+
+#, fuzzy
+#~ msgid "Graphical file manager"
+#~ msgstr "Gestor de archivo gráfico para GNOME"
+
+#, fuzzy
+#~ msgid "Pure logic programming language"
+#~ msgstr "Manual de referencia para el lenguaje de programación C"
+
+#, fuzzy
+#~ msgid "Network statistics gatherer"
+#~ msgstr "Análisis del tráfico de red"
+
+#, fuzzy
+#~ msgid "File system monitor"
+#~ msgstr "Montar fichero del sistema exFAT"
+
+#, fuzzy
+#~ msgid "Compiler and libraries for the C# programming language"
+#~ msgstr "Manual de referencia para el lenguaje de programación C"
+
+#, fuzzy
+#~ msgid "Multiplayer strategy game"
+#~ msgstr "Juego estratégico basado en turnos"
+
+#, fuzzy
+#~ msgid "MPEG audio decoder"
+#~ msgstr "Decodificador MPEG-4 y MPEG-2 AAC"
+
+#, fuzzy
+#~ msgid "Library for reading ID3 tags"
+#~ msgstr "Biblioteca para manipulación de ficheros TIFF"
+
+#, fuzzy
+#~ msgid "Library to access audio file meta-data"
+#~ msgstr "Biblioteca para acceso a ficheros zip"
+
+#, fuzzy
+#~ msgid "Library for splitting mp3 and ogg vorbis files"
+#~ msgstr "Biblioteca para acceso a ficheros zip"
+
+#, fuzzy
+#~ msgid "Console MP3 player and decoder library"
+#~ msgstr "Intérprete CSS y selección de biblioteca"
+
+#, fuzzy
+#~ msgid "Command-line MP3 player"
+#~ msgstr "Procesador mandato lineal JSON"
+
+#, fuzzy
+#~ msgid "Decoding library for the Musepack audio format"
+#~ msgstr "Interpreta biblioteca para texto en formato Pod"
+
+#, fuzzy
+#~ msgid "Audio fingerprinting library"
+#~ msgstr "Fichero Mod reproduciendo biblioteca"
+
+#, fuzzy
+#~ msgid "MPI-3 implementation"
+#~ msgstr "Reimplementación de XAudio"
+
+#, fuzzy
+#~ msgid "Java bindings for MPI"
+#~ msgstr "Enlazados Javascript para GNOME"
+
+#, fuzzy
+#~ msgid "Implementation of the Message Passing Interface (MPI)"
+#~ msgstr "Implementación del lenguaje de programación Perl"
+
+#, fuzzy
+#~ msgid "Utilities to manipulate exFAT file systems"
+#~ msgstr "Montar fichero del sistema exFAT"
+
+#, fuzzy
+#~ msgid "Large integer arithmetic library"
+#~ msgstr "Biblioteca de cadena interna"
+
+#, fuzzy
+#~ msgid "Music player and library organizer"
+#~ msgstr "Biblioteca cliente del Demonio de Reproductor Musical"
+
+#, fuzzy
+#~ msgid "Small console music player"
+#~ msgstr "Cliente pequeño de consola XMPP"
+
+#, fuzzy
+#~ msgid "Module audio renderer library"
+#~ msgstr "Biblioteca de módulo jugador"
+
+#, fuzzy
+#~ msgid "Video game music file playback library"
+#~ msgstr "Fichero Mod reproduciendo biblioteca"
+
+#, fuzzy
+#~ msgid "Audio session management"
+#~ msgstr "Gestor de sesiones de aplicaciones de sonido"
+
+#, fuzzy
+#~ msgid "Polyphonic additive synthesizer"
+#~ msgstr "Sintetizador SoundFont"
+
+#, fuzzy
+#~ msgid "Analog modeling synthesizer"
+#~ msgstr "Sintetizador de órgano Tonewheel"
+
+#, fuzzy
+#~ msgid "Tonewheel organ"
+#~ msgstr "Sintetizador de órgano Tonewheel"
+
+#, fuzzy
+#~ msgid "Synthesizer emulator"
+#~ msgstr "Emulador Nintendo DS"
+
+#, fuzzy
+#~ msgid "Python bindings to PortMidi"
+#~ msgstr "Enlazando Python para libvirt"
+
+#, fuzzy
+#~ msgid "This package provides Python bindings to the PortMidi library."
+#~ msgstr ""
+#~ "Este paquete proporciona un diccionario para la biblioteca de\n"
+#~ "comprobación ortográfica Hunspell."
+
+#, fuzzy
+#~ msgid "C++ MIDI library"
+#~ msgstr "Cliente biblioteca CMIS"
+
+#, fuzzy
+#~ msgid "Software synthesizer"
+#~ msgstr "Sintetizador pronunciador de software"
+
+#, fuzzy
+#~ msgid "Multi-paradigm software synthesizer"
+#~ msgstr "Sintetizador pronunciador de software"
+
+#, fuzzy
+#~ msgid "C++ library for working with Gigasampler (.gig) files"
+#~ msgstr "Biblioteca para trabajar con capacidades POSIX"
+
+#, fuzzy
+#~ msgid "Command-line Internet radio player"
+#~ msgstr "Interfaz de mandato lineal para archive.org"
+
+#, fuzzy
+#~ msgid "Graphical music tagging application"
+#~ msgstr "Aplicación de reproducción musical de GNOME"
+
+#, fuzzy
+#~ msgid "Read and write audio tags"
+#~ msgstr "Fichero almacén de lectura y escritura OLE"
+
+#, fuzzy
+#~ msgid "Python bindings for MusicBrainz NGS webservice"
+#~ msgstr "Enlace Python para cairo"
+
+#, fuzzy
+#~ msgid "Bandcamp plugin for beets"
+#~ msgstr "Complementos LV2 para usar live"
+
+#, fuzzy
+#~ msgid "Music tracker for working with .MOD/.XM module files"
+#~ msgstr "Biblioteca para trabajar con capacidades POSIX"
+
+#, fuzzy
+#~ msgid "Modular audio processing system"
+#~ msgstr "Sistema procesando plantilla para Perl"
+
+#, fuzzy
+#~ msgid "Simple JACK patch bay"
+#~ msgstr "Distribución simple ASCII"
+
+#, fuzzy
+#~ msgid "MIDI synthesizer library"
+#~ msgstr "Cliente biblioteca CMIS"
+
+#, fuzzy
+#~ msgid "DSSI software synthesizer"
+#~ msgstr "Sintetizador pronunciador de software"
+
+#, fuzzy
+#~ msgid "Disc id reader library"
+#~ msgstr "Biblioteca renderizadora de PDF"
+
+#, fuzzy
+#~ msgid "Python bindings for Libdiscid"
+#~ msgstr "Enlaces binarios para liblo"
+
+#, fuzzy
+#~ msgid "MusicBrainz client library"
+#~ msgstr "Biblioteca cliente del Demonio de Reproductor Musical"
+
+#, fuzzy
+#~ msgid "Perl interface to the MusicBrainz libdiscid library"
+#~ msgstr "Biblioteca de visión de computación"
+
+#, fuzzy
+#~ msgid "Music player"
+#~ msgstr "Demonio de Reproductor de Música"
+
+#, fuzzy
+#~ msgid "Audio plugin collection"
+#~ msgstr "Especificación de complemento para audio LV2"
+
+#, fuzzy
+#~ msgid "Percussion synthesizer"
+#~ msgstr "Sintetizador SoundFont"
+
+#, fuzzy
+#~ msgid "Digital audio workstation focusing on usability"
+#~ msgstr "Estación de trabajo para sonido digital"
+
+#, fuzzy
+#~ msgid "Delay effect plugin"
+#~ msgstr "Módulo LADSPA de efecto «delay»"
+
+#, fuzzy
+#~ msgid "Reverb effect plugin"
+#~ msgstr "Módulo LADSPA de efecto «reverb»"
+
+#, fuzzy
+#~ msgid "Small C standard library"
+#~ msgstr "Biblioteca estándar de C++ de GNU"
+
+#, fuzzy
+#~ msgid "Structured terminal forms library"
+#~ msgstr "Biblioteca de Fichero Estructurado de GNOME"
+
+#, fuzzy
+#~ msgid "Commandline ACL utilities for the Linux NFSv4 client"
+#~ msgstr "Colección de utilidades para el núcleo Linux"
+
+#, fuzzy
+#~ msgid "Numeric oriented programming language"
+#~ msgstr "Manual de referencia para el lenguaje de programación C"
+
+#, fuzzy
+#~ msgid "Graphical client for Soulseek"
+#~ msgstr "Cliente IRC gráfico"
+
+#, fuzzy
+#~ msgid "Statically-typed, imperative programming language"
+#~ msgstr "Implementación del lenguaje de programación Perl"
+
+#, fuzzy
+#~ msgid ""
+#~ "This package provides a streaming parser for the statsd\n"
+#~ "protocol used in @code{node-lynx}."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "Parses semantic versions strings"
+#~ msgstr "Interpreta cadenas textuales de duración temporal"
+
 #~ msgid "Network Security Services"
 #~ msgstr "Seguridad de Servicios de Red"
 
-#~ msgid "Nintendo multi-system emulator"
-#~ msgstr "Emulador Nintendo multi-sistema"
+#, fuzzy
+#~ msgid "The OCaml programming language"
+#~ msgstr "Implementación del lenguaje de programación Perl"
 
-#~ msgid "Nintendo DS emulator"
-#~ msgstr "Emulador Nintendo DS"
+#, fuzzy
+#~ msgid "Package manager for OCaml"
+#~ msgstr "Gestor de Paquetes para Guile"
 
-#~ msgid "Ball and paddle game"
-#~ msgstr "Juego de pelota y paleta"
+#, fuzzy
+#~ msgid "Parser generator"
+#~ msgstr "Generador de contraseñas aleatorias"
 
-#~ msgid "The SQLite database management system"
-#~ msgstr "El sistema gestor de BBDD SQLite"
+#, fuzzy
+#~ msgid "OCaml compatibility library"
+#~ msgstr "Biblioteca utilitaria para Netlink"
 
-#~ msgid "Berkeley database"
-#~ msgstr "DB Berkeley"
+#, fuzzy
+#~ msgid "GTK+ bindings for OCaml"
+#~ msgstr "Enlazando Guile para libgit2"
 
-#~ msgid "XZ in Java"
-#~ msgstr "XZ en Java"
+#, fuzzy
+#~ msgid "Management tool for OCaml libraries"
+#~ msgstr "Herramienta de gestor de energía para Linux"
+
+#, fuzzy
+#~ msgid "Unit testing framework for OCaml"
+#~ msgstr "Impresión para marco de trabajo de GNOME"
 
-#~ msgid "Provides an interface to ZIP archive files"
+#, fuzzy
+#~ msgid "Provides easy access to compressed files"
 #~ msgstr "Proporciona un interfaz para ficheros archivos ZIP"
 
-#~ msgid "Java bzip2 compression/decompression library"
-#~ msgstr "Biblioteca compresión/descompresión bzip2 en Java"
+#, fuzzy
+#~ msgid "C parser and lexer library"
+#~ msgstr "Intérprete CSS y selección de biblioteca"
 
-#~ msgid "Java port of snappy"
-#~ msgstr "Puerto Java ágil"
+#, fuzzy
+#~ msgid "Result value combinators for OCaml"
+#~ msgstr "Comentarios ejecutable para Perl"
 
-#~ msgid "Compression/decompression algorithm in Java"
-#~ msgstr "Compresión/descompresión algorítmica en Java"
+#, fuzzy
+#~ msgid "SQLite3 Bindings for OCaml"
+#~ msgstr "Enlazando SQLite para Python"
+
+#, fuzzy
+#~ msgid "Lightweight OCaml test framework"
+#~ msgstr "Servidor ligero HTTP"
+
+#, fuzzy
+#~ msgid "OCaml bindings for OpenSSL"
+#~ msgstr "Enlazando XOSD para Guile"
+
+#, fuzzy
+#~ msgid "File mapping for OCaml"
+#~ msgstr "Gestor de ficheros para GNOME"
+
+#, fuzzy
+#~ msgid "File system paths for OCaml"
+#~ msgstr "Montar fichero del sistema exFAT"
+
+#, fuzzy
+#~ msgid "Compatibility library for OCaml's Uchar module"
+#~ msgstr "Compatibilizar y utilidad bibliotecaria para Scheme"
+
+#, fuzzy
+#~ msgid "OCaml bindings for libcurl"
+#~ msgstr "Enlaces binarios para liblo"
+
+#, fuzzy
+#~ msgid "Development platform for the OCaml programming language"
+#~ msgstr "Manual de referencia para el lenguaje de programación C"
+
+#, fuzzy
+#~ msgid "Simple implementation of expect"
+#~ msgstr "Paralelismo implementado para gzip"
+
+#, fuzzy
+#~ msgid "Regular expression library for OCaml"
+#~ msgstr "Biblioteca de expresión regular"
+
+#, fuzzy
+#~ msgid "Read and write JSON data"
+#~ msgstr "Fichero almacén de lectura y escritura OLE"
+
+#, fuzzy
+#~ msgid "RFC3986 URI/URL parsing library"
+#~ msgstr "Biblioteca interpretando HTML5"
+
+#, fuzzy
+#~ msgid "Interface to the Format module"
+#~ msgstr "Interfaz Perl para algoritmo MD-5"
+
+#, fuzzy
+#~ msgid "Data serialization and conversion library"
+#~ msgstr "Biblioteca de conversión de conjunto de caracteres"
+
+#, fuzzy
+#~ msgid "Graph library for OCaml"
+#~ msgstr "Biblioteca cubierta para imlib2"
+
+#, fuzzy
+#~ msgid "Comprehensive Unicode library"
+#~ msgstr "Biblioteca de compresión"
+
+#, fuzzy
+#~ msgid "Terminal manipulation library for OCaml"
+#~ msgstr "Biblioteca para procesado y manipulación de CSS2"
+
+#, fuzzy
+#~ msgid "Thin bindings to SDL for OCaml"
+#~ msgstr "Enlaces binarios para liblo"
+
+#, fuzzy
+#~ msgid "Parsing library based on Earley Algorithm"
+#~ msgstr "Interpreta biblioteca para texto en formato Pod"
+
+#, fuzzy
+#~ msgid "Low-level JSON library for OCaml"
+#~ msgstr "Biblioteca JSON para R"
+
+# FUZZY
+#, fuzzy
+#~ msgid "CRAM-testing framework for testing command line applications"
+#~ msgstr "Biblioteca Common C++ para aplicaciones multihilo"
+
+#, fuzzy
+#~ msgid "S-expression parsing library"
+#~ msgstr "Biblioteca de procesamiento Speex"
+
+#, fuzzy
+#~ msgid "Standard IO library for OCaml"
+#~ msgstr "Biblioteca JSON para R"
+
+#, fuzzy
+#~ msgid "Syntax extension to record fields"
+#~ msgstr "Rutinas de conversión de fecha Perl"
+
+#, fuzzy
+#~ msgid "Cram like framework for OCaml"
+#~ msgstr "Impresión para marco de trabajo de GNOME"
+
+#, fuzzy
+#~ msgid "Helper library for gathering system configuration"
+#~ msgstr "Biblioteca C para crear e interpretar ficheros de configuración."
+
+#, fuzzy
+#~ msgid "Alternative to OCaml's standard library"
+#~ msgstr "Biblioteca estándar de C++ de GNU"
+
+#, fuzzy
+#~ msgid "Portable standard library for OCaml"
+#~ msgstr "Biblioteca de sistema de acceso portable"
+
+#, fuzzy
+#~ msgid "TyXML is a library for building correct HTML and SVG documents"
+#~ msgstr "Biblioteca para importar documentos WordPerfect"
+
+#, fuzzy
+#~ msgid "OCaml documentation generator"
+#~ msgstr "Herramientas documentales Yelp"
+
+#, fuzzy
+#~ msgid "OCaml interface to GTK+3"
+#~ msgstr "Interfaz Perl para Amazon S3"
+
+#, fuzzy
+#~ msgid "Assorted tools for Python"
+#~ msgstr "ORM ActiceRecord para Python"
+
+#, fuzzy
+#~ msgid "Implementation of the Lightweight Directory Access Protocol"
+#~ msgstr "Implementación del protocolo de transporte en tiempo real"
+
+#, fuzzy
+#~ msgid "C++ library for creating secure and fair online card games"
+#~ msgstr "Biblioteca C para crear e interpretar ficheros de configuración."
+
+#, fuzzy
+#~ msgid "Mock object framework for Python"
+#~ msgstr "Cliente mofa HTTP para Python"
+
+#, fuzzy
+#~ msgid "OpenStack Client Configuration Library"
+#~ msgstr "Biblioteca de configuración de teclado GNOME"
+
+#, fuzzy
+#~ msgid "OpenStack functional testing library"
+#~ msgstr "Colección bibliotecaria de GObject"
+
+#, fuzzy
+#~ msgid "Oslo context library"
+#~ msgstr "Biblioteca de controladores para juegos"
+
+#, fuzzy
+#~ msgid "Oslo serialization library"
+#~ msgstr "Biblioteca de Categoría Textual"
+
+#, fuzzy
+#~ msgid "Release notes manager"
+#~ msgstr "Gestor de gastos personales"
+
+#, fuzzy
+#~ msgid "Oslo test framework"
+#~ msgstr "Marco de pruebas de software GNU"
+
+#, fuzzy
+#~ msgid "Oslo utility library"
+#~ msgstr "Biblioteca utilitaria para Netlink"
+
+#, fuzzy
+#~ msgid "Command-line tool for Gerrit"
+#~ msgstr "Interfaz de mandato lineal para libtocc"
+
+#, fuzzy
+#~ msgid "Workflow management extension for GNU Guix"
+#~ msgstr "Herramienta de gestor de energía para Linux"
+
+#, fuzzy
+#~ msgid "Tool to help build derivations"
+#~ msgstr "Herramienta para compilar bibliotecas C"
+
+#, fuzzy
+#~ msgid "Microsoft Cabinet file manipulation library"
+#~ msgstr "Biblioteca para procesado y manipulación de CSS2"
+
+#, fuzzy
+#~ msgid "Language package manager for Scheme"
+#~ msgstr "Gestor de Paquetes para Guile"
+
+#, fuzzy
+#~ msgid "Password generator"
+#~ msgstr "Generador de contraseñas aleatorias"
+
+#, fuzzy
+#~ msgid "Password checking library"
+#~ msgstr "Interpretador construyendo biblioteca"
+
+#, fuzzy
+#~ msgid "Rofi frontend for password-store"
+#~ msgstr "Web frontal para repositorios git"
+
+#, fuzzy
+#~ msgid "Manage, generate and store passwords encrypted"
+#~ msgstr "Daemon para el almacenamiento de contraseñas y claves de cifrado"
+
+#, fuzzy
+#~ msgid "Collection of tools for manipulating patch files"
+#~ msgstr "Rutinas para manipulación de ficheros CSV"
+
+#, fuzzy
+#~ msgid "Compare files, directories and working copies"
+#~ msgstr "Quita ficheros y directorios en Perl"
+
+#, fuzzy
+#~ msgid "Web based patch tracking system"
+#~ msgstr "Sistema indizado web"
+
+#, fuzzy
+#~ msgid "Perl Compatible Regular Expressions"
+#~ msgstr "%s: la expresión regular no es válida: %s"
+
+#, fuzzy
+#~ msgid "Library for building p≡p adapters"
+#~ msgstr "Biblioteca para manipulación de ficheros PNG"
+
+#, fuzzy
+#~ msgid "Perl 6 Compiler"
+#~ msgstr "API Perl para ficheros zip"
+
+#, fuzzy
+#~ msgid "Perl6 json parser"
+#~ msgstr "Clase interpretada HTML en Perl"
+
+#, fuzzy
+#~ msgid "Encoding and decoding Base64 ASCII strings"
+#~ msgstr "Codificación y decodificación de relleno en UTF-8"
+
+#, fuzzy
+#~ msgid "Monitors with condition variables for Perl 6"
+#~ msgstr "Actores alce con composiciones paramétricas"
+
+#, fuzzy
+#~ msgid "Perl 6 module to generate SVG"
+#~ msgstr "Módulos Perl para la WWW"
+
+#, fuzzy
+#~ msgid "URI implementation using Perl 6"
+#~ msgstr "Implementación Log4j para Perl"
+
+#, fuzzy
+#~ msgid "Perl 6 module to generate XML"
+#~ msgstr "Módulos Perl para la WWW"
+
+#, fuzzy
+#~ msgid "Perl6 Module Management"
+#~ msgstr "Gestión Jetty :: JMX"
+
+#, fuzzy
+#~ msgid "Data-driven testing framework for Perl"
+#~ msgstr "Impresión para marco de trabajo de GNOME"
+
+#, fuzzy
+#~ msgid "Utilities for testing directory attributes"
+#~ msgstr "Utilidades para E/S interactiva"
+
+#, fuzzy
+#~ msgid "Perl extension for maintaining test directories"
+#~ msgstr "Rutinas de conversión de fecha Perl"
+
+#, fuzzy
+#~ msgid "Utilities for testing file attributes"
+#~ msgstr "Utilidades para E/S interactiva"
+
+#, fuzzy
+#~ msgid "Portable filename comparison"
+#~ msgstr "Utilidad de comparación de imagen perceptible"
+
+#, fuzzy
+#~ msgid "Ease software testing with files and directories"
+#~ msgstr "Copia recursivamente de ficheros y directorios"
+
+#, fuzzy
+#~ msgid "Emulate troublesome interfaces in Perl"
+#~ msgstr "Interfaz SQlite para Perl"
+
+#, fuzzy
+#~ msgid "Perl extension to test methods for warnings"
+#~ msgstr "Rutinas de conversión de fecha Perl"
+
+#, fuzzy
+#~ msgid "Test for trailing space in Perl source files"
+#~ msgstr "Biblioteca para manipulación de ficheros de recursos icns Mac OS"
+
+#, fuzzy
+#~ msgid "Interface to Bzip2 compression library"
+#~ msgstr "Biblioteca de visión de computación"
+
+#, fuzzy
+#~ msgid "Low-level interface to bzip2 compression library"
+#~ msgstr "Biblioteca de visión de computación"
+
+#, fuzzy
+#~ msgid ""
+#~ "This module provides a Perl interface to the bzip2\n"
+#~ "compression library."
+#~ msgstr "Este módulo proporciona un interfaz Perlish para Amazon S3."
+
+#, fuzzy
+#~ msgid "Low-level interface to zlib compression library"
+#~ msgstr "Biblioteca de visión de computación"
+
+#, fuzzy
+#~ msgid ""
+#~ "This module provides a Perl interface to the zlib\n"
+#~ "compression library."
+#~ msgstr "Este módulo proporciona un interfaz Perlish para Amazon S3."
+
+#, fuzzy
+#~ msgid "Provides an interface to Zip archive files"
+#~ msgstr "Proporciona un interfaz para ficheros archivos ZIP"
+
+#, fuzzy
+#~ msgid "Handle database URIs"
+#~ msgstr "Valor-clave de BD"
+
+#, fuzzy
+#~ msgid "Command-line interface for Phabricator"
+#~ msgstr "Interfaz de mandato lineal para archive.org"
+
+#, fuzzy
+#~ msgid "PHP programming language"
+#~ msgstr "Programación de juegos"
+
+#, fuzzy
+#~ msgid "Piet interpreter"
+#~ msgstr "Interpretador Z-machine"
+
+#, fuzzy
+#~ msgid "Plotting utilities and library"
+#~ msgstr "Biblioteca utilitaria para Netlink"
+
+#, fuzzy
+#~ msgid "Gettext catalog editing tool"
+#~ msgstr "Herramienta de detección de codificación del texto"
+
+#, fuzzy
+#~ msgid "Qt frontend to the polkit library"
+#~ msgstr "Clon de Tetris basado en la biblioteca SDL"
+
+#, fuzzy
+#~ msgid "Command line option parsing library"
+#~ msgstr "Biblioteca interpretando HTML5 completo"
+
+#, fuzzy
+#~ msgid "Create parsers for command line options"
+#~ msgstr "Módulo para  manipular opciones de líneas de mandatos interpretandos"
+
+#, fuzzy
+#~ msgid "Small and fast C++ formatting library"
+#~ msgstr "Biblioteca de abstracción de Sip"
+
+#, fuzzy
+#~ msgid "Implementation of the Frame Streams data transport protocol"
+#~ msgstr "Implementación del protocolo de transporte en tiempo real"
+
+#, fuzzy
+#~ msgid "Protocol Buffers implementation in C"
+#~ msgstr "Implementación JSON en C"
+
+#, fuzzy
+#~ msgid "Implementation of Google's Protocol Buffers in Ruby"
+#~ msgstr "Implementación de una clase simple para Perl"
+
+#, fuzzy
+#~ msgid "Portable thread library"
+#~ msgstr "Biblioteca de sistema de acceso portable"
+
+#, fuzzy
+#~ msgid "Audio sample rate conversion library"
+#~ msgstr "Biblioteca de conversión de conjunto de caracteres"
+
+#, fuzzy
+#~ msgid "Sound server"
+#~ msgstr "Editor de sonido"
+
+#, fuzzy
+#~ msgid "Console-based PulseAudio mixer"
+#~ msgstr "Cliente XMPP basado en consola"
+
+#, fuzzy
+#~ msgid "Pure programming Language"
+#~ msgstr "Programación de juegos"
+
+#, fuzzy
+#~ msgid "Pipeline progress indicator"
+#~ msgstr "# prohibe el registro"
+
+#, fuzzy
+#~ msgid ""
+#~ "This package provides a pytest plugin for efficiently checking PEP8\n"
+#~ "compliance."
+#~ msgstr ""
+#~ "Este paquete proporciona un diccionario para la biblioteca de\n"
+#~ "comprobación ortográfica Hunspell."
+
+#, fuzzy
+#~ msgid ""
+#~ "This package provides a virtualenv fixture for the py.test\n"
+#~ "framework."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "This package provides a pytest plugin for aiohttp support."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "Mocking library for requests."
+#~ msgstr "Biblioteca descodificante para ficheros GIF"
+
+#, fuzzy
+#~ msgid "Experimental extensions for MyPy"
+#~ msgstr "Extensión de interfaz Perl para libcurl"
+
+#, fuzzy
+#~ msgid "Python bindings for the LZO data compression library"
+#~ msgstr "Biblioteca portable de compresión de datos sin pérdida"
+
+#, fuzzy
+#~ msgid "LZ4 bindings for Python"
+#~ msgstr "Enlazando SQLite para Python"
 
 #~ msgid "String compression"
 #~ msgstr "Compresión de cadena"
 
+#, fuzzy
+#~ msgid "Python bindings for the Brotli compression library"
+#~ msgstr "Enlace Python para cairo"
+
+#, fuzzy
+#~ msgid "This package provides python bindings for the Brotli compression library."
+#~ msgstr ""
+#~ "Este paquete proporciona un diccionario para la biblioteca de\n"
+#~ "comprobación ortográfica Hunspell."
+
+#, fuzzy
+#~ msgid "Zstandard bindings for Python"
+#~ msgstr "Enlazando SQLite para Python"
+
+#, fuzzy
+#~ msgid "Python OTR Implementation"
+#~ msgstr "Reimplementación de XAudio"
+
+#, fuzzy
+#~ msgid "Modern password hashing library"
+#~ msgstr "Fichero Mod reproduciendo biblioteca"
+
+#, fuzzy
+#~ msgid "SSHv2 protocol library"
+#~ msgstr "Biblioteca utilitaria para Netlink"
+
+#, fuzzy
+#~ msgid "Alternate keyring implementations"
+#~ msgstr "Implementación bzip2 paralelo"
+
+#, fuzzy
+#~ msgid "Implementation of AES in Python"
+#~ msgstr "Implementación de DOM W3C"
+
+#, fuzzy
+#~ msgid "ASN.1 parser and serializer in Python"
+#~ msgstr "Intérprete CSS y selección de biblioteca"
+
+#, fuzzy
+#~ msgid "Python bindings to libsodium"
+#~ msgstr "Enlazando Python para librsvg"
+
+#, fuzzy
+#~ msgid "Python library for parsing PGP packets"
+#~ msgstr "Biblioteca para interpretar ficheros SVG"
+
+#, fuzzy
+#~ msgid "ROCA detection tool"
+#~ msgstr "Herramienta de detección de codificación del texto"
+
+#, fuzzy
+#~ msgid "Pure-Python implementation of the blurhash algorithm"
+#~ msgstr "Una implementación Perl pura del algoritmo RC4."
+
+#, fuzzy
+#~ msgid "Pure-Python implementation of the blurhash algorithm."
+#~ msgstr "Una implementación Perl pura del algoritmo RC4."
+
+#, fuzzy
+#~ msgid "Pure Python Elliptic Curve Library"
+#~ msgstr "Biblioteca Python ODBC"
+
+#, fuzzy
+#~ msgid "JOSE protocol implementation in Python"
+#~ msgstr "Implementación JSON en C"
+
+#, fuzzy
+#~ msgid "Scrypt for Python"
+#~ msgstr "Cubiertas ALSA para Python"
+
+#, fuzzy
+#~ msgid "Python bindings for libsodium based on ctypes"
+#~ msgstr "Enlaces binarios para liblo"
+
+#, fuzzy
+#~ msgid "Python One Time Password Library"
+#~ msgstr "Biblioteca Python ODBC"
+
+#, fuzzy
+#~ msgid "Twisted-based Tor controller client"
+#~ msgstr "Control de versión basado en ficheros como SCCS"
+
+#, fuzzy
+#~ msgid "Python bindings for keyutils"
+#~ msgstr "Enlaces binarios para liblo"
+
+#, fuzzy
+#~ msgid "Python bindings to FreeDesktop.org Secret Service API"
+#~ msgstr "Enlazando GObject para API «Servicio Secreto»"
+
+#, fuzzy
+#~ msgid "Utility to create and sign CAs and certificates"
+#~ msgstr "Utilidad para crear ficheros metainfo de BitTorrent"
+
+#, fuzzy
+#~ msgid "Secure Password Hashes for Python"
+#~ msgstr "Cubiertas ALSA para Python"
+
+#, fuzzy
+#~ msgid "Python implementation of OpenPGP"
+#~ msgstr "Paralelismo implementado para gzip"
+
+#, fuzzy
+#~ msgid "Image processing in Python"
+#~ msgstr "Interpreta novedades para Python"
+
+#, fuzzy
+#~ msgid "Wrapper for the Python 3 commands"
+#~ msgstr "Recubridor para LaTeX y similares"
+
+#, fuzzy
+#~ msgid "Generic asyncio RPC implementation"
+#~ msgstr "Implementación de lisp de tipo Scheme"
+
+#, fuzzy
+#~ msgid "URL manipulation in Python"
+#~ msgstr "Fecha del rutinas de manipulación"
+
+#, fuzzy
+#~ msgid "Comprehensive HTTP client library"
+#~ msgstr "Cliente biblioteca Python MPD"
+
+#, fuzzy
+#~ msgid "HTTP/2 framing layer for Python"
+#~ msgstr "Cliente mofa HTTP para Python"
+
+#, fuzzy
+#~ msgid "Implementation of the OpenID CLA extension for python-openid"
+#~ msgstr "Implementación del protocolo de transporte en tiempo real"
+
+#, fuzzy
+#~ msgid "Implementation of the OpenID teams extension for python-openid"
+#~ msgstr "Implementación del protocolo de transporte en tiempo real"
+
+#, fuzzy
+#~ msgid "Pure-Python implementation of the HTTP/2 priority tree"
+#~ msgstr "Una implementación Perl pura del algoritmo RC4."
+
+#, fuzzy
+#~ msgid "WSGI request and response object"
+#~ msgstr "Petición HTTP y respuesta de servicio"
+
+#, fuzzy
+#~ msgid "Event publishing system for Python"
+#~ msgstr "Enlazando SQLite para Python"
+
+#, fuzzy
+#~ msgid "Zope location library"
+#~ msgstr "Biblioteca separación silábica"
+
+#, fuzzy
+#~ msgid "WebSocket client for Python"
+#~ msgstr "Cliente mofa HTTP para Python"
+
+#, fuzzy
+#~ msgid "Python package for URL manipulation"
+#~ msgstr "Manipulación especificante de ruta"
+
+#, fuzzy
+#~ msgid "Python HTTP library"
+#~ msgstr "Biblioteca Python ODBC"
+
+#, fuzzy
+#~ msgid "NTLM authentication support for Requests"
+#~ msgstr "Apoyo a localización para  DateTime.pm"
+
+#, fuzzy
+#~ msgid "OAuth implementation for Python"
+#~ msgstr "Implementación Log4j para Perl"
+
+#, fuzzy
+#~ msgid "Command line client for AWS"
+#~ msgstr "Cliente WebDAV por mandato lineal"
+
+#, fuzzy
+#~ msgid "Helper to test WSGI applications"
+#~ msgstr "Aplicación de hojas de cálculo"
+
+#, fuzzy
+#~ msgid "HTTP client library for gevent"
+#~ msgstr "Cliente biblioteca Redis para Guile"
+
+#, fuzzy
+#~ msgid "Library for parsing urls."
+#~ msgstr "Biblioteca para interpretar ficheros SVG"
+
+#, fuzzy
+#~ msgid "Flask module for creating REST APIs"
+#~ msgstr "Ficheros para creación de formatos TeX"
+
+#, fuzzy
+#~ msgid "User session management for Flask"
+#~ msgstr "Gestor de sesión para GNOME"
+
+#, fuzzy
+#~ msgid "OAuth 2.0 client library"
+#~ msgstr "Cliente biblioteca Python MPD"
+
+#, fuzzy
+#~ msgid "Media asset management"
+#~ msgstr "Gestión de dispositivo en espacio de usuario"
+
+#, fuzzy
+#~ msgid "Scripting support for Flask"
+#~ msgstr "Compatibilidad CMap para ficheros PDF"
+
+#, fuzzy
+#~ msgid "Utilities for WSGI applications"
+#~ msgstr "Widgets adicional para aplicaciones"
+
+# FUZZY
+#, fuzzy
+#~ msgid "WSGI framework for small web-applications."
+#~ msgstr "Biblioteca Common C++ para aplicaciones multihilo"
+
+#, fuzzy
+#~ msgid "Python interface for @code{c-ares}"
+#~ msgstr "Caché de interfaz para Perl"
+
+#, fuzzy
+#~ msgid "Yet another URL library"
+#~ msgstr "Biblioteca de controladores para juegos"
+
+#, fuzzy
+#~ msgid "Core Python library for accessing Google APIs"
+#~ msgstr "Biblioteca para acceso por conexión a varias API de servicio"
+
+#, fuzzy
+#~ msgid "Firefox Accounts client library for Python"
+#~ msgstr "Cliente biblioteca Redis para Guile"
+
+#, fuzzy
+#~ msgid "Low-level CSS parser for Python"
+#~ msgstr "Cubiertas ALSA para Python"
+
+#, fuzzy
+#~ msgid "Fast ASGI server implementation"
+#~ msgstr "Reimplementación de XAudio"
+
+#, fuzzy
+#~ msgid "Command line gopher client"
+#~ msgstr "Cliente WebDAV por mandato lineal"
+
+#, fuzzy
+#~ msgid "HTTP client for Python"
+#~ msgstr "Cliente mofa HTTP para Python"
+
+#, fuzzy
+#~ msgid "Python bindings for Selenium"
+#~ msgstr "Enlaces binarios para liblo"
+
+#, fuzzy
+#~ msgid "Library for deferring decorator actions"
+#~ msgstr "Biblioteca para interpretación del formato AbiWord"
+
+#, fuzzy
+#~ msgid "Internationalization tooling for the Pylons project"
+#~ msgstr "Utilidades de documentación para el proyecto GNOME"
+
+#, fuzzy
+#~ msgid "Build tested documentation"
+#~ msgstr "Documentación de GNU libstdc++"
+
+#, fuzzy
+#~ msgid "Translucent persistent objects"
+#~ msgstr "Objetos establecen FechaHora"
+
+#, fuzzy
+#~ msgid "Lightweight python wrapper for Apache Solr"
+#~ msgstr "Interfaz ligero para memoria compartida"
+
+#, fuzzy
+#~ msgid "Python interface to libgphoto2"
+#~ msgstr "Interfaz de mandato lineal para libtocc"
+
+#, fuzzy
+#~ msgid "Ctypes-based LibRaw binding for Python"
+#~ msgstr "Enlazando SQLite para Python"
+
+#, fuzzy
+#~ msgid "Command line client library"
+#~ msgstr "Biblioteca de cliente HTTP y WebDAV"
+
+#, fuzzy
+#~ msgid "Python interface to the NCSA HDF4 library"
+#~ msgstr "Biblioteca de visión de computación"
+
+#, fuzzy
+#~ msgid "Read and write HDF5 files from Python"
+#~ msgstr "Lectura y escritura de imágenes PNG"
+
+#, fuzzy
+#~ msgid "Library for time handling"
+#~ msgstr "Biblioteca para etiquetado de sonido"
+
+#, fuzzy
+#~ msgid "Semantic versioning module for Python"
+#~ msgstr "Enlazando SQLite para Python"
+
+#, fuzzy
+#~ msgid "EditorConfig bindings for python"
+#~ msgstr "Enlazando SQLite para Python"
+
+#, fuzzy
+#~ msgid "Json library for Python"
+#~ msgstr "Biblioteca JSON para R"
+
+#, fuzzy
+#~ msgid "Templating system for Python"
+#~ msgstr "Sistema procesando plantilla para Perl"
+
+#, fuzzy
+#~ msgid "Python and command-line interface to Bugzilla"
+#~ msgstr "Interfaz de mandato lineal para libtocc"
+
+#, fuzzy
+#~ msgid "Extended parse module"
+#~ msgstr "Módulo jugador extendido"
+
+#, fuzzy
+#~ msgid "Parse strings"
+#~ msgstr "Interpreta cadenas textuales de datos/hora"
+
+#, fuzzy
+#~ msgid "Lightweight YAML Parser for Python"
+#~ msgstr "Enlazando SQLite para Python"
+
+#, fuzzy
+#~ msgid "Python library for parsing MIME types"
+#~ msgstr "Biblioteca C para interpretar JSON"
+
+#, fuzzy
+#~ msgid "Simple, single-threaded Telnet server"
+#~ msgstr "Lectura y escritura simple de ficheros"
+
+#, fuzzy
+#~ msgid "Persistent data structures for Python"
+#~ msgstr "Compara datos Perl estructurados"
+
+#, fuzzy
+#~ msgid "Command line library for Python"
+#~ msgstr "Interfaz de mandato lineal para libtocc"
+
+#, fuzzy
+#~ msgid "Implementation of JSON Schema for Python"
+#~ msgstr "Implementación de Scheme y lenguajes relacionados"
+
+#, fuzzy
+#~ msgid "Simple data validation library"
+#~ msgstr "Biblioteca de abstracción de Sip"
+
+#, fuzzy
+#~ msgid "Decode Unicode data"
+#~ msgstr "Detecta la codificación de datos"
+
+#, fuzzy
+#~ msgid "JSON Web Token implementation in Python"
+#~ msgstr "Implementación JSON en C"
+
+#, fuzzy
+#~ msgid "Pykka is a Python implementation of the actor model"
+#~ msgstr "Una implementación Perl pura del algoritmo RC4."
+
+#, fuzzy
+#~ msgid "YAML parser and emitter for Python"
+#~ msgstr "Cubiertas ALSA para Python"
+
+#, fuzzy
+#~ msgid "Promises for Python"
+#~ msgstr "Cubiertas ALSA para Python"
+
+#, fuzzy
+#~ msgid "Jinja2 Extension for Dates and Times"
+#~ msgstr "Rutinas de conversión de fecha Perl"
+
+#, fuzzy
+#~ msgid "Lightweight tree data library"
+#~ msgstr "Biblioteca de filtro de sonido ligero"
+
+#, fuzzy
+#~ msgid "Python Documentation Utilities"
+#~ msgstr "Herramientas documentales Yelp"
+
+#, fuzzy
+#~ msgid ""
+#~ "This package provides a linter for the reStructuredText\n"
+#~ "format."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "Utilities to create PyPI releases"
+#~ msgstr "Utilidad para comprimir ficheros PNG"
+
+#, fuzzy
+#~ msgid "Generic automation framework"
+#~ msgstr "Marco de trabajo para autenticación SASL"
+
+#, fuzzy
+#~ msgid "Library for TOML"
+#~ msgstr "Biblioteca JSON para R"
+
+#, fuzzy
+#~ msgid "JSON RPC 2.0 server library"
+#~ msgstr "Biblioteca C JSON"
+
+#, fuzzy
+#~ msgid "Python implementation of the Language Server Protocol"
+#~ msgstr "Implementación del protocolo de transporte en tiempo real"
+
+#, fuzzy
+#~ msgid ""
+#~ "This package provides a utility library for gitignore style pattern\n"
+#~ "matching of file paths."
+#~ msgstr ""
+#~ "Este paquete proporciona un diccionario para la biblioteca de\n"
+#~ "comprobación ortográfica Hunspell."
+
+#, fuzzy
+#~ msgid "The uncompromising code formatter"
+#~ msgstr "Texto codificando conversor"
+
+#, fuzzy
+#~ msgid "C extensions for Python"
+#~ msgstr "Enlazando SQLite para Python"
+
+#, fuzzy
+#~ msgid "Color math and conversion library"
+#~ msgstr "Biblioteca de conversión de conjunto de caracteres"
+
+#, fuzzy
+#~ msgid "Documentation for the python-numpy package"
+#~ msgstr "Documentación para servidor web nginx"
+
+#, fuzzy
+#~ msgid "Python bindings for libgit2"
+#~ msgstr "Enlaces binarios para liblo"
+
+#, fuzzy
+#~ msgid "Python implementation of the patiencediff algorithm"
+#~ msgstr "Implementación del algoritmo de compresión Brotli"
+
+#, fuzzy
+#~ msgid "Python parsing class library"
+#~ msgstr "Cliente biblioteca Python MPD"
+
+#, fuzzy
+#~ msgid "2D plotting library for Python"
+#~ msgstr "Biblioteca descodificante para ficheros GIF"
+
+#, fuzzy
+#~ msgid "Documentation for the python-matplotlib package"
+#~ msgstr "Documentación para servidor web nginx"
+
+#, fuzzy
+#~ msgid "Library for reading and manipulating genetic data"
+#~ msgstr "Biblioteca para carga y contorno de complemento IU LV2"
+
+#, fuzzy
+#~ msgid "Multidict implementation"
+#~ msgstr "Reimplementación de XAudio"
+
+#, fuzzy
+#~ msgid "Distribution utilities"
+#~ msgstr "Sistema de control de versión distribuída"
+
+#, fuzzy
+#~ msgid "Read and write Microsoft OLE2 files."
+#~ msgstr "Fichero almacén de lectura y escritura OLE"
+
+#, fuzzy
+#~ msgid "Read and write ImageJ ROI format"
+#~ msgstr "Lectura y escritura de imágenes PNG"
+
+#, fuzzy
+#~ msgid "Read and write TIFF(r) files"
+#~ msgstr "Fichero almacén de lectura y escritura OLE"
+
+#, fuzzy
+#~ msgid "Library for reading and writing a wide range of image data"
+#~ msgstr "Biblioteca C para crear e interpretar ficheros de configuración."
+
+#, fuzzy
+#~ msgid "C parser in Python"
+#~ msgstr "Interpreta novedades para Python"
+
+#, fuzzy
+#~ msgid "Wavelet transforms in Python"
+#~ msgstr "Interpreta novedades para Python"
+
+#, fuzzy
+#~ msgid "XCB Python bindings"
+#~ msgstr "Enlaces Python para GTK+"
+
+#, fuzzy
+#~ msgid "Python bindings and object-oriented API for Cairo"
+#~ msgstr "Enlace Python para cairo"
+
+#, fuzzy
+#~ msgid "Python bindings for the DRMAA library"
+#~ msgstr "Enlace Python para cairo"
+
+#, fuzzy
+#~ msgid "EBNF parser generator"
+#~ msgstr "Generador de contraseñas aleatorias"
+
+#, fuzzy
+#~ msgid "Controlling interactive console applications"
+#~ msgstr "Aplicación controladora de servicio Jack"
+
+#, fuzzy
+#~ msgid "S-expression parser for Python"
+#~ msgstr "%s: la expresión regular no es válida: %s"
+
+#, fuzzy
+#~ msgid "Configuration system for Python applications"
+#~ msgstr "Widgets adicional para aplicaciones"
+
+#, fuzzy
+#~ msgid "Console user interface library for Python"
+#~ msgstr "Interfaz gráfico del usuario para FluidSynth"
+
+#, fuzzy
+#~ msgid "Tree widgets for urwid"
+#~ msgstr "Cubiertas HTML para R"
+
+#, fuzzy
+#~ msgid "Python bindings for D-bus"
+#~ msgstr "Enlaces binarios para liblo"
+
+#, fuzzy
+#~ msgid "Python screen-scraping library"
+#~ msgstr "Biblioteca renderizadora de PDF"
+
+#, fuzzy
+#~ msgid "CSS selector library"
+#~ msgstr "Biblioteca vectorial bit"
+
+#, fuzzy
+#~ msgid "QR code generator"
+#~ msgstr "Generador de contraseñas aleatorias"
+
+#, fuzzy
+#~ msgid "Python X11 client library"
+#~ msgstr "Cliente biblioteca Python MPD"
+
+#, fuzzy
+#~ msgid "Python bindings for 0MQ"
+#~ msgstr "Enlaces Python para GTK+"
+
+#, fuzzy
+#~ msgid "Python implementation of Markdown"
+#~ msgstr "Implementación Log4j para Perl"
+
+#, fuzzy
+#~ msgid "Run a subprocess in a pseudo terminal"
+#~ msgstr "Tratamiento de imágenes dentro del terminal"
+
+# FUZZY
+#, fuzzy
+#~ msgid "Simple testing framework for command line applications"
+#~ msgstr "Biblioteca Common C++ para aplicaciones multihilo"
+
+#, fuzzy
+#~ msgid "Tools to manipulate font files"
+#~ msgstr "Herramientas para manipulación de mensajes MIME"
+
+#, fuzzy
+#~ msgid "Tool and library for manipulating LilyPond files"
+#~ msgstr "Biblioteca C para manipulador de ficheros tar POSIX"
+
+#, fuzzy
+#~ msgid "Python bindings for FUSE"
+#~ msgstr "Enlaces Python para GTK+"
+
+#, fuzzy
+#~ msgid "Python netlink library"
+#~ msgstr "Cliente biblioteca Python MPD"
+
+#, fuzzy
+#~ msgid "Library for extracting data from Excel files"
+#~ msgstr "Biblioteca para generación de ficheros PDF"
+
+#, fuzzy
+#~ msgid "ASN.1 codec implementations"
+#~ msgstr "Implementación completa de ajedrez"
+
+#, fuzzy
+#~ msgid "IP address manipulation library"
+#~ msgstr "Biblioteca interpretando CSS2 y manipulación"
+
+#, fuzzy
+#~ msgid "Straightforward binding of libsass for Python"
+#~ msgstr "Enlazando SQLite para Python"
+
+#, fuzzy
+#~ msgid "Library for stubbing in Python"
+#~ msgstr "Biblioteca para acceso a ficheros zip"
+
+#, fuzzy
+#~ msgid "Package manager for Python software"
+#~ msgstr "Gestor de Paquetes para Guile"
+
+#, fuzzy
+#~ msgid "Fuzzy matching library for Python"
+#~ msgstr "Biblioteca de imagen para Extempore"
+
+#, fuzzy
+#~ msgid "Python interface to libarchive"
+#~ msgstr "Interfaz de mandato lineal para archive.org"
+
+#, fuzzy
+#~ msgid "Python bindings to the libmagic file type guesser"
+#~ msgstr "Enlazando Python para libvirt"
+
+#, fuzzy
+#~ msgid "IPython HTML widgets for Jupyter"
+#~ msgstr "Cubiertas HTML para R"
+
+#, fuzzy
+#~ msgid "Jupyter terminal console"
+#~ msgstr "Terminal controladora única"
+
+#, fuzzy
+#~ msgid "Web application for interactive documents"
+#~ msgstr "Almacena preferencias de aplicación"
+
+#, fuzzy
+#~ msgid "Command-line interface description language for Python"
+#~ msgstr "Interfaz de mandato lineal para libtocc"
+
+#, fuzzy
+#~ msgid "Python interface to the UNIX dialog utility"
+#~ msgstr "Interfaz Perl para algoritmo MD-5"
+
+#, fuzzy
+#~ msgid "Tools for decorators and context managers"
+#~ msgstr "Herramientas para trabajar con el formato de fichero PDF"
+
+#, fuzzy
+#~ msgid "Atomic file writes in Python"
+#~ msgstr "Interpreta novedades para Python"
+
+#, fuzzy
+#~ msgid "Utilities for multithreading in Click"
+#~ msgstr "Utilidades para E/S interactiva"
+
+#, fuzzy
+#~ msgid "Logging for click applications"
+#~ msgstr "Aplicación reloj de GNOME"
+
+#, fuzzy
+#~ msgid ""
+#~ "This package provides a Python library for logging Click\n"
+#~ "applications."
+#~ msgstr ""
+#~ "Este paquete proporciona un diccionario para la biblioteca de\n"
+#~ "comprobación ortográfica Hunspell."
+
+#, fuzzy
+#~ msgid "Python library for parsing iCalendar files"
+#~ msgstr "Biblioteca para interpretar ficheros SVG"
+
+#, fuzzy
+#~ msgid "Command-line interface tools"
+#~ msgstr "Interfaz de mandato lineal para libtocc"
+
+#, fuzzy
+#~ msgid "Parser generator for Python"
+#~ msgstr "Interpreta novedades para Python"
+
+#, fuzzy
+#~ msgid "Lisp frontend to Python"
+#~ msgstr "Enlazando SQLite para Python"
+
+#, fuzzy
+#~ msgid "Promises/A+ implementation for Python"
+#~ msgstr "Implementación Log4j para Perl"
+
+#, fuzzy
+#~ msgid "Pure-Python RSA implementation"
+#~ msgstr "Implementación bzip2 paralelo"
+
+#, fuzzy
+#~ msgid "JSON Matching Expressions"
+#~ msgstr "Compresión de cadena"
+
+#, fuzzy
+#~ msgid "Low-level interface to AWS"
+#~ msgstr "Interfaz Perl para Amazon S3"
+
+#, fuzzy
+#~ msgid "Command-line utility that creates projects from project templates"
+#~ msgstr "Utilidad de línea de mandato para buscar texto en ficheros PDF"
+
+#, fuzzy
+#~ msgid "Implementation of the Munkres algorithm"
+#~ msgstr "Implementación del algoritmo de compresión Brotli"
+
+#, fuzzy
+#~ msgid "RAR archive reader for Python"
+#~ msgstr "ORM ActiceRecord para Python"
+
+#, fuzzy
+#~ msgid "Python interface for pkg-config"
+#~ msgstr "Interfaz de usuario para gnushogi"
+
+#, fuzzy
+#~ msgid "Read and write bzip2-compressed files"
+#~ msgstr "Fichero almacén de lectura y escritura OLE"
+
+#, fuzzy
+#~ msgid "Refactoring library for Python"
+#~ msgstr "Biblioteca descodificante para ficheros GIF"
+
+#, fuzzy
+#~ msgid "Traceback serialization library"
+#~ msgstr "Biblioteca de Categoría Textual"
+
+#, fuzzy
+#~ msgid "Lightweight in-process concurrent programming"
+#~ msgstr "Implementación del lenguaje de programación Perl"
+
+#, fuzzy
+#~ msgid "Pure Python AMQP Client Library"
+#~ msgstr "Cliente biblioteca Python MPD"
+
+#, fuzzy
+#~ msgid "Apache Kafka client for Python"
+#~ msgstr "Biblioteca cliente Apache Kafka C/C++"
+
+#, fuzzy
+#~ msgid "Implementation of JSON-RPC specification for Python"
+#~ msgstr "Implementación de una clase simple para Perl"
+
+#, fuzzy
+#~ msgid "Mocking framework for Python"
+#~ msgstr "Cliente mofa HTTP para Python"
+
+#, fuzzy
+#~ msgid "Python string transformation library"
+#~ msgstr "Biblioteca abstracta de origen de datos"
+
+#, fuzzy
+#~ msgid "Style-preserving TOML library"
+#~ msgstr "Biblioteca de procesamiento Speex"
+
+#, fuzzy
+#~ msgid "Tool to detect surrounding shell"
+#~ msgstr "Herramienta para inspeccionar subrutinas"
+
+#, fuzzy
+#~ msgid "Simple yet effective caching library"
+#~ msgstr "Biblioteca de procesamiento Speex"
+
+#, fuzzy
+#~ msgid "DNS toolkit for Python"
+#~ msgstr "Cliente mofa HTTP para Python"
+
+#, fuzzy
+#~ msgid "Python 3 DNS library"
+#~ msgstr "Biblioteca Python ODBC"
+
+#, fuzzy
+#~ msgid "Utilities for working with Python collections"
+#~ msgstr "Herramientas para trabajar con el formato de fichero PDF"
+
+#, fuzzy
+#~ msgid "Library for building command line interfaces in Python"
+#~ msgstr "Biblioteca para acceso por conexión a varias API de servicio"
+
+#, fuzzy
+#~ msgid "Multitouch application framework"
+#~ msgstr "Marco de trabajo para autenticación SASL"
+
+#, fuzzy
+#~ msgid "Python driver for MongoDB"
+#~ msgstr "Enlaces binarios para liblo"
+
+#, fuzzy
+#~ msgid "Python client for Consul"
+#~ msgstr "Cliente HTTP para R"
+
+#, fuzzy
+#~ msgid "Python Data Structures for Humans"
+#~ msgstr "Compara datos Perl estructurados"
+
+#, fuzzy
+#~ msgid "Python Data Structures for Humans."
+#~ msgstr "Compara datos Perl estructurados"
+
+#, fuzzy
+#~ msgid "GraphQL implementation for Python"
+#~ msgstr "Implementación Log4j para Perl"
+
+#, fuzzy
+#~ msgid "Relay implementation for Python"
+#~ msgstr "Implementación Log4j para Perl"
+
+#, fuzzy
+#~ msgid "GraphQL Framework for Python"
+#~ msgstr "Cubiertas ALSA para Python"
+
+#, fuzzy
+#~ msgid "Library for creating microservice applications"
+#~ msgstr "Biblioteca para acceso por conexión a varias API de servicio"
+
+#, fuzzy
+#~ msgid "General purpose Python data validator"
+#~ msgstr "Propósito general de compresión de datos"
+
+#, fuzzy
+#~ msgid "Pyev provides a Python interface to libev."
+#~ msgstr "Proporciona un interfaz para ficheros archivos ZIP"
+
+#, fuzzy
+#~ msgid "This package provides a python port of YUI CSS Compressor."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "Javascript Minifier"
+#~ msgstr "Enlazados Javascript para GNOME"
+
+#, fuzzy
+#~ msgid "Open compressed files transparently"
+#~ msgstr "Utilidad de extracción y descompresión de fichero"
+
+#, fuzzy
+#~ msgid "Template engine"
+#~ msgstr "Plantilla Vista Clase"
+
+#, fuzzy
+#~ msgid "Git implementation in Python"
+#~ msgstr "Implementación JSON en C"
+
+#, fuzzy
+#~ msgid "QR Code image generator"
+#~ msgstr "Generador de contraseñas aleatorias"
+
+#, fuzzy
+#~ msgid "Parsering Expression Grammars in Python"
+#~ msgstr "Interpreta novedades para Python"
+
+#, fuzzy
+#~ msgid "Library for versioning Python projects"
+#~ msgstr "Biblioteca para interpretación del formato AbiWord"
+
+#, fuzzy
+#~ msgid "Markdown to reStructuredText converter"
+#~ msgstr "Conversor de MS-Word a TeX o texto simple"
+
+#, fuzzy
+#~ msgid "Python framework for command line programs"
+#~ msgstr "Ejecución interactiva de programa por línea de mandato"
+
+#, fuzzy
+#~ msgid "Python copy-on-write B-tree library"
+#~ msgstr "Cliente biblioteca Python MPD"
+
+#, fuzzy
+#~ msgid "Test runner for Python"
+#~ msgstr "Cubiertas ALSA para Python"
+
+#, fuzzy
+#~ msgid "Python command-line parsing library"
+#~ msgstr "Biblioteca interpretando HTML5 completo"
+
+#, fuzzy
+#~ msgid "MediaWiki API client"
+#~ msgstr "Cliente Python Redis"
+
+#, fuzzy
+#~ msgid "Python implementations of various stemming algorithms"
+#~ msgstr "Implementación del algoritmo de compresión Brotli"
+
+#, fuzzy
+#~ msgid "Core utilities for Python packages"
+#~ msgstr "Colección de utilidades para el núcleo Linux"
+
+#, fuzzy
+#~ msgid "Code Metrics in Python"
+#~ msgstr "Interpreta novedades para Python"
+
+#, fuzzy
+#~ msgid "Python binding for Hoedown"
+#~ msgstr "Enlaces binarios para liblo"
+
+#, fuzzy
+#~ msgid "Parse and validate URI references"
+#~ msgstr "Almacenamiento de preferencias de aplicaciones"
+
+#, fuzzy
+#~ msgid "Python implementation of RFC 6555"
+#~ msgstr "Implementación Perl de protocolo PSYC"
+
+#, fuzzy
+#~ msgid "Data validation library"
+#~ msgstr "Biblioteca abstracta de BD"
+
+#, fuzzy
+#~ msgid "Validation of Swagger specifications"
+#~ msgstr "Especificación de complemento para audio LV2"
+
+#, fuzzy
+#~ msgid "Alternative regular expression module"
+#~ msgstr "%s: la expresión regular no es válida: %s"
+
+#, fuzzy
+#~ msgid "Standard OpenGL bindings for Python"
+#~ msgstr "Enlazando SQLite para Python"
+
+#, fuzzy
+#~ msgid "Serialization of heterogeneous data structures"
+#~ msgstr "Impresión bonita de estructura de datos"
+
+#, fuzzy
+#~ msgid "Collection of utilities for interacting with PyPI"
+#~ msgstr "Colección de utilidades para el núcleo Linux"
+
+#, fuzzy
+#~ msgid "Simple rate limiting object"
+#~ msgstr "Objeto arbóreo único"
+
+#, fuzzy
+#~ msgid "JSON-RPC 2.0 client library for Python"
+#~ msgstr "Cliente biblioteca Redis para Guile"
+
+#, fuzzy
+#~ msgid "Setuptools revision control system plugin for Git"
+#~ msgstr "Sistema de control local de revisiones por fichero"
+
+#, fuzzy
+#~ msgid "Boolean operations on paths"
+#~ msgstr "Operaciones avanzadas en rutas variables"
+
+#, fuzzy
+#~ msgid "Python library for managing temporary directories"
+#~ msgstr "Biblioteca C para manipulador de ficheros tar POSIX"
+
+#, fuzzy
+#~ msgid "This package provides a Python port of Google's libphonenumber library."
+#~ msgstr ""
+#~ "Este paquete proporciona un diccionario para la biblioteca de\n"
+#~ "comprobación ortográfica Hunspell."
+
+#, fuzzy
+#~ msgid "Async favicon fetcher"
+#~ msgstr "Tema icónico Arc"
+
+#, fuzzy
+#~ msgid "Formatter for Python code"
+#~ msgstr "Cubiertas ALSA para Python"
+
+#, fuzzy
+#~ msgid "Command-line YAML/XML processor"
+#~ msgstr "Procesador mandato lineal JSON"
+
+#, fuzzy
+#~ msgid "Functional tools"
+#~ msgstr "Herramientas documentales Yelp"
+
+#, fuzzy
+#~ msgid "Objects representing a week"
+#~ msgstr "Objeto representando una traza de pila"
+
+#, fuzzy
+#~ msgid "Type hints for Python"
+#~ msgstr "Enlazando SQLite para Python"
+
+#, fuzzy
+#~ msgid "Experimental type hints for Python"
+#~ msgstr "Enlazando SQLite para Python"
+
+#, fuzzy
+#~ msgid "BibTeX-compatible bibliography processor"
+#~ msgstr "Compatibilidad bibliográfica flexible"
+
+#, fuzzy
+#~ msgid "One-time password library"
+#~ msgstr "Generador de contraseñas aleatorias"
+
+#, fuzzy
+#~ msgid "Python Parser"
+#~ msgstr "Interpretador Cuerpo HTTP"
+
+#, fuzzy
+#~ msgid "Simple ctypes bindings for FUSE"
+#~ msgstr "Enlazando SQLite para Python"
+
+#, fuzzy
+#~ msgid "User-space file systems for Python"
+#~ msgstr "Sistema de ficheros en espacio de usuaria para GIO"
+
+#, fuzzy
+#~ msgid "File identification library for Python"
+#~ msgstr "Biblioteca de notificación de escritorio GNOME"
+
+#, fuzzy
+#~ msgid "Configuration validation library"
+#~ msgstr "Biblioteca interpreta fichero de configuración"
+
+#, fuzzy
+#~ msgid "Buffer compression and transformation codecs"
+#~ msgstr "Herramientas de nombre modular y transformaciones"
+
+#, fuzzy
+#~ msgid ""
+#~ "This package provides a sorted collections library, written in\n"
+#~ "pure-Python."
+#~ msgstr ""
+#~ "Este paquete proporciona un diccionario para la biblioteca de\n"
+#~ "comprobación ortográfica Hunspell."
+
+#, fuzzy
+#~ msgid "File-based locks for Python"
+#~ msgstr "Cliente mofa HTTP para Python"
+
+#, fuzzy
+#~ msgid "Python wrapper for the Blosc data compressor library"
+#~ msgstr "Biblioteca portable de compresión de datos sin pérdida"
+
+#, fuzzy
+#~ msgid "Immutable linked list library"
+#~ msgstr "Biblioteca utilitaria para Netlink"
+
+#, fuzzy
+#~ msgid "Simple lexer/parser for inline markup based on regular expressions"
+#~ msgstr "%s: la expresión regular no es válida: %s"
+
+#, fuzzy
+#~ msgid "Library for adding retry behavior"
+#~ msgstr "Biblioteca para interpretación del formato AbiWord"
+
+#, fuzzy
+#~ msgid "Implementation of the PRECIS framework"
+#~ msgstr "Implementación de DOM W3C"
+
+#, fuzzy
+#~ msgid "Read and write Python ASTs"
+#~ msgstr "Fichero almacén de lectura y escritura OLE"
+
+#, fuzzy
+#~ msgid "AST unparser for Python"
+#~ msgstr "Cubiertas ALSA para Python"
+
+#, fuzzy
+#~ msgid "Wikidata client library"
+#~ msgstr "Cliente biblioteca CMIS"
+
+#, fuzzy
+#~ msgid "Approximate nearest neighbors library"
+#~ msgstr "Herramientas monitorizada de rendimiento para Linux"
+
+#, fuzzy
+#~ msgid "Python bindings for the LZMA library by Igor Pavlov."
+#~ msgstr "Enlaces binarios para liblo"
+
+#, fuzzy
+#~ msgid "Python bindings for Oracle Berkeley DB"
+#~ msgstr "Enlace Python para cairo"
+
+#, fuzzy
+#~ msgid "Library for simple routing on OSM data"
+#~ msgstr "Biblioteca para importar documentos WordPerfect"
+
+#, fuzzy
+#~ msgid "Python library to parse BibTeX files"
+#~ msgstr "Interfaz para leer e interpretar ficheros BibTeX"
+
+#, fuzzy
+#~ msgid "BibtexParser is a Python library to parse BibTeX files."
+#~ msgstr "Interfaz para leer e interpretar ficheros BibTeX"
+
+#, fuzzy
+#~ msgid "OS platform information API"
+#~ msgstr "Enseña información sobre dispositivos ACPI"
+
+#, fuzzy
+#~ msgid "Ultra fast JSON encoder and decoder for Python"
+#~ msgstr "Codificador/decodificador JSON para Perl"
+
+#, fuzzy
+#~ msgid "Simple packaging tool for simple packages"
+#~ msgstr "Importar paquetes dentro de otros paquetes"
+
+#, fuzzy
+#~ msgid "Path utilities for Python"
+#~ msgstr "Enlazando SQLite para Python"
+
+#, fuzzy
+#~ msgid "Python GSSAPI Wrapper"
+#~ msgstr "Otra cubierta SQLite para Python"
+
+#, fuzzy
+#~ msgid "File system events monitoring"
+#~ msgstr "Montar fichero del sistema exFAT"
+
+#, fuzzy
+#~ msgid "Protect process memory"
+#~ msgstr "Procesador de efectos de sonido"
+
+#, fuzzy
+#~ msgid "DocuSign Python Client"
+#~ msgstr "Cliente Python Redis"
+
+#, fuzzy
+#~ msgid "Python implementation of the JSON5 data format"
+#~ msgstr "Una implementación Perl pura del algoritmo RC4."
+
+#, fuzzy
+#~ msgid "Simple immutable mapping for Python"
+#~ msgstr "Enlazando SQLite para Python"
+
+#, fuzzy
+#~ msgid "Library for writing system daemons in Python"
+#~ msgstr "Biblioteca para escribir peticiones SQL dentro de una forma pythonisa"
+
+#, fuzzy
+#~ msgid "Python Macaroon Library"
+#~ msgstr "Biblioteca Python ODBC"
+
+#, fuzzy
+#~ msgid "Python LDAP client"
+#~ msgstr "Cliente Python Redis"
+
+#, fuzzy
+#~ msgid "Easy PEM file parsing in Python"
+#~ msgstr "Interpreta novedades para Python"
+
+#, fuzzy
+#~ msgid "Twisted implexmentation of the ACME protocol"
+#~ msgstr "Implementación Perl de protocolo PSYC"
+
+#, fuzzy
+#~ msgid "Generates memorable passphrases"
+#~ msgstr "Genera y utiliza intérpretes LALR"
+
+#, fuzzy
+#~ msgid "Python data validation library"
+#~ msgstr "Cliente biblioteca Python MPD"
+
+#, fuzzy
+#~ msgid "Tool for building interactive command line applications"
+#~ msgstr "Ejecución interactiva de programa por línea de mandato"
+
+#, fuzzy
+#~ msgid "Render README files in Warehouse"
+#~ msgstr "Renderiza ficheros SVG utilizando Cairo"
+
+#, fuzzy
+#~ msgid "API for Python internationalization"
+#~ msgstr "API simple para virtualización"
+
+#, fuzzy
+#~ msgid "Debug command and development tools"
+#~ msgstr "Herramienta para desarrollo rápido de aplicaciones con GTK+"
+
+#, fuzzy
+#~ msgid "This package provides a parser for Python dependency files."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "Cross-platform GUI library"
+#~ msgstr "Plataforma de biblioteca de sonido cruzada"
+
+#, fuzzy
+#~ msgid "Additional Image Format plugins for Qt"
+#~ msgstr "Widgets adicional para aplicaciones"
+
+#, fuzzy
+#~ msgid "Qt Tools and Designer modules"
+#~ msgstr "Compila e instala módulos Perl"
+
+#, fuzzy
+#~ msgid "Spell checking for Qt text widgets"
+#~ msgstr "BD Access SQLite desde Guile"
+
+#, fuzzy
+#~ msgid "Python binding creator for C and C++ libraries"
+#~ msgstr "Enlazando Python para librsvg"
+
+#, fuzzy
+#~ msgid "Python bindings for Qt"
+#~ msgstr "Enlaces Python para GTK+"
+
+#, fuzzy
+#~ msgid "Python bindings for QtWebEngine"
+#~ msgstr "Enlace Python para cairo"
+
+#, fuzzy
+#~ msgid "Color management widgets"
+#~ msgstr "Servicio de gestión de color"
+
+#, fuzzy
+#~ msgid "Lightweight RDS to JSON decoder"
+#~ msgstr "Cliente ligero Tox"
+
+#, fuzzy
+#~ msgid "Radio transceiver control program"
+#~ msgstr "Programa simple del control del ventilador"
+
+#, fuzzy
+#~ msgid "File encapsulation program"
+#~ msgstr "Programa de Manipulación de Imágenes GNU GIMP"
+
+#, fuzzy
+#~ msgid ""
+#~ "This package provides a Ruby wrapper for the MRI 2.0 debug_inspector\n"
+#~ "API."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "Remote Desktop Protocol implementation"
+#~ msgstr "Implementación de lisp de tipo Scheme"
+
+#, fuzzy
+#~ msgid "RDF syntax library"
+#~ msgstr "Biblioteca renderizadora de PDF"
+
+#, fuzzy
+#~ msgid "C text indexing and searching library"
+#~ msgstr "Biblioteca de geocódigo y reversión de geocódigo"
+
+#, fuzzy
+#~ msgid "RDF query library"
+#~ msgstr "Biblioteca renderizadora de PDF"
+
+#, fuzzy
+#~ msgid "RDF library"
+#~ msgstr "Biblioteca C JSON"
+
+#, fuzzy
+#~ msgid "C library for storing RDF data in memory"
+#~ msgstr "Biblioteca C para manipulador de ficheros tar POSIX"
+
+#, fuzzy
+#~ msgid "Python RDF library"
+#~ msgstr "Biblioteca Python ODBC"
+
+#, fuzzy
+#~ msgid "C++ implementation of the HDT compression format"
+#~ msgstr "Implementación del algoritmo de compresión Brotli"
+
+#, fuzzy
+#~ msgid "Robot simulator"
+#~ msgstr "Simulador de vuelo"
+
+#, fuzzy
+#~ msgid "Implementation of the rsync remote-delta algorithm"
+#~ msgstr "Implementación del algoritmo de compresión Brotli"
+
+#, fuzzy
+#~ msgid "Programming language interpreter"
+#~ msgstr "Programación de juegos"
+
+#, fuzzy
+#~ msgid "Lightweight Ruby"
+#~ msgstr "Cliente ligero Tox"
+
+#, fuzzy
+#~ msgid "RSpec support library"
+#~ msgstr "Biblioteca de abstracción de Sip"
+
+#, fuzzy
+#~ msgid "RSpec core library"
+#~ msgstr "Biblioteca de controladores para juegos"
+
+#, fuzzy
+#~ msgid "RSpec expectations library"
+#~ msgstr "Biblioteca de abstracción de Sip"
+
+#, fuzzy
+#~ msgid "RSpec stubbing and mocking library"
+#~ msgstr "Biblioteca de geocódigo y reversión de geocódigo"
+
+#, fuzzy
+#~ msgid "Tool for working with Rubygems"
+#~ msgstr "Herramientas para trabajar con el formato de fichero PDF"
+
+#, fuzzy
+#~ msgid "Flexible logging library for Ruby"
+#~ msgstr "Cliente biblioteca Redis para Guile"
+
+#, fuzzy
+#~ msgid "Ruby wrapper for Pandoc"
+#~ msgstr "Cubiertas ALSA para Python"
+
+#, fuzzy
+#~ msgid "Lightweight test double library for Ruby"
+#~ msgstr "Biblioteca de filtro de sonido ligero"
+
+#, fuzzy
+#~ msgid "Ruby library to handle PNG images"
+#~ msgstr "Biblioteca para manipulación de ficheros PNG"
+
+#, fuzzy
+#~ msgid "Library for working with Abstract Syntax Trees"
+#~ msgstr "Biblioteca para trabajar con capacidades POSIX"
+
+#, fuzzy
+#~ msgid "Implementation of embedded Ruby (eRuby)"
+#~ msgstr "Implementación de Scheme y lenguajes relacionados"
+
+#, fuzzy
+#~ msgid "Fake file system for Ruby"
+#~ msgstr "Montar fichero del sistema exFAT"
+
+#, fuzzy
+#~ msgid "Ruby bindings for GNOME Libxml2"
+#~ msgstr "Enlazando Cairo para GNU Guile"
+
+#, fuzzy
+#~ msgid "Logging utility library for Ruby"
+#~ msgstr "Biblioteca utilitaria para NetSurf"
+
+#, fuzzy
+#~ msgid "Ruby FFI binding to libsodium"
+#~ msgstr "Enlazando Python para librsvg"
+
+#, fuzzy
+#~ msgid "Wrapper library for notification libraries"
+#~ msgstr "Biblioteca cubierta para imlib2"
+
+#, fuzzy
+#~ msgid "Ruby library to format text on stdout"
+#~ msgstr "Interpreta biblioteca para texto en formato Pod"
+
+#~ msgid "Ruby hyphenation patterns"
+#~ msgstr "Patrones de separación silábica para Ruby"
+
+#, fuzzy
+#~ msgid "Ruby module is for reading and writing zip files"
+#~ msgstr "Biblioteca C para crear e interpretar ficheros de configuración."
+
+#, fuzzy
+#~ msgid "HTTP user agent parser for Ruby"
+#~ msgstr "Petición/respuestas HTTP interpretadas para C"
+
+#, fuzzy
+#~ msgid "Persistent HTTP connection manager"
+#~ msgstr "Gestor de conexión a red"
+
+#, fuzzy
+#~ msgid "Useful extensions to core Ruby classes"
+#~ msgstr "Métodos utilizados para clases factoriales"
+
+#, fuzzy
+#~ msgid "Collection of text algorithms for Ruby"
+#~ msgstr "Colección de utilidades para el núcleo Linux"
+
+#, fuzzy
+#~ msgid "Creates temporary files and directories for testing"
+#~ msgstr "Quita ficheros y directorios en Perl"
+
+#, fuzzy
+#~ msgid "Unit testing framework for Ruby"
+#~ msgstr "Impresión para marco de trabajo de GNOME"
+
+#, fuzzy
+#~ msgid "Lightweight alternative to @code{mkmf}"
+#~ msgstr "Interfaz ligero para memoria compartida"
+
+#, fuzzy
+#~ msgid "Ruby implementation of the SSH2 client protocol"
+#~ msgstr "Implementación del protocolo de transporte en tiempo real"
+
+#, fuzzy
+#~ msgid "Pure-Ruby SCP client library"
+#~ msgstr "Cliente biblioteca Python MPD"
+
+#, fuzzy
+#~ msgid "Small test suite library for Ruby"
+#~ msgstr "Cliente biblioteca Redis para Guile"
+
+#, fuzzy
+#~ msgid "Bacon compatibility library for minitest"
+#~ msgstr "Compatibilizar y utilidad bibliotecaria para Scheme"
+
+#, fuzzy
+#~ msgid "Hooks for the minitest framework"
+#~ msgstr "Marco de pruebas de software GNU"
+
+#, fuzzy
+#~ msgid "Recursively merge hashes"
+#~ msgstr "Copiar recursivamente tipos de datos Perl"
+
+#, fuzzy
+#~ msgid "Ruby wrappers for Git"
+#~ msgstr "Cubiertas ALSA para Python"
+
+#, fuzzy
+#~ msgid "HOCON config library"
+#~ msgstr "Biblioteca C JSON"
+
+#, fuzzy
+#~ msgid "Multipart POST library for Ruby"
+#~ msgstr "Biblioteca JSON para R"
+
+#, fuzzy
+#~ msgid "Ruby library and utility for handling tar archives"
+#~ msgstr "Biblioteca para manipulación de ficheros PNG"
+
+#, fuzzy
+#~ msgid "Ruby library for displaying progress bars"
+#~ msgstr "Biblioteca C para manipulador de ficheros tar POSIX"
+
+#, fuzzy
+#~ msgid "Time zone library for Ruby"
+#~ msgstr "Biblioteca JSON para R"
+
+#, fuzzy
+#~ msgid "Generate searchable RDoc documentation"
+#~ msgstr "Genera modificaciones de barras en documentos LaTeX"
+
+#, fuzzy
+#~ msgid "Assorted tools for Ruby"
+#~ msgstr "Herramientas de usuario para f2fs"
+
+#, fuzzy
+#~ msgid "Create a process tree data structure"
+#~ msgstr "Compara datos Perl estructurados"
+
+#, fuzzy
+#~ msgid "Ruby implementation of Jaro-Winkler distance algorithm"
+#~ msgstr "Implementación del algoritmo de compresión Brotli"
+
+#, fuzzy
+#~ msgid "JSON library for Ruby"
+#~ msgstr "Biblioteca JSON para R"
+
+#, fuzzy
+#~ msgid "JSON implementation in pure Ruby"
+#~ msgstr "Implementación JSON en C"
+
+#, fuzzy
+#~ msgid "Ruby library for manipulating and transforming HTML/XML"
+#~ msgstr "Biblioteca C para manipulador de ficheros tar POSIX"
+
+#, fuzzy
+#~ msgid "Ruby on Rails utility library"
+#~ msgstr "Biblioteca utilitaria para Netlink"
+
+#, fuzzy
+#~ msgid "Optimized XML library for Ruby"
+#~ msgstr "Biblioteca JSON para R"
+
+#, fuzzy
+#~ msgid "Ruby interface to PostgreSQL"
+#~ msgstr "Conector C++ para PostgreSQL"
+
+#, fuzzy
+#~ msgid "Library to read and update netrc files"
+#~ msgstr "Interfaz para leer e interpretar ficheros BibTeX"
+
+#, fuzzy
+#~ msgid "Unicode normalization form support library"
+#~ msgstr "Formato de normalización Unicode"
+
+#, fuzzy
+#~ msgid "Testing API for Rack applications"
+#~ msgstr "Widgets adicional para aplicaciones"
+
+#, fuzzy
+#~ msgid "Simple HTTP and REST client for Ruby"
+#~ msgstr "Cliente HTTP para R"
+
+#, fuzzy
+#~ msgid "Ruby library to manipulate Unicode"
+#~ msgstr "Biblioteca C para manipulador de ficheros tar POSIX"
+
+#, fuzzy
+#~ msgid "A regular expression parser library for Ruby "
+#~ msgstr "Biblioteca de expresión regular"
+
+#, fuzzy
+#~ msgid "Implementation of a middleware abstraction for Ruby"
+#~ msgstr "Implementación de una clase simple para Perl"
+
+#, fuzzy
+#~ msgid "Gherkin parser for Ruby"
+#~ msgstr "Interprete CommonMark para Guile"
+
+#, fuzzy
+#~ msgid "Ruby interface for gathering system information"
+#~ msgstr "BD de información del sistema operativo"
+
+#, fuzzy
+#~ msgid "Ruby implementation of the Coveralls API"
+#~ msgstr "Implementación de DOM W3C"
+
+#, fuzzy
+#~ msgid ""
+#~ "This package provides a Ruby implementation of the Coveralls\n"
+#~ "API."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "Simpler alternative to Regular Expressions"
+#~ msgstr "%s: la expresión regular no es válida: %s"
+
+#, fuzzy
+#~ msgid "Log4r wrapper for Ruby"
+#~ msgstr "Cubiertas ALSA para Python"
+
+#, fuzzy
+#~ msgid "Documentation generation tool for Ruby"
+#~ msgstr "Generador de documentación desde código fuente C"
+
+#, fuzzy
+#~ msgid "TomDoc parser for Ruby"
+#~ msgstr "Interprete CommonMark para Guile"
+
+# FUZZY
+#, fuzzy
+#~ msgid "Command line argument parsing for simple applications"
+#~ msgstr "Biblioteca Common C++ para aplicaciones multihilo"
+
+#, fuzzy
+#~ msgid "Single-threaded network event framework for Ruby"
+#~ msgstr "Impresión para marco de trabajo de GNOME"
+
+#, fuzzy
+#~ msgid "Unicode Normalization Form support to Ruby and JRuby"
+#~ msgstr "Formato de normalización Unicode"
+
+#, fuzzy
+#~ msgid "Domain name manipulation library"
+#~ msgstr "Biblioteca para procesado y manipulación de CSS2"
+
+#, fuzzy
+#~ msgid "Assertions library"
+#~ msgstr "Biblioteca separación silábica"
+
+#, fuzzy
+#~ msgid "Command-line interface for rubytest"
+#~ msgstr "Interfaz de mandato lineal para libtocc"
+
+#, fuzzy
+#~ msgid "Implementation of the RC4 algorithm"
+#~ msgstr "Una implementación Perl pura del algoritmo RC4."
+
+#, fuzzy
+#~ msgid "RubyRC4 is a pure Ruby implementation of the RC4 algorithm."
+#~ msgstr "Una implementación Perl pura del algoritmo RC4."
+
+#, fuzzy
+#~ msgid "Encode and decode Ascii85 binary-to-text encoding"
+#~ msgstr "Codificación y decodificación de relleno en UTF-8"
+
+#, fuzzy
+#~ msgid "Database toolkit for Ruby"
+#~ msgstr "Herramienta de migración de BD para SQLAlchemy"
+
+#, fuzzy
+#~ msgid "RFC 2617 HTTP digest authentication library"
+#~ msgstr "Biblioteca de Categoría Textual"
+
+#, fuzzy
+#~ msgid "Mail library for Ruby"
+#~ msgstr "Biblioteca JSON para R"
+
+#, fuzzy
+#~ msgid "Alternative URI implementation"
+#~ msgstr "Implementación bzip2 paralelo"
+
+#, fuzzy
+#~ msgid "Terminal color library"
+#~ msgstr "Biblioteca vectorial bit"
+
+#, fuzzy
+#~ msgid "PEG library for Ruby"
+#~ msgstr "Biblioteca JSON para R"
+
+#, fuzzy
+#~ msgid "File modification notification library"
+#~ msgstr "Biblioteca de notificación de escritorio GNOME"
+
+#, fuzzy
+#~ msgid "Terminfo binding for Ruby"
+#~ msgstr "Enlazando GLib para libusb1"
+
+#, fuzzy
+#~ msgid "CSS extension language"
+#~ msgstr "Lenguaje de procesamiento de señales"
+
+#, fuzzy
+#~ msgid "Parallel processing in Ruby"
+#~ msgstr "Biblioteca de procesamiento Speex"
+
+#, fuzzy
+#~ msgid "PDF parser in Ruby"
+#~ msgstr "Biblioteca renderizadora de PDF"
+
+#, fuzzy
+#~ msgid "Tables support for Prawn"
+#~ msgstr "Capacidad Babel para inglés"
+
+#, fuzzy
+#~ msgid "Markdown parsing and converting library"
+#~ msgstr "Biblioteca para procesado y manipulación de CSS2"
+
+#, fuzzy
+#~ msgid "HTTP parser un Ruby"
+#~ msgstr "Clase interpretada HTML en Perl"
+
+#, fuzzy
+#~ msgid "Extensions to Ruby Hashes"
+#~ msgstr "Extensiones para GNOME Shell"
+
+#, fuzzy
+#~ msgid "YAML parser"
+#~ msgstr "Clase interpretada HTML en Perl"
+
+#, fuzzy
+#~ msgid "Template language"
+#~ msgstr "Plantilla Vista Clase"
+
+#, fuzzy
+#~ msgid "Extended implementation of Pathname"
+#~ msgstr "Implementación de DOM W3C"
+
+#, fuzzy
+#~ msgid "Ruby HTTP/REST API client library"
+#~ msgstr "Biblioteca de cliente HTTP y WebDAV"
+
+#, fuzzy
+#~ msgid "DSL for quick web applications creation in Ruby"
+#~ msgstr "Configuración aplicación Guile interpretando biblioteca"
+
+#, fuzzy
+#~ msgid "Thin and fast web server for Ruby"
+#~ msgstr "Visor de imagen simple y rápido para X"
+
+#, fuzzy
+#~ msgid "Gather file system information"
+#~ msgstr "BD de información del sistema operativo"
+
+#, fuzzy
+#~ msgid "Convert HTML into Markdown"
+#~ msgstr "Convierte Texinfo a HTML"
+
+#, fuzzy
+#~ msgid "Modern replacement for ls"
+#~ msgstr "Soltar sustitución para NEXT"
+
+#, fuzzy
+#~ msgid "Command-line hex viewer"
+#~ msgstr "Cliente WebDAV por mandato lineal"
+
+#, fuzzy
+#~ msgid "Build and install C-compatible libraries"
+#~ msgstr "Compila e instala módulos Perl"
+
+#, fuzzy
+#~ msgid "Compiler for the Rust programming language"
+#~ msgstr "Manual de referencia para el lenguaje de programación C"
+
+#, fuzzy
+#~ msgid "Python interface to the number theory library libpari"
+#~ msgstr "Biblioteca de visión de computación"
+
+#, fuzzy
+#~ msgid "C++ library for L-functions"
+#~ msgstr "Bibliotecas C++ para complementos LV2"
+
+#, fuzzy
+#~ msgid "Simple @file{.ini} configuration file parsing library"
+#~ msgstr "Configuración aplicación Guile interpretando biblioteca"
+
+#, fuzzy
+#~ msgid "Event system library"
+#~ msgstr "Biblioteca de sistema de acceso portable"
+
+#, fuzzy
+#~ msgid "Implementation of the Point-to-Point Protocol"
+#~ msgstr "Implementación del protocolo de transporte en tiempo real"
+
+#, fuzzy
+#~ msgid "GTK+ binding for librep"
+#~ msgstr "Enlazando GLib para libusb1"
+
+#, fuzzy
+#~ msgid "Small devices C compiler"
+#~ msgstr "Compilador Scheme brutalmente eficiente"
+
+#, fuzzy
+#~ msgid "Cross platform game development library"
+#~ msgstr "Plataforma de biblioteca de sonido cruzada"
+
+#, fuzzy
+#~ msgid "Library for module sound formats"
+#~ msgstr "Biblioteca para interpretación del formato AbiWord"
+
+#, fuzzy
+#~ msgid "SDL graphics primitives library"
+#~ msgstr "Biblioteca de gráficos 2D"
+
+#, fuzzy
+#~ msgid "SDL image loading library"
+#~ msgstr "Fichero Mod reproduciendo biblioteca"
+
+#, fuzzy
+#~ msgid "SDL multi-channel audio mixer library"
+#~ msgstr "Biblioteca de filtro de sonido ligero"
+
+#, fuzzy
+#~ msgid "SDL networking library"
+#~ msgstr "Biblioteca renderizadora de PDF"
+
+#, fuzzy
+#~ msgid "SDL TrueType font library"
+#~ msgstr "Biblioteca renderizadora de PDF"
+
+#, fuzzy
+#~ msgid "Guile bindings for SDL2"
+#~ msgstr "Enlazando Guile para libgit2"
+
+#, fuzzy
+#~ msgid "C# wrapper for SDL2"
+#~ msgstr "Cubiertas ALSA para Python"
+
+#, fuzzy
+#~ msgid "Smart card library for Python"
+#~ msgstr "Biblioteca de imagen para Extempore"
+
+#, fuzzy
+#~ msgid "U2F server-side C library"
+#~ msgstr "Biblioteca renderizadora de PDF"
+
+#, fuzzy
+#~ msgid "Library for manipulating SELinux policies"
+#~ msgstr "Biblioteca C para manipulador de ficheros tar POSIX"
+
+#, fuzzy
+#~ msgid "SELinux policy management libraries"
+#~ msgstr "Biblioteca de cadena interna"
+
+#, fuzzy
+#~ msgid "SELinux core utilities"
+#~ msgstr "Herramientas contenedoras Linux"
+
+#, fuzzy
+#~ msgid "New OpenPGP implementation"
+#~ msgstr "Implementación completa de ajedrez"
+
+#, fuzzy
+#~ msgid "C++11 library for serialization"
+#~ msgstr "Bibliotecas C++ para complementos LV2"
+
+#, fuzzy
+#~ msgid "Small binary serialization library"
+#~ msgstr "Intérprete CSS y selección de biblioteca"
+
+#, fuzzy
+#~ msgid "YAML parser and emitter in C++"
+#~ msgstr "LibYAML es un YAML 1.1 interpretador y emisor escrito en C."
+
+#, fuzzy
+#~ msgid "C++ library for interacting with JSON"
+#~ msgstr "Biblioteca C para interpretar JSON"
+
+#, fuzzy
+#~ msgid "C BSON library"
+#~ msgstr "Biblioteca C JSON"
+
+#, fuzzy
+#~ msgid "Implementation of the Concise Binary Object Representation"
+#~ msgstr "Implementación del algoritmo de compresión Brotli"
+
+#, fuzzy
+#~ msgid "Memory-efficient serialization library"
+#~ msgstr "Biblioteca de Categoría Textual"
+
+#, fuzzy
+#~ msgid "Python wrapper to the Feather file format"
+#~ msgstr "Herramientas para trabajar con el formato de fichero PDF"
+
+#, fuzzy
+#~ msgid "Trash can management tool"
+#~ msgstr "Herramienta gestora de múltiples repositorios"
+
+#, fuzzy
+#~ msgid "Suite of DNS client programs"
+#~ msgstr "Programa simple del control del ventilador"
+
+#, fuzzy
+#~ msgid "Standard ML implementation"
+#~ msgstr "Implementación bzip2 paralelo"
+
+#, fuzzy
+#~ msgid "Speech synthesis system"
+#~ msgstr "Sintetizador pronunciador de software"
+
+#~ msgid "Software speech synthesizer"
+#~ msgstr "Sintetizador pronunciador de software"
+
+#, fuzzy
+#~ msgid "Common interface to speech synthesizers"
+#~ msgstr "Sintetizador pronunciador de software"
+
+#, fuzzy
+#~ msgid "Recognizer library written in C"
+#~ msgstr "Biblioteca WebSockets escrita en C"
+
+#, fuzzy
+#~ msgid "Python documentation generator"
+#~ msgstr "El formato de documentación GNU"
+
+#, fuzzy
+#~ msgid "Sphinx extension for creating Apple help books"
+#~ msgstr "Rutinas de conversión de fecha Perl"
+
+#, fuzzy
+#~ msgid "Sphinx extension for rendering HTML help files"
+#~ msgstr "Rutinas de conversión de fecha Perl"
+
+#, fuzzy
+#~ msgid "News Feed extension for Sphinx"
+#~ msgstr "Extensión de interfaz Perl para libcurl"
+
+#, fuzzy
+#~ msgid "Sphinx extension to serialize HTML files"
+#~ msgstr "Rutinas de conversión de fecha Perl"
+
+#, fuzzy
+#~ msgid "Sphinx API for web applications"
+#~ msgstr "API simple para virtualización"
+
+#, fuzzy
+#~ msgid "Generate an examples gallery automatically"
+#~ msgstr "Recrear ficheros automáticamente"
+
+#, fuzzy
+#~ msgid "Create a Sphinx documentation shell"
+#~ msgstr "Herramientas documentales Yelp"
+
+#, fuzzy
+#~ msgid "Virtual 3D GPU library"
+#~ msgstr "Biblioteca de sistema de acceso portable"
+
+#, fuzzy
+#~ msgid "Server implementation of the SPICE protocol"
+#~ msgstr "Implementación Perl de protocolo PSYC"
+
+#, fuzzy
+#~ msgid "Spice agent for Linux"
+#~ msgstr "Gesto de volumen lógico para Linux"
+
+#~ msgid "The SQLite database management system"
+#~ msgstr "El sistema gestor de BBDD SQLite"
+
+#, fuzzy
+#~ msgid "High level imperative, object-oriented programming language"
+#~ msgstr "Implementación del lenguaje de programación Perl"
+
+#, fuzzy
+#~ msgid "SSH client library"
+#~ msgstr "Cliente biblioteca CMIS"
+
+#, fuzzy
+#~ msgid "Guile bindings to libssh"
+#~ msgstr "Enlazando Guile para ncurses"
+
+#, fuzzy
+#~ msgid "Small SSH server and client"
+#~ msgstr "Cliente pequeño de consola XMPP"
+
+#, fuzzy
+#~ msgid "Event loop library"
+#~ msgstr "Biblioteca vectorial bit"
+
+#, fuzzy
+#~ msgid "GNU implementation of the Secure Shell (ssh) protocols"
+#~ msgstr "Implementación del protocolo de transporte en tiempo real"
+
+#, fuzzy
+#~ msgid "Web application to be used as an SSH client"
+#~ msgstr "Almacena preferencias de aplicación"
+
+#, fuzzy
+#~ msgid "System security services daemon"
+#~ msgstr "Demonio de servicios de Internet"
+
+#, fuzzy
+#~ msgid "Standalone R math library"
+#~ msgstr "Biblioteca de sistema de acceso portable"
+
+#, fuzzy
+#~ msgid "Axis labeling algorithms"
+#~ msgstr "Línea Unicode dividiendo algoritmo"
+
+#, fuzzy
+#~ msgid "Munsell colour system"
+#~ msgstr "Sistema de diseño documental"
+
+#, fuzzy
+#~ msgid "Character string processing facilities"
+#~ msgstr "Biblioteca de conversión de conjunto de caracteres"
+
+#, fuzzy
+#~ msgid "An implementation of the grammar of graphics"
+#~ msgstr "Implementación del lenguaje de programación Perl"
+
+#, fuzzy
+#~ msgid "Utilities for graphical rendering"
+#~ msgstr "Utilidades para E/S interactiva"
+
+#, fuzzy
+#~ msgid "SVG graphics device"
+#~ msgstr "Editor gráfico vectorial"
+
+#, fuzzy
+#~ msgid "R database interface"
+#~ msgstr "Servidor BBDD SQL"
+
+#, fuzzy
+#~ msgid "Format R code automatically"
+#~ msgstr "Recrear ficheros automáticamente"
+
+#, fuzzy
+#~ msgid "General-purpose package for dynamic report generation in R"
+#~ msgstr "Propósito general de compresión de datos"
+
+#, fuzzy
+#~ msgid "Simple data frames"
+#~ msgstr "Manipular fecha simple"
+
+#, fuzzy
+#~ msgid "Tools for working with data frames in R"
+#~ msgstr "Herramientas para trabajar con el formato de fichero PDF"
+
+#, fuzzy
+#~ msgid "Extended model formulas"
+#~ msgstr "Módulo jugador extendido"
+
+#, fuzzy
+#~ msgid ""
+#~ "This package provides miscellaneous helper functions for the development\n"
+#~ "of R packages."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "In-source documentation system for R"
+#~ msgstr "Documentación de API para GNOME"
+
+#, fuzzy
+#~ msgid "Tools for working with URLs and HTTP"
+#~ msgstr "Herramientas para trabajar con el formato de fichero PDF"
+
+#, fuzzy
+#~ msgid "Various plotting functions"
+#~ msgstr "Funciones pango obsoletas"
+
+#, fuzzy
+#~ msgid ""
+#~ "This package provides functions for bitwise operations on integer\n"
+#~ "vectors."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "Private configuration for R packages"
+#~ msgstr "Obtiene directorios de ficheros de configuración"
+
+#, fuzzy
+#~ msgid "SQLite interface for R"
+#~ msgstr "Interfaz SQlite para Perl"
+
+#, fuzzy
+#~ msgid "General network client interface for R"
+#~ msgstr "Servicio web para R"
+
+#, fuzzy
+#~ msgid "Package development utilities"
+#~ msgstr "Estudio de desarrollo web"
+
+#, fuzzy
+#~ msgid "Various programming utilities"
+#~ msgstr "Utilidad de sonido procesado"
+
+#, fuzzy
+#~ msgid "Match regular expressions with a nicer API"
+#~ msgstr "Biblioteca de expresión regular"
+
+#, fuzzy
+#~ msgid "R unit test framework"
+#~ msgstr "Marco de pruebas de software GNU"
+
+#, fuzzy
+#~ msgid "Visualizing the performance of scoring classifiers"
+#~ msgstr "Perfilado Linux con monitorización de rendimiento"
+
+#, fuzzy
+#~ msgid "Implementation of bee swarm plots"
+#~ msgstr "Implementación de DOM W3C"
+
+#, fuzzy
+#~ msgid "Basic robust statistics"
+#~ msgstr "Visualizar estadísticas curl"
+
+#, fuzzy
+#~ msgid "Adding progress bar to apply functions"
+#~ msgstr "Widgets adicional para aplicaciones"
+
+#, fuzzy
+#~ msgid "R interface to NLopt"
+#~ msgstr "Interfaz Perl para pseudo ttys"
+
+#, fuzzy
+#~ msgid "Fast implementation of random forests"
+#~ msgstr "Implementación de una clase simple para Perl"
+
+#, fuzzy
+#~ msgid "This package provides a pure R implementation of the t-SNE algorithm."
+#~ msgstr "Una implementación Perl pura del algoritmo RC4."
+
+#, fuzzy
+#~ msgid "Tools for working with factors"
+#~ msgstr "Herramientas para trabajar con el formato de fichero PDF"
+
+#, fuzzy
+#~ msgid "Python interface to the R language"
+#~ msgstr "Interfaz Perl para algoritmo MD-5"
+
+#, fuzzy
+#~ msgid "Single file libraries for C/C++"
+#~ msgstr "Fichero web simple de servidor"
+
+#, fuzzy
+#~ msgid "Distributed object store and file system"
+#~ msgstr "Sistema de control de versión distribuída"
+
+#, fuzzy
+#~ msgid "Command line video editing utilities"
+#~ msgstr "Cliente WebDAV por mandato lineal"
+
+#, fuzzy
+#~ msgid "Simple X session lock"
+#~ msgstr "Terminal controladora única"
+
+#, fuzzy
+#~ msgid "Simple terminal emulator"
+#~ msgstr "Emulador de terminal"
+
+#, fuzzy
+#~ msgid "Simple web browser"
+#~ msgstr "Explorador web"
+
+#, fuzzy
+#~ msgid "Plain-text presentation tool"
+#~ msgstr "Herramienta de administración de CUPS"
+
+#, fuzzy
+#~ msgid "Simple battery monitor for X"
+#~ msgstr "Terminal controladora única"
+
+#, fuzzy
+#~ msgid "Commandline utility which scrolls text"
+#~ msgstr "Utilidad de línea de mandato para buscar texto en ficheros PDF"
+
+#, fuzzy
+#~ msgid "Simple bandwidth monitor"
+#~ msgstr "Monitor ancho de banda"
+
+#, fuzzy
+#~ msgid "Sbm is a simple bandwidth monitor."
+#~ msgstr "Monitor ancho de banda"
+
+#, fuzzy
+#~ msgid "Small file browser"
+#~ msgstr "Explorador web"
+
+#, fuzzy
+#~ msgid "Convert bytes to human readable formats"
+#~ msgstr "Convierte texto inglés a dialectos humorísticos"
+
+#, fuzzy
+#~ msgid "Standalone fortify-source implementation"
+#~ msgstr "Pequeña implementación Scheme embebible"
+
+#, fuzzy
+#~ msgid "Extract colors from pictures"
+#~ msgstr "Control adicional de apéndices"
+
+#, fuzzy
+#~ msgid "Simple cron daemon"
+#~ msgstr "Terminal controladora única"
+
+#, fuzzy
+#~ msgid "Decentralized continuous file system synchronization"
+#~ msgstr "Sistema de control de versión descentralizado"
+
+#, fuzzy
+#~ msgid "LZ4 compression algorithm"
+#~ msgstr "Compresión algorítmica dedicada a velocidad"
+
+#, fuzzy
+#~ msgid ""
+#~ "This package provides @code{go-lz4}, a Go implementation of\n"
+#~ "the LZ4 compression algorithm."
+#~ msgstr "Implementación del algoritmo de compresión Brotli"
+
+#, fuzzy
+#~ msgid "Go globbing library"
+#~ msgstr "Fichero Mod reproduciendo biblioteca"
+
+#, fuzzy
+#~ msgid "Snappy compression format in the Go programming language"
+#~ msgstr "Manual de referencia para el lenguaje de programación C"
+
+#, fuzzy
+#~ msgid ""
+#~ "This package provides a Go implementation of the Snappy\n"
+#~ "compression format."
+#~ msgstr "Implementación del algoritmo de compresión Brotli"
+
+#, fuzzy
+#~ msgid ""
+#~ "This package provides a Go implementation of Coda Hale's\n"
+#~ "Metrics library."
+#~ msgstr ""
+#~ "Este paquete proporciona un diccionario para la biblioteca de\n"
+#~ "comprobación ortográfica Hunspell."
+
+#, fuzzy
+#~ msgid "LevelDB key/value database"
+#~ msgstr "Valor-clave de BD"
+
+#, fuzzy
+#~ msgid ""
+#~ "This package provides a Go implementation of several rolling\n"
+#~ "hashes."
+#~ msgstr ""
+#~ "Este paquete proporciona un diccionario para la biblioteca de\n"
+#~ "comprobación ortográfica Hunspell."
+
+#, fuzzy
+#~ msgid "File system event notification library"
+#~ msgstr "Biblioteca de notificación de escritorio GNOME"
+
+#, fuzzy
+#~ msgid "This package provides data model artifacts for Prometheus."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "Go library for reading @file{/proc}"
+#~ msgstr "Biblioteca para manipulación de ficheros PNG"
+
+#, fuzzy
+#~ msgid "HTTP server and client tools for Prometheus"
+#~ msgstr "Cliente mofa HTTP para Python"
+
+#, fuzzy
+#~ msgid "ASN.1 BER encoding and decoding in Go"
+#~ msgstr "Codificación y decodificación de relleno en UTF-8"
+
+#, fuzzy
+#~ msgid "STUN client implementation"
+#~ msgstr "Implementación completa de ajedrez"
+
+#, fuzzy
+#~ msgid "Go implementation of xxHash"
+#~ msgstr "Implementación Log4j para Perl"
+
+#, fuzzy
+#~ msgid ""
+#~ "This package provides of Go implementation of the 64-bit\n"
+#~ "xxHash algorithm (XXH64)."
+#~ msgstr "Una implementación Perl pura del algoritmo RC4."
+
+#, fuzzy
+#~ msgid "News reader for GTK/GNOME"
+#~ msgstr "Explorador web para GNOME"
+
+#, fuzzy
+#~ msgid "Mouse and keyboard sharing utility"
+#~ msgstr "Descubrimiento de ratón y teclado para niños"
+
+#, fuzzy
+#~ msgid "Command line task manager"
+#~ msgstr "Cliente WebDAV por mandato lineal"
+
+#, fuzzy
+#~ msgid "C++ library for parallel programming"
+#~ msgstr "Biblioteca C para interpretar JSON"
+
+#, fuzzy
+#~ msgid "Graphical user interface toolkit for Tcl"
+#~ msgstr "Interfaz gráfico del usuario para FluidSynth"
+
+#, fuzzy
+#~ msgid "Graphical user interface toolkit for Perl"
+#~ msgstr "Interfaz gráfico del usuario para FluidSynth"
+
+#, fuzzy
+#~ msgid "Tk is a Graphical User Interface ToolKit."
+#~ msgstr "Interfaz gráfico del usuario para FluidSynth"
+
+#, fuzzy
+#~ msgid "Standard Tcl Library"
+#~ msgstr "Biblioteca estándar de C++ de GNU"
+
+#, fuzzy
+#~ msgid "Tcl library for XML parsing"
+#~ msgstr "Biblioteca C para interpretar JSON"
+
+#, fuzzy
+#~ msgid "Xterm state machine library"
+#~ msgstr "Biblioteca de sistema de acceso portable"
+
+#, fuzzy
+#~ msgid "Linux KMS-based terminal emulator"
+#~ msgstr "Emulador de Terminal Virtual"
+
+#, fuzzy
+#~ msgid "Minimal dumb-terminal emulator"
+#~ msgstr "Emulador de Terminal Virtual"
+
+#, fuzzy
+#~ msgid "Linux command-line utility to control the PC speaker"
+#~ msgstr "Utilidad de línea de mandato para buscar texto en ficheros PDF"
+
+#, fuzzy
+#~ msgid "Terminfo parsing library"
+#~ msgstr "Biblioteca interpretando HTML5"
+
+#, fuzzy
+#~ msgid "Command-line fuzzy-finder"
+#~ msgstr "Cliente WebDAV por mandato lineal"
+
+#, fuzzy
+#~ msgid "Terminal sharing application"
+#~ msgstr "Aplicación de reproducción musical de GNOME"
+
+#, fuzzy
+#~ msgid "Terminal emulator for Wayland"
+#~ msgstr "Emulador de terminal"
+
+#, fuzzy
+#~ msgid "GPU-accelerated terminal emulator"
+#~ msgstr "Emulador de terminal"
+
+#, fuzzy
+#~ msgid "Vim-like text editor"
+#~ msgstr "Editor de texto de GNOME"
+
+#, fuzzy
+#~ msgid "Lightweight C++ IDE"
+#~ msgstr "Cliente ligero Tox"
+
+#, fuzzy
+#~ msgid "GTK+ based text editor"
+#~ msgstr "Editor de texto de GNOME"
+
+#, fuzzy
+#~ msgid "EditorConfig core library written in C"
+#~ msgstr "Biblioteca WebSockets escrita en C"
+
+#, fuzzy
+#~ msgid "Small folding editor"
+#~ msgstr "Editor de sonido"
+
+#, fuzzy
+#~ msgid "Time expression parser"
+#~ msgstr "Biblioteca de expresión regular"
+
+#, fuzzy
+#~ msgid "Timezone database for Python"
+#~ msgstr "Objeto de zona horaria para Perl"
+
+#, fuzzy
+#~ msgid "Python timezone library"
+#~ msgstr "Cliente biblioteca Python MPD"
+
+#, fuzzy
+#~ msgid "Local timezone information for Python"
+#~ msgstr "Enlazando SQLite para Python"
+
+#, fuzzy
+#~ msgid "Implementation of time.monotonic() for Python 2 & < 3.3"
+#~ msgstr "Implementación de una clase simple para Perl"
+
+#, fuzzy
+#~ msgid "Python timestamp library"
+#~ msgstr "Cliente biblioteca Python MPD"
+
+#, fuzzy
+#~ msgid ""
+#~ "Python library for generating and parsing RFC 3339-compliant\n"
+#~ "timestamps."
+#~ msgstr "Biblioteca C para crear e interpretar ficheros de configuración."
+
+#, fuzzy
+#~ msgid "Dates and times for Python"
+#~ msgstr "Enlazando SQLite para Python"
+
+#, fuzzy
+#~ msgid "Python library for parsing ISO 8601 strings"
+#~ msgstr "Biblioteca C para interpretar JSON"
+
+#, fuzzy
+#~ msgid "ASN.1 library"
+#~ msgstr "Biblioteca C JSON"
+
+#, fuzzy
+#~ msgid "PKCS#11 library"
+#~ msgstr "Biblioteca PSYC en C"
+
+#, fuzzy
+#~ msgid "Transport layer security library"
+#~ msgstr "Biblioteca cliente del Demonio de Reproductor Musical"
+
+#, fuzzy
+#~ msgid "SSL/TLS implementation"
+#~ msgstr "Implementación JSON en C"
+
+#, fuzzy
+#~ msgid "OpenSSL is an implementation of SSL/TLS."
+#~ msgstr "Implementado indizada paralela de LZMA"
+
+#, fuzzy
+#~ msgid "ACME protocol implementation in Python"
+#~ msgstr "Implementación JSON en C"
+
+#, fuzzy
+#~ msgid "Perl extension for using OpenSSL"
+#~ msgstr "Rutinas de conversión de fecha Perl"
+
+#, fuzzy
+#~ msgid "Small TLS library"
+#~ msgstr "Biblioteca C JSON"
+
+#, fuzzy
+#~ msgid "Terminal multiplexer"
+#~ msgstr "Emulador de terminal"
+
+#, fuzzy
+#~ msgid "Collection of themes for Tmux"
+#~ msgstr "Colección de utilidades para el núcleo Linux"
+
+#, fuzzy
+#~ msgid "Various amusing text filters"
+#~ msgstr "Filtro de texto para una vaca hablante"
+
+#, fuzzy
+#~ msgid "Let it snow on the desktop"
+#~ msgstr "Utilidades para configurar el escritorio de GNOME"
+
+#, fuzzy
+#~ msgid "Tryton module for purchase"
+#~ msgstr "Módulo DSV para Guile"
+
+#, fuzzy
+#~ msgid "This package provides a Tryton module that defines the Purchase model."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "Library to access a Tryton server as a client"
+#~ msgstr "Biblioteca para acceso por conexión a varias API de servicio"
+
+#, fuzzy
+#~ msgid "This package provides a library to access Tryton server as a client."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "UPnP protocol client library"
+#~ msgstr "Cliente biblioteca Python MPD"
+
+#, fuzzy
+#~ msgid "UUCP protocol implementation"
+#~ msgstr "Implementación completa de ajedrez"
+
+#, fuzzy
+#~ msgid "Debugging and profiling tool suite"
+#~ msgstr "Biblioteca utilitaria para Netlink"
+
+#, fuzzy
+#~ msgid "Quick Time Library"
+#~ msgstr "Biblioteca de Motor de Búsqueda"
+
+#, fuzzy
+#~ msgid "Tools for handling MPEG"
+#~ msgstr "Biblioteca para manipulación de ficheros JPEG"
+
+#, fuzzy
+#~ msgid "MMS stream protocol library"
+#~ msgstr "Biblioteca de abstracción de Sip"
+
+#, fuzzy
+#~ msgid "Video processing library"
+#~ msgstr "Biblioteca de procesamiento Speex"
+
+#, fuzzy
+#~ msgid "H.265 video codec implementation"
+#~ msgstr "Reimplementación de XAudio"
+
+#, fuzzy
+#~ msgid "Touchscreen access library"
+#~ msgstr "Biblioteca de sistema de acceso portable"
+
+#, fuzzy
+#~ msgid "Advanced MPEG editing and manipulation library"
+#~ msgstr "Biblioteca para procesado y manipulación de CSS2"
+
+#, fuzzy
+#~ msgid "ASCII-art library"
+#~ msgstr "Biblioteca C JSON"
+
+#, fuzzy
+#~ msgid "MPEG1 and MPEG2 video decoder library"
+#~ msgstr "Decodificador MPEG-4 y MPEG-2 AAC"
+
+#, fuzzy
+#~ msgid "H.264 video coding library"
+#~ msgstr "Biblioteca de dibujo 2D"
+
+#, fuzzy
+#~ msgid "Library for encoding h.265/HEVC video streams"
+#~ msgstr "Biblioteca para manipulación de ficheros PNG"
+
+#, fuzzy
+#~ msgid "Subtitle rendering library for the ASS/SSA format"
+#~ msgstr "Interpreta biblioteca para texto en formato Pod"
+
+#, fuzzy
+#~ msgid "Video acceleration library"
+#~ msgstr "Biblioteca de abstracción de Sip"
+
+#, fuzzy
+#~ msgid "Collection of testing utilities for VA-API"
+#~ msgstr "Colección de utilidades para el núcleo Linux"
+
+#, fuzzy
+#~ msgid "GUI (Graphical User Interface) for @command{youtube-dl}"
+#~ msgstr "Interfaz gráfico del usuario para FluidSynth"
+
+#, fuzzy
+#~ msgid "Library for reading video DVDs"
+#~ msgstr "Biblioteca para manipulación de ficheros PNG"
+
+#, fuzzy
+#~ msgid "Library for video DVD navigation features"
+#~ msgstr "Biblioteca para generación de ficheros PDF"
+
+#, fuzzy
+#~ msgid "Library for accessing DVDs as block devices"
+#~ msgstr "Biblioteca para acceso por conexión a varias API de servicio"
+
+#, fuzzy
+#~ msgid "Video editor"
+#~ msgstr "Editor de sonido"
+
+#, fuzzy
+#~ msgid "Video processing framework"
+#~ msgstr "Programa para procesamiento de texto"
+
+#, fuzzy
+#~ msgid "Command-line interface for Twitch.tv"
+#~ msgstr "Interfaz de mandato lineal para libtocc"
+
+#, fuzzy
+#~ msgid "SDL MPEG decoding library"
+#~ msgstr "Biblioteca renderizadora de PDF"
+
+#, fuzzy
+#~ msgid "Library for decrypting certain Blu-Ray discs"
+#~ msgstr "Biblioteca para generación de ficheros PDF"
+
+#, fuzzy
+#~ msgid "H264 decoder library"
+#~ msgstr "Biblioteca vectorial bit"
+
+#, fuzzy
+#~ msgid "Library for retrieving media metadata"
+#~ msgstr "Biblioteca para interpretación del formato FreeHand"
+
+#, fuzzy
+#~ msgid "Utility for reading media metadata"
+#~ msgstr "Utilidad para paralelos descargando ficheros"
+
+#, fuzzy
+#~ msgid "Cross-platform wrapper around ffmpeg/libav"
+#~ msgstr "Plataforma de biblioteca de sonido cruzada"
+
+#, fuzzy
+#~ msgid "Video stabilization library"
+#~ msgstr "Biblioteca de abstracción de Sip"
+
+#, fuzzy
+#~ msgid "Snippet support for Vim"
+#~ msgstr "Capacidad Babel para inglés"
+
+#, fuzzy
+#~ msgid "Context filetype library for Vim"
+#~ msgstr "Cliente biblioteca Redis para Guile"
+
+#, fuzzy
+#~ msgid "Collection of themes for Vim-airline"
+#~ msgstr "Colección de utilidades para el núcleo Linux"
+
+#, fuzzy
+#~ msgid "EditorConfig plugin for Vim"
+#~ msgstr "Complementos LV2 para usar live"
+
+#, fuzzy
+#~ msgid "This package provides support for GNU Guix in Vim."
+#~ msgstr "Este paquete proporciona un diccionario para el comprobador ortográfico GNU Aspell."
+
+#, fuzzy
+#~ msgid "Compiler for the V programming language"
+#~ msgstr "Manual de referencia para el lenguaje de programación C"
+
+#, fuzzy
+#~ msgid "Virtual private network daemon"
+#~ msgstr "Intercambio de red virtual"
+
+#, fuzzy
+#~ msgid "Command-line client for ProtonVPN"
+#~ msgstr "Cliente WebDAV por mandato lineal"
+
+#, fuzzy
+#~ msgid "Tools and utilities for Vulkan"
+#~ msgstr "Herramientas y documentación para traducción"
+
+#, fuzzy
+#~ msgid "Text-mode web browser"
+#~ msgstr "Explorador web GNOME"
+
+#, fuzzy
+#~ msgid "Lightweight graphical web browser"
+#~ msgstr "Servidor ligero HTTP"
+
+#, fuzzy
+#~ msgid "Text Web Browser"
+#~ msgstr "Explorador web"
+
+#, fuzzy
+#~ msgid "Fast and lightweight Vim-like web browser"
+#~ msgstr "Visor de imagen ligero y rápido basado en imlib2"
+
+#, fuzzy
+#~ msgid "Non-interactive command-line utility for downloading files"
+#~ msgstr "Ejecución interactiva de programa por línea de mandato"
+
+#, fuzzy
+#~ msgid "Implementation of the Windows API (32-bit only)"
+#~ msgstr "Implementación de DOM W3C"
+
+#, fuzzy
+#~ msgid "Implementation of the Windows API (WoW64 version)"
+#~ msgstr "Implementación de DOM W3C"
+
+#, fuzzy
+#~ msgid "Patchset for Wine"
+#~ msgstr "Parche APNG para libpng"
+
+#, fuzzy
+#~ msgid "Data analysis library"
+#~ msgstr "Biblioteca abstracta de BD"
+
+#, fuzzy
+#~ msgid "Add read support for dbf files to agate"
+#~ msgstr "Compatibilidad CMap para ficheros PDF"
+
+#, fuzzy
+#~ msgid "Lightweight screen locker"
+#~ msgstr "Servidor ligero HTTP"
+
+#, fuzzy
+#~ msgid "Small and fast window manager"
+#~ msgstr "Visor de imagen simple y rápido para X"
+
+#, fuzzy
+#~ msgid "Library for registering global keyboard shortcuts"
+#~ msgstr "Biblioteca para interpretación del formato AbiWord"
+
+#, fuzzy
+#~ msgid "StumpWM interactive shell"
+#~ msgstr "El shell interactivo amigable"
+
+#, fuzzy
+#~ msgid "This package provides a StumpWM interactive shell."
+#~ msgstr "El shell interactivo amigable"
+
+#, fuzzy
+#~ msgid "Implementation of TTF font rendering for Lisp"
+#~ msgstr "Implementación del algoritmo de compresión Brotli"
+
+#, fuzzy
+#~ msgid "Modeline support for network connectivity"
+#~ msgstr "Applet para gestión de conexiones de red"
+
+#, fuzzy
+#~ msgid "Displays a notification on the screen"
+#~ msgstr "Enseña información sobre dispositivos ACPI"
+
+#, fuzzy
+#~ msgid "Cross platform GUI toolkit for Python"
+#~ msgstr "Plataforma cruzada de biblioteca MIDI para C++"
+
+#, fuzzy
+#~ msgid "Python 2 Bindings for wxWidgets"
+#~ msgstr "Enlace Python para cairo"
+
+#, fuzzy
+#~ msgid "C++ library to create, manipulate and render SVG files"
+#~ msgstr "Biblioteca C para manipulador de ficheros tar POSIX"
+
+#, fuzzy
+#~ msgid "Command line interface to X11 clipboard"
+#~ msgstr "Interfaz de mandato lineal para libtocc"
+
+#, fuzzy
+#~ msgid "X virtual keyboard library"
+#~ msgstr "Biblioteca vectorial bit"
+
+#, fuzzy
+#~ msgid "Low-level pixel manipulation library"
+#~ msgstr "Biblioteca para procesado y manipulación de CSS2"
+
+#, fuzzy
+#~ msgid "Direct rendering userspace library"
+#~ msgstr "Biblioteca renderizadora de PDF"
+
+#, fuzzy
+#~ msgid "Multitouch protocol translation library"
+#~ msgstr "Biblioteca abstracta de origen de datos"
+
+#, fuzzy
+#~ msgid "Application startup notification and feedback library"
+#~ msgstr "Configuración aplicación Guile interpretando biblioteca"
+
+#, fuzzy
+#~ msgid "Command-line screen capture utility for X Window System"
+#~ msgstr "Clon del kit de herramientas Motif para el sistema de ventanas X"
+
+#, fuzzy
+#~ msgid "Screenshot utility for X Window System"
+#~ msgstr "Clon del kit de herramientas Motif para el sistema de ventanas X"
+
+#, fuzzy
+#~ msgid "Screen locker for the X Window System"
+#~ msgstr "Clon del kit de herramientas Motif para el sistema de ventanas X"
+
+#, fuzzy
+#~ msgid "Adjust the color temperature of your screen"
+#~ msgstr "Toma cuadros en su pantalla"
+
+#, fuzzy
+#~ msgid "Manipulate X selection"
+#~ msgstr "Puente manipulador Ethernet"
+
+#, fuzzy
+#~ msgid "Application launcher"
+#~ msgstr "Aplicación contenedora de servicio"
+
+#, fuzzy
+#~ msgid "Lightweight task bar"
+#~ msgstr "Servidor ligero HTTP"
+
+#, fuzzy
+#~ msgid "Print messages on your screen"
+#~ msgstr "Toma cuadros en su pantalla"
+
+#, fuzzy
+#~ msgid "Simple X11 menu"
+#~ msgstr "Visor Imagen X Simple"
+
+#, fuzzy
+#~ msgid "Xorg settings daemon"
+#~ msgstr "GNOME configurando demonios"
+
+#, fuzzy
+#~ msgid "Basic utility library for Xfce"
+#~ msgstr "Biblioteca utilitaria para NetSurf"
+
+#, fuzzy
+#~ msgid "Widgets library for Xfce"
+#~ msgstr "Biblioteca descodificante para ficheros GIF"
+
+#, fuzzy
+#~ msgid "Extension library for Xfce"
+#~ msgstr "Biblioteca descodificante para ficheros GIF"
+
+#, fuzzy
+#~ msgid "Implementation of the freedesktop.org menu specification"
+#~ msgstr "Herramienta para implementar la especificación de nombrado de iconos de Freedesktop"
+
+#, fuzzy
+#~ msgid "Clipboard manager for Xfce"
+#~ msgstr "Gestor de pantalla para GNOME"
+
+#, fuzzy
+#~ msgid "Xfce application finder"
+#~ msgstr "Almacenamiento de preferencias de aplicaciones"
+
+#, fuzzy
+#~ msgid "Xfce session manager"
+#~ msgstr "Gestor de sesiones de aplicaciones de sonido"
+
+#, fuzzy
+#~ msgid "Xfce terminal emulator"
+#~ msgstr "Emulador de terminal"
+
+#, fuzzy
+#~ msgid "Fast and lightweight picture-viewer"
+#~ msgstr "Visor de imagen ligero y rápido basado en imlib2"
+
+#, fuzzy
+#~ msgid "Simple calendar application with reminders"
+#~ msgstr "Aplicación calendario de GNOME"
+
+#, fuzzy
+#~ msgid "Screensaver for the Xfce desktop"
+#~ msgstr "Iconos para el escritorio GNOME."
+
+#, fuzzy
+#~ msgid "Music Player Daemon plugin for the Xfce panel"
+#~ msgstr "Cliente del Demonio Reproductor Musical"
+
+#, fuzzy
+#~ msgid "Stream-oriented XML parser library written in C"
+#~ msgstr "Biblioteca WebSockets escrita en C"
+
+#, fuzzy
+#~ msgid "C++ library to parse EBML files"
+#~ msgstr "Biblioteca para interpretar ficheros SVG"
+
+#, fuzzy
+#~ msgid "C parser for XML"
+#~ msgstr "Interprete CommonMark para Guile"
+
+#, fuzzy
+#~ msgid "C++ bindings for libxml2"
+#~ msgstr "Enlaces binarios para liblo"
+
+#, fuzzy
+#~ msgid "Python bindings for the libxml2 library"
+#~ msgstr "Enlaces binarios para liblo"
+
+#, fuzzy
+#~ msgid "Atom feed and API implementation"
+#~ msgstr "Reimplementación de XAudio"
+
+#, fuzzy
+#~ msgid "Simplified interface to XML::Parser"
+#~ msgstr "Interfaz SQlite para Perl"
+
+#, fuzzy
+#~ msgid "Perl modules for working with XML"
+#~ msgstr "Módulos Perl para la WWW"
+
+#, fuzzy
+#~ msgid "Perl interface to libxml2"
+#~ msgstr "Interfaz Perl para Amazon S3"
+
+#, fuzzy
+#~ msgid "Base class for SAX Drivers and Filters"
+#~ msgstr "Clase base para manipulado de error"
+
+#, fuzzy
+#~ msgid "Base-class for SOAP implementations"
+#~ msgstr "Implementación completa de ajedrez"
+
+#, fuzzy
+#~ msgid "XML Security Library"
+#~ msgstr "Cliente biblioteca CMIS"
+
+#, fuzzy
+#~ msgid "Small XML parsing library"
+#~ msgstr "Biblioteca interpretando HTML5"
+
+#, fuzzy
+#~ msgid "Command line XML toolkit"
+#~ msgstr "Cliente WebDAV por mandato lineal"
+
+#, fuzzy
+#~ msgid "Command line utilities to manipulate HTML and XML files"
+#~ msgstr "Utilidades de línea de mandato para codificar, inspeccionar y decodificar ficheros .opus"
+
+#, fuzzy
+#~ msgid "XLSX to CSV converter"
+#~ msgstr "Conversor PDF a SVG"
+
+#, fuzzy
+#~ msgid "Validating XML parser library for C++"
+#~ msgstr "Biblioteca interpreta fichero de configuración"
+
+#, fuzzy
+#~ msgid "C library for reading and writing .xlsx files"
+#~ msgstr "Biblioteca C para crear e interpretar ficheros de configuración."
+
+#, fuzzy
+#~ msgid "XML serialization framework for Java"
+#~ msgstr "Impresión para marco de trabajo de GNOME"
+
+#, fuzzy
+#~ msgid "XPath library"
+#~ msgstr "Biblioteca de gráficos 2D"
+
+#, fuzzy
+#~ msgid "XML pull parser"
+#~ msgstr "Clase interpretada HTML en Perl"
+
+#, fuzzy
+#~ msgid "StAX implementation for JSON"
+#~ msgstr "Implementación Log4j para Perl"
+
+#, fuzzy
+#~ msgid "XML serialization library"
+#~ msgstr "Biblioteca de Categoría Textual"
+
+#, fuzzy
+#~ msgid "Python XML processing library"
+#~ msgstr "Cliente biblioteca Python MPD"
+
+#, fuzzy
+#~ msgid "XML Schema validator and data conversion library"
+#~ msgstr "Biblioteca de conversión de conjunto de caracteres"
+
+#, fuzzy
+#~ msgid "Source code configuration and build system"
+#~ msgstr "Sistema de gestión de configuración de software"
+
+#, fuzzy
+#~ msgid "Symlink directory into tree"
+#~ msgstr "Directorio Perl listando intérprete"
+
+#, fuzzy
+#~ msgid "Xorg font encoding files"
+#~ msgstr "Comparando y uniendo ficheros"
+
+#, fuzzy
+#~ msgid "Xorg font encoding files."
+#~ msgstr "Comparando y uniendo ficheros"
+
+#, fuzzy
+#~ msgid "Xorg DMX library"
+#~ msgstr "Biblioteca E/S del sonido"
+
+#, fuzzy
+#~ msgid "Xorg shared memory fences library"
+#~ msgstr "Biblioteca de sistema de acceso portable"
+
+#, fuzzy
+#~ msgid "Xorg font encoding library"
+#~ msgstr "Biblioteca renderizadora de PDF"
+
+#, fuzzy
+#~ msgid "Xorg font encoding library."
+#~ msgstr "Biblioteca renderizadora de PDF"
+
+#, fuzzy
+#~ msgid "Xorg Font Service client library"
+#~ msgstr "Cliente biblioteca Python MPD"
+
+#, fuzzy
+#~ msgid "Xorg PCI access library"
+#~ msgstr "Biblioteca de sistema de acceso portable"
+
+#, fuzzy
+#~ msgid "Xorg Generic PCI access library."
+#~ msgstr "Biblioteca de sistema de acceso portable"
+
+#, fuzzy
+#~ msgid "Xorg Session Management library"
+#~ msgstr "Biblioteca de cadena interna"
+
+#, fuzzy
+#~ msgid "Xorg Session Management library."
+#~ msgstr "Biblioteca de cadena interna"
+
+#~ msgid "Xorg WindowsWM library"
+#~ msgstr "Biblioteca WindowsWM de Xorg"
+
+#~ msgid "Xorg Composite library"
+#~ msgstr "Biblioteca Composite de Xorg"
+
+#, fuzzy
+#~ msgid "Xorg XKB file handling library"
+#~ msgstr "Fichero Mod reproduciendo biblioteca"
+
+#, fuzzy
+#~ msgid "Xorg XKB file handling library."
+#~ msgstr "Fichero Mod reproduciendo biblioteca"
+
+#~ msgid "Xorg Xmu library"
+#~ msgstr "Biblioteca Xmu de Xorg"
+
+#~ msgid "Xorg XPM library"
+#~ msgstr "Biblioteca XPM de Xorg"
+
+#, fuzzy
+#~ msgid "Xorg Resource extension library"
+#~ msgstr "Biblioteca de expresión regular"
+
+#, fuzzy
+#~ msgid "X Resource extension library."
+#~ msgstr "Biblioteca de expresión regular"
+
+#, fuzzy
+#~ msgid "Xorg Screen Saver library"
+#~ msgstr "Biblioteca de módulo jugador"
+
+#, fuzzy
+#~ msgid "X11 Screen Saver extension client library."
+#~ msgstr "Biblioteca cliente del Demonio de Reproductor Musical"
+
+#, fuzzy
+#~ msgid "Session Manager Proxy"
+#~ msgstr "Gestor de sesión para GNOME"
+
+#, fuzzy
+#~ msgid "Hand calculator for the X Window system"
+#~ msgstr "Clon del kit de herramientas Motif para el sistema de ventanas X"
+
+#, fuzzy
+#~ msgid "Wrapper library for evdev devices"
+#~ msgstr "Biblioteca cubierta para imlib2"
+
+#, fuzzy
+#~ msgid "Xorg server access control utility"
+#~ msgstr "Placa de control de acceso Git"
+
+#, fuzzy
+#~ msgid "Xorg XKB configuration files"
+#~ msgstr "Obtiene directorios de ficheros de configuración"
+
+#, fuzzy
+#~ msgid "Xorg SGML documentation tools"
+#~ msgstr "Herramientas documentales Yelp"
+
+#, fuzzy
+#~ msgid "Command line interface to X RandR extension"
+#~ msgstr "Interfaz de mandato lineal para libtocc"
+
+#, fuzzy
+#~ msgid "Xorg Damage Extension library"
+#~ msgstr "Biblioteca de compresión"
+
+#, fuzzy
+#~ msgid "Xorg Common extensions library"
+#~ msgstr "Biblioteca de compresión"
+
+#, fuzzy
+#~ msgid "Xorg Xinerama protocol library"
+#~ msgstr "Biblioteca utilitaria para Netlink"
+
+#, fuzzy
+#~ msgid "Xorg Print Client library"
+#~ msgstr "Cliente biblioteca Python MPD"
+
+#, fuzzy
+#~ msgid "Xorg Print Client library."
+#~ msgstr "Cliente biblioteca Python MPD"
+
+#, fuzzy
+#~ msgid "Xorg Render Extension library"
+#~ msgstr "Biblioteca de expresión regular"
+
+#, fuzzy
+#~ msgid "Xorg library for Xtest and Record extensions"
+#~ msgstr "Interpreta biblioteca para texto en formato Pod"
+
+#, fuzzy
+#~ msgid "Xorg XVideo Extension library"
+#~ msgstr "Biblioteca descompresora GIF"
+
+#, fuzzy
+#~ msgid "Xorg Inter-Client Exchange library"
+#~ msgstr "Biblioteca de cadena interna"
+
+#, fuzzy
+#~ msgid "Xorg Inter-Client Exchange library."
+#~ msgstr "Biblioteca de cadena interna"
+
+#, fuzzy
+#~ msgid "Xorg Authorization library"
+#~ msgstr "Biblioteca de Categoría Textual"
+
+#, fuzzy
+#~ msgid "Xorg Fixes Extension library"
+#~ msgstr "Biblioteca de compresión"
+
+#, fuzzy
+#~ msgid "Xorg Font handling library"
+#~ msgstr "Biblioteca renderizadora de PDF"
+
+#, fuzzy
+#~ msgid "Xorg Input Extension library"
+#~ msgstr "Biblioteca de visión de computación"
+
+#~ msgid "Xorg XvMC library"
+#~ msgstr "Biblioteca XvMC de Xorg"
+
+#~ msgid "Xorg XvMC library."
+#~ msgstr "Biblioteca XvMC de Xorg."
+
+#~ msgid "Xorg implementation of the X Window System"
+#~ msgstr "Implementación de Xorg del sistema de ventanas X"
+
+#, fuzzy
+#~ msgid "Xorg Cursor management library"
+#~ msgstr "Biblioteca de cadena interna"
+
+#, fuzzy
+#~ msgid "Xorg Cursor management library."
+#~ msgstr "Biblioteca de cadena interna"
+
+#, fuzzy
+#~ msgid "Xorg Xaw library"
+#~ msgstr "Biblioteca de dibujo 2D"
+
+#, fuzzy
+#~ msgid "Xorg Xaw3d library"
+#~ msgstr "Biblioteca de sistema de acceso portable"
+
+#, fuzzy
+#~ msgid "Perl bindings for libxcb"
+#~ msgstr "Enlaces binarios para liblo"
+
+#~ msgid "Lightweight Emacs clone"
+#~ msgstr "Clon ligero de Emacs"
+
+#, fuzzy
+#~ msgid "Run the Music Player Daemon (MPD)."
+#~ msgstr "Demonio de Reproductor de Música"
+
+#~ msgid "Run the GNOME desktop environment."
+#~ msgstr "Ejecuta el entorno de escritorio GNOME."
+
+#~ msgid "Run the MATE desktop environment."
+#~ msgstr "Ejecuta el entorno de escritorio MATE."
+
+#~ msgid "Run the Xfce desktop environment."
+#~ msgstr "Ejecuta el entorno de escritorio Xfce."
+
+#~ msgid "Run LXQt desktop environment."
+#~ msgstr "Ejecuta el entorno de escritorio LXQt."
+
+#~ msgid "Run the Hurd console client."
+#~ msgstr "Ejecuta el cliente de consola de Hurd."
+
+#~ msgid "Load kernel modules."
+#~ msgstr "Carga módulos del núcleo."
+
+#, fuzzy
+#~ msgid "Run TLP, a power management tool."
+#~ msgstr "Herramienta de gestor de energía para Linux"
+
+#~ msgid "Run the nginx Web server."
+#~ msgstr "Ejecuta el servidor web nginx."
+
+#~ msgid "Run the hpcguix-web server."
+#~ msgstr "Ejecuta el servidor hpcguix-web."
+
+#~ msgid "Retired backup program"
+#~ msgstr "Programa de copias de seguridad retirado"
+
+#~ msgid "Jabber (XMPP) client"
+#~ msgstr "Cliente Jabber (XMPP)"
+
+#~ msgid "Python bindings for Poppler-Qt4"
+#~ msgstr "Enlaces binarios para Poppler-Qt4"
+
 #~ msgid "The GNU C Library (GNU Hurd variant)"
 #~ msgstr "La biblioteca GNU C (variantes GNU Hurd)"
 
 #~ msgid "Easy and secure backup program"
 #~ msgstr "Programa de respaldo seguro y sencillo"
-
-#~ msgid "Software speech synthesizer"
-#~ msgstr "Sintetizador pronunciador de software"
diff --git a/po/packages/fr.po b/po/packages/fr.po
index 86284c547a..082c64465f 100644
--- a/po/packages/fr.po
+++ b/po/packages/fr.po
@@ -1,14 +1,14 @@
 # French translation of guix-packages.
-# Copyright (C) 2014 Free Software Foundation, Inc.
+# Copyright (C) 2014 the authors of Guix (msgids)
 # This file is distributed under the same license as the guix package.
 # Rémy Chevalier <remychevalier@laposte.net>, 2014.
 # Julien Lepiller <julien@lepiller.eu>, 2018, 2020.
 msgid ""
 msgstr ""
-"Project-Id-Version: guix-packages 1.1.0-pre2\n"
-"Report-Msgid-Bugs-To: ludo@gnu.org\n"
-"POT-Creation-Date: 2020-04-09 18:27+0200\n"
-"PO-Revision-Date: 2020-04-13 16:44+0200\n"
+"Project-Id-Version: guix-packages 1.2.0-pre3\n"
+"Report-Msgid-Bugs-To: bug-guix@gnu.org\n"
+"POT-Creation-Date: 2020-11-05 17:27+0100\n"
+"PO-Revision-Date: 2020-11-08 21:59+0100\n"
 "Last-Translator: Julien Lepiller <julien@lepiller.eu>\n"
 "Language-Team: French <traduc@traduc.org>\n"
 "Language: fr\n"
@@ -38,11 +38,11 @@ msgstr ""
 "pour votre travail quotidien, vos besoins personnels ou juste pour\n"
 "le plaisir de taper."
 
-#: gnu/packages/aspell.scm:89 gnu/packages/libreoffice.scm:833
+#: gnu/packages/aspell.scm:85 gnu/packages/libreoffice.scm:846
 msgid "Spell checker"
 msgstr "Correcteur orthographique"
 
-#: gnu/packages/aspell.scm:91
+#: gnu/packages/aspell.scm:87
 msgid ""
 "Aspell is a spell-checker which can be used either as a library or as\n"
 "a standalone program.  Notable features of Aspell include its full support of\n"
@@ -54,13 +54,14 @@ msgstr ""
 "des documents encodés UTF-8 et la possibilité d'utiliser plusieurs dictionnaires\n"
 "y compris personnels."
 
-#: gnu/packages/aspell.scm:140
+#: gnu/packages/aspell.scm:136
 msgid "This package provides a dictionary for the GNU Aspell spell checker."
 msgstr ""
 "Ce paquet fournit un dictionnaire pour le correcteur orthographique\n"
 "GNU Aspell."
 
-#: gnu/packages/aspell.scm:418 gnu/packages/libreoffice.scm:883
+#: gnu/packages/aspell.scm:425 gnu/packages/libreoffice.scm:896
+#: gnu/packages/libreoffice.scm:969
 msgid ""
 "This package provides a dictionary for the Hunspell spell-checking\n"
 "library."
@@ -68,52 +69,156 @@ msgstr ""
 "Ce paquet fournit un dictionnaire pour le correcteur orthographique\n"
 "Hunspell."
 
-#: gnu/packages/aspell.scm:436
+#: gnu/packages/aspell.scm:443
 msgid "Hunspell dictionary for English"
 msgstr "Dictionnaire Hunspell pour l'anglais"
 
-#: gnu/packages/aspell.scm:440
+#: gnu/packages/aspell.scm:447
 msgid "Hunspell dictionary for Australian English"
 msgstr "Dictionnaire Hunspell pour l'anglais australien"
 
-#: gnu/packages/aspell.scm:444
+#: gnu/packages/aspell.scm:451
 msgid "Hunspell dictionary for Canadian English"
 msgstr "Dictionnaire Hunspell pour l'anglais canadien"
 
-#: gnu/packages/aspell.scm:448
+#: gnu/packages/aspell.scm:455
 msgid "Hunspell dictionary for British English, with -ise endings"
 msgstr "Dictionnaire Hunspell pour l'anglais britannique, avec des terminaisons en -ise"
 
-#: gnu/packages/aspell.scm:452
+#: gnu/packages/aspell.scm:459
 msgid "Hunspell dictionary for British English, with -ize endings"
 msgstr "Dictionnaire Hunspell pour l'anglais britannique, avec des terminaisons en -ize"
 
-#: gnu/packages/aspell.scm:456
+#: gnu/packages/aspell.scm:463
 msgid "Hunspell dictionary for United States English"
 msgstr "Dictionnaire Hunspell pour l'anglais états-unien"
 
-#: gnu/packages/audio.scm:137 gnu/packages/audio.scm:156
+#: gnu/packages/aspell.scm:506
+msgid "Interactive spell-checking tool for Unix"
+msgstr ""
+
+#: gnu/packages/aspell.scm:507
+msgid ""
+"Ispell is an interactive spell-checking tool supporting many\n"
+"European languages."
+msgstr ""
+
+#: gnu/packages/audio.scm:185
+msgid "Embedded Audio Acceleration"
+msgstr ""
+
+#: gnu/packages/audio.scm:186
+msgid ""
+"OpenSLES is a royalty-free, cross-platform,\n"
+"hardware-accelerated audio API tuned for embedded systems.  It provides a\n"
+"standardized, high-performance, low-latency method to access audio\n"
+"functionality for developers of native applications on embedded mobile\n"
+"multimedia devices, enabling straightforward cross-platform deployment of\n"
+"hardware and software audio capabilities, reducing implementation effort, and\n"
+"promoting the market for advanced audio."
+msgstr ""
+
+#: gnu/packages/audio.scm:221
+msgid "Software Synthesizer"
+msgstr "Synthétiseur logiciel"
+
+#: gnu/packages/audio.scm:222
+msgid ""
+"WildMIDI is a simple software midi player which has a core\n"
+"softsynth library that can be use with other applications."
+msgstr ""
+
+#: gnu/packages/audio.scm:245
+msgid "WebRTC's Audio Processing Library"
+msgstr "Bibliothèque de traitement audio pour WebRTC"
+
+#: gnu/packages/audio.scm:246
+msgid ""
+"WebRTC-Audio-Processing library based on Google's\n"
+"implementation of WebRTC."
+msgstr ""
+
+#: gnu/packages/audio.scm:265
+msgid "VisualOn AAC Encoder"
+msgstr ""
+
+#: gnu/packages/audio.scm:266
+msgid ""
+"VO-AACENC is the VisualOn implementation of Advanced Audio\n"
+"Coding (AAC) encoder."
+msgstr ""
+
+#: gnu/packages/audio.scm:294
+msgid "ALSA interfacing library"
+msgstr "Bibliothèque d'interface pour ALSA"
+
+#: gnu/packages/audio.scm:295
+msgid ""
+"TinyALSA is a small library to interface with ALSA in the\n"
+"Linux kernel."
+msgstr ""
+
+#: gnu/packages/audio.scm:339
+msgid "Audio tracking library"
+msgstr "Bibliothèque de lecture audio"
+
+#: gnu/packages/audio.scm:340
+msgid ""
+"LibOpenMPT is a cross-platform C++ and C module playback\n"
+"library.  It is based on the player code of the Open ModPlug Tracker project."
+msgstr ""
+
+#: gnu/packages/audio.scm:371
+msgid "Open Fingerprint Architecture"
+msgstr ""
+
+#: gnu/packages/audio.scm:372
+msgid ""
+"LibOFA is an audio fingerprint library, created and provided\n"
+"by MusicIP."
+msgstr ""
+
+#: gnu/packages/audio.scm:395
+msgid "Freeware Advanced Audio Coder"
+msgstr ""
+
+#: gnu/packages/audio.scm:396
+msgid "FAAC is an MPEG-4 and MPEG-2 AAC encoder."
+msgstr ""
+
+#: gnu/packages/audio.scm:424
+msgid "MIDI to WAVE converter library"
+msgstr ""
+
+#: gnu/packages/audio.scm:425
+msgid ""
+"LibTiMidity is a MIDI to WAVE converter library that uses\n"
+"Gravis Ultrasound-compatible patch files to generate digital audio data from\n"
+"General MIDI files."
+msgstr ""
+
+#: gnu/packages/audio.scm:449 gnu/packages/audio.scm:468
 msgid "Adaptive Multi Rate Codec"
 msgstr ""
 
-#: gnu/packages/audio.scm:138
+#: gnu/packages/audio.scm:450
 msgid ""
 "VO-AMR is a library of VisualOn implementation of\n"
 "Adaptive Multi Rate Narrowband and Wideband (AMR-NB and AMR-WB) speech codec."
 msgstr ""
 
-#: gnu/packages/audio.scm:157
+#: gnu/packages/audio.scm:469
 msgid ""
 "OpenCore-AMR is a library of OpenCORE Framework\n"
 "implementation of Adaptive Multi Rate Narrowband and Wideband\n"
 "(AMR-NB and AMR-WB) speech codec."
 msgstr ""
 
-#: gnu/packages/audio.scm:203
+#: gnu/packages/audio.scm:528
 msgid "Realtime modular synthesizer and effect processor"
 msgstr "Synthétiseur modulaire en temps réel et traitement d'effets"
 
-#: gnu/packages/audio.scm:205
+#: gnu/packages/audio.scm:530
 msgid ""
 "AlsaModularSynth is a digital implementation of a classical analog\n"
 "modular synthesizer system.  It uses virtual control voltages to control the\n"
@@ -127,11 +232,11 @@ msgstr ""
 "fréquence, par exemple du VCO (Oscillateur commandé en tension) ou du VCF\n"
 "(Filtre contrôlé en tension) suivent la convention de 1 V / Octave."
 
-#: gnu/packages/audio.scm:244
+#: gnu/packages/audio.scm:569
 msgid "Library for audio labelling"
 msgstr "Bibliothèque pour l'étiquetage de fichiers audio"
 
-#: gnu/packages/audio.scm:246
+#: gnu/packages/audio.scm:571
 msgid ""
 "aubio is a tool designed for the extraction of annotations from audio\n"
 "signals.  Its features include segmenting a sound file before each of its\n"
@@ -143,11 +248,11 @@ msgstr ""
 "chaque attaque, à la détection de ton, en passant par l'écoute du rythme\n"
 "et la production de fichiers MIDI à partir d'audio en direct."
 
-#: gnu/packages/audio.scm:370
+#: gnu/packages/audio.scm:695
 msgid "Digital audio workstation"
 msgstr "Station de travail audio numérique"
 
-#: gnu/packages/audio.scm:372
+#: gnu/packages/audio.scm:697
 msgid ""
 "Ardour is a multi-channel digital audio workstation, allowing users to\n"
 "record, edit, mix and master audio and MIDI projects.  It is targeted at audio\n"
@@ -158,11 +263,11 @@ msgstr ""
 "conçu pour les ingénieurs du son, les musiciens, les éditeurs de bandes son et\n"
 "les compositeurs."
 
-#: gnu/packages/audio.scm:511
+#: gnu/packages/audio.scm:836
 msgid "Software for recording and editing sounds"
 msgstr "Logiciel pour enregistrer et modifier des sons"
 
-#: gnu/packages/audio.scm:513
+#: gnu/packages/audio.scm:838
 msgid ""
 "Audacity is a multi-track audio editor designed for recording, playing\n"
 "and editing digital audio.  It features digital effects and spectrum analysis\n"
@@ -172,11 +277,11 @@ msgstr ""
 "et modifier des sons numériques. Il propose des effets numériques et des\n"
 "outils d'analyse spectrale."
 
-#: gnu/packages/audio.scm:556
+#: gnu/packages/audio.scm:893
 msgid "Library to handle various audio file formats"
 msgstr "Bibliothèque pour gérer divers formats de fichiers audio"
 
-#: gnu/packages/audio.scm:557
+#: gnu/packages/audio.scm:894
 msgid ""
 "This is an open-source version of SGI's audiofile library.\n"
 "It provides a uniform programming interface for processing of audio data to\n"
@@ -187,22 +292,22 @@ msgid ""
 "G.711 mu-law and A-law."
 msgstr ""
 
-#: gnu/packages/audio.scm:597
+#: gnu/packages/audio.scm:934
 msgid "Pitch-correction LADSPA audio plugin"
 msgstr ""
 
-#: gnu/packages/audio.scm:599
+#: gnu/packages/audio.scm:936
 msgid ""
 "Autotalent is a LADSPA plugin for real-time pitch-correction.  Among its\n"
 "controls are allowable notes, strength of correction, LFO for vibrato and\n"
 "formant warp."
 msgstr ""
 
-#: gnu/packages/audio.scm:641
+#: gnu/packages/audio.scm:978
 msgid "Tonewheel organ synthesizer"
 msgstr "Synthétiseur d'organe tonewheel"
 
-#: gnu/packages/audio.scm:643
+#: gnu/packages/audio.scm:980
 msgid ""
 "AZR-3 is a port of the free VST plugin AZR-3.  It is a tonewheel organ\n"
 "with drawbars, distortion and rotating speakers.  The organ has three\n"
@@ -211,11 +316,11 @@ msgid ""
 "plugins are provided."
 msgstr ""
 
-#: gnu/packages/audio.scm:680
+#: gnu/packages/audio.scm:1017
 msgid "Audio plug-in pack for LV2 and JACK environments"
 msgstr ""
 
-#: gnu/packages/audio.scm:682
+#: gnu/packages/audio.scm:1019
 msgid ""
 "Calf Studio Gear is an audio plug-in pack for LV2 and JACK environments.\n"
 "The suite contains lots of effects (delay, modulation, signal processing,\n"
@@ -224,41 +329,41 @@ msgid ""
 "tools (analyzer, mono/stereo tools, crossovers)."
 msgstr ""
 
-#: gnu/packages/audio.scm:725
-msgid "LV2 port of the CAPS audio plugin colection"
+#: gnu/packages/audio.scm:1062
+msgid "LV2 port of the CAPS audio plugin collection"
 msgstr "Port LV2 de la collection de greffons audio CAPS"
 
-#: gnu/packages/audio.scm:727
+#: gnu/packages/audio.scm:1064
 msgid ""
 "LV2 port of CAPS, a collection of audio plugins comprising basic virtual\n"
 "guitar amplification and a small range of classic effects, signal processors and\n"
 "generators of mostly elementary and occasionally exotic nature."
 msgstr ""
 
-#: gnu/packages/audio.scm:764
+#: gnu/packages/audio.scm:1101
 msgid "LV2 plugins for live use"
 msgstr ""
 
-#: gnu/packages/audio.scm:766
+#: gnu/packages/audio.scm:1103
 msgid ""
 "The infamous plugins are a collection of LV2 audio plugins for live\n"
 "performances.  The plugins include a cellular automaton synthesizer, an\n"
 "envelope follower, distortion effects, tape effects and more."
 msgstr ""
 
-#: gnu/packages/audio.scm:797
+#: gnu/packages/audio.scm:1134
 msgid "The SWH Plugins package for the LADSPA plugin system"
 msgstr ""
 
-#: gnu/packages/audio.scm:798
+#: gnu/packages/audio.scm:1135
 msgid "This package provides Steve Harris's LADSPA plugins."
 msgstr "Ce paquet fournit le greffon LADSPA de Steve Harris."
 
-#: gnu/packages/audio.scm:838
+#: gnu/packages/audio.scm:1175
 msgid "SWH plugins in LV2 format"
 msgstr ""
 
-#: gnu/packages/audio.scm:840
+#: gnu/packages/audio.scm:1177
 msgid ""
 "Swh-plugins-lv2 is a collection of audio plugins in LV2 format.  Plugin\n"
 "classes include: dynamics (compressor, limiter), time (delay, chorus,\n"
@@ -266,42 +371,56 @@ msgid ""
 "emulation (valve, tape), bit fiddling (decimator, pointer-cast), etc."
 msgstr ""
 
-#: gnu/packages/audio.scm:874
+#: gnu/packages/audio.scm:1244
+msgid "Sound Synthesis with Physical Models"
+msgstr ""
+
+#: gnu/packages/audio.scm:1245
+msgid ""
+"Tao is a software package for sound synthesis using physical\n"
+"models.  It provides a virtual acoustic material constructed from masses and\n"
+"springs which can be used as the basis for building quite complex virtual\n"
+"musical instruments.  Tao comes with a synthesis language for creating and\n"
+"playing instruments and a C++ API for those who would like to use it as an\n"
+"object library."
+msgstr ""
+
+#: gnu/packages/audio.scm:1281
 msgid "Sound and music computing system"
 msgstr ""
 
-#: gnu/packages/audio.scm:876
+#: gnu/packages/audio.scm:1283
 msgid ""
 "Csound is a user-programmable and user-extensible sound processing\n"
 "language and software synthesizer."
 msgstr ""
 
-#: gnu/packages/audio.scm:918 gnu/packages/audio.scm:3219
+#: gnu/packages/audio.scm:1325 gnu/packages/audio.scm:3763
 msgid "C++ wrapper around the ALSA API"
 msgstr ""
 
-#: gnu/packages/audio.scm:920
+#: gnu/packages/audio.scm:1327
 msgid ""
 "clalsadrv is a C++ wrapper around the ALSA API simplifying access to\n"
 "ALSA PCM devices."
 msgstr ""
 
-#: gnu/packages/audio.scm:957
+#: gnu/packages/audio.scm:1364
 msgid "LADSPA ambisonics plugins"
 msgstr ""
 
-#: gnu/packages/audio.scm:959
+#: gnu/packages/audio.scm:1366
 msgid ""
 "The AMB plugins are a set of LADSPA ambisonics plugins, mainly to be\n"
 "used within Ardour.  Features include: mono and stereo to B-format panning,\n"
 "horizontal rotator, square, hexagon and cube decoders."
 msgstr ""
 
-#: gnu/packages/audio.scm:994
+#: gnu/packages/audio.scm:1401
 msgid "Chorus, phaser, and vintage high-pass and low-pass filters"
 msgstr ""
 
-#: gnu/packages/audio.scm:996
+#: gnu/packages/audio.scm:1403
 msgid ""
 "This package provides various LADSPA plugins.  @code{cs_chorus} and\n"
 "@code{cs_phaser} provide chorus and phaser effects, respectively;\n"
@@ -311,21 +430,21 @@ msgid ""
 "the non-linear circuit elements of their original analog counterparts."
 msgstr ""
 
-#: gnu/packages/audio.scm:1034
+#: gnu/packages/audio.scm:1441
 msgid "LADSPA reverb plugin"
 msgstr ""
 
-#: gnu/packages/audio.scm:1036
+#: gnu/packages/audio.scm:1443
 msgid ""
 "This package provides a stereo reverb LADSPA plugin based on the\n"
 "well-known greverb."
 msgstr ""
 
-#: gnu/packages/audio.scm:1070
+#: gnu/packages/audio.scm:1477
 msgid "LADSPA four-band parametric equalizer plugin"
 msgstr ""
 
-#: gnu/packages/audio.scm:1072
+#: gnu/packages/audio.scm:1479
 msgid ""
 "This package provides a LADSPA plugin for a four-band parametric\n"
 "equalizer.  Each section has an active/bypass switch, frequency, bandwidth and\n"
@@ -340,11 +459,11 @@ msgid ""
 "for stage use."
 msgstr ""
 
-#: gnu/packages/audio.scm:1115
+#: gnu/packages/audio.scm:1522
 msgid "LADSPA stereo width plugin"
 msgstr ""
 
-#: gnu/packages/audio.scm:1117
+#: gnu/packages/audio.scm:1524
 msgid ""
 "This package provides a LADSPA plugin to manipulate the stereo width of\n"
 "audio signals."
@@ -352,11 +471,11 @@ msgstr ""
 "Ce paquet fournit des un greffon LADSPA pour manipuler la profondeur\n"
 "des signaux audio."
 
-#: gnu/packages/audio.scm:1152
+#: gnu/packages/audio.scm:1559
 msgid "LADSPA plugin for synthesizer oscillators"
 msgstr ""
 
-#: gnu/packages/audio.scm:1154
+#: gnu/packages/audio.scm:1561
 msgid ""
 "The @code{blvco} LADSPA plugin provides three anti-aliased oscillators:\n"
 "\n"
@@ -371,11 +490,11 @@ msgid ""
 "output of analog synthesizers such as the Moog Voyager."
 msgstr ""
 
-#: gnu/packages/audio.scm:1196
+#: gnu/packages/audio.scm:1603
 msgid "LADSPA Autowah effect plugin"
 msgstr ""
 
-#: gnu/packages/audio.scm:1198
+#: gnu/packages/audio.scm:1605
 msgid ""
 "This package provides a LADSPA plugin for a Wah effect with envelope\n"
 "follower."
@@ -383,19 +502,19 @@ msgstr ""
 "Ce paquet fournit un greffon LADSPA pour l'effet Wah avec un suiveur\n"
 "d'enveloppe."
 
-#: gnu/packages/audio.scm:1232
+#: gnu/packages/audio.scm:1639
 msgid "LADSPA stereo reverb plugin"
 msgstr ""
 
-#: gnu/packages/audio.scm:1234
+#: gnu/packages/audio.scm:1641
 msgid "This package provides a LADSPA plugin for a stereo reverb effect."
 msgstr "Ce paquet fournit un greffon LADSPA pour l'effet stereo reverb."
 
-#: gnu/packages/audio.scm:1273
+#: gnu/packages/audio.scm:1680
 msgid "SoundFont synthesizer"
 msgstr ""
 
-#: gnu/packages/audio.scm:1275
+#: gnu/packages/audio.scm:1682
 msgid ""
 "FluidSynth is a real-time software synthesizer based on the SoundFont 2\n"
 "specifications.  FluidSynth reads and handles MIDI events from the MIDI input\n"
@@ -403,39 +522,37 @@ msgid ""
 "also play midifiles using a Soundfont."
 msgstr ""
 
-#: gnu/packages/audio.scm:1311
+#: gnu/packages/audio.scm:1719
 msgid "MPEG-4 and MPEG-2 AAC decoder"
 msgstr ""
 
-#: gnu/packages/audio.scm:1313
-msgid ""
-"FAAD2 is an MPEG-4 and MPEG-2 AAC decoder supporting LC, Main, LTP, SBR,\n"
-"PS, and DAB+."
+#: gnu/packages/audio.scm:1721
+msgid "FAAD2 is an MPEG-4 and MPEG-2 AAC decoder supporting LC, Main, LTP, SBR, -PS, and DAB+."
 msgstr ""
 
-#: gnu/packages/audio.scm:1353
+#: gnu/packages/audio.scm:1760
 msgid "Signal processing language"
 msgstr ""
 
-#: gnu/packages/audio.scm:1355
+#: gnu/packages/audio.scm:1762
 msgid "Faust is a programming language for realtime audio signal processing."
 msgstr ""
 
-#: gnu/packages/audio.scm:1422
+#: gnu/packages/audio.scm:1829
 msgid "GUS compatible patches for MIDI players"
 msgstr ""
 
-#: gnu/packages/audio.scm:1424
+#: gnu/packages/audio.scm:1831
 msgid ""
 "FreePats is a project to create a free and open set of GUS compatible\n"
 "patches that can be used with softsynths such as Timidity and WildMidi."
 msgstr ""
 
-#: gnu/packages/audio.scm:1489
+#: gnu/packages/audio.scm:1883
 msgid "Virtual guitar amplifier"
 msgstr ""
 
-#: gnu/packages/audio.scm:1490
+#: gnu/packages/audio.scm:1884
 msgid ""
 "Guitarix is a virtual guitar amplifier running JACK.\n"
 "Guitarix takes the signal from your guitar as a mono-signal from your sound\n"
@@ -446,11 +563,11 @@ msgid ""
 "auto-wah."
 msgstr ""
 
-#: gnu/packages/audio.scm:1544
+#: gnu/packages/audio.scm:1938
 msgid "Audio effects processor"
 msgstr ""
 
-#: gnu/packages/audio.scm:1546
+#: gnu/packages/audio.scm:1940
 msgid ""
 "Rakarrack is a richly featured multi-effects processor emulating a\n"
 "guitar effects pedalboard.  Effects include compressor, expander, noise gate,\n"
@@ -462,22 +579,22 @@ msgid ""
 "well suited to all musical instruments and vocals."
 msgstr ""
 
-#: gnu/packages/audio.scm:1593
+#: gnu/packages/audio.scm:1987
 msgid "LV2 convolution reverb"
 msgstr ""
 
-#: gnu/packages/audio.scm:1595
+#: gnu/packages/audio.scm:1989
 msgid ""
 "IR is a low-latency, real-time, high performance signal convolver\n"
 "especially for creating reverb effects.  It supports impulse responses with 1,\n"
 "2 or 4 channels, in any soundfile format supported by libsndfile."
 msgstr ""
 
-#: gnu/packages/audio.scm:1633
+#: gnu/packages/audio.scm:2028
 msgid "JACK audio connection kit"
 msgstr ""
 
-#: gnu/packages/audio.scm:1635
+#: gnu/packages/audio.scm:2030
 msgid ""
 "JACK is a low-latency audio server.  It can connect a number of\n"
 "different applications to an audio device, as well as allowing them to share\n"
@@ -487,32 +604,32 @@ msgid ""
 "synchronous execution of all clients, and low latency operation."
 msgstr ""
 
-#: gnu/packages/audio.scm:1725
+#: gnu/packages/audio.scm:2124
 msgid "Simple LV2 host for JACK"
 msgstr ""
 
-#: gnu/packages/audio.scm:1727
+#: gnu/packages/audio.scm:2126
 msgid ""
 "Jalv is a simple but fully featured LV2 host for JACK.  It runs LV2\n"
 "plugins and exposes their ports as JACK ports, essentially making any LV2\n"
 "plugin function as a JACK application."
 msgstr ""
 
-#: gnu/packages/audio.scm:1771
+#: gnu/packages/audio.scm:2170
 msgid "Linux Audio Developer's Simple Plugin API (LADSPA)"
 msgstr ""
 
-#: gnu/packages/audio.scm:1773
+#: gnu/packages/audio.scm:2172
 msgid ""
 "LADSPA is a standard that allows software audio processors and effects\n"
 "to be plugged into a wide range of audio synthesis and recording packages."
 msgstr ""
 
-#: gnu/packages/audio.scm:1825
+#: gnu/packages/audio.scm:2224
 msgid "Audio application session manager"
 msgstr ""
 
-#: gnu/packages/audio.scm:1827
+#: gnu/packages/audio.scm:2226
 msgid ""
 "LASH is a session management system for audio applications.  It allows\n"
 "you to save and restore audio sessions consisting of multiple interconneced\n"
@@ -520,11 +637,11 @@ msgid ""
 "connections between them."
 msgstr ""
 
-#: gnu/packages/audio.scm:1848
+#: gnu/packages/audio.scm:2247
 msgid "Bauer stereophonic-to-binaural DSP"
 msgstr ""
 
-#: gnu/packages/audio.scm:1850
+#: gnu/packages/audio.scm:2249
 msgid ""
 "The Bauer stereophonic-to-binaural DSP (bs2b) library and plugins is\n"
 "designed to improve headphone listening of stereo audio records.  Recommended\n"
@@ -532,21 +649,57 @@ msgid ""
 "essential distortions."
 msgstr ""
 
-#: gnu/packages/audio.scm:1873
+#: gnu/packages/audio.scm:2272
+msgid "Bauer stereophonic-to-binaural DSP - LADSPA plugin"
+msgstr ""
+
+#: gnu/packages/audio.scm:2273
+msgid ""
+"The Bauer stereophonic-to-binaural DSP (bs2b) library and\n"
+"plugins is designed to improve headphone listening of stereo audio records.\n"
+"Recommended for headphone prolonged listening to disable superstereo fatigue\n"
+"without essential distortions.  This package contains a LADSPA plugin for use\n"
+"with applications that support them (e.g. PulseAudio)."
+msgstr ""
+
+#: gnu/packages/audio.scm:2297
 msgid "Implementation of the Open Sound Control protocol"
 msgstr "Implantation du protocole Open Sound Control"
 
-#: gnu/packages/audio.scm:1875
+#: gnu/packages/audio.scm:2299
 msgid ""
 "liblo is a lightweight library that provides an easy to use\n"
 "implementation of the Open Sound Control (@dfn{OSC}) protocol."
 msgstr ""
 
-#: gnu/packages/audio.scm:1894
+#: gnu/packages/audio.scm:2323
+msgid "Common API for real-time audio I/O"
+msgstr ""
+
+#: gnu/packages/audio.scm:2325
+msgid ""
+"RtAudio is a set of C++ classes that provides a common API for real-time\n"
+"audio input/output.  It was designed with the following objectives:\n"
+"\n"
+"@itemize\n"
+"@item object-oriented C++ design\n"
+"@item simple, common API across all supported platforms\n"
+"@item only one source and one header file for easy inclusion in programming\n"
+"projects\n"
+"@item allow simultaneous multi-api support\n"
+"@item support dynamic connection of devices\n"
+"@item provide extensive audio device parameter control\n"
+"@item allow audio device capability probing\n"
+"@item automatic internal conversion for data format, channel number\n"
+"compensation, (de)interleaving, and byte-swapping\n"
+"@end itemize"
+msgstr ""
+
+#: gnu/packages/audio.scm:2360
 msgid "Bindings for PortAudio v19"
 msgstr "Liaisons pour PortAudio v19"
 
-#: gnu/packages/audio.scm:1895
+#: gnu/packages/audio.scm:2361
 msgid ""
 "This package provides bindings for PortAudio v19, the\n"
 "cross-platform audio input/output stream library."
@@ -554,11 +707,11 @@ msgstr ""
 "Ce paquet fournit les liaisons Python pour PortAudio v19, la\n"
 "bibliothèque de flux audio d'entrée/sortie multiplateforme."
 
-#: gnu/packages/audio.scm:1920
+#: gnu/packages/audio.scm:2386
 msgid "Python bindings for liblo"
 msgstr ""
 
-#: gnu/packages/audio.scm:1922
+#: gnu/packages/audio.scm:2388
 msgid ""
 "Pyliblo is a Python wrapper for the liblo Open Sound Control (OSC)\n"
 "library.  It supports almost the complete functionality of liblo, allowing you\n"
@@ -566,22 +719,22 @@ msgid ""
 "included are the command line utilities @code{send_osc} and @code{dump_osc}."
 msgstr ""
 
-#: gnu/packages/audio.scm:1970
+#: gnu/packages/audio.scm:2436
 msgid "Library to simplify use of LV2 plugins in applications"
 msgstr ""
 
-#: gnu/packages/audio.scm:1972
+#: gnu/packages/audio.scm:2438
 msgid ""
 "Lilv is a C library to make the use of LV2 plugins as simple as possible\n"
 "for applications.  Lilv is the successor to SLV2, rewritten to be\n"
 "significantly faster and have minimal dependencies."
 msgstr ""
 
-#: gnu/packages/audio.scm:1998
+#: gnu/packages/audio.scm:2464
 msgid "LV2 audio plugin specification"
 msgstr ""
 
-#: gnu/packages/audio.scm:2000
+#: gnu/packages/audio.scm:2466
 msgid ""
 "LV2 is an open specification for audio plugins and host applications.\n"
 "At its core, LV2 is a simple stable interface, accompanied by extensions which\n"
@@ -589,38 +742,38 @@ msgid ""
 "software."
 msgstr ""
 
-#: gnu/packages/audio.scm:2036
+#: gnu/packages/audio.scm:2502
 msgid "LV2 port of the mda Piano plugin"
 msgstr "Port LV2 du greffon mda Piano"
 
-#: gnu/packages/audio.scm:2037
+#: gnu/packages/audio.scm:2503
 msgid "An LV2 port of the mda Piano VSTi."
 msgstr "Un port LV2 du VSTi mda Piano."
 
-#: gnu/packages/audio.scm:2050
+#: gnu/packages/audio.scm:2516
 msgid "LV2 port of the mda EPiano plugin"
 msgstr "Port LV2 du greffon mda EPiano"
 
-#: gnu/packages/audio.scm:2051
+#: gnu/packages/audio.scm:2517
 msgid "An LV2 port of the mda EPiano VSTi."
 msgstr "Un port LV2 du VSTi mda EPiano."
 
-#: gnu/packages/audio.scm:2081
+#: gnu/packages/audio.scm:2547
 msgid "C++ libraries for LV2 plugins"
 msgstr ""
 
-#: gnu/packages/audio.scm:2083
+#: gnu/packages/audio.scm:2549
 msgid ""
 "The LV2 Toolkit (LVTK) contains libraries that wrap the LV2 C API and\n"
 "extensions into easy to use C++ classes.  It is the successor of\n"
 "lv2-c++-tools."
 msgstr ""
 
-#: gnu/packages/audio.scm:2124
+#: gnu/packages/audio.scm:2590
 msgid "3D audio API"
 msgstr ""
 
-#: gnu/packages/audio.scm:2126
+#: gnu/packages/audio.scm:2592
 msgid ""
 "OpenAL provides capabilities for playing audio in a virtual 3D\n"
 "environment.  Distance attenuation, doppler shift, and directional sound\n"
@@ -630,60 +783,60 @@ msgid ""
 "buffers, and audio capture."
 msgstr ""
 
-#: gnu/packages/audio.scm:2156
+#: gnu/packages/audio.scm:2622
 msgid "Free implementation of OpenAL's ALUT standard"
 msgstr ""
 
-#: gnu/packages/audio.scm:2157
+#: gnu/packages/audio.scm:2623
 msgid "freealut is the OpenAL Utility Toolkit."
 msgstr ""
 
-#: gnu/packages/audio.scm:2188
+#: gnu/packages/audio.scm:2654
 msgid "Modular patch bay for audio and MIDI systems"
 msgstr ""
 
-#: gnu/packages/audio.scm:2190
+#: gnu/packages/audio.scm:2656
 msgid ""
 "Patchage is a modular patch bay for audio and MIDI systems based on JACK\n"
 "and ALSA."
 msgstr ""
 
-#: gnu/packages/audio.scm:2218
+#: gnu/packages/audio.scm:2684
 msgid "Portable C audio library"
 msgstr "Bibliothèque audio portable en C"
 
-#: gnu/packages/audio.scm:2220
+#: gnu/packages/audio.scm:2686
 msgid ""
 "The Portable C Audio Library (pcaudiolib) provides a C@tie{}API to\n"
 "different audio devices such as ALSA or PulseAudio."
 msgstr ""
 
-#: gnu/packages/audio.scm:2250
+#: gnu/packages/audio.scm:2717
 msgid "Jack server control application"
 msgstr ""
 
-#: gnu/packages/audio.scm:2251
+#: gnu/packages/audio.scm:2718
 msgid ""
 "Control a Jack server.  Allows you to plug various sources\n"
 "into various outputs and to start, stop and configure jackd"
 msgstr ""
 
-#: gnu/packages/audio.scm:2284
+#: gnu/packages/audio.scm:2751
 msgid "Stereo audio recorder for JACK"
 msgstr ""
 
-#: gnu/packages/audio.scm:2285
+#: gnu/packages/audio.scm:2752
 msgid ""
 "QJackRcd is a simple graphical stereo recorder for JACK\n"
 "supporting silence processing for automatic pause, file splitting, and\n"
 "background file post-processing."
 msgstr ""
 
-#: gnu/packages/audio.scm:2361
+#: gnu/packages/audio.scm:2865
 msgid "Synthesis engine and programming language"
 msgstr "Moteur de synthèse et langage de programmation"
 
-#: gnu/packages/audio.scm:2362
+#: gnu/packages/audio.scm:2866
 msgid ""
 "SuperCollider is a synthesis engine (@code{scsynth} or\n"
 "@code{supernova}) and programming language (@code{sclang}).  It can be used\n"
@@ -695,62 +848,65 @@ msgid ""
 "using Guix System."
 msgstr ""
 
-#: gnu/packages/audio.scm:2393
+#: gnu/packages/audio.scm:2897
 msgid "Real-time audio utility library"
 msgstr ""
 
-#: gnu/packages/audio.scm:2395
+#: gnu/packages/audio.scm:2899
 msgid ""
 "Raul (Real-time Audio Utility Library) is a C++ utility library primarily\n"
 "aimed at audio/musical applications."
 msgstr ""
 
-#: gnu/packages/audio.scm:2433
-msgid "Real-time library for sampling rate conversion"
-msgstr "Bibliothèque temps-réel pour la conversion de taux d'échantillonage"
+#: gnu/packages/audio.scm:2937
+msgid "Sampling rate conversion and filter design utilities"
+msgstr "Outils de conversion de taux d'échantillonnage et de conception de filtres"
 
-#: gnu/packages/audio.scm:2434
+#: gnu/packages/audio.scm:2938
 msgid ""
-"The @command{resample} software package contains free\n"
-"sampling-rate conversion and filter design utilities."
+"This package contains the @command{resample} and\n"
+"@command{windowfilter} command line utilities.  The @command{resample} command\n"
+"allows changing the sampling rate of a sound file, while the\n"
+"@command{windowfilter} command allows designing Finite Impulse Response (FIR)\n"
+"filters using the so-called @emph{window method}."
 msgstr ""
 
-#: gnu/packages/audio.scm:2472
+#: gnu/packages/audio.scm:2979
 msgid "Audio time-stretching and pitch-shifting library"
 msgstr ""
 
-#: gnu/packages/audio.scm:2474
+#: gnu/packages/audio.scm:2981
 msgid ""
 "Rubber Band is a library and utility program that permits changing the\n"
 "tempo and pitch of an audio recording independently of one another."
 msgstr ""
 
-#: gnu/packages/audio.scm:2507
+#: gnu/packages/audio.scm:3007
 msgid "Cross-platform MIDI library for C++"
 msgstr ""
 
-#: gnu/packages/audio.scm:2509
+#: gnu/packages/audio.scm:3009
 msgid ""
 "RtMidi is a set of C++ classes (RtMidiIn, RtMidiOut, and API specific\n"
 "classes) that provide a common cross-platform API for realtime MIDI\n"
 "input/output."
 msgstr ""
 
-#: gnu/packages/audio.scm:2535
+#: gnu/packages/audio.scm:3035
 msgid "Library for serialising LV2 atoms to/from RDF"
 msgstr ""
 
-#: gnu/packages/audio.scm:2537
+#: gnu/packages/audio.scm:3037
 msgid ""
 "Sratom is a library for serialising LV2 atoms to/from RDF, particularly\n"
 "the Turtle syntax."
 msgstr ""
 
-#: gnu/packages/audio.scm:2563
+#: gnu/packages/audio.scm:3063
 msgid "Library for loading and wrapping LV2 plugin UIs"
 msgstr ""
 
-#: gnu/packages/audio.scm:2565
+#: gnu/packages/audio.scm:3065
 msgid ""
 "Suil is a lightweight C library for loading and wrapping LV2 plugin UIs.\n"
 "\n"
@@ -762,11 +918,21 @@ msgid ""
 "Suil currently supports every combination of Gtk, Qt, and X11."
 msgstr ""
 
-#: gnu/packages/audio.scm:2623
+#: gnu/packages/audio.scm:3095
+msgid "Library implementing the EBU R 128 loudness standard"
+msgstr "Bibliothèque implémentant le standard de puissance sonore EBU R 128"
+
+#: gnu/packages/audio.scm:3097
+msgid ""
+"@code{libebur128} is a C library that implements the EBU R 128 standard\n"
+"for loudness normalisation."
+msgstr ""
+
+#: gnu/packages/audio.scm:3149
 msgid "Software synthesizer for playing MIDI files"
 msgstr ""
 
-#: gnu/packages/audio.scm:2625
+#: gnu/packages/audio.scm:3151
 msgid ""
 "TiMidity++ is a software synthesizer.  It can play MIDI files by\n"
 "converting them into PCM waveform data; give it a MIDI data along with digital\n"
@@ -775,43 +941,43 @@ msgid ""
 "disks as various audio file formats."
 msgstr ""
 
-#: gnu/packages/audio.scm:2663
+#: gnu/packages/audio.scm:3189
 msgid "Modular and extensible audio processing system"
 msgstr ""
 
-#: gnu/packages/audio.scm:2665
+#: gnu/packages/audio.scm:3191
 msgid ""
 "Vamp is an audio processing plugin system for plugins that extract\n"
 "descriptive information from audio data — typically referred to as audio\n"
 "analysis plugins or audio feature extraction plugins."
 msgstr ""
 
-#: gnu/packages/audio.scm:2705
+#: gnu/packages/audio.scm:3231
 msgid "Library for time stretching and pitch scaling of audio"
 msgstr ""
 
-#: gnu/packages/audio.scm:2707
+#: gnu/packages/audio.scm:3233
 msgid ""
 "SBSMS (Subband Sinusoidal Modeling Synthesis) is software for time\n"
 "stretching and pitch scaling of audio.  This package contains the library."
 msgstr ""
 
-#: gnu/packages/audio.scm:2728
+#: gnu/packages/audio.scm:3268
 msgid "Hybrid lossless audio codec"
 msgstr ""
 
-#: gnu/packages/audio.scm:2730
+#: gnu/packages/audio.scm:3270
 msgid ""
 "WavPack is an audio compression format with lossless, lossy and hybrid\n"
 "compression modes.  This package contains command-line programs and library to\n"
 "encode and decode wavpack files."
 msgstr ""
 
-#: gnu/packages/audio.scm:2749
+#: gnu/packages/audio.scm:3289
 msgid "Mod file playing library"
 msgstr ""
 
-#: gnu/packages/audio.scm:2751
+#: gnu/packages/audio.scm:3291
 msgid ""
 "Libmodplug renders mod music files as raw audio data, for playing or\n"
 "conversion.  mod, .s3m, .it, .xm, and a number of lesser-known formats are\n"
@@ -819,33 +985,33 @@ msgid ""
 "surround and reverb."
 msgstr ""
 
-#: gnu/packages/audio.scm:2770
+#: gnu/packages/audio.scm:3310
 msgid "Module player library"
 msgstr ""
 
-#: gnu/packages/audio.scm:2772
+#: gnu/packages/audio.scm:3312
 msgid ""
 "Libxmp is a library that renders module files to PCM data.  It supports\n"
 "over 90 mainstream and obscure module formats including Protracker (MOD),\n"
 "Scream Tracker 3 (S3M), Fast Tracker II (XM), and Impulse Tracker (IT)."
 msgstr ""
 
-#: gnu/packages/audio.scm:2795
+#: gnu/packages/audio.scm:3335
 msgid "Extended module player"
 msgstr ""
 
-#: gnu/packages/audio.scm:2797
+#: gnu/packages/audio.scm:3337
 msgid ""
 "Xmp is a portable module player that plays over 90 mainstream and\n"
 "obscure module formats, including Protracker MOD, Fasttracker II XM, Scream\n"
 "Tracker 3 S3M and Impulse Tracker IT files."
 msgstr ""
 
-#: gnu/packages/audio.scm:2823
+#: gnu/packages/audio.scm:3363
 msgid "Audio processing library for changing tempo, pitch and playback rate"
 msgstr ""
 
-#: gnu/packages/audio.scm:2825
+#: gnu/packages/audio.scm:3365
 msgid ""
 "SoundTouch is an audio processing library for changing the tempo, pitch\n"
 "and playback rates of audio streams or audio files.  It is intended for\n"
@@ -853,11 +1019,11 @@ msgid ""
 "control functionality, or just for playing around with the sound effects."
 msgstr ""
 
-#: gnu/packages/audio.scm:2862
+#: gnu/packages/audio.scm:3402
 msgid "Sound processing utility"
 msgstr ""
 
-#: gnu/packages/audio.scm:2864
+#: gnu/packages/audio.scm:3404
 msgid ""
 "SoX (Sound eXchange) is a command line utility that can convert\n"
 "various formats of computer audio files to other formats.  It can also\n"
@@ -865,92 +1031,92 @@ msgid ""
 "can play and record audio files."
 msgstr ""
 
-#: gnu/packages/audio.scm:2887
+#: gnu/packages/audio.scm:3427
 msgid "One-dimensional sample-rate conversion library"
 msgstr ""
 
-#: gnu/packages/audio.scm:2889
+#: gnu/packages/audio.scm:3429
 msgid ""
 "The SoX Resampler library (libsoxr) performs one-dimensional sample-rate\n"
 "conversion.  It may be used, for example, to resample PCM-encoded audio."
 msgstr ""
 
-#: gnu/packages/audio.scm:2911
+#: gnu/packages/audio.scm:3451
 msgid "MPEG Audio Layer 2 (MP2) encoder"
 msgstr ""
 
-#: gnu/packages/audio.scm:2913
+#: gnu/packages/audio.scm:3453
 msgid ""
 "TwoLAME is an optimised MPEG Audio Layer 2 (MP2) encoder based on\n"
 "tooLAME by Mike Cheng, which in turn is based upon the ISO dist10 code and\n"
 "portions of LAME."
 msgstr ""
 
-#: gnu/packages/audio.scm:2971
+#: gnu/packages/audio.scm:3511
 msgid "Audio I/O library"
 msgstr ""
 
-#: gnu/packages/audio.scm:2973
+#: gnu/packages/audio.scm:3513
 msgid ""
 "PortAudio is a portable C/C++ audio I/O library providing a simple API\n"
 "to record and/or play sound using a callback function or a blocking read/write\n"
 "interface."
 msgstr ""
 
-#: gnu/packages/audio.scm:3000
+#: gnu/packages/audio.scm:3540
 msgid "Graphical user interface for FluidSynth"
 msgstr ""
 
-#: gnu/packages/audio.scm:3002
+#: gnu/packages/audio.scm:3542
 msgid ""
 "Qsynth is a GUI front-end application for the FluidSynth SoundFont\n"
 "synthesizer written in C++."
 msgstr ""
 
-#: gnu/packages/audio.scm:3039
+#: gnu/packages/audio.scm:3579
 msgid "Networked audio system"
 msgstr ""
 
-#: gnu/packages/audio.scm:3041
+#: gnu/packages/audio.scm:3581
 msgid ""
 "RSound allows you to send audio from an application and transfer it\n"
 "directly to a different computer on your LAN network.  It is an audio daemon\n"
 "with a much different focus than most other audio daemons."
 msgstr ""
 
-#: gnu/packages/audio.scm:3072
+#: gnu/packages/audio.scm:3612
 msgid "JACK audio frequency analyzer and display"
 msgstr ""
 
-#: gnu/packages/audio.scm:3074
+#: gnu/packages/audio.scm:3614
 msgid ""
 "XJackFreak is an audio analysis and equalizing tool for the Jack Audio\n"
 "Connection Kit.  It can display the FFT of any input, modify it and output the\n"
 "result."
 msgstr ""
 
-#: gnu/packages/audio.scm:3124
+#: gnu/packages/audio.scm:3664
 msgid "Fast, partitioned convolution engine library"
 msgstr ""
 
-#: gnu/packages/audio.scm:3126
+#: gnu/packages/audio.scm:3666
 msgid ""
 "Zita convolver is a C++ library providing a real-time convolution\n"
 "engine."
 msgstr ""
 
-#: gnu/packages/audio.scm:3174
+#: gnu/packages/audio.scm:3716
 msgid "C++ library for resampling audio signals"
 msgstr "Bibliothèque C++ pour ré-échantillonner des signaux audio"
 
-#: gnu/packages/audio.scm:3176
+#: gnu/packages/audio.scm:3718
 msgid ""
 "Libzita-resampler is a C++ library for resampling audio signals.  It is\n"
 "designed to be used within a real-time processing context, to be fast, and to\n"
 "provide high-quality sample rate conversion."
 msgstr ""
 
-#: gnu/packages/audio.scm:3221
+#: gnu/packages/audio.scm:3765
 msgid ""
 "Zita-alsa-pcmi is a C++ wrapper around the ALSA API.  It provides easy\n"
 "access to ALSA PCM devices, taking care of the many functions required to\n"
@@ -958,11 +1124,11 @@ msgid ""
 "point audio data."
 msgstr ""
 
-#: gnu/packages/audio.scm:3247
+#: gnu/packages/audio.scm:3791
 msgid "Cue and toc file parsers and utilities"
 msgstr ""
 
-#: gnu/packages/audio.scm:3248
+#: gnu/packages/audio.scm:3792
 msgid ""
 "Cuetools is a set of programs that are useful for manipulating\n"
 "and using CUE sheet (cue) files and Table of Contents (toc) files.  CUE and TOC\n"
@@ -970,11 +1136,11 @@ msgid ""
 "machine-readable ASCII format."
 msgstr ""
 
-#: gnu/packages/audio.scm:3267
+#: gnu/packages/audio.scm:3811
 msgid "WAVE audio data processing tool"
 msgstr ""
 
-#: gnu/packages/audio.scm:3268
+#: gnu/packages/audio.scm:3812
 msgid ""
 "shntool is a multi-purpose WAVE data processing and reporting\n"
 "utility.  File formats are abstracted from its core, so it can process any file\n"
@@ -983,63 +1149,74 @@ msgid ""
 "use them split WAVE data into multiple files."
 msgstr ""
 
-#: gnu/packages/audio.scm:3307
+#: gnu/packages/audio.scm:3851
 msgid "DTS Coherent Acoustics decoder"
 msgstr ""
 
-#: gnu/packages/audio.scm:3308
+#: gnu/packages/audio.scm:3852
 msgid ""
 "Dcadec is a DTS Coherent Acoustics surround sound decoder\n"
 "with support for HD extensions."
 msgstr ""
 
-#: gnu/packages/audio.scm:3344
+#: gnu/packages/audio.scm:3888
 msgid "Tool to adjust loudness of media files"
 msgstr ""
 
-#: gnu/packages/audio.scm:3346
+#: gnu/packages/audio.scm:3890
 msgid ""
 "BS1770GAIN is a loudness scanner compliant with ITU-R BS.1770 and its\n"
 "flavors EBU R128, ATSC A/85, and ReplayGain 2.0.  It helps normalizing the\n"
 "loudness of audio and video files to the same level."
 msgstr ""
 
-#: gnu/packages/audio.scm:3377
+#: gnu/packages/audio.scm:3921
 msgid "Lightweight audio filtering library"
 msgstr ""
 
-#: gnu/packages/audio.scm:3378
+#: gnu/packages/audio.scm:3922
 msgid ""
 "An easy to use audio filtering library made from webrtc\n"
 "code, used in @code{libtoxcore}."
 msgstr ""
 
-#: gnu/packages/audio.scm:3430
+#: gnu/packages/audio.scm:3974
 msgid "GSM 06.10 lossy speech compression library"
 msgstr "Bibliothèque de compression de la voix avec perte GSM 06.10"
 
-#: gnu/packages/audio.scm:3431
+#: gnu/packages/audio.scm:3975
 msgid ""
 "This C library provides an encoder and a decoder for the GSM\n"
 "06.10 RPE-LTP lossy speech compression algorithm."
 msgstr ""
 
-#: gnu/packages/audio.scm:3452
+#: gnu/packages/audio.scm:3996
 msgid "ALSA wrappers for Python"
 msgstr ""
 
-#: gnu/packages/audio.scm:3454
+#: gnu/packages/audio.scm:3998
 msgid ""
 "This package contains wrappers for accessing the ALSA API from Python.\n"
 "It is currently fairly complete for PCM devices, and has some support for\n"
 "mixers."
 msgstr ""
 
-#: gnu/packages/audio.scm:3501
+#: gnu/packages/audio.scm:4021
+msgid "LDAC Bluetooth encoder and ABR library"
+msgstr ""
+
+#: gnu/packages/audio.scm:4022
+msgid ""
+"This package provides an encoder for the LDAC\n"
+"high-resolution Bluetooth audio streaming codec for streaming at up to 990\n"
+"kbps at 24 bit/96 kHz."
+msgstr ""
+
+#: gnu/packages/audio.scm:4068
 msgid "Bluetooth ALSA backend"
 msgstr ""
 
-#: gnu/packages/audio.scm:3502
+#: gnu/packages/audio.scm:4069
 msgid ""
 "This project is a rebirth of a direct integration between\n"
 "Bluez and ALSA.  Since Bluez >= 5, the build-in integration has been removed\n"
@@ -1052,22 +1229,22 @@ msgid ""
 "on the ALSA software PCM plugin."
 msgstr ""
 
-#: gnu/packages/audio.scm:3565
+#: gnu/packages/audio.scm:4132
 msgid "Sound editor"
 msgstr "Éditeur de son"
 
-#: gnu/packages/audio.scm:3568
+#: gnu/packages/audio.scm:4135
 msgid ""
 "Snd is a sound editor modelled loosely after Emacs.  It can be\n"
 "customized and extended using either the s7 Scheme implementation (included in\n"
 "the Snd sources), Ruby, or Forth."
 msgstr ""
 
-#: gnu/packages/audio.scm:3597
+#: gnu/packages/audio.scm:4164
 msgid "LV2 plugin for broadband noise reduction"
 msgstr ""
 
-#: gnu/packages/audio.scm:3598
+#: gnu/packages/audio.scm:4165
 msgid ""
 "Noise Repellent is an LV2 plugin to reduce noise.  It has\n"
 "the following features:\n"
@@ -1087,40 +1264,40 @@ msgid ""
 "@end enumerate\n"
 msgstr ""
 
-#: gnu/packages/audio.scm:3657
+#: gnu/packages/audio.scm:4224
 msgid "Command-line audio visualizer"
 msgstr "Visionneuse audio en ligne de commande"
 
-#: gnu/packages/audio.scm:3658
+#: gnu/packages/audio.scm:4225
 msgid ""
 "@code{cli-visualizer} displays fast-Fourier\n"
 "transforms (FFTs) of the sound being played, as well as other graphical\n"
 "representations."
 msgstr ""
 
-#: gnu/packages/audio.scm:3711
+#: gnu/packages/audio.scm:4278
 msgid "Console audio visualizer for ALSA, MPD, and PulseAudio"
 msgstr ""
 
-#: gnu/packages/audio.scm:3712
+#: gnu/packages/audio.scm:4279
 msgid ""
 "C.A.V.A. is a bar audio spectrum visualizer for the terminal\n"
 "using ALSA, MPD, PulseAudio, or a FIFO buffer as its input."
 msgstr ""
 
-#: gnu/packages/audio.scm:3745
+#: gnu/packages/audio.scm:4312
 msgid "Pro-quality GM soundfont"
 msgstr ""
 
-#: gnu/packages/audio.scm:3746
+#: gnu/packages/audio.scm:4313
 msgid "Fluid-3 is Frank Wen's pro-quality GM soundfont."
 msgstr ""
 
-#: gnu/packages/audio.scm:3769
+#: gnu/packages/audio.scm:4336
 msgid "Fraunhofer FDK AAC library"
 msgstr ""
 
-#: gnu/packages/audio.scm:3770
+#: gnu/packages/audio.scm:4337
 msgid ""
 "FDK is a library for encoding and decoding Advanced Audio\n"
 "Coding (AAC) format audio, developed by Fraunhofer IIS, and included as part of\n"
@@ -1131,32 +1308,32 @@ msgid ""
 "                                                                     surround)."
 msgstr ""
 
-#: gnu/packages/audio.scm:3809
+#: gnu/packages/audio.scm:4376
 msgid "Audio editing and playback for OpenShot"
 msgstr ""
 
-#: gnu/packages/audio.scm:3810
+#: gnu/packages/audio.scm:4377
 msgid ""
 "OpenShot Audio Library (libopenshot-audio) allows\n"
 "high-quality editing and playback of audio, and is based on the JUCE\n"
 "library."
 msgstr ""
 
-#: gnu/packages/audio.scm:3836
+#: gnu/packages/audio.scm:4403
 msgid "XAudio reimplementation"
 msgstr "Réimplémentation de XAudio"
 
-#: gnu/packages/audio.scm:3837
+#: gnu/packages/audio.scm:4404
 msgid ""
 "FAudio is an XAudio reimplementation that focuses solely on\n"
 "developing fully accurate DirectX Audio runtime libraries."
 msgstr ""
 
-#: gnu/packages/audio.scm:3862
+#: gnu/packages/audio.scm:4429
 msgid "Binaural beat synthesizer"
 msgstr "Synthétiseur de battement binaural"
 
-#: gnu/packages/audio.scm:3863
+#: gnu/packages/audio.scm:4430
 msgid ""
 "Gnaural is a programmable auditory binaural beat synthesizer\n"
 "intended to be used for brainwave entrainment.  Gnaural supports creation of\n"
@@ -1165,32 +1342,58 @@ msgid ""
 "other Gnaural instances, allowing synchronous sessions between many users."
 msgstr ""
 
-#: gnu/packages/audio.scm:3897
+#: gnu/packages/audio.scm:4464
 msgid "Live audio streamer"
 msgstr ""
 
-#: gnu/packages/audio.scm:3898
+#: gnu/packages/audio.scm:4465
 msgid ""
 "DarkIce is a live audio streamer.  It takes audio input from\n"
 "a sound card, encodes it into Ogg Vorbis and/or mp3, and sends the audio\n"
 "stream to one or more IceCast and/or ShoutCast servers."
 msgstr ""
 
-#: gnu/packages/audio.scm:3922
+#: gnu/packages/audio.scm:4489
 msgid "Encode or decode Linear/Longitudinal Time Code (LTC) audio"
 msgstr ""
 
-#: gnu/packages/audio.scm:3923
+#: gnu/packages/audio.scm:4490
 msgid ""
 "Libltc is a POSIX-C Library for handling\n"
 "@dfn{Linear/Longitudinal Time Code} (LTC) data."
 msgstr ""
 
-#: gnu/packages/audio.scm:3949
+#: gnu/packages/audio.scm:4522
+msgid "TTA lossless audio encoder"
+msgstr ""
+
+#: gnu/packages/audio.scm:4524
+msgid ""
+"TTA performs lossless compression on multichannel 8,16 and 24 bits\n"
+"data of the Wav audio files.  Being lossless means that no data-\n"
+"quality is lost in the compression - when uncompressed, the data will\n"
+"be identical to the original.  The compression ratios of TTA depend on\n"
+"the type of music file being compressed, but the compression size\n"
+"will generally range between 30% - 70% of the original.  TTA format\n"
+"supports both of ID3v1/v2 and APEv2 tags."
+msgstr ""
+
+#: gnu/packages/audio.scm:4558
+msgid "C library for real-time audio input and output"
+msgstr "Bibliothèque C pour l'entrée-sortie audio en temps réel"
+
+#: gnu/packages/audio.scm:4559
+msgid ""
+"@code{libsoundio} is a C library providing audio input and\n"
+"output.  The API is suitable for real-time software such as digital audio\n"
+"workstations as well as consumer software such as music players."
+msgstr ""
+
+#: gnu/packages/audio.scm:4584
 msgid "Small GUI toolkit"
 msgstr ""
 
-#: gnu/packages/audio.scm:3950
+#: gnu/packages/audio.scm:4585
 msgid ""
 "Redkite is a small GUI toolkit developed in C++17 and\n"
 "inspired from other well known GUI toolkits such as Qt and GTK.  It is\n"
@@ -1199,11 +1402,11 @@ msgid ""
 "as is the case with audio plugins."
 msgstr ""
 
-#: gnu/packages/audio.scm:4020
+#: gnu/packages/audio.scm:4656
 msgid "Audio plugin host"
 msgstr ""
 
-#: gnu/packages/audio.scm:4021
+#: gnu/packages/audio.scm:4657
 msgid ""
 "Carla is a modular audio plugin host, with features like\n"
 "transport control, automation of parameters via MIDI CC and remote control\n"
@@ -1212,11 +1415,11 @@ msgid ""
 "default and preferred audio driver but also supports native drivers like ALSA."
 msgstr ""
 
-#: gnu/packages/audio.scm:4056
+#: gnu/packages/audio.scm:4692
 msgid "Multitrack audio processing"
 msgstr ""
 
-#: gnu/packages/audio.scm:4057
+#: gnu/packages/audio.scm:4693
 msgid ""
 "Ecasound is a software package designed for multitrack audio\n"
 "processing. It can be used for simple tasks like audio playback, recording and\n"
@@ -1228,44 +1431,44 @@ msgid ""
 "in the package."
 msgstr ""
 
-#: gnu/packages/audio.scm:4094
+#: gnu/packages/audio.scm:4730
 msgid "Library for reading and resampling audio files"
 msgstr "Bibliothèque pour lire et ré-échantillonner des fichiers audio"
 
-#: gnu/packages/audio.scm:4095
+#: gnu/packages/audio.scm:4731
 msgid ""
 "libaudec is a wrapper library over ffmpeg, sndfile and\n"
 "libsamplerate for reading and resampling audio files, based on Robin Gareus'\n"
 "@code{audio_decoder} code."
 msgstr ""
 
-#: gnu/packages/audio.scm:4126
+#: gnu/packages/audio.scm:4762
 msgid "LV2 plugin lint tool"
 msgstr ""
 
-#: gnu/packages/audio.scm:4127
+#: gnu/packages/audio.scm:4763
 msgid ""
 "lv2lint is an LV2 lint-like tool that checks whether a\n"
 "given plugin and its UI(s) match up with the provided metadata and adhere\n"
 "to well-known best practices."
 msgstr ""
 
-#: gnu/packages/audio.scm:4161
+#: gnu/packages/audio.scm:4797
 msgid "Documentation generator for LV2 plugins"
 msgstr ""
 
-#: gnu/packages/audio.scm:4163
+#: gnu/packages/audio.scm:4799
 msgid ""
 "lv2toweb allows the user to create an xhtml page with information\n"
 "about the given LV2 plugin, provided that the plugin and its UI(s) match up\n"
 "with the provided metadata and adhere to well-known best practices."
 msgstr ""
 
-#: gnu/packages/audio.scm:4189
+#: gnu/packages/audio.scm:4825
 msgid "GUI toolkit for LV2 plugins"
 msgstr ""
 
-#: gnu/packages/audio.scm:4190
+#: gnu/packages/audio.scm:4826
 msgid ""
 "ZToolkit (Ztk) is a cross-platform GUI toolkit heavily\n"
 "inspired by GTK.  It handles events and low level drawing on behalf of\n"
@@ -1275,15 +1478,63 @@ msgid ""
 "minimum."
 msgstr ""
 
-#: gnu/packages/audio.scm:4208
+#: gnu/packages/audio.scm:4858
+msgid "Instrument file software library"
+msgstr ""
+
+#: gnu/packages/audio.scm:4860
+msgid ""
+"libInstPatch is a library for processing digital sample based MIDI\n"
+"instrument \"patch\" files.  The types of files libInstPatch supports are used\n"
+"for creating instrument sounds for wavetable synthesis.  libInstPatch provides\n"
+"an object framework (based on GObject) to load patch files, which can then be\n"
+"edited, converted, compressed and saved."
+msgstr ""
+
+#: gnu/packages/audio.scm:4876
 msgid "ZToolkit with SVG support"
 msgstr ""
 
-#: gnu/packages/backup.scm:127
+#: gnu/packages/audio.scm:4903
+msgid "Digital signal processing library"
+msgstr "Bibliothèque de traitement du signal numérique"
+
+#: gnu/packages/audio.scm:4904
+msgid ""
+"The LSP DSP library provides a set of functions that perform\n"
+"SIMD-optimized computing on several hardware architectures.  All functions\n"
+"currently operate on IEEE-754 single-precision floating-point numbers."
+msgstr ""
+
+#: gnu/packages/audio.scm:4935
+msgid "Speech codec"
+msgstr ""
+
+#: gnu/packages/audio.scm:4937
+msgid ""
+"Codec 2 is a speech codec designed for communications quality speech\n"
+"between 700 and 3200 bit/s.  The main application is low bandwidth HF/VHF\n"
+"digital radio."
+msgstr ""
+
+#: gnu/packages/audio.scm:5035
+msgid "Synchronize musical beat, tempo, and phase across multiple applications"
+msgstr ""
+
+#: gnu/packages/audio.scm:5037
+msgid ""
+"Ableton Link is a C++ library that synchronizes musical beat, tempo, and phase\n"
+"across multiple applications running on one or more devices.  Applications on devices\n"
+"connected to a local network discover each other automatically and form a musical\n"
+"session in which each participant can perform independently: anyone can start or stop\n"
+"while still staying in time."
+msgstr ""
+
+#: gnu/packages/backup.scm:138
 msgid "Encrypted backup using rsync algorithm"
 msgstr "Système de sauvegarde chiffrée utilisant l'algorithme rsync"
 
-#: gnu/packages/backup.scm:129
+#: gnu/packages/backup.scm:140
 msgid ""
 "Duplicity backs up directories by producing encrypted tar-format volumes\n"
 "and uploading them to a remote or local file server.  Because duplicity uses\n"
@@ -1299,11 +1550,11 @@ msgstr ""
 "dernière sauvegarde. L'utilisation de GnuPG pour chiffrer ou signer ces archives\n"
 "permet de prévenir tout rique d'espionnage ou d'altération par le serveur."
 
-#: gnu/packages/backup.scm:154
+#: gnu/packages/backup.scm:165
 msgid "File verification and repair tools"
 msgstr ""
 
-#: gnu/packages/backup.scm:155
+#: gnu/packages/backup.scm:166
 msgid ""
 "Par2cmdline uses Reed-Solomon error-correcting codes to\n"
 "generate and verify PAR2 recovery files.  These files can be distributed\n"
@@ -1315,11 +1566,11 @@ msgid ""
 "can even repair them."
 msgstr ""
 
-#: gnu/packages/backup.scm:192
+#: gnu/packages/backup.scm:203
 msgid "Simple incremental backup tool"
 msgstr "Outil simple de sauvegarde incrémentale"
 
-#: gnu/packages/backup.scm:194
+#: gnu/packages/backup.scm:205
 msgid ""
 "Hdup2 is a backup utility, its aim is to make backup really simple.  The\n"
 "backup scheduling is done by means of a cron job.  It supports an\n"
@@ -1331,11 +1582,11 @@ msgstr ""
 "supporte un mécanisme d'inclusion et d'exclusion, les sauvegardes distantes,\n"
 "chiffrées ou morcelées (appelées chunks) permettant un gravure sur CD/DVD aisée."
 
-#: gnu/packages/backup.scm:279
+#: gnu/packages/backup.scm:300
 msgid "Multi-format archive and compression library"
 msgstr "Bibliothèque de compression et d'archivage multi-format"
 
-#: gnu/packages/backup.scm:281
+#: gnu/packages/backup.scm:302
 msgid ""
 "Libarchive provides a flexible interface for reading and writing\n"
 "archives in various formats such as tar and cpio.  Libarchive also supports\n"
@@ -1353,11 +1604,11 @@ msgstr ""
 "l'archive en continu. Notez qu'il n'existe pour l'instant aucun support intégré\n"
 "pour les accès aléatoires ou les modifications ponctuelles."
 
-#: gnu/packages/backup.scm:349
+#: gnu/packages/backup.scm:370
 msgid "Provide a list of files to backup"
 msgstr "Fournit une liste des fichiers à sauvegarder"
 
-#: gnu/packages/backup.scm:351
+#: gnu/packages/backup.scm:372
 msgid ""
 "Rdup is a utility inspired by rsync and the plan9 way of doing backups.\n"
 "Rdup itself does not backup anything, it only print a list of absolute\n"
@@ -1369,11 +1620,11 @@ msgstr ""
 "liste de fichiers sur la sortie standard. Des scripts auxiliaires utilisant\n"
 "cette liste et implantant la stratégie de sauvegarde sont nécessaires."
 
-#: gnu/packages/backup.scm:381
+#: gnu/packages/backup.scm:402
 msgid "Tar-compatible archiver"
 msgstr "Archiveur compatible avec le format tar"
 
-#: gnu/packages/backup.scm:383
+#: gnu/packages/backup.scm:404
 msgid ""
 "Btar is a tar-compatible archiver which allows arbitrary compression and\n"
 "ciphering, redundancy, differential backup, indexed extraction, multicore\n"
@@ -1385,11 +1636,11 @@ msgstr ""
 "l'extraction indexée, la compression multi-coeurs, la sérialisation des entrées-\n"
 "sorties et la tolérance aux erreurs d'archivage partielles."
 
-#: gnu/packages/backup.scm:409
+#: gnu/packages/backup.scm:430
 msgid "Local/remote mirroring+incremental backup"
 msgstr "Sauvegarde mirroir/incrémentales, locales ou distantes"
 
-#: gnu/packages/backup.scm:411
+#: gnu/packages/backup.scm:432
 msgid ""
 "Rdiff-backup backs up one directory to another, possibly over a network.\n"
 "The target directory ends up a copy of the source directory, but extra reverse\n"
@@ -1416,11 +1667,11 @@ msgstr ""
 "différence sera transmise. Enfin, rdiff-backup est simple d'utilisation et la\n"
 "configuration par défaut sera généralement suffisante."
 
-#: gnu/packages/backup.scm:456
+#: gnu/packages/backup.scm:477
 msgid "Deduplicating snapshot backup utility based on rsync"
 msgstr "Utilitaire de sauvegarde dédupliquées basé sur rsync"
 
-#: gnu/packages/backup.scm:457
+#: gnu/packages/backup.scm:478
 msgid ""
 "rsnapshot is a file system snapshot utility based on rsync.\n"
 "rsnapshot makes it easy to make periodic snapshots of local machines, and\n"
@@ -1433,11 +1684,11 @@ msgstr ""
 "pour chaque sauvegarde, rsnapshot utilise des liens en dur pour dédupliquer\n"
 "les fichiers identiques."
 
-#: gnu/packages/backup.scm:537
+#: gnu/packages/backup.scm:558
 msgid "Tools & library for data backup and distributed storage"
 msgstr "Outils et bibliothèque pour la sauvegarde de données et le stockage distribué"
 
-#: gnu/packages/backup.scm:539
+#: gnu/packages/backup.scm:560
 msgid ""
 "Libchop is a set of utilities and library for data backup and\n"
 "distributed storage.  Its main application is @command{chop-backup}, an\n"
@@ -1456,11 +1707,11 @@ msgstr ""
 "le stockage adressable par contenu, le clefs de hash, les arbres de Merkle,\n"
 "la détection de similarité et la compression sans perte."
 
-#: gnu/packages/backup.scm:668
+#: gnu/packages/backup.scm:689
 msgid "Deduplicated, encrypted, authenticated and compressed backups"
 msgstr "Sauvegardes dédupliquées, chiffrées, authentifiées et compressées"
 
-#: gnu/packages/backup.scm:669
+#: gnu/packages/backup.scm:690
 msgid ""
 "Borg is a deduplicating backup program.  Optionally, it\n"
 "supports compression and authenticated encryption.  The main goal of Borg is to\n"
@@ -1477,11 +1728,11 @@ msgstr ""
 "chiffrement authentifié le rend adapté aux sauvegardes vers des cibles qui ne\n"
 "sont pas de confiance.  Borg est un fork de Attic."
 
-#: gnu/packages/backup.scm:713
+#: gnu/packages/backup.scm:734
 msgid "Deduplicating backup program"
 msgstr "Programme de sauvegardes dédupliquées"
 
-#: gnu/packages/backup.scm:714
+#: gnu/packages/backup.scm:735
 msgid ""
 "Attic is a deduplicating backup program.  The main goal of\n"
 "Attic is to provide an efficient and secure way to backup data.  The data\n"
@@ -1493,11 +1744,11 @@ msgstr ""
 "technique de déduplication de données utilisée par Attic le rend adapté aux\n"
 "sauvegardes quotidiennes car seuls les changements sont stockés."
 
-#: gnu/packages/backup.scm:744
+#: gnu/packages/backup.scm:765
 msgid "WIM file manipulation library and utilities"
 msgstr "Bibliothèque et utilitaires de manipulation de fichiers WIM"
 
-#: gnu/packages/backup.scm:745
+#: gnu/packages/backup.scm:766
 msgid ""
 "wimlib is a C library and set of command-line utilities for\n"
 "creating, modifying, extracting, and mounting archives in the Windows Imaging\n"
@@ -1510,11 +1761,11 @@ msgstr ""
 "directement depuis ou sur des volumes NTFS avec @code{ntfs-3g}, et préserve\n"
 "les attributs spécifiques à NTFS."
 
-#: gnu/packages/backup.scm:855
+#: gnu/packages/backup.scm:876
 msgid "Fast, disk based, rotating network backup system"
 msgstr "Système de sauvegarde réseau rapide, basé sur les disques"
 
-#: gnu/packages/backup.scm:857
+#: gnu/packages/backup.scm:878
 msgid ""
 "With dirvish you can maintain a set of complete images of your\n"
 "file systems with unattended creation and expiration.  A dirvish backup vault\n"
@@ -1524,11 +1775,11 @@ msgstr ""
 "systèmes de fichiers avec création et expiration automatique.  Un coffre de\n"
 "sauvegardes dirvish est comme une machine à remonter le temps pour vos données."
 
-#: gnu/packages/backup.scm:948
+#: gnu/packages/backup.scm:969
 msgid "Backup program with multiple revisions, encryption and more"
 msgstr "Programme de sauvegarde avec plusieurs révisions, chiffrement et plus"
 
-#: gnu/packages/backup.scm:949
+#: gnu/packages/backup.scm:970
 msgid ""
 "Restic is a program that does backups right and was designed\n"
 "with the following principles in mind:\n"
@@ -1592,11 +1843,43 @@ msgstr ""
 "un peu du précieux espace de stockage.\n"
 "@end itemize"
 
-#: gnu/packages/backup.scm:1000
+#: gnu/packages/backup.scm:1023
+msgid "Versatile deduplicating backup tool"
+msgstr "Outil de sauvegardes dédupliquées"
+
+#: gnu/packages/backup.scm:1025
+msgid ""
+"ZBackup is a globally-deduplicating backup tool, based on the\n"
+"ideas found in Rsync.  Feed a large @file{.tar} into it, and it will\n"
+"store duplicate regions of it only once, then compress and optionally\n"
+"encrypt the result.  Feed another @file{.tar} file, and it will also\n"
+"re-use any data found in any previous backups.  This way only new\n"
+"changes are stored, and as long as the files are not very different,\n"
+"the amount of storage required is very low.  Any of the backup files\n"
+"stored previously can be read back in full at any time.  The program\n"
+"is format-agnostic, so you can feed virtually any files to it."
+msgstr ""
+
+#: gnu/packages/backup.scm:1062
+msgid "Ext2/3/4 file system dump/restore utilities"
+msgstr ""
+
+#: gnu/packages/backup.scm:1063
+msgid ""
+"Dump examines files in a file system, determines which ones\n"
+"need to be backed up, and copies those files to a specified disk, tape or\n"
+"other storage medium.  Subsequent incremental backups can then be layered on\n"
+"top of the full backup.  The restore command performs the inverse function of\n"
+"dump; it can restore a full backup of a file system.  Single files and\n"
+"directory subtrees may also be restored from full or partial backups in\n"
+"interactive mode."
+msgstr ""
+
+#: gnu/packages/backup.scm:1109
 msgid "Differential backup and restore"
 msgstr "Sauvegardes et restaurations différentiels"
 
-#: gnu/packages/backup.scm:1001
+#: gnu/packages/backup.scm:1110
 msgid ""
 "Burp is a network backup and restore program.  It attempts\n"
 "to reduce network traffic and the amount of space that is used by each\n"
@@ -1659,11 +1942,11 @@ msgstr ""
 "des morceaux de texte dans un flux. L'implantation GNU ajoute plusieurs extensions\n"
 "à l'utilitaire standard."
 
-#: gnu/packages/base.scm:190
+#: gnu/packages/base.scm:205
 msgid "Managing tar archives"
 msgstr "Gestion d'archives tar"
 
-#: gnu/packages/base.scm:192
+#: gnu/packages/base.scm:207
 msgid ""
 "Tar provides the ability to create tar archives, as well as the\n"
 "ability to extract, update or list files in an existing archive.  It is\n"
@@ -1679,11 +1962,11 @@ msgstr ""
 "les permissions et les dates de création/modification. GNU tar ajoute de\n"
 "nombreuses extensions à l'utilaire standard."
 
-#: gnu/packages/base.scm:221
+#: gnu/packages/base.scm:236
 msgid "Apply differences to originals, with optional backups"
 msgstr "Applique les différences aux originaux, avec sauvegardes optionnelles"
 
-#: gnu/packages/base.scm:223
+#: gnu/packages/base.scm:238
 msgid ""
 "Patch is a program that applies changes to files based on differences\n"
 "laid out as by the program \"diff\".  The changes may be applied to one or more\n"
@@ -1697,11 +1980,11 @@ msgstr ""
 "accepte différents formats diff. Il peut aussi être utilisé pour annuler des\n"
 "différences appliquées antérieurement."
 
-#: gnu/packages/base.scm:244
+#: gnu/packages/base.scm:259
 msgid "Comparing and merging files"
 msgstr "Comparaison et fusion des fichiers"
 
-#: gnu/packages/base.scm:246
+#: gnu/packages/base.scm:261
 msgid ""
 "GNU Diffutils is a package containing tools for finding the\n"
 "differences between files.  The \"diff\" command is used to show how two files\n"
@@ -1715,11 +1998,11 @@ msgstr ""
 "numéros de lignes et décalages où ils diffèrent. « diff3 » permet de comparer\n"
 "trois fichiers. Enfin, « sdiff » offre un moyen interactif de fusionner deux fichiers."
 
-#: gnu/packages/base.scm:291
+#: gnu/packages/base.scm:295
 msgid "Operating on files matching given criteria"
 msgstr "Opération sur les fichiers correspondant au critère donné"
 
-#: gnu/packages/base.scm:293
+#: gnu/packages/base.scm:297
 msgid ""
 "Findutils supplies the basic file directory searching utilities of the\n"
 "GNU system.  It consists of two primary searching utilities: \"find\"\n"
@@ -1735,11 +2018,11 @@ msgstr ""
 "sont inclus : \"updatedb\" met à jour la base de données et \"xargs\" peut être utilisé \n"
 "pour appliquer des commandes avec des arguments longs et arbitraires."
 
-#: gnu/packages/base.scm:355
+#: gnu/packages/base.scm:375
 msgid "Core GNU utilities (file, text, shell)"
 msgstr "Utilitaires GNU (fichier, texte, shell)"
 
-#: gnu/packages/base.scm:357
+#: gnu/packages/base.scm:377
 msgid ""
 "GNU Coreutils package includes all of the basic command-line tools that\n"
 "are expected in a POSIX system, excluding shell.  This package is the union of\n"
@@ -1753,11 +2036,11 @@ msgstr ""
 "ces outils proposent des fonctionnalités supplémentaires par rapport à\n"
 "ce qui est indiqué dans le standard POSIX."
 
-#: gnu/packages/base.scm:405
+#: gnu/packages/base.scm:453
 msgid "Remake files automatically"
 msgstr "Recompiler les fichiers automatiquement"
 
-#: gnu/packages/base.scm:407
+#: gnu/packages/base.scm:455
 msgid ""
 "Make is a program that is used to control the production of\n"
 "executables or other files from their source files.  The process is\n"
@@ -1774,11 +2057,11 @@ msgstr ""
 "regénérés. GNU make possède beaucoup d'extensions en plus de\n"
 "l'utilitaire standard."
 
-#: gnu/packages/base.scm:453
+#: gnu/packages/base.scm:536
 msgid "Binary utilities: bfd gas gprof ld"
 msgstr "Utilitaires binaires: bfd gas gprof ld"
 
-#: gnu/packages/base.scm:455
+#: gnu/packages/base.scm:538
 msgid ""
 "GNU Binutils is a collection of tools for working with binary files.\n"
 "Perhaps the most notable are \"ld\", a linker, and \"as\", an assembler.\n"
@@ -1794,11 +2077,11 @@ msgstr ""
 "des archives. La bibliothèque \"bfd\", permettant de travailler avec des exécutables et des\n"
 "des formats objet, est aussi incluse."
 
-#: gnu/packages/base.scm:557
+#: gnu/packages/base.scm:672
 msgid "The linker wrapper"
 msgstr "L'enveloppe de l'éditeur de lien"
 
-#: gnu/packages/base.scm:559
+#: gnu/packages/base.scm:674
 msgid ""
 "The linker wrapper (or @code{ld-wrapper}) wraps the linker to add any\n"
 "missing @code{-rpath} flags, and to detect any misuse of libraries outside of\n"
@@ -1808,11 +2091,11 @@ msgstr ""
 "liens pour ajouter les drapeaux @code{-rpath} absents et pour détecter la\n"
 "mauvaise utilisation de bibliothèques en dehors du dépôt."
 
-#: gnu/packages/base.scm:810
+#: gnu/packages/base.scm:925
 msgid "The GNU C Library"
 msgstr "La bibliothèque GNU C"
 
-#: gnu/packages/base.scm:812
+#: gnu/packages/base.scm:927
 msgid ""
 "Any Unix-like operating system needs a C library: the library which\n"
 "defines the \"system calls\" and other basic facilities such as open, malloc,\n"
@@ -1826,11 +2109,11 @@ msgstr ""
 "telles que open, malloc, printf, exit, ... La bibliothèque GNU C est utilisée comme\n"
 "bibliothèque C dans les systèmes GNU et la plupart des systèmes basés sur le noyau Linux."
 
-#: gnu/packages/base.scm:1018
+#: gnu/packages/base.scm:1046
 msgid "All the locales supported by the GNU C Library"
 msgstr "Tous les paramètres de régionalisation pris en charge par la bibliothèque C de GNU"
 
-#: gnu/packages/base.scm:1020
+#: gnu/packages/base.scm:1048
 msgid ""
 "This package provides all the locales supported by the GNU C Library,\n"
 "more than 400 in total.  To use them set the @code{LOCPATH} environment variable\n"
@@ -1840,11 +2123,11 @@ msgstr ""
 "bibliothèque C de GNU.  Plus de 400 en tout.  Pour les utiliser, paramétrez la variable\n"
 "d'environnement @code{LOCPATH} au sous-répertoire @code{share/locale} de ce paquet."
 
-#: gnu/packages/base.scm:1124
+#: gnu/packages/base.scm:1152
 msgid "Small sample of UTF-8 locales"
 msgstr "Petit ensemble de paramètres de régionalisation UTF-8"
 
-#: gnu/packages/base.scm:1126
+#: gnu/packages/base.scm:1154
 msgid ""
 "This package provides a small sample of UTF-8 locales mostly useful in\n"
 "test environments."
@@ -1852,11 +2135,11 @@ msgstr ""
 "Ce paquet fournit un petit ensemble de paramètres de régionalisation UTF-8\n"
 "surtout utiles dans les environnements de test."
 
-#: gnu/packages/base.scm:1163
+#: gnu/packages/base.scm:1185
 msgid "Find full path of shell commands"
 msgstr "Chercher les chemins complets de commandes du shell"
 
-#: gnu/packages/base.scm:1165
+#: gnu/packages/base.scm:1187
 msgid ""
 "The which program finds the location of executables in PATH, with a\n"
 "variety of options.  It is an alternative to the shell \"type\" built-in\n"
@@ -1866,11 +2149,11 @@ msgstr ""
 "avec diverses options.  C'est une alternative à la commande « type » intégrée\n"
 "dans le shell."
 
-#: gnu/packages/base.scm:1261
+#: gnu/packages/base.scm:1292
 msgid "Database of current and historical time zones"
 msgstr "Base de données des fuseaux horaires courant et historiques"
 
-#: gnu/packages/base.scm:1262
+#: gnu/packages/base.scm:1293
 msgid ""
 "The Time Zone Database (often called tz or zoneinfo)\n"
 "contains code and data that represent the history of local time for many\n"
@@ -1884,11 +2167,11 @@ msgstr ""
 "pour refléter les changements effectués par les entités politiques aux limites de ces zones,\n"
 "les décalages UTC et les changements d'heures."
 
-#: gnu/packages/base.scm:1318
+#: gnu/packages/base.scm:1349
 msgid "Character set conversion library"
 msgstr "Bibliothèque de conversion de jeux de caractères"
 
-#: gnu/packages/base.scm:1320
+#: gnu/packages/base.scm:1351
 msgid ""
 "libiconv provides an implementation of the iconv function for systems\n"
 "that lack it.  iconv is used to convert between character encodings in a\n"
@@ -1899,11 +2182,11 @@ msgstr ""
 "de caractères dans un programme.  Elle prend en charge une grande gamme\n"
 "d'encodages."
 
-#: gnu/packages/bittorrent.scm:118
+#: gnu/packages/bittorrent.scm:114
 msgid "Fast and easy BitTorrent client"
 msgstr "Client BitTorrent rapide et facile"
 
-#: gnu/packages/bittorrent.scm:120
+#: gnu/packages/bittorrent.scm:116
 msgid ""
 "Transmission is a BitTorrent client that comes with graphical,\n"
 "textual, and Web user interfaces.  Transmission also has a daemon for\n"
@@ -1915,11 +2198,11 @@ msgstr ""
 "sans surveillance.  Il prend en charge la découverte locale des pairs, le chiffrement\n"
 "complet, la DHC, μTP, PEX et les liens Magnet."
 
-#: gnu/packages/bittorrent.scm:152
+#: gnu/packages/bittorrent.scm:148
 msgid "BitTorrent library of rtorrent"
 msgstr "Bibliothèque BitTorrent de rtorrent"
 
-#: gnu/packages/bittorrent.scm:154
+#: gnu/packages/bittorrent.scm:150
 msgid ""
 "LibTorrent is a BitTorrent library used by and developed in parallel\n"
 "with the BitTorrent client rtorrent.  It is written in C++ with emphasis on\n"
@@ -1929,11 +2212,11 @@ msgstr ""
 "parallèle au client BitTorrent rtorrent.  Elle est écrite en C++ et se concentre\n"
 "sur la vitesse et l'efficacité."
 
-#: gnu/packages/bittorrent.scm:181
+#: gnu/packages/bittorrent.scm:177
 msgid "BitTorrent client with ncurses interface"
 msgstr "Client BitTorrent avec une interface ncurses"
 
-#: gnu/packages/bittorrent.scm:183
+#: gnu/packages/bittorrent.scm:179
 msgid ""
 "rTorrent is a BitTorrent client with an ncurses interface.  It supports\n"
 "full encryption, DHT, PEX, and Magnet Links.  It can also be controlled via\n"
@@ -1943,11 +2226,11 @@ msgstr ""
 "en charge le chiffrement complet, la DHT, PEX et les liens Magnet.  Il\n"
 "peut aussi être contrôlé via XML-RPC par SCGI."
 
-#: gnu/packages/bittorrent.scm:217 gnu/packages/bittorrent.scm:258
+#: gnu/packages/bittorrent.scm:211 gnu/packages/bittorrent.scm:252
 msgid "Console client for the Transmission BitTorrent daemon"
 msgstr "Client en console pour le démon BitTorrent Transmission"
 
-#: gnu/packages/bittorrent.scm:218
+#: gnu/packages/bittorrent.scm:212
 msgid ""
 "Tremc is a console client, with a curses interface, for the\n"
 "Transmission BitTorrent daemon."
@@ -1955,7 +2238,7 @@ msgstr ""
 "Tremc est un client en console, avec une interface curses pour\n"
 "le démon BitTorrent Transmission."
 
-#: gnu/packages/bittorrent.scm:259
+#: gnu/packages/bittorrent.scm:253
 msgid ""
 "Transmission-remote-cli is a console client, with a curses\n"
 "interface, for the Transmission BitTorrent daemon.  This package is no longer\n"
@@ -1965,11 +2248,11 @@ msgstr ""
 "curses, pour le démon BitTorrent Transmission.  Ce paquet n'est plus maintenu\n"
 "en amont."
 
-#: gnu/packages/bittorrent.scm:307
+#: gnu/packages/bittorrent.scm:301
 msgid "Utility for parallel downloading files"
 msgstr "Utilitaire pour le téléchargement en parallèle de fichiers"
 
-#: gnu/packages/bittorrent.scm:309
+#: gnu/packages/bittorrent.scm:303
 msgid ""
 "Aria2 is a lightweight, multi-protocol & multi-source command-line\n"
 "download utility.  It supports HTTP/HTTPS, FTP, SFTP, BitTorrent and Metalink.\n"
@@ -1979,11 +2262,11 @@ msgstr ""
 "en ligne de commande.  Il prend en charge le HTTP/HTTP, le FTP, le SFTP, BitTorrent et\n"
 "Metalink.  Aria2 peut être manipulé via les interfaces JSON-RPC et XML-RPC incluses."
 
-#: gnu/packages/bittorrent.scm:340
+#: gnu/packages/bittorrent.scm:334
 msgid "Universal download manager with GTK+ interface"
 msgstr "Gestionnaire de téléchargement universel avec une interface GTK+"
 
-#: gnu/packages/bittorrent.scm:342
+#: gnu/packages/bittorrent.scm:336
 msgid ""
 "uGet is portable download manager with GTK+ interface supporting\n"
 "HTTP, HTTPS, BitTorrent and Metalink, supporting multi-connection\n"
@@ -1994,11 +2277,11 @@ msgstr ""
 "téléchargements avec plusieurs connexions, les téléchargements programmés\n"
 "et la limitation de débit."
 
-#: gnu/packages/bittorrent.scm:372
+#: gnu/packages/bittorrent.scm:366
 msgid "Utility to create BitTorrent metainfo files"
 msgstr "Utilitaire pour créer des fichiers metainfo pour BitTorrent"
 
-#: gnu/packages/bittorrent.scm:374
+#: gnu/packages/bittorrent.scm:368
 msgid ""
 "mktorrent is a simple command-line utility to create BitTorrent\n"
 "@dfn{metainfo} files, often known simply as @dfn{torrents}, from both single\n"
@@ -2015,13 +2298,13 @@ msgstr ""
 "se fait sur plusieurs threads et prendra en compte le nombre de cœurs du processeur\n"
 "lorsque c'est possible."
 
-#: gnu/packages/bittorrent.scm:413
-msgid "Feature complete BitTorrent implementation"
+#: gnu/packages/bittorrent.scm:406
+msgid "Feature-complete BitTorrent implementation"
 msgstr "Implémentation BitTorrent complète"
 
-#: gnu/packages/bittorrent.scm:415
+#: gnu/packages/bittorrent.scm:408
 msgid ""
-"libtorrent-rasterbar is a feature complete C++ BitTorrent implementation\n"
+"libtorrent-rasterbar is a feature-complete C++ BitTorrent implementation\n"
 "focusing on efficiency and scalability.  It runs on embedded devices as well as\n"
 "desktops."
 msgstr ""
@@ -2029,11 +2312,11 @@ msgstr ""
 "qui se concentre sur l'efficacité et le passage à l'échelle.  Elle tourne sur\n"
 "de l'embarqué comme sur des ordinateurs de bureau."
 
-#: gnu/packages/bittorrent.scm:464
+#: gnu/packages/bittorrent.scm:457
 msgid "Graphical BitTorrent client"
 msgstr "Client BitTorrent graphique"
 
-#: gnu/packages/bittorrent.scm:466
+#: gnu/packages/bittorrent.scm:459
 msgid ""
 "qBittorrent is a BitTorrent client programmed in C++/Qt that uses\n"
 "libtorrent (sometimes called libtorrent-rasterbar) by Arvid Norberg.\n"
@@ -2049,11 +2332,11 @@ msgstr ""
 "existent.  qBittorrent est rapide, stable et fournit une prise en charge\n"
 "de l'unicode ainsi que d'autres fonctionnalités."
 
-#: gnu/packages/bittorrent.scm:501
+#: gnu/packages/bittorrent.scm:530
 msgid "Fully-featured cross-platform ​BitTorrent client"
 msgstr "Client BitTorrent multi-plateforme complet"
 
-#: gnu/packages/bittorrent.scm:503
+#: gnu/packages/bittorrent.scm:532
 msgid ""
 "Deluge contains the common features to BitTorrent clients such as\n"
 "Protocol Encryption, DHT, Local Peer Discovery (LSD), Peer Exchange\n"
@@ -2109,11 +2392,11 @@ msgstr ""
 "certificats racines et intermédiaires de Let's Encrypt.  Il est conçu pour\n"
 "fonctionner avec Guix en interne."
 
-#: gnu/packages/compression.scm:114
+#: gnu/packages/compression.scm:125
 msgid "Compression library"
 msgstr "Bibliothèque de compression"
 
-#: gnu/packages/compression.scm:116
+#: gnu/packages/compression.scm:127
 msgid ""
 "zlib is designed to be a free, general-purpose, legally unencumbered --\n"
 "that is, not covered by any patents -- lossless data-compression library for\n"
@@ -2135,11 +2418,11 @@ msgstr ""
 "indépendante des données d'entrées et peut être réduite si nécessaire, contre une perte\n"
 "de compression."
 
-#: gnu/packages/compression.scm:153
+#: gnu/packages/compression.scm:164
 msgid "Zip Compression library"
 msgstr "Bibliothèque de compression zip"
 
-#: gnu/packages/compression.scm:155
+#: gnu/packages/compression.scm:166
 msgid ""
 "Minizip is a minimalistic library that supports compressing,\n"
 "extracting and viewing ZIP archives.  This version is extracted from\n"
@@ -2149,11 +2432,11 @@ msgstr ""
 "compression, l'extraction et la visualisation des archives Zip.  Cette\n"
 "version est extraite les sources de @code{zlib}."
 
-#: gnu/packages/compression.scm:174
+#: gnu/packages/compression.scm:185
 msgid "Replacement for Sun's 'jar' utility"
 msgstr "Remplaçant de l'utilitaire « jar » de Sun"
 
-#: gnu/packages/compression.scm:176
+#: gnu/packages/compression.scm:187
 msgid ""
 "FastJar is an attempt to create a much faster replacement for Sun's\n"
 "@code{jar} utility.  Instead of being written in Java, FastJar is written in C."
@@ -2162,11 +2445,11 @@ msgstr ""
 "l'utilitaire @code{jar} de Sun.  Au lieu d'être écrit en Java, FastJar est\n"
 "écrit en C."
 
-#: gnu/packages/compression.scm:205
+#: gnu/packages/compression.scm:216
 msgid "C library for manipulating POSIX tar files"
 msgstr "Bibliothèque C pour manipuler des fichiers tar POSIX"
 
-#: gnu/packages/compression.scm:207
+#: gnu/packages/compression.scm:218
 msgid ""
 "libtar is a C library for manipulating POSIX tar files.  It handles\n"
 "adding and extracting files to/from a tar archive."
@@ -2174,11 +2457,11 @@ msgstr ""
 "libtar est une bibliothèque C pour manipuler des fichiers tar POSIX.  Elle\n"
 "gère l'ajout et l'extraction de fichiers d'une archive tar."
 
-#: gnu/packages/compression.scm:224
+#: gnu/packages/compression.scm:235
 msgid "General file (de)compression (using lzw)"
 msgstr "Compression et décompression de fichier avec lzw"
 
-#: gnu/packages/compression.scm:253
+#: gnu/packages/compression.scm:264
 msgid ""
 "GNU Gzip provides data compression and decompression utilities; the\n"
 "typical extension is \".gz\".  Unlike the \"zip\" format, it compresses a single\n"
@@ -2190,11 +2473,11 @@ msgstr ""
 "compresse un unique fichier.  En conséquence, il est souvent utilisé avec « tar »,\n"
 "ce qui résulte en des fichiers « .tar.gz » ou « .tgz », etc."
 
-#: gnu/packages/compression.scm:347
+#: gnu/packages/compression.scm:372
 msgid "High-quality data compression program"
 msgstr "Programme de compression des données de grande qualité"
 
-#: gnu/packages/compression.scm:349
+#: gnu/packages/compression.scm:374
 msgid ""
 "bzip2 is a freely available, patent free (see below), high-quality data\n"
 "compressor.  It typically compresses files to within 10% to 15% of the best\n"
@@ -2208,11 +2491,11 @@ msgstr ""
 "statistiques) tout en étant à peu près deux fois plus rapide pour la compression et\n"
 "six fois plus rapide pour la décompression."
 
-#: gnu/packages/compression.scm:383
+#: gnu/packages/compression.scm:429
 msgid "Parallel bzip2 compression utility"
 msgstr "Utilitaire de compression bzip2 parallèle"
 
-#: gnu/packages/compression.scm:385
+#: gnu/packages/compression.scm:431
 msgid ""
 "lbzip2 is a multi-threaded compression utility with support for the\n"
 "bzip2 compressed file format.  lbzip2 can process standard bz2 files in\n"
@@ -2229,11 +2512,11 @@ msgstr ""
 "lbzip2 est entièrement compatible avec bzip2 — aussi bien au niveau du format de\n"
 "fichiers que de la ligne de commande."
 
-#: gnu/packages/compression.scm:416
+#: gnu/packages/compression.scm:464
 msgid "Parallel bzip2 implementation"
 msgstr "Implémentation parallèle de bzip2"
 
-#: gnu/packages/compression.scm:418
+#: gnu/packages/compression.scm:466
 msgid ""
 "Pbzip2 is a parallel implementation of the bzip2 block-sorting file\n"
 "compressor that uses pthreads and achieves near-linear speedup on SMP machines.\n"
@@ -2246,11 +2529,11 @@ msgstr ""
 "compatible avec bzip2 v1.0.2 (c.-à-d. tout ce qui est compressé avec pbzip2 peut\n"
 "être décompressé avec bzip2)."
 
-#: gnu/packages/compression.scm:456
+#: gnu/packages/compression.scm:504
 msgid "General-purpose data compression"
 msgstr "Compression de données générique"
 
-#: gnu/packages/compression.scm:458
+#: gnu/packages/compression.scm:506
 msgid ""
 "XZ Utils is free general-purpose data compression software with high\n"
 "compression ratio.  XZ Utils were written for POSIX-like systems, but also\n"
@@ -2272,11 +2555,11 @@ msgstr ""
 "des fichiers typiques, XZ Utils crée une sortie 30% plus petite de gzip et 15 % plus\n"
 "petite que bzip2."
 
-#: gnu/packages/compression.scm:494
+#: gnu/packages/compression.scm:542
 msgid "LHA archive decompressor"
 msgstr "Décompresseur d'archives LHA"
 
-#: gnu/packages/compression.scm:495
+#: gnu/packages/compression.scm:543
 msgid ""
 "Lhasa is a replacement for the Unix LHA tool, for\n"
 "decompressing .lzh (LHA / LHarc) and .lzs (LArc) archives.  The backend for the\n"
@@ -2292,11 +2575,11 @@ msgstr ""
 "la même sortie que l'outil Unix LHA non libre, pour qu'il puisse devenir un remplaçant\n"
 "direct et libre."
 
-#: gnu/packages/compression.scm:519
+#: gnu/packages/compression.scm:567
 msgid "Data compression library suitable for real-time data de-/compression"
 msgstr "Bibliothèque de compression de données pour la compression et décompression en temps réel"
 
-#: gnu/packages/compression.scm:521
+#: gnu/packages/compression.scm:569
 msgid ""
 "LZO is a data compression library which is suitable for data\n"
 "de-/compression in real-time.  This means it favours speed over\n"
@@ -2312,11 +2595,11 @@ msgstr ""
 "LZO est écrit en C ANSI.  Le code source et le format de fichier compressé ont\n"
 "tous deux été conçus pour être portables à travers différentes plateformes."
 
-#: gnu/packages/compression.scm:544
+#: gnu/packages/compression.scm:592
 msgid "Compress or expand files"
 msgstr "Compresse et décompresse des fichiers"
 
-#: gnu/packages/compression.scm:546
+#: gnu/packages/compression.scm:594
 msgid ""
 "Lzop is a file compressor which is very similar to gzip.  Lzop uses the\n"
 "LZO data compression library for compression services, and its main advantages\n"
@@ -2328,11 +2611,11 @@ msgstr ""
 "son principal avantage sur gzip est sa vitesse de compression et de décompression\n"
 "bien plus grande (au prix d'une perte de ratio de compression)."
 
-#: gnu/packages/compression.scm:565
+#: gnu/packages/compression.scm:613
 msgid "Lossless data compressor based on the LZMA algorithm"
 msgstr "Compresseur de données sans perte basé sur l'algorithme LZMA"
 
-#: gnu/packages/compression.scm:567
+#: gnu/packages/compression.scm:615
 msgid ""
 "Lzip is a lossless data compressor with a user interface similar to the\n"
 "one of gzip or bzip2.  Lzip decompresses almost as fast as gzip and compresses\n"
@@ -2344,11 +2627,11 @@ msgstr ""
 "mieux que bzip2, ce qui le rend utile pour la distribution de logiciels et l'archivage de\n"
 "données.  Lzip est une implémentation propre de l'algorithme LZMA."
 
-#: gnu/packages/compression.scm:586
+#: gnu/packages/compression.scm:634
 msgid "Recover and decompress data from damaged lzip files"
 msgstr "Récupère et décompresse des données de fichiers lzip endomagés"
 
-#: gnu/packages/compression.scm:588
+#: gnu/packages/compression.scm:636
 msgid ""
 "Lziprecover is a data recovery tool and decompressor for files in the lzip\n"
 "compressed data format (.lz).  It can test the integrity of lzip files, extract\n"
@@ -2376,11 +2659,11 @@ msgstr ""
 "Ce paquet inclit aussi @command{unzcrash}, un outil qui teste la robustesse des\n"
 "décompresseurs lorsqu'ils voient une entrée corrompue."
 
-#: gnu/packages/compression.scm:643
+#: gnu/packages/compression.scm:691
 msgid "Archives in shell scripts, uuencode/uudecode"
 msgstr "Archivage dans des scripts shell, uuencode et uudecode"
 
-#: gnu/packages/compression.scm:645
+#: gnu/packages/compression.scm:693
 msgid ""
 "GNU sharutils is a package for creating and manipulating shell\n"
 "archives that can be readily emailed.  A shell archive is a file that can be\n"
@@ -2388,11 +2671,11 @@ msgid ""
 "This package is mostly for compatibility and historical interest."
 msgstr ""
 
-#: gnu/packages/compression.scm:677
+#: gnu/packages/compression.scm:725
 msgid "Library for SoundFont decompression"
 msgstr "Bibliothèque pour la décompression de SoundFont"
 
-#: gnu/packages/compression.scm:679
+#: gnu/packages/compression.scm:727
 msgid ""
 "SfArkLib is a C++ library for decompressing SoundFont files compressed\n"
 "with the sfArk algorithm."
@@ -2400,31 +2683,31 @@ msgstr ""
 "SfArkLib est une bibliothèque C++ pour décompresser des fichiers SoundFont\n"
 "compressés avec l'algorithme sfArk."
 
-#: gnu/packages/compression.scm:714
+#: gnu/packages/compression.scm:762
 msgid "Basic sfArk decompressor"
 msgstr ""
 
-#: gnu/packages/compression.scm:715
+#: gnu/packages/compression.scm:763
 msgid ""
 "SfArk extractor converts SoundFonts in the compressed legacy\n"
 "sfArk file format to the uncompressed sf2 format."
 msgstr ""
 
-#: gnu/packages/compression.scm:733
+#: gnu/packages/compression.scm:781
 msgid "Compression tools for some formats used by Microsoft"
 msgstr ""
 
-#: gnu/packages/compression.scm:735
+#: gnu/packages/compression.scm:783
 msgid ""
 "The purpose of libmspack is to provide both compression and\n"
 "decompression of some loosely related file formats used by Microsoft."
 msgstr ""
 
-#: gnu/packages/compression.scm:776
+#: gnu/packages/compression.scm:824
 msgid "Compression algorithm focused on speed"
 msgstr ""
 
-#: gnu/packages/compression.scm:777
+#: gnu/packages/compression.scm:825
 msgid ""
 "LZ4 is a lossless compression algorithm, providing\n"
 "compression speed at 400 MB/s per core (0.16 Bytes/cycle).  It also features an\n"
@@ -2433,11 +2716,11 @@ msgid ""
 "time for compression ratio."
 msgstr ""
 
-#: gnu/packages/compression.scm:819
+#: gnu/packages/compression.scm:867
 msgid "Tools to create and extract squashfs file systems"
 msgstr ""
 
-#: gnu/packages/compression.scm:821
+#: gnu/packages/compression.scm:869
 msgid ""
 "Squashfs is a highly compressed read-only file system for Linux.  It uses\n"
 "zlib to compress files, inodes, and directories.  All blocks are packed to\n"
@@ -2447,21 +2730,21 @@ msgid ""
 "extract such file systems."
 msgstr ""
 
-#: gnu/packages/compression.scm:858
+#: gnu/packages/compression.scm:907
 msgid "Parallel implementation of gzip"
 msgstr ""
 
-#: gnu/packages/compression.scm:860
+#: gnu/packages/compression.scm:909
 msgid ""
 "This package provides a parallel implementation of gzip that exploits\n"
 "multiple processors and multiple cores when compressing data."
 msgstr ""
 
-#: gnu/packages/compression.scm:884
+#: gnu/packages/compression.scm:933
 msgid "Parallel indexing implementation of LZMA"
 msgstr ""
 
-#: gnu/packages/compression.scm:886
+#: gnu/packages/compression.scm:935
 msgid ""
 "The existing XZ Utils provide great compression in the .xz file format,\n"
 "but they produce just one big block of compressed data.  Pixz instead produces\n"
@@ -2470,11 +2753,11 @@ msgid ""
 "tarballs."
 msgstr ""
 
-#: gnu/packages/compression.scm:921
+#: gnu/packages/compression.scm:970
 msgid "Patch binary files"
 msgstr ""
 
-#: gnu/packages/compression.scm:923
+#: gnu/packages/compression.scm:972
 msgid ""
 "@command{bsdiff} and @command{bspatch} are tools for building and\n"
 "applying patches to binary files.  By using suffix sorting (specifically\n"
@@ -2483,19 +2766,19 @@ msgid ""
 "smaller than those produced by @code{Xdelta}."
 msgstr ""
 
-#: gnu/packages/compression.scm:969
+#: gnu/packages/compression.scm:1018
 msgid "Tool to unpack Cabinet archives"
 msgstr ""
 
-#: gnu/packages/compression.scm:970
+#: gnu/packages/compression.scm:1019
 msgid "Extracts files out of Microsoft Cabinet (.cab) archives"
 msgstr ""
 
-#: gnu/packages/compression.scm:1003
+#: gnu/packages/compression.scm:1052
 msgid "Delta encoder for binary files"
 msgstr ""
 
-#: gnu/packages/compression.scm:1004
+#: gnu/packages/compression.scm:1053
 msgid ""
 "xdelta encodes only the differences between two binary files\n"
 "using the VCDIFF algorithm and patch file format described in RFC 3284.  It can\n"
@@ -2504,11 +2787,11 @@ msgid ""
 "human-readable output."
 msgstr ""
 
-#: gnu/packages/compression.scm:1037
+#: gnu/packages/compression.scm:1086
 msgid "Large file compressor with a very high compression ratio"
 msgstr ""
 
-#: gnu/packages/compression.scm:1038
+#: gnu/packages/compression.scm:1087
 msgid ""
 "lrzip is a compression utility that uses long-range\n"
 "redundancy reduction to improve the subsequent compression ratio of\n"
@@ -2519,11 +2802,11 @@ msgid ""
 "well as bzip2."
 msgstr ""
 
-#: gnu/packages/compression.scm:1066
+#: gnu/packages/compression.scm:1115
 msgid "Fast compressor/decompressor"
 msgstr ""
 
-#: gnu/packages/compression.scm:1067
+#: gnu/packages/compression.scm:1116
 msgid ""
 "Snappy is a compression/decompression library.  It does not\n"
 "aim for maximum compression, or compatibility with any other compression library;\n"
@@ -2533,31 +2816,31 @@ msgid ""
 "100% bigger."
 msgstr ""
 
-#: gnu/packages/compression.scm:1136
+#: gnu/packages/compression.scm:1185
 msgid "Command-line file archiver with high compression ratio"
 msgstr ""
 
-#: gnu/packages/compression.scm:1137
+#: gnu/packages/compression.scm:1186
 msgid ""
 "p7zip is a command-line port of 7-Zip, a file archiver that\n"
 "handles the 7z format which features very high compression ratios."
 msgstr ""
 
-#: gnu/packages/compression.scm:1178
+#: gnu/packages/compression.scm:1227
 msgid "Compressed C++ iostream"
 msgstr ""
 
-#: gnu/packages/compression.scm:1179
+#: gnu/packages/compression.scm:1228
 msgid ""
 "gzstream is a small library for providing zlib\n"
 "functionality in a C++ iostream."
 msgstr ""
 
-#: gnu/packages/compression.scm:1228
+#: gnu/packages/compression.scm:1277
 msgid "Incremental journaling archiver"
 msgstr ""
 
-#: gnu/packages/compression.scm:1229
+#: gnu/packages/compression.scm:1278
 msgid ""
 "ZPAQ is a command-line archiver for realistic situations with\n"
 "many duplicate and already compressed files.  It backs up only those files\n"
@@ -2571,21 +2854,21 @@ msgid ""
 "or junctions, and always follows hard links."
 msgstr ""
 
-#: gnu/packages/compression.scm:1329
+#: gnu/packages/compression.scm:1378
 msgid "Extract CAB files from InstallShield installers"
 msgstr ""
 
-#: gnu/packages/compression.scm:1331
+#: gnu/packages/compression.scm:1380
 msgid ""
 "@command{unshield} is a tool and library for extracting @file{.cab}\n"
 " archives from InstallShield installers."
 msgstr ""
 
-#: gnu/packages/compression.scm:1389
+#: gnu/packages/compression.scm:1436
 msgid "Zstandard real-time compression algorithm"
 msgstr ""
 
-#: gnu/packages/compression.scm:1390
+#: gnu/packages/compression.scm:1437
 msgid ""
 "Zstandard (@command{zstd}) is a lossless compression algorithm\n"
 "that combines very fast operation with a compression ratio comparable to that of\n"
@@ -2595,11 +2878,11 @@ msgid ""
 "speed."
 msgstr ""
 
-#: gnu/packages/compression.scm:1432
+#: gnu/packages/compression.scm:1479
 msgid "Threaded implementation of the Zstandard compression algorithm"
 msgstr ""
 
-#: gnu/packages/compression.scm:1433
+#: gnu/packages/compression.scm:1480
 msgid ""
 "Parallel Zstandard (PZstandard or @command{pzstd}) is a\n"
 "multi-threaded implementation of the @uref{http://zstd.net/, Zstandard\n"
@@ -2612,11 +2895,11 @@ msgid ""
 "the actual decompression, the other input and output."
 msgstr ""
 
-#: gnu/packages/compression.scm:1471
+#: gnu/packages/compression.scm:1518
 msgid "Compression and file packing utility"
 msgstr "Utilitaire de compression et de paquetage de fichiers"
 
-#: gnu/packages/compression.scm:1473
+#: gnu/packages/compression.scm:1520
 msgid ""
 "Zip is a compression and file packaging/archive utility.  Zip is useful\n"
 "for packaging a set of files for distribution, for archiving files, and for\n"
@@ -2644,11 +2927,11 @@ msgstr ""
 "pour chaque fichier.Des ratios de compression de 2 à 3 sont généralement\n"
 "atteignables pour les fichiers texte."
 
-#: gnu/packages/compression.scm:1535
+#: gnu/packages/compression.scm:1582
 msgid "Decompression and file extraction utility"
 msgstr "Utilitaire de décompression et d'extraction de fichiers"
 
-#: gnu/packages/compression.scm:1537
+#: gnu/packages/compression.scm:1584
 msgid ""
 "UnZip is an extraction utility for archives compressed in .zip format,\n"
 "also called \"zipfiles\".\n"
@@ -2665,19 +2948,19 @@ msgstr ""
 "vers le répertoire courant et ses sous-répertoires. Unzip recrée par défaut la\n"
 "structure des répertoires contenus dans l'archive."
 
-#: gnu/packages/compression.scm:1582
+#: gnu/packages/compression.scm:1629
 msgid "Library for accessing zip files"
 msgstr "Bibliothèque de manipulation des fichiers zip"
 
-#: gnu/packages/compression.scm:1584
+#: gnu/packages/compression.scm:1631
 msgid "ZZipLib is a library based on zlib for accessing zip files."
 msgstr "ZZipLib est une bibliothèque basée sur zlip pour la manipulation de fichiers zip."
 
-#: gnu/packages/compression.scm:1616
+#: gnu/packages/compression.scm:1656
 msgid "C library for reading, creating, and modifying zip archives"
 msgstr ""
 
-#: gnu/packages/compression.scm:1617
+#: gnu/packages/compression.scm:1657
 msgid ""
 "Libzip is a C library for reading, creating, and modifying\n"
 "zip archives.  Files can be added from data buffers, files, or compressed data\n"
@@ -2685,11 +2968,11 @@ msgid ""
 "archive can be reverted."
 msgstr ""
 
-#: gnu/packages/compression.scm:1650
+#: gnu/packages/compression.scm:1690
 msgid "Universal tool to manage file archives of various types"
 msgstr ""
 
-#: gnu/packages/compression.scm:1651
+#: gnu/packages/compression.scm:1691
 msgid ""
 "The main command is @command{aunpack} which extracts files\n"
 "from an archive.  The other commands provided are @command{apack} (to create\n"
@@ -2699,11 +2982,11 @@ msgid ""
 "of archives."
 msgstr ""
 
-#: gnu/packages/compression.scm:1675
+#: gnu/packages/compression.scm:1715
 msgid "Small, stand-alone lzip decompressor"
 msgstr ""
 
-#: gnu/packages/compression.scm:1677
+#: gnu/packages/compression.scm:1717
 msgid ""
 "Lunzip is a decompressor for files in the lzip compression format (.lz),\n"
 "written as a single small C tool with no dependencies.  This makes it\n"
@@ -2713,11 +2996,11 @@ msgid ""
 "Lunzip is intended to be fully compatible with the regular lzip package."
 msgstr ""
 
-#: gnu/packages/compression.scm:1702
+#: gnu/packages/compression.scm:1742
 msgid "Small, stand-alone lzip compressor and decompressor"
 msgstr "Compresseur et décompresseur lzip léger et autonome"
 
-#: gnu/packages/compression.scm:1704
+#: gnu/packages/compression.scm:1744
 msgid ""
 "Clzip is a compressor and decompressor for files in the lzip compression\n"
 "format (.lz), written as a single small C tool with no dependencies.  This makes\n"
@@ -2726,11 +3009,11 @@ msgid ""
 "Clzip is intended to be fully compatible with the regular lzip package."
 msgstr ""
 
-#: gnu/packages/compression.scm:1729
+#: gnu/packages/compression.scm:1770
 msgid "Lzip data compression C library"
 msgstr "Bibliothèque C de compression lzip"
 
-#: gnu/packages/compression.scm:1731
+#: gnu/packages/compression.scm:1772
 msgid ""
 "Lzlib is a C library for in-memory LZMA compression and decompression in\n"
 "the lzip format.  It supports integrity checking of the decompressed data, and\n"
@@ -2738,11 +3021,11 @@ msgid ""
 "corrupted input."
 msgstr ""
 
-#: gnu/packages/compression.scm:1753
+#: gnu/packages/compression.scm:1794
 msgid "Parallel lossless data compressor for the lzip format"
 msgstr ""
 
-#: gnu/packages/compression.scm:1755
+#: gnu/packages/compression.scm:1796
 msgid ""
 "Plzip is a massively parallel (multi-threaded) lossless data compressor\n"
 "and decompressor that uses the lzip file format (.lz).  Files produced by plzip\n"
@@ -2756,21 +3039,21 @@ msgid ""
 "single-member files which can't be decompressed in parallel."
 msgstr ""
 
-#: gnu/packages/compression.scm:1800
+#: gnu/packages/compression.scm:1829
 msgid "Tool for extracting Inno Setup installers"
 msgstr ""
 
-#: gnu/packages/compression.scm:1801
+#: gnu/packages/compression.scm:1830
 msgid ""
 "innoextract allows extracting Inno Setup installers under\n"
 "non-Windows systems without running the actual installer using wine."
 msgstr ""
 
-#: gnu/packages/compression.scm:1839
+#: gnu/packages/compression.scm:1868
 msgid "General-purpose lossless compression"
 msgstr ""
 
-#: gnu/packages/compression.scm:1840
+#: gnu/packages/compression.scm:1869
 msgid ""
 "This package provides the reference implementation of Brotli,\n"
 "a generic-purpose lossless compression algorithm that compresses data using a\n"
@@ -2782,11 +3065,22 @@ msgid ""
 "The specification of the Brotli Compressed Data Format is defined in RFC 7932."
 msgstr ""
 
-#: gnu/packages/compression.scm:1871
+#: gnu/packages/compression.scm:1889
+msgid "Python interface to google-brotli"
+msgstr "Interface d'extension Python pour google-brotli"
+
+#: gnu/packages/compression.scm:1890
+msgid ""
+"@code{python-google-brotli} provides a Python interface to\n"
+"@code{google-brotli}, an implementation of the Brotli lossless compression\n"
+"algorithm."
+msgstr ""
+
+#: gnu/packages/compression.scm:1911
 msgid "Portable lossless data compression library"
 msgstr "Bibliothèque de compression de données sans perte portable"
 
-#: gnu/packages/compression.scm:1872
+#: gnu/packages/compression.scm:1912
 msgid ""
 "UCL implements a number of compression algorithms that\n"
 "achieve an excellent compression ratio while allowing fast decompression.\n"
@@ -2796,11 +3090,11 @@ msgid ""
 "decompression is a little bit slower."
 msgstr ""
 
-#: gnu/packages/compression.scm:1918
+#: gnu/packages/compression.scm:1958
 msgid "Compression tool for executables"
 msgstr "Outil de compression pour les exécutables"
 
-#: gnu/packages/compression.scm:1920
+#: gnu/packages/compression.scm:1960
 msgid ""
 "The Ultimate Packer for eXecutables (UPX) is an executable file\n"
 "compressor.  UPX typically reduces the file size of programs and shared\n"
@@ -2808,11 +3102,11 @@ msgid ""
 "download times, and other distribution and storage costs."
 msgstr ""
 
-#: gnu/packages/compression.scm:1948
+#: gnu/packages/compression.scm:1988
 msgid "Qt/C++ wrapper for Minizip"
 msgstr ""
 
-#: gnu/packages/compression.scm:1949
+#: gnu/packages/compression.scm:1989
 msgid ""
 "QuaZIP is a simple C++ wrapper over Gilles Vollant's\n"
 "ZIP/UNZIP package that can be used to access ZIP archives.  It uses\n"
@@ -2826,11 +3120,11 @@ msgid ""
 "reading from and writing to ZIP archives. "
 msgstr ""
 
-#: gnu/packages/compression.scm:1991
+#: gnu/packages/compression.scm:2036
 msgid "Utilities that transparently operate on compressed files"
 msgstr "Utilitaires qui agissent sur des fichiers compressés de manière transparente"
 
-#: gnu/packages/compression.scm:1993
+#: gnu/packages/compression.scm:2038
 msgid ""
 "Zutils is a collection of utilities able to process any combination of\n"
 "compressed and uncompressed files transparently.  If any given file, including\n"
@@ -2847,22 +3141,22 @@ msgid ""
 "at run time, and must be installed separately."
 msgstr ""
 
-#: gnu/packages/compression.scm:2050
+#: gnu/packages/compression.scm:2095
 msgid "Extract makeself and mojo archives without running untrusted code"
 msgstr ""
 
-#: gnu/packages/compression.scm:2051
+#: gnu/packages/compression.scm:2096
 msgid ""
 "This package provides a script to unpack self-extracting\n"
 "archives generated by @command{makeself} or @command{mojo} without running the\n"
 "possibly untrusted extraction shell script."
 msgstr ""
 
-#: gnu/packages/compression.scm:2078
+#: gnu/packages/compression.scm:2123
 msgid "Original Lempel-Ziv compress/uncompress programs"
 msgstr ""
 
-#: gnu/packages/compression.scm:2079
+#: gnu/packages/compression.scm:2124
 msgid ""
 "(N)compress provides the original compress and uncompress\n"
 "programs that used to be the de facto UNIX standard for compressing and\n"
@@ -2870,32 +3164,95 @@ msgid ""
 "file compression algorithm."
 msgstr ""
 
-#: gnu/packages/databases.scm:174
+#: gnu/packages/compression.scm:2153
+msgid "Graphical front-end for archive operations"
+msgstr "Interface utilisateur graphique pour les opérations d'archivage"
+
+#: gnu/packages/compression.scm:2154
+msgid ""
+"Xarchiver is a front-end to various command line archiving\n"
+"tools.  It uses GTK+ tool-kit and is designed to be desktop-environment\n"
+"independent.  Supported formats are 7z, ARJ, bzip2, gzip, LHA, lzma, lzop,\n"
+"RAR, RPM, DEB, tar, and ZIP.  It cannot perform functions for archives, whose\n"
+"archiver is not installed."
+msgstr ""
+
+#: gnu/packages/compression.scm:2189
+msgid "Multithreaded tar utility"
+msgstr ""
+
+#: gnu/packages/compression.scm:2191
+msgid ""
+"Archive huge numbers of files, or split massive tar archives into smaller\n"
+"chunks."
+msgstr ""
+
+#: gnu/packages/compression.scm:2210
+msgid "Blocking, shuffling and lossless compression library"
+msgstr "Bibliothèque de compression bloquante, mélangeante et sans perte"
+
+#: gnu/packages/compression.scm:2212
+msgid ""
+"Blosc is a high performance compressor optimized for binary data. It has\n"
+"been designed to transmit data to the processor cache faster than the\n"
+"traditional, non-compressed, direct memory fetch approach via a\n"
+"@code{memcpy()} system call.  Blosc is meant not only to reduce the size of\n"
+"large datasets on-disk or in-memory, but also to accelerate memory-bound\n"
+"computations."
+msgstr ""
+
+#: gnu/packages/compression.scm:2249
+msgid "Error code modeler"
+msgstr ""
+
+#: gnu/packages/compression.scm:2250
+msgid ""
+"ECM is a utility that converts ECM files, i.e., CD data files\n"
+"with their error correction data losslessly rearranged for better compression,\n"
+"to their original, binary CD format."
+msgstr ""
+
+#: gnu/packages/compression.scm:2272
+msgid "Combination of the tar archiver and the lzip compressor"
+msgstr ""
+
+#: gnu/packages/compression.scm:2274
+msgid ""
+"Tarlz is a massively parallel (multi-threaded) combined implementation of\n"
+"the tar archiver and the lzip compressor.  Tarlz creates, lists, and extracts\n"
+"archives in a simplified and safer variant of the POSIX pax format compressed\n"
+"with lzip, keeping the alignment between tar members and lzip members.  The\n"
+"resulting multimember tar.lz archive is fully backward compatible with standard\n"
+"tar tools like GNU tar, which treat it like any other tar.lz archive.  Tarlz\n"
+"can append files to the end of such compressed archives."
+msgstr ""
+
+#: gnu/packages/databases.scm:183
 msgid "Clustered RDF storage and query engine"
 msgstr ""
 
-#: gnu/packages/databases.scm:175
+#: gnu/packages/databases.scm:184
 msgid ""
 "4store is a RDF/SPARQL store written in C, supporting\n"
 "either single machines or networked clusters."
 msgstr ""
 
-#: gnu/packages/databases.scm:217
+#: gnu/packages/databases.scm:226
 msgid "@code{mgo} offers a rich MongoDB driver for Go."
 msgstr ""
 
-#: gnu/packages/databases.scm:219
+#: gnu/packages/databases.scm:228
 msgid ""
 "@code{mgo} (pronounced as mango) is a MongoDB driver for the Go language.\n"
 "It implements a rich selection of features under a simple API following\n"
 "standard Go idioms."
 msgstr ""
 
-#: gnu/packages/databases.scm:278
+#: gnu/packages/databases.scm:274
 msgid "Run temporary PostgreSQL databases"
 msgstr "Lance des bases de données PostgreSQL temporaires"
 
-#: gnu/packages/databases.scm:280
+#: gnu/packages/databases.scm:276
 msgid ""
 "@code{pg_tmp} creates temporary PostgreSQL databases, suitable for tasks\n"
 "like running software test suites.  Temporary databases created with\n"
@@ -2904,43 +3261,43 @@ msgid ""
 "60)."
 msgstr ""
 
-#: gnu/packages/databases.scm:307
+#: gnu/packages/databases.scm:303
 msgid "Utility for dumping and restoring ElasticSearch indexes"
 msgstr ""
 
-#: gnu/packages/databases.scm:309
+#: gnu/packages/databases.scm:305
 msgid ""
 "This package provides a utility for dumping the contents of an\n"
 "ElasticSearch index to a compressed file and restoring the dumpfile back to an\n"
 "ElasticSearch server"
 msgstr ""
 
-#: gnu/packages/databases.scm:334
+#: gnu/packages/databases.scm:330
 msgid "Fast key-value storage library"
 msgstr ""
 
-#: gnu/packages/databases.scm:336
+#: gnu/packages/databases.scm:332
 msgid ""
 "LevelDB is a fast key-value storage library that provides an ordered\n"
 "mapping from string keys to string values."
 msgstr ""
 
-#: gnu/packages/databases.scm:356
+#: gnu/packages/databases.scm:352
 msgid "In-memory caching service"
 msgstr ""
 
-#: gnu/packages/databases.scm:357
+#: gnu/packages/databases.scm:353
 msgid ""
 "Memcached is an in-memory key-value store.  It has a small\n"
 "and generic API, and was originally intended for use with dynamic web\n"
 "applications."
 msgstr ""
 
-#: gnu/packages/databases.scm:434
+#: gnu/packages/databases.scm:430
 msgid "C++ library for memcached"
 msgstr "Bibliothèque C++ pour memcached"
 
-#: gnu/packages/databases.scm:435
+#: gnu/packages/databases.scm:431
 msgid ""
 "libMemcached is a library to use memcached in C/C++\n"
 "applications.  It comes with a complete reference guide and documentation of\n"
@@ -2954,22 +3311,22 @@ msgid ""
 "@end itemize"
 msgstr ""
 
-#: gnu/packages/databases.scm:473
+#: gnu/packages/databases.scm:469
 msgid "Python client for memcached"
 msgstr "Client python pour memcached"
 
-#: gnu/packages/databases.scm:475
+#: gnu/packages/databases.scm:471
 msgid ""
 "@code{pylibmc} is a client in Python for memcached.  It is a wrapper\n"
 "around TangentOrg’s libmemcached library, and can be used as a drop-in\n"
 "replacement for the code@{python-memcached} library."
 msgstr ""
 
-#: gnu/packages/databases.scm:610
+#: gnu/packages/databases.scm:606
 msgid "High performance and high availability document database"
 msgstr ""
 
-#: gnu/packages/databases.scm:612
+#: gnu/packages/databases.scm:608
 msgid ""
 "Mongo is a high-performance, high availability, schema-free\n"
 "document-oriented database.  A key goal of MongoDB is to bridge the gap\n"
@@ -2977,11 +3334,21 @@ msgid ""
 "RDBMS systems (which are deep in functionality)."
 msgstr ""
 
-#: gnu/packages/databases.scm:685
+#: gnu/packages/databases.scm:640
+msgid "Terminal Client for MySQL with AutoCompletion and Syntax Highlighting"
+msgstr ""
+
+#: gnu/packages/databases.scm:642
+msgid ""
+"MyCLI is a command line interface for MySQL, MariaDB, and Percona with\n"
+"auto-completion and syntax highlighting."
+msgstr ""
+
+#: gnu/packages/databases.scm:711
 msgid "Fast, easy to use, and popular database"
 msgstr "Base de données rapide, facile d'utilisation et populaire"
 
-#: gnu/packages/databases.scm:687
+#: gnu/packages/databases.scm:713
 msgid ""
 "MySQL is a fast, reliable, and easy to use relational database\n"
 "management system that supports the standardized Structured Query\n"
@@ -2990,31 +3357,31 @@ msgstr ""
 "MySQL est un système de gestion de base de données relationnelle rapide,\n"
 " fiable et facile d'emploi, supportant le SQL standardisé."
 
-#: gnu/packages/databases.scm:926
+#: gnu/packages/databases.scm:966
 msgid "SQL database server"
 msgstr ""
 
-#: gnu/packages/databases.scm:928
+#: gnu/packages/databases.scm:968
 msgid ""
 "MariaDB is a multi-user and multi-threaded SQL database server, designed\n"
 "as a drop-in replacement of MySQL."
 msgstr ""
 
-#: gnu/packages/databases.scm:952
+#: gnu/packages/databases.scm:991
 msgid "Client library to connect to MySQL or MariaDB"
 msgstr ""
 
-#: gnu/packages/databases.scm:953
+#: gnu/packages/databases.scm:992
 msgid ""
 "The MariaDB Connector/C is used to connect applications\n"
 "developed in C/C++ to MariaDB and MySQL databases."
 msgstr ""
 
-#: gnu/packages/databases.scm:994
+#: gnu/packages/databases.scm:1033
 msgid "Powerful object-relational database system"
 msgstr "Système de base de données relationnelle puissant"
 
-#: gnu/packages/databases.scm:996
+#: gnu/packages/databases.scm:1035
 msgid ""
 "PostgreSQL is a powerful object-relational database system.  It is fully\n"
 "ACID compliant, has full support for foreign keys, joins, views, triggers, and\n"
@@ -3030,21 +3397,21 @@ msgstr ""
 "INTERVAL et TIMESTAMP. Il supporte aussi le stockage binaire de grands objets, dont\n"
 "les images, le son et la vidéo."
 
-#: gnu/packages/databases.scm:1048
+#: gnu/packages/databases.scm:1089
 msgid "Pure-Python MySQL driver"
 msgstr ""
 
-#: gnu/packages/databases.scm:1050
+#: gnu/packages/databases.scm:1091
 msgid ""
 "PyMySQL is a pure-Python MySQL client library, based on PEP 249.\n"
 "Most public APIs are compatible with @command{mysqlclient} and MySQLdb."
 msgstr ""
 
-#: gnu/packages/databases.scm:1076
+#: gnu/packages/databases.scm:1117
 msgid "Key-value database"
 msgstr "Base de données clef-valeur"
 
-#: gnu/packages/databases.scm:1077
+#: gnu/packages/databases.scm:1118
 msgid ""
 "QDBM is a library of routines for managing a\n"
 "database.  The database is a simple data file containing key-value\n"
@@ -3054,11 +3421,11 @@ msgid ""
 "organized in a hash table or B+ tree."
 msgstr ""
 
-#: gnu/packages/databases.scm:1112
+#: gnu/packages/databases.scm:1153
 msgid "Manipulate plain text files as databases"
 msgstr "Manipule les fichiers texte comme des bases de données"
 
-#: gnu/packages/databases.scm:1114
+#: gnu/packages/databases.scm:1155
 msgid ""
 "GNU Recutils is a set of tools and libraries for creating and\n"
 "manipulating text-based, human-editable databases.  Despite being text-based,\n"
@@ -3073,11 +3440,11 @@ msgstr ""
 "les timestamps et plus encore. De nombreux types de champs sont supportés, tout comme\n"
 "le chiffrement."
 
-#: gnu/packages/databases.scm:1136
+#: gnu/packages/databases.scm:1177
 msgid "Emacs mode for working with recutils database files"
 msgstr "Mode Emacs pour travailler avec des fichiers de bases de données recutils"
 
-#: gnu/packages/databases.scm:1137
+#: gnu/packages/databases.scm:1178
 msgid ""
 "This package provides an Emacs major mode @code{rec-mode}\n"
 "for working with GNU Recutils text-based, human-editable databases.  It\n"
@@ -3085,11 +3452,11 @@ msgid ""
 "including field and record folding."
 msgstr ""
 
-#: gnu/packages/databases.scm:1231
+#: gnu/packages/databases.scm:1272
 msgid "Persistent key-value store for fast storage"
 msgstr ""
 
-#: gnu/packages/databases.scm:1233
+#: gnu/packages/databases.scm:1274
 msgid ""
 "RocksDB is a library that forms the core building block for a fast\n"
 "key-value server, especially suited for storing data on flash drives.  It\n"
@@ -3100,11 +3467,11 @@ msgid ""
 "data in a single database.  RocksDB is partially based on @code{LevelDB}."
 msgstr ""
 
-#: gnu/packages/databases.scm:1293
+#: gnu/packages/databases.scm:1335
 msgid "Command-line tool for accessing SPARQL endpoints over HTTP"
 msgstr ""
 
-#: gnu/packages/databases.scm:1294
+#: gnu/packages/databases.scm:1336
 msgid ""
 "Sparql-query is a command-line tool for accessing SPARQL\n"
 "endpoints over HTTP.  It has been intentionally designed to @code{feel} similar to\n"
@@ -3115,21 +3482,21 @@ msgid ""
 "for example from a shell script."
 msgstr ""
 
-#: gnu/packages/databases.scm:1382
+#: gnu/packages/databases.scm:1427
 msgid "Database change management tool"
 msgstr ""
 
-#: gnu/packages/databases.scm:1384
+#: gnu/packages/databases.scm:1429
 msgid ""
 "Sqitch is a standalone change management system for database schemas,\n"
 "which uses SQL to describe changes."
 msgstr ""
 
-#: gnu/packages/databases.scm:1411
+#: gnu/packages/databases.scm:1456
 msgid "Text console-based database viewer and editor"
 msgstr ""
 
-#: gnu/packages/databases.scm:1413
+#: gnu/packages/databases.scm:1458
 msgid ""
 "SQLcrush lets you view and edit a database directly from the text\n"
 "console through an ncurses interface.  You can explore each table's structure,\n"
@@ -3137,11 +3504,11 @@ msgid ""
 "changes."
 msgstr ""
 
-#: gnu/packages/databases.scm:1449
+#: gnu/packages/databases.scm:1494
 msgid "Trivial database"
 msgstr "Base de données triviale"
 
-#: gnu/packages/databases.scm:1451
+#: gnu/packages/databases.scm:1496
 msgid ""
 "TDB is a Trivial Database.  In concept, it is very much like GDBM,\n"
 "and BSD's DB except that it allows multiple simultaneous writers and uses\n"
@@ -3153,19 +3520,19 @@ msgstr ""
 "accès simultanés en écriture et utilise un verrouillage interne pour éviter les\n"
 "empiétements. Notez que TDB est aussi très léger."
 
-#: gnu/packages/databases.scm:1470
+#: gnu/packages/databases.scm:1515
 msgid "Database independent interface for Perl"
 msgstr "Interface de base de données pour Perl"
 
-#: gnu/packages/databases.scm:1471
+#: gnu/packages/databases.scm:1516
 msgid "This package provides an database interface for Perl."
 msgstr "Ce paquet fournit une interface de base de données pour Perl."
 
-#: gnu/packages/databases.scm:1519
+#: gnu/packages/databases.scm:1563
 msgid "Extensible and flexible object <-> relational mapper"
 msgstr ""
 
-#: gnu/packages/databases.scm:1520
+#: gnu/packages/databases.scm:1564
 msgid ""
 "An SQL to OO mapper with an object API inspired by\n"
 "Class::DBI (with a compatibility layer as a springboard for porting) and a\n"
@@ -3177,21 +3544,21 @@ msgid ""
 "\"ORDER BY\" and \"HAVING\" support."
 msgstr ""
 
-#: gnu/packages/databases.scm:1551
+#: gnu/packages/databases.scm:1595
 msgid "Cursor with built-in caching support"
 msgstr ""
 
-#: gnu/packages/databases.scm:1552
+#: gnu/packages/databases.scm:1596
 msgid ""
 "DBIx::Class::Cursor::Cached provides a cursor class with\n"
 "built-in caching support."
 msgstr ""
 
-#: gnu/packages/databases.scm:1574
+#: gnu/packages/databases.scm:1618
 msgid "Introspect many-to-many relationships"
 msgstr ""
 
-#: gnu/packages/databases.scm:1575
+#: gnu/packages/databases.scm:1619
 msgid ""
 "Because the many-to-many relationships are not real\n"
 "relationships, they can not be introspected with DBIx::Class.  Many-to-many\n"
@@ -3201,22 +3568,22 @@ msgid ""
 "introspected and examined."
 msgstr ""
 
-#: gnu/packages/databases.scm:1633
+#: gnu/packages/databases.scm:1677
 msgid "Create a DBIx::Class::Schema based on a database"
 msgstr ""
 
-#: gnu/packages/databases.scm:1634
+#: gnu/packages/databases.scm:1678
 msgid ""
 "DBIx::Class::Schema::Loader automates the definition of a\n"
 "DBIx::Class::Schema by scanning database table definitions and setting up the\n"
 "columns, primary keys, unique constraints and relationships."
 msgstr ""
 
-#: gnu/packages/databases.scm:1658
+#: gnu/packages/databases.scm:1702
 msgid "DBI PostgreSQL interface"
 msgstr "Interface DBI PostgreSQL"
 
-#: gnu/packages/databases.scm:1659
+#: gnu/packages/databases.scm:1703
 msgid ""
 "This package provides a PostgreSQL driver for the Perl5\n"
 "@dfn{Database Interface} (DBI)."
@@ -3224,11 +3591,11 @@ msgstr ""
 "Ce paquet fournit un pilote PostgreSQL pour la @dfn{Database Interface}\n"
 "(DBI) de Perl5."
 
-#: gnu/packages/databases.scm:1696
+#: gnu/packages/databases.scm:1740
 msgid "DBI MySQL interface"
 msgstr "Interface DBI MySQL"
 
-#: gnu/packages/databases.scm:1697
+#: gnu/packages/databases.scm:1741
 msgid ""
 "This package provides a MySQL driver for the Perl5\n"
 "@dfn{Database Interface} (DBI)."
@@ -3236,11 +3603,11 @@ msgstr ""
 "Ce paquet fournit un pilote MySQL pour la @dfn{Database Interface}\n"
 "(DBI) de Perl5."
 
-#: gnu/packages/databases.scm:1716
+#: gnu/packages/databases.scm:1760
 msgid "SQlite interface for Perl"
 msgstr "Interface SQLite pour Perl"
 
-#: gnu/packages/databases.scm:1717
+#: gnu/packages/databases.scm:1761
 msgid ""
 "DBD::SQLite is a Perl DBI driver for SQLite, that includes\n"
 "the entire thing in the distribution.  So in order to get a fast transaction\n"
@@ -3251,23 +3618,23 @@ msgstr ""
 "de la distribution.  Donc il suffit d'installer ce module dans votre projet\n"
 "pour obtenir un RDBMS capable de transactions rapides et rien d'autre."
 
-#: gnu/packages/databases.scm:1740
+#: gnu/packages/databases.scm:1784
 #, scheme-format
 msgid "Parse and utilize MySQL's /etc/my.cnf and ~/.my.cnf files"
 msgstr ""
 
-#: gnu/packages/databases.scm:1742
+#: gnu/packages/databases.scm:1786
 msgid ""
 "@code{MySQL::Config} emulates the @code{load_defaults} function from\n"
-"libmysqlclient.  It will fill an aray with long options, ready to be parsed by\n"
+"libmysqlclient.  It will fill an array with long options, ready to be parsed by\n"
 "@code{Getopt::Long}."
 msgstr ""
 
-#: gnu/packages/databases.scm:1770
+#: gnu/packages/databases.scm:1814 gnu/packages/databases.scm:1843
 msgid "Generate SQL from Perl data structures"
 msgstr ""
 
-#: gnu/packages/databases.scm:1771
+#: gnu/packages/databases.scm:1815
 msgid ""
 "This module was inspired by the excellent DBIx::Abstract.\n"
 "While based on the concepts used by DBIx::Abstract, the concepts used have\n"
@@ -3277,32 +3644,48 @@ msgid ""
 "time your data changes."
 msgstr ""
 
-#: gnu/packages/databases.scm:1800
+#: gnu/packages/databases.scm:1845
+msgid ""
+"This module is nearly identical to @code{SQL::Abstract} 1.81, and exists\n"
+"to preserve the ability of users to opt into the new way of doing things in\n"
+"later versions according to their own schedules.\n"
+"\n"
+"It is an abstract SQL generation module based on the concepts used by\n"
+"@code{DBIx::Abstract}, with several important differences, especially when it\n"
+"comes to @code{WHERE} clauses.  These concepts were modified to make the SQL\n"
+"easier to generate from Perl data structures.\n"
+"\n"
+"The underlying idea is for this module to do what you mean, based on the data\n"
+"structures you provide it.  You shouldn't have to modify your code every time\n"
+"your data changes, as this module figures it out."
+msgstr ""
+
+#: gnu/packages/databases.scm:1880
 msgid "Split SQL code into atomic statements"
 msgstr ""
 
-#: gnu/packages/databases.scm:1801
+#: gnu/packages/databases.scm:1881
 msgid ""
 "This module tries to split any SQL code, even including\n"
 "non-standard extensions, into the atomic statements it is composed of."
 msgstr ""
 
-#: gnu/packages/databases.scm:1819
+#: gnu/packages/databases.scm:1899
 msgid "SQL tokenizer"
 msgstr ""
 
-#: gnu/packages/databases.scm:1820
+#: gnu/packages/databases.scm:1900
 msgid ""
 "SQL::Tokenizer is a tokenizer for SQL queries.  It does not\n"
 "claim to be a parser or query verifier.  It just creates sane tokens from a\n"
 "valid SQL query."
 msgstr ""
 
-#: gnu/packages/databases.scm:1838
+#: gnu/packages/databases.scm:1918
 msgid "Data source abstraction library"
 msgstr "Bibliothèque d'abstraction de source de données"
 
-#: gnu/packages/databases.scm:1839
+#: gnu/packages/databases.scm:1919
 msgid ""
 "Unixodbc is a library providing an API with which to access\n"
 "data sources.  Data sources include SQL Servers and any software with an ODBC\n"
@@ -3312,11 +3695,11 @@ msgstr ""
 "d'accéder à des sources de données. Ces sources incluent des serveurs SQL\n"
 "où tout logiciel avec un driver ODBC."
 
-#: gnu/packages/databases.scm:1863
+#: gnu/packages/databases.scm:1943
 msgid "In-memory key/value and document store"
 msgstr ""
 
-#: gnu/packages/databases.scm:1865
+#: gnu/packages/databases.scm:1945
 msgid ""
 "UnQLite is an in-process software library which implements a\n"
 "self-contained, serverless, zero-configuration, transactional NoSQL\n"
@@ -3325,33 +3708,33 @@ msgid ""
 "similar to BerkeleyDB, LevelDB, etc."
 msgstr ""
 
-#: gnu/packages/databases.scm:1893
+#: gnu/packages/databases.scm:1973
 msgid "Key-value cache and store"
 msgstr ""
 
-#: gnu/packages/databases.scm:1894
+#: gnu/packages/databases.scm:1974
 msgid ""
 "Redis is an advanced key-value cache and store.  Redis\n"
 "supports many data structures including strings, hashes, lists, sets, sorted\n"
 "sets, bitmaps and hyperloglogs."
 msgstr ""
 
-#: gnu/packages/databases.scm:1921
+#: gnu/packages/databases.scm:2001
 msgid "Kyoto Cabinet is a modern implementation of the DBM database"
 msgstr ""
 
-#: gnu/packages/databases.scm:1923
+#: gnu/packages/databases.scm:2003
 msgid ""
 "Kyoto Cabinet is a standalone file-based database that supports Hash\n"
 "and B+ Tree data storage models.  It is a fast key-value lightweight\n"
 "database and supports many programming languages.  It is a NoSQL database."
 msgstr ""
 
-#: gnu/packages/databases.scm:1949
+#: gnu/packages/databases.scm:2029
 msgid "Tokyo Cabinet is a modern implementation of the DBM database"
 msgstr ""
 
-#: gnu/packages/databases.scm:1951
+#: gnu/packages/databases.scm:2031
 msgid ""
 "Tokyo Cabinet is a library of routines for managing a database.\n"
 "The database is a simple data file containing records, each is a pair of a\n"
@@ -3361,11 +3744,11 @@ msgid ""
 "organized in hash table, B+ tree, or fixed-length array."
 msgstr ""
 
-#: gnu/packages/databases.scm:1987
+#: gnu/packages/databases.scm:2067
 msgid "NoSQL data engine"
 msgstr ""
 
-#: gnu/packages/databases.scm:1989
+#: gnu/packages/databases.scm:2069
 msgid ""
 "WiredTiger is an extensible platform for data management.  It supports\n"
 "row-oriented storage (where all columns of a row are stored together),\n"
@@ -3374,11 +3757,11 @@ msgid ""
 "trees (LSM), for sustained throughput under random insert workloads."
 msgstr ""
 
-#: gnu/packages/databases.scm:2040
+#: gnu/packages/databases.scm:2120
 msgid "WiredTiger bindings for GNU Guile"
 msgstr "Liaisons WiredTiger pour GNU Guile"
 
-#: gnu/packages/databases.scm:2042
+#: gnu/packages/databases.scm:2122
 msgid ""
 "This package provides Guile bindings to the WiredTiger ``NoSQL''\n"
 "database."
@@ -3386,19 +3769,19 @@ msgstr ""
 "Ce paquet fournit les liaisons Guile pour le système de base de données « NoSQL »\n"
 "WiredTiger."
 
-#: gnu/packages/databases.scm:2074
+#: gnu/packages/databases.scm:2150
 msgid "Perl5 access to Berkeley DB version 1.x"
 msgstr ""
 
-#: gnu/packages/databases.scm:2076
+#: gnu/packages/databases.scm:2152
 msgid "The DB::File module provides Perl bindings to the Berkeley DB version 1.x."
 msgstr ""
 
-#: gnu/packages/databases.scm:2104
+#: gnu/packages/databases.scm:2180
 msgid "Lightning Memory-Mapped Database library"
 msgstr ""
 
-#: gnu/packages/databases.scm:2106
+#: gnu/packages/databases.scm:2182
 msgid ""
 "The @dfn{Lightning Memory-Mapped Database} (LMDB) is a high-performance\n"
 "transactional database.  Unlike more complex relational databases, LMDB handles\n"
@@ -3411,11 +3794,11 @@ msgid ""
 "virtual address space — not physical RAM."
 msgstr ""
 
-#: gnu/packages/databases.scm:2139
+#: gnu/packages/databases.scm:2215
 msgid "C++11 wrapper for the LMDB embedded B+ tree database library"
 msgstr ""
 
-#: gnu/packages/databases.scm:2140
+#: gnu/packages/databases.scm:2216
 msgid ""
 "@code{lmdbxx} is a comprehensive @code{C++} wrapper for the\n"
 "@code{LMDB} embedded database library, offering both an error-checked\n"
@@ -3423,22 +3806,22 @@ msgid ""
 "semantics."
 msgstr ""
 
-#: gnu/packages/databases.scm:2172
+#: gnu/packages/databases.scm:2248
 msgid "C++ connector for PostgreSQL"
 msgstr ""
 
-#: gnu/packages/databases.scm:2174
+#: gnu/packages/databases.scm:2250
 msgid ""
 "Libpqxx is a C++ library to enable user programs to communicate with the\n"
 "PostgreSQL database back-end.  The database back-end can be local or it may be\n"
 "on another machine, accessed via TCP/IP."
 msgstr ""
 
-#: gnu/packages/databases.scm:2197
+#: gnu/packages/databases.scm:2273
 msgid "Small object-relational mapping utility"
 msgstr ""
 
-#: gnu/packages/databases.scm:2199
+#: gnu/packages/databases.scm:2275
 msgid ""
 "Peewee is a simple and small ORM (object-relation mapping) tool.  Peewee\n"
 "handles converting between pythonic values and those used by databases, so you\n"
@@ -3447,11 +3830,11 @@ msgid ""
 "can autogenerate peewee models using @code{pwiz}, a model generator."
 msgstr ""
 
-#: gnu/packages/databases.scm:2235
+#: gnu/packages/databases.scm:2311
 msgid "Easy async ORM for python, built with relations in mind"
 msgstr ""
 
-#: gnu/packages/databases.scm:2237
+#: gnu/packages/databases.scm:2313
 msgid ""
 "Tortoise ORM is an easy-to-use asyncio ORM (Object Relational Mapper)\n"
 "inspired by Django.  Tortoise ORM was build with relations in mind and\n"
@@ -3460,11 +3843,11 @@ msgid ""
 "data."
 msgstr ""
 
-#: gnu/packages/databases.scm:2280
+#: gnu/packages/databases.scm:2356
 msgid "Library providing transparent encryption of SQLite database files"
 msgstr ""
 
-#: gnu/packages/databases.scm:2281
+#: gnu/packages/databases.scm:2357
 msgid ""
 "SQLCipher is an implementation of SQLite, extended to\n"
 "provide transparent 256-bit AES encryption of database files.  Pages are\n"
@@ -3473,27 +3856,27 @@ msgid ""
 "development."
 msgstr ""
 
-#: gnu/packages/databases.scm:2313 gnu/packages/databases.scm:2338
+#: gnu/packages/databases.scm:2389 gnu/packages/databases.scm:2414
 msgid "Python ODBC Library"
 msgstr "La bibliothèque Python ODBC"
 
-#: gnu/packages/databases.scm:2314
+#: gnu/packages/databases.scm:2390
 msgid ""
 "@code{python-pyodbc-c} provides a Python DB-API driver\n"
 "for ODBC."
 msgstr ""
 
-#: gnu/packages/databases.scm:2339
+#: gnu/packages/databases.scm:2415
 msgid ""
 "@code{python-pyodbc} provides a Python DB-API driver\n"
 "for ODBC."
 msgstr ""
 
-#: gnu/packages/databases.scm:2371
+#: gnu/packages/databases.scm:2447
 msgid "Read Microsoft Access databases"
 msgstr ""
 
-#: gnu/packages/databases.scm:2372
+#: gnu/packages/databases.scm:2448
 msgid ""
 "MDB Tools is a set of tools and applications to read the\n"
 "proprietary MDB file format used in Microsoft's Access database package.  This\n"
@@ -3502,65 +3885,65 @@ msgid ""
 "etc., and an SQL engine for performing simple SQL queries."
 msgstr ""
 
-#: gnu/packages/databases.scm:2415
+#: gnu/packages/databases.scm:2492
 msgid "Python binding for the ‘Lightning’ database (LMDB)"
 msgstr ""
 
-#: gnu/packages/databases.scm:2417
+#: gnu/packages/databases.scm:2494
 msgid ""
 "python-lmdb or py-lmdb is a Python binding for the @dfn{Lightning\n"
 "Memory-Mapped Database} (LMDB), a high-performance key-value store."
 msgstr ""
 
-#: gnu/packages/databases.scm:2457
+#: gnu/packages/databases.scm:2531
 msgid "ActiveRecord ORM for Python"
 msgstr ""
 
-#: gnu/packages/databases.scm:2459
+#: gnu/packages/databases.scm:2533
 msgid ""
 "Orator provides a simple ActiveRecord-like Object Relational Mapping\n"
 "implementation for Python."
 msgstr ""
 
-#: gnu/packages/databases.scm:2492
+#: gnu/packages/databases.scm:2578
 msgid "Multi-model database system"
 msgstr "Système de base de données multi-modèles"
 
-#: gnu/packages/databases.scm:2493
+#: gnu/packages/databases.scm:2579
 msgid ""
 "Virtuoso is a scalable cross-platform server that combines\n"
 "relational, graph, and document data management with web application server\n"
 "and web services platform functionality."
 msgstr ""
 
-#: gnu/packages/databases.scm:2519
+#: gnu/packages/databases.scm:2605
 msgid ""
 "Cassandra Cluster Manager for Apache Cassandra clusters on\n"
 "localhost"
 msgstr ""
 
-#: gnu/packages/databases.scm:2521
+#: gnu/packages/databases.scm:2607
 msgid ""
 "Cassandra Cluster Manager is a development tool for testing\n"
 "local Cassandra clusters. It creates, launches and removes Cassandra clusters\n"
 "on localhost."
 msgstr ""
 
-#: gnu/packages/databases.scm:2547
+#: gnu/packages/databases.scm:2633
 msgid "SQLite bindings for Python"
 msgstr "Liaisons SQLite pour Python"
 
-#: gnu/packages/databases.scm:2549
+#: gnu/packages/databases.scm:2635
 msgid ""
 "Pysqlite provides SQLite bindings for Python that comply to the\n"
 "Database API 2.0T."
 msgstr ""
 
-#: gnu/packages/databases.scm:2574
+#: gnu/packages/databases.scm:2660
 msgid "Database abstraction library"
 msgstr "Bibliothèque d'abstraction de bases de données"
 
-#: gnu/packages/databases.scm:2576
+#: gnu/packages/databases.scm:2662
 msgid ""
 "SQLAlchemy is the Python SQL toolkit and Object Relational Mapper that\n"
 "gives application developers the full power and flexibility of SQL.  It\n"
@@ -3569,11 +3952,11 @@ msgid ""
 "simple and Pythonic domain language."
 msgstr ""
 
-#: gnu/packages/databases.scm:2615
+#: gnu/packages/databases.scm:2701
 msgid "Various utility functions for SQLAlchemy"
 msgstr ""
 
-#: gnu/packages/databases.scm:2617
+#: gnu/packages/databases.scm:2703
 msgid ""
 "SQLAlchemy-utils provides various utility functions and custom data types\n"
 "for SQLAlchemy.  SQLAlchemy is an SQL database abstraction library for Python.\n"
@@ -3590,21 +3973,35 @@ msgid ""
 "@end enumerate\n"
 msgstr ""
 
-#: gnu/packages/databases.scm:2663
+#: gnu/packages/databases.scm:2753
+msgid "Mock helpers for SQLAlchemy"
+msgstr ""
+
+#: gnu/packages/databases.scm:2755
+msgid ""
+"This package provides mock helpers for SQLAlchemy that makes it easy\n"
+"to mock an SQLAlchemy session while preserving the ability to do asserts.\n"
+"\n"
+"Normally Normally SQLAlchemy's expressions cannot be easily compared as\n"
+"comparison on binary expression produces yet another binary expression, but\n"
+"this library provides functions to facilitate such comparisons."
+msgstr ""
+
+#: gnu/packages/databases.scm:2788
 msgid "Database migration tool for SQLAlchemy"
 msgstr ""
 
-#: gnu/packages/databases.scm:2665
+#: gnu/packages/databases.scm:2790
 msgid ""
 "Alembic is a lightweight database migration tool for usage with the\n"
 "SQLAlchemy Database Toolkit for Python."
 msgstr ""
 
-#: gnu/packages/databases.scm:2691
+#: gnu/packages/databases.scm:2816
 msgid "Tiny key value database with concurrency support"
 msgstr ""
 
-#: gnu/packages/databases.scm:2693
+#: gnu/packages/databases.scm:2818
 msgid ""
 "PickleShare is a small ‘shelve’-like datastore with concurrency support.\n"
 "Like shelve, a PickleShareDB object acts like a normal dictionary.  Unlike\n"
@@ -3615,11 +4012,11 @@ msgid ""
 "PickleShare."
 msgstr ""
 
-#: gnu/packages/databases.scm:2745
+#: gnu/packages/databases.scm:2870
 msgid "Another Python SQLite Wrapper"
 msgstr ""
 
-#: gnu/packages/databases.scm:2746
+#: gnu/packages/databases.scm:2871
 msgid ""
 "APSW is a Python wrapper for the SQLite\n"
 "embedded relational database engine.  In contrast to other wrappers such as\n"
@@ -3627,33 +4024,33 @@ msgid ""
 "translate the complete SQLite API into Python."
 msgstr ""
 
-#: gnu/packages/databases.scm:2771
+#: gnu/packages/databases.scm:2896
 msgid "Asyncio bridge for sqlite3"
 msgstr ""
 
-#: gnu/packages/databases.scm:2773
+#: gnu/packages/databases.scm:2898
 msgid ""
 "The package aiosqlite replicates the standard sqlite3 module, but with\n"
 "async versions of all the standard connection and cursor methods, and context\n"
 "managers for automatically closing connections."
 msgstr ""
 
-#: gnu/packages/databases.scm:2793
+#: gnu/packages/databases.scm:2918
 msgid "Neo4j driver code written in Python"
 msgstr ""
 
-#: gnu/packages/databases.scm:2794
+#: gnu/packages/databases.scm:2919
 msgid ""
 "This package provides the Neo4j Python driver that connects\n"
 "to the database using Neo4j's binary protocol.  It aims to be minimal, while\n"
 "being idiomatic to Python."
 msgstr ""
 
-#: gnu/packages/databases.scm:2813
+#: gnu/packages/databases.scm:2938
 msgid "Library and toolkit for working with Neo4j in Python"
 msgstr ""
 
-#: gnu/packages/databases.scm:2814
+#: gnu/packages/databases.scm:2939
 msgid ""
 "This package provides a client library and toolkit for\n"
 "working with Neo4j from within Python applications and from the command\n"
@@ -3661,32 +4058,42 @@ msgid ""
 "designed to be easy and intuitive to use."
 msgstr ""
 
-#: gnu/packages/databases.scm:2838
+#: gnu/packages/databases.scm:2963
 msgid "Python PostgreSQL adapter"
 msgstr "Adaptateur Python pour PostgreSQL"
 
-#: gnu/packages/databases.scm:2840
+#: gnu/packages/databases.scm:2965
 msgid ""
 "psycopg2 is a thread-safe PostgreSQL adapter that implements DB-API\n"
 "2.0."
 msgstr ""
 
-#: gnu/packages/databases.scm:2865
+#: gnu/packages/databases.scm:2990
 msgid "SQLAlchemy schema displayer"
 msgstr ""
 
-#: gnu/packages/databases.scm:2866
+#: gnu/packages/databases.scm:2991
 msgid ""
 "This package provides a program to build Entity\n"
 "Relationship diagrams from a SQLAlchemy model (or directly from the\n"
 "database)."
 msgstr ""
 
-#: gnu/packages/databases.scm:2896
+#: gnu/packages/databases.scm:3023
+msgid "Database migrations with SQL"
+msgstr "Migrations de bases de données avec SQL"
+
+#: gnu/packages/databases.scm:3025
+msgid ""
+"Yoyo is a database schema migration tool.  Migrations are written as SQL\n"
+"files or Python scripts that define a list of migration steps."
+msgstr ""
+
+#: gnu/packages/databases.scm:3046
 msgid "MySQLdb is an interface to the popular MySQL database server for Python"
 msgstr ""
 
-#: gnu/packages/databases.scm:2897
+#: gnu/packages/databases.scm:3047
 msgid ""
 "MySQLdb is an interface to the popular MySQL database server\n"
 "for Python.  The design goals are:\n"
@@ -3697,21 +4104,21 @@ msgid ""
 "@end enumerate"
 msgstr ""
 
-#: gnu/packages/databases.scm:2925
+#: gnu/packages/databases.scm:3072
 msgid "Python extension that wraps protocol parsing code in hiredis"
 msgstr ""
 
-#: gnu/packages/databases.scm:2926
+#: gnu/packages/databases.scm:3073
 msgid ""
 "Python-hiredis is a python extension that wraps protocol\n"
 "parsing code in hiredis.  It primarily speeds up parsing of multi bulk replies."
 msgstr ""
 
-#: gnu/packages/databases.scm:2951
+#: gnu/packages/databases.scm:3098
 msgid "Fake implementation of redis API for testing purposes"
 msgstr ""
 
-#: gnu/packages/databases.scm:2953
+#: gnu/packages/databases.scm:3100
 msgid ""
 "Fakeredis is a pure-Python implementation of the redis-py Python client\n"
 "that simulates talking to a redis server.  It was created for a single purpose:\n"
@@ -3722,71 +4129,81 @@ msgid ""
 "reasonable substitute."
 msgstr ""
 
-#: gnu/packages/databases.scm:2982
+#: gnu/packages/databases.scm:3129
 msgid "Redis Python client"
 msgstr ""
 
-#: gnu/packages/databases.scm:2984
+#: gnu/packages/databases.scm:3131
 msgid "This package provides a Python interface to the Redis key-value store."
 msgstr "Ce paquet fournit une interface Python pour le dépôt clef-valeur Redis."
 
-#: gnu/packages/databases.scm:3005
+#: gnu/packages/databases.scm:3173
 msgid "Simple job queues for Python"
 msgstr ""
 
-#: gnu/packages/databases.scm:3007
+#: gnu/packages/databases.scm:3175
 msgid ""
 "RQ (Redis Queue) is a simple Python library for queueing jobs and\n"
 "processing them in the background with workers.  It is backed by Redis and it\n"
 "is designed to have a low barrier to entry."
 msgstr ""
 
-#: gnu/packages/databases.scm:3030
+#: gnu/packages/databases.scm:3215
+msgid "Job scheduling capabilities for RQ (Redis Queue)"
+msgstr ""
+
+#: gnu/packages/databases.scm:3217
+msgid ""
+"This package provides job scheduling capabilities to @code{python-rq}\n"
+"(Redis Queue)."
+msgstr ""
+
+#: gnu/packages/databases.scm:3236
 msgid "Port of asyncio-redis to trollius"
 msgstr ""
 
-#: gnu/packages/databases.scm:3031
+#: gnu/packages/databases.scm:3237
 msgid ""
 "@code{trollius-redis} is a Redis client for Python\n"
 "  trollius.  It is an asynchronous IO (PEP 3156) implementation of the\n"
 "  Redis protocol."
 msgstr ""
 
-#: gnu/packages/databases.scm:3058
+#: gnu/packages/databases.scm:3264
 msgid "Non-validating SQL parser"
 msgstr ""
 
-#: gnu/packages/databases.scm:3059
+#: gnu/packages/databases.scm:3265
 msgid ""
 "Sqlparse is a non-validating SQL parser for Python.  It\n"
 "provides support for parsing, splitting and formatting SQL statements."
 msgstr ""
 
-#: gnu/packages/databases.scm:3078
+#: gnu/packages/databases.scm:3284
 msgid "Library to write SQL queries in a pythonic way"
 msgstr ""
 
-#: gnu/packages/databases.scm:3079
+#: gnu/packages/databases.scm:3285
 msgid ""
 "@code{python-sql} is a library to write SQL queries, that\n"
 "transforms idiomatic python function calls to well-formed SQL queries."
 msgstr ""
 
-#: gnu/packages/databases.scm:3101
+#: gnu/packages/databases.scm:3309
 msgid "SQL query builder API for Python"
 msgstr "API de construction de requêtes SQL pour Python"
 
-#: gnu/packages/databases.scm:3103
+#: gnu/packages/databases.scm:3311
 msgid ""
 "PyPika is a python SQL query builder that exposes the full richness of\n"
 "the SQL language using a syntax that reflects the resulting query."
 msgstr ""
 
-#: gnu/packages/databases.scm:3197
+#: gnu/packages/databases.scm:3405
 msgid "Various tools for interacting with MongoDB and BSON"
 msgstr ""
 
-#: gnu/packages/databases.scm:3199
+#: gnu/packages/databases.scm:3407
 msgid ""
 "This package includes a collection of tools related to MongoDB.\n"
 "@table @code\n"
@@ -3811,46 +4228,46 @@ msgid ""
 "@end table"
 msgstr ""
 
-#: gnu/packages/databases.scm:3283
+#: gnu/packages/databases.scm:3544
 msgid "Columnar in-memory analytics"
 msgstr ""
 
-#: gnu/packages/databases.scm:3284
+#: gnu/packages/databases.scm:3545
 msgid ""
 "Apache Arrow is a columnar in-memory analytics layer\n"
-"designed to accelerate big data. It houses a set of canonical in-memory\n"
+"designed to accelerate big data.  It houses a set of canonical in-memory\n"
 "representations of flat and hierarchical data along with multiple\n"
-"language-bindings for structure manipulation. It also provides IPC and common\n"
+"language-bindings for structure manipulation.  It also provides IPC and common\n"
 "algorithm implementations."
 msgstr ""
 
-#: gnu/packages/databases.scm:3329
+#: gnu/packages/databases.scm:3582
 msgid "Python bindings for Apache Arrow"
 msgstr "Liaisons python pour Apache Arrow"
 
-#: gnu/packages/databases.scm:3330
+#: gnu/packages/databases.scm:3584
 msgid ""
-"This library provides a Pythonic API wrapper for the reference\n"
-"Arrow C++ implementation, along with tools for interoperability with pandas,\n"
-"NumPy, and other traditional Python scientific computing packages."
+"This library provides a Pythonic API wrapper for the reference Arrow C++\n"
+"implementation, along with tools for interoperability with pandas, NumPy, and\n"
+"other traditional Python scientific computing packages."
 msgstr ""
 
-#: gnu/packages/databases.scm:3352
+#: gnu/packages/databases.scm:3606
 msgid "CrateDB Python client"
 msgstr ""
 
-#: gnu/packages/databases.scm:3354
+#: gnu/packages/databases.scm:3608
 msgid ""
 "This package provides a Python client library for CrateDB.\n"
 "It implements the Python DB API 2.0 specification and includes support for\n"
 "SQLAlchemy."
 msgstr ""
 
-#: gnu/packages/databases.scm:3371
+#: gnu/packages/databases.scm:3625
 msgid "Database independent abstraction layer in C"
 msgstr "Couche d'abstraction indépendante de la base de données en C"
 
-#: gnu/packages/databases.scm:3373
+#: gnu/packages/databases.scm:3627
 msgid ""
 "This library implements a database independent abstraction layer in C,\n"
 "similar to the DBI/DBD layer in Perl.  Writing one generic set of code,\n"
@@ -3858,11 +4275,11 @@ msgid ""
 "simultaneous database connections by using this framework."
 msgstr ""
 
-#: gnu/packages/databases.scm:3438
+#: gnu/packages/databases.scm:3692
 msgid "Database drivers for the libdbi framework"
 msgstr ""
 
-#: gnu/packages/databases.scm:3440
+#: gnu/packages/databases.scm:3694
 msgid ""
 "The @code{libdbi-drivers} library provides the database specific drivers\n"
 "for the @code{libdbi} framework.\n"
@@ -3875,21 +4292,21 @@ msgid ""
 "@end itemize"
 msgstr ""
 
-#: gnu/packages/databases.scm:3480
+#: gnu/packages/databases.scm:3736
 msgid "C++ Database Access Library"
 msgstr "Bibliothèque d'accès aux bases de données en C++"
 
-#: gnu/packages/databases.scm:3482
+#: gnu/packages/databases.scm:3738
 msgid ""
 "SOCI is an abstraction layer for several database backends, including\n"
 "PostreSQL, SQLite, ODBC and MySQL."
 msgstr ""
 
-#: gnu/packages/debug.scm:100
+#: gnu/packages/debug.scm:104
 msgid "Heuristical file minimizer"
 msgstr ""
 
-#: gnu/packages/debug.scm:102
+#: gnu/packages/debug.scm:106
 msgid ""
 "Delta assists you in minimizing \"interesting\" files subject to a test\n"
 "of their interestingness.  A common such situation is when attempting to\n"
@@ -3897,11 +4314,11 @@ msgid ""
 "program to exhibit a bug."
 msgstr ""
 
-#: gnu/packages/debug.scm:161
+#: gnu/packages/debug.scm:165
 msgid "Reducer for interesting code"
 msgstr ""
 
-#: gnu/packages/debug.scm:163
+#: gnu/packages/debug.scm:167
 msgid ""
 "C-Reduce is a tool that takes a large C or C++ program that has a\n"
 "property of interest (such as triggering a compiler bug) and automatically\n"
@@ -3910,11 +4327,11 @@ msgid ""
 "tools that process C/C++ code."
 msgstr ""
 
-#: gnu/packages/debug.scm:232
+#: gnu/packages/debug.scm:236
 msgid "Security-oriented fuzzer"
 msgstr ""
 
-#: gnu/packages/debug.scm:234
+#: gnu/packages/debug.scm:238
 msgid ""
 "American fuzzy lop is a security-oriented fuzzer that employs a novel\n"
 "type of compile-time instrumentation and genetic algorithms to automatically\n"
@@ -3925,11 +4342,11 @@ msgid ""
 "down the road."
 msgstr ""
 
-#: gnu/packages/debug.scm:374
+#: gnu/packages/debug.scm:378
 msgid "Machine emulator and virtualizer (without GUI) for american fuzzy lop"
 msgstr ""
 
-#: gnu/packages/debug.scm:376
+#: gnu/packages/debug.scm:380
 msgid ""
 "QEMU is a generic machine emulator and virtualizer.  This package\n"
 "of QEMU is used only by the american fuzzy lop package.\n"
@@ -3945,11 +4362,11 @@ msgid ""
 "server and embedded PowerPC, and S390 guests."
 msgstr ""
 
-#: gnu/packages/debug.scm:444
+#: gnu/packages/debug.scm:448
 msgid "Expose race conditions in Makefiles"
 msgstr ""
 
-#: gnu/packages/debug.scm:446
+#: gnu/packages/debug.scm:450
 msgid ""
 "Stress Make is a customized GNU Make that explicitly manages the order\n"
 "in which concurrent jobs are run to provoke erroneous behavior into becoming\n"
@@ -3959,22 +4376,22 @@ msgid ""
 "conditions."
 msgstr ""
 
-#: gnu/packages/debug.scm:473
+#: gnu/packages/debug.scm:477
 msgid "Transparent application input fuzzer"
 msgstr ""
 
-#: gnu/packages/debug.scm:474
+#: gnu/packages/debug.scm:478
 msgid ""
 "Zzuf is a transparent application input fuzzer.  It works by\n"
 "intercepting file operations and changing random bits in the program's\n"
 "input.  Zzuf's behaviour is deterministic, making it easy to reproduce bugs."
 msgstr ""
 
-#: gnu/packages/debug.scm:527
+#: gnu/packages/debug.scm:531
 msgid "Memory scanner"
 msgstr ""
 
-#: gnu/packages/debug.scm:528
+#: gnu/packages/debug.scm:532
 msgid ""
 "Scanmem is a debugging utility designed to isolate the\n"
 "address of an arbitrary variable in an executing process.  Scanmem simply\n"
@@ -3983,11 +4400,17 @@ msgid ""
 "the position of the variable and allows you to modify its value."
 msgstr ""
 
-#: gnu/packages/debug.scm:591
+#: gnu/packages/debug.scm:562
+msgid ""
+"Remake is an enhanced version of GNU Make that adds improved\n"
+"error reporting, better tracing, profiling, and a debugger."
+msgstr ""
+
+#: gnu/packages/debug.scm:620
 msgid "Record and reply debugging framework"
 msgstr ""
 
-#: gnu/packages/debug.scm:593
+#: gnu/packages/debug.scm:622
 msgid ""
 "rr is a lightweight tool for recording, replaying and debugging\n"
 "execution of applications (trees of processes and threads).  Debugging extends\n"
@@ -3996,6 +4419,45 @@ msgid ""
 "fun."
 msgstr ""
 
+#: gnu/packages/debug.scm:649
+msgid "C library for producing symbolic backtraces"
+msgstr ""
+
+#: gnu/packages/debug.scm:650
+msgid ""
+"The @code{libbacktrace} library can be linked into a C/C++\n"
+"program to produce symbolic backtraces."
+msgstr ""
+
+#: gnu/packages/debug.scm:690
+msgid "Memory leaks detection tool"
+msgstr ""
+
+#: gnu/packages/debug.scm:691
+msgid ""
+"The libleak tool detects memory leaks by hooking memory\n"
+"functions such as @code{malloc}.  It comes as a shared object to be pre-loaded\n"
+"via @code{LD_PRELOAD} when launching the application.  It prints the full call\n"
+"stack at suspicious memory leak points.  Modifying or recompiling the target\n"
+"program is not required, and the detection can be enabled or disabled while\n"
+"the target application is running.  The overhead incurred by libleak is\n"
+"smaller than that of other tools such as Valgrind, and it aims to be easier to\n"
+"use than similar tools like @command{mtrace}."
+msgstr ""
+
+#: gnu/packages/debug.scm:726
+msgid "Debugging tool for MSP430 MCUs"
+msgstr ""
+
+#: gnu/packages/debug.scm:727
+msgid ""
+"MspDebug supports FET430UIF, eZ430, RF2500 and Olimex\n"
+"MSP430-JTAG-TINY programmers, as well as many other compatible\n"
+"devices.  It can be used as a proxy for gdb or as an independent\n"
+"debugger with support for programming, disassembly and reverse\n"
+"engineering."
+msgstr ""
+
 #: gnu/packages/dejagnu.scm:78
 msgid "GNU software testing framework"
 msgstr ""
@@ -4007,11 +4469,22 @@ msgid ""
 "multiple test suites, which are then all managed by a single harness."
 msgstr ""
 
-#: gnu/packages/games.scm:254
+#: gnu/packages/games.scm:263
+msgid "Scrolling, platform-jumping, ancient pyramid exploring game"
+msgstr "Jeu de plateforme d'exploration d'anciennes pyramides"
+
+#: gnu/packages/games.scm:265
+msgid ""
+"Abe's Amazing Adventure is a scrolling,\n"
+"platform-jumping, key-collecting, ancient pyramid exploring game, vaguely in\n"
+"the style of similar games for the Commodore+4."
+msgstr "Abe's Amazing Adventure est un jeu de plateforme défilant où le joueur explore d'anciennes pyramides et récolte des clefs, dans un style rappelant vaguement le style de jeux similaires pour la Commodore+4. "
+
+#: gnu/packages/games.scm:333
 msgid "Action game in four spatial dimensions"
-msgstr ""
+msgstr "Jeu d'action en quatre dimensions spatiales"
 
-#: gnu/packages/games.scm:256
+#: gnu/packages/games.scm:335
 msgid ""
 "Adanaxis is a fast-moving first person shooter set in deep space, where\n"
 "the fundamentals of space itself are changed.  By adding another dimension to\n"
@@ -4020,13 +4493,13 @@ msgid ""
 "a graphical sequence, before moving on to 30 levels of gameplay with numerous\n"
 "enemy, ally, weapon and mission types.  Features include simulated 4D texturing,\n"
 "mouse and joystick control, and original music."
-msgstr ""
+msgstr "Adanaxis est un jeu de tir à la première personne nerveux dans l'espace lointain, où les fondements même de l'univers sont différents.  En ajoutant une autre dimension à l'espace, ce jeu fournit un environnement avec des mouvements dans quatre directions et six plans de rotation.  Le jeu explique au début les contrôles 4D via une séquence graphique, avant de proposer 30 niveaux de jeu avec de nombreux ennemis, alliés, armes et missions. Ce jeu contient des textures en 4D, propose le contrôle à la souris ou au joystick et une musique originale."
 
-#: gnu/packages/games.scm:298
+#: gnu/packages/games.scm:377
 msgid "Retro platform game"
-msgstr ""
+msgstr "Jeu de plateforme rétro"
 
-#: gnu/packages/games.scm:300
+#: gnu/packages/games.scm:379
 msgid ""
 "Guide Alex the Allegator through the jungle in order to save his\n"
 "girlfriend Lola from evil humans who want to make a pair of shoes out of her.\n"
@@ -4034,12 +4507,15 @@ msgid ""
 "\n"
 "The game includes a built-in editor so you can design and share your own maps."
 msgstr ""
+"Guidez Alex l'alligator à travers la jungle pour sauver sa copine Lola des terribles humains qui veulent en faire une paire de chaussures.  Plein de déplacements sur des plateformes en quatre couleurs garantis !\n"
+"\n"
+"Le jeu contient un éditeur intégré que vous pouvez utiliser pour concevoir et partager vos propres cartes."
 
-#: gnu/packages/games.scm:327
+#: gnu/packages/games.scm:408
 msgid "Tron clone in 3D"
-msgstr ""
+msgstr "Clone de Tron en 3D"
 
-#: gnu/packages/games.scm:328
+#: gnu/packages/games.scm:409
 msgid ""
 "Armagetron Advanced is a multiplayer game in 3d that\n"
 "attempts to emulate and expand on the lightcycle sequence from the movie Tron.\n"
@@ -4047,13 +4523,29 @@ msgid ""
 "include a customizable playing arena, HUD, unique graphics, and AI bots.  For\n"
 "the more advanced player there are new game modes and a wide variety of\n"
 "physics settings to tweak as well."
-msgstr ""
+msgstr "Armagetron Advanced est un jeu multijoueur en 3d qui essaye d'émuler et étendre la séquence lightcycle du film Tron.  C'est un vieux jeu d'arcade envoyé directement au 21ème siècle.  Le jeu propose une arène de jeu personnalisable, un affichage tête-haute, des graphiques uniques et des IA.  Pour les joueurs plus avancés, il y a aussi de nouveaux modes de jeu et un grande variété de propriétés physiques à modifier."
+
+#: gnu/packages/games.scm:465
+msgid "3D space shooter with spaceship upgrade possibilities"
+msgstr "Jeu de tir en 3D avec amélioration d'un vaisseau spatial"
+
+#: gnu/packages/games.scm:467
+msgid ""
+"Space is a vast area, an unbounded territory where it seems there is\n"
+"a room for everybody, but reversal of fortune put things differently.  The\n"
+"hordes of hostile creatures crawled out from the dark corners of the universe,\n"
+"craving to conquer your homeland.  Their force is compelling, their legions\n"
+"are interminable.  However, humans didn't give up without a final showdown and\n"
+"put their best pilot to fight back.  These malicious invaders chose the wrong\n"
+"galaxy to conquer and you are to prove it!  Go ahead and make alien aggressors\n"
+"regret their insolence."
+msgstr "L'espace est vaste, c'est un territoire sans limite où il semble y avoir de la place pour tout le monde, mais un coup de malchance a tout fait basculer.  Des hordes de créatures hostiles sont apparues de tous les coins sombres de l'univers, assoiffées de conquête.  Leur force est immense, leurs légions interminables.  cependant les humains n'ont pas capitulés sans un dernier baroud d'honneur et ont envoyés leurs meilleurs pilotes se battre.  Ces envahisseurs malveillants ont choisi la mauvaise galaxie à conquérir et vous allez le prouver !  Allez leur faire regretter leur insolence."
 
-#: gnu/packages/games.scm:390
+#: gnu/packages/games.scm:533
 msgid "Antagonistic Tetris-style falling brick game for text terminals"
-msgstr ""
+msgstr "Jeu de briques hostile à la Tetris pour les terminaux en mode texte"
 
-#: gnu/packages/games.scm:392
+#: gnu/packages/games.scm:535
 msgid ""
 "Bastet (short for Bastard Tetris) is a simple ncurses-based falling brick\n"
 "game.  Unlike normal Tetris, Bastet does not choose the next brick at random.\n"
@@ -4062,12 +4554,102 @@ msgid ""
 "Playing bastet can be a painful experience, especially if you usually make\n"
 "canyons and wait for the long I-shaped block to clear four rows at a time."
 msgstr ""
+"Bastet (pour Bastard Tetris) est un jeu de briques qui tombent simple en ncurses.  Contrairement à un Tetris normal, Bastet ne choisi pas la prochaine brique au hasard.  Au lieu de ça, il utilise un algorithme spécial pour choisir la pire brique possible.\n"
+"\n"
+"Jouer à bastet peut être une expérience douloureuse, surtout si vous faites souvent des canyons en attendant le grand bloc en l pour libérer quatre lignes en même temps."
 
-#: gnu/packages/games.scm:453
-msgid "Survival horror roguelike video game"
+#: gnu/packages/games.scm:581
+msgid "Platform action game featuring a blob with a lot of weapons"
+msgstr "jeu d'action et de plateforme avec un blob et beaucoup d'armes"
+
+#: gnu/packages/games.scm:582
+msgid ""
+"Blobwars: Metal Blob Solid is a 2D platform game, the first\n"
+"in the Blobwars series.  You take on the role of a fearless Blob agent.  Your\n"
+"mission is to infiltrate various enemy bases and rescue as many MIAs as\n"
+"possible, while battling many vicious aliens."
+msgstr "Blobwars: Metal Blob Solid est un jeu de plateforme en 2D, le premier de la série des Blobwars.  Vous pouvez prendre le contrôle d'un agent Blob sans peur.  Votre mission est de vous infiltrer dans diverses bases ennemies et secourir le plus de MIA possibles, tout en combattant de vilains aliens."
+
+#: gnu/packages/games.scm:675
+msgid "Collection of the old text-based games and amusements"
+msgstr "Collection de vieux jeux en mode texte"
+
+#: gnu/packages/games.scm:677
+msgid ""
+"These are the BSD games.  See the fortune-mod package for fortunes.\n"
+"\n"
+"Action: atc (keep the airplanes safe), hack (explore the dangerous Dungeon),\n"
+"hunt (kill the others for the Pair of Boots, multi-player only), robots (avoid\n"
+"the evil robots), sail (game of naval warfare with wooden ships), snake (steal\n"
+"the $$ from the cave, anger the snake, and get out alive), tetris (game of\n"
+"lining up the falling bricks of different shapes), and worm (eat, grow big,\n"
+"and neither bite your tail, nor ram the wall).\n"
+"\n"
+"Amusements: banner (prints a large banner), bcd & morse & ppt (print a punch\n"
+"card, or paper tape, or Morse codes), caesar & rot13 (ciphers and deciphers\n"
+"the input), factor (factorizes a number), number (translates numbers into\n"
+"text), pig (translates from English to Pig Latin), pom (should print the\n"
+"Moon's phase), primes (generates primes), rain & worms (plays an screen-saver\n"
+"in terminal), random (prints randomly choosen lines from files, or returns a\n"
+"random exit-code), and wtf (explains what do some acronyms mean).\n"
+"\n"
+"Board: backgammon (lead the men out of board faster than the friend do),\n"
+"boggle (find the words in the square of letters), dab (game of dots and\n"
+"boxes), gomoku (game of five in a row), hangman (guess a word before man is\n"
+"hanged), and monop (game of monopoly, hot-seat only).  Also the card-games:\n"
+"canfield, cribbage, fish (juniors game), and mille.\n"
+"\n"
+"Quests: adventure (search for treasures with the help of wizard),\n"
+"battlestar (explore the world around, starting from dying spaceship),\n"
+"phantasia (role-play as an rogue), trek (hunt the Klingons, and save the\n"
+"Federation), and wump (hunt the big smelly Wumpus in a dark cave).\n"
+"\n"
+"Quizes: arithmetic, and quiz."
 msgstr ""
+"Ce sont les jeux BSD.  Voir le paquet fortune-mod pour les fortunes.\n"
+"\n"
+"Action : atc (sécuriser les avions), hack (explorer des donjons dangereux), hunt (tuer les autres pour la Paire de Bottes, multijoueur uniquement), robots (éviter les méchants robots), sail (jeu de bataille navale avec des bateaux en bois), snake (voler les $$ de la grotte, rendre le serpent furieux et s'en sortir vivant), tetris (jeu où il faut faire des lignes avec des briques de différentes formes qui tombent) et worm (manger, grandir, et ne pas manger sa queue ni se prendre un mur).\n"
+"\n"
+"Amusements : banner (afficher une grande bannière), bcd & morse & ppt (affiche un carte perforée, une bande papier ou du code morse), caesar & rot13 (chiffrement et déchiffrement de l'entrée), factor (factoriser un nombre), number (traduire des nombres en texte), pig (traduire de l'anglais en pig latin), pom (affiche les phases de la Lune), random (afficher des lignes aléatoires de fichiers, ou renvoie un code de sortie aléatoire), et wtf (explique ce que les acronymes signifient).\n"
+"\n"
+"Plateau : backgammon (mener vos hommes hors du plateau avant votre adversaire), boggle (trouver les mots dans un carré de lettres), dab (jeu de points et de carrés), gomoku (jeu de cinq à la suite), hangman (trouver un mot avant que la personne ne soit pendue) et monop (jeu de monopoly). Aussi des jeux de cartes : canfield, cribbage, fish (jeux junior) et mille.\n"
+"\n"
+"Quêtes : adventure (chercher des trésors à l'aide d'un sorcier), battlestar (explorer le monde, à partir d'un vaisseau spatial mourant), phatasia (jeu de rôle de voleur), trek (chasser les Klingons, et sauver la fédération) et wump (chasser le grand Wumpus puant dans une grotte sombre).\n"
+"\n"
+"Quiz: arithmetic et quiz."
 
-#: gnu/packages/games.scm:455
+#: gnu/packages/games.scm:770
+msgid "3D first person tank battle game"
+msgstr "Jeu de combat de tanks à la première personne en 3D"
+
+#: gnu/packages/games.scm:772
+msgid ""
+"BZFlag is a 3D multi-player multiplatform tank battle game that\n"
+"allows users to play against each other in a network environment.\n"
+"There are five teams: red, green, blue, purple and rogue (rogue tanks\n"
+"are black).  Destroying a player on another team scores a win, while\n"
+"being destroyed or destroying a teammate scores a loss.  Rogues have\n"
+"no teammates (not even other rogues), so they cannot shoot teammates\n"
+"and they do not have a team score.\n"
+"\n"
+"There are two main styles of play: capture-the-flag and free-for-all.\n"
+"In capture-the-flag, each team (except rogues) has a team base and\n"
+"each team with at least one player has a team flag.  The object is to\n"
+"capture an enemy team's flag by bringing it to your team's base.  This\n"
+"destroys every player on the captured team, subtracts one from that\n"
+"team's score, and adds one to your team's score.  In free-for-all,\n"
+"there are no team flags or team bases.  The object is simply to get as\n"
+"high a score as possible."
+msgstr ""
+"BZFlag est un jeu de combat de tanks en 3D multi joueur et multi plateforme qui vous permet de vous battre en réseau.  Il y a cinq équipes : les rouges, les verts, les bleus, les violets et les renégats (les tanks renégats sont noirs).  Détruire un joueur d'une autre équipe donne un point, alors que se faire détruire ou détruire un joueur de son équipe fait perdre un point.  Les renégats n'ont pas d'équipe (pas même les autres renégats), donc ils ne peuvent pas tirer sur des coéquipiers et n'ont pas de score d'équipe.\n"
+"\n"
+"Il y a deux styles de jeu principaux : capture du drapeau et tir libre.  En capture du drapeau, chaque équipe (en dehors des renégats) a une base et chaque équipe avec au moins un joueur a un drapeau.  L'objectif est de capturer le drapeau de l'ennemi et de le ramener à votre base.  Cela détruit les joueurs de cette équipe, leur retire un point et ajoute un point à votre équipe.  En mode libre, il n'y a pas de drapeaux ni de base.  L'objectif est simplement de remporter le plus de points possibles."
+
+#: gnu/packages/games.scm:844
+msgid "Survival horror roguelike video game"
+msgstr "Jeu vidéo de survie et d'horreur roguelike"
+
+#: gnu/packages/games.scm:846
 msgid ""
 "Cataclysm: Dark Days Ahead (or \"DDA\" for short) is a roguelike set\n"
 "in a post-apocalyptic world.  Struggle to survive in a harsh, persistent,\n"
@@ -4077,48 +4659,48 @@ msgid ""
 "powerful monstrosities, from zombies to giant insects to killer robots and\n"
 "things far stranger and deadlier, and against the others like yourself, that\n"
 "want what you have."
-msgstr ""
+msgstr "Cataclysm: Dark Days Ahead (« DDA » pour faire plus court) est un roguelike dans un monde post-apocalyptique.  Luttez pour survivre dans un monde difficile, persistent et généré procéduralement.  Récupérez les restes d'une civilisation morte pour la nourriture, l'équipement, ou si vous avez de la chance, un véhicule avec un plein d'essence pour vous amener en dehors de Dodge.  Combattez pour détruire ou échapper à un grande variété de monstruosités, entre zombies, insectes géants, robots tueurs et autres choses plus étranges et mortelles encore, et à d'autres comme vous, qui veulent ce que vous possédez."
 
-#: gnu/packages/games.scm:511
+#: gnu/packages/games.scm:902
 msgid "Implementation of the @i{Theme Hospital} game engine"
 msgstr "Implémentation du moteur de jeu @i{Theme Hospital}"
 
-#: gnu/packages/games.scm:513
+#: gnu/packages/games.scm:904
 msgid ""
 "This package provides a reimplementation of the 1997 Bullfrog business\n"
 "simulation game @i{Theme Hospital}.  As well as faithfully recreating the\n"
 "original engine, CorsixTH adds support for high resolutions, custom levels and\n"
 "more.  This package does @emph{not} provide the game assets."
-msgstr ""
+msgstr "Ce paquet fournit une réimplémentation du jeu de simulation de compagnie Bullfrog de 1997 @i{Theme Hospital}.  En plus de recréer fidèlement le moteur d'origine, CorsixTH ajoute la prise en charge des grandes résolutions, des niveaux personnalisés et bien plus.  Ce paquet ne fournit @emph{pas} les ressources du jeu."
 
-#: gnu/packages/games.scm:554
+#: gnu/packages/games.scm:945
 msgid "Speaking cow text filter"
-msgstr ""
+msgstr "Filtre de texte avec un vache qui parle"
 
-#: gnu/packages/games.scm:555
+#: gnu/packages/games.scm:946
 msgid ""
 "Cowsay is basically a text filter.  Send some text into it,\n"
 "and you get a cow saying your text.  If you think a talking cow isn't enough,\n"
 "cows can think too: all you have to do is run @command{cowthink}.  If you're\n"
 "tired of cows, a variety of other ASCII-art messengers are available."
-msgstr ""
+msgstr "Cowsay est essentiellement un filtre de texte.  Envoyez lui du texte et vous obtenez une vache qui dit votre texte.  Si vous pensez qu'une vache qui parle n'est pas suffisant, les vache pensent aussi : tout ce que vous avez à faire est de lancer @command{cowthink}.  Si vous en avez marre des vaches, il y a aussi toute une variété de messagers en ASCII-art."
 
-#: gnu/packages/games.scm:594
+#: gnu/packages/games.scm:986
 msgid "Rainbow coloring effect for text console display"
-msgstr ""
+msgstr "effet de coloration arc-en-ciel pour l'affichage textuel en console"
 
-#: gnu/packages/games.scm:595
+#: gnu/packages/games.scm:987
 msgid ""
 "@command{lolcat} concatenates files and streams like\n"
 "regular @command{cat}, but it also adds terminal escape codes between\n"
 "characters and lines resulting in a rainbow effect."
-msgstr ""
+msgstr "@command{lolcat} concatène des fichiers et des flux comme la commande @command{cat}, mais ajoute aussi des codes d'échappement entre les caractères et les lignes pour obtenir un effet arc-en-ciel."
 
-#: gnu/packages/games.scm:709
+#: gnu/packages/games.scm:1101
 msgid "3D billiard game"
-msgstr ""
+msgstr "Jeu de billard en 3D"
 
-#: gnu/packages/games.scm:710
+#: gnu/packages/games.scm:1102
 msgid ""
 "FooBillard++ is an advanced 3D OpenGL billiard game\n"
 "based on the original foobillard 3.0a sources from Florian Berger.\n"
@@ -4139,12 +4721,28 @@ msgid ""
 "@item And much more.\n"
 "@end itemize"
 msgstr ""
+"FooBillard++ est un jeu de billard 3D avec OpenGL avancé basé sur les sources d'origine de foobillard 3.0a de Florian Berger.  Vous pouvez y jouer à un ou deux joueurs ou contre l'ordinateur.\n"
+"\n"
+"Le jeu inclus :\n"
+"\n"
+"@itemize\n"
+"@item Une table en bois, feuille d'or et diamant d'or\n"
+"@item Des réflexions sur les boules\n"
+"@item La possibilité de zoomer en avant et en arrière, de tourner la caméra, d'obtenir différents angles et une vue de dessus\n"
+"@item Différents modes de jeu : 8 ou 9 boules, Snooker ou Carambole\n"
+"@item Des tournois.  Complets contre d'autres joueurs\n"
+"@item Des animations pour la force et l'ajustement de coups excentrés\n"
+"@item Des coups sautés et snipping\n"
+"@item Une expérience de jeu et des sons réalistes\n"
+"@item Stéréoscopie rouge-vert\n"
+"@item Et bien plus\n"
+"@end itemize"
 
-#: gnu/packages/games.scm:771
+#: gnu/packages/games.scm:1163
 msgid "Free content game based on the Doom engine"
 msgstr "Jeu au contenu libre basé sur le moteur Doom"
 
-#: gnu/packages/games.scm:780
+#: gnu/packages/games.scm:1172
 msgid ""
 "The Freedoom project aims to create a complete free content first person\n"
 "shooter game.  Freedoom by itself is just the raw material for a game: it must\n"
@@ -4158,11 +4756,11 @@ msgstr ""
 "pour être jouable.  Freedoom complète le moteur Doom sur trois niveaux : les\n"
 "graphismes, les effets sonores et la musique pour faire un jeu entièrement libre."
 
-#: gnu/packages/games.scm:828
+#: gnu/packages/games.scm:1220
 msgid "Isometric role-playing game against killer robots"
-msgstr ""
+msgstr "Jeu de rôle isométrique contre des robots tueurs"
 
-#: gnu/packages/games.scm:830
+#: gnu/packages/games.scm:1222
 msgid ""
 "Freedroid RPG is an @dfn{RPG} (Role-Playing Game) with isometric graphics.\n"
 "The game tells the story of a world destroyed by a conflict between robots and\n"
@@ -4170,13 +4768,13 @@ msgid ""
 "numerous quests while fighting off rebelling robots---either by taking control\n"
 "of them, or by simply blasting them to pieces with melee and ranged weapons in\n"
 "real-time combat."
-msgstr ""
+msgstr "Freedroid RPG est un @dfn{JDR} (jeu de rôle) avec des graphiques isométriques.  Le jeu raconte l'histoire d'un monde détruit par un conflit entre robots et leurs maîtres humains.  Pour restaurer la paix, le joueur doit compléter diverses quêtes tout en combattant les robot rebelles — soit en en prenant le contrôle, soit simplement en les annihilant avec des armes de corps-à-corps ou à distance en combat temps-réel."
 
-#: gnu/packages/games.scm:907
+#: gnu/packages/games.scm:1299
 msgid "Software for exploring cellular automata"
-msgstr ""
+msgstr "Logiciel pour exploiter des automates cellulaires"
 
-#: gnu/packages/games.scm:909
+#: gnu/packages/games.scm:1301
 msgid ""
 "Golly simulates Conway's Game of Life and many other types of cellular\n"
 "automata.  The following features are available:\n"
@@ -4196,48 +4794,92 @@ msgid ""
 "@item Auto fit option to keep patterns within the view.\n"
 "@end enumerate"
 msgstr ""
+"Golly simule le jeu de la vie de Conway et plein d'autres types d'automates cellulaires.  Il possède les fonctionnalités suivantes :\n"
+"\n"
+"@enumerate\n"
+"@item La prise en charge des univers limités ou sans limite, avec jusqu'à 256 états par cellule,\n"
+"@item la prise en charge de plusieurs algorithmes, dont l'algorithme Hashlife le Bill Gosper,\n"
+"@item le chargement de motifs à partir de fichiers images BMP, PNG, GIF ou TIFF,\n"
+"@item la lecture des fichiers RLE, macrocell, Life 1.05/1.06, dblife et MCell,\n"
+"@item la possibilité d'utiliser des scripts Lua ou Python,\n"
+"@item l'extraction de motifs, de règles et de scripts à partir de fichiers zip,\n"
+"@item le téléchargement de motifs, de règles et de scripts à partir d'archives en ligne,\n"
+"@item le collage de motifs à partir du presse-papier\n"
+"@item la possibilité d'annuler ou de refaire sans limite,\n"
+"@item des raccourcis claviers configurables,\n"
+"@item une option d'adaptation automatique pour garder les motifs en vue\n"
+"@end enumerate"
 
-#: gnu/packages/games.scm:946
+#: gnu/packages/games.scm:1346
 msgid "Re-implementation of Caesar III game engine"
 msgstr "Ré-implémentation du moteur de jeu Caesar III"
 
-#: gnu/packages/games.scm:948
+#: gnu/packages/games.scm:1348
 msgid ""
 "Engine for Caesar III, a city-building real-time strategy game.\n"
 "Julius includes some UI enhancements while preserving the logic (including\n"
 "bugs) of the original game, so that saved games are compatible.  This package\n"
 "does not include game data."
+msgstr "Moteur pour Caesar III, un jeu de stratégie en temps-réel et de construction de ville.  Julius contient des améliorations graphique tout en préservant la logique (avec les bogues) du jeu d'origine, pour que les parties sauvegardées restent compatibles.  Ce paquet n'inclut pas les données du jeu."
+
+#: gnu/packages/games.scm:1380
+msgid "Re-implementation of Caesar III game engine with gameplay changes"
+msgstr "Ré-implémentation du moteur de jeu Caesar III avec des modifications de gameplay"
+
+#: gnu/packages/games.scm:1382
+msgid ""
+"Fork of Julius, an engine for the a city-building real-time strategy\n"
+"game Caesar III.  Gameplay enhancements include:\n"
+"\n"
+"@itemize\n"
+"@item roadblocks;\n"
+"@item market special orders;\n"
+"@item global labour pool;\n"
+"@item partial warehouse storage;\n"
+"@item increased game limits;\n"
+"@item zoom controls.\n"
+"@end itemize\n"
 msgstr ""
+"Fork de Julius, un moteur pour le jeu de stratégie en temps-réel et de construction de ville Caesar III.  Les améliorations de l'expérience de jeu incluent :\n"
+"\n"
+"@itemize\n"
+"@item des barrières,\n"
+"@item des ordres spéciaux pour les marchés,\n"
+"@item une réserve globale pour les emplois\n"
+"@item le stockage partiel dans les entrepôts\n"
+"@item l'augmentation des limites du jeu,\n"
+"@item le contrôle du zoom.\n"
+"@end itemize\n"
 
-#: gnu/packages/games.scm:982
+#: gnu/packages/games.scm:1420
 msgid "Puzzle/platform game"
-msgstr ""
+msgstr "Jeu de puzzle/plateforme"
 
-#: gnu/packages/games.scm:983
+#: gnu/packages/games.scm:1421
 msgid ""
 "Me and My Shadow is a puzzle/platform game in which you try\n"
 "to reach the exit by solving puzzles.  Spikes, moving blocks, fragile blocks\n"
 "and much more stand between you and the exit.  Record your moves and let your\n"
 "shadow mimic them to reach blocks you couldn't reach alone."
-msgstr ""
+msgstr "Me and My Shadow est un jeu de puzzle et de plateforme dans lequel vous essayez d'atteindre la sortie en résolvant des puzzles.  Des piques, des blocs se déplaçant, des blocs fragiles et bien plus se trouvent sur votre chemin.  Enregistrez vos mouvements et laisser votre ombre vous mimer pour atteindre des blocs que vous ne pouviez pas atteindre seul."
 
-#: gnu/packages/games.scm:1041
+#: gnu/packages/games.scm:1479
 msgid "2D retro side-scrolling game"
-msgstr ""
+msgstr "Jeu rétro à défilement horizontal"
 
-#: gnu/packages/games.scm:1042
+#: gnu/packages/games.scm:1480
 msgid ""
 "@code{Open Surge} is a 2D retro side-scrolling platformer\n"
 "inspired by the Sonic games.  The player runs at high speeds through each\n"
 "level while collecting items and avoiding obstacles.  The game includes a\n"
 "built-in level editor."
-msgstr ""
+msgstr "@code{Open Surge} est un jeu rétro de plateforme à défilement horizontal en 2D inspiré par les jeux Sonic.  le joueur court à grande vitesse à travers des niveaux en collectant des objets et en évitant des obstacles.  Le jeu contient un éditeur de niveau."
 
-#: gnu/packages/games.scm:1086
+#: gnu/packages/games.scm:1525
 msgid "Multiplayer dungeon game involving knights and quests"
-msgstr ""
+msgstr "Jeu de donjon multijoueur avec des chevaliers et des quêtes"
 
-#: gnu/packages/games.scm:1087
+#: gnu/packages/games.scm:1526
 msgid ""
 "Knights is a multiplayer game involving several knights who\n"
 "must run around a dungeon and complete various quests.  Each game revolves\n"
@@ -4247,25 +4889,25 @@ msgid ""
 "kill your opponents to get their stuff!  Other quests involve escaping from\n"
 "the dungeon, fighting a duel to the death against the enemy knights, or\n"
 "destroying an ancient book using a special wand."
-msgstr ""
+msgstr "Knights est un jeu multijoueur avec plusieurs chevaliers qui doivent parcourir un donjon et compléter diverses quêtes.  Chaque partie tourne autour d'une quête — par exemple, vous devez trouver certains objets et les rapporter à votre point de départ.  Ça a l'air facile, mais comme il n'y a assez d'objets dans le donjon que pour la victoire d'un seul joueur, vous devrez peut-être tuer vos adversaires pour récupérer leurs possessions !  D'autres quêtes vous feront vous échapper d'un donjon, combattre à mort les chevaliers ennemis ou détruire un ancien livre avec une baguette spéciale."
 
-#: gnu/packages/games.scm:1133
+#: gnu/packages/games.scm:1572
 msgid "Chess board for GNOME"
-msgstr ""
+msgstr "Plateau d'échecs pour GNOME"
 
-#: gnu/packages/games.scm:1134
+#: gnu/packages/games.scm:1573
 msgid ""
 "GNOME Chess provides a 2D board for playing chess games\n"
 "against human or computer players.  It supports loading and saving games in\n"
 "Portable Game Notation.  To play against a computer, install a chess engine\n"
 "such as chess or stockfish."
-msgstr ""
+msgstr "GNOME Chess fournit un plateau en 2D pour jouer aux échecs contre un humain ou un ordinateur.  Il prend en charge le chargement et la sauvegarde des parties en notation de jeu portable.  Pour joueur contre un ordinateur, installez un moteur d'échecs comme chess ou stockfish."
 
-#: gnu/packages/games.scm:1184
+#: gnu/packages/games.scm:1627
 msgid "Backgammon game"
 msgstr "Jeu de backgammon"
 
-#: gnu/packages/games.scm:1185
+#: gnu/packages/games.scm:1628
 msgid ""
 "The GNU backgammon application (also known as \"gnubg\") can\n"
 "be used for playing, analyzing and teaching the game.  It has an advanced\n"
@@ -4279,11 +4921,11 @@ msgstr ""
 "et aux joueurs avancés.  En plus d'une interface en ligne de commande, il possède\n"
 "aussi une représentation 3D attractive du plateau de jeu."
 
-#: gnu/packages/games.scm:1214
+#: gnu/packages/games.scm:1667
 msgid "3d Rubik's cube game"
 msgstr "Jeu de Rubik's cube en 3d"
 
-#: gnu/packages/games.scm:1216
+#: gnu/packages/games.scm:1669
 msgid ""
 "GNUbik is a puzzle game in which you must manipulate a cube to make\n"
 "each of its faces have a uniform color.  The game is customizable, allowing\n"
@@ -4297,11 +4939,11 @@ msgstr ""
 "pouvez même utiliser des photos pour les faces à la place des couleurs.  Le jeu\n"
 "peut être scripté avec Guile."
 
-#: gnu/packages/games.scm:1238
+#: gnu/packages/games.scm:1691
 msgid "The game of Shogi (Japanese chess)"
 msgstr "Le jeu de Shōgi (les échecs japonais)"
 
-#: gnu/packages/games.scm:1239
+#: gnu/packages/games.scm:1692
 msgid ""
 "GNU Shogi is a program that plays the game Shogi (Japanese\n"
 "Chess).  It is similar to standard chess but this variant is far more complicated."
@@ -4309,11 +4951,11 @@ msgstr ""
 "GNU Shogi est un programme qui joue au Shōgi (les échecs japonais).\n"
 "Il est similaire aux échecs standards mais cette variante est bien plus complexe."
 
-#: gnu/packages/games.scm:1271
+#: gnu/packages/games.scm:1723
 msgid "Tetris clone based on the SDL library"
-msgstr ""
+msgstr "Clone de Tetris basés sur la bibliothèque SDL"
 
-#: gnu/packages/games.scm:1273
+#: gnu/packages/games.scm:1725
 msgid ""
 "LTris is a tetris clone: differently shaped blocks are falling down the\n"
 "rectangular playing field and can be moved sideways or rotated by 90 degree\n"
@@ -4325,13 +4967,13 @@ msgid ""
 "up to three players (either human or CPU) compete with each other sending\n"
 "removed lines to all opponents.  There is also a Demo mode in which you can\n"
 "watch your CPU playing while enjoying a cup of tea!"
-msgstr ""
+msgstr "LTris est un clone de tetris : des blocs de formes différentes tombent dans la zone de jeu rectangulaire et vous pouvez les déplacer ou les tourner de 90 degrés, dans le but de construire des lignes sans trous qui disparaissent alors (ce qui fait tomber les blocs du dessus).  Ltris a trois modes de jeu : en mode classique, vous jouez jusqu'à ce que la pile de blocs atteigne le haut de l'air de jeu et qu'aucun nouveau bloc ne puisse entrer. En mode figures, l'air de jeu est rempli d'une nouvelle figure à chaque niveau et plus tard des tuiles et des lignes apparaissent soudainement.  En mode multijoueur jusqu'à trois joueurs (humains ou machines) sont en compétition en envoyant leurs lignes supprimées aux autres joueurs.  Il y a aussi un mode démo dans lequel vous pouvez admirer l'ordinateur jouer tout en buvant une tasse de thé !"
 
-#: gnu/packages/games.scm:1397
+#: gnu/packages/games.scm:1849
 msgid "Classic dungeon crawl game"
-msgstr ""
+msgstr "Jeu d'exploration de donjon classique"
 
-#: gnu/packages/games.scm:1398
+#: gnu/packages/games.scm:1850
 msgid ""
 "NetHack is a single player dungeon exploration game that runs\n"
 "on a wide variety of computer systems, with a variety of graphical and text\n"
@@ -4343,79 +4985,151 @@ msgid ""
 "unlimited number of variations of the dungeon and its denizens to be discovered\n"
 "by the player in one of a number of characters: you can pick your race, your\n"
 "role, and your gender."
-msgstr ""
+msgstr "NetHack est un jeu d'exploration de donjon solo qui tourne sur une grande variété de machines, avec diverses interfaces graphique et textuelles qui utilisent toutes les même moteur.  contrairement à d'autres jeux inspirés de Donjons & Dragons, l'accent est mis sur la découverte des détails du donjon et non simplement sur le combat avec tout ce qui bouge — en fait tuer tout ce qui bouge est une bonne manière de mourir rapidement.  Chaque partie présente un paysage différent — le générateur de nombres aléatoires fournit un nombre virtuellement illimité de variations dans les donjons et ses habitants à découvrir.  Vous pouvez choisir parmi plusieurs personnages : vous pouvez choisir votre race, votre rôle et votre genre."
 
-#: gnu/packages/games.scm:1442
+#: gnu/packages/games.scm:1894
 msgid "Logical tile puzzle"
-msgstr ""
+msgstr "Puzzle de logique avec des tuiles"
 
-#: gnu/packages/games.scm:1444
+#: gnu/packages/games.scm:1896
 msgid ""
 "PipeWalker is a simple puzzle game with many diffent themes: connect all\n"
 "computers to one network server, bring water from a source to the taps, etc.\n"
 "The underlying mechanism is always the same: you must turn each tile in the\n"
 "grid in the right direction to combine all components into a single circuit.\n"
 "Every puzzle has a complete solution, although there may be more than one."
-msgstr ""
+msgstr "PipeWalker est un simple jeu de puzzle avec différents thèmes : connecter tous les ordinateurs à un serveur de réseau, amener l'eau d'une source aux robinets, etc.  La mécanique de base reste la même : vous devez tourner chaque tuile de la grille dans la bonne direction pour combiner tous les composants en un seul circuit.  Chaque puzzle un une solution complète, même s'il peut y en avoir plus d'une."
 
-#: gnu/packages/games.scm:1492
+#: gnu/packages/games.scm:1944
 msgid "Version of the classic 3D shoot'em'up game Doom"
 msgstr "Version du jeu classique de shoot'em'up Doom en 3D"
 
-#: gnu/packages/games.scm:1494
+#: gnu/packages/games.scm:1946
 msgid "PrBoom+ is a Doom source port developed from the original PrBoom project."
 msgstr ""
 "PrBoom+ est un port des sources de Doom développé à partir du projet\n"
 "PrBoom original."
 
-#: gnu/packages/games.scm:1542
+#: gnu/packages/games.scm:1994
 msgid "Action platformer game"
-msgstr ""
+msgstr "Jeu de plateforme et d'action"
 
-#: gnu/packages/games.scm:1544
+#: gnu/packages/games.scm:1996
 msgid ""
 "ReTux is an action platformer loosely inspired by the Mario games,\n"
 "utilizing the art assets from the @code{SuperTux} project."
-msgstr ""
+msgstr "ReTux est un jeu de plateforme et d'action inspiré des jeux Mario, qui utilise les ressources du projet @code{SuperTux}."
 
-#: gnu/packages/games.scm:1653
+#: gnu/packages/games.scm:2105
 msgid "A classical roguelike/sandbox game"
-msgstr ""
+msgstr "Un jeu roguelike/sandbox classique"
 
-#: gnu/packages/games.scm:1655
+#: gnu/packages/games.scm:2107
 msgid ""
 "RogueBox Adventures is a graphical roguelike with strong influences\n"
 "from sandbox games like Minecraft or Terraria.  The main idea of RogueBox\n"
 "Adventures is to offer the player a kind of roguelike toy-world.  This world\n"
 "can be explored and changed freely."
+msgstr "RogueBox Adventures est un roguelike graphique avec une forte influence des jeux de sandbox comme Minecraft ou Terraria.  L'idée principale de RogueBox Adventures est de proposer au joueur un monde-jouet roguelike.  ce monde est explorable et peut être changé librement."
+
+#: gnu/packages/games.scm:2218
+msgid "Help Barbie the seahorse float on bubbles to the moon"
+msgstr "Aidez Barbie l'hippocampe à flotter sur des bulles jusqu'à la lune"
+
+#: gnu/packages/games.scm:2220
+msgid ""
+"Barbie Seahorse Adventures is a retro style platform arcade game.\n"
+"You are Barbie the seahorse who travels through the jungle, up to the\n"
+"volcano until you float on bubbles to the moon.  On the way to your\n"
+"final destination you will encounter various enemies, servants of the\n"
+"evil overlord who has stolen the galaxy crystal.  Avoid getting hit\n"
+"and defeat them with your bubbles!"
+msgstr "Barbie Seahorse Adventures est un jeu d'arcade et de plateforme dans un style rétro.  Vous être Barbie l'hippocampe qui voyage à travers la jungle, jusqu'au volcan jusqu'à flotter sur des bulles jusqu'à la lune.  Sur votre chemin vous rencontrerez différents ennemis, des servants du terrible tyran qui a volé le cristal galactique.  Évitez les coup et battez-les avec vos bulles !"
+
+#: gnu/packages/games.scm:2299
+msgid "Fast-paced local multiplayer arcade game"
+msgstr "Jeu d'arcade multijoueur local nerveux"
+
+#: gnu/packages/games.scm:2300
+msgid ""
+"In SuperStarfighter, up to four local players compete in a\n"
+"2D arena with fast-moving ships and missiles.  Different game types are\n"
+"available, as well as a single-player mode with AI-controlled ships."
+msgstr "Dans SuperStarfighter, jusqu'à quatre joueur se battent dans une arène en D avec des vaisseaux rapides et des missiles.  Différents types de jeux sont disponibles, ainsi qu'un mode solo avec des vaisseaux contrôlés par une IA."
+
+#: gnu/packages/games.scm:2400
+msgid "UFO: AI map generator"
+msgstr "générateur de carte pour UFO: IA"
+
+#: gnu/packages/games.scm:2402
+msgid ""
+"This package provides @command{ufo2map}, a program used to generate\n"
+"maps for the UFO: Alien Invasion strategy game."
+msgstr "Ce paquet fournit @command{ufo2map}, un programme utilisé pour générer des carte pour le jeu de stratégie UFO : Alien Invasion."
+
+#: gnu/packages/games.scm:2442
+msgid "UFO: AI data files"
+msgstr "fichiers de données de UFO: AI"
+
+#: gnu/packages/games.scm:2444
+msgid "This package contains maps and other assets for UFO: Alien Invasion."
+msgstr "Ce paquet contient des cartes et d'autres données pour UFO: Alien Invasion."
+
+#: gnu/packages/games.scm:2529
+msgid "Turn-based tactical strategy game"
+msgstr "Jeu de stratégie tactique en tour par tour"
+
+#: gnu/packages/games.scm:2531
+msgid ""
+"UFO: Alien Invasion is a tactical strategy game set in the year 2084.\n"
+"You control a secret organisation charged with defending Earth from a brutal\n"
+"alien enemy.  Build up your bases, prepare your team, and dive head-first into\n"
+"the fast and flowing turn-based combat.\n"
+"\n"
+"Over the long term you will need to conduct research into the alien threat to\n"
+"figure out their mysterious goals and use their powerful weapons for your own\n"
+"ends.  You will produce unique items and use them in combat against your\n"
+"enemies.\n"
+"\n"
+"You can also use them against your friends with the multiplayer functionality.\n"
+"\n"
+"Warning: This is a pre-release version of UFO: AI!  Some things may not work\n"
+"properly."
 msgstr ""
+"UFO : Alien Invasion est un je de stratégie tactique qui se déroule en l'an 2084.  Vous contrôlez une organisation secrète chargée de défendre la Terre d'un féroce ennemi alien.  Construisez vos bases, préparez votre équipe et plongez-vous dans un combat tour-par-tour rapide et fluide.\n"
+"\n"
+"Sur le long-terme vous devrez effectuer des recherches sur la menace alien pour comprendre leurs buts mystérieux et utiliser leurs armes contre eux.  Vous produirez des objets uniques et les utiliserez en combat contre vos ennemis.\n"
+"\n"
+"Vous pouvez aussi les utiliser contre vos amis dans le mode multijoueur.\n"
+"\n"
+"Attention : c'est une version pré-publication de UFO : AI !  Certaines choses ne fonctionnent pas encore correctement."
 
-#: gnu/packages/games.scm:1682
+#: gnu/packages/games.scm:2568
 msgid "User interface for gnushogi"
 msgstr "Interface pour gnushogi"
 
-#: gnu/packages/games.scm:1683
+#: gnu/packages/games.scm:2569
 msgid "A graphical user interface for the package @code{gnushogi}."
 msgstr "Une interface utilisateur graphique pour le paquet @code{gnushogi}"
 
-#: gnu/packages/games.scm:1735
+#: gnu/packages/games.scm:2621
 msgid "GNU/Linux port of the indie game \"l'Abbaye des Morts\""
 msgstr "Port GNU/Linux du jeu indépendant « l'Abbaye des Morts »"
 
-#: gnu/packages/games.scm:1736
+#: gnu/packages/games.scm:2622
 msgid ""
 "L'Abbaye des Morts is a 2D platform game set in 13th century\n"
 "France.  The Cathars, who preach about good Christian beliefs, were being\n"
 "expelled by the Catholic Church out of the Languedoc region in France.  One of\n"
 "them, called Jean Raymond, found an old church in which to hide, not knowing\n"
 "that beneath its ruins lay buried an ancient evil."
-msgstr ""
+msgstr "L'Abbaye des Morts est un jeu de plateforme en 2D qui se passe dans la France du 13ème siècle.  Les Cathars, qui prêchent les bonnes valeurs chrétiennes, se font expulser par l'église catholique hors du Languedoc.  L'un d'entre eux, Jean Raymond, trouve un vieille église dans laquelle se cacher, sans savoir qui sous ses ruines se trouve enterré un ancien mal."
 
-#: gnu/packages/games.scm:1789
+#: gnu/packages/games.scm:2674
 msgid "Dungeon exploration roguelike"
 msgstr "Roguelike d'exploration de donjon"
 
-#: gnu/packages/games.scm:1790
+#: gnu/packages/games.scm:2675
 msgid ""
 "Angband is a Classic dungeon exploration roguelike.  Explore\n"
 "the depths below Angband, seeking riches, fighting monsters, and preparing to\n"
@@ -4425,11 +5139,11 @@ msgstr ""
 "en dessous d'Angband, cherchez des richesses, combattez des montres et préparez-vous\n"
 "à combattre Morgoth, le Seigneur des Ténèbres."
 
-#: gnu/packages/games.scm:1837
+#: gnu/packages/games.scm:2722
 msgid "Lemmings clone"
 msgstr "Clone de Lemmings"
 
-#: gnu/packages/games.scm:1839
+#: gnu/packages/games.scm:2724
 msgid ""
 "Pingus is a free Lemmings-like puzzle game in which the player takes\n"
 "command of a bunch of small animals and has to guide them through levels.\n"
@@ -4444,11 +5158,11 @@ msgstr ""
 "leur donnant des ordres.  Plusieurs de ces ordres sont nécessaires pour atteindre\n"
 "la fin du niveau.  Le jeu est présenté en 2D, en vue de côté."
 
-#: gnu/packages/games.scm:1861
+#: gnu/packages/games.scm:2746
 msgid "Convert English text to humorous dialects"
 msgstr "Convertit du texte en anglais vers des dialectes rigolos"
 
-#: gnu/packages/games.scm:1862
+#: gnu/packages/games.scm:2747
 msgid ""
 "The GNU Talk Filters are programs that convert English text\n"
 "into stereotyped or otherwise humorous dialects.  The filters are provided as\n"
@@ -4458,11 +5172,22 @@ msgstr ""
 "vers des dialectes stéréotypés ou rigolos.  Les filtres sont fournis en tant que\n"
 "bibliothèques C, pour qu'ils puissent être facilement intégrés à d'autres programmes."
 
-#: gnu/packages/games.scm:1898
+#: gnu/packages/games.scm:2791
+msgid "Shoot'em up fangame and libre clone of Touhou Project"
+msgstr "Jeu shoot'em up de fans et clone libre du projet Touhou"
+
+#: gnu/packages/games.scm:2793
+msgid ""
+"The player controls a character (one of three: Good, Bad, and Dead),\n"
+"dodges the missiles (lots of it cover the screen, but the character's hitbox\n"
+"is very small), and shoot at the adversaries that keep appear on the screen."
+msgstr "Le joueur contrôle un personnage (parmi le gentil, le méchant et le mort), évite les missiles (il y en a plein qui couvrent l'écran, mais la boîte de collision du joueur est très petite), et tire sur ses adversaires qui ne cessent d'apparaître à l'écran."
+
+#: gnu/packages/games.scm:2836
 msgid "Simulate the display from \"The Matrix\""
 msgstr "Simule l'affichage comme dans « Matrix »"
 
-#: gnu/packages/games.scm:1899
+#: gnu/packages/games.scm:2837
 msgid ""
 "CMatrix simulates the display from \"The Matrix\" and is\n"
 "based on the screensaver from the movie's website.  It works with terminal\n"
@@ -4474,11 +5199,11 @@ msgstr ""
 "peut faire défiler les lignes à la même vitesse ou de manière asynchrone\n"
 "à une vitesse définie par l'utilisateur."
 
-#: gnu/packages/games.scm:1919
+#: gnu/packages/games.scm:2857
 msgid "Full chess implementation"
 msgstr "Implémentation complète du jeu d'échecs"
 
-#: gnu/packages/games.scm:1920
+#: gnu/packages/games.scm:2858
 msgid ""
 "GNU Chess is a chess engine.  It allows you to compete\n"
 "against the computer in a game of chess, either through the default terminal\n"
@@ -4489,41 +5214,41 @@ msgstr ""
 "textuelle par défaut soit via une interface visuelle externe comme\n"
 "GNU XBoard."
 
-#: gnu/packages/games.scm:1960
+#: gnu/packages/games.scm:2918
 msgid "Twisted adventures of young pig farmer Dink Smallwood"
-msgstr ""
+msgstr "Aventures en tire-bouchon d'un jeune fermier cochon Dink Smallwood"
 
-#: gnu/packages/games.scm:1962
+#: gnu/packages/games.scm:2920
 msgid ""
 "GNU FreeDink is a free and portable re-implementation of the engine\n"
 "for the role-playing game Dink Smallwood.  It supports not only the original\n"
 "game data files but it also supports user-produced game mods or \"D-Mods\".\n"
 "To that extent, it also includes a front-end for managing all of your D-Mods."
-msgstr ""
+msgstr "GNU FreeDink est une réimplémentation libre et portable du moteur du jeu de rôle Dink Smallwood.  Il prend en charge non seulement les fichiers de données du jeu d'origine, mais aussi des mods fournis par les joueurs (les « D-Mods »).  Pour cela, il inclut aussi une interface pour gérer vos mods."
 
-#: gnu/packages/games.scm:1988
+#: gnu/packages/games.scm:2946
 msgid "Game data for GNU Freedink"
 msgstr "Données de jeu pour GNU Freedink"
 
-#: gnu/packages/games.scm:1990
+#: gnu/packages/games.scm:2948
 msgid "This package contains the game data of GNU Freedink."
 msgstr "Ce paquet continet les données du jeu GNU Freedink."
 
-#: gnu/packages/games.scm:2013
+#: gnu/packages/games.scm:2971
 msgid "Front-end for managing and playing Dink Modules"
 msgstr "Interface pour gérer et jouer à des modules pour Dink"
 
-#: gnu/packages/games.scm:2014
+#: gnu/packages/games.scm:2972
 msgid ""
 "DFArc makes it easy to play and manage the GNU FreeDink game\n"
 "and its numerous D-Mods."
-msgstr ""
+msgstr "DFArc rend facile de joueur et de gérer des parties FreeDink et ses nombreux D-Mods."
 
-#: gnu/packages/games.scm:2066
+#: gnu/packages/games.scm:3024
 msgid "Graphical user interface for chess programs"
 msgstr "Interface utilisateur Graphique pour les programmes d'échecs"
 
-#: gnu/packages/games.scm:2067
+#: gnu/packages/games.scm:3025
 msgid ""
 "GNU XBoard is a graphical board for all varieties of chess,\n"
 "including international chess, xiangqi (Chinese chess), shogi (Japanese chess)\n"
@@ -4537,24 +5262,24 @@ msgstr ""
 "supportées.  Il présente une interface utilisateur complètement interactive et\n"
 "peut charger et sauvegarder les jeux dans la Notation de Jeu Universelle."
 
-#: gnu/packages/games.scm:2101
+#: gnu/packages/games.scm:3059
 msgid "Typing tutor"
 msgstr "Tutorial pour apprendre à taper"
 
-#: gnu/packages/games.scm:2103
+#: gnu/packages/games.scm:3061
 msgid ""
 "GNU Typist is a universal typing tutor.  It can be used to learn and\n"
 "practice touch-typing.  Several tutorials are included; in addition to\n"
 "tutorials for the standard QWERTY layout, there are also tutorials for the\n"
 "alternative layouts Dvorak and Colemak, as well as for the numpad.  Tutorials\n"
 "are primarily in English, however some in other languages are provided."
-msgstr ""
+msgstr "GNU Typist permet d'apprendre à taper.  On peut l'utiliser pour apprendre et pratiquer la dactylographie.  Plusieurs tutoriels sont disponibles ; en plus des tutoriels pour la disposition standard QWERTY, il y a des tutoriels pour les dispositions alternatives Dvorak et Colemak, ainsi que pour le pavé numérique.  Les tutoriels sont surtout en anglais, mais il y en a pour quelques autres langues."
 
-#: gnu/packages/games.scm:2169
+#: gnu/packages/games.scm:3127
 msgid "3D game engine written in C++"
 msgstr "Moteur de jeu 3D écrit en C++"
 
-#: gnu/packages/games.scm:2171
+#: gnu/packages/games.scm:3129
 msgid ""
 "The Irrlicht Engine is a high performance realtime 3D engine written in\n"
 "C++.  Features include an OpenGL renderer, extensible materials, scene graph\n"
@@ -4567,44 +5292,54 @@ msgstr ""
 "effets spéciaux, le support pour des formats de fichiers graphiques usuels et la\n"
 "détection de collision."
 
-#: gnu/packages/games.scm:2223
+#: gnu/packages/games.scm:3181
 msgid "2D space shooter"
 msgstr "Jeu de tir spatial en 2D"
 
-#: gnu/packages/games.scm:2225
+#: gnu/packages/games.scm:3183
 msgid ""
 "M.A.R.S. is a 2D space shooter with pretty visual effects and\n"
 "attractive physics.  Players can battle each other or computer controlled\n"
 "enemies in different game modes such as space ball, death match, team death\n"
 "match, cannon keep, and grave-itation pit."
-msgstr ""
-
-#: gnu/packages/games.scm:2259
-msgid "Main game data for the Minetest game engine"
-msgstr "Données principales du jeu pour le moteur de jeu Minetest"
-
-#: gnu/packages/games.scm:2261
-msgid "Game data for the Minetest infinite-world block sandbox game."
-msgstr ""
+msgstr "M.A.R.S. est un jeu de tir dans l'espace avec de jolis effets visuels et une physique attractive.  Les joueurs se battent entre eux ou contre l'ordinateur dans différents modes de jeu comme space ball, les matchs à mort, les matchs à mort en équipe, protection de canon, ou puits de gravité."
 
-#: gnu/packages/games.scm:2323
+#: gnu/packages/games.scm:3247
 msgid "Infinite-world block sandbox game"
-msgstr ""
+msgstr "Jeu de bac à sable dans un monde de blocs infini"
 
-#: gnu/packages/games.scm:2325
+#: gnu/packages/games.scm:3249
 msgid ""
 "Minetest is a sandbox construction game.  Players can create and destroy\n"
 "various types of blocks in a three-dimensional open world.  This allows\n"
 "forming structures in every possible creation, on multiplayer servers or as a\n"
 "single player.  Mods and texture packs allow players to personalize the game\n"
 "in different ways."
-msgstr ""
+msgstr "Minetest est un jeu de construction en bac à sable.  Les joueurs peuvent créer et détruire divers types de blocs dans un monde ouvert en trois dimensions.  Cela permet de créer des structures et toutes sortes de créations sur des serveurs multijoueurs ou en solo.  Des mods et des packs de textures permettent au joueur de personnaliser le jeu de différentes manières."
+
+#: gnu/packages/games.scm:3285
+msgid "Main game data for the Minetest game engine"
+msgstr "Données principales du jeu pour le moteur de jeu Minetest"
+
+#: gnu/packages/games.scm:3287
+msgid "Game data for the Minetest infinite-world block sandbox game."
+msgstr "Données du jeu pour le jeu de bac à sable Minetest"
+
+#: gnu/packages/games.scm:3308
+msgid "Minecraft clone based on Minetest engine"
+msgstr "Clone de Minecraft basé sur le moteur de Minetest"
+
+#: gnu/packages/games.scm:3310
+msgid ""
+"MineClone is a Minetest subgame, that aims to recreate Minecraft as\n"
+"closely as the engine allows."
+msgstr "MineClone est un sous-jeu de minetest, qui essaye de recréer Minecraft aussi fidèlement que le moteur le permet."
 
-#: gnu/packages/games.scm:2364
+#: gnu/packages/games.scm:3346
 msgid "Curses Implementation of the Glk API"
 msgstr "Implémentation en Curses de l'API Glk"
 
-#: gnu/packages/games.scm:2366
+#: gnu/packages/games.scm:3348
 msgid ""
 "Glk defines a portable API for applications with text UIs.  It was\n"
 "primarily designed for interactive fiction, but it should be suitable for many\n"
@@ -4619,11 +5354,11 @@ msgstr ""
 "tourne dans une fenêtre de terminal et qui utilise la bibliothèque @code{curses.h}\n"
 "pour le contrôle de l'écran."
 
-#: gnu/packages/games.scm:2404
+#: gnu/packages/games.scm:3386
 msgid "Interpreter for Glulx VM"
 msgstr "Interpréteur pour Glulx VM"
 
-#: gnu/packages/games.scm:2406
+#: gnu/packages/games.scm:3388
 msgid ""
 "Glulx is a 32-bit portable virtual machine intended for writing and\n"
 "playing interactive fiction.  It was designed by Andrew Plotkin to relieve\n"
@@ -4635,33 +5370,33 @@ msgstr ""
 "relacher certaines contraintes du vénérable format Z-machine.  C'est l'interpréteur\n"
 "de référence, qui utilise l'API Glk."
 
-#: gnu/packages/games.scm:2432
+#: gnu/packages/games.scm:3414
 msgid "Cross platform GUI library specifically for games"
-msgstr ""
+msgstr "Bibliothèque graphique multiplateforme spécialement faite pour les jeu"
 
-#: gnu/packages/games.scm:2434
+#: gnu/packages/games.scm:3416
 msgid ""
 "Fifechan is a lightweight cross platform GUI library written in C++\n"
 "specifically designed for games.  It has a built in set of extendable GUI\n"
 "Widgets, and allows users to create more."
-msgstr ""
+msgstr "Fifechan est une bibliothèque d'interface graphique légère et multiplateforme écrite en C++ spécifiquement conçue pour les jeux.  Elle possède un ensemble de widgets graphiques extensibles et permet d'en créer plus."
 
-#: gnu/packages/games.scm:2525
+#: gnu/packages/games.scm:3510
 msgid "FIFE is a multi-platform isometric game engine written in C++"
 msgstr "FIFE est un moteur de jeu isométrique multi-plateforme écrit en C++"
 
-#: gnu/packages/games.scm:2527
+#: gnu/packages/games.scm:3512
 msgid ""
 "@acronym{FIFE, Flexible Isometric Free Engine} is a multi-platform\n"
 "isometric game engine.  Python bindings are included allowing users to create\n"
 "games using Python as well as C++."
-msgstr ""
+msgstr "@acronym{FIFE, Flexible Isometric Free Engine} est un moteur de jeu isométrique multi-plateforme.  Les liaisons Python sont incluses et permettent de créer des jeux avec Python ainsi que C++."
 
-#: gnu/packages/games.scm:2560
+#: gnu/packages/games.scm:3545
 msgid "Z-machine interpreter"
 msgstr "Interpréteur Z-machine"
 
-#: gnu/packages/games.scm:2562
+#: gnu/packages/games.scm:3547
 msgid ""
 "Fizmo is a console-based Z-machine interpreter.  It is used to play\n"
 "interactive fiction, also known as text adventures, which were implemented\n"
@@ -4671,11 +5406,11 @@ msgstr ""
 "à des fictions interactives, aussi connues sous le nom d'aventures textuelles,\n"
 "qui étaient implémentées soit par Infocom ou crées avec le compilateur Inform."
 
-#: gnu/packages/games.scm:2580
+#: gnu/packages/games.scm:3565
 msgid "Play the game of Go"
 msgstr "Jouer au jeu de Go"
 
-#: gnu/packages/games.scm:2582
+#: gnu/packages/games.scm:3567
 msgid ""
 "GNU Go is a program that plays the game of Go, in which players\n"
 "place stones on a grid to form territory or capture other stones.  While\n"
@@ -4693,11 +5428,11 @@ msgstr ""
 "de stockage standard pour les jeux (SGF, Smart Game Format) et le format\n"
 "de communication inter-processus (GMP, Go Modem Protocol)."
 
-#: gnu/packages/games.scm:2610
+#: gnu/packages/games.scm:3595
 msgid "High-speed arctic racing game based on Tux Racer"
-msgstr ""
+msgstr "Jeu de course à grande vitesse en Arctique basé sur Tux Racer"
 
-#: gnu/packages/games.scm:2612
+#: gnu/packages/games.scm:3597
 msgid ""
 "Extreme Tux Racer, or etracer as it is called for short, is\n"
 "a simple OpenGL racing game featuring Tux, the Linux mascot.  The goal of the\n"
@@ -4709,12 +5444,17 @@ msgid ""
 "\n"
 "This game is based on the GPL version of the famous game TuxRacer."
 msgstr ""
+"Extreme Tux Racer, ou etracer, est un jeu simple de course en OpenGL avec Tux, la mascotte de Linux.  Le but du jeu est de descendre une montagne couverte de neige et de glace aussi vite que possible, en évitant les arbres et les pierres qui vous ralentissent.\n"
+"\n"
+"Récupérez des harengs et d'autres bonus en glissant le long de la pente, mais évitez les arrêtes de poisson.\n"
+"\n"
+"Ce jeu est basé sur la version GPL du fameux jeu TuxRacer."
 
-#: gnu/packages/games.scm:2688
+#: gnu/packages/games.scm:3667
 msgid "3D kart racing game"
 msgstr "Jeu de course de karts en 3D"
 
-#: gnu/packages/games.scm:2689
+#: gnu/packages/games.scm:3668
 msgid ""
 "SuperTuxKart is a 3D kart racing game, with a focus on\n"
 "having fun over realism.  You can play with up to 4 friends on one PC, racing\n"
@@ -4726,25 +5466,25 @@ msgstr ""
 "la courses les uns contre les autres ou d'essayer de battre l'ordinateur.  Un\n"
 "mode solo est aussi disponible."
 
-#: gnu/packages/games.scm:2753
+#: gnu/packages/games.scm:3743
 msgid "Isometric realtime strategy, economy and city building simulation"
-msgstr ""
+msgstr "Simulation isométrique de construction de ville et d'économie stratégique en temps réel"
 
-#: gnu/packages/games.scm:2755
+#: gnu/packages/games.scm:3745
 msgid ""
 "Unknown Horizons is a 2D realtime strategy simulation with an emphasis\n"
 "on economy and city building.  Expand your small settlement to a strong and\n"
 "wealthy colony, collect taxes and supply your inhabitants with valuable\n"
 "goods.  Increase your power with a well balanced economy and with strategic\n"
 "trade and diplomacy."
-msgstr ""
+msgstr "Unknown Horizons est une simulation stratégique en 2D temps-réel avec l'accent mis sur l'économie et la construction de ville.  Étendez votre petite implantation pour qu'elle devienne une colonie riche et forte, collectez les impôts et fournissez des biens de luxe à vos habitants.  Augmentez votre pouvoir avec une économie bien équilibrée et avec des échanges commerciaux et diplomatiques stratégiques."
 
-#: gnu/packages/games.scm:2810
+#: gnu/packages/games.scm:3800
 msgid "Game of jumping to the next floor, trying not to fall"
 msgstr "Un jeu où on saute à l'étage au dessus en essayent de ne pas tomber"
 
 # replay en français ?
-#: gnu/packages/games.scm:2812
+#: gnu/packages/games.scm:3802
 msgid ""
 "GNUjump is a simple, yet addictive game in which you must jump from\n"
 "platform to platform to avoid falling, while the platforms drop at faster rates\n"
@@ -4757,11 +5497,11 @@ msgstr ""
 "propose du multijoueur, des FPS illimités, une chute douce du sol des\n"
 "graphismes et des sons personnalisables et des replays."
 
-#: gnu/packages/games.scm:2859
+#: gnu/packages/games.scm:3836
 msgid "Turn-based strategy game"
 msgstr "Jeu de stratégie en tour par tour"
 
-#: gnu/packages/games.scm:2861
+#: gnu/packages/games.scm:3838
 msgid ""
 "The Battle for Wesnoth is a fantasy, turn based tactical strategy game,\n"
 "with several single player campaigns, and multiplayer games (both networked and\n"
@@ -4781,11 +5521,11 @@ msgstr ""
 "gagnent de l'expérience et augmentent de niveau, et sont rejoués d'un scénario\n"
 "à la campagne suivante."
 
-#: gnu/packages/games.scm:2883
+#: gnu/packages/games.scm:3860
 msgid "Dedicated @emph{Battle for Wesnoth} server"
 msgstr "Serveur dédié pour la @emph{Bataille pour Wesnoth}"
 
-#: gnu/packages/games.scm:2884
+#: gnu/packages/games.scm:3861
 msgid ""
 "This package contains a dedicated server for @emph{The\n"
 "Battle for Wesnoth}."
@@ -4793,11 +5533,11 @@ msgstr ""
 "Ce paquet contient un serveur dédié pour @emph{La bataille\n"
 "pour Wesnoth}."
 
-#: gnu/packages/games.scm:2925
+#: gnu/packages/games.scm:3902
 msgid "Mouse and keyboard discovery for children"
 msgstr "Découverte de la souris et du clavier pour les enfants"
 
-#: gnu/packages/games.scm:2927
+#: gnu/packages/games.scm:3904
 msgid ""
 "Gamine is a game designed for young children who are learning to use the\n"
 "mouse and keyboard.  The child uses the mouse to draw colored dots and lines\n"
@@ -4808,11 +5548,11 @@ msgstr ""
 "et des lignes sur l'écran et le clavier pour afficher des lettres."
 
 # Traductino officielle du nom du jeu ?
-#: gnu/packages/games.scm:2960
+#: gnu/packages/games.scm:3937
 msgid "Client for 'The Mana World' and similar games"
 msgstr "Client pour « the Mana World » et des jeux similaires"
 
-#: gnu/packages/games.scm:2962
+#: gnu/packages/games.scm:3939
 msgid ""
 "ManaPlus is a 2D MMORPG client for game servers.  It is the only\n"
 "fully supported client for @uref{http://www.themanaworld.org, The mana\n"
@@ -4823,11 +5563,11 @@ msgstr ""
 "client entièrement supporté par @uref{http://www.themanaworld.org, the Mana World},\n"
 "@uref{http://evolonline.org, Evol Online} et @uref{http://landoffire.org, Land of fire}."
 
-#: gnu/packages/games.scm:3019
+#: gnu/packages/games.scm:3990
 msgid "Transportation economics simulator game"
 msgstr "Simulateur de l'économie du transport"
 
-#: gnu/packages/games.scm:3020
+#: gnu/packages/games.scm:3991
 msgid ""
 "OpenTTD is a game in which you transport goods and\n"
 "passengers by land, water and air.  It is a re-implementation of Transport\n"
@@ -4844,13 +5584,13 @@ msgstr ""
 "ne contient que le moteur de jeu. Lorsque vous le démarrez, il vous sera demandé de télécharger\n"
 "un thème graphique."
 
-#: gnu/packages/games.scm:3077
+#: gnu/packages/games.scm:4049
 msgid "Base graphics set for OpenTTD"
-msgstr ""
+msgstr "Données graphiques de base pour OpenTTD"
 
-#: gnu/packages/games.scm:3079
+#: gnu/packages/games.scm:4051
 msgid ""
-"The OpenGFX projects is an implementation of the OpenTTD base grahics\n"
+"The OpenGFX project is an implementation of the OpenTTD base graphics\n"
 "set that aims to ensure the best possible out-of-the-box experience.\n"
 "\n"
 "OpenGFX provides you with...\n"
@@ -4862,50 +5602,60 @@ msgid ""
 "@item Snow-aware buoys.\n"
 "@end enumerate"
 msgstr ""
+"Le projet OpenGFX est une implémentation des graphiques de base de OpenTTD qui essaye d'assurer la meilleure expérience possible.\n"
+"\n"
+"OpenGFX fournit\n"
+"@enumerate\n"
+"@item Tous les graphismes nécessaires au jeu OpenTTD\n"
+"@item Des trains uniques pour chaque climat\n"
+"@item Des rivières qui prennent la neige en compte\n"
+"@item Différentes case de mer et de rivières\n"
+"@item Des bouées qui prennent la neige en compte\n"
+"@end enumerate"
 
-#: gnu/packages/games.scm:3124
+#: gnu/packages/games.scm:4096
 msgid "Base sounds for OpenTTD"
-msgstr ""
+msgstr "Sons de base pour OpenTTD"
 
-#: gnu/packages/games.scm:3125
+#: gnu/packages/games.scm:4097
 msgid ""
 "OpenSFX is a set of free base sounds for OpenTTD which make\n"
 "it possible to play OpenTTD without requiring the proprietary sound files from\n"
 "the original Transport Tycoon Deluxe."
-msgstr ""
+msgstr "OpenSFX est un ensemble de sons de base pour OpenTTD qui rendent possible de jouer à OpenTTD sans les fichiers privateurs du jeu d'origine Transport Tycoon Deluxe."
 
-#: gnu/packages/games.scm:3162
+#: gnu/packages/games.scm:4134
 msgid "Music set for OpenTTD"
-msgstr ""
+msgstr "Ensemble de musiques pour OpenTTD"
 
-#: gnu/packages/games.scm:3163
+#: gnu/packages/games.scm:4135
 msgid ""
 "OpenMSX is a music set for OpenTTD which makes it possible\n"
 "to play OpenTTD without requiring the proprietary music from the original\n"
 "Transport Tycoon Deluxe."
-msgstr ""
+msgstr "OpenMSX est un ensemble de musiques pour OpenTTD qui rend possible de jouer à OpenTTD sans avoir besoin des musiques privatrices du jeu original Transport Tycoon Deluxe."
 
-#: gnu/packages/games.scm:3232
+#: gnu/packages/games.scm:4204
 msgid "Title sequences for OpenRCT2"
-msgstr ""
+msgstr "Séquences titres pour OpenRCT2"
 
-#: gnu/packages/games.scm:3234
+#: gnu/packages/games.scm:4206
 msgid "openrct2-title-sequences is a set of title sequences for OpenRCT2."
-msgstr ""
+msgstr "openrct2-title-sequences est un ensemble de séquences titres pour OpenRCT2."
 
-#: gnu/packages/games.scm:3272
+#: gnu/packages/games.scm:4244
 msgid "Objects for OpenRCT2"
-msgstr ""
+msgstr "Objets pour OpenRCT2"
 
-#: gnu/packages/games.scm:3274
+#: gnu/packages/games.scm:4246
 msgid "openrct2-objects is a set of objects for OpenRCT2."
-msgstr ""
+msgstr "openrct2-objects est un ensemble d'objets pour OpenRCT2."
 
-#: gnu/packages/games.scm:3334
+#: gnu/packages/games.scm:4306
 msgid "Free software re-implementation of RollerCoaster Tycoon 2"
-msgstr ""
+msgstr "Réimplémentation libre de RollerCoaster Tycoon 2"
 
-#: gnu/packages/games.scm:3335
+#: gnu/packages/games.scm:4307
 msgid ""
 "OpenRCT2 is a free software re-implementation of\n"
 "RollerCoaster Tycoon 2 (RCT2).  The gameplay revolves around building and\n"
@@ -4914,78 +5664,81 @@ msgid ""
 "Note that this package does @emph{not} provide the game assets (sounds,\n"
 "images, etc.)"
 msgstr ""
+"OpenRCT2 est une réimplémentation libre de RollerCoaster Tycoon 2 (RCT2).  L'expérience de jeu se centre sur la construction et le maintient d'un parc d'attraction qui contient des attractions, des boutiques et autres bâtiments.\n"
+"\n"
+"Remarquez que ce paquet ne fournit @emph{pas} les ressources du jeu (musiques, images, etc)."
 
-#: gnu/packages/games.scm:3377
+#: gnu/packages/games.scm:4349
 msgid "Pinball simulator"
-msgstr ""
+msgstr "Simulateur de pinball"
 
-#: gnu/packages/games.scm:3378
+#: gnu/packages/games.scm:4350
 msgid ""
 "The Emilia Pinball Project is a pinball simulator.  There\n"
 "are only two levels to play with, but they are very addictive."
-msgstr ""
+msgstr "Le projet Emilia Pinball est un simulateur de pinball.  Il y a seulement deux niveaux à jouer, mais ils sont très addictifs."
 
-#: gnu/packages/games.scm:3401
+#: gnu/packages/games.scm:4373
 msgid "Board game inspired by The Settlers of Catan"
-msgstr ""
+msgstr "Jeu de plateau inspiré par The Settlers of Catan"
 
-#: gnu/packages/games.scm:3402
+#: gnu/packages/games.scm:4374
 msgid ""
 "Pioneers is an emulation of the board game The Settlers of\n"
 "Catan.  It can be played on a local network, on the internet, and with AI\n"
 "players."
-msgstr ""
+msgstr "Pioneers est une simulation du jeu de plateau The Settlers of Catan.  Il est jouable en réseau local, sur internet et avec des joueurs IA."
 
-#: gnu/packages/games.scm:3443 gnu/packages/gnome.scm:3805
+#: gnu/packages/games.scm:4415 gnu/packages/gnome.scm:4879
 msgid "Logic puzzle game"
-msgstr ""
+msgstr "Jeu de puzzle logiques"
 
-#: gnu/packages/games.scm:3444
+#: gnu/packages/games.scm:4416
 msgid ""
 "The goal of this logic game is to open all cards in a 6x6\n"
 "grid, using a number of hints as to their relative position.  The game idea\n"
 "is attributed to Albert Einstein."
-msgstr ""
+msgstr "Le but de ce jeu de logique est d'ouvrir toutes les cartes d'une grille en 6x6, en utilisant les des astuces sur leur position relative.  L'idée du jeu est attribuée à Albert Einstein."
 
-#: gnu/packages/games.scm:3472
+#: gnu/packages/games.scm:4444
 msgid "MUD and telnet client"
-msgstr ""
+msgstr "MUD et client telnet"
 
-#: gnu/packages/games.scm:3474
+#: gnu/packages/games.scm:4446
 msgid ""
 "POWWOW is a client software which can be used for telnet as well as for\n"
 "@dfn{Multi-User Dungeon} (MUD).  Additionally it can serve as a nice client for\n"
 "the chat server psyced with the specific config located at\n"
 "http://lavachat.symlynx.com/unix/"
-msgstr ""
+msgstr "POWWOW est un client qui peut être utilisé pour telnet ainsi que pour des @dfn{Donjons Multijoueurs} (MUD).  En plus il peut servir de client pour le serveur de discussion psyced avec la configuration spécifique située sur http://lavachat.symlynx.com/unix/"
 
-#: gnu/packages/games.scm:3584
+#: gnu/packages/games.scm:4556
 msgid "Arena shooter derived from the Cube 2 engine"
-msgstr ""
+msgstr "Jeu de tir en arène dérivé du moteur Cube 2"
 
-#: gnu/packages/games.scm:3586
+#: gnu/packages/games.scm:4558
 msgid ""
 "Red Eclipse is an arena shooter, created from the Cube2 engine.\n"
 "Offering an innovative parkour system and distinct but all potent weapons,\n"
 "Red Eclipse provides fast paced and accessible gameplay."
-msgstr ""
+msgstr "Red Eclipse est un jeu de tir en arène, créé avec le moteur Cube2.  Il offre un système de parkour innovant et des armes distinctes mais toutes puissantes.  Red Eclipse propose une expérience de jeu nerveuse et accessible."
 
-#: gnu/packages/games.scm:3649
+#: gnu/packages/games.scm:4621
 msgid "Text adventure game"
-msgstr ""
+msgstr "Jeu d'aventure en mode texte"
 
-#: gnu/packages/games.scm:3651
+#: gnu/packages/games.scm:4623
 msgid ""
 "Grue Hunter is a text adventure game written in Perl.  You must make\n"
 "your way through an underground cave system in search of the Grue.  Can you\n"
 "capture it and get out alive?"
-msgstr ""
+msgstr "Grue Hunter est un jeu d'aventure en mode texte écrit en Perl.  Vous devez vous déplacer dans un système de grottes souterraines à la recherche de la Grue.  Arriverez-vous à la capturer et à sortir vivant ?"
 
-#: gnu/packages/games.scm:3693
+#: gnu/packages/games.scm:4665
 msgid "Old-school earthworm action game"
-msgstr ""
+msgstr "Jeu d'action à l'ancienne avec des vers de terre"
 
-#: gnu/packages/games.scm:3695
+#: gnu/packages/games.scm:4667
 msgid ""
 "lierolibre is an earthworm action game where you fight another player\n"
 "(or the computer) underground using a wide array of weapons.\n"
@@ -5009,137 +5762,200 @@ msgid ""
 "To switch between different window sizes, use F6, F7 and F8, to switch to\n"
 "fullscreen, use F5 or Alt+Enter."
 msgstr ""
+"lierolibre est un jeu d'action avec des vers de terre où vous combattez les autres joueurs (ou l'ordinateur) sous terre avec une large gamme d'armes.\n"
+"\n"
+"Fonctionnalités :\n"
+"\n"
+"@itemize\n"
+"@item 2 vers, 40 armes, une grande jouabilité, deux modes de jeu : tuez-les-tous et cache-cache, plus des joueurs IA sans vrai intelligence !\n"
+"@item Ze nostalgie\n"
+"@item Extensions via un menu F1 caché :\n"
+"@itemize\n"
+"@item Replay\n"
+"@item Prise en charge des manettes de jeu\n"
+"@item Palettes de niveau de puissance\n"
+"@end itemize\n"
+"@item Possibilité d'écrire des variables de jeu dans des fichiers en texte brut\n"
+"@item Possibilité de charger des variables de jeu depuis des EXE et des fichiers en texte brut\n"
+"@item Scripts pour extraire et ré-empacter les graphiques, les sons et les niveaux\n"
+"@end itemize\n"
+"\n"
+"Pour passer entre les différentes tailles de fenêtres, utilisez F6, F7 et F8.  Pour passer en plein-écran, utilisez F5 ou Alt+Entrée."
 
-#: gnu/packages/games.scm:3769
+#: gnu/packages/games.scm:4745
+msgid "Play tennis against the computer or a friend"
+msgstr "Jouez au tennis contre l'ordinateur ou un ami"
+
+#: gnu/packages/games.scm:4746
+msgid ""
+"Tennix is a 2D tennis game.  You can play against the\n"
+"computer or against another player using the keyboard.  The game runs\n"
+"in-window at 640x480 resolution or fullscreen."
+msgstr "Tennix est un jeu de tennis en 2D.  Vous pouvez jouer contre l'ordinateur ou contre un autre jouer en utilisant le clavier.  Le jeu se lance dans une fenêtre 640x480 ou en plein-écran."
+
+#: gnu/packages/games.scm:4826
 msgid "3D Real-time strategy and real-time tactics game"
-msgstr ""
+msgstr "Jeu de stratégie et de tactique en temps réel en 3D"
 
-#: gnu/packages/games.scm:3771
+#: gnu/packages/games.scm:4828
 msgid ""
 "Warzone 2100 offers campaign, multi-player, and single-player skirmish\n"
-"modes. An extensive tech tree with over 400 different technologies, combined\n"
+"modes.  An extensive tech tree with over 400 different technologies, combined\n"
 "with the unit design system, allows for a wide variety of possible units and\n"
 "tactics."
+msgstr "Warzone 2100 propose un mode campagne, multijoueur et escarmouche en solo.  Un arbre de technologie complet avec plus de 400 technologies différentes, avec le système de conception d'unités vous permet une grande variété d'unités et de tactiques."
+
+#: gnu/packages/games.scm:4902
+msgid "Fantasy real-time strategy game"
+msgstr "Jeu fantasy de stratégie en tour par tour"
+
+#: gnu/packages/games.scm:4904
+msgid ""
+"In Widelands, you are the regent of a small clan.  You start out with\n"
+"nothing but your headquarters, where all your resources are stored.\n"
+"\n"
+"In the course of the game, you will build an ever growing settlement.  Every\n"
+"member of your clan will do his or her part to produce more resources---wood,\n"
+"food, iron, gold and more---to further this growth.  The economic network is\n"
+"complex and different in the four tribes (Barbarians, Empire, Atlanteans, and\n"
+"Frisians).\n"
+"\n"
+"As you are not alone in the world, you will meet other clans sooner or later.\n"
+"Some of them may be friendly and you may eventually trade with them.  However,\n"
+"if you want to rule the world, you will have to train soldiers and fight.\n"
+"\n"
+"Widelands offers single-player mode with different campaigns; the campaigns\n"
+"all tell stories of tribes and their struggle in the Widelands universe!\n"
+"However, settling really starts when you unite with friends over the Internet\n"
+"or LAN to build up new empires together---or to crush each other in the dusts\n"
+"of war.  Widelands also offers an Artificial Intelligence to challenge you."
 msgstr ""
+"Dans Widelands, vous êtes le roi d'un petit clan.  Vous commencez avec rien d'autre que votre quartier général, où toutes vos ressources sont stockées.\n"
+"\n"
+"Au cours du jeu, vous construisez une colonie toujours grandissante.  Chaque membre de votre clan fera sa part pour produire plus de ressources — du bois, du fer, de l'or et plus encore — pour continuer cette croissance.  Le réseau économique est complexe et différent pour chaque tribu (les barbares, l'empire, les atlantes et les frisons).\n"
+"\n"
+"Vous n'êtes pas seul dans ce monde et vous rencontrerez d'autres clans tôt ou tard.  Certains seront amicaux et vous pourrez commercer avec eux.  Cependant, si vous voulez conquérir le monde, vous devrez entrainer des soldats et vous battre.\n"
+"\n"
+"Widelands propose un mode solo avec différentes campagnes ; les campagnes racontent toutes les histoires de tribus et de leurs luttes dans l'univers de Widelands !  Cependant, votre colonie commence vraiment quand vous vous associez avec des amis sur internet ou en LAN pour construire de nouveaux empires ensemble — ou pour vous détruire les uns les autres par des guerres sans merci.  Widelands a aussi une intelligence artificielle si vous cherchez un défi."
 
-#: gnu/packages/games.scm:3806
+#: gnu/packages/games.scm:4952
 msgid "2D scrolling shooter game"
-msgstr ""
+msgstr "Jeu de tir défilant en 2D"
 
-#: gnu/packages/games.scm:3808
+#: gnu/packages/games.scm:4954
 msgid ""
 "In the year 2579, the intergalactic weapons corporation, WEAPCO, has\n"
 "dominated the galaxy.  Guide Chris Bainfield and his friend Sid Wilson on\n"
 "their quest to liberate the galaxy from the clutches of WEAPCO.  Along the\n"
 "way, you will encounter new foes, make new allies, and assist local rebels\n"
 "in strikes against the evil corporation."
-msgstr ""
+msgstr "En l'an 2579, la compagnie des armes intergalactique, WEAPCO, a dominé la galaxie.  Guidez Chris Bainfield et son ami Sid Wilson dans leur quête pour libérer la galaxie de l'emprise de WEACO.  Sur votre route, vous rencontrerez de nouveaux ennemis, vous ferez de nouveaux alliés et aiderez des rebelles à frapper la compagnie maléfique."
 
-#: gnu/packages/games.scm:3839
+#: gnu/packages/games.scm:4985
 msgid "Fast-paced, arcade-style, top-scrolling space shooter"
-msgstr ""
+msgstr "Je de tir spatial à défilement vertical nerveux dans un style arcade"
 
-#: gnu/packages/games.scm:3841
+#: gnu/packages/games.scm:4987
 msgid ""
 "In this game you are the captain of the cargo ship Chromium B.S.U. and\n"
 "are responsible for delivering supplies to the troops on the front line.  Your\n"
 "ship has a small fleet of robotic fighters which you control from the relative\n"
 "safety of the Chromium vessel."
-msgstr ""
+msgstr "Dans ce jeu vous êtes les capitaine du vaisseau cargo Chromium B.S.U. et vous êtes responsable de l'acheminement de matériels et de troupes vers la ligne de front.  Votre vaisseau a une petite flotte de chasseurs robotisés que vous contrôlez depuis la relative sécurité de votre vaisseau."
 
-#: gnu/packages/games.scm:3923
+#: gnu/packages/games.scm:5069
 msgid "Drawing software for children"
-msgstr ""
+msgstr "Logiciel de dessin pour les enfants"
 
-#: gnu/packages/games.scm:3925
+#: gnu/packages/games.scm:5071
 msgid ""
 "Tux Paint is a free drawing program designed for young children (kids\n"
 "ages 3 and up).  It has a simple, easy-to-use interface; fun sound effects;\n"
 "and an encouraging cartoon mascot who helps guide children as they use the\n"
 "program.  It provides a blank canvas and a variety of drawing tools to help\n"
 "your child be creative."
-msgstr ""
+msgstr "Tux Paint est un programme de dessin conçu pour les jeunes enfants (à partir de 3 ans).  Il possède une interface simple et facile à utiliser, des effets sonores rigolos, et une mascotte encourageante qui guide les enfants dans leur utilisation du programme.  Il fournit un tableau blanc et divers outils de dessin pour aider votre enfant à être créatif."
 
-#: gnu/packages/games.scm:3964
+#: gnu/packages/games.scm:5110
 msgid "Stamp images for Tux Paint"
-msgstr ""
+msgstr "Images de tampons pour Tux Paint"
 
-#: gnu/packages/games.scm:3966
+#: gnu/packages/games.scm:5112
 msgid ""
 "This package contains a set of \"Rubber Stamp\" images which can be used\n"
 "with the \"Stamp\" tool within Tux Paint."
-msgstr ""
+msgstr "Ce paquet contient un ensemble de « tampons » qu'on peut utiliser avec l'outil tampon de Tux Paint."
 
-#: gnu/packages/games.scm:4013
+#: gnu/packages/games.scm:5159
 msgid "Configure Tux Paint"
-msgstr ""
+msgstr "Configurer Tux Paint"
 
-#: gnu/packages/games.scm:4015
+#: gnu/packages/games.scm:5161
 msgid "Tux Paint Config is a graphical configuration editor for Tux Paint."
-msgstr ""
+msgstr "Tux Paint Config est un éditeur de configuration graphique pour Tux Paint."
 
-#: gnu/packages/games.scm:4065
+#: gnu/packages/games.scm:5211
 msgid "2D platformer game"
-msgstr ""
+msgstr "Jeu de plateforme en 2D"
 
-#: gnu/packages/games.scm:4066
+#: gnu/packages/games.scm:5212
 msgid ""
 "SuperTux is a classic 2D jump'n run sidescroller game in\n"
 "a style similar to the original Super Mario games."
-msgstr ""
+msgstr "SuperTux est un jeu de saut et de course classique en 2D à défilement horizontal dans un style similaire aux jeux Super Mario originaux."
 
-#: gnu/packages/games.scm:4099
+#: gnu/packages/games.scm:5245
 msgid "MUD client"
-msgstr ""
+msgstr "Client MUD"
 
-#: gnu/packages/games.scm:4101
+#: gnu/packages/games.scm:5247
 msgid ""
 "TinTin++ is a MUD client which supports MCCP (Mud Client Compression\n"
 "Protocol), MMCP (Mud Master Chat Protocol), xterm 256 colors, most TELNET\n"
 "options used by MUDs, as well as those required to login via telnet on\n"
 "Linux / Mac OS X servers, and an auto mapper with a VT100 map display."
-msgstr ""
+msgstr "TinTin++ est un client MUD qui prend en charge le MCCP (Mud Client Compression Protocol), MMCP (Mud Master Chat Protocol), xterm avec 256 couleurs, la plupart des options TELNET utilisées par les MUD, ainsi que celles requises pour l'authentification par telnet sur les serveurs Linux / Mac OS X, et une correspondance automatique avec l'affichage VT100."
 
-#: gnu/packages/games.scm:4146
+#: gnu/packages/games.scm:5292
 msgid "Programming game"
-msgstr ""
+msgstr "Jeu de programmation"
 
-#: gnu/packages/games.scm:4147
+#: gnu/packages/games.scm:5293
 msgid ""
 "Learn programming, playing with ants and spider webs ;-)\n"
 "Your robot ant can be programmed in many languages: OCaml, Python, C, C++,\n"
 "Java, Ruby, Lua, JavaScript, Pascal, Perl, Scheme, Vala, Prolog.  Experienced\n"
 "programmers may also add their own favorite language."
-msgstr ""
+msgstr "Apprenez à programmer, en jouant avec des fourmis et des toiles d'araignées ;-)  Votre fourmi robot peut être programmées dans plusieurs langages : OCaml, Python, C, C++, Java, Ruby, Lua, JavaScript, Pascal, Perl, Scheme, Vala, Prolog.  Les programmeur expérimentés peuvent aussi ajouter leur langage préféré."
 
-#: gnu/packages/games.scm:4185
+#: gnu/packages/games.scm:5331
 msgid "Keyboard mashing and doodling game for babies"
-msgstr ""
+msgstr "Jeu de frappe de clavier et de griffonnage pour les bébés"
 
-#: gnu/packages/games.scm:4186
+#: gnu/packages/games.scm:5332
 msgid ""
 "Bambam is a simple baby keyboard (and gamepad) masher\n"
 "application that locks the keyboard and mouse and instead displays bright\n"
 "colors, pictures, and sounds."
-msgstr ""
+msgstr "Bambam est une application de frappe de clavier (et de manettes) simple pour les bébés qui verrouille le clavier et la souris et montre à la place des couleurs, des images et des sons."
 
-#: gnu/packages/games.scm:4250
+#: gnu/packages/games.scm:5396
 msgid "Arcade-style fire fighting game"
-msgstr ""
+msgstr "Jeu de pompier dans un style arcade"
 
-#: gnu/packages/games.scm:4252
+#: gnu/packages/games.scm:5398
 msgid ""
 "Mr. Rescue is an arcade styled 2d action game centered around evacuating\n"
 "civilians from burning buildings.  The game features fast-paced fire\n"
 "extinguishing action, intense boss battles, a catchy soundtrack, and lots of\n"
 "throwing people around in pseudo-randomly generated buildings."
-msgstr ""
+msgstr "Mr. Rescue est une jeu d'action en 2d dans un style arcade centré sur l'évacuation de civils de bâtiments en flammes.  Le jeu propose de l'action d'extinction d'incendie nerveuse, des combats de boss intenses, une musique entrainante et beaucoup de lancer de personnes dans les bâtiments générés aléatoirement."
 
-#: gnu/packages/games.scm:4362
+#: gnu/packages/games.scm:5508
 msgid "Non-euclidean graphical rogue-like game"
-msgstr ""
+msgstr "Jeu roguelike non euclidien"
 
-#: gnu/packages/games.scm:4364
+#: gnu/packages/games.scm:5510
 msgid ""
 "HyperRogue is a game in which the player collects treasures and fights\n"
 "monsters -- rogue-like but for the fact that it is played on the hyperbolic\n"
@@ -5152,34 +5968,39 @@ msgid ""
 "While the game can use ASCII characters to display the the classical rogue\n"
 "symbols, it still needs graphics to render the non-euclidean world."
 msgstr ""
+"HyperRogue est un jeu dans lequel le joueur récupère des trésors et combat des monstres — un roguelike sauf que le joueur joue dans un plan hyperbolique et non dans un espace euclidien.\n"
+"\n"
+"Dans HyperRogue, le joueur peut se déplacer dans différentes parties du monde, qui abritent des créatures particulières et peuvent être sujettes à leurs propres règles de la « physique ».\n"
+"\n"
+"Bien que le jeu puisse utiliser les caractères ASCII pour afficher les symboles classiques pour un roguelike, il a quand même besoin de graphismes pour afficher le monde non-euclidien."
 
-#: gnu/packages/games.scm:4409
+#: gnu/packages/games.scm:5555
 msgid "Shooter with space station destruction"
-msgstr ""
+msgstr "Jeu de tir pour détruire des stations spatiales"
 
-#: gnu/packages/games.scm:4411
+#: gnu/packages/games.scm:5557
 msgid ""
 "Kobo Deluxe is an enhanced version of Akira Higuchi's XKobo graphical game\n"
 "for Un*x systems with X11."
-msgstr ""
+msgstr "Kobo Deluxe est une version améliorée du jeu graphique XKobo d'Akira Higuchi pour les système Un*x avec X11."
 
-#: gnu/packages/games.scm:4442
+#: gnu/packages/games.scm:5588
 msgid "Turn-based empire building strategy game"
 msgstr "Jeu de stratégie de construction d'empire en tour par tour"
 
-#: gnu/packages/games.scm:4443
+#: gnu/packages/games.scm:5589
 msgid ""
 "Freeciv is a turn-based empire building strategy game\n"
 "inspired by the history of human civilization.  The game commences in\n"
 "prehistory and your mission is to lead your tribe from the Stone Age\n"
 "into the Space Age."
-msgstr ""
+msgstr "Freeciv est un jeu de stratégie et de construction d'empire inspiré de l'histoire des civilisations humaines.  Le jeu commence à la préhistoire et votre mission est de gérer une tribu de l'âge de pierre à l'âge de l'espace."
 
-#: gnu/packages/games.scm:4474
+#: gnu/packages/games.scm:5620
 msgid "Recreation of data decryption effect in \"Sneakers\""
-msgstr ""
+msgstr "Recréation de l'effet de déchiffrement de données dans « Les Experts »"
 
-#: gnu/packages/games.scm:4476
+#: gnu/packages/games.scm:5622
 msgid ""
 "@code{No More Secrets} provides a command line tool called \"nms\"\n"
 "that recreates the famous data decryption effect seen on screen in the 1992\n"
@@ -5189,76 +6010,79 @@ msgid ""
 "it will apply the hollywood effect, initially showing encrypted data, then\n"
 "starting a decryption sequence to reveal the original plaintext characters."
 msgstr ""
+"@code{No More Secrets} fournit une commande « nms » qui recrée le fameux effet de déchiffrement de données montré au grand écran dans le film « Les Experts » (« Sneakers ») de 1992.\n"
+"\n"
+"Cette commande fonctionne sur les données passées dans un tube.  Passez n'importe quel texte ASCII ou UTF-8 à nms, et il appliquera l'effet hollywoodien, montrant d'abord des données chiffrées, puis en commençant la séquence de déchiffrement pour révéler les caractères en texte clair."
 
-#: gnu/packages/games.scm:4503
+#: gnu/packages/games.scm:5649
 msgid "Data files for MegaGlest"
 msgstr "Fichiers de données pour MegaGlest"
 
-#: gnu/packages/games.scm:4504
+#: gnu/packages/games.scm:5650
 msgid "This package contains the data files required for MegaGlest."
 msgstr "Ce paquet contient les fichiers de données requis par MegaGlest."
 
-#: gnu/packages/games.scm:4557
+#: gnu/packages/games.scm:5703
 msgid "3D real-time strategy (RTS) game"
-msgstr ""
+msgstr "Jeu de stratégie en temps réel (RTS)"
 
-#: gnu/packages/games.scm:4558
+#: gnu/packages/games.scm:5704
 msgid ""
 "MegaGlest is a cross-platform 3D real-time strategy (RTS)\n"
 "game, where you control the armies of one of seven different factions: Tech,\n"
 "Magic, Egypt, Indians, Norsemen, Persian or Romans."
-msgstr ""
+msgstr "MegaGlest est un jeu de stratégie en temps réel (RTS) multiplateforme en 3D, où vous contrôlez les armées d'une des sept factions : Tech, Magie, Égypte, Indiens, Normands, Perses ou Romains."
 
-#: gnu/packages/games.scm:4609
+#: gnu/packages/games.scm:5755
 msgid "Side-scrolling physics platformer with a ball of tar"
-msgstr ""
+msgstr "Jeu de plateforme à défilement horizontal avec une boule de goudron"
 
-#: gnu/packages/games.scm:4610
+#: gnu/packages/games.scm:5756
 msgid ""
 "In FreeGish you control Gish, a ball of tar who lives\n"
 "happily with his girlfriend Brea, until one day a mysterious dark creature\n"
 "emerges from a sewer hole and pulls her below ground."
-msgstr ""
+msgstr "Dans FreeGish vous contrôlez Gish, une boule de goudron qui vit gaiment avec sa copine Brea, jusqu'au jour où une mystérieuse créature sombre émerge d'une plaque d'égout et l'emporte sous terre."
 
-#: gnu/packages/games.scm:4646
+#: gnu/packages/games.scm:5795
 msgid "Classic overhead run-and-gun game"
-msgstr ""
+msgstr "Jeu de course et de pistolets classique en vue de dessus"
 
-#: gnu/packages/games.scm:4647
+#: gnu/packages/games.scm:5796
 msgid ""
 "C-Dogs SDL is a classic overhead run-and-gun game,\n"
 "supporting up to 4 players in co-op and deathmatch modes.  Customize your\n"
 "player, choose from many weapons, and blast, slide and slash your way through\n"
 "over 100 user-created campaigns."
-msgstr ""
+msgstr "C-Dogs SDL est un jeu de tir classique en vue de dessus.  On peut y jouer à jusqu'à 4 joueurs en mode coop et en mode match à mort.  Personnalisez votre joueur, choisissez une arme parmi les nombreuses armes proposées et défoncez, slalomez et dégagez votre passage à travers plus de 100 campagnes créées par les joueurs."
 
-#: gnu/packages/games.scm:4746
+#: gnu/packages/games.scm:5896
 msgid "3D puzzle game"
-msgstr ""
+msgstr "Jeu de puzzle en 3D"
 
-#: gnu/packages/games.scm:4747
+#: gnu/packages/games.scm:5897
 msgid ""
 "Kiki the nano bot is a 3D puzzle game.  It is basically a\n"
 "mixture of the games Sokoban and Kula-World.  Your task is to help Kiki, a\n"
 "small robot living in the nano world, repair its maker."
-msgstr ""
+msgstr "Kiki le nano bot est un jeu de puzzle en 3D.  C'est un mélange des jeux Sokoban et Kula-World.  Votre but est d'aider Kiki, un petit robot qui vit dans le nanomonde à réparer son créateur."
 
-#: gnu/packages/games.scm:4858
+#: gnu/packages/games.scm:6008
 msgid "2D retro multiplayer shooter game"
-msgstr ""
+msgstr "Jeu de tir multijoueur rétro en 2D"
 
-#: gnu/packages/games.scm:4859
+#: gnu/packages/games.scm:6009
 msgid ""
 "Teeworlds is an online multiplayer game.  Battle with up to\n"
 "16 players in a variety of game modes, including Team Deathmatch and Capture\n"
 "The Flag.  You can even design your own maps!"
-msgstr ""
+msgstr "Teeworlds est un jeu multijoueur en ligne.  Combattez jusqu'à 16 joueurs dans divers modes de jeu, dont le match à mort en équipe ou la capture de drapeau.  Vous pouvez même concevoir vous propres cartes !"
 
-#: gnu/packages/games.scm:4912
+#: gnu/packages/games.scm:6070
 msgid "Puzzle game with a dexterity component"
-msgstr ""
+msgstr "Jeu de puzzle avec une part de dextérité"
 
-#: gnu/packages/games.scm:4913
+#: gnu/packages/games.scm:6071
 msgid ""
 "Enigma is a puzzle game with 550 unique levels.  The object\n"
 "of the game is to find and uncover pairs of identically colored ‘Oxyd’ stones.\n"
@@ -5268,13 +6092,13 @@ msgid ""
 "get bored) interact in many unexpected ways, and since many of them follow the\n"
 "laws of physics (Enigma’s special laws of physics, that is), controlling them\n"
 "with the mouse isn’t always trivial."
-msgstr ""
+msgstr "Enigma est un jeu de puzzle avec 550 niveaux uniques.  Le but du jeu est de trouver et de découvrir les paries de pierres d'Oxyd de même couleur.  Simple ?  oui.  Facile ?  Surement pas !  Des pièges cachés, de vastes labyrinthes, des rayons laser, et surtout, de nombreux puzzle à s'arracher les cheveux vous bloque en général le passage vers le pierre d'Oxyd.  Les objets du jeu Enigma (et il y en a des centaines, pas moyen de vous ennuyer) interagissent de manière inattendue et comme beaucoup d'entre eux suivent les lois de la physique (c'est-à-dire les lois spéciales d'Enigma), les contrôler à la souris n'est pas toujours évident."
 
-#: gnu/packages/games.scm:4946
+#: gnu/packages/games.scm:6105
 msgid "Abstract puzzle game"
-msgstr ""
+msgstr "Jeu de puzzle abstrait"
 
-#: gnu/packages/games.scm:4947
+#: gnu/packages/games.scm:6106
 msgid ""
 "Chroma is an abstract puzzle game. A variety of colourful\n"
 "shapes are arranged in a series of increasingly complex patterns, forming\n"
@@ -5282,41 +6106,41 @@ msgid ""
 "manipulated in order to give up their subtle secrets.  Initially so\n"
 "straightforward that anyone can pick it up and begin to play, yet gradually\n"
 "becoming difficult enough to tax even the brightest of minds."
-msgstr ""
+msgstr "Chroma est un jeu de puzzle abstrait.  Diverses formes colorées sont arrangées en séries de formes de plus en plus complexes, formant des pièges vicieux qui doivent être désactivés et de mystérieux puzzles qui doivent être manipulés avant qu'ils ne crachent leurs subtils secrets.  Au départ si évident que n'importe qui peut commencer à jouer, mais à la difficulté grandissante qui fera réfléchir même les esprits les plus brillants."
 
-#: gnu/packages/games.scm:5016
+#: gnu/packages/games.scm:6175
 msgid "Puzzle game"
-msgstr ""
+msgstr "Jeu de puzzle"
 
-#: gnu/packages/games.scm:5017
+#: gnu/packages/games.scm:6176
 msgid ""
 "Fish Fillets NG is strictly a puzzle game.  The goal in\n"
 "every of the seventy levels is always the same: find a safe way out.  The fish\n"
 "utter witty remarks about their surroundings, the various inhabitants of their\n"
 "underwater realm quarrel among themselves or comment on the efforts of your\n"
 "fish.  The whole game is accompanied by quiet, comforting music."
-msgstr ""
+msgstr "Fish Fillets NG est purement un jeu de puzzle.  Le but dans chacun des 70 niveaux est toujours le même : trouver une sortie sure.  Le poisson vous fera des remarques spirituelles sur ses environs, les habitants du monde sous-marin se querellent ou commentent les efforts de votre poisson.  Le jeu est accompagné d'une musique calme et confortable."
 
-#: gnu/packages/games.scm:5090
+#: gnu/packages/games.scm:6259
 msgid "Roguelike dungeon crawler game"
-msgstr ""
+msgstr "Jeu d'exploration de donjon roguelike"
 
-#: gnu/packages/games.scm:5091
+#: gnu/packages/games.scm:6260
 msgid ""
 "Dungeon Crawl Stone Soup (also known as \"Crawl\" or DCSS\n"
 "for short) is a roguelike adventure through dungeons filled with dangerous\n"
 "monsters in a quest to find the mystifyingly fabulous Orb of Zot."
-msgstr ""
+msgstr "Dungeon Crawl Stone Soup (aussi connu sous le nom de « Crawl » ou DCSS) est une aventure roguelike à travers des donjons remplis de monstres dangereux en quête de la mystique Orbe de Zot."
 
-#: gnu/packages/games.scm:5137
+#: gnu/packages/games.scm:6306
 msgid "Graphical roguelike dungeon crawler game"
-msgstr ""
+msgstr "Jeu d'exploration de donjon graphique"
 
-#: gnu/packages/games.scm:5167
+#: gnu/packages/games.scm:6336
 msgid "Cross-platform third-person action game"
-msgstr ""
+msgstr "Jeu d'action vu en troisième personne multiplateforme"
 
-#: gnu/packages/games.scm:5168
+#: gnu/packages/games.scm:6337
 msgid ""
 "Lugaru is a third-person action game.  The main character,\n"
 "Turner, is an anthropomorphic rebel bunny rabbit with impressive combat skills.\n"
@@ -5324,21 +6148,21 @@ msgid ""
 "a far-reaching conspiracy involving the corrupt leaders of the rabbit republic\n"
 "and the starving wolves from a nearby den.  Turner takes it upon himself to\n"
 "fight against their plot and save his fellow rabbits from slavery."
-msgstr ""
+msgstr "Lugaru est un jeu d'action en vu à la troisième personne.  Le personnage principal, turner, est un lapin anthropomorphique rebelle avec des capacités de combat impressionnantes.  Dans sa quête pour trouver les responsables de la tuerie de son village, il découvre une terrible conspiration qui remonte aux chefs de la république lapinesque et aux loups morts de fin d'une tanière proche.  Turner prend sur lui de combattre leurs plans et de sauver ses amis lapins de l'esclavage."
 
-#: gnu/packages/games.scm:5218
+#: gnu/packages/games.scm:6387
 msgid "Data files for 0ad"
-msgstr ""
+msgstr "Fichiers de données pour 0ad"
 
-#: gnu/packages/games.scm:5219
+#: gnu/packages/games.scm:6388
 msgid "0ad-data provides the data files required by the game 0ad."
-msgstr ""
+msgstr "0ad-data fournit les fichiers de données nécessaires pour le jeu 0ad."
 
-#: gnu/packages/games.scm:5337
+#: gnu/packages/games.scm:6506
 msgid "3D real-time strategy game of ancient warfare"
-msgstr ""
+msgstr "Jeu de stratégie en temps réel en 3D ayant pour thème des guerres anciennes"
 
-#: gnu/packages/games.scm:5338
+#: gnu/packages/games.scm:6507
 msgid ""
 "0 A.D. is a real-time strategy (RTS) game of ancient\n"
 "warfare.  It's a historically-based war/economy game that allows players to\n"
@@ -5347,25 +6171,28 @@ msgid ""
 "\n"
 "0ad needs a window manager that supports 'Extended Window Manager Hints'."
 msgstr ""
+"0 A.D. est un jeu de stratégie en temps réel (RTS) ayant pour thème des guerres anciennes.  C'est un jeu historique de guerre et d'économie qui permet aux joueurs de revivre ou de réécrire l'histoire de douze anciennes civilisations, chacune à l'apogée de leur croissance économique et militaire.\n"
+"\n"
+"0ad a besoin d'un gestionnaire de fenêtres qui prend en charge les indications étendues pour les gestionnaires de fenêtre (« Extended Window Manager Hints »)."
 
-#: gnu/packages/games.scm:5413
+#: gnu/packages/games.scm:6582
 msgid "Colossal Cave Adventure"
-msgstr ""
+msgstr "Colossal Cave Adventure"
 
-#: gnu/packages/games.scm:5414
+#: gnu/packages/games.scm:6583
 msgid ""
 "The original Colossal Cave Adventure from 1976 was the\n"
 "origin of all text adventures, dungeon-crawl (computer) games, and\n"
 "computer-hosted roleplaying games.  This is the last version released by\n"
 "Crowther & Woods, its original authors, in 1995.  It has been known as\n"
 "\"adventure 2.5\" and \"430-point adventure\"."
-msgstr ""
+msgstr "Le jeu Colossal Cave Adventure original de 1976 a été à l'origine de toutes les aventures textuelles, des jeux d'exploration de donjon (sur ordinateur) et des jeux de rôles sur ordinateur.  Ceci est la dernière version publiée par Crowther & Woods, ses auteurs originaux, en 1995.  Il est connu sous le nom de « adventure 2.5 » et « 430-point adventure »."
 
-#: gnu/packages/games.scm:5425
+#: gnu/packages/games.scm:6594
 msgid "Single-player, RPG roguelike game set in the world of Eyal"
-msgstr ""
+msgstr "RPG roguelike solo dans le monde d'Eyal"
 
-#: gnu/packages/games.scm:5539
+#: gnu/packages/games.scm:6702
 msgid ""
 "Tales of Maj’Eyal (ToME) RPG, featuring tactical turn-based\n"
 "combat and advanced character building.  Play as one of many unique races and\n"
@@ -5374,31 +6201,31 @@ msgid ""
 "abilities and powers.  With a modern graphical and customisable interface,\n"
 "intuitive mouse control, streamlined mechanics and deep, challenging combat,\n"
 "Tales of Maj’Eyal offers engaging roguelike gameplay for the 21st century."
-msgstr ""
+msgstr "Talkes of Maj'Eyal (ToME) est un RPG qui propose des combats tactiques en tour par tour et une construction de personnage avancée.  Jouez l'une des races et des classes uniques dans le monde plein de lore d'Eyal, explorez des donjons aléatoires, faites face à des combats difficiles et développez vos personnages avec votre propre mélange de capacités et de pouvoirs.  Avec une interface graphique moderne et personnalisable, des contrôles à la souris intuitifs, des mécaniques bien pensées et un combat difficile et profond, Tales of Maj'Eyal propose une expérience du jeu roguelike pour le 21ème siècle."
 
-#: gnu/packages/games.scm:5584
+#: gnu/packages/games.scm:6747
 msgid "First person shooter engine for Quake 1"
-msgstr ""
+msgstr "Moteur de jeu de tir à la première personne pour Quake 1"
 
-#: gnu/packages/games.scm:5585
+#: gnu/packages/games.scm:6748
 msgid ""
 "Quakespasm is a modern engine for id software's Quake 1.\n"
 "It includes support for 64 bit CPUs, custom music playback, a new sound driver,\n"
 "some graphical niceities, and numerous bug-fixes and other improvements."
-msgstr ""
+msgstr "Quakespasm est un moteur moderne pour Quake 1 de id software.  Il contient la prise en charge des CPU 64 bits, la lecture de musiques personnalisées, un nouveau pilote de son, des améliorations graphiques et diverses corrections de bogues et d'autres améliorations."
 
-#: gnu/packages/games.scm:5635
+#: gnu/packages/games.scm:6806
 msgid ""
 "vkquake is a modern engine for id software's Quake 1.\n"
 "It includes support for 64 bit CPUs, custom music playback, a new sound driver,\n"
 "some graphical niceities, and numerous bug-fixes and other improvements."
-msgstr ""
+msgstr "vkquake est un moteur moderne pour Quake 1 de id software.  Il contient la prise en charge des CPU 64 bits, la lecture de musiques personnalisées, un nouveau pilote de son, des améliorations graphiques et diverses corrections de bogues et d'autres améliorations."
 
-#: gnu/packages/games.scm:5686
+#: gnu/packages/games.scm:6857
 msgid "First person shooter engine based on quake2"
-msgstr ""
+msgstr "Moteur de jeu de tir à la première personne basé sur quake2"
 
-#: gnu/packages/games.scm:5687
+#: gnu/packages/games.scm:6858
 msgid ""
 "Yamagi Quake II is an enhanced client for id Software's Quake II.\n"
 "The main focus is an unchanged single player experience like back in 1997,\n"
@@ -5406,32 +6233,32 @@ msgid ""
 "of the unofficial retexturing packs.  In comparison with the official client,\n"
 "over 1000 bugs were fixed and an extensive code audit done,\n"
 "making Yamagi Quake II one of the most solid Quake II implementations available."
-msgstr ""
+msgstr "Yamagi Quake II est un client amélioré pour Quake II de id Software.  Le but principal est de ne pas changer l'expérience de jeu de 1997, donc le jeu et les graphiques sont inchangés.  Cependant l'utilisateur peut utiliser l'un des packs de textures non officiel.  Comparé au client officiel, plus de 1000 bogues ont été corrigés et un audit de code complet a été réalisé, ce qui rend Yamagi Quake II l'une des implémentations de Quake II la plus solide qui existe."
 
-#: gnu/packages/games.scm:5715
+#: gnu/packages/games.scm:6886
 msgid "Sudoku for your terminal"
-msgstr ""
+msgstr "Sudoku pour votre terminal"
 
-#: gnu/packages/games.scm:5716
+#: gnu/packages/games.scm:6887
 msgid "Nudoku is a ncurses-based Sudoku game for your terminal."
-msgstr ""
+msgstr "Nudoku est un jeu de Sudoku basé sur ncurses pour votre terminal."
 
-#: gnu/packages/games.scm:5762
+#: gnu/packages/games.scm:6933
 msgid "Realistic physics puzzle game"
-msgstr ""
+msgstr "Jeu de puzzle avec physique réaliste"
 
-#: gnu/packages/games.scm:5763
+#: gnu/packages/games.scm:6934
 msgid ""
 "The Butterfly Effect (tbe) is a game that uses\n"
 "realistic physics simulations to combine lots of simple mechanical\n"
 "elements to achieve a simple goal in the most complex way possible."
-msgstr ""
+msgstr "The Butterfly Effect (tbe) est un jeu qui utilise des simulations physiques réalistes pour combiner plusieurs éléments mécaniques simples pour atteindre un but simple de la manière la plus complexe possible."
 
-#: gnu/packages/games.scm:5806
+#: gnu/packages/games.scm:6977
 msgid "Game of lonely space adventure"
-msgstr ""
+msgstr "Jeu d'aventures spatiales solitaires"
 
-#: gnu/packages/games.scm:5808
+#: gnu/packages/games.scm:6979
 msgid ""
 "Pioneer is a space adventure game set in our galaxy at the turn of the\n"
 "31st century.  The game is open-ended, and you are free to eke out whatever\n"
@@ -5440,61 +6267,61 @@ msgid ""
 "smuggler or bounty hunter.  Forge and break alliances with the various\n"
 "factions fighting for power, freedom or self-determination.  The universe is\n"
 "whatever you make of it."
-msgstr ""
+msgstr "Pioneer est un jeu d'aventure spatiale dans notre galaxie au tournant du 31ème siècle.  Le jeu est ouvert et vous êtes libre de vivre n'importe quel style de vie spatiale que vous voulez.  Recherchez la gloire ou la richesse en explorant des millions de systèmes stellaires.  Tombez dans la criminalité en devenant pirate, contrebandier ou chasseur de primes.  Forgez et déliez des alliances avec diverses factions qui se battent pour le pouvoir, la liberté et l'autodétermination.  L'univers est ce que vous en faites."
 
-#: gnu/packages/games.scm:5835
+#: gnu/packages/games.scm:7006
 msgid "Hacking contribution graphs in git"
-msgstr ""
+msgstr "Piratage de graphes de contribution dans git"
 
-#: gnu/packages/games.scm:5837
+#: gnu/packages/games.scm:7008
 msgid ""
 "Badass generates false commits for a range of dates, essentially\n"
 "hacking the gamification of contribution graphs on platforms such as\n"
 "Github or Gitlab."
-msgstr ""
+msgstr "Badass génère de faux commits pour une période de dates données, pour pirater le système de gamification des graphes de contribution comme Github ou Gitlab."
 
-#: gnu/packages/games.scm:5910
+#: gnu/packages/games.scm:7081
 msgid "Educational programming strategy game"
-msgstr ""
+msgstr "Jeu de stratégie pour apprendre la programmation"
 
-#: gnu/packages/games.scm:5911
+#: gnu/packages/games.scm:7082
 msgid ""
 "Colobot: Gold Edition is a real-time strategy game, where\n"
 "you can program your units (bots) in a language called CBOT, which is similar\n"
 "to C++ and Java.  Your mission is to find a new planet to live and survive.\n"
 "You can save humanity and get programming skills!"
-msgstr ""
+msgstr "Colobot: Gold Edition est un jeu de stratégie en temps réel, où vous pouvez programmer vos unités (des robots) dans un langage CBOT, similaire à C++ et Java.  Votre mission est de trouver une nouvelle planète où vivre et prospérer.  Vous pouvez sauver l'humanité et gagner des compétences en programmation !"
 
-#: gnu/packages/games.scm:6003
+#: gnu/packages/games.scm:7174
 msgid "Modern Doom 2 source port"
-msgstr ""
+msgstr "Port des sources de Doom 2 moderne"
 
-#: gnu/packages/games.scm:6004
+#: gnu/packages/games.scm:7175
 msgid ""
 "GZdoom is a port of the Doom 2 game engine, with a modern\n"
 "renderer.  It improves modding support with ZDoom's advanced mapping features\n"
 "and the new ZScript language.  In addition to Doom, it supports Heretic, Hexen,\n"
 "Strife, Chex Quest, and fan-created games like Harmony, Hacx and Freedoom."
-msgstr ""
+msgstr "GZdoom est un port du moteur de jeu Doom 2, avec un rendu moderne.  Il améliore la prise en charge du modding avec les fonctionalités avancées de ZDoom et le nouveau langage ZScript.  En plus de Doom, il prend en charge Heretic, Hexen, Strife, Chex Quest et les jeux créés par les fan comme Harmony, Hacx et Freedoom."
 
-#: gnu/packages/games.scm:6039
+#: gnu/packages/games.scm:7210
 msgid "Multiplayer Doom port"
-msgstr ""
+msgstr "Port de Doom en multijoueur"
 
-#: gnu/packages/games.scm:6040
+#: gnu/packages/games.scm:7211
 msgid ""
 "Odamex is a modification of the Doom engine that\n"
 "allows players to easily join servers dedicated to playing Doom\n"
 "online."
-msgstr ""
+msgstr "Odamex est une modification du moteur de Doom qui permet aux joueurs de facilement rejoindre des dédiés pour jouer à Doom en ligne."
 
-#: gnu/packages/games.scm:6065
+#: gnu/packages/games.scm:7236
 msgid ""
 "Doom source port preserving the look, feel, and bugs of vanilla\n"
 "Doom"
-msgstr ""
+msgstr "Port des sources de Doom pour préserver l'apparence, l'expérience et les bogues du Doom d'origine"
 
-#: gnu/packages/games.scm:6068
+#: gnu/packages/games.scm:7239
 msgid ""
 "Chocolate Doom takes a different approach to other source ports.  Its\n"
 "aim is to accurately reproduce the experience of playing Vanilla Doom.  It is\n"
@@ -5505,54 +6332,54 @@ msgid ""
 "1990s.  The project is developed around a carefully-considered philosophy that\n"
 "intentionally restricts which features may be added (and rejects any that\n"
 "affect gameplay)."
-msgstr ""
+msgstr "Chocolate Doom prend une autre approche par rapport aux autres ports des sources.  Il a pour but de reproduire avec fidélité l'expérience de jeu de Doom.  C'est un port des sources conservateur et historiquement exact de Doom, compatible avec les milliers de mods et de niveaux qui ont été construits avant la sortie du code source de Doom.  Au lieu de nouveaux graphiques tape-à-l'œil, la principale fonction de Chocolate Doom est de reproduire fidèlement de jeu tel qu'il se jouait dans les années 90.  Le projet est développé autour d'une philosophie réfléchie qui restreint volontairement les fonctionnalités qui peuvent être ajoutées (et rejette tout ce qui affecte l'expérience de jeu)."
 
-#: gnu/packages/games.scm:6104
+#: gnu/packages/games.scm:7275
 msgid ""
 "Limit-removing enhanced-resolution Doom source port based on\n"
 "Chocolate Doom"
-msgstr ""
+msgstr "Port des sources de Doom basé sur Chocolate Doom qui enlève les limites et améliore la résolution"
 
-#: gnu/packages/games.scm:6107
+#: gnu/packages/games.scm:7278
 msgid ""
 "Crispy Doom is a friendly fork of Chocolate Doom that provides a higher\n"
 "display resolution, removes the static limits of the Doom engine and offers\n"
 "further optional visual, tactical and physical enhancements while remaining\n"
 "entirely config file, savegame, netplay and demo compatible with the\n"
 "original."
-msgstr ""
+msgstr "Crispy Doom est un fork de Chocolate Doom qui fournit une plus grande résolution, supprime les limites statiques du moteur Doom et propose des améliorations visuelles, tactiques et physiques facultatives tout en restant complètement compatible avec les fichiers de sauvegarde, de configuration, avec le netplay et les démos de l'original."
 
-#: gnu/packages/games.scm:6179
+#: gnu/packages/games.scm:7350
 msgid "C11 / gnu11 utilities C library"
-msgstr ""
+msgstr "Bibliothèque C d'outils C11/gnu11"
 
-#: gnu/packages/games.scm:6180
+#: gnu/packages/games.scm:7351
 msgid "This package provides C11 / gnu11 utilities C library"
-msgstr ""
+msgstr "Ce paquet fournit une bibliothèques C d'outils C11/gnu11"
 
-#: gnu/packages/games.scm:6238
+#: gnu/packages/games.scm:7408
 msgid "The Fortune Cookie program from BSD games"
-msgstr ""
+msgstr "Le programme Fortune Cookie des jeux BSD"
 
-#: gnu/packages/games.scm:6239
+#: gnu/packages/games.scm:7409
 msgid ""
 "Fortune is a command-line utility which displays a random\n"
 "quotation from a collection of quotes."
-msgstr ""
+msgstr "Fortune est un utilitaire en ligne de commandes qui affiche une citation aléatoire parmi une collection de citations."
 
-#: gnu/packages/games.scm:6279
+#: gnu/packages/games.scm:7449
 msgid "Data files for Xonotic"
 msgstr "Fichiers de données pour Xonotic"
 
-#: gnu/packages/games.scm:6281
+#: gnu/packages/games.scm:7451
 msgid "Xonotic-data provides the data files required by the game Xonotic."
 msgstr "Ce paquet contient les fichiers de données requis par le jeu Xonotic."
 
-#: gnu/packages/games.scm:6475
+#: gnu/packages/games.scm:7645
 msgid "Fast-paced first-person shooter game"
-msgstr ""
+msgstr "Jeu de tir à la première personne nerveux"
 
-#: gnu/packages/games.scm:6477
+#: gnu/packages/games.scm:7647
 msgid ""
 "Xonotic is a free, fast-paced first-person shooter.\n"
 "The project is geared towards providing addictive arena shooter\n"
@@ -5560,26 +6387,26 @@ msgid ""
 "Xonotic is a direct successor of the Nexuiz project with years of\n"
 "development between them, and it aims to become the best possible\n"
 "open-source FPS of its kind."
-msgstr ""
+msgstr "Xonotic est un jeu de tir à la première personne libre et nerveux.  Le projet veut proposer un jeu de tir en arène addictif entièrement créé et piloté par la communauté elle-même.  Xonotic est le descendant direct du projet Nexuiz avec des années de développement entre les deux, et il a pour but de devenir le meilleur FPS libre de sa catégorie."
 
-#: gnu/packages/games.scm:6527
+#: gnu/packages/games.scm:7697
 msgid "Portable Z-machine interpreter (ncurses version) for text adventure games"
-msgstr ""
+msgstr "Interpréteur Z-machine portable (version ncurses) pour les jeux d'aventure en texte"
 
-#: gnu/packages/games.scm:6528
+#: gnu/packages/games.scm:7698
 msgid ""
 "Frotz is an interpreter for Infocom games and other Z-machine\n"
 "games in the text adventure/interactive fiction genre.  This version of Frotz\n"
 "complies with standard 1.0 of Graham Nelson's specification.  It plays all\n"
 "Z-code games V1-V8, including V6, with sound support through libao, and uses\n"
 "ncurses for text display."
-msgstr ""
+msgstr "Frotz est un interpréteur pour les jeux Infocom et les autres jeux Z-machine du genre aventure textuelle et fiction interactive.  Cette version de Frotz est compilée avec le standard 1.0 de la spécification de Graham Nelson.  Il peut lancer tous les jeux Z-code V1-V8, sauf la V6, avec le son à travers libao et il utilise ncurses pour l'affichage du texte."
 
-#: gnu/packages/games.scm:6569
+#: gnu/packages/games.scm:7739
 msgid "Portable Z-machine dumb interpreter for text adventure games"
-msgstr ""
+msgstr "Interpréteur bête de Z-machine portable pour les jeu d'aventures textuelles"
 
-#: gnu/packages/games.scm:6570
+#: gnu/packages/games.scm:7740
 msgid ""
 "Frotz is an interpreter for Infocom games and\n"
 "other Z-machine games in the text adventure/interactive fiction genre.\n"
@@ -5589,13 +6416,13 @@ msgid ""
 "a teletype.  A much cooler use for compiling Frotz with the dumb interface is\n"
 "that it can be wrapped in CGI scripting, PHP, and the like to allow people\n"
 "to play games on webpages.  It can also be made into a chat bot."
-msgstr ""
+msgstr "Frotz est un interpréteur pour les jeux Infocom et les autres jeux Z-machine du genre aventure textuelle et fiction interactive.  dfrotz est la version avec interface bête.  Vous n'avez pas le contrôle de l'écran ; tout est affiché sur le terminal ligne à ligne.  Le terminal gère tout le défilement.  Vous avez peut-être envie de savoir ce que ça fait de jouer à Adventure sur un téléscripteur.  Une utilisation plus intéressante de Frotz avec l'interface bête est qu'il peut être utilisé avec des scripts CGI, PHP, etc, pour permettre aux gens de jouer sur une page web.  On peut aussi en faire un chatbot."
 
-#: gnu/packages/games.scm:6633
+#: gnu/packages/games.scm:7803
 msgid "Portable Z-machine interpreter (SDL port) for text adventure games"
-msgstr ""
+msgstr "Interpréteur Z-machine portable (port SDL) pour les jeux d'aventures textuelles"
 
-#: gnu/packages/games.scm:6634
+#: gnu/packages/games.scm:7804
 msgid ""
 "Frotz is an interpreter for Infocom games and other Z-machine\n"
 "games in the text adventure/interactive fiction genre.  This version of Frotz\n"
@@ -5603,25 +6430,49 @@ msgid ""
 "graphical version 6.  Graphics and sound are created through the use of the SDL\n"
 "libraries.  AIFF sound effects and music in MOD and OGG formats are supported\n"
 "when packaged in Blorb container files or optionally from individual files."
+msgstr "Frotz est un interpréteur pour les jeux Infocom et les autres jeux Z-machine du genre aventure textuelle et fiction interactive.  Cett eversion de Frotz utilise SDL pour prendre complètement en charge toutes les versions de la Z-Machine, dont la version graphique 6.  Les graphiques et les sons sont créés en utilisant les bibliothèques SDL.  Les effets sonores AIFF et la musique au format MOD et OGG sont pris en charge lorsqu'ils sont empaquetés dans des fichiers conteneurs Blorb ou éventuellement dans des fichiers individuels."
+
+#: gnu/packages/games.scm:7896
+msgid "Puzzle with bubbles"
+msgstr "Puzzle avec des bulles"
+
+#: gnu/packages/games.scm:7898
+msgid ""
+"Frozen-Bubble is a clone of the popular Puzzle Bobble game, in which\n"
+"you attempt to shoot bubbles into groups of the same color to cause them to\n"
+"pop.\n"
+"\n"
+"Players compete as penguins and must use the arrow keys to aim a colored\n"
+"bubble at groups of bubbles.  The objective is to clear all the bubbles off\n"
+"the screen before a bubble passes below a line at the bottom.\n"
+"\n"
+"It features 100 single-player levels, a two-player mode, music and striking\n"
+"graphics.  A level editor is also included to allow players to create and play\n"
+"their own levels."
 msgstr ""
+"Frozen Bubble est un clone du jeu Puzzle Bobble populaire, dans lequel vous essayez de tirer des bulles en groupes de même couleur pour les faire exploser.\n"
+"\n"
+"Les joueurs se battent avec des manchots et doivent utiliser les flèches du clavier pour viser et lancer une bulle de couleur sur les groupes de bulles.  Le but est d'éliminer toutes les bulles de l'écran avant qu'une bulle ne dépasse la ligne en bas.\n"
+"\n"
+"Il propose 100 niveaux solos, un mode deux joueurs, de la musique et des graphiques remarquables.  Un éditeur de niveau est aussi inclus et permet aux joueurs de créer et de jouer à leur propres niveaux."
 
-#: gnu/packages/games.scm:6665
+#: gnu/packages/games.scm:7933
 msgid "Game controller library"
-msgstr ""
+msgstr "Bibliothèque pour les manettes"
 
-#: gnu/packages/games.scm:6666
+#: gnu/packages/games.scm:7934
 msgid ""
 "Libmanette is a small GObject library giving you simple\n"
 "access to game controllers.  It supports the de-facto standard gamepads as\n"
 "defined by the W3C standard Gamepad specification or as implemented by the SDL\n"
 "GameController."
-msgstr ""
+msgstr "Libmanette est une petite bibliothèque GObject qui donne un accès simplifié aux manettes de jeu.  Il prend en charge les manettes standards de fait définies par la spécification des manettes standards du W3C ou implémentées par le GameController de SDL."
 
-#: gnu/packages/games.scm:6711
+#: gnu/packages/games.scm:7980
 msgid "GNOME version of Tetris"
-msgstr ""
+msgstr "Version GNOME de Tetris"
 
-#: gnu/packages/games.scm:6712
+#: gnu/packages/games.scm:7981
 msgid ""
 "Quadrapassel comes from the classic falling-block game,\n"
 "Tetris.  The goal of the game is to create complete horizontal lines of\n"
@@ -5631,13 +6482,13 @@ msgid ""
 "order.  You rotate the blocks and move them across the screen to drop them in\n"
 "complete lines.  You score by dropping blocks fast and completing lines.  As\n"
 "your score gets higher, you level up and the blocks fall faster."
-msgstr ""
+msgstr "Quadrapassel vient du jeu de blocs classique Tetris.  Le but du jeu est de créer des lignes horizontales complètes qui disparaissent.  Les blocs qui arrivent ont sept formes possibles à partir de quatre blocs : une forme droite, deux formes en L, un carré et deux formes en S.  Les blocs tombent depuis le centre haut de l'écran dans un ordre aléatoire.  Vous pouvez tourner les blocs et les déplacer sur l'écran pour les faire tomber et compléter les lignes.  Vous gagnez des points en faisant tomber les blocs plus vite et en complétant des lignes.  Quand votre score augmente, vous augmentez de niveau et les blocs tombent plus vite."
 
-#: gnu/packages/games.scm:6766
+#: gnu/packages/games.scm:8034
 msgid "2D space trading and combat game"
-msgstr ""
+msgstr "Jeu d'échange et de combat spatial en 2D"
 
-#: gnu/packages/games.scm:6767
+#: gnu/packages/games.scm:8035
 msgid ""
 "Endless Sky is a 2D space trading and combat game.  Explore\n"
 "other star systems.  Earn money by trading, carrying passengers, or completing\n"
@@ -5645,13 +6496,13 @@ msgid ""
 "engines on your current one.  Blow up pirates.  Take sides in a civil war.  Or\n"
 "leave human space behind and hope to find friendly aliens whose culture is more\n"
 "civilized than your own."
-msgstr ""
+msgstr "Endless Sky est un jeu de commerce et de combat spatial.  Explorez d'autres systèmes stellaires.  Gagnez de l'argent en commerçant, en transportant des passagers ou en complétant des missions.  Utilisez vos gains pour acheter un meilleur vaisseau ou pour améliorer vos armes et moteurs sur votre vaisseau actuel.  Explosez des pirates.  Prenez partie dans une guerre civile.  Ou laissez l'espace humain derrière vous pour trouver des aliens sympathiques dont la culture est bien plus civilisée que la vôtre."
 
-#: gnu/packages/games.scm:6916
+#: gnu/packages/games.scm:8184
 msgid "Advanced rhythm game designed for both home and arcade use"
-msgstr ""
+msgstr "Jeu de rythme avancé conçu pour la maison et l'arcade"
 
-#: gnu/packages/games.scm:6917
+#: gnu/packages/games.scm:8185
 msgid ""
 "StepMania is a dance and rhythm game.  It features 3D\n"
 "graphics, keyboard and dance pad support, and an editor for creating your own\n"
@@ -5660,48 +6511,51 @@ msgid ""
 "This package provides the core application, but no song is shipped.  You need\n"
 "to download and install them in @file{$HOME/.stepmania-X.Y/Songs} directory."
 msgstr ""
+"StepMania est un jeu de danse et de rythme.  Il propose des graphiques en 3D, la prise en charge du clavier et d'un tapis de danse, ainsi qu'un éditeur pour créer vos propres niveaux.\n"
+"\n"
+"Ce paquet fournit l'application de cœur, mais aucune chanson n'est fournie.  Vous devez les télécharger et les installer dans le répertoire @file{$HOME/.stepmania-X.Y/Songs}."
 
-#: gnu/packages/games.scm:7002
+#: gnu/packages/games.scm:8270
 msgid "Multiplayer tank battle game"
-msgstr ""
+msgstr "Combat de tank multijoueur"
 
-#: gnu/packages/games.scm:7003
+#: gnu/packages/games.scm:8271
 msgid ""
 "Battle Tanks (also known as \"btanks\") is a funny battle\n"
 "game, where you can choose one of three vehicles and eliminate your enemy\n"
 "using the whole arsenal of weapons.  It has original cartoon-like graphics and\n"
 "cool music, it’s fun and dynamic, it has several network modes for deathmatch\n"
 "and cooperative."
-msgstr ""
+msgstr "Battle Tanks (aussi connu sous le nom de « btanks ») est un jeu de combat drôle, où vous pouvez choisir l'un des trois véhicules et éliminer vos ennemis avec tout un arsenal.  Il possède des graphiques dessinés originaux et une musique sympa, il est drôle et dynamique, il a plusieurs modes en réseau pour les matchs à mort et la coop."
 
-#: gnu/packages/games.scm:7033
+#: gnu/packages/games.scm:8301
 msgid "Simple 2D shooting strategy game set in space"
-msgstr ""
+msgstr "Jeu de tir stratégique en 2D dans l'espace"
 
-#: gnu/packages/games.scm:7034
+#: gnu/packages/games.scm:8302
 msgid ""
 "Slingshot is a two-dimensional strategy game where two\n"
 "players attempt to shoot one another through a section of space populated by\n"
 "planets.  The main feature of the game is that the shots, once fired, are\n"
 "affected by the gravity of the planets."
-msgstr ""
+msgstr "Slingshot est un jeu de stratégie spatiale en deux dimensions où deux joueurs tentent de se tirer l'un sur l'autre à travers une section d'espace remplie de planètes.  La principale difficulté du jeu est que les coups, une fois tirés, sont affectés par la gravité des planètes."
 
-#: gnu/packages/games.scm:7081
+#: gnu/packages/games.scm:8349
 msgid "4D Tetris"
-msgstr ""
+msgstr "4D Tetris"
 
-#: gnu/packages/games.scm:7082
+#: gnu/packages/games.scm:8350
 msgid ""
 "4D-TRIS is an alteration of the well-known Tetris game.  The\n"
 "game field is extended to 4D space, which has to filled up by the gamer with\n"
 "4D hyper cubes."
-msgstr ""
+msgstr "4D-TRIS est une modification du jeu bien connu Tetris.  L'air de jeu est étendu à un espace 4D, qui doit être rempli par le joueur avec des hypercubes en 4D."
 
-#: gnu/packages/games.scm:7158
+#: gnu/packages/games.scm:8426
 msgid "Port of Arx Fatalis, a first-person role-playing game"
-msgstr ""
+msgstr "Port de Arx Fatalis, un jeu de rôle en vue à la première personne"
 
-#: gnu/packages/games.scm:7159
+#: gnu/packages/games.scm:8427
 msgid ""
 "Arx Libertatis is a cross-platform port of Arx Fatalis, a 2002\n"
 "first-person role-playing game / dungeon crawler developed by Arkane Studios.\n"
@@ -5709,25 +6563,25 @@ msgid ""
 "of the original Arx Fatalis or its demo to play Arx Libertatis.  Arx Fatalis\n"
 "features crafting, melee and ranged combat, as well as a unique casting system\n"
 "where the player draws runes in real time to effect the desired spell."
-msgstr ""
+msgstr "Arx libertatis est un port multiplateforme de Arx Fatalis, un jeu de rôle et d'exploration de donjon en vue à la première personne de 2002 développé par Arkane Studios.  Ce port n'inclut pas les données du jeu, donc vous devez obtenir une copie du jeu originale ou d'une démo pour jouer à Arx Libertatis.  Arx Fatalis propose de la construction d'objets, du combat rapproché et à distance, ainsi qu'un système de lancer de sorts unique où le joueur dessine des runes en temps réel pour lancer le sort désiré."
 
-#: gnu/packages/games.scm:7205
+#: gnu/packages/games.scm:8473
 msgid "2d action platformer game"
-msgstr ""
+msgstr "Jeu de plateforme et d'action en 2d"
 
-#: gnu/packages/games.scm:7206
+#: gnu/packages/games.scm:8474
 msgid ""
 "The Legend of Edgar is a 2D platform game with a persistent world.\n"
 "When Edgar's father fails to return home after venturing out one dark and stormy night,\n"
 "Edgar fears the worst: he has been captured by the evil sorcerer who lives in\n"
 "a fortress beyond the forbidden swamp."
-msgstr ""
+msgstr "The Legend of edgar est un jeu de plateforme en 2D avec un monde persistant.  Lorsque le père d'Edgar ne rentre pas à la maison après être sortie une nuit noire en pleine tempête, Edgar craint le pire : qu'il ait été capturé par le terrible sorcier qui habite dans une forteresse au delà du marré interdit."
 
-#: gnu/packages/games.scm:7307
+#: gnu/packages/games.scm:8575
 msgid "Multiplayer action game where you control small and nimble humanoids"
-msgstr ""
+msgstr "Jeu d'action multijoueur où vous contrôlez de petits humanoïdes agiles"
 
-#: gnu/packages/games.scm:7308
+#: gnu/packages/games.scm:8576
 msgid ""
 "OpenClonk is a multiplayer action/tactics/skill game.  It is\n"
 "often referred to as a mixture of The Settlers and Worms.  In a simple 2D\n"
@@ -5735,34 +6589,34 @@ msgid ""
 "robust humanoid beings.  The game encourages free play but the normal goal is\n"
 "to either exploit valuable resources from the earth by building a mine or\n"
 "fight each other on an arena-like map."
-msgstr ""
+msgstr "OpenClonk est un jeu multijoueur d'action, tactique et d'habileté.  Il est souvent comparé à un mélange de The Settlers et de Worms.  Dans un paysage 2D simple semblable à antfarm, le joueur contrôle un équipage de clonks, des être humanoïdes petits mais robustes.  le jeu encourage le jeu libre mais le but est normalement soit d'exploiter des ressources précieuses de la terre en construisant une mine, soit de se battre sur une carte d'arène."
 
-#: gnu/packages/games.scm:7339
+#: gnu/packages/games.scm:8607
 msgid "Action Roleplaying Engine"
-msgstr ""
+msgstr "Moteur de jeu de rôle et d'action"
 
-#: gnu/packages/games.scm:7340
+#: gnu/packages/games.scm:8608
 msgid ""
 "Flare (Free Libre Action Roleplaying Engine) is a simple\n"
 "game engine built to handle a very specific kind of game: single-player 2D\n"
 "action RPGs."
-msgstr ""
+msgstr "Flare (Free libre action roleplaying engine) est un moteur de jeu simple construit pour gérer un type de jeu spécifique : les RPG actions solos en 2D."
 
-#: gnu/packages/games.scm:7404
+#: gnu/packages/games.scm:8672
 msgid "Fantasy action RPG using the FLARE engine"
-msgstr ""
+msgstr "JdR action fantasy utilisant le moteur FLARE"
 
-#: gnu/packages/games.scm:7405
+#: gnu/packages/games.scm:8673
 msgid ""
 "Flare is a single-player 2D action RPG with\n"
 "fast-paced action and a dark fantasy style."
-msgstr ""
+msgstr "Flare est un JdR action solo en 2D avec de l'action nerveuse et un style dark fantasy."
 
-#: gnu/packages/games.scm:7456
+#: gnu/packages/games.scm:8724
 msgid "Action-adventure dungeon crawl game"
-msgstr ""
+msgstr "Jeu d'exploration de donjon action-aventure"
 
-#: gnu/packages/games.scm:7457
+#: gnu/packages/games.scm:8725
 msgid ""
 "Far below the surface of the planet is a place of limitless\n"
 "power.  Those that seek to control such a utopia will soon bring an end to\n"
@@ -5775,12 +6629,15 @@ msgid ""
 "search of powerful artifacts, tools to help them, and to eventually free the\n"
 "Orcus Dome from evil."
 msgstr ""
+"Loin sous la surface de la planète se trouve un endroit de pouvoir sans limite.  Ceux qui cherchent à contrôler une telle utopie ne font qu'accélérer leur fin.  Cherchant à éliminer les troubles qui l'agite, l'utilisateur de PSI Merit voyage dans le vénérable dôme d'Orcus à la recherche de réponses.\n"
+"\n"
+"Meritous est un jeu d'action-aventure avec des contrôles simple mais où l'équilibre entre puissance et temps de soin est un vrai défi dans les combats en temps réel.  Dans un monde généré procéduralement, le joueur peut explorer des milliers de pièces à la recherche d'artéfacts puissants, d'outils pour l'aider et pour finalement libérer le dôme d'Orcus du mal qui l'habite."
 
-#: gnu/packages/games.scm:7520
+#: gnu/packages/games.scm:8788
 msgid "Guide a marble across fractal landscapes"
-msgstr ""
+msgstr "Guidez une bille à travers des paysages fractals"
 
-#: gnu/packages/games.scm:7521
+#: gnu/packages/games.scm:8789
 msgid ""
 "Marble Marcher is a video game that uses a fractal physics\n"
 "engine and fully procedural rendering to produce beautiful and unique\n"
@@ -5788,25 +6645,25 @@ msgid ""
 "of the game is to get your marble to the flag as quickly as possible.  But be\n"
 "careful not to fall off the level or get crushed by the fractal!  There are 24\n"
 "levels to unlock."
-msgstr ""
+msgstr "Marble Marcher est un jeu vidéo qui utilise un moteur de physique fractal et un rendu complètement procédural pour produire une expérience de jeu unique.  Le jeu se joue sur la surface d'une fractale en évolution.  Le but du jeu est de faire atteindre le drapeau à votre bille le plus vite possible.  Mais soyez attentif et ne tombez pas hors du niveau, ou ne vous faites pas broyé par la fractale !  Il y a 24 niveaux à débloquer."
 
-#: gnu/packages/games.scm:7562
+#: gnu/packages/games.scm:8830
 msgid "Libraries for 3D simulations and games"
-msgstr ""
+msgstr "Bibliothèques pour les simulations et les jeux 3D"
 
-#: gnu/packages/games.scm:7563
+#: gnu/packages/games.scm:8831
 msgid ""
 "SimGear is a set of libraries designed to be used as\n"
 "building blocks for quickly assembling 3D simulations, games, and\n"
 "visualization applications.  SimGear is developed by the FlightGear project\n"
 "and also provides the base for the FlightGear Flight Simulator."
-msgstr ""
+msgstr "SimGear est un ensemble de bibliothèques conçues pour être utilisées comme des briques de base pour assembler des simulations 3D, des jeux et des applications visuelles.  SimGear est développé par le projet FlightGear et fournit aussi une base pour le simulateur de vol FlightGear."
 
-#: gnu/packages/games.scm:7655
+#: gnu/packages/games.scm:8923
 msgid "Flight simulator"
-msgstr ""
+msgstr "Simulateur de vol"
 
-#: gnu/packages/games.scm:7656
+#: gnu/packages/games.scm:8924
 msgid ""
 "The goal of the FlightGear project is to create a\n"
 "sophisticated flight simulator framework for use in research or academic\n"
@@ -5814,24 +6671,24 @@ msgid ""
 "pursue their favorite interesting flight simulation idea, and last but\n"
 "certainly not least as a fun, realistic, and challenging desktop flight\n"
 "simulator."
-msgstr ""
+msgstr "le but de FlightGear est de créer un simulateur de vol sophistiqué à utiliser pour la recherche ou dans des environnements académiques, pour l'entrainement au pilotage, comme outil de conception industrielle, pour les bricoleurs qui veulent implémenter leurs idées de simulation de vol favorites, et surtout pour un simulateur de vol sur PC fun, réaliste et stimulant."
 
-#: gnu/packages/games.scm:7702
+#: gnu/packages/games.scm:8970
 msgid "Multiplayer platform game with bunnies"
-msgstr ""
+msgstr "Jeu de plateforme multijoueur avec des lapins"
 
-#: gnu/packages/games.scm:7703
+#: gnu/packages/games.scm:8971
 msgid ""
 "You, as a bunny, have to jump on your opponents to make them\n"
 "explode.  It is a true multiplayer game; you cannot play this alone.  You can\n"
 "play with up to four players simultaneously.  It has network support."
-msgstr ""
+msgstr "Vous, un lapin, devez sauter sur vos ennemis pour les faire exploser.  C'est un vrai jeu multijoueur ; vous ne pouvez pas y jouer seul.  Vous pouvez jouer à jusqu'à quatre joueurs simultanément.  Il prend en charge le réseau."
 
-#: gnu/packages/games.scm:7755
+#: gnu/packages/games.scm:9032
 msgid "Turn-based artillery game featuring fighting hedgehogs"
-msgstr ""
+msgstr "Jeu d'artillerie en tour par tour avec des soldats hérissons"
 
-#: gnu/packages/games.scm:7757
+#: gnu/packages/games.scm:9034
 msgid ""
 "Hedgewars is a turn based strategy, artillery, action and comedy game,\n"
 "featuring the antics of pink hedgehogs with attitude as they battle from the\n"
@@ -5840,12 +6697,15 @@ msgid ""
 "As commander, it's your job to assemble your crack team of hedgehog soldiers\n"
 "and bring the war to your enemy."
 msgstr ""
+"Hedgewars est un jeu de stratégie, d'artillerie, d'action et comique, qui présente les singeries des hérissons roses qui se battent du fond des enfers jusqu'aux confins de l'univers.\n"
+"\n"
+"En tant que commandant, c'est votre boulot de rassembler votre équipe triée sur le volet de soldats hérissons et d'amener la guerre aux portes de l'ennemie."
 
-#: gnu/packages/games.scm:7789
+#: gnu/packages/games.scm:9066
 msgid "Stealth coffee-break roguelike game"
-msgstr ""
+msgstr "Jeu d'infiltration roguelike pour la pause café"
 
-#: gnu/packages/games.scm:7790
+#: gnu/packages/games.scm:9067
 msgid ""
 "Harmonist: Dayoriah Clan Infiltration is a stealth\n"
 "coffee-break roguelike game.  The game has a heavy focus on tactical\n"
@@ -5853,13 +6713,13 @@ msgid ""
 "and cones of view for monsters.  Aiming for a replayable streamlined experience,\n"
 "the game avoids complex inventory management and character building, relying\n"
 "on items and player adaptability for character progression."
-msgstr ""
+msgstr "Harmonist: Dayoriah Clan Infiltration est un jeu d'infiltration roguelike pour la pause café.  le jeu est centré autour du positionnement tactique, des mécaniques de lumières et de bruit, l'utilisation des types de terrains et des cônes de vision des monstres.  Ayant pour but une expérience de rejouabilité bien pensée, le jeu évite la gestion d'un inventaire trop complexe et la construction d'un personnage, se reposant sur l'adaptabilité des objets et des joueurs pour la progression du personnage."
 
-#: gnu/packages/games.scm:7925 gnu/packages/games.scm:8108
+#: gnu/packages/games.scm:9198 gnu/packages/games.scm:9381
 msgid "Classic 2D point and click adventure game"
-msgstr ""
+msgstr "jeu d'aventure point-and-click 2D classique"
 
-#: gnu/packages/games.scm:7926
+#: gnu/packages/games.scm:9199
 msgid ""
 "Drascula: The Vampire Strikes Back is a classic humorous 2D\n"
 "point and click adventure game.\n"
@@ -5870,12 +6730,15 @@ msgid ""
 "Unfortunately, Hacker is not aware of Drascula's real ambitions: DOMINATING\n"
 "the World and demonstrating that he is even more evil than his brother Vlad."
 msgstr ""
+"Drascula: The Vampire Strikes Back est un jeu d'aventure humouristique point-and-click en 2D classique.\n"
+"\n"
+"Dans Drascula vous jouez le rôle de John Hacker, un agent immobilier britannique, qui rencontre une superbe blonde qui se fait kidnapper par un vampire notoire, le compte Drascula, et s'engage dans une quête drôle mais dangereuse pour la sauver.  Malheureusement, Hacker n'est pas au courant des véritables ambitions de Drascula : DOMINER le Monde et démontrer qu'il est plus méchant que son frère Vlad."
 
-#: gnu/packages/games.scm:8006
+#: gnu/packages/games.scm:9279
 msgid "2D point and click fantasy adventure game"
-msgstr ""
+msgstr "Jeu d'aventure point-and-click fantasy en 2D"
 
-#: gnu/packages/games.scm:8008
+#: gnu/packages/games.scm:9281
 msgid ""
 "Lure of the Temptress is a classic 2D point and click adventure game.\n"
 "\n"
@@ -5893,8 +6756,13 @@ msgid ""
 "when you realize that you are in a dingy cell guarded by a not so friendly\n"
 "Skorl.  Maybe it would be an idea to try and escape..."
 msgstr ""
+"Lure of the Temptress est un jeu d'aventure point-and-click en 2D classique.\n"
+"\n"
+"Vous êtes Diermot, un héro sans le vouloir qui aurait préféré une petite vie tranquille et vous êtes, pour autant que vous puissiez en juger, un homme bon.  Après des décennies de troubles le roi a uni les factions en guerre sous son royaume et toutes les terres sont en paix, à l'exception d'une petite région lointaine autour de la ville de Turnvale.  Une révolte a récemment eu lieu à turnvale, une révolte orchestrée par une apprentie sorcière nommée Selena, la tentatrice du titre.  Le roi appel à lui ses meilleurs chevaliers et se dirige (en vous trainant de force) à turnvale pour découvrir comment les monstres mercenaires des enfers appelés Skorl ont envahi la ville.\n"
+"\n"
+"Les hommes du roi sont défaits, le roi est tué et vous tombez de votre cheval vous fracassez le crâne par terre.  Vous avez été inconscient pendant un moment quand vous réalisez que vous êtes dans une cellule miteuse gardée par un Skorl pas très amical.  Il serait peut-être judicieux de vous échapper…"
 
-#: gnu/packages/games.scm:8109
+#: gnu/packages/games.scm:9382
 msgid ""
 "Flight of the Amazon Queen is a 2D point-and-click\n"
 "adventure game set in the 1940s.\n"
@@ -5910,12 +6778,15 @@ msgid ""
 "jungle inhabitants including, but not limited to, a tribe of Amazon\n"
 "women and 6-foot-tall pygmies."
 msgstr ""
+"Flight of the Amazon Queen est un jeu d'aventure point-and-click qui se passe dans les années 1940.\n"
+"\n"
+"Vous jouez Joe King, un pilote en recherche d'emploi qui doit amener Faye Russel (un célèbre acteur de cinéma) dans la jungle amazonienne pour une séance photo.  Bien sûr, les choses ne se passent pas comme prévu.  Après un malheureux concours de circonstances, ils se retrouvent perdus au cœur de la forêt amazonienne, où Joe s'embarque dans une quête pour secourir une princesse kidnappée et ce faisant, découvre les vrais intentions sinistres d'une compagnie Lederhosen située à un endroit suspect.  Dans un environnement 2D riche, Joe croisera une foule d'habitants improbables de la jungle, dont, mais pas seulement, une tribu de femmes amazones et des pygmées de 6 pieds de haut."
 
-#: gnu/packages/games.scm:8209
-msgid "Classic 2D point an click science-fiction adventure game"
-msgstr ""
+#: gnu/packages/games.scm:9482
+msgid "Classic 2D point and click science-fiction adventure game"
+msgstr "jeu d'aventure de science-fiction point-and-click 2D classique"
 
-#: gnu/packages/games.scm:8211
+#: gnu/packages/games.scm:9484
 msgid ""
 "Beneath a Steel Sky is a science-fiction thriller set in a bleak\n"
 "post-apocalyptic vision of the future.  It revolves around Union City,\n"
@@ -5937,35 +6808,40 @@ msgid ""
 "middle of the city.  He sets out to discover the truth about his past,\n"
 "and to seek vengeance for the killing of his tribe."
 msgstr ""
+"Beneath a Steel Sky est un thriller de science-fiction qui se déroule dans une vision sombre et post-apocalyptique du futur.  L'histoire parle d'Union City, où l'égocentrisme, la rivalité et la corruption de ses citoyens semblent bien trop communs, ceux qui peuvent se le permettent vivent sous terre, loin de la pollution et des problèmes sociaux qui ravagent la ville.\n"
+"\n"
+"Vous êtes Robert Foster, une sorte de paria de la ville car depuis petit il a été élevé dans un environnement reculé hors d'Union City nommé « le gap ».  La mère de Robert l'a emmené loin de la ville quand il était petit, pour aller à « Hobart », mais l'hélicoptère s'est écrasé sur le trajet.  Malheureusement, la mère de Robert est morte, mais il a survécu et a été élevé par une tribu locale du gap.\n"
+"\n"
+"Des années plus tard, la sécurité d'Union City fait son apparition et enlève Robert, tuant sa tribu dans l'opération ; au moment d'arriver à la ville, l'hélicoptère le transportant s'écrase et il s'échappe tout en haut d'une tour au milieu de la ville.  Il part alors découvrir la vérité sur son passé, et cherche à se venger pour la mort de sa tribu."
 
-#: gnu/packages/games.scm:8272
+#: gnu/packages/games.scm:9545
 msgid "Program a little robot and watch it explore a world"
-msgstr ""
+msgstr "Programmez un petit robot et regardez-le explorer le monde"
 
-#: gnu/packages/games.scm:8274
+#: gnu/packages/games.scm:9547
 msgid ""
 "GNU Robots is a game in which you program a robot to explore a world\n"
 "full of enemies that can hurt it, obstacles and food to be eaten.  The goal of\n"
 "the game is to stay alive and collect prizes.  The robot program conveniently\n"
 "may be written in a plain text file in the Scheme programming language."
-msgstr ""
+msgstr "GNU Robots est un jeu dans lequel vous programmez un robot pour explorer un monde plein d'ennemis qui vous blessent, d'obstacles et de nourriture à manger.  Le but du jeu est de rester un vie et de récolter des prix.  Le programme du robot peut être écrit dans un fichier en texte brut dans le langage de programmation Scheme."
 
-#: gnu/packages/games.scm:8343
+#: gnu/packages/games.scm:9616
 msgid "Toy train simulation game"
 msgstr "Petit simulateur de train"
 
-#: gnu/packages/games.scm:8344
+#: gnu/packages/games.scm:9617
 msgid ""
 "Ri-li is a game in which you drive a wooden toy\n"
 "steam locomotive across many levels and collect all the coaches to\n"
 "win."
-msgstr ""
+msgstr "Ri-li est un jeu dans lequel vous conduisez une locomotive à vapeur jouet en bois à travers des niveaux et récupérez tous les wagons pour gagner."
 
-#: gnu/packages/games.scm:8398
+#: gnu/packages/games.scm:9671
 msgid "Turn-based space empire and galactic conquest computer game"
-msgstr ""
+msgstr "Jeu de conquête galactique et de construction d'empire spatial au tour par tour"
 
-#: gnu/packages/games.scm:8400
+#: gnu/packages/games.scm:9673
 msgid ""
 "FreeOrion is a turn-based space empire and galactic conquest (4X)\n"
 "computer game being designed and built by the FreeOrion project.  Control an\n"
@@ -5973,24 +6849,24 @@ msgid ""
 "exploiting the resources, and exterminating rival alien empires.  FreeOrion is\n"
 "inspired by the tradition of the Master of Orion games, but is not a clone or\n"
 "remake of that series or any other game."
-msgstr ""
+msgstr "FreeOrion est un jeu de conquête spatiale et d'empire galactique (4X) au tour par tour conçu et construit par le projet FreeOrion.  Contrôlez un empire dans le but d'explorer la galaxie, d'étendre votre territoire, d'exploiter les ressources et d'exterminer les empires alien rivaux.  FreeOrion est inspiré des jeux Master of Orion traditionnels, mais ce n'est pas un clone ou une copie de cette série ou d'autres jeux du genre."
 
-#: gnu/packages/games.scm:8454
+#: gnu/packages/games.scm:9727
 msgid "Program playing the game of Go"
 msgstr "Programme pour jouer au Go"
 
-#: gnu/packages/games.scm:8456
+#: gnu/packages/games.scm:9729
 msgid ""
 "Leela-zero is a Go engine with no human-provided knowledge, modeled after\n"
 "the AlphaGo Zero paper.  The current best network weights file for the engine\n"
 "can be downloaded from @url{https://zero.sjeng.org/best-network}."
-msgstr ""
+msgstr "Leela-zero est un moteur en Go sans connaissance pré-établie par un humain, modelée d'après le papier AlphaGo Zero.  Le fichier de poids du meilleur réseau actuel pour le moteur se trouve sur @url{https://zero.sjeng.org/best-network}."
 
-#: gnu/packages/games.scm:8529
+#: gnu/packages/games.scm:9802
 msgid "Qt GUI to play the game of Go"
 msgstr "Interface graphique en Qt pour jouer au Go"
 
-#: gnu/packages/games.scm:8531
+#: gnu/packages/games.scm:9804
 msgid ""
 "This a tool for Go players which performs the following functions:\n"
 "@itemize\n"
@@ -6001,16 +6877,24 @@ msgid ""
 "@item Export games to a variety of formats.\n"
 "@end itemize"
 msgstr ""
+"C'est un outil pour les joueurs de Go qui a les fonctionnalités suivantes :\n"
+"@itemize\n"
+"@item un éditeur SGF\n"
+"@item interface d'analyse pour Leela Zero (ou les moteurs compatibles)\n"
+"@item interface GTP (pour jouer contre un moteur)\n"
+"@item client IGS (pour jouer sur internet)\n"
+"@item export des jeux dans divers formats\n"
+"@end itemize"
 
-#: gnu/packages/games.scm:8573
+#: gnu/packages/games.scm:9846
 msgid "Stamp drawing toy"
-msgstr ""
+msgstr "Jouet de dessin avec des tampons"
 
-#: gnu/packages/games.scm:8574
+#: gnu/packages/games.scm:9847
 msgid ""
 "KTuberling is a drawing toy intended for small children and\n"
 "adults who remain young at heart.  The game has no winner; the only purpose is\n"
-"to make the funniest faces you can.  Several activites are possible, e.g.:\n"
+"to make the funniest faces you can.  Several activities are possible, e.g.:\n"
 "\n"
 "@itemize\n"
 "@item Give the potato a funny face, clothes, and other goodies\n"
@@ -6024,12 +6908,24 @@ msgid ""
 "\n"
 "This package is part of the KDE games module."
 msgstr ""
+"KTuberling est un jeu de dessin conçu pour les petits enfants et les adultes qui sont restés jeunes.  Le jeu n'a pas de vainqueur, le seul but est de créer la tête la plus drôle possible.  Plusieurs activités sont possibles :\n"
+"\n"
+"@itemize\n"
+"@item Donner une drôle de tête, des vêtements et d'autres accessoires à une patate\n"
+"@item Construire une petite ville, avec une école un zoo et un bâtiment pour les pompiers\n"
+"@item Créer un paysage lunaire avec des vaisseaux spatiaux et des aliens\n"
+"@item Garnir une pizza\n"
+"@end itemize\n"
+"\n"
+"KTuberling peut dire le nom de chaque objet dans plusieurs langues, pour aider à apprendre le vocabulaire de base.\n"
+"\n"
+"Ce paquet fait partie du module des jeux de KDE."
 
-#: gnu/packages/games.scm:8620
+#: gnu/packages/games.scm:9893
 msgid "Number logic game"
-msgstr ""
+msgstr "Jeu de logique avec des nombres"
 
-#: gnu/packages/games.scm:8621
+#: gnu/packages/games.scm:9894
 msgid ""
 "Picmi is a number logic game in which cells in a grid have\n"
 "to be colored or left blank according to numbers given at the side of the\n"
@@ -6037,12 +6933,15 @@ msgid ""
 "\n"
 "This package is part of the KDE games module."
 msgstr ""
+"Picmi est un jeu de logique avec des nombres dans lequel les cellules d'une grille doivent être colorées ou laissées blanches en fonction des numéros donnés de chaque côté de la grille.  Le but est de révéler une image cachée.\n"
+"\n"
+"Ce paquet fait partie du modules des jeux de KDE."
 
-#: gnu/packages/games.scm:8658
+#: gnu/packages/games.scm:9931
 msgid "Miniature golf game"
-msgstr ""
+msgstr "Jeu de minigolf"
 
-#: gnu/packages/games.scm:8659
+#: gnu/packages/games.scm:9932
 msgid ""
 "Kolf is a miniature golf game for one to ten players.  The\n"
 "game is played from an overhead view, with a short bar representing the golf\n"
@@ -6060,22 +6959,34 @@ msgid ""
 "\n"
 "This package is part of the KDE games module."
 msgstr ""
+"Kolf est un jeu de minigolf pour un à dix joueurs.  Le jeu se joue en vue de dessus, avec une petite barre représentant le club de golf.  Kolf propose plusieurs types d'objets, comme les obstacles d'eau, les pentes, les pièges de sable et les trous noirs (téléportation), entre autres choses.\n"
+"\n"
+"Les fonctionnalités :\n"
+"@itemize\n"
+"@item Modes solo et multijoueurs (jusqu'à 10 joueurs)\n"
+"@item Tableau des meilleurs scores\n"
+"@item Parcours dynamiques\n"
+"@item Parcours tiers\n"
+"@item Éditeur de parcours\n"
+"@end itemize\n"
+"\n"
+"Ce paquet fait partie du module des jeux de KDE."
 
-#: gnu/packages/games.scm:8702
+#: gnu/packages/games.scm:9975
 msgid "Shared library for kmahjongg and kshisen"
-msgstr ""
+msgstr "Bibliothèque partagée pour kmahjongg et kshisen"
 
-#: gnu/packages/games.scm:8703
+#: gnu/packages/games.scm:9976
 msgid ""
 "Shared library and common files for kmahjongg, kshisen and\n"
 "other Mah Jongg like games."
-msgstr ""
+msgstr "Bibliothèque partagée et fichiers communs pour kmahjongg, kshisen et d'autres jeux utilisant les tuiles de Mah Jongg"
 
-#: gnu/packages/games.scm:8736
+#: gnu/packages/games.scm:10009
 msgid "Tile laying patience"
-msgstr ""
+msgstr "Solitaire avec des tuiles"
 
-#: gnu/packages/games.scm:8737
+#: gnu/packages/games.scm:10010
 msgid ""
 "In KMahjongg the tiles are scrambled and staked on top of\n"
 "each other to resemble a certain shape.  The player is then expected to remove\n"
@@ -6086,12 +6997,17 @@ msgid ""
 "\n"
 "This package is part of the KDE games module."
 msgstr ""
+"Dans KMahjongg les tuiles sont mélangées et placées les unes sur les autres pour former une certaine forme.  Le joueur doit retirer toutes les tuiles du jeu en trouvant des paires correspondantes.\n"
+"\n"
+"Plusieurs dispositions de tuiles sont incluses, ainsi qu'un éditeur pour créer de nouvelles dispositions.\n"
+"\n"
+"Ce paquet fait partie du module des jeux de KDE."
 
-#: gnu/packages/games.scm:8778
+#: gnu/packages/games.scm:10051
 msgid "Shisen-Sho solitaire game"
-msgstr ""
+msgstr "Solitaire Shisen-Sho"
 
-#: gnu/packages/games.scm:8779
+#: gnu/packages/games.scm:10052
 msgid ""
 "KShisen is a solitaire-like game played using the standard\n"
 "set of Mahjong tiles.  Unlike Mahjong however, KShisen has only one layer of\n"
@@ -6099,12 +7015,15 @@ msgid ""
 "\n"
 "This package is part of the KDE games module."
 msgstr ""
+"KShisen est un jeu de solitaire qui utilise les tuiles standard du Mahjong.  Contrairement au Mahjong cependant, KShisen n'a qu'une couche de tuiles mélangées.\n"
+"\n"
+"Ce paquet fait partie du module des jeux de KDE."
 
-#: gnu/packages/games.scm:8816
+#: gnu/packages/games.scm:10089
 msgid "Classical Mah Jongg game for 4 players"
-msgstr ""
+msgstr "Jeu de Mah Jongg classique à 4 joueurs"
 
-#: gnu/packages/games.scm:8817
+#: gnu/packages/games.scm:10090
 msgid ""
 "Kajongg is the ancient Chinese board game for 4 players.\n"
 "\n"
@@ -6118,12 +7037,19 @@ msgid ""
 "\n"
 "This package is part of the KDE games module."
 msgstr ""
+"Kajongg est l'ancien jeu de plateau chinois à 4 joueurs.\n"
+"\n"
+"Si vous cherchez le solitaire Mah Jongg, utilisez l'application kmahjongg.\n"
+"\n"
+"Kajongg peut être utilisé de deux manières différentes : une partie manuelle où vous jouez comme d'habitude et utilisez Kajongg pour le calcul des scores et pour les garder en mémoire.  Ou vous pouvez utiliser  Kajongg pour jouer contre d'autres joueurs ou l'ordinateur.\n"
+"\n"
+"Ce paquet fait partie du module des jeux de KDE."
 
-#: gnu/packages/games.scm:8859
+#: gnu/packages/games.scm:10132
 msgid "Breakout like game"
-msgstr ""
+msgstr "Jeu de casse-brique"
 
-#: gnu/packages/games.scm:8860
+#: gnu/packages/games.scm:10133
 msgid ""
 "KBreakout is similar to the classics breakout and xboing,\n"
 "featuring a number of added graphical enhancements and effects.  You control a\n"
@@ -6132,12 +7058,15 @@ msgid ""
 "\n"
 "This package is part of the KDE games module."
 msgstr ""
+"KBreakout est similaire aux classiques casse-brique et xboing, proposant plusieurs améliorations et effets graphiques.  Vous contrôlez une barre en bas de l'écran et devez détruire les briques en haut en faisant rebondir une balle contre elles.\n"
+"\n"
+"Ce paquet fait partie du module des jeux de KDE."
 
-#: gnu/packages/games.scm:8898
+#: gnu/packages/games.scm:10171
 msgid "Classical mine sweeper game"
-msgstr ""
+msgstr "Jeu de démineur classique"
 
-#: gnu/packages/games.scm:8899
+#: gnu/packages/games.scm:10172
 msgid ""
 "KMines is a classic Minesweeper game.  The idea is to\n"
 "uncover all the squares without blowing up any mines.  When a mine is blown\n"
@@ -6145,12 +7074,15 @@ msgid ""
 "\n"
 "This package is part of the KDE games module."
 msgstr ""
+"KMines est un jeu de démineur classique.  L'idée est de découvrir toutes les cases sans faire sauter les mines.  Lorsqu'une mine explose, c'est perdu.\n"
+"\n"
+"Ce paquet fait partie du module des jeux de KDE."
 
-#: gnu/packages/games.scm:8936
+#: gnu/packages/games.scm:10209
 msgid "Simple turn-based strategy game"
 msgstr "Jeu de stratégie simple en tour par tour"
 
-#: gnu/packages/games.scm:8937
+#: gnu/packages/games.scm:10210
 msgid ""
 "Konquest is the KDE version of Gnu-Lactic Konquest.  Players\n"
 "conquer other planets by sending ships to them.  The goal is to build an\n"
@@ -6160,12 +7092,15 @@ msgid ""
 "\n"
 "This package is part of the KDE games module."
 msgstr ""
+"Konquest est la version KDE de GNU-Lactic Konquesst.  Les joueurs conquièrent d'autres planètes en leur envoyant des vaisseaux.  Le but est de construire un empire interstellaire et finalement de conquérir toutes les planètes des autres joueurs.  Le jeu se déroule avec jusqu'à neuf empires, commandés par l'ordinateur ou un camarade terrien.\n"
+"\n"
+"Ce paquet fait partie du module des jeux de KDE."
 
-#: gnu/packages/games.scm:8976
+#: gnu/packages/games.scm:10249
 msgid "Jezzball arcade game"
-msgstr ""
+msgstr "Jeu d'arcade Jezzball"
 
-#: gnu/packages/games.scm:8977
+#: gnu/packages/games.scm:10250
 msgid ""
 "KBounce is a single player arcade game with the elements of\n"
 "puzzle.  It is played on a field, surrounded by wall, with two or more balls\n"
@@ -6174,12 +7109,15 @@ msgid ""
 "\n"
 "This package is part of the KDE games module."
 msgstr ""
+"KBounce est un jeu d'arcade solo avec du puzzle.  Il se joue sur un terrain entouré de murs avec deux balles ou plus qui rebondissent contre les murs.  le but du jeu est de construire de nouveau murs pour réduire la taille du terrain de jeu.\n"
+"\n"
+"Ce paquet fait partie du module des jeux de KDE."
 
-#: gnu/packages/games.scm:9015
+#: gnu/packages/games.scm:10288
 msgid "Single player falling blocks puzzle game"
-msgstr ""
+msgstr "Jeu de puzzle solo avec des blocs qui tombent"
 
-#: gnu/packages/games.scm:9016
+#: gnu/packages/games.scm:10289
 msgid ""
 "KBlocks is the classic Tetris-like falling blocks game.\n"
 "\n"
@@ -6190,12 +7128,17 @@ msgid ""
 "\n"
 "This package is part of the KDE games module."
 msgstr ""
+"KBlocks est le jeu de Tetris classique.\n"
+"\n"
+"L'idée est d'empiler des blocs qui tombent pour créer des lignes horizontales sans trous.  Lorsqu'une ligne est complète elle est supprimée, et de l'espace supplémentaire est créé sur le terrain.  S'il n'y a plus de place pour que les blocs tombent, la partie est terminée.\n"
+"\n"
+"Ce paquet fait partie du module des jeux de KDE."
 
-#: gnu/packages/games.scm:9059
+#: gnu/packages/games.scm:10332
 msgid "Sudoku puzzle game and solver"
-msgstr ""
+msgstr "Jeu de puzzle et solveur de Sudoku"
 
-#: gnu/packages/games.scm:9060
+#: gnu/packages/games.scm:10333
 msgid ""
 "KSudoku is a Sudoku game and solver, supporting a range of\n"
 "2D and 3D Sudoku variants.  In addition to playing Sudoku, it can print Sudoku\n"
@@ -6223,12 +7166,23 @@ msgid ""
 "\n"
 "This package is part of the KDE games module."
 msgstr ""
+"KSudoku est un jeu de Sudoku et un solveur de Sudoku, qui prend une charge un grand nombre de variantes du Sudoku en 2D ou en 3D.  En plus de jouer au Sudoku, il peut imprimer des feuilles de grilles et trouver la solution de n'importe quelle grille.\n"
+"\n"
+"Le mot Sudoku signifie « un seul nombre à l'endroit désigné » en japonais.  Les règles de base sont : chaque Sudoku est un carré divisé en sous-carrés de 3x3.\n"
+"\n"
+"Certaines cellules sont remplies avec un nombre au départ.  Les autres doivent être remplies par le joueur avec les nombres de 1 à 9, sans jamais utiliser le même nombre sur aucune colonne, ligne ou sous-carré (chacun devant contenir tous les nombres de 1 à 9).  Le jeu demande de la logique et de la patience.  La résolution prend entre 10 et 30 minutes, en fonction du niveau du puzzle, de votre compétence et de votre expérience.\n"
+"\n"
+"Les nombres utilisés dans les grilles sont là pour être pratiques (par exemple dans une grille en 16x16, on utilise des lettres) : les relations arithmétiques entre les nombres n'ont aucune importance.\n"
+"\n"
+"Plus d'information sur http://en.wikipedia.org/wiki/Sudoku\n"
+"\n"
+"Ce paquet fait partie du module des jeux de KDE."
 
-#: gnu/packages/games.scm:9115
+#: gnu/packages/games.scm:10388
 msgid "Place 5 equal pieces together, but wait, there are 3 new ones"
-msgstr ""
+msgstr "Placez 5 objets ensemble, mais attends, il y a en 3 de plus"
 
-#: gnu/packages/games.scm:9116
+#: gnu/packages/games.scm:10389
 msgid ""
 "KLines is a simple but highly addictive one player game.\n"
 "\n"
@@ -6244,12 +7198,19 @@ msgid ""
 "\n"
 "This package is part of the KDE games module."
 msgstr ""
+"Klines est un jeu solo simple mais très addictif.\n"
+"\n"
+"Le joueur doit déplacer des balles colorées sur le plateau en les rassemblant par lignes de 5 de la même couleur.  Une fois la ligne complète, elle est supprimée du plateau, ce qui libère de la place précieuse.  En même temps, de nouvelles balles arrivent trois par trois après chaque coup, ce qui remplie le terrain.\n"
+"\n"
+"KLines est un jeu solo où le joueur supprime des balles colorées du plateau en les arrangeant en lignes de cinq ou plus.  Cependant, à chaque fois que le joueur déplace une balle, trois balles de plus sont ajoutées au plateau.\n"
+"\n"
+"Ce paquet fait partie du module des jeux de KDE."
 
-#: gnu/packages/games.scm:9159
+#: gnu/packages/games.scm:10432
 msgid "Action and puzzle solving game"
-msgstr ""
+msgstr "Jeu d'action de puzzle"
 
-#: gnu/packages/games.scm:9160
+#: gnu/packages/games.scm:10433
 msgid ""
 "KGoldrunner is an action game where the hero runs through a\n"
 "maze, climbs stairs, dig holes and dodges enemies in order to collect all the\n"
@@ -6262,12 +7223,17 @@ msgid ""
 "\n"
 "This package is part of the KDE games module."
 msgstr ""
+"KGoldrunner est un jeu d'action où le héro court à travers un labyrinthe, monte des escaliers, creuse des trous et évite les ennemis pour récolter toutes les pépites d'or et s'échapper vers le niveau suivant.  Vos ennemis cherchent aussi l'or.  Pire, ils vous pourchassent !\n"
+"\n"
+"KGoldrunner est un jeu de plateforme nerveux où le joueur doit naviguer dans un labyrinthe en récoltant des pépites d'or et en évitant ses ennemis.  Plusieurs packs de niveaux sont inclus, ainsi qu'un éditeur pour créer de nouveaux niveaux.\n"
+"\n"
+"Ce paquet fait partie du module des jeux de KDE."
 
-#: gnu/packages/games.scm:9203
+#: gnu/packages/games.scm:10476
 msgid "Three-in-a-row game"
-msgstr ""
+msgstr "Jeu trois à la suite"
 
-#: gnu/packages/games.scm:9204
+#: gnu/packages/games.scm:10477
 msgid ""
 "KDiamond is a three-in-a-row game like Bejeweled.  It\n"
 "features unlimited fun with randomly generated games and five difficulty\n"
@@ -6275,12 +7241,15 @@ msgid ""
 "\n"
 "This package is part of the KDE games module."
 msgstr ""
+"KDiamond est un jeu de trois à la suite comme Bejeweled.  Il permet de s'amuser indéfiniment avec des parties générées aléatoirement et cinq niveaux de difficulté avec un nombre variable de couleurs de diamants et de taille de plateau.\n"
+"\n"
+"Ce paquet fait partie du module des jeux de KDE."
 
-#: gnu/packages/games.scm:9241
+#: gnu/packages/games.scm:10514
 msgid "Place 4 pieces in a row"
-msgstr ""
+msgstr "Placez 4 jeton à la suite"
 
-#: gnu/packages/games.scm:9242
+#: gnu/packages/games.scm:10515
 msgid ""
 "KFourInLine is a board game for two players based on the\n"
 "Connect-Four game.\n"
@@ -6290,12 +7259,17 @@ msgid ""
 "\n"
 "This package is part of the KDE games module."
 msgstr ""
+"KFourInLine est un jeu de plateau à deux joueurs basé sur le jeu puissance 4.\n"
+"\n"
+"KFourInLine est un jeu où deux joueurs à tour de rôle placent des jetons sur une grille, le vainqueur étant celui à placer 4 jetons sur une ligne.\n"
+"\n"
+"Ce paquet fait partie du module des jeux de KDE."
 
-#: gnu/packages/games.scm:9281
+#: gnu/packages/games.scm:10554
 msgid "Find atoms in a grid by shooting electrons"
-msgstr ""
+msgstr "Trouvez des atomes dans une grille en tirant des électrons"
 
-#: gnu/packages/games.scm:9282
+#: gnu/packages/games.scm:10555
 msgid ""
 "KBlackbox is a game of hide and seek played on a grid of\n"
 "boxes where the computer has hidden several balls.  The position of the hidden\n"
@@ -6306,12 +7280,17 @@ msgid ""
 "\n"
 "This package is part of the KDE games module."
 msgstr ""
+"KBlackbox est un jeu de cache-cache sur une grille de boites où l'ordinateur a caché des balles.  La position des balles peut être déduite en tirant des rayons sur les boites.\n"
+"\n"
+"KBlackBox est un jeu de cache-cache sur une grille de boites, où le joueur tire des rayons pour déduire la position des objets cachés.\n"
+"\n"
+"Ce paquet fait partie du module des jeux de KDE."
 
-#: gnu/packages/games.scm:9322
+#: gnu/packages/games.scm:10595
 msgid "Turn the board pieces to get all computers connected"
-msgstr ""
+msgstr "Tournez les éléments du plateau pour connecter tous les ordinateurs entre eux"
 
-#: gnu/packages/games.scm:9323
+#: gnu/packages/games.scm:10596
 msgid ""
 "KNetWalk is a small game where you have to build up a\n"
 "computer network by rotating the wires to connect the terminals to the server.\n"
@@ -6323,12 +7302,17 @@ msgid ""
 "\n"
 "This package is part of the KDE games module."
 msgstr ""
+"KNetWolk est un petit jeu où vous devez construire un réseau informatique en tournant les câbles pour connecter les terminaux au serveur.  Lorsque le réseau est construit, une liste des meilleurs scores s'affiche pour pouvoir faire des compétitions.\n"
+"\n"
+"KNetwolk est un jeu de puzzle où le joueur arrange des sections de câbles pour connecter tous les ordinateurs sur le plateau.\n"
+"\n"
+"Ce paquet fait partie du module des jeux de KDE."
 
-#: gnu/packages/games.scm:9361
+#: gnu/packages/games.scm:10634
 msgid "Arcade bombing game"
-msgstr ""
+msgstr "Jeu de bombardement arcade"
 
-#: gnu/packages/games.scm:9362
+#: gnu/packages/games.scm:10635
 msgid ""
 "Bomber is a single player arcade game.\n"
 "\n"
@@ -6343,26 +7327,36 @@ msgid ""
 "\n"
 "This package is part of the KDE games module."
 msgstr ""
+"Bomber est un jeu d'arcade solo.\n"
+"\n"
+"Le joueur envahi plusieurs villes dans un avion qui descend.  Le but du jeu est de détruire tous les bâtiments et d'avancer au niveau suivant.  Chaque niveau est un peu plus difficile en augmentant la vitesse de l'avion et la hauteur des bâtiments.\n"
+"\n"
+"Bomber est un jeu où vous conduisez un vaisseau spatial et essayez de bombarder les bâtiments qui se trouvent en dessous de vous.  À chaque fois que le vaisseau fait un passage, il descend un peu plus.  Si vous n'avez pas détruit les bâtiments sur votre passage, vous vous crashez.\n"
+"\n"
+"Ce paquet fait partie du module des jeux de KDE."
 
-#: gnu/packages/games.scm:9407
+#: gnu/packages/games.scm:10680
 msgid "Bomberman clone"
 msgstr "Clone de Bomberman"
 
-#: gnu/packages/games.scm:9408
+#: gnu/packages/games.scm:10681
 msgid ""
 "Granatier is a clone of the classic Bomberman game,\n"
 "inspired by the work of the Clanbomber clone.\n"
 "\n"
 "This package is part of the KDE games module."
 msgstr ""
+"Granatier est un clone du jeu Bomberman classique, inspiré par le travail sur le clone Clanbomber.\n"
+"\n"
+"Ce paquet fait partie du module des jeux de KDE."
 
-#: gnu/packages/games.scm:9445
+#: gnu/packages/games.scm:10718
 msgid ""
 "Computerized version of the well known strategy board game\n"
 "'Risk'"
-msgstr ""
+msgstr "Version informatique du jeu de stratégie sur plateau « Risk »"
 
-#: gnu/packages/games.scm:9447
+#: gnu/packages/games.scm:10720
 msgid ""
 "KsirK is a multi-player network-enabled game.  The goal of\n"
 "the game is simply to conquer the world by attacking your neighbors with your\n"
@@ -6386,12 +7380,25 @@ msgid ""
 "\n"
 "This package is part of the KDE games module."
 msgstr ""
+"KsirK est un jeu multijoueur en réseau.  Le but du jeu est simplement de conquérir le monde en attaquant vos voisins avec vos armées.\n"
+"\n"
+"Au début du jeu, les pays sont distribués aux joueurs.  Chaque pays contient une armée représenté par un fantassin.  Chaque joueur a des armées à distribuer dans ses pays.  À chaque tour, chaque joueur peut attaquer ses voisin, pour conquérir un ou plusieurs pays.  À la fin de chaque tour, des armées bonus sont distribuées aux joueurs en fonction du nombre de pays qu'ils contrôlent.  Le vainqueur est le joueur qui aura conquis le monde entier.\n"
+"\n"
+"Fonctionnalités :\n"
+"@itemize\n"
+"@item Prise en charge de 1 à 6 joueurs humain ou machines\n"
+"@item Multijoueur en réseau\n"
+"@item Vous pouvez facilement créer des skins avec un éditeur SVG ou l'éditeur intégré\n"
+"@item Des nouveauté.  Vous pouvez facilement télécharger et installer de nouveaux skins\n"
+"@end itemize\n"
+"\n"
+"Ce paquet fait partie du module des jeux de KDE."
 
-#: gnu/packages/games.scm:9507
+#: gnu/packages/games.scm:10780
 msgid "Jigsaw puzzle game"
-msgstr ""
+msgstr "Jeu de puzzle"
 
-#: gnu/packages/games.scm:9508
+#: gnu/packages/games.scm:10781
 msgid ""
 "Palapeli is a jigsaw puzzle game.  Unlike other games in\n"
 "that genre, you are not limited to aligning pieces on imaginary grids.  The\n"
@@ -6402,12 +7409,17 @@ msgid ""
 "\n"
 "This package is part of the KDE games module."
 msgstr ""
+"Palapeli est un jeu de puzzle (littéralement).  Contrairement aux autres jeux du genre, vous n'êtes pas limités à placer des pièces sur une grille imaginaire.  Les pièces peuvent bouger librement.  Palapeli a aussi une vrai persistence, tout ce que vous faites est sauvegardé sur le disque immédiatement.\n"
+"\n"
+"Palapeli est le mot finnois pour puzzle.\n"
+"\n"
+"Ce paquet fait partie du module des jeux de KDE."
 
-#: gnu/packages/games.scm:9547
+#: gnu/packages/games.scm:10820
 msgid "Yahtzee dice game"
-msgstr ""
+msgstr "Jeu de dés Yahtzee"
 
-#: gnu/packages/games.scm:9548
+#: gnu/packages/games.scm:10821
 msgid ""
 "Kiriki is an addictive and fun dice game, designed to be\n"
 "played by as many as six players.\n"
@@ -6417,12 +7429,17 @@ msgid ""
 "\n"
 "This package is part of the KDE games module."
 msgstr ""
+"Kiriki est un jeu de dés amusant et addictif, conçu pour être joué jusqu'à six joueurs.\n"
+"\n"
+"Les participants doivent gagner des points en lançant cinq dés jusqu'à trois fois par tour pour faire des combinaisons et avoir le meilleur score.\n"
+"\n"
+"Ce paquet fait partie du module des jeux de KDE."
 
-#: gnu/packages/games.scm:9588
+#: gnu/packages/games.scm:10861
 msgid "Go board game"
-msgstr ""
+msgstr "Jeu de go"
 
-#: gnu/packages/games.scm:9589
+#: gnu/packages/games.scm:10862
 msgid ""
 "Kigo is an open-source implementation of the popular Go\n"
 "game.\n"
@@ -6438,12 +7455,19 @@ msgid ""
 "\n"
 "This package is part of the KDE games module."
 msgstr ""
+"Kigo est une implémentation libre du jeu de Go populaire.\n"
+"\n"
+"Le go est un jeu de plateau de stratégie pour deux joueurs.  Il est aussi connu sous le nom de igo (en japonais), weiqi ou wei chi'i (chinois) ou baduk (coréen).  Le go est remarquable par sa richesse et sa complexité stratégique malgré ses règles simples.  Le jeu se joue à deux joueurs qui placent des pierres blanche ou noires à tour de rôle (les jetons sont maintenant faits de verre ou de plastique) sur les intersections vides d'une grille de 19 lignes par 19 (9x9 ou 13x13 pour les jeux plus faciles).\n"
+"\n"
+"Vous devez aussi installer un moteur de go, p. ex. @code{gnugo}.\n"
+"\n"
+"Ce paquet fait partie du module des jeux de KDE."
 
-#: gnu/packages/games.scm:9634
+#: gnu/packages/games.scm:10907
 msgid "Game based on Rubik's Cube"
-msgstr ""
+msgstr "Jeu basé sur le Rubik's Cube"
 
-#: gnu/packages/games.scm:9635
+#: gnu/packages/games.scm:10908
 msgid ""
 "Kubrick is a game based on the Rubik's Cube puzzle.\n"
 "\n"
@@ -6455,12 +7479,17 @@ msgid ""
 "\n"
 "This package is part of the KDE games module."
 msgstr ""
+"Kubrick est un jeu basé sur le Rubik's Cube.\n"
+"\n"
+"La taille du cube varie entre 2x2x2 à 6x6x6, ou vous pouvez utiliser les « briques » non régulières en 5x3x2 ou « mats » en 6x4x1 ou 2x2x21.  Le jeu a plusieurs puzzles et différents niveaux de difficulté, ainsi que des démons de motifs intéressants et des solutions, ou vous pouvez fabriquer vos propres puzzles.  Le jeu offre la possibilité d'annuler et de refaire indéfiniment.\n"
+"\n"
+"Ce paquet fait partie du module des jeux de KDE."
 
-#: gnu/packages/games.scm:9675
+#: gnu/packages/games.scm:10948
 msgid "Lieutnant Skat card game"
-msgstr ""
+msgstr "Jeu de carte Lieutnant Skat"
 
-#: gnu/packages/games.scm:9676
+#: gnu/packages/games.scm:10949
 msgid ""
 "Lieutnant Skat (from German \"Offiziersskat\") is a fun and\n"
 "engaging card game for two players, where the second player is either live\n"
@@ -6470,12 +7499,17 @@ msgid ""
 "\n"
 "This package is part of the KDE games module."
 msgstr ""
+"Lieutnant Skat (de l'allemand « Offiziersskat ») est un jeu de carte amusant à deux joueurs, où le deuxième joueur est soit un opposant vivant, soit une intelligence artificielle incluse.\n"
+"\n"
+"Lieutnant Skat est une variante simplifiée du jeu Skat pour deux joueurs.\n"
+"\n"
+"Ce paquet fait partie du module des jeux de KDE."
 
-#: gnu/packages/games.scm:9714
+#: gnu/packages/games.scm:10987
 msgid "Pac-Man clone"
-msgstr ""
+msgstr "Clone de Pac-Man"
 
-#: gnu/packages/games.scm:9715
+#: gnu/packages/games.scm:10988
 msgid ""
 "Kapman is a clone of the well known game Pac-Man.\n"
 "\n"
@@ -6486,24 +7520,32 @@ msgid ""
 "\n"
 "This package is part of the KDE games module."
 msgstr ""
+"Kapman est un clone du jeu très connu Pac-Man.\n"
+"\n"
+"Vous devez vous déplacer dans un labyrinthe et manger les billes sans être capturé par un fantôme.  En mangeant un bonus, Kapman peut manger les fantômes pendant quelques secondes.  Lorsque le niveau est vidé, le joueur passe au niveau suivant avec une vitesse un peu plus élevée.\n"
+"\n"
+"Ce paquet fait partie du module des jeux de KDE."
 
-#: gnu/packages/games.scm:9754
+#: gnu/packages/games.scm:11027
 msgid "Two player game with shooting spaceships flying around a sun"
-msgstr ""
+msgstr "Jeu à deux joueurs avec des vaisseau en orbite autour d'une étoile"
 
-#: gnu/packages/games.scm:9755
+#: gnu/packages/games.scm:11028
 msgid ""
 "KSpaceduel is a space battle game for one or two players,\n"
 "where two ships fly around a star in a struggle to be the only survivor.\n"
 "\n"
 "This package is part of the KDE games module."
 msgstr ""
+"KSpaceduel est un jeu de bataille spatiale à un ou deux joueurs, où les deux vaisseaux se déplacent autour d'une étoile en essayant d'être le seul survivant.\n"
+"\n"
+"Ce paquet fait partie du module des jeux de KDE."
 
-#: gnu/packages/games.scm:9788
+#: gnu/packages/games.scm:11061
 msgid "Classic pen and paper game: five in a line"
-msgstr ""
+msgstr "Jeu sur papier classique : cinq en ligne"
 
-#: gnu/packages/games.scm:9789
+#: gnu/packages/games.scm:11062
 msgid ""
 "Bovo is a Gomoku (from Japanese 五目並べ - lit.  \"five\n"
 "points\") like game for two players, where the opponents alternate in placing\n"
@@ -6513,12 +7555,15 @@ msgid ""
 "\n"
 "This package is part of the KDE games module."
 msgstr ""
+"Bovo est un jeu comme le Gomoku (du japonais 五目並べ - lit.« cinq points ») pour deux joueurs, où les joueurs placent chacun leur tour leur pictogramme respectif sur le plateau.  Le vainqueur est celui qui réussi à compléter une ligne de cinq marqueur (aussi connu sous le nom de puissance cinq, cinq en ligne, X et O).\n"
+"\n"
+"Ce paquet fait partie du module des jeux de KDE."
 
-#: gnu/packages/games.scm:9827
+#: gnu/packages/games.scm:11100
 msgid "Port of the classic BSD console game robots"
 msgstr "Port du jeu classique de robots de BSD"
 
-#: gnu/packages/games.scm:9828
+#: gnu/packages/games.scm:11101
 msgid ""
 "Killbots is a simple game of evading killer robots.\n"
 "\n"
@@ -6531,12 +7576,17 @@ msgid ""
 "\n"
 "This package is part of the KDE games module."
 msgstr ""
+"Killbots est un jeu classique d'évasion de robots tueurs.\n"
+"\n"
+"Qui a créé les robots et pour quelle raison ils ont été programmés pour détruire, personne ne le sait.  Tout ce qu'on sait c'est que les robots sont légions et que leur seul objectif est de vous détruire.  Heureusement pour vous, leur créateur était plus préoccupé par la quantité que la qualité et les robots manquent cruellement d'intelligence.  Votre sagacité et un appareil à téléportation sont vos seules armes contre le flux sans fin d'automates sans cervelle.\n"
+"\n"
+"Ce paquet fait partie du module des jeux de KDE."
 
-#: gnu/packages/games.scm:9870
+#: gnu/packages/games.scm:11143
 msgid "Snake race played against the computer"
-msgstr ""
+msgstr "Course de serpent contre l'ordinateur"
 
-#: gnu/packages/games.scm:9871
+#: gnu/packages/games.scm:11144
 msgid ""
 "KSnakeDuel is a fast action game where you steer a snake\n"
 "which has to eat food.  While eating the snake grows.  But once a player\n"
@@ -6545,12 +7595,15 @@ msgid ""
 "\n"
 "This package is part of the KDE games module."
 msgstr ""
+"KSnakeDuel est un jeu d'action rapide où vous contrôlez un serpent qui doit manger de la nourriture.  En mangeant le serpent grossi.  Mais si le joueur se cogne contre l'autre serpent ou contre un mur, la partie est perdue.  Cela devient évidemment de plus en plus difficile à mesure que le serpent grandit.\n"
+"\n"
+"Ce paquet fait partie du module des jeux de KDE."
 
-#: gnu/packages/games.scm:9907
+#: gnu/packages/games.scm:11180
 msgid "Simple ball dodging game"
-msgstr ""
+msgstr "Jeu d'évitement de balles simple"
 
-#: gnu/packages/games.scm:9908
+#: gnu/packages/games.scm:11181
 msgid ""
 "In Kollision you use mouse to control a small blue ball in a\n"
 "closed space environment filled with small red balls, which move about\n"
@@ -6560,12 +7613,15 @@ msgid ""
 "\n"
 "This package is part of the KDE games module."
 msgstr ""
+"Dans Kollision vous utilisez la souris pour contrôler une petite balle bleue dans un espace fermé rempli de balles rouges, qui bougent de manière chaotique.  Votre but est d'éviter de toucher ces balles rouges avec votre balle bleue, sans quoi vous perdez.  Plus vous restez en jeu, plus vous gagnez de point.\n"
+"\n"
+"Ce paquet fait partie du module des jeux de KDE."
 
-#: gnu/packages/games.scm:9948
+#: gnu/packages/games.scm:11221
 msgid "Battleship board game with built-in game server"
-msgstr ""
+msgstr "Jeu de bataille navale avec un serveur de jeu intégré"
 
-#: gnu/packages/games.scm:9949
+#: gnu/packages/games.scm:11222
 msgid ""
 "KBattleship is a Battle Ship game for KDE.\n"
 "\n"
@@ -6575,12 +7631,17 @@ msgid ""
 "\n"
 "This package is part of the KDE games module."
 msgstr ""
+"KBattleship est un jeu de bataille navale pour KDE.\n"
+"\n"
+"Les bateaux sont placés sur un plateau qui représente la mer.  Les joueurs essayent de tirer sur les vaisseau adverses chacun leur tour sans savoir où ils se trouvent.  Le premier joueur à détruire tous les navires adverses a gagné.\n"
+"\n"
+"Ce paquet fait partie du module des jeux de KDE."
 
-#: gnu/packages/games.scm:9989
+#: gnu/packages/games.scm:11262
 msgid "Old reversi board game, also known as othello"
-msgstr ""
+msgstr "Ancien jeu de plateau reversi, aussi connu sous le nom d'othello"
 
-#: gnu/packages/games.scm:9990
+#: gnu/packages/games.scm:11263
 msgid ""
 "KReversi is a simple one player strategy game played\n"
 "against the computer.\n"
@@ -6592,12 +7653,17 @@ msgid ""
 "\n"
 "This package is part of the KDE games module."
 msgstr ""
+"KReversi est un simple jeu de stratégie en solo joué contre l'ordinateur.\n"
+"\n"
+"Si les pièces d'un joueurs sont capturées par l'adversaire, cette pièce est retournées pour révéler la couleur de l'adversaire.  Le vainqueur est déclaré lorsqu'un joueur a plus de pièces que l'autre et qu'il n'y a plus aucun coup possible.\n"
+"\n"
+"Ce paquet fait partie du module des jeux de KDE."
 
-#: gnu/packages/games.scm:10030
+#: gnu/packages/games.scm:11303
 msgid "Dots and Boxes game"
-msgstr ""
+msgstr "Jeu de points et de boites"
 
-#: gnu/packages/games.scm:10031
+#: gnu/packages/games.scm:11304
 msgid ""
 "KSquares is an implementation of the popular paper based\n"
 "game Squares.  Two players take turns connecting dots on a grid to complete\n"
@@ -6605,12 +7671,15 @@ msgid ""
 "\n"
 "This package is part of the KDE games module."
 msgstr ""
+"KSquares est une implémentation du jeu sur papier populaire des carrés.  Deux joueurs connectent des points chacun leur tour sur une grille pour créer des carrés.  Le joueur avec le plus de carrés gagne.\n"
+"\n"
+"Ce paquet fait partie du module des jeux de KDE."
 
-#: gnu/packages/games.scm:10068
+#: gnu/packages/games.scm:11341
 msgid "Simple tactical game for number-crunchers"
-msgstr ""
+msgstr "Jeu tactique simple pour le amoureux des chiffres"
 
-#: gnu/packages/games.scm:10069
+#: gnu/packages/games.scm:11342
 msgid ""
 "KJumpingcube is a simple tactical game for one or two\n"
 "players, played on a grid of numbered squares.  Each turn, players compete for\n"
@@ -6618,69 +7687,86 @@ msgid ""
 "\n"
 "This package is part of the KDE games module."
 msgstr ""
+"KJumpingcube est un jeu de tactique simple pour un ou deux joueurs, sur un plateau de nombres.  Chaque tour, les joueurs essayent de contrôler le plateau en capturant ou en ajoutant une valeur à une case.\n"
+"\n"
+"Ce paquet fait partie du module des jeux de KDE."
 
-#: gnu/packages/games.scm:10150
+#: gnu/packages/games.scm:11430
 msgid "2D motocross platform game"
-msgstr ""
+msgstr "Jeu de plateforme avec une motocross"
 
-#: gnu/packages/games.scm:10151
+#: gnu/packages/games.scm:11432
 msgid ""
 "X-Moto is a challenging 2D motocross platform game, where\n"
-"physics play an all important role in the gameplay.  You need to control your\n"
-"bike to its limit, if you want to have a chance finishing the more difficult\n"
-"challenges."
-msgstr ""
+"physics play an all important role in the gameplay.  You need to\n"
+"control your bike to its limit, if you want to have a chance finishing\n"
+"the more difficult challenges."
+msgstr "X-Moto est un jeu de plateforme en 2D stimulant, où la physique joue une part important dans l'expérience de jeu.  Vous devez contrôler une moto et la pousser à ses limites, si vous voulez avoir une chance de réussir les défis les plus difficiles."
 
-#: gnu/packages/games.scm:10198
+#: gnu/packages/games.scm:11478
 msgid "Graphical user interface to play chess"
 msgstr "Interface utilisateur graphique pour jouer aux échecs"
 
-#: gnu/packages/games.scm:10200
+#: gnu/packages/games.scm:11480
 msgid ""
 "Eboard is a chess board interface for ICS (Internet Chess Servers)\n"
 "and chess engines."
-msgstr ""
+msgstr "Eboard est une interface de plateau d'échecs pour ICS (Internet Chess Servers) et les moteurs d'échecs."
 
-#: gnu/packages/games.scm:10249
+#: gnu/packages/games.scm:11535
 msgid "Chess game database"
 msgstr "Base de données d'échecs"
 
-#: gnu/packages/games.scm:10251
+#: gnu/packages/games.scm:11537
 msgid ""
 "ChessX is a chess database.  With ChessX you can operate on your\n"
 "collection of chess games in many ways: browse, edit, add, organize, analyze,\n"
 "etc.  You can also play games on FICS or against an engine."
-msgstr ""
+msgstr "ChessX est une base de données d'échecs.  Avec ChessX vous pouvez gérer votre propre collections de jeux d'échecs de plusieurs façons : en navigant, modifiant, ajoutant, organisant, analysant les parties, etc.  Vous pouvez aussi jouer des parties sur FICS ou contre un moteur."
 
-#: gnu/packages/games.scm:10287
+#: gnu/packages/games.scm:11587
 msgid "Strong chess engine"
-msgstr ""
+msgstr "Moteur d'échecs puissant"
 
-#: gnu/packages/games.scm:10289
+#: gnu/packages/games.scm:11589
 msgid ""
-"Stockfish is a very strong chess engines.  It is much stronger than the\n"
+"Stockfish is a very strong chess engine.  It is much stronger than the\n"
 "best human chess grandmasters.  It can be used with UCI-compatible GUIs like\n"
 "ChessX."
-msgstr ""
+msgstr "Stockfish est un moteur d'échecs très puissant.  Il est plus fort que les meilleurs humains.  Il peut être utilisé avec les interfaces graphiques compatibles UCI comme ChessX."
 
-#: gnu/packages/games.scm:10318
+#: gnu/packages/games.scm:11618
 msgid "Violent point-and-click shooting game with nice effects"
-msgstr ""
+msgstr "Jeu point and click de tir violent avec des effets sympas"
 
-#: gnu/packages/games.scm:10320
+#: gnu/packages/games.scm:11620
 msgid ""
 "Barrage is a rather destructive action game that puts you on a shooting\n"
 "range with the objective to hit as many dummy targets as possible within\n"
 "3 minutes.  You control a gun that may either fire small or large grenades at\n"
 "soldiers, jeeps and tanks.  The gameplay is simple but it is not that easy to\n"
 "get high scores."
-msgstr ""
+msgstr "Barrage est un jeu d'action plutôt destructif qui vous place sur un champ de tir avec pour objectif de toucher le plus de cibles possible en 3 minutes.  Vous contrôlez une arme qui peut lancer des petites ou grande grenades sur des soldats, des jeeps et des tanks.  Le jeu est simple mais ce n'est pas si facile d'avoir de bons scores."
+
+#: gnu/packages/games.scm:11644
+msgid "Avoid evil foodstuffs and make burgers"
+msgstr "Évitez les mauvais ingrédients et faites des burgers"
 
-#: gnu/packages/games.scm:10349
+#: gnu/packages/games.scm:11646
+msgid ""
+"This is a clone of the classic game BurgerTime.  In it, you play\n"
+"the part of a chef who must create burgers by stepping repeatedly on\n"
+"the ingredients until they fall into place.  And to make things more\n"
+"complicated, you also must avoid evil animate food items while\n"
+"performing this task, with nothing but your trusty pepper shaker to\n"
+"protect you."
+msgstr "C'est un clone de BurgerTime.  Dedans, vous jouez un chef qui doit créer des burgers et trébucher sur les ingrédients jusqu'à ce qu'ils soient à leur place.  Et pour compliquer les choses, vous devez aussi éviter les ingrédients maléfiques animés tout en effectuant cette tache, avec rien d'autre que votre moulin à poivre pour vous protéger."
+
+#: gnu/packages/games.scm:11676
 msgid "Seven Kingdoms Ancient Adversaries: real-time strategy game"
-msgstr ""
+msgstr "Seven Kingdoms Ancient Adversaries : jeu de stratégie en temps réel"
 
-#: gnu/packages/games.scm:10351
+#: gnu/packages/games.scm:11678
 msgid ""
 "Seven Kingdoms, designed by Trevor Chan, brings a blend of Real-Time\n"
 "Strategy with the addition of trade, diplomacy, and espionage.  The game\n"
@@ -6688,13 +7774,13 @@ msgid ""
 "to conquer opponents by defeating them in war (with troops or machines),\n"
 "capturing their buildings with spies, or offering opponents money for their\n"
 "kingdom."
-msgstr ""
+msgstr "Seven Kingdoms, conçu par Trevor Chan, apporte un mélange de stratégie en temps réel et de commerce, diplomatie et d'espionnage.  Le jeu permet aux joueurs de se battre contre jusqu'à six autres royaumes et permet aux joueurs de conquérir leurs adversaires en les battant à la guerre (avec des troupes et des machines), en capturant leurs bâtiments avec des espions, ou en offrant d'acheter leur royaume."
 
-#: gnu/packages/games.scm:10465
+#: gnu/packages/games.scm:11792
 msgid "3D floor-tilting game"
-msgstr ""
+msgstr "Jeu en 3D où il faut faire pencher le sol"
 
-#: gnu/packages/games.scm:10467
+#: gnu/packages/games.scm:11794
 msgid ""
 "In the grand tradition of Marble Madness and Super Monkey Ball,\n"
 "Neverball has you guide a rolling ball through dangerous territory.  Balance\n"
@@ -6702,13 +7788,44 @@ msgid ""
 "and shovers to get to the goal.  Race against the clock to collect coins to\n"
 "earn extra balls.  Also included is Neverputt, which is a 3D miniature golf\n"
 "game."
+msgstr "Dans la grande tradition de Marble Madness et Super Monkey Ball, Neverball vous fait guider une bille à travers un territoire dangereux.  Gardez l'équilibre sur des ponts étroits, naviguez dans des labyrinthes, prenez des plateformes mouvantes, et évitez les éléments qui vous poussent ou vous attirent pour atteindre le but.  Faites la course contre la montre pour récupérer des pièces et gagner des billes supplémentaires.  Neverputt est aussi inclus, un jeu de minigolf en 3D."
+
+#: gnu/packages/games.scm:11869
+msgid "Texas holdem poker game"
+msgstr "Jeu de poker texas holdem"
+
+#: gnu/packages/games.scm:11871
+msgid ""
+"With PokerTH you can play the Texas holdem poker game, either against\n"
+"computer opponents or against real players online."
+msgstr "Avec PokerTH vous pouvez jouer au jeu de poker Texas Holdem, contre l'ordinateur ou contre des joueurs en ligne."
+
+#: gnu/packages/games.scm:11906
+msgid "Metroidvania game with vector graphics"
+msgstr "Jeu Metroidvania avec des graphiques vectoriels"
+
+#: gnu/packages/games.scm:11908
+msgid ""
+"Pilot your ship inside a planet to find and rescue the colonists trapped\n"
+"inside the Zenith Colony."
+msgstr "Pilotez votre vaisseau dans une planète pour trouver et secourir les colons piégés dans la colonie de Zenith."
+
+#: gnu/packages/games.scm:11938
+msgid "High performance X11 animated wallpaper setter"
+msgstr ""
+
+#: gnu/packages/games.scm:11939
+msgid ""
+"High performance animated desktop background setter for\n"
+"X11 that won't set your CPU on fire, drain your laptop battery, or lower video\n"
+"game FPS."
 msgstr ""
 
-#: gnu/packages/gcc.scm:351
+#: gnu/packages/gcc.scm:354
 msgid "GNU Compiler Collection"
 msgstr "GNU Compiler Collection"
 
-#: gnu/packages/gcc.scm:353
+#: gnu/packages/gcc.scm:356
 msgid ""
 "GCC is the GNU Compiler Collection.  It provides compiler front-ends\n"
 "for several languages, including C, C++, Objective-C, Fortran, Java, Ada, and\n"
@@ -6718,7 +7835,7 @@ msgstr ""
 "pour plusieurs langages, dont C, C++, Objective-C, Fortran, Java, Ada,\n"
 "et Go. Il inclut également le support de bibliothèques pour ces langages."
 
-#: gnu/packages/gcc.scm:507
+#: gnu/packages/gcc.scm:541
 msgid ""
 "GCC is the GNU Compiler Collection.  It provides compiler front-ends\n"
 "for several languages, including C, C++, Objective-C, Fortran, Ada, and Go.\n"
@@ -6728,25 +7845,54 @@ msgstr ""
 "pour plusieurs langages, dont C, C++, Objective-C, Fortran, Ada et Go.\n"
 "Il inclut également le support de bibliothèques pour ces langages."
 
-#: gnu/packages/gcc.scm:567
+#: gnu/packages/gcc.scm:615
 msgid "GNU C++ standard library"
 msgstr "Bibliothèque standard C++ GNU"
 
-#: gnu/packages/gcc.scm:598
+#: gnu/packages/gcc.scm:640
+msgid "Headers of GNU libstdc++"
+msgstr ""
+
+#: gnu/packages/gcc.scm:671
 msgid "Collection of subroutines used by various GNU programs"
 msgstr "Collection de sous-routines utilisées par divers programmes GNU"
 
-#: gnu/packages/gcc.scm:845
+#: gnu/packages/gcc.scm:764
+msgid "GCC library generating machine code on-the-fly at runtime"
+msgstr ""
+
+#: gnu/packages/gcc.scm:766
+msgid ""
+"This package is part of the GNU Compiler Collection and provides an\n"
+"embeddable library for generating machine code on-the-fly at runtime.  This\n"
+"shared library can then be dynamically-linked into bytecode interpreters and\n"
+"other such programs that want to generate machine code on-the-fly at run-time.\n"
+"It can also be used for ahead-of-time code generation for building standalone\n"
+"compilers.  The just-in-time (jit) part of the name is now something of a\n"
+"misnomer."
+msgstr ""
+
+#: gnu/packages/gcc.scm:778
+msgid "Go frontend to GCC"
+msgstr ""
+
+#: gnu/packages/gcc.scm:780
+msgid ""
+"This package is part of the GNU Compiler Collection and\n"
+"provides the GNU compiler for the Go programming language."
+msgstr ""
+
+#: gnu/packages/gcc.scm:879
 msgid "GNU libstdc++ documentation"
 msgstr "Documentation de GNU libstdc++"
 
-#: gnu/packages/gcc.scm:916
+#: gnu/packages/gcc.scm:969
 msgid "Manipulating sets and relations of integer points bounded by linear constraints"
 msgstr ""
 "Manipulation des ensembles et relations d'entiers liés par des\n"
 "contraintes linéaires"
 
-#: gnu/packages/gcc.scm:919
+#: gnu/packages/gcc.scm:972
 msgid ""
 "isl is a library for manipulating sets and relations of integer points\n"
 "bounded by linear constraints.  Supported operations on sets include\n"
@@ -6758,11 +7904,11 @@ msgid ""
 "dependence analysis and bounds on piecewise step-polynomials."
 msgstr ""
 
-#: gnu/packages/gcc.scm:983
+#: gnu/packages/gcc.scm:1036
 msgid "Library to generate code for scanning Z-polyhedra"
 msgstr "Bibliothèque poru générer du code pour analyser des Z-polyhèdres"
 
-#: gnu/packages/gcc.scm:985
+#: gnu/packages/gcc.scm:1038
 msgid ""
 "CLooG is a free software library to generate code for scanning\n"
 "Z-polyhedra.  That is, it finds a code (e.g., in C, FORTRAN...) that\n"
@@ -6788,11 +7934,11 @@ msgstr ""
 "contrôle complet de la qualité du code généré, mais CLooG est conçu pour\n"
 "éviter le sur-coût des contrôles et pour produire un code très efficace."
 
-#: gnu/packages/gcc.scm:1040
+#: gnu/packages/gcc.scm:1093
 msgid "Reference manual for the C programming language"
 msgstr "Manuel de référence pour le langage de programmation C"
 
-#: gnu/packages/gcc.scm:1042
+#: gnu/packages/gcc.scm:1095
 msgid ""
 "This is a reference manual for the C programming language, as\n"
 "implemented by the GNU C Compiler (gcc).  As a reference, it is not intended\n"
@@ -6804,11 +7950,11 @@ msgstr ""
 "n'est pas conçu comme un tutoriel du langage.  Il précise plutôt les\n"
 "constructions du langage. Les fonctions des bibliothèques ne sont pas incluses."
 
-#: gnu/packages/gettext.scm:112
+#: gnu/packages/gettext.scm:119
 msgid "Tools and documentation for translation (used to build other packages)"
 msgstr "Outils et documentation pour la traduction (utilisés pour construire d'autres paquets)"
 
-#: gnu/packages/gettext.scm:114
+#: gnu/packages/gettext.scm:121
 msgid ""
 "GNU Gettext is a package providing a framework for translating the\n"
 "textual output of programs into multiple languages.  It provides translators\n"
@@ -6821,15 +7967,15 @@ msgstr ""
 "bibliothèque pour charger les messages traduits depuis les catalogues.\n"
 "Presque tous les paquets GNU utilisent Gettext."
 
-#: gnu/packages/gettext.scm:146
+#: gnu/packages/gettext.scm:153
 msgid "Tools and documentation for translation"
 msgstr "Outils et documentation pour la traduction"
 
-#: gnu/packages/gettext.scm:171
+#: gnu/packages/gettext.scm:178
 msgid "Text styling library"
 msgstr ""
 
-#: gnu/packages/gettext.scm:173
+#: gnu/packages/gettext.scm:180
 msgid ""
 "GNU libtextstyle is a C library that provides an easy way to add styling\n"
 "to programs that produce output to a console or terminal emulator window.  It\n"
@@ -6837,11 +7983,11 @@ msgid ""
 "color, font attributes (weight, posture), or underlining."
 msgstr ""
 
-#: gnu/packages/gettext.scm:242
+#: gnu/packages/gettext.scm:251
 msgid "Scripts to ease maintenance of translations"
 msgstr "Scripts pour faciliter la maintenance des traductions"
 
-#: gnu/packages/gettext.scm:244
+#: gnu/packages/gettext.scm:253
 msgid ""
 "The po4a (PO for anything) project goal is to ease translations (and\n"
 "more interestingly, the maintenance of translations) using gettext tools on\n"
@@ -6851,11 +7997,32 @@ msgstr ""
 "la maintenance des traductions) en utilisant les outils gettext dans des domaines\n"
 "pour lesquels ils n'étaient pas conçus, comme la documentation."
 
-#: gnu/packages/gimp.scm:78
+#: gnu/packages/gimp.scm:127
+msgid "2D constrained Delaunay triangulation library"
+msgstr "Bibliothèque de triangulation de Delaunay contrainte en 2D"
+
+#: gnu/packages/gimp.scm:128
+msgid ""
+"Poly2Tri-C is a library for generating, refining and rendering\n"
+"2-Dimensional Constrained Delaunay Triangulations."
+msgstr ""
+
+#: gnu/packages/gimp.scm:159
+msgid "Microraptor GUI"
+msgstr ""
+
+#: gnu/packages/gimp.scm:160
+msgid ""
+"MrG is is a C API for creating user interfaces.  It can be\n"
+"used as an application writing environment or as an interactive canvas for part\n"
+"of a larger interface."
+msgstr ""
+
+#: gnu/packages/gimp.scm:194
 msgid "Image pixel format conversion library"
 msgstr "Bibliothèque de conversion des formats d'images pixelisés"
 
-#: gnu/packages/gimp.scm:80
+#: gnu/packages/gimp.scm:196
 msgid ""
 "Babl is a dynamic, any-to-any pixel format translation library.\n"
 "It allows converting between different methods of storing pixels, known as\n"
@@ -6875,22 +8042,22 @@ msgstr ""
 "existantes est aussi fournit ainsi que le cadre pour ajouter de nouveaux modèles\n"
 "de couleurs et des types de données."
 
-#: gnu/packages/gimp.scm:126
+#: gnu/packages/gimp.scm:242
 msgid "Graph based image processing framework"
 msgstr ""
 
-#: gnu/packages/gimp.scm:127
+#: gnu/packages/gimp.scm:243
 msgid ""
 "GEGL (Generic Graphics Library) provides infrastructure to\n"
 "do demand based cached non destructive image editing on larger than RAM\n"
 "buffers."
 msgstr ""
 
-#: gnu/packages/gimp.scm:200
+#: gnu/packages/gimp.scm:324
 msgid "GNU Image Manipulation Program"
 msgstr "Programme de Manipulation d'Image GNU"
 
-#: gnu/packages/gimp.scm:202
+#: gnu/packages/gimp.scm:326
 msgid ""
 "GIMP is an application for image manipulation tasks such as photo\n"
 "retouching, composition and authoring.  It supports all common image formats\n"
@@ -6898,11 +8065,11 @@ msgid ""
 "that is extensible via a plugin system."
 msgstr ""
 
-#: gnu/packages/gimp.scm:262
+#: gnu/packages/gimp.scm:386
 msgid "GIMP plug-in to edit image in fourier space"
 msgstr "Greffon GIMP pour éditer des images en espace de fourier"
 
-#: gnu/packages/gimp.scm:264
+#: gnu/packages/gimp.scm:388
 msgid ""
 "This package provides a simple plug-in to apply the fourier transform on\n"
 "an image, allowing you to work with the transformed image inside GIMP.  You\n"
@@ -6914,31 +8081,31 @@ msgstr ""
 "pouvez dessiner ou appliquer des filtres en espace de fourier et récupérer l'image\n"
 "modifiée avec n'importe quel transformée de fourier inverse."
 
-#: gnu/packages/gimp.scm:292
+#: gnu/packages/gimp.scm:416
 msgid "Artistic brushes library"
 msgstr ""
 
-#: gnu/packages/gimp.scm:293
+#: gnu/packages/gimp.scm:417
 msgid ""
 "Libmypaint, also called \"brushlib\", is a library for making\n"
 "brushstrokes which is used by MyPaint and GIMP."
 msgstr ""
 
-#: gnu/packages/gimp.scm:324
+#: gnu/packages/gimp.scm:439
 msgid "Default brushes for MyPaint"
 msgstr ""
 
-#: gnu/packages/gimp.scm:325
+#: gnu/packages/gimp.scm:440
 msgid ""
 "This package provides the default set of brushes for\n"
 "MyPaint."
 msgstr "Ce paquet fournit les pinceaux par défaut de MyPaint."
 
-#: gnu/packages/gimp.scm:386
+#: gnu/packages/gimp.scm:519
 msgid "GIMP plugins for texture synthesis"
 msgstr ""
 
-#: gnu/packages/gimp.scm:388
+#: gnu/packages/gimp.scm:521
 msgid ""
 "This package provides resynthesizer plugins for GIMP, which encompasses\n"
 "tools for healing selections (content-aware fill), enlarging the canvas and\n"
@@ -6946,22 +8113,186 @@ msgid ""
 "transferring the style of an image."
 msgstr ""
 
-#: gnu/packages/gnome.scm:247
+#: gnu/packages/gnome.scm:270
+msgid "UPnP IGD for GNOME"
+msgstr ""
+
+#: gnu/packages/gnome.scm:271
+msgid "GUPnP-IGD is a library to handle UPnP IGD port mapping."
+msgstr ""
+
+#: gnu/packages/gnome.scm:325
 msgid "CD/DVD burning tool for Gnome"
 msgstr ""
 
-#: gnu/packages/gnome.scm:248
+#: gnu/packages/gnome.scm:326
 msgid ""
 "Brasero is an application to burn CD/DVD for the Gnome\n"
 "Desktop.  It is designed to be as simple as possible and has some unique\n"
 "features to enable users to create their discs easily and quickly."
 msgstr ""
 
-#: gnu/packages/gnome.scm:288
+#: gnu/packages/gnome.scm:371
+msgid "Cloudproviders Integration API"
+msgstr ""
+
+#: gnu/packages/gnome.scm:372
+msgid ""
+"Libcloudproviders is a DBus API that allows cloud storage sync\n"
+"clients to expose their services.  Clients such as file managers and desktop\n"
+"environments can then provide integrated access to the cloud providers\n"
+"services."
+msgstr ""
+
+#: gnu/packages/gnome.scm:420
+msgid "Glib library for feeds"
+msgstr "Bibliothèque Glib pour les flux"
+
+#: gnu/packages/gnome.scm:421
+msgid ""
+"LibGRSS is a Glib abstraction to handle feeds in RSS, Atom,\n"
+"and other formats."
+msgstr ""
+
+#: gnu/packages/gnome.scm:448
+msgid "Common JS Modules"
+msgstr ""
+
+#: gnu/packages/gnome.scm:449
+msgid ""
+"GNOME-JS-Common provides common modules for GNOME JavaScript\n"
+"bindings."
+msgstr ""
+
+#: gnu/packages/gnome.scm:531
+msgid "GObject JavaScriptCore bridge"
+msgstr ""
+
+#: gnu/packages/gnome.scm:532
+msgid ""
+"Seed is a library and interpreter, dynamically bridging\n"
+"(through GObjectIntrospection) the WebKit JavaScriptCore engine, with the\n"
+"GNOME platform.  It serves as something which enables you to write standalone\n"
+"applications in JavaScript, or easily enable your application to be extensible\n"
+"in JavaScript."
+msgstr ""
+
+#: gnu/packages/gnome.scm:590
+msgid "Media management library"
+msgstr ""
+
+#: gnu/packages/gnome.scm:591
+msgid ""
+"Libdmapsharing is a library which allows programs to access,\n"
+"share and control the playback of media content using DMAP (DAAP, DPAP & DACP).\n"
+"It is written in C using GObject and libsoup."
+msgstr ""
+
+#: gnu/packages/gnome.scm:625
+msgid "GLib Testing Framework"
+msgstr ""
+
+#: gnu/packages/gnome.scm:626
+msgid ""
+"GTX is a small collection of convenience functions intended to\n"
+"enhance the GLib testing framework.  With specific emphasis on easing the pain\n"
+"of writing test cases for asynchronous interactions."
+msgstr ""
+
+#: gnu/packages/gnome.scm:702
+msgid "Model to synchronize multiple instances over DBus"
+msgstr ""
+
+#: gnu/packages/gnome.scm:703
+msgid ""
+"Dee is a library that uses DBus to provide objects allowing\n"
+"you to create Model-View-Controller type programs across DBus.  It also consists\n"
+"of utility objects which extend DBus allowing for peer-to-peer discoverability\n"
+"of known objects without needing a central registrar."
+msgstr ""
+
+#: gnu/packages/gnome.scm:783
+msgid "Desktop Activity Logging"
+msgstr ""
+
+#: gnu/packages/gnome.scm:784
+msgid ""
+"Zeitgeist is a service which logs the users’s activities and\n"
+"events, anywhere from files opened to websites visited and conversations.  It\n"
+"makes this information readily available for other applications to use.  It is\n"
+"able to establish relationships between items based on similarity and usage\n"
+"patterns."
+msgstr ""
+
+#: gnu/packages/gnome.scm:859
+msgid "Access, organize and share your photos on GNOME desktop"
+msgstr ""
+
+#: gnu/packages/gnome.scm:860
+msgid ""
+"GNOME Photos is a simple and elegant replacement for using a\n"
+"file manager to deal with photos.  Enhance, crop and edit in a snap.  Seamless\n"
+"cloud integration is offered through GNOME Online Accounts."
+msgstr ""
+
+#: gnu/packages/gnome.scm:921
+msgid "Simple music player for GNOME desktop"
+msgstr ""
+
+#: gnu/packages/gnome.scm:922
+msgid ""
+"GNOME Music is the new GNOME music playing application that\n"
+"aims to combine an elegant and immersive browsing experience with simple\n"
+"and straightforward controls."
+msgstr ""
+
+#: gnu/packages/gnome.scm:942
+msgid "External Data Representation Library"
+msgstr "Bibliothèque de représentation de données externes"
+
+#: gnu/packages/gnome.scm:943
+msgid ""
+"PortableXDR is an implementation of External Data\n"
+"Representation (XDR) Library.  It is a standard data serialization format, for\n"
+"uses such as computer network protocols.  It allows data to be transferred\n"
+"between different kinds of computer systems."
+msgstr ""
+
+#: gnu/packages/gnome.scm:980
+msgid "Text editor product line"
+msgstr ""
+
+#: gnu/packages/gnome.scm:981
+msgid ""
+"Tepl is a library that eases the development of\n"
+"GtkSourceView-based text editors and IDEs."
+msgstr ""
+
+#: gnu/packages/gnome.scm:1013
+msgid "Popup dialogs for Kerberos 5"
+msgstr ""
+
+#: gnu/packages/gnome.scm:1014
+msgid ""
+"krb5-auth-dialog is a simple dialog that monitors Kerberos\n"
+"tickets, and pops up a dialog when they are about to expire."
+msgstr ""
+
+#: gnu/packages/gnome.scm:1041
+msgid "Notification Daemon for GNOME Desktop"
+msgstr "Démon de notification du bureau GNOME"
+
+#: gnu/packages/gnome.scm:1042
+msgid ""
+"Notification-Daemon is the server implementation of the\n"
+"freedesktop.org desktop notification specification."
+msgstr ""
+
+#: gnu/packages/gnome.scm:1082
 msgid "Module of GNOME C++ bindings"
 msgstr ""
 
-#: gnu/packages/gnome.scm:289
+#: gnu/packages/gnome.scm:1083
 msgid ""
 "The mm-common module provides the build infrastructure\n"
 "and utilities shared among the GNOME C++ binding libraries.  Release\n"
@@ -6969,131 +8300,131 @@ msgid ""
 "Library reference documentation."
 msgstr ""
 
-#: gnu/packages/gnome.scm:318
+#: gnu/packages/gnome.scm:1123
 msgid "WebDav server implementation using libsoup"
 msgstr ""
 
-#: gnu/packages/gnome.scm:319
+#: gnu/packages/gnome.scm:1124
 msgid ""
 "PhoDav was initially developed as a file-sharing mechanism for Spice,\n"
 "but it is generic enough to be reused in other projects,\n"
 "in particular in the GNOME desktop."
 msgstr ""
 
-#: gnu/packages/gnome.scm:371
+#: gnu/packages/gnome.scm:1176
 msgid "Color profile manager for the GNOME desktop"
 msgstr ""
 
-#: gnu/packages/gnome.scm:372
+#: gnu/packages/gnome.scm:1177
 msgid ""
 "GNOME Color Manager is a session framework that makes\n"
 "it easy to manage, install and generate color profiles\n"
 "in the GNOME desktop."
 msgstr ""
 
-#: gnu/packages/gnome.scm:406
+#: gnu/packages/gnome.scm:1211
 msgid "Web Crawlers for GNOME"
 msgstr ""
 
-#: gnu/packages/gnome.scm:407
+#: gnu/packages/gnome.scm:1212
 msgid ""
 "GNOME Online Miners provides a set of crawlers that\n"
 "go through your online content and index them locally in Tracker.\n"
 "It has miners for Facebook, Flickr, Google, ownCloud and SkyDrive."
 msgstr ""
 
-#: gnu/packages/gnome.scm:436
+#: gnu/packages/gnome.scm:1241
 msgid ""
 "GObject-based API over @acronym{SSDP, Simple Service Discovery\n"
 "Protocol} for GNOME"
 msgstr ""
 
-#: gnu/packages/gnome.scm:438
+#: gnu/packages/gnome.scm:1243
 msgid ""
 "This package provides a library to handle resource discovery\n"
 "and announcement over @acronym{SSDP, Simple Service Discovery Protocol} and\n"
 "a debugging tool, @command{gssdp-device-sniffer}."
 msgstr ""
 
-#: gnu/packages/gnome.scm:468
+#: gnu/packages/gnome.scm:1273
 msgid "PnP API for GNOME"
 msgstr ""
 
-#: gnu/packages/gnome.scm:469
+#: gnu/packages/gnome.scm:1274
 msgid ""
 "This package provides GUPnP, an object-oriented framework\n"
 "for creating UPnP devices and control points, written in C using\n"
 "@code{GObject} and @code{libsoup}."
 msgstr ""
 
-#: gnu/packages/gnome.scm:502
+#: gnu/packages/gnome.scm:1307
 msgid "GUPnP DLNA for GNOME"
 msgstr ""
 
-#: gnu/packages/gnome.scm:503
+#: gnu/packages/gnome.scm:1308
 msgid ""
 "This package provides a small utility library to\n"
 "support DLNA-related tasks such as media profile guessing, transcoding to a\n"
 "given profile, etc.  DLNA is a subset of UPnP A/V."
 msgstr ""
 
-#: gnu/packages/gnome.scm:532
+#: gnu/packages/gnome.scm:1337
 msgid "GUPnP A/V for GNOME"
 msgstr ""
 
-#: gnu/packages/gnome.scm:533
+#: gnu/packages/gnome.scm:1338
 msgid ""
 "This package provides a small library for handling\n"
 "and implementation of UPnP A/V profiles."
 msgstr ""
 
-#: gnu/packages/gnome.scm:560
+#: gnu/packages/gnome.scm:1365
 msgid "Media art library for the GNOME desktop"
 msgstr ""
 
-#: gnu/packages/gnome.scm:562
+#: gnu/packages/gnome.scm:1367
 msgid ""
 "The libmediaart library is the foundation for media art caching,\n"
 "extraction, and lookup for applications on the desktop."
 msgstr ""
 
-#: gnu/packages/gnome.scm:625
+#: gnu/packages/gnome.scm:1430
 msgid "Initial setup wizard for GNOME desktop"
 msgstr ""
 
-#: gnu/packages/gnome.scm:626
+#: gnu/packages/gnome.scm:1431
 msgid ""
 "This package provides a set-up wizard when a\n"
 "user logs into GNOME for the first time.  It typically provides a\n"
 "tour of all gnome components and allows the user to set them up."
 msgstr ""
 
-#: gnu/packages/gnome.scm:665
+#: gnu/packages/gnome.scm:1470
 msgid "File sharing for GNOME desktop"
 msgstr ""
 
-#: gnu/packages/gnome.scm:666
+#: gnu/packages/gnome.scm:1471
 msgid ""
 "GNOME User Share is a small package that binds together\n"
 "various free software projects to bring easy to use user-level file\n"
 "sharing to the masses."
 msgstr ""
 
-#: gnu/packages/gnome.scm:720
+#: gnu/packages/gnome.scm:1525
 msgid "File previewer for the GNOME desktop"
 msgstr ""
 
-#: gnu/packages/gnome.scm:721
+#: gnu/packages/gnome.scm:1526
 msgid ""
 "Sushi is a DBus-activated service that allows applications to\n"
 "preview files on the GNOME desktop."
 msgstr ""
 
-#: gnu/packages/gnome.scm:760
+#: gnu/packages/gnome.scm:1565
 msgid "Share audio, video, and pictures with other devices"
 msgstr ""
 
-#: gnu/packages/gnome.scm:762
+#: gnu/packages/gnome.scm:1567
 msgid ""
 "Rygel is a home media solution (@dfn{UPnP AV MediaServer and\n"
 "MediaRenderer}) for GNOME that allows you to easily share audio, video, and\n"
@@ -7104,54 +8435,66 @@ msgid ""
 "client devices can handle."
 msgstr ""
 
-#: gnu/packages/gnome.scm:804
+#: gnu/packages/gnome.scm:1619
 msgid "Network Manager's applet library"
 msgstr ""
 
-#: gnu/packages/gnome.scm:805
+#: gnu/packages/gnome.scm:1620
 msgid ""
 "Libnma is an applet library for Network Manager.  It was\n"
 "initially part of network-manager-applet and has now become a separate\n"
 "project."
 msgstr ""
 
-#: gnu/packages/gnome.scm:831
+#: gnu/packages/gnome.scm:1645
 msgid "Menu support for GNOME desktop"
 msgstr ""
 
-#: gnu/packages/gnome.scm:832
+#: gnu/packages/gnome.scm:1646
 msgid ""
 "GNOME Menus contains the libgnome-menu library, the layout\n"
 "configuration files for the GNOME menu, as well as a simple menu editor."
 msgstr ""
 
-#: gnu/packages/gnome.scm:907
+#: gnu/packages/gnome.scm:1720
 msgid "Simple backup tool, for regular encrypted backups"
 msgstr ""
 
-#: gnu/packages/gnome.scm:909
+#: gnu/packages/gnome.scm:1722
 msgid ""
 "Déjà Dup is a simple backup tool, for regular encrypted backups.  It\n"
 "uses duplicity as the backend, which supports incremental backups and storage\n"
 "either on a local, or remote machine via a number of methods."
 msgstr ""
 
-#: gnu/packages/gnome.scm:932
+#: gnu/packages/gnome.scm:1757
+msgid "Two-pane graphical file manager for the GNOME desktop"
+msgstr "Gestionnaire de fichiers à deux panneaux du bureau GNOME"
+
+#: gnu/packages/gnome.scm:1759
+msgid ""
+"GNOME Commander is a two-pane graphical file manager using GNOME\n"
+"libraries.  It aims to fulfill the demands of more advanced users who\n"
+"like to focus on file management, their work through special applications\n"
+"and running smart commands."
+msgstr ""
+
+#: gnu/packages/gnome.scm:1783
 msgid "User documentation for the GNOME desktop"
 msgstr "Documentation du bureau GNOME"
 
-#: gnu/packages/gnome.scm:934
+#: gnu/packages/gnome.scm:1785
 msgid ""
 "The GNOME User Documentation explains how to use the GNOME desktop and its\n"
 "components.  It covers usage and setup of the core GNOME programs by end-users\n"
 "and system administrators."
 msgstr ""
 
-#: gnu/packages/gnome.scm:958
+#: gnu/packages/gnome.scm:1809
 msgid "Help to get new users started with the GNOME desktop"
 msgstr ""
 
-#: gnu/packages/gnome.scm:960
+#: gnu/packages/gnome.scm:1811
 msgid ""
 "The GNOME Getting Started Documentation contains GNOME's intuitive\n"
 "\"Getting Started\" tour, with video guides, that can be viewed with Yelp.\n"
@@ -7160,11 +8503,11 @@ msgid ""
 "useful as a tutorial and users' guide for new or less experienced users."
 msgstr ""
 
-#: gnu/packages/gnome.scm:1011
+#: gnu/packages/gnome.scm:1855
 msgid "Diagram creation for GNOME"
 msgstr ""
 
-#: gnu/packages/gnome.scm:1012
+#: gnu/packages/gnome.scm:1856
 msgid ""
 "Dia can be used to draw different types of diagrams, and\n"
 "includes support for UML static structure diagrams (class diagrams), entity\n"
@@ -7172,44 +8515,44 @@ msgid ""
 "formats like PNG, SVG, PDF and EPS."
 msgstr ""
 
-#: gnu/packages/gnome.scm:1061
+#: gnu/packages/gnome.scm:1905
 msgid "Library for accessing online service APIs"
 msgstr "Bibliothèque d'accès à des API de services en ligne"
 
-#: gnu/packages/gnome.scm:1063
+#: gnu/packages/gnome.scm:1907
 msgid ""
 "libgdata is a GLib-based library for accessing online service APIs using\n"
 "the GData protocol — most notably, Google's services.  It provides APIs to\n"
 "access the common Google services, and has full asynchronous support."
 msgstr ""
 
-#: gnu/packages/gnome.scm:1095
+#: gnu/packages/gnome.scm:1939
 msgid "GObject-based library for handling and rendering XPS documents"
 msgstr ""
 
-#: gnu/packages/gnome.scm:1097
+#: gnu/packages/gnome.scm:1941
 msgid ""
 "libgxps is a GObject-based library for handling and rendering XPS\n"
 "documents.  This package also contains binaries that can convert XPS documents\n"
 "to other formats."
 msgstr ""
 
-#: gnu/packages/gnome.scm:1140
+#: gnu/packages/gnome.scm:1984
 msgid "Find and insert unusual characters"
 msgstr ""
 
-#: gnu/packages/gnome.scm:1141
+#: gnu/packages/gnome.scm:1985
 msgid ""
 "Characters is a simple utility application to find\n"
 "and insert unusual characters.  It allows you to quickly find the\n"
 "character you are looking for by searching for keywords."
 msgstr ""
 
-#: gnu/packages/gnome.scm:1161
+#: gnu/packages/gnome.scm:2005
 msgid "Bootstrap GNOME modules built from Git"
 msgstr ""
 
-#: gnu/packages/gnome.scm:1162
+#: gnu/packages/gnome.scm:2006
 msgid ""
 "gnome-common contains various files needed to bootstrap\n"
 "GNOME modules built from Git.  It contains a common \"autogen.sh\" script that\n"
@@ -7217,21 +8560,21 @@ msgid ""
 "commonly used macros."
 msgstr ""
 
-#: gnu/packages/gnome.scm:1216
+#: gnu/packages/gnome.scm:2065
 msgid "GNOME's integrated address book"
 msgstr ""
 
-#: gnu/packages/gnome.scm:1218
+#: gnu/packages/gnome.scm:2067
 msgid ""
 "GNOME Contacts organizes your contact information from online and\n"
 "offline sources, providing a centralized place for managing your contacts."
 msgstr ""
 
-#: gnu/packages/gnome.scm:1281
+#: gnu/packages/gnome.scm:2144
 msgid "Libgnome-desktop, gnome-about, and desktop-wide documents"
 msgstr ""
 
-#: gnu/packages/gnome.scm:1283
+#: gnu/packages/gnome.scm:2146
 msgid ""
 "The libgnome-desktop library provides API shared by several applications\n"
 "on the desktop, but that cannot live in the platform for various reasons.\n"
@@ -7241,60 +8584,68 @@ msgid ""
 "The gnome-about program helps find which version of GNOME is installed."
 msgstr ""
 
-#: gnu/packages/gnome.scm:1316
+#: gnu/packages/gnome.scm:2179
 msgid "Documentation utilities for the Gnome project"
 msgstr "Utilitaires de documentation pour le projet Gnome"
 
-#: gnu/packages/gnome.scm:1318
+#: gnu/packages/gnome.scm:2181
 msgid ""
 "Gnome-doc-utils is a collection of documentation utilities for the\n"
 "Gnome project.  It includes xml2po tool which makes it easier to translate\n"
 "and keep up to date translations of documentation."
 msgstr ""
 
-#: gnu/packages/gnome.scm:1365
+#: gnu/packages/gnome.scm:2230
 msgid "Disk management utility for GNOME"
 msgstr ""
 
-#: gnu/packages/gnome.scm:1366
+#: gnu/packages/gnome.scm:2231
 msgid "Disk management utility for GNOME."
 msgstr ""
 
-#: gnu/packages/gnome.scm:1399
+#: gnu/packages/gnome.scm:2264
 msgid "GNOME Fonts"
 msgstr ""
 
-#: gnu/packages/gnome.scm:1400
+#: gnu/packages/gnome.scm:2265
 msgid ""
 "Application to show you the fonts installed on your computer\n"
 "for your use as thumbnails.  Selecting any thumbnails shows the full view of how\n"
 "the font would look under various sizes."
 msgstr ""
 
-#: gnu/packages/gnome.scm:1466
+#: gnu/packages/gnome.scm:2318
 msgid "Libraries for displaying certificates and accessing key stores"
 msgstr ""
 
-#: gnu/packages/gnome.scm:1468
+#: gnu/packages/gnome.scm:2320
 msgid ""
 "The GCR package contains libraries used for displaying certificates and\n"
 "accessing key stores.  It also provides the viewer for crypto files on the\n"
 "GNOME Desktop."
 msgstr ""
 
-#: gnu/packages/gnome.scm:1497
+#: gnu/packages/gnome.scm:2358
+msgid "GNOME docking library"
+msgstr "Bibliothèque de docking de GNOME"
+
+#: gnu/packages/gnome.scm:2359
+msgid "This library provides docking features for gtk+."
+msgstr ""
+
+#: gnu/packages/gnome.scm:2406
 msgid "Accessing passwords from the GNOME keyring"
 msgstr ""
 
-#: gnu/packages/gnome.scm:1499
+#: gnu/packages/gnome.scm:2408
 msgid "Client library to access passwords from the GNOME keyring."
 msgstr ""
 
-#: gnu/packages/gnome.scm:1569
+#: gnu/packages/gnome.scm:2478
 msgid "Daemon to store passwords and encryption keys"
 msgstr ""
 
-#: gnu/packages/gnome.scm:1571
+#: gnu/packages/gnome.scm:2480
 msgid ""
 "gnome-keyring is a program that keeps passwords and other secrets for\n"
 "users.  It is run as a daemon in the session, similar to ssh-agent, and other\n"
@@ -7305,11 +8656,11 @@ msgid ""
 "forgotten when the session ends."
 msgstr ""
 
-#: gnu/packages/gnome.scm:1643
+#: gnu/packages/gnome.scm:2551
 msgid "GNOME's document viewer"
 msgstr ""
 
-#: gnu/packages/gnome.scm:1645
+#: gnu/packages/gnome.scm:2553
 msgid ""
 "Evince is a document viewer for multiple document formats.  It\n"
 "currently supports PDF, PostScript, DjVu, TIFF and DVI.  The goal\n"
@@ -7317,50 +8668,79 @@ msgid ""
 "on the GNOME Desktop with a single simple application."
 msgstr ""
 
-#: gnu/packages/gnome.scm:1689
+#: gnu/packages/gnome.scm:2597
 msgid "GNOME settings for various desktop components"
 msgstr ""
 
-#: gnu/packages/gnome.scm:1691
+#: gnu/packages/gnome.scm:2599
 msgid ""
 "Gsettings-desktop-schemas contains a collection of GSettings schemas\n"
 "for settings shared by various components of the GNOME desktop."
 msgstr ""
 
-#: gnu/packages/gnome.scm:1725
+#: gnu/packages/gnome.scm:2633
+msgid "Library to easily handle complex data structures"
+msgstr ""
+
+#: gnu/packages/gnome.scm:2635
+msgid ""
+"Liblarch is a Python library built to easily handle data structures such\n"
+"as lists, trees and acyclic graphs.  There's also a GTK binding that will\n"
+"allow you to use your data structure in a @code{Gtk.Treeview}.\n"
+"\n"
+"Liblarch support multiple views of one data structure and complex filtering.\n"
+"That way, you have a clear separation between your data themselves (Model)\n"
+"and how they are displayed (View)."
+msgstr ""
+
+#: gnu/packages/gnome.scm:2691
+msgid "Personal organizer for the GNOME desktop"
+msgstr "Agenda du bureau GNOME"
+
+#: gnu/packages/gnome.scm:2693
+msgid ""
+"Getting Things GNOME! (GTG) is a personal tasks and TODO list items\n"
+"organizer for the GNOME desktop environment inspired by the Getting Things\n"
+"Done (GTD) methodology.  GTG is designed with flexibility, adaptability,\n"
+"and ease of use in mind so it can be used as more than just GTD software.\n"
+"GTG is intended to help you track everything you need to do and need to\n"
+"know, from small tasks to large projects."
+msgstr ""
+
+#: gnu/packages/gnome.scm:2731
 msgid "Utility to implement the Freedesktop Icon Naming Specification"
 msgstr ""
 
-#: gnu/packages/gnome.scm:1727
+#: gnu/packages/gnome.scm:2733
 msgid ""
 "To help with the transition to the Freedesktop Icon Naming\n"
 "Specification, the icon naming utility maps the icon names used by the\n"
 "GNOME and KDE desktops to the icon names proposed in the specification."
 msgstr ""
 
-#: gnu/packages/gnome.scm:1757
+#: gnu/packages/gnome.scm:2763
 msgid "GNOME icon theme"
 msgstr ""
 
-#: gnu/packages/gnome.scm:1758
+#: gnu/packages/gnome.scm:2764
 msgid "Icons for the GNOME desktop."
 msgstr ""
 
-#: gnu/packages/gnome.scm:1795
+#: gnu/packages/gnome.scm:2801
 msgid "Tango icon theme"
 msgstr ""
 
-#: gnu/packages/gnome.scm:1796
+#: gnu/packages/gnome.scm:2802
 msgid ""
 "This is an icon theme that follows the Tango visual\n"
 "guidelines."
 msgstr ""
 
-#: gnu/packages/gnome.scm:1822
+#: gnu/packages/gnome.scm:2831
 msgid "Database of common MIME types"
 msgstr ""
 
-#: gnu/packages/gnome.scm:1824
+#: gnu/packages/gnome.scm:2833
 msgid ""
 "The shared-mime-info package contains the core database of common types\n"
 "and the update-mime-database command used to extend it.  It requires glib2 to\n"
@@ -7369,30 +8749,30 @@ msgid ""
 "database is translated at Transifex."
 msgstr ""
 
-#: gnu/packages/gnome.scm:1906
+#: gnu/packages/gnome.scm:2916
 msgid "CUPS administration tool"
 msgstr ""
 
-#: gnu/packages/gnome.scm:1908
+#: gnu/packages/gnome.scm:2918
 msgid ""
 "system-config-printer is a CUPS administration tool.  It's written in\n"
 "Python using GTK+, and uses the @acronym{IPP, Internet Printing Protocol} when\n"
 "configuring CUPS."
 msgstr ""
 
-#: gnu/packages/gnome.scm:1930
+#: gnu/packages/gnome.scm:2940
 msgid "Freedesktop icon theme"
 msgstr ""
 
-#: gnu/packages/gnome.scm:1932
+#: gnu/packages/gnome.scm:2942
 msgid "Freedesktop icon theme."
 msgstr ""
 
-#: gnu/packages/gnome.scm:1964
+#: gnu/packages/gnome.scm:2974
 msgid "GNOME desktop notification library"
 msgstr ""
 
-#: gnu/packages/gnome.scm:1966
+#: gnu/packages/gnome.scm:2976
 msgid ""
 "Libnotify is a library that sends desktop notifications to a\n"
 "notification daemon, as defined in the Desktop Notifications spec.  These\n"
@@ -7400,11 +8780,11 @@ msgid ""
 "some form of information without getting in the user's way."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2012
+#: gnu/packages/gnome.scm:3022
 msgid "GObject plugin system"
 msgstr ""
 
-#: gnu/packages/gnome.scm:2014
+#: gnu/packages/gnome.scm:3024
 msgid ""
 "Libpeas is a gobject-based plugin engine, targeted at giving every\n"
 "application the chance to assume its own extensibility.  It also has a set of\n"
@@ -7413,33 +8793,33 @@ msgid ""
 "API."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2053
+#: gnu/packages/gnome.scm:3063
 msgid "OpenGL extension to GTK+"
 msgstr ""
 
-#: gnu/packages/gnome.scm:2054
+#: gnu/packages/gnome.scm:3064
 msgid ""
 "GtkGLExt is an OpenGL extension to GTK+.  It provides\n"
 "additional GDK objects which support OpenGL rendering in GTK+ and GtkWidget\n"
 "API add-ons to make GTK+ widgets OpenGL-capable."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2097
+#: gnu/packages/gnome.scm:3115
 msgid "GTK+ rapid application development tool"
 msgstr ""
 
-#: gnu/packages/gnome.scm:2098
+#: gnu/packages/gnome.scm:3116
 msgid ""
 "Glade is a rapid application development (RAD) tool to\n"
 "enable quick & easy development of user interfaces for the GTK+ toolkit and\n"
 "the GNOME desktop environment."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2123
+#: gnu/packages/gnome.scm:3147
 msgid "CSS2 parsing and manipulation library"
 msgstr ""
 
-#: gnu/packages/gnome.scm:2125
+#: gnu/packages/gnome.scm:3149
 msgid ""
 "Libcroco is a standalone CSS2 parsing and manipulation library.\n"
 "The parser provides a low level event driven SAC-like API and a CSS object\n"
@@ -7447,31 +8827,43 @@ msgid ""
 "XML/CSS rendering engine."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2158
+#: gnu/packages/gnome.scm:3187
 msgid "GNOME's Structured File Library"
 msgstr ""
 
-#: gnu/packages/gnome.scm:2160
+#: gnu/packages/gnome.scm:3189
 msgid ""
 "Libgsf aims to provide an efficient extensible I/O abstraction for\n"
 "dealing with different structured file formats."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2227
+#: gnu/packages/gnome.scm:3257
 msgid "Render SVG files using Cairo"
 msgstr ""
 
-#: gnu/packages/gnome.scm:2229
+#: gnu/packages/gnome.scm:3259
 msgid ""
 "Librsvg is a C library to render SVG files using the Cairo 2D graphics\n"
 "library."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2399
+#: gnu/packages/gnome.scm:3438
+msgid "SVG rendering library"
+msgstr "Bibliothèque de rendu SVG"
+
+#: gnu/packages/gnome.scm:3439
+msgid ""
+"Librsvg is a library to render SVG images to Cairo surfaces.\n"
+"GNOME uses this to render SVG icons.  Outside of GNOME, other desktop\n"
+"environments use it for similar purposes.  Wikimedia uses it for Wikipedia's SVG\n"
+"diagrams."
+msgstr ""
+
+#: gnu/packages/gnome.scm:3465
 msgid "Create trees of CORBA Interface Definition Language files"
 msgstr ""
 
-#: gnu/packages/gnome.scm:2400
+#: gnu/packages/gnome.scm:3466
 msgid ""
 "Libidl is a library for creating trees of CORBA Interface\n"
 "Definition Language (idl) files, which is a specification for defining\n"
@@ -7480,144 +8872,144 @@ msgid ""
 "functionality was designed to be as reusable and portable as possible."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2445
+#: gnu/packages/gnome.scm:3513
 msgid "CORBA 2.4-compliant Object Request Broker"
 msgstr ""
 
-#: gnu/packages/gnome.scm:2446
+#: gnu/packages/gnome.scm:3514
 msgid ""
 "ORBit2 is a CORBA 2.4-compliant Object Request Broker (orb)\n"
 "featuring mature C, C++ and Python bindings."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2501
+#: gnu/packages/gnome.scm:3569
 msgid "Framework for creating reusable components for use in GNOME applications"
 msgstr ""
 
-#: gnu/packages/gnome.scm:2502
+#: gnu/packages/gnome.scm:3570
 msgid ""
 "Bonobo is a framework for creating reusable components for\n"
 "use in GNOME applications, built on top of CORBA."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2533
+#: gnu/packages/gnome.scm:3601
 msgid "Store application preferences"
 msgstr ""
 
-#: gnu/packages/gnome.scm:2534
+#: gnu/packages/gnome.scm:3602
 msgid ""
 "Gconf is a system for storing application preferences.  It\n"
 "is intended for user preferences; not arbitrary data storage."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2568
+#: gnu/packages/gnome.scm:3636
 msgid "Base MIME and Application database for GNOME"
 msgstr ""
 
-#: gnu/packages/gnome.scm:2569
+#: gnu/packages/gnome.scm:3637
 msgid ""
 "GNOME Mime Data is a module which contains the base MIME\n"
 "and Application database for GNOME.  The data stored by this module is\n"
 "designed to be accessed through the MIME functions in GnomeVFS."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2612
+#: gnu/packages/gnome.scm:3680
 msgid "Access files and folders in GNOME applications"
 msgstr ""
 
-#: gnu/packages/gnome.scm:2614
+#: gnu/packages/gnome.scm:3682
 msgid ""
 "GnomeVFS is the core library used to access files and folders in GNOME\n"
 "applications.  It provides a file system abstraction which allows applications\n"
 "to access local and remote files with a single consistent API."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2659
+#: gnu/packages/gnome.scm:3727
 msgid "Useful routines for building applications"
 msgstr ""
 
-#: gnu/packages/gnome.scm:2660
+#: gnu/packages/gnome.scm:3728
 msgid ""
 "The libgnome library provides a number of useful routines\n"
 "for building modern applications, including session management, activation of\n"
 "files and URIs, and displaying help."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2683
+#: gnu/packages/gnome.scm:3751
 msgid "2D drawing library"
 msgstr "Bibliothèque de dessin 2D"
 
-#: gnu/packages/gnome.scm:2684
+#: gnu/packages/gnome.scm:3752
 msgid ""
 "Libart is a 2D drawing library intended as a\n"
 "high-quality vector-based 2D library with antialiasing and alpha composition."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2711
+#: gnu/packages/gnome.scm:3779
 msgid "Flexible widget for creating interactive structured graphics"
 msgstr ""
 
-#: gnu/packages/gnome.scm:2712
+#: gnu/packages/gnome.scm:3780
 msgid ""
 "The GnomeCanvas widget provides a flexible widget for\n"
 "creating interactive structured graphics."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2734
+#: gnu/packages/gnome.scm:3802
 msgid "C++ bindings to the GNOME Canvas library"
 msgstr ""
 
-#: gnu/packages/gnome.scm:2735
+#: gnu/packages/gnome.scm:3803
 msgid "C++ bindings to the GNOME Canvas library."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2767
+#: gnu/packages/gnome.scm:3835
 msgid "Additional widgets for applications"
 msgstr ""
 
-#: gnu/packages/gnome.scm:2768
+#: gnu/packages/gnome.scm:3836
 msgid ""
 "The libgnomeui library provides additional widgets for\n"
 "applications.  Many of the widgets from libgnomeui have already been\n"
 "ported to GTK+."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2794
+#: gnu/packages/gnome.scm:3862
 msgid "Load glade interfaces and access the glade built widgets"
 msgstr ""
 
-#: gnu/packages/gnome.scm:2795
+#: gnu/packages/gnome.scm:3863
 msgid ""
 "Libglade is a library that provides interfaces for loading\n"
 "graphical interfaces described in glade files and for accessing the\n"
 "widgets built in the loading process."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2825 gnu/packages/gnome.scm:2857
+#: gnu/packages/gnome.scm:3893 gnu/packages/gnome.scm:3925
 msgid "Printing framework for GNOME"
 msgstr ""
 
-#: gnu/packages/gnome.scm:2827
+#: gnu/packages/gnome.scm:3895
 msgid ""
 "GNOME-print was a printing framework for GNOME.  It has been deprecated\n"
 "since ca. 2006, when GTK+ itself incorporated printing support."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2901
+#: gnu/packages/gnome.scm:3969
 msgid "Some user interface controls using Bonobo"
 msgstr ""
 
-#: gnu/packages/gnome.scm:2902
+#: gnu/packages/gnome.scm:3970
 msgid ""
 "The Bonobo UI library provides a number of user interface\n"
 "controls using the Bonobo component framework."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2929
+#: gnu/packages/gnome.scm:3997
 msgid "Window Navigator Construction Kit"
 msgstr ""
 
-#: gnu/packages/gnome.scm:2931
+#: gnu/packages/gnome.scm:3999
 msgid ""
 "Libwnck is the Window Navigator Construction Kit, a library for use in\n"
 "writing pagers, tasklists, and more generally applications that are dealing\n"
@@ -7625,19 +9017,19 @@ msgid ""
 "Hints specification (EWMH)."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2988
+#: gnu/packages/gnome.scm:4056
 msgid "Document-centric objects and utilities"
 msgstr ""
 
-#: gnu/packages/gnome.scm:2989
+#: gnu/packages/gnome.scm:4057
 msgid "A GLib/GTK+ set of document-centric objects and utilities."
 msgstr ""
 
-#: gnu/packages/gnome.scm:3073
+#: gnu/packages/gnome.scm:4141
 msgid "Spreadsheet application"
 msgstr ""
 
-#: gnu/packages/gnome.scm:3075
+#: gnu/packages/gnome.scm:4143
 msgid ""
 "GNUmeric is a GNU spreadsheet application, running under GNOME.  It is\n"
 "interoperable with other spreadsheet applications.  It has a vast array of\n"
@@ -7646,29 +9038,29 @@ msgid ""
 "engineering."
 msgstr ""
 
-#: gnu/packages/gnome.scm:3115
+#: gnu/packages/gnome.scm:4183
 msgid "Default GNOME 3 themes"
 msgstr ""
 
-#: gnu/packages/gnome.scm:3117
+#: gnu/packages/gnome.scm:4185
 msgid "The default GNOME 3 themes (Adwaita and some accessibility themes)."
 msgstr ""
 
-#: gnu/packages/gnome.scm:3165
+#: gnu/packages/gnome.scm:4231
 msgid "Manage encryption keys and passwords in the GNOME keyring"
 msgstr ""
 
-#: gnu/packages/gnome.scm:3167
+#: gnu/packages/gnome.scm:4233
 msgid ""
 "Seahorse is a GNOME application for managing encryption keys and\n"
 "passwords in the GNOME keyring."
 msgstr ""
 
-#: gnu/packages/gnome.scm:3208 gnu/packages/gnome.scm:3439
+#: gnu/packages/gnome.scm:4274 gnu/packages/gnome.scm:4502
 msgid "Compiler for the GObject type system"
 msgstr ""
 
-#: gnu/packages/gnome.scm:3210
+#: gnu/packages/gnome.scm:4276
 msgid ""
 "Vala is a programming language that aims to bring modern programming\n"
 "language features to GNOME developers without imposing any additional runtime\n"
@@ -7676,11 +9068,11 @@ msgid ""
 "libraries written in C."
 msgstr ""
 
-#: gnu/packages/gnome.scm:3242
+#: gnu/packages/gnome.scm:4325
 msgid "Virtual Terminal Emulator"
 msgstr ""
 
-#: gnu/packages/gnome.scm:3244
+#: gnu/packages/gnome.scm:4327
 msgid ""
 "VTE is a library (libvte) implementing a terminal emulator widget for\n"
 "GTK+, and a minimal sample application (vte) using that.  Vte is mainly used in\n"
@@ -7688,39 +9080,39 @@ msgid ""
 "editors, IDEs, etc."
 msgstr ""
 
-#: gnu/packages/gnome.scm:3269
+#: gnu/packages/gnome.scm:4352
 msgid "Enhanced VTE terminal widget"
 msgstr ""
 
-#: gnu/packages/gnome.scm:3271
+#: gnu/packages/gnome.scm:4354
 msgid ""
 "VTE is a library (libvte) implementing a terminal emulator widget for\n"
 "GTK+, this fork provides additional functions exposed for keyboard text\n"
 "selection and URL hints."
 msgstr ""
 
-#: gnu/packages/gnome.scm:3371
+#: gnu/packages/gnome.scm:4433
 msgid "Remote desktop viewer for GNOME"
 msgstr ""
 
-#: gnu/packages/gnome.scm:3372
+#: gnu/packages/gnome.scm:4434
 msgid ""
 "Vinagre is a remote display client supporting the VNC, SPICE\n"
 "and RDP protocols."
 msgstr ""
 
-#: gnu/packages/gnome.scm:3412
+#: gnu/packages/gnome.scm:4475
 msgid "Low-level GNOME configuration system"
 msgstr ""
 
-#: gnu/packages/gnome.scm:3413
+#: gnu/packages/gnome.scm:4476
 msgid ""
 "Dconf is a low-level configuration system.  Its main purpose\n"
 "is to provide a backend to GSettings on platforms that don't already have\n"
 "configuration storage systems."
 msgstr ""
 
-#: gnu/packages/gnome.scm:3441
+#: gnu/packages/gnome.scm:4504
 msgid ""
 "JSON-GLib is a C library based on GLib providing serialization and\n"
 "deserialization support for the JavaScript Object Notation (JSON) format\n"
@@ -7729,11 +9121,11 @@ msgid ""
 "and objects."
 msgstr ""
 
-#: gnu/packages/gnome.scm:3496
+#: gnu/packages/gnome.scm:4553
 msgid "High-level API for X Keyboard Extension"
 msgstr ""
 
-#: gnu/packages/gnome.scm:3498
+#: gnu/packages/gnome.scm:4555
 msgid ""
 "LibXklavier is a library providing high-level API for X Keyboard\n"
 "Extension known as XKB.  This library is intended to support XFree86 and other\n"
@@ -7741,11 +9133,11 @@ msgid ""
 "indicators etc)."
 msgstr ""
 
-#: gnu/packages/gnome.scm:3526
+#: gnu/packages/gnome.scm:4583
 msgid "Python bindings to librsvg"
 msgstr ""
 
-#: gnu/packages/gnome.scm:3528
+#: gnu/packages/gnome.scm:4585
 msgid ""
 "This package provides Python bindings to librsvg, the SVG rendering\n"
 "library."
@@ -7753,48 +9145,48 @@ msgstr ""
 "Ce paquet fournit les liaisons Python pour librsvg, la bibliothèque\n"
 "de rendu SVG."
 
-#: gnu/packages/gnome.scm:3558
+#: gnu/packages/gnome.scm:4615
 msgid "Network-related GIO modules"
 msgstr ""
 
-#: gnu/packages/gnome.scm:3560
+#: gnu/packages/gnome.scm:4617
 msgid ""
 "This package contains various network related extensions for the GIO\n"
 "library."
 msgstr ""
 
-#: gnu/packages/gnome.scm:3591
+#: gnu/packages/gnome.scm:4648
 msgid "RESTful web api query library"
 msgstr ""
 
-#: gnu/packages/gnome.scm:3593
+#: gnu/packages/gnome.scm:4650
 msgid ""
 "This library was designed to make it easier to access web services that\n"
 "claim to be \"RESTful\".  It includes convenience wrappers for libsoup and\n"
 "libxml to ease remote use of the RESTful API."
 msgstr ""
 
-#: gnu/packages/gnome.scm:3715
+#: gnu/packages/gnome.scm:4771
 msgid "GLib-based HTTP Library"
 msgstr ""
 
-#: gnu/packages/gnome.scm:3717
+#: gnu/packages/gnome.scm:4773
 msgid ""
 "LibSoup is an HTTP client/server library for GNOME.  It uses GObjects\n"
 "and the GLib main loop, to integrate well with GNOME applications."
 msgstr ""
 
-#: gnu/packages/gnome.scm:3763
+#: gnu/packages/gnome.scm:4837
 msgid "GObject bindings for \"Secret Service\" API"
 msgstr ""
 
-#: gnu/packages/gnome.scm:3765
+#: gnu/packages/gnome.scm:4839
 msgid ""
 "Libsecret is a GObject based library for storing and retrieving passwords\n"
 "and other secrets.  It communicates with the \"Secret Service\" using DBus."
 msgstr ""
 
-#: gnu/packages/gnome.scm:3806
+#: gnu/packages/gnome.scm:4880
 msgid ""
 "Five or More is a game where you try to align\n"
 " five or more objects of the same color and shape causing them to disappear.\n"
@@ -7802,21 +9194,31 @@ msgid ""
 " Try to last as long as possible."
 msgstr ""
 
-#: gnu/packages/gnome.scm:3849
+#: gnu/packages/gnome.scm:4922
 msgid "Minesweeper game"
 msgstr ""
 
-#: gnu/packages/gnome.scm:3851
+#: gnu/packages/gnome.scm:4924
 msgid ""
 "Mines (previously gnomine) is a puzzle game where you locate mines\n"
 "floating in an ocean using only your brain and a little bit of luck."
 msgstr ""
 
-#: gnu/packages/gnome.scm:3893
+#: gnu/packages/gnome.scm:4963
+msgid "Write to multiple USB devices at once"
+msgstr ""
+
+#: gnu/packages/gnome.scm:4965
+msgid ""
+"MultiWriter can be used to write an ISO file to multiple USB devices at\n"
+"once."
+msgstr ""
+
+#: gnu/packages/gnome.scm:5007
 msgid "Japanese logic game"
 msgstr ""
 
-#: gnu/packages/gnome.scm:3895
+#: gnu/packages/gnome.scm:5009
 msgid ""
 "Sudoku is a Japanese logic game that exploded in popularity in 2005.\n"
 "GNOME Sudoku is meant to have an interface as simple and unobstrusive as\n"
@@ -7824,11 +9226,11 @@ msgid ""
 "more fun."
 msgstr ""
 
-#: gnu/packages/gnome.scm:3941
+#: gnu/packages/gnome.scm:5055
 msgid "Terminal emulator"
 msgstr ""
 
-#: gnu/packages/gnome.scm:3943
+#: gnu/packages/gnome.scm:5057
 msgid ""
 "GNOME Terminal is a terminal emulator application for accessing a\n"
 "UNIX shell environment which can be used to run programs available on\n"
@@ -7838,22 +9240,22 @@ msgid ""
 "keyboard shortcuts."
 msgstr ""
 
-#: gnu/packages/gnome.scm:4022
+#: gnu/packages/gnome.scm:5136
 msgid "Color management service"
 msgstr ""
 
-#: gnu/packages/gnome.scm:4023
+#: gnu/packages/gnome.scm:5137
 msgid ""
 "Colord is a system service that makes it easy to manage,\n"
 "install and generate color profiles to accurately color manage input and\n"
 "output devices."
 msgstr ""
 
-#: gnu/packages/gnome.scm:4059
+#: gnu/packages/gnome.scm:5172
 msgid "Geolocation service"
 msgstr ""
 
-#: gnu/packages/gnome.scm:4060
+#: gnu/packages/gnome.scm:5173
 msgid ""
 "Geoclue is a D-Bus service that provides location\n"
 "information.  The primary goal of the Geoclue project is to make creating\n"
@@ -7862,11 +9264,11 @@ msgid ""
 "permission from user."
 msgstr ""
 
-#: gnu/packages/gnome.scm:4104
+#: gnu/packages/gnome.scm:5217
 msgid "Geocoding and reverse-geocoding library"
 msgstr ""
 
-#: gnu/packages/gnome.scm:4106
+#: gnu/packages/gnome.scm:5219
 msgid ""
 "geocode-glib is a convenience library for geocoding (finding longitude,\n"
 "and latitude from an address) and reverse geocoding (finding an address from\n"
@@ -7874,11 +9276,11 @@ msgid ""
 "faster results and to avoid unnecessary server load."
 msgstr ""
 
-#: gnu/packages/gnome.scm:4165
+#: gnu/packages/gnome.scm:5288
 msgid "System daemon for managing power devices"
 msgstr ""
 
-#: gnu/packages/gnome.scm:4167
+#: gnu/packages/gnome.scm:5290
 msgid ""
 "UPower is an abstraction for enumerating power devices,\n"
 "listening to device events and querying history and statistics.  Any\n"
@@ -7886,21 +9288,21 @@ msgid ""
 "service via the system message bus."
 msgstr ""
 
-#: gnu/packages/gnome.scm:4209
+#: gnu/packages/gnome.scm:5332
 msgid "Location, time zone, and weather library for GNOME"
 msgstr ""
 
-#: gnu/packages/gnome.scm:4211
+#: gnu/packages/gnome.scm:5334
 msgid ""
 "libgweather is a library to access weather information from online\n"
 "services for numerous locations."
 msgstr ""
 
-#: gnu/packages/gnome.scm:4274
+#: gnu/packages/gnome.scm:5417
 msgid "GNOME settings daemon"
 msgstr ""
 
-#: gnu/packages/gnome.scm:4276
+#: gnu/packages/gnome.scm:5419
 msgid ""
 "This package contains the daemon responsible for setting the various\n"
 "parameters of a GNOME session and the applications that run under it.  It\n"
@@ -7908,53 +9310,53 @@ msgid ""
 "settings, themes, mouse settings, and startup of other daemons."
 msgstr ""
 
-#: gnu/packages/gnome.scm:4312
+#: gnu/packages/gnome.scm:5455
 msgid "Library to parse and save media playlists for GNOME"
 msgstr ""
 
-#: gnu/packages/gnome.scm:4313
+#: gnu/packages/gnome.scm:5456
 msgid ""
 "Totem-pl-parser is a GObjects-based library to parse and save\n"
 "playlists in a variety of formats."
 msgstr ""
 
-#: gnu/packages/gnome.scm:4347
+#: gnu/packages/gnome.scm:5490
 msgid "Solitaire card games"
 msgstr ""
 
-#: gnu/packages/gnome.scm:4349
+#: gnu/packages/gnome.scm:5492
 msgid ""
 "Aisleriot (also known as Solitaire or sol) is a collection of card games\n"
 "which are easy to play with the aid of a mouse."
 msgstr ""
 
-#: gnu/packages/gnome.scm:4377
+#: gnu/packages/gnome.scm:5520
 msgid "Actions, Menus and Toolbars Kit for GTK+ applications"
 msgstr ""
 
-#: gnu/packages/gnome.scm:4379
+#: gnu/packages/gnome.scm:5522
 msgid ""
 "Amtk is the acronym for @acronym{Amtk, Actions Menus and Toolbars Kit}.\n"
 "It is a basic GtkUIManager replacement based on GAction.  It is suitable for\n"
 "both a traditional UI or a modern UI with a GtkHeaderBar."
 msgstr ""
 
-#: gnu/packages/gnome.scm:4418
+#: gnu/packages/gnome.scm:5561
 msgid "API documentation browser for GNOME"
 msgstr ""
 
-#: gnu/packages/gnome.scm:4420
+#: gnu/packages/gnome.scm:5563
 msgid ""
 "Devhelp is an API documentation browser for GTK+ and GNOME.  It works\n"
 "natively with GTK-Doc (the API reference system developed for GTK+ and used\n"
 "throughout GNOME for API documentation)."
 msgstr ""
 
-#: gnu/packages/gnome.scm:4486
+#: gnu/packages/gnome.scm:5640
 msgid "Object oriented GL/GLES Abstraction/Utility Layer"
 msgstr ""
 
-#: gnu/packages/gnome.scm:4488
+#: gnu/packages/gnome.scm:5642
 msgid ""
 "Cogl is a small library for using 3D graphics hardware to draw pretty\n"
 "pictures.  The API departs from the flat state machine style of OpenGL and is\n"
@@ -7962,26 +9364,26 @@ msgid ""
 "without stepping on each others toes."
 msgstr ""
 
-#: gnu/packages/gnome.scm:4545
+#: gnu/packages/gnome.scm:5699
 msgid "OpenGL-based interactive canvas library"
 msgstr ""
 
-#: gnu/packages/gnome.scm:4547 gnu/packages/gnome.scm:4576
+#: gnu/packages/gnome.scm:5701 gnu/packages/gnome.scm:5730
 msgid ""
 "Clutter is an OpenGL-based interactive canvas library, designed for\n"
 "creating fast, mainly 2D single window applications such as media box UIs,\n"
 "presentations, kiosk style applications and so on."
 msgstr ""
 
-#: gnu/packages/gnome.scm:4574
+#: gnu/packages/gnome.scm:5728
 msgid "OpenGL-based interactive canvas library GTK+ widget"
 msgstr ""
 
-#: gnu/packages/gnome.scm:4603
+#: gnu/packages/gnome.scm:5757
 msgid "Integration library for using GStreamer with Clutter"
 msgstr ""
 
-#: gnu/packages/gnome.scm:4605
+#: gnu/packages/gnome.scm:5759
 msgid ""
 "Clutter-Gst is an integration library for using GStreamer with Clutter.\n"
 "It provides a GStreamer sink to upload frames to GL and an actor that\n"
@@ -7989,11 +9391,11 @@ msgid ""
 "OpenGL-based interactive canvas library."
 msgstr ""
 
-#: gnu/packages/gnome.scm:4639
+#: gnu/packages/gnome.scm:5793
 msgid "C library providing a ClutterActor to display maps"
 msgstr ""
 
-#: gnu/packages/gnome.scm:4641
+#: gnu/packages/gnome.scm:5795
 msgid ""
 "libchamplain is a C library providing a ClutterActor to display maps.\n"
 "It also provides a Gtk+ widget to display maps in Gtk+ applications.  Python\n"
@@ -8001,32 +9403,32 @@ msgid ""
 "such as OpenStreetMap, OpenCycleMap, OpenAerialMap, and Maps for free."
 msgstr ""
 
-#: gnu/packages/gnome.scm:4672
+#: gnu/packages/gnome.scm:5826
 msgid "Object mapper from GObjects to SQLite"
 msgstr ""
 
-#: gnu/packages/gnome.scm:4674
+#: gnu/packages/gnome.scm:5828
 msgid ""
 "Gom provides an object mapper from GObjects to SQLite.  It helps you\n"
 "write applications that need to store structured data as well as make complex\n"
 "queries upon that data."
 msgstr ""
 
-#: gnu/packages/gnome.scm:4709
+#: gnu/packages/gnome.scm:5863
 msgid "Useful functionality shared among GNOME games"
 msgstr ""
 
-#: gnu/packages/gnome.scm:4711
+#: gnu/packages/gnome.scm:5865
 msgid ""
 "libgnome-games-support is a small library intended for internal use by\n"
 "GNOME Games, but it may be used by others."
 msgstr ""
 
-#: gnu/packages/gnome.scm:4751
+#: gnu/packages/gnome.scm:5905
 msgid "Sliding block puzzles"
 msgstr ""
 
-#: gnu/packages/gnome.scm:4753
+#: gnu/packages/gnome.scm:5907
 msgid ""
 "GNOME Klotski is a set of block sliding puzzles.  The objective is to move\n"
 "the patterned block to the area bordered by green markers.  To do so, you will\n"
@@ -8034,62 +9436,62 @@ msgid ""
 "as possible!"
 msgstr ""
 
-#: gnu/packages/gnome.scm:4794
+#: gnu/packages/gnome.scm:5947
 msgid "Framework for discovering and browsing media"
 msgstr ""
 
-#: gnu/packages/gnome.scm:4796
+#: gnu/packages/gnome.scm:5949
 msgid ""
 "Grilo is a framework focused on making media discovery and browsing easy\n"
 "for application developers."
 msgstr ""
 
-#: gnu/packages/gnome.scm:4842
+#: gnu/packages/gnome.scm:5994
 msgid "Plugins for the Grilo media discovery library"
 msgstr ""
 
-#: gnu/packages/gnome.scm:4844
+#: gnu/packages/gnome.scm:5996
 msgid ""
 "Grilo is a framework focused on making media discovery and browsing easy\n"
 "for application developers.  This package provides plugins for common media\n"
 "discovery protocols."
 msgstr ""
 
-#: gnu/packages/gnome.scm:4948
+#: gnu/packages/gnome.scm:6099
 msgid "Simple media player for GNOME based on GStreamer"
 msgstr ""
 
-#: gnu/packages/gnome.scm:4949
+#: gnu/packages/gnome.scm:6100
 msgid ""
 "Totem is a simple yet featureful media player for GNOME\n"
 "which can read a large number of file formats."
 msgstr ""
 
-#: gnu/packages/gnome.scm:5038
+#: gnu/packages/gnome.scm:6189
 msgid "Music player for GNOME"
 msgstr ""
 
-#: gnu/packages/gnome.scm:5039
+#: gnu/packages/gnome.scm:6190
 msgid ""
 "Rhythmbox is a music playing application for GNOME.  It\n"
 "supports playlists, song ratings, and any codecs installed through gstreamer."
 msgstr ""
 
-#: gnu/packages/gnome.scm:5098
+#: gnu/packages/gnome.scm:6249
 msgid "GNOME image viewer"
 msgstr ""
 
-#: gnu/packages/gnome.scm:5099
+#: gnu/packages/gnome.scm:6250
 msgid ""
 "Eye of GNOME is the GNOME image viewer.  It\n"
 "supports image conversion, rotation, and slideshows."
 msgstr ""
 
-#: gnu/packages/gnome.scm:5121
+#: gnu/packages/gnome.scm:6272
 msgid "Extensions for the Eye of GNOME image viewer"
 msgstr ""
 
-#: gnu/packages/gnome.scm:5133
+#: gnu/packages/gnome.scm:6284
 msgid ""
 "This package provides plugins for the Eye of GNOME (EOG) image viewer,\n"
 "notably:\n"
@@ -8102,21 +9504,21 @@ msgid ""
 "@end itemize\n"
 msgstr ""
 
-#: gnu/packages/gnome.scm:5173
+#: gnu/packages/gnome.scm:6324
 msgid "GObject bindings for libudev"
 msgstr "Liaisons GObject pour libudev"
 
-#: gnu/packages/gnome.scm:5175
+#: gnu/packages/gnome.scm:6326
 msgid ""
 "This library provides GObject bindings for libudev.  It was originally\n"
 "part of udev-extras, then udev, then systemd.  It's now a project on its own."
 msgstr ""
 
-#: gnu/packages/gnome.scm:5235
+#: gnu/packages/gnome.scm:6389
 msgid "Userspace virtual file system for GIO"
 msgstr ""
 
-#: gnu/packages/gnome.scm:5237
+#: gnu/packages/gnome.scm:6391
 msgid ""
 "GVFS is a userspace virtual file system designed to work with the I/O\n"
 "abstraction of GIO.  It contains a GIO module that seamlessly adds GVFS support\n"
@@ -8127,11 +9529,11 @@ msgid ""
 "DAV, and others."
 msgstr ""
 
-#: gnu/packages/gnome.scm:5272
+#: gnu/packages/gnome.scm:6426
 msgid "GLib binding for libusb1"
 msgstr "Liaisons GLib pour libusb1"
 
-#: gnu/packages/gnome.scm:5274
+#: gnu/packages/gnome.scm:6428
 msgid ""
 "GUsb is a GObject wrapper for libusb1 that makes it easy to do\n"
 "asynchronous control, bulk and interrupt transfers with proper cancellation\n"
@@ -8139,11 +9541,11 @@ msgid ""
 "USB transfers with your high-level application or system daemon."
 msgstr ""
 
-#: gnu/packages/gnome.scm:5312
+#: gnu/packages/gnome.scm:6466
 msgid "Document and image scanner"
 msgstr ""
 
-#: gnu/packages/gnome.scm:5314
+#: gnu/packages/gnome.scm:6468
 msgid ""
 "Document Scanner is an easy-to-use application that lets you connect your\n"
 "scanner and quickly capture images and documents in an appropriate format.  It\n"
@@ -8151,62 +9553,62 @@ msgid ""
 "almost all of them."
 msgstr ""
 
-#: gnu/packages/gnome.scm:5382
+#: gnu/packages/gnome.scm:6536
 msgid "Web browser for GNOME"
 msgstr ""
 
-#: gnu/packages/gnome.scm:5384
+#: gnu/packages/gnome.scm:6538
 msgid ""
 "Eolie is a new web browser for GNOME.  It features Firefox sync support,\n"
 "a secret password store, an adblocker, and a modern UI."
 msgstr ""
 
-#: gnu/packages/gnome.scm:5448
+#: gnu/packages/gnome.scm:6612
 msgid "GNOME web browser"
 msgstr ""
 
-#: gnu/packages/gnome.scm:5450
+#: gnu/packages/gnome.scm:6614
 msgid ""
 "Epiphany is a GNOME web browser targeted at non-technical users.  Its\n"
 "principles are simplicity and standards compliance."
 msgstr ""
 
-#: gnu/packages/gnome.scm:5507
+#: gnu/packages/gnome.scm:6671
 msgid "D-Bus debugger"
 msgstr ""
 
-#: gnu/packages/gnome.scm:5509
+#: gnu/packages/gnome.scm:6673
 msgid ""
 "D-Feet is a D-Bus debugger, which can be used to inspect D-Bus interfaces\n"
 "of running programs and invoke methods on those interfaces."
 msgstr ""
 
-#: gnu/packages/gnome.scm:5531
+#: gnu/packages/gnome.scm:6695
 msgid "XSL stylesheets for Yelp"
 msgstr ""
 
-#: gnu/packages/gnome.scm:5533
+#: gnu/packages/gnome.scm:6697
 msgid ""
 "Yelp-xsl contains XSL stylesheets that are used by the yelp help browser\n"
 "to format Docbook and Mallard documents."
 msgstr ""
 
-#: gnu/packages/gnome.scm:5564
+#: gnu/packages/gnome.scm:6728
 msgid "GNOME help browser"
 msgstr ""
 
-#: gnu/packages/gnome.scm:5566
+#: gnu/packages/gnome.scm:6730
 msgid ""
 "Yelp is the help viewer in Gnome.  It natively views Mallard, DocBook,\n"
 "man, info, and HTML documents.  It can locate documents according to the\n"
 "freedesktop.org help system specification."
 msgstr ""
 
-#: gnu/packages/gnome.scm:5594
+#: gnu/packages/gnome.scm:6758
 msgid "Yelp documentation tools"
 msgstr ""
 
-#: gnu/packages/gnome.scm:5596
+#: gnu/packages/gnome.scm:6760
 msgid ""
 "Yelp-tools is a collection of scripts and build utilities to help create,\n"
 "manage, and publish documentation for Yelp and the web.  Most of the heavy\n"
@@ -8214,32 +9616,32 @@ msgid ""
 "wraps things up in a developer-friendly way."
 msgstr ""
 
-#: gnu/packages/gnome.scm:5644
+#: gnu/packages/gnome.scm:6797
 msgid "GObject collection library"
 msgstr ""
 
-#: gnu/packages/gnome.scm:5646
+#: gnu/packages/gnome.scm:6799
 msgid ""
 "Libgee is a utility library providing GObject-based interfaces and\n"
 "classes for commonly used data structures."
 msgstr ""
 
-#: gnu/packages/gnome.scm:5675
+#: gnu/packages/gnome.scm:6828
 msgid "GObject wrapper around the Exiv2 photo metadata library"
 msgstr ""
 
-#: gnu/packages/gnome.scm:5677
+#: gnu/packages/gnome.scm:6830
 msgid ""
 "Gexiv2 is a GObject wrapper around the Exiv2 photo metadata library.  It\n"
 "allows for GNOME applications to easily inspect and update EXIF, IPTC, and XMP\n"
 "metadata in photo and video files of various formats."
 msgstr ""
 
-#: gnu/packages/gnome.scm:5729
+#: gnu/packages/gnome.scm:6882
 msgid "Photo manager for GNOME 3"
 msgstr ""
 
-#: gnu/packages/gnome.scm:5731
+#: gnu/packages/gnome.scm:6884
 msgid ""
 "Shotwell is a digital photo manager designed for the GNOME desktop\n"
 "environment.  It allows you to import photos from disk or camera, organize\n"
@@ -8247,62 +9649,62 @@ msgid ""
 "share them with others via social networking and more."
 msgstr ""
 
-#: gnu/packages/gnome.scm:5766
+#: gnu/packages/gnome.scm:6919
 msgid "Graphical archive manager for GNOME"
 msgstr ""
 
-#: gnu/packages/gnome.scm:5767
+#: gnu/packages/gnome.scm:6920
 msgid ""
 "File Roller is an archive manager for the GNOME desktop\n"
 "environment that allows users to view, unpack, and create compressed archives\n"
 "such as gzip tarballs."
 msgstr ""
 
-#: gnu/packages/gnome.scm:5837
+#: gnu/packages/gnome.scm:6990
 msgid "Session manager for GNOME"
 msgstr ""
 
-#: gnu/packages/gnome.scm:5839
+#: gnu/packages/gnome.scm:6992
 msgid ""
 "This package contains the GNOME session manager, as well as a\n"
 "configuration program to choose applications starting on login."
 msgstr ""
 
-#: gnu/packages/gnome.scm:5895
+#: gnu/packages/gnome.scm:7049
 msgid "Javascript bindings for GNOME"
 msgstr ""
 
-#: gnu/packages/gnome.scm:5898
+#: gnu/packages/gnome.scm:7052
 msgid ""
 "Gjs is a javascript binding for GNOME.  It's mainly based on spidermonkey\n"
 "javascript engine and the GObject introspection framework."
 msgstr ""
 
-#: gnu/packages/gnome.scm:5991
+#: gnu/packages/gnome.scm:7145
 msgid "GNOME text editor"
 msgstr "Éditeur de texte GNOME"
 
-#: gnu/packages/gnome.scm:5992
+#: gnu/packages/gnome.scm:7146
 msgid ""
 "While aiming at simplicity and ease of use, gedit is a\n"
 "powerful general purpose text editor."
 msgstr ""
 
-#: gnu/packages/gnome.scm:6016
+#: gnu/packages/gnome.scm:7170
 msgid "Display graphical dialog boxes from shell scripts"
 msgstr ""
 
-#: gnu/packages/gnome.scm:6019
+#: gnu/packages/gnome.scm:7173
 msgid ""
 "Zenity is a rewrite of gdialog, the GNOME port of dialog which allows you\n"
 "to display dialog boxes from the commandline and shell scripts."
 msgstr ""
 
-#: gnu/packages/gnome.scm:6128
+#: gnu/packages/gnome.scm:7281
 msgid "Window and compositing manager"
 msgstr ""
 
-#: gnu/packages/gnome.scm:6131
+#: gnu/packages/gnome.scm:7284
 msgid ""
 "Mutter is a window and compositing manager that displays and manages your\n"
 "desktop via OpenGL.  Mutter combines a sophisticated display engine using the\n"
@@ -8310,11 +9712,11 @@ msgid ""
 "window manager."
 msgstr ""
 
-#: gnu/packages/gnome.scm:6185
+#: gnu/packages/gnome.scm:7338
 msgid "Single sign-on framework for GNOME"
 msgstr ""
 
-#: gnu/packages/gnome.scm:6188
+#: gnu/packages/gnome.scm:7341
 msgid ""
 "GNOME Online Accounts provides interfaces so that applications and\n"
 "libraries in GNOME can access the user's online accounts.  It has providers for\n"
@@ -8322,32 +9724,32 @@ msgid ""
 "Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos."
 msgstr ""
 
-#: gnu/packages/gnome.scm:6283
+#: gnu/packages/gnome.scm:7429
 msgid "Store address books and calendars"
 msgstr ""
 
-#: gnu/packages/gnome.scm:6286
+#: gnu/packages/gnome.scm:7432
 msgid ""
 "This package provides a unified backend for programs that work with\n"
 "contacts, tasks, and calendar information.  It was originally developed for\n"
 "Evolution (hence the name), but is now used by other packages as well."
 msgstr ""
 
-#: gnu/packages/gnome.scm:6349
+#: gnu/packages/gnome.scm:7495
 msgid "Text entry and UI navigation application"
 msgstr ""
 
-#: gnu/packages/gnome.scm:6352
+#: gnu/packages/gnome.scm:7498
 msgid ""
 "Caribou is an input assistive technology intended for switch and pointer\n"
 "users."
 msgstr ""
 
-#: gnu/packages/gnome.scm:6491
+#: gnu/packages/gnome.scm:7646
 msgid "Network connection manager"
 msgstr ""
 
-#: gnu/packages/gnome.scm:6494
+#: gnu/packages/gnome.scm:7649
 msgid ""
 "NetworkManager is a system network service that manages your network\n"
 "devices and connections, attempting to keep active network connectivity when\n"
@@ -8356,60 +9758,60 @@ msgid ""
 "services."
 msgstr ""
 
-#: gnu/packages/gnome.scm:6548
+#: gnu/packages/gnome.scm:7706
 msgid "OpenVPN plug-in for NetworkManager"
 msgstr ""
 
-#: gnu/packages/gnome.scm:6550
+#: gnu/packages/gnome.scm:7708
 msgid ""
 "This extension of NetworkManager allows it to take care of connections\n"
 "to virtual private networks (VPNs) via OpenVPN."
 msgstr ""
 
-#: gnu/packages/gnome.scm:6597
+#: gnu/packages/gnome.scm:7759
 msgid "VPNC plug-in for NetworkManager"
 msgstr ""
 
-#: gnu/packages/gnome.scm:6599
+#: gnu/packages/gnome.scm:7761
 msgid ""
 "Support for configuring virtual private networks based on VPNC.\n"
 "Compatible with Cisco VPN concentrators configured to use IPsec."
 msgstr ""
 
-#: gnu/packages/gnome.scm:6647
+#: gnu/packages/gnome.scm:7809
 msgid "OpenConnect plug-in for NetworkManager"
 msgstr ""
 
-#: gnu/packages/gnome.scm:6649
+#: gnu/packages/gnome.scm:7811
 msgid ""
 "This extension of NetworkManager allows it to take care of connections\n"
 "to @acronym{VPNs, virtual private networks} via OpenConnect, an open client for\n"
 "Cisco's AnyConnect SSL VPN."
 msgstr ""
 
-#: gnu/packages/gnome.scm:6677
+#: gnu/packages/gnome.scm:7839
 msgid "Database of broadband connection configuration"
 msgstr ""
 
-#: gnu/packages/gnome.scm:6678
+#: gnu/packages/gnome.scm:7840
 msgid "Database of broadband connection configuration."
 msgstr ""
 
-#: gnu/packages/gnome.scm:6720
+#: gnu/packages/gnome.scm:7879
 msgid "Applet for managing network connections"
 msgstr ""
 
-#: gnu/packages/gnome.scm:6723
+#: gnu/packages/gnome.scm:7882
 msgid ""
 "This package contains a systray applet for NetworkManager.  It displays\n"
 "the available networks and allows users to easily switch between them."
 msgstr ""
 
-#: gnu/packages/gnome.scm:6748
+#: gnu/packages/gnome.scm:7907
 msgid "C++ wrapper for XML parser library libxml2"
 msgstr ""
 
-#: gnu/packages/gnome.scm:6750
+#: gnu/packages/gnome.scm:7909
 msgid ""
 "This package provides a C++ wrapper for the XML parser library\n"
 "libxml2."
@@ -8417,31 +9819,31 @@ msgstr ""
 "Ce paquet fournit une enveloppe C++ autour de la bibliothèque d'analyseur XML\n"
 "libxml2."
 
-#: gnu/packages/gnome.scm:6949
+#: gnu/packages/gnome.scm:8111
 msgid "Display manager for GNOME"
 msgstr ""
 
-#: gnu/packages/gnome.scm:6952
+#: gnu/packages/gnome.scm:8114
 msgid ""
 "GNOME Display Manager is a system service that is responsible for\n"
 "providing graphical log-ins and managing local and remote displays."
 msgstr ""
 
-#: gnu/packages/gnome.scm:6976
+#: gnu/packages/gnome.scm:8138
 msgid "Portable system access library"
 msgstr ""
 
-#: gnu/packages/gnome.scm:6979
+#: gnu/packages/gnome.scm:8141
 msgid ""
 "LibGTop is a library to get system specific data such as CPU and memory\n"
 "usage and information about running processes."
 msgstr ""
 
-#: gnu/packages/gnome.scm:7011
+#: gnu/packages/gnome.scm:8173
 msgid "GNOME Bluetooth subsystem"
 msgstr ""
 
-#: gnu/packages/gnome.scm:7014
+#: gnu/packages/gnome.scm:8176
 msgid ""
 "This package contains tools for managing and manipulating Bluetooth\n"
 "devices using the GNOME desktop."
@@ -8449,11 +9851,11 @@ msgstr ""
 "Ce paquet contient des outils pour gérer et manipuler des appareils bluetooth\n"
 "depuis le bureau GNOME."
 
-#: gnu/packages/gnome.scm:7117
+#: gnu/packages/gnome.scm:8285
 msgid "Utilities to configure the GNOME desktop"
 msgstr ""
 
-#: gnu/packages/gnome.scm:7120
+#: gnu/packages/gnome.scm:8288
 msgid ""
 "This package contains configuration applets for the GNOME desktop,\n"
 "allowing to set accessibility configuration, desktop fonts, keyboard and mouse\n"
@@ -8461,43 +9863,43 @@ msgid ""
 "properties, screen resolution, and other GNOME parameters."
 msgstr ""
 
-#: gnu/packages/gnome.scm:7276
+#: gnu/packages/gnome.scm:8448
 msgid "Desktop shell for GNOME"
 msgstr ""
 
-#: gnu/packages/gnome.scm:7279
+#: gnu/packages/gnome.scm:8451
 msgid ""
 "GNOME Shell provides core user interface functions for the GNOME desktop,\n"
 "like switching to windows and launching applications."
 msgstr ""
 
-#: gnu/packages/gnome.scm:7314
-msgid "VNC viewer widget for GTK+"
+#: gnu/packages/gnome.scm:8493
+msgid "VNC client viewer widget for GTK+"
 msgstr ""
 
-#: gnu/packages/gnome.scm:7316
+#: gnu/packages/gnome.scm:8494
 msgid ""
-"GTK-VNC is a VNC viewer widget for GTK+, used by remote desktop viewing\n"
-"applications, for instance the Vinagre client, GNOME Boxes and virt-viewer.\n"
-"GTK-VNC implements client side RFB protocol and authentication extensions such\n"
-"as SASL, TLS and VeNCrypt.  Additionally it supports encoding extensions."
+"GTK-VNC is a project providing client side APIs for the RFB\n"
+"protocol / VNC remote desktop technology.  It is built using coroutines allowing\n"
+"it to be completely asynchronous while remaining single threaded.  It provides a\n"
+"core C library, and bindings for Python (PyGTK)."
 msgstr ""
 
-#: gnu/packages/gnome.scm:7343
+#: gnu/packages/gnome.scm:8521
 msgid "Archives integration support for GNOME"
 msgstr ""
 
-#: gnu/packages/gnome.scm:7346
+#: gnu/packages/gnome.scm:8524
 msgid ""
 "GNOME Autoar is a library which makes creating and extracting archives\n"
 "easy, safe, and automatic."
 msgstr ""
 
-#: gnu/packages/gnome.scm:7391 gnu/packages/gnome.scm:7479
+#: gnu/packages/gnome.scm:8569 gnu/packages/gnome.scm:8657
 msgid "Metadata database, indexer and search tool"
 msgstr ""
 
-#: gnu/packages/gnome.scm:7394
+#: gnu/packages/gnome.scm:8572
 msgid ""
 "Tracker is a search engine and triplestore for desktop, embedded and mobile.\n"
 "\n"
@@ -8520,29 +9922,29 @@ msgid ""
 "endpoint and it understands SPARQL. "
 msgstr ""
 
-#: gnu/packages/gnome.scm:7482
+#: gnu/packages/gnome.scm:8660
 msgid ""
 "Tracker is an advanced framework for first class objects with associated\n"
 "metadata and tags.  It provides a one stop solution for all metadata, tags,\n"
 "shared object databases, search tools and indexing."
 msgstr ""
 
-#: gnu/packages/gnome.scm:7536
+#: gnu/packages/gnome.scm:8721
 msgid "File manager for GNOME"
 msgstr ""
 
-#: gnu/packages/gnome.scm:7539
+#: gnu/packages/gnome.scm:8724
 msgid ""
 "Nautilus (Files) is a file manager designed to fit the GNOME desktop\n"
 "design and behaviour, giving the user a simple way to navigate and manage its\n"
 "files."
 msgstr ""
 
-#: gnu/packages/gnome.scm:7571
+#: gnu/packages/gnome.scm:8756
 msgid "Disk usage analyzer for GNOME"
 msgstr ""
 
-#: gnu/packages/gnome.scm:7573
+#: gnu/packages/gnome.scm:8758
 msgid ""
 "Baobab (Disk Usage Analyzer) is a graphical application to analyse disk\n"
 "usage in the GNOME desktop environment.  It can easily scan device volumes or\n"
@@ -8550,11 +9952,11 @@ msgid ""
 "is complete it provides a graphical representation of each selected folder."
 msgstr ""
 
-#: gnu/packages/gnome.scm:7597
+#: gnu/packages/gnome.scm:8782
 msgid "Background images for the GNOME desktop"
 msgstr ""
 
-#: gnu/packages/gnome.scm:7599
+#: gnu/packages/gnome.scm:8784
 msgid ""
 "GNOME backgrounds package contains a collection of graphics files which\n"
 "can be used as backgrounds in the GNOME Desktop environment.  Additionally,\n"
@@ -8562,33 +9964,33 @@ msgid ""
 "can add your own files to the collection."
 msgstr ""
 
-#: gnu/packages/gnome.scm:7635
+#: gnu/packages/gnome.scm:8828
 msgid "Take pictures of your screen"
 msgstr ""
 
-#: gnu/packages/gnome.scm:7637
+#: gnu/packages/gnome.scm:8830
 msgid ""
 "GNOME Screenshot is a utility used for taking screenshots of the entire\n"
 "screen, a window or a user defined area of the screen, with optional\n"
 "beautifying border effects."
 msgstr ""
 
-#: gnu/packages/gnome.scm:7678
+#: gnu/packages/gnome.scm:8860
 msgid "Graphical editor for GNOME's dconf configuration system"
 msgstr ""
 
-#: gnu/packages/gnome.scm:7680
+#: gnu/packages/gnome.scm:8862
 msgid ""
 "Dconf-editor is a graphical tool for browsing and editing the dconf\n"
 "configuration system for GNOME.  It allows users to configure desktop\n"
 "software that do not provide their own configuration interface."
 msgstr ""
 
-#: gnu/packages/gnome.scm:7709
+#: gnu/packages/gnome.scm:8891
 msgid "Default MIME type associations for the GNOME desktop"
 msgstr ""
 
-#: gnu/packages/gnome.scm:7711
+#: gnu/packages/gnome.scm:8893
 msgid ""
 "Given many installed packages which might handle a given MIME type, a\n"
 "user running the GNOME desktop probably has some preferences: for example,\n"
@@ -8597,113 +9999,134 @@ msgid ""
 "associations for GNOME."
 msgstr ""
 
-#: gnu/packages/gnome.scm:7742
+#: gnu/packages/gnome.scm:8924
 msgid "GoVirt Library"
 msgstr ""
 
-#: gnu/packages/gnome.scm:7743
+#: gnu/packages/gnome.scm:8925
 msgid "GoVirt is a GObject wrapper for the oVirt REST API."
 msgstr ""
 
-#: gnu/packages/gnome.scm:7785
+#: gnu/packages/gnome.scm:8977
 msgid "Weather monitoring for GNOME desktop"
 msgstr ""
 
-#: gnu/packages/gnome.scm:7786
+#: gnu/packages/gnome.scm:8978
 msgid ""
 "GNOME Weather is a small application that allows you to\n"
 "monitor the current weather conditions for your city, or anywhere in the\n"
 "world."
 msgstr ""
 
-#: gnu/packages/gnome.scm:7886
+#: gnu/packages/gnome.scm:9082
 msgid "The GNU desktop environment"
 msgstr ""
 
-#: gnu/packages/gnome.scm:7889
+#: gnu/packages/gnome.scm:9085
 msgid ""
 "GNOME is the graphical desktop for GNU.  It includes a wide variety of\n"
 "applications for browsing the web, editing text and images, creating\n"
 "documents and diagrams, playing media, scanning, and much more."
 msgstr ""
 
-#: gnu/packages/gnome.scm:7941
+#: gnu/packages/gnome.scm:9133
 msgid "Desktop recording program"
 msgstr ""
 
-#: gnu/packages/gnome.scm:7942
+#: gnu/packages/gnome.scm:9134
 msgid ""
 "Byzanz is a simple desktop recording program with a\n"
 "command-line interface.  It can record part or all of an X display for a\n"
 "specified duration and save it as a GIF encoded animated image file."
 msgstr ""
 
-#: gnu/packages/gnome.scm:7969
+#: gnu/packages/gnome.scm:9192
+msgid "Two-factor authentication application built for GNOME"
+msgstr ""
+
+#: gnu/packages/gnome.scm:9194
+msgid ""
+"Authenticator is a two-factor authentication (2FA) application built for\n"
+"the GNOME desktop environment.\n"
+"\n"
+"Features:\n"
+"\n"
+"@itemize\n"
+"@item QR code scanner\n"
+"@item Beautiful UI\n"
+"@item Huge database of more than 560 supported services\n"
+"@item Keep your PIN tokens secure by locking the application with a password\n"
+"@item Automatically fetch an image for services using their favicon\n"
+"@item The possibility to add new services\n"
+"@end itemize"
+msgstr ""
+
+#: gnu/packages/gnome.scm:9230
 msgid "GObject wrapper for libcanberra"
 msgstr ""
 
-#: gnu/packages/gnome.scm:7971
+#: gnu/packages/gnome.scm:9232
 msgid ""
 "GSound is a small library for playing system sounds.  It's designed to be\n"
 "used via GObject Introspection, and is a thin wrapper around the libcanberra C\n"
 "library."
 msgstr ""
 
-#: gnu/packages/gnome.scm:7998
+#: gnu/packages/gnome.scm:9259
 msgid "Library for accessing SkyDrive and Hotmail"
 msgstr "Bibliothèque pour accéder à SkyDrive et Hotmail"
 
-#: gnu/packages/gnome.scm:8000
+#: gnu/packages/gnome.scm:9261
 msgid ""
 "Libzapojit is a GLib-based library for accessing online service APIs of\n"
 "Microsoft SkyDrive and Hotmail, using their REST protocols."
 msgstr ""
 
-#: gnu/packages/gnome.scm:8036
+#: gnu/packages/gnome.scm:9304
 msgid "GNOME's clock application"
 msgstr ""
 
-#: gnu/packages/gnome.scm:8038
+#: gnu/packages/gnome.scm:9306
 msgid ""
 "GNOME Clocks is a simple clocks application designed to fit the GNOME\n"
 "desktop.  It supports world clock, stop watch, alarms, and count down timer."
 msgstr ""
 
-#: gnu/packages/gnome.scm:8074
+#: gnu/packages/gnome.scm:9350
 msgid "GNOME's calendar application"
 msgstr ""
 
-#: gnu/packages/gnome.scm:8076
+#: gnu/packages/gnome.scm:9352
 msgid ""
 "GNOME Calendar is a simple calendar application designed to fit the GNOME\n"
 "desktop.  It supports multiple calendars, month, week and year view."
 msgstr ""
 
-#: gnu/packages/gnome.scm:8126
+#: gnu/packages/gnome.scm:9404
 msgid "GNOME's ToDo Application"
 msgstr ""
 
-#: gnu/packages/gnome.scm:8128
+#: gnu/packages/gnome.scm:9406
 msgid ""
 "GNOME To Do is a simplistic personal task manager designed to perfectly\n"
 "fit the GNOME desktop."
 msgstr ""
 
-#: gnu/packages/gnome.scm:8166
+#: gnu/packages/gnome.scm:9444
 msgid "Look up words in dictionary sources"
 msgstr ""
 
-#: gnu/packages/gnome.scm:8168
+#: gnu/packages/gnome.scm:9446
 msgid ""
 "GNOME Dictionary can look for the definition or translation of a word in\n"
 "existing databases over the internet."
 msgstr ""
 
-#: gnu/packages/gnome.scm:8218
+#: gnu/packages/gnome.scm:9502
 msgid "Customize advanced GNOME 3 options"
 msgstr ""
 
-#: gnu/packages/gnome.scm:8221
+#: gnu/packages/gnome.scm:9505
 msgid ""
 "GNOME Tweaks allows adjusting advanced configuration settings in\n"
 "GNOME 3.  This includes things like the fonts used in user interface elements,\n"
@@ -8711,63 +10134,63 @@ msgid ""
 "GNOME Shell appearance and extension, etc."
 msgstr ""
 
-#: gnu/packages/gnome.scm:8248
+#: gnu/packages/gnome.scm:9532
 msgid "Extensions for GNOME Shell"
 msgstr ""
 
-#: gnu/packages/gnome.scm:8249
+#: gnu/packages/gnome.scm:9533
 msgid ""
 "GNOME Shell extensions modify and extend GNOME Shell\n"
 "functionality and behavior."
 msgstr ""
 
-#: gnu/packages/gnome.scm:8288
+#: gnu/packages/gnome.scm:9572
 msgid "A flat GTK+ theme with transparent elements"
 msgstr ""
 
-#: gnu/packages/gnome.scm:8289
+#: gnu/packages/gnome.scm:9573
 msgid ""
 "Arc is a flat theme with transparent elements for GTK 3, GTK\n"
 "2, and GNOME Shell which supports GTK 3 and GTK 2 based desktop environments\n"
 "like GNOME, Unity, Budgie, Pantheon, XFCE, Mate, etc."
 msgstr ""
 
-#: gnu/packages/gnome.scm:8320
+#: gnu/packages/gnome.scm:9604
 msgid "Faba icon theme"
 msgstr ""
 
-#: gnu/packages/gnome.scm:8322
+#: gnu/packages/gnome.scm:9606
 msgid ""
 "Faba is a minimal icon set used as a basis for other themes such as\n"
 "Moka"
 msgstr ""
 
-#: gnu/packages/gnome.scm:8346
+#: gnu/packages/gnome.scm:9630
 msgid "Moka icon theme"
 msgstr ""
 
-#: gnu/packages/gnome.scm:8347
+#: gnu/packages/gnome.scm:9631
 msgid ""
 "Moka is a stylized desktop icon set, designed to be clear,\n"
 "simple and consistent."
 msgstr ""
 
-#: gnu/packages/gnome.scm:8380
+#: gnu/packages/gnome.scm:9664
 msgid "Arc icon theme"
 msgstr ""
 
-#: gnu/packages/gnome.scm:8381
+#: gnu/packages/gnome.scm:9665
 msgid ""
 "The Arc icon theme provides a set of icons matching the\n"
 "style of the Arc GTK theme.  Icons missing from the Arc theme are provided by\n"
 "the Moka icon theme."
 msgstr ""
 
-#: gnu/packages/gnome.scm:8413
+#: gnu/packages/gnome.scm:9708
 msgid "Library to aggregate data about people"
 msgstr ""
 
-#: gnu/packages/gnome.scm:8414
+#: gnu/packages/gnome.scm:9709
 msgid ""
 "Libfolks is a library that aggregates information about people\n"
 "from multiple sources (e.g., Telepathy connection managers for IM contacts,\n"
@@ -8776,31 +10199,31 @@ msgid ""
 "compiled."
 msgstr ""
 
-#: gnu/packages/gnome.scm:8449
+#: gnu/packages/gnome.scm:9750
 msgid "GLib/GObject wrapper for the Facebook API"
 msgstr ""
 
-#: gnu/packages/gnome.scm:8450
+#: gnu/packages/gnome.scm:9751
 msgid ""
 "This library allows you to use the Facebook API from\n"
 "GLib/GObject code."
 msgstr ""
 
-#: gnu/packages/gnome.scm:8478
+#: gnu/packages/gnome.scm:9779
 msgid "GNOME keyboard configuration library"
 msgstr ""
 
-#: gnu/packages/gnome.scm:8480
+#: gnu/packages/gnome.scm:9781
 msgid ""
 "Libgnomekbd is a keyboard configuration library for the GNOME desktop\n"
 "environment, which can notably display keyboard layouts."
 msgstr ""
 
-#: gnu/packages/gnome.scm:8514
+#: gnu/packages/gnome.scm:9815
 msgid "Library for writing single instance applications"
 msgstr "Bibliothèque pour écrire des applications à instance unique"
 
-#: gnu/packages/gnome.scm:8516
+#: gnu/packages/gnome.scm:9817
 msgid ""
 "Libunique is a library for writing single instance applications.  If you\n"
 "launch a single instance application twice, the second instance will either just\n"
@@ -8810,32 +10233,32 @@ msgid ""
 "handling the startup notification side."
 msgstr ""
 
-#: gnu/packages/gnome.scm:8554
+#: gnu/packages/gnome.scm:9856
 msgid "Desktop calculator"
 msgstr ""
 
-#: gnu/packages/gnome.scm:8556
+#: gnu/packages/gnome.scm:9858
 msgid ""
 "Calculator is an application that solves mathematical equations and\n"
 "is suitable as a default application in a Desktop environment."
 msgstr ""
 
-#: gnu/packages/gnome.scm:8584
+#: gnu/packages/gnome.scm:9886
 msgid "Virtual sticky note"
 msgstr ""
 
-#: gnu/packages/gnome.scm:8586
+#: gnu/packages/gnome.scm:9888
 msgid ""
 "Xpad is a sticky note that strives to be simple, fault tolerant,\n"
 "and customizable.  Xpad consists of independent pad windows, each is\n"
 "basically a text box in which notes can be written."
 msgstr ""
 
-#: gnu/packages/gnome.scm:8657
+#: gnu/packages/gnome.scm:9959
 msgid "Unicode character picker and font browser"
 msgstr ""
 
-#: gnu/packages/gnome.scm:8659
+#: gnu/packages/gnome.scm:9961
 msgid ""
 "This program allows you to browse through all the available Unicode\n"
 "characters and categories for the installed fonts, and to examine their\n"
@@ -8843,22 +10266,22 @@ msgid ""
 "only know by its Unicode name or code point."
 msgstr ""
 
-#: gnu/packages/gnome.scm:8688
+#: gnu/packages/gnome.scm:9990
 msgid "Web development studio"
 msgstr ""
 
-#: gnu/packages/gnome.scm:8690
+#: gnu/packages/gnome.scm:9992
 msgid ""
 "Bluefish is an editor targeted towards programmers and web developers,\n"
 "with many options to write web sites, scripts and other code.\n"
 "Bluefish supports many programming and markup languages."
 msgstr ""
 
-#: gnu/packages/gnome.scm:8728
+#: gnu/packages/gnome.scm:10030
 msgid "Process viewer and system resource monitor for GNOME"
 msgstr ""
 
-#: gnu/packages/gnome.scm:8730
+#: gnu/packages/gnome.scm:10032
 msgid ""
 "GNOME System Monitor is a GNOME process viewer and system monitor with\n"
 "an attractive, easy-to-use interface.  It has features, such as a tree view\n"
@@ -8867,43 +10290,43 @@ msgid ""
 "kill/reinice processes."
 msgstr ""
 
-#: gnu/packages/gnome.scm:8767
+#: gnu/packages/gnome.scm:10070
 msgid "Python client bindings for D-Bus AT-SPI"
 msgstr ""
 
-#: gnu/packages/gnome.scm:8771
+#: gnu/packages/gnome.scm:10074
 msgid ""
 "This package includes a python client library for the AT-SPI D-Bus\n"
 "accessibility infrastructure."
 msgstr ""
 
-#: gnu/packages/gnome.scm:8830
+#: gnu/packages/gnome.scm:10142
 msgid "Screen reader for individuals who are blind or visually impaired"
 msgstr ""
 
-#: gnu/packages/gnome.scm:8833
+#: gnu/packages/gnome.scm:10145
 msgid ""
 "Orca is a screen reader that provides access to the graphical desktop\n"
 "via speech and refreshable braille.  Orca works with applications and toolkits\n"
 "that support the Assistive Technology Service Provider Interface (AT-SPI)."
 msgstr ""
 
-#: gnu/packages/gnome.scm:8888
+#: gnu/packages/gnome.scm:10200
 msgid "GNOME's alternative spell checker"
 msgstr ""
 
-#: gnu/packages/gnome.scm:8890
+#: gnu/packages/gnome.scm:10202
 msgid ""
 "gspell provides a flexible API to add spell-checking to a GTK+\n"
 "application.  It provides a GObject API, spell-checking to text entries and\n"
 "text views, and buttons to choose the language."
 msgstr ""
 
-#: gnu/packages/gnome.scm:8932
+#: gnu/packages/gnome.scm:10244
 msgid "Project management software for the GNOME desktop"
 msgstr ""
 
-#: gnu/packages/gnome.scm:8934
+#: gnu/packages/gnome.scm:10246
 msgid ""
 "GNOME Planner is a project management tool based on the Work Breakdown\n"
 "Structure (WBS).  Its goal is to enable you to easily plan projects.  Based on\n"
@@ -8915,11 +10338,11 @@ msgid ""
 "views can be printed as PDF or PostScript files, or exported to HTML."
 msgstr ""
 
-#: gnu/packages/gnome.scm:9005
+#: gnu/packages/gnome.scm:10318
 msgid "GNOME music playing application"
 msgstr ""
 
-#: gnu/packages/gnome.scm:9007
+#: gnu/packages/gnome.scm:10320
 msgid ""
 "Lollypop is a music player designed to play well with GNOME desktop.\n"
 "Lollypop plays audio formats such as mp3, mp4, ogg and flac and gets information\n"
@@ -8927,31 +10350,42 @@ msgid ""
 "automatically and it can stream songs from online music services and charts."
 msgstr ""
 
-#: gnu/packages/gnome.scm:9034
+#: gnu/packages/gnome.scm:10343
 msgid "Video effects for Cheese and other GNOME applications"
 msgstr ""
 
-#: gnu/packages/gnome.scm:9036
+#: gnu/packages/gnome.scm:10345
 msgid ""
 "A collection of GStreamer video filters and effects to be used in\n"
 "photo-booth-like software, such as Cheese."
 msgstr ""
 
-#: gnu/packages/gnome.scm:9096
+#: gnu/packages/gnome.scm:10419
 msgid "Webcam photo booth software for GNOME"
 msgstr ""
 
-#: gnu/packages/gnome.scm:9098
+#: gnu/packages/gnome.scm:10421
 msgid ""
 "Cheese uses your webcam to take photos and videos.  Cheese can also\n"
 "apply fancy special effects and lets you share the fun with others."
 msgstr ""
 
-#: gnu/packages/gnome.scm:9135
+#: gnu/packages/gnome.scm:10472
+msgid "Password manager for the GNOME desktop"
+msgstr "Gestionnaire de mots de passe du bureau GNOME"
+
+#: gnu/packages/gnome.scm:10474
+msgid ""
+"Password Safe is a password manager which makes use of the KeePass v4\n"
+"format.  It integrates perfectly with the GNOME desktop and provides an easy\n"
+"and uncluttered interface for the management of password databases."
+msgstr ""
+
+#: gnu/packages/gnome.scm:10512
 msgid "Audio music cd ripper"
 msgstr ""
 
-#: gnu/packages/gnome.scm:9136
+#: gnu/packages/gnome.scm:10513
 msgid ""
 "Sound Juicer extracts audio from compact discs and convert it\n"
 "into audio files that a personal computer or digital audio player can play.\n"
@@ -8959,43 +10393,43 @@ msgid ""
 "mp3, Ogg Vorbis and FLAC"
 msgstr ""
 
-#: gnu/packages/gnome.scm:9193
+#: gnu/packages/gnome.scm:10567
 msgid "Convert between audio formats with a graphical interface"
 msgstr ""
 
-#: gnu/packages/gnome.scm:9195
+#: gnu/packages/gnome.scm:10569
 msgid ""
 "SoundConverter supports converting between many audio formats including\n"
 "Opus, Ogg Vorbis, FLAC and more.  It supports parallel conversion, and\n"
 "configurable file renaming. "
 msgstr ""
 
-#: gnu/packages/gnome.scm:9241
+#: gnu/packages/gnome.scm:10615
 msgid "Tool to help prevent repetitive strain injury (RSI)"
 msgstr ""
 
-#: gnu/packages/gnome.scm:9243
+#: gnu/packages/gnome.scm:10617
 msgid ""
 "Workrave is a program that assists in the recovery and prevention of\n"
 "repetitive strain injury (@dfn{RSI}).  The program frequently alerts you to take\n"
 "micro-pauses and rest breaks, and restricts you to your daily limit."
 msgstr ""
 
-#: gnu/packages/gnome.scm:9283
+#: gnu/packages/gnome.scm:10657
 msgid "GNOME hexadecimal editor"
 msgstr "Éditeur hexadécimal de GNOME"
 
-#: gnu/packages/gnome.scm:9284
+#: gnu/packages/gnome.scm:10658
 msgid ""
 "The GHex program can view and edit files in two ways:\n"
 "hexadecimal or ASCII.  It is useful for editing binary files in general."
 msgstr ""
 
-#: gnu/packages/gnome.scm:9322
+#: gnu/packages/gnome.scm:10696
 msgid "Companion library to GObject and Gtk+"
 msgstr ""
 
-#: gnu/packages/gnome.scm:9323
+#: gnu/packages/gnome.scm:10697
 msgid ""
 "The libdazzle library is a companion library to GObject and\n"
 "Gtk+.  It provides various features that the authors wish were in the\n"
@@ -9004,64 +10438,64 @@ msgid ""
 "generic enough to work for everyone."
 msgstr ""
 
-#: gnu/packages/gnome.scm:9393
+#: gnu/packages/gnome.scm:10766
 msgid "Manage your email, contacts and schedule"
 msgstr ""
 
-#: gnu/packages/gnome.scm:9394
+#: gnu/packages/gnome.scm:10767
 msgid ""
 "Evolution is a personal information management application\n"
 "that provides integrated mail, calendaring and address book\n"
 "functionality."
 msgstr ""
 
-#: gnu/packages/gnome.scm:9444
+#: gnu/packages/gnome.scm:10817
 msgid "GNOME image viewer and browser"
 msgstr ""
 
-#: gnu/packages/gnome.scm:9445
+#: gnu/packages/gnome.scm:10818
 msgid ""
 "GThumb is an image viewer, browser, organizer, editor and\n"
 "advanced image management tool"
 msgstr ""
 
-#: gnu/packages/gnome.scm:9496
+#: gnu/packages/gnome.scm:10869
 msgid "Store and run multiple GNOME terminals in one window"
 msgstr ""
 
-#: gnu/packages/gnome.scm:9498
+#: gnu/packages/gnome.scm:10871
 msgid ""
 "Terminator allows you to run multiple GNOME terminals in a grid and\n"
 "+tabs, and it supports drag and drop re-ordering of terminals."
 msgstr ""
 
-#: gnu/packages/gnome.scm:9542
+#: gnu/packages/gnome.scm:10917
 msgid "Library full of GTK+ widgets for mobile phones"
 msgstr ""
 
-#: gnu/packages/gnome.scm:9543
+#: gnu/packages/gnome.scm:10918
 msgid ""
 "The aim of the handy library is to help with developing user\n"
 "interfaces for mobile devices using GTK+.  It provides responsive GTK+ widgets\n"
 "for usage on small and big screens."
 msgstr ""
 
-#: gnu/packages/gnome.scm:9574
+#: gnu/packages/gnome.scm:10967
 msgid "GLib wrapper around the libgit2 Git access library"
 msgstr ""
 
-#: gnu/packages/gnome.scm:9575
+#: gnu/packages/gnome.scm:10968
 msgid ""
 "libgit2-glib is a GLib wrapper library around the libgit2 Git\n"
 "access library.  It only implements the core plumbing functions, not really the\n"
 "higher level porcelain stuff."
 msgstr ""
 
-#: gnu/packages/gnome.scm:9638
+#: gnu/packages/gnome.scm:11031
 msgid "Graphical user interface for git"
 msgstr "Interface utilisateur graphique pour git"
 
-#: gnu/packages/gnome.scm:9640
+#: gnu/packages/gnome.scm:11033
 msgid ""
 "gitg is a graphical user interface for git.  It aims at being a small,\n"
 "fast and convenient tool to visualize the history of git repositories.\n"
@@ -9069,33 +10503,33 @@ msgid ""
 "repository and commit your work."
 msgstr ""
 
-#: gnu/packages/gnome.scm:9677
+#: gnu/packages/gnome.scm:11070
 msgid "File alteration monitor"
 msgstr ""
 
-#: gnu/packages/gnome.scm:9679
+#: gnu/packages/gnome.scm:11072
 msgid ""
 "Gamin is a file and directory monitoring system defined to be a subset\n"
 "of the FAM (File Alteration Monitor) system.  This is a service provided by a\n"
-"library which allows to detect when a file or a directory has been modified."
+"library which detects when a file or a directory has been modified."
 msgstr ""
 
-#: gnu/packages/gnome.scm:9714
+#: gnu/packages/gnome.scm:11107
 msgid "Mahjongg tile-matching game"
 msgstr ""
 
-#: gnu/packages/gnome.scm:9715
+#: gnu/packages/gnome.scm:11108
 msgid ""
 "GNOME Mahjongg is a game based on the classic Chinese\n"
 "tile-matching game Mahjong.  It features multiple board layouts, tile themes,\n"
 "and a high score table."
 msgstr ""
 
-#: gnu/packages/gnome.scm:9752
+#: gnu/packages/gnome.scm:11145
 msgid "GNOME Extra Themes"
 msgstr ""
 
-#: gnu/packages/gnome.scm:9753
+#: gnu/packages/gnome.scm:11146
 msgid ""
 "This package provides themes and related elements that don't\n"
 "really fit in other upstream packages.  It offers legacy support for GTK+ 2\n"
@@ -9103,31 +10537,44 @@ msgid ""
 "index files needed for Adwaita to be used outside of GNOME."
 msgstr ""
 
-#: gnu/packages/gnome.scm:9807
+#: gnu/packages/gnome.scm:11183
+msgid "Note-taking application for the GNOME desktop"
+msgstr "Application de prise de notes du bureau GNOME"
+
+#: gnu/packages/gnome.scm:11185
+msgid ""
+"Gnote is a note-taking application written for the GNOME desktop\n"
+"environment."
+msgstr ""
+
+#: gnu/packages/gnome.scm:11238
 msgid "Simple IRC Client"
 msgstr ""
 
-#: gnu/packages/gnome.scm:9809
+#: gnu/packages/gnome.scm:11240
 msgid ""
 "Polari is a simple Internet Relay Chat (IRC) client that is designed to\n"
 "integrate seamlessly with the GNOME desktop."
 msgstr ""
 
-#: gnu/packages/gnome.scm:9860
+#: gnu/packages/gnome.scm:11292
 msgid "View, access, and manage remote and virtual systems"
 msgstr ""
 
-#: gnu/packages/gnome.scm:9861
+#: gnu/packages/gnome.scm:11293
 msgid ""
 "GNOME Boxes is a simple application to view, access, and\n"
-"manage remote and virtual systems."
+"manage remote and virtual systems.  Note that this application requires the\n"
+"@code{libvirt} and @code{virtlog} daemons to run.  Use the command\n"
+"@command{info '(guix) Virtualization Services'} to learn how to configure\n"
+"these services on the Guix System."
 msgstr ""
 
-#: gnu/packages/gnome.scm:9938
+#: gnu/packages/gnome.scm:11373
 msgid "GNOME email application built around conversations"
 msgstr ""
 
-#: gnu/packages/gnome.scm:9940
+#: gnu/packages/gnome.scm:11375
 msgid ""
 "Geary collects related messages together into conversations,\n"
 "making it easy to find and follow your discussions.  Full-text and keyword\n"
@@ -9139,22 +10586,82 @@ msgid ""
 "to."
 msgstr ""
 
-#: gnu/packages/gnome.scm:10010
+#: gnu/packages/gnome.scm:11418
+msgid "Program for creating labels and business cards"
+msgstr ""
+
+#: gnu/packages/gnome.scm:11420
+msgid ""
+"gLabels is a program for creating labels and business cards.  It is\n"
+"designed to work with various laser/ink-jet peel-off label and business\n"
+"card sheets that you’ll find at most office supply stores."
+msgstr ""
+
+#: gnu/packages/gnome.scm:11460
+msgid "LaTeX editor for the GNOME desktop"
+msgstr "Éditeur LaTeX du bureau GNOME"
+
+#: gnu/packages/gnome.scm:11462
+msgid ""
+"GNOME LaTeX is a LaTeX editor for the GNOME desktop.  It has features\n"
+"such as build tools, completion of LaTeX commands, structure navigation,\n"
+"symbol tables, document templates, project management, spell-checking, menus\n"
+"and toolbars."
+msgstr ""
+
+#: gnu/packages/gnome.scm:11519
+msgid "DBus daemon and utility for configuring gaming mice"
+msgstr ""
+
+#: gnu/packages/gnome.scm:11520
+msgid ""
+"libratbag provides @command{ratbagd}, a DBus daemon to\n"
+"configure input devices, mainly gaming mice.  The daemon provides a generic\n"
+"way to access the various features exposed by these mice and abstracts away\n"
+"hardware-specific and kernel-specific quirks.  There is also the\n"
+"@command{ratbagctl} command line interface for configuring devices.\n"
+"\n"
+"libratbag currently supports devices from Logitech, Etekcity, GSkill, Roccat,\n"
+"Steelseries.\n"
+"\n"
+"The ratbagd DBus service can be enabled by adding the following service to\n"
+"your operating-system definition:\n"
+"\n"
+"  (simple-service 'ratbagd dbus-root-service-type (list libratbag))"
+msgstr ""
+
+#: gnu/packages/gnome.scm:11588
+msgid "Configure bindings and LEDs on gaming mice"
+msgstr ""
+
+#: gnu/packages/gnome.scm:11589
+msgid ""
+"Piper is a GTK+ application for configuring gaming mice with\n"
+"onboard configuration for key bindings via libratbag.  Piper requires\n"
+"a @command{ratbagd} daemon running with root privileges.  It can be run\n"
+"manually as root, but is preferably configured as a DBus service that can\n"
+"launch on demand.  This can be configured by enabling the following service,\n"
+"provided there is a DBus service present:\n"
+"\n"
+"  (simple-service 'ratbagd dbus-root-service-type (list libratbag))"
+msgstr ""
+
+#: gnu/packages/gnome.scm:11646
 msgid "GNOME audio player for transcription"
 msgstr ""
 
-#: gnu/packages/gnome.scm:10011
+#: gnu/packages/gnome.scm:11647
 msgid ""
 "Parlatype is an audio player for the GNOME desktop\n"
 "environment.  Its main purpose is the manual transcription of spoken\n"
 "audio files."
 msgstr ""
 
-#: gnu/packages/gnome.scm:10038
+#: gnu/packages/gnome.scm:11674
 msgid "JSON-RPC library for GLib"
 msgstr "La bibliothèque JSON-RPC pour GLib"
 
-#: gnu/packages/gnome.scm:10039
+#: gnu/packages/gnome.scm:11675
 msgid ""
 "Jsonrpc-GLib is a library to communicate with JSON-RPC based\n"
 "peers in either a synchronous or asynchronous fashion.  It also allows\n"
@@ -9163,57 +10670,138 @@ msgid ""
 "host to avoid parser overhead and memory-allocator fragmentation."
 msgstr ""
 
-#: gnu/packages/gnuzilla.scm:144
+#: gnu/packages/gnome.scm:11708
+msgid "Haptic/visual/audio feedback via DBus"
+msgstr ""
+
+#: gnu/packages/gnome.scm:11709
+msgid ""
+"Feedbackd provides a DBus daemon to act on events to provide\n"
+"haptic, visual and audio feedback.  It offers the libfeedbackd library and\n"
+"GObject introspection bindings."
+msgstr ""
+
+#: gnu/packages/gnome.scm:11757
+msgid "System-wide performance profiler for GNU/Linux"
+msgstr ""
+
+#: gnu/packages/gnome.scm:11759
+msgid ""
+"Sysprof performs detailed, accurate, and fast CPU profiling of an entire\n"
+"GNU/Linux system including the kernel and all user-space applications.  This\n"
+"helps find the function(s) in which a program spends most of its time.\n"
+"\n"
+"It uses the kernel's built-in @code{ptrace} feature and handles shared\n"
+"libraries.  Applications do not need to be recompiled--or even restarted."
+msgstr ""
+
+#: gnu/packages/gnome.scm:11836
+msgid "Toolsmith for GNOME-based applications"
+msgstr ""
+
+#: gnu/packages/gnome.scm:11837
+msgid ""
+"Builder aims to be an integrated development\n"
+"environment (IDE) for writing GNOME-based software.  It features fuzzy search,\n"
+"auto-completion, a mini code map, documentation browsing, Git integration, an\n"
+"integrated profiler via Sysprof, debugging support, and more."
+msgstr ""
+
+#: gnu/packages/gnome.scm:11905
+msgid "Manga reader for GNOME"
+msgstr ""
+
+#: gnu/packages/gnome.scm:11906
+msgid ""
+"Komikku is an online/offline manga reader for GNOME,\n"
+"developed with the aim of being used with the Librem 5 phone."
+msgstr ""
+
+#: gnu/packages/gnome.scm:11981
+msgid "Uniform data access"
+msgstr "Accès aux données unifiée"
+
+#: gnu/packages/gnome.scm:11983
+msgid ""
+"GNU Data Access (GDA) is an attempt to provide uniform access to\n"
+"different kinds of data sources (databases, information servers, mail spools,\n"
+"etc).  It is a complete architecture that provides all you need to access\n"
+"your data."
+msgstr ""
+
+#: gnu/packages/gnome.scm:12030
+msgid "Translation making program"
+msgstr ""
+
+#: gnu/packages/gnome.scm:12032
+msgid ""
+"gtranslator is a quite comfortable gettext po/po.gz/(g)mo files editor\n"
+"for the GNOME 3.x platform with many features.  It aims to be a very complete\n"
+"editing environment for translation issues within the GNU gettext/GNOME desktop\n"
+"world."
+msgstr ""
+
+#: gnu/packages/gnuzilla.scm:146
 msgid "Mozilla javascript engine"
 msgstr ""
 
-#: gnu/packages/gnuzilla.scm:145
+#: gnu/packages/gnuzilla.scm:147
 msgid ""
 "SpiderMonkey is Mozilla's JavaScript engine written\n"
 "in C/C++."
 msgstr ""
 
-#: gnu/packages/gnuzilla.scm:1130
+#: gnu/packages/gnuzilla.scm:1148
 msgid "Entirely free browser derived from Mozilla Firefox"
 msgstr ""
 
-#: gnu/packages/gnuzilla.scm:1132
+#: gnu/packages/gnuzilla.scm:1150
 msgid ""
 "IceCat is the GNU version of the Firefox browser.  It is entirely free\n"
 "software, which does not recommend non-free plugins and addons.  It also\n"
 "features built-in privacy-protecting features.\n"
 "\n"
-"WARNING: IceCat 68 has not yet been released by the upstream IceCat project.\n"
+"WARNING: IceCat 78 has not yet been released by the upstream IceCat project.\n"
 "This is a preview release, and does not currently meet the privacy-respecting\n"
 "standards of the IceCat project."
 msgstr ""
 
-#: gnu/packages/gnuzilla.scm:1180
+#: gnu/packages/gnuzilla.scm:1473
+msgid "Rebranded Mozilla Thunderbird email client"
+msgstr ""
+
+#: gnu/packages/gnuzilla.scm:1475
+msgid ""
+"This package provides an email client built based on Mozilla\n"
+"Thunderbird.  It supports email, news feeds, chat, calendar and contacts."
+msgstr ""
+
+#: gnu/packages/gnuzilla.scm:1514
 msgid "Tool to extract passwords from Mozilla profiles"
 msgstr ""
 
-#: gnu/packages/gnuzilla.scm:1181
+#: gnu/packages/gnuzilla.scm:1515
 msgid ""
 "Firefox Decrypt is a tool to extract passwords from\n"
 "Mozilla (Firefox, Waterfox, Thunderbird, SeaMonkey) profiles."
 msgstr ""
 
-#: gnu/packages/gtk.scm:111
+#: gnu/packages/gtk.scm:114
 msgid "GNOME accessibility toolkit"
 msgstr ""
 
-#: gnu/packages/gtk.scm:113
+#: gnu/packages/gtk.scm:116
 msgid ""
 "ATK provides the set of accessibility interfaces that are implemented\n"
 "by other toolkits and applications.  Using the ATK interfaces, accessibility\n"
 "tools have full access to view and control running applications."
 msgstr ""
 
-#: gnu/packages/gtk.scm:152
+#: gnu/packages/gtk.scm:157
 msgid "2D graphics library"
 msgstr "Bibliothèque graphique 2D"
 
-#: gnu/packages/gtk.scm:154
+#: gnu/packages/gtk.scm:159
 msgid ""
 "Cairo is a 2D graphics library with support for multiple output devices.\n"
 "Currently supported output targets include the X Window System (via both\n"
@@ -9231,56 +10819,77 @@ msgid ""
 "affine transformation (scale, rotation, shear, etc.)."
 msgstr ""
 
-#: gnu/packages/gtk.scm:182
+#: gnu/packages/gtk.scm:193
 msgid "2D graphics library (with X11 support)"
 msgstr ""
 
-#: gnu/packages/gtk.scm:217
+#: gnu/packages/gtk.scm:228
 msgid "OpenType text shaping engine"
 msgstr ""
 
-#: gnu/packages/gtk.scm:219
+#: gnu/packages/gtk.scm:230
 msgid "HarfBuzz is an OpenType text shaping engine."
 msgstr ""
 
-#: gnu/packages/gtk.scm:255
+#: gnu/packages/gtk.scm:258
+msgid "Double-Array Trie Library"
+msgstr ""
+
+#: gnu/packages/gtk.scm:259
+msgid ""
+"Libdatrie is an implementation of double-array structure for\n"
+"representing trie.  Trie is a kind of digital search tree."
+msgstr ""
+
+#: gnu/packages/gtk.scm:289
+msgid "Thai language support library"
+msgstr ""
+
+#: gnu/packages/gtk.scm:290
+msgid ""
+"LibThai is a set of Thai language support routines aimed to\n"
+"ease developers’ tasks to incorporate Thai language support in their\n"
+"applications."
+msgstr ""
+
+#: gnu/packages/gtk.scm:339
 msgid "GNOME text and font handling library"
 msgstr ""
 
-#: gnu/packages/gtk.scm:257
+#: gnu/packages/gtk.scm:341
 msgid ""
 "Pango is the core text and font handling library used in GNOME\n"
 "applications.  It has extensive support for the different writing systems\n"
 "used throughout the world."
 msgstr ""
 
-#: gnu/packages/gtk.scm:283
+#: gnu/packages/gtk.scm:382
 msgid "Obsolete pango functions"
 msgstr ""
 
-#: gnu/packages/gtk.scm:284
+#: gnu/packages/gtk.scm:383
 msgid ""
 "Pangox was a X backend to pango.  It is now obsolete and no\n"
 "longer provided by recent pango releases.  pangox-compat provides the\n"
 "functions which were removed."
 msgstr ""
 
-#: gnu/packages/gtk.scm:320
+#: gnu/packages/gtk.scm:418
 msgid "GTK+ widget for interactive graph-like environments"
 msgstr ""
 
-#: gnu/packages/gtk.scm:322
+#: gnu/packages/gtk.scm:420
 msgid ""
 "Ganv is an interactive GTK+ widget for interactive “boxes and lines” or\n"
 "graph-like environments, e.g. modular synths or finite state machine\n"
 "diagrams."
 msgstr ""
 
-#: gnu/packages/gtk.scm:394
+#: gnu/packages/gtk.scm:474
 msgid "Widget that extends the standard GTK+ 2.x 'GtkTextView' widget"
 msgstr ""
 
-#: gnu/packages/gtk.scm:396
+#: gnu/packages/gtk.scm:476
 msgid ""
 "GtkSourceView is a portable C library that extends the standard GTK+\n"
 "framework for multiline text editing with support for configurable syntax\n"
@@ -9288,56 +10897,56 @@ msgid ""
 "printing and other features typical of a source code editor."
 msgstr ""
 
-#: gnu/packages/gtk.scm:445
+#: gnu/packages/gtk.scm:525
 msgid "GNOME source code widget"
 msgstr ""
 
-#: gnu/packages/gtk.scm:446
+#: gnu/packages/gtk.scm:526
 msgid ""
 "GtkSourceView is a text widget that extends the standard\n"
 "GTK+ text widget GtkTextView.  It improves GtkTextView by implementing syntax\n"
 "highlighting and other features typical of a source code editor."
 msgstr ""
 
-#: gnu/packages/gtk.scm:517
+#: gnu/packages/gtk.scm:597
 msgid "GNOME image loading and manipulation library"
 msgstr ""
 
-#: gnu/packages/gtk.scm:519
+#: gnu/packages/gtk.scm:599
 msgid ""
 "GdkPixbuf is a library for image loading and manipulation developed\n"
 "in the GNOME project."
 msgstr ""
 
-#: gnu/packages/gtk.scm:553
+#: gnu/packages/gtk.scm:633
 msgid "GNOME image loading and manipulation library, with SVG support"
 msgstr ""
 
-#: gnu/packages/gtk.scm:617
+#: gnu/packages/gtk.scm:697
 msgid "Assistive Technology Service Provider Interface, core components"
 msgstr ""
 
-#: gnu/packages/gtk.scm:619
+#: gnu/packages/gtk.scm:699
 msgid ""
 "The Assistive Technology Service Provider Interface, core components,\n"
 "is part of the GNOME accessibility project."
 msgstr ""
 
-#: gnu/packages/gtk.scm:654
+#: gnu/packages/gtk.scm:754
 msgid "Assistive Technology Service Provider Interface, ATK bindings"
 msgstr ""
 
-#: gnu/packages/gtk.scm:656
+#: gnu/packages/gtk.scm:756
 msgid ""
 "The Assistive Technology Service Provider Interface\n"
 "is part of the GNOME accessibility project."
 msgstr ""
 
-#: gnu/packages/gtk.scm:716
+#: gnu/packages/gtk.scm:821
 msgid "Cross-platform toolkit for creating graphical user interfaces"
 msgstr ""
 
-#: gnu/packages/gtk.scm:718
+#: gnu/packages/gtk.scm:823
 msgid ""
 "GTK+, or the GIMP Toolkit, is a multi-platform toolkit for creating\n"
 "graphical user interfaces.  Offering a complete set of widgets, GTK+ is\n"
@@ -9345,11 +10954,11 @@ msgid ""
 "application suites."
 msgstr ""
 
-#: gnu/packages/gtk.scm:857
+#: gnu/packages/gtk.scm:966
 msgid "Cairo bindings for GNU Guile"
 msgstr "Liaisons Cairo pour GNU Guile"
 
-#: gnu/packages/gtk.scm:859
+#: gnu/packages/gtk.scm:968
 msgid ""
 "Guile-Cairo wraps the Cairo graphics library for Guile Scheme.\n"
 "Guile-Cairo is complete, wrapping almost all of the Cairo API.  It is API\n"
@@ -9359,21 +10968,21 @@ msgid ""
 "exceptions, macros, and a dynamic programming environment."
 msgstr ""
 
-#: gnu/packages/gtk.scm:923
+#: gnu/packages/gtk.scm:1029
 msgid "Render SVG images using Cairo from Guile"
 msgstr ""
 
-#: gnu/packages/gtk.scm:925
+#: gnu/packages/gtk.scm:1031
 msgid ""
 "Guile-RSVG wraps the RSVG library for Guile, allowing you to render SVG\n"
 "images onto Cairo surfaces."
 msgstr ""
 
-#: gnu/packages/gtk.scm:992
+#: gnu/packages/gtk.scm:1101
 msgid "Create SVG or PDF presentations in Guile"
 msgstr "Création de SVG et de présentations PDF en Guile"
 
-#: gnu/packages/gtk.scm:994
+#: gnu/packages/gtk.scm:1103
 msgid ""
 "Guile-Present defines a declarative vocabulary for presentations,\n"
 "together with tools to render presentation documents as SVG or PDF.\n"
@@ -9382,51 +10991,51 @@ msgid ""
 "documents."
 msgstr ""
 
-#: gnu/packages/gtk.scm:1058
+#: gnu/packages/gtk.scm:1170
 msgid "Guile interface for GTK+ programming for GNOME"
 msgstr ""
 
-#: gnu/packages/gtk.scm:1060
+#: gnu/packages/gtk.scm:1172
 msgid ""
 "Includes guile-clutter, guile-gnome-gstreamer,\n"
 "guile-gnome-platform (GNOME developer libraries), and guile-gtksourceview."
 msgstr ""
 
-#: gnu/packages/gtk.scm:1093
+#: gnu/packages/gtk.scm:1205
 msgid "C++ bindings to the Cairo 2D graphics library"
 msgstr ""
 
-#: gnu/packages/gtk.scm:1095
+#: gnu/packages/gtk.scm:1207
 msgid ""
 "Cairomm provides a C++ programming interface to the Cairo 2D graphics\n"
 "library."
 msgstr ""
 
-#: gnu/packages/gtk.scm:1119
+#: gnu/packages/gtk.scm:1248
 msgid "C++ interface to the Pango text rendering library"
 msgstr ""
 
-#: gnu/packages/gtk.scm:1121
+#: gnu/packages/gtk.scm:1250
 msgid ""
 "Pangomm provides a C++ programming interface to the Pango text rendering\n"
 "library."
 msgstr ""
 
-#: gnu/packages/gtk.scm:1142
+#: gnu/packages/gtk.scm:1290
 msgid "C++ interface to the ATK accessibility library"
 msgstr ""
 
-#: gnu/packages/gtk.scm:1144
+#: gnu/packages/gtk.scm:1292
 msgid ""
 "ATKmm provides a C++ programming interface to the ATK accessibility\n"
 "toolkit."
 msgstr ""
 
-#: gnu/packages/gtk.scm:1185
+#: gnu/packages/gtk.scm:1333
 msgid "C++ interface to the GTK+ graphical user interface library"
 msgstr ""
 
-#: gnu/packages/gtk.scm:1187
+#: gnu/packages/gtk.scm:1335
 msgid ""
 "gtkmm is the official C++ interface for the popular GUI library GTK+.\n"
 "Highlights include typesafe callbacks, and a comprehensive set of widgets that\n"
@@ -9435,11 +11044,11 @@ msgid ""
 "extensive documentation, including API reference and a tutorial."
 msgstr ""
 
-#: gnu/packages/gtk.scm:1235
+#: gnu/packages/gtk.scm:1383
 msgid "C++ interface to the GTK+ 'GtkTextView' widget"
 msgstr ""
 
-#: gnu/packages/gtk.scm:1237
+#: gnu/packages/gtk.scm:1385
 msgid ""
 "gtksourceviewmm is a portable C++ library that extends the standard GTK+\n"
 "framework for multiline text editing with support for configurable syntax\n"
@@ -9447,41 +11056,41 @@ msgid ""
 "printing and other features typical of a source code editor."
 msgstr ""
 
-#: gnu/packages/gtk.scm:1267
+#: gnu/packages/gtk.scm:1415
 msgid "Python bindings for cairo"
 msgstr ""
 
-#: gnu/packages/gtk.scm:1269
+#: gnu/packages/gtk.scm:1417
 msgid "Pycairo is a set of Python bindings for the Cairo graphics library."
 msgstr ""
 
-#: gnu/packages/gtk.scm:1342
+#: gnu/packages/gtk.scm:1502
 msgid "Python bindings for GTK+"
 msgstr ""
 
-#: gnu/packages/gtk.scm:1344
+#: gnu/packages/gtk.scm:1504
 msgid ""
 "PyGTK allows you to write full featured GTK programs in Python.  It is\n"
 "targeted at GTK 2.x, and can be used in conjunction with gnome-python to\n"
 "write GNOME applications."
 msgstr ""
 
-#: gnu/packages/gtk.scm:1368
+#: gnu/packages/gtk.scm:1528
 msgid "Perl interface to the cairo 2d vector graphics library"
 msgstr ""
 
-#: gnu/packages/gtk.scm:1369
+#: gnu/packages/gtk.scm:1529
 msgid ""
 "Cairo provides Perl bindings for the vector graphics library\n"
 "cairo.  It supports multiple output targets, including PNG, PDF and SVG.  Cairo\n"
 "produces identical output on all those targets."
 msgstr ""
 
-#: gnu/packages/gtk.scm:1404
+#: gnu/packages/gtk.scm:1564
 msgid "Perl interface to the 2.x series of the Gimp Toolkit library"
 msgstr ""
 
-#: gnu/packages/gtk.scm:1405
+#: gnu/packages/gtk.scm:1565
 msgid ""
 "Perl bindings to the 2.x series of the Gtk+ widget set.\n"
 "This module allows you to write graphical user interfaces in a Perlish and\n"
@@ -9489,11 +11098,11 @@ msgid ""
 "yet remaining very close in spirit to original API."
 msgstr ""
 
-#: gnu/packages/gtk.scm:1432
+#: gnu/packages/gtk.scm:1592
 msgid "Layout and render international text"
 msgstr ""
 
-#: gnu/packages/gtk.scm:1433
+#: gnu/packages/gtk.scm:1593
 msgid ""
 "Pango is a library for laying out and rendering text, with an\n"
 "emphasis on internationalization.  Pango can be used anywhere that text layout\n"
@@ -9510,11 +11119,11 @@ msgid ""
 "and routines to assist in editing internationalized text."
 msgstr ""
 
-#: gnu/packages/gtk.scm:1487
+#: gnu/packages/gtk.scm:1647
 msgid "Library for minimalistic gtk+3 user interfaces"
 msgstr ""
 
-#: gnu/packages/gtk.scm:1488
+#: gnu/packages/gtk.scm:1648
 msgid ""
 "Girara is a library that implements a user interface that\n"
 "focuses on simplicity and minimalism.  Currently based on GTK+, a\n"
@@ -9525,121 +11134,120 @@ msgid ""
 "information."
 msgstr ""
 
-#: gnu/packages/gtk.scm:1587
+#: gnu/packages/gtk.scm:1747
 msgid "Documentation generator from C source code"
 msgstr ""
 
-#: gnu/packages/gtk.scm:1589
+#: gnu/packages/gtk.scm:1749
 msgid ""
 "GTK-Doc generates API documentation from comments added to C code.  It is\n"
 "typically used to document the public API of GTK+ and GNOME libraries, but it\n"
 "can also be used to document application code."
 msgstr ""
 
-#: gnu/packages/gtk.scm:1617
+#: gnu/packages/gtk.scm:1777
 msgid "Theming engines for GTK+ 2.x"
 msgstr ""
 
-#: gnu/packages/gtk.scm:1619
+#: gnu/packages/gtk.scm:1779
 msgid ""
 "This package contains the standard GTK+ 2.x theming engines including\n"
 "Clearlooks, Crux, High Contrast, Industrial, LighthouseBlue, Metal, Mist,\n"
 "Redmond95 and ThinIce."
 msgstr ""
 
-#: gnu/packages/gtk.scm:1647
+#: gnu/packages/gtk.scm:1807
 msgid "Cairo-based theming engine for GTK+ 2.x"
 msgstr ""
 
-#: gnu/packages/gtk.scm:1649
+#: gnu/packages/gtk.scm:1809
 msgid ""
 "Murrine is a cairo-based GTK+ theming engine.  It is named after the\n"
 "glass artworks done by Venicians glass blowers."
 msgstr ""
 
-#: gnu/packages/gtk.scm:1676
+#: gnu/packages/gtk.scm:1836
 msgid "Spell-checking addon for GTK's TextView widget"
 msgstr ""
 
-#: gnu/packages/gtk.scm:1678
+#: gnu/packages/gtk.scm:1838
 msgid ""
 "GtkSpell provides word-processor-style highlighting and replacement of\n"
 "misspelled words in a GtkTextView widget."
 msgstr ""
 
-#: gnu/packages/gtk.scm:1704
+#: gnu/packages/gtk.scm:1864
 msgid "Lightweight GTK+ clipboard manager"
 msgstr ""
 
-#: gnu/packages/gtk.scm:1706
+#: gnu/packages/gtk.scm:1866
 msgid ""
 "ClipIt is a clipboard manager with features such as a history, search\n"
 "thereof, global hotkeys and clipboard item actions.  It was forked from\n"
 "Parcellite and adds bugfixes and features."
 msgstr ""
 
-#: gnu/packages/gtk.scm:1738
+#: gnu/packages/gtk.scm:1899
 msgid "Thin layer of graphic data types"
 msgstr ""
 
-#: gnu/packages/gtk.scm:1739
+#: gnu/packages/gtk.scm:1900
 msgid ""
-"This library provides graphic types and their relative API;\n"
-"it does not deal with windowing system surfaces, drawing, scene graphs, or\n"
-"input."
+"Graphene provides graphic types and their relative API; it\n"
+"does not deal with windowing system surfaces, drawing, scene graphs, or input."
 msgstr ""
 
-#: gnu/packages/gtk.scm:1764
+#: gnu/packages/gtk.scm:1925
 msgid "Gtk+ widget for dealing with 2-D tabular data"
 msgstr ""
 
-#: gnu/packages/gtk.scm:1766
+#: gnu/packages/gtk.scm:1927
 msgid ""
 "GNU Spread Sheet Widget is a library for Gtk+ which provides a widget for\n"
 "viewing and manipulating 2 dimensional tabular data in a manner similar to many\n"
 "popular spread sheet programs."
 msgstr ""
 
-#: gnu/packages/gtk.scm:1794
+#: gnu/packages/gtk.scm:1955
 msgid "System tray volume applet"
 msgstr ""
 
-#: gnu/packages/gtk.scm:1796
+#: gnu/packages/gtk.scm:1957
 msgid ""
 "Volume Icon is a volume indicator and control applet for @acronym{the\n"
 "Advanced Linux Sound Architecture, ALSA}.  It sits in the system tray,\n"
 "independent of your desktop environment, and supports global key bindings."
 msgstr ""
 
-#: gnu/packages/gtk.scm:1839
+#: gnu/packages/gtk.scm:2000
 msgid "GTK+ dialog boxes for shell scripts"
 msgstr ""
 
-#: gnu/packages/gtk.scm:1841
+#: gnu/packages/gtk.scm:2002
 msgid ""
 "This program allows you to display GTK+ dialog boxes from command line or\n"
 "shell scripts.  Example of how to use @code{yad} can be consulted at\n"
 "@url{https://sourceforge.net/p/yad-dialog/wiki/browse_pages/}."
 msgstr ""
 
-#: gnu/packages/gtk.scm:1890
+#: gnu/packages/gtk.scm:2059
 msgid "Library for passing menus over DBus"
 msgstr "Bibliothèque pour passer des menus via DBus"
 
-#: gnu/packages/gtk.scm:1891
+#: gnu/packages/gtk.scm:2060
 msgid ""
 "@code{libdbusmenu} passes a menu structure across DBus so\n"
 "that a program can create a menu simply without worrying about how it is\n"
 "displayed on the other side of the bus."
 msgstr ""
 
-#: gnu/packages/gtk.scm:1916
+#: gnu/packages/gtk.scm:2085
 msgid ""
 "Library to create Wayland desktop components using the Layer\n"
 "Shell protocol"
 msgstr ""
 
-#: gnu/packages/gtk.scm:1918
+#: gnu/packages/gtk.scm:2087
 msgid ""
 "Layer Shell is a Wayland protocol for desktop shell\n"
 "components, such as panels, notifications and wallpapers.  It can be used to\n"
@@ -9648,21 +11256,35 @@ msgid ""
 "popovers."
 msgstr ""
 
-#: gnu/packages/gtk.scm:1965
+#: gnu/packages/gtk.scm:2134
 msgid "Canvas widget for GTK+"
 msgstr ""
 
-#: gnu/packages/gtk.scm:1966
+#: gnu/packages/gtk.scm:2135
 msgid ""
 "GooCanvas is a canvas widget for GTK+ that uses the cairo 2D\n"
 "library for drawing."
 msgstr ""
 
-#: gnu/packages/guile.scm:126 gnu/packages/guile.scm:207
+#: gnu/packages/gtk.scm:2199
+msgid "Spreadsheet widget for GTK+"
+msgstr ""
+
+#: gnu/packages/gtk.scm:2200
+msgid ""
+"GtkSheet is a matrix widget for GTK+.  It consists of an\n"
+"scrollable grid of cells where you can allocate text.  Cell contents can be\n"
+"edited interactively through a specially designed entry, GtkItemEntry.  It is\n"
+"also a container subclass, allowing you to display buttons, images and any\n"
+"other widget in it.  You can also set many attributes such as border,\n"
+"foreground and background colors, text justification and more."
+msgstr ""
+
+#: gnu/packages/guile.scm:127 gnu/packages/guile.scm:222
 msgid "Scheme implementation intended especially for extensions"
 msgstr "Implantation de Scheme spécialement destinée aux extensions"
 
-#: gnu/packages/guile.scm:128 gnu/packages/guile.scm:209
+#: gnu/packages/guile.scm:129 gnu/packages/guile.scm:224
 msgid ""
 "Guile is the GNU Ubiquitous Intelligent Language for Extensions, the\n"
 "official extension language of the GNU system.  It is an implementation of\n"
@@ -9675,22 +11297,22 @@ msgstr ""
 "Scheme qui peut être facilement incluse dans d'autres applications pour faciliter\n"
 "l'ajout de fonctionnalités sans avoir à réécrire le code source."
 
-#: gnu/packages/guile.scm:363
+#: gnu/packages/guile.scm:397
 msgid "Line editing support for GNU Guile"
 msgstr "Support de l'édition de ligne pour GNU Guile"
 
-#: gnu/packages/guile.scm:365
+#: gnu/packages/guile.scm:399
 msgid ""
 "This module provides line editing support via the Readline library for\n"
 "GNU@tie{}Guile.  Use the @code{(ice-9 readline)} module and call its\n"
 "@code{activate-readline} procedure to enable it."
 msgstr ""
 
-#: gnu/packages/guile.scm:462
+#: gnu/packages/guile.scm:533
 msgid "JSON module for Guile"
 msgstr "Module JSON pour Guile"
 
-#: gnu/packages/guile.scm:464
+#: gnu/packages/guile.scm:535
 msgid ""
 "Guile-JSON supports parsing and building JSON documents according to the\n"
 "specification.  These are the main features:\n"
@@ -9712,29 +11334,29 @@ msgstr ""
 "@item formatage élégant.\n"
 "@end itemize\n"
 
-#: gnu/packages/guile.scm:546
+#: gnu/packages/guile.scm:636
 msgid "Guile bindings to the GDBM library via Guile's FFI"
 msgstr ""
 
-#: gnu/packages/guile.scm:548
+#: gnu/packages/guile.scm:638
 msgid ""
 "Guile bindings to the GDBM key-value storage system, using\n"
 "Guile's foreign function interface."
 msgstr ""
 
-#: gnu/packages/guile.scm:588
+#: gnu/packages/guile.scm:673
 msgid "Access SQLite databases from Guile"
 msgstr ""
 
-#: gnu/packages/guile.scm:590
+#: gnu/packages/guile.scm:675
 msgid "This package provides Guile bindings to the SQLite database system."
 msgstr "Ce paquet fournit les liaisons Guile pour le système de base de données SQLite."
 
-#: gnu/packages/guile.scm:632
+#: gnu/packages/guile.scm:719
 msgid "Structured access to bytevector contents for Guile"
 msgstr ""
 
-#: gnu/packages/guile.scm:634
+#: gnu/packages/guile.scm:721
 msgid ""
 "Guile bytestructures offers a system imitating the type system\n"
 "of the C programming language, to be used on bytevectors.  C's type\n"
@@ -9743,21 +11365,43 @@ msgid ""
 "type system, elevating types to first-class status."
 msgstr ""
 
-#: gnu/packages/guile.scm:671
+#: gnu/packages/guile.scm:762
 msgid "Guile bindings for libgit2"
 msgstr "Liaisons Guile pour libgit2"
 
-#: gnu/packages/guile.scm:673
+#: gnu/packages/guile.scm:764
 msgid ""
 "This package provides Guile bindings to libgit2, a library to\n"
 "manipulate repositories of the Git version control system."
 msgstr ""
 
-#: gnu/packages/imagemagick.scm:113 gnu/packages/imagemagick.scm:217
+#: gnu/packages/guile.scm:807
+msgid "Guile bindings to zlib"
+msgstr "Liaisons Guile pour zlib"
+
+#: gnu/packages/guile.scm:809
+msgid ""
+"This package provides Guile bindings for zlib, a lossless\n"
+"data-compression library.  The bindings are written in pure Scheme by using\n"
+"Guile's foreign function interface."
+msgstr ""
+
+#: gnu/packages/guile.scm:843
+msgid "Guile bindings to lzlib"
+msgstr "Liaisons Guile pour lzlib"
+
+#: gnu/packages/guile.scm:845
+msgid ""
+"This package provides Guile bindings for lzlib, a C library for\n"
+"in-memory LZMA compression and decompression.  The bindings are written in\n"
+"pure Scheme by using Guile's foreign function interface."
+msgstr ""
+
+#: gnu/packages/imagemagick.scm:117 gnu/packages/imagemagick.scm:221
 msgid "Create, edit, compose, or convert bitmap images"
 msgstr ""
 
-#: gnu/packages/imagemagick.scm:115
+#: gnu/packages/imagemagick.scm:119
 msgid ""
 "ImageMagick is a software suite to create, edit, compose, or convert\n"
 "bitmap images.  It can read and write images in a variety of formats (over 100)\n"
@@ -9767,11 +11411,11 @@ msgid ""
 "text, lines, polygons, ellipses and Bézier curves."
 msgstr ""
 
-#: gnu/packages/imagemagick.scm:162
+#: gnu/packages/imagemagick.scm:166
 msgid "Perl interface to ImageMagick"
 msgstr ""
 
-#: gnu/packages/imagemagick.scm:163
+#: gnu/packages/imagemagick.scm:167
 msgid ""
 "This Perl extension allows the reading, manipulation and\n"
 "writing of a large number of image file formats using the ImageMagick library.\n"
@@ -9779,59 +11423,71 @@ msgid ""
 "script."
 msgstr ""
 
-#: gnu/packages/imagemagick.scm:219
+#: gnu/packages/imagemagick.scm:223
 msgid ""
 "GraphicsMagick provides a comprehensive collection of utilities,\n"
 "programming interfaces, and GUIs, to support file format conversion, image\n"
 "processing, and 2D vector rendering."
 msgstr ""
 
-#: gnu/packages/image.scm:115
+#: gnu/packages/image.scm:121
+msgid "Image Quality Assessment"
+msgstr ""
+
+#: gnu/packages/image.scm:122
+msgid ""
+"IQA is a C library for objectively measuring image/video\n"
+"quality.  It implements many popular algorithms, such as MS-SSIM, MS-SSIM*,\n"
+"SIMM, MSE, and PSNR.  It is designed to be fast, accurate, and reliable.  All\n"
+"code is Valgrind-clean and unit tested."
+msgstr ""
+
+#: gnu/packages/image.scm:153
 msgid "Library for handling PNG files"
 msgstr "Bibliothèque pour manipuler des fichiers PNG"
 
-#: gnu/packages/image.scm:117
+#: gnu/packages/image.scm:155
 msgid ""
 "Libpng is the official PNG (Portable Network Graphics) reference\n"
 "library.  It supports almost all PNG features and is extensible."
 msgstr ""
 
-#: gnu/packages/image.scm:181
+#: gnu/packages/image.scm:219
 msgid "APNG patch for libpng"
 msgstr ""
 
-#: gnu/packages/image.scm:183
+#: gnu/packages/image.scm:221
 msgid ""
 "APNG (Animated Portable Network Graphics) is an unofficial\n"
 "extension of the APNG (Portable Network Graphics) format.\n"
 "APNG patch provides APNG support to libpng."
 msgstr ""
 
-#: gnu/packages/image.scm:238
+#: gnu/packages/image.scm:276
 msgid "Utility to compress PNG files"
 msgstr ""
 
-#: gnu/packages/image.scm:239
+#: gnu/packages/image.scm:277
 msgid ""
 "Pngcrush optimizes @acronym{PNG, Portable Network Graphics}\n"
 "images.  It can further losslessly compress them by as much as 40%."
 msgstr ""
 
-#: gnu/packages/image.scm:293
+#: gnu/packages/image.scm:331
 msgid "Pretty small png library"
 msgstr "Bibliothèque png très petite"
 
-#: gnu/packages/image.scm:294
+#: gnu/packages/image.scm:332
 msgid ""
 "A pretty small png library.\n"
 "Currently all documentation resides in @file{pnglite.h}."
 msgstr ""
 
-#: gnu/packages/image.scm:315
+#: gnu/packages/image.scm:353
 msgid "Image palette quantization library"
 msgstr "Bibliothèque de quantisation de palettes d'images"
 
-#: gnu/packages/image.scm:316
+#: gnu/packages/image.scm:354
 msgid ""
 "libimagequant is a small, portable C library for\n"
 "high-quality conversion of RGBA images to 8-bit indexed-color (palette)\n"
@@ -9839,11 +11495,11 @@ msgid ""
 "and other PNG optimizers."
 msgstr ""
 
-#: gnu/packages/image.scm:348
+#: gnu/packages/image.scm:386
 msgid "Utility and library for lossy compressing PNG images"
 msgstr "Outils et bibliothèque pour compresser des images PNG avec perte"
 
-#: gnu/packages/image.scm:349
+#: gnu/packages/image.scm:387
 msgid ""
 "pngquant is a PNG compressor that significantly reduces file\n"
 "sizes by converting images to a more efficient 8-bit PNG format with alpha\n"
@@ -9862,11 +11518,11 @@ msgid ""
 "@end enumerate"
 msgstr ""
 
-#: gnu/packages/image.scm:377
+#: gnu/packages/image.scm:415
 msgid "Library for handling JPEG files"
 msgstr "Bibliothèque de manipulation des fichiers JPEG"
 
-#: gnu/packages/image.scm:379
+#: gnu/packages/image.scm:417
 msgid ""
 "Libjpeg implements JPEG image encoding, decoding, and transcoding.\n"
 "JPEG is a standardized compression method for full-color and gray-scale\n"
@@ -9883,32 +11539,32 @@ msgid ""
 "@end enumerate"
 msgstr ""
 
-#: gnu/packages/image.scm:482
+#: gnu/packages/image.scm:510
 msgid "Implementation of the JPEG XR standard"
 msgstr "Implémentation du standard JPEG XR"
 
-#: gnu/packages/image.scm:483
+#: gnu/packages/image.scm:511
 msgid ""
 "JPEG XR is an approved ISO/IEC International standard (its\n"
 "official designation is ISO/IEC 29199-2). This library is an implementation of that standard."
 msgstr ""
 
-#: gnu/packages/image.scm:505
+#: gnu/packages/image.scm:533
 msgid "Optimize JPEG images"
 msgstr ""
 
-#: gnu/packages/image.scm:507
+#: gnu/packages/image.scm:535
 msgid ""
 "jpegoptim provides lossless optimization (based on optimizing\n"
 "the Huffman tables) and \"lossy\" optimization based on setting\n"
 "maximum quality factor."
 msgstr ""
 
-#: gnu/packages/image.scm:532
+#: gnu/packages/image.scm:560
 msgid "Library for handling Mac OS icns resource files"
 msgstr "Bibliothèque de manipulation des fichiers de resources d'icones Mac OS"
 
-#: gnu/packages/image.scm:534
+#: gnu/packages/image.scm:562
 msgid ""
 "Libicns is a library for the manipulation of Mac OS IconFamily resource\n"
 "type files (ICNS).  @command{icns2png} and @command{png2icns} are provided to\n"
@@ -9918,11 +11574,11 @@ msgid ""
 "extracting icontainer icon files."
 msgstr ""
 
-#: gnu/packages/image.scm:567
+#: gnu/packages/image.scm:596
 msgid "Library for handling TIFF files"
 msgstr "Bibliothèque de manipulation de fichiers TIFF"
 
-#: gnu/packages/image.scm:569
+#: gnu/packages/image.scm:598
 msgid ""
 "Libtiff provides support for the Tag Image File Format (TIFF), a format\n"
 "used for storing image data.\n"
@@ -9930,11 +11586,11 @@ msgid ""
 "collection of tools for doing simple manipulations of TIFF images."
 msgstr ""
 
-#: gnu/packages/image.scm:619
+#: gnu/packages/image.scm:655
 msgid "Library and tools for image processing and analysis"
 msgstr ""
 
-#: gnu/packages/image.scm:621
+#: gnu/packages/image.scm:657
 msgid ""
 "Leptonica is a C library and set of command-line tools for efficient\n"
 "image processing and image analysis operations.  It supports rasterop, affine\n"
@@ -9944,11 +11600,11 @@ msgid ""
 "arithmetic ops."
 msgstr ""
 
-#: gnu/packages/image.scm:644
+#: gnu/packages/image.scm:695
 msgid "Decoder of the JBIG2 image compression format"
 msgstr ""
 
-#: gnu/packages/image.scm:646
+#: gnu/packages/image.scm:697
 msgid ""
 "JBIG2 is designed for lossy or lossless encoding of @code{bilevel} (1-bit\n"
 "monochrome) images at moderately high resolution, and in particular scanned\n"
@@ -9961,11 +11617,11 @@ msgid ""
 "work."
 msgstr ""
 
-#: gnu/packages/image.scm:714
+#: gnu/packages/image.scm:765
 msgid "Lossless compression for bi-level high-resolution images"
 msgstr ""
 
-#: gnu/packages/image.scm:716
+#: gnu/packages/image.scm:767
 msgid ""
 "JBIG-KIT implements the JBIG1 data compression standard (ITU-T T.82 and\n"
 "ISO/IEC 11544:1993), designed for bi-level (one bit per pixel) images such as\n"
@@ -9983,11 +11639,22 @@ msgid ""
 "images of initially unknown height."
 msgstr ""
 
-#: gnu/packages/image.scm:755
+#: gnu/packages/image.scm:799
+msgid "Test files for OpenJPEG"
+msgstr ""
+
+#: gnu/packages/image.scm:800
+msgid ""
+"OpenJPEG-Data contains all files required to run the openjpeg\n"
+"test suite, including conformance tests (following Rec. ITU-T T.803 | ISO/IEC\n"
+"15444-4 procedures), non-regression tests and unit tests."
+msgstr ""
+
+#: gnu/packages/image.scm:828
 msgid "JPEG 2000 codec"
 msgstr ""
 
-#: gnu/packages/image.scm:757
+#: gnu/packages/image.scm:830
 msgid ""
 "The OpenJPEG library is a JPEG 2000 codec written in C.  It has\n"
 "been developed in order to promote the use of JPEG 2000, the new\n"
@@ -10000,11 +11667,11 @@ msgid ""
 "error-resilience, a Java-viewer for j2k-images, ..."
 msgstr ""
 
-#: gnu/packages/image.scm:824
+#: gnu/packages/image.scm:897
 msgid "Tools and library for working with GIF images"
 msgstr "Outils et bibliothèque pour travailler avec les images GIF"
 
-#: gnu/packages/image.scm:826
+#: gnu/packages/image.scm:899
 msgid ""
 "GIFLIB is a library for reading and writing GIF images.  It is API and\n"
 "ABI compatible with libungif which was in wide use while the LZW compression\n"
@@ -10012,19 +11679,30 @@ msgid ""
 "compose, and analyze GIF images."
 msgstr ""
 
-#: gnu/packages/image.scm:848
+#: gnu/packages/image.scm:949
+msgid "Library for working with WFM, EMF and EMF+ images"
+msgstr "Bibliothèque pour travailler avec les images WFM, EMF et EMF+"
+
+#: gnu/packages/image.scm:950
+msgid ""
+"The libUEMF library is a portable C99 implementation for\n"
+"reading and writing @acronym{WFM, Windows Metafile}, @acronym{EMF, Enhanced\n"
+"Metafile}, and @acronym{EMF+, Enhanced Metafile Plus} files."
+msgstr ""
+
+#: gnu/packages/image.scm:970
 msgid "GIF decompression library"
 msgstr "Bibliothèque de décompression GIF"
 
-#: gnu/packages/image.scm:850
+#: gnu/packages/image.scm:972
 msgid "libungif is the old GIF decompression library by the GIFLIB project."
 msgstr ""
 
-#: gnu/packages/image.scm:881
+#: gnu/packages/image.scm:1003
 msgid "Loading, saving, rendering and manipulating image files"
 msgstr ""
 
-#: gnu/packages/image.scm:883
+#: gnu/packages/image.scm:1005
 msgid ""
 "Imlib2 is a library that does image file loading and saving as well as\n"
 "rendering, manipulation, arbitrary polygon support, etc.\n"
@@ -10037,32 +11715,32 @@ msgid ""
 "more modular, simple, and flexible."
 msgstr ""
 
-#: gnu/packages/image.scm:923
+#: gnu/packages/image.scm:1045
 msgid "Wrapper library for imlib2"
 msgstr ""
 
-#: gnu/packages/image.scm:925
+#: gnu/packages/image.scm:1047
 msgid ""
 "Giblib is a simple library which wraps imlib2's context API, avoiding\n"
 "all the context_get/set calls, adds fontstyles to the truetype renderer and\n"
 "supplies a generic doubly-linked list and some string functions."
 msgstr ""
 
-#: gnu/packages/image.scm:1001
+#: gnu/packages/image.scm:1135
 msgid "Library for handling popular graphics image formats"
 msgstr ""
 
-#: gnu/packages/image.scm:1003
+#: gnu/packages/image.scm:1137
 msgid ""
 "FreeImage is a library for developers who would like to support popular\n"
 "graphics image formats like PNG, BMP, JPEG, TIFF and others."
 msgstr ""
 
-#: gnu/packages/image.scm:1069
+#: gnu/packages/image.scm:1206
 msgid "Computer vision library"
 msgstr ""
 
-#: gnu/packages/image.scm:1071
+#: gnu/packages/image.scm:1208
 msgid ""
 "VIGRA stands for Vision with Generic Algorithms.  It is an image\n"
 "processing and analysis library that puts its main emphasis on customizable\n"
@@ -10070,22 +11748,22 @@ msgid ""
 "multi-dimensional image processing."
 msgstr ""
 
-#: gnu/packages/image.scm:1104
+#: gnu/packages/image.scm:1241
 msgid "C interface to the VIGRA computer vision library"
 msgstr "Interface C à la bibliothèque de vision par ordinateur VIGRA"
 
-#: gnu/packages/image.scm:1106
+#: gnu/packages/image.scm:1243
 msgid ""
 "This package provides a C interface to the VIGRA C++ computer vision\n"
 "library.  It is designed primarily to ease the implementation of higher-level\n"
 "language bindings to VIGRA."
 msgstr ""
 
-#: gnu/packages/image.scm:1143
+#: gnu/packages/image.scm:1280
 msgid "Lossless and lossy image compression"
 msgstr ""
 
-#: gnu/packages/image.scm:1145
+#: gnu/packages/image.scm:1282
 msgid ""
 "WebP is a new image format that provides lossless and lossy compression\n"
 "for images.  WebP lossless images are 26% smaller in size compared to\n"
@@ -10097,52 +11775,52 @@ msgid ""
 "channels."
 msgstr ""
 
-#: gnu/packages/image.scm:1173
+#: gnu/packages/image.scm:1310
 msgid "Library for handling MNG files"
 msgstr "Bibliothèque de manipulation des fichiers MNG"
 
-#: gnu/packages/image.scm:1175
+#: gnu/packages/image.scm:1312
 msgid "Libmng is the MNG (Multiple-image Network Graphics) reference library."
 msgstr ""
 
-#: gnu/packages/image.scm:1195
+#: gnu/packages/image.scm:1332
 msgid "Library and command-line utility to manage image metadata"
 msgstr ""
 
-#: gnu/packages/image.scm:1197
+#: gnu/packages/image.scm:1334
 msgid ""
 "Exiv2 is a C++ library and a command line utility to manage image\n"
 "metadata.  It provides fast and easy read and write access to the Exif, IPTC\n"
 "and XMP metadata of images in various formats."
 msgstr ""
 
-#: gnu/packages/image.scm:1265
+#: gnu/packages/image.scm:1402
 msgid "Library for manipulating many image formats"
 msgstr ""
 
-#: gnu/packages/image.scm:1266
+#: gnu/packages/image.scm:1403
 msgid ""
 "Developer's Image Library (DevIL) is a library to develop\n"
 "applications with support for many types of images.  DevIL can load, save,\n"
 "convert, manipulate, filter and display a wide variety of image formats."
 msgstr ""
 
-#: gnu/packages/image.scm:1287
+#: gnu/packages/image.scm:1425
 msgid "JPEG-2000 library"
 msgstr ""
 
-#: gnu/packages/image.scm:1288
+#: gnu/packages/image.scm:1426
 msgid ""
 "The JasPer Project is an initiative to provide a reference\n"
 "implementation of the codec specified in the JPEG-2000 Part-1 standard (i.e.,\n"
 "ISO/IEC 15444-1)."
 msgstr ""
 
-#: gnu/packages/image.scm:1312
+#: gnu/packages/image.scm:1450
 msgid "Scaling, colorspace conversion, and dithering library"
 msgstr ""
 
-#: gnu/packages/image.scm:1313
+#: gnu/packages/image.scm:1451
 msgid ""
 "Zimg implements the commonly required image processing basics\n"
 "of scaling, colorspace conversion, and depth conversion.  A simple API enables\n"
@@ -10150,11 +11828,11 @@ msgid ""
 "the programmer."
 msgstr ""
 
-#: gnu/packages/image.scm:1347
+#: gnu/packages/image.scm:1485
 msgid "Perceptual image comparison utility"
 msgstr ""
 
-#: gnu/packages/image.scm:1348
+#: gnu/packages/image.scm:1486
 msgid ""
 "PerceptualDiff visually compares two images to determine\n"
 "whether they look alike.  It uses a computational model of the human visual\n"
@@ -10162,33 +11840,22 @@ msgid ""
 "differences in file encoding, image quality, and other small variations."
 msgstr ""
 
-#: gnu/packages/image.scm:1388
+#: gnu/packages/image.scm:1526
 msgid "Image and audio steganography"
 msgstr ""
 
-#: gnu/packages/image.scm:1390
+#: gnu/packages/image.scm:1528
 msgid ""
 "Steghide is a program to hide data in various kinds of image and audio\n"
 "files (known as @dfn{steganography}).  Neither color nor sample frequencies are\n"
 "changed, making the embedding resistant against first-order statistical tests."
 msgstr ""
 
-#: gnu/packages/image.scm:1415
-msgid "Image library for Extempore"
-msgstr ""
-
-#: gnu/packages/image.scm:1417
-msgid ""
-"This package is a collection of assorted single-file libraries.  Of\n"
-"all included libraries only the image loading and decoding library is\n"
-"installed as @code{stb_image}."
-msgstr ""
-
-#: gnu/packages/image.scm:1454
+#: gnu/packages/image.scm:1565
 msgid "Optimizer that recompresses PNG image files to a smaller size"
 msgstr ""
 
-#: gnu/packages/image.scm:1455
+#: gnu/packages/image.scm:1566
 msgid ""
 "OptiPNG is a PNG optimizer that recompresses image\n"
 "files to a smaller size, without losing any information.  This program\n"
@@ -10196,22 +11863,22 @@ msgid ""
 "PNG, and performs PNG integrity checks and corrections."
 msgstr ""
 
-#: gnu/packages/image.scm:1488
+#: gnu/packages/image.scm:1599
 msgid "Example PNGs for use in test suites"
 msgstr ""
 
-#: gnu/packages/image.scm:1489
+#: gnu/packages/image.scm:1600
 msgid ""
 "Collection of graphics images created to test PNG\n"
 "applications like viewers, converters and editors.  As far as that is\n"
 "possible, all formats supported by the PNG standard are represented."
 msgstr ""
 
-#: gnu/packages/image.scm:1515
+#: gnu/packages/image.scm:1653
 msgid "SIMD-accelerated JPEG image handling library"
 msgstr ""
 
-#: gnu/packages/image.scm:1516
+#: gnu/packages/image.scm:1654
 msgid ""
 "libjpeg-turbo is a JPEG image codec that accelerates baseline\n"
 "JPEG compression and decompression using SIMD instructions: MMX on x86, SSE2 on\n"
@@ -10224,11 +11891,11 @@ msgid ""
 "and decompress to 32-bit and big-endian pixel buffers (RGBX, XBGR, etc.)."
 msgstr ""
 
-#: gnu/packages/image.scm:1580
+#: gnu/packages/image.scm:1719
 msgid "Library for reading and writing files in the nifti-1 format"
 msgstr ""
 
-#: gnu/packages/image.scm:1581
+#: gnu/packages/image.scm:1720
 msgid ""
 "Niftilib is a set of i/o libraries for reading and writing\n"
 "files in the nifti-1 data format - a binary file format for storing\n"
@@ -10236,19 +11903,19 @@ msgid ""
 "(fMRI) brain images."
 msgstr ""
 
-#: gnu/packages/image.scm:1622
+#: gnu/packages/image.scm:1761
 msgid "Color picker"
 msgstr ""
 
-#: gnu/packages/image.scm:1623
+#: gnu/packages/image.scm:1762
 msgid "Gpick is an advanced color picker and palette editing tool."
 msgstr ""
 
-#: gnu/packages/image.scm:1641
+#: gnu/packages/image.scm:1780
 msgid "IPTC metadata manipulation library"
 msgstr "Bibliothèque de manipulation de métadonnées IPTC"
 
-#: gnu/packages/image.scm:1643
+#: gnu/packages/image.scm:1782
 msgid ""
 "Libiptcdata is a C library for manipulating the International Press\n"
 "Telecommunications Council (@dfn{IPTC}) metadata stored within multimedia files\n"
@@ -10257,11 +11924,11 @@ msgid ""
 "parsing, viewing, modifying, and saving this metadata."
 msgstr ""
 
-#: gnu/packages/image.scm:1680
+#: gnu/packages/image.scm:1819
 msgid "Powerful yet simple to use screenshot software"
 msgstr ""
 
-#: gnu/packages/image.scm:1681
+#: gnu/packages/image.scm:1820
 msgid ""
 "Flameshot is a screenshot program.\n"
 "Features:\n"
@@ -10275,11 +11942,11 @@ msgid ""
 "@end itemize\n"
 msgstr ""
 
-#: gnu/packages/image.scm:1721
+#: gnu/packages/image.scm:1860
 msgid "Edit GIF images and animations"
 msgstr ""
 
-#: gnu/packages/image.scm:1722
+#: gnu/packages/image.scm:1861
 msgid ""
 "Gifsicle is a command-line GIF image manipulation tool that:\n"
 "\n"
@@ -10298,37 +11965,37 @@ msgid ""
 "identical visual appearance."
 msgstr ""
 
-#: gnu/packages/image.scm:1758
+#: gnu/packages/image.scm:1897
 msgid "Convert JPEG images to ASCII"
 msgstr ""
 
-#: gnu/packages/image.scm:1760
+#: gnu/packages/image.scm:1899
 msgid "Jp2a is a small utility that converts JPEG images to ASCII."
 msgstr ""
 
-#: gnu/packages/image.scm:1784
+#: gnu/packages/image.scm:1924
 msgid "Create screenshots from a Wayland compositor"
 msgstr ""
 
-#: gnu/packages/image.scm:1785
+#: gnu/packages/image.scm:1925
 msgid "grim can create screenshots from a Wayland compositor."
 msgstr ""
 
-#: gnu/packages/image.scm:1809
+#: gnu/packages/image.scm:1949
 msgid "Select a region in a Wayland compositor"
 msgstr ""
 
-#: gnu/packages/image.scm:1810
+#: gnu/packages/image.scm:1950
 msgid ""
 "Slurp can select a region in a Wayland compositor and print it\n"
 "to the standard output.  It works well together with grim."
 msgstr ""
 
-#: gnu/packages/image.scm:1843
+#: gnu/packages/image.scm:1983
 msgid "Markup language for representing PNG contents"
 msgstr ""
 
-#: gnu/packages/image.scm:1844
+#: gnu/packages/image.scm:1984
 msgid ""
 "SNG (Scriptable Network Graphics) is a minilanguage designed\n"
 "specifically to represent the entire contents of a PNG (Portable Network\n"
@@ -10340,22 +12007,22 @@ msgid ""
 "losslessly translates between SNG and PNG."
 msgstr ""
 
-#: gnu/packages/image.scm:1903
+#: gnu/packages/image.scm:2043
 msgid "PNG encoder and decoder in C and C++, without dependencies"
 msgstr ""
 
-#: gnu/packages/image.scm:1904
+#: gnu/packages/image.scm:2044
 msgid ""
 "LodePNG is a PNG image decoder and encoder, all in one,\n"
 "no dependency or linkage required.  It's made for C (ISO C90), and has a C++\n"
 "wrapper with a more convenient interface on top."
 msgstr ""
 
-#: gnu/packages/image.scm:1927
+#: gnu/packages/image.scm:2067
 msgid "Extract and convert bitmaps from Windows icon and cursor files"
 msgstr ""
 
-#: gnu/packages/image.scm:1928
+#: gnu/packages/image.scm:2068
 msgid ""
 "Icoutils are a set of program for extracting and converting\n"
 "bitmaps from Microsoft Windows icon and cursor files.  These files usually\n"
@@ -10371,22 +12038,22 @@ msgid ""
 "This package can be used to create @code{favicon.ico} files for web sites."
 msgstr ""
 
-#: gnu/packages/image.scm:1977
+#: gnu/packages/image.scm:2114
 msgid "Encode and decode AVIF files"
 msgstr ""
 
-#: gnu/packages/image.scm:1978
+#: gnu/packages/image.scm:2115
 msgid ""
-"Libavif is a C implementation of the AV1 Image File Format\n"
-"(AVIF).  It can encode and decode all YUV formats and bit depths supported by\n"
-"AOM, including with alpha."
+"Libavif is a C implementation of @acronym{AVIF, the AV1 Image\n"
+"File Format}.  It can encode and decode all YUV formats and bit depths supported\n"
+"by AOM, including with alpha."
 msgstr ""
 
-#: gnu/packages/image.scm:2030
+#: gnu/packages/image.scm:2161
 msgid "Create pixel art and manipulate digital images"
 msgstr ""
 
-#: gnu/packages/image.scm:2032
+#: gnu/packages/image.scm:2163
 msgid ""
 "Mtpaint is a graphic editing program which uses the GTK+ toolkit.\n"
 "It can create and edit indexed palette or 24bit RGB images, offers basic\n"
@@ -10394,11 +12061,24 @@ msgid ""
 "GIF, TIFF, WEBP, BMP, PNG, XPM formats."
 msgstr ""
 
-#: gnu/packages/image-viewers.scm:107
+#: gnu/packages/image.scm:2213
+msgid "Organize photos and videos in folders"
+msgstr ""
+
+#: gnu/packages/image.scm:2214
+msgid ""
+"Phockup is a media sorting tool that uses creation date and\n"
+"time information in photos and videos to organize them into folders by year,\n"
+"month and day.  All files which are not images or videos or those which do not\n"
+"have creation date information will be placed in a folder called\n"
+"@file{unknown}."
+msgstr ""
+
+#: gnu/packages/image-viewers.scm:108
 msgid "Fast and light imlib2-based image viewer"
 msgstr ""
 
-#: gnu/packages/image-viewers.scm:109
+#: gnu/packages/image-viewers.scm:110
 msgid ""
 "feh is an X11 image viewer aimed mostly at console users.\n"
 "Unlike most other viewers, it does not have a fancy GUI, but simply\n"
@@ -10407,11 +12087,11 @@ msgid ""
 "actions."
 msgstr ""
 
-#: gnu/packages/image-viewers.scm:186
+#: gnu/packages/image-viewers.scm:155
 msgid "Lightweight GTK+ based image viewer"
 msgstr ""
 
-#: gnu/packages/image-viewers.scm:188
+#: gnu/packages/image-viewers.scm:157
 msgid ""
 "Geeqie is a lightweight GTK+ based image viewer for Unix like operating\n"
 "systems.  It features: EXIF, IPTC and XMP metadata browsing and editing\n"
@@ -10421,21 +12101,21 @@ msgid ""
 "collection.  Geeqie was initially based on GQview."
 msgstr ""
 
-#: gnu/packages/image-viewers.scm:213
+#: gnu/packages/image-viewers.scm:182
 msgid "Simple and fast image viewer for X"
 msgstr ""
 
-#: gnu/packages/image-viewers.scm:214
+#: gnu/packages/image-viewers.scm:183
 msgid ""
 "gpicview is a lightweight GTK+ 2.x based image viewer.\n"
 "It is the default image viewer on LXDE desktop environment."
 msgstr ""
 
-#: gnu/packages/image-viewers.scm:255
+#: gnu/packages/image-viewers.scm:233
 msgid "Simple X Image Viewer"
 msgstr ""
 
-#: gnu/packages/image-viewers.scm:257
+#: gnu/packages/image-viewers.scm:235
 msgid ""
 "sxiv is an alternative to feh and qiv.  Its primary goal is to\n"
 "provide the most basic features required for fast image viewing.  It has\n"
@@ -10444,11 +12124,11 @@ msgid ""
 "it and customize it for your needs."
 msgstr ""
 
-#: gnu/packages/image-viewers.scm:299
+#: gnu/packages/image-viewers.scm:277
 msgid "Simple, fast and elegant image viewer"
 msgstr ""
 
-#: gnu/packages/image-viewers.scm:300
+#: gnu/packages/image-viewers.scm:278
 msgid ""
 "Viewnior is an image viewer program.  Created to be simple,\n"
 "fast and elegant.  Its minimalistic interface provides more screenspace for\n"
@@ -10466,21 +12146,21 @@ msgid ""
 "@end enumerate\n"
 msgstr ""
 
-#: gnu/packages/image-viewers.scm:355
+#: gnu/packages/image-viewers.scm:333
 msgid "Render images in the terminal"
 msgstr ""
 
-#: gnu/packages/image-viewers.scm:357
+#: gnu/packages/image-viewers.scm:335
 msgid ""
 "Catimg is a little program that prints images in the terminal.\n"
 "It supports JPEG, PNG and GIF formats."
 msgstr ""
 
-#: gnu/packages/image-viewers.scm:408
+#: gnu/packages/image-viewers.scm:388
 msgid "High dynamic range (HDR) imaging application"
 msgstr ""
 
-#: gnu/packages/image-viewers.scm:410
+#: gnu/packages/image-viewers.scm:390
 msgid ""
 "Luminance HDR (formerly QtPFSGui) is a graphical user interface\n"
 "application that aims to provide a workflow for high dynamic range (HDR)\n"
@@ -10496,11 +12176,11 @@ msgid ""
 "@end itemize\n"
 msgstr ""
 
-#: gnu/packages/image-viewers.scm:507
+#: gnu/packages/image-viewers.scm:487
 msgid "Image viewer for comics"
 msgstr ""
 
-#: gnu/packages/image-viewers.scm:508
+#: gnu/packages/image-viewers.scm:488
 msgid ""
 "MComix is a customizable image viewer that specializes as\n"
 "a comic and manga reader.  It supports a variety of container formats\n"
@@ -10509,11 +12189,11 @@ msgid ""
 "For PDF support, install the @emph{mupdf} package."
 msgstr ""
 
-#: gnu/packages/image-viewers.scm:556
+#: gnu/packages/image-viewers.scm:529
 msgid "Convenient and minimal image viewer"
 msgstr ""
 
-#: gnu/packages/image-viewers.scm:557
+#: gnu/packages/image-viewers.scm:530
 msgid ""
 "qView is a Qt image viewer designed with visually\n"
 "minimalism and usability in mind.  Its features include animated GIF\n"
@@ -10521,22 +12201,22 @@ msgid ""
 "preloading."
 msgstr ""
 
-#: gnu/packages/image-viewers.scm:580
+#: gnu/packages/image-viewers.scm:555
 msgid "Convert images to ANSI/Unicode characters"
 msgstr ""
 
-#: gnu/packages/image-viewers.scm:582
+#: gnu/packages/image-viewers.scm:557
 msgid ""
 "Chafa is a command-line utility that converts all kinds of images,\n"
 "including animated GIFs, into ANSI/Unicode character output that can be\n"
 "displayed in a terminal."
 msgstr ""
 
-#: gnu/packages/image-viewers.scm:632
+#: gnu/packages/image-viewers.scm:607
 msgid "Image viewer for tiling window managers"
 msgstr ""
 
-#: gnu/packages/image-viewers.scm:633
+#: gnu/packages/image-viewers.scm:608
 msgid ""
 "@code{imv} is a command line image viewer intended for use\n"
 "with tiling window managers.  Features include:\n"
@@ -10558,11 +12238,11 @@ msgid ""
 "@end itemize\n"
 msgstr ""
 
-#: gnu/packages/image-viewers.scm:702
+#: gnu/packages/image-viewers.scm:677
 msgid "Graphical image viewer for X"
 msgstr ""
 
-#: gnu/packages/image-viewers.scm:704
+#: gnu/packages/image-viewers.scm:679
 msgid ""
 "Quick Image Viewer is a small and fast GDK/Imlib2 image viewer.\n"
 "Features include zoom, maxpect, scale down, fullscreen, slideshow, delete,\n"
@@ -10571,11 +12251,11 @@ msgid ""
 "to set X desktop background."
 msgstr ""
 
-#: gnu/packages/inkscape.scm:99
+#: gnu/packages/inkscape.scm:114 gnu/packages/inkscape.scm:301
 msgid "Vector graphics editor"
 msgstr "Éditeur graphique vectoriel"
 
-#: gnu/packages/inkscape.scm:100
+#: gnu/packages/inkscape.scm:115 gnu/packages/inkscape.scm:302
 msgid ""
 "Inkscape is a vector graphics editor.  What sets Inkscape\n"
 "apart is its use of Scalable Vector Graphics (SVG), an XML-based W3C standard,\n"
@@ -10584,11 +12264,11 @@ msgstr ""
 "Inkscape est un éditeur graphique vectoriel. Ce qui différencie Inkscape\n"
 "est son utilisation du format SVG, un standard W3C basé sur XML, comme format natif."
 
-#: gnu/packages/jemalloc.scm:63
+#: gnu/packages/jemalloc.scm:66
 msgid "General-purpose scalable concurrent malloc implementation"
 msgstr ""
 
-#: gnu/packages/jemalloc.scm:65
+#: gnu/packages/jemalloc.scm:68
 msgid ""
 "This library providing a malloc(3) implementation that emphasizes\n"
 "fragmentation avoidance and scalable concurrency support."
@@ -10604,11 +12284,11 @@ msgid ""
 "This is useful for teaching and screencasts."
 msgstr ""
 
-#: gnu/packages/less.scm:43
+#: gnu/packages/less.scm:50
 msgid "Paginator for terminals"
 msgstr ""
 
-#: gnu/packages/less.scm:45
+#: gnu/packages/less.scm:52
 msgid ""
 "GNU less is a pager, a program that allows you to view large amounts\n"
 "of text in page-sized chunks.  Unlike traditional pagers, it allows both\n"
@@ -10617,6 +12297,21 @@ msgid ""
 "text editors."
 msgstr ""
 
+#: gnu/packages/less.scm:99
+msgid "Input filter for less"
+msgstr "Filtre d'entrée pour less"
+
+#: gnu/packages/less.scm:100
+msgid ""
+"To browse files, the excellent viewer @code{less} can be\n"
+"used.  By setting the environment variable @code{LESSOPEN}, less can be\n"
+"enhanced by external filters to become more powerful.  The input filter for\n"
+"less described here is called @code{lesspipe.sh}.  It is able to process a\n"
+"wide variety of file formats.  It enables users to inspect archives and\n"
+"display their contents without having to unpack them before.  The filter is\n"
+"easily extensible for new formats."
+msgstr ""
+
 #: gnu/packages/lesstif.scm:47
 msgid "Clone of the Motif toolkit for the X window system"
 msgstr ""
@@ -10625,11 +12320,11 @@ msgstr ""
 msgid "Clone of the Motif toolkit for the X window system."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:106
+#: gnu/packages/libreoffice.scm:108
 msgid "General purpose formula parser and interpreter"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:107
+#: gnu/packages/libreoffice.scm:109
 msgid ""
 "Ixion is a library for calculating the results of formula\n"
 "expressions stored in multiple named targets, or \"cells\".  The cells can\n"
@@ -10637,11 +12332,11 @@ msgid ""
 "their dependencies automatically upon calculation."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:134
+#: gnu/packages/libreoffice.scm:136
 msgid "File import filter library for spreadsheet documents"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:135
+#: gnu/packages/libreoffice.scm:137
 msgid ""
 "Orcus is a library that provides a collection of standalone\n"
 "file processing filters.  It is currently focused on providing filters for\n"
@@ -10651,11 +12346,11 @@ msgid ""
 "CSV, CSS and XML."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:186
+#: gnu/packages/libreoffice.scm:188
 msgid "Convert between any document format supported by LibreOffice"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:188
+#: gnu/packages/libreoffice.scm:190
 msgid ""
 "Unoconv is a command-line utility to convert documents from any format\n"
 "that LibreOffice can import, to any format it can export.  It can be used for\n"
@@ -10669,33 +12364,33 @@ msgid ""
 "All required fonts must be installed on the converting system."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:226
+#: gnu/packages/libreoffice.scm:228
 msgid "Document importer for office suites"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:227
+#: gnu/packages/libreoffice.scm:229
 msgid ""
 "Librevenge is a base library for writing document import\n"
 "filters.  It has interfaces for text documents, vector graphics,\n"
 "spreadsheets and presentations."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:254
+#: gnu/packages/libreoffice.scm:256
 msgid "Library for importing WordPerfect documents"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:255
+#: gnu/packages/libreoffice.scm:257
 msgid ""
 "Libwpd is a C++ library designed to help process\n"
 "WordPerfect documents.  It is most commonly used to import such documents\n"
 "into other word processors."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:288
+#: gnu/packages/libreoffice.scm:290
 msgid "Library for import of reflowable e-book formats"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:289
+#: gnu/packages/libreoffice.scm:291
 msgid ""
 "Libe-book is a library and a set of tools for reading and\n"
 "converting various reflowable e-book formats.  Currently supported are:\n"
@@ -10705,73 +12400,73 @@ msgid ""
 "ZVR (simple compressed text format)."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:319
+#: gnu/packages/libreoffice.scm:321
 msgid "EPUB generator library for librevenge"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:320
+#: gnu/packages/libreoffice.scm:322
 msgid ""
 "libepubgen is an EPUB generator for librevenge.  It supports\n"
 "librevenge's text document interface and--currently in a very limited\n"
 "way--presentation and vector drawing interfaces."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:346
+#: gnu/packages/libreoffice.scm:348
 msgid "Library and tools for the WordPerfect Graphics format"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:347
+#: gnu/packages/libreoffice.scm:349
 msgid ""
 "The libwpg project provides a library and tools for\n"
 "working with graphics in the WPG (WordPerfect Graphics) format."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:387
+#: gnu/packages/libreoffice.scm:389
 msgid "CMIS client library"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:388
+#: gnu/packages/libreoffice.scm:390
 msgid ""
 "LibCMIS is a C++ client library for the CMIS interface.  It\n"
 "allows C++ applications to connect to any ECM behaving as a CMIS server such\n"
 "as Alfresco or Nuxeo."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:417
+#: gnu/packages/libreoffice.scm:419
 msgid "Library for parsing the AbiWord format"
 msgstr "Bibliothèque d'analyse du format AbiWord"
 
-#: gnu/packages/libreoffice.scm:418
+#: gnu/packages/libreoffice.scm:420
 msgid ""
 "Libabw is a library that parses the file format of\n"
 "AbiWord documents."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:446
+#: gnu/packages/libreoffice.scm:448
 msgid "Library for parsing the CorelDRAW format"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:447
+#: gnu/packages/libreoffice.scm:449
 msgid ""
 "Libcdr is a library that parses the file format of\n"
 "CorelDRAW documents of all versions."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:480
+#: gnu/packages/libreoffice.scm:482
 msgid "Library for parsing the Apple Keynote format"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:481
+#: gnu/packages/libreoffice.scm:483
 msgid ""
 "Libetonyek is a library that parses the file format of\n"
 "Apple Keynote documents.  It currently supports Keynote versions 2 to 5."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:503
+#: gnu/packages/libreoffice.scm:505
 msgid "Library to access tags for identifying languages"
 msgstr "Bibliothèque pour accéder aux étiquettes qui identifient les langues"
 
-#: gnu/packages/libreoffice.scm:504
+#: gnu/packages/libreoffice.scm:506
 msgid ""
 "Liblangtag implements an interface to work with tags\n"
 "for identifying languages as described in RFC 5646.  It supports the\n"
@@ -10780,73 +12475,73 @@ msgid ""
 "standard 21.0.2."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:524
+#: gnu/packages/libreoffice.scm:526
 msgid "Text Categorization library"
 msgstr "Bibliothèque de catégorisation de textes"
 
-#: gnu/packages/libreoffice.scm:525
+#: gnu/packages/libreoffice.scm:527
 msgid ""
 "Libexttextcat is an N-Gram-Based Text Categorization\n"
 "library primarily intended for language guessing."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:555
+#: gnu/packages/libreoffice.scm:568
 msgid "Library for parsing the FreeHand format"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:556
+#: gnu/packages/libreoffice.scm:569
 msgid ""
 "Libfreehand is a library that parses the file format of\n"
 "Aldus/Macromedia/Adobe FreeHand documents."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:582
+#: gnu/packages/libreoffice.scm:595
 msgid "Library for parsing the Microsoft Publisher format"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:583
+#: gnu/packages/libreoffice.scm:596
 msgid ""
 "Libmspub is a library that parses the file format of\n"
 "Microsoft Publisher documents of all versions."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:603
+#: gnu/packages/libreoffice.scm:616
 msgid "Language-neutral @code{NUMBERTEXT} and @code{MONEYTEXT} functions"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:605
+#: gnu/packages/libreoffice.scm:618
 msgid ""
 "The libnumbertext library provides language-neutral @code{NUMBERTEXT}\n"
 "and @code{MONEYTEXT} functions for LibreOffice Calc, available for C++ and\n"
 "Java."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:633
+#: gnu/packages/libreoffice.scm:646
 msgid "Library for parsing the PageMaker format"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:634
+#: gnu/packages/libreoffice.scm:647
 msgid ""
 "Libpagemaker is a library that parses the file format of\n"
 "Aldus/Adobe PageMaker documents.  Currently it only understands documents\n"
 "created by PageMaker version 6.x and 7."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:664
+#: gnu/packages/libreoffice.scm:677
 msgid "Library for parsing the Microsoft Visio format"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:665
+#: gnu/packages/libreoffice.scm:678
 msgid ""
 "Libvisio is a library that parses the file format of\n"
 "Microsoft Visio documents of all versions."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:693
+#: gnu/packages/libreoffice.scm:706
 msgid "ODF (Open Document Format) library"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:694
+#: gnu/packages/libreoffice.scm:707
 msgid ""
 "Libodfgen is a library for generating documents in the\n"
 "Open Document Format (ODF).  It provides generator implementations for all\n"
@@ -10854,49 +12549,49 @@ msgid ""
 "text documents, vector drawings, presentations and spreadsheets."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:721
+#: gnu/packages/libreoffice.scm:734
 msgid "Import library for some old Macintosh text documents"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:722
+#: gnu/packages/libreoffice.scm:735
 msgid ""
 "Libmwaw contains some import filters for old Macintosh\n"
 "text documents (MacWrite, ClarisWorks, ... ) and for some graphics and\n"
 "spreadsheet documents."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:745
+#: gnu/packages/libreoffice.scm:758
 msgid "Provides LibreOffice support for old StarOffice documents"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:746
+#: gnu/packages/libreoffice.scm:759
 msgid ""
 "@code{libstaroffice} is an import filter for the document formats\n"
 "from the old StarOffice (.sdc, .sdw, ...)."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:771
+#: gnu/packages/libreoffice.scm:784
 msgid "Import library for Microsoft Works text documents"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:772
+#: gnu/packages/libreoffice.scm:785
 msgid ""
 "Libwps is a library for importing files in the Microsoft\n"
 "Works word processor file format."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:802
+#: gnu/packages/libreoffice.scm:815
 msgid "Parses file format of Zoner Callisto/Draw documents"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:803
+#: gnu/packages/libreoffice.scm:816
 msgid ""
 "Libzmf is a library that parses the file format of Zoner\n"
 "Callisto/Draw documents.  Currently it only understands documents created by\n"
 "Zoner Draw version 4 and 5."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:834
+#: gnu/packages/libreoffice.scm:847
 msgid ""
 "Hunspell is a spell checker and morphological analyzer\n"
 "library and program designed for languages with rich morphology and complex\n"
@@ -10904,59 +12599,73 @@ msgid ""
 msgstr ""
 
 #. TRANSLATORS: In French, this is "Français classique".
-#: gnu/packages/libreoffice.scm:897
+#: gnu/packages/libreoffice.scm:910
 msgid "Hunspell dictionary for ``classic'' French (recommended)"
 msgstr ""
 
 #. TRANSLATORS: In French, this is "Français moderne".
-#: gnu/packages/libreoffice.scm:902
+#: gnu/packages/libreoffice.scm:915
 msgid "Hunspell dictionary for ``modern'' French"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:906
+#: gnu/packages/libreoffice.scm:919
 msgid "Hunspell dictionary for the post @dfn{1990 réforme} French"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:910
+#: gnu/packages/libreoffice.scm:923
 msgid "Hunspell dictionary for all variants of French"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:928
+#: gnu/packages/libreoffice.scm:967
+msgid "Hunspell dictionary for Polish"
+msgstr "Dictionnaire Hunspell pour le polonais"
+
+#: gnu/packages/libreoffice.scm:1004
+msgid "Hunspell dictionary for German (de_DE)"
+msgstr "Dictionnaire Hunspell pour l'allemand (de_DE)"
+
+#: gnu/packages/libreoffice.scm:1005
+msgid ""
+"This package provides a dictionary for the Hunspell\n"
+"spell-checking library."
+msgstr "Ce paquet fournit un dictionnaire pour le correcteur orthographique Hunspell."
+
+#: gnu/packages/libreoffice.scm:1026
 msgid "Hyphenation library"
 msgstr "Bibliothèque de césures"
 
-#: gnu/packages/libreoffice.scm:929
+#: gnu/packages/libreoffice.scm:1027
 msgid ""
 "Hyphen is a hyphenation library using TeX hyphenation\n"
 "patterns, which are pre-processed by a perl script."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:953
+#: gnu/packages/libreoffice.scm:1051
 msgid "Thesaurus"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:954
+#: gnu/packages/libreoffice.scm:1052
 msgid ""
 "MyThes is a simple thesaurus that uses a structured text\n"
 "data file and an index file with binary search to look up words and phrases\n"
 "and to return information on pronunciations, meanings and synonyms."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:982
+#: gnu/packages/libreoffice.scm:1080
 msgid "Library and tools for the QuarkXPress file format"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:983
+#: gnu/packages/libreoffice.scm:1081
 msgid ""
 "libqxp is a library and a set of tools for reading and\n"
 "converting QuarkXPress file format.  It supports versions 3.1 to 4.1."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:1200
+#: gnu/packages/libreoffice.scm:1296
 msgid "Office suite"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:1201
+#: gnu/packages/libreoffice.scm:1297
 msgid ""
 "LibreOffice is a comprehensive office suite.  It contains\n"
 "a number of components: Writer, a word processor; Calc, a spreadsheet\n"
@@ -10965,19 +12674,19 @@ msgid ""
 "Math for editing mathematics."
 msgstr ""
 
-#: gnu/packages/linux.scm:552
+#: gnu/packages/linux.scm:563
 msgid "GNU Linux-Libre kernel headers"
 msgstr "Fichiers d'en-tête pour le noyau GNU Linux-Libre"
 
-#: gnu/packages/linux.scm:553
+#: gnu/packages/linux.scm:564
 msgid "Headers of the Linux-Libre kernel."
 msgstr "Fichiers d'en-tête pour le noyau Linux-Libre."
 
-#: gnu/packages/linux.scm:813
+#: gnu/packages/linux.scm:847
 msgid "100% free redistribution of a cleaned Linux kernel"
 msgstr "Redistribution 100% libre d'un noyau Linux propre"
 
-#: gnu/packages/linux.scm:815
+#: gnu/packages/linux.scm:849
 msgid ""
 "GNU Linux-Libre is a free (as in freedom) variant of the Linux kernel.\n"
 "It has been modified to remove all non-free binary blobs."
@@ -10985,27 +12694,27 @@ msgstr ""
 "GNU Linux-Libre est une variante libre du noyau Linux.\n"
 "Il a été modifié pour en retirer toutes les composantes non-libres."
 
-#: gnu/packages/linux.scm:1002
+#: gnu/packages/linux.scm:1064
 msgid "Linux kernel module to perform ACPI method calls"
 msgstr ""
 
-#: gnu/packages/linux.scm:1004
+#: gnu/packages/linux.scm:1066
 msgid ""
 "This simple Linux kernel module allows calls from user space to any\n"
 "@acronym{ACPI, Advanced Configuration and Power Interface} method provided by\n"
 "your computer's firmware, by writing to @file{/proc/acpi/call}.  You can pass\n"
-"any number of parameters of types @code{ACPI_INTEGER},  @code{ACPI_STRING},\n"
+"any number of parameters of types @code{ACPI_INTEGER}, @code{ACPI_STRING},\n"
 "and @code{ACPI_BUFFER}.\n"
 "\n"
 "It grants direct and undocumented access to your hardware that may cause damage\n"
 "and should be used with caution, especially on untested models."
 msgstr ""
 
-#: gnu/packages/linux.scm:1052
+#: gnu/packages/linux.scm:1114
 msgid "Linux driver for Realtek USB wireless network adapters"
 msgstr ""
 
-#: gnu/packages/linux.scm:1054
+#: gnu/packages/linux.scm:1116
 msgid ""
 "This is Realtek's rtl8812au Linux driver for USB 802.11n wireless\n"
 "network adapters, modified by the aircrack-ng project to support monitor mode\n"
@@ -11013,21 +12722,41 @@ msgid ""
 "RTL8812AU, RTL8821AU, and RTL8814AU chips."
 msgstr ""
 
-#: gnu/packages/linux.scm:1077
+#: gnu/packages/linux.scm:1152
+msgid "Linux driver for Realtek RTL8821CE wireless network adapters"
+msgstr ""
+
+#: gnu/packages/linux.scm:1153
+msgid ""
+"This is Realtek's RTL8821CE Linux driver for wireless\n"
+"network adapters."
+msgstr ""
+
+#: gnu/packages/linux.scm:1174
 msgid "Kernel module that emulates SCSI devices"
 msgstr ""
 
-#: gnu/packages/linux.scm:1078
+#: gnu/packages/linux.scm:1175
 msgid ""
 "VHBA module provides a Virtual (SCSI) HBA, which is the link\n"
 "between the CDemu userspace daemon and linux kernel."
 msgstr ""
 
-#: gnu/packages/linux.scm:1119
+#: gnu/packages/linux.scm:1200
+msgid "Kernel module that disables discrete Nvidia graphics cards"
+msgstr ""
+
+#: gnu/packages/linux.scm:1201
+msgid ""
+"The bbswitch module provides a way to toggle the Nvidia\n"
+"graphics card on Optimus laptops."
+msgstr ""
+
+#: gnu/packages/linux.scm:1242
 msgid "Pair of Linux kernel drivers for DDC/CI monitors"
 msgstr ""
 
-#: gnu/packages/linux.scm:1120
+#: gnu/packages/linux.scm:1243
 msgid ""
 "This package provides two Linux kernel drivers, ddcci and\n"
 "ddcci-backlight, that allows the control of DDC/CI monitors through the sysfs\n"
@@ -11037,11 +12766,27 @@ msgid ""
 "supported under @file{/sys/class/backlight/}."
 msgstr ""
 
-#: gnu/packages/linux.scm:1174
+#: gnu/packages/linux.scm:1268
+msgid "Linux kernel module to create virtual V4L2 video devices"
+msgstr ""
+
+#: gnu/packages/linux.scm:1270
+msgid ""
+"This Linux module creates virtual video devices.  @acronym{V4L2, Video\n"
+"for Linux 2} applications will treat these as ordinary video devices but read\n"
+"video data generated by another application, instead of a hardware device such\n"
+"as a capture card.\n"
+"\n"
+"This lets you apply nifty effects to your Jitsi video, for example, but also\n"
+"allows some more serious things like adding streaming capabilities to an\n"
+"application by hooking GStreamer into the loopback device."
+msgstr ""
+
+#: gnu/packages/linux.scm:1326
 msgid "Pluggable authentication modules for Linux"
 msgstr "Modules d'authentification pour Linux"
 
-#: gnu/packages/linux.scm:1176
+#: gnu/packages/linux.scm:1328
 msgid ""
 "A *Free* project to implement OSF's RFC 86.0.\n"
 "Pluggable authentication modules are small shared object files that can\n"
@@ -11054,11 +12799,40 @@ msgstr ""
 "d'un utilisateur au moment de la connexion. Ses principales fonctionnalités sont\n"
 "la reconfiguration locale et dynamique."
 
-#: gnu/packages/linux.scm:1223
+#: gnu/packages/linux.scm:1388
+msgid "PAM interface using ctypes"
+msgstr ""
+
+#: gnu/packages/linux.scm:1389
+msgid "This package provides a PAM interface using @code{ctypes}."
+msgstr "Ce paquet fournit une interface PAM avec @code{ctypes}."
+
+#: gnu/packages/linux.scm:1424
+msgid "Measure system power consumption"
+msgstr ""
+
+#: gnu/packages/linux.scm:1426
+msgid ""
+"Powerstat measures and reports your computer's power consumption in real\n"
+"time.  On mobile PCs, it uses ACPI battery information to measure the power\n"
+"drain of the entire system.\n"
+"\n"
+"Powerstat can also report @acronym{RAPL, Running Average Power Limit} power\n"
+"domain measurements.  These are available only on some hardware such as Intel\n"
+"Sandybridge and newer, and cover only part of the machine's components such as\n"
+"CPU, DRAM, and graphics.  However, they provide accurate and immediate readings\n"
+"and don't require a battery at all.\n"
+"\n"
+"The output is like @command{vmstat} but also shows power consumption statistics:\n"
+"at the end of a run, @command{powerstat} will calculate the average, standard\n"
+"deviation, and minimum and maximum values.  It can show a nice histogram too."
+msgstr ""
+
+#: gnu/packages/linux.scm:1462
 msgid "Small utilities that use the proc file system"
 msgstr "Petits utilitaires utilisant le système de fichier proc"
 
-#: gnu/packages/linux.scm:1225
+#: gnu/packages/linux.scm:1464
 msgid ""
 "This PSmisc package is a set of some small useful utilities that\n"
 "use the proc file system.  We're not about changing the world, but\n"
@@ -11069,33 +12843,33 @@ msgstr ""
 "mais simplement de fournir de l'aide à l'administrateur système dans ses\n"
 "tâches les plus courantes."
 
-#: gnu/packages/linux.scm:1314
+#: gnu/packages/linux.scm:1597
 msgid "Collection of utilities for the Linux kernel"
 msgstr "Collection d'utilitaires pour le noyau Linux"
 
-#: gnu/packages/linux.scm:1315
+#: gnu/packages/linux.scm:1598
 msgid ""
 "Util-linux is a diverse collection of Linux kernel\n"
 "utilities.  It provides dmesg and includes tools for working with file systems,\n"
 "block devices, UUIDs, TTYs, and many other tools."
 msgstr ""
 
-#: gnu/packages/linux.scm:1350
+#: gnu/packages/linux.scm:1634
 msgid "PERPETUAL DATE CONVERTER FROM GREGORIAN TO POEE CALENDAR"
 msgstr ""
 
-#: gnu/packages/linux.scm:1352
+#: gnu/packages/linux.scm:1636
 msgid ""
 "ddate displays the Discordian date and holidays of a given date.\n"
 "The Discordian calendar was made popular by the \"Illuminatus!\" trilogy\n"
 "by Robert Shea and Robert Anton Wilson."
 msgstr ""
 
-#: gnu/packages/linux.scm:1405
+#: gnu/packages/linux.scm:1689
 msgid "Show and modify Linux frame buffer settings"
 msgstr ""
 
-#: gnu/packages/linux.scm:1407
+#: gnu/packages/linux.scm:1691
 msgid ""
 "The kernel Linux's @dfn{frame buffers} provide a simple interface to\n"
 "different kinds of graphic displays.  The @command{fbset} utility can query and\n"
@@ -11103,11 +12877,11 @@ msgid ""
 "parameters."
 msgstr ""
 
-#: gnu/packages/linux.scm:1444
+#: gnu/packages/linux.scm:1734
 msgid "Utilities that give information about processes"
 msgstr "Utilitaires fournissant des informations sur les processus"
 
-#: gnu/packages/linux.scm:1446
+#: gnu/packages/linux.scm:1736
 msgid ""
 "Procps is the package that has a bunch of small useful utilities\n"
 "that give information about processes using the Linux /proc file system.\n"
@@ -11119,27 +12893,27 @@ msgstr ""
 "Le paquet inclut les programmes ps, top, vmstat, w, kill, free,\n"
 "slabtop et skill."
 
-#: gnu/packages/linux.scm:1500
+#: gnu/packages/linux.scm:1790
 msgid "Tools for working with USB devices, such as lsusb"
 msgstr "Outils de manipulation des périphériques USB, tels que lsusb"
 
-#: gnu/packages/linux.scm:1502
+#: gnu/packages/linux.scm:1792
 msgid "Tools for working with USB devices, such as lsusb."
 msgstr "Outils de manipulation des périphériques USB, tels que lsusb."
 
-#: gnu/packages/linux.scm:1578
+#: gnu/packages/linux.scm:1868
 msgid "Creating and checking ext2/ext3/ext4 file systems"
 msgstr "Création et vérification de systèmes de fichiers ext1/ext3/ext4"
 
-#: gnu/packages/linux.scm:1580
+#: gnu/packages/linux.scm:1870
 msgid "This package provides tools for manipulating ext2/ext3/ext4 file systems."
 msgstr "Ce paquet fournit des outils pour manipuler les systèmes de fichiers ext2/ext3/ext4."
 
-#: gnu/packages/linux.scm:1622
+#: gnu/packages/linux.scm:1912
 msgid "Statically-linked e2fsck command from e2fsprogs"
 msgstr "Commandes de e2fsck liées statiquement provenant de e2fsprogs"
 
-#: gnu/packages/linux.scm:1623
+#: gnu/packages/linux.scm:1913
 msgid ""
 "This package provides statically-linked e2fsck command taken\n"
 "from the e2fsprogs package.  It is meant to be used in initrds."
@@ -11147,21 +12921,21 @@ msgstr ""
 "Ce paquet fournit la commande e2fsck liée statiquement issue\n"
 "du paquet e2fsprogs. Il est censé être utilisé dans les initrds."
 
-#: gnu/packages/linux.scm:1644
+#: gnu/packages/linux.scm:1934
 msgid "Recover deleted files from ext2/3/4 partitions"
 msgstr ""
 
-#: gnu/packages/linux.scm:1646
+#: gnu/packages/linux.scm:1936
 msgid ""
 "Extundelete is a set of tools that can recover deleted files from an\n"
 "ext3 or ext4 partition."
 msgstr ""
 
-#: gnu/packages/linux.scm:1677
+#: gnu/packages/linux.scm:1967
 msgid "Zero non-allocated regions in ext2/ext3/ext4 file systems"
 msgstr "Remet à zéro les régions non allouées dans les systèmes de fichiers ext2/ext3/ext4"
 
-#: gnu/packages/linux.scm:1679
+#: gnu/packages/linux.scm:1969
 msgid ""
 "Zerofree finds the unallocated blocks with non-zero value content in an\n"
 "ext2, ext3, or ext4 file system and fills them with zeroes (or another value).\n"
@@ -11169,11 +12943,11 @@ msgid ""
 "Zerofree requires the file system to be unmounted or mounted read-only."
 msgstr ""
 
-#: gnu/packages/linux.scm:1711
+#: gnu/packages/linux.scm:2007
 msgid "System call tracer for Linux"
 msgstr "Traceur d'appel système pour Linux"
 
-#: gnu/packages/linux.scm:1713
+#: gnu/packages/linux.scm:2009
 msgid ""
 "strace is a system call tracer, i.e. a debugging tool which prints out a\n"
 "trace of all the system calls made by a another process/program."
@@ -11181,22 +12955,22 @@ msgstr ""
 "strace est un traceur d'appels système, c-à-d un outil de débogage affichant\n"
 "les appels système effectués par un autre processus/programme."
 
-#: gnu/packages/linux.scm:1734
+#: gnu/packages/linux.scm:2030
 msgid "Library call tracer for Linux"
 msgstr "Traceur d'appel système pour Linux"
 
-#: gnu/packages/linux.scm:1736
+#: gnu/packages/linux.scm:2032
 msgid ""
 "ltrace intercepts and records dynamic library calls which are called by\n"
 "an executed process and the signals received by that process.  It can also\n"
 "intercept and print the system calls executed by the program."
 msgstr ""
 
-#: gnu/packages/linux.scm:1759
+#: gnu/packages/linux.scm:2055
 msgid "The Advanced Linux Sound Architecture libraries"
 msgstr "Bibliothèques ALSA (Advanced Linux Sound Architecture)"
 
-#: gnu/packages/linux.scm:1761 gnu/packages/linux.scm:1812
+#: gnu/packages/linux.scm:2057 gnu/packages/linux.scm:2109
 msgid ""
 "The Advanced Linux Sound Architecture (ALSA) provides audio and\n"
 "MIDI functionality to the Linux-based operating system."
@@ -11204,15 +12978,15 @@ msgstr ""
 "ALSA fournit des fonctionnalités audio et MIDI pour les sytèmes\n"
 "basés sur Linux."
 
-#: gnu/packages/linux.scm:1810
+#: gnu/packages/linux.scm:2107
 msgid "Utilities for the Advanced Linux Sound Architecture (ALSA)"
 msgstr "Utilitaires pour ALSA (Advanced Linux Sound Architecture)"
 
-#: gnu/packages/linux.scm:1874
+#: gnu/packages/linux.scm:2171
 msgid "Plugins for the Advanced Linux Sound Architecture (ALSA)"
 msgstr "Greffons pour ALSA (Advanced Linux Sound Architecture)"
 
-#: gnu/packages/linux.scm:1876
+#: gnu/packages/linux.scm:2173
 msgid ""
 "The Advanced Linux Sound Architecture (ALSA) provides audio and\n"
 "MIDI functionality to the Linux-based operating system.  This package enhances ALSA\n"
@@ -11221,11 +12995,11 @@ msgid ""
 "external rate conversion."
 msgstr ""
 
-#: gnu/packages/linux.scm:1910
+#: gnu/packages/linux.scm:2208
 msgid "Programs to configure Linux IP packet filtering rules"
 msgstr "Programmes de configuration de règles de filtrage des paquets IP pour Linux"
 
-#: gnu/packages/linux.scm:1912
+#: gnu/packages/linux.scm:2210
 msgid ""
 "@command{iptables} is the user-space command line program used to\n"
 "configure the Linux 2.4.x and later IPv4 packet filtering ruleset\n"
@@ -11245,11 +13019,11 @@ msgstr ""
 "\n"
 "Les deux commandes sont destinées aux administrateurs système."
 
-#: gnu/packages/linux.scm:1934
+#: gnu/packages/linux.scm:2232
 msgid "Lists information about SCSI or NVMe devices in Linux"
 msgstr ""
 
-#: gnu/packages/linux.scm:1937
+#: gnu/packages/linux.scm:2235
 msgid ""
 "@command{lsscsi} lists SCSI logical units or SCSI targets.  It can\n"
 "also list NVMe namespaces or controllers and show the relationship between a\n"
@@ -11257,11 +13031,11 @@ msgid ""
 "name."
 msgstr ""
 
-#: gnu/packages/linux.scm:1959
+#: gnu/packages/linux.scm:2257
 msgid "Ethernet bridge frame table administration"
 msgstr ""
 
-#: gnu/packages/linux.scm:1962
+#: gnu/packages/linux.scm:2260
 msgid ""
 "ebtables is an application program used to set up and maintain the\n"
 "tables of rules (inside the Linux kernel) that inspect Ethernet frames.  It is\n"
@@ -11269,11 +13043,11 @@ msgid ""
 "that the Ethernet protocol is much simpler than the IP protocol."
 msgstr ""
 
-#: gnu/packages/linux.scm:2016
+#: gnu/packages/linux.scm:2314
 msgid "Utilities for controlling TCP/IP networking and traffic in Linux"
 msgstr "Utilitaires de contrôle du traffic TCP/IP pour Linux"
 
-#: gnu/packages/linux.scm:2018
+#: gnu/packages/linux.scm:2316
 msgid ""
 "Iproute2 is a collection of utilities for controlling TCP/IP networking\n"
 "and traffic with the Linux kernel.  The most important of these are\n"
@@ -11285,11 +13059,11 @@ msgid ""
 "inadequately in modern network environments, and both should be deprecated."
 msgstr ""
 
-#: gnu/packages/linux.scm:2095
+#: gnu/packages/linux.scm:2394
 msgid "Tools for controlling the network subsystem in Linux"
 msgstr "Outils pour contrôler le sous-système réseau dans Linux"
 
-#: gnu/packages/linux.scm:2097
+#: gnu/packages/linux.scm:2396
 msgid ""
 "This package includes the important tools for controlling the network\n"
 "subsystem of the Linux kernel.  This includes arp, ifconfig, netstat, rarp and\n"
@@ -11303,21 +13077,21 @@ msgstr ""
 "particulières (pliconfig, slattach) et à des aspects avancés de la configuration\n"
 "réseau (iptunnel, ipmaddr)."
 
-#: gnu/packages/linux.scm:2135
+#: gnu/packages/linux.scm:2434
 msgid "Library for working with POSIX capabilities"
 msgstr "Bibliothèque pour travailler avec les possibilités de POSIX"
 
-#: gnu/packages/linux.scm:2137
+#: gnu/packages/linux.scm:2436
 msgid ""
 "Libcap2 provides a programming interface to POSIX capabilities on\n"
 "Linux-based operating systems."
 msgstr "Libcap2 fournit une interface de programmation POSIX aux systèmes basés sur Linux."
 
-#: gnu/packages/linux.scm:2179
+#: gnu/packages/linux.scm:2493
 msgid "Manipulate Ethernet bridges"
 msgstr "Manipulation des ponts Ethernet"
 
-#: gnu/packages/linux.scm:2181
+#: gnu/packages/linux.scm:2495
 msgid ""
 "Utilities for Linux's Ethernet bridging facilities.  A bridge is a way\n"
 "to connect two Ethernet segments together in a protocol independent way.\n"
@@ -11332,11 +13106,11 @@ msgstr ""
 "niveau 2, tous les protocoles peuvent transiter de manière transparente sur un\n"
 "un pont."
 
-#: gnu/packages/linux.scm:2247
+#: gnu/packages/linux.scm:2544
 msgid "NetLink protocol library suite"
 msgstr "Bibliothèqye pour le protocole NetLink"
 
-#: gnu/packages/linux.scm:2249
+#: gnu/packages/linux.scm:2546
 msgid ""
 "The libnl suite is a collection of libraries providing APIs to netlink\n"
 "protocol based Linux kernel interfaces.  Netlink is an IPC mechanism primarily\n"
@@ -11350,21 +13124,21 @@ msgstr ""
 "est conçu pour être un successeur plus flexible à ioctl permettant de configurer\n"
 "le réseau au niveau noyau et surveiller les interfaces."
 
-#: gnu/packages/linux.scm:2289
+#: gnu/packages/linux.scm:2622
 msgid "Tool for configuring wireless devices"
 msgstr "Outils de configuration d'extensions sans fil"
 
-#: gnu/packages/linux.scm:2291
+#: gnu/packages/linux.scm:2624
 msgid ""
 "iw is a new nl80211 based CLI configuration utility for wireless\n"
 "devices.  It replaces @code{iwconfig}, which is deprecated."
 msgstr ""
 
-#: gnu/packages/linux.scm:2335
+#: gnu/packages/linux.scm:2668
 msgid "Analyze power consumption on Intel-based laptops"
 msgstr "Analyse de la consommation des portables basés sur Intel"
 
-#: gnu/packages/linux.scm:2337
+#: gnu/packages/linux.scm:2670
 msgid ""
 "PowerTOP is a Linux tool to diagnose issues with power consumption and\n"
 "power management.  In addition to being a diagnostic tool, PowerTOP also has\n"
@@ -11379,11 +13153,11 @@ msgstr ""
 "l'énergie pour des cas où le système d'exploitation n'a pas activé ces\n"
 "paramètres."
 
-#: gnu/packages/linux.scm:2359
+#: gnu/packages/linux.scm:2692
 msgid "Audio mixer for X and the console"
 msgstr "Table de mixage audio basée sur X et la console"
 
-#: gnu/packages/linux.scm:2361
+#: gnu/packages/linux.scm:2694
 msgid ""
 "Aumix adjusts an audio mixer from X, the console, a terminal,\n"
 "the command line or a script."
@@ -11391,11 +13165,11 @@ msgstr ""
 "Aumix ajuste un mixer audio depuis X, la console, un terminal,\n"
 "la ligne de commande ou un script."
 
-#: gnu/packages/linux.scm:2390
+#: gnu/packages/linux.scm:2723
 msgid "Displays the IO activity of running processes"
 msgstr "Affiche l'activité des entrées-sorties des processus en cours d'exécution"
 
-#: gnu/packages/linux.scm:2392
+#: gnu/packages/linux.scm:2725
 msgid ""
 "Iotop is a Python program with a top like user interface to show the\n"
 "processes currently causing I/O."
@@ -11403,11 +13177,11 @@ msgstr ""
 "Iotop est un programme Python doté d'une interface utilisateur affichant les\n"
 "entrées-sorties en cours des processus."
 
-#: gnu/packages/linux.scm:2446
+#: gnu/packages/linux.scm:2780
 msgid "Support file systems implemented in user space"
 msgstr "Support des systèmes de fichiers implantés dans l'espace utilisateur"
 
-#: gnu/packages/linux.scm:2448
+#: gnu/packages/linux.scm:2782
 msgid ""
 "As a consequence of its monolithic design, file system code for Linux\n"
 "normally goes into the kernel itself---which is not only a robustness issue,\n"
@@ -11424,11 +13198,11 @@ msgstr ""
 "ce problème en permettant aux utilisateurs de lancer les implantations de\n"
 "systèmes de fichiers comme des processus utilisateur."
 
-#: gnu/packages/linux.scm:2479
+#: gnu/packages/linux.scm:2813
 msgid "User-space union file system"
 msgstr ""
 
-#: gnu/packages/linux.scm:2481
+#: gnu/packages/linux.scm:2815
 msgid ""
 "UnionFS-FUSE is a flexible union file system implementation in user\n"
 "space, using the FUSE library.  Mounting a union file system allows you to\n"
@@ -11436,15 +13210,15 @@ msgid ""
 "UnionFS-FUSE additionally supports copy-on-write."
 msgstr ""
 
-#: gnu/packages/linux.scm:2509
+#: gnu/packages/linux.scm:2843
 msgid "User-space union file system (statically linked)"
 msgstr ""
 
-#: gnu/packages/linux.scm:2559
+#: gnu/packages/linux.scm:2893
 msgid "Mount remote file systems over SSH"
 msgstr "Montage de systèmes de fichier distants avec SSH"
 
-#: gnu/packages/linux.scm:2561
+#: gnu/packages/linux.scm:2895
 msgid ""
 "This is a file system client based on the SSH File Transfer Protocol.\n"
 "Since most SSH servers already support this protocol it is very easy to set\n"
@@ -11457,11 +13231,11 @@ msgstr ""
 "aussi facile de monter le système de fichiers que de se connecter avec un client\n"
 "SSH."
 
-#: gnu/packages/linux.scm:2588
+#: gnu/packages/linux.scm:2922
 msgid "Tool for mounting archive files with FUSE"
 msgstr ""
 
-#: gnu/packages/linux.scm:2589
+#: gnu/packages/linux.scm:2923
 msgid ""
 "archivemount is a FUSE-based file system for Unix variants,\n"
 "including Linux.  Its purpose is to mount archives (i.e. tar, tar.gz, etc.) to a\n"
@@ -11470,11 +13244,11 @@ msgid ""
 "compressed, transparent to other programs, without decompressing them."
 msgstr ""
 
-#: gnu/packages/linux.scm:2618
+#: gnu/packages/linux.scm:2952
 msgid "Tools for non-uniform memory access (NUMA) machines"
 msgstr "Outils pour les machines basées sur NUMA (non-uniform memory access)"
 
-#: gnu/packages/linux.scm:2620
+#: gnu/packages/linux.scm:2954
 msgid ""
 "NUMA stands for Non-Uniform Memory Access, in other words a system whose\n"
 "memory is not all in one place.  The @command{numactl} program allows you to\n"
@@ -11496,36 +13270,36 @@ msgstr ""
 "et @command{numademo} qui fournissent un rapide aperçu des performances\n"
 "NUMA de votre système."
 
-#: gnu/packages/linux.scm:2656
+#: gnu/packages/linux.scm:2990
 msgid "Neo2 console layout"
 msgstr ""
 
-#: gnu/packages/linux.scm:2658
+#: gnu/packages/linux.scm:2992
 msgid ""
 "Kbd-neo provides the Neo2 keyboard layout for use with\n"
 "@command{loadkeys(1)} from @code{kbd(4)}."
 msgstr ""
 
-#: gnu/packages/linux.scm:2724
+#: gnu/packages/linux.scm:3058
 msgid "Linux keyboard utilities and keyboard maps"
 msgstr ""
 
-#: gnu/packages/linux.scm:2726
+#: gnu/packages/linux.scm:3060
 msgid ""
 "This package contains keytable files and keyboard utilities compatible\n"
 "for systems using the Linux kernel.  This includes commands such as\n"
 "@code{loadkeys}, @code{setfont}, @code{kbdinfo}, and @code{chvt}."
 msgstr ""
 
-#: gnu/packages/linux.scm:2762
+#: gnu/packages/linux.scm:3096
 msgid "Statically-linked @command{loadkeys} program"
 msgstr "Programme @command{loadkeys} lié statiquement"
 
-#: gnu/packages/linux.scm:2787
+#: gnu/packages/linux.scm:3121
 msgid "Monitor file accesses"
 msgstr "Surveillance des accès fichier"
 
-#: gnu/packages/linux.scm:2789
+#: gnu/packages/linux.scm:3123
 msgid ""
 "The inotify-tools packages provides a C library and command-line tools\n"
 "to use Linux' inotify mechanism, which allows file accesses to be monitored."
@@ -11534,11 +13308,11 @@ msgstr ""
 "permettant d'utiliser le mécanisme inotify de Linux qui autorise la surveillance\n"
 "des accès fichier."
 
-#: gnu/packages/linux.scm:2828
+#: gnu/packages/linux.scm:3171
 msgid "Kernel module tools"
 msgstr "Outils de module noyau"
 
-#: gnu/packages/linux.scm:2829
+#: gnu/packages/linux.scm:3172
 msgid ""
 "Kmod is a set of tools to handle common tasks with Linux\n"
 "kernel modules like insert, remove, list, check properties, resolve\n"
@@ -11556,22 +13330,22 @@ msgstr ""
 "kmod. L'objectif est d'être compatible avec les outils, les configurations et\n"
 "les indices du projet module-init-tools."
 
-#: gnu/packages/linux.scm:2876
+#: gnu/packages/linux.scm:3219
 msgid "Simple out of memory (OOM) daemon for the Linux kernel"
 msgstr ""
 
-#: gnu/packages/linux.scm:2877
+#: gnu/packages/linux.scm:3220
 msgid ""
 "Early OOM is a minimalist out of memory (OOM) daemon that\n"
 "runs in user space and provides a more responsive and configurable alternative\n"
 "to the in-kernel OOM killer."
 msgstr ""
 
-#: gnu/packages/linux.scm:2958
+#: gnu/packages/linux.scm:3317
 msgid "Userspace device management"
 msgstr "Gestion de périphériques utilisateurs"
 
-#: gnu/packages/linux.scm:2959
+#: gnu/packages/linux.scm:3318
 msgid ""
 "Udev is a daemon which dynamically creates and removes\n"
 "device nodes from /dev/, handles hotplug events and loads drivers at boot\n"
@@ -11581,26 +13355,52 @@ msgstr ""
 "des noeuds de périphériques dans /dev/, gérer leur branchement à chaud\n"
 "et charger leur pilotes au démarrage."
 
-#: gnu/packages/linux.scm:3050
+#: gnu/packages/linux.scm:3348
+msgid "Bindings to the Linux input handling subsystem"
+msgstr ""
+
+#: gnu/packages/linux.scm:3350
+msgid ""
+"Python-evdev provides bindings to the generic input event interface in\n"
+"Linux.  The @code{evdev} interface serves the purpose of passing events\n"
+"generated in the kernel directly to userspace through character devices that\n"
+"are typically located in @file{/dev/input/}.\n"
+"\n"
+"This package also comes with bindings to @code{uinput}, the userspace input\n"
+"subsystem.  @code{uinput} allows userspace programs to create and handle input\n"
+"devices that can inject events directly into the input subsystem."
+msgstr ""
+
+#: gnu/packages/linux.scm:3432
 msgid "Logical volume management for Linux"
 msgstr "Gestion de volumes logiques pour Linux"
 
-#: gnu/packages/linux.scm:3052
+#: gnu/packages/linux.scm:3434
 msgid ""
 "LVM2 is the logical volume management tool set for Linux-based systems.\n"
 "This package includes the user-space libraries and tools, including the device\n"
 "mapper.  Kernel components are part of Linux-libre."
 msgstr ""
 
-#: gnu/packages/linux.scm:3092
+#: gnu/packages/linux.scm:3474
 msgid "Logical volume management for Linux (statically linked)"
 msgstr "Gestion de volumes logiques pour Linux (lié statiquement)"
 
-#: gnu/packages/linux.scm:3134
+#: gnu/packages/linux.scm:3501
+msgid "Tools for manipulating the metadata of device-mapper targets"
+msgstr "Outils de manipulation des métadonnées des cibles de device-mapper"
+
+#: gnu/packages/linux.scm:3502
+msgid ""
+"A suite of tools for manipulating the metadata of the\n"
+"dm-thin, dm-cache and dm-era device-mapper targets."
+msgstr ""
+
+#: gnu/packages/linux.scm:3547
 msgid "Tools for manipulating Linux Wireless Extensions"
 msgstr "Outils de manipulation d'extensions sans fil pour Linux"
 
-#: gnu/packages/linux.scm:3135
+#: gnu/packages/linux.scm:3548
 msgid ""
 "Wireless Tools are used to manipulate the now-deprecated\n"
 "Linux Wireless Extensions; consider using @code{iw} instead.  The Wireless\n"
@@ -11609,33 +13409,33 @@ msgid ""
 "interface."
 msgstr ""
 
-#: gnu/packages/linux.scm:3211
+#: gnu/packages/linux.scm:3638
 msgid "Central regulatory domain agent (CRDA) for WiFi"
 msgstr ""
 
-#: gnu/packages/linux.scm:3213
+#: gnu/packages/linux.scm:3640
 msgid ""
 "The Central Regulatory Domain Agent (CRDA) acts as the udev helper for\n"
 "communication between the kernel Linux and user space for regulatory\n"
 "compliance."
 msgstr ""
 
-#: gnu/packages/linux.scm:3281
+#: gnu/packages/linux.scm:3708
 msgid "Wireless regulatory database"
 msgstr "Base de données sans fil réglementaire"
 
-#: gnu/packages/linux.scm:3283
+#: gnu/packages/linux.scm:3710
 msgid ""
 "This package contains the wireless regulatory database Central\n"
 "Regulatory Database Agent (CRDA) daemon.  The database contains information on\n"
 "country-specific regulations for the wireless spectrum."
 msgstr ""
 
-#: gnu/packages/linux.scm:3360
+#: gnu/packages/linux.scm:3787
 msgid "Utilities to read temperature/voltage/fan sensors"
 msgstr "Utilitaires pour la lecture de capteurs de tempéture/voltage/ventilateur"
 
-#: gnu/packages/linux.scm:3362
+#: gnu/packages/linux.scm:3789
 msgid ""
 "Lm-sensors is a hardware health monitoring package for Linux.  It allows\n"
 "you to access information from temperature, voltage, and fan speed sensors.\n"
@@ -11646,22 +13446,22 @@ msgstr ""
 "le voltage ou la vitesse des ventilatuers. Il fonctionne avec la plupart des\n"
 "systèmes les plus récents."
 
-#: gnu/packages/linux.scm:3380
+#: gnu/packages/linux.scm:3807
 msgid "Manipulate Intel microcode bundles"
 msgstr "Manipulation des lots de microcodes Intel"
 
-#: gnu/packages/linux.scm:3382
+#: gnu/packages/linux.scm:3809
 msgid ""
 "@command{iucode_tool} is a utility to work with microcode packages for\n"
 "Intel processors.  It can convert between formats, extract specific versions,\n"
 "create a firmware image suitable for the Linux kernel, and more."
 msgstr ""
 
-#: gnu/packages/linux.scm:3411
+#: gnu/packages/linux.scm:3838
 msgid "I2C tools for Linux"
 msgstr ""
 
-#: gnu/packages/linux.scm:3413
+#: gnu/packages/linux.scm:3840
 msgid ""
 "The i2c-tools package contains a heterogeneous set of I2C tools for\n"
 "Linux: a bus probing tool, a chip dumper, register-level SMBus access helpers,\n"
@@ -11669,11 +13469,11 @@ msgid ""
 "SMBus access."
 msgstr ""
 
-#: gnu/packages/linux.scm:3450
+#: gnu/packages/linux.scm:3877
 msgid "Hardware health information viewer"
 msgstr "Utiltaire de monitoring hardware"
 
-#: gnu/packages/linux.scm:3452
+#: gnu/packages/linux.scm:3879
 msgid ""
 "Xsensors reads data from the libsensors library regarding hardware\n"
 "health such as temperature, voltage and fan speed and displays the information\n"
@@ -11683,11 +13483,11 @@ msgstr ""
 "la vitesse des ventilateurs depuis la bibliothèque libsensors et affiche les informations\n"
 "numériquement."
 
-#: gnu/packages/linux.scm:3507
+#: gnu/packages/linux.scm:3931
 msgid "Linux profiling with performance counters"
 msgstr ""
 
-#: gnu/packages/linux.scm:3509
+#: gnu/packages/linux.scm:3933
 msgid ""
 "perf is a tool suite for profiling using hardware performance counters,\n"
 "with support in the Linux kernel.  perf can instrument CPU performance\n"
@@ -11696,11 +13496,11 @@ msgid ""
 "particular the @code{perf} command."
 msgstr ""
 
-#: gnu/packages/linux.scm:3532
+#: gnu/packages/linux.scm:3957
 msgid "Simple tool for creating Linux namespace containers"
 msgstr ""
 
-#: gnu/packages/linux.scm:3533
+#: gnu/packages/linux.scm:3958
 msgid ""
 "pflask is a simple tool for creating Linux namespace\n"
 "containers.  It can be used for running a command or even booting an OS inside\n"
@@ -11709,11 +13509,11 @@ msgid ""
 "thanks to the use of namespaces."
 msgstr ""
 
-#: gnu/packages/linux.scm:3609
+#: gnu/packages/linux.scm:4042
 msgid "Container platform"
 msgstr ""
 
-#: gnu/packages/linux.scm:3610
+#: gnu/packages/linux.scm:4043
 msgid ""
 "Singularity is a container platform supporting a number of\n"
 "container image formats.  It can build SquashFS container images or import\n"
@@ -11721,11 +13521,11 @@ msgid ""
 "isolation or root privileges."
 msgstr ""
 
-#: gnu/packages/linux.scm:3638
+#: gnu/packages/linux.scm:4074
 msgid "View and tune ATA disk drive parameters"
 msgstr ""
 
-#: gnu/packages/linux.scm:3640
+#: gnu/packages/linux.scm:4076
 msgid ""
 "@command{hdparm} is a command-line utility to control ATA controllers and\n"
 "disk drives.  It can increase performance and/or reliability by careful tuning\n"
@@ -11739,33 +13539,33 @@ msgid ""
 "Translation (@dfn{SAT}) are also supported."
 msgstr ""
 
-#: gnu/packages/linux.scm:3676
+#: gnu/packages/linux.scm:4114
 msgid "NVM-Express user space tooling for Linux"
 msgstr ""
 
-#: gnu/packages/linux.scm:3677
+#: gnu/packages/linux.scm:4115
 msgid ""
 "Nvme-cli is a utility to provide standards compliant tooling\n"
 "for NVM-Express drives.  It was made specifically for Linux as it relies on the\n"
 "IOCTLs defined by the mainline kernel driver."
 msgstr ""
 
-#: gnu/packages/linux.scm:3701
+#: gnu/packages/linux.scm:4139
 msgid "Tool for enabling and disabling wireless devices"
 msgstr "Outils pour activer ou désactiver des périphériques sans fil"
 
-#: gnu/packages/linux.scm:3703
+#: gnu/packages/linux.scm:4141
 msgid ""
 "rfkill is a simple tool for accessing the rfkill device interface,\n"
 "which is used to enable and disable wireless networking devices, typically\n"
 "WLAN, Bluetooth and mobile broadband."
 msgstr ""
 
-#: gnu/packages/linux.scm:3724
+#: gnu/packages/linux.scm:4162
 msgid "Display information on ACPI devices"
 msgstr ""
 
-#: gnu/packages/linux.scm:3725
+#: gnu/packages/linux.scm:4163
 msgid ""
 "@code{acpi} attempts to replicate the functionality of the\n"
 "\"old\" @code{apm} command on ACPI systems, including battery and thermal\n"
@@ -11773,11 +13573,11 @@ msgid ""
 "about ACPI devices."
 msgstr ""
 
-#: gnu/packages/linux.scm:3744
+#: gnu/packages/linux.scm:4182
 msgid "Daemon for delivering ACPI events to user-space programs"
 msgstr ""
 
-#: gnu/packages/linux.scm:3746
+#: gnu/packages/linux.scm:4184
 msgid ""
 "acpid is designed to notify user-space programs of Advanced\n"
 "Configuration and Power Interface (ACPI) events.  acpid should be started\n"
@@ -11786,37 +13586,37 @@ msgid ""
 "specified in /etc/acpi/events and execute the rules that match the event."
 msgstr ""
 
-#: gnu/packages/linux.scm:3768
+#: gnu/packages/linux.scm:4206
 msgid "System utilities based on Linux sysfs"
 msgstr ""
 
-#: gnu/packages/linux.scm:3770
+#: gnu/packages/linux.scm:4208
 msgid ""
 "These are a set of utilities built upon sysfs, a virtual file system in\n"
 "Linux kernel versions 2.5+ that exposes a system's device tree.  The package\n"
 "also contains the libsysfs library."
 msgstr ""
 
-#: gnu/packages/linux.scm:3800
+#: gnu/packages/linux.scm:4238
 msgid "System utilities based on Linux sysfs (version 1.x)"
 msgstr ""
 
-#: gnu/packages/linux.scm:3821
+#: gnu/packages/linux.scm:4259
 msgid "Utilities to get and set CPU frequency on Linux"
 msgstr ""
 
-#: gnu/packages/linux.scm:3823
+#: gnu/packages/linux.scm:4261
 msgid ""
 "The cpufrequtils suite contains utilities to retrieve CPU frequency\n"
 "information, and set the CPU frequency if supported, using the cpufreq\n"
 "capabilities of the Linux kernel."
 msgstr ""
 
-#: gnu/packages/linux.scm:3842
+#: gnu/packages/linux.scm:4280
 msgid "Interface library for the Linux IEEE1394 drivers"
 msgstr ""
 
-#: gnu/packages/linux.scm:3844
+#: gnu/packages/linux.scm:4282
 msgid ""
 "Libraw1394 is the only supported interface to the kernel side raw1394 of\n"
 "the Linux IEEE-1394 subsystem, which provides direct access to the connected\n"
@@ -11825,46 +13625,46 @@ msgid ""
 "protocol in question."
 msgstr ""
 
-#: gnu/packages/linux.scm:3868
+#: gnu/packages/linux.scm:4306
 msgid "AV/C protocol library for IEEE 1394"
 msgstr ""
 
-#: gnu/packages/linux.scm:3870
+#: gnu/packages/linux.scm:4308
 msgid ""
 "Libavc1394 is a programming interface to the AV/C specification from\n"
 "the 1394 Trade Association.  AV/C stands for Audio/Video Control."
 msgstr ""
 
-#: gnu/packages/linux.scm:3892
+#: gnu/packages/linux.scm:4330
 msgid "Isochronous streaming media library for IEEE 1394"
 msgstr ""
 
-#: gnu/packages/linux.scm:3894
+#: gnu/packages/linux.scm:4332
 msgid ""
 "The libiec61883 library provides a higher level API for streaming DV,\n"
 "MPEG-2 and audio over Linux IEEE 1394."
 msgstr ""
 
-#: gnu/packages/linux.scm:3943
+#: gnu/packages/linux.scm:4383
 msgid "Tool for managing Linux Software RAID arrays"
 msgstr ""
 
-#: gnu/packages/linux.scm:3945
+#: gnu/packages/linux.scm:4385
 msgid ""
 "mdadm is a tool for managing Linux Software RAID arrays.  It can create,\n"
 "assemble, report on, and monitor arrays.  It can also move spares between raid\n"
 "arrays when needed."
 msgstr ""
 
-#: gnu/packages/linux.scm:3977
+#: gnu/packages/linux.scm:4417
 msgid "Statically-linked 'mdadm' command for use in an initrd"
 msgstr "Commandes mdadm liées statiquement à utiliser dans un initrd"
 
-#: gnu/packages/linux.scm:4047
+#: gnu/packages/linux.scm:4506
 msgid "Access block devices through multiple paths"
 msgstr ""
 
-#: gnu/packages/linux.scm:4049
+#: gnu/packages/linux.scm:4508
 msgid ""
 "This package provides the following binaries to drive the\n"
 "Linux Device Mapper multipathing driver:\n"
@@ -11877,96 +13677,96 @@ msgid ""
 "@end enumerate"
 msgstr ""
 
-#: gnu/packages/linux.scm:4081
+#: gnu/packages/linux.scm:4546
 msgid "Linux-native asynchronous I/O access library"
 msgstr ""
 
-#: gnu/packages/linux.scm:4083
+#: gnu/packages/linux.scm:4548
 msgid ""
 "This library enables userspace to use Linux kernel asynchronous I/O\n"
 "system calls, important for the performance of databases and other advanced\n"
 "applications."
 msgstr ""
 
-#: gnu/packages/linux.scm:4124
+#: gnu/packages/linux.scm:4590
 msgid "Block layer IO tracing mechanism"
 msgstr ""
 
-#: gnu/packages/linux.scm:4125
+#: gnu/packages/linux.scm:4591
 msgid ""
 "Blktrace is a block layer IO tracing mechanism which provides\n"
 "detailed information about request queue operations to user space.  It extracts\n"
 "event traces from the kernel (via the relaying through the debug file system)."
 msgstr ""
 
-#: gnu/packages/linux.scm:4147
+#: gnu/packages/linux.scm:4613
 msgid "Bluetooth subband audio codec"
 msgstr ""
 
-#: gnu/packages/linux.scm:4149
+#: gnu/packages/linux.scm:4615
 msgid ""
 "The SBC is a digital audio encoder and decoder used to transfer data to\n"
 "Bluetooth audio output devices like headphones or loudspeakers."
 msgstr ""
 
-#: gnu/packages/linux.scm:4216
+#: gnu/packages/linux.scm:4681
 msgid "Linux Bluetooth protocol stack"
 msgstr ""
 
-#: gnu/packages/linux.scm:4218
+#: gnu/packages/linux.scm:4683
 msgid ""
 "BlueZ provides support for the core Bluetooth layers and protocols.  It\n"
 "is flexible, efficient and uses a modular implementation."
 msgstr ""
 
-#: gnu/packages/linux.scm:4248
+#: gnu/packages/linux.scm:4705
 msgid "Mount exFAT file systems"
 msgstr "Montage de systèmes de fichier exFAT"
 
-#: gnu/packages/linux.scm:4250
+#: gnu/packages/linux.scm:4707
 msgid ""
 "This package provides a FUSE-based file system that provides read and\n"
 "write access to exFAT devices."
 msgstr ""
 
-#: gnu/packages/linux.scm:4273
+#: gnu/packages/linux.scm:4730
 msgid "Mount ISO file system images"
 msgstr "Montage de systèmes de fichier ISO"
 
-#: gnu/packages/linux.scm:4275
+#: gnu/packages/linux.scm:4732
 msgid ""
 "FuseISO is a FUSE module to mount ISO file system images (.iso, .nrg,\n"
 ".bin, .mdf and .img files).  It supports plain ISO9660 Level 1 and 2, Rock\n"
 "Ridge, Joliet, and zisofs."
 msgstr ""
 
-#: gnu/packages/linux.scm:4318
+#: gnu/packages/linux.scm:4775
 msgid "Mouse support for the Linux console"
 msgstr ""
 
-#: gnu/packages/linux.scm:4320
+#: gnu/packages/linux.scm:4777
 msgid ""
 "The GPM (general-purpose mouse) daemon is a mouse server for\n"
 "applications running on the Linux console.  It allows users to select items\n"
 "and copy/paste text in the console and in xterm."
 msgstr ""
 
-#: gnu/packages/linux.scm:4394
+#: gnu/packages/linux.scm:4849
 msgid "Create and manage btrfs copy-on-write file systems"
 msgstr ""
 
-#: gnu/packages/linux.scm:4395
+#: gnu/packages/linux.scm:4850
 msgid ""
 "Btrfs is a @dfn{copy-on-write} (CoW) file system for Linux\n"
 "aimed at implementing advanced features while focusing on fault tolerance,\n"
 "repair and easy administration."
 msgstr ""
 
-#: gnu/packages/linux.scm:4428
+#: gnu/packages/linux.scm:4883
 msgid "Statically-linked btrfs command from btrfs-progs"
 msgstr "Commandes btrfs de btrfs-progs liées statiquement"
 
-#: gnu/packages/linux.scm:4429
+#: gnu/packages/linux.scm:4884
 msgid ""
 "This package provides the statically-linked @command{btrfs}\n"
 "from the btrfs-progs package.  It is meant to be used in initrds."
@@ -11974,11 +13774,11 @@ msgstr ""
 "Ce paquet fournit la commande liée statiquement @command{btrfs}\n"
 "issue du paquet btrfs-progs. Il est censé être utilisé dans les initrd."
 
-#: gnu/packages/linux.scm:4460
+#: gnu/packages/linux.scm:4915
 msgid "Tools to manage Cramfs file systems"
 msgstr "Outils de manipulation des systèmes de fichiers Cramfs"
 
-#: gnu/packages/linux.scm:4461
+#: gnu/packages/linux.scm:4916
 msgid ""
 "Cramfs is a Linux file system designed to be simple, small,\n"
 "and to compress things well.  It is used on a number of embedded systems and\n"
@@ -11986,11 +13786,11 @@ msgid ""
 "blocks and random block placement."
 msgstr ""
 
-#: gnu/packages/linux.scm:4494
+#: gnu/packages/linux.scm:4949
 msgid "Find compression type/ratio on Btrfs files"
 msgstr ""
 
-#: gnu/packages/linux.scm:4495
+#: gnu/packages/linux.scm:4950
 msgid ""
 "@command{compsize} takes a list of files (given as\n"
 "arguments) on a Btrfs file system and measures used compression types and\n"
@@ -12007,22 +13807,34 @@ msgid ""
 "obviously it can be shared with files outside our set)."
 msgstr ""
 
-#: gnu/packages/linux.scm:4543
+#: gnu/packages/linux.scm:4998
 msgid "Userland tools for f2fs"
 msgstr ""
 
-#: gnu/packages/linux.scm:4545
+#: gnu/packages/linux.scm:5000
 msgid ""
 "F2FS, the Flash-Friendly File System, is a modern file system\n"
 "designed to be fast and durable on flash devices such as solid-state\n"
 "disks and SD cards.  This package provides the userland utilities."
 msgstr ""
 
-#: gnu/packages/linux.scm:4593
+#: gnu/packages/linux.scm:5088
+msgid "Statically-linked fsck.f2fs command from f2fs-tools"
+msgstr "Commandes de fsck.f2fs liées statiquement provenant de f2fs-tools"
+
+#: gnu/packages/linux.scm:5089
+msgid ""
+"This package provides statically-linked fsck.f2fs command taken\n"
+"from the f2fs-tools package. It is meant to be used in initrds."
+msgstr ""
+"Ce paquet fournit la commande fsck.f2fs liée statiquement issue\n"
+"du paquet f2fs-tools. Il est censé être utilisé dans les initrds."
+
+#: gnu/packages/linux.scm:5118
 msgid "Free-fall protection for spinning laptop hard drives"
 msgstr ""
 
-#: gnu/packages/linux.scm:4595
+#: gnu/packages/linux.scm:5120
 msgid ""
 "Prevents shock damage to the internal spinning hard drive(s) of some\n"
 "HP and Dell laptops.  When sudden movement is detected, all input/output\n"
@@ -12032,11 +13844,11 @@ msgid ""
 "feature, and a laptop with an accelerometer.  It has no effect on SSDs."
 msgstr ""
 
-#: gnu/packages/linux.scm:4652
+#: gnu/packages/linux.scm:5177
 msgid "Simple fan control program"
 msgstr ""
 
-#: gnu/packages/linux.scm:4654
+#: gnu/packages/linux.scm:5179
 msgid ""
 "Thinkfan is a simple fan control program.  It reads temperatures,\n"
 "checks them against configured limits and switches to appropriate (also\n"
@@ -12045,11 +13857,11 @@ msgid ""
 "from userspace."
 msgstr ""
 
-#: gnu/packages/linux.scm:4708
+#: gnu/packages/linux.scm:5233
 msgid "ThinkPad battery charge controller"
 msgstr ""
 
-#: gnu/packages/linux.scm:4710
+#: gnu/packages/linux.scm:5235
 msgid ""
 "Tpacpi-bat is a command-line interface to control battery charging on\n"
 "@uref{https://github.com/teleshoes/tpacpi-bat/wiki/Supported-Hardware, Lenovo\n"
@@ -12064,22 +13876,22 @@ msgid ""
 "supported."
 msgstr ""
 
-#: gnu/packages/linux.scm:4766
+#: gnu/packages/linux.scm:5292
 msgid "Read-write access to NTFS file systems"
 msgstr ""
 
-#: gnu/packages/linux.scm:4768
+#: gnu/packages/linux.scm:5294
 msgid ""
 "NTFS-3G provides read-write access to NTFS file systems, which are\n"
 "commonly found on Microsoft Windows.  It is implemented as a FUSE file system.\n"
 "The package provides additional NTFS tools."
 msgstr ""
 
-#: gnu/packages/linux.scm:4823
+#: gnu/packages/linux.scm:5349
 msgid "Utilities and libraries for working with RDMA devices"
 msgstr ""
 
-#: gnu/packages/linux.scm:4825
+#: gnu/packages/linux.scm:5351
 msgid ""
 "This package provides userspace components for the InfiniBand\n"
 "subsystem of the Linux kernel.  Specifically it contains userspace\n"
@@ -12099,11 +13911,11 @@ msgid ""
 "@end enumerate"
 msgstr ""
 
-#: gnu/packages/linux.scm:4878
+#: gnu/packages/linux.scm:5404
 msgid "Open Fabrics Enterprise Distribution (OFED) Performance Tests"
 msgstr ""
 
-#: gnu/packages/linux.scm:4879
+#: gnu/packages/linux.scm:5405
 msgid ""
 "This is a collection of tests written over uverbs intended for\n"
 "use as a performance micro-benchmark. The tests may be used for hardware or\n"
@@ -12119,32 +13931,32 @@ msgid ""
 "@end enumerate"
 msgstr ""
 
-#: gnu/packages/linux.scm:4917
+#: gnu/packages/linux.scm:5447
 msgid "Random number generator daemon"
 msgstr ""
 
-#: gnu/packages/linux.scm:4919
+#: gnu/packages/linux.scm:5449
 msgid ""
 "Monitor a hardware random number generator, and supply entropy\n"
 "from that to the system kernel's @file{/dev/random} machinery."
 msgstr ""
 
-#: gnu/packages/linux.scm:4959
+#: gnu/packages/linux.scm:5489
 msgid "CPU frequency and voltage scaling tools for Linux"
 msgstr ""
 
-#: gnu/packages/linux.scm:4961
+#: gnu/packages/linux.scm:5491
 msgid ""
 "cpupower is a set of user-space tools that use the cpufreq feature of the\n"
 "Linux kernel to retrieve and control processor features related to power saving,\n"
 "such as frequency and voltage scaling."
 msgstr ""
 
-#: gnu/packages/linux.scm:4991
+#: gnu/packages/linux.scm:5521
 msgid "Display and update Intel-CPU energy-performance policy"
 msgstr ""
 
-#: gnu/packages/linux.scm:4993
+#: gnu/packages/linux.scm:5523
 msgid ""
 "@command{x86_energy_perf_policy} displays and updates energy-performance\n"
 "policy settings specific to Intel Architecture Processors.  Settings are\n"
@@ -12152,11 +13964,11 @@ msgid ""
 "cpufreq sub-system is enabled or not."
 msgstr ""
 
-#: gnu/packages/linux.scm:5014
+#: gnu/packages/linux.scm:5544
 msgid "Entropy source for the Linux random number generator"
 msgstr ""
 
-#: gnu/packages/linux.scm:5016
+#: gnu/packages/linux.scm:5546
 msgid ""
 "haveged generates an unpredictable stream of random numbers for use by\n"
 "Linux's @file{/dev/random} and @file{/dev/urandom} devices.  The kernel's\n"
@@ -12174,11 +13986,11 @@ msgid ""
 "not as a replacement for it."
 msgstr ""
 
-#: gnu/packages/linux.scm:5101
+#: gnu/packages/linux.scm:5631
 msgid "eCryptfs cryptographic file system utilities"
 msgstr ""
 
-#: gnu/packages/linux.scm:5103
+#: gnu/packages/linux.scm:5633
 msgid ""
 "eCryptfs is a POSIX-compliant stacked cryptographic file system for Linux.\n"
 "Each file's cryptographic meta-data is stored inside the file itself, along\n"
@@ -12188,11 +14000,11 @@ msgid ""
 "2.6.19.  This package contains the userland utilities to manage it."
 msgstr ""
 
-#: gnu/packages/linux.scm:5134
+#: gnu/packages/linux.scm:5664
 msgid "NFSv4 support library for name/ID mapping"
 msgstr ""
 
-#: gnu/packages/linux.scm:5135
+#: gnu/packages/linux.scm:5665
 msgid ""
 "Libnfsidmap is a library holding mulitiple methods of\n"
 "mapping names to ids and visa versa, mainly for NFSv4.  It provides an\n"
@@ -12200,11 +14012,11 @@ msgid ""
 "the default @code{nsswitch} and the experimental @code{umich_ldap}."
 msgstr ""
 
-#: gnu/packages/linux.scm:5169
+#: gnu/packages/linux.scm:5699
 msgid "Tools for loading and managing Linux kernel modules"
 msgstr "Outils de chargement et de gestion de modules noyau pour Linux"
 
-#: gnu/packages/linux.scm:5171
+#: gnu/packages/linux.scm:5701
 msgid ""
 "Tools for loading and managing Linux kernel modules, such as\n"
 "@code{modprobe}, @code{insmod}, @code{lsmod}, and more."
@@ -12212,23 +14024,23 @@ msgstr ""
 "Outils pour le chargement et la gestion des modules noyau Linux, tels que\n"
 "@code{modprobe}, @code{insmod}, @code{lsmod} et plus."
 
-#: gnu/packages/linux.scm:5208
+#: gnu/packages/linux.scm:5739
 msgid "Machine check monitor for x86 Linux systems"
 msgstr ""
 
-#: gnu/packages/linux.scm:5210
+#: gnu/packages/linux.scm:5741
 msgid ""
-"The mcelog daemon is required by the Linux kernel to log memory, I/O, CPU,\n"
-"and other hardware errors on x86 systems.  It can also perform user-defined\n"
-"tasks, such as bringing bad pages off-line, when configurable error thresholds\n"
-"are exceeded."
+"The mcelog daemon logs memory, I/O, CPU, and other hardware errors on x86\n"
+"systems running the kernel Linux.  It can also perform user-defined tasks, such\n"
+"as bringing bad pages off-line, when configurable error thresholds are\n"
+"exceeded."
 msgstr ""
 
-#: gnu/packages/linux.scm:5241
+#: gnu/packages/linux.scm:5772
 msgid "MTD Flash Storage Utilities"
 msgstr ""
 
-#: gnu/packages/linux.scm:5242
+#: gnu/packages/linux.scm:5773
 msgid ""
 "This package provides utilities for testing, partitioning, etc\n"
 "of flash storage."
@@ -12236,11 +14048,11 @@ msgstr ""
 "Ce paquet fournit des outils pour tester, partitionner, etc\n"
 "les périphériques flash."
 
-#: gnu/packages/linux.scm:5265
+#: gnu/packages/linux.scm:5806
 msgid "Interface to Linux's seccomp syscall filtering mechanism"
 msgstr ""
 
-#: gnu/packages/linux.scm:5266
+#: gnu/packages/linux.scm:5807
 msgid ""
 "The libseccomp library provides an easy to use, platform\n"
 "independent, interface to the Linux Kernel's syscall filtering mechanism.  The\n"
@@ -12250,11 +14062,11 @@ msgid ""
 "developers."
 msgstr ""
 
-#: gnu/packages/linux.scm:5312
+#: gnu/packages/linux.scm:5853
 msgid "Usage monitor for AMD Radeon graphics"
 msgstr ""
 
-#: gnu/packages/linux.scm:5313
+#: gnu/packages/linux.scm:5854
 msgid ""
 "RadeonTop monitors resource consumption on supported AMD\n"
 "Radeon Graphics Processing Units (GPUs), either in real time as bar graphs on\n"
@@ -12264,21 +14076,21 @@ msgid ""
 "under OpenGL graphics workloads."
 msgstr ""
 
-#: gnu/packages/linux.scm:5356
+#: gnu/packages/linux.scm:5890
 msgid "Tool and library to manipulate EFI variables"
 msgstr ""
 
-#: gnu/packages/linux.scm:5357
+#: gnu/packages/linux.scm:5891
 msgid ""
 "This package provides a library and a command line\n"
 "interface to the variable facility of UEFI boot firmware."
 msgstr ""
 
-#: gnu/packages/linux.scm:5396
+#: gnu/packages/linux.scm:5925
 msgid "Modify the Extensible Firmware Interface (EFI) boot manager"
 msgstr ""
 
-#: gnu/packages/linux.scm:5398
+#: gnu/packages/linux.scm:5927
 msgid ""
 "@code{efibootmgr} is a user-space application to modify the Intel\n"
 "Extensible Firmware Interface (EFI) Boot Manager.  This application can\n"
@@ -12286,11 +14098,11 @@ msgid ""
 "running boot option, and more."
 msgstr ""
 
-#: gnu/packages/linux.scm:5434
+#: gnu/packages/linux.scm:5963
 msgid "Performance monitoring tools for Linux"
 msgstr ""
 
-#: gnu/packages/linux.scm:5435
+#: gnu/packages/linux.scm:5964
 msgid ""
 "The sysstat utilities are a collection of performance\n"
 "monitoring tools for Linux.  These include @code{mpstat}, @code{iostat},\n"
@@ -12298,11 +14110,11 @@ msgid ""
 "@code{sadf} and @code{sa}."
 msgstr ""
 
-#: gnu/packages/linux.scm:5474
+#: gnu/packages/linux.scm:6003
 msgid "GNU/Linux application to control backlights"
 msgstr ""
 
-#: gnu/packages/linux.scm:5476
+#: gnu/packages/linux.scm:6005
 msgid ""
 "Light is a program to send commands to screen backlight controllers\n"
 "under GNU/Linux.  Features include:\n"
@@ -12312,17 +14124,15 @@ msgid ""
 "@item Light can automatically figure out the best controller to use, making\n"
 "full use of underlying hardware.\n"
 "@item It is possible to set a minimum brightness value, as some controllers\n"
-"set the screen to be pitch black at a vaĺue of 0 (or higher).\n"
+"set the screen to be pitch black at a value of 0 (or higher).\n"
 "@end itemize\n"
-"\n"
-"Light is the successor of lightscript."
 msgstr ""
 
-#: gnu/packages/linux.scm:5519
+#: gnu/packages/linux.scm:6046
 msgid "Backlight and LED brightness control"
 msgstr ""
 
-#: gnu/packages/linux.scm:5521
+#: gnu/packages/linux.scm:6048
 msgid ""
 "This program allows you read and control device brightness.  Devices\n"
 "include backlight and LEDs.  It can also preserve current brightness before\n"
@@ -12332,11 +14142,11 @@ msgid ""
 "interface in sysfs, which can be accomplished with the included udev rules."
 msgstr ""
 
-#: gnu/packages/linux.scm:5644
+#: gnu/packages/linux.scm:6171
 msgid "Power management tool for Linux"
 msgstr "Outil de gestion de l'énergie pour Linux"
 
-#: gnu/packages/linux.scm:5645
+#: gnu/packages/linux.scm:6172
 msgid ""
 "TLP is a power management tool for Linux.  It comes with\n"
 "a default configuration already optimized for battery life.  Nevertheless,\n"
@@ -12344,11 +14154,11 @@ msgid ""
 "every time the power supply source is changed."
 msgstr ""
 
-#: gnu/packages/linux.scm:5671
+#: gnu/packages/linux.scm:6198
 msgid "List hardware information"
 msgstr "Liste les informations sur le matériel"
 
-#: gnu/packages/linux.scm:5673
+#: gnu/packages/linux.scm:6200
 msgid ""
 "@command{lshw} (Hardware Lister) is a small tool to provide\n"
 "detailed information on the hardware configuration of the machine.\n"
@@ -12358,11 +14168,11 @@ msgid ""
 "machines (PowerMac G4 is known to work)."
 msgstr ""
 
-#: gnu/packages/linux.scm:5696
+#: gnu/packages/linux.scm:6223
 msgid "Netlink utility library"
 msgstr "Bibliothèque pour le protocole NetLink"
 
-#: gnu/packages/linux.scm:5697
+#: gnu/packages/linux.scm:6224
 msgid ""
 "Libmnl is a minimalistic user-space library oriented to\n"
 "Netlink developers.  There are a lot of common tasks in parsing, validating,\n"
@@ -12371,11 +14181,11 @@ msgid ""
 "re-use code and to avoid re-inventing the wheel."
 msgstr ""
 
-#: gnu/packages/linux.scm:5723
+#: gnu/packages/linux.scm:6248
 msgid "Netlink programming interface to the Linux nf_tables subsystem"
 msgstr ""
 
-#: gnu/packages/linux.scm:5724
+#: gnu/packages/linux.scm:6249
 msgid ""
 "Libnftnl is a userspace library providing a low-level netlink\n"
 "programming interface to the in-kernel nf_tables subsystem.  The library\n"
@@ -12383,11 +14193,11 @@ msgid ""
 "used by nftables."
 msgstr ""
 
-#: gnu/packages/linux.scm:5754
+#: gnu/packages/linux.scm:6279
 msgid "Userspace utility for Linux packet filtering"
 msgstr "Utilitaire en espcae utilisateur pour les règles de filtrage des paquets IP pour Linux"
 
-#: gnu/packages/linux.scm:5755
+#: gnu/packages/linux.scm:6280
 msgid ""
 "nftables is the project that aims to replace the existing\n"
 "{ip,ip6,arp,eb}tables framework.  Basically, this project provides a new packet\n"
@@ -12397,11 +14207,11 @@ msgid ""
 "userspace queueing component and the logging subsystem."
 msgstr ""
 
-#: gnu/packages/linux.scm:5854
+#: gnu/packages/linux.scm:6388
 msgid "Unprivileged chroot, bind mount, and binfmt_misc"
 msgstr ""
 
-#: gnu/packages/linux.scm:5856
+#: gnu/packages/linux.scm:6390
 msgid ""
 "PRoot is a user-space implementation of @code{chroot}, @code{mount --bind},\n"
 "and @code{binfmt_misc}.  This means that users don't need any privileges or\n"
@@ -12414,15 +14224,15 @@ msgid ""
 "available in the kernel Linux."
 msgstr ""
 
-#: gnu/packages/linux.scm:5872
+#: gnu/packages/linux.scm:6406
 msgid "Unprivileged chroot, bind mount, and binfmt_misc (statically linked)"
 msgstr ""
 
-#: gnu/packages/linux.scm:5918
+#: gnu/packages/linux.scm:6453
 msgid "Linux tool to dump x86 CPUID information about the CPU(s)"
 msgstr ""
 
-#: gnu/packages/linux.scm:5919
+#: gnu/packages/linux.scm:6454
 msgid ""
 "cpuid dumps detailed information about the CPU(s) gathered\n"
 "from the CPUID instruction, and also determines the exact model of CPU(s).  It\n"
@@ -12430,22 +14240,22 @@ msgid ""
 "NexGen, Rise, and SiS CPUs."
 msgstr ""
 
-#: gnu/packages/linux.scm:5946
+#: gnu/packages/linux.scm:6482
 msgid "Use a FUSE file system to access data over MTP"
 msgstr ""
 
-#: gnu/packages/linux.scm:5947
+#: gnu/packages/linux.scm:6483
 msgid ""
 "jmtpfs uses FUSE (file system in userspace) to provide access\n"
 "to data over the Media Transfer Protocol (MTP).  Unprivileged users can mount\n"
 "the MTP device as a file system."
 msgstr ""
 
-#: gnu/packages/linux.scm:5972
+#: gnu/packages/linux.scm:6513
 msgid "Utility to show process environment"
 msgstr ""
 
-#: gnu/packages/linux.scm:5973
+#: gnu/packages/linux.scm:6514
 msgid ""
 "Procenv is a command-line tool that displays as much detail about\n"
 "itself and its environment as possible.  It can be used as a test\n"
@@ -12453,11 +14263,11 @@ msgid ""
 "comparing system environments."
 msgstr ""
 
-#: gnu/packages/linux.scm:6000
+#: gnu/packages/linux.scm:6541
 msgid "Open Fabric Interfaces"
 msgstr ""
 
-#: gnu/packages/linux.scm:6002
+#: gnu/packages/linux.scm:6543
 msgid ""
 "OpenFabrics Interfaces (OFI) is a framework focused on exporting fabric\n"
 "communication services to applications.  OFI is best described as a collection\n"
@@ -12471,11 +14281,11 @@ msgid ""
 "libraries, which are often integrated directly into libfabric."
 msgstr ""
 
-#: gnu/packages/linux.scm:6057
+#: gnu/packages/linux.scm:6598
 msgid "Intel Performance Scaled Messaging (PSM) Libraries"
 msgstr ""
 
-#: gnu/packages/linux.scm:6059
+#: gnu/packages/linux.scm:6600
 msgid ""
 "The PSM Messaging API, or PSM API, is Intel's low-level user-level\n"
 "communications interface for the True Scale family of products.  PSM users are\n"
@@ -12483,22 +14293,22 @@ msgid ""
 "interfaces in parallel environments."
 msgstr ""
 
-#: gnu/packages/linux.scm:6100
+#: gnu/packages/linux.scm:6641
 msgid "Take screenshots of one or more Linux text consoles"
 msgstr ""
 
-#: gnu/packages/linux.scm:6102
+#: gnu/packages/linux.scm:6643
 msgid ""
 "snapscreenshot saves a screenshot of one or more Linux text consoles as a\n"
 "Targa (@dfn{.tga}) image.  It can be used by anyone with read access to the\n"
 "relevant @file{/dev/vcs*} file(s)."
 msgstr ""
 
-#: gnu/packages/linux.scm:6156
+#: gnu/packages/linux.scm:6697
 msgid "Take a screenshot of the contents of the Linux framebuffer"
 msgstr ""
 
-#: gnu/packages/linux.scm:6158
+#: gnu/packages/linux.scm:6699
 msgid ""
 "fbcat saves the contents of the Linux framebuffer (@file{/dev/fb*}), or\n"
 "a dump therof.  It supports a wide range of drivers and pixel formats.\n"
@@ -12510,22 +14320,22 @@ msgid ""
 "emulates the behaviour of Gunnar Monell's older fbgrab utility."
 msgstr ""
 
-#: gnu/packages/linux.scm:6189
+#: gnu/packages/linux.scm:6730
 msgid "Control groups management tools"
 msgstr ""
 
-#: gnu/packages/linux.scm:6190
+#: gnu/packages/linux.scm:6731
 msgid ""
 "Control groups is Linux kernel method for process resource\n"
 "restriction, permission handling and more.  This package provides userspace\n"
 "interface to this kernel feature."
 msgstr ""
 
-#: gnu/packages/linux.scm:6223
+#: gnu/packages/linux.scm:6764
 msgid "Control fan speed on Macbooks"
 msgstr ""
 
-#: gnu/packages/linux.scm:6225
+#: gnu/packages/linux.scm:6766
 msgid ""
 "mbpfan is a fan control daemon for Apple Macbooks.  It uses input from\n"
 "the @code{coretemp} module and sets the fan speed using the @code{applesmc}\n"
@@ -12533,11 +14343,11 @@ msgid ""
 "privileges."
 msgstr ""
 
-#: gnu/packages/linux.scm:6268
+#: gnu/packages/linux.scm:6809
 msgid "Intel Performance Scaled Messaging 2 (PSM2) library"
 msgstr ""
 
-#: gnu/packages/linux.scm:6270
+#: gnu/packages/linux.scm:6811
 msgid ""
 "This package is low-level user-level Intel's communications interface.\n"
 "The PSM2 API is a high-performance vendor-specific protocol that provides a\n"
@@ -12545,11 +14355,11 @@ msgid ""
 "high-speed networking devices."
 msgstr ""
 
-#: gnu/packages/linux.scm:6310
+#: gnu/packages/linux.scm:6851
 msgid "Performance event monitoring library"
 msgstr "Bibliothèque de surveillance d'événements de performance"
 
-#: gnu/packages/linux.scm:6312
+#: gnu/packages/linux.scm:6853
 msgid ""
 "This package provides a library called libpfm4, which is used to develop\n"
 "monitoring tools exploiting the performance monitoring events such as those\n"
@@ -12564,11 +14374,11 @@ msgid ""
 "introduced in Linux 2.6.31."
 msgstr ""
 
-#: gnu/packages/linux.scm:6340
+#: gnu/packages/linux.scm:6881
 msgid "Low-level netfilter netlink communication library"
 msgstr ""
 
-#: gnu/packages/linux.scm:6342
+#: gnu/packages/linux.scm:6883
 msgid ""
 "@code{libnfnetlink} is the low-level library for netfilter related\n"
 "kernel/userspace communication.  It provides a generic messaging\n"
@@ -12577,11 +14387,11 @@ msgid ""
 "management tools in userspace."
 msgstr ""
 
-#: gnu/packages/linux.scm:6369
+#: gnu/packages/linux.scm:6910
 msgid "Simple netlink library for Go"
 msgstr ""
 
-#: gnu/packages/linux.scm:6370
+#: gnu/packages/linux.scm:6911
 msgid ""
 "The netlink package provides a simple netlink library for\n"
 "Go.  Netlink is the interface a user-space program in Linux uses to\n"
@@ -12589,11 +14399,11 @@ msgid ""
 "IP addresses and routes, and configure IPsec."
 msgstr ""
 
-#: gnu/packages/linux.scm:6414
+#: gnu/packages/linux.scm:6955
 msgid "XFS file system tools"
 msgstr "Outils du système de fichier XFS"
 
-#: gnu/packages/linux.scm:6415
+#: gnu/packages/linux.scm:6956
 msgid ""
 "This package provides commands to create and check XFS\n"
 "file systems."
@@ -12601,11 +14411,11 @@ msgstr ""
 "Ce paquet fournit des fonctions pour créer et vérifier\n"
 "des systèmes de fichiers XFS."
 
-#: gnu/packages/linux.scm:6453
+#: gnu/packages/linux.scm:6994
 msgid "Generate ext2 file system as a normal user"
 msgstr ""
 
-#: gnu/packages/linux.scm:6454
+#: gnu/packages/linux.scm:6995
 msgid ""
 "This package provides a program to generate an ext2\n"
 "file system as a normal (non-root) user.  It does not require you to mount\n"
@@ -12613,11 +14423,11 @@ msgid ""
 "the superuser to make device nodes."
 msgstr ""
 
-#: gnu/packages/linux.scm:6517
+#: gnu/packages/linux.scm:7080
 msgid "Provides a fake root environment"
 msgstr ""
 
-#: gnu/packages/linux.scm:6518
+#: gnu/packages/linux.scm:7081
 msgid ""
 "@command{fakeroot} runs a command in an environment where\n"
 "it appears to have root privileges for file manipulation. This is useful\n"
@@ -12628,21 +14438,36 @@ msgid ""
 "have to construct the archives directly, without using the archiver."
 msgstr ""
 
-#: gnu/packages/linux.scm:6565
+#: gnu/packages/linux.scm:7109
+msgid "Emulate @code{chroot} by overriding file system calls"
+msgstr ""
+
+#: gnu/packages/linux.scm:7111
+msgid ""
+"@command{fakechroot} runs a command in an environment were is additional\n"
+"possibility to use @code{chroot} command without root privileges.  This is\n"
+"useful for allowing users to create own chrooted environment with possibility\n"
+"to install another packages without need for root privileges.\n"
+"\n"
+"It works by providing @file{libfakechroot.so}, a shared library meant to be\n"
+"set as @code{LD_PRELOAD} to override the C library file system functions."
+msgstr ""
+
+#: gnu/packages/linux.scm:7158
 msgid "Dispatch input peripherals events to a device file"
 msgstr ""
 
-#: gnu/packages/linux.scm:6566
+#: gnu/packages/linux.scm:7159
 msgid ""
 "inputattach dispatches input events from several device\n"
 "types and interfaces and translates so that the X server can use them."
 msgstr ""
 
-#: gnu/packages/linux.scm:6599
+#: gnu/packages/linux.scm:7192
 msgid "Server and user space API to deal with multimedia pipelines"
 msgstr ""
 
-#: gnu/packages/linux.scm:6601
+#: gnu/packages/linux.scm:7194
 msgid ""
 "PipeWire is a project that aims to greatly improve handling of audio and\n"
 "video under Linux.  It aims to support the usecases currently handled by both\n"
@@ -12654,11 +14479,11 @@ msgid ""
 "of Linux application development."
 msgstr ""
 
-#: gnu/packages/linux.scm:6643
+#: gnu/packages/linux.scm:7267
 msgid "Embedded Linux Library"
 msgstr ""
 
-#: gnu/packages/linux.scm:6644
+#: gnu/packages/linux.scm:7268
 msgid ""
 "The Embedded Linux* Library (ELL) provides core, low-level\n"
 "functionality for system daemons.  It typically has no dependencies other than\n"
@@ -12667,11 +14492,11 @@ msgid ""
 "platforms, it is not limited to resource-constrained systems."
 msgstr ""
 
-#: gnu/packages/linux.scm:6669
+#: gnu/packages/linux.scm:7293
 msgid "LTTng userspace tracer libraries"
 msgstr ""
 
-#: gnu/packages/linux.scm:6670
+#: gnu/packages/linux.scm:7294
 msgid ""
 "The user space tracing library, liblttng-ust, is the LTTng\n"
 "user space tracer.  It receives commands from a session daemon, for example to\n"
@@ -12679,11 +14504,11 @@ msgid ""
 "to ring buffers shared with a consumer daemon."
 msgstr ""
 
-#: gnu/packages/linux.scm:6692
+#: gnu/packages/linux.scm:7316
 msgid "Tools for booting directly into different kernels"
 msgstr "Outils pour démarrer directement sur différents noyaux"
 
-#: gnu/packages/linux.scm:6693
+#: gnu/packages/linux.scm:7317
 msgid ""
 "This package provides the @code{kexec} program and ancillary\n"
 "utilities.  Using @code{kexec}, it is possible to boot directly into a new\n"
@@ -12691,6 +14516,106 @@ msgid ""
 "system boot process."
 msgstr ""
 
+#: gnu/packages/linux.scm:7349
+msgid "CacheFiles userspace management daemon"
+msgstr ""
+
+#: gnu/packages/linux.scm:7350
+msgid ""
+"@code{cachefilesd} is a userspace daemon that manages the\n"
+"cache data store that is used by network file systems such as @code{AFS} and\n"
+"@code{NFS} to cache data locally on disk.  The content of the cache is\n"
+"persistent over reboots."
+msgstr ""
+
+#: gnu/packages/linux.scm:7396
+msgid "BPF CO-RE (Compile Once – Run Everywhere)"
+msgstr ""
+
+#: gnu/packages/linux.scm:7398
+msgid ""
+"Libbpf supports building BPF CO-RE-enabled applications, which, in\n"
+"contrast to BCC, do not require the Clang/LLVM runtime or linux kernel\n"
+"headers."
+msgstr ""
+
+#: gnu/packages/linux.scm:7476
+msgid "Tools for BPF on Linux"
+msgstr ""
+
+#: gnu/packages/linux.scm:7478
+msgid ""
+"BCC is a toolkit for creating efficient kernel tracing and manipulation\n"
+"programs, and includes several useful tools and examples.  It makes use of\n"
+"extended BPF (Berkeley Packet Filters), formally known as eBPF, a new feature\n"
+"that was first added to Linux 3.15.  Much of what BCC uses requires Linux 4.1\n"
+"and above."
+msgstr ""
+
+#: gnu/packages/linux.scm:7518
+msgid "High-level tracing language for Linux eBPF"
+msgstr ""
+
+#: gnu/packages/linux.scm:7520
+msgid ""
+"bpftrace is a high-level tracing language for Linux enhanced Berkeley\n"
+"Packet Filter (eBPF) available in recent Linux kernels (4.x).  bpftrace uses\n"
+"LLVM as a backend to compile scripts to BPF-bytecode and makes use of BCC for\n"
+"interacting with the Linux BPF system, as well as existing Linux tracing\n"
+"capabilities: kernel dynamic tracing (kprobes), user-level dynamic\n"
+"tracing (uprobes), and tracepoints.  The bpftrace language is inspired by awk\n"
+"and C, and predecessor tracers such as DTrace and SystemTap.  bpftrace was\n"
+"created by Alastair Robertson."
+msgstr ""
+
+#: gnu/packages/linux.scm:7551
+msgid "Low-latency Raspberry Pi UART driver"
+msgstr ""
+
+#: gnu/packages/linux.scm:7552
+msgid ""
+"This package provides a Linux kernel module that will\n"
+"provide a serial device @code{/dev/ttyebus} with almost no latency upon\n"
+"receiving.  It is dedicated to the PL011 UART of the Raspberry Pi."
+msgstr ""
+
+#: gnu/packages/linux.scm:7575
+msgid "Administration tool for IP sets"
+msgstr ""
+
+#: gnu/packages/linux.scm:7576
+msgid ""
+"IP sets are a framework inside the Linux 2.4.x and 2.6.x kernel which\n"
+"can be administered by the ipset utility.  Depending on the type,\n"
+"currently an IP set may store IP addresses, (TCP/UDP) port numbers or\n"
+"IP addresses with MAC addresses in a way which ensures lightning speed\n"
+"when matching an entry against a set.\n"
+"\n"
+"If you want to\n"
+"@itemize @bullet\n"
+"@item store multiple IP addresses or port numbers and match against the entire\n"
+"collection using a single iptables rule.\n"
+"@item dynamically update iptables rules against IP addresses or ports without\n"
+"performance penalty.\n"
+"@item express complex IP address and ports based rulesets with a single\n"
+"iptables rule and benefit from the speed of IP sets.\n"
+"@end itemize\n"
+"\n"
+"then IP sets may be the proper tool for you."
+msgstr ""
+
+#: gnu/packages/linux.scm:7622
+msgid "Interface to the Linux kernel @code{io_uring} interface"
+msgstr ""
+
+#: gnu/packages/linux.scm:7623
+msgid ""
+"This is the io_uring library, liburing. liburing provides\n"
+"helpers to setup and teardown io_uring instances, and also a simplified\n"
+"interface for applications that don't need (or want) to deal with the full\n"
+"kernel side implementation."
+msgstr ""
+
 #: gnu/packages/lout.scm:100
 msgid "Document layout system"
 msgstr ""
@@ -12714,11 +14639,28 @@ msgid ""
 "beginning."
 msgstr ""
 
-#: gnu/packages/messaging.scm:135
+#: gnu/packages/messaging.scm:168
+msgid "Console Jabber/XMPP Client"
+msgstr ""
+
+#: gnu/packages/messaging.scm:169
+msgid ""
+"Poezio is a free console XMPP client (the protocol on which\n"
+"the Jabber IM network is built).\n"
+"Its goal is to let you connect very easily (no account creation needed) to the\n"
+"network and join various chatrooms, immediately.  It tries to look like the\n"
+"most famous IRC clients (weechat, irssi, etc).  Many commands are identical and\n"
+"you won't be lost if you already know these clients.  Configuration can be\n"
+"made in a configuration file or directly from the client.\n"
+"You'll find the light, fast, geeky and anonymous spirit of IRC while using a\n"
+"powerful, standard and open protocol."
+msgstr ""
+
+#: gnu/packages/messaging.scm:198
 msgid "Off-the-Record (OTR) Messaging Library and Toolkit"
 msgstr ""
 
-#: gnu/packages/messaging.scm:137
+#: gnu/packages/messaging.scm:200
 msgid ""
 "OTR allows you to have private conversations over instant messaging by\n"
 "providing: (1) Encryption: No one else can read your instant messages.  (2)\n"
@@ -12731,11 +14673,11 @@ msgid ""
 "keys, no previous conversation is compromised."
 msgstr ""
 
-#: gnu/packages/messaging.scm:171
+#: gnu/packages/messaging.scm:234
 msgid "Implementation of a ratcheting forward secrecy protocol"
 msgstr "Implémentation d'un protocole de confidentialité persistante ajustable"
 
-#: gnu/packages/messaging.scm:172
+#: gnu/packages/messaging.scm:235
 msgid ""
 "libsignal-protocol-c is an implementation of a ratcheting\n"
 "forward secrecy protocol that works in synchronous and asynchronous\n"
@@ -12743,11 +14685,11 @@ msgid ""
 "end-to-end encryption."
 msgstr ""
 
-#: gnu/packages/messaging.scm:216
+#: gnu/packages/messaging.scm:279
 msgid "IRC to instant messaging gateway"
 msgstr ""
 
-#: gnu/packages/messaging.scm:217
+#: gnu/packages/messaging.scm:280
 msgid ""
 "BitlBee brings IM (instant messaging) to IRC clients, for\n"
 "people who have an IRC client running all the time and don't want to run an\n"
@@ -12757,21 +14699,36 @@ msgid ""
 "identi.ca and status.net)."
 msgstr ""
 
-#: gnu/packages/messaging.scm:263
+#: gnu/packages/messaging.scm:294
+msgid "IRC to instant messaging gateway (using Pidgin's libpurple)"
+msgstr ""
+
+#: gnu/packages/messaging.scm:349
 msgid "Discord plugin for Bitlbee"
 msgstr ""
 
-#: gnu/packages/messaging.scm:264
+#: gnu/packages/messaging.scm:350
 msgid ""
-"Bitlbee-discord is a plugin for Bitlbee witch provides\n"
+"Bitlbee-discord is a plugin for Bitlbee which provides\n"
 "access to servers running the Discord protocol."
 msgstr ""
 
-#: gnu/packages/messaging.scm:311
+#: gnu/packages/messaging.scm:397
+msgid "Purple plug-in to access Mattermost instant messaging"
+msgstr ""
+
+#: gnu/packages/messaging.scm:399
+msgid ""
+"Purple-Mattermost is a plug-in for Purple, the instant messaging library\n"
+"used by Pidgin and Bitlbee, among others, to access\n"
+"@uref{https://mattermost.com/, Mattermost} servers."
+msgstr ""
+
+#: gnu/packages/messaging.scm:446
 msgid "Graphical IRC client"
 msgstr "Client IRC graphique"
 
-#: gnu/packages/messaging.scm:313
+#: gnu/packages/messaging.scm:448
 msgid ""
 "HexChat lets you connect to multiple IRC networks at once.  The main\n"
 "window shows the list of currently connected networks and their channels, the\n"
@@ -12780,11 +14737,11 @@ msgid ""
 "dictionaries.  HexChat can be extended with multiple addons."
 msgstr ""
 
-#: gnu/packages/messaging.scm:378
+#: gnu/packages/messaging.scm:514
 msgid "Lightweight Internet Relay Chat server for small networks"
 msgstr ""
 
-#: gnu/packages/messaging.scm:380
+#: gnu/packages/messaging.scm:516
 msgid ""
 "ngIRCd is a lightweight @dfn{Internet Relay Chat} (IRC) server for small\n"
 "or private networks.  It is easy to configure, can cope with dynamic IP\n"
@@ -12792,21 +14749,21 @@ msgid ""
 "authentication."
 msgstr ""
 
-#: gnu/packages/messaging.scm:450
+#: gnu/packages/messaging.scm:600
 msgid "Graphical multi-protocol instant messaging client"
 msgstr ""
 
-#: gnu/packages/messaging.scm:452
+#: gnu/packages/messaging.scm:602
 msgid ""
 "Pidgin is a modular instant messaging client that supports many popular\n"
 "chat protocols."
 msgstr ""
 
-#: gnu/packages/messaging.scm:490
+#: gnu/packages/messaging.scm:640
 msgid "Off-the-Record Messaging plugin for Pidgin"
 msgstr ""
 
-#: gnu/packages/messaging.scm:492
+#: gnu/packages/messaging.scm:642
 msgid ""
 "Pidgin-OTR is a plugin that adds support for OTR to the Pidgin instant\n"
 "messaging client.  OTR (Off-the-Record) Messaging allows you to have private\n"
@@ -12821,11 +14778,11 @@ msgid ""
 "compromised."
 msgstr ""
 
-#: gnu/packages/messaging.scm:546
+#: gnu/packages/messaging.scm:696
 msgid "IRC network bouncer"
 msgstr ""
 
-#: gnu/packages/messaging.scm:547
+#: gnu/packages/messaging.scm:697
 msgid ""
 "ZNC is an @dfn{IRC network bouncer} or @dfn{BNC}.  It can\n"
 "detach the client from the actual IRC server, and also from selected channels.\n"
@@ -12833,56 +14790,64 @@ msgid ""
 "simultaneously and therefore appear under the same nickname on IRC."
 msgstr ""
 
-#: gnu/packages/messaging.scm:568
-msgid "Non-blocking Jabber/XMPP module"
+#: gnu/packages/messaging.scm:724
+msgid "Non-blocking XMPP Module"
 msgstr ""
 
-#: gnu/packages/messaging.scm:570
+#: gnu/packages/messaging.scm:725
 msgid ""
-"The goal of this python library is to provide a way for Python\n"
-"applications to use Jabber/XMPP networks in a non-blocking way.  This library\n"
-"was initially a fork of xmpppy, but uses non-blocking sockets."
+"Python-nbxmpp is a Python library that provides a way for\n"
+"Python applications to use the XMPP network.  This library was initially a fork\n"
+"of xmpppy."
 msgstr ""
 
-#: gnu/packages/messaging.scm:687
-msgid "Jabber (XMPP) client"
+#: gnu/packages/messaging.scm:852
+msgid "Fully-featured XMPP client"
 msgstr ""
 
-#: gnu/packages/messaging.scm:688
+#: gnu/packages/messaging.scm:853
 msgid ""
-"Gajim is a feature-rich and easy to use Jabber/XMPP client.\n"
-"Among its features are: a tabbed chat window and single window modes; support\n"
-"for group chat (with Multi-User Chat protocol), invitation, chat to group chat\n"
-"transformation; audio and video conferences; file transfer; TLS, GPG and\n"
-"end-to-end encryption support; XML console."
+"Gajim aims to be an easy to use and fully-featured XMPP chat\n"
+"client.  It is extensible via plugins, supports end-to-end encryption (OMEMO\n"
+"and OpenPGP) and available in 29 languages."
 msgstr ""
 
-#: gnu/packages/messaging.scm:723
+#: gnu/packages/messaging.scm:889
 msgid "Gajim OMEMO plugin"
 msgstr ""
 
-#: gnu/packages/messaging.scm:725
+#: gnu/packages/messaging.scm:890
+msgid ""
+"Gajim-OMEMO is a plugin that adds support for the OMEMO\n"
+"Encryption to Gajim.  OMEMO is an XMPP Extension Protocol (XEP) for secure\n"
+"multi-client end-to-end encryption."
+msgstr ""
+
+#: gnu/packages/messaging.scm:925
+msgid "Gajim OpenPGP plugin"
+msgstr ""
+
+#: gnu/packages/messaging.scm:926
 msgid ""
-"This package provides the Gajim OMEMO plugin.  OMEMO is an XMPP\n"
-"Extension Protocol (XEP) for secure multi-client end-to-end encryption based\n"
-"on Axolotl and PEP."
+"Gajim-OpenPGP is a plugin that adds support for the OpenPGP\n"
+"Encryption to Gajim."
 msgstr ""
 
-#: gnu/packages/messaging.scm:789
+#: gnu/packages/messaging.scm:975
 msgid "Graphical Jabber (XMPP) client"
 msgstr ""
 
-#: gnu/packages/messaging.scm:790
+#: gnu/packages/messaging.scm:976
 msgid ""
 "Dino is a Jabber (XMPP) client which aims to fit well into\n"
 "a graphical desktop environment like GNOME."
 msgstr ""
 
-#: gnu/packages/messaging.scm:877
+#: gnu/packages/messaging.scm:1063
 msgid "Jabber (XMPP) server"
 msgstr ""
 
-#: gnu/packages/messaging.scm:878
+#: gnu/packages/messaging.scm:1064
 msgid ""
 "Prosody is a modern XMPP communication server.  It aims to\n"
 "be easy to set up and configure, and efficient with system resources.\n"
@@ -12891,77 +14856,77 @@ msgid ""
 "protocols."
 msgstr ""
 
-#: gnu/packages/messaging.scm:912
+#: gnu/packages/messaging.scm:1098
 msgid "XEP-0363: Allow clients to upload files over HTTP"
 msgstr ""
 
-#: gnu/packages/messaging.scm:913
+#: gnu/packages/messaging.scm:1099
 msgid ""
 "This module implements XEP-0363: it allows clients to\n"
 "upload files over HTTP."
 msgstr ""
 
-#: gnu/packages/messaging.scm:944
+#: gnu/packages/messaging.scm:1130
 msgid "XEP-0198: Reliability and fast reconnects for XMPP"
 msgstr ""
 
-#: gnu/packages/messaging.scm:945
+#: gnu/packages/messaging.scm:1131
 msgid ""
 "This module implements XEP-0198: when supported by both\n"
 "the client and server, it can allow clients to resume a disconnected session,\n"
 "and prevent message loss."
 msgstr ""
 
-#: gnu/packages/messaging.scm:978 gnu/packages/messaging.scm:1012
+#: gnu/packages/messaging.scm:1164 gnu/packages/messaging.scm:1198
 msgid "Library for the Tox encrypted messenger protocol"
 msgstr ""
 
-#: gnu/packages/messaging.scm:980
+#: gnu/packages/messaging.scm:1166
 msgid "C library implementation of the Tox encrypted messenger protocol."
 msgstr ""
 
-#: gnu/packages/messaging.scm:1014
+#: gnu/packages/messaging.scm:1200
 msgid ""
 "Official fork of the C library implementation of the Tox encrypted\n"
 "messenger protocol."
 msgstr ""
 
-#: gnu/packages/messaging.scm:1069
+#: gnu/packages/messaging.scm:1255
 msgid "Lightweight Tox client"
 msgstr "Client Tox léger"
 
-#: gnu/packages/messaging.scm:1071
+#: gnu/packages/messaging.scm:1257
 msgid ""
 "Utox is a lightweight Tox client.  Tox is a distributed and secure\n"
 "instant messenger with audio and video chat capabilities."
 msgstr ""
 
-#: gnu/packages/messaging.scm:1128
+#: gnu/packages/messaging.scm:1322
 msgid "Tox chat client using Qt"
 msgstr ""
 
-#: gnu/packages/messaging.scm:1129
+#: gnu/packages/messaging.scm:1323
 msgid ""
 "qTox is a Tox client that follows the Tox design\n"
 "guidelines.  It provides an easy to use application that allows you to\n"
 "connect with friends and family without anyone else listening in."
 msgstr ""
 
-#: gnu/packages/messaging.scm:1222
+#: gnu/packages/messaging.scm:1416
 msgid ""
 "Distributed and trustless peer-to-peer communications protocol\n"
 "for sending encrypted messages to one person or many subscribers."
 msgstr ""
 
-#: gnu/packages/messaging.scm:1224
+#: gnu/packages/messaging.scm:1418
 msgid "Distributed peer-to-peer communication"
 msgstr ""
 
-#: gnu/packages/messaging.scm:1243
+#: gnu/packages/messaging.scm:1437
 msgid "Multi-user chat program"
 msgstr ""
 
-#: gnu/packages/messaging.scm:1244
+#: gnu/packages/messaging.scm:1438
 msgid ""
 "Ytalk is a replacement for the BSD talk program.  Its main\n"
 "advantage is the ability to communicate with any arbitrary number of users at\n"
@@ -12969,11 +14934,11 @@ msgid ""
 "with several different talk daemons at the same time."
 msgstr ""
 
-#: gnu/packages/messaging.scm:1268
+#: gnu/packages/messaging.scm:1462
 msgid "Portable high-level Jabber/XMPP library for C++"
 msgstr ""
 
-#: gnu/packages/messaging.scm:1270
+#: gnu/packages/messaging.scm:1464
 msgid ""
 "gloox is a full-featured Jabber/XMPP client library,\n"
 "written in ANSI C++.  It makes writing spec-compliant clients easy\n"
@@ -12981,7 +14946,7 @@ msgid ""
 "into existing applications."
 msgstr ""
 
-#: gnu/packages/messaging.scm:1341
+#: gnu/packages/messaging.scm:1535
 msgid ""
 "@code{Net::PSYC} with support for TCP, UDP, Event.pm, @code{IO::Select} and\n"
 "Gtk2 event loops.  This package includes 12 applications and additional scripts:\n"
@@ -12989,26 +14954,26 @@ msgid ""
 "for @uref{https://torproject.org,tor} router) and many more."
 msgstr ""
 
-#: gnu/packages/messaging.scm:1345
+#: gnu/packages/messaging.scm:1539
 msgid "Perl implementation of PSYC protocol"
 msgstr ""
 
-#: gnu/packages/messaging.scm:1384
+#: gnu/packages/messaging.scm:1578
 msgid ""
 "@code{libpsyc} is a PSYC library in C which implements\n"
 "core aspects of PSYC, useful for all kinds of clients and servers\n"
 "including psyced."
 msgstr ""
 
-#: gnu/packages/messaging.scm:1387
+#: gnu/packages/messaging.scm:1581
 msgid "PSYC library in C"
 msgstr ""
 
-#: gnu/packages/messaging.scm:1454
+#: gnu/packages/messaging.scm:1648
 msgid "psycLPC is a multi-user network server programming language"
 msgstr ""
 
-#: gnu/packages/messaging.scm:1456
+#: gnu/packages/messaging.scm:1650
 msgid ""
 "LPC is a bytecode language, invented to specifically implement\n"
 "multi user virtual environments on the internet.  This technology is used for\n"
@@ -13017,7 +14982,7 @@ msgid ""
 "many bug fixes."
 msgstr ""
 
-#: gnu/packages/messaging.scm:1487
+#: gnu/packages/messaging.scm:1681
 msgid ""
 "Loudmouth is a lightweight and easy-to-use C library for programming\n"
 "with the XMPP (formerly known as Jabber) protocol.  It is designed to be\n"
@@ -13025,11 +14990,11 @@ msgid ""
 "protocol allows."
 msgstr ""
 
-#: gnu/packages/messaging.scm:1491
+#: gnu/packages/messaging.scm:1685
 msgid "Asynchronous XMPP library"
 msgstr ""
 
-#: gnu/packages/messaging.scm:1523
+#: gnu/packages/messaging.scm:1716
 msgid ""
 "Mcabber is a small XMPP (Jabber) console client, which includes features\n"
 "such as SASL and TLS support, @dfn{Multi-User Chat} (MUC) support, logging,\n"
@@ -13037,15 +15002,15 @@ msgid ""
 "support, and more."
 msgstr ""
 
-#: gnu/packages/messaging.scm:1527
+#: gnu/packages/messaging.scm:1720
 msgid "Small XMPP console client"
 msgstr ""
 
-#: gnu/packages/messaging.scm:1570
+#: gnu/packages/messaging.scm:1763
 msgid "Extensible console-based Jabber client"
 msgstr ""
 
-#: gnu/packages/messaging.scm:1572
+#: gnu/packages/messaging.scm:1765
 msgid ""
 "GNU Freetalk is a command-line Jabber/XMPP chat client.  It notably uses\n"
 "the Readline library to handle input, so it features convenient navigation of\n"
@@ -13053,39 +15018,39 @@ msgid ""
 "is also scriptable and extensible via Guile."
 msgstr ""
 
-#: gnu/packages/messaging.scm:1601 gnu/packages/messaging.scm:1631
+#: gnu/packages/messaging.scm:1794 gnu/packages/messaging.scm:1824
 msgid "C library for writing XMPP clients"
 msgstr "Bibliothèque C pour écrire des clients XMPP"
 
-#: gnu/packages/messaging.scm:1602
+#: gnu/packages/messaging.scm:1795
 msgid ""
 "Libmesode is a fork of libstrophe for use with Profanity\n"
 "XMPP Client.  In particular, libmesode provides extra TLS functionality such as\n"
 "manual SSL certificate verification."
 msgstr ""
 
-#: gnu/packages/messaging.scm:1632
+#: gnu/packages/messaging.scm:1825
 msgid ""
 "Libstrophe is a minimal XMPP library written in C.  It has\n"
 "almost no external dependencies, only an XML parsing library (expat or libxml\n"
 "are both supported)."
 msgstr ""
 
-#: gnu/packages/messaging.scm:1679
+#: gnu/packages/messaging.scm:1879
 msgid "Console-based XMPP client"
 msgstr ""
 
-#: gnu/packages/messaging.scm:1680
+#: gnu/packages/messaging.scm:1880
 msgid ""
 "Profanity is a console based XMPP client written in C\n"
 "using ncurses and libmesode, inspired by Irssi."
 msgstr ""
 
-#: gnu/packages/messaging.scm:1709
+#: gnu/packages/messaging.scm:1909
 msgid "Library implementing the client IRC protocol"
 msgstr ""
 
-#: gnu/packages/messaging.scm:1710
+#: gnu/packages/messaging.scm:1910
 msgid ""
 "Libircclient is a library which implements the client IRC\n"
 "protocol.  It is designed to be small, fast, portable and compatible with the\n"
@@ -13093,22 +15058,22 @@ msgid ""
 "building the IRC clients and bots."
 msgstr ""
 
-#: gnu/packages/messaging.scm:1761
+#: gnu/packages/messaging.scm:1967
 msgid "Tox chat client using ncurses"
 msgstr ""
 
-#: gnu/packages/messaging.scm:1762
+#: gnu/packages/messaging.scm:1968
 msgid ""
 "Toxic is a console-based instant messaging client, using\n"
 "c-toxcore and ncurses.  It provides audio calls, sound and desktop\n"
 "notifications, and Python scripting support."
 msgstr ""
 
-#: gnu/packages/messaging.scm:1788
+#: gnu/packages/messaging.scm:1994
 msgid "Qt5 client library for the Matrix instant messaging protocol"
 msgstr ""
 
-#: gnu/packages/messaging.scm:1789
+#: gnu/packages/messaging.scm:1995
 msgid ""
 "libqmatrixclient is a Qt5 library to write clients for the\n"
 "Matrix instant messaging protocol.  Quaternion is the reference client\n"
@@ -13116,21 +15081,21 @@ msgid ""
 "QMatrixClient project."
 msgstr ""
 
-#: gnu/packages/messaging.scm:1840
+#: gnu/packages/messaging.scm:2046
 msgid "Client API library for the Matrix protocol"
 msgstr ""
 
-#: gnu/packages/messaging.scm:1841
+#: gnu/packages/messaging.scm:2047
 msgid ""
 "@code{mtxclient} is a C++ library that implements client API\n"
 "for the Matrix protocol.  It is built on to of @code{Boost.Asio}."
 msgstr ""
 
-#: gnu/packages/messaging.scm:1896
+#: gnu/packages/messaging.scm:2105
 msgid "Desktop client for Matrix using Qt and C++14"
 msgstr ""
 
-#: gnu/packages/messaging.scm:1897
+#: gnu/packages/messaging.scm:2106
 msgid ""
 "@code{Nheko} want to provide a native desktop app for the\n"
 "Matrix protocol that feels more like a mainstream chat app and less like an IRC\n"
@@ -13154,11 +15119,11 @@ msgid ""
 "@end itemize"
 msgstr ""
 
-#: gnu/packages/messaging.scm:1945
+#: gnu/packages/messaging.scm:2155
 msgid "Graphical client for the Matrix instant messaging protocol"
 msgstr ""
 
-#: gnu/packages/messaging.scm:1946
+#: gnu/packages/messaging.scm:2156
 msgid ""
 "Quaternion is a Qt5 desktop client for the Matrix instant\n"
 "messaging protocol.  It uses libqmatrixclient and is its reference client\n"
@@ -13166,11 +15131,11 @@ msgid ""
 "QMatrixClient project."
 msgstr ""
 
-#: gnu/packages/messaging.scm:1988
+#: gnu/packages/messaging.scm:2198
 msgid "Instant messaging client for Google Hangouts"
 msgstr ""
 
-#: gnu/packages/messaging.scm:1990
+#: gnu/packages/messaging.scm:2200
 msgid ""
 "Hangups is an instant messaging client for Google Hangouts.  It includes\n"
 "both a Python library and a reference client with a text-based user interface.\n"
@@ -13180,22 +15145,22 @@ msgid ""
 "messaging that aren’t available to clients that connect over XMPP."
 msgstr ""
 
-#: gnu/packages/messaging.scm:2070
+#: gnu/packages/messaging.scm:2280
 msgid "Telegram messaging support for Pidgin"
 msgstr ""
 
-#: gnu/packages/messaging.scm:2072
+#: gnu/packages/messaging.scm:2282
 msgid ""
 "Telegram-purple is a plugin for Libpurple, the communication library\n"
 "used by the Pidgin instant messaging client, that adds support for the\n"
 "Telegram messenger."
 msgstr ""
 
-#: gnu/packages/messaging.scm:2119
+#: gnu/packages/messaging.scm:2329
 msgid "Cross-platform library for building Telegram clients"
 msgstr "Bibliothèque multi-plateforme pour écrire des clients Telegram"
 
-#: gnu/packages/messaging.scm:2120
+#: gnu/packages/messaging.scm:2330
 msgid ""
 "Tdlib is a cross-platform library for creating custom\n"
 "Telegram clients following the official Telegram API.  It can be easily used\n"
@@ -13203,21 +15168,56 @@ msgid ""
 "support for high performance Telegram Bot creation."
 msgstr ""
 
-#: gnu/packages/mpd.scm:86
+#: gnu/packages/messaging.scm:2368
+msgid "Libpurple plugin for SMS via ModemManager"
+msgstr ""
+
+#: gnu/packages/messaging.scm:2369
+msgid "Plugin for libpurple to allow sending SMS using ModemManager."
+msgstr ""
+
+#: gnu/packages/messaging.scm:2412
+msgid "Mobile client for XMPP and SMS messaging"
+msgstr ""
+
+#: gnu/packages/messaging.scm:2413
+msgid ""
+"Chatty is a chat program for XMPP and SMS.  It works on mobile\n"
+"as well as on desktop platforms.  It's based on libpurple and ModemManager."
+msgstr ""
+
+#: gnu/packages/messaging.scm:2433
+msgid "Message broker"
+msgstr ""
+
+#: gnu/packages/messaging.scm:2434
+msgid ""
+"This package provides Eclipse Mosquitto, a message broker\n"
+"that implements the MQTT protocol versions 5.0, 3.1.1 and 3.1.  Mosquitto\n"
+"is lightweight and is suitable for use on all devices from low power single\n"
+"board computers to full servers.\n"
+"\n"
+"The MQTT protocol provides a lightweight method of carrying out messaging\n"
+"using a publish/subscribe model. This makes it suitable for Internet of\n"
+"Things messaging such as with low power sensors or mobile devices such\n"
+"as phones, embedded computers or microcontrollers."
+msgstr ""
+
+#: gnu/packages/mpd.scm:98
 msgid "Music Player Daemon client library"
 msgstr ""
 
-#: gnu/packages/mpd.scm:87
+#: gnu/packages/mpd.scm:99
 msgid ""
 "A stable, documented, asynchronous API library for\n"
 "interfacing MPD in the C, C++ & Objective C languages."
 msgstr ""
 
-#: gnu/packages/mpd.scm:151
+#: gnu/packages/mpd.scm:163
 msgid "Music Player Daemon"
 msgstr ""
 
-#: gnu/packages/mpd.scm:152
+#: gnu/packages/mpd.scm:164
 msgid ""
 "Music Player Daemon (MPD) is a flexible, powerful,\n"
 "server-side application for playing music.  Through plugins and libraries it\n"
@@ -13225,31 +15225,31 @@ msgid ""
 "protocol."
 msgstr ""
 
-#: gnu/packages/mpd.scm:177
+#: gnu/packages/mpd.scm:189
 msgid "Music Player Daemon client"
 msgstr ""
 
-#: gnu/packages/mpd.scm:178
+#: gnu/packages/mpd.scm:190
 msgid ""
 "MPC is a minimalist command line interface to MPD, the music\n"
 "player daemon."
 msgstr ""
 
-#: gnu/packages/mpd.scm:210
+#: gnu/packages/mpd.scm:222
 msgid "Curses Music Player Daemon client"
 msgstr ""
 
-#: gnu/packages/mpd.scm:211
+#: gnu/packages/mpd.scm:223
 msgid ""
 "ncmpc is a fully featured MPD client, which runs in a\n"
 "terminal using ncurses."
 msgstr ""
 
-#: gnu/packages/mpd.scm:241
+#: gnu/packages/mpd.scm:253
 msgid "Featureful ncurses based MPD client inspired by ncmpc"
 msgstr ""
 
-#: gnu/packages/mpd.scm:242
+#: gnu/packages/mpd.scm:254
 msgid ""
 "Ncmpcpp is an mpd client with a UI very similar to ncmpc,\n"
 "but it provides new useful features such as support for regular expressions\n"
@@ -13257,42 +15257,42 @@ msgid ""
 "sort playlists, and a local file system browser."
 msgstr ""
 
-#: gnu/packages/mpd.scm:265
+#: gnu/packages/mpd.scm:278
 msgid "MPD client for track scrobbling"
 msgstr ""
 
-#: gnu/packages/mpd.scm:266
+#: gnu/packages/mpd.scm:279
 msgid ""
 "mpdscribble is a Music Player Daemon client which submits\n"
 "information about tracks being played to a scrobbler, such as Libre.FM."
 msgstr ""
 
-#: gnu/packages/mpd.scm:289
+#: gnu/packages/mpd.scm:302
 msgid "Python MPD client library"
 msgstr ""
 
-#: gnu/packages/mpd.scm:290
+#: gnu/packages/mpd.scm:303
 msgid ""
 "Python-mpd2 is a Python library which provides a client\n"
 "interface for the Music Player Daemon."
 msgstr ""
 
-#: gnu/packages/mpd.scm:339
+#: gnu/packages/mpd.scm:352
 msgid "Elegant client for the Music Player Daemon"
 msgstr ""
 
-#: gnu/packages/mpd.scm:340
+#: gnu/packages/mpd.scm:353
 msgid ""
 "Sonata is an elegant graphical client for the Music Player\n"
 "Daemon (MPD).  It supports playlists, multiple profiles (connecting to different\n"
 "MPD servers, search and multimedia key support."
 msgstr ""
 
-#: gnu/packages/mpd.scm:363
+#: gnu/packages/mpd.scm:376
 msgid "Automatic library-wide shuffle for mpd"
 msgstr ""
 
-#: gnu/packages/mpd.scm:364
+#: gnu/packages/mpd.scm:377
 msgid ""
 "ashuffle is an application for automatically shuffling your\n"
 "MPD library in a similar way to many other music players' 'shuffle library'\n"
@@ -13300,6 +15300,29 @@ msgid ""
 "other MPD frontends."
 msgstr ""
 
+#: gnu/packages/mpd.scm:420
+msgid "MPRIS V2.1 support for MPD"
+msgstr ""
+
+#: gnu/packages/mpd.scm:421
+msgid ""
+"Client for the Music Player Daemon providing MPRIS 2\n"
+"support"
+msgstr ""
+
+#: gnu/packages/mpd.scm:455
+msgid "Graphical MPD Client"
+msgstr "Client MPD graphique"
+
+#: gnu/packages/mpd.scm:456
+msgid ""
+"Cantata is a graphical client for the Music Player Daemon\n"
+"(MPD), using the Qt5 toolkit.  Its user interface is highly customizable,\n"
+"supporting multiple collections, ratings, and dynamic playlists.  A local cache\n"
+"of the music library will be created to provide a hierarchy of albums and\n"
+"artists along with albumart."
+msgstr ""
+
 #: gnu/packages/netpbm.scm:189
 msgid "Toolkit for manipulation of images"
 msgstr "Outils de manipulation d'images"
@@ -13324,11 +15347,112 @@ msgid ""
 "themselves."
 msgstr ""
 
-#: gnu/packages/networking.scm:143
+#: gnu/packages/networking.scm:201
+msgid "Camera stack and framework"
+msgstr ""
+
+#: gnu/packages/networking.scm:202
+msgid ""
+"LibCamera is a complex camera support library for GNU+Linux,\n"
+"Android, and ChromeOS."
+msgstr ""
+
+#: gnu/packages/networking.scm:257
+msgid "GLib ICE implementation"
+msgstr "Implémentation de GLib ICE"
+
+#: gnu/packages/networking.scm:258
+msgid ""
+"LibNice is a library that implements the Interactive\n"
+"Connectivity Establishment (ICE) standard (RFC 5245 & RFC 8445).  It provides a\n"
+"GLib-based library, libnice, as well as GStreamer elements to use it."
+msgstr ""
+
+#: gnu/packages/networking.scm:304
+msgid "Tools and library for handling RTMP streams"
+msgstr "Outils et bibliothèque pour gérer les flux RTMP"
+
+#: gnu/packages/networking.scm:305
+msgid ""
+"RTMPdump is a toolkit for RTMP streams.  All forms of RTMP are\n"
+"supported, including rtmp://, rtmpt://, rtmpe://, rtmpte://, and rtmps://."
+msgstr ""
+
+#: gnu/packages/networking.scm:344
+msgid "Secure Reliable Transport"
+msgstr ""
+
+#: gnu/packages/networking.scm:345
+msgid ""
+"SRT is a transport technology that optimizes streaming\n"
+"performance across unpredictable networks, such as the Internet."
+msgstr ""
+
+#: gnu/packages/networking.scm:390
+msgid "Linux SCTP helper library"
+msgstr ""
+
+#: gnu/packages/networking.scm:391
+msgid ""
+"Lksctp-tools project provides a user space library for SCTP\n"
+"(libsctp) including C language header files (netinet/sctp.h) for accessing SCTP\n"
+"specific application programming interfaces not provided by the standard\n"
+"sockets, and also some helper utilities around SCTP."
+msgstr ""
+
+#: gnu/packages/networking.scm:418
+msgid "Small port-knock daemon"
+msgstr ""
+
+#: gnu/packages/networking.scm:419
+msgid ""
+"@command{knockd} is a port-knock daemon.  It listens to all traffic on\n"
+"an ethernet or PPP interface, looking for special \"knock\" sequences of @dfn{port-hits}\n"
+"(UDP/TCP packets sent to a server port).  This port need not be open, since knockd listens\n"
+"at the link-layer level."
+msgstr ""
+
+#: gnu/packages/networking.scm:458
+msgid "Lightweight messaging library"
+msgstr "Bibliothèque de messagerie légère"
+
+#: gnu/packages/networking.scm:459
+msgid ""
+"NNG project is a rewrite of the scalability protocols library\n"
+"known as libnanomsg, and adds significant new capabilities, while retaining\n"
+"compatibility with the original.  It is a lightweight, broker-less library,\n"
+"offering a simple API to solve common recurring messaging problems, such as\n"
+"publish/subscribe, RPC-style request/reply, or service discovery."
+msgstr ""
+
+#: gnu/packages/networking.scm:501
+msgid "Scalable socket library"
+msgstr "Bibliothèque de socket rapide"
+
+#: gnu/packages/networking.scm:502
+msgid ""
+"Nanomsg is a socket library that provides several common\n"
+"communication patterns.  It aims to make the networking layer fast, scalable,\n"
+"and easy to use.  Implemented in C, it works on a wide range of operating\n"
+"systems with no further dependencies."
+msgstr ""
+
+#: gnu/packages/networking.scm:616
+msgid "GTK+ Bluetooth manager"
+msgstr ""
+
+#: gnu/packages/networking.scm:617
+msgid ""
+"Blueman is a Bluetooth management utility using the Bluez\n"
+"D-Bus backend.  It is designed to be easy to use for most common Bluetooth\n"
+"tasks."
+msgstr ""
+
+#: gnu/packages/networking.scm:641
 msgid "Viewing and manipulating MAC addresses of network interfaces"
 msgstr ""
 
-#: gnu/packages/networking.scm:144
+#: gnu/packages/networking.scm:642
 msgid ""
 "GNU MAC Changer is a utility for viewing and changing MAC\n"
 "addresses of networking devices.  New addresses may be set explicitly or\n"
@@ -13336,22 +15460,54 @@ msgid ""
 "or, more generally, MAC addresses of the same category of hardware."
 msgstr ""
 
-#: gnu/packages/networking.scm:173
+#: gnu/packages/networking.scm:671
 msgid "Teredo IPv6 tunneling software"
 msgstr ""
 
-#: gnu/packages/networking.scm:175
+#: gnu/packages/networking.scm:673
 msgid ""
 "Miredo is an implementation (client, relay, server) of the Teredo\n"
 "specification, which provides IPv6 Internet connectivity to IPv6 enabled hosts\n"
 "residing in IPv4-only networks, even when they are behind a NAT device."
 msgstr ""
 
-#: gnu/packages/networking.scm:197
+#: gnu/packages/networking.scm:691
+msgid "IPv6 diagnostic tools"
+msgstr ""
+
+#: gnu/packages/networking.scm:693
+msgid ""
+"NDisc6 is a collection of tools for IPv6 networking diagnostics.\n"
+"It includes the following programs:\n"
+"\n"
+"@itemize\n"
+"@item @command{ndisc6}: ICMPv6 Neighbor Discovery tool.\n"
+"@item @command{rdisc6}: ICMPv6 Router Discovery tool.\n"
+"@item @command{tcptraceroute6}: IPv6 traceroute over TCP.\n"
+"@item @command{traceroute6}: IPv6 traceroute over UDP.\n"
+"@item @command{rdnssd}: Recursive DNS Servers discovery daemon.\n"
+"@end itemize"
+msgstr ""
+
+#: gnu/packages/networking.scm:744
+msgid "Proxy ARP requests to other interfaces"
+msgstr ""
+
+#: gnu/packages/networking.scm:746
+msgid ""
+"@command{parprouted} is a daemon for transparent IP (Layer@tie{}3)\n"
+"proxy ARP bridging.  Unlike standard bridging, proxy ARP bridging can bridge\n"
+"Ethernet networks behind wireless nodes.  Normal layer@tie{}2 bridging does\n"
+"not work between wireless nodes because wireless does not know about MAC\n"
+"addresses used in the wired Ethernet networks.  This daemon can also be\n"
+"useful for making transparent firewalls."
+msgstr ""
+
+#: gnu/packages/networking.scm:771
 msgid "Open bidirectional communication channels from the command line"
 msgstr ""
 
-#: gnu/packages/networking.scm:199
+#: gnu/packages/networking.scm:773
 msgid ""
 "socat is a relay for bidirectional data transfer between two independent\n"
 "data channels---files, pipes, devices, sockets, etc.  It can create\n"
@@ -13364,22 +15520,22 @@ msgid ""
 "or server shell scripts with network connections."
 msgstr ""
 
-#: gnu/packages/networking.scm:281
+#: gnu/packages/networking.scm:855
 msgid "Monitor and filter incoming requests for network services"
 msgstr ""
 
-#: gnu/packages/networking.scm:282
+#: gnu/packages/networking.scm:856
 msgid ""
 "With this package you can monitor and filter incoming requests for\n"
 "network services.  It includes a library which may be used by daemons to\n"
 "transparently check connection attempts against an access control list."
 msgstr ""
 
-#: gnu/packages/networking.scm:302
+#: gnu/packages/networking.scm:875
 msgid "Library for message-based applications"
 msgstr ""
 
-#: gnu/packages/networking.scm:304
+#: gnu/packages/networking.scm:877
 msgid ""
 "The 0MQ lightweight messaging kernel is a library which extends the\n"
 "standard socket interfaces with features traditionally provided by specialized\n"
@@ -13389,63 +15545,74 @@ msgid ""
 "more."
 msgstr ""
 
-#: gnu/packages/networking.scm:340
+#: gnu/packages/networking.scm:917
 msgid "High-level C bindings for ØMQ"
 msgstr "Liaisons de haut-niveau pour ØMQ"
 
-#: gnu/packages/networking.scm:342
+#: gnu/packages/networking.scm:919
 msgid ""
 "czmq provides bindings for the ØMQ core API that hides the differences\n"
 "between different versions of ØMQ."
 msgstr ""
 
-#: gnu/packages/networking.scm:371
+#: gnu/packages/networking.scm:948
 msgid "C++ bindings for the ØMQ messaging library"
 msgstr "Liaisons C++ pour la bibliothèque de messagerie ØMQ"
 
-#: gnu/packages/networking.scm:373
+#: gnu/packages/networking.scm:950
 msgid ""
 "This package provides header-only C++ bindings for ØMQ.  The header\n"
 "files contain direct mappings of the abstractions provided by the ØMQ C API."
 msgstr ""
 
-#: gnu/packages/networking.scm:408
+#: gnu/packages/networking.scm:982
+msgid "C library implementing NAT-PMP"
+msgstr "Bibliothèque C implémentant NAT-PMP"
+
+#: gnu/packages/networking.scm:984
+msgid ""
+"@code{libnatpmp} is a portable and asynchronous implementation of\n"
+"the Network Address Translation - Port Mapping Protocol (NAT-PMP)\n"
+"written in the C programming language."
+msgstr ""
+
+#: gnu/packages/networking.scm:1020
 msgid "Apache Kafka C/C++ client library"
 msgstr ""
 
-#: gnu/packages/networking.scm:410
+#: gnu/packages/networking.scm:1022
 msgid ""
 "librdkafka is a C library implementation of the Apache Kafka protocol,\n"
 "containing both Producer and Consumer support."
 msgstr ""
 
-#: gnu/packages/networking.scm:427
+#: gnu/packages/networking.scm:1039
 msgid "Library for Neighbor Discovery Protocol"
 msgstr ""
 
-#: gnu/packages/networking.scm:429
+#: gnu/packages/networking.scm:1041
 msgid ""
 "libndp contains a library which provides a wrapper for IPv6 Neighbor\n"
 "Discovery Protocol.  It also provides a tool named ndptool for sending and\n"
 "receiving NDP messages."
 msgstr ""
 
-#: gnu/packages/networking.scm:447
+#: gnu/packages/networking.scm:1063
 msgid "Display or change Ethernet device settings"
 msgstr ""
 
-#: gnu/packages/networking.scm:449
+#: gnu/packages/networking.scm:1065
 msgid ""
 "ethtool can be used to query and change settings such as speed,\n"
 "auto-negotiation and checksum offload on many network devices, especially\n"
 "Ethernet devices."
 msgstr ""
 
-#: gnu/packages/networking.scm:489
+#: gnu/packages/networking.scm:1105
 msgid "Text based network interface status monitor"
 msgstr ""
 
-#: gnu/packages/networking.scm:491
+#: gnu/packages/networking.scm:1107
 msgid ""
 "IFStatus is a simple, easy-to-use program for displaying commonly\n"
 "needed/wanted real-time traffic statistics of multiple network\n"
@@ -13453,11 +15620,36 @@ msgid ""
 "intended as a substitute for the PPPStatus and EthStatus projects."
 msgstr ""
 
-#: gnu/packages/networking.scm:511
+#: gnu/packages/networking.scm:1156
+msgid "Collection of network utilities"
+msgstr "Collection d'outils réseaux"
+
+#: gnu/packages/networking.scm:1158
+msgid ""
+"This package contains a variety of tools for dealing with network\n"
+"configuration, troubleshooting, or servers.  Utilities included are:\n"
+"\n"
+"@itemize @bullet\n"
+"@item @command{arping}: Ping hosts using the @dfn{Address Resolution Protocol}.\n"
+"@item @command{clockdiff}: Compute time difference between network hosts\n"
+"using ICMP TSTAMP messages.\n"
+"@item @command{ninfod}: Daemon that responds to IPv6 Node Information Queries.\n"
+"@item @command{ping}: Use ICMP ECHO messages to measure round-trip delays\n"
+"and packet loss across network paths.\n"
+"@item @command{rarpd}: Answer RARP requests from clients.\n"
+"@item @command{rdisc}: Populate network routing tables with information from\n"
+"the ICMP router discovery protocol.\n"
+"@item @command{tftpd}: Trivial file transfer protocol server.\n"
+"@item @command{tracepath}: Trace network path to an IPv4 or IPv6 address and\n"
+"discover MTU along the way.\n"
+"@end itemize"
+msgstr ""
+
+#: gnu/packages/networking.scm:1197
 msgid "Realtime console network usage monitor"
 msgstr ""
 
-#: gnu/packages/networking.scm:513
+#: gnu/packages/networking.scm:1199
 msgid ""
 "Nload is a console application which monitors network traffic and\n"
 "bandwidth usage in real time.  It visualizes the in- and outgoing traffic using\n"
@@ -13465,11 +15657,11 @@ msgid ""
 "and min/max network usage."
 msgstr ""
 
-#: gnu/packages/networking.scm:558
+#: gnu/packages/networking.scm:1244
 msgid "Tunnel IPv4 data through a DNS server"
 msgstr ""
 
-#: gnu/packages/networking.scm:559
+#: gnu/packages/networking.scm:1245
 msgid ""
 "Iodine tunnels IPv4 data through a DNS server.  This\n"
 "can be useful in different situations where internet access is firewalled, but\n"
@@ -13477,11 +15669,11 @@ msgid ""
 "and up to 1 Mbit/s downstream."
 msgstr ""
 
-#: gnu/packages/networking.scm:595
+#: gnu/packages/networking.scm:1281
 msgid "Intelligent client for the WHOIS directory service"
 msgstr ""
 
-#: gnu/packages/networking.scm:597
+#: gnu/packages/networking.scm:1283
 msgid ""
 "whois searches for an object in a @dfn{WHOIS} (RFC 3912) database.\n"
 "It is commonly used to look up the registered users or assignees of an Internet\n"
@@ -13493,68 +15685,69 @@ msgid ""
 "of the same name."
 msgstr ""
 
-#: gnu/packages/networking.scm:670
+#: gnu/packages/networking.scm:1359
 msgid "Network traffic analyzer"
 msgstr ""
 
-#: gnu/packages/networking.scm:671
+#: gnu/packages/networking.scm:1360
 msgid ""
 "Wireshark is a network protocol analyzer, or @dfn{packet\n"
 "sniffer}, that lets you capture and interactively browse the contents of\n"
 "network frames."
 msgstr ""
 
-#: gnu/packages/networking.scm:690
+#: gnu/packages/networking.scm:1379
 msgid "Send ICMP ECHO_REQUEST packets to network hosts"
 msgstr ""
 
-#: gnu/packages/networking.scm:692
+#: gnu/packages/networking.scm:1381
 msgid ""
-"fping is a ping like program which uses the Internet Control Message\n"
-"Protocol (ICMP) echo request to determine if a target host is responding.\n"
-"fping differs from ping in that you can specify any number of targets on the\n"
-"command line, or specify a file containing the lists of targets to ping.\n"
-"Instead of sending to one target until it times out or replies, fping will\n"
-"send out a ping packet and move on to the next target in a round-robin\n"
-"fashion."
+"fping is a ping-like program which uses @acronym{ICMP, Internet Control\n"
+"Message Protocol} echo requests to determine if a target host is responding.\n"
+"\n"
+"@command{fping} differs from @command{ping} in that you can specify any number\n"
+"of targets on the command line, or specify a file containing the lists of\n"
+"targets to ping.  Instead of sending to one target until it times out or\n"
+"replies, fping will send out a ping packet and move on to the next target in a\n"
+"round-robin fashion."
 msgstr ""
 
-#: gnu/packages/networking.scm:743
+#: gnu/packages/networking.scm:1433
 msgid "Command-line interface to the Gandi.net Web API"
 msgstr "Interface en ligne de commande pour l'API Web de Gandi.net"
 
-#: gnu/packages/networking.scm:745
+#: gnu/packages/networking.scm:1435
 msgid ""
 "This package provides a command-line client (@command{gandi}) to buy,\n"
 "manage, and delete Internet resources from Gandi.net such as domain names,\n"
 "virtual machines, and certificates."
 msgstr ""
 
-#: gnu/packages/networking.scm:770
+#: gnu/packages/networking.scm:1460
 msgid "Simple network namespace handling for Go"
 msgstr ""
 
-#: gnu/packages/networking.scm:771
+#: gnu/packages/networking.scm:1461
 msgid ""
 "The netns package provides a simple interface for\n"
 "handling network namespaces in Go."
 msgstr "Le paquet netns fournit une interface simple pour gérer les espaces de noms réseaux en Go."
 
-#: gnu/packages/networking.scm:795
+#: gnu/packages/networking.scm:1487
 msgid "SCTP library for the Go programming language"
 msgstr "Bibliothèque SCTP pour le langage de programmation Go"
 
-#: gnu/packages/networking.scm:796
+#: gnu/packages/networking.scm:1488
 msgid ""
 "This library provides methods for using the stream control\n"
 "transmission protocol (SCTP) in a Go application."
 msgstr ""
 
-#: gnu/packages/networking.scm:825
+#: gnu/packages/networking.scm:1517
 msgid "Web server latency and throughput monitor"
 msgstr ""
 
-#: gnu/packages/networking.scm:827
+#: gnu/packages/networking.scm:1519
 msgid ""
 "httping measures how long it takes to connect to a web server, send an\n"
 "HTTP(S) request, and receive the reply headers.  It is somewhat similar to\n"
@@ -13563,11 +15756,11 @@ msgid ""
 "application stack itself."
 msgstr ""
 
-#: gnu/packages/networking.scm:859
+#: gnu/packages/networking.scm:1551
 msgid "Visualize curl statistics"
 msgstr ""
 
-#: gnu/packages/networking.scm:861
+#: gnu/packages/networking.scm:1553
 msgid ""
 "@command{httpstat} is a tool to visualize statistics from the\n"
 "@command{curl} HTTP client.  It acts as a wrapper for @command{curl} and\n"
@@ -13575,32 +15768,32 @@ msgid ""
 "TCP connection, TLS handshake and so on) in the terminal."
 msgstr ""
 
-#: gnu/packages/networking.scm:901
+#: gnu/packages/networking.scm:1597
 msgid "Web caching proxy"
 msgstr ""
 
-#: gnu/packages/networking.scm:902
+#: gnu/packages/networking.scm:1598
 msgid ""
 "Squid is a caching proxy for the Web supporting HTTP, HTTPS,\n"
 "FTP, and more.  It reduces bandwidth and improves response times by caching and\n"
 "reusing frequently-requested web pages."
 msgstr ""
 
-#: gnu/packages/networking.scm:936
+#: gnu/packages/networking.scm:1632
 msgid "Console based live network and disk I/O bandwidth monitor"
 msgstr ""
 
-#: gnu/packages/networking.scm:937
+#: gnu/packages/networking.scm:1633
 msgid ""
 "Bandwidth Monitor NG is a small and simple console based\n"
 "live network and disk I/O bandwidth monitor."
 msgstr ""
 
-#: gnu/packages/networking.scm:996
+#: gnu/packages/networking.scm:1686
 msgid "Assess WiFi network security"
 msgstr ""
 
-#: gnu/packages/networking.scm:998
+#: gnu/packages/networking.scm:1688
 msgid ""
 "Aircrack-ng is a complete suite of tools to assess WiFi network\n"
 "security.  It focuses on different areas of WiFi security: monitoring,\n"
@@ -13608,22 +15801,22 @@ msgid ""
 "allows for heavy scripting."
 msgstr ""
 
-#: gnu/packages/networking.scm:1026
+#: gnu/packages/networking.scm:1716
 msgid "Offline brute-force tool for Wi-Fi Protected Setup"
 msgstr ""
 
-#: gnu/packages/networking.scm:1027
+#: gnu/packages/networking.scm:1717
 msgid ""
 "Pixiewps implements the pixie-dust attack to brute\n"
 "force the Wi-Fi Protected Setup (WPS) PIN by exploiting the low or\n"
 "non-existing entropy of some access points."
 msgstr ""
 
-#: gnu/packages/networking.scm:1073
+#: gnu/packages/networking.scm:1763
 msgid "Attack tool for Wi-Fi Protected Setup"
 msgstr ""
 
-#: gnu/packages/networking.scm:1074
+#: gnu/packages/networking.scm:1764
 msgid ""
 "Reaver performs a brute force attack against an access\n"
 "point's Wi-Fi Protected Setup (WPS) PIN.  Once the PIN is found, the WPA\n"
@@ -13631,11 +15824,11 @@ msgid ""
 "reconfigured."
 msgstr ""
 
-#: gnu/packages/networking.scm:1097
+#: gnu/packages/networking.scm:1787
 msgid "Event loop and event-driven async socket base class"
 msgstr ""
 
-#: gnu/packages/networking.scm:1099
+#: gnu/packages/networking.scm:1789
 msgid ""
 "Danga::Socket is an abstract base class for objects backed by a socket\n"
 "which provides the basic framework for event-driven asynchronous IO, designed\n"
@@ -13643,11 +15836,11 @@ msgid ""
 "loop."
 msgstr ""
 
-#: gnu/packages/networking.scm:1123
+#: gnu/packages/networking.scm:1813
 msgid "IPv4 and IPv6 validation methods"
 msgstr ""
 
-#: gnu/packages/networking.scm:1125
+#: gnu/packages/networking.scm:1815
 msgid ""
 "This module provides several IP address validation subroutines that both\n"
 "validate and untaint their input.  This includes both basic validation\n"
@@ -13656,116 +15849,116 @@ msgid ""
 "private (reserved)."
 msgstr ""
 
-#: gnu/packages/networking.scm:1152
+#: gnu/packages/networking.scm:1842
 msgid "Perl Interface to the Domain Name System"
 msgstr ""
 
-#: gnu/packages/networking.scm:1153
+#: gnu/packages/networking.scm:1843
 msgid "Net::DNS is the Perl Interface to the Domain Name System."
 msgstr ""
 
-#: gnu/packages/networking.scm:1184
+#: gnu/packages/networking.scm:1874
 msgid "IPv6 related part of the C socket.h defines and structure manipulators for Perl"
 msgstr ""
 
-#: gnu/packages/networking.scm:1185
+#: gnu/packages/networking.scm:1875
 msgid ""
 "Socket6 binds the IPv6 related part of the C socket header\n"
 "definitions and structure manipulators for Perl."
 msgstr ""
 
-#: gnu/packages/networking.scm:1211
+#: gnu/packages/networking.scm:1901
 msgid "Programmable DNS resolver class for offline emulation of DNS"
 msgstr ""
 
-#: gnu/packages/networking.scm:1212
+#: gnu/packages/networking.scm:1902
 msgid ""
 "Net::DNS::Resolver::Programmable is a programmable DNS resolver for\n"
 "offline emulation of DNS."
 msgstr ""
 
-#: gnu/packages/networking.scm:1232
+#: gnu/packages/networking.scm:1922
 msgid "Mock DNS Resolver object for testing"
 msgstr ""
 
-#: gnu/packages/networking.scm:1234
+#: gnu/packages/networking.scm:1924
 msgid ""
 "Net::DNS::Resolver::Mock is a subclass of Net::DNS::Resolver, but returns\n"
 "static data from any provided DNS zone file instead of querying the network.\n"
 "It is intended primarily for use in testing."
 msgstr ""
 
-#: gnu/packages/networking.scm:1268
+#: gnu/packages/networking.scm:1958
 msgid "Manages IPv4 and IPv6 addresses and subnets"
 msgstr ""
 
-#: gnu/packages/networking.scm:1269
+#: gnu/packages/networking.scm:1959
 msgid "NetAddr::IP manages IPv4 and IPv6 addresses and subsets."
 msgstr ""
 
-#: gnu/packages/networking.scm:1301
+#: gnu/packages/networking.scm:1991
 msgid "Patricia Trie Perl module for fast IP address lookups"
 msgstr ""
 
-#: gnu/packages/networking.scm:1303
+#: gnu/packages/networking.scm:1993
 msgid "Net::Patricia does IP address lookups quickly in Perl."
 msgstr ""
 
-#: gnu/packages/networking.scm:1326
+#: gnu/packages/networking.scm:2016
 msgid "Perl extension for merging IPv4 or IPv6 CIDR addresses"
 msgstr ""
 
-#: gnu/packages/networking.scm:1327
+#: gnu/packages/networking.scm:2017
 msgid "Net::CIDR::Lite merges IPv4 or IPv6 CIDR addresses."
 msgstr ""
 
-#: gnu/packages/networking.scm:1349
+#: gnu/packages/networking.scm:2039
 msgid "Look up location and network information by IP Address in Perl"
 msgstr ""
 
-#: gnu/packages/networking.scm:1350
+#: gnu/packages/networking.scm:2040
 msgid ""
 "The Perl module @code{Geo::IP}.  It looks up location and\n"
 "network information by IP Address."
 msgstr ""
 
-#: gnu/packages/networking.scm:1379
+#: gnu/packages/networking.scm:2069
 msgid "Perl object interface for AF_INET/AF_INET6 domain sockets"
 msgstr ""
 
-#: gnu/packages/networking.scm:1380
+#: gnu/packages/networking.scm:2070
 msgid ""
 "IO::Socket::INET6 is an interface for AF_INET/AF_INET6 domain\n"
 "sockets in Perl."
 msgstr ""
 
-#: gnu/packages/networking.scm:1408
+#: gnu/packages/networking.scm:2098
 msgid "Library providing automatic proxy configuration management"
 msgstr ""
 
-#: gnu/packages/networking.scm:1409
+#: gnu/packages/networking.scm:2099
 msgid ""
 "Libproxy handles the details of HTTP/HTTPS proxy\n"
 "configuration for applications across all scenarios.  Applications using\n"
 "libproxy only have to specify which proxy to use."
 msgstr ""
 
-#: gnu/packages/networking.scm:1444
+#: gnu/packages/networking.scm:2134
 msgid "Redirect any TCP connection through a proxy or proxy chain"
 msgstr ""
 
-#: gnu/packages/networking.scm:1445
+#: gnu/packages/networking.scm:2135
 msgid ""
 "Proxychains-ng is a preloader which hooks calls to sockets\n"
 "in dynamically linked programs and redirects them through one or more SOCKS or\n"
 "HTTP proxies."
 msgstr ""
 
-#: gnu/packages/networking.scm:1465
+#: gnu/packages/networking.scm:2155
 msgid "Network communication layer on top of UDP"
 msgstr ""
 
-#: gnu/packages/networking.scm:1467
+#: gnu/packages/networking.scm:2157
 msgid ""
 "ENet's purpose is to provide a relatively thin, simple and robust network\n"
 "communication layer on top of UDP.  The primary feature it provides is optional\n"
@@ -13775,11 +15968,11 @@ msgid ""
 "library remains flexible, portable, and easily embeddable."
 msgstr ""
 
-#: gnu/packages/networking.scm:1532
+#: gnu/packages/networking.scm:2222
 msgid "Applicative network protocol demultiplexer"
 msgstr ""
 
-#: gnu/packages/networking.scm:1534
+#: gnu/packages/networking.scm:2224
 msgid ""
 "sslh is a network protocol demultiplexer.  It acts like a switchboard,\n"
 "accepting connections from clients on one port and forwarding them to different\n"
@@ -13791,11 +15984,11 @@ msgid ""
 "that block port 22."
 msgstr ""
 
-#: gnu/packages/networking.scm:1557
+#: gnu/packages/networking.scm:2247
 msgid "TCP, UDP and SCTP bandwidth measurement tool"
 msgstr ""
 
-#: gnu/packages/networking.scm:1559
+#: gnu/packages/networking.scm:2249
 msgid ""
 "iPerf is a tool to measure achievable bandwidth on IP networks.  It\n"
 "supports tuning of various parameters related to timing, buffers and\n"
@@ -13803,11 +15996,11 @@ msgid ""
 "the bandwidth, loss, and other parameters."
 msgstr ""
 
-#: gnu/packages/networking.scm:1592
+#: gnu/packages/networking.scm:2286
 msgid "Per-process bandwidth monitor"
 msgstr ""
 
-#: gnu/packages/networking.scm:1593
+#: gnu/packages/networking.scm:2287
 msgid ""
 "NetHogs is a small 'net top' tool for Linux.  Instead of\n"
 "breaking the traffic down per protocol or per subnet, like most tools do, it\n"
@@ -13819,11 +16012,11 @@ msgid ""
 "gone wild and are suddenly taking up your bandwidth."
 msgstr ""
 
-#: gnu/packages/networking.scm:1639
+#: gnu/packages/networking.scm:2333
 msgid "Usenet binary file downloader"
 msgstr ""
 
-#: gnu/packages/networking.scm:1641
+#: gnu/packages/networking.scm:2335
 msgid ""
 "NZBGet is a binary newsgrabber, which downloads files from Usenet based\n"
 "on information given in @code{nzb} files.  NZBGet can be used in standalone\n"
@@ -13833,11 +16026,11 @@ msgid ""
 "procedure calls (RPCs)."
 msgstr ""
 
-#: gnu/packages/networking.scm:1695
+#: gnu/packages/networking.scm:2387
 msgid "Virtual network switch"
 msgstr ""
 
-#: gnu/packages/networking.scm:1698
+#: gnu/packages/networking.scm:2390
 msgid ""
 "Open vSwitch is a multilayer virtual switch.  It is designed to enable\n"
 "massive network automation through programmatic extension, while still\n"
@@ -13845,54 +16038,54 @@ msgid ""
 "IPFIX, RSPAN, CLI, LACP, 802.1ag)."
 msgstr ""
 
-#: gnu/packages/networking.scm:1720
+#: gnu/packages/networking.scm:2412
 msgid "Python class and tools for handling IP addresses and networks"
 msgstr ""
 
-#: gnu/packages/networking.scm:1721
+#: gnu/packages/networking.scm:2413
 msgid ""
 "The @code{IP} class allows a comfortable parsing and\n"
 "handling for most notations in use for IPv4 and IPv6 addresses and\n"
 "networks."
 msgstr ""
 
-#: gnu/packages/networking.scm:1744
+#: gnu/packages/networking.scm:2436
 msgid "Internet bandwidth tester"
 msgstr ""
 
-#: gnu/packages/networking.scm:1746
+#: gnu/packages/networking.scm:2438
 msgid ""
 "Command line interface for testing internet bandwidth using\n"
 "speedtest.net."
 msgstr ""
 
-#: gnu/packages/networking.scm:1764
+#: gnu/packages/networking.scm:2456
 msgid "HPA's tftp client"
 msgstr ""
 
-#: gnu/packages/networking.scm:1766
+#: gnu/packages/networking.scm:2458
 msgid ""
 "This is a tftp client derived from OpenBSD tftp with some extra options\n"
 "added and bugs fixed.  The source includes readline support but it is not\n"
 "enabled due to license conflicts between the BSD advertising clause and the GPL."
 msgstr ""
 
-#: gnu/packages/networking.scm:1794
+#: gnu/packages/networking.scm:2487
 msgid "Small Ident Daemon"
 msgstr ""
 
-#: gnu/packages/networking.scm:1796
+#: gnu/packages/networking.scm:2489
 msgid ""
-"@dfn{Pidentd} (Peter's Ident Daemon) is a identd, which implements a\n"
+"@dfn{Pidentd} (Peter's Ident Daemon) is an identd, which implements a\n"
 "identification server.  Pidentd looks up specific TCP/IP connections and\n"
 "returns the user name and other information about the connection."
 msgstr ""
 
-#: gnu/packages/networking.scm:1843
+#: gnu/packages/networking.scm:2536
 msgid "Create secure pipes between sockets"
 msgstr ""
 
-#: gnu/packages/networking.scm:1844
+#: gnu/packages/networking.scm:2537
 msgid ""
 "Spiped (pronounced \"ess-pipe-dee\") is a utility for creating\n"
 "symmetrically encrypted and authenticated pipes between socket addresses, so\n"
@@ -13902,11 +16095,11 @@ msgid ""
 "does not use SSH and requires a pre-shared symmetric key."
 msgstr ""
 
-#: gnu/packages/networking.scm:1871
+#: gnu/packages/networking.scm:2564
 msgid "Routing Software Suite"
 msgstr ""
 
-#: gnu/packages/networking.scm:1872
+#: gnu/packages/networking.scm:2565
 msgid ""
 "Quagga is a routing software suite, providing implementations\n"
 "of OSPFv2, OSPFv3, RIP v1 and v2, RIPng and BGP-4 for Unix platforms.\n"
@@ -13918,22 +16111,22 @@ msgid ""
 "updates to the zebra daemon."
 msgstr ""
 
-#: gnu/packages/networking.scm:1923
+#: gnu/packages/networking.scm:2616
 msgid "IPv6 security research toolkit"
 msgstr ""
 
-#: gnu/packages/networking.scm:1924
+#: gnu/packages/networking.scm:2617
 msgid ""
 "The THC IPv6 Toolkit provides command-line tools and a library\n"
 "for researching IPv6 implementations and deployments.  It requires Linux 2.6 or\n"
 "newer and only works on Ethernet network interfaces."
 msgstr ""
 
-#: gnu/packages/networking.scm:1950
+#: gnu/packages/networking.scm:2643
 msgid "Bandwidth monitor"
 msgstr ""
 
-#: gnu/packages/networking.scm:1951
+#: gnu/packages/networking.scm:2644
 msgid ""
 "bmon is a monitoring and debugging tool to capture\n"
 "networking-related statistics and prepare them visually in a human-friendly\n"
@@ -13941,11 +16134,11 @@ msgid ""
 "interface and a programmable text output for scripting."
 msgstr ""
 
-#: gnu/packages/networking.scm:1993
+#: gnu/packages/networking.scm:2681
 msgid "Framework for low-level network packet construction"
 msgstr ""
 
-#: gnu/packages/networking.scm:1995
+#: gnu/packages/networking.scm:2683
 msgid ""
 "Libnet provides a fairly portable framework for network packet\n"
 "construction and injection.  It features portable packet creation interfaces\n"
@@ -13954,11 +16147,11 @@ msgid ""
 "can be whipped up with little effort."
 msgstr ""
 
-#: gnu/packages/networking.scm:2020
+#: gnu/packages/networking.scm:2708
 msgid "Network diagnostic tool"
 msgstr ""
 
-#: gnu/packages/networking.scm:2022
+#: gnu/packages/networking.scm:2710
 msgid ""
 "@acronym{mtr, My TraceRoute} combines the functionality of the\n"
 "@command{traceroute} and @command{ping} programs in a single network diagnostic\n"
@@ -13968,22 +16161,22 @@ msgid ""
 "displays the results in real time."
 msgstr ""
 
-#: gnu/packages/networking.scm:2074
+#: gnu/packages/networking.scm:2762
 msgid "IKEv1/v2 keying daemon"
 msgstr ""
 
-#: gnu/packages/networking.scm:2075
+#: gnu/packages/networking.scm:2763
 msgid ""
 "StrongSwan is an IPsec implementation originally based upon\n"
 "the FreeS/WAN project.  It contains support for IKEv1, IKEv2, MOBIKE, IPv6,\n"
 "NAT-T and more."
 msgstr ""
 
-#: gnu/packages/networking.scm:2159
+#: gnu/packages/networking.scm:2847
 msgid "Peer-to-peer client for the eD2K and Kademlia networks"
 msgstr ""
 
-#: gnu/packages/networking.scm:2161
+#: gnu/packages/networking.scm:2849
 msgid ""
 "aMule is an eMule-like client for the eD2k and Kademlia peer-to-peer\n"
 "file sharing networks.  It includes a graphical user interface (GUI), a daemon\n"
@@ -13992,11 +16185,11 @@ msgid ""
 "remotely."
 msgstr ""
 
-#: gnu/packages/networking.scm:2190
+#: gnu/packages/networking.scm:2872
 msgid "Framework for proximity-based peer-to-peer applications"
 msgstr ""
 
-#: gnu/packages/networking.scm:2191
+#: gnu/packages/networking.scm:2873
 msgid ""
 "Zyre provides reliable group messaging over local area\n"
 "networks using zeromq.  It has these key characteristics:\n"
@@ -14013,11 +16206,21 @@ msgid ""
 "@end itemize"
 msgstr ""
 
-#: gnu/packages/networking.scm:2231
+#: gnu/packages/networking.scm:2908
+msgid "SocketCAN user-space library"
+msgstr ""
+
+#: gnu/packages/networking.scm:2909
+msgid ""
+"This library allows controlling basic functions in SocketCAN\n"
+"from user-space.  It requires a kernel built with SocketCAN support."
+msgstr ""
+
+#: gnu/packages/networking.scm:2937
 msgid "CAN utilities"
 msgstr ""
 
-#: gnu/packages/networking.scm:2232
+#: gnu/packages/networking.scm:2938
 msgid ""
 "This package provides CAN utilities in the following areas:\n"
 "\n"
@@ -14033,22 +16236,22 @@ msgid ""
 "@end itemize"
 msgstr ""
 
-#: gnu/packages/networking.scm:2268
+#: gnu/packages/networking.scm:2974
 msgid "C++ library for ASynchronous network I/O"
 msgstr ""
 
-#: gnu/packages/networking.scm:2269
+#: gnu/packages/networking.scm:2975
 msgid ""
 "Asio is a cross-platform C++ library for network and\n"
 "low-level I/O programming that provides developers with a consistent\n"
 "asynchronous model using a modern C++ approach."
 msgstr ""
 
-#: gnu/packages/networking.scm:2293
+#: gnu/packages/networking.scm:2999
 msgid "Fast tunnel proxy that helps you bypass firewalls"
 msgstr ""
 
-#: gnu/packages/networking.scm:2295
+#: gnu/packages/networking.scm:3001
 msgid ""
 "This package is a fast tunnel proxy that helps you bypass firewalls.\n"
 "\n"
@@ -14062,11 +16265,11 @@ msgid ""
 "@end itemize"
 msgstr ""
 
-#: gnu/packages/networking.scm:2373
+#: gnu/packages/networking.scm:3082
 msgid "Simple Network Management Protocol library and tools"
 msgstr ""
 
-#: gnu/packages/networking.scm:2374
+#: gnu/packages/networking.scm:3083
 msgid ""
 "The @dfn{Simple Network Management Protocol} (SNMP) is a\n"
 "widely used protocol for monitoring the health and welfare of network\n"
@@ -14075,32 +16278,32 @@ msgid ""
 "SNMP v3 using both IPv4 and IPv6."
 msgstr ""
 
-#: gnu/packages/networking.scm:2419
+#: gnu/packages/networking.scm:3129
 msgid "Bridge for UDP tunnels, Ethernet, TAP and VMnet interfaces"
 msgstr ""
 
-#: gnu/packages/networking.scm:2420
+#: gnu/packages/networking.scm:3130
 msgid ""
 "uBridge is a simple program to create user-land bridges\n"
 "between various technologies.  Currently, bridging between UDP tunnels,\n"
 "Ethernet and TAP interfaces is supported.  Packet capture is also supported."
 msgstr ""
 
-#: gnu/packages/networking.scm:2461
+#: gnu/packages/networking.scm:3163
 msgid "Capture wlan traffic to hashcat and John the Ripper"
 msgstr ""
 
-#: gnu/packages/networking.scm:2463
+#: gnu/packages/networking.scm:3165
 msgid ""
 "This package contains a small set of tools to capture and convert\n"
 "packets from wireless devices for use with hashcat or John the Ripper."
 msgstr ""
 
-#: gnu/packages/networking.scm:2490
+#: gnu/packages/networking.scm:3194
 msgid "Small tool to capture packets from wlan devices"
 msgstr ""
 
-#: gnu/packages/networking.scm:2492
+#: gnu/packages/networking.scm:3196
 msgid ""
 "Small tool to capture packets from WLAN devices.  After capturing,\n"
 "upload the \"uncleaned\" cap to @url{https://wpa-sec.stanev.org/?submit} to\n"
@@ -14110,11 +16313,11 @@ msgid ""
 "and check if the WLAN key or the master key was transmitted unencrypted."
 msgstr ""
 
-#: gnu/packages/networking.scm:2519
+#: gnu/packages/networking.scm:3223
 msgid "SOCKS server and client"
 msgstr ""
 
-#: gnu/packages/networking.scm:2520
+#: gnu/packages/networking.scm:3224
 msgid ""
 "Dante is a SOCKS client and server implementation.  It can\n"
 "be installed on a machine with access to an external TCP/IP network and will\n"
@@ -14123,54 +16326,54 @@ msgid ""
 "never see any machines other than the one Dante is running on."
 msgstr ""
 
-#: gnu/packages/networking.scm:2573
+#: gnu/packages/networking.scm:3277
 msgid "Asynchronous RESTful functionality to C++11 applications"
 msgstr ""
 
-#: gnu/packages/networking.scm:2574
+#: gnu/packages/networking.scm:3278
 msgid ""
 "Restbed is a comprehensive and consistent programming\n"
 "model for building applications that require seamless and secure\n"
 "communication over HTTP."
 msgstr ""
 
-#: gnu/packages/networking.scm:2616
+#: gnu/packages/networking.scm:3320
 msgid "C++14 library that gives you an embedded HTTP/Websocket server"
 msgstr ""
 
-#: gnu/packages/networking.scm:2617
+#: gnu/packages/networking.scm:3321
 msgid ""
 "RESTinio is a header-only C++14 library that gives you an embedded\n"
 "HTTP/Websocket server.  It is based on standalone version of ASIO\n"
 "and targeted primarily for asynchronous processing of HTTP-requests."
 msgstr ""
 
-#: gnu/packages/networking.scm:2665
+#: gnu/packages/networking.scm:3370
 msgid "Distributed Hash Table (DHT) library"
 msgstr ""
 
-#: gnu/packages/networking.scm:2666
+#: gnu/packages/networking.scm:3371
 msgid ""
 "OpenDHT is a Distributed Hash Table (DHT) library.  It may\n"
 "be used to manage peer-to-peer network connections as needed for real time\n"
 "communication."
 msgstr ""
 
-#: gnu/packages/networking.scm:2694
+#: gnu/packages/networking.scm:3399
 msgid "IP routing protocol suite"
 msgstr "Suite protocolaire pour le routage IP"
 
-#: gnu/packages/networking.scm:2695
+#: gnu/packages/networking.scm:3400
 msgid ""
 "FRRouting (FRR) is an IP routing protocol suite which includes\n"
 "protocol daemons for BGP, IS-IS, LDP, OSPF, PIM, and RIP. "
 msgstr ""
 
-#: gnu/packages/networking.scm:2750
+#: gnu/packages/networking.scm:3455
 msgid "Internet Wireless Daemon"
 msgstr ""
 
-#: gnu/packages/networking.scm:2751
+#: gnu/packages/networking.scm:3456
 msgid ""
 "iwd is a wireless daemon for Linux that aims to replace WPA\n"
 "Supplicant.  It optimizes resource utilization by not depending on any external\n"
@@ -14178,22 +16381,22 @@ msgid ""
 "maximum extent possible."
 msgstr ""
 
-#: gnu/packages/networking.scm:2784
+#: gnu/packages/networking.scm:3489
 msgid "Management tool for the mesh networking BATMAN protocol"
 msgstr ""
 
-#: gnu/packages/networking.scm:2785
+#: gnu/packages/networking.scm:3490
 msgid ""
 "This package provides a control tool for the\n"
 "B.A.T.M.A.N. mesh networking routing protocol provided by the Linux kernel\n"
 "module @code{batman-adv}, for Layer 2."
 msgstr ""
 
-#: gnu/packages/networking.scm:2820
+#: gnu/packages/networking.scm:3525
 msgid "Make localhost servers publicly visible"
 msgstr ""
 
-#: gnu/packages/networking.scm:2822
+#: gnu/packages/networking.scm:3527
 msgid ""
 "PageKite implements a tunneled reverse proxy which makes it easy to make\n"
 "a service (such as an HTTP or SSH server) on localhost visible to the wider\n"
@@ -14201,11 +16404,11 @@ msgid ""
 "service is available at @url{https://pagekite.net/}, or you can run your own."
 msgstr ""
 
-#: gnu/packages/networking.scm:2865
+#: gnu/packages/networking.scm:3570
 msgid "Simple IP network calculator"
 msgstr ""
 
-#: gnu/packages/networking.scm:2866
+#: gnu/packages/networking.scm:3571
 msgid ""
 "ipcalc takes an IP address and netmask and calculates the\n"
 "resulting broadcast, network, Cisco wildcard mask, and host range.  By giving\n"
@@ -14214,11 +16417,11 @@ msgid ""
 "easy-to-understand binary values."
 msgstr ""
 
-#: gnu/packages/networking.scm:2904
+#: gnu/packages/networking.scm:3609
 msgid "Utility to set up and maintain TUN/TAP network interfaces"
 msgstr ""
 
-#: gnu/packages/networking.scm:2905
+#: gnu/packages/networking.scm:3610
 msgid ""
 "Tunctl is used to set up and maintain persistent TUN/TAP\n"
 "network interfaces, enabling user applications to simulate network traffic.\n"
@@ -14226,21 +16429,21 @@ msgid ""
 "simulation, and a number of other applications."
 msgstr ""
 
-#: gnu/packages/networking.scm:2924
+#: gnu/packages/networking.scm:3629
 msgid "Implements Wake On LAN functionality in a small program"
 msgstr ""
 
-#: gnu/packages/networking.scm:2925
+#: gnu/packages/networking.scm:3630
 msgid ""
 "Tool to send a magic packet to wake another host on the\n"
 "network.  This must be enabled on the target host, usually in the BIOS."
 msgstr ""
 
-#: gnu/packages/networking.scm:2947
+#: gnu/packages/networking.scm:3652
 msgid "Virtual Distributed Ethernet"
 msgstr ""
 
-#: gnu/packages/networking.scm:2948
+#: gnu/packages/networking.scm:3653
 msgid ""
 "VDE is a set of programs to provide virtual software-defined\n"
 "Ethernet network interface controllers across multiple virtual or\n"
@@ -14249,11 +16452,11 @@ msgid ""
 "cables."
 msgstr ""
 
-#: gnu/packages/networking.scm:2992
+#: gnu/packages/networking.scm:3697
 msgid "Reliable, high performance TCP/HTTP load balancer"
 msgstr ""
 
-#: gnu/packages/networking.scm:2993
+#: gnu/packages/networking.scm:3698
 msgid ""
 "HAProxy is a free, very fast and reliable solution offering\n"
 "high availability, load balancing, and proxying for TCP and HTTP-based\n"
@@ -14262,11 +16465,52 @@ msgid ""
 "thousands of connections is clearly realistic with today's hardware."
 msgstr ""
 
-#: gnu/packages/pdf.scm:128
-msgid "Rearrange PDF pages to print as flyers on one sheet"
+#: gnu/packages/networking.scm:3745
+msgid "Locate neighbors of your network equipment"
+msgstr ""
+
+#: gnu/packages/networking.scm:3747
+msgid ""
+"The @dfn{Link Layer Discovery Protocol} (LLDP) is an industry standard\n"
+"protocol designed to supplant proprietary Link-Layer protocols such as EDP or\n"
+"CDP.  The goal of LLDP is to provide an inter-vendor compatible mechanism to\n"
+"deliver Link-Layer notifications to adjacent network devices.  @code{lldpd} is\n"
+"an implementation of LLDP.  It also supports some proprietary protocols."
+msgstr ""
+
+#: gnu/packages/networking.scm:3788
+msgid "Denial-of-service countermeasure"
+msgstr ""
+
+#: gnu/packages/networking.scm:3789
+msgid ""
+"Hashcash is a proof-of-work algorithm, which has been used\n"
+"as a denial-of-service countermeasure technique in a number of systems.\n"
+"\n"
+"A hashcash stamp constitutes a proof-of-work which takes a parametrizable\n"
+"amount of work to compute for the sender.  The recipient can verify received\n"
+"hashcash stamps efficiently.\n"
+"\n"
+"This package contains a command-line tool for computing and verifying hashcash\n"
+"stamps."
+msgstr ""
+
+#: gnu/packages/networking.scm:3819
+msgid "NBD client and server"
+msgstr ""
+
+#: gnu/packages/networking.scm:3820
+msgid ""
+"This package provides the NBD (Network Block Devices)\n"
+"client and server.  It allows you to use remote block devices over a TCP/IP\n"
+"network."
 msgstr ""
 
 #: gnu/packages/pdf.scm:129
+msgid "Rearrange PDF pages to print as flyers on one sheet"
+msgstr ""
+
+#: gnu/packages/pdf.scm:130
 msgid ""
 "@command{flyer-composer} can be used to prepare one- or\n"
 "two-sided flyers for printing on one sheet of paper.\n"
@@ -14277,10 +16521,10 @@ msgid ""
 "times.  If you have a second page, Flyer Composer can arrange it the same way\n"
 "- even if the second page is in a separate PDF file.\n"
 "\n"
-"This package contains both the commnd line tool and the gui too."
+"This package contains both the command line tool and the gui too."
 msgstr ""
 
-#: gnu/packages/pdf.scm:156
+#: gnu/packages/pdf.scm:157
 msgid ""
 "@command{flyer-composer} can be used to prepare one- or\n"
 "two-sided flyers for printing on one sheet of paper.\n"
@@ -14291,41 +16535,41 @@ msgid ""
 "times.  If you have a second page, Flyer Composer can arrange it the same way\n"
 "- even if the second page is in a separate PDF file.\n"
 "\n"
-"This package contains only the commnd line tool.  If you like to use the gui,\n"
+"This package contains only the command line tool.  If you like to use the gui,\n"
 "please install the @code{flyer-composer-gui} package."
 msgstr ""
 
-#: gnu/packages/pdf.scm:214
+#: gnu/packages/pdf.scm:213
 msgid "PDF rendering library"
 msgstr "Bibliothèque de rendu PDF"
 
-#: gnu/packages/pdf.scm:216
+#: gnu/packages/pdf.scm:215
 msgid "Poppler is a PDF rendering library based on the xpdf-3.0 code base."
 msgstr ""
 
-#: gnu/packages/pdf.scm:241
+#: gnu/packages/pdf.scm:240
 msgid "Poppler encoding files for rendering of CJK and Cyrillic text"
 msgstr ""
 
-#: gnu/packages/pdf.scm:242
+#: gnu/packages/pdf.scm:241
 msgid ""
 "This package provides optional encoding files for Poppler.\n"
 "When present, Poppler is able to correctly render CJK and Cyrillic text."
 msgstr ""
 
-#: gnu/packages/pdf.scm:255
+#: gnu/packages/pdf.scm:254
 msgid "Qt4 frontend for the Poppler PDF rendering library"
 msgstr ""
 
-#: gnu/packages/pdf.scm:262
+#: gnu/packages/pdf.scm:261
 msgid "Qt5 frontend for the Poppler PDF rendering library"
 msgstr ""
 
-#: gnu/packages/pdf.scm:302
+#: gnu/packages/pdf.scm:301
 msgid "Python bindings for Poppler-Qt5"
 msgstr ""
 
-#: gnu/packages/pdf.scm:304
+#: gnu/packages/pdf.scm:303
 msgid ""
 "This package provides Python bindings for the Qt5 interface of the\n"
 "Poppler PDF rendering library."
@@ -14333,90 +16577,90 @@ msgstr ""
 "Ce paquet fournit les liaisons Python pour l'interface Qt5 de la\n"
 "bibliothèque de rendu de PDF Poppler."
 
-#: gnu/packages/pdf.scm:338
+#: gnu/packages/pdf.scm:337
 msgid "Library for generating PDF files"
 msgstr "Bibliothèque de génération de fichiers PDF"
 
-#: gnu/packages/pdf.scm:340
+#: gnu/packages/pdf.scm:339
 msgid ""
 "libHaru is a library for generating PDF files.  libHaru does not support\n"
 "reading and editing of existing PDF files."
 msgstr ""
 
-#: gnu/packages/pdf.scm:388
+#: gnu/packages/pdf.scm:387
 msgid "Viewer for PDF files based on the Motif toolkit"
 msgstr "Visionneuse pour fichiers PDF basée sur la boîte à outil Motif"
 
-#: gnu/packages/pdf.scm:390
+#: gnu/packages/pdf.scm:389
 msgid "Xpdf is a viewer for Portable Document Format (PDF) files."
 msgstr "Xpdf est une visionneuse pour fichiers PDF (Portable Document Format)"
 
-#: gnu/packages/pdf.scm:424
+#: gnu/packages/pdf.scm:423
 msgid "Comic book support for zathura (libarchive backend)"
 msgstr ""
 
-#: gnu/packages/pdf.scm:425
+#: gnu/packages/pdf.scm:424
 msgid ""
 "The zathura-cb plugin adds comic book support to zathura\n"
 "using libarchive."
 msgstr ""
 
-#: gnu/packages/pdf.scm:459
+#: gnu/packages/pdf.scm:458
 msgid "PS support for zathura (libspectre backend)"
 msgstr ""
 
-#: gnu/packages/pdf.scm:460
+#: gnu/packages/pdf.scm:459
 msgid ""
 "The zathura-ps plugin adds PS support to zathura\n"
 "using libspectre."
 msgstr ""
 
-#: gnu/packages/pdf.scm:495
+#: gnu/packages/pdf.scm:494
 msgid "DjVu support for zathura (DjVuLibre backend)"
 msgstr ""
 
-#: gnu/packages/pdf.scm:496
+#: gnu/packages/pdf.scm:495
 msgid ""
 "The zathura-djvu plugin adds DjVu support to zathura\n"
 "using the DjVuLibre library."
 msgstr ""
 
-#: gnu/packages/pdf.scm:539
+#: gnu/packages/pdf.scm:538
 msgid "PDF support for zathura (mupdf backend)"
 msgstr ""
 
-#: gnu/packages/pdf.scm:540
+#: gnu/packages/pdf.scm:539
 msgid ""
 "The zathura-pdf-mupdf plugin adds PDF support to zathura\n"
 "by using the @code{mupdf} rendering library."
 msgstr ""
 
-#: gnu/packages/pdf.scm:575
+#: gnu/packages/pdf.scm:574
 msgid "PDF support for zathura (poppler backend)"
 msgstr ""
 
-#: gnu/packages/pdf.scm:576
+#: gnu/packages/pdf.scm:575
 msgid ""
 "The zathura-pdf-poppler plugin adds PDF support to zathura\n"
 "by using the poppler rendering engine."
 msgstr ""
 
-#: gnu/packages/pdf.scm:632
+#: gnu/packages/pdf.scm:631
 msgid "Lightweight keyboard-driven PDF viewer"
 msgstr "Visionneuse de PDF légère gérée au clavier"
 
-#: gnu/packages/pdf.scm:633
+#: gnu/packages/pdf.scm:632
 msgid ""
 "Zathura is a customizable document viewer.  It provides a\n"
 "minimalistic interface and an interface that mainly focuses on keyboard\n"
 "interaction."
 msgstr ""
 
-#: gnu/packages/pdf.scm:676
+#: gnu/packages/pdf.scm:675
 msgid "Tools to work with the PDF file format"
 msgstr "Outils de manipulation de fichiers PDF"
 
-#: gnu/packages/pdf.scm:678
+#: gnu/packages/pdf.scm:677
 msgid ""
 "PoDoFo is a C++ library and set of command-line tools to work with the\n"
 "PDF file format.  It can parse PDF files and load them into memory, and makes\n"
@@ -14425,11 +16669,11 @@ msgid ""
 "extracting content or merging files."
 msgstr ""
 
-#: gnu/packages/pdf.scm:733
+#: gnu/packages/pdf.scm:732
 msgid "Lightweight PDF viewer and toolkit"
 msgstr "Boite à outils légère pour la visualisation de documents PDF"
 
-#: gnu/packages/pdf.scm:735
+#: gnu/packages/pdf.scm:734
 msgid ""
 "MuPDF is a C library that implements a PDF and XPS parsing and\n"
 "rendering engine.  It is used primarily to render pages into bitmaps,\n"
@@ -14449,11 +16693,11 @@ msgstr ""
 "d'outils en ligne de commande pour le rendu par lots (@command{pdfdraw}),\n"
 "la réécriture de fichiers (pdfclean) et l'analyse de structure (@command{pdfshow})."
 
-#: gnu/packages/pdf.scm:782
+#: gnu/packages/pdf.scm:781
 msgid "Command-line tools and library for transforming PDF files"
 msgstr ""
 
-#: gnu/packages/pdf.scm:784
+#: gnu/packages/pdf.scm:783
 msgid ""
 "QPDF is a command-line program that does structural, content-preserving\n"
 "transformations on PDF files.  It could have been called something like\n"
@@ -14462,21 +16706,21 @@ msgid ""
 "program capable of converting PDF into other formats."
 msgstr ""
 
-#: gnu/packages/pdf.scm:816
+#: gnu/packages/pdf.scm:815
 msgid "Notetaking using a stylus"
 msgstr ""
 
-#: gnu/packages/pdf.scm:818
+#: gnu/packages/pdf.scm:817
 msgid ""
 "Xournal is an application for notetaking, sketching, keeping a journal\n"
 "using a stylus."
 msgstr ""
 
-#: gnu/packages/pdf.scm:875
+#: gnu/packages/pdf.scm:876
 msgid "Handwriting notetaking software with PDF annotation support"
 msgstr ""
 
-#: gnu/packages/pdf.scm:876
+#: gnu/packages/pdf.scm:877
 msgid ""
 "Xournal++ is a hand note taking software written in\n"
 "C++ with the target of flexibility, functionality and speed.  Stroke\n"
@@ -14490,7 +16734,7 @@ msgid ""
 "@item Fill shape functionality\n"
 "@item PDF Export (with and without paper style)\n"
 "@item PNG Export (with and without transparent background)\n"
-"@item Allow to map different tools / colors etc. to stylus buttons /\n"
+"@item Map different tools / colors etc. to stylus buttons /\n"
 "mouse buttons\n"
 "@item Sidebar with Page Previews with advanced page sorting, PDF\n"
 "Bookmarks and Layers (can be individually hidden, editing layer can be\n"
@@ -14512,22 +16756,22 @@ msgid ""
 "@end itemize"
 msgstr ""
 
-#: gnu/packages/pdf.scm:930
+#: gnu/packages/pdf.scm:955
 msgid "Python library for generating PDFs and graphics"
 msgstr ""
 
-#: gnu/packages/pdf.scm:931
+#: gnu/packages/pdf.scm:956
 msgid ""
 "This is the ReportLab PDF Toolkit.  It allows rapid creation\n"
 "of rich PDF documents, and also creation of charts in a variety of bitmap and\n"
 "vector formats."
 msgstr ""
 
-#: gnu/packages/pdf.scm:984
+#: gnu/packages/pdf.scm:1009
 msgid "PDF presentation tool with visual effects"
 msgstr ""
 
-#: gnu/packages/pdf.scm:986
+#: gnu/packages/pdf.scm:1011
 msgid ""
 "Impressive is a tool to display PDF files that provides visual effects\n"
 "such as smooth alpha-blended slide transitions.  It provides additional tools\n"
@@ -14535,31 +16779,31 @@ msgid ""
 "the PDF pages."
 msgstr ""
 
-#: gnu/packages/pdf.scm:1035
+#: gnu/packages/pdf.scm:1060
 msgid "Framebuffer and drm-based image viewer"
 msgstr ""
 
-#: gnu/packages/pdf.scm:1037
+#: gnu/packages/pdf.scm:1062
 msgid ""
 "fbida contains a few applications for viewing and editing images on\n"
 "the framebuffer."
 msgstr ""
 
-#: gnu/packages/pdf.scm:1062
+#: gnu/packages/pdf.scm:1087
 msgid "PDF to SVG converter"
 msgstr ""
 
-#: gnu/packages/pdf.scm:1063
+#: gnu/packages/pdf.scm:1088
 msgid ""
 "@command{pdf2svg} is a simple command-line PDF to SVG\n"
 "converter using the Poppler and Cairo libraries."
 msgstr ""
 
-#: gnu/packages/pdf.scm:1094 gnu/packages/pdf.scm:1131
+#: gnu/packages/pdf.scm:1119 gnu/packages/pdf.scm:1156
 msgid "Pure Python PDF toolkit"
 msgstr ""
 
-#: gnu/packages/pdf.scm:1095
+#: gnu/packages/pdf.scm:1120
 msgid ""
 "PyPDF2 is a pure Python PDF library capable of:\n"
 "\n"
@@ -14579,7 +16823,7 @@ msgid ""
 "manage or manipulate PDFs."
 msgstr ""
 
-#: gnu/packages/pdf.scm:1132
+#: gnu/packages/pdf.scm:1157
 msgid ""
 "PyPDF2 is a pure Python PDF toolkit.\n"
 "\n"
@@ -14587,11 +16831,11 @@ msgid ""
 "python-pypdf2 instead."
 msgstr ""
 
-#: gnu/packages/pdf.scm:1173
+#: gnu/packages/pdf.scm:1198
 msgid "Merge, split and re-arrange pages from PDF documents"
 msgstr ""
 
-#: gnu/packages/pdf.scm:1175
+#: gnu/packages/pdf.scm:1200
 msgid ""
 "PDF Arranger is a small application which allows one to merge or split\n"
 "PDF documents and rotate, crop and rearrange their pages using an interactive\n"
@@ -14600,11 +16844,11 @@ msgid ""
 "PDF Arranger was formerly known as PDF-Shuffler."
 msgstr ""
 
-#: gnu/packages/pdf.scm:1198
+#: gnu/packages/pdf.scm:1223
 msgid "Scale and tile PDF images/pages to print on multiple pages"
 msgstr ""
 
-#: gnu/packages/pdf.scm:1199
+#: gnu/packages/pdf.scm:1224
 msgid ""
 "@command{pdfposter} can be used to create a large poster by\n"
 "building it from multiple pages and/or printing it on large media.  It expects\n"
@@ -14617,11 +16861,11 @@ msgid ""
 "PDF.  Indeed @command{pdfposter} was inspired by @command{poster}."
 msgstr ""
 
-#: gnu/packages/pdf.scm:1230
+#: gnu/packages/pdf.scm:1255
 msgid "Command-line utility to search text in PDF files"
 msgstr ""
 
-#: gnu/packages/pdf.scm:1232
+#: gnu/packages/pdf.scm:1257
 msgid ""
 "Pdfgrep searches in pdf files for strings matching a regular expression.\n"
 "Support some GNU grep options as file name output, page number output,\n"
@@ -14629,11 +16873,11 @@ msgid ""
 "multiple files."
 msgstr ""
 
-#: gnu/packages/pdf.scm:1265
+#: gnu/packages/pdf.scm:1290
 msgid "Presenter console with multi-monitor support for PDF files"
 msgstr ""
 
-#: gnu/packages/pdf.scm:1267
+#: gnu/packages/pdf.scm:1292
 msgid ""
 "pdfpc is a presentation viewer application which uses multi-monitor\n"
 "output to provide meta information to the speaker during the presentation.  It\n"
@@ -14643,22 +16887,21 @@ msgid ""
 "presentation.  The input files processed by pdfpc are PDF documents."
 msgstr ""
 
-#: gnu/packages/pdf.scm:1293
+#: gnu/packages/pdf.scm:1318
 msgid "Pango to PostScript converter"
 msgstr ""
 
-#: gnu/packages/pdf.scm:1295
+#: gnu/packages/pdf.scm:1320
 msgid ""
 "Paps reads a UTF-8 encoded file and generates a PostScript language\n"
-"rendering of the file.  The rendering is done by creating outline curves\n"
-"through the Pango @code{ft2} backend."
+"rendering of the file through the Pango Cairo back end."
 msgstr ""
 
-#: gnu/packages/pdf.scm:1329
+#: gnu/packages/pdf.scm:1350
 msgid "PDF manipulation tool"
 msgstr ""
 
-#: gnu/packages/pdf.scm:1330
+#: gnu/packages/pdf.scm:1351
 msgid ""
 "Stapler is a pure Python alternative to PDFtk, a tool for\n"
 "manipulating PDF documents from the command line.  It supports\n"
@@ -14672,11 +16915,11 @@ msgid ""
 "@end itemize"
 msgstr ""
 
-#: gnu/packages/pdf.scm:1402
+#: gnu/packages/pdf.scm:1423
 msgid "Document factory for creating PDF files from HTML"
 msgstr ""
 
-#: gnu/packages/pdf.scm:1403
+#: gnu/packages/pdf.scm:1424
 msgid ""
 "WeasyPrint helps web developers to create PDF documents.  It\n"
 "turns simple HTML pages into gorgeous statistical reports, invoices, tickets,\n"
@@ -14707,11 +16950,11 @@ msgid ""
 "feature."
 msgstr ""
 
-#: gnu/packages/perl.scm:166
+#: gnu/packages/perl.scm:260
 msgid "Implementation of the Perl programming language"
 msgstr "Implémentation du langage de programmation Perl"
 
-#: gnu/packages/perl.scm:168
+#: gnu/packages/perl.scm:262
 msgid ""
 "Perl is a general-purpose programming language originally developed for\n"
 "text manipulation and now used for a wide range of tasks including system\n"
@@ -14719,21 +16962,21 @@ msgid ""
 "more."
 msgstr ""
 
-#: gnu/packages/perl.scm:189
+#: gnu/packages/perl.scm:283
 msgid "Module for merging hierarchies using the C3 algorithm"
 msgstr ""
 
-#: gnu/packages/perl.scm:190
+#: gnu/packages/perl.scm:284
 msgid ""
 "This module implements the C3 algorithm, which aims to\n"
 "provide a sane method resolution order under multiple inheritance."
 msgstr ""
 
-#: gnu/packages/perl.scm:208
+#: gnu/packages/perl.scm:302
 msgid "Compute differences between two files or lists"
 msgstr ""
 
-#: gnu/packages/perl.scm:209
+#: gnu/packages/perl.scm:303
 msgid ""
 "This is a module for computing the difference between two\n"
 "files, two strings, or any other two lists of things.  It uses an intelligent\n"
@@ -14742,11 +16985,11 @@ msgid ""
 "differences."
 msgstr ""
 
-#: gnu/packages/perl.scm:231
+#: gnu/packages/perl.scm:325
 msgid "Use shorter versions of class names"
 msgstr ""
 
-#: gnu/packages/perl.scm:232
+#: gnu/packages/perl.scm:326
 msgid ""
 "The alias module loads the class you specify and exports\n"
 "into your namespace a subroutine that returns the class name.  You can\n"
@@ -14754,11 +16997,23 @@ msgid ""
 "implicitly."
 msgstr ""
 
-#: gnu/packages/perl.scm:254
+#: gnu/packages/perl.scm:381
+msgid "Get, build and use SDL libraries"
+msgstr ""
+
+#: gnu/packages/perl.scm:383
+msgid ""
+"Alien::SDL can be used to detect and get configuration settings from an\n"
+"installed SDL and related libraries.  Based on your platform it offers the\n"
+"possibility to download and install prebuilt binaries or to build SDL & co.@:\n"
+"from source codes."
+msgstr ""
+
+#: gnu/packages/perl.scm:405
 msgid "Transparently use Moose or Mouse modules"
 msgstr ""
 
-#: gnu/packages/perl.scm:256
+#: gnu/packages/perl.scm:407
 msgid ""
 "This module facilitates using @code{Moose} or @code{Mouse} modules\n"
 "without changing the code.  By default, Mouse will be provided to libraries,\n"
@@ -14767,31 +17022,31 @@ msgid ""
 "variable ANY_MOOSE to be Moose or Mouse."
 msgstr ""
 
-#: gnu/packages/perl.scm:279
+#: gnu/packages/perl.scm:430
 msgid "Configuration files and command line parsing"
 msgstr ""
 
-#: gnu/packages/perl.scm:280
+#: gnu/packages/perl.scm:431
 msgid ""
 "AppConfig is a bundle of Perl5 modules for reading\n"
 "configuration files and parsing command line arguments."
 msgstr ""
 
-#: gnu/packages/perl.scm:300
+#: gnu/packages/perl.scm:451
 msgid "Small utils for array manipulation"
 msgstr ""
 
-#: gnu/packages/perl.scm:301
+#: gnu/packages/perl.scm:452
 msgid ""
 "@code{Array::Utils} is a small pure-perl module containing\n"
 "list manipulation routines."
 msgstr ""
 
-#: gnu/packages/perl.scm:322
+#: gnu/packages/perl.scm:473
 msgid "Allow C/XS libraries to interrupt perl asynchronously"
 msgstr ""
 
-#: gnu/packages/perl.scm:324
+#: gnu/packages/perl.scm:475
 msgid ""
 "@code{Async::Interrupt} implements a single feature only of interest\n"
 "to advanced perl modules, namely asynchronous interruptions (think \"UNIX\n"
@@ -14809,13 +17064,13 @@ msgid ""
 "sometimes even without using a single syscall."
 msgstr ""
 
-#: gnu/packages/perl.scm:354
+#: gnu/packages/perl.scm:505
 msgid "Assorted general utility attributes"
 msgstr ""
 
-#: gnu/packages/perl.scm:355
+#: gnu/packages/perl.scm:506
 msgid ""
-"This packages provides various utility functions.  When used\n"
+"This package provides various utility functions.  When used\n"
 "without argument, this module provides four universally accessible attributes\n"
 "of general interest as follows:\n"
 "@itemize\n"
@@ -14827,11 +17082,11 @@ msgid ""
 "@end itemize"
 msgstr ""
 
-#: gnu/packages/perl.scm:390
+#: gnu/packages/perl.scm:541
 msgid "DEC VMS password hashing"
 msgstr ""
 
-#: gnu/packages/perl.scm:391
+#: gnu/packages/perl.scm:542
 msgid ""
 "@code{Authen::DecHpwd} implements the\n"
 "SYS$HASH_PASSWORD password hashing function from VMS (also known as\n"
@@ -14840,11 +17095,29 @@ msgid ""
 "pure Perl backup version for systems that cannot handle XS."
 msgstr ""
 
-#: gnu/packages/perl.scm:412
+#: gnu/packages/perl.scm:579
+msgid "Hashed passwords/passphrases as objects"
+msgstr ""
+
+#: gnu/packages/perl.scm:580
+msgid ""
+"@code{Authen-Passphrase} is the base class for a\n"
+"system of objects that encapsulate passphrases.  An object of this\n"
+"type is a passphrase recogniser; its job is to recognise whether an\n"
+"offered passphrase is the right one.  For security such passphrase\n"
+"recognisers usually do not themselves know the passphrase they are\n"
+"looking for; they can merely recognise it when they see it.  There are\n"
+"many schemes in use to achieve this effect and the intent of this\n"
+"class is to provide a consistent interface to them all.  In addition\n"
+"to the base class, this module also contains implementations of\n"
+"several specific passphrase schemes."
+msgstr ""
+
+#: gnu/packages/perl.scm:606
 msgid "Lexically disable autovivification"
 msgstr ""
 
-#: gnu/packages/perl.scm:413
+#: gnu/packages/perl.scm:607
 msgid ""
 "When an undefined variable is dereferenced, it gets silently\n"
 "upgraded to an array or hash reference (depending of the type of the\n"
@@ -14858,19 +17131,19 @@ msgid ""
 "error when it would have happened."
 msgstr ""
 
-#: gnu/packages/perl.scm:446
+#: gnu/packages/perl.scm:640
 msgid "Disables bareword filehandles"
 msgstr ""
 
-#: gnu/packages/perl.scm:447
+#: gnu/packages/perl.scm:641
 msgid "This module disables bareword filehandles."
 msgstr ""
 
-#: gnu/packages/perl.scm:467
+#: gnu/packages/perl.scm:661
 msgid "Open a browser in a given URL"
 msgstr ""
 
-#: gnu/packages/perl.scm:468
+#: gnu/packages/perl.scm:662
 msgid ""
 "The functions exported by this module allow you to open URLs\n"
 "in the user's browser.  A set of known commands per OS-name is tested for\n"
@@ -14878,29 +17151,29 @@ msgid ""
 "all known commands are checked."
 msgstr ""
 
-#: gnu/packages/perl.scm:493
+#: gnu/packages/perl.scm:687
 msgid "Execute code after a scope finished compilation"
 msgstr ""
 
-#: gnu/packages/perl.scm:494
+#: gnu/packages/perl.scm:688
 msgid ""
 "This module allows you to execute code when perl finished\n"
 "compiling the surrounding scope."
 msgstr ""
 
-#: gnu/packages/perl.scm:515
+#: gnu/packages/perl.scm:709
 msgid "Wrap OP check callbacks"
 msgstr ""
 
-#: gnu/packages/perl.scm:516
+#: gnu/packages/perl.scm:710
 msgid "This module allows you to wrap OP check callbacks."
 msgstr ""
 
-#: gnu/packages/perl.scm:532
+#: gnu/packages/perl.scm:726
 msgid "Lists of reserved barewords and symbol names"
 msgstr ""
 
-#: gnu/packages/perl.scm:533
+#: gnu/packages/perl.scm:727
 msgid ""
 "@code{B::Keywords} supplies several arrays of exportable\n"
 "keywords: @code{@@Scalars, @@Arrays, @@Hashes, @@Filehandles, @@Symbols,\n"
@@ -14908,11 +17181,11 @@ msgid ""
 "@@ExporterSymbols}."
 msgstr ""
 
-#: gnu/packages/perl.scm:556
+#: gnu/packages/perl.scm:750
 msgid "Benchmarking with statistical confidence"
 msgstr ""
 
-#: gnu/packages/perl.scm:558
+#: gnu/packages/perl.scm:752
 msgid ""
 "The Benchmark::Timer class allows you to time portions of code\n"
 "conveniently, as well as benchmark code by allowing timings of repeated\n"
@@ -14921,11 +17194,11 @@ msgid ""
 "but don't want to go all out and profile your code."
 msgstr ""
 
-#: gnu/packages/perl.scm:582
+#: gnu/packages/perl.scm:776
 msgid "Bit vector library"
 msgstr ""
 
-#: gnu/packages/perl.scm:583
+#: gnu/packages/perl.scm:777
 msgid ""
 "Bit::Vector is an efficient C library which allows you to\n"
 "handle bit vectors, sets (of integers), \"big integer arithmetic\" and boolean\n"
@@ -14935,62 +17208,62 @@ msgid ""
 "library can nevertheless be used stand-alone, without Perl."
 msgstr ""
 
-#: gnu/packages/perl.scm:604
+#: gnu/packages/perl.scm:798
 msgid "Boolean support for Perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:605
+#: gnu/packages/perl.scm:799
 msgid ""
 "This module provides basic Boolean support, by defining two\n"
 "special objects: true and false."
 msgstr ""
 
-#: gnu/packages/perl.scm:623
+#: gnu/packages/perl.scm:817
 msgid "Data files for Business::ISBN"
 msgstr ""
 
-#: gnu/packages/perl.scm:624
+#: gnu/packages/perl.scm:818
 msgid ""
 "This package provides a data pack for @code{Business::ISBN}.\n"
 "These data are generated from the RangeMessage.xml file provided by the ISBN\n"
 "Agency."
 msgstr ""
 
-#: gnu/packages/perl.scm:646
+#: gnu/packages/perl.scm:840
 msgid "Work with International Standard Book Numbers"
 msgstr ""
 
-#: gnu/packages/perl.scm:647
+#: gnu/packages/perl.scm:841
 msgid ""
 "This modules provides tools to deal with International\n"
 "Standard Book Numbers, including ISBN-10 and ISBN-13."
 msgstr ""
 
-#: gnu/packages/perl.scm:665
+#: gnu/packages/perl.scm:859
 msgid "Work with International Standard Serial Numbers"
 msgstr ""
 
-#: gnu/packages/perl.scm:666
+#: gnu/packages/perl.scm:860
 msgid ""
 "This modules provides tools to deal with International\n"
 "Standard Serial Numbers."
 msgstr ""
 
-#: gnu/packages/perl.scm:685
+#: gnu/packages/perl.scm:879
 msgid "Work with International Standard Music Numbers"
 msgstr ""
 
-#: gnu/packages/perl.scm:686
+#: gnu/packages/perl.scm:880
 msgid ""
 "This modules provides tools to deal with International\n"
 "Standard Music Numbers."
 msgstr ""
 
-#: gnu/packages/perl.scm:707
+#: gnu/packages/perl.scm:901
 msgid "Cache interface for Perl"
 msgstr "Interface de cache pour Perl"
 
-#: gnu/packages/perl.scm:708
+#: gnu/packages/perl.scm:902
 msgid ""
 "The Cache modules are designed to assist a developer in\n"
 "persisting data for a specified period of time.  Often these modules are used\n"
@@ -15001,11 +17274,11 @@ msgid ""
 "easy to use abstraction of the file system or shared memory."
 msgstr ""
 
-#: gnu/packages/perl.scm:730
+#: gnu/packages/perl.scm:924
 msgid "Shared memory interprocess cache via mmap"
 msgstr ""
 
-#: gnu/packages/perl.scm:731
+#: gnu/packages/perl.scm:925
 msgid ""
 "A shared memory cache through an mmap'ed file.  It's core is\n"
 "written in C for performance.  It uses fcntl locking to ensure multiple\n"
@@ -15013,11 +17286,11 @@ msgid ""
 "algorithm to keep the most used entries in the cache."
 msgstr ""
 
-#: gnu/packages/perl.scm:752
+#: gnu/packages/perl.scm:946
 msgid "Capture STDOUT and STDERR from Perl, XS or external programs"
 msgstr ""
 
-#: gnu/packages/perl.scm:754
+#: gnu/packages/perl.scm:948
 msgid ""
 "Capture::Tiny provides a simple, portable way to capture almost anything\n"
 "sent to STDOUT or STDERR, regardless of whether it comes from Perl, from XS\n"
@@ -15025,21 +17298,21 @@ msgid ""
 "is captured while being passed through to the original file handles."
 msgstr ""
 
-#: gnu/packages/perl.scm:773
+#: gnu/packages/perl.scm:967
 msgid "Check compatibility with the installed perl version"
 msgstr ""
 
-#: gnu/packages/perl.scm:775
+#: gnu/packages/perl.scm:969
 msgid ""
 "This module is used by Schmorp's modules during configuration stage\n"
 "to test the installed perl for compatibility with his modules."
 msgstr ""
 
-#: gnu/packages/perl.scm:793
+#: gnu/packages/perl.scm:987
 msgid "Alternative warn and die for modules"
 msgstr ""
 
-#: gnu/packages/perl.scm:794
+#: gnu/packages/perl.scm:988
 msgid ""
 "The @code{Carp} routines are useful in your own modules\n"
 "because they act like @code{die()} or @code{warn()}, but with a message\n"
@@ -15051,42 +17324,42 @@ msgid ""
 "but it is a good educated guess."
 msgstr ""
 
-#: gnu/packages/perl.scm:819
+#: gnu/packages/perl.scm:1013
 msgid "Warns and dies noisily with stack backtraces/"
 msgstr ""
 
-#: gnu/packages/perl.scm:820
+#: gnu/packages/perl.scm:1014
 msgid ""
 "This module is meant as a debugging aid.  It can be used to\n"
 "make a script complain loudly with stack backtraces when @code{warn()}-ing or\n"
 "@code{die()}ing."
 msgstr ""
 
-#: gnu/packages/perl.scm:839
+#: gnu/packages/perl.scm:1033
 msgid "Executable comments for Perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:840
+#: gnu/packages/perl.scm:1034
 msgid ""
 "Carp::Assert is intended for a purpose like the ANSI C\n"
 "library assert.h."
 msgstr ""
 
-#: gnu/packages/perl.scm:861
+#: gnu/packages/perl.scm:1055
 msgid "Convenience wrappers around Carp::Assert"
 msgstr ""
 
-#: gnu/packages/perl.scm:862
+#: gnu/packages/perl.scm:1056
 msgid ""
 "Carp::Assert::More is a set of handy assertion functions for\n"
 "Perl."
 msgstr ""
 
-#: gnu/packages/perl.scm:881
+#: gnu/packages/perl.scm:1075
 msgid "Report errors from a \"clan\" of modules"
 msgstr ""
 
-#: gnu/packages/perl.scm:882
+#: gnu/packages/perl.scm:1076
 msgid ""
 "This module allows errors from a clan (or family) of modules\n"
 "to appear to originate from the caller of the clan.  This is necessary in\n"
@@ -15094,39 +17367,39 @@ msgid ""
 "the Carp.pm module doesn't help."
 msgstr ""
 
-#: gnu/packages/perl.scm:902
+#: gnu/packages/perl.scm:1096
 msgid "Read the CDDB entry for an audio CD in your drive"
 msgstr ""
 
-#: gnu/packages/perl.scm:903
+#: gnu/packages/perl.scm:1097
 msgid "This module can retrieve information from the CDDB."
 msgstr ""
 
-#: gnu/packages/perl.scm:996
+#: gnu/packages/perl.scm:1190
 msgid "Generation of circularly composited renditions"
 msgstr ""
 
-#: gnu/packages/perl.scm:998
+#: gnu/packages/perl.scm:1192
 msgid ""
 "Circos is a program for the generation of publication-quality, circularly\n"
 "composited renditions of genomic data and related annotations."
 msgstr ""
 
-#: gnu/packages/perl.scm:1018
+#: gnu/packages/perl.scm:1212
 msgid "Automated accessor generation"
 msgstr ""
 
-#: gnu/packages/perl.scm:1019
+#: gnu/packages/perl.scm:1213
 msgid ""
 "This module automagically generates accessors/mutators for\n"
 "your class."
 msgstr ""
 
-#: gnu/packages/perl.scm:1041
+#: gnu/packages/perl.scm:1235
 msgid "Faster, but less expandable, chained accessors"
 msgstr ""
 
-#: gnu/packages/perl.scm:1042
+#: gnu/packages/perl.scm:1236
 msgid ""
 "A chained accessor is one that always returns the object\n"
 "when called with parameters (to set), and the value of the field when called\n"
@@ -15134,52 +17407,52 @@ msgid ""
 "the same mk_accessors interface."
 msgstr ""
 
-#: gnu/packages/perl.scm:1068
+#: gnu/packages/perl.scm:1262
 msgid "Build groups of accessors"
 msgstr ""
 
-#: gnu/packages/perl.scm:1069
+#: gnu/packages/perl.scm:1263
 msgid ""
 "This class lets you build groups of accessors that will call\n"
 "different getters and setters."
 msgstr ""
 
-#: gnu/packages/perl.scm:1088
+#: gnu/packages/perl.scm:1282
 msgid "Pragma to use the C3 method resolution order algorithm"
 msgstr ""
 
-#: gnu/packages/perl.scm:1089
+#: gnu/packages/perl.scm:1283
 msgid ""
 "This is pragma to change Perl 5's standard method resolution\n"
 "order from depth-first left-to-right (a.k.a - pre-order) to the more\n"
 "sophisticated C3 method resolution order."
 msgstr ""
 
-#: gnu/packages/perl.scm:1114
+#: gnu/packages/perl.scm:1308
 msgid "Drop-in replacement for NEXT"
 msgstr ""
 
-#: gnu/packages/perl.scm:1115
+#: gnu/packages/perl.scm:1309
 msgid ""
 "This module is intended as a drop-in replacement for NEXT,\n"
 "supporting the same interface, but using Class::C3 to do the hard work."
 msgstr ""
 
-#: gnu/packages/perl.scm:1139
+#: gnu/packages/perl.scm:1333
 msgid "Load mix-ins or components to your C3-based class"
 msgstr ""
 
-#: gnu/packages/perl.scm:1140
+#: gnu/packages/perl.scm:1334
 msgid ""
 "This module will inject base classes to your module using\n"
 "the Class::C3 method resolution order."
 msgstr ""
 
-#: gnu/packages/perl.scm:1158
+#: gnu/packages/perl.scm:1352
 msgid "Inheritable, overridable class data"
 msgstr ""
 
-#: gnu/packages/perl.scm:1159
+#: gnu/packages/perl.scm:1353
 msgid ""
 "Class::Data::Inheritable is for creating accessor/mutators\n"
 "to class data.  That is, if you want to store something about your class as a\n"
@@ -15187,21 +17460,21 @@ msgid ""
 "subclasses and can be overridden."
 msgstr ""
 
-#: gnu/packages/perl.scm:1179
+#: gnu/packages/perl.scm:1373
 msgid "Class for easy date and time manipulation"
 msgstr ""
 
-#: gnu/packages/perl.scm:1180
+#: gnu/packages/perl.scm:1374
 msgid ""
 "This module provides a general-purpose date and datetime\n"
 "type for perl."
 msgstr ""
 
-#: gnu/packages/perl.scm:1197
+#: gnu/packages/perl.scm:1391
 msgid "Base class for error handling"
 msgstr ""
 
-#: gnu/packages/perl.scm:1199
+#: gnu/packages/perl.scm:1393
 msgid ""
 "@code{Class::ErrorHandler} provides an error-handling mechanism that is generic\n"
 "enough to be used as the base class for a variety of OO classes.  Subclasses inherit\n"
@@ -15209,60 +17482,60 @@ msgid ""
 "to the calling program."
 msgstr ""
 
-#: gnu/packages/perl.scm:1220
+#: gnu/packages/perl.scm:1414
 msgid "Utility methods for factory classes"
 msgstr ""
 
-#: gnu/packages/perl.scm:1221
+#: gnu/packages/perl.scm:1415
 msgid "This module exports methods useful for factory classes."
 msgstr ""
 
-#: gnu/packages/perl.scm:1238
+#: gnu/packages/perl.scm:1432
 msgid "Get information about a class and its structure"
 msgstr ""
 
-#: gnu/packages/perl.scm:1239
+#: gnu/packages/perl.scm:1433
 msgid ""
 "Class::Inspector allows you to get information about a\n"
 "loaded class."
 msgstr ""
 
-#: gnu/packages/perl.scm:1267
+#: gnu/packages/perl.scm:1461
 msgid "Working (require \"Class::Name\") and more"
 msgstr ""
 
-#: gnu/packages/perl.scm:1268
+#: gnu/packages/perl.scm:1462
 msgid ""
 "\"require EXPR\" only accepts Class/Name.pm style module\n"
 "names, not Class::Name.  For that, this module provides \"load_class\n"
 "'Class::Name'\"."
 msgstr ""
 
-#: gnu/packages/perl.scm:1292
+#: gnu/packages/perl.scm:1486
 msgid "XS implementation of parts of Class::Load"
 msgstr ""
 
-#: gnu/packages/perl.scm:1293
+#: gnu/packages/perl.scm:1487
 msgid ""
 "This module provides an XS implementation for portions of\n"
 "Class::Load."
 msgstr ""
 
-#: gnu/packages/perl.scm:1312
+#: gnu/packages/perl.scm:1506
 msgid "Create generic methods for OO Perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:1313
+#: gnu/packages/perl.scm:1507
 msgid ""
 "This module solves the problem of having to continually\n"
 "write accessor methods for your objects that perform standard tasks."
 msgstr ""
 
-#: gnu/packages/perl.scm:1333
+#: gnu/packages/perl.scm:1527
 msgid "Moose-like method modifiers"
 msgstr ""
 
-#: gnu/packages/perl.scm:1334
+#: gnu/packages/perl.scm:1528
 msgid ""
 "Class::Method::Modifiers provides three modifiers:\n"
 "@code{before}, @code{around}, and @code{after}.  @code{before} and @code{after}\n"
@@ -15271,11 +17544,11 @@ msgid ""
 "with a hook to easily call that original method."
 msgstr ""
 
-#: gnu/packages/perl.scm:1362
+#: gnu/packages/perl.scm:1556
 msgid "Dynamic class mixing"
 msgstr ""
 
-#: gnu/packages/perl.scm:1363
+#: gnu/packages/perl.scm:1557
 msgid ""
 "The @code{mix_class} function provided by this\n"
 "module dynamically generates anonymous classes with specified\n"
@@ -15283,42 +17556,42 @@ msgid ""
 "a mixin in order to become instantiable."
 msgstr ""
 
-#: gnu/packages/perl.scm:1383
+#: gnu/packages/perl.scm:1577
 msgid "Implementation of a singleton class for Perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:1384
+#: gnu/packages/perl.scm:1578
 msgid ""
 "This module implements a Singleton class from which other\n"
 "classes can be derived.  By itself, the Class::Singleton module does very\n"
 "little other than manage the instantiation of a single object."
 msgstr ""
 
-#: gnu/packages/perl.scm:1403
+#: gnu/packages/perl.scm:1597
 msgid "Minimalist class construction"
 msgstr ""
 
-#: gnu/packages/perl.scm:1404
+#: gnu/packages/perl.scm:1598
 msgid ""
 "This module offers a minimalist class construction kit.  It\n"
 "uses no non-core modules for any recent Perl."
 msgstr ""
 
-#: gnu/packages/perl.scm:1425
+#: gnu/packages/perl.scm:1619
 msgid "Unload a class"
 msgstr ""
 
-#: gnu/packages/perl.scm:1426
+#: gnu/packages/perl.scm:1620
 msgid ""
 "Class:Unload unloads a given class by clearing out its\n"
 "symbol table and removing it from %INC."
 msgstr ""
 
-#: gnu/packages/perl.scm:1444
+#: gnu/packages/perl.scm:1638
 msgid "Generate fast XS accessors without runtime compilation"
 msgstr ""
 
-#: gnu/packages/perl.scm:1445
+#: gnu/packages/perl.scm:1639
 msgid ""
 "Class::XSAccessor implements fast read, write, and\n"
 "read/write accessors in XS.  Additionally, it can provide predicates such as\n"
@@ -15328,29 +17601,29 @@ msgid ""
 "arrays for their internal representation."
 msgstr ""
 
-#: gnu/packages/perl.scm:1465 gnu/packages/perl.scm:1513
+#: gnu/packages/perl.scm:1659 gnu/packages/perl.scm:1707
 msgid "Recursively copy Perl datatypes"
 msgstr ""
 
-#: gnu/packages/perl.scm:1467
+#: gnu/packages/perl.scm:1661
 msgid ""
 "This module provides a clone() method which makes recursive copies of\n"
 "nested hash, array, scalar and reference types, including tied variables and\n"
 "objects."
 msgstr ""
 
-#: gnu/packages/perl.scm:1493
+#: gnu/packages/perl.scm:1687
 msgid "Choose appropriate Perl @code{clone} utility"
 msgstr ""
 
-#: gnu/packages/perl.scm:1494
+#: gnu/packages/perl.scm:1688
 msgid ""
 "This @code{Clone::Choose} module checks several different\n"
 "modules which provide a @code{clone()} function and selects an appropriate\n"
 "one."
 msgstr ""
 
-#: gnu/packages/perl.scm:1514
+#: gnu/packages/perl.scm:1708
 msgid ""
 "This module provides a general-purpose @code{clone} function\n"
 "to make deep copies of Perl data structures.  It calls itself recursively to\n"
@@ -15358,21 +17631,21 @@ msgid ""
 "and objects."
 msgstr ""
 
-#: gnu/packages/perl.scm:1534
+#: gnu/packages/perl.scm:1728
 msgid "Sane defaults for Perl programs"
 msgstr ""
 
-#: gnu/packages/perl.scm:1535
+#: gnu/packages/perl.scm:1729
 msgid ""
 "This module implements some sane defaults for Perl programs,\n"
 "as defined by two typical specimens of Perl coders."
 msgstr ""
 
-#: gnu/packages/perl.scm:1559
+#: gnu/packages/perl.scm:1753
 msgid "Perl extension for libconfig"
 msgstr "Extension Perl pour libconfig"
 
-#: gnu/packages/perl.scm:1561
+#: gnu/packages/perl.scm:1755
 msgid ""
 "Conf::Libconfig is a Perl interface to the libconfig configuration file\n"
 "library.  It support scalar, array, and hash data structures just like its C/C++\n"
@@ -15381,54 +17654,54 @@ msgid ""
 "languages."
 msgstr ""
 
-#: gnu/packages/perl.scm:1581
+#: gnu/packages/perl.scm:1775
 msgid "Grammar-based config parser"
 msgstr ""
 
-#: gnu/packages/perl.scm:1583
+#: gnu/packages/perl.scm:1777
 msgid ""
 "Config::Grammar is a module to parse configuration files.  The\n"
 "configuration may consist of multiple-level sections with assignments and\n"
 "tabular data."
 msgstr ""
 
-#: gnu/packages/perl.scm:1604
+#: gnu/packages/perl.scm:1798
 msgid "Load configuration from different file formats"
 msgstr ""
 
-#: gnu/packages/perl.scm:1605
+#: gnu/packages/perl.scm:1799
 msgid ""
 "Config::Any provides a facility for Perl applications and\n"
 "libraries to load configuration data from multiple different file formats.  It\n"
 "supports XML, YAML, JSON, Apache-style configuration, and Perl code."
 msgstr ""
 
-#: gnu/packages/perl.scm:1626
+#: gnu/packages/perl.scm:1820
 msgid "Package for configuration files outside your Perl script"
 msgstr ""
 
-#: gnu/packages/perl.scm:1627
+#: gnu/packages/perl.scm:1821
 msgid ""
 "This package provides a way to have readable configuration\n"
 "files outside your Perl script.  Configurations can be imported, sections\n"
 "can be grouped, and settings can be accessed from a tied hash."
 msgstr ""
 
-#: gnu/packages/perl.scm:1648
+#: gnu/packages/perl.scm:1842
 msgid "Module to implement some AutoConf macros in Perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:1649
+#: gnu/packages/perl.scm:1843
 msgid ""
 "Config::AutoConf is intended to provide the same\n"
 "opportunities to Perl developers as GNU Autoconf does for Shell developers."
 msgstr ""
 
-#: gnu/packages/perl.scm:1666
+#: gnu/packages/perl.scm:1860
 msgid "Generic Config Module"
 msgstr ""
 
-#: gnu/packages/perl.scm:1667
+#: gnu/packages/perl.scm:1861
 msgid ""
 "This module opens a config file and parses its contents for\n"
 "you.  The format of config files supported by Config::General is inspired by\n"
@@ -15439,94 +17712,119 @@ msgid ""
 "options."
 msgstr ""
 
-#: gnu/packages/perl.scm:1697
+#: gnu/packages/perl.scm:1891
 msgid "Parse Git style configuration files"
 msgstr ""
 
-#: gnu/packages/perl.scm:1699
+#: gnu/packages/perl.scm:1893
 msgid ""
 "This module handles parsing, modifying and creating configuration files\n"
 "of the style used by the Git version control system."
 msgstr ""
 
-#: gnu/packages/perl.scm:1721
+#: gnu/packages/perl.scm:1915
 msgid "Simple .ini-file format reader and writer"
 msgstr ""
 
-#: gnu/packages/perl.scm:1722
+#: gnu/packages/perl.scm:1916
 msgid ""
 "@code{Config::INI} is a module that facilates the reading\n"
 "and writing of @code{.ini}-style configuration files."
 msgstr ""
 
-#: gnu/packages/perl.scm:1743
+#: gnu/packages/perl.scm:1937
 msgid "Preserve context during subroutine call"
 msgstr ""
 
-#: gnu/packages/perl.scm:1744
+#: gnu/packages/perl.scm:1938
 msgid ""
 "This module runs code after a subroutine call, preserving\n"
 "the context the subroutine would have seen if it were the last statement in\n"
 "the caller."
 msgstr ""
 
-#: gnu/packages/perl.scm:1769
+#: gnu/packages/perl.scm:1963
 msgid "Extract data from Macintosh BinHex files"
 msgstr ""
 
-#: gnu/packages/perl.scm:1771
+#: gnu/packages/perl.scm:1965
 msgid ""
 "BinHex is a format for transporting files safely through electronic\n"
-"mail, as short-lined, 7-bit, semi-compressed data streams.  Ths module\n"
+"mail, as short-lined, 7-bit, semi-compressed data streams.  This module\n"
 "provides a means of converting those data streams back into into binary\n"
 "data."
 msgstr ""
 
-#: gnu/packages/perl.scm:1792
+#: gnu/packages/perl.scm:1986
 msgid "Read and write @file{Changes} files"
 msgstr ""
 
-#: gnu/packages/perl.scm:1794
+#: gnu/packages/perl.scm:1988
 msgid ""
 "@code{CPAN::Changes} helps users programmatically read and write\n"
 "@file{Changes} files that conform to a common specification."
 msgstr ""
 
-#: gnu/packages/perl.scm:1814
+#: gnu/packages/perl.scm:2008
 msgid "Extract the name and version from a distribution filename"
 msgstr ""
 
-#: gnu/packages/perl.scm:1816
+#: gnu/packages/perl.scm:2010
 msgid ""
 "@code{CPAN::DistnameInfo} uses heuristics to extract the distribution\n"
 "name and version from filenames."
 msgstr ""
 
-#: gnu/packages/perl.scm:1836
+#: gnu/packages/perl.scm:2030
 msgid "Verify requirements in a CPAN::Meta object"
 msgstr ""
 
-#: gnu/packages/perl.scm:1837
+#: gnu/packages/perl.scm:2031
 msgid ""
 "This module verifies if requirements described in a\n"
 "CPAN::Meta object are present."
 msgstr ""
 
-#: gnu/packages/perl.scm:1856
+#: gnu/packages/perl.scm:2050
 msgid "JSON::XS for Cpanel"
 msgstr ""
 
-#: gnu/packages/perl.scm:1857 gnu/packages/perl.scm:5196
+#: gnu/packages/perl.scm:2051 gnu/packages/perl.scm:5600
 msgid ""
 "This module converts Perl data structures to JSON and vice\n"
 "versa."
 msgstr ""
 
-#: gnu/packages/perl.scm:1882
+#: gnu/packages/perl.scm:2072
+msgid "Encrypt Data with Cipher Block Chaining Mode"
+msgstr ""
+
+#: gnu/packages/perl.scm:2073
+msgid ""
+"@code{Crypt::CBC} is a Perl-only implementation of\n"
+"the cryptographic Cipher Block Chaining (CBC) mode.  In combination\n"
+"with a block cipher such as @code{Crypt::Rijndael} you can encrypt and\n"
+"decrypt messages of arbitrarily long length.  The encrypted messages\n"
+"are compatible with the encryption format used by SSLeay."
+msgstr ""
+
+#: gnu/packages/perl.scm:2097
+msgid "DES encryption module"
+msgstr ""
+
+#: gnu/packages/perl.scm:2098
+msgid ""
+"@code{Crypt::DES} is an XS-based implementation of\n"
+"the DES cryptography algorithm.  The module implements the\n"
+"@code{Crypt::CBC} interface which has blocksize, keysize, encrypt and\n"
+"decrypt functions."
+msgstr ""
+
+#: gnu/packages/perl.scm:2125
 msgid "The Eksblowfish block cipher"
 msgstr ""
 
-#: gnu/packages/perl.scm:1883
+#: gnu/packages/perl.scm:2126
 msgid ""
 "Eksblowfish is a variant of the Blowfish cipher,\n"
 "modified to make the key setup very expensive.  This doesn't make it\n"
@@ -15540,11 +17838,35 @@ msgid ""
 "password hashing algorithm based on Eksblowfish."
 msgstr ""
 
-#: gnu/packages/perl.scm:1909
+#: gnu/packages/perl.scm:2158
+msgid "Emulate the MySQL PASSWORD() function"
+msgstr ""
+
+#: gnu/packages/perl.scm:2159
+msgid ""
+"@code{Crypt::MySQL} emulates the MySQL PASSWORD()\n"
+"function.  The module does not depend on an interface to the MySQL\n"
+"database server.  This enables the comparison of encrypted passwords\n"
+"without the need for a real MySQL environment."
+msgstr ""
+
+#: gnu/packages/perl.scm:2182
+msgid "Interoperable MD5-based crypt() functions"
+msgstr ""
+
+#: gnu/packages/perl.scm:2183
+msgid ""
+"@code{Crypt::PasswdMD5} provides various\n"
+"crypt()-compatible interfaces to the MD5-based crypt() function found\n"
+"in various *nixes.  It is based on the implementation found on FreeBSD\n"
+"2.2.[56]-RELEASE."
+msgstr ""
+
+#: gnu/packages/perl.scm:2203
 msgid "Random password generator"
 msgstr ""
 
-#: gnu/packages/perl.scm:1910
+#: gnu/packages/perl.scm:2204
 msgid ""
 "Crypt::RandPasswd provides three functions that can be used\n"
 "to generate random passwords, constructed from words, letters, or characters.\n"
@@ -15555,11 +17877,11 @@ msgid ""
 "Password Generator\"."
 msgstr ""
 
-#: gnu/packages/perl.scm:1934
+#: gnu/packages/perl.scm:2227
 msgid "Crypt::CBC compliant Rijndael encryption module"
 msgstr ""
 
-#: gnu/packages/perl.scm:1935
+#: gnu/packages/perl.scm:2228
 msgid ""
 "This module implements the Rijndael cipher which has\n"
 "been selected as the Advanced Encryption Standard.  The keysize for\n"
@@ -15575,40 +17897,52 @@ msgid ""
 "@end itemize"
 msgstr ""
 
-#: gnu/packages/perl.scm:1965
+#: gnu/packages/perl.scm:2258
 msgid "Perl implementation of the RC4 encryption algorithm"
 msgstr ""
 
-#: gnu/packages/perl.scm:1966
+#: gnu/packages/perl.scm:2259
 msgid "A pure Perl implementation of the RC4 algorithm."
 msgstr ""
 
-#: gnu/packages/perl.scm:1985
+#: gnu/packages/perl.scm:2277
+msgid "XS interface for a portable traditional crypt function"
+msgstr ""
+
+#: gnu/packages/perl.scm:2278
+msgid ""
+"@code{Crypt::UnixCrypt_XS} implements the DES-based\n"
+"Unix @code{crypt} function.  For those who need to construct\n"
+"non-standard variants of @code{crypt}, the various building blocks\n"
+"used in @code{crypt} are also supplied separately."
+msgstr ""
+
+#: gnu/packages/perl.scm:2301
 msgid "Temporarily change working directory"
 msgstr ""
 
-#: gnu/packages/perl.scm:1987
+#: gnu/packages/perl.scm:2303
 msgid ""
 "@code{Cwd::Guard} changes the current directory using a limited scope.\n"
 "It returns to the previous working directory when the object is destroyed."
 msgstr ""
 
-#: gnu/packages/perl.scm:2024
+#: gnu/packages/perl.scm:2340
 msgid "Library for genomic analysis"
 msgstr "Bibliothèque d'analyse génomique"
 
-#: gnu/packages/perl.scm:2025
+#: gnu/packages/perl.scm:2341
 msgid ""
 "Chaolin Zhang's Perl Library (czplib) contains assorted\n"
 "functions and data structures for processing and analysing genomic and\n"
 "bioinformatics data."
 msgstr ""
 
-#: gnu/packages/perl.scm:2054 gnu/packages/perl.scm:2333
+#: gnu/packages/perl.scm:2370 gnu/packages/perl.scm:2649
 msgid "Base classes wrapping fundamental Perl data types"
 msgstr ""
 
-#: gnu/packages/perl.scm:2055
+#: gnu/packages/perl.scm:2371
 msgid ""
 "Collection of classes that wrap fundamental data types that\n"
 "exist in Perl.  These classes and methods as they exist today are an attempt\n"
@@ -15617,21 +17951,21 @@ msgid ""
 "input."
 msgstr ""
 
-#: gnu/packages/perl.scm:2078
+#: gnu/packages/perl.scm:2394
 msgid "Compare Perl data structures"
 msgstr ""
 
-#: gnu/packages/perl.scm:2079
+#: gnu/packages/perl.scm:2395
 msgid ""
 "This module compares arbitrary data structures to see if\n"
 "they are copies of each other."
 msgstr ""
 
-#: gnu/packages/perl.scm:2107
+#: gnu/packages/perl.scm:2423
 msgid "Entropy (randomness) management"
 msgstr ""
 
-#: gnu/packages/perl.scm:2108
+#: gnu/packages/perl.scm:2424
 msgid ""
 "@code{Data::Entropy} provides modules relating to\n"
 "the generation and use of entropy.  The Data::Entropy::Source class\n"
@@ -15646,11 +17980,11 @@ msgid ""
 "functions to shuffle arrays."
 msgstr ""
 
-#: gnu/packages/perl.scm:2140
+#: gnu/packages/perl.scm:2456
 msgid "Details of the native integer data type"
 msgstr ""
 
-#: gnu/packages/perl.scm:2141
+#: gnu/packages/perl.scm:2457
 msgid ""
 "This module is about the native integer numerical\n"
 "data type.  A native integer is one of the types of datum that can\n"
@@ -15659,33 +17993,33 @@ msgid ""
 "unsigned representations are handled."
 msgstr ""
 
-#: gnu/packages/perl.scm:2162
+#: gnu/packages/perl.scm:2478
 msgid "Perl extension for generating unique identifiers"
 msgstr ""
 
-#: gnu/packages/perl.scm:2163
+#: gnu/packages/perl.scm:2479
 msgid ""
 "@code{Data::Uniqid} provides three simple routines for\n"
 "generating unique ids.  These ids are coded with a Base62 system to make them\n"
 "short and handy (e.g. to use it as part of a URL)."
 msgstr ""
 
-#: gnu/packages/perl.scm:2182
+#: gnu/packages/perl.scm:2498
 msgid "Pretty printing of data structures"
 msgstr ""
 
-#: gnu/packages/perl.scm:2183
+#: gnu/packages/perl.scm:2499
 msgid ""
 "This module provide functions that takes a list of values as\n"
 "their argument and produces a string as its result.  The string contains Perl\n"
 "code that, when \"eval\"ed, produces a deep copy of the original arguments."
 msgstr ""
 
-#: gnu/packages/perl.scm:2202
+#: gnu/packages/perl.scm:2518
 msgid "Convert data structures to strings"
 msgstr ""
 
-#: gnu/packages/perl.scm:2203
+#: gnu/packages/perl.scm:2519
 msgid ""
 "Given a list of scalars or reference variables,\n"
 "@code{Data::Dumper} writes out their contents in Perl syntax.  The references\n"
@@ -15693,21 +18027,21 @@ msgid ""
 "statement.  It handles self-referential structures correctly."
 msgstr ""
 
-#: gnu/packages/perl.scm:2223
+#: gnu/packages/perl.scm:2539
 msgid "Concise data dumper"
 msgstr ""
 
-#: gnu/packages/perl.scm:2224
+#: gnu/packages/perl.scm:2540
 msgid ""
 "Data::Dumper::Concise provides a dumper with Less\n"
 "indentation and newlines plus sub deparsing."
 msgstr ""
 
-#: gnu/packages/perl.scm:2247
+#: gnu/packages/perl.scm:2563
 msgid "Details of the floating point data type"
 msgstr ""
 
-#: gnu/packages/perl.scm:2248
+#: gnu/packages/perl.scm:2564
 msgid ""
 "@code{Data::Float} is about the native floating\n"
 "point numerical data type.  A floating point number is one of the\n"
@@ -15717,19 +18051,19 @@ msgid ""
 "point values at a low level."
 msgstr ""
 
-#: gnu/packages/perl.scm:2274
+#: gnu/packages/perl.scm:2590
 msgid "Parse and validate simple name/value option pairs"
 msgstr ""
 
-#: gnu/packages/perl.scm:2276
+#: gnu/packages/perl.scm:2592
 msgid "Data::OptList provides a simple syntax for name/value option pairs."
 msgstr ""
 
-#: gnu/packages/perl.scm:2297
+#: gnu/packages/perl.scm:2613
 msgid "Help when paging through sets of results"
 msgstr ""
 
-#: gnu/packages/perl.scm:2298
+#: gnu/packages/perl.scm:2614
 msgid ""
 "When searching through large amounts of data, it is often\n"
 "the case that a result set is returned that is larger than we want to display\n"
@@ -15737,7 +18071,7 @@ msgid ""
 "The maths behind this is unfortunately fiddly, hence this module."
 msgstr ""
 
-#: gnu/packages/perl.scm:2335
+#: gnu/packages/perl.scm:2651
 msgid ""
 "@code{Data::Perl} is a container class for the following classes:\n"
 "@itemize\n"
@@ -15751,21 +18085,21 @@ msgid ""
 "@end itemize"
 msgstr ""
 
-#: gnu/packages/perl.scm:2366
+#: gnu/packages/perl.scm:2682
 msgid "Colored pretty-print of Perl data structures and objects"
 msgstr ""
 
-#: gnu/packages/perl.scm:2367
+#: gnu/packages/perl.scm:2683
 msgid ""
 "Display Perl variables and objects on screen, properly\n"
 "formatted (to be inspected by a human)."
 msgstr ""
 
-#: gnu/packages/perl.scm:2390
+#: gnu/packages/perl.scm:2706
 msgid "Conditionally split data into records"
 msgstr ""
 
-#: gnu/packages/perl.scm:2391
+#: gnu/packages/perl.scm:2707
 msgid ""
 "This Perl module allows you to split data into records by\n"
 "not only specifying what you wish to split the data on, but also by specifying\n"
@@ -15774,21 +18108,31 @@ msgid ""
 "like split on newlines unless newlines are embedded in quotes."
 msgstr ""
 
-#: gnu/packages/perl.scm:2419
+#: gnu/packages/perl.scm:2735
 msgid "Read multiple hunks of data out of your DATA section"
 msgstr ""
 
-#: gnu/packages/perl.scm:2420
+#: gnu/packages/perl.scm:2736
 msgid ""
 "This package provides a Perl library to read multiple hunks\n"
 "of data out of your DATA section."
 msgstr ""
 
-#: gnu/packages/perl.scm:2440
+#: gnu/packages/perl.scm:2755
+msgid "Read data from __DATA__"
+msgstr ""
+
+#: gnu/packages/perl.scm:2757
+msgid ""
+"Data::Section::Simple is a simple module to extract data from __DATA__\n"
+"section of the file."
+msgstr ""
+
+#: gnu/packages/perl.scm:2777
 msgid "Structured tags datastructures"
 msgstr ""
 
-#: gnu/packages/perl.scm:2442
+#: gnu/packages/perl.scm:2779
 msgid ""
 "This module is for manipulating data as hierarchical tag/value\n"
 "pairs (Structured TAGs or Simple Tree AGgregates).  These datastructures can\n"
@@ -15796,11 +18140,11 @@ msgid ""
 "Perl."
 msgstr ""
 
-#: gnu/packages/perl.scm:2469
+#: gnu/packages/perl.scm:2806
 msgid "N at a time iteration API"
 msgstr ""
 
-#: gnu/packages/perl.scm:2470
+#: gnu/packages/perl.scm:2807
 msgid ""
 "This module tries to find middle ground between one at a\n"
 "time and all at once processing of data sets.  The purpose of this module is\n"
@@ -15809,21 +18153,21 @@ msgid ""
 "necessary later on."
 msgstr ""
 
-#: gnu/packages/perl.scm:2494
+#: gnu/packages/perl.scm:2831
 msgid "Dynamic generation of nested combinations of variants"
 msgstr ""
 
-#: gnu/packages/perl.scm:2495
+#: gnu/packages/perl.scm:2832
 msgid ""
 "Data::Tumbler - Dynamic generation of nested combinations of\n"
 "variants."
 msgstr ""
 
-#: gnu/packages/perl.scm:2521
+#: gnu/packages/perl.scm:2858
 msgid "Visitor style traversal of Perl data structures"
 msgstr ""
 
-#: gnu/packages/perl.scm:2522
+#: gnu/packages/perl.scm:2859
 msgid ""
 "This module is a simple visitor implementation for Perl\n"
 "values.  It has a main dispatcher method, visit, which takes a single perl\n"
@@ -15833,11 +18177,11 @@ msgid ""
 "structures, and all ref types (hashes, arrays, scalars, code, globs)."
 msgstr ""
 
-#: gnu/packages/perl.scm:2547
+#: gnu/packages/perl.scm:2884
 msgid "Gregorian calendar date calculations"
 msgstr ""
 
-#: gnu/packages/perl.scm:2548
+#: gnu/packages/perl.scm:2885
 msgid ""
 "This package consists of a Perl module for date calculations\n"
 "based on the Gregorian calendar, thereby complying with all relevant norms and\n"
@@ -15845,32 +18189,32 @@ msgid ""
 "applicable)."
 msgstr ""
 
-#: gnu/packages/perl.scm:2572
+#: gnu/packages/perl.scm:2909
 msgid "XS wrapper for Date::Calc"
 msgstr ""
 
-#: gnu/packages/perl.scm:2573
+#: gnu/packages/perl.scm:2910
 msgid ""
 "Date::Calc::XS is an XS wrapper and C library plug-in for\n"
 "Date::Calc."
 msgstr ""
 
-#: gnu/packages/perl.scm:2595
+#: gnu/packages/perl.scm:2932
 msgid "Date manipulation routines"
 msgstr ""
 
-#: gnu/packages/perl.scm:2596
+#: gnu/packages/perl.scm:2933
 msgid ""
 "Date::Manip is a series of modules for common date/time\n"
 "operations, such as comparing two times, determining a date a given amount of\n"
 "time from another, or parsing international times."
 msgstr ""
 
-#: gnu/packages/perl.scm:2615
+#: gnu/packages/perl.scm:2952
 msgid "Simple date handling"
 msgstr ""
 
-#: gnu/packages/perl.scm:2616
+#: gnu/packages/perl.scm:2953
 msgid ""
 "Dates are complex enough without times and timezones.  This\n"
 "module may be used to create simple date objects.  It handles validation,\n"
@@ -15878,22 +18222,22 @@ msgid ""
 "hours, minutes, seconds, and time zones."
 msgstr ""
 
-#: gnu/packages/perl.scm:2647
+#: gnu/packages/perl.scm:2984
 msgid "Date and time object for Perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:2648
+#: gnu/packages/perl.scm:2985
 msgid ""
 "DateTime is a class for the representation of date/time\n"
 "combinations.  It represents the Gregorian calendar, extended backwards in\n"
 "time before its creation (in 1582)."
 msgstr ""
 
-#: gnu/packages/perl.scm:2669
+#: gnu/packages/perl.scm:3006
 msgid "Dates in the Julian calendar"
 msgstr ""
 
-#: gnu/packages/perl.scm:2670
+#: gnu/packages/perl.scm:3007
 msgid ""
 "This package is a companion module to @code{DateTime.pm}.\n"
 "It implements the Julian calendar.  It supports everything that\n"
@@ -15901,11 +18245,11 @@ msgid ""
 "precise."
 msgstr ""
 
-#: gnu/packages/perl.scm:2696
+#: gnu/packages/perl.scm:3033
 msgid "DateTime set objects"
 msgstr ""
 
-#: gnu/packages/perl.scm:2697
+#: gnu/packages/perl.scm:3034
 msgid ""
 "The DateTime::Set module provides a date/time sets\n"
 "implementation.  It allows, for example, the generation of groups of dates,\n"
@@ -15913,21 +18257,21 @@ msgid ""
 "within a time range."
 msgstr ""
 
-#: gnu/packages/perl.scm:2720
+#: gnu/packages/perl.scm:3057
 msgid "DateTime rfc2445 recurrences"
 msgstr ""
 
-#: gnu/packages/perl.scm:2721
+#: gnu/packages/perl.scm:3058
 msgid ""
 "This module provides convenience methods that let you easily\n"
 "create DateTime::Set objects for RFC 2445 style recurrences."
 msgstr ""
 
-#: gnu/packages/perl.scm:2742
+#: gnu/packages/perl.scm:3079
 msgid "DateTime::Set extension for basic recurrences"
 msgstr ""
 
-#: gnu/packages/perl.scm:2743
+#: gnu/packages/perl.scm:3080
 msgid ""
 "This module provides convenience methods that let you easily\n"
 "create DateTime::Set objects for various recurrences, such as \"once a month\"\n"
@@ -15935,11 +18279,11 @@ msgid ""
 "\"every Monday, Wednesday and Thursday at 10:00 AM and 2:00 PM\"."
 msgstr ""
 
-#: gnu/packages/perl.scm:2768
+#: gnu/packages/perl.scm:3105
 msgid "Create DateTime parser classes and objects"
 msgstr ""
 
-#: gnu/packages/perl.scm:2769
+#: gnu/packages/perl.scm:3106
 msgid ""
 "DateTime::Format::Builder creates DateTime parsers.  Many\n"
 "string formats of dates and times are simple and just require a basic regular\n"
@@ -15947,43 +18291,53 @@ msgid ""
 "to do this without writing reams of structural code."
 msgstr ""
 
-#: gnu/packages/perl.scm:2798
+#: gnu/packages/perl.scm:3135
 msgid "Parse date and time strings"
 msgstr "Analyse des chaînes de date et temps"
 
-#: gnu/packages/perl.scm:2799
+#: gnu/packages/perl.scm:3136
 msgid ""
 "DateTime::Format::Flexible attempts to take any string you\n"
 "give it and parse it into a DateTime object."
 msgstr ""
 
-#: gnu/packages/perl.scm:2825
+#: gnu/packages/perl.scm:3162
 msgid "Parse and format iCal datetime and duration strings"
 msgstr ""
 
-#: gnu/packages/perl.scm:2826
+#: gnu/packages/perl.scm:3163
 msgid ""
 "This module understands the ICal date/time and duration\n"
 "formats, as defined in RFC 2445.  It can be used to parse these formats in\n"
 "order to create the appropriate objects."
 msgstr ""
 
-#: gnu/packages/perl.scm:2857
+#: gnu/packages/perl.scm:3191
+msgid "Parse ISO8601 date and time formats"
+msgstr "Analyse des chaînes de date et temps au format ISO8601"
+
+#: gnu/packages/perl.scm:3192
+msgid ""
+"@code{DateTime::Format::ISO8601} is a DateTime\n"
+"extension that parses almost all ISO8601 date and time formats."
+msgstr ""
+
+#: gnu/packages/perl.scm:3222
 msgid "Machine-readable date/time with natural parsing"
 msgstr ""
 
-#: gnu/packages/perl.scm:2858
+#: gnu/packages/perl.scm:3223
 msgid ""
 "DateTime::Format::Natural takes a string with a human\n"
 "readable date/time and creates a machine readable one by applying natural\n"
 "parsing logic."
 msgstr ""
 
-#: gnu/packages/perl.scm:2884
+#: gnu/packages/perl.scm:3249
 msgid "Parse and format strp and strf time patterns"
 msgstr ""
 
-#: gnu/packages/perl.scm:2885
+#: gnu/packages/perl.scm:3250
 msgid ""
 "This module implements most of `strptime(3)`, the POSIX\n"
 "function that is the reverse of `strftime(3)`, for `DateTime`.  While\n"
@@ -15991,21 +18345,21 @@ msgid ""
 "takes a string and a pattern and returns the `DateTime` object associated."
 msgstr ""
 
-#: gnu/packages/perl.scm:2918
+#: gnu/packages/perl.scm:3283
 msgid "Localization support for DateTime.pm"
 msgstr ""
 
-#: gnu/packages/perl.scm:2919
+#: gnu/packages/perl.scm:3284
 msgid ""
 "The DateTime::Locale modules provide localization data for\n"
 "the DateTime.pm class."
 msgstr ""
 
-#: gnu/packages/perl.scm:2960
+#: gnu/packages/perl.scm:3325
 msgid "Time zone object for Perl"
 msgstr "Objet de fuseau horaire pour Perl"
 
-#: gnu/packages/perl.scm:2961
+#: gnu/packages/perl.scm:3326
 msgid ""
 "This class is the base class for all time zone objects.  A\n"
 "time zone is represented internally as a set of observances, each of which\n"
@@ -16021,11 +18375,11 @@ msgstr ""
 "est l'objet DateTime et la plupart des utilisateurs n'aura pas besoin d'utiliser les\n"
 "méthodes DateTime::TimeZone directement."
 
-#: gnu/packages/perl.scm:2991
+#: gnu/packages/perl.scm:3356
 msgid "Parse date/time strings"
 msgstr "Analyse des chaînes de date et temps"
 
-#: gnu/packages/perl.scm:2992
+#: gnu/packages/perl.scm:3357
 msgid ""
 "DateTimeX::Easy uses a variety of DateTime::Format packages\n"
 "to create DateTime objects, with some custom tweaks to smooth out the rough\n"
@@ -16035,11 +18389,11 @@ msgstr ""
 "pour créer des objets DateTime, avec certains ajustements pour arrondir\n"
 "les angles (surtout dans la détection des fuseaux horaires et de leur sélection)."
 
-#: gnu/packages/perl.scm:3013
+#: gnu/packages/perl.scm:3378
 msgid "Convert between DateTime and RFC2822/822 formats"
 msgstr "Convertit entre les formats DateTime et RFC2822/822"
 
-#: gnu/packages/perl.scm:3014
+#: gnu/packages/perl.scm:3379
 msgid ""
 "RFCs 2822 and 822 specify date formats to be used by email.\n"
 "This module parses and emits such dates."
@@ -16047,11 +18401,11 @@ msgstr ""
 "Les RFC 2822 et 822 spécifient les formats de date utilisés par les\n"
 "courriels. Ce module analyse et émet ces dates."
 
-#: gnu/packages/perl.scm:3036
+#: gnu/packages/perl.scm:3401
 msgid "Parse and format W3CDTF datetime strings"
 msgstr "Analyse et formate les chaînes de date W3CDTF"
 
-#: gnu/packages/perl.scm:3038
+#: gnu/packages/perl.scm:3403
 msgid ""
 "This module understands the W3CDTF date/time format, an ISO 8601 profile,\n"
 "defined at https://www.w3.org/TR/NOTE-datetime.  This format is the native date\n"
@@ -16063,11 +18417,11 @@ msgstr ""
 "pour RSS 1.0.  Il peut être utilisé pour analyser ces formats pour créer les\n"
 "objets appropriés."
 
-#: gnu/packages/perl.scm:3066
+#: gnu/packages/perl.scm:3431
 msgid "Custom op checking attached to subroutines"
 msgstr ""
 
-#: gnu/packages/perl.scm:3067
+#: gnu/packages/perl.scm:3432
 msgid ""
 "This module makes some new features of the Perl\n"
 "5.14.0 C API available to XS modules running on older versions of\n"
@@ -16079,19 +18433,19 @@ msgid ""
 "functions available."
 msgstr ""
 
-#: gnu/packages/perl.scm:3093
+#: gnu/packages/perl.scm:3458
 msgid "Meatier version of caller"
 msgstr ""
 
-#: gnu/packages/perl.scm:3094
+#: gnu/packages/perl.scm:3459
 msgid "Devel::Caller provides meatier version of caller."
 msgstr ""
 
-#: gnu/packages/perl.scm:3112
+#: gnu/packages/perl.scm:3477
 msgid "Check that a command is available"
 msgstr "Vérifie qu'une commande est disponible"
 
-#: gnu/packages/perl.scm:3113
+#: gnu/packages/perl.scm:3478
 msgid ""
 "Devel::CheckBin is a perl module that checks whether a\n"
 "particular command is available."
@@ -16099,11 +18453,11 @@ msgstr ""
 "Devel::CheckBin est un module perl qui vérifie si une commande\n"
 "particulière est disponible."
 
-#: gnu/packages/perl.scm:3133
+#: gnu/packages/perl.scm:3498
 msgid "Check that a library is available"
 msgstr "Vérifie qu'une bibliothèque est disponible"
 
-#: gnu/packages/perl.scm:3135
+#: gnu/packages/perl.scm:3500
 msgid ""
 "@code{Devel::CheckLib} is a Perl module that checks whether a particular\n"
 "C library and its headers are available.  You can also check for the presence of\n"
@@ -16111,11 +18465,11 @@ msgid ""
 "particular results."
 msgstr ""
 
-#: gnu/packages/perl.scm:3156
+#: gnu/packages/perl.scm:3521
 msgid "Check compiler availability"
 msgstr "Vérifie la disponibilité d'un compilateur"
 
-#: gnu/packages/perl.scm:3157
+#: gnu/packages/perl.scm:3522
 msgid ""
 "@code{Devel::CheckCompiler} is a tiny module to check\n"
 "whether a compiler is available.  It can test for a C99 compiler, or\n"
@@ -16126,22 +18480,22 @@ msgstr ""
 "C99 ou vous pouvez lui dire de compiler un fichier source C avec des\n"
 "drapeaux de l'éditeur de liens particuliers."
 
-#: gnu/packages/perl.scm:3179
+#: gnu/packages/perl.scm:3544
 msgid "Find memory cycles in objects"
 msgstr ""
 
-#: gnu/packages/perl.scm:3181
+#: gnu/packages/perl.scm:3546
 msgid ""
 "@code{Devel::Cycle} This is a tool for finding circular references in\n"
 "objects and other types of references.  Because of Perl's reference-count\n"
 "based memory management, circular references will cause memory leaks."
 msgstr ""
 
-#: gnu/packages/perl.scm:3202
+#: gnu/packages/perl.scm:3567
 msgid "Provides equivalent of ${^GLOBAL_PHASE} eq 'DESTRUCT' for older perls"
 msgstr "Fournit un équivalent de ${^GLOBAL_PHASE} eq 'DESTRUCT' pour les perls plus vieux"
 
-#: gnu/packages/perl.scm:3203
+#: gnu/packages/perl.scm:3568
 msgid ""
 "Devel::GlobalDestruction provides a function returning the\n"
 "equivalent of \"$@{^GLOBAL_PHASE@} eq 'DESTRUCT'\" for older perls."
@@ -16149,63 +18503,63 @@ msgstr ""
 "Devel::GlobalDestruction fournit une fonction qui renvoie l'équivalent\n"
 "de « $@{^GLOBAL_PHASE@} eq 'DESTRUCT' » pour les vieux perls."
 
-#: gnu/packages/perl.scm:3223
+#: gnu/packages/perl.scm:3588
 msgid "Forces the unavailability of specified Perl modules (for testing)"
 msgstr ""
 
-#: gnu/packages/perl.scm:3224
+#: gnu/packages/perl.scm:3589
 msgid ""
 "Given a list of Perl modules/filenames, this module makes\n"
 "@code{require} and @code{use} statements fail (no matter whether the specified\n"
 "files/modules are installed or not)."
 msgstr ""
 
-#: gnu/packages/perl.scm:3243
+#: gnu/packages/perl.scm:3608
 msgid "Utility for looking for perl objects that are not reclaimed"
 msgstr ""
 
-#: gnu/packages/perl.scm:3245
+#: gnu/packages/perl.scm:3610
 msgid ""
 "This module provides a basic way to discover if a piece of perl code is\n"
 "allocating perl data and not releasing them again."
 msgstr ""
 
-#: gnu/packages/perl.scm:3265
+#: gnu/packages/perl.scm:3630
 msgid "Alias lexical variables"
 msgstr ""
 
-#: gnu/packages/perl.scm:3266
+#: gnu/packages/perl.scm:3631
 msgid ""
 "Devel::LexAlias provides the ability to alias a lexical\n"
 "variable in a subroutines scope to one of your choosing."
 msgstr ""
 
-#: gnu/packages/perl.scm:3290
+#: gnu/packages/perl.scm:3655
 msgid "Introspect overloaded operators"
 msgstr ""
 
-#: gnu/packages/perl.scm:3291
+#: gnu/packages/perl.scm:3656
 msgid ""
 "Devel::OverloadInfo returns information about overloaded\n"
 "operators for a given class (or object), including where in the inheritance\n"
 "hierarchy the overloads are declared and where the code implementing it is."
 msgstr ""
 
-#: gnu/packages/perl.scm:3318
+#: gnu/packages/perl.scm:3683
 msgid "Partial dumping of data structures"
 msgstr ""
 
-#: gnu/packages/perl.scm:3319
+#: gnu/packages/perl.scm:3684
 msgid ""
 "This module is a data dumper optimized for logging of\n"
 "arbitrary parameters."
 msgstr ""
 
-#: gnu/packages/perl.scm:3336
+#: gnu/packages/perl.scm:3701
 msgid "Object representing a stack trace"
 msgstr ""
 
-#: gnu/packages/perl.scm:3337
+#: gnu/packages/perl.scm:3702
 msgid ""
 "The Devel::StackTrace module contains two classes,\n"
 "Devel::StackTrace and Devel::StackTrace::Frame.  These objects encapsulate the\n"
@@ -16213,11 +18567,11 @@ msgid ""
 "providing a simple interface to this data."
 msgstr ""
 
-#: gnu/packages/perl.scm:3359
+#: gnu/packages/perl.scm:3724
 msgid "Displays stack trace in HTML"
 msgstr ""
 
-#: gnu/packages/perl.scm:3360
+#: gnu/packages/perl.scm:3725
 msgid ""
 "Devel::StackTrace::AsHTML adds as_html method to\n"
 "Devel::StackTrace which displays the stack trace in beautiful HTML, with code\n"
@@ -16226,40 +18580,53 @@ msgid ""
 "each stack frame."
 msgstr ""
 
-#: gnu/packages/perl.scm:3381
+#: gnu/packages/perl.scm:3746
 msgid "Dump symbol names or the symbol table"
 msgstr ""
 
-#: gnu/packages/perl.scm:3382
+#: gnu/packages/perl.scm:3747
 msgid "Devel::Symdump provides access to the perl symbol table."
 msgstr ""
 
-#: gnu/packages/perl.scm:3400
+#: gnu/packages/perl.scm:3765
 msgid "Generic CRC functions"
 msgstr ""
 
-#: gnu/packages/perl.scm:3401
+#: gnu/packages/perl.scm:3766
 msgid ""
 "The @code{Digest::CRC} module calculates CRC sums of\n"
 "all sorts.  It contains wrapper functions with the correct parameters\n"
 "for CRC-CCITT, CRC-16 and CRC-32."
 msgstr ""
 
-#: gnu/packages/perl.scm:3420
+#: gnu/packages/perl.scm:3785
 msgid "Keyed-Hashing for Message Authentication"
 msgstr ""
 
-#: gnu/packages/perl.scm:3421
+#: gnu/packages/perl.scm:3786
 msgid ""
 "The Digest::HMAC module follows the common Digest::\n"
 "interface for the RFC 2104 HMAC mechanism."
 msgstr ""
 
-#: gnu/packages/perl.scm:3447
+#: gnu/packages/perl.scm:3805
+msgid "Interface to the MD4 Algorithm"
+msgstr ""
+
+#: gnu/packages/perl.scm:3806
+msgid ""
+"The @code{Digest::MD4} module allows you to use the\n"
+"RSA Data Security Inc.@: MD4 Message Digest algorithm from within Perl\n"
+"programs.  The algorithm takes as input a message of arbitrary length\n"
+"and produces as output a 128-bit \"fingerprint\" or \"message digest\"\n"
+"of the input.  MD4 is described in RFC 1320."
+msgstr ""
+
+#: gnu/packages/perl.scm:3826
 msgid "Perl interface to the MD-5 algorithm"
 msgstr ""
 
-#: gnu/packages/perl.scm:3449
+#: gnu/packages/perl.scm:3828
 msgid ""
 "The @code{Digest::MD5} module allows you to use the MD5 Message Digest\n"
 "algorithm from within Perl programs.  The algorithm takes as\n"
@@ -16267,31 +18634,31 @@ msgid ""
 "128-bit \"fingerprint\" or \"message digest\" of the input."
 msgstr ""
 
-#: gnu/packages/perl.scm:3467
+#: gnu/packages/perl.scm:3846
 msgid "Perl implementation of the SHA-1 message digest algorithm"
 msgstr ""
 
-#: gnu/packages/perl.scm:3469
+#: gnu/packages/perl.scm:3848
 msgid ""
 "This package provides @code{Digest::SHA1}, an implementation of the NIST\n"
 "SHA-1 message digest algorithm for use by Perl programs."
 msgstr ""
 
-#: gnu/packages/perl.scm:3490
+#: gnu/packages/perl.scm:3869
 msgid "Declare version conflicts for your dist"
 msgstr ""
 
-#: gnu/packages/perl.scm:3491
+#: gnu/packages/perl.scm:3870
 msgid ""
 "This module allows you to specify conflicting versions of\n"
 "modules separately and deal with them after the module is done installing."
 msgstr ""
 
-#: gnu/packages/perl.scm:3514
+#: gnu/packages/perl.scm:3893
 msgid "Deconstructed dynamic C library loading"
 msgstr ""
 
-#: gnu/packages/perl.scm:3515
+#: gnu/packages/perl.scm:3894
 msgid ""
 "This module provides a function-based interface to\n"
 "dynamic loading as used by Perl.  Some details of dynamic loading are\n"
@@ -16299,21 +18666,21 @@ msgid ""
 "the programmer to be mindfulof the space of platform variations."
 msgstr ""
 
-#: gnu/packages/perl.scm:3537
+#: gnu/packages/perl.scm:3916
 msgid "Detect the encoding of data"
 msgstr ""
 
-#: gnu/packages/perl.scm:3538
+#: gnu/packages/perl.scm:3917
 msgid ""
 "This package provides a class @code{Encode::Detect} to detect\n"
 "the encoding of data."
 msgstr ""
 
-#: gnu/packages/perl.scm:3556
+#: gnu/packages/perl.scm:3935
 msgid "ASCII mapping for eucJP encoding"
 msgstr ""
 
-#: gnu/packages/perl.scm:3557
+#: gnu/packages/perl.scm:3936
 msgid ""
 "This package provides an ASCII mapping for the eucJP\n"
 "encoding."
@@ -16321,21 +18688,21 @@ msgstr ""
 "Ce paquet fournit une correspondance entre ASCII et l'encodage\n"
 "eucJP."
 
-#: gnu/packages/perl.scm:3575
+#: gnu/packages/perl.scm:3954
 msgid "JIS X 0212 (aka JIS 2000) encodings"
 msgstr ""
 
-#: gnu/packages/perl.scm:3576
+#: gnu/packages/perl.scm:3955
 msgid ""
 "This package provides encodings for JIS X 0212, which is\n"
 "also known as JIS 2000."
 msgstr ""
 
-#: gnu/packages/perl.scm:3599
+#: gnu/packages/perl.scm:3978
 msgid "Additional Chinese encodings"
 msgstr ""
 
-#: gnu/packages/perl.scm:3600
+#: gnu/packages/perl.scm:3979
 msgid ""
 "This Perl module provides Chinese encodings that are not\n"
 "part of Perl by default, including \"BIG5-1984\", \"BIG5-2003\", \"BIG5PLUS\",\n"
@@ -16343,11 +18710,11 @@ msgid ""
 "\"UNISYS\"."
 msgstr ""
 
-#: gnu/packages/perl.scm:3622
+#: gnu/packages/perl.scm:4001
 msgid "Advanced operations on path variables"
 msgstr ""
 
-#: gnu/packages/perl.scm:3623
+#: gnu/packages/perl.scm:4002
 msgid ""
 "@code{Env::Path} presents an object-oriented interface to\n"
 "path variables, defined as that subclass of environment variables which name\n"
@@ -16355,11 +18722,11 @@ msgid ""
 "separator."
 msgstr ""
 
-#: gnu/packages/perl.scm:3643
+#: gnu/packages/perl.scm:4022
 msgid "OO-ish Error/Exception handling for Perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:3644
+#: gnu/packages/perl.scm:4023
 msgid ""
 "The Error package provides two interfaces.  Firstly Error\n"
 "provides a procedural interface to exception handling.  Secondly Error is a\n"
@@ -16367,11 +18734,11 @@ msgid ""
 "catch, or can simply be recorded."
 msgstr ""
 
-#: gnu/packages/perl.scm:3669
+#: gnu/packages/perl.scm:4048
 msgid "Safely and cleanly create closures via string eval"
 msgstr ""
 
-#: gnu/packages/perl.scm:3670
+#: gnu/packages/perl.scm:4049
 msgid ""
 "String eval is often used for dynamic code generation.  For\n"
 "instance, Moose uses it heavily, to generate inlined versions of accessors and\n"
@@ -16385,32 +18752,32 @@ msgid ""
 "errors are rethrown automatically."
 msgstr ""
 
-#: gnu/packages/perl.scm:3699
+#: gnu/packages/perl.scm:4078
 msgid "Allows you to declare real exception classes in Perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:3700
+#: gnu/packages/perl.scm:4079
 msgid ""
 "Exception::Class allows you to declare exception hierarchies\n"
 "in your modules in a \"Java-esque\" manner."
 msgstr ""
 
-#: gnu/packages/perl.scm:3716
+#: gnu/packages/perl.scm:4095
 msgid "Lightweight exporting of functions and variables"
 msgstr ""
 
-#: gnu/packages/perl.scm:3718
+#: gnu/packages/perl.scm:4097
 msgid ""
 "Exporter::Lite is an alternative to Exporter, intended to provide a\n"
 "lightweight subset of the most commonly-used functionality.  It supports\n"
 "import(), @@EXPORT and @@EXPORT_OK and not a whole lot else."
 msgstr ""
 
-#: gnu/packages/perl.scm:3737
+#: gnu/packages/perl.scm:4116
 msgid "Exporter with the features of Sub::Exporter but only core dependencies"
 msgstr ""
 
-#: gnu/packages/perl.scm:3738
+#: gnu/packages/perl.scm:4117
 msgid ""
 "Exporter::Tiny supports many of Sub::Exporter's\n"
 "external-facing features including renaming imported functions with the `-as`,\n"
@@ -16419,42 +18786,42 @@ msgid ""
 "only about 40% as many lines of code and with zero non-core dependencies."
 msgstr ""
 
-#: gnu/packages/perl.scm:3761
+#: gnu/packages/perl.scm:4140
 msgid "Build.PL install path logic made easy"
 msgstr ""
 
-#: gnu/packages/perl.scm:3762
+#: gnu/packages/perl.scm:4141
 msgid ""
 "This module tries to make install path resolution as easy as\n"
 "possible."
 msgstr ""
 
-#: gnu/packages/perl.scm:3780
+#: gnu/packages/perl.scm:4159
 msgid "Wrapper for perl's configuration"
 msgstr ""
 
-#: gnu/packages/perl.scm:3781
+#: gnu/packages/perl.scm:4160
 msgid ""
 "ExtUtils::Config is an abstraction around the %Config hash.\n"
 "By itself it is not a particularly interesting module by any measure, however\n"
 "it ties together a family of modern toolchain modules."
 msgstr ""
 
-#: gnu/packages/perl.scm:3808
+#: gnu/packages/perl.scm:4187
 msgid "Tool for guessing C++ compiler and flags"
 msgstr ""
 
-#: gnu/packages/perl.scm:3809
+#: gnu/packages/perl.scm:4188
 msgid ""
 "ExtUtils::CppGuess attempts to guess the C++ compiler that\n"
 "is compatible with the C compiler used to build perl."
 msgstr ""
 
-#: gnu/packages/perl.scm:3828
+#: gnu/packages/perl.scm:4207
 msgid "Easily build XS extensions that depend on XS extensions"
 msgstr ""
 
-#: gnu/packages/perl.scm:3830
+#: gnu/packages/perl.scm:4209
 msgid ""
 "This module tries to make it easy to build Perl extensions that use\n"
 "functions and typemaps provided by other perl extensions.  This means that a\n"
@@ -16462,21 +18829,21 @@ msgid ""
 "XS interface besides the perl one."
 msgstr ""
 
-#: gnu/packages/perl.scm:3850
+#: gnu/packages/perl.scm:4229
 msgid "Various portability utilities for module builders"
 msgstr ""
 
-#: gnu/packages/perl.scm:3851
+#: gnu/packages/perl.scm:4230
 msgid ""
 "This module provides various portable helper functions for\n"
 "module building modules."
 msgstr ""
 
-#: gnu/packages/perl.scm:3871
+#: gnu/packages/perl.scm:4250
 msgid "Tool to build C libraries"
 msgstr ""
 
-#: gnu/packages/perl.scm:3872
+#: gnu/packages/perl.scm:4251
 msgid ""
 "Some Perl modules need to ship C libraries together with\n"
 "their Perl code.  Although there are mechanisms to compile and link (or glue)\n"
@@ -16484,22 +18851,22 @@ msgid ""
 "self-contained C libraries.  This module main goal is to help in that task."
 msgstr ""
 
-#: gnu/packages/perl.scm:3895
+#: gnu/packages/perl.scm:4274
 msgid "Module to convert Perl XS code into C code"
 msgstr ""
 
-#: gnu/packages/perl.scm:3896
+#: gnu/packages/perl.scm:4275
 msgid ""
 "The package contains the ExtUtils::ParseXS module to\n"
 "convert Perl XS code into C code, the ExtUtils::Typemaps module to\n"
 "handle Perl/XS typemap files, and their submodules."
 msgstr ""
 
-#: gnu/packages/perl.scm:3916
+#: gnu/packages/perl.scm:4295
 msgid "Simplistic interface to pkg-config"
 msgstr ""
 
-#: gnu/packages/perl.scm:3918
+#: gnu/packages/perl.scm:4297
 msgid ""
 "@code{ExtUtils::PkgConfig} is a very simplistic interface to the\n"
 "@command{pkg-config} utility, intended for use in the @file{Makefile.PL}\n"
@@ -16507,41 +18874,41 @@ msgid ""
 "It is really just boilerplate code that you would have written yourself."
 msgstr ""
 
-#: gnu/packages/perl.scm:3943
+#: gnu/packages/perl.scm:4322
 msgid "Set of useful typemaps"
 msgstr ""
 
-#: gnu/packages/perl.scm:3944
+#: gnu/packages/perl.scm:4323
 msgid ""
 "The package provides a number of useful typemaps as\n"
 "submodules of ExtUtils::Typemaps."
 msgstr ""
 
-#: gnu/packages/perl.scm:3969
+#: gnu/packages/perl.scm:4348
 msgid "XS for C++"
 msgstr ""
 
-#: gnu/packages/perl.scm:3970
+#: gnu/packages/perl.scm:4349
 msgid ""
 "This module implements the Perl foreign function\n"
 "interface XS for C++; it is a thin layer over plain XS."
 msgstr ""
 
-#: gnu/packages/perl.scm:4000
+#: gnu/packages/perl.scm:4379
 msgid "Watch for changes to files"
 msgstr ""
 
-#: gnu/packages/perl.scm:4001
+#: gnu/packages/perl.scm:4380
 msgid ""
 "This module provides a class to monitor a directory for\n"
 "changes made to any file."
 msgstr ""
 
-#: gnu/packages/perl.scm:4023
+#: gnu/packages/perl.scm:4402
 msgid "Get directories of configuration files"
 msgstr ""
 
-#: gnu/packages/perl.scm:4024
+#: gnu/packages/perl.scm:4403
 msgid ""
 "This module is a helper for installing, reading and finding\n"
 "configuration file locations.  @code{File::ConfigDir} is a module to help out\n"
@@ -16549,44 +18916,44 @@ msgid ""
 "configuration files from more than one location."
 msgstr ""
 
-#: gnu/packages/perl.scm:4044
+#: gnu/packages/perl.scm:4423
 msgid "Recursively copy files and directories"
 msgstr ""
 
-#: gnu/packages/perl.scm:4045
+#: gnu/packages/perl.scm:4424
 msgid ""
 "This module has 3 functions: one to copy files only, one to\n"
 "copy directories only, and one to do either depending on the argument's\n"
 "type."
 msgstr ""
 
-#: gnu/packages/perl.scm:4067
+#: gnu/packages/perl.scm:4446
 msgid "Alternative interface to File::Find"
 msgstr ""
 
-#: gnu/packages/perl.scm:4068
+#: gnu/packages/perl.scm:4447
 msgid ""
 "File::Find::Rule is a friendlier interface to File::Find.\n"
 "It allows you to build rules which specify the desired files and\n"
 "directories."
 msgstr ""
 
-#: gnu/packages/perl.scm:4091
+#: gnu/packages/perl.scm:4470
 msgid "Common rules for searching for Perl things"
 msgstr ""
 
-#: gnu/packages/perl.scm:4092
+#: gnu/packages/perl.scm:4471
 msgid ""
 "File::Find::Rule::Perl provides methods for finding various\n"
 "types Perl-related files, or replicating search queries run on a distribution\n"
 "in various parts of the CPAN ecosystem."
 msgstr ""
 
-#: gnu/packages/perl.scm:4113
+#: gnu/packages/perl.scm:4492
 msgid "Matches patterns in a series of files"
 msgstr ""
 
-#: gnu/packages/perl.scm:4114
+#: gnu/packages/perl.scm:4493
 msgid ""
 "@code{File::Grep} provides similar functionality as perl's\n"
 "builtin @code{grep}, @code{map}, and @code{foreach} commands, but iterating\n"
@@ -16594,11 +18961,11 @@ msgid ""
 "provide a quick dropin when such functionality is needed."
 msgstr ""
 
-#: gnu/packages/perl.scm:4137
+#: gnu/packages/perl.scm:4516
 msgid "Find your home and other directories on any platform"
 msgstr ""
 
-#: gnu/packages/perl.scm:4138
+#: gnu/packages/perl.scm:4517
 msgid ""
 "File::HomeDir is a module for locating the directories that\n"
 "are @code{owned} by a user (typically your user) and to solve the various issues\n"
@@ -16606,22 +18973,22 @@ msgid ""
 "platforms."
 msgstr ""
 
-#: gnu/packages/perl.scm:4159
+#: gnu/packages/perl.scm:4538
 msgid "Create or remove directory trees"
 msgstr ""
 
-#: gnu/packages/perl.scm:4160
+#: gnu/packages/perl.scm:4539
 msgid ""
 "This module provide a convenient way to create directories\n"
 "of arbitrary depth and to delete an entire directory subtree from the\n"
 "file system."
 msgstr ""
 
-#: gnu/packages/perl.scm:4183
+#: gnu/packages/perl.scm:4562
 msgid "Change directory temporarily for a limited scope"
 msgstr ""
 
-#: gnu/packages/perl.scm:4184
+#: gnu/packages/perl.scm:4563
 msgid ""
 "@code{File::pushd} does a temporary @code{chdir} that is\n"
 "easily and automatically reverted, similar to @code{pushd} in some Unix\n"
@@ -16632,24 +18999,24 @@ msgid ""
 "at the end of the scope."
 msgstr ""
 
-#: gnu/packages/perl.scm:4212
+#: gnu/packages/perl.scm:4591
 msgid ""
 "Perl extension for crawling directory trees and compiling\n"
 "lists of files"
 msgstr ""
 
-#: gnu/packages/perl.scm:4215
+#: gnu/packages/perl.scm:4594
 msgid ""
 "The File::List module crawls the directory tree starting at the\n"
 "provided base directory and can return files (and/or directories if desired)\n"
 "matching a regular expression."
 msgstr ""
 
-#: gnu/packages/perl.scm:4236
+#: gnu/packages/perl.scm:4615
 msgid "Read a file backwards by lines"
 msgstr ""
 
-#: gnu/packages/perl.scm:4237
+#: gnu/packages/perl.scm:4616
 msgid ""
 "This module reads a file backwards line by line. It is\n"
 "simple to use, memory efficient and fast.  It supports both an object and a\n"
@@ -16661,11 +19028,11 @@ msgid ""
 "the input record separator string on a per file basis."
 msgstr ""
 
-#: gnu/packages/perl.scm:4263
+#: gnu/packages/perl.scm:4642
 msgid "Remove files and directories in Perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:4264
+#: gnu/packages/perl.scm:4643
 msgid ""
 "@code{File::Remove::remove} removes files and directories.\n"
 "It acts like @code{/bin/rm}, for the most part.  Although @code{unlink} can be\n"
@@ -16673,11 +19040,11 @@ msgid ""
 "that.  It also accepts wildcards, * and ?, as arguments for file names."
 msgstr ""
 
-#: gnu/packages/perl.scm:4287
+#: gnu/packages/perl.scm:4666
 msgid "Locate per-dist and per-module shared files"
 msgstr ""
 
-#: gnu/packages/perl.scm:4288
+#: gnu/packages/perl.scm:4667
 msgid ""
 "The intent of File::ShareDir is to provide a companion to\n"
 "Class::Inspector and File::HomeDir.  Quite often you want or need your Perl\n"
@@ -16687,93 +19054,93 @@ msgid ""
 "the installation."
 msgstr ""
 
-#: gnu/packages/perl.scm:4309
+#: gnu/packages/perl.scm:4688
 msgid "Locate per-dist shared files"
 msgstr ""
 
-#: gnu/packages/perl.scm:4310
+#: gnu/packages/perl.scm:4689
 msgid ""
 "File::ShareDir::Dist finds share directories for\n"
 "distributions.  It is a companion module to File::ShareDir."
 msgstr ""
 
-#: gnu/packages/perl.scm:4330
+#: gnu/packages/perl.scm:4709
 msgid "Install shared files"
 msgstr ""
 
-#: gnu/packages/perl.scm:4331
+#: gnu/packages/perl.scm:4710
 msgid ""
 "File::ShareDir::Install allows you to install read-only data\n"
 "files from a distribution.  It is a companion module to File::ShareDir, which\n"
 "allows you to locate these files after installation."
 msgstr ""
 
-#: gnu/packages/perl.scm:4349
+#: gnu/packages/perl.scm:4728
 msgid "Reading/Writing/Modifying of complete files"
 msgstr ""
 
-#: gnu/packages/perl.scm:4350
+#: gnu/packages/perl.scm:4729
 msgid ""
 "File::Slurp provides subroutines to read or write entire\n"
 "files with a simple call.  It also has a subroutine for reading the list of\n"
 "file names in a directory."
 msgstr ""
 
-#: gnu/packages/perl.scm:4375
+#: gnu/packages/perl.scm:4754
 msgid "Simple, sane and efficient module to slurp a file"
 msgstr ""
 
-#: gnu/packages/perl.scm:4376
+#: gnu/packages/perl.scm:4755
 msgid ""
 "This module provides functions for fast and correct file\n"
 "slurping and spewing.  All functions are optionally exported."
 msgstr ""
 
-#: gnu/packages/perl.scm:4393
+#: gnu/packages/perl.scm:4772
 msgid "Simple file reader and writer"
 msgstr ""
 
-#: gnu/packages/perl.scm:4395
+#: gnu/packages/perl.scm:4774
 msgid "This module provides functions for fast reading and writing of files."
 msgstr ""
 
-#: gnu/packages/perl.scm:4411
+#: gnu/packages/perl.scm:4790
 msgid "Return name and handle of a temporary file safely"
 msgstr ""
 
-#: gnu/packages/perl.scm:4412
+#: gnu/packages/perl.scm:4791
 msgid ""
 "File::Temp can be used to create and open temporary files in\n"
 "a safe way."
 msgstr ""
 
-#: gnu/packages/perl.scm:4429
+#: gnu/packages/perl.scm:4808
 msgid "Portable implementation of the `which' utility"
 msgstr ""
 
-#: gnu/packages/perl.scm:4431
+#: gnu/packages/perl.scm:4810
 msgid ""
 "File::Which was created to be able to get the paths to executable\n"
 "programs on systems under which the `which' program wasn't implemented in the\n"
 "shell."
 msgstr ""
 
-#: gnu/packages/perl.scm:4453
+#: gnu/packages/perl.scm:4832
 msgid "Extended Unix style glob functionality"
 msgstr ""
 
-#: gnu/packages/perl.scm:4454
+#: gnu/packages/perl.scm:4833
 msgid ""
 "@code{File::Zglob} provides a traditional Unix @code{glob}\n"
 "functionality; it returns a list of file names that match the given pattern.\n"
 "For instance, it supports the @code{**/*.pm} form."
 msgstr ""
 
-#: gnu/packages/perl.scm:4475
+#: gnu/packages/perl.scm:4854
 msgid "Simple and dumb file system watcher"
 msgstr ""
 
-#: gnu/packages/perl.scm:4477
+#: gnu/packages/perl.scm:4856
 msgid ""
 "@code{Filesys::Notify::Simple} is a simple but unified interface to get\n"
 "notifications of changes to a given file system path.  It uses inotify2 on\n"
@@ -16782,11 +19149,11 @@ msgid ""
 "back to a full directory scan if none of these are available."
 msgstr ""
 
-#: gnu/packages/perl.scm:4498
+#: gnu/packages/perl.scm:4876
 msgid "Module to handle parsing command line options"
 msgstr ""
 
-#: gnu/packages/perl.scm:4499
+#: gnu/packages/perl.scm:4877
 msgid ""
 "The @code{Getopt::Long} module implements an extended getopt\n"
 "function called @code{GetOptions()}.  It parses the command line from\n"
@@ -16800,11 +19167,11 @@ msgid ""
 "single-letter approach, is provided but not enabled by default."
 msgstr ""
 
-#: gnu/packages/perl.scm:4533
+#: gnu/packages/perl.scm:4911
 msgid "Getopt::Long, but simpler and more powerful"
 msgstr ""
 
-#: gnu/packages/perl.scm:4534
+#: gnu/packages/perl.scm:4912
 msgid ""
 "Getopt::Long::Descriptive is yet another Getopt library.\n"
 "It's built atop Getopt::Long, and gets a lot of its features, but tries to\n"
@@ -16812,31 +19179,31 @@ msgid ""
 "usage (help) messages, data validation, and a few other useful features."
 msgstr ""
 
-#: gnu/packages/perl.scm:4552
+#: gnu/packages/perl.scm:4930
 msgid "Table-driven argument parsing for Perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:4554
+#: gnu/packages/perl.scm:4932
 msgid ""
 "Getopt::Tabular is a Perl 5 module for table-driven argument parsing,\n"
 "vaguely inspired by John Ousterhout's Tk_ParseArgv."
 msgstr ""
 
-#: gnu/packages/perl.scm:4575
+#: gnu/packages/perl.scm:4953
 msgid "Graph data structures and algorithms"
 msgstr ""
 
-#: gnu/packages/perl.scm:4576
+#: gnu/packages/perl.scm:4954
 msgid ""
 "This is @code{Graph}, a Perl module for dealing with graphs,\n"
 "the abstract data structures."
 msgstr ""
 
-#: gnu/packages/perl.scm:4593
+#: gnu/packages/perl.scm:4971
 msgid "Safe cleanup blocks implemented as guards"
 msgstr ""
 
-#: gnu/packages/perl.scm:4594
+#: gnu/packages/perl.scm:4972
 msgid ""
 "@code{Guard} implements so-called @dfn{guards}.  A guard is\n"
 "something (usually an object) that \"guards\" a resource, ensuring that it is\n"
@@ -16847,11 +19214,11 @@ msgid ""
 "which are tied to the scope exit."
 msgstr ""
 
-#: gnu/packages/perl.scm:4630
+#: gnu/packages/perl.scm:5008
 msgid "Lightweight field hash for inside-out objects"
 msgstr ""
 
-#: gnu/packages/perl.scm:4631
+#: gnu/packages/perl.scm:5009
 msgid ""
 "@code{Hash::FieldHash} provides the field hash mechanism\n"
 "which supports the inside-out technique.  It is an alternative to\n"
@@ -16859,11 +19226,11 @@ msgid ""
 "relic support."
 msgstr ""
 
-#: gnu/packages/perl.scm:4653
+#: gnu/packages/perl.scm:5034
 msgid "Merge arbitrarily deep hashes into a single hash"
 msgstr ""
 
-#: gnu/packages/perl.scm:4654
+#: gnu/packages/perl.scm:5035
 msgid ""
 "Hash::Merge merges two arbitrarily deep hashes into a single\n"
 "hash.  That is, at any level, it will add non-conflicting key-value pairs from\n"
@@ -16873,21 +19240,34 @@ msgid ""
 "merged."
 msgstr ""
 
-#: gnu/packages/perl.scm:4676
+#: gnu/packages/perl.scm:5057
 msgid "Store multiple values per key"
 msgstr ""
 
-#: gnu/packages/perl.scm:4677
+#: gnu/packages/perl.scm:5058
 msgid ""
 "Hash::MultiValue is an object (and a plain hash reference)\n"
 "that may contain multiple values per key, inspired by MultiDict of WebOb."
 msgstr ""
 
-#: gnu/packages/perl.scm:4695
+#: gnu/packages/perl.scm:5076
+msgid "Lexically scoped subroutine wrappers"
+msgstr "Enveloppes de sous-routines à portée lexicale"
+
+#: gnu/packages/perl.scm:5078
+msgid ""
+"Hook::LexWrap allows you to install a pre- or post-wrapper (or\n"
+"both) around an existing subroutine.  Unlike other modules that\n"
+"provide this capacity (e.g., Hook::PreAndPost and Hook::WrapSub),\n"
+"Hook::LexWrap implements wrappers in such a way that the standard\n"
+"caller function works correctly within the wrapped subroutine."
+msgstr ""
+
+#: gnu/packages/perl.scm:5099
 msgid "Alternative but compatible interface to modules that export symbols"
 msgstr ""
 
-#: gnu/packages/perl.scm:4696
+#: gnu/packages/perl.scm:5100
 msgid ""
 "This module acts as a layer between Exporter and modules which\n"
 "consume exports.  It is feature-compatible with Exporter, plus some much needed\n"
@@ -16897,11 +19277,11 @@ msgid ""
 "variables."
 msgstr ""
 
-#: gnu/packages/perl.scm:4720
+#: gnu/packages/perl.scm:5124
 msgid "Import packages into other packages"
 msgstr ""
 
-#: gnu/packages/perl.scm:4721
+#: gnu/packages/perl.scm:5125
 msgid ""
 "Writing exporters is a pain.  Some use Exporter, some use\n"
 "Sub::Exporter, some use Moose::Exporter, some use Exporter::Declare ... and\n"
@@ -16911,30 +19291,30 @@ msgid ""
 "compilation.  Import::Into provides global methods to make this painless."
 msgstr ""
 
-#: gnu/packages/perl.scm:4743
+#: gnu/packages/perl.scm:5147
 msgid "Use modules in inc/ if newer than installed"
 msgstr ""
 
-#: gnu/packages/perl.scm:4744
+#: gnu/packages/perl.scm:5148
 msgid ""
 "The inc::latest module helps bootstrap configure-time\n"
 "dependencies for CPAN distributions.  These dependencies get bundled into the\n"
 "inc directory within a distribution and are used by Makefile.PL or Build.PL."
 msgstr ""
 
-#: gnu/packages/perl.scm:4763
+#: gnu/packages/perl.scm:5167
 msgid "Lexically warn about using the indirect method call syntax"
 msgstr ""
 
-#: gnu/packages/perl.scm:4765
+#: gnu/packages/perl.scm:5169
 msgid "Indirect warns about using the indirect method call syntax."
 msgstr ""
 
-#: gnu/packages/perl.scm:4785
+#: gnu/packages/perl.scm:5189
 msgid "Write Perl subroutines in other programming languages"
 msgstr "Écrire des sous-routines Perl dans d'autres langages de programmation"
 
-#: gnu/packages/perl.scm:4786
+#: gnu/packages/perl.scm:5190
 msgid ""
 "The @code{Inline} module allows you to put source code\n"
 "from other programming languages directly (inline) in a Perl script or\n"
@@ -16942,11 +19322,11 @@ msgid ""
 "for immediate access from Perl."
 msgstr ""
 
-#: gnu/packages/perl.scm:4816
+#: gnu/packages/perl.scm:5220
 msgid "C Language Support for Inline"
 msgstr ""
 
-#: gnu/packages/perl.scm:4817
+#: gnu/packages/perl.scm:5221
 msgid ""
 "The @code{Inline::C} module allows you to write Perl\n"
 "subroutines in C.  Since version 0.30 the @code{Inline} module supports\n"
@@ -16955,11 +19335,11 @@ msgid ""
 "It also goes a bit into Perl C internals."
 msgstr ""
 
-#: gnu/packages/perl.scm:4843
+#: gnu/packages/perl.scm:5247
 msgid "@code{IO::All} to Larry Wall!"
 msgstr ""
 
-#: gnu/packages/perl.scm:4844
+#: gnu/packages/perl.scm:5248
 msgid ""
 "@code{IO::All} combines all of the best Perl IO modules into\n"
 "a single nifty object oriented interface to greatly simplify your everyday\n"
@@ -16967,11 +19347,11 @@ msgid ""
 "@code{IO::All} object.  And that object can do it all!"
 msgstr ""
 
-#: gnu/packages/perl.scm:4865
+#: gnu/packages/perl.scm:5269
 msgid "Capture STDOUT and STDERR from Perl code, subprocesses or XS"
 msgstr ""
 
-#: gnu/packages/perl.scm:4866
+#: gnu/packages/perl.scm:5270
 msgid ""
 "@code{IO::CaptureOutput} provides routines for capturing\n"
 "@code{STDOUT} and @code{STDERR} from perl subroutines, forked system\n"
@@ -16981,53 +19361,53 @@ msgid ""
 "try @code{Capture::Tiny} instead."
 msgstr ""
 
-#: gnu/packages/perl.scm:4887
+#: gnu/packages/perl.scm:5291
 msgid "Utilities for interactive I/O"
 msgstr ""
 
-#: gnu/packages/perl.scm:4888
+#: gnu/packages/perl.scm:5292
 msgid ""
 "This module provides three utility subroutines that make it\n"
 "easier to develop interactive applications: is_interactive(), interactive(),\n"
 "and busy()."
 msgstr ""
 
-#: gnu/packages/perl.scm:4921
+#: gnu/packages/perl.scm:5325
 msgid "Select a pager and pipe text to it"
 msgstr ""
 
-#: gnu/packages/perl.scm:4923
+#: gnu/packages/perl.scm:5327
 msgid ""
 "@code{IO::Pager} can be used to locate an available pager and use it to\n"
 "display output if a TTY is in use."
 msgstr ""
 
-#: gnu/packages/perl.scm:4941
+#: gnu/packages/perl.scm:5345
 msgid "Emulate file interface for in-core strings"
 msgstr ""
 
-#: gnu/packages/perl.scm:4942
+#: gnu/packages/perl.scm:5346
 msgid ""
 "IO::String is an IO::File (and IO::Handle) compatible class\n"
 "that reads or writes data from in-core strings."
 msgstr ""
 
-#: gnu/packages/perl.scm:4960
+#: gnu/packages/perl.scm:5364
 msgid "IO:: interface for reading/writing an array of lines"
 msgstr ""
 
-#: gnu/packages/perl.scm:4961
+#: gnu/packages/perl.scm:5365
 msgid ""
 "This toolkit primarily provides modules for performing both\n"
 "traditional and object-oriented i/o) on things *other* than normal\n"
 "filehandles; in particular, IO::Scalar, IO::ScalarArray, and IO::Lines."
 msgstr ""
 
-#: gnu/packages/perl.scm:4979
+#: gnu/packages/perl.scm:5383
 msgid "Perl interface to pseudo ttys"
 msgstr ""
 
-#: gnu/packages/perl.scm:4981
+#: gnu/packages/perl.scm:5385
 msgid ""
 "This package provides the @code{IO::Pty} and @code{IO::Tty} Perl\n"
 "interfaces to pseudo ttys."
@@ -17035,22 +19415,22 @@ msgstr ""
 "Ce paquet fournit les interfaces Perl @code{IO::Pty} et @code{IO::Tty} avec\n"
 "les pseudo tty."
 
-#: gnu/packages/perl.scm:4998
+#: gnu/packages/perl.scm:5402
 msgid "Run interactive command-line programs"
 msgstr ""
 
-#: gnu/packages/perl.scm:4999
+#: gnu/packages/perl.scm:5403
 msgid ""
 "@code{IPC::Cmd} allows for the searching and execution of\n"
 "any binary on your system.  It adheres to verbosity settings and is able to\n"
 "run interactively.  It also has an option to capture output/error buffers."
 msgstr ""
 
-#: gnu/packages/perl.scm:5028
+#: gnu/packages/perl.scm:5432
 msgid "Run system() and background procs w/ piping, redirs, ptys"
 msgstr ""
 
-#: gnu/packages/perl.scm:5029
+#: gnu/packages/perl.scm:5433
 msgid ""
 "IPC::Run allows you run and interact with child processes\n"
 "using files, pipes, and pseudo-ttys.  Both system()-style and scripted usages\n"
@@ -17058,11 +19438,11 @@ msgid ""
 "both supported and may be mixed."
 msgstr ""
 
-#: gnu/packages/perl.scm:5047
+#: gnu/packages/perl.scm:5451
 msgid "Run a subprocess with input/output redirection"
 msgstr ""
 
-#: gnu/packages/perl.scm:5049
+#: gnu/packages/perl.scm:5453
 msgid ""
 "The IPC::Run3 module allows you to run a subprocess and redirect stdin,\n"
 "stdout, and/or stderr to files and perl data structures.  It aims to satisfy\n"
@@ -17070,21 +19450,21 @@ msgid ""
 "Perlish API and none of the bloat and rarely used features of IPC::Run."
 msgstr ""
 
-#: gnu/packages/perl.scm:5072
+#: gnu/packages/perl.scm:5476
 msgid "Lightweight interface to shared memory"
 msgstr "Interface légère pour la mémoire partagée"
 
-#: gnu/packages/perl.scm:5073
+#: gnu/packages/perl.scm:5477
 msgid ""
 "IPC::ShareLite provides a simple interface to shared memory,\n"
 "allowing data to be efficiently communicated between processes."
 msgstr ""
 
-#: gnu/packages/perl.scm:5091
+#: gnu/packages/perl.scm:5495
 msgid "Run commands simply, with detailed diagnostics"
 msgstr ""
 
-#: gnu/packages/perl.scm:5092
+#: gnu/packages/perl.scm:5496
 msgid ""
 "Calling Perl's in-built @code{system} function is easy,\n"
 "determining if it was successful is hard.  Let's face it, @code{$?} isn't the\n"
@@ -17095,21 +19475,21 @@ msgid ""
 "commands."
 msgstr ""
 
-#: gnu/packages/perl.scm:5117
+#: gnu/packages/perl.scm:5521
 msgid "JSON encoder/decoder for Perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:5118
+#: gnu/packages/perl.scm:5522
 msgid ""
 "This module converts Perl data structures to JSON and vice\n"
 "versa using either JSON::XS or JSON::PP."
 msgstr ""
 
-#: gnu/packages/perl.scm:5143
+#: gnu/packages/perl.scm:5547
 msgid "Wrapper for Perl JSON classes"
 msgstr ""
 
-#: gnu/packages/perl.scm:5145
+#: gnu/packages/perl.scm:5549
 msgid ""
 "This module tries to provide a coherent API to bring together the\n"
 "various JSON modules currently on CPAN.  This module will allow you to code to\n"
@@ -17117,11 +19497,11 @@ msgid ""
 "installed."
 msgstr ""
 
-#: gnu/packages/perl.scm:5169
+#: gnu/packages/perl.scm:5573
 msgid "Cpanel::JSON::XS with fallback"
 msgstr ""
 
-#: gnu/packages/perl.scm:5170
+#: gnu/packages/perl.scm:5574
 msgid ""
 "This module first checks to see if either Cpanel::JSON::XS\n"
 "or JSON::XS is already loaded, in which case it uses that module.  Otherwise\n"
@@ -17129,23 +19509,33 @@ msgid ""
 "either uses the first module it finds or throws an error."
 msgstr ""
 
-#: gnu/packages/perl.scm:5195
+#: gnu/packages/perl.scm:5599
 msgid "JSON serialising/deserialising for Perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:5218
+#: gnu/packages/perl.scm:5622
 msgid "Prevent leakage of lexical hints"
 msgstr ""
 
-#: gnu/packages/perl.scm:5220
+#: gnu/packages/perl.scm:5624
 msgid "Lexical::SealRequireHints prevents leakage of lexical hints"
 msgstr ""
 
-#: gnu/packages/perl.scm:5236
+#: gnu/packages/perl.scm:5647
+msgid "Use other catalog formats in Maketext"
+msgstr ""
+
+#: gnu/packages/perl.scm:5649
+msgid ""
+"This module provides lexicon-handling modules to read from other\n"
+"localization formats, such as Gettext, Msgcat, and so on."
+msgstr ""
+
+#: gnu/packages/perl.scm:5666
 msgid "Bringing loggers and listeners together"
 msgstr ""
 
-#: gnu/packages/perl.scm:5237
+#: gnu/packages/perl.scm:5667
 msgid ""
 "@code{Log::Any} provides a standard log production API for\n"
 "modules.  @code{Log::Any::Adapter} allows applications to choose the mechanism\n"
@@ -17163,32 +19553,32 @@ msgid ""
 "logging mechanism."
 msgstr ""
 
-#: gnu/packages/perl.scm:5273
+#: gnu/packages/perl.scm:5703
 msgid "Log::Any adapter for Log::Log4perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:5274
+#: gnu/packages/perl.scm:5704
 msgid ""
 "@code{Log::Any::Adapter::Log4perl} provides a\n"
 "@code{Log::Any} adapter using @code{Log::Log4perl} for logging."
 msgstr ""
 
-#: gnu/packages/perl.scm:5295
+#: gnu/packages/perl.scm:5725
 msgid "Log4j implementation for Perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:5296
+#: gnu/packages/perl.scm:5726
 msgid ""
 "@code{Log::Log4perl} lets you remote-control and fine-tune\n"
 "the logging behaviour of your system from the outside.  It implements the\n"
 "widely popular (Java-based) Log4j logging package in pure Perl."
 msgstr ""
 
-#: gnu/packages/perl.scm:5316
+#: gnu/packages/perl.scm:5746
 msgid "Log::Report in the lightest form"
 msgstr ""
 
-#: gnu/packages/perl.scm:5318
+#: gnu/packages/perl.scm:5748
 msgid ""
 "This module allows libraries to have a dependency to a small module\n"
 "instead of the full Log-Report distribution.  The full power of\n"
@@ -17198,81 +19588,92 @@ msgid ""
 "version."
 msgstr ""
 
-#: gnu/packages/perl.scm:5343
+#: gnu/packages/perl.scm:5773
 msgid "Get messages to users and logs"
 msgstr ""
 
-#: gnu/packages/perl.scm:5345
+#: gnu/packages/perl.scm:5775
 msgid ""
 "@code{Log::Report} combines three tasks which are closely related in\n"
 "one: logging, exceptions, and translations."
 msgstr ""
 
-#: gnu/packages/perl.scm:5373
+#: gnu/packages/perl.scm:5803
 msgid "High-level interface to Uniforum message translation"
 msgstr ""
 
-#: gnu/packages/perl.scm:5374
+#: gnu/packages/perl.scm:5804
 msgid ""
 "This package is an internationalization library for Perl\n"
 "that aims to be compatible with the Uniforum message translations system as\n"
 "implemented for example in GNU gettext."
 msgstr ""
 
-#: gnu/packages/perl.scm:5393
+#: gnu/packages/perl.scm:5824
+msgid "Split text into sentences"
+msgstr ""
+
+#: gnu/packages/perl.scm:5826
+msgid ""
+"The Lingua::EN::Sentence module contains the function get_sentences,\n"
+"which splits text into its constituent sentences, based on a regular\n"
+"expression and a list of abbreviations (built in and given)."
+msgstr ""
+
+#: gnu/packages/perl.scm:5845
 msgid "Transliterate text between writing systems"
 msgstr ""
 
-#: gnu/packages/perl.scm:5394
+#: gnu/packages/perl.scm:5846
 msgid ""
 "@code{Lingua::Translit} can be used to convert text from one\n"
 "writing system to another, based on national or international transliteration\n"
 "tables.  Where possible a reverse transliteration is supported."
 msgstr ""
 
-#: gnu/packages/perl.scm:5418
+#: gnu/packages/perl.scm:5870
 msgid "Combination of List::Util and List::MoreUtils"
 msgstr ""
 
-#: gnu/packages/perl.scm:5419
+#: gnu/packages/perl.scm:5871
 msgid ""
 "This module exports all of the functions that either\n"
 "List::Util or List::MoreUtils defines, with preference to List::Util."
 msgstr ""
 
-#: gnu/packages/perl.scm:5441
+#: gnu/packages/perl.scm:5893
 msgid "Compare elements of two or more lists"
 msgstr ""
 
-#: gnu/packages/perl.scm:5442
+#: gnu/packages/perl.scm:5894
 msgid ""
 "@code{List::Compare} provides a module to perform\n"
 "comparative operations on two or more lists.  Provided operations include\n"
 "intersections, unions, unique elements, complements and many more."
 msgstr ""
 
-#: gnu/packages/perl.scm:5477 gnu/packages/perl.scm:5527
+#: gnu/packages/perl.scm:5929 gnu/packages/perl.scm:5979
 msgid "Provide the stuff missing in List::Util"
 msgstr ""
 
-#: gnu/packages/perl.scm:5478
+#: gnu/packages/perl.scm:5930
 msgid ""
 "List::MoreUtils provides some trivial but commonly needed\n"
 "functionality on lists which is not going to go into List::Util."
 msgstr ""
 
-#: gnu/packages/perl.scm:5500
+#: gnu/packages/perl.scm:5952
 msgid "Provide the stuff missing in List::Util in XS"
 msgstr ""
 
-#: gnu/packages/perl.scm:5501
+#: gnu/packages/perl.scm:5953
 msgid ""
 "@code{List::MoreUtils::XS} provides some trivial but\n"
 "commonly needed functionality on lists which is not going to go into\n"
 "@code{List::Util}."
 msgstr ""
 
-#: gnu/packages/perl.scm:5528
+#: gnu/packages/perl.scm:5980
 msgid ""
 "@code{List::SomeUtils} provides some trivial but commonly\n"
 "needed functionality on lists which is not going to go into @code{List::Util}.\n"
@@ -17284,11 +19685,11 @@ msgid ""
 "portions of this module couldn't be compiled on this machine."
 msgstr ""
 
-#: gnu/packages/perl.scm:5557
+#: gnu/packages/perl.scm:6009
 msgid "Bundle of ancient email modules"
 msgstr ""
 
-#: gnu/packages/perl.scm:5558
+#: gnu/packages/perl.scm:6010
 msgid ""
 "MailTools contains the following modules:\n"
 "@table @asis\n"
@@ -17315,107 +19716,107 @@ msgid ""
 "@end table"
 msgstr ""
 
-#: gnu/packages/perl.scm:5600
+#: gnu/packages/perl.scm:6052
 msgid "Simple platform independent mailer"
 msgstr ""
 
-#: gnu/packages/perl.scm:5601
+#: gnu/packages/perl.scm:6053
 msgid ""
 "Mail::Sendmail is a pure perl module that provides a\n"
 "simple means to send email from a perl script.  The module only\n"
 "requires Perl5 and a network connection."
 msgstr ""
 
-#: gnu/packages/perl.scm:5620
+#: gnu/packages/perl.scm:6072
 msgid "Solution of bezier curves"
 msgstr ""
 
-#: gnu/packages/perl.scm:5621
+#: gnu/packages/perl.scm:6073
 msgid ""
 "This module implements the algorithm for the solution of Bezier\n"
 "curves as presented by Robert D Miller in Graphics Gems V, \"Quick and Simple\n"
 "Bezier Curve Drawing\"."
 msgstr ""
 
-#: gnu/packages/perl.scm:5640
+#: gnu/packages/perl.scm:6092
 msgid "Perl extension for rounding numbers"
 msgstr "Extension Perl pour arrondir des nombres"
 
-#: gnu/packages/perl.scm:5641
+#: gnu/packages/perl.scm:6093
 msgid ""
 "@code{Math::Round} provides functions to round numbers,\n"
 "both positive and negative, in various ways."
 msgstr ""
 
-#: gnu/packages/perl.scm:5659
+#: gnu/packages/perl.scm:6111
 msgid "Basic numeric stats on vectors"
 msgstr ""
 
-#: gnu/packages/perl.scm:5660
+#: gnu/packages/perl.scm:6112
 msgid ""
 "This package provides some basic statistics on numerical\n"
 "vectors.  All the subroutines can take a reference to the vector to be\n"
 "operated on."
 msgstr ""
 
-#: gnu/packages/perl.scm:5679
+#: gnu/packages/perl.scm:6131
 msgid "Make functions faster by trading space for time"
 msgstr ""
 
-#: gnu/packages/perl.scm:5680
+#: gnu/packages/perl.scm:6132
 msgid ""
 "This package transparently speeds up functions by caching\n"
 "return values, trading space for time."
 msgstr ""
 
-#: gnu/packages/perl.scm:5698
+#: gnu/packages/perl.scm:6150
 msgid "Expiry plug-in for Memoize that adds LRU cache expiration"
 msgstr ""
 
-#: gnu/packages/perl.scm:5699
+#: gnu/packages/perl.scm:6151
 msgid ""
 "This module implements an expiry policy for Memoize that\n"
 "follows LRU semantics, that is, the last n results, where n is specified as\n"
 "the argument to the CACHESIZE parameter, will be cached."
 msgstr ""
 
-#: gnu/packages/perl.scm:5717
+#: gnu/packages/perl.scm:6169
 msgid "Charset information for MIME messages"
 msgstr ""
 
-#: gnu/packages/perl.scm:5719
+#: gnu/packages/perl.scm:6171
 msgid ""
 "@code{MIME::Charset} provides information about character sets used for\n"
 "MIME messages on Internet."
 msgstr ""
 
-#: gnu/packages/perl.scm:5746
+#: gnu/packages/perl.scm:6198
 msgid "Tools to manipulate MIME messages"
 msgstr "Outils de manipulation des messages MIME"
 
-#: gnu/packages/perl.scm:5748
+#: gnu/packages/perl.scm:6200
 msgid ""
 "MIME-tools is a collection of Perl5 MIME:: modules for parsing,\n"
 "decoding, and generating single- or multipart (even nested multipart) MIME\n"
 "messages."
 msgstr ""
 
-#: gnu/packages/perl.scm:5767
+#: gnu/packages/perl.scm:6219
 msgid "Definition of MIME types"
 msgstr ""
 
-#: gnu/packages/perl.scm:5768
+#: gnu/packages/perl.scm:6220
 msgid ""
 "This module provides a list of known mime-types, combined\n"
 "from various sources.  For instance, it contains all IANA types and the\n"
 "knowledge of Apache."
 msgstr ""
 
-#: gnu/packages/perl.scm:5790
+#: gnu/packages/perl.scm:6242
 msgid "Write your linewise code for handles; this does the rest"
 msgstr ""
 
-#: gnu/packages/perl.scm:5791
+#: gnu/packages/perl.scm:6243
 msgid ""
 "It's boring to deal with opening files for IO, converting\n"
 "strings to handle-like objects, and all that.  With\n"
@@ -17424,21 +19825,21 @@ msgid ""
 "file names are added for you."
 msgstr ""
 
-#: gnu/packages/perl.scm:5816
+#: gnu/packages/perl.scm:6268
 msgid "Enable all of the features of Modern Perl with one import"
 msgstr ""
 
-#: gnu/packages/perl.scm:5817
+#: gnu/packages/perl.scm:6269
 msgid ""
 "@code{Modern::Perl} provides a simple way to enable\n"
 "multiple, by now, standard libraries in a Perl program."
 msgstr ""
 
-#: gnu/packages/perl.scm:5845
+#: gnu/packages/perl.scm:6297
 msgid "Tiny replacement for Module::Build"
 msgstr ""
 
-#: gnu/packages/perl.scm:5846
+#: gnu/packages/perl.scm:6298
 msgid ""
 "Many Perl distributions use a Build.PL file instead of a\n"
 "Makefile.PL file to drive distribution configuration, build, test and\n"
@@ -17448,22 +19849,22 @@ msgid ""
 "has less than 120, yet supports the features needed by most distributions."
 msgstr ""
 
-#: gnu/packages/perl.scm:5878
+#: gnu/packages/perl.scm:6330
 msgid "The module provides an XS++ enhanced flavour of Module::Build"
 msgstr ""
 
-#: gnu/packages/perl.scm:5879
+#: gnu/packages/perl.scm:6331
 msgid ""
 "This subclass of Module::Build adds some tools and\n"
 "processes to make it easier to use for wrapping C++ using XS++\n"
 "(ExtUtils::XSpp)."
 msgstr ""
 
-#: gnu/packages/perl.scm:5904
+#: gnu/packages/perl.scm:6356
 msgid "Module::Build class for building XS modules"
 msgstr ""
 
-#: gnu/packages/perl.scm:5906
+#: gnu/packages/perl.scm:6358
 msgid ""
 "@code{Module::Build::XSUtil} is subclass of @code{Module::Build}\n"
 "for support building XS modules.\n"
@@ -17487,11 +19888,11 @@ msgid ""
 "@end enumerate"
 msgstr ""
 
-#: gnu/packages/perl.scm:5942
+#: gnu/packages/perl.scm:6394
 msgid "Find and use installed modules in a (sub)category"
 msgstr ""
 
-#: gnu/packages/perl.scm:5943
+#: gnu/packages/perl.scm:6395
 msgid ""
 "Module::Find lets you find and use modules in categories.\n"
 "This can be useful for auto-detecting driver or plugin modules.  You can\n"
@@ -17499,11 +19900,11 @@ msgid ""
 "subcategories."
 msgstr ""
 
-#: gnu/packages/perl.scm:5969
+#: gnu/packages/perl.scm:6421
 msgid "Loads alternate underlying implementations for a module"
 msgstr ""
 
-#: gnu/packages/perl.scm:5970
+#: gnu/packages/perl.scm:6422
 msgid ""
 "This module abstracts out the process of choosing one of\n"
 "several underlying implementations for a module.  This can be used to provide\n"
@@ -17512,11 +19913,11 @@ msgid ""
 "implementations."
 msgstr ""
 
-#: gnu/packages/perl.scm:6008
+#: gnu/packages/perl.scm:6460
 msgid "Standalone, extensible Perl module installer"
 msgstr ""
 
-#: gnu/packages/perl.scm:6009
+#: gnu/packages/perl.scm:6461
 msgid ""
 "Module::Install is a package for writing installers for\n"
 "CPAN (or CPAN-like) distributions that are clean, simple, minimalist, act in a\n"
@@ -17524,11 +19925,11 @@ msgid ""
 "installation version 5.005 or newer."
 msgstr ""
 
-#: gnu/packages/perl.scm:6035
+#: gnu/packages/perl.scm:6487
 msgid "Parse and examine a Perl distribution @file{MANIFEST} file"
 msgstr ""
 
-#: gnu/packages/perl.scm:6037
+#: gnu/packages/perl.scm:6489
 msgid ""
 "@code{Module::Manifest} is a simple utility module created originally for\n"
 "use in @code{Module::Inspector}.\n"
@@ -17538,52 +19939,52 @@ msgid ""
 "@file{MANIFEST.SKIP} file and check that."
 msgstr ""
 
-#: gnu/packages/perl.scm:6060
+#: gnu/packages/perl.scm:6512
 msgid "Give your Perl module the ability to have plugins"
 msgstr ""
 
-#: gnu/packages/perl.scm:6061
+#: gnu/packages/perl.scm:6513
 msgid ""
 "This module provides a simple but extensible way of having\n"
 "@code{plugins} for your Perl module."
 msgstr ""
 
-#: gnu/packages/perl.scm:6080
+#: gnu/packages/perl.scm:6532
 msgid "Perl runtime module handling"
 msgstr ""
 
-#: gnu/packages/perl.scm:6081
+#: gnu/packages/perl.scm:6533
 msgid ""
 "The functions exported by this module deal with runtime\n"
 "handling of Perl modules, which are normally handled at compile time."
 msgstr ""
 
-#: gnu/packages/perl.scm:6104
+#: gnu/packages/perl.scm:6556
 msgid "Provide information on conflicts for Module::Runtime"
 msgstr ""
 
-#: gnu/packages/perl.scm:6105
+#: gnu/packages/perl.scm:6557
 msgid ""
 "This module provides conflicts checking for Module::Runtime,\n"
 "which had a recent release that broke some versions of Moose.  It is called\n"
 "from Moose::Conflicts and moose-outdated."
 msgstr ""
 
-#: gnu/packages/perl.scm:6126
+#: gnu/packages/perl.scm:6578
 msgid "Recursively scan Perl code for dependencies"
 msgstr ""
 
-#: gnu/packages/perl.scm:6127
+#: gnu/packages/perl.scm:6579
 msgid ""
 "Module::ScanDeps is a module to recursively scan Perl\n"
 "programs for dependencies."
 msgstr ""
 
-#: gnu/packages/perl.scm:6147
+#: gnu/packages/perl.scm:6599
 msgid "Module name tools and transformations"
 msgstr ""
 
-#: gnu/packages/perl.scm:6148
+#: gnu/packages/perl.scm:6600
 msgid ""
 "This module provides a few useful functions for manipulating\n"
 "module names.  Its main aim is to centralise some of the functions commonly\n"
@@ -17591,11 +19992,11 @@ msgid ""
 "module names to relative paths."
 msgstr ""
 
-#: gnu/packages/perl.scm:6178
+#: gnu/packages/perl.scm:6630
 msgid "Minimalist Object Orientation (with Moose compatibility)"
 msgstr ""
 
-#: gnu/packages/perl.scm:6179
+#: gnu/packages/perl.scm:6631
 msgid ""
 "Moo is an extremely light-weight Object Orientation system.\n"
 "It allows one to concisely define objects and roles with a convenient syntax\n"
@@ -17603,11 +20004,11 @@ msgid ""
 "Moose and is optimised for rapid startup."
 msgstr ""
 
-#: gnu/packages/perl.scm:6284
+#: gnu/packages/perl.scm:6736
 msgid "Postmodern object system for Perl 5"
 msgstr ""
 
-#: gnu/packages/perl.scm:6286
+#: gnu/packages/perl.scm:6738
 msgid ""
 "Moose is a complete object system for Perl 5.  It provides keywords for\n"
 "attribute declaration, object construction, inheritance, and maybe more.  With\n"
@@ -17618,11 +20019,11 @@ msgid ""
 "sentences."
 msgstr ""
 
-#: gnu/packages/perl.scm:6314
+#: gnu/packages/perl.scm:6766
 msgid "Emulate Class::Accessor::Fast behavior using Moose attributes"
 msgstr ""
 
-#: gnu/packages/perl.scm:6315
+#: gnu/packages/perl.scm:6767
 msgid ""
 "This module attempts to emulate the behavior of\n"
 "Class::Accessor::Fast as accurately as possible using the Moose attribute\n"
@@ -17630,21 +20031,21 @@ msgid ""
 "private methods are not."
 msgstr ""
 
-#: gnu/packages/perl.scm:6349
+#: gnu/packages/perl.scm:6801
 msgid "Moose role for processing command line options"
 msgstr ""
 
-#: gnu/packages/perl.scm:6350
+#: gnu/packages/perl.scm:6802
 msgid ""
 "This is a Moose role which provides an alternate constructor\n"
 "for creating objects using parameters passed in from the command line."
 msgstr ""
 
-#: gnu/packages/perl.scm:6371
+#: gnu/packages/perl.scm:6823
 msgid "Mark overload code symbols as methods"
 msgstr ""
 
-#: gnu/packages/perl.scm:6372
+#: gnu/packages/perl.scm:6824
 msgid ""
 "MooseX::MarkAsMethods allows one to easily mark certain\n"
 "functions as Moose methods.  This will allow other packages such as\n"
@@ -17654,21 +20055,21 @@ msgid ""
 "overloads will \"just work\"."
 msgstr ""
 
-#: gnu/packages/perl.scm:6402
+#: gnu/packages/perl.scm:6854
 msgid "Code attribute introspection"
 msgstr ""
 
-#: gnu/packages/perl.scm:6403
+#: gnu/packages/perl.scm:6855
 msgid ""
 "This module allows code attributes of methods to be\n"
 "introspected using Moose meta method objects."
 msgstr ""
 
-#: gnu/packages/perl.scm:6429
+#: gnu/packages/perl.scm:6881
 msgid "Subclassing of non-Moose classes"
 msgstr ""
 
-#: gnu/packages/perl.scm:6430
+#: gnu/packages/perl.scm:6882
 msgid ""
 "MooseX::NonMoose allows for easily subclassing non-Moose\n"
 "classes with Moose, taking care of the details connected with doing this, such\n"
@@ -17677,31 +20078,31 @@ msgid ""
 "BUILD methods are called.  It tries to be as non-intrusive as possible."
 msgstr ""
 
-#: gnu/packages/perl.scm:6458
+#: gnu/packages/perl.scm:6910
 msgid "Extension of Params::Validate using Moose's types"
 msgstr ""
 
-#: gnu/packages/perl.scm:6459
+#: gnu/packages/perl.scm:6911
 msgid ""
 "This module fills a gap in Moose by adding method parameter\n"
 "validation to Moose."
 msgstr ""
 
-#: gnu/packages/perl.scm:6480
+#: gnu/packages/perl.scm:6932
 msgid "Apply roles to a related Perl class"
 msgstr ""
 
-#: gnu/packages/perl.scm:6481
+#: gnu/packages/perl.scm:6933
 msgid ""
 "This module applies roles to make a subclass instead of\n"
 "manually setting up a subclass."
 msgstr ""
 
-#: gnu/packages/perl.scm:6507
+#: gnu/packages/perl.scm:6959
 msgid "Moose roles with composition parameters"
 msgstr ""
 
-#: gnu/packages/perl.scm:6508
+#: gnu/packages/perl.scm:6960
 msgid ""
 "Because Moose roles serve many different masters, they\n"
 "usually provide only the least common denominator of functionality.  To\n"
@@ -17711,11 +20112,11 @@ msgid ""
 "Parameterized roles offer a solution to these (and other) kinds of problems."
 msgstr ""
 
-#: gnu/packages/perl.scm:6534
+#: gnu/packages/perl.scm:6986
 msgid "Roles which support overloading"
 msgstr ""
 
-#: gnu/packages/perl.scm:6535
+#: gnu/packages/perl.scm:6987
 msgid ""
 "MooseX::Role::WithOverloading allows you to write a\n"
 "Moose::Role which defines overloaded operators and allows those overload\n"
@@ -17723,11 +20124,11 @@ msgid ""
 "where plain Moose::Roles would lose the overloading."
 msgstr ""
 
-#: gnu/packages/perl.scm:6557
+#: gnu/packages/perl.scm:7009
 msgid "Name your accessors foo() and set_foo()"
 msgstr ""
 
-#: gnu/packages/perl.scm:6558
+#: gnu/packages/perl.scm:7010
 msgid ""
 "This module does not provide any methods.  Simply loading it\n"
 "changes the default naming policy for the loading class so that accessors are\n"
@@ -17735,82 +20136,82 @@ msgid ""
 "accessor, while set methods are prefixed with \"_set_\"."
 msgstr ""
 
-#: gnu/packages/perl.scm:6584
+#: gnu/packages/perl.scm:7036
 msgid "Strict object constructors for Moose"
 msgstr ""
 
-#: gnu/packages/perl.scm:6585
+#: gnu/packages/perl.scm:7037
 msgid ""
 "Simply loading this module makes your constructors\n"
 "\"strict\".  If your constructor is called with an attribute init argument\n"
 "that your class does not declare, then it calls Moose->throw_error()."
 msgstr ""
 
-#: gnu/packages/perl.scm:6613
+#: gnu/packages/perl.scm:7065
 msgid "Trait loading and resolution for Moose"
 msgstr ""
 
-#: gnu/packages/perl.scm:6614
+#: gnu/packages/perl.scm:7066
 msgid ""
 "Adds support on top of MooseX::Traits for class precedence\n"
 "search for traits and some extra attributes."
 msgstr ""
 
-#: gnu/packages/perl.scm:6640
+#: gnu/packages/perl.scm:7092
 msgid "Organise your Moose types in libraries"
 msgstr ""
 
-#: gnu/packages/perl.scm:6641
+#: gnu/packages/perl.scm:7093
 msgid ""
 "This package lets you declare types using short names, but\n"
 "behind the scenes it namespaces all your type declarations, effectively\n"
 "prevent name clashes between packages."
 msgstr ""
 
-#: gnu/packages/perl.scm:6672
+#: gnu/packages/perl.scm:7124
 msgid "DateTime related constraints and coercions for Moose"
 msgstr ""
 
-#: gnu/packages/perl.scm:6673
+#: gnu/packages/perl.scm:7125
 msgid ""
 "This module packages several Moose::Util::TypeConstraints\n"
 "with coercions, designed to work with the DateTime suite of objects."
 msgstr ""
 
-#: gnu/packages/perl.scm:6704
+#: gnu/packages/perl.scm:7156
 msgid "Extensions to MooseX::Types::DateTime"
 msgstr ""
 
-#: gnu/packages/perl.scm:6705
+#: gnu/packages/perl.scm:7157
 msgid ""
 "This module builds on MooseX::Types::DateTime to add\n"
 "additional custom types and coercions.  Since it builds on an existing type,\n"
 "all coercions and constraints are inherited."
 msgstr ""
 
-#: gnu/packages/perl.scm:6733
+#: gnu/packages/perl.scm:7185
 msgid "ClassName type constraints for Moose"
 msgstr ""
 
-#: gnu/packages/perl.scm:6734
+#: gnu/packages/perl.scm:7186
 msgid ""
 "MooseX::Types::LoadableClass provides a ClassName type\n"
 "constraint with coercion to load the class."
 msgstr ""
 
-#: gnu/packages/perl.scm:6760
+#: gnu/packages/perl.scm:7212
 msgid "Using Moo and MooX:: packages the most lazy way"
 msgstr ""
 
-#: gnu/packages/perl.scm:6761
+#: gnu/packages/perl.scm:7213
 msgid "Contains the MooX and MooX::Role packages."
 msgstr ""
 
-#: gnu/packages/perl.scm:6787
+#: gnu/packages/perl.scm:7239
 msgid "Giving an easy Moo style way to make command organized CLI apps"
 msgstr ""
 
-#: gnu/packages/perl.scm:6788
+#: gnu/packages/perl.scm:7240
 msgid ""
 "This package eases the writing of command line utilities,\n"
 "accepting commands and subcommands and so on.  These commands can form a tree,\n"
@@ -17819,11 +20220,11 @@ msgid ""
 "most specific one) is instantiated."
 msgstr ""
 
-#: gnu/packages/perl.scm:6821
+#: gnu/packages/perl.scm:7273
 msgid "Moo eXtension for initializing objects from config file"
 msgstr ""
 
-#: gnu/packages/perl.scm:6822
+#: gnu/packages/perl.scm:7274
 msgid ""
 "This module is intended to easily load initialization values\n"
 "for attributes on object construction from an appropriate config file.  The\n"
@@ -17831,33 +20232,33 @@ msgid ""
 "@code{MooX::ConfigFromFile} ensures that the role is applied."
 msgstr ""
 
-#: gnu/packages/perl.scm:6846
+#: gnu/packages/perl.scm:7298
 msgid "Moo eXtension for @code{File::ConfigDir}"
 msgstr ""
 
-#: gnu/packages/perl.scm:6847
+#: gnu/packages/perl.scm:7299
 msgid ""
 "This module is a helper for easily finding configuration\n"
 "file locations.  This information can be used to find a suitable place for\n"
 "installing configuration files or for finding any piece of settings."
 msgstr ""
 
-#: gnu/packages/perl.scm:6882
+#: gnu/packages/perl.scm:7334
 msgid "NativeTrait-like behavior for Moo"
 msgstr ""
 
-#: gnu/packages/perl.scm:6884
+#: gnu/packages/perl.scm:7336
 msgid ""
 "@code{MooX::HandlesVia} is an extension of Moo's @code{handles}\n"
 "attribute functionality.  It provides a means of proxying functionality from\n"
 "an external class to the given attribute."
 msgstr ""
 
-#: gnu/packages/perl.scm:6912
+#: gnu/packages/perl.scm:7364
 msgid "Easily translate Moose code to Moo"
 msgstr ""
 
-#: gnu/packages/perl.scm:6914
+#: gnu/packages/perl.scm:7366
 msgid ""
 "MooX::late does the following:\n"
 "@enumerate\n"
@@ -17871,11 +20272,11 @@ msgid ""
 "@end enumerate"
 msgstr ""
 
-#: gnu/packages/perl.scm:6969
+#: gnu/packages/perl.scm:7421
 msgid "Explicit Options eXtension for Object Class"
 msgstr ""
 
-#: gnu/packages/perl.scm:6970
+#: gnu/packages/perl.scm:7422
 msgid ""
 "Create a command line tool with your Mo, Moo, Moose objects.\n"
 "You have an @code{option} keyword to replace the usual @code{has} to\n"
@@ -17884,43 +20285,43 @@ msgid ""
 "generate a command line tool."
 msgstr ""
 
-#: gnu/packages/perl.scm:6999
+#: gnu/packages/perl.scm:7451
 msgid "Make Moo-based object constructors blow up on unknown attributes"
 msgstr ""
 
-#: gnu/packages/perl.scm:7001
+#: gnu/packages/perl.scm:7453
 msgid ""
 "Loading @code{MooX::StrictConstructor} makes your constructors \"strict\".\n"
 "If your constructor is called with an attribute init argument that your class\n"
 "does not declare, then it dies."
 msgstr ""
 
-#: gnu/packages/perl.scm:7025
+#: gnu/packages/perl.scm:7477
 msgid "Moosish types and type builder"
 msgstr ""
 
-#: gnu/packages/perl.scm:7026
+#: gnu/packages/perl.scm:7478
 msgid ""
 "MooX::Types::MooseLike provides a possibility to build your\n"
 "own set of Moose-like types.  These custom types can then be used to describe\n"
 "fields in Moo-based classes."
 msgstr ""
 
-#: gnu/packages/perl.scm:7055
+#: gnu/packages/perl.scm:7507
 msgid "Fast Moose-compatible object system for perl5"
 msgstr ""
 
-#: gnu/packages/perl.scm:7057
+#: gnu/packages/perl.scm:7509
 msgid ""
 "Mouse is a @code{Moose} compatible object system that implements a\n"
 "subset of the functionality for reduced startup time."
 msgstr ""
 
-#: gnu/packages/perl.scm:7080
+#: gnu/packages/perl.scm:7532
 msgid "Extend attribute interfaces for Mouse"
 msgstr "Interfaces d'attribut étendu pour Mouse"
 
-#: gnu/packages/perl.scm:7082
+#: gnu/packages/perl.scm:7534
 msgid ""
 "While @code{Mouse} attributes provide a way to name your accessors,\n"
 "readers, writers, clearers and predicates, @code{MouseX::NativeTraits}\n"
@@ -17928,30 +20329,30 @@ msgid ""
 "of data."
 msgstr ""
 
-#: gnu/packages/perl.scm:7102
+#: gnu/packages/perl.scm:7554
 msgid "Mozilla's CA cert bundle in PEM format"
 msgstr ""
 
-#: gnu/packages/perl.scm:7103
+#: gnu/packages/perl.scm:7555
 msgid ""
 "@code{Mozilla::CA} provides a copy of Mozilla's bundle of\n"
 "Certificate Authority certificates in a form that can be consumed by modules\n"
 "and libraries based on OpenSSL."
 msgstr ""
 
-#: gnu/packages/perl.scm:7129
+#: gnu/packages/perl.scm:7581
 msgid "Disable multidimensional array emulation"
 msgstr ""
 
-#: gnu/packages/perl.scm:7131
+#: gnu/packages/perl.scm:7583
 msgid "Multidimensional disables multidimensional array emulation."
 msgstr ""
 
-#: gnu/packages/perl.scm:7148
+#: gnu/packages/perl.scm:7600
 msgid "MRO interface compatibility for Perls < 5.9.5"
 msgstr ""
 
-#: gnu/packages/perl.scm:7149
+#: gnu/packages/perl.scm:7601
 msgid ""
 "The \"mro\" namespace provides several utilities for dealing\n"
 "with method resolution order and method caching in general in Perl 5.9.5 and\n"
@@ -17959,11 +20360,11 @@ msgid ""
 "Perl (back to 5.6.0)."
 msgstr ""
 
-#: gnu/packages/perl.scm:7175
+#: gnu/packages/perl.scm:7627
 msgid "Keep imports out of your namespace"
 msgstr ""
 
-#: gnu/packages/perl.scm:7176
+#: gnu/packages/perl.scm:7628
 msgid ""
 "The namespace::autoclean pragma will remove all imported\n"
 "symbols at the end of the current package's compile cycle.  Functions called\n"
@@ -17974,11 +20375,11 @@ msgid ""
 "anything that looks like a method."
 msgstr ""
 
-#: gnu/packages/perl.scm:7202
+#: gnu/packages/perl.scm:7654
 msgid "Keep imports and functions out of your namespace"
 msgstr ""
 
-#: gnu/packages/perl.scm:7203
+#: gnu/packages/perl.scm:7655
 msgid ""
 "The namespace::clean pragma will remove all previously\n"
 "declared or imported symbols at the end of the current package's compile\n"
@@ -17986,11 +20387,11 @@ msgid ""
 "name, but they won't show up as methods on your class or instances."
 msgstr ""
 
-#: gnu/packages/perl.scm:7221
+#: gnu/packages/perl.scm:7673
 msgid "Object-oriented API to the BGP protocol"
 msgstr ""
 
-#: gnu/packages/perl.scm:7223
+#: gnu/packages/perl.scm:7675
 msgid ""
 "This module is an implementation of the BGP-4 inter-domain routing protocol.\n"
 "It encapsulates all of the functionality needed to establish and maintain a\n"
@@ -18003,11 +20404,11 @@ msgid ""
 "implemented using the API provided by the module."
 msgstr ""
 
-#: gnu/packages/perl.scm:7248
+#: gnu/packages/perl.scm:7700
 msgid "Non-blocking system DNS resolver"
 msgstr ""
 
-#: gnu/packages/perl.scm:7250
+#: gnu/packages/perl.scm:7702
 msgid ""
 "This class provides several methods for host name resolution.  It is\n"
 "designed to be used with event loops.  Names are resolved by your system's\n"
@@ -18016,11 +20417,11 @@ msgid ""
 "system threads instead of Perl threads."
 msgstr ""
 
-#: gnu/packages/perl.scm:7273
+#: gnu/packages/perl.scm:7725
 msgid "Internationalizing Domain Names in Applications (IDNA)"
 msgstr ""
 
-#: gnu/packages/perl.scm:7275
+#: gnu/packages/perl.scm:7727
 msgid ""
 "Internationalized Domain Names (IDNs) use characters drawn from a large\n"
 "repertoire (Unicode), but IDNA allows the non-ASCII characters to be\n"
@@ -18031,31 +20432,31 @@ msgid ""
 "using whatever IDNA standard is the best choice at the moment."
 msgstr ""
 
-#: gnu/packages/perl.scm:7301
+#: gnu/packages/perl.scm:7753
 msgid "Perl client for Etsy's statsd daemon"
 msgstr ""
 
-#: gnu/packages/perl.scm:7302
+#: gnu/packages/perl.scm:7754
 msgid ""
 "This module implement a UDP client for the statsd statistics\n"
 "collector daemon in use at Etsy.com."
 msgstr ""
 
-#: gnu/packages/perl.scm:7320
+#: gnu/packages/perl.scm:7772
 msgid "Numeric comparisons"
 msgstr ""
 
-#: gnu/packages/perl.scm:7321
+#: gnu/packages/perl.scm:7773
 msgid ""
 "Number::Compare compiles a simple comparison to an anonymous\n"
 "subroutine, which you can call with a value to be tested against."
 msgstr ""
 
-#: gnu/packages/perl.scm:7339
+#: gnu/packages/perl.scm:7791
 msgid "Convert numbers to strings with pretty formatting"
 msgstr ""
 
-#: gnu/packages/perl.scm:7340
+#: gnu/packages/perl.scm:7792
 msgid ""
 "@code{Number::Format} is a library for formatting numbers.\n"
 "Functions are provided for converting numbers to strings in a variety of ways,\n"
@@ -18066,32 +20467,32 @@ msgid ""
 "the locale information or can be specified by the user."
 msgstr ""
 
-#: gnu/packages/perl.scm:7364
+#: gnu/packages/perl.scm:7816
 msgid "Perl extension defining ranges of numbers"
 msgstr "Extension Perl pour définir des intervalles de nombres"
 
-#: gnu/packages/perl.scm:7365
+#: gnu/packages/perl.scm:7817
 msgid ""
 "Number::Range is an object-oriented interface to test if a\n"
 "number exists in a given range, and to be able to manipulate the range."
 msgstr ""
 
-#: gnu/packages/perl.scm:7384
+#: gnu/packages/perl.scm:7836
 msgid "Generate cryptographic signatures for objects"
 msgstr ""
 
-#: gnu/packages/perl.scm:7385
+#: gnu/packages/perl.scm:7837
 msgid ""
 "Object::Signature is an abstract base class that you can\n"
 "inherit from in order to allow your objects to generate unique cryptographic\n"
 "signatures."
 msgstr ""
 
-#: gnu/packages/perl.scm:7406
+#: gnu/packages/perl.scm:7858
 msgid "Read and write OLE storage files"
 msgstr ""
 
-#: gnu/packages/perl.scm:7407
+#: gnu/packages/perl.scm:7859
 msgid ""
 "This module allows you to read and write\n"
 "an OLE-Structured file.  @dfn{OLE} (Object Linking and Embedding) is a\n"
@@ -18099,43 +20500,53 @@ msgid ""
 "documents within a single file."
 msgstr ""
 
-#: gnu/packages/perl.scm:7430
+#: gnu/packages/perl.scm:7918
+msgid "Perl bindings to the OpenGL API, GLU, and GLUT/FreeGLUT"
+msgstr ""
+
+#: gnu/packages/perl.scm:7919
+msgid ""
+"The package provides Perl bindings to OpenGL, GLU\n"
+"and FreeGLUT."
+msgstr "Ce paquet fournit les liaisons Perl pour OpenGL, GLU et FreeGLUT."
+
+#: gnu/packages/perl.scm:7940
 msgid "Anonymous packages"
 msgstr ""
 
-#: gnu/packages/perl.scm:7431
+#: gnu/packages/perl.scm:7941
 msgid ""
 "This module allows for anonymous packages that are\n"
 "independent of the main namespace and only available through an object\n"
 "instance, not by name."
 msgstr ""
 
-#: gnu/packages/perl.scm:7459
+#: gnu/packages/perl.scm:7969
 msgid "Manage deprecation warnings for your distribution"
 msgstr ""
 
-#: gnu/packages/perl.scm:7460
+#: gnu/packages/perl.scm:7970
 msgid ""
 "This module allows you to manage a set of deprecations for\n"
 "one or more modules."
 msgstr ""
 
-#: gnu/packages/perl.scm:7486
+#: gnu/packages/perl.scm:7996
 msgid "Routines for manipulating stashes"
 msgstr ""
 
-#: gnu/packages/perl.scm:7487
+#: gnu/packages/perl.scm:7997
 msgid ""
 "Manipulating stashes (Perl's symbol tables) is occasionally\n"
 "necessary, but incredibly messy, and easy to get wrong.  This module hides all\n"
 "of that behind a simple API."
 msgstr ""
 
-#: gnu/packages/perl.scm:7509
+#: gnu/packages/perl.scm:8019
 msgid "Faster implementation of the Package::Stash API"
 msgstr ""
 
-#: gnu/packages/perl.scm:7510
+#: gnu/packages/perl.scm:8020
 msgid ""
 "This is a backend for Package::Stash, which provides the\n"
 "functionality in a way that's less buggy and much faster.  It will be used by\n"
@@ -18143,11 +20554,11 @@ msgid ""
 "compiler."
 msgstr ""
 
-#: gnu/packages/perl.scm:7529
+#: gnu/packages/perl.scm:8039
 msgid "Play with other peoples' lexical variables"
 msgstr ""
 
-#: gnu/packages/perl.scm:7530
+#: gnu/packages/perl.scm:8040
 msgid ""
 "PadWalker is a module which allows you to inspect (and even\n"
 "change) lexical variables in any subroutine which called you.  It will only\n"
@@ -18155,22 +20566,22 @@ msgid ""
 "is particularly useful for debugging."
 msgstr ""
 
-#: gnu/packages/perl.scm:7554
+#: gnu/packages/perl.scm:8064
 msgid "Simple parallel processing fork manager"
 msgstr ""
 
-#: gnu/packages/perl.scm:7555
+#: gnu/packages/perl.scm:8065
 msgid ""
 "@code{Parallel::ForkManager} is intended for use in\n"
 "operations that can be done in parallel where the number of\n"
 "processes to be forked off should be limited."
 msgstr ""
 
-#: gnu/packages/perl.scm:7581
+#: gnu/packages/perl.scm:8091
 msgid "Argument type classification"
 msgstr ""
 
-#: gnu/packages/perl.scm:7582
+#: gnu/packages/perl.scm:8092
 msgid ""
 "This module provides various type-testing functions.\n"
 "These are intended for functions that care what type of data they are\n"
@@ -18184,31 +20595,31 @@ msgid ""
 "designed for the more complex job, such as @code{Params::Validate}"
 msgstr ""
 
-#: gnu/packages/perl.scm:7609
+#: gnu/packages/perl.scm:8119
 msgid "Simple, compact and correct param-checking functions"
 msgstr ""
 
-#: gnu/packages/perl.scm:7611
+#: gnu/packages/perl.scm:8121
 msgid ""
 "Params::Util provides a basic set of importable functions that makes\n"
 "checking parameters easier."
 msgstr ""
 
-#: gnu/packages/perl.scm:7635
+#: gnu/packages/perl.scm:8145
 msgid "Validate method/function parameters"
 msgstr ""
 
-#: gnu/packages/perl.scm:7636
+#: gnu/packages/perl.scm:8146
 msgid ""
 "The Params::Validate module allows you to validate method or\n"
 "function call parameters to an arbitrary level of specificity."
 msgstr ""
 
-#: gnu/packages/perl.scm:7663
+#: gnu/packages/perl.scm:8173
 msgid "Build an optimized subroutine parameter validator"
 msgstr ""
 
-#: gnu/packages/perl.scm:7664
+#: gnu/packages/perl.scm:8174
 msgid ""
 "This module creates a customized, highly efficient\n"
 "parameter checking subroutine.  It can handle named or positional\n"
@@ -18217,31 +20628,31 @@ msgid ""
 "defaults, optional parameters, and extra \"slurpy\" parameters."
 msgstr ""
 
-#: gnu/packages/perl.scm:7685
+#: gnu/packages/perl.scm:8195
 msgid "Create and manipulate PAR distributions"
 msgstr ""
 
-#: gnu/packages/perl.scm:7686
+#: gnu/packages/perl.scm:8196
 msgid ""
 "PAR::Dist is a toolkit to create and manipulate PAR\n"
 "distributions."
 msgstr ""
 
-#: gnu/packages/perl.scm:7708
+#: gnu/packages/perl.scm:8218
 msgid "Path specification manipulation"
 msgstr ""
 
-#: gnu/packages/perl.scm:7709
+#: gnu/packages/perl.scm:8219
 msgid ""
 "Path::Class is a module for manipulation of file and\n"
 "directory specifications in a cross-platform manner."
 msgstr ""
 
-#: gnu/packages/perl.scm:7739
+#: gnu/packages/perl.scm:8249
 msgid "Tools for working with directory and file names"
 msgstr "Outils pour travailler avec des noms de répertoires et de fichiers"
 
-#: gnu/packages/perl.scm:7740
+#: gnu/packages/perl.scm:8250
 msgid ""
 "This package provides functions to work with directory and\n"
 "file names."
@@ -18249,42 +20660,42 @@ msgstr ""
 "Ce paquet fournit des fonctions pour travailler avec des noms\n"
 "de répertoires et de fichiers."
 
-#: gnu/packages/perl.scm:7764
+#: gnu/packages/perl.scm:8274
 msgid "File path utility"
 msgstr ""
 
-#: gnu/packages/perl.scm:7765
+#: gnu/packages/perl.scm:8275
 msgid ""
 "This module provides a small, fast utility for working\n"
 "with file paths."
 msgstr ""
 
-#: gnu/packages/perl.scm:7788
+#: gnu/packages/perl.scm:8298
 msgid "Facilitates the creation and modification of PDF files"
 msgstr ""
 
-#: gnu/packages/perl.scm:7789
+#: gnu/packages/perl.scm:8299
 msgid ""
 "This Perl module facilitates the creation and modification\n"
 "of PDF files."
 msgstr ""
 
-#: gnu/packages/perl.scm:7810
+#: gnu/packages/perl.scm:8320
 msgid "Fast and correct UTF-8 IO"
 msgstr ""
 
-#: gnu/packages/perl.scm:7811
+#: gnu/packages/perl.scm:8321
 msgid ""
 "@code{PerlIO::utf8_strict} provides a fast and correct UTF-8\n"
 "PerlIO layer.  Unlike Perl's default @code{:utf8} layer it checks the input\n"
 "for correctness."
 msgstr ""
 
-#: gnu/packages/perl.scm:7834
+#: gnu/packages/perl.scm:8344
 msgid "Acmeist PEG Parser Framework"
 msgstr ""
 
-#: gnu/packages/perl.scm:7835
+#: gnu/packages/perl.scm:8345
 msgid ""
 "Pegex is an Acmeist parser framework.  It allows you to easily\n"
 "create parsers that will work equivalently in lots of programming languages.\n"
@@ -18294,32 +20705,32 @@ msgid ""
 "available."
 msgstr ""
 
-#: gnu/packages/perl.scm:7859
+#: gnu/packages/perl.scm:8369
 msgid "Check for comprehensive documentation of a module"
 msgstr ""
 
-#: gnu/packages/perl.scm:7860
+#: gnu/packages/perl.scm:8370
 msgid ""
 "This module provides a mechanism for determining if the pod\n"
 "for a given module is comprehensive."
 msgstr ""
 
-#: gnu/packages/perl.scm:7877
+#: gnu/packages/perl.scm:8387
 msgid "Parsing library for text in Pod format"
 msgstr ""
 
-#: gnu/packages/perl.scm:7878
+#: gnu/packages/perl.scm:8388
 msgid ""
 "@code{Pod::Simple} is a Perl library for parsing text in\n"
 "the @dfn{Pod} (plain old documentation) markup language that is typically\n"
 "used for writing documentation for Perl and for Perl modules."
 msgstr ""
 
-#: gnu/packages/perl.scm:7899
+#: gnu/packages/perl.scm:8409
 msgid "GNU C library compatible strftime for loggers and servers"
 msgstr ""
 
-#: gnu/packages/perl.scm:7900
+#: gnu/packages/perl.scm:8410
 msgid ""
 "POSIX::strftime::Compiler provides GNU C library compatible\n"
 "strftime(3).  But this module is not affected by the system locale.  This\n"
@@ -18327,32 +20738,42 @@ msgid ""
 "applications."
 msgstr ""
 
-#: gnu/packages/perl.scm:7918
+#: gnu/packages/perl.scm:8442
+msgid "Parse, analyze and manipulate Perl (without Perl)"
+msgstr ""
+
+#: gnu/packages/perl.scm:8443
+msgid ""
+"The PPI module parses, analyzes and manipulates Perl\n"
+"code."
+msgstr ""
+
+#: gnu/packages/perl.scm:8459
 msgid "Information about the currently running perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:7920
+#: gnu/packages/perl.scm:8461
 msgid ""
 "Probe::Perl provides methods for obtaining information about the\n"
 "currently running perl interpreter.  It originally began life as code in the\n"
 "Module::Build project, but has been externalized here for general use."
 msgstr ""
 
-#: gnu/packages/perl.scm:7947
+#: gnu/packages/perl.scm:8488
 msgid "Interface to external editor from Perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:7948
+#: gnu/packages/perl.scm:8489
 msgid ""
 "This module provides the ability to supply some text to an\n"
 "external text editor, have it edited by the user, and retrieve the results."
 msgstr ""
 
-#: gnu/packages/perl.scm:7967
+#: gnu/packages/perl.scm:8508
 msgid "Create read-only scalars, arrays, hashes"
 msgstr ""
 
-#: gnu/packages/perl.scm:7968
+#: gnu/packages/perl.scm:8509
 msgid ""
 "This module provides a facility for creating non-modifiable\n"
 "variables in Perl.  This is useful for configuration files, headers, etc.  It\n"
@@ -18360,11 +20781,11 @@ msgid ""
 "variables that should not be changed."
 msgstr ""
 
-#: gnu/packages/perl.scm:7988
+#: gnu/packages/perl.scm:8529
 msgid "XS implementation for Ref::Util"
 msgstr ""
 
-#: gnu/packages/perl.scm:7989
+#: gnu/packages/perl.scm:8530
 msgid ""
 "@code{Ref::Util::XS} is the XS implementation of\n"
 "@code{Ref::Util}, which provides several functions to help identify references\n"
@@ -18372,11 +20793,11 @@ msgid ""
 "of @code{ref}."
 msgstr ""
 
-#: gnu/packages/perl.scm:8007
+#: gnu/packages/perl.scm:8548
 msgid "Provide commonly requested regular expressions"
 msgstr ""
 
-#: gnu/packages/perl.scm:8009
+#: gnu/packages/perl.scm:8550
 msgid ""
 "This module exports a single hash (@code{%RE}) that stores or generates\n"
 "commonly needed regular expressions.  Patterns currently provided include:\n"
@@ -18386,11 +20807,11 @@ msgid ""
 "codes."
 msgstr ""
 
-#: gnu/packages/perl.scm:8033
+#: gnu/packages/perl.scm:8574
 msgid "Selection of general-utility regexp subroutines"
 msgstr ""
 
-#: gnu/packages/perl.scm:8034
+#: gnu/packages/perl.scm:8575
 msgid ""
 "This package provides a selection of regular expression\n"
 "subroutines including @code{is_regexp}, @code{regexp_seen_evals},\n"
@@ -18398,29 +20819,29 @@ msgid ""
 "and @code{deserialize_regexp}."
 msgstr ""
 
-#: gnu/packages/perl.scm:8059
+#: gnu/packages/perl.scm:8600
 msgid "Roles, as a slice of Moose"
 msgstr ""
 
-#: gnu/packages/perl.scm:8060
+#: gnu/packages/perl.scm:8601
 msgid "Role::Tiny is a minimalist role composition tool."
 msgstr ""
 
-#: gnu/packages/perl.scm:8090
+#: gnu/packages/perl.scm:8631
 msgid "Call isa, can, does, and DOES safely"
 msgstr ""
 
-#: gnu/packages/perl.scm:8091
+#: gnu/packages/perl.scm:8632
 msgid ""
 "This module allows you to call isa, can, does, and DOES\n"
 "safely on things that may not be objects."
 msgstr ""
 
-#: gnu/packages/perl.scm:8114
+#: gnu/packages/perl.scm:8655
 msgid "String aspects of scalars"
 msgstr ""
 
-#: gnu/packages/perl.scm:8115
+#: gnu/packages/perl.scm:8656
 msgid ""
 "@code{Scalar::String} is about the string part of\n"
 "plain Perl scalars.  A scalar has a string value, which is notionally\n"
@@ -18433,11 +20854,11 @@ msgid ""
 "with a pure Perl backup version for systems that cannot handle XS."
 msgstr ""
 
-#: gnu/packages/perl.scm:8140
+#: gnu/packages/perl.scm:8681
 msgid "Lexically-scoped resource management"
 msgstr "Gestion de ressources à portée lexicale"
 
-#: gnu/packages/perl.scm:8141
+#: gnu/packages/perl.scm:8682
 msgid ""
 "This module provides a convenient way to perform cleanup or\n"
 "other forms of resource management at the end of a scope.  It is particularly\n"
@@ -18448,39 +20869,39 @@ msgid ""
 "collector."
 msgstr ""
 
-#: gnu/packages/perl.scm:8164
+#: gnu/packages/perl.scm:8705
 msgid "Infinite sets"
 msgstr ""
 
-#: gnu/packages/perl.scm:8165
+#: gnu/packages/perl.scm:8706
 msgid "Set::Infinite is a set theory module for infinite sets."
 msgstr ""
 
-#: gnu/packages/perl.scm:8182
+#: gnu/packages/perl.scm:8723
 msgid "Manage sets of integers"
 msgstr ""
 
-#: gnu/packages/perl.scm:8183
+#: gnu/packages/perl.scm:8724
 msgid ""
 "@code{Set::IntSpan} manages sets of integers.  It is\n"
 "optimized for sets that have long runs of consecutive integers."
 msgstr ""
 
-#: gnu/packages/perl.scm:8203
+#: gnu/packages/perl.scm:8744
 msgid "Unordered collections of Perl Objects"
 msgstr ""
 
-#: gnu/packages/perl.scm:8204
+#: gnu/packages/perl.scm:8745
 msgid ""
 "Set::Object provides efficient sets, unordered collections\n"
 "of Perl objects without duplicates for scalars and references."
 msgstr ""
 
-#: gnu/packages/perl.scm:8222
+#: gnu/packages/perl.scm:8763
 msgid "Set operations for Perl"
 msgstr "Opération ensemblistes pour Perl"
 
-#: gnu/packages/perl.scm:8223
+#: gnu/packages/perl.scm:8764
 msgid ""
 "The first priority of Set::Scalar is to be a convenient\n"
 "interface to sets (as in: unordered collections of Perl scalars).  While not\n"
@@ -18488,21 +20909,21 @@ msgid ""
 "compact."
 msgstr ""
 
-#: gnu/packages/perl.scm:8243
+#: gnu/packages/perl.scm:8784
 msgid "Sort arrays by one or multiple calculated keys"
 msgstr ""
 
-#: gnu/packages/perl.scm:8244
+#: gnu/packages/perl.scm:8785
 msgid ""
 "This Perl module provides various functions to quickly sort\n"
 "arrays by one or multiple calculated keys."
 msgstr ""
 
-#: gnu/packages/perl.scm:8262
+#: gnu/packages/perl.scm:8803
 msgid "Sort lexically, but sort numeral parts numerically"
 msgstr ""
 
-#: gnu/packages/perl.scm:8263
+#: gnu/packages/perl.scm:8804
 msgid ""
 "This module exports two functions, @code{nsort} and\n"
 "@code{ncmp}; they are used in implementing a \"natural sorting\" algorithm.\n"
@@ -18510,11 +20931,11 @@ msgid ""
 "word-characters are compared lexically."
 msgstr ""
 
-#: gnu/packages/perl.scm:8291
+#: gnu/packages/perl.scm:8832
 msgid "Classes for representing type constraints and coercion"
 msgstr ""
 
-#: gnu/packages/perl.scm:8292
+#: gnu/packages/perl.scm:8833
 msgid ""
 "The Specio distribution provides classes for representing type\n"
 "constraints and coercion, along with syntax sugar for declaring them.  Note that\n"
@@ -18525,11 +20946,11 @@ msgid ""
 "coerce values to that type."
 msgstr ""
 
-#: gnu/packages/perl.scm:8315
+#: gnu/packages/perl.scm:8856
 msgid "Spiffy Perl Interface Framework For You"
 msgstr ""
 
-#: gnu/packages/perl.scm:8316
+#: gnu/packages/perl.scm:8857
 msgid ""
 "Spiffy is a framework and methodology for doing object\n"
 "oriented (OO) programming in Perl.  Spiffy combines the best parts of\n"
@@ -18539,21 +20960,21 @@ msgid ""
 "other OO languages like Python, Ruby, Java and Perl 6."
 msgstr ""
 
-#: gnu/packages/perl.scm:8340
+#: gnu/packages/perl.scm:8881
 msgid "Collection of very basic statistics modules"
 msgstr "Collection de modules de statistiques très basiques"
 
-#: gnu/packages/perl.scm:8341
+#: gnu/packages/perl.scm:8882
 msgid ""
 "This package provides basic statistics functions like\n"
 "@code{median()}, @code{mean()}, @code{variance()} and @code{stddev()}."
 msgstr ""
 
-#: gnu/packages/perl.scm:8359
+#: gnu/packages/perl.scm:8900
 msgid "Temporary buffer to save bytes"
 msgstr ""
 
-#: gnu/packages/perl.scm:8360
+#: gnu/packages/perl.scm:8901
 msgid ""
 "Stream::Buffered is a buffer class to store arbitrary length\n"
 "of byte strings and then get a seekable filehandle once everything is\n"
@@ -18561,31 +20982,31 @@ msgid ""
 "on the length of the size."
 msgstr ""
 
-#: gnu/packages/perl.scm:8380
+#: gnu/packages/perl.scm:8921
 msgid "Turn on strict and make all warnings fatal"
 msgstr ""
 
-#: gnu/packages/perl.scm:8381
+#: gnu/packages/perl.scm:8922
 msgid ""
 "Strictures turns on strict and make all warnings fatal when\n"
 "run from within a source-controlled directory."
 msgstr ""
 
-#: gnu/packages/perl.scm:8421
+#: gnu/packages/perl.scm:8962
 msgid "Camelcase and de-camelcase"
 msgstr ""
 
-#: gnu/packages/perl.scm:8422
+#: gnu/packages/perl.scm:8963
 msgid ""
 "This module may be used to convert from under_score text to\n"
 "CamelCase and back again."
 msgstr ""
 
-#: gnu/packages/perl.scm:8441
+#: gnu/packages/perl.scm:8982
 msgid "Backslash escapes, quoted phrase, word elision, etc."
 msgstr ""
 
-#: gnu/packages/perl.scm:8442
+#: gnu/packages/perl.scm:8983
 msgid ""
 "This module provides a flexible calling interface to some\n"
 "frequently-performed string conversion functions, including applying and\n"
@@ -18594,63 +21015,63 @@ msgid ""
 "removing double-quotes, and truncating to fit within a desired length."
 msgstr ""
 
-#: gnu/packages/perl.scm:8467
+#: gnu/packages/perl.scm:9008
 msgid "Build your own sprintf-like functions"
 msgstr ""
 
-#: gnu/packages/perl.scm:8469
+#: gnu/packages/perl.scm:9010
 msgid ""
 "@code{String::Formatter} is a tool for building sprintf-like formatting\n"
 "routines.  It supports named or positional formatting, custom conversions,\n"
 "fixed string interpolation, and simple width-matching."
 msgstr ""
 
-#: gnu/packages/perl.scm:8490
+#: gnu/packages/perl.scm:9031
 msgid "Rewrite strings based on a set of known prefixes"
 msgstr ""
 
-#: gnu/packages/perl.scm:8491
+#: gnu/packages/perl.scm:9032
 msgid ""
 "This module allows you to rewrite strings based on a set of\n"
 "known prefixes."
 msgstr ""
 
-#: gnu/packages/perl.scm:8511
+#: gnu/packages/perl.scm:9052
 msgid "Quote strings for passing through a shell"
 msgstr ""
 
-#: gnu/packages/perl.scm:8513
+#: gnu/packages/perl.scm:9054
 msgid ""
 "@code{shell-quote} lets you pass arbitrary strings through the shell so\n"
 "that they won't be changed."
 msgstr ""
 
-#: gnu/packages/perl.scm:8532
+#: gnu/packages/perl.scm:9073
 msgid "String printing alternatives to printf"
 msgstr ""
 
-#: gnu/packages/perl.scm:8534
+#: gnu/packages/perl.scm:9075
 msgid ""
 "This module inserts values into (translated) strings.  It provides\n"
 "@code{printf} and @code{sprintf} alternatives via both an object-oriented and\n"
 "a functional interface."
 msgstr ""
 
-#: gnu/packages/perl.scm:8557
+#: gnu/packages/perl.scm:9098
 msgid "Sophisticated exporter for custom-built routines"
 msgstr ""
 
-#: gnu/packages/perl.scm:8559
+#: gnu/packages/perl.scm:9100
 msgid ""
 "Sub::Exporter provides a sophisticated alternative to Exporter.pm for\n"
 "custom-built routines."
 msgstr ""
 
-#: gnu/packages/perl.scm:8578
+#: gnu/packages/perl.scm:9119
 msgid "Only use Sub::Exporter if you need it"
 msgstr ""
 
-#: gnu/packages/perl.scm:8579
+#: gnu/packages/perl.scm:9120
 msgid ""
 "Sub::Exporter is an incredibly powerful module, but with\n"
 "that power comes great responsibility, as well as some runtime penalties.\n"
@@ -18660,21 +21081,21 @@ msgid ""
 "renaming exports, if they try to use them."
 msgstr ""
 
-#: gnu/packages/perl.scm:8601
+#: gnu/packages/perl.scm:9142
 msgid "Retrieve names of code references"
 msgstr ""
 
-#: gnu/packages/perl.scm:8602
+#: gnu/packages/perl.scm:9143
 msgid ""
 "Sub::Identify allows you to retrieve the real name of code\n"
 "references."
 msgstr ""
 
-#: gnu/packages/perl.scm:8622
+#: gnu/packages/perl.scm:9163
 msgid "Tool to inspect subroutines"
 msgstr ""
 
-#: gnu/packages/perl.scm:8623
+#: gnu/packages/perl.scm:9164
 msgid ""
 "This package provides tools for inspecting subroutines\n"
 "in Perl."
@@ -18682,54 +21103,54 @@ msgstr ""
 "Ce paquet fournit des outils pour inspecter les sous-routines\n"
 "en Perl."
 
-#: gnu/packages/perl.scm:8642
+#: gnu/packages/perl.scm:9183
 msgid "Install subroutines into packages easily"
 msgstr ""
 
-#: gnu/packages/perl.scm:8644
+#: gnu/packages/perl.scm:9185
 msgid ""
 "Sub::Install makes it easy to install subroutines into packages without\n"
 "the unsightly mess of C<no strict> or typeglobs lying about where just anyone\n"
 "can see them."
 msgstr ""
 
-#: gnu/packages/perl.scm:8665
+#: gnu/packages/perl.scm:9206
 msgid "(Re)name a sub"
 msgstr ""
 
-#: gnu/packages/perl.scm:8666
+#: gnu/packages/perl.scm:9207
 msgid ""
 "Assigns a new name to referenced sub.  If package\n"
 "specification is omitted in the name, then the current package is used.  The\n"
 "return value is the sub."
 msgstr ""
 
-#: gnu/packages/perl.scm:8689
+#: gnu/packages/perl.scm:9230
 msgid "Efficient generation of subroutines via string eval"
 msgstr ""
 
-#: gnu/packages/perl.scm:8690
+#: gnu/packages/perl.scm:9231
 msgid ""
 "Sub::Quote provides an efficient generation of subroutines\n"
 "via string eval."
 msgstr ""
 
-#: gnu/packages/perl.scm:8708
+#: gnu/packages/perl.scm:9249
 msgid "Apparently run a function in a higher stack frame"
 msgstr ""
 
-#: gnu/packages/perl.scm:8709
+#: gnu/packages/perl.scm:9250
 msgid ""
 "Like Tcl's uplevel() function, but not quite so dangerous.\n"
 "The idea is just to fool caller().  All the really naughty bits of Tcl's\n"
 "uplevel() are avoided."
 msgstr ""
 
-#: gnu/packages/perl.scm:8731
+#: gnu/packages/perl.scm:9272
 msgid "Control superclass method dispatching"
 msgstr ""
 
-#: gnu/packages/perl.scm:8733
+#: gnu/packages/perl.scm:9274
 msgid ""
 "When subclassing a class, you may occasionally want to dispatch control to\n"
 "the superclass---at least conditionally and temporarily.  This module provides\n"
@@ -18738,11 +21159,11 @@ msgid ""
 "support for run-time mix-ins and roles."
 msgstr ""
 
-#: gnu/packages/perl.scm:8753
+#: gnu/packages/perl.scm:9294
 msgid "Perl extension for generating SVG documents"
 msgstr ""
 
-#: gnu/packages/perl.scm:8754
+#: gnu/packages/perl.scm:9295
 msgid ""
 "SVG is a Perl module which generates a nested data structure\n"
 "containing the DOM representation of an SVG (Scalable Vector Graphics) image.\n"
@@ -18751,53 +21172,53 @@ msgid ""
 "animation content."
 msgstr ""
 
-#: gnu/packages/perl.scm:8775
+#: gnu/packages/perl.scm:9316
 msgid "Switch statement for Perl"
 msgstr "Commande switch pour Perl"
 
-#: gnu/packages/perl.scm:8776
+#: gnu/packages/perl.scm:9317
 msgid ""
 "Switch is a Perl module which implements a generalized case\n"
 "mechanism.  The module augments the standard Perl syntax with two new\n"
 "statements: @code{switch} and @code{case}."
 msgstr ""
 
-#: gnu/packages/perl.scm:8823
+#: gnu/packages/perl.scm:9364
 msgid "Perl extension for getting CPU information"
 msgstr ""
 
-#: gnu/packages/perl.scm:8825
+#: gnu/packages/perl.scm:9366
 msgid ""
 "Sys::CPU is a module for counting the number of CPUs on a system, and\n"
 "determining their type and clock speed."
 msgstr ""
 
-#: gnu/packages/perl.scm:8845
+#: gnu/packages/perl.scm:9386
 msgid "Get full hostname in Perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:8846
+#: gnu/packages/perl.scm:9387
 msgid ""
 "Sys::Hostname::Long tries very hard to get the full hostname\n"
 "of a system."
 msgstr ""
 
-#: gnu/packages/perl.scm:8865
+#: gnu/packages/perl.scm:9406
 msgid "Access system calls that Perl doesn't normally provide access to"
 msgstr ""
 
-#: gnu/packages/perl.scm:8867
+#: gnu/packages/perl.scm:9408
 msgid ""
 "Sys::Syscall allows one to use epoll and sendfile system calls from\n"
 "Perl.  Support is mostly Linux-only for now, but other syscalls/OSes are\n"
 "planned for the future."
 msgstr ""
 
-#: gnu/packages/perl.scm:8895
+#: gnu/packages/perl.scm:9436
 msgid "Ensure that a platform has weaken support"
 msgstr ""
 
-#: gnu/packages/perl.scm:8896
+#: gnu/packages/perl.scm:9437
 msgid ""
 "One recurring problem in modules that use Scalar::Util's\n"
 "weaken function is that it is not present in the pure-perl variant.  If\n"
@@ -18807,11 +21228,11 @@ msgid ""
 "error encouraging the user to seek support."
 msgstr ""
 
-#: gnu/packages/perl.scm:8921
+#: gnu/packages/perl.scm:9462
 msgid "Template processing system for Perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:8922
+#: gnu/packages/perl.scm:9463
 msgid ""
 "The Template Toolkit is a collection of modules which\n"
 "implement an extensible template processing system.  It was originally\n"
@@ -18820,21 +21241,21 @@ msgid ""
 "documents: HTML, XML, POD, PostScript, LaTeX, and so on."
 msgstr ""
 
-#: gnu/packages/perl.scm:8945
+#: gnu/packages/perl.scm:9486
 msgid "Profiling for Template Toolkit"
 msgstr ""
 
-#: gnu/packages/perl.scm:8946
+#: gnu/packages/perl.scm:9487
 msgid ""
 "Template::Timer provides inline profiling of the template\n"
 "processing in Perl code."
 msgstr ""
 
-#: gnu/packages/perl.scm:8966
+#: gnu/packages/perl.scm:9507
 msgid "Template Toolkit reimplemented in as little code as possible"
 msgstr ""
 
-#: gnu/packages/perl.scm:8968
+#: gnu/packages/perl.scm:9509
 msgid ""
 "@code{Template::Tiny} is a reimplementation of a subset of the\n"
 "functionality from Template Toolkit in as few lines of code as possible.\n"
@@ -18844,32 +21265,32 @@ msgid ""
 "future, or if you want the retain the familiarity of TT-style templates."
 msgstr ""
 
-#: gnu/packages/perl.scm:8992
+#: gnu/packages/perl.scm:9533
 msgid "Detect encoding of the current terminal"
 msgstr ""
 
-#: gnu/packages/perl.scm:8993
+#: gnu/packages/perl.scm:9534
 msgid ""
 "Term::Encoding is a simple module to detect the encoding of\n"
 "the current terminal expects in various ways."
 msgstr ""
 
-#: gnu/packages/perl.scm:9017
+#: gnu/packages/perl.scm:9558
 msgid "Progress meter on a standard terminal"
 msgstr ""
 
-#: gnu/packages/perl.scm:9018
+#: gnu/packages/perl.scm:9559
 msgid ""
 "Term::ProgressBar provides a simple progress bar on the\n"
 "terminal, to let the user know that something is happening, roughly how much\n"
 "stuff has been done, and maybe an estimate at how long remains."
 msgstr ""
 
-#: gnu/packages/perl.scm:9041
+#: gnu/packages/perl.scm:9582
 msgid "Progress meter if run interactively"
 msgstr ""
 
-#: gnu/packages/perl.scm:9042
+#: gnu/packages/perl.scm:9583
 msgid ""
 "Term::ProgressBar is a wonderful module for showing progress\n"
 "bars on the terminal.  This module acts very much like that module when it is\n"
@@ -18877,21 +21298,21 @@ msgid ""
 "a cron job) then it does not show the progress bar."
 msgstr ""
 
-#: gnu/packages/perl.scm:9064
+#: gnu/packages/perl.scm:9605
 msgid "Simple progress bars"
 msgstr ""
 
-#: gnu/packages/perl.scm:9065
+#: gnu/packages/perl.scm:9606
 msgid ""
 "Term::ProgressBar::Simple tells you how much work has been\n"
 "done, how much is left to do, and estimate how long it will take."
 msgstr ""
 
-#: gnu/packages/perl.scm:9083
+#: gnu/packages/perl.scm:9624
 msgid "Simple terminal control"
 msgstr "Contrôle de terminal simple"
 
-#: gnu/packages/perl.scm:9084
+#: gnu/packages/perl.scm:9625
 msgid ""
 "This module, ReadKey, provides ioctl control for terminals\n"
 "so the input modes can be changed (thus allowing reads of a single character\n"
@@ -18900,11 +21321,11 @@ msgid ""
 "screen size, and retrieval/modification of the control characters."
 msgstr ""
 
-#: gnu/packages/perl.scm:9122
+#: gnu/packages/perl.scm:9663
 msgid "GNU Readline/History Library interface for Perl"
 msgstr "Interface GNU Readline et History pour Perl"
 
-#: gnu/packages/perl.scm:9123
+#: gnu/packages/perl.scm:9664
 msgid ""
 "This module implements an interface to the GNU Readline\n"
 "library.  It gives you input line editing facilities, input history management\n"
@@ -18912,11 +21333,11 @@ msgid ""
 "compatible with Term::ReadLine."
 msgstr ""
 
-#: gnu/packages/perl.scm:9147
+#: gnu/packages/perl.scm:9688
 msgid "Retrieve terminal size"
 msgstr ""
 
-#: gnu/packages/perl.scm:9148
+#: gnu/packages/perl.scm:9689
 msgid ""
 "This is a unified interface to retrieve terminal size.  It\n"
 "loads one module of a list of known alternatives, each implementing some way\n"
@@ -18924,62 +21345,62 @@ msgid ""
 "the job on behalf of @code{Term::Size::Any}."
 msgstr ""
 
-#: gnu/packages/perl.scm:9167
+#: gnu/packages/perl.scm:9708
 msgid "Perl extension for retrieving terminal size (Perl version)"
 msgstr ""
 
-#: gnu/packages/perl.scm:9168
+#: gnu/packages/perl.scm:9709
 msgid ""
 "This is yet another implementation of @code{Term::Size}.\n"
 "Now in pure Perl, with the exception of a C probe run at build time."
 msgstr ""
 
-#: gnu/packages/perl.scm:9188
+#: gnu/packages/perl.scm:9729
 msgid "Format a header and rows into a table"
 msgstr ""
 
-#: gnu/packages/perl.scm:9189
+#: gnu/packages/perl.scm:9730
 msgid ""
 "This module is able to generically format rows of data\n"
 "into tables."
 msgstr ""
 
-#: gnu/packages/perl.scm:9207
+#: gnu/packages/perl.scm:9748
 msgid "Align text"
 msgstr ""
 
-#: gnu/packages/perl.scm:9208
+#: gnu/packages/perl.scm:9749
 msgid ""
 "Text::Aligner exports a single function, align(), which is\n"
 "used to justify strings to various alignment styles."
 msgstr ""
 
-#: gnu/packages/perl.scm:9226
+#: gnu/packages/perl.scm:9767
 msgid "Extract delimited text sequences from strings"
 msgstr ""
 
-#: gnu/packages/perl.scm:9227
+#: gnu/packages/perl.scm:9768
 msgid ""
 "The Text::Balanced module can be used to extract delimited\n"
 "text sequences from strings."
 msgstr ""
 
-#: gnu/packages/perl.scm:9244
+#: gnu/packages/perl.scm:9785
 msgid "Manipulate comma-separated values"
 msgstr ""
 
-#: gnu/packages/perl.scm:9245
+#: gnu/packages/perl.scm:9786
 msgid ""
 "Text::CSV provides facilities for the composition and\n"
 "decomposition of comma-separated values.  An instance of the Text::CSV class\n"
 "can combine fields into a CSV string and parse a CSV string into fields."
 msgstr ""
 
-#: gnu/packages/perl.scm:9263
+#: gnu/packages/perl.scm:9804
 msgid "Routines for manipulating CSV files"
 msgstr "Routines pour manipuler des fichiers CSV"
 
-#: gnu/packages/perl.scm:9264
+#: gnu/packages/perl.scm:9805
 msgid ""
 "@code{Text::CSV_XS} provides facilities for the composition\n"
 "and decomposition of comma-separated values.  An instance of the\n"
@@ -18989,11 +21410,11 @@ msgid ""
 "and escapes."
 msgstr ""
 
-#: gnu/packages/perl.scm:9288
+#: gnu/packages/perl.scm:9829
 msgid "Perform diffs on files and record sets"
 msgstr ""
 
-#: gnu/packages/perl.scm:9289
+#: gnu/packages/perl.scm:9830
 msgid ""
 "Text::Diff provides a basic set of services akin to the GNU\n"
 "diff utility.  It is not anywhere near as feature complete as GNU diff, but it\n"
@@ -19002,44 +21423,65 @@ msgid ""
 "generally slower on larger files."
 msgstr ""
 
-#: gnu/packages/perl.scm:9314
+#: gnu/packages/perl.scm:9855
 msgid "Various subroutines to format text"
 msgstr ""
 
-#: gnu/packages/perl.scm:9315
+#: gnu/packages/perl.scm:9856
 msgid ""
 "This package provides functions to format text in various\n"
 "ways like centering, paragraphing, and converting tabs to spaces and spaces\n"
 "to tabs."
 msgstr ""
 
-#: gnu/packages/perl.scm:9335
+#: gnu/packages/perl.scm:9876
 msgid "Match globbing patterns against text"
 msgstr ""
 
-#: gnu/packages/perl.scm:9336
+#: gnu/packages/perl.scm:9877
 msgid ""
 "Text::Glob implements glob(3) style matching that can be\n"
 "used to match against text, rather than fetching names from a file system.  If\n"
 "you want to do full file globbing use the File::Glob module instead."
 msgstr ""
 
-#: gnu/packages/perl.scm:9359
+#: gnu/packages/perl.scm:9900
+msgid "Haml Perl implementation"
+msgstr "Implémentation Haml de Perl"
+
+#: gnu/packages/perl.scm:9902
+msgid ""
+"Text::Haml implements Haml\n"
+"@url{http://haml.info/docs/yardoc/file.REFERENCE.html} specification."
+msgstr ""
+
+#: gnu/packages/perl.scm:9924
 msgid "Fast, middleweight template engine"
 msgstr ""
 
-#: gnu/packages/perl.scm:9361
+#: gnu/packages/perl.scm:9926
 msgid ""
 "Text::NeatTemplate provides a simple, middleweight but fast\n"
 "template engine, for when you need speed rather than complex features,\n"
 "yet need more features than simple variable substitution."
 msgstr ""
 
-#: gnu/packages/perl.scm:9380
+#: gnu/packages/perl.scm:9946
+msgid "Patches text with given patch"
+msgstr ""
+
+#: gnu/packages/perl.scm:9947
+msgid ""
+"Text::Patch combines source text with given\n"
+"diff (difference) data.  Diff data is produced by Text::Diff module or\n"
+"by the standard @code{diff} utility."
+msgstr ""
+
+#: gnu/packages/perl.scm:9966
 msgid "Convert between Roman and Arabic algorisms"
 msgstr ""
 
-#: gnu/packages/perl.scm:9381
+#: gnu/packages/perl.scm:9967
 msgid ""
 "This package provides functions to convert between Roman and\n"
 "Arabic algorisms.  It supports both conventional Roman algorisms (which range\n"
@@ -19047,27 +21489,27 @@ msgid ""
 "algorism to indicate multiplication by 1000."
 msgstr ""
 
-#: gnu/packages/perl.scm:9400
+#: gnu/packages/perl.scm:9986
 msgid "Simple ASCII tables"
 msgstr ""
 
-#: gnu/packages/perl.scm:9401
+#: gnu/packages/perl.scm:9987
 msgid "Text::SimpleTable draws simple ASCII tables."
 msgstr ""
 
-#: gnu/packages/perl.scm:9422
+#: gnu/packages/perl.scm:10008
 msgid "Organize Data in Tables"
 msgstr ""
 
-#: gnu/packages/perl.scm:9423
+#: gnu/packages/perl.scm:10009
 msgid "Text::Table renders plaintext tables."
 msgstr ""
 
-#: gnu/packages/perl.scm:9447
+#: gnu/packages/perl.scm:10033
 msgid "Expand template text with embedded Perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:9449
+#: gnu/packages/perl.scm:10035
 msgid ""
 "This is a library for generating letters, building HTML pages, or\n"
 "filling in templates generally.  A template is a piece of text that has little\n"
@@ -19075,11 +21517,11 @@ msgid ""
 "evaluate the little programs and replace them with their values."
 msgstr ""
 
-#: gnu/packages/perl.scm:9468
+#: gnu/packages/perl.scm:10054
 msgid "Provide plain ASCII transliterations of Unicode text"
 msgstr ""
 
-#: gnu/packages/perl.scm:9469
+#: gnu/packages/perl.scm:10055
 msgid ""
 "Text::Unidecode provides a function, unidecode(...) that\n"
 "takes Unicode data and tries to represent it in US-ASCII characters (i.e., the\n"
@@ -19089,29 +21531,29 @@ msgid ""
 "system."
 msgstr ""
 
-#: gnu/packages/perl.scm:9490
+#: gnu/packages/perl.scm:10076
 msgid "Perl interpreter-based threads"
 msgstr ""
 
-#: gnu/packages/perl.scm:9491
+#: gnu/packages/perl.scm:10077
 msgid "This module exposes interpreter threads to the Perl level."
 msgstr ""
 
-#: gnu/packages/perl.scm:9514
+#: gnu/packages/perl.scm:10100
 msgid "Role for classes that can be thrown"
 msgstr ""
 
-#: gnu/packages/perl.scm:9515
+#: gnu/packages/perl.scm:10101
 msgid ""
 "Throwable is a role for classes that are meant to be thrown\n"
 "as exceptions to standard program flow."
 msgstr ""
 
-#: gnu/packages/perl.scm:9532
+#: gnu/packages/perl.scm:10118
 msgid "Perl script tidier"
 msgstr ""
 
-#: gnu/packages/perl.scm:9533
+#: gnu/packages/perl.scm:10119
 msgid ""
 "This package contains a Perl script which indents and\n"
 "reformats Perl scripts to make them easier to read.   The formatting can be\n"
@@ -19119,21 +21561,21 @@ msgid ""
 "approximately follow the suggestions in the Perl Style Guide."
 msgstr ""
 
-#: gnu/packages/perl.scm:9553
+#: gnu/packages/perl.scm:10139
 msgid "Cycle through a list of values"
 msgstr ""
 
-#: gnu/packages/perl.scm:9554
+#: gnu/packages/perl.scm:10140
 msgid ""
 "You use @code{Tie::Cycle} to go through a list over and over\n"
 "again.  Once you get to the end of the list, you go back to the beginning."
 msgstr ""
 
-#: gnu/packages/perl.scm:9573
+#: gnu/packages/perl.scm:10159
 msgid "Ordered associative arrays for Perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:9574
+#: gnu/packages/perl.scm:10160
 msgid ""
 "This Perl module implements Perl hashes that preserve the\n"
 "order in which the hash elements were added.  The order is not affected when\n"
@@ -19142,63 +21584,79 @@ msgid ""
 "operations can also be performed on the IxHash."
 msgstr ""
 
-#: gnu/packages/perl.scm:9597
+#: gnu/packages/perl.scm:10183
 msgid "Special file handle that hides the beginning of a file"
 msgstr ""
 
-#: gnu/packages/perl.scm:9599
+#: gnu/packages/perl.scm:10185
 msgid ""
 "This modules provides a file handle that hides the beginning of a file,\n"
 "by modifying the @code{seek()} and @code{tell()} calls."
 msgstr ""
 
-#: gnu/packages/perl.scm:9619
+#: gnu/packages/perl.scm:10202
+msgid "Variable ties made much easier"
+msgstr ""
+
+#: gnu/packages/perl.scm:10204
+msgid ""
+"This module adds the ability to quickly create new types of tie objects\n"
+"without creating a complete class.  It does so in such a way as to try and\n"
+"make the programmers life easier when it comes to single-use ties that I find\n"
+"myself wanting to use from time-to-time.\n"
+"\n"
+"The Tie::Simple package is actually a front-end to other classes which really\n"
+"do all the work once tied, but this package does the dwimming to automatically\n"
+"figure out what you're trying to do."
+msgstr ""
+
+#: gnu/packages/perl.scm:10230
 msgid "Tie to an existing Perl object"
 msgstr ""
 
-#: gnu/packages/perl.scm:9620
+#: gnu/packages/perl.scm:10231
 msgid ""
 "This class provides a tie constructor that returns the\n"
 "object it was given as it's first argument.  This way side effects of calling\n"
 "$object->TIEHASH are avoided."
 msgstr ""
 
-#: gnu/packages/perl.scm:9642
+#: gnu/packages/perl.scm:10253
 msgid "English expression of durations"
 msgstr ""
 
-#: gnu/packages/perl.scm:9643
+#: gnu/packages/perl.scm:10254
 msgid ""
 "This module provides functions for expressing durations in\n"
 "rounded or exact terms."
 msgstr ""
 
-#: gnu/packages/perl.scm:9664
+#: gnu/packages/perl.scm:10275
 msgid "Parse time duration strings"
 msgstr ""
 
-#: gnu/packages/perl.scm:9665
+#: gnu/packages/perl.scm:10276
 msgid ""
 "Time::Duration::Parse is a module to parse human readable\n"
 "duration strings like \"2 minutes\" and \"3 seconds\" to seconds."
 msgstr ""
 
-#: gnu/packages/perl.scm:9683
-msgid "High resolution alarm, sleep, gettimeofday, interval timers"
+#: gnu/packages/perl.scm:10294
+msgid "High-resolution alarm, sleep, gettimeofday, and interval timers"
 msgstr ""
 
-#: gnu/packages/perl.scm:9684
+#: gnu/packages/perl.scm:10295
 msgid ""
 "This package implements @code{usleep}, @code{ualarm}, and\n"
 "@code{gettimeofday} for Perl, as well as wrappers to implement @code{time},\n"
 "@code{sleep}, and @code{alarm} that know about non-integral seconds."
 msgstr ""
 
-#: gnu/packages/perl.scm:9703
+#: gnu/packages/perl.scm:10314
 msgid "Efficiently compute time from local and GMT time"
 msgstr ""
 
-#: gnu/packages/perl.scm:9704
+#: gnu/packages/perl.scm:10315
 msgid ""
 "This module provides functions that are the inverse of\n"
 "built-in perl functions localtime() and gmtime().  They accept a date as a\n"
@@ -19206,11 +21664,11 @@ msgid ""
 "the system epoch."
 msgstr ""
 
-#: gnu/packages/perl.scm:9724
+#: gnu/packages/perl.scm:10335
 msgid "Object-Oriented time objects"
 msgstr ""
 
-#: gnu/packages/perl.scm:9726
+#: gnu/packages/perl.scm:10337
 msgid ""
 "This module replaces the standard @code{localtime} and @code{gmtime}\n"
 "functions with implementations that return objects.  It does so in a\n"
@@ -19218,62 +21676,62 @@ msgid ""
 "still work as expected."
 msgstr ""
 
-#: gnu/packages/perl.scm:9745
+#: gnu/packages/perl.scm:10356
 msgid "Date parsing/formatting subroutines"
 msgstr ""
 
-#: gnu/packages/perl.scm:9746
+#: gnu/packages/perl.scm:10357
 msgid ""
 "This module provides routines for parsing date string into\n"
 "time values and formatting dates into ASCII strings."
 msgstr ""
 
-#: gnu/packages/perl.scm:9768
+#: gnu/packages/perl.scm:10379
 msgid "Shift and scale time"
 msgstr ""
 
-#: gnu/packages/perl.scm:9769
+#: gnu/packages/perl.scm:10380
 msgid ""
 "This module allows you to speed up your sleep(), alarm(),\n"
 "and time() calls."
 msgstr ""
 
-#: gnu/packages/perl.scm:9791
+#: gnu/packages/perl.scm:10402
 msgid "Simple tree object"
 msgstr ""
 
-#: gnu/packages/perl.scm:9792
+#: gnu/packages/perl.scm:10403
 msgid ""
 "This module in a fully object-oriented implementation of a\n"
 "simple n-ary tree."
 msgstr ""
 
-#: gnu/packages/perl.scm:9814
+#: gnu/packages/perl.scm:10425
 msgid "Factory object for dispensing Visitor objects"
 msgstr ""
 
-#: gnu/packages/perl.scm:9815
+#: gnu/packages/perl.scm:10426
 msgid ""
 "This module is a factory for dispensing\n"
 "Tree::Simple::Visitor::* objects."
 msgstr ""
 
-#: gnu/packages/perl.scm:9833
+#: gnu/packages/perl.scm:10444
 msgid "Minimal try/catch with proper preservation of $@@"
 msgstr ""
 
-#: gnu/packages/perl.scm:9834
+#: gnu/packages/perl.scm:10445
 msgid ""
 "This module provides bare bones try/catch/finally statements\n"
 "that are designed to minimize common mistakes with eval blocks, and nothing\n"
 "else."
 msgstr ""
 
-#: gnu/packages/perl.scm:9858
+#: gnu/packages/perl.scm:10469
 msgid "Tie a variable to a type constraint"
 msgstr ""
 
-#: gnu/packages/perl.scm:9859
+#: gnu/packages/perl.scm:10470
 msgid ""
 "This module exports a single function: @code{ttie}.  It ties\n"
 "a variable to a type constraint, ensuring that whatever values stored in the\n"
@@ -19282,11 +21740,11 @@ msgid ""
 "variable conform."
 msgstr ""
 
-#: gnu/packages/perl.scm:9891
+#: gnu/packages/perl.scm:10502
 msgid "Tiny, yet Moo(se)-compatible type constraint"
 msgstr ""
 
-#: gnu/packages/perl.scm:9892
+#: gnu/packages/perl.scm:10503
 msgid ""
 "@code{Type::Tiny} is a small class for writing type\n"
 "constraints, inspired by Moose's type constraint API.  It has only one\n"
@@ -19295,11 +21753,11 @@ msgid ""
 "be used with Moose, Mouse and Moo (or none of the above)."
 msgstr ""
 
-#: gnu/packages/perl.scm:9912
+#: gnu/packages/perl.scm:10523
 msgid "Provides an XS boost for some of Type::Tiny's built-in type constraints"
 msgstr ""
 
-#: gnu/packages/perl.scm:9913
+#: gnu/packages/perl.scm:10524
 msgid ""
 "This module is optionally used by @code{Type::Tiny} to\n"
 "provide faster, C-based implementations of some type constraints.  This\n"
@@ -19307,11 +21765,11 @@ msgid ""
 "so other data validation frameworks might also consider using it."
 msgstr ""
 
-#: gnu/packages/perl.scm:9937
+#: gnu/packages/perl.scm:10548
 msgid "Types and coercions for Moose and Moo"
 msgstr ""
 
-#: gnu/packages/perl.scm:9938
+#: gnu/packages/perl.scm:10549
 msgid ""
 "This module provides @code{Path::Tiny} types for Moose, Moo,\n"
 "etc.  It handles two important types of coercion: coercing objects with\n"
@@ -19319,29 +21777,29 @@ msgid ""
 "to ensure that files or directories exist."
 msgstr ""
 
-#: gnu/packages/perl.scm:9960
+#: gnu/packages/perl.scm:10571
 msgid "Data types for common serialisation formats"
 msgstr ""
 
-#: gnu/packages/perl.scm:9961
+#: gnu/packages/perl.scm:10572
 msgid ""
 "This module provides some extra datatypes that are used by\n"
 "common serialisation formats such as JSON or CBOR."
 msgstr ""
 
-#: gnu/packages/perl.scm:9988
+#: gnu/packages/perl.scm:10599
 msgid "Unicode normalization forms"
 msgstr ""
 
-#: gnu/packages/perl.scm:9989
+#: gnu/packages/perl.scm:10600
 msgid "This Perl module provides Unicode normalization forms."
 msgstr ""
 
-#: gnu/packages/perl.scm:10017
+#: gnu/packages/perl.scm:10628
 msgid "Unicode collation algorithm"
 msgstr ""
 
-#: gnu/packages/perl.scm:10018
+#: gnu/packages/perl.scm:10629
 msgid ""
 "This package provides tools for sorting and comparing\n"
 "Unicode data."
@@ -19349,63 +21807,63 @@ msgstr ""
 "Ce paquet fournit des outils pour trier et comparer des\n"
 "données Unicode."
 
-#: gnu/packages/perl.scm:10039
+#: gnu/packages/perl.scm:10650
 msgid "Unicode line breaking algorithm"
 msgstr ""
 
-#: gnu/packages/perl.scm:10041
+#: gnu/packages/perl.scm:10652
 msgid ""
 "@code{Unicode::LineBreak} implements the line breaking algorithm\n"
 "described in Unicode Standard Annex #14.  The @code{East_Asian_Width} property\n"
 "defined by Annex #11 is used to determine breaking positions."
 msgstr ""
 
-#: gnu/packages/perl.scm:10067
+#: gnu/packages/perl.scm:10678
 msgid "Encoding and decoding of UTF-8 encoding form"
 msgstr ""
 
-#: gnu/packages/perl.scm:10069
+#: gnu/packages/perl.scm:10680
 msgid ""
 "This module provides functions to encode and decode UTF-8 encoding form\n"
 "as specified by Unicode and ISO/IEC 10646:2011."
 msgstr ""
 
-#: gnu/packages/perl.scm:10087
+#: gnu/packages/perl.scm:10698
 msgid "UNIVERSAL::can() reimplementation"
 msgstr ""
 
-#: gnu/packages/perl.scm:10088
+#: gnu/packages/perl.scm:10699
 msgid ""
 "This module attempts to work around people calling\n"
 "UNIVERSAL::can() as a function, which it is not."
 msgstr ""
 
-#: gnu/packages/perl.scm:10108
+#: gnu/packages/perl.scm:10719
 msgid "UNIVERSAL::isa() reimplementation"
 msgstr ""
 
-#: gnu/packages/perl.scm:10109
+#: gnu/packages/perl.scm:10720
 msgid ""
 "This module attempts to recover from people calling\n"
 "UNIVERSAL::isa as a function."
 msgstr ""
 
-#: gnu/packages/perl.scm:10128
+#: gnu/packages/perl.scm:10739
 msgid "Require modules from a variable"
 msgstr ""
 
-#: gnu/packages/perl.scm:10129
+#: gnu/packages/perl.scm:10740
 msgid ""
 "This module lets you require other modules where the module\n"
 "name is in a variable, something you can't do with the @code{require}\n"
 "built-in."
 msgstr ""
 
-#: gnu/packages/perl.scm:10148
+#: gnu/packages/perl.scm:10759
 msgid "Associate user-defined magic to variables from Perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:10149
+#: gnu/packages/perl.scm:10760
 msgid ""
 "Magic is Perl's way of enhancing variables.  This mechanism\n"
 "lets the user add extra data to any variable and hook syntactical\n"
@@ -19414,11 +21872,11 @@ msgid ""
 "having to write a single line of XS."
 msgstr ""
 
-#: gnu/packages/perl.scm:10172
+#: gnu/packages/perl.scm:10783
 msgid "Easily generate well-formed, namespace-aware XML"
 msgstr ""
 
-#: gnu/packages/perl.scm:10173
+#: gnu/packages/perl.scm:10784
 msgid ""
 "@code{XML::Writer} is a simple Perl module for writing XML\n"
 "documents: it takes care of constructing markup and escaping data correctly.\n"
@@ -19428,11 +21886,11 @@ msgid ""
 "attribute names."
 msgstr ""
 
-#: gnu/packages/perl.scm:10200
+#: gnu/packages/perl.scm:10811
 msgid "Opaque, extensible XS pointer backed objects using sv_magic"
 msgstr ""
 
-#: gnu/packages/perl.scm:10202
+#: gnu/packages/perl.scm:10813
 msgid ""
 "This way of associating structs with Perl space objects is designed to\n"
 "supersede Perl's builtin @code{T_PTROBJ} with something that is extensible\n"
@@ -19440,62 +21898,62 @@ msgid ""
 "neither visible nor modifiable from Perl space)."
 msgstr ""
 
-#: gnu/packages/perl.scm:10223
+#: gnu/packages/perl.scm:10834
 msgid "YAML for Perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:10224
+#: gnu/packages/perl.scm:10835
 msgid ""
 "The YAML.pm module implements a YAML Loader and Dumper based\n"
 "on the YAML 1.0 specification."
 msgstr ""
 
-#: gnu/packages/perl.scm:10242
+#: gnu/packages/perl.scm:10853
 msgid "Perl YAML Serialization using XS and libyaml"
 msgstr ""
 
-#: gnu/packages/perl.scm:10244
+#: gnu/packages/perl.scm:10855
 msgid ""
 "@code{YAML::XS} is a Perl XS binding to libyaml which offers Perl the\n"
 "best YAML support to date."
 msgstr ""
 
-#: gnu/packages/perl.scm:10267
+#: gnu/packages/perl.scm:10878
 msgid "Read/Write YAML files"
 msgstr ""
 
-#: gnu/packages/perl.scm:10268
+#: gnu/packages/perl.scm:10879
 msgid ""
 "YAML::Tiny is a perl class for reading and writing\n"
 "YAML-style files, written with as little code as possible, reducing load time\n"
 "and memory overhead."
 msgstr ""
 
-#: gnu/packages/perl.scm:10292
+#: gnu/packages/perl.scm:10903
 msgid "Generate recursive-descent parsers"
 msgstr ""
 
-#: gnu/packages/perl.scm:10294
+#: gnu/packages/perl.scm:10905
 msgid ""
 "@code{Parse::RecDescent} can incrementally generate top-down\n"
 "recursive-descent text parsers from simple yacc-like grammar specifications."
 msgstr ""
 
-#: gnu/packages/perl.scm:10314
+#: gnu/packages/perl.scm:10925
 msgid "Generate and use LALR parsers"
 msgstr ""
 
-#: gnu/packages/perl.scm:10315
+#: gnu/packages/perl.scm:10926
 msgid ""
 "This package compiles yacc-like @dfn{Look Ahead LR} (LALR)\n"
 "grammars to generate Perl object oriented parser modules."
 msgstr ""
 
-#: gnu/packages/perl.scm:10341
+#: gnu/packages/perl.scm:10952
 msgid "Distribution metadata for a CPAN dist"
 msgstr ""
 
-#: gnu/packages/perl.scm:10342
+#: gnu/packages/perl.scm:10953
 msgid ""
 "Software distributions released to the CPAN include a\n"
 "META.json or, for older distributions, META.yml, which describes the\n"
@@ -19506,11 +21964,11 @@ msgid ""
 "methods for interrogating that data."
 msgstr ""
 
-#: gnu/packages/perl.scm:10365
+#: gnu/packages/perl.scm:10976
 msgid "Set of version requirements for a CPAN dist"
 msgstr ""
 
-#: gnu/packages/perl.scm:10366
+#: gnu/packages/perl.scm:10977
 msgid ""
 "A CPAN::Meta::Requirements object models a set of version\n"
 "constraints like those specified in the META.yml or META.json files in CPAN\n"
@@ -19519,22 +21977,22 @@ msgid ""
 "representation."
 msgstr ""
 
-#: gnu/packages/perl.scm:10389
+#: gnu/packages/perl.scm:11000
 msgid "Read and write a subset of YAML for CPAN Meta files"
 msgstr ""
 
-#: gnu/packages/perl.scm:10390
+#: gnu/packages/perl.scm:11001
 msgid ""
 "This module implements a subset of the YAML specification\n"
 "for use in reading and writing CPAN metadata files like META.yml and\n"
 "MYMETA.yml."
 msgstr ""
 
-#: gnu/packages/perl.scm:10411
+#: gnu/packages/perl.scm:11022
 msgid "Build and install Perl modules"
 msgstr ""
 
-#: gnu/packages/perl.scm:10412
+#: gnu/packages/perl.scm:11023
 msgid ""
 "@code{Module::Build} is a system for building, testing, and\n"
 "installing Perl modules; it used to be part of Perl itself until version 5.22,\n"
@@ -19545,21 +22003,21 @@ msgid ""
 "system---most of the @code{Module::Build} code is pure-Perl."
 msgstr ""
 
-#: gnu/packages/perl.scm:10438
+#: gnu/packages/perl.scm:11049
 msgid "Parse META.yml and META.json CPAN metadata files"
 msgstr ""
 
-#: gnu/packages/perl.scm:10439
+#: gnu/packages/perl.scm:11050
 msgid ""
 "Parse::CPAN::Meta is a parser for META.json and META.yml\n"
 "files, using JSON::PP and/or CPAN::Meta::YAML."
 msgstr ""
 
-#: gnu/packages/perl.scm:10456
+#: gnu/packages/perl.scm:11067
 msgid "Common Scalar and List utility subroutines"
 msgstr ""
 
-#: gnu/packages/perl.scm:10457
+#: gnu/packages/perl.scm:11068
 msgid ""
 "This package contains a selection of subroutines that people\n"
 "have expressed would be nice to have in the perl core, but the usage would not\n"
@@ -19567,39 +22025,51 @@ msgid ""
 "such that being individual extensions would be wasteful."
 msgstr ""
 
-#: gnu/packages/perl.scm:10481
+#: gnu/packages/perl.scm:11106
+msgid "SDL bindings to Perl"
+msgstr "Liaisons SDL pour Perl"
+
+#: gnu/packages/perl.scm:11108
+msgid ""
+"SDL Perl is a package of Perl modules that provide both functional and\n"
+"object oriented interfaces to the Simple DirectMedia Layer for Perl5.  This\n"
+"package takes some liberties with the SDL API, and attempts to adhere to the\n"
+"spirit of both the SDL and Perl."
+msgstr ""
+
+#: gnu/packages/perl.scm:11132
 msgid "Cross-platform functions emulating common shell commands"
 msgstr ""
 
-#: gnu/packages/perl.scm:10483
+#: gnu/packages/perl.scm:11134
 msgid "Shell::Command is a thin wrapper around ExtUtils::Command."
 msgstr ""
 
-#: gnu/packages/perl.scm:10510
+#: gnu/packages/perl.scm:11160
 msgid "Object-oriented File::Find replacement in Perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:10511
+#: gnu/packages/perl.scm:11161
 msgid ""
 "File::Find::Object is an object-oriented\n"
 "File::Find replacement in Perl."
 msgstr ""
 
-#: gnu/packages/perl.scm:10539
+#: gnu/packages/perl.scm:11189
 msgid "Alternative interface to File::Find::Object"
 msgstr ""
 
-#: gnu/packages/perl.scm:10540
+#: gnu/packages/perl.scm:11190
 msgid ""
 "File::Find::Object::Rule is an alternative Perl\n"
 "interface to File::Find::Object."
 msgstr ""
 
-#: gnu/packages/perl.scm:10561
+#: gnu/packages/perl.scm:11211
 msgid "Wrapper for @code{File::Find} ala @code{find(1)}"
 msgstr ""
 
-#: gnu/packages/perl.scm:10563
+#: gnu/packages/perl.scm:11213
 msgid ""
 "@code{File::Find} is great, but constructing the wanted routine can\n"
 "sometimes be a pain.  @code{File::Finder} provides a wanted-writer, using\n"
@@ -19614,11 +22084,11 @@ msgid ""
 "used as the head of many different sequences."
 msgstr ""
 
-#: gnu/packages/perl.scm:10592
+#: gnu/packages/perl.scm:11242
 msgid "TTF font support for Perl"
 msgstr "Support des polices TTF pour Perl"
 
-#: gnu/packages/perl.scm:10593
+#: gnu/packages/perl.scm:11243
 msgid ""
 "This package provides a Perl module for TrueType/OpenType\n"
 "font hacking.  It supports reading, processing and writing of the following\n"
@@ -19627,22 +22097,22 @@ msgid ""
 "prop, vhea, vmtx and the reading and writing of all other table types."
 msgstr ""
 
-#: gnu/packages/perl.scm:10631
+#: gnu/packages/perl.scm:11281
 msgid "Collection of Perl modules for time/date manipulation"
 msgstr ""
 
-#: gnu/packages/perl.scm:10632
+#: gnu/packages/perl.scm:11282
 msgid ""
 "Provides several perl modules for date/time manipulation:\n"
 "@code{Time::CTime.pm}, @code{Time::JulianDay.pm}, @code{Time::ParseDate.pm},\n"
 "@code{Time::Timezone.pm}, and @code{Time::DaysInMonth.pm}."
 msgstr ""
 
-#: gnu/packages/perl.scm:10661
+#: gnu/packages/perl.scm:11311
 msgid "Perl library for testing if a time() is in a specific period"
 msgstr ""
 
-#: gnu/packages/perl.scm:10662
+#: gnu/packages/perl.scm:11312
 msgid ""
 "This Perl library provides a function which tells whether a\n"
 "specific time falls within a specified time period.  Its syntax for specifying\n"
@@ -19652,11 +22122,11 @@ msgid ""
 "1998\"."
 msgstr ""
 
-#: gnu/packages/perl.scm:10693
+#: gnu/packages/perl.scm:11343
 msgid "Iterative, recursive file finder"
 msgstr ""
 
-#: gnu/packages/perl.scm:10694
+#: gnu/packages/perl.scm:11344
 msgid ""
 "Path::Iterator::Rule iterates over files and directories to\n"
 "identify ones matching a user-defined set of rules.  The API is based heavily\n"
@@ -19683,11 +22153,11 @@ msgid ""
 "arduous to type for one-liners."
 msgstr ""
 
-#: gnu/packages/perl.scm:10734
+#: gnu/packages/perl.scm:11384
 msgid "Include constants from POD"
 msgstr ""
 
-#: gnu/packages/perl.scm:10735
+#: gnu/packages/perl.scm:11385
 msgid ""
 "This module allows you to specify those constants that\n"
 "should be documented in your POD, and pull them out a run time in a fairly\n"
@@ -19699,116 +22169,116 @@ msgid ""
 "(or it can't find %INC{caller()})."
 msgstr ""
 
-#: gnu/packages/perl.scm:10761
+#: gnu/packages/perl.scm:11411
 msgid "Collection of regexp patterns"
 msgstr ""
 
-#: gnu/packages/perl.scm:10762
+#: gnu/packages/perl.scm:11412
 msgid ""
 "Regexp::Pattern is a convention for organizing reusable\n"
 "regexp patterns in modules."
 msgstr ""
 
-#: gnu/packages/perl.scm:10786
+#: gnu/packages/perl.scm:11436
 msgid "Parse Lisp S-Expressions into Perl data structures"
 msgstr ""
 
-#: gnu/packages/perl.scm:10787
+#: gnu/packages/perl.scm:11437
 msgid ""
 "Data::SExpression parses Lisp S-Expressions into Perl data\n"
 "structures."
 msgstr ""
 
-#: gnu/packages/photo.scm:160
+#: gnu/packages/photo.scm:170
 msgid "Import photos and videos from cameras, phones and memory cards"
 msgstr ""
 
-#: gnu/packages/photo.scm:161
+#: gnu/packages/photo.scm:171
 msgid ""
 "Import photos and videos from cameras, phones and memory\n"
 "cards and generate meaningful file and folder names."
 msgstr ""
 
-#: gnu/packages/photo.scm:184
+#: gnu/packages/photo.scm:194
 msgid "Raw image decoder"
 msgstr ""
 
-#: gnu/packages/photo.scm:186
+#: gnu/packages/photo.scm:196
 msgid ""
 "LibRaw is a library for reading RAW files obtained from digital photo\n"
 "cameras (CRW/CR2, NEF, RAF, DNG, and others)."
 msgstr ""
 
-#: gnu/packages/photo.scm:222
+#: gnu/packages/photo.scm:232
 msgid "Read and manipulate EXIF data in digital photographs"
 msgstr ""
 
-#: gnu/packages/photo.scm:224
+#: gnu/packages/photo.scm:234
 msgid ""
 "The libexif C library allows applications to read, edit, and save EXIF\n"
 "data as produced by digital cameras."
 msgstr ""
 
-#: gnu/packages/photo.scm:250
+#: gnu/packages/photo.scm:260
 msgid "Accessing digital cameras"
 msgstr ""
 
-#: gnu/packages/photo.scm:252
+#: gnu/packages/photo.scm:262
 msgid ""
 "This is the library backend for gphoto2.  It contains the code for PTP,\n"
 "MTP, and other vendor specific protocols for controlling and transferring data\n"
 "from digital cameras."
 msgstr ""
 
-#: gnu/packages/photo.scm:294
+#: gnu/packages/photo.scm:304
 msgid "Command-line tools to access digital cameras"
 msgstr ""
 
-#: gnu/packages/photo.scm:296
+#: gnu/packages/photo.scm:306
 msgid ""
 "Gphoto2 is a set of command line utilities for manipulating a large\n"
 "number of different digital cameras.  Through libgphoto2, it supports PTP,\n"
 "MTP, and much more."
 msgstr ""
 
-#: gnu/packages/photo.scm:337
+#: gnu/packages/photo.scm:347
 msgid "Program and Perl library to manipulate EXIF and other metadata"
 msgstr ""
 
-#: gnu/packages/photo.scm:338
+#: gnu/packages/photo.scm:348
 msgid ""
 "This package provides the @code{exiftool} command and the\n"
 "@code{Image::ExifTool} Perl library to manipulate EXIF tags of digital images\n"
 "and a wide variety of other metadata."
 msgstr ""
 
-#: gnu/packages/photo.scm:362
+#: gnu/packages/photo.scm:372
 msgid "Library for panoramic images"
 msgstr "Bibliothèque de d'images panoramiques"
 
-#: gnu/packages/photo.scm:364
+#: gnu/packages/photo.scm:374
 msgid ""
 "The libpano13 package contains the backend library written by the\n"
 "Panorama Tools project for building panoramic images from a set of\n"
 "overlapping images, as well as some command line tools."
 msgstr ""
 
-#: gnu/packages/photo.scm:408
+#: gnu/packages/photo.scm:418
 msgid "Tools for combining and blending images"
 msgstr "Outils de combinaison et mélange d'images"
 
-#: gnu/packages/photo.scm:410
+#: gnu/packages/photo.scm:420
 msgid ""
 "Enblend blends away the seams in a panoramic image mosaic using a\n"
 "multi-resolution spline.  Enfuse merges different exposures of the same\n"
 "scene to produce an image that looks much like a tone-mapped image."
 msgstr ""
 
-#: gnu/packages/photo.scm:441
+#: gnu/packages/photo.scm:451
 msgid "Library to correct optical lens defects with a lens database"
 msgstr ""
 
-#: gnu/packages/photo.scm:442
+#: gnu/packages/photo.scm:452
 msgid ""
 "Digital photographs are not ideal.  Of course, the better is\n"
 "your camera, the better the results will be, but in any case if you look\n"
@@ -19822,11 +22292,11 @@ msgid ""
 "photographic equipment."
 msgstr ""
 
-#: gnu/packages/photo.scm:516
+#: gnu/packages/photo.scm:570
 msgid "Virtual lighttable and darkroom for photographers"
 msgstr ""
 
-#: gnu/packages/photo.scm:517
+#: gnu/packages/photo.scm:571
 msgid ""
 "Darktable is a photography workflow application and RAW\n"
 "developer.  It manages your digital negatives in a database, lets you view\n"
@@ -19834,22 +22304,48 @@ msgid ""
 "and enhance them."
 msgstr ""
 
-#: gnu/packages/photo.scm:588
+#: gnu/packages/photo.scm:615
+msgid "Quick, simple but powerful image editor"
+msgstr ""
+
+#: gnu/packages/photo.scm:616
+msgid ""
+"Photoflare is a cross-platform image editor with an aim\n"
+"to balance between powerful features and a very friendly graphical user\n"
+"interface.  It suits a wide variety of different tasks and users who value a\n"
+"more nimble workflow.  Features include basic image editing capabilities,\n"
+"paint brushes, image filters, colour adjustments and more advanced features\n"
+"such as Batch image processing."
+msgstr ""
+
+#: gnu/packages/photo.scm:681
+msgid "Camera control and capture"
+msgstr ""
+
+#: gnu/packages/photo.scm:683
+msgid ""
+"Entangle is an application which uses GTK and libgphoto2 to provide a\n"
+"graphical interface for tethered photography with digital cameras.  It\n"
+"includes control over camera shooting and configuration settings and 'hands\n"
+"off' shooting directly from the controlling computer."
+msgstr ""
+
+#: gnu/packages/photo.scm:752
 msgid "Panorama photo stitcher"
 msgstr ""
 
-#: gnu/packages/photo.scm:590
+#: gnu/packages/photo.scm:754
 msgid ""
 "Hugin is an easy to use panoramic imaging toolchain with a graphical\n"
 "user interface.  It can be used to assemble a mosaic of photographs into\n"
 "a complete panorama and stitch any series of overlapping pictures."
 msgstr ""
 
-#: gnu/packages/photo.scm:642
+#: gnu/packages/photo.scm:806
 msgid "Raw image developing and processing"
 msgstr ""
 
-#: gnu/packages/photo.scm:643
+#: gnu/packages/photo.scm:807
 msgid ""
 "RawTherapee is a raw image processing suite.  It comprises a\n"
 "subset of image editing operations specifically aimed at non-destructive raw\n"
@@ -19879,11 +22375,11 @@ msgid ""
 "cripples Emacs and other quality pieces of software."
 msgstr ""
 
-#: gnu/packages/readline.scm:91
+#: gnu/packages/readline.scm:104
 msgid "Edit command lines while typing, with history support"
 msgstr ""
 
-#: gnu/packages/readline.scm:93
+#: gnu/packages/readline.scm:106
 msgid ""
 "The GNU readline library allows users to edit command lines as they\n"
 "are typed in.  It can maintain a searchable history of previously entered\n"
@@ -19892,11 +22388,11 @@ msgid ""
 "comfortable for anyone."
 msgstr ""
 
-#: gnu/packages/readline.scm:149
+#: gnu/packages/readline.scm:162
 msgid "Wrapper to allow the editing of keyboard commands"
 msgstr ""
 
-#: gnu/packages/readline.scm:151
+#: gnu/packages/readline.scm:164
 msgid ""
 "Rlwrap is a 'readline wrapper', a small utility that uses the GNU\n"
 "readline library to allow the editing of keyboard input for any command.  You\n"
@@ -19917,11 +22413,11 @@ msgid ""
 "package contains the library, but no drivers."
 msgstr ""
 
-#: gnu/packages/scanner.scm:158
+#: gnu/packages/scanner.scm:159
 msgid "Raster image scanner library and drivers, with scanner support"
 msgstr ""
 
-#: gnu/packages/scanner.scm:159
+#: gnu/packages/scanner.scm:160
 msgid ""
 "SANE stands for \"Scanner Access Now Easy\" and is an API\n"
 "proving access to any raster image scanner hardware (flatbed scanner,\n"
@@ -19929,11 +22425,11 @@ msgid ""
 "package contains the library and drivers."
 msgstr ""
 
-#: gnu/packages/scanner.scm:236
+#: gnu/packages/scanner.scm:237
 msgid "Featureful graphical interface for document and image scanners"
 msgstr ""
 
-#: gnu/packages/scanner.scm:238
+#: gnu/packages/scanner.scm:239
 msgid ""
 "XSane is a graphical interface for controlling a scanner and acquiring\n"
 "images from it.  You can photocopy multi-page documents and save, fax, print,\n"
@@ -19945,11 +22441,11 @@ msgid ""
 "back-end library, which supports almost all existing scanners."
 msgstr ""
 
-#: gnu/packages/scheme.scm:217
+#: gnu/packages/scheme.scm:220
 msgid "A Scheme implementation with integrated editor and debugger"
 msgstr "Une implantation de Scheme avec éditeur et débogueur intégrés"
 
-#: gnu/packages/scheme.scm:219
+#: gnu/packages/scheme.scm:222
 msgid ""
 "GNU/MIT Scheme is an implementation of the Scheme programming\n"
 "language.  It provides an interpreter, a compiler and a debugger.  It also\n"
@@ -19959,11 +22455,11 @@ msgstr ""
 "Il fournit un interpréteur, un compilateur et un débogueur. Il intègre\n"
 "également un éditeur sur le modèle d'Emacs et une librairie d'exécution complète."
 
-#: gnu/packages/scheme.scm:310
+#: gnu/packages/scheme.scm:313
 msgid "Efficient Scheme compiler"
 msgstr "Compilateur Scheme efficace"
 
-#: gnu/packages/scheme.scm:312
+#: gnu/packages/scheme.scm:315
 msgid ""
 "Bigloo is a Scheme implementation devoted to one goal: enabling Scheme\n"
 "based programming style where C(++) is usually required.  Bigloo attempts to\n"
@@ -19983,11 +22479,11 @@ msgstr ""
 "Bigloo permet de connecter complètement des programmes Scheme et C\n"
 "et des programmes Scheme et Java."
 
-#: gnu/packages/scheme.scm:363
+#: gnu/packages/scheme.scm:366
 msgid "Multi-tier programming language for the Web 2.0"
 msgstr ""
 
-#: gnu/packages/scheme.scm:365
+#: gnu/packages/scheme.scm:368
 msgid ""
 "HOP is a multi-tier programming language for the Web 2.0 and the\n"
 "so-called diffuse Web.  It is designed for programming interactive web\n"
@@ -19996,11 +22492,11 @@ msgid ""
 "mashups, office (web agendas, mail clients, ...), etc."
 msgstr ""
 
-#: gnu/packages/scheme.scm:386
+#: gnu/packages/scheme.scm:389
 msgid "Scheme implementation using a bytecode interpreter"
 msgstr "Implantation de Scheme utilisanat un interpréteur pour bytecode"
 
-#: gnu/packages/scheme.scm:388
+#: gnu/packages/scheme.scm:391
 msgid ""
 "Scheme 48 is an implementation of Scheme based on a byte-code\n"
 "interpreter and is designed to be used as a testbed for experiments in\n"
@@ -20010,11 +22506,11 @@ msgstr ""
 "destinée à être utilisée comme un banc d'essai pour des expérimentations\n"
 "portant sur des techniques d'implantation et comme un outil d'exposition."
 
-#: gnu/packages/scheme.scm:517
+#: gnu/packages/scheme.scm:520
 msgid "Implementation of Scheme and related languages"
 msgstr "Implantation de Scheme et d'autres langages associés"
 
-#: gnu/packages/scheme.scm:519
+#: gnu/packages/scheme.scm:522
 msgid ""
 "Racket is an implementation of the Scheme programming language (R5RS and\n"
 "R6RS) and related languages, such as Typed Racket.  It features a compiler and\n"
@@ -20026,11 +22522,11 @@ msgstr ""
 "une machine virtuelle avec compilation à la volée ainsi qu'un ensemble de\n"
 "bibliothèques."
 
-#: gnu/packages/scheme.scm:543
+#: gnu/packages/scheme.scm:546
 msgid "Racket without bundled packages such as Dr. Racket"
 msgstr ""
 
-#: gnu/packages/scheme.scm:555
+#: gnu/packages/scheme.scm:558
 msgid ""
 "Racket is an implementation of the Scheme programming language (R5RS and\n"
 "R6RS) and related languages, such as Typed Racket.  It features a compiler and\n"
@@ -20050,11 +22546,11 @@ msgstr ""
 "bibliothèques qui sont dans des collections. En particulier, @command{raco} et\n"
 "la bibliothèque @code{pkg} sont aussi incluses."
 
-#: gnu/packages/scheme.scm:585
+#: gnu/packages/scheme.scm:588
 msgid "Efficient Scheme interpreter and compiler"
 msgstr "Compilateur et interpréteur Scheme efficace"
 
-#: gnu/packages/scheme.scm:587
+#: gnu/packages/scheme.scm:590
 msgid ""
 "Gambit consists of two main programs: gsi, the Gambit Scheme\n"
 "interpreter, and gsc, the Gambit Scheme compiler.  The interpreter contains\n"
@@ -20065,11 +22561,11 @@ msgid ""
 "mixed."
 msgstr ""
 
-#: gnu/packages/scheme.scm:621
+#: gnu/packages/scheme.scm:624
 msgid "Small embeddable Scheme implementation"
 msgstr ""
 
-#: gnu/packages/scheme.scm:623
+#: gnu/packages/scheme.scm:626
 msgid ""
 "Chibi-Scheme is a very small library with no external dependencies\n"
 "intended for use as an extension and scripting language in C programs.  In\n"
@@ -20078,11 +22574,11 @@ msgid ""
 "threads."
 msgstr ""
 
-#: gnu/packages/scheme.scm:670
+#: gnu/packages/scheme.scm:673
 msgid "Structure and Interpretation of Computer Programs"
 msgstr ""
 
-#: gnu/packages/scheme.scm:671
+#: gnu/packages/scheme.scm:674
 msgid ""
 "Structure and Interpretation of Computer Programs (SICP) is\n"
 "a textbook aiming to teach the principles of computer programming.\n"
@@ -20092,31 +22588,31 @@ msgid ""
 "metalinguistic abstraction, recursion, interpreters, and modular programming."
 msgstr ""
 
-#: gnu/packages/scheme.scm:713
+#: gnu/packages/scheme.scm:716
 msgid "SRE String pattern-matching library for scheme48"
 msgstr ""
 
-#: gnu/packages/scheme.scm:715
+#: gnu/packages/scheme.scm:718
 msgid ""
 "String pattern-matching library for scheme48 based on the SRE\n"
 "regular-expression notation."
 msgstr ""
 
-#: gnu/packages/scheme.scm:748
+#: gnu/packages/scheme.scm:751
 msgid "Compatibility and utility library for Scheme"
 msgstr ""
 
-#: gnu/packages/scheme.scm:749
+#: gnu/packages/scheme.scm:752
 msgid ""
 "SLIB is a portable Scheme library providing compatibility and\n"
 "utility functions for all standard Scheme implementations."
 msgstr ""
 
-#: gnu/packages/scheme.scm:805
+#: gnu/packages/scheme.scm:808
 msgid "Scheme implementation conforming to R5RS and IEEE P1178"
 msgstr ""
 
-#: gnu/packages/scheme.scm:806
+#: gnu/packages/scheme.scm:809
 msgid ""
 "GNU SCM is an implementation of Scheme.  This\n"
 "implementation includes Hobbit, a Scheme-to-C compiler, which can\n"
@@ -20124,11 +22620,11 @@ msgid ""
 "linked with a SCM executable."
 msgstr ""
 
-#: gnu/packages/scheme.scm:863
+#: gnu/packages/scheme.scm:866
 msgid "Light-weight interpreter for the Scheme programming language"
 msgstr "Interpréteur léger pour le langage de programmation Scheme"
 
-#: gnu/packages/scheme.scm:865
+#: gnu/packages/scheme.scm:868
 msgid ""
 "TinyScheme is a light-weight Scheme interpreter that implements as large a\n"
 "subset of R5RS as was possible without getting very large and complicated.\n"
@@ -20144,11 +22640,11 @@ msgid ""
 "small program, it is easy to comprehend, get to grips with, and use."
 msgstr ""
 
-#: gnu/packages/scheme.scm:944
+#: gnu/packages/scheme.scm:947
 msgid "Brutally efficient Scheme compiler"
 msgstr "Compilateur Scheme extrêmement efficace"
 
-#: gnu/packages/scheme.scm:946
+#: gnu/packages/scheme.scm:949
 msgid ""
 "Stalin is an aggressively optimizing whole-program compiler\n"
 "for Scheme that does polyvariant interprocedural flow analysis,\n"
@@ -20160,22 +22656,22 @@ msgid ""
 "generation."
 msgstr ""
 
-#: gnu/packages/scheme.scm:999
+#: gnu/packages/scheme.scm:1002
 msgid "Scheme-like lisp implementation"
 msgstr "Implémentation lisp proche de Scheme"
 
-#: gnu/packages/scheme.scm:1001
+#: gnu/packages/scheme.scm:1004
 msgid ""
 "@code{femtolisp} is a scheme-like lisp implementation with a\n"
 "simple, elegant Scheme dialect.  It is a lisp-1 with lexical scope.\n"
 "The core is 12 builtin special forms and 33 builtin functions."
 msgstr ""
 
-#: gnu/packages/scheme.scm:1071
+#: gnu/packages/scheme.scm:1074
 msgid "Scheme scripting engine"
 msgstr ""
 
-#: gnu/packages/scheme.scm:1072
+#: gnu/packages/scheme.scm:1075
 msgid ""
 "Gauche is a R7RS Scheme scripting engine aiming at being a\n"
 "handy tool that helps programmers and system administrators to write small to\n"
@@ -20185,6 +22681,21 @@ msgid ""
 "and list gauche extension packages."
 msgstr ""
 
+#: gnu/packages/scheme.scm:1176
+msgid "Meta-dialect of Scheme with post-modern features"
+msgstr ""
+
+#: gnu/packages/scheme.scm:1177
+msgid ""
+"Gerbil is an opinionated dialect of Scheme designed for Systems\n"
+"Programming, with a state of the art macro and module system on top of the Gambit\n"
+"runtime.  The macro system is based on quote-syntax, and provides the full meta-syntactic\n"
+"tower with a native implementation of syntax-case.  It also provides a full-blown module\n"
+"system, similar to PLT Scheme's (sorry, Racket) modules.  The main difference from Racket\n"
+"is that Gerbil modules are single instantiation, supporting high performance ahead of\n"
+"time compilation and compiled macros."
+msgstr ""
+
 #: gnu/packages/search.scm:78
 msgid "Search Engine Library"
 msgstr ""
@@ -20313,11 +22824,11 @@ msgid ""
 "server and an IRC server."
 msgstr ""
 
-#: gnu/packages/shells.scm:86
+#: gnu/packages/shells.scm:91
 msgid "POSIX-compliant shell optimised for size"
 msgstr ""
 
-#: gnu/packages/shells.scm:88
+#: gnu/packages/shells.scm:93
 msgid ""
 "dash is a POSIX-compliant @command{/bin/sh} implementation that aims to be\n"
 "as small as possible, often without sacrificing speed.  It is faster than the\n"
@@ -20325,11 +22836,11 @@ msgid ""
 "direct descendant of NetBSD's Almquist Shell (@command{ash})."
 msgstr ""
 
-#: gnu/packages/shells.scm:198
+#: gnu/packages/shells.scm:235
 msgid "The friendly interactive shell"
 msgstr ""
 
-#: gnu/packages/shells.scm:200
+#: gnu/packages/shells.scm:237
 msgid ""
 "Fish (friendly interactive shell) is a shell focused on interactive use,\n"
 "discoverability, and friendliness.  Fish has very user-friendly and powerful\n"
@@ -20341,32 +22852,32 @@ msgid ""
 "and syntax highlighting."
 msgstr ""
 
-#: gnu/packages/shells.scm:253
+#: gnu/packages/shells.scm:290
 msgid "Foreign environment interface for fish shell"
 msgstr "Interface d'environnement externe pour le shell fish"
 
-#: gnu/packages/shells.scm:254
+#: gnu/packages/shells.scm:291
 msgid ""
 "@code{fish-foreign-env} wraps bash script execution in a way\n"
 "that environment variables that are exported or modified get imported back\n"
 "into fish."
 msgstr ""
 
-#: gnu/packages/shells.scm:292
+#: gnu/packages/shells.scm:329
 msgid "Alternative implementation of the rc shell by Byron Rakitzis"
 msgstr ""
 
-#: gnu/packages/shells.scm:294
+#: gnu/packages/shells.scm:331
 msgid ""
 "This is a reimplementation by Byron Rakitzis of the Plan 9 shell.  It\n"
 "has a small feature set similar to a traditional Bourne shell."
 msgstr ""
 
-#: gnu/packages/shells.scm:325
+#: gnu/packages/shells.scm:362
 msgid "Extensible shell with higher-order functions"
 msgstr ""
 
-#: gnu/packages/shells.scm:327
+#: gnu/packages/shells.scm:364
 msgid ""
 "Es is an extensible shell.  The language was derived from the Plan 9\n"
 "shell, rc, and was influenced by functional programming languages, such as\n"
@@ -20375,11 +22886,11 @@ msgid ""
 "written by Paul Haahr and Byron Rakitzis."
 msgstr ""
 
-#: gnu/packages/shells.scm:387
+#: gnu/packages/shells.scm:431
 msgid "Unix shell based on csh"
 msgstr ""
 
-#: gnu/packages/shells.scm:389
+#: gnu/packages/shells.scm:433
 msgid ""
 "Tcsh is an enhanced, but completely compatible version of the Berkeley\n"
 "UNIX C shell (csh).  It is a command language interpreter usable both as an\n"
@@ -20388,11 +22899,11 @@ msgid ""
 "history mechanism, job control and a C-like syntax."
 msgstr ""
 
-#: gnu/packages/shells.scm:449
+#: gnu/packages/shells.scm:501
 msgid "Powerful shell for interactive use and scripting"
 msgstr "Shell puissant pour un usage interactif et l'écriture de scripts"
 
-#: gnu/packages/shells.scm:450
+#: gnu/packages/shells.scm:502
 msgid ""
 "The Z shell (zsh) is a Unix shell that can be used\n"
 "as an interactive login shell and as a powerful command interpreter\n"
@@ -20405,11 +22916,11 @@ msgstr ""
 "shell. Zsh peut être vu comme un Bourn shell étendu doté de nombreuses améliorations\n"
 "et incluant certaines fonctionnalités de bash, ksh et tcsh."
 
-#: gnu/packages/shells.scm:489
+#: gnu/packages/shells.scm:550
 msgid "Python-ish shell"
 msgstr ""
 
-#: gnu/packages/shells.scm:491
+#: gnu/packages/shells.scm:552
 msgid ""
 "Xonsh is a Python-ish, BASHwards-looking shell language and command\n"
 "prompt.  The language is a superset of Python 3.4+ with additional shell\n"
@@ -20418,11 +22929,11 @@ msgid ""
 "use of experts and novices alike."
 msgstr ""
 
-#: gnu/packages/shells.scm:535
+#: gnu/packages/shells.scm:596
 msgid "Unix shell embedded in Scheme"
 msgstr ""
 
-#: gnu/packages/shells.scm:537
+#: gnu/packages/shells.scm:598
 msgid ""
 "Scsh is a Unix shell embedded in Scheme.  Scsh has two main\n"
 "components: a process notation for running programs and setting up pipelines\n"
@@ -20430,11 +22941,11 @@ msgid ""
 "operating system."
 msgstr ""
 
-#: gnu/packages/shells.scm:576
+#: gnu/packages/shells.scm:638
 msgid "Minimal zero-config readline replacement"
 msgstr ""
 
-#: gnu/packages/shells.scm:578
+#: gnu/packages/shells.scm:640
 msgid ""
 "Linenoise is a minimal, zero-config, readline replacement.\n"
 "Its features include:\n"
@@ -20448,14 +22959,15 @@ msgid ""
 "@end enumerate\n"
 msgstr ""
 
-#: gnu/packages/shells.scm:640
+#: gnu/packages/shells.scm:702
 msgid "Extremely minimal shell with the simplest syntax possible"
 msgstr ""
 
-#: gnu/packages/shells.scm:642
+#: gnu/packages/shells.scm:704
 msgid ""
-"S is a new shell that aims to be extremely simple.\n"
-"S does not implemnt the POSIX shell standard.\n"
+"S is a new shell that aims to be extremely simple.  It does not\n"
+"implement the POSIX shell standard.\n"
+"\n"
 "There are no globs or \"splatting\" where a variable $FOO turns into multiple\n"
 "command line arguments.  One token stays one token forever.\n"
 "This is a \"no surprises\" straightforward approach.\n"
@@ -20465,55 +22977,53 @@ msgid ""
 "A @code{andglob} program is also provided along with s."
 msgstr ""
 
-#: gnu/packages/shells.scm:670
+#: gnu/packages/shells.scm:733
 msgid "Port of OpenBSD Korn Shell"
 msgstr ""
 
-#: gnu/packages/shells.scm:672
+#: gnu/packages/shells.scm:735
 msgid ""
 "Oksh is a port of the OpenBSD Korn Shell.\n"
 "The OpenBSD Korn Shell is a cleaned up and enhanced ksh."
 msgstr ""
 
-#: gnu/packages/shells.scm:704
+#: gnu/packages/shells.scm:767
 msgid "Korn Shell from OpenBSD"
 msgstr ""
 
-#: gnu/packages/shells.scm:706
+#: gnu/packages/shells.scm:769
 msgid ""
 "loksh is a Linux port of OpenBSD's @command{ksh}.  It is a small,\n"
 "interactive POSIX shell targeted at resource-constrained systems."
 msgstr ""
 
-#: gnu/packages/shells.scm:744
+#: gnu/packages/shells.scm:807
 msgid "Korn Shell from MirBSD"
 msgstr ""
 
-#: gnu/packages/shells.scm:745
+#: gnu/packages/shells.scm:808
 msgid ""
 "mksh is an actively developed free implementation of the\n"
 "Korn Shell programming language and a successor to the Public Domain Korn\n"
 "Shell (pdksh)."
 msgstr ""
 
-#: gnu/packages/shells.scm:787
-msgid "Bash-compatible Unix shell"
-msgstr "Shell Unix compatible avec Bash"
+#: gnu/packages/shells.scm:849
+msgid "Programming language and Bash-compatible Unix shell"
+msgstr "Langage de programmation et Shell Unix compatible avec Bash"
 
-#: gnu/packages/shells.scm:788
+#: gnu/packages/shells.scm:850
 msgid ""
-"Oil is a Unix / POSIX shell, compatible with Bash.  It\n"
-"implements the Oil language, which is a new shell language to which Bash can be\n"
-"automatically translated.  The Oil language is a superset of Bash.  It also\n"
-"implements the OSH language, a statically-parseable language based on Bash as it\n"
-"is commonly written."
+"Oil is a programming language with automatic translation for\n"
+"Bash.  It includes osh, a Unix/POSIX shell that runs unmodified Bash\n"
+"scripts."
 msgstr ""
 
-#: gnu/packages/shells.scm:817
+#: gnu/packages/shells.scm:886
 msgid "POSIX-compatible shell written in Guile Scheme"
 msgstr ""
 
-#: gnu/packages/shells.scm:818
+#: gnu/packages/shells.scm:887
 msgid ""
 "Gash is a POSIX-compatible shell written in Guile\n"
 "Scheme.  It provides both the shell interface, as well as a Guile\n"
@@ -20521,11 +23031,11 @@ msgid ""
 "as part of the Guix bootstrap process."
 msgstr ""
 
-#: gnu/packages/shells.scm:842
+#: gnu/packages/shells.scm:920
 msgid "Core POSIX utilities written in Guile Scheme"
 msgstr ""
 
-#: gnu/packages/shells.scm:843
+#: gnu/packages/shells.scm:921
 msgid ""
 "Gash-Utils provides Scheme implementations of many\n"
 "common POSIX utilities (there are about 40 of them, ranging in\n"
@@ -20535,11 +23045,22 @@ msgid ""
 "files and text."
 msgstr ""
 
-#: gnu/packages/telephony.scm:175
+#: gnu/packages/telephony.scm:118
+msgid "Libre iLBC codec"
+msgstr ""
+
+#: gnu/packages/telephony.scm:119
+msgid ""
+"LibiLBC is a packaging friendly copy of the iLBC codec from\n"
+"the WebRTC project.  It provides a base for distribution packages and can be\n"
+"used as drop-in replacement for the non-free code from RFC 3591."
+msgstr ""
+
+#: gnu/packages/telephony.scm:206
 msgid "DSP library for telephony"
 msgstr "Bibliothèque DSP pour la téléphonie"
 
-#: gnu/packages/telephony.scm:176
+#: gnu/packages/telephony.scm:207
 msgid ""
 "SpanDSP is a library of DSP functions for telephony, in the\n"
 "8000 sample per second world of E1s, T1s, and higher order PCM channels.  It\n"
@@ -20548,11 +23069,11 @@ msgid ""
 "software FAX machine."
 msgstr ""
 
-#: gnu/packages/telephony.scm:205
+#: gnu/packages/telephony.scm:236
 msgid "(u)Common C++ framework for threaded applications"
 msgstr ""
 
-#: gnu/packages/telephony.scm:206
+#: gnu/packages/telephony.scm:237
 msgid ""
 "GNU Common C++ is an portable, optimized class framework for\n"
 "threaded applications, supporting concurrent synchronization, inter-process\n"
@@ -20561,11 +23082,11 @@ msgid ""
 "reimplementation."
 msgstr ""
 
-#: gnu/packages/telephony.scm:226
+#: gnu/packages/telephony.scm:259
 msgid "Common C++ framework for threaded applications"
 msgstr ""
 
-#: gnu/packages/telephony.scm:227
+#: gnu/packages/telephony.scm:260
 msgid ""
 "GNU uCommon C++ is meant as a very light-weight C++ library\n"
 "to facilitate using C++ design patterns even for very deeply embedded\n"
@@ -20573,11 +23094,11 @@ msgid ""
 "support."
 msgstr ""
 
-#: gnu/packages/telephony.scm:249
+#: gnu/packages/telephony.scm:282
 msgid "Implementation of RTP (real-time transport protocol)"
 msgstr ""
 
-#: gnu/packages/telephony.scm:250
+#: gnu/packages/telephony.scm:283
 msgid ""
 "GNU ccRTP is an implementation of RTP, the real-time transport\n"
 "protocol from the IETF.  It is suitable both for high capacity servers and\n"
@@ -20586,22 +23107,33 @@ msgid ""
 "packet-manipulation library."
 msgstr ""
 
-#: gnu/packages/telephony.scm:272
+#: gnu/packages/telephony.scm:316
+msgid "C++ Implementation of ZRTP protocol"
+msgstr "Implémentation C++ du protocole ZRTP"
+
+#: gnu/packages/telephony.scm:317
+msgid ""
+"GNU ZRTP C++ provides a library that adds ZRTP support to the\n"
+"GNU ccRTP stack and serves as library for other RTP stacks\n"
+"(PJSIP, GStreamer)."
+msgstr ""
+
+#: gnu/packages/telephony.scm:336
 msgid "Library implementing SIP (RFC-3261)"
 msgstr ""
 
-#: gnu/packages/telephony.scm:273
+#: gnu/packages/telephony.scm:337
 msgid ""
 "GNU oSIP is an implementation of the SIP protocol.  It is\n"
 "used to provide multimedia and telecom software developers with an interface\n"
 "to initiate and control SIP sessions."
 msgstr ""
 
-#: gnu/packages/telephony.scm:292
+#: gnu/packages/telephony.scm:358
 msgid "Sip abstraction library"
 msgstr "Bibliothèque d'abstraction de Sip"
 
-#: gnu/packages/telephony.scm:293
+#: gnu/packages/telephony.scm:359
 msgid ""
 "EXosip is a library that hides the complexity of using the\n"
 "SIP protocol for multimedia session establishment.  This protocol is mainly to\n"
@@ -20610,11 +23142,11 @@ msgid ""
 "multiplayer games."
 msgstr ""
 
-#: gnu/packages/telephony.scm:336
+#: gnu/packages/telephony.scm:402
 msgid "Secure peer-to-peer VoIP server for the SIP protocol"
 msgstr ""
 
-#: gnu/packages/telephony.scm:337
+#: gnu/packages/telephony.scm:403
 msgid ""
 "GNU SIP Witch is a peer-to-peer Voice-over-IP server that\n"
 "uses the SIP protocol.  Calls can be made from behind NAT firewalls and\n"
@@ -20624,32 +23156,32 @@ msgid ""
 "internet."
 msgstr ""
 
-#: gnu/packages/telephony.scm:377
+#: gnu/packages/telephony.scm:443
 msgid "Secure RTP (SRTP) Reference Implementation"
 msgstr ""
 
-#: gnu/packages/telephony.scm:379
+#: gnu/packages/telephony.scm:445
 msgid ""
 "This package provides an implementation of the Secure Real-time Transport\n"
 "Protocol (@dfn{SRTP}), the Universal Security Transform (@dfn{UST}), and a\n"
 "supporting cryptographic kernel."
 msgstr ""
 
-#: gnu/packages/telephony.scm:407
+#: gnu/packages/telephony.scm:473
 msgid "Inter-Asterisk-Protocol library"
 msgstr "Bibliothèque pour le protocole Inter-Asterisk"
 
-#: gnu/packages/telephony.scm:408
+#: gnu/packages/telephony.scm:474
 msgid ""
 "LibIAX2 implements the Inter-Asterisk-Protocol for relaying\n"
 "Voice-over-IP (VoIP) communications."
 msgstr ""
 
-#: gnu/packages/telephony.scm:439
+#: gnu/packages/telephony.scm:505
 msgid "Simple VoIP program to create conferences from the terminal"
 msgstr ""
 
-#: gnu/packages/telephony.scm:441
+#: gnu/packages/telephony.scm:507
 msgid ""
 "Seren is a simple VoIP program based on the Opus codec that allows you\n"
 "to create a voice conference from the terminal, with up to 10 participants,\n"
@@ -20658,11 +23190,11 @@ msgid ""
 "address of one of the participants."
 msgstr ""
 
-#: gnu/packages/telephony.scm:577
+#: gnu/packages/telephony.scm:651
 msgid "Low-latency, high quality voice chat software"
 msgstr ""
 
-#: gnu/packages/telephony.scm:579
+#: gnu/packages/telephony.scm:653
 msgid ""
 "Mumble is an low-latency, high quality voice chat\n"
 "software primarily intended for use while gaming.\n"
@@ -20670,83 +23202,44 @@ msgid ""
 "@code{mumble} for the client, and @code{murmur} for the server."
 msgstr ""
 
-#: gnu/packages/telephony.scm:640
+#: gnu/packages/telephony.scm:711
 msgid "Softphone for voice over IP and instant messaging"
 msgstr ""
 
-#: gnu/packages/telephony.scm:641
+#: gnu/packages/telephony.scm:712
 msgid ""
 "Twinkle is a softphone for your voice over IP and instant\n"
-"messaging communcations using the SIP protocol.  You can use it for direct IP\n"
-"phone to IP phone communication or in a network using a SIP proxy to route your\n"
-"calls and messages"
+"messaging communcations using the SIP protocol.  You can use it for direct\n"
+"IP phone to IP phone communication or in a network using a SIP proxy to route\n"
+"your calls and messages."
 msgstr ""
 
-#: gnu/packages/telephony.scm:728
+#: gnu/packages/telephony.scm:861
 msgid "Session Initiation Protocol (SIP) stack"
 msgstr ""
 
-#: gnu/packages/telephony.scm:729
+#: gnu/packages/telephony.scm:862
 msgid ""
 "PJProject provides an implementation of the Session\n"
 "Initiation Protocol (SIP) and a multimedia framework."
 msgstr ""
 
-#: gnu/packages/telephony.scm:914 gnu/packages/telephony.scm:951
-msgid "Distributed multimedia communications platform"
-msgstr ""
-
-#: gnu/packages/telephony.scm:915
-msgid ""
-"Jami (formerly GNU Ring) is a secure and distributed voice,\n"
-"video and chat communication platform that requires no centralized server and\n"
-"leaves the power of privacy in the hands of the user.  It supports the SIP and\n"
-"IAX protocols, as well as decentralized calling using P2P-DHT.\n"
-"\n"
-"This package provides a library and daemon implementing the Jami core\n"
-"functionality."
-msgstr ""
-
-#: gnu/packages/telephony.scm:952
-msgid ""
-"Jami (formerly GNU Ring) is a secure and distributed voice,\n"
-"video and chat communication platform that requires no centralized server and\n"
-"leaves the power of privacy in the hands of the user.  It supports the SIP and\n"
-"IAX protocols, as well as decentralized calling using P2P-DHT.\n"
-"\n"
-"This package provides a library common to all Jami clients."
-msgstr ""
-
-#: gnu/packages/telephony.scm:1011
-msgid "Distributed, privacy-respecting communication program"
-msgstr ""
-
-#: gnu/packages/telephony.scm:1012
-msgid ""
-"Jami (formerly GNU Ring) is a secure and distributed voice,\n"
-"video and chat communication platform that requires no centralized server and\n"
-"leaves the power of privacy in the hands of the user.  It supports the SIP and\n"
-"IAX protocols, as well as decentralized calling using P2P-DHT.\n"
-"\n"
-"This package provides the Jami client for the GNOME desktop."
-msgstr ""
-
-#: gnu/packages/telephony.scm:1050
+#: gnu/packages/telephony.scm:909
 msgid "VoIP library for Telegram clients"
 msgstr "Bibliothèque VoIP pour les clients Telegram"
 
-#: gnu/packages/telephony.scm:1051
+#: gnu/packages/telephony.scm:910
 msgid ""
 "A collection of libraries and header files for implementing\n"
 "telephony functionality into custom Telegram clients."
 msgstr ""
 
-#: gnu/packages/tex.scm:436 gnu/packages/tex.scm:5920
-#: gnu/packages/tex.scm:5983
+#: gnu/packages/tex.scm:438 gnu/packages/tex.scm:5862
+#: gnu/packages/tex.scm:5925
 msgid "TeX Live, a package of the TeX typesetting system"
 msgstr ""
 
-#: gnu/packages/tex.scm:438
+#: gnu/packages/tex.scm:440
 msgid ""
 "TeX Live provides a comprehensive TeX document production system.\n"
 "It includes all the major TeX-related programs, macro packages, and fonts\n"
@@ -20756,21 +23249,21 @@ msgid ""
 "This package contains the binaries."
 msgstr ""
 
-#: gnu/packages/tex.scm:457
+#: gnu/packages/tex.scm:459
 msgid "Utility to strip documentation from TeX files."
 msgstr "Utilitaire pour supprimer la documentation de fichiers TeX."
 
-#: gnu/packages/tex.scm:458
+#: gnu/packages/tex.scm:460
 msgid ""
 "This package provides the docstrip utility to strip\n"
 "documentation from TeX files.  It is part of the LaTeX base."
 msgstr ""
 
-#: gnu/packages/tex.scm:472
+#: gnu/packages/tex.scm:474
 msgid "Unicode data and loaders for TeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:473
+#: gnu/packages/tex.scm:475
 msgid ""
 "This bundle provides generic access to Unicode Consortium\n"
 "data for TeX use.  It contains a set of text files provided by the Unicode\n"
@@ -20783,11 +23276,11 @@ msgid ""
 "out to date by @code{unicode-letters.tex}. "
 msgstr ""
 
-#: gnu/packages/tex.scm:505
+#: gnu/packages/tex.scm:507
 msgid "Core hyphenation support files"
 msgstr ""
 
-#: gnu/packages/tex.scm:506
+#: gnu/packages/tex.scm:508
 msgid ""
 "This package includes Knuth's original @file{hyphen.tex},\n"
 "@file{zerohyph.tex} to disable hyphenation, @file{language.us} which starts\n"
@@ -20795,11 +23288,11 @@ msgid ""
 "default versions of those), etc."
 msgstr ""
 
-#: gnu/packages/tex.scm:526
+#: gnu/packages/tex.scm:528
 msgid "DVI to PostScript drivers"
 msgstr ""
 
-#: gnu/packages/tex.scm:527
+#: gnu/packages/tex.scm:529
 msgid ""
 "This package provides files needed for converting DVI files\n"
 "to PostScript."
@@ -20807,11 +23300,11 @@ msgstr ""
 "Ce paquet fournit des outils requis pour convertir des fichiers\n"
 "DVI en PostScript."
 
-#: gnu/packages/tex.scm:540
+#: gnu/packages/tex.scm:542
 msgid "Files for creating TeX formats"
 msgstr ""
 
-#: gnu/packages/tex.scm:541
+#: gnu/packages/tex.scm:543
 msgid ""
 "This bundle provides a collection of model \".ini\" files\n"
 "for creating TeX formats.  These files are commonly used to introduced\n"
@@ -20820,21 +23313,21 @@ msgid ""
 "to adapt the plain e-TeX source file to work with XeTeX and LuaTeX."
 msgstr ""
 
-#: gnu/packages/tex.scm:598
+#: gnu/packages/tex.scm:600
 msgid "Metafont base files"
 msgstr ""
 
-#: gnu/packages/tex.scm:599
+#: gnu/packages/tex.scm:601
 msgid ""
 "This package provides the Metafont base files needed to\n"
 "build fonts using the Metafont system."
 msgstr ""
 
-#: gnu/packages/tex.scm:684
+#: gnu/packages/tex.scm:686
 msgid "Tools for converting and installing fonts for TeX and LaTeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:685
+#: gnu/packages/tex.scm:687
 msgid ""
 "This package provides TeX macros for converting Adobe Font\n"
 "Metric files to TeX metric and virtual font format.  Fontinst helps mainly\n"
@@ -20844,11 +23337,11 @@ msgid ""
 "typesetting in these fonts."
 msgstr ""
 
-#: gnu/packages/tex.scm:706
+#: gnu/packages/tex.scm:708
 msgid "Scheme for naming fonts in TeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:707
+#: gnu/packages/tex.scm:709
 msgid ""
 "This is Fontname, a naming scheme for (the base part of)\n"
 "external TeX font filenames.  This makes at most eight-character names\n"
@@ -20856,11 +23349,11 @@ msgid ""
 "documents."
 msgstr ""
 
-#: gnu/packages/tex.scm:780
+#: gnu/packages/tex.scm:782
 msgid "Computer Modern fonts for TeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:781
+#: gnu/packages/tex.scm:783
 msgid ""
 "This package provides the Computer Modern fonts by Donald\n"
 "Knuth.  The Computer Modern font family is a large collection of text,\n"
@@ -20868,11 +23361,11 @@ msgid ""
 "8A."
 msgstr ""
 
-#: gnu/packages/tex.scm:812
+#: gnu/packages/tex.scm:814
 msgid "Computer Modern Super family of fonts"
 msgstr ""
 
-#: gnu/packages/tex.scm:813
+#: gnu/packages/tex.scm:815
 msgid ""
 "The CM-Super family provides Adobe Type 1 fonts that replace\n"
 "the T1/TS1-encoded Computer Modern (EC/TC), T1/TS1-encoded Concrete,\n"
@@ -20882,33 +23375,33 @@ msgid ""
 "originals."
 msgstr ""
 
-#: gnu/packages/tex.scm:842
+#: gnu/packages/tex.scm:844
 msgid "Latin Modern family of fonts"
 msgstr ""
 
-#: gnu/packages/tex.scm:843
+#: gnu/packages/tex.scm:845
 msgid ""
 "The Latin Modern fonts are derived from the famous Computer\n"
 "Modern fonts designed by Donald E. Knuth and described in Volume E of his\n"
 "Computers & Typesetting series."
 msgstr ""
 
-#: gnu/packages/tex.scm:916
+#: gnu/packages/tex.scm:918
 msgid "Small library of METAFONT sources"
 msgstr ""
 
-#: gnu/packages/tex.scm:917
+#: gnu/packages/tex.scm:919
 msgid ""
 "This is a collection of core TeX and METAFONT macro files\n"
 "from Donald Knuth, including the plain format, plain base, and the MF logo\n"
 "fonts."
 msgstr ""
 
-#: gnu/packages/tex.scm:991
+#: gnu/packages/tex.scm:993
 msgid "Collection of fonts used in LaTeX distributions"
 msgstr ""
 
-#: gnu/packages/tex.scm:992
+#: gnu/packages/tex.scm:994
 msgid ""
 "This is a collection of fonts for use with standard LaTeX\n"
 "packages and classes. It includes invisible fonts (for use with the slides\n"
@@ -20916,22 +23409,22 @@ msgid ""
 "symbol fonts."
 msgstr ""
 
-#: gnu/packages/tex.scm:1013
+#: gnu/packages/tex.scm:1015
 msgid "LaTeX support for Metafont logo fonts"
 msgstr ""
 
-#: gnu/packages/tex.scm:1015
+#: gnu/packages/tex.scm:1017
 msgid ""
 "This package provides LaTeX and font definition files to access the\n"
 "Knuthian mflogo fonts described in The Metafontbook and to typeset Metafont\n"
 "logos in LaTeX documents."
 msgstr ""
 
-#: gnu/packages/tex.scm:1032
+#: gnu/packages/tex.scm:1034
 msgid "Metafont logo font"
 msgstr ""
 
-#: gnu/packages/tex.scm:1034
+#: gnu/packages/tex.scm:1036
 msgid ""
 "These fonts were created in METAFONT by Knuth, for his own publications.\n"
 "At some stage, the letters P and S were added, so that the METAPOST logo could\n"
@@ -20940,11 +23433,11 @@ msgid ""
 "Taco Hoekwater."
 msgstr ""
 
-#: gnu/packages/tex.scm:1176
+#: gnu/packages/tex.scm:1178
 msgid "TeX fonts from the American Mathematical Society"
 msgstr ""
 
-#: gnu/packages/tex.scm:1178
+#: gnu/packages/tex.scm:1180
 msgid ""
 "This package provides an extended set of fonts for use in mathematics,\n"
 "including: extra mathematical symbols; blackboard bold letters (uppercase\n"
@@ -20958,11 +23451,11 @@ msgid ""
 "details can be found in the documentation."
 msgstr ""
 
-#: gnu/packages/tex.scm:1209
+#: gnu/packages/tex.scm:1211
 msgid "Utility for making hyphenation patterns"
 msgstr ""
 
-#: gnu/packages/tex.scm:1210
+#: gnu/packages/tex.scm:1212
 msgid ""
 "Mkpattern is a general purpose program for the generation of\n"
 "hyphenation patterns, with definition of letter sets and template-like\n"
@@ -20970,11 +23463,11 @@ msgid ""
 "output encodings, and features generation of clean UTF-8 patterns."
 msgstr ""
 
-#: gnu/packages/tex.scm:1267
+#: gnu/packages/tex.scm:1269
 msgid "Extended version of TeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:1269
+#: gnu/packages/tex.scm:1271
 msgid ""
 "This package provides an extended version of TeX (which is capable of\n"
 "running as if it were TeX unmodified).  E-TeX has been specified by the LaTeX\n"
@@ -20983,102 +23476,102 @@ msgid ""
 "incorporates the e-TeX extensions."
 msgstr ""
 
-#: gnu/packages/tex.scm:1285
+#: gnu/packages/tex.scm:1287
 msgid "Plain TeX format and supporting files"
 msgstr ""
 
-#: gnu/packages/tex.scm:1287
+#: gnu/packages/tex.scm:1289
 msgid ""
 "This package contains files used to build the Plain TeX format, as\n"
 "described in the TeXbook, together with various supporting files (some also\n"
 "discussed in the book)."
 msgstr ""
 
-#: gnu/packages/tex.scm:1299
+#: gnu/packages/tex.scm:1301
 msgid "Hyphenation patterns for Afrikaans"
 msgstr ""
 
-#: gnu/packages/tex.scm:1300
+#: gnu/packages/tex.scm:1302
 msgid ""
 "The package provides hyphenation patterns for the Afrikaans\n"
 "language."
 msgstr "Ce paquet fournit des modèles de séparation de mots pour l'afrikaans."
 
-#: gnu/packages/tex.scm:1313
+#: gnu/packages/tex.scm:1315
 msgid "Hyphenation patterns for ancient Greek"
 msgstr ""
 
-#: gnu/packages/tex.scm:1314
+#: gnu/packages/tex.scm:1316
 msgid ""
 "The package provides hyphenation patterns for ancient\n"
 "Greek."
 msgstr "Ce paquet fournit des modèles de séparation de mots pour le grec ancien."
 
-#: gnu/packages/tex.scm:1348
+#: gnu/packages/tex.scm:1328
 msgid "Hyphenation patterns for Armenian"
 msgstr ""
 
-#: gnu/packages/tex.scm:1349
+#: gnu/packages/tex.scm:1329
 msgid ""
 "The package provides hyphenation patterns for the Armenian\n"
 "language."
 msgstr "Ce paquet fournit des modèles de séparation de mots pour l'arménien."
 
-#: gnu/packages/tex.scm:1384
+#: gnu/packages/tex.scm:1342
 msgid "Hyphenation patterns for Basque"
 msgstr ""
 
-#: gnu/packages/tex.scm:1385
+#: gnu/packages/tex.scm:1343
 msgid ""
 "The package provides hyphenation patterns for the Basque\n"
 "language."
 msgstr "Ce paquet fournit des modèles de séparation de mots pour le basque."
 
-#: gnu/packages/tex.scm:1398
+#: gnu/packages/tex.scm:1356
 msgid "Hyphenation patterns for Belarusian"
 msgstr ""
 
-#: gnu/packages/tex.scm:1399
+#: gnu/packages/tex.scm:1357
 msgid ""
 "The package provides hyphenation patterns for the Belarusian\n"
 "language."
 msgstr "Ce paquet fournit des modèles de séparation de mots pour le biélorusse."
 
-#: gnu/packages/tex.scm:1412
+#: gnu/packages/tex.scm:1370
 msgid "Hyphenation patterns for Bulgarian"
 msgstr ""
 
-#: gnu/packages/tex.scm:1413
+#: gnu/packages/tex.scm:1371
 msgid ""
 "The package provides hyphenation patterns for the Bulgarian\n"
 "language in T2A and UTF-8 encodings."
 msgstr ""
 
-#: gnu/packages/tex.scm:1426
+#: gnu/packages/tex.scm:1384
 msgid "Hyphenation patterns for Catalan"
 msgstr ""
 
-#: gnu/packages/tex.scm:1427
+#: gnu/packages/tex.scm:1385
 msgid ""
 "The package provides hyphenation patterns for Catalan in\n"
 "T1/EC and UTF-8 encodings."
 msgstr ""
 
-#: gnu/packages/tex.scm:1438
+#: gnu/packages/tex.scm:1396
 msgid "Hyphenation patterns for unaccented Chinese pinyin"
 msgstr ""
 
-#: gnu/packages/tex.scm:1439
+#: gnu/packages/tex.scm:1397
 msgid ""
 "The package provides hyphenation patterns for unaccented\n"
 "Chinese pinyin T1/EC and UTF-8 encodings."
 msgstr ""
 
-#: gnu/packages/tex.scm:1450
+#: gnu/packages/tex.scm:1408
 msgid "Hyphenation patterns for Church Slavonic"
 msgstr ""
 
-#: gnu/packages/tex.scm:1451
+#: gnu/packages/tex.scm:1409
 msgid ""
 "The package provides hyphenation patterns for Church\n"
 "Slavonic in UTF-8 encoding."
@@ -21086,51 +23579,51 @@ msgstr ""
 "Ce paquet fournit .des modèles de séparation de mots pour le slavon d'église\n"
 "en encodage UTF-8."
 
-#: gnu/packages/tex.scm:1463
+#: gnu/packages/tex.scm:1421
 msgid "Hyphenation patterns for Coptic"
 msgstr ""
 
-#: gnu/packages/tex.scm:1464
+#: gnu/packages/tex.scm:1422
 msgid ""
 "The package provides hyphenation patterns for Coptic in\n"
 "UTF-8 encoding as well as in ASCII-based encoding for 8-bit engines."
 msgstr ""
 
-#: gnu/packages/tex.scm:1476
+#: gnu/packages/tex.scm:1434
 msgid "Hyphenation patterns for Croatian"
 msgstr ""
 
-#: gnu/packages/tex.scm:1477
+#: gnu/packages/tex.scm:1435
 msgid ""
 "The package provides hyphenation patterns for Croatian in\n"
 "T1/EC and UTF-8 encodings."
 msgstr ""
 
-#: gnu/packages/tex.scm:1488
+#: gnu/packages/tex.scm:1446
 msgid "Hyphenation patterns for Czech"
 msgstr ""
 
-#: gnu/packages/tex.scm:1489
+#: gnu/packages/tex.scm:1447
 msgid ""
 "The package provides hyphenation patterns for Czech in T1/EC\n"
 "and UTF-8 encodings."
 msgstr ""
 
-#: gnu/packages/tex.scm:1500
+#: gnu/packages/tex.scm:1458
 msgid "Hyphenation patterns for Danish"
 msgstr ""
 
-#: gnu/packages/tex.scm:1501
+#: gnu/packages/tex.scm:1459
 msgid ""
 "The package provides hyphenation patterns for Danish in\n"
 "T1/EC and UTF-8 encodings."
 msgstr ""
 
-#: gnu/packages/tex.scm:1513
+#: gnu/packages/tex.scm:1471
 msgid "Hyphenation patterns for Dutch"
 msgstr ""
 
-#: gnu/packages/tex.scm:1514
+#: gnu/packages/tex.scm:1472
 msgid ""
 "The package provides hyphenation patterns for Dutch in T1/EC\n"
 "and UTF-8 encodings."
@@ -21138,41 +23631,41 @@ msgstr ""
 "Ce paquet fournit des modèles de séparation de mots pour le néerlandais en\n"
 "encodage T1/EC et UTF-8."
 
-#: gnu/packages/tex.scm:1526
+#: gnu/packages/tex.scm:1484
 msgid "Hyphenation patterns for American and British English"
 msgstr ""
 
-#: gnu/packages/tex.scm:1527
+#: gnu/packages/tex.scm:1485
 msgid ""
 "The package provides additional hyphenation patterns for\n"
 "American and British English in ASCII encoding."
 msgstr ""
 
-#: gnu/packages/tex.scm:1540
+#: gnu/packages/tex.scm:1498
 msgid "Hyphenation patterns for Esperanto"
 msgstr ""
 
-#: gnu/packages/tex.scm:1541
+#: gnu/packages/tex.scm:1499
 msgid ""
 "The package provides hyphenation patterns for Esperanto ISO\n"
 "Latin 3 and UTF-8 encodings."
 msgstr ""
 
-#: gnu/packages/tex.scm:1552
+#: gnu/packages/tex.scm:1510
 msgid "Hyphenation patterns for Estonian"
 msgstr ""
 
-#: gnu/packages/tex.scm:1553
+#: gnu/packages/tex.scm:1511
 msgid ""
 "The package provides hyphenation patterns for Estonian in\n"
 "T1/EC and UTF-8 encodings."
 msgstr ""
 
-#: gnu/packages/tex.scm:1602
+#: gnu/packages/tex.scm:1524
 msgid "Hyphenation patterns for Ethiopic scripts"
 msgstr ""
 
-#: gnu/packages/tex.scm:1603
+#: gnu/packages/tex.scm:1525
 msgid ""
 "The package provides hyphenation patterns for languages\n"
 "written using the Ethiopic script for Unicode engines.  They are not supposed\n"
@@ -21180,31 +23673,31 @@ msgid ""
 "be replaced by files tailored to individual languages."
 msgstr ""
 
-#: gnu/packages/tex.scm:1616
+#: gnu/packages/tex.scm:1538
 msgid "Hyphenation patterns for Finnish"
 msgstr ""
 
-#: gnu/packages/tex.scm:1617
+#: gnu/packages/tex.scm:1539
 msgid ""
 "The package provides hyphenation patterns for Finnish in\n"
 "T1/EC and UTF-8 encodings."
 msgstr ""
 
-#: gnu/packages/tex.scm:1628
+#: gnu/packages/tex.scm:1550
 msgid "Hyphenation patterns for French"
 msgstr ""
 
-#: gnu/packages/tex.scm:1629
+#: gnu/packages/tex.scm:1551
 msgid ""
 "The package provides hyphenation patterns for French in\n"
 "T1/EC and UTF-8 encodings."
 msgstr ""
 
-#: gnu/packages/tex.scm:1640
+#: gnu/packages/tex.scm:1562
 msgid "Hyphenation patterns for Friulan"
 msgstr ""
 
-#: gnu/packages/tex.scm:1641
+#: gnu/packages/tex.scm:1563
 msgid ""
 "The package provides hyphenation patterns for Friulan in\n"
 "ASCII encodings."
@@ -21212,52 +23705,52 @@ msgstr ""
 "Ce paquet fournit des modèles de séparation de mots pour le frioulan\n"
 "en encodage ASCII."
 
-#: gnu/packages/tex.scm:1687
+#: gnu/packages/tex.scm:1575
 msgid "Hyphenation patterns for Galician"
 msgstr ""
 
-#: gnu/packages/tex.scm:1688
+#: gnu/packages/tex.scm:1576
 msgid ""
 "The package provides hyphenation patterns for Galician in\n"
 "T1/EC and UTF-8 encodings."
 msgstr ""
 
-#: gnu/packages/tex.scm:1700
+#: gnu/packages/tex.scm:1587
 msgid "Hyphenation patterns for Georgian"
 msgstr ""
 
-#: gnu/packages/tex.scm:1701
+#: gnu/packages/tex.scm:1588
 msgid ""
 "The package provides hyphenation patterns for Georgian in\n"
 "T8M, T8K, and UTF-8 encodings."
 msgstr ""
 
-#: gnu/packages/tex.scm:1718 gnu/packages/tex.scm:2397
+#: gnu/packages/tex.scm:1605 gnu/packages/tex.scm:2253
 msgid "Hyphenation patterns for German"
 msgstr ""
 
-#: gnu/packages/tex.scm:1719
+#: gnu/packages/tex.scm:1606
 msgid ""
 "This package provides hyphenation patterns for German in\n"
 "T1/EC and UTF-8 encodings, for traditional and reformed spelling, including\n"
 "Swiss German."
 msgstr ""
 
-#: gnu/packages/tex.scm:1737
+#: gnu/packages/tex.scm:1624
 msgid "Hyphenation patterns for Greek"
 msgstr ""
 
-#: gnu/packages/tex.scm:1738
+#: gnu/packages/tex.scm:1625
 msgid ""
 "This package provides hyphenation patterns for Modern Greek\n"
 "in monotonic and polytonic spelling in LGR and UTF-8 encodings."
 msgstr ""
 
-#: gnu/packages/tex.scm:1751
+#: gnu/packages/tex.scm:1638
 msgid "Hyphenation patterns for Hungarian"
 msgstr ""
 
-#: gnu/packages/tex.scm:1752
+#: gnu/packages/tex.scm:1639
 msgid ""
 "This package provides hyphenation patterns for Hungarian in\n"
 "T1/EC and UTF-8 encodings."
@@ -21265,43 +23758,43 @@ msgstr ""
 "Ce paquet fournit des modèles de séparation de mots pour le hongrois\n"
 "en encodage T1/EC et UTF-8."
 
-#: gnu/packages/tex.scm:1764
+#: gnu/packages/tex.scm:1651
 msgid "Hyphenation patterns for Icelandic"
 msgstr ""
 
-#: gnu/packages/tex.scm:1765
+#: gnu/packages/tex.scm:1652
 msgid ""
 "This package provides hyphenation patterns for Icelandic in\n"
 "T1/EC and UTF-8 encodings."
 msgstr ""
 
-#: gnu/packages/tex.scm:1787
+#: gnu/packages/tex.scm:1674
 msgid "Indic hyphenation patterns"
 msgstr ""
 
-#: gnu/packages/tex.scm:1788
+#: gnu/packages/tex.scm:1675
 msgid ""
 "This package provides hyphenation patterns for Assamese,\n"
 "Bengali, Gujarati, Hindi, Kannada, Malayalam, Marathi, Oriya, Panjabi, Tamil\n"
 "and Telugu for Unicode engines."
 msgstr ""
 
-#: gnu/packages/tex.scm:1800
+#: gnu/packages/tex.scm:1687
 msgid "Indonesian hyphenation patterns"
 msgstr ""
 
-#: gnu/packages/tex.scm:1801
+#: gnu/packages/tex.scm:1688
 msgid ""
 "This package provides hyphenation patterns for\n"
 "Indonesian (Bahasa Indonesia) in ASCII encoding.  They are probably also\n"
 "usable for Malay (Bahasa Melayu)."
 msgstr ""
 
-#: gnu/packages/tex.scm:1813
+#: gnu/packages/tex.scm:1700
 msgid "Interlingua hyphenation patterns"
 msgstr ""
 
-#: gnu/packages/tex.scm:1814
+#: gnu/packages/tex.scm:1701
 msgid ""
 "This package provides hyphenation patterns for Interlingua\n"
 "in ASCII encoding."
@@ -21309,21 +23802,21 @@ msgstr ""
 "Ce paquet fournit des modèles de séparation de mots pour l'interlingua en\n"
 "encodage ASCII."
 
-#: gnu/packages/tex.scm:1825
+#: gnu/packages/tex.scm:1712
 msgid "Irish hyphenation patterns"
 msgstr ""
 
-#: gnu/packages/tex.scm:1826
+#: gnu/packages/tex.scm:1713
 msgid ""
 "This package provides hyphenation patterns for\n"
 "Irish (Gaeilge) in T1/EC and UTF-8 encodings."
 msgstr ""
 
-#: gnu/packages/tex.scm:1838
+#: gnu/packages/tex.scm:1725
 msgid "Italian hyphenation patterns"
 msgstr ""
 
-#: gnu/packages/tex.scm:1839
+#: gnu/packages/tex.scm:1726
 msgid ""
 "This package provides hyphenation patterns for Italian in\n"
 "ASCII encoding.  Compliant with the Recommendation UNI 6461 on hyphenation\n"
@@ -21331,22 +23824,22 @@ msgid ""
 "UNI)."
 msgstr ""
 
-#: gnu/packages/tex.scm:1852
+#: gnu/packages/tex.scm:1739
 msgid "Kurmanji hyphenation patterns"
 msgstr ""
 
-#: gnu/packages/tex.scm:1853
+#: gnu/packages/tex.scm:1740
 msgid ""
 "This package provides hyphenation patterns for\n"
 "Kurmanji (Northern Kurdish) as spoken in Turkey and by the Kurdish diaspora in\n"
 "Europe, in T1/EC and UTF-8 encodings."
 msgstr ""
 
-#: gnu/packages/tex.scm:1867
+#: gnu/packages/tex.scm:1754
 msgid "Liturgical Latin hyphenation patterns"
 msgstr ""
 
-#: gnu/packages/tex.scm:1868
+#: gnu/packages/tex.scm:1755
 msgid ""
 "This package provides hyphenation patterns for Latin in\n"
 "T1/EC and UTF-8 encodings, mainly in modern spelling (u when u is needed and v\n"
@@ -21360,11 +23853,11 @@ msgid ""
 "T1/EC and UTF-8 encodings."
 msgstr ""
 
-#: gnu/packages/tex.scm:1888
+#: gnu/packages/tex.scm:1775
 msgid "Latvian hyphenation patterns"
 msgstr ""
 
-#: gnu/packages/tex.scm:1889
+#: gnu/packages/tex.scm:1776
 msgid ""
 "This package provides hyphenation patterns for Latvian in\n"
 "L7X and UTF-8 encodings."
@@ -21372,11 +23865,11 @@ msgstr ""
 "Ce paquet fournit des modèles de séparation de mots pour le letton en\n"
 "encodage L7X et UTF-8."
 
-#: gnu/packages/tex.scm:1901
+#: gnu/packages/tex.scm:1788
 msgid "Lithuanian hyphenation patterns"
 msgstr ""
 
-#: gnu/packages/tex.scm:1902
+#: gnu/packages/tex.scm:1789
 msgid ""
 "This package provides hyphenation patterns for Lithuanian in\n"
 "L7X and UTF-8 encodings."
@@ -21384,31 +23877,31 @@ msgstr ""
 "Ce paquet fournit des modèles de séparation de mots pour le lithuanien en\n"
 "encodage L7X et UTF-8."
 
-#: gnu/packages/tex.scm:1916
+#: gnu/packages/tex.scm:1803
 msgid "Mongolian hyphenation patterns in Cyrillic script"
 msgstr ""
 
-#: gnu/packages/tex.scm:1917
+#: gnu/packages/tex.scm:1804
 msgid ""
 "This package provides hyphenation patterns for Mongolian in\n"
 "T2A, LMC and UTF-8 encodings."
 msgstr ""
 
-#: gnu/packages/tex.scm:1931
+#: gnu/packages/tex.scm:1818
 msgid "Norwegian Bokmal and Nynorsk hyphenation patterns"
 msgstr ""
 
-#: gnu/packages/tex.scm:1932
+#: gnu/packages/tex.scm:1819
 msgid ""
 "This package provides hyphenation patterns for Norwegian\n"
 "Bokmal and Nynorsk in T1/EC and UTF-8 encodings."
 msgstr ""
 
-#: gnu/packages/tex.scm:1945
+#: gnu/packages/tex.scm:1832
 msgid "Occitan hyphenation patterns"
 msgstr ""
 
-#: gnu/packages/tex.scm:1946
+#: gnu/packages/tex.scm:1833
 msgid ""
 "This package provides hyphenation patterns for Occitan in\n"
 "T1/EC and UTF-8 encodings.  They are supposed to be valid for all the Occitan\n"
@@ -21417,22 +23910,34 @@ msgid ""
 "Alps encompassing the southern half of the French pentagon."
 msgstr ""
 
-#: gnu/packages/tex.scm:1960
+#: gnu/packages/tex.scm:1847
+msgid "Panjabi hyphenation patterns"
+msgstr "Modèles de séparation de mots pour le pendjabi"
+
+#: gnu/packages/tex.scm:1848
+msgid ""
+"This package provides hyphenation patterns for Panjabi in\n"
+"T1/EC encoding."
+msgstr ""
+"Ce paquet fournit des modèles de séparation de mots pour le pendjabi\n"
+"en encodage T1/EC."
+
+#: gnu/packages/tex.scm:1860
 msgid "Piedmontese hyphenation patterns"
 msgstr "Modèles de séparation de mots pour le piedmontais"
 
-#: gnu/packages/tex.scm:1961
+#: gnu/packages/tex.scm:1861
 msgid ""
 "This package provides hyphenation patterns for Piedmontese\n"
 "in ASCII encoding.  Compliant with 'Gramatica dla lengua piemonteisa' by\n"
 "Camillo Brero."
 msgstr ""
 
-#: gnu/packages/tex.scm:1973
+#: gnu/packages/tex.scm:1873
 msgid "Polish hyphenation patterns"
 msgstr ""
 
-#: gnu/packages/tex.scm:1974
+#: gnu/packages/tex.scm:1874
 msgid ""
 "This package provides hyphenation patterns for Polish in QX\n"
 "and UTF-8 encodings."
@@ -21440,11 +23945,11 @@ msgstr ""
 "Ce paquet fournit des modèles de séparation de mots pour le polonais en\n"
 "encodage QX et UTF-8."
 
-#: gnu/packages/tex.scm:1986
+#: gnu/packages/tex.scm:1886
 msgid "Portuguese hyphenation patterns"
 msgstr ""
 
-#: gnu/packages/tex.scm:1987
+#: gnu/packages/tex.scm:1887
 msgid ""
 "This package provides hyphenation patterns for Portuguese in\n"
 "T1/EC and UTF-8 encodings."
@@ -21452,93 +23957,93 @@ msgstr ""
 "Ce paquet fournit des modèles de séparation de mots pour le portugais en\n"
 "encodage T1/EC et UTF-8."
 
-#: gnu/packages/tex.scm:1998
+#: gnu/packages/tex.scm:1898
 msgid "Romanian hyphenation patterns"
 msgstr ""
 
-#: gnu/packages/tex.scm:1999
+#: gnu/packages/tex.scm:1899
 msgid ""
 "This package provides hyphenation patterns for Romanian in\n"
 "T1/EC and UTF-8 encodings."
 msgstr ""
 
-#: gnu/packages/tex.scm:2011
+#: gnu/packages/tex.scm:1911
 msgid "Romansh hyphenation patterns"
 msgstr ""
 
-#: gnu/packages/tex.scm:2012
+#: gnu/packages/tex.scm:1912
 msgid ""
 "This package provides hyphenation patterns for Romansh in\n"
 "ASCII encodings.  They are supposed to comply with the rules indicated by the\n"
 "Lia Rumantscha (Romansh language society)."
 msgstr ""
 
-#: gnu/packages/tex.scm:2024
+#: gnu/packages/tex.scm:1924
 msgid "Russian hyphenation patterns"
 msgstr ""
 
-#: gnu/packages/tex.scm:2025
+#: gnu/packages/tex.scm:1925
 msgid ""
 "This package provides hyphenation patterns for Russian in\n"
 "T2A and UTF-8 encodings."
 msgstr ""
 
-#: gnu/packages/tex.scm:2037
+#: gnu/packages/tex.scm:1937
 msgid "Sanskrit hyphenation patterns"
 msgstr ""
 
-#: gnu/packages/tex.scm:2038
+#: gnu/packages/tex.scm:1938
 msgid ""
 "This package provides hyphenation patterns for Sanskrit and\n"
 "Prakrit in longdesc transliteration, and in Devanagari, Bengali, Kannada,\n"
 "Malayalam longdesc and Telugu scripts for Unicode engines."
 msgstr ""
 
-#: gnu/packages/tex.scm:2054
+#: gnu/packages/tex.scm:1954
 msgid "Serbian hyphenation patterns"
 msgstr ""
 
-#: gnu/packages/tex.scm:2055
+#: gnu/packages/tex.scm:1955
 msgid ""
 "This package provides hyphenation patterns for Serbian in\n"
 "T1/EC, T2A and UTF-8 encodings."
 msgstr ""
 
-#: gnu/packages/tex.scm:2067
+#: gnu/packages/tex.scm:1967
 msgid "Slovak hyphenation patterns"
 msgstr ""
 
-#: gnu/packages/tex.scm:2068
+#: gnu/packages/tex.scm:1968
 msgid ""
 "This package provides hyphenation patterns for Slovak in\n"
 "T1/EC and UTF-8 encodings."
 msgstr ""
 
-#: gnu/packages/tex.scm:2079
+#: gnu/packages/tex.scm:1979
 msgid "Slovenian hyphenation patterns"
 msgstr ""
 
-#: gnu/packages/tex.scm:2080
+#: gnu/packages/tex.scm:1980
 msgid ""
 "This package provides hyphenation patterns for Slovenian in\n"
 "T1/EC and UTF-8 encodings."
 msgstr ""
 
-#: gnu/packages/tex.scm:2095
+#: gnu/packages/tex.scm:1995
 msgid "Hyphenation patterns for Spanish"
 msgstr ""
 
-#: gnu/packages/tex.scm:2096
+#: gnu/packages/tex.scm:1996
 msgid ""
 "The package provides hyphenation patterns for Spanish in\n"
 "T1/EC and UTF-8 encodings."
 msgstr ""
 
-#: gnu/packages/tex.scm:2107
+#: gnu/packages/tex.scm:2007
 msgid "Swedish hyphenation patterns"
 msgstr ""
 
-#: gnu/packages/tex.scm:2108
+#: gnu/packages/tex.scm:2008
 msgid ""
 "This package provides hyphenation patterns for Swedish in\n"
 "T1/EC and UTF-8 encodings."
@@ -21546,11 +24051,11 @@ msgstr ""
 "Ce paquet fournit des modèles de séparation de mots pour le suédois en\n"
 "encodage T1/EC et UTF-8."
 
-#: gnu/packages/tex.scm:2119
+#: gnu/packages/tex.scm:2019
 msgid "Thai hyphenation patterns"
 msgstr ""
 
-#: gnu/packages/tex.scm:2120
+#: gnu/packages/tex.scm:2020
 msgid ""
 "This package provides hyphenation patterns for Thai in LTH\n"
 "and UTF-8 encodings."
@@ -21558,11 +24063,11 @@ msgstr ""
 "Ce paquet fournit des modèles de séparation de mots pour le thaï en\n"
 "encodage LTH et UTF-8."
 
-#: gnu/packages/tex.scm:2154
+#: gnu/packages/tex.scm:2032
 msgid "Hyphenation patterns for Turkish"
 msgstr ""
 
-#: gnu/packages/tex.scm:2155
+#: gnu/packages/tex.scm:2033
 msgid ""
 "The package provides hyphenation patterns for Turkish in\n"
 "T1/EC and UTF-8 encodings.  The patterns for Turkish were first produced for\n"
@@ -21572,41 +24077,41 @@ msgid ""
 "compatibility with 8-bit engines."
 msgstr ""
 
-#: gnu/packages/tex.scm:2193
+#: gnu/packages/tex.scm:2049
 msgid "Hyphenation patterns for Turkmen"
 msgstr ""
 
-#: gnu/packages/tex.scm:2194
+#: gnu/packages/tex.scm:2050
 msgid ""
 "The package provides hyphenation patterns for Turkmen in\n"
 "T1/EC and UTF-8 encodings."
 msgstr ""
 
-#: gnu/packages/tex.scm:2205
+#: gnu/packages/tex.scm:2061
 msgid "Ukrainian hyphenation patterns"
 msgstr "Modèles de séparation de mots pour l'ukrainien"
 
-#: gnu/packages/tex.scm:2206
+#: gnu/packages/tex.scm:2062
 msgid ""
 "This package provides hyphenation patterns for Ukrainian in\n"
 "T2A and UTF-8 encodings."
 msgstr ""
 
-#: gnu/packages/tex.scm:2218
+#: gnu/packages/tex.scm:2074
 msgid "Upper Sorbian hyphenation patterns"
 msgstr ""
 
-#: gnu/packages/tex.scm:2219
+#: gnu/packages/tex.scm:2075
 msgid ""
 "This package provides hyphenation patterns for Upper Sorbian\n"
 "in T1/EC and UTF-8 encodings."
 msgstr ""
 
-#: gnu/packages/tex.scm:2230
+#: gnu/packages/tex.scm:2086
 msgid "Welsh hyphenation patterns"
 msgstr ""
 
-#: gnu/packages/tex.scm:2231
+#: gnu/packages/tex.scm:2087
 msgid ""
 "This package provides hyphenation patterns for Welsh in\n"
 "T1/EC and UTF-8 encodings."
@@ -21614,11 +24119,11 @@ msgstr ""
 "Ce paquet fournit des modèles de séparation de mots pour le galois en\n"
 "encodage T1/EC et UTF-8."
 
-#: gnu/packages/tex.scm:2351
+#: gnu/packages/tex.scm:2207
 msgid "Hyphenation patterns expressed in UTF-8"
 msgstr ""
 
-#: gnu/packages/tex.scm:2352
+#: gnu/packages/tex.scm:2208
 msgid ""
 "Modern native UTF-8 engines such as XeTeX and LuaTeX need\n"
 "hyphenation patterns in UTF-8 format, whereas older systems require\n"
@@ -21631,7 +24136,7 @@ msgid ""
 "converters, will completely supplant the older patterns."
 msgstr ""
 
-#: gnu/packages/tex.scm:2398
+#: gnu/packages/tex.scm:2254
 msgid ""
 "The package provides experimental hyphenation patterns for\n"
 "the German language, covering both traditional and reformed orthography.  The\n"
@@ -21639,33 +24144,33 @@ msgid ""
 "bundle."
 msgstr ""
 
-#: gnu/packages/tex.scm:2419
+#: gnu/packages/tex.scm:2275
 msgid "Hyphenation patterns for Ukrainian"
 msgstr ""
 
-#: gnu/packages/tex.scm:2420
+#: gnu/packages/tex.scm:2276
 msgid ""
 "The package provides a range of hyphenation patterns for\n"
 "Ukrainian, depending on the encoding of the output font including the standard\n"
 "T2A."
 msgstr ""
 
-#: gnu/packages/tex.scm:2458
+#: gnu/packages/tex.scm:2314
 msgid "Hyphenation patterns for Russian"
 msgstr ""
 
-#: gnu/packages/tex.scm:2459
+#: gnu/packages/tex.scm:2315
 msgid ""
 "The package provides a collection of Russian hyphenation\n"
 "patterns supporting a number of Cyrillic font encodings, including T2,\n"
 "UCY (Omega Unicode Cyrillic), LCY, LWN (OT2), and koi8-r."
 msgstr ""
 
-#: gnu/packages/tex.scm:2501
+#: gnu/packages/tex.scm:2357
 msgid "Files related to the path searching library for TeX"
 msgstr "Fichiers liés à la biliothèque de recherche de chemin pour TeX"
 
-#: gnu/packages/tex.scm:2502
+#: gnu/packages/tex.scm:2358
 msgid ""
 "Kpathsea is a library and utility programs which provide\n"
 "path searching facilities for TeX file types, including the self-locating\n"
@@ -21673,21 +24178,21 @@ msgid ""
 "mechanism.  This package provides supporting files."
 msgstr ""
 
-#: gnu/packages/tex.scm:2517
+#: gnu/packages/tex.scm:2373
 msgid "Configuration files for LaTeX-related formats"
 msgstr ""
 
-#: gnu/packages/tex.scm:2518
+#: gnu/packages/tex.scm:2374
 msgid ""
 "The package provides configuration files for LaTeX-related\n"
 "formats."
 msgstr "Ce paquet fournit des fichiers de configuration pour les formats liés à LaTeX."
 
-#: gnu/packages/tex.scm:2723
+#: gnu/packages/tex.scm:2586
 msgid "Base sources of LaTeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:2725
+#: gnu/packages/tex.scm:2588
 msgid ""
 "This bundle comprises the source of LaTeX itself, together with several\n"
 "packages which are considered \"part of the kernel\".  This bundle, together\n"
@@ -21695,11 +24200,11 @@ msgid ""
 "contain."
 msgstr ""
 
-#: gnu/packages/tex.scm:2745
+#: gnu/packages/tex.scm:2608
 msgid "Extended filecontents and filecontents* environments"
 msgstr ""
 
-#: gnu/packages/tex.scm:2747
+#: gnu/packages/tex.scm:2610
 msgid ""
 "LaTeX2e's @code{filecontents} and @code{filecontents*} environments\n"
 "enable a LaTeX source file to generate external files as it runs through\n"
@@ -21710,22 +24215,22 @@ msgid ""
 "@code{filecontents*} anywhere."
 msgstr ""
 
-#: gnu/packages/tex.scm:2774
+#: gnu/packages/tex.scm:2637
 msgid "Am I running under XeTeX?"
 msgstr ""
 
-#: gnu/packages/tex.scm:2776
+#: gnu/packages/tex.scm:2639
 msgid ""
 "This is a simple package which provides an @code{\\ifxetex} conditional,\n"
 "so that other code can determine that it is running under XeTeX.  The package\n"
 "requires the e-TeX extensions to the TeX primitive set."
 msgstr ""
 
-#: gnu/packages/tex.scm:2791
+#: gnu/packages/tex.scm:2654
 msgid "Simple macros for EPS inclusion"
 msgstr ""
 
-#: gnu/packages/tex.scm:2793
+#: gnu/packages/tex.scm:2656
 msgid ""
 "This package provides the original (and now obsolescent) graphics\n"
 "inclusion macros for use with dvips, still widely used by Plain TeX users (in\n"
@@ -21735,11 +24240,11 @@ msgid ""
 "users, via its Plain TeX version.)"
 msgstr ""
 
-#: gnu/packages/tex.scm:2820
+#: gnu/packages/tex.scm:2677
 msgid "Sophisticated verbatim text"
 msgstr ""
 
-#: gnu/packages/tex.scm:2822
+#: gnu/packages/tex.scm:2679
 msgid ""
 "This package provides tools for the flexible handling of verbatim text\n"
 "including: verbatim commands in footnotes; a variety of verbatim environments\n"
@@ -21749,11 +24254,11 @@ msgid ""
 "verbatim source)."
 msgstr ""
 
-#: gnu/packages/tex.scm:2840
+#: gnu/packages/tex.scm:2697
 msgid "Color and graphics option files"
 msgstr ""
 
-#: gnu/packages/tex.scm:2842
+#: gnu/packages/tex.scm:2699
 msgid ""
 "This bundle is a combined distribution consisting of @file{dvips.def},\n"
 "@file{pdftex.def}, @file{luatex.def}, @file{xetex.def}, @file{dvipdfmx.def},\n"
@@ -21761,21 +24266,21 @@ msgid ""
 "packages."
 msgstr ""
 
-#: gnu/packages/tex.scm:2858
+#: gnu/packages/tex.scm:2715
 msgid "Sample configuration files for LaTeX color and graphics"
 msgstr ""
 
-#: gnu/packages/tex.scm:2860
+#: gnu/packages/tex.scm:2717
 msgid ""
 "This bundle includes @file{color.cfg} and @file{graphics.cfg} files that\n"
 "set default \"driver\" options for the color and graphics packages."
 msgstr ""
 
-#: gnu/packages/tex.scm:2881
+#: gnu/packages/tex.scm:2738
 msgid "LaTeX standard graphics bundle"
 msgstr ""
 
-#: gnu/packages/tex.scm:2883
+#: gnu/packages/tex.scm:2740
 msgid ""
 "This is a collection of LaTeX packages for producing color, including\n"
 "graphics (e.g. PostScript) files, and rotation and scaling of text in LaTeX\n"
@@ -21783,11 +24288,11 @@ msgid ""
 "keyval, and lscape."
 msgstr ""
 
-#: gnu/packages/tex.scm:2915
+#: gnu/packages/tex.scm:2772
 msgid "Driver-independent color extensions for LaTeX and pdfLaTeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:2917
+#: gnu/packages/tex.scm:2774
 msgid ""
 "The package starts from the basic facilities of the colorcolor package,\n"
 "and provides easy driver-independent access to several kinds of color tints,\n"
@@ -21798,11 +24303,11 @@ msgid ""
 "tables."
 msgstr ""
 
-#: gnu/packages/tex.scm:2949
+#: gnu/packages/tex.scm:2806
 msgid "Extensive support for hypertext in LaTeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:2951
+#: gnu/packages/tex.scm:2808
 msgid ""
 "The @code{hyperref} package is used to handle cross-referencing commands\n"
 "in LaTeX to produce hypertext links in the document.  The package provides\n"
@@ -21814,22 +24319,22 @@ msgid ""
 "@code{nameref} packages, which make use of the facilities of @code{hyperref}."
 msgstr ""
 
-#: gnu/packages/tex.scm:2987
+#: gnu/packages/tex.scm:2844
 msgid "Bundle of packages submitted by Heiko Oberdiek"
 msgstr ""
 
-#: gnu/packages/tex.scm:2989
+#: gnu/packages/tex.scm:2846
 msgid ""
 "The bundle comprises various LaTeX packages, providing among others:\n"
 "better accessibility support for PDF files; extensible chemists reaction\n"
 "arrows; record information about document class(es) used; and many more."
 msgstr ""
 
-#: gnu/packages/tex.scm:3010 gnu/packages/tex.scm:7212
+#: gnu/packages/tex.scm:2867 gnu/packages/tex.scm:7165
 msgid "LaTeX standard tools bundle"
 msgstr ""
 
-#: gnu/packages/tex.scm:3012
+#: gnu/packages/tex.scm:2869
 msgid ""
 "This package is a collection of (variously) simple tools provided as\n"
 "part of the LaTeX required tools distribution, comprising the following\n"
@@ -21839,11 +24344,11 @@ msgid ""
 "xr, and xspace."
 msgstr ""
 
-#: gnu/packages/tex.scm:3030
+#: gnu/packages/tex.scm:2887
 msgid "Verbatim with URL-sensitive line breaks"
 msgstr ""
 
-#: gnu/packages/tex.scm:3031
+#: gnu/packages/tex.scm:2888
 msgid ""
 "The command @code{\\url} is a form of verbatim command that\n"
 "allows linebreaks at certain characters or combinations of characters, accepts\n"
@@ -21855,22 +24360,22 @@ msgid ""
 "of file names."
 msgstr ""
 
-#: gnu/packages/tex.scm:3057
+#: gnu/packages/tex.scm:2914
 msgid "Font maps originally from teTeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:3058
+#: gnu/packages/tex.scm:2915
 msgid ""
 "This package provides font maps that were originally part of\n"
 "the now obsolete teTeX distributions but are still used at the core of the TeX\n"
 "Live distribution."
 msgstr ""
 
-#: gnu/packages/tex.scm:3078
+#: gnu/packages/tex.scm:2935
 msgid "LaTeX3 programmers’ interface"
 msgstr ""
 
-#: gnu/packages/tex.scm:3080
+#: gnu/packages/tex.scm:2937
 msgid ""
 "The l3kernel bundle provides an implementation of the LaTeX3\n"
 "programmers’ interface, as a set of packages that run under LaTeX 2e.  The\n"
@@ -21879,11 +24384,11 @@ msgid ""
 "that the LaTeX3 conventions can be used with regular LaTeX 2e packages."
 msgstr ""
 
-#: gnu/packages/tex.scm:3125
+#: gnu/packages/tex.scm:2982
 msgid "High-level LaTeX3 concepts"
 msgstr ""
 
-#: gnu/packages/tex.scm:3127
+#: gnu/packages/tex.scm:2984
 msgid ""
 "This bundle holds prototype implementations of concepts for a LaTeX\n"
 "designer interface, to be used with the experimental LaTeX kernel as\n"
@@ -21900,11 +24405,11 @@ msgid ""
 "@end enumerate\n"
 msgstr ""
 
-#: gnu/packages/tex.scm:3187
+#: gnu/packages/tex.scm:3044
 msgid "Advanced font selection in XeLaTeX and LuaLaTeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:3189
+#: gnu/packages/tex.scm:3046
 msgid ""
 "Fontspec is a package for XeLaTeX and LuaLaTeX.  It provides an\n"
 "automatic and unified interface to feature-rich AAT and OpenType fonts through\n"
@@ -21912,22 +24417,22 @@ msgid ""
 "the l3kernel and xparse bundles from the LaTeX 3 development team."
 msgstr ""
 
-#: gnu/packages/tex.scm:3225
+#: gnu/packages/tex.scm:3082
 msgid "Lua modules for general programming (in the (La)TeX world)"
 msgstr ""
 
-#: gnu/packages/tex.scm:3227
+#: gnu/packages/tex.scm:3084
 msgid ""
 "Lualibs is a collection of Lua modules useful for general programming.\n"
 "The bundle is based on Lua modules shipped with ConTeXt, and made available in\n"
 "this bundle for use independent of ConTeXt."
 msgstr ""
 
-#: gnu/packages/tex.scm:3315
+#: gnu/packages/tex.scm:3172
 msgid "OpenType font loader for LuaTeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:3317
+#: gnu/packages/tex.scm:3174
 msgid ""
 "Luaotfload is an adaptation of the ConTeXt font loading system for the\n"
 "Plain and LaTeX formats.  It allows OpenType fonts to be loaded with font\n"
@@ -21936,11 +24441,11 @@ msgid ""
 "loading fonts by their proper names instead of file names."
 msgstr ""
 
-#: gnu/packages/tex.scm:3339
+#: gnu/packages/tex.scm:3196
 msgid "AMS mathematical facilities for LaTeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:3341
+#: gnu/packages/tex.scm:3198
 msgid ""
 "This is the principal package in the AMS-LaTeX distribution.  It adapts\n"
 "for use in LaTeX most of the mathematical features found in AMS-TeX; it is\n"
@@ -21955,11 +24460,11 @@ msgid ""
 "definitions."
 msgstr ""
 
-#: gnu/packages/tex.scm:3369
+#: gnu/packages/tex.scm:3226
 msgid "AMS document classes for LaTeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:3371
+#: gnu/packages/tex.scm:3228
 msgid ""
 "This bundle contains three AMS classes: @code{amsartamsart} (for writing\n"
 "articles for the AMS), @code{amsbookamsbook} (for books) and\n"
@@ -21968,11 +24473,11 @@ msgid ""
 "distribution."
 msgstr ""
 
-#: gnu/packages/tex.scm:3402
+#: gnu/packages/tex.scm:3259
 msgid "Multilingual support for Plain TeX or LaTeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:3404
+#: gnu/packages/tex.scm:3261
 msgid ""
 "The package manages culturally-determined typographical (and other)\n"
 "rules, and hyphenation patterns for a wide range of languages.  A document may\n"
@@ -21983,11 +24488,11 @@ msgid ""
 "polyglossia package rather than Babel."
 msgstr ""
 
-#: gnu/packages/tex.scm:3427
+#: gnu/packages/tex.scm:3284
 msgid "Babel support for English"
 msgstr ""
 
-#: gnu/packages/tex.scm:3429
+#: gnu/packages/tex.scm:3286
 msgid ""
 "This package provides the language definition file for support of\n"
 "English in @code{babel}.  Care is taken to select British hyphenation patterns\n"
@@ -21995,11 +24500,11 @@ msgid ""
 "for Canadian and USA text."
 msgstr ""
 
-#: gnu/packages/tex.scm:3449
+#: gnu/packages/tex.scm:3306
 msgid "Babel support for German"
 msgstr "Prise en charge de l'allemand dans Babel"
 
-#: gnu/packages/tex.scm:3451
+#: gnu/packages/tex.scm:3308
 msgid ""
 "This package provides the language definition file for support of German\n"
 "in @code{babel}.  It provides all the necessary macros, definitions and\n"
@@ -22008,11 +24513,11 @@ msgid ""
 "Swiss varieties of German."
 msgstr ""
 
-#: gnu/packages/tex.scm:3473
+#: gnu/packages/tex.scm:3330
 msgid "Support for Cyrillic fonts in LaTeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:3475
+#: gnu/packages/tex.scm:3332
 msgid ""
 "This bundle of macros files provides macro support (including font\n"
 "encoding macros) for the use of Cyrillic characters in fonts encoded under the\n"
@@ -22020,11 +24525,11 @@ msgid ""
 "language that is written in a Cyrillic alphabet."
 msgstr ""
 
-#: gnu/packages/tex.scm:3495
+#: gnu/packages/tex.scm:3352
 msgid "Font support for common PostScript fonts"
 msgstr ""
 
-#: gnu/packages/tex.scm:3497
+#: gnu/packages/tex.scm:3354
 msgid ""
 "The PSNFSS collection includes a set of files that provide a complete\n"
 "working setup of the LaTeX font selection scheme (NFSS2) for use with common\n"
@@ -22035,31 +24540,31 @@ msgid ""
 "packages."
 msgstr ""
 
-#: gnu/packages/tex.scm:3539
+#: gnu/packages/tex.scm:3396
 msgid "TeX Live base packages"
 msgstr ""
 
-#: gnu/packages/tex.scm:3540 gnu/packages/tex.scm:3678
+#: gnu/packages/tex.scm:3397 gnu/packages/tex.scm:3535
 msgid ""
 "This is a very limited subset of the TeX Live distribution.\n"
 "It includes little more than the required set of LaTeX packages."
 msgstr ""
 
-#: gnu/packages/tex.scm:3661
+#: gnu/packages/tex.scm:3518
 msgid "Union of TeX Live packages"
 msgstr ""
 
-#: gnu/packages/tex.scm:3662
+#: gnu/packages/tex.scm:3519
 msgid ""
 "This package provides a subset of the TeX Live\n"
 "distribution."
 msgstr "Ce paquet fournit un sous-ensemble de la distribution TeX Live."
 
-#: gnu/packages/tex.scm:3695
+#: gnu/packages/tex.scm:3552
 msgid "LaTeX-based replacement for BibTeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:3697
+#: gnu/packages/tex.scm:3554
 msgid ""
 "Amsrefs is a LaTeX package for bibliographies that provides an archival\n"
 "data format similar to the format of BibTeX database files, but adapted to\n"
@@ -22067,11 +24572,11 @@ msgid ""
 "conjunction with BibTeX or as a replacement for BibTeX."
 msgstr ""
 
-#: gnu/packages/tex.scm:3724
+#: gnu/packages/tex.scm:3581
 msgid "Footnotes for critical editions"
 msgstr ""
 
-#: gnu/packages/tex.scm:3726
+#: gnu/packages/tex.scm:3583
 msgid ""
 "This package aims to provide a one-stop solution to requirements for\n"
 "footnotes.  It offers: Multiple footnote apparatus superior to that of\n"
@@ -22085,11 +24590,11 @@ msgid ""
 "@code{suffix} packages."
 msgstr ""
 
-#: gnu/packages/tex.scm:3752
+#: gnu/packages/tex.scm:3609
 msgid "Producing 'blind' text for testing"
 msgstr ""
 
-#: gnu/packages/tex.scm:3754
+#: gnu/packages/tex.scm:3611
 msgid ""
 "The package provides the commands @code{\\blindtext} and\n"
 "@code{\\Blindtext} for creating \"blind\" text useful in testing new classes\n"
@@ -22100,11 +24605,11 @@ msgid ""
 "ipsum\" text, see the @code{lipsum} package)."
 msgstr ""
 
-#: gnu/packages/tex.scm:3791
+#: gnu/packages/tex.scm:3648
 msgid "German letter DIN style"
 msgstr ""
 
-#: gnu/packages/tex.scm:3793
+#: gnu/packages/tex.scm:3650
 msgid ""
 "This package implements a document layout for writing letters according\n"
 "to the rules of DIN (Deutsches Institut für Normung, German standardisation\n"
@@ -22116,11 +24621,11 @@ msgid ""
 "package."
 msgstr ""
 
-#: gnu/packages/tex.scm:3817
+#: gnu/packages/tex.scm:3674
 msgid "Put a grey textual watermark on document pages"
 msgstr ""
 
-#: gnu/packages/tex.scm:3819
+#: gnu/packages/tex.scm:3676
 msgid ""
 "This package provides a means to add a textual, light grey watermark on\n"
 "every page or on the first page of a document.  Typical usage may consist in\n"
@@ -22130,11 +24635,11 @@ msgid ""
 "on everypage."
 msgstr ""
 
-#: gnu/packages/tex.scm:3841
+#: gnu/packages/tex.scm:3698
 msgid "New interface for environments in LaTeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:3843
+#: gnu/packages/tex.scm:3700
 msgid ""
 "This package provides the @code{\\collect@@body} command (as in\n"
 "@code{amsmath}), as well as a @code{\\long} version @code{\\Collect@@Body},\n"
@@ -22142,11 +24647,11 @@ msgid ""
 "define a new author interface to creating new environments."
 msgstr ""
 
-#: gnu/packages/tex.scm:3863
+#: gnu/packages/tex.scm:3720
 msgid "Create equal-widthed parboxes"
 msgstr ""
 
-#: gnu/packages/tex.scm:3865
+#: gnu/packages/tex.scm:3722
 msgid ""
 "LaTeX users sometimes need to ensure that two or more blocks of text\n"
 "occupy the same amount of horizontal space on the page.  To that end, the\n"
@@ -22160,11 +24665,11 @@ msgid ""
 "also provided."
 msgstr ""
 
-#: gnu/packages/tex.scm:3899
+#: gnu/packages/tex.scm:3756
 msgid "Expanded description environments"
 msgstr ""
 
-#: gnu/packages/tex.scm:3901
+#: gnu/packages/tex.scm:3758
 msgid ""
 "The package provides additional features for the LaTeX\n"
 "@code{description} environment, including adjustable left margin.  The package\n"
@@ -22173,11 +24678,11 @@ msgid ""
 "@code{enumerate} lists, and numbered lists remain in sequence)."
 msgstr ""
 
-#: gnu/packages/tex.scm:3919
+#: gnu/packages/tex.scm:3776
 msgid "Provide file modification times, and compare them"
 msgstr ""
 
-#: gnu/packages/tex.scm:3921
+#: gnu/packages/tex.scm:3778
 msgid ""
 "This package provides macros to read and compare the modification dates\n"
 "of files.  The files may be @code{.tex} files, images or other files (as long\n"
@@ -22189,11 +24694,11 @@ msgid ""
 "but non-expandable ones."
 msgstr ""
 
-#: gnu/packages/tex.scm:3948
+#: gnu/packages/tex.scm:3805
 msgid "Conditionals to test which platform is being used"
 msgstr ""
 
-#: gnu/packages/tex.scm:3950
+#: gnu/packages/tex.scm:3807
 msgid ""
 "This package uses the (La)TeX extension @code{-shell-escape} to\n"
 "establish whether the document is being processed on a Windows or on a\n"
@@ -22204,11 +24709,11 @@ msgid ""
 "classes of systems."
 msgstr ""
 
-#: gnu/packages/tex.scm:3973
+#: gnu/packages/tex.scm:3830
 msgid "Flexible bibliography support"
 msgstr ""
 
-#: gnu/packages/tex.scm:3975
+#: gnu/packages/tex.scm:3832
 msgid ""
 "This bundle provides a package that implements both author-year and\n"
 "numbered references, as well as much detailed of support for other\n"
@@ -22218,11 +24723,11 @@ msgid ""
 "designed from the start to be compatible with @code{natbib}."
 msgstr ""
 
-#: gnu/packages/tex.scm:3997
+#: gnu/packages/tex.scm:3854
 msgid "Replace strings in encapsulated PostScript figures"
 msgstr ""
 
-#: gnu/packages/tex.scm:3999
+#: gnu/packages/tex.scm:3856
 msgid ""
 "This package allows LaTeX constructions (equations, picture\n"
 "environments, etc.) to be precisely superimposed over Encapsulated PostScript\n"
@@ -22233,11 +24738,11 @@ msgid ""
 "rotated."
 msgstr ""
 
-#: gnu/packages/tex.scm:4029
+#: gnu/packages/tex.scm:3886
 msgid "Process PostScript graphics within pdfLaTeX documents"
 msgstr ""
 
-#: gnu/packages/tex.scm:4031
+#: gnu/packages/tex.scm:3888
 msgid ""
 "This is a package for processing PostScript graphics with @code{psfrag}\n"
 "labels within pdfLaTeX documents.  Every graphic is compiled individually,\n"
@@ -22245,11 +24750,11 @@ msgid ""
 "re-processing."
 msgstr ""
 
-#: gnu/packages/tex.scm:4050
+#: gnu/packages/tex.scm:3907
 msgid "Make overhead slides"
 msgstr ""
 
-#: gnu/packages/tex.scm:4053
+#: gnu/packages/tex.scm:3910
 msgid ""
 "This package provides a class that produces overhead\n"
 "slides (transparencies), with many facilities.  Seminar is not nowadays\n"
@@ -22258,11 +24763,11 @@ msgid ""
 "21st-century presentation styles."
 msgstr ""
 
-#: gnu/packages/tex.scm:4089
+#: gnu/packages/tex.scm:3946
 msgid "Trim spaces around an argument or within a macro"
 msgstr ""
 
-#: gnu/packages/tex.scm:4091
+#: gnu/packages/tex.scm:3948
 msgid ""
 "This very short package allows you to expandably remove spaces around a\n"
 "token list (commands are provided to remove spaces before, spaces after, or\n"
@@ -22270,21 +24775,21 @@ msgid ""
 "space-stripped macros."
 msgstr ""
 
-#: gnu/packages/tex.scm:4124
+#: gnu/packages/tex.scm:3981
 msgid "Captions on more than floats"
 msgstr ""
 
-#: gnu/packages/tex.scm:4126
+#: gnu/packages/tex.scm:3983
 msgid ""
 "This package defines a command @code{\\captionof} for putting a caption\n"
 "to something that's not a float."
 msgstr ""
 
-#: gnu/packages/tex.scm:4140
+#: gnu/packages/tex.scm:3997
 msgid "Create correct hyperlinks for DOI numbers"
 msgstr ""
 
-#: gnu/packages/tex.scm:4142
+#: gnu/packages/tex.scm:3999
 msgid ""
 "You can hyperlink DOI numbers to doi.org.  However, some publishers have\n"
 "elected to use nasty characters in their DOI numbering scheme (@code{<},\n"
@@ -22294,11 +24799,11 @@ msgid ""
 "hyperlink to the target of the DOI."
 msgstr ""
 
-#: gnu/packages/tex.scm:4164
+#: gnu/packages/tex.scm:4021
 msgid "e-TeX tools for LaTeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:4166
+#: gnu/packages/tex.scm:4023
 msgid ""
 "This package is a toolbox of programming facilities geared primarily\n"
 "towards LaTeX class and package authors.  It provides LaTeX frontends to some\n"
@@ -22309,11 +24814,11 @@ msgid ""
 "of the LaTeX kernel."
 msgstr ""
 
-#: gnu/packages/tex.scm:4205
+#: gnu/packages/tex.scm:4062
 msgid "Seven predefined chapter heading styles"
 msgstr ""
 
-#: gnu/packages/tex.scm:4207
+#: gnu/packages/tex.scm:4064
 msgid ""
 "This package provides seven predefined chapter heading styles.  Each\n"
 "style can be modified using a set of simple commands.  Optionally one can\n"
@@ -22321,11 +24826,11 @@ msgid ""
 "headings."
 msgstr ""
 
-#: gnu/packages/tex.scm:4240
+#: gnu/packages/tex.scm:4097
 msgid "Framed or shaded regions that can break across pages"
 msgstr ""
 
-#: gnu/packages/tex.scm:4242
+#: gnu/packages/tex.scm:4099
 msgid ""
 "The package creates three environments: @code{framed}, which puts an\n"
 "ordinary frame box around the region, @code{shaded}, which shades the region,\n"
@@ -22336,11 +24841,11 @@ msgid ""
 "@code{\\MakeFramed} to make your own framed-style environments."
 msgstr ""
 
-#: gnu/packages/tex.scm:4274
+#: gnu/packages/tex.scm:4131
 msgid "Letter document class"
 msgstr ""
 
-#: gnu/packages/tex.scm:4276
+#: gnu/packages/tex.scm:4133
 msgid ""
 "This package is designed for formatting formless letters in German; it\n"
 "can also be used for English (by those who can read the documentation).  There\n"
@@ -22348,21 +24853,21 @@ msgid ""
 "\"old\" and a \"new\" version of g-brief."
 msgstr ""
 
-#: gnu/packages/tex.scm:4296
+#: gnu/packages/tex.scm:4153
 msgid "Typeset Galois connections"
 msgstr ""
 
-#: gnu/packages/tex.scm:4298
+#: gnu/packages/tex.scm:4155
 msgid ""
 "The package deals with connections in two-dimensional style, optionally\n"
 "in colour."
 msgstr ""
 
-#: gnu/packages/tex.scm:4316
+#: gnu/packages/tex.scm:4173
 msgid "Citations in a reader-friendly style"
 msgstr ""
 
-#: gnu/packages/tex.scm:4318
+#: gnu/packages/tex.scm:4175
 msgid ""
 "The package allows citations in the German style, which is considered by\n"
 "many to be particularly reader-friendly.  The citation provides a small amount\n"
@@ -22372,11 +24877,11 @@ msgid ""
 "BibLaTeX, and is considered experimental."
 msgstr ""
 
-#: gnu/packages/tex.scm:4342
+#: gnu/packages/tex.scm:4199
 msgid "Flexible and complete interface to document dimensions"
 msgstr ""
 
-#: gnu/packages/tex.scm:4344
+#: gnu/packages/tex.scm:4201
 msgid ""
 "This package provides an easy and flexible user interface to customize\n"
 "page layout, implementing auto-centering and auto-balancing mechanisms so that\n"
@@ -22387,11 +24892,11 @@ msgid ""
 "ability to communicate the paper size it's set up to the output."
 msgstr ""
 
-#: gnu/packages/tex.scm:4367
+#: gnu/packages/tex.scm:4224
 msgid "Miscellaneous tools by Mark Wooding"
 msgstr ""
 
-#: gnu/packages/tex.scm:4369
+#: gnu/packages/tex.scm:4226
 msgid ""
 "This collection of tools includes: @code{atsupport} for short commands\n"
 "starting with @code{@@}, macros to sanitize the OT1 encoding of the\n"
@@ -22401,21 +24906,21 @@ msgid ""
 "array environments; verbatim handling; and syntax diagrams."
 msgstr ""
 
-#: gnu/packages/tex.scm:4391
+#: gnu/packages/tex.scm:4248
 msgid "Alternative to babel for XeLaTeX and LuaLaTeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:4393
+#: gnu/packages/tex.scm:4250
 msgid ""
 "This package provides a complete Babel replacement for users of LuaLaTeX\n"
 "and XeLaTeX; it relies on the @code{fontspec} package, version 2.0 at least."
 msgstr ""
 
-#: gnu/packages/tex.scm:4411
+#: gnu/packages/tex.scm:4268
 msgid "Multi-page tables package"
 msgstr ""
 
-#: gnu/packages/tex.scm:4413
+#: gnu/packages/tex.scm:4270
 msgid ""
 "This package was a predecessor of @code{longtable}; the newer\n"
 "package (designed on quite different principles) is easier to use and more\n"
@@ -22423,11 +24928,11 @@ msgid ""
 "situations where longtable has problems."
 msgstr ""
 
-#: gnu/packages/tex.scm:4446
+#: gnu/packages/tex.scm:4303
 msgid "TeX macros to handle Texinfo files"
 msgstr ""
 
-#: gnu/packages/tex.scm:4448
+#: gnu/packages/tex.scm:4305
 msgid ""
 "Texinfo is the preferred format for documentation in the GNU project;\n"
 "the format may be used to produce online or printed output from a single\n"
@@ -22436,11 +24941,11 @@ msgid ""
 "hypertext linkages in some cases)."
 msgstr ""
 
-#: gnu/packages/tex.scm:4469
+#: gnu/packages/tex.scm:4326
 msgid "Show \"realistic\" quotes in verbatim"
 msgstr ""
 
-#: gnu/packages/tex.scm:4471
+#: gnu/packages/tex.scm:4328
 msgid ""
 "Typewriter-style fonts are best for program listings, but Computer\n"
 "Modern Typewriter prints @code{`} and @code{'} as bent opening and closing\n"
@@ -22454,22 +24959,22 @@ msgid ""
 "does not affect @code{\\tt}, @code{\\texttt}, etc."
 msgstr ""
 
-#: gnu/packages/tex.scm:4510
+#: gnu/packages/tex.scm:4367
 msgid "Simple package to set up document margins"
 msgstr ""
 
-#: gnu/packages/tex.scm:4512
+#: gnu/packages/tex.scm:4369
 msgid ""
 "This is a simple package to set up document margins.  This package is\n"
 "considered obsolete; alternatives are the @code{typearea} package from the\n"
 "@code{koma-script} bundle, or the @code{geometry} package."
 msgstr ""
 
-#: gnu/packages/tex.scm:4531
+#: gnu/packages/tex.scm:4388
 msgid "Extra control of appendices"
 msgstr ""
 
-#: gnu/packages/tex.scm:4533
+#: gnu/packages/tex.scm:4390
 msgid ""
 "The appendix package provides various ways of formatting the titles of\n"
 "appendices.  Also (sub)appendices environments are provided that can be used,\n"
@@ -22478,11 +24983,11 @@ msgid ""
 "command."
 msgstr ""
 
-#: gnu/packages/tex.scm:4554
+#: gnu/packages/tex.scm:4411
 msgid "Generate changebars in LaTeX documents"
 msgstr ""
 
-#: gnu/packages/tex.scm:4556
+#: gnu/packages/tex.scm:4413
 msgid ""
 "Identify areas of text to be marked with changebars with the\n"
 "@code{\\cbstart} and @code{\\cbend} commands; the bars may be coloured.  The\n"
@@ -22491,31 +24996,31 @@ msgid ""
 "drivers, and VTeX and pdfTeX."
 msgstr ""
 
-#: gnu/packages/tex.scm:4591
+#: gnu/packages/tex.scm:4448
 msgid "CMap support for PDF files"
 msgstr ""
 
-#: gnu/packages/tex.scm:4593
+#: gnu/packages/tex.scm:4450
 msgid ""
 "This package embeds CMap tables into PDF files to make search and\n"
 "copy-and-paste functions work properly."
 msgstr ""
 
-#: gnu/packages/tex.scm:4611
+#: gnu/packages/tex.scm:4468
 msgid "Add colour to LaTeX tables"
 msgstr ""
 
-#: gnu/packages/tex.scm:4613
+#: gnu/packages/tex.scm:4470
 msgid ""
 "This package allows rows, columns, and even individual cells in LaTeX\n"
 "tables to be coloured."
 msgstr ""
 
-#: gnu/packages/tex.scm:4644
+#: gnu/packages/tex.scm:4501
 msgid "Variants of \\fbox and other games with boxes"
 msgstr ""
 
-#: gnu/packages/tex.scm:4646
+#: gnu/packages/tex.scm:4503
 msgid ""
 "This package provides variants of @code{\\fbox}: @code{\\shadowbox},\n"
 "@code{\\doublebox}, @code{\\ovalbox}, @code{\\Ovalbox}, with helpful tools for\n"
@@ -22523,22 +25028,22 @@ msgid ""
 "floats, center, flushleft, and flushright, lists, and pages."
 msgstr ""
 
-#: gnu/packages/tex.scm:4679
+#: gnu/packages/tex.scm:4536
 msgid "Extensive control of page headers and footers in LaTeX2e"
 msgstr ""
 
-#: gnu/packages/tex.scm:4681
+#: gnu/packages/tex.scm:4538
 msgid ""
 "The package provides extensive facilities, both for constructing headers\n"
 "and footers, and for controlling their use (for example, at times when LaTeX\n"
 "would automatically change the heading style in use)."
 msgstr ""
 
-#: gnu/packages/tex.scm:4700
+#: gnu/packages/tex.scm:4557
 msgid "Improved interface for floating objects"
 msgstr ""
 
-#: gnu/packages/tex.scm:4702
+#: gnu/packages/tex.scm:4559
 msgid ""
 "This package improves the interface for defining floating objects such\n"
 "as figures and tables.  It introduces the boxed float, the ruled float and the\n"
@@ -22548,11 +25053,11 @@ msgid ""
 "with @code{\\floatplacement{figure}{H}}."
 msgstr ""
 
-#: gnu/packages/tex.scm:4724
+#: gnu/packages/tex.scm:4581
 msgid "Range of footnote options"
 msgstr ""
 
-#: gnu/packages/tex.scm:4726
+#: gnu/packages/tex.scm:4583
 msgid ""
 "This is a collection of ways to change the typesetting of footnotes.\n"
 "The package provides means of changing the layout of the footnotes themselves,\n"
@@ -22562,11 +25067,11 @@ msgid ""
 "footnotes with symbols rather than numbers."
 msgstr ""
 
-#: gnu/packages/tex.scm:4750
+#: gnu/packages/tex.scm:4607
 msgid "Typeset source code listings using LaTeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:4752
+#: gnu/packages/tex.scm:4609
 msgid ""
 "The package enables the user to typeset programs (programming code)\n"
 "within LaTeX; the source code is read directly by TeX---no front-end processor\n"
@@ -22574,11 +25079,11 @@ msgid ""
 "styles.  Support for @code{hyperref} is provided."
 msgstr ""
 
-#: gnu/packages/tex.scm:4785
+#: gnu/packages/tex.scm:4642
 msgid "Miscellaneous packages by Joerg Knappen"
 msgstr ""
 
-#: gnu/packages/tex.scm:4787
+#: gnu/packages/tex.scm:4644
 msgid ""
 "This package provides miscellaneous macros by Joerg Knappen, including:\n"
 "represent counters in greek; Maxwell's non-commutative division;\n"
@@ -22590,11 +25095,11 @@ msgid ""
 "in SGML; use maths minus in text as appropriate; simple Young tableaux."
 msgstr ""
 
-#: gnu/packages/tex.scm:4862
+#: gnu/packages/tex.scm:4719
 msgid "Computer modern fonts in T1 and TS1 encodings"
 msgstr ""
 
-#: gnu/packages/tex.scm:4864
+#: gnu/packages/tex.scm:4721
 msgid ""
 "The EC fonts are European Computer Modern Fonts, supporting the complete\n"
 "LaTeX T1 encoding defined at the 1990 TUG conference hold at Cork/Ireland.\n"
@@ -22611,11 +25116,11 @@ msgid ""
 "differs from the EC in a number of particulars."
 msgstr ""
 
-#: gnu/packages/tex.scm:4895
+#: gnu/packages/tex.scm:4752
 msgid "Virtual fonts for T1 encoded CMR-fonts"
 msgstr ""
 
-#: gnu/packages/tex.scm:4897
+#: gnu/packages/tex.scm:4754
 msgid ""
 "This package provides a set of virtual fonts which emulates T1 coded\n"
 "fonts using the standard CM fonts.  The package name, AE fonts, supposedly\n"
@@ -22625,12 +25130,25 @@ msgid ""
 "via the CM-super, Latin Modern and (in a restricted way) CM-LGC font sets."
 msgstr ""
 
-#: gnu/packages/tex.scm:4923 gnu/packages/tex.scm:4952
-#: gnu/packages/tex.scm:4978
+#: gnu/packages/tex.scm:4777
+msgid "Monospaced font with support files for use with TeX"
+msgstr ""
+
+#: gnu/packages/tex.scm:4779
+msgid ""
+"Inconsolata is a monospaced font designed by Raph Levien.  This package\n"
+"contains the font (in both Adobe Type 1 and OpenType formats) in regular and\n"
+"bold weights, with additional glyphs and options to control slashed zero,\n"
+"upright quotes and a shapelier lower-case L, plus metric files for use with\n"
+"TeX, and LaTeX font definition and other relevant files."
+msgstr ""
+
+#: gnu/packages/tex.scm:4806 gnu/packages/tex.scm:4835
+#: gnu/packages/tex.scm:4861 gnu/packages/tex.scm:7547
 msgid "URW Base 35 font pack for LaTeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:4925
+#: gnu/packages/tex.scm:4808
 msgid ""
 "This package provides a drop-in replacements for the Times font from\n"
 "Adobe's basic set."
@@ -22638,7 +25156,7 @@ msgstr ""
 "Ce paquet fournit un remplaçant direct aux polices Times de\n"
 "l'ensemble Adobe de base."
 
-#: gnu/packages/tex.scm:4954
+#: gnu/packages/tex.scm:4837
 msgid ""
 "This package provides a drop-in replacements for the Palatino font from\n"
 "Adobe's basic set."
@@ -22646,7 +25164,7 @@ msgstr ""
 "Ce paquet fournit un remplaçant direct aux polices Palatino de\n"
 "l'ensemble Adobe de base."
 
-#: gnu/packages/tex.scm:4980
+#: gnu/packages/tex.scm:4863
 msgid ""
 "This package provides a drop-in replacements for the Zapfding font from\n"
 "Adobe's basic set."
@@ -22654,11 +25172,11 @@ msgstr ""
 "Ce paquet fournit un remplaçant direct aux polices Zapfding de\n"
 "l'ensemble Adobe de base."
 
-#: gnu/packages/tex.scm:5053
+#: gnu/packages/tex.scm:4936
 msgid "Ralph Smith's Formal Script font"
 msgstr ""
 
-#: gnu/packages/tex.scm:5055
+#: gnu/packages/tex.scm:4938
 msgid ""
 "The fonts provide uppercase formal script letters for use as symbols in\n"
 "scientific and mathematical typesetting (in contrast to the informal script\n"
@@ -22668,22 +25186,22 @@ msgid ""
 "one of the packages @code{calrsfs} and @code{mathrsfs}."
 msgstr ""
 
-#: gnu/packages/tex.scm:5077
+#: gnu/packages/tex.scm:4960
 msgid "Add picture commands (or backgrounds) to every page"
 msgstr ""
 
-#: gnu/packages/tex.scm:5079
+#: gnu/packages/tex.scm:4962
 msgid ""
 "The package adds one or more user commands to LaTeX's @code{shipout}\n"
 "routine, which may be used to place the output at fixed positions.  The\n"
 "@code{grid} option may be used to find the correct places."
 msgstr ""
 
-#: gnu/packages/tex.scm:5111
+#: gnu/packages/tex.scm:4994
 msgid "Extensions to epic and the LaTeX drawing tools"
 msgstr ""
 
-#: gnu/packages/tex.scm:5113
+#: gnu/packages/tex.scm:4996
 msgid ""
 "Extensions to @code{epic} and the LaTeX picture drawing environment,\n"
 "include the drawing of lines at any slope, the drawing of circles in any\n"
@@ -22693,11 +25211,11 @@ msgid ""
 "@code{\\special} commands."
 msgstr ""
 
-#: gnu/packages/tex.scm:5148
+#: gnu/packages/tex.scm:5031
 msgid "Customize basic list environments"
 msgstr ""
 
-#: gnu/packages/tex.scm:5150
+#: gnu/packages/tex.scm:5033
 msgid ""
 "This package is intended to ease customizing the three basic list\n"
 "environments: @code{enumerate}, @code{itemize} and @code{description}.  It\n"
@@ -22706,22 +25224,22 @@ msgid ""
 "@code{\\begin{itemize}[itemsep=1ex,leftmargin=1cm]}."
 msgstr ""
 
-#: gnu/packages/tex.scm:5171
+#: gnu/packages/tex.scm:5054
 msgid "Create tabular cells spanning multiple rows"
 msgstr ""
 
-#: gnu/packages/tex.scm:5173
+#: gnu/packages/tex.scm:5056
 msgid ""
 "The package provides tools for creating tabular cells spanning multiple\n"
 "rows.  It has a lot of flexibility, including an option for specifying an\n"
 "entry at the \"natural\" width of its text."
 msgstr ""
 
-#: gnu/packages/tex.scm:5205
+#: gnu/packages/tex.scm:5088
 msgid "Combine LaTeX commands over included graphics"
 msgstr ""
 
-#: gnu/packages/tex.scm:5207
+#: gnu/packages/tex.scm:5090
 msgid ""
 "The @code{overpic} environment is a cross between the LaTeX\n"
 "@code{picture} environment and the @code{\\includegraphics} command of\n"
@@ -22730,22 +25248,22 @@ msgid ""
 "positions; a grid for orientation is available."
 msgstr ""
 
-#: gnu/packages/tex.scm:5241
+#: gnu/packages/tex.scm:5124
 msgid "Layout with zero \\parindent, non-zero \\parskip"
 msgstr ""
 
-#: gnu/packages/tex.scm:5243
+#: gnu/packages/tex.scm:5126
 msgid ""
 "Simply changing @code{\\parskip} and @code{\\parindent} leaves a layout\n"
 "that is untidy; this package (though it is no substitute for a properly\n"
 "designed class) helps alleviate this untidiness."
 msgstr ""
 
-#: gnu/packages/tex.scm:5262
+#: gnu/packages/tex.scm:5145
 msgid "Include PDF documents in LaTeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:5264
+#: gnu/packages/tex.scm:5147
 msgid ""
 "This package simplifies the inclusion of external multi-page PDF\n"
 "documents in LaTeX documents.  Pages may be freely selected and it is possible\n"
@@ -22755,11 +25273,11 @@ msgid ""
 "use this package to insert PostScript files, in addition to PDF files."
 msgstr ""
 
-#: gnu/packages/tex.scm:5296
+#: gnu/packages/tex.scm:5179
 msgid "St Mary Road symbols for theoretical computer science"
 msgstr ""
 
-#: gnu/packages/tex.scm:5298
+#: gnu/packages/tex.scm:5181
 msgid ""
 "The fonts were originally distributed as Metafont sources only, but\n"
 "Adobe Type 1 versions are also now available.  Macro support is provided for\n"
@@ -22768,11 +25286,11 @@ msgid ""
 "the whole font."
 msgstr ""
 
-#: gnu/packages/tex.scm:5319
+#: gnu/packages/tex.scm:5202
 msgid "Figures divided into subfigures"
 msgstr ""
 
-#: gnu/packages/tex.scm:5321
+#: gnu/packages/tex.scm:5204
 msgid ""
 "This (deprecated) package provides support for the manipulation and\n"
 "reference of small or \"sub\" figures and tables within a single figure or\n"
@@ -22785,11 +25303,11 @@ msgid ""
 "the more recent @code{subcaption} package more satisfactory."
 msgstr ""
 
-#: gnu/packages/tex.scm:5346
+#: gnu/packages/tex.scm:5229
 msgid "Tabular with variable width columns balanced"
 msgstr ""
 
-#: gnu/packages/tex.scm:5348
+#: gnu/packages/tex.scm:5231
 msgid ""
 "The package defines a @code{tabular*}-like environment, @code{tabulary},\n"
 "taking a \"total width\" argument as well as the column specifications.  The\n"
@@ -22800,11 +25318,11 @@ msgid ""
 "according to the natural width of the widest cell in the column."
 msgstr ""
 
-#: gnu/packages/tex.scm:5384
+#: gnu/packages/tex.scm:5267
 msgid "Tables with captions and notes all the same width"
 msgstr ""
 
-#: gnu/packages/tex.scm:5386
+#: gnu/packages/tex.scm:5269
 msgid ""
 "This package facilitates tables with titles (captions) and notes.  The\n"
 "title and notes are given a width equal to the body of the table (a\n"
@@ -22813,11 +25331,11 @@ msgid ""
 "environment."
 msgstr ""
 
-#: gnu/packages/tex.scm:5411
+#: gnu/packages/tex.scm:5294
 msgid "Times-like fonts in support of mathematics"
 msgstr ""
 
-#: gnu/packages/tex.scm:5413
+#: gnu/packages/tex.scm:5296
 msgid ""
 "Txfonts supplies virtual text roman fonts using Adobe Times (or URW\n"
 "NimbusRomNo9L) with some modified and additional text symbols in the OT1, T1,\n"
@@ -22833,11 +25351,11 @@ msgid ""
 "TeX metrics (VF and TFM files) and macros for use with LaTeX."
 msgstr ""
 
-#: gnu/packages/tex.scm:5463
+#: gnu/packages/tex.scm:5346
 msgid "Sans-serif typeface for TeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:5464
+#: gnu/packages/tex.scm:5347
 msgid ""
 "Iwona is a two-element sans-serif typeface. It was created\n"
 "as an alternative version of the Kurier typeface, which was designed in 1975\n"
@@ -22848,11 +25366,38 @@ msgid ""
 "of ink traps which typify the Kurier font."
 msgstr ""
 
-#: gnu/packages/tex.scm:5500
+#: gnu/packages/tex.scm:5374
+msgid "Use Linux Libertine and Biolinum fonts with LaTeX"
+msgstr ""
+
+#: gnu/packages/tex.scm:5376
+msgid ""
+"The package provides the Libertine and Biolinum fonts in both Type 1 and\n"
+"OTF styles, together with support macros for their use.  Monospaced and\n"
+"display fonts, and the \"keyboard\" set are also included, in OTF style, only.\n"
+"The @code{mweights} package is used to manage the selection of font weights.\n"
+"The package supersedes both the @code{libertineotf} and the\n"
+"@code{libertine-legacy} packages."
+msgstr ""
+
+#: gnu/packages/tex.scm:5406
+msgid "LaTeX support for the DejaVu fonts"
+msgstr "Prise en charge des polices DejaVu dans LaTeX"
+
+#: gnu/packages/tex.scm:5408
+msgid ""
+"The package contains LaTeX support for the DejaVu fonts, which are\n"
+"derived from the Vera fonts but contain more characters and styles.  The fonts\n"
+"are included in the original TrueType format, and in converted Type 1 format.\n"
+"The (currently) supported encodings are: OT1, T1, IL2, TS1, T2*, X2, QX, and\n"
+"LGR.  The package doesn't (currently) support mathematics."
+msgstr ""
+
+#: gnu/packages/tex.scm:5442
 msgid "Select alternative section titles"
 msgstr ""
 
-#: gnu/packages/tex.scm:5502
+#: gnu/packages/tex.scm:5444
 msgid ""
 "This package provides an interface to sectioning commands for selection\n"
 "from various title styles, e.g. for marginal titles and to change the font of\n"
@@ -22861,11 +25406,11 @@ msgid ""
 "floats in a page.  You may assign headers/footers to individual floats, too."
 msgstr ""
 
-#: gnu/packages/tex.scm:5523
+#: gnu/packages/tex.scm:5465
 msgid "Arbitrary size font selection in LaTeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:5525
+#: gnu/packages/tex.scm:5467
 msgid ""
 "LaTeX, by default, restricts the sizes at which you can use its default\n"
 "computer modern fonts, to a fixed set of discrete sizes (effectively, a set\n"
@@ -22880,11 +25425,11 @@ msgid ""
 "@code{ec} fonts."
 msgstr ""
 
-#: gnu/packages/tex.scm:5552
+#: gnu/packages/tex.scm:5494
 msgid "Cyrillic fonts that support LaTeX standard encodings"
 msgstr ""
 
-#: gnu/packages/tex.scm:5554
+#: gnu/packages/tex.scm:5496
 msgid ""
 "The LH fonts address the problem of the wide variety of alphabets that\n"
 "are written with Cyrillic-style characters.  The fonts are the original basis\n"
@@ -22897,43 +25442,43 @@ msgid ""
 "OT2 encoded fonts, CM bright shaped fonts and Concrete shaped fonts."
 msgstr ""
 
-#: gnu/packages/tex.scm:5592
+#: gnu/packages/tex.scm:5534
 msgid "Create scalable illustrations"
 msgstr ""
 
-#: gnu/packages/tex.scm:5594
+#: gnu/packages/tex.scm:5536
 msgid ""
 "MetaPost uses a language based on that of Metafont to produce precise\n"
 "technical illustrations.  Its output is scalable PostScript or SVG, rather\n"
 "than the bitmaps Metafont creates."
 msgstr ""
 
-#: gnu/packages/tex.scm:5613
+#: gnu/packages/tex.scm:5555
 msgid "Class for typesetting publications of ACM"
 msgstr ""
 
-#: gnu/packages/tex.scm:5615
+#: gnu/packages/tex.scm:5557
 msgid ""
 "This package provides a class for typesetting publications of the\n"
 "Association for Computing Machinery (ACM)."
 msgstr ""
 
-#: gnu/packages/tex.scm:5646
+#: gnu/packages/tex.scm:5588
 msgid "Variable-width minipage"
 msgstr ""
 
-#: gnu/packages/tex.scm:5648
+#: gnu/packages/tex.scm:5590
 msgid ""
 "The @code{varwidth} environment is superficially similar to\n"
 "@code{minipage}, but the specified width is just a maximum value — the box may\n"
 "get a narrower “natural” width."
 msgstr ""
 
-#: gnu/packages/tex.scm:5667
+#: gnu/packages/tex.scm:5609
 msgid "LaTeX support file to use the WASY2 fonts"
 msgstr ""
 
-#: gnu/packages/tex.scm:5669
+#: gnu/packages/tex.scm:5611
 msgid ""
 "The wasy2WASY2 (Waldi Symbol) font by Roland Waldi provides many glyphs\n"
 "like male and female symbols and astronomical symbols, as well as the complete\n"
@@ -22941,22 +25486,22 @@ msgid ""
 "to use interface for these symbols."
 msgstr ""
 
-#: gnu/packages/tex.scm:5702
+#: gnu/packages/tex.scm:5644
 msgid "Produces figures which text can flow around"
 msgstr ""
 
-#: gnu/packages/tex.scm:5704
+#: gnu/packages/tex.scm:5646
 msgid ""
 "This package allows figures or tables to have text wrapped around them.\n"
 "It does not work in combination with list environments, but can be used in a\n"
 "@code{parbox} or @code{minipage}, and in two-column format."
 msgstr ""
 
-#: gnu/packages/tex.scm:5736
+#: gnu/packages/tex.scm:5678
 msgid "Extended UTF-8 input encoding support for LaTeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:5738
+#: gnu/packages/tex.scm:5680
 msgid ""
 "The bundle provides the @code{ucs} package, and @code{utf8x.def},\n"
 "together with a large number of support files.  The @code{utf8x.def}\n"
@@ -22969,11 +25514,11 @@ msgid ""
 "package of that name now exists."
 msgstr ""
 
-#: gnu/packages/tex.scm:5770
+#: gnu/packages/tex.scm:5712
 msgid "Extract bits of a LaTeX source for output"
 msgstr ""
 
-#: gnu/packages/tex.scm:5772
+#: gnu/packages/tex.scm:5714
 msgid ""
 "The main purpose of the preview package is the extraction of selected\n"
 "elements from a LaTeX source, like formulas or graphics, into separate\n"
@@ -22984,11 +25529,11 @@ msgid ""
 "files."
 msgstr ""
 
-#: gnu/packages/tex.scm:5795
+#: gnu/packages/tex.scm:5737
 msgid "Expand acronyms at least once"
 msgstr ""
 
-#: gnu/packages/tex.scm:5797
+#: gnu/packages/tex.scm:5739
 msgid ""
 "This package ensures that all acronyms used in the text are spelled out\n"
 "in full at least once.  It also provides an environment to build a list of\n"
@@ -22997,17 +25542,17 @@ msgid ""
 "e-TeX."
 msgstr ""
 
-#: gnu/packages/tex.scm:5848
+#: gnu/packages/tex.scm:5790
 msgid "TeX extension for direct creation of PDF"
 msgstr ""
 
-#: gnu/packages/tex.scm:5850
+#: gnu/packages/tex.scm:5792
 msgid ""
 "This package provides an extension of TeX which can be configured to\n"
 "directly generate PDF documents instead of DVI."
 msgstr ""
 
-#: gnu/packages/tex.scm:5922
+#: gnu/packages/tex.scm:5864
 msgid ""
 "TeX Live provides a comprehensive TeX document production system.\n"
 "It includes all the major TeX-related programs, macro packages, and fonts\n"
@@ -23017,7 +25562,7 @@ msgid ""
 "This package contains the complete tree of texmf-dist data."
 msgstr ""
 
-#: gnu/packages/tex.scm:5985
+#: gnu/packages/tex.scm:5927
 msgid ""
 "TeX Live provides a comprehensive TeX document production system.\n"
 "It includes all the major TeX-related programs, macro packages, and fonts\n"
@@ -23027,11 +25572,11 @@ msgid ""
 "This package contains the complete TeX Live distribution."
 msgstr ""
 
-#: gnu/packages/tex.scm:6028
+#: gnu/packages/tex.scm:5970
 msgid "Interface to read and parse BibTeX files"
 msgstr ""
 
-#: gnu/packages/tex.scm:6029
+#: gnu/packages/tex.scm:5971
 msgid ""
 "@code{Text::BibTeX} is a Perl library for reading, parsing,\n"
 "and processing BibTeX files.  @code{Text::BibTeX} gives you access to the data\n"
@@ -23040,21 +25585,21 @@ msgid ""
 "values (strings, macros, or numbers) pasted together."
 msgstr ""
 
-#: gnu/packages/tex.scm:6115
+#: gnu/packages/tex.scm:6061
 msgid "Backend for the BibLaTeX citation management tool"
 msgstr ""
 
-#: gnu/packages/tex.scm:6116
+#: gnu/packages/tex.scm:6062
 msgid ""
 "Biber is a BibTeX replacement for users of biblatex.  Among\n"
 "other things it comes with full Unicode support."
 msgstr ""
 
-#: gnu/packages/tex.scm:6140
+#: gnu/packages/tex.scm:6094
 msgid "Wrapper for LaTeX and friends"
 msgstr ""
 
-#: gnu/packages/tex.scm:6142
+#: gnu/packages/tex.scm:6096
 msgid ""
 "Rubber is a program whose purpose is to handle all tasks related to the\n"
 "compilation of LaTeX documents.  This includes compiling the document itself,\n"
@@ -23064,32 +25609,32 @@ msgid ""
 "PDF documents."
 msgstr ""
 
-#: gnu/packages/tex.scm:6184
+#: gnu/packages/tex.scm:6138
 msgid "LaTeX editor"
 msgstr "Éditeur de LaTeX"
 
-#: gnu/packages/tex.scm:6185
+#: gnu/packages/tex.scm:6139
 msgid ""
 "Texmaker is a program that integrates many tools needed to\n"
 "develop documents with LaTeX, in a single application."
 msgstr ""
 
-#: gnu/packages/tex.scm:6225
+#: gnu/packages/tex.scm:6179
 msgid "Book on TeX, plain TeX and Eplain"
 msgstr ""
 
-#: gnu/packages/tex.scm:6226
+#: gnu/packages/tex.scm:6180
 msgid ""
 "@i{TeX for the Impatient} is a ~350 page book on TeX,\n"
 "plain TeX, and Eplain, originally written by Paul Abrahams, Kathryn Hargreaves,\n"
 "and Karl Berry."
 msgstr ""
 
-#: gnu/packages/tex.scm:6318
+#: gnu/packages/tex.scm:6246
 msgid "Document preparation system with GUI"
 msgstr ""
 
-#: gnu/packages/tex.scm:6319
+#: gnu/packages/tex.scm:6247
 msgid ""
 "LyX is a document preparation system.  It excels at letting\n"
 "you create complex technical and scientific articles with mathematics,\n"
@@ -23098,11 +25643,11 @@ msgid ""
 "required: automatic sectioning and pagination, spell checking and so forth."
 msgstr ""
 
-#: gnu/packages/tex.scm:6353
+#: gnu/packages/tex.scm:6281
 msgid "Multimedia inclusion package with Adobe Reader-9/X compatibility"
 msgstr ""
 
-#: gnu/packages/tex.scm:6355
+#: gnu/packages/tex.scm:6283
 msgid ""
 "The package provides an interface to embed interactive Flash (SWF) and 3D\n"
 "objects (Adobe U3D & PRC), as well as video and sound files or streams in the\n"
@@ -23115,11 +25660,11 @@ msgid ""
 "specification.  It replaces the now obsolete @code{movie15} package."
 msgstr ""
 
-#: gnu/packages/tex.scm:6393
+#: gnu/packages/tex.scm:6321
 msgid "Provide OCG (Optional Content Groups) support within a PDF document"
 msgstr ""
 
-#: gnu/packages/tex.scm:6395
+#: gnu/packages/tex.scm:6323
 msgid ""
 "This package provides OCG (Optional Content Groups) support within a PDF\n"
 "document.\n"
@@ -23137,11 +25682,11 @@ msgid ""
 "It also ensures compatibility with the @code{media9} and @code{animate} packages."
 msgstr ""
 
-#: gnu/packages/tex.scm:6427
+#: gnu/packages/tex.scm:6355
 msgid "Various LATEX packages by Martin Schröder"
 msgstr ""
 
-#: gnu/packages/tex.scm:6429
+#: gnu/packages/tex.scm:6357
 msgid ""
 "A bundle of LATEX packages by Martin Schröder; the collection comprises:\n"
 "\n"
@@ -23155,22 +25700,22 @@ msgid ""
 "@end itemize\n"
 msgstr ""
 
-#: gnu/packages/tex.scm:6459
+#: gnu/packages/tex.scm:6387
 msgid "Insert pagebreak if not enough space"
 msgstr ""
 
-#: gnu/packages/tex.scm:6461
+#: gnu/packages/tex.scm:6389
 msgid ""
 "Provides commands to disable pagebreaking within a given vertical\n"
 "space.  If there is not enough space between the command and the bottom of the\n"
 "page, a new page will be started."
 msgstr ""
 
-#: gnu/packages/tex.scm:6485
+#: gnu/packages/tex.scm:6413
 msgid "Margin adjustment and detection of odd/even pages"
 msgstr ""
 
-#: gnu/packages/tex.scm:6487
+#: gnu/packages/tex.scm:6415
 msgid ""
 "The package provides commands to change the page layout in the middle of\n"
 "a document, and to robustly check for typesetting on odd or even pages.\n"
@@ -23178,11 +25723,11 @@ msgid ""
 "of code from the @code{memoir} class, whose user interface it shares."
 msgstr ""
 
-#: gnu/packages/tex.scm:6521
+#: gnu/packages/tex.scm:6449
 msgid "UK format dates, with weekday"
 msgstr ""
 
-#: gnu/packages/tex.scm:6523
+#: gnu/packages/tex.scm:6451
 msgid ""
 "The package is used to change the format of @code{\\today}’s date,\n"
 "including the weekday, e.g., \"Saturday, 26 June 2008\", the 'UK format', which\n"
@@ -23190,11 +25735,11 @@ msgid ""
 "@code{\\maketitle} of the article class, \"June 26, 2008\", the 'US format'."
 msgstr ""
 
-#: gnu/packages/tex.scm:6557
+#: gnu/packages/tex.scm:6485
 msgid "Underline text in TeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:6559
+#: gnu/packages/tex.scm:6487
 msgid ""
 "The package provides an @code{\\ul} (underline) command which will break\n"
 "over line ends; this technique may be used to replace @code{\\em} (both in that\n"
@@ -23203,11 +25748,11 @@ msgid ""
 "striking out (line through words) and crossing out (/// over words)."
 msgstr ""
 
-#: gnu/packages/tex.scm:6613
+#: gnu/packages/tex.scm:6541
 msgid "Create PostScript and PDF graphics in TeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:6615
+#: gnu/packages/tex.scm:6543
 msgid ""
 "PGF is a macro package for creating graphics.  It is platform- and\n"
 "format-independent and works together with the most important TeX backend\n"
@@ -23219,11 +25764,11 @@ msgid ""
 "produce either PostScript or PDF output."
 msgstr ""
 
-#: gnu/packages/tex.scm:6660
+#: gnu/packages/tex.scm:6588
 msgid "Bundle of versatile classes and packages"
 msgstr ""
 
-#: gnu/packages/tex.scm:6662
+#: gnu/packages/tex.scm:6590
 msgid ""
 "The KOMA-Script bundle provides replacements for the article, report, and\n"
 "book classes with emphasis on typography and versatility.  There is also a\n"
@@ -23248,22 +25793,22 @@ msgid ""
 "typearea (which are the main parts of the bundle)."
 msgstr ""
 
-#: gnu/packages/tex.scm:6712
+#: gnu/packages/tex.scm:6640
 msgid "Grab items in lists using user-specified separation character"
 msgstr ""
 
-#: gnu/packages/tex.scm:6714
+#: gnu/packages/tex.scm:6642
 msgid ""
 "This package allows one to capture all the items of a list, for which\n"
 "the parsing character has been selected by the user, and to access any of\n"
 "these items with a simple syntax."
 msgstr ""
 
-#: gnu/packages/tex.scm:6748
+#: gnu/packages/tex.scm:6676
 msgid "Read, store and recall array-formatted data"
 msgstr ""
 
-#: gnu/packages/tex.scm:6750
+#: gnu/packages/tex.scm:6678
 msgid ""
 "This package allows the user to input formatted data into elements of a\n"
 "2-D or 3-D array and to recall that data at will by individual cell number.\n"
@@ -23271,11 +25816,11 @@ msgid ""
 "formatted text."
 msgstr ""
 
-#: gnu/packages/tex.scm:6785
+#: gnu/packages/tex.scm:6713
 msgid "Deposit verbatim text in a box"
 msgstr ""
 
-#: gnu/packages/tex.scm:6787
+#: gnu/packages/tex.scm:6715
 msgid ""
 "The package provides a @code{verbbox} environment to place its contents\n"
 "into a globally available box, or into a box specified by the user.  The\n"
@@ -23285,11 +25830,11 @@ msgid ""
 "@code{trivlist}) may not appear."
 msgstr ""
 
-#: gnu/packages/tex.scm:6822
+#: gnu/packages/tex.scm:6750
 msgid "Verbatim phrases and listings in LaTeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:6824
+#: gnu/packages/tex.scm:6752
 msgid ""
 "Examplep provides sophisticated features for typesetting verbatim source\n"
 "code listings, including the display of the source code and its compiled LaTeX\n"
@@ -23302,11 +25847,11 @@ msgid ""
 "titles."
 msgstr ""
 
-#: gnu/packages/tex.scm:6860
+#: gnu/packages/tex.scm:6788
 msgid "Flexible diagramming macros"
 msgstr ""
 
-#: gnu/packages/tex.scm:6861
+#: gnu/packages/tex.scm:6789
 msgid ""
 "This is a package for typesetting a variety of graphs and\n"
 "diagrams with TeX.  Xy-pic works with most formats (including LaTeX,\n"
@@ -23314,11 +25859,11 @@ msgid ""
 "@code{diag} package, which was previously distributed stand-alone."
 msgstr ""
 
-#: gnu/packages/tex.scm:6901
+#: gnu/packages/tex.scm:6829
 msgid "Process bibliographies for LaTeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:6903
+#: gnu/packages/tex.scm:6831
 msgid ""
 "BibTeX allows the user to store his citation data in generic form, while\n"
 "printing citations in a document in the form specified by a BibTeX style, to\n"
@@ -23326,11 +25871,11 @@ msgid ""
 "package, such as @command{natbib} as well)."
 msgstr ""
 
-#: gnu/packages/tex.scm:6922
+#: gnu/packages/tex.scm:6850
 msgid "Charter fonts for TeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:6923
+#: gnu/packages/tex.scm:6851
 msgid ""
 "This package provides a copy of the Charter Type-1 fonts\n"
 "which Bitstream contributed to the X consortium, renamed for use with TeX.\n"
@@ -23338,22 +25883,22 @@ msgid ""
 "@command{psnfss}. "
 msgstr ""
 
-#: gnu/packages/tex.scm:6960
+#: gnu/packages/tex.scm:6888
 msgid "Full featured, parameter driven macro package for TeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:6961
+#: gnu/packages/tex.scm:6889
 msgid ""
 "A full featured, parameter driven macro package, which fully\n"
 "supports advanced interactive documents.  See the ConTeXt garden for a wealth\n"
 "of support information."
 msgstr ""
 
-#: gnu/packages/tex.scm:6981
+#: gnu/packages/tex.scm:6909
 msgid "LaTeX class for producing presentations and slides"
 msgstr ""
 
-#: gnu/packages/tex.scm:6982
+#: gnu/packages/tex.scm:6910
 msgid ""
 "The beamer LaTeX class can be used for producing slides.\n"
 "The class works in both PostScript and direct PDF output modes, using the\n"
@@ -23366,11 +25911,11 @@ msgid ""
 "effects, varying slide transitions and animations."
 msgstr ""
 
-#: gnu/packages/tex.scm:7013
+#: gnu/packages/tex.scm:6941
 msgid "Include eXtensible Metadata Platform data in pdfLaTeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:7015
+#: gnu/packages/tex.scm:6943
 msgid ""
 "The XMP (eXtensible Metadata platform) is a framework to add metadata to\n"
 "digital material to enhance the workflow in publication.  The essence is that\n"
@@ -23378,21 +25923,21 @@ msgid ""
 "the file to which it applies."
 msgstr ""
 
-#: gnu/packages/tex.scm:7068
+#: gnu/packages/tex.scm:6996
 msgid "PDF/X and PDF/A support for pdfTeX, LuaTeX and XeTeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:7070
+#: gnu/packages/tex.scm:6998
 msgid ""
-"This package helps LaTeX users to create PDF/X, PFD/A and other\n"
+"This package helps LaTeX users to create PDF/X, PDF/A and other\n"
 "standards-compliant PDF documents with pdfTeX, LuaTeX and XeTeX."
 msgstr ""
 
-#: gnu/packages/tex.scm:7112
+#: gnu/packages/tex.scm:7040
 msgid "Macros for documentation of LaTeX classes and packages"
 msgstr ""
 
-#: gnu/packages/tex.scm:7113
+#: gnu/packages/tex.scm:7041
 msgid ""
 "The package provides macros and environments to document\n"
 "LaTeX packages and classes.  It is an (as yet unfinished) alternative to the\n"
@@ -23403,11 +25948,11 @@ msgid ""
 "change."
 msgstr ""
 
-#: gnu/packages/tex.scm:7140
+#: gnu/packages/tex.scm:7068
 msgid "PostScript macros for TeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:7141
+#: gnu/packages/tex.scm:7069
 msgid ""
 "PSTricks offers an extensive collection of macros for\n"
 "generating PostScript that is usable with most TeX macro formats, including\n"
@@ -23418,22 +25963,34 @@ msgid ""
 "or shading the cells of tables."
 msgstr ""
 
-#: gnu/packages/tex.scm:7166
+#: gnu/packages/tex.scm:7093
 msgid "Text and character manipulation in PSTricks"
 msgstr ""
 
-#: gnu/packages/tex.scm:7167
+#: gnu/packages/tex.scm:7094
 msgid ""
 "Pst-text is a PSTricks based package for plotting text along\n"
 "a different path and manipulating characters.  It includes the functionality\n"
 "of the old package @code{pst-char}."
 msgstr ""
 
-#: gnu/packages/tex.scm:7183
+#: gnu/packages/tex.scm:7118
+msgid "Notes in the margin"
+msgstr ""
+
+#: gnu/packages/tex.scm:7119
+msgid ""
+"This package provides the command @code{\\marginnote} that\n"
+"may be used instead of @code{\\marginpar} at almost every place where\n"
+"@code{\\marginpar} cannot be used, e.g., inside floats, footnotes, or in\n"
+"frames made with the @code{framed} package."
+msgstr ""
+
+#: gnu/packages/tex.scm:7136
 msgid "Determine the currently used TeX engine"
 msgstr ""
 
-#: gnu/packages/tex.scm:7184
+#: gnu/packages/tex.scm:7137
 msgid ""
 "This package, which works both for Plain TeX and for\n"
 "LaTeX, defines the @code{\\ifPDFTeX}, @code{\\ifXeTeX}, and @code{\\ifLuaTeX}\n"
@@ -23443,7 +26000,7 @@ msgid ""
 "LuaTeX (respectively) is not the engine in use."
 msgstr ""
 
-#: gnu/packages/tex.scm:7213
+#: gnu/packages/tex.scm:7166
 msgid ""
 "This package provides a collection of simple tools that\n"
 "are part of the LaTeX required tools distribution, comprising the packages:\n"
@@ -23455,11 +26012,11 @@ msgid ""
 "@code{varioref}, @code{verbatim}, @code{xr}, and @code{xspace}."
 msgstr ""
 
-#: gnu/packages/tex.scm:7292
+#: gnu/packages/tex.scm:7245
 msgid "Extension of the keyval package"
 msgstr ""
 
-#: gnu/packages/tex.scm:7294
+#: gnu/packages/tex.scm:7247
 msgid ""
 "This package is an extension of the keyval package and offers additional\n"
 "macros for setting keys and declaring and setting class or package options.\n"
@@ -23469,11 +26026,11 @@ msgid ""
 "keys."
 msgstr ""
 
-#: gnu/packages/tex.scm:7321
+#: gnu/packages/tex.scm:7274
 msgid "Compile TeX pictures stand-alone or as part of a document"
 msgstr ""
 
-#: gnu/packages/tex.scm:7322
+#: gnu/packages/tex.scm:7275
 msgid ""
 "A class and package is provided which allows TeX pictures or\n"
 "other TeX code to be compiled standalone or as part of a main document.\n"
@@ -23485,11 +26042,11 @@ msgid ""
 "@code{standalone.cfg} to redefine the standalone environment."
 msgstr ""
 
-#: gnu/packages/tex.scm:7354
+#: gnu/packages/tex.scm:7307
 msgid "Comprehensive SI units package"
 msgstr ""
 
-#: gnu/packages/tex.scm:7356
+#: gnu/packages/tex.scm:7309
 msgid ""
 "Typesetting values with units requires care to ensure that the combined\n"
 "mathematical meaning of the value plus unit combination is clear.  In\n"
@@ -23505,11 +26062,11 @@ msgid ""
 "package to handle all of the possible unit-related needs of LaTeX users."
 msgstr ""
 
-#: gnu/packages/tex.scm:7385
+#: gnu/packages/tex.scm:7338
 msgid "Publication quality tables in LaTeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:7387
+#: gnu/packages/tex.scm:7340
 msgid ""
 "This package enhances the quality of tables in LaTeX, providing extra\n"
 "commands as well as behind-the-scenes optimisation.  Guidelines are given as\n"
@@ -23517,11 +26074,182 @@ msgid ""
 "@code{longtable} compatibility."
 msgstr ""
 
-#: gnu/packages/texinfo.scm:61
+#: gnu/packages/tex.scm:7359
+msgid "Context sensitive quotation facilities"
+msgstr ""
+
+#: gnu/packages/tex.scm:7360
+msgid ""
+"This package provides advanced facilities for inline and\n"
+"display quotations.  It is designed for a wide range of tasks ranging from the\n"
+"most simple applications to the more complex demands of formal quotations.\n"
+"The facilities include commands, environments, and user-definable 'smart\n"
+"quotes' which dynamically adjust to their context.  Quotation marks are\n"
+"switched automatically if quotations are nested and they can be adjusted to\n"
+"the current language if the babel package is available.  There are additional\n"
+"facilities designed to cope with the more specific demands of academic\n"
+"writing, especially in the humanities and the social sciences.  All quote\n"
+"styles as well as the optional active quotes are freely configurable."
+msgstr ""
+
+#: gnu/packages/tex.scm:7385
+msgid "Support for automation of the LaTeX workflow"
+msgstr ""
+
+#: gnu/packages/tex.scm:7386
+msgid ""
+"The package helps to automate a typical LaTeX\n"
+"workflow that involves running LaTeX several times and running tools\n"
+"such as BibTeX or makeindex.  It will log requests like \"please rerun\n"
+"LaTeX\" or \"please run BibTeX on file X\" to an external file in a\n"
+"machine-readable format.  Compiler scripts and integrated LaTeX\n"
+"editing environments may parse this file to determine the next steps\n"
+"in the workflow.  In sum, the package will do two things:\n"
+"\n"
+"@enumerate\n"
+"@item\n"
+"enable package authors to use LaTeX commands to issue requests, and\n"
+"\n"
+"@item\n"
+"collect all requests from all packages and write them to an external\n"
+"XML file.\n"
+"@end enumerate\n"
+msgstr ""
+
+#: gnu/packages/tex.scm:7418
+msgid "Sophisticated bibliographies in LaTeX"
+msgstr ""
+
+#: gnu/packages/tex.scm:7419
+msgid ""
+"BibLaTeX is a complete reimplementation of the\n"
+"bibliographic facilities provided by LaTeX.  Formatting of the\n"
+"bibliography is entirely controlled by LaTeX macros, facilitating the\n"
+"design of new bibliography and citation styles.  BibLaTeX uses its own\n"
+"data backend program \"biber\" to read and process the bibliographic\n"
+"data.  With biber, the range of features provided by biblatex\n"
+"includes:\n"
+"\n"
+"@enumerate\n"
+"@item\n"
+"full unicode support,\n"
+"\n"
+"@item\n"
+"customisable bibliography labels,\n"
+"\n"
+"@item\n"
+"multiple bibliographies in the same document, and\n"
+"\n"
+"@item\n"
+"subdivided bibliographies, such as bibliographies per chapter or\n"
+"section.\n"
+"@end enumerate\n"
+msgstr ""
+
+#: gnu/packages/tex.scm:7457
+msgid "Marking things to do in a LaTeX document"
+msgstr ""
+
+#: gnu/packages/tex.scm:7458
+msgid ""
+"The @code{todonotes} package lets the user mark\n"
+"things to do later, in a simple and visually appealing way.  The\n"
+"package takes several options to enable customization and finetuning\n"
+"of the visual appearance."
+msgstr ""
+
+#: gnu/packages/tex.scm:7475
+msgid "Typeset physical units and fractions"
+msgstr ""
+
+#: gnu/packages/tex.scm:7476
+msgid ""
+"@code{units} is a package for typesetting physical\n"
+"units in a standard-looking way.  The package is based upon\n"
+"@code{nicefrac}, a package for typing fractions.  @code{nicefrac} is\n"
+"included in the @code{units} bundle."
+msgstr ""
+
+#: gnu/packages/tex.scm:7493
+msgid "Subliminal refinements towards typographical perfection"
+msgstr ""
+
+#: gnu/packages/tex.scm:7494
+msgid ""
+"@code{microtype} provides a LaTeX interface to the\n"
+"micro-typographic extensions that were introduced by pdfTeX and have\n"
+"since propagated to XeTeX and LuaTeX: most prominently character\n"
+"protrusion and font expansion, the adjustment of kerning and interword\n"
+"spacing, hyphenatable letterspacing and the possibility to disable all\n"
+"or selected ligatures.  These features may be applied to customisable\n"
+"sets of fonts.  All micro-typographic aspects of the fonts can be\n"
+"configured in a straight-forward and flexible way.  Settings for\n"
+"various fonts are provided.  An alternative package\n"
+"@code{letterspace}, which also works with plain TeX, is included in\n"
+"the bundle."
+msgstr ""
+
+#: gnu/packages/tex.scm:7518
+msgid "Customising captions in floating environments"
+msgstr ""
+
+#: gnu/packages/tex.scm:7519
+msgid ""
+"The @code{caption} package provides many ways to\n"
+"customise the captions in floating environments like figure and table.\n"
+"Facilities include rotating captions, sideways captions and continued\n"
+"captions (for tables or figures that come in several parts).  A list\n"
+"of compatibility notes, for other packages, is provided in the\n"
+"documentation.  The package also provides the \"caption outside\n"
+"float\" facility, in the same way that simpler packages like\n"
+"@code{capt-ofcapt-of} do.  The package supersedes @code{caption2}.\n"
+"Packages @code{bicaption}, @code{ltcaption}, @code{newfloat},\n"
+"@code{subcaption} and @code{totalcount} are included in the bundle."
+msgstr ""
+
+#: gnu/packages/tex.scm:7548
+msgid ""
+"This package provides a drop-in replacement for the\n"
+"Symbol font from Adobe's basic set."
+msgstr ""
+"Ce paquet fournit un remplaçant direct aux polices Symbol de\n"
+"l'ensemble Adobe de base."
+
+#: gnu/packages/tex.scm:7565
+msgid "Fonts to typeset mathematics to match Palatino"
+msgstr ""
+
+#: gnu/packages/tex.scm:7566
+msgid ""
+"The Pazo Math fonts are a family of PostScript fonts\n"
+"suitable for typesetting mathematics in combination with the Palatino\n"
+"family of text fonts.  The Pazo Math family is made up of five fonts\n"
+"provided in Adobe Type 1 format.  These contain glyphs that are\n"
+"usually not available in Palatino and for which Computer Modern looks\n"
+"odd when combined with Palatino.  These glyphs include the uppercase\n"
+"Greek alphabet in upright and slanted shapes, the lowercase Greek\n"
+"alphabet in slanted shape, several mathematical glyphs and the\n"
+"uppercase letters commonly used to represent various number sets.\n"
+"LaTeX macro support is provided in package @code{psnfss}."
+msgstr ""
+
+#: gnu/packages/tex.scm:7590
+msgid "SC and OsF fonts for URW Palladio L"
+msgstr ""
+
+#: gnu/packages/tex.scm:7591
+msgid ""
+"The FPL Fonts provide a set of SC/OsF fonts for URW\n"
+"Palladio L which are compatible with the Palatino SC/OsF fonts from\n"
+"Adobe.  LaTeX use is enabled by the mathpazo package, which is part of\n"
+"the @code{psnfss} distribution."
+msgstr ""
+
+#: gnu/packages/texinfo.scm:90
 msgid "The GNU documentation format"
 msgstr "Le format de documentation de GNU"
 
-#: gnu/packages/texinfo.scm:63
+#: gnu/packages/texinfo.scm:92
 msgid ""
 "Texinfo is the official documentation format of the GNU project.  It\n"
 "uses a single source file using explicit commands to produce a final document\n"
@@ -23531,15 +26259,15 @@ msgid ""
 "is on expressing the content semantically, avoiding physical markup commands."
 msgstr ""
 
-#: gnu/packages/texinfo.scm:144
+#: gnu/packages/texinfo.scm:189
 msgid "Standalone Info documentation reader"
 msgstr ""
 
-#: gnu/packages/texinfo.scm:176
+#: gnu/packages/texinfo.scm:221
 msgid "Convert Texinfo to HTML"
 msgstr ""
 
-#: gnu/packages/texinfo.scm:178
+#: gnu/packages/texinfo.scm:223
 msgid ""
 "Texi2HTML is a Perl script which converts Texinfo source files to HTML\n"
 "output.  It now supports many advanced features, such as internationalization\n"
@@ -23554,11 +26282,11 @@ msgid ""
 "Texi2HTML."
 msgstr ""
 
-#: gnu/packages/texinfo.scm:244
+#: gnu/packages/texinfo.scm:289
 msgid "Lynx-style Info file and man page reader"
 msgstr ""
 
-#: gnu/packages/texinfo.scm:246
+#: gnu/packages/texinfo.scm:291
 msgid ""
 "Pinfo is an Info file viewer.  Pinfo is similar in use to the Lynx web\n"
 "browser.  You just move across info nodes, and select links, follow them, etc.\n"
@@ -23567,21 +26295,21 @@ msgid ""
 "are hypertextualized."
 msgstr ""
 
-#: gnu/packages/textutils.scm:86
+#: gnu/packages/textutils.scm:91
 msgid "DOS/Mac to Unix and vice versa text file format converter"
 msgstr ""
 
-#: gnu/packages/textutils.scm:88
+#: gnu/packages/textutils.scm:93
 msgid ""
 "dos2unix is a tool to convert line breaks in a text file from Unix format\n"
 "to DOS format and vice versa."
 msgstr ""
 
-#: gnu/packages/textutils.scm:108
+#: gnu/packages/textutils.scm:113
 msgid "Text encoding converter"
 msgstr ""
 
-#: gnu/packages/textutils.scm:109
+#: gnu/packages/textutils.scm:114
 msgid ""
 "The Recode library converts files between character sets and\n"
 "usages.  It recognises or produces over 200 different character sets (or about\n"
@@ -23591,33 +26319,33 @@ msgid ""
 "handy front-end to the library."
 msgstr ""
 
-#: gnu/packages/textutils.scm:134
+#: gnu/packages/textutils.scm:139
 msgid "Text encoding detection tool"
 msgstr ""
 
-#: gnu/packages/textutils.scm:135
+#: gnu/packages/textutils.scm:140
 msgid ""
 "Enca (Extremely Naive Charset Analyser) consists of libenca,\n"
 "an encoding detection library, and enca, a command line frontend, integrating\n"
 "libenca and several charset conversion libraries and tools."
 msgstr ""
 
-#: gnu/packages/textutils.scm:189
+#: gnu/packages/textutils.scm:197
 msgid "C library for processing UTF-8 Unicode data"
 msgstr ""
 
-#: gnu/packages/textutils.scm:190
+#: gnu/packages/textutils.scm:198
 msgid ""
 "utf8proc is a small C library that provides Unicode\n"
 "normalization, case-folding, and other operations for data in the UTF-8\n"
 "encoding, supporting Unicode version 9.0.0."
 msgstr ""
 
-#: gnu/packages/textutils.scm:209 gnu/packages/textutils.scm:714
+#: gnu/packages/textutils.scm:219 gnu/packages/textutils.scm:740
 msgid "Configuration file parser library"
 msgstr ""
 
-#: gnu/packages/textutils.scm:210
+#: gnu/packages/textutils.scm:220
 msgid ""
 "libconfuse is a configuration file parser library.  It\n"
 "supports sections and (lists of) values (strings, integers, floats, booleans\n"
@@ -23626,39 +26354,39 @@ msgid ""
 "nested include statements)."
 msgstr ""
 
-#: gnu/packages/textutils.scm:241
+#: gnu/packages/textutils.scm:262
 msgid "Gordon's text utils library"
 msgstr ""
 
-#: gnu/packages/textutils.scm:243
+#: gnu/packages/textutils.scm:264
 msgid ""
 "libgtextutils is a text utilities library used by the fastx toolkit from\n"
 "the Hannon Lab."
 msgstr ""
 
-#: gnu/packages/textutils.scm:275
+#: gnu/packages/textutils.scm:296
 msgid "C++ hash functions for strings"
 msgstr ""
 
-#: gnu/packages/textutils.scm:277
+#: gnu/packages/textutils.scm:298
 msgid ""
 "CityHash provides hash functions for strings.  The functions mix the\n"
 "input bits thoroughly but are not suitable for cryptography."
 msgstr ""
 
-#: gnu/packages/textutils.scm:315
+#: gnu/packages/textutils.scm:336
 msgid "String library with very low memory overhead"
 msgstr ""
 
-#: gnu/packages/textutils.scm:317
+#: gnu/packages/textutils.scm:338
 msgid "Ustr is a string library for C with very low memory overhead."
 msgstr ""
 
-#: gnu/packages/textutils.scm:340
+#: gnu/packages/textutils.scm:361
 msgid "Convert between ASCII, hexadecimal and binary representations"
 msgstr ""
 
-#: gnu/packages/textutils.scm:341
+#: gnu/packages/textutils.scm:362
 msgid ""
 "The two programs are useful for generating test data, for\n"
 "inspecting binary files, and for interfacing programs that generate textual\n"
@@ -23688,11 +26416,11 @@ msgid ""
 "@end itemize"
 msgstr ""
 
-#: gnu/packages/textutils.scm:399
+#: gnu/packages/textutils.scm:420
 msgid "Find out what is in a Unicode file"
 msgstr ""
 
-#: gnu/packages/textutils.scm:400
+#: gnu/packages/textutils.scm:421
 msgid ""
 "Useful tools when working with Unicode files when one\n"
 "doesn't know the writing system, doesn't have the necessary font, needs to\n"
@@ -23725,11 +26453,11 @@ msgid ""
 "@end itemize"
 msgstr ""
 
-#: gnu/packages/textutils.scm:444
+#: gnu/packages/textutils.scm:465
 msgid "C/C++ configuration file library"
 msgstr ""
 
-#: gnu/packages/textutils.scm:446
+#: gnu/packages/textutils.scm:467
 msgid ""
 "Libconfig is a simple library for manipulating structured configuration\n"
 "files.  This file format is more compact and more readable than XML.  And\n"
@@ -23737,11 +26465,11 @@ msgid ""
 "application code."
 msgstr ""
 
-#: gnu/packages/textutils.scm:467
+#: gnu/packages/textutils.scm:488
 msgid "Probabilistic fast file fingerprinting tool"
 msgstr ""
 
-#: gnu/packages/textutils.scm:469
+#: gnu/packages/textutils.scm:490
 msgid ""
 "pfff is a tool for calculating a compact digital fingerprint of a file\n"
 "by sampling randomly from the file instead of reading it in full.\n"
@@ -23750,22 +26478,22 @@ msgid ""
 "as existing hashing techniques, with provably negligible risk of collisions."
 msgstr ""
 
-#: gnu/packages/textutils.scm:490
+#: gnu/packages/textutils.scm:516
 msgid "Regular expression library"
 msgstr "Bibliothèque d'expressions régulières"
 
-#: gnu/packages/textutils.scm:491
+#: gnu/packages/textutils.scm:517
 msgid ""
 "Oniguruma is a regular expressions library.  The special\n"
 "characteristic of this library is that different character encoding for every\n"
 "regular expression object can be specified."
 msgstr ""
 
-#: gnu/packages/textutils.scm:531
+#: gnu/packages/textutils.scm:557
 msgid "Microsoft Word document reader"
 msgstr ""
 
-#: gnu/packages/textutils.scm:532
+#: gnu/packages/textutils.scm:558
 msgid ""
 "Antiword is an application for displaying Microsoft Word\n"
 "documents.  It can also convert the document to PostScript or XML.  Only\n"
@@ -23775,11 +26503,11 @@ msgid ""
 "runs Word\"."
 msgstr ""
 
-#: gnu/packages/textutils.scm:565
+#: gnu/packages/textutils.scm:591
 msgid "MS-Word to TeX or plain text converter"
 msgstr ""
 
-#: gnu/packages/textutils.scm:566
+#: gnu/packages/textutils.scm:592
 msgid ""
 "@command{catdoc} extracts text from MS-Word files, trying to\n"
 "preserve as many special printable characters as possible.  It supports\n"
@@ -23795,21 +26523,21 @@ msgid ""
 "@command{catppt}, which extracts data from PowerPoint presentations."
 msgstr ""
 
-#: gnu/packages/textutils.scm:607
+#: gnu/packages/textutils.scm:633
 msgid "Portable C++ library for handling UTF-8"
 msgstr ""
 
-#: gnu/packages/textutils.scm:608
+#: gnu/packages/textutils.scm:634
 msgid ""
 "UTF8-CPP is a C++ library for handling UTF-8 encoded text\n"
 "in a portable way."
 msgstr ""
 
-#: gnu/packages/textutils.scm:676
+#: gnu/packages/textutils.scm:702
 msgid "Bayesian text and email classifier"
 msgstr ""
 
-#: gnu/packages/textutils.scm:678
+#: gnu/packages/textutils.scm:704
 msgid ""
 "dbacl is a fast Bayesian text and email classifier.  It builds a variety\n"
 "of language models using maximum entropy (minimum divergence) principles, and\n"
@@ -23817,15 +26545,72 @@ msgid ""
 "categories."
 msgstr ""
 
-#: gnu/packages/textutils.scm:716
+#: gnu/packages/textutils.scm:742
 msgid "C library for creating and parsing configuration files."
 msgstr ""
 
-#: gnu/packages/textutils.scm:744
+#: gnu/packages/textutils.scm:798
+msgid "Utilities to manipulate text and binary files"
+msgstr "Utilitaires pour manipuler des fichiers textes et binaries"
+
+#: gnu/packages/textutils.scm:799
+msgid ""
+"The drm_tools package contains the following commands:\n"
+"@table @command\n"
+"@item accudate\n"
+"An extended version of the \"date\" program that has sub-second accuracy.\n"
+"@item binformat\n"
+"Format complex binary data into text.\n"
+"@item binload\n"
+"Load data into a binary file using simple commands from the input.\n"
+"@item binorder\n"
+"Sort, merge, search, retrieve or generate test data consisting of fixed size\n"
+"binary records.\n"
+"@item binreplace\n"
+"Find or find/replace in binary files.\n"
+"@item binsplit\n"
+"Split test data consisting of fixed size binary records into one or more\n"
+"output streams.\n"
+"@item chardiff\n"
+"Find changes between two files at the character level.  Unlike \"diff\", it\n"
+"lists just the characters that differ, so if the 40,000th character is\n"
+"different only that one character will be shown, not the entire line.\n"
+"@item columnadd\n"
+"Add columns of integers, decimals, and/or times.\n"
+"@item datasniffer\n"
+"A utility for formatting binary data dumps.\n"
+"@item dmath\n"
+"Double precision interactive command line math calculator.\n"
+"@item extract\n"
+"Extract and emit data from text files based on character or token position.\n"
+"@item execinput\n"
+"A utility that reads from STDIN and executes each line as a command in a\n"
+"sub-process.\n"
+"@item indexed_text\n"
+"A utility for rapid retrieval of text by line numbers, in any order, from a\n"
+"text file.\n"
+"@item mdump\n"
+"Format binary data.\n"
+"@item msgqueue\n"
+"Create message queues and send/receive messages.\n"
+"@item mbin\n"
+"@itemx mbout\n"
+"Multiple buffer in and out.  Used for buffering a lot of data between a slow\n"
+"device and a fast device.  Mostly for buffering streaming tape drives for use\n"
+"with slower network connections, so that streaming is maintained as much as\n"
+"possible to minimize wear on the tape device.\n"
+"@item pockmark\n"
+"Corrupt data streams - useful for testing error correction and data recovery.\n"
+"@item tarsieve\n"
+"Filter, list, or split a tar file.\n"
+"@end table"
+msgstr ""
+
+#: gnu/packages/textutils.scm:874
 msgid "Syntax highlighting text component for Java Swing"
 msgstr ""
 
-#: gnu/packages/textutils.scm:745
+#: gnu/packages/textutils.scm:875
 msgid ""
 "RSyntaxTextArea is a syntax highlighting, code folding text\n"
 "component for Java Swing.  It extends @code{JTextComponent} so it integrates\n"
@@ -23834,32 +26619,32 @@ msgid ""
 "source code."
 msgstr ""
 
-#: gnu/packages/textutils.scm:783
+#: gnu/packages/textutils.scm:913
 msgid "Fast implementation of the edit distance (Levenshtein distance)"
 msgstr ""
 
-#: gnu/packages/textutils.scm:785
+#: gnu/packages/textutils.scm:915
 msgid ""
 "This library simply implements Levenshtein distance algorithm with C++\n"
 "and Cython."
 msgstr ""
 
-#: gnu/packages/textutils.scm:809
+#: gnu/packages/textutils.scm:939
 msgid "@code{runewidth} provides Go functions to work with string widths"
 msgstr ""
 
-#: gnu/packages/textutils.scm:811
+#: gnu/packages/textutils.scm:941
 msgid ""
 "The @code{runewidth} library provides Go functions for padding,\n"
 "measuring and checking the width of strings, with support for East Asian\n"
 "text."
 msgstr ""
 
-#: gnu/packages/textutils.scm:863
+#: gnu/packages/textutils.scm:993
 msgid "Recover text from @file{.docx} files, with good formatting"
 msgstr ""
 
-#: gnu/packages/textutils.scm:865
+#: gnu/packages/textutils.scm:995
 msgid ""
 "@command{docx2txt} is a Perl based command line utility to convert\n"
 "Microsoft Office @file{.docx} documents to equivalent text documents.  Latest\n"
@@ -23878,11 +26663,11 @@ msgid ""
 "@end itemize\n"
 msgstr ""
 
-#: gnu/packages/textutils.scm:909
+#: gnu/packages/textutils.scm:1039
 msgid "Converter from OpenDocument Text to plain text"
 msgstr ""
 
-#: gnu/packages/textutils.scm:910
+#: gnu/packages/textutils.scm:1040
 msgid ""
 "odt2txt is a command-line tool which extracts the text out\n"
 "of OpenDocument Texts, as produced by OpenOffice.org, KOffice, StarOffice and\n"
@@ -23895,11 +26680,11 @@ msgid ""
 "OpenDocument presentations (*.odp)."
 msgstr ""
 
-#: gnu/packages/textutils.scm:955
+#: gnu/packages/textutils.scm:1085
 msgid "Convert between Traditional Chinese and Simplified Chinese"
 msgstr ""
 
-#: gnu/packages/textutils.scm:956
+#: gnu/packages/textutils.scm:1086
 msgid ""
 "Open Chinese Convert (OpenCC) converts between Traditional\n"
 "Chinese and Simplified Chinese, supporting character-level conversion,\n"
@@ -23907,22 +26692,22 @@ msgid ""
 "Mainland China, Taiwan, and Hong-Kong."
 msgstr ""
 
-#: gnu/packages/textutils.scm:990
+#: gnu/packages/textutils.scm:1120
 msgid "Network Kanji Filter"
 msgstr ""
 
-#: gnu/packages/textutils.scm:991
+#: gnu/packages/textutils.scm:1121
 msgid ""
 "Nkf is yet another kanji code converter among networks,\n"
 "hosts and terminals.  It converts input kanji code to designated kanji code\n"
 "such as ISO-2022-JP, Shift_JIS, EUC-JP, UTF-8, UTF-16 or UTF-32."
 msgstr ""
 
-#: gnu/packages/textutils.scm:1009
+#: gnu/packages/textutils.scm:1139
 msgid "Python module for writing Pandoc filters"
 msgstr ""
 
-#: gnu/packages/textutils.scm:1010
+#: gnu/packages/textutils.scm:1140
 msgid ""
 "Pandoc is a powerful utility to transform various\n"
 "input formats into a wide range of output formats.  To alter the\n"
@@ -23935,42 +26720,55 @@ msgid ""
 "This package provides Python bindings."
 msgstr ""
 
-#: gnu/packages/textutils.scm:1046
+#: gnu/packages/textutils.scm:1174
 msgid "Converts terminal escape sequences to HTML"
 msgstr ""
 
-#: gnu/packages/textutils.scm:1047
+#: gnu/packages/textutils.scm:1175
 msgid ""
 "@command{aha} (Ansi Html Adapter) converts ANSI escape sequences\n"
 "of a Unix terminal to HTML code."
 msgstr ""
 
-#: gnu/packages/version-control.scm:141
+#: gnu/packages/textutils.scm:1202
+msgid "Fully customizable syntax-aware linter that focuses on your style"
+msgstr ""
+
+#: gnu/packages/textutils.scm:1204
+msgid ""
+"Vale is a fully extensible linter that focuses on your own writing style\n"
+"by making use of rules in individual YAML files.  It is syntax-aware on markup\n"
+"languages such as HTML, Markdown, Asciidoc, and reStructuredText.  The community\n"
+"around it also has a list of style guides implemented with Vale in\n"
+"@url{https://github.com/errata-ai/styles, their styles repo}."
+msgstr ""
+
+#: gnu/packages/version-control.scm:147
 msgid "Version control system supporting both distributed and centralized workflows"
 msgstr ""
 
-#: gnu/packages/version-control.scm:143
+#: gnu/packages/version-control.scm:149
 msgid ""
 "GNU Bazaar is a version control system that allows you to record\n"
 "changes to project files over time.  It supports both a distributed workflow\n"
 "as well as the classic centralized workflow."
 msgstr ""
 
-#: gnu/packages/version-control.scm:459
+#: gnu/packages/version-control.scm:493
 msgid "Distributed version control system"
 msgstr ""
 
-#: gnu/packages/version-control.scm:461
+#: gnu/packages/version-control.scm:495
 msgid ""
 "Git is a free distributed version control system designed to handle\n"
 "everything from small to very large projects with speed and efficiency."
 msgstr ""
 
-#: gnu/packages/version-control.scm:587
+#: gnu/packages/version-control.scm:620
 msgid "Simple version control system built on top of Git"
 msgstr ""
 
-#: gnu/packages/version-control.scm:589
+#: gnu/packages/version-control.scm:622
 msgid ""
 "Gitless is a Git-compatible version control system that aims to be easy to\n"
 "learn and use.  It simplifies the common workflow by committing changes to\n"
@@ -23984,22 +26782,32 @@ msgid ""
 "on @command{git}, and use any regular Git hosting service."
 msgstr ""
 
-#: gnu/packages/version-control.scm:648
-msgid "Library providing Git core methods"
+#: gnu/packages/version-control.scm:649
+msgid "GitHub like contributions calendar for terminal"
 msgstr ""
 
 #: gnu/packages/version-control.scm:650
 msgid ""
+"@code{git-cal} is a script to view commits calendar similar\n"
+"to GitHub contributions calendar."
+msgstr ""
+
+#: gnu/packages/version-control.scm:712
+msgid "Library providing Git core methods"
+msgstr ""
+
+#: gnu/packages/version-control.scm:714
+msgid ""
 "Libgit2 is a portable, pure C implementation of the Git core methods\n"
 "provided as a re-entrant linkable library with a solid API, allowing you to\n"
 "write native speed custom Git applications in any language with bindings."
 msgstr ""
 
-#: gnu/packages/version-control.scm:700
+#: gnu/packages/version-control.scm:782
 msgid "Transparent encryption of files in a git repository"
 msgstr ""
 
-#: gnu/packages/version-control.scm:701
+#: gnu/packages/version-control.scm:783
 msgid ""
 "git-crypt enables transparent encryption and decryption of\n"
 "files in a git repository.  Files which you choose to protect are encrypted when\n"
@@ -24011,11 +26819,11 @@ msgid ""
 "to lock down your entire repository."
 msgstr ""
 
-#: gnu/packages/version-control.scm:736
+#: gnu/packages/version-control.scm:818
 msgid "Whole remote repository encryption"
 msgstr ""
 
-#: gnu/packages/version-control.scm:737
+#: gnu/packages/version-control.scm:819
 msgid ""
 "git-remote-gcrypt is a Git remote helper to push and pull from\n"
 "repositories encrypted with GnuPG.  It works with the standard Git transports,\n"
@@ -24034,21 +26842,21 @@ msgid ""
 "collaboration using typical untrusted file hosts or services."
 msgstr ""
 
-#: gnu/packages/version-control.scm:857
+#: gnu/packages/version-control.scm:939
 msgid "Web frontend for git repositories"
 msgstr ""
 
-#: gnu/packages/version-control.scm:859
+#: gnu/packages/version-control.scm:941
 msgid ""
 "CGit is an attempt to create a fast web interface for the Git SCM, using\n"
 "a built-in cache to decrease server I/O pressure."
 msgstr ""
 
-#: gnu/packages/version-control.scm:893
+#: gnu/packages/version-control.scm:975
 msgid "Send notification emails for Git pushes"
 msgstr ""
 
-#: gnu/packages/version-control.scm:895
+#: gnu/packages/version-control.scm:977
 msgid ""
 "This hook sends emails describing changes introduced by pushes to a Git\n"
 "repository.  For each reference that was changed, it emits one ReferenceChange\n"
@@ -24059,21 +26867,21 @@ msgid ""
 "repository"
 msgstr ""
 
-#: gnu/packages/version-control.scm:928
+#: gnu/packages/version-control.scm:1010
 msgid "Copy directory to the gh-pages branch"
 msgstr ""
 
-#: gnu/packages/version-control.scm:929
+#: gnu/packages/version-control.scm:1011
 msgid ""
 "Script that copies a directory to the gh-pages branch (by\n"
 "default) of the repository."
 msgstr ""
 
-#: gnu/packages/version-control.scm:987
+#: gnu/packages/version-control.scm:1069
 msgid "Python implementation of the Git object database"
 msgstr "Implémentation Python de la base de données d'objets Git"
 
-#: gnu/packages/version-control.scm:989
+#: gnu/packages/version-control.scm:1071
 msgid ""
 "GitDB allows you to access @dfn{bare} Git repositories for reading and\n"
 "writing.  It aims at allowing full access to loose objects as well as packs\n"
@@ -24081,11 +26889,11 @@ msgid ""
 "allowing to handle large objects with a small memory footprint."
 msgstr ""
 
-#: gnu/packages/version-control.scm:1025
+#: gnu/packages/version-control.scm:1107
 msgid "Python library for interacting with Git repositories"
 msgstr "Bibliothèque Python pour interagir avec des dépôts Git"
 
-#: gnu/packages/version-control.scm:1027
+#: gnu/packages/version-control.scm:1109
 msgid ""
 "GitPython is a python library used to interact with Git repositories,\n"
 "high-level like git-porcelain, or low-level like git-plumbing.\n"
@@ -24096,11 +26904,11 @@ msgid ""
 "@command{git} command implementation."
 msgstr ""
 
-#: gnu/packages/version-control.scm:1063
+#: gnu/packages/version-control.scm:1145
 msgid "Command-line flags library for shell scripts"
 msgstr ""
 
-#: gnu/packages/version-control.scm:1065
+#: gnu/packages/version-control.scm:1147
 msgid ""
 "Shell Flags (shFlags) is a library written to greatly simplify the\n"
 "handling of command-line flags in Bourne based Unix shell scripts (bash, dash,\n"
@@ -24111,11 +26919,11 @@ msgid ""
 "will work."
 msgstr ""
 
-#: gnu/packages/version-control.scm:1109
+#: gnu/packages/version-control.scm:1191
 msgid "Git extensions for Vincent Driessen's branching model"
 msgstr ""
 
-#: gnu/packages/version-control.scm:1111
+#: gnu/packages/version-control.scm:1193
 msgid ""
 "Vincent Driessen's branching model is a git branching and release\n"
 "management strategy that helps developers keep track of features, hotfixes,\n"
@@ -24124,11 +26932,11 @@ msgid ""
 "lot easier."
 msgstr ""
 
-#: gnu/packages/version-control.scm:1161
+#: gnu/packages/version-control.scm:1243
 msgid "Stacked Git"
 msgstr ""
 
-#: gnu/packages/version-control.scm:1163
+#: gnu/packages/version-control.scm:1245
 msgid ""
 "StGit is a command-line application that provides functionality similar\n"
 "to Quilt (i.e., pushing/popping patches to/from a stack), but using Git\n"
@@ -24137,11 +26945,11 @@ msgid ""
 "manipulate them in various ways."
 msgstr ""
 
-#: gnu/packages/version-control.scm:1200
+#: gnu/packages/version-control.scm:1282
 msgid "Version control system for @code{$HOME}"
 msgstr ""
 
-#: gnu/packages/version-control.scm:1202
+#: gnu/packages/version-control.scm:1284
 msgid ""
 "vcsh version-controls configuration files in several Git repositories,\n"
 "all in one single directory.  They all maintain their working trees without\n"
@@ -24150,43 +26958,64 @@ msgid ""
 "though this can be overridden."
 msgstr ""
 
-#: gnu/packages/version-control.scm:1238
+#: gnu/packages/version-control.scm:1320
 msgid "Run a command over a sequence of commits"
 msgstr ""
 
-#: gnu/packages/version-control.scm:1240
+#: gnu/packages/version-control.scm:1322
 msgid ""
 "git-test-sequence is similar to an automated git bisect except it’s\n"
 "linear.  It will test every change between two points in the DAG.  It will\n"
 "also walk each side of a merge and test those changes individually."
 msgstr ""
 
-#: gnu/packages/version-control.scm:1353
+#: gnu/packages/version-control.scm:1435
 msgid "Git access control layer"
 msgstr ""
 
-#: gnu/packages/version-control.scm:1355
+#: gnu/packages/version-control.scm:1437
 msgid ""
 "Gitolite is an access control layer on top of Git, providing fine access\n"
 "control to Git repositories."
 msgstr ""
 
-#: gnu/packages/version-control.scm:1426
+#: gnu/packages/version-control.scm:1546
+msgid "Framework for managing and maintaining multi-language pre-commit hooks"
+msgstr ""
+
+#: gnu/packages/version-control.scm:1548
+msgid ""
+"Pre-commit is a multi-language package manager for pre-commit hooks.  You\n"
+"specify a list of hooks you want and pre-commit manages the installation and\n"
+"execution of any hook written in any language before every commit."
+msgstr ""
+
+#: gnu/packages/version-control.scm:1627
 msgid "Decentralized version control system"
 msgstr ""
 
-#: gnu/packages/version-control.scm:1428
+#: gnu/packages/version-control.scm:1629
 msgid ""
 "Mercurial is a free, distributed source control management tool.\n"
 "It efficiently handles projects of any size\n"
 "and offers an easy and intuitive interface."
 msgstr ""
 
-#: gnu/packages/version-control.scm:1462
+#: gnu/packages/version-control.scm:1655
+msgid "Flexible evolution of Mercurial history"
+msgstr ""
+
+#: gnu/packages/version-control.scm:1656
+msgid ""
+"Evolve is a Mercurial extension for faster and safer mutable\n"
+"history.  It implements the changeset evolution concept for Mercurial."
+msgstr ""
+
+#: gnu/packages/version-control.scm:1689
 msgid "HTTP and WebDAV client library"
 msgstr ""
 
-#: gnu/packages/version-control.scm:1464
+#: gnu/packages/version-control.scm:1691
 msgid ""
 "Neon is an HTTP and WebDAV client library, with a C interface and the\n"
 "following features:\n"
@@ -24208,11 +27037,11 @@ msgid ""
 "@end enumerate\n"
 msgstr ""
 
-#: gnu/packages/version-control.scm:1562
+#: gnu/packages/version-control.scm:1785
 msgid "Revision control system"
 msgstr ""
 
-#: gnu/packages/version-control.scm:1564
+#: gnu/packages/version-control.scm:1787
 msgid ""
 "@dfn{Subversion} (svn) exists to be recognized and adopted as a\n"
 "centralized version control system characterized by its\n"
@@ -24221,11 +27050,11 @@ msgid ""
 "projects, from individuals to large-scale enterprise operations."
 msgstr ""
 
-#: gnu/packages/version-control.scm:1595
+#: gnu/packages/version-control.scm:1809
 msgid "Per-file local revision control system"
 msgstr ""
 
-#: gnu/packages/version-control.scm:1597
+#: gnu/packages/version-control.scm:1811
 msgid ""
 "RCS is the original Revision Control System.  It works on a\n"
 "file-by-file basis, in contrast to subsequent version control systems such as\n"
@@ -24234,11 +27063,11 @@ msgid ""
 "machine."
 msgstr ""
 
-#: gnu/packages/version-control.scm:1625
+#: gnu/packages/version-control.scm:1839
 msgid "Historical centralized version control system"
 msgstr ""
 
-#: gnu/packages/version-control.scm:1627
+#: gnu/packages/version-control.scm:1841
 msgid ""
 "CVS is a version control system, an important component of Source\n"
 "Configuration Management (SCM).  Using it, you can record the history of\n"
@@ -24246,11 +27075,11 @@ msgid ""
 "RCS, PRCS, and Aegis packages."
 msgstr ""
 
-#: gnu/packages/version-control.scm:1661
+#: gnu/packages/version-control.scm:1875
 msgid "Export an RCS or CVS history as a fast-import stream"
 msgstr ""
 
-#: gnu/packages/version-control.scm:1662
+#: gnu/packages/version-control.scm:1876
 msgid ""
 "This program analyzes a collection of RCS files in a CVS\n"
 "repository (or outside of one) and, when possible, emits an equivalent history\n"
@@ -24263,11 +27092,11 @@ msgid ""
 "masters from remote CVS hosts."
 msgstr ""
 
-#: gnu/packages/version-control.scm:1690
+#: gnu/packages/version-control.scm:1904
 msgid "Version-control-agnostic ChangeLog diff and commit tool"
 msgstr ""
 
-#: gnu/packages/version-control.scm:1692
+#: gnu/packages/version-control.scm:1906
 msgid ""
 "The vc-dwim package contains two tools, \"vc-dwim\" and \"vc-chlog\".\n"
 "vc-dwim is a tool that simplifies the task of maintaining a ChangeLog and\n"
@@ -24277,33 +27106,33 @@ msgid ""
 "standards-compliant ChangeLog entries based on the changes that it detects."
 msgstr ""
 
-#: gnu/packages/version-control.scm:1717
+#: gnu/packages/version-control.scm:1931
 msgid "Make histograms from the output of @command{diff}"
 msgstr ""
 
-#: gnu/packages/version-control.scm:1719
+#: gnu/packages/version-control.scm:1933
 msgid ""
 "Diffstat reads the output of @command{diff} and displays a histogram of\n"
 "the insertions, deletions, and modifications per file.  It is useful for\n"
 "reviewing large, complex patch files."
 msgstr ""
 
-#: gnu/packages/version-control.scm:1758
+#: gnu/packages/version-control.scm:1972
 msgid "File-based version control like SCCS"
 msgstr ""
 
-#: gnu/packages/version-control.scm:1759
+#: gnu/packages/version-control.scm:1973
 msgid ""
 "GNU CSSC provides a replacement for the legacy Unix source\n"
 "code control system SCCS.  This allows old code still under that system to be\n"
 "accessed and migrated on modern systems."
 msgstr ""
 
-#: gnu/packages/version-control.scm:1847
+#: gnu/packages/version-control.scm:2064
 msgid "Project change supervisor"
 msgstr ""
 
-#: gnu/packages/version-control.scm:1848
+#: gnu/packages/version-control.scm:2065
 msgid ""
 "Aegis is a project change supervisor, and performs some of\n"
 "the Software Configuration Management needed in a CASE environment.  Aegis\n"
@@ -24314,11 +27143,11 @@ msgid ""
 "any project with more than one developer, is one of Aegis's major functions."
 msgstr ""
 
-#: gnu/packages/version-control.scm:1922
+#: gnu/packages/version-control.scm:2139
 msgid "Edit version-control repository history"
 msgstr ""
 
-#: gnu/packages/version-control.scm:1923
+#: gnu/packages/version-control.scm:2140
 msgid ""
 "Reposurgeon enables risky operations that version-control\n"
 "systems don't want to let you do, such as editing past comments and metadata\n"
@@ -24329,32 +27158,32 @@ msgid ""
 "from Subversion to any supported Distributed Version Control System (DVCS)."
 msgstr ""
 
-#: gnu/packages/version-control.scm:1962
+#: gnu/packages/version-control.scm:2179
 msgid "Ncurses-based text user interface for Git"
 msgstr ""
 
-#: gnu/packages/version-control.scm:1964
+#: gnu/packages/version-control.scm:2181
 msgid ""
 "Tig is an ncurses text user interface for Git, primarily intended as\n"
 "a history browser.  It can also stage hunks for commit, or colorize the\n"
 "output of the @code{git} command."
 msgstr ""
 
-#: gnu/packages/version-control.scm:1986
+#: gnu/packages/version-control.scm:2203
 msgid "Print the modification time of the latest file"
 msgstr ""
 
-#: gnu/packages/version-control.scm:1988
+#: gnu/packages/version-control.scm:2205
 msgid ""
 "Recursively find the newest file in a file tree and print its\n"
 "modification time."
 msgstr ""
 
-#: gnu/packages/version-control.scm:2033
+#: gnu/packages/version-control.scm:2250
 msgid "Multiple repository management tool"
 msgstr ""
 
-#: gnu/packages/version-control.scm:2035
+#: gnu/packages/version-control.scm:2252
 msgid ""
 "Myrepos provides the @code{mr} command, which maps an operation (e.g.,\n"
 "fetching updates) over a collection of version control repositories.  It\n"
@@ -24362,42 +27191,53 @@ msgid ""
 "Mercurial, Bazaar, Darcs, CVS, Fossil, and Veracity."
 msgstr ""
 
-#: gnu/packages/version-control.scm:2078
+#: gnu/packages/version-control.scm:2289
+msgid "Framework to smartly mirror git repositories"
+msgstr ""
+
+#: gnu/packages/version-control.scm:2290
+msgid ""
+"Grokmirror enables replicating large git repository\n"
+"collections efficiently.  Mirrors decide to clone and update repositories\n"
+"based on a manifest file published by servers."
+msgstr ""
+
+#: gnu/packages/version-control.scm:2332
 msgid "Use rclone-supported cloud storage providers with git-annex"
 msgstr ""
 
-#: gnu/packages/version-control.scm:2079
+#: gnu/packages/version-control.scm:2333
 msgid ""
 "This wrapper around rclone makes any destination supported\n"
 "by rclone usable with git-annex."
 msgstr ""
 
-#: gnu/packages/version-control.scm:2136
+#: gnu/packages/version-control.scm:2389
 msgid "Software configuration management system"
 msgstr "Système de gestion de configuration logicielle"
 
-#: gnu/packages/version-control.scm:2138
+#: gnu/packages/version-control.scm:2391
 msgid ""
 "Fossil is a distributed source control management system which supports\n"
 "access and administration over HTTP CGI or via a built-in HTTP server.  It has\n"
 "a built-in wiki, built-in file browsing, built-in tickets system, etc."
 msgstr ""
 
-#: gnu/packages/version-control.scm:2166
+#: gnu/packages/version-control.scm:2419
 msgid "Static git page generator"
 msgstr ""
 
-#: gnu/packages/version-control.scm:2167
+#: gnu/packages/version-control.scm:2420
 msgid ""
 "Stagit creates static pages for git repositories, the results can\n"
 "be served with a HTTP file server of your choice."
 msgstr ""
 
-#: gnu/packages/version-control.scm:2202
+#: gnu/packages/version-control.scm:2455
 msgid "3D visualisation tool for source control repositories"
 msgstr ""
 
-#: gnu/packages/version-control.scm:2203
+#: gnu/packages/version-control.scm:2456
 msgid ""
 "@code{gource} provides a software version control\n"
 "visualization.  The repository is displayed as a tree where the root of the\n"
@@ -24406,11 +27246,11 @@ msgid ""
 "specific files and directories."
 msgstr ""
 
-#: gnu/packages/version-control.scm:2249
+#: gnu/packages/version-control.scm:2502
 msgid "Simple revision control"
 msgstr "Contrôle de version simple"
 
-#: gnu/packages/version-control.scm:2252
+#: gnu/packages/version-control.scm:2505
 #, scheme-format
 msgid ""
 "SRC (or src) is simple revision control, a version-control system for\n"
@@ -24420,11 +27260,11 @@ msgid ""
 "directory full of HOWTOs."
 msgstr ""
 
-#: gnu/packages/version-control.scm:2304
+#: gnu/packages/version-control.scm:2557
 msgid "Determine when a commit was merged into a Git branch"
 msgstr ""
 
-#: gnu/packages/version-control.scm:2305
+#: gnu/packages/version-control.scm:2558
 msgid ""
 "This Git extension defines a subcommand,\n"
 "@code{when-merged}, whose core operation is to find the merge that brought a\n"
@@ -24432,11 +27272,11 @@ msgid ""
 "how information about the merge is displayed."
 msgstr ""
 
-#: gnu/packages/version-control.scm:2349
+#: gnu/packages/version-control.scm:2602
 msgid "Incremental merge for Git"
 msgstr ""
 
-#: gnu/packages/version-control.scm:2350
+#: gnu/packages/version-control.scm:2603
 msgid ""
 "This Git extension defines a subcommand, @code{imerge},\n"
 "which performs an incremental merge between two branches.  Its two primary\n"
@@ -24445,22 +27285,22 @@ msgid ""
 "interrupted, published, and collaborated on while in progress."
 msgstr ""
 
-#: gnu/packages/version-control.scm:2374
+#: gnu/packages/version-control.scm:2652
 msgid "Git extension for versioning large files"
 msgstr "Extension Git pour gérer de grands fichiers"
 
-#: gnu/packages/version-control.scm:2376
+#: gnu/packages/version-control.scm:2654
 msgid ""
 "Git Large File Storage (LFS) replaces large files such as audio samples,\n"
 "videos, datasets, and graphics with text pointers inside Git, while storing the\n"
 "file contents on a remote server."
 msgstr ""
 
-#: gnu/packages/version-control.scm:2429
+#: gnu/packages/version-control.scm:2707
 msgid "Historical distributed version-control system"
 msgstr ""
 
-#: gnu/packages/version-control.scm:2431
+#: gnu/packages/version-control.scm:2709
 msgid ""
 "GNU Arch, aka. @code{tla}, was one of the first free distributed\n"
 "version-control systems (DVCS).  It saw its last release in 2006.  This\n"
@@ -24468,11 +27308,19 @@ msgid ""
 "for historians."
 msgstr ""
 
-#: gnu/packages/virtualization.scm:249
+#: gnu/packages/version-control.scm:2766
+msgid "Git implementation library"
+msgstr "Bibliothèque contenant l'implémentation de git"
+
+#: gnu/packages/version-control.scm:2767
+msgid "This package provides a Git implementation library."
+msgstr "Ce paquet fournit une bibliothèque implémentant git."
+
+#: gnu/packages/virtualization.scm:298
 msgid "Machine emulator and virtualizer"
 msgstr ""
 
-#: gnu/packages/virtualization.scm:251
+#: gnu/packages/virtualization.scm:300
 msgid ""
 "QEMU is a generic machine emulator and virtualizer.\n"
 "\n"
@@ -24487,15 +27335,56 @@ msgid ""
 "server and embedded PowerPC, and S390 guests."
 msgstr ""
 
-#: gnu/packages/virtualization.scm:273
-msgid "Machine emulator and virtualizer (without GUI)"
+#: gnu/packages/virtualization.scm:324
+msgid "Machine emulator and virtualizer (without GUI) for the host architecture"
+msgstr ""
+
+#: gnu/packages/virtualization.scm:737
+msgid "Cluster-based virtual machine management system"
+msgstr "Système de gestion de machines virtuelles en grappes"
+
+#: gnu/packages/virtualization.scm:739
+msgid ""
+"Ganeti is a virtual machine management tool built on top of existing\n"
+"virtualization technologies such as Xen or KVM.  Ganeti controls:\n"
+"\n"
+"@itemize @bullet\n"
+"@item Disk creation management;\n"
+"@item Operating system installation for instances (in co-operation with\n"
+"OS-specific install scripts); and\n"
+"@item Startup, shutdown, and failover between physical systems.\n"
+"@end itemize\n"
+"\n"
+"Ganeti is designed to facilitate cluster management of virtual servers and\n"
+"to provide fast and simple recovery after physical failures, using\n"
+"commodity hardware."
+msgstr ""
+
+#: gnu/packages/virtualization.scm:775
+msgid "Guix OS integration for Ganeti"
+msgstr ""
+
+#: gnu/packages/virtualization.scm:777
+msgid ""
+"This package provides a guest OS definition for Ganeti that uses\n"
+"Guix to build virtual machines."
+msgstr ""
+
+#: gnu/packages/virtualization.scm:870
+msgid "Debian OS integration for Ganeti"
 msgstr ""
 
-#: gnu/packages/virtualization.scm:343
+#: gnu/packages/virtualization.scm:872
+msgid ""
+"This package provides a guest OS definition for Ganeti.  It installs\n"
+"Debian or a derivative using @command{debootstrap}."
+msgstr ""
+
+#: gnu/packages/virtualization.scm:932
 msgid "Operating system information database"
 msgstr ""
 
-#: gnu/packages/virtualization.scm:344
+#: gnu/packages/virtualization.scm:933
 msgid ""
 "libosinfo is a GObject based library API for managing\n"
 "information about operating systems, hypervisors and the (virtual) hardware\n"
@@ -24505,22 +27394,22 @@ msgid ""
 "all common programming languages.  Vala bindings are also provided."
 msgstr ""
 
-#: gnu/packages/virtualization.scm:399
+#: gnu/packages/virtualization.scm:982
 msgid "Linux container tools"
 msgstr ""
 
-#: gnu/packages/virtualization.scm:402
+#: gnu/packages/virtualization.scm:985
 msgid ""
 "LXC is a userspace interface for the Linux kernel containment features.\n"
 "Through a powerful API and simple tools, it lets Linux users easily create and\n"
 "manage system or application containers."
 msgstr ""
 
-#: gnu/packages/virtualization.scm:496
+#: gnu/packages/virtualization.scm:1079
 msgid "Simple API for virtualization"
 msgstr ""
 
-#: gnu/packages/virtualization.scm:497
+#: gnu/packages/virtualization.scm:1080
 msgid ""
 "Libvirt is a C toolkit to interact with the virtualization\n"
 "capabilities of recent versions of Linux.  The library aims at providing long\n"
@@ -24528,11 +27417,11 @@ msgid ""
 "to integrate other virtualization mechanisms if needed."
 msgstr ""
 
-#: gnu/packages/virtualization.scm:532
+#: gnu/packages/virtualization.scm:1115
 msgid "GLib wrapper around libvirt"
 msgstr ""
 
-#: gnu/packages/virtualization.scm:533
+#: gnu/packages/virtualization.scm:1116
 msgid ""
 "libvirt-glib wraps the libvirt library to provide a\n"
 "high-level object-oriented API better suited for glib-based applications, via\n"
@@ -24545,21 +27434,21 @@ msgid ""
 "@end enumerate\n"
 msgstr ""
 
-#: gnu/packages/virtualization.scm:576
+#: gnu/packages/virtualization.scm:1159
 msgid "Python bindings to libvirt"
 msgstr ""
 
-#: gnu/packages/virtualization.scm:577
+#: gnu/packages/virtualization.scm:1160
 msgid ""
 "This package provides Python bindings to the libvirt\n"
 "virtualization library."
 msgstr ""
 
-#: gnu/packages/virtualization.scm:678
+#: gnu/packages/virtualization.scm:1278
 msgid "Manage virtual machines"
 msgstr "Gestion de machines virtuelles"
 
-#: gnu/packages/virtualization.scm:680
+#: gnu/packages/virtualization.scm:1280
 msgid ""
 "The virt-manager application is a desktop user interface for managing\n"
 "virtual machines through libvirt.  It primarily targets KVM VMs, but also\n"
@@ -24567,11 +27456,11 @@ msgid ""
 "domains, their live performance and resource utilization statistics."
 msgstr ""
 
-#: gnu/packages/virtualization.scm:793
+#: gnu/packages/virtualization.scm:1387
 msgid "Checkpoint and restore in user space"
 msgstr ""
 
-#: gnu/packages/virtualization.scm:794
+#: gnu/packages/virtualization.scm:1388
 msgid ""
 "Using this tool, you can freeze a running application (or\n"
 "part of it) and checkpoint it to a hard drive as a collection of files.  You\n"
@@ -24580,22 +27469,22 @@ msgid ""
 "mainly implemented in user space."
 msgstr ""
 
-#: gnu/packages/virtualization.scm:820
+#: gnu/packages/virtualization.scm:1414
 msgid "Backup and restore QEMU machines"
 msgstr ""
 
-#: gnu/packages/virtualization.scm:821
+#: gnu/packages/virtualization.scm:1415
 msgid ""
 "qmpbackup is designed to create and restore full and\n"
 "incremental backups of running QEMU virtual machines via QMP, the QEMU\n"
 "Machine Protocol."
 msgstr ""
 
-#: gnu/packages/virtualization.scm:885
+#: gnu/packages/virtualization.scm:1479
 msgid "KVM Frame Relay (KVMFR) implementation"
 msgstr ""
 
-#: gnu/packages/virtualization.scm:886
+#: gnu/packages/virtualization.scm:1480
 msgid ""
 "Looking Glass allows the use of a KVM (Kernel-based Virtual\n"
 "Machine) configured for VGA PCI Pass-through without an attached physical\n"
@@ -24603,11 +27492,11 @@ msgid ""
 "monitor/GPU."
 msgstr ""
 
-#: gnu/packages/virtualization.scm:943
+#: gnu/packages/virtualization.scm:1538
 msgid "Open container initiative runtime"
 msgstr ""
 
-#: gnu/packages/virtualization.scm:946
+#: gnu/packages/virtualization.scm:1541
 msgid ""
 "@command{runc} is a command line client for running applications\n"
 "packaged according to the\n"
@@ -24616,21 +27505,21 @@ msgid ""
 "Open Container Initiative specification."
 msgstr ""
 
-#: gnu/packages/virtualization.scm:992
+#: gnu/packages/virtualization.scm:1588
 msgid "Tool for modifying Open Container images"
 msgstr "Outil de modification d'image Open Container"
 
-#: gnu/packages/virtualization.scm:994
+#: gnu/packages/virtualization.scm:1590
 msgid ""
 "@command{umoci} is a tool that allows for high-level modification of an\n"
 "Open Container Initiative (OCI) image layout and its tagged images."
 msgstr ""
 
-#: gnu/packages/virtualization.scm:1040
+#: gnu/packages/virtualization.scm:1643
 msgid "Interact with container images and container image registries"
 msgstr ""
 
-#: gnu/packages/virtualization.scm:1042
+#: gnu/packages/virtualization.scm:1645
 msgid ""
 "@command{skopeo} is a command line utility providing various operations\n"
 "with container images and container image registries.  It can:\n"
@@ -24651,22 +27540,22 @@ msgid ""
 "@end enumerate"
 msgstr ""
 
-#: gnu/packages/virtualization.scm:1076
+#: gnu/packages/virtualization.scm:1679
 msgid "Python bindings for Vagrant"
 msgstr "Liaisons python pour Vagrant"
 
-#: gnu/packages/virtualization.scm:1078
+#: gnu/packages/virtualization.scm:1681
 msgid ""
 "Python-vagrant is a Python module that provides a thin wrapper around the\n"
 "@code{vagrant} command line executable, allowing programmatic control of Vagrant\n"
 "virtual machines."
 msgstr ""
 
-#: gnu/packages/virtualization.scm:1132
+#: gnu/packages/virtualization.scm:1735
 msgid "Unprivileged sandboxing tool"
 msgstr ""
 
-#: gnu/packages/virtualization.scm:1133
+#: gnu/packages/virtualization.scm:1736
 msgid ""
 "Bubblewrap is aimed at running applications in a sandbox,\n"
 "restricting their access to parts of the operating system or user data such as\n"
@@ -24676,11 +27565,11 @@ msgid ""
 "by default and can be made read-only."
 msgstr ""
 
-#: gnu/packages/virtualization.scm:1158
+#: gnu/packages/virtualization.scm:1761
 msgid "Emulator for x86 PC"
 msgstr ""
 
-#: gnu/packages/virtualization.scm:1160
+#: gnu/packages/virtualization.scm:1763
 msgid ""
 "Bochs is an emulator which can emulate Intel x86 CPU, common I/O\n"
 "devices, and a custom BIOS.  It can also be compiled to emulate many different\n"
@@ -24689,11 +27578,11 @@ msgid ""
 "DOS or Microsoft Windows."
 msgstr ""
 
-#: gnu/packages/virtualization.scm:1363
+#: gnu/packages/virtualization.scm:1965
 msgid "Xen Virtual Machine Monitor"
 msgstr "Xen Virtual Machine Monitor"
 
-#: gnu/packages/virtualization.scm:1364
+#: gnu/packages/virtualization.scm:1966
 msgid ""
 "This package provides the Xen Virtual Machine Monitor\n"
 "which is a hypervisor."
@@ -24701,64 +27590,74 @@ msgstr ""
 "Ce paquet fournit le moniteur de machines virtuelles Xen\n"
 "qui est un hyperviseur."
 
-#: gnu/packages/virtualization.scm:1399
+#: gnu/packages/virtualization.scm:2001
 msgid "Tools for managing the osinfo database"
 msgstr ""
 
-#: gnu/packages/virtualization.scm:1400
+#: gnu/packages/virtualization.scm:2002
 msgid ""
 "This package contains a set of tools to assist\n"
 "administrators and developers in managing the database."
 msgstr ""
 
-#: gnu/packages/virtualization.scm:1434
+#: gnu/packages/virtualization.scm:2036
 msgid "Database of information about operating systems"
 msgstr ""
 
-#: gnu/packages/virtualization.scm:1435
+#: gnu/packages/virtualization.scm:2037
 msgid ""
 "Osinfo-db provides the database files for use with the\n"
 "libosinfo library.  It provides information about guest operating systems for\n"
 "use with virtualization provisioning tools"
 msgstr ""
 
-#: gnu/packages/webkit.scm:86
-msgid "Platform agnostic WebKit interfaces"
-msgstr ""
-
 #: gnu/packages/webkit.scm:88
+msgid "General-purpose library for WPE"
+msgstr "Bibliothèque générique pour WPE"
+
+#: gnu/packages/webkit.scm:89
 msgid ""
-"@code{libwpe} is a small library that defines programming interfaces\n"
-"for use by WebKit, and provides a mechanism for loading a platform-specific\n"
-"backend which implements them."
+"LibWPE is general-purpose library specifically developed for\n"
+"the WPE-flavored port of WebKit."
 msgstr ""
 
-#: gnu/packages/webkit.scm:115
+#: gnu/packages/webkit.scm:116
 msgid "Wayland WPE backend"
 msgstr ""
 
-#: gnu/packages/webkit.scm:117
+#: gnu/packages/webkit.scm:118
 msgid ""
 "This package provides a backend implementation for the WPE WebKit\n"
 "engine that uses Wayland for graphics output."
 msgstr ""
 
-#: gnu/packages/webkit.scm:227
+#: gnu/packages/webkit.scm:212
+msgid "WebKit port optimized for embedded devices"
+msgstr ""
+
+#: gnu/packages/webkit.scm:213
+msgid ""
+"WPE WebKit allows embedders to create simple and performant\n"
+"systems based on Web platform technologies.  It is designed with hardware\n"
+"acceleration in mind, leveraging common 3D graphics APIs for best performance."
+msgstr ""
+
+#: gnu/packages/webkit.scm:342
 msgid "Web content engine for GTK+"
 msgstr ""
 
-#: gnu/packages/webkit.scm:229
+#: gnu/packages/webkit.scm:344
 msgid ""
 "WebKitGTK+ is a full-featured port of the WebKit rendering engine,\n"
 "suitable for projects requiring any kind of web integration, from hybrid\n"
 "HTML/CSS applications to full-fledged web browsers."
 msgstr ""
 
-#: gnu/packages/web.scm:177
+#: gnu/packages/web.scm:188
 msgid "Featureful HTTP server"
 msgstr ""
 
-#: gnu/packages/web.scm:179
+#: gnu/packages/web.scm:190
 msgid ""
 "The Apache HTTP Server Project is a collaborative software development\n"
 "effort aimed at creating a robust, commercial-grade, featureful, and\n"
@@ -24768,63 +27667,73 @@ msgid ""
 "and its related documentation."
 msgstr ""
 
-#: gnu/packages/web.scm:211
+#: gnu/packages/web.scm:222
 msgid "Apache HTTPD module for Python WSGI applications"
 msgstr ""
 
-#: gnu/packages/web.scm:213
+#: gnu/packages/web.scm:224
 msgid ""
 "The mod_wsgi module for the Apache HTTPD Server adds support for running\n"
 "applications that support the Python @acronym{WSGI, Web Server Gateway\n"
 "Interface} specification."
 msgstr ""
 
-#: gnu/packages/web.scm:302
+#: gnu/packages/web.scm:313
 msgid "HTTP and reverse proxy server"
 msgstr ""
 
-#: gnu/packages/web.scm:304
+#: gnu/packages/web.scm:315
 msgid ""
 "Nginx (\"engine X\") is a high-performance web and reverse proxy server\n"
 "created by Igor Sysoev.  It can be used both as a stand-alone web server\n"
 "and as a proxy to reduce the load on back-end HTTP or mail servers."
 msgstr ""
 
-#: gnu/packages/web.scm:349
-msgid "XSLScript with NGinx specific modifications"
-msgstr ""
-
-#: gnu/packages/web.scm:351
-msgid ""
-"XSLScript is a terse notation for writing complex XSLT stylesheets.\n"
-"This is modified version, specifically intended for use with the NGinx\n"
-"documentation."
-msgstr ""
-
-#: gnu/packages/web.scm:404
+#: gnu/packages/web.scm:373
 msgid "Documentation for the nginx web server"
 msgstr "Documentation du serveur web nginx"
 
-#: gnu/packages/web.scm:406
+#: gnu/packages/web.scm:375
 msgid "This package provides HTML documentation for the nginx web server."
 msgstr "Ce paquet fournit la documentation HTML du serveur web nginx."
 
-#: gnu/packages/web.scm:533
+#: gnu/packages/web.scm:502
 msgid "Nginx module for parsing the Accept-Language HTTP header"
 msgstr ""
 
-#: gnu/packages/web.scm:535
+#: gnu/packages/web.scm:504
 msgid ""
 "This nginx module parses the Accept-Language field in HTTP headers and\n"
 "chooses the most suitable locale for the user from the list of locales\n"
 "supported at your website."
 msgstr ""
 
-#: gnu/packages/web.scm:598
+#: gnu/packages/web.scm:549
+msgid "XSLScript with NGinx specific modifications"
+msgstr ""
+
+#: gnu/packages/web.scm:551
+msgid ""
+"XSLScript is a terse notation for writing complex XSLT stylesheets.\n"
+"This is modified version, specifically intended for use with the NGinx\n"
+"documentation."
+msgstr ""
+
+#: gnu/packages/web.scm:624
+msgid "NGINX module for Lua programming language support"
+msgstr "Module NGINX pour la prise en charge du langage de programmation Lua"
+
+#: gnu/packages/web.scm:625
+msgid ""
+"This NGINX module provides a scripting support with Lua\n"
+"programming language."
+msgstr ""
+
+#: gnu/packages/web.scm:681
 msgid "Lightweight HTTP and reverse proxy server"
 msgstr ""
 
-#: gnu/packages/web.scm:600
+#: gnu/packages/web.scm:683
 msgid ""
 "Lighttpd is a secure, fast, compliant, and very flexible web-server that\n"
 "has been optimized for high-performance environments.  It has a very low\n"
@@ -24832,65 +27741,65 @@ msgid ""
 "CGI, authentication, output compression, URL rewriting and many more."
 msgstr ""
 
-#: gnu/packages/web.scm:629
+#: gnu/packages/web.scm:712
 msgid "Language-independent, high-performant extension to CGI"
 msgstr ""
 
-#: gnu/packages/web.scm:630
+#: gnu/packages/web.scm:713
 msgid ""
 "FastCGI is a language-independent, scalable extension to CGI\n"
 "that provides high performance without the limitations of server specific\n"
 "APIs."
 msgstr ""
 
-#: gnu/packages/web.scm:669
+#: gnu/packages/web.scm:752
 msgid "Simple server for running CGI applications over FastCGI"
 msgstr ""
 
-#: gnu/packages/web.scm:670
+#: gnu/packages/web.scm:753
 msgid ""
 "Fcgiwrap is a simple server for running CGI applications\n"
 "over FastCGI.  It hopes to provide clean CGI support to Nginx (and other web\n"
 "servers that may need it)."
 msgstr ""
 
-#: gnu/packages/web.scm:700
+#: gnu/packages/web.scm:783
 msgid "PSGI/Plack web server"
 msgstr ""
 
-#: gnu/packages/web.scm:701
+#: gnu/packages/web.scm:784
 msgid ""
 "Starman is a PSGI perl web server that has unique features\n"
 "such as high performance, preforking, signal support, superdaemon awareness,\n"
 "and UNIX socket support."
 msgstr ""
 
-#: gnu/packages/web.scm:733
+#: gnu/packages/web.scm:816
 msgid "Java Web Start"
 msgstr ""
 
-#: gnu/packages/web.scm:735
+#: gnu/packages/web.scm:818
 msgid ""
 "IcedTea-Web is an implementation of the @dfn{Java Network Launching\n"
 "Protocol}, also known as Java Web Start.  This package provides tools and\n"
 "libraries for working with JNLP applets."
 msgstr ""
 
-#: gnu/packages/web.scm:758
+#: gnu/packages/web.scm:841
 msgid "JSON C library"
 msgstr "La bibliothèque C JSON"
 
-#: gnu/packages/web.scm:760
+#: gnu/packages/web.scm:843
 msgid ""
 "Jansson is a C library for encoding, decoding and manipulating JSON\n"
 "data."
 msgstr ""
 
-#: gnu/packages/web.scm:787
+#: gnu/packages/web.scm:862
 msgid "JSON implementation in C"
 msgstr ""
 
-#: gnu/packages/web.scm:789
+#: gnu/packages/web.scm:864
 msgid ""
 "JSON-C implements a reference counting object model that allows you to\n"
 "easily construct JSON objects in C, output them as JSON-formatted strings and\n"
@@ -24898,11 +27807,11 @@ msgid ""
 "It aims to conform to RFC 7159."
 msgstr ""
 
-#: gnu/packages/web.scm:840
+#: gnu/packages/web.scm:948
 msgid "JSON parser written in ANSI C"
 msgstr ""
 
-#: gnu/packages/web.scm:841
+#: gnu/packages/web.scm:949
 msgid ""
 "This package provides a very low footprint JSON parser\n"
 "written in portable ANSI C.\n"
@@ -24915,33 +27824,33 @@ msgid ""
 "@end itemize"
 msgstr ""
 
-#: gnu/packages/web.scm:885
+#: gnu/packages/web.scm:993
 msgid "Library that maps JSON data to QVariant objects"
 msgstr ""
 
-#: gnu/packages/web.scm:886
+#: gnu/packages/web.scm:994
 msgid ""
 "QJson is a Qt-based library that maps JSON data to\n"
 "@code{QVariant} objects.  JSON arrays will be mapped to @code{QVariantList}\n"
 "instances, while JSON's objects will be mapped to @code{QVariantMap}."
 msgstr ""
 
-#: gnu/packages/web.scm:930
+#: gnu/packages/web.scm:1038
 msgid "Qt-based C++ library for OAuth authorization scheme"
 msgstr ""
 
-#: gnu/packages/web.scm:931
+#: gnu/packages/web.scm:1039
 msgid ""
 "QOAuth is an attempt to support interaction with\n"
 "OAuth-powered network services in a Qt way, i.e. simply, clearly and\n"
 "efficiently.  It gives the application developer no more than 4 methods."
 msgstr ""
 
-#: gnu/packages/web.scm:1014
+#: gnu/packages/web.scm:1122
 msgid "Hierarchical data exploration with zoomable HTML5 pie charts"
 msgstr ""
 
-#: gnu/packages/web.scm:1016
+#: gnu/packages/web.scm:1124
 msgid ""
 "Krona is a flexible tool for exploring the relative proportions of\n"
 "hierarchical data, such as metagenomic classifications, using a radial,\n"
@@ -24950,42 +27859,42 @@ msgid ""
 "current version of any major web browser."
 msgstr ""
 
-#: gnu/packages/web.scm:1058
+#: gnu/packages/web.scm:1166
 msgid "JSON parser/generator for C++ with both SAX/DOM style API"
 msgstr ""
 
-#: gnu/packages/web.scm:1060
+#: gnu/packages/web.scm:1168
 msgid ""
 "RapidJSON is a fast JSON parser/generator for C++ with both SAX/DOM\n"
 "style API."
 msgstr ""
 
-#: gnu/packages/web.scm:1087
+#: gnu/packages/web.scm:1195
 msgid "C library for parsing JSON"
 msgstr ""
 
-#: gnu/packages/web.scm:1089
+#: gnu/packages/web.scm:1197
 msgid ""
 "Yet Another JSON Library (YAJL) is a small event-driven (SAX-style) JSON\n"
 "parser written in ANSI C and a small validating JSON generator."
 msgstr ""
 
-#: gnu/packages/web.scm:1119
+#: gnu/packages/web.scm:1227
 msgid "WebSockets library written in C"
 msgstr ""
 
-#: gnu/packages/web.scm:1121
+#: gnu/packages/web.scm:1229
 msgid ""
 "Libwebsockets is a library that allows C programs to establish client\n"
 "and server WebSockets connections---a protocol layered above HTTP that allows\n"
 "for efficient socket-like bidirectional reliable communication channels."
 msgstr ""
 
-#: gnu/packages/web.scm:1149
+#: gnu/packages/web.scm:1257
 msgid "WebAssembly Binary Toolkit"
 msgstr ""
 
-#: gnu/packages/web.scm:1150
+#: gnu/packages/web.scm:1258
 msgid ""
 "WABT (pronounced: wabbit) is a suite of tools for\n"
 "WebAssembly, including:\n"
@@ -25010,11 +27919,11 @@ msgid ""
 "other systems that want to manipulate WebAssembly files."
 msgstr ""
 
-#: gnu/packages/web.scm:1200
+#: gnu/packages/web.scm:1308
 msgid "C++ library implementing the WebSocket protocol"
 msgstr "Bibliothèque C++ implémentant le protocole WebSocket"
 
-#: gnu/packages/web.scm:1201
+#: gnu/packages/web.scm:1309
 msgid ""
 "WebSocket++ is a C++ library that can be used to implement\n"
 "WebSocket functionality.  The goals of the project are to provide a WebSocket\n"
@@ -25022,11 +27931,11 @@ msgid ""
 "high performance."
 msgstr ""
 
-#: gnu/packages/web.scm:1232
+#: gnu/packages/web.scm:1340
 msgid "C WebSocket library"
 msgstr ""
 
-#: gnu/packages/web.scm:1233
+#: gnu/packages/web.scm:1341
 msgid ""
 "@code{Wslay} is an event-based C library for the WebSocket\n"
 "protocol version 13, described in RFC 6455.  Besides a high-level API it\n"
@@ -25035,11 +27944,11 @@ msgid ""
 "perform the opening handshake in HTTP."
 msgstr ""
 
-#: gnu/packages/web.scm:1262
+#: gnu/packages/web.scm:1370
 msgid "C library for the Publix Suffix List"
 msgstr ""
 
-#: gnu/packages/web.scm:1264
+#: gnu/packages/web.scm:1372
 msgid ""
 "A \"public suffix\" is a domain name under which Internet users can\n"
 "directly register own names.\n"
@@ -25049,7 +27958,7 @@ msgid ""
 "highlighting parts of the domain in a user interface, and sorting domain lists\n"
 "by site.\n"
 "\n"
-"Libpsl has built-in PSL data for fast access, allows to load PSL data from\n"
+"Libpsl has built-in PSL data for fast access, allowing to load PSL data from\n"
 "files, checks if a given domain is a public suffix, provides immediate cookie\n"
 "domain verification, finds the longest public part of a given domain, finds\n"
 "the shortest private part of a given domain, works with international\n"
@@ -25057,21 +27966,32 @@ msgid ""
 "UTS#46."
 msgstr ""
 
-#: gnu/packages/web.scm:1310
+#: gnu/packages/web.scm:1418
 msgid "HTML validator and tidier"
 msgstr ""
 
-#: gnu/packages/web.scm:1311
+#: gnu/packages/web.scm:1419
 msgid ""
 "HTML Tidy is a command-line tool and C library that can be\n"
 "used to validate and fix HTML data."
 msgstr ""
 
-#: gnu/packages/web.scm:1343
+#: gnu/packages/web.scm:1461
+msgid "Bundler and minifier tool for JavaScript and TypeScript"
+msgstr ""
+
+#: gnu/packages/web.scm:1463
+msgid ""
+"The esbuild tool provides a unified bundler, transpiler and\n"
+"minifier.  It packages up JavaScript and TypeScript code, along with JSON\n"
+"and other data, for distribution on the web."
+msgstr ""
+
+#: gnu/packages/web.scm:1495
 msgid "Light-weight HTTP/HTTPS proxy daemon"
 msgstr ""
 
-#: gnu/packages/web.scm:1344
+#: gnu/packages/web.scm:1496
 msgid ""
 "Tinyproxy is a light-weight HTTP/HTTPS proxy\n"
 "daemon.  Designed from the ground up to be fast and yet small, it is an ideal\n"
@@ -25080,22 +28000,22 @@ msgid ""
 "unavailable."
 msgstr ""
 
-#: gnu/packages/web.scm:1377
+#: gnu/packages/web.scm:1529
 msgid "Small caching web proxy"
 msgstr ""
 
-#: gnu/packages/web.scm:1379
+#: gnu/packages/web.scm:1531
 msgid ""
 "Polipo is a small caching web proxy (web cache, HTTP proxy, and proxy\n"
 "server).  It was primarily designed to be used by one person or a small group\n"
 "of people."
 msgstr ""
 
-#: gnu/packages/web.scm:1407
+#: gnu/packages/web.scm:1559
 msgid "WebSockets support for any application/server"
 msgstr ""
 
-#: gnu/packages/web.scm:1408
+#: gnu/packages/web.scm:1560
 msgid ""
 "Websockify translates WebSockets traffic to normal socket\n"
 "traffic.  Websockify accepts the WebSockets handshake, parses it, and then\n"
@@ -25103,11 +28023,11 @@ msgid ""
 "directions."
 msgstr ""
 
-#: gnu/packages/web.scm:1434
+#: gnu/packages/web.scm:1586
 msgid "Caching web proxy optimized for intermittent internet links"
 msgstr ""
 
-#: gnu/packages/web.scm:1435
+#: gnu/packages/web.scm:1587
 msgid ""
 "WWWOFFLE is a proxy web server that is especially good for\n"
 "intermittent internet links.  It can cache HTTP, HTTPS, FTP, and finger\n"
@@ -25116,11 +28036,11 @@ msgid ""
 "changes, and much more."
 msgstr ""
 
-#: gnu/packages/web.scm:1460
+#: gnu/packages/web.scm:1612
 msgid "C library implementing the OAuth API"
 msgstr "Bibliothèque C implémentant l'API OAuth"
 
-#: gnu/packages/web.scm:1462
+#: gnu/packages/web.scm:1614
 msgid ""
 "liboauth is a collection of C functions implementing the OAuth API.\n"
 "liboauth provides functions to escape and encode strings according to OAuth\n"
@@ -25129,42 +28049,42 @@ msgid ""
 "hash/signatures."
 msgstr ""
 
-#: gnu/packages/web.scm:1485
+#: gnu/packages/web.scm:1635
 msgid "YAML 1.1 parser and emitter written in C"
 msgstr ""
 
-#: gnu/packages/web.scm:1487
+#: gnu/packages/web.scm:1637
 msgid "LibYAML is a YAML 1.1 parser and emitter written in C."
 msgstr ""
 
-#: gnu/packages/web.scm:1518 gnu/packages/web.scm:1552
-#: gnu/packages/web.scm:1575
+#: gnu/packages/web.scm:1654 gnu/packages/web.scm:1688
+#: gnu/packages/web.scm:1711
 msgid "Media stream URL parser"
 msgstr ""
 
-#: gnu/packages/web.scm:1519
+#: gnu/packages/web.scm:1655
 msgid ""
 "This package contains support scripts called by libquvi to\n"
 "parse media stream properties."
 msgstr ""
 
-#: gnu/packages/web.scm:1553
+#: gnu/packages/web.scm:1689
 msgid ""
 "libquvi is a library with a C API for parsing media stream\n"
 "URLs and extracting their actual media files."
 msgstr ""
 
-#: gnu/packages/web.scm:1576
+#: gnu/packages/web.scm:1712
 msgid ""
 "quvi is a command-line-tool suite to extract media files\n"
 "from streaming URLs.  It is a command-line wrapper for the libquvi library."
 msgstr ""
 
-#: gnu/packages/web.scm:1648
+#: gnu/packages/web.scm:1784
 msgid "High-performance asynchronous HTTP client library"
 msgstr ""
 
-#: gnu/packages/web.scm:1650
+#: gnu/packages/web.scm:1786
 msgid ""
 "serf is a C-based HTTP client library built upon the Apache Portable\n"
 "Runtime (APR) library.  It multiplexes connections, running the read/write\n"
@@ -25172,11 +28092,11 @@ msgid ""
 "minimum to provide high performance operation."
 msgstr ""
 
-#: gnu/packages/web.scm:1685
+#: gnu/packages/web.scm:1821
 msgid "SASS Compiler, implemented as a C/C++ library"
 msgstr ""
 
-#: gnu/packages/web.scm:1687
+#: gnu/packages/web.scm:1823
 msgid ""
 "LibSass is a @acronym{SASS,Syntactically awesome style sheets} compiler\n"
 "library designed for portability and efficiency.  To actually compile SASS\n"
@@ -25184,49 +28104,49 @@ msgid ""
 "@var{sassc} for example."
 msgstr ""
 
-#: gnu/packages/web.scm:1735
+#: gnu/packages/web.scm:1871
 msgid "CSS pre-processor"
 msgstr ""
 
-#: gnu/packages/web.scm:1736
+#: gnu/packages/web.scm:1872
 msgid ""
 "SassC is a compiler written in C for the CSS pre-processor\n"
 "language known as SASS."
 msgstr ""
 
-#: gnu/packages/web.scm:1788
+#: gnu/packages/web.scm:1924
 msgid "Compile a log format string to perl-code"
 msgstr ""
 
-#: gnu/packages/web.scm:1789
+#: gnu/packages/web.scm:1925
 msgid ""
 "This module provides methods to compile a log format string\n"
 "to perl-code, for faster generation of access_log lines."
 msgstr ""
 
-#: gnu/packages/web.scm:1817
+#: gnu/packages/web.scm:1953
 msgid "SASL authentication framework"
 msgstr ""
 
-#: gnu/packages/web.scm:1818
+#: gnu/packages/web.scm:1954
 msgid "Authen::SASL provides an SASL authentication framework."
 msgstr ""
 
-#: gnu/packages/web.scm:1843
+#: gnu/packages/web.scm:1979
 msgid "Sensible default Catalyst action"
 msgstr ""
 
-#: gnu/packages/web.scm:1844
+#: gnu/packages/web.scm:1980
 msgid ""
 "This Catalyst action implements a sensible default end\n"
 "action, which will forward to the first available view."
 msgstr ""
 
-#: gnu/packages/web.scm:1876
+#: gnu/packages/web.scm:2012
 msgid "Automated REST Method Dispatching"
 msgstr ""
 
-#: gnu/packages/web.scm:1877
+#: gnu/packages/web.scm:2013
 msgid ""
 "This Action handles doing automatic method dispatching for\n"
 "REST requests.  It takes a normal Catalyst action, and changes the dispatch to\n"
@@ -25235,32 +28155,32 @@ msgid ""
 "regular method."
 msgstr ""
 
-#: gnu/packages/web.scm:1914
+#: gnu/packages/web.scm:2050
 msgid "Storage class for Catalyst authentication using DBIx::Class"
 msgstr ""
 
-#: gnu/packages/web.scm:1915
+#: gnu/packages/web.scm:2051
 msgid ""
 "The Catalyst::Authentication::Store::DBIx::Class class\n"
 "provides access to authentication information stored in a database via\n"
 "DBIx::Class."
 msgstr ""
 
-#: gnu/packages/web.scm:1941
+#: gnu/packages/web.scm:2077
 msgid "Create only one instance of Moose component per context"
 msgstr ""
 
-#: gnu/packages/web.scm:1942
+#: gnu/packages/web.scm:2078
 msgid ""
 "Catalyst::Component::InstancePerContext returns a new\n"
 "instance of a component on each request."
 msgstr ""
 
-#: gnu/packages/web.scm:1978
+#: gnu/packages/web.scm:2114
 msgid "Catalyst Development Tools"
 msgstr ""
 
-#: gnu/packages/web.scm:1979
+#: gnu/packages/web.scm:2115
 msgid ""
 "The Catalyst-Devel distribution includes a variety of\n"
 "modules useful for the development of Catalyst applications, but not required\n"
@@ -25270,11 +28190,11 @@ msgid ""
 "modules."
 msgstr ""
 
-#: gnu/packages/web.scm:2008
+#: gnu/packages/web.scm:2144
 msgid "Regex DispatchType for Catalyst"
 msgstr ""
 
-#: gnu/packages/web.scm:2009
+#: gnu/packages/web.scm:2145
 msgid ""
 "Dispatch type managing path-matching behaviour using\n"
 "regexes.  Regex dispatch types have been deprecated and removed from Catalyst\n"
@@ -25284,32 +28204,32 @@ msgid ""
 "when the dispatch type is first seen in your application."
 msgstr ""
 
-#: gnu/packages/web.scm:2058
+#: gnu/packages/web.scm:2194
 msgid "DBIx::Class::Schema Model Class"
 msgstr ""
 
-#: gnu/packages/web.scm:2059
+#: gnu/packages/web.scm:2195
 msgid ""
 "This is a Catalyst Model for DBIx::Class::Schema-based\n"
 "Models."
 msgstr ""
 
-#: gnu/packages/web.scm:2082
+#: gnu/packages/web.scm:2218
 msgid "Request logging from within Catalyst"
 msgstr ""
 
-#: gnu/packages/web.scm:2083
+#: gnu/packages/web.scm:2219
 msgid ""
 "This Catalyst plugin enables you to create \"access logs\"\n"
 "from within a Catalyst application instead of requiring a webserver to do it\n"
 "for you.  It will work even with Catalyst debug logging turned off."
 msgstr ""
 
-#: gnu/packages/web.scm:2117
+#: gnu/packages/web.scm:2253
 msgid "Infrastructure plugin for the Catalyst authentication framework"
 msgstr ""
 
-#: gnu/packages/web.scm:2118
+#: gnu/packages/web.scm:2254
 msgid ""
 "The authentication plugin provides generic user support for\n"
 "Catalyst apps.  It is the basis for both authentication (checking the user is\n"
@@ -25317,52 +28237,52 @@ msgid ""
 "system authorises them to do)."
 msgstr ""
 
-#: gnu/packages/web.scm:2149
+#: gnu/packages/web.scm:2285
 msgid "Role-based authorization for Catalyst"
 msgstr ""
 
-#: gnu/packages/web.scm:2150
+#: gnu/packages/web.scm:2286
 msgid ""
 "Catalyst::Plugin::Authorization::Roles provides role-based\n"
 "authorization for Catalyst based on Catalyst::Plugin::Authentication."
 msgstr ""
 
-#: gnu/packages/web.scm:2173
+#: gnu/packages/web.scm:2309
 msgid "Captchas for Catalyst"
 msgstr ""
 
-#: gnu/packages/web.scm:2174
+#: gnu/packages/web.scm:2310
 msgid ""
 "This plugin creates and validates Captcha images for\n"
 "Catalyst."
 msgstr ""
 
-#: gnu/packages/web.scm:2201
+#: gnu/packages/web.scm:2336
 msgid "Load config files of various types"
 msgstr ""
 
-#: gnu/packages/web.scm:2202
+#: gnu/packages/web.scm:2337
 msgid ""
 "This module will attempt to load find and load configuration\n"
 "files of various types.  Currently it supports YAML, JSON, XML, INI and Perl\n"
 "formats."
 msgstr ""
 
-#: gnu/packages/web.scm:2233
+#: gnu/packages/web.scm:2368
 msgid "Catalyst generic session plugin"
 msgstr ""
 
-#: gnu/packages/web.scm:2234
+#: gnu/packages/web.scm:2369
 msgid ""
 "This plugin links the two pieces required for session\n"
 "management in web applications together: the state, and the store."
 msgstr ""
 
-#: gnu/packages/web.scm:2262
+#: gnu/packages/web.scm:2397
 msgid "Maintain session IDs using cookies"
 msgstr ""
 
-#: gnu/packages/web.scm:2263
+#: gnu/packages/web.scm:2398
 msgid ""
 "In order for Catalyst::Plugin::Session to work, the session\n"
 "ID needs to be stored on the client, and the session data needs to be stored\n"
@@ -25370,22 +28290,22 @@ msgid ""
 "cookie mechanism."
 msgstr ""
 
-#: gnu/packages/web.scm:2293
+#: gnu/packages/web.scm:2428
 msgid "FastMmap session storage backend"
 msgstr ""
 
-#: gnu/packages/web.scm:2294
+#: gnu/packages/web.scm:2429
 msgid ""
 "Catalyst::Plugin::Session::Store::FastMmap is a fast session\n"
 "storage plugin for Catalyst that uses an mmap'ed file to act as a shared\n"
 "memory interprocess cache.  It is based on Cache::FastMmap."
 msgstr ""
 
-#: gnu/packages/web.scm:2319
+#: gnu/packages/web.scm:2454
 msgid "Stack trace on the Catalyst debug screen"
 msgstr ""
 
-#: gnu/packages/web.scm:2320
+#: gnu/packages/web.scm:2455
 msgid ""
 "This plugin enhances the standard Catalyst debug screen by\n"
 "including a stack trace of your application up to the point where the error\n"
@@ -25393,11 +28313,11 @@ msgid ""
 "number, file name, and code context surrounding the line number."
 msgstr ""
 
-#: gnu/packages/web.scm:2348
+#: gnu/packages/web.scm:2483
 msgid "Simple serving of static pages"
 msgstr ""
 
-#: gnu/packages/web.scm:2349
+#: gnu/packages/web.scm:2484
 msgid ""
 "The Static::Simple plugin is designed to make serving static\n"
 "content in your application during development quick and easy, without\n"
@@ -25408,11 +28328,11 @@ msgid ""
 "MIME type directly to the browser, without being processed through Catalyst."
 msgstr ""
 
-#: gnu/packages/web.scm:2412
+#: gnu/packages/web.scm:2547
 msgid "The Catalyst Framework Runtime"
 msgstr ""
 
-#: gnu/packages/web.scm:2413
+#: gnu/packages/web.scm:2548
 msgid ""
 "Catalyst is a modern framework for making web applications.\n"
 "It is designed to make it easy to manage the various tasks you need to do to\n"
@@ -25420,11 +28340,11 @@ msgid ""
 "\"plug in\" existing Perl modules that do what you need."
 msgstr ""
 
-#: gnu/packages/web.scm:2444
+#: gnu/packages/web.scm:2579
 msgid "Replace request base with value passed by HTTP proxy"
 msgstr ""
 
-#: gnu/packages/web.scm:2445
+#: gnu/packages/web.scm:2580
 msgid ""
 "This module is a Moose::Role which allows you more\n"
 "flexibility in your application's deployment configurations when deployed\n"
@@ -25432,42 +28352,42 @@ msgid ""
 "replaced with the contents of the X-Request-Base header."
 msgstr ""
 
-#: gnu/packages/web.scm:2472
+#: gnu/packages/web.scm:2607
 msgid "Download data in many formats"
 msgstr ""
 
-#: gnu/packages/web.scm:2473
+#: gnu/packages/web.scm:2608
 msgid ""
 "The purpose of this module is to provide a method for\n"
 "downloading data into many supportable formats.  For example, downloading a\n"
 "table based report in a variety of formats (CSV, HTML, etc.)."
 msgstr ""
 
-#: gnu/packages/web.scm:2499
+#: gnu/packages/web.scm:2634
 msgid "Catalyst JSON view"
 msgstr ""
 
-#: gnu/packages/web.scm:2500
+#: gnu/packages/web.scm:2635
 msgid ""
 "Catalyst::View::JSON is a Catalyst View handler that returns\n"
 "stash data in JSON format."
 msgstr ""
 
-#: gnu/packages/web.scm:2526
+#: gnu/packages/web.scm:2660
 msgid "Template View Class"
 msgstr ""
 
-#: gnu/packages/web.scm:2527
+#: gnu/packages/web.scm:2661
 msgid ""
 "This module is a Catalyst view class for the Template\n"
 "Toolkit."
 msgstr ""
 
-#: gnu/packages/web.scm:2556
+#: gnu/packages/web.scm:2690
 msgid "Trait Loading and Resolution for Catalyst Components"
 msgstr ""
 
-#: gnu/packages/web.scm:2557
+#: gnu/packages/web.scm:2691
 msgid ""
 "Adds a \"COMPONENT\" in Catalyst::Component method to your\n"
 "Catalyst component base class that reads the optional \"traits\" parameter\n"
@@ -25476,31 +28396,31 @@ msgid ""
 "MooseX::Traits::Pluggable."
 msgstr ""
 
-#: gnu/packages/web.scm:2582
+#: gnu/packages/web.scm:2716
 msgid "Apply roles to Catalyst classes"
 msgstr ""
 
-#: gnu/packages/web.scm:2583
+#: gnu/packages/web.scm:2717
 msgid ""
 "CatalystX::RoleApplicator applies roles to Catalyst\n"
 "application classes."
 msgstr ""
 
-#: gnu/packages/web.scm:2610
+#: gnu/packages/web.scm:2744
 msgid "Catalyst development server with Starman"
 msgstr ""
 
-#: gnu/packages/web.scm:2611
+#: gnu/packages/web.scm:2745
 msgid ""
 "This module provides a Catalyst extension to replace the\n"
 "development server with Starman."
 msgstr ""
 
-#: gnu/packages/web.scm:2635
+#: gnu/packages/web.scm:2768
 msgid "Handle Common Gateway Interface requests and responses"
 msgstr ""
 
-#: gnu/packages/web.scm:2636
+#: gnu/packages/web.scm:2769
 msgid ""
 "CGI.pm is a stable, complete and mature solution for\n"
 "processing and preparing HTTP requests and responses.  Major features include\n"
@@ -25509,72 +28429,72 @@ msgid ""
 "headers."
 msgstr ""
 
-#: gnu/packages/web.scm:2661
+#: gnu/packages/web.scm:2794
 msgid "Generate and process stateful forms"
 msgstr ""
 
-#: gnu/packages/web.scm:2663
+#: gnu/packages/web.scm:2796
 msgid ""
 "@code{CGI::FormBuilder} provides an easy way to generate and process CGI\n"
 "form-based applications."
 msgstr ""
 
-#: gnu/packages/web.scm:2688
+#: gnu/packages/web.scm:2821
 msgid "Persistent session data in CGI applications"
 msgstr ""
 
-#: gnu/packages/web.scm:2690
+#: gnu/packages/web.scm:2823
 msgid ""
 "@code{CGI::Session} provides modular session management system across\n"
 "HTTP requests."
 msgstr ""
 
-#: gnu/packages/web.scm:2712
+#: gnu/packages/web.scm:2845
 msgid "CGI interface that is CGI.pm compliant"
 msgstr ""
 
-#: gnu/packages/web.scm:2713
+#: gnu/packages/web.scm:2846
 msgid ""
 "CGI::Simple provides a relatively lightweight drop in\n"
 "replacement for CGI.pm.  It shares an identical OO interface to CGI.pm for\n"
 "parameter parsing, file upload, cookie handling and header generation."
 msgstr ""
 
-#: gnu/packages/web.scm:2734
+#: gnu/packages/web.scm:2867
 msgid "Build structures from CGI data"
 msgstr ""
 
-#: gnu/packages/web.scm:2735
+#: gnu/packages/web.scm:2868
 msgid ""
 "This is a module for building structured data from CGI\n"
 "inputs, in a manner reminiscent of how PHP does."
 msgstr ""
 
-#: gnu/packages/web.scm:2758
+#: gnu/packages/web.scm:2891
 msgid "Date conversion routines"
 msgstr ""
 
-#: gnu/packages/web.scm:2759
+#: gnu/packages/web.scm:2892
 msgid ""
 "This module provides functions that deal with the date\n"
 "formats used by the HTTP protocol."
 msgstr ""
 
-#: gnu/packages/web.scm:2779
+#: gnu/packages/web.scm:2912
 msgid "MD5 sums for files and urls"
 msgstr ""
 
-#: gnu/packages/web.scm:2780
+#: gnu/packages/web.scm:2913
 msgid ""
 "Digest::MD5::File is a Perl extension for getting MD5 sums\n"
 "for files and urls."
 msgstr ""
 
-#: gnu/packages/web.scm:2798
+#: gnu/packages/web.scm:2931
 msgid "Perl locale encoding determination"
 msgstr ""
 
-#: gnu/packages/web.scm:2800
+#: gnu/packages/web.scm:2933
 msgid ""
 "The POSIX locale system is used to specify both the language\n"
 "conventions requested by the user and the preferred character set to\n"
@@ -25586,110 +28506,110 @@ msgid ""
 "with Encode::decode(locale => $string)."
 msgstr ""
 
-#: gnu/packages/web.scm:2835
+#: gnu/packages/web.scm:2968
 msgid "Syndication feed auto-discovery"
 msgstr ""
 
-#: gnu/packages/web.scm:2836
+#: gnu/packages/web.scm:2969
 msgid ""
 "@code{Feed::Find} implements feed auto-discovery for finding\n"
 "syndication feeds, given a URI.  It will discover the following feed formats:\n"
 "RSS 0.91, RSS 1.0, RSS 2.0, Atom."
 msgstr ""
 
-#: gnu/packages/web.scm:2857
+#: gnu/packages/web.scm:2990
 msgid "Perl directory listing parser"
 msgstr ""
 
-#: gnu/packages/web.scm:2859
+#: gnu/packages/web.scm:2992
 msgid ""
 "The File::Listing module exports a single function called parse_dir(),\n"
 "which can be used to parse directory listings."
 msgstr ""
 
-#: gnu/packages/web.scm:2890
+#: gnu/packages/web.scm:3023
 msgid "Stock and mutual fund quotes"
 msgstr ""
 
-#: gnu/packages/web.scm:2892
+#: gnu/packages/web.scm:3025
 msgid ""
 "Finance::Quote gets stock quotes from various internet sources, including\n"
 "Yahoo! Finance, Fidelity Investments, and the Australian Stock Exchange."
 msgstr ""
 
-#: gnu/packages/web.scm:2914
+#: gnu/packages/web.scm:3047
 msgid "Perl extension providing access to the GSSAPIv2 library"
 msgstr ""
 
-#: gnu/packages/web.scm:2915
+#: gnu/packages/web.scm:3048
 msgid ""
 "This is a Perl extension for using GSSAPI C bindings as\n"
 "described in RFC 2744."
 msgstr ""
 
-#: gnu/packages/web.scm:2935
+#: gnu/packages/web.scm:3068
 msgid "Manipulate tables of HTML::Element"
 msgstr ""
 
-#: gnu/packages/web.scm:2937
+#: gnu/packages/web.scm:3070
 msgid ""
 "HTML::Element::Extended is a Perl extension for manipulating a table\n"
 "composed of HTML::Element style components."
 msgstr ""
 
-#: gnu/packages/web.scm:2960
+#: gnu/packages/web.scm:3093
 msgid "Perl class representing an HTML form element"
 msgstr ""
 
-#: gnu/packages/web.scm:2961
+#: gnu/packages/web.scm:3094
 msgid ""
 "Objects of the HTML::Form class represents a single HTML\n"
 "<form> ... </form> instance."
 msgstr ""
 
-#: gnu/packages/web.scm:2992
+#: gnu/packages/web.scm:3125
 msgid "Perl extension for scrubbing/sanitizing html"
 msgstr ""
 
-#: gnu/packages/web.scm:2994
+#: gnu/packages/web.scm:3127
 msgid "@code{HTML::Scrubber} Perl extension for scrubbing/sanitizing HTML."
 msgstr ""
 
-#: gnu/packages/web.scm:3014
+#: gnu/packages/web.scm:3147
 msgid "Check for HTML errors in a string or file"
 msgstr ""
 
-#: gnu/packages/web.scm:3015
+#: gnu/packages/web.scm:3148
 msgid ""
 "HTML::Lint is a pure-Perl HTML parser and checker for\n"
 "syntactic legitmacy."
 msgstr ""
 
-#: gnu/packages/web.scm:3036
+#: gnu/packages/web.scm:3169
 msgid "Extract contents from HTML tables"
 msgstr ""
 
-#: gnu/packages/web.scm:3038
+#: gnu/packages/web.scm:3171
 msgid ""
 "HTML::TableExtract is a Perl module for extracting the content contained\n"
 "in tables within an HTML document, either as text or encoded element trees."
 msgstr ""
 
-#: gnu/packages/web.scm:3063
+#: gnu/packages/web.scm:3196
 msgid "Work with HTML in a DOM-like tree structure"
 msgstr ""
 
-#: gnu/packages/web.scm:3064
+#: gnu/packages/web.scm:3197
 msgid ""
 "This distribution contains a suite of modules for\n"
 "representing, creating, and extracting information from HTML syntax trees."
 msgstr ""
 
-#: gnu/packages/web.scm:3085
+#: gnu/packages/web.scm:3218
 msgid "Perl HTML parser class"
 msgstr ""
 
-#: gnu/packages/web.scm:3087
+#: gnu/packages/web.scm:3220
 msgid ""
 "Objects of the HTML::Parser class will recognize markup and separate\n"
 "it from plain text (alias data content) in HTML documents.  As different\n"
@@ -25697,21 +28617,21 @@ msgid ""
 "are invoked."
 msgstr ""
 
-#: gnu/packages/web.scm:3107
+#: gnu/packages/web.scm:3240
 msgid "Perl data tables useful in parsing HTML"
 msgstr ""
 
-#: gnu/packages/web.scm:3109
+#: gnu/packages/web.scm:3242
 msgid ""
 "The HTML::Tagset module contains several data tables useful in various\n"
 "kinds of HTML parsing operations."
 msgstr ""
 
-#: gnu/packages/web.scm:3128
+#: gnu/packages/web.scm:3261
 msgid "HTML-like templates"
 msgstr ""
 
-#: gnu/packages/web.scm:3130
+#: gnu/packages/web.scm:3263
 msgid ""
 "This module attempts to make using HTML templates simple and natural.\n"
 "It extends standard HTML with a few new HTML-esque tags: @code{<TMPL_VAR>},\n"
@@ -25722,64 +28642,64 @@ msgid ""
 "you to separate design from the data."
 msgstr ""
 
-#: gnu/packages/web.scm:3158
+#: gnu/packages/web.scm:3291
 msgid "HTTP Body Parser"
 msgstr ""
 
-#: gnu/packages/web.scm:3159
+#: gnu/packages/web.scm:3292
 msgid ""
 "HTTP::Body parses chunks of HTTP POST data and supports\n"
 "application/octet-stream, application/json, application/x-www-form-urlencoded,\n"
 "and multipart/form-data."
 msgstr ""
 
-#: gnu/packages/web.scm:3186
+#: gnu/packages/web.scm:3318
 msgid "Minimalist HTTP user agent cookie jar"
 msgstr ""
 
-#: gnu/packages/web.scm:3187
+#: gnu/packages/web.scm:3319
 msgid ""
 "This module implements a minimalist HTTP user agent cookie\n"
 "jar in conformance with RFC 6265 <http://tools.ietf.org/html/rfc6265>."
 msgstr ""
 
-#: gnu/packages/web.scm:3207
+#: gnu/packages/web.scm:3339
 msgid "Perl HTTP cookie jars"
 msgstr ""
 
-#: gnu/packages/web.scm:3209
+#: gnu/packages/web.scm:3341
 msgid ""
 "The HTTP::Cookies class is for objects that represent a cookie jar,\n"
 "that is, a database of all the HTTP cookies that a given LWP::UserAgent\n"
 "object knows about."
 msgstr ""
 
-#: gnu/packages/web.scm:3231
+#: gnu/packages/web.scm:3363
 msgid "Perl simple http server class"
 msgstr ""
 
-#: gnu/packages/web.scm:3233
+#: gnu/packages/web.scm:3365
 msgid ""
 "Instances of the HTTP::Daemon class are HTTP/1.1 servers that listen\n"
 "on a socket for incoming requests.  The HTTP::Daemon is a subclass of\n"
 "IO::Socket::INET, so you can perform socket operations directly on it too."
 msgstr ""
 
-#: gnu/packages/web.scm:3252
+#: gnu/packages/web.scm:3384
 msgid "Perl date conversion routines"
 msgstr ""
 
-#: gnu/packages/web.scm:3254
+#: gnu/packages/web.scm:3386
 msgid ""
 "The HTTP::Date module provides functions that deal with date formats\n"
 "used by the HTTP protocol (and then some more)."
 msgstr ""
 
-#: gnu/packages/web.scm:3274
+#: gnu/packages/web.scm:3406
 msgid "Lightweight HTTP implementation"
 msgstr "Implémentation HTTP légère"
 
-#: gnu/packages/web.scm:3275
+#: gnu/packages/web.scm:3407
 msgid ""
 "@code{HTTP::Lite} is a stand-alone lightweight\n"
 "HTTP/1.1 implementation for perl.  It is intended for use in\n"
@@ -25793,19 +28713,19 @@ msgid ""
 "processing of request data as it arrives."
 msgstr ""
 
-#: gnu/packages/web.scm:3309
+#: gnu/packages/web.scm:3441
 msgid "Perl HTTP style message"
 msgstr ""
 
-#: gnu/packages/web.scm:3311
+#: gnu/packages/web.scm:3443
 msgid "An HTTP::Message object contains some headers and a content body."
 msgstr ""
 
-#: gnu/packages/web.scm:3330
+#: gnu/packages/web.scm:3462
 msgid "Perl http content negotiation"
 msgstr ""
 
-#: gnu/packages/web.scm:3332
+#: gnu/packages/web.scm:3464
 msgid ""
 "The HTTP::Negotiate module provides a complete implementation of the\n"
 "HTTP content negotiation algorithm specified in\n"
@@ -25815,11 +28735,11 @@ msgid ""
 "fields in the request."
 msgstr ""
 
-#: gnu/packages/web.scm:3357
+#: gnu/packages/web.scm:3489
 msgid "Parse HTTP/1.1 requests"
 msgstr ""
 
-#: gnu/packages/web.scm:3358
+#: gnu/packages/web.scm:3490
 msgid ""
 "This is an HTTP request parser.  It takes chunks of text as\n"
 "received and returns a @code{hint} as to what is required, or returns the\n"
@@ -25827,53 +28747,53 @@ msgid ""
 "supported."
 msgstr ""
 
-#: gnu/packages/web.scm:3380
+#: gnu/packages/web.scm:3512
 msgid "Fast HTTP request parser"
 msgstr ""
 
-#: gnu/packages/web.scm:3381
+#: gnu/packages/web.scm:3513
 msgid ""
 "HTTP::Parser::XS is a fast, primitive HTTP request/response\n"
 "parser."
 msgstr ""
 
-#: gnu/packages/web.scm:3402
+#: gnu/packages/web.scm:3534
 msgid "Set up a CGI environment from an HTTP::Request"
 msgstr ""
 
-#: gnu/packages/web.scm:3403
+#: gnu/packages/web.scm:3535
 msgid ""
 "This module provides a convenient way to set up a CGI\n"
 "environment from an HTTP::Request."
 msgstr ""
 
-#: gnu/packages/web.scm:3436
+#: gnu/packages/web.scm:3568
 msgid "Lightweight HTTP server"
 msgstr ""
 
-#: gnu/packages/web.scm:3437
+#: gnu/packages/web.scm:3569
 msgid ""
 "HTTP::Server::Simple is a simple standalone HTTP daemon with\n"
 "no non-core module dependencies.  It can be used for building a standalone\n"
 "http-based UI to your existing tools."
 msgstr ""
 
-#: gnu/packages/web.scm:3462
+#: gnu/packages/web.scm:3594
 msgid "HTTP/1.1 client"
 msgstr ""
 
-#: gnu/packages/web.scm:3463
+#: gnu/packages/web.scm:3595
 msgid ""
 "This is a very simple HTTP/1.1 client, designed for doing\n"
 "simple requests without the overhead of a large framework like LWP::UserAgent.\n"
 "It supports proxies and redirection.  It also correctly resumes after EINTR."
 msgstr ""
 
-#: gnu/packages/web.scm:3487
+#: gnu/packages/web.scm:3619
 msgid "@code{HTTP::Tiny} compatible HTTP client wrappers"
 msgstr ""
 
-#: gnu/packages/web.scm:3489
+#: gnu/packages/web.scm:3621
 msgid ""
 "@code{HTTP::Tinyish} is a wrapper module for @acronym{LWP,libwww-perl},\n"
 "@code{HTTP::Tiny}, curl and wget.\n"
@@ -25881,32 +28801,32 @@ msgid ""
 "It provides an API compatible to HTTP::Tiny."
 msgstr ""
 
-#: gnu/packages/web.scm:3509
+#: gnu/packages/web.scm:3641
 msgid "Perl module to open an HTML file with automatic charset detection"
 msgstr ""
 
-#: gnu/packages/web.scm:3511
+#: gnu/packages/web.scm:3643
 msgid ""
 "IO::HTML provides an easy way to open a file containing HTML while\n"
 "automatically determining its encoding.  It uses the HTML5 encoding sniffing\n"
 "algorithm specified in section 8.2.2.1 of the draft standard."
 msgstr ""
 
-#: gnu/packages/web.scm:3531
+#: gnu/packages/web.scm:3662
 msgid "Family-neutral IP socket supporting both IPv4 and IPv6"
 msgstr ""
 
-#: gnu/packages/web.scm:3532
+#: gnu/packages/web.scm:3663
 msgid ""
 "This module provides a protocol-independent way to use IPv4\n"
 "and IPv6 sockets, intended as a replacement for IO::Socket::INET."
 msgstr ""
 
-#: gnu/packages/web.scm:3554
+#: gnu/packages/web.scm:3685
 msgid "Nearly transparent SSL encapsulation for IO::Socket::INET"
 msgstr ""
 
-#: gnu/packages/web.scm:3556
+#: gnu/packages/web.scm:3687
 msgid ""
 "IO::Socket::SSL makes using SSL/TLS much easier by wrapping the\n"
 "necessary functionality into the familiar IO::Socket interface and providing\n"
@@ -25915,11 +28835,11 @@ msgid ""
 "select or poll."
 msgstr ""
 
-#: gnu/packages/web.scm:3595
+#: gnu/packages/web.scm:3726
 msgid "Perl modules for the WWW"
 msgstr ""
 
-#: gnu/packages/web.scm:3597
+#: gnu/packages/web.scm:3728
 msgid ""
 "The libwww-perl collection is a set of Perl modules which provides a\n"
 "simple and consistent application programming interface to the\n"
@@ -25929,11 +28849,11 @@ msgid ""
 "help you implement simple HTTP servers."
 msgstr ""
 
-#: gnu/packages/web.scm:3625
+#: gnu/packages/web.scm:3756
 msgid "Checks whether your process has access to the web"
 msgstr ""
 
-#: gnu/packages/web.scm:3626
+#: gnu/packages/web.scm:3757
 msgid ""
 "This module attempts to answer, as accurately as it can, one\n"
 "of the nastiest technical questions there is: am I on the internet?\n"
@@ -25943,11 +28863,11 @@ msgid ""
 "not have DNS.  We might not have a network card at all!"
 msgstr ""
 
-#: gnu/packages/web.scm:3650
+#: gnu/packages/web.scm:3781
 msgid "Perl module to guess the media type for a file or a URL"
 msgstr ""
 
-#: gnu/packages/web.scm:3652
+#: gnu/packages/web.scm:3783
 #, scheme-format
 msgid ""
 "The LWP::MediaTypes module provides functions for handling media (also\n"
@@ -25956,32 +28876,32 @@ msgid ""
 "exists it is used instead."
 msgstr ""
 
-#: gnu/packages/web.scm:3681
+#: gnu/packages/web.scm:3812
 msgid "HTTPS support for LWP::UserAgent"
 msgstr ""
 
-#: gnu/packages/web.scm:3682
+#: gnu/packages/web.scm:3813
 msgid ""
 "The LWP::Protocol::https module provides support for using\n"
 "https schemed URLs with LWP."
 msgstr ""
 
-#: gnu/packages/web.scm:3702
+#: gnu/packages/web.scm:3833
 msgid "Simple caching for LWP::UserAgent"
 msgstr ""
 
-#: gnu/packages/web.scm:3703
+#: gnu/packages/web.scm:3834
 msgid ""
 "LWP::UserAgent::Cached is an LWP::UserAgent subclass with\n"
-"cache support.  It returns responses from the local filesystem if available\n"
+"cache support.  It returns responses from the local file system, if available,\n"
 "instead of making an HTTP request."
 msgstr ""
 
-#: gnu/packages/web.scm:3724
+#: gnu/packages/web.scm:3855
 msgid "Virtual browser that retries errors"
 msgstr ""
 
-#: gnu/packages/web.scm:3725
+#: gnu/packages/web.scm:3856
 msgid ""
 "LWP::UserAgent::Determined works just like LWP::UserAgent,\n"
 "except that when you use it to get a web page but run into a\n"
@@ -25989,19 +28909,33 @@ msgid ""
 "and retry a few times."
 msgstr ""
 
-#: gnu/packages/web.scm:3770
+#: gnu/packages/web.scm:3882
+msgid "Security enhanced subclass of LWP::UserAgent"
+msgstr ""
+
+#: gnu/packages/web.scm:3883
+msgid ""
+"@code{LWPx::ParanoidAgent} is a class subclassing\n"
+"@code{LWP::UserAgent} but paranoid against attackers.  Its purpose is\n"
+"to vet requests for a remote resource on behalf of a possibly\n"
+"malicious user.  The class can do the same as @code{LWP::UserAgent},\n"
+"except that proxy support has been removed.  Support for URI schemes\n"
+"is limited to http and https."
+msgstr ""
+
+#: gnu/packages/web.scm:3930
 msgid "Perl interface to Amazon S3"
 msgstr ""
 
-#: gnu/packages/web.scm:3771
+#: gnu/packages/web.scm:3931
 msgid "This module provides a Perlish interface to Amazon S3."
 msgstr "Ce paquet fournit une interface de type Perl pour Amazon S3."
 
-#: gnu/packages/web.scm:3791
+#: gnu/packages/web.scm:3951
 msgid "Perl low-level HTTP connection (client)"
 msgstr ""
 
-#: gnu/packages/web.scm:3793
+#: gnu/packages/web.scm:3953
 msgid ""
 "The Net::HTTP class is a low-level HTTP client.  An instance of the\n"
 "Net::HTTP class represents a connection to an HTTP server.  The HTTP protocol\n"
@@ -26009,11 +28943,11 @@ msgid ""
 "HTTP/1.1."
 msgstr ""
 
-#: gnu/packages/web.scm:3813
+#: gnu/packages/web.scm:3973
 msgid "Extensible Perl server engine"
 msgstr ""
 
-#: gnu/packages/web.scm:3814
+#: gnu/packages/web.scm:3974
 msgid ""
 "Net::Server is an extensible, generic Perl server engine.\n"
 "It attempts to be a generic server as in Net::Daemon and NetServer::Generic.\n"
@@ -26027,19 +28961,19 @@ msgid ""
 "or to multiple server ports."
 msgstr ""
 
-#: gnu/packages/web.scm:3842
+#: gnu/packages/web.scm:4002
 msgid "SSL support for Net::SMTP"
 msgstr ""
 
-#: gnu/packages/web.scm:3843
+#: gnu/packages/web.scm:4003
 msgid "SSL support for Net::SMTP."
 msgstr ""
 
-#: gnu/packages/web.scm:3877
+#: gnu/packages/web.scm:4037
 msgid "Perl Superglue for Web frameworks and servers (PSGI toolkit)"
 msgstr ""
 
-#: gnu/packages/web.scm:3878
+#: gnu/packages/web.scm:4038
 msgid ""
 "Plack is a set of tools for using the PSGI stack.  It\n"
 "contains middleware components, a reference server, and utilities for Web\n"
@@ -26047,11 +28981,11 @@ msgid ""
 "WSGI."
 msgstr ""
 
-#: gnu/packages/web.scm:3904
+#: gnu/packages/web.scm:4064
 msgid "Compress response body with Gzip or Deflate"
 msgstr ""
 
-#: gnu/packages/web.scm:3906
+#: gnu/packages/web.scm:4066
 msgid ""
 "Plack::Middleware::Deflater is a middleware to encode your response body\n"
 "in gzip or deflate, based on \"Accept-Encoding\" HTTP request header.  It\n"
@@ -26060,21 +28994,21 @@ msgid ""
 "servers."
 msgstr ""
 
-#: gnu/packages/web.scm:3933
+#: gnu/packages/web.scm:4093
 msgid "Plack::Middleware which sets body for redirect response"
 msgstr ""
 
-#: gnu/packages/web.scm:3934
+#: gnu/packages/web.scm:4094
 msgid ""
 "This module sets the body in redirect response, if it's not\n"
 "already set."
 msgstr ""
 
-#: gnu/packages/web.scm:3956
+#: gnu/packages/web.scm:4116
 msgid "Override REST methods to Plack apps via POST"
 msgstr ""
 
-#: gnu/packages/web.scm:3957
+#: gnu/packages/web.scm:4117
 msgid ""
 "This middleware allows for POST requests that pretend to be\n"
 "something else: by adding either a header named X-HTTP-Method-Override to the\n"
@@ -26082,72 +29016,72 @@ msgid ""
 "can say what method it actually meant."
 msgstr ""
 
-#: gnu/packages/web.scm:3980
+#: gnu/packages/web.scm:4140
 msgid "Plack::Middleware which removes body for HTTP response"
 msgstr ""
 
-#: gnu/packages/web.scm:3981
+#: gnu/packages/web.scm:4141
 msgid ""
 "This module removes the body in an HTTP response if it's not\n"
 "required."
 msgstr ""
 
-#: gnu/packages/web.scm:4003
+#: gnu/packages/web.scm:4163
 msgid "Supports app to run as a reverse proxy backend"
 msgstr ""
 
-#: gnu/packages/web.scm:4004
+#: gnu/packages/web.scm:4164
 msgid ""
 "Plack::Middleware::ReverseProxy resets some HTTP headers,\n"
 "which are changed by reverse-proxy.  You can specify the reverse proxy address\n"
 "and stop fake requests using @code{enable_if} directive in your app.psgi."
 msgstr ""
 
-#: gnu/packages/web.scm:4024
+#: gnu/packages/web.scm:4184
 msgid "Run HTTP tests on external live servers"
 msgstr ""
 
-#: gnu/packages/web.scm:4025
+#: gnu/packages/web.scm:4185
 msgid ""
 "This module allows your to run your Plack::Test tests\n"
 "against an external server instead of just against a local application through\n"
 "either mocked HTTP or a locally spawned server."
 msgstr ""
 
-#: gnu/packages/web.scm:4046
+#: gnu/packages/web.scm:4206
 msgid "Testing TCP programs"
 msgstr ""
 
-#: gnu/packages/web.scm:4047
+#: gnu/packages/web.scm:4207
 msgid "Test::TCP is test utilities for TCP/IP programs."
 msgstr ""
 
-#: gnu/packages/web.scm:4071
+#: gnu/packages/web.scm:4231
 msgid "Testing-specific WWW::Mechanize subclass"
 msgstr ""
 
-#: gnu/packages/web.scm:4072
+#: gnu/packages/web.scm:4232
 msgid ""
 "Test::WWW::Mechanize is a subclass of the Perl module\n"
 "WWW::Mechanize that incorporates features for web application testing."
 msgstr ""
 
-#: gnu/packages/web.scm:4105
+#: gnu/packages/web.scm:4265
 msgid "Test::WWW::Mechanize for Catalyst"
 msgstr ""
 
-#: gnu/packages/web.scm:4106
+#: gnu/packages/web.scm:4266
 msgid ""
 "The Test::WWW::Mechanize::Catalyst module meshes the\n"
 "Test::WWW:Mechanize module and the Catalyst web application framework to allow\n"
 "testing of Catalyst applications without needing to start up a web server."
 msgstr ""
 
-#: gnu/packages/web.scm:4130
+#: gnu/packages/web.scm:4290
 msgid "Test PSGI programs using WWW::Mechanize"
 msgstr ""
 
-#: gnu/packages/web.scm:4131
+#: gnu/packages/web.scm:4291
 msgid ""
 "PSGI is a specification to decouple web server environments\n"
 "from web application framework code.  Test::WWW::Mechanize is a subclass of\n"
@@ -26156,33 +29090,33 @@ msgid ""
 "applications."
 msgstr ""
 
-#: gnu/packages/web.scm:4154
+#: gnu/packages/web.scm:4314
 msgid "Perl Uniform Resource Identifiers (absolute and relative)"
 msgstr ""
 
-#: gnu/packages/web.scm:4156
+#: gnu/packages/web.scm:4316
 msgid ""
 "The URI module implements the URI class.  Objects of this class\n"
 "represent \"Uniform Resource Identifier references\" as specified in RFC 2396\n"
 "and updated by RFC 2732."
 msgstr ""
 
-#: gnu/packages/web.scm:4180
+#: gnu/packages/web.scm:4340
 msgid "Smart URI fetching/caching"
 msgstr ""
 
-#: gnu/packages/web.scm:4181
+#: gnu/packages/web.scm:4341
 msgid ""
 "@code{URI::Fetch} is a smart client for fetching HTTP pages,\n"
 "notably syndication feeds (RSS, Atom, and others), in an intelligent, bandwidth-\n"
 "and time-saving way."
 msgstr ""
 
-#: gnu/packages/web.scm:4204
+#: gnu/packages/web.scm:4364
 msgid "Find URIs in arbitrary text"
 msgstr ""
 
-#: gnu/packages/web.scm:4205
+#: gnu/packages/web.scm:4365
 msgid ""
 "This module finds URIs and URLs (according to what URI.pm\n"
 "considers a URI) in plain text.  It only finds URIs which include a\n"
@@ -26190,61 +29124,61 @@ msgid ""
 "URI::Find::Schemeless.  For a command-line interface, urifind is provided."
 msgstr ""
 
-#: gnu/packages/web.scm:4227
+#: gnu/packages/web.scm:4387
 msgid "WebSocket support for URI package"
 msgstr ""
 
-#: gnu/packages/web.scm:4228
+#: gnu/packages/web.scm:4388
 msgid ""
 "With this module, the URI package provides the same set of\n"
 "methods for WebSocket URIs as it does for HTTP URIs."
 msgstr ""
 
-#: gnu/packages/web.scm:4252
+#: gnu/packages/web.scm:4412
 msgid "Object for handling URI templates"
 msgstr ""
 
-#: gnu/packages/web.scm:4253
+#: gnu/packages/web.scm:4413
 msgid ""
 "This perl module provides a wrapper around URI templates as described in\n"
 "RFC 6570."
 msgstr ""
 
-#: gnu/packages/web.scm:4285
+#: gnu/packages/web.scm:4445
 msgid "Perl extension interface for libcurl"
 msgstr "Interface d'extension Perl pour libcurl"
 
-#: gnu/packages/web.scm:4287
+#: gnu/packages/web.scm:4447
 msgid ""
 "This is a Perl extension interface for the libcurl file downloading\n"
 "library."
 msgstr ""
 
-#: gnu/packages/web.scm:4320
+#: gnu/packages/web.scm:4480
 msgid "Web browsing in a Perl object"
 msgstr ""
 
-#: gnu/packages/web.scm:4321
+#: gnu/packages/web.scm:4481
 msgid ""
 "WWW::Mechanize is a Perl module for stateful programmatic\n"
 "web browsing, used for automating interaction with websites."
 msgstr ""
 
-#: gnu/packages/web.scm:4357
+#: gnu/packages/web.scm:4517
 msgid "Search A9 OpenSearch compatible engines"
 msgstr ""
 
-#: gnu/packages/web.scm:4359
+#: gnu/packages/web.scm:4519
 msgid ""
 "@code{WWW::OpenSearch} is a module to search @url{A9's OpenSearch,\n"
 "http://opensearch.a9.com} compatible search engines."
 msgstr ""
 
-#: gnu/packages/web.scm:4379
+#: gnu/packages/web.scm:4539
 msgid "Perl database of robots.txt-derived permissions"
 msgstr ""
 
-#: gnu/packages/web.scm:4381
+#: gnu/packages/web.scm:4541
 msgid ""
 "The WWW::RobotRules module parses /robots.txt files as specified in\n"
 "\"A Standard for Robot Exclusion\", at\n"
@@ -26253,21 +29187,21 @@ msgid ""
 "their web site."
 msgstr ""
 
-#: gnu/packages/web.scm:4404
+#: gnu/packages/web.scm:4564
 msgid "Parse feeds in Python"
 msgstr ""
 
-#: gnu/packages/web.scm:4406
+#: gnu/packages/web.scm:4566
 msgid ""
 "Universal feed parser which handles RSS 0.9x, RSS 1.0, RSS 2.0,\n"
 "CDF, Atom 0.3, and Atom 1.0 feeds."
 msgstr ""
 
-#: gnu/packages/web.scm:4503
+#: gnu/packages/web.scm:4664
 msgid "Store and provide data about GNU Guix"
 msgstr ""
 
-#: gnu/packages/web.scm:4505
+#: gnu/packages/web.scm:4666
 msgid ""
 "The Guix Data Service stores data about GNU Guix, and provides this\n"
 "through a web interface.  It supports listening to the guix-commits mailing\n"
@@ -26275,32 +29209,32 @@ msgid ""
 "PostgreSQL database."
 msgstr ""
 
-#: gnu/packages/web.scm:4534
+#: gnu/packages/web.scm:4695
 msgid "HTML5 parsing library"
 msgstr "Bibliothèque d'analyse d'HTML5"
 
-#: gnu/packages/web.scm:4536
+#: gnu/packages/web.scm:4697
 msgid ""
 "Gumbo is an implementation of the HTML5 parsing algorithm implemented as\n"
 "a pure C99 library."
 msgstr ""
 
-#: gnu/packages/web.scm:4607
+#: gnu/packages/web.scm:4768
 msgid "Application container server"
 msgstr ""
 
-#: gnu/packages/web.scm:4609
+#: gnu/packages/web.scm:4770
 msgid ""
 "uWSGI presents a complete stack for networked/clustered web applications,\n"
 "implementing message/object passing, caching, RPC and process management.\n"
 "It uses the uwsgi protocol for all the networking/interprocess communications."
 msgstr ""
 
-#: gnu/packages/web.scm:4641
+#: gnu/packages/web.scm:4802
 msgid "Command-line JSON processor"
 msgstr ""
 
-#: gnu/packages/web.scm:4642
+#: gnu/packages/web.scm:4803
 msgid ""
 "jq is like sed for JSON data – you can use it to slice and\n"
 "filter and map and transform structured data with the same ease that sed, awk,\n"
@@ -26310,96 +29244,96 @@ msgid ""
 "you'd expect."
 msgstr ""
 
-#: gnu/packages/web.scm:4672
+#: gnu/packages/web.scm:4832
 msgid "Library for mocking web service APIs which use HTTP or HTTPS"
 msgstr ""
 
-#: gnu/packages/web.scm:4674
+#: gnu/packages/web.scm:4834
 msgid ""
 "Uhttpmock is a project for mocking web service APIs which use HTTP or\n"
 "HTTPS.  It provides a library, libuhttpmock, which implements recording and\n"
 "playback of HTTP request/response traces."
 msgstr ""
 
-#: gnu/packages/web.scm:4709
+#: gnu/packages/web.scm:4869
 msgid "Single file web server"
 msgstr ""
 
-#: gnu/packages/web.scm:4710
+#: gnu/packages/web.scm:4870
 msgid ""
 "Woof (Web Offer One File) is a small simple web server that\n"
 "can easily be invoked on a single file.  Your partner can access the file with\n"
 "tools they trust (e.g. wget)."
 msgstr ""
 
-#: gnu/packages/web.scm:4736
+#: gnu/packages/web.scm:4896
 msgid "Build system for the Netsurf project"
 msgstr ""
 
-#: gnu/packages/web.scm:4738
+#: gnu/packages/web.scm:4898
 msgid ""
 "This package provides the shared build system for Netsurf project\n"
 "libraries."
 msgstr ""
 
-#: gnu/packages/web.scm:4773
+#: gnu/packages/web.scm:4933
 msgid "Parser building library"
 msgstr "Bibliothèque de construction d'analyseur"
 
-#: gnu/packages/web.scm:4775
+#: gnu/packages/web.scm:4935
 msgid ""
 "LibParserUtils is a library for building efficient parsers, written in\n"
 "C.  It is developed as part of the NetSurf project."
 msgstr ""
 
-#: gnu/packages/web.scm:4803
+#: gnu/packages/web.scm:4963
 msgid "HTML5 compliant parsing library"
 msgstr ""
 
-#: gnu/packages/web.scm:4805
+#: gnu/packages/web.scm:4965
 msgid ""
 "Hubbub is an HTML5 compliant parsing library, written in C, which can\n"
 "parse both valid and invalid web content.  It is developed as part of the\n"
 "NetSurf project."
 msgstr ""
 
-#: gnu/packages/web.scm:4878
+#: gnu/packages/web.scm:5083
 msgid "Wiki compiler, capable of generating HTML"
 msgstr ""
 
-#: gnu/packages/web.scm:4880
+#: gnu/packages/web.scm:5085
 msgid ""
 "Ikiwiki is a wiki compiler, capable of generating a static set of web\n"
 "pages, but also incorporating dynamic features like a web based editor and\n"
 "commenting."
 msgstr ""
 
-#: gnu/packages/web.scm:4904
+#: gnu/packages/web.scm:5109
 msgid "String internment library"
 msgstr ""
 
-#: gnu/packages/web.scm:4906
+#: gnu/packages/web.scm:5111
 msgid ""
 "LibWapcaplet provides a reference counted string internment system\n"
 "designed to store small strings and allow rapid comparison of them.  It is\n"
 "developed as part of the Netsurf project."
 msgstr ""
 
-#: gnu/packages/web.scm:4933
+#: gnu/packages/web.scm:5138
 msgid "CSS parser and selection library"
 msgstr "Bibliothèque d'analyse et de sélection de CSS"
 
-#: gnu/packages/web.scm:4935
+#: gnu/packages/web.scm:5140
 msgid ""
 "LibCSS is a CSS (Cascading Style Sheet) parser and selection engine,\n"
 "written in C.  It is developed as part of the NetSurf project."
 msgstr ""
 
-#: gnu/packages/web.scm:4969
+#: gnu/packages/web.scm:5173
 msgid "C library for reading and writing YAML"
 msgstr "Bibliothèque C pour lire et écrire du YAML"
 
-#: gnu/packages/web.scm:4971
+#: gnu/packages/web.scm:5175
 msgid ""
 "LibCYAML is a C library written in ISO C11 for reading and writing\n"
 "structured YAML documents.  The fundamental idea behind CYAML is to allow\n"
@@ -26408,21 +29342,21 @@ msgid ""
 "in which the loaded data is arranged in memory."
 msgstr ""
 
-#: gnu/packages/web.scm:5009
+#: gnu/packages/web.scm:5213
 msgid "Implementation of the W3C DOM"
 msgstr ""
 
-#: gnu/packages/web.scm:5011
+#: gnu/packages/web.scm:5215
 msgid ""
 "LibDOM is an implementation of the W3C DOM, written in C.  It is\n"
 "developed as part of the NetSurf project."
 msgstr ""
 
-#: gnu/packages/web.scm:5038
+#: gnu/packages/web.scm:5242
 msgid "Library for parsing SVG files"
 msgstr "Bibliothèque pour analyser des fichiers SVG"
 
-#: gnu/packages/web.scm:5040
+#: gnu/packages/web.scm:5244
 msgid ""
 "Libsvgtiny takes some SVG as input and returns a list of paths and texts\n"
 "which can be rendered easily, as defined in\n"
@@ -26430,105 +29364,105 @@ msgid ""
 "project."
 msgstr ""
 
-#: gnu/packages/web.scm:5063
+#: gnu/packages/web.scm:5267
 msgid "Decoding library for BMP and ICO files"
 msgstr ""
 
-#: gnu/packages/web.scm:5065
+#: gnu/packages/web.scm:5269
 msgid ""
 "Libnsbmp is a decoding library for BMP and ICO image file formats,\n"
 "written in C.  It is developed as part of the NetSurf project."
 msgstr ""
 
-#: gnu/packages/web.scm:5086
+#: gnu/packages/web.scm:5290
 msgid "Decoding library for GIF files"
 msgstr ""
 
-#: gnu/packages/web.scm:5088
+#: gnu/packages/web.scm:5292
 msgid ""
 "Libnsgif is a decoding library for the GIF image file format, written in\n"
 "C.  It is developed as part of the NetSurf project."
 msgstr ""
 
-#: gnu/packages/web.scm:5113
+#: gnu/packages/web.scm:5317
 msgid "Logging library"
 msgstr "Bibliothèque de journalisation"
 
-#: gnu/packages/web.scm:5115
+#: gnu/packages/web.scm:5319
 msgid ""
 "Libnslog provides a category-based logging library which supports\n"
 "complex logging filters, multiple log levels, and provides context through to\n"
 "client applications.  It is developed as part of the NetSurf project."
 msgstr ""
 
-#: gnu/packages/web.scm:5137
+#: gnu/packages/web.scm:5341
 msgid "Utility library for NetSurf"
 msgstr ""
 
-#: gnu/packages/web.scm:5139
+#: gnu/packages/web.scm:5343
 msgid ""
 "Libnsutils provides a small number of useful utility routines.  It is\n"
 "developed as part of the NetSurf project."
 msgstr ""
 
-#: gnu/packages/web.scm:5160
+#: gnu/packages/web.scm:5364
 msgid "Library to generate a static Public Suffix List"
 msgstr ""
 
-#: gnu/packages/web.scm:5162
+#: gnu/packages/web.scm:5366
 msgid ""
 "Libnspsl is a library to generate a static code representation of the\n"
 "Public Suffix List.  It is developed as part of the NetSurf project."
 msgstr ""
 
-#: gnu/packages/web.scm:5188
+#: gnu/packages/web.scm:5392
 msgid "Generate JavaScript to DOM bindings"
 msgstr ""
 
-#: gnu/packages/web.scm:5190
+#: gnu/packages/web.scm:5394
 msgid ""
 "@code{nsgenbind} is a tool to generate JavaScript to DOM bindings from\n"
 "w3c webidl files and a binding configuration file."
 msgstr ""
 
-#: gnu/packages/web.scm:5311
+#: gnu/packages/web.scm:5515
 msgid "Web browser"
 msgstr ""
 
-#: gnu/packages/web.scm:5313
+#: gnu/packages/web.scm:5517
 msgid ""
 "NetSurf is a lightweight web browser that has its own layout and\n"
 "rendering engine entirely written from scratch.  It is small and capable of\n"
 "handling many of the web standards in use today."
 msgstr ""
 
-#: gnu/packages/web.scm:5354
+#: gnu/packages/web.scm:5558
 msgid "Unix command line interface to the www"
 msgstr ""
 
-#: gnu/packages/web.scm:5355
+#: gnu/packages/web.scm:5559
 msgid ""
 "Surfraw (Shell Users' Revolutionary Front Rage Against the Web)\n"
 "provides a unix command line interface to a variety of popular www search engines\n"
 "and similar services."
 msgstr ""
 
-#: gnu/packages/web.scm:5386
+#: gnu/packages/web.scm:5590
 msgid "Simple static web server"
 msgstr ""
 
-#: gnu/packages/web.scm:5387
+#: gnu/packages/web.scm:5591
 msgid ""
 "darkhttpd is a simple static web server.  It is\n"
 "standalone and does not need inetd or ucspi-tcp.  It does not need any\n"
 "config files---you only have to specify the www root."
 msgstr ""
 
-#: gnu/packages/web.scm:5418
+#: gnu/packages/web.scm:5622
 msgid "Analyze Web server logs in real time"
 msgstr ""
 
-#: gnu/packages/web.scm:5420
+#: gnu/packages/web.scm:5624
 msgid ""
 "GoAccess is a real-time web log analyzer and interactive viewer that\n"
 "runs in a terminal or through your browser.  It provides fast and valuable\n"
@@ -26536,11 +29470,23 @@ msgid ""
 "on the fly."
 msgstr ""
 
-#: gnu/packages/web.scm:5456
+#: gnu/packages/web.scm:5676
+msgid "Scalable TLS proxy"
+msgstr ""
+
+#: gnu/packages/web.scm:5678
+msgid ""
+"Hitch is a performant TLS proxy based on @code{libev}.  It terminates\n"
+"SSL/TLS connections and forwards the unencrypted traffic to a backend such\n"
+"as a web server.  It is designed to handle many thousand connections on\n"
+"multicore machines."
+msgstr ""
+
+#: gnu/packages/web.scm:5714
 msgid "Tunnel data connections through HTTP requests"
 msgstr ""
 
-#: gnu/packages/web.scm:5457
+#: gnu/packages/web.scm:5715
 msgid ""
 "httptunnel creates a bidirectional virtual data connection\n"
 "tunnelled through HTTP (HyperText Transfer Protocol) requests.  This can be\n"
@@ -26549,11 +29495,11 @@ msgid ""
 "tools like SSH (Secure Shell) to reach the outside world."
 msgstr ""
 
-#: gnu/packages/web.scm:5503
+#: gnu/packages/web.scm:5761
 msgid "TLS proxy for clients or servers"
 msgstr ""
 
-#: gnu/packages/web.scm:5504
+#: gnu/packages/web.scm:5762
 msgid ""
 "Stunnel is a proxy designed to add TLS encryption\n"
 "functionality to existing clients and servers without any changes in the\n"
@@ -26562,11 +29508,11 @@ msgid ""
 "deployments."
 msgstr ""
 
-#: gnu/packages/web.scm:5574
+#: gnu/packages/web.scm:5832
 msgid "Web application accelerator"
 msgstr ""
 
-#: gnu/packages/web.scm:5576
+#: gnu/packages/web.scm:5834
 msgid ""
 "Varnish is a high-performance HTTP accelerator.  It acts as a caching\n"
 "reverse proxy and load balancer.  You install it in front of any server that\n"
@@ -26574,22 +29520,22 @@ msgid ""
 "configuration language."
 msgstr ""
 
-#: gnu/packages/web.scm:5604
+#: gnu/packages/web.scm:5862
 msgid "Collection of Varnish modules"
 msgstr "Collection de modules Varnish"
 
-#: gnu/packages/web.scm:5606
+#: gnu/packages/web.scm:5864
 msgid ""
 "This package provides a collection of modules (@dfn{vmods}) for the Varnish\n"
-"cache server, extending the @dfn{Varnish Configuration Language} (VCL) with\n"
+"cache server, extending the @acronym{VCL, Varnish Configuration Language} with\n"
 "additional capabilities."
 msgstr ""
 
-#: gnu/packages/web.scm:5635
+#: gnu/packages/web.scm:5893
 msgid "Internet services daemon"
 msgstr ""
 
-#: gnu/packages/web.scm:5636
+#: gnu/packages/web.scm:5894
 msgid ""
 "@code{xinetd}, a more secure replacement for @code{inetd},\n"
 "listens for incoming requests over a network and launches the appropriate\n"
@@ -26598,11 +29544,11 @@ msgid ""
 "used to start services with both privileged and non-privileged port numbers."
 msgstr ""
 
-#: gnu/packages/web.scm:5681
+#: gnu/packages/web.scm:5939
 msgid "HTML Tidy with HTML5 support"
 msgstr ""
 
-#: gnu/packages/web.scm:5683
+#: gnu/packages/web.scm:5941
 msgid ""
 "Tidy is a console application which corrects and cleans up\n"
 "HTML and XML documents by fixing markup errors and upgrading\n"
@@ -26613,22 +29559,22 @@ msgid ""
 "functions of Tidy."
 msgstr ""
 
-#: gnu/packages/web.scm:5746
+#: gnu/packages/web.scm:6004
 msgid "Webserver with focus on security"
 msgstr ""
 
-#: gnu/packages/web.scm:5748
+#: gnu/packages/web.scm:6006
 msgid ""
 "Hiawatha has been written with security in mind.\n"
 "Features include the ability to stop SQL injections, XSS and CSRF attacks and\n"
 "exploit attempts."
 msgstr ""
 
-#: gnu/packages/web.scm:5772
+#: gnu/packages/web.scm:6030
 msgid "HTTP request and response service"
 msgstr ""
 
-#: gnu/packages/web.scm:5773
+#: gnu/packages/web.scm:6031
 msgid ""
 "Testing an HTTP Library can become difficult sometimes.\n"
 "@code{RequestBin} is fantastic for testing POST requests, but doesn't let you control the\n"
@@ -26636,22 +29582,22 @@ msgid ""
 "JSON-encoded."
 msgstr ""
 
-#: gnu/packages/web.scm:5801
+#: gnu/packages/web.scm:6059
 msgid "Test your HTTP library against a local copy of httpbin"
 msgstr ""
 
-#: gnu/packages/web.scm:5803
+#: gnu/packages/web.scm:6061
 msgid ""
 "@code{Pytest-httpbin} creates a @code{pytest} fixture that is dependency-injected\n"
 "into your tests.  It automatically starts up a HTTP server in a separate thread running\n"
 "@code{httpbin} and provides your test with the URL in the fixture."
 msgstr ""
 
-#: gnu/packages/web.scm:5848
+#: gnu/packages/web.scm:6134
 msgid "HTTP request/response parser for C"
 msgstr ""
 
-#: gnu/packages/web.scm:5849
+#: gnu/packages/web.scm:6135
 msgid ""
 "This is a parser for HTTP messages written in C.  It parses\n"
 "both requests and responses.  The parser is designed to be used in\n"
@@ -26661,64 +29607,64 @@ msgid ""
 "message stream (in a web server that is per connection)."
 msgstr ""
 
-#: gnu/packages/web.scm:5882
+#: gnu/packages/web.scm:6168
 msgid "HTTP client mock for Python"
 msgstr ""
 
-#: gnu/packages/web.scm:5883
+#: gnu/packages/web.scm:6169
 msgid ""
 "@code{httpretty} is a helper for faking web requests,\n"
 "inspired by Ruby's @code{fakeweb}."
 msgstr ""
 
-#: gnu/packages/web.scm:5901
+#: gnu/packages/web.scm:6186
 msgid "Output JSON from a shell"
 msgstr ""
 
-#: gnu/packages/web.scm:5902
+#: gnu/packages/web.scm:6187
 msgid ""
 "jo is a command-line utility to create JSON objects or\n"
 "arrays.  It creates a JSON string on stdout from words provided as\n"
 "command-line arguments or read from stdin."
 msgstr ""
 
-#: gnu/packages/web.scm:5962
+#: gnu/packages/web.scm:6247
 msgid "Command-line interface to archive.org"
 msgstr "Interface en ligne de commande pour archive.org"
 
-#: gnu/packages/web.scm:5963
+#: gnu/packages/web.scm:6248
 msgid ""
 "@code{ia} is a command-line tool for using\n"
 "@url{archive.org} from the command-line.  It also emplements the\n"
 "internetarchive python module for programmatic access to archive.org."
 msgstr ""
 
-#: gnu/packages/web.scm:6013
+#: gnu/packages/web.scm:6298
 msgid "Search code snippets on @url{https://commandlinefu.com}"
 msgstr ""
 
-#: gnu/packages/web.scm:6014
+#: gnu/packages/web.scm:6299
 msgid ""
 "@code{clf} is a command line tool for searching code\n"
 "snippets on @url{https://commandlinefu.com}."
 msgstr ""
 
-#: gnu/packages/web.scm:6047
+#: gnu/packages/web.scm:6332
 msgid "Generate Atom feeds for social networking websites"
 msgstr ""
 
-#: gnu/packages/web.scm:6048
+#: gnu/packages/web.scm:6333
 msgid ""
 "rss-bridge generates Atom feeds for social networking\n"
 "websites lacking feeds.  Supported websites include Facebook, Twitter,\n"
 "Instagram and YouTube."
 msgstr ""
 
-#: gnu/packages/web.scm:6102
+#: gnu/packages/web.scm:6387
 msgid "Check websites for broken links"
 msgstr ""
 
-#: gnu/packages/web.scm:6103
+#: gnu/packages/web.scm:6388
 msgid ""
 "LinkChecker is a website validator.  It checks for broken\n"
 "links in websites.  It is recursive and multithreaded providing output in\n"
@@ -26727,99 +29673,99 @@ msgid ""
 "file links."
 msgstr ""
 
-#: gnu/packages/web.scm:6139
+#: gnu/packages/web.scm:6424
 msgid "Command-line WebDAV client"
 msgstr ""
 
-#: gnu/packages/web.scm:6141
+#: gnu/packages/web.scm:6426
 msgid ""
 "Cadaver is a command-line WebDAV client for Unix.  It supports\n"
 "file upload, download, on-screen display, namespace operations (move/copy),\n"
 "collection creation and deletion, and locking operations."
 msgstr ""
 
-#: gnu/packages/web.scm:6159
+#: gnu/packages/web.scm:6444
 msgid "Universal Binary JSON encoder/decoder"
 msgstr ""
 
-#: gnu/packages/web.scm:6161
+#: gnu/packages/web.scm:6446
 msgid ""
 "Py-ubjson is a Python module providing an Universal Binary JSON\n"
 "encoder/decoder based on the draft-12 specification for UBJSON."
 msgstr ""
 
-#: gnu/packages/web.scm:6255
+#: gnu/packages/web.scm:6540
 msgid ""
 "Java Servlet, JavaServer Pages, Java Expression Language and Java\n"
 "WebSocket"
 msgstr ""
 
-#: gnu/packages/web.scm:6257
+#: gnu/packages/web.scm:6542
 msgid ""
 "Apache Tomcat is a free implementation of the Java\n"
 "Servlet, JavaServer Pages, Java Expression Language and Java WebSocket\n"
 "technologies."
 msgstr ""
 
-#: gnu/packages/web.scm:6308
+#: gnu/packages/web.scm:6595
 msgid "Helper classes for jetty tests"
 msgstr ""
 
-#: gnu/packages/web.scm:6309
+#: gnu/packages/web.scm:6596
 msgid ""
 "This package contains helper classes for testing the Jetty\n"
 "Web Server."
 msgstr ""
 
-#: gnu/packages/web.scm:6371
+#: gnu/packages/web.scm:6658
 msgid "Utility classes for Jetty"
 msgstr ""
 
-#: gnu/packages/web.scm:6372
+#: gnu/packages/web.scm:6659
 msgid ""
 "The Jetty Web Server provides an HTTP server and Servlet\n"
 "container capable of serving static and dynamic content either from a standalone\n"
 "or embedded instantiation.  This package provides utility classes."
 msgstr ""
 
-#: gnu/packages/web.scm:6443
+#: gnu/packages/web.scm:6730
 msgid "Jetty :: IO Utility"
 msgstr ""
 
-#: gnu/packages/web.scm:6444
+#: gnu/packages/web.scm:6731
 msgid ""
 "The Jetty Web Server provides an HTTP server and Servlet\n"
 "container capable of serving static and dynamic content either from a standalone\n"
 "or embedded instantiation.  This package provides IO-related utility classes."
 msgstr ""
 
-#: gnu/packages/web.scm:6487
+#: gnu/packages/web.scm:6774
 msgid "Jetty :: Http Utility"
 msgstr ""
 
-#: gnu/packages/web.scm:6488
+#: gnu/packages/web.scm:6775
 msgid ""
 "The Jetty Web Server provides an HTTP server and Servlet\n"
 "container capable of serving static and dynamic content either from a standalone\n"
 "or embedded instantiation.  This package provides HTTP-related utility classes."
 msgstr ""
 
-#: gnu/packages/web.scm:6521
+#: gnu/packages/web.scm:6808
 msgid "Jetty :: JMX Management"
 msgstr ""
 
-#: gnu/packages/web.scm:6522
+#: gnu/packages/web.scm:6809
 msgid ""
 "The Jetty Web Server provides an HTTP server and Servlet\n"
 "container capable of serving static and dynamic content either from a standalone\n"
 "or embedded instantiation.  This package provides the JMX management."
 msgstr ""
 
-#: gnu/packages/web.scm:6609
+#: gnu/packages/web.scm:6896
 msgid "Core jetty server artifact"
 msgstr ""
 
-#: gnu/packages/web.scm:6610
+#: gnu/packages/web.scm:6897
 msgid ""
 "The Jetty Web Server provides an HTTP server and Servlet\n"
 "container capable of serving static and dynamic content either from a standalone\n"
@@ -26827,11 +29773,11 @@ msgid ""
 "artifact."
 msgstr ""
 
-#: gnu/packages/web.scm:6654
+#: gnu/packages/web.scm:6941
 msgid "Jetty security infrastructure"
 msgstr ""
 
-#: gnu/packages/web.scm:6655
+#: gnu/packages/web.scm:6942
 msgid ""
 "The Jetty Web Server provides an HTTP server and Servlet\n"
 "container capable of serving static and dynamic content either from a standalone\n"
@@ -26839,11 +29785,11 @@ msgid ""
 "infrastructure"
 msgstr ""
 
-#: gnu/packages/web.scm:6698
+#: gnu/packages/web.scm:6985
 msgid "Jetty Servlet Container"
 msgstr ""
 
-#: gnu/packages/web.scm:6699
+#: gnu/packages/web.scm:6986
 msgid ""
 "The Jetty Web Server provides an HTTP server and Servlet\n"
 "container capable of serving static and dynamic content either from a standalone\n"
@@ -26851,22 +29797,22 @@ msgid ""
 "container."
 msgstr ""
 
-#: gnu/packages/web.scm:6865
+#: gnu/packages/web.scm:7152
 msgid "HTML parser"
 msgstr "Analyse d'HTML"
 
-#: gnu/packages/web.scm:6866
+#: gnu/packages/web.scm:7153
 msgid ""
 "Jsoup is a Java library for working with real-world HTML.  It\n"
 "provides a very convenient API for extracting and manipulating data, using the\n"
 "best of DOM, CSS, and jQuery-like methods."
 msgstr ""
 
-#: gnu/packages/web.scm:6894
+#: gnu/packages/web.scm:7181
 msgid "Lightweight client-side OAuth library for Java"
 msgstr ""
 
-#: gnu/packages/web.scm:6895
+#: gnu/packages/web.scm:7182
 msgid ""
 "Signpost is the easy and intuitive solution for signing\n"
 "HTTP messages on the Java platform in conformance with the OAuth Core 1.0a\n"
@@ -26874,11 +29820,11 @@ msgid ""
 "combine it with different HTTP messaging layers."
 msgstr ""
 
-#: gnu/packages/web.scm:6917
+#: gnu/packages/web.scm:7204
 msgid "Validate HTML"
 msgstr ""
 
-#: gnu/packages/web.scm:6918
+#: gnu/packages/web.scm:7205
 msgid ""
 "Tidyp is a program that can validate your HTML, as well as\n"
 "modify it to be more clean and standard.  tidyp does not validate HTML 5.\n"
@@ -26888,22 +29834,22 @@ msgid ""
 "based on this library, allowing Perl programmers to easily validate HTML."
 msgstr ""
 
-#: gnu/packages/web.scm:6959
+#: gnu/packages/web.scm:7246
 msgid "(X)HTML validation in a Perl object"
 msgstr ""
 
-#: gnu/packages/web.scm:6960
+#: gnu/packages/web.scm:7247
 msgid ""
 "@code{HTML::Tidy} is an HTML checker in a handy dandy\n"
 "object.  It's meant as a replacement for @code{HTML::Lint}, which is written\n"
 "in Perl but is not nearly as capable as @code{HTML::Tidy}."
 msgstr ""
 
-#: gnu/packages/web.scm:6987
+#: gnu/packages/web.scm:7274
 msgid "Small Gopher server"
 msgstr ""
 
-#: gnu/packages/web.scm:6989
+#: gnu/packages/web.scm:7276
 msgid ""
 "Geomyidae is a server for distributed hypertext protocol Gopher.  Its\n"
 "features include:\n"
@@ -26917,22 +29863,22 @@ msgid ""
 "@end enumerate\n"
 msgstr ""
 
-#: gnu/packages/web.scm:7036
+#: gnu/packages/web.scm:7323
 msgid "Random avatar generator"
 msgstr ""
 
-#: gnu/packages/web.scm:7037
+#: gnu/packages/web.scm:7324
 msgid ""
 "Cat avatar generator is a generator of cat pictures optimised\n"
 "to generate random avatars, or defined avatar from a \"seed\".  This is a\n"
 "derivation by David Revoy from the original MonsterID by Andreas Gohr."
 msgstr ""
 
-#: gnu/packages/web.scm:7100
+#: gnu/packages/web.scm:7392
 msgid "HTTP/2 protocol client, proxy, server, and library"
 msgstr ""
 
-#: gnu/packages/web.scm:7102
+#: gnu/packages/web.scm:7394
 msgid ""
 "nghttp2 implements the Hypertext Transfer Protocol, version\n"
 "2 (@dfn{HTTP/2}).\n"
@@ -26958,22 +29904,22 @@ msgid ""
 "@end itemize\n"
 msgstr ""
 
-#: gnu/packages/web.scm:7229
+#: gnu/packages/web.scm:7509
 msgid "Web interface for cluster deployments of Guix"
 msgstr ""
 
-#: gnu/packages/web.scm:7230
+#: gnu/packages/web.scm:7510
 msgid ""
 "Hpcguix-web provides a web interface to the list of packages\n"
 "provided by Guix.  The list of packages is searchable and provides\n"
 "instructions on how to use Guix in a shared HPC environment."
 msgstr ""
 
-#: gnu/packages/web.scm:7251
+#: gnu/packages/web.scm:7531
 msgid "Easy-to-use offline browser utility"
 msgstr ""
 
-#: gnu/packages/web.scm:7252
+#: gnu/packages/web.scm:7532
 msgid ""
 "HTTrack allows you to download a World Wide Web site from\n"
 "the Internet to a local directory, building recursively all directories,\n"
@@ -26987,11 +29933,24 @@ msgid ""
 "HTTrack is fully configurable, and has an integrated help system."
 msgstr ""
 
-#: gnu/packages/web.scm:7276
+#: gnu/packages/web.scm:7566
+msgid "Bookmark manager"
+msgstr ""
+
+#: gnu/packages/web.scm:7568
+msgid ""
+"buku is a powerful bookmark manager written in Python3 and SQLite3.\n"
+"@command{buku} can auto-import bookmarks from your browser and present them\n"
+"in an interactive command-line interface that lets you compose and update\n"
+"bookmarks directly.  It can also present them in a web interface with\n"
+"@command{bukuserver}."
+msgstr ""
+
+#: gnu/packages/web.scm:7587
 msgid "Anonymize IP addresses in log files"
 msgstr ""
 
-#: gnu/packages/web.scm:7278
+#: gnu/packages/web.scm:7589
 msgid ""
 "Anonip masks the last bits of IPv4 and IPv6 addresses in log files.\n"
 "That way most of the relevant information is preserved, while the IP address\n"
@@ -27006,11 +29965,11 @@ msgid ""
 "Anonip can also be uses as a Python module in your own Python application."
 msgstr ""
 
-#: gnu/packages/web.scm:7312
+#: gnu/packages/web.scm:7623
 msgid "Lightweight asynchronous task execution service"
 msgstr ""
 
-#: gnu/packages/web.scm:7313
+#: gnu/packages/web.scm:7624
 msgid ""
 "Poussetaches (which literally means \"push tasks\" in\n"
 "French) is a lightweight asynchronous task execution service that aims to\n"
@@ -27022,11 +29981,11 @@ msgid ""
 "returned."
 msgstr ""
 
-#: gnu/packages/web.scm:7337
+#: gnu/packages/web.scm:7648
 msgid "Simple non-validating CSS1 and HTML parser for C++"
 msgstr ""
 
-#: gnu/packages/web.scm:7338
+#: gnu/packages/web.scm:7649
 msgid ""
 "htmlcxx is a simple non-validating CSS1 and HTML parser for\n"
 "C++.  Although there are several other HTML parsers available, htmlcxx has some\n"
@@ -27044,11 +30003,11 @@ msgid ""
 "@end itemize"
 msgstr ""
 
-#: gnu/packages/web.scm:7381
+#: gnu/packages/web.scm:7692
 msgid "HTML/CSS user interface library"
 msgstr "Bibliothèque d'interface utilisateur HTML/CSS"
 
-#: gnu/packages/web.scm:7382
+#: gnu/packages/web.scm:7693
 msgid ""
 "libRocket is a C++ user interface package based on the HTML\n"
 "and CSS standards.  libRocket uses the open standards XHTML1.0 and\n"
@@ -27065,6 +30024,14 @@ msgid ""
 "@end itemize\n"
 msgstr ""
 
+#: gnu/packages/web.scm:7744
+msgid "Simple Gemini protocol server"
+msgstr "Serveur simple pour le protocole Gemini"
+
+#: gnu/packages/web.scm:7745
+msgid "gmnisrv is a simple Gemini protocol server written in C."
+msgstr ""
+
 #: gnu/packages/wordnet.scm:92
 msgid "Lexical database for the English language"
 msgstr "Base de données lexicale pour la langue anglaise"
@@ -27095,7 +30062,7 @@ msgstr ""
 
 #: gnu/packages/xiph.scm:77
 msgid ""
-"The libogg library allows to manipulate the ogg multimedia container\n"
+"The libogg library manipulates the ogg multimedia container\n"
 "format, which encapsulates raw compressed data and allows the interleaving of\n"
 "audio and video data.  In addition to encapsulation and interleaving of\n"
 "multiple data streams, ogg provides packet framing, error detection, and\n"
@@ -27233,7 +30200,7 @@ msgstr ""
 "ogginfo, pour obtenir des informations (tags, débit, longueur, etc) à propos\n"
 "         d'un fichier ogg vorbis."
 
-#: gnu/packages/xiph.scm:364 gnu/packages/xiph.scm:430
+#: gnu/packages/xiph.scm:364 gnu/packages/xiph.scm:432
 msgid "Versatile audio codec"
 msgstr "Codec audio polyvalent"
 
@@ -27266,7 +30233,7 @@ msgstr ""
 "Opus-tools fournit des utilitaires en ligne de commande pour créer, inspecter\n"
 "et décoder des fichiers .opus."
 
-#: gnu/packages/xiph.scm:432
+#: gnu/packages/xiph.scm:434
 msgid ""
 "The opusfile library provides seeking, decode, and playback of Opus\n"
 "streams in the Ogg container (.opus files) including over http(s) on posix and\n"
@@ -27276,21 +30243,21 @@ msgstr ""
 "flux Opus dans le conteneur Ogg (fichiers .opus) notamment par http(s) sur les\n"
 "systèmes posix et windows."
 
-#: gnu/packages/xiph.scm:454
+#: gnu/packages/xiph.scm:456
 msgid "Library for encoding Opus audio files and streams "
 msgstr "Bibliothèque pour encoder des des fichiers audios et des flux Opus"
 
-#: gnu/packages/xiph.scm:455
+#: gnu/packages/xiph.scm:457
 msgid ""
 "The libopusenc libraries provide a high-level API for\n"
 "encoding Opus files and streams."
 msgstr ""
 
-#: gnu/packages/xiph.scm:484
+#: gnu/packages/xiph.scm:486
 msgid "Streaming media server"
 msgstr "Serveur de flux multimédia"
 
-#: gnu/packages/xiph.scm:485
+#: gnu/packages/xiph.scm:487
 msgid ""
 "Icecast is a streaming media server which currently supports\n"
 "Ogg (Vorbis and Theora), Opus, WebM and MP3 audio streams.  It can be used to\n"
@@ -27302,11 +30269,11 @@ msgstr ""
 "utilisé pour créer une station radio internet ou un jukebox privé et bien\n"
 "d'autres choses."
 
-#: gnu/packages/xiph.scm:513
+#: gnu/packages/xiph.scm:515
 msgid "Audio streaming library for icecast encoders"
 msgstr "Bibliothèque de streaming audio pour les encodeurs icecast"
 
-#: gnu/packages/xiph.scm:515
+#: gnu/packages/xiph.scm:517
 msgid ""
 "Libshout is a library for communicating with and sending data to an\n"
 "icecast server.  It handles the socket connection, the timing of the data,\n"
@@ -27316,21 +30283,7 @@ msgstr ""
 "un serveur icecast.  Il prend en charge la connexion, la synchronisation des\n"
 "données et évite que de mauvaises données n'atteignent le serveur icecast."
 
-#: gnu/services/base.scm:304
-msgid ""
-"The @code{user-processes} service is responsible for\n"
-"terminating all the processes so that the root file system can be re-mounted\n"
-"read-only, just before rebooting/halting.  Processes still running after a few\n"
-"seconds after @code{SIGTERM} has been sent are terminated with\n"
-"@code{SIGKILL}."
-msgstr ""
-"Le service @code{user-processes} est responsable de la terminaison\n"
-"des processus pour que le système de fichiers racine puisse être remonté\n"
-"en lecture-seule juste avant de redémarrer ou de s'éteindre.  Les processus qui\n"
-"tournent toujours quelques secondes après qu'un @code{SIGTERM} leur ait été\n"
-"envoyé sont terminés avec @code{SIGKILL}."
-
-#: gnu/services/base.scm:356
+#: gnu/services/base.scm:238
 msgid ""
 "Populate the @file{/etc/fstab} based on the given file\n"
 "system objects."
@@ -27338,7 +30291,7 @@ msgstr ""
 "Rempli @file{/etc/fstab} en fonction des objets de systèmes de\n"
 "fichiers donnés."
 
-#: gnu/services/base.scm:550
+#: gnu/services/base.scm:432
 msgid ""
 "Provide Shepherd services to mount and unmount the given\n"
 "file systems, as well as corresponding @file{/etc/fstab} entries."
@@ -27346,7 +30299,7 @@ msgstr ""
 "Fournit des services Shepherd pour monter et démonter les systèmes\n"
 "de fichiers donnés, ainsi que les entrées @file{/etc/fstab} correspondantes."
 
-#: gnu/services/base.scm:648
+#: gnu/services/base.scm:530
 msgid ""
 "Seed the @file{/dev/urandom} pseudo-random number\n"
 "generator (RNG) with the value recorded when the system was last shut\n"
@@ -27355,7 +30308,7 @@ msgstr ""
 "Initialise le générateur de nombres pseudo-aléatoires (PRNG) @file{/dev/urandom}\n"
 "avec la valeur enregistrée lors de la dernière extinction du système."
 
-#: gnu/services/base.scm:814
+#: gnu/services/base.scm:696
 msgid ""
 "Install the given fonts on the specified ttys (fonts are per\n"
 "virtual console on GNU/Linux).  The value of this service is a list of\n"
@@ -27373,7 +30326,7 @@ msgid ""
 "@end example\n"
 msgstr ""
 
-#: gnu/services/base.scm:866
+#: gnu/services/base.scm:748
 msgid ""
 "Provide a console log-in service as specified by its\n"
 "configuration value, a @code{login-configuration} object."
@@ -27381,19 +30334,19 @@ msgstr ""
 "Fournit un service de connexion en console tel que spécifié par sa\n"
 "valeur de configuration, un objet @code{login-configuration}."
 
-#: gnu/services/base.scm:1134
+#: gnu/services/base.scm:1016
 msgid ""
 "Provide console login using the @command{agetty}\n"
 "program."
 msgstr "Fournit la connexion en console avec le programme @command{agetty}."
 
-#: gnu/services/base.scm:1195
+#: gnu/services/base.scm:1077
 msgid ""
 "Provide console login using the @command{mingetty}\n"
 "program."
 msgstr "Fournit la connexion en console avec le programme @command{mingetty}."
 
-#: gnu/services/base.scm:1412
+#: gnu/services/base.scm:1294
 msgid ""
 "Runs libc's @dfn{name service cache daemon} (nscd) with the\n"
 "given configuration---an @code{<nscd-configuration>} object.  @xref{Name\n"
@@ -27403,7 +30356,7 @@ msgstr ""
 "configuration donnée — un objet @code{<nscd-configuration>}.  @xref{Name\n"
 "Service Switch}, pour un exemple."
 
-#: gnu/services/base.scm:1519
+#: gnu/services/base.scm:1401
 msgid ""
 "Install the specified resource usage limits by populating\n"
 "@file{/etc/security/limits.conf} and using the @code{pam_limits}\n"
@@ -27413,11 +30366,11 @@ msgstr ""
 "en remplissant @file{/etc/security/limits.conf} et en utilisant le module\n"
 "d'authentification @code{pam_limits}."
 
-#: gnu/services/base.scm:1799
+#: gnu/services/base.scm:1716
 msgid "Run the build daemon of GNU@tie{}Guix, aka. @command{guix-daemon}."
 msgstr "Lance le démon de construction de GNU@tie{}Guix, c'est à dire @command{guix-daemon}."
 
-#: gnu/services/base.scm:1938
+#: gnu/services/base.scm:1861
 msgid ""
 "Add a Shepherd service running @command{guix publish}, a\n"
 "command that allows you to share pre-built binaries with others over HTTP."
@@ -27425,7 +30378,7 @@ msgstr ""
 "Ajout un service Shepher qui lance @command{guix publish}, une\n"
 "commande qui vous permet de partager les binaires préconstruits sur HTTP."
 
-#: gnu/services/base.scm:2157
+#: gnu/services/base.scm:2080
 msgid ""
 "Run @command{udev}, which populates the @file{/dev}\n"
 "directory dynamically.  Get extra rules from the packages listed in the\n"
@@ -27435,7 +30388,7 @@ msgstr ""
 "dynamiquement.  Il prend des règles supplémentaires des paquets listés\n"
 "dans le champ @code{rules} de sa valeur, un objet @code{udev-configuration}."
 
-#: gnu/services/base.scm:2239
+#: gnu/services/base.scm:2212
 msgid ""
 "Run GPM, the general-purpose mouse daemon, with the given\n"
 "command-line options.  GPM allows users to use the mouse in the console,\n"
@@ -27448,7 +30401,7 @@ msgstr ""
 "par défaut utilisent le protocole @code{ps2} qui fonctionne aussi bien pour les\n"
 "souris USB que PS/2."
 
-#: gnu/services/base.scm:2423
+#: gnu/services/base.scm:2396
 msgid ""
 "Turn up the specified network interfaces upon startup,\n"
 "with the given IP address, gateway, netmask, and so on.  The value for\n"
@@ -27460,7 +30413,7 @@ msgstr ""
 "services de ce type est une liste d'objets @code{static-networking}, un par\n"
 "interface réseau."
 
-#: gnu/services/certbot.scm:197
+#: gnu/services/certbot.scm:202
 msgid ""
 "Automatically renew @url{https://letsencrypt.org, Let's\n"
 "Encrypt} HTTPS certificates by adjusting the nginx web server configuration\n"
@@ -27470,7 +30423,13 @@ msgstr ""
 "Encrypt} en ajustant la configuration du serveur web nginx et en invoquant\n"
 "périodiquement @command{certbot}."
 
-#: gnu/services/networking.scm:479
+#: gnu/services/networking.scm:341
+msgid ""
+"Run a DHCP (Dynamic Host Configuration Protocol) daemon.  The\n"
+"daemon is responsible for allocating IP addresses to its client."
+msgstr ""
+
+#: gnu/services/networking.scm:496
 msgid ""
 "Run the @command{ntpd}, the Network Time Protocol (NTP)\n"
 "daemon of the @uref{http://www.ntp.org, Network Time Foundation}.  The daemon\n"
@@ -27480,7 +30439,7 @@ msgstr ""
 "(NTP) de la @uref{http://www.ntp.org, Network Time Foundation}.  Le démon gardera\n"
 "l'horloge du système synchronisée avec celle du serveur donné."
 
-#: gnu/services/networking.scm:609
+#: gnu/services/networking.scm:626
 msgid ""
 "Run the @command{ntpd}, the Network Time Protocol (NTP)\n"
 "daemon, as implemented by @uref{http://www.openntpd.org, OpenNTPD}.  The\n"
@@ -27490,7 +30449,7 @@ msgstr ""
 "(NTP) implémenté par @uref{http://www.openntpd.org, OpenNTPD}.  Le démon gardera\n"
 "l'horloge du système synchronisée avec celle du serveur donné."
 
-#: gnu/services/networking.scm:697
+#: gnu/services/networking.scm:714
 msgid ""
 "Start @command{inetd}, the @dfn{Internet superserver}.  It is responsible\n"
 "for listening on Internet sockets and spawning the corresponding services on\n"
@@ -27500,7 +30459,7 @@ msgstr ""
 "de l'écoute sur des sockets Internet et du démarrage des services correspondants\n"
 "à la demande."
 
-#: gnu/services/networking.scm:876
+#: gnu/services/networking.scm:893
 msgid ""
 "Run the @uref{https://torproject.org, Tor} anonymous\n"
 "networking daemon."
@@ -27508,11 +30467,11 @@ msgstr ""
 "Lance le démon de navigation anonyme\n"
 "@uref{https://torproject.org, Tor}."
 
-#: gnu/services/networking.scm:900
+#: gnu/services/networking.scm:917
 msgid "Define a new Tor @dfn{hidden service}."
 msgstr "Définie un nouveau @dfn{service caché} Tor."
 
-#: gnu/services/networking.scm:968
+#: gnu/services/networking.scm:985
 msgid ""
 "Run @url{https://launchpad.net/wicd,Wicd}, a network\n"
 "management daemon that aims to simplify wired and wireless networking."
@@ -27520,7 +30479,7 @@ msgstr ""
 "Lance @url{https://launchpad.net/wicd,Wicd}, un démon de gestion\n"
 "de réseau qui veut simplifier les connexions filaires et sans-fil."
 
-#: gnu/services/networking.scm:1109
+#: gnu/services/networking.scm:1126
 msgid ""
 "Run @uref{https://wiki.gnome.org/Projects/NetworkManager,\n"
 "NetworkManager}, a network management daemon that aims to simplify wired and\n"
@@ -27530,7 +30489,7 @@ msgstr ""
 "NetworkManager}, une démon de gestion de réseau qui veut simplifier\n"
 "les connexions filaires et sans-fil."
 
-#: gnu/services/networking.scm:1177
+#: gnu/services/networking.scm:1195
 msgid ""
 "Run @url{https://01.org/connman,Connman},\n"
 "a network connection manager."
@@ -27538,7 +30497,7 @@ msgstr ""
 "Lance @url{https://01.org/connman,Connman}, un\n"
 "gestionnaire de connexion réseau."
 
-#: gnu/services/networking.scm:1200
+#: gnu/services/networking.scm:1218
 msgid ""
 "Run @uref{https://wiki.gnome.org/Projects/ModemManager,\n"
 "ModemManager}, a modem management daemon that aims to simplify dialup\n"
@@ -27548,7 +30507,7 @@ msgstr ""
 "ModemManager}, un démon de gestion de modem qui veut simplifier les\n"
 "connexions par ligne téléphonique."
 
-#: gnu/services/networking.scm:1290
+#: gnu/services/networking.scm:1308
 msgid ""
 "Run @uref{http://www.draisberghof.de/usb_modeswitch/,\n"
 "USB_ModeSwitch}, a mode switching tool for controlling USB devices with\n"
@@ -27559,13 +30518,23 @@ msgid ""
 "whatever the thing is supposed to do)."
 msgstr ""
 
-#: gnu/services/networking.scm:1357
+#: gnu/services/networking.scm:1379
 msgid ""
 "Run the WPA Supplicant daemon, a service that\n"
 "implements authentication, key negotiation and more for wireless networks."
 msgstr ""
 
-#: gnu/services/networking.scm:1419
+#: gnu/services/networking.scm:1440
+msgid ""
+"Run the @uref{https://w1.fi/hostapd/, hostapd} daemon for Wi-Fi access\n"
+"points and authentication servers."
+msgstr ""
+
+#: gnu/services/networking.scm:1474
+msgid "Run hostapd to simulate WiFi connectivity."
+msgstr ""
+
+#: gnu/services/networking.scm:1534
 msgid ""
 "Run @uref{http://www.openvswitch.org, Open vSwitch}, a multilayer virtual\n"
 "switch designed to enable massive network automation through programmatic\n"
@@ -27575,15 +30544,15 @@ msgstr ""
 "multi-niveau conçu pour permettre une automatisation massive du réseau via des\n"
 "extensions programmables."
 
-#: gnu/services/networking.scm:1465
+#: gnu/services/networking.scm:1580
 msgid "Run @command{iptables-restore}, setting up the specified rules."
 msgstr ""
 
-#: gnu/services/networking.scm:1534
+#: gnu/services/networking.scm:1649
 msgid "Run @command{nft}, setting up the specified ruleset."
 msgstr ""
 
-#: gnu/services/networking.scm:1635
+#: gnu/services/networking.scm:1750
 msgid ""
 "Run @url{https://pagekite.net/,PageKite}, a tunneling solution to make\n"
 "local servers publicly accessible on the web, even behind NATs and firewalls."
@@ -27595,7 +30564,7 @@ msgid ""
 "protocol."
 msgstr "Expose des répertoires Git sur le protocole TCP @code{git://} non sécurisé."
 
-#: gnu/services/version-control.scm:374
+#: gnu/services/version-control.scm:379
 msgid ""
 "Setup @command{gitolite}, a Git hosting tool providing access over SSH..\n"
 "By default, the @code{git} user is used, but this is configurable.\n"
@@ -27603,6 +30572,22 @@ msgid ""
 "provide a web interface to view selected repositories."
 msgstr ""
 
+#~ msgid "Real-time library for sampling rate conversion"
+#~ msgstr "Bibliothèque temps-réel pour la conversion de taux d'échantillonage"
+
+#~ msgid ""
+#~ "The @code{user-processes} service is responsible for\n"
+#~ "terminating all the processes so that the root file system can be re-mounted\n"
+#~ "read-only, just before rebooting/halting.  Processes still running after a few\n"
+#~ "seconds after @code{SIGTERM} has been sent are terminated with\n"
+#~ "@code{SIGKILL}."
+#~ msgstr ""
+#~ "Le service @code{user-processes} est responsable de la terminaison\n"
+#~ "des processus pour que le système de fichiers racine puisse être remonté\n"
+#~ "en lecture-seule juste avant de redémarrer ou de s'éteindre.  Les processus qui\n"
+#~ "tournent toujours quelques secondes après qu'un @code{SIGTERM} leur ait été\n"
+#~ "envoyé sont terminés avec @code{SIGKILL}."
+
 #~ msgid "Retired backup program"
 #~ msgstr "Programme de sauvegardes obsolète"
 
@@ -27634,9 +30619,6 @@ msgstr ""
 #~ "produit du C portable et efficace, supporte l'essentiel du standard R5RS et\n"
 #~ "incult de nombreuses améliorations et extensions."
 
-#~ msgid "Implementation of the Real-time transport protocol"
-#~ msgstr "Implémentation du protocole de transport en temps réel (RTTP)"
-
 #~ msgid "Macros for defining and setting keys"
 #~ msgstr "Macros pour définir et utiliser des touches"
 
@@ -27790,9 +30772,6 @@ msgstr ""
 #~ msgid "SPARQL module for Guile"
 #~ msgstr "Module SPARQL pour Guile"
 
-#~ msgid "Guile bindings to Newt"
-#~ msgstr "Liaisons Guile pour Newt"
-
 #~ msgid "Web server interface for R"
 #~ msgstr "Serveur web d'interface pour R"
 
diff --git a/scripts/guix.in b/scripts/guix.in
index 0a3ab1f64d..e0194d6ea2 100644
--- a/scripts/guix.in
+++ b/scripts/guix.in
@@ -1,4 +1,4 @@
-#!@GUILE@ \
+#!@abs_top_builddir@/guile \
 --no-auto-compile -e main -s
 !#
 ;;; GNU Guix --- Functional package management for GNU
diff --git a/tests/base32.scm b/tests/base32.scm
index 134e578633..a999edcacc 100644
--- a/tests/base32.scm
+++ b/tests/base32.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012, 2013, 2015 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012, 2013, 2015, 2020 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -23,26 +23,12 @@
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-34)
   #:use-module (srfi srfi-64)
-  #:use-module (ice-9 rdelim)
-  #:use-module (ice-9 popen)
   #:use-module (ice-9 match)
   #:use-module (rnrs bytevectors)
   #:use-module (rnrs io ports))
 
 ;; Test the (guix base32) module.
 
-(define %nix-hash
-  (or (and=> (getenv "NIX_HASH")
-             (match-lambda
-              ("" #f)
-              (val val)))
-      "nix-hash"))
-
-(define %have-nix-hash?
-  ;; Note: Use `system', not `system*', because of <http://bugs.gnu.org/13166>.
-  (false-if-exception
-   (zero? (system (string-append %nix-hash " --version")))))
-
 (test-begin "base32")
 
 (test-assert "bytevector->base32-string"
@@ -85,19 +71,4 @@
     (nix-base32-string->bytevector
      (string-append (make-string 51 #\a) "e"))))
 
-;; The following test requires `nix-hash' in $PATH.
-(unless %have-nix-hash?
-  (test-skip 1))
-
-(test-assert "sha256 & bytevector->nix-base32-string"
-  (let ((file (search-path %load-path "tests/test.drv")))
-    (equal? (bytevector->nix-base32-string
-             (sha256 (call-with-input-file file get-bytevector-all)))
-            (let* ((c (format #f "~a --type sha256 --base32 --flat \"~a\""
-                              %nix-hash file))
-                   (p (open-input-pipe c))
-                   (l (read-line p)))
-              (close-pipe p)
-              l))))
-
 (test-end)
diff --git a/tests/boot-parameters.scm b/tests/boot-parameters.scm
new file mode 100644
index 0000000000..3deae564c4
--- /dev/null
+++ b/tests/boot-parameters.scm
@@ -0,0 +1,299 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2019, 2020 Miguel Ángel Arruga Vivas <rosen644835@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/>.
+
+;;; Commentary:
+;;;
+;;; Test boot parameters value storage and compatibility.
+;;;
+;;; Code:
+
+(define-module (test-boot-parameters)
+  #:use-module (gnu bootloader)
+  #:use-module (gnu bootloader grub)
+  #:use-module (gnu system)
+  #:use-module (gnu system file-systems)
+  #:use-module (gnu system uuid)
+  #:use-module (guix gexp)
+  #:use-module (guix store)
+  #:use-module (guix tests)
+  #:use-module (srfi srfi-64)
+  #:use-module (rnrs bytevectors))
+
+(define %default-label "GNU with Linux-libre 99.1.2")
+(define %default-kernel-path
+  (string-append (%store-prefix)
+                 "/zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz-linux-libre-99.1.2"))
+(define %default-kernel
+  (string-append %default-kernel-path "/" (system-linux-image-file-name)))
+(define %default-kernel-arguments '())
+(define %default-initrd-path
+  (string-append (%store-prefix) "/wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww-initrd"))
+(define %default-initrd (string-append %default-initrd-path "/initrd.cpio.gz"))
+(define %default-root-device (uuid "abcdef12-3456-7890-abcd-ef1234567890"))
+(define %default-store-device (uuid "01234567-89ab-cdef-0123-456789abcdef"))
+(define %default-btrfs-subvolume "testfs")
+(define %default-store-directory-prefix
+  (string-append "/" %default-btrfs-subvolume))
+(define %default-store-mount-point (%store-prefix))
+(define %default-store-crypto-devices
+  (list (uuid "00000000-1111-2222-3333-444444444444")
+        (uuid "55555555-6666-7777-8888-999999999999")))
+(define %default-multiboot-modules '())
+(define %default-locale "es_ES.utf8")
+(define %root-path "/")
+
+(define %grub-boot-parameters
+  (boot-parameters
+   (bootloader-name 'grub)
+   (bootloader-menu-entries '())
+   (root-device %default-root-device)
+   (label %default-label)
+   (kernel %default-kernel)
+   (kernel-arguments %default-kernel-arguments)
+   (initrd %default-initrd)
+   (multiboot-modules %default-multiboot-modules)
+   (locale %default-locale)
+   (store-device %default-store-device)
+   (store-directory-prefix %default-store-directory-prefix)
+   (store-crypto-devices %default-store-crypto-devices)
+   (store-mount-point %default-store-mount-point)))
+
+(define %default-operating-system
+  (operating-system
+    (host-name "host")
+    (timezone "Europe/Berlin")
+    (locale %default-locale)
+
+    (bootloader (bootloader-configuration
+                 (bootloader grub-bootloader)
+                 (target "/dev/sda")))
+    (file-systems (cons* (file-system
+                           (device %default-root-device)
+                           (mount-point %root-path)
+                           (type "ext4"))
+		         (file-system
+                           (device %default-store-device)
+                           (mount-point %default-store-mount-point)
+                           (type "btrfs")
+                           (options
+                            (string-append "subvol="
+                                           %default-btrfs-subvolume)))
+                         %base-file-systems))))
+
+(define (quote-uuid uuid)
+  (list 'uuid (uuid-type uuid) (uuid-bytevector uuid)))
+
+;; Call read-boot-parameters with the desired string as input.
+(define* (test-read-boot-parameters
+          #:key
+          (version 0)
+          (bootloader-name 'grub)
+          (bootloader-menu-entries '())
+          (label %default-label)
+          (root-device (quote-uuid %default-root-device))
+          (kernel %default-kernel)
+          (kernel-arguments %default-kernel-arguments)
+          (initrd %default-initrd)
+          (multiboot-modules %default-multiboot-modules)
+          (locale %default-locale)
+          (with-store #t)
+          (store-device
+           (quote-uuid %default-store-device))
+          (store-crypto-devices
+           (map quote-uuid %default-store-crypto-devices))
+          (store-directory-prefix %default-store-directory-prefix)
+          (store-mount-point %default-store-mount-point))
+  (define (generate-boot-parameters)
+    (define (sexp-or-nothing fmt val)
+      (cond ((eq? 'false val) (format #false fmt #false))
+            (val              (format #false fmt val))
+            (else             "")))
+    (format #false "(boot-parameters~a~a~a~a~a~a~a~a~a~a)"
+            (sexp-or-nothing " (version ~S)" version)
+            (sexp-or-nothing " (label ~S)" label)
+            (sexp-or-nothing " (root-device ~S)" root-device)
+            (sexp-or-nothing " (kernel ~S)" kernel)
+            (sexp-or-nothing " (kernel-arguments ~S)" kernel-arguments)
+            (sexp-or-nothing " (initrd ~S)" initrd)
+            (if with-store
+                (format #false " (store~a~a~a~a)"
+                        (sexp-or-nothing " (device ~S)" store-device)
+                        (sexp-or-nothing " (mount-point ~S)"
+                                         store-mount-point)
+                        (sexp-or-nothing " (directory-prefix ~S)"
+                                         store-directory-prefix)
+                        (sexp-or-nothing " (crypto-devices ~S)"
+                                         store-crypto-devices))
+                "")
+            (sexp-or-nothing " (locale ~S)" locale)
+            (sexp-or-nothing " (bootloader-name ~a)" bootloader-name)
+            (sexp-or-nothing " (bootloader-menu-entries ~S)"
+                             bootloader-menu-entries)))
+  (let ((str (generate-boot-parameters)))
+    (call-with-input-string str read-boot-parameters)))
+
+(test-begin "boot-parameters")
+
+;; XXX: <warning: unrecognized boot parameters at '#f'>
+(test-assert "read, construction, mandatory fields"
+  (not (or (test-read-boot-parameters #:version #false)
+           (test-read-boot-parameters #:version 'false)
+           (test-read-boot-parameters #:version -1)
+           (test-read-boot-parameters #:version "0")
+           (test-read-boot-parameters #:root-device #false)
+           (test-read-boot-parameters #:kernel #false)
+           (test-read-boot-parameters #:label #false))))
+
+(test-assert "read, construction, optional fields"
+  (and (test-read-boot-parameters #:bootloader-name #false)
+       (test-read-boot-parameters #:bootloader-menu-entries #false)
+       (test-read-boot-parameters #:kernel-arguments #false)
+       (test-read-boot-parameters #:with-store #false)
+       (test-read-boot-parameters #:store-device #false)
+       (test-read-boot-parameters #:store-device 'false)
+       (test-read-boot-parameters #:store-crypto-devices #false)
+       (test-read-boot-parameters #:store-mount-point #false)
+       (test-read-boot-parameters #:store-directory-prefix #false)
+       (test-read-boot-parameters #:multiboot-modules #false)
+       (test-read-boot-parameters #:locale #false)
+       (test-read-boot-parameters #:bootloader-name #false
+                                  #:kernel-arguments #false
+                                  #:with-store #false
+                                  #:locale #false)))
+
+(test-equal "read, default equality"
+  %grub-boot-parameters
+  (test-read-boot-parameters))
+
+(test-equal "read, root-device, label"
+  (file-system-label "my-root")
+  (boot-parameters-root-device
+   (test-read-boot-parameters #:root-device '(file-system-label "my-root"))))
+
+(test-equal "read, root-device, /dev node"
+  "/dev/sda2"
+  (boot-parameters-root-device
+   (test-read-boot-parameters #:root-device "/dev/sda2")))
+
+(test-equal "read, kernel, only store path"
+  %default-kernel
+  (boot-parameters-kernel
+   (test-read-boot-parameters #:kernel %default-kernel-path)))
+
+(test-equal "read, kernel, full-path"
+  %default-kernel
+  (boot-parameters-kernel
+   (test-read-boot-parameters #:kernel %default-kernel)))
+
+(test-assert "read, construction, missing initrd"
+  (not (boot-parameters-initrd (test-read-boot-parameters #:initrd #false))))
+
+(test-equal "read, initrd, old format"
+  "/a/b"
+  (boot-parameters-initrd
+   (test-read-boot-parameters #:initrd (list 'string-append "/a" "/b"))))
+
+ ;; Compatibility reasons specified in gnu/system.scm.
+(test-eq "read, bootloader-name, default value"
+  'grub
+  (boot-parameters-bootloader-name
+   (test-read-boot-parameters #:bootloader-name #false)))
+
+(test-eq "read, bootloader-menu-entries, default value"
+  '()
+  (boot-parameters-bootloader-menu-entries
+   (test-read-boot-parameters #:bootloader-menu-entries #false)))
+
+(test-eq "read, kernel-arguments, default value"
+  '()
+  (boot-parameters-kernel-arguments
+   (test-read-boot-parameters #:kernel-arguments #false)))
+
+(test-assert "read, store-device, filter /dev"
+  (not (boot-parameters-store-device
+        (test-read-boot-parameters #:store-device "/dev/sda3"))))
+
+(test-assert "read, no-store, filter /dev from root"
+  (not (boot-parameters-store-device
+        (test-read-boot-parameters #:root-device "/dev/sda3"
+                                   #:with-store #false))))
+
+(test-assert "read, no store-device, filter /dev from root"
+  (not (boot-parameters-store-device
+        (test-read-boot-parameters #:root-device "/dev/sda3"
+                                   #:store-device #false))))
+
+(test-assert "read, store-device #false, filter /dev from root"
+  (not (boot-parameters-store-device
+        (test-read-boot-parameters #:root-device "/dev/sda3"
+                                   #:store-device 'false))))
+
+(test-equal "read, store-device, label (legacy)"
+  (file-system-label "my-store")
+  (boot-parameters-store-device
+   (test-read-boot-parameters #:store-device "my-store")))
+
+(test-equal "read, store-device, from root"
+  %default-root-device
+  (boot-parameters-store-device
+   (test-read-boot-parameters #:with-store #false)))
+
+(test-equal "read, no store-mount-point, default"
+  %root-path
+  (boot-parameters-store-mount-point
+   (test-read-boot-parameters #:store-mount-point #false)))
+
+(test-equal "read, no store, default store-mount-point"
+  %root-path
+  (boot-parameters-store-mount-point
+   (test-read-boot-parameters #:with-store #false)))
+
+(test-equal "read, store-crypto-devices, default"
+  '()
+  (boot-parameters-store-crypto-devices
+   (test-read-boot-parameters #:store-crypto-devices #false)))
+
+;; XXX: <warning: unrecognized crypto-devices #f at '#f'>
+(test-equal "read, store-crypto-devices, false"
+  '()
+  (boot-parameters-store-crypto-devices
+   (test-read-boot-parameters #:store-crypto-devices 'false)))
+
+;; XXX: <warning: unrecognized crypto-device "bad" at '#f'>
+(test-equal "read, store-crypto-devices, string"
+  '()
+  (boot-parameters-store-crypto-devices
+   (test-read-boot-parameters #:store-crypto-devices "bad")))
+
+;; For whitebox testing
+(define operating-system-boot-parameters
+  (@@ (gnu system) operating-system-boot-parameters))
+
+(test-equal "from os, locale"
+  %default-locale
+  (boot-parameters-locale
+   (operating-system-boot-parameters %default-operating-system
+                                     %default-root-device)))
+
+(test-equal "from os, store-directory-prefix"
+  %default-store-directory-prefix
+  (boot-parameters-store-directory-prefix
+   (operating-system-boot-parameters %default-operating-system
+                                     %default-root-device)))
+
+(test-end "boot-parameters")
diff --git a/tests/build-utils.scm b/tests/build-utils.scm
index 47a57a984b..654b480ed9 100644
--- a/tests/build-utils.scm
+++ b/tests/build-utils.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012, 2015, 2016, 2019 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012, 2015, 2016, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -174,7 +174,7 @@ echo hello world"))
        (let ((script-file-name (string-append directory "/foo")))
          (call-with-output-file script-file-name
            (lambda (port)
-             (format port script-contents)))
+             (display script-contents port)))
          (chmod script-file-name #o777)
          (wrap-script script-file-name
                       `("GUIX_FOO" prefix ("/some/path"
diff --git a/tests/challenge.scm b/tests/challenge.scm
index 9c6d6e0d58..fdd5fd238e 100644
--- a/tests/challenge.scm
+++ b/tests/challenge.scm
@@ -27,8 +27,8 @@
   #:use-module (guix packages)
   #:use-module (guix gexp)
   #:use-module (guix base32)
+  #:use-module (guix narinfo)
   #:use-module (guix scripts challenge)
-  #:use-module (guix scripts substitute)
   #:use-module ((guix build utils) #:select (find-files))
   #:use-module (gnu packages bootstrap)
   #:use-module (srfi srfi-1)
diff --git a/tests/channels.scm b/tests/channels.scm
index 1b6f640c4a..0264369d9e 100644
--- a/tests/channels.scm
+++ b/tests/channels.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2019, 2020 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
diff --git a/tests/containers.scm b/tests/containers.scm
index 7b63e5c108..608902c41a 100644
--- a/tests/containers.scm
+++ b/tests/containers.scm
@@ -134,6 +134,14 @@
        (primitive-exit 0)))))
 
 (skip-if-unsupported)
+(test-assert "call-with-container, mnt namespace, root permissions"
+  (zero?
+   (call-with-container '()
+     (lambda ()
+       (assert-exit (= #o755 (stat:perms (lstat "/")))))
+     #:namespaces '(user mnt))))
+
+(skip-if-unsupported)
 (test-assert "container-excursion"
   (call-with-temporary-directory
    (lambda (root)
diff --git a/tests/crate.scm b/tests/crate.scm
index 61a04f986b..b6c3a7ee2e 100644
--- a/tests/crate.scm
+++ b/tests/crate.scm
@@ -2,6 +2,7 @@
 ;;; Copyright © 2014 David Thompson <davet@gnu.org>
 ;;; Copyright © 2016 David Craven <david@craven.ch>
 ;;; Copyright © 2019, 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2020 Martin Becze <mjbecze@riseup.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -24,27 +25,72 @@
   #:use-module (guix build-system cargo)
   #:use-module (gcrypt hash)
   #:use-module (guix tests)
+  #:use-module (gnu packages)
   #:use-module (ice-9 iconv)
   #:use-module (ice-9 match)
   #:use-module (srfi srfi-64))
 
+
+;; crate versions and dependencies used here
+;; foo-0.8.1
+;; foo-1.0.0
+;; foo-1.0.3
+;; 	leaf-alice 0.7.5
+;;
+;; root-1.0.0
+;; root-1.0.4
+;; 	intermediate-a  1.0.42
+;; 	intermeidate-b ^1.0.0
+;; 	leaf-alice     ^0.7
+;; 	leaf-bob     ^3
+;;
+;; intermediate-a-1.0.40
+;; intermediate-a-1.0.42
+;; intermediate-a-1.1.0-alpha.1
+;; 	intermediate-a	1.2.3
+;; 	leaf-alice	0.7.5
+;; 	leaf-bob	^3
+;;
+;; intermediate-b-1.2.3
+;; 	leaf-bob	3.0.1
+;;
+;; leaf-alice-0.7.3
+;; leaf-alice-0.7.5
+;;
+;; leaf-bob-3.0.1
+
+
 (define test-foo-crate
   "{
   \"crate\": {
-    \"max_version\": \"1.0.0\",
+    \"max_version\": \"1.0.3\",
     \"name\": \"foo\",
     \"description\": \"summary\",
     \"homepage\": \"http://example.com\",
     \"repository\": \"http://example.com\",
-    \"keywords\": [\"dummy\" \"test\"],
-    \"categories\": [\"test\"]
+    \"keywords\": [\"dummy\", \"test\"],
+    \"categories\": [\"test\"],
     \"actual_versions\": [
-      { \"id\": \"foo\",
+      { \"id\": 234210,
+        \"num\": \"0.8.1\",
+        \"license\": \"MIT OR Apache-2.0\",
+        \"links\": {
+          \"dependencies\": \"/api/v1/crates/foo/0.8.1/dependencies\"
+        }
+      },
+      { \"id\": 234212,
         \"num\": \"1.0.0\",
         \"license\": \"MIT OR Apache-2.0\",
         \"links\": {
           \"dependencies\": \"/api/v1/crates/foo/1.0.0/dependencies\"
         }
+      },
+      { \"id\": 234214,
+        \"num\": \"1.0.3\",
+        \"license\": \"MIT OR Apache-2.0\",
+        \"links\": {
+          \"dependencies\": \"/api/v1/crates/foo/1.0.3/dependencies\"
+        }
       }
     ]
   }
@@ -54,8 +100,9 @@
   "{
   \"dependencies\": [
      {
-       \"crate_id\": \"bar\",
-       \"kind\": \"normal\"
+       \"crate_id\": \"leaf-alice\",
+       \"kind\": \"normal\",
+       \"req\": \"0.7.5\"
      }
   ]
 }")
@@ -63,20 +110,27 @@
 (define test-root-crate
   "{
   \"crate\": {
-    \"max_version\": \"1.0.0\",
+    \"max_version\": \"1.0.4\",
     \"name\": \"root\",
     \"description\": \"summary\",
     \"homepage\": \"http://example.com\",
     \"repository\": \"http://example.com\",
-    \"keywords\": [\"dummy\" \"test\"],
-    \"categories\": [\"test\"]
+    \"keywords\": [\"dummy\", \"test\"],
+    \"categories\": [\"test\"],
     \"actual_versions\": [
-      { \"id\": \"foo\",
+      { \"id\": 234240,
         \"num\": \"1.0.0\",
         \"license\": \"MIT OR Apache-2.0\",
         \"links\": {
           \"dependencies\": \"/api/v1/crates/root/1.0.0/dependencies\"
         }
+      },
+      { \"id\": 234242,
+        \"num\": \"1.0.4\",
+        \"license\": \"MIT OR Apache-2.0\",
+        \"links\": {
+          \"dependencies\": \"/api/v1/crates/root/1.0.4/dependencies\"
+        }
       }
     ]
   }
@@ -86,92 +140,114 @@
   "{
   \"dependencies\": [
      {
-       \"crate_id\": \"intermediate-1\",
-       \"kind\": \"normal\"
+       \"crate_id\": \"intermediate-a\",
+       \"kind\": \"normal\",
+       \"req\": \"1.0.42\"
      },
      {
-       \"crate_id\": \"intermediate-2\",
-       \"kind\": \"normal\"
-     }
+       \"crate_id\": \"intermediate-b\",
+       \"kind\": \"normal\",
+       \"req\": \"^1.0.0\"
+     },
      {
        \"crate_id\": \"leaf-alice\",
-       \"kind\": \"normal\"
+       \"kind\": \"normal\",
+       \"req\": \"^0.7\"
      },
      {
        \"crate_id\": \"leaf-bob\",
-       \"kind\": \"normal\"
+       \"kind\": \"normal\",
+       \"req\": \"^3\"
      }
   ]
 }")
 
-(define test-intermediate-1-crate
+(define test-intermediate-a-crate
   "{
   \"crate\": {
-    \"max_version\": \"1.0.0\",
-    \"name\": \"intermediate-1\",
+    \"max_version\": \"1.1.0-alpha.1\",
+    \"name\": \"intermediate-a\",
     \"description\": \"summary\",
     \"homepage\": \"http://example.com\",
     \"repository\": \"http://example.com\",
-    \"keywords\": [\"dummy\" \"test\"],
-    \"categories\": [\"test\"]
+    \"keywords\": [\"dummy\", \"test\"],
+    \"categories\": [\"test\"],
     \"actual_versions\": [
-      { \"id\": \"intermediate-1\",
-        \"num\": \"1.0.0\",
+      { \"id\": 234251,
+        \"num\": \"1.0.40\",
+        \"license\": \"MIT OR Apache-2.0\",
+        \"links\": {
+          \"dependencies\": \"/api/v1/crates/intermediate-a/1.0.40/dependencies\"
+        }
+      },
+      { \"id\": 234250,
+        \"num\": \"1.0.42\",
         \"license\": \"MIT OR Apache-2.0\",
         \"links\": {
-          \"dependencies\": \"/api/v1/crates/intermediate-1/1.0.0/dependencies\"
+          \"dependencies\": \"/api/v1/crates/intermediate-a/1.0.42/dependencies\"
+        }
+      },
+      { \"id\": 234252,
+        \"num\": \"1.1.0-alpha.1\",
+        \"license\": \"MIT OR Apache-2.0\",
+        \"links\": {
+          \"dependencies\": \"/api/v1/crates/intermediate-a/1.1.0-alpha.1/dependencies\"
         }
       }
     ]
   }
 }")
 
-(define test-intermediate-1-dependencies
+(define test-intermediate-a-dependencies
   "{
   \"dependencies\": [
      {
-       \"crate_id\": \"intermediate-2\",
-       \"kind\": \"normal\"
+       \"crate_id\": \"intermediate-b\",
+       \"kind\": \"normal\",
+       \"req\": \"1.2.3\"
      },
      {
        \"crate_id\": \"leaf-alice\",
-       \"kind\": \"normal\"
+       \"kind\": \"normal\",
+       \"req\": \"0.7.5\"
      },
      {
        \"crate_id\": \"leaf-bob\",
-       \"kind\": \"normal\"
+       \"kind\": \"normal\",
+       \"req\": \"^3\"
      }
   ]
 }")
 
-(define test-intermediate-2-crate
+(define test-intermediate-b-crate
   "{
   \"crate\": {
-    \"max_version\": \"1.0.0\",
-    \"name\": \"intermediate-2\",
+    \"max_version\": \"1.2.3\",
+    \"name\": \"intermediate-b\",
     \"description\": \"summary\",
     \"homepage\": \"http://example.com\",
     \"repository\": \"http://example.com\",
-    \"keywords\": [\"dummy\" \"test\"],
-    \"categories\": [\"test\"]
+    \"keywords\": [\"dummy\", \"test\"],
+    \"categories\": [\"test\"],
     \"actual_versions\": [
-      { \"id\": \"intermediate-2\",
-        \"num\": \"1.0.0\",
+      { \"id\": 234260,
+        \"num\": \"1.2.3\",
         \"license\": \"MIT OR Apache-2.0\",
         \"links\": {
-          \"dependencies\": \"/api/v1/crates/intermediate-2/1.0.0/dependencies\"
+          \"dependencies\": \"/api/v1/crates/intermediate-b/1.2.3/dependencies\"
         }
       }
     ]
   }
 }")
 
-(define test-intermediate-2-dependencies
+(define test-intermediate-b-dependencies
   "{
   \"dependencies\": [
      {
        \"crate_id\": \"leaf-bob\",
-       \"kind\": \"normal\"
+       \"kind\": \"normal\",
+       \"req\": \"3.0.1\"
      }
   ]
 }")
@@ -179,19 +255,26 @@
 (define test-leaf-alice-crate
   "{
   \"crate\": {
-    \"max_version\": \"1.0.0\",
+    \"max_version\": \"0.7.5\",
     \"name\": \"leaf-alice\",
     \"description\": \"summary\",
     \"homepage\": \"http://example.com\",
     \"repository\": \"http://example.com\",
-    \"keywords\": [\"dummy\" \"test\"],
-    \"categories\": [\"test\"]
+    \"keywords\": [\"dummy\", \"test\"],
+    \"categories\": [\"test\"],
     \"actual_versions\": [
-      { \"id\": \"leaf-alice\",
-        \"num\": \"1.0.0\",
+      { \"id\": 234270,
+        \"num\": \"0.7.3\",
         \"license\": \"MIT OR Apache-2.0\",
         \"links\": {
-          \"dependencies\": \"/api/v1/crates/leaf-alice/1.0.0/dependencies\"
+          \"dependencies\": \"/api/v1/crates/leaf-alice/0.7.3/dependencies\"
+        }
+      },
+      { \"id\": 234272,
+        \"num\": \"0.7.5\",
+        \"license\": \"MIT OR Apache-2.0\",
+        \"links\": {
+          \"dependencies\": \"/api/v1/crates/leaf-alice/0.7.5/dependencies\"
         }
       }
     ]
@@ -206,19 +289,19 @@
 (define test-leaf-bob-crate
   "{
   \"crate\": {
-    \"max_version\": \"1.0.0\",
+    \"max_version\": \"3.0.1\",
     \"name\": \"leaf-bob\",
     \"description\": \"summary\",
     \"homepage\": \"http://example.com\",
     \"repository\": \"http://example.com\",
-    \"keywords\": [\"dummy\" \"test\"],
+    \"keywords\": [\"dummy\", \"test\"],
     \"categories\": [\"test\"]
     \"actual_versions\": [
-      { \"id\": \"leaf-bob\",
-        \"num\": \"1.0.0\",
+      { \"id\": 234280,
+        \"num\": \"3.0.1\",
         \"license\": \"MIT OR Apache-2.0\",
         \"links\": {
-          \"dependencies\": \"/api/v1/crates/leaf-bob/1.0.0/dependencies\"
+          \"dependencies\": \"/api/v1/crates/leaf-bob/3.0.1/dependencies\"
         }
       }
     ]
@@ -230,9 +313,13 @@
   \"dependencies\": []
 }")
 
+
 (define test-source-hash
   "")
 
+(define have-guile-semver?
+  (false-if-exception (resolve-interface '(semver))))
+
 
 (test-begin "crate")
 
@@ -242,8 +329,9 @@
    (dummy-package
     "rust-rustc-serialize"
     (source (dummy-origin
-     (uri (crate-uri "rustc-serialize" "1.0")))))))
+             (uri (crate-uri "rustc-serialize" "1.0")))))))
 
+(unless have-guile-semver? (test-skip 1))
 (test-assert "crate->guix-package"
   ;; Replace network resources with sample data.
   (mock ((guix http-client) http-fetch
@@ -251,37 +339,52 @@
            (match url
              ("https://crates.io/api/v1/crates/foo"
               (open-input-string test-foo-crate))
-             ("https://crates.io/api/v1/crates/foo/1.0.0/download"
+             ("https://crates.io/api/v1/crates/foo/1.0.3/download"
               (set! test-source-hash
-                (bytevector->nix-base32-string
-                 (sha256 (string->bytevector "empty file\n" "utf-8"))))
+                    (bytevector->nix-base32-string
+                     (sha256 (string->bytevector "empty file\n" "utf-8"))))
               (open-input-string "empty file\n"))
-             ("https://crates.io/api/v1/crates/foo/1.0.0/dependencies"
+             ("https://crates.io/api/v1/crates/foo/1.0.3/dependencies"
               (open-input-string test-foo-dependencies))
+             ("https://crates.io/api/v1/crates/leaf-alice"
+              (open-input-string test-leaf-alice-crate))
+             ("https://crates.io/api/v1/crates/leaf-alice/0.7.5/download"
+              (set! test-source-hash
+                    (bytevector->nix-base32-string
+                     (sha256 (string->bytevector "empty file\n" "utf-8"))))
+              (open-input-string "empty file\n"))
+             ("https://crates.io/api/v1/crates/leaf-alice/0.7.5/dependencies"
+              (open-input-string test-leaf-alice-dependencies))
              (_ (error "Unexpected URL: " url)))))
-    (match (crate->guix-package "foo")
-      (('package
-         ('name "rust-foo")
-         ('version "1.0.0")
-         ('source ('origin
-                    ('method 'url-fetch)
-                    ('uri ('crate-uri "foo" 'version))
-                    ('file-name ('string-append 'name "-" 'version ".tar.gz"))
-                    ('sha256
-                     ('base32
-                      (? string? hash)))))
-         ('build-system 'cargo-build-system)
-         ('arguments
-          ('quasiquote
-           ('#:cargo-inputs (("rust-bar" ('unquote rust-bar))))))
-         ('home-page "http://example.com")
-         ('synopsis "summary")
-         ('description "summary")
-         ('license ('list 'license:expat 'license:asl2.0)))
-       (string=? test-source-hash hash))
-      (x
-       (pk 'fail x #f)))))
 
+        (match (crate->guix-package "foo")
+          ((define-public 'rust-foo-1
+             (package (name "rust-foo")
+                      (version "1.0.3")
+                      (source
+                       (origin
+                         (method url-fetch)
+                         (uri (crate-uri "foo" 'version))
+                         (file-name (string-append name "-" version ".tar.gz"))
+                         (sha256
+                          (base32
+                           (?  string? hash)))))
+                      (build-system 'cargo-build-system)
+                      (arguments
+                       ('quasiquote
+                        (#:skip-build? #t
+                         #:cargo-inputs
+                         (("rust-leaf-alice" ('unquote 'rust-leaf-alice-0.7))))))
+                      (home-page "http://example.com")
+                      (synopsis "summary")
+                      (description "summary")
+                      (license (list license:expat license:asl2.0))))
+
+           (string=? test-source-hash hash))
+          (x
+           (pk 'fail x #f)))))
+
+(unless have-guile-semver? (test-skip 1))
 (test-assert "cargo-recursive-import"
   ;; Replace network resources with sample data.
   (mock ((guix http-client) http-fetch
@@ -289,151 +392,169 @@
            (match url
              ("https://crates.io/api/v1/crates/root"
               (open-input-string test-root-crate))
-             ("https://crates.io/api/v1/crates/root/1.0.0/download"
+             ("https://crates.io/api/v1/crates/root/1.0.4/download"
               (set! test-source-hash
                     (bytevector->nix-base32-string
                      (sha256 (string->bytevector "empty file\n" "utf-8"))))
               (open-input-string "empty file\n"))
-             ("https://crates.io/api/v1/crates/root/1.0.0/dependencies"
+             ("https://crates.io/api/v1/crates/root/1.0.4/dependencies"
               (open-input-string test-root-dependencies))
-             ("https://crates.io/api/v1/crates/intermediate-1"
-              (open-input-string test-intermediate-1-crate))
-             ("https://crates.io/api/v1/crates/intermediate-1/1.0.0/download"
+             ("https://crates.io/api/v1/crates/intermediate-a"
+              (open-input-string test-intermediate-a-crate))
+             ("https://crates.io/api/v1/crates/intermediate-a/1.0.42/download"
               (set! test-source-hash
                     (bytevector->nix-base32-string
                      (sha256 (string->bytevector "empty file\n" "utf-8"))))
               (open-input-string "empty file\n"))
-             ("https://crates.io/api/v1/crates/intermediate-1/1.0.0/dependencies"
-              (open-input-string test-intermediate-1-dependencies))
-             ("https://crates.io/api/v1/crates/intermediate-2"
-              (open-input-string test-intermediate-2-crate))
-             ("https://crates.io/api/v1/crates/intermediate-2/1.0.0/download"
+             ("https://crates.io/api/v1/crates/intermediate-a/1.0.42/dependencies"
+              (open-input-string test-intermediate-a-dependencies))
+             ("https://crates.io/api/v1/crates/intermediate-b"
+              (open-input-string test-intermediate-b-crate))
+             ("https://crates.io/api/v1/crates/intermediate-b/1.2.3/download"
               (set! test-source-hash
                     (bytevector->nix-base32-string
                      (sha256 (string->bytevector "empty file\n" "utf-8"))))
               (open-input-string "empty file\n"))
-             ("https://crates.io/api/v1/crates/intermediate-2/1.0.0/dependencies"
-              (open-input-string test-intermediate-2-dependencies))
+             ("https://crates.io/api/v1/crates/intermediate-b/1.2.3/dependencies"
+              (open-input-string test-intermediate-b-dependencies))
              ("https://crates.io/api/v1/crates/leaf-alice"
               (open-input-string test-leaf-alice-crate))
-             ("https://crates.io/api/v1/crates/leaf-alice/1.0.0/download"
+             ("https://crates.io/api/v1/crates/leaf-alice/0.7.5/download"
               (set! test-source-hash
                     (bytevector->nix-base32-string
                      (sha256 (string->bytevector "empty file\n" "utf-8"))))
               (open-input-string "empty file\n"))
-             ("https://crates.io/api/v1/crates/leaf-alice/1.0.0/dependencies"
+             ("https://crates.io/api/v1/crates/leaf-alice/0.7.5/dependencies"
               (open-input-string test-leaf-alice-dependencies))
              ("https://crates.io/api/v1/crates/leaf-bob"
               (open-input-string test-leaf-bob-crate))
-             ("https://crates.io/api/v1/crates/leaf-bob/1.0.0/download"
+             ("https://crates.io/api/v1/crates/leaf-bob/3.0.1/download"
               (set! test-source-hash
                     (bytevector->nix-base32-string
                      (sha256 (string->bytevector "empty file\n" "utf-8"))))
               (open-input-string "empty file\n"))
-             ("https://crates.io/api/v1/crates/leaf-bob/1.0.0/dependencies"
+             ("https://crates.io/api/v1/crates/leaf-bob/3.0.1/dependencies"
               (open-input-string test-leaf-bob-dependencies))
              (_ (error "Unexpected URL: " url)))))
         (match (crate-recursive-import "root")
-          ;; rust-intermediate-2 has no dependency on the rust-leaf-alice package, so this is a valid ordering
-          ((('package
-              ('name "rust-leaf-alice")
-              ('version (? string? ver))
-              ('source
-               ('origin
-                 ('method 'url-fetch)
-                 ('uri ('crate-uri "leaf-alice" 'version))
-                 ('file-name
-                  ('string-append 'name "-" 'version ".tar.gz"))
-                 ('sha256
-                  ('base32
-                   (? string? hash)))))
-              ('build-system 'cargo-build-system)
-              ('home-page "http://example.com")
-              ('synopsis "summary")
-              ('description "summary")
-              ('license ('list 'license:expat 'license:asl2.0)))
-            ('package
-              ('name "rust-leaf-bob")
-              ('version (? string? ver))
-              ('source
-               ('origin
-                 ('method 'url-fetch)
-                 ('uri ('crate-uri "leaf-bob" 'version))
-                 ('file-name
-                  ('string-append 'name "-" 'version ".tar.gz"))
-                 ('sha256
-                  ('base32
-                   (? string? hash)))))
-              ('build-system 'cargo-build-system)
-              ('home-page "http://example.com")
-              ('synopsis "summary")
-              ('description "summary")
-              ('license ('list 'license:expat 'license:asl2.0)))
-            ('package
-              ('name "rust-intermediate-2")
-              ('version (? string? ver))
-              ('source
-               ('origin
-                 ('method 'url-fetch)
-                 ('uri ('crate-uri "intermediate-2" 'version))
-                 ('file-name
-                  ('string-append 'name "-" 'version ".tar.gz"))
-                 ('sha256
-                  ('base32
-                   (? string? hash)))))
-              ('build-system 'cargo-build-system)
-              ('arguments
-               ('quasiquote
-                ('#:cargo-inputs (("rust-leaf-bob" ('unquote rust-leaf-bob))))))
-              ('home-page "http://example.com")
-              ('synopsis "summary")
-              ('description "summary")
-              ('license ('list 'license:expat 'license:asl2.0)))
-            ('package
-              ('name "rust-intermediate-1")
-              ('version (? string? ver))
-              ('source
-               ('origin
-                 ('method 'url-fetch)
-                 ('uri ('crate-uri "intermediate-1" 'version))
-                 ('file-name
-                  ('string-append 'name "-" 'version ".tar.gz"))
-                 ('sha256
-                  ('base32
-                   (? string? hash)))))
-              ('build-system 'cargo-build-system)
-              ('arguments
-               ('quasiquote
-                ('#:cargo-inputs (("rust-intermediate-2" ('unquote rust-intermediate-2))
-                                  ("rust-leaf-alice" ('unquote rust-leaf-alice))
-                                  ("rust-leaf-bob" ('unquote rust-leaf-bob))))))
-              ('home-page "http://example.com")
-              ('synopsis "summary")
-              ('description "summary")
-              ('license ('list 'license:expat 'license:asl2.0)))
-            ('package
-              ('name "rust-root")
-              ('version (? string? ver))
-              ('source
-               ('origin
-                 ('method 'url-fetch)
-                 ('uri ('crate-uri "root" 'version))
-                 ('file-name
-                  ('string-append 'name "-" 'version ".tar.gz"))
-                 ('sha256
-                  ('base32
-                   (? string? hash)))))
-              ('build-system 'cargo-build-system)
-              ('arguments
-               ('quasiquote
-                ('#:cargo-inputs (("rust-intermediate-1" ('unquote rust-intermediate-1))
-                                  ("rust-intermediate-2" ('unquote rust-intermediate-2))
-                                  ("rust-leaf-alice" ('unquote rust-leaf-alice))
-                                  ("rust-leaf-bob" ('unquote rust-leaf-bob))))))
-              ('home-page "http://example.com")
-              ('synopsis "summary")
-              ('description "summary")
-              ('license ('list 'license:expat 'license:asl2.0))))
+          ;; rust-intermediate-b has no dependency on the rust-leaf-alice
+          ;; package, so this is a valid ordering
+          (((define-public 'rust-leaf-alice-0.7
+              (package
+                (name "rust-leaf-alice")
+                (version "0.7.5")
+                (source
+                 (origin
+                   (method url-fetch)
+                   (uri (crate-uri "leaf-alice" version))
+                   (file-name
+                    (string-append name "-" version ".tar.gz"))
+                   (sha256
+                    (base32
+                     (?  string? hash)))))
+                (build-system cargo-build-system)
+                (arguments ('quasiquote (#:skip-build? #t)))
+                (home-page "http://example.com")
+                (synopsis "summary")
+                (description "summary")
+                (license (list license:expat license:asl2.0))))
+            (define-public 'rust-leaf-bob-3
+              (package
+                (name "rust-leaf-bob")
+                (version "3.0.1")
+                (source
+                 (origin
+                   (method url-fetch)
+                   (uri (crate-uri "leaf-bob" version))
+                   (file-name
+                    (string-append name "-" version ".tar.gz"))
+                   (sha256
+                    (base32
+                     (?  string? hash)))))
+                (build-system cargo-build-system)
+                (arguments ('quasiquote (#:skip-build? #t)))
+                (home-page "http://example.com")
+                (synopsis "summary")
+                (description "summary")
+                (license (list license:expat license:asl2.0))))
+            (define-public 'rust-intermediate-b-1
+              (package
+                (name "rust-intermediate-b")
+                (version "1.2.3")
+                (source
+                 (origin
+                   (method url-fetch)
+                   (uri (crate-uri "intermediate-b" version))
+                   (file-name
+                    (string-append name "-" version ".tar.gz"))
+                   (sha256
+                    (base32
+                     (?  string? hash)))))
+                (build-system cargo-build-system)
+                (arguments
+                 ('quasiquote (#:skip-build? #t
+                               #:cargo-inputs
+                               (("rust-leaf-bob"
+                                 ('unquote rust-leaf-bob-3))))))
+                (home-page "http://example.com")
+                (synopsis "summary")
+                (description "summary")
+                (license (list license:expat license:asl2.0))))
+            (define-public 'rust-intermediate-a-1
+              (package
+                (name "rust-intermediate-a")
+                (version "1.0.42")
+                (source
+                 (origin
+                   (method url-fetch)
+                   (uri (crate-uri "intermediate-a" version))
+                   (file-name
+                    (string-append name "-" version ".tar.gz"))
+                   (sha256
+                    (base32
+                     (?  string? hash)))))
+                (build-system cargo-build-system)
+                (arguments
+                 ('quasiquote (#:skip-build? #t
+                               #:cargo-inputs
+                               (("rust-intermediate-b"
+                                 ('unquote rust-intermediate-b-1))
+                                ("rust-leaf-alice"
+                                 ('unquote 'rust-leaf-alice-0.7))
+                                ("rust-leaf-bob"
+                                 ('unquote rust-leaf-bob-3))))))
+                (home-page "http://example.com")
+                (synopsis "summary")
+                (description "summary")
+                (license (list license:expat license:asl2.0))))
+            (define-public 'rust-root-1
+              (package
+                (name "rust-root")
+                (version "1.0.4")
+                (source
+                 (origin
+                   (method url-fetch)
+                   (uri (crate-uri "root" version))
+                   (file-name
+                    (string-append name "-" version ".tar.gz"))
+                   (sha256
+                    (base32
+                     (?  string? hash)))))
+                (build-system cargo-build-system)
+                (arguments
+                 ('quasiquote (#:cargo-inputs
+                               (("rust-intermediate-a"
+                                 ('unquote rust-intermediate-a-1))
+                                ("rust-intermediate-b"
+                                 ('unquote rust-intermediate-b-1))
+                                ("rust-leaf-alice"
+                                 ('unquote 'rust-leaf-alice-0.7))
+                                ("rust-leaf-bob"
+                                 ('unquote rust-leaf-bob-3))))))
+                (home-page "http://example.com")
+                (synopsis "summary")
+                (description "summary")
+                (license (list license:expat license:asl2.0)))))
            #t)
           (x
            (pk 'fail x #f)))))
@@ -458,4 +579,86 @@
   '(license:expat license:asl2.0)
   (string->license "MIT/Apache-2.0"))
 
+
+
+(define test-doctool-crate
+  "{
+  \"crate\": {
+    \"max_version\": \"2.2.2\",
+    \"name\": \"leaf-bob\",
+    \"description\": \"summary\",
+    \"homepage\": \"http://example.com\",
+    \"repository\": \"http://example.com\",
+    \"keywords\": [\"dummy\", \"test\"],
+    \"categories\": [\"test\"]
+    \"actual_versions\": [
+      { \"id\": 234280,
+        \"num\": \"2.2.2\",
+        \"license\": \"MIT OR Apache-2.0\",
+        \"links\": {
+          \"dependencies\": \"/api/v1/crates/doctool/2.2.2/dependencies\"
+        }
+      }
+    ]
+  }
+}")
+
+;; FIXME: This test depends on some existing packages
+(define test-doctool-dependencies
+  "{
+  \"dependencies\": [
+     {
+       \"crate_id\": \"docopt\",
+       \"kind\": \"normal\",
+       \"req\": \"^0.8.1\"
+     }
+  ]
+}")
+
+
+(test-assert "self-test: rust-docopt 0.8.x is gone, please adjust the test case"
+  (not (null? (find-packages-by-name "rust-docopt" "0.8"))))
+
+(unless have-guile-semver? (test-skip 1))
+(test-assert "cargo-recursive-import-hoors-existing-packages"
+  (mock ((guix http-client) http-fetch
+         (lambda (url . rest)
+           (match url
+             ("https://crates.io/api/v1/crates/doctool"
+              (open-input-string test-doctool-crate))
+             ("https://crates.io/api/v1/crates/doctool/2.2.2/download"
+              (set! test-source-hash
+                    (bytevector->nix-base32-string
+                     (sha256 (string->bytevector "empty file\n" "utf-8"))))
+              (open-input-string "empty file\n"))
+             ("https://crates.io/api/v1/crates/doctool/2.2.2/dependencies"
+              (open-input-string test-doctool-dependencies))
+             (_ (error "Unexpected URL: " url)))))
+        (match (crate-recursive-import "doctool")
+          (((define-public 'rust-doctool-2
+              (package
+                (name "rust-doctool")
+                (version "2.2.2")
+                (source
+                 (origin
+                   (method url-fetch)
+                   (uri (crate-uri "doctool" version))
+                   (file-name
+                    (string-append name "-" version ".tar.gz"))
+                   (sha256
+                    (base32
+                     (?  string? hash)))))
+                (build-system cargo-build-system)
+                (arguments
+                 ('quasiquote (#:cargo-inputs
+                               (("rust-docopt"
+                                 ('unquote 'rust-docopt-0.8))))))
+                (home-page "http://example.com")
+                (synopsis "summary")
+                (description "summary")
+                (license (list license:expat license:asl2.0)))))
+            #t)
+          (x
+           (pk 'fail x #f)))))
+
 (test-end "crate")
diff --git a/tests/cve-sample.json b/tests/cve-sample.json
index 39816f9dd4..11b71817bb 100644
--- a/tests/cve-sample.json
+++ b/tests/cve-sample.json
@@ -49,7 +49,7 @@
           "vulnerable" : true,
           "cpe23Uri" : "cpe:2.3:o:juniper:junos:16.1:*:*:*:*:*:*:*"
         } ]
-      } {
+      }, {
         "operator" : "OR",
         "cpe_match" : [ {
           "vulnerable" : true,
diff --git a/tests/elpa.scm b/tests/elpa.scm
index b70539bda6..a008cf993c 100644
--- a/tests/elpa.scm
+++ b/tests/elpa.scm
@@ -1,6 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
 ;;; Copyright © 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2020 Martin Becze <mjbecze@riseup.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -51,7 +52,7 @@
                       (200 "This is the description.")
                       (200 "fake tarball contents"))
     (parameterize ((current-http-proxy (%local-url)))
-      (match (elpa->guix-package pkg 'gnu/http)
+      (match (elpa->guix-package pkg #:repo 'gnu/http)
         (('package
            ('name "emacs-auctex")
            ('version "11.88.6")
diff --git a/tests/gexp.scm b/tests/gexp.scm
index 1beeb67c21..6e92f0e4b3 100644
--- a/tests/gexp.scm
+++ b/tests/gexp.scm
@@ -30,6 +30,7 @@
   #:use-module (gnu packages)
   #:use-module (gnu packages base)
   #:use-module (gnu packages bootstrap)
+  #:use-module ((guix diagnostics) #:select (guix-warning-port))
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-34)
   #:use-module (srfi srfi-64)
@@ -722,10 +723,26 @@
                            (lambda (port)
                              (display "This is the second one." port))))))
         (build-drv #~(begin
-                       (use-modules (guix build store-copy))
+                       (use-modules (guix build store-copy)
+                                    (guix build utils)
+                                    (srfi srfi-1))
+
+                       (define (canonical-file? file)
+                         ;; Copied from (guix tests).
+                         (let ((st (lstat file)))
+                           (or (not (string-prefix? (%store-directory) file))
+                               (eq? 'symlink (stat:type st))
+                               (and (= 1 (stat:mtime st))
+                                    (zero? (logand #o222 (stat:mode st)))))))
 
                        (mkdir #$output)
-                       (populate-store '("graph") #$output))))
+                       (populate-store '("graph") #$output
+                                       #:deduplicate? #f)
+
+                       ;; Check whether 'populate-store' canonicalizes
+                       ;; permissions and timestamps.
+                       (unless (every canonical-file? (find-files #$output))
+                         (error "not canonical!" #$output)))))
     (mlet* %store-monad ((one (gexp->derivation "one" build-one))
                          (two (gexp->derivation "two" (build-two one)))
                          (drv (gexp->derivation "store-copy" build-drv
@@ -818,6 +835,17 @@
   '()
   (gexp-modules #t))
 
+(test-assert "gexp-modules, warning"
+  (string-match "tests/gexp.scm:[0-9]+:[0-9]+: warning: \
+importing.* \\(guix config\\) from the host"
+                (call-with-output-string
+                  (lambda (port)
+                    (parameterize ((guix-warning-port port))
+                      (let* ((x (with-imported-modules '((guix config))
+                                  #~(+ 1 2 3)))
+                             (y #~(+ 39 #$x)))
+                        (gexp-modules y)))))))
+
 (test-assertm "gexp->derivation #:modules"
   (mlet* %store-monad
       ((build ->  #~(begin
@@ -1413,7 +1441,7 @@
 
 (test-assert "printer"
   (string-match "^#<gexp \\(string-append .*#<package coreutils.*\
- \"/bin/uname\"\\) [[:xdigit:]]+>$"
+ \"/bin/uname\"\\) [[:graph:]]+tests/gexp\\.scm:[0-9]+:[0-9]+ [[:xdigit:]]+>$"
                 (with-output-to-string
                   (lambda ()
                     (write
diff --git a/tests/glob.scm b/tests/glob.scm
index 3134069789..2a5a40c3c6 100644
--- a/tests/glob.scm
+++ b/tests/glob.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2018 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -53,7 +54,8 @@
  "foo[abc]bar" => '("foo" (set #\a #\b #\c) "bar")
  "foo[a[b]c]bar" => '("foo" (set #\a #\[ #\b #\] #\c) "bar")
  "[123]x" => '((set #\1 #\2 #\3) "x")
- "[a-z]" => '((range #\a #\z)))
+ "[a-z]" => '((range #\a #\z))
+ "**/*.scm" => '(**/ * ".scm"))
 
 (test-glob-match
  ("foo" matches "foo" (and not "foobar" "barfoo"))
@@ -64,6 +66,8 @@
  ("ab[0-9]c" matches "ab0c" "ab7c" "ab9c"
   (and not "ab-c" "ab00c" "ab3"))
  ("ab[cdefg]" matches "abc" "abd" "abg"
-  (and not "abh" "abcd" "ab[")))
+  (and not "abh" "abcd" "ab["))
+ ("foo/**/*.scm" matches "foo/bar/baz.scm" "foo/bar.scm" "foo/bar/baz/zab.scm"
+  (and not "foo/bar/baz.java" "foo/bar.smc")))
 
 (test-end "glob")
diff --git a/tests/graph.scm b/tests/graph.scm
index 0663d13b49..e374dad1a5 100644
--- a/tests/graph.scm
+++ b/tests/graph.scm
@@ -198,7 +198,7 @@ edges."
 
 (test-assert "reverse bag DAG"
   (let-values (((dune bap ocaml-base)
-                (values (specification->package "dune")
+                (values (specification->package "ocaml4.07-dune")
                         (specification->package "bap")
                         (specification->package "ocaml4.07-base")))
                ((backend nodes+edges) (make-recording-backend)))
diff --git a/tests/guix-archive.sh b/tests/guix-archive.sh
index 4c5eea05cf..00b87ff0ac 100644
--- a/tests/guix-archive.sh
+++ b/tests/guix-archive.sh
@@ -1,5 +1,5 @@
 # GNU Guix --- Functional package management for GNU
-# Copyright © 2013, 2014, 2015, 2019 Ludovic Courtès <ludo@gnu.org>
+# Copyright © 2013, 2014, 2015, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
 #
 # This file is part of GNU Guix.
 #
@@ -28,7 +28,7 @@ tmpdir="t-archive-dir-$$"
 rm -f "$archive" "$archive_alt"
 rm -rf "$tmpdir"
 
-trap 'rm -f "$archive" "$archive_alt"; rm -rf "$tmpdir"' EXIT
+trap 'rm -f "$archive" "$archive_alt"; chmod -R +w "$tmpdir"; rm -rf "$tmpdir"' EXIT
 
 guix archive --export guile-bootstrap > "$archive"
 guix archive --export guile-bootstrap:out > "$archive_alt"
@@ -44,8 +44,7 @@ cmp "$archive" "$archive_alt"
 # Check the exit value upon import.
 guix archive --import < "$archive"
 
-if guix archive something-that-does-not-exist
-then false; else true; fi
+! guix archive something-that-does-not-exist
 
 # This one must not be listed as missing.
 guix build guile-bootstrap > "$archive"
@@ -62,8 +61,7 @@ cmp "$archive" "$archive_alt"
 
 # This is not a valid store file name, so an error.
 echo something invalid > "$archive"
-if guix archive --missing < "$archive"
-then false; else true; fi
+! guix archive --missing < "$archive"
 
 # Check '--extract'.
 guile -c "(use-modules (guix serialization))
@@ -79,5 +77,4 @@ guix archive -t < "$archive" | grep "^D /share/guile"
 guix archive -t < "$archive" | grep "^x /bin/guile"
 guix archive -t < "$archive" | grep "^r /share/guile.*/boot-9\.scm"
 
-if echo foo | guix archive --authorize
-then false; else true; fi
+! echo foo | guix archive --authorize
diff --git a/tests/guix-authenticate.sh b/tests/guix-authenticate.sh
index 72c3d161d7..3a05b232c1 100644
--- a/tests/guix-authenticate.sh
+++ b/tests/guix-authenticate.sh
@@ -1,5 +1,5 @@
 # GNU Guix --- Functional package management for GNU
-# Copyright © 2013, 2014 Ludovic Courtès <ludo@gnu.org>
+# Copyright © 2013, 2014, 2020 Ludovic Courtès <ludo@gnu.org>
 #
 # This file is part of GNU Guix.
 #
@@ -28,68 +28,60 @@ rm -f "$sig" "$hash"
 
 trap 'rm -f "$sig" "$hash"' EXIT
 
+key="$abs_top_srcdir/tests/signing-key.sec"
+key_len="`echo -n $key | wc -c`"
+
 # A hexadecimal string as long as a sha256 hash.
-echo "2749f0ea9f26c6c7be746a9cff8fa4c2f2a02b000070dba78429e9a11f87c6eb" \
-    > "$hash"
+hash="2749f0ea9f26c6c7be746a9cff8fa4c2f2a02b000070dba78429e9a11f87c6eb"
+hash_len="`echo -n $hash | wc -c`"
 
-guix authenticate rsautl -sign				\
-    -inkey "$abs_top_srcdir/tests/signing-key.sec"	\
-    -in "$hash" > "$sig"
+echo "sign $key_len:$key $hash_len:$hash" | guix authenticate > "$sig"
 test -f "$sig"
+case "$(cat $sig)" in
+    "0 "*) ;;
+    *)     echo "broken signature: $(cat $sig)"
+	   exit 42;;
+esac
+
+# Remove the leading "0".
+sed -i "$sig" -e's/^0 //g'
 
-hash2="`guix authenticate rsautl -verify		\
-          -inkey $abs_top_srcdir/tests/signing-key.pub	\
-          -pubin -in $sig`"
-test "$hash2" = `cat "$hash"`
-
-# Same thing in a pipeline, using the command line syntax that Nix/Crypto.pm
-# uses.
-hash2="`						\
-  cat "$hash"						\
-  | guix authenticate rsautl -sign			\
-    -inkey "$abs_top_srcdir/tests/signing-key.sec"	\
-  | guix authenticate rsautl -verify			\
-          -inkey $abs_top_srcdir/tests/signing-key.pub	\
-          -pubin`"
-test "$hash2" = `cat "$hash"`
+hash2="$(echo verify $(cat "$sig") | guix authenticate)"
+test "$(echo $hash2 | cut -d : -f 2)" = "$hash"
 
 # Detect corrupt signatures.
-if guix authenticate rsautl -verify				\
-          -inkey "$abs_top_srcdir/tests/signing-key.pub"	\
-          -pubin -in /dev/null
-then false
-else true
-fi
+code="$(echo "verify 5:wrong" | guix authenticate | cut -f1 -d ' ')"
+test "$code" -ne 0
 
 # Detect invalid signatures.
 # The signature has (payload (data ... (hash sha256 #...#))).  We proceed by
 # modifying this hash.
 sed -i "$sig"											\
     -e's|#[A-Z0-9]\{64\}#|#0000000000000000000000000000000000000000000000000000000000000000#|g'
-if guix authenticate rsautl -verify				\
-          -inkey "$abs_top_srcdir/tests/signing-key.pub"	\
-          -pubin -in "$sig"
-then false
-else true
-fi
+code="$(echo "verify $(cat $sig)" | guix authenticate | cut -f1 -d ' ')"
+test "$code" -ne 0
 
+# Make sure byte strings are correctly encoded.  The hash string below is
+# "café" repeated 8 times.  Libgcrypt would normally choose to write it as a
+# string rather than a hex sequence.  We want that string to be Latin-1
+# encoded independently of the current locale: <https://bugs.gnu.org/43421>.
+hash="636166e9636166e9636166e9636166e9636166e9636166e9636166e9636166e9"
+latin1_cafe="caf$(printf '\351')"
+echo "sign 21:tests/signing-key.sec 64:$hash" | guix authenticate \
+    | LC_ALL=C grep "hash sha256 \"$latin1_cafe"
 
 # Test for <http://bugs.gnu.org/17312>: make sure 'guix authenticate' produces
 # valid signatures when run in the C locale.
-echo "5eff0b55c9c5f5e87b4e34cd60a2d5654ca1eb78c7b3c67c3179fed1cff07b4c" \
-    > "$hash"
+hash="5eff0b55c9c5f5e87b4e34cd60a2d5654ca1eb78c7b3c67c3179fed1cff07b4c"
 
 LC_ALL=C
 export LC_ALL
 
-guix authenticate rsautl -sign				\
-    -inkey "$abs_top_srcdir/tests/signing-key.sec"	\
-    -in "$hash" > "$sig"
-
-guix authenticate rsautl -verify			\
-        -inkey "$abs_top_srcdir/tests/signing-key.pub"	\
-        -pubin -in "$sig"
-hash2="`guix authenticate rsautl -verify		\
-          -inkey $abs_top_srcdir/tests/signing-key.pub	\
-          -pubin -in $sig`"
-test "$hash2" = `cat "$hash"`
+echo "sign $key_len:$key $hash_len:$hash" | guix authenticate > "$sig"
+
+# Remove the leading "0".
+sed -i "$sig" -e's/^0 //g'
+
+echo "verify $(cat $sig)" | guix authenticate
+hash2="$(echo "verify $(cat $sig)" | guix authenticate | cut -f2 -d ' ')"
+test "$(echo $hash2 | cut -d : -f 2)" = "$hash"
diff --git a/tests/guix-build-branch.sh b/tests/guix-build-branch.sh
index c5b07e07c6..79aa06a58f 100644
--- a/tests/guix-build-branch.sh
+++ b/tests/guix-build-branch.sh
@@ -58,5 +58,4 @@ guix gc -R "$v0_1_0_drv" | grep guile-gcrypt-8fe64e8 # this is the tag ID
 test "$v0_1_0_drv" != "$latest_drv"
 test "$v0_1_0_drv" != "$orig_drv"
 
-if guix build guix --with-commit=guile-gcrypt=000 -d
-then false; else true; fi
+! guix build guix --with-commit=guile-gcrypt=000 -d
diff --git a/tests/guix-build.sh b/tests/guix-build.sh
index 6c08857358..b7602e668c 100644
--- a/tests/guix-build.sh
+++ b/tests/guix-build.sh
@@ -24,8 +24,7 @@
 guix build --version
 
 # Should fail.
-if guix build -e +;
-then false; else true; fi
+! guix build -e +
 
 # Source-less packages are accepted; they just return nothing.
 guix build -e '(@ (gnu packages bootstrap) %bootstrap-glibc)' -S
@@ -178,7 +177,7 @@ cat > "$module_dir/foo.scm" <<EOF
     (inputs (quasiquote (("sed" ,sed))))))  ;unbound variable
 EOF
 
-if guix build package-with-something-wrong -n; then false; else true; fi
+! guix build package-with-something-wrong -n
 guix build package-with-something-wrong -n 2> "$module_dir/err" || true
 grep "unbound" "$module_dir/err"		     # actual error
 grep "forget.*(gnu packages base)" "$module_dir/err" # hint
@@ -199,6 +198,33 @@ grep "forget.*(guix build-system gnu)" "$module_dir/err" # hint
 
 rm -f "$module_dir"/*
 
+# Unbound variable: don't suggest modules that do not export the variable.
+cat > "$module_dir/aa-private.scm" <<EOF
+(define-module (aa-private))
+(define make-thing #f)
+(set! make-thing make-thing)   ;don't inline
+EOF
+
+cat > "$module_dir/bb-public.scm" <<EOF
+(define-module (bb-public) #:export (make-thing))
+(define make-thing identity)
+EOF
+
+cat > "$module_dir/cc-user.scm" <<EOF
+;; Make those module available in the global name space.
+(load-from-path "aa-private.scm")
+(load-from-path "bb-public.scm")
+
+(define-module (cc-user))
+(make-thing 42)
+EOF
+! guix build -f "$module_dir/cc-user.scm" -n 2> "$module_dir/err"
+cat "$module_dir/err"
+grep "make-thing.*unbound" "$module_dir/err"		 # actual error
+grep "forget.*(bb-public)" "$module_dir/err"		 # hint
+
+rm -f "$module_dir"/*
+
 # Wrong 'define-module' clause reported by 'warn-about-load-error'.
 cat > "$module_dir/foo.scm" <<EOF
 (define-module (something foo)
@@ -222,7 +248,7 @@ test "`guix build --log-file guile-bootstrap`" = "$log"
 test "`guix build --log-file $out`" = "$log"
 
 # Should fail because the name/version combination could not be found.
-if guix build hello-0.0.1 -n; then false; else true; fi
+! guix build hello-0.0.1 -n
 
 # Keep a symlink to the result, registered as a root.
 result="t-result-$$"
@@ -231,8 +257,7 @@ guix build -r "$result"					\
 test -x "$result/bin/guile"
 
 # Should fail, because $result already exists.
-if guix build -r "$result" -e '(@@ (gnu packages bootstrap) %bootstrap-guile)'
-then false; else true; fi
+! guix build -r "$result" -e '(@@ (gnu packages bootstrap) %bootstrap-guile)'
 
 rm -f "$result"
 
@@ -259,8 +284,24 @@ drv1=`guix build guile -d`
 drv2=`guix build guile --with-input=gimp=ruby -d`
 test "$drv1" = "$drv2"
 
-if guix build guile --with-input=libunistring=something-really-silly
-then false; else true; fi
+# See <https://bugs.gnu.org/42156>.
+drv1=`guix build glib -d`
+drv2=`guix build glib -d --with-input=libreoffice=inkscape`
+test "$drv1" = "$drv2"
+
+# '--with-graft' should have no effect when using '--no-grafts'.
+# See <https://bugs.gnu.org/43890>.
+drv1=`guix build inkscape -d --no-grafts`
+drv2=`guix build inkscape -d --no-grafts --with-graft=glib=glib-networking`
+test "$drv1" = "$drv2"
+
+# Rewriting implicit inputs.
+drv1=`guix build hello -d`
+drv2=`guix build hello -d --with-input=gcc=gcc-toolchain`
+test "$drv1" != "$drv2"
+guix gc -R "$drv2" | grep `guix build -d gcc-toolchain`
+
+! guix build guile --with-input=libunistring=something-really-silly
 
 # Deprecated/superseded packages.
 test "`guix build superseded -d`" = "`guix build bar -d`"
@@ -268,10 +309,8 @@ test "`guix build superseded -d`" = "`guix build bar -d`"
 # Parsing package names and versions.
 guix build -n time		# PASS
 guix build -n time@1.9		# PASS, version found
-if guix build -n time@3.2;	# FAIL, version not found
-then false; else true; fi
-if guix build -n something-that-will-never-exist; # FAIL
-then false; else true; fi
+! guix build -n time@3.2	# FAIL, version not found
+! guix build -n something-that-will-never-exist # FAIL
 
 # Invoking a monadic procedure.
 guix build -e "(begin
@@ -343,5 +382,4 @@ export GUIX_BUILD_OPTIONS
 guix build emacs
 
 GUIX_BUILD_OPTIONS="--something-completely-crazy"
-if guix build emacs;
-then false; else true; fi
+! guix build emacs
diff --git a/tests/guix-daemon.sh b/tests/guix-daemon.sh
index b58500966b..330ad68835 100644
--- a/tests/guix-daemon.sh
+++ b/tests/guix-daemon.sh
@@ -224,7 +224,7 @@ daemon_pid=$!
 GUIX_DAEMON_SOCKET="guix://$tcp_socket"
 export GUIX_DAEMON_SOCKET
 
-if guix gc; then false; else true; fi
+! guix gc
 
 unset GUIX_DAEMON_SOCKET
 kill "$daemon_pid"
diff --git a/tests/guix-download.sh b/tests/guix-download.sh
index 30f55fbe2b..5475d43e60 100644
--- a/tests/guix-download.sh
+++ b/tests/guix-download.sh
@@ -23,14 +23,11 @@
 guix download --version
 
 # Make sure it fails here.
-if guix download http://does.not/exist
-then false; else true; fi
+! guix download http://does.not/exist
 
-if guix download unknown://some/where;
-then false; else true; fi
+! guix download unknown://some/where;
 
-if guix download /does-not-exist
-then false; else true; fi
+! guix download /does-not-exist
 
 # This one should succeed.
 guix download "file://$abs_top_srcdir/README"
@@ -46,5 +43,4 @@ GUIX_DAEMON_SOCKET="/nowhere" guix download -o "$output" \
 cmp "$output" "$abs_top_srcdir/README"
 
 # This one should fail.
-if guix download "file:///does-not-exist" "file://$abs_top_srcdir/README"
-then false; else true; fi
+! guix download "file:///does-not-exist" "file://$abs_top_srcdir/README"
diff --git a/tests/guix-environment-container.sh b/tests/guix-environment-container.sh
index 45264d4978..f2d15c8d0c 100644
--- a/tests/guix-environment-container.sh
+++ b/tests/guix-environment-container.sh
@@ -44,6 +44,21 @@ else
     test $? = 42
 fi
 
+# Make sure "localhost" resolves.
+guix environment --container --ad-hoc --bootstrap guile-bootstrap \
+     -- guile -c '(exit (pair? (getaddrinfo "localhost" "80")))'
+
+# We should get ECONNREFUSED, not ENETUNREACH, which would indicate that "lo"
+# is down.
+guix environment --container --ad-hoc --bootstrap guile-bootstrap \
+     -- guile -c "(exit (= ECONNREFUSED
+  (catch 'system-error
+    (lambda ()
+      (let ((sock (socket AF_INET SOCK_STREAM 0)))
+        (connect sock AF_INET INADDR_LOOPBACK 12345)))
+    (lambda args
+      (pk 'errno (system-error-errno args))))))"
+
 # Make sure '--preserve' is honored.
 result="`FOOBAR=42; export FOOBAR; guix environment -C --ad-hoc --bootstrap \
    guile-bootstrap -E ^FOO -- guile -c '(display (getenv \"FOOBAR\"))'`"
@@ -127,11 +142,15 @@ grep -e "$NIX_STORE_DIR/.*-bash" $tmpdir/mounts # bootstrap bash
 
 rm $tmpdir/mounts
 
-# Make sure 'GUIX_ENVIRONMENT' is linked to '~/.guix-profile' when requested
+# Make sure 'GUIX_ENVIRONMENT' is set to '~/.guix-profile' when requested
 # within a container.
 (
-  linktest='(exit (string=? (getenv "GUIX_ENVIRONMENT")
-(readlink (string-append (getenv "HOME") "/.guix-profile"))))'
+  linktest='
+(exit (and (string=? (getenv "GUIX_ENVIRONMENT")
+                     (string-append (getenv "HOME") "/.guix-profile"))
+           (string-prefix? "'"$NIX_STORE_DIR"'"
+                           (readlink (string-append (getenv "HOME")
+                                                    "/.guix-profile")))))'
 
   cd "$tmpdir" \
      && guix environment --bootstrap --container --link-profile \
diff --git a/tests/guix-environment.sh b/tests/guix-environment.sh
index 2faf38df06..afadcbe195 100644
--- a/tests/guix-environment.sh
+++ b/tests/guix-environment.sh
@@ -1,5 +1,5 @@
 # GNU Guix --- Functional package management for GNU
-# Copyright © 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
+# Copyright © 2015, 2016, 2017, 2018, 2019, 2021 Ludovic Courtès <ludo@gnu.org>
 #
 # This file is part of GNU Guix.
 #
@@ -60,7 +60,7 @@ guix environment --bootstrap --ad-hoc guile-bootstrap --pure	\
 grep '^PATH=' "$tmpdir/a"
 grep '^GUIX_TEST_ABC=' "$tmpdir/a"
 grep '^GUIX_TEST_DEF=' "$tmpdir/a"
-if grep '^GUIX_TEST_XYZ=' "$tmpdir/a"; then false; else true; fi
+! grep '^GUIX_TEST_XYZ=' "$tmpdir/a"
 
 # Make sure the exit value is preserved.
 if guix environment --bootstrap --ad-hoc guile-bootstrap --pure \
@@ -121,6 +121,12 @@ guix environment --bootstrap -r "$gcroot" --ad-hoc guile-bootstrap \
 test `readlink "$gcroot"` = "$expected"
 rm "$gcroot"
 
+# Try '-r' with a relative file name.
+(cd "$tmpdir"; mkdir "gc-root";
+ guix environment --bootstrap -r "gc-root/r" --ad-hoc guile-bootstrap \
+      -- guile -c 1;
+ rm "gc-root/r"; rmdir "gc-root")
+
 # Same with an absolute file name.
 guix environment --bootstrap -r "$PWD/$gcroot" --ad-hoc guile-bootstrap \
      -- guile -c 1
@@ -194,8 +200,7 @@ then
     done
 
     # 'make-boot0' itself must not be listed.
-    if guix gc --references "$profile" | grep make-boot0
-    then false; else true; fi
+    ! guix gc --references "$profile" | grep make-boot0
 
     # Make sure that the shell spawned with '--exec' sees the same environment
     # as returned by '--search-paths'.
@@ -212,8 +217,7 @@ then
     test "x$make_boot0_debug" != "x"
 
     # Make sure the "debug" output is not listed.
-    if guix gc --references "$profile" | grep "$make_boot0_debug"
-    then false; else true; fi
+    ! guix gc --references "$profile" | grep "$make_boot0_debug"
 
     # Compute the build environment for the initial GNU Make, but add in the
     # bootstrap Guile as an ad-hoc addition.
diff --git a/tests/guix-gc.sh b/tests/guix-gc.sh
index 8284287730..f40619876d 100644
--- a/tests/guix-gc.sh
+++ b/tests/guix-gc.sh
@@ -36,11 +36,11 @@ unset out
 # For some operations, passing extra arguments is an error.
 for option in "" "-C 500M" "--verify" "--optimize" "--list-roots"
 do
-    if guix gc $option whatever; then false; else true; fi
+    ! guix gc $option whatever
 done
 
 # This should fail.
-if guix gc --verify=foo; then false; else true; fi
+! guix gc --verify=foo
 
 # Check the references of a .drv.
 drv="`guix build guile-bootstrap -d`"
@@ -51,8 +51,7 @@ guix gc --references "$drv" | grep -e -bash
 guix gc --references "$out"
 guix gc --references "$out/bin/guile"
 
-if guix gc --references /dev/null;
-then false; else true; fi
+! guix gc --references /dev/null;
 
 # Check derivers.
 guix gc --derivers "$out" | grep "$drv"
@@ -72,8 +71,7 @@ test -f "$drv" && test -L guix-gc-root
 guix gc --list-roots | grep "$PWD/guix-gc-root"
 
 guix gc --list-live | grep "$drv"
-if guix gc --delete "$drv";
-then false; else true; fi
+! guix gc --delete "$drv";
 
 rm guix-gc-root
 guix gc --list-dead | grep "$drv"
@@ -84,8 +82,7 @@ guix gc --delete "$drv"
 guix gc -C 1KiB
 
 # Check trivial error cases.
-if guix gc --delete /dev/null;
-then false; else true; fi
+! guix gc --delete /dev/null;
 
 # Bug #19757
 out="`guix build guile-bootstrap`"
diff --git a/tests/guix-git-authenticate.sh b/tests/guix-git-authenticate.sh
index 1c76e240b5..8ebbea398b 100644
--- a/tests/guix-git-authenticate.sh
+++ b/tests/guix-git-authenticate.sh
@@ -46,9 +46,8 @@ v1_0_0_signer="3CE4 6455 8A84 FDC6 9DB4  0CFB 090B 1199 3D9A EBB5" # civodul
 v1_0_1_commit="d68de958b60426798ed62797ff7c96c327a672ac"
 
 # This should fail because these commits lack '.guix-authorizations'.
-if guix git authenticate "$v1_0_0_commit" "$v1_0_0_signer" \
-	--cache-key="$cache_key" --end="$v1_0_1_commit";
-then false; else true; fi
+! guix git authenticate "$v1_0_0_commit" "$v1_0_0_signer" \
+       --cache-key="$cache_key" --end="$v1_0_1_commit"
 
 # This should work thanks to '--historical-authorizations'.
 guix git authenticate "$v1_0_0_commit" "$v1_0_0_signer" 	\
diff --git a/tests/guix-graph.sh b/tests/guix-graph.sh
index ccb4933c88..666660ab4b 100644
--- a/tests/guix-graph.sh
+++ b/tests/guix-graph.sh
@@ -60,7 +60,7 @@ guix graph -t references guile-bootstrap | grep guile-bootstrap
 guix graph -e '(@ (gnu packages bootstrap) %bootstrap-guile)' \
     | grep guile-bootstrap
 
-if guix graph -e +; then false; else true; fi
+! guix graph -e +
 
 # Try passing store file names.
 
@@ -77,14 +77,13 @@ cmp "$tmpfile1" "$tmpfile2"
 # Try package transformation options.
 guix graph git | grep 'label = "openssl'
 guix graph git --with-input=openssl=libressl | grep 'label = "libressl'
-if guix graph git --with-input=openssl=libressl | grep 'label = "openssl'
-then false; else true; fi
+! guix graph git --with-input=openssl=libressl | grep 'label = "openssl'
 
 # Try --load-path
 guix graph -L $module_dir dummy | grep 'label = "dummy'
 
 # Displaying shortest paths (or lack thereof).
-if guix graph --path emacs vim; then false; else true; fi
+! guix graph --path emacs vim
 
 path="\
 emacs
diff --git a/tests/guix-hash.sh b/tests/guix-hash.sh
index 3538b9aeda..c4461fa955 100644
--- a/tests/guix-hash.sh
+++ b/tests/guix-hash.sh
@@ -1,5 +1,5 @@
 # GNU Guix --- Functional package management for GNU
-# Copyright © 2013, 2014, 2016, 2020 Ludovic Courtès <ludo@gnu.org>
+# Copyright © 2013, 2014, 2016, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
 # Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
 #
 # This file is part of GNU Guix.
@@ -34,8 +34,7 @@ test `guix hash -f base32 /dev/null` = 4oymiquy7qobjgx36tejs35zeqt24qpemsnzgtfes
 test `guix hash -H sha512 -f hex /dev/null` = cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e
 test `guix hash -H sha1 -f base64 /dev/null` = "2jmj7l5rSw0yVb/vlWAYkK/YBwk="
 
-if guix hash -H abcd1234 /dev/null;
-then false; else true; fi
+! guix hash -H abcd1234 /dev/null
 
 mkdir "$tmpdir"
 echo -n executable > "$tmpdir/exe"
@@ -44,15 +43,14 @@ chmod +x "$tmpdir/exe"
 mkdir "$tmpdir/subdir"
 
 test `guix hash -r "$tmpdir"` = 10k1lw41wyrjf9mxydi0is5nkpynlsvgslinics4ppir13g7d74p
+test `guix hash -r "$tmpdir" -H sha512` = 301ra58c2vahczzxiyfin41mpyb0ljh4dh9zn3ijvwviaw1j40sfzw5skh9x945da88n3785ggifzig7acd6k72h0mpsc20m1f66m9n
 
 # Without '-r', this should fail.
-if guix hash "$tmpdir"
-then false; else true; fi
+! guix hash "$tmpdir"
 
 # This should fail because /dev/null is a character device, which
 # the archive format doesn't support.
-if guix hash -r /dev/null
-then false; else true; fi
+! guix hash -r /dev/null
 
 # Adding a .git directory
 mkdir "$tmpdir/.git"
@@ -65,6 +63,5 @@ test `guix hash -r $tmpdir` = 0a50z04zyzf7pidwxv0nwbj82pgzbrhdy9562kncnvkcfvb48m
 test `guix hash -r $tmpdir -x` = 10k1lw41wyrjf9mxydi0is5nkpynlsvgslinics4ppir13g7d74p
 
 # Without '-r', this should fail.
-if guix hash "$tmpdir"
-then false; else true; fi
+! guix hash "$tmpdir"
 
diff --git a/tests/guix-lint.sh b/tests/guix-lint.sh
index f0df1fda3a..fdf548fbf1 100644
--- a/tests/guix-lint.sh
+++ b/tests/guix-lint.sh
@@ -22,8 +22,11 @@
 
 guix lint --version
 
-module_dir="t-guix-lint-$$"
-mkdir "$module_dir"
+# Choose a module directory not below any %LOAD-PATH component.  This is
+# necessary when testing '-L' with a relative file name.
+module_dir="$(mktemp -d)"
+
+mkdir -p "$module_dir"
 trap "rm -rf $module_dir" EXIT
 
 
@@ -55,24 +58,19 @@ grep_warning ()
 # 3) the description has a single space following the end-of-sentence period.
 
 out=`guix lint -c synopsis,description dummy 2>&1`
-if [ `grep_warning "$out"` -ne 3 ]
-then false; else true; fi
+test `grep_warning "$out"` -eq 3
 
 out=`guix lint -c synopsis dummy 2>&1`
-if [ `grep_warning "$out"` -ne 2 ]
-then false; else true; fi
+test `grep_warning "$out"` -eq 2
 
 out=`guix lint -c description dummy 2>&1`
-if [ `grep_warning "$out"` -ne 1 ]
-then false; else true; fi
+test `grep_warning "$out"` -eq 1
 
 out=`guix lint -c description,synopsis dummy 2>&1`
-if [ `grep_warning "$out"` -ne 3 ]
-then false; else true; fi
+test `grep_warning "$out"` -eq 3
 
-if guix lint -c synopsis,invalid-checker dummy 2>&1 | \
+guix lint -c synopsis,invalid-checker dummy 2>&1 | \
    grep -q 'invalid-checker: invalid checker'
-then true; else false; fi
 
 # Make sure specifying multiple packages works.
 guix lint -c inputs-should-be-native dummy dummy@42 dummy
@@ -82,8 +80,13 @@ guix lint -c inputs-should-be-native dummy dummy@42 dummy
 unset GUIX_PACKAGE_PATH
 
 out=`guix lint -L $module_dir -c synopsis,description dummy 2>&1`
-if [ `grep_warning "$out"` -ne 3 ]
-then false; else true; fi
+test `grep_warning "$out"` -eq 3
 
 # Make sure specifying multiple packages works.
 guix lint -L $module_dir -c inputs-should-be-native dummy dummy@42 dummy
+
+# Test '-L' with a relative file name.  'guix lint' will see "t-xyz/foo.scm"
+# (instead of "foo.scm") and will thus fail to find it in %LOAD-PATH.  Check
+# that it does find it anyway.  See <https://bugs.gnu.org/42543>.
+(cd "$module_dir"/.. ; guix lint -c formatting -L "$(basename "$module_dir")" dummy@42) 2>&1 > "$module_dir/out"
+test -z "$(cat "$module_dir/out")"
diff --git a/tests/guix-pack-relocatable.sh b/tests/guix-pack-relocatable.sh
index b8d36a02c6..b90bc7f891 100644
--- a/tests/guix-pack-relocatable.sh
+++ b/tests/guix-pack-relocatable.sh
@@ -1,5 +1,6 @@
 # GNU Guix --- Functional package management for GNU
 # Copyright © 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
+# Copyright © 2020 Eric Bavier <bavier@posteo.net>
 #
 # This file is part of GNU Guix.
 #
@@ -54,10 +55,23 @@ run_without_store ()
 	# Run the relocatable program in the current namespaces.  This is a
 	# weak test because we're going to access store items from the host
 	# store.
-	$*
+	sh -c "$*"
     fi
 }
 
+# Wait for the given file to show up.  Error out if it doesn't show up in a
+# timely fashion.
+wait_for_file ()
+{
+    i=0
+    while ! test -f "$1" && test $i -lt 20
+    do
+	sleep 0.3
+	i=`expr $i + 1`
+    done
+    test -f "$1"
+}
+
 test_directory="`mktemp -d`"
 export test_directory
 trap 'chmod -Rf +w "$test_directory"; rm -rf "$test_directory"' EXIT
@@ -77,8 +91,7 @@ then
     grep 'GNU sed' "$test_directory/output"
 
     # Check whether the exit code is preserved.
-    if run_without_store "$test_directory/Bin/sed" --does-not-exist;
-    then false; else true; fi
+    ! run_without_store "$test_directory/Bin/sed" --does-not-exist
 
     chmod -Rf +w "$test_directory"; rm -rf "$test_directory"/*
 else
@@ -99,6 +112,7 @@ case "`uname -m`" in
 	run_without_store GUIX_EXECUTION_ENGINE="fakechroot" \
 	"$test_directory/Bin/sed" --version > "$test_directory/output"
 	grep 'GNU sed' "$test_directory/output"
+	unset GUIX_EXECUTION_ENGINE
 
 	chmod -Rf +w "$test_directory"; rm -rf "$test_directory"/*
 
@@ -130,12 +144,105 @@ case "`uname -m`" in
 	;;
 esac
 
+if unshare -r true
+then
+    # Check what happens if the wrapped binary forks and leaves child
+    # processes behind, like a daemon.  The root file system should remain
+    # available to those child processes.  See <https://bugs.gnu.org/44261>.
+    cat > "$test_directory/manifest.scm" <<EOF
+(use-modules (guix))
+
+(define daemon
+  (program-file "daemon"
+                #~(begin
+                    (use-modules (ice-9 match)
+                                 (ice-9 ftw))
+
+                    (call-with-output-file "parent-store"
+                      (lambda (port)
+                        (write (scandir (ungexp (%store-prefix)))
+                               port)))
+
+                    (match (primitive-fork)
+                      (0 (sigaction SIGHUP (const #t))
+                         (call-with-output-file "pid"
+                           (lambda (port)
+                             (display (getpid) port)))
+                         (pause)
+                         (call-with-output-file "child-store"
+                           (lambda (port)
+                             (write (scandir (ungexp (%store-prefix)))
+                                    port))))
+                      (_ #t)))))
+
+(define package
+  (computed-file "package"
+                 #~(let ((out (ungexp output)))
+                     (mkdir out)
+                     (mkdir (string-append out "/bin"))
+                     (symlink (ungexp daemon)
+                              (string-append out "/bin/daemon")))))
+
+(manifest (list (manifest-entry
+                  (name "daemon")
+                  (version "0")
+                  (item package))))
+EOF
+
+    tarball="$(guix pack -S /bin=bin -R -m "$test_directory/manifest.scm")"
+    (cd "$test_directory"; tar xf "$tarball")
+
+    # Run '/bin/daemon', which forks, then wait for the child, send it SIGHUP
+    # so that it dumps its view of the store, and make sure the child and
+    # parent both see the same store contents.
+    (cd "$test_directory"; run_without_store ./bin/daemon)
+    wait_for_file "$test_directory/pid"
+    kill -HUP $(cat "$test_directory/pid")
+    wait_for_file "$test_directory/child-store"
+    diff -u "$test_directory/parent-store" "$test_directory/child-store"
+
+    chmod -Rf +w "$test_directory"; rm -rf "$test_directory"/*
+fi
+
 # Ensure '-R' works with outputs other than "out".
 tarball="`guix pack -R -S /share=share groff:doc`"
 (cd "$test_directory"; tar xf "$tarball")
 test -d "$test_directory/share/doc/groff/html"
+chmod -Rf +w "$test_directory"; rm -rf "$test_directory"/*
 
 # Ensure '-R' applies to propagated inputs.  Failing to do that, it would fail
 # with a profile collision error in this case because 'python-scipy'
 # propagates 'python-numpy'.  See <https://bugs.gnu.org/42510>.
 guix pack -RR python-numpy python-scipy --no-grafts -n
+
+# Check that packages that mix executable and support files (e.g. git) in the
+# "binary" directories still work after wrapped.
+cat >"$test_directory/manifest.scm" <<'EOF'
+(use-modules (guix) (guix profiles) (guix search-paths)
+             (gnu packages bootstrap))
+(manifest
+ (list (manifest-entry
+        (name "test") (version "0")
+        (item (file-union "test"
+                          `(("bin/hello"
+                             ,(program-file
+                               "hello"
+                               #~(begin
+                                   (add-to-load-path (getenv "HELLO_EXEC_PATH"))
+                                   (display (load-from-path "msg"))(newline))
+                               #:guile %bootstrap-guile))
+                            ("libexec/hello/msg"
+                             ,(plain-file "msg" "42")))))
+        (search-paths
+         (list (search-path-specification
+                (variable "HELLO_EXEC_PATH")
+                (files '("libexec/hello"))
+                (separator #f)))))))
+EOF
+tarball="`guix pack -RR -S /opt= -m $test_directory/manifest.scm`"
+(cd "$test_directory"; tar xvf "$tarball")
+( export GUIX_PROFILE=$test_directory/opt
+  . $GUIX_PROFILE/etc/profile
+  run_without_store "$test_directory/opt/bin/hello" > "$test_directory/output" )
+cat "$test_directory/output"
+test "`cat $test_directory/output`" = "42"
diff --git a/tests/guix-pack.sh b/tests/guix-pack.sh
index 39b64791e2..0339221ac2 100644
--- a/tests/guix-pack.sh
+++ b/tests/guix-pack.sh
@@ -45,8 +45,7 @@ guix gc -R "$drv" | grep "`guix build coreutils -d --no-grafts`"
 drv="`guix pack idutils -d --no-grafts --target=arm-linux-gnueabihf`"
 guix gc -R "$drv" | \
     grep "`guix build idutils --target=arm-linux-gnueabihf -d --no-grafts`"
-if guix gc -R "$drv" | grep "`guix build idutils -d --no-grafts`";
-then false; else true; fi
+! guix gc -R "$drv" | grep "`guix build idutils -d --no-grafts`"
 
 # Build a tarball with no compression.
 guix pack --compression=none --bootstrap guile-bootstrap
diff --git a/tests/guix-package-aliases.sh b/tests/guix-package-aliases.sh
index e24bff3a56..311838b768 100644
--- a/tests/guix-package-aliases.sh
+++ b/tests/guix-package-aliases.sh
@@ -36,26 +36,28 @@ guix install --bootstrap guile-bootstrap -p "$profile"
 test -x "$profile/bin/guile"
 
 # Make sure '-r' isn't passed as-is to 'guix package'.
-if guix install -r guile-bootstrap -p "$profile" --bootstrap
-then false; else true; fi
+! guix install -r guile-bootstrap -p "$profile" --bootstrap
 test -x "$profile/bin/guile"
 
+# Use a package transformation option and make sure it's recorded.
+guix install --bootstrap guile-bootstrap -p "$profile" \
+     --with-input=libreoffice=inkscape
+test -x "$profile/bin/guile"
+grep "libreoffice=inkscape" "$profile/manifest"
+
 guix upgrade --version
 guix upgrade -n
 guix upgrade gui.e -n
-if guix upgrade foo bar -n;
-then false; else true; fi
+! guix upgrade foo bar -n;
 
 guix remove --version
 guix remove --bootstrap guile-bootstrap -p "$profile"
 ! test -x "$profile/bin/guile"
 test `guix package -p "$profile" -I | wc -l` -eq 0
 
-if guix remove -p "$profile" this-is-not-installed --bootstrap
-then false; else true; fi
+! guix remove -p "$profile" this-is-not-installed --bootstrap
 
-if guix remove -i guile-bootstrap -p "$profile" --bootstrap
-then false; else true; fi
+! guix remove -i guile-bootstrap -p "$profile" --bootstrap
 
 guix search '\<board\>' game | grep '^name: gnubg'
 
@@ -64,7 +66,7 @@ guix show guile
 guix show python@3 | grep "^name: python"
 
 # "python@2" exists but is deprecated; make sure it doesn't show up.
-if guix show python@2; then false; else true; fi
+! guix show python@2
 
 # Specifying multiple packages.
 output="`guix show sed grep | grep ^name:`"
diff --git a/tests/guix-package-net.sh b/tests/guix-package-net.sh
index 3876701fa2..6d21c6cff6 100644
--- a/tests/guix-package-net.sh
+++ b/tests/guix-package-net.sh
@@ -95,10 +95,8 @@ test "`guix package -p "$profile" -l | cut -f1 | grep guile | head -n1`" \
      = "  guile-bootstrap"
 
 # Exit with 1 when a generation does not exist.
-if guix package -p "$profile" --list-generations=42;
-then false; else true; fi
-if guix package -p "$profile" --switch-generation=99;
-then false; else true; fi
+! guix package -p "$profile" --list-generations=42
+! guix package -p "$profile" --switch-generation=99
 
 # Remove a package.
 guix package --bootstrap -p "$profile" -r "guile-bootstrap"
@@ -174,8 +172,7 @@ test -z "`guix package -p "$profile" -l 3`"
 rm "$profile"
 guix package --bootstrap -p "$profile" -i guile-bootstrap
 guix package --bootstrap -p "$profile_alt" -i gcc-bootstrap
-if guix package -p "$profile" --search-paths | grep LIBRARY_PATH
-then false; fi
+! guix package -p "$profile" --search-paths | grep LIBRARY_PATH
 guix package -p "$profile" -p "$profile_alt" --search-paths \
      | grep "LIBRARY_PATH.*$profile/lib.$profile_alt/lib"
 
diff --git a/tests/guix-package.sh b/tests/guix-package.sh
index 1f955257be..3e5fa71d20 100644
--- a/tests/guix-package.sh
+++ b/tests/guix-package.sh
@@ -1,5 +1,5 @@
 # GNU Guix --- Functional package management for GNU
-# Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
+# Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
 # Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
 #
 # This file is part of GNU Guix.
@@ -36,8 +36,7 @@ rm -f "$profile" "$tmpfile"
 trap 'rm -f "$profile" "$profile.lock" "$profile-"[0-9]* "$tmpfile"; rm -rf "$module_dir" t-home-'"$$" EXIT
 
 # Use `-e' with a non-package expression.
-if guix package --bootstrap -e +;
-then false; else true; fi
+! guix package --bootstrap -e +
 
 # Install a store item and make sure the version and output in the manifest
 # are correct.
@@ -62,8 +61,7 @@ test -f "$profile/bin/guile"
 
 # Collisions are properly flagged (in this case, 'g-wrap' propagates
 # guile@2.2, which conflicts with guile@2.0.)
-if guix package --bootstrap -n -p "$profile" -i g-wrap guile@2.0
-then false; else true; fi
+! guix package --bootstrap -n -p "$profile" -i g-wrap guile@2.0
 
 guix package --bootstrap -n -p "$profile" -i g-wrap guile@2.0 \
      --allow-collisions
@@ -78,8 +76,7 @@ test "`guix package -p "$profile" --search-paths | wc -l`" = 1  # $PATH
   type -P rm )
 
 # Exit with 1 when a generation does not exist.
-if guix package -p "$profile" --delete-generations=42;
-then false; else true; fi
+! guix package -p "$profile" --delete-generations=42
 
 # Exit with 0 when trying to delete the zeroth generation.
 guix package -p "$profile" --delete-generations=0
@@ -92,15 +89,12 @@ guix package --bootstrap -i "glibc:debug" -p "$profile" -n
 
 # Make sure nonexistent outputs are reported.
 guix package --bootstrap -i "guile-bootstrap:out" -p "$profile" -n
-if guix package --bootstrap -i "guile-bootstrap:does-not-exist" -p "$profile" -n;
-then false; else true; fi
-if guix package --bootstrap -i "guile-bootstrap:does-not-exist" -p "$profile";
-then false; else true; fi
+! guix package --bootstrap -i "guile-bootstrap:does-not-exist" -p "$profile" -n
+! guix package --bootstrap -i "guile-bootstrap:does-not-exist" -p "$profile"
 
 # Make sure we get an error when trying to remove something that's not
 # installed.
-if guix package --bootstrap -r something-not-installed -p "$profile";
-then false; else true; fi
+! guix package --bootstrap -r something-not-installed -p "$profile"
 
 # Check whether `--list-available' returns something sensible.
 guix package -p "$profile" -A 'gui.*e' | grep guile
@@ -112,8 +106,8 @@ guix package --show=guile | grep "^name: guile"
 guix package --show=texlive
 
 # Fail for non-existent packages or package/version pairs.
-if guix package --show=does-not-exist; then false; else true; fi
-if guix package --show=emacs@42; then false; else true; fi
+! guix package --show=does-not-exist
+! guix package --show=emacs@42
 
 # Search.
 LC_MESSAGES=C
@@ -157,22 +151,19 @@ guix package --search="" > /dev/null
 # There's no generation older than 12 months, so the following command should
 # have no effect.
 generation="`readlink_base "$profile"`"
-if guix package -p "$profile" --delete-generations=12m;
-then false; else true; fi
+! guix package -p "$profile" --delete-generations=12m
 test "`readlink_base "$profile"`" = "$generation"
 
 # The following command should not delete the current generation, even though
 # it matches the given pattern (see <http://bugs.gnu.org/19978>.)  And since
 # there's nothing else to delete, it should just fail.
 guix package --list-generations -p "$profile"
-if guix package --bootstrap -p "$profile" --delete-generations=1..
-then false; else true; fi
+! guix package --bootstrap -p "$profile" --delete-generations=1..
 test "`readlink_base "$profile"`" = "$generation"
 
 # Make sure $profile is a GC root at this point.
 real_profile="`readlink -f "$profile"`"
-if guix gc -d "$real_profile"
-then false; else true; fi
+! guix gc -d "$real_profile"
 test -d "$real_profile"
 
 # Now, let's remove all the symlinks to $real_profile, and make sure
@@ -193,6 +184,21 @@ grep -E 'emacs[[:blank:]]+42\.5\.9rc7' "$tmpfile"
 rm "$emacs_tarball" "$tmpfile"
 rmdir "$module_dir"
 
+# Install with package transformations.
+guix install --bootstrap -p "$profile" sed --with-input=sed=guile-bootstrap
+grep "sed=guile-bootstrap" "$profile/manifest"
+test "$(readlink -f "$profile/bin/guile")" \
+     = "$(guix build guile-bootstrap)/bin/guile"
+test ! -f "$profile/bin/sed"
+
+# Make sure the package transformation is preserved.
+guix package --bootstrap -p "$profile" -u
+grep "sed=guile-bootstrap" "$profile/manifest"
+test "$(readlink -f "$profile/bin/guile")" \
+     = "$(guix build guile-bootstrap)/bin/guile"
+test ! -f "$profile/bin/sed"
+rm "$profile" "$profile"-[0-9]-link
+
 # Profiles with a relative file name.  Make sure we don't create dangling
 # symlinks--see bug report at
 # <https://lists.gnu.org/archive/html/guix-devel/2018-07/msg00036.html>.
@@ -238,16 +244,15 @@ done
 
 # Check whether '-p ~/.guix-profile' makes any difference.
 # See <http://bugs.gnu.org/17939>.
-if test -e "$HOME/.guix-profile-0-link"; then false; fi
-if test -e "$HOME/.guix-profile-1-link"; then false; fi
+! test -e "$HOME/.guix-profile-0-link"
+! test -e "$HOME/.guix-profile-1-link"
 guix package --bootstrap -p "$HOME/.guix-profile" -i guile-bootstrap
-if test -e "$HOME/.guix-profile-1-link"; then false; fi
+! test -e "$HOME/.guix-profile-1-link"
 guix package --bootstrap --roll-back -p "$HOME/.guix-profile"
-if test -e "$HOME/.guix-profile-0-link"; then false; fi
+! test -e "$HOME/.guix-profile-0-link"
 
 # Extraneous argument.
-if guix package install foo-bar;
-then false; else true; fi
+! guix package install foo-bar
 
 # Make sure the "broken pipe" doesn't yield an error.
 # Note: 'pipefail' is a Bash-specific option.
@@ -267,7 +272,7 @@ cat > "$module_dir/foo.scm"<<EOF
 (define-public x
   (package (inherit emacs)
     (name "emacs-foo-bar")
-    (version "42")))
+    (version "42.77.0")))
 EOF
 
 guix package -A emacs-foo-bar -L "$module_dir" | grep 42
@@ -308,7 +313,7 @@ cat > "$module_dir/foo.scm"<<EOF
     (source (origin (inherit (package-source emacs))
               (patches (list (search-patch "emacs.patch")))))
     (name "emacs-foo-bar-patched")
-    (version "42")))
+    (version "42.42.42")))
 
 (define-public y
   (package (inherit emacs)
@@ -336,8 +341,7 @@ cat > "$module_dir/package.scm"<<EOF
 
 (define my-package coreutils)   ;returns *unspecified*
 EOF
-if guix package --bootstrap --install-from-file="$module_dir/package.scm"
-then false; else true; fi
+! guix package --bootstrap --install-from-file="$module_dir/package.scm"
 
 rm "$module_dir/package.scm"
 
diff --git a/tests/guix-repl.sh b/tests/guix-repl.sh
index e1c2b8241f..d4ebb5f6c6 100644
--- a/tests/guix-repl.sh
+++ b/tests/guix-repl.sh
@@ -45,6 +45,10 @@ EOF
 
 test "`guix repl "$tmpfile"`" = "coreutils"
 
+# Make sure that the file can also be loaded when passed as a relative file
+# name.
+(cd "$(dirname "$tmpfile")"; test "$(guix repl "$(basename "$tmpfile")")" = "coreutils")
+
 
 cat > "$module_dir/foo.scm"<<EOF
 (define-module (foo)
diff --git a/tests/guix-system.sh b/tests/guix-system.sh
index 0e22686a34..f5ddd1dda3 100644
--- a/tests/guix-system.sh
+++ b/tests/guix-system.sh
@@ -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, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
 # Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
 # Copyright © 2018 Chris Marusich <cmmarusich@gmail.com>
 #
@@ -204,7 +204,8 @@ cat > "$tmpfile" <<EOF
       (shepherd-service
         (provision '(buggy!))
         (requirement '(does-not-exist))
-        (start #t)))))
+        (start #t)))
+    (description "Buggy.")))
 
 (operating-system
   $OS_BASE
@@ -261,8 +262,8 @@ guix system vm "$tmpfile" -d | grep '\.drv$'
 drv1="`guix system vm "$tmpfile" -d`"
 drv2="`guix system vm "$tmpfile" -d`"
 test "$drv1" = "$drv2"
-drv1="`guix system disk-image --file-system-type=iso9660 "$tmpfile" -d`"
-drv2="`guix system disk-image --file-system-type=iso9660 "$tmpfile" -d`"
+drv1="`guix system image -t iso9660 "$tmpfile" -d`"
+drv2="`guix system image -t iso9660 "$tmpfile" -d`"
 test "$drv1" = "$drv2"
 
 make_user_config "group-that-does-not-exist" "users"
@@ -297,10 +298,27 @@ EOF
 guix system build "$tmpdir/config.scm" -n
 (cd "$tmpdir"; guix system build "config.scm" -n)
 
+# Check that we get a warning when passing 'local-file' a non-literal relative
+# file name.
+cat > "$tmpdir/config.scm" <<EOF
+(use-modules (guix))
+
+(define (bad-local-file file)
+  (local-file file))
+
+(bad-local-file "whatever.scm")
+EOF
+! guix system build "$tmpdir/config.scm" -n
+guix system build "$tmpdir/config.scm" -n 2>&1 | \
+    grep "config\.scm:4:2: warning:.*whatever.*relative to current directory"
+
 # Searching.
 guix system search tor | grep "^name: tor"
 guix system search tor | grep "^shepherdnames: tor"
 guix system search anonym network | grep "^name: tor"
+guix system search . > "$tmpdir/search"
+test $(wc -l < "$tmpdir/search") -gt 500
+rm "$tmpdir/search"
 
 # Below, use -n (--dry-run) for the tests because if we actually tried to
 # build these images, the commands would take hours to run in the worst case.
@@ -320,5 +338,8 @@ guix system -n vm gnu/system/examples/vm-image.tmpl
 guix system -n vm-image gnu/system/examples/vm-image.tmpl
 # This invocation was taken care of in the loop above:
 # guix system -n disk-image gnu/system/examples/bare-bones.tmpl
-guix system -n disk-image --file-system-type=iso9660 gnu/system/examples/bare-bones.tmpl
+guix system -n disk-image -t iso9660 gnu/system/examples/bare-bones.tmpl
 guix system -n docker-image gnu/system/examples/docker-image.tmpl
+
+# Verify that at least the raw image type is available.
+guix system --list-image-types | grep "raw"
diff --git a/tests/import-utils.scm b/tests/import-utils.scm
index 87dda3238f..874816442e 100644
--- a/tests/import-utils.scm
+++ b/tests/import-utils.scm
@@ -1,6 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2015, 2017 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
+;;; Copyright © 2020 Martin Becze <mjbecze@riseup.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -48,15 +49,16 @@
     (package
       (name "foo")
       (inputs `(("bar" ,bar)))))
-  (recursive-import "foo" 'repo
+  (recursive-import "foo"
+                    #:repo 'repo
                     #:repo->guix-package
                     (match-lambda*
-                      (("foo" 'repo)
+                      (("foo" #:version #f #:repo 'repo)
                        (values '(package
                                   (name "foo")
                                   (inputs `(("bar" ,bar))))
                                '("bar")))
-                      (("bar" 'repo)
+                      (("bar" #:version #f #:repo 'repo)
                        (values '(package
                                   (name "bar"))
                                '())))
@@ -120,6 +122,38 @@
     (or (package-license (alist->package meta))
         'license-is-false)))
 
+(test-equal "alist->package with SPDX license name 1/2"  ;<https://bugs.gnu.org/45453>
+  license:expat
+  (let* ((meta '(("name" . "hello")
+                 ("version" . "2.10")
+                 ("source" . (("method" . "url-fetch")
+                              ("uri"    . "mirror://gnu/hello/hello-2.10.tar.gz")
+                              ("sha256" .
+                               (("base32" .
+                                 "0ssi1wpaf7plaswqqjwigppsg5fyh99vdlb9kzl7c9lng89ndq1i")))))
+                 ("build-system" . "gnu")
+                 ("home-page" . "https://gnu.org")
+                 ("synopsis" . "Say hi")
+                 ("description" . "This package says hi.")
+                 ("license" . "expat"))))
+    (package-license (alist->package meta))))
+
+(test-equal "alist->package with SPDX license name 2/2"  ;<https://bugs.gnu.org/45453>
+  license:expat
+  (let* ((meta '(("name" . "hello")
+                 ("version" . "2.10")
+                 ("source" . (("method" . "url-fetch")
+                              ("uri"    . "mirror://gnu/hello/hello-2.10.tar.gz")
+                              ("sha256" .
+                               (("base32" .
+                                 "0ssi1wpaf7plaswqqjwigppsg5fyh99vdlb9kzl7c9lng89ndq1i")))))
+                 ("build-system" . "gnu")
+                 ("home-page" . "https://gnu.org")
+                 ("synopsis" . "Say hi")
+                 ("description" . "This package says hi.")
+                 ("license" . "MIT"))))
+    (package-license (alist->package meta))))
+
 (test-equal "alist->package with dependencies"
   `(("gettext" ,(specification->package "gettext")))
   (let* ((meta '(("name" . "hello")
diff --git a/tests/inferior.scm b/tests/inferior.scm
index 5fddb1fd13..7c3d730d0c 100644
--- a/tests/inferior.scm
+++ b/tests/inferior.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -75,6 +75,18 @@
       (inferior-eval '(throw 'a 'b 'c 'd) inferior)
       'badness)))
 
+(test-equal "&inferior-exception, legacy mode"
+  '(a b c d)
+  ;; Omit #:command to open an inferior in "legacy" mode, where Guile runs
+  ;; directly.
+  (let ((inferior (open-inferior %top-builddir)))
+    (guard (c ((inferior-exception? c)
+               (close-inferior inferior)
+               (and (eq? inferior (inferior-exception-inferior c))
+                    (inferior-exception-arguments c))))
+      (inferior-eval '(throw 'a 'b 'c 'd) inferior)
+      'badness)))
+
 (test-equal "inferior-packages"
   (take (sort (fold-packages (lambda (package lst)
                                (cons (list (package-name package)
@@ -213,6 +225,26 @@
                                                       "uh uh")))
       #f)))
 
+(test-equal "inferior-eval-with-store, exception"
+  '(the-answer = 42)
+  (let ((inferior (open-inferior %top-builddir
+                                 #:command "scripts/guix")))
+    (guard (c ((inferior-exception? c)
+               (close-inferior inferior)
+               (inferior-exception-arguments c)))
+      (inferior-eval-with-store inferior %store
+                                '(lambda (store)
+                                   (throw 'the-answer '= 42))))))
+
+(test-equal "inferior-eval-with-store, not a procedure"
+  'wrong-type-arg
+  (let ((inferior (open-inferior %top-builddir
+                                 #:command "scripts/guix")))
+    (guard (c ((inferior-exception? c)
+               (close-inferior inferior)
+               (car (inferior-exception-arguments c))))
+     (inferior-eval-with-store inferior %store '(+ 1 2)))))
+
 (test-equal "inferior-package-derivation"
   (map derivation-file-name
        (list (package-derivation %store %bootstrap-guile "x86_64-linux")
diff --git a/tests/lint.scm b/tests/lint.scm
index 95abd71378..7c24611934 100644
--- a/tests/lint.scm
+++ b/tests/lint.scm
@@ -7,6 +7,7 @@
 ;;; Copyright © 2017 Alex Kost <alezost@gmail.com>
 ;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2018, 2019 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2020 Timothy Sample <samplet@ngyro.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -36,6 +37,10 @@
   #:use-module (guix lint)
   #:use-module (guix ui)
   #:use-module (guix swh)
+  #:use-module ((guix gexp) #:select (local-file))
+  #:use-module ((guix utils) #:select (call-with-temporary-directory))
+  #:use-module ((guix import hackage) #:select (%hackage-url))
+  #:use-module ((guix import stackage) #:select (%stackage-url))
   #:use-module (gnu packages)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages pkg-config)
@@ -310,7 +315,7 @@
                               `(("python-setuptools" ,python-setuptools))))))
      (check-inputs-should-not-be-an-input-at-all pkg))))
 
-(test-equal "patches: file names"
+(test-equal "file patches: different file name -> warning"
   "file names of patches should start with the package name"
   (single-lint-warning-message
    (let ((pkg (dummy-package "x"
@@ -319,6 +324,37 @@
                                (patches (list "/path/to/y.patch")))))))
      (check-patch-file-names pkg))))
 
+(test-equal "file patches: same file name -> no warnings"
+  '()
+  (let ((pkg (dummy-package "x"
+                            (source
+                             (dummy-origin
+                              (patches (list "/path/to/x.patch")))))))
+    (check-patch-file-names pkg)))
+
+(test-equal "<origin> patches: different file name -> warning"
+  "file names of patches should start with the package name"
+  (single-lint-warning-message
+   (let ((pkg (dummy-package "x"
+                             (source
+                              (dummy-origin
+                               (patches
+                                (list
+                                 (dummy-origin
+                                  (file-name "y.patch")))))))))
+     (check-patch-file-names pkg))))
+
+(test-equal "<origin> patches: same file name -> no warnings"
+  '()
+  (let ((pkg (dummy-package "x"
+                            (source
+                             (dummy-origin
+                              (patches
+                               (list
+                                (dummy-origin
+                                 (file-name "x.patch")))))))))
+    (check-patch-file-names pkg)))
+
 (test-equal "patches: file name too long"
   (string-append "x-"
                  (make-string 100 #\a)
@@ -344,6 +380,60 @@
                   (list (search-patch "this-patch-does-not-exist!"))))))))
      (check-patch-file-names pkg))))
 
+(test-assert "patch headers: no warnings"
+  (call-with-temporary-directory
+   (lambda (directory)
+     (call-with-output-file (string-append directory "/t.patch")
+       (lambda (port)
+         (display "This is a patch.\n\n--- a\n+++ b\n"
+                  port)))
+
+     (parameterize ((%patch-path (list directory)))
+       (let ((pkg (dummy-package "x"
+                    (source (dummy-origin
+                             (patches (search-patches "t.patch")))))))
+         (null? (check-patch-headers pkg)))))))
+
+(test-equal "patch headers: missing comment"
+  "t.patch: patch lacks comment and upstream status"
+  (call-with-temporary-directory
+   (lambda (directory)
+     (call-with-output-file (string-append directory "/t.patch")
+       (lambda (port)
+         (display "\n--- a\n+++ b\n"
+                  port)))
+
+     (parameterize ((%patch-path (list directory)))
+       (let ((pkg (dummy-package "x"
+                    (source (dummy-origin
+                             (patches (search-patches "t.patch")))))))
+         (single-lint-warning-message (check-patch-headers pkg)))))))
+
+(test-equal "patch headers: empty"
+  "t.patch: empty patch"
+  (call-with-temporary-directory
+   (lambda (directory)
+     (call-with-output-file (string-append directory "/t.patch")
+       (const #t))
+
+     (parameterize ((%patch-path '()))
+       (let ((pkg (dummy-package "x"
+                    (source (dummy-origin
+                             (patches
+                              (list (local-file
+                                     (string-append directory
+                                                    "/t.patch")))))))))
+         (single-lint-warning-message (check-patch-headers pkg)))))))
+
+(test-equal "patch headers: patch not found"
+  "does-not-exist.patch: patch not found\n"
+  (parameterize ((%patch-path '()))
+    (let ((pkg (dummy-package "x"
+                 (source (dummy-origin
+                          (patches
+                           (search-patches "does-not-exist.patch")))))))
+      (single-lint-warning-message (check-patch-headers pkg)))))
+
 (test-equal "derivation: invalid arguments"
   "failed to create x86_64-linux derivation: (wrong-type-arg \"map\" \"Wrong type argument: ~S\" (invalid-module) ())"
   (match (let ((pkg (dummy-package "x"
@@ -1001,6 +1091,35 @@
     (string-contains (single-lint-warning-message warnings)
                      "rate limit reached")))
 
+(test-skip (if (http-server-can-listen?) 0 1))
+(test-assert "haskell-stackage"
+  (let* ((stackage (string-append "{ \"packages\": [{"
+                                  "    \"name\":\"x\","
+                                  "    \"version\":\"1.0\" }]}"))
+         (packages (map (lambda (version)
+                          (dummy-package
+                           (string-append "ghc-x")
+                           (version version)
+                           (source
+                            (dummy-origin
+                             (method url-fetch)
+                             (uri (string-append
+                                   "https://hackage.haskell.org/package/"
+                                   "x-" version "/x-" version ".tar.gz"))))))
+                        '("0.9" "1.0" "2.0")))
+         (warnings (pk (with-http-server `((200 ,stackage) ; memoized
+                                           (200 "name: x\nversion: 1.0\n")
+                                           (200 "name: x\nversion: 1.0\n")
+                                           (200 "name: x\nversion: 1.0\n"))
+                         (parameterize ((%hackage-url (%local-url))
+                                        (%stackage-url (%local-url)))
+                           (append-map check-haskell-stackage packages))))))
+    (match warnings
+      (((? lint-warning? warning))
+       (and (string=? (package-version (lint-warning-package warning)) "2.0")
+            (string-contains (lint-warning-message warning)
+                             "ahead of Stackage LTS version"))))))
+
 (test-end "lint")
 
 ;; Local Variables:
diff --git a/tests/lzlib.scm b/tests/lzlib.scm
deleted file mode 100644
index 63d1e15641..0000000000
--- a/tests/lzlib.scm
+++ /dev/null
@@ -1,120 +0,0 @@
-;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.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 (test-lzlib)
-  #:use-module (guix lzlib)
-  #:use-module (guix tests)
-  #:use-module (srfi srfi-64)
-  #:use-module (rnrs bytevectors)
-  #:use-module (rnrs io ports)
-  #:use-module (ice-9 match))
-
-;; Test the (guix lzlib) module.
-
-(define-syntax-rule (test-assert* description exp)
-  (begin
-    (unless (lzlib-available?)
-      (test-skip 1))
-    (test-assert description exp)))
-
-(test-begin "lzlib")
-
-(define (compress-and-decompress data)
-  "DATA must be a bytevector."
-  (pk "Uncompressed bytes:" (bytevector-length data))
-  (match (pipe)
-    ((parent . child)
-     (match (primitive-fork)
-       (0                               ;compress
-        (dynamic-wind
-          (const #t)
-          (lambda ()
-            (close-port parent)
-            (call-with-lzip-output-port child
-              (lambda (port)
-                (put-bytevector port data))))
-          (lambda ()
-            (primitive-exit 0))))
-       (pid                             ;decompress
-        (begin
-          (close-port child)
-          (let ((received (call-with-lzip-input-port parent
-                            (lambda (port)
-                              (get-bytevector-all port)))))
-            (match (waitpid pid)
-              ((_ . status)
-               (pk "Status" status)
-               (pk "Length data" (bytevector-length data) "received" (bytevector-length received))
-               ;; The following loop is a debug helper.
-               (let loop ((i 0))
-                 (if (and (< i (bytevector-length received))
-                          (= (bytevector-u8-ref received i)
-                             (bytevector-u8-ref data i)))
-                     (loop (+ 1 i))
-                     (pk "First diff at index" i)))
-               (and (zero? status)
-                    (port-closed? parent)
-                    (bytevector=? received data)))))))))))
-
-(test-assert* "null bytevector"
-  (compress-and-decompress (make-bytevector (+ (random 100000)
-                                               (* 20 1024)))))
-
-(test-assert* "random bytevector"
-  (compress-and-decompress (random-bytevector (+ (random 100000)
-                                                 (* 20 1024)))))
-(test-assert* "small bytevector"
-  (compress-and-decompress (random-bytevector 127)))
-
-(test-assert* "1 bytevector"
-  (compress-and-decompress (random-bytevector 1)))
-
-(test-assert* "Bytevector of size relative to Lzip internal buffers (2 * dictionary)"
-  (compress-and-decompress
-   (random-bytevector
-    (* 2 (dictionary-size+match-length-limit %default-compression-level)))))
-
-(test-assert* "Bytevector of size relative to Lzip internal buffers (64KiB)"
-  (compress-and-decompress (random-bytevector (* 64 1024))))
-
-(test-assert* "Bytevector of size relative to Lzip internal buffers (64KiB-1)"
-  (compress-and-decompress (random-bytevector (1- (* 64 1024)))))
-
-(test-assert* "Bytevector of size relative to Lzip internal buffers (64KiB+1)"
-  (compress-and-decompress (random-bytevector (1+ (* 64 1024)))))
-
-(test-assert* "Bytevector of size relative to Lzip internal buffers (1MiB)"
-  (compress-and-decompress (random-bytevector (* 1024 1024))))
-
-(test-assert* "Bytevector of size relative to Lzip internal buffers (1MiB-1)"
-  (compress-and-decompress (random-bytevector (1- (* 1024 1024)))))
-
-(test-assert* "Bytevector of size relative to Lzip internal buffers (1MiB+1)"
-  (compress-and-decompress (random-bytevector (1+ (* 1024 1024)))))
-
-(test-assert* "make-lzip-input-port/compressed"
-  (let* ((len        (pk 'len (+ 10 (random 4000 %seed))))
-         (data       (random-bytevector len))
-         (compressed (make-lzip-input-port/compressed
-                      (open-bytevector-input-port data)))
-         (result     (call-with-lzip-input-port compressed
-                                                get-bytevector-all)))
-    (pk (bytevector-length result) (bytevector-length data))
-    (bytevector=? result data)))
-
-(test-end)
diff --git a/tests/nar.scm b/tests/nar.scm
index aeff3d3330..ba4881caaa 100644
--- a/tests/nar.scm
+++ b/tests/nar.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -136,8 +136,11 @@
 (define (rm-rf dir)
   (file-system-fold (const #t)                    ; enter?
                     (lambda (file stat result)    ; leaf
+                      (unless (eq? 'symlink (stat:type stat))
+                        (chmod file #o644))
                       (delete-file file))
-                    (const #t)                    ; down
+                    (lambda (dir stat result)     ; down
+                      (chmod dir #o755))
                     (lambda (dir stat result)     ; up
                       (rmdir dir))
                     (const #t)                    ; skip
@@ -218,8 +221,10 @@
   '(("R" directory #f)
     ("R/dir" directory #f)
     ("R/dir/exe" executable "1234")
+    ("R/dir" directory-complete #f)
     ("R/foo" regular "abcdefg")
-    ("R/lnk" symlink "foo"))
+    ("R/lnk" symlink "foo")
+    ("R" directory-complete #f))
 
   (let ()
     (define-values (port get-bytevector)
@@ -361,7 +366,12 @@
                   (cut write-file input <>))
                 (call-with-input-file nar
                   (cut restore-file <> output))
-                (file-tree-equal? input output))
+
+                (and (file-tree-equal? input output)
+                     (every (lambda (file)
+                              (canonical-file?
+                               (string-append output "/" file)))
+                            '("root" "root/reg" "root/exe"))))
               (lambda ()
                 (false-if-exception (delete-file nar))
                 (false-if-exception (rm-rf output)))))))
@@ -442,6 +452,9 @@
         (false-if-exception (rm-rf %test-dir))
         (setlocale LC_ALL locale)))))
 
+;; XXX: Tell the 'deduplicate' procedure what store we're actually using.
+(setenv "NIX_STORE" (%store-prefix))
+
 (test-assert "restore-file-set (signed, valid)"
   (with-store store
     (let* ((texts (unfold (cut >= <> 10)
diff --git a/tests/networking.scm b/tests/networking.scm
index c494a48067..f2421370d2 100644
--- a/tests/networking.scm
+++ b/tests/networking.scm
@@ -68,8 +68,7 @@
    (listen-on '("127.0.0.1" "::1"))
    (sensor '("udcf0 correction 70000"))
    (constraint-from '("www.gnu.org"))
-   (constraints-from '("https://www.google.com/"))
-   (allow-large-adjustment? #t)))
+   (constraints-from '("https://www.google.com/"))))
 
 (test-assert "openntpd configuration generation sanity check"
 
diff --git a/tests/offload.scm b/tests/offload.scm
new file mode 100644
index 0000000000..5a5de4e8b9
--- /dev/null
+++ b/tests/offload.scm
@@ -0,0 +1,71 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2020 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 (tests offload)
+  #:use-module (guix scripts offload)
+  #:use-module (srfi srfi-64))
+
+
+(test-begin "offload")
+
+(define-syntax-rule (expose-internal-definitions s1 s2 ...)
+  (begin
+    (define s1 (@@ (guix scripts offload) s1))
+    (define s2 (@@ (guix scripts offload) s2)) ...))
+
+(expose-internal-definitions machine-matches?
+                             build-requirements-system
+                             build-requirements-features
+                             build-machine-system
+                             build-machine-systems
+                             %build-machine-system
+                             %build-machine-systems
+                             build-machine-features)
+
+(define (deprecated-build-machine system)
+  (build-machine
+   (name "m1")
+   (user "dummy")
+   (host-key "some-key")
+   (system system)))
+
+(define (new-build-machine systems)
+  (build-machine
+   (name "m1")
+   (user "dummy")
+   (host-key "some-key")
+   (systems systems)))
+
+;;; Test that deprecated build-machine definitions still work.
+(test-assert (machine-matches? (deprecated-build-machine "i686-linux")
+                               (build-requirements
+                                (system "i686-linux"))))
+
+
+(test-assert (machine-matches? (new-build-machine '("i686-linux"))
+                               (build-requirements
+                                (system "i686-linux"))))
+
+;;; A build machine can act as more than one system type, thanks to QEMU
+;;; emulation.
+(test-assert (machine-matches? (new-build-machine '("armhf-linux"
+                                                    "aarch64-linux"
+                                                    "i686-linux"
+                                                    "x86_64-linux"))
+                               (build-requirements
+                                (system "armhf-linux"))))
diff --git a/tests/opam.scm b/tests/opam.scm
index 68b5908e3f..11984b56a6 100644
--- a/tests/opam.scm
+++ b/tests/opam.scm
@@ -80,117 +80,115 @@ url {
                 (set! test-source-hash
                   (call-with-input-file file-name port-sha256))))
              (_ (error "Unexpected URL: " url)))))
-      (let ((my-package (string-append test-repo "/packages/foo/foo.1.0.0")))
-        (mkdir-p my-package)
-        (with-output-to-file (string-append my-package "/opam")
-          (lambda _
-            (format #t "~a" test-opam-file))))
-      (match (opam->guix-package "foo" #:repository test-repo)
-        (('package
-           ('name "ocaml-foo")
-           ('version "1.0.0")
-           ('source ('origin
-                      ('method 'url-fetch)
-                      ('uri "https://example.org/foo-1.0.0.tar.gz")
-                      ('sha256
-                       ('base32
-                        (? string? hash)))))
-           ('build-system 'ocaml-build-system)
-           ('propagated-inputs
-            ('quasiquote
-             (("ocaml-zarith" ('unquote 'ocaml-zarith)))))
-           ('native-inputs
-            ('quasiquote
-             (("ocaml-alcotest" ('unquote 'ocaml-alcotest))
-              ("ocamlbuild" ('unquote 'ocamlbuild)))))
-           ('home-page "https://example.org/")
-           ('synopsis "Some example package")
-           ('description "This package is just an example.")
-           ('license #f))
-         (string=? (bytevector->nix-base32-string
-                    test-source-hash)
-                   hash))
-        (x
-         (pk 'fail x #f)))))
+        (mock ((guix import opam) get-opam-repository
+               (const test-repo))
+              (let ((my-package (string-append test-repo
+                                               "/packages/foo/foo.1.0.0")))
+                (mkdir-p my-package)
+                (with-output-to-file (string-append my-package "/opam")
+                  (lambda _
+                    (format #t "~a" test-opam-file))))
+              (match (opam->guix-package "foo" #:repo test-repo)
+                (('package
+                   ('name "ocaml-foo")
+                   ('version "1.0.0")
+                   ('source ('origin
+                              ('method 'url-fetch)
+                              ('uri "https://example.org/foo-1.0.0.tar.gz")
+                              ('sha256
+                               ('base32
+                                (? string? hash)))))
+                   ('build-system 'ocaml-build-system)
+                   ('propagated-inputs
+                    ('quasiquote
+                     (("ocaml-zarith" ('unquote 'ocaml-zarith)))))
+                   ('native-inputs
+                    ('quasiquote
+                     (("ocaml-alcotest" ('unquote 'ocaml-alcotest))
+                      ("ocamlbuild" ('unquote 'ocamlbuild)))))
+                   ('home-page "https://example.org/")
+                   ('synopsis "Some example package")
+                   ('description "This package is just an example.")
+                   ('license #f))
+                 (string=? (bytevector->nix-base32-string
+                            test-source-hash)
+                           hash))
+                (x
+                 (pk 'fail x #f))))))
 
 ;; Test the opam file parser
 ;; We fold over some test cases. Each case is a pair of the string to parse and the
 ;; expected result.
-(test-assert "parse-strings"
-  (fold (lambda (test acc)
-          (display test) (newline)
-          (and acc
-               (let ((result (peg:tree (match-pattern string-pat (car test)))))
-                 (if (equal? result (cdr test))
-                   #t
-                   (pk 'fail (list (car test) result (cdr test)) #f)))))
-    #t '(("" . #f)
-         ("\"hello\"" . (string-pat "hello"))
-         ("\"hello world\"" . (string-pat "hello world"))
-         ("\"The dreaded \\\"é\\\"\"" . (string-pat "The dreaded \"é\""))
-         ("\"Have some \\\\\\\\ :)\"" . (string-pat "Have some \\\\ :)"))
-         ("\"今日は\"" . (string-pat "今日は")))))
+(define (test-opam-syntax name pattern test-cases)
+  (test-assert name
+    (fold (lambda (test acc)
+            (display test) (newline)
+            (match test
+              ((str . expected)
+               (and acc
+                    (let ((result (peg:tree (match-pattern pattern str))))
+                      (if (equal? result expected)
+                          #t
+                          (pk 'fail (list str result expected) #f)))))))
+          #t test-cases)))
 
-(test-assert "parse-multiline-strings"
-  (fold (lambda (test acc)
-          (display test) (newline)
-          (and acc
-               (let ((result (peg:tree (match-pattern multiline-string (car test)))))
-                 (if (equal? result (cdr test))
-                   #t
-                   (pk 'fail (list (car test) result (cdr test)) #f)))))
-    #t '(("" . #f)
-         ("\"\"\"hello\"\"\"" . (multiline-string "hello"))
-         ("\"\"\"hello \"world\"!\"\"\"" . (multiline-string "hello \"world\"!"))
-         ("\"\"\"hello \"\"world\"\"!\"\"\"" . (multiline-string "hello \"\"world\"\"!")))))
+(test-opam-syntax
+  "parse-strings" string-pat
+  '(("" . #f)
+    ("\"hello\"" . (string-pat "hello"))
+    ("\"hello world\"" . (string-pat "hello world"))
+    ("\"The dreaded \\\"é\\\"\"" . (string-pat "The dreaded \"é\""))
+    ("\"Have some \\\\\\\\ :)\"" . (string-pat "Have some \\\\ :)"))
+    ("\"今日は\"" . (string-pat "今日は"))))
 
-(test-assert "parse-lists"
-  (fold (lambda (test acc)
-          (and acc
-               (let ((result (peg:tree (match-pattern list-pat (car test)))))
-                 (if (equal? result (cdr test))
-                   #t
-                   (pk 'fail (list (car test) result (cdr test)) #f)))))
-    #t '(("" . #f)
-         ("[]" . list-pat)
-         ("[make]" . (list-pat (var "make")))
-         ("[\"make\"]" . (list-pat (string-pat "make")))
-         ("[\n  a\n  b\n  c]" . (list-pat (var "a") (var "b") (var "c")))
-         ("[a   b     \"c\"]" . (list-pat (var "a") (var "b") (string-pat "c"))))))
+(test-opam-syntax
+  "parse-multiline-strings" multiline-string
+  '(("" . #f)
+    ("\"\"\"hello\"\"\"" . (multiline-string "hello"))
+    ("\"\"\"hello \"world\"!\"\"\"" . (multiline-string "hello \"world\"!"))
+    ("\"\"\"hello \"\"world\"\"!\"\"\"" . (multiline-string "hello \"\"world\"\"!"))))
 
-(test-assert "parse-dicts"
-  (fold (lambda (test acc)
-          (and acc
-               (let ((result (peg:tree (match-pattern dict (car test)))))
-                 (if (equal? result (cdr test))
-                   #t
-                   (pk 'fail (list (car test) result (cdr test)) #f)))))
-    #t '(("" . #f)
-         ("{}" . dict)
-         ("{a: \"b\"}" . (dict (record "a" (string-pat "b"))))
-         ("{a: \"b\"\nc: \"d\"}" . (dict (record "a" (string-pat "b")) (record "c" (string-pat "d")))))))
+(test-opam-syntax
+  "parse-lists" list-pat
+  '(("" . #f)
+    ("[]" . list-pat)
+    ("[make]" . (list-pat (var "make")))
+    ("[\"make\"]" . (list-pat (string-pat "make")))
+    ("[\n  a\n  b\n  c]" . (list-pat (var "a") (var "b") (var "c")))
+    ("[a   b     \"c\"]" . (list-pat (var "a") (var "b") (string-pat "c")))
+    ;; complex lists
+    ("[(a & b)]" . (list-pat (choice-pat (group-pat (var "a") (var "b")))))
+    ("[(a | b & c)]" . (list-pat (choice-pat (var "a") (group-pat (var "b") (var "c")))))
+    ("[a (b | c) d]" . (list-pat (var "a") (choice-pat (var "b") (var "c")) (var "d")))))
 
-(test-assert "parse-conditions"
-  (fold (lambda (test acc)
-          (and acc
-               (let ((result (peg:tree (match-pattern condition (car test)))))
-                 (if (equal? result (cdr test))
-                   #t
-                   (pk 'fail (list (car test) result (cdr test)) #f)))))
-    #t '(("" . #f)
-         ("{}" . #f)
-         ("{build}" . (condition-var "build"))
-         ("{>= \"0.2.0\"}" . (condition-greater-or-equal
-                               (condition-string "0.2.0")))
-         ("{>= \"0.2.0\" & test}" . (condition-and
-                                      (condition-greater-or-equal
-                                        (condition-string "0.2.0"))
-                                      (condition-var "test")))
-         ("{>= \"0.2.0\" | build}" . (condition-or
-                                      (condition-greater-or-equal
-                                        (condition-string "0.2.0"))
-                                      (condition-var "build")))
-         ("{ = \"1.0+beta19\" }" . (condition-eq
-                                     (condition-string "1.0+beta19"))))))
+(test-opam-syntax
+  "parse-dicts" dict
+  '(("" . #f)
+    ("{}" . dict)
+    ("{a: \"b\"}" . (dict (record "a" (string-pat "b"))))
+    ("{a: \"b\"\nc: \"d\"}" . (dict (record "a" (string-pat "b")) (record "c" (string-pat "d"))))))
+
+(test-opam-syntax
+  "parse-conditions" condition
+  '(("" . #f)
+    ("{}" . #f)
+    ("{build}" . (condition-var "build"))
+    ("{>= \"0.2.0\"}" . (condition-greater-or-equal
+                          (condition-string "0.2.0")))
+    ("{>= \"0.2.0\" & test}" . (condition-and
+                                 (condition-greater-or-equal
+                                   (condition-string "0.2.0"))
+                                 (condition-var "test")))
+    ("{>= \"0.2.0\" | build}" . (condition-or
+                                 (condition-greater-or-equal
+                                   (condition-string "0.2.0"))
+                                 (condition-var "build")))
+    ("{ = \"1.0+beta19\" }" . (condition-eq
+                                (condition-string "1.0+beta19")))))
+
+(test-opam-syntax
+  "parse-comment" list-pat
+  '(("" . #f)
+    ("[#comment\n]" . list-pat)))
 
 (test-end "opam")
diff --git a/tests/openpgp.scm b/tests/openpgp.scm
index 0beab6f88b..c2be26fa49 100644
--- a/tests/openpgp.scm
+++ b/tests/openpgp.scm
@@ -50,6 +50,12 @@ vBSFjNSiVHsuAA==
 =AAAA
 -----END PGP MESSAGE-----\n")
 
+(define %binary-sample
+  ;; Same message as %radix-64-sample, decoded into bytevector.
+  (base16-string->bytevector
+  "c838013b6d96c411efecef17ecefe3ca0004ce8979ea250a897995f979a9\
+0ad9a9a9050a890ac5a9c945a940c1a2fcd2bc14858cd4a2547b2e00"))
+
 (define %civodul-fingerprint
   "3CE4 6455 8A84 FDC6 9DB4  0CFB 090B 1199 3D9A EBB5")
 
@@ -155,6 +161,12 @@ Pz7oopeN72xgggYUNT37ezqN3MeCqw0=
           read-radix-64))
     list))
 
+(test-assert "port-ascii-armored?, #t"
+  (call-with-input-string %radix-64-sample port-ascii-armored?))
+
+(test-assert "port-ascii-armored?, #f"
+  (not (port-ascii-armored? (open-bytevector-input-port %binary-sample))))
+
 (test-assert "get-openpgp-keyring"
   (let* ((key (search-path %load-path "tests/civodul.key"))
          (keyring (get-openpgp-keyring
diff --git a/tests/packages.scm b/tests/packages.scm
index 596a2d1f83..18e8e16e74 100644
--- a/tests/packages.scm
+++ b/tests/packages.scm
@@ -38,6 +38,7 @@
   #:use-module (guix build-system)
   #:use-module (guix build-system trivial)
   #:use-module (guix build-system gnu)
+  #:use-module (guix build-system python)
   #:use-module (guix memoization)
   #:use-module (guix profiles)
   #:use-module (guix scripts package)
@@ -45,6 +46,7 @@
   #:use-module (gnu packages base)
   #:use-module (gnu packages guile)
   #:use-module (gnu packages bootstrap)
+  #:use-module (gnu packages python)
   #:use-module (gnu packages version-control)
   #:use-module (gnu packages xml)
   #:use-module (srfi srfi-1)
@@ -185,6 +187,29 @@
                  (string=? (manifest-pattern-version pattern) "1")
                  (string=? (manifest-pattern-output pattern) "out")))))))
 
+(test-equal "transaction-upgrade-entry, transformation options preserved"
+  (derivation-file-name (package-derivation %store grep))
+
+  (let* ((old   (dummy-package "emacs" (version "1")))
+         (props '((transformations . ((with-input . "emacs=grep")))))
+         (tx    (transaction-upgrade-entry
+                 %store
+                 (manifest-entry
+                   (inherit (package->manifest-entry old))
+                   (properties props)
+                   (item (string-append (%store-prefix) "/"
+                                        (make-string 32 #\e) "-foo-1")))
+                 (manifest-transaction))))
+    (match (manifest-transaction-install tx)
+      (((? manifest-entry? entry))
+       (and (string=? (manifest-entry-version entry)
+                      (package-version grep))
+            (string=? (manifest-entry-name entry)
+                      (package-name grep))
+            (equal? (manifest-entry-properties entry) props)
+            (derivation-file-name
+             (package-derivation %store (manifest-entry-item entry))))))))
+
 (test-assert "transaction-upgrade-entry, grafts"
   ;; Ensure that, when grafts are enabled, 'transaction-upgrade-entry' doesn't
   ;; try to build stuff.
@@ -1172,15 +1197,24 @@
   (let* ((dep       (dummy-package "chbouib"
                       (native-inputs `(("x" ,grep)))))
          (p0        (dummy-package "example"
+                      (source 77)
                       (inputs `(("foo" ,coreutils)
                                 ("bar" ,grep)
                                 ("baz" ,dep)))))
          (transform (lambda (p)
                       (package (inherit p) (source 42))))
          (rewrite   (package-mapping transform))
-         (p1        (rewrite p0)))
+         (p1        (rewrite p0))
+         (bag0      (package->bag p0))
+         (bag1      (package->bag p1)))
     (and (eq? p1 (rewrite p0))
          (eqv? 42 (package-source p1))
+
+         ;; Implicit inputs should be left unchanged (skip "source", "foo",
+         ;; "bar", and "baz" in this comparison).
+         (equal? (drop (bag-direct-inputs bag0) 4)
+                 (drop (bag-direct-inputs bag1) 4))
+
          (match (package-inputs p1)
            ((("foo" dep1) ("bar" dep2) ("baz" dep3))
             (and (eq? dep1 (rewrite coreutils))   ;memoization
@@ -1194,6 +1228,31 @@
                     (and (eq? dep (rewrite grep))
                          (package-source dep))))))))))
 
+(test-equal "package-mapping, deep"
+  '(42)
+  (let* ((p0        (dummy-package "example"
+                      (inputs `(("foo" ,coreutils)
+                                ("bar" ,grep)))))
+         (transform (lambda (p)
+                      (package (inherit p) (source 42))))
+         (rewrite   (package-mapping transform #:deep? #t))
+         (p1        (rewrite p0))
+         (bag       (package->bag p1)))
+    (and (eq? p1 (rewrite p0))
+         (match (bag-direct-inputs bag)
+           ((("source" 42) ("foo" dep1) ("bar" dep2) rest ..1)
+            (and (eq? dep1 (rewrite coreutils))   ;memoization
+                 (eq? dep2 (rewrite grep))
+                 (= 42 (package-source dep1))
+                 (= 42 (package-source dep2))
+
+                 ;; Check that implicit inputs of P0 also got rewritten.
+                 (delete-duplicates
+                  (map (match-lambda
+                         ((_ package . _)
+                          (package-source package)))
+                       rest))))))))
+
 (test-assert "package-input-rewriting"
   (let* ((dep     (dummy-package "chbouib"
                     (native-inputs `(("x" ,grep)))))
@@ -1203,7 +1262,8 @@
                               ("baz" ,dep)))))
          (rewrite (package-input-rewriting `((,coreutils . ,sed)
                                              (,grep . ,findutils))
-                                           (cut string-append "r-" <>)))
+                                           (cut string-append "r-" <>)
+                                           #:deep? #f))
          (p1      (rewrite p0))
          (p2      (rewrite p0)))
     (and (not (eq? p1 p0))
@@ -1217,7 +1277,22 @@
                  (eq? dep3 (rewrite dep))         ;memoization
                  (match (package-native-inputs dep3)
                    ((("x" dep))
-                    (eq? dep findutils)))))))))
+                    (eq? dep findutils))))))
+
+         ;; Make sure implicit inputs were left unchanged.
+         (equal? (drop (bag-direct-inputs (package->bag p1)) 3)
+                 (drop (bag-direct-inputs (package->bag p0)) 3)))))
+
+(test-eq "package-input-rewriting, deep"
+  (derivation-file-name (package-derivation %store sed))
+  (let* ((p0      (dummy-package "chbouib"
+                    (build-system python-build-system)
+                    (arguments `(#:python ,python))))
+         (rewrite (package-input-rewriting `((,python . ,sed))))
+         (p1      (rewrite p0)))
+    (match (bag-direct-inputs (package->bag p1))
+      ((("python" python) _ ...)
+       (derivation-file-name (package-derivation %store python))))))
 
 (test-assert "package-input-rewriting/spec"
   (let* ((dep     (dummy-package "chbouib"
@@ -1228,7 +1303,8 @@
                               ("baz" ,dep)))))
          (rewrite (package-input-rewriting/spec
                    `(("coreutils" . ,(const sed))
-                     ("grep" . ,(const findutils)))))
+                     ("grep" . ,(const findutils)))
+                   #:deep? #f))
          (p1      (rewrite p0))
          (p2      (rewrite p0)))
     (and (not (eq? p1 p0))
@@ -1245,7 +1321,11 @@
                  (match (package-native-inputs dep3)
                    ((("x" dep))
                     (string=? (package-full-name dep)
-                              (package-full-name findutils))))))))))
+                              (package-full-name findutils)))))))
+
+         ;; Make sure implicit inputs were left unchanged.
+         (equal? (drop (bag-direct-inputs (package->bag p1)) 3)
+                 (drop (bag-direct-inputs (package->bag p0)) 3)))))
 
 (test-assert "package-input-rewriting/spec, partial match"
   (let* ((dep     (dummy-package "chbouib"
@@ -1256,7 +1336,8 @@
                               ("bar" ,dep)))))
          (rewrite (package-input-rewriting/spec
                    `(("chbouib@123" . ,(const sed)) ;not matched
-                     ("grep" . ,(const findutils)))))
+                     ("grep" . ,(const findutils)))
+                   #:deep? #f))
          (p1      (rewrite p0)))
     (and (not (eq? p1 p0))
          (string=? "example" (package-name p1))
@@ -1270,6 +1351,148 @@
                     (string=? (package-full-name dep)
                               (package-full-name findutils))))))))))
 
+(test-assert "package-input-rewriting/spec, deep"
+  (let* ((dep     (dummy-package "chbouib"))
+         (p0      (dummy-package "example"
+                    (build-system gnu-build-system)
+                    (inputs `(("dep" ,dep)))))
+         (rewrite (package-input-rewriting/spec
+                   `(("tar"  . ,(const sed))
+                     ("gzip" . ,(const findutils)))))
+         (p1      (rewrite p0))
+         (p2      (rewrite p0)))
+    (and (not (eq? p1 p0))
+         (eq? p1 p2)                              ;memoization
+         (string=? "example" (package-name p1))
+         (match (package-inputs p1)
+           ((("dep" dep1))
+            (and (string=? (package-full-name dep1)
+                           (package-full-name dep))
+                 (eq? dep1 (rewrite dep)))))      ;memoization
+
+         ;; Make sure implicit inputs were replaced.
+         (match (bag-direct-inputs (package->bag p1))
+           ((("dep" dep1) ("tar" tar) ("gzip" gzip) _ ...)
+            (and (eq? dep1 (rewrite dep))
+                 (string=? (package-full-name tar)
+                           (package-full-name sed))
+                 (string=? (package-full-name gzip)
+                           (package-full-name findutils))))))))
+
+(test-assert "package-input-rewriting/spec, no duplicates"
+  ;; Ensure that deep input rewriting does not forget implicit inputs.  Doing
+  ;; so could lead to duplicates in a package's inputs: in the example below,
+  ;; P0's transitive inputs would contain one rewritten "python" and one
+  ;; original "python".  These two "python" packages are thus not 'eq?' but
+  ;; they lower to the same derivation.  See <https://bugs.gnu.org/42156>,
+  ;; which can be reproduced by passing #:deep? #f.
+  (let* ((dep0    (dummy-package "dep0"
+                    (build-system trivial-build-system)
+                    (propagated-inputs `(("python" ,python)))))
+         (p0      (dummy-package "chbouib"
+                    (build-system python-build-system)
+                    (arguments `(#:python ,python))
+                    (inputs `(("dep0" ,dep0)))))
+         (rewrite (package-input-rewriting/spec '() #:deep? #t))
+         (p1      (rewrite p0))
+         (bag1    (package->bag p1))
+         (pythons (filter-map (match-lambda
+                                (("python" python) python)
+                                (_ #f))
+                              (bag-transitive-inputs bag1))))
+    (match (delete-duplicates pythons eq?)
+      ((p) (eq? p (rewrite python))))))
+
+(test-equal "package-input-rewriting/spec, graft"
+  (derivation-file-name (package-derivation %store sed))
+
+  ;; Make sure replacements are rewritten.
+  (let* ((dep0 (dummy-package "dep"
+                 (version "1")
+                 (build-system trivial-build-system)
+                 (inputs `(("coreutils" ,coreutils)))))
+         (dep1 (dummy-package "dep"
+                 (version "0")
+                 (build-system trivial-build-system)
+                 (replacement dep0)))
+         (p0   (dummy-package "p"
+                 (build-system trivial-build-system)
+                 (inputs `(("dep" ,dep1)))))
+         (rewrite (package-input-rewriting/spec
+                   `(("coreutils" . ,(const sed)))))
+         (p1      (rewrite p0)))
+    (match (package-inputs p1)
+      ((("dep" dep))
+       (match (package-inputs (package-replacement dep))
+         ((("coreutils" coreutils))
+          ;; COREUTILS is not 'eq?' to SED, so the most reliable way to check
+          ;; for equality is to lower to a derivation.
+          (derivation-file-name
+           (package-derivation %store coreutils))))))))
+
+(test-assert "package-with-c-toolchain"
+  (let* ((dep (dummy-package "chbouib"
+                (build-system gnu-build-system)
+                (native-inputs `(("x" ,grep)))))
+         (p0  (dummy-package "thingie"
+                (build-system gnu-build-system)
+                (inputs `(("foo" ,grep)
+                          ("bar" ,dep)))))
+         (tc  (dummy-package "my-toolchain"))
+         (p1  (package-with-c-toolchain p0 `(("toolchain" ,tc)))))
+    (define toolchain-packages
+      '("gcc" "binutils" "glibc" "ld-wrapper"))
+
+    (match (bag-build-inputs (package->bag p1))
+      ((("foo" foo) ("bar" bar) (_ (= package-name packages) . _) ...)
+       (and (not (any (cut member <> packages) toolchain-packages))
+            (member "my-toolchain" packages)
+            (eq? foo grep)
+            (eq? bar dep))))))
+
+(test-assert "package-input-rewriting/spec, identity"
+  ;; Make sure that 'package-input-rewriting/spec' doesn't gratuitously
+  ;; introduce variants.  In this case, the LIBFFI propagated input should not
+  ;; be duplicated when passing GOBJECT through REWRITE.
+  ;; See <https://issues.guix.gnu.org/43890>.
+  (let* ((libffi  (dummy-package "libffi"
+                    (build-system trivial-build-system)))
+         (glib    (dummy-package "glib"
+                    (build-system trivial-build-system)
+                    (propagated-inputs `(("libffi" ,libffi)))))
+         (gobject (dummy-package "gobject-introspection"
+                    (build-system trivial-build-system)
+                    (inputs `(("glib" ,glib)))
+                    (propagated-inputs `(("libffi" ,libffi)))))
+         (rewrite (package-input-rewriting/spec
+                   `(("glib" . ,identity)))))
+    (and (= (length (package-transitive-inputs gobject))
+            (length (package-transitive-inputs (rewrite gobject))))
+         (string=? (derivation-file-name
+                    (package-derivation %store (rewrite gobject)))
+                   (derivation-file-name
+                    (package-derivation %store gobject))))))
+
+(test-assert "package-input-rewriting, identity"
+  ;; Similar to the test above, but with 'package-input-rewriting'.
+  ;; See <https://issues.guix.gnu.org/43890>.
+  (let* ((libffi  (dummy-package "libffi"
+                    (build-system trivial-build-system)))
+         (glib    (dummy-package "glib"
+                    (build-system trivial-build-system)
+                    (propagated-inputs `(("libffi" ,libffi)))))
+         (gobject (dummy-package "gobject-introspection"
+                    (build-system trivial-build-system)
+                    (inputs `(("glib" ,glib)))
+                    (propagated-inputs `(("libffi" ,libffi)))))
+         (rewrite (package-input-rewriting `((,glib . ,glib)))))
+    (and (= (length (package-transitive-inputs gobject))
+            (length (package-transitive-inputs (rewrite gobject))))
+         (string=? (derivation-file-name
+                    (package-derivation %store (rewrite gobject)))
+                   (derivation-file-name
+                    (package-derivation %store gobject))))))
+
 (test-equal "package-patched-vulnerabilities"
   '(("CVE-2015-1234")
     ("CVE-2016-1234" "CVE-2018-4567")
@@ -1326,6 +1549,15 @@
                                                       result))
                                               '()))))))
 
+    (define (find-duplicates l)
+      (match l
+        (() '())
+        ((head . tail)
+         (if (member head tail)
+             (cons head (find-duplicates tail))
+             (find-duplicates tail)))))
+
+    (pk (find-duplicates from-cache))
     (and (equal? (delete-duplicates from-cache) from-cache)
          (lset= equal? no-cache from-cache))))
 
diff --git a/tests/profiles.scm b/tests/profiles.scm
index 055924ba3e..2dec42bec1 100644
--- a/tests/profiles.scm
+++ b/tests/profiles.scm
@@ -183,6 +183,16 @@
            (equal? (list glibc) install)
            (equal? (list (cons guile-1.8.8 guile-2.0.9)) upgrade)))))
 
+(test-assert "manifest-transaction-effects no double install or upgrades"
+  (let* ((m0 (manifest (list guile-1.8.8)))
+         (t  (manifest-transaction
+              (install (list guile-2.0.9 glibc glibc)))))
+    (let-values (((remove install upgrade downgrade)
+                  (manifest-transaction-effects m0 t)))
+      (and (null? remove) (null? downgrade)
+           (equal? (list glibc) install)
+           (equal? (list (cons guile-1.8.8 guile-2.0.9)) upgrade)))))
+
 (test-assert "manifest-transaction-effects and downgrades"
   (let* ((m0 (manifest (list guile-2.0.9)))
          (t  (manifest-transaction (install (list guile-1.8.8)))))
@@ -191,6 +201,14 @@
       (and (null? remove) (null? install) (null? upgrade)
            (equal? (list (cons guile-2.0.9 guile-1.8.8)) downgrade)))))
 
+(test-assert "manifest-transaction-effects no double downgrade"
+  (let* ((m0 (manifest (list guile-2.0.9)))
+         (t  (manifest-transaction (install (list guile-1.8.8 guile-1.8.8)))))
+    (let-values (((remove install upgrade downgrade)
+                  (manifest-transaction-effects m0 t)))
+      (and (null? remove) (null? install) (null? upgrade)
+           (equal? (list (cons guile-2.0.9 guile-1.8.8)) downgrade)))))
+
 (test-assert "manifest-transaction-effects and pseudo-upgrades"
   (let* ((m0 (manifest (list guile-2.0.9)))
          (t  (manifest-transaction (install (list guile-2.0.9)))))
@@ -209,6 +227,16 @@
     (and (manifest-transaction-removal-candidate? guile-2.0.9 t)
          (not (manifest-transaction-removal-candidate? glibc t)))))
 
+(test-assert "manifest-transaction-effects no double removal"
+  (let* ((m0 (manifest (list guile-2.0.9)))
+         (t  (manifest-transaction
+              (remove (list (manifest-pattern (name "guile")))))))
+    (let-values (((remove install upgrade downgrade)
+                  (manifest-transaction-effects m0 t)))
+      (and (= 1 (length remove))
+           (manifest-transaction-removal-candidate? guile-2.0.9 t)
+           (null? install) (null? downgrade) (null? upgrade)))))
+
 (test-assertm "profile-derivation"
   (mlet* %store-monad
       ((entry ->   (package->manifest-entry %bootstrap-guile))
@@ -356,6 +384,16 @@
            (manifest-entry-search-paths
             (package->manifest-entry mpl)))))
 
+(test-assert "packages->manifest, no duplicates"
+  (let ((expected
+         (manifest
+          (list
+           (package->manifest-entry packages:guile-2.2))))
+        (manifest (packages->manifest
+                   (list packages:guile-2.2 packages:guile-2.2))))
+    (every manifest-entry=? (manifest-entries expected)
+           (manifest-entries manifest))))
+
 (test-equal "packages->manifest, propagated inputs"
   (map (match-lambda
          ((label package)
diff --git a/tests/publish.scm b/tests/publish.scm
index e43310ef00..52101876b5 100644
--- a/tests/publish.scm
+++ b/tests/publish.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2015 David Thompson <davet@gnu.org>
+;;; Copyright © 2020 by Amar M. Singh <nly@disroot.org>
 ;;; Copyright © 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -35,8 +36,9 @@
   #:use-module ((guix serialization) #:select (restore-file))
   #:use-module (gcrypt pk-crypto)
   #:use-module ((guix pki) #:select (%public-key-file %private-key-file))
-  #:use-module (guix zlib)
-  #:use-module (guix lzlib)
+  #:use-module (zlib)
+  #:use-module (lzlib)
+  #:autoload   (zstd) (call-with-zstd-input-port)
   #:use-module (web uri)
   #:use-module (web client)
   #:use-module (web response)
@@ -53,6 +55,9 @@
 (define %store
   (open-connection-for-tests))
 
+(define (zstd-supported?)
+  (resolve-module '(zstd) #t #f #:ensure #f))
+
 (define %reference (add-text-to-store %store "ref" "foo"))
 
 (define %item (add-text-to-store %store "item" "bar" (list %reference)))
@@ -204,8 +209,6 @@ References: ~%"
        (call-with-input-string nar (cut restore-file <> temp)))
      (call-with-input-file temp read-string))))
 
-(unless (zlib-available?)
-  (test-skip 1))
 (test-equal "/nar/gzip/*"
   "bar"
   (call-with-temporary-output-file
@@ -217,8 +220,6 @@ References: ~%"
          (cut restore-file <> temp)))
      (call-with-input-file temp read-string))))
 
-(unless (zlib-available?)
-  (test-skip 1))
 (test-equal "/nar/gzip/* is really gzip"
   %gzip-magic-bytes
   ;; Since 'gzdopen' (aka. 'call-with-gzip-input-port') transparently reads
@@ -229,8 +230,6 @@ References: ~%"
                (string-append "/nar/gzip/" (basename %item))))))
     (get-bytevector-n nar (bytevector-length %gzip-magic-bytes))))
 
-(unless (lzlib-available?)
-  (test-skip 1))
 (test-equal "/nar/lzip/*"
   "bar"
   (call-with-temporary-output-file
@@ -242,8 +241,18 @@ References: ~%"
          (cut restore-file <> temp)))
      (call-with-input-file temp read-string))))
 
-(unless (zlib-available?)
-  (test-skip 1))
+(unless (zstd-supported?) (test-skip 1))
+(test-equal "/nar/zstd/*"
+  "bar"
+  (call-with-temporary-output-file
+   (lambda (temp port)
+     (let ((nar (http-get-port
+                 (publish-uri
+                  (string-append "/nar/zstd/" (basename %item))))))
+       (call-with-zstd-input-port nar
+         (cut restore-file <> temp)))
+     (call-with-input-file temp read-string))))
+
 (test-equal "/*.narinfo with compression"
   `(("StorePath" . ,%item)
     ("URL" . ,(string-append "nar/gzip/" (basename %item)))
@@ -264,8 +273,6 @@ References: ~%"
                   (_ #f)))
               (recutils->alist body)))))
 
-(unless (lzlib-available?)
-  (test-skip 1))
 (test-equal "/*.narinfo with lzip compression"
   `(("StorePath" . ,%item)
     ("URL" . ,(string-append "nar/lzip/" (basename %item)))
@@ -286,8 +293,6 @@ References: ~%"
                   (_ #f)))
               (recutils->alist body)))))
 
-(unless (zlib-available?)
-  (test-skip 1))
 (test-equal "/*.narinfo for a compressed file"
   '("none" "nar")          ;compression-less nar
   ;; Assume 'guix publish -C' is already running on port 6799.
@@ -300,8 +305,6 @@ References: ~%"
     (list (assoc-ref info "Compression")
           (dirname (assoc-ref info "URL")))))
 
-(unless (and (zlib-available?) (lzlib-available?))
-  (test-skip 1))
 (test-equal "/*.narinfo with lzip + gzip"
   `((("StorePath" . ,%item)
      ("URL" . ,(string-append "nar/gzip/" (basename %item)))
@@ -411,8 +414,6 @@ References: ~%"
                               (call-with-input-string "" port-sha256))))))
     (response-code (http-get uri))))
 
-(unless (zlib-available?)
-  (test-skip 1))
 (test-equal "with cache"
   (list #t
         `(("StorePath" . ,%item)
@@ -428,7 +429,8 @@ References: ~%"
                     (call-with-new-thread
                      (lambda ()
                        (guix-publish "--port=6797" "-C2"
-                                     (string-append "--cache=" cache)))))))
+                                     (string-append "--cache=" cache)
+                                     "--cache-bypass-threshold=0"))))))
        (wait-until-ready 6797)
        (let* ((base     "http://localhost:6797/")
               (part     (store-path-hash-part %item))
@@ -448,6 +450,11 @@ References: ~%"
                  (< ttl 3600)))
 
               (wait-for-file cached)
+
+              ;; Both the narinfo and nar should be world-readable.
+              (= #o644 (stat:perms (lstat cached)))
+              (= #o644 (stat:perms (lstat nar)))
+
               (let* ((body         (http-get-port url))
                      (compressed   (http-get nar-url))
                      (uncompressed (http-get (string-append base "nar/"
@@ -469,8 +476,6 @@ References: ~%"
                          (stat:size (stat nar)))
                       (response-code uncompressed)))))))))
 
-(unless (and (zlib-available?) (lzlib-available?))
-  (test-skip 1))
 (test-equal "with cache, lzip + gzip"
   '(200 200 404)
   (call-with-temporary-directory
@@ -479,7 +484,8 @@ References: ~%"
                     (call-with-new-thread
                      (lambda ()
                        (guix-publish "--port=6794" "-Cgzip:2" "-Clzip:2"
-                                     (string-append "--cache=" cache)))))))
+                                     (string-append "--cache=" cache)
+                                     "--cache-bypass-threshold=0"))))))
        (wait-until-ready 6794)
        (let* ((base     "http://localhost:6794/")
               (part     (store-path-hash-part %item))
@@ -515,8 +521,6 @@ References: ~%"
                       (response-code
                        (http-get uncompressed))))))))))
 
-(unless (zlib-available?)
-  (test-skip 1))
 (let ((item (add-text-to-store %store "fake-compressed-thing.tar.gz"
                                (random-text))))
   (test-equal "with cache, uncompressed"
@@ -536,7 +540,8 @@ References: ~%"
                       (call-with-new-thread
                        (lambda ()
                          (guix-publish "--port=6796" "-C2" "--ttl=42h"
-                                       (string-append "--cache=" cache)))))))
+                                       (string-append "--cache=" cache)
+                                       "--cache-bypass-threshold=0"))))))
          (wait-until-ready 6796)
          (let* ((base     "http://localhost:6796/")
                 (part     (store-path-hash-part item))
@@ -596,18 +601,83 @@ References: ~%"
               (item     (add-text-to-store %store "random" (random-text)))
               (part     (store-path-hash-part item))
               (url      (string-append base part ".narinfo"))
-              (cached   (string-append cache
-                                       (if (zlib-available?)
-                                           "/gzip/" "/none/")
+              (cached   (string-append cache "/gzip/"
                                        (basename item)
                                        ".narinfo"))
               (response (http-get url)))
-         (and (= 404 (response-code response))
+         (and (= 200 (response-code response))    ;we're below the threshold
               (wait-for-file cached)
               (begin
                 (delete-paths %store (list item))
                 (response-code (pk 'response (http-get url))))))))))
 
+(test-equal "with cache, cache bypass"
+  200
+  (call-with-temporary-directory
+   (lambda (cache)
+     (let ((thread (with-separate-output-ports
+                    (call-with-new-thread
+                     (lambda ()
+                       (guix-publish "--port=6788" "-C" "gzip"
+                                     (string-append "--cache=" cache)))))))
+       (wait-until-ready 6788)
+
+       (let* ((base     "http://localhost:6788/")
+              (item     (add-text-to-store %store "random" (random-text)))
+              (part     (store-path-hash-part item))
+              (narinfo  (string-append base part ".narinfo"))
+              (nar      (string-append base "nar/gzip/" (basename item)))
+              (cached   (string-append cache "/gzip/" (basename item)
+                                       ".narinfo")))
+         ;; We're below the default cache bypass threshold, so NAR and NARINFO
+         ;; should immediately return 200.  The NARINFO request should trigger
+         ;; caching, and the next request to NAR should return 200 as well.
+         (and (let ((response (pk 'r1 (http-get nar))))
+                (and (= 200 (response-code response))
+                     (not (response-content-length response)))) ;not known
+              (= 200 (response-code (http-get narinfo)))
+              (begin
+                (wait-for-file cached)
+                (let ((response (pk 'r2 (http-get nar))))
+                  (and (> (response-content-length response)
+                          (stat:size (stat item)))
+                       (response-code response))))))))))
+
+(test-equal "with cache, cache bypass, unmapped hash part"
+  200
+
+  ;; This test reproduces the bug described in <https://bugs.gnu.org/44442>:
+  ;; the daemon connection would be closed as a side effect of a nar request
+  ;; for a non-existing file name.
+  (call-with-temporary-directory
+   (lambda (cache)
+     (let ((thread (with-separate-output-ports
+                    (call-with-new-thread
+                     (lambda ()
+                       (guix-publish "--port=6787" "-C" "gzip"
+                                     (string-append "--cache=" cache)))))))
+       (wait-until-ready 6787)
+
+       (let* ((base     "http://localhost:6787/")
+              (item     (add-text-to-store %store "random" (random-text)))
+              (part     (store-path-hash-part item))
+              (narinfo  (string-append base part ".narinfo"))
+              (nar      (string-append base "nar/gzip/" (basename item)))
+              (cached   (string-append cache "/gzip/" (basename item)
+                                       ".narinfo")))
+         ;; The first response used to be 500 and to terminate the daemon
+         ;; connection as a side effect.
+         (and (= (response-code
+                  (http-get (string-append base "nar/gzip/"
+                                           (make-string 32 #\e)
+                                           "-does-not-exist")))
+                 404)
+              (= 200 (response-code (http-get nar)))
+              (= 200 (response-code (http-get narinfo)))
+              (begin
+                (wait-for-file cached)
+                (response-code (http-get nar)))))))))
+
 (test-equal "/log/NAME"
   `(200 #t application/x-bzip2)
   (let ((drv (run-with-store %store
@@ -635,6 +705,10 @@ References: ~%"
   (let ((uri (publish-uri "/log/does-not-exist")))
     (response-code (http-get uri))))
 
+(test-equal "/signing-key.pub"
+  200
+  (response-code (http-get (publish-uri "/signing-key.pub"))))
+
 (test-equal "non-GET query"
   '(200 404)
   (let ((path (string-append "/" (store-path-hash-part %item)
diff --git a/tests/scripts-build.scm b/tests/scripts-build.scm
deleted file mode 100644
index 32876e956a..0000000000
--- a/tests/scripts-build.scm
+++ /dev/null
@@ -1,268 +0,0 @@
-;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2016, 2017, 2019 Ludovic Courtès <ludo@gnu.org>
-;;;
-;;; This file is part of GNU Guix.
-;;;
-;;; GNU Guix is free software; you can redistribute it and/or modify it
-;;; under the terms of the GNU General Public License as published by
-;;; the Free Software Foundation; either version 3 of the License, or (at
-;;; your option) any later version.
-;;;
-;;; GNU Guix is distributed in the hope that it will be useful, but
-;;; WITHOUT ANY WARRANTY; without even the implied warranty of
-;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-;;; GNU General Public License for more details.
-;;;
-;;; You should have received a copy of the GNU General Public License
-;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
-
-(define-module (test-scripts-build)
-  #:use-module (guix tests)
-  #:use-module (guix store)
-  #:use-module (guix packages)
-  #:use-module (guix git-download)
-  #:use-module (guix scripts build)
-  #:use-module (guix ui)
-  #:use-module (guix utils)
-  #:use-module (guix git)
-  #:use-module (gnu packages)
-  #:use-module (gnu packages base)
-  #:use-module (gnu packages busybox)
-  #:use-module (ice-9 match)
-  #:use-module (srfi srfi-64))
-
-
-(test-begin "scripts-build")
-
-(test-assert "options->transformation, no transformations"
-  (let ((p (dummy-package "foo"))
-        (t (options->transformation '())))
-    (with-store store
-      (eq? (t store p) p))))
-
-(test-assert "options->transformation, with-source"
-  ;; Our pseudo-package is called 'guix.scm' so the 'guix.scm' source should
-  ;; be applicable.
-  (let* ((p (dummy-package "guix.scm"))
-         (s (search-path %load-path "guix.scm"))
-         (t (options->transformation `((with-source . ,s)))))
-    (with-store store
-      (let ((new (t store p)))
-        (and (not (eq? new p))
-             (string=? (package-source new)
-                       (add-to-store store "guix.scm" #t
-                                     "sha256" s)))))))
-
-(test-assert "options->transformation, with-source, replacement"
-  ;; Same, but this time the original package has a 'replacement' field.  We
-  ;; expect that replacement to be set to #f in the new package.
-  (let* ((p (dummy-package "guix.scm" (replacement coreutils)))
-         (s (search-path %load-path "guix.scm"))
-         (t (options->transformation `((with-source . ,s)))))
-    (with-store store
-      (let ((new (t store p)))
-        (and (not (eq? new p))
-             (string=? (package-source new)
-                       (add-to-store store "guix.scm" #t "sha256" s))
-             (not (package-replacement new)))))))
-
-(test-assert "options->transformation, with-source, with version"
-  ;; Our pseudo-package is called 'guix.scm' so the 'guix.scm-2.0' source
-  ;; should be applicable, and its version should be extracted.
-  (let ((p (dummy-package "foo"))
-        (s (search-path %load-path "guix.scm")))
-    (call-with-temporary-directory
-     (lambda (directory)
-       (let* ((f (string-append directory "/foo-42.0.tar.gz"))
-              (t (options->transformation `((with-source . ,f)))))
-         (copy-file s f)
-         (with-store store
-           (let ((new (t store p)))
-             (and (not (eq? new p))
-                  (string=? (package-name new) (package-name p))
-                  (string=? (package-version new) "42.0")
-                  (string=? (package-source new)
-                            (add-to-store store (basename f) #t
-                                          "sha256" f))))))))))
-
-(test-assert "options->transformation, with-source, no matches"
-  ;; When a transformation in not applicable, a warning must be raised.
-  (let* ((p (dummy-package "foobar"))
-         (s (search-path %load-path "guix.scm"))
-         (t (options->transformation `((with-source . ,s)))))
-    (with-store store
-      (let* ((port (open-output-string))
-             (new  (parameterize ((guix-warning-port port))
-                     (t store p))))
-        (and (eq? new p)
-             (string-contains (get-output-string port)
-                              "had no effect"))))))
-
-(test-assert "options->transformation, with-source, PKG=URI"
-  (let* ((p (dummy-package "foo"))
-         (s (search-path %load-path "guix.scm"))
-         (f (string-append "foo=" s))
-         (t (options->transformation `((with-source . ,f)))))
-    (with-store store
-      (let ((new (t store p)))
-        (and (not (eq? new p))
-             (string=? (package-name new) (package-name p))
-             (string=? (package-version new)
-                       (package-version p))
-             (string=? (package-source new)
-                       (add-to-store store (basename s) #t
-                                     "sha256" s)))))))
-
-(test-assert "options->transformation, with-source, PKG@VER=URI"
-  (let* ((p (dummy-package "foo"))
-         (s (search-path %load-path "guix.scm"))
-         (f (string-append "foo@42.0=" s))
-         (t (options->transformation `((with-source . ,f)))))
-    (with-store store
-      (let ((new (t store p)))
-        (and (not (eq? new p))
-             (string=? (package-name new) (package-name p))
-             (string=? (package-version new) "42.0")
-             (string=? (package-source new)
-                       (add-to-store store (basename s) #t
-                                     "sha256" s)))))))
-
-(test-assert "options->transformation, with-input"
-  (let* ((p (dummy-package "guix.scm"
-              (inputs `(("foo" ,(specification->package "coreutils"))
-                        ("bar" ,(specification->package "grep"))
-                        ("baz" ,(dummy-package "chbouib"
-                                  (native-inputs `(("x" ,grep)))))))))
-         (t (options->transformation '((with-input . "coreutils=busybox")
-                                       (with-input . "grep=findutils")))))
-    (with-store store
-      (let ((new (t store p)))
-        (and (not (eq? new p))
-             (match (package-inputs new)
-               ((("foo" dep1) ("bar" dep2) ("baz" dep3))
-                (and (string=? (package-full-name dep1)
-                               (package-full-name busybox))
-                     (string=? (package-full-name dep2)
-                               (package-full-name findutils))
-                     (string=? (package-name dep3) "chbouib")
-                     (match (package-native-inputs dep3)
-                       ((("x" dep))
-                        (string=? (package-full-name dep)
-                                  (package-full-name findutils))))))))))))
-
-(test-assert "options->transformation, with-graft"
-  (let* ((p (dummy-package "guix.scm"
-              (inputs `(("foo" ,grep)
-                        ("bar" ,(dummy-package "chbouib"
-                                  (native-inputs `(("x" ,grep)))))))))
-         (t (options->transformation '((with-graft . "grep=findutils")))))
-    (with-store store
-      (let ((new (t store p)))
-        (and (not (eq? new p))
-             (match (package-inputs new)
-               ((("foo" dep1) ("bar" dep2))
-                (and (string=? (package-full-name dep1)
-                               (package-full-name grep))
-                     (eq? (package-replacement dep1) findutils)
-                     (string=? (package-name dep2) "chbouib")
-                     (match (package-native-inputs dep2)
-                       ((("x" dep))
-                        (eq? (package-replacement dep) findutils)))))))))))
-
-(test-equal "options->transformation, with-branch"
-  (git-checkout (url "https://example.org")
-                (branch "devel")
-                (recursive? #t))
-  (let* ((p (dummy-package "guix.scm"
-              (inputs `(("foo" ,grep)
-                        ("bar" ,(dummy-package "chbouib"
-                                  (source (origin
-                                            (method git-fetch)
-                                            (uri (git-reference
-                                                  (url "https://example.org")
-                                                  (commit "cabba9e")))
-                                            (sha256 #f)))))))))
-         (t (options->transformation '((with-branch . "chbouib=devel")))))
-    (with-store store
-      (let ((new (t store p)))
-        (and (not (eq? new p))
-             (match (package-inputs new)
-               ((("foo" dep1) ("bar" dep2))
-                (and (string=? (package-full-name dep1)
-                               (package-full-name grep))
-                     (string=? (package-name dep2) "chbouib")
-                     (package-source dep2)))))))))
-
-(test-equal "options->transformation, with-commit"
-  (git-checkout (url "https://example.org")
-                (commit "abcdef")
-                (recursive? #t))
-  (let* ((p (dummy-package "guix.scm"
-              (inputs `(("foo" ,grep)
-                        ("bar" ,(dummy-package "chbouib"
-                                  (source (origin
-                                            (method git-fetch)
-                                            (uri (git-reference
-                                                  (url "https://example.org")
-                                                  (commit "cabba9e")))
-                                            (sha256 #f)))))))))
-         (t (options->transformation '((with-commit . "chbouib=abcdef")))))
-    (with-store store
-      (let ((new (t store p)))
-        (and (not (eq? new p))
-             (match (package-inputs new)
-               ((("foo" dep1) ("bar" dep2))
-                (and (string=? (package-full-name dep1)
-                               (package-full-name grep))
-                     (string=? (package-name dep2) "chbouib")
-                     (package-source dep2)))))))))
-
-(test-equal "options->transformation, with-git-url"
-  (let ((source (git-checkout (url "https://example.org")
-                              (recursive? #t))))
-    (list source source))
-  (let* ((p (dummy-package "guix.scm"
-              (inputs `(("foo" ,grep)
-                        ("bar" ,(dummy-package "chbouib"
-                                  (native-inputs `(("x" ,grep)))))))))
-         (t (options->transformation '((with-git-url . "grep=https://example.org")))))
-    (with-store store
-      (let ((new (t store p)))
-        (and (not (eq? new p))
-             (match (package-inputs new)
-               ((("foo" dep1) ("bar" dep2))
-                (and (string=? (package-full-name dep1)
-                               (package-full-name grep))
-                     (string=? (package-name dep2) "chbouib")
-                     (match (package-native-inputs dep2)
-                       ((("x" dep3))
-                        (map package-source (list dep1 dep3))))))))))))
-
-(test-equal "options->transformation, with-git-url + with-branch"
-  ;; Combine the two options and make sure the 'with-branch' transformation
-  ;; comes after the 'with-git-url' transformation.
-  (let ((source (git-checkout (url "https://example.org")
-                              (branch "BRANCH")
-                              (recursive? #t))))
-    (list source source))
-  (let* ((p (dummy-package "guix.scm"
-              (inputs `(("foo" ,grep)
-                        ("bar" ,(dummy-package "chbouib"
-                                  (native-inputs `(("x" ,grep)))))))))
-         (t (options->transformation
-             (reverse '((with-git-url
-                         . "grep=https://example.org")
-                        (with-branch . "grep=BRANCH"))))))
-    (with-store store
-      (let ((new (t store p)))
-        (and (not (eq? new p))
-             (match (package-inputs new)
-               ((("foo" dep1) ("bar" dep2))
-                (and (string=? (package-name dep1) "grep")
-                     (string=? (package-name dep2) "chbouib")
-                     (match (package-native-inputs dep2)
-                       ((("x" dep3))
-                        (map package-source (list dep1 dep3))))))))))))
-
-
-(test-end)
diff --git a/tests/store-database.scm b/tests/store-database.scm
index 4d91884250..17eea38c63 100644
--- a/tests/store-database.scm
+++ b/tests/store-database.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2017, 2018 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2017, 2018, 2020 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -20,7 +20,10 @@
   #:use-module (guix tests)
   #:use-module (guix store)
   #:use-module (guix store database)
+  #:use-module (guix build store-copy)
   #:use-module ((guix utils) #:select (call-with-temporary-output-file))
+  #:use-module ((guix build utils)
+                #:select (mkdir-p delete-file-recursively))
   #:use-module (srfi srfi-26)
   #:use-module (srfi srfi-64))
 
@@ -32,8 +35,7 @@
 
 (test-begin "store-database")
 
-(test-equal "register-path"
-  '(1 1)
+(test-assert "register-items"
   (let ((file (string-append (%store-prefix) "/" (make-string 32 #\f)
                              "-fake")))
     (when (valid-path? %store file)
@@ -44,9 +46,9 @@
           (drv (string-append file ".drv")))
       (call-with-output-file file
         (cut display "This is a fake store item.\n" <>))
-      (register-path file
-                     #:references (list ref)
-                     #:deriver drv)
+      (reset-timestamps file)
+      (with-database (store-database-file) db
+        (register-items db (list (store-info file drv (list ref)))))
 
       (and (valid-path? %store file)
            (equal? (references %store file) (list ref))
@@ -55,6 +57,30 @@
            (list (stat:mtime (lstat file))
                  (stat:mtime (lstat ref)))))))
 
+(test-equal "register-items, directory"
+  '(1 1 1)
+  (let ((file (string-append (%store-prefix) "/" (make-string 32 #\f)
+                             "-fake-directory")))
+    (when (valid-path? %store file)
+      (delete-paths %store (list file)))
+    (false-if-exception (delete-file-recursively file))
+
+    (let ((drv (string-append file ".drv")))
+      (mkdir-p (string-append file "/a"))
+      (call-with-output-file (string-append file "/a/b")
+        (const #t))
+      (reset-timestamps file)
+      (with-database (store-database-file) db
+        (register-items db (list (store-info file drv '()))))
+
+      (and (valid-path? %store file)
+           (null? (references %store file))
+           (null? (valid-derivers %store file))
+           (null? (referrers %store file))
+           (list (stat:mtime (lstat file))
+                 (stat:mtime (lstat (string-append file "/a")))
+                 (stat:mtime (lstat (string-append file "/a/b"))))))))
+
 (test-equal "new database"
   (list 1 2)
   (call-with-temporary-output-file
@@ -77,7 +103,7 @@
          (list (path-id db "/gnu/foo")
                (path-id db "/gnu/bar")))))))
 
-(test-assert "register-path with unregistered references"
+(test-assert "sqlite-register with unregistered references"
   ;; Make sure we get a "NOT NULL constraint failed: Refs.reference" error
   ;; when we try to add references that are not registered yet.  Better safe
   ;; than sorry.
diff --git a/tests/store-deduplication.scm b/tests/store-deduplication.scm
index e2870a363d..b1c2d93bbd 100644
--- a/tests/store-deduplication.scm
+++ b/tests/store-deduplication.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2018 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2018, 2020 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -25,6 +25,7 @@
   #:use-module (rnrs bytevectors)
   #:use-module (ice-9 binary-ports)
   #:use-module (srfi srfi-1)
+  #:use-module (srfi srfi-26)
   #:use-module (srfi srfi-64))
 
 (test-begin "store-deduplication")
@@ -94,7 +95,7 @@
          (lambda ()
            (set! link (lambda (old new)
                         (set! links (+ links 1))
-                        (if (<= links 3)
+                        (if (<= links 4)
                             (true-link old new)
                             (throw 'system-error "link" "~A" '("Whaaat?!")
                                    (list ENOSPC))))))
@@ -106,4 +107,19 @@
        (cons (apply = (map (compose stat:ino stat) identical))
              (map (compose stat:nlink stat) identical))))))
 
+(test-assert "copy-file/deduplicate"
+  (call-with-temporary-directory
+   (lambda (store)
+     (let ((source (search-path %load-path "gnu/packages/emacs-xyz.scm")))
+       (for-each (lambda (target)
+                   (copy-file/deduplicate source
+                                          (string-append store target)
+                                          #:store store))
+                 '("/a" "/b" "/c"))
+       (and (directory-exists? (string-append store "/.links"))
+            (file=? source (string-append store "/a"))
+            (apply = (map (compose stat:ino stat
+                                   (cut string-append store <>))
+                          '("/a" "/b" "/c"))))))))
+
 (test-end "store-deduplication")
diff --git a/tests/store.scm b/tests/store.scm
index ee3e01f33b..cda0e0302f 100644
--- a/tests/store.scm
+++ b/tests/store.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -23,6 +23,8 @@
   #:use-module (guix utils)
   #:use-module (guix monads)
   #:use-module ((gcrypt hash) #:prefix gcrypt:)
+  #:use-module ((gcrypt pk-crypto) #:prefix gcrypt:)
+  #:use-module (guix pki)
   #:use-module (guix base32)
   #:use-module (guix packages)
   #:use-module (guix derivations)
@@ -141,6 +143,15 @@
                     (string-append (%store-prefix) "/"
                                    (make-string 32 #\e) "-foobar"))))
 
+(test-equal "with-store, multiple values"        ;<https://bugs.gnu.org/42912>
+  '(1 2 3)
+  (call-with-values
+      (lambda ()
+        (with-store s
+          (add-text-to-store s "foo" "bar")
+          (values 1 2 3)))
+    list))
+
 (test-assert "valid-path? error"
   (with-store s
     (guard (c ((store-protocol-error? c) #t))
@@ -190,6 +201,17 @@
 ;;          (valid-path? %store p1)
 ;;          (member (pk p2) (live-paths %store)))))
 
+(test-assert "add-indirect-root and find-roots"
+  (call-with-temporary-directory
+   (lambda (directory)
+     (let* ((item (add-text-to-store %store "something" (random-text)))
+            (root (string-append directory "/gc-root")))
+       (symlink item root)
+       (add-indirect-root %store root)
+       (let ((result (member (cons root item) (find-roots %store))))
+         (delete-file root)
+         result)))))
+
 (test-assert "permanent root"
   (let* ((p  (with-store store
                (let ((p (add-text-to-store store "random-text"
@@ -212,30 +234,22 @@
            ;;(> freed 0)
            (not (file-exists? p))))))
 
-(test-assert "add-text-to-store vs. delete-paths"
-  ;; Before, 'add-text-to-store' would return PATH2 without noticing that it
-  ;; is no longer valid.
+(test-assert "add-text-to-store/add-to-store vs. delete-paths"
+  ;; Before, 'add-text-to-store' and 'add-to-store' would return the same
+  ;; store item without noticing that it is no longer valid.
   (with-store store
     (let* ((text    (random-text))
-           (path    (add-text-to-store store "delete-me" text))
-           (deleted (delete-paths store (list path)))
-           (path2   (add-text-to-store store "delete-me" text)))
-      (and (string=? path path2)
-           (equal? deleted (list path))
-           (valid-path? store path)
-           (file-exists? path)))))
-
-(test-assert "add-to-store vs. delete-paths"
-  ;; Same as above.
-  (with-store store
-    (let* ((file    (search-path %load-path "guix.scm"))
-           (path    (add-to-store store "delete-me" #t "sha256" file))
-           (deleted (delete-paths store (list path)))
-           (path2   (add-to-store store "delete-me" #t "sha256" file)))
-      (and (string=? path path2)
-           (equal? deleted (list path))
-           (valid-path? store path)
-           (file-exists? path)))))
+           (file    (search-path %load-path "guix.scm"))
+           (path1   (add-text-to-store store "delete-me" text))
+           (path2   (add-to-store store "delete-me" #t "sha256" file))
+           (deleted (delete-paths store (list path1 path2))))
+      (and (string=? path1 (add-text-to-store store "delete-me" text))
+           (string=? path2 (add-to-store store "delete-me" #t "sha256" file))
+           (lset= string=? deleted (list path1 path2))
+           (valid-path? store path1)
+           (valid-path? store path2)
+           (file-exists? path1)
+           (file-exists? path2)))))
 
 (test-equal "add-file-tree-to-store"
   `(42
@@ -712,8 +726,33 @@
                            #:substitute-urls (%test-substitute-urls))
         (and (has-substitutes? s o)
              (build-derivations s (list d))
+             (canonical-file? o)
              (equal? c (call-with-input-file o get-string-all)))))))
 
+(test-assert "substitute, deduplication"
+  (with-store s
+    (let* ((c   (random-text))                     ; contents of the output
+           (g   (package-derivation s %bootstrap-guile))
+           (d1  (build-expression->derivation s "substitute-me"
+                                              `(begin ,c (exit 1))
+                                              #:guile-for-build g))
+           (d2  (build-expression->derivation s "build-me"
+                                              `(call-with-output-file %output
+                                                 (lambda (p)
+                                                   (display ,c p)))
+                                              #:guile-for-build g))
+           (o1  (derivation->output-path d1))
+           (o2  (derivation->output-path d2)))
+      (with-derivation-substitute d1 c
+        (set-build-options s #:use-substitutes? #t
+                           #:substitute-urls (%test-substitute-urls))
+        (and (has-substitutes? s o1)
+             (build-derivations s (list d2))      ;build
+             (build-derivations s (list d1))      ;substitute
+             (canonical-file? o1)
+             (equal? c (call-with-input-file o1 get-string-all))
+             (= (stat:ino (stat o1)) (stat:ino (stat o2))))))))
+
 (test-assert "substitute + build-things with output path"
   (with-store s
     (let* ((c   (random-text))                    ;contents of the output
@@ -732,6 +771,7 @@
         (and (has-substitutes? s o)
              (build-things s (list o))            ;give the output path
              (valid-path? s o)
+             (canonical-file? o)
              (equal? c (call-with-input-file o get-string-all)))))))
 
 (test-assert "substitute + build-things with specific output"
@@ -752,6 +792,7 @@
              (build-things s `((,(derivation-file-name d) . "out")))
 
              (valid-path? s o)
+             (canonical-file? o)
              (equal? c (call-with-input-file o get-string-all)))))))
 
 (test-assert "substitute, corrupt output hash"
@@ -784,6 +825,61 @@
                (build-derivations s (list d))
                #f))))))
 
+(test-assert "substitute, corrupt output hash, build trace"
+  ;; Likewise, and check the build trace.
+  (with-store s
+    (let* ((c   "hello, world")                   ; contents of the output
+           (d   (build-expression->derivation
+                 s "corrupt-substitute"
+                 `(mkdir %output)
+                 #:guile-for-build
+                 (package-derivation s %bootstrap-guile (%current-system))))
+           (o   (derivation->output-path d)))
+      ;; Make sure we use 'guix substitute'.
+      (set-build-options s
+                         #:print-build-trace #t
+                         #:use-substitutes? #t
+                         #:fallback? #f
+                         #:substitute-urls (%test-substitute-urls))
+
+      (with-derivation-substitute d c
+        (sha256 => (make-bytevector 32 0)) ;select a hash that doesn't match C
+
+        (define output
+          (call-with-output-string
+            (lambda (port)
+              (parameterize ((current-build-output-port port))
+                (guard (c ((store-protocol-error? c) #t))
+                  (build-derivations s (list d))
+                  #f)))))
+
+        (define actual-hash
+          (let-values (((port get-hash)
+                        (gcrypt:open-hash-port
+                         (gcrypt:hash-algorithm gcrypt:sha256))))
+            (write-file-tree "foo" port
+                             #:file-type+size
+                             (lambda _
+                               (values 'regular (string-length c)))
+                             #:file-port
+                             (lambda _
+                               (open-input-string c)))
+            (close-port port)
+            (bytevector->nix-base32-string (get-hash))))
+
+        (define expected-hash
+          (bytevector->nix-base32-string (make-bytevector 32 0)))
+
+        (define mismatch
+          (string-append "@ hash-mismatch " o " sha256 "
+                         expected-hash " " actual-hash "\n"))
+
+        (define failure
+          (string-append "@ substituter-failed " o))
+
+        (and (string-contains output mismatch)
+             (string-contains output failure))))))
+
 (test-assert "substitute --fallback"
   (with-store s
     (let* ((t   (random-text))                    ; contents of the output
@@ -957,6 +1053,76 @@
                (list out1 out2))))
     #:guile-for-build (%guile-for-build)))
 
+
+(test-assert "import not signed"
+  (let* ((text (random-text))
+         (file (add-file-tree-to-store %store
+                                       `("tree" directory
+                                         ("text" regular (data ,text))
+                                         ("link" symlink "text"))))
+         (dump (call-with-bytevector-output-port
+                (lambda (port)
+                  (write-int 1 port)              ;start
+
+                  (write-file file port)          ;contents
+                  (write-int #x4558494e port)     ;%export-magic
+                  (write-string file port)        ;store item
+                  (write-string-list '() port)    ;references
+                  (write-string "" port)          ;deriver
+                  (write-int 0 port)              ;not signed
+
+                  (write-int 0 port)))))          ;done
+
+    ;; Ensure 'import-paths' raises an exception.
+    (guard (c ((store-protocol-error? c)
+               (and (not (zero? (store-protocol-error-status c)))
+                    (string-contains (store-protocol-error-message c)
+                                     "lacks a signature"))))
+      (let* ((source   (open-bytevector-input-port dump))
+             (imported (import-paths %store source)))
+        (pk 'unsigned-imported imported)
+        #f))))
+
+(test-assert "import signed by unauthorized key"
+  (let* ((text (random-text))
+         (file (add-file-tree-to-store %store
+                                       `("tree" directory
+                                         ("text" regular (data ,text))
+                                         ("link" symlink "text"))))
+         (key  (gcrypt:generate-key
+                (gcrypt:string->canonical-sexp
+                 "(genkey (ecdsa (curve Ed25519) (flags rfc6979)))")))
+         (dump (call-with-bytevector-output-port
+                (lambda (port)
+                  (write-int 1 port)              ;start
+
+                  (write-file file port)          ;contents
+                  (write-int #x4558494e port)     ;%export-magic
+                  (write-string file port)        ;store item
+                  (write-string-list '() port)    ;references
+                  (write-string "" port)          ;deriver
+                  (write-int 1 port)              ;signed
+                  (write-string (gcrypt:canonical-sexp->string
+                                 (signature-sexp
+                                  (gcrypt:bytevector->hash-data
+                                   (gcrypt:sha256 #vu8(0 1 2))
+                                   #:key-type 'ecc)
+                                  (gcrypt:find-sexp-token key 'private-key)
+                                  (gcrypt:find-sexp-token key 'public-key)))
+                                port)
+
+                  (write-int 0 port)))))          ;done
+
+    ;; Ensure 'import-paths' raises an exception.
+    (guard (c ((store-protocol-error? c)
+               (and (not (zero? (store-protocol-error-status c)))
+                    (string-contains (store-protocol-error-message c)
+                                     "unauthorized public key"))))
+      (let* ((source   (open-bytevector-input-port dump))
+             (imported (import-paths %store source)))
+        (pk 'unauthorized-imported imported)
+        #f))))
+
 (test-assert "import corrupt path"
   (let* ((text (random-text))
          (file (add-text-to-store %store "text" text))
diff --git a/tests/substitute.scm b/tests/substitute.scm
index a4246aff82..697abc4684 100644
--- a/tests/substitute.scm
+++ b/tests/substitute.scm
@@ -19,6 +19,7 @@
 
 (define-module (test-substitute)
   #:use-module (guix scripts substitute)
+  #:use-module (guix narinfo)
   #:use-module (guix base64)
   #:use-module (gcrypt hash)
   #:use-module (guix serialization)
@@ -28,8 +29,9 @@
   #:use-module (guix base32)
   #:use-module ((guix store) #:select (%store-prefix))
   #:use-module ((guix ui) #:select (guix-warning-port))
-  #:use-module ((guix utils) #:select (call-with-compressed-output-port))
-  #:use-module ((guix lzlib) #:select (lzlib-available?))
+  #:use-module ((guix utils)
+                #:select (call-with-temporary-directory
+                          call-with-compressed-output-port))
   #:use-module ((guix build utils)
                 #:select (mkdir-p delete-file-recursively dump-port))
   #:use-module (guix tests http)
@@ -37,6 +39,7 @@
   #:use-module (rnrs io ports)
   #:use-module (web uri)
   #:use-module (ice-9 regex)
+  #:use-module (srfi srfi-11)
   #:use-module (srfi srfi-26)
   #:use-module (srfi srfi-34)
   #:use-module (srfi srfi-35)
@@ -48,7 +51,8 @@ it writes to GUIX-WARNING-PORT a messages that matches ERROR-RX."
   (test-equal name
     '(1 #t)
     (let ((error-output (open-output-string)))
-      (parameterize ((guix-warning-port error-output))
+      (parameterize ((current-error-port error-output)
+                     (guix-warning-port error-output))
         (catch 'quit
           (lambda ()
             exp
@@ -58,6 +62,14 @@ it writes to GUIX-WARNING-PORT a messages that matches ERROR-RX."
                   (let ((message (get-output-string error-output)))
                     (->bool (string-match error-rx message))))))))))
 
+(define (request-substitution item destination)
+  "Run 'guix substitute --substitute' to fetch ITEM to DESTINATION."
+  (parameterize ((guix-warning-port (current-error-port)))
+    (with-input-from-string (string-append "substitute " item " "
+                                           destination "\n")
+      (lambda ()
+        (guix-substitute "--substitute")))))
+
 (define %public-key
   ;; This key is known to be in the ACL by default.
   (call-with-input-file (string-append %config-directory "/signing-key.pub")
@@ -184,6 +196,11 @@ a file for NARINFO."
 ;; Transmit these options to 'guix substitute'.
 (substitute-urls (list (getenv "GUIX_BINARY_SUBSTITUTE_URL")))
 
+;; Never use file descriptor 4, unlike what happens when invoked by the
+;; daemon.
+(%error-to-file-descriptor-4? #f)
+
+
 (test-equal "query narinfo without signature"
   ""                                              ; not substitutable
 
@@ -284,21 +301,68 @@ System: mips64el-linux\n")
 (test-quit "substitute, no signature"
     "no valid substitute"
   (with-narinfo %narinfo
-    (guix-substitute "--substitute"
-                     (string-append (%store-prefix)
-                                    "/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-foo")
-                     "foo")))
+    (with-input-from-string (string-append "substitute "
+                                           (%store-prefix)
+                                           "/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-foo"
+                                           " foo\n")
+      (lambda ()
+        (guix-substitute "--substitute")))))
 
-(test-quit "substitute, invalid hash"
+(test-quit "substitute, invalid narinfo hash"
     "no valid substitute"
   ;; The hash in the signature differs from the hash of %NARINFO.
   (with-narinfo (string-append %narinfo "Signature: "
                                (signature-field "different body")
                                "\n")
-    (guix-substitute "--substitute"
-                     (string-append (%store-prefix)
-                                    "/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-foo")
-                     "foo")))
+    (with-input-from-string (string-append "substitute "
+                                           (%store-prefix)
+                                           "/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-foo"
+                                           " foo\n")
+      (lambda ()
+        (guix-substitute "--substitute")))))
+
+(test-equal "substitute, invalid hash"
+  (string-append "hash-mismatch sha256 "
+                 (bytevector->nix-base32-string (sha256 #vu8())) " "
+                 (let-values (((port get-hash)
+                               (open-hash-port (hash-algorithm sha256)))
+                              ((content)
+                               "Substitutable data."))
+                   (write-file-tree "foo" port
+                                    #:file-type+size
+                                    (lambda _
+                                      (values 'regular
+                                              (string-length content)))
+                                    #:file-port
+                                    (lambda _
+                                      (open-input-string content)))
+                   (close-port port)
+                   (bytevector->nix-base32-string (get-hash)))
+                 "\n")
+
+  ;; Arrange so the actual data hash does not match the 'NarHash' field in the
+  ;; narinfo.
+  (with-output-to-string
+    (lambda ()
+      (let ((narinfo (string-append "StorePath: " (%store-prefix)
+                                    "/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-wrong-hash
+URL: example.nar
+Compression: none
+NarHash: sha256:" (bytevector->nix-base32-string (sha256 #vu8())) "
+NarSize: 42
+References: 
+Deriver: " (%store-prefix) "/foo.drv
+System: mips64el-linux\n")))
+        (with-narinfo (string-append narinfo "Signature: "
+                                     (signature-field narinfo) "\n")
+          (call-with-temporary-directory
+           (lambda (directory)
+             (with-input-from-string (string-append
+                                      "substitute " (%store-prefix)
+                                      "/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-wrong-hash "
+                                      directory "/wrong-hash\n")
+               (lambda ()
+                 (guix-substitute "--substitute"))))))))))
 
 (test-quit "substitute, unauthorized key"
     "no valid substitute"
@@ -307,23 +371,26 @@ System: mips64el-linux\n")
                                 %narinfo
                                 #:public-key %wrong-public-key)
                                "\n")
-    (guix-substitute "--substitute"
-                     (string-append (%store-prefix)
-                                    "/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-foo")
-                     "foo")))
+    (with-input-from-string (string-append "substitute "
+                                           (%store-prefix)
+                                           "/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-foo"
+                                           " foo\n")
+      (lambda ()
+        (guix-substitute "--substitute")))))
 
 (test-equal "substitute, authorized key"
-  "Substitutable data."
+  '("Substitutable data." 1 #o444)
   (with-narinfo (string-append %narinfo "Signature: "
                                (signature-field %narinfo))
     (dynamic-wind
       (const #t)
       (lambda ()
-        (guix-substitute "--substitute"
-                         (string-append (%store-prefix)
-                                        "/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-foo")
-                         "substitute-retrieved")
-        (call-with-input-file "substitute-retrieved" get-string-all))
+        (request-substitution (string-append (%store-prefix)
+                                             "/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-foo")
+                              "substitute-retrieved")
+        (list (call-with-input-file "substitute-retrieved" get-string-all)
+              (stat:mtime (lstat "substitute-retrieved"))
+              (stat:perms (lstat "substitute-retrieved"))))
       (lambda ()
         (false-if-exception (delete-file "substitute-retrieved"))))))
 
@@ -352,10 +419,9 @@ System: mips64el-linux\n")
                           (map (cut string-append "file://" <>)
                                (list %alternate-substitute-directory
                                      %main-substitute-directory))))
-            (guix-substitute "--substitute"
-                             (string-append (%store-prefix)
-                                            "/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-foo")
-                             "substitute-retrieved"))
+            (request-substitution (string-append (%store-prefix)
+                                                 "/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-foo")
+                                  "substitute-retrieved"))
           (call-with-input-file "substitute-retrieved" get-string-all))
         (lambda ()
           (false-if-exception (delete-file "substitute-retrieved")))))))
@@ -381,10 +447,9 @@ System: mips64el-linux\n")
                           (map (cut string-append "file://" <>)
                                (list %alternate-substitute-directory
                                      %main-substitute-directory))))
-            (guix-substitute "--substitute"
-                             (string-append (%store-prefix)
-                                            "/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-foo")
-                             "substitute-retrieved"))
+            (request-substitution (string-append (%store-prefix)
+                                                 "/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-foo")
+                                  "substitute-retrieved"))
           (call-with-input-file "substitute-retrieved" get-string-all))
         (lambda ()
           (false-if-exception (delete-file "substitute-retrieved")))))))
@@ -417,10 +482,9 @@ System: mips64el-linux\n")
                           (map (cut string-append "file://" <>)
                                (list %alternate-substitute-directory
                                      %main-substitute-directory))))
-            (guix-substitute "--substitute"
-                             (string-append (%store-prefix)
-                                            "/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-foo")
-                             "substitute-retrieved"))
+            (request-substitution (string-append (%store-prefix)
+                                                 "/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-foo")
+                                  "substitute-retrieved"))
           (call-with-input-file "substitute-retrieved" get-string-all))
         (lambda ()
           (false-if-exception (delete-file "substitute-retrieved")))))))
@@ -451,10 +515,9 @@ System: mips64el-linux\n")
                           (map (cut string-append "file://" <>)
                                (list %alternate-substitute-directory
                                      %main-substitute-directory))))
-            (guix-substitute "--substitute"
-                             (string-append (%store-prefix)
-                                            "/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-foo")
-                             "substitute-retrieved"))
+            (request-substitution (string-append (%store-prefix)
+                                                 "/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-foo")
+                                  "substitute-retrieved"))
           (call-with-input-file "substitute-retrieved" get-string-all))
         (lambda ()
           (false-if-exception (delete-file "substitute-retrieved")))))))
@@ -470,10 +533,12 @@ System: mips64el-linux\n")
                                    #:public-key %wrong-public-key))
         %main-substitute-directory
 
-      (guix-substitute "--substitute"
-                       (string-append (%store-prefix)
-                                      "/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-foo")
-                       "substitute-retrieved"))))
+      (with-input-from-string (string-append "substitute "
+                                             (%store-prefix)
+                                             "/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-foo"
+                                             " substitute-retrieved\n")
+        (lambda ()
+          (guix-substitute "--substitute"))))))
 
 (test-equal "substitute, narinfo with several URLs"
   "Substitutable data."
@@ -508,16 +573,14 @@ System: mips64el-linux\n")))
           (let ((nar (string-append %main-substitute-directory
                                     "/example.nar")))
             (compress nar (string-append nar ".gz") 'gzip)
-            (when (lzlib-available?)
-              (compress nar (string-append nar ".lz") 'lzip)))
+            (compress nar (string-append nar ".lz") 'lzip))
 
           (parameterize ((substitute-urls
                           (list (string-append "file://"
                                                %main-substitute-directory))))
-            (guix-substitute "--substitute"
-                             (string-append (%store-prefix)
-                                            "/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-foo")
-                             "substitute-retrieved"))
+            (request-substitution (string-append (%store-prefix)
+                                                 "/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-foo")
+                                  "substitute-retrieved"))
           (call-with-input-file "substitute-retrieved" get-string-all))
         (lambda ()
           (false-if-exception (delete-file "substitute-retrieved")))))))
diff --git a/tests/swh.scm b/tests/swh.scm
index aef68acbe7..a36f951241 100644
--- a/tests/swh.scm
+++ b/tests/swh.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2019, 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -20,20 +20,37 @@
   #:use-module (guix swh)
   #:use-module (guix tests http)
   #:use-module (web response)
-  #:use-module (srfi srfi-64))
+  #:use-module (srfi srfi-19)
+  #:use-module (srfi srfi-64)
+  #:use-module (ice-9 match))
 
 ;; Test the JSON mapping machinery used in (guix swh).
 
 (define %origin
-  "{ \"visits_url\": \"/visits/42\",
+  "{ \"origin_visits_url\": \"/visits/42\",
      \"type\": \"git\",
      \"url\": \"http://example.org/guix.git\" }")
 
+(define %visits
+  ;; A single visit where 'snapshot_url' is null.
+  ;; See <https://bugs.gnu.org/45615>.
+  "[ {
+    \"origin\": \"https://github.com/Genivia/ugrep\",
+    \"visit\": 1,
+    \"date\": \"2020-05-17T21:43:45.422977+00:00\",
+    \"status\": \"ongoing\",
+    \"snapshot\": null,
+    \"metadata\": {},
+    \"type\": \"git\",
+    \"origin_visit_url\": \"https://archive.softwareheritage.org/api/1/origin/https://github.com/Genivia/ugrep/visit/1/\",
+    \"snapshot_url\": null
+  } ]")
+
 (define %directory-entries
   "[ { \"name\": \"one\",
        \"type\": \"regular\",
        \"length\": 123,
-       \"dir_id\": 1 }
+       \"dir_id\": 1 },
      { \"name\": \"two\",
        \"type\": \"regular\",
        \"length\": 456,
@@ -59,6 +76,20 @@
     (parameterize ((%swh-base-url (%local-url)))
       (lookup-origin "http://example.org/whatever"))))
 
+(test-equal "origin-visit, no snapshots"
+  '("https://github.com/Genivia/ugrep"
+    "2020-05-17T21:43:45Z"
+    #f)                                      ;see <https://bugs.gnu.org/45615>
+  (with-http-server `((200 ,%origin)
+                      (200 ,%visits))
+    (parameterize ((%swh-base-url (%local-url)))
+      (let ((origin (lookup-origin "http://example.org/whatever")))
+        (match (origin-visits origin)
+          ((visit)
+           (list (visit-origin visit)
+                 (date->string (visit-date visit) "~4")
+                 (visit-snapshot-url visit))))))))
+
 (test-equal "lookup-directory"
   '(("one" 123) ("two" 456))
   (with-json-result %directory-entries
diff --git a/tests/transformations.scm b/tests/transformations.scm
new file mode 100644
index 0000000000..7877029486
--- /dev/null
+++ b/tests/transformations.scm
@@ -0,0 +1,420 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2016, 2017, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (test-transformations)
+  #:use-module (guix tests)
+  #:use-module (guix store)
+  #:use-module ((guix gexp) #:select (lower-object))
+  #:use-module (guix derivations)
+  #:use-module (guix packages)
+  #:use-module (guix git-download)
+  #:use-module (guix build-system)
+  #:use-module (guix build-system gnu)
+  #:use-module (guix transformations)
+  #:use-module ((guix gexp) #:select (local-file? local-file-file))
+  #:use-module (guix ui)
+  #:use-module (guix utils)
+  #:use-module (guix git)
+  #:use-module (guix upstream)
+  #:use-module (gnu packages)
+  #:use-module (gnu packages base)
+  #:use-module (gnu packages busybox)
+  #:use-module (ice-9 match)
+  #:use-module (srfi srfi-1)
+  #:use-module (srfi srfi-26)
+  #:use-module (srfi srfi-64))
+
+
+(test-begin "transformations")
+
+(test-assert "options->transformation, no transformations"
+  (let ((p (dummy-package "foo"))
+        (t (options->transformation '())))
+    (eq? (t p) p)))
+
+(test-assert "options->transformation, with-source"
+  ;; Our pseudo-package is called 'guix.scm' so the 'guix.scm' source should
+  ;; be applicable.
+  (let* ((p (dummy-package "guix.scm"))
+         (s (search-path %load-path "guix.scm"))
+         (t (options->transformation `((with-source . ,s)))))
+    (with-store store
+      (let* ((new (t p))
+             (source (run-with-store store
+                       (lower-object (package-source new)))))
+        (and (not (eq? new p))
+             (string=? source
+                       (add-to-store store "guix.scm" #t
+                                     "sha256" s)))))))
+
+(test-assert "options->transformation, with-source, replacement"
+  ;; Same, but this time the original package has a 'replacement' field.  We
+  ;; expect that replacement to be set to #f in the new package.
+  (let* ((p (dummy-package "guix.scm" (replacement coreutils)))
+         (s (search-path %load-path "guix.scm"))
+         (t (options->transformation `((with-source . ,s)))))
+    (let ((new (t p)))
+      (and (not (eq? new p))
+           (not (package-replacement new))))))
+
+(test-assert "options->transformation, with-source, with version"
+  ;; Our pseudo-package is called 'guix.scm' so the 'guix.scm-2.0' source
+  ;; should be applicable, and its version should be extracted.
+  (let ((p (dummy-package "foo"))
+        (s (search-path %load-path "guix.scm")))
+    (call-with-temporary-directory
+     (lambda (directory)
+       (let* ((f (string-append directory "/foo-42.0.tar.gz"))
+              (t (options->transformation `((with-source . ,f)))))
+         (copy-file s f)
+         (with-store store
+           (let* ((new (t p))
+                  (source (run-with-store store
+                            (lower-object (package-source new)))))
+             (and (not (eq? new p))
+                  (string=? (package-name new) (package-name p))
+                  (string=? (package-version new) "42.0")
+                  (string=? source
+                            (add-to-store store (basename f) #t
+                                          "sha256" f))))))))))
+
+(test-assert "options->transformation, with-source, no matches"
+  ;; When a transformation in not applicable, a warning must be raised.
+  (let* ((p (dummy-package "foobar"))
+         (s (search-path %load-path "guix.scm"))
+         (t (options->transformation `((with-source . ,s)))))
+    (let* ((port (open-output-string))
+           (new  (parameterize ((guix-warning-port port))
+                   (t p))))
+      (and (eq? new p)
+           (string-contains (get-output-string port)
+                            "had no effect")))))
+
+(test-assert "options->transformation, with-source, PKG=URI"
+  (let* ((p (dummy-package "foo"))
+         (s (search-path %load-path "guix.scm"))
+         (f (string-append "foo=" s))
+         (t (options->transformation `((with-source . ,f)))))
+    (with-store store
+      (let* ((new (t p))
+             (source (run-with-store store
+                       (lower-object (package-source new)))))
+        (and (not (eq? new p))
+             (string=? (package-name new) (package-name p))
+             (string=? (package-version new)
+                       (package-version p))
+             (string=? source
+                       (add-to-store store (basename s) #t
+                                     "sha256" s)))))))
+
+(test-assert "options->transformation, with-source, PKG@VER=URI"
+  (let* ((p (dummy-package "foo"))
+         (s (search-path %load-path "guix.scm"))
+         (f (string-append "foo@42.0=" s))
+         (t (options->transformation `((with-source . ,f)))))
+    (with-store store
+      (let* ((new (t p))
+             (source (run-with-store store
+                       (lower-object (package-source new)))))
+        (and (not (eq? new p))
+             (string=? (package-name new) (package-name p))
+             (string=? (package-version new) "42.0")
+             (string=? source
+                       (add-to-store store (basename s) #t
+                                     "sha256" s)))))))
+
+(test-assert "options->transformation, with-input"
+  (let* ((p (dummy-package "guix.scm"
+              (inputs `(("foo" ,(specification->package "coreutils"))
+                        ("bar" ,(specification->package "grep"))
+                        ("baz" ,(dummy-package "chbouib"
+                                  (native-inputs `(("x" ,grep)))))))))
+         (t (options->transformation '((with-input . "coreutils=busybox")
+                                       (with-input . "grep=findutils")))))
+    (let ((new (t p)))
+      (and (not (eq? new p))
+           (match (package-inputs new)
+             ((("foo" dep1) ("bar" dep2) ("baz" dep3))
+              (and (string=? (package-full-name dep1)
+                             (package-full-name busybox))
+                   (string=? (package-full-name dep2)
+                             (package-full-name findutils))
+                   (string=? (package-name dep3) "chbouib")
+                   (match (package-native-inputs dep3)
+                     ((("x" dep))
+                      (string=? (package-full-name dep)
+                                (package-full-name findutils)))))))))))
+
+(test-assert "options->transformation, with-graft"
+  (let* ((p (dummy-package "guix.scm"
+              (inputs `(("foo" ,grep)
+                        ("bar" ,(dummy-package "chbouib"
+                                  (native-inputs `(("x" ,grep)))))))))
+         (t (options->transformation '((with-graft . "grep=findutils")))))
+    (let ((new (t p)))
+      (and (not (eq? new p))
+           (match (package-inputs new)
+             ((("foo" dep1) ("bar" dep2))
+              (and (string=? (package-full-name dep1)
+                             (package-full-name grep))
+                   (string=? (package-full-name (package-replacement dep1))
+                             (package-full-name findutils))
+                   (string=? (package-name dep2) "chbouib")
+                   (match (package-native-inputs dep2)
+                     ((("x" dep))
+                      (with-store store
+                        (string=? (derivation-file-name
+                                   (package-derivation store findutils))
+                                  (derivation-file-name
+                                   (package-derivation store dep)))))))))))))
+
+(test-equal "options->transformation, with-branch"
+  (git-checkout (url "https://example.org")
+                (branch "devel")
+                (recursive? #t))
+  (let* ((p (dummy-package "guix.scm"
+              (inputs `(("foo" ,grep)
+                        ("bar" ,(dummy-package "chbouib"
+                                  (source (origin
+                                            (method git-fetch)
+                                            (uri (git-reference
+                                                  (url "https://example.org")
+                                                  (commit "cabba9e")))
+                                            (sha256 #f)))))))))
+         (t (options->transformation '((with-branch . "chbouib=devel")))))
+    (let ((new (t p)))
+      (and (not (eq? new p))
+           (match (package-inputs new)
+             ((("foo" dep1) ("bar" dep2))
+              (and (string=? (package-full-name dep1)
+                             (package-full-name grep))
+                   (string=? (package-name dep2) "chbouib")
+                   (package-source dep2))))))))
+
+(test-equal "options->transformation, with-commit"
+  (git-checkout (url "https://example.org")
+                (commit "abcdef")
+                (recursive? #t))
+  (let* ((p (dummy-package "guix.scm"
+              (inputs `(("foo" ,grep)
+                        ("bar" ,(dummy-package "chbouib"
+                                  (source (origin
+                                            (method git-fetch)
+                                            (uri (git-reference
+                                                  (url "https://example.org")
+                                                  (commit "cabba9e")))
+                                            (sha256 #f)))))))))
+         (t (options->transformation '((with-commit . "chbouib=abcdef")))))
+    (let ((new (t p)))
+      (and (not (eq? new p))
+           (match (package-inputs new)
+             ((("foo" dep1) ("bar" dep2))
+              (and (string=? (package-full-name dep1)
+                             (package-full-name grep))
+                   (string=? (package-name dep2) "chbouib")
+                   (package-source dep2))))))))
+
+(test-equal "options->transformation, with-git-url"
+  (let ((source (git-checkout (url "https://example.org")
+                              (recursive? #t))))
+    (list source source))
+  (let* ((p (dummy-package "guix.scm"
+              (inputs `(("foo" ,grep)
+                        ("bar" ,(dummy-package "chbouib"
+                                  (native-inputs `(("x" ,grep)))))))))
+         (t (options->transformation '((with-git-url . "grep=https://example.org")))))
+    (let ((new (t p)))
+      (and (not (eq? new p))
+           (match (package-inputs new)
+             ((("foo" dep1) ("bar" dep2))
+              (and (string=? (package-full-name dep1)
+                             (package-full-name grep))
+                   (string=? (package-name dep2) "chbouib")
+                   (match (package-native-inputs dep2)
+                     ((("x" dep3))
+                      (map package-source (list dep1 dep3)))))))))))
+
+(test-equal "options->transformation, with-git-url + with-branch"
+  ;; Combine the two options and make sure the 'with-branch' transformation
+  ;; comes after the 'with-git-url' transformation.
+  (let ((source (git-checkout (url "https://example.org")
+                              (branch "BRANCH")
+                              (recursive? #t))))
+    (list source source))
+  (let* ((p (dummy-package "guix.scm"
+              (inputs `(("foo" ,grep)
+                        ("bar" ,(dummy-package "chbouib"
+                                  (native-inputs `(("x" ,grep)))))))))
+         (t (options->transformation
+             (reverse '((with-git-url
+                         . "grep=https://example.org")
+                        (with-branch . "grep=BRANCH"))))))
+    (let ((new (t p)))
+      (and (not (eq? new p))
+           (match (package-inputs new)
+             ((("foo" dep1) ("bar" dep2))
+              (and (string=? (package-name dep1) "grep")
+                   (string=? (package-name dep2) "chbouib")
+                   (match (package-native-inputs dep2)
+                     ((("x" dep3))
+                      (map package-source (list dep1 dep3)))))))))))
+
+(define* (depends-on-toolchain? p #:optional (toolchain "gcc-toolchain"))
+  "Return true if P depends on TOOLCHAIN instead of the default tool chain."
+  (define toolchain-packages
+    '("gcc" "binutils" "glibc" "ld-wrapper"))
+
+  (define (package-name* obj)
+    (and (package? obj) (package-name obj)))
+
+  (match (bag-build-inputs (package->bag p))
+    (((_ (= package-name* packages) . _) ...)
+     (and (not (any (cut member <> packages) toolchain-packages))
+          (member toolchain packages)))))
+
+(test-assert "options->transformation, with-c-toolchain"
+  (let* ((dep0 (dummy-package "chbouib"
+                 (build-system gnu-build-system)
+                 (native-inputs `(("y" ,grep)))))
+         (dep1 (dummy-package "stuff"
+                 (native-inputs `(("x" ,dep0)))))
+         (p    (dummy-package "thingie"
+                 (build-system gnu-build-system)
+                 (inputs `(("foo" ,grep)
+                           ("bar" ,dep1)))))
+         (t    (options->transformation
+                '((with-c-toolchain . "chbouib=gcc-toolchain")))))
+    ;; Here we check that the transformation applies to DEP0 and all its
+    ;; dependents: DEP0 must use GCC-TOOLCHAIN, DEP1 must use GCC-TOOLCHAIN
+    ;; and the DEP0 that uses GCC-TOOLCHAIN, and so on.
+    (let ((new (t p)))
+      (and (depends-on-toolchain? new "gcc-toolchain")
+           (match (bag-build-inputs (package->bag new))
+             ((("foo" dep0) ("bar" dep1) _ ...)
+              (and (depends-on-toolchain? dep1 "gcc-toolchain")
+                   (not (depends-on-toolchain? dep0 "gcc-toolchain"))
+                   (string=? (package-full-name dep0)
+                             (package-full-name grep))
+                   (match (bag-build-inputs (package->bag dep1))
+                     ((("x" dep) _ ...)
+                      (and (depends-on-toolchain? dep "gcc-toolchain")
+                           (match (bag-build-inputs (package->bag dep))
+                             ((("y" dep) _ ...)   ;this one is unchanged
+                              (eq? dep grep)))))))))))))
+
+(test-equal "options->transformation, with-c-toolchain twice"
+  (package-full-name grep)
+  (let* ((dep0 (dummy-package "chbouib"))
+         (dep1 (dummy-package "stuff"))
+         (p    (dummy-package "thingie"
+                 (build-system gnu-build-system)
+                 (inputs `(("foo" ,dep0)
+                           ("bar" ,dep1)
+                           ("baz" ,grep)))))
+         (t    (options->transformation
+                '((with-c-toolchain . "chbouib=clang-toolchain")
+                  (with-c-toolchain . "stuff=clang-toolchain")))))
+    (let ((new (t p)))
+      (and (depends-on-toolchain? new "clang-toolchain")
+           (match (bag-build-inputs (package->bag new))
+             ((("foo" dep0) ("bar" dep1) ("baz" dep2) _ ...)
+              (and (depends-on-toolchain? dep0 "clang-toolchain")
+                   (depends-on-toolchain? dep1 "clang-toolchain")
+                   (not (depends-on-toolchain? dep2 "clang-toolchain"))
+                   (package-full-name dep2))))))))
+
+(test-assert "options->transformation, with-c-toolchain, no effect"
+  (let ((p (dummy-package "thingie"))
+        (t (options->transformation
+            '((with-c-toolchain . "does-not-exist=gcc-toolchain")))))
+    ;; When it has no effect, '--with-c-toolchain' returns P.
+    (eq? (t p) p)))
+
+(test-equal "options->transformation, with-debug-info"
+  '(#:strip-binaries? #f)
+  (let* ((dep  (dummy-package "chbouib"))
+         (p    (dummy-package "thingie"
+                 (build-system gnu-build-system)
+                 (inputs `(("foo" ,dep)
+                           ("bar" ,grep)))))
+         (t    (options->transformation
+                '((with-debug-info . "chbouib")))))
+    (let ((new (t p)))
+      (match (package-inputs new)
+        ((("foo" dep0) ("bar" dep1))
+         (and (string=? (package-full-name dep1)
+                        (package-full-name grep))
+              (package-arguments (package-replacement dep0))))))))
+
+(test-assert "options->transformation, without-tests"
+  (let* ((dep (dummy-package "dep"))
+         (p   (dummy-package "foo"
+                (inputs `(("dep" ,dep)))))
+         (t   (options->transformation '((without-tests . "dep")
+                                         (without-tests . "tar")))))
+    (let ((new (t p)))
+      (match (bag-direct-inputs (package->bag new))
+        ((("dep" dep) ("tar" tar) _ ...)
+         (and (equal? (package-arguments dep) '(#:tests? #f))
+              (match (memq #:tests? (package-arguments tar))
+                ((#:tests? #f _ ...) #t))))))))
+
+(test-equal "options->transformation, with-patch"
+  (search-patches "glibc-locales.patch" "guile-relocatable.patch")
+  (let* ((dep    (dummy-package "dep"
+                   (source (dummy-origin))))
+         (p      (dummy-package "foo"
+                   (inputs `(("dep" ,dep)))))
+         (patch1 (search-patch "glibc-locales.patch"))
+         (patch2 (search-patch "guile-relocatable.patch"))
+         (t      (options->transformation
+                  `((with-patch . ,(string-append "dep=" patch1))
+                    (with-patch . ,(string-append "dep=" patch2))
+                    (with-patch . ,(string-append "tar=" patch1))))))
+    (let ((new (t p)))
+      (match (bag-direct-inputs (package->bag new))
+        ((("dep" dep) ("tar" tar) _ ...)
+         (and (member patch1
+                      (filter-map (lambda (patch)
+                                    (and (local-file? patch)
+                                         (local-file-file patch)))
+                                  (origin-patches (package-source tar))))
+              (map local-file-file
+                   (origin-patches (package-source dep)))))))))
+
+(test-equal "options->transformation, with-latest"
+  "42.0"
+  (mock ((guix upstream) %updaters
+         (delay (list (upstream-updater
+                       (name 'dummy)
+                       (pred (const #t))
+                       (description "")
+                       (latest (const (upstream-source
+                                       (package "foo")
+                                       (version "42.0")
+                                       (urls '("http://example.org")))))))))
+        (let* ((p (dummy-package "foo" (version "1.0")))
+               (t (options->transformation
+                   `((with-latest . "foo")))))
+          (package-version (t p)))))
+
+(test-end)
+
+;;; Local Variables:
+;;; eval: (put 'dummy-package 'scheme-indent-function 1)
+;;; End:
diff --git a/tests/utils.scm b/tests/utils.scm
index f78ec356bd..9bce446d98 100644
--- a/tests/utils.scm
+++ b/tests/utils.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2016 Mathieu Lirzin <mthl@gnu.org>
 ;;;
@@ -23,7 +23,6 @@
   #:use-module (guix utils)
   #:use-module ((guix store) #:select (%store-prefix store-path-package-name))
   #:use-module ((guix search-paths) #:select (string-tokenize*))
-  #:use-module ((guix lzlib) #:select (lzlib-available?))
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-11)
   #:use-module (srfi srfi-64)
@@ -183,19 +182,34 @@ skip these tests."
                        method)
     (let ((data (call-with-input-file (search-path %load-path "guix.scm")
                   get-bytevector-all)))
-      (let*-values (((compressed pids1)
-                     (compressed-port method (open-bytevector-input-port data)))
-                    ((decompressed pids2)
-                     (decompressed-port method compressed)))
-        (and (every (compose zero? cdr waitpid)
-                    (pk 'pids method (append pids1 pids2)))
-             (let ((result (get-bytevector-all decompressed)))
-               (pk 'len method
-                   (if (bytevector? result)
-                       (bytevector-length result)
-                       result)
-                   (bytevector-length data))
-               (equal? result data))))))
+      (call-with-temporary-output-file
+       (lambda (output port)
+         (close-port port)
+         (let*-values (((compressed pids)
+                        ;; Note: 'compressed-output-port' only supports file
+                        ;; ports.
+                        (compressed-output-port method
+                                                (open-file output "w0"))))
+           (put-bytevector compressed data)
+           (close-port compressed)
+           (and (every (compose zero? cdr waitpid)
+                       (pk 'pids method pids))
+                (let*-values (((decompressed pids)
+                               (decompressed-port method
+                                                  (open-bytevector-input-port
+                                                   (call-with-input-file output
+                                                     get-bytevector-all))))
+                              ((result)
+                               (get-bytevector-all decompressed)))
+                  (close-port decompressed)
+                  (pk 'len method
+                      (if (bytevector? result)
+                          (bytevector-length result)
+                          result)
+                      (bytevector-length data))
+                  (and (every (compose zero? cdr waitpid)
+                              (pk 'pids method pids))
+                       (equal? result data)))))))))
 
   (false-if-exception (delete-file temp-file))
   (unless (run?) (test-skip 1))
@@ -214,8 +228,10 @@ skip these tests."
                       get-bytevector-all)))))
 
 (for-each test-compression/decompression
-          '(gzip xz lzip)
-          (list (const #t) (const #t) lzlib-available?))
+          `(gzip xz lzip zstd)
+          (list (const #t) (const #t) (const #t)
+                (lambda ()
+                  (resolve-module '(zstd) #t #f #:ensure #f))))
 
 ;; This is actually in (guix store).
 (test-equal "store-path-package-name"
diff --git a/tests/zlib.scm b/tests/zlib.scm
deleted file mode 100644
index 7c595a422c..0000000000
--- a/tests/zlib.scm
+++ /dev/null
@@ -1,62 +0,0 @@
-;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2016, 2019 Ludovic Courtès <ludo@gnu.org>
-;;;
-;;; This file is part of GNU Guix.
-;;;
-;;; GNU Guix is free software; you can redistribute it and/or modify it
-;;; under the terms of the GNU General Public License as published by
-;;; the Free Software Foundation; either version 3 of the License, or (at
-;;; your option) any later version.
-;;;
-;;; GNU Guix is distributed in the hope that it will be useful, but
-;;; WITHOUT ANY WARRANTY; without even the implied warranty of
-;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-;;; GNU General Public License for more details.
-;;;
-;;; You should have received a copy of the GNU General Public License
-;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
-
-(define-module (test-zlib)
-  #:use-module (guix zlib)
-  #:use-module (guix tests)
-  #:use-module (srfi srfi-64)
-  #:use-module (rnrs bytevectors)
-  #:use-module (rnrs io ports)
-  #:use-module (ice-9 match))
-
-;; Test the (guix zlib) module.
-
-(test-begin "zlib")
-
-(unless (zlib-available?)
-  (test-skip 1))
-(test-assert "compression/decompression pipe"
-  (let ((data (random-bytevector (+ (random 10000)
-                                    (* 20 1024)))))
-    (match (pipe)
-      ((parent . child)
-       (match (primitive-fork)
-         (0                                       ;compress
-          (dynamic-wind
-            (const #t)
-            (lambda ()
-              (close-port parent)
-              (call-with-gzip-output-port child
-                (lambda (port)
-                  (put-bytevector port data))))
-            (lambda ()
-              (primitive-exit 0))))
-         (pid                                     ;decompress
-          (begin
-            (close-port child)
-            (let ((received (call-with-gzip-input-port parent
-                              (lambda (port)
-                                (get-bytevector-all port))
-                              #:buffer-size (* 64 1024))))
-              (match (waitpid pid)
-                ((_ . status)
-                 (and (zero? status)
-                      (port-closed? parent)
-                      (bytevector=? received data))))))))))))
-
-(test-end)